From abc056352263952b3ef39c247dfc28a909bb23f5 Mon Sep 17 00:00:00 2001 From: sdddddf80 <2980187979@qq.com> Date: Mon, 24 Apr 2023 11:23:33 +0800 Subject: [PATCH 001/432] Update zh_CN.lang --- src/main/resources/assets/hbm/lang/zh_CN.lang | 4934 +++++++++-------- 1 file changed, 2553 insertions(+), 2381 deletions(-) diff --git a/src/main/resources/assets/hbm/lang/zh_CN.lang b/src/main/resources/assets/hbm/lang/zh_CN.lang index f9c97e3d1..c6e750bbe 100644 --- a/src/main/resources/assets/hbm/lang/zh_CN.lang +++ b/src/main/resources/assets/hbm/lang/zh_CN.lang @@ -1,208 +1,262 @@ -achievement.acidizer.desc=噢,我的皮肤 -achievement.acidizer=酸 -achievement.assembly.desc=Bobmazon 2级 (装配机) -achievement.assembly=制作 -achievement.FOEQ.desc=向火星传送信号!...其实我是说Duna +achievement.acidizer.desc=嗷!我的皮肤! +achievement.acidizer=酸性的 +achievement.assembly.desc=等等,已经凌晨1点了? +achievement.assembly=科技线 第一阶段 +achievement.FOEQ.desc=向火星发射一个探测器…我是说发射到杜纳安轨道 achievement.FOEQ=飞马座运载火箭和发射架 -achievement.breeding.desc=谢谢你们,上帝保佑你们,上帝保佑美利坚合众国。 -achievement.breeding=反话 -achievement.bismuth.desc=还记得有人抱怨了一个月吗?我愿意。 +achievement.breeding.desc=谢谢你们啊,上帝保佑你们,上帝保佑美利坚合众国. +achievement.breeding=阴阳怪气 +achievement.bismuth.desc=还记得人们为此抱怨了一个月吗? 我记得. achievement.bismuth=铋 -achievement.blastFurnace.desc=他们为制造探险家1号去打捞了一艘沉没的无畏舰。 +achievement.blastFurnace.desc=他们为探险家1号打捞了一艘沉没的无畏舰. achievement.blastFurnace=煤和铁 -achievement.bossCreeper.desc=核爆爬行者? 那是个什么玩意?! -achievement.bossCreeper=四条腿的行走核弹 -achievement.bossMaskman.desc=大男孩邦克 -achievement.bossMaskman=6个月的强制服务,我只得到一件糟糕的t恤 -achievement.bossMeltdown.desc=比伟大更可怕,但我会竭尽所能 +achievement.bossCreeper.desc='核爆爬行者? 那是啥玩意?!' +achievement.bossCreeper=四条腿上行走的核弹 +achievement.bossMaskman.desc=干♂爆那个大家伙. +achievement.bossMaskman=我被强制服役了6个月,到头来只得到一件糟糕的T恤 +achievement.bossMeltdown.desc=这可比预想的还要糟, 但我会尽我所能的. achievement.bossMeltdown=3.6伦琴 -achievement.bossWorm.desc=法布斯塔夫。我的屁股。你算算吧。 -achievement.bossWorm=拆掉机械蠕虫 -achievement.bossUFO.desc=哟,我们这儿有什么?一艘巨大的宇宙飞船正开向我们的星球? -achievement.bossUFO=呀哈哈哈,笑死我了 -achievement.burnerPress.desc=压力压在你我身上 +achievement.bossWorm.desc=用绝学法杖.我的屁股.你来算这个吧. +achievement.bossWorm=拆了 世-界-毁-灭-者 O-TRON +achievement.bossUFO.desc=哟,瞧瞧我们这儿有什么?一艘巨大的宇宙飞船正开向我们的星球? +achievement.bossUFO=Ayy Lmao +achievement.burnerPress.desc=压力压在我身上,也压在你身上 achievement.burnerPress=压力之下 achievement.c20_5.desc=??? achievement.c20_5=第20.5章 achievement.c44.desc=镀锌!我是说,锌! achievement.c44=第四十四章 -achievement.centrifuge.desc=离心力是假的,不要再@我了 -achievement.centrifuge=向心力 -achievement.chemplant.desc=现在你在考虑化学物质! -achievement.chemplant=这家工厂正在成长。Pt.2 -achievement.chicagoPile.desc=“当地人怎么样?”“非常友好。” +achievement.centrifuge.desc=离心力是真的不要再@我了 +achievement.centrifuge=离心力 +achievement.chemplant.desc=现在你开始考虑化学物质了! +achievement.chemplant=科技线 第二阶段 +achievement.chicagoPile.desc="当地人怎么样?" / "非常友好." achievement.chicagoPile=领航员在新大陆着陆 -achievement.concrete.desc=布尔什维克的最爱。 -achievement.concrete=老当益壮 -achievement.desh.desc=“来吧,你们这群人。有地方可去!” -achievement.desh=勒威耶 -achievement.digammaFeel.desc=内心的空虚 -achievement.digammaFeel=感觉的恐惧 -achievement.digammaKauaiMoho.desc=一切都糟透了,这里有些热巧克力 -achievement.digammaKauaiMoho=歌唱,为我歌唱《Kauai Moho》 -achievement.digammaKnow.desc=关于这个世界 +achievement.concrete.desc=一个布尔什维克的最爱. +achievement.concrete=老了但仍然可靠 +achievement.desh.desc="来吧,你们这群人. 有地方可去了!" +achievement.desh= 勒威耶 +achievement.digammaFeel.desc=内心的空虚. +achievement.digammaFeel=感受的恐惧 +achievement.digammaKauaiMoho.desc=这一切都糟透了不是吗,这里有些热巧克力. +achievement.digammaKauaiMoho=唱吧, 唱给我听那首最后一只奥亚吸蜜鸟之歌...... +achievement.digammaKnow.desc=这个世界的意义是什么. achievement.digammaKnow=知晓的恐惧 -achievement.digammaSee.desc=坠入深渊 -achievement.digammaSee=可见的恐惧 +achievement.digammaSee.desc=坠入深渊. +achievement.digammaSee=直视真理的恐惧 achievement.digammaUpOnTop.desc=仰慕我的儿子,他是我的克隆人. achievement.digammaUpOnTop=仰慕我,仰慕我的家 achievement.fiend.desc=卑鄙 achievement.fiend2.desc=更卑鄙 -achievement.fiend2=残忍2:更残忍 +achievement.fiend2=残忍2:更加残忍 achievement.fiend=残忍 achievement.freytag.desc=英勇的救生员 achievement.freytag=弗雷塔格 -achievement.fusion.desc=氘核、海卫一与能量的舞蹈。 -achievement.fusion=聚合 -achievement.gasCent.desc=贫铀讨厌他! -achievement.gasCent=链式 -achievement.hidden.desc=使用一节坠落的车厢杀死一只污染苦力怕 +achievement.fusion.desc=氘核, 氚核和能量之舞. +achievement.fusion=热核聚变反应 +achievement.gasCent.desc=未浓缩的铀讨厌他! +achievement.gasCent=拉链式 +achievement.hidden.desc=使用一节坠落的车厢杀死一只污染爬行者 achievement.hidden=隐藏目录 -achievement.horizonsBonus.desc=说实话,你到底怎么了 +achievement.horizonsBonus.desc=噢老天爷你到底什么毛病?! achievement.horizonsBonus=地平线! -achievement.horizonsEnd.desc=送他回家 -achievement.horizonsEnd=地平线。 +achievement.horizonsEnd.desc=送汤姆回家. +achievement.horizonsEnd=地平线. achievement.horizonsStart.desc=将一个小伙子送上月球 achievement.horizonsStart=地平线? achievement.impossible.desc=你不可能取得该成就 achievement.impossible=简直不可能 -achievement.inferno.desc=“把它变成灰烬!这还不够!投更多的炸弹!” -achievement.inferno=食人行动 -achievement.manhattan.desc=1945年8月6日 8:15 +achievement.inferno.desc="把它化为灰烬! 这还不够! 投更多炸弹下去!" +achievement.inferno=食人者行动 +achievement.manhattan.desc=8:15; 八月六日, 1945 achievement.manhattan=曼哈顿计划 -achievement.meltdown.desc=你走了这么远,怎么能把事情搞砸? -achievement.meltdown=快速非计划拆卸 -achievement.omega12.desc=解决在这个可怜的星球上继续生存的问题 -achievement.omega12=欧米茄-12粒子加速器 -achievement.polymer.desc=美味、美味的微塑料。 -achievement.polymer=特氟隆 +achievement.meltdown.desc=你都走到了这一步,怎么还能把事情搞砸? +achievement.no9.desc="我希望我开采的铅能被用于你的绘画" +achievement.no9=老九号 +achievement.meltdown="快速"拆卸 +achievement.metalworks.desc=Bobmazon 1级 (高炉) +achievement.metalworks=金属制品 +achievement.nuclear.desc=Bobmazon 5级 (铀燃料) +achievement.nuclear=原子科学 +achievement.oil.desc=Bobmazon 4级 (电锅炉) +achievement.oil=石油 +achievement.omega12.desc=解决在这个荒凉的的星球上继续生存的问题. +achievement.omega12=欧米伽-12号粒子加速器 +achievement.polymer.desc=美味,美味的微塑料. +achievement.polymer=特氟隆 聚四氟乙烯 achievement.potato.desc=你居然捅我!你怎—喔哦哦哦哦哦! -achievement.potato=流氓AI -achievement.radDeath.desc=居里夫人开创了放射性理论、放射性治疗和放射性死亡。。。。 +achievement.potato=智 械 危 机(流氓AI) +achievement.radDeath.desc=居里夫人开创了放射性理论, 放射性治疗和放射性死亡。。。。 achievement.radDeath=噢, 辐射! achievement.radium.desc=你 因 为 往 我 的 咖 啡 里 倒 镭 而 被 解 雇 了 ! achievement.radium=不可思议先生 achievement.radPoison.desc=受辐射中毒的影响 achievement.radPoison=呀, 辐射! -achievement.RBMKBoom.desc=谎言的代价是什么? -achievement.RBMKBoom=是15000伦琴辐射 -achievement.RBMK.desc=他有妄想症,带他去医务室。 -achievement.RBMK=3.6伦琴? -achievement.redBalloons.desc=“这就是我们一直在等待的。就是这样,孩子们,这就是战争。” -achievement.redBalloons=99个红气球 -achievement.sacrifice.desc=直面火海并存活 +achievement.RBMKBoom.desc=谎言的代价是什么? +achievement.RBMKBoom=是15000伦琴的辐射. +achievement.RBMK.desc=他有妄想症,带他去医院. +achievement.RBMK=3.6伦琴? +achievement.redBalloons.desc="这就是我们一直在等待的. 就这样, 小伙子们, 这就是战争." +achievement.redBalloons=99只红气球 +achievement.sacrifice.desc=直面火海,活下去. achievement.sacrifice=牺牲 -achievement.schrab.desc=不管怎样,我不会看太久。 +achievement.schrab.desc=不管怎样,我不会看这玩意太久. achievement.schrab=稳定岛 -achievement.selenium.desc=耶! -achievement.selenium=XVIII 月亮女神 -achievement.SILEX.desc=我保证,它会比它听起来的要更酷 -achievement.SILEX=激光激发法分离同位素 -achievement.slimeball.desc=粘液球 -achievement.slimeball=我应该把蛋蛋浸在硫酸里。 -achievement.stratum.desc=快刹车, Mitts! -achievement.stratum=岩层 +achievement.selenium.desc=是啊. +achievement.selenium=XVIII 号月神 +achievement.SILEX.desc=它比它听上去要更酷, 我保证. +achievement.SILEX=激光激发分离同位素 +achievement.slimeball.desc= +achievement.slimeball=我应该把我的蛋蛋浸在硫酸里. +achievement.stratum.desc=打中刹车, 手套. +achievement.stratum=发现岩层 achievement.someWounds.desc=准备好 achievement.someWounds=有些伤口永远无法愈合 -achievement.soyuz.desc=变得松脆 -achievement.soyuz=土豆烹饪 +achievement.soyuz.desc=被烤的酥脆 +achievement.soyuz=烤马铃薯 achievement.space.desc=屡试屡败,浪费了价值9000万美元的资金 -achievement.space=最后战线—呃,算了吧 -achievement.sulfuric.desc=硫酸 -achievement.sulfuric=我不应该把蛋蛋浸在硫酸里的。 -achievement.tantalum.desc=一个难以捉摸但却永远需要的元素。 -achievement.tantalum=钽 +achievement.space=最后战线-呃,算了吧 +achievement.sulfuric.desc= +achievement.sulfuric=我不该把我的蛋蛋浸在硫酸里. +achievement.tantalum.desc=一个难以捉摸但却永远需要的元素. +achievement.tantalum="钽" achievement.tasteofblood.desc=这不是任何测试的一部分 achievement.tasteofblood=血的味道 -achievement.technetium.desc=它是药用的,它是药用的! -achievement.technetium=大个子,猪人 -achievement.watzBoom.desc=下次记得把毒泥浆容器清空 -achievement.watzBoom=令人厌恶 -achievement.watz.desc=可能包括Fólkvangr弗尔克范格场 +achievement.technetium.desc=它是药用的,它是药用的! +achievement.technetium=大个子, 猪人 +achievement.watzBoom.desc=下次记得把污物容器排干. +achievement.watzBoom=真恶心 +achievement.watz.desc=可能包含Fólkvangr弗尔克范格场. achievement.watz=126号元素的力量 -achievement.witchtaunter.desc=那些古怪的生物对你毫无兴趣! -achievement.witchtaunter=巫婆陶恩特 -achievement.ZIRNOXBoom.desc=处理, 看,满地是残骸碎片 -achievement.ZIRNOXBoom=锆诺克斯 -armor.blastProtection=修正 %s 的爆炸伤害 -armor.cap=伤害上限 %s -armor.damageModifier=修正 %s 对 %s 的伤害 -armor.dash=给予 %s 冲刺 -armor.electricJetpack=离子喷射背包 +achievement.witchtaunter.desc=那些怪胎什么都没发现! +achievement.witchtaunter=女巫陶恩特 +achievement.ZIRNOXBoom.desc=处理, 遍地都是, 残骸碎片 +achievement.ZIRNOXBoom=CIRNOX + +armor.blastProtection=只受%s的爆炸伤害 +armor.cap=硬伤上限 %s +armor.damageModifier=只受%s的%s伤害 +armor.electricJetpack=等离子推进器 armor.explosionImmune=免疫除爆炸伤害外的一切伤害 armor.fastFall=快速降落 armor.fireproof=防火 -armor.fullSetBonus=全套效果: -armor.geigerHUD=盖革计数器HUD -armor.geigerSound=盖革计数器警报 -armor.glider=滑翔 -armor.gravity=重力修正 %s -armor.hardLanding=硬着陆 -armor.ignoreLimit=防御值不受防御上限的影响 -armor.modifier=伤害修正 %s -armor.nullDamage=免疫 %s 伤害 -armor.projectileProtection=免疫 %s 的弹射物伤害 +armor.fullSetBonus=完整套装增益: +armor.geigerHUD=内置盖格计数器 +armor.geigerSound=听觉式盖革计数器 +armor.glider=按下潜行以滑翔 +armor.gravity=重力效果调整为%s +armor.hardLanding=坠地AOE伤害 +armor.ignoreLimit=防御值不受防御值上限的影响 +armor.modifier=只受%s的一般伤害 +armor.nullDamage=免疫所有的%s伤害 +armor.projectileProtection=只受%s的弹射物伤害 armor.rocketBoots=火箭靴 armor.sprintBoost=冲刺辅助加速 armor.thermal=热成像 -armor.threshold=伤害阈值 %s -armor.vats=敌对生物HUD -armor.yield=抵御低于%s的伤害 -armorMod.all=所有 -armorMod.applicableTo=适用于: +armor.threshold=伤害阈值%s +armor.vats=敌对目标信息显示 +armor.yield=保护生效的最高伤害 :%s + +armorMod.all=任意盔甲部位 +armorMod.applicableTo=可安装于: armorMod.boots=靴子 armorMod.chestplates=胸甲 armorMod.helmets=头盔 -armorMod.insertHere=插入装甲以改装。。。 +armorMod.insertHere=放入盔甲以进行改装... armorMod.leggings=护腿 -armorMod.type.boots=靴子 -armorMod.type.chestplate=胸甲 +armorMod.type.boots=靴子配件 +armorMod.type.chestplate=胸甲配件 armorMod.type.cladding=覆层 -armorMod.type.helmet=头盔 -armorMod.type.insert=插板 -armorMod.type.leggings=护腿 -armorMod.type.servo=伺服电机 -armorMod.type.special=特殊 +armorMod.type.helmet=头盔配件 +armorMod.type.insert=防弹插板 +armorMod.type.leggings=护腿配件 +armorMod.type.servo=伺服系统 +armorMod.type.special=特殊配件 + battery.mode.buffer=输入/输出模式 battery.mode.input=输入模式 -battery.mode.off=关闭W +battery.mode.off=OffW battery.mode.output=输出模式 -battery.priority.high=充电优先级:高 -battery.priority.high.desc=总是需要优先装满的紧急缓冲区 -battery.priority.low=充电优先级:低 -battery.priority.low.desc=在大多数情况下,需要在不影响机器性能的情况下$存储剩余的能量 -battery.priority.normal=充电优先级:正常 -battery.priority.normal.desc=较小的电网,其优先级无关紧要 -battery.priority.recommended=推荐用于: -battery.redstone.off=红石 关 -battery.redstone.on=红石 开 -bomb.detonated=成功引爆! -bomb.incompatible=设备无法触发! -bomb.launched=发射成功! -bomb.missingComponent=组件丢失! -bomb.nobomb=链接位置不兼容或已断开! -bomb.triggered=触发成功! +battery.priority.high=充电优先级: 高 +battery.priority.high.desc=作为总是需要装满的$紧急缓冲电池的情况 +battery.priority.low=充电优先级: 低 +battery.priority.low.desc=在大多数$不影响机器性能的情况下$存储多余的能量使用 +battery.priority.normal=充电优先级: 中 +battery.priority.normal.desc=优先级无关紧要$的小型电网 +battery.priority.recommended=推荐用于: +battery.redstone.off=红石信号 OFF +battery.redstone.on=红石信号 ON + +bomb.detonated=成功引爆! +bomb.incompatible=目标无法被触发! +bomb.launched=成功发射! +bomb.missingComponent=组件缺失! +bomb.nobomb=链接位置不兼容或已被拆除! +bomb.triggered=成功触发! + book.test.cover=停车坐爱枫林晚 book.test.page1=测试页面1 + book.error.cover=粒子对撞机:$故障排除 -book.error.title1=错误 0x01 [能量不足] -book.error.page1=§l错误类型:§r "错误_能量不足" §l描述:§r 粒子到达了能量不足的部分。 §l修复方式:§r 用更高级的电源接口替换粒子成功通过的 其中一个电源接口,或者在粒子终止的段之前额外添加多一个电源接口。 -book.error.title2=错误 0x02 [无法分析] -book.error.page2=§l错误类型:§r "错误_无法分析" §l描述:§r 尽管没有通过分析室,但粒子已经到达核心。 §l修复方式:§r 确保加速器有一个分析室,并再次检查工作模式(线性/环形)。 -book.error.title3=错误 0x03 [通道阻塞] -book.error.page3=§l错误类型:§r "错误_通道阻塞" §l描述:§r 粒子与对撞机通道内的方块碰撞。 §l修复方式:§r 确保粒子对撞机内部没有任何障碍物, 粒子二极管和核心块除外。 -book.error.title4=错误 0x04 [缺少线圈] -book.error.page4=§l错误类型:§r "错误_缺少线圈" §l描述:§r 粒子通过了缺少一个或多个线圈的段。 §l修复方式:§r 移除冲突区域的对撞机镀层,并检查线圈结构是否完整。 这种错误也会发生在没有二极管的T型交叉口上。 -book.error.title5=错误 0x05 [错误区段] -book.error.page5=§l错误类型:§r "错误_错误区段" §l描述:§r 粒子通过了一个结构不正确的段(但既没有被阻塞也没有缺少线圈)。 §l修复方式:§r 确保有问题的部分都有镀层包裹,没有线圈暴露。 +book.error.title1=错误 0x01 [电量不足] +book.error.page1=§l错误名称:§r "错误_电量不足" §l说明:§r 粒子到达了一个电量不足的部分. §l解决方法:§r 粒子成功通过的其中一个电源接口替换为更高级的 电源接口, 或者在粒子终止的部分之前的部分适当添加更多的 电源接口. +book.error.title2=错误 0x02 [无分析室] +book.error.page2=§l错误名称:§r "错误_无分析室" §l说明:§r 粒子没有通过分析室就已经再次到达加速器核心部件. §l解决方法:§r 确保你的加速器有一个分析室, 并仔细检查其设置的工作模式(直线型/环型). +book.error.title3=错误 0x03 [粒子通道堵塞] +book.error.page3=§l错误名称:§r "错误_粒子通道堵塞" §l说明:§r 粒子与碰撞器通道内的块碰撞. §l解决方法:§r 确保粒子对撞机内部没有任何障碍物, 肖特基粒子二极管和核心部件除外. +book.error.title4=错误 0x04 [线圈缺失] +book.error.page4=§l错误名称:§r "错误_线圈缺失" §l说明:§r 粒子通过了一个缺少一个或多个线圈的部分. §l解决方法:§r 移除冲突区域的对撞机镀层, 并检查是否所有线圈都在那里. 这种错误也会发生在没有二极管的T型交叉口上. +book.error.title5=错误 0x05 [加速器结构错误] +book.error.page5=§l错误名称:§r "错误_加速器结构错误" §l说明:§r 粒子通过了一个构建不正确的部分(但既没有阻塞也没有丢失线圈). §l解决方法:§r 确保有问题的部分在所有要求的空间中都有镀层, 没有线圈暴露在外. book.error.title6=错误 0x06 [分析室过长] -book.error.page6=§l错误类型:§r "错误_分析室过长" §l描述:§r 粒子已通过三个以上所需的有效分析室段。 §l修复方式:§r 确保环形加速器的分析室长度正好为3个方块, 直线加速器的分析室长度至少为2个方块。 还要检查粒子是否未通过分支或 环形加速器中的多个分析室。 +book.error.page6=§l错误名称:§r "错误_分析室过长" §l说明:§r 粒子通过了三格以上的有效分析室. §l解决方法:§r 确保环形加速器的分析室长度正好为3格, 直线型加速器的分析室长度至少为2格. 还要检查粒子是否未通过分支或环形结构的加速器中的 多个分析室. book.error.title7=错误 0x07 [分析室过短] -book.error.page7=§l错误类型:§r "错误_分析室过短" §l描述:§r 粒子已离开分析室,尽管不符合长度要求。 §l修复方式:§r 确保环形加速器上的分析室正好有3个方块长。 有效的分析段没有线圈,镀层完全由分析室壁/窗组成。 带有线圈的分析室被视为规则段。 -book.error.title8=错误 0x08 [二极管方向错误] -book.error.page8=§l错误类型:§r "错误_二极管方向错误" §l描述:§r 该粒子与肖特基粒子二极管的非输入侧碰撞。§l修复方式:§r 检查二极管的配置是否正确。 粒子只能从带有绿色向内箭头的侧面进入二极管。 -book.error.title9=错误 0x09 [多处分支] -book.error.page9=§l错误类型:§r "错误_多处分支" §l描述:§r 粒子到达具有多个出口的转弯处。§l修复方式:§r 如果你的对撞机是正常的,检查所有需要的线圈是否都存在(即线圈中没有缺漏)。如果转弯处打算进行分支,则需要正确放置的肖特基粒子二极管。 +book.error.page7=§l错误名称:§r "错误_分析室过短" §l说明:§r 粒子离开了分析室,尽管分析室不符合长度要求. §l解决方法:§r 确保环型加速器上的分析室正好有3格长. 有效的分析室部分没有线圈, 镀层完全由分析室壁/窗组成. 带有线圈的分析室会被视为普通加速部分. +book.error.title8=错误 0x08 [粒子与肖特基粒子二极管碰撞] +book.error.page8=§l错误名称:§r "错误_粒子与肖特基粒子二极管碰撞" §l说明:§r 该粒子与肖特基粒子二极管的非输入侧碰撞. §l解决方法:§r 检查二极管的方向配置是否正确. 粒子只能从带有绿色向内箭头的侧面进入二极管. +book.error.title9=错误 0x09 [转弯处分岔] +book.error.page9=§l错误名称:§r "错误_转弯处分岔" §l说明:§r 粒子已到达具有多个出口的转弯处. §l解决方法:§r 如果你的拐弯处是正常的, 检查所有需要的线圈是否都存在(即线圈层中没有孔). 如果转弯处打算进行分支, 则需要正确配置的肖特基粒子二极管. + +book.starter.cover=重建工业社会的$一本实业家$的指南 +book.starter.title1=介绍 +book.starter.page1=如果你读到这篇文章, 那么很有可能社会已经以这样或那样的方式完全崩溃了. 政府,国家和权威已经是过去的概念——以及文明生活 的所有便利设施. 因此,本指南将告诉你如何通过重新创造过去的行业和 科学技术 来改善你自己的生活. +book.starter.title2=煤尘与芥子气 +book.starter.page2=虽然不可能预测世界在后世界末日时代的实际状态, 但目前形式的战争和工业活动不太可能没有结束. 为了保护自己的肺部, 一种有效且廉价的方法是在一些 §l布料§r上小便来制作一个 §l战壕版粗制防护面罩§r, 以保护你免受煤尘或芥子气的伤害, 以防你遇到其中任何一种情况. +book.starter.title3=砧与锻压机 +book.starter.page3=开始你的工业振兴的核心是一个§lE合前期的机械, 如组装机, 而火力锻压机将允许您制作无法用砧锤击在一起的板材, 金属线和电路. +book.starter.title4=模板 +book.starter.page4=为了将金属冲压成有用的 形状,组装成机器并进行化 学反应,您需要创建一个 §l机器模板文件夹§r来制造右 侧显示的各种冲压和模板. +book.starter.title5=拾荒 +book.starter.page5=根据最初的世界末日事件对世界现有建筑的破坏程度, 你有可能直接从中回收许多有用的材料和机器. 钢铁等金属合金, 电路等零件, 甚至核电站的可裂变物质都可能在等着你. 然而, 要小心某些废墟, 因为那里可能潜伏着过度的危险, 就像草丛中的蛇一样; 等着用辐射, 陷阱或其他无法形容的恐怖袭击你... +book.starter.title6=早期机械 +book.starter.page6a=您应该首先组装的两台机器是§l高炉§r 和§l装配机§r. 前者将允许您制造合金, 如§l钢§r, §l紫铜§r, 和§l高级合金§r; 你需要将这些金属用于机器的机身, 电路的布线, 先进的电磁铁等等. +book.starter.page6b=装配机将用于制造本指南中描述的几乎所有其他机器. 您需要一个电源, 如§l火力§r§l发电机§r或§l太阳能锅炉§r. +book.starter.page7a=§l粉碎机§r以及一对粉碎机刀片将非常有用, 可以通过粉碎成可冶炼的粉末, 将大多数矿石的产量提高一倍. 这些粉末对于开始为合成各种机器而制造的电路 也至关重要,例如§l增强§r和§l超频§r电路. +book.starter.page7b=使用您的新机器, 您可以组装出§l化工装置§r, 用于合成更好的电路, 混凝土, 石化产品等. +book.starter.title8=黑金 +book.starter.page8a=使用§l石油§l储层§r§l探测仪§r, 您可以通过测量一个区域 来发现地下石油沉积物以 放置§l梁式抽油机§r或 §l石油钻井塔§r. 记住,石油储备会随着时间 的推移而耗尽. +book.starter.page8b=在§l炼油厂§r中提炼和分离石油 成分之前,你必须在§l锅炉§r中将 石油加热至300°C. +book.starter.title9=石油化工 +book.starter.page9=使用§l化工厂§r, §l分馏§r§l塔§r和§l催化裂化§r§l塔§r, 你可以将分离出的油转化为各种有用的产品. §l催化裂化§r§l塔§r, 可以将分离出的油转化为各种有用的产品. 例如:§l聚合物§r或§l电木§r, 耐用又柔性的塑料; §l德什§r, 一种非常耐用和耐热的稀土金属合金; §l固体燃料§r, 可燃烧获取能量; 甚至是§l液体燃料§r, 比如§l汽油§r, §l柴油§r, §l煤油§r等等. +book.starter.title10=高级机械 +book.starter.page10=通过一套成熟的石油加工系统,您可以制造§l离心机§r, 这将使矿石的产量增加三倍; §l矿物§l结晶机§r将 矿石结晶后,产量将进一步提高; 以及§lSILEX同位素激光分离室+§lFEL§r, 这两个现代工程的奇迹可以轻松地分离材料的同位素. 你需要更多的能量来驱动这些; 可通过§l柴油发电机§r,§l工业发电机§r, 甚至核反应堆等来源获取更多的能量. +book.starter.title11=特殊岩层 +book.starter.page11=在你行走的地面之下,有几个自 然形成的§l岩层§r,或者说特殊的矿 层和岩层. §l片岩地层§r是蓝色的含锂层,填充 有铀,铁,铜,石棉和其他矿石可供 你自己使用. §l深板岩层§r含有大量稀有矿物, 如§l锆§r和§l硼§r,但 需要炸药才能采集. +book.starter.title12=辐射 +book.starter.page12a=§o本书其余部分将讨论与§o辐射有关的问题. 为了您和其他人的安全,我将提供§o一些建议以说明如何缓解和处理暴露于此的风险.§r +book.starter.page12b=充分暴露在辐射中会导致身体伤害. 第一步是预防; 一定要限制接触,并穿戴防护装备,如§l防辐射套装§r, 或在衣服或盔甲上加装§l防辐射覆层/涂料§r; 你也可以服用§lRad-X防辐射药§r来限制你的辐射量. 多亏了现代医学,第二步可以在必要时移除; 例如,§l玩家§l去污器§r将缓慢减少身体吸收的辐射. §l消辐宁§r还可以用作暴露后预防,快速有效地逆转 电离辐射对身体造成的损害. +book.starter.title13=铀浓缩 +book.starter.page13=核反应堆的燃料有几个简单的选择; 例如,§l天然铀§r或§l钍燃料§r. 然而, 如果你寻找更强力的东西,你可以设置两台§l气体离心机§r 的浓缩级联,用剩余的§l铀-238§r生产§l铀燃料§r. 你必须将天然铀转化为§l黄饼§r,然后是§l六氟化§l铀§r. +book.starter.title14=芝加哥反应堆 +book.starter.page14=或者,您可以使用§l芝加哥反应堆§r从天然铀中增殖出 §l反应堆级钚§r,这是一种更强大的燃料. 通过堆叠石墨块并在其中钻孔,您可以将燃料棒插入钚 和中子源棒,例如§l镭226-铍中子源§r,以开始反应. 确保测试你的设计;为防止过热, 可能需要隔开或限制石墨块的数量. +book.starter.title15=ZIRNOX锆诺克斯 +book.starter.page15=最终,你可以制造你的第一个§o真正§r的能源来源: §lZIRNOX§r核反应堆. 与其他能量源相比,核反应堆需要更多的准备; 首先,你需要有一个强悍的水源,比如§l重型§l无限水罐§r. 要从反应堆堆芯中排出热量并将水煮沸成蒸汽, 你需要足够的§l二氧化碳§r. 你只需要足够的压力, 不要让压力§o太§r大! 你还需要三个蒸汽涡轮机来利用产生的蒸汽来制造能量; §l蒸汽§l轮机§r或§l大型工业§l汽轮机§r将是最佳的. 最后,需要一个§l冷凝器§r或§l冷却塔§r来将残余蒸汽冷凝成水, 在这个冷却回路中可以将其排空或回收. +book.starter.title16=结论 +book.starter.page16=如果你已经走到了这一步,你已经走在重建文明大道上了. 你已经成功地用核能, 石油化工等重新制造了世界末日前的那些先进机器. 我不知道你将如何利用这些新发现的科技, 但我个人希望你利用这些优势是为了自己和他人的利益 - 或者至少是为了自卫. 再见! +book.starter.title18=关于作者 +book.starter.page18=vær只是一个被困在"传声头像"的§o《一生一次》§r中的 灰色虚空中太久的人. 有一次, 他发现了一扇工作室的门, 但令他沮丧的是, 他发现那是一个纸板剪出来的. + + book.rbmk.cover=$我的第一个$RBMK石墨式反应堆:$建造一个$反应堆$的基础知识 book.rbmk.title1=介绍 book.rbmk.page1=§lRBMK石墨式反应堆§r是一个完全模块化的核反应堆. 与大多数其他反应堆不同的是, 该反应堆没有"多方块结构核心"和尺寸上的限制, 而反应堆的性能和效率仅取决于你是如何建造它的, 以及各个组件如何相互作用. @@ -220,9 +274,9 @@ book.rbmk.page6=§L自动控制棒§r 与常规控制棒几乎相同, 但它们 book.rbmk.title7=蒸汽管道 book.rbmk.page7=反应堆中的 §l蒸汽管道§r 是唯一能有效降低反应堆热水平的组件. 如果一个蒸汽管道组件的沸点高于其设定的蒸汽类型的沸点, 那么它将试图消耗尽可能多的水 并产生尽可能多的蒸汽来冷却到沸点以下. book.rbmk.title8=碳化钨中子反射器 -book.rbmk.page8=反应堆中的 §l碳化钨中子反射器§r 将阻止中子的通过, 相反,中子将被反射回它们来自的燃料棒上. 这对于使用中子是有用的, 否则这些中子一旦离开反应堆就会被浪费掉. +book.rbmk.page8=反应堆中的 §l碳化钨中子反射器§r 将阻止中子的通过, 相反, 中子将被反射回它们来自的燃料棒上. 这对于使用中子是有用的, 否则这些中子一旦离开反应堆就会被浪费掉. book.rbmk.title9=硼中子吸收器 -book.rbmk.page9=§l硼中子吸收器§r 只是阻挡中子. 被吸收的中子不会产生热量,会被有效地吸收. 这有助于防止燃料棒发生过度反应从而超出临界值. +book.rbmk.page9=§l硼中子吸收器§r 只是阻挡中子. 被吸收的中子不会产生热量, 会被有效地吸收. 这有助于防止燃料棒发生过度反应从而超出临界值. book.rbmk.title10=石墨慢化剂 book.rbmk.page10=§l石墨慢化剂§r 把穿过它的快中子转换成慢中子. 大多数核燃料反应释放出快中子, 而引起裂变需要慢中子, 所以强烈建议使用慢化剂. book.rbmk.title11=结构柱 @@ -230,253 +284,223 @@ book.rbmk.page11=§l结构柱§r 对中子没有任何影响也没有任何特 book.rbmk.title12=控制台 book.rbmk.page12=§lRBMK石墨式反应堆控制台§r 允许你远程控制反应堆. 使用 §lRBMK石墨式反应堆连接装置记录反应堆§r 然后潜行右击控制台就能把反应堆和控制台连接起来. 一个控制台只能控制15x15个组件, 对于大型反应堆可以使用多个控制台. book.rbmk.title13=控制台的使用 -book.rbmk.page13=单击屏幕上的组件将选择或取消选择它们. 使用彩色按钮,可以快速选择该颜色组中的所有控制棒. 按钮“A”将选择所有控制棒, “X”将取消选择所有控制棒. +book.rbmk.page13=单击屏幕上的组件将选择或取消选择它们. 使用彩色按钮, 可以快速选择该颜色组中的所有控制棒. 按钮“A”将选择所有控制棒, “X”将取消选择所有控制棒. book.rbmk.page14=在绿色框中输入一个介于0和100之间的数字, 然后按下旁边的按钮, 将所有选定的控制棒拔出程度设置到该位置. 按钮“AZ-5”将使所有控制棒完全插入. book.rbmk.title15=核燃料 book.rbmk.page15= §l核燃料§r 的反应取决于许多因素. 主要是 §l核燃料强度§r, §l氙中毒程度§r 和接收到的 §l中子数量§r. 氙元素会在核燃料的中子含量较低时积聚起来, 并在正常运行时燃烧殆尽. 中子的效率取决于其类型, 大多数核燃料 §l用慢中子轰击来裂变效果最好§r. book.rbmk.title16=熔毁 book.rbmk.page16=§4§l尽量避免发生, 你不会想让这样一场核灾难发生在你的存档或服务器里的. -book.starter.cover=重建$社会的实业家$指南 -book.starter.title1=介绍 -book.starter.page1=如果你正在读这篇文章,很可能社会已经因这样或 那样的方式完全崩溃了。政府、国家和权威是过去的概念, 以及文明生活的所有便利设施。因此,本指南将 告诉您如何通过重新创造过去的行业和技术 来改善自己的生活,从而改变这种状况。 -book.starter.title2=煤和芥子气 -book.starter.page2=虽然无法预测世界末日后的实际状态, 但目前形式的战争和工业不太可能没有结束。 为了保护自己的肺部,一种有效且廉价的方法是 在§L布§r上小便,制作一个§L防毒面具§r, 以使你免受煤尘或芥子气的伤害. -book.starter.title3=铁砧和锻压机 -book.starter.page3=开始工业振兴的精髓是§l砧§r和§l火力锻压机§r. 铁砧将允许您手动组合早期机械,如组装机, 而火力锻压机将允许您制作 无法用铁砧制作的板材、电线和电路. -book.starter.title4=模板 -book.starter.page4=为了将金属冲压成有用的 形状、组装机械和执行 化学反应,您需要创建 一个§L机器模板文件夹§r, 以创建右侧显示的 各种锻模以及配方。 -book.starter.title5=废墟探索 -book.starter.page5=根据最初的世界末日事件对世界现有结构的影响程度, 有可能直接从中抢救出许多有用的材料和机器。 钢铁等金属合金、电路等部件,甚至核电站的 裂变材料都可能在等着你。 然而,要小心某些废墟,因为那里可能潜伏着过度的危险, 就像草丛中的蛇一样; 等待着用辐射、陷阱或无法形容的恐怖袭击你... -book.starter.title6=早期机械 -book.starter.page6a=您应首先装配的两台机器是§l高炉§r和§l装配机§r. 前者允许您制造合金,如§L钢§r、§l工业级铜§r和§l高级合金§r; 你需要将这些金属用于机器的机身、 电路的布线、高级电磁铁等. -book.starter.page6b=汇编程序将用于创建本指南中描述的几乎所有其他机器. 您需要一个电源,如§L火力§r§L发电机§r或§L太阳能锅炉§r. -book.starter.page7a=§l粉碎机§r以及一对粉碎机刀片将会非常有用, 能将大多数矿石粉碎成可熔炼的粉末,使其产量提高一倍. 这些粉末对于开始为各种机器制作电路也至关重要, 例如§l增强电路§r和§l超频电路§r。 -book.starter.page7b=使用您的新机器,您可以创建§L化工厂§r, 用于合成更好的电路、混凝土或进行石化产品加工等。 -book.starter.title8=黑金 -book.starter.page8a=使用§l石油§l储层§r§l探测仪§r, 您可以通过测量一个区域 来发现地下的油岩以 放置§l石油钻机§r或 §l钻油塔§r来开采 记住,石油储备会随着时间 的推移而耗尽 -book.starter.page8b=在§l炼油厂§r中提炼和分离石油 成分之前,你必须在§l锅炉§r中将 石油加热至300°C. -book.starter.title9=石油化工产品 -book.starter.page9=使用§l化工厂§r, §l分馏§r§l塔§r和§l催化裂化§r§l塔§r, 你可以将分离出的油转化为各种有用的产品. §l催化裂化§r§l塔§r, 可以将分离出的油转化为各种有用的产品。 例如:§l聚合物§r或§l电木§r, 耐用又柔性的塑料; §lDesh§r, 一种非常耐用和耐热的稀土金属合金; §l固体燃料§r, 可燃烧获取能量; 甚至是§l液体燃料§r, 比如§l汽油§r, §l柴油§r, §l煤油§r等等。 -book.starter.title10=先进的机械 -book.starter.page10=通过一套成熟的石油加工系统,您可以制造§l离心机§r, 这将使矿石的产量增加三倍; §l矿物§l结晶机§r将 矿石结晶后,产量将进一步提高; 以及§lSILEX同位素激光分离室+§lFEL§r, 这两个现代工程的奇迹可以轻松地分离材料的同位素. 你需要更多的能量来驱动这些; 可通过§l柴油发电机§r,§l工业发电机§r, 甚至核反应堆等来源获取更多的能量。 -book.starter.title11=特殊地层 -book.starter.page11=在你行走的地面之下,有几个 自然形成的§l岩层§r,或者说特殊的 矿层和岩层。 §l片岩地层§r是蓝色的含锂层, 其中有铀、铁、铜、石棉和其他矿石 可供你使用。 §l深板岩层§r含有大量稀有矿物, 如§l锆§r、§l硼§r和§l朱砂§r等, 但你需要炸药才能采集 -book.starter.title12=辐射 -book.starter.page12a=本书其余部分将讨论与辐射有关的问题。 为了您和他人的安全,我将提供一些建议以说明如何缓解和处理暴露于此的风险。 -book.starter.page12b=充分暴露在辐射中会导致身体伤害. 第一步是预防; 一定要限制接触,并穿戴防护装备,如§l防辐射套装§r, 或在衣服或盔甲上加装§l防辐射覆层/涂料§r; 你也可以服用§lRad-X防辐射药§r来限制你的辐射量. 多亏了现代医学,第二步可以在必要时移除; 例如,§l玩家§l去污器§r将缓慢减少身体吸收的辐射. §l消辐宁§r还可以用作暴露后预防,快速有效地逆转 电离辐射对身体造成的损害。 -book.starter.title13=铀浓缩 -book.starter.page13=核反应堆的燃料有几个简单的选择; 例如,§l天然铀§r或§l钍燃料§r。 然而, 如果你寻找更强力的东西,你可以设置两台§l气体离心机§r 的浓缩级联,用剩余的§l铀-238§r生产§l铀燃料§r. 你必须将天然铀转化为§l黄饼§r,然后是§l六氟化§l铀§r. -book.starter.title14=芝加哥反应堆 -book.starter.page14=或者,您可以使用§l芝加哥反应堆§r从天然铀中增殖出 §l反应堆级钚§r,这是一种更强大的燃料. 通过堆叠石墨块并在其中钻孔,您可以将燃料棒插入钚 和中子源棒,例如§l镭226-铍中子源§r,以开始反应. 确保测试你的设计;为防止过热, 可能需要隔开或限制石墨块的数量。 -book.starter.title15=ZIRNOX锆诺克斯 -book.starter.page15=最终,你可以制造你的第一个§o真正§r的能源来源: §lZIRNOX§r核反应堆. 与其他能量源相比,核反应堆需要更多的准备; 首先,你需要有一个强悍的水源,比如§l重型§l无限水罐§r. 要从反应堆堆芯中排出热量并将水煮沸成蒸汽, 你需要足够的§l二氧化碳§r. 你只需要足够的压力, 不要让压力§o太§r大! 你还需要三个蒸汽涡轮机来利用产生的蒸汽来制造能量; §l蒸汽§l轮机§r或§l大型工业§l汽轮机§r将是最佳的. 最后,需要一个§l冷凝器§r或§l冷却塔§r来将残余蒸汽冷凝成水, 在这个冷却回路中可以将其排空或回收。 -book.starter.title16=结论 -book.starter.page16=如果你已经走到了这一步,你已经走在重建文明大道上了. 你已经成功地用核能, 石油化工等重新制造了世界末日前的那些先进机器. 我不知道你将如何利用这些新发现的科技, 但我个人希望你利用这些优势是为了自己和他人的利益 - 或者至少是为了自卫. 再见! -book.starter.title18=关于作者 -book.starter.page18=v?r只是一个被困在"传声头像"的§o《一生一次》§r中的 灰色虚空中太久的人. 有一次, 他发现了一扇工作室的门, 但令他沮丧的是, 他发现那是一个纸板剪出来的 -#book.rbmk.cover=HOW 2 RBMK:$The Basics$of Reactor$Construction -#book.rbmk.title1=Introduction -#book.rbmk.page1=The §lRBMK§r is a fully modular nuclear reactor. Unlike most other reactors, there is no "core", and no size limitations, rather, the behavior and efficiency of the reactor comes from how it is built and how the different pieces interact with each other. -#book.rbmk.title2=Heat -#book.rbmk.page2=As the reactor operates, it will generate §lheat§r. Heat will spread between parts, slowly decreasing in the process. The goal is to produce as much heat as possible without melting the reactor, and to move that heat to a §lsteam channel§r which cools the reactor and produces steam. -#book.rbmk.title3=Fuel Rod -#book.rbmk.page3=The §lfuel rod§r will capture neutron flux, causing the fuel inside the fuel rod to react, giving off neutrons in the process. Neutrons are released in all four cardinal directions with a maximum range of 5 blocks. The amount of neutrons released depends on the §lfuel§r used. -#book.rbmk.title4=Control Rod -#book.rbmk.page4=The §lcontrol rod§r will decrease the amount of neutrons passing though it. Fully inserted, it will block all neutrons, at half insertion, it will only block half. Control rods are used to regulate the reactor's activity and to turn it off. -#book.rbmk.title5=Control Rod - Usage -#book.rbmk.page5=The center of the GUI will display the current rod insertion. The colored buttons on the left will add a control rod to a color group, which is useful to quickly select grouped rods from the §lRBMK console§r. The buttons on the right allow for manual insertion in increments of 25%%. -#book.rbmk.title6=Automatic Control Rod -#book.rbmk.page6=§lAutomatic control rods§r function nearly identical to regular control rods, but they cannot be configured manually, instead they will adjust the rod position based on the current temperature. What function to use and how deep to insert at what temperature has to be defined first. -#book.rbmk.title7=Steam Channel -#book.rbmk.page7=The §lsteam channel§r is the only part that will actively reduce the reactor's heat level. If the component's temperature exceeds the boiling point of the set steam type, it will try to consume as much water and produce as much steam as needed to cool back below the boiling point. -#book.rbmk.title8=Neutron Reflector -#book.rbmk.page8=The §lneutron reflector§r will block neutrons from passing it, instead the neutrons will be reflected back at the fuel rod they came from. This is useful for utilizing neutrons that would otherwise be wasted by simply exiting the reactor. -#book.rbmk.title9=Neutron Absorber -#book.rbmk.page9=The §lneutron absorber§r will simply block neutrons. Neutrons absorbed will not generate heat and be effectively voided. This is useful to prevent fuel rods from reacting that would otherwise be in range. -#book.rbmk.title10=Graphite Moderator -#book.rbmk.page10=The §lgraphite moderator§r will convert fast neutrons passing through it into slow neutrons. Most fuels fission into fast neutrons while needing slow neutrons to split, so using moderators is strongly recommended. -#book.rbmk.title11=Structural Column -#book.rbmk.page11=The §lstructural column§r will not interfere with neutrons, nor does it have special uses. It is recommended to fill the reactor with structural columns where no other parts will be, because structural columns are capable of transporting heat. -#book.rbmk.title12=Console -#book.rbmk.page12=The §lRBMK console§r lets you control the reactor from afar. Using the §lRBMK§r §lconsole linking device§r on an RBMK part and then the console will link the reactor to the console. The console can only manage 15x15 parts, for larger reactors you might want to use multiple consoles. -#book.rbmk.title13=Console Usage -#book.rbmk.page13=Clicking on the parts will select and deselect them. Using the colored buttons, you can quickly select all control rods of that color group. Button 'A' will select all control rods, 'X' will deselect all. -#book.rbmk.page14=Entering a number 0-100 in the green box and then hitting the button next to it will set all selected control rods to this position. Button 'AZ-5' will cause all control rods to fully insert. -#book.rbmk.title15=Fuel -#book.rbmk.page15=The §lfuel§r's reactivity is based on multiple factors. The main ones are the §lenrichment§r, §lxenon poison§r and the amount of incoming §lneutrons§r. Xenon builds up when the fuel receives few neutrons and burns away during normal operation. The effectivity of neutrons depends on the type, most fuels §lsplit best with slow neutrons§r. -#book.rbmk.title16=Meltdown -#book.rbmk.page16=§4§lAvoid. -book_lore.author=By %s + +book_lore.author= %s 著 book_lore.test.name=测试 book_lore.test.author=那个家伙 -book_lore.test.page.1=>你好,在我开始之前,让我澄清我不是同性恋。>做我>今天晚上>18>和我最好的朋友和我的父母出去玩了几天>我们已经是最好的朋友一年了>喝了点酒,玩了很多电子游戏,还点了一份披萨>我们玩得很开心>在晚上的某个时候,比如9点左右,他开了一个非常有趣的玩笑,我不记得了,但我知道这让我们俩都笑得很厉害>没有我想我用右手摸了摸他那半卷曲的黑发,然后叫他一个有趣的男孩>他脸红了>我意识到我很慌张>我们有点亲密>突然他吻了我,出于某种原因我又吻了他>我们做爱>拥抱在一起睡着了>半夜醒来时,他的头贴在我的胸部和颈部>感觉很好,但我不是同性恋 -book_lore.test.page.2=他在我怀里睡着时,我正在打字。我怎么才能让我最好的朋友失望呢?我不想成为[编辑]/b/ -book_lore.test.page.3=3 +book_lore.test.page.1=>在我开始之前,请允许我 澄清我不是同性恋. >做我 >今晚 >18点 >趁我的父母走了几天,和我最好 的朋友一起出去玩 >我们已经是一年的好朋友了 >喝了点酒,玩了很多电子游戏, 还点了一个比萨饼 >我们玩得很开心 >在晚上的某个时刻,比如9点 左右,他开了一个非常有趣的 玩笑,我不记得了, 但我知道这让我们都笑得很开心 > 我不假思索地用右手 +book_lore.test.page.2=拂过他半卷曲的黑发, 说他真是一个有趣的男孩 >他脸红了 >我意识到我很慌乱 >我们有点太亲近了 >突然他吻了我,出于某种原因 我回吻了他 >我们做爱了 >拥抱在一起睡着了 >半夜醒来,他的头紧贴在我的 胸口和脖子上 >这感觉很好, 但我仍是个钢铁直男 +book_lore.test.page.3=我在他在我怀里睡着的时候 写了这个. 我怎么能让我最好的 朋友失望呢? 我可不想成为一个 [弱智] /b/ book_lore.test.page.4=4 book_lore.test.page.5=5 + book_lore.book_iodine.name=笔记 book_lore.book_iodine.author=戴夫 -book_lore.book_iodine.page.1=alright you will not believe this, but old man weathervane finally managed to show up again since he left two weeks ago and what's more surprising is the fact that he actually decided to spill the beans on what they were doing in the canyon: -book_lore.book_iodine.page.2=apparently the morons from R&D discovered a compound that is mostly inorganic, pretty much like a toxin in nature, but get this: the dying cells will reproduce said toxin and excrete it through the skin, creating an aerosol that is highly contagious. -book_lore.book_iodine.page.3=it's just like a virus, but not a virus. the composition is weird, you can mix it in any household bottle but you do have to get the order right. the doc told me that the first ingredient which is just powdered iodine crystals goes into slot %d +book_lore.book_iodine.page.1=好吧,你不会相信的, 但自从两周前离开后,这位老人终于再次出现了。更令人惊讶的是,他竟然决定把他们在峡谷里的所作所为泄露出去: +book_lore.book_iodine.page.2=显然,研发部门的白痴们发现了一种主要是无机的化合物, 很像自然界中的毒素, 但要记住:濒死的细胞会繁殖毒素并通过皮肤排出, 产生一种具有高度传染性的气溶胶. +book_lore.book_iodine.page.3=就像病毒一样, 但不是病毒. 它的成分很奇怪, 你可以把它放在任何家用瓶子里,但你必须把顺序弄对. 博士告诉我第一种成分是粉末状的碘晶体,要放进槽 %d + book_lore.book_phosphorous.name=笔记 book_lore.book_phosphorous.author=戴夫 -book_lore.book_phosphorous.page.1=heyo, it's me again. i assume you got my last memo, the doc wasn't too happy about it. i'll have to do this quick, the dunderheads from R&D are currently moaning again, probably over money. again. anyway, doc weathervane found that the second -book_lore.book_phosphorous.page.2=ingredient is red phosphorous, whihc has to be mixed into slot %d +book_lore.book_phosphorous.page.1=嘿,又是我. 我想你收到了我最后的备忘录,博士对此不太高兴. 我得动作快点, 研发部门的笨蛋们现在又在抱怨了, 可能是因为钱, 又一次. 无论如何, 风向标博士发现第二种 +book_lore.book_phosphorous.page.2=成分是红磷, 必须将其混入 %d槽中 + book_lore.book_dust.name=笔记 book_lore.book_dust.author=戴夫 -book_lore.book_dust.page.1=the doc was furious when he found out that the R&D dorks kept the one remaining sample, ranting about gross negligence this and a doomsday scenario that. i told him to chill for a minute, getting all worked up isn't good for his blood pressure, not -book_lore.book_dust.page.2=that he has much blood left to begin with. one of the R&D morons slipped some more info into last week's circular, they call their little concoction \"MKU\" whatever that means, and that it contains actual household lint. can you believe that? one of the most -book_lore.book_dust.page.3=dangerous inventions of theirs and it contains dust. strangely they also mentioned that it goes into slot %d +book_lore.book_dust.page.1=当博士发现研发人员保留了剩下的一个样本时,他大发雷霆, 大喊大叫说这是严重的疏忽,简直是世界末日的剧本. 我告诉他冷静一分钟, 紧张起来对他的血压没有好处, 并 +book_lore.book_dust.page.2=不是说他还剩下很多血. 一个研发部的白痴在上周的通告中透露了更多信息, 他们称他们那宝贝混合物 \"MKU\" ,鬼知道这是啥意思, 它含有货真价实的家用棉绒. 你能相信吗? 这是他们 +book_lore.book_dust.page.3=最危险的发明之一而它含有灰尘. 奇怪的是,他们还提到它会进入槽 %d + book_lore.book_mercury.name=笔记 book_lore.book_mercury.author=戴夫 -book_lore.book_mercury.page.1=well that settles that. not counting the vomitting blood part, the toxicological report mostly resembles that of mercury poisoning. why? because our little mix also contains mercury! i just wonder where all that stuff comes from when being -book_lore.book_mercury.page.2=replicated by the body? whatever, the mercury goes into slot %d +book_lore.book_mercury.page.1=好吧,这就说得通了. 不包括呕吐的血液部分, 毒理学报告表明其主要类似于汞中毒. 为什么? 因为我们的小混合物也含有汞! 我只是想知道当这些东西 +book_lore.book_mercury.page.2=被身体复制时,它们从哪来? 不管怎样,水银要进入槽 %d + book_lore.book_flower.name=笔记 book_lore.book_flower.author=戴夫 -book_lore.book_flower.page.1=remember when i mentioned in my first memo that the compound is mostly anorganic? well guess what, the old man shared the fourth ingredient: ipomoea nil, a genus of flower. morning glory! it might be due to its low sulfur content, whatever might be the case, -book_lore.book_flower.page.2=it does not work with other flowers. the morning glory goes into slot %d +book_lore.book_flower.page.1=还记得我在第一份备忘录中提到的化合物大多是无机的吗? 好吧,你猜怎么着, 那个老家伙分享了第四种配料: 牵牛花, 花的一属. 就是喇叭花! 可能是因为它的硫含量低, 不管是什么情况, +book_lore.book_flower.page.2=其他花就是不起作用. 牵牛花要放入槽 %d + book_lore.book_syringe.name=笔记 book_lore.book_syringe.author=戴夫 -book_lore.book_syringe.page.1=a little addendum to my fifth message, obviously you have to store this MKU stuff in a container. the R&D nuts used regular metal syringes that they got from medical. surplus ware i presume, they got thousands of needles just lying around. the metal -book_lore.book_syringe.page.2=syringe goes into slot %d +book_lore.book_syringe.page.1=我第五条留言的一个小附录, 显然你必须把这些叫MKU的东西放在一个容器里. 研发人员使用的是从医疗机构购买的普通金属注射器. 我猜是多余的, 他们有成千上万的针头. +book_lore.book_syringe.page.2=金属注射器要放入槽 %d + book_lore.resignation_note.name=辞职信 book_lore.resignation_note.author=科斯马 -book_lore.resignation_note.page.1=管理层昨天又对我们的部门进行裁员了。那群白痴要怪只能怪他们自己,我都不知道他们在那场惨败后还在期待什么。到底是谁他妈泄露了那种程度的信息? -book_lore.resignation_note.page.2=我们损失了几百万,而且现在失业的还是爷。老子希望你们这帮混蛋最后能从你们的一堆问题中学到点教训然后给爷滚去自闭。 -book_lore.resignation_note.page.3=我周五不回来了。工资寄过来就行。 -book_lore.memo_stocks.name=公司内部备忘录 -book_lore.memo_stocks.page.1=投资者报告 - $$最新的季度报告中提供的数据存在一些明显的差异。财政部所作出一些调整是明智的,因此不必有任何担忧。 +book_lore.resignation_note.page.1=管理层昨天又缩减了我们的 部门.那些白痴只能怪自己, 我不知道他们在那场惨败后 会还有什么期待. 到底是谁泄露了这种信息? 我们损失了数百万 +book_lore.resignation_note.page.2=现在是我失业了. 我是那个被要求辞职的人. 我希望你们这些混蛋们终于 从自己的错误中吸取教训, 把那根棍子从屁股里拿出来. +book_lore.resignation_note.page.3=我星期五不会回来的. 发工资就行了. + +book_lore.memo_stocks.name=内部备忘录 +book_lore.memo_stocks.page.1=投资者关系部 - $ $ 最新季度报告中提供的数据 存在一些明显的差异. 让财务部门进行一些调整是 谨慎的做法, 所以不用有任何顾虑. + book_lore.memo_schrab_gsa.name=内部备忘录 -book_lore.memo_schrab_gsa.page.1=合同管理记录 - 法务部在与美国国防部后勤局的谈判中取得了突破。他们批准了450亿的联邦采购服务总署投资资金用于异变金属的采购与研究。 -book_lore.memo_schrab_gsa.page.2=就目前预期来看,这将至少产生40%的利润,更不必说以后行动所产生的利润,同时这将使我们未来有机会签订更多合同。鉴于此事的保密性质,所有财政证据都将为机密级别 +book_lore.memo_schrab_gsa.page.1=合同管理部 - $ $ 法律部与DLA取得了突破. 他们授予我们450亿GSA计划, 用于进一步采购和研究saralloy. 根据目前的估计 +book_lore.memo_schrab_gsa.page.2=相关业务的利润至少为 40%%, 更不用说未来合同的可能性了. 由于保密性质,所有财务证据 都应保密. + book_lore.memo_schrab_rd.name=内部备忘录 -book_lore.memo_schrab_rd.page.1=研发 - 目前我们主要生产方法是使用新型粒子加速器。然而,与产出量相比,能源成本高得惊人。 -book_lore.memo_schrab_rd.page.2=然而,Schrabauer博士发现了一种全新的相互作用——暂称为“奇异轻子振荡”——该作用可以显著降低生产成本。通过一个目前未被完全理解的的过程,提供的电子被一种奇特的“魔力”转化为极高能量的光子。 -book_lore.memo_schrab_rd.page.3=这是许多已明确的粒子转换定律的极端例外。但初步实验证明,这些质子先转变为上下夸克,最终形成了异变金属。奇怪的是,原型机中需要钨与少量异变金属合金化所得到的合金。 -book_lore.memo_schrab_rd.page.4=除此之外,还需要一个特殊的电容器用来抵消掉多余的正电荷。 +book_lore.memo_schrab_rd.page.1=研究与开发部 - $ $ 我们生产saralloy的主要方法是 使用新型粒子加速器. 然而, 与产量相比,能源成本过高. +book_lore.memo_schrab_rd.page.2=然而,Schrabauer博士发现 了一种新的相互作用, 称为 "奇异轻子振荡",可以 显著降低成本. 通过一个不完 全被理解的过程, 所提供的电 子通过一种 +book_lore.memo_schrab_rd.page.3=奇特的作用被转化为极高能 量的光子. 这是许多既定粒子 转化定律的极端例外, 但初步 实验证明,这些质子转变为 上下夸克,最终形成了 saralloy. +book_lore.memo_schrab_rd.page.4=奇怪的是,原型需要钨合金 和少量的 saralloy. 此外, 需要一个特殊的电容器来 抵消剩余的正电荷. + book_lore.memo_schrab_nuke.name=研究报告 book_lore.memo_schrab_nuke.author=Schrabauer博士 -book_lore.memo_schrab_nuke.page.1=最近的调查使我们了解了核爆炸对材料造成的影响。多亏外界给我们的赠款,我们*意外地*测试了铀直接合成异变金属的理论。 -book_lore.memo_schrab_nuke.page.2=而此前我们只在回旋加速器中制作出异变金属。但这次,我们在对Everwerpen的地下拍摄中,在该地点的铀矿石中发现了微量的异变金属。其附近所有的纯金属铀则都发生了裂变。 -book_lore.memo_schrab_nuke.page.3=因此,如果有足够多的铀矿石集中在核弹周围,甚至可能只需要一个富含裂变物质废料的脏弹,就有可能制造出质量大到可以被直接收集的异变金属。 -book_lore.insanity_1.name=残缺的纸张 -book_lore.insanity_1.author=D·弗格森 -book_lore.insanity_1.page.1=August 6th $ $ Months, no, years worth of dicking about wrestling with investors and operating the greatest energy hog in the northern hemisphere has finally paid off. -book_lore.insanity_1.page.2=While we aren't entirely sure what exactly we found - given we ran gigavolt collisions on particles that were still poorly documented - the results couldn't have been more exciting. -book_lore.insanity_1.page.3=We haven't found a name for whatever it is we've found, nor are we sure if we're looking at a new type of particle, a wormhole leading into another dimension, or satan's anus, but I'm sure our PR people can come up with something. -book_lore.insanity_2.name=残缺的纸张 -book_lore.insanity_2.author=D·弗格森 -book_lore.insanity_2.page.1=August 8th $ $ We've kept "The Thing" (yes that's what we call it for now) in magnetic isolation for the past days. Spectroscopy tests ended up breaking our spectrometer, but we managed to gain some useful data. -book_lore.insanity_2.page.2=For starters, this thing glows like a christmas tree, radiation photons of about every wavelength you could think of enveloped by a powerful infrared corona. The logical conclusion is that looking at it with your naked -book_lore.insanity_2.page.3=eye would most likely kill you. Now that begs the question: How can a particle this tiny radiate such immense energy? What are you hiding, little man? -book_lore.insanity_3.name=残缺的纸张 -book_lore.insanity_3.author=D·弗格森 -book_lore.insanity_3.page.1=August 22nd $ $ I haven't slept right in days. Doc said he couldn't find anything. Been on all sorts of medication now, but the headaches only get worse. Lab boys suspect it might be contamination from the incident two weeks ago. -book_lore.insanity_3.page.2=Doc said it's not that likely, ARS is different. I might need to take some time off if this continues. The Thing is still in containment, the lab boys speculate if the field goes down, the entire complex turns into a mushroom cloud. -book_lore.insanity_3.page.3=I'm not sure how administration can keep this calm, but i don't get paid enough to waste thoughts on that. -book_lore.insanity_4.name=残缺的纸张 -book_lore.insanity_4.author=D·弗格森 -book_lore.insanity_4.page.1=August 28th $ $ They denied my request for leave and I've been pushing through the past few days. Headaches are getting worse. I'm not the only one who's feeling it, either. Some of the lab boys are in a similar situation. -book_lore.insanity_4.page.2=All the while The Thing has left the complex - GOOD. Some suits came in yesterday and had it shipped off, god knows where. One of the lab boys, Zachary, said they're probably burying the containment vessel in the desert, slowly -book_lore.insanity_4.page.3=trying to "fizzle out" The Thing far off from civilization. I say let's shoot it into space. Needless to say, our investors cut all funding for the time being. I should start looking for another job. -book_lore.insanity_5.name=残缺的纸张 -book_lore.insanity_5.author=D·弗格森 -book_lore.insanity_5.page.1=September 11th $ $ I'm having this re-occurring nightmare. I'm walking around in an open space and there's these people everywhere, people in rubber suits and freakishly deformed faces. It's always the same nightmare, -book_lore.insanity_5.page.2=and one of the guys from the lab I've spoken with lately has had the same dream. Meanwhile my post has been rather boring, the accelerator has been shut down, all ongoing projects are on halt and our budget is slowly melting away. -book_lore.insanity_5.page.3=Something is telling me that The Thing is still out there somewhere. I can feel it. -book_lore.insanity_6.name=残缺的纸张 -book_lore.insanity_6.author=D·弗格森 -book_lore.insanity_6.page.1=October 3rd $ $ Half the staff is dead, most of the rest is in the ICU. My condition hasn't changed in the past weeks, for better or worse. -book_lore.insanity_6.page.2=Reality is starting to feel less and less real however. Sometimes I look up into the sky at night and hallucinate that thing we discovered all those weeks ago. -book_lore.insanity_6.page.3=That same brilliant sheen of crimson that our spectrometer spat out. My doc says it's delirium and stress caused by the incident, and perhaps hes right, but the meds aren't working at all. -book_lore.insanity_7.name=残缺的纸张 -book_lore.insanity_7.author=D·弗格森 -book_lore.insanity_7.page.1=December 12th $ $ I've been out of a job, but to be honest I'm somewhat thankful about it. My old workplace has gone up in flames - or so they say. -book_lore.insanity_7.page.2=The seismological observatory a couple miles south recorded constant earthquakes for days on end, not that anyone else would have noticed this deep in the desert. -book_lore.insanity_7.page.3=I have concluded that this place was cursed, making everyone sick and then descending into hell like some sort of Edgar Allan Poe story. Good riddance. -cannery.f1=[按F1键获取帮助] +book_lore.memo_schrab_nuke.page.1=我们最近的调查使我们了 解了核爆炸对材料的影响. 感谢给我们的赠款, 我们 *意外地* 测试了 我们从铀直接合成 saralloy的理论. +book_lore.memo_schrab_nuke.page.2=以前只有我们的回旋加速 器真正创造了saralloy. 然而,在我们在埃弗沃彭 的地下拍摄中,在现场的 铀矿中发现了微量的saralloy. 附近所有纯金属铀都发生了 裂变. +book_lore.memo_schrab_nuke.page.3=因此,如果有足够多的铀 矿石集中在炸药周围, 甚至可能是一枚富含可裂 变材料的脏弹,人们可以 理论上制造出足够多的 saralloy来人工收集. + +book_lore.insanity_1.name=撕裂的书页 +book_lore.insanity_1.author=Ferguson博士 +book_lore.insanity_1.page.1=8月6日$ $几个月,不,几年来, 为了与投资者角力和运营 北半球最大的能源市场而 讨价还价,终于有了回报. +book_lore.insanity_1.page.2=虽然我们不能完全确定 我们到底发现了什么—— 考虑到我们在粒子上进行了 千兆伏特的碰撞,而这些 粒子的记录仍然很差—— 但结果再令人兴奋不过了. +book_lore.insanity_1.page.3=我们还没有为我们发现的 这东西找到一个名字, 也不确定我们是否在寻找 一种新的粒子, 一个通向另一个维度的虫洞, 或者撒旦的肛门, 但我相信我们的公关人员 可以想出一些办法. + +book_lore.insanity_2.name=撕裂的书页 +book_lore.insanity_2.author=Ferguson博士 +book_lore.insanity_2.page.1=8月8日$ $过去几天,我们一直将 “The Thing” (是的,我们现在就是 这么称呼这玩意的) 保持在磁隔离状态。 光谱测试最终搞坏了 我们的光谱仪,但我们 设法获得了一些有用的数据. +book_lore.insanity_2.page.2=首先,这东西像圣诞树 一样发光,你能想到的 每种波长的辐射光子都被 强大的红外日冕所包围。 逻辑上的结论是, 用肉眼看它很可能会杀死你。 +book_lore.insanity_2.page.3=这就引出了一个问题: 这么小的粒子怎么能辐射 出如此巨大的能量? 你隐藏了些什么,小家伙? + +book_lore.insanity_3.name=撕裂的书页 +book_lore.insanity_3.author=Ferguson博士 +book_lore.insanity_3.page.1=8月22日 $ $ 我已经好几天没睡好了。 医生说他什么毛病都找不到。 现在我正在服用各种药物, 但头痛只会加重。 实验室工作人员怀疑这 可能是两周前的事件造成 的污染. +book_lore.insanity_3.page.2=医生说不太可能, 这症状和急性放射病不同。 如果这种情况持续下去, 我可能需要休息一段时间。 实验人员推测, 如果约束磁场下降, 整个综合体建筑群就会变成 蘑菇云. +book_lore.insanity_3.page.3=我不知道行政部门如何 保持冷静,但我没有被 支付足够的薪水来浪费时间. + +book_lore.insanity_4.name=撕裂的书页 +book_lore.insanity_4.author=Ferguson博士 +book_lore.insanity_4.page.1=8月28日 $ $ 他们拒绝了我的请假请求, 过去几天我一直在努力。 头痛越来越严重了。 我也不是唯一有这种感 觉的人。一些实验室的人员 也有类似的情况. +book_lore.insanity_4.page.2=The Thing终于离开了综合体 -真tm棒。 昨天有几套西装运过来, 天知道在哪里。 一名实验室人员扎卡里说, 他们可能正在把密封装置 埋在沙漠里, +book_lore.insanity_4.page.3=慢慢地试图让The Thing 远离文明来“虎头蛇尾 地结束”。要我说我们应 把它射向太空。 不用说,我们的投资者 暂时削减了所有资金。 我应该开始找另一份工作了. + +book_lore.insanity_5.name=撕裂的书页 +book_lore.insanity_5.author=Ferguson博士 +book_lore.insanity_5.page.1=9月11日 $ $ 我正在反复做一场噩梦。 我在一块空地上走来走去, 到处都是这些人, 穿着橡胶服和长着畸形的脸。 总是一样的噩梦, +book_lore.insanity_5.page.2=和我最近交谈过的一个实验 室的同事也做了同样的梦。 与此同时,我的工作已经 相当枯燥了,加速器已经 关闭,所有正在进行的 项目都停止了,我们的 预算也在慢慢减少. +book_lore.insanity_5.page.3=有某种东西在告诉我 The Thing还在某处。 我能感觉到. + +book_lore.insanity_6.name=撕裂的书页 +book_lore.insanity_6.author=Ferguson博士 +book_lore.insanity_6.page.1=10月3日 $ $ 一半的工作人员已经死亡, 其余大部分在ICU。 我的病情在过去几周里 没有改变,无论是好是坏. +book_lore.insanity_6.page.2=然而,现实开始变得越来越 不真实。 有时我会在夜晚仰望天空, 幻想着我们在几个星期前 发现的东西. +book_lore.insanity_6.page.3=我们的分光计吐出的同样 灿烂的深红光泽。 我的医生说这是由这起事件 引起的精神错乱和压力, 也许他是对的, 但药物根本不起作用. + +book_lore.insanity_7.name=撕裂的书页 +book_lore.insanity_7.author=Ferguson博士 +book_lore.insanity_7.page.1=12月12日 $ $ 我已经失业了,但老实说, 我对此有些感激。 我以前的工作场所已经 付之一炬了 ——他们这么说的. +book_lore.insanity_7.page.2=南部几英里处的地震观测站 连续几天记录到持续不断的 地震,而其他任何人都不会 注意到沙漠深处. +book_lore.insanity_7.page.3=我的结论是,这个地方被 诅咒了,让每个人都感到恶心, 然后像埃德加·爱伦·坡 (Edgar Allan Poe)的故事 一样坠入地狱。 谢天谢地. + +cannery.f1=[ 按下 F1 思索 ] + cannery.centrifuge=气体离心机 -cannery.centrifuge.0=气体离心机可以使用通用流体管道传输流体。 -cannery.centrifuge.1=大多数配方需要多台离心机。中间产品不能通过管道运输。 -cannery.centrifuge.2=该侧用作将中间产品输出到相邻离心机的连接口。 -cannery.centrifuge.3=六氟化铀只需两台离心机即可加工,但这将只产出铀燃料和铀-238。 -cannery.centrifuge.4=将其完全加工成铀-235和铀-238总共需要四台离心机。 -cannery.centrifuge.5=一些配方还需要离心机超频升级。 +cannery.centrifuge.0=气体离心机可以使用常规流体管道提供流体. +cannery.centrifuge.1=大多数配方需要多台离心机. 中间产物不能通过管道运输. +cannery.centrifuge.2=这一侧充当连接器,将中间产品输出到相邻的离心机中. +cannery.centrifuge.3=六氟化铀只需两台离心机即可处理, 然而这将只能生产铀燃料和铀-238. +cannery.centrifuge.4=将其完全加工成铀-235和铀-238需要总共四台离心机. +cannery.centrifuge.5=一些配方还需要离心机超频升级. + cannery.crucible=坩埚 -cannery.crucible.0=坩埚用于熔炼矿石、铸锭或其他金属物品以进行合金化,并将其铸造成不同形状。 -cannery.crucible.1=它需要一个外部热源连接到底部,例如燃烧室。 -cannery.crucible.2=一旦加热,坩埚可以以两种方式运行,有或没有配方模板。 -cannery.crucible.3=坩埚有两个材料储存缓冲区: -cannery.crucible.4=左边的缓冲区用于缓存§a副产品§r,所有没有配方模板的熔炼材料都将缓存在这里。 -cannery.crucible.5=如果有熔炼配方,与配方不匹配的材料也将存储在这里。 -cannery.crucible.6=该缓冲区中的材料不会相互反应,只能从绿色出口输出用于铸造。 -cannery.crucible.7=右侧的缓冲区用于放入§c配方§r,如果安装了一个配方,并且该特定材料与该配方相关,则它将储存在此处。 -cannery.crucible.8=这些材料将慢慢结合成输出材料,从红色出口自动输出。 -cannery.crucible.9=请注意,只有这个缓冲区处理配方。如果更换模板,副产品缓冲区中的材料不会结合,也不会转移到配方缓冲区。 -cannery.crucible.10=如果目标有效,例如铸造通道或模具,出口将自动输出材料。 -cannery.crucible.11=与所有铸造块一样,可以使用铲子从坩埚中移除所有材料。 -cannery.fensu=FEnSU -cannery.fensu.0=FEnSU能够存储超过9EHE(即9后18个零)的荒谬能量。 -cannery.fensu.1=只有在其底部有一个电线接口。 -cannery.fensu.2=这也是FEnSU唯一可以接收红石信号的地方。 +cannery.crucible.0=坩埚用于熔炼矿石、铸锭或其他金属物品以进行合金化,并将其铸造成不同形状. +cannery.crucible.1=它需要一个连接到底部的外部热源,如燃烧室. +cannery.crucible.2=一旦加热,坩埚可以以两种方式使用,有或没有配方模板. +cannery.crucible.3=坩埚有两个材料储存缓冲区: +cannery.crucible.4=左边的缓冲区是§a副产品§r, 所有没有配方模板的熔炼材料都会储存在这里. +cannery.crucible.5=如果安装了配方,与配方不匹配的材料也将存储在这里. +cannery.crucible.6=该缓冲区中的材料不会相互反应,只能从绿色出口输出用于铸造. +cannery.crucible.7=右边的缓冲区是用于§c合金配方§r的, 如果安装了配方,并且该特定材料与该配方相关,它将储存在这里. +cannery.crucible.8=这些材料将慢慢结合成合金材料,从红色出口自动输出. +cannery.crucible.9=请注意,只有这个缓冲区处理配方. 如果先加原料后安装模板,副产品缓冲区中的材料将不会结合,也不会转移到配方缓冲区. +cannery.crucible.10=如果对着的方块正确,出口将自动输出材料,例如铸造通道或模具. +cannery.crucible.11=与所有铸造块一样,可以使用铲子从坩埚中移除所有材料. + +cannery.fensu=FEnSU飞轮储能系统 +cannery.fensu.0=FEnSU飞轮储能系统能够存储超过9EHE (即9后面接18个零)的荒谬能量. +cannery.fensu.1=只有底部有一个能量连接器. +cannery.fensu.2=这也是FEnSU唯一可以接收红石信号的地方. + cannery.firebox=燃烧室 -cannery.firebox.0=燃烧室通过燃烧可燃物品产生热量。 -cannery.firebox.1=它可以燃烧任何可燃物品,但更高质量的燃料如煤、焦炭和固体燃料燃烧时间更长,温度更高。 -cannery.firebox.2=燃烧室顶部的铜触点可以传导热量。底部具有相同触点的机器可以通过放置在燃烧室顶部来接收热量。 -cannery.firebox.3=如果热量没有用完,且热量缓冲器变满,燃烧室将暂停运行,以防止燃料浪费。 -cannery.firebox.4=一种这样的机器是斯特林发动机,它将热量直接转化为能量。 -cannery.foundryChannel=铸造通道 -cannery.foundryChannel.0=铸造通道用于将熔融材料从坩埚或储罐输送到模具中。 -cannery.foundryChannel.1=通道可以通过从顶部(通过出口或直接连接坩埚)或从其他通道的侧面倾倒来接收材料。 -cannery.foundryChannel.2=运输材料时,渠道将优先考虑出口和浅铸造池等方块。 -cannery.foundryChannel.3=当无法供应出口或模具时,材料将流入相邻通道。 -cannery.foundryChannel.4=剩余材料可以用铲子清除。 -cannery.silex=FEL & SILEX -cannery.silex.0=自由电子激光器(FEL)利用能量和激光晶体产生强大的激光束。 -cannery.silex.1=小心,因为激光会烧毁或熔化较脆弱的方块… -cannery.silex.2=…但不是防爆的。 -cannery.silex.3=FEL用于为激光同位素分离室(SILEX)提供能量。FEL和SILEX必须至少相隔两个方块。 -cannery.silex.4=激光必须通过SILEX的玻璃开口进入。在错误的方向上入射可能会摧毁它。 -cannery.silex.5=侧面的开口可以使流体管道连接至SILEX上。 -cannery.silex.6=除了侧面的两个连接口之外,底部还有第三个隐藏连接口,可以从中抽取产品。 -cannery.silex.7=每个配方都需要特定的激光类型。使用比所需类型更强的激光将更快地处理项目。 -cannery.silex.8=一台FEL最多可以为5台SILEX供能。每个SILEX之间必须间隔一个方块。 -cannery.stirling=斯特林发电机 -cannery.stirling.0=斯特林发动机使用来自外部的热能来产生能量。 -cannery.stirling.1=它需要放置在发热机器的顶部,如燃烧室。 -cannery.stirling.2=然而,它可以利用的热量有限,过旋转可能导致灾难性故障。 -cannery.stirling.3=升级版可以在不损坏的情况下承受更多热量。 +cannery.firebox.0=燃烧室燃烧易燃物品以产生热量. +cannery.firebox.1=它可以燃烧任何易燃物品, 尽管煤、焦炭和固体燃料等质量较高的燃料燃烧时间更长、温度更高. +cannery.firebox.2=燃烧室顶部的铜触点放出热量. 底部有相同铜触点的机器可以通过放置在燃烧室顶部来接收热量. +cannery.firebox.3=如果热量没有用完,并且热缓冲区已满,则火箱将关闭以防止浪费燃料. +cannery.firebox.4=斯特林发动机就是这些机器的其中之一,它将热量直接转化为能量. + +cannery.foundryChannel=浇筑道 +cannery.foundryChannel.0=浇筑道用于将熔融材料从坩埚或储罐输送到浇筑盆中. +cannery.foundryChannel.1=通道可以通过从顶部(通过浇筑口或从坩埚出口)或从其他通道的侧面倾倒来接收材料. +cannery.foundryChannel.2=运输材料时,浇筑道将优先考虑浇筑口和浅浇筑盆等块. +cannery.foundryChannel.3=当无法供应浇筑口和浇筑盆时,材料将流入相邻通道. +cannery.foundryChannel.4=剩余材料可使用铲子清除. + +cannery.silex=FEL & SILEX同位素激光分离室 +cannery.silex.0=自由电子激光器(FEL) 会利用能量和激光晶体产生一道强大的激光束. +cannery.silex.1=小心,因为激光会烧毁/熔化强度不足的方块... +cannery.silex.2=...而防爆方块则能够阻挡. +cannery.silex.3=FEL用于为激光同位素分离室(SILEX)供能. FEL和SILEX必须至少相隔两个方块. +cannery.silex.4=激光器必须从SILEX的玻璃开口进入. 瞄准了错误的地方可能会毁掉它. +cannery.silex.5=侧面的开口可用于将流体管道连接至SILEX. +cannery.silex.6=除了侧面的两个IO接口外,底部还有第三个隐藏IO接口,可以从中提取物品. +cannery.silex.7=每个配方都需要特定的激光类型. 使用比要求激光类型更强的类型将更快地处理. +cannery.silex.8=一个FEL最多可供应5个SILEX. 每个SILEX必须彼此相隔一个方块. + +cannery.stirling=斯特林发动机 +cannery.stirling.0=斯特林发动机利用外部热源产生的热能来发电. +cannery.stirling.1=它需要放置在发热机器的顶部,例如燃烧室. +cannery.stirling.2=然而,它可以利用的热量有限,超速旋转可能导致灾难性故障. +cannery.stirling.3=升级后的版本可以承受更大的热量而不损坏. + +cannery.willow=芥柳 +cannery.willow.0=芥柳是一种可以收获镉金属的植物. +cannery.willow.1=柳树可以种在泥土、草地上,甚至是荒土/油污上,但它们需要水才能生长. +cannery.willow.2=柳树可以用骨粉或工业肥料施肥. 它们不需要光就能生长. +cannery.willow.3=在第二阶段的生长之后,它们将需要上方额外的一块空间才能进一步生长. +cannery.willow.4=在生长的第四阶段之后,它们需要下面有荒土或油污. +cannery.willow.5=这可以通过在荒土/油污上手动种植柳树来实现,也可以通过在附近设置一个持续污染地面的水力压裂塔来实现. +cannery.willow.6=到达最后阶段后,柳树将清除地面上的污染物,将荒土/油污恢复为正常的泥土. +cannery.willow.7=现在柳树的叶子可以收割了。打破顶部的障碍物会掉落一株3-6片叶子的小柳树,并保持植物底部的完整. +cannery.willow.8=很快,这种植物就会重新开始生长,如果泥土被油性泥土取代,就会长出更多的叶子。叶子可以用矿物结晶机加工成镉粉. +cannery.willow.9=使用自动锯可以自动收割柳叶,它只会打碎准备收割的植物. + chem.ARSENIC=砷提取 chem.ASPHALT=沥青生产 chem.BAKELITE=电木生产 -chem.BALEFIRE=野火火箭燃料混合 -chem.BP_BIOFUEL=生物燃料酯化 +chem.BALEFIRE=BF反物质火箭燃料混合 +chem.BP_BIOFUEL=生物燃料酯化合成 chem.BP_BIOGAS=沼气生产 -chem.C4=C-4合成 -chem.CC_HEATING=高级煤液化 -chem.CC_HEAVY=初级煤液化 -chem.CC_I=强化煤液化 -chem.CC_NAPHTHA=煤液化石脑油 -chem.CC_OIL=煤液化 +chem.C4=C-4生产 +chem.CC_HEATING=民用燃油增产 +chem.CC_HEAVY=重油增产 +chem.CC_I=工业油增产 +chem.CC_NAPHTHA=粗汽油增产 +chem.CC_OIL=原油增产 chem.CIRCUIT_4=超频电路生产 chem.CIRCUIT_5=高性能电路生产 chem.CO2=二氧化碳生产 -chem.COALGAS_LEADED=含铅煤汽油混合 +chem.COALGAS_LEADED=煤汽油铅混合 chem.COLTAN_CLEANING=钶钽铁矿提纯 chem.COLTAN_CRYSTAL=钽结晶 -chem.COLTAN_PAIN=Pn(III)钽铁溶液生产 +chem.COLTAN_PAIN=潘地曼尼南(III)钽生产 chem.CONCRETE=混凝土生产 chem.CONCRETE_ASBESTOS=石棉夹层混凝土生产 -chem.COOLANT=冷却液混合 +chem.COOLANT=冷却液生产 chem.CORDITE=无烟火药生产 -chem.CRYOGEL=冷凝胶混合 -chem.DESH=Desh生产 -chem.DEUTERIUM=氘萃取 -chem.DUCRETE=贫铀混凝土生产 +chem.CRYOGEL=超低温凝胶混合 +chem.DESH=德什金属锭生产 +chem.DEUTERIUM=氘提取 +chem.DUCRETE=贫化铀混凝土合成 chem.DYN_DNT=双聚中子态素合成 -chem.DYN_EUPH=Ep合成 -chem.DYN_SCHRAB=Sa326合成 +chem.DYN_EUPH=Ep金属元素合成 +chem.DYN_SCHRAB=Sa326异变铀金属合成 chem.DYNAMITE=炸药合成 chem.ELECTROLYSIS=低温电解水 chem.EPEARL=末影珍珠合成 @@ -488,93 +512,100 @@ chem.FC_I_NAPHTHA=工业油裂化 chem.FC_KEROSENE_PETROLEUM=煤油裂化 chem.FP_HEAVYOIL=重油加工 chem.FP_LIGHTOIL=轻油加工 -chem.FP_NAPHTHA=石脑油加工 +chem.FP_NAPHTHA=粗汽油加工 chem.FP_SMEAR=工业油加工 -chem.FR_PETROIL=汽油混合 -chem.FR_REOIL=原油再加工 -chem.FRACKSOL=压裂液生产 -chem.GASOLINE=含铅汽油生产 -chem.GASOLINE_LEADED=含铅汽油混合 -chem.HEAVY_ELECTROLYSIS=低温电解重水 -chem.HELIUM3=使用月球草皮提取氦-3 -chem.KEVLAR=凯夫拉生产 +chem.FR_PETROIL=混机油汽油合成 +chem.FR_REOIL=再生工业油加工 +chem.FRACKSOL=压裂液合成 +chem.GASOLINE=精制汽油合成 +chem.GASOLINE_LEADED=精制汽油铅混合 +chem.HEAVY_ELECTROLYSIS=重水低温电解 +chem.HELIUM3=月壤氦-3提取 +chem.KEVLAR=凯夫拉材料生产 chem.LPG=石油天然气液化 -chem.LUBRICANT=润滑剂混合 +chem.LUBRICANT=混合润滑剂合成 chem.METH=甲基苯丙胺合成 -chem.NITAN=NITAN牌超级燃料混合 +chem.NITAN=NITAN© 100 超级辛烷燃料混合 chem.NITRIC_ACID=硝酸生产 chem.OIL_SAND=沥青砂提取 -chem.OSMIRIDIUM_DEATH=锇酸溶液生产 +chem.OSMIRIDIUM_DEATH=铱锇酸溶液生产 chem.PEROXIDE=过氧化氢生产 -chem.PETROIL_LEADED=含铅石油混合 +chem.PET=PET聚酯合成 +chem.PETROIL_LEADED=混机油汽油铅混合 chem.POLYMER=聚合物合成 chem.PUF6=六氟化钚生产 -chem.RUBBER=橡胶生产 -chem.SAS3=三硫化Sa生产 +chem.PC=硬质塑料棒合成 +chem.PVC=PVC聚乙烯棒合成 +chem.RUBBER=橡胶合成 +chem.SAS3=三硫化Sa326生产 chem.SATURN=土星锭生产 -chem.SCHRABIDATE=Sa酸铁生产 -chem.SCHRABIDIC=Sa酸合成 +chem.SCHRABIDATE=Sa326元素酸化铁生产 +chem.SCHRABIDIC=Sa326元素酸化混合 chem.SF_BIOFUEL=生物燃料固化 chem.SF_BIOGAS=沼气固化 chem.SF_DIESEL=柴油凝固 chem.SF_GAS=天然气固化 -chem.SF_HEATINGOIL=燃油固化 +chem.SF_HEATINGOIL=民用燃油固化 chem.SF_HEAVYOIL=重油固化 chem.SF_KEROSENE=煤油固化 chem.SF_LIGHTOIL=轻油固化 chem.SF_LUBRICANT=润滑剂固化 -chem.SF_NAPHTHA=石脑油固化 +chem.SF_NAPHTHA=粗汽油固化 chem.SF_OIL=原油固化 -chem.SF_PETROIL=石油固化 +chem.SF_PETROIL=混机油汽油固化 chem.SF_PETROLEUM=石油气固化 chem.SF_RECLAIMED=再生油固化 chem.SF_SMEAR=工业油固化 chem.SOLID_FUEL=固体火箭燃料生产 chem.SOLVENT=有机溶剂混合 -chem.STEAM=烧水 +chem.STEAM=蒸汽生产 chem.SULFURIC_ACID=硫酸生产 -chem.TEL=四乙基铅混合 +chem.TATB=TATB三氨基三硝基苯合成 +chem.TEL=四乙基铅抗爆剂混合 chem.TEST=测试 chem.TNT=TNT合成 chem.UF6=六氟化铀生产 chem.VIT_GAS=气态核废料玻璃化 chem.VIT_LIQUID=液态核废料玻璃化 chem.XENON=林德循环制氙 -chem.XENON_OXY=增强林德循环制氙 +chem.XENON_OXY=增强型林德循环制氙 chem.YELLOWCAKE=黄饼生产 -container.amsBase=AMS基座(装饰) -container.amsEmitter=AMS发射极(装饰) -container.amsLimiter=AMS稳能器(装饰) -container.anvil=砧 + +container.amsBase=AMS基座 [装饰] +container.amsEmitter=AMS激发装置 [装饰] +container.amsLimiter=AMS稳定力场发生装置 [装饰] +container.anvil=%s 级砧 container.arcFurnace=电弧炉 container.armorTable=装甲改装台 container.assembler=装配机 -container.autocrafter=自动工作台 +ontainer.autocrafter=自动化工作台 container.barrel=桶 -container.bat9000=巨尻-9000 储罐 -container.battery=储能 +container.bat9000="巨臀"9000号储罐 +container.battery=储能量 container.bombMulti=多用途炸弹 +container.catalyticReformer=催化重整装置 container.centrifuge=离心机 -container.chemplant=化工厂 +container.chemplant=化工装置 container.compactLauncher=紧凑型发射台 -container.craneBoxer=输送带打包机 -container.craneExtractor=输送带提取器 -container.craneInserter=输送带导入器 -container.craneRouter=传送路由器 -container.craneUnboxer=输送带解包机 -container.crateDesh=Desh箱 +container.craneBoxer=传送带打包器 +container.craneExtractor=传送带输出器 + +container.craneInserter=传送带输入器 +container.craneRouter=传送带分流器 +container.craneUnboxer=传送带解包器 +container.crateDesh=德什制箱子 container.crateIron=铁箱 container.crateSteel=钢箱 container.crateTungsten=钨箱 -container.crystallizer=矿物酸化器 +container.crystallizer=矿物结晶机 container.cyclotron=回旋加速器 container.dfcCore=暗核聚变堆核心 -container.dfcEmitter=DFC发射器 -container.dfcInjector=DFC燃料喷射器 -container.dfcReceiver=DFC接收器 -container.dfcStabilizer=DFC稳定器 +container.dfcEmitter=DFC激发装置 +container.dfcInjector=DFC燃料注入装置 +container.dfcReceiver=DFC接收装置 +container.dfcStabilizer=DFC聚变稳定器 container.diFurnace=高炉 -container.diFurnaceRTG=核高炉 +container.diFurnaceRTG=核能高炉 container.electricFurnace=电炉 container.epress=电动锻压机 container.factoryAdvanced=高级工厂 @@ -582,631 +613,661 @@ container.factoryTitanium=工厂 container.fluidtank=储罐 container.fileCabinet=文件柜 container.forceField=力场发生器 -container.frackingTower=水力压裂塔 -container.furnaceCombination=复式炼焦炉 -container.furnaceIron=铁炉 -container.furnaceSteel=钢炉 +container.frackingTower=压裂式钻塔 +container.furnaceCombination=组合炉 +container.furnaceIron=铁制熔炉 +container.furnaceSteel=钢制熔炉 container.fusionMultiblock=大型聚变反应堆 container.fusionaryWatzPlant=Watz聚变反应堆 container.gasCentrifuge=气体离心机 -container.gasFlare=高架火炬 -container.generator=研究型反应堆 -container.hadron=粒子加速器 +container.gasFlare=废气燃烧塔 +container.generator=核反应堆(旧) +container.hadron=粒子加速对撞分析机 container.heaterFirebox=燃烧室 container.heaterHeatex=热交换器 -container.heaterOilburner=流体燃烧器 +container.heaterOilburner=液体燃料燃烧室 container.heaterOven=加热炉 container.iGenerator=工业发电机 container.keyForge=锁匠桌 container.launchPad=导弹发射台 -container.launchTable=大型发射台 -container.machineBoiler=锅炉 +container.launchTable=大型导弹发射台 +container.leadBox=安全箱 +container.machineBoiler=原油加热器 container.machineCMB=CMB炼钢炉 container.machineCoal=火力发电机 container.machineCrucible=坩埚 container.machineDiesel=柴油发电机 -container.machineElectricBoiler=电锅炉 -container.machineFEL=FEL自由电子激光器 +container.machineElectricBoiler=电力原油加热器 +container.machineFEL=FEL container.machineITER=聚变反应堆 container.machineLargeTurbine=工业汽轮机 container.machineLiquefactor=液化机 -container.machineMixer=工业搅拌机 +container.machineMixer=工业混合机 container.machineRefinery=炼油厂 -container.machineSelenium=星型发动机 +container.machineSelenium=星型径向性能发电机 container.machineShredder=粉碎机 -container.machineSILEX=SILEX激光同位素分离室 +container.machineSILEX=同位素激光分离室 container.machineSolidifier=固化机 container.machineTurbine=汽轮机 -container.machineTurbofan=涡扇发动机 -container.machine_schrabidium_transmutator=Sa326嬗变装置 -container.massStorage=存储 +container.machineTurbofan=涡扇发电机 +container.machine_deuterium=氘提取器 +container.machine_schrabidium_transmutator=Sa326异变铀金属嬗变装置 +container.massStorage=存储器 container.microwave=微波炉 -container.miningDrill=自动采矿钻机 -container.miningLaser=采矿激光 -container.missileAssembly=导弹装配台 +container.miningDrill=采矿钻机 +container.miningLaser=自动激光采矿钻机 +container.missileAssembly=自定义导弹装配台 container.nukeBoy=小男孩 container.nukeCustom=自定义核弹 container.nukeFleija=F.L.E.I.J.A. -container.nukeFstbmb=野火炸弹 +container.nukeFstbmb=BF炸弹 container.nukeFurnace=核熔炉 container.nukeGadget=小玩意 container.nukeMan=胖子 container.nukeMike=常青藤迈克 -container.nukeN2=N2炸弹 +container.nukeN2=N²炸弹 container.nukeN45=N45水雷 container.nukePrototype=原型 container.nukeSolinium=蔚蓝洗礼 container.nukeTsar=沙皇炸弹 -container.oilWell=钻油塔 +container.oilWell=石油钻井塔 container.orbus=重型反物质储罐 container.plasmaHeater=等离子加热器 container.press=火力锻压机 container.puf6_tank=六氟化钚储罐 -container.pumpjack=石油钻机 +container.pumpjack=梁式抽油机 container.radGen=辐射能量发电机 container.radar=雷达 -container.radiobox=FM发射机 -container.radiolysis=RTG辐射裂解室 -container.radiorec=FM收音机 +container.radiobox=FM调频发射机 +container.radiolysis=RTG发电机与辐解室 +container.radiorec=FM调频收音机 container.rbmkBoiler=RBMK石墨式反应堆蒸汽管道 container.rbmkControl=RBMK石墨式反应堆控制棒 container.rbmkControlAuto=RBMK石墨式反应堆自动控制棒 -container.rbmkHeater=RBMK流体加热器 +container.rbmkHeater=RBMK石墨式反应堆流体加热器 container.rbmkOutgasser=RBMK石墨式反应堆辐照通道 -container.rbmkReaSim=RBMK石墨式反应堆燃料棒 (ReaSim) +container.rbmkReaSim=RBMK石墨式反应堆燃料棒(雷西姆) container.rbmkRod=RBMK石墨式反应堆燃料棒 -container.rbmkStorage=RBMK 燃料存储棒 +container.rbmkStorage=RBMK石墨式反应堆存储柱 container.reactorBreeding=增殖反应堆 -container.reactorControl=反应堆遥控模块 +container.reactorControl=反应堆远程控模块 container.reactorLarge=大型核反应堆 -container.reactorResearch=研究型反应堆 +container.reactorResearch=研究性核反应堆 container.reix=Rei-X主机 container.rtg=放射性同位素发电机 container.rtgFurnace=放射性同位素热力炉[RTG] -container.rttyReceiver=无线红石接收器 -container.rttySender=无线红石发射器 +container.rttyReceiver=红石无线信号接收器 +container.rttySender=红石无线信号发送器 container.safe=保险箱 container.satDock=卸货平台 -container.satLinker=卫星ID管理 +container.satLinker=卫星ID管理器 container.siren=警报器 container.soyuzCapsule=货物着陆舱 -container.soyuzLauncher=联盟号发射平台 +container.soyuzLauncher=联盟号巨型运载火箭发射平台 container.storageDrum=核废料处理桶 -container.teleLinker=炮塔ID管理 +container.teleLinker=炮塔ID管理器 container.teleporter=传送机 container.turbinegas=联合循环燃气轮机 -container.turretArty=重炮炮塔“格雷格” -container.turretChekhov=重机枪炮塔“契诃夫的枪” -container.turretFriendly=轻机枪炮塔“友好先生” -container.turretFritz=重型火焰喷射器炮塔“弗里茨” -container.turretHIMARS=火箭炮塔“亨利” -container.turretHoward=双联守门员近防系统“霍华德” -container.turretJeremy=重炮炮塔“杰里米” -container.turretMaxwell=高能微波炮塔”麦克斯韦” -container.turretRichard= 火箭炮塔“理查德” -container.turretSentry=哨兵炮塔“布朗” -container.turretTauon=陶子发射器炮塔“陶恩” +container.turretArty=格雷格 +container.turretChekhov=契诃夫之枪 +container.turretFriendly=友好先生 +container.turretHIMARS=亨利 +container.turretJeremy=杰里米 +container.turretMaxwell=麦克斯韦 +container.turretRichard=理查德 +container.turretSentry=布朗 +container.turretTauon=负陶子炮 container.uf6_tank=六氟化铀储罐 -container.wasteDrum=乏燃料池 -container.watzPowerplant=Watz发电厂 -container.zirnox=锆诺克斯核反应堆 +container.vacuumDistill=真空精炼厂 +container.wasteDrum=乏核燃料冷却池 +container.watzPowerplant=Watz瓦茨发电塔 +container.zirnox=锆诺克斯反应堆 + crucible.aa=高级合金生产 +crucible.cdalloy=镉钢合金生产 +crucible.cmb=CMB钢生产 crucible.ferro=铀铁合金生产 -crucible.hematite=赤铁矿炼铁 +crucible.hematite=赤铁矿->铁 生产 crucible.hss=高速钢生产 -crucible.malachite=孔雀石炼铜 +crucible.malachite=孔雀石->铜 生产 crucible.redcopper=紫铜生产 -crucible.steel=钢铁生产 -crucible.steelMeteoric=陨铁炼钢 -crucible.steelPig=生铁炼钢 -crucible.steelWrought=锻铁炼钢 -crucible.tcalloy=锝钢合金生产 -death.attack.acid=%1$s 掉进了酸里 -death.attack.acidPlayer=%1$s 被 %2$s 溶解 -death.attack.ams=%1$s 沐浴在尚未被人类科学命名的致命粒子中 -death.attack.amsCore=%1$s 在奇点之火中蒸发 -death.attack.asbestos=%1$s现在有权获得经济补偿 -death.attack.bang=%1$s 被炸成小块碎片 -death.attack.blackhole=%1$s 粉身碎骨 -death.attack.blender=%1$s 被切成小块 -death.attack.boat=%1$s 被船撞了 -death.attack.boil=%1$s被%2$s活活煮沸 -death.attack.boxcar=%1$s 被一节坠落的车厢撞死了...好吧 -death.attack.broadcast=%1$s 的大脑融化了 -death.attack.building=%1$s 被从天而降的建筑砸中了 -death.attack.cheater=%1$s 的肠子变成了燕麦(???) -death.attack.chopperBullet=%1$s 被 %2$s 屠杀 -death.attack.cloud=%1$s 像冰棒一样在太阳下融化 -death.attack.cmb=%1$s 被 %2$s 搞得嘶嘶作响 -death.attack.digamma=%1$s 踏入深渊 -death.attack.electricity=%1$s 被电死 -death.attack.electrified=%1$s 被 %2$s 电死 -death.attack.euthanized=%1$s 被 %2$s 安乐死 -death.attack.euthanizedSelf2=%1$s 获得了达尔文奖 -death.attack.euthanizedSelf=%1$s 把自己安乐死了,可真傻 -death.attack.exhaust=%1$s 被火箭烤成了羊肉串 -death.attack.flamethrower=%1$s 被 %2$s 火化 -death.attack.flamethrower.item=%1$s 被 %2$s 使用 %3$s 火化 -death.attack.ice=%1$s 被 %2$s 做成了冰棒 -death.attack.laser=%1$s 被 %2$s 变成了灰烬 -death.attack.laser.item=%1$s 被 %2$s 使用 %3$s 变成灰烬 -death.attack.lead=%1$s 死于铅中毒 -death.attack.lunar=%1$s 忘记了给重要器官充电 -death.attack.meteorite=%1$s 被来自外太空的陨石击中 -death.attack.microwave=%1s 因微波辐射爆炸 -death.attack.mku=%1$s 死于不明原因 -death.attack.monoxide=%1$s忘了换一氧化碳探测器的电池 -death.attack.mudPoisoning=%1$s 死于毒泥浆中 -death.attack.nuclearBlast=%1$s 被核爆炸飞 -death.attack.overdose=%1$s 上瘾并窒息 -death.attack.pc=%1$s 在粉红色的云中变成了一个水坑 -death.attack.plasma=%1$s 被 %2$s 烧死 -death.attack.radiation=%1$s 死于辐射 -death.attack.revolverBullet=%1$s 被 %2$s 用 %3$s 击中头部 -death.attack.revolverBullet.item=%1$s 被 %2$s 使用 %3$s 爆头 -death.attack.rubble=%1$s 被碎片压扁了 -death.attack.shrapnel=%1$s 被榴弹碎片炸得千疮百孔 -death.attack.spikes=%1$s被刺穿了 -death.attack.subAtomic1=%1$s 的原子已被 %2$s 销毁. -death.attack.subAtomic2=%1$s 因为被 %2$s 篡改了实际速度,导致QPU没有对准 -death.attack.subAtomic3=由于 %2$s,1$s 的偏差下降到1%以下 -death.attack.subAtomic4=%1$s 因为 %2$s 被零除了 -death.attack.subAtomic5=%1$s 因为 %2$s 无效了 -death.attack.suicide=%1$s 打爆了自己的头 -death.attack.taint=%1$s 死于恶性肿瘤 -death.attack.tau=%1$s 被 %2$s 用带负电荷的陶子射穿 -death.attack.tauBlast=%1$s 对XVL1456充能时间过长,被炸成碎片 -death.attack.teleporter=%1$s 被传送到虚空 -desc.gui.assembler.warning=§c错误:§r此机器需要装配机模板! -desc.gui.chemplant.warning=§c错误:§r此机器需要化工厂模板! -desc.gui.gasCent.enrichment=§2浓缩§r$浓缩铀需要串联$两个离心机串联将离心出$铀燃料,四个离心机串联$将完全分离出铀235。 -desc.gui.gasCent.output=§6流体输送§r$流体可通过输出端口输送至另一台离心机$进行进一步处理。 -desc.gui.nukeBoy.desc=§1需要:§r$ * 中子屏蔽罩$ * 铀-235弹头$ * 次临界铀-235标靶$ * 炸药$ * 点火器 -desc.gui.nukeGadget.desc=§1需要:§r$ * 4个 初代$ 炸药透镜阵列$ * 钚核心$ * 线路 -desc.gui.nukeMan.desc=§1需要:§r$ * 4个 初代$ 炸药透镜阵列$ * 钚核心$ * 点火器 -desc.gui.nukeMike.desc=§1需要:§r$ * 4个 炸药透镜阵列$ * 钚核心$ * 氘冷却装置$ * 铀涂层氘罐 * 氘罐 -desc.gui.nukeTsar.desc=§1需要:§r$ * 4个 炸药透镜阵列$ * 钚核心$§9可选:§r$ * 沙皇炸弹核心 -desc.gui.radiolysis.desc=§9说明§r$该RTG比其他RTG更高效,并且$配备了一个用于$裂解和灭菌的辐解室。 -desc.gui.rtgBFurnace.desc=处理$金-198需要至少15热量。此外,热量越多,运行速度越快$金-198可能会衰变为水银 -desc.gui.rtg.heat=§e当前热等级:%s -desc.gui.rtg.pellets=接受的靶丸: +crucible.steel=钢生产 +crucible.steelMeteoric=陨铁->钢 生产 +crucible.steelPig=生铁->钢 生产 +crucible.steelWrought=锻铁->钢 生产 +crucible.tcalloy=锝-钢合金生产 + +death.attack.acid=%1$s 掉进了酸里. +death.attack.ams=%1$s 沐浴在尚未被人类科学命名的致命粒子中. +death.attack.amsCore=%1$s 在高能奇点之火中蒸发. +death.attack.asbestos=%1$s 现在有权获得经济补偿. +death.attack.bang=%1$s 被炸成一口大小碎片. +death.attack.blackhole=%1$s 被黑洞拉成了意大利面. +death.attack.blender=%1$s 被切割成了很小的,以Byte计数的单位. +death.attack.boat=%1$s 被船砸扁了. +death.attack.boxcar=%1$s 被一节坠落的车厢砸扁了...好吧. +death.attack.broadcast=%1$s 的大脑融化了. +death.attack.building=%1$s 被从天而降的建筑砸中了. +death.attack.cheater=%1$s 的内脏变成了燕麦(???). +death.attack.chopperBullet=%1$s 被 %2$s 屠杀. +death.attack.cloud=%1$s 像在太阳下的冰棒一样融化. +death.attack.cmb=%1$s 被 %2$s 电的焦脆. +death.attack.digamma=%1$s 在追求真理时步入了深渊. +death.attack.electricity=%1$s 被电死. +death.attack.electrified=%1$s 被 %2$s 电死. +death.attack.euthanized=%1$s 被 %2$s 安乐死. +death.attack.euthanizedSelf2=%1$s 获得了达尔文奖. +death.attack.euthanizedSelf=%1$s 把自己安乐死了, 真鸡儿丢人. +death.attack.exhaust=%1$s 被火箭烤成了羊肉串. +death.attack.flamethrower=%1$s 被 %2$s 火化. +death.attack.flamethrower.item=%1$s 被 %2$s 用 %3$s火化. +death.attack.ice=%1$s 被 %2$s 冻成了冰棒. +death.attack.laser=%1$s 被 %2$s 变成了灰烬. +death.attack.laser.item=%1$s 被 %2$s 用 %3$s 变成了灰烬. +death.attack.lead=%1$s 死于铅中毒. +death.attack.lunar=%1$s 忘了给他的重要器官维持系统充电. +death.attack.meteorite=%1$s 被来自外太空的陨石击中,他可以去买彩票了. +death.attack.microwave=%1$s 被过量微波辐射而爆炸了. +death.attack.mku=%1$s 死于不知名的原因. +death.attack.monoxide=%1$s 忘了给一氧化碳探测器换电池. +death.attack.mudPoisoning=%1$s 死于毒泥浆中. +death.attack.nuclearBlast=%1$s 被核爆冲击波炸飞. +death.attack.overdose=%1$s 服药过量后窒息了. +death.attack.pc=%1$s 在粉红色的云中变成了一滩水. +death.attack.plasma=%1$s 被 %2$s 献祭了. +death.attack.radiation=%1$s 死于辐射. +death.attack.revolverBullet=%1$s 被 %2$s 爆头. +death.attack.revolverBullet.item=%1$s 被 %2$s 用 %3$s 爆头. +death.attack.rubble=%1$s 被挤压成了碎片. +death.attack.shrapnel=%1$s 被榴弹碎片炸得千疮百孔. +death.attack.spikes=%1$s 被刺了个透心凉. +death.attack.subAtomic1=%1$s 的原子被 %2$s 摧毁. +death.attack.subAtomic2=%1$s 因为被 %2$s 篡改了实际速度, 导致QPU没有对准. +death.attack.subAtomic3=由于 %2$s, 1$s 的偏差下降到1%以下. +death.attack.subAtomic4=%1$s 因为 %2$s 被零除了. +death.attack.subAtomic5=%1$s 因为 %2$s 无效了. +death.attack.suicide=%1$s 打爆了自己的头. +death.attack.taint=%1$s 死于恶性肿瘤. +death.attack.tau=%1$s 被 %2$s 用带负电荷的陶子打得千疮百孔. +death.attack.tauBlast=%1$s 对XVL1456充能时间过长, 被炸成碎片. +death.attack.teleporter=%1$s 被传送到虚空. + +desc.item.pileRod=§e用于插入钻削过的石墨$§e使用螺丝刀翘出$ +desc.item.rtgDecay=衰变为: %s +desc.item.rtgHeat=热量级别: %s +desc.item.wasteCooling=在乏燃料池中冷却 +desc.item.zirnoxBreedingRod=§2[ZIRNOX锆诺克斯反应堆增殖棒]$§e放在燃料棒旁边以增殖$§e持续 %d ticks +desc.item.zirnoxRod=§a[ZIRNOX锆诺克斯反应堆燃料棒]$§e产生 %1$d 热量每tick$§e持续 %2$d ticks +desc.gui.assembler.warning=§c错误:§r 错误:此装配机需要组装机模板! +desc.gui.chemplant.warning=§c错误:§r 此化工装置需要化学配方模板! +desc.gui.gasCent.enrichment=§2浓缩§r$铀浓缩需要多个离心机串联.$两个离心串联$将仅分离出铀238,$四个离心串联将完全分离六氟化铀. +desc.gui.gasCent.output=§6流体传输§r$液体可以通过输出端口转移到$另一台离心机进行进一步处理. +desc.gui.nukeBoy.desc=§1需要组件:§r$ * 中子屏蔽罩$ * 铀235弹头$ * 次临界铀235标靶$ * 炸药$ * 点火器 +desc.gui.nukeGadget.desc=§1需要组件:§r$ * 4 个初代高能$ 内爆炸药阵列$ * 大型钚核心$ * 线路 +desc.gui.nukeMan.desc=§1需要组件:§r$ * 4 个初代高能$ 内爆炸药阵列$ * 钚核心$ * 炸弹点火装置 +desc.gui.nukeMike.desc=§1需要组件:§r$ * 4 个高能内爆炸药阵列$ * 钚核心$ * 氘冷却装置$ * 铀涂层氘罐$ * 氘罐 +desc.gui.nukeTsar.desc=§1需要组件:§r$ * 4 个高能内爆炸药阵列$ * 钚核心$§9可选:§r$ * 沙皇炸弹核心 +desc.gui.radiolysis.desc=§9说明§r$这种RTG比其他RTG效率更高, $配有一个辐解室,$用于裂解和灭菌. +desc.gui.rtgBFurnace.desc=需要至少15级热量来进行加工$热量越多,运行速度越快$超过最大速度后多余的热量不会产生任何影响$短半衰期的靶丸可能会衰变 +desc.gui.rtg.heat=§e当前热量级别: %s +desc.gui.rtg.pellets=可接受的靶丸: desc.gui.rtg.pelletHeat=%s (%s 热量) -desc.gui.rtg.pelletPower=%s (%s HE/刻) -desc.gui.template=§9模板§r$模板可由$机器模板文件夹制作。 -desc.gui.turbinegas.automode=§2自动涡轮机节流模式§r$通过单击“AUTO”按钮,涡轮机$将根据网络所需的功率自动调整发电量$ -desc.gui.turbinegas.fuels=§6可接受的燃料:§r -desc.gui.turbinegas.warning=§c燃油或润滑油液位低!§r -desc.gui.upgrade=§l可接受的升级:§r -desc.gui.upgrade.afterburner=*§d加力燃烧§r:堆叠至3级 -desc.gui.upgrade.effectiveness=*§a效率§r:堆叠至3级 -desc.gui.upgrade.overdrive=*§7超速§r:堆叠至3级 -desc.gui.upgrade.power=*§1节能§r:堆叠至3级 -desc.gui.upgrade.speed=*§4速度§r:堆叠至3级 -desc.gui.zirnox.coolant=§3冷却剂§r$CO2将热量从堆芯转移到水中$这会令它变成成超热蒸汽$冷却和蒸汽生产的效率取决于压力。 -desc.gui.zirnox.pressure=§6压力§r$排放二氧化碳可以降低压力$然而,压力过低,冷却效率和蒸汽产量将降低$小心熔毁! -desc.gui.zirnox.warning1=§c错误:§r反应堆正常运行需要水! -desc.gui.zirnox.warning2=§c错误:§r二氧化碳是反应堆正常运行所必需的! -desc.item.ammo.con_accuracy2=- 精度大幅降低 +desc.gui.rtg.pelletPower=%s (%s HE/tick) +desc.gui.template=§9模板§r$可以使用机器模板$文件夹制作模板. +desc.gui.turbinegas.automode=§2燃汽轮机自动节流模式§r$通过点击 "AUTO" 按钮, 燃汽轮机$将根据电网所需功率$自动调整发电量 +desc.gui.turbinegas.fuels=§6可接受的燃气:§r$ +desc.gui.turbinegas.warning=§c燃油或润滑油液位低!§r +desc.gui.upgrade=§l可接受的升级:§r +desc.gui.upgrade.afterburner= * §d加力燃烧§r: 最高为3级 +desc.gui.upgrade.effectiveness= * §a效率§r: 最高为3级 +desc.gui.upgrade.overdrive= * §7超频§r: 最高为3级 +desc.gui.upgrade.power= * §1节能§r: 最高为3级 +desc.gui.upgrade.speed= * §4速度§r: 最高为3级 +desc.gui.zirnox.coolant=§3冷却§r$二氧化碳将热量从反应堆核心转移到水中.$这会把水加热成蒸汽. $冷却和蒸汽生产的$效率取决于压力大小. +desc.gui.zirnox.pressure=§6压力§r$可以通过减少反应堆中的CO2量来降低压力.$但是, 压力过低, 冷却效率和$蒸汽产量会降低.$小心熔毁! +desc.gui.zirnox.warning1=§c错误:§r 反应堆正常运行$需要水! +desc.gui.zirnox.warning2=§c错误:§r 反应堆正常运行$需要二氧化碳! + +desc.item.ammo.con_accuracy2=- 精确度大大降低 desc.item.ammo.con_damage=- 伤害大幅降低 -desc.item.ammo.con_heavy_wear=- 大幅增加磨损 -desc.item.ammo.con_ling_fire=- 没有火焰 -desc.item.ammo.con_nn=- 甚至没有核爆 -desc.item.ammo.con_no_damage=- 没有伤害 -desc.item.ammo.con_no_explode1=- 非爆炸性 +desc.item.ammo.con_heavy_wear=- 严重加剧枪械磨损 +desc.item.ammo.con_ling_fire=- 不会点燃方块 +desc.item.ammo.con_nn=- 甚至都不是一颗核弹 +desc.item.ammo.con_no_damage=- 无直接伤害 +desc.item.ammo.con_no_explode1=- 无爆炸 desc.item.ammo.con_no_explode2=- 不破坏方块 -desc.item.ammo.con_no_explode3=- 无破片伤害 -desc.item.ammo.con_no_fire=- 不能引起燃烧 -desc.item.ammo.con_no_mirv=- 不建议在原始MIRV上使用 -desc.item.ammo.con_no_projectile=- 无抛射物 -desc.item.ammo.con_penetration=- 无穿透能力 +desc.item.ammo.con_no_explode3=- 无溅射伤害 +desc.item.ammo.con_no_fire=- 无燃烧 +desc.item.ammo.con_no_mirv=- 不推荐使用分导式多弹头M24核弹发射器发射 +desc.item.ammo.con_no_projectile=- 无弹丸 +desc.item.ammo.con_penetration=- 没有穿透力 desc.item.ammo.con_radius=- 减小爆炸半径 -desc.item.ammo.con_range2=- 大幅降低射程 -desc.item.ammo.con_sing_projectile=- 单个弹头 -desc.item.ammo.con_speed=- 弹丸速度降低 -desc.item.ammo.con_super_wear=- 磨损严重增加 -desc.item.ammo.con_wear=- 加剧磨损 -desc.item.ammo.neu_40mm=* 这是一枚40毫米的榴弹,我们把它挤到枪管里! -desc.item.ammo.neu_blank=* 这是空包弹 +desc.item.ammo.con_range2=- 射程大大缩短 +desc.item.ammo.con_sing_projectile=- 弹头只有一个 +desc.item.ammo.con_speed=- 火箭弹速度减缓 +desc.item.ammo.con_super_wear=- 枪械磨损严重加剧 +desc.item.ammo.con_wear=- 加剧枪械磨损 +desc.item.ammo.neu_40mm=* 这是其实是一枚40毫米的榴弹! +desc.item.ammo.neu_blank=* 一片空白 desc.item.ammo.neu_boat=* 船 -desc.item.ammo.neu_boxcar=* 车厢 +desc.item.ammo.neu_boxcar=* 火车厢 desc.item.ammo.neu_building=* 建筑物 -desc.item.ammo.neu_chlorophyte=* 叶绿 -desc.item.ammo.neu_eraser=* 用于消除重大错误 -desc.item.ammo.neu_fun=* 全家其乐无穷! -desc.item.ammo.neu_heavy_metal=* 重金属 -desc.item.ammo.neu_homing=* 追踪 -desc.item.ammo.neu_jolt=* 震荡 -desc.item.ammo.neu_less_bouncy=* 弹性更小 -desc.item.ammo.neu_maskman_flechette=* 曳光弹,同时引发一场贫铀飞镖弹风暴 -desc.item.ammo.neu_maskman_meteorite=* 高伤害,同时召唤小陨石 -desc.item.ammo.neu_more_bouncy=* 额外弹性 -desc.item.ammo.neu_no_bounce=* 没有弹性 -desc.item.ammo.neu_no_con=* 没有缺点 -desc.item.ammo.neu_starmetal=* 星辉金属 -desc.item.ammo.neu_tracer=* 示踪剂 -desc.item.ammo.neu_uhh=* Uhhh -desc.item.ammo.neu_warcrime1=* 从技术上讲犯下了战争罪 -desc.item.ammo.neu_warcrime2=* 一发触犯两条战争罪! -desc.item.ammo.pro_accurate1=+ 提升精度 -desc.item.ammo.pro_accurate2=+ 近乎完美的精度 -desc.item.ammo.pro_balefire=+ 野火 -desc.item.ammo.pro_bomb_count=+ 炸弹数量增加 +desc.item.ammo.neu_chlorophyte=* 绿藻 +desc.item.ammo.neu_eraser=* 为了消除一些大麻烦 +desc.item.ammo.neu_fun=* 和你的核谐家庭一起快乐的来放烟花玩耍吧! +desc.item.ammo.neu_heavy_metal=* 含重金属 +desc.item.ammo.neu_homing=* 自动追踪目标 +desc.item.ammo.neu_jolt=* 颠簸 +desc.item.ammo.neu_less_bouncy=* 霰弹更少 +desc.item.ammo.neu_maskman_flechette=* 发射一个能召唤出一场铀涂层镖弹碎片风暴的示踪剂 +desc.item.ammo.neu_maskman_meteorite=* 发射高伤害的子弹并召唤一颗小陨石 +desc.item.ammo.neu_more_bouncy=* 更多霰弹 +desc.item.ammo.neu_no_bounce=* 非霰弹 +desc.item.ammo.neu_no_con=* 没有任何负面作用 lol +desc.item.ammo.neu_starmetal=* 含星辉金属 +desc.item.ammo.neu_tracer=* 曳光弹 +desc.item.ammo.neu_uhh=* 啊哈 +desc.item.ammo.neu_warcrime1=* 从技术上讲使用它是犯了战争罪 +desc.item.ammo.neu_warcrime2=* 一颗子弹犯下两条战争罪! +desc.item.ammo.pro_accurate1=+ 准确性提高 +desc.item.ammo.pro_accurate2=+ 近乎完美的精确度 +desc.item.ammo.pro_balefire=+ B.F.野火 +desc.item.ammo.pro_bomb_count=+ 增加炸弹数量 desc.item.ammo.pro_caustic=+ 腐蚀性 desc.item.ammo.pro_chainsaw=+ 电锯 desc.item.ammo.pro_chlorine=+ 氯气 -desc.item.ammo.pro_damage=+ 提升伤害 -desc.item.ammo.pro_damage_slight=+ 高于平均伤害 -desc.item.ammo.pro_emp=+ EMP +desc.item.ammo.pro_damage=+ 伤害增加 +desc.item.ammo.pro_damage_slight=+ 高于平均水平的伤害 +desc.item.ammo.pro_emp=+ EMP电磁脉冲 desc.item.ammo.pro_explosive=+ 爆炸 -desc.item.ammo.pro_fallout=+ 辐射尘 -desc.item.ammo.pro_fit_357=+ 适用于所有.357枪械 -desc.item.ammo.pro_flames=+ 火焰喷射量增加 -desc.item.ammo.pro_gravity=+ 下坠降低 -desc.item.ammo.pro_heavy_damage=+ 大幅增加伤害 -desc.item.ammo.pro_incendiary=+ 能引起燃烧 -desc.item.ammo.pro_lunatic=+ 疯子 -desc.item.ammo.pro_marauder=+ 立即消除烦人的和不平衡的敌人 -desc.item.ammo.pro_mining=+ 爆炸使所有方块掉落 -desc.item.ammo.pro_no_gravity=+ 不受重力影响 -desc.item.ammo.pro_nuclear=+ 核爆 +desc.item.ammo.pro_fallout=+ +desc.item.ammo.pro_fit_357=+ 适合所有.357型号的枪械 +desc.item.ammo.pro_flames=+ 火焰燃烧时间增加 +desc.item.ammo.pro_gravity=+ 弹道下坠减少 +desc.item.ammo.pro_heavy_damage=+ 大大增加伤害 +desc.item.ammo.pro_incendiary=+ 燃烧 +desc.item.ammo.pro_lunatic=+ 月都科技 +desc.item.ammo.pro_marauder=+ 瞬间让烦人和不平衡的敌人灰飞烟灭 +desc.item.ammo.pro_mining=+ 可以把所有方块炸成掉落物 +desc.item.ammo.pro_no_gravity=+ 不再受重力影响 +desc.item.ammo.pro_nuclear=+ 小型核爆 desc.item.ammo.pro_penetration=+ 穿透 -desc.item.ammo.pro_percussion=+ 冲击波 -desc.item.ammo.pro_phosphorus=+ 可致磷烧伤 -desc.item.ammo.pro_phosphorus_splash=+ 磷飞溅 -desc.item.ammo.pro_poison_gas=+ 毒物飞溅 -desc.item.ammo.pro_radius=+ 增加爆炸半径 -desc.item.ammo.pro_radius_high=+ 大幅增加爆炸半径 +desc.item.ammo.pro_percussion=+ 冲击爆破 +desc.item.ammo.pro_phosphorus=+ 引起磷烧伤 +desc.item.ammo.pro_phosphorus_splash=+ 飞溅磷烧伤 +desc.item.ammo.pro_poison_gas=+ 毒气扩散 +desc.item.ammo.pro_radius=+ 增加爆炸范围 +desc.item.ammo.pro_radius_high=+ 爆炸范围大大增加 desc.item.ammo.pro_range=+ 增加射程 -desc.item.ammo.pro_rocket=+ 火箭 +desc.item.ammo.pro_rocket=+ 火箭弹 desc.item.ammo.pro_rocket_propelled=+ 火箭推进 desc.item.ammo.pro_shrapnel=+ 破片 -desc.item.ammo.pro_speed=+ 提高弹头飞行速度 -desc.item.ammo.pro_stunning=+ 眩晕 -desc.item.ammo.pro_toxic=+ 剧毒 -desc.item.ammo.pro_wear=+ 减少磨损 +desc.item.ammo.pro_speed=+ 火箭弹速度提高 +desc.item.ammo.pro_stunning=+ 震撼 +desc.item.ammo.pro_toxic=+ 毒性 +desc.item.ammo.pro_wear=+ 枪械磨损减少 desc.item.ammo.pro_withering=+ 凋零 -desc.item.armorMod.display=显示已安装的装甲模块 -desc.item.battery.charge=储能: %s / %sHE -desc.item.battery.chargePerc=储能: %s%% -desc.item.battery.chargeRate=充电效率: %sHE/刻 -desc.item.battery.dischargeRate=放电效率: %sHE/刻 -desc.item.durability=耐久: %s -desc.item.grenade.fuse=引信: %s -desc.item.grenade.fuseImpact=碰炸 -desc.item.grenade.fuseInstant=瞬发 -desc.item.gun.ammo=弹药 %s -desc.item.gun.ammoBelt=从背包中使用 -desc.item.gun.ammoEnergy=能耗; %sHE 每发 +desc.item.armorMod.display=来显示该盔甲上所安装的配件的效果 +desc.item.battery.charge=电量: %s / %sHE +desc.item.battery.chargePerc=电量: %s%% +desc.item.battery.chargeRate=充电速率: %sHE/tick +desc.item.battery.dischargeRate=放电速率: %sHE/tick +desc.item.durability=耐久度: %s +desc.item.grenade.fuse=引爆延时: %s +desc.item.grenade.fuseImpact=接触爆炸 +desc.item.grenade.fuseInstant=即爆 +desc.item.gun.ammo=弹药量 %s +desc.item.gun.ammoBelt=自动从背包中装填 +desc.item.gun.ammoEnergy=能量; %sHE 每发 desc.item.gun.ammoEnergyAlt=%sHE 每发 desc.item.gun.ammoMag=%s / %s desc.item.gun.ammoType=弹药类型: %s -desc.item.gun.ammoTypeAlt=辅助弹药: %s +desc.item.gun.ammoTypeAlt=特殊弹药: %s desc.item.gun.damage=伤害: %s - %s desc.item.gun.damageAlt=伤害: %s -desc.item.gun.lore=查看深入的知识 +desc.item.gun.lore=查看深入的传说 desc.item.gun.loreFunc=查看深入功能 desc.item.gun.manufacturer=制造商: %s -desc.item.gun.name=名称: %s -desc.item.gun.penetration=装甲穿透值: %s -desc.item.kitArmor=装甲将被新的装备取代。 -desc.item.kitHaz=装甲将被防护服取代。 -desc.item.kitPack=真便宜! -desc.item.kitPool=请在打开前清空背包库存! -desc.item.pileRod=§e使用钻孔石墨插入$§E使用螺丝刀拔出$ - - - -desc.item.rtgDecay=衰变为:%s -desc.item.rtgHeat=功率级别:%s +desc.item.gun.name=枪械名称: %s +desc.item.gun.penetration=护甲穿透值: %s +desc.item.kitArmor=现穿的护甲将被新护甲取代. +desc.item.kitHaz=防护服将取代现穿的护甲. +desc.item.kitPack=真便宜! +desc.item.kitPool=请在打开前清空你的背包! +desc.item.pileRod=§e用于插入钻削过的石墨$§e使用螺丝刀翘出$ +desc.item.rtgDecay=衰变为: %s +desc.item.rtgHeat=功率水平: %s desc.item.storage.capacity=容量 %s%%s -desc.item.storage.proscons=查看利弊列表 +desc.item.storage.proscons=to view pros cons list desc.misc.357=.357 马格南 desc.misc.556=.223 雷明顿 -desc.misc.762=.308 温彻斯特 -desc.misc.func=§n-- 作用 -- +desc.misc.762=.308 温切斯特 +desc.misc.func=§n-- 功能 -- desc.misc.lanthanum="镧" -desc.misc.lctrl=§8按住 <§e§o左CTRL§8§o> %s -desc.misc.lore=§n-- 知识 -- -desc.misc.lshift=§8按住 <§e§o左SHIFT§8§o> %s -desc.misc.luna=§o20x155mm Lunatic +desc.misc.lctrl=§8按住 <§e§oLCTRL§8§o> %s +desc.misc.lore=§n-- 剧情 -- +desc.misc.lshift=§8按住 <§e§oLSHIFT§8§o> %s +desc.misc.luna=§o20x155mm 月都科技 desc.misc.meltPoint=熔点: §c%s -desc.misc.noPos=未设置位置! -desc.misc.pos=将位置设置为:%s,%s,%s -desc.misc.posSet=位置已设置! -desc.item.wasteCooling=在乏燃料池中冷却 -desc.item.zirnoxBreedingRod=§2[ZIRNOX增殖棒]$§e放在燃料棒旁边增殖$§e持续 %d 刻 -desc.item.zirnoxRod=§a[ZIRNOX燃料棒]$§e每刻产生 %1$d 热量$§e持续 %2$d 刻 -digamma.playerDigamma=玩家F-迪伽马辐照水平: -digamma.playerHealth=玩家所受F-迪伽马辐照影响: -digamma.playerRes=玩家F-迪伽马防护水平: -digamma.title=玩家F-迪伽马辐射自检器 -entity.entity_cyber_crab.name=赛博螃蟹 -entity.entity_elder_one.name=上古鸭神 +desc.misc.noPos=未设置触发位置! +desc.misc.pos=设置触发位置为 : %s, %s, %s +desc.misc.posSet=触发位置已设置! +desc.item.wasteCooling=在乏燃料池罐中冷却 +desc.item.zirnoxBreedingRod=§2[ZIRNOX镁诺克斯反应堆增殖棒]$§e放在燃料棒旁边以增殖$§e持续 %d ticks +desc.item.zirnoxRod=§a[ZIRNOX镁诺克斯反应堆燃料棒]$§eGenerates %1$d 热量每tick$§e持续 %2$d ticks + +digamma.playerDigamma=玩家Ϝ迪伽马辐照水平: +digamma.playerHealth=玩家所受Ϝ迪伽马辐照影响: +digamma.playerRes=玩家Ϝ迪伽马防护水平: +digamma.title=玩家Ϝ迪伽马辐射自检器 + +entity.entity_cyber_crab.name=机械螃蟹 +entity.entity_elder_one.name=Quackos古老者 entity.entity_fucc_a_ducc.name=鸭子 -entity.entity_ntm_fbi.name=FBI探员 +entity.entity_ntm_fbi.name=FBI特工(暴徒) entity.entity_ntm_radiation_blaze.name=核融元素 entity.hbm.entity_ntm_ufo.name=火星入侵者飞船 entity.entity_mob_hunter_chopper.name=猎人直升机 entity.entity_mob_mask_man.name=面具人 entity.entity_mob_nuclear_creeper.name=核爆爬行者 +entity.entity_mob_phosgene_creeper.name=光气爬行者 entity.entity_mob_tainted_creeper.name=污染爬行者 -entity.entity_taint_crab.name=污染螃蟹 -entity.entity_tesla_crab.name=磁暴螃蟹 -entity.hbm.entity_balls_o_tron.name=机械蠕虫 -entity.hbm.entity_balls_o_tron_seg.name=机械蠕虫 +entity.entity_taint_crab.name=腐化机械螃蟹 +entity.entity_tesla_crab.name=磁暴机械螃蟹 +entity.hbm.entity_balls_o_tron.name=世-界-毁-灭-者 O-TRON +entity.hbm.entity_balls_o_tron_seg.name=世-界-毁-灭-者 O-TRON 躯干 entity.hbm.entity_bullet.name=子弹 entity.hbm.entity_rocket.name=火箭弹 -entity.hbm.entity_schrabnel.name=Schrabnel -flare.ignition=点火装置 -flare.valve=流量阀 +entity.hbm.entity_schrabnel.name=弹片 + +flare.ignition=点火开关 +flare.valve=燃气阀门 + fluid.acid_fluid=酸 fluid.corium_fluid=堆芯熔融物 fluid.mud_fluid=毒泥 -fluid.schrabidic_fluid=Sa酸 +fluid.schrabidic_fluid=Sa326元素酸液 fluid.toxic_fluid=绿色软泥 -fluid.volcanic_lava_fluid=火山熔岩 -foundry.filter=筛选器:%s -foundry.inverted=红石信号反转 +fluid.volcanic_lava_fluid=火山岩浆 + +foundry.filter=过滤: %s +foundry.inverted=红石控制反转 foundry.invertFilter=过滤器反转 -foundry.noCast=未安装模具! -geiger.chunkRad=当前区块辐射: +foundry.noCast=未安装模具! + +geiger.chunkRad=当前区块辐射量: geiger.envRad=环境总辐射量: -geiger.playerRad=玩家辐射: -geiger.playerRes=辐射抗性: -geiger.title=盖革计数器 -geiger.title.dosimeter=剂量计 -gun.make.ARMALITE=阿玛莱特公司 -gun.make.AUTO_ORDINANCE=美国自动武器公司 -gun.make.BAE=英国宇航系统公司 +geiger.playerRad=玩家辐射量: +geiger.playerRes=玩家辐射抗性: +geiger.title=盖格计数器 +geiger.title.dosimeter=放射量测定器 + +gun.make.ARMALITE=阿玛莱特 +gun.make.AUTO_ORDINANCE=AOC美国自动武器公司 +gun.make.BAE=BAE系统公司 gun.make.BENELLI=伯奈利武器公司 gun.make.BLACK_MESA=黑山研究所 -gun.make.CERIX=赛里克斯·马格努斯锻造世界 -gun.make.COLT=柯尔特制造公司 -gun.make.COMBINE=世界工会 -gun.make.CUBE=Cube 2: Sauerbraten -gun.make.ENZINGER=Enzinger工会 -gun.make.EQUESTRIA=小马国导弹系统 -gun.make.FLIMFLAM=FlimFlam“欺骗”工业 -gun.make.F_STRONG=史特朗堡 -gun.make.GLORIA=GLORIA公司 +gun.make.CERIX=塞里克斯·马格努斯铸造世界 +gun.make.COLT=柯尔特公司 +gun.make.COMBINE=多维空间联合帝国 +gun.make.CUBE=魔方2: 醋焖牛肉 +gun.make.ENZINGER=恩辛格联盟 +gun.make.EQUESTRIA=小马国导弹系统公司 +gun.make.FLIMFLAM="欺骗" 工业 +gun.make.F_STRONG=斯特朗堡 +gun.make.GLORIA=格洛里亚股份有限公司 gun.make.HASBRO=孩之宝 -gun.make.H_AND_K=黑克勒和科赫武器公司 -gun.make.H_AND_R=哈林顿-理查森武器公司 +gun.make.H_AND_K=赫克勒-科赫公司 +gun.make.H_AND_R=哈灵顿·理查森公司 gun.make.IF=蹄铁军工 -gun.make.IMI=以色列军事工业 -gun.make.IMI_BIGMT=以色列军事工业公司/大型MT -gun.make.LANGFORD=朗福德研究实验室 +gun.make.IMI=以色列军事工业公司 +gun.make.IMI_BIGMT=以色列军事工业公司 / 巨山研发中心 +gun.make.LANGFORD=兰福德研究实验室 gun.make.LUNA=月球防御公司 -gun.make.MAGNUM_R_IMI=马格南研究公司 / 以色列军事工业公司 -gun.make.MANN=Open Mann Co. -gun.make.MAXIM=海勒姆·马克沁 -gun.make.METRO=地铁枪手 +gun.make.MAGNUM_R_IMI=马格南武器研究所 / 以色列军事工业公司 +gun.make.MANN=开放曼恩公司.. +gun.make.MAXIM=海勒姆·史蒂文斯·马克沁 +gun.make.METRO=<<地铁>>中的军械工人 gun.make.MWT=MWT原型实验室 -gun.make.NAZI=埃尔福特机械制造厂 +gun.make.NAZI=埃尔马.威客兵工厂 gun.make.NONE=- -gun.make.RAYTHEON=导弹系统公司 +gun.make.RAYTHEON=雷神导弹系统公司 gun.make.ROCKWELL=罗克韦尔国际公司 -gun.make.ROCKWELL_U=罗克韦尔国际公司? +gun.make.ROCKWELL_U=罗克韦尔国际公司? gun.make.RYAN=莱恩工业 -gun.make.SAAB=萨博博福斯动力公司 -gun.make.SACO=萨科防卫军械 -gun.make.TULSKY=图拉武器厂 -gun.make.UAC=联合宇宙航空公司 +gun.make.SAAB=博福斯动力公司 +gun.make.SACO=萨科防务 / 美国军械 +gun.make.TULSKY=图拉兵工厂 +gun.make.UAC=联合航天公司 gun.make.UNKNOWN=??? -gun.make.WESTTEK=WestTek研究设施 -gun.make.WGW=威廉·古斯特洛夫·维尔克 -gun.make.WINCHESTER=温彻斯特速射武器公司 -gun.make.WINCHESTER_BIGMT=温彻斯特速射武器公司/大型MT -gun.name.ar15_50=AR-15 .50BMG型 -gun.name.baeAR=英国制式突击步枪 -gun.name.bel=野火蛋发射器 -gun.name.benelli=伯奈利M4 Super 90霰弹枪 -gun.name.benelliDrum=伯奈利M4 Super 90霰弹枪 (泵动供弹改进型) +gun.make.WESTTEK=西部科技 +gun.make.WGW=威廉·古斯特洛夫·沃克 +gun.make.WINCHESTER=温彻斯特连发轻武器公司 +gun.make.WINCHESTER_BIGMT=温彻斯特连发轻武器公司 / 巨山研发中心 + +gun.name.ar15_50=AR-15 .50 BMG 模式 +gun.name.baeAR=不列颠标准型突击步枪 +gun.name.bel=B.F.反物质蛋弹射器 +gun.name.benelli=Benelli M4 Super 90 +gun.name.benelliDrum=Benelli M4 Super 90 (Drum Magazine Modification) gun.name.bio=RI No. 2 Mark 1 -gun.name.bolter=Manticora Pattern爆弹枪 -gun.name.cPython=柯尔特蟒蛇 -gun.name.cz53=CZ53 单兵转轮机枪 -gun.name.cz57=CZ57 复仇者机枪 -gun.name.dart=针枪 -gun.name.deagle=以色列军事工业公司沙漠之鹰 -gun.name.emp=EMP投射器 -gun.name.extinguisher=PROTEX灭火器6kg -gun.name.ffiV=FFI Viper -gun.name.ffiVInox=FFI Viper Inox -gun.name.ffiVLead=FFI Viper Lead -gun.name.ffiVN1=FFI Viper N1 -gun.name.ffiVN2=FFI Viper N2 -gun.name.ffiVUltra=FFI Viper Ultra -gun.name.ffivBling=FFI Viper Bling -gun.name.ffivSatur=FFI Viper D-25A -gun.name.g36=HK G36突击步枪 -gun.name.gPistol=HK69A1 手持单发榴弹发射器 -gun.name.gustav=卡尔·古斯塔夫M1无后坐力炮 -gun.name.ifHorseshoe=IF-18 蹄铁 -gun.name.ifPit=IF-18 蹄铁 Bottomless Pit -gun.name.ifScope=IF-18 蹄铁 Scoped -gun.name.ifStorm=IF-18 蹄铁 Silver Storm -gun.name.ifVanity=IF-18 蹄铁 Vanity -gun.name.karl=M1 卡尔·古斯塔夫 -gun.name.ks23=KS-23霰弹枪 -gun.name.lacunae=Auntie Lacunae -gun.name.lasetDet=霍普维尔激光雷管 -gun.name.lunaAR=1986 Bishamonten式突击步枪 +gun.name.bolter=曼提柯尔花纹爆弹枪 +gun.name.cPython=Colt Python +gun.name.cz53=CZ53单兵火神炮 +gun.name.cz57=CZ57复仇火神炮 +gun.name.dart=气动射针枪 +gun.name.deagle=IMI沙漠之鹰 +gun.name.emp=EMP磁暴步枪 +gun.name.extinguisher=PROTEX6kg灭火器 +gun.name.ffiV=普通左轮手枪 +gun.name.ffiVInox=强化左轮手枪 +gun.name.ffiVLead=核子左轮手枪 +gun.name.ffiVN1=梦魇左轮手枪(初代) +gun.name.ffiVN2=梦魇左轮手枪(黑暗) +gun.name.ffiVUltra=Sa326元素左轮手枪 +gun.name.ffivBling=黄金左轮手枪 +gun.name.ffivSatur=土星金属手枪 +gun.name.g36=Heckler & Koch Gewehr 36 +gun.name.gPistol=HK69榴弹手枪 +gun.name.gustav=M1卡尔·古斯塔夫无后座力步枪 +gun.name.ifHorseshoe=IF-18蹄铁军工诺华克 +gun.name.ifPit=IF-18蹄铁军工红钥匙左轮手枪 +gun.name.ifScope=小皮的IF-18蹄铁军工左轮手枪 +gun.name.ifStorm=IF-18蹄铁军工银色风暴 +gun.name.ifVanity=黑杰克的IF-18蹄铁军工五发装左轮枪 +gun.name.karl=M1卡尔火箭筒 +gun.name.ks23=萨缪尔-23大口径霰弹枪 +gun.name.lacunae=CZ33地狱火神 +gun.name.lasetDet=霍普维尔激光引爆器 +gun.name.lunaAR=1986 Bishamonten type Assault Rifle gun.name.lunaGun=1978 Rāhula type Standard Issue Sidearm (Revision 2) gun.name.lunaHLR=1944 Chang'e type Light Machine Gun gun.name.lunaShotty=1978 Guan Yu type Scattergun (Revision 1) -gun.name.lunaSMG=1956 ānanda type Submachine Gun +gun.name.lunaSMG=1956 Ānanda type Submachine Gun gun.name.lunaSniper=1915 Hou Yi type Anti-Material Rifle gun.name.lunaTWR=Time Warp Rifle -gun.name.m2=M2式勃朗宁大口径重机枪 -gun.name.m42=M-42战术核弹发射器 -gun.name.m42MIRV=M-42实验MIRV -gun.name.m60=7.62毫米口径M60机枪 +gun.name.m2=Browning machine gun, cal. .50, M2, HB +gun.name.m42=M-42战术核弹射器 +gun.name.m42MIRV=M-42 核弹弹射器"试验性子母弹头 +gun.name.m60=Machine Gun, Caliber 7.62 mm, M60 gun.name.maxim=马克沁机枪 -gun.name.maximDouble=双重马克沁机枪 -gun.name.mg3=MG-42通用机枪 -gun.name.mp40=MP40冲锋枪 -gun.name.nerf=某些无良记者眼中的大规模杀伤性武器 -gun.name.osipr=守望标准型脉冲步枪 -gun.name.panz=反坦克火箭来复枪 54 -gun.name.quadro=OpenQuadro便携式导弹发射器 -gun.name.revolverCursed=不列颠标准问题电动手枪 -gun.name.sauer=绍尔猎枪 -gun.name.spas12=弗兰基SPAS-12式12号霰弹枪 -gun.name.spiw=H&R SPIW -gun.name.stinger=FIM-92毒刺便携式防空系统 -gun.name.stingerOneSky=The One Sky 毒刺便携式防空系统 -gun.name.supershotty=双管战斗霰弹枪 -gun.name.tau=XVL1456 陶子加农炮 -gun.name.tommy9=M1A1冲锋枪9毫米型 +gun.name.maximDouble=双管马克沁机枪 +gun.name.mg3=通用MG3机枪 - .50 模式 +gun.name.mp40=Mp40冲锋枪 +gun.name.nerf=NERF blaster of unknown design +gun.name.osipr=看守者暗能量脉冲步枪 +gun.name.panz=坦克杀手54 +gun.name.quadro=四联装制导便携式电视制导导弹发射器 +gun.name.revolverCursed=被诅咒的不列颠标准发行版左轮手枪 +gun.name.sauer=斯坦.索尔的萨缪尔-23霰 +gun.name.spas12= +gun.name.spiw=H&R弗莱切特镖 +gun.name.stinger=FIM-92“毒刺”便携式防空导弹 +gun.name.stingerOneSky=天马防空导弹 +gun.name.supershotty=Double-Barreled Combat Shotgun +gun.name.tau=XVL1456 负陶子加农炮原型 +gun.name.tommy9=9mm口径M1A1冲锋枪 gun.name.tommy=M1A1冲锋枪 -gun.name.topaz=重型火焰燃烧器 -gun.name.uacCarbine=UAC-41卡宾枪 +gun.name.topaz=帕托石重型火焰枪 +gun.name.uacCarbine=UAC-41 Carbine gun.name.uacDeagle=UAC-H54 "Martian Raptor" Automag gun.name.uacDMR=UAC-30 Designated Marksman Rifle gun.name.uacLMG=UAC-49 Light Machine Gun gun.name.uacPistol=UAC-B950 .45 Standard Issue Handgun gun.name.uacSMG=UAC-17 Compact Sub-Machine Gun -gun.name.uboinik=Uboinik Revolving Shotgun -gun.name.uzi=IMI Uzi -gun.name.uziSatur=IMI Uzi D-25A -gun.name.win1887=温彻斯特M1887杠杆式连发霰弹枪 -gun.name.win1887Inox=温彻斯特M1887杠杆式连发霰弹枪 Inox -gun.name.win20Inox=温彻斯特20型Inox -gun.name.win20Poly=温彻斯特20型聚合物 -gun.name.win20Satur=温彻斯特20型 D-25A -gun.name.zomg=EMC101棱镜负能量炮 -hadron.analysis=正在分析... -hadron.buttonOn=分析室启动(如果存在) +gun.name.uboinik=先进制式霰弹枪 +gun.name.uzi=IMI乌齐冲锋枪 +gun.name.uziSatur=IMI D-25A乌齐冲锋枪 +gun.name.win1887=1887温彻斯特霰弹枪(原型) +gun.name.win1887Inox=1887温彻斯特霰弹枪(黑暗) +gun.name.win20Inox温彻斯特拉栓步枪(原型) +gun.name.win20Poly=温彻斯特拉栓步枪(绿) +gun.name.win20Satur=D-25A星辉金属温彻斯特来复枪 +gun.name.zomg=EMC101棱镜负能量加农炮 + + +hadron.analysis=分析中... +hadron.buttonOn=分析室(如有)开启 hadron.buttonOff=分析室关闭 -hadron.error_generic=错误! -hadron.error_no_charge=错误 0x01 [能量不足] -hadron.error_no_analysis=错误 0x02 [无法分析] -hadron.error_obstructed_channel=错误 0x03 [通道阻塞] -hadron.error_expected_coil=错误 0x04 [缺少线圈] -hadron.error_malformed_segment=错误 0x05 [错误区段] -hadron.error_analysis_too_long=错误 0x06 [分析室过长] -hadron.error_analysis_too_short=错误 0x06 [分析室过长] -hadron.error_diode_collision=错误 0x08 [二极管方向错误] -hadron.error_branching_turn=错误 0x09 [多处分支] -hadron.hopper0=§e正常模式:$将使用所有项目 -hadron.hopper1=§e料斗模式:$ 将始终保留一个项目 -hadron.idle=空闲 -hadron.modeCircular=§e环形加速器模式:$磁铁必须环绕核心$解锁更多配方 -hadron.modeLine=§e直线加速器模式:$加速器末端有分析室$更少的配方 -hadron.noresult=无结果 +hadron.error=错误! +hadron.hopper0=§e普通模式:$所有物品都可用来对撞. +hadron.hopper1=§e过滤模式:$对撞机输入口将始终保留一个物品. +hadron.idle=闲置 +hadron.modeCircular=§e环形加速器模式:$磁力加速通道必须接回加速器核心.$很多制造配方所要求的模式. +hadron.modeLine=§e直线加速器模式:$加速器末端有分析室.$可用的制造配方更少. +hadron.noresult=无结果. hadron.noresult_too_slow=推进力不足! -hadron.noresult_wrong_ingredient=无效配方! -hadron.noresult_wrong_mode=错误模式! +hadron.noresult_wrong_ingredient=无效配方! +hadron.noresult_wrong_mode=模式错误! hadron.progress=正在进行中... -hadron.stats=上一次结果: -hadron.stats_coord=错误位置:%s/%s/%s -hadron.stats_momentum=推力: %s -hadron.success=已完成! -hazard.prot=防止危险: -hazard.noprot=不能防止: -hazard.bacteria=细菌/气溶胶 -hazard.corrosive=腐蚀性烟雾 -hazard.gasChlorine=化学气体 -hazard.gasInert=惰性气体/沥青 +hadron.stats=上次运行结果: +hadron.stats_coord=错误位置: %s / %s / %s +hadron.stats_momentum=推进力: % +hadron.success=完成! + +hazard.prot=可以提供的危害防护: +hazard.noprot=不能提供的危害防护: +hazard.bacteria=细菌 / 气溶胶 +hazard.corrosive=腐蚀性气体 +hazard.gasChlorine=化学毒气 +hazard.gasInert=惰性气体 / 窒息性气体 hazard.gasMonoxide=一氧化碳 -hazard.light=亮光 +hazard.light=闪光 hazard.nerveAgent=神经毒剂 -hazard.neverProtects=它永远不能防止: -hazard.particleCoarse=空气微粒 -hazard.particleFine=微粒 -hazard.sand=眼睛刺激物 -hbm.key=HBM的核科技mod 热键 +hazard.neverProtects=绝对不会提供的危害防护: +hazard.particleCoarse=大气漂浮颗粒物 +hazard.particleFine=颗粒物 +hazard.sand=眼球刺激物 + +hbm.key=NTM 热键 hbm.key.calculator=计算器 -hbm.key.craneLoad=装卸起重机 -hbm.key.craneMoveDown=向后移动起重机 -hbm.key.craneMoveLeft=向左移动起重机 -hbm.key.craneMoveRight=向右移动起重机 -hbm.key.craneMoveUp=向前移动起重机 +hbm.key.craneLoad=抽出/插入燃料棒 +hbm.key.craneMoveDown=起重机向后移动 +hbm.key.craneMoveLeft=起重机向左移动 +hbm.key.craneMoveRight=起重机向右移动 +hbm.key.craneMoveUp=起重机向前移动 hbm.key.dash=冲刺 (在config中解绑) -hbm.key.toggleBack=开关 喷气背包 -hbm.key.toggleHUD=开关 HUD -hbm.key.reload=装弹 +hbm.key.toggleBack=喷气背包开关 +hbm.key.toggleHUD=装甲HUD显示开关 +hbm.key.reload=装填 + hbmfluid.acid=过氧化氢 hbmfluid.amat=反物质 hbmfluid.aromatics=芳香烃 -hbmfluid.aschrab=反Sa326 -hbmfluid.balefire=野火火箭燃料 +hbmfluid.aschrab=反Sa326施布拉比迪物质 +hbmfluid.balefire=BF反物质火箭燃料 hbmfluid.biofuel=生物燃料 hbmfluid.biogas=沼气 hbmfluid.bitumen=沥青 -hbmfluid.blood=血 -hbmfluid.blood_hot=热的血 +hbmfluid.blood=血液 +hbmfluid.blood_hot=热血液 hbmfluid.carbondioxide=二氧化碳 -hbmfluid.coalcreosote=煤焦杂酚油 +hbmfluid.chlorine=氯气 +hbmfluid.coalcreosote=煤焦油杂酚油 hbmfluid.coalgas=煤汽油 hbmfluid.coalgas_leaded=含铅煤汽油 -hbmfluid.coaloil=煤液化油 +hbmfluid.coaloil=煤焦油 +hbmfluid.colloid=胶体 hbmfluid.coolant=冷却液 hbmfluid.coolant_hot=热冷却液 hbmfluid.crackoil=裂化油 -hbmfluid.cryogel=冷凝胶 -hbmfluid.death=锇酸溶液 +hbmfluid.cryogel=超低温凝胶 +hbmfluid.death=铱锇酸溶液 hbmfluid.deuterium=氘 hbmfluid.diesel=柴油 +hbmfluid.diesel_crack_reform=高辛烷值裂解柴油 +hbmfluid.diesel_reform=高辛烷值柴油 hbmfluid.diesel_crack=裂化柴油 hbmfluid.ethanol=乙醇 -hbmfluid.enderjuice=末影果汁 +hbmfluid.enderjuice=末影液 hbmfluid.fracksol=压裂液 hbmfluid.gas=天然气 -hbmfluid.gasoline=含铅汽油基油 -hbmfluid.gasoline_leaded=含铅汽油 -hbmfluid.heatingoil=燃油 +hbmfluid.gasoline=精制汽油 +hbmfluid.gasoline_leaded=含铅精制汽油 +hbmfluid.heatingoil=民用燃油 +hbmfluid.heatingoil_vacuum=加热重油 hbmfluid.heavyoil=重油 +hbmfluid.heavyoil_vacuum=真空精炼重油 hbmfluid.heavywater=重水 hbmfluid.helium3=氦-3 hbmfluid.hotcrackoil=热裂化油 hbmfluid.hotoil=热原油 hbmfluid.hotsteam=热蒸汽 hbmfluid.hydrogen=液氢 +hbmfluid.iongel=离子凝胶 hbmfluid.kerosene=煤油 +hbmfluid.kerosene_reform=喷气燃料 hbmfluid.lava=岩浆 hbmfluid.lightoil=轻油 hbmfluid.lightoil_crack=裂化轻油 -hbmfluid.lpg=液化石油气 +hbmfluid.lightoil_vacuum=真空精炼轻油 +hbmfluid.lpg=LPG +hbmfluid.lubricant=发动机润滑油 hbmfluid.lubricant=润滑油 hbmfluid.mercury=水银 -hbmfluid.mug=Mug牌树根饮料 -hbmfluid.mug_hot=热的Mug牌树根饮料 -hbmfluid.naphtha=石脑油 -hbmfluid.naphtha_crack=裂化石脑油 -hbmfluid.nitan=NITAN牌100号超级燃料 +hbmfluid.mug=杯根啤酒 +hbmfluid.mug_hot=热杯根啤酒 +hbmfluid.mustardgas=芥子气 +hbmfluid.naphtha=粗气油 +hbmfluid.naphtha_crack=裂化粗气油 +hbmfluid.nitan=NITAN© 100号超级燃料 hbmfluid.nitric_acid=硝酸 hbmfluid.none=无 hbmfluid.oil=原油 hbmfluid.oxygen=液氧 hbmfluid.oxyhydrogen=氢氧混合气 -hbmfluid.pain=Pn(III) 钽铁溶液 -hbmfluid.petroil=汽油 -hbmfluid.petroil_leaded=含铅石油 +hbmfluid.pain=潘地曼尼南(III)钽铁矿溶液 +hbmfluid.petroil=混机油汽油 +hbmfluid.petroil_leaded=含铅混机油汽油 hbmfluid.petroleum=石油气 -hbmfluid.plasma_bf=野火等离子体 -hbmfluid.plasma_dh3=氘-氦3 等离子体 +hbmfluid.phosgene=光气 +hbmfluid.plasma_bf=B.F.反物质等离子体 +hbmfluid.plasma_dh3=氘-氦3等离子体 hbmfluid.plasma_dt=氘-氚等离子体 hbmfluid.plasma_hd=氢-氘等离子体 hbmfluid.plasma_ht=氢-氚等离子体 hbmfluid.plasma_xm=氙-汞等离子体 hbmfluid.puf6=六氟化钚 +hbmfluid.radiosolvent=高性能溶剂 hbmfluid.reclaimed=再生油 +hbmfluid.reformate=重整油 +hbmfluid.reformgas=重整气 hbmfluid.salient=绿色液体 -hbmfluid.sas3=三硫化Sa -hbmfluid.schrabidic=Sa酸 -hbmfluid.seedslurry=播种浆料 +hbmfluid.sas3=三硫化Sa326溶液 +hbmfluid.schrabidic=Sa326元素酸液 +hbmfluid.seedslurry=播种研磨液 hbmfluid.smear=工业油 hbmfluid.solvent=有机溶剂 +hbmfluid.sourgas=含硫天然气 +hbmfluid.sodiumhydroxide=氢氧化钠 hbmfluid.spentsteam=低压蒸汽 hbmfluid.steam=蒸汽 hbmfluid.sulfuric_acid=硫酸 -hbmfluid.superhotsteam=超热蒸汽 +hbmfluid.superhotsteam=高热浓蒸汽 hbmfluid.syngas=合成气 hbmfluid.tritium=氚 hbmfluid.uf6=六氟化铀 -hbmfluid.ultrahotsteam=超浓密蒸汽 +hbmfluid.ultrahotsteam=超热浓蒸汽 hbmfluid.unsaturateds=不饱和烃 hbmfluid.wastefluid=液态核废料 hbmfluid.wastegas=气态核废料 @@ -1215,14 +1276,16 @@ hbmfluid.watz=毒泥浆 hbmfluid.woodoil=木油 hbmfluid.xenon=氙气 hbmfluid.xpjuice=经验汁 +hbmfluid.xylene=BTX苯-甲苯-二甲苯混合物 hbmpseudofluid.none=空 -hbmpseudofluid.heuf6=高浓缩六氟化铀 -hbmpseudofluid.meuf6=中浓缩六氟化铀 -hbmpseudofluid.leuf6=低浓缩六氟化铀 -hbmpseudofluid.nuf6=天然浓度六氟化铀 +hbmpseudofluid.heuf6=高浓缩度六氟化铀 +hbmpseudofluid.meuf6=中浓缩度六氟化铀 +hbmpseudofluid.leuf6=低浓缩度六氟化铀 +hbmpseudofluid.nuf6=未浓缩六氟化铀 hbmpseudofluid.pf6=六氟化钚 -hbmpseudofluid.mud_heavy=重毒泥浆馏分 -hbmpseudofluid.mud=有毒泥浆气体 +hbmpseudofluid.mud_heavy=有毒污泥沉淀物 +hbmpseudofluid.mud=气态有毒污泥 + hbmmat.actinium227=锕-227 hbmmat.advancedalloy=高级合金 hbmmat.aluminum=铝 @@ -1236,44 +1299,48 @@ hbmmat.beryllium=铍 hbmmat.bismuth=铋 hbmmat.borax=硼砂 hbmmat.boron=硼 +hbmmat.cadmium=镉 +hbmmat.cadmium=镉 hbmmat.carbon=碳 +hbmmat.cdalloy=镉钢合金 hbmmat.cinnabar=朱砂 hbmmat.cmbsteel=CMB钢 hbmmat.coal=煤 hbmmat.coalcoke=焦煤 hbmmat.cobalt=钴 hbmmat.cobalt60=钴-60 -hbmmat.coltan=钶钽铁矿 +hbmmat.coltan=钶钽铁 hbmmat.copper=铜 +hbmmat.desh=德什 hbmmat.dineutronium=双聚中子态素 hbmmat.durasteel=高速钢 -hbmmat.euphemium=Ep -hbmmat.ferrouranium=铀铁合金 +hbmmat.euphemium=Ep元素 +hbmmat.ferrouranium=铀铁 hbmmat.fiberglass=玻璃纤维 hbmmat.fluorite=氟石 -hbmmat.flux=助熔剂 -hbmmat.ghiorsium336=Gh-336 +hbmmat.flux=焊剂 +hbmmat.ghiorsium336=气敖-336 hbmmat.gold=金 hbmmat.gold198=金-198 hbmmat.graphene=石墨烯 hbmmat.graphite=石墨 -hbmmat.hematite=赤铁矿 +hbmmat.hematite=赤铁 hbmmat.iron=铁 hbmmat.lapis=青金石 hbmmat.lead=铅 hbmmat.lead209=铅-209 -hbmmat.lignitecoke=褐煤焦煤 +hbmmat.lignitecoke=褐焦煤 hbmmat.lignite=褐煤 hbmmat.lithium=锂 hbmmat.magnetizedtungsten=磁化钨 hbmmat.malachite=孔雀石 hbmmat.meteoriciron=陨铁 -hbmmat.mingrade=工业级铜 +hbmmat.mingrade=紫铜 hbmmat.neptunium237=镎-237 hbmmat.niobium=铌 -hbmmat.obsidian=黑曜岩 -hbmmat.osmiridium=铱锇合金 -hbmmat.petcoke=石油焦炭 +hbmmat.obsidian=黑曜石 +hbmmat.osmiridium=铱锇 +hbmmat.petcoke=石油焦 hbmmat.pigiron=生铁 hbmmat.plutonium=钚 hbmmat.plutonium238=钚-238 @@ -1284,22 +1351,22 @@ hbmmat.plutoniumrg=反应堆级钚 hbmmat.polonium210=钋-210 hbmmat.polymer=聚合物 hbmmat.radium226=镭-226 -hbmmat.redphosphorus=红磷 +hbmmat.redphosphorus=紫铜 hbmmat.redstone=红石 hbmmat.rubber=橡胶 hbmmat.saltpeter=硝石 -hbmmat.saturnite=土星锭 -hbmmat.schrabidate=Sa酸铁 -hbmmat.schrabidium=低丰度Sa326 -hbmmat.schraranium=Sa326 +hbmmat.saturnite=土星 +hbmmat.schrabidate=Sa326元素酸化铁 +hbmmat.schrabidium=Sa326异变铀金属 +hbmmat.schraranium=低丰度Sa326异变铀金属 hbmmat.slag=炉渣 -hbmmat.solinium=Sa327 -hbmmat.starmetal=星辉 +hbmmat.solinium=Sa327索林 +hbmmat.starmetal=星辉金属 hbmmat.steel=钢 hbmmat.stone=石头 hbmmat.sulfur=硫 hbmmat.tantalum=钽 -hbmmat.tcalloy=锝钢 +hbmmat.tcalloy=锝-钢合金 hbmmat.technetium99=锝-99 hbmmat.titanium=钛 hbmmat.thorium232=钍-232 @@ -1308,9 +1375,11 @@ hbmmat.uranium=铀 hbmmat.uranium233=铀-233 hbmmat.uranium235=铀-235 hbmmat.uranium238=铀-238 +hbmmat.watzmud=毒泥浆 hbmmat.whitephosphorus=白磷 -hbmmat.workersalloy=Desh +hbmmat.workersalloy=德什 hbmmat.wroughtiron=锻铁 + matshape.block=%s 块 matshape.blocks=%s 块 matshape.ingot=%s 锭 @@ -1319,25 +1388,27 @@ matshape.nugget=%s 粒 matshape.nuggets=%s 粒 matshape.quantum=%s 量子 matshape.quanta=%s 量子 -info.asbestos=我感觉我的肺在燃烧。 -info.coaldust=在这里很难呼吸。 -info.coil=线圈强度 -info.templatefolder=需要使用机器模板文件夹创建 + +info.asbestos=这些石棉尘让我的肺像在燃烧一样. +info.coaldust=这些煤尘让我难以呼吸. +info.coil=加速线圈磁场强度 +info.templatefolder=使用 %s 制作 info.template_in=输入: info.template_in_p=输入: info.template_out=输出: info.template_out_p=输出: info.template_seconds=秒 -info.template_time=生产耗时: -item.acetylene_torch.name=乙炔焊罐 -item.ajr_boots.name=AJR 动力装甲靴子 -item.ajr_helmet.name=AJR 动力装甲头盔 -item.ajr_legs.name=AJR 动力装甲护腿 -item.ajr_plate.name=AJR 动力装甲胸甲 -item.ajro_boots.name=AJR动力装甲靴子 -item.ajro_helmet.name=AJR 动力装甲头盔 -item.ajro_legs.name=AJR 动力装甲护腿 -item.ajro_plate.name=AJR 动力装甲胸甲 +info.template_time=生产时间: + +item.acetylene_torch.name=乙炔焊枪 +item.ajr_boots.name=钢制突击队 靴子 +item.ajr_helmet.name=钢制突击队 头盔 +item.ajr_legs.name=钢制突击队 护腿 +item.ajr_plate.name=钢制突击队 胸甲 +item.ajro_boots.name=AJR动力装甲 靴子 +item.ajro_helmet.name=AJR动力装甲 头盔 +item.ajro_legs.name=AJR动力装甲 护腿 +item.ajro_plate.name=AJR动力装甲 胸甲 item.alloy_axe.name=高级合金斧 item.alloy_boots.name=高级合金靴子 item.alloy_helmet.name=高级合金头盔 @@ -1347,182 +1418,191 @@ item.alloy_pickaxe.name=高级合金镐 item.alloy_plate.name=高级合金胸甲 item.alloy_shovel.name=高级合金锹 item.alloy_sword.name=高级合金剑 -item.ammo_12gauge.name=12号鹿弹 -item.ammo_12gauge_du.name=12号鹿弹[铀涂层] -item.ammo_12gauge_incendiary.name=12号鹿弹[燃烧] -item.ammo_12gauge_marauder.name=12号战术反掠夺鹿弹 -item.ammo_12gauge_percussion.name=12号冲击火药帽 -item.ammo_12gauge_shrapnel.name=12号鹿弹[榴霰弹] -item.ammo_12gauge_sleek.name=12号鹿弹[IF-R&D] -item.ammo_20gauge.name=20号鹿弹 -item.ammo_20gauge_caustic.name=20号鹿弹[腐蚀] -item.ammo_20gauge_explosive.name=20号鹿弹[高爆] -item.ammo_20gauge_flechette.name=20号箭霰弹 -item.ammo_20gauge_incendiary.name=20号鹿弹[燃烧] -item.ammo_20gauge_shock.name=20号鹿弹[震荡] -item.ammo_20gauge_shrapnel.name=20号鹿弹[榴霰弹] -item.ammo_20gauge_sleek.name=20号鹿弹[IF-R&D] -item.ammo_20gauge_slug.name=20号独头弹 -item.ammo_20gauge_wither.name=20号鹿弹[凋零] +item.ammo_12gauge.name=12口径鹿弹 +item.ammo_12gauge_du.name=12口径鹿弹[铀涂层] +item.ammo_12gauge_incendiary.name=12口径鹿弹[燃烧] +item.ammo_12gauge_marauder.name=12口径战术反掠夺者鹿弹 +item.ammo_12gauge_percussion.name=12口径火帽 +item.ammo_12gauge_shrapnel.name=12口径鹿弹[榴霰弹] +item.ammo_12gauge_sleek.name=12口径鹿弹[IF-R&D] +item.ammo_20gauge.name=20口径鹿弹 +item.ammo_20gauge_caustic.name=20口径鹿弹[腐蚀] +item.ammo_20gauge_explosive.name=20口径鹿弹[高爆] +item.ammo_20gauge_flechette.name=20口径箭霰弹 +item.ammo_20gauge_incendiary.name=20口径鹿弹[燃烧] +item.ammo_20gauge_shock.name=20口径鹿弹[震荡] +item.ammo_20gauge_shrapnel.name=20口径鹿弹[榴霰弹] +item.ammo_20gauge_sleek.name=20口径鹿弹[IF-R&D] +item.ammo_20gauge_slug.name=20口径独头弹 +item.ammo_20gauge_wither.name=20口径鹿弹[凋零] item.ammo_22lr.name=.22LR子弹 -item.ammo_22lr_ap.name=.22LR子弹[AP] -item.ammo_22lr_chlorophyte.name=.22LR子弹[叶绿] -item.ammo_357_desh.name=.357马格南Desh子弹 +item.ammo_22lr_ap.name=.22LR子弹[穿甲弹] +item.ammo_22lr_chlorophyte.name=.22 LR弹药 [绿藻] +item.ammo_357_desh.name=.357马格南德什子弹 item.ammo_44.name=.44马格南子弹 -item.ammo_44_ap.name=.44马格南子弹[AP] +item.ammo_44_ap.name=.44马格南子弹[穿甲弹] item.ammo_44_bj.name=.44马格南子弹[船] -item.ammo_44_chlorophyte.name=.44马格南子弹[叶绿] -item.ammo_44_du.name=.44马格南子弹[贫铀] -item.ammo_44_phosphorus.name=.44马格南子弹[白磷] +item.ammo_44_chlorophyte.name=.44通用弹药[绿藻] +item.ammo_44_du.name=.44马格南子弹[贫铀涂层] +item.ammo_44_phosphorus.name=.44马格南子弹[白磷弹] item.ammo_44_pip.name=.44马格南子弹[车厢] item.ammo_44_rocket.name=.44马格南火箭 -item.ammo_44_silver.name=.44马格南子弹[建筑] -item.ammo_44_star.name=.44马格南子弹[星辉] -item.ammo_45.name=.45 ACP 子弹 -item.ammo_45_ap.name=.45 ACP 子弹[AP] -item.ammo_45_du.name=.45 ACP 子弹[贫铀] -item.ammo_4gauge.name=四号鹿弹 -item.ammo_4gauge_balefire.name=23mm野火榴弹 -item.ammo_4gauge_canister.name=23mm 火箭弹[榴霰弹] -item.ammo_4gauge_claw.name=4号爪弹 +item.ammo_44_silver.name=.44马格南子弹[建筑物] +item.ammo_44_star.name=.44马格南子弹[星辉金属] +item.ammo_45.name=.45 ACP子弹 +item.ammo_45_ap.name=.45 ACP子弹[穿甲弹] +item.ammo_45_du.name=.45 ACP子弹[贫铀涂层] +item.ammo_4gauge.name=四口径鹿弹 +item.ammo_4gauge_balefire.name=23mmB.F.反物质榴弹 +item.ammo_4gauge_canister.name=23mm火箭弹[榴霰弹] +item.ammo_4gauge_claw.name=4口径金属破片弹 item.ammo_4gauge_explosive.name=23mm榴弹 -item.ammo_4gauge_flechette.name=4号箭霰弹 -item.ammo_4gauge_flechette_phosphorus.name=4号箭霰弹[白磷] +item.ammo_4gauge_flechette.name=4口径箭霰弹 +item.ammo_4gauge_flechette_phosphorus.name=4口径箭霰弹[白磷弹] item.ammo_4gauge_kampf.name=23mm火箭弹 -item.ammo_4gauge_semtex.name=23mm采矿弹药 -item.ammo_4gauge_sleek.name=4号鹿弹[IF-R&D] -item.ammo_4gauge_slug.name=四号实心独头弹 -item.ammo_4gauge_titan.name=4号Quacker鹿弹 -item.ammo_4gauge_vampire.name=4号木签弹 -item.ammo_4gauge_void.name=4号电离粒子弹 +item.ammo_4gauge_sleek.name=4口径鹿弹[IF-R&D] +item.ammo_4gauge_slug.name=四口径实心独头弹 +item.ammo_4gauge_titan.name=四口径泰坦杀手弹 +item.ammo_4gauge_semtex.name=23mm挖掘榴弹 +item.ammo_4gauge_sleek.name=4口径霰弹[IF-R&D] +item.ammo_4gauge_vampire.name=4口径反吸血鬼木桩霰弹 +item.ammo_4gauge_void.name=4口径电离子霰弹 item.ammo_50ae.name=.50AE子弹 -item.ammo_50ae_ap.name=.50AE子弹[AP] -item.ammo_50ae_chlorophyte.name=.50AE子弹[叶绿] -item.ammo_50ae_du.name=.50AE子弹[贫铀] -item.ammo_50ae_star.name=.50AE子弹[星辉] +item.ammo_50ae_ap.name=.50AE子弹[穿甲弹] +item.ammo_50ae_chlorophyte.name=.50 AE弹药绿藻] +item.ammo_50ae_du.name=.50AE子弹[贫铀涂层] +item.ammo_50ae_star.name=.50AE子弹[星辉金属] item.ammo_50bmg.name=.50BMG子弹 -item.ammo_50bmg_ap.name=.50BMG子弹[AP] -item.ammo_50bmg_chlorophyte.name=.50BMG子弹[叶绿] -item.ammo_50bmg_du.name=.50BMG子弹[贫铀] +item.ammo_50bmg_ap.name=.50 BMG子弹[穿甲弹] +item.ammo_50bmg_chlorophyte.name=.50 BMG弹药[绿藻] +item.ammo_50bmg_du.name=.50BMG子弹[贫铀涂层] item.ammo_50bmg_explosive.name=.50BMG子弹[高爆] item.ammo_50bmg_flechette.name=.50 BMG镖形弹 item.ammo_50bmg_flechette_am.name=.50 BMG镖形弹[含镅] item.ammo_50bmg_flechette_po.name=.50 BMG镖形弹[含钋] item.ammo_50bmg_incendiary.name=.50BMG子弹[燃烧] -item.ammo_50bmg_phosphorus.name=.50BMG子弹[白磷] +item.ammo_50bmg_phosphorus.name=.50BMG子弹[白磷弹] item.ammo_50bmg_sleek.name=.50BMG子弹[IF-R&D] -item.ammo_50bmg_star.name=.50BMG子弹[星辉] +item.ammo_50bmg_star.name=.50BMG子弹[星辉金属] item.ammo_556.name=5.56mm子弹 -item.ammo_556_ap.name=5.56mm子弹[AP] -item.ammo_556_chlorophyte.name=5.56mm子弹[叶绿] -item.ammo_556_du.name=5.56mm子弹[贫铀] -item.ammo_556_flechette.name=5.56mm弗莱彻子弹 -item.ammo_556_flechette_chlorophyte.name=5.56mm弗莱彻子弹[叶绿] -item.ammo_556_flechette_du.name=5.56mm弗莱彻子弹 [贫铀穿甲] -item.ammo_556_flechette_incendiary.name=5.56mm弗莱彻子弹 [燃烧] -item.ammo_556_flechette_phosphorus.name=5.56mm弗莱彻子弹 [白磷穿甲] -item.ammo_556_flechette_sleek.name=5.56mm弗莱彻子弹[IF-R&D] +item.ammo_556_ap.name=5.56mm子弹[穿甲弹] +item.ammo_556_du.name=5.56mm子弹[贫铀涂层] +item.ammo_556_flechette.name=5.56mm镖形弹 +item.ammo_556_flechette_chlorophyte.name=5.56mm镖形弹弹药[绿藻] +item.ammo_556_flechette_du.name=5.56mm镖形弹 [贫铀涂层] +item.ammo_556_flechette_incendiary.name=5.56mm镖形弹 [燃烧] +item.ammo_556_flechette_phosphorus.name=5.56mm镖形弹 [白磷弹] +item.ammo_556_flechette_sleek.name=5.56mm镖形弹[IF-R&D] item.ammo_556_k.name=5.56mm空包弹 -item.ammo_556_phosphorus.name=5.56mm子弹[白磷] +item.ammo_556_chlorophyte.name=5.56mm弹药[绿藻] +item.ammo_556_phosphorus.name=5.56mm子弹[白磷弹] item.ammo_556_sleek.name=5.56mm子弹[IF-R&D] -item.ammo_556_star.name=5.56mm子弹 [星辉] -item.ammo_556_tracer.name=5.56mm 子弹[曳光弹] +item.ammo_556_star.name=5.56mm子弹 [星辉金属] +item.ammo_556_tracer.name=5.56mm Round[曳光弹] item.ammo_5mm.name=5mm子弹 -item.ammo_5mm_chlorophyte.name=5mm子弹[叶绿] -item.ammo_5mm_du.name=5mm子弹[贫铀] +item.ammo_5mm_chlorophyte.name=5mm弹药[绿藻] +item.ammo_5mm_du.name=5mm子弹[贫铀涂层] item.ammo_5mm_explosive.name=5mm子弹[高爆] -item.ammo_5mm_star.name=5mm子弹[星辉] -item.ammo_75bolt.name=.75弹匣(30发) -item.ammo_75bolt_incendiary.name=.75燃烧弹匣(30发) -item.ammo_75bolt_he.name=.75高爆弹匣(30发) +item.ammo_5mm_star.name=5mm子弹[星辉金属] +item.ammo_75bolt.name=.75爆弹枪火箭推进弹药[30发] +item.ammo_75bolt_incendiary.name=.75 爆弹枪火箭推进弹药[燃烧] +item.ammo_75bolt_he.name=.75 爆弹枪火箭推进弹药[高爆] item.ammo_762.name=7.62mm 子弹 -item.ammo_762_ap.name=7.62mm 子弹[AP] -item.ammo_762_du.name=7.62mm 子弹[贫铀] -item.ammo_762_k.name=7.62mm 空包弹 -item.ammo_762_phosphorus.name=7.62mm 子弹[白磷] -item.ammo_762_tracer.name=7.62mm 子弹[曳光] +item.ammo_762_ap.name=7.62mm子弹[穿甲弹] +item.ammo_762_du.name=7.62mm子弹[贫铀涂层] +item.ammo_762_k.name=7.62mmK-子弹 +item.ammo_762_phosphorus.name=7.62mm子弹[白磷弹] +item.ammo_762_tracer.name=7.62mm子弹[曳光弹] item.ammo_9mm.name=9mm子弹 -item.ammo_9mm_ap.name=9mm子弹[AP] -item.ammo_9mm_chlorophyte.name=9mm子弹[叶绿] -item.ammo_9mm_du.name=9mm子弹[贫铀] +item.ammo_9mm_ap.name=9mm子弹[穿甲弹] +item.ammo_9mm_chlorophyte.name=9mm弹药[绿藻] +item.ammo_9mm_du.name=9mm子弹[贫铀涂层] item.ammo_9mm_rocket.name=9mm火箭弹 -item.ammo_arty.name=16英寸炮弹 -item.ammo_arty_cargo.name=16英寸快递炮弹 -item.ammo_arty_classic.name=16英寸炮弹 (特制) -item.ammo_arty_he.name=16英寸高爆炮弹 -item.ammo_arty_mini_nuke.name=16英寸微型核炮弹 -item.ammo_arty_mini_nuke_multi.name=16英寸多弹头微型核炮弹 -item.ammo_arty_nuke.name=16英寸核炮弹 -item.ammo_arty_phosphorus.name=16英寸磷炮弹 -item.ammo_arty_phosphorus_multi.name=16英寸多弹头磷炮弹 -item.ammo_cell.name=能量单元 +item.ammo_arty.name=16" 重炮炮弹 +item.ammo_arty_cargo.name=16" 货运炮弹 +item.ammo_arty_classic.name=16" 重炮炮弹 (异星工厂特供) +item.ammo_arty_he.name=16" 高爆重炮炮弹 +item.ammo_arty_mini_nuke.name=16" 小型重炮核炮弹 +item.ammo_arty_mini_nuke_multi.name=16" 集束小型重炮核炮弹 +item.ammo_arty_nuke.name=16" 重炮核炮弹 +item.ammo_arty_phosphorus.name=16" 白磷重炮炮弹 +item.ammo_arty_phosphorus_multi.name=16" 集束白磷重炮炮弹 +item.ammo_cell.name=能量电池 item.ammo_container.name=万能弹药盒 -item.ammo_dart.name=塑料镖[凋零] -item.ammo_dart_nerf.name=NERF 飞镖 -item.ammo_dart_nuclear.name=塑料镖[定时炸药] -item.ammo_dgk.name=双联守门员近防系统200发弹药 -item.ammo_fireext.name=灭火器 水罐 -item.ammo_fireext_foam.name=灭火器 泡沫罐 -item.ammo_fireext_sand.name=灭火器 硼砂罐 +item.ammo_dart.name=塑料飞镖 [凋零] +item.ammo_dart_nerf.name=NERF飞镖 +item.ammo_dart_nuclear.name=塑料飞镖 [定时爆炸] +item.ammo_fireext.name=灭火器水罐 +item.ammo_fireext_foam.name=灭火器泡沫罐 +item.ammo_fireext_sand.name=灭火器硼砂罐 +item.ammo_dgk.name=200发双管近防炮"霍华德"弹药箱 item.ammo_folly.name=银弹 -item.ammo_folly_du.name=银弹[贫铀, 不爆炸] +item.ammo_folly_du.name=银弹[贫铀涂层, 无爆炸] item.ammo_folly_nuclear.name=银弹[核子] item.ammo_fuel.name=柴油罐 item.ammo_fuel_gas.name=毒气罐 item.ammo_fuel_napalm.name=凝固汽油罐 item.ammo_fuel_phosphorus.name=白磷罐 -item.ammo_fuel_vaporizer.name=汽化罐 +item.ammo_fuel_vaporizer.name=挥发性燃料罐 + item.ammo_grenade.name=40mm榴弹 item.ammo_grenade_concussion.name=40mm榴弹[震荡] -item.ammo_grenade_finned.name=40mm榴弹[尾翼稳定] +item.ammo_grenade_finned.name=40mm榴弹[稳定尾翼] item.ammo_grenade_he.name=40mm榴弹[HE] item.ammo_grenade_incendiary.name=40mm榴弹[燃烧] item.ammo_grenade_kampf.name=40mm战术榴弹 item.ammo_grenade_nuclear.name=40mm榴弹[核子] -item.ammo_grenade_phosphorus.name=40mm榴弹[白磷] +item.ammo_grenade_phosphorus.name=40mm榴弹[白磷弹] item.ammo_grenade_sleek.name=40mm榴弹[IF-R&D] -item.ammo_grenade_toxic.name=40mm榴弹[化学] +item.ammo_grenade_toxic.name=40mm榴弹[化学毒气] item.ammo_grenade_tracer.name=40mm训练榴弹 -item.ammo_himars_standard.name=M28制导炮兵火箭弹舱 -item.ammo_himars_single.name=M39A1制导炮兵火箭弹舱 -item.ammo_luna.name=Lunatic狙击弹 -item.ammo_luna_explosive.name=Lunatic狙击爆炸弹 -item.ammo_luna_incendiary.name=Lunatic狙击燃烧弹 -item.ammo_mirv.name=迷你MIRV -item.ammo_mirv_high.name=迷你MIRV (高当量) -item.ammo_mirv_low.name=迷你MIRV (低当量) -item.ammo_mirv_safe.name=迷你MIRV (安全) -item.ammo_mirv_special.name=迷你MIRV +tem.ammo_himars_standard.name=227mm 制导火炮火箭吊舱 +item.ammo_himars_standard_he.name=227mm 制导火炮火箭吊舱(高爆弹头) +item.ammo_himars_standard_mini_nuke.name=227mm 制导火炮火箭吊舱(小型核弹头) +item.ammo_himars_standard_tb.name=227mm 制导火炮火箭吊舱(温压弹头) +item.ammo_himars_standard_wp.name=227mm 制导火炮火箭吊舱(白磷弹头) +item.ammo_himars_single.name=610mm 制导火炮火箭吊舱 +item.ammo_himars_single_tb.name=610mm制导火炮火箭吊舱(温压弹头) +item.ammo_luna.name=月都科技狙击枪弹药 +item.ammo_luna_explosive.name=月都科技狙击枪高爆弹药 +item.ammo_luna_incendiary.name=月都科技狙击枪燃烧弹药 +item.ammo_mirv.name=分导式多弹头迷你核弹 +item.ammo_mirv_high.name=分导式多弹头迷你核弹 (高辐射污染) +item.ammo_mirv_low.name=分导式多弹头迷你核弹 (低辐射污染) +item.ammo_mirv_safe.name=分导式多弹头迷你核弹 (安全) +item.ammo_mirv_special.name=迷你 MILV item.ammo_nuke.name=迷你核弹 item.ammo_nuke_barrel.name=小型核废料桶 -item.ammo_nuke_high.name=迷你核弹 (高当量) -item.ammo_nuke_low.name=迷你核弹 (低当量) +item.ammo_nuke_high.name=迷你核弹 (高辐射污染) +item.ammo_nuke_low.name=迷你核弹 (低辐射污染) item.ammo_nuke_pumpkin.name=南瓜炸弹 -item.ammo_nuke_safe.name=迷你核弹 (安全) -item.ammo_nuke_tots.name=迷你核弹 (幼体) +item.ammo_nuke_safe.name=迷你核弹 (安全) +item.ammo_nuke_tots.name=迷你核弹 (小型散射弹丸) + item.ammo_rocket.name=84mm火箭弹 -item.ammo_rocket_canister.name=84mm 火箭弹[榴霰弹] +item.ammo_rocket_canister.name=84mm火箭弹[榴霰弹] item.ammo_rocket_digamma.name=§4归 零§r -item.ammo_rocket_emp.name=84mm火箭弹[EMP] +item.ammo_rocket_emp.name=84mm火箭弹[EMP电磁脉冲] item.ammo_rocket_glare.name=84mm火箭弹[红光] -item.ammo_rocket_he.name=84mm火箭弹[HE] +item.ammo_rocket_he.name=84mm火箭弹[高爆] item.ammo_rocket_incendiary.name=84mm火箭弹[燃烧] item.ammo_rocket_nuclear.name=84mm火箭弹[核子] -item.ammo_rocket_phosphorus.name=84mm火箭弹[白磷] +item.ammo_rocket_phosphorus.name=84mm火箭弹[白磷弹] item.ammo_rocket_rpc.name=84mm火箭弹[飞行电锯] item.ammo_rocket_shrapnel.name=84mm火箭弹[破片] item.ammo_rocket_sleek.name=84mm火箭弹[IF-R&D] -item.ammo_rocket_toxic.name=84mm火箭弹[化学] +item.ammo_rocket_toxic.name=84mm火箭弹[化学毒气] + item.ammo_shell.name=240mm炮弹 -item.ammo_shell_apfsds_du.name=240mm 贫铀尾翼稳定脱壳穿甲弹 -item.ammo_shell_apfsds_t.name=240mm 钨心尾翼稳定脱壳穿甲弹 -item.ammo_shell_explosive.name=240mm 高爆炮弹 -item.ammo_shell_w9.name=240mm W9核子炮弹 +item.ammo_shell_apfsds_du.name=240mm尾翼稳定脱壳贫铀穿甲炮弹 +item.ammo_shell_apfsds_t.name=240mm尾翼稳定脱壳钨心穿甲炮弹 +item.ammo_shell_explosive.name=240mm高爆炮弹 +item.ammo_shell_w9.name=240mmW9核炮弹 item.ammo_stinger_rocket.name=毒刺导弹 -item.ammo_stinger_rocket_he.name=毒刺导弹[高爆] -item.ammo_stinger_rocket_incendiary.name=毒刺导弹[燃烧] -item.ammo_stinger_rocket_nuclear.name=毒刺导弹[Привет] -item.ammo_stinger_rocket_bones.name=毒刺导弹[寻骨] +item.ammo_stinger_rocket_he.name=毒刺导弹 [高爆] +item.ammo_stinger_rocket_incendiary.name=毒刺导弹 [燃烧] +item.ammo_stinger_rocket_nuclear.name=毒刺导弹 [核子] +item.ammo_stinger_rocket_bones.name=毒刺导弹 [寻骨] item.ams_catalyst_aluminium.name=铝反应催化剂 item.ams_catalyst_beryllium.name=铍反应催化剂 item.ams_catalyst_blank.name=空白反应催化剂 @@ -1531,36 +1611,36 @@ item.ams_catalyst_cerium.name=铈反应催化剂 item.ams_catalyst_cobalt.name=钴反应催化剂 item.ams_catalyst_copper.name=铜反应催化剂 item.ams_catalyst_dineutronium.name=双聚中子态素反应催化剂 -item.ams_catalyst_euphemium.name=Ep反应催化剂 +item.ams_catalyst_euphemium.name=Ep元素反应催化剂 item.ams_catalyst_iron.name=铁反应催化剂 item.ams_catalyst_lithium.name=锂反应催化剂 item.ams_catalyst_niobium.name=铌反应催化剂 -item.ams_catalyst_schrabidium.name=Sa326反应催化剂 +item.ams_catalyst_schrabidium.name=Sa326异变铀金属反应催化剂 item.ams_catalyst_strontium.name=锶反应催化剂 item.ams_catalyst_thorium.name=钍反应催化剂 item.ams_catalyst_tungsten.name=钨反应催化剂 item.ams_core_eyeofharmony.name=和谐之眼[AMS/DFC核心] item.ams_core_sing.name=活跃奇点[AMS/DFC核心] -item.ams_core_thingy.name=Thingy[AMS/DFC核心] +item.ams_core_thingy.name=暮光闪闪的皇冠[AMS/DFC核心] item.ams_core_wormhole.name=微型虫洞[AMS/DFC核心] item.ams_focus_blank.name=空白稳定器焦点 -item.ams_focus_booster.name=较弱的约束场和核心能量注入:$更多的热量产生,更多的能量。 -item.ams_focus_booster.desc=较弱的约束场和核心能量注入:$更多的热量产生,更多的能量。 -item.ams_focus_limiter.name=限制稳定器焦点 -item.ams_focus_limiter.desc=限制领域的最高性能:$标准冷却,无能源加成。 -item.ams_lens.name=稳定透镜 -item.ams_muzzle.name=激活射线发射极 -item.ams_muzzle.desc=...它可以发出一束能量束。 +item.ams_focus_booster.name=增压型稳定器焦点 +item.ams_focus_booster.desc=更弱的约束场和核心能量注入:$产生更多的热量, 带来额外的能量. +item.ams_focus_limiter.name=限制型稳定器焦点 +item.ams_focus_limiter.desc=稳定力场被提高到最高性能:$只需标准的冷却,无产能增益. +item.ams_lens.name=稳定力场透镜 +item.ams_muzzle.name=激发射线发射极 +item.ams_muzzle.desc=...它会发射某种高能粒子束. item.analyzer.name=分析仪 -item.anchor_remote.name=召回设备 +item.anchor_remote.name=召回装置 item.antiknock.name=四乙基铅抗爆剂 -item.apple_euphemium.name=Ep苹果 +item.apple_euphemium.name=Ep元素苹果 item.apple_lead.name=铅苹果 -item.apple_schrabidium.name=Sa326苹果 +item.apple_schrabidium.name=Sa326异变铀金属苹果 item.arc_electrode.name=石墨电极 -item.arc_electrode_burnt.name=熔化电极 -item.arc_electrode_desh.name=Desh电极 -item.armor_polish.name=亮甲牌装甲抛光剂 +item.arc_electrode_burnt.name=熔化的电极 +item.arc_electrode_desh.name=德什电极 +item.armor_polish.name=闪甲™ 盔甲抛光剂 item.asbestos_boots.name=防火靴 item.asbestos_cloth.name=防火布 item.asbestos_helmet.name=防火头盔 @@ -1572,81 +1652,82 @@ item.assembly_556.name=5.56mm子弹[待装配] item.assembly_762.name=7.62mm子弹[待装配] item.assembly_actionexpress.name=.50 AE子弹[待装配] item.assembly_calamity.name=.50 BMG子弹[待装配] -item.assembly_desh.name=Desh子弹[待装配] +item.assembly_desh.name=德什子弹[待装配] item.assembly_gold.name=金子弹[待装配] item.assembly_iron.name=铁子弹[待装配] item.assembly_lacunae.name=.5mm子弹[待装配] -item.assembly_lead.name=玻璃子弹[待装配] -item.assembly_luna.name=Lunatic狙击子弹[待装配] +item.assembly_lead.name=玻璃核子子弹[待装配] +item.assembly_luna.name=月都科技狙击枪子弹[待装配] item.assembly_nightmare.name=钨子弹[待装配] -item.assembly_nopip.name=.44马格南[待装配] -item.assembly_nuke.name=迷你核弹外壳 -item.assembly_pip.name=污染子弹[待装配] -item.assembly_schrabidium.name=Sa326子弹[待装配] +item.assembly_nopip.name=.44马格南子弹[待装配] +item.assembly_nuke.name=迷你核弹[待装配] +item.assembly_pip.name=腐化子弹[待装配] +item.assembly_schrabidium.name=Sa326异变铀金属子弹[待装配] item.assembly_smg.name=9mm子弹[待装配] -item.assembly_steel.name=铅子弹[待装配] +item.assembly_steel.name=铅弹[待装配] item.assembly_template.name=装配机模板: item.assembly_uzi.name=.22 LR子弹[待装配] -item.attachment_mask.name=附加型防毒面具 -item.attachment_mask_mono.name=可接入式半面罩防毒面具 +item.attachment_mask.name=可接入式防毒面具 +item.attachment_mask_mono.name=可接入式防护面罩 item.australium_iii.name=MkIII寿命延长剂 item.australium_iv.name=MkIV寿命延长剂 item.australium_v.name=MkV寿命延长剂 item.back_tesla.name=背负式特斯拉线圈 -item.balefire_and_ham.name=火腿野火蛋 -item.balefire_and_steel.name=野火打火石 -item.balefire_scrambled.name=炒野火蛋 -item.ball_dynamite.name=硝糖炸药 +item.balefire_and_ham.name=火腿BF蛋 +item.balefire_and_steel.name=BF打火器 +item.balefire_scrambled.name=炒BF蛋 +item.ball_dynamite.name=炸药 item.ball_fireclay.name=耐火粘土 -item.ball_tnt.name=TNT炸药 -item.ballistic_gauntlet.name=防弹护具 +item.ball_tatb.name=TATB三氨基三硝基苯 +item.ball_tnt.name=TNT +item.ballistic_gauntlet.name=爆破拳套 item.ballistite.name=混合无烟火药 -item.bandaid.name=邦迪创可贴 +item.bandaid.name=绷带 item.bathwater.name=有毒肥皂水 -item.bathwater_mk2.name=有毒肥皂水(马香味) +item.bathwater_mk2.name=有毒肥皂水 (马香味) item.battery_advanced.name=高级电池 -item.battery_advanced_cell.name=高级电池组 -item.battery_advanced_cell_12.name=十二联高级电池组 -item.battery_advanced_cell_4.name=四联高级电池组 +item.battery_advanced_cell.name=高级能量电池组 +item.battery_advanced_cell_12.name=十二联高级能量电池组 +item.battery_advanced_cell_4.name=四联高级能量电池组 item.battery_creative.name=无限电池 item.battery_generic.name=电池 -item.battery_lithium.name=锂电池 -item.battery_lithium_cell.name=锂电池组 -item.battery_lithium_cell_3.name=三联锂电池组 -item.battery_lithium_cell_6.name=六联锂电池组 +item.battery_lithium.name=锂离子电池 +item.battery_lithium_cell.name=锂离子电池组 +item.battery_lithium_cell_3.name=三联锂离子电池组 +item.battery_lithium_cell_6.name=六联锂离子电池组 item.battery_potato.name=马铃薯电池 item.battery_potatos.name=马铃薯OS -item.battery_red_cell.name=红石电池组 -item.battery_red_cell_24.name=二十四联红石电池组 -item.battery_red_cell_6.name=六联红石电池组 -item.battery_sc_americium.name=自充电 镅-241电池 -item.battery_sc_gold.name=自充电 金-198电池 -item.battery_sc_lead.name=自充电 铅-209电池 -item.battery_sc_plutonium.name=自充电 钚-238电池 -item.battery_sc_polonium.name=自充电 钋-210电池 -item.battery_sc_technetium.name=自充电 锝-98电池 -item.battery_sc_uranium.name=自充电 铀-238电池 -item.battery_schrabidium.name=Sa326电池 -item.battery_schrabidium_cell.name=Sa326电池组 -item.battery_schrabidium_cell_2.name=双联Sa326电池组 -item.battery_schrabidium_cell_4.name=四联Sa326电池组 -item.battery_spark.name=Spark电池 -item.battery_spark_cell_100.name=Spark神秘储能电池组 -item.battery_spark_cell_1000.name=Spark神秘物质能量空间 -item.battery_spark_cell_10000.name=Spark时空晶体 -item.battery_spark_cell_25.name=Spark神秘汽车电池 -item.battery_spark_cell_2500.name=Spark神秘迪拉克之海 -item.battery_spark_cell_6.name=Spark电池组 -item.battery_spark_cell_power.name=Spark反物理储能装置 +item.battery_red_cell.name=红石能量电池组 +item.battery_red_cell_24.name=二十四联红石能量电池组 +item.battery_red_cell_6.name=六联红石能量电池组 +item.battery_sc_americium.name=自充电镅-241电池 +item.battery_sc_gold.name=自充电金-198电池 +item.battery_sc_lead.name=自充电铅-209电池 +item.battery_sc_plutonium.name=自充电钚-238电池 +item.battery_sc_polonium.name=自充电钋-210电池 +item.battery_sc_technetium.name=自充电锝-99电池 +item.battery_sc_uranium.name=自充电铀-238电池 +item.battery_schrabidium.name=Sa326异变铀金属电池 +item.battery_schrabidium_cell.name=Sa326异变铀金属电池组 +item.battery_schrabidium_cell_2.name=双联Sa326异变铀金属电池组 +item.battery_schrabidium_cell_4.name=四联Sa326异变铀金属电池组 +item.battery_spark.name=Spark闪闪高能电池 +item.battery_spark_cell_100.name=Spark闪闪奥术储能阵列 +item.battery_spark_cell_1000.name=Spark闪闪奥术质能转换器 +item.battery_spark_cell_10000.name=Spark闪闪奥术时空晶体 +item.battery_spark_cell_25.name=Spark闪闪神秘汽车电池 +item.battery_spark_cell_2500.name=Spark闪闪奥术狄拉克负能海连通器 +item.battery_spark_cell_6.name=Spark闪闪奥术电池组 +item.battery_spark_cell_power.name=Spark闪闪反物理储能装置 item.battery_steam.name=蒸汽动力储能罐 item.battery_steam_large.name=大型蒸汽动力储能罐 item.battery_su.name=SU-电池 item.battery_su_l.name=大型SU-电池 -item.battery_trixite.name=杂牌Spark电池 -item.beta.name=Bata测试版功能 +item.battery_trixite.name=崔克希电池 +item.beta.name=测试版功能 item.big_sword.name=大剑 item.billet_actinium.name=锕-227坯料 -item.billet_am_mix.name=反应堆级镅坯料 +item.billet_am_mix.name=反应器级镅坯料 item.billet_am241.name=镅-241坯料 item.billet_am242.name=镅-242坯料 item.billet_americium_fuel.name=镅燃料坯料 @@ -1659,20 +1740,20 @@ item.billet_beryllium.name=铍坯料 item.billet_bismuth.name=铋坯料 item.billet_co60.name=钴-60坯料 item.billet_cobalt.name=钴坯料 -item.billet_flashlead.name=闪光铅坯料 -item.billet_flashlead.desc=晶格衰变,引起反物质湮灭反应,导致π介子释放,衰变为μ子,催化原子核融合,产生新的元素$请尽量跟上。 -item.billet_gh336.name=Gh336坯料 -item.billet_gh336.desc=钅喜的同事 -item.billet_hes.name=高浓缩度Sa326燃料坯料 -item.billet_les.name=低浓缩度Sa326燃料坯料 -item.billet_mox_fuel.name=MOX燃料坯料 -item.billet_mox_fuel.desc=口袋摩西! +item.billet_flashlead.name=激活态铅坯料 +item.billet_flashlead.desc=晶格衰变, 引起反物质湮灭反应, $导致π介子释放, $衰变为μ介子, 催化原子核聚变, $产生新的元素$请尽量跟上. +item.billet_gh336.name=气敖-336坯料 +item.billet_gh336.desc=钅喜的同事. +item.billet_hes.name=高浓缩度Sa326异变铀金属燃料坯料 +item.billet_les.name=低浓缩度Sa326异变铀金属燃料坯料 +item.billet_mox_fuel.name=MOX核燃料坯料 +item.billet_mox_fuel.desc=口袋摩西! item.billet_neptunium.name=镎坯料 item.billet_neptunium_fuel.name=镎核燃料坯料 item.billet_nuclear_waste.name=核废料坯料 item.billet_pb209.name=铅-209坯料 item.billet_po210be.name=钋210-铍坯料 -item.billet_polonium.name=钋坯料 +item.billet_polonium.name=钋-210坯料 item.billet_pu_mix.name=反应堆级钚坯料 item.billet_pu238.name=钚-238坯料 item.billet_pu238be.name=钚238-铍坯料 @@ -1680,47 +1761,52 @@ item.billet_pu239.name=钚-239坯料 item.billet_pu240.name=钚-240坯料 item.billet_pu241.name=钚-241坯料 item.billet_plutonium.name=钚坯料 -item.billet_plutonium_fuel.name=钚燃料坯料 +item.billet_plutonium_fuel.name=钚核燃料坯料 item.billet_ra226.name=镭-226坯料 item.billet_ra226be.name=镭226-铍坯料 -item.billet_schrabidium.name=Sa326坯料 -item.billet_schrabidium_fuel.name= Sa326燃料坯料 -item.billet_solinium.name=Sa327坯料 +item.billet_schrabidium.name=Sa326异变铀金属坯料 +item.billet_schrabidium_fuel.name=Sa326异变铀金属核燃料坯料 +item.billet_solinium.name=Sa327索林坯料 item.billet_sr90.name=锶-90坯料 item.billet_technetium.name=锝-99坯料 item.billet_th232.name=钍-232坯料 -item.billet_thorium_fuel.name=钍燃料坯料 +item.billet_thorium_fuel.name=钍核燃料坯料 item.billet_u233.name=铀-233坯料 item.billet_u235.name=铀-235坯料 item.billet_u238.name=铀-238坯料 item.billet_uranium.name=铀坯料 -item.billet_uranium_fuel.name=铀燃料坯料 -item.billet_yharonite.name=犽戎龙素坯料 -item.billet_zfb_am_mix.name=反应器级镅 ZFB坯料 -item.billet_zfb_bismuth.name=铋 ZFB坯料 -item.billet_zfb_pu241.name=钚-241 ZFB坯料 +item.billet_uranium_fuel.name=铀核燃料坯料 +item.billet_yharonite.name=龙素坯料 +item.billet_zfb_am_mix.name=ZFB锆混合反应堆级镅快速增殖坯料 +item.billet_zfb_bismuth.name=ZFB锆混合铋快速增殖坯料 +item.billet_zfb_pu241.name=ZFB锆混合钚-241快速增殖坯料 item.billet_zirconium.name=锆坯料 -item.bio_wafer.name=海藻晶片 +item.bio_wafer.name=藻类晶片 item.biomass.name=生物质 item.biomass_compressed.name=压缩生物质 item.bismuth_boots.name=铋凉鞋 item.bismuth_helmet.name=铋头饰 item.bismuth_legs.name=铋护膝 item.bismuth_pickaxe.name=铋镐 -item.bismuth_plate.name=铋质护肩、项链和腰带 +item.bismuth_plate.name=铋质护肩, 项链和腰带 item.bismuth_tool.name=磁力提取器 -item.bj_boots.name=§4月神§r钉靴 -item.bj_helmet.name=热传感器眼罩 -item.bj_legs.name=§4月神§r护腿 -item.bj_plate.name=§4月神§r胸甲 -item.bj_plate_jetpack.name=§4月神§r胸甲 (带翼) -item.black_diamond.name=黑色钻石 +item.bj_boots.name=§b[月 神]§r 铆钉靴 +item.bj_helmet.name=敌我目标实体识别仪 +item.bj_legs.name=§b[月 神]§r 神经接入式腿部外骨骼盔甲 +item.bj_plate.name=§b[月 神]§r 神经接入式全自动动力盔甲 +item.bj_plate_jetpack.name=§b[月 神]§r 神经接入式全自动动力盔甲(带等离子推进器) +item.black_diamond.name=黑钻石 item.black_hole.name=微型黑洞 -item.blade_meteorite.name=陨石刀 -item.blade_titanium.name=钛扇片 -item.blade_tungsten.name=钨强化扇片 +item.blade_meteorite.name=陨石刀片 +item.blade_titanium.name=钛涡轮扇片 +item.blade_tungsten.name=钨强化涡轮扇片 item.blades_advanced_alloy.name=高级合金刀片 -item.blades_desh.name=Desh制刀片 +item.blades_aluminium.name=铝制刀片 +item.blades_combine_steel.name=CMB钢刀片 +item.blades_desh.name=德什制刀片 +item.blades_gold.name=金制刀片 +item.blades_iron.name=铁制刀片 +item.blades_schrabidium.name=Sa326异变铀金属刀片 item.blades_steel.name=钢制刀片 item.blades_titanium.name=钛制刀片 item.blowtorch.name=喷灯 @@ -1733,15 +1819,16 @@ item.bobmazon_weapons.name=Bobmazon: 武器和爆炸物 item.bolt_compound.name=加强涡轮机轴 item.bolt_dura_steel.name=高速钢螺栓 item.bolt_tungsten.name=钨螺栓 +item.boltgun.name=气动铆钉枪 item.bomb_caller.name=空袭指示器 item.bomb_waffle.name=大规模杀伤性华夫饼 -item.book_guide.name=HBM指导书 +item.book_guide.name=RBMK反应堆操作指导书 item.book_of_.name=车厢书 item.book_secret.name=3-596-50802-9 item.bottle2_empty.name=空瓶 -item.bottle2_fritz.name=弗里茨可乐 -item.bottle2_fritz_special.name=第一弗里茨可乐 -item.bottle2_korl.name=Korl +item.bottle2_fritz.name=Fritz弗里茨可乐 +item.bottle2_fritz_special.name=第一Fritz可乐 +item.bottle2_korl.name=库尔勒瓶盖 item.bottle2_korl_special.name=第一Korl item.bottle2_sunset.name=夕阳沙士 item.bottle_cherry.name=樱桃味核子可乐 @@ -1750,24 +1837,24 @@ item.bottle_mercury.name=一瓶水银 item.bottle_nuka.name=核子可乐 item.bottle_opener.name=Hbm自制开瓶器 item.bottle_quantum.name=量子核子可乐 -item.bottle_rad.name=辐射S~核子可乐 -item.bottle_sparkle.name=S~核子可乐 -item.boy_bullet.name=铀-235弹头 +item.bottle_rad.name=辐射S~闪闪可乐 +item.bottle_sparkle.name=S~闪闪可乐 +item.boy_bullet.name=铀235弹头 item.boy_igniter.name=点火器 item.boy_kit.name=小男孩 套件 item.boy_propellant.name=炸药 item.boy_shielding.name=中子屏蔽罩 -item.boy_target.name=次临界铀-235标靶 +item.boy_target.name=次临界铀235标靶 item.briquette.coal.name=煤球 -item.briquette.lignite.name=褐煤煤球 -item.briquette.wood.name=木屑球 +item.briquette_lignite.name=褐煤球 +item.briquette.wood.name=锯屑坯块 item.bucket_acid.name=一桶酸 item.bucket_mud.name=一桶毒泥 -item.bucket_schrabidic_acid.name=一桶Sa酸 +item.bucket_schrabidic_acid.name=一桶Sa326元素酸液 item.bucket_sulfuric_acid.name=一桶硫酸 item.bucket_toxic.name=一桶绿色软泥 item.burnt_bark.name=烧焦树皮 -item.burnt_bark.desc=爆炸的金橡树的树皮。 +item.burnt_bark.desc=从一棵爆炸的金橡树上剥下的树皮. item.can_bepis.name=白事 item.can_breen.name=布雷恩博士的私人珍藏 item.can_creature.name='生物'能量饮料 @@ -1775,95 +1862,96 @@ item.can_empty.name=空罐 item.can_key.name=罐头拉环 item.can_luna.name=黑梅萨露娜-黑可乐 item.can_mrsugar.name='糖博士'软饮料 -item.can_mug.name=MUG牌树根啤酒 -item.can_overcharge.name=超频DeliriumXT +item.can_mug.name=杯根啤酒 +item.can_overcharge.name=超频'精神错乱' XT item.can_redbomb.name='红色炸弹'能量饮料 item.can_smart.name="智慧"能量饮料 -item.canister_NITAN.name=桶装NITAN 100号超级燃料 -item.canister_biofuel.name=桶装生物燃料 -item.canister_bitumen.name=桶装沥青 -item.canister_canola.name=桶装润滑油 -item.canister_empty.name=空油桶 -item.canister_ethanol.name=桶装乙醇 -item.canister_fracksol.name=桶装压裂液 -item.canister_fuel.name=桶装柴油 -item.canister_fuel.desc=大家欢呼吧! -item.canister_full.name=容器: -item.canister_gasoline.name=桶装含铅汽油 -item.canister_gasoline.desc=铅就是朋友$让朋友进入你的血液$*上膛声*现在就做 -item.canister_heatingoil.name=桶装燃油 -item.canister_heavyoil.name=桶装重油 -item.canister_kerosene.name=桶装煤油 -item.canister_lightoil.name=桶装轻油 -item.canister_napalm.name=桶装凝固汽油B -item.canister_naphtha.name=桶装石脑油 -item.canister_oil.name=桶装原油 -item.canister_petroil.name=桶装汽油 -item.canister_reoil.name=桶装再生油 -item.canister_smear.name=桶装工业油 +item.canister_NITAN.name=NITAN© 100号超级燃料桶(旧版遗物) +item.canister_biofuel.name=生物燃料桶(旧版遗物) +item.canister_bitumen.name=沥青桶(旧版遗物) +item.canister_canola.name=润滑油桶(旧版遗物) +item.canister_empty.name=空油桶(旧版遗物) +item.canister_ethanol.name=乙醇桶(旧版遗物) +item.canister_fracksol.name=压裂液桶(旧版遗物) +item.canister_fuel.name=柴油桶(旧版遗物) +item.canister_fuel.desc=大家欢呼吧! +item.canister_full.name=桶: +item.canister_gasoline.name=精制汽油桶(旧版遗物) +item.canister_gasoline.desc=铅是你的好朋友$你应该让好朋友进入你的血液$*举枪* 现在立刻马上去做. +item.canister_heatingoil.name=燃油桶(旧版遗物) +item.canister_heavyoil.name=重油桶(旧版遗物) +item.canister_kerosene.name=煤油桶(旧版遗物) +item.canister_lightoil.name=轻油桶(旧版遗物) +item.canister_napalm.name=凝固汽油桶(旧版遗物) +item.canister_naphtha.name=粗气油桶(旧版遗物) +item.canister_oil.name=原油桶(旧版遗物) +item.canister_petroil.name=混机油汽油桶(旧版遗物) +item.canister_reoil.name=再生工业油桶(旧版遗物) +item.canister_smear.name=工业油桶(旧版遗物) item.canned_asbestos.name=石棉罐头 -item.canned_asbestos.desc=尝尝石棉肺! +item.canned_asbestos.desc=尝尝石棉肺! item.canned_ass.name=驴罐头 -item.canned_ass.desc=100%优质驴肉!* +item.canned_ass.desc=100%% 优质驴肉!* item.canned_bark.name=松树皮罐头 item.canned_bark.desc=更加的“松”脆! item.canned_beef.name=牛肉罐头 -item.canned_beef.desc=几个世纪前,一头牛为此而死。 +item.canned_beef.desc=几个世纪前,一头牛为此而死. item.canned_bhole.name=黑洞罐头 -item.canned_bhole.desc=奇点是我肚肚里的美味! +item.canned_bhole.desc=奇点是我肚子里的美味! item.canned_cheese.name=融化奶酪罐头 -item.canned_cheese.desc=是奶酪吗?是橡胶水泥吗?谁知道,谁在乎。 +item.canned_cheese.desc=是奶酪?还是橡胶水泥?谁知道,又有谁在乎. item.canned_chinese.name=中餐罐头 -item.canned_chinese.desc=在中国,中餐被称为饭。 +item.canned_chinese.desc=在中国,中餐就被叫做食物. item.canned_diesel.name=柴油罐头 -item.canned_diesel.desc=我渐渐地就抖不出包袱了 +item.canned_diesel.desc=我渐渐地就抖不出包袱了. item.canned_fist.name=拳头罐头 item.canned_fist.desc=给你一拳! item.canned_fried.name=炸鸡罐头 -item.canned_fried.desc=甚至罐头都是油炸的! +item.canned_fried.desc=连罐头都是油炸的! item.canned_hotdogs.name=热狗罐头 -item.canned_hotdogs.desc=不要与冷猫混淆。 -item.canned_jizz.name=FlimFlam工业牌?马奶罐头 +item.canned_hotdogs.desc=不要和冷猫混淆. +item.canned_jizz.name=FlimFlam工业™ 马奶罐头 item.canned_jizz.desc=等等什么—— item.canned_kerosene.name=煤油罐头 -item.canned_kerosene.desc=想象一下这句俏皮的台词。 +item.canned_kerosene.desc=想象一下这里有句好笑的俏皮话. item.canned_leftovers.name=剩菜罐头 item.canned_leftovers.desc=你来的太迟了 item.canned_milk.name=罐装炼乳 -item.canned_milk.desc=牛奶2:比以往任何时候都更固体! +item.canned_milk.desc=炼奶2:比以前更像固体了! item.canned_mystery.name=神秘肉类罐头 -item.canned_mystery.desc=里面是什么?只有一种方法可以找到! +item.canned_mystery.desc=里面是什么?只有一种方法可以找到答案! item.canned_napalm.name=凝固汽油罐头 item.canned_napalm.desc=我喜欢早上闻着老梗的味道! item.canned_oil.name=机油罐头 item.canned_oil.desc=它既然能让发动机运转的更流畅,那为什么不能用在人类身上? -item.canned_pashtet.name=牛排罐头 -item.canned_pashtet.desc=翻译服务不可用блядь! +item.canned_pashtet.name=牛排 +item.canned_pashtet.desc=翻译不可用блядь! item.canned_pizza.name=意大利香肠比萨罐头 -item.canned_pizza.desc=反人类罪 +item.canned_pizza.desc=危害人类罪. item.canned_recursion.name=循环罐头 -item.canned_recursion.desc=封闭递归 -item.canned_spam.name=SPAM斯帕姆午餐肉 -item.canned_spam.desc=这段三分半钟的幽默剧是以布朗利虚构的绿侏儒咖啡馆为背景。一位女服务生与不喜欢吃午餐肉的本太太之间发生了争执,女服务生背诵了一份几乎每道菜都含有午餐肉的菜单。本太太要了一道没有午餐肉的菜,这让她爱吃午餐肉的丈夫大吃一惊。女服务员也对这个要求很反感。本先生提出要替换她的午餐肉,并要了一道含有大量午餐肉和烤豆的菜。服务员拒绝了,因为烤豆子已经吃完了;当本先生要求替换午餐肉时,女服务员再次表示厌恶。有几次,餐厅里的一群维京人高声歌唱午餐肉,打断了谈话。那个愤怒的女服务员命令他们闭嘴,但他们依旧大声唱歌。这时一名匈牙利游客来到柜台,试图用一本完全不准确的匈牙利语/英语手册(参考之前的小品)点菜。紧接着这名匈牙利游客就被一名警察迅速护送离开。然后这段幽默剧突然切换镜头,一位历史学家在电视演播室谈论维京人在咖啡馆的起源。他继续说,并开始越来越多地在每一句话中插入“午餐肉”一词。然后背景被抬高,露出背后的餐厅场景。那个历史学家加入了维京人的歌曲,本夫妇通过电线离开现场,而歌声还在继续。在最初的电视表演中,结尾的字幕开始滚动,背景中仍然可以听到歌声。 +item.canned_recursion.desc=循环罐头 +item.canned_spam.name=午餐肉罐头 +item.canned_spam.desc=段三分半钟的幽默剧是以布朗利虚构的绿侏儒咖啡馆为背景$一位女服务生与不喜欢吃午餐肉的本太太之间发生了争执,$女服务生背诵了一份几乎每道菜都含有午餐肉的菜单。$本太太要了一道没有午餐肉的菜,这让她爱吃午餐肉的丈夫大吃一惊。$女服务员也对这个要求很反感。$本先生提出要替换她的午餐肉,并要了一道含有大量午餐肉和烤豆的菜。$服务员拒绝了,因为烤豆子已经吃完了;$当本先生要求替换午餐肉时,女服务员再次表示厌恶。$有几次,餐厅里的一群维京人高声歌唱午餐肉,打断了谈话。$那个愤怒的女服务员命令他们闭嘴,但他们依旧大声唱歌。$这时一名匈牙利游客来到柜台,$试图用一本完全不准确的匈牙利语/英语手册(参考之前的小品)点菜。$紧接着这名匈牙利游客就被一名警察迅速护送离开。$然后这段幽默剧突然切换镜头,$一位历史学家在电视演播室谈论维京人在咖啡馆的起源。$他继续说,并开始越来越多地在每一句话中插入“午餐肉”一词。$然后背景被抬高,露出背后的餐厅场景。$那个历史学家加入了维京人的歌曲,本夫妇通过电线离开现场,而歌声还在继续。$在最初的电视表演中,结尾的字幕开始滚动,背景中仍然可以听到歌声。 item.canned_stew.name=蘑菇煲罐头 item.canned_stew.desc=... item.canned_tomato.name=番茄汤罐头 item.canned_tomato.desc=谁要浓浓的红糊糊? item.canned_tube.name=宇航员食品管 -item.canned_tube.desc=美味的蘑菇。 +item.canned_tube.desc=美味的糊状物. item.canned_tuna.name=金枪鱼罐头 -item.canned_tuna.desc=我不知道那是金枪鱼还是干水泥。 +item.canned_tuna.desc=美味的糊状物. item.canned_yogurt.name=酸奶罐头 -item.canned_yogurt.desc=可能坏掉了,但管它呢 +item.canned_yogurt.desc=可能坏掉了,但管它呢. item.canteen_13.name=Vault13水壶 item.canteen_fab.name=极品伏特加 item.canteen_vodka.name=伏特加 -item.cap_fritz.name=弗里茨瓶盖 +item.cap_aluminium.name=铝盖 +item.cap_fritz.name=Fritz弗里茨可乐瓶盖 item.cap_korl.name=Korl瓶盖 item.cap_nuka.name=核子可乐瓶盖 -item.cap_quantum.name=樱桃味核子可乐瓶盖 -item.cap_rad.name=辐射S~核子可乐瓶盖 -item.cap_sparkle.name=S~核子可乐瓶盖 +item.cap_quantum.name=樱桃味量子核子可乐瓶盖 +item.cap_rad.name=辐射S~闪闪可乐瓶盖 +item.cap_sparkle.name=S~闪闪可乐瓶盖 item.cap_star.name=夕阳沙士星星瓶盖 item.cap_sunset.name=夕阳沙士瓶盖 item.cape_ayy.name=Ayy披风 @@ -1871,13 +1959,12 @@ item.cape_codered_.name=codered_披风 item.cape_dafnik.name=Dafnik披风 item.cape_gasmask.name=披风[防毒面具] item.cape_hbm.name=Hbm披风 -item.cape_hidden.name=隐藏斗篷 item.cape_lpkukin.name=LPkukin披风 item.cape_nostalgia.name=DrNostalgia披风 item.cape_radiation.name=披风[辐射] -item.cape_schrabidium.name=披风[Sa326] +item.cape_schrabidium.name=披风[Sa326施布拉比迪] item.cape_vertice.name=Lord Vertice披风 -item.cart.crate.name=板条箱运输车 +item.cart.crate.name=板条箱车 item.cart.destroyer.name=废品销毁车 item.cart.empty.name=钢箱矿车 item.casing_357.name=.357马格南弹壳[x16] @@ -1886,8 +1973,9 @@ item.casing_50.name=大口径弹壳[x8] item.casing_9.name=小口径弹壳[x24] item.casing_buckshot.name=鹿弹弹壳[x8] item.catalyst_clay.name=黏土催化剂 +item.catalytic_converter.name=催化转化器 item.cbt_device.name=CBT装置 -item.cell_anti_schrabidium.name=反Sa326单元 +item.cell_anti_schrabidium.name=反Sa326异变铀金属单元 item.cell_antimatter.name=反物质单元 item.cell_balefire.name=气态野火单元 item.cell_deuterium.name=氘单元 @@ -1901,31 +1989,31 @@ item.centrifuge_element.name=离心元件 item.centrifuge_tower.name=离心塔 item.chainsaw.name=链锯 item.cheese.name=奶酪 -item.cheese_quesadilla.name=奶酪油炸玉米粉饼 -item.chemical_dye.black.name=化学染料(黑色) -item.chemical_dye.blue.name=化学染料(蓝色) -item.chemical_dye.brown.name=化学染料(棕色) -item.chemical_dye.cyan.name=化学染料(青色) -item.chemical_dye.gray.name=化学染料(灰色) -item.chemical_dye.green.name=化学染料(绿色) -item.chemical_dye.lightblue.name=化学染料(浅蓝色) -item.chemical_dye.lime.name=化学染料(石灰) -item.chemical_dye.magenta.name=化学染料(洋红色) -item.chemical_dye.orange.name=化学染料(橙色) -item.chemical_dye.pink.name=化学染料(粉色) -item.chemical_dye.purple.name=化学染料(紫色) -item.chemical_dye.red.name=化学染料(红色) -item.chemical_dye.silver.name=化学染料(浅灰色) -item.chemical_dye.white.name=化学染料(白色) -item.chemical_dye.yellow.name=化学染料(黄色) -item.chemistry_set.name=实验室玻璃器皿 -item.chemistry_set_boron.name=实验室玻璃器皿(硼玻璃) +item.cheese_quesadilla.name=墨西哥奶酪饼 +item.chemical_dye.black.name=化学染料 (黑色) +item.chemical_dye.blue.name=化学染料 (蓝色) +item.chemical_dye.brown.name=化学染料 (棕色) +item.chemical_dye.cyan.name=化学染料 (青色) +item.chemical_dye.gray.name=化学染料 (灰色) +item.chemical_dye.green.name=化学染料 (绿色) +item.chemical_dye.lightblue.name=化学染料 (浅蓝色) +item.chemical_dye.lime.name=化学染料 (石灰色) +item.chemical_dye.magenta.name=化学染料 (洋红色) +item.chemical_dye.orange.name=化学染料 (橙色) +item.chemical_dye.pink.name=化学染料 (粉色) +item.chemical_dye.purple.name=化学染料 (紫色) +item.chemical_dye.red.name=化学染料 (红色) +item.chemical_dye.silver.name=化学染料 (浅灰色) +item.chemical_dye.white.name=化学染料 (白色) +item.chemical_dye.yellow.name=化学染料 (黄色) +item.chemistry_set.name=化学玻璃仪器 +item.chemistry_set_boron.name=化学玻璃仪器(硼玻璃) item.chemistry_template.name=化工厂模板: item.chernobylsign.name=辐射警告标志战斧 item.chlorine_pinwheel.name=氯气转轮 item.chlorophyte_pickaxe.name=叶绿镐 -item.chocolate.name=“我是-镭牌”巧克力 -item.chocolate.desc=镭巧克力?我很确定这是冰毒。 +item.chocolate.name=伊蒂斯牌镭巧克力 +item.chocolate.desc=镭巧克力?很确定这只是冰毒. item.chocolate_milk.name=巧克力牛奶 item.chopper.name=猎人直升机 item.chopper_blades.name=猎人直升机旋翼 @@ -1946,47 +2034,47 @@ item.circuit_gold.name=超频电路 item.circuit_raw.name=基本电路组件 item.circuit_red_copper.name=高级电路 item.circuit_schrabidium.name=高性能电路 -item.circuit_star.name=星控制 电路板 -item.circuit_star.desc=目前无效,因为它缺少操作系统。 -item.circuit_star_component.chipset.name=星控制 芯片组 -item.circuit_star_component.cpu.name=星控制 CPU -item.circuit_star_component.ram.name=星控制 RAM -item.circuit_star_piece.board_blank.name=SC-印刷电路板 -item.circuit_star_piece.board_transistor.name=SC-晶体管 -item.circuit_star_piece.bridge_bios.name=SC-BIOS芯片 -item.circuit_star_piece.bridge_bus.name=SC-总线 -item.circuit_star_piece.bridge_chipset.name=SC-芯片组 -item.circuit_star_piece.bridge_cmos.name=SC-CMOS存储器 -item.circuit_star_piece.bridge_io.name=SC-IO芯片 -item.circuit_star_piece.bridge_north.name=SC-北桥 -item.circuit_star_piece.bridge_south.name=SC-南桥 -item.circuit_star_piece.cpu_cache.name=SC-CPU缓存 -item.circuit_star_piece.cpu_clock.name=SC-CPU时钟 -item.circuit_star_piece.cpu_ext.name=SC-砷半导体外延片 -item.circuit_star_piece.cpu_logic.name=SC-算术逻辑单元 -item.circuit_star_piece.cpu_register.name=SC-CPU寄存器 -item.circuit_star_piece.cpu_socket.name=SC-CPU插槽 -item.circuit_star_piece.mem_socket.name=SC-存储插座 -item.circuit_star_piece.mem_16k_a.name=SC-16k内存条插槽 A -item.circuit_star_piece.mem_16k_b.name=SC-16k内存条插槽 B -item.circuit_star_piece.mem_16k_c.name=SC-16k内存条插槽 C -item.circuit_star_piece.mem_16k_d.name=SC-16k内存条插槽 D -item.circuit_tantalium.name=电容板 -item.circuit_tantalium_raw.name=电容板组件 +item.circuit_star.name=星控 控制电路板 +item.circuit_star.desc=当前无法使用, 因为它缺少一个操作系统. +item.circuit_star_component.chipset.name=星控 - 总芯片组 +item.circuit_star_component.cpu.name=星控 - 中央处理器 +item.circuit_star_component.ram.name=星控 - 内存 +item.circuit_star_piece.board_blank.name=星控 - 印刷电路板 +item.circuit_star_piece.board_transistor.name=星控 - 晶体管 +item.circuit_star_piece.bridge_bios.name=星控- BIOS基本输入输出系统芯片 +item.circuit_star_piece.bridge_bus.name=星控 - BUS总线 +item.circuit_star_piece.bridge_chipset.name=星控 - 芯片组 +item.circuit_star_piece.bridge_cmos.name=星控 - CMOS RAM随机存取存储器 +item.circuit_star_piece.bridge_io.name=星控 - IO芯片 +item.circuit_star_piece.bridge_north.name=星控 - 北桥芯片集 +item.circuit_star_piece.bridge_south.name=星控 - 南桥芯片集 +item.circuit_star_piece.cpu_cache.name=星控 - 中央处理器缓存 +item.circuit_star_piece.cpu_clock.name=星控 - CPU时钟 +item.circuit_star_piece.cpu_ext.name=星控 - 延伸砷半导体 +item.circuit_star_piece.cpu_logic.name=星控 - 算术逻辑单元 +item.circuit_star_piece.cpu_register.name=星控 - CPU寄存器 +item.circuit_star_piece.cpu_socket.name=星控 - CPU插座 +item.circuit_star_piece.mem_socket.name=星控 - 内存插座 +item.circuit_star_piece.mem_16k_a.name=星控 - 16k内存条插槽A +item.circuit_star_piece.mem_16k_b.name=星控 - 16k内存条插槽B +item.circuit_star_piece.mem_16k_c.name=星控 - 16k内存条插槽C +item.circuit_star_piece.mem_16k_d.name=星控 - 16k内存条插槽D +item.circuit_tantalium.name=电容器板 +item.circuit_tantalium_raw.name=电容器板组件 item.circuit_targeting_tier1.name=军用级电路板[1级] item.circuit_targeting_tier2.name=军用级电路板[2级] item.circuit_targeting_tier3.name=军用级电路板[3级] item.circuit_targeting_tier4.name=军用级电路板[4级] item.circuit_targeting_tier5.name=军用级电路板[5级] item.circuit_targeting_tier6.name=军用级电路板[6级] -item.cladding_desh.name=Desh覆层 +item.cladding_desh.name=德什覆层 item.cladding_ghiorsium.name=石墨覆层 item.cladding_iron.name=铁覆层 item.cladding_lead.name=铅覆层 item.cladding_obsidian.name=黑曜石覆层 item.cladding_paint.name=铅涂料 item.cladding_rubber.name=橡胶覆层 -item.clip_bf.name=两包野火子弹 +item.clip_bf.name=两包BF-子弹 item.clip_bolt_action.name=盒装12x74独头弹 item.clip_cryolator.name=急冻单元箱 item.clip_defabricator.name=毁灭者能量电池弹药带 @@ -1997,7 +2085,7 @@ item.clip_hp.name=墨水缸 item.clip_immolator.name=焚烧者燃料箱 item.clip_jack.name=盒装四联12x70鹿弹 item.clip_lever_action.name=盒装12x74鹿弹 -item.clip_mirv.name=三合一微型MIRV包 +item.clip_mirv.name=三合一微型分导式多弹头核弹包 item.clip_mp.name=小型无发射药机枪子弹盒 item.clip_mp40.name=9mm冲锋枪子弹盒 item.clip_osipr.name=AR2 弹盒 @@ -2010,7 +2098,7 @@ item.clip_revolver_nightmare.name=子弹袋 item.clip_revolver_nightmare2.name=激光弹药带 item.clip_revolver_nopip.name=盒装.44子弹 item.clip_revolver_pip.name=左轮快速装弹器 -item.clip_revolver_schrabidium.name=Sa326弹药盒 +item.clip_revolver_schrabidium.name=Sa326异变铀金属弹药盒 item.clip_rpg.name=火箭弹箱 item.clip_spark.name=大型电磁子弹 item.clip_stinger.name=包装毒刺导弹 @@ -2029,11 +2117,11 @@ item.cmb_sword.name=CMB钢剑 item.coal_infernal.name=地狱煤炭 item.cobalt_axe.name=钴斧 item.cobalt_boots.name=钴靴子 -item.cobalt_decorated_axe.name=镶嵌钴斧 -item.cobalt_decorated_hoe.name=镶嵌钴锄 -item.cobalt_decorated_pickaxe.name=镶嵌钴镐 -item.cobalt_decorated_shovel.name=镶嵌钴锹 -item.cobalt_decorated_sword.name=镶嵌钴剑 +item.cobalt_decorated_axe.name=镶钴斧 +item.cobalt_decorated_hoe.name=镶钴锄 +item.cobalt_decorated_pickaxe.name=镶钴镐 +item.cobalt_decorated_shovel.name=镶钴铲 +item.cobalt_decorated_sword.name=镶钴剑 item.cobalt_helmet.name=钴头盔 item.cobalt_hoe.name=钴锄 item.cobalt_legs.name=钴护腿 @@ -2054,43 +2142,45 @@ item.coil_tungsten.name=加热线圈 item.coin_creeper.name=核爆爬行者硬币 item.coin_maskman.name=面具硬币 item.coin_radiation.name=辐射硬币 -item.coin_siege.name=围城硬币 +item.coin_siege.name=围攻硬币 item.coin_ufo.name=UFO硬币 -item.coin_worm.name=机械蠕虫硬币 -item.coke.coal.name=煤焦炭 -item.coke.lignite.name=褐煤焦炭 -item.coke.petroleum.name=石油焦炭 -item.coltan_tool.name=钶钽铁矿指针 +item.coin_worm.name=世-界-毁-灭-者 O-TRON 硬币 +item.coke.coal.name=焦煤 +item.coke.lignite.name=褐焦煤 +item.coke.petroleum.name=石油焦 +item.coltan_tool.name=钶钽铁矿探测罗盘 item.combine_scrap.name=CMB钢废料 item.component_emitter.name=发射器组件 item.component_limiter.name=稳定器组件 +item.containment_box.name=安全箱 item.cordite.name=无烟线状火药 item.cotton_candy.name=放射性棉花糖 +item.crackpipe.name=生命之管 item.crate_caller.name=空投召唤器 -item.crayon.black.name=黑色蜡笔 -item.crayon.blue.name=蓝色蜡笔 -item.crayon.brown.name=棕色蜡笔 -item.crayon.cyan.name=青色蜡笔 -item.crayon.gray.name=灰色蜡笔 -item.crayon.green.name=绿色蜡笔 -item.crayon.lightblue.name=浅蓝色蜡笔 -item.crayon.lime.name=青色蜡笔 -item.crayon.magenta.name=洋红蜡笔 -item.crayon.orange.name=橙色蜡笔 -item.crayon.pink.name=粉红蜡笔 -item.crayon.purple.name=紫色蜡笔 -item.crayon.red.name=红色蜡笔 -item.crayon.silver.name=浅灰色蜡笔 -item.crayon.white.name=白色蜡笔 -item.crayon.yellow.name=黄色蜡笔 +item.crayon.black.name=黑色 蜡笔 +item.crayon.blue.name=蓝色 蜡笔 +item.crayon.brown.name=棕色 蜡笔 +item.crayon.cyan.name=青色 蜡笔 +item.crayon.gray.name=灰色 蜡笔 +item.crayon.green.name=绿色 蜡笔 +item.crayon.lightblue.name=浅蓝色 蜡笔 +item.crayon.lime.name=石灰色 蜡笔 +item.crayon.magenta.name=洋红色 蜡笔 +item.crayon.orange.name=橙色 蜡笔 +item.crayon.pink.name=粉色 蜡笔 +item.crayon.purple.name=紫色 蜡笔 +item.crayon.red.name=红色 蜡笔 +item.crayon.silver.name=浅灰色 蜡笔 +item.crayon.white.name=白色 蜡笔 +item.crayon.yellow.name=黄色 蜡笔 item.crowbar.name=Mk.V开箱装置"物理学圣剑" item.crucible.name=裁决剑 -item.crucible_template.name=坩埚模板 +item.crucible_template.name=坩埚配方: item.crystal_aluminium.name=铝晶体 item.crystal_beryllium.name=铍晶体 item.crystal_charred.name=烧焦的水晶 -item.crystal_charred.desc=优质硅酸盐,轻微灼烧。 -item.crystal_charred.desc.P11=也是一个真正的号角。奇怪吧? +item.crystal_charred.desc=优质硅酸盐,经过了轻度灼烧. +item.crystal_charred.desc.P11=也是一个真正的角.真奇怪,对吧? item.crystal_coal.name=煤晶体 item.crystal_cobalt.name=钴晶体 item.crystal_copper.name=铜晶体 @@ -2100,11 +2190,11 @@ item.crystal_energy.name=能量晶体 item.crystal_fluorite.name=氟晶体 item.crystal_gold.name=金晶体 item.crystal_horn.name=水晶角 -item.crystal_horn.desc=不是真正的号角。 -item.crystal_horn.desc.P11=真正的号角。 +item.crystal_horn.desc=不是真正意义上的角. +item.crystal_horn.desc.P11=真正的角. item.crystal_iron.name=铁晶体 -item.crystal_lead.name=铅晶体 item.crystal_lapis.name=青金石晶体 +item.crystal_lead.name=铅晶体 item.crystal_lithium.name=锂晶体 item.crystal_niter.name=硝石晶体 item.crystal_osmiridium.name=铱锇晶体 @@ -2112,9 +2202,9 @@ item.crystal_phosphorus.name=磷晶体 item.crystal_plutonium.name=钚晶体 item.crystal_rare.name=稀土晶体 item.crystal_redstone.name=红石晶体 -item.crystal_schrabidium.name=低丰度Sa326晶体 -item.crystal_schraranium.name=Sa326晶体 -item.crystal_starmetal.name=星辉晶体 +item.crystal_schrabidium.name=Sa326异变铀金属晶体 +item.crystal_schraranium.name=低丰度Sa326异变铀金属晶体 +item.crystal_starmetal.name=星辉金属晶体 item.crystal_sulfur.name=硫晶体 item.crystal_thorium.name=钍晶体 item.crystal_titanium.name=钛晶体 @@ -2123,36 +2213,36 @@ item.crystal_tungsten.name=钨晶体 item.crystal_uranium.name=铀晶体 item.crystal_xen.name=人造X晶体 item.crt_display.name=阴极射线管 -item.cube_power.name=电子块 +item.cube_power.name=超立方体 item.custom_amat.name=自定义核弹-反物质棒 item.custom_dirty.name=自定义核弹-核废料棒 item.custom_fall.name=自定义核弹-掉落升级 -item.custom_fall.desc=这就是你一一一直在等待的$使炸弹在激活时下落 +item.custom_fall.desc=这就是你们一一一一一直在等着想要的!$使自定义核弹被激活后可坠落 item.custom_hydro.name=自定义核弹-氢棒 item.custom_kit.name=自定义核弹 套件 item.custom_nuke.name=自定义核弹-铀棒 -item.custom_schrab.name=自定义核弹-Sa326棒 -item.custom_tnt.name=自定义核弹-炸药 +item.custom_schrab.name=自定义核弹-Sa326异变铀金属棒 +item.custom_tnt.name=自定义核弹-炸药棒 item.cyclotron_tower.name=回旋加速器塔 -item.debris_concrete.name=碎混凝土 -item.debris_element.name=断裂的锆诺克斯燃料元件 -item.debris_exchanger.name=换热器片 +item.debris_concrete.name=碎混凝土块 +item.debris_element.name=断裂的锆诺克斯反应堆燃料棒元件 +item.debris_exchanger.name=热交换器片 item.debris_fuel.name=RBMK石墨式反应堆燃料块 item.debris_graphite.name=热石墨块 item.debris_metal.name=断裂金属棒 -item.debris_shrapnel.name=走道碎片 +item.debris_shrapnel.name=崩飞的碎片 item.definitelyfood.name=完全不脏牌军粮 item.defuser.name=高科技拆弹装置 -item.defuser_gold.name=黄金剪线钳 -item.demon_core_closed.name=封闭的恶魔核心 -item.demon_core_open.name=打开的恶魔核心 +item.defuser_gold.name=金制拆弹装置 +item.demon_core_closed.name=关闭的恶魔核心 +item.demon_core_open.name=悬浮恶魔核心 item.desh_axe.name=工人合金斧 item.desh_hoe.name=工人合金锄 item.desh_pickaxe.name=工人合金镐 item.desh_shovel.name=工人合金锹 item.desh_sword.name=工人合金剑 item.designator.name=短程目标指示器 -item.designator_arty_range.name=远程火炮遥控器 +item.designator_arty_range.name=远程重炮目标指示器 item.designator_manual.name=手动目标指示器 item.designator_range.name=远程目标指示器 item.detonator.name=起爆器 @@ -2162,76 +2252,76 @@ item.detonator_laser.name=激光起爆器 item.detonator_multi.name=多发起爆器 item.deuterium_filter.name=氘过滤器 item.diamond_gavel.name=钻石槌 -item.dieselsuit_boots.name=柴油动力高跟鞋 +item.dieselsuit_boots.name=柴油动力装甲靴 item.dieselsuit_helmet.name=柴油动力头戴式环境传感器 item.dieselsuit_legs.name=柴油动力腿部伺服系统 -item.dieselsuit_plate.name=柴油动力控制器 -item.digamma_diagnostic.name=玩家F-迪伽马辐射自检器 +item.dieselsuit_plate.name=柴油动力协调控制胸甲 +item.digamma_diagnostic.name=玩家Ϝ迪伽马辐射自检器 item.dns_boots.name=DNT双聚中子态素高科技全环境作战服靴子 item.dns_legs.name=DNT双聚中子态素高科技全环境作战服护腿 item.dns_helmet.name=DNT双聚中子态素高科技全环境作战服头盔 item.dns_plate.name=DNT双聚中子态素高科技全环境作战服胸甲 -item.dnt_boots.name=双聚态中子素 靴子 -item.dnt_legs.name=双聚态中子素 护腿 -item.dnt_helmet.name=双聚态中子素 头盔 -item.dnt_plate.name=双聚态中子素 胸甲 +item.dnt_boots.name=聚双中子态素靴子 +item.dnt_legs.name=中子双聚态素护腿 +item.dnt_helmet.name=聚双中子态素头盔 +item.dnt_plate.name=双子聚中态素胸甲 item.door_bunker.name=仓门 item.door_metal.name=金属门 item.door_office.name=办公室门 -item.dosimeter.name=剂量计 -item.drillbit_desh.name=Desh钻头 -item.drillbit_desh_diamond.name=Desh钻头(镶钻) -item.drillbit_ferro.name=铀铁合金钻头 -item.drillbit_ferro_diamond.name=铁铀钻头(镶钻) -item.drillbit_hss.name=高速钢钻头 -item.drillbit_hss_diamond.name=高速钢钻头(镶钻) -item.drillbit_steel.name=钢钻头 -item.drillbit_steel_diamond.name=钢钻头(镶钻) -item.drillbit_tcalloy.name=锝钢钻头 -item.drillbit_tcalloy_diamond.name=锝钢钻头(镶钻) +item.dosimeter.name=放射量测定器 +item.drillbit_desh.name=德什制钻头 +item.drillbit_desh_diamond.name=德什制钻头 (镶钻) +item.drillbit_ferro.name=铀铁合金制钻头 +item.drillbit_ferro_diamond.name=铀铁合金制钻头 (镶钻) +item.drillbit_hss.name=高速钢制钻头 +item.drillbit_hss_diamond.name=高速钢制钻头 (镶钻) +item.drillbit_steel.name=钢制钻头 +item.drillbit_steel_diamond.name=钢制钻头 (镶钻) +item.drillbit_tcalloy.name=锝钢合金制钻头 +item.drillbit_tcalloy_diamond.name=锝钢合金制钻头 (镶钻) item.drill_titanium.name=钛钻头 item.drax.name=采掘钻 item.drax_mk2.name=强化型采掘钻 -item.drax_mk3.name=Sa326采掘钻 +item.drax_mk3.name=Sa326异变铀金属采掘钻 item.ducttape.name=胶带 item.dust.name=灰尘 -item.dust.desc=我讨厌灰尘! -item.dust.desc.P11=又一小撮灰尘! +item.dust.desc=我讨厌灰尘! +item.dust.desc.P11=又一个家伙化作了尘埃! item.dust_tiny.name=一小撮灰尘 item.dynosphere_base.name=空白动力球 -item.dynosphere_desh.name=Desh动力球 -item.dynosphere_desh_charged.name=Desh动力球[带电] +item.dynosphere_desh.name=德什动力球 +item.dynosphere_desh_charged.name=德什动力球[带电] item.dynosphere_dineutronium.name=双聚中子态素动力球 item.dynosphere_dineutronium_charged.name=双聚中子态素动力球[带电] -item.dynosphere_euphemium.name=Ep动力球 -item.dynosphere_euphemium_charged.name=Ep动力球[带电] -item.dynosphere_schrabidium.name=Sa326动力球 -item.dynosphere_schrabidium_charged.name=Sa326动力球[带电] +item.dynosphere_euphemium.name=Ep元素动力球 +item.dynosphere_euphemium_charged.name=Ep元素动力球[带电] +item.dynosphere_schrabidium.name=Sa326异变铀金属动力球 +item.dynosphere_schrabidium_charged.name=Sa326异变铀金属动力球[带电] item.dysfunctional_reactor.name=失控反应堆 -item.early_explosive_lenses.name=初代炸药透镜阵列 -item.early_explosive_lenses.desc=8个炸药透镜的组装,带有铝合金推进器、硬铝外壳和桥丝雷管。 -item.egg_balefire.name=野火蛋 -item.egg_balefire.desc=什么样的鸟儿才会下带有放射性的蛋? -item.egg_balefire_shard.name=野火蛋碎片 +item.early_explosive_lenses.name=初代高能内爆炸药阵列 +item.early_explosive_lenses.desc=由8个高爆炸药装配而成,带有铝推进器、$硬铝外壳和桥丝式雷管. +item.egg_balefire.name=BF蛋 +item.egg_balefire.desc=啥样的鸟能生出这样一颗高放射性的蛋? +item.egg_balefire_shard.name=BF蛋碎片 item.elec_axe.name=电锯 item.elec_pickaxe.name=冲击钻 item.elec_shovel.name=螺旋钻 item.elec_sword.name=电棍 item.energy_core.name=临时能源核心 item.entanglement_kit.name=纠缠部件 -item.entanglement_kit.desc=传送机制作零件$通过$铍增强型资源扫描仪实现尺寸转换。 -item.euphemium_boots.name=Ep靴子 -item.euphemium_helmet.name=Ep头盔 -item.euphemium_kit.name=Ep工具箱 -item.euphemium_legs.name=Ep护腿 -item.euphemium_plate.name=Ep胸甲 -item.euphemium_stopper.name=Ep-阻滞者 -item.explosive_lenses.name=炸药透镜阵列 -item.explosive_lenses.desc=8个PBX炸药组装的阵列,带有一个薄的$铝推进器、硬铝外壳和$小型桥丝雷管。 -item.fabsols_vodka.name=Fabsol伏特加 +item.entanglement_kit.desc=制造传送机所需要的关键部件.$通过铍元素增强资源扫描仪$来实现维度转换.. +item.euphemium_boots.name=Ep元素靴子 +item.euphemium_helmet.name=Ep元素头盔 +item.euphemium_kit.name=Ep元素工具箱 +item.euphemium_legs.name=Ep元素护腿 +item.euphemium_plate.name=Ep元素胸甲 +item.euphemium_stopper.name=Ep元素-阻滞者 +item.explosive_lenses.name=高能内爆炸药阵列 +item.explosive_lenses.desc=由8个PBX聚合物粘结炸药装配而成,带有一个薄型铝推进器, $硬铝外壳和小型桥丝式雷管. +item.fabsols_vodka.name=Fabsol的伏特加 item.factory_core_advanced.name=高级工厂能源组件 item.factory_core_titanium.name=工厂能源组件 -item.fallout.name=一堆辐射尘 +item.fallout.name=一大堆辐射尘 item.fau_boots.name=Fau靴子 item.fau_helmet.name=Fau头盔 item.fau_legs.name=Fau护腿 @@ -2242,51 +2332,51 @@ item.fins_flat.name=扁钢外壳 item.fins_quad_titanium.name=小型钛翼 item.fins_small_steel.name=小型钢栅格翼 item.fins_tri_steel.name=大型钢翼 -item.five_htp.name=5-羟色胺药丸 -item.five_htp.desc=移除所有迪伽马辐射,并获得10分钟稳定效果 +item.five_htp.name=5-羟色胺血清素药丸 +item.five_htp.desc=去除所有Ϝ迪伽马辐射, 给予10min的原子稳定性效果 item.flame_conspiracy.name=阴谋论 -item.flame_conspiracy.desc=钢梁不能熔化喷气燃料! +item.flame_conspiracy.desc=钢梁不能熔化喷气燃料! item.flame_opinion.name=个人观点 -item.flame_opinion.desc=呃,我喜欢... +item.flame_opinion.desc=好吧,我喜欢它... item.flame_politics.name=政治话题 -item.flame_politics.desc=唐老鸭将会修建一堵墙! +item.flame_politics.desc=唐纳德·特朗普将建一道新的"长城"! item.flame_pony.name=卡通小马画 -item.flame_pony.desc=黄马胜于蓝马,这是不争的事实! -item.flask_infusion.shield.name=护盾药水 -item.fleija_core.name=F.L.E.I.J.A.铀-235装药 +item.flame_pony.desc=黄色小马胜过了蓝色小马,这是不争的事实! +item.flask_infusion.shield.name=护盾灌注液 +item.fleija_core.name=F.L.E.I.J.A.铀235装药 item.fleija_igniter.name=脉冲点火器 item.fleija_kit.name=F.L.E.I.J.A. 套件 -item.fleija_propellant.name=Sa326炸药 +item.fleija_propellant.name=Sa326异变铀金属炸药 item.fluid_barrel_empty.name=空流体桶 item.fluid_barrel_full.name=流体桶: item.fluid_barrel_infinite.name=无限流体桶 item.fluid_duct.name=流体管道: item.fluid_identifier.name=流体识别码 -item.fluid_identifier.info=流体标识码用于: -item.fluid_identifier.usage0=在流体管道上单击右键,为该管道指定运输的流体。 -item.fluid_identifier.usage1=按住Shift键并流体管道上单击右键以指定相邻管道 -item.fluid_identifier.usage2=最大范围为64格管道。 -item.fluid_identifier_multi.name=多类型流体识别码 -item.fluid_identifier_multi.info=通用流体识别码: -item.fluid_identifier_multi.info2=次要类型: +item.fluid_identifier.info=通用流体标识符, 用于: +item.fluid_identifier.usage0=在流体管道上单击鼠标右键, 为该管道指定流体类型. +item.fluid_identifier.usage1=按住Shift键并在流体管道上单击鼠标右键以指定 +item.fluid_identifier.usage2=相邻最多64个管道的流体类型. +item.fluid_identifier_multi.name=多流体标识符 +item.fluid_identifier_multi.info=一级通用流体标识符: +item.fluid_identifier_multi.info2=二级通用流体标识符: item.fluid_tank_empty.name=空通用流体罐 item.fluid_tank_full.name=通用流体罐: -item.fluid_tank_lead_empty.name=空危险品罐 -item.fluid_tank_lead_full.name=危险品罐: +item.fluid_tank_lead_empty.name=空的危险流体罐 +item.fluid_tank_lead_full.name=危险流体罐: item.fluorite.name=氟石粉 item.flywheel_beryllium.name=铍制飞轮 -item.fmn.name=氟硝西泮片 -item.fmn.desc=移除2000mDRX以上的所有迪伽马辐射 -item.folly_bullet.name=128mm星辉弹头 -item.folly_bullet_du.name=128mm贫铀弹头 -item.folly_bullet_nuclear.name=128mm核弹头 +item.fmn.name=氟硝安定药片 +item.fmn.desc=移除2,000mDRX以上所有的Ϝ迪伽马辐射 +item.folly_bullet.name=12.8cm星辉金属弹头 +item.folly_bullet_du.name=12.8cm贫铀弹头 +item.folly_bullet_nuclear.name=12.8cm核弹头 item.folly_shell.name=银弹壳 item.fooditem.name=食物 -item.fragment_actinium.name=锕碎片 +item.fragment_actinium.name=锕-227碎片 item.fragment_boron.name=硼碎片 item.fragment_cerium.name=铈碎片 item.fragment_cobalt.name=钴碎片 -item.fragment_coltan.name=钶钽铁矿碎片 +item.fragment_coltan.name=钶钽铁矿 item.fragment_lanthanium.name=镧碎片 item.fragment_meteorite.name=陨石碎片 item.fragment_neodymium.name=钕碎片 @@ -2298,42 +2388,44 @@ item.fuse.name=保险丝 item.fusion_core.name=聚变能源核心 item.fusion_core_infinite.name=无限能源核心 item.fusion_shield_chlorophyte.name=叶绿金属聚变反应堆覆层 -item.fusion_shield_desh.name=Desh聚变反应堆覆层 +item.fusion_shield_desh.name=德什聚变反应堆覆层 item.fusion_shield_tungsten.name=钨聚变反应堆覆层 item.fusion_shield_vaporwave.name=蒸汽波反应堆覆层 -item.gadget_core.name=钚核心 + +item.gadget_core.name=大型钚核心 item.gadget_explosive.name=炸药 +item.gadget_explosive8.name=炸药束 item.gadget_kit.name=小玩意 套件 item.gadget_wireing.name=线路 item.gas_biogas.name=沼气罐 item.gas_empty.name=空气罐 item.gas_full.name=天然气罐 -item.gas_lpg.name=液化石油气罐 +item.gas_lpg.name=LPG罐 item.gas_mask.name=防毒面具 item.gas_mask_filter.name=防毒面具过滤器 -item.gas_mask_filter_combo.name=防毒面具组合式过滤器 +item.gas_mask_filter_combo.name=组合型防毒面具过滤器 item.gas_mask_filter_mono.name=催化性面罩过滤器 -item.gas_mask_filter_piss.name=先进的简易防毒面具过滤器 -item.gas_mask_filter_rag.name=临时防毒面具过滤器 +item.gas_mask_filter_piss.name=高级的简易防毒面具过滤器 +item.gas_mask_filter_rag.name=简易防毒面具过滤器 item.gas_mask_m65.name=M65-Z防毒面具 -item.gas_mask_mono.name=半面罩防毒面具 -item.gas_mask_olde.name=皮革防毒面具 +item.gas_mask_mono.name=防护面罩 +item.gas_mask_olde.name=皮革制防毒面具 item.gas_petroleum.name=石油气罐 item.gas_tester.name=气体传感器 -item.gear_large.name=大型齿轮 -item.gear_large_steel.name=大型钢齿轮 +item.gear_large.name=大齿轮 +item.gear_large_steel.name=大型钢制齿轮 item.geiger_counter.name=手持盖革计数器 -item.gem_alexandrite.name=亚历山大变石 -item.gem_tantalium.name=钽晶体 -item.gem_tantalium.desc=“钽” -item.gem_tantalium.desc.P11=又名钽。 -item.gem_volcanic.name=火山宝石 +item.gem_alexandrite.name=紫翠宝石 +item.gem_tantalium.name=多晶体钽 +item.gem_tantalium.desc='钽' +item.gem_tantalium.desc.P11=又名钽. +item.gem_volcanic.name=火山晶石 item.generator_front.name=发电机前部 item.generator_steel.name=发电机主体 item.glitch.name=故障 item.glowing_stew.name=发光真菌煲 item.goggles.name=护目镜 -item.grenade_aschrab.name=可抛反Sa326 +item.grenade_aschrab.name=可抛反Sa326异变铀金属 item.grenade_black_hole.name=黑洞手榴弹 item.grenade_breach.name=破甲手榴弹 item.grenade_burst.name=挖掘手榴弹 @@ -2362,7 +2454,7 @@ item.grenade_if_toxic.name=IF-毒物手榴弹 item.grenade_kit.name=手榴弹 套件 item.grenade_kyiv.name=基辅特供 item.grenade_lemon.name=可燃柠檬 -item.grenade_mirv.name=MIRV型破片手榴弹 +item.grenade_mirv.name=分导式多弹头型破片手榴弹 item.grenade_mk2.name=Mk2手榴弹“菠萝大使” item.grenade_nuclear.name=核子手榴弹 item.grenade_nuke.name=MkVI钻地手榴弹 @@ -2370,7 +2462,7 @@ item.grenade_pink_cloud.name=一罐粉色的云 item.grenade_plasma.name=等离子手榴弹 item.grenade_poison.name=剧毒手榴弹 item.grenade_pulse.name=脉冲手榴弹 -item.grenade_schrabidium.name=Sa326手榴弹 +item.grenade_schrabidium.name=Sa326异变铀金属手榴弹 item.grenade_shrapnel.name=榴霰弹手榴弹 item.grenade_smart.name=智能手榴弹 item.grenade_strong.name=增强型手榴弹 @@ -2382,17 +2474,17 @@ item.gun_b92.name=§9B92能量手枪§r item.gun_b92_ammo.name=§9B92能量单元§r item.gun_b93.name=§cB93能量手枪§r item.gun_bf.name=BEL -item.gun_bf_ammo.name=Mk.V小型AMAT-炮弹 –野火型 +item.gun_bf_ammo.name=Mk.V小型AMAT-炮弹 -B.F.型 item.gun_bio_revolver.name=Atlas item.gun_bolt_action.name=栓动式霰弹枪[原版] item.gun_bolt_action_ammo.name=12x74 独头弹 item.gun_bolt_action_green.name=栓动式霰弹枪[绿色] item.gun_bolt_action_saturnite.name=土星来复枪 item.gun_bolter.name=爆弹枪 -item.gun_bolter_digamma.name=迪伽马爆弹枪 -item.gun_calamity.name=希特勒的电锯 +item.gun_bolter_digamma.name=Ϝ迪伽马附魔的爆弹枪 +item.gun_calamity.name=洗头佬的电锯 item.gun_calamity_ammo.name=.50BMG子弹 -item.gun_calamity_dual.name=马鞍枪 +item.gun_calamity_dual.name=马克沁机枪 item.gun_chemthrower.name=化学喷射器 item.gun_cryolator.name=冻结者 item.gun_cryolator_ammo.name=急冻单元 @@ -2402,17 +2494,17 @@ item.gun_deagle.name=大手枪 item.gun_defabricator.name=毁灭者 item.gun_defabricator_ammo.name=毁灭者能量电池 item.gun_detonator.name=激光引爆器 -item.gun_emp.name=EMP射线 +item.gun_emp.name=EMP电磁脉冲射线 item.gun_emp_ammo.name=能量电池 item.gun_euthanasia.name=安乐死 item.gun_euthanasia_ammo.name=注射器 item.gun_fatman.name=M42核弹发射器 "胖子" -item.gun_fatman_ammo.name=迷你核弹 +item.gun_fatman_ammo.name=迷你核弹(老版本遗留物) item.gun_fireext.name=灭火器 -item.gun_flamer.name="黄玉先生"喷射器 -item.gun_flechette.name=弗莱彻突击步枪 +item.gun_flamer.name="黄玉先生" +item.gun_flechette.name=弗莱彻斯特突击步枪 item.gun_folly.name=Digamma原型"愚蠢" -item.gun_glass_cannon.name=玻璃大炮 +item.gun_glass_cannon.name=晶体射线枪 item.gun_hk69.name=榴弹手枪 item.gun_hp.name=HPP射线炮 item.gun_hp_ammo.name=墨盒 @@ -2420,37 +2512,38 @@ item.gun_immolator.name=焚烧者 item.gun_immolator_ammo.name=焚烧者燃料 item.gun_jack.name=汽锤 item.gun_jack_ammo.name=四联散弹子弹 -item.gun_karl.name=卡尔-古斯塔夫M3式84mm火箭筒 +item.gun_karl.name=卡尔·古斯塔夫M3式84mm火箭筒 item.gun_kit_1.name=枪械润滑油 item.gun_kit_2.name=枪械修理包 -item.gun_ks23.name=KS-23霰弹枪 +item.gun_ks23.name=塞缪尔大口径霰弹枪 item.gun_lacunae.name=CZ33亚巴顿 item.gun_lacunae_ammo.name=5mm子弹 item.gun_lever_action.name=马腿杠杆式霰弹枪[原版] +item.gun_m2.name=“乾妈”M2勃朗宁重机枪 item.gun_lever_action_ammo.name=12x74 鹿弹 item.gun_lever_action_dark.name=马腿杠杆式霰弹枪[黑暗] item.gun_lever_action_sonata.name=自杀霰弹 -item.gun_lever_action_sonata_2.name=§cSonata的麦克风§r -item.gun_m2.name=Ma Deuce +item.gun_lever_action_sonata_2.name=§c奏鸣的麦克风§r +item.gun_lunatic_marksman.name=月都科技狙击步枪 item.gun_minigun.name=CZ53机枪 -item.gun_mirv.name=M42核弹发射器 "试验型MIRV" -item.gun_mirv_ammo.name=八倍MIRV +item.gun_mirv.name=M42核弹发射器 "试验型分导式多弹头核弹" +item.gun_mirv_ammo.name=八倍分导式多弹头核弹(老版本遗留物) item.gun_moist_nugget.name=莫辛纳甘[迫真] item.gun_mp.name=和平主义的机枪 item.gun_mp40.name=MP40冲锋枪 item.gun_mp40_ammo.name=冲锋枪子弹 item.gun_pm_ammo.name=小型无发射药机枪子弹 -item.gun_mymy.name=Nietes软弹枪 +item.gun_mymy.name=记者眼中单位面积动能超过1.8焦的大规模杀伤性武器 item.gun_osipr.name=标准型脉冲机枪 item.gun_osipr_ammo.name=暗能量脉冲弹 item.gun_osipr_ammo2.name=融合球 item.gun_panzerschreck.name=战车噩梦 -item.gun_proto.name=M42核弹发射器 "原始MIRV" +item.gun_proto.name=M42核弹发射器 "分导式多弹头核弹原型" item.gun_quadro.name=四喜丸子 item.gun_revolver.name=强化左轮手枪 item.gun_revolver_ammo.name=铅左轮子弹 -item.gun_revolver_blackjack.name=黑杰克五发装左轮枪 -item.gun_revolver_cursed.name=诅咒手枪 +item.gun_revolver_blackjack.name=黑杰克的五发装左轮枪 +item.gun_revolver_cursed.name=诅咒左轮手枪 item.gun_revolver_cursed_ammo.name=钢左轮子弹 item.gun_revolver_gold.name=黄金左轮手枪 item.gun_revolver_gold_ammo.name=金左轮子弹 @@ -2463,40 +2556,41 @@ item.gun_revolver_nightmare.name=梦魇左轮手枪[原版] item.gun_revolver_nightmare2.name=梦魇左轮手枪[黑暗] item.gun_revolver_nightmare2_ammo.name=激光子弹 item.gun_revolver_nightmare_ammo.name=噩梦子弹 -item.gun_revolver_nopip.name=Novac +item.gun_revolver_nopip.name=诺华克 item.gun_revolver_nopip_ammo.name=.44马格南子弹 -item.gun_revolver_pip.name=小麦金塔 +item.gun_revolver_pip.name=小皮的小麦金塔 item.gun_revolver_pip_ammo.name=污染子弹 item.gun_revolver_red.name=红钥匙左轮手枪 item.gun_revolver_saturnite.name=土星手枪 -item.gun_revolver_schrabidium.name=Sa326左轮手枪 -item.gun_revolver_schrabidium_ammo.name=Sa326左轮子弹 +item.gun_revolver_schrabidium.name=Sa326异变铀金属左轮手枪 +item.gun_revolver_schrabidium_ammo.name=Sa326异变铀金属左轮子弹 item.gun_revolver_silver.name=银质左轮手枪 -item.gun_rpg.name=卡尔-古斯塔夫M4无后座力炮 +item.gun_rpg.name=卡尔·古斯塔夫M4无后座力炮 item.gun_rpg_ammo.name=火箭弹 -item.gun_sauer.name=斯坦-索尔的猎枪 +item.gun_sauer.name=斯坦·索尔的猎枪 item.gun_skystinger.name=毒刺-The One Sky -item.gun_spark.name=Spark Plug -item.gun_spark_ammo.name=电磁弹 -item.gun_spas12.name=SPAS-12霰弹枪 +item.gun_spark.name=火花塞 +item.gun_spark_ammo.name=火花塞电磁炮弹 +item.gun_spas12.name=SPAS-12多功能霰弹枪 item.gun_stinger.name=FIM-92毒刺导弹 item.gun_stinger_ammo.name=毒刺导弹 item.gun_super_shotgun.name="超级"猎枪 -item.gun_super_shotgun.desc=超级烂! -item.gun_supershotgun.name=超级猎枪 +item.gun_super_shotgun.desc=它已经严重损坏了! +item.gun_supershotgun.name=猛男快乐枪 item.gun_thompson.name=汤姆森冲锋枪 -item.gun_uboinik.name=Uboinik +item.gun_uboinik.name=先进制式霰弹枪 item.gun_uboinik_ammo.name=12x70 鹿弹 -item.gun_uzi.name=Uzi冲锋枪 +item.gun_uzi.name=Uzi item.gun_uzi_ammo.name=.22LR子弹 -item.gun_uzi_saturnite.name=土星Uzi冲锋枪 -item.gun_uzi_saturnite_silencer.name=带消音器的土星Uzi冲锋枪 -item.gun_uzi_silencer.name=带消音器的Uzi冲锋枪 +item.gun_uzi_saturnite.name=土星金属Uzi +item.gun_uzi_saturnite_silencer.name=带消音器的土星金属Uzi +item.gun_uzi_silencer.name=带消音器的Uzi +item.gun_vortex.name=涡流能量步枪 item.gun_xvl1456.name=XVL1456陶子加农炮原型机 item.gun_xvl1456_ammo.name=贫化铀235子弹 item.gun_zomg.name=奇点能湮灭射线“ZOMG炮” item.hand_drill.name=手钻 -item.hand_drill_desh.name=Desh手钻 +item.hand_drill_desh.name=德什制手钻 item.hazmat_boots.name=防辐射靴 item.hazmat_boots_grey.name=高性能防辐射靴 item.hazmat_boots_red.name=高级防辐射靴 @@ -2519,29 +2613,30 @@ item.hazmat_plate.name=防辐射胸甲 item.hazmat_plate_grey.name=高性能防辐射胸甲 item.hazmat_plate_red.name=高级防辐射胸甲 item.hazmat_red_kit.name=高级防护套装 -item.heart_booster.name=心之增强器 -item.heart_container.name=心之容器 +item.heart_booster.name=心脏起搏器 +item.heart_container.name=心脏容器 item.heart_fab.name=心脏抗原结合器 -item.heart_piece.name=心之碎片 -item.hev_battery.name=套装电池 -item.hev_boots.name=HEV Mk.IV 靴子 -item.hev_plate.name=HEV Mk.IV 胸甲 -item.hev_helmet.name=HEV Mk.IV 头盔 -item.hev_legs.name=HEV Mk.IV 护腿 -item.holotape_damaged.name=损坏的全息卡带 -item.holotape_image.name=全息卡带 +item.heart_piece.name=心脏碎片 +item.hev_battery.name=盔甲充能电池 +item.hev_boots.name=Mark IV型HEV危险环境防护服靴子 +item.hev_plate.name=Mark IV型HEV危险环境防护服胸甲 +item.hev_helmet.name=Mark IV型HEV危险环境防护服头盔 +item.hev_legs.name=Mark IV型HEV危险环境防护服护腿 +item.holotape_damaged.name=损坏的全息磁带 +item.holotape_image.name=全息磁带 item.horseshoe_magnet.name=马蹄形磁铁 item.hull_big_aluminium.name=大型铝壳 item.hull_big_steel.name=大型钢壳 item.hull_big_titanium.name=大型钛壳 item.hull_small_aluminium.name=小型铝壳 -item.hull_small_aluminium.desc=可插入钻孔石墨中 +item.hull_small_aluminium.desc=可以插入钻孔石墨中 item.hull_small_steel.name=小型钢壳 + item.igniter.name=点火器 -item.igniter.desc=(鼠标右键点击原型)$这是一个绿色金属手柄,带有$亮红色按钮和一个小盖子$在底部,缩写N.E.刻着美元。不管N.E.是谁,他对绿色的色调很有品味。 +item.igniter.desc=(通过右键单击原型来将其引爆)$这是一个绿色的金属柄$带有一个鲜红色的按钮和一个小盖子.$在其底部刻有N.E. 的首字母,$我不知道这个 N.E. 是谁, 但$他对绿色一定很有鉴赏力. item.industrial_magnet.name=工业磁铁 item.inf_antimatter.name=无限反物质罐 -item.inf_antischrabidium.name=无限反Sa326罐 +item.inf_antischrabidium.name=无限反Sa326异变铀金属罐 item.inf_coolant.name=无限冷却液罐 item.inf_deuterium.name=无限氘罐 item.inf_diesel.name=无限柴油罐 @@ -2549,7 +2644,7 @@ item.inf_sulfur.name=无限硫磺罐 item.inf_tritium.name=无限氚罐 item.inf_water.name=无限水罐 item.inf_water_mk2.name=重型无限水罐 -item.ingot_actinium.name=半稳定锕锭 +item.ingot_actinium.name=半稳定锕-227锭 item.ingot_advanced_alloy.name=高级合金锭 item.ingot_aluminium.name=铝锭 item.ingot_am_mix.name=反应堆级镅锭 @@ -2558,82 +2653,88 @@ item.ingot_am242.name=镅-242锭 item.ingot_americium_fuel.name=镅燃料锭 item.ingot_arsenic.name=砷锭 item.ingot_asbestos.name=石棉板 -item.ingot_asbestos.desc=§o\“充满了生命、自我怀疑和石棉。这是空气带来的。\”§r +item.ingot_asbestos.desc=§o"充满了生命,自我怀疑和石棉.那是随空气而来的."§r item.ingot_au198.name=金-198锭 item.ingot_australium.name=奥斯锭 item.ingot_bakelite.name=电木锭 item.ingot_beryllium.name=铍锭 item.ingot_bismuth.name=铋锭 item.ingot_boron.name=硼锭 -item.ingot_c4.name=一块C-4 +item.ingot_c4.name=合成C-4 +item.ingot_cadmium.name=镉锭 item.ingot_calcium.name=钙锭 -item.ingot_chainsteel.name=重链钢 +item.ingot_cdalloy.name=镉钢合金锭 +item.ingot_chainsteel.name=沉重链钢 item.ingot_co60.name=钴-60锭 item.ingot_cobalt.name=钴锭 item.ingot_combine_steel.name=CMB钢锭 -item.ingot_combine_steel.desc=*在此处插入民事保护参考* +item.ingot_combine_steel.desc=*在此处插入民防知识参考资料* item.ingot_copper.name=工业级铜 item.ingot_daffergon.name=达夫贡锭 -item.ingot_desh.name=Desh锭 +item.ingot_desh.name=德什锭 item.ingot_dineutronium.name=双聚中子态素锭 item.ingot_dura_steel.name=高速钢锭 item.ingot_electronium.name=电素锭 -item.ingot_euphemium.name=Ep锭 -item.ingot_euphemium.desc=一个非常特殊但又奇怪的元素。 +item.ingot_euphemium.name=Ep元素锭 +item.ingot_euphemium.desc=一种非常强大特殊但又很奇怪的元素. item.ingot_ferrouranium.name=铀铁锭 item.ingot_fiberglass.name=玻璃纤维 -item.ingot_fiberglass.desc=纤维含量高,玻璃含量高。身体需要的一切。 +item.ingot_fiberglass.desc=富含纤维,玻璃. 具有身体所需要的一切. item.ingot_firebrick.name=耐火砖 -item.ingot_gh336.name=Gh336锭 -item.ingot_gh336.desc=钅喜的同事。 +item.ingot_gh336.name=气敖-336锭 +item.ingot_gh336.desc=𬭳的同事. item.ingot_graphite.name=石墨锭 -item.ingot_hes.name=高浓度Sa326燃料锭 +item.ingot_hes.name=高浓度Sa326异变铀金属燃料锭 item.ingot_lanthanium.name=半稳定镧锭 -item.ingot_lanthanium.desc=“镧” -item.ingot_lanthanium.desc.P11=实际上就是镧,无论怎么说。 +item.ingot_lanthanium.desc='Lanthanum' +item.ingot_lanthanium.desc.P11=实际上是这么拼写的, 但谁在乎呢. item.ingot_lead.name=铅锭 -item.ingot_les.name=低浓度Sa326燃料锭 +item.ingot_les.name=低浓度Sa326异变铀金属燃料锭 item.ingot_magnetized_tungsten.name=磁化钨锭 item.ingot_meteorite.name=陨石锭 -item.ingot_meteorite_forged.name=锻造陨石锭 +item.ingot_meteorite_forged.name=锻造过的陨石锭 item.ingot_mox_fuel.name=MOX燃料锭 +item.ingot_mud.name=固化泥砖 item.ingot_neptunium.name=镎锭 -item.ingot_neptunium.desc=那是我最喜欢的! -item.ingot_neptunium.desc.P11=哇,吓人! +item.ingot_neptunium.desc=那是我最喜欢的! +item.ingot_neptunium.desc.P11=哇哦, 真吓人! item.ingot_neptunium_fuel.name=镎燃料锭 item.ingot_niobium.name=铌锭 item.ingot_osmiridium.name=铱锇锭 item.ingot_pb209.name=铅-209锭 +item.ingot_pc.name=硬质塑料棒 +item.ingot_pet.name=铝金属化PET聚酯条 item.ingot_phosphorus.name=白磷锭 item.ingot_plutonium.name=钚锭 item.ingot_plutonium_fuel.name=钚燃料锭 -item.ingot_polonium.name=钋锭 +item.ingot_polonium.name=钋-210锭 item.ingot_polymer.name=聚合物锭 item.ingot_pu_mix.name=反应堆级钚锭 item.ingot_pu238.name=钚-238锭 item.ingot_pu239.name=钚-239锭 item.ingot_pu240.name=钚-240锭 item.ingot_pu241.name=钚-241锭 +item.ingot_pvc.name=PVC聚氯乙烯棒 item.ingot_ra226.name=镭-226锭 item.ingot_red_copper.name=紫铜 item.ingot_reiium.name=雷恩锭 item.ingot_rubber.name=橡胶锭 item.ingot_saturnite.name=土星锭 -item.ingot_schrabidate.name=Sa酸铁锭 -item.ingot_schrabidium.name=Sa326锭 -item.ingot_schrabidium_fuel.name=Sa326燃料锭 -item.ingot_schraranium.name=低丰度Sa326锭 -item.ingot_schraranium.desc=在Sa326嬗变器中由铀制成 -item.ingot_semtex.name=塞姆汀塑胶炸药块 -item.ingot_smore.name=S'more 锭 -item.ingot_solinium.name=Sa327锭 +item.ingot_schrabidate.name=Sa326元素酸化铁锭 +item.ingot_schrabidium.name=Sa326异变铀金属锭 +item.ingot_schrabidium_fuel.name=Sa326异变铀金属燃料锭 +item.ingot_schraranium.name=低丰度Sa326异变铀金属锭 +item.ingot_schraranium.desc=在Sa326异变铀金属嬗变器中由铀锭嬗变而来 +item.ingot_semtex.name=塞姆汀塑胶炸药 +item.ingot_smore.name=S'more饼干 +item.ingot_solinium.name=Sa327索林锭 item.ingot_sr90.name=锶-90锭 -item.ingot_starmetal.name=§9星辉锭§r +item.ingot_starmetal.name=星辉金属锭 item.ingot_steel.name=钢锭 -item.ingot_steel_dusted.name=粉末钢锭 +item.ingot_steel_dusted.name=粉状钢锭 item.ingot_tantalium.name=钽锭 -item.ingot_tantalium.desc=“钽” -item.ingot_tantalium.desc.P11=又名钽。 +item.ingot_tantalium.desc='Tantalum' +item.ingot_tantalium.desc.P11=也写作这个. item.ingot_tcalloy.name=锝-钢合金锭 item.ingot_technetium.name=锝-99锭 item.ingot_th232.name=钍-232锭 @@ -2643,58 +2744,58 @@ item.ingot_tungsten.name=钨锭 item.ingot_u233.name=铀-233锭 item.ingot_u235.name=铀-235锭 item.ingot_u238.name=铀-238锭 -item.ingot_u238m2.name=亚稳铀238-2锭 -item.ingot_unobtainium.name=难得素锭 +item.ingot_u238m2.name=亚稳铀-238-2锭 +item.ingot_unobtainium.name=阿诺布素锭 item.ingot_uranium.name=铀锭 item.ingot_uranium_fuel.name=铀燃料锭 item.ingot_verticium.name=韦德赛锭 item.ingot_weidanium.name=魏丹锭 -item.ingot_zirconium.name=锆块 +item.ingot_zirconium.name=锆锭 item.injector_5htp.name=5-HTP自动药物注射器 item.injector_knife.name=8英寸刀片自动药物注射器 item.ink.name=林 墨水 -item.insert_doxium.name=掺砷Doxium插板 -item.insert_du.name=贫铀插板 -item.insert_era.name=反应装甲插板 -item.insert_esapi.name=ESAPI插板 -item.insert_ghiorsium.name=Gh插板 -item.insert_kevlar.name=凯夫拉插板 -item.insert_sapi.name=SAPI插板 -item.insert_polonium.name=钋插板 -item.insert_steel.name=重型钢插板 -item.insert_xsapi.name=XSAPI插板 -item.insert_yharonite.name=犽戎龙素插板 +item.insert_doxium.name=掺砷羟苯磺酸钙防弹插板 +item.insert_du.name=贫铀防弹插板 +item.insert_era.name=爆炸反应式装甲插板 +item.insert_esapi.name=ESAPI增强型轻武器防护插板 +item.insert_ghiorsium.name=𪵧制防弹插板 +item.insert_kevlar.name=凯夫拉防弹插板 +item.insert_sapi.name=SAPI插入式轻武器防护板 +item.insert_polonium.name=钋制防弹插板 +item.insert_steel.name=重型钢制防弹插板 +item.insert_xsapi.name=XSAPI下一代防弹插板 +item.insert_yharonite.name=龙素防弹插板 item.iv_blood.name=血袋 -item.iv_empty.name=静脉输液袋 +item.iv_empty.name=空的静脉输液袋 item.iv_xp.name=经验包 item.iv_xp_empty.name=空的经验包 item.jackt.name=时尚防弹夹克 item.jackt2.name=时尚防弹夹克2:东京漂移 -item.jetpack_boost.name=弹跳背包 -item.jetpack_break.name=缓降背包 +item.jetpack_boost.name=强力喷气背包 +item.jetpack_break.name=建筑工喷气背包 item.jetpack_fly.name=喷气背包 item.jetpack_tank.name=喷气背包备用燃料罐 item.jetpack_vector.name=矢量喷气背包 -item.journal_bj.name=被威士忌浸透的笔记本 +item.journal_bj.name=被威士忌泡湿透的笔记本 item.journal_pip.name=生存主义者日记 -item.journal_silver.name=承包商注释 +item.journal_silver.name=承包商说明 item.key.name=钥匙 item.key_fake.name=伪造钥匙 item.key_kit.name=钥匙仿制套件 item.key_red.name=红色钥匙 -item.key_red.desc=探索另一边。 +item.key_red.desc=探索一下另一面. item.key_red.desc.P11=§4e§r item.kit_toolbox.name=工具箱 -item.kit_toolbox_empty.name=空工具箱 +item.kit_toolbox_empty.name=空的工具箱 item.laser_crystal_bismuth.desc=铋-钐-铀-钍晶体基质 -item.laser_crystal_bismuth.name=铋-钐-铀-钍激光晶体 -item.laser_crystal_cmb.desc=反Sa326被镶嵌在CMB-Sa326合金晶格 -item.laser_crystal_cmb.name=CMB-Sa326反物质激光晶体 -item.laser_crystal_co2.desc=二氧化碳被包裹在结晶的Desh中 -item.laser_crystal_co2.name=CO2-Desh激光晶体 -item.laser_crystal_digamma.name=Digamma迪伽马激光晶体 -item.laser_crystal_dnt.desc=双聚态中子-Spark费米子超晶体 -item.laser_crystal_dnt.name=Spark激光晶体 +item.laser_crystal_bismuth.name=铋-钐-铀-钍晶体基质激光晶体 +item.laser_crystal_cmb.desc=悬浮在CMB-Sa326异变铀金属合金晶格中的反Sa326元素 +item.laser_crystal_cmb.name=CMB-Sa326异变铀金属合金反物质激光晶体 +item.laser_crystal_co2.desc=被包裹在结晶的德什金属中的二氧化碳 +item.laser_crystal_co2.name=CO2-德什激光晶体 +item.laser_crystal_digamma.name=Ϝ迪伽马激光晶体 +item.laser_crystal_dnt.desc=双聚中子态素-Spark闪闪魔法 费米子超晶体 +item.laser_crystal_dnt.name=Spark闪闪魔法 激光晶体 item.lead_gavel.name=铅槌 item.lemon.name="柠檬" item.letter.name=快捷邮件 @@ -2713,20 +2814,21 @@ item.loops.name=五彩麦圈 item.loot_10.name=10号导弹战利箱 item.loot_15.name=15号导弹战利箱 item.loot_misc.name=普通导弹战利箱 + item.magnet_circular.name=扁磁铁 item.magnet_dee.name=D型磁铁 item.magnetron.name=磁控管 item.man_core.name=钚核心 item.man_explosive.name=炸药 -item.man_igniter.name=点火器 +item.man_igniter.name=炸弹点火装置 item.man_kit.name=胖子 套件 item.marshmallow.name=穿在木棍上的棉花糖 item.mask_of_infamy.name=耻辱面具 -item.mask_piss.name=战壕面具 -item.mask_rag.name=粗糙防护面罩 +item.mask_piss.name=战壕版粗制防护面罩 +item.mask_rag.name=粗制防护面罩 item.matchstick.name=火柴 -item.mech_key.name=大号银钥匙 -item.mech_key.desc=它充满力量。 +item.mech_key.name=大银钥匙 +item.mech_key.desc=它充满了力量. item.mechanism_launcher_1.name=发射机构 item.mechanism_launcher_2.name=先进发射机构 item.mechanism_revolver_1.name=转轮机构 @@ -2740,31 +2842,31 @@ item.med_ptsd.name=PTSD治疗药物 item.med_schiziphrenia.name=抗精神分裂症药物 item.medal_liquidator.name=核废土清道夫勋章 item.meltdown_tool.name=达洛夫快速熔毁装置 -item.memespoon.name=§ee花园园丁 +item.memespoon.name=§e花园园丁 item.memory.name=item.null.name -item.mese_gavel.name=Mese槌 -item.mese_pickaxe.name=Mese镐 +item.mese_gavel.name=月神槌 +item.mese_pickaxe.name=月神镐 item.meteor_charm.name=陨石项链 item.meteor_remote.name=陨石召唤器 item.meteorite_sword.name=陨石剑 -item.meteorite_sword_seared.name=陨石剑(烧焦) -item.meteorite_sword_reforged.name=陨石剑(重铸) -item.meteorite_sword_hardened.name=陨石剑(硬化) -item.meteorite_sword_alloyed.name=陨石剑(合金) -item.meteorite_sword_machined.name=陨石剑(机械加工) -item.meteorite_sword_treated.name=陨石剑(精制) -item.meteorite_sword_etched.name=陨石剑(刻蚀) -item.meteorite_sword_bred.name=陨石剑(增殖) -item.meteorite_sword_irradiated.name=陨石剑(辐照) -item.meteorite_sword_fused.name=陨石剑(熔融) -item.meteorite_sword_baleful.name=陨石剑(凶恶) +item.meteorite_sword_seared.name=陨石剑 (炽热) +item.meteorite_sword_reforged.name=陨石剑 (重铸) +item.meteorite_sword_hardened.name=陨石剑 (硬化) +item.meteorite_sword_alloyed.name=陨石剑 (合金化) +item.meteorite_sword_machined.name=陨石剑 (机械加工) +item.meteorite_sword_treated.name=陨石剑 (治疗) +item.meteorite_sword_etched.name=陨石剑 (蚀刻) +item.meteorite_sword_bred.name=陨石剑 (增殖) +item.meteorite_sword_irradiated.name=陨石剑 (辐照处理) +item.meteorite_sword_fused.name=陨石剑 (熔融) +item.meteorite_sword_baleful.name=陨石剑 (B.F野火烧炼处理) item.mike_cooling_unit.name=氘冷却装置 item.mike_core.name=铀涂层氘罐 item.mike_deut.name=氘罐 item.mike_kit.name=常青藤麦克 套件 -item.mirror_tool.name=定日镜调整工具 -item.mirror_tool.linked=设置对齐位置! -item.mirror_tool.desc=右键单击“太阳能锅炉”以记忆位置 $再单击“定日镜”可将其转向太阳能锅炉 +item.mirror_tool.name=镜面角度调整工具 +item.mirror_tool.linked=已设置要对齐的太阳能蒸发塔位置! +item.mirror_tool.desc=右键太阳能蒸发塔以记录其位置.$然后再右击阳光反射镜来让其对准太阳能蒸发塔. item.missile_anti_ballistic.name=反弹道导弹 item.missile_assembly.name=小型导弹[待装配] item.missile_bhole.name=黑洞导弹 @@ -2777,8 +2879,8 @@ item.missile_cluster_strong.name=强化型集束导弹 item.missile_custom.name=定制导弹 item.missile_doomsday.name=末日导弹 item.missile_drill.name=掩体裂解者 -item.missile_emp.name=EMP导弹 -item.missile_emp_strong.name=强化型EMP导弹 +item.missile_emp.name=EMP电磁脉冲导弹 +item.missile_emp_strong.name=强化型EMP电磁脉冲导弹 item.missile_endo.name=吸热导弹 item.missile_exo.name=放热导弹 item.missile_generic.name=高爆导弹 @@ -2790,44 +2892,44 @@ item.missile_micro.name=战术核导弹 item.missile_nuclear.name=核导弹 item.missile_nuclear_cluster.name=热核导弹 item.missile_rain.name=炸弹雨 -item.missile_schrabidium.name=Sa326导弹 +item.missile_schrabidium.name=Sa326异变铀金属导弹 item.missile_shuttle.name=万金罗宾航天飞机 item.missile_skin_camo.name=导弹外壳:迷彩 -item.missile_skin_color.desc=我再也找不到我的导弹了! +item.missile_skin_color.desc=我甚至再也找不到我的导弹了! item.missile_skin_desert.name=导弹外壳:沙漠迷彩 -item.missile_skin_desert.desc=看起来像沙子,尝起来像金属。 +item.missile_skin_desert.desc=看起来像沙子, 尝起来像金属. item.missile_skin_flames.name=导弹外壳:火焰 -item.missile_skin_flames.desc=不同凡响的! -item.missile_skin_manly_pink.name=导弹外壳:猛男粉 -item.missile_skin_manly_pink.desc=粉色,最有男子气概的颜色。 +item.missile_skin_flames.desc=不同凡响! +item.missile_skin_manly_pink.name=导弹外壳:猛男骚粉 +item.missile_skin_manly_pink.desc=粉色, 最能体现猛♂男气概的颜色. item.missile_skin_metal.name=导弹外壳:全金属外壳 -item.missile_skin_metal.desc=金属板和金属螺栓,用金属加固。 +item.missile_skin_metal.desc=用金属加固的金属板和金属螺栓. item.missile_skin_orange_insulation.name=导弹外壳:橙色绝缘 -item.missile_skin_orange_insulation.desc=不是橙汁瓶$不要试图喝里面的东西。 +item.missile_skin_orange_insulation.desc=不是橙汁瓶;$也不要试图喝里面的东西. item.missile_skin_sleek.name=导弹外壳:IF-R&D -item.missile_skin_sleek.desc=V字形很酷! -item.missile_skin_soviet_glory.name=导弹外壳:苏联荣耀 -item.missile_skin_soviet_glory.desc=услуга перевода недоступна -item.missile_skin_soviet_stank.name=导弹外壳:苏维埃不朽 -item.missile_skin_soviet_stank.desc=这个真的很有60年代的味道。 +item.missile_skin_sleek.desc=V字形很酷! +item.missile_skin_soviet_glory.name=导弹外壳:牢不可破的苏联 +item.missile_skin_soviet_glory.desc=услуга перевода недоступна(翻译服务不可用) +item.missile_skin_soviet_stank.name=导弹外壳:不攻自破的苏联 +item.missile_skin_soviet_stank.desc=这个真的有60年代的味道. item.missile_soyuz.name=联盟-FG运载火箭 item.missile_soyuz_lander.name=联盟号轨道舱 -item.missile_soyuz_lander.desc=劣质着陆器! +item.missile_soyuz_lander.desc=同时也是个蹩脚的着陆器! item.missile_strong.name=强化型高爆导弹 item.missile_taint.name=污染导弹 -item.missile_volcano.name=构造导弹 -item.missile_volcano.desc=利用核爆的威力,我们可以召唤一座火山! -item.mold_base.name=毛坯铸造模具 +item.missile_volcano.name=地壳破坏者导弹 +item.missile_volcano.desc=利用核爆炸的威力,我们可以制造一座火山! +item.mold_base.name=空白铸造模具 item.mold.name=铸造模具 item.morning_glory.name=牵牛花 item.motor.name=马达 -item.motor_desh.name=Desh马达 +item.motor_desh.name=德什制马达 item.mp_c_1.name=1级导弹制导芯片 item.mp_c_2.name=2级导弹制导芯片 item.mp_c_3.name=3级导弹制导芯片 item.mp_c_4.name=4级导弹制导芯片 item.mp_c_5.name=5级导弹制导芯片 -item.mp_fuselage_10_15_balefire.name=10/15号弹体[野火燃料] +item.mp_fuselage_10_15_balefire.name=10/15号弹体[BF燃料] item.mp_fuselage_10_15_hydrogen.name=10/15号弹体[液氢] item.mp_fuselage_10_15_kerosene.name=10/15号弹体[煤油] item.mp_fuselage_10_15_solid.name=10/15号弹体[固体燃料] @@ -2869,10 +2971,10 @@ item.mp_fuselage_10_solid_sleek.name=10号弹体[固体燃料] item.mp_fuselage_10_solid_soviet_glory.name=10号弹体[固体燃料] item.mp_fuselage_10_xenon.name=10号弹体[氙] item.mp_fuselage_10_xenon_bhole.name=10号弹体[氙] -item.mp_fuselage_15_20_kerosene.name=15/20号弹体[煤油] -item.mp_fuselage_15_20_kerosene_magnusson.name=15/20号弹体[煤油] -item.mp_fuselage_15_20_solid.name=15/20号弹体[固体燃料] -item.mp_fuselage_15_balefire.name=15号弹体[野火燃料] +item.mp_fuselage_15_20_kerosene.name=15号/20 弹体[煤油] +item.mp_fuselage_15_20_kerosene_magnusson.name=15号/20 弹体[煤油] +item.mp_fuselage_15_20_solid.name=15号/20 弹体[固体燃料] +item.mp_fuselage_15_balefire.name=15号弹体[液氢] item.mp_fuselage_15_hydrogen.name=15号弹体[液氢] item.mp_fuselage_15_hydrogen_cathedral.name=15号弹体[液氢] item.mp_fuselage_15_kerosene.name=15号弹体[煤油] @@ -2894,7 +2996,7 @@ item.mp_fuselage_15_solid.name=15号弹体[固体燃料] item.mp_fuselage_15_solid_desh.name=15号弹体[固体燃料] item.mp_fuselage_15_solid_faust.name=15号弹体[固体燃料] item.mp_fuselage_15_solid_insulation.name=15号弹体[固体燃料] -item.mp_fuselage_15_solid_mimi.name=15号弹体[固体燃料] +item.mp_fuselage_15_solid_mimi.name=15号咪咪号弹体[固体燃料] item.mp_fuselage_15_solid_panorama.name=15号弹体[固体燃料] item.mp_fuselage_15_solid_roses.name=15号弹体[固体燃料] item.mp_fuselage_15_solid_silvermoonlight.name=15号弹体[固体燃料] @@ -2910,10 +3012,10 @@ item.mp_stability_15_thin.name=15号薄翼 item.mp_thruster_10_kerosene.name=10号液体燃料推进器 item.mp_thruster_10_solid.name=10号固体燃料推进器 item.mp_thruster_10_xenon.name=10号离子推进器 -item.mp_thruster_15_balefire.name=15号带核预热器的野火燃料推进器 -item.mp_thruster_15_balefire_large.name=15号带核预热器的野火燃料推进器[重型喷管] -item.mp_thruster_15_balefire_large_rad.name=15号带核预热器的野火燃料推进器[重型喷管-稀有] -item.mp_thruster_15_balefire_short.name=15号带核预热器的野火燃料推进器[缩短版] +item.mp_thruster_15_balefire.name=15号带核预热器的BF燃料推进器 +item.mp_thruster_15_balefire_large.name=15号带核预热器的BF燃料推进器[重型喷管] +item.mp_thruster_15_balefire_large_rad.name=15号带核预热器的BF燃料推进器[重型喷管] +item.mp_thruster_15_balefire_short.name=15号带核预热器的BF燃料推进器[简称] item.mp_thruster_15_hydrogen.name=15号液氢推进器 item.mp_thruster_15_hydrogen_dual.name=15号双喷管氢推进器 item.mp_thruster_15_kerosene.name=15号液体燃料推进器 @@ -2934,16 +3036,16 @@ item.mp_warhead_10_incendiary.name=10号燃烧弹头 item.mp_warhead_10_nuclear.name=10号微型核弹头 item.mp_warhead_10_nuclear_large.name=10号核弹头 item.mp_warhead_10_taint.name=10号污染弹头 -item.mp_warhead_15_balefire.name=15号野火弹头 +item.mp_warhead_15_balefire.name=15号烈火弹头 item.mp_warhead_15_boxcar.name=15号 车厢? item.mp_warhead_15_he.name=15号HE弹头 item.mp_warhead_15_incendiary.name=15号燃烧弹头 -item.mp_warhead_15_n2.name=15号N2炸弹 +item.mp_warhead_15_n2.name=15号N²炸弹 item.mp_warhead_15_nuclear.name=15号核弹头 -item.mp_warhead_15_nuclear_mimi.name=15号核弹头 +item.mp_warhead_15_nuclear_mimi.name=15号咪咪号弹头 item.mp_warhead_15_nuclear_shark.name=15号核弹头 item.mp_warhead_15_turbine.name=15号喷气发动机弹头 -item.mucho_mango.name=亚利桑那芒果味饮料 +item.mucho_mango.name=亚利桑那牌芒果汁 item.multi_kit.name=多用途炸弹 套件 item.multitool_beam.name=动力拳套[热射线] item.multitool_decon.name=动力拳套[净化] @@ -2956,26 +3058,29 @@ item.multitool_miner.name=动力拳套[采矿激光] item.multitool_silk.name=动力拳套[精准采集] item.multitool_sky.name=动力拳套[划破天际] item.mysteryshovel.name=易碎锹 + item.n2_charge.name=大型炸药 -item.neutrino_lens.name=中子透镜 +item.neutrino_lens.name=中微子透镜 item.neutron_reflector.name=中子反射板 item.niter.name=硝石粉 -item.nossy_hat.name=华丽的帽子 +item.no9.name=采矿头盔 +item.nossy_hat.name=资本家之帽 item.nothing.name=没有东西 item.nuclear_waste.name=核废料 item.nuclear_waste_pearl.name=放射性珍珠 item.nuclear_waste_tiny.name=小撮核废料 +item.nuclear_waste_tiny.name=一小堆核废料 item.nuclear_waste_long.name=长半衰期核废料 -item.nuclear_waste_long_tiny.name=小撮长半衰期核废料 -item.nuclear_waste_long_depleted.name=腐化的长半衰期核废料 -item.nuclear_waste_long_depleted_tiny.name=小撮腐化的长半衰期核废料 +item.nuclear_waste_long_tiny.name=一小堆长半衰期核废料 +item.nuclear_waste_long_depleted.name=衰变的长半衰期核废料 +item.nuclear_waste_long_depleted_tiny.name=一小堆衰变的长半衰期核废料 item.nuclear_waste_short.name=短半衰期核废料 -item.nuclear_waste_short_tiny.name=小撮短半衰期核废料 -item.nuclear_waste_short_depleted.name=腐化的短半衰期核废料 -item.nuclear_waste_short_depleted_tiny.name=小撮腐化的短半衰期核废料 +item.nuclear_waste_short_tiny.name=一小堆短半衰期核废料 +item.nuclear_waste_short_depleted.name=衰变的短半衰期核废料 +item.nuclear_waste_short_depleted_tiny.name=一小堆衰变的短半衰期核废料 item.nuclear_waste_vitrified.name=玻璃化核废料 -item.nuclear_waste_vitrified_tiny.name=小撮玻璃化核废料 -item.nugget.name=鸡块 +item.nuclear_waste_vitrified_tiny.name=一小堆玻璃化核废料 +item.nugget.name=炸鸡块 item.nugget_actinium.name=锕-227粒 item.nugget_am_mix.name=反应堆级镅粒 item.nugget_am241.name=镅-241粒 @@ -2983,34 +3088,34 @@ item.nugget_am242.name=镅-242粒 item.nugget_americium_fuel.name=镅燃料粒 item.nugget_arsenic.name=砷粒 item.nugget_au198.name=金-198粒 -item.nugget_australium.name=奥斯粒 -item.nugget_australium_greater.name=富集奥斯粒 -item.nugget_australium_lesser.name=贫化奥斯粒 +item.nugget_australium.name=奥金粒 +item.nugget_australium_greater.name=富集奥金粒 +item.nugget_australium_lesser.name=贫化奥金粒 item.nugget_beryllium.name=铍粒 item.nugget_bismuth.name=铋粒 item.nugget_co60.name=钴-60粒 item.nugget_cobalt.name=钴粒 item.nugget_daffergon.name=达夫贡粒 -item.nugget_desh.name=Desh粒 +item.nugget_desh.name=德什粒 item.nugget_dineutronium.name=双聚中子态素粒 -item.nugget_euphemium.name=Ep粒 -item.nugget_euphemium.desc=一小块粉红色的金属$它的属性仍然未知,请小心处理。 -item.nugget_gh336.name=Gh336粒 -item.nugget_gh336.desc=钅喜的同事。 -item.nugget_hes.name=高浓度Sa326燃料粒 +item.nugget_euphemium.name=Ep元素粒 +item.nugget_euphemium.desc=一小块粉红色的金属.$它各方面具体的性质还不清楚,$务 必 小 心 地 处 理 它. +item.nugget_gh336.name=𪵧-336粒 +item.nugget_gh336.desc=𬭳的同事. +item.nugget_hes.name=高浓度Sa326异变铀金属燃料粒 item.nugget_lead.name=铅粒 -item.nugget_les.name=低浓度Sa326燃料粒 +item.nugget_les.name=低浓度Sa326异变铀金属燃料粒 item.nugget_mercury_tiny.name=一小滴水银 item.nugget_mercury.name=一滴水银 item.nugget_mox_fuel.name=MOX燃料粒 -item.nugget_mox_fuel.desc=摩西说:§l逃税。§r +item.nugget_mox_fuel.desc=摩西说: §l逃税.§r item.nugget_neptunium.name=镎粒 item.nugget_neptunium_fuel.name=镎燃料粒 -item.nugget_osmiridium.name=铱锇粒 +item.nugget_osmiridium.name=锇铱粒 item.nugget_pb209.name=铅-209粒 item.nugget_plutonium.name=钚粒 item.nugget_plutonium_fuel.name=钚燃料粒 -item.nugget_polonium.name=钋粒 +item.nugget_polonium.name=钋-210粒 item.nugget_pu_mix.name=反应堆级钚粒 item.nugget_pu238.name=钚-238粒 item.nugget_pu239.name=钚-239粒 @@ -3018,40 +3123,42 @@ item.nugget_pu240.name=钚-240粒 item.nugget_pu241.name=钚-241粒 item.nugget_ra226.name=镭-226粒 item.nugget_reiium.name=魏丹粒 -item.nugget_schrabidium.name=Sa326粒 -item.nugget_schrabidium_fuel.name=Sa326燃料粒 -item.nugget_solinium.name=Sa327粒 +item.nugget_schrabidium.name=Sa-326异变铀金属粒 +item.nugget_schrabidium_fuel.name=Sa-326异变铀金属燃料粒 +item.nugget_solinium.name=Sa-327索林粒 item.nugget_sr90.name=锶-90粒 item.nugget_tantalium.name=钽粒 -item.nugget_tantalium.desc=“钽” -item.nugget_tantalium.desc.P11=又名钽。 +item.nugget_tantalium.desc='Tantalum' +item.nugget_tantalium.desc.P11=也写作这个. item.nugget_technetium.name=锝-99粒 -item.nugget_th232.name=钍232粒 +item.nugget_th232.name=钍-232粒 item.nugget_thorium_fuel.name=钍燃料粒 item.nugget_u233.name=铀-233粒 item.nugget_u235.name=铀-235粒 item.nugget_u238.name=铀-238粒 -item.nugget_unobtainium.name=难得素粒 +item.nugget_unobtainium.name=阿诺布汀粒 item.nugget_uranium.name=铀粒 item.nugget_uranium_fuel.name=铀燃料粒 item.nugget_verticium.name=韦德赛粒 item.nugget_weidanium.name=魏丹粒 -item.nugget_zirconium.name=锆碎片 + item.nuke_advanced_kit.name=原子学高级工具箱 item.nuke_commercially_kit.name=商用原子学工具箱 item.nuke_electric_kit.name=电子工程师工具箱 item.nuke_starter_kit.name=原子学入门工具箱 +item.nugget_zirconium.name=锆碎片 item.oil_canola.name=菜籽油 item.oil_detector.name=石油探测仪 -item.oil_detector.desc1=单击右键扫描地下是否存在油田 -item.oil_detector.desc2=探测仪只会发现大片油田 -item.oil_detector.bullseye=正下方发现油田! -item.oil_detector.detected=附近存在油田 -item.oil_detector.noOil=未发现油田 -item.oil_tar.coal.name=煤焦油 -item.oil_tar.crude.name=焦油 -item.oil_tar.crack.name=裂化焦油 -item.oil_tar.wood.name=木馏油 +item.oil_detector.desc1=右击以扫描下方有无油田.. +item.oil_detector.desc2=该勘测器只能扫描到较大的油田! +item.oil_detector.bullseye=油田就在正下方! +item.oil_detector.detected=检测到油田! +item.oil_detector.noOil=未发现油田. +item.oil_tar.coal.name=煤焦油块 +item.oil_tar.crude.name=焦油块 +item.oil_tar.crack.name=裂化焦油块 +item.oil_tar.wax.name=氯化石油蜡 +item.oil_tar.wood.name=木焦油块 item.ore.asbestos=石棉 item.ore.borax=硼砂 item.ore.copper=铜 @@ -3060,28 +3167,31 @@ item.ore.iron=铁 item.ore.niobium=铌 item.ore.titanium=钛 item.ore.tungsten=钨 -item.ore_bedrock.name=基岩%s矿 -item.ore_byproduct.b_aluminium.name=铝晶体碎片 -item.ore_byproduct.b_bismuth.name=铋晶体碎片 -item.ore_byproduct.b_calcium.name=钙晶体碎片 -item.ore_byproduct.b_copper.name=铜晶体碎片 -item.ore_byproduct.b_iron.name=铁晶体碎片 -item.ore_byproduct.b_lead.name=铅晶体碎片 -item.ore_byproduct.b_lithium.name=锂晶体碎片 -item.ore_byproduct.b_silicon.name=硅晶体碎片 -item.ore_byproduct.b_sulfur.name=硫晶体碎片 -item.ore_byproduct.b_titanium.name=钛晶体碎片 -item.ore_centrifuged.name=离心%s矿 -item.ore_cleaned.name=清洁%s矿 -item.ore_deepcleaned.name=深清洁%s矿 -item.ore_enriched.name=富集%s矿 -item.ore_nitrated.name=硝化%s矿 -item.ore_nitrocrystalline.name=亚硝基结晶%s矿 -item.ore_purified.name=净化%s矿 -item.ore_separated.name=分离%s矿 +item.ore_bedrock.name=%s 基岩矿粉 +item.ore_byproduct.b_aluminium.name=结晶铝碎片 +item.ore_byproduct.b_bismuth.name=结晶铋碎片 +item.ore_byproduct.b_calcium.name=结晶钙碎片 +item.ore_byproduct.b_copper.name=结晶铜碎片 +item.ore_byproduct.b_iron.name=结晶铁碎片 +item.ore_byproduct.b_lead.name=结晶铅碎片 +item.ore_byproduct.b_lithium.name=结晶锂碎片 +item.ore_byproduct.b_silicon.name=结晶硅碎片 +item.ore_byproduct.b_sulfur.name=结晶硫碎片 +item.ore_byproduct.b_titanium.name=结晶钛碎片 +item.ore_centrifuged.name=离心 %s 基岩矿粉 +item.ore_cleaned.name=洗净 %s 基岩矿粉 +item.ore_deepcleaned.name=深度清洁 %s 基岩矿粉 +item.ore_enriched.name=富集 %s 基岩矿粉 +item.ore_nitrated.name=硝化 %s 基岩矿粉 +item.ore_nitrocrystalline.name=硝化结晶 %s 基岩矿粉 +item.ore_purified.name=纯化 %s 基岩矿粉 +item.ore_raadcleaned.name=辐照清洁 %s 基岩矿粉 +item.ore_seared.name=灼烧 %s 基岩矿粉 +item.ore_separated.name=分离提纯 %s 基岩矿粉 item.overfuse.name=奇异螺丝刀 -item.overfuse.desc=说啥? +item.overfuse.desc=说啥? item.oxy_mask.name=氧气面罩 + item.paa_boots.name=PaA "好鞋" item.paa_legs.name=PaA加固护腿 item.paa_plate.name=PaA加固护胸 @@ -3089,10 +3199,10 @@ item.padlock.name=挂锁 item.padlock_reinforced.name=加强挂锁 item.padlock_rusty.name=生锈的挂锁 item.padlock_unbreakable.name=牢不可破的挂锁 -item.pads_rubber.name=橡胶垫 -item.pads_slime.name=粘液垫 -item.pads_static.name=静电垫 -item.pancake.name=用废金属、螺栓和宝石粉做成的薄饼 +item.pads_rubber.name=橡胶护垫 +item.pads_slime.name=粘液护垫 +item.pads_static.name=静力护垫 +item.pancake.name=用废金属, 钉子和宝石粉做成的薄饼 item.part_beryllium.name=铍粉盒 item.part_carbon.name=碳粉盒 item.part_copper.name=铜粉盒 @@ -3101,131 +3211,131 @@ item.part_generic.piston_hydraulic.name=液压活塞 item.part_generic.piston_pneumatic.name=气动活塞 item.part_lithium.name=锂粉盒 item.part_plutonium.name=钚粉盒 -item.particle_aelectron.name=正电子胶囊 -item.particle_amat.name=反物质胶囊 -item.particle_aproton.name=反质子胶囊 -item.particle_aschrab.name=反Sa326胶囊 -item.particle_copper.name=铜离子胶囊 -item.particle_dark.name=暗物质胶囊 -item.particle_digamma.name=§c迪伽马粒子胶囊§r -item.particle_empty.name=空粒子胶囊 -item.particle_higgs.name=希格斯玻色子胶囊 -item.particle_hydrogen.name=氢离子胶囊 -item.particle_lead.name=铅离子胶囊 -item.particle_lutece.name=Lutece镥准粒子胶囊 -item.particle_muon.name=μ介子胶囊 -item.particle_sparkticle.name=Spark粒子胶囊 -item.particle_strange.name=奇夸克胶囊 +item.particle_aelectron.name=正电子密封胶囊 +item.particle_amat.name=反物质密封胶囊 +item.particle_aproton.name=反质子密封胶囊 +item.particle_aschrab.name=反异变铀金属粒子密封胶囊 +item.particle_copper.name=铜离子密封胶囊 +item.particle_dark.name=暗物质密封胶囊 +item.particle_digamma.name=§cϝ伽马粒子§r +item.particle_empty.name=空的粒子密封胶囊 +item.particle_higgs.name=希格斯玻色子密封胶囊 +item.particle_hydrogen.name=氢离子密封胶囊 +item.particle_lead.name=铅离子密封胶囊 +item.particle_lutece.name=镥准粒子密封胶囊 +item.particle_muon.name=μ介子密封胶囊 +item.particle_sparkticle.name=闪闪粒子密封胶囊 +item.particle_strange.name=奇异夸克密封胶囊 item.particle_tachyon.name=超光速粒子密封胶囊 -item.parts_legendary.name=传奇零件 +item.parts_legendary.name=传奇的零件 item.peas.name=豌豆 +item.pch.name=马蹄锤 item.pedestal_steel.name=钢底座 -item.pellet_advanced.name=高级Watz性能增强剂 +item.pellet_advanced.name=高级Watz瓦茨发电塔性能增强剂 item.pellet_antimatter.name=反物质团 item.pellet_beryllium.name=铍慢化靶丸 item.pellet_buckshot.name=铅弹丸 -item.pellet_canister.name=榴霰弹弹丸 +item.pellet_canister.name=榴霰弹 item.pellet_charged.name=电离粒子 -item.pellet_chlorophyte.name=叶绿弹丸 -item.pellet_claws.name=金属利爪 +item.pellet_chlorophyte.name=绿藻颗粒 +item.pellet_claws.name=锋利的金属破片 item.pellet_cluster.name=爆炸弹丸 -item.pellet_cluster.desc=用于多用途炸弹:$增加了一些额外的爆炸力! +item.pellet_cluster.desc=用于多用途炸弹:$增加额外的爆炸威力! item.pellet_coal.name=致密煤 item.pellet_coolant.name=冷却液组 item.pellet_flechette.name=箭霰弹 item.pellet_gas.name=毒气筒 -item.pellet_gas.desc=用于多用途炸弹:$*咳嗽*请停止! -item.pellet_hes.name=HES Watz靶丸 +item.pellet_gas.desc=用于多用途炸弹:$*咳咳 咳* 舅...舅舅偶! +item.pellet_hes.name=HES Watz瓦茨发电塔靶丸 item.pellet_lead.name=铅反射靶丸 -item.pellet_les.name=LES Watz靶丸 -item.pellet_mercury.name=水银弹丸 -item.pellet_mes.name=MES Watz靶丸 -item.pellet_meteorite.name=陨石弹丸 -item.pellet_neptunium.name=镎Watz靶丸 -item.pellet_rtg.name=钚238放射性同位素燃料靶丸 -item.pellet_rtg.desc=无限能量的RTG靶丸!(差不多) -item.pellet_rtg_actinium.name=锕放射性同位素燃料靶丸 -item.pellet_rtg_actinium.desc= -item.pellet_rtg_americium.name=镅-241放射性同位素燃料靶丸 -item.pellet_rtg_americium.desc=稀有可靠,好的老镅! -item.pellet_rtg_berkelium.name=锫放射性同位素燃料靶丸 +item.pellet_les.name=LES Watz瓦茨发电塔靶丸 +item.pellet_mercury.name=汞颗粒 +item.pellet_mes.name=MES Watz瓦茨发电塔靶丸 +item.pellet_meteorite.name=陨石颗粒 +item.pellet_neptunium.name=镎Watz瓦茨发电塔靶丸 +item.pellet_rtg.name=钚-238RTG放射性同位素燃料靶丸 +item.pellet_rtg.desc=可无限提供能量的RTG放射性同位素燃料靶丸!(基本上) +item.pellet_rtg_actinium.name=锕-227RTG放射性同位素燃料靶丸 +item.pellet_rtg_actinium.desc=散发着蓝色和β射线的辉光 +item.pellet_rtg_americium.name=镅-241RTG放射性同位素燃料靶丸 +item.pellet_rtg_americium.desc=稀有可靠的优质古镅! +item.pellet_rtg_berkelium.name=锫RTG放射性同位素燃料靶丸 item.pellet_rtg_berkelium.desc= -item.pellet_rtg_cobalt.name=钴-60放射性同位素燃料靶丸 -item.pellet_rtg_cobalt.desc=不是最好的RTG,但对伽马辐射很好! -item.pellet_rtg_depleted.bismuth.name=枯竭铋放射性同位素燃料靶丸 -item.pellet_rtg_depleted.lead.name=枯竭铅放射性同位素燃料靶丸 -item.pellet_rtg_depleted.neptunium.name=枯竭镎放射性同位素燃料靶丸 -item.pellet_rtg_depleted.mercury.name=枯竭汞放射性同位素燃料靶丸 -item.pellet_rtg_depleted.nickel.name=枯竭镍放射性同位素燃料靶丸 -item.pellet_rtg_depleted.zirconium.name=枯竭锆放射性同位素燃料靶丸 -item.pellet_rtg_lead.name=铅-209 放射性同位素燃料靶丸 -item.pellet_rtg_lead.desc=接触会导致立即死亡。 -item.pellet_rtg_gold.name=金-198放射性同位素燃料靶丸 -item.pellet_rtg_gold.desc=由稀有的、高度不稳定的金同位素制成。 -item.pellet_rtg_polonium.name=钋210放射性同位素燃料靶丸 -item.pellet_rtg_polonium.desc=更多粉末状RTG靶丸,由最好的钋制成! -item.pellet_rtg_strontium.name=锶-90放射性同位素燃料靶丸 -item.pellet_rtg_strontium.desc= -item.pellet_rtg_radium.name=镭-226放射性同位素燃料靶丸 -item.pellet_rtg_radium.desc=伟大的启动靶丸,来自全天然镭! -item.pellet_rtg_weak.name=贫铀放射性同位素燃料靶丸 -item.pellet_rtg_weak.desc=更便宜更弱的靶丸,含有更多的铀238! -item.pellet_schrabidium.name=纯Sa326Watz靶丸 +item.pellet_rtg_depleted.bismuth.name=衰竭的铋RTG放射性同位素燃料靶丸 +item.pellet_rtg_depleted.lead.name=衰竭的铅RTG放射性同位素燃料靶丸 +item.pellet_rtg_depleted.neptunium.name=衰竭的镎RTG放射性同位素燃料靶丸 +item.pellet_rtg_depleted.mercury.name=衰竭的汞RTG放射性同位素燃料靶丸 +item.pellet_rtg_depleted.zirconium.name=衰竭的锆RTG放射性同位素燃料靶丸 +item.pellet_rtg_lead.name=铅-209RTG放射性同位素燃料靶丸 +item.pellet_rtg_lead.desc=接触会立即导致死亡. +item.pellet_rtg_gold.name=金-198RTG放射性同位素燃料靶丸 +item.pellet_rtg_gold.desc=由稀有, 高度不稳定的金同位素制成. +item.pellet_rtg_polonium.name=钋-210RTG放射性同位素燃料靶丸 +item.pellet_rtg_polonium.desc=更强力的RTG靶丸,由最优质的钋制成! +item.pellet_rtg_strontium.name=锶-90RTG放射性同位素燃料靶丸 +item.pellet_rtg_strontium.desc=为加利福尼亚州所知... +item.pellet_rtg_radium.name=镭-226RTG放射性同位素燃料靶丸 +item.pellet_rtg_radium.desc=伟大的激发式放射性同位素燃料靶丸, 来自全天然镭! +item.pellet_rtg_weak.name=贫铀RTG放射性同位素燃料靶丸 +item.pellet_rtg_weak.desc=更廉价但更弱的弹丸, 现在含有更多的 U238! +item.pellet_schrabidium.name=纯Sa326异变铀金属Watz瓦茨发电塔靶丸 item.photo_panel.name=光伏板 -item.pile_rod_boron.name=芝加哥反应堆 控制棒 -item.pile_rod_boron.desc=§9[中子吸收器]$§E单击以切换 +item.pile_rod_boron.name=芝加哥反应堆控制棒 +item.pile_rod_boron.desc=§9[中子吸收棒]$§e单击以切换 item.pile_rod_detector.name=芝加哥反应堆控制/探测棒 item.pile_rod_detector.desc=§9[中子探测器/吸收器]$§e使用拆弹器增加/减少中子通量限值$§e使用螺丝刀检查中子通量 item.pile_rod_lithium.name=芝加哥反应堆锂燃料棒 item.pile_rod_lithium.desc=§a[可增殖燃料棒]$§e使用手钻检查棒芯 -item.pile_rod_plutonium.name=芝加哥反应堆 钚棒 +item.pile_rod_plutonium.name=芝加哥反应堆钚棒 item.pile_rod_plutonium.desc=§d[中子源棒] item.pile_rod_pu239.name=芝加哥反应堆增殖铀棒 -item.pile_rod_pu239.desc=§a[可反应核燃料]$§e富含钚-239 -item.pile_rod_source.name=芝加哥反应堆 镭226-铍中子源 +item.pile_rod_pu239.desc=§a[可反应核燃料]$§e富含钚-239. +item.pile_rod_source.name=芝加哥反应堆镭226-铍中子源 item.pile_rod_source.desc=§d[中子源棒] -item.pile_rod_uranium.name=芝加哥反应堆 铀棒 +item.pile_rod_uranium.name=芝加哥反应堆铀棒 item.pile_rod_uranium.desc=§a[可反应核燃料]$§e使用手钻取堆芯样本 item.pill_iodine.name=碘丸 -item.pill_iodine.desc=消除负面buff +item.pill_iodine.desc=移除身上所有的负面效果 item.pill_herbal.name=草药膏 item.pill_herbal.desc=有效治疗肺部疾病和轻度辐射中毒$有副作用 item.pin.name=发夹 -item.pin.desc=“*未修改*撬开标准锁的成功率约为10%。 +item.pin.desc=撬开常规锁的标准成功率约为10%%. item.pipes_steel.name=钢管 -item.pipes_steel.desc=为了避免合成冲突,所以造价如此高昂 -item.piston_selenium.name=星型发动机活塞 -item.piston_set_desh.name=Desh活塞组 -item.piston_set_dura.name=高速钢活塞组 -item.piston_set_starmetal.name=星辉活塞组 -item.piston_set_steel.name=钢活塞组 +item.pipes_steel.desc=为了逃税,所以造价如此高昂. +item.piston_selenium.name=星型内燃发电机活塞 +item.piston_set_desh.name=德什制活塞组 +item.piston_set_dura.name=高速钢制活塞组 +item.piston_set_starmetal.name=星辉金属制活塞组 +item.piston_set_steel.name=钢制活塞组 item.plan_c.name=C计划 item.plan_c.desc=致死 +item.plant_item.mustardwillow.name=芥柳叶 item.plant_item.rope.name=麻绳 item.plant_item.tobacco.name=烟叶 item.plate_advanced_alloy.name=高级合金板 item.plate_aluminium.name=铝板 -item.plate_armor_ajr.name=铁皮装甲板 +item.plate_armor_ajr.name=§8§l§n[铁蹄]§r装甲板 item.plate_armor_dnt.name=DNT装甲板 item.plate_armor_fau.name=Fau装甲板 -item.plate_armor_hev.name=反应装甲板 -item.plate_armor_lunar.name=月球镀层 -item.plate_armor_titanium.name=钛装甲板 +item.plate_armor_hev.name=反应式装甲板 +item.plate_armor_lunar.name=§b§l§m[月 神]§r 装甲板 +item.plate_armor_titanium.name=钛制装甲板 item.plate_bismuth.name=铋复合板 -item.plate_bismuth.desc=伙计们,这是铋的炼金术符号,我发誓。 +item.plate_bismuth.desc=伙计们,这是铋的炼金术符号,我发誓. +item.plate_cast.name= %s 制铸造板 item.plate_combine_steel.name=CMB钢板 item.plate_copper.name=铜板 item.plate_dalekanium.name=愤怒的金属 -item.plate_desh.name=Desh复合板 +item.plate_desh.name=德什复合板 item.plate_dineutronium.name=双聚中子态素复合板 -item.plate_euphemium.name=Ep复合板 -item.plate_fuel_mox.name=MOX 板状燃料 -item.plate_fuel_pu238be.name=钚238-铍 板状燃料 -item.plate_fuel_pu239.name=高浓度钚-239 板状燃料 -item.plate_fuel_ra226be.name=镭226-铍 板状燃料 -item.plate_fuel_sa326.name=高浓度Sa326 板状燃料 -item.plate_fuel_u233.name=高浓度铀-233 板状燃料 -item.plate_fuel_u235.name=高浓度铀-235 板状燃料 +item.plate_euphemium.name=Ep元素复合板 +item.plate_fuel_mox.name=MOX板状燃料元件 +item.plate_fuel_pu238be.name=钚238-铍板状燃料元件 +item.plate_fuel_pu239.name=高浓缩度钚-239板状燃料元件 +item.plate_fuel_ra226be.name=镭226-铍板状燃料元件 +item.plate_fuel_sa326.name=高浓缩度Sa326板状燃料元件 +item.plate_fuel_u233.name=高浓缩度铀-233板状燃料元件 +item.plate_fuel_u235.name=高浓缩度铀-235板状燃料元件 item.plate_gold.name=金板 item.plate_iron.name=铁板 item.plate_kevlar.name=凯夫拉陶瓷复合材料 @@ -3234,7 +3344,7 @@ item.plate_mixed.name=合金板 item.plate_paa.name=PaA合金板 item.plate_polymer.name=绝缘体 item.plate_saturnite.name=土星板 -item.plate_schrabidium.name=Sa326板 +item.plate_schrabidium.name=Sa326异变铀金属板 item.plate_steel.name=钢板 item.plate_titanium.name=钛板 item.polaroid.name=偏光片 @@ -3243,7 +3353,7 @@ item.powder_actinium_tiny.name=小撮锕粉 item.powder_advanced_alloy.name=高级合金粉 item.powder_aluminium.name=铝粉 item.powder_asbestos.name=石棉粉 -item.powder_asbestos.desc=§o\"Sniffffffff- MHHHHHHMHHHHHHHHH\"§r +item.powder_asbestos.desc=§o\"我就闻亿下..嗯,嗯..喔哦哦哦哦哦!\"§r item.powder_astatine.name=砹粉 item.powder_at209.name=砹-209粉 item.powder_au198.name=金-198粉 @@ -3256,6 +3366,7 @@ item.powder_borax.name=硼砂 item.powder_boron.name=硼粉 item.powder_boron_tiny.name=小撮硼粉 item.powder_bromine.name=溴粉 +item.powder_cadmium.name=镉粉 item.powder_caesium.name=铯粉 item.powder_calcium.name=钙粉 item.powder_cerium.name=铈粉 @@ -3267,29 +3378,30 @@ item.powder_coal.name=煤粉 item.powder_coal_tiny.name=小撮煤粉 item.powder_cobalt.name=钴粉 item.powder_cobalt_tiny.name=小撮钴粉 -item.powder_coltan.name=纯钽铁矿 -item.powder_coltan_ore.name=粉碎的钶钽铁矿石 +item.powder_coltan.name=纯化钽铁矿 +item.powder_coltan_ore.name=粉碎钶钽铁矿石 item.powder_combine_steel.name=CMB钢粉 item.powder_copper.name=铜粉 item.powder_cs137.name=铯-137粉 item.powder_cs137_tiny.name=小撮铯-137粉 item.powder_daffergon.name=达夫贡粉 -item.powder_desh.name=Desh粉 -item.powder_desh_mix.name=Desh混合物 -item.powder_desh_ready.name=DeshReady混合物 +item.powder_desh.name=德什粉 +item.powder_desh_mix.name=德什混合物 +item.powder_desh_ready.name=德什Ready™混合物 item.powder_diamond.name=钻石粉 item.powder_dineutronium.name=双聚中子态素粉 item.powder_dura_steel.name=高速钢粉 item.powder_emerald.name=绿宝石粉 -item.powder_euphemium.name=Ep粉 -item.powder_euphemium.desc=粉红色$尝起来像草莓。 +item.powder_euphemium.name=Ep元素粉 +item.powder_fertilizer.name=工业肥料 +item.powder_euphemium.desc=粉色的粉末..$尝起来像草莓. item.powder_fire.name=火焰粉 -item.powder_fire.desc=用于多用途炸弹:燃烧弹很有趣! -item.powder_flux.name=助熔剂 +item.powder_fire.desc=用于多用途炸弹:$燃烧弹很有趣! +item.powder_flux.name=助焊剂 item.powder_gold.name=金粉 item.powder_i131.name=碘-131粉 item.powder_i131_tiny.name=小撮碘-131粉 -item.powder_ice.name=冷冻粉 +item.powder_ice.name=超低温粉 item.powder_impure_osmiridium.name=不纯铱锇粉 item.powder_iodine.name=碘粉 item.powder_iron.name=铁粉 @@ -3309,32 +3421,32 @@ item.powder_neodymium_tiny.name=小撮钕粉 item.powder_neptunium.name=镎粉 item.powder_niobium.name=铌粉 item.powder_niobium_tiny.name=小撮铌粉 -item.powder_nitan_mix.name=Nitan混合物 +item.powder_nitan_mix.name=Nitan尼塔姆混合物 item.powder_paleogenite.name=古近纪岩石粉末 item.powder_paleogenite_tiny.name=小撮古近纪岩石粉末 item.powder_plutonium.name=钚粉 item.powder_poison.name=剧毒粉 -item.powder_poison.desc=用于多用途炸弹:警告:有毒! -item.powder_polonium.name=钋粉 +item.powder_poison.desc=用于多用途炸弹:$警告: 化学毒性! +item.powder_polonium.name=钋-210粉 item.powder_polymer.name=聚合物粉 item.powder_power.name=能量粉 item.powder_quartz.name=石英粉 item.powder_ra226.name=镭-226粉 item.powder_red_copper.name=紫铜粉 item.powder_reiium.name=雷恩粉 -item.powder_sawdust.name=锯末 -item.powder_schrabidate.name=Sa酸铁粉 -item.powder_schrabidium.name=Sa326粉 +item.powder_sawdust.name=锯屑 +item.powder_schrabidate.name=Sa326元素酸化铁粉末 +item.powder_schrabidium.name=Sa326异变铀金属粉 item.powder_semtex_mix.name=塞姆汀塑胶炸药混合物 -item.powder_spark_mix.name=Spark闪闪奥术混合物 +item.powder_spark_mix.name=Spark闪闪魔法混合物 item.powder_sr90.name=锶-90粉 -item.powder_sr90_tiny.name=小撮锶-90粉末 +item.powder_sr90_tiny.name=小撮锶-90粉 item.powder_steel.name=钢粉 item.powder_steel_tiny.name=小撮钢粉 item.powder_strontium.name=锶粉 item.powder_tantalium.name=钽粉 -item.powder_tantalium.desc=“钽” -item.powder_tantalium.desc.P11=又名钽。 +item.powder_tantalium.desc='Tantalum' +item.powder_tantalium.desc.P11=也写作这个. item.powder_tcalloy.name=锝-钢粉 item.powder_tektite.name=熔融石粉 item.powder_tennessine.name=Ts粉 @@ -3342,7 +3454,7 @@ item.powder_thermite.name=铝热剂 item.powder_thorium.name=钍粉 item.powder_titanium.name=钛粉 item.powder_tungsten.name=钨粉 -item.powder_unobtainium.name=难得素粉 +item.powder_unobtainium.name=阿诺布汀粉 item.powder_uranium.name=铀粉 item.powder_verticium.name=韦德赛粉 item.powder_weidanium.name=魏丹粉 @@ -3350,7 +3462,7 @@ item.powder_xe135.name=氙-135粉 item.powder_xe135_tiny.name=小撮氙-135粉 item.powder_yellowcake.name=黄饼 item.powder_zirconium.name=锆粉 -item.power_net_tool.name=电缆网络分析工具 +item.power_net_tool.name=电网分析工具 item.primer_357.name=.357马格南底火[x24] item.primer_44.name=.44马格南底火[x24] item.primer_50.name=大口径底火[x12] @@ -3359,104 +3471,102 @@ item.primer_buckshot.name=鹿弹底火[x12] item.protection_charm.name=守护项链 item.prototype_kit.name=原型 套件 item.pudding.name=布丁 -item.quartz_plutonium.name=深成石英 +item.quartz_plutonium.name=冥王星石英 item.radaway.name=消辐宁 item.radaway_flush.name=超级消辐宁 item.radaway_strong.name=强效消辐宁 item.radx.name=防辐射药 -item.radx.desc=在3分钟内增加0.2(37%)的抗辐射能力 -item.rag.name=布 -item.rag_damp.name=湿布 -item.rag_piss.name=沾有尿的布 -item.rbmk_fuel_balefire.name=RBMK反应堆野火燃料棒 -item.rbmk_fuel_balefire_gold.name=RBMK反应堆激活态金-198燃料棒 -item.rbmk_fuel_drx.name=§cRBMK反应堆F迪伽马粒子燃料棒§r -item.rbmk_fuel_empty.name=空 RBMK反应堆燃料棒 -item.rbmk_fuel_flashlead.name=RBMK反应堆闪光铅燃料棒 -item.rbmk_fuel_hea241.name=HEA-241 RBMK反应堆高浓缩度镅-241燃料棒 -item.rbmk_fuel_hea242.name=HEA-242 RBMK反应堆高浓缩度镅-242燃料棒 -item.rbmk_fuel_heaus.name=HEAus RBMK反应堆高浓缩度奥斯燃料棒 -item.rbmk_fuel_hen.name=HEN RBMK反应堆高浓缩度镎燃料棒 -item.rbmk_fuel_hes.name=HES RBMK反应堆高浓缩度Sa326燃料棒 -item.rbmk_fuel_hep.name=HEP-239 RBMK反应堆高浓缩度钚-239燃料棒 -item.rbmk_fuel_hep241.name=HEP-241 RBMK反应堆高浓缩度钚-241燃料棒 -item.rbmk_fuel_heu233.name=HEU-233 RBMK反应堆高浓缩度铀-233燃料棒 -item.rbmk_fuel_heu235.name=HEU-235 RBMK反应堆高浓缩度铀-235燃料棒 -item.rbmk_fuel_lea.name=LEA RBMK反应堆低浓缩度镅-242燃料棒 -item.rbmk_fuel_leaus.name=LEAus RBMK反应堆低浓缩度奥斯燃料棒 -item.rbmk_fuel_lep.name=LEP RBMK反应堆低浓缩度钚-239燃料棒 -item.rbmk_fuel_les.name=LES RBMK反应堆低浓缩度Sa326燃料棒 -item.rbmk_fuel_mea.name=MEA RBMK反应堆中浓缩度镅-242燃料棒 -item.rbmk_fuel_men.name=MEN RBMK反应堆中浓缩度镎-237燃料棒 -item.rbmk_fuel_mep.name=MEP RBMK反应堆中浓缩度钚-239燃料棒 -item.rbmk_fuel_mes.name=MES RBMK中浓缩度Sa326燃料棒 -item.rbmk_fuel_meu.name=MEU RBMK中浓缩度铀-235燃料棒 -item.rbmk_fuel_mox.name=MOX RBMK反应堆燃料棒 -item.rbmk_fuel_po210be.name=钋210-铍 RBMK反应堆中子源 -item.rbmk_fuel_pu238be.name=钚238-铍 RBMK反应堆中子源 -item.rbmk_fuel_ra226be.name=镭226-铍 RBMK反应堆中子源 -item.rbmk_fuel_thmeu.name=ThMEU RBMK反应堆中浓缩度铀-235导向钍燃料棒 -item.rbmk_fuel_ueu.name=NU RBMK反应堆未浓缩铀燃料棒 -item.rbmk_fuel_zfb_am_mix.name=ZFB 燃料级镅RBMK反应堆燃料棒 -item.rbmk_fuel_zfb_bismuth.name=ZFB 铋RBMK反应堆燃料棒 -item.rbmk_fuel_zfb_pu241.name=ZFB 钚-241RBMK反应堆燃料棒 -item.rbmk_lid.name=RBMK反应堆覆盖层 -item.rbmk_lid_glass.name=RBMK反应堆玻璃覆盖层 +item.radx.desc=增加0.2(37%%)的抗辐射能力,持续3分钟 +item.rag_piss.name=尿湿润的破布 +item.rbmk_fuel_balefire.name=RBMK石墨式反应堆野火燃料棒 +item.rbmk_fuel_balefire_gold.name=激活态金-198 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_drx.name=§cϜ迪伽马粒子 RBMK石墨式反应堆燃料棒§r +item.rbmk_fuel_empty.name=空 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_flashlead.name=激活态铅 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_hea241.name=HEA-241 高浓缩度镅-241 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_hea242.name=HEA-242 高浓缩度镅-242 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_heaus.name=HEAus 高浓缩度奥金 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_hen.name=HEN 高浓缩度镎-237 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_hes.name=HES 高浓缩度Sa-326 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_hep.name=HEP-239 高浓缩度钚-239 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_hep241.name=HEP-241 高浓缩度钚-241 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_heu233.name=HEU-233 高浓缩度铀-233 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_heu235.name=HEU-235 高浓缩度铀-235 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_lea.name=LEA 低浓缩度镅-242 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_leaus.name=LEAus 低浓缩度奥金 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_lep.name=LEP 低浓缩度钚-239 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_les.name=LES 低浓缩度Sa-326 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_mea.name=MEA 中浓缩度镅-242 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_men.name=MEN 中浓缩度镎-237 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_mep.name=MEP 中浓缩度钚-239 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_mes.name=MES 中浓缩度Sa-326 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_meu.name=MEU 中浓缩度铀-235 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_mox.name=MOX 钚-铀混合RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_po210be.name=钋210-铍RBMK石墨式反应堆中子源 +item.rbmk_fuel_pu238be.name=钚238-铍RBMK石墨式反应堆中子源 +item.rbmk_fuel_ra226be.name=镭226-铍RBMK石墨式反应堆中子源 +item.rbmk_fuel_thmeu.name=ThMEU 中浓缩度铀-235导向钍 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_ueu.name=NU 未浓缩铀 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_zfb_am_mix.name=ZFB 锆混合反应堆级镅快速增殖式RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_zfb_bismuth.name=ZFB 锆混合铋快速增殖式RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_zfb_pu241.name=ZFB 锆混合钚-241快速增殖式RBMK石墨式反应堆燃料棒 +item.rbmk_lid.name=RBMK石墨式反应堆覆盖层 +item.rbmk_lid_glass.name=RBMK石墨式反应堆玻璃覆盖层 item.rbmk_pellet_balefire.name=野火燃料芯块 item.rbmk_pellet_balefire_gold.name=激活态金-198燃料芯块 -item.rbmk_pellet_drx.name=§cF迪伽马粒子燃料芯块§r -item.rbmk_pellet_flashlead.name=闪光铅燃料芯块 -item.rbmk_pellet_hea241.name=HEA-241 高浓缩度镅-241料芯块 -item.rbmk_pellet_hea242.name=HEA-242 高浓缩度镅-242燃料芯块 -item.rbmk_pellet_heaus.name=HEAus 高浓缩度奥斯燃料芯块 -item.rbmk_pellet_hen.name=HEN 高浓缩度镎燃料芯块 -item.rbmk_pellet_hep239.name=HEP-239 高浓缩度钚-239燃料芯块 -item.rbmk_pellet_hep241.name=HEP-241 高浓缩度钚-241燃料芯块 -item.rbmk_pellet_heu233.name=HEU-233 高浓缩度铀-233燃料芯块 -item.rbmk_pellet_heu235.name=HEU-235 高浓缩度铀-235燃料芯块 -item.rbmk_pellet_hes.name=HES 高浓缩度Sa-326燃料芯块 -item.rbmk_pellet_lea.name=LEA 低浓缩度镅-242燃料芯块 -item.rbmk_pellet_leaus.name=LEAus 低浓缩度奥斯燃料芯块 -item.rbmk_pellet_lep.name=LEP 低浓缩度钚-239燃料芯块 -item.rbmk_pellet_les.name=LES 低浓缩度Sa-326燃料芯块 -item.rbmk_pellet_mea.name=MEA 中浓缩度镅-242燃料芯块 -item.rbmk_pellet_men.name=MEN 中浓缩度镎-237燃料芯块 -item.rbmk_pellet_mep.name=MEP 中浓缩度钚-239燃料芯块 -item.rbmk_pellet_mes.name=MES 中浓缩度Sa-326燃料芯块 -item.rbmk_pellet_meu.name=MEU 中浓缩度铀-235燃料芯块 +item.rbmk_pellet_drx.name=§cϜ迪伽马粒子燃料芯块§r +item.rbmk_pellet_flashlead.name=激活态铅燃料芯块 +item.rbmk_pellet_hea241.name=HEA-241高浓缩度镅-241燃料芯块 +item.rbmk_pellet_hea242.name=HEA-242高浓缩度镅-242燃料芯块 +item.rbmk_pellet_heaus.name=HEAus高浓缩度奥金燃料芯块 +item.rbmk_pellet_hen.name=HEN高浓缩度镎-237燃料芯块 +item.rbmk_pellet_hep239.name=HEP-239高浓缩度钚-239燃料芯块 +item.rbmk_pellet_hep241.name=HEP-241高浓缩度钚-241燃料芯块 +item.rbmk_pellet_heu233.name=HEU-233高浓缩度铀-233燃料芯块 +item.rbmk_pellet_heu235.name=HEU-235高浓缩度铀-235燃料芯块 +item.rbmk_pellet_hes.name=HES高浓缩度Sa-326燃料芯块 +item.rbmk_pellet_lea.name=LEA低浓缩度镅-242燃料芯块 +item.rbmk_pellet_leaus.name=LEAus低浓缩度奥金燃料芯块 +item.rbmk_pellet_lep.name=LEP低浓缩度钚-239燃料芯块 +item.rbmk_pellet_les.name=LES低浓缩度Sa-326燃料芯块 +item.rbmk_pellet_mea.name=MEA中浓缩度镅-242燃料芯块 +item.rbmk_pellet_men.name=MEN中浓缩度镎-237燃料芯块 +item.rbmk_pellet_mep.name=MEP中浓缩度钚-239燃料芯块 +item.rbmk_pellet_mes.name=MES中浓缩度Sa-326燃料芯块 +item.rbmk_pellet_meu.name=MEU中浓缩度铀-235燃料芯块 item.rbmk_pellet_mox.name=MOX燃料芯块 -item.rbmk_pellet_po210be.name=钋210-铍 中子源芯块 -item.rbmk_pellet_pu238be.name=钚238-铍 中子源芯块 -item.rbmk_pellet_ra226be.name=镭226-铍 中子源芯块 -item.rbmk_pellet_thmeu.name=ThMEU 浓缩度铀-235导向钍燃料芯块 +item.rbmk_pellet_po210be.name=钋210-铍中子源芯块 +item.rbmk_pellet_pu238be.name=钚238-铍中子源芯块 +item.rbmk_pellet_ra226be.name=镭226-铍中子源芯块 +item.rbmk_pellet_thmeu.name=ThMEU浓缩度铀-235导向钍燃料芯块 item.rbmk_pellet_ueu.name=未浓缩铀燃料芯块 -item.rbmk_pellet_zfb_am_mix.name=ZFB 燃料级镅燃料芯块 -item.rbmk_pellet_zfb_bismuth.name=ZFB 铋燃料芯块 -item.rbmk_pellet_zfb_pu241.name=ZFB 钚-241燃料芯块 +item.rbmk_pellet_zfb_am_mix.name=ZFB锆混合反应堆级镅快速增殖式燃料芯块 +item.rbmk_pellet_zfb_bismuth.name=ZFB锆混合铋快速增殖式燃料芯块 +item.rbmk_pellet_zfb_pu241.name=ZFB锆混合钚-241快速增殖式燃料芯块 item.rbmk_tool.name=RBMK石墨式反应堆控制台连接装置 -item.rbmk_tool.desc=按住Shift右击RBMK石墨式反应堆保存其坐标,$按住Shift右击控制台以连接反应堆! +item.rbmk_tool.desc=潜行并右击RBMK石墨式反应堆保存其坐标,$潜入并右击控制台以连接反应堆! item.rbmk_tool.linked=反应堆坐标已记录! item.rbmk_tool.set=反应堆已连接! -item.reacher.name=钨长臂夹 +item.reacher.name=钨制长钳 item.reactor_core.name=增殖反应堆核心 item.reactor_sensor.name=反应堆遥感器 item.record.glass.desc=? ? ? -item.record.lc.desc=Valve - Diabolic Adrenaline Guitar/Lambda Core -item.record.ss.desc=Valve - Sector Sweep -item.record.vc.desc=Valve - Vortal Combat +item.record.lc.desc=Valve - 恶魔肾上腺素吉他/Lambda核心 +item.record.ss.desc=Valve - 扫描扇区 +item.record.vc.desc=Valve - 斗争漩涡 item.redcoil_capacitor.name=红圈电容器 item.redstone_depleted.name=不饱和红石粉 item.redstone_sword.name=红石剑 item.reer_graar.name=The Reer Graar item.remote.name=损坏的遥控器 item.ring_pull.name=拉环 -item.ring_starmetal.name=§9星辉拉环§r +item.ring_starmetal.name=§9星辉金属环§r item.robes_boots.name=战地靴 item.robes_helmet.name=休闲兜帽 item.robes_legs.name=休闲裤 item.robes_plate.name=休闲毛衣 item.rocket_fuel.name=固体燃料[火箭推进剂] -item.rod_empty.name=空燃料棒 +item.rod_empty.name=空棒 item.rod.lithium.name=锂棒 item.rod.tritium.name=氚棒 item.rod.co.name=钴棒 @@ -3474,25 +3584,25 @@ item.rod.rgp.name=反应堆级钚棒 item.rod.waste.name=核废料棒 item.rod.lead.name=铅棒 item.rod.uranium.name=铀棒 -item.rod_dual_empty.name=空双联燃料棒 +item.rod_dual_empty.name=空双联棒 item.rod_dual.lithium.name=双联锂棒 -item.rod_dual.tritium.name=氚双棒 +item.rod_dual.tritium.name=氚双联棒 item.rod_dual.co.name=双联钴棒 item.rod_dual.co60.name=双联钴-60棒 item.rod_dual.ra226.name=双联镭-226棒 item.rod_dual.ac227.name=双联锕-227棒 item.rod_dual.th232.name=双联钍-232棒 -item.rod_dual.thf.name=双联钍燃料棒 -item.rod_dual.u235.name=双联铀-235棒 +item.rod_dual.thf.name=钍燃料 双联棒 +item.rod_dual.u235.name=双联铀-235 棒 item.rod_dual.np237.name=双联镎-237棒 item.rod_dual.u238.name=双联铀-238棒 item.rod_dual.pu238.name=双联钚-238棒 item.rod_dual.pu239.name=双联钚-239棒 -item.rod_dual.rgp.name=双联反应堆级钚棒 +item.rod_dual.rgp.name= 双联反应堆级钚棒 item.rod_dual.waste.name=双联核废料棒 item.rod_dual.lead.name=双联铅棒 -item.rod_dual.uranium.name=双联铀棒 -item.rod_quad_empty.name=空四联燃料棒 +item.rod_dual.uranium.name=铀棒 +item.rod_quad_empty.name=空四联棒 item.rod_quad.lithium.name=四联锂棒 item.rod_quad.tritium.name=四联氚棒 item.rod_quad.co.name=四联钴棒 @@ -3500,145 +3610,145 @@ item.rod_quad.co60.name=四联钴-60棒 item.rod_quad.ra226.name=四联镭-226棒 item.rod_quad.ac227.name=四联锕-227棒 item.rod_quad.th232.name=四联钍-232棒 -item.rod_quad.thf.name=四联钍燃料棒 +item.rod_quad.thf.name= 四联钍燃料棒 item.rod_quad.u235.name=四联铀-235棒 item.rod_quad.np237.name=四联镎-237棒 item.rod_quad.u238.name=四联铀-238棒 item.rod_quad.pu238.name=四联钚-238棒 item.rod_quad.pu239.name=四联钚-239棒 -item.rod_quad.rgp.name=四联反应堆级钚棒 +item.rod_quad.rgp.name= 四联反应堆级钚棒 item.rod_quad.waste.name=四联核废料棒 -item.rod_quad.lead.name=四联铅棒 +item.rod_quad.lead.name=四联Lead 铅棒 item.rod_quad.uranium.name=四联铀棒 item.rod_australium.name=奥斯棒 -item.rod_balefire.name=野火燃料棒 -item.rod_balefire_blazing.name=炽热的野火燃料棒 +item.rod_balefire.name=BF燃料棒 +item.rod_balefire_blazing.name=炽热的BF燃料棒 item.rod_coolant.name=燃料棒[冷却液] item.rod_daffergon.name=达夫贡棒 -item.rod_dual_balefire.name=双联野火燃料棒 -item.rod_dual_balefire_blazing.name=炽热的双联野火燃料棒 +item.rod_dual_balefire.name=双联BF燃料棒 +item.rod_dual_balefire_blazing.name=炽热的双联BF燃料棒 item.rod_dual_coolant.name=双联燃料棒[冷却液] item.rod_dual_lead.name=双联铅棒 item.rod_dual_lithium.name=双联锂棒 -item.rod_dual_mox_fuel.name=核反应堆 双联MOX燃料棒 -item.rod_dual_mox_fuel_depleted.name=核反应堆 枯竭MOX燃料棒 +item.rod_dual_mox_fuel.name=双联MOX燃料棒 +item.rod_dual_mox_fuel_depleted.name=枯竭MOX燃料棒 item.rod_dual_neptunium.name=双联镎燃料棒 item.rod_dual_plutonium.name=双联钚棒 -item.rod_dual_plutonium_fuel.name=核反应堆 双联钚燃料棒 -item.rod_dual_plutonium_fuel_depleted.name=核反应堆 双联枯竭钚燃料棒 -item.rod_dual_polonium.name=双联钋棒 -item.rod_dual_pu238.name=双联钚-238燃料棒 -item.rod_dual_pu239.name=双联钚-239燃料棒 -item.rod_dual_pu240.name=双联钚-240燃料棒 -item.rod_dual_schrabidium.name=双联Sa326燃料棒 -item.rod_dual_schrabidium_fuel.name=核反应堆 双联Sa326燃料棒 -item.rod_dual_schrabidium_fuel_depleted.name=双联枯竭Sa326燃料棒 -item.rod_dual_solinium.name=双联Sa327燃料棒 -item.rod_dual_th232.name=双联钍-232燃料棒 +item.rod_dual_plutonium_fuel.name=双联钚燃料棒 +item.rod_dual_plutonium_fuel_depleted.name=双联枯竭钚燃料棒 +item.rod_dual_polonium.name=双联钋-210棒 +item.rod_dual_pu238.name=双联钚238燃料棒 +item.rod_dual_pu239.name=双联钚239燃料棒 +item.rod_dual_pu240.name=双联钚240燃料棒 +item.rod_dual_schrabidium.name=双联Sa326异变铀金属燃料棒 +item.rod_dual_schrabidium_fuel.name=双联Sa326异变铀金属燃料棒 +item.rod_dual_schrabidium_fuel_depleted.name=双联枯竭Sa326异变铀金属燃料棒 +item.rod_dual_solinium.name=双联Sa327索林燃料棒 +item.rod_dual_th232.name=双联钍232燃料棒 item.rod_dual_thorium_fuel.name=双联钍燃料棒 item.rod_dual_thorium_fuel_depleted.name=双联枯竭钍燃料棒 item.rod_dual_tritium.name=双联氚燃料棒 -item.rod_dual_u233.name=双联铀-233燃料棒 -item.rod_dual_u235.name=双联铀-235燃料棒 -item.rod_dual_u238.name=双联铀-238燃料棒 +item.rod_dual_u233.name=双联铀233燃料棒 +item.rod_dual_u235.name=双联铀235燃料棒 +item.rod_dual_u238.name=双联铀238燃料棒 item.rod_dual_uranium.name=双联铀棒 -item.rod_dual_uranium_fuel.name=核反应堆 双联铀燃料棒 -item.rod_dual_uranium_fuel_depleted.name=核反应堆 双联枯竭铀燃料棒 +item.rod_dual_uranium_fuel.name=双联铀燃料棒 +item.rod_dual_uranium_fuel_depleted.name=双联枯竭铀燃料棒 item.rod_dual_waste.name=双联核废料棒 item.rod_dual_water.name=双联燃料棒[水] -item.rod_euphemium.name=Ep棒 +item.rod_euphemium.name=Ep元素棒 item.rod_lead.name=铅棒 item.rod_lithium.name=锂棒 -item.rod_mox_fuel.name=核反应堆 MOX燃料棒 -item.rod_mox_fuel_depleted.name=核反应堆 枯竭MOX燃料棒 +item.rod_mox_fuel.name=MOX燃料棒 +item.rod_mox_fuel_depleted.name=枯竭MOX燃料棒 item.rod_neptunium.name=镎燃料棒 -item.rod_of_discord.name=混沌传送杖 item.rod_plutonium.name=钚棒 -item.rod_plutonium_fuel.name=核反应堆 钚燃料棒 -item.rod_plutonium_fuel_depleted.name=核反应堆 枯竭钚燃料棒 -item.rod_polonium.name=钋棒 -item.rod_pu238.name=钚-238燃料棒 -item.rod_pu239.name=钚-239燃料棒 -item.rod_pu240.name=钚-240燃料棒 -item.rod_quad_balefire.name=四联野火燃料棒 -item.rod_quad_balefire_blazing.name=炽热的四联野火燃料棒 +item.rod_of_discord.name=混沌传送法杖 +item.rod_plutonium_fuel.name=钚燃料棒 +item.rod_plutonium_fuel_depleted.name=枯竭钚燃料棒 +item.rod_polonium.name=钋-210棒 +item.rod_pu238.name=钚238燃料棒 +item.rod_pu239.name=钚239燃料棒 +item.rod_pu240.name=钚240燃料棒 +item.rod_quad_balefire.name=四联BF燃料棒 +item.rod_quad_balefire_blazing.name=炽热的四联BF燃料棒 item.rod_quad_coolant.name=四联燃料棒[冷却液] -item.rod_quad_euphemium.name=枯竭的四联Sa326燃料棒 +item.rod_quad_euphemium.name=枯竭的四联Sa326异变铀金属燃料棒 item.rod_quad_lead.name=四联铅棒 item.rod_quad_lithium.name=四联锂棒 -item.rod_quad_mox_fuel.name=核反应堆 四联MOX燃料棒 -item.rod_quad_mox_fuel_depleted.name=核反应堆 枯竭MOX燃料棒 +item.rod_quad_mox_fuel.name=四联MOX燃料棒 +item.rod_quad_mox_fuel_depleted.name=枯竭MOX燃料棒 item.rod_quad_neptunium.name=四联镎燃料棒 -item.rod_quad_plutonium.name=四联钚棒 +item.rod_quad_plutonium.name=四联钚燃料棒 item.rod_quad_plutonium_fuel.name=四联钚燃料棒 item.rod_quad_plutonium_fuel_depleted.name=四联枯竭钚燃料棒 -item.rod_quad_polonium.name=四联钋棒 -item.rod_quad_pu238.name=四联钚-238燃料棒 -item.rod_quad_pu239.name=四联钚-239燃料棒 -item.rod_quad_pu240.name=四联钚-240燃料棒 -item.rod_quad_schrabidium.name=四联Sa326燃料棒 -item.rod_quad_schrabidium_fuel.name=核反应堆 四联Sa326燃料棒 -item.rod_quad_schrabidium_fuel_depleted.name=核反应堆 四联枯竭Sa326燃料棒 -item.rod_quad_solinium.name=四联Sa327燃料棒 -item.rod_quad_th232.name=四联钍-232燃料棒 -item.rod_quad_thorium_fuel.name=核反应堆 四联钍燃料棒 +item.rod_quad_polonium.name=四联钋-210棒 +item.rod_quad_pu238.name=四联钚238燃料棒 +item.rod_quad_pu239.name=四联钚239燃料棒 +item.rod_quad_pu240.name=四联钚240燃料棒 +item.rod_quad_schrabidium.name=四联Sa326异变铀金属燃料棒 +item.rod_quad_schrabidium_fuel.name=四联Sa326异变铀金属燃料棒 +item.rod_quad_schrabidium_fuel_depleted.name=四联枯竭Sa326异变铀金属燃料棒 +item.rod_quad_solinium.name=四联Sa327索林燃料棒 +item.rod_quad_th232.name=四联钍232燃料棒 +item.rod_quad_thorium_fuel.name=四联钍燃料棒 item.rod_quad_thorium_fuel_depleted.name=四联枯竭钍燃料棒 item.rod_quad_tritium.name=四联氚燃料棒 -item.rod_quad_u233.name=四联铀-233燃料棒 -item.rod_quad_u235.name=四联铀-235燃料棒 -item.rod_quad_u238.name=四联铀-238燃料棒 +item.rod_quad_u233.name=四联铀233燃料棒 +item.rod_quad_u235.name=四联铀235燃料棒 +item.rod_quad_u238.name=四联铀238燃料棒 item.rod_quad_uranium.name=四联铀棒 -item.rod_quad_uranium_fuel.name=核反应堆 四联铀燃料棒 +item.rod_quad_uranium_fuel.name=四联铀燃料棒 item.rod_quad_uranium_fuel_depleted.name=四联枯竭铀燃料棒 item.rod_quad_waste.name=四联核废料棒 item.rod_quad_water.name=四联燃料棒[水] item.rod_reiium.name=雷恩棒 -item.rod_schrabidium.name=Sa326燃料棒 -item.rod_schrabidium_fuel.name=Sa326燃料棒 -item.rod_schrabidium_fuel_depleted.name=核反应堆 枯竭Sa326燃料棒 -item.rod_solinium.name=Sa327燃料棒 -item.rod_th232.name=钍-232燃料棒 +item.rod_schrabidium.name=Sa326异变铀金属燃料棒 +item.rod_schrabidium_fuel.name=Sa326异变铀金属燃料棒 +item.rod_schrabidium_fuel_depleted.name=枯竭Sa326异变铀金属燃料棒 +item.rod_solinium.name=Sa327索林燃料棒 +item.rod_th232.name=钍232燃料棒 item.rod_thorium_fuel.name=钍燃料棒 -item.rod_thorium_fuel_depleted.name=核反应堆 枯竭钍燃料棒 +item.rod_thorium_fuel_depleted.name=枯竭钍燃料棒 item.rod_tritium.name=氚燃料棒 -item.rod_u233.name=铀-233燃料棒 -item.rod_u235.name=铀-235燃料棒 -item.rod_u238.name=铀-238燃料棒 -item.rod_unobtainium.name=难得素棒 +item.rod_u233.name=铀233燃料棒 +item.rod_u235.name=铀235燃料棒 +item.rod_u238.name=铀238燃料棒 +item.rod_unobtainium.name=阿诺布汀棒 item.rod_uranium.name=铀棒 -item.rod_uranium_fuel.name=核反应堆 铀燃料棒 -item.rod_uranium_fuel_depleted.name=核反应堆 枯竭铀燃料棒 +item.rod_uranium_fuel.name=铀燃料棒 +item.rod_uranium_fuel_depleted.name=枯竭铀燃料棒 item.rod_verticium.name=韦德赛棒 item.rod_waste.name=核废料棒 item.rod_water.name=燃料棒[水] item.rod_weidanium.name=魏丹棒 -item.rod_zirnox_empty.name=空锆诺克斯燃料棒 -item.rod_zirnox_natural_uranium_fuel.name=锆诺克斯 天然铀燃料棒 -item.rod_zirnox_uranium_fuel.name=锆诺克斯 铀燃料棒 -item.rod_zirnox_th232.name=锆诺克斯 钍-232燃料棒 -item.rod_zirnox_thorium_fuel.name=锆诺克斯 钍燃料棒 -item.rod_zirnox_mox_fuel.name=锆诺克斯 MOX燃料棒 -item.rod_zirnox_plutonium_fuel.name=锆诺克斯 钚燃料棒 -item.rod_zirnox_u233_fuel.name=锆诺克斯 铀-233燃料棒 -item.rod_zirnox_u235_fuel.name=锆诺克斯 铀-235燃料棒 -item.rod_zirnox_les_fuel.name=锆诺克斯 LES低浓度Sa326燃料棒 -item.rod_zirnox_lithium.name=锆诺克斯 锂燃料棒 -item.rod_zirnox_tritium.name=锆诺克斯 氚燃料棒 -item.rod_zirnox_zfb_mox.name=锆诺克斯 ZFB MOX燃料棒 -item.rod_zirnox_natural_uranium_fuel_depleted.name=锆诺克斯 枯竭天然铀燃料棒 -item.rod_zirnox_uranium_fuel_depleted.name=锆诺克斯 枯竭铀燃料棒 -item.rod_zirnox_thorium_fuel_depleted.name=锆诺克斯 枯竭钍燃料棒 -item.rod_zirnox_mox_fuel_depleted.name=锆诺克斯 枯竭MOX燃料棒 -item.rod_zirnox_plutonium_fuel_depleted.name=锆诺克斯 枯竭钚燃料棒 -item.rod_zirnox_u233_fuel_depleted.name=锆诺克斯 枯竭铀-233燃料棒 -item.rod_zirnox_u235_fuel_depleted.name=锆诺克斯 枯竭铀-235燃料棒 -item.rod_zirnox_les_fuel_depleted.name=锆诺克斯 枯竭LES低浓度Sa326燃料棒 -item.rod_zirnox_zfb_mox_depleted.name=锆诺克斯 ZFB 枯竭MOX燃料棒 +item.rod_zirnox_empty.name=空的 ZIRNOX锆诺克斯反应堆燃料棒 +item.rod_zirnox_natural_uranium_fuel.name=天然铀 ZIRNOX锆诺克斯反应堆燃料棒 +item.rod_zirnox_uranium_fuel.name=铀 ZIRNOX锆诺克斯反应堆燃料棒 +item.rod_zirnox_th232.name=钍-232 ZIRNOX锆诺克斯反应堆增殖棒 +item.rod_zirnox_thorium_fuel.name=钍 ZIRNOX锆诺克斯反应堆燃料棒 +item.rod_zirnox_mox_fuel.name=MOX ZIRNOX锆诺克斯反应堆燃料棒 +item.rod_zirnox_plutonium_fuel.name=钚 ZIRNOX锆诺克斯反应堆燃料棒 +item.rod_zirnox_u233_fuel.name=铀-233 ZIRNOX锆诺克斯反应堆燃料棒 +item.rod_zirnox_u235_fuel.name=铀-235 ZIRNOX锆诺克斯反应堆燃料棒 +item.rod_zirnox_les_fuel.name=LES低浓缩度Sa-326 ZIRNOX锆诺克斯反应堆燃料棒 +item.rod_zirnox_lithium.name=锂 ZIRNOX锆诺克斯反应堆增殖棒 +item.rod_zirnox_tritium.name=氚 ZIRNOX锆诺克斯反应堆增殖棒 +item.rod_zirnox_zfb_mox.name=ZFB MOX ZIRNOX 锆诺克斯反应堆 +item.rod_zirnox_natural_uranium_fuel_depleted.name=衰竭天然铀 ZIRNOX 锆诺克斯反应堆燃料棒 +item.rod_zirnox_uranium_fuel_depleted.name=衰竭铀 ZIRNOX锆诺克斯反应堆燃料棒 +item.rod_zirnox_thorium_fuel_depleted.name=衰竭钍 ZIRNOX锆诺克斯反应堆燃料棒 +item.rod_zirnox_mox_fuel_depleted.name=衰竭MOX ZIRNOX锆诺克斯反应堆燃料棒 +item.rod_zirnox_plutonium_fuel_depleted.name=衰竭钚 ZIRNOX锆诺克斯反应堆燃料棒 +item.rod_zirnox_u233_fuel_depleted.name=衰竭铀-233 ZIRNOX锆诺克斯反应堆燃料棒 +item.rod_zirnox_u235_fuel_depleted.name=衰竭铀-235ZIRNOX锆诺克斯反应堆燃料棒 +item.rod_zirnox_les_fuel_depleted.name=衰竭LES低浓缩度Sa-326 ZIRNOX锆诺克斯反应堆燃料棒 +item.rod_zirnox_zfb_mox_depleted.name=衰竭 ZFB MOX ZIRNOX锆诺克斯反应堆燃料棒 item.rotor_steel.name=大型钢转子 -item.rpa_boots.name=动力装甲 靴子 -item.rpa_helmet.name=动力装甲 头盔 -item.rpa_legs.name=动力护甲 护腿 -item.rpa_plate.name=动力装甲 胸甲 +item.rpa_boots.name=残存者动力装甲靴子 +item.rpa_helmet.name=残存者动力装甲头盔 +item.rpa_legs.name=残存者动力装甲护腿 +item.rpa_plate.name=残存者动力装甲胸甲 item.rtg_unit.name=放射性同位素单元 item.rubber_gloves.name=厚橡胶手套 item.rune_blank.name=空白催化剂基质 @@ -3650,9 +3760,9 @@ item.rune_thurisaz.name=添加剂催化剂基质 item.safety_fuse.name=安全保险丝 item.sat_base.name=卫星基座 item.sat_chip.name=卫星ID芯片 -item.sat_coord.name=卫星指示器 -item.sat_designator.name=卫星激光指示器 -item.sat_foeq.name=实验型核能PEAF-Mk.I FOEQ Duna探测器 +item.sat_coord.name=卫星坐标指示器 +item.sat_designator.name=激光式卫星坐标指示器 +item.sat_foeq.name=PEAF-Mk.I 实验型核动力 FOEQ-杜纳探测器 item.sat_gerald.name=Gerald建筑机器人 item.sat_head_laser.name=死光发射器 item.sat_head_mapper.name=高增益光学摄像头 @@ -3661,32 +3771,31 @@ item.sat_head_resonator.name=Xenium共振器 item.sat_head_scanner.name=M700测量扫描仪 item.sat_interface.name=卫星操作接口 item.sat_laser.name=轨道死光炮 -item.sat_lunar_miner.name=月球采矿飞船 +item.sat_lunar_miner.name=月球采矿船 item.sat_mapper.name=地表测绘卫星 item.sat_miner.name=小行星采矿飞船 item.sat_radar.name=雷达探测卫星 item.sat_resonator.name=X晶体共振卫星 item.sat_scanner.name=绘测和资源探测卫星 -item.sawblade.name=锯片 item.schnitzel_vegan.name=“素”肉排 -item.schrabidium_axe.name=Sa326斧 -item.schrabidium_boots.name=Sa326靴子 -item.schrabidium_hammer.name=Sa326锤 -item.schrabidium_helmet.name=Sa326头盔 -item.schrabidium_hoe.name=Sa326锄 -item.schrabidium_legs.name=Sa326护腿 -item.schrabidium_pickaxe.name=Sa326镐 -item.schrabidium_plate.name=Sa326胸甲 -item.schrabidium_shovel.name=Sa326锹 -item.schrabidium_sword.name=Sa326剑 +item.schrabidium_axe.name=Sa326异变铀金属斧 +item.schrabidium_boots.name=Sa326异变铀金属靴子 +item.schrabidium_hammer.name=Sa326异变铀金属锤 +item.schrabidium_helmet.name=Sa326异变铀金属头盔 +item.schrabidium_hoe.name=Sa326异变铀金属锄 +item.schrabidium_legs.name=Sa326异变铀金属护腿 +item.schrabidium_pickaxe.name=Sa326异变铀金属镐 +item.schrabidium_plate.name=Sa326异变铀金属胸甲 +item.schrabidium_shovel.name=Sa326异变铀金属锹 +item.schrabidium_sword.name=Sa326异变铀金属剑 item.scrap.name=废料 item.scrap_nuclear.name=放射性废料 -item.scrap_oil.name=油性废料 +item.scrap_oil.name=油渣 item.scrap_plastic.name=塑料废料 item.scraps.name=铸造废料 item.screwdriver.name=螺丝刀 -item.screwdriver.desc=可以用来代替保险丝…… -item.screwdriver_desh.name=Desh螺丝刀 +item.screwdriver.desc=可以用来代替保险丝... +item.screwdriver_desh.name=德什制螺丝刀 item.scrumpy.name=一瓶烈性苹果酒 item.security_boots.name=防护靴子 item.security_helmet.name=防护头盔 @@ -3696,8 +3805,8 @@ item.seg_10.name=10号连接器 item.seg_15.name=15号连接器 item.seg_20.name=20号连接器 item.serum.name=血清 -item.servo_set.name=伺服装置 -item.servo_set_desh.name=Desh伺服装置 +item.servo_set.name=伺服马达组 +item.servo_set_desh.name=德什制伺服马达组 item.shackles.name=枷锁 item.shimmer_axe.name=闪耀斧 item.shimmer_axe_head.name=重型斧头 @@ -3707,26 +3816,26 @@ item.shimmer_sledge.name=闪耀锤 item.singularity.name=奇点 item.singularity_counter_resonant.name=可控反振谐奇点 item.singularity_micro.name=微型奇点 -item.singularity_spark.name=Spark奇点 +item.singularity_spark.name=Spark闪闪奇点 item.singularity_super_heated.name=超热共振奇点 item.siox.name=SiOX抗癌药物 -item.siox.desc=使用石棉的力量逆转间皮瘤! +item.siox.desc=用石棉的力量来逆转胸膜间皮瘤!(以 毒 攻 毒) item.siren_track.name=警报声轨 item.smashing_hammer.name=粉碎锤 item.solid_fuel.name=固体燃料 -item.solid_fuel_bf.name=固体燃料(野火) -item.solid_fuel_presto.name=Presto固体燃料 -item.solid_fuel_presto_bf.name=Presto固体燃料(野火) -item.solid_fuel_presto_triplet.name=增强型Presto固体燃料 -item.solid_fuel_presto_triplet_bf.name=增强型Presto固体燃料(野火) -item.solinium_core.name=半稳定Sa327核心 -item.solinium_igniter.name=Sa327脉冲点火器 +item.solid_fuel_bf.name=固体BF野火燃料 +item.solid_fuel_presto.name=压缩固体燃料 +item.solid_fuel_presto_bf.name=压缩BF野火固体燃料 +item.solid_fuel_presto_triplet.name=增强压缩固体燃料 +item.solid_fuel_presto_triplet_bf.name=增强压缩BF野火固体燃料 +item.solinium_core.name=半稳定Sa327索林核心 +item.solinium_igniter.name=Sa327索林脉冲点火器 item.solinium_kit.name=蔚蓝洗礼套件 -item.solinium_propellant.name=Sa327压缩装药 -item.sopsign.name=Sop标志战斧 +item.solinium_propellant.name=Sa327索林压缩装药 +item.sopsign.name=SOP标志战斧 item.spawn_duck.name=金蛋 item.spawn_ufo.name=火星入侵者飞船 -item.spawn_worm.name=机械蠕虫 +item.spawn_worm.name=世-界-毁-灭-者 O-TRON 头部 item.sphere_steel.name=钢球 item.spider_milk.name=一瓶蜘蛛奶 item.spongebob_macaroni.name=海绵宝宝通心粉 @@ -3734,45 +3843,49 @@ item.stamp_357.name=.357马格南锻模 item.stamp_44.name=.44马格南锻模 item.stamp_50.name=大口径锻模 item.stamp_9.name=小口径锻模 -item.stamp_desh_circuit.name=Desh电路版锻模 -item.stamp_desh_flat.name=Desh锻模 -item.stamp_desh_plate.name=Desh板锻模 -item.stamp_desh_wire.name=Desh电线锻模 -item.stamp_iron_circuit.name=铁质电路版锻模 +item.stamp_desh_circuit.name=德什质电路板锻模 +item.stamp_desh_flat.name=德什锻模 +item.stamp_desh_plate.name=德什质板锻模 +item.stamp_desh_wire.name=德什质电线锻模 +item.stamp_iron_circuit.name=铁质电路板锻模 item.stamp_iron_flat.name=铁质锻模 item.stamp_iron_plate.name=铁质板锻模 item.stamp_iron_wire.name=铁质电线锻模 -item.stamp_obsidian_circuit.name=黑曜石电路版锻模 +item.stamp_obsidian_circuit.name=黑曜石电路板锻模 item.stamp_obsidian_flat.name=黑曜石锻模 item.stamp_obsidian_plate.name=黑曜石板锻模 item.stamp_obsidian_wire.name=黑曜石电线锻模 -item.stamp_steel_circuit.name=钢质电路版锻模 +item.stamp_schrabidium_circuit.name=Sa326异变铀金属电路板锻模 +item.stamp_schrabidium_flat.name=Sa326异变铀金属锻模 +item.stamp_schrabidium_plate.name=Sa326异变铀金属板锻模 +item.stamp_schrabidium_wire.name=Sa326异变铀金属电线锻模 +item.stamp_steel_circuit.name=钢质电路板锻模 item.stamp_steel_flat.name=钢质锻模 item.stamp_steel_plate.name=钢质板锻模 item.stamp_steel_wire.name=钢质电线锻模 -item.stamp_stone_circuit.name=石质电路版锻模 +item.stamp_stone_circuit.name=石质电路板锻模 item.stamp_stone_flat.name=石质锻模 item.stamp_stone_plate.name=石质板锻模 item.stamp_stone_wire.name=石质电线锻模 -item.stamp_titanium_circuit.name=钛质电路版锻模 +item.stamp_titanium_circuit.name=钛质电路板锻模 item.stamp_titanium_flat.name=钛质锻模 item.stamp_titanium_plate.name=钛质板锻模 item.stamp_titanium_wire.name=钛质电线锻模 -item.starmetal_axe.name=星辉斧 -item.starmetal_boots.name=星辉靴子 -item.starmetal_helmet.name=星辉头盔 -item.starmetal_hoe.name=星辉锄 -item.starmetal_legs.name=星辉护腿 -item.starmetal_pickaxe.name=星辉镐 -item.starmetal_plate.name=星辉胸甲 -item.starmetal_shovel.name=星辉锹 -item.starmetal_sword.name=星辉剑 +item.starmetal_axe.name=星辉金属斧 +item.starmetal_boots.name=星辉金属靴子 +item.starmetal_helmet.name=星辉金属头盔 +item.starmetal_hoe.name=星辉金属锄 +item.starmetal_legs.name=星辉金属护腿 +item.starmetal_pickaxe.name=星辉金属镐 +item.starmetal_plate.name=星辉金属胸甲 +item.starmetal_shovel.name=星辉金属铲 +item.starmetal_sword.name=星辉金属剑 item.static_sandwich.name=TV三明治 -item.stealth_boy.name=隐形小子 -item.steamsuit_boots.name=蒸汽动力靴子 -item.steamsuit_helmet.name=蒸汽动力呼吸器头盔 -item.steamsuit_legs.name=蒸汽动力护腿 -item.steamsuit_plate.name=蒸汽动力胸甲 +item.stealth_boy.name=隐形装置 +item.steamsuit_boots.name=蒸汽动力装甲靴子 +item.steamsuit_helmet.name=蒸汽动力装甲呼吸器头盔 +item.steamsuit_legs.name=蒸汽动力装甲护腿 +item.steamsuit_plate.name=蒸汽动力装甲胸甲 item.steel_axe.name=钢斧 item.steel_boots.name=钢靴子 item.steel_helmet.name=钢头盔 @@ -3782,10 +3895,10 @@ item.steel_pickaxe.name=钢镐 item.steel_plate.name=钢胸甲 item.steel_shovel.name=钢锹 item.steel_sword.name=钢剑 -item.stick_c4.name=C-4炸药棒 +item.stick_c4.name=炸药C-4棒 item.stick_dynamite.name=炸药棒 item.stick_semtex.name=塞姆汀塑胶炸药棒 -item.stick_tnt.name=TNT棒 +item.stick_tnt.name=TNT炸药棒 item.stopsign.name=停车标志战斧 item.sulfur.name=硫粉 item.survey_scanner.name=勘测扫描仪 @@ -3797,9 +3910,10 @@ item.syringe_metal_medx.name=Med-X抗痛宁 item.syringe_metal_psycho.name=Psycho"捷特" item.syringe_metal_stimpak.name=治疗针 item.syringe_metal_super.name=超级治疗针 -item.syringe_mkunicorn.name=独角兽 +item.syringe_mkunicorn.name=MKUNICORN独角兽 item.syringe_poison.name=毒针 item.syringe_taint.name=污染水注射液 + item.t45_boots.name=T45动力装甲 靴子 item.t45_helmet.name=T45动力装甲 头盔 item.t45_kit.name=T45动力装甲套装 @@ -3818,7 +3932,7 @@ item.tank_waste_8.name=泥浆容器 item.telepad.name=传送部件 item.tem_flakes.name=Tem薄片 item.template_folder.name=机器模板文件夹 -item.template_folder.desc=机器模板:纸张+染料$流体识别码:铁板+染料$锻模:空白锻模 $警报声轨:绝缘体+钢板 +item.template_folder.desc=装配机模板: 纸 + 染料$流体识别码: 铁板 + 染料$锻模: 空白锻模$警报声轨: 绝缘体 + 钢板 item.test_nuke_igniter.name=点火器 item.test_nuke_propellant.name=推进剂 item.test_nuke_tier1_bullet.name=铀235弹头[1级] @@ -3833,7 +3947,7 @@ item.thermo_unit_endo.name=吸热装置 item.thermo_unit_exo.name=放热装置 item.thruster_large.name=大型推进器 item.thruster_medium.name=中型推进器 -item.thruster_nuclear.name=LV-N核能火箭发动机 +item.thruster_nuclear.name=LV-N核动力火箭发动机 item.thruster_small.name=小型推进器 item.titanium_axe.name=钛斧 item.titanium_boots.name=钛靴子 @@ -3848,7 +3962,7 @@ item.titanium_sword.name=钛剑 item.toothpicks.name=牙签 item.trinitite.name=玻璃石 item.tritium_deuterium_cake.name=氚氘饼 -item.tritium_deuterium_cake.desc=不是真正的蛋糕,而是很棒的$聚变燃料! +item.tritium_deuterium_cake.desc=不是真正的饼, $而是很好的通用聚变燃料! item.tsar_core.name=沙皇炸弹核心 item.tsar_kit.name=沙皇炸弹 套件 item.turbine_titanium.name=钛汽轮转子 @@ -3867,7 +3981,7 @@ item.turret_tau_ammo.name=陶子炮塔铀弹药 item.twinkie.name=小蛋糕 item.ullapool_caber.name=阿勒浦长木杆 item.undefined.name=形态未定义物质 -item.upgrade_5g.name=5G辐射发射器升级 +item.upgrade_5g.name=5G辐射升级 item.upgrade_afterburn_1.name=一级粉色机器升级 item.upgrade_afterburn_2.name=二级粉色机器升级 item.upgrade_afterburn_3.name=三级粉色机器升级 @@ -3876,9 +3990,9 @@ item.upgrade_crystallizer.name=采矿激光升级-自动结晶 item.upgrade_effect_1.name=一级绿色机器升级 item.upgrade_effect_2.name=二级绿色机器升级 item.upgrade_effect_3.name=三级绿色机器升级 -item.upgrade_ejector_1.name=一级弹射速度升级 -item.upgrade_ejector_2.name=二级弹射速度升级 -item.upgrade_ejector_3.name=三级弹射速度升级 +item.upgrade_ejector_1.name=一级弹出速度升级 Mk.I +item.upgrade_ejector_2.name=二级弹射速度升级 Mk.II +item.upgrade_ejector_3.name=三级弹射速度升级 Mk.III item.upgrade_fortune_1.name=一级紫色机器升级 item.upgrade_fortune_2.name=二级紫色机器升级 item.upgrade_fortune_3.name=三级紫色机器升级 @@ -3898,10 +4012,10 @@ item.upgrade_smelter.name=采矿激光升级-自动熔炼 item.upgrade_speed_1.name=一级红色机器升级 item.upgrade_speed_2.name=二级红色机器升级 item.upgrade_speed_3.name=三级红色机器升级 -item.upgrade_stack_1.name=一级堆栈弹出升级 -item.upgrade_stack_2.name=二级堆栈弹出升级 -item.upgrade_stack_3.name=三级堆栈弹出升级 -item.upgrade_template.name=机器升级模板 +item.upgrade_stack_1.name=一级单次弹出堆栈量升级 +item.upgrade_stack_2.name=二级单次弹出堆栈量升级 +item.upgrade_stack_3.name=三级单次弹出堆栈量升级 +item.upgrade_template.name=空白机器升级模板 item.v1.name=V1 item.volcanic_pickaxe.name=熔岩镐 item.wand_d.name=调试魔杖 @@ -3920,29 +4034,53 @@ item.warhead_incendiary_large.name=大型燃烧弹头 item.warhead_incendiary_medium.name=中型燃烧弹头 item.warhead_incendiary_small.name=小型燃烧弹头 item.warhead_mirv.name=热核弹头 -item.warhead_mirvlet.name=MIRV +item.warhead_mirvlet.name=分导式多弹头核弹 item.warhead_nuclear.name=核弹头 item.warhead_thermo_endo.name=吸热弹头 item.warhead_thermo_exo.name=放热弹头 -item.warhead_volcano.name=构造弹头 +item.warhead_volcano.name=地壳破坏者弹头 item.waste_mox.name=枯竭MOX燃料 item.waste_natural_uranium.name=枯竭天然铀燃料 -item.waste_plate_mox.name=枯竭MOX 板状燃料 -item.waste_plate_pu238be.name=枯竭钚238-铍 板状燃料 -item.waste_plate_pu239.name=枯竭高浓度钚-239 板状燃料 -item.waste_plate_ra226be.name=枯竭镭226-铍 板状燃料 -item.waste_plate_sa326.name=枯竭高浓度Sa326 板状燃料 -item.waste_plate_u233.name=枯竭高浓度铀-233 板状燃料 -item.waste_plate_u235.name=枯竭高浓度铀-235 板状燃料 +item.waste_plate_mox.name=枯竭MOX板状燃料元件 +item.waste_plate_pu238be.name=枯竭钚238-铍板状燃料元件 +item.waste_plate_pu239.name=枯竭高浓缩度钚-239板状燃料元件 +item.waste_plate_ra226be.name=枯竭镭226-铍板状燃料元件 +item.waste_plate_sa326.name=枯竭高浓缩度Sa326板状燃料元件 +item.waste_plate_u233.name=枯竭高浓缩度铀-233板状燃料元件 +item.waste_plate_u235.name=枯竭高浓缩度铀-235板状燃料元件 item.waste_plutonium.name=枯竭钚燃料 -item.waste_schrabidium.name=枯竭Sa326燃料 +item.waste_schrabidium.name=枯竭Sa326异变铀金属燃料 item.waste_thorium.name=枯竭钍燃料 item.waste_u235.name=枯竭铀-235燃料 item.waste_u233.name=枯竭铀-233燃料 item.waste_uranium.name=枯竭铀燃料 -item.waste_zfb_mox.name=枯竭的ZFB MOX燃料 -item.watch.name=破旧怀表 -item.watch.desc=一块蓝色的小怀表$玻璃上有一些裂缝,还有一些碎片不见了$指针定格在了2点34分。 +item.waste_zfb_mox.name=枯竭ZFB MOX燃料 +item.watch.name=破怀表 +item.watch.desc=一个蓝色小怀表.$它的玻璃上有一些裂缝,$还有一些玻璃碎片不见了.$它的指针停在了 2:34. +item.watz_pellet.boron.name=硼吸收剂靶丸 +item.watz_pellet.du.name=铀吸收剂靶丸 +item.watz_pellet.hes.name=HES高浓缩度Sa-326 Watz瓦茨电厂靶丸 +item.watz_pellet.lead.name=铅吸收剂靶丸 +item.watz_pellet.les.name=LES低浓缩度Sa-326 Watz瓦茨电厂靶丸 +item.watz_pellet.mes.name=MES中浓缩度Sa-326 Watz瓦茨电厂靶丸 +item.watz_pellet.mep.name=MEP中浓缩度钚-239 Watz瓦茨电厂靶丸 +item.watz_pellet.meu.name=MEU中浓缩度铀-235 Watz瓦茨电厂靶丸 +item.watz_pellet.nqd.name=浓缩硅岩金属 Watz瓦茨电厂靶丸 +item.watz_pellet.nqr.name=硅岩金属 Watz瓦茨电厂靶丸 +item.watz_pellet.hen.name=HEN高浓缩度镎-237 Watz瓦茨电厂靶丸 +item.watz_pellet.schrabidium.name=Sa326异变铀金属 Watz瓦茨电厂靶丸 +item.watz_pellet_depleted.boron.name=硼吸收剂靶丸 (衰竭) +item.watz_pellet_depleted.du.name=铀吸收剂靶丸 (衰竭) +item.watz_pellet_depleted.hes.name=HES高浓缩度Sa-326 Watz瓦茨电厂靶丸 (衰竭) +item.watz_pellet_depleted.lead.name=铅吸收剂靶丸 (衰竭) +item.watz_pellet_depleted.les.name=LES低浓缩度Sa-326 Watz瓦茨电厂靶丸 (衰竭) +item.watz_pellet_depleted.mes.name=MES中浓缩度Sa-326 Watz瓦茨电厂靶丸 (衰竭) +item.watz_pellet_depleted.mep.name=MEP中浓缩度钚-239 Watz瓦茨电厂靶丸 (衰竭) +item.watz_pellet_depleted.meu.name=MEU中浓缩度铀-235 Watz瓦茨电厂靶丸 (衰竭) +item.watz_pellet_depleted.nqd.name=浓缩硅岩金属 Watz瓦茨电厂靶丸 (衰竭) +item.watz_pellet_depleted.nqr.name=硅岩金属 Watz瓦茨电厂靶丸 (衰竭) +item.watz_pellet_depleted.hen.name=HEN高浓缩度镎-237 Watz瓦茨电厂靶丸 (衰竭) +item.watz_pellet_depleted.schrabidium.name=Sa326异变铀金属 Watz瓦茨电厂靶丸 (衰竭) item.weapon_bat.name=板球棒 item.weapon_bat_nail.name=板上钉钉 item.weapon_golf_club.name=黑手党快乐杆 @@ -3951,111 +4089,119 @@ item.weapon_pipe_rusty.name=姿态调节器 item.weapon_saw.name=肢解骨锯 item.weaponized_starblaster_cell.name=§c星际爆能电池§r item.wd40.name=VT-40 -item.wild_p.name=野生珀伽索斯干威士忌 -item.wings_limp.name=无力之翼 -item.wings_murk.name=暗黑之翼 +item.wild_p.name=狂野飞马干威士忌 +item.wings_limp.name=轻盈的翅膀 +item.wings_murk.name=强化的翅膀 item.wire_advanced_alloy.name=超导体 item.wire_aluminium.name=铝线 item.wire_copper.name=铜线 item.wire_gold.name=金线 item.wire_magnetized_tungsten.name=4000K高温超导体 item.wire_red_copper.name=紫铜线 -item.wire_schrabidium.name=Sa326线 +item.wire_schrabidium.name=Sa326异变铀金属线 item.wire_tungsten.name=钨线 item.wiring_red_copper.name=电缆卷 item.wood_gavel.name=木槌 item.wrench.name=管道扳手 -item.wrench_archineer.name=Archineer扳手 +item.wrench_archineer.name=Archineer的扳手 item.wrench_flipped.name=刺刀扳手 -item.xanax.name=NAXA 抗迪伽马药物 -item.xanax.desc=移除500mDRX迪伽马辐射 +item.xanax.name=NAXA 抗Ϝ迪伽马辐射药物 +item.xanax.desc=移除500mDRX的Ϝ迪伽马辐射 item.zirconium_legs.name=锆质护腿 -itemGroup.tabBlocks=HBM 矿石和方块 -itemGroup.tabConsumable=HBM 食物和装备 -itemGroup.tabControl=HBM 机器项目和燃料 -itemGroup.tabMachine=HBM 机器 -itemGroup.tabMissile=HBM 导弹和卫星 -itemGroup.tabNuke=HBM 炸弹 -itemGroup.tabParts=HBM 资源和零件 -itemGroup.tabTemplate=HBM 模板 -itemGroup.tabTest=HBM的核科技mod测试项[S166、Bismarck、nukesteve联合汉化] -itemGroup.tabWeapon=HBM 武器和炮塔 + +itemGroup.tabTest=HBM的核科技mod测试项[S166, Bismarck, nukesteve联合汉化] +itemGroup.tabParts=核技术资源和零件 +itemGroup.tabControl=核技术机器项目和燃料 +itemGroup.tabTemplate=核技术模板 +itemGroup.tabBlocks=核技术矿石和方块 +itemGroup.tabMachine=核技术机器 +itemGroup.tabNuke=核技术炸弹 +itemGroup.tabMissile=核技术导弹和卫星 +itemGroup.tabWeapon=核技术武器和炮塔 +itemGroup.tabConsumable=核技术食物和装备 + potion.hbm_bang=! ! ! -potion.hbm_death=重度突变 +potion.hbm_death=严重突变 potion.hbm_lead=铅中毒 -potion.hbm_mutation=变异 +potion.hbm_mutation=腐化变异 potion.hbm_phosphorus=磷烧伤 -potion.hbm_potionsickness=药水病 -potion.hbm_radaway=消辐宁 +potion.hbm_potionsickness=药物上瘾 +potion.hbm_radaway=辐射宁 potion.hbm_radiation=辐射 -potion.hbm_radx=抗辐射 -potion.hbm_stability=稳定 -potion.hbm_taint=污染 +potion.hbm_radx=辐射抗性 +potion.hbm_stability=原子稳定性 +potion.hbm_taint=腐化沾染 potion.hbm_telekinesis=! ! ! + radar.detectMissiles=探测导弹 radar.detectPlayers=探测玩家 radar.redMode=红石控制模式$开启: 基于导弹距离输出红石信号$关闭: 基于导弹级别输出红石信号 -radar.smartMode=智能模式$有红石信号时忽略上升段的导弹 +radar.smartMode=智能模式$输出红石信号(忽略上升的导弹) + rbmk.heat=柱体温度: %s rbmk.boiler.water=供水速率: %s / %s rbmk.boiler.steam=蒸汽产生速率: %s / %s rbmk.boiler.type=蒸汽压缩等级: %s -rbmk.console.assign=将选定列分配给屏幕#%s -rbmk.console.none=Off -rbmk.console.col_temp=监测平均柱温 -rbmk.console.rod_extraction=监控平均控制棒抽出量 -rbmk.console.fuel_depletion=监测平均燃料消耗 -rbmk.console.fuel_poison=监测平均氙中毒程度 -rbmk.console.fuel_temp=监测平均燃料温度 +rbmk.console.assign=将所选柱分配到屏幕#%s +rbmk.console.none=无 +rbmk.console.col_temp=监测柱体表面平均温度 +rbmk.console.rod_extraction=监测控制棒平均抽出量 +rbmk.console.fuel_depletion=监测核燃料平均消耗 +rbmk.console.fuel_poison=监测氙堆积平均程度 +rbmk.console.fuel_temp=监测燃料棒核心平均温度 rbmk.control.level=%s rbmk.control.red=§c红色组 rbmk.control.yellow=§e黄色组 rbmk.control.green=§a绿色组 rbmk.control.blue=§1蓝色组 rbmk.control.purple=§5紫色组 -rbmk.moderated=慢化剂 +rbmk.moderated=缓冲 rbmk.rod.depletion=燃料消耗: %s rbmk.rod.xenon=氙元素堆积程度: %s rbmk.rod.coreTemp=核心温度: %s rbmk.rod.skinTemp=表面温度: %s / %s -rbmk.screen.core=核心:%s +rbmk.screen.core=核心温度: %s rbmk.screen.depletion=消耗: %s -rbmk.screen.rod=控制:%s -rbmk.screen.temp=温度:%s -rbmk.screen.xenon=氙:%s -shape.billet=钢坯 -shape.blade=刀身 -shape.blades=切碎机刀片 -shape.block=块 -shape.dust=粉末 -shape.dusttiny=小搓粉末 -shape.hull_big=大型外壳 -shape.hull_small=小型外壳 +rbmk.screen.rod=控制棒抽出量: %s +rbmk.screen.temp=表面温度: %s +rbmk.screen.xenon=氙堆积: %s + +shape.billet=坯料 +shape.blade=扇片 +shape.blades=粉碎机刀片 +shape.block=方块 +shape.dust=粉 +shape.dusttiny=小撮粉 +shape.hull_big=大型壳 +shape.hull_small=小型壳 shape.ingot=锭 shape.nugget=粒 -shape.quantum=量子 +shape.quantum=量 shape.quart=四分之一块 -shape.plate=板材 -shape.stamp=锻压模具 -shape.wire=线材 -soundCategory.ntmMachines=NTM机器 +shape.plate=板 +shape.plateTriple=铸造板 +shape.stamp=锻模 +shape.wire=线 + +soundCategory.ntmMachines=NTM核科技机器 + tile.absorber.name=辐射吸收器 tile.absorber_green.name=高级辐射吸收器 tile.absorber_pink.name=精英辐射吸收器 tile.absorber_red.name=增强型辐射吸收器 tile.acid_block.name=酸 -tile.ams_base.name=AMS基座 [开发中] -tile.ams_emitter.name=AMS发射极 [开发中] -tile.ams_limiter.name=AMS稳能器 [开发中] -tile.ancient_scrap.name=古代废金属 +tile.ams_base.name=AMS基座 [装饰] +tile.ams_emitter.name=AMS发射极 [装饰] +tile.ams_limiter.name=AMS稳能器 [装饰] +tile.ancient_scrap.name=远古残骸 tile.anvil_bismuth.name=铋砧 tile.anvil_dnt.name=双聚中子态素砧 -tile.anvil_ferrouranium.name=铀铁合金砧 +tile.anvil_ferrouranium.name=铀-铁合金砧 tile.anvil_iron.name=铁砧 tile.anvil_lead.name=铅砧 tile.anvil_meteorite.name=陨石砧 tile.anvil_murky.name=暗黑砧 -tile.anvil_osmiridium.name=铱锇合金砧 +tile.anvil_osmiridium.name=铱锇砧 tile.anvil_schrabidate.name=Sa-铁合金砧 tile.anvil_starmetal.name=星辉金属砧 tile.anvil_steel.name=钢砧 @@ -4071,7 +4217,7 @@ tile.barbed_wire_wither.name=凋零铁丝网 tile.barrel_antimatter.name=磁约束反物质容器 tile.barrel_corroded.name=被腐蚀的桶 tile.barrel_iron.name=铁桶 -tile.barrel_plastic.name=安全桶 +tile.barrel_plastic.name=安全桶™ tile.barrel_steel.name=钢桶 tile.barrel_tcalloy.name=锝-钢合金桶 tile.barricade.name=沙袋 @@ -4079,11 +4225,11 @@ tile.basalt.name=玄武岩 tile.basalt_asbestos.name=富含石棉的玄武岩 tile.basalt_brick.name=玄武岩砖 tile.basalt_fluorite.name=富含氟石的玄武岩 -tile.basalt_gem.name=富含宝石的玄武岩 -tile.basalt_polished.name=抛光玄武岩 +tile.basalt_gem.name=富含晶石的玄武岩 +tile.basalt_polished.name=磨制玄武岩 tile.basalt_smooth.name=平滑玄武岩 -tile.basalt_sulfur.name=富含硫的玄武岩 -tile.basalt_tiles.name=玄武岩砖 +tile.basalt_sulfur.name=富硫玄武岩 +tile.basalt_tiles.name=玄武岩瓦 tile.blast_door.name=防爆闸门 tile.block_actinium.name=锕块 tile.block_advanced_alloy.name=高级合金块 @@ -4094,45 +4240,45 @@ tile.block_bakelite.name=电木块 tile.block_beryllium.name=铍块 tile.block_bismuth.name=铋块 tile.block_boron.name=硼块 -tile.block_c4.name=C-4块 -tile.block_cap_fritz.name=弗里茨瓶盖方块 -tile.block_cap_korl.name=Korl瓶盖方块 -tile.block_cap_nuka.name=核子可乐瓶盖方块 -tile.block_cap_quantum.name=樱桃味核子可乐瓶盖方块 -tile.block_cap_rad.name=辐射 S~核子可乐瓶盖方块 -tile.block_cap_sparkle.name=核子可乐瓶盖方块 -tile.block_cap_star.name=夕阳沙士星星瓶盖方块 -tile.block_cap_sunset.name=夕阳沙士瓶盖方块 +tile.block_c4.name=C-4炸药块 +tile.block_cap_fritz.name=Fritz弗里茨可乐瓶盖压缩块 +tile.block_cap_korl.name=Korl库尔勒瓶盖压缩块 +tile.block_cap_nuka.name=核子可乐瓶盖压缩块 +tile.block_cap_quantum.name=樱桃味量子核子可乐瓶盖压缩块 +tile.block_cap_rad.name=辐射S~闪闪可乐瓶盖压缩块 +tile.block_cap_sparkle.name=S~闪闪可乐瓶盖压缩块 +tile.block_cap_star.name=夕阳沙士星星瓶盖压缩块 +tile.block_cap_sunset.name=夕阳沙士瓶盖压缩块 tile.block_cobalt.name=钴块 -tile.block_coke.coal.name=煤焦炭块 -tile.block_coke.lignite.name=褐煤焦炭块 -tile.block_coke.petroleum.name=石油焦炭块 -tile.block_coltan.name=钽块 +tile.block_coke.coal.name=焦煤块 +tile.block_coke.lignite.name=褐焦煤块 +tile.block_coke.petroleum.name=石油焦块 +tile.block_coltan.name=钶钽铁块 tile.block_combine_steel.name=CMB钢块 tile.block_copper.name=铜块 tile.block_corium.name=熔融堆芯冷凝物 -tile.block_corium_cobble.name= 熔融物凝固石 +tile.block_corium_cobble.name=疏松熔融堆芯冷凝物 tile.block_daffergon.name=达夫贡块 -tile.block_desh.name=Desh块 +tile.block_desh.name=德什块 tile.block_dineutronium.name=双聚中子态素块 tile.block_dura_steel.name=强化高速钢块 tile.block_electrical_scrap.name=电子废料块 -tile.block_euphemium.name=Ep块 -tile.block_euphemium_cluster.name=Ep刻蚀Sa326团 +tile.block_euphemium.name=Ep元素块 +tile.block_euphemium_cluster.name=Ep元素刻蚀Sa326异变铀金属团 tile.block_fallout.name=辐射尘块 tile.block_fiberglass.name=玻璃纤维卷 tile.block_fluorite.name=氟石块 tile.block_foam.name=泡沫 tile.block_insulator.name=绝缘卷 tile.block_graphite.name=石墨块 -tile.block_graphite_detector.name=反应堆中子探测棒 -tile.block_graphite_drilled.name=钻孔石墨 -tile.block_graphite_fuel.name=反应堆燃料 -tile.block_graphite_lithium.name=反应堆锂燃料 -tile.block_graphite_plutonium.name=反应堆燃料(增殖) -tile.block_graphite_rod.name=反应堆控制棒 -tile.block_graphite_source.name=反应堆中子源 -tile.block_graphite_tritium.name=反应堆锂燃料(增殖) +tile.block_graphite_detector.name=中子探测器石墨块 +tile.block_graphite_drilled.name=钻孔石墨块 +tile.block_graphite_fuel.name=塞进了铀棒的石墨块 +tile.block_graphite_lithium.name=塞进了锂燃料棒的石墨块 +tile.block_graphite_plutonium.name=塞进了铀棒(已增殖)的石墨块 +tile.block_graphite_rod.name=塞进了控制棒的石墨块 +tile.block_graphite_source.name=塞进了中子源棒的石墨块 +tile.block_graphite_tritium.name=塞进了锂燃料棒(已增殖)的石墨块 tile.block_lead.name=铅块 tile.block_lanthanium.name=镧块 tile.block_lithium.name=锂块 @@ -4145,32 +4291,32 @@ tile.block_meteor_treasure.name=宝藏陨石块 tile.block_mox_fuel.name=MOX燃料块 tile.block_neptunium.name=镎块 tile.block_niter.name=硝石块 -tile.block_niter_reinforced.name=硝石加固块 +tile.block_niter_reinforced.name=加固硝石块 tile.block_niobium.name=铌块 tile.block_plutonium.name=钚块 tile.block_plutonium_fuel.name=钚燃料块 -tile.block_polonium.name=钋块 +tile.block_polonium.name=钋-210块 tile.block_polymer.name=聚合物块 tile.block_pu_mix.name=反应堆级钚块 -tile.block_pu238.name=钚-238块 -tile.block_pu239.name=钚-239块 -tile.block_pu240.name=钚-240块 +tile.block_pu238.name=钚238块 +tile.block_pu239.name=钚239块 +tile.block_pu240.name=钚240块 tile.block_ra226.name=镭-226块 tile.block_red_copper.name=紫铜块 tile.block_red_phosphorus.name=红磷块 tile.block_reiium.name=雷恩块 tile.block_rubber.name=橡胶块 -tile.block_schrabidate.name=Sa酸铁块 -tile.block_schrabidium.name=Sa326块 -tile.block_schrabidium_cluster.name=Sa326团 -tile.block_schrabidium_fuel.name=Sa326燃料块 -tile.block_schraranium.name=低丰度Sa326块 +tile.block_schrabidate.name=Sa326元素酸化铁块 +tile.block_schrabidium.name=Sa326异变铀金属块 +tile.block_schrabidium_cluster.name=Sa326异变铀金属团 +tile.block_schrabidium_fuel.name=Sa326异变铀金属燃料块 +tile.block_schraranium.name=低丰度Sa326异变铀金属块 tile.block_scrap.name=废品块 -tile.block_semtex.name=塞姆汀块 -tile.block_slag.name=矿渣块 -tile.block_smore.name=S'more块 -tile.block_solinium.name=Sa327块 -tile.block_starmetal.name=星辉块 +tile.block_semtex.name=塞姆汀塑胶炸药块 +tile.block_slag.name=炉渣块 +tile.block_smore.name=S'more饼干块 +tile.block_solinium.name=Sa327索林块 +tile.block_starmetal.name=星辉金属块 tile.block_steel.name=钢块 tile.block_sulfur.name=硫磺块 tile.block_tantalium.name=钽块 @@ -4180,10 +4326,10 @@ tile.block_titanium.name=钛块 tile.block_trinitite.name=玻璃石块 tile.block_tritium.name=氚单元块 tile.block_tungsten.name=钨块 -tile.block_u233.name=铀-233块 -tile.block_u235.name=铀-235块 -tile.block_u238.name=铀-238块 -tile.block_unobtainium.name=难得素块 +tile.block_u233.name=铀233块 +tile.block_u235.name=铀U235块 +tile.block_u238.name=铀U238块 +tile.block_unobtainium.name=阿诺布汀块 tile.block_uranium.name=铀块 tile.block_uranium_fuel.name=铀燃料块 tile.block_verticium.name=韦德赛块 @@ -4195,7 +4341,7 @@ tile.block_white_phosphorus.name=白磷块 tile.block_yellowcake.name=黄饼块 tile.block_zirconium.name=锆块 tile.boat.name=船 -tile.bobblehead.name=Bob的魔法娃娃 +tile.bobblehead.name=Bob的摇头娃娃 tile.bomb_multi.name=多功能炸弹 tile.bomber.name=坠毁轰炸机 tile.book_guide.name=HBM的核科技mod手册[遗留] @@ -4203,28 +4349,28 @@ tile.boxcar.name=车厢 tile.brick_asbestos.name=石棉砖块 tile.brick_asbestos_stairs.name=石棉砖楼梯 tile.brick_compound.name=复合网格砖块 -tile.brick_compound_stairs.name=复合网格楼梯 +tile.brick_compound_stairs.name=复合网格砖楼梯 tile.brick_concrete.name=混凝土砖块 tile.brick_concrete_stairs.name=混凝土砖楼梯 -tile.brick_concrete_broken.name=破碎混凝土砖块 -tile.brick_concrete_broken_stairs.name=破碎的混凝土砖楼梯 -tile.brick_concrete_cracked.name=开裂混凝土砖块 -tile.brick_concrete_cracked_stairs.name=开裂混凝土砖楼梯 -tile.brick_concrete_marked.name=标记混凝土砖 +tile.brick_concrete_broken.name=破混凝土砖块 +tile.brick_concrete_broken_stairs.name=破混凝土砖楼梯 +tile.brick_concrete_cracked.name=裂混凝土砖块 +tile.brick_concrete_cracked_stairs.name=裂混凝土砖楼梯 +tile.brick_concrete_marked.name=标记过的混凝土砖块 tile.brick_concrete_mossy.name=苔混凝土砖块 -tile.brick_concrete_mossy_stairs.name=苔藓混凝土砖楼梯 -tile.brick_ducrete.name=高密度贫铀混凝土砖块 -tile.brick_ducrete_stairs.name=高密度贫铀混凝土砖楼梯 -tile.brick_dungeon.name=硒铜砖 -tile.brick_dungeon_circle.name=圆环硒铜块 +tile.brick_concrete_mossy_stairs.name=苔混凝土砖楼梯 +tile.brick_ducrete.name=贫铀高密度混凝土砖块 +tile.brick_ducrete_stairs.name=贫铀高密度混凝土砖楼梯 +tile.brick_dungeon.name=硒铜砖块 +tile.brick_dungeon_circle.name=硒铜圈 tile.brick_dungeon_flat.name=硒铜块 -tile.brick_dungeon_tile.name=硒铜瓦 -tile.brick_fire.name=耐火砖块 +tile.brick_dungeon_tile.name=硒铜台阶 +tile.brick_fire.name=耐火砖 tile.brick_fire_stairs.name=耐火砖楼梯 tile.brick_jungle.name=硫砷钢砖块 -tile.brick_jungle_circle.name=机械师之环 +tile.brick_jungle_circle.name=机械师留下的圆圈 tile.brick_jungle_cracked.name=开裂硫砷钢砖块 -tile.brick_jungle_fragile.name=粉碎硫砷钢砖块 +tile.brick_jungle_fragile.name=易碎的硫砷钢砖块 tile.brick_jungle_glyph.name=硫砷钢石雕砖块 tile.brick_jungle_lava.name=岩浆硫砷钢砖块 tile.brick_jungle_mystic.name=奥术硫砷钢砖块 @@ -4234,26 +4380,26 @@ tile.brick_light.name=轻质砖块 tile.brick_light_stairs.name=轻质砖楼梯 tile.brick_obsidian.name=黑曜石砖块 tile.brick_obsidian_stairs.name=黑曜石砖楼梯 -tile.brick_slab.brick_asbestos.name=石棉砖板 -tile.brick_slab.brick_compound.name=复合网格板 -tile.brick_slab.brick_fire.name=耐火砖板 -tile.brick_slab.brick_light.name=轻质砖板 -tile.brick_slab.brick_obsidian.name=黑曜石砖板 -tile.brick_slab.reinforced_brick.name=钢筋石板 -tile.brick_slab.reinforced_stone.name=密实石板 -tile.broadcaster_pc.name=腐败广播 +tile.brick_slab.brick_asbestos.name=石棉砖台阶 +tile.brick_slab.brick_compound.name=复合网格砖台阶 +tile.brick_slab.brick_fire.name=耐火砖台阶 +tile.brick_slab.brick_light.name=轻质砖台阶 +tile.brick_slab.brick_obsidian.name=黑曜石砖台阶 +tile.brick_slab.reinforced_brick.name=钢筋混凝土台阶 +tile.brick_slab.reinforced_stone.name=致密石头台阶 +tile.broadcaster_pc.name=腐化的广播 tile.burning_earth.name=燃烧草地 -tile.c4.name=C-4 -tile.cable_detector.name=红石电源开关 +tile.c4.name=C-4炸药 +tile.cable_detector.name=红石信号电源开关 tile.cable_diode.name=紫铜二极管 tile.cable_switch.name=电源开关 -tile.charge_c4.name=炸药包 +tile.charge_c4.name=爆破炸药 tile.charge_dynamite.name=定时炸弹 tile.charge_miner.name=定时采矿炸药 -tile.charge_semtex.name=Semtex采矿炸药 +tile.charge_semtex.name=塞姆汀塑胶采矿炸药 tile.charger.name=充电站 -tile.cheater_virus.name=冻结Ep -tile.cheater_virus_seed.name=不稳定Ep Schrabide块 +tile.cheater_virus.name=冻结Ep元素 +tile.cheater_virus_seed.name=不稳定Ep元素-Sa326元素块 tile.chlorine_gas.name=氯气 tile.cluster_aluminium.name=铝矿簇 tile.cluster_copper.name=铜矿簇 @@ -4266,13 +4412,13 @@ tile.cmb_brick.name=CMB钢瓦块 tile.cmb_brick_reinforced.name=加固CMB钢砖块 tile.compact_launcher.name=紧凑型发射台 tile.concrete.name=混凝土瓦块 -tile.concrete_asbestos.name=黑色混凝土 -tile.concrete_asbestos_stairs.name=石棉混凝土楼梯 -tile.concrete_brick_slab.brick_concrete.name=混凝土砖板 -tile.concrete_brick_slab.brick_concrete_broken.name=破碎的混凝土砖板 -tile.concrete_brick_slab.brick_concrete_cracked.name=开裂的混凝土砖板 -tile.concrete_brick_slab.brick_concrete_mossy.name=苔藓混凝土砖板 -tile.concrete_brick_slab.brick_ducrete.name=高密度贫铀混凝土砖板 +tile.concrete_asbestos.name=石棉夹层混凝土 +tile.concrete_asbestos_stairs.name=石棉夹层混凝土楼梯 +tile.concrete_brick_slab.brick_concrete.name=混凝土砖台阶 +tile.concrete_brick_slab.brick_concrete_broken.name=破碎的混凝土砖台阶 +tile.concrete_brick_slab.brick_concrete_cracked.name=开裂的混凝土砖台阶 +tile.concrete_brick_slab.brick_concrete_mossy.name=苔藓混凝土砖台阶 +tile.concrete_brick_slab.brick_ducrete.name=贫铀高密度混凝土砖台阶 tile.concrete_colored.black.name=黑色混凝土 tile.concrete_colored.blue.name=蓝色混凝土 tile.concrete_colored.brown.name=棕色混凝土 @@ -4289,33 +4435,35 @@ tile.concrete_colored.red.name=红色混凝土 tile.concrete_colored.silver.name=淡灰色混凝土 tile.concrete_colored.white.name=白色混凝土 tile.concrete_colored.yellow.name=黄色混凝土 +tile.concrete_slab.concrete.name=混凝土瓷砖台阶 +tile.concrete_slab.concrete_asbestos.name=石棉夹层混凝土台阶 +tile.concrete_slab.concrete_smooth.name=混凝土台阶 +tile.concrete_slab.ducrete.name=贫铀高密度混凝土瓦台阶 +tile.concrete_slab.ducrete_smooth.name=贫铀高密度混凝土砖台阶 +tile.concrete_smooth.name=混凝土楼梯 tile.concrete_pillar.name=钢筋混凝土柱 -tile.concrete_slab.concrete.name=混凝土瓷砖板 -tile.concrete_slab.concrete_asbestos.name=石棉混凝土板 -tile.concrete_slab.concrete_smooth.name=混凝土板 -tile.concrete_slab.ducrete.name=高密度贫铀混凝土瓷砖板 -tile.concrete_slab.ducrete_smooth.name=高密度贫铀混凝土板 tile.concrete_smooth.name=混凝土 -tile.concrete_smooth_stairs.name=混凝土楼梯 -tile.concrete_stairs.name=混凝土瓷砖楼梯 -tile.concrete_super.name=über混凝土 +tile.concrete_stairs.name=混凝土瓦楼梯 +tile.concrete_super.name=Über混凝土 tile.concrete_super_broken.name=发霉的碎片 -tile.conveyor.name=输送带 -tile.conveyor_chute.name=输送带滑槽 -tile.conveyor_double.name=双轨道输送带 -tile.conveyor_lift.name=垂直输送带 -tile.conveyor_triple.name=三轨道输送带 +tile.conveyor.name=传送带 +tile.conveyor_chute.name=滑槽 +tile.conveyor_double.name=双通道传送带 +tile.conveyor_lift.name=提升式传送带 +tile.conveyor_triple.name=三通道传送带 tile.corium_block.name=堆芯熔融物 -tile.crane_boxer.name=输送带打包机 -tile.crane_extractor.name=输送带提取器 -tile.crane_inserter.name=输送带导入器 -tile.crane_router.name=输送带分拣机 -tile.crane_unboxer.name=输送带解包机 +tile.crane_boxer.name=传送带打包器 +tile.crane_extractor.name=传送带输出器 +tile.crane_grabber.name=传送带抓取器 +tile.crane_inserter.name=传送带输入器 +tile.crane_router.name=传送带分流器 +tile.crane_splitter.name=传送带分离器 +tile.crane_unboxer.name=传送带解包器 tile.crashed_bomb.name=哑弹 tile.crate.name=补给箱 -tile.crate_ammo.name=星辉补给箱 +tile.crate_ammo.name=星辉金属补给箱 tile.crate_can.name=罐头补给箱 -tile.crate_desh.name=Desh板条箱 +tile.crate_desh.name=德什制箱子 tile.crate_iron.name=铁箱 tile.crate_jungle.name=硫砷钢箱 tile.crate_lead.name=危险品补给箱 @@ -4331,10 +4479,11 @@ tile.deco_aluminium.name=铝装饰块 tile.deco_asbestos.name=石棉瓦 tile.deco_beryllium.name=铍装饰块 tile.deco_computer.ibm_300pl.name=IBM个人电脑300PL -tile.deco_emitter.name=Deco发光体 +tile.deco_emitter.name=装饰性激光发射器 +tile.part_emitter.name=装饰性粒子生成器 tile.deco_lead.name=铅装饰块 -tile.deco_rbmk.name=RBMK装饰块 -tile.deco_rbmk_smooth.name=平滑RBMK装饰块 +tile.deco_rbmk.name=RBMK石墨式反应堆装饰块 +tile.deco_rbmk_smooth.name=平滑RBMK石墨式反应堆装饰块 tile.deco_red_copper.name=紫铜装饰块 tile.deco_pipe.name=钢制管道 tile.deco_pipe_rusted.name=生锈的钢制管道 @@ -4364,11 +4513,11 @@ tile.deco_steel.name=钢装饰块 tile.deco_titanium.name=钛装饰块 tile.deco_tungsten.name=钨装饰块 tile.decon.name=玩家去污器 -tile.depth_brick.name=深层岩石砖 -tile.depth_dnt.name=DNT加固深层岩石砖 -tile.depth_nether_brick.name=下界深层岩石砖 -tile.depth_nether_tiles.name=下界深层岩石瓷砖 -tile.depth_tiles.name=深层岩石瓷砖 +tile.depth_brick.name=深板岩砖 +tile.depth_dnt.name=双聚中子态素强化的深板岩砖 +tile.depth_nether_brick.name=下界深板岩砖 +tile.depth_nether_tiles.name=下界深板岩瓦 +tile.depth_tiles.name=深板岩瓦 tile.det_charge.name=炸药 tile.det_cord.name=炸药引信 tile.det_miner.name=采矿炸药 @@ -4378,71 +4527,73 @@ tile.dfc_emitter.name=DFC发射器 tile.dfc_injector.name=DFC燃料喷射器 tile.dfc_receiver.name=DFC接收器 tile.dfc_stabilizer.name=DFC稳定器 -tile.dirt_dead.name=泥渣 -tile.dirt_oily.name=油泥 +tile.dirt_dead.name=荒土 +tile.dirt_oily.name=油污 tile.drill_pipe.name=钻杆 tile.door_bunker.name=仓门 -tile.door_metal.name=金属门 tile.door_office.name=办公室门 -tile.ducrete.name=高密度贫铀混凝土瓷砖 -tile.ducrete_stairs.name=高密度贫铀混凝土瓷砖楼梯 -tile.ducrete_smooth.name=高密度贫铀混凝土 -tile.ducrete_smooth_stairs.name=高密度贫铀混凝土楼梯 +tile.door_metal.name=金属门 +tile.ducrete.name=贫铀高密度混凝土瓦 +tile.ducrete_stairs.name=贫铀高密度混凝土瓦楼梯 +tile.ducrete_smooth.name=贫铀高密度混凝土 +tile.ducrete_smooth_stairs.name=贫铀高密度混凝土台阶 tile.dummy_block.name=虚拟方块 tile.dummy_port.name=虚拟方块[电力接口] -tile.dungeon_chain.name=金属链 -tile.dynamite.name=炸药 -tile.emp_bomb.name=EMP炸弹 +tile.dungeon_chain.name=铁链 +tile.dynamite.name=甘油炸药 +tile.emp_bomb.name=EMP电磁脉冲炸弹 tile.factory_advanced_conductor.name=高级工厂电力端口 tile.factory_advanced_core.name=高级工厂核心组件 tile.factory_advanced_furnace.name=高级工厂端口 -tile.factory_advanced_hull.name=高级工厂外壳 +tile.factory_advanced_hull.name=高级工厂方块 tile.factory_titanium_conductor.name=工厂电力端口 tile.factory_titanium_core.name=工厂核心组件 tile.factory_titanium_furnace.name=工厂端口 -tile.factory_titanium_hull.name=工厂外壳 +tile.factory_titanium_hull.name=工厂方块 tile.fallout.name=辐射尘 +tile.fan.name=风扇 tile.fence_metal.name=铁丝网围栏 tile.field_disturber.name=高能场干扰机 -tile.filing_cabinet.green.name=蒙尘的文件柜 +tile.filing_cabinet.green.name=布满灰尘的文件柜 tile.filing_cabinet.steel.name=钢制文件柜 -tile.fire_digamma.name=挥之不去的迪伽马之火 +tile.filing_cabinet.name=文件柜 +tile.fire_digamma.name=挥之不去的迪伽玛之火 tile.fire_door.name=防火门 -tile.fireworks.name=烟花箱 -tile.fireworks.charges=已充能: %s +tile.fireworks.name=烟花 +tile.fireworks.charges=装药: %s tile.fireworks.message=信息: %s tile.fireworks.color=颜色: %s -tile.fissure_bomb.name=裂缝炸弹 +tile.fissure_bomb.name=裂变炸弹 tile.flame_war.name=盒中论战 tile.float_bomb.name=悬浮炸弹 -tile.fluid_duct.name=通用流体管道 -tile.fluid_duct_box.name=通用流体管道(方形) +tile.fluid_duct.name=通用流体管道 (已弃用) +tile.fluid_duct_box.name=通用流体管道(箱形管) tile.fluid_duct_gauge.name=流量计管 -tile.fluid_duct_gauge.desc=显示每个游戏刻在管网有多少流体移动的管道$由桶或罐连接的分离网络被视为一个共享网络。 +tile.fluid_duct_gauge.desc=显示每个tick在网络中$流过多少流体的管道.$由桶或罐连接的分离网络$会被视为一个共享网络. tile.fluid_duct_neo.name=通用流体管道 tile.fluid_duct_paintable.name=可喷漆涂层通用流体导管 -tile.fluid_duct_solid.name=带涂层的通用流体导管 +tile.fluid_duct_solid.name=涂层通用流体导管(已弃用) tile.foam_layer.name=泡沫层 -tile.foundry_basin.name=铸造水池 -tile.foundry_channel.name=铸造浇道 -tile.foundry_tank.name=铸造池 -tile.foundry_mold.name=浅铸造池 -tile.foundry_outlet.name=铸造出口 -tile.fraction_spacer.name=分馏塔分隔器 +tile.foundry_basin.name=浇筑盆 +tile.foundry_channel.name=浇筑道 +tile.foundry_tank.name=储液池 +tile.foundry_mold.name=浅浇筑盆 +tile.foundry_outlet.name=浇筑口 +tile.fraction_spacer.name=分馏塔分离器 tile.frozen_dirt.name=冰冻土 tile.frozen_grass.name=冰冻草 tile.frozen_log.name=冰冻原木 tile.frozen_planks.name=冰冻木板 -tile.furnace_combination.name=复式炼焦炉 -tile.furnace_combination.desc=一种可以生产木炭和煤焦炭的大熔炉$产生流体副产品$传热速率:ΔT*0.25 TU/T -tile.furnace_iron.name=铁炉 -tile.furnace_iron.desc=更大、效率更高的炉子,在闲置时不会浪费燃料。 -tile.furnace_steel.name=钢炉 -tile.furnace_steel.desc=非常大的熔炉,冶炼矿石时可提供加成。$这需要外部热源$传热率:ΔT*0.05tu/T$(Δ表示差值,T表示温度) +tile.furnace_combination.name=组合炉 +tile.furnace_combination.desc=可以生产木炭和焦煤的大熔炉.$产生流体副产品.$传热速率: ΔT*0.25 TU/t +tile.furnace_iron.name=铁制熔炉 +tile.furnace_iron.desc=更大、效率更高的熔炉,$闲置时不浪费燃料. +tile.furnace_steel.name=钢制熔炉 +tile.furnace_steel.desc=冶炼矿石时可以提供额外物品的$超大熔炉. 需要外部热源.$传热速率: ΔT*0.05 TU/t$(Δ 表示温差, T 表示温度) tile.fusion_center.name=中心磁铁 tile.fusion_conductor.name=超导磁体 tile.fusion_core.name=聚变反应堆控制器 -tile.fusion_hatch.name=聚变反应堆端口 +tile.fusion_hatch.name=风管装饰块 tile.fusion_heater.name=等离子加热器 tile.fusion_motor.name=磁体马达 tile.fwatz_computer.name=Watz聚变反应堆计算矩阵 @@ -4450,19 +4601,19 @@ tile.fwatz_conductor.name=4000K超导磁体 tile.fwatz_cooler.name=冷却液罐壳 tile.fwatz_core.name=Watz聚变反应堆控制器 tile.fwatz_hatch.name=Watz聚变反应堆端口 -tile.fwatz_plasma.name=不稳定反Sa326等离子体 +tile.fwatz_plasma.name=不稳定反Sa326异变铀金属等离子体 tile.fwatz_scaffold.name=Watz聚变反应堆结构支架 tile.fwatz_tank.name=冷却液罐 -tile.gas_asbestos.name=石棉粉尘 -tile.gas_coal.name=空气中的煤尘 +tile.gas_asbestos.name=漂浮石棉颗粒 +tile.gas_coal.name=漂浮煤尘 tile.gas_duct.name=输气管道 tile.gas_duct_solid.name=密封输气管 -tile.gas_explosive.name=爆炸性气体 -tile.gas_flammable.name=可燃气体 +tile.gas_explosive.name=易爆气体 +tile.gas_flammable.name=易燃气体 tile.gas_meltdown.name=熔毁气体 -tile.gas_monoxide.name=一氧化碳 -tile.gas_radon.name=氡气 -tile.gas_radon_dense.name=高浓度氡气 +tile.gas_monoxide.name=一氧化碳气体 +tile.gas_radon.name=放射性氡气 +tile.gas_radon_dense.name=浓密放射性氡气 tile.gas_radon_tomb.name=古墓气体 tile.geiger.name=盖革计数器 tile.glass_ash.name=灰烬玻璃 @@ -4472,50 +4623,50 @@ tile.glass_polonium.name=钋玻璃 tile.glass_quartz.name=石英玻璃 tile.glass_trinitite.name=核融玻璃 tile.glass_uranium.name=铀玻璃 -tile.gneiss_brick.name=页岩砖 -tile.gneiss_chiseled.name=錾制页岩砖 -tile.gneiss_tile.name=页岩瓷砖 +tile.gneiss_brick.name=片岩砖 +tile.gneiss_chiseled.name=錾制片岩 +tile.gneiss_tile.name=片岩瓦 tile.gravel_diamond.name=钻石砂砾 tile.gravel_obsidian.name=碎黑曜石 tile.hadron_access.name=粒子加速器接入终端 tile.hadron_analysis.name=粒子加速器分析室壁 tile.hadron_analysis_glass.name=粒子加速器分析室窗口 -tile.hadron_coil_alloy.name=密集超导线圈 -tile.hadron_coil_chlorophyte.name=致密叶绿线圈 -tile.hadron_coil_gold.name=致密金线圈 -tile.hadron_coil_magtung.name=致密4000K超导线圈 -tile.hadron_coil_mese.name=密集Mese线圈 -tile.hadron_coil_neodymium.name=致密钕线圈 -tile.hadron_coil_schrabidate.name=致密Sa酸铁线圈 -tile.hadron_coil_schrabidium.name=密集Sa326线圈 -tile.hadron_coil_starmetal.name=密集星辉线圈 -tile.hadron_core.name=粒子加速器核心组件 -tile.hadron_diode.name=肖基特二极管 -tile.hadron_plating.name=粒子加速器镀层 -tile.hadron_plating_black.name=粒子加速器镀层 (黑) -tile.hadron_plating_blue.name=粒子加速器镀层 (蓝) -tile.hadron_plating_glass.name=粒子加速器镀层 (窗口) -tile.hadron_plating_striped.name=粒子加速器镀层(低温危险) -tile.hadron_plating_voltz.name=粒子加速器镀层 (VOLTZ) -tile.hadron_plating_yellow.name=粒子加速器镀层(Yello染料) -tile.hadron_power.name=粒子加速器电源接口 -tile.hadron_power_10m.name=粒子加速器电源接口(10MHE) -tile.hadron_power_100m.name=粒子加速器电源接口(100MHE) -tile.hadron_power_1g.name=粒子加速器电源接口(1GHE) -tile.hadron_power_10g.name=粒子加速器电源接口(10GHE) +tile.hadron_coil_alloy.name=致密超导加速线圈 +tile.hadron_coil_chlorophyte.name=致密绿藻制电磁加速线圈 +tile.hadron_coil_gold.name=致密金制电磁加速线圈 +tile.hadron_coil_magtung.name=致密4000K超导电磁加速线圈 +tile.hadron_coil_mese.name=致密月石制电磁加速线圈 +tile.hadron_coil_neodymium.name=致密钕制电磁加速线圈 +tile.hadron_coil_schrabidate.name=致密Sa326元素酸化铁制电磁加速线圈 +tile.hadron_coil_schrabidium.name=致密Sa326异变铀金属制电磁加速线圈 +tile.hadron_coil_starmetal.name=致密星辉金属制电磁加速线圈 +tile.hadron_core.name=粒子加速器核心部件 +tile.hadron_diode.name=肖特基粒子二极管 +tile.hadron_plating.name=粒子加速器电镀层 +tile.hadron_plating_black.name=粒子加速器电镀层 (黑色) +tile.hadron_plating_blue.name=粒子加速器电镀层 (蓝色) +tile.hadron_plating_glass.name=粒子加速器电镀层 (窗口) +tile.hadron_plating_striped.name=粒子加速器电镀层 (炫酷的警示条纹) +tile.hadron_plating_voltz.name=粒子加速器电镀层 (VOLTZ) +tile.hadron_plating_yellow.name=粒子加速器电镀层 (黄色) +tile.hadron_power.name=粒子加速器电力接口 (1MHE) +tile.hadron_power_10m.name=粒子加速器电力接口 (10MHE) +tile.hadron_power_100m.name=粒子加速器电力接口 (100MHE) +tile.hadron_power_1g.name=粒子加速器电力接口 (1GHE) +tile.hadron_power_10g.name=粒子加速器电力接口 (10GHE) tile.hazmat.name=防辐射布块 tile.heater_electric.name=电加热器 -tile.heater_electric.desc=利用电能产生热量$以85%的效率接受来自底部的热量$可使用螺丝刀进行配置。 +tile.heater_electric.desc=使用电能来产生热量.$可以85%的效率接受来自底部的热量.$可用螺丝刀配置效率. tile.heater_firebox.name=燃烧室 -tile.heater_firebox.desc=燃烧固体燃料以产生热量。 -tile.heater_heatex.name=换热加热器 -tile.heater_heatex.desc=从热流体中产生热量。 -tile.heater_oilburner.name=流体燃烧器 -tile.heater_oilburner.desc=燃烧可燃液体产生热量。 +tile.heater_firebox.desc=燃烧固体燃料以产生热量. +tile.heater_heatex.name=热交换加热器 +tile.heater_heatex.desc=从热流体中产生热量. +tile.heater_oilburner.name=液体燃料燃烧室 +tile.heater_oilburner.desc=燃烧液体燃料以产生热量.$可使用螺丝刀进行配置. tile.heater_oven.name=加热炉 -tile.heater_oven.desc=燃烧固体燃料以产生热量$以50%的效率接受来自底部的热量。 +tile.heater_oven.desc=燃烧固体燃料以产生热量.$可以85%的效率接受来自底部的热量. tile.hev_battery.name=盔甲电池 -tile.impact_dirt.name=烧焦的泥土 +tile.impact_dirt.name=焦土 tile.iter.name=聚变反应堆 tile.ladder_aluminium.name=铝制梯子 tile.ladder_cobalt.name=钴制梯子 @@ -4541,22 +4692,23 @@ tile.machine_arc_furnace_off.name=电弧炉 tile.machine_arc_furnace_on.name=电弧炉 tile.machine_armor_table.name=装甲改装台 tile.machine_assembler.name=装配机 -tile.machine_assemfac.name=装配厂 -tile.machine_autocrafter.name=自动工作台 -tile.machine_autosaw.name=自动嗡嗡锯 -tile.machine_bat9000.name=巨尻-9000 储罐 +tile.machine_assemfac.name=大型装配厂 +tile.machine_autocrafter.name=自动化工作台 +tile.machine_autosaw.name=自动锯 +tile.machine_bat9000.name="巨臀"9000号储罐 tile.machine_battery.name=蓄电池 tile.machine_battery_potato.name=马铃薯电池组 -tile.machine_boiler.name=大型锅炉 -tile.machine_boiler.desc=可以烧水或加热油的大型锅炉$需要外部热源$传热速率:ΔT*0.01 TU/T -tile.machine_boiler_electric_off.name=电锅炉 -tile.machine_boiler_electric_on.name=电锅炉 -tile.machine_boiler_off.name=锅炉 -tile.machine_boiler_on.name=锅炉 +tile.machine_boiler.name=大锅炉 +tile.machine_boiler.desc=可以煮沸水或加热油的大型锅炉.$需要外部热源.$传热速率: ΔT*0.01 TU/t +tile.machine_boiler_electric_off.name=电力原油加热器 +tile.machine_boiler_electric_on.name=电力原油加热器 +tile.machine_boiler_off.name=原油加热器 +tile.machine_boiler_on.name=原油加热器 tile.machine_catalytic_cracker.name=催化裂化塔 +tile.machine_catalytic_reformer.name=催化重整装置 tile.machine_centrifuge.name=离心机 tile.machine_chemfac.name=大型化工厂 -tile.machine_chemplant.name=化工厂 +tile.machine_chemplant.name=化工装置 tile.machine_chungus.name=“利维坦”巨型汽轮机 tile.machine_chungus.desc=效率: 85%% tile.machine_coal_off.name=火力发电机 @@ -4568,61 +4720,62 @@ tile.machine_controller.name=反应堆遥控模块 tile.machine_converter_he_rf.name=HE→RF转换器 tile.machine_converter_rf_he.name=RF→HE转换器 tile.machine_crucible.name=坩埚 -tile.machine_crystallizer.name=矿物酸化器 +tile.machine_crystallizer.name=矿物结晶机 tile.machine_cyclotron.name=回旋加速器 -tile.machine_detector.name=功率检测器 +tile.machine_detector.name=电力功率检测器 tile.machine_deuterium_extractor.name=氘提取器 tile.machine_deuterium_tower.name=氘萃取塔 tile.machine_diesel.name=柴油发电机 +tile.machine_difurnace_extension.name=高炉风道 tile.machine_difurnace_off.name=高炉 tile.machine_difurnace_on.name=高炉 -tile.machine_difurnace_rtg_off.name=核高炉 -tile.machine_difurnace_rtg_on.name=核高炉 -tile.machine_dineutronium_battery.name=Spark蓄电池 +tile.machine_difurnace_rtg_off.name=核能高炉 +tile.machine_difurnace_rtg_on.name=核能高炉 +tile.machine_dineutronium_battery.name=Spark闪闪蓄电池 tile.machine_drill.name=自动采矿钻机 tile.machine_electric_furnace_off.name=电炉 tile.machine_electric_furnace_on.name=电炉 tile.machine_epress.name=电动锻压机 tile.machine_excavator.name=大型采矿钻机 -tile.machine_fel.name=FEL自由电子激光器 +tile.machine_fel.name=FEL tile.machine_fensu.name=FEnSU飞轮储能系统 -tile.machine_flare.name=高架火炬 +tile.machine_flare.name=废气燃烧塔 tile.machine_fluidtank.name=储罐 tile.machine_forcefield.name=力场发生器 tile.machine_fraction_tower.name=分馏塔 -tile.machine_fracking_tower.name=水力压裂塔 +tile.machine_fracking_tower.name=压裂式钻塔 tile.machine_gascent.name=气体离心机 tile.machine_generator.name=核反应堆[旧] tile.machine_geo.name=地热发电机 tile.machine_hephaestus.name=地热换热器 tile.machine_industrial_generator.name=工业发电机 tile.machine_keyforge.name=锁匠桌 -tile.machine_large_turbine.name=工业汽轮机 +tile.machine_large_turbine.name=大型工业汽轮机 tile.machine_large_turbine.desc=效率: 100%% tile.machine_liquefactor.name=工业液化机 -tile.machine_liquefactor.desc=强大的通用机器,可将物品转化为液体$配有多功能催化组件、加热元件和用于石化液化的内置水合器。 +tile.machine_liquefactor.desc=强大的通用型机器,可将物品转化为液体.$配有多功能催化组件,加热元件$和用于石油化工进行液化的内置水合器. tile.machine_lithium_battery.name=锂蓄电池 tile.machine_microwave.name=微波炉 -tile.machine_mining_laser.name=采矿激光 +tile.machine_mining_laser.name=自动激光采矿钻机 tile.machine_minirtg.name=放射性同位素电池 tile.machine_missile_assembly.name=导弹装配台 -tile.machine_mixer.name=工业搅拌机 +tile.machine_mixer.name=工业混合机 tile.machine_nuke_furnace_off.name=核熔炉 tile.machine_nuke_furnace_on.name=核熔炉 tile.machine_orbus.name=重型磁约束储罐 tile.machine_powerrtg.name=PT同位素电池 tile.machine_press.name=火力锻压机 tile.machine_puf6_tank.name=六氟化钚储罐 -tile.machine_pumpjack.name=石油钻机 +tile.machine_pumpjack.name=梁式抽油机 tile.machine_radar.name=雷达 tile.machine_radgen.name=辐射能量发电机 -tile.machine_radiolysis.name=放射性同位素热电机和辐射裂解室 +tile.machine_radiolysis.name=放射性同位素热电发生器和辐解室 tile.machine_reactor.name=增殖反应堆 -tile.machine_reactor_small.name=核反应堆 +tile.machine_reactor_small.name=研究性反应堆 tile.machine_refinery.name=炼油厂 tile.machine_reix_mainframe.name=Rei-X主机[开发中] tile.machine_rtg_blue.name=对流发电机 -tile.machine_rtg_cyan.name=Sa326衰变发电机 [开发中] +tile.machine_rtg_cyan.name=Sa326异变铀金属衰变发电机 [开发中] tile.machine_rtg_furnace_off.name=放射性同位素热力炉[RTG] tile.machine_rtg_furnace_on.name=放射性同位素热力炉[RTG] tile.machine_rtg_green.name=韦德赛富集发电机 @@ -4632,25 +4785,26 @@ tile.machine_rtg_purple.name=反物质湮灭发发电机 tile.machine_rtg_red.name=离子发生器 tile.machine_rtg_yellow.name=奥斯超级燃料反应堆 tile.machine_satlinker.name=卫星ID管理器 -tile.machine_sawmill.name=斯特林锯木机 -tile.machine_schrabidium_battery.name=Sa326蓄电池 -tile.machine_schrabidium_transmutator.name=Sa326嬗变装置 -tile.machine_selenium.name=星型发动机 +tile.machine_sawmill.name=斯特林锯木厂 +tile.machine_sawmill.desc=需要外部热源.$传热效率: T*0.1 TU/t$ 最小热量输入 : 100 TU/t, 最大热量输入: 300 TU/t +tile.machine_schrabidium_battery.name=Sa326异变铀金属蓄电池 +tile.machine_schrabidium_transmutator.name=Sa326异变铀金属嬗变装置 +tile.machine_selenium.name=星型径向性能发电机 tile.machine_shredder.name=粉碎机 -tile.machine_silex.name=激光同位素分离室 +tile.machine_silex.name=同位素激光分离室(SILEX) tile.machine_siren.name=警报器 -tile.machine_solar_boiler.name=太阳能锅炉 +tile.machine_solar_boiler.name=太阳能蒸发塔 tile.machine_solidifier.name=工业固化机 -tile.machine_solidifier.desc=配备冷却系统和其他多功能工具的通用机器,用于使用冷冻和石化聚合等多种工艺将流体转化为固体。 +tile.machine_solidifier.desc=配备冷却系统和其他多功能工具的通用型机器$用于通过冷冻和石化聚合等多种工艺$将液体变为固体. tile.machine_spp_bottom.name=ZPE电位发生器 [底部] tile.machine_spp_top.name=ZPE电位发生器 [顶部] -tile.machine_steam_engine.name=蒸汽机 -tile.machine_steam_engine.desc=效率:85% -tile.machine_stirling.name=斯特林发电机 -tile.machine_stirling.desc=它将热量转化为能量。这需要外部热源$传热率:T*0.1 TU/T$最大进气量:300 TU/T$效率:50% -tile.machine_stirling_steel.name=重型斯特林发动机 -tile.machine_stirling_steel.desc=它将热量转化为能量。这需要外部热源$使用更重的齿轮来支持更高的温度$传热率:T*0.1 TU/T$最大进气量:1500 TU/T$效率:50% +tile.machine_steam_engine.name=蒸汽引擎 +tile.machine_steam_engine.desc=效率: 85%% +tile.machine_stirling.name=斯特林引擎 +tile.machine_stirling.desc=将热量转化为能量. 需要外部热源.$传热速率: T*0.1 TU/t$最大吸热速率: 300 TU/t$效率: 50%% tile.machine_storage_drum.name=核废料处理桶 +tile.machine_stirling_steel.name=重型斯特林发电机 +tile.machine_stirling_steel.desc=将热量转化为能量. 需要外部热源.$使用更重的齿轮来支持更高的温度.$传热效率: T*0.1 TU/t$最大吸热速率: 1500 TU/t$转换效率: 50%% tile.machine_telelinker.name=炮塔ID管理器 tile.machine_teleporter.name=传送机 tile.machine_tower_large.name=冷却塔 @@ -4662,20 +4816,21 @@ tile.machine_transformer_dnt_20.name=DNT-1Hz变频器 tile.machine_turbine.name=汽轮机 tile.machine_turbine.desc=效率: 85%% tile.machine_turbinegas.name=联合循环燃气轮机 -tile.machine_turbofan.name=涡扇发动机 +tile.machine_turbofan.name=涡扇发电机 tile.machine_uf6_tank.name=六氟化铀储罐 -tile.machine_waste_drum.name=乏燃料池 +tile.machine_vacuum_distill.name=真空精炼厂 +tile.machine_waste_drum.name=乏核燃料冷却池 tile.machine_well.name=钻油塔 -tile.machine_zirnox.name=锆诺克斯核反应堆 +tile.machine_zirnox.name=ZIRNOX锆诺克斯反应堆 tile.marker_structure.name=多方块结构信标 -tile.mass_storage.name=大规模存储单元 +tile.mass_storage.name=大容量存储单元 tile.meteor_battery.name=星辉静电发生器 tile.meteor_brick.name=陨石砖 tile.meteor_brick_chiseled.name=錾制陨石砖 tile.meteor_brick_cracked.name=裂纹陨石砖 tile.meteor_brick_mossy.name=苔藓陨石砖 tile.meteor_pillar.name=竖纹陨石砖 -tile.meteor_polished.name=平滑陨石块 +tile.meteor_polished.name=磨制陨石块 tile.meteor_spawner.name=赛博螃蟹组装机 tile.mine_ap.name=反步兵地雷 tile.mine_fat.name=核地雷 @@ -4693,7 +4848,7 @@ tile.nuke_fstbmb.name=BF炸弹 tile.nuke_gadget.name=小玩意 tile.nuke_man.name=胖子 tile.nuke_mike.name=常青藤迈克 -tile.nuke_n2.name=N2炸弹 +tile.nuke_n2.name=N²炸弹 tile.nuke_n45.name=N45水雷 tile.nuke_prototype.name=原型 tile.nuke_solinium.name=蔚蓝洗礼 @@ -4701,54 +4856,54 @@ tile.nuke_tsar.name=沙皇炸弹 tile.oil_duct.name=输油管 tile.oil_duct_solid.name=粗输油管 tile.oil_pipe.name=原油抽取管 -tile.ore_alexandrite.name=亚历山大变石矿 +tile.ore_alexandrite.name=紫翠宝石矿 tile.ore_aluminium.name=铝矿石 tile.ore_asbestos.name=石棉矿 tile.ore_australium.name=奥斯矿石 -tile.ore_bedrock.name=基岩矿石 -tile.ore_bedrock_coltan.name=基岩钶钽铁矿 -tile.ore_bedrock_oil.name=基岩油层 +tile.ore_bedrock.name=基岩矿床 +tile.ore_bedrock_coltan.name=基岩层钶钽铁矿 +tile.ore_bedrock_oil.name=基岩层石油矿床 tile.ore_beryllium.name=铍矿石 tile.ore_cinnebar.name=朱砂矿石 tile.ore_coal_oil.name=含油煤矿石 -tile.ore_coal_oil_burning.name=燃烧的含油煤矿石 +tile.ore_coal_oil_burning.name=烧焦的含油煤矿石 tile.ore_cobalt.name=钴矿石 -tile.ore_coltan.name=钶钽铁矿 +tile.ore_coltan.name=钶钽铁矿石 tile.ore_copper.name=铜矿石 tile.ore_daffergon.name=达夫贡矿石 -tile.ore_depth_borax.name=深层硼砂矿 +tile.ore_depth_borax.name=深层硼砂矿石 tile.ore_depth_cinnebar.name=深层朱砂矿石 -tile.ore_depth_nether_neodymium.name=深层钕矿石 +tile.ore_depth_nether_neodymium.name=下界深层钕矿石 tile.ore_depth_zirconium.name=深层锆矿石 tile.ore_fluorite.name=氟石矿石 -tile.ore_gneiss_asbestos.name=石棉矿页岩 -tile.ore_gneiss_copper.name=铜矿页岩 -tile.ore_gneiss_gas.name=气页岩 -tile.ore_gneiss_gold.name=金矿页岩 -tile.ore_gneiss_iron.name=铁矿页岩 -tile.ore_gneiss_lithium.name=锂矿页岩 -tile.ore_gneiss_rare.name=稀土矿页岩 -tile.ore_gneiss_schrabidium.name=Sa326矿页岩 -tile.ore_gneiss_uranium.name=铀矿页岩 -tile.ore_gneiss_uranium_scorched.name=烧焦的铀矿页岩 +tile.ore_gneiss_asbestos.name=片岩石棉矿 +tile.ore_gneiss_copper.name=片岩铜矿石 +tile.ore_gneiss_gas.name=天然气页岩 +tile.ore_gneiss_gold.name=片岩金矿石 +tile.ore_gneiss_iron.name=片岩铁矿石 +tile.ore_gneiss_lithium.name=片岩锂矿石 +tile.ore_gneiss_rare.name=片岩稀土矿 +tile.ore_gneiss_schrabidium.name=片岩Sa326矿石 +tile.ore_gneiss_uranium.name=片岩铀矿 +tile.ore_gneiss_uranium_scorched.name=烧焦的片岩铀矿 tile.ore_lead.name=铅矿石 tile.ore_lignite.name=褐煤矿石 tile.ore_meteor_aluminium.name=铝矿陨石 tile.ore_meteor_copper.name=铜矿陨石 tile.ore_meteor_lead.name=铅矿陨石 tile.ore_meteor_lithium.name=锂矿陨石 -tile.ore_meteor_starmetal.name=星辉矿陨石 +tile.ore_meteor_starmetal.name=星辉金属矿陨石 tile.ore_meteor_sulfur.name=硫磺矿陨石 tile.ore_meteor_thorium.name=钍矿陨石 tile.ore_meteor_titanium.name=钛矿陨石 tile.ore_meteor_tungsten.name=钨矿陨石 tile.ore_meteor_uranium.name=铀矿陨石 -tile.ore_nether_coal.name=燃烧下界煤矿 +tile.ore_nether_coal.name=燃烧的下界煤矿石 tile.ore_nether_cobalt.name=下界钴矿石 tile.ore_nether_fire.name=火矿石 tile.ore_nether_plutonium.name=下界钚矿石 -tile.ore_nether_schrabidium.name=下界Sa326矿石 -tile.ore_nether_smoldering.name=阴燃下界岩 +tile.ore_nether_schrabidium.name=下界Sa326异变铀金属矿石 +tile.ore_nether_smoldering.name=闷烧的下界石 tile.ore_nether_sulfur.name=下界硫磺矿石 tile.ore_nether_tungsten.name=下界钨矿石 tile.ore_nether_uranium.name=下界铀矿石 @@ -4760,71 +4915,77 @@ tile.ore_oil_sand.name=沥青砂 tile.ore_random.name=%s 矿 tile.ore_rare.name=稀土矿石 tile.ore_reiium.name=雷恩矿石 -tile.ore_schrabidium.name=Sa326矿石 +tile.ore_schrabidium.name=Sa326异变铀金属矿石 tile.ore_sulfur.name=硫磺矿石 -tile.ore_tektite_osmiridium.name=渗锇熔融石 +tile.ore_tektite_osmiridium.name=渗铱锇熔融石 tile.ore_thorium.name=钍矿石 tile.ore_tikite.name=赛瑞克矿石 tile.ore_titanium.name=钛矿石 tile.ore_tungsten.name=钨矿石 -tile.ore_unobtainium.name=难得素矿石 +tile.ore_unobtainium.name=阿诺布汀矿石 tile.ore_uranium.name=铀矿石 tile.ore_uranium_scorched.name=烧焦的铀矿石 tile.ore_verticium.name=韦德赛矿石 -tile.ore_volcano.name=地热裂缝 +tile.ore_volcano.name=地热口 tile.ore_weidanium.name=魏丹矿石 tile.pink_barrel.name=煤油桶 tile.pink_log.name=粉色原木 tile.pink_planks.name=粉色木板 tile.pink_slab.name=粉色木半砖 tile.pink_stairs.name=粉色木台阶 -tile.plant_dead.name=死亡植物 +tile.plant_dead.name=死亡的植物 +tile.plant_flower.cd0.name=芥柳 +tile.plant_flower.cd1.name=芥柳 tile.plant_flower.foxglove.name=毛地黄 tile.plant_flower.nightshade.name=颠茄 tile.plant_flower.tobacco.name=烟草 tile.plant_flower.weed.name=大麻 tile.plant_reeds.name=芦苇 +tile.plant_tall.cd2.name=芥柳 +tile.plant_tall.cd3.name=芥柳 +tile.plant_tall.cd4.name=芥柳 (成熟) +tile.plant_tall.weed.name=大麻 tile.plasma.name=等离子 tile.plasma_heater.name=等离子加热器 tile.pole_satellite_receiver.name=卫星天线 tile.pole_top.name=天线顶部 -tile.press_preheater.name=锻压机压力预热器 +tile.press_preheater.name=燃烧器压力预热器 tile.pribris.name=RBMK石墨式反应堆残骸 -tile.pribris_burning.name=燃烧的RBMK反应堆残骸 -tile.pribris_digamma.name=发黑的RBMK反应堆残骸 -tile.pribris_radiating.name=阴燃的RBMK反应堆残骸 -tile.radio_torch_receiver.name=无线电接收器上的红石 -tile.radio_torch_receiver.desc=可在平坦表面或与比较器兼容的方块上放置 -tile.radio_torch_sender.name=无线电发射机上的红石 -tile.radio_torch_sender.desc=可在平坦表面或比较器兼容的方块上放置$读取红石信号或比较器输入 +tile.pribris_burning.name=燃烧的RBMK石墨式反应堆残骸 +tile.pribris_digamma.name=发黑的RBMK石墨式反应堆残骸 +tile.pribris_radiating.name=阴燃的RBMK石墨式反应堆残骸 +tile.radio_torch_receiver.name=红石无线信号接收器 +tile.radio_torch_receiver.desc=可在平坦表面或与比较器兼容的块上放置 +tile.radio_torch_sender.name=红石无线信号发送器 +tile.radio_torch_sender.desc=可在平坦表面或与比较器兼容的块上放置$读取红石信号或比较器输入 tile.radiobox.name=无线怪物清除箱 -tile.radiorec.name=坏掉的收音机 +tile.radiorec.name=FM收音机 tile.rail_booster.name=高速动力轨道 tile.rail_highspeed.name=高速轨道 -tile.rail_narrow.name=窄轨距轨道 -tile.rail_wood.name=木制轨道 -tile.rbmk_absorber.name=RBMK反应堆硼中子吸收器 -tile.rbmk_blank.name=RBMK反应堆结构柱 -tile.rbmk_boiler.name=RBMK反应堆蒸汽管道 +tile.rail_narrow.name=窄轨距车厢轨道 +tile.rail_wood.name=木轨 +tile.rbmk_absorber.name=RBMK石墨式反应堆硼中子吸收器 +tile.rbmk_blank.name=RBMK石墨式反应堆结构柱 +tile.rbmk_boiler.name=RBMK石墨式反应堆蒸汽管道 tile.rbmk_console.name=RBMK石墨式反应堆控制台 -tile.rbmk_cooler.name=RBMK冷却器 -tile.rbmk_control.name=RBMK反应堆控制棒 -tile.rbmk_control_auto.name=RBMK反应堆自动控制棒 -tile.rbmk_control_mod.name= RBMK反应堆慢化控制棒 -tile.rbmk_crane_console.name=RBMK起重机控制台 -tile.rbmk_heater.name=RBMK流体加热器 -tile.rbmk_heatex.name=RBMK换热器 -tile.rbmk_loader.name=RBMK反应堆蒸汽导出器 -tile.rbmk_moderator.name=RBMK反应堆石墨慢化剂 -tile.rbmk_outgasser.name=RBMK反应堆辐照通道 -tile.rbmk_reflector.name=RBMK反应堆碳化钨中子反射器 -tile.rbmk_rod.name=RBMK反应堆燃料棒 -tile.rbmk_rod_mod.name= RBMK反应堆慢化燃料棒 -tile.rbmk_rod_reasim.name= RBMK反应堆燃料棒(ReaSim) -tile.rbmk_rod_reasim_mod.name= RBMK反应堆慢化燃料棒(ReaSim) -tile.rbmk_steam_inlet.name=RBMK ReaSim进水口 -tile.rbmk_steam_outlet.name=RBMK ReaSim蒸汽出口 -tile.rbmk_storage.name=RBMK燃料棒存储棒 +tile.rbmk_cooler.name=RBMK石墨式反应堆冷却器 +tile.rbmk_control.name=RBMK石墨式反应堆控制棒 +tile.rbmk_control_auto.name=RBMK石墨式反应堆自动控制棒 +tile.rbmk_control_mod.name=RBMK石墨式反应堆慢化控制棒 +tile.rbmk_crane_console.name=RBMK石墨式反应堆储起重机控制台 +tile.rbmk_heater.name=RBMK石墨式反应堆流体加热器 +tile.rbmk_heatex.name=RBMK石墨式反应堆热交换器 +tile.rbmk_loader.name=RBMK石墨式反应堆蒸汽导出器 +tile.rbmk_moderator.name=RBMK石墨式反应堆石墨慢化剂 +tile.rbmk_outgasser.name=RBMK石墨式反应堆辐照通道 +tile.rbmk_reflector.name=RBMK石墨式反应堆碳化钨中子反射器 +tile.rbmk_rod.name=RBMK石墨式反应堆燃料棒 +tile.rbmk_rod_mod.name=RBMK石墨式反应堆慢化燃料棒 +tile.rbmk_rod_reasim.name=RBMK石墨式反应堆燃料棒(ReaSim) +tile.rbmk_rod_reasim_mod.name=RBMK石墨式反应堆慢化燃料棒(ReaSim) +tile.rbmk_steam_inlet.name=RBMK石墨式反应堆(ReaSim)进水口 +tile.rbmk_steam_outlet.name=RBMK石墨式反应堆(ReaSim)蒸汽出口 +tile.rbmk_storage.name=RBMK石墨式反应堆燃料棒燃料棒储存柱 tile.reactor_computer.name=反应堆控制器 tile.reactor_conductor.name=反应堆锅炉 tile.reactor_control.name=控制棒 @@ -4834,15 +4995,15 @@ tile.reactor_hatch.name=反应堆端口 tile.reactor_inserter.name=反应堆燃料插入器 tile.red_barrel.name=炸药桶 tile.red_cable.name=紫铜电线 -tile.red_cable_classic.name=紫铜电缆(经典型) -tile.red_cable_paintable.name=可涂漆紫铜线 -tile.red_connector.name=电力连接器 +tile.red_cable_classic.name=紫铜电线(经典) +tile.red_cable_paintable.name=可涂漆红铜线缆块 +tile.red_connector.name=电线连接器 tile.red_pylon.name=电线杆 tile.red_pylon_large.name=大型输电塔 tile.red_wire_coated.name=密封紫铜电缆 tile.reinforced_brick.name=强化石头 -tile.reinforced_brick_stairs.name=钢筋石楼梯 -tile.reinforced_ducrete.name=加固高密度贫铀混凝土 +tile.reinforced_brick_stairs.name=强化石头楼梯 +tile.reinforced_ducrete.name=强化贫铀高密度混凝土 tile.reinforced_glass.name=强化玻璃 tile.reinforced_lamp_off.name=强化红石灯 tile.reinforced_lamp_on.name=强化红石灯 @@ -4859,10 +5020,10 @@ tile.sand_dirty.name=油砂 tile.sand_dirty_red.name=红色油砂 tile.sand_gold.name=金沙 tile.sand_gold198.name=金-198沙 -tile.sand_lead.name=铅沙 -tile.sand_polonium.name=钋沙 +tile.sand_lead.name=铅砂 +tile.sand_polonium.name=钋砂 tile.sand_quartz.name=石英砂 -tile.sand_uranium.name=铀沙 +tile.sand_uranium.name=铀砂 tile.sat_dock.name=卸货平台 tile.sat_foeq.name=实验型核能PEAF-Mk.I FOEQ Duna探测器[装饰块] tile.sat_laser.name=轨道死光炮[装饰块] @@ -4870,43 +5031,44 @@ tile.sat_mapper.name=地表测绘卫星[装饰块] tile.sat_radar.name=雷达探测卫星[装饰块] tile.sat_resonator.name=X晶体共振卫星[装饰块] tile.sat_scanner.name=绘测和资源探测卫星[装饰块] -tile.schrabidic_block.name=Sa酸 +tile.schrabidic_block.name=Sa326元素酸液 tile.seal_controller.name=发射井舱门开关 tile.seal_frame.name=发射井舱门框架 tile.seal_hatch.name=发射井舱门 tile.sellafield.0.name=放射性熔融凝固物 -tile.sellafield.1.name=高温放射性熔融凝固物 +tile.sellafield.1.name=热放射性熔融凝固物 tile.sellafield.2.name=沸腾的放射性熔融凝固物 tile.sellafield.3.name=灼热的放射性熔融凝固物 -tile.sellafield.4.name=地狱般的放射性熔融凝固物 -tile.sellafield.5.name=放射性熔融凝固物核心 -tile.sellafield_slaked.name=消沉的放射性熔融凝固物 +tile.sellafield.4.name=地狱的放射性熔融凝固物 +tile.sellafield.5.name=高放射性堆芯熔融凝固物 +tile.sellafield_slaked.name=冷却的放射性熔融凝固物 tile.semtex.name=塞姆汀塑胶炸药 -tile.solar_mirror.name=定日镜 +tile.solar_mirror.name=阳光反射镜 tile.soyuz_capsule.name=货物着陆舱 -tile.soyuz_launcher.name=联盟号发射平台 -tile.spikes.name=地刺 +tile.soyuz_launcher.name=联盟号巨型运载火箭发射平台 +tile.spikes.name=尖刺 tile.stalactite.asbestos.name=石棉钟乳石 tile.stalactite.sulfur.name=含硫钟乳石 -tile.stalagmite.asbestos.name=石棉石笋 -tile.stalagmite.sulfur.name=含硫石笋 +tile.stalagmite.sulfur.name=硫磺石笋 tile.steel_beam.name=钢梁 tile.steel_corner.name=钢墙角 tile.steel_grate.name=钢格栅 +tile.steel_grate_wide.name=物品格栅 +tile.steel_grate_wide.desc=允许掉落的物品和XP穿过 tile.steel_poles.name=钢杆 tile.steel_roof.name=钢天花顶 tile.steel_scaffold.name=钢脚手架 tile.steel_wall.name=钢墙 -tile.stone_cracked.name=破碎的石头 -tile.stone_depth.name=深层岩石 -tile.stone_depth_nether.name=下界深层岩石 -tile.stone_gneiss.name=石墨页岩 +tile.stone_cracked.name=碎石 +tile.stone_depth.name=深板岩 +tile.stone_depth_nether.name=下界深板岩 +tile.stone_gneiss.name=石墨片岩 tile.stone_porous.name=多孔石 -tile.stone_resource.asbestos.name=温石棉 +tile.stone_resource.asbestos.name=蛇纹石石棉 tile.stone_resource.hematite.name=赤铁矿 tile.stone_resource.limestone.name=石灰石 tile.stone_resource.malachite.name=孔雀石 -tile.stone_resource.sulfur.name=硫磺石 +tile.stone_resource.sulfur.name=含硫岩层 tile.struct_iter_core.name=聚变反应堆核心组件 tile.struct_launcher.name=发射台部件 tile.struct_launcher_core.name=紧凑型发射台核心组件 @@ -4914,13 +5076,14 @@ tile.struct_launcher_core_large.name=发射台核心组件 tile.struct_plasma_core.name=等离子加热器核心组件 tile.struct_scaffold.name=发射台骨架 tile.struct_soyuz_core.name=联盟号发射器核心组件 -tile.substation.name=变电站 +tile.struct_watz_core.name=Watz瓦茨电厂核心组件 +tile.substation.name=变电器 tile.sulfuric_acid_block.name=硫酸 -tile.taint.name=腐质 +tile.taint.name=污点 tile.taint_barrel.name=IMP残渣桶 tile.tape_recorder.name=录音机 tile.tektite.name=熔融石 -tile.teleanchor.name=传送锚 +tile.teleanchor.name=远程传送锚 tile.tesla.name=特斯拉线圈 tile.test_nuke.name=测试核弹 tile.therm_endo.name=吸热炸弹 @@ -4930,74 +5093,81 @@ tile.tile_lab_broken.name=破损实验室瓷砖 tile.tile_lab_cracked.name=开裂实验室瓷砖 tile.tnt_ntm.name=货真价实的TNT tile.toxic_block.name=绿色软泥 -tile.transition_seal.name=巨型安全门 -tile.turret_arty.name=重炮炮塔“格雷格” -tile.turret_cheapo.name=奇普-加特林哨兵 -tile.turret_chekhov.name=重机枪炮塔“契诃夫的枪” -tile.turret_cwis.name=Mk-15“密集阵”近防系统 +tile.transition_seal.name=过渡仓密封门 +tile.turret_arty.name=重炮炮塔"格里格" +tile.turret_cheapo.name=奇普·加特林哨兵 +tile.turret_chekhov.name=重机枪炮台"契诃夫之枪" +tile.turret_cwis.name=MK-15“密集阵”近防系统 tile.turret_flamer.name=喷火炮塔 -tile.turret_friendly.name=轻机枪炮塔“友好先生” +tile.turret_friendly.name=链式机枪炮塔"友好先生" tile.turret_fritz.name=重型火焰喷射器炮塔“弗里茨” +tile.turret_howard.name=双管近防炮"霍华德" +tile.turret_howard_damaged.name=双管近防炮 "玛土撒拉" tile.turret_heavy.name=重型机枪炮塔 -tile.turret_himars.name=火箭炮塔“亨利” -tile.turret_howard.name=双联守门员近防系统“霍华德” -tile.turret_howard_damaged.name=CIWS双联守门员近防系统 "玛士撒拉" -tile.turret_jeremy.name=重炮炮塔“杰里米” +tile.turret_himars.name=远程火箭弹炮塔"亨利" +tile.turret_jeremy.name=重炮炮台"杰米里" tile.turret_light.name=轻型机枪炮塔 tile.turret_maxwell.name=高能微波炮塔 "麦克斯韦" tile.turret_rocket.name=火箭炮塔 -tile.turret_richard.name=火箭炮塔“理查德” +tile.turret_richard.name=蜂巢火箭弹炮塔"理查德" tile.turret_spitfire.name=目前没有名字[开发中] -tile.turret_sentry.name=哨兵炮塔“布朗” +tile.turret_sentry.name=哨岗炮塔 "布朗" tile.turret_tau.name=陶子炮塔 -tile.turret_tauon.name=XVL1456原型陶子发射器炮塔"陶恩" +tile.turret_tauon.name=XVL1456原型炮塔 "负陶子发射器" tile.vacuum.name=真空 tile.vault_door.name=避难所防爆门 tile.vent_chlorine.name=氯气排气口 tile.vent_chlorine_seal.name=氯气容器 tile.vent_cloud.name=云排气口 tile.vent_pink_cloud.name=粉色云排气口 +tile.vinyl_tile.large.name=大块乙烯基瓷砖 +tile.vinyl_tile.small.name=小块乙烯基瓷砖 tile.vinyl_tile.large.name=大型乙烯基瓷砖 tile.vinyl_tile.small.name=小型乙烯基瓷砖 tile.vitrified_barrel.name=玻璃化核废料桶 -tile.volcanic_lava_block.name=火山熔岩 +tile.volcanic_lava_block.name=火山岩浆 tile.volcano_core.name=火山核心 tile.waste_earth.name=死亡草地 -tile.waste_leaves.name=枯叶 +tile.waste_leaves.name=死亡树叶 tile.waste_log.name=烧焦原木 tile.waste_mycelium.name=发光菌丝 tile.waste_planks.name=烧焦木板 tile.waste_trinitite.name=核融玻璃矿石 tile.waste_trinitite_red.name=红色核融玻璃矿石 -tile.watz_conductor.name=Watz电力端口 -tile.watz_control.name=加强控制棒 -tile.watz_cooler.name=Watz反应堆过冷器 -tile.watz_core.name=Watz反应堆控制器 -tile.watz_element.name=Watz反应室 -tile.watz_end.name=Watz反应堆稳定元件 -tile.watz_hatch.name=Watz反应堆端口 +tile.watz.name=Watz瓦茨电厂 +tile.watz_conductor.name=Watz瓦茨发电塔电力端口 +tile.watz_control.name=Watz瓦茨发电塔加强控制棒 +tile.watz_cooler.name=Watz瓦茨电厂过冷器 +tile.watz_core.name=Watz瓦茨发电塔控制器 +tile.watz_element.name=Watz瓦茨电厂反应室 +tile.watz_end.name=Watz瓦茨电厂稳定元件 +tile.watz_end_bolted.name=Watz瓦茨电厂稳定元件(铆接) +tile.watz_hatch.name=Watz瓦茨发电塔端口 +tile.watz_pump.name=Watz电厂压力泵 tile.yellow_barrel.name=核废料桶 -tile.zirnox_destroyed.name=损毁的ZINROX -trait.asbestos=石棉 -trait.blinding=致盲 -trait.coal=煤尘 -trait.digamma=迪伽马辐射 -trait.drop=掉落物危险 +tile.zirnox_destroyed.name=熔毁ZIRNOX锆诺克斯反应堆 + +trait.asbestos=石棉粉尘 +trait.blinding=致盲性 +trait.coal=煤粉尘 +trait.digamma=Ϝ迪伽马辐射 +trait.drop=掉落危险 trait.explosive=高度易燃/易爆 -trait.furnace=可在核熔炉中工作 %s 次 -trait.heat=提供 %s 热量 +trait.furnace=在核熔炉中可熔炼%s个物品 +trait.heat=产生%s热量 trait.hlParticle=粒子半衰期: %s trait.hlPlayer=玩家半衰期: %s -trait.hot=自燃/高温 -trait.hydro=与水反应 +trait.hot=自燃/炽热 +trait.hydro=遇水爆炸 trait.radioactive=放射性 trait.radResistance=辐射抗性: %s + trait.rbmk.coreTemp=核心温度: %s trait.rbmk.depletion=燃料消耗: %s trait.rbmk.diffusion=扩散度: %s trait.rbmk.fluxFunc=中子放射函数: %s trait.rbmk.funcType=中子放射函数类型: %s -trait.rbmk.heat=每接受一个中子产生的热量: %s +trait.rbmk.heat=每1中子通量产生的热量: %s trait.rbmk.melt=熔点: %s trait.rbmk.neutron.any=所有中子 trait.rbmk.neutron.fast=快中子 @@ -5009,12 +5179,13 @@ trait.rbmk.splitsWith=裂变需要: %s trait.rbmk.xenon=氙元素堆积程度: %s trait.rbmk.xenonBurn=氙元素燃烧函数: %s trait.rbmk.xenonGen=氙元素产生函数: %s + trait.rbmx.coreTemp=核心熵: %s trait.rbmx.depletion=衰变: %s trait.rbmx.diffusion=能量潮涌: %s -trait.rbmx.fluxFunc=F迪伽马粒子放射函数: %s -trait.rbmx.funcType=F迪伽马粒子放射函数类型: %s -trait.rbmx.heat=满功率下每刻产生的热量: %s +trait.rbmx.fluxFunc=Ϝ迪伽马粒子放射函数: %s +trait.rbmx.funcType=Ϝ迪伽马粒子放射函数类型: %s +trait.rbmx.heat=满功率时每tick产生的热量: %s trait.rbmx.melt=崩溃深度: %s trait.rbmk.neutron.any.x=所有非欧几里德形时空平面 trait.rbmk.neutron.fast.x=椭圆非欧几里德形时空平面 @@ -5026,55 +5197,56 @@ trait.rbmx.splitsWith=接受: %s trait.rbmx.xenon=铅元素堆积程度: %s trait.rbmx.xenonBurn=铅元素寂灭函数: %s trait.rbmx.xenonGen=铅元素产生函数: %s + trait.tile.cluster=只有在被玩家破坏时才会掉落 trait.tile.depth=只能被爆炸破坏 + tool.ability.centrifuge=自动离心 tool.ability.crystallizer=自动结晶 tool.ability.explosion=爆破 tool.ability.hammer=范围挖掘 tool.ability.luck=时运 -tool.ability.mercury=水银提取 -tool.ability.midas=点石成金 +tool.ability.mercury=自动汞采集 tool.ability.recursion=连锁挖矿 tool.ability.shredder=自动粉碎 tool.ability.silktouch=精准采集 tool.ability.smelter=自动熔炼 -turret.animals=被动目标:%s -turret.arty.artillery=§e火炮模式$最低射程: 250m$最大射程: 3,000m -turret.arty.cannon=§e炮塔模式$最低射程: 32m$射程: 250m -turret.arty.manual=§e手动模式$射程: 3,000m -turret.machines=以机械为目标: %s -turret.mobs=以怪物为目标: %s -turret.none=无 -turret.off=关 -turret.on=开 -turret.players=以玩家为目标:%s + +turret.animals=攻击中立生物: %s +turret.arty.artillery=§e重炮模式$宽度: 250m$范围: 3,000m +turret.arty.cannon=§e加农炮模式$宽度: 32m$范围: 250m +turret.arty.manual=§e手动模式$范围: 3,000m +turret.machines=攻击机器: %s +turret.mobs=攻击敌对生物: %s +turret.none=无白名单 +turret.off=OFF +turret.on=ON +turret.players=攻击玩家: %s + wavelengths.name.ir=红外线 wavelengths.name.visible=可见光 wavelengths.name.uv=紫外线 wavelengths.name.gamma=伽马射线 -wavelengths.name.drx=迪伽玛 +wavelengths.name.drx=Ϝ迪伽马射线 wavelengths.waveRange.ir=780nm-1mm wavelengths.waveRange.visible=400nm-780nm wavelengths.waveRange.uv=100nm-400nm wavelengths.waveRange.gamma=<100pm wavelengths.waveRange.drx=1916169普朗克长度 -weapon.ability.beheader=斩首 -weapon.ability.bobble=收藏家之运 -weapon.ability.chainsaw=痛苦面"锯" + +weapon.ability.beheader=斩首者 +weapon.ability.bobble=收藏家的运气 +weapon.ability.chainsaw=苦痛之锯 weapon.ability.fire=燃烧 -weapon.ability.radiation=辐射 -weapon.ability.phosphorus=白磷刀刃 -weapon.ability.stun=震撼 +weapon.ability.radiation=放射性刀片 +weapon.ability.phosphorus=磷烧伤 +weapon.ability.stun=眩晕打击 weapon.ability.vampire=吸血 -weapon.elecGun.modeChange=开火模式更改为: +weapon.elecGun.modeChange=开火模式切换为: weapon.elecGun.glass_cannon.radio=无线电波 weapon.elecGun.glass_cannon.micro=微波 weapon.elecGun.glass_cannon.ir=红外线 weapon.elecGun.glass_cannon.visible=可见光 weapon.elecGun.glass_cannon.uv=紫外线 weapon.elecGun.glass_cannon.xray=X射线 -weapon.elecGun.glass_cannon.gamma=伽马射线 -hadron.error=错误! -container.reactor=增殖反应堆 -death.attack.subAtomic=%1$s 的原子被 %2$s 摧毁 \ No newline at end of file +weapon.elecGun.glass_cannon.gamma=γ射线 \ No newline at end of file From d011a940c0b443a86dc631fbcb032e02786d9a51 Mon Sep 17 00:00:00 2001 From: sdddddf80 <2980187979@qq.com> Date: Mon, 1 May 2023 10:11:27 +0800 Subject: [PATCH 002/432] Update zh_CN.lang --- src/main/resources/assets/hbm/lang/zh_CN.lang | 37 +++++++++++++------ 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/src/main/resources/assets/hbm/lang/zh_CN.lang b/src/main/resources/assets/hbm/lang/zh_CN.lang index c6e750bbe..5604ee47c 100644 --- a/src/main/resources/assets/hbm/lang/zh_CN.lang +++ b/src/main/resources/assets/hbm/lang/zh_CN.lang @@ -481,7 +481,7 @@ chem.C4=C-4生产 chem.CC_HEATING=民用燃油增产 chem.CC_HEAVY=重油增产 chem.CC_I=工业油增产 -chem.CC_NAPHTHA=粗汽油增产 +chem.CC_NAPHTHA=石脑油增产 chem.CC_OIL=原油增产 chem.CIRCUIT_4=超频电路生产 chem.CIRCUIT_5=高性能电路生产 @@ -512,7 +512,7 @@ chem.FC_I_NAPHTHA=工业油裂化 chem.FC_KEROSENE_PETROLEUM=煤油裂化 chem.FP_HEAVYOIL=重油加工 chem.FP_LIGHTOIL=轻油加工 -chem.FP_NAPHTHA=粗汽油加工 +chem.FP_NAPHTHA=石脑油加工 chem.FP_SMEAR=工业油加工 chem.FR_PETROIL=混机油汽油合成 chem.FR_REOIL=再生工业油加工 @@ -550,7 +550,7 @@ chem.SF_HEAVYOIL=重油固化 chem.SF_KEROSENE=煤油固化 chem.SF_LIGHTOIL=轻油固化 chem.SF_LUBRICANT=润滑剂固化 -chem.SF_NAPHTHA=粗汽油固化 +chem.SF_NAPHTHA=石脑油固化 chem.SF_OIL=原油固化 chem.SF_PETROIL=混机油汽油固化 chem.SF_PETROLEUM=石油气固化 @@ -635,6 +635,7 @@ container.leadBox=安全箱 container.machineBoiler=原油加热器 container.machineCMB=CMB炼钢炉 container.machineCoal=火力发电机 +container.machineCoker=焦化装置 container.machineCrucible=坩埚 container.machineDiesel=柴油发电机 container.machineElectricBoiler=电力原油加热器 @@ -929,6 +930,7 @@ desc.item.gun.lore=查看深入的传说 desc.item.gun.loreFunc=查看深入功能 desc.item.gun.manufacturer=制造商: %s desc.item.gun.name=枪械名称: %s +desc.item.gun.pellets=弹丸: %s - %s desc.item.gun.penetration=护甲穿透值: %s desc.item.kitArmor=现穿的护甲将被新护甲取代. desc.item.kitHaz=防护服将取代现穿的护甲. @@ -1032,6 +1034,7 @@ gun.make.MWT=MWT原型实验室 gun.make.NAZI=埃尔马.威客兵工厂 gun.make.NONE=- gun.make.RAYTHEON=雷神导弹系统公司 +gun.make.REMINGTON=雷明顿武器公司 gun.make.ROCKWELL=罗克韦尔国际公司 gun.make.ROCKWELL_U=罗克韦尔国际公司? gun.make.RYAN=莱恩工业 @@ -1084,12 +1087,12 @@ gun.name.lunaGun=1978 Rāhula type Standard Issue Sidearm (Revision 2) gun.name.lunaHLR=1944 Chang'e type Light Machine Gun gun.name.lunaShotty=1978 Guan Yu type Scattergun (Revision 1) gun.name.lunaSMG=1956 Ānanda type Submachine Gun -gun.name.lunaSniper=1915 Hou Yi type Anti-Material Rifle +gun.name.lunaSniper=1915 “后羿” 型反物质来复枪 gun.name.lunaTWR=Time Warp Rifle -gun.name.m2=Browning machine gun, cal. .50, M2, HB +gun.name.m2=.50口径勃朗宁机枪, M2, HB gun.name.m42=M-42战术核弹射器 gun.name.m42MIRV=M-42 核弹弹射器"试验性子母弹头 -gun.name.m60=Machine Gun, Caliber 7.62 mm, M60 +gun.name.m60= 7.62 mm口径机枪, M60 gun.name.maxim=马克沁机枪 gun.name.maximDouble=双管马克沁机枪 gun.name.mg3=通用MG3机枪 - .50 模式 @@ -1098,6 +1101,7 @@ gun.name.nerf=NERF blaster of unknown design gun.name.osipr=看守者暗能量脉冲步枪 gun.name.panz=坦克杀手54 gun.name.quadro=四联装制导便携式电视制导导弹发射器 +gun.name.remington870=雷明顿870 gun.name.revolverCursed=被诅咒的不列颠标准发行版左轮手枪 gun.name.sauer=斯坦.索尔的萨缪尔-23霰 gun.name.spas12= @@ -1120,7 +1124,7 @@ gun.name.uzi=IMI乌齐冲锋枪 gun.name.uziSatur=IMI D-25A乌齐冲锋枪 gun.name.win1887=1887温彻斯特霰弹枪(原型) gun.name.win1887Inox=1887温彻斯特霰弹枪(黑暗) -gun.name.win20Inox温彻斯特拉栓步枪(原型) +gun.name.win20Inox=温彻斯特拉栓步枪(原型) gun.name.win20Poly=温彻斯特拉栓步枪(绿) gun.name.win20Satur=D-25A星辉金属温彻斯特来复枪 gun.name.zomg=EMC101棱镜负能量加农炮 @@ -1183,6 +1187,7 @@ hbmfluid.blood=血液 hbmfluid.blood_hot=热血液 hbmfluid.carbondioxide=二氧化碳 hbmfluid.chlorine=氯气 +hbmfluid.cholesterol=胆固醇溶液 hbmfluid.coalcreosote=煤焦油杂酚油 hbmfluid.coalgas=煤汽油 hbmfluid.coalgas_leaded=含铅煤汽油 @@ -1197,11 +1202,14 @@ hbmfluid.deuterium=氘 hbmfluid.diesel=柴油 hbmfluid.diesel_crack_reform=高辛烷值裂解柴油 hbmfluid.diesel_reform=高辛烷值柴油 +hbmfluid.egg=蛋溶解液 +hbmfluid.estradiol=雌二醇溶液 hbmfluid.diesel_crack=裂化柴油 hbmfluid.ethanol=乙醇 hbmfluid.enderjuice=末影液 hbmfluid.fracksol=压裂液 hbmfluid.gas=天然气 +hbmfluid.gas_coker=焦化气 hbmfluid.gasoline=精制汽油 hbmfluid.gasoline_leaded=含铅精制汽油 hbmfluid.heatingoil=民用燃油 @@ -1228,12 +1236,14 @@ hbmfluid.mercury=水银 hbmfluid.mug=杯根啤酒 hbmfluid.mug_hot=热杯根啤酒 hbmfluid.mustardgas=芥子气 -hbmfluid.naphtha=粗气油 -hbmfluid.naphtha_crack=裂化粗气油 +hbmfluid.naphtha=石脑油 +hbmfluid.naphtha_coker=焦化石脑油 +hbmfluid.naphtha_crack=裂化石脑油 hbmfluid.nitan=NITAN© 100号超级燃料 hbmfluid.nitric_acid=硝酸 hbmfluid.none=无 hbmfluid.oil=原油 +hbmfluid.oil_coker=焦化油 hbmfluid.oxygen=液氧 hbmfluid.oxyhydrogen=氢氧混合气 hbmfluid.pain=潘地曼尼南(III)钽铁矿溶液 @@ -1883,7 +1893,7 @@ item.canister_heavyoil.name=重油桶(旧版遗物) item.canister_kerosene.name=煤油桶(旧版遗物) item.canister_lightoil.name=轻油桶(旧版遗物) item.canister_napalm.name=凝固汽油桶(旧版遗物) -item.canister_naphtha.name=粗气油桶(旧版遗物) +item.canister_naphtha.name=石脑油桶(旧版遗物) item.canister_oil.name=原油桶(旧版遗物) item.canister_petroil.name=混机油汽油桶(旧版遗物) item.canister_reoil.name=再生工业油桶(旧版遗物) @@ -2540,6 +2550,7 @@ item.gun_osipr_ammo2.name=融合球 item.gun_panzerschreck.name=战车噩梦 item.gun_proto.name=M42核弹发射器 "分导式多弹头核弹原型" item.gun_quadro.name=四喜丸子 +item.gun_remington.name=バイデン ブラスト [拜登光线] item.gun_revolver.name=强化左轮手枪 item.gun_revolver_ammo.name=铅左轮子弹 item.gun_revolver_blackjack.name=黑杰克的五发装左轮枪 @@ -3157,6 +3168,7 @@ item.oil_detector.noOil=未发现油田. item.oil_tar.coal.name=煤焦油块 item.oil_tar.crude.name=焦油块 item.oil_tar.crack.name=裂化焦油块 +item.oil_tar.paraffin.name=石蜡 item.oil_tar.wax.name=氯化石油蜡 item.oil_tar.wood.name=木焦油块 item.ore.asbestos=石棉 @@ -3298,6 +3310,7 @@ item.pill_iodine.name=碘丸 item.pill_iodine.desc=移除身上所有的负面效果 item.pill_herbal.name=草药膏 item.pill_herbal.desc=有效治疗肺部疾病和轻度辐射中毒$有副作用 +item.pill_red.name=红药丸 item.pin.name=发夹 item.pin.desc=撬开常规锁的标准成功率约为10%%. item.pipes_steel.name=钢管 @@ -4121,7 +4134,7 @@ itemGroup.tabWeapon=核技术武器和炮塔 itemGroup.tabConsumable=核技术食物和装备 potion.hbm_bang=! ! ! -potion.hbm_death=严重突变 +potion.hbm_death=阿斯托尔福化突变 potion.hbm_lead=铅中毒 potion.hbm_mutation=腐化变异 potion.hbm_phosphorus=磷烧伤 @@ -4713,6 +4726,8 @@ tile.machine_chungus.name=“利维坦”巨型汽轮机 tile.machine_chungus.desc=效率: 85%% tile.machine_coal_off.name=火力发电机 tile.machine_coal_on.name=火力发电机 +tile.machine_coker.name=焦化装置 +tile.machine_coker.desc=焦化,同时产生流体副产品.$需要外部热源.$传热速率: ΔT*0.025 TU/t tile.machine_combine_factory.name=CMB炼钢炉 tile.machine_combustion_engine.name=工业内燃机 tile.machine_condenser.name=蒸汽冷凝器 From 7356f6c3660a0c08f208cad4d19136122a65fd43 Mon Sep 17 00:00:00 2001 From: sdddddf80 <2980187979@qq.com> Date: Mon, 1 May 2023 15:46:54 +0800 Subject: [PATCH 003/432] Update zh_CN.lang --- src/main/resources/assets/hbm/lang/zh_CN.lang | 37 +++++++++++++++---- 1 file changed, 30 insertions(+), 7 deletions(-) diff --git a/src/main/resources/assets/hbm/lang/zh_CN.lang b/src/main/resources/assets/hbm/lang/zh_CN.lang index 5604ee47c..e880a8360 100644 --- a/src/main/resources/assets/hbm/lang/zh_CN.lang +++ b/src/main/resources/assets/hbm/lang/zh_CN.lang @@ -136,6 +136,7 @@ achievement.ZIRNOXBoom=CIRNOX armor.blastProtection=只受%s的爆炸伤害 armor.cap=硬伤上限 %s armor.damageModifier=只受%s的%s伤害 +armor.dash=提供 %s 次冲刺 armor.electricJetpack=等离子推进器 armor.explosionImmune=免疫除爆炸伤害外的一切伤害 armor.fastFall=快速降落 @@ -578,7 +579,7 @@ container.anvil=%s 级砧 container.arcFurnace=电弧炉 container.armorTable=装甲改装台 container.assembler=装配机 -ontainer.autocrafter=自动化工作台 +container.autocrafter=自动化工作台 container.barrel=桶 container.bat9000="巨臀"9000号储罐 container.battery=储能量 @@ -589,7 +590,7 @@ container.chemplant=化工装置 container.compactLauncher=紧凑型发射台 container.craneBoxer=传送带打包器 container.craneExtractor=传送带输出器 - +container.craneGrabber=传送带抓取器 container.craneInserter=传送带输入器 container.craneRouter=传送带分流器 container.craneUnboxer=传送带解包器 @@ -712,7 +713,9 @@ container.turbinegas=联合循环燃气轮机 container.turretArty=格雷格 container.turretChekhov=契诃夫之枪 container.turretFriendly=友好先生 +container.turretFritz=弗里茨 container.turretHIMARS=亨利 +container.turretHoward=霍华德 container.turretJeremy=杰里米 container.turretMaxwell=麦克斯韦 container.turretRichard=理查德 @@ -739,6 +742,7 @@ crucible.steelWrought=锻铁->钢 生产 crucible.tcalloy=锝-钢合金生产 death.attack.acid=%1$s 掉进了酸里. +death.attack.acidPlayer=%1$s 被 %2$s 溶解了. death.attack.ams=%1$s 沐浴在尚未被人类科学命名的致命粒子中. death.attack.amsCore=%1$s 在高能奇点之火中蒸发. death.attack.asbestos=%1$s 现在有权获得经济补偿. @@ -746,6 +750,7 @@ death.attack.bang=%1$s 被炸成一口大小碎片. death.attack.blackhole=%1$s 被黑洞拉成了意大利面. death.attack.blender=%1$s 被切割成了很小的,以Byte计数的单位. death.attack.boat=%1$s 被船砸扁了. +death.attack.boil=%1$s 被 %2$s 活生生煮沸了. death.attack.boxcar=%1$s 被一节坠落的车厢砸扁了...好吧. death.attack.broadcast=%1$s 的大脑融化了. death.attack.building=%1$s 被从天而降的建筑砸中了. @@ -1133,7 +1138,16 @@ gun.name.zomg=EMC101棱镜负能量加农炮 hadron.analysis=分析中... hadron.buttonOn=分析室(如有)开启 hadron.buttonOff=分析室关闭 -hadron.error=错误! +hadron.error_generic=错误! +hadron.error_no_charge=错误 0x01 [电量不足] +hadron.error_no_analysis=错误 0x02 [无分析室] +hadron.error_obstructed_channel=错误 0x03 [粒子通道堵塞] +hadron.error_expected_coil=错误 0x04 [线圈缺失] +hadron.error_malformed_segment=错误 0x05 [加速器结构错误] +hadron.error_analysis_too_long=错误 0x06 [分析室过长] +hadron.error_analysis_too_short=错误 0x07 [分析室过短] +hadron.error_diode_collision=错误 0x08 [粒子与肖特基粒子二极管碰撞] +hadron.error_branching_turn=错误 0x09 [转弯处分岔] hadron.hopper0=§e普通模式:$所有物品都可用来对撞. hadron.hopper1=§e过滤模式:$对撞机输入口将始终保留一个物品. hadron.idle=闲置 @@ -1566,7 +1580,7 @@ item.ammo_grenade_phosphorus.name=40mm榴弹[白磷弹] item.ammo_grenade_sleek.name=40mm榴弹[IF-R&D] item.ammo_grenade_toxic.name=40mm榴弹[化学毒气] item.ammo_grenade_tracer.name=40mm训练榴弹 -tem.ammo_himars_standard.name=227mm 制导火炮火箭吊舱 +item.ammo_himars_standard.name=227mm 制导火炮火箭吊舱 item.ammo_himars_standard_he.name=227mm 制导火炮火箭吊舱(高爆弹头) item.ammo_himars_standard_mini_nuke.name=227mm 制导火炮火箭吊舱(小型核弹头) item.ammo_himars_standard_tb.name=227mm 制导火炮火箭吊舱(温压弹头) @@ -1856,7 +1870,7 @@ item.boy_propellant.name=炸药 item.boy_shielding.name=中子屏蔽罩 item.boy_target.name=次临界铀235标靶 item.briquette.coal.name=煤球 -item.briquette_lignite.name=褐煤球 +item.briquette.lignite.name=褐煤球 item.briquette.wood.name=锯屑坯块 item.bucket_acid.name=一桶酸 item.bucket_mud.name=一桶毒泥 @@ -1969,6 +1983,7 @@ item.cape_codered_.name=codered_披风 item.cape_dafnik.name=Dafnik披风 item.cape_gasmask.name=披风[防毒面具] item.cape_hbm.name=Hbm披风 +item.cape_hidden.name=隐藏披风 item.cape_lpkukin.name=LPkukin披风 item.cape_nostalgia.name=DrNostalgia披风 item.cape_radiation.name=披风[辐射] @@ -3273,10 +3288,13 @@ item.pellet_rtg_americium.name=镅-241RTG放射性同位素燃料靶丸 item.pellet_rtg_americium.desc=稀有可靠的优质古镅! item.pellet_rtg_berkelium.name=锫RTG放射性同位素燃料靶丸 item.pellet_rtg_berkelium.desc= +item.pellet_rtg_cobalt.name=钴-60RTG放射性同位素燃料靶丸 +item.pellet_rtg_cobalt.desc=作为RTG放射性同位素燃料靶丸不是最好的, 但是非常适合伽马辐射! item.pellet_rtg_depleted.bismuth.name=衰竭的铋RTG放射性同位素燃料靶丸 item.pellet_rtg_depleted.lead.name=衰竭的铅RTG放射性同位素燃料靶丸 item.pellet_rtg_depleted.neptunium.name=衰竭的镎RTG放射性同位素燃料靶丸 item.pellet_rtg_depleted.mercury.name=衰竭的汞RTG放射性同位素燃料靶丸 +item.pellet_rtg_depleted.nickel.name=衰竭的镍RTG放射性同位素燃料靶丸 item.pellet_rtg_depleted.zirconium.name=衰竭的锆RTG放射性同位素燃料靶丸 item.pellet_rtg_lead.name=铅-209RTG放射性同位素燃料靶丸 item.pellet_rtg_lead.desc=接触会立即导致死亡. @@ -3490,6 +3508,8 @@ item.radaway_flush.name=超级消辐宁 item.radaway_strong.name=强效消辐宁 item.radx.name=防辐射药 item.radx.desc=增加0.2(37%%)的抗辐射能力,持续3分钟 +item.rag.name=破布 +item.rag_damp.name=湿破布 item.rag_piss.name=尿湿润的破布 item.rbmk_fuel_balefire.name=RBMK石墨式反应堆野火燃料棒 item.rbmk_fuel_balefire_gold.name=激活态金-198 RBMK石墨式反应堆燃料棒 @@ -3790,6 +3810,7 @@ item.sat_miner.name=小行星采矿飞船 item.sat_radar.name=雷达探测卫星 item.sat_resonator.name=X晶体共振卫星 item.sat_scanner.name=绘测和资源探测卫星 +item.sawblade.name=锯片 item.schnitzel_vegan.name=“素”肉排 item.schrabidium_axe.name=Sa326异变铀金属斧 item.schrabidium_boots.name=Sa326异变铀金属靴子 @@ -4448,13 +4469,13 @@ tile.concrete_colored.red.name=红色混凝土 tile.concrete_colored.silver.name=淡灰色混凝土 tile.concrete_colored.white.name=白色混凝土 tile.concrete_colored.yellow.name=黄色混凝土 +tile.concrete_pillar.name=钢筋混凝土柱 tile.concrete_slab.concrete.name=混凝土瓷砖台阶 tile.concrete_slab.concrete_asbestos.name=石棉夹层混凝土台阶 tile.concrete_slab.concrete_smooth.name=混凝土台阶 tile.concrete_slab.ducrete.name=贫铀高密度混凝土瓦台阶 tile.concrete_slab.ducrete_smooth.name=贫铀高密度混凝土砖台阶 -tile.concrete_smooth.name=混凝土楼梯 -tile.concrete_pillar.name=钢筋混凝土柱 +tile.concrete_smooth_stairs.name=混凝土楼梯 tile.concrete_smooth.name=混凝土 tile.concrete_stairs.name=混凝土瓦楼梯 tile.concrete_super.name=Über混凝土 @@ -5064,6 +5085,7 @@ tile.soyuz_launcher.name=联盟号巨型运载火箭发射平台 tile.spikes.name=尖刺 tile.stalactite.asbestos.name=石棉钟乳石 tile.stalactite.sulfur.name=含硫钟乳石 +tile.stalagmite.asbestos.name=石棉石笋 tile.stalagmite.sulfur.name=硫磺石笋 tile.steel_beam.name=钢梁 tile.steel_corner.name=钢墙角 @@ -5222,6 +5244,7 @@ tool.ability.explosion=爆破 tool.ability.hammer=范围挖掘 tool.ability.luck=时运 tool.ability.mercury=自动汞采集 +tool.ability.midas=点石成金 tool.ability.recursion=连锁挖矿 tool.ability.shredder=自动粉碎 tool.ability.silktouch=精准采集 From b6ae5565bde40acd918ed92ba0f2a99c5dff5f3b Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 2 May 2023 16:40:26 +0200 Subject: [PATCH 004/432] on a rail --- .../java/com/hbm/blocks/rail/IRailNTM.java | 27 +++++ .../hbm/blocks/rail/RailStandardStraight.java | 105 ++++++++++++++++++ 2 files changed, 132 insertions(+) create mode 100644 src/main/java/com/hbm/blocks/rail/IRailNTM.java create mode 100644 src/main/java/com/hbm/blocks/rail/RailStandardStraight.java diff --git a/src/main/java/com/hbm/blocks/rail/IRailNTM.java b/src/main/java/com/hbm/blocks/rail/IRailNTM.java new file mode 100644 index 000000000..87738ed77 --- /dev/null +++ b/src/main/java/com/hbm/blocks/rail/IRailNTM.java @@ -0,0 +1,27 @@ +package com.hbm.blocks.rail; + +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public interface IRailNTM { + + /** Returns a vector pointing to the closest snapping position given the starting position */ + public Vec3 getSnappingPos(World world, int x, int y, int z, double trainX, double trainY, double trainZ); + + /** + * Returns a location on the rail based on the train's current X/Y/Z momentum as well as the intended speed along the rail. + * If the train would leave the rail within that tick, the position is the last valid position on that rail. + * Inherently safer than simply adding the motion to the position and then snapping, since that may lead to derailing. + * The motion has to be calculated from the train's rotation, the scalar doesn't matter since it's only used for determining orientation in a clear way. + * Motion ends up being *-1 if the train is going in reverse, still pointing forwards despite the speed being negative. + * Also features a double[] wrapper with size 1 which holds the speed value that overshoots the rail. + * */ + public Vec3 getTravelLocation(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, double[] leftover); + + /** Returns that rail'S gauge. Trains will derail if the gauge does not match. */ + public TrackGauge getGauge(World world, int x, int y, int z); + + public static enum TrackGauge { + STANDARD //roughly 1.5m + } +} diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java b/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java new file mode 100644 index 000000000..66a188e6a --- /dev/null +++ b/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java @@ -0,0 +1,105 @@ +package com.hbm.blocks.rail; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.lib.Library; + +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class RailStandardStraight extends BlockDummyable implements IRailNTM { + + public RailStandardStraight(Material mat) { + super(mat); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return null; + } + + @Override + public int[] getDimensions() { + return new int[] {0, 0, 2, 2, 0, 0}; + } + + @Override + public int getOffset() { + return 2; + } + + @Override + public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { + int meta = world.getBlockMetadata(x, y, z); + this.setBlockBounds(0F, 0F, 0F, 1F, 0.125F, 1F); + } + + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + this.setBlockBounds(0F, 0F, 0F, 1F, 0.125F, 1F); + return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); + } + + @Override + public Vec3 getSnappingPos(World world, int x, int y, int z, double trainX, double trainY, double trainZ) { + return snapAndMove(world, x, y, z, trainX, trainY, trainZ, 0, 0, 0, 0, new double[1]); + } + + @Override + public Vec3 getTravelLocation(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, double[] leftover) { + return snapAndMove(world, x, y, z, trainX, trainY, trainZ, motionX, motionY, motionZ, speed, leftover); + } + + /* Very simple function determining the snapping position and adding the motion value to it, if desired. */ + public Vec3 snapAndMove(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, double[] leftover) { + int[] pos = this.findCore(world, x, y, z); + if(pos == null) return Vec3.createVectorHelper(trainX, trainY, trainZ); + int cX = pos[0]; + int cY = pos[1]; + int cZ = pos[2]; + int meta = world.getBlockMetadata(cX, cY, cZ) - this.offset; + ForgeDirection dir = ForgeDirection.getOrientation(meta); + + Vec3 vec = Vec3.createVectorHelper(trainX, trainY, trainZ); + + if(speed == 0) { + return vec; + } + + if(dir == Library.POS_X || dir == Library.NEG_X) { + double targetX = trainX; + if(motionX > 0) { + targetX += speed; + } else { + targetX -= speed; + } + vec.xCoord = MathHelper.clamp_double(targetX, x - 2, x + 3); + vec.yCoord = y; + vec.zCoord = z + 0.5; + leftover[0] = Math.abs(targetX - vec.xCoord); + } else { + double targetZ = trainZ; + if(motionZ > 0) { + targetZ += speed; + } else { + targetZ -= speed; + } + vec.xCoord = x + 0.5; + vec.yCoord = y; + vec.zCoord = MathHelper.clamp_double(targetZ, z - 2, z + 3); + leftover[0] = Math.abs(targetZ - vec.zCoord); + } + + return vec; + } + + @Override + public TrackGauge getGauge(World world, int x, int y, int z) { + return TrackGauge.STANDARD; + } +} From 02f89cc0c84f48e3894d75f3aa84268064a6b02c Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Tue, 2 May 2023 21:55:31 -0500 Subject: [PATCH 005/432] my own bobble :D --- .../java/com/hbm/blocks/generic/BlockBobble.java | 10 +++++----- .../com/hbm/render/tileentity/RenderBobble.java | 10 ++++++---- .../hbm/textures/models/trinkets/Microwave.png | Bin 0 -> 1788 bytes 3 files changed, 11 insertions(+), 9 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/models/trinkets/Microwave.png diff --git a/src/main/java/com/hbm/blocks/generic/BlockBobble.java b/src/main/java/com/hbm/blocks/generic/BlockBobble.java index df84bf616..0757002f9 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockBobble.java +++ b/src/main/java/com/hbm/blocks/generic/BlockBobble.java @@ -1,13 +1,9 @@ package com.hbm.blocks.generic; -import java.util.List; -import java.util.Random; - import com.hbm.inventory.gui.GUIScreenBobble; import com.hbm.items.special.ItemPlasticScrap.ScrapType; import com.hbm.main.MainRegistry; import com.hbm.tileentity.IGUIProvider; - import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -33,6 +29,9 @@ import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import java.util.List; +import java.util.Random; + public class BlockBobble extends BlockContainer implements IGUIProvider { public BlockBobble() { @@ -191,7 +190,8 @@ public class BlockBobble extends BlockContainer implements IGUIProvider { VAER( "vaer", "vaer", "ZIRNOX", "taken de family out to the weekend cigarette festival", true, ScrapType.MEM_16K_D), NOS( "Dr Nostalgia", "Dr Nostalgia", "SSG and Vortex models", "Take a picture, I'ma pose, paparazzi$I've been drinking, moving like a zombie", true, ScrapType.BOARD_TRANSISTOR), DRILLGON( "Drillgon200", "Drillgon200", "1.12 Port", null, false, ScrapType.CPU_LOGIC), - CIRNO( "Cirno", "Cirno", "the only multi layered skin i had", "No brain. Head empty.", true, ScrapType.BOARD_BLANK); + CIRNO( "Cirno", "Cirno", "the only multi layered skin i had", "No brain. Head empty.", true, ScrapType.BOARD_BLANK), + MICROWAVE( "Microwave", "Microwave", "adding OC compat", "they call me the food heater", true, ScrapType.BRIDGE_BIOS); public String name; //the title of the tooltip public String label; //the name engraved in the socket diff --git a/src/main/java/com/hbm/render/tileentity/RenderBobble.java b/src/main/java/com/hbm/render/tileentity/RenderBobble.java index 58f96d995..649bd7ce5 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderBobble.java +++ b/src/main/java/com/hbm/render/tileentity/RenderBobble.java @@ -45,6 +45,7 @@ public class RenderBobble extends TileEntitySpecialRenderer { public static final ResourceLocation bobble_nos = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/nos.png"); public static final ResourceLocation bobble_drillgon = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/drillgon200.png"); public static final ResourceLocation bobble_cirno = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/cirno.png"); + public static final ResourceLocation bobble_microwave = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/microwave.png"); @Override public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float intero) { @@ -94,6 +95,7 @@ public class RenderBobble extends TileEntitySpecialRenderer { case VAER: bindTexture(bobble_vaer); break; case NOS: bindTexture(bobble_nos); break; case DRILLGON: bindTexture(bobble_drillgon); break; + case MICROWAVE: bindTexture(bobble_microwave); break; default: bindTexture(ResourceManager.universal); } @@ -311,19 +313,19 @@ public class RenderBobble extends TileEntitySpecialRenderer { public void renderPellet(BobbleType type) { GL11.glEnable(GL11.GL_CULL_FACE); - + GL11.glPushMatrix(); GL11.glPushAttrib(GL11.GL_LIGHTING_BIT); OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); GL11.glDisable(GL11.GL_LIGHTING); bobble.renderPart("Pellet"); - + GL11.glDisable(GL11.GL_TEXTURE_2D); GL11.glEnable(GL11.GL_BLEND); GL11.glAlphaFunc(GL11.GL_GREATER, 0); - + OpenGlHelper.glBlendFunc(770, 771, 1, 0); - GL11.glColor4f(1.0F, 1.0F, 0.0F, 0.1F + (float)Math.sin(System.currentTimeMillis() * 0.001D) * 0.05F); + GL11.glColor4f(1.0F, 1.0F, 0.0F, 0.1F + (float) Math.sin(System.currentTimeMillis() * 0.001D) * 0.05F); bobble.renderPart("PelletShine"); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); diff --git a/src/main/resources/assets/hbm/textures/models/trinkets/Microwave.png b/src/main/resources/assets/hbm/textures/models/trinkets/Microwave.png new file mode 100644 index 0000000000000000000000000000000000000000..13afba352dcb8175b35341cb00bb585beeb37eb4 GIT binary patch literal 1788 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D29ZfbK~#8N?ORK4 z6h{!Q?wQ^7+C;1kaiS1VKuB-`5i6$%iJZ7ZxpB)0Df|d7CjTI3t~nx3L6IzxTOuJL zD-j_INrXb;AQB9T?cJH_d31Na>KPj?UVH7Gh4o{;Rl9qtduO()tE+0d%Yyn~dV1Ox z&4KXr>C?W?7$sy;?^_H_0GR2nvRhDTKvC~oR01gKF3i%bBx|>2z2Pmo%5FhV0X&&` z;>~_^&9mDS!UovUZcvo<^JOvWIKi8kn7CH7H^j}GH>uTX(bcP0yXyJ*`C`Q22!i1A zqB#<5$q3HP&C$h+7uVH$0b3G4FXp-43#c@ps5eC~=DFSr*!LQ+@7>_Khf6wc4W;CX zv78_T8KX#w1{oWZrG=Nj-!57k!)Et36^QW9 zbWPaH&)Kd(*9{hQ4B?*-MpLx8HmE(+8ba_%+lQMyK;Q=&ZtNBTtg`{kC^OHDb74s7 zLkRqOkY8_tkuIk}AfdWG>NTmc>hsKVEk(`EdS*h1g4JIaqxKHOkqCy3 z)>0j`BuOaEQV2oP`1rW%i$UW)tu@u^b^7)8ZAb5gkM*BLi|CejtZ2Pn^j%Vu=RUO_ zt2dYwP;rfqhmXdb`_O}1Ye0Z{G4G%I?ijpXBMXQ*M%1DPDiaO7!9!pBVcpSDVMPCwy zu4GXRA+=rK>%#f-@6*|{r(8WuNDb8&u>oVtn9&rfy$k__B%{o=Wn#c^;QB}uZB9?JMj{t)TF+mf|a%5OA z&TPX&XbU4KbN9GY(bo$|>m$}j_zu3U$;fC}d#%t;K@Uh6M24WF!;N!e3mW(Bb_h?L z#u7-}65u)qVgg)pNdun^YP zJx7Bue2)1Sv#bf80%a9@Av9*`lzM@|+gZ_iHF(t;u-YkRX0G_BmmAIHgG;SkH7n2ODQtjf#p+VtI*=( zb>36Vg^=$$@4T&pp$kA#lk#%}>o!tZ3*0#ZZ>YLW)}4j20$8^z#K{%Bp~@Sr%rIZ` zc51E#oQkls)S%3d5m#oeG{0_A;Q2mTV<^)Z9XRlY%PTNiQ*(Trbe55nxtzJ?+=Eyt zs@LljMG-x|bI0`!ihc(l{V?#CdFG>^#*W;bX#A1q6w1yIHY*v2pIFbzBT(R##3>x!g;^^YNjC?w7w zuuP8ZiirT0niozubBQ5d?+LWS? zi%|*LBqlG>F8hRY6Gn}J1ppf$Rn|O|s)#7T+K-{`U@%i5$pl&nCT$F32o2yo0s+l1 zk%9m?-ynAVN-Y+58y!m7fXlD}UoQN-0vCWA<+rkYVvL0@yarr9yTH{)gggjU z4TiFf$gs>$7_kj#pJ`)ZL#@-0vb0Tx+i-v2j6eXNhzeotjahNW>U`u*Iw7r>F%Fu; z<3@~9Hh>nX>2eAq literal 0 HcmV?d00001 From dd2f929821ee9432429cf927ab1809b0c295f11d Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 3 May 2023 10:42:58 +0200 Subject: [PATCH 006/432] EntityRailCarBase --- .../java/com/hbm/blocks/machine/Watz.java | 8 + .../java/com/hbm/blocks/rail/IRailNTM.java | 17 +- .../hbm/blocks/rail/RailStandardStraight.java | 15 +- .../hbm/entity/train/EntityRailCarBase.java | 157 ++++++++++++++++++ 4 files changed, 189 insertions(+), 8 deletions(-) create mode 100644 src/main/java/com/hbm/entity/train/EntityRailCarBase.java diff --git a/src/main/java/com/hbm/blocks/machine/Watz.java b/src/main/java/com/hbm/blocks/machine/Watz.java index 8a975bbc2..4f195b722 100644 --- a/src/main/java/com/hbm/blocks/machine/Watz.java +++ b/src/main/java/com/hbm/blocks/machine/Watz.java @@ -1,5 +1,7 @@ package com.hbm.blocks.machine; +import java.util.Random; + import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; import com.hbm.handler.MultiblockHandlerXR; @@ -11,6 +13,7 @@ import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; @@ -29,6 +32,11 @@ public class Watz extends BlockDummyable { if(meta >= 6) return new TileEntityProxyCombo().inventory().fluid(); return null; } + + @Override + public Item getItemDropped(int i, Random rand, int j) { + return null; + } @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { diff --git a/src/main/java/com/hbm/blocks/rail/IRailNTM.java b/src/main/java/com/hbm/blocks/rail/IRailNTM.java index 87738ed77..0bb68d517 100644 --- a/src/main/java/com/hbm/blocks/rail/IRailNTM.java +++ b/src/main/java/com/hbm/blocks/rail/IRailNTM.java @@ -1,8 +1,11 @@ package com.hbm.blocks.rail; +import com.hbm.util.fauxpointtwelve.BlockPos; + import net.minecraft.util.Vec3; import net.minecraft.world.World; +/** in retrospect, not the best name i could have chosen */ public interface IRailNTM { /** Returns a vector pointing to the closest snapping position given the starting position */ @@ -16,12 +19,22 @@ public interface IRailNTM { * Motion ends up being *-1 if the train is going in reverse, still pointing forwards despite the speed being negative. * Also features a double[] wrapper with size 1 which holds the speed value that overshoots the rail. * */ - public Vec3 getTravelLocation(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, double[] leftover); + public Vec3 getTravelLocation(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailLeaveInfo info); - /** Returns that rail'S gauge. Trains will derail if the gauge does not match. */ + /** Returns that rail's gauge. Trains will derail if the gauge does not match. */ public TrackGauge getGauge(World world, int x, int y, int z); public static enum TrackGauge { STANDARD //roughly 1.5m } + + /** A wrapper for all relevant info required when leaving a rail */ + public static class RailLeaveInfo { + /** The amount of blocks still left to travel after completing the rail */ + public double overshoot; + /** The exit position of that rail */ + public BlockPos pos; + public RailLeaveInfo dist(double d) { this.overshoot = d; return this; } + public RailLeaveInfo pos(BlockPos d) { this.pos = d; return this; } + } } diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java b/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java index 66a188e6a..d28329aca 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java @@ -2,6 +2,7 @@ package com.hbm.blocks.rail; import com.hbm.blocks.BlockDummyable; import com.hbm.lib.Library; +import com.hbm.util.fauxpointtwelve.BlockPos; import net.minecraft.block.material.Material; import net.minecraft.tileentity.TileEntity; @@ -47,16 +48,16 @@ public class RailStandardStraight extends BlockDummyable implements IRailNTM { @Override public Vec3 getSnappingPos(World world, int x, int y, int z, double trainX, double trainY, double trainZ) { - return snapAndMove(world, x, y, z, trainX, trainY, trainZ, 0, 0, 0, 0, new double[1]); + return snapAndMove(world, x, y, z, trainX, trainY, trainZ, 0, 0, 0, 0, new RailLeaveInfo()); } @Override - public Vec3 getTravelLocation(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, double[] leftover) { - return snapAndMove(world, x, y, z, trainX, trainY, trainZ, motionX, motionY, motionZ, speed, leftover); + public Vec3 getTravelLocation(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailLeaveInfo info) { + return snapAndMove(world, x, y, z, trainX, trainY, trainZ, motionX, motionY, motionZ, speed, info); } /* Very simple function determining the snapping position and adding the motion value to it, if desired. */ - public Vec3 snapAndMove(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, double[] leftover) { + public Vec3 snapAndMove(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailLeaveInfo info) { int[] pos = this.findCore(world, x, y, z); if(pos == null) return Vec3.createVectorHelper(trainX, trainY, trainZ); int cX = pos[0]; @@ -81,7 +82,8 @@ public class RailStandardStraight extends BlockDummyable implements IRailNTM { vec.xCoord = MathHelper.clamp_double(targetX, x - 2, x + 3); vec.yCoord = y; vec.zCoord = z + 0.5; - leftover[0] = Math.abs(targetX - vec.xCoord); + info.dist(Math.abs(targetX - vec.xCoord)); + info.pos(new BlockPos(vec.xCoord + (motionX > 0 ? 1 : -1), y, z)); } else { double targetZ = trainZ; if(motionZ > 0) { @@ -92,7 +94,8 @@ public class RailStandardStraight extends BlockDummyable implements IRailNTM { vec.xCoord = x + 0.5; vec.yCoord = y; vec.zCoord = MathHelper.clamp_double(targetZ, z - 2, z + 3); - leftover[0] = Math.abs(targetZ - vec.zCoord); + info.dist(Math.abs(targetZ - vec.zCoord)); + info.pos(new BlockPos(x, y, vec.zCoord + (motionZ > 0 ? 1 : -1))); } return vec; diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java new file mode 100644 index 000000000..f5c800bb0 --- /dev/null +++ b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java @@ -0,0 +1,157 @@ +package com.hbm.entity.train; + +import com.hbm.blocks.rail.IRailNTM; +import com.hbm.blocks.rail.IRailNTM.RailLeaveInfo; +import com.hbm.blocks.rail.IRailNTM.TrackGauge; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public abstract class EntityRailCarBase extends Entity { + + public boolean isOnRail = true; + private int turnProgress; + private double trainX; + private double trainY; + private double trainZ; + private double trainYaw; + private double trainPitch; + @SideOnly(Side.CLIENT) private double velocityX; + @SideOnly(Side.CLIENT) private double velocityY; + @SideOnly(Side.CLIENT) private double velocityZ; + + public EntityRailCarBase(World world) { + super(world); + } + + @Override protected void entityInit() { } + @Override protected void readEntityFromNBT(NBTTagCompound nbt) { } + @Override protected void writeEntityToNBT(NBTTagCompound nbt) { } + + @Override + public void onUpdate() { + + if(this.worldObj.isRemote) { + if(this.turnProgress > 0) { + double x = this.posX + (this.trainX - this.posX) / (double) this.turnProgress; + double y = this.posY + (this.trainY - this.posY) / (double) this.turnProgress; + double z = this.posZ + (this.trainZ - this.posZ) / (double) this.turnProgress; + double yaw = MathHelper.wrapAngleTo180_double(this.trainYaw - (double) this.rotationYaw); + this.rotationYaw = (float) ((double) this.rotationYaw + yaw / (double) this.turnProgress); + this.rotationPitch = (float) ((double) this.rotationPitch + (this.trainPitch - (double) this.rotationPitch) / (double) this.turnProgress); + --this.turnProgress; + this.setPosition(x, y, z); + this.setRotation(this.rotationYaw, this.rotationPitch); + } else { + this.setPosition(this.posX, this.posY, this.posZ); + this.setRotation(this.rotationYaw, this.rotationPitch); + } + } else { + + BlockPos anchor = this.getCurentAnchorPos(); + Vec3 corePos = getRelPosAlongRail(anchor, this.getCurrentSpeed()); + + if(corePos == null) { + this.derail(); + } else { + this.setPosition(corePos.xCoord, corePos.yCoord, corePos.zCoord); + + anchor = this.getCurentAnchorPos(); //reset origin to new position + Vec3 frontPos = getRelPosAlongRail(anchor, this.getLengthSpan()); + Vec3 backPos = getRelPosAlongRail(anchor, -this.getLengthSpan()); + + if(frontPos == null) this.derail(); + if(backPos == null) this.derail(); + + if(frontPos != null && backPos != null) this.rotationYaw = generateYaw(frontPos, backPos); + } + } + } + + public Vec3 getRelPosAlongRail(BlockPos anchor, double distanceToCover) { + + double overshoot = 0; + float yaw = this.rotationYaw; + + Vec3 next = null; + + do { + + int x = anchor.getX(); + int y = anchor.getY(); + int z = anchor.getZ(); + Block block = worldObj.getBlock(x, y, z); + + Vec3 rot = Vec3.createVectorHelper(1, 0, 0); + rot.rotateAroundY(yaw); + + if(block instanceof IRailNTM) { + IRailNTM rail = (IRailNTM) block; + + if(rail.getGauge(worldObj, x, y, z) == this.getGauge()) { + RailLeaveInfo info = new RailLeaveInfo(); + Vec3 prev = next; + next = rail.getTravelLocation(worldObj, x, y, z, posX, posY, posZ, rot.xCoord, rot.yCoord, rot.zCoord, distanceToCover, info); + overshoot = info.overshoot; + anchor = info.pos; + yaw = generateYaw(next, prev); + + } else { + return null; + } + } else { + return null; + } + + } while(overshoot != 0); //if there's still length to cover, keep going + + return next; + } + + public float generateYaw(Vec3 front, Vec3 back) { + return 0F; //TODO + } + + /** Returns the amount of blocks that the train should move per tick */ + public abstract double getCurrentSpeed(); + /** Returns the gauge of this train */ + public abstract TrackGauge getGauge(); + /** Returns the length between the core and one of the bogies */ + public abstract double getLengthSpan(); + + /** Returns the "true" position of the train, i.e. the block it wants to snap to */ + public BlockPos getCurentAnchorPos() { + return new BlockPos(posX, posY, posZ); + } + + public void derail() { + isOnRail = false; + } + + @SideOnly(Side.CLIENT) + public void setPositionAndRotation2(double posX, double posY, double posZ, float yaw, float pitch, int turnProg) { + this.trainX = posX; + this.trainY = posY; + this.trainZ = posZ; + this.trainYaw = (double) yaw; + this.trainPitch = (double) pitch; + this.turnProgress = turnProg + 2; + this.motionX = this.velocityX; + this.motionY = this.velocityY; + this.motionZ = this.velocityZ; + } + + @SideOnly(Side.CLIENT) + public void setVelocity(double mX, double mY, double mZ) { + this.velocityX = this.motionX = mX; + this.velocityY = this.motionY = mY; + this.velocityZ = this.motionZ = mZ; + } +} From ec63136436efbe3dd543ccb4646c66e8169c2de7 Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 3 May 2023 14:15:16 +0200 Subject: [PATCH 007/432] the black mesa rail network --- .../hbm/entity/train/EntityRailCarBase.java | 19 ++++++-- .../entity/train/EntityRailCarRidable.java | 43 +++++++++++++++++ .../com/hbm/entity/train/TrainCargoTram.java | 46 +++++++++++++++++++ 3 files changed, 104 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/hbm/entity/train/EntityRailCarRidable.java create mode 100644 src/main/java/com/hbm/entity/train/TrainCargoTram.java diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java index f5c800bb0..7099bebde 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java @@ -34,6 +34,16 @@ public abstract class EntityRailCarBase extends Entity { @Override protected void entityInit() { } @Override protected void readEntityFromNBT(NBTTagCompound nbt) { } @Override protected void writeEntityToNBT(NBTTagCompound nbt) { } + + @Override + public boolean canBePushed() { + return true; + } + + @Override + public boolean canBeCollidedWith() { + return !this.isDead; + } @Override public void onUpdate() { @@ -67,10 +77,11 @@ public abstract class EntityRailCarBase extends Entity { Vec3 frontPos = getRelPosAlongRail(anchor, this.getLengthSpan()); Vec3 backPos = getRelPosAlongRail(anchor, -this.getLengthSpan()); - if(frontPos == null) this.derail(); - if(backPos == null) this.derail(); - - if(frontPos != null && backPos != null) this.rotationYaw = generateYaw(frontPos, backPos); + if(frontPos == null || backPos == null) { + this.derail(); + } else { + this.rotationYaw = generateYaw(frontPos, backPos); + } } } } diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java b/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java new file mode 100644 index 000000000..837fcceb2 --- /dev/null +++ b/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java @@ -0,0 +1,43 @@ +package com.hbm.entity.train; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public abstract class EntityRailCarRidable extends EntityRailCarBase { + + public EntityRailCarRidable(World world) { + super(world); + } + + @Override + public boolean interactFirst(EntityPlayer player) { + if(this.riddenByEntity != null && this.riddenByEntity instanceof EntityPlayer && this.riddenByEntity != player) { + return true; + } else { + if(!this.worldObj.isRemote) { + player.mountEntity(this); + } + return true; + } + } + + @Override + public void onUpdate() { + super.onUpdate(); + } + + @Override + public void updateRiderPosition() { + + Vec3 offset = getRiderSeatPosition(); + offset.rotateAroundY(this.rotationYaw); + + if(this.riddenByEntity != null) { + this.riddenByEntity.setPosition(this.posX + offset.xCoord, this.posY + offset.yCoord, this.posZ + offset.zCoord); + } + } + + /** Returns a Vec3 showing the relative position from the driver to the core */ + public abstract Vec3 getRiderSeatPosition(); +} diff --git a/src/main/java/com/hbm/entity/train/TrainCargoTram.java b/src/main/java/com/hbm/entity/train/TrainCargoTram.java new file mode 100644 index 000000000..11c89263a --- /dev/null +++ b/src/main/java/com/hbm/entity/train/TrainCargoTram.java @@ -0,0 +1,46 @@ +package com.hbm.entity.train; + +import com.hbm.blocks.rail.IRailNTM.TrackGauge; + +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public class TrainCargoTram extends EntityRailCarRidable { + + /* + * + * _________ + * | | \ <-- + * | | |___ + * | | | | | + * _O\|_|_______|__|_____________________________|/O_ + * |____| |____| + * \__________________________________________/ + * '( + )' '( + )' + * + */ + + public TrainCargoTram(World world) { + super(world); + } + + @Override + public double getCurrentSpeed() { + return 0; + } + + @Override + public TrackGauge getGauge() { + return TrackGauge.STANDARD; + } + + @Override + public double getLengthSpan() { + return 2; + } + + @Override + public Vec3 getRiderSeatPosition() { + return Vec3.createVectorHelper(1, 1, 0); + } +} From abc4dc0cbf92aef81a627d2df2d3ec59cd17faae Mon Sep 17 00:00:00 2001 From: Bob Date: Wed, 3 May 2023 23:10:28 +0200 Subject: [PATCH 008/432] tram trom --- src/main/java/com/hbm/blocks/ModBlocks.java | 5 + .../hbm/blocks/rail/RailStandardStraight.java | 9 +- .../java/com/hbm/entity/EntityMappings.java | 3 + .../hbm/entity/train/EntityRailCarBase.java | 13 +- .../com/hbm/entity/train/TrainCargoTram.java | 16 +- src/main/java/com/hbm/main/ClientProxy.java | 2 + .../com/hbm/main/ModEventHandlerClient.java | 14 + .../java/com/hbm/main/ResourceManager.java | 1 + .../entity/item/RenderTrainCargoTram.java | 37 ++ .../assets/hbm/models/vehicles/tram.obj | 425 ++++++++++++++++++ 10 files changed, 517 insertions(+), 8 deletions(-) create mode 100644 src/main/java/com/hbm/render/entity/item/RenderTrainCargoTram.java create mode 100644 src/main/resources/assets/hbm/models/vehicles/tram.obj diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 3b4ee27cf..d806d1efc 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -11,6 +11,7 @@ import com.hbm.blocks.machine.*; import com.hbm.blocks.machine.pile.*; import com.hbm.blocks.machine.rbmk.*; import com.hbm.blocks.network.*; +import com.hbm.blocks.rail.RailStandardStraight; import com.hbm.blocks.siege.*; import com.hbm.blocks.test.*; import com.hbm.blocks.turret.*; @@ -1085,6 +1086,8 @@ public class ModBlocks { public static Block rail_highspeed; public static Block rail_booster; + public static Block rail_large_straight; + public static Block statue_elb; public static Block statue_elb_g; public static Block statue_elb_w; @@ -2109,6 +2112,7 @@ public class ModBlocks { rail_narrow = new RailGeneric().setBlockName("rail_narrow").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_narrow"); rail_highspeed = new RailGeneric().setMaxSpeed(1F).setFlexible(false).setBlockName("rail_highspeed").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_highspeed"); rail_booster = new RailBooster().setBlockName("rail_booster").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_booster"); + rail_large_straight = new RailStandardStraight().setBlockName("rail_large_straight").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":block_steel"); crate = new BlockCrate(Material.wood).setBlockName("crate").setStepSound(Block.soundTypeWood).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.consumableTab).setBlockTextureName(RefStrings.MODID + ":crate"); crate_weapon = new BlockCrate(Material.wood).setBlockName("crate_weapon").setStepSound(Block.soundTypeWood).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.consumableTab).setBlockTextureName(RefStrings.MODID + ":crate_weapon"); @@ -3326,6 +3330,7 @@ public class ModBlocks { GameRegistry.registerBlock(rail_narrow, ItemBlockBase.class, rail_narrow.getUnlocalizedName()); GameRegistry.registerBlock(rail_highspeed, ItemBlockBase.class, rail_highspeed.getUnlocalizedName()); GameRegistry.registerBlock(rail_booster, ItemBlockBase.class, rail_booster.getUnlocalizedName()); + register(rail_large_straight); //Crate GameRegistry.registerBlock(crate, crate.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java b/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java index d28329aca..91e51c8ca 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java @@ -15,8 +15,8 @@ import net.minecraftforge.common.util.ForgeDirection; public class RailStandardStraight extends BlockDummyable implements IRailNTM { - public RailStandardStraight(Material mat) { - super(mat); + public RailStandardStraight() { + super(Material.iron); } @Override @@ -24,6 +24,11 @@ public class RailStandardStraight extends BlockDummyable implements IRailNTM { return null; } + @Override + public int getRenderType() { + return 0; + } + @Override public int[] getDimensions() { return new int[] {0, 0, 2, 2, 0, 0}; diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index 4d56ebc9b..844c470e9 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -14,6 +14,7 @@ import com.hbm.entity.mob.botprime.*; import com.hbm.entity.mob.siege.*; import com.hbm.entity.particle.*; import com.hbm.entity.projectile.*; +import com.hbm.entity.train.TrainCargoTram; import com.hbm.main.MainRegistry; import com.hbm.util.Tuple.Quartet; @@ -205,6 +206,8 @@ public class EntityMappings { addEntity(EntityChemical.class, "entity_chemthrower_splash", 1000); addEntity(EntityMist.class, "entity_mist", 1000); + addEntity(TrainCargoTram.class, "entity_ntm_cargo_tram", 250, false); + addMob(EntityCreeperNuclear.class, "entity_mob_nuclear_creeper", 0x204131, 0x75CE00); addMob(EntityCreeperTainted.class, "entity_mob_tainted_creeper", 0x813b9b, 0xd71fdd); addMob(EntityCreeperPhosgene.class, "entity_mob_phosgene_creeper", 0xE3D398, 0xB8A06B); diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java index 7099bebde..deefbf4db 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java @@ -75,7 +75,7 @@ public abstract class EntityRailCarBase extends Entity { anchor = this.getCurentAnchorPos(); //reset origin to new position Vec3 frontPos = getRelPosAlongRail(anchor, this.getLengthSpan()); - Vec3 backPos = getRelPosAlongRail(anchor, -this.getLengthSpan()); + Vec3 backPos = getRelPosAlongRail(anchor, this.getLengthSpan()); if(frontPos == null || backPos == null) { this.derail(); @@ -91,7 +91,7 @@ public abstract class EntityRailCarBase extends Entity { double overshoot = 0; float yaw = this.rotationYaw; - Vec3 next = null; + Vec3 next = Vec3.createVectorHelper(posX, posY, posZ); do { @@ -100,7 +100,7 @@ public abstract class EntityRailCarBase extends Entity { int z = anchor.getZ(); Block block = worldObj.getBlock(x, y, z); - Vec3 rot = Vec3.createVectorHelper(1, 0, 0); + Vec3 rot = Vec3.createVectorHelper(0, 0, 1); rot.rotateAroundY(yaw); if(block instanceof IRailNTM) { @@ -127,7 +127,10 @@ public abstract class EntityRailCarBase extends Entity { } public float generateYaw(Vec3 front, Vec3 back) { - return 0F; //TODO + double deltaX = front.xCoord - back.xCoord; + double deltaZ = front.zCoord - back.zCoord; + double radians = Math.atan(deltaZ / deltaX); + return (float) MathHelper.wrapAngleTo180_double(radians * 180D / Math.PI - 90); } /** Returns the amount of blocks that the train should move per tick */ @@ -144,6 +147,8 @@ public abstract class EntityRailCarBase extends Entity { public void derail() { isOnRail = false; + this.setDead(); + worldObj.createExplosion(this, posX, posY, posZ, 1F, false); } @SideOnly(Side.CLIENT) diff --git a/src/main/java/com/hbm/entity/train/TrainCargoTram.java b/src/main/java/com/hbm/entity/train/TrainCargoTram.java index 11c89263a..c8c7160e4 100644 --- a/src/main/java/com/hbm/entity/train/TrainCargoTram.java +++ b/src/main/java/com/hbm/entity/train/TrainCargoTram.java @@ -2,6 +2,8 @@ package com.hbm.entity.train; import com.hbm.blocks.rail.IRailNTM.TrackGauge; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.DamageSource; import net.minecraft.util.Vec3; import net.minecraft.world.World; @@ -22,11 +24,12 @@ public class TrainCargoTram extends EntityRailCarRidable { public TrainCargoTram(World world) { super(world); + this.setSize(2F, 1F); } @Override public double getCurrentSpeed() { - return 0; + return this.riddenByEntity instanceof EntityPlayer ? ((EntityPlayer) this.riddenByEntity).moveForward * 0.125D : 0; } @Override @@ -41,6 +44,15 @@ public class TrainCargoTram extends EntityRailCarRidable { @Override public Vec3 getRiderSeatPosition() { - return Vec3.createVectorHelper(1, 1, 0); + return Vec3.createVectorHelper(0.75, 1.75, 0.75); + } + + @Override + public boolean attackEntityFrom(DamageSource p_70097_1_, float p_70097_2_) { + if(!this.worldObj.isRemote && !this.isDead) { + this.setDead(); + } + + return true; } } diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index d366c31f2..04a912a51 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -60,6 +60,7 @@ import com.hbm.entity.mob.botprime.*; import com.hbm.entity.mob.siege.*; import com.hbm.entity.particle.*; import com.hbm.entity.projectile.*; +import com.hbm.entity.train.*; import com.hbm.handler.CasingEjector; import com.hbm.handler.HbmKeybinds; import com.hbm.handler.ImpactWorldHandler; @@ -681,6 +682,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityMinecartCrate.class, new RenderMinecart()); RenderingRegistry.registerEntityRenderingHandler(EntityMinecartNTM.class, new RenderNeoCart()); RenderingRegistry.registerEntityRenderingHandler(EntityMagnusCartus.class, new RenderMagnusCartus()); + RenderingRegistry.registerEntityRenderingHandler(TrainCargoTram.class, new RenderTrainCargoTram()); //items RenderingRegistry.registerEntityRenderingHandler(EntityMovingItem.class, new RenderMovingItem()); RenderingRegistry.registerEntityRenderingHandler(EntityMovingPackage.class, new RenderMovingPackage()); diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 9e8872aec..9938c2ec9 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -127,6 +127,7 @@ import net.minecraftforge.client.event.RenderWorldLastEvent; import net.minecraftforge.client.event.TextureStitchEvent; import net.minecraftforge.client.event.sound.PlaySoundEvent17; import net.minecraftforge.common.ForgeHooks; +import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.event.entity.player.ItemTooltipEvent; public class ModEventHandlerClient { @@ -200,6 +201,19 @@ public class ModEventHandlerClient { GL11.glPopMatrix(); Minecraft.getMinecraft().renderEngine.bindTexture(Gui.icons); }*/ + + List text = new ArrayList(); + text.add("YAW: " + player.rotationYaw); + text.add("PITCH: " + player.rotationPitch); + int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; + int j = 0; + if(i == 0) j = 2; + if(i == 1) j = 5; + if(i == 2) j = 3; + if(i == 3) j = 4; + ForgeDirection dir = ForgeDirection.getOrientation(j).getOpposite(); + text.add("x: " + dir.offsetX + " z: " + dir.offsetZ); + ILookOverlay.printGeneric(event, "DEBUG", 0xffff00, 0x4040000, text); } /// HANLDE ANIMATION BUSES /// diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index c56c4ed0d..302a3523c 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -1005,6 +1005,7 @@ public class ResourceManager { public static final IModelCustom cart = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vehicles/cart.obj")); public static final IModelCustom cart_destroyer = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vehicles/cart_destroyer.obj")); public static final IModelCustom cart_powder = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vehicles/cart_powder.obj")); + public static final IModelCustom train_cargo_tram = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vehicles/tram.obj")); ////Texture Entities diff --git a/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTram.java b/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTram.java new file mode 100644 index 000000000..660340f0f --- /dev/null +++ b/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTram.java @@ -0,0 +1,37 @@ +package com.hbm.render.entity.item; + +import org.lwjgl.opengl.GL11; + +import com.hbm.main.MainRegistry; +import com.hbm.main.ResourceManager; + +import net.minecraft.client.renderer.entity.Render; +import net.minecraft.entity.Entity; +import net.minecraft.util.ResourceLocation; + +public class RenderTrainCargoTram extends Render { + + @Override + public void doRender(Entity entity, double x, double y, double z, float swing, float interp) { + GL11.glPushMatrix(); + GL11.glTranslated(x, y, z); + + GL11.glRotated(180 - entity.rotationYaw, 0, 1, 0); + GL11.glRotated(-entity.rotationPitch, 0, 0, 1); + + MainRegistry.proxy.displayTooltip("Yaw: " + entity.rotationYaw, 666); + MainRegistry.proxy.displayTooltip("Pitch: " + entity.rotationPitch, 667); + + GL11.glDisable(GL11.GL_CULL_FACE); + bindTexture(ResourceManager.universal); + ResourceManager.train_cargo_tram.renderAll(); + GL11.glEnable(GL11.GL_CULL_FACE); + + GL11.glPopMatrix(); + } + + @Override + protected ResourceLocation getEntityTexture(Entity entity) { + return ResourceManager.universal; + } +} diff --git a/src/main/resources/assets/hbm/models/vehicles/tram.obj b/src/main/resources/assets/hbm/models/vehicles/tram.obj new file mode 100644 index 000000000..38a567ec5 --- /dev/null +++ b/src/main/resources/assets/hbm/models/vehicles/tram.obj @@ -0,0 +1,425 @@ +# Blender v2.79 (sub 0) OBJ File: 'tram.blend' +# www.blender.org +o Plane +v -1.000000 0.500000 2.500000 +v 1.000000 0.500000 2.500000 +v -1.000000 0.500000 -2.500000 +v 1.000000 0.500000 -2.500000 +v -1.000000 0.250000 2.500000 +v 1.000000 0.250000 2.500000 +v -1.000000 0.250000 -2.500000 +v 1.000000 0.250000 -2.500000 +v -1.000000 0.000000 2.250000 +v 1.000000 0.000000 2.250000 +v -1.000000 0.000000 -2.250000 +v 1.000000 0.000000 -2.250000 +v -0.125000 0.500000 1.000000 +v 0.875000 0.500000 1.000000 +v -0.125000 1.500000 1.000000 +v 0.875000 1.500000 1.000000 +v 0.125000 0.500000 2.000000 +v -0.125000 0.500000 1.750000 +v 0.875000 0.500000 1.750000 +v 0.625000 0.500000 2.000000 +v -0.125000 1.500000 1.750000 +v 0.125000 1.500000 2.000000 +v 0.625000 1.500000 2.000000 +v 0.875000 1.500000 1.750000 +v -0.625000 0.750000 2.437500 +v -0.625000 0.750000 2.312500 +v 0.625000 0.750000 2.312500 +v 0.625000 0.750000 2.437500 +v 0.713388 0.713388 2.312500 +v 0.713388 0.713388 2.437500 +v 0.750000 0.625000 2.312500 +v 0.750000 0.625000 2.437500 +v 0.713388 0.536612 2.312500 +v 0.713388 0.536612 2.437500 +v 0.625000 0.500000 2.312500 +v 0.625000 0.500000 2.437500 +v 0.536612 0.536612 2.312500 +v 0.536612 0.536612 2.437500 +v 0.500000 0.625000 2.312500 +v 0.500000 0.625000 2.437500 +v 0.536612 0.713388 2.312500 +v 0.536612 0.713388 2.437500 +v -0.536612 0.713388 2.312500 +v -0.536612 0.713388 2.437500 +v -0.500000 0.625000 2.312500 +v -0.500000 0.625000 2.437500 +v -0.536612 0.536612 2.312500 +v -0.536612 0.536612 2.437500 +v -0.625000 0.500000 2.312500 +v -0.625000 0.500000 2.437500 +v -0.713388 0.536612 2.312500 +v -0.713388 0.536612 2.437500 +v -0.750000 0.625000 2.312500 +v -0.750000 0.625000 2.437500 +v -0.713388 0.713388 2.312500 +v -0.713388 0.713388 2.437500 +v 0.375000 0.500000 2.312500 +v 0.875000 0.500000 2.312500 +v 0.375000 0.500000 2.187500 +v 0.875000 0.500000 2.187500 +v 0.375000 0.750000 2.187500 +v 0.375000 0.750000 2.312500 +v 0.875000 0.750000 2.312500 +v 0.875000 0.750000 2.187500 +v -0.875000 0.500000 2.312500 +v -0.375000 0.500000 2.312500 +v -0.875000 0.500000 2.187500 +v -0.375000 0.500000 2.187500 +v -0.875000 0.750000 2.187500 +v -0.875000 0.750000 2.312500 +v -0.375000 0.750000 2.312500 +v -0.375000 0.750000 2.187500 +v -0.875000 0.500000 1.875000 +v -0.125000 0.500000 1.875000 +v -0.875000 0.500000 1.125000 +v -0.125000 0.500000 1.125000 +v -0.875000 1.000000 1.125000 +v -0.875000 1.000000 1.875000 +v -0.125000 1.000000 1.875000 +v -0.125000 1.000000 1.125000 +v -0.750000 0.500000 -2.250000 +v 0.750000 0.500000 -2.250000 +v -0.750000 0.500000 -1.750000 +v 0.750000 0.500000 -1.750000 +v -0.750000 1.000000 -2.250000 +v 0.750000 1.000000 -2.250000 +v -0.750000 1.000000 -1.750000 +v 0.750000 1.000000 -1.750000 +vt 0.000000 0.833333 +vt 0.320000 0.000000 +vt 0.320000 0.833333 +vt 0.840000 0.333333 +vt 0.800000 0.000000 +vt 0.840000 0.000000 +vt 0.720000 0.833333 +vt 0.720000 0.000000 +vt 0.800000 0.041667 +vt 0.880000 0.333333 +vt 0.880000 0.000000 +vt 0.920000 0.333333 +vt 0.880000 0.000000 +vt 0.920000 0.000000 +vt 0.320000 0.000000 +vt 0.640000 0.750000 +vt 0.320000 0.750000 +vt 0.320000 0.791666 +vt 0.640000 0.791667 +vt 0.640000 0.833333 +vt 0.640000 0.000000 +vt 0.720000 0.041667 +vt 0.800000 0.875000 +vt 0.880000 0.708333 +vt 0.880000 0.875000 +vt 0.640000 0.958333 +vt 0.480000 0.833333 +vt 0.640000 0.833333 +vt 0.280000 1.000000 +vt 0.160000 1.000000 +vt 0.160000 0.833333 +vt 0.160000 0.833333 +vt 0.000000 1.000000 +vt 0.000000 0.833333 +vt 0.640000 0.791667 +vt 0.480000 0.916667 +vt 0.320000 0.958333 +vt 0.320000 0.916667 +vt 0.320000 0.791667 +vt 0.480000 0.791667 +vt 0.760000 0.833333 +vt 0.800000 0.916666 +vt 0.760000 0.916667 +vt 0.906131 0.580162 +vt 0.880000 0.568887 +vt 0.890824 0.541667 +vt 0.400000 0.973065 +vt 0.420000 0.958333 +vt 0.420000 0.973065 +vt 0.320000 1.000000 +vt 0.340000 0.958333 +vt 0.340000 1.000000 +vt 0.460000 0.987796 +vt 0.480000 0.973065 +vt 0.480000 0.987796 +vt 0.360000 0.958333 +vt 0.340000 0.973065 +vt 0.340000 0.958333 +vt 0.760000 0.996828 +vt 0.780000 0.955161 +vt 0.780000 0.996828 +vt 0.380000 0.973065 +vt 0.400000 0.958333 +vt 0.400000 0.973065 +vt 0.360000 0.973065 +vt 0.340000 0.987796 +vt 0.780000 0.996828 +vt 0.800000 0.955161 +vt 0.800000 0.996828 +vt 0.380000 0.987796 +vt 0.400000 0.987796 +vt 0.380000 0.987796 +vt 0.360000 0.973065 +vt 0.380000 0.973065 +vt 0.940000 0.583333 +vt 0.960000 0.666667 +vt 0.940000 0.666667 +vt 0.440000 0.973065 +vt 0.460000 0.958333 +vt 0.460000 0.973065 +vt 0.380000 0.958333 +vt 0.420000 0.987796 +vt 0.440000 0.973065 +vt 0.440000 0.987796 +vt 0.440000 0.987796 +vt 0.460000 0.987796 +vt 0.916955 0.571129 +vt 0.936955 0.556398 +vt 0.936955 0.571129 +vt 0.770824 0.916666 +vt 0.796955 0.927941 +vt 0.786131 0.955161 +vt 0.420000 0.973065 +vt 0.440000 0.958333 +vt 0.916955 0.556398 +vt 0.936955 0.541667 +vt 0.920000 0.250000 +vt 0.960000 0.333333 +vt 0.920000 0.333333 +vt 0.460000 0.973065 +vt 0.480000 0.958333 +vt 0.400000 0.987796 +vt 0.420000 0.987796 +vt 0.920000 0.083333 +vt 0.960000 0.166667 +vt 0.920000 0.166667 +vt 0.940000 0.666667 +vt 0.920000 0.708333 +vt 0.920000 0.666667 +vt 0.920000 0.583333 +vt 0.940000 0.666667 +vt 0.920000 0.666667 +vt 0.960000 0.250000 +vt 0.920000 0.166667 +vt 0.960000 0.166667 +vt 0.800000 0.708333 +vt 0.920000 0.583333 +vt 0.920000 0.708333 +vt 0.640000 0.958333 +vt 0.760000 0.833333 +vt 0.760000 0.958333 +vt 0.960000 0.458333 +vt 0.880000 0.333333 +vt 0.960000 0.333333 +vt 0.960000 0.958333 +vt 0.880000 0.833333 +vt 0.960000 0.833333 +vt 0.880000 1.000000 +vt 0.800000 0.875000 +vt 0.880000 0.875000 +vt 0.880000 0.708333 +vt 0.960000 0.833333 +vt 0.880000 0.833333 +vt 1.000000 0.083333 +vt 0.920000 0.000000 +vt 1.000000 0.000000 +vt 0.880000 0.541667 +vt 0.960000 0.458333 +vt 0.960000 0.541667 +vt 0.800000 0.583333 +vt 0.880000 0.333333 +vt 0.880000 0.583333 +vt 0.000000 0.000000 +vt 0.800000 0.333333 +vt 0.760000 0.000000 +vt 0.800000 0.791666 +vt 0.760000 0.833333 +vt 0.880000 0.333333 +vt 0.640000 0.000000 +vt 0.680000 0.000000 +vt 0.720000 0.791667 +vt 0.680000 0.833333 +vt 0.800000 0.708333 +vt 0.480000 0.958333 +vt 0.280000 0.833333 +vt 0.320000 0.875000 +vt 0.320000 0.958333 +vt 0.160000 1.000000 +vt 0.480000 0.791667 +vt 0.480000 0.958333 +vt 0.800000 0.833333 +vt 0.916955 0.552942 +vt 0.916955 0.568887 +vt 0.890824 0.580162 +vt 0.880000 0.552942 +vt 0.906131 0.541667 +vt 0.400000 0.958333 +vt 0.320000 0.958333 +vt 0.760000 0.955161 +vt 0.380000 0.958333 +vt 0.360000 0.987796 +vt 0.780000 0.955161 +vt 0.960000 0.583333 +vt 0.440000 0.958333 +vt 0.360000 0.958333 +vt 0.760000 0.943886 +vt 0.760000 0.927941 +vt 0.786131 0.916666 +vt 0.796955 0.943886 +vt 0.770824 0.955161 +vt 0.420000 0.958333 +vt 0.916955 0.541667 +vt 0.960000 0.250000 +vt 0.460000 0.958333 +vt 0.960000 0.083333 +vt 0.940000 0.708333 +vt 0.940000 0.583333 +vt 0.920000 0.250000 +vt 0.800000 0.583333 +vt 0.640000 0.833333 +vt 0.880000 0.458333 +vt 0.880000 0.958333 +vt 0.800000 1.000000 +vt 0.960000 0.708333 +vt 0.920000 0.083333 +vt 0.880000 0.458333 +vt 0.800000 0.333333 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -0.7071 -0.7071 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 -0.7071 0.7071 +vn -1.0000 0.0000 0.0000 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 0.7071 +vn 0.3827 0.9239 0.0000 +vn -0.9239 -0.3827 0.0000 +vn 0.9239 0.3827 0.0000 +vn -0.3827 -0.9239 0.0000 +vn 0.9239 -0.3827 0.0000 +vn 0.3827 -0.9239 0.0000 +vn -0.3827 0.9239 0.0000 +vn -0.9239 0.3827 0.0000 +s off +f 2/1/1 3/2/1 1/3/1 +f 8/4/2 11/5/2 7/6/2 +f 4/7/3 2/8/3 10/9/3 +f 4/10/4 7/6/4 3/11/4 +f 1/12/5 6/13/5 2/14/5 +f 11/15/6 10/16/6 9/17/6 +f 5/18/7 10/16/7 6/19/7 +f 1/20/8 3/21/8 11/22/8 +f 20/23/5 22/24/5 17/25/5 +f 14/26/3 24/27/3 19/28/3 +f 24/29/1 16/30/1 15/31/1 +f 13/32/4 16/33/4 14/34/4 +f 24/27/9 20/35/9 19/28/9 +f 18/36/10 22/37/10 21/38/10 +f 18/36/8 15/39/8 13/40/8 +f 58/41/5 62/42/5 57/43/5 +f 25/44/5 54/45/5 50/46/5 +f 28/47/11 29/48/11 27/49/11 +f 65/50/8 69/51/8 67/52/8 +f 52/53/12 53/54/12 51/55/12 +f 30/56/13 31/57/13 29/58/13 +f 57/59/8 61/60/8 59/61/8 +f 50/62/14 51/63/14 49/64/14 +f 32/65/15 33/66/15 31/57/15 +f 60/67/3 63/68/3 58/69/3 +f 48/70/16 49/64/16 47/71/16 +f 33/72/16 36/73/16 35/74/16 +f 63/75/1 61/76/1 62/77/1 +f 46/78/15 47/79/15 45/80/15 +f 36/73/14 37/81/14 35/74/14 +f 56/82/17 26/83/17 55/84/17 +f 44/85/13 45/80/13 43/86/13 +f 38/87/12 39/88/12 37/89/12 +f 28/90/5 40/91/5 36/92/5 +f 25/93/11 43/94/11 26/83/11 +f 40/95/18 41/96/18 39/88/18 +f 59/97/4 64/98/4 60/99/4 +f 54/100/18 55/101/18 53/54/18 +f 42/102/17 27/49/17 41/103/17 +f 66/104/5 70/105/5 65/106/5 +f 68/107/3 71/108/3 66/109/3 +f 71/110/1 69/111/1 70/112/1 +f 67/113/4 72/114/4 68/115/4 +f 75/116/6 74/117/6 73/118/6 +f 79/119/1 77/120/1 78/121/1 +f 76/122/3 79/123/3 74/124/3 +f 73/125/8 77/126/8 75/127/8 +f 75/128/4 80/129/4 76/130/4 +f 74/131/5 78/132/5 73/133/5 +f 86/134/3 84/135/3 82/136/3 +f 87/137/8 81/138/8 83/139/8 +f 85/140/4 82/141/4 81/142/4 +f 2/1/1 4/143/1 3/2/1 +f 8/4/2 12/144/2 11/5/2 +f 2/8/3 6/145/3 10/9/3 +f 10/9/3 12/146/3 4/7/3 +f 12/146/3 8/147/3 4/7/3 +f 4/10/4 8/4/4 7/6/4 +f 1/12/5 5/148/5 6/13/5 +f 11/15/6 12/149/6 10/16/6 +f 5/18/7 9/17/7 10/16/7 +f 3/21/8 7/150/8 11/22/8 +f 11/22/8 9/151/8 1/20/8 +f 9/151/8 5/152/8 1/20/8 +f 20/23/5 23/153/5 22/24/5 +f 14/26/3 16/154/3 24/27/3 +f 15/31/1 21/155/1 24/29/1 +f 21/155/1 22/156/1 24/29/1 +f 22/156/1 23/157/1 24/29/1 +f 13/32/4 15/158/4 16/33/4 +f 24/27/9 23/159/9 20/35/9 +f 18/36/10 17/160/10 22/37/10 +f 18/36/8 21/38/8 15/39/8 +f 58/41/5 63/161/5 62/42/5 +f 46/162/5 44/163/5 25/44/5 +f 25/44/5 56/164/5 54/45/5 +f 54/45/5 52/165/5 50/46/5 +f 50/46/5 48/166/5 46/162/5 +f 46/162/5 25/44/5 50/46/5 +f 28/47/11 30/167/11 29/48/11 +f 65/50/8 70/168/8 69/51/8 +f 52/53/12 54/100/12 53/54/12 +f 30/56/13 32/65/13 31/57/13 +f 57/59/8 62/169/8 61/60/8 +f 50/62/14 52/170/14 51/63/14 +f 32/65/15 34/171/15 33/66/15 +f 60/67/3 64/172/3 63/68/3 +f 48/70/16 50/62/16 49/64/16 +f 33/72/16 34/171/16 36/73/16 +f 63/75/1 64/173/1 61/76/1 +f 46/78/15 48/174/15 47/79/15 +f 36/73/14 38/175/14 37/81/14 +f 56/82/17 25/93/17 26/83/17 +f 44/85/13 46/78/13 45/80/13 +f 38/87/12 40/95/12 39/88/12 +f 32/176/5 30/177/5 28/90/5 +f 28/90/5 42/178/5 40/91/5 +f 40/91/5 38/179/5 36/92/5 +f 36/92/5 34/180/5 32/176/5 +f 32/176/5 28/90/5 36/92/5 +f 25/93/11 44/181/11 43/94/11 +f 40/95/18 42/182/18 41/96/18 +f 59/97/4 61/183/4 64/98/4 +f 54/100/18 56/184/18 55/101/18 +f 42/102/17 28/47/17 27/49/17 +f 66/104/5 71/185/5 70/105/5 +f 68/107/3 72/186/3 71/108/3 +f 71/110/1 72/187/1 69/111/1 +f 67/113/4 69/188/4 72/114/4 +f 75/116/6 76/189/6 74/117/6 +f 79/119/1 80/190/1 77/120/1 +f 76/122/3 80/191/3 79/123/3 +f 73/125/8 78/192/8 77/126/8 +f 75/128/4 77/193/4 80/129/4 +f 74/131/5 79/194/5 78/132/5 +f 86/134/3 88/195/3 84/135/3 +f 87/137/8 85/196/8 81/138/8 +f 85/140/4 86/197/4 82/141/4 From 907ab2f7b480add8a8723d2e70b43f906c4303f3 Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Wed, 3 May 2023 19:20:24 -0500 Subject: [PATCH 009/432] fixing the texture because it wants to be crappy --- .../hbm/textures/models/trinkets/Microwave.png | Bin 1788 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 src/main/resources/assets/hbm/textures/models/trinkets/Microwave.png diff --git a/src/main/resources/assets/hbm/textures/models/trinkets/Microwave.png b/src/main/resources/assets/hbm/textures/models/trinkets/Microwave.png deleted file mode 100644 index 13afba352dcb8175b35341cb00bb585beeb37eb4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1788 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D29ZfbK~#8N?ORK4 z6h{!Q?wQ^7+C;1kaiS1VKuB-`5i6$%iJZ7ZxpB)0Df|d7CjTI3t~nx3L6IzxTOuJL zD-j_INrXb;AQB9T?cJH_d31Na>KPj?UVH7Gh4o{;Rl9qtduO()tE+0d%Yyn~dV1Ox z&4KXr>C?W?7$sy;?^_H_0GR2nvRhDTKvC~oR01gKF3i%bBx|>2z2Pmo%5FhV0X&&` z;>~_^&9mDS!UovUZcvo<^JOvWIKi8kn7CH7H^j}GH>uTX(bcP0yXyJ*`C`Q22!i1A zqB#<5$q3HP&C$h+7uVH$0b3G4FXp-43#c@ps5eC~=DFSr*!LQ+@7>_Khf6wc4W;CX zv78_T8KX#w1{oWZrG=Nj-!57k!)Et36^QW9 zbWPaH&)Kd(*9{hQ4B?*-MpLx8HmE(+8ba_%+lQMyK;Q=&ZtNBTtg`{kC^OHDb74s7 zLkRqOkY8_tkuIk}AfdWG>NTmc>hsKVEk(`EdS*h1g4JIaqxKHOkqCy3 z)>0j`BuOaEQV2oP`1rW%i$UW)tu@u^b^7)8ZAb5gkM*BLi|CejtZ2Pn^j%Vu=RUO_ zt2dYwP;rfqhmXdb`_O}1Ye0Z{G4G%I?ijpXBMXQ*M%1DPDiaO7!9!pBVcpSDVMPCwy zu4GXRA+=rK>%#f-@6*|{r(8WuNDb8&u>oVtn9&rfy$k__B%{o=Wn#c^;QB}uZB9?JMj{t)TF+mf|a%5OA z&TPX&XbU4KbN9GY(bo$|>m$}j_zu3U$;fC}d#%t;K@Uh6M24WF!;N!e3mW(Bb_h?L z#u7-}65u)qVgg)pNdun^YP zJx7Bue2)1Sv#bf80%a9@Av9*`lzM@|+gZ_iHF(t;u-YkRX0G_BmmAIHgG;SkH7n2ODQtjf#p+VtI*=( zb>36Vg^=$$@4T&pp$kA#lk#%}>o!tZ3*0#ZZ>YLW)}4j20$8^z#K{%Bp~@Sr%rIZ` zc51E#oQkls)S%3d5m#oeG{0_A;Q2mTV<^)Z9XRlY%PTNiQ*(Trbe55nxtzJ?+=Eyt zs@LljMG-x|bI0`!ihc(l{V?#CdFG>^#*W;bX#A1q6w1yIHY*v2pIFbzBT(R##3>x!g;^^YNjC?w7w zuuP8ZiirT0niozubBQ5d?+LWS? zi%|*LBqlG>F8hRY6Gn}J1ppf$Rn|O|s)#7T+K-{`U@%i5$pl&nCT$F32o2yo0s+l1 zk%9m?-ynAVN-Y+58y!m7fXlD}UoQN-0vCWA<+rkYVvL0@yarr9yTH{)gggjU z4TiFf$gs>$7_kj#pJ`)ZL#@-0vb0Tx+i-v2j6eXNhzeotjahNW>U`u*Iw7r>F%Fu; z<3@~9Hh>nX>2eAq From 76756f02e85da12e2374b25b06db035d0f4821ba Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Wed, 3 May 2023 19:28:46 -0500 Subject: [PATCH 010/432] intellij being dumb and not seeing files moment --- .../hbm/textures/models/trinkets/microwave.png | Bin 0 -> 566 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/models/trinkets/microwave.png diff --git a/src/main/resources/assets/hbm/textures/models/trinkets/microwave.png b/src/main/resources/assets/hbm/textures/models/trinkets/microwave.png new file mode 100644 index 0000000000000000000000000000000000000000..82a5c22a44f90fea0a359d8b8d3c99ead67c999a GIT binary patch literal 566 zcmV-60?GY}P)Px$@JU2LRCr$PS+Puz0xpk$g+W;^`InA7%Z|37`TpRe*>zlj+>0GF1yu0hub`Vuzqh zW0`}8#!K}5U+_%};SnY1a)$gP{K@_#V4xgch7q0$aK1hxg3T>}9HNTlz8)o{T_gdy zm(Up>6%ZqkEx>72b6queiHB> zt7^$_s|k$LR%7$g4|vO-xZKs_1oM>S3v9Z>IvvcI95Q8 z)la4X6413ltAKt2T%7`r&w^Z&Puc=0rb`N+Nv1%GKvVf70jZcR#cv7)px+qLo?g6( zdlZbxS!e7`z>7D5RP<^x}0 Date: Wed, 3 May 2023 20:17:10 -0500 Subject: [PATCH 011/432] added accelerated compatibility to other components such as the DFC and batteries, also added some highly requested compatibility to fluid tanks. --- .../machine/TileEntityCoreEmitter.java | 27 ++++++------ .../machine/TileEntityCoreInjector.java | 6 +-- .../machine/TileEntityCoreReceiver.java | 8 ++-- .../machine/TileEntityCoreStabilizer.java | 12 +++--- .../storage/TileEntityMachineBattery.java | 24 ++++------- .../storage/TileEntityMachineFluidTank.java | 42 +++++++++++++++---- 6 files changed, 70 insertions(+), 49 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java index 5dd663165..085f1d9ad 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java @@ -1,7 +1,8 @@ package com.hbm.tileentity.machine; -import java.util.List; - +import api.hbm.block.ILaserable; +import api.hbm.energy.IEnergyUser; +import api.hbm.fluid.IFluidStandardReceiver; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.inventory.container.ContainerCoreEmitter; import com.hbm.inventory.fluid.FluidType; @@ -11,10 +12,6 @@ import com.hbm.inventory.gui.GUICoreEmitter; import com.hbm.lib.ModDamageSource; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; - -import api.hbm.block.ILaserable; -import api.hbm.energy.IEnergyUser; -import api.hbm.fluid.IFluidStandardReceiver; import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -35,6 +32,8 @@ import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +import java.util.List; + @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEnergyUser, IFluidAcceptor, ILaserable, IFluidStandardReceiver, SimpleComponent, IGUIProvider { @@ -311,50 +310,50 @@ public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEne return "dfc_emitter"; } - @Callback + @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getEnergyStored(Context context, Arguments args) { return new Object[] {getPower()}; } - @Callback + @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getMaxEnergy(Context context, Arguments args) { return new Object[] {getMaxPower()}; } - @Callback + @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getCryogel(Context context, Arguments args) { return new Object[] {tank.getFill()}; } - @Callback + @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getInput(Context context, Arguments args) { return new Object[] {watts}; } - @Callback + @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[] {getPower(), getMaxPower(), tank.getFill(), watts, isOn}; } - @Callback + @Callback(direct = true, limit = 2) @Optional.Method(modid = "OpenComputers") public Object[] isActive(Context context, Arguments args) { return new Object[] {isOn}; } - @Callback + @Callback(direct = true, limit = 2) @Optional.Method(modid = "OpenComputers") public Object[] setActive(Context context, Arguments args) { isOn = args.checkBoolean(0); return new Object[] {}; } - @Callback + @Callback(direct = true, limit = 2) @Optional.Method(modid = "OpenComputers") public Object[] setInput(Context context, Arguments args) { int newOutput = args.checkInteger(0); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java index 5b7e90266..7285639bd 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java @@ -200,19 +200,19 @@ public class TileEntityCoreInjector extends TileEntityMachineBase implements IFl return "dfc_injector"; } - @Callback + @Callback(direct = true, limit = 2) @Optional.Method(modid = "OpenComputers") public Object[] getFirstFuel(Context context, Arguments args) { return new Object[] {tanks[0].getFill()}; } - @Callback + @Callback(direct = true, limit = 2) @Optional.Method(modid = "OpenComputers") public Object[] getSecondFuel(Context context, Arguments args) { return new Object[] {tanks[1].getFill()}; } - @Callback + @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[] {tanks[0].getFill(), tanks[1].getFill()}; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java index d3e203e67..51b79e242 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java @@ -191,25 +191,25 @@ public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEn return "dfc_receiver"; } - @Callback + @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getInput(Context context, Arguments args) { return new Object[] {joules}; } - @Callback + @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getOutput(Context context, Arguments args) { return new Object[] {power}; } - @Callback + @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getCryogel(Context context, Arguments args) { return new Object[] {tank.getFill()}; } - @Callback + @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[] {joules, power, tank.getFill()}; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java index 27f060d89..de41bd82a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java @@ -173,25 +173,25 @@ public class TileEntityCoreStabilizer extends TileEntityMachineBase implements I return "dfc_stabilizer"; } - @Callback + @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getEnergyStored(Context context, Arguments args) { return new Object[] {power}; } - @Callback + @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getMaxEnergy(Context context, Arguments args) { return new Object[] {maxPower}; } - @Callback + @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getInput(Context context, Arguments args) { return new Object[] {watts}; } - @Callback + @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getDurability(Context context, Arguments args) { if(slots[0] != null && slots[0].getItem() == ModItems.ams_lens && ItemLens.getLensDamage(slots[0]) < ((ItemLens)ModItems.ams_lens).maxDamage) { @@ -200,7 +200,7 @@ public class TileEntityCoreStabilizer extends TileEntityMachineBase implements I return new Object[] {"N/A"}; } - @Callback + @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { Object lens_damage_buf; @@ -212,7 +212,7 @@ public class TileEntityCoreStabilizer extends TileEntityMachineBase implements I return new Object[] {power, maxPower, watts, lens_damage_buf}; } - @Callback + @Callback(direct = true, limit = 2) @Optional.Method(modid = "OpenComputers") public Object[] setInput(Context context, Arguments args) { int newOutput = args.checkInteger(0); diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java index 1043fb572..a0463756c 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java @@ -1,10 +1,6 @@ package com.hbm.tileentity.machine.storage; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - +import api.hbm.energy.*; import com.hbm.blocks.machine.MachineBattery; import com.hbm.inventory.container.ContainerMachineBattery; import com.hbm.inventory.gui.GUIMachineBattery; @@ -12,13 +8,6 @@ import com.hbm.lib.Library; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.TileEntityMachineBase; - -import api.hbm.energy.IBatteryItem; -import api.hbm.energy.IEnergyConductor; -import api.hbm.energy.IEnergyConnector; -import api.hbm.energy.IEnergyUser; -import api.hbm.energy.IPowerNet; -import api.hbm.energy.PowerNet; import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -36,6 +25,11 @@ import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "opencomputers")}) public class TileEntityMachineBattery extends TileEntityMachineBase implements IEnergyUser, IPersistentNBT, SimpleComponent, IGUIProvider { @@ -379,19 +373,19 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I return "ntm_energy_storage"; // need a way to somehow detect the first word of the energy storage block so people wont get confused when it comes to multiple energy storage blocks } - @Callback + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getEnergyStored(Context context, Arguments args) { return new Object[] {getPower()}; } - @Callback + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getMaxEnergy(Context context, Arguments args) { return new Object[] {getMaxPower()}; } - @Callback + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[] {getPower(), getMaxPower()}; diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java index 0036b77d2..327af7299 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java @@ -1,9 +1,6 @@ package com.hbm.tileentity.machine.storage; -import java.util.ArrayList; -import java.util.List; -import java.util.Random; - +import api.hbm.fluid.IFluidStandardTransceiver; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; import com.hbm.explosion.vanillant.ExplosionVNT; @@ -35,11 +32,13 @@ import com.hbm.tileentity.IRepairable; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.ParticleUtil; import com.hbm.util.fauxpointtwelve.DirPos; - -import api.hbm.fluid.IFluidStandardTransceiver; +import cpw.mods.fml.common.Optional; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; @@ -50,6 +49,11 @@ import net.minecraft.world.Explosion; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "opencomputers")}) public class TileEntityMachineFluidTank extends TileEntityMachineBase implements IFluidContainer, IFluidSource, IFluidAcceptor, IFluidStandardTransceiver, IPersistentNBT, IOverpressurable, IGUIProvider, IRepairable { public FluidTank tank; @@ -438,4 +442,28 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements this.hasExploded = false; this.markChanged(); } -} + + public String getComponentName() { + return "ntm_fluid_tank"; + } + @Callback(direct = true, limit = 4) + @Optional.Method(modid = "OpenComputers") + public Object[] getFluidStored(Context context, Arguments args) { + return new Object[] {tank.getFill()}; + } + @Callback(direct = true, limit = 4) + @Optional.Method(modid = "OpenComputers") + public Object[] getMaxStored(Context context, Arguments args) { + return new Object[] {tank.getMaxFill()}; + } + @Callback(direct = true, limit = 4) + @Optional.Method(modid = "OpenComputers") + public Object[] getTypeStored(Context context, Arguments args) { + return new Object[] {tank.getTankType()}; + } + @Callback(direct = true, limit = 4) + @Optional.Method(modid = "OpenComputers") + public Object[] getInfo(Context context, Arguments args) { + return new Object[]{tank.getFill(), tank.getMaxFill(), tank.getTankType().getName()}; + } +} \ No newline at end of file From 13e534be653a554c89d481eb4d41fe172812a83c Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Wed, 3 May 2023 21:02:55 -0500 Subject: [PATCH 012/432] Fixed some dumb compatibility issues in the fluid tanks --- .../machine/storage/TileEntityBarrel.java | 54 ++++++++++++++----- .../storage/TileEntityMachineFluidTank.java | 12 +++-- 2 files changed, 51 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java index 9c26e28d9..d6957ce01 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java @@ -1,10 +1,6 @@ package com.hbm.tileentity.machine.storage; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - +import api.hbm.fluid.*; import com.hbm.blocks.ModBlocks; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidSource; @@ -21,14 +17,13 @@ import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.fauxpointtwelve.DirPos; - -import api.hbm.fluid.IFluidConductor; -import api.hbm.fluid.IFluidConnector; -import api.hbm.fluid.IFluidStandardTransceiver; -import api.hbm.fluid.IPipeNet; -import api.hbm.fluid.PipeNet; +import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; +import li.cil.oc.api.network.SimpleComponent; import net.minecraft.block.Block; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; @@ -39,7 +34,13 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.world.EnumSkyBlock; import net.minecraft.world.World; -public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcceptor, IFluidSource, IFluidStandardTransceiver, IPersistentNBT, IGUIProvider { +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "opencomputers")}) +public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcceptor, IFluidSource, SimpleComponent, IFluidStandardTransceiver, IPersistentNBT, IGUIProvider { public FluidTank tank; public short mode = 0; @@ -349,4 +350,33 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIBarrel(player.inventory, this); } + + @Override + public String getComponentName() { + return "ntm_fluid_tank"; + } + + @Callback(direct = true, limit = 4) + @Optional.Method(modid = "OpenComputers") + public Object[] getFluidStored(Context context, Arguments args) { + return new Object[] {tank.getFill()}; + } + + @Callback(direct = true, limit = 4) + @Optional.Method(modid = "OpenComputers") + public Object[] getMaxStored(Context context, Arguments args) { + return new Object[] {tank.getMaxFill()}; + } + + @Callback(direct = true, limit = 4) + @Optional.Method(modid = "OpenComputers") + public Object[] getTypeStored(Context context, Arguments args) { + return new Object[] {tank.getTankType().getName()}; + } + + @Callback(direct = true, limit = 4) + @Optional.Method(modid = "OpenComputers") + public Object[] getInfo(Context context, Arguments args) { + return new Object[]{tank.getFill(), tank.getMaxFill(), tank.getTankType().getName()}; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java index 327af7299..91174eb4a 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java @@ -39,6 +39,7 @@ import cpw.mods.fml.relauncher.SideOnly; import li.cil.oc.api.machine.Arguments; import li.cil.oc.api.machine.Callback; import li.cil.oc.api.machine.Context; +import li.cil.oc.api.network.SimpleComponent; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; @@ -54,7 +55,7 @@ import java.util.List; import java.util.Random; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "opencomputers")}) -public class TileEntityMachineFluidTank extends TileEntityMachineBase implements IFluidContainer, IFluidSource, IFluidAcceptor, IFluidStandardTransceiver, IPersistentNBT, IOverpressurable, IGUIProvider, IRepairable { +public class TileEntityMachineFluidTank extends TileEntityMachineBase implements IFluidContainer, SimpleComponent, IFluidSource, IFluidAcceptor, IFluidStandardTransceiver, IPersistentNBT, IOverpressurable, IGUIProvider, IRepairable { public FluidTank tank; public short mode = 0; @@ -443,24 +444,29 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements this.markChanged(); } + @Override public String getComponentName() { - return "ntm_fluid_tank"; + return "ntm_tank"; } + @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getFluidStored(Context context, Arguments args) { return new Object[] {tank.getFill()}; } + @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getMaxStored(Context context, Arguments args) { return new Object[] {tank.getMaxFill()}; } + @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getTypeStored(Context context, Arguments args) { - return new Object[] {tank.getTankType()}; + return new Object[] {tank.getTankType().getName()}; } + @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { From 3983285c288e41e002873c9188143c5f0c51db45 Mon Sep 17 00:00:00 2001 From: Boblet Date: Thu, 4 May 2023 13:08:37 +0200 Subject: [PATCH 013/432] a curve that doesn't actually curve --- src/main/java/com/hbm/blocks/ModBlocks.java | 6 +- .../hbm/blocks/rail/RailStandardCurve.java | 132 ++++++++++++++++++ .../hbm/blocks/rail/RailStandardStraight.java | 2 +- .../hbm/entity/train/EntityRailCarBase.java | 10 +- .../com/hbm/entity/train/TrainCargoTram.java | 29 +++- 5 files changed, 174 insertions(+), 5 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/rail/RailStandardCurve.java diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index d806d1efc..fe53bd84c 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -11,6 +11,7 @@ import com.hbm.blocks.machine.*; import com.hbm.blocks.machine.pile.*; import com.hbm.blocks.machine.rbmk.*; import com.hbm.blocks.network.*; +import com.hbm.blocks.rail.RailStandardCurve; import com.hbm.blocks.rail.RailStandardStraight; import com.hbm.blocks.siege.*; import com.hbm.blocks.test.*; @@ -1085,8 +1086,9 @@ public class ModBlocks { public static Block rail_narrow; public static Block rail_highspeed; public static Block rail_booster; - + public static Block rail_large_straight; + public static Block rail_large_curve; public static Block statue_elb; public static Block statue_elb_g; @@ -2113,6 +2115,7 @@ public class ModBlocks { rail_highspeed = new RailGeneric().setMaxSpeed(1F).setFlexible(false).setBlockName("rail_highspeed").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_highspeed"); rail_booster = new RailBooster().setBlockName("rail_booster").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_booster"); rail_large_straight = new RailStandardStraight().setBlockName("rail_large_straight").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":block_steel"); + rail_large_curve = new RailStandardCurve().setBlockName("rail_large_curve").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":block_steel"); crate = new BlockCrate(Material.wood).setBlockName("crate").setStepSound(Block.soundTypeWood).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.consumableTab).setBlockTextureName(RefStrings.MODID + ":crate"); crate_weapon = new BlockCrate(Material.wood).setBlockName("crate_weapon").setStepSound(Block.soundTypeWood).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.consumableTab).setBlockTextureName(RefStrings.MODID + ":crate_weapon"); @@ -3331,6 +3334,7 @@ public class ModBlocks { GameRegistry.registerBlock(rail_highspeed, ItemBlockBase.class, rail_highspeed.getUnlocalizedName()); GameRegistry.registerBlock(rail_booster, ItemBlockBase.class, rail_booster.getUnlocalizedName()); register(rail_large_straight); + register(rail_large_curve); //Crate GameRegistry.registerBlock(crate, crate.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java b/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java new file mode 100644 index 000000000..de7a478a1 --- /dev/null +++ b/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java @@ -0,0 +1,132 @@ +package com.hbm.blocks.rail; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.lib.Library; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.Vec3; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class RailStandardCurve extends BlockDummyable implements IRailNTM { + + public RailStandardCurve() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { + return null; + } + + @Override + public int getRenderType() { + return 0; + } + + @Override + public Vec3 getSnappingPos(World world, int x, int y, int z, double trainX, double trainY, double trainZ) { + return snapAndMove(world, x, y, z, trainX, trainY, trainZ, 0, 0, 0, 0, new RailLeaveInfo()); + } + + @Override + public Vec3 getTravelLocation(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailLeaveInfo info) { + return snapAndMove(world, x, y, z, trainX, trainY, trainZ, motionX, motionY, motionZ, speed, info); + } + + /* Very simple function determining the snapping position and adding the motion value to it, if desired. */ + public Vec3 snapAndMove(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailLeaveInfo info) { + int[] pos = this.findCore(world, x, y, z); + if(pos == null) return Vec3.createVectorHelper(trainX, trainY, trainZ); + int cX = pos[0]; + int cY = pos[1]; + int cZ = pos[2]; + int meta = world.getBlockMetadata(cX, cY, cZ) - this.offset; + ForgeDirection dir = ForgeDirection.getOrientation(meta); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + double turnRadius = 4.5D; + + Vec3 vec = Vec3.createVectorHelper(trainX, trainY, trainZ); + double axisX = cX + 0.5 + dir.offsetX * 0.5 + rot.offsetX * turnRadius; + double axisZ = cZ + 0.5 + dir.offsetZ * 0.5 + rot.offsetZ * turnRadius; + + Vec3 dist = Vec3.createVectorHelper(vec.xCoord - axisX, 0, vec.zCoord - axisZ); + dist = dist.normalize(); + dist.xCoord *= turnRadius; + dist.zCoord *= turnRadius; + + if(speed == 0) { + info.dist(0).pos(new BlockPos(x, y, z)); + return Vec3.createVectorHelper(axisX + dist.xCoord, y, axisZ + dist.zCoord); + } + + double angleDeg = -Math.atan(dist.zCoord / dist.xCoord) * 180D / Math.PI; + double length90Deg = turnRadius * Math.PI / 2D; + double angularChange = speed / length90Deg * 90D; + + ForgeDirection moveDir = ForgeDirection.UNKNOWN; + + if(Math.abs(motionX) > Math.abs(motionZ)) { + moveDir = motionX > 0 ? Library.POS_X : Library.NEG_X; + } else { + moveDir = motionZ > 0 ? Library.POS_Z : Library.NEG_Z; + } + + if(moveDir == dir || moveDir == rot.getOpposite()) { + angularChange *= -1; + } + + double effAngle = angleDeg + angularChange; + + if(effAngle > 90) { + double angleOvershoot = effAngle - 90D; + double lengthOvershoot = angleOvershoot * length90Deg / 90D; + info.dist(lengthOvershoot).pos(new BlockPos(cX - dir.offsetX * 4 + rot.offsetX * 4, y, cZ - dir.offsetZ * 4 + rot.offsetZ * 4)); + return Vec3.createVectorHelper(axisX - dir.offsetX * turnRadius + rot.offsetX * turnRadius, y, axisZ - dir.offsetZ * turnRadius + rot.offsetZ * turnRadius); + } + + if(effAngle < 0) { + double angleOvershoot = -effAngle; + double lengthOvershoot = angleOvershoot * length90Deg / 90D; + info.dist(lengthOvershoot).pos(new BlockPos(cX + dir.offsetX , y, cZ + dir.offsetZ)); + return Vec3.createVectorHelper(axisX + 0.5 + dir.offsetX * 0.5, y, axisZ * 0.5 + dir.offsetZ * 0.5); + } + + double radianChange = angularChange * Math.PI / 180D; + dist.rotateAroundY((float) -radianChange); + + return Vec3.createVectorHelper(axisX + dist.xCoord, y, axisZ + dist.zCoord); + } + + @Override + public TrackGauge getGauge(World world, int x, int y, int z) { + return TrackGauge.STANDARD; + } + + @Override + public int[] getDimensions() { + return new int[] {0, 0, 4, 0, 4, 0}; + } + + @Override + public int getOffset() { + return 0; + } + + @Override + public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { + int meta = world.getBlockMetadata(x, y, z); + this.setBlockBounds(0F, 0F, 0F, 1F, 0.125F, 1F); + } + + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + this.setBlockBounds(0F, 0F, 0F, 1F, 0.125F, 1F); + return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); + } +} diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java b/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java index 91e51c8ca..512ca9aaa 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java @@ -74,7 +74,7 @@ public class RailStandardStraight extends BlockDummyable implements IRailNTM { Vec3 vec = Vec3.createVectorHelper(trainX, trainY, trainZ); if(speed == 0) { - return vec; + //return vec; } if(dir == Library.POS_X || dir == Library.NEG_X) { diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java index deefbf4db..00d27e963 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java @@ -75,7 +75,7 @@ public abstract class EntityRailCarBase extends Entity { anchor = this.getCurentAnchorPos(); //reset origin to new position Vec3 frontPos = getRelPosAlongRail(anchor, this.getLengthSpan()); - Vec3 backPos = getRelPosAlongRail(anchor, this.getLengthSpan()); + Vec3 backPos = getRelPosAlongRail(anchor, -this.getLengthSpan()); if(frontPos == null || backPos == null) { this.derail(); @@ -92,9 +92,17 @@ public abstract class EntityRailCarBase extends Entity { float yaw = this.rotationYaw; Vec3 next = Vec3.createVectorHelper(posX, posY, posZ); + int it = 0; do { + it++; + + if(it > 30) { + this.derail(); + return null; + } + int x = anchor.getX(); int y = anchor.getY(); int z = anchor.getZ(); diff --git a/src/main/java/com/hbm/entity/train/TrainCargoTram.java b/src/main/java/com/hbm/entity/train/TrainCargoTram.java index c8c7160e4..900f1026d 100644 --- a/src/main/java/com/hbm/entity/train/TrainCargoTram.java +++ b/src/main/java/com/hbm/entity/train/TrainCargoTram.java @@ -4,6 +4,7 @@ import com.hbm.blocks.rail.IRailNTM.TrackGauge; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.World; @@ -26,10 +27,34 @@ public class TrainCargoTram extends EntityRailCarRidable { super(world); this.setSize(2F, 1F); } + + public double speed = 0; + public static final double maxSpeed = 0.5; + public static final double acceleration = 0.01; + public static final double deceleration = 0.75; @Override - public double getCurrentSpeed() { - return this.riddenByEntity instanceof EntityPlayer ? ((EntityPlayer) this.riddenByEntity).moveForward * 0.125D : 0; + public double getCurrentSpeed() { // in its current form, only call once per tick + + if(this.riddenByEntity instanceof EntityPlayer) { + + EntityPlayer player = (EntityPlayer) this.riddenByEntity; + + if(player.moveForward > 0) { + speed += acceleration; + } else if(player.moveForward < 0) { + speed -= acceleration; + } else { + speed *= deceleration; + } + + } else { + speed *= deceleration; + } + + speed = MathHelper.clamp_double(speed, -maxSpeed, maxSpeed); + + return speed; } @Override From c67bb8ad3aef58b7d40ff7ef31a088a3fb4fd0a8 Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 5 May 2023 14:39:34 +0200 Subject: [PATCH 014/432] i am in spain without the s --- .../hbm/blocks/rail/RailStandardCurve.java | 40 ++++++++++++++++-- .../hbm/entity/train/EntityRailCarBase.java | 11 +++-- .../entity/train/EntityRailCarRidable.java | 2 +- .../textures/blocks/stone_biome.desert.png | Bin 0 -> 377 bytes .../blocks/stone_biome_layer.desert.png | Bin 0 -> 390 bytes .../blocks/stone_biome_top.desert.png | Bin 0 -> 331 bytes 6 files changed, 46 insertions(+), 7 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/blocks/stone_biome.desert.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/stone_biome_layer.desert.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/stone_biome_top.desert.png diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java b/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java index de7a478a1..08b824df4 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java @@ -1,12 +1,20 @@ package com.hbm.blocks.rail; +import java.util.ArrayList; +import java.util.List; + import com.hbm.blocks.BlockDummyable; import com.hbm.lib.Library; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.PlayerInformPacket; +import com.hbm.util.ParticleUtil; import com.hbm.util.fauxpointtwelve.BlockPos; import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.ChatComponentText; import net.minecraft.util.Vec3; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; @@ -49,6 +57,11 @@ public class RailStandardCurve extends BlockDummyable implements IRailNTM { ForgeDirection dir = ForgeDirection.getOrientation(meta); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + List context = new ArrayList(); + context.add("========================="); + + boolean debug = Math.abs(speed) < 2; + double turnRadius = 4.5D; Vec3 vec = Vec3.createVectorHelper(trainX, trainY, trainZ); @@ -65,10 +78,16 @@ public class RailStandardCurve extends BlockDummyable implements IRailNTM { return Vec3.createVectorHelper(axisX + dist.xCoord, y, axisZ + dist.zCoord); } + context.add("Speed: " + speed); + double angleDeg = -Math.atan(dist.zCoord / dist.xCoord) * 180D / Math.PI; double length90Deg = turnRadius * Math.PI / 2D; double angularChange = speed / length90Deg * 90D; + context.add("angleDeg: " + angleDeg); + context.add("length90Deg: " + length90Deg); + context.add("angularChange: " + angularChange); + ForgeDirection moveDir = ForgeDirection.UNKNOWN; if(Math.abs(motionX) > Math.abs(motionZ)) { @@ -77,29 +96,44 @@ public class RailStandardCurve extends BlockDummyable implements IRailNTM { moveDir = motionZ > 0 ? Library.POS_Z : Library.NEG_Z; } - if(moveDir == dir || moveDir == rot.getOpposite()) { + context.add("moveDir: " + moveDir); + + if(moveDir == dir || moveDir == rot) { angularChange *= -1; } + context.add("angularChange: " + angularChange); + double effAngle = angleDeg + angularChange; + context.add("effAngle: " + effAngle); + if(effAngle > 90) { double angleOvershoot = effAngle - 90D; double lengthOvershoot = angleOvershoot * length90Deg / 90D; - info.dist(lengthOvershoot).pos(new BlockPos(cX - dir.offsetX * 4 + rot.offsetX * 4, y, cZ - dir.offsetZ * 4 + rot.offsetZ * 4)); + context.add("angleOvershoot: " + angleOvershoot); + context.add("lengthOvershoot: " + lengthOvershoot); + info.dist(lengthOvershoot).pos(new BlockPos(cX - dir.offsetX * 4 + rot.offsetX * 5, y, cZ - dir.offsetZ * 4 + rot.offsetZ * 5)); + if(debug) for(String s : context) System.out.println(s); return Vec3.createVectorHelper(axisX - dir.offsetX * turnRadius + rot.offsetX * turnRadius, y, axisZ - dir.offsetZ * turnRadius + rot.offsetZ * turnRadius); } if(effAngle < 0) { double angleOvershoot = -effAngle; double lengthOvershoot = angleOvershoot * length90Deg / 90D; + context.add("angleOvershoot: " + angleOvershoot); + context.add("lengthOvershoot: " + lengthOvershoot); info.dist(lengthOvershoot).pos(new BlockPos(cX + dir.offsetX , y, cZ + dir.offsetZ)); + ParticleUtil.spawnGasFlame(world, axisX + 0.5 + dir.offsetX * 0.5, y, axisZ * 0.5 + dir.offsetZ * 0.5, 0, 0.2, 0); + if(debug) for(String s : context) System.out.println(s); return Vec3.createVectorHelper(axisX + 0.5 + dir.offsetX * 0.5, y, axisZ * 0.5 + dir.offsetZ * 0.5); } double radianChange = angularChange * Math.PI / 180D; - dist.rotateAroundY((float) -radianChange); + dist.rotateAroundY((float) radianChange); + context.add("radianChange: " + radianChange); + if(debug) for(String s : context) System.out.println(s); return Vec3.createVectorHelper(axisX + dist.xCoord, y, axisZ + dist.zCoord); } diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java index 00d27e963..79df30ca0 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java @@ -3,6 +3,7 @@ package com.hbm.entity.train; import com.hbm.blocks.rail.IRailNTM; import com.hbm.blocks.rail.IRailNTM.RailLeaveInfo; import com.hbm.blocks.rail.IRailNTM.TrackGauge; +import com.hbm.util.ParticleUtil; import com.hbm.util.fauxpointtwelve.BlockPos; import cpw.mods.fml.relauncher.Side; @@ -71,6 +72,9 @@ public abstract class EntityRailCarBase extends Entity { if(corePos == null) { this.derail(); } else { + this.prevPosX = this.posX; + this.prevPosY = this.posY; + this.prevPosZ = this.posZ; this.setPosition(corePos.xCoord, corePos.yCoord, corePos.zCoord); anchor = this.getCurentAnchorPos(); //reset origin to new position @@ -80,7 +84,7 @@ public abstract class EntityRailCarBase extends Entity { if(frontPos == null || backPos == null) { this.derail(); } else { - this.rotationYaw = generateYaw(frontPos, backPos); + //this.rotationYaw = generateYaw(frontPos, backPos); } } } @@ -99,6 +103,7 @@ public abstract class EntityRailCarBase extends Entity { it++; if(it > 30) { + worldObj.createExplosion(this, posX, posY, posZ, 5F, false); this.derail(); return null; } @@ -109,7 +114,8 @@ public abstract class EntityRailCarBase extends Entity { Block block = worldObj.getBlock(x, y, z); Vec3 rot = Vec3.createVectorHelper(0, 0, 1); - rot.rotateAroundY(yaw); + rot.rotateAroundY((float) (yaw * Math.PI / 180D)); + if(block instanceof IRailNTM) { IRailNTM rail = (IRailNTM) block; @@ -156,7 +162,6 @@ public abstract class EntityRailCarBase extends Entity { public void derail() { isOnRail = false; this.setDead(); - worldObj.createExplosion(this, posX, posY, posZ, 1F, false); } @SideOnly(Side.CLIENT) diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java b/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java index 837fcceb2..615db63b0 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java @@ -31,7 +31,7 @@ public abstract class EntityRailCarRidable extends EntityRailCarBase { public void updateRiderPosition() { Vec3 offset = getRiderSeatPosition(); - offset.rotateAroundY(this.rotationYaw); + offset.rotateAroundY((float) (this.rotationYaw * Math.PI / 180)); if(this.riddenByEntity != null) { this.riddenByEntity.setPosition(this.posX + offset.xCoord, this.posY + offset.yCoord, this.posZ + offset.zCoord); diff --git a/src/main/resources/assets/hbm/textures/blocks/stone_biome.desert.png b/src/main/resources/assets/hbm/textures/blocks/stone_biome.desert.png new file mode 100644 index 0000000000000000000000000000000000000000..5d121421f906507d8caf3468c3e96ea747f0b4c1 GIT binary patch literal 377 zcmV-<0fzpGP)t+{VScN2)^+Eq_Y&?c=~JNs@?P9v3Nc_$@D#ZIs8ymEt};8 zfNZyldb{5im!GcmQB*BJ7!)tQzS%4%(WdU4-&ilkVc?wK09Y@^p%yRejzu+V@YSL}}l zaI(eP_Q^i=^m`NE_(6k)`uZm=%E9IE6TMw|=wI76K0Mjwr)%W9YI-^l`LEjj=er>9 zWubB--B}{vg`#T1pbe1fZ8m@Bz-Hb0odJ5H4VAuw93<0p;5Wn}>hnPkYzFLRR{*at1EJ;$rZIL1>srl~^FUgHjZ<%Z)0oi%HVyMrIW1Q|Y>&?EemK3hX^cHtr@PZM z?}I!5hkyF|FWw1qPYS6U=CusSJCT>IZIl9{ze%DW9Z0Q9z7qgEQHqLoqys-xBfbGw kM8kNb1E~QyOy(rM0Z}pnk8>f5R{#J207*qoM6N<$f?d_8<^TWy literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/stone_biome_top.desert.png b/src/main/resources/assets/hbm/textures/blocks/stone_biome_top.desert.png new file mode 100644 index 0000000000000000000000000000000000000000..1c05ff0d1fc67d0560edf35385575c1af38be751 GIT binary patch literal 331 zcmV-R0kr;!P)gzh+SIs9G8;FPq*K_=|HZ`9ExaO$ql6ETT&{&?5cEuSYB4dM+YmN%2Ig+t{xVfag z5v`|^cH(~9LB@J`!%xYQu*G);0uUm*Rd13cLg!a;jPSN=_*@U(?b-0o5r z0FK&7OYGL}3=RmpMM)(cAYK^uqyl3@8)bIOofSvd4|dH?h_yU>teHU*iJx>}+?;>o d**YW&_6sbA35V46ElmIb002ovPDHLkV1oF~h<5-0 literal 0 HcmV?d00001 From 4433726af2b338d26bf77f2789bed095f2fb62d9 Mon Sep 17 00:00:00 2001 From: Bob Date: Fri, 5 May 2023 23:25:12 +0200 Subject: [PATCH 015/432] i fixed it and now it works even less --- .../hbm/blocks/rail/RailStandardCurve.java | 33 ++------- .../hbm/blocks/rail/RailStandardStraight.java | 17 +++-- .../hbm/entity/train/EntityRailCarBase.java | 23 +++++-- .../entity/train/EntityRailCarRidable.java | 2 +- .../com/hbm/entity/train/TrainCargoTram.java | 2 +- .../java/com/hbm/items/tool/ItemWandD.java | 67 ++++++++++++++++++- .../entity/item/RenderTrainCargoTram.java | 6 +- 7 files changed, 100 insertions(+), 50 deletions(-) diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java b/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java index 08b824df4..89658d741 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java @@ -57,11 +57,6 @@ public class RailStandardCurve extends BlockDummyable implements IRailNTM { ForgeDirection dir = ForgeDirection.getOrientation(meta); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - List context = new ArrayList(); - context.add("========================="); - - boolean debug = Math.abs(speed) < 2; - double turnRadius = 4.5D; Vec3 vec = Vec3.createVectorHelper(trainX, trainY, trainZ); @@ -78,16 +73,12 @@ public class RailStandardCurve extends BlockDummyable implements IRailNTM { return Vec3.createVectorHelper(axisX + dist.xCoord, y, axisZ + dist.zCoord); } - context.add("Speed: " + speed); double angleDeg = -Math.atan(dist.zCoord / dist.xCoord) * 180D / Math.PI; + if(dir == Library.NEG_X) angleDeg += 90; double length90Deg = turnRadius * Math.PI / 2D; double angularChange = speed / length90Deg * 90D; - context.add("angleDeg: " + angleDeg); - context.add("length90Deg: " + length90Deg); - context.add("angularChange: " + angularChange); - ForgeDirection moveDir = ForgeDirection.UNKNOWN; if(Math.abs(motionX) > Math.abs(motionZ)) { @@ -96,44 +87,31 @@ public class RailStandardCurve extends BlockDummyable implements IRailNTM { moveDir = motionZ > 0 ? Library.POS_Z : Library.NEG_Z; } - context.add("moveDir: " + moveDir); - - if(moveDir == dir || moveDir == rot) { + if(moveDir == dir || moveDir == rot.getOpposite()) { angularChange *= -1; } - context.add("angularChange: " + angularChange); - double effAngle = angleDeg + angularChange; - context.add("effAngle: " + effAngle); + if(Math.abs(speed) != 2)PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(new ChatComponentText(angleDeg + ""), 999, 3000), (EntityPlayerMP) world.playerEntities.get(0)); if(effAngle > 90) { double angleOvershoot = effAngle - 90D; double lengthOvershoot = angleOvershoot * length90Deg / 90D; - context.add("angleOvershoot: " + angleOvershoot); - context.add("lengthOvershoot: " + lengthOvershoot); - info.dist(lengthOvershoot).pos(new BlockPos(cX - dir.offsetX * 4 + rot.offsetX * 5, y, cZ - dir.offsetZ * 4 + rot.offsetZ * 5)); - if(debug) for(String s : context) System.out.println(s); + info.dist(-lengthOvershoot).pos(new BlockPos(cX - dir.offsetX * 4 + rot.offsetX * 5, y, cZ - dir.offsetZ * 4 + rot.offsetZ * 5)); return Vec3.createVectorHelper(axisX - dir.offsetX * turnRadius + rot.offsetX * turnRadius, y, axisZ - dir.offsetZ * turnRadius + rot.offsetZ * turnRadius); } if(effAngle < 0) { - double angleOvershoot = -effAngle; + double angleOvershoot = effAngle; double lengthOvershoot = angleOvershoot * length90Deg / 90D; - context.add("angleOvershoot: " + angleOvershoot); - context.add("lengthOvershoot: " + lengthOvershoot); info.dist(lengthOvershoot).pos(new BlockPos(cX + dir.offsetX , y, cZ + dir.offsetZ)); - ParticleUtil.spawnGasFlame(world, axisX + 0.5 + dir.offsetX * 0.5, y, axisZ * 0.5 + dir.offsetZ * 0.5, 0, 0.2, 0); - if(debug) for(String s : context) System.out.println(s); return Vec3.createVectorHelper(axisX + 0.5 + dir.offsetX * 0.5, y, axisZ * 0.5 + dir.offsetZ * 0.5); } double radianChange = angularChange * Math.PI / 180D; dist.rotateAroundY((float) radianChange); - context.add("radianChange: " + radianChange); - if(debug) for(String s : context) System.out.println(s); return Vec3.createVectorHelper(axisX + dist.xCoord, y, axisZ + dist.zCoord); } @@ -154,7 +132,6 @@ public class RailStandardCurve extends BlockDummyable implements IRailNTM { @Override public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { - int meta = world.getBlockMetadata(x, y, z); this.setBlockBounds(0F, 0F, 0F, 1F, 0.125F, 1F); } diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java b/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java index 512ca9aaa..d8a030009 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java @@ -41,7 +41,6 @@ public class RailStandardStraight extends BlockDummyable implements IRailNTM { @Override public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { - int meta = world.getBlockMetadata(x, y, z); this.setBlockBounds(0F, 0F, 0F, 1F, 0.125F, 1F); } @@ -84,11 +83,11 @@ public class RailStandardStraight extends BlockDummyable implements IRailNTM { } else { targetX -= speed; } - vec.xCoord = MathHelper.clamp_double(targetX, x - 2, x + 3); + vec.xCoord = MathHelper.clamp_double(targetX, cX - 2, cX + 3); vec.yCoord = y; - vec.zCoord = z + 0.5; - info.dist(Math.abs(targetX - vec.xCoord)); - info.pos(new BlockPos(vec.xCoord + (motionX > 0 ? 1 : -1), y, z)); + vec.zCoord = cZ + 0.5; + info.dist(Math.abs(targetX - vec.xCoord) * -Math.signum(speed)); + info.pos(new BlockPos(cX + (motionX > 0 ? 3 : -3), y, cZ)); } else { double targetZ = trainZ; if(motionZ > 0) { @@ -96,11 +95,11 @@ public class RailStandardStraight extends BlockDummyable implements IRailNTM { } else { targetZ -= speed; } - vec.xCoord = x + 0.5; + vec.xCoord = cX + 0.5; vec.yCoord = y; - vec.zCoord = MathHelper.clamp_double(targetZ, z - 2, z + 3); - info.dist(Math.abs(targetZ - vec.zCoord)); - info.pos(new BlockPos(x, y, vec.zCoord + (motionZ > 0 ? 1 : -1))); + vec.zCoord = MathHelper.clamp_double(targetZ, cZ - 2,cZ + 3); + info.dist(Math.abs(targetZ - vec.zCoord) * -Math.signum(speed)); + info.pos(new BlockPos(cX, y, cZ + (motionZ > 0 ? 3 : -3))); } return vec; diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java index 79df30ca0..1d76b8b12 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java @@ -3,6 +3,10 @@ package com.hbm.entity.train; import com.hbm.blocks.rail.IRailNTM; import com.hbm.blocks.rail.IRailNTM.RailLeaveInfo; import com.hbm.blocks.rail.IRailNTM.TrackGauge; +import com.hbm.main.MainRegistry; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.PlayerInformPacket; +import com.hbm.util.ChatBuilder; import com.hbm.util.ParticleUtil; import com.hbm.util.fauxpointtwelve.BlockPos; @@ -10,7 +14,10 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.World; @@ -60,9 +67,11 @@ public abstract class EntityRailCarBase extends Entity { --this.turnProgress; this.setPosition(x, y, z); this.setRotation(this.rotationYaw, this.rotationPitch); + this.setRotation((float)this.trainYaw, this.rotationPitch); } else { this.setPosition(this.posX, this.posY, this.posZ); this.setRotation(this.rotationYaw, this.rotationPitch); + this.setRotation((float)this.trainYaw, this.rotationPitch); } } else { @@ -84,15 +93,16 @@ public abstract class EntityRailCarBase extends Entity { if(frontPos == null || backPos == null) { this.derail(); } else { - //this.rotationYaw = generateYaw(frontPos, backPos); + this.rotationYaw = generateYaw(frontPos, backPos); } } + + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(new ChatComponentText("Yaw: " + this.rotationYaw), 665, 3000), (EntityPlayerMP) worldObj.playerEntities.get(0)); } } public Vec3 getRelPosAlongRail(BlockPos anchor, double distanceToCover) { - double overshoot = 0; float yaw = this.rotationYaw; Vec3 next = Vec3.createVectorHelper(posX, posY, posZ); @@ -114,8 +124,7 @@ public abstract class EntityRailCarBase extends Entity { Block block = worldObj.getBlock(x, y, z); Vec3 rot = Vec3.createVectorHelper(0, 0, 1); - rot.rotateAroundY((float) (yaw * Math.PI / 180D)); - + rot.rotateAroundY((float) (-yaw * Math.PI / 180D)); if(block instanceof IRailNTM) { IRailNTM rail = (IRailNTM) block; @@ -124,9 +133,11 @@ public abstract class EntityRailCarBase extends Entity { RailLeaveInfo info = new RailLeaveInfo(); Vec3 prev = next; next = rail.getTravelLocation(worldObj, x, y, z, posX, posY, posZ, rot.xCoord, rot.yCoord, rot.zCoord, distanceToCover, info); - overshoot = info.overshoot; + distanceToCover = info.overshoot; anchor = info.pos; yaw = generateYaw(next, prev); + + //if(info.overshoot > 0) System.out.println("[" + (worldObj.getTotalWorldTime() % 100) + "] Left track " + ((Block) rail).getUnlocalizedName() + " with " + ((int)(info.overshoot * 100) / 100D) + "m more to go!"); } else { return null; @@ -135,7 +146,7 @@ public abstract class EntityRailCarBase extends Entity { return null; } - } while(overshoot != 0); //if there's still length to cover, keep going + } while(distanceToCover != 0); //if there's still length to cover, keep going return next; } diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java b/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java index 615db63b0..95dd63367 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java @@ -31,7 +31,7 @@ public abstract class EntityRailCarRidable extends EntityRailCarBase { public void updateRiderPosition() { Vec3 offset = getRiderSeatPosition(); - offset.rotateAroundY((float) (this.rotationYaw * Math.PI / 180)); + offset.rotateAroundY((float) (-this.rotationYaw * Math.PI / 180)); if(this.riddenByEntity != null) { this.riddenByEntity.setPosition(this.posX + offset.xCoord, this.posY + offset.yCoord, this.posZ + offset.zCoord); diff --git a/src/main/java/com/hbm/entity/train/TrainCargoTram.java b/src/main/java/com/hbm/entity/train/TrainCargoTram.java index 900f1026d..5f76989a4 100644 --- a/src/main/java/com/hbm/entity/train/TrainCargoTram.java +++ b/src/main/java/com/hbm/entity/train/TrainCargoTram.java @@ -69,7 +69,7 @@ public class TrainCargoTram extends EntityRailCarRidable { @Override public Vec3 getRiderSeatPosition() { - return Vec3.createVectorHelper(0.75, 1.75, 0.75); + return Vec3.createVectorHelper(0.375, 1.75, 0.5); } @Override diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index 9401b7b76..06b60dc0f 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -2,13 +2,24 @@ package com.hbm.items.tool; import java.util.List; +import com.hbm.blocks.rail.IRailNTM; +import com.hbm.blocks.rail.IRailNTM.RailLeaveInfo; import com.hbm.lib.Library; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.PlayerInformPacket; +import com.hbm.util.ParticleUtil; +import com.hbm.util.fauxpointtwelve.BlockPos; import com.hbm.world.feature.OilSpot; +import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.MathHelper; import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; import net.minecraft.world.World; public class ItemWandD extends Item { @@ -23,6 +34,60 @@ public class ItemWandD extends Item { if(pos != null) { + float yaw = player.rotationYaw; + + Vec3 next = Vec3.createVectorHelper(pos.hitVec.xCoord, pos.hitVec.yCoord, pos.hitVec.zCoord); + int it = 0; + + BlockPos anchor = new BlockPos(pos.blockX, pos.blockY, pos.blockZ); + + double distanceToCover = 2D; + + ParticleUtil.spawnGasFlame(world, pos.hitVec.xCoord, pos.hitVec.yCoord, pos.hitVec.zCoord, 0, 0.2, 0); + + do { + + it++; + + if(it > 30) { + world.createExplosion(player, pos.hitVec.xCoord, pos.hitVec.yCoord, pos.hitVec.zCoord, 5F, false); + return stack; + } + + int x = anchor.getX(); + int y = anchor.getY(); + int z = anchor.getZ(); + Block block = world.getBlock(x, y, z); + + Vec3 rot = Vec3.createVectorHelper(0, 0, 1); + rot.rotateAroundY((float) (-yaw * Math.PI / 180D)); + + if(block instanceof IRailNTM) { + IRailNTM rail = (IRailNTM) block; + + RailLeaveInfo info = new RailLeaveInfo(); + Vec3 prev = next; + next = rail.getTravelLocation(world, x, y, z, prev.xCoord, prev.yCoord, prev.zCoord, rot.xCoord, rot.yCoord, rot.zCoord, distanceToCover, info); + distanceToCover = info.overshoot; + anchor = info.pos; + + ParticleUtil.spawnGasFlame(world, next.xCoord, next.yCoord, next.zCoord, 0, 0.2 * it, 0); + + double deltaX = next.xCoord - prev.xCoord; + double deltaZ = next.zCoord - prev.zCoord; + double radians = -Math.atan2(deltaX, deltaZ); + yaw = (float) MathHelper.wrapAngleTo180_double(radians * 180D / Math.PI); + + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(new ChatComponentText("Yaw: " + yaw), 0, 3000), (EntityPlayerMP) player); + + //if(info.overshoot > 0) System.out.println("[" + (worldObj.getTotalWorldTime() % 100) + "] Left track " + ((Block) rail).getUnlocalizedName() + " with " + ((int)(info.overshoot * 100) / 100D) + "m more to go!"); + + } else { + return stack; + } + + } while(distanceToCover != 0); //if there's still length to cover, keep going + /*TimeAnalyzer.startCount("setBlock"); world.setBlock(pos.blockX, pos.blockY, pos.blockZ, Blocks.dirt); TimeAnalyzer.startEndCount("getBlock"); @@ -58,8 +123,6 @@ public class ItemWandD extends Item { //MapGenStronghold.Start startS = new MapGenStronghold.Start(world, world.rand, pos.blockX >> 4, pos.blockZ >> 4); //startS.generateStructure(world, world.rand, new StructureBoundingBox(k - 124, l - 124, k + 15 + 124, l + 15 + 124)); - OilSpot.generateOilSpot(world, pos.blockX, pos.blockZ, 3, 50, true); - /*EntityNukeTorex torex = new EntityNukeTorex(world); torex.setPositionAndRotation(pos.blockX, pos.blockY + 1, pos.blockZ, 0, 0); torex.getDataWatcher().updateObject(10, 1.5F); diff --git a/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTram.java b/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTram.java index 660340f0f..5603c1d94 100644 --- a/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTram.java +++ b/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTram.java @@ -16,11 +16,11 @@ public class RenderTrainCargoTram extends Render { GL11.glPushMatrix(); GL11.glTranslated(x, y, z); - GL11.glRotated(180 - entity.rotationYaw, 0, 1, 0); + GL11.glRotated( -entity.rotationYaw, 0, 1, 0); GL11.glRotated(-entity.rotationPitch, 0, 0, 1); - MainRegistry.proxy.displayTooltip("Yaw: " + entity.rotationYaw, 666); - MainRegistry.proxy.displayTooltip("Pitch: " + entity.rotationPitch, 667); + MainRegistry.proxy.displayTooltip("Render Yaw: " + entity.rotationYaw, 666); + MainRegistry.proxy.displayTooltip("Render Pitch: " + entity.rotationPitch, 667); GL11.glDisable(GL11.GL_CULL_FACE); bindTexture(ResourceManager.universal); From a558b1d83b81d94a63181cccb1914d21e17fa916 Mon Sep 17 00:00:00 2001 From: Bob Date: Sat, 6 May 2023 12:43:32 +0200 Subject: [PATCH 016/432] straightened the straights, rail debugger --- .../hbm/blocks/rail/RailStandardCurve.java | 14 ++-- .../hbm/blocks/rail/RailStandardStraight.java | 8 +- .../hbm/entity/train/EntityRailCarBase.java | 6 +- .../java/com/hbm/items/tool/ItemWandD.java | 54 ------------ .../com/hbm/main/ModEventHandlerClient.java | 82 ++++++++++++++++--- 5 files changed, 85 insertions(+), 79 deletions(-) diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java b/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java index 89658d741..3bfa512dc 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java @@ -15,6 +15,7 @@ import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.ChatComponentText; +import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; @@ -76,6 +77,8 @@ public class RailStandardCurve extends BlockDummyable implements IRailNTM { double angleDeg = -Math.atan(dist.zCoord / dist.xCoord) * 180D / Math.PI; if(dir == Library.NEG_X) angleDeg += 90; + if(dir == Library.POS_X) angleDeg -= 90; + angleDeg = MathHelper.wrapAngleTo180_double(angleDeg); double length90Deg = turnRadius * Math.PI / 2D; double angularChange = speed / length90Deg * 90D; @@ -92,20 +95,19 @@ public class RailStandardCurve extends BlockDummyable implements IRailNTM { } double effAngle = angleDeg + angularChange; - - if(Math.abs(speed) != 2)PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(new ChatComponentText(angleDeg + ""), 999, 3000), (EntityPlayerMP) world.playerEntities.get(0)); + effAngle = MathHelper.wrapAngleTo180_double(effAngle); if(effAngle > 90) { double angleOvershoot = effAngle - 90D; double lengthOvershoot = angleOvershoot * length90Deg / 90D; - info.dist(-lengthOvershoot).pos(new BlockPos(cX - dir.offsetX * 4 + rot.offsetX * 5, y, cZ - dir.offsetZ * 4 + rot.offsetZ * 5)); - return Vec3.createVectorHelper(axisX - dir.offsetX * turnRadius + rot.offsetX * turnRadius, y, axisZ - dir.offsetZ * turnRadius + rot.offsetZ * turnRadius); + info.dist(lengthOvershoot * Math.signum(speed * angularChange)).pos(new BlockPos(cX - dir.offsetX * 4 + rot.offsetX * 5, y, cZ - dir.offsetZ * 4 + rot.offsetZ * 5)); + return Vec3.createVectorHelper(axisX - dir.offsetX * turnRadius, y, axisZ - dir.offsetZ * turnRadius); } if(effAngle < 0) { - double angleOvershoot = effAngle; + double angleOvershoot = -effAngle; double lengthOvershoot = angleOvershoot * length90Deg / 90D; - info.dist(lengthOvershoot).pos(new BlockPos(cX + dir.offsetX , y, cZ + dir.offsetZ)); + info.dist(-lengthOvershoot * Math.signum(speed * angularChange)).pos(new BlockPos(cX + dir.offsetX , y, cZ + dir.offsetZ)); return Vec3.createVectorHelper(axisX + 0.5 + dir.offsetX * 0.5, y, axisZ * 0.5 + dir.offsetZ * 0.5); } diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java b/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java index d8a030009..1129155e3 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java @@ -86,8 +86,8 @@ public class RailStandardStraight extends BlockDummyable implements IRailNTM { vec.xCoord = MathHelper.clamp_double(targetX, cX - 2, cX + 3); vec.yCoord = y; vec.zCoord = cZ + 0.5; - info.dist(Math.abs(targetX - vec.xCoord) * -Math.signum(speed)); - info.pos(new BlockPos(cX + (motionX > 0 ? 3 : -3), y, cZ)); + info.dist(Math.abs(targetX - vec.xCoord) * Math.signum(speed)); + info.pos(new BlockPos(cX + (motionX * speed > 0 ? 3 : -3), y, cZ)); } else { double targetZ = trainZ; if(motionZ > 0) { @@ -98,8 +98,8 @@ public class RailStandardStraight extends BlockDummyable implements IRailNTM { vec.xCoord = cX + 0.5; vec.yCoord = y; vec.zCoord = MathHelper.clamp_double(targetZ, cZ - 2,cZ + 3); - info.dist(Math.abs(targetZ - vec.zCoord) * -Math.signum(speed)); - info.pos(new BlockPos(cX, y, cZ + (motionZ > 0 ? 3 : -3))); + info.dist(Math.abs(targetZ - vec.zCoord) * Math.signum(speed)); + info.pos(new BlockPos(cX, y, cZ + (motionZ * speed > 0 ? 3 : -3))); } return vec; diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java index 1d76b8b12..74f9030ec 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java @@ -136,8 +136,6 @@ public abstract class EntityRailCarBase extends Entity { distanceToCover = info.overshoot; anchor = info.pos; yaw = generateYaw(next, prev); - - //if(info.overshoot > 0) System.out.println("[" + (worldObj.getTotalWorldTime() % 100) + "] Left track " + ((Block) rail).getUnlocalizedName() + " with " + ((int)(info.overshoot * 100) / 100D) + "m more to go!"); } else { return null; @@ -154,8 +152,8 @@ public abstract class EntityRailCarBase extends Entity { public float generateYaw(Vec3 front, Vec3 back) { double deltaX = front.xCoord - back.xCoord; double deltaZ = front.zCoord - back.zCoord; - double radians = Math.atan(deltaZ / deltaX); - return (float) MathHelper.wrapAngleTo180_double(radians * 180D / Math.PI - 90); + double radians = -Math.atan2(deltaX, deltaZ); + return (float) MathHelper.wrapAngleTo180_double(radians * 180D / Math.PI); } /** Returns the amount of blocks that the train should move per tick */ diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index 06b60dc0f..f8c7643da 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -34,60 +34,6 @@ public class ItemWandD extends Item { if(pos != null) { - float yaw = player.rotationYaw; - - Vec3 next = Vec3.createVectorHelper(pos.hitVec.xCoord, pos.hitVec.yCoord, pos.hitVec.zCoord); - int it = 0; - - BlockPos anchor = new BlockPos(pos.blockX, pos.blockY, pos.blockZ); - - double distanceToCover = 2D; - - ParticleUtil.spawnGasFlame(world, pos.hitVec.xCoord, pos.hitVec.yCoord, pos.hitVec.zCoord, 0, 0.2, 0); - - do { - - it++; - - if(it > 30) { - world.createExplosion(player, pos.hitVec.xCoord, pos.hitVec.yCoord, pos.hitVec.zCoord, 5F, false); - return stack; - } - - int x = anchor.getX(); - int y = anchor.getY(); - int z = anchor.getZ(); - Block block = world.getBlock(x, y, z); - - Vec3 rot = Vec3.createVectorHelper(0, 0, 1); - rot.rotateAroundY((float) (-yaw * Math.PI / 180D)); - - if(block instanceof IRailNTM) { - IRailNTM rail = (IRailNTM) block; - - RailLeaveInfo info = new RailLeaveInfo(); - Vec3 prev = next; - next = rail.getTravelLocation(world, x, y, z, prev.xCoord, prev.yCoord, prev.zCoord, rot.xCoord, rot.yCoord, rot.zCoord, distanceToCover, info); - distanceToCover = info.overshoot; - anchor = info.pos; - - ParticleUtil.spawnGasFlame(world, next.xCoord, next.yCoord, next.zCoord, 0, 0.2 * it, 0); - - double deltaX = next.xCoord - prev.xCoord; - double deltaZ = next.zCoord - prev.zCoord; - double radians = -Math.atan2(deltaX, deltaZ); - yaw = (float) MathHelper.wrapAngleTo180_double(radians * 180D / Math.PI); - - PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(new ChatComponentText("Yaw: " + yaw), 0, 3000), (EntityPlayerMP) player); - - //if(info.overshoot > 0) System.out.println("[" + (worldObj.getTotalWorldTime() % 100) + "] Left track " + ((Block) rail).getUnlocalizedName() + " with " + ((int)(info.overshoot * 100) / 100D) + "m more to go!"); - - } else { - return stack; - } - - } while(distanceToCover != 0); //if there's still length to cover, keep going - /*TimeAnalyzer.startCount("setBlock"); world.setBlock(pos.blockX, pos.blockY, pos.blockZ, Blocks.dirt); TimeAnalyzer.startEndCount("getBlock"); diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 9938c2ec9..f89a281d2 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -12,6 +12,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockAshes; +import com.hbm.blocks.rail.IRailNTM; +import com.hbm.blocks.rail.IRailNTM.RailLeaveInfo; import com.hbm.config.GeneralConfig; import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.mob.EntityHunterChopper; @@ -42,6 +44,7 @@ import com.hbm.lib.RefStrings; import com.hbm.packet.AuxButtonPacket; import com.hbm.packet.GunButtonPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.PlayerInformPacket; import com.hbm.packet.SyncButtonsPacket; import com.hbm.render.anim.HbmAnimations; import com.hbm.render.anim.HbmAnimations.Animation; @@ -64,12 +67,14 @@ import com.hbm.tileentity.machine.TileEntityNukeFurnace; import com.hbm.util.I18nUtil; import com.hbm.util.ItemStackUtil; import com.hbm.util.LoggingUtil; +import com.hbm.util.ParticleUtil; import com.hbm.wiaj.GuiWorldInAJar; import com.hbm.wiaj.cannery.CanneryBase; import com.hbm.wiaj.cannery.Jars; import com.hbm.util.ArmorRegistry; import com.hbm.util.ArmorUtil; import com.hbm.util.ArmorRegistry.HazardClass; +import com.hbm.util.fauxpointtwelve.BlockPos; import com.mojang.authlib.minecraft.MinecraftProfileTexture.Type; import api.hbm.item.IButtonReceiver; @@ -98,6 +103,7 @@ import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.entity.RenderPlayer; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.init.Items; import net.minecraft.inventory.Slot; import net.minecraft.item.Item; @@ -105,6 +111,7 @@ import net.minecraft.item.ItemArmor; import net.minecraft.item.ItemStack; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; +import net.minecraft.util.ChatComponentText; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IIcon; import net.minecraft.util.MathHelper; @@ -203,17 +210,70 @@ public class ModEventHandlerClient { }*/ List text = new ArrayList(); - text.add("YAW: " + player.rotationYaw); - text.add("PITCH: " + player.rotationPitch); - int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; - int j = 0; - if(i == 0) j = 2; - if(i == 1) j = 5; - if(i == 2) j = 3; - if(i == 3) j = 4; - ForgeDirection dir = ForgeDirection.getOrientation(j).getOpposite(); - text.add("x: " + dir.offsetX + " z: " + dir.offsetZ); - ILookOverlay.printGeneric(event, "DEBUG", 0xffff00, 0x4040000, text); + MovingObjectPosition pos = Library.rayTrace(player, 500, 1, false, true, false); + + for(int i = 0; i < 2; i++) if(pos != null && pos.typeOfHit == pos.typeOfHit.BLOCK) { + + float yaw = player.rotationYaw; + + Vec3 next = Vec3.createVectorHelper(pos.hitVec.xCoord, pos.hitVec.yCoord, pos.hitVec.zCoord); + Vec3 first = next; + int it = 0; + + BlockPos anchor = new BlockPos(pos.blockX, pos.blockY, pos.blockZ); + + double distanceToCover = 4D * (i == 0 ? 1 : -1); + + do { + + it++; + + if(it > 30) { + world.createExplosion(player, pos.hitVec.xCoord, pos.hitVec.yCoord, pos.hitVec.zCoord, 5F, false); + break; + } + + int x = anchor.getX(); + int y = anchor.getY(); + int z = anchor.getZ(); + Block block = world.getBlock(x, y, z); + + Vec3 rot = Vec3.createVectorHelper(0, 0, 1); + rot.rotateAroundY((float) (-yaw * Math.PI / 180D)); + + if(block instanceof IRailNTM) { + IRailNTM rail = (IRailNTM) block; + RailLeaveInfo info = new RailLeaveInfo(); + + boolean flip = distanceToCover < 0; + + if(it == 1) { + Vec3 snap = rail.getTravelLocation(world, x, y, z, next.xCoord, next.yCoord, next.zCoord, rot.xCoord, rot.yCoord, rot.zCoord, 0, info); + if(i == 0) world.spawnParticle("reddust", snap.xCoord, snap.yCoord + 0.25, snap.zCoord, 0.1, 1, 0.1); + } + + Vec3 prev = next; + next = rail.getTravelLocation(world, x, y, z, prev.xCoord, prev.yCoord, prev.zCoord, rot.xCoord, rot.yCoord, rot.zCoord, distanceToCover, info); + distanceToCover = info.overshoot; + anchor = info.pos; + if(i == 0) world.spawnParticle("reddust", next.xCoord, next.yCoord + 0.25, next.zCoord, 0, distanceToCover != 0 ? 0.5 : 0, 0); + else world.spawnParticle("reddust", next.xCoord, next.yCoord + 0.25, next.zCoord, 0, distanceToCover != 0 ? 0.5 : 0, 1); + + double deltaX = next.xCoord - prev.xCoord; + double deltaZ = next.zCoord - prev.zCoord; + double radians = -Math.atan2(deltaX, deltaZ); + yaw = (float) MathHelper.wrapAngleTo180_double(radians * 180D / Math.PI + (flip ? 180 : 0)); + + text.add(it + ": " + distanceToCover); + + } else { + break; + } + + } while(distanceToCover != 0); + + ILookOverlay.printGeneric(event, "DEBUG", 0xffff00, 0x4040000, text); + } } /// HANLDE ANIMATION BUSES /// From c0488324b088c2368cae9a0605d296fe9f7b9643 Mon Sep 17 00:00:00 2001 From: Bob Date: Sat, 6 May 2023 14:44:11 +0200 Subject: [PATCH 017/432] oh HELL yeah --- .../java/com/hbm/blocks/rail/IRailNTM.java | 13 +++--- .../hbm/blocks/rail/RailStandardCurve.java | 29 +++++++------ .../hbm/blocks/rail/RailStandardStraight.java | 10 +++-- .../hbm/entity/train/EntityRailCarBase.java | 43 +++++++++++++------ .../java/com/hbm/items/tool/ItemWandD.java | 2 +- .../com/hbm/main/ModEventHandlerClient.java | 10 ++--- 6 files changed, 67 insertions(+), 40 deletions(-) diff --git a/src/main/java/com/hbm/blocks/rail/IRailNTM.java b/src/main/java/com/hbm/blocks/rail/IRailNTM.java index 0bb68d517..430395012 100644 --- a/src/main/java/com/hbm/blocks/rail/IRailNTM.java +++ b/src/main/java/com/hbm/blocks/rail/IRailNTM.java @@ -15,11 +15,11 @@ public interface IRailNTM { * Returns a location on the rail based on the train's current X/Y/Z momentum as well as the intended speed along the rail. * If the train would leave the rail within that tick, the position is the last valid position on that rail. * Inherently safer than simply adding the motion to the position and then snapping, since that may lead to derailing. - * The motion has to be calculated from the train's rotation, the scalar doesn't matter since it's only used for determining orientation in a clear way. + * The motion has to be calculated from the train's rotation (rotated 180° when going backwards), the scalar doesn't matter since it's only used for determining orientation in a clear way. * Motion ends up being *-1 if the train is going in reverse, still pointing forwards despite the speed being negative. * Also features a double[] wrapper with size 1 which holds the speed value that overshoots the rail. * */ - public Vec3 getTravelLocation(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailLeaveInfo info); + public Vec3 getTravelLocation(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info); /** Returns that rail's gauge. Trains will derail if the gauge does not match. */ public TrackGauge getGauge(World world, int x, int y, int z); @@ -29,12 +29,15 @@ public interface IRailNTM { } /** A wrapper for all relevant info required when leaving a rail */ - public static class RailLeaveInfo { + public static class RailContext { + /** The angle at which the train ends up being on this rail */ + public float yaw; /** The amount of blocks still left to travel after completing the rail */ public double overshoot; /** The exit position of that rail */ public BlockPos pos; - public RailLeaveInfo dist(double d) { this.overshoot = d; return this; } - public RailLeaveInfo pos(BlockPos d) { this.pos = d; return this; } + public RailContext yaw(float y) { this.yaw = y; return this; } + public RailContext dist(double d) { this.overshoot = d; return this; } + public RailContext pos(BlockPos d) { this.pos = d; return this; } } } diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java b/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java index 3bfa512dc..35a6a9b4a 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java @@ -11,6 +11,7 @@ import com.hbm.util.ParticleUtil; import com.hbm.util.fauxpointtwelve.BlockPos; import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; @@ -39,16 +40,16 @@ public class RailStandardCurve extends BlockDummyable implements IRailNTM { @Override public Vec3 getSnappingPos(World world, int x, int y, int z, double trainX, double trainY, double trainZ) { - return snapAndMove(world, x, y, z, trainX, trainY, trainZ, 0, 0, 0, 0, new RailLeaveInfo()); + return snapAndMove(world, x, y, z, trainX, trainY, trainZ, 0, 0, 0, 0, new RailContext()); } @Override - public Vec3 getTravelLocation(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailLeaveInfo info) { + public Vec3 getTravelLocation(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info) { return snapAndMove(world, x, y, z, trainX, trainY, trainZ, motionX, motionY, motionZ, speed, info); } /* Very simple function determining the snapping position and adding the motion value to it, if desired. */ - public Vec3 snapAndMove(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailLeaveInfo info) { + public Vec3 snapAndMove(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info) { int[] pos = this.findCore(world, x, y, z); if(pos == null) return Vec3.createVectorHelper(trainX, trainY, trainZ); int cX = pos[0]; @@ -69,15 +70,17 @@ public class RailStandardCurve extends BlockDummyable implements IRailNTM { dist.xCoord *= turnRadius; dist.zCoord *= turnRadius; + double moveAngle = Math.atan2(motionX, motionZ) * 180D / Math.PI + 90; + if(speed == 0) { - info.dist(0).pos(new BlockPos(x, y, z)); + info.dist(0).pos(new BlockPos(x, y, z)).yaw((float) moveAngle); return Vec3.createVectorHelper(axisX + dist.xCoord, y, axisZ + dist.zCoord); } - - double angleDeg = -Math.atan(dist.zCoord / dist.xCoord) * 180D / Math.PI; - if(dir == Library.NEG_X) angleDeg += 90; - if(dir == Library.POS_X) angleDeg -= 90; + double angleDeg = Math.atan2(dist.xCoord, dist.zCoord) * 180D / Math.PI + 90; + if(dir == Library.NEG_X) angleDeg -= 90; + if(dir == Library.POS_X) angleDeg += 90; + if(dir == Library.POS_Z) angleDeg += 180; angleDeg = MathHelper.wrapAngleTo180_double(angleDeg); double length90Deg = turnRadius * Math.PI / 2D; double angularChange = speed / length90Deg * 90D; @@ -95,20 +98,22 @@ public class RailStandardCurve extends BlockDummyable implements IRailNTM { } double effAngle = angleDeg + angularChange; - effAngle = MathHelper.wrapAngleTo180_double(effAngle); + moveAngle += angularChange; if(effAngle > 90) { double angleOvershoot = effAngle - 90D; + moveAngle -= angleOvershoot; double lengthOvershoot = angleOvershoot * length90Deg / 90D; - info.dist(lengthOvershoot * Math.signum(speed * angularChange)).pos(new BlockPos(cX - dir.offsetX * 4 + rot.offsetX * 5, y, cZ - dir.offsetZ * 4 + rot.offsetZ * 5)); + info.dist(lengthOvershoot * Math.signum(speed * angularChange)).pos(new BlockPos(cX - dir.offsetX * 4 + rot.offsetX * 5, y, cZ - dir.offsetZ * 4 + rot.offsetZ * 5)).yaw((float) moveAngle); return Vec3.createVectorHelper(axisX - dir.offsetX * turnRadius, y, axisZ - dir.offsetZ * turnRadius); } if(effAngle < 0) { double angleOvershoot = -effAngle; + moveAngle -= angleOvershoot; double lengthOvershoot = angleOvershoot * length90Deg / 90D; - info.dist(-lengthOvershoot * Math.signum(speed * angularChange)).pos(new BlockPos(cX + dir.offsetX , y, cZ + dir.offsetZ)); - return Vec3.createVectorHelper(axisX + 0.5 + dir.offsetX * 0.5, y, axisZ * 0.5 + dir.offsetZ * 0.5); + info.dist(-lengthOvershoot * Math.signum(speed * angularChange)).pos(new BlockPos(cX + dir.offsetX , y, cZ + dir.offsetZ)).yaw((float) moveAngle); + return Vec3.createVectorHelper(axisX - rot.offsetX * turnRadius, y, axisZ -rot.offsetZ * turnRadius); } double radianChange = angularChange * Math.PI / 180D; diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java b/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java index 1129155e3..1c8889b0b 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java @@ -52,16 +52,16 @@ public class RailStandardStraight extends BlockDummyable implements IRailNTM { @Override public Vec3 getSnappingPos(World world, int x, int y, int z, double trainX, double trainY, double trainZ) { - return snapAndMove(world, x, y, z, trainX, trainY, trainZ, 0, 0, 0, 0, new RailLeaveInfo()); + return snapAndMove(world, x, y, z, trainX, trainY, trainZ, 0, 0, 0, 0, new RailContext()); } @Override - public Vec3 getTravelLocation(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailLeaveInfo info) { + public Vec3 getTravelLocation(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info) { return snapAndMove(world, x, y, z, trainX, trainY, trainZ, motionX, motionY, motionZ, speed, info); } /* Very simple function determining the snapping position and adding the motion value to it, if desired. */ - public Vec3 snapAndMove(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailLeaveInfo info) { + public Vec3 snapAndMove(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info) { int[] pos = this.findCore(world, x, y, z); if(pos == null) return Vec3.createVectorHelper(trainX, trainY, trainZ); int cX = pos[0]; @@ -80,8 +80,10 @@ public class RailStandardStraight extends BlockDummyable implements IRailNTM { double targetX = trainX; if(motionX > 0) { targetX += speed; + info.yaw(-90F); } else { targetX -= speed; + info.yaw(90F); } vec.xCoord = MathHelper.clamp_double(targetX, cX - 2, cX + 3); vec.yCoord = y; @@ -92,8 +94,10 @@ public class RailStandardStraight extends BlockDummyable implements IRailNTM { double targetZ = trainZ; if(motionZ > 0) { targetZ += speed; + info.yaw(0F); } else { targetZ -= speed; + info.yaw(180F); } vec.xCoord = cX + 0.5; vec.yCoord = y; diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java index 74f9030ec..750dc5765 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java @@ -1,7 +1,7 @@ package com.hbm.entity.train; import com.hbm.blocks.rail.IRailNTM; -import com.hbm.blocks.rail.IRailNTM.RailLeaveInfo; +import com.hbm.blocks.rail.IRailNTM.RailContext; import com.hbm.blocks.rail.IRailNTM.TrackGauge; import com.hbm.main.MainRegistry; import com.hbm.packet.PacketDispatcher; @@ -31,6 +31,7 @@ public abstract class EntityRailCarBase extends Entity { private double trainZ; private double trainYaw; private double trainPitch; + private float movementYaw; @SideOnly(Side.CLIENT) private double velocityX; @SideOnly(Side.CLIENT) private double velocityY; @SideOnly(Side.CLIENT) private double velocityZ; @@ -57,7 +58,9 @@ public abstract class EntityRailCarBase extends Entity { public void onUpdate() { if(this.worldObj.isRemote) { + if(this.turnProgress > 0) { + this.prevRotationYaw = this.rotationYaw; double x = this.posX + (this.trainX - this.posX) / (double) this.turnProgress; double y = this.posY + (this.trainY - this.posY) / (double) this.turnProgress; double z = this.posZ + (this.trainZ - this.posZ) / (double) this.turnProgress; @@ -67,11 +70,9 @@ public abstract class EntityRailCarBase extends Entity { --this.turnProgress; this.setPosition(x, y, z); this.setRotation(this.rotationYaw, this.rotationPitch); - this.setRotation((float)this.trainYaw, this.rotationPitch); } else { this.setPosition(this.posX, this.posY, this.posZ); this.setRotation(this.rotationYaw, this.rotationPitch); - this.setRotation((float)this.trainYaw, this.rotationPitch); } } else { @@ -81,11 +82,7 @@ public abstract class EntityRailCarBase extends Entity { if(corePos == null) { this.derail(); } else { - this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; this.setPosition(corePos.xCoord, corePos.yCoord, corePos.zCoord); - anchor = this.getCurentAnchorPos(); //reset origin to new position Vec3 frontPos = getRelPosAlongRail(anchor, this.getLengthSpan()); Vec3 backPos = getRelPosAlongRail(anchor, -this.getLengthSpan()); @@ -93,11 +90,15 @@ public abstract class EntityRailCarBase extends Entity { if(frontPos == null || backPos == null) { this.derail(); } else { - this.rotationYaw = generateYaw(frontPos, backPos); + this.prevRotationYaw = this.rotationYaw; + this.rotationYaw = this.movementYaw = generateYaw(frontPos, backPos); + this.motionX = this.rotationYaw / 360D; // hijacking this crap for easy syncing + this.velocityChanged = true; } } - - PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(new ChatComponentText("Yaw: " + this.rotationYaw), 665, 3000), (EntityPlayerMP) worldObj.playerEntities.get(0)); + + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(new ChatComponentText("Yaw: " + this.rotationYaw), 664, 3000), (EntityPlayerMP) worldObj.playerEntities.get(0)); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(new ChatComponentText("MYaw: " + this.movementYaw), 665, 3000), (EntityPlayerMP) worldObj.playerEntities.get(0)); } } @@ -105,6 +106,11 @@ public abstract class EntityRailCarBase extends Entity { float yaw = this.rotationYaw; + if(distanceToCover < 0) { + distanceToCover *= -1; + yaw += 180; + } + Vec3 next = Vec3.createVectorHelper(posX, posY, posZ); int it = 0; @@ -129,13 +135,20 @@ public abstract class EntityRailCarBase extends Entity { if(block instanceof IRailNTM) { IRailNTM rail = (IRailNTM) block; + if(it == 1) { + next = rail.getTravelLocation(worldObj, x, y, z, next.xCoord, next.yCoord, next.zCoord, rot.xCoord, rot.yCoord, rot.zCoord, 0, new RailContext()); + } + + boolean flip = distanceToCover < 0; + if(rail.getGauge(worldObj, x, y, z) == this.getGauge()) { - RailLeaveInfo info = new RailLeaveInfo(); + RailContext info = new RailContext(); Vec3 prev = next; - next = rail.getTravelLocation(worldObj, x, y, z, posX, posY, posZ, rot.xCoord, rot.yCoord, rot.zCoord, distanceToCover, info); + next = rail.getTravelLocation(worldObj, x, y, z, prev.xCoord, prev.yCoord, prev.zCoord, rot.xCoord, rot.yCoord, rot.zCoord, distanceToCover, info); distanceToCover = info.overshoot; anchor = info.pos; - yaw = generateYaw(next, prev); + + yaw = generateYaw(next, prev) * (flip ? -1 : 1); } else { return null; @@ -178,16 +191,18 @@ public abstract class EntityRailCarBase extends Entity { this.trainX = posX; this.trainY = posY; this.trainZ = posZ; - this.trainYaw = (double) yaw; + //this.trainYaw = (double) yaw; this.trainPitch = (double) pitch; this.turnProgress = turnProg + 2; this.motionX = this.velocityX; this.motionY = this.velocityY; this.motionZ = this.velocityZ; + this.trainYaw = this.movementYaw; } @SideOnly(Side.CLIENT) public void setVelocity(double mX, double mY, double mZ) { + this.movementYaw = (float) this.motionX * 360F; this.velocityX = this.motionX = mX; this.velocityY = this.motionY = mY; this.velocityZ = this.motionZ = mZ; diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index f8c7643da..2d22a2182 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -3,7 +3,7 @@ package com.hbm.items.tool; import java.util.List; import com.hbm.blocks.rail.IRailNTM; -import com.hbm.blocks.rail.IRailNTM.RailLeaveInfo; +import com.hbm.blocks.rail.IRailNTM.RailContext; import com.hbm.lib.Library; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.PlayerInformPacket; diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index f89a281d2..9393a59c8 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -13,11 +13,12 @@ import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockAshes; import com.hbm.blocks.rail.IRailNTM; -import com.hbm.blocks.rail.IRailNTM.RailLeaveInfo; +import com.hbm.blocks.rail.IRailNTM.RailContext; import com.hbm.config.GeneralConfig; import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.mob.EntityHunterChopper; import com.hbm.entity.projectile.EntityChopperMine; +import com.hbm.entity.train.EntityRailCarRidable; import com.hbm.extprop.HbmLivingProps; import com.hbm.extprop.HbmPlayerProps; import com.hbm.handler.ArmorModHandler; @@ -217,7 +218,6 @@ public class ModEventHandlerClient { float yaw = player.rotationYaw; Vec3 next = Vec3.createVectorHelper(pos.hitVec.xCoord, pos.hitVec.yCoord, pos.hitVec.zCoord); - Vec3 first = next; int it = 0; BlockPos anchor = new BlockPos(pos.blockX, pos.blockY, pos.blockZ); @@ -243,12 +243,12 @@ public class ModEventHandlerClient { if(block instanceof IRailNTM) { IRailNTM rail = (IRailNTM) block; - RailLeaveInfo info = new RailLeaveInfo(); + RailContext info = new RailContext(); boolean flip = distanceToCover < 0; if(it == 1) { - Vec3 snap = rail.getTravelLocation(world, x, y, z, next.xCoord, next.yCoord, next.zCoord, rot.xCoord, rot.yCoord, rot.zCoord, 0, info); + Vec3 snap = next = rail.getTravelLocation(world, x, y, z, next.xCoord, next.yCoord, next.zCoord, rot.xCoord, rot.yCoord, rot.zCoord, 0, info); if(i == 0) world.spawnParticle("reddust", snap.xCoord, snap.yCoord + 0.25, snap.zCoord, 0.1, 1, 0.1); } @@ -264,7 +264,7 @@ public class ModEventHandlerClient { double radians = -Math.atan2(deltaX, deltaZ); yaw = (float) MathHelper.wrapAngleTo180_double(radians * 180D / Math.PI + (flip ? 180 : 0)); - text.add(it + ": " + distanceToCover); + text.add(it + ": " + yaw); } else { break; From bfb1334b49657bba2ab3bb294d342f0f805fbaaa Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 7 May 2023 01:36:59 +0200 Subject: [PATCH 018/432] random shit, go! --- src/main/java/com/hbm/blocks/BlockEnums.java | 5 + src/main/java/com/hbm/blocks/ModBlocks.java | 11 +- .../hbm/blocks/generic/BlockBiomeStone.java | 53 ++++++++ .../com/hbm/blocks/generic/BlockSlag.java | 32 +++++ .../java/com/hbm/entity/EntityMappings.java | 32 +++++ .../com/hbm/entity/mob/EntityCreeperGold.java | 36 +++++ .../hbm/entity/mob/EntityCreeperVolatile.java | 36 +++++ .../hbm/explosion/vanillant/ExplosionVNT.java | 8 +- .../vanillant/interfaces/IBlockMutator.java | 5 +- .../standard/BlockAllocatorBulkie.java | 89 +++++++++++++ .../standard/BlockMutatorBulkie.java | 32 +++++ .../standard/BlockProcessorStandard.java | 3 +- .../java/com/hbm/items/tool/ItemWandD.java | 17 +++ src/main/java/com/hbm/main/ClientProxy.java | 2 + src/main/java/com/hbm/main/MainRegistry.java | 1 + .../java/com/hbm/world/feature/BiomeCave.java | 126 ++++++++++++++++++ .../hbm/textures/blocks/block_slag_broken.png | Bin 0 -> 792 bytes .../textures/blocks/stone_biome.woodland.png | Bin 0 -> 704 bytes .../blocks/stone_biome_layer.woodland.png | Bin 0 -> 765 bytes .../blocks/stone_biome_top.woodland.png | Bin 0 -> 790 bytes .../hbm/textures/blocks/stone_deep_base.png | Bin 0 -> 497 bytes .../hbm/textures/entity/creeper_gold.png | Bin 0 -> 3063 bytes .../hbm/textures/entity/creeper_volatile.png | Bin 0 -> 3107 bytes 23 files changed, 478 insertions(+), 10 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/generic/BlockBiomeStone.java create mode 100644 src/main/java/com/hbm/blocks/generic/BlockSlag.java create mode 100644 src/main/java/com/hbm/entity/mob/EntityCreeperGold.java create mode 100644 src/main/java/com/hbm/entity/mob/EntityCreeperVolatile.java create mode 100644 src/main/java/com/hbm/explosion/vanillant/standard/BlockAllocatorBulkie.java create mode 100644 src/main/java/com/hbm/explosion/vanillant/standard/BlockMutatorBulkie.java create mode 100644 src/main/java/com/hbm/world/feature/BiomeCave.java create mode 100644 src/main/resources/assets/hbm/textures/blocks/block_slag_broken.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/stone_biome.woodland.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/stone_biome_layer.woodland.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/stone_biome_top.woodland.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/stone_deep_base.png create mode 100644 src/main/resources/assets/hbm/textures/entity/creeper_gold.png create mode 100644 src/main/resources/assets/hbm/textures/entity/creeper_volatile.png diff --git a/src/main/java/com/hbm/blocks/BlockEnums.java b/src/main/java/com/hbm/blocks/BlockEnums.java index 99d7edadf..5a8e89122 100644 --- a/src/main/java/com/hbm/blocks/BlockEnums.java +++ b/src/main/java/com/hbm/blocks/BlockEnums.java @@ -10,6 +10,11 @@ public class BlockEnums { LIMESTONE } + public static enum EnumBiomeType { + DESERT, + WOODLAND + } + public static enum EnumStalagmiteType { SULFUR, ASBESTOS diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index fe53bd84c..0a0df5800 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -138,6 +138,7 @@ public class ModBlocks { public static Block stone_resource; public static Block stalagmite; public static Block stalactite; + public static Block stone_biome; public static Block stone_deep_cobble; public static Block depth_brick; @@ -1318,6 +1319,7 @@ public class ModBlocks { stone_resource = new BlockResourceStone().setBlockName("stone_resource").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F); stalagmite = new BlockStalagmite().setBlockName("stalagmite").setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.0F); stalactite = new BlockStalagmite().setBlockName("stalactite").setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.0F); + stone_biome = new BlockBiomeStone().setBlockName("stone_biome").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F); stone_deep_cobble = new BlockDeepCobble().setBlockName("stone_deep_cobble").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(30.0F); basalt = new BlockGeneric(Material.rock).setBlockName("basalt").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":basalt"); @@ -1443,7 +1445,7 @@ public class ModBlocks { block_semtex = new BlockPlasticExplosive(Material.tnt).setBlockName("block_semtex").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(2.0F).setResistance(2.0F).setBlockTextureName(RefStrings.MODID + ":block_semtex"); block_c4 = new BlockPlasticExplosive(Material.tnt).setBlockName("block_c4").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(2.0F).setResistance(2.0F).setBlockTextureName(RefStrings.MODID + ":block_c4"); block_smore = new BlockPillar(Material.rock, RefStrings.MODID + ":block_smore_top").setBlockName("block_smore").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":block_smore_side"); - block_slag = new BlockBeaconable(Material.iron).setBlockName("block_slag").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_slag"); + block_slag = new BlockSlag(Material.rock).setBlockName("block_slag").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeStone).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_slag"); block_australium = new BlockBeaconable(Material.iron).setBlockName("block_australium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_australium"); block_weidanium = new BlockBeaconable(Material.iron).setBlockName("block_weidanium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_weidanium"); @@ -2461,9 +2463,10 @@ public class ModBlocks { GameRegistry.registerBlock(crystal_trixite, crystal_trixite.getUnlocalizedName()); //Resource-bearing Stones - GameRegistry.registerBlock(stone_resource, ItemBlockBase.class, stone_resource.getUnlocalizedName()); - GameRegistry.registerBlock(stalagmite, ItemBlockBase.class, stalagmite.getUnlocalizedName()); - GameRegistry.registerBlock(stalactite, ItemBlockBase.class, stalactite.getUnlocalizedName()); + register(stone_resource); + register(stalagmite); + register(stalactite); + register(stone_biome); //Stone Variants GameRegistry.registerBlock(stone_porous, stone_porous.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/generic/BlockBiomeStone.java b/src/main/java/com/hbm/blocks/generic/BlockBiomeStone.java new file mode 100644 index 000000000..a53cce92d --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockBiomeStone.java @@ -0,0 +1,53 @@ +package com.hbm.blocks.generic; + +import com.hbm.blocks.BlockEnumMulti; +import com.hbm.blocks.BlockEnums.EnumBiomeType; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; + +public class BlockBiomeStone extends BlockEnumMulti { + + public BlockBiomeStone() { + super(Material.rock, EnumBiomeType.class, true, true); + } + + protected IIcon[] iconsTop; + protected IIcon[] iconsLayer; + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister reg) { + + Enum[] enums = theEnum.getEnumConstants(); + this.icons = new IIcon[enums.length]; + this.iconsTop = new IIcon[enums.length]; + this.iconsLayer = new IIcon[enums.length]; + + for(int i = 0; i < icons.length; i++) { + Enum num = enums[i]; + this.icons[i] = reg.registerIcon(this.getTextureName() + "." + num.name().toLowerCase()); + this.iconsTop[i] = reg.registerIcon(this.getTextureName() + "_top." + num.name().toLowerCase()); + this.iconsLayer[i] = reg.registerIcon(this.getTextureName() + "_layer." + num.name().toLowerCase()); + } + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) { + + int meta = world.getBlockMetadata(x, y, z); + if(side == 0) return this.iconsTop[meta % this.icons.length]; + if(side == 1) return this.iconsTop[meta % this.icons.length]; + + if(world.getBlock(x, y + 1, z) == this && world.getBlockMetadata(x, y + 1, z) == meta) { + return this.getIcon(side, meta); + } else { + return this.iconsLayer[meta % this.icons.length]; + } + } +} diff --git a/src/main/java/com/hbm/blocks/generic/BlockSlag.java b/src/main/java/com/hbm/blocks/generic/BlockSlag.java new file mode 100644 index 000000000..b18db55b1 --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockSlag.java @@ -0,0 +1,32 @@ +package com.hbm.blocks.generic; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.util.IIcon; + +public class BlockSlag extends BlockBeaconable { + + @SideOnly(Side.CLIENT) + private IIcon iconAlt; + + public BlockSlag(Material mat) { + super(mat); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + super.registerBlockIcons(iconRegister); + this.iconAlt = iconRegister.registerIcon(this.getTextureName() + "_broken"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + if(metadata == 1) return this.iconAlt; + + return this.blockIcon; + } +} diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index 844c470e9..23a8e70fd 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -20,6 +20,10 @@ import com.hbm.util.Tuple.Quartet; import cpw.mods.fml.common.registry.EntityRegistry; import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EnumCreatureType; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.biome.BiomeGenBase.SpawnListEntry; public class EntityMappings { @@ -211,6 +215,8 @@ public class EntityMappings { addMob(EntityCreeperNuclear.class, "entity_mob_nuclear_creeper", 0x204131, 0x75CE00); addMob(EntityCreeperTainted.class, "entity_mob_tainted_creeper", 0x813b9b, 0xd71fdd); addMob(EntityCreeperPhosgene.class, "entity_mob_phosgene_creeper", 0xE3D398, 0xB8A06B); + addMob(EntityCreeperVolatile.class, "entity_mob_volatile_creeper", 0xC28153, 0x4D382C); + addMob(EntityCreeperGold.class, "entity_mob_gold_creeper", 0xECC136, 0x9E8B3E); addMob(EntityHunterChopper.class, "entity_mob_hunter_chopper", 0x000020, 0x2D2D72); addMob(EntityCyberCrab.class, "entity_cyber_crab", 0xAAAAAA, 0x444444); addMob(EntityTeslaCrab.class, "entity_tesla_crab", 0xAAAAAA, 0x440000); @@ -224,6 +230,10 @@ public class EntityMappings { addMob(EntitySiegeSkeleton.class, "entity_meme_skeleton", 0x303030, 0x000080); addMob(EntitySiegeUFO.class, "entity_meme_ufo", 0x303030, 0x800000); addMob(EntitySiegeCraft.class, "entity_meme_craft", 0x303030, 0x808000); + + addSpawn(EntityCreeperPhosgene.class, 5, 1, 1, EnumCreatureType.monster, BiomeGenBase.getBiomeGenArray()); + addSpawn(EntityCreeperVolatile.class, 10, 1, 1, EnumCreatureType.monster, BiomeGenBase.getBiomeGenArray()); + addSpawn(EntityCreeperGold.class, 1, 1, 1, EnumCreatureType.monster, BiomeGenBase.getBiomeGenArray()); int id = 0; for(Quartet, String, Integer, Boolean> entry : entityMappings) { @@ -246,4 +256,26 @@ public class EntityMappings { private static void addMob(Class clazz, String name, int color1, int color2) { mobMappings.add(new Quartet(clazz, name, color1, color2)); } + + public static void addSpawn(Class entityClass, int weightedProb, int min, int max, EnumCreatureType typeOfCreature, BiomeGenBase... biomes) { + + for(BiomeGenBase biome : biomes) { + + if(biome == null) continue; + + List spawns = biome.getSpawnableList(typeOfCreature); + + for(SpawnListEntry entry : spawns) { + // Adjusting an existing spawn entry + if(entry.entityClass == entityClass) { + entry.itemWeight = weightedProb; + entry.minGroupCount = min; + entry.maxGroupCount = max; + break; + } + } + + spawns.add(new SpawnListEntry(entityClass, weightedProb, min, max)); + } + } } diff --git a/src/main/java/com/hbm/entity/mob/EntityCreeperGold.java b/src/main/java/com/hbm/entity/mob/EntityCreeperGold.java new file mode 100644 index 000000000..d9ab7d3b6 --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/EntityCreeperGold.java @@ -0,0 +1,36 @@ +package com.hbm.entity.mob; + +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.explosion.vanillant.standard.*; + +import net.minecraft.entity.monster.EntityCreeper; +import net.minecraft.init.Blocks; +import net.minecraft.world.World; + +public class EntityCreeperGold extends EntityCreeper { + + public EntityCreeperGold(World world) { + super(world); + } + + @Override + public void func_146077_cc() { + + if(!this.worldObj.isRemote) { + this.setDead(); + + ExplosionVNT vnt = new ExplosionVNT(worldObj, posX, posY, posZ, 7); + vnt.setBlockAllocator(new BlockAllocatorBulkie(60)); + vnt.setBlockProcessor(new BlockProcessorStandard().withBlockEffect(new BlockMutatorBulkie(Blocks.gold_ore))); + vnt.setEntityProcessor(new EntityProcessorStandard().withRangeMod(0.5F)); + vnt.setPlayerProcessor(new PlayerProcessorStandard()); + vnt.setSFX(new ExplosionEffectStandard()); + vnt.explode(); + } + } + + @Override + public boolean getCanSpawnHere() { + return super.getCanSpawnHere() && this.posY <= 40; + } +} diff --git a/src/main/java/com/hbm/entity/mob/EntityCreeperVolatile.java b/src/main/java/com/hbm/entity/mob/EntityCreeperVolatile.java new file mode 100644 index 000000000..d957c7aca --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/EntityCreeperVolatile.java @@ -0,0 +1,36 @@ +package com.hbm.entity.mob; + +import com.hbm.blocks.ModBlocks; +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.explosion.vanillant.standard.*; + +import net.minecraft.entity.monster.EntityCreeper; +import net.minecraft.world.World; + +public class EntityCreeperVolatile extends EntityCreeper { + + public EntityCreeperVolatile(World world) { + super(world); + } + + @Override + public void func_146077_cc() { + + if(!this.worldObj.isRemote) { + this.setDead(); + + ExplosionVNT vnt = new ExplosionVNT(worldObj, posX, posY, posZ, 7); + vnt.setBlockAllocator(new BlockAllocatorBulkie(60)); + vnt.setBlockProcessor(new BlockProcessorStandard().withBlockEffect(new BlockMutatorBulkie(ModBlocks.block_slag, 1))); + vnt.setEntityProcessor(new EntityProcessorStandard().withRangeMod(0.5F)); + vnt.setPlayerProcessor(new PlayerProcessorStandard()); + vnt.setSFX(new ExplosionEffectStandard()); + vnt.explode(); + } + } + + @Override + public boolean getCanSpawnHere() { + return super.getCanSpawnHere() && this.posY <= 40; + } +} diff --git a/src/main/java/com/hbm/explosion/vanillant/ExplosionVNT.java b/src/main/java/com/hbm/explosion/vanillant/ExplosionVNT.java index 891c10213..e1c217617 100644 --- a/src/main/java/com/hbm/explosion/vanillant/ExplosionVNT.java +++ b/src/main/java/com/hbm/explosion/vanillant/ExplosionVNT.java @@ -39,10 +39,10 @@ public class ExplosionVNT { //since we want to reduce each effect to the bare minimum (sound, particles, etc. being separate) we definitely need multiple most of the time private IExplosionSFX[] sfx; - protected World world; - protected double posX; - protected double posY; - protected double posZ; + public World world; + public double posX; + public double posY; + public double posZ; public float size; public Entity exploder; diff --git a/src/main/java/com/hbm/explosion/vanillant/interfaces/IBlockMutator.java b/src/main/java/com/hbm/explosion/vanillant/interfaces/IBlockMutator.java index d1e29ecbc..904f01c69 100644 --- a/src/main/java/com/hbm/explosion/vanillant/interfaces/IBlockMutator.java +++ b/src/main/java/com/hbm/explosion/vanillant/interfaces/IBlockMutator.java @@ -2,7 +2,10 @@ package com.hbm.explosion.vanillant.interfaces; import com.hbm.explosion.vanillant.ExplosionVNT; +import net.minecraft.block.Block; + public interface IBlockMutator { - public int mutateAtPosition(ExplosionVNT explosion, int x, int y, int z); + public void mutatePre(ExplosionVNT explosion, Block block, int meta, int x, int y, int z); + public void mutatePost(ExplosionVNT explosion, int x, int y, int z); } diff --git a/src/main/java/com/hbm/explosion/vanillant/standard/BlockAllocatorBulkie.java b/src/main/java/com/hbm/explosion/vanillant/standard/BlockAllocatorBulkie.java new file mode 100644 index 000000000..863916f19 --- /dev/null +++ b/src/main/java/com/hbm/explosion/vanillant/standard/BlockAllocatorBulkie.java @@ -0,0 +1,89 @@ +package com.hbm.explosion.vanillant.standard; + +import java.util.HashSet; + +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.explosion.vanillant.interfaces.IBlockAllocator; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.util.MathHelper; +import net.minecraft.world.ChunkPosition; +import net.minecraft.world.World; + +public class BlockAllocatorBulkie implements IBlockAllocator { + + protected double maximum; + protected int resolution; + + public BlockAllocatorBulkie(double maximum) { + this(maximum, 16); + } + + public BlockAllocatorBulkie(double maximum, int resolution) { + this.resolution = resolution; + this.maximum = maximum; + } + + @Override + public HashSet allocate(ExplosionVNT explosion, World world, double x, double y, double z, float size) { + + HashSet affectedBlocks = new HashSet(); + + for(int i = 0; i < this.resolution; ++i) { + for(int j = 0; j < this.resolution; ++j) { + for(int k = 0; k < this.resolution; ++k) { + + if(i == 0 || i == this.resolution - 1 || j == 0 || j == this.resolution - 1 || k == 0 || k == this.resolution - 1) { + + double d0 = (double) ((float) i / ((float) this.resolution - 1.0F) * 2.0F - 1.0F); + double d1 = (double) ((float) j / ((float) this.resolution - 1.0F) * 2.0F - 1.0F); + double d2 = (double) ((float) k / ((float) this.resolution - 1.0F) * 2.0F - 1.0F); + double d3 = Math.sqrt(d0 * d0 + d1 * d1 + d2 * d2); + + d0 /= d3; + d1 /= d3; + d2 /= d3; + + double currentX = x; + double currentY = y; + double currentZ = z; + + double dist = 0; + + for(float stepSize = 0.3F; dist <= explosion.size;) { + + double deltaX = currentX - x; + double deltaY = currentY - y; + double deltaZ = currentZ - z; + dist = Math.sqrt(deltaX * deltaX + deltaY * deltaY + deltaZ * deltaZ); + + int blockX = MathHelper.floor_double(currentX); + int blockY = MathHelper.floor_double(currentY); + int blockZ = MathHelper.floor_double(currentZ); + + Block block = world.getBlock(blockX, blockY, blockZ); + + if(block.getMaterial() != Material.air) { + float blockResistance = explosion.exploder != null ? explosion.exploder.func_145772_a(explosion.compat, world, blockX, blockY, blockZ, block) : block.getExplosionResistance(explosion.exploder, world, blockX, blockY, blockZ, x, y, z); + if(this.maximum < blockResistance) { + break; + } + } + + if(explosion.exploder == null || explosion.exploder.func_145774_a(explosion.compat, world, blockX, blockY, blockZ, block, explosion.size)) { + affectedBlocks.add(new ChunkPosition(blockX, blockY, blockZ)); + } + + currentX += d0 * (double) stepSize; + currentY += d1 * (double) stepSize; + currentZ += d2 * (double) stepSize; + } + } + } + } + } + + return affectedBlocks; + } +} diff --git a/src/main/java/com/hbm/explosion/vanillant/standard/BlockMutatorBulkie.java b/src/main/java/com/hbm/explosion/vanillant/standard/BlockMutatorBulkie.java new file mode 100644 index 000000000..5b89ee88e --- /dev/null +++ b/src/main/java/com/hbm/explosion/vanillant/standard/BlockMutatorBulkie.java @@ -0,0 +1,32 @@ +package com.hbm.explosion.vanillant.standard; + +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.explosion.vanillant.interfaces.IBlockMutator; +import com.hbm.inventory.RecipesCommon.MetaBlock; + +import net.minecraft.block.Block; +import net.minecraft.util.Vec3; + +public class BlockMutatorBulkie implements IBlockMutator { + + protected MetaBlock metaBlock; + + public BlockMutatorBulkie(Block block) { + this(block, 0); + } + + public BlockMutatorBulkie(Block block, int meta) { + this.metaBlock = new MetaBlock(block, meta); + } + + @Override + public void mutatePre(ExplosionVNT explosion, Block block, int meta, int x, int y, int z) { + if(!block.isBlockNormalCube()) return; + Vec3 vec = Vec3.createVectorHelper(x + 0.5 - explosion.posX, y + 0.5 - explosion.posY, z + 0.5 - explosion.posZ); + if(vec.lengthVector() >= explosion.size - 0.5) { + explosion.world.setBlock(x, y, z, metaBlock.block, metaBlock.meta, 3); + } + } + + @Override public void mutatePost(ExplosionVNT explosion, int x, int y, int z) { } +} diff --git a/src/main/java/com/hbm/explosion/vanillant/standard/BlockProcessorStandard.java b/src/main/java/com/hbm/explosion/vanillant/standard/BlockProcessorStandard.java index ac1fcd7be..a6da1e153 100644 --- a/src/main/java/com/hbm/explosion/vanillant/standard/BlockProcessorStandard.java +++ b/src/main/java/com/hbm/explosion/vanillant/standard/BlockProcessorStandard.java @@ -63,6 +63,7 @@ public class BlockProcessorStandard implements IBlockProcessor { } block.onBlockExploded(world, blockX, blockY, blockZ, explosion.compat); + if(this.convert != null) this.convert.mutatePre(explosion, block, world.getBlockMetadata(blockX, blockY, blockZ), blockX, blockY, blockZ); } } @@ -78,7 +79,7 @@ public class BlockProcessorStandard implements IBlockProcessor { Block block = world.getBlock(blockX, blockY, blockZ); if(block.getMaterial() == Material.air) { - this.convert.mutateAtPosition(explosion, blockX, blockY, blockZ); + this.convert.mutatePost(explosion, blockX, blockY, blockZ); } } } diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index 2d22a2182..7ea8ad8b7 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -2,8 +2,16 @@ package com.hbm.items.tool; import java.util.List; +import com.hbm.blocks.ModBlocks; import com.hbm.blocks.rail.IRailNTM; import com.hbm.blocks.rail.IRailNTM.RailContext; +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.explosion.vanillant.standard.BlockAllocatorBulkie; +import com.hbm.explosion.vanillant.standard.BlockMutatorBulkie; +import com.hbm.explosion.vanillant.standard.BlockProcessorStandard; +import com.hbm.explosion.vanillant.standard.EntityProcessorStandard; +import com.hbm.explosion.vanillant.standard.ExplosionEffectStandard; +import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; import com.hbm.lib.Library; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.PlayerInformPacket; @@ -14,6 +22,7 @@ import com.hbm.world.feature.OilSpot; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.init.Blocks; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.ChatComponentText; @@ -34,6 +43,14 @@ public class ItemWandD extends Item { if(pos != null) { + ExplosionVNT vnt = new ExplosionVNT(world, pos.hitVec.xCoord, pos.hitVec.yCoord, pos.hitVec.zCoord, 7); + vnt.setBlockAllocator(new BlockAllocatorBulkie(60)); + vnt.setBlockProcessor(new BlockProcessorStandard().withBlockEffect(new BlockMutatorBulkie(ModBlocks.block_slag)).setNoDrop()); + vnt.setEntityProcessor(new EntityProcessorStandard()); + vnt.setPlayerProcessor(new PlayerProcessorStandard()); + vnt.setSFX(new ExplosionEffectStandard()); + vnt.explode(); + /*TimeAnalyzer.startCount("setBlock"); world.setBlock(pos.blockX, pos.blockY, pos.blockZ, Blocks.dirt); TimeAnalyzer.startEndCount("getBlock"); diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 04a912a51..e69446d89 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -691,6 +691,8 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityCreeperNuclear.class, new RenderCreeperUniversal(RefStrings.MODID + ":" + "textures/entity/creeper.png", RefStrings.MODID + ":" + "textures/entity/creeper_armor.png").setSwellMod(5F)); RenderingRegistry.registerEntityRenderingHandler(EntityCreeperTainted.class, new RenderCreeperUniversal(RefStrings.MODID + ":" + "textures/entity/creeper_tainted.png", RefStrings.MODID + ":" + "textures/entity/creeper_armor_taint.png")); RenderingRegistry.registerEntityRenderingHandler(EntityCreeperPhosgene.class, new RenderCreeperUniversal(RefStrings.MODID + ":" + "textures/entity/creeper_phosgene.png", "textures/entity/creeper/creeper_armor.png")); + RenderingRegistry.registerEntityRenderingHandler(EntityCreeperVolatile.class, new RenderCreeperUniversal(RefStrings.MODID + ":" + "textures/entity/creeper_volatile.png", "textures/entity/creeper/creeper_armor.png")); + RenderingRegistry.registerEntityRenderingHandler(EntityCreeperGold.class, new RenderCreeperUniversal(RefStrings.MODID + ":" + "textures/entity/creeper_gold.png", "textures/entity/creeper/creeper_armor.png")); RenderingRegistry.registerEntityRenderingHandler(EntityHunterChopper.class, new RenderHunterChopper()); RenderingRegistry.registerEntityRenderingHandler(EntityCyberCrab.class, new RenderCyberCrab()); RenderingRegistry.registerEntityRenderingHandler(EntityTeslaCrab.class, new RenderTeslaCrab()); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 6e1e381e5..da251825c 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -848,6 +848,7 @@ public class MainRegistry { new OreCave(ModBlocks.stone_resource, 0).setThreshold(1.5D).setRangeMult(20).setYLevel(30).setMaxRange(20).withFluid(ModBlocks.sulfuric_acid_block); //sulfur new OreCave(ModBlocks.stone_resource, 1).setThreshold(1.75D).setRangeMult(20).setYLevel(25).setMaxRange(20); //asbestos new OreLayer3D(ModBlocks.stone_resource, EnumStoneType.HEMATITE.ordinal()); + new BiomeCave().setThreshold(1.5D).setRangeMult(20).setYLevel(40).setMaxRange(20); //new OreLayer(Blocks.coal_ore, 0.2F).setThreshold(4).setRangeMult(3).setYLevel(70); Compat.handleRailcraftNonsense(); diff --git a/src/main/java/com/hbm/world/feature/BiomeCave.java b/src/main/java/com/hbm/world/feature/BiomeCave.java new file mode 100644 index 000000000..9d297778e --- /dev/null +++ b/src/main/java/com/hbm/world/feature/BiomeCave.java @@ -0,0 +1,126 @@ +package com.hbm.world.feature; + +import java.util.Random; + +import com.hbm.blocks.BlockEnums.EnumBiomeType; +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.generic.BlockStalagmite; + +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.biome.BiomeGenBase.TempCategory; +import net.minecraft.world.gen.NoiseGeneratorPerlin; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.event.terraingen.DecorateBiomeEvent; + +public class BiomeCave { + + private NoiseGeneratorPerlin noise; + /** The number that is being deducted flat from the result of the perlin noise before all other processing. Increase this to make strata rarer. */ + private double threshold = 2D; + /** The mulitplier for the remaining bit after the threshold has been deducted. Increase to make strata wavier. */ + private int rangeMult = 3; + /** The maximum range after multiplying - anything above this will be subtracted from (maxRange * 2) to yield the proper range. Increase this to make strata thicker. */ + private int maxRange = 4; + /** The y-level around which the stratum is centered. */ + private int yLevel = 30; + + public BiomeCave() { + MinecraftForge.EVENT_BUS.register(this); + } + + public BiomeCave setThreshold(double threshold) { + this.threshold = threshold; + return this; + } + + public BiomeCave setRangeMult(int rangeMult) { + this.rangeMult = rangeMult; + return this; + } + + public BiomeCave setMaxRange(int maxRange) { + this.maxRange = maxRange; + return this; + } + + public BiomeCave setYLevel(int yLevel) { + this.yLevel = yLevel; + return this; + } + + @SubscribeEvent + public void onDecorate(DecorateBiomeEvent.Pre event) { + + World world = event.world; + + if(world.provider == null || world.provider.dimensionId != 0) return; + + if(this.noise == null) { + this.noise = new NoiseGeneratorPerlin(new Random(event.world.getSeed() - 1916169 + yLevel), 2); + } + + int cX = event.chunkX; + int cZ = event.chunkZ; + + double scale = 0.01D; + + for(int x = cX + 8; x < cX + 24; x++) { + for(int z = cZ + 8; z < cZ + 24; z++) { + + BiomeGenBase biome = world.getBiomeGenForCoords(x, z); + EnumBiomeType type = getTypeFromBiome(biome); + + double n = noise.func_151601_a(x * scale, z * scale); + + if(type != null && n > threshold) { + int range = (int)((n - threshold) * rangeMult); + + if(range > maxRange) + range = (maxRange * 2) - range; + + if(range < 0) + continue; + + for(int y = yLevel - range; y <= yLevel + range; y++) { + handleBiome(world, x, y, z, type); + } + } + } + } + } + + private static void handleBiome(World world, int x, int y, int z, EnumBiomeType type) { + Block target = world.getBlock(x, y, z); + + if(target.isNormalCube()) { + + boolean shouldGen = false; + + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { + if(world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ).isAir(world, x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ)) { + shouldGen = true; break; + } + if(world.getBlock(x + dir.offsetX * 2, y + dir.offsetY * 2, z + dir.offsetZ * 2).isAir(world, x + dir.offsetX * 2, y + dir.offsetY * 2, z + dir.offsetZ * 2)) { + shouldGen = true; break; + } + } + + if(shouldGen) { + world.setBlock(x, y, z, ModBlocks.stone_biome, type.ordinal(), 2); + } + } + } + + private static EnumBiomeType getTypeFromBiome(BiomeGenBase biome) { + + if(biome.temperature >= 1 && biome.rainfall < 0.25) return EnumBiomeType.DESERT; + if(biome.temperature >= 0.5 && biome.rainfall > 0.25 && biome.getTempCategory() != TempCategory.OCEAN) return EnumBiomeType.WOODLAND; + + return null; + } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/block_slag_broken.png b/src/main/resources/assets/hbm/textures/blocks/block_slag_broken.png new file mode 100644 index 0000000000000000000000000000000000000000..97f12ce5d660cd318211a09cec315dc28b516882 GIT binary patch literal 792 zcmV+z1LypSP)HFCasS z@B4hR{29S{fKnl$4ADECHviz!0-@~>n05X{jqxL8wArJ{c9K}rL zviR*bzdU@1s8p-ic6zAlc^=(v7l04u7x{2uiTY_B(=c$xGi04h0MzO=ri;_)j^i>n zcZ==qEp~q2q;d9w3D-e}k_SJnP&=s+$_v_UmrCV`pwoG!BkkL-zl?jK#5?fF=L+*81 z2l#aP3!*6E$CV#gU;CBjiw2XEQvj5AcZas+#bCLw6kFv#X*ACeeyfFl-s1lK?*|q~ zM#$&hWPV|hm>7FB&E?lGF+Mg2g;dg{TrRV*zB+WF#Tr)%SFkJ_%d*k+1Y_yZLHoTPreX5;NtKrd W^E)@0cQ{Z00000rET)H5iUZ7Gmo8fmbr&1wGKZP(eZTL0zMe{@(yrBN zD5d!K7-InNeIJ0}_$_;l8h-X3#uyyO0YFr%Rg5uctpSiyb_pq^a9x+alM;TmlnN&% z!gXE3%qOC_2Eeun0VsRR1VMn-nji?e#1k_BQLoo=oD$O)Z=sYz7AlC{B@V(ZqJb@B z;RO9HgFP5C?%!pz{sJMP2{`Q;EUh)hm^1^iyVSWOA3uAK@zaOw{SGPSR`7@B80o)B z^Uz|beV>N!QPHIHbW`Zi8&!-~)E|}O|q8>lTweECd zY|1s7hZb_`glJ!2^g`NRy8 z8LyaIp|?~jJ#DpG^qzVoOQp5Owr#xJ48OuEZ8M72noK5>{t3g7qobov2FbCeTgG)=Xu}_O=0>)SB2FU!0000^B1Or-YY$>q;(QdbK-3FKEZlaVz)}JC;>-6GJB&R+h>&NKNMVzUW zh2S@~+s_daBEZd-v9#70V^B(+cv>HwNkB09I}5|R>>kA|RyGNyuTm}lOmtu|o!w?= zs))60<`O_KSSsPqla(pze^8ltt%&{T1#b8Gn?$)3Q<{hliOh$JBNH%4sP z%6Ne)-8NxMFt=b=#J v;km9$Fded2>++@Zj@_dHp}&FWd62<3E)G!O^&$-#00000NkvXXu0mjfhCN^% literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/stone_biome_top.woodland.png b/src/main/resources/assets/hbm/textures/blocks/stone_biome_top.woodland.png new file mode 100644 index 0000000000000000000000000000000000000000..e758050f49ccbac64d8fe90f3763441591f27c60 GIT binary patch literal 790 zcmV+x1L^#UP)<@U4fE_YAUjff^fAc2rT;!pSjwum2K%jac9 z5-~FoNC}BDnMY4gzg&KlA7vJ^fxA4rt8=gO+wZ@QVp3s@K_4KCLxcy33h1?qOa^-G zvN~71dG!vN4CrkK(nBeQ05~2`=xs+F3VLg(b&K9Ntj-mq5v$@-2>U*w_`kMWIPb&%>-}2YhTh{9}c{)XUi6sgIfpno)sOL~s6}<-E_b~>t z*hPv7mC4HNfw73%bH#uKtipdHHIMd zxV|rtXU|f;oqq|y!_AJn-3`7M;`o+cgNRbpBp{G3%XN;JjJ$ktg;I**SRqcEhKHLS z0Q1EhfHcYJYM-Vbux<0CD;d}o4|G}}6H7g4(q({5mjR1;j%^*T?>{`*=t_(+1k&YL z)?{(WY13d#%dNb_cS0WT4Sg(-qY>PF*t0rUG^Y-55WZ!7wqUu=dHu&Fy%nTMj!Z0} z`#D4B@YUB(b;NdapcMr#UtCcZhH#n^MG>wyA|@jMW~@2s9Z?ifRu#!ivANx0TLt*#vxu@VNZ~WhBEt9! z(qvCEQ~dMsf{E`FBr!>TiLpg6W84>V$fb!b(gv z(*NZwAxlW%B3%l*LLyTjTM5joqWHag-@ErF#+b3|I)-6jTHbpA(lm|#LXYh5@D2YKEX(M+jzd{eR~6oS5@XD`D+=nW zqCTDC@W+17YPCWs^{W;DN~s4xK%L$m?tR{DDz*@UMX>OwHJ|4*-g~5!q-jc)WwV>Z zX48}Z=luQteu$PN0Nidjmdhn?VYOhH5F(;a19sFp zYUG^5IrqrHvsFi}BY?H`#rHrEz>=nEMu0Mewv~3H(rD>vt;f&B@t;JePGQv33V9Ms4LrTeZyN!ZQ!*(@>MacK1 nX=2(!1y@3ax4Nnx-(ANKBRv|-mOaA+00000NkvXXu0mjfuY%@u literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/entity/creeper_gold.png b/src/main/resources/assets/hbm/textures/entity/creeper_gold.png new file mode 100644 index 0000000000000000000000000000000000000000..8f20dd3f4c31202389b239c55d630cb7f11bda5d GIT binary patch literal 3063 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 FV1kr@l literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/entity/creeper_volatile.png b/src/main/resources/assets/hbm/textures/entity/creeper_volatile.png new file mode 100644 index 0000000000000000000000000000000000000000..b2640153995539e417a041436366671f0295c429 GIT binary patch literal 3107 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 Date: Sun, 7 May 2023 20:30:54 +0200 Subject: [PATCH 019/432] tram passenger seats --- gradle.properties | 2 +- .../java/com/hbm/entity/EntityMappings.java | 4 +- .../com/hbm/entity/mob/EntityCreeperGold.java | 15 ++- .../hbm/entity/mob/EntityCreeperVolatile.java | 12 +- .../hbm/entity/train/EntityRailCarBase.java | 11 -- .../entity/train/EntityRailCarRidable.java | 106 +++++++++++++++++- .../com/hbm/entity/train/TrainCargoTram.java | 15 ++- src/main/java/com/hbm/lib/RefStrings.java | 2 +- src/main/java/com/hbm/main/MainRegistry.java | 2 +- .../com/hbm/main/ModEventHandlerClient.java | 4 +- .../machine/TileEntityMachinePress.java | 7 +- .../tileentity/machine/TileEntityTesla.java | 10 +- src/main/resources/assets/hbm/lang/de_DE.lang | 2 + src/main/resources/assets/hbm/lang/en_US.lang | 2 + ..._CHOLERSTEROL.png => tank_CHOLESTEROL.png} | Bin 15 files changed, 161 insertions(+), 33 deletions(-) rename src/main/resources/assets/hbm/textures/models/tank/{tank_CHOLERSTEROL.png => tank_CHOLESTEROL.png} (100%) diff --git a/gradle.properties b/gradle.properties index 311c2314b..697f43ef4 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4585 +mod_build_number=4592 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models, porting),\ diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index 23a8e70fd..d5354b59a 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -14,6 +14,7 @@ import com.hbm.entity.mob.botprime.*; import com.hbm.entity.mob.siege.*; import com.hbm.entity.particle.*; import com.hbm.entity.projectile.*; +import com.hbm.entity.train.EntityRailCarRidable.SeatDummyEntity; import com.hbm.entity.train.TrainCargoTram; import com.hbm.main.MainRegistry; import com.hbm.util.Tuple.Quartet; @@ -209,7 +210,8 @@ public class EntityMappings { addEntity(EntitySawblade.class, "entity_stray_saw", 1000); addEntity(EntityChemical.class, "entity_chemthrower_splash", 1000); addEntity(EntityMist.class, "entity_mist", 1000); - + + addEntity(SeatDummyEntity.class, "entity_ntm_seat_dummy", 250, false); addEntity(TrainCargoTram.class, "entity_ntm_cargo_tram", 250, false); addMob(EntityCreeperNuclear.class, "entity_mob_nuclear_creeper", 0x204131, 0x75CE00); diff --git a/src/main/java/com/hbm/entity/mob/EntityCreeperGold.java b/src/main/java/com/hbm/entity/mob/EntityCreeperGold.java index d9ab7d3b6..70ad6fbe9 100644 --- a/src/main/java/com/hbm/entity/mob/EntityCreeperGold.java +++ b/src/main/java/com/hbm/entity/mob/EntityCreeperGold.java @@ -2,9 +2,11 @@ package com.hbm.entity.mob; import com.hbm.explosion.vanillant.ExplosionVNT; import com.hbm.explosion.vanillant.standard.*; +import com.hbm.items.ModItems; import net.minecraft.entity.monster.EntityCreeper; import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; import net.minecraft.world.World; public class EntityCreeperGold extends EntityCreeper { @@ -19,8 +21,8 @@ public class EntityCreeperGold extends EntityCreeper { if(!this.worldObj.isRemote) { this.setDead(); - ExplosionVNT vnt = new ExplosionVNT(worldObj, posX, posY, posZ, 7); - vnt.setBlockAllocator(new BlockAllocatorBulkie(60)); + ExplosionVNT vnt = new ExplosionVNT(worldObj, posX, posY, posZ, this.getPowered() ? 14 : 7, this); + vnt.setBlockAllocator(new BlockAllocatorBulkie(60, this.getPowered() ? 32 : 16)); vnt.setBlockProcessor(new BlockProcessorStandard().withBlockEffect(new BlockMutatorBulkie(Blocks.gold_ore))); vnt.setEntityProcessor(new EntityProcessorStandard().withRangeMod(0.5F)); vnt.setPlayerProcessor(new PlayerProcessorStandard()); @@ -33,4 +35,13 @@ public class EntityCreeperGold extends EntityCreeper { public boolean getCanSpawnHere() { return super.getCanSpawnHere() && this.posY <= 40; } + + @Override + protected void dropFewItems(boolean byPlayer, int looting) { + + int amount = byPlayer ? 5 + rand.nextInt(6 + looting * 2) : 3; + for(int i = 0; i < amount; ++i) { + this.entityDropItem(new ItemStack(ModItems.crystal_gold), 0F); + } + } } diff --git a/src/main/java/com/hbm/entity/mob/EntityCreeperVolatile.java b/src/main/java/com/hbm/entity/mob/EntityCreeperVolatile.java index d957c7aca..17160b15e 100644 --- a/src/main/java/com/hbm/entity/mob/EntityCreeperVolatile.java +++ b/src/main/java/com/hbm/entity/mob/EntityCreeperVolatile.java @@ -3,8 +3,10 @@ package com.hbm.entity.mob; import com.hbm.blocks.ModBlocks; import com.hbm.explosion.vanillant.ExplosionVNT; import com.hbm.explosion.vanillant.standard.*; +import com.hbm.items.ModItems; import net.minecraft.entity.monster.EntityCreeper; +import net.minecraft.item.ItemStack; import net.minecraft.world.World; public class EntityCreeperVolatile extends EntityCreeper { @@ -19,8 +21,8 @@ public class EntityCreeperVolatile extends EntityCreeper { if(!this.worldObj.isRemote) { this.setDead(); - ExplosionVNT vnt = new ExplosionVNT(worldObj, posX, posY, posZ, 7); - vnt.setBlockAllocator(new BlockAllocatorBulkie(60)); + ExplosionVNT vnt = new ExplosionVNT(worldObj, posX, posY, posZ, this.getPowered() ? 14 : 7, this); + vnt.setBlockAllocator(new BlockAllocatorBulkie(60, this.getPowered() ? 32 : 16)); vnt.setBlockProcessor(new BlockProcessorStandard().withBlockEffect(new BlockMutatorBulkie(ModBlocks.block_slag, 1))); vnt.setEntityProcessor(new EntityProcessorStandard().withRangeMod(0.5F)); vnt.setPlayerProcessor(new PlayerProcessorStandard()); @@ -33,4 +35,10 @@ public class EntityCreeperVolatile extends EntityCreeper { public boolean getCanSpawnHere() { return super.getCanSpawnHere() && this.posY <= 40; } + + @Override + protected void dropFewItems(boolean byPlayer, int looting) { + this.entityDropItem(new ItemStack(ModItems.sulfur, 2 + rand.nextInt(3)), 0F); + this.entityDropItem(new ItemStack(ModItems.stick_tnt, 1 + rand.nextInt(2)), 0F); + } } diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java index 750dc5765..39a31c625 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java @@ -3,21 +3,13 @@ package com.hbm.entity.train; import com.hbm.blocks.rail.IRailNTM; import com.hbm.blocks.rail.IRailNTM.RailContext; import com.hbm.blocks.rail.IRailNTM.TrackGauge; -import com.hbm.main.MainRegistry; -import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.PlayerInformPacket; -import com.hbm.util.ChatBuilder; -import com.hbm.util.ParticleUtil; import com.hbm.util.fauxpointtwelve.BlockPos; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.World; @@ -96,9 +88,6 @@ public abstract class EntityRailCarBase extends Entity { this.velocityChanged = true; } } - - PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(new ChatComponentText("Yaw: " + this.rotationYaw), 664, 3000), (EntityPlayerMP) worldObj.playerEntities.get(0)); - PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(new ChatComponentText("MYaw: " + this.movementYaw), 665, 3000), (EntityPlayerMP) worldObj.playerEntities.get(0)); } } diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java b/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java index 95dd63367..4fdb73ec4 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java @@ -1,30 +1,107 @@ package com.hbm.entity.train; +import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.Vec3; import net.minecraft.world.World; public abstract class EntityRailCarRidable extends EntityRailCarBase { + public SeatDummyEntity[] passengerSeats; + public EntityRailCarRidable(World world) { super(world); + this.passengerSeats = new SeatDummyEntity[this.getPassengerSeats().length]; } @Override public boolean interactFirst(EntityPlayer player) { - if(this.riddenByEntity != null && this.riddenByEntity instanceof EntityPlayer && this.riddenByEntity != player) { - return true; - } else { - if(!this.worldObj.isRemote) { - player.mountEntity(this); + + if(worldObj.isRemote) return true; + + double nearestDist = Double.POSITIVE_INFINITY; + int nearestSeat = -1; + + Vec3[] seats = getPassengerSeats(); + for(int i = 0; i < seats.length; i++) { + + Vec3 seat = seats[i]; + if(seat == null) continue; + if(passengerSeats[i] != null) continue; + + seat.rotateAroundY((float) (-this.rotationYaw * Math.PI / 180)); + double x = posX + seat.xCoord; + double y = posY + seat.yCoord; + double z = posZ + seat.zCoord; + double dist = Vec3.createVectorHelper(player.posX - x, player.posY - y, player.posZ - z).lengthVector(); + + if(dist < nearestDist) { + nearestDist = dist; + nearestSeat = i; } - return true; } + + if(this.riddenByEntity == null) { + Vec3 seat = getRiderSeatPosition(); + seat.rotateAroundY((float) (-this.rotationYaw * Math.PI / 180)); + double x = posX + seat.xCoord; + double y = posY + seat.yCoord; + double z = posZ + seat.zCoord; + double dist = Vec3.createVectorHelper(player.posX - x, player.posY - y, player.posZ - z).lengthVector(); + + if(dist < nearestDist) { + nearestDist = dist; + nearestSeat = -1; + } + } + + if(nearestDist > 20) return true; + + if(nearestSeat == -1) { + player.mountEntity(this); + } else { + SeatDummyEntity dummySeat = new SeatDummyEntity(worldObj); + Vec3 passengerSeat = this.getPassengerSeats()[nearestSeat]; + passengerSeat.rotateAroundY((float) (-this.rotationYaw * Math.PI / 180)); + double x = posX + passengerSeat.xCoord; + double y = posY + passengerSeat.yCoord; + double z = posZ + passengerSeat.zCoord; + dummySeat.setPosition(x, y - 1, z); + passengerSeats[nearestSeat] = dummySeat; + worldObj.spawnEntityInWorld(dummySeat); + player.mountEntity(dummySeat); + } + + return true; } @Override public void onUpdate() { super.onUpdate(); + + if(!worldObj.isRemote) { + + Vec3[] seats = this.getPassengerSeats(); + for(int i = 0; i < passengerSeats.length; i++) { + SeatDummyEntity seat = passengerSeats[i]; + + if(seat != null) { + if(seat.riddenByEntity == null) { + passengerSeats[i] = null; + seat.setDead(); + } else { + Vec3 rot = seats[i]; + rot.rotateAroundY((float) (-this.rotationYaw * Math.PI / 180)); + double x = posX + rot.xCoord; + double y = posY + rot.yCoord; + double z = posZ + rot.zCoord; + seat.setPosition(x, y - 1, z); + seat.updateRiderPosition(); + } + } + } + } } @Override @@ -40,4 +117,21 @@ public abstract class EntityRailCarRidable extends EntityRailCarBase { /** Returns a Vec3 showing the relative position from the driver to the core */ public abstract Vec3 getRiderSeatPosition(); + + public abstract Vec3[] getPassengerSeats(); + + public static class SeatDummyEntity extends Entity { + public SeatDummyEntity(World world) { super(world); this.setSize(0.5F, 0.1F);} + @Override protected void entityInit() { } + @Override protected void writeEntityToNBT(NBTTagCompound nbt) { } + @Override public boolean writeToNBTOptional(NBTTagCompound nbt) { return false; } + @Override public void readEntityFromNBT(NBTTagCompound nbt) { this.setDead(); } + + @Override + public void updateRiderPosition() { + if(this.riddenByEntity != null) { + this.riddenByEntity.setPosition(this.posX, this.posY + 1, this.posZ); + } + } + } } diff --git a/src/main/java/com/hbm/entity/train/TrainCargoTram.java b/src/main/java/com/hbm/entity/train/TrainCargoTram.java index 5f76989a4..c18e6ab23 100644 --- a/src/main/java/com/hbm/entity/train/TrainCargoTram.java +++ b/src/main/java/com/hbm/entity/train/TrainCargoTram.java @@ -31,7 +31,7 @@ public class TrainCargoTram extends EntityRailCarRidable { public double speed = 0; public static final double maxSpeed = 0.5; public static final double acceleration = 0.01; - public static final double deceleration = 0.75; + public static final double deceleration = 0.95; @Override public double getCurrentSpeed() { // in its current form, only call once per tick @@ -80,4 +80,17 @@ public class TrainCargoTram extends EntityRailCarRidable { return true; } + + @Override + public boolean shouldRiderSit() { + return true; + } + + @Override + public Vec3[] getPassengerSeats() { + return new Vec3[] { + Vec3.createVectorHelper(0.5, 1.75, -1.5), + Vec3.createVectorHelper(-0.5, 1.75, -1.5) + }; + } } diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index dcc814ea7..79c7e3689 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4585)"; + public static final String VERSION = "1.0.27 BETA (4592)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index da251825c..b90f1903d 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -848,7 +848,7 @@ public class MainRegistry { new OreCave(ModBlocks.stone_resource, 0).setThreshold(1.5D).setRangeMult(20).setYLevel(30).setMaxRange(20).withFluid(ModBlocks.sulfuric_acid_block); //sulfur new OreCave(ModBlocks.stone_resource, 1).setThreshold(1.75D).setRangeMult(20).setYLevel(25).setMaxRange(20); //asbestos new OreLayer3D(ModBlocks.stone_resource, EnumStoneType.HEMATITE.ordinal()); - new BiomeCave().setThreshold(1.5D).setRangeMult(20).setYLevel(40).setMaxRange(20); + //new BiomeCave().setThreshold(1.5D).setRangeMult(20).setYLevel(40).setMaxRange(20); //new OreLayer(Blocks.coal_ore, 0.2F).setThreshold(4).setRangeMult(3).setYLevel(70); Compat.handleRailcraftNonsense(); diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 9393a59c8..c3efd654e 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -210,7 +210,7 @@ public class ModEventHandlerClient { Minecraft.getMinecraft().renderEngine.bindTexture(Gui.icons); }*/ - List text = new ArrayList(); + /*List text = new ArrayList(); MovingObjectPosition pos = Library.rayTrace(player, 500, 1, false, true, false); for(int i = 0; i < 2; i++) if(pos != null && pos.typeOfHit == pos.typeOfHit.BLOCK) { @@ -273,7 +273,7 @@ public class ModEventHandlerClient { } while(distanceToCover != 0); ILookOverlay.printGeneric(event, "DEBUG", 0xffff00, 0x4040000, text); - } + }*/ } /// HANLDE ANIMATION BUSES /// diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePress.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePress.java index 354fef320..599287701 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePress.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePress.java @@ -124,7 +124,12 @@ public class TileEntityMachinePress extends TileEntityMachineBase implements IGU if(slots[0] != null && burnTime < 200 && TileEntityFurnace.getItemBurnTime(slots[0]) > 0) { // less than one operation stored? burn more fuel! burnTime += TileEntityFurnace.getItemBurnTime(slots[0]); - this.decrStackSize(0, 1); + + if(slots[0].stackSize == 1 && slots[0].getItem().hasContainerItem(slots[0])) { + slots[0] = slots[0].getItem().getContainerItem(slots[0]).copy(); + } else { + this.decrStackSize(0, 1); + } this.markChanged(); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityTesla.java b/src/main/java/com/hbm/tileentity/machine/TileEntityTesla.java index fcab378f7..f3c930d3e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityTesla.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityTesla.java @@ -125,14 +125,16 @@ public class TileEntityTesla extends TileEntityMachineBase implements IEnergyUse continue; } + if(e instanceof EntityCreeper) { + ((EntityCreeper)e).getDataWatcher().updateObject(17, Byte.valueOf((byte)1)); + ret.add(new double[] {e.posX, e.posY + e.height / 2, e.posZ}); + continue; + } + if(!(e instanceof EntityPlayer && ArmorUtil.checkForFaraday((EntityPlayer)e))) if(e.attackEntityFrom(ModDamageSource.electricity, MathHelper.clamp_float(e.getMaxHealth() * 0.5F, 3, 20) / (float)targets.size())) worldObj.playSoundAtEntity(e, "hbm:weapon.tesla", 1.0F, 1.0F); - if(e instanceof EntityCreeper) { - ((EntityCreeper)e).getDataWatcher().updateObject(17, Byte.valueOf((byte)1)); - } - double offset = 0; if(source != null && e instanceof EntityPlayer && worldObj.isRemote) diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 5e7a1b6f3..ad9fb7d74 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -504,9 +504,11 @@ entity.entity_ntm_radiation_blaze.name=Kernschmelze-Elementar entity.hbm.entity_ntm_ufo.name=Marsianisches Invasionsschiff entity.entity_mob_hunter_chopper.name=Jagdschrauber entity.entity_mob_mask_man.name=Maskenmann +entity.entity_mob_gold_creeper.name=Goldener Creeper entity.entity_mob_nuclear_creeper.name=Nuklearer Creeper entity.entity_mob_phosgene_creeper.name=Phosgen-Creeper entity.entity_mob_tainted_creeper.name=Verseuchter Creeper +entity.entity_mob_volatile_creeper.name=Instabiler Creeper entity.entity_taint_crab.name=Verseuchte Krabbe entity.entity_tesla_crab.name=Tesla-Krabbe entity.hbm.entity_balls_o_tron.name=Balls-O-Tron Prime diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index c35075e33..e2b518d48 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -950,9 +950,11 @@ entity.entity_ntm_radiation_blaze.name=Meltdown Elemental entity.hbm.entity_ntm_ufo.name=Martian Invasion Ship entity.entity_mob_hunter_chopper.name=Hunter Chopper entity.entity_mob_mask_man.name=Mask Man +entity.entity_mob_gold_creeper.name=Golden Creeper entity.entity_mob_nuclear_creeper.name=Nuclear Creeper entity.entity_mob_phosgene_creeper.name=Phosgene Creeper entity.entity_mob_tainted_creeper.name=Tainted Creeper +entity.entity_mob_volatile_creeper.name=Volatile Creeper entity.entity_taint_crab.name=Taint Crab entity.entity_tesla_crab.name=Tesla Crab entity.hbm.entity_balls_o_tron.name=Balls-O-Tron Prime diff --git a/src/main/resources/assets/hbm/textures/models/tank/tank_CHOLERSTEROL.png b/src/main/resources/assets/hbm/textures/models/tank/tank_CHOLESTEROL.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/tank/tank_CHOLERSTEROL.png rename to src/main/resources/assets/hbm/textures/models/tank/tank_CHOLESTEROL.png From 015ee2245aed052d3e723725adb9e0aa5b33e38a Mon Sep 17 00:00:00 2001 From: Boblet Date: Mon, 8 May 2023 16:16:59 +0200 Subject: [PATCH 020/432] inventories for trains --- .../hbm/blocks/rail/RailStandardCurve.java | 9 -- .../hbm/entity/train/EntityRailCarCargo.java | 141 ++++++++++++++++++ .../entity/train/EntityRailCarRidable.java | 2 +- .../com/hbm/entity/train/TrainCargoTram.java | 32 +++- 4 files changed, 173 insertions(+), 11 deletions(-) create mode 100644 src/main/java/com/hbm/entity/train/EntityRailCarCargo.java diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java b/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java index 35a6a9b4a..46bc0bf4d 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java @@ -1,21 +1,12 @@ package com.hbm.blocks.rail; -import java.util.ArrayList; -import java.util.List; - import com.hbm.blocks.BlockDummyable; import com.hbm.lib.Library; -import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.PlayerInformPacket; -import com.hbm.util.ParticleUtil; import com.hbm.util.fauxpointtwelve.BlockPos; import net.minecraft.block.material.Material; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.IBlockAccess; diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarCargo.java b/src/main/java/com/hbm/entity/train/EntityRailCarCargo.java new file mode 100644 index 000000000..2e41f6d4d --- /dev/null +++ b/src/main/java/com/hbm/entity/train/EntityRailCarCargo.java @@ -0,0 +1,141 @@ +package com.hbm.entity.train; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.world.World; + +public abstract class EntityRailCarCargo extends EntityRailCarBase implements IInventory { + + protected String entityName; + protected ItemStack[] slots = new ItemStack[this.getSizeInventory()]; + + public EntityRailCarCargo(World world) { + super(world); + } + + @Override + public ItemStack getStackInSlot(int slot) { + return slots[slot]; + } + + @Override + public ItemStack decrStackSize(int slot, int amount) { + if(this.slots[slot] != null) { + ItemStack itemstack; + + if(this.slots[slot].stackSize <= amount) { + itemstack = this.slots[slot]; + this.slots[slot] = null; + return itemstack; + } else { + itemstack = this.slots[slot].splitStack(amount); + + if(this.slots[slot].stackSize == 0) { + this.slots[slot] = null; + } + + return itemstack; + } + } else { + return null; + } + } + + @Override + public ItemStack getStackInSlotOnClosing(int slot) { + if(this.slots[slot] != null) { + ItemStack itemstack = this.slots[slot]; + this.slots[slot] = null; + return itemstack; + } else { + return null; + } + } + + @Override + public void setInventorySlotContents(int slot, ItemStack stack) { + this.slots[slot] = stack; + + if(stack != null && stack.stackSize > this.getInventoryStackLimit()) { + stack.stackSize = this.getInventoryStackLimit(); + } + } + + @Override + public int getInventoryStackLimit() { + return 64; + } + + @Override + public void markDirty() { } + + @Override + public boolean isUseableByPlayer(EntityPlayer player) { + return this.isDead ? false : player.getDistanceSqToEntity(this) <= 64.0D; + } + + @Override + public void openInventory() { } + + @Override + public void closeInventory() { } + + @Override + public boolean isItemValidForSlot(int slot, ItemStack stack) { + return true; + } + + @Override + protected void writeEntityToNBT(NBTTagCompound nbt) { + super.writeEntityToNBT(nbt); + NBTTagList nbttaglist = new NBTTagList(); + + for(int i = 0; i < this.slots.length; ++i) { + if(this.slots[i] != null) { + NBTTagCompound nbttagcompound1 = new NBTTagCompound(); + nbttagcompound1.setByte("Slot", (byte) i); + this.slots[i].writeToNBT(nbttagcompound1); + nbttaglist.appendTag(nbttagcompound1); + } + } + + nbt.setTag("Items", nbttaglist); + } + + @Override + protected void readEntityFromNBT(NBTTagCompound nbt) { + super.readEntityFromNBT(nbt); + NBTTagList nbttaglist = nbt.getTagList("Items", 10); + this.slots = new ItemStack[this.getSizeInventory()]; + + for(int i = 0; i < nbttaglist.tagCount(); ++i) { + NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i); + int j = nbttagcompound1.getByte("Slot") & 255; + + if(j >= 0 && j < this.slots.length) { + this.slots[j] = ItemStack.loadItemStackFromNBT(nbttagcompound1); + } + } + } + + @Override + public boolean hasCustomInventoryName() { + return this.entityName != null; + } + + public String getEntityName() { + return this.entityName; + } + + public void setEntityName(String name) { + this.entityName = name; + } + + @Override + public String getCommandSenderName() { + return this.entityName != null ? this.entityName : super.getCommandSenderName(); + } +} diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java b/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java index 4fdb73ec4..3d2f6805b 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java @@ -6,7 +6,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.Vec3; import net.minecraft.world.World; -public abstract class EntityRailCarRidable extends EntityRailCarBase { +public abstract class EntityRailCarRidable extends EntityRailCarCargo { public SeatDummyEntity[] passengerSeats; diff --git a/src/main/java/com/hbm/entity/train/TrainCargoTram.java b/src/main/java/com/hbm/entity/train/TrainCargoTram.java index c18e6ab23..7761a76e0 100644 --- a/src/main/java/com/hbm/entity/train/TrainCargoTram.java +++ b/src/main/java/com/hbm/entity/train/TrainCargoTram.java @@ -1,14 +1,21 @@ package com.hbm.entity.train; import com.hbm.blocks.rail.IRailNTM.TrackGauge; +import com.hbm.inventory.container.ContainerCrateSteel; +import com.hbm.inventory.gui.GUICrateSteel; +import com.hbm.tileentity.IGUIProvider; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; import net.minecraft.util.DamageSource; import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.World; -public class TrainCargoTram extends EntityRailCarRidable { +public class TrainCargoTram extends EntityRailCarRidable implements IGUIProvider { /* * @@ -93,4 +100,27 @@ public class TrainCargoTram extends EntityRailCarRidable { Vec3.createVectorHelper(-0.5, 1.75, -1.5) }; } + + @Override + public int getSizeInventory() { + return 27; + } + + @Override + public String getInventoryName() { + return this.hasCustomInventoryName() ? this.getEntityName() : "container.trainTram"; + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + //return new ContainerTrainCargoTram(player.inventory, (TrainCargoTram)player.worldObj.getEntityByID(x)); + return null; + } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + //return new GUITrainCargoTram(player.inventory, (TrainCargoTram) player.worldObj.getEntityByID(x)); + return null; + } } From 73911abbd6884ea0f813e532dfcfcba50f8db1fe Mon Sep 17 00:00:00 2001 From: Bob Date: Mon, 8 May 2023 23:52:09 +0200 Subject: [PATCH 021/432] biblically accurate tram model --- .../standard/BlockMutatorBulkie.java | 2 +- .../assets/hbm/models/vehicles/tram.obj | 1255 +++++++++++------ .../assets/hbm/textures/models/trains/ow.png | Bin 0 -> 79618 bytes .../hbm/textures/models/trains/tram.png | Bin 0 -> 1148 bytes 4 files changed, 843 insertions(+), 414 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/models/trains/ow.png create mode 100644 src/main/resources/assets/hbm/textures/models/trains/tram.png diff --git a/src/main/java/com/hbm/explosion/vanillant/standard/BlockMutatorBulkie.java b/src/main/java/com/hbm/explosion/vanillant/standard/BlockMutatorBulkie.java index 5b89ee88e..8d7a2d77f 100644 --- a/src/main/java/com/hbm/explosion/vanillant/standard/BlockMutatorBulkie.java +++ b/src/main/java/com/hbm/explosion/vanillant/standard/BlockMutatorBulkie.java @@ -21,7 +21,7 @@ public class BlockMutatorBulkie implements IBlockMutator { @Override public void mutatePre(ExplosionVNT explosion, Block block, int meta, int x, int y, int z) { - if(!block.isBlockNormalCube()) return; + if(!block.isNormalCube()) return; Vec3 vec = Vec3.createVectorHelper(x + 0.5 - explosion.posX, y + 0.5 - explosion.posY, z + 0.5 - explosion.posZ); if(vec.lengthVector() >= explosion.size - 0.5) { explosion.world.setBlock(x, y, z, metaBlock.block, metaBlock.meta, 3); diff --git a/src/main/resources/assets/hbm/models/vehicles/tram.obj b/src/main/resources/assets/hbm/models/vehicles/tram.obj index 38a567ec5..7ec0c8733 100644 --- a/src/main/resources/assets/hbm/models/vehicles/tram.obj +++ b/src/main/resources/assets/hbm/models/vehicles/tram.obj @@ -1,425 +1,854 @@ -# Blender v2.79 (sub 0) OBJ File: 'tram.blend' +# Blender v2.79 (sub 0) OBJ File: 'tram_new.blend' # www.blender.org o Plane -v -1.000000 0.500000 2.500000 -v 1.000000 0.500000 2.500000 -v -1.000000 0.500000 -2.500000 -v 1.000000 0.500000 -2.500000 v -1.000000 0.250000 2.500000 v 1.000000 0.250000 2.500000 v -1.000000 0.250000 -2.500000 v 1.000000 0.250000 -2.500000 -v -1.000000 0.000000 2.250000 -v 1.000000 0.000000 2.250000 -v -1.000000 0.000000 -2.250000 -v 1.000000 0.000000 -2.250000 -v -0.125000 0.500000 1.000000 -v 0.875000 0.500000 1.000000 -v -0.125000 1.500000 1.000000 -v 0.875000 1.500000 1.000000 -v 0.125000 0.500000 2.000000 -v -0.125000 0.500000 1.750000 -v 0.875000 0.500000 1.750000 -v 0.625000 0.500000 2.000000 -v -0.125000 1.500000 1.750000 -v 0.125000 1.500000 2.000000 -v 0.625000 1.500000 2.000000 -v 0.875000 1.500000 1.750000 -v -0.625000 0.750000 2.437500 -v -0.625000 0.750000 2.312500 -v 0.625000 0.750000 2.312500 -v 0.625000 0.750000 2.437500 -v 0.713388 0.713388 2.312500 -v 0.713388 0.713388 2.437500 -v 0.750000 0.625000 2.312500 -v 0.750000 0.625000 2.437500 -v 0.713388 0.536612 2.312500 -v 0.713388 0.536612 2.437500 -v 0.625000 0.500000 2.312500 -v 0.625000 0.500000 2.437500 -v 0.536612 0.536612 2.312500 -v 0.536612 0.536612 2.437500 -v 0.500000 0.625000 2.312500 -v 0.500000 0.625000 2.437500 -v 0.536612 0.713388 2.312500 -v 0.536612 0.713388 2.437500 -v -0.536612 0.713388 2.312500 -v -0.536612 0.713388 2.437500 -v -0.500000 0.625000 2.312500 -v -0.500000 0.625000 2.437500 -v -0.536612 0.536612 2.312500 -v -0.536612 0.536612 2.437500 -v -0.625000 0.500000 2.312500 -v -0.625000 0.500000 2.437500 -v -0.713388 0.536612 2.312500 -v -0.713388 0.536612 2.437500 -v -0.750000 0.625000 2.312500 -v -0.750000 0.625000 2.437500 -v -0.713388 0.713388 2.312500 -v -0.713388 0.713388 2.437500 -v 0.375000 0.500000 2.312500 -v 0.875000 0.500000 2.312500 -v 0.375000 0.500000 2.187500 -v 0.875000 0.500000 2.187500 -v 0.375000 0.750000 2.187500 -v 0.375000 0.750000 2.312500 -v 0.875000 0.750000 2.312500 -v 0.875000 0.750000 2.187500 -v -0.875000 0.500000 2.312500 -v -0.375000 0.500000 2.312500 -v -0.875000 0.500000 2.187500 -v -0.375000 0.500000 2.187500 -v -0.875000 0.750000 2.187500 -v -0.875000 0.750000 2.312500 -v -0.375000 0.750000 2.312500 -v -0.375000 0.750000 2.187500 -v -0.875000 0.500000 1.875000 -v -0.125000 0.500000 1.875000 -v -0.875000 0.500000 1.125000 -v -0.125000 0.500000 1.125000 -v -0.875000 1.000000 1.125000 -v -0.875000 1.000000 1.875000 -v -0.125000 1.000000 1.875000 -v -0.125000 1.000000 1.125000 -v -0.750000 0.500000 -2.250000 -v 0.750000 0.500000 -2.250000 -v -0.750000 0.500000 -1.750000 -v 0.750000 0.500000 -1.750000 -v -0.750000 1.000000 -2.250000 -v 0.750000 1.000000 -2.250000 -v -0.750000 1.000000 -1.750000 -v 0.750000 1.000000 -1.750000 -vt 0.000000 0.833333 -vt 0.320000 0.000000 -vt 0.320000 0.833333 -vt 0.840000 0.333333 -vt 0.800000 0.000000 -vt 0.840000 0.000000 -vt 0.720000 0.833333 -vt 0.720000 0.000000 -vt 0.800000 0.041667 -vt 0.880000 0.333333 -vt 0.880000 0.000000 -vt 0.920000 0.333333 -vt 0.880000 0.000000 -vt 0.920000 0.000000 -vt 0.320000 0.000000 -vt 0.640000 0.750000 -vt 0.320000 0.750000 -vt 0.320000 0.791666 -vt 0.640000 0.791667 -vt 0.640000 0.833333 -vt 0.640000 0.000000 -vt 0.720000 0.041667 -vt 0.800000 0.875000 -vt 0.880000 0.708333 -vt 0.880000 0.875000 -vt 0.640000 0.958333 -vt 0.480000 0.833333 -vt 0.640000 0.833333 -vt 0.280000 1.000000 -vt 0.160000 1.000000 -vt 0.160000 0.833333 -vt 0.160000 0.833333 -vt 0.000000 1.000000 -vt 0.000000 0.833333 -vt 0.640000 0.791667 -vt 0.480000 0.916667 -vt 0.320000 0.958333 -vt 0.320000 0.916667 -vt 0.320000 0.791667 -vt 0.480000 0.791667 -vt 0.760000 0.833333 -vt 0.800000 0.916666 -vt 0.760000 0.916667 -vt 0.906131 0.580162 -vt 0.880000 0.568887 -vt 0.890824 0.541667 -vt 0.400000 0.973065 -vt 0.420000 0.958333 -vt 0.420000 0.973065 -vt 0.320000 1.000000 -vt 0.340000 0.958333 -vt 0.340000 1.000000 -vt 0.460000 0.987796 -vt 0.480000 0.973065 -vt 0.480000 0.987796 -vt 0.360000 0.958333 -vt 0.340000 0.973065 -vt 0.340000 0.958333 -vt 0.760000 0.996828 -vt 0.780000 0.955161 -vt 0.780000 0.996828 -vt 0.380000 0.973065 -vt 0.400000 0.958333 -vt 0.400000 0.973065 -vt 0.360000 0.973065 -vt 0.340000 0.987796 -vt 0.780000 0.996828 -vt 0.800000 0.955161 -vt 0.800000 0.996828 -vt 0.380000 0.987796 -vt 0.400000 0.987796 -vt 0.380000 0.987796 -vt 0.360000 0.973065 -vt 0.380000 0.973065 -vt 0.940000 0.583333 -vt 0.960000 0.666667 -vt 0.940000 0.666667 -vt 0.440000 0.973065 -vt 0.460000 0.958333 -vt 0.460000 0.973065 -vt 0.380000 0.958333 -vt 0.420000 0.987796 -vt 0.440000 0.973065 -vt 0.440000 0.987796 -vt 0.440000 0.987796 -vt 0.460000 0.987796 -vt 0.916955 0.571129 -vt 0.936955 0.556398 -vt 0.936955 0.571129 -vt 0.770824 0.916666 -vt 0.796955 0.927941 -vt 0.786131 0.955161 -vt 0.420000 0.973065 -vt 0.440000 0.958333 -vt 0.916955 0.556398 -vt 0.936955 0.541667 -vt 0.920000 0.250000 -vt 0.960000 0.333333 -vt 0.920000 0.333333 -vt 0.460000 0.973065 -vt 0.480000 0.958333 -vt 0.400000 0.987796 -vt 0.420000 0.987796 -vt 0.920000 0.083333 -vt 0.960000 0.166667 -vt 0.920000 0.166667 -vt 0.940000 0.666667 -vt 0.920000 0.708333 -vt 0.920000 0.666667 -vt 0.920000 0.583333 -vt 0.940000 0.666667 -vt 0.920000 0.666667 -vt 0.960000 0.250000 -vt 0.920000 0.166667 -vt 0.960000 0.166667 -vt 0.800000 0.708333 -vt 0.920000 0.583333 -vt 0.920000 0.708333 -vt 0.640000 0.958333 -vt 0.760000 0.833333 -vt 0.760000 0.958333 -vt 0.960000 0.458333 -vt 0.880000 0.333333 -vt 0.960000 0.333333 -vt 0.960000 0.958333 -vt 0.880000 0.833333 -vt 0.960000 0.833333 -vt 0.880000 1.000000 -vt 0.800000 0.875000 -vt 0.880000 0.875000 -vt 0.880000 0.708333 -vt 0.960000 0.833333 -vt 0.880000 0.833333 -vt 1.000000 0.083333 -vt 0.920000 0.000000 -vt 1.000000 0.000000 -vt 0.880000 0.541667 -vt 0.960000 0.458333 -vt 0.960000 0.541667 -vt 0.800000 0.583333 -vt 0.880000 0.333333 -vt 0.880000 0.583333 -vt 0.000000 0.000000 -vt 0.800000 0.333333 -vt 0.760000 0.000000 -vt 0.800000 0.791666 -vt 0.760000 0.833333 -vt 0.880000 0.333333 -vt 0.640000 0.000000 -vt 0.680000 0.000000 -vt 0.720000 0.791667 -vt 0.680000 0.833333 -vt 0.800000 0.708333 -vt 0.480000 0.958333 -vt 0.280000 0.833333 -vt 0.320000 0.875000 -vt 0.320000 0.958333 -vt 0.160000 1.000000 -vt 0.480000 0.791667 -vt 0.480000 0.958333 -vt 0.800000 0.833333 -vt 0.916955 0.552942 -vt 0.916955 0.568887 -vt 0.890824 0.580162 -vt 0.880000 0.552942 -vt 0.906131 0.541667 -vt 0.400000 0.958333 -vt 0.320000 0.958333 -vt 0.760000 0.955161 -vt 0.380000 0.958333 -vt 0.360000 0.987796 -vt 0.780000 0.955161 -vt 0.960000 0.583333 -vt 0.440000 0.958333 -vt 0.360000 0.958333 -vt 0.760000 0.943886 -vt 0.760000 0.927941 -vt 0.786131 0.916666 -vt 0.796955 0.943886 -vt 0.770824 0.955161 -vt 0.420000 0.958333 -vt 0.916955 0.541667 -vt 0.960000 0.250000 -vt 0.460000 0.958333 -vt 0.960000 0.083333 -vt 0.940000 0.708333 -vt 0.940000 0.583333 -vt 0.920000 0.250000 -vt 0.800000 0.583333 -vt 0.640000 0.833333 -vt 0.880000 0.458333 -vt 0.880000 0.958333 -vt 0.800000 1.000000 -vt 0.960000 0.708333 -vt 0.920000 0.083333 -vt 0.880000 0.458333 -vt 0.800000 0.333333 +v -1.000000 0.750000 -2.500000 +v -1.000000 0.750000 2.500000 +v 1.000000 0.750000 2.500000 +v 1.000000 0.750000 -2.500000 +v 0.562500 0.375000 2.562500 +v 0.562500 0.875000 2.562500 +v 0.562500 0.375000 2.062500 +v 0.562500 0.875000 2.062500 +v 1.062500 0.375000 2.562500 +v 1.062500 0.875000 2.562500 +v 1.062500 0.375000 2.062500 +v 1.062500 0.875000 2.062500 +v -1.062500 0.375000 2.562500 +v -1.062500 0.875000 2.562500 +v -1.062500 0.375000 2.062500 +v -1.062500 0.875000 2.062500 +v -0.562500 0.375000 2.562500 +v -0.562500 0.875000 2.562500 +v -0.562500 0.375000 2.062500 +v -0.562500 0.875000 2.062500 +v 0.562500 0.375000 -1.812500 +v 0.562500 0.875000 -1.812500 +v 0.562500 0.375000 -2.562500 +v 0.562500 0.875000 -2.562500 +v 1.062500 0.375000 -1.812500 +v 1.062500 0.875000 -1.812500 +v 1.062500 0.375000 -2.562500 +v 1.062500 0.875000 -2.562500 +v -1.062500 0.375000 -1.812500 +v -1.062500 0.875000 -1.812500 +v -1.062500 0.375000 -2.562500 +v -1.062500 0.875000 -2.562500 +v -0.562500 0.375000 -1.812500 +v -0.562500 0.875000 -1.812500 +v -0.562500 0.375000 -2.562500 +v -0.562500 0.875000 -2.562500 +v 0.875000 0.750000 1.062500 +v -0.125000 0.750000 1.062500 +v 0.000000 1.625000 1.187500 +v 0.750000 1.625000 1.187500 +v 0.000000 0.750000 1.187500 +v 0.750000 0.750000 1.187500 +v 0.875000 0.750000 1.875000 +v 0.687500 0.750000 2.062500 +v 0.062500 0.750000 2.062500 +v -0.125000 0.750000 1.875000 +v 0.687500 1.750000 2.062500 +v 0.875000 1.750000 1.875000 +v -0.125000 1.750000 1.875000 +v 0.062500 1.750000 2.062500 +v 0.000000 1.625000 1.875000 +v 0.750000 1.625000 1.875000 +v 0.687500 1.750000 1.937500 +v 0.062500 1.750000 1.937500 +v -0.875000 0.750000 1.250000 +v 0.750000 1.750000 1.875000 +v -0.875000 0.750000 1.750000 +v 0.000000 1.750000 1.875000 +v 0.687500 1.625000 1.937500 +v 0.062500 1.625000 1.937500 +v 0.000000 0.750000 1.062500 +v 0.750000 0.750000 1.062500 +v 0.875000 1.500000 1.062500 +v 0.875000 1.750000 1.187500 +v -0.125000 1.750000 1.187500 +v -0.125000 1.500000 1.062500 +v 0.750000 1.750000 1.187500 +v 0.750000 1.500000 1.062500 +v -0.187500 0.750000 1.750000 +v 0.000000 1.500000 1.062500 +v 0.000000 1.750000 1.187500 +v -0.187500 0.750000 1.250000 +v -0.187500 0.937500 1.250000 +v -0.187500 0.937500 1.750000 +v -0.875000 0.937500 1.250000 +v -0.875000 0.937500 1.750000 +v -0.187500 1.062500 1.375000 +v -0.187500 1.062500 1.625000 +v -0.875000 1.062500 1.375000 +v -0.875000 1.062500 1.625000 +v 0.937500 0.750000 1.000000 +v 0.812500 0.750000 1.000000 +v 0.937500 0.750000 0.875000 +v 0.812500 0.750000 0.875000 +v 0.812500 1.750000 0.875000 +v 0.937500 1.750000 0.875000 +v 0.812500 1.750000 1.000000 +v 0.937500 1.750000 1.000000 +v -0.812500 0.750000 0.750000 +v -0.937500 0.750000 0.750000 +v -0.812500 0.750000 0.625000 +v -0.937500 0.750000 0.625000 +v -0.812500 1.375000 0.750000 +v -0.937500 1.375000 0.750000 +v -0.812500 1.500000 0.625000 +v -0.937500 1.500000 0.625000 +v -0.812500 1.375000 1.125000 +v -0.937500 1.375000 1.250000 +v -0.812500 1.500000 1.125000 +v -0.937500 1.500000 1.250000 +v -0.125000 1.375000 1.125000 +v -0.125000 1.375000 1.250000 +v -0.125000 1.500000 1.125000 +v -0.125000 1.500000 1.250000 +v 0.875000 0.250000 -1.625000 +v 0.750000 0.250000 1.750000 +v 0.750000 0.073223 -1.676777 +v 0.875000 0.250000 -1.250000 +v 0.875000 0.250000 1.750000 +v 0.750000 0.073223 1.323223 +v 0.750000 0.000000 1.500000 +v 0.750000 0.073223 1.676777 +v 0.750000 0.250000 -1.250000 +v 0.750000 0.250000 1.250000 +v 0.875000 0.250000 -1.375000 +v 0.875000 0.073223 -1.323223 +v 0.875000 0.250000 1.250000 +v 0.875000 0.073223 1.323223 +v 0.875000 0.000000 1.500000 +v 0.875000 0.073223 1.676777 +v 0.875000 0.250000 1.625000 +v 0.875000 0.000000 -1.500000 +v 0.875000 0.073223 -1.676777 +v 0.875000 0.250000 -1.750000 +v 0.875000 0.250000 1.375000 +v 0.875000 0.161612 1.411612 +v 0.875000 0.125000 1.500000 +v 0.875000 0.161612 1.588388 +v 0.937500 0.250000 1.625000 +v 0.750000 0.250000 -1.750000 +v 0.750000 0.073223 -1.323223 +v 0.750000 0.000000 -1.500000 +v 0.937500 0.250000 1.375000 +v 0.937500 0.161612 1.411612 +v 0.937500 0.125000 1.500000 +v 0.937500 0.161612 1.588388 +v 0.875000 0.161612 -1.588388 +v 0.875000 0.125000 -1.500000 +v 0.875000 0.161612 -1.411612 +v 0.937500 0.250000 -1.375000 +v 0.937500 0.250000 -1.625000 +v 0.937500 0.161612 -1.588388 +v 0.937500 0.125000 -1.500000 +v 0.937500 0.161612 -1.411612 +v -0.750000 0.250000 2.000000 +v 0.750000 0.250000 2.000000 +v -0.750000 0.250000 -2.000000 +v 0.750000 0.250000 -2.000000 +v -0.750000 0.125000 -1.875000 +v -0.750000 0.125000 1.875000 +v 0.750000 0.125000 1.875000 +v 0.750000 0.125000 -1.875000 +v -0.875000 0.250000 1.625000 +v -0.750000 0.250000 -1.750000 +v -0.750000 0.073223 1.676777 +v -0.875000 0.250000 1.250000 +v -0.875000 0.250000 -1.750000 +v -0.750000 0.073223 -1.323223 +v -0.750000 0.000000 -1.500000 +v -0.750000 0.073223 -1.676777 +v -0.750000 0.250000 1.250000 +v -0.750000 0.250000 -1.250000 +v -0.875000 0.250000 1.375000 +v -0.875000 0.073223 1.323223 +v -0.875000 0.250000 -1.250000 +v -0.875000 0.073223 -1.323223 +v -0.875000 0.000000 -1.500000 +v -0.875000 0.073223 -1.676777 +v -0.875000 0.250000 -1.625000 +v -0.875000 0.000000 1.500000 +v -0.875000 0.073223 1.676777 +v -0.875000 0.250000 1.750000 +v -0.875000 0.250000 -1.375000 +v -0.875000 0.161612 -1.411611 +v -0.875000 0.125000 -1.500000 +v -0.875000 0.161612 -1.588388 +v -0.937500 0.250000 -1.625000 +v -0.750000 0.250000 1.750000 +v -0.750000 0.073223 1.323223 +v -0.750000 0.000000 1.500000 +v -0.937500 0.250000 -1.375000 +v -0.937500 0.161612 -1.411611 +v -0.937500 0.125000 -1.500000 +v -0.937500 0.161612 -1.588388 +v -0.875000 0.161612 1.588389 +v -0.875000 0.125000 1.500000 +v -0.875000 0.161612 1.411612 +v -0.937500 0.250000 1.375000 +v -0.937500 0.250000 1.625000 +v -0.937500 0.161612 1.588389 +v -0.937500 0.125000 1.500000 +v -0.937500 0.161612 1.411612 +vt 0.543210 0.090909 +vt 0.049383 0.454545 +vt 0.049383 0.090909 +vt 0.049383 0.090909 +vt 0.543210 0.454545 +vt 0.049383 0.454545 +vt 0.543210 0.000000 +vt 0.049383 0.000000 +vt 0.049383 0.545455 +vt 0.543210 0.545455 +vt 0.592593 0.454545 +vt 0.543210 0.090909 +vt 0.592593 0.090909 +vt -0.000000 0.090909 +vt -0.000000 0.454545 +vt 0.049383 0.727273 +vt -0.000000 0.636364 +vt 0.049383 0.636364 +vt 0.049383 0.818182 +vt 0.098765 0.909091 +vt 0.049383 0.909091 +vt 0.148148 0.727273 +vt 0.098765 0.636364 +vt 0.148148 0.636364 +vt 0.098765 0.727273 +vt 0.098765 0.545455 +vt 0.049383 0.545455 +vt 0.098765 0.818182 +vt 0.049383 0.727273 +vt -0.000000 0.636364 +vt 0.049383 0.636364 +vt 0.049383 0.818182 +vt 0.098765 0.909091 +vt 0.049383 0.909091 +vt 0.148148 0.727273 +vt 0.098765 0.636364 +vt 0.148148 0.636364 +vt 0.098765 0.727273 +vt 0.098765 0.545455 +vt 0.049383 0.545455 +vt 0.098765 0.818182 +vt 0.345679 0.772727 +vt 0.271605 0.681818 +vt 0.345679 0.681818 +vt 0.271605 0.772727 +vt 0.222222 0.681818 +vt 0.222222 0.772727 +vt 0.148148 0.681818 +vt 0.222222 0.909091 +vt 0.271605 1.000000 +vt 0.222222 1.000000 +vt 0.271605 0.545455 +vt 0.345679 0.772727 +vt 0.271605 0.681818 +vt 0.345679 0.681818 +vt 0.271605 0.772727 +vt 0.222222 0.681818 +vt 0.222222 0.772727 +vt 0.148148 0.681818 +vt 0.222222 0.909091 +vt 0.271605 1.000000 +vt 0.222222 1.000000 +vt 0.271605 0.545455 +vt 0.987654 0.318182 +vt 0.913580 0.477273 +vt 0.913580 0.318182 +vt 0.567901 0.454545 +vt 0.555556 0.590909 +vt 0.555556 0.454545 +vt 0.777778 0.318182 +vt 0.716049 0.500000 +vt 0.716901 0.318679 +vt 0.697531 0.500000 +vt 0.629630 0.534091 +vt 0.629630 0.500000 +vt 0.777778 0.522727 +vt 0.716049 0.522727 +vt 0.697531 0.318182 +vt 0.796296 0.500000 +vt 0.777778 0.500000 +vt 0.864198 0.500000 +vt 0.796296 0.534091 +vt 0.617284 0.454545 +vt 0.604938 0.318182 +vt 0.617284 0.318182 +vt 0.901235 0.318182 +vt 0.888889 0.454545 +vt 0.888889 0.318182 +vt 0.709877 0.534091 +vt 0.697531 0.534091 +vt 0.783951 0.534091 +vt 0.796296 0.534091 +vt 0.919753 0.636364 +vt 0.981481 0.613636 +vt 0.981481 0.636364 +vt 0.913580 0.636364 +vt 0.919753 0.613636 +vt 0.913580 0.602273 +vt 0.987654 0.477273 +vt 0.987654 0.636364 +vt 1.000000 0.477273 +vt 0.987654 0.602273 +vt 0.876543 0.454545 +vt 0.901235 0.602273 +vt 0.604938 0.454545 +vt 0.592593 0.477273 +vt 0.592593 0.318182 +vt 0.876543 0.500000 +vt 0.604938 0.500000 +vt 0.623457 0.659091 +vt 0.691358 0.636364 +vt 0.691358 0.659091 +vt 0.691358 0.534091 +vt 0.623457 0.568182 +vt 0.623457 0.534091 +vt 0.722222 0.568182 +vt 0.722222 0.659091 +vt 0.506173 0.727273 +vt 0.518519 0.750000 +vt 0.506173 0.750000 +vt 0.623457 0.693182 +vt 0.691358 0.693182 +vt 0.691358 0.590909 +vt 0.623457 0.636364 +vt 0.623457 0.590909 +vt 0.506173 0.545455 +vt 0.493827 0.727273 +vt 0.493827 0.545455 +vt 0.518519 0.545455 +vt 0.592593 0.659091 +vt 0.592593 0.568182 +vt 0.543210 0.545455 +vt 0.530864 0.727273 +vt 0.530864 0.545455 +vt 0.518519 0.727273 +vt 0.580247 0.568182 +vt 0.567901 0.590909 +vt 0.592593 0.568182 +vt 0.580247 0.454545 +vt 0.592593 0.454545 +vt 0.543210 0.568182 +vt 0.543210 0.454545 +vt 0.592593 0.681818 +vt 0.580247 0.613636 +vt 0.592593 0.613636 +vt 0.555556 0.681818 +vt 0.543210 0.613636 +vt 0.567901 0.704545 +vt 0.580247 0.704545 +vt 0.567901 0.852273 +vt 0.555556 0.727273 +vt 0.543210 0.852273 +vt 0.543210 0.727273 +vt 0.592593 0.727273 +vt 0.580247 0.852273 +vt 0.555556 0.852273 +vt 0.456790 0.568182 +vt 0.438272 0.590909 +vt 0.438272 0.568182 +vt 0.456790 0.568182 +vt 0.438272 0.590909 +vt 0.438272 0.568182 +vt 0.419210 0.590495 +vt 0.377874 0.558974 +vt 0.394996 0.545918 +vt 0.493827 0.568182 +vt 0.475309 0.590909 +vt 0.475309 0.568182 +vt 0.349457 0.574879 +vt 0.358021 0.568349 +vt 0.366584 0.574879 +vt 0.469136 0.590909 +vt 0.456790 0.590909 +vt 0.419753 0.568182 +vt 0.432099 0.590909 +vt 0.419753 0.590909 +vt 0.469136 0.590909 +vt 0.456790 0.590909 +vt 0.419753 0.568182 +vt 0.432099 0.590909 +vt 0.419753 0.590909 +vt 0.493827 0.568182 +vt 0.475309 0.590909 +vt 0.475309 0.568182 +vt 0.349457 0.574879 +vt 0.358021 0.568349 +vt 0.366584 0.574879 +vt 0.377874 0.558974 +vt 0.394996 0.545918 +vt 0.412118 0.558974 +vt 0.975309 0.022727 +vt 0.604938 0.295455 +vt 0.604938 0.022727 +vt 0.987654 0.295455 +vt 0.987654 0.022727 +vt 0.592593 0.022727 +vt 0.592593 0.295455 +vt 0.592593 0.318182 +vt 0.975309 0.295455 +vt 0.987654 0.318182 +vt 0.987654 0.000000 +vt 0.592593 0.000000 +vt 0.456790 0.568182 +vt 0.438272 0.590909 +vt 0.438272 0.568182 +vt 0.456790 0.568182 +vt 0.438272 0.590909 +vt 0.438272 0.568182 +vt 0.419210 0.590495 +vt 0.377874 0.558974 +vt 0.394996 0.545918 +vt 0.493827 0.568182 +vt 0.475309 0.590909 +vt 0.475309 0.568182 +vt 0.358021 0.568349 +vt 0.366584 0.574879 +vt 0.370132 0.590644 +vt 0.475309 0.568182 +vt 0.456790 0.590909 +vt 0.419753 0.590909 +vt 0.419753 0.568182 +vt 0.456790 0.590909 +vt 0.419753 0.590909 +vt 0.419753 0.568182 +vt 0.493827 0.568182 +vt 0.475309 0.590909 +vt 0.358021 0.568349 +vt 0.366584 0.574879 +vt 0.370132 0.590644 +vt 0.377874 0.558974 +vt 0.394996 0.545918 +vt 0.412118 0.558974 +vt 0.543210 0.454545 +vt -0.000000 0.727273 +vt -0.000000 0.727273 +vt 0.148148 0.772727 +vt 0.271605 0.909091 +vt 0.222222 0.545455 +vt 0.148148 0.772727 +vt 0.271605 0.909091 +vt 0.222222 0.545455 +vt 0.697531 0.534091 +vt 0.796296 0.318182 +vt 0.864198 0.534091 +vt 0.901235 0.477273 +vt 0.901235 0.500000 +vt 0.913580 0.613636 +vt 0.987654 0.613636 +vt 1.000000 0.602273 +vt 0.876543 0.318182 +vt 0.901235 0.477273 +vt 0.592593 0.500000 +vt 0.888889 0.500000 +vt 0.617284 0.500000 +vt 0.691358 0.568182 +vt 0.703704 0.659091 +vt 0.703704 0.568182 +vt 0.611111 0.568182 +vt 0.611111 0.659091 +vt 0.543210 0.727273 +vt 0.543210 0.681818 +vt 0.592593 0.852273 +vt 0.450617 0.590909 +vt 0.450617 0.590909 +vt 0.412118 0.558974 +vt 0.370781 0.590495 +vt 0.487654 0.590909 +vt 0.370132 0.590644 +vt 0.345910 0.590644 +vt 0.487654 0.590909 +vt 0.370132 0.590644 +vt 0.345910 0.590644 +vt 0.419210 0.590495 +vt 0.370781 0.590495 +vt 0.450617 0.590909 +vt 0.450617 0.590909 +vt 0.412118 0.558974 +vt 0.370781 0.590495 +vt 0.487654 0.590909 +vt 0.345910 0.590644 +vt 0.349457 0.574879 +vt 0.469136 0.590909 +vt 0.432099 0.590909 +vt 0.469136 0.590909 +vt 0.432099 0.590909 +vt 0.487654 0.590909 +vt 0.345910 0.590644 +vt 0.349457 0.574879 +vt 0.419210 0.590495 +vt 0.370781 0.590495 +vt 0.475309 0.545455 +vt 0.456790 0.545455 +vt 0.456790 0.602273 +vt 0.438272 0.545455 +vt 0.493827 0.545455 +vt 0.419753 0.602273 +vt 0.475309 0.602273 +vt 0.419753 0.545455 +vt 0.438272 0.602273 +vt 0.438272 0.545455 +vt 0.419753 0.545455 +vt 0.438272 0.602273 +vt 0.475309 0.602273 +vt 0.493827 0.545455 +vt 0.475309 0.545455 +vt 0.456790 0.545455 +vt 0.419753 0.602273 +vt 0.456790 0.602273 +vt 0.475309 0.545455 +vt 0.456790 0.545455 +vt 0.456790 0.602273 +vt 0.438272 0.545455 +vt 0.493827 0.545455 +vt 0.419753 0.602273 +vt 0.475309 0.602273 +vt 0.419753 0.545455 +vt 0.438272 0.602273 +vt 0.438272 0.545455 +vt 0.419753 0.545455 +vt 0.438272 0.602273 +vt 0.475309 0.602273 +vt 0.475309 0.545455 +vt 0.456790 0.545455 +vt 0.419753 0.602273 +vt 0.456790 0.602273 +vt 0.469136 0.602273 +vt 0.432099 0.602273 +vt 0.487654 0.602273 +vt 0.450617 0.602273 +vt 0.450617 0.602273 +vt 0.487654 0.602273 +vt 0.432099 0.602273 +vt 0.469136 0.602273 +vt 0.469136 0.602273 +vt 0.432099 0.602273 +vt 0.487654 0.602273 +vt 0.450617 0.602273 +vt 0.450617 0.602273 +vt 0.487654 0.602273 +vt 0.493827 0.545455 +vt 0.432099 0.602273 +vt 0.469136 0.602273 +vn 0.0000 -1.0000 0.0000 vn 0.0000 1.0000 0.0000 -vn 0.0000 -0.7071 -0.7071 vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 vn 0.0000 0.0000 -1.0000 vn 0.0000 0.0000 1.0000 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 -0.7071 0.7071 -vn -1.0000 0.0000 0.0000 -vn 0.7071 0.0000 0.7071 vn -0.7071 0.0000 0.7071 -vn 0.3827 0.9239 0.0000 -vn -0.9239 -0.3827 0.0000 -vn 0.9239 0.3827 0.0000 -vn -0.3827 -0.9239 0.0000 -vn 0.9239 -0.3827 0.0000 -vn 0.3827 -0.9239 0.0000 -vn -0.3827 0.9239 0.0000 -vn -0.9239 0.3827 0.0000 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 -0.7071 +vn 0.0000 0.4472 -0.8944 +vn 0.0000 0.7071 0.7071 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 -0.3827 -0.9239 +vn 0.0000 -0.3827 0.9239 s off -f 2/1/1 3/2/1 1/3/1 -f 8/4/2 11/5/2 7/6/2 -f 4/7/3 2/8/3 10/9/3 -f 4/10/4 7/6/4 3/11/4 -f 1/12/5 6/13/5 2/14/5 -f 11/15/6 10/16/6 9/17/6 -f 5/18/7 10/16/7 6/19/7 -f 1/20/8 3/21/8 11/22/8 -f 20/23/5 22/24/5 17/25/5 -f 14/26/3 24/27/3 19/28/3 -f 24/29/1 16/30/1 15/31/1 -f 13/32/4 16/33/4 14/34/4 -f 24/27/9 20/35/9 19/28/9 -f 18/36/10 22/37/10 21/38/10 -f 18/36/8 15/39/8 13/40/8 -f 58/41/5 62/42/5 57/43/5 -f 25/44/5 54/45/5 50/46/5 -f 28/47/11 29/48/11 27/49/11 -f 65/50/8 69/51/8 67/52/8 -f 52/53/12 53/54/12 51/55/12 -f 30/56/13 31/57/13 29/58/13 -f 57/59/8 61/60/8 59/61/8 -f 50/62/14 51/63/14 49/64/14 -f 32/65/15 33/66/15 31/57/15 -f 60/67/3 63/68/3 58/69/3 -f 48/70/16 49/64/16 47/71/16 -f 33/72/16 36/73/16 35/74/16 -f 63/75/1 61/76/1 62/77/1 -f 46/78/15 47/79/15 45/80/15 -f 36/73/14 37/81/14 35/74/14 -f 56/82/17 26/83/17 55/84/17 -f 44/85/13 45/80/13 43/86/13 -f 38/87/12 39/88/12 37/89/12 -f 28/90/5 40/91/5 36/92/5 -f 25/93/11 43/94/11 26/83/11 -f 40/95/18 41/96/18 39/88/18 -f 59/97/4 64/98/4 60/99/4 -f 54/100/18 55/101/18 53/54/18 -f 42/102/17 27/49/17 41/103/17 -f 66/104/5 70/105/5 65/106/5 -f 68/107/3 71/108/3 66/109/3 -f 71/110/1 69/111/1 70/112/1 -f 67/113/4 72/114/4 68/115/4 -f 75/116/6 74/117/6 73/118/6 -f 79/119/1 77/120/1 78/121/1 -f 76/122/3 79/123/3 74/124/3 -f 73/125/8 77/126/8 75/127/8 -f 75/128/4 80/129/4 76/130/4 -f 74/131/5 78/132/5 73/133/5 -f 86/134/3 84/135/3 82/136/3 -f 87/137/8 81/138/8 83/139/8 -f 85/140/4 82/141/4 81/142/4 -f 2/1/1 4/143/1 3/2/1 -f 8/4/2 12/144/2 11/5/2 -f 2/8/3 6/145/3 10/9/3 -f 10/9/3 12/146/3 4/7/3 -f 12/146/3 8/147/3 4/7/3 -f 4/10/4 8/4/4 7/6/4 -f 1/12/5 5/148/5 6/13/5 -f 11/15/6 12/149/6 10/16/6 -f 5/18/7 9/17/7 10/16/7 -f 3/21/8 7/150/8 11/22/8 -f 11/22/8 9/151/8 1/20/8 -f 9/151/8 5/152/8 1/20/8 -f 20/23/5 23/153/5 22/24/5 -f 14/26/3 16/154/3 24/27/3 -f 15/31/1 21/155/1 24/29/1 -f 21/155/1 22/156/1 24/29/1 -f 22/156/1 23/157/1 24/29/1 -f 13/32/4 15/158/4 16/33/4 -f 24/27/9 23/159/9 20/35/9 -f 18/36/10 17/160/10 22/37/10 -f 18/36/8 21/38/8 15/39/8 -f 58/41/5 63/161/5 62/42/5 -f 46/162/5 44/163/5 25/44/5 -f 25/44/5 56/164/5 54/45/5 -f 54/45/5 52/165/5 50/46/5 -f 50/46/5 48/166/5 46/162/5 -f 46/162/5 25/44/5 50/46/5 -f 28/47/11 30/167/11 29/48/11 -f 65/50/8 70/168/8 69/51/8 -f 52/53/12 54/100/12 53/54/12 -f 30/56/13 32/65/13 31/57/13 -f 57/59/8 62/169/8 61/60/8 -f 50/62/14 52/170/14 51/63/14 -f 32/65/15 34/171/15 33/66/15 -f 60/67/3 64/172/3 63/68/3 -f 48/70/16 50/62/16 49/64/16 -f 33/72/16 34/171/16 36/73/16 -f 63/75/1 64/173/1 61/76/1 -f 46/78/15 48/174/15 47/79/15 -f 36/73/14 38/175/14 37/81/14 -f 56/82/17 25/93/17 26/83/17 -f 44/85/13 46/78/13 45/80/13 -f 38/87/12 40/95/12 39/88/12 -f 32/176/5 30/177/5 28/90/5 -f 28/90/5 42/178/5 40/91/5 -f 40/91/5 38/179/5 36/92/5 -f 36/92/5 34/180/5 32/176/5 -f 32/176/5 28/90/5 36/92/5 -f 25/93/11 44/181/11 43/94/11 -f 40/95/18 42/182/18 41/96/18 -f 59/97/4 61/183/4 64/98/4 -f 54/100/18 56/184/18 55/101/18 -f 42/102/17 28/47/17 27/49/17 -f 66/104/5 71/185/5 70/105/5 -f 68/107/3 72/186/3 71/108/3 -f 71/110/1 72/187/1 69/111/1 -f 67/113/4 69/188/4 72/114/4 -f 75/116/6 76/189/6 74/117/6 -f 79/119/1 80/190/1 77/120/1 -f 76/122/3 80/191/3 79/123/3 -f 73/125/8 78/192/8 77/126/8 -f 75/128/4 77/193/4 80/129/4 -f 74/131/5 79/194/5 78/132/5 -f 86/134/3 88/195/3 84/135/3 -f 87/137/8 85/196/8 81/138/8 -f 85/140/4 86/197/4 82/141/4 +f 3/1/1 2/2/1 1/3/1 +f 7/4/2 5/5/2 6/6/2 +f 4/7/3 7/4/3 2/8/3 +f 1/9/4 5/5/4 3/10/4 +f 3/11/5 8/12/5 4/13/5 +f 2/14/6 6/6/6 1/15/6 +f 10/16/4 11/17/4 9/18/4 +f 12/19/5 15/20/5 11/21/5 +f 16/22/3 13/23/3 15/24/3 +f 14/25/6 9/18/6 13/23/6 +f 15/26/1 9/18/1 11/27/1 +f 12/19/2 14/25/2 16/28/2 +f 18/29/4 19/30/4 17/31/4 +f 20/32/5 23/33/5 19/34/5 +f 24/35/3 21/36/3 23/37/3 +f 22/38/6 17/31/6 21/36/6 +f 23/39/1 17/31/1 19/40/1 +f 20/32/2 22/38/2 24/41/2 +f 26/42/4 27/43/4 25/44/4 +f 28/45/5 31/46/5 27/43/5 +f 32/47/3 29/48/3 31/46/3 +f 30/49/6 25/50/6 29/51/6 +f 31/46/1 25/52/1 27/43/1 +f 28/45/2 30/49/2 32/47/2 +f 34/53/4 35/54/4 33/55/4 +f 36/56/5 39/57/5 35/54/5 +f 40/58/3 37/59/3 39/57/3 +f 38/60/6 33/61/6 37/62/6 +f 39/57/1 33/63/1 35/54/1 +f 36/56/2 38/60/2 40/58/2 +f 45/64/5 44/65/5 46/66/5 +f 96/67/5 99/68/5 95/69/5 +f 48/70/6 54/71/6 49/72/6 +f 53/73/2 75/74/2 69/75/2 +f 54/71/2 57/76/2 58/77/2 +f 54/71/7 50/78/7 49/72/7 +f 48/70/8 52/79/8 51/80/8 +f 68/81/2 60/82/2 52/79/2 +f 70/83/5 65/84/5 42/85/5 +f 46/86/4 72/87/4 66/88/4 +f 54/71/2 62/89/2 53/90/2 +f 60/91/2 51/80/2 52/92/2 +f 57/93/5 64/94/5 58/95/5 +f 60/96/9 63/97/9 57/93/9 +f 56/98/2 44/65/2 43/99/2 +f 64/94/10 62/100/10 58/95/10 +f 75/101/3 55/102/3 43/99/3 +f 67/103/3 68/81/3 52/79/3 +f 53/73/4 69/75/4 70/83/4 +f 60/104/4 44/65/4 56/98/4 +f 74/105/3 43/106/3 45/107/3 +f 72/87/11 68/108/11 67/103/11 +f 70/83/11 75/109/11 74/105/11 +f 67/103/5 66/88/5 72/87/5 +f 78/110/12 84/111/12 80/112/12 +f 59/113/5 77/114/5 76/115/5 +f 59/116/4 61/117/4 84/111/4 +f 90/118/2 91/119/2 92/120/2 +f 73/121/6 80/112/6 61/122/6 +f 83/123/2 82/124/2 81/125/2 +f 87/126/3 92/127/3 85/128/3 +f 88/129/5 90/118/5 87/126/5 +f 77/114/13 83/123/13 81/125/13 +f 73/130/3 76/131/3 81/125/3 +f 85/132/6 91/133/6 86/134/6 +f 86/134/4 89/135/4 88/129/4 +f 96/67/4 98/136/4 100/137/4 +f 97/138/6 94/139/6 93/140/6 +f 95/69/3 97/141/3 93/142/3 +f 101/143/1 98/144/1 97/145/1 +f 100/137/2 103/146/2 99/68/2 +f 103/146/3 97/147/3 99/68/3 +f 98/144/4 104/148/4 100/137/4 +f 102/149/6 108/150/6 104/148/6 +f 103/151/5 105/152/5 101/153/5 +f 101/154/1 106/155/1 102/149/1 +f 103/151/2 108/150/2 107/156/2 +f 126/157/3 143/158/3 120/159/3 +f 123/160/3 132/161/3 124/162/3 +f 117/163/4 111/164/4 136/165/4 +f 121/166/3 130/167/3 122/168/3 +f 148/169/3 147/170/3 146/171/3 +f 126/157/3 141/172/3 142/173/3 +f 113/174/3 132/175/3 125/176/3 +f 123/160/3 130/177/3 131/178/3 +f 112/179/3 143/180/3 119/181/3 +f 128/182/3 141/183/3 127/184/3 +f 140/185/3 139/186/3 138/187/3 +f 114/188/4 115/189/4 116/190/4 +f 153/191/1 155/192/1 154/193/1 +f 152/194/14 153/191/14 151/195/14 +f 149/196/15 155/192/15 150/197/15 +f 150/198/3 156/199/3 152/200/3 +f 151/201/4 154/193/4 149/202/4 +f 174/203/4 191/204/4 168/205/4 +f 171/206/4 180/207/4 172/208/4 +f 165/209/3 159/210/3 184/211/3 +f 169/212/4 178/213/4 170/214/4 +f 195/215/4 194/216/4 193/217/4 +f 175/218/4 190/219/4 174/203/4 +f 172/208/4 173/220/4 161/221/4 +f 170/214/4 179/222/4 171/206/4 +f 168/205/4 167/223/4 160/224/4 +f 176/225/4 189/226/4 175/218/4 +f 187/227/4 186/228/4 185/229/4 +f 162/230/3 163/231/3 164/232/3 +f 3/1/1 4/233/1 2/2/1 +f 7/4/2 8/12/2 5/5/2 +f 4/7/3 8/12/3 7/4/3 +f 1/9/4 6/6/4 5/5/4 +f 3/11/5 5/5/5 8/12/5 +f 2/14/6 7/4/6 6/6/6 +f 10/16/4 12/234/4 11/17/4 +f 12/19/5 16/28/5 15/20/5 +f 16/22/3 14/25/3 13/23/3 +f 14/25/6 10/16/6 9/18/6 +f 15/26/1 13/23/1 9/18/1 +f 12/19/2 10/16/2 14/25/2 +f 18/29/4 20/235/4 19/30/4 +f 20/32/5 24/41/5 23/33/5 +f 24/35/3 22/38/3 21/36/3 +f 22/38/6 18/29/6 17/31/6 +f 23/39/1 21/36/1 17/31/1 +f 20/32/2 18/29/2 22/38/2 +f 26/42/4 28/45/4 27/43/4 +f 28/45/5 32/47/5 31/46/5 +f 32/47/3 30/236/3 29/48/3 +f 30/49/6 26/237/6 25/50/6 +f 31/46/1 29/238/1 25/52/1 +f 28/45/2 26/237/2 30/49/2 +f 34/53/4 36/56/4 35/54/4 +f 36/56/5 40/58/5 39/57/5 +f 40/58/3 38/239/3 37/59/3 +f 38/60/6 34/240/6 33/61/6 +f 39/57/1 37/241/1 33/63/1 +f 36/56/2 34/240/2 38/60/2 +f 45/64/5 43/99/5 44/65/5 +f 96/67/5 100/137/5 99/68/5 +f 48/70/6 51/80/6 54/71/6 +f 53/73/2 62/242/2 75/74/2 +f 54/71/2 51/80/2 57/76/2 +f 54/71/7 53/73/7 50/78/7 +f 48/70/8 47/243/8 52/79/8 +f 68/81/2 71/244/2 60/82/2 +f 70/83/5 74/105/5 65/84/5 +f 46/86/4 44/245/4 72/87/4 +f 44/245/4 71/246/4 72/87/4 +f 54/71/2 58/77/2 62/89/2 +f 60/91/2 57/76/2 51/80/2 +f 57/93/5 63/97/5 64/94/5 +f 60/96/9 56/247/9 63/97/9 +f 43/99/2 55/102/2 56/98/2 +f 55/102/2 64/94/2 56/98/2 +f 64/94/2 63/97/2 56/98/2 +f 64/94/10 55/248/10 62/100/10 +f 75/101/3 62/249/3 55/102/3 +f 52/79/3 47/243/3 67/103/3 +f 47/243/3 41/250/3 67/103/3 +f 70/83/4 42/85/4 50/78/4 +f 50/78/4 53/73/4 70/83/4 +f 60/104/4 71/251/4 44/65/4 +f 45/107/3 65/84/3 74/105/3 +f 74/105/3 75/252/3 43/106/3 +f 72/87/11 71/253/11 68/108/11 +f 70/83/11 69/254/11 75/109/11 +f 67/103/5 41/250/5 66/88/5 +f 78/110/12 82/124/12 84/111/12 +f 59/113/5 79/255/5 77/114/5 +f 61/117/4 80/256/4 84/111/4 +f 84/111/4 83/123/4 59/116/4 +f 83/123/4 79/257/4 59/116/4 +f 90/118/2 89/135/2 91/119/2 +f 73/121/6 78/110/6 80/112/6 +f 83/123/2 84/111/2 82/124/2 +f 87/126/3 90/118/3 92/127/3 +f 88/129/5 89/135/5 90/118/5 +f 77/114/13 79/255/13 83/123/13 +f 76/131/3 77/258/3 81/125/3 +f 81/125/3 82/124/3 73/130/3 +f 82/124/3 78/259/3 73/130/3 +f 85/132/6 92/260/6 91/133/6 +f 86/134/4 91/133/4 89/135/4 +f 96/67/4 94/139/4 98/136/4 +f 97/138/6 98/136/6 94/139/6 +f 95/69/3 99/68/3 97/141/3 +f 101/143/1 102/149/1 98/144/1 +f 100/137/2 104/148/2 103/146/2 +f 103/146/3 101/261/3 97/147/3 +f 98/144/4 102/149/4 104/148/4 +f 102/149/6 106/155/6 108/150/6 +f 103/151/5 107/156/5 105/152/5 +f 101/154/1 105/262/1 106/155/1 +f 103/151/2 104/148/2 108/150/2 +f 126/157/3 142/263/3 143/158/3 +f 123/160/3 131/264/3 132/161/3 +f 136/165/4 135/265/4 117/163/4 +f 117/163/4 134/266/4 111/164/4 +f 121/166/3 129/267/3 130/167/3 +f 145/268/3 144/269/3 146/171/3 +f 144/269/3 148/169/3 146/171/3 +f 126/157/3 127/184/3 141/172/3 +f 113/174/3 124/162/3 132/175/3 +f 123/160/3 122/168/3 130/177/3 +f 112/179/3 120/159/3 143/180/3 +f 128/182/3 109/270/3 141/183/3 +f 137/271/3 133/272/3 138/187/3 +f 133/272/3 140/185/3 138/187/3 +f 110/273/4 118/274/4 116/190/4 +f 118/274/4 114/188/4 116/190/4 +f 153/191/1 156/199/1 155/192/1 +f 152/194/14 156/199/14 153/191/14 +f 149/196/15 154/193/15 155/192/15 +f 150/198/3 155/192/3 156/199/3 +f 151/201/4 153/191/4 154/193/4 +f 174/203/4 190/275/4 191/204/4 +f 171/206/4 179/276/4 180/207/4 +f 184/211/3 183/277/3 165/209/3 +f 165/209/3 182/278/3 159/210/3 +f 169/212/4 177/279/4 178/213/4 +f 193/217/4 192/280/4 196/281/4 +f 196/281/4 195/215/4 193/217/4 +f 175/218/4 189/282/4 190/219/4 +f 172/208/4 180/283/4 173/220/4 +f 170/214/4 178/284/4 179/222/4 +f 168/205/4 191/285/4 167/223/4 +f 176/225/4 157/286/4 189/226/4 +f 185/229/4 181/287/4 188/288/4 +f 188/288/4 187/227/4 185/229/4 +f 158/289/3 166/290/3 164/232/3 +f 166/290/3 162/230/3 164/232/3 +s 1 +f 114/291/14 123/160/1 115/292/1 +f 141/172/14 147/293/1 142/173/1 +f 115/292/1 124/162/15 116/294/15 +f 118/295/16 122/168/14 114/291/14 +f 143/180/15 144/296/17 119/181/17 +f 109/270/16 146/297/14 141/183/14 +f 116/294/15 113/174/17 110/298/17 +f 142/263/1 148/299/15 143/158/15 +f 135/300/15 112/179/17 117/301/17 +f 131/264/1 140/302/15 132/161/15 +f 129/267/16 138/303/14 130/167/14 +f 134/304/16 127/184/14 111/305/14 +f 136/306/1 120/159/15 135/300/15 +f 132/175/15 133/307/17 125/176/17 +f 130/177/14 139/308/1 131/178/1 +f 111/305/14 126/157/1 136/306/1 +f 162/309/15 171/206/1 163/310/1 +f 189/282/15 195/311/1 190/219/1 +f 163/310/1 172/208/14 164/312/14 +f 166/313/17 170/214/15 162/309/15 +f 191/285/14 192/314/16 167/223/16 +f 157/286/17 194/315/15 189/226/15 +f 158/316/16 172/208/14 161/221/16 +f 190/275/1 196/317/14 191/204/14 +f 183/318/14 160/224/16 165/319/16 +f 179/276/1 188/320/14 180/207/14 +f 177/279/17 186/321/15 178/213/15 +f 159/322/15 176/225/17 175/218/15 +f 184/323/1 168/205/14 183/318/14 +f 180/283/14 181/324/16 173/220/16 +f 178/284/15 187/325/1 179/222/1 +f 159/322/15 174/203/1 184/323/1 +f 114/291/14 122/168/14 123/160/1 +f 141/172/14 146/326/14 147/293/1 +f 115/292/1 123/160/1 124/162/15 +f 118/295/16 121/166/16 122/168/14 +f 143/180/15 148/327/15 144/296/17 +f 109/270/16 145/328/16 146/297/14 +f 116/294/15 124/162/15 113/174/17 +f 142/263/1 147/329/1 148/299/15 +f 135/300/15 120/159/15 112/179/17 +f 131/264/1 139/330/1 140/302/15 +f 129/267/16 137/331/16 138/303/14 +f 134/304/16 128/182/16 127/184/14 +f 136/306/1 126/157/1 120/159/15 +f 132/175/15 140/332/15 133/307/17 +f 130/177/14 138/333/14 139/308/1 +f 111/305/14 127/184/14 126/157/1 +f 162/309/15 170/214/15 171/206/1 +f 189/282/15 194/334/15 195/311/1 +f 163/310/1 171/206/1 172/208/14 +f 166/313/17 169/212/17 170/214/15 +f 191/285/14 196/335/14 192/314/16 +f 157/286/17 193/336/17 194/315/15 +f 158/316/16 164/312/14 172/208/14 +f 190/275/1 195/337/1 196/317/14 +f 183/318/14 168/205/14 160/224/16 +f 179/276/1 187/338/1 188/320/14 +f 177/279/17 185/339/17 186/321/15 +f 159/322/15 182/340/17 176/225/17 +f 184/323/1 174/203/1 168/205/14 +f 180/283/14 188/341/14 181/324/16 +f 178/284/15 186/342/15 187/325/1 +f 159/322/15 175/218/15 174/203/1 diff --git a/src/main/resources/assets/hbm/textures/models/trains/ow.png b/src/main/resources/assets/hbm/textures/models/trains/ow.png new file mode 100644 index 0000000000000000000000000000000000000000..3ba1a97679750b05fa6900f1d5b980a458d8b6cc GIT binary patch literal 79618 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

0S6y{g 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

m%w9TN%W5 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/trains/tram.png b/src/main/resources/assets/hbm/textures/models/trains/tram.png new file mode 100644 index 0000000000000000000000000000000000000000..d50856ed7af73e9de716b5354aa6f8255d84a95c GIT binary patch literal 1148 zcmeAS@N?(olHy`uVBq!ia0vp^i-0(SgAGWQ{nkkVQY^(zo*^7SP{WbZ0puEcx;TbZ z%z1lfZT@Ws3APW6(}v7~8pw%GC4Hxs`#v-OEi3`r31WM!Ke@}lPFvC=mc zx1IQY*V&lWN?lo}T<5&&;}7NKu7SZfO~VyMH1lroE;Cb_)a?OILynpFJJTb;<44)>zsbLbxD^sS9)AMvPA5dgqk)t$Firn58q_B9j(6>!?t19 ze}5@6n;wa#@bvSCZq~iC-ZXcWgwadEi5jc2o}V^f__|_a?B=B1$zcb|{%w9%#rkH4 z)TIvnO27y2J*+!(a7?z>X;k5t+KsR zBsM!$$#v=Hd)p*F8FoZ}@;@4IORaaWjZw_6x|hzC-oN6;Z{IgJ3{viVpJXOg*mGm!GG#5_+wF3i4<}9) z-gvk6)YQj0i=&Qi3El9v^7Fsc->JJ_&%T*wE^Cy{_J~7STWRHkH67PIFa4@|6p_yJ z_35s^UsZ0t|Ge%$OU|EN3uE6_>P%moU)Wc8fSoV=OYCP&A;HbIC$oa)+b|wob8q?F zSXKtJb}2nOZC3q*3T_APterl+hB+o*`qnaT8D+Oa+lAiUUZ%aK!+lzuQhnaRJ6rGV zRAukdyS9C<&6?HeFVbzd@Bckd=x~>Z)&?c50Qtq466<%`?A|~B^w$fwZF2sfE?d*F zKA&|F*EE-DsH@D_wVbrik#^IOvkhLuI}5M|2F^Ij{CniDIury z3$H(&y?HZozWjA#vAr+tIWs}zp+_K?skAPM^4T6|IZ@rrId6k RYk|cHgQu&X%Q~loCIExn8Os0w literal 0 HcmV?d00001 From 6d5e5ddc6d0fb9af590d21a3ba802a1bbe7cbcd9 Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 9 May 2023 13:58:17 +0200 Subject: [PATCH 022/432] fixed mojang's weird input restrictions, more tram stuff --- .../com/hbm/entity/train/TrainCargoTram.java | 8 ++--- src/main/java/com/hbm/main/ClientProxy.java | 3 ++ .../com/hbm/main/ModEventHandlerClient.java | 29 +++++++++++++----- .../java/com/hbm/main/ResourceManager.java | 1 + .../entity/item/RenderTrainCargoTram.java | 4 +-- .../hbm/textures/models/trains/tram.png | Bin 1148 -> 2686 bytes 6 files changed, 30 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/hbm/entity/train/TrainCargoTram.java b/src/main/java/com/hbm/entity/train/TrainCargoTram.java index 7761a76e0..5dcff8b21 100644 --- a/src/main/java/com/hbm/entity/train/TrainCargoTram.java +++ b/src/main/java/com/hbm/entity/train/TrainCargoTram.java @@ -1,8 +1,6 @@ package com.hbm.entity.train; import com.hbm.blocks.rail.IRailNTM.TrackGauge; -import com.hbm.inventory.container.ContainerCrateSteel; -import com.hbm.inventory.gui.GUICrateSteel; import com.hbm.tileentity.IGUIProvider; import cpw.mods.fml.relauncher.Side; @@ -71,12 +69,12 @@ public class TrainCargoTram extends EntityRailCarRidable implements IGUIProvider @Override public double getLengthSpan() { - return 2; + return 1.5; } @Override public Vec3 getRiderSeatPosition() { - return Vec3.createVectorHelper(0.375, 1.75, 0.5); + return Vec3.createVectorHelper(0.375, 2.25, 0.5); } @Override @@ -90,7 +88,7 @@ public class TrainCargoTram extends EntityRailCarRidable implements IGUIProvider @Override public boolean shouldRiderSit() { - return true; + return false; } @Override diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index e69446d89..8143d4828 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -61,6 +61,7 @@ import com.hbm.entity.mob.siege.*; import com.hbm.entity.particle.*; import com.hbm.entity.projectile.*; import com.hbm.entity.train.*; +import com.hbm.entity.train.EntityRailCarRidable.SeatDummyEntity; import com.hbm.handler.CasingEjector; import com.hbm.handler.HbmKeybinds; import com.hbm.handler.ImpactWorldHandler; @@ -682,6 +683,8 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityMinecartCrate.class, new RenderMinecart()); RenderingRegistry.registerEntityRenderingHandler(EntityMinecartNTM.class, new RenderNeoCart()); RenderingRegistry.registerEntityRenderingHandler(EntityMagnusCartus.class, new RenderMagnusCartus()); + //trains + RenderingRegistry.registerEntityRenderingHandler(SeatDummyEntity.class, new RenderEmpty()); RenderingRegistry.registerEntityRenderingHandler(TrainCargoTram.class, new RenderTrainCargoTram()); //items RenderingRegistry.registerEntityRenderingHandler(EntityMovingItem.class, new RenderMovingItem()); diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index c3efd654e..2af37c069 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -12,8 +12,6 @@ import org.lwjgl.opengl.GL11; import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockAshes; -import com.hbm.blocks.rail.IRailNTM; -import com.hbm.blocks.rail.IRailNTM.RailContext; import com.hbm.config.GeneralConfig; import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.mob.EntityHunterChopper; @@ -45,7 +43,6 @@ import com.hbm.lib.RefStrings; import com.hbm.packet.AuxButtonPacket; import com.hbm.packet.GunButtonPacket; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.PlayerInformPacket; import com.hbm.packet.SyncButtonsPacket; import com.hbm.render.anim.HbmAnimations; import com.hbm.render.anim.HbmAnimations.Animation; @@ -68,14 +65,12 @@ import com.hbm.tileentity.machine.TileEntityNukeFurnace; import com.hbm.util.I18nUtil; import com.hbm.util.ItemStackUtil; import com.hbm.util.LoggingUtil; -import com.hbm.util.ParticleUtil; import com.hbm.wiaj.GuiWorldInAJar; import com.hbm.wiaj.cannery.CanneryBase; import com.hbm.wiaj.cannery.Jars; import com.hbm.util.ArmorRegistry; import com.hbm.util.ArmorUtil; import com.hbm.util.ArmorRegistry.HazardClass; -import com.hbm.util.fauxpointtwelve.BlockPos; import com.mojang.authlib.minecraft.MinecraftProfileTexture.Type; import api.hbm.item.IButtonReceiver; @@ -90,12 +85,14 @@ import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.InputEvent.KeyInputEvent; import cpw.mods.fml.common.gameevent.TickEvent.ClientTickEvent; import cpw.mods.fml.common.gameevent.TickEvent.Phase; +import cpw.mods.fml.common.gameevent.TickEvent.WorldTickEvent; import cpw.mods.fml.relauncher.ReflectionHelper; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.client.Minecraft; import net.minecraft.client.entity.AbstractClientPlayer; +import net.minecraft.client.entity.EntityClientPlayerMP; import net.minecraft.client.gui.ScaledResolution; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.client.multiplayer.WorldClient; @@ -104,15 +101,15 @@ import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.entity.RenderPlayer; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.init.Items; import net.minecraft.inventory.Slot; import net.minecraft.item.Item; import net.minecraft.item.ItemArmor; import net.minecraft.item.ItemStack; +import net.minecraft.network.play.client.C03PacketPlayer; +import net.minecraft.network.play.client.C0CPacketInput; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; -import net.minecraft.util.ChatComponentText; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IIcon; import net.minecraft.util.MathHelper; @@ -135,7 +132,6 @@ import net.minecraftforge.client.event.RenderWorldLastEvent; import net.minecraftforge.client.event.TextureStitchEvent; import net.minecraftforge.client.event.sound.PlaySoundEvent17; import net.minecraftforge.common.ForgeHooks; -import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.event.entity.player.ItemTooltipEvent; public class ModEventHandlerClient { @@ -1166,4 +1162,21 @@ public class ModEventHandlerClient { GL11.glEnable(GL11.GL_LIGHTING); } } + + @SubscribeEvent + public void worldTick(WorldTickEvent event) { + + EntityPlayer player = Minecraft.getMinecraft().thePlayer; + + if(player != null && player.ridingEntity instanceof EntityRailCarRidable && player instanceof EntityClientPlayerMP) { + EntityRailCarRidable train = (EntityRailCarRidable) player.ridingEntity; + EntityClientPlayerMP client = (EntityClientPlayerMP) player; + + //mojank compensation, because apparently the "this makes the render work" method also determines the fucking input + if(!train.shouldRiderSit()) { + client.sendQueue.addToSendQueue(new C03PacketPlayer.C05PacketPlayerLook(client.rotationYaw, client.rotationPitch, client.onGround)); + client.sendQueue.addToSendQueue(new C0CPacketInput(client.moveStrafing, client.moveForward, client.movementInput.jump, client.movementInput.sneak)); + } + } + } } diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 302a3523c..64c2e280d 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -1279,6 +1279,7 @@ public class ResourceManager { public static final ResourceLocation cart_powder_tex = new ResourceLocation(RefStrings.MODID, "textures/blocks/block_gunpowder.png"); public static final ResourceLocation cart_semtex_side = new ResourceLocation(RefStrings.MODID, "textures/blocks/semtex_side.png"); public static final ResourceLocation cart_semtex_top = new ResourceLocation(RefStrings.MODID, "textures/blocks/semtex_bottom.png"); + public static final ResourceLocation train_tram = new ResourceLocation(RefStrings.MODID, "textures/models/trains/tram.png"); //ISBRHs public static final IModelCustom scaffold = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/scaffold.obj")); diff --git a/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTram.java b/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTram.java index 5603c1d94..36a19e415 100644 --- a/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTram.java +++ b/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTram.java @@ -23,7 +23,7 @@ public class RenderTrainCargoTram extends Render { MainRegistry.proxy.displayTooltip("Render Pitch: " + entity.rotationPitch, 667); GL11.glDisable(GL11.GL_CULL_FACE); - bindTexture(ResourceManager.universal); + bindTexture(ResourceManager.train_tram); ResourceManager.train_cargo_tram.renderAll(); GL11.glEnable(GL11.GL_CULL_FACE); @@ -32,6 +32,6 @@ public class RenderTrainCargoTram extends Render { @Override protected ResourceLocation getEntityTexture(Entity entity) { - return ResourceManager.universal; + return ResourceManager.train_tram; } } diff --git a/src/main/resources/assets/hbm/textures/models/trains/tram.png b/src/main/resources/assets/hbm/textures/models/trains/tram.png index d50856ed7af73e9de716b5354aa6f8255d84a95c..51683c6374206a1918939b0d9e0abd1958fa6def 100644 GIT binary patch delta 2662 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 RYk|cHgQu&X%Q~loCIExn8Os0w From fada68fb896aae710b420d98711cd28195727c34 Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 9 May 2023 14:12:48 +0200 Subject: [PATCH 023/432] come on shitkraken do the thing --- src/main/java/com/hbm/main/MainRegistry.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index b90f1903d..d2806ca03 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -255,7 +255,6 @@ public class MainRegistry { logger.info("Let us celebrate the fact that the logger finally works again!"); // Reroll Polaroid - if(generalOverride > 0 && generalOverride < 19) { polaroidID = generalOverride; } else { From 9d16e1fddf77acba445f2c314323e4b8b427ef26 Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 9 May 2023 14:25:10 +0200 Subject: [PATCH 024/432] shithub is down and GK keeps swallowing my commits --- src/main/java/com/hbm/main/NEIConfig.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/com/hbm/main/NEIConfig.java b/src/main/java/com/hbm/main/NEIConfig.java index 03221742b..a1b32bf65 100644 --- a/src/main/java/com/hbm/main/NEIConfig.java +++ b/src/main/java/com/hbm/main/NEIConfig.java @@ -73,8 +73,6 @@ public class NEIConfig implements IConfigureNEI { //fluids registerHandler(new FluidRecipeHandler()); - - //registerHandler(new ChunkyHandler()); //Some things are even beyond my control...or are they? API.hideItem(ItemBattery.getEmptyBattery(ModItems.memory)); From adc651eecc7d918ad3de1db739d9581ae01e1698 Mon Sep 17 00:00:00 2001 From: Bob Date: Tue, 9 May 2023 22:52:17 +0200 Subject: [PATCH 025/432] aesthetically prodigious train man --- .../entity/item/RenderTrainCargoTram.java | 13 +++++++++---- .../assets/hbm/models/vehicles/tram.obj | 8 ++++---- .../hbm/textures/models/trains/tram.png | Bin 2686 -> 4395 bytes 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTram.java b/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTram.java index 36a19e415..5612b2a93 100644 --- a/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTram.java +++ b/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTram.java @@ -16,11 +16,16 @@ public class RenderTrainCargoTram extends Render { GL11.glPushMatrix(); GL11.glTranslated(x, y, z); - GL11.glRotated( -entity.rotationYaw, 0, 1, 0); - GL11.glRotated(-entity.rotationPitch, 0, 0, 1); + float yaw = entity.rotationYaw; + float prevYaw = entity.prevRotationYaw; - MainRegistry.proxy.displayTooltip("Render Yaw: " + entity.rotationYaw, 666); - MainRegistry.proxy.displayTooltip("Render Pitch: " + entity.rotationPitch, 667); + if(yaw - prevYaw > 180) yaw -= 360; + if(prevYaw - yaw > 180) prevYaw -= 360; + + float yawInterp = prevYaw + (yaw - prevYaw) * interp - 720; + + GL11.glRotated(-yawInterp, 0, 1, 0); + GL11.glRotated(-entity.rotationPitch, 0, 0, 1); GL11.glDisable(GL11.GL_CULL_FACE); bindTexture(ResourceManager.train_tram); diff --git a/src/main/resources/assets/hbm/models/vehicles/tram.obj b/src/main/resources/assets/hbm/models/vehicles/tram.obj index 7ec0c8733..e8d11cf51 100644 --- a/src/main/resources/assets/hbm/models/vehicles/tram.obj +++ b/src/main/resources/assets/hbm/models/vehicles/tram.obj @@ -270,7 +270,7 @@ vt 0.777778 0.318182 vt 0.716049 0.500000 vt 0.716901 0.318679 vt 0.697531 0.500000 -vt 0.629630 0.534091 +vt 0.629630 0.522727 vt 0.629630 0.500000 vt 0.777778 0.522727 vt 0.716049 0.522727 @@ -278,7 +278,7 @@ vt 0.697531 0.318182 vt 0.796296 0.500000 vt 0.777778 0.500000 vt 0.864198 0.500000 -vt 0.796296 0.534091 +vt 0.796296 0.522727 vt 0.617284 0.454545 vt 0.604938 0.318182 vt 0.617284 0.318182 @@ -438,9 +438,9 @@ vt 0.222222 0.545455 vt 0.148148 0.772727 vt 0.271605 0.909091 vt 0.222222 0.545455 -vt 0.697531 0.534091 +vt 0.697531 0.522727 vt 0.796296 0.318182 -vt 0.864198 0.534091 +vt 0.864198 0.522727 vt 0.901235 0.477273 vt 0.901235 0.500000 vt 0.913580 0.613636 diff --git a/src/main/resources/assets/hbm/textures/models/trains/tram.png b/src/main/resources/assets/hbm/textures/models/trains/tram.png index 51683c6374206a1918939b0d9e0abd1958fa6def..58721d3169cdc745d701188a80a5bb51475d3641 100644 GIT binary patch delta 4385 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 b2^s$mWp7873x*KO00000NkvXXu0mjfl@)Nn delta 2662 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 From dcec2627173a05733ad4f7c248553c803d86af85 Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 10 May 2023 16:51:42 +0200 Subject: [PATCH 026/432] train bounding box, fixes --- src/main/java/com/hbm/entity/EntityMappings.java | 2 ++ .../java/com/hbm/entity/train/EntityRailCarBase.java | 10 ++++++++++ .../com/hbm/entity/train/EntityRailCarRidable.java | 1 + .../hbm/tileentity/machine/TileEntityMachinePress.java | 2 +- .../com/hbm/tileentity/machine/TileEntitySawmill.java | 2 +- 5 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index d5354b59a..cf96e2e28 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -14,6 +14,7 @@ import com.hbm.entity.mob.botprime.*; import com.hbm.entity.mob.siege.*; import com.hbm.entity.particle.*; import com.hbm.entity.projectile.*; +import com.hbm.entity.train.EntityRailCarBase.BoundingBoxDummyEntity; import com.hbm.entity.train.EntityRailCarRidable.SeatDummyEntity; import com.hbm.entity.train.TrainCargoTram; import com.hbm.main.MainRegistry; @@ -212,6 +213,7 @@ public class EntityMappings { addEntity(EntityMist.class, "entity_mist", 1000); addEntity(SeatDummyEntity.class, "entity_ntm_seat_dummy", 250, false); + addEntity(BoundingBoxDummyEntity.class, "entity_ntm_bounding_dummy", 250, false); addEntity(TrainCargoTram.class, "entity_ntm_cargo_tram", 250, false); addMob(EntityCreeperNuclear.class, "entity_mob_nuclear_creeper", 0x204131, 0x75CE00); diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java index 39a31c625..f146af9de 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java @@ -196,4 +196,14 @@ public abstract class EntityRailCarBase extends Entity { this.velocityY = this.motionY = mY; this.velocityZ = this.motionZ = mZ; } + + /** Invisible entities that make up the dynamic bounding structure of the train, moving as the train rotates. */ + public static class BoundingBoxDummyEntity extends Entity { + public BoundingBoxDummyEntity(World world) { this(world, 1F, 1F); } + public BoundingBoxDummyEntity(World world, float width, float height) { super(world); this.setSize(width, height);} + @Override protected void entityInit() { } + @Override protected void writeEntityToNBT(NBTTagCompound nbt) { } + @Override public boolean writeToNBTOptional(NBTTagCompound nbt) { return false; } + @Override public void readEntityFromNBT(NBTTagCompound nbt) { this.setDead(); } + } } diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java b/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java index 3d2f6805b..6b6bb08fc 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java @@ -120,6 +120,7 @@ public abstract class EntityRailCarRidable extends EntityRailCarCargo { public abstract Vec3[] getPassengerSeats(); + /** Dynamic seats generated when a player clicks near a seat-spot, moves and rotates with the train as one would expect. */ public static class SeatDummyEntity extends Entity { public SeatDummyEntity(World world) { super(world); this.setSize(0.5F, 0.1F);} @Override protected void entityInit() { } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePress.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePress.java index 599287701..1de7e31a5 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePress.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePress.java @@ -202,7 +202,7 @@ public class TileEntityMachinePress extends TileEntityMachineBase implements IGU @Override public int[] getAccessibleSlotsFromSide(int side) { - return side == 0 ? new int[] { 3 } : new int[] { 0, 1, 2 }; + return new int[] { 0, 1, 2, 3 }; } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntitySawmill.java b/src/main/java/com/hbm/tileentity/machine/TileEntitySawmill.java index e906bc154..f0b6a5500 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntitySawmill.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntitySawmill.java @@ -273,7 +273,7 @@ public class TileEntitySawmill extends TileEntityMachineBase { } if(names.contains("plankWood")) { - return new ItemStack(Items.stick, 4); + return new ItemStack(Items.stick, 6); } if(names.contains("treeSapling")) { From 3a4bf04aecf157a2dec5ed8bffda41179037d9e5 Mon Sep 17 00:00:00 2001 From: Boblet Date: Thu, 11 May 2023 10:41:46 +0200 Subject: [PATCH 027/432] crate drop bug, comparator output --- .../hbm/blocks/generic/BlockStorageCrate.java | 20 +++++++++++++------ .../java/com/hbm/lib/HbmChestContents.java | 14 +------------ src/main/java/com/hbm/lib/HbmWorldGen.java | 2 +- 3 files changed, 16 insertions(+), 20 deletions(-) diff --git a/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java b/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java index 8844789ea..4b5caa4c0 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java +++ b/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java @@ -10,12 +10,7 @@ import com.hbm.items.tool.ItemLock; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.tileentity.machine.TileEntityLockableBase; -import com.hbm.tileentity.machine.storage.TileEntityCrateBase; -import com.hbm.tileentity.machine.storage.TileEntityCrateDesh; -import com.hbm.tileentity.machine.storage.TileEntityCrateIron; -import com.hbm.tileentity.machine.storage.TileEntityCrateSteel; -import com.hbm.tileentity.machine.storage.TileEntityCrateTungsten; -import com.hbm.tileentity.machine.storage.TileEntitySafe; +import com.hbm.tileentity.machine.storage.*; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; @@ -27,6 +22,8 @@ import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.IInventory; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -140,6 +137,7 @@ public class BlockStorageCrate extends BlockContainer implements IBlockMulti { if(abyte.length > 6000) { player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.RED + "Warning: Container NBT exceeds 6kB, contents will be ejected!")); + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(this))); return world.setBlockToAir(x, y, z); } @@ -270,4 +268,14 @@ public class BlockStorageCrate extends BlockContainer implements IBlockMulti { public int getSubCount() { return 0; } + + @Override + public boolean hasComparatorInputOverride() { + return true; + } + + @Override + public int getComparatorInputOverride(World world, int x, int y, int z, int side) { + return Container.calcRedstoneFromInventory((IInventory) world.getTileEntity(x, y, z)); + } } diff --git a/src/main/java/com/hbm/lib/HbmChestContents.java b/src/main/java/com/hbm/lib/HbmChestContents.java index 185495790..8698ace37 100644 --- a/src/main/java/com/hbm/lib/HbmChestContents.java +++ b/src/main/java/com/hbm/lib/HbmChestContents.java @@ -136,12 +136,8 @@ public class HbmChestContents { new WeightedRandomChestContent(ModItems.nugget_pu240, 0, 3, 8, 5), new WeightedRandomChestContent(ModItems.nugget_neptunium, 0, 1, 4, 3), new WeightedRandomChestContent(ModItems.rod, BreedingRodType.U238.ordinal(), 1, 1, 3), - new WeightedRandomChestContent(ModItems.rod, BreedingRodType.NP237.ordinal(), 1, 1, 4), - new WeightedRandomChestContent(ModItems.rod, BreedingRodType.RGP.ordinal(), 1, 1, 3), new WeightedRandomChestContent(ModItems.rod_dual, BreedingRodType.U238.ordinal(), 1, 1, 3), - new WeightedRandomChestContent(ModItems.rod_dual, BreedingRodType.RGP.ordinal(), 1, 1, 3), new WeightedRandomChestContent(ModItems.rod_quad, BreedingRodType.U238.ordinal(), 1, 1, 3), - new WeightedRandomChestContent(ModItems.rod_quad, BreedingRodType.RGP.ordinal(), 1, 1, 3), new WeightedRandomChestContent(ModItems.bottle_quantum, 0, 1, 1, 1), new WeightedRandomChestContent(ModItems.gas_mask_m65, 60, 1, 1, 5), new WeightedRandomChestContent(ModItems.hazmat_kit, 0, 1, 1, 1), @@ -150,17 +146,14 @@ public class HbmChestContents { public static WeightedRandomChestContent[] nuclearFuel = new WeightedRandomChestContent[] { new WeightedRandomChestContent(ModItems.billet_uranium, 0, 1, 4, 4), - new WeightedRandomChestContent(ModItems.billet_pu_mix, 0, 1, 2, 4), new WeightedRandomChestContent(ModItems.billet_th232, 0, 1, 3, 3), new WeightedRandomChestContent(ModItems.billet_uranium_fuel, 0, 1, 3, 5), new WeightedRandomChestContent(ModItems.billet_mox_fuel, 0, 1, 3, 5), - new WeightedRandomChestContent(ModItems.billet_plutonium_fuel, 0, 1, 3, 4), new WeightedRandomChestContent(ModItems.billet_thorium_fuel, 0, 1, 3, 3), new WeightedRandomChestContent(ModItems.billet_ra226be, 0, 1, 2, 2), new WeightedRandomChestContent(ModItems.billet_beryllium, 0, 1, 1, 1), new WeightedRandomChestContent(ModItems.nugget_u233, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.nugget_u235, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.nugget_pu239, 0, 1, 1, 1), + new WeightedRandomChestContent(ModItems.nugget_uranium_fuel, 0, 1, 1, 1), new WeightedRandomChestContent(ModItems.rod_zirnox_empty, 0, 1, 3, 3), new WeightedRandomChestContent(ModItems.ingot_graphite, 0, 1, 4, 3), new WeightedRandomChestContent(ModItems.pile_rod_uranium, 0, 2, 5, 3), @@ -172,15 +165,10 @@ public class HbmChestContents { public static WeightedRandomChestContent[] nuclear = new WeightedRandomChestContent[] { new WeightedRandomChestContent(ModItems.nugget_u235, 0, 3, 12, 5), new WeightedRandomChestContent(ModItems.nugget_pu238, 0, 3, 12, 5), - new WeightedRandomChestContent(ModItems.nugget_pu239, 0, 3, 12, 5), new WeightedRandomChestContent(ModItems.rod, BreedingRodType.U235.ordinal(), 1, 1, 3), - new WeightedRandomChestContent(ModItems.rod, BreedingRodType.PU239.ordinal(), 1, 1, 3), new WeightedRandomChestContent(ModItems.rod_dual, BreedingRodType.U235.ordinal(), 1, 1, 3), - new WeightedRandomChestContent(ModItems.rod_dual, BreedingRodType.PU239.ordinal(), 1, 1, 3), new WeightedRandomChestContent(ModItems.rod_quad, BreedingRodType.U235.ordinal(), 1, 1, 3), - new WeightedRandomChestContent(ModItems.rod_quad, BreedingRodType.PU239.ordinal(), 1, 1, 3), new WeightedRandomChestContent(ModItems.rod_zirnox, EnumZirnoxType.URANIUM_FUEL.ordinal(), 1, 1, 4), - new WeightedRandomChestContent(ModItems.rod_zirnox, EnumZirnoxType.PLUTONIUM_FUEL.ordinal(), 1, 1, 4), new WeightedRandomChestContent(ModItems.rod_zirnox, EnumZirnoxType.MOX_FUEL.ordinal(), 1, 1, 4), new WeightedRandomChestContent(ModItems.rod_zirnox, EnumZirnoxType.LITHIUM.ordinal(), 1, 1, 3), new WeightedRandomChestContent(ModItems.rod_zirnox, EnumZirnoxType.THORIUM_FUEL.ordinal(), 1, 1, 3), diff --git a/src/main/java/com/hbm/lib/HbmWorldGen.java b/src/main/java/com/hbm/lib/HbmWorldGen.java index 6d9f43fb0..58f772881 100644 --- a/src/main/java/com/hbm/lib/HbmWorldGen.java +++ b/src/main/java/com/hbm/lib/HbmWorldGen.java @@ -129,7 +129,7 @@ public class HbmWorldGen implements IWorldGenerator { DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.copperSpawn * 3, 6, 30, 10, ModBlocks.ore_gneiss_copper, ModBlocks.stone_gneiss); DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.asbestosSpawn * 3, 6, 30, 10, ModBlocks.ore_gneiss_asbestos, ModBlocks.stone_gneiss); DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.lithiumSpawn, 6, 30, 10, ModBlocks.ore_gneiss_lithium, ModBlocks.stone_gneiss); - DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.rareSpawn, 6, 30, 10, ModBlocks.ore_gneiss_asbestos, ModBlocks.stone_gneiss); + DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.rareSpawn, 6, 30, 10, ModBlocks.ore_gneiss_rare, ModBlocks.stone_gneiss); DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.gassshaleSpawn * 3, 10, 30, 10, ModBlocks.ore_gneiss_gas, ModBlocks.stone_gneiss); DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.uraniumSpawn, 5, 5, 20, ModBlocks.ore_uranium); From a397490424ddc93f36c70f6004ee6805a44126f0 Mon Sep 17 00:00:00 2001 From: Boblet Date: Thu, 11 May 2023 16:55:07 +0200 Subject: [PATCH 028/432] power net tracker, fensu fix, dueterium tower rebalance --- src/main/java/api/hbm/energy/IPowerNet.java | 2 + src/main/java/api/hbm/energy/PowerNet.java | 24 +++++- .../java/com/hbm/lib/HbmChestContents.java | 1 + .../machine/TileEntityDeuteriumExtractor.java | 77 +------------------ .../machine/TileEntityDeuteriumTower.java | 52 +------------ .../storage/TileEntityMachineBattery.java | 22 ++++++ .../storage/TileEntityMachineFENSU.java | 30 +------- 7 files changed, 57 insertions(+), 151 deletions(-) diff --git a/src/main/java/api/hbm/energy/IPowerNet.java b/src/main/java/api/hbm/energy/IPowerNet.java index 4b82df2e9..eb9848226 100644 --- a/src/main/java/api/hbm/energy/IPowerNet.java +++ b/src/main/java/api/hbm/energy/IPowerNet.java @@ -1,5 +1,6 @@ package api.hbm.energy; +import java.math.BigInteger; import java.util.List; /** @@ -32,4 +33,5 @@ public interface IPowerNet { public List getSubscribers(); public long transferPower(long power); + public BigInteger getTotalTransfer(); } diff --git a/src/main/java/api/hbm/energy/PowerNet.java b/src/main/java/api/hbm/energy/PowerNet.java index f9025201b..172e22dde 100644 --- a/src/main/java/api/hbm/energy/PowerNet.java +++ b/src/main/java/api/hbm/energy/PowerNet.java @@ -1,5 +1,6 @@ package api.hbm.energy; +import java.math.BigInteger; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -20,6 +21,9 @@ public class PowerNet implements IPowerNet { private HashMap links = new HashMap(); private HashMap proxies = new HashMap(); private List subscribers = new ArrayList(); + + public static List trackingInstances = null; + protected BigInteger totalTransfer = BigInteger.ZERO; @Override public void joinNetworks(IPowerNet network) { @@ -119,6 +123,11 @@ public class PowerNet implements IPowerNet { public boolean isValid() { return this.valid; } + + @Override + public BigInteger getTotalTransfer() { + return this.totalTransfer; + } public long lastCleanup = System.currentTimeMillis(); @@ -129,7 +138,9 @@ public class PowerNet implements IPowerNet { cleanup(this.subscribers); lastCleanup = System.currentTimeMillis(); }*/ - + + trackingInstances = new ArrayList(); + trackingInstances.add(this); return fairTransfer(this.subscribers, power); } @@ -149,6 +160,8 @@ public class PowerNet implements IPowerNet { ConnectionPriority[] priorities = new ConnectionPriority[] {ConnectionPriority.HIGH, ConnectionPriority.NORMAL, ConnectionPriority.LOW}; + long totalTransfer = 0; + for(ConnectionPriority p : priorities) { List subList = new ArrayList(); @@ -186,6 +199,15 @@ public class PowerNet implements IPowerNet { } power -= totalGiven; + totalTransfer += totalGiven; + } + + if(trackingInstances != null) { + + for(int i = 0; i < trackingInstances.size(); i++) { + PowerNet net = trackingInstances.get(i); + net.totalTransfer = net.totalTransfer.add(BigInteger.valueOf(totalTransfer)); + } } return power; diff --git a/src/main/java/com/hbm/lib/HbmChestContents.java b/src/main/java/com/hbm/lib/HbmChestContents.java index 8698ace37..343a46e75 100644 --- a/src/main/java/com/hbm/lib/HbmChestContents.java +++ b/src/main/java/com/hbm/lib/HbmChestContents.java @@ -165,6 +165,7 @@ public class HbmChestContents { public static WeightedRandomChestContent[] nuclear = new WeightedRandomChestContent[] { new WeightedRandomChestContent(ModItems.nugget_u235, 0, 3, 12, 5), new WeightedRandomChestContent(ModItems.nugget_pu238, 0, 3, 12, 5), + new WeightedRandomChestContent(ModItems.nugget_ra226, 0, 3, 6, 5), new WeightedRandomChestContent(ModItems.rod, BreedingRodType.U235.ordinal(), 1, 1, 3), new WeightedRandomChestContent(ModItems.rod_dual, BreedingRodType.U235.ordinal(), 1, 1, 3), new WeightedRandomChestContent(ModItems.rod_quad, BreedingRodType.U235.ordinal(), 1, 1, 3), diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumExtractor.java b/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumExtractor.java index 6258575a7..1996b4bec 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumExtractor.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumExtractor.java @@ -1,14 +1,7 @@ package com.hbm.tileentity.machine; -import java.util.ArrayList; -import java.util.List; - -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; -import com.hbm.lib.Library; import com.hbm.tileentity.TileEntityMachineBase; import api.hbm.energy.IEnergyUser; @@ -16,17 +9,16 @@ import api.hbm.fluid.IFluidStandardTransceiver; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityDeuteriumExtractor extends TileEntityMachineBase implements IFluidAcceptor, IFluidSource, IEnergyUser, IFluidStandardTransceiver { +public class TileEntityDeuteriumExtractor extends TileEntityMachineBase implements IEnergyUser, IFluidStandardTransceiver { public long power = 0; public FluidTank[] tanks; - public List list = new ArrayList(); public TileEntityDeuteriumExtractor() { super(0); tanks = new FluidTank[2]; - tanks[0] = new FluidTank(Fluids.WATER, 1000, 0); - tanks[1] = new FluidTank(Fluids.HEAVYWATER, 100, 1); + tanks[0] = new FluidTank(Fluids.WATER, 1000); + tanks[1] = new FluidTank(Fluids.HEAVYWATER, 100); } @Override @@ -52,7 +44,6 @@ public class TileEntityDeuteriumExtractor extends TileEntityMachineBase implemen this.subscribeToAllAround(tanks[0].getTankType(), this); this.sendFluidToAll(tanks[1].getTankType(), this); - fillFluidInit(tanks[1].getTankType()); NBTTagCompound data = new NBTTagCompound(); data.setLong("power", power); @@ -99,66 +90,6 @@ public class TileEntityDeuteriumExtractor extends TileEntityMachineBase implemen tanks[1].writeToNBT(nbt, "heavyWater"); } - - @Override - public void fillFluidInit(FluidType type) { - - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) - fillFluid(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - return worldObj.getTotalWorldTime() % 20 < 10; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type == tanks[0].getTankType()) - tanks[0].setFill(i); - else if(type == tanks[1].getTankType()) - tanks[1].setFill(i); - } - - @Override - public int getFluidFill(FluidType type) { - if(type == tanks[0].getTankType()) - return tanks[0].getFill(); - else if(type == tanks[1].getTankType()) - return tanks[1].getFill(); - - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - if(type == tanks[0].getTankType()) - return tanks[0].getMaxFill(); - - return 0; - } - - @Override - public void setFillForSync(int fill, int index) { } - - @Override - public void setTypeForSync(FluidType type, int index) { } - - @Override - public List getFluidList(FluidType type) { - return list; - } - - @Override - public void clearFluidList(FluidType type) { - list.clear(); - } - @Override public void setPower(long i) { power = i; @@ -171,7 +102,7 @@ public class TileEntityDeuteriumExtractor extends TileEntityMachineBase implemen @Override public long getMaxPower() { - return 100000; + return 10_000; } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumTower.java b/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumTower.java index 3afa73370..8cc2e93c9 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumTower.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumTower.java @@ -20,56 +20,6 @@ public class TileEntityDeuteriumTower extends TileEntityDeuteriumExtractor { tanks[0] = new FluidTank(Fluids.WATER, 50000, 0); tanks[1] = new FluidTank(Fluids.HEAVYWATER, 5000, 1); } - - public void fillFluidInit(FluidType type) { - - int offsetX = 0; - int offsetZ = 0; - - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); - ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN); - offsetX = -dir.offsetX; - offsetZ = -rot.offsetZ; - - if(dir == ForgeDirection.NORTH || dir == ForgeDirection.SOUTH) { - offsetX = rot.offsetX; - offsetZ = dir.offsetZ; - } - - /*fillFluid(this.xCoord + rot.offsetX * 2, this.yCoord, this.zCoord - dir.offsetZ * 1, getTact(), type); - fillFluid(this.xCoord + rot.offsetX * 2, this.yCoord, this.zCoord - dir.offsetZ * 0, getTact(), type); - fillFluid(this.xCoord + rot.offsetX * 1, this.yCoord, this.zCoord - dir.offsetZ * 2, getTact(), type); - fillFluid(this.xCoord + rot.offsetX * 0, this.yCoord, this.zCoord - dir.offsetZ * 2, getTact(), type); - fillFluid(this.xCoord + rot.offsetX * 1, this.yCoord, this.zCoord + dir.offsetZ * 1, getTact(), type); - fillFluid(this.xCoord + rot.offsetX * 0, this.yCoord, this.zCoord + dir.offsetZ * 1, getTact(), type); - fillFluid(this.xCoord - rot.offsetX * 1, this.yCoord, this.zCoord + dir.offsetZ * 0, getTact(), type); - fillFluid(this.xCoord - rot.offsetX * 1, this.yCoord, this.zCoord - dir.offsetZ * 1, getTact(), type);*/ - - /*worldObj.setBlock(this.xCoord + rot.offsetX * 2, this.yCoord, this.zCoord - dir.offsetZ * 1, Blocks.dirt); - worldObj.setBlock(this.xCoord + rot.offsetX * 2, this.yCoord, this.zCoord - dir.offsetZ * 0, Blocks.dirt); - worldObj.setBlock(this.xCoord + rot.offsetX * 1, this.yCoord, this.zCoord - dir.offsetZ * 2, Blocks.dirt); - worldObj.setBlock(this.xCoord + rot.offsetX * 0, this.yCoord, this.zCoord - dir.offsetZ * 2, Blocks.dirt); - worldObj.setBlock(this.xCoord + rot.offsetX * 1, this.yCoord, this.zCoord + dir.offsetZ * 1, Blocks.dirt); - worldObj.setBlock(this.xCoord + rot.offsetX * 0, this.yCoord, this.zCoord + dir.offsetZ * 1, Blocks.dirt); - worldObj.setBlock(this.xCoord - rot.offsetX * 1, this.yCoord, this.zCoord + dir.offsetZ * 0, Blocks.dirt); - worldObj.setBlock(this.xCoord - rot.offsetX * 1, this.yCoord, this.zCoord - dir.offsetZ * 1, Blocks.dirt);*/ - - /* I'm never doing an even sided fluid machine ever again - * - * this was pain - * - * - pheo */ - - - fillFluid(this.xCoord + offsetX * 2, this.yCoord, this.zCoord - offsetZ * 1, getTact(), type); - fillFluid(this.xCoord + offsetX * 2, this.yCoord, this.zCoord - offsetZ * 0, getTact(), type); - fillFluid(this.xCoord + offsetX * 1, this.yCoord, this.zCoord - offsetZ * 2, getTact(), type); - fillFluid(this.xCoord + offsetX * 0, this.yCoord, this.zCoord - offsetZ * 2, getTact(), type); - fillFluid(this.xCoord + offsetX * 1, this.yCoord, this.zCoord + offsetZ * 1, getTact(), type); - fillFluid(this.xCoord + offsetX * 0, this.yCoord, this.zCoord + offsetZ * 1, getTact(), type); - fillFluid(this.xCoord - offsetX * 1, this.yCoord, this.zCoord + offsetZ * 0, getTact(), type); - fillFluid(this.xCoord - offsetX * 1, this.yCoord, this.zCoord - offsetZ * 1, getTact(), type); - } protected void updateConnections() { @@ -139,6 +89,6 @@ public class TileEntityDeuteriumTower extends TileEntityDeuteriumExtractor { @Override public long getMaxPower() { - return 1000000; + return 100_000; } } \ No newline at end of file diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java index a0463756c..594fec515 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java @@ -227,6 +227,16 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I if(this.power > 0 && (mode == mode_buffer || mode == mode_output)) { List con = new ArrayList(); con.addAll(consumers); + + if(PowerNet.trackingInstances == null) { + PowerNet.trackingInstances = new ArrayList(); + } + PowerNet.trackingInstances.clear(); + + nets.forEach(x -> { + if(x instanceof PowerNet) PowerNet.trackingInstances.add((PowerNet) x); + }); + this.power = PowerNet.fairTransfer(con, this.power); } @@ -256,9 +266,17 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I if(mode == mode_buffer || mode == mode_output) { if(te instanceof IEnergyConnector) { IEnergyConnector con = (IEnergyConnector) te; + + long max = getMaxTransfer(); + long toTransfer = Math.min(max, this.power); + long remainder = this.power - toTransfer; + this.power = toTransfer; + long oldPower = this.power; long transfer = this.power - con.transferPower(this.power); this.power = oldPower - transfer; + + power += remainder; } } @@ -278,6 +296,10 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I } } } + + public long getMaxTransfer() { + return this.getMaxPower(); + } @Override public void networkUnpack(NBTTagCompound nbt) { diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFENSU.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFENSU.java index 541e4c9ad..46770f2a6 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFENSU.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFENSU.java @@ -1,12 +1,9 @@ package com.hbm.tileentity.machine.storage; -import com.hbm.lib.Library; - import api.hbm.energy.IEnergyConductor; import api.hbm.energy.IEnergyConnector; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.util.ForgeDirection; @@ -20,21 +17,9 @@ public class TileEntityMachineFENSU extends TileEntityMachineBattery { @Override public void updateEntity() { + super.updateEntity(); - if(!worldObj.isRemote) { - - this.transmitPower(); - - power = Library.chargeTEFromItems(slots, 0, power, getMaxPower()); - power = Library.chargeItemsFromTE(slots, 1, power, getMaxPower()); - - NBTTagCompound nbt = new NBTTagCompound(); - nbt.setLong("power", power); - nbt.setShort("redLow", redLow); - nbt.setShort("redHigh", redHigh); - nbt.setByte("priority", (byte) this.priority.ordinal()); - this.networkPack(nbt, 250); - } else { + if(worldObj.isRemote) { this.prevRotation = this.rotation; this.rotation += this.getSpeed(); @@ -42,16 +27,10 @@ public class TileEntityMachineFENSU extends TileEntityMachineBattery { rotation -= 360; prevRotation -= 360; } - - for(int i = 1; i < this.log.length; i++) { - this.log[i - 1] = this.log[i]; - } - - this.log[19] = this.power; } } - protected void transmitPower() { + @Deprecated protected void transmitPower() { short mode = (short) this.getRelevantMode(); @@ -127,8 +106,7 @@ public class TileEntityMachineFENSU extends TileEntityMachineBattery { @Override @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { + public double getMaxRenderDistanceSquared() { return 65536.0D; } } From c7f28e8853b7bdb8cab74d2d6279260125cadd8c Mon Sep 17 00:00:00 2001 From: Bob Date: Thu, 11 May 2023 23:37:31 +0200 Subject: [PATCH 029/432] compressor model --- .../assets/hbm/models/machines/compressor.obj | 2321 +++++++++++++++++ .../textures/models/machines/compressor.png | Bin 0 -> 2131 bytes 2 files changed, 2321 insertions(+) create mode 100644 src/main/resources/assets/hbm/models/machines/compressor.obj create mode 100644 src/main/resources/assets/hbm/textures/models/machines/compressor.png diff --git a/src/main/resources/assets/hbm/models/machines/compressor.obj b/src/main/resources/assets/hbm/models/machines/compressor.obj new file mode 100644 index 000000000..ebafde92e --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/compressor.obj @@ -0,0 +1,2321 @@ +# Blender v2.79 (sub 0) OBJ File: 'compressor.blend' +# www.blender.org +o Pump +v -0.250000 7.000000 -1.500000 +v -0.250000 7.000000 -0.500000 +v 0.250000 7.000000 -0.500000 +v 0.250000 7.000000 -1.500000 +v -0.250000 7.000000 0.500000 +v -0.250000 7.000000 1.500000 +v 0.250000 7.000000 1.500000 +v 0.250000 7.000000 0.500000 +v 0.750000 7.000000 -1.250000 +v 0.750000 7.000000 1.250000 +v -0.750000 7.000000 -1.250000 +v -0.750000 7.000000 1.250000 +v -0.250000 8.000000 -1.500000 +v -0.250000 8.000000 -0.500000 +v 0.250000 8.000000 -0.500000 +v 0.250000 8.000000 -1.500000 +v -0.250000 8.000000 0.500000 +v -0.250000 8.000000 1.500000 +v 0.250000 8.000000 1.500000 +v 0.250000 8.000000 0.500000 +v 0.750000 8.000000 -1.250000 +v 0.750000 8.000000 1.250000 +v -0.750000 8.000000 -1.250000 +v -0.750000 8.000000 1.250000 +v 0.000000 4.000000 -0.500000 +v -0.353553 4.000000 -0.353553 +v -0.500000 4.000000 0.000000 +v -0.353553 4.000000 0.353553 +v 0.000000 4.000000 0.500000 +v 0.353553 4.000000 0.353553 +v 0.500000 4.000000 -0.000000 +v 0.353553 4.000000 -0.353553 +v 0.000000 8.500000 -0.500000 +v -0.353553 8.500000 -0.353553 +v -0.500000 8.500000 0.000000 +v -0.353553 8.500000 0.353553 +v 0.000000 8.500000 0.500000 +v 0.353553 8.500000 0.353553 +v 0.500000 8.500000 -0.000000 +v 0.353553 8.500000 -0.353553 +vt 0.136364 0.037037 +vt 0.196970 0.074074 +vt 0.136364 0.074074 +vt 0.242424 0.111111 +vt 0.090909 0.111111 +vt 0.196970 0.037037 +vt 0.090909 0.000000 +vt 0.196970 0.222222 +vt 0.136364 0.259259 +vt 0.136364 0.222222 +vt 0.090909 0.185185 +vt 0.196970 0.259259 +vt 0.242424 0.296296 +vt 0.090909 0.296296 +vt 0.090909 0.370370 +vt 0.242424 0.370370 +vt 0.257576 0.259259 +vt 0.257576 0.222222 +vt 0.000000 0.370370 +vt 0.060606 0.296296 +vt 0.060606 0.370370 +vt 0.060606 0.185185 +vt 0.060606 0.111111 +vt 0.333333 0.111111 +vt 0.272727 0.185185 +vt 0.272727 0.111111 +vt 0.242424 0.185185 +vt 0.000000 0.185185 +vt 0.000000 0.111111 +vt 0.272727 0.296296 +vt 0.272727 0.370370 +vt 0.333333 0.296296 +vt 0.333333 0.370370 +vt 0.075758 0.222222 +vt 0.075758 0.259259 +vt 0.636324 0.962963 +vt 0.606061 0.999951 +vt 0.575798 0.962963 +vt 0.075758 0.074074 +vt 0.257576 0.074074 +vt 0.075758 0.037037 +vt 0.242424 -0.000000 +vt 0.257576 0.037037 +vt 0.075758 0.222222 +vt 0.257576 0.222222 +vt 0.075758 0.259259 +vt 0.257576 0.259259 +vt -0.000000 0.296296 +vt 0.333333 0.185185 +vt 0.627460 0.989117 +vt 0.584662 0.989117 +vt 0.584662 0.936809 +vt 0.606061 0.925975 +vt 0.627460 0.936809 +vt 0.689394 0.592593 +vt 0.666667 0.925926 +vt 0.666667 0.592593 +vt 0.643939 0.592593 +vt 0.621212 0.925926 +vt 0.621212 0.592593 +vt 0.598485 0.592593 +vt 0.575758 0.925926 +vt 0.575758 0.592593 +vt 0.734848 0.592593 +vt 0.712121 0.925926 +vt 0.712121 0.592593 +vt 0.689394 0.925926 +vt 0.643939 0.925926 +vt 0.598485 0.925926 +vt 0.757576 0.592593 +vt 0.734848 0.925926 +vt 0.757576 0.925926 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn -0.4472 0.0000 -0.8944 +vn 0.4472 0.0000 -0.8944 +vn -0.4472 0.0000 0.8944 +vn 0.4472 0.0000 0.8944 +vn 0.0000 0.0000 -1.0000 +vn 0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 0.7071 +vn -0.7071 0.0000 -0.7071 +s off +f 3/1/1 5/2/1 2/3/1 +f 5/2/1 12/4/1 11/5/1 +f 8/6/1 3/1/1 9/7/1 +f 17/8/2 15/9/2 14/10/2 +f 17/8/2 14/10/2 23/11/2 +f 20/12/2 22/13/2 21/14/2 +f 9/15/3 22/13/3 10/16/3 +f 8/17/4 17/8/4 5/18/4 +f 3/19/5 16/20/5 4/21/5 +f 11/5/6 13/22/6 1/23/6 +f 4/21/7 21/14/7 9/15/7 +f 5/24/3 18/25/3 6/26/3 +f 6/26/8 24/27/8 12/4/8 +f 1/23/3 14/28/3 2/29/3 +f 10/16/9 19/30/9 7/31/9 +f 7/31/5 20/32/5 8/33/5 +f 12/4/5 23/11/5 11/5/5 +f 2/34/10 15/9/10 3/35/10 +f 33/36/2 35/37/2 37/38/2 +f 3/1/1 8/6/1 5/2/1 +f 11/5/1 1/39/1 2/3/1 +f 5/2/1 6/40/1 12/4/1 +f 11/5/1 2/3/1 5/2/1 +f 3/1/1 4/41/1 9/7/1 +f 9/7/1 10/42/1 8/6/1 +f 10/42/1 7/43/1 8/6/1 +f 17/8/2 20/12/2 15/9/2 +f 14/10/2 13/44/2 23/11/2 +f 23/11/2 24/27/2 17/8/2 +f 24/27/2 18/45/2 17/8/2 +f 21/14/2 16/46/2 15/9/2 +f 20/12/2 19/47/2 22/13/2 +f 21/14/2 15/9/2 20/12/2 +f 9/15/3 21/14/3 22/13/3 +f 8/17/4 20/12/4 17/8/4 +f 3/19/5 15/48/5 16/20/5 +f 11/5/6 23/11/6 13/22/6 +f 4/21/7 16/20/7 21/14/7 +f 5/24/3 17/49/3 18/25/3 +f 6/26/8 18/25/8 24/27/8 +f 1/23/3 13/22/3 14/28/3 +f 10/16/9 22/13/9 19/30/9 +f 7/31/5 19/30/5 20/32/5 +f 12/4/5 24/27/5 23/11/5 +f 2/34/10 14/10/10 15/9/10 +f 33/36/2 34/50/2 35/37/2 +f 35/37/2 36/51/2 37/38/2 +f 37/38/2 38/52/2 39/53/2 +f 39/53/2 40/54/2 37/38/2 +f 40/54/2 33/36/2 37/38/2 +s 1 +f 32/55/11 39/56/3 31/57/3 +f 30/58/12 37/59/4 29/60/4 +f 28/61/13 35/62/5 27/63/5 +f 26/64/14 33/65/10 25/66/10 +f 25/66/10 40/67/11 32/55/11 +f 31/57/3 38/68/12 30/58/12 +f 29/60/4 36/69/13 28/61/13 +f 27/70/5 34/71/14 26/64/14 +f 32/55/11 40/67/11 39/56/3 +f 30/58/12 38/68/12 37/59/4 +f 28/61/13 36/69/13 35/62/5 +f 26/64/14 34/71/14 33/65/10 +f 25/66/10 33/65/10 40/67/11 +f 31/57/3 39/56/3 38/68/12 +f 29/60/4 37/59/4 36/69/13 +f 27/70/5 35/72/5 34/71/14 +o Fan +v 2.250000 1.500000 -0.125000 +v 2.250000 1.588388 -0.088388 +v 2.250000 1.625000 0.000000 +v 2.250000 1.588388 0.088388 +v 2.250000 1.500000 0.125000 +v 2.250000 1.411612 0.088388 +v 2.250000 1.375000 -0.000000 +v 2.250000 1.411612 -0.088388 +v 2.375000 1.500000 -0.125000 +v 2.375000 1.588388 -0.088388 +v 2.375000 1.625000 0.000000 +v 2.375000 1.588388 0.088388 +v 2.375000 1.500000 0.125000 +v 2.375000 1.411612 0.088388 +v 2.375000 1.375000 -0.000000 +v 2.375000 1.411612 -0.088388 +v 2.410491 1.821781 0.562102 +v 2.357664 1.459947 0.040054 +v 2.252009 2.062102 0.321781 +v 2.304836 1.540053 -0.040054 +v 2.410491 0.937898 0.321781 +v 2.357664 1.459947 -0.040053 +v 2.252009 1.178219 0.562102 +v 2.304836 1.540053 0.040054 +v 2.410491 1.178219 -0.562102 +v 2.357664 1.540053 -0.040054 +v 2.252009 0.937898 -0.321781 +v 2.304836 1.459947 0.040054 +v 2.410491 2.062103 -0.321781 +v 2.357664 1.540053 0.040054 +v 2.252009 1.821781 -0.562102 +v 2.304836 1.459947 -0.040054 +vt 0.166798 0.787037 +vt 0.174242 0.777939 +vt 0.181686 0.787037 +vt 0.219697 0.814815 +vt 0.181818 0.796296 +vt 0.219697 0.787037 +vt 0.181818 0.805556 +vt 0.219697 0.787037 +vt 0.219697 0.814815 +vt 0.181818 0.805556 +vt 0.219697 0.787037 +vt 0.219697 0.814815 +vt 0.181818 0.805556 +vt 0.219697 0.787037 +vt 0.219697 0.814815 +vt 0.179506 0.793470 +vt 0.174242 0.796135 +vt 0.168979 0.793470 +vt 0.168979 0.780604 +vt 0.179506 0.780604 +vt 0.181818 0.805556 +vt 0.181818 0.796296 +vt 0.181818 0.796296 +vt 0.181818 0.796296 +vt 0.212121 0.777778 +vt 0.204545 0.787037 +vt 0.204545 0.777778 +vt 0.189394 0.777778 +vt 0.181818 0.787037 +vt 0.181818 0.777778 +vt 0.234848 0.777778 +vt 0.227273 0.787037 +vt 0.227273 0.777778 +vt 0.219697 0.777778 +vt 0.212121 0.787037 +vt 0.196970 0.787037 +vt 0.196970 0.777778 +vt 0.189394 0.787037 +vt 0.242424 0.777778 +vt 0.234848 0.787037 +vt 0.219697 0.787037 +vt 0.242424 0.787037 +vn 1.0000 0.0000 0.0000 +vn 0.9063 0.2988 -0.2988 +vn 0.9063 0.2988 0.2988 +vn 0.9063 -0.2988 0.2988 +vn 0.9063 -0.2988 -0.2988 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.7071 0.7071 +vn 0.0000 0.0000 -1.0000 +s off +f 53/73/15 55/74/15 49/75/15 +f 57/76/16 60/77/16 59/78/16 +f 62/79/17 63/80/17 61/81/17 +f 66/82/18 67/83/18 65/84/18 +f 70/85/19 71/86/19 69/87/19 +f 49/75/15 50/88/15 51/89/15 +f 51/89/15 52/90/15 53/73/15 +f 53/73/15 54/91/15 55/74/15 +f 55/74/15 56/92/15 49/75/15 +f 49/75/15 51/89/15 53/73/15 +f 57/76/16 58/93/16 60/77/16 +f 62/79/17 64/94/17 63/80/17 +f 66/82/18 68/95/18 67/83/18 +f 70/85/19 72/96/19 71/86/19 +s 1 +f 43/97/20 50/98/21 42/99/21 +f 48/100/22 55/101/23 47/102/23 +f 46/103/24 53/104/25 45/105/25 +f 44/106/26 51/107/20 43/97/20 +f 42/99/21 49/108/27 41/109/27 +f 41/109/27 56/110/22 48/100/22 +f 47/111/23 54/112/24 46/103/24 +f 45/105/25 52/113/26 44/106/26 +f 43/97/20 51/107/20 50/98/21 +f 48/100/22 56/110/22 55/101/23 +f 46/103/24 54/112/24 53/104/25 +f 44/106/26 52/113/26 51/107/20 +f 42/99/21 50/98/21 49/108/27 +f 41/109/27 49/108/27 56/110/22 +f 47/111/23 55/114/23 54/112/24 +f 45/105/25 53/104/25 52/113/26 +o Compressor +v -1.500000 0.000000 1.500000 +v 2.000000 0.000000 1.500000 +v -1.500000 0.000000 -1.500000 +v 2.000000 0.000000 -1.500000 +v -1.500000 1.000000 -1.500000 +v -1.500000 1.000000 1.500000 +v 1.000000 1.000000 1.500000 +v 1.000000 1.000000 -1.500000 +v 1.000000 3.000000 1.500000 +v 2.000000 3.000000 1.500000 +v 2.000000 3.000000 -1.500000 +v 1.000000 3.000000 -1.500000 +v -0.250000 1.000000 -1.000000 +v 0.250000 1.000000 -1.000000 +v -0.250000 1.000000 -1.500000 +v 0.250000 1.000000 -1.500000 +v -0.250000 8.500000 -1.500000 +v -0.250000 8.500000 -1.000000 +v 0.250000 8.500000 -1.000000 +v 0.250000 8.500000 -1.500000 +v -0.250000 1.000000 1.500000 +v 0.250000 1.000000 1.500000 +v -0.250000 1.000000 1.000000 +v 0.250000 1.000000 1.000000 +v -0.250000 8.500000 1.000000 +v -0.250000 8.500000 1.500000 +v 0.250000 8.500000 1.500000 +v 0.250000 8.500000 1.000000 +v 0.000000 1.000000 -1.250000 +v -0.883883 1.000000 -0.883883 +v -1.250000 1.000000 0.000000 +v -0.883883 1.000000 0.883883 +v 0.000000 1.000000 1.250000 +v 0.883884 1.000000 0.883883 +v 1.250000 1.000000 -0.000000 +v 0.883884 1.000000 -0.883883 +v 0.000000 3.500000 -1.250000 +v -0.883883 3.500000 -0.883883 +v -1.250000 3.500000 0.000000 +v -0.883883 3.500000 0.883883 +v 0.000000 3.500000 1.250000 +v 0.883884 3.500000 0.883883 +v 1.250000 3.500000 -0.000000 +v 0.883884 3.500000 -0.883883 +v 0.000000 4.000000 -1.000000 +v -0.707107 4.000000 -0.707107 +v -1.000000 4.000000 0.000000 +v -0.707107 4.000000 0.707107 +v 0.000000 4.000000 1.000000 +v 0.707107 4.000000 0.707107 +v 1.000000 4.000000 -0.000000 +v 0.707107 4.000000 -0.707107 +v 1.000000 2.875000 -1.187500 +v 1.000000 2.875000 -1.312500 +v 1.000000 2.625000 -1.187500 +v 1.000000 2.625000 -1.312500 +v -0.750000 2.875000 -1.187500 +v -0.750000 2.875000 -1.312500 +v -0.562500 2.625000 -1.187500 +v -0.562500 2.625000 -1.312500 +v -1.250000 1.000000 -1.187500 +v -1.250000 1.000000 -1.312500 +v -1.500000 1.000000 -1.187500 +v -1.500000 1.000000 -1.312500 +v 1.000000 2.875000 1.312500 +v 1.000000 2.875000 1.187500 +v 1.000000 2.625000 1.312500 +v 1.000000 2.625000 1.187500 +v -0.750000 2.875000 1.312500 +v -0.750000 2.875000 1.187500 +v -0.562500 2.625000 1.312500 +v -0.562500 2.625000 1.187500 +v -1.250000 1.000000 1.312500 +v -1.250000 1.000000 1.187500 +v -1.500000 1.000000 1.312500 +v -1.500000 1.000000 1.187500 +v 2.000000 2.500000 1.000000 +v 2.000000 0.500000 1.000000 +v 2.000000 2.500000 -1.000000 +v 2.000000 0.500000 -1.000000 +v 2.250000 2.500000 -1.000000 +v 2.250000 2.500000 1.000000 +v 2.250000 0.500000 1.000000 +v 2.250000 0.500000 -1.000000 +v 2.250000 1.500000 -0.750000 +v 2.250000 2.030330 -0.530330 +v 2.250000 2.250000 0.000000 +v 2.250000 2.030330 0.530330 +v 2.250000 1.500000 0.750000 +v 2.250000 0.969670 0.530330 +v 2.250000 0.750000 -0.000000 +v 2.250000 0.969670 -0.530330 +v 2.250000 1.500000 -1.000000 +v 2.250000 2.207107 -0.707107 +v 2.250000 2.500000 0.000000 +v 2.250000 2.207107 0.707107 +v 2.250000 1.500000 1.000000 +v 2.250000 0.792893 0.707107 +v 2.250000 0.500000 -0.000000 +v 2.250000 0.792893 -0.707107 +v 2.500000 2.030330 -0.530330 +v 2.500000 1.500000 -0.750000 +v 2.500000 2.250000 0.000000 +v 2.500000 2.030330 0.530330 +v 2.500000 1.500000 0.750000 +v 2.500000 0.969670 0.530330 +v 2.500000 0.750000 -0.000000 +v 2.500000 0.969670 -0.530330 +v 2.500000 2.207107 -0.707107 +v 2.500000 1.500000 -1.000000 +v 2.500000 2.500000 0.000000 +v 2.500000 2.207107 0.707107 +v 2.500000 1.500000 1.000000 +v 2.500000 0.792893 0.707107 +v 2.500000 0.500000 -0.000000 +v 2.500000 0.792893 -0.707107 +v 2.437500 1.562500 0.750000 +v 2.437500 1.437500 0.750000 +v 2.437500 1.562500 -0.750000 +v 2.437500 1.437500 -0.750000 +v 2.437500 1.937500 0.750000 +v 2.437500 1.812500 0.750000 +v 2.437500 1.937500 -0.750000 +v 2.437500 1.812500 -0.750000 +v 2.437500 1.187500 0.750000 +v 2.437500 1.062500 0.750000 +v 2.437500 1.187500 -0.750000 +v 2.437500 1.062500 -0.750000 +v 1.000000 1.750000 -1.375000 +v 1.000000 1.838388 -1.338388 +v 1.000000 1.875000 -1.250000 +v 1.000000 1.838388 -1.161612 +v 1.000000 1.750000 -1.125000 +v 1.000000 1.661612 -1.161612 +v 1.000000 1.625000 -1.250000 +v 1.000000 1.661612 -1.338388 +v -0.500000 1.750000 -1.375000 +v -0.500000 1.838388 -1.338388 +v -0.500000 1.875000 -1.250000 +v -0.500000 1.838388 -1.161612 +v -0.500000 1.750000 -1.125000 +v -0.500000 1.661612 -1.161612 +v -0.500000 1.625000 -1.250000 +v -0.500000 1.661612 -1.338388 +v -0.676777 1.750000 -1.301777 +v -0.650888 1.838388 -1.275888 +v -0.588388 1.875000 -1.213388 +v -0.525888 1.838388 -1.150888 +v -0.525888 1.661612 -1.150888 +v -0.588388 1.625000 -1.213388 +v -0.650888 1.661612 -1.275888 +v -0.750000 1.750000 -1.125000 +v -0.713388 1.838388 -1.125000 +v -0.625000 1.875000 -1.125000 +v -0.536612 1.838388 -1.125000 +v -0.536612 1.661612 -1.125000 +v -0.625000 1.625000 -1.125000 +v -0.713388 1.661612 -1.125000 +v -0.500000 1.750000 -0.875000 +v -0.750000 1.750000 -0.875000 +v -0.713388 1.838388 -0.875000 +v -0.625000 1.875000 -0.875000 +v -0.536612 1.838388 -0.875000 +v -0.536612 1.661612 -0.875000 +v -0.625000 1.625000 -0.875000 +v -0.713388 1.661612 -0.875000 +v 1.000000 1.250000 -1.375000 +v 1.000000 1.338388 -1.338388 +v 1.000000 1.375000 -1.250000 +v 1.000000 1.338388 -1.161612 +v 1.000000 1.250000 -1.125000 +v 1.000000 1.161612 -1.161612 +v 1.000000 1.125000 -1.250000 +v 1.000000 1.161612 -1.338388 +v -0.500000 1.250000 -1.375000 +v -0.500000 1.338388 -1.338388 +v -0.500000 1.375000 -1.250000 +v -0.500000 1.338388 -1.161612 +v -0.500000 1.250000 -1.125000 +v -0.500000 1.161612 -1.161612 +v -0.500000 1.125000 -1.250000 +v -0.500000 1.161612 -1.338388 +v -0.676777 1.250000 -1.301777 +v -0.650888 1.338388 -1.275888 +v -0.588388 1.375000 -1.213388 +v -0.525888 1.338388 -1.150888 +v -0.525888 1.161612 -1.150888 +v -0.588388 1.125000 -1.213388 +v -0.650888 1.161612 -1.275888 +v -0.750000 1.250000 -1.125000 +v -0.713388 1.338388 -1.125000 +v -0.625000 1.375000 -1.125000 +v -0.536612 1.338388 -1.125000 +v -0.536612 1.161612 -1.125000 +v -0.625000 1.125000 -1.125000 +v -0.713388 1.161612 -1.125000 +v -0.500000 1.250000 -0.875000 +v -0.750000 1.250000 -0.875000 +v -0.713388 1.338388 -0.875000 +v -0.625000 1.375000 -0.875000 +v -0.536612 1.338388 -0.875000 +v -0.536612 1.161612 -0.875000 +v -0.625000 1.125000 -0.875000 +v -0.713388 1.161612 -0.875000 +v 1.000000 2.250000 -1.375000 +v 1.000000 2.338388 -1.338388 +v 1.000000 2.375000 -1.250000 +v 1.000000 2.338388 -1.161612 +v 1.000000 2.250000 -1.125000 +v 1.000000 2.161612 -1.161612 +v 1.000000 2.125000 -1.250000 +v 1.000000 2.161612 -1.338388 +v -0.500000 2.250000 -1.375000 +v -0.500000 2.338388 -1.338388 +v -0.500000 2.375000 -1.250000 +v -0.500000 2.338388 -1.161612 +v -0.500000 2.250000 -1.125000 +v -0.500000 2.161612 -1.161612 +v -0.500000 2.125000 -1.250000 +v -0.500000 2.161612 -1.338388 +v -0.676777 2.250000 -1.301777 +v -0.650888 2.338388 -1.275888 +v -0.588388 2.375000 -1.213388 +v -0.525888 2.338388 -1.150888 +v -0.525888 2.161612 -1.150888 +v -0.588388 2.125000 -1.213388 +v -0.650888 2.161612 -1.275888 +v -0.750000 2.250000 -1.125000 +v -0.713388 2.338388 -1.125000 +v -0.625000 2.375000 -1.125000 +v -0.536612 2.338388 -1.125000 +v -0.536612 2.161612 -1.125000 +v -0.625000 2.125000 -1.125000 +v -0.713388 2.161612 -1.125000 +v -0.500000 2.250000 -0.875000 +v -0.750000 2.250000 -0.875000 +v -0.713388 2.338388 -0.875000 +v -0.625000 2.375000 -0.875000 +v -0.536612 2.338388 -0.875000 +v -0.536612 2.161612 -0.875000 +v -0.625000 2.125000 -0.875000 +v -0.713388 2.161612 -0.875000 +v 1.000000 1.750000 1.375000 +v 1.000000 1.838388 1.338388 +v 1.000000 1.875000 1.250000 +v 1.000000 1.838388 1.161612 +v 1.000000 1.750000 1.125000 +v 1.000000 1.661612 1.161612 +v 1.000000 1.625000 1.250000 +v 1.000000 1.661612 1.338388 +v -0.500000 1.750000 1.375000 +v -0.500000 1.838388 1.338388 +v -0.500000 1.875000 1.250000 +v -0.500000 1.838388 1.161612 +v -0.500000 1.750000 1.125000 +v -0.500000 1.661612 1.161612 +v -0.500000 1.625000 1.250000 +v -0.500000 1.661612 1.338388 +v -0.676777 1.750000 1.301777 +v -0.650888 1.838388 1.275888 +v -0.588388 1.875000 1.213388 +v -0.525888 1.838388 1.150888 +v -0.525888 1.661612 1.150888 +v -0.588388 1.625000 1.213388 +v -0.650888 1.661612 1.275888 +v -0.750000 1.750000 1.125000 +v -0.713388 1.838388 1.125000 +v -0.625000 1.875000 1.125000 +v -0.536612 1.838388 1.125000 +v -0.536612 1.661612 1.125000 +v -0.625000 1.625000 1.125000 +v -0.713388 1.661612 1.125000 +v -0.500000 1.750000 0.875000 +v -0.750000 1.750000 0.875000 +v -0.713388 1.838388 0.875000 +v -0.625000 1.875000 0.875000 +v -0.536612 1.838388 0.875000 +v -0.536612 1.661612 0.875000 +v -0.625000 1.625000 0.875000 +v -0.713388 1.661612 0.875000 +v 1.000000 1.250000 1.375000 +v 1.000000 1.338388 1.338388 +v 1.000000 1.375000 1.250000 +v 1.000000 1.338388 1.161612 +v 1.000000 1.250000 1.125000 +v 1.000000 1.161612 1.161612 +v 1.000000 1.125000 1.250000 +v 1.000000 1.161612 1.338388 +v -0.500000 1.250000 1.375000 +v -0.500000 1.338388 1.338388 +v -0.500000 1.375000 1.250000 +v -0.500000 1.338388 1.161612 +v -0.500000 1.250000 1.125000 +v -0.500000 1.161612 1.161612 +v -0.500000 1.125000 1.250000 +v -0.500000 1.161612 1.338388 +v -0.676777 1.250000 1.301777 +v -0.650888 1.338388 1.275888 +v -0.588388 1.375000 1.213388 +v -0.525888 1.338388 1.150888 +v -0.525888 1.161612 1.150888 +v -0.588388 1.125000 1.213388 +v -0.650888 1.161612 1.275888 +v -0.750000 1.250000 1.125000 +v -0.713388 1.338388 1.125000 +v -0.625000 1.375000 1.125000 +v -0.536612 1.338388 1.125000 +v -0.536612 1.161612 1.125000 +v -0.625000 1.125000 1.125000 +v -0.713388 1.161612 1.125000 +v -0.500000 1.250000 0.875000 +v -0.750000 1.250000 0.875000 +v -0.713388 1.338388 0.875000 +v -0.625000 1.375000 0.875000 +v -0.536612 1.338388 0.875000 +v -0.536612 1.161612 0.875000 +v -0.625000 1.125000 0.875000 +v -0.713388 1.161612 0.875000 +v 1.000000 2.250000 1.375000 +v 1.000000 2.338388 1.338388 +v 1.000000 2.375000 1.250000 +v 1.000000 2.338388 1.161612 +v 1.000000 2.250000 1.125000 +v 1.000000 2.161612 1.161612 +v 1.000000 2.125000 1.250000 +v 1.000000 2.161612 1.338388 +v -0.500000 2.250000 1.375000 +v -0.500000 2.338388 1.338388 +v -0.500000 2.375000 1.250000 +v -0.500000 2.338388 1.161612 +v -0.500000 2.250000 1.125000 +v -0.500000 2.161612 1.161612 +v -0.500000 2.125000 1.250000 +v -0.500000 2.161612 1.338388 +v -0.676777 2.250000 1.301777 +v -0.650888 2.338388 1.275888 +v -0.588388 2.375000 1.213388 +v -0.525888 2.338388 1.150888 +v -0.525888 2.161612 1.150888 +v -0.588388 2.125000 1.213388 +v -0.650888 2.161612 1.275888 +v -0.750000 2.250000 1.125000 +v -0.713388 2.338388 1.125000 +v -0.625000 2.375000 1.125000 +v -0.536612 2.338388 1.125000 +v -0.536612 2.161612 1.125000 +v -0.625000 2.125000 1.125000 +v -0.713388 2.161612 1.125000 +v -0.500000 2.250000 0.875000 +v -0.750000 2.250000 0.875000 +v -0.713388 2.338388 0.875000 +v -0.625000 2.375000 0.875000 +v -0.536612 2.338388 0.875000 +v -0.536612 2.161612 0.875000 +v -0.625000 2.125000 0.875000 +v -0.713388 2.161612 0.875000 +v -1.375000 2.750000 0.500000 +v -1.375000 1.750000 0.500000 +v -1.375000 2.750000 -0.500000 +v -1.375000 1.750000 -0.500000 +v -1.000000 2.750000 -0.500000 +v -1.000000 2.750000 0.500000 +v -1.000000 1.750000 0.500000 +v -1.000000 1.750000 -0.500000 +v 1.750000 3.000000 -0.125000 +v 1.661612 3.000000 -0.088388 +v 1.625000 3.000000 0.000000 +v 1.661612 3.000000 0.088388 +v 1.750000 3.000000 0.125000 +v 1.838388 3.000000 0.088388 +v 1.875000 3.000000 -0.000000 +v 1.838388 3.000000 -0.088388 +v 1.750000 3.625000 -0.125000 +v 1.661612 3.625000 -0.088388 +v 1.625000 3.625000 0.000000 +v 1.661612 3.625000 0.088388 +v 1.750000 3.625000 0.125000 +v 1.838388 3.625000 0.088388 +v 1.875000 3.625000 -0.000000 +v 1.838388 3.625000 -0.088388 +v 1.713388 3.713388 -0.125000 +v 1.650888 3.650888 -0.088388 +v 1.650888 3.650888 0.088388 +v 1.713388 3.713388 0.125000 +v 1.775888 3.775888 0.088388 +v 1.801777 3.801777 -0.000000 +v 1.775888 3.775888 -0.088388 +v 1.625000 3.750000 -0.125000 +v 1.625000 3.661612 -0.088388 +v 1.625000 3.661612 0.088388 +v 1.625000 3.750000 0.125000 +v 1.625000 3.838388 0.088388 +v 1.625000 3.875000 -0.000000 +v 1.625000 3.838388 -0.088388 +v 1.000000 3.625000 0.000000 +v 1.000000 3.750000 -0.125000 +v 1.000000 3.661612 -0.088388 +v 1.000000 3.661612 0.088388 +v 1.000000 3.750000 0.125000 +v 1.000000 3.838388 0.088388 +v 1.000000 3.875000 -0.000000 +v 1.000000 3.838388 -0.088388 +v 1.750000 3.000000 -0.625000 +v 1.661612 3.000000 -0.588388 +v 1.625000 3.000000 -0.500000 +v 1.661612 3.000000 -0.411612 +v 1.750000 3.000000 -0.375000 +v 1.838388 3.000000 -0.411612 +v 1.875000 3.000000 -0.500000 +v 1.838388 3.000000 -0.588388 +v 1.750000 3.625000 -0.625000 +v 1.661612 3.625000 -0.588388 +v 1.625000 3.625000 -0.500000 +v 1.661612 3.625000 -0.411612 +v 1.750000 3.625000 -0.375000 +v 1.838388 3.625000 -0.411612 +v 1.875000 3.625000 -0.500000 +v 1.838388 3.625000 -0.588388 +v 1.713388 3.713388 -0.625000 +v 1.650888 3.650888 -0.588388 +v 1.650888 3.650888 -0.411612 +v 1.713388 3.713388 -0.375000 +v 1.775888 3.775888 -0.411612 +v 1.801777 3.801777 -0.500000 +v 1.775888 3.775888 -0.588388 +v 1.625000 3.750000 -0.625000 +v 1.625000 3.661612 -0.588388 +v 1.625000 3.661612 -0.411612 +v 1.625000 3.750000 -0.375000 +v 1.625000 3.838388 -0.411612 +v 1.625000 3.875000 -0.500000 +v 1.625000 3.838388 -0.588388 +v 0.812500 3.625000 -0.500000 +v 0.812500 3.750000 -0.625000 +v 0.812500 3.661612 -0.588388 +v 0.812500 3.661612 -0.411612 +v 0.812500 3.750000 -0.375000 +v 0.812500 3.838388 -0.411612 +v 0.812500 3.875000 -0.500000 +v 0.812500 3.838388 -0.588388 +v 1.750000 3.000000 0.375000 +v 1.661612 3.000000 0.411612 +v 1.625000 3.000000 0.500000 +v 1.661612 3.000000 0.588388 +v 1.750000 3.000000 0.625000 +v 1.838388 3.000000 0.588388 +v 1.875000 3.000000 0.500000 +v 1.838388 3.000000 0.411612 +v 1.750000 3.625000 0.375000 +v 1.661612 3.625000 0.411612 +v 1.625000 3.625000 0.500000 +v 1.661612 3.625000 0.588388 +v 1.750000 3.625000 0.625000 +v 1.838388 3.625000 0.588388 +v 1.875000 3.625000 0.500000 +v 1.838388 3.625000 0.411612 +v 1.713388 3.713388 0.375000 +v 1.650888 3.650888 0.411612 +v 1.650888 3.650888 0.588388 +v 1.713388 3.713388 0.625000 +v 1.775888 3.775888 0.588388 +v 1.801777 3.801777 0.500000 +v 1.775888 3.775888 0.411612 +v 1.625000 3.750000 0.375000 +v 1.625000 3.661612 0.411612 +v 1.625000 3.661612 0.588388 +v 1.625000 3.750000 0.625000 +v 1.625000 3.838388 0.588388 +v 1.625000 3.875000 0.500000 +v 1.625000 3.838388 0.411612 +v 0.812500 3.625000 0.500000 +v 0.812500 3.750000 0.375000 +v 0.812500 3.661612 0.411612 +v 0.812500 3.661612 0.588388 +v 0.812500 3.750000 0.625000 +v 0.812500 3.838388 0.588388 +v 0.812500 3.875000 0.500000 +v 0.812500 3.838388 0.411612 +vt 0.515152 0.259259 +vt 0.333333 0.518519 +vt 0.333333 0.259259 +vt 0.575758 0.592593 +vt 0.515152 0.740741 +vt 0.515152 0.518519 +vt 0.121212 0.518519 +vt 0.272727 0.592593 +vt 0.121212 0.592593 +vt 0.515152 0.185185 +vt 0.333333 0.000000 +vt 0.333333 0.185185 +vt 0.333333 0.740741 +vt 0.515152 0.814815 +vt 0.333333 0.814815 +vt 0.363636 0.555556 +vt 0.333333 0.962963 +vt 0.515152 0.962963 +vt 0.909091 0.777778 +vt 0.939394 0.814815 +vt 0.909091 0.814815 +vt 0.787879 0.777778 +vt 0.818182 0.814815 +vt 0.787879 0.814815 +vt 0.878788 0.222222 +vt 0.848485 0.777778 +vt 0.848485 0.222222 +vt 0.818182 0.777778 +vt 0.818182 0.222222 +vt 0.787879 0.222222 +vt 0.757576 0.777778 +vt 0.757576 0.222222 +vt 1.000000 0.222222 +vt 0.969697 0.777778 +vt 0.969697 0.222222 +vt 0.939394 0.777778 +vt 0.939394 0.222222 +vt 0.909091 0.222222 +vt 0.878788 0.777778 +vt 0.878788 0.222222 +vt 0.575758 0.222250 +vt 0.618597 0.243937 +vt 0.636341 0.296296 +vt 0.515152 0.462963 +vt 0.609848 0.444444 +vt 0.621212 0.462963 +vt 0.515152 0.472222 +vt 0.609848 0.490741 +vt 0.515152 0.490741 +vt 0.515152 0.435185 +vt 0.515152 0.444444 +vt 0.628788 0.435185 +vt 0.734848 0.444444 +vt 0.628788 0.444444 +vt 0.742424 0.472222 +vt 0.628788 0.490741 +vt 0.621212 0.472222 +vt 0.742424 0.462963 +vt 0.515152 0.398148 +vt 0.609848 0.379630 +vt 0.621212 0.398148 +vt 0.515152 0.407407 +vt 0.609848 0.425926 +vt 0.515152 0.425926 +vt 0.609848 0.435185 +vt 0.515152 0.435185 +vt 0.628788 0.425926 +vt 0.734848 0.435185 +vt 0.628788 0.435185 +vt 0.742424 0.407407 +vt 0.621212 0.407407 +vt 0.628788 0.379630 +vt 0.742424 0.398148 +vt 0.272727 0.740741 +vt 0.727273 0.518519 +vt 0.727273 0.592593 +vt 0.257576 0.592593 +vt 0.136364 0.611111 +vt 0.136364 0.592593 +vt 0.484848 0.703704 +vt 0.257576 0.759259 +vt 0.136364 0.759259 +vt 0.136364 0.777778 +vt 0.257576 0.777778 +vt 0.272727 0.759259 +vt 0.257576 0.611111 +vt 0.272727 0.611111 +vt 0.121212 0.611111 +vt 0.121212 0.759259 +vt 0.121212 0.796296 +vt 0.159091 0.814815 +vt 0.128788 0.814815 +vt 0.128788 0.814815 +vt 0.166667 0.796296 +vt 0.159091 0.814815 +vt 0.121212 0.796296 +vt 0.159091 0.814815 +vt 0.128788 0.814815 +vt 0.121212 0.796296 +vt 0.159091 0.814815 +vt 0.128788 0.814815 +vt 0.121212 0.796296 +vt 0.159091 0.814815 +vt 0.128788 0.814815 +vt 0.121212 0.796296 +vt 0.159091 0.814815 +vt 0.128788 0.814815 +vt 0.121212 0.796296 +vt 0.159091 0.814815 +vt 0.128788 0.814815 +vt 0.121212 0.796296 +vt 0.159091 0.814815 +vt 0.128788 0.814815 +vt 0.121212 0.842593 +vt 0.212121 0.851852 +vt 0.121212 0.851852 +vt 0.121212 0.851852 +vt 0.212121 0.861111 +vt 0.121212 0.861111 +vt 0.121212 0.833333 +vt 0.212121 0.842593 +vt 0.121212 0.842593 +vt 0.143939 0.962963 +vt 0.204545 0.888889 +vt 0.204545 0.962963 +vt 0.143939 0.888889 +vt 0.204545 0.861111 +vt 0.143939 0.990741 +vt 0.121212 0.888889 +vt 0.227273 0.962963 +vt 0.575758 0.740741 +vt 0.515152 0.000000 +vt 0.484848 0.555556 +vt 0.878788 0.777778 +vt 1.000000 0.777778 +vt 0.618597 0.348655 +vt 0.515174 0.296296 +vt 0.575758 0.370343 +vt 0.532919 0.348655 +vt 0.532919 0.243937 +vt 0.609848 0.435185 +vt 0.734848 0.435185 +vt 0.734848 0.490741 +vt 0.515152 0.379630 +vt 0.734848 0.425926 +vt 0.734848 0.379630 +vt 0.363636 0.703704 +vt 0.166667 0.796296 +vt 0.121212 0.796296 +vt 0.166667 0.796296 +vt 0.166667 0.796296 +vt 0.166667 0.796296 +vt 0.166667 0.796296 +vt 0.166667 0.796296 +vt 0.166667 0.796296 +vt 0.212121 0.842593 +vt 0.212121 0.851852 +vt 0.212121 0.833333 +vt 0.143939 0.861111 +vt 0.204545 0.990741 +vt 0.121212 0.962963 +vt 0.227273 0.888889 +vt 0.818182 -0.000000 +vt 0.757576 0.185185 +vt 0.757576 -0.000000 +vt 0.696970 -0.000000 +vt 0.636364 0.185185 +vt 0.636364 0.000000 +vt 0.575758 0.185185 +vt 0.575758 0.000000 +vt 1.000000 -0.000000 +vt 0.939394 0.185185 +vt 0.939394 -0.000000 +vt 0.878788 -0.000000 +vt 0.818182 0.185185 +vt 0.696970 0.185185 +vt 0.515152 0.185185 +vt 0.515152 0.000000 +vt 0.878788 0.185185 +vt 0.750000 0.222222 +vt 0.704545 0.222222 +vt 0.810606 0.222222 +vt 0.765152 0.222222 +vt 0.825758 0.222222 +vt 0.886364 0.222222 +vt 1.000000 0.185185 +vt 0.946970 0.222222 +vt 0.522727 0.222222 +vt 0.628788 0.222222 +vt 0.583333 0.222222 +vt 0.643939 0.222222 +vt 0.128788 0.833333 +vt 0.159091 0.833333 +vt 0.166667 0.777778 +vt 0.121212 0.777778 +vt 0.166667 0.777778 +vt 0.121212 0.777778 +vt 0.128788 0.833333 +vt 0.159091 0.833333 +vt 0.166667 0.777778 +vt 0.121212 0.777778 +vt 0.128788 0.833333 +vt 0.159091 0.833333 +vt 0.166667 0.777778 +vt 0.121212 0.777778 +vt 0.128788 0.833333 +vt 0.159091 0.833333 +vt 0.166667 0.777778 +vt 0.121212 0.777778 +vt 0.128788 0.833333 +vt 0.159091 0.833333 +vt 0.166667 0.777778 +vt 0.121212 0.777778 +vt 0.128788 0.833333 +vt 0.159091 0.833333 +vt 0.166667 0.777778 +vt 0.121212 0.777778 +vt 0.128788 0.833333 +vt 0.159091 0.833333 +vt 0.166667 0.777778 +vt 0.121212 0.777778 +vt 0.128788 0.833333 +vt 0.159091 0.833333 +vt 0.757576 0.333333 +vt 0.750000 0.222222 +vt 0.757576 0.222222 +vt 0.712121 0.333333 +vt 0.704545 0.222222 +vt 0.712121 0.222222 +vt 0.727273 0.333333 +vt 0.719697 0.222222 +vt 0.727273 0.222222 +vt 0.734848 0.333333 +vt 0.734848 0.222222 +vt 0.750000 0.333333 +vt 0.742424 0.222222 +vt 0.704545 0.333333 +vt 0.696970 0.222222 +vt 0.719697 0.333333 +vt 0.742424 0.333333 +vt 0.734848 0.347222 +vt 0.727273 0.347222 +vt 0.742424 0.337963 +vt 0.750000 0.347222 +vt 0.742424 0.347222 +vt 0.712121 0.347222 +vt 0.712121 0.337963 +vt 0.704545 0.347222 +vt 0.704545 0.342593 +vt 0.719697 0.347222 +vt 0.712121 0.356481 +vt 0.704545 0.351852 +vt 0.727273 0.361111 +vt 0.719697 0.361111 +vt 0.742424 0.356481 +vt 0.734848 0.361111 +vt 0.757576 0.347222 +vt 0.750000 0.342593 +vt 0.750000 0.351852 +vt 0.696970 0.347222 +vt 0.719697 0.379630 +vt 0.704545 0.361111 +vt 0.696970 0.379630 +vt 0.696970 0.361111 +vt 0.727273 0.379630 +vt 0.757576 0.361111 +vt 0.750000 0.379630 +vt 0.750000 0.361111 +vt 0.742424 0.379630 +vt 0.742424 0.361111 +vt 0.712121 0.379630 +vt 0.712121 0.361111 +vt 0.734848 0.379630 +vt 0.704545 0.379630 +vt 0.757576 0.333333 +vt 0.750000 0.222222 +vt 0.757576 0.222222 +vt 0.712121 0.333333 +vt 0.704545 0.222222 +vt 0.712121 0.222222 +vt 0.727273 0.333333 +vt 0.719697 0.222222 +vt 0.727273 0.222222 +vt 0.734848 0.333333 +vt 0.734848 0.222222 +vt 0.750000 0.333333 +vt 0.742424 0.222222 +vt 0.704545 0.333333 +vt 0.696970 0.222222 +vt 0.719697 0.333333 +vt 0.742424 0.333333 +vt 0.734848 0.347222 +vt 0.727273 0.347222 +vt 0.742424 0.337963 +vt 0.750000 0.347222 +vt 0.742424 0.347222 +vt 0.712121 0.347222 +vt 0.712121 0.337963 +vt 0.704545 0.347222 +vt 0.704545 0.342593 +vt 0.719697 0.347222 +vt 0.712121 0.356481 +vt 0.704545 0.351852 +vt 0.727273 0.361111 +vt 0.719697 0.361111 +vt 0.742424 0.356481 +vt 0.734848 0.361111 +vt 0.757576 0.347222 +vt 0.750000 0.342593 +vt 0.750000 0.351852 +vt 0.696970 0.347222 +vt 0.719697 0.379630 +vt 0.704545 0.361111 +vt 0.696970 0.379630 +vt 0.696970 0.361111 +vt 0.727273 0.379630 +vt 0.757576 0.361111 +vt 0.750000 0.379630 +vt 0.750000 0.361111 +vt 0.742424 0.379630 +vt 0.742424 0.361111 +vt 0.712121 0.379630 +vt 0.712121 0.361111 +vt 0.734848 0.379630 +vt 0.704545 0.379630 +vt 0.757576 0.333333 +vt 0.750000 0.222222 +vt 0.757576 0.222222 +vt 0.712121 0.333333 +vt 0.704545 0.222222 +vt 0.712121 0.222222 +vt 0.727273 0.333333 +vt 0.719697 0.222222 +vt 0.727273 0.222222 +vt 0.734848 0.333333 +vt 0.734848 0.222222 +vt 0.750000 0.333333 +vt 0.742424 0.222222 +vt 0.704545 0.333333 +vt 0.696970 0.222222 +vt 0.719697 0.333333 +vt 0.742424 0.333333 +vt 0.734848 0.347222 +vt 0.727273 0.347222 +vt 0.742424 0.337963 +vt 0.750000 0.347222 +vt 0.742424 0.347222 +vt 0.712121 0.347222 +vt 0.712121 0.337963 +vt 0.704545 0.347222 +vt 0.704545 0.342593 +vt 0.719697 0.347222 +vt 0.712121 0.356481 +vt 0.704545 0.351852 +vt 0.727273 0.361111 +vt 0.719697 0.361111 +vt 0.742424 0.356481 +vt 0.734848 0.361111 +vt 0.757576 0.347222 +vt 0.750000 0.342593 +vt 0.750000 0.351852 +vt 0.696970 0.347222 +vt 0.719697 0.379630 +vt 0.704545 0.361111 +vt 0.696970 0.379630 +vt 0.696970 0.361111 +vt 0.727273 0.379630 +vt 0.757576 0.361111 +vt 0.750000 0.379630 +vt 0.750000 0.361111 +vt 0.742424 0.379630 +vt 0.742424 0.361111 +vt 0.712121 0.379630 +vt 0.712121 0.361111 +vt 0.734848 0.379630 +vt 0.704545 0.379630 +vt 0.704545 0.222222 +vt 0.696970 0.333333 +vt 0.696970 0.222222 +vt 0.750000 0.222222 +vt 0.742424 0.333333 +vt 0.742424 0.222222 +vt 0.734848 0.222222 +vt 0.727273 0.333333 +vt 0.727273 0.222222 +vt 0.719697 0.333333 +vt 0.719697 0.222222 +vt 0.712121 0.222222 +vt 0.704545 0.333333 +vt 0.757576 0.222222 +vt 0.750000 0.333333 +vt 0.734848 0.333333 +vt 0.712121 0.333333 +vt 0.719697 0.347222 +vt 0.712121 0.337963 +vt 0.704545 0.347222 +vt 0.704545 0.342593 +vt 0.742424 0.347222 +vt 0.742424 0.337963 +vt 0.712121 0.347222 +vt 0.750000 0.347222 +vt 0.750000 0.342593 +vt 0.734848 0.347222 +vt 0.742424 0.356481 +vt 0.734848 0.361111 +vt 0.727273 0.347222 +vt 0.719697 0.361111 +vt 0.712121 0.356481 +vt 0.696970 0.347222 +vt 0.704545 0.351852 +vt 0.757576 0.347222 +vt 0.750000 0.351852 +vt 0.734848 0.379630 +vt 0.727273 0.361111 +vt 0.757576 0.379630 +vt 0.750000 0.361111 +vt 0.757576 0.361111 +vt 0.727273 0.379630 +vt 0.704545 0.379630 +vt 0.696970 0.361111 +vt 0.704545 0.361111 +vt 0.712121 0.379630 +vt 0.712121 0.361111 +vt 0.742424 0.379630 +vt 0.742424 0.361111 +vt 0.719697 0.379630 +vt 0.750000 0.379630 +vt 0.704545 0.222222 +vt 0.696970 0.333333 +vt 0.696970 0.222222 +vt 0.750000 0.222222 +vt 0.742424 0.333333 +vt 0.742424 0.222222 +vt 0.734848 0.222222 +vt 0.727273 0.333333 +vt 0.727273 0.222222 +vt 0.719697 0.333333 +vt 0.719697 0.222222 +vt 0.712121 0.222222 +vt 0.704545 0.333333 +vt 0.757576 0.222222 +vt 0.750000 0.333333 +vt 0.734848 0.333333 +vt 0.712121 0.333333 +vt 0.719697 0.347222 +vt 0.712121 0.337963 +vt 0.704545 0.347222 +vt 0.704545 0.342593 +vt 0.742424 0.347222 +vt 0.742424 0.337963 +vt 0.712121 0.347222 +vt 0.750000 0.347222 +vt 0.750000 0.342593 +vt 0.734848 0.347222 +vt 0.742424 0.356481 +vt 0.734848 0.361111 +vt 0.727273 0.347222 +vt 0.719697 0.361111 +vt 0.712121 0.356481 +vt 0.696970 0.347222 +vt 0.704545 0.351852 +vt 0.757576 0.347222 +vt 0.750000 0.351852 +vt 0.734848 0.379630 +vt 0.727273 0.361111 +vt 0.757576 0.379630 +vt 0.750000 0.361111 +vt 0.757576 0.361111 +vt 0.727273 0.379630 +vt 0.704545 0.379630 +vt 0.696970 0.361111 +vt 0.704545 0.361111 +vt 0.712121 0.379630 +vt 0.712121 0.361111 +vt 0.742424 0.379630 +vt 0.742424 0.361111 +vt 0.719697 0.379630 +vt 0.750000 0.379630 +vt 0.704545 0.222222 +vt 0.696970 0.333333 +vt 0.696970 0.222222 +vt 0.750000 0.222222 +vt 0.742424 0.333333 +vt 0.742424 0.222222 +vt 0.734848 0.222222 +vt 0.727273 0.333333 +vt 0.727273 0.222222 +vt 0.719697 0.333333 +vt 0.719697 0.222222 +vt 0.712121 0.222222 +vt 0.704545 0.333333 +vt 0.757576 0.222222 +vt 0.750000 0.333333 +vt 0.734848 0.333333 +vt 0.712121 0.333333 +vt 0.719697 0.347222 +vt 0.712121 0.337963 +vt 0.704545 0.347222 +vt 0.704545 0.342593 +vt 0.742424 0.347222 +vt 0.742424 0.337963 +vt 0.712121 0.347222 +vt 0.750000 0.347222 +vt 0.750000 0.342593 +vt 0.734848 0.347222 +vt 0.742424 0.356481 +vt 0.734848 0.361111 +vt 0.727273 0.347222 +vt 0.719697 0.361111 +vt 0.712121 0.356481 +vt 0.696970 0.347222 +vt 0.704545 0.351852 +vt 0.757576 0.347222 +vt 0.750000 0.351852 +vt 0.734848 0.379630 +vt 0.727273 0.361111 +vt 0.757576 0.379630 +vt 0.750000 0.361111 +vt 0.757576 0.361111 +vt 0.727273 0.379630 +vt 0.704545 0.379630 +vt 0.696970 0.361111 +vt 0.704545 0.361111 +vt 0.712121 0.379630 +vt 0.712121 0.361111 +vt 0.742424 0.379630 +vt 0.742424 0.361111 +vt 0.719697 0.379630 +vt 0.750000 0.379630 +vt 0.696970 0.222222 +vt 0.689394 0.268519 +vt 0.689394 0.222222 +vt 0.674242 0.222222 +vt 0.666667 0.268519 +vt 0.666667 0.222222 +vt 0.659091 0.222222 +vt 0.651515 0.268519 +vt 0.651515 0.222222 +vt 0.643939 0.222222 +vt 0.636364 0.268519 +vt 0.636364 0.222222 +vt 0.681818 0.268519 +vt 0.681818 0.222222 +vt 0.674242 0.268519 +vt 0.659091 0.268519 +vt 0.643939 0.268519 +vt 0.651515 0.282407 +vt 0.651515 0.273148 +vt 0.681818 0.273148 +vt 0.689394 0.282407 +vt 0.681818 0.282407 +vt 0.674242 0.282407 +vt 0.666667 0.282407 +vt 0.659091 0.282407 +vt 0.643939 0.282407 +vt 0.643939 0.277778 +vt 0.666667 0.296296 +vt 0.651515 0.291667 +vt 0.689394 0.287037 +vt 0.681818 0.291667 +vt 0.674242 0.296296 +vt 0.659091 0.296296 +vt 0.643939 0.287037 +vt 0.636364 0.282407 +vt 0.689394 0.277778 +vt 0.696970 0.282407 +vt 0.666667 0.342593 +vt 0.651515 0.342593 +vt 0.651515 0.296296 +vt 0.689394 0.296296 +vt 0.681818 0.342593 +vt 0.681818 0.296296 +vt 0.696970 0.342593 +vt 0.689394 0.342593 +vt 0.674242 0.342593 +vt 0.643939 0.296296 +vt 0.636364 0.342593 +vt 0.636364 0.296296 +vt 0.659091 0.342593 +vt 0.643939 0.342593 +vt 0.696970 0.222222 +vt 0.689394 0.268519 +vt 0.689394 0.222222 +vt 0.674242 0.222222 +vt 0.666667 0.268519 +vt 0.666667 0.222222 +vt 0.659091 0.222222 +vt 0.651515 0.268519 +vt 0.651515 0.222222 +vt 0.643939 0.222222 +vt 0.636364 0.268519 +vt 0.636364 0.222222 +vt 0.681818 0.268519 +vt 0.681818 0.222222 +vt 0.674242 0.268519 +vt 0.659091 0.268519 +vt 0.643939 0.268519 +vt 0.651515 0.282407 +vt 0.651515 0.273148 +vt 0.681818 0.273148 +vt 0.689394 0.282407 +vt 0.681818 0.282407 +vt 0.674242 0.282407 +vt 0.666667 0.282407 +vt 0.659091 0.282407 +vt 0.643939 0.282407 +vt 0.643939 0.277778 +vt 0.666667 0.296296 +vt 0.659091 0.296296 +vt 0.651515 0.291667 +vt 0.681818 0.291667 +vt 0.674242 0.296296 +vt 0.643939 0.287037 +vt 0.636364 0.282407 +vt 0.689394 0.277778 +vt 0.696970 0.282407 +vt 0.689394 0.287037 +vt 0.666667 0.356481 +vt 0.651515 0.356481 +vt 0.651515 0.296296 +vt 0.689394 0.296296 +vt 0.681818 0.356481 +vt 0.681818 0.296296 +vt 0.696970 0.356481 +vt 0.689394 0.356481 +vt 0.674242 0.356481 +vt 0.643939 0.296296 +vt 0.636364 0.356481 +vt 0.636364 0.296296 +vt 0.659091 0.356481 +vt 0.643939 0.356481 +vt 0.696970 0.222222 +vt 0.689394 0.268519 +vt 0.689394 0.222222 +vt 0.674242 0.222222 +vt 0.666667 0.268519 +vt 0.666667 0.222222 +vt 0.659091 0.222222 +vt 0.651515 0.268519 +vt 0.651515 0.222222 +vt 0.643939 0.222222 +vt 0.636364 0.268519 +vt 0.636364 0.222222 +vt 0.681818 0.268519 +vt 0.681818 0.222222 +vt 0.674242 0.268519 +vt 0.659091 0.268519 +vt 0.643939 0.268519 +vt 0.651515 0.273148 +vt 0.659091 0.282407 +vt 0.651515 0.282407 +vt 0.681818 0.273148 +vt 0.689394 0.282407 +vt 0.681818 0.282407 +vt 0.674242 0.282407 +vt 0.666667 0.282407 +vt 0.643939 0.282407 +vt 0.643939 0.277778 +vt 0.666667 0.296296 +vt 0.651515 0.291667 +vt 0.681818 0.291667 +vt 0.674242 0.296296 +vt 0.659091 0.296296 +vt 0.643939 0.287037 +vt 0.636364 0.282407 +vt 0.689394 0.277778 +vt 0.696970 0.282407 +vt 0.689394 0.287037 +vt 0.666667 0.356481 +vt 0.651515 0.356481 +vt 0.651515 0.296296 +vt 0.689394 0.296296 +vt 0.681818 0.356481 +vt 0.681818 0.296296 +vt 0.696970 0.356481 +vt 0.689394 0.356481 +vt 0.674242 0.356481 +vt 0.643939 0.296296 +vt 0.636364 0.356481 +vt 0.636364 0.296296 +vt 0.659091 0.356481 +vt 0.643939 0.356481 +vt 0.871212 0.222222 +vt 0.931818 0.222222 +vt 0.992424 0.222222 +vt 0.568182 0.222222 +vt 0.689394 0.222222 +vt 0.696970 0.333333 +vt 0.757576 0.379630 +vt 0.696970 0.333333 +vt 0.757576 0.379630 +vt 0.696970 0.333333 +vt 0.757576 0.379630 +vt 0.757576 0.333333 +vt 0.696970 0.379630 +vt 0.757576 0.333333 +vt 0.696970 0.379630 +vt 0.757576 0.333333 +vt 0.696970 0.379630 +vt 0.696970 0.268519 +vt 0.696970 0.296296 +vt 0.696970 0.268519 +vt 0.696970 0.296296 +vt 0.696970 0.268519 +vt 0.696970 0.296296 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 -0.0000 0.0000 +vn 0.9210 -0.3896 0.0000 +vn -0.9285 0.3714 0.0000 +vn -0.7071 0.0000 0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +vn -0.6325 0.4472 -0.6325 +vn -0.8944 0.4472 0.0000 +vn -0.6325 0.4472 0.6325 +vn 0.0000 0.4472 0.8944 +vn 0.6325 0.4472 0.6325 +vn 0.8944 0.4472 -0.0000 +vn 0.6325 0.4472 -0.6325 +vn 0.0000 0.4472 -0.8944 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 0.7071 0.7071 +vn -0.0196 0.9987 -0.0473 +vn -0.1866 0.0000 -0.9824 +vn -0.1448 -0.6794 -0.7194 +vn 0.1363 -0.7263 0.6737 +vn 0.1363 0.7263 0.6737 +vn -0.1448 0.6794 -0.7194 +vn -0.0196 -0.9987 -0.0473 +vn -0.5294 -0.6630 -0.5294 +vn 0.4617 -0.7574 0.4617 +vn -0.0671 -0.9955 -0.0671 +vn -0.0671 0.9955 -0.0671 +vn 0.4617 0.7574 0.4617 +vn -0.5294 0.6630 -0.5294 +vn -0.0473 0.9987 -0.0196 +vn 0.6737 0.7263 0.1363 +vn -0.9824 -0.0000 -0.1866 +vn -0.7194 0.6794 -0.1448 +vn -0.0473 -0.9987 -0.0196 +vn -0.7194 -0.6794 -0.1448 +vn 0.6737 -0.7263 0.1363 +vn -0.7071 0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.0196 0.9987 0.0473 +vn -0.1866 0.0000 0.9824 +vn -0.1448 -0.6794 0.7194 +vn 0.1363 -0.7263 -0.6737 +vn 0.1363 0.7263 -0.6737 +vn -0.1448 0.6794 0.7194 +vn -0.0196 -0.9987 0.0473 +vn -0.5294 -0.6630 0.5294 +vn 0.4617 -0.7574 -0.4617 +vn -0.0671 0.9955 0.0671 +vn -0.0671 -0.9955 0.0671 +vn 0.4617 0.7574 -0.4617 +vn -0.5294 0.6630 0.5294 +vn -0.0473 0.9987 0.0196 +vn -0.7194 0.6794 0.1448 +vn -0.7194 -0.6794 0.1448 +vn -0.0473 -0.9987 0.0196 +vn 0.6737 -0.7263 -0.1363 +vn 0.6737 0.7263 -0.1363 +vn -0.9824 -0.0000 0.1866 +vn -0.6737 -0.1363 -0.7263 +vn 0.9824 0.1866 -0.0000 +vn 0.0473 0.0196 0.9987 +vn 0.0473 0.0196 -0.9987 +vn 0.7194 0.1448 -0.6794 +vn 0.7194 0.1448 0.6794 +vn -0.6737 -0.1363 0.7263 +vn 0.0671 0.0671 0.9955 +vn -0.4617 -0.4617 -0.7574 +vn 0.0671 0.0671 -0.9955 +vn 0.5294 0.5294 -0.6630 +vn 0.5294 0.5294 0.6630 +vn -0.4617 -0.4617 0.7574 +vn 0.1866 0.9824 0.0000 +vn 0.0196 0.0473 0.9987 +vn -0.1363 -0.6737 -0.7263 +vn 0.0196 0.0473 -0.9987 +vn 0.1448 0.7194 -0.6794 +vn 0.1448 0.7194 0.6794 +vn -0.1363 -0.6737 0.7263 +s off +f 75/115/28 74/116/28 73/117/28 +f 80/118/29 83/119/29 76/120/29 +f 73/121/30 79/122/30 78/123/30 +f 73/117/31 77/124/31 75/115/31 +f 79/125/32 77/124/32 78/126/32 +f 82/127/32 84/128/32 81/129/32 +f 76/120/33 150/130/33 74/116/33 +f 79/131/31 84/128/31 80/132/31 +f 99/133/32 97/134/32 98/135/32 +f 91/136/32 89/137/32 90/138/32 +f 85/139/31 89/140/31 87/141/31 +f 87/141/29 92/142/29 88/143/29 +f 86/144/30 90/145/30 85/146/30 +f 88/143/33 91/136/33 86/144/33 +f 93/147/31 97/148/31 95/149/31 +f 95/149/29 100/150/29 96/151/29 +f 94/152/30 98/153/30 93/154/30 +f 96/151/33 99/133/33 94/152/33 +f 123/155/32 124/156/32 117/157/32 +f 126/158/29 132/159/29 130/160/29 +f 130/160/32 125/161/32 126/158/32 +f 125/161/30 131/162/30 127/163/30 +f 127/164/28 132/159/28 128/165/28 +f 131/166/34 134/167/34 132/168/34 +f 135/169/30 131/170/30 129/171/30 +f 132/168/29 136/172/29 130/160/29 +f 136/172/35 129/171/35 130/160/35 +f 138/173/29 144/174/29 142/175/29 +f 142/175/32 137/176/32 138/173/32 +f 137/176/30 143/177/30 139/178/30 +f 139/178/28 144/179/28 140/180/28 +f 143/181/34 146/182/34 144/183/34 +f 147/184/30 143/181/30 141/185/30 +f 144/186/29 148/187/29 142/175/29 +f 148/187/35 141/185/35 142/175/35 +f 79/122/30 82/127/30 81/188/30 +f 80/118/29 75/189/29 77/190/29 +f 152/191/28 155/192/28 150/193/28 +f 151/194/33 76/120/33 83/119/33 +f 82/127/33 151/194/33 83/119/33 +f 150/130/33 82/127/33 74/116/33 +f 155/192/33 153/195/33 154/196/33 +f 149/197/32 153/195/32 151/198/32 +f 151/199/29 156/200/29 152/201/29 +f 150/202/30 154/196/30 149/203/30 +f 181/204/33 175/205/33 173/206/33 +f 174/207/33 181/208/33 173/209/33 +f 188/210/33 174/211/33 180/212/33 +f 187/213/33 180/214/33 179/215/33 +f 186/216/33 179/217/33 178/218/33 +f 185/219/33 178/220/33 177/221/33 +f 184/222/33 177/223/33 176/224/33 +f 183/225/33 176/226/33 175/227/33 +f 190/228/33 191/229/33 189/230/33 +f 194/231/33 195/232/33 193/233/33 +f 198/234/33 199/235/33 197/236/33 +f 431/237/31 430/238/31 429/239/31 +f 432/240/28 435/241/28 430/238/28 +f 429/239/32 433/242/32 431/237/32 +f 431/237/29 436/243/29 432/240/29 +f 430/238/30 434/244/30 429/239/30 +f 75/115/28 76/120/28 74/116/28 +f 80/118/29 84/245/29 83/119/29 +f 73/121/30 74/116/30 79/122/30 +f 73/117/31 78/126/31 77/124/31 +f 79/125/32 80/246/32 77/124/32 +f 82/127/32 83/119/32 84/128/32 +f 76/120/33 152/247/33 150/130/33 +f 79/131/31 81/129/31 84/128/31 +f 99/133/32 100/150/32 97/134/32 +f 91/136/32 92/142/32 89/137/32 +f 85/139/31 90/248/31 89/140/31 +f 87/141/29 89/140/29 92/142/29 +f 86/144/30 91/136/30 90/145/30 +f 88/143/33 92/142/33 91/136/33 +f 93/147/31 98/249/31 97/148/31 +f 95/149/29 97/148/29 100/150/29 +f 94/152/30 99/133/30 98/153/30 +f 96/151/33 100/150/33 99/133/33 +f 117/157/32 118/250/32 121/251/32 +f 118/250/32 119/252/32 121/251/32 +f 119/252/32 120/253/32 121/251/32 +f 121/251/32 122/254/32 117/157/32 +f 122/254/32 123/155/32 117/157/32 +f 126/158/29 128/165/29 132/159/29 +f 130/160/32 129/171/32 125/161/32 +f 125/161/30 129/171/30 131/162/30 +f 127/164/28 131/255/28 132/159/28 +f 131/166/34 133/256/34 134/167/34 +f 135/169/30 133/257/30 131/170/30 +f 132/168/29 134/167/29 136/172/29 +f 136/172/35 135/169/35 129/171/35 +f 138/173/29 140/258/29 144/174/29 +f 142/175/32 141/185/32 137/176/32 +f 137/176/30 141/185/30 143/177/30 +f 139/178/28 143/177/28 144/179/28 +f 143/181/34 145/259/34 146/182/34 +f 147/184/30 145/259/30 143/181/30 +f 144/186/29 146/260/29 148/187/29 +f 148/187/35 147/184/35 141/185/35 +f 79/122/30 74/116/30 82/127/30 +f 80/118/29 76/120/29 75/189/29 +f 152/191/28 156/200/28 155/192/28 +f 151/194/33 152/247/33 76/120/33 +f 82/127/33 149/261/33 151/194/33 +f 150/130/33 149/261/33 82/127/33 +f 155/192/33 156/200/33 153/195/33 +f 149/197/32 154/196/32 153/195/32 +f 151/199/29 153/195/29 156/200/29 +f 150/202/30 155/192/30 154/196/30 +f 181/204/33 183/262/33 175/205/33 +f 174/207/33 182/263/33 181/208/33 +f 188/210/33 182/264/33 174/211/33 +f 187/213/33 188/265/33 180/214/33 +f 186/216/33 187/266/33 179/217/33 +f 185/219/33 186/267/33 178/220/33 +f 184/222/33 185/268/33 177/223/33 +f 183/225/33 184/269/33 176/226/33 +f 190/228/33 192/270/33 191/229/33 +f 194/231/33 196/271/33 195/232/33 +f 198/234/33 200/272/33 199/235/33 +f 431/237/31 432/240/31 430/238/31 +f 432/240/28 436/273/28 435/241/28 +f 429/239/32 434/274/32 433/242/32 +f 431/237/29 433/275/29 436/243/29 +f 430/238/30 435/276/30 434/244/30 +s 1 +f 104/277/36 111/278/31 103/279/31 +f 102/280/37 109/281/29 101/282/29 +f 101/282/29 116/283/38 108/284/38 +f 107/285/33 114/286/39 106/287/39 +f 105/288/30 112/289/36 104/277/36 +f 103/279/31 110/290/37 102/280/37 +f 108/284/38 115/291/33 107/292/33 +f 106/287/39 113/293/30 105/288/30 +f 110/290/40 119/294/41 118/295/40 +f 111/278/41 120/296/42 119/297/41 +f 113/293/43 120/298/42 112/289/42 +f 114/286/44 121/299/43 113/293/43 +f 115/300/45 122/301/44 114/286/44 +f 116/283/46 123/302/45 115/291/45 +f 116/283/46 117/303/47 124/304/46 +f 110/290/40 117/305/47 109/281/47 +f 157/306/30 173/209/48 158/307/48 +f 165/308/29 188/210/49 172/309/49 +f 166/310/50 182/263/29 165/311/29 +f 158/312/48 175/205/28 159/313/28 +f 167/314/32 181/204/50 166/315/50 +f 159/316/28 176/226/49 160/317/49 +f 168/318/51 183/225/32 167/319/32 +f 160/320/49 177/223/29 161/321/29 +f 169/322/30 184/222/51 168/323/51 +f 161/324/29 178/220/50 162/325/50 +f 170/326/48 185/219/30 169/327/30 +f 162/328/50 179/217/32 163/329/32 +f 171/330/28 186/216/48 170/331/48 +f 163/332/32 180/214/51 164/333/51 +f 172/334/49 187/213/28 171/335/28 +f 164/336/51 174/211/30 157/337/30 +f 213/338/39 206/339/48 205/340/30 +f 211/341/52 204/342/51 203/343/32 +f 209/344/53 202/345/50 201/346/29 +f 216/347/54 201/346/29 208/348/49 +f 214/349/55 207/350/28 206/339/48 +f 212/351/56 205/352/30 204/342/51 +f 210/353/57 203/343/32 202/345/50 +f 215/354/58 208/348/49 207/350/28 +f 209/344/53 223/355/59 217/356/37 +f 215/357/58 221/358/60 222/359/61 +f 210/353/57 219/360/62 211/361/52 +f 216/347/54 222/359/61 223/355/59 +f 211/361/52 220/362/63 212/363/56 +f 209/344/53 218/364/64 210/353/57 +f 220/362/63 226/365/65 227/366/66 +f 218/364/64 224/367/67 225/368/68 +f 223/355/59 224/367/67 217/356/37 +f 221/358/60 229/369/69 222/359/61 +f 218/364/64 226/365/65 219/360/62 +f 222/359/61 230/370/70 223/355/59 +f 213/371/39 221/358/60 214/372/55 +f 221/358/60 213/371/39 228/373/71 +f 212/363/56 220/362/63 213/374/39 +f 220/362/63 227/366/66 213/374/39 +f 224/367/67 233/375/72 225/368/68 +f 227/376/66 231/377/33 213/378/39 +f 230/370/70 232/379/31 224/367/67 +f 213/380/39 236/381/73 228/382/71 +f 228/382/71 237/383/28 229/384/69 +f 225/368/68 234/385/32 226/386/65 +f 229/384/69 238/387/74 230/370/70 +f 226/386/65 235/388/75 227/376/66 +f 251/389/39 244/390/48 243/391/30 +f 249/392/52 242/393/51 241/394/32 +f 247/395/53 240/396/50 239/397/29 +f 254/398/54 239/397/29 246/399/49 +f 252/400/55 245/401/28 244/390/48 +f 250/402/56 243/403/30 242/393/51 +f 248/404/57 241/394/32 240/396/50 +f 253/405/58 246/399/49 245/401/28 +f 247/395/53 261/406/59 255/407/37 +f 253/408/58 259/409/60 260/410/61 +f 248/404/57 257/411/62 249/412/52 +f 254/398/54 260/410/61 261/406/59 +f 249/412/52 258/413/63 250/414/56 +f 247/395/53 256/415/64 248/404/57 +f 258/413/63 264/416/65 265/417/66 +f 256/415/64 262/418/67 263/419/68 +f 261/406/59 262/418/67 255/407/37 +f 259/409/60 267/420/69 260/410/61 +f 256/415/64 264/416/65 257/411/62 +f 260/410/61 268/421/70 261/406/59 +f 251/422/39 259/409/60 252/423/55 +f 259/409/60 251/422/39 266/424/71 +f 250/414/56 258/413/63 251/425/39 +f 258/413/63 265/417/66 251/425/39 +f 262/418/67 271/426/72 263/419/68 +f 265/427/66 269/428/33 251/429/39 +f 268/421/70 270/430/31 262/418/67 +f 251/431/39 274/432/73 266/433/71 +f 266/433/71 275/434/28 267/435/69 +f 263/419/68 272/436/32 264/437/65 +f 267/435/69 276/438/74 268/421/70 +f 264/437/65 273/439/75 265/427/66 +f 289/440/39 282/441/48 281/442/30 +f 287/443/52 280/444/51 279/445/32 +f 285/446/53 278/447/50 277/448/29 +f 292/449/54 277/448/29 284/450/49 +f 290/451/55 283/452/28 282/441/48 +f 288/453/56 281/454/30 280/444/51 +f 286/455/57 279/445/32 278/447/50 +f 291/456/58 284/450/49 283/452/28 +f 285/446/53 299/457/59 293/458/37 +f 291/459/58 297/460/60 298/461/61 +f 286/455/57 295/462/62 287/463/52 +f 292/449/54 298/461/61 299/457/59 +f 287/463/52 296/464/63 288/465/56 +f 285/446/53 294/466/64 286/455/57 +f 296/464/63 302/467/65 303/468/66 +f 294/466/64 300/469/67 301/470/68 +f 299/457/59 300/469/67 293/458/37 +f 297/460/60 305/471/69 298/461/61 +f 294/466/64 302/467/65 295/462/62 +f 299/457/59 305/471/69 306/472/70 +f 289/473/39 297/460/60 290/474/55 +f 297/460/60 289/473/39 304/475/71 +f 288/465/56 296/464/63 289/476/39 +f 296/464/63 303/468/66 289/476/39 +f 300/469/67 309/477/72 301/470/68 +f 303/478/66 307/479/33 289/480/39 +f 306/472/70 308/481/31 300/469/67 +f 289/482/39 312/483/73 304/484/71 +f 304/484/71 313/485/28 305/486/69 +f 301/470/68 310/487/32 302/488/65 +f 305/486/69 314/489/74 306/472/70 +f 302/488/65 311/490/75 303/478/66 +f 320/491/49 327/492/38 319/493/29 +f 318/494/50 325/495/76 317/496/32 +f 316/497/51 323/498/77 315/499/30 +f 315/499/30 330/500/78 322/501/48 +f 321/502/28 328/503/79 320/491/49 +f 319/504/29 326/505/80 318/494/50 +f 317/496/32 324/506/81 316/497/51 +f 322/501/48 329/507/82 321/502/28 +f 323/498/77 337/508/83 330/500/78 +f 329/509/82 335/510/84 328/511/79 +f 333/512/85 324/506/81 325/513/76 +f 330/500/78 336/514/86 329/509/82 +f 334/515/87 325/513/76 326/516/80 +f 332/517/88 323/498/77 324/506/81 +f 334/515/87 340/518/89 333/512/85 +f 339/519/90 331/520/36 332/517/88 +f 331/520/36 344/521/91 337/508/83 +f 343/522/92 335/510/84 336/514/86 +f 340/518/89 332/517/88 333/512/85 +f 344/521/91 336/514/86 337/508/83 +f 327/523/38 328/511/79 335/510/84 +f 335/510/84 342/524/93 327/523/38 +f 326/516/80 327/525/38 334/515/87 +f 334/515/87 327/525/38 341/526/94 +f 347/527/72 338/528/95 339/519/90 +f 345/529/33 341/530/94 327/531/38 +f 346/532/31 344/521/91 338/528/95 +f 350/533/73 327/534/38 342/535/93 +f 351/536/28 342/535/93 343/537/92 +f 348/538/32 339/519/90 340/539/89 +f 352/540/74 343/537/92 344/521/91 +f 349/541/75 340/539/89 341/530/94 +f 358/542/49 365/543/38 357/544/29 +f 356/545/50 363/546/76 355/547/32 +f 354/548/51 361/549/77 353/550/30 +f 353/550/30 368/551/78 360/552/48 +f 359/553/28 366/554/79 358/542/49 +f 357/555/29 364/556/80 356/545/50 +f 355/547/32 362/557/81 354/548/51 +f 360/552/48 367/558/82 359/553/28 +f 361/549/77 375/559/83 368/551/78 +f 367/560/82 373/561/84 366/562/79 +f 371/563/85 362/557/81 363/564/76 +f 368/551/78 374/565/86 367/560/82 +f 372/566/87 363/564/76 364/567/80 +f 370/568/88 361/549/77 362/557/81 +f 372/566/87 378/569/89 371/563/85 +f 377/570/90 369/571/36 370/568/88 +f 369/571/36 382/572/91 375/559/83 +f 381/573/92 373/561/84 374/565/86 +f 378/569/89 370/568/88 371/563/85 +f 382/572/91 374/565/86 375/559/83 +f 365/574/38 366/562/79 373/561/84 +f 373/561/84 380/575/93 365/574/38 +f 364/567/80 365/576/38 372/566/87 +f 372/566/87 365/576/38 379/577/94 +f 385/578/72 376/579/95 377/570/90 +f 383/580/33 379/581/94 365/582/38 +f 384/583/31 382/572/91 376/579/95 +f 388/584/73 365/585/38 380/586/93 +f 389/587/28 380/586/93 381/588/92 +f 386/589/32 377/570/90 378/590/89 +f 390/591/74 381/588/92 382/572/91 +f 387/592/75 378/590/89 379/581/94 +f 396/593/49 403/594/38 395/595/29 +f 394/596/50 401/597/76 393/598/32 +f 392/599/51 399/600/77 391/601/30 +f 391/601/30 406/602/78 398/603/48 +f 397/604/28 404/605/79 396/593/49 +f 395/606/29 402/607/80 394/596/50 +f 393/598/32 400/608/81 392/599/51 +f 398/603/48 405/609/82 397/604/28 +f 399/600/77 413/610/83 406/602/78 +f 405/611/82 411/612/84 404/613/79 +f 409/614/85 400/608/81 401/615/76 +f 406/602/78 412/616/86 405/611/82 +f 410/617/87 401/615/76 402/618/80 +f 408/619/88 399/600/77 400/608/81 +f 410/617/87 416/620/89 409/614/85 +f 415/621/90 407/622/36 408/619/88 +f 407/622/36 420/623/91 413/610/83 +f 419/624/92 411/612/84 412/616/86 +f 416/620/89 408/619/88 409/614/85 +f 420/623/91 412/616/86 413/610/83 +f 403/625/38 404/613/79 411/612/84 +f 411/612/84 418/626/93 403/625/38 +f 402/618/80 403/627/38 410/617/87 +f 410/617/87 403/627/38 417/628/94 +f 423/629/72 414/630/95 415/621/90 +f 421/631/33 417/632/94 403/633/38 +f 422/634/31 420/623/91 414/630/95 +f 426/635/73 403/636/38 418/637/93 +f 427/638/28 418/637/93 419/639/92 +f 424/640/32 415/621/90 416/641/89 +f 428/642/74 419/639/92 420/623/91 +f 425/643/75 416/641/89 417/632/94 +f 439/644/31 446/645/96 438/646/37 +f 444/647/38 451/648/97 443/649/33 +f 442/650/39 449/651/98 441/652/30 +f 440/653/36 447/654/74 439/655/31 +f 438/646/37 445/656/99 437/657/29 +f 437/657/29 452/658/100 444/647/38 +f 443/649/33 450/659/101 442/650/39 +f 441/652/30 448/660/102 440/653/36 +f 450/659/101 456/661/103 449/662/98 +f 445/663/99 454/664/104 453/665/105 +f 452/658/100 453/665/105 459/666/106 +f 450/659/101 458/667/75 457/668/107 +f 449/662/98 455/669/108 448/670/102 +f 452/658/100 458/667/75 451/648/97 +f 459/666/106 465/671/109 458/667/75 +f 457/668/107 463/672/110 456/661/103 +f 453/665/105 461/673/111 460/674/112 +f 459/666/106 460/674/112 466/675/113 +f 457/668/107 465/671/109 464/676/114 +f 456/661/103 462/677/115 455/669/108 +f 448/670/102 455/669/108 447/678/74 +f 455/669/108 462/677/115 447/678/74 +f 446/679/96 447/680/74 454/664/104 +f 454/664/104 447/680/74 461/673/111 +f 466/675/113 473/681/32 465/671/109 +f 464/676/114 471/682/30 463/683/110 +f 461/684/111 468/685/29 460/686/112 +f 461/684/111 467/687/28 469/688/49 +f 460/686/112 474/689/50 466/675/113 +f 462/690/115 467/691/28 447/692/74 +f 464/676/114 473/681/32 472/693/51 +f 463/683/110 470/694/48 462/690/115 +f 477/695/31 484/696/96 476/697/37 +f 482/698/38 489/699/97 481/700/33 +f 480/701/39 487/702/98 479/703/30 +f 478/704/36 485/705/74 477/706/31 +f 476/697/37 483/707/99 475/708/29 +f 475/708/29 490/709/100 482/698/38 +f 481/700/33 488/710/101 480/701/39 +f 479/703/30 486/711/102 478/704/36 +f 488/710/101 494/712/103 487/713/98 +f 483/714/99 492/715/104 491/716/105 +f 483/714/99 497/717/106 490/709/100 +f 488/710/101 496/718/75 495/719/107 +f 487/713/98 493/720/108 486/721/102 +f 490/709/100 496/718/75 489/699/97 +f 497/717/106 503/722/109 496/718/75 +f 494/712/103 502/723/114 501/724/110 +f 492/715/104 498/725/112 491/716/105 +f 497/717/106 498/725/112 504/726/113 +f 495/719/107 503/722/109 502/723/114 +f 494/712/103 500/727/115 493/720/108 +f 486/721/102 493/720/108 485/728/74 +f 493/720/108 500/727/115 485/728/74 +f 484/729/96 485/730/74 492/715/104 +f 492/715/104 485/730/74 499/731/111 +f 504/726/113 511/732/32 503/722/109 +f 502/723/114 509/733/30 501/734/110 +f 499/735/111 506/736/29 498/737/112 +f 499/735/111 505/738/28 507/739/49 +f 498/737/112 512/740/50 504/726/113 +f 500/741/115 505/742/28 485/743/74 +f 502/723/114 511/732/32 510/744/51 +f 501/734/110 508/745/48 500/741/115 +f 515/746/31 522/747/96 514/748/37 +f 520/749/38 527/750/97 519/751/33 +f 518/752/39 525/753/98 517/754/30 +f 516/755/36 523/756/74 515/757/31 +f 514/748/37 521/758/99 513/759/29 +f 513/759/29 528/760/100 520/749/38 +f 519/751/33 526/761/101 518/752/39 +f 517/754/30 524/762/102 516/755/36 +f 525/763/98 533/764/107 532/765/103 +f 521/766/99 530/767/104 529/768/105 +f 521/766/99 535/769/106 528/760/100 +f 526/761/101 534/770/75 533/764/107 +f 525/763/98 531/771/108 524/772/102 +f 528/760/100 534/770/75 527/750/97 +f 535/769/106 541/773/109 534/770/75 +f 533/764/107 539/774/110 532/765/103 +f 530/767/104 536/775/112 529/768/105 +f 529/768/105 542/776/113 535/769/106 +f 533/764/107 541/773/109 540/777/114 +f 531/771/108 539/774/110 538/778/115 +f 524/772/102 531/771/108 523/779/74 +f 531/771/108 538/778/115 523/779/74 +f 522/780/96 523/781/74 530/767/104 +f 530/767/104 523/781/74 537/782/111 +f 542/776/113 549/783/32 541/773/109 +f 540/777/114 547/784/30 539/785/110 +f 537/786/111 544/787/29 536/788/112 +f 537/786/111 543/789/28 545/790/49 +f 536/788/112 550/791/50 542/776/113 +f 538/792/115 543/793/28 523/794/74 +f 540/777/114 549/783/32 548/795/51 +f 539/785/110 546/796/48 538/792/115 +f 104/277/36 112/289/36 111/278/31 +f 102/280/37 110/290/37 109/281/29 +f 101/282/29 109/281/29 116/283/38 +f 107/285/33 115/300/33 114/286/39 +f 105/288/30 113/293/30 112/289/36 +f 103/279/31 111/278/31 110/290/37 +f 108/284/38 116/283/38 115/291/33 +f 106/287/39 114/286/39 113/293/30 +f 110/290/40 111/278/41 119/294/41 +f 111/278/41 112/289/42 120/296/42 +f 113/293/43 121/797/43 120/298/42 +f 114/286/44 122/798/44 121/299/43 +f 115/300/45 123/799/45 122/301/44 +f 116/283/46 124/800/46 123/302/45 +f 116/283/46 109/281/47 117/303/47 +f 110/290/40 118/801/40 117/305/47 +f 157/306/30 174/207/30 173/209/48 +f 165/308/29 182/264/29 188/210/49 +f 166/310/50 181/208/50 182/263/29 +f 158/312/48 173/206/48 175/205/28 +f 167/314/32 183/262/32 181/204/50 +f 159/316/28 175/227/28 176/226/49 +f 168/318/51 184/269/51 183/225/32 +f 160/320/49 176/224/49 177/223/29 +f 169/322/30 185/268/30 184/222/51 +f 161/324/29 177/221/29 178/220/50 +f 170/326/48 186/267/48 185/219/30 +f 162/328/50 178/218/50 179/217/32 +f 171/330/28 187/266/28 186/216/48 +f 163/332/32 179/215/32 180/214/51 +f 172/334/49 188/265/49 187/213/28 +f 164/336/51 180/212/51 174/211/30 +f 213/338/39 214/349/55 206/339/48 +f 211/341/52 212/351/56 204/342/51 +f 209/344/53 210/353/57 202/345/50 +f 216/347/54 209/344/53 201/346/29 +f 214/349/55 215/354/58 207/350/28 +f 212/351/56 213/802/39 205/352/30 +f 210/353/57 211/341/52 203/343/32 +f 215/354/58 216/347/54 208/348/49 +f 209/344/53 216/347/54 223/355/59 +f 215/357/58 214/372/55 221/358/60 +f 210/353/57 218/364/64 219/360/62 +f 216/347/54 215/357/58 222/359/61 +f 211/361/52 219/360/62 220/362/63 +f 209/344/53 217/356/37 218/364/64 +f 220/362/63 219/360/62 226/365/65 +f 218/364/64 217/356/37 224/367/67 +f 223/355/59 230/370/70 224/367/67 +f 221/358/60 228/373/71 229/369/69 +f 218/364/64 225/368/68 226/365/65 +f 222/359/61 229/369/69 230/370/70 +f 224/367/67 232/379/31 233/375/72 +f 227/376/66 235/388/75 231/377/33 +f 230/370/70 238/387/74 232/379/31 +f 213/380/39 231/803/33 236/381/73 +f 228/382/71 236/381/73 237/383/28 +f 225/368/68 233/375/72 234/385/32 +f 229/384/69 237/383/28 238/387/74 +f 226/386/65 234/385/32 235/388/75 +f 251/389/39 252/400/55 244/390/48 +f 249/392/52 250/402/56 242/393/51 +f 247/395/53 248/404/57 240/396/50 +f 254/398/54 247/395/53 239/397/29 +f 252/400/55 253/405/58 245/401/28 +f 250/402/56 251/804/39 243/403/30 +f 248/404/57 249/392/52 241/394/32 +f 253/405/58 254/398/54 246/399/49 +f 247/395/53 254/398/54 261/406/59 +f 253/408/58 252/423/55 259/409/60 +f 248/404/57 256/415/64 257/411/62 +f 254/398/54 253/408/58 260/410/61 +f 249/412/52 257/411/62 258/413/63 +f 247/395/53 255/407/37 256/415/64 +f 258/413/63 257/411/62 264/416/65 +f 256/415/64 255/407/37 262/418/67 +f 261/406/59 268/421/70 262/418/67 +f 259/409/60 266/424/71 267/420/69 +f 256/415/64 263/419/68 264/416/65 +f 260/410/61 267/420/69 268/421/70 +f 262/418/67 270/430/31 271/426/72 +f 265/427/66 273/439/75 269/428/33 +f 268/421/70 276/438/74 270/430/31 +f 251/431/39 269/805/33 274/432/73 +f 266/433/71 274/432/73 275/434/28 +f 263/419/68 271/426/72 272/436/32 +f 267/435/69 275/434/28 276/438/74 +f 264/437/65 272/436/32 273/439/75 +f 289/440/39 290/451/55 282/441/48 +f 287/443/52 288/453/56 280/444/51 +f 285/446/53 286/455/57 278/447/50 +f 292/449/54 285/446/53 277/448/29 +f 290/451/55 291/456/58 283/452/28 +f 288/453/56 289/806/39 281/454/30 +f 286/455/57 287/443/52 279/445/32 +f 291/456/58 292/449/54 284/450/49 +f 285/446/53 292/449/54 299/457/59 +f 291/459/58 290/474/55 297/460/60 +f 286/455/57 294/466/64 295/462/62 +f 292/449/54 291/459/58 298/461/61 +f 287/463/52 295/462/62 296/464/63 +f 285/446/53 293/458/37 294/466/64 +f 296/464/63 295/462/62 302/467/65 +f 294/466/64 293/458/37 300/469/67 +f 299/457/59 306/472/70 300/469/67 +f 297/460/60 304/475/71 305/471/69 +f 294/466/64 301/470/68 302/467/65 +f 299/457/59 298/461/61 305/471/69 +f 300/469/67 308/481/31 309/477/72 +f 303/478/66 311/490/75 307/479/33 +f 306/472/70 314/489/74 308/481/31 +f 289/482/39 307/807/33 312/483/73 +f 304/484/71 312/483/73 313/485/28 +f 301/470/68 309/477/72 310/487/32 +f 305/486/69 313/485/28 314/489/74 +f 302/488/65 310/487/32 311/490/75 +f 320/491/49 328/503/79 327/492/38 +f 318/494/50 326/505/80 325/495/76 +f 316/497/51 324/506/81 323/498/77 +f 315/499/30 323/498/77 330/500/78 +f 321/502/28 329/507/82 328/503/79 +f 319/504/29 327/808/38 326/505/80 +f 317/496/32 325/495/76 324/506/81 +f 322/501/48 330/500/78 329/507/82 +f 323/498/77 331/520/36 337/508/83 +f 329/509/82 336/514/86 335/510/84 +f 333/512/85 332/517/88 324/506/81 +f 330/500/78 337/508/83 336/514/86 +f 334/515/87 333/512/85 325/513/76 +f 332/517/88 331/520/36 323/498/77 +f 334/515/87 341/526/94 340/518/89 +f 339/519/90 338/528/95 331/520/36 +f 331/520/36 338/528/95 344/521/91 +f 343/522/92 342/524/93 335/510/84 +f 340/518/89 339/519/90 332/517/88 +f 344/521/91 343/522/92 336/514/86 +f 347/527/72 346/532/31 338/528/95 +f 345/529/33 349/541/75 341/530/94 +f 346/532/31 352/540/74 344/521/91 +f 350/533/73 345/809/33 327/534/38 +f 351/536/28 350/533/73 342/535/93 +f 348/538/32 347/527/72 339/519/90 +f 352/540/74 351/536/28 343/537/92 +f 349/541/75 348/538/32 340/539/89 +f 358/542/49 366/554/79 365/543/38 +f 356/545/50 364/556/80 363/546/76 +f 354/548/51 362/557/81 361/549/77 +f 353/550/30 361/549/77 368/551/78 +f 359/553/28 367/558/82 366/554/79 +f 357/555/29 365/810/38 364/556/80 +f 355/547/32 363/546/76 362/557/81 +f 360/552/48 368/551/78 367/558/82 +f 361/549/77 369/571/36 375/559/83 +f 367/560/82 374/565/86 373/561/84 +f 371/563/85 370/568/88 362/557/81 +f 368/551/78 375/559/83 374/565/86 +f 372/566/87 371/563/85 363/564/76 +f 370/568/88 369/571/36 361/549/77 +f 372/566/87 379/577/94 378/569/89 +f 377/570/90 376/579/95 369/571/36 +f 369/571/36 376/579/95 382/572/91 +f 381/573/92 380/575/93 373/561/84 +f 378/569/89 377/570/90 370/568/88 +f 382/572/91 381/573/92 374/565/86 +f 385/578/72 384/583/31 376/579/95 +f 383/580/33 387/592/75 379/581/94 +f 384/583/31 390/591/74 382/572/91 +f 388/584/73 383/811/33 365/585/38 +f 389/587/28 388/584/73 380/586/93 +f 386/589/32 385/578/72 377/570/90 +f 390/591/74 389/587/28 381/588/92 +f 387/592/75 386/589/32 378/590/89 +f 396/593/49 404/605/79 403/594/38 +f 394/596/50 402/607/80 401/597/76 +f 392/599/51 400/608/81 399/600/77 +f 391/601/30 399/600/77 406/602/78 +f 397/604/28 405/609/82 404/605/79 +f 395/606/29 403/812/38 402/607/80 +f 393/598/32 401/597/76 400/608/81 +f 398/603/48 406/602/78 405/609/82 +f 399/600/77 407/622/36 413/610/83 +f 405/611/82 412/616/86 411/612/84 +f 409/614/85 408/619/88 400/608/81 +f 406/602/78 413/610/83 412/616/86 +f 410/617/87 409/614/85 401/615/76 +f 408/619/88 407/622/36 399/600/77 +f 410/617/87 417/628/94 416/620/89 +f 415/621/90 414/630/95 407/622/36 +f 407/622/36 414/630/95 420/623/91 +f 419/624/92 418/626/93 411/612/84 +f 416/620/89 415/621/90 408/619/88 +f 420/623/91 419/624/92 412/616/86 +f 423/629/72 422/634/31 414/630/95 +f 421/631/33 425/643/75 417/632/94 +f 422/634/31 428/642/74 420/623/91 +f 426/635/73 421/813/33 403/636/38 +f 427/638/28 426/635/73 418/637/93 +f 424/640/32 423/629/72 415/621/90 +f 428/642/74 427/638/28 419/639/92 +f 425/643/75 424/640/32 416/641/89 +f 439/644/31 447/814/74 446/645/96 +f 444/647/38 452/658/100 451/648/97 +f 442/650/39 450/659/101 449/651/98 +f 440/653/36 448/660/102 447/654/74 +f 438/646/37 446/645/96 445/656/99 +f 437/657/29 445/656/99 452/658/100 +f 443/649/33 451/648/97 450/659/101 +f 441/652/30 449/651/98 448/660/102 +f 450/659/101 457/668/107 456/661/103 +f 445/663/99 446/679/96 454/664/104 +f 452/658/100 445/663/99 453/665/105 +f 450/659/101 451/648/97 458/667/75 +f 449/662/98 456/661/103 455/669/108 +f 452/658/100 459/666/106 458/667/75 +f 459/666/106 466/675/113 465/671/109 +f 457/668/107 464/676/114 463/672/110 +f 453/665/105 454/664/104 461/673/111 +f 459/666/106 453/665/105 460/674/112 +f 457/668/107 458/667/75 465/671/109 +f 456/661/103 463/672/110 462/677/115 +f 466/675/113 474/689/50 473/681/32 +f 464/676/114 472/693/51 471/682/30 +f 461/684/111 469/688/49 468/685/29 +f 461/684/111 447/815/74 467/687/28 +f 460/686/112 468/685/29 474/689/50 +f 462/690/115 470/694/48 467/691/28 +f 464/676/114 465/671/109 473/681/32 +f 463/683/110 471/682/30 470/694/48 +f 477/695/31 485/816/74 484/696/96 +f 482/698/38 490/709/100 489/699/97 +f 480/701/39 488/710/101 487/702/98 +f 478/704/36 486/711/102 485/705/74 +f 476/697/37 484/696/96 483/707/99 +f 475/708/29 483/707/99 490/709/100 +f 481/700/33 489/699/97 488/710/101 +f 479/703/30 487/702/98 486/711/102 +f 488/710/101 495/719/107 494/712/103 +f 483/714/99 484/729/96 492/715/104 +f 483/714/99 491/716/105 497/717/106 +f 488/710/101 489/699/97 496/718/75 +f 487/713/98 494/712/103 493/720/108 +f 490/709/100 497/717/106 496/718/75 +f 497/717/106 504/726/113 503/722/109 +f 494/712/103 495/719/107 502/723/114 +f 492/715/104 499/731/111 498/725/112 +f 497/717/106 491/716/105 498/725/112 +f 495/719/107 496/718/75 503/722/109 +f 494/712/103 501/724/110 500/727/115 +f 504/726/113 512/740/50 511/732/32 +f 502/723/114 510/744/51 509/733/30 +f 499/735/111 507/739/49 506/736/29 +f 499/735/111 485/817/74 505/738/28 +f 498/737/112 506/736/29 512/740/50 +f 500/741/115 508/745/48 505/742/28 +f 502/723/114 503/722/109 511/732/32 +f 501/734/110 509/733/30 508/745/48 +f 515/746/31 523/818/74 522/747/96 +f 520/749/38 528/760/100 527/750/97 +f 518/752/39 526/761/101 525/753/98 +f 516/755/36 524/762/102 523/756/74 +f 514/748/37 522/747/96 521/758/99 +f 513/759/29 521/758/99 528/760/100 +f 519/751/33 527/750/97 526/761/101 +f 517/754/30 525/753/98 524/762/102 +f 525/763/98 526/761/101 533/764/107 +f 521/766/99 522/780/96 530/767/104 +f 521/766/99 529/768/105 535/769/106 +f 526/761/101 527/750/97 534/770/75 +f 525/763/98 532/765/103 531/771/108 +f 528/760/100 535/769/106 534/770/75 +f 535/769/106 542/776/113 541/773/109 +f 533/764/107 540/777/114 539/774/110 +f 530/767/104 537/782/111 536/775/112 +f 529/768/105 536/775/112 542/776/113 +f 533/764/107 534/770/75 541/773/109 +f 531/771/108 532/765/103 539/774/110 +f 542/776/113 550/791/50 549/783/32 +f 540/777/114 548/795/51 547/784/30 +f 537/786/111 545/790/49 544/787/29 +f 537/786/111 523/819/74 543/789/28 +f 536/788/112 544/787/29 550/791/50 +f 538/792/115 546/796/48 543/793/28 +f 540/777/114 541/773/109 549/783/32 +f 539/785/110 547/784/30 546/796/48 diff --git a/src/main/resources/assets/hbm/textures/models/machines/compressor.png b/src/main/resources/assets/hbm/textures/models/machines/compressor.png new file mode 100644 index 0000000000000000000000000000000000000000..64e95a024e129fbba8570aa321ae20db24c0a209 GIT binary patch literal 2131 zcmZ`*dpuNm8=sLFR!p`KVJKG8#@Z5Im%+#-mvu>$K`NFAVPuT)+RD9Y+u5X%S#Pe% z492A}Gc0mnTkbP-@VbR@$#rOE_H@ttc{_icbDr~gF2C>Z`+c6@NpiG5xl3GL90Gyt zvbM5tf6c05SX~N1=1xdlQUcztkAkobaBwM z!e<0s*E9;xQ61Ysk)UFfh1i1YHnc-7wk>Y7$91D=NanC6CBjT+Rc#Cv%=S(R(q z05&}#n8;Ru`U5J=&mu#>JE3cMSvplCpJc(Cfm&aA~+p_rdOaSKWAoZ#z%dMlJnk`iU1KCW%E_!Jvyzqi8x6 zp6AZ(p`*=b5tIfMDY~gp4rS2(YS@O2>`ywz$~tkk;~-{2LNGBH;vnLkk*B}U)oo*W zEn2gD<%9!|TS{$kM1HRKMe#=rNmUlPp3>(?7XLB>n9h~l)Z$nFELXruzQsl>S6#yn zx&0R@wpSSb2#pL^4qS&M79iprdE#T~p#%UgzrGRD0sD`EN*(jK@&1TgY2RBV9IB-+Sac10~wYN~OpT%r>*!Z7!@`I%4>o3z!ebn&K|t_bw{ zBR4pkCLJW7)w>ZoyVlHK>%!3K!)UV0o}noJ2Mu|uijFI92qsd1Ah9T0l#QR}YJS@7 z-eyE)Go;#vw{c5H>`7kyM>1S+66fdpW+R@LaoXG4aS^%6F94GV=)J}~y4 zz6**L7iDE-U8$>QiceQg9mx6rZrftMZn)qa+Kh8KM*E89e|<7cj+o$^+HG5P-|T8} z*M@RH#5jv}uK|raLtWr;sfJ2^kDJM4vfiQG9?^BO5?3G!axT4HvTr4nJu{2AH5^c3 zFmo+((r)JmF@GU0Fs5MBAhC0GBOw6GOv%+>VM;apkM=>ybq#h3zN;pOL**X|^%Ing*7VCoh*;f6e=ZwiLLuL5;= zTRh&!IkR;k@ZmEp5zN~Uao)z8jKXS}dV@qmFm{n=cIZ;W+n9~Z3`I%1?o$kPi#roNHUp z?vF~WOm&SJv2%w-!B*(so)@#Ku9h14*BK3dB`}N`~GuS3!Hisg3y?d2C*?H5E zB&U}Qfyt{*Ms=AL7#)6x<%cS2Mn`ywF5m&9!}@QgEf)j{W%>Pmr_r7R3bF+@Ac9n6 z$lv$*3GBUAc-P%1-`#A2iCr@ecT+sxeXG!pn}2))^R#mzj09?3-#%E-LV~ud1Vuk! zuWS~Wk76}pk}PLnj-<`?+w@^7ddNZRkqY7G@j zVTuoKuH;#_%3Y5e(YX9_(KA34Sj31NBV@*n{1K#?&>UMnkTr2)O$SDk+pdxpEs=-Q zKhL*$D~BR&AD50*`Xii!Ecu!Ux8@qfQq7$)~3Cj8yjPfjc381aWs|*IC<{ z!>6o4by|ugs%8C}KHw)u0uKp}5#nx)IywySk$9``vV|Qocw5)e^>89(783lfp+64R z&m)h6Q?%d)H2%qxtu9+j=?|@g{sf|=i#FcrsQBcLxZtUk?rbB|xlE_7)T~@A!WJO31#_ literal 0 HcmV?d00001 From b8f32a511b3c5ae904128d561348741d24d940b9 Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 12 May 2023 14:35:06 +0200 Subject: [PATCH 030/432] train collision dummies --- .../java/com/hbm/entity/EntityMappings.java | 2 +- .../hbm/entity/projectile/EntityMeteor.java | 2 +- .../hbm/entity/train/EntityRailCarBase.java | 116 +++++++++++++++++- .../entity/train/EntityRailCarRidable.java | 21 +++- .../com/hbm/entity/train/TrainCargoTram.java | 13 +- src/main/java/com/hbm/main/ClientProxy.java | 2 + src/main/java/com/hbm/util/BobMathUtil.java | 13 ++ 7 files changed, 156 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index cf96e2e28..f5457e462 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -110,7 +110,7 @@ public class EntityMappings { addEntity(EntityTSmokeFX.class, "entity_t_smoke_fx", 1000); addEntity(EntityNukeExplosionMK3.class, "entity_nuke_mk3", 1000); addEntity(EntityVortex.class, "entity_vortex", 250); - addEntity(EntityMeteor.class, "entity_meteor", 1000); + addEntity(EntityMeteor.class, "entity_meteor", 250); addEntity(EntityLaser.class, "entity_laser", 1000); addEntity(EntityBoxcar.class, "entity_boxcar", 1000); addEntity(EntityMissileTaint.class, "entity_missile_taint", 1000); diff --git a/src/main/java/com/hbm/entity/projectile/EntityMeteor.java b/src/main/java/com/hbm/entity/projectile/EntityMeteor.java index 3582a80c3..3fea4e2e3 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityMeteor.java +++ b/src/main/java/com/hbm/entity/projectile/EntityMeteor.java @@ -74,7 +74,7 @@ public class EntityMeteor extends Entity { @Override @SideOnly(Side.CLIENT) public boolean isInRangeToRenderDist(double distance) { - return distance < 500000; + return true; } @Override diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java index f146af9de..65c5b1cf4 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java @@ -9,13 +9,15 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.DamageSource; import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.World; public abstract class EntityRailCarBase extends Entity { - + public boolean isOnRail = true; private int turnProgress; private double trainX; @@ -27,6 +29,9 @@ public abstract class EntityRailCarBase extends Entity { @SideOnly(Side.CLIENT) private double velocityX; @SideOnly(Side.CLIENT) private double velocityY; @SideOnly(Side.CLIENT) private double velocityZ; + + public boolean initDummies = false; + public BoundingBoxDummyEntity[] dummies = new BoundingBoxDummyEntity[0]; public EntityRailCarBase(World world) { super(world); @@ -68,6 +73,22 @@ public abstract class EntityRailCarBase extends Entity { } } else { + DummyConfig[] definitions = this.getDummies(); + + if(!this.initDummies) { + this.dummies = new BoundingBoxDummyEntity[definitions.length]; + + for(int i = 0; i < definitions.length; i++) { + DummyConfig def = definitions[i]; + BoundingBoxDummyEntity dummy = new BoundingBoxDummyEntity(worldObj, this, def.width, def.height); + dummy.setPosition(posX, posY, posZ); + worldObj.spawnEntityInWorld(dummy); + this.dummies[i] = dummy; + } + + this.initDummies = true; + } + BlockPos anchor = this.getCurentAnchorPos(); Vec3 corePos = getRelPosAlongRail(anchor, this.getCurrentSpeed()); @@ -81,6 +102,7 @@ public abstract class EntityRailCarBase extends Entity { if(frontPos == null || backPos == null) { this.derail(); + return; } else { this.prevRotationYaw = this.rotationYaw; this.rotationYaw = this.movementYaw = generateYaw(frontPos, backPos); @@ -88,6 +110,18 @@ public abstract class EntityRailCarBase extends Entity { this.velocityChanged = true; } } + + for(int i = 0; i < definitions.length; i++) { + DummyConfig def = definitions[i]; + BoundingBoxDummyEntity dummy = dummies[i]; + Vec3 rot = Vec3.createVectorHelper(def.offset.xCoord, def.offset.yCoord, def.offset.zCoord); + rot.rotateAroundY((float) (-this.rotationYaw * Math.PI / 180)); + double x = posX + rot.xCoord; + double y = posY + rot.yCoord; + double z = posZ + rot.zCoord; + dummy.setSize(def.width, def.height); // TEMP + dummy.setPosition(x, y, z); + } } } @@ -199,11 +233,85 @@ public abstract class EntityRailCarBase extends Entity { /** Invisible entities that make up the dynamic bounding structure of the train, moving as the train rotates. */ public static class BoundingBoxDummyEntity extends Entity { - public BoundingBoxDummyEntity(World world) { this(world, 1F, 1F); } - public BoundingBoxDummyEntity(World world, float width, float height) { super(world); this.setSize(width, height);} - @Override protected void entityInit() { } + + private int turnProgress; + private double trainX; + private double trainY; + private double trainZ; + public EntityRailCarBase train; + + public BoundingBoxDummyEntity(World world) { this(world, null, 1F, 1F); } + public BoundingBoxDummyEntity(World world, EntityRailCarBase train, float width, float height) { + super(world); + this.setSize(width, height); + this.train = train; + if(train != null) this.dataWatcher.updateObject(3, train.getEntityId()); + } + + @Override protected void setSize(float width, float height) { + super.setSize(width, height); + this.dataWatcher.updateObject(4, width); + this.dataWatcher.updateObject(5, height); + } + + @Override protected void entityInit() { + this.dataWatcher.addObject(3, new Integer(1)); + this.dataWatcher.addObject(4, new Float(1F)); + this.dataWatcher.addObject(5, new Float(1F)); + } + @Override protected void writeEntityToNBT(NBTTagCompound nbt) { } @Override public boolean writeToNBTOptional(NBTTagCompound nbt) { return false; } @Override public void readEntityFromNBT(NBTTagCompound nbt) { this.setDead(); } + @Override public boolean canBePushed() { return true; } + @Override public boolean canBeCollidedWith() { return !this.isDead; } + + @Override public boolean attackEntityFrom(DamageSource source, float amount) { if(train != null) return train.attackEntityFrom(source, amount); return super.attackEntityFrom(source, amount); } + @Override public boolean interactFirst(EntityPlayer player) { if(train != null) return train.interactFirst(player); return super.interactFirst(player); } + + @Override public void onUpdate() { + if(!worldObj.isRemote) { + if(this.train.isDead) { + this.setDead(); + } + } else { + + if(this.turnProgress > 0) { + this.prevRotationYaw = this.rotationYaw; + double x = this.posX + (this.trainX - this.posX) / (double) this.turnProgress; + double y = this.posY + (this.trainY - this.posY) / (double) this.turnProgress; + double z = this.posZ + (this.trainZ - this.posZ) / (double) this.turnProgress; + --this.turnProgress; + this.setPosition(x, y, z); + } else { + this.setPosition(this.posX, this.posY, this.posZ); + } + + this.setSize(this.dataWatcher.getWatchableObjectFloat(4), this.dataWatcher.getWatchableObjectFloat(5)); + } + } + + @Override @SideOnly(Side.CLIENT) public void setPositionAndRotation2(double posX, double posY, double posZ, float yaw, float pitch, int turnProg) { + this.trainX = posX; + this.trainY = posY; + this.trainZ = posZ; + this.turnProgress = turnProg + 2; + } + } + + public DummyConfig[] getDummies() { + return new DummyConfig[0]; + } + + public static class DummyConfig { + public Vec3 offset; + public float width; + public float height; + + public DummyConfig(float width, float height, Vec3 offset) { + this.width = width; + this.height = height; + this.offset = offset; + } } } diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java b/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java index 6b6bb08fc..084beef8a 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java @@ -1,8 +1,11 @@ package com.hbm.entity.train; +import com.hbm.util.BobMathUtil; + import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.World; @@ -32,9 +35,13 @@ public abstract class EntityRailCarRidable extends EntityRailCarCargo { seat.rotateAroundY((float) (-this.rotationYaw * Math.PI / 180)); double x = posX + seat.xCoord; - double y = posY + seat.yCoord; double z = posZ + seat.zCoord; - double dist = Vec3.createVectorHelper(player.posX - x, player.posY - y, player.posZ - z).lengthVector(); + + double deltaX = player.posX - x; + double deltaZ = player.posZ - z; + double radians = -Math.atan2(deltaX, deltaZ); + double degrees = MathHelper.wrapAngleTo180_double(radians * 180D / Math.PI - 90); + double dist = Math.abs(BobMathUtil.angularDifference(degrees, player.rotationYaw)); if(dist < nearestDist) { nearestDist = dist; @@ -46,9 +53,13 @@ public abstract class EntityRailCarRidable extends EntityRailCarCargo { Vec3 seat = getRiderSeatPosition(); seat.rotateAroundY((float) (-this.rotationYaw * Math.PI / 180)); double x = posX + seat.xCoord; - double y = posY + seat.yCoord; double z = posZ + seat.zCoord; - double dist = Vec3.createVectorHelper(player.posX - x, player.posY - y, player.posZ - z).lengthVector(); + + double deltaX = player.posX - x; + double deltaZ = player.posZ - z; + double radians = -Math.atan2(deltaX, deltaZ); + double degrees = MathHelper.wrapAngleTo180_double(radians * 180D / Math.PI - 90); + double dist = Math.abs(BobMathUtil.angularDifference(degrees, player.rotationYaw)); if(dist < nearestDist) { nearestDist = dist; @@ -56,7 +67,7 @@ public abstract class EntityRailCarRidable extends EntityRailCarCargo { } } - if(nearestDist > 20) return true; + if(nearestDist > 180) return true; if(nearestSeat == -1) { player.mountEntity(this); diff --git a/src/main/java/com/hbm/entity/train/TrainCargoTram.java b/src/main/java/com/hbm/entity/train/TrainCargoTram.java index 5dcff8b21..c88d6b35c 100644 --- a/src/main/java/com/hbm/entity/train/TrainCargoTram.java +++ b/src/main/java/com/hbm/entity/train/TrainCargoTram.java @@ -30,7 +30,7 @@ public class TrainCargoTram extends EntityRailCarRidable implements IGUIProvider public TrainCargoTram(World world) { super(world); - this.setSize(2F, 1F); + this.setSize(1F, 1F); } public double speed = 0; @@ -78,7 +78,16 @@ public class TrainCargoTram extends EntityRailCarRidable implements IGUIProvider } @Override - public boolean attackEntityFrom(DamageSource p_70097_1_, float p_70097_2_) { + public DummyConfig[] getDummies() { + return new DummyConfig[] { + new DummyConfig(2F, 1F, Vec3.createVectorHelper(0, 0, 1.5)), + new DummyConfig(2F, 1F, Vec3.createVectorHelper(0, 0, 0)), + new DummyConfig(2F, 1F, Vec3.createVectorHelper(0, 0, -1.5)) + }; + } + + @Override + public boolean attackEntityFrom(DamageSource source, float amount) { if(!this.worldObj.isRemote && !this.isDead) { this.setDead(); } diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 8143d4828..3e3fecd69 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -61,6 +61,7 @@ import com.hbm.entity.mob.siege.*; import com.hbm.entity.particle.*; import com.hbm.entity.projectile.*; import com.hbm.entity.train.*; +import com.hbm.entity.train.EntityRailCarBase.BoundingBoxDummyEntity; import com.hbm.entity.train.EntityRailCarRidable.SeatDummyEntity; import com.hbm.handler.CasingEjector; import com.hbm.handler.HbmKeybinds; @@ -685,6 +686,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityMagnusCartus.class, new RenderMagnusCartus()); //trains RenderingRegistry.registerEntityRenderingHandler(SeatDummyEntity.class, new RenderEmpty()); + RenderingRegistry.registerEntityRenderingHandler(BoundingBoxDummyEntity.class, new RenderEmpty()); RenderingRegistry.registerEntityRenderingHandler(TrainCargoTram.class, new RenderTrainCargoTram()); //items RenderingRegistry.registerEntityRenderingHandler(EntityMovingItem.class, new RenderMovingItem()); diff --git a/src/main/java/com/hbm/util/BobMathUtil.java b/src/main/java/com/hbm/util/BobMathUtil.java index bfb8cc6f6..dde5fe762 100644 --- a/src/main/java/com/hbm/util/BobMathUtil.java +++ b/src/main/java/com/hbm/util/BobMathUtil.java @@ -1,5 +1,6 @@ package com.hbm.util; +import java.lang.reflect.Field; import java.math.BigDecimal; import java.math.RoundingMode; import java.text.NumberFormat; @@ -9,6 +10,7 @@ import java.util.List; import javax.annotation.Nonnegative; +import cpw.mods.fml.relauncher.ReflectionHelper; import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraftforge.common.util.ForgeDirection; @@ -193,4 +195,15 @@ public class BobMathUtil { public static double squirt(double x) { return Math.sqrt(x + 1D / ((x + 2D) * (x + 2D))) - 1D / (x + 2D); } + + /** A convenient way to re-define the value of pi, should the laws of nature change. */ + public static void setPi(double pi) { + Field field = ReflectionHelper.findField(Math.class, "PI"); + try { field.setDouble(null, pi); } catch(Exception e) { } + } + + public static double angularDifference(double alpha, double beta) { + double delta = (beta - alpha + 180) % 360 - 180; + return delta < -180 ? delta + 360 : delta; + } } From f52eb08301a69226e61bd97c8cd3402c0c90e106 Mon Sep 17 00:00:00 2001 From: Vaern Date: Sat, 13 May 2023 22:34:48 -0700 Subject: [PATCH 031/432] :3 Added IBlowable for fan; created TE for a piston-based inserter (IInsertable). The former will improve cooling for pile setups and the latter will allow for automation, in combination with comparator output for pile fuel. --- src/main/java/api/hbm/block/IBlowable.java | 10 + src/main/java/api/hbm/block/IInsertable.java | 10 + .../com/hbm/blocks/machine/MachineFan.java | 10 +- .../hbm/blocks/machine/PistonInserter.java | 210 ++++++++++++++++++ .../pile/BlockGraphiteBreedingFuel.java | 1 + .../machine/pile/BlockGraphiteFuel.java | 9 +- .../machine/pile/TileEntityPileBase.java | 20 +- .../machine/pile/TileEntityPileFuel.java | 15 ++ .../machine/pile/TileEntityPileSource.java | 2 +- 9 files changed, 274 insertions(+), 13 deletions(-) create mode 100644 src/main/java/api/hbm/block/IBlowable.java create mode 100644 src/main/java/api/hbm/block/IInsertable.java create mode 100644 src/main/java/com/hbm/blocks/machine/PistonInserter.java diff --git a/src/main/java/api/hbm/block/IBlowable.java b/src/main/java/api/hbm/block/IBlowable.java new file mode 100644 index 000000000..625e8a14a --- /dev/null +++ b/src/main/java/api/hbm/block/IBlowable.java @@ -0,0 +1,10 @@ +package api.hbm.block; + +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public interface IBlowable { //sloppy toppy + + /** Called server-side when a fan blows on an IBlowable in range every tick. */ + public void applyFan(World world, int x, int y, int z, ForgeDirection dir, int dist); +} diff --git a/src/main/java/api/hbm/block/IInsertable.java b/src/main/java/api/hbm/block/IInsertable.java new file mode 100644 index 000000000..b53a4849a --- /dev/null +++ b/src/main/java/api/hbm/block/IInsertable.java @@ -0,0 +1,10 @@ +package api.hbm.block; + +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public interface IInsertable { //uwu + + public boolean insertItem(World world, int x, int y, int z, ForgeDirection dir, ItemStack stack); +} diff --git a/src/main/java/com/hbm/blocks/machine/MachineFan.java b/src/main/java/com/hbm/blocks/machine/MachineFan.java index f9321d052..6a37de202 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineFan.java +++ b/src/main/java/com/hbm/blocks/machine/MachineFan.java @@ -2,9 +2,11 @@ package com.hbm.blocks.machine; import java.util.List; +import api.hbm.block.IBlowable; import api.hbm.block.IToolable; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.block.BlockPistonBase; import net.minecraft.block.material.Material; @@ -79,7 +81,13 @@ public class MachineFan extends BlockContainer implements IToolable { double push = 0.1; for(int i = 1; i <= range; i++) { - if(worldObj.getBlock(xCoord + dir.offsetX * i, yCoord + dir.offsetY * i, zCoord + dir.offsetZ * i).isNormalCube()) { + Block block = worldObj.getBlock(xCoord + dir.offsetX * i, yCoord + dir.offsetY * i, zCoord + dir.offsetZ * i); + boolean blowable = block instanceof IBlowable; + + if(block.isNormalCube() || blowable) { + if(!worldObj.isRemote && blowable) + ((IBlowable) block).applyFan(worldObj, xCoord + dir.offsetX * i, yCoord + dir.offsetY * i, zCoord + dir.offsetZ * i, dir, i); + break; } diff --git a/src/main/java/com/hbm/blocks/machine/PistonInserter.java b/src/main/java/com/hbm/blocks/machine/PistonInserter.java new file mode 100644 index 000000000..f7093a8f7 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/PistonInserter.java @@ -0,0 +1,210 @@ +package com.hbm.blocks.machine; + +import com.hbm.blocks.BlockContainerBase; +import com.hbm.tileentity.INBTPacketReceiver; + +import api.hbm.block.IInsertable; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class PistonInserter extends BlockContainerBase { + + public PistonInserter() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityPistonInserter(); + } + + @Override + public void onNeighborBlockChange(World world, int x, int y, int z, Block neighbor) { + this.updateState(world, x, y, z); + } + + protected void updateState(World world, int x, int y, int z) { + if(!world.isRemote) { + ForgeDirection dir = ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z)); + + if(world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ).isNormalCube()) + return; //no obstructions allowed! + + if(checkRedstone(world, x, y, z)) { //if necessary, add lastState (if block updates are too unreliable). + TileEntityPistonInserter piston = (TileEntityPistonInserter)world.getTileEntity(x, y, z); + + if(piston.extend <= 0) + piston.isRetracting = false; + } + } + } + + protected boolean checkRedstone(World world, int x, int y, int z) { + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { + if(world.getIndirectPowerOutput(x, y, z, dir.ordinal())) + return true; + } + + return false; + } + + // $%&#$& + // %$&&@$%%#% + //______ $%@--$@@%&$%$ + // | %/ *--$#@&&$$ + // | / --__ %$%@$& + // | (----^`--- $@##% + // | /___\ `-----*#@$ + // | /(()_) / /___\ /__ + // | / \___// (()_) //-,| + // | /____|_ / \___// )_/ + // | \____/ `^-___|___/ | + // | \/ \____/ /_-^-. + // | / _-' |___. \_ + // | / _-' / `\ \\___ + // | `'\____~~+~^/ _)/ \____ + // | \`----' | __/ _) + // | /( /~-' ,-' | + // | / `| | / | + // | / ( ) / `) + // | / `-==-' | | + // | / /| | | + // | / / \ | | + // | / / | | | + // | / / \ _____,.____| | + // | / _ / |<`____, ____,| | + // | / / \_ / _ | <_____/ | ) + // | / / ^/,^=-~---~' `z---..._______/ | + // |--' / /| |/ .^ ,^\ \ ) + // | |_|| || |(_( ) | | + // | \_/`-``-`----'___/_____ | + // |___..---' _|____`-----..-----'\ + // |_____________________| @ | ) + // average coding session involving tile entities + public static class TileEntityPistonInserter extends TileEntity implements IInventory, INBTPacketReceiver { + + public ItemStack slot; + + public int extend; + public static final int maxExtend = 25; + public boolean isRetracting; + public int delay; + + private int lastState; + + public TileEntityPistonInserter() { } + + @Override + public void updateEntity() { //what is this amalgamation + + if(!worldObj.isRemote) { + + if(delay <= 0) { + + if(this.isRetracting && this.extend > 0) { + this.extend--; + } else if(!this.isRetracting) { + this.extend++; + + if(this.extend >= this.maxExtend) { + worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:block.pressOperate", 1.5F, 1.0F); + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); + Block b = worldObj.getBlock(xCoord + dir.offsetX * 2, yCoord + dir.offsetY * 2, zCoord + dir.offsetZ * 2); + + if(b instanceof IInsertable && ((IInsertable) b).insertItem(worldObj, xCoord + dir.offsetX * 2, yCoord + dir.offsetY * 2, zCoord + dir.offsetZ * 2, dir, slot)) { + this.decrStackSize(0, 1); + } + + this.isRetracting = true; + this.delay = 5; + } + } + + } else { + delay--; + } + + NBTTagCompound data = new NBTTagCompound(); + data.setInteger("extend", extend); + if(this.slot != null) { + NBTTagCompound stack = new NBTTagCompound(); + slot.writeToNBT(stack); + data.setTag("stack", stack); + } + + INBTPacketReceiver.networkPack(this, data, 25); + + } + + } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + this.extend = nbt.getInteger("extend"); + + if(nbt.hasKey("stack")) { + NBTTagCompound stack = nbt.getCompoundTag("stack"); + this.slot = ItemStack.loadItemStackFromNBT(stack); + } else + this.slot = null; + } + + /* BS inventory stuff */ + + @Override public int getSizeInventory() { return 1; } + + @Override public ItemStack getStackInSlot(int slot) { return this.slot; } + + @Override + public ItemStack decrStackSize(int slot, int amount) { + if(this.slot != null) { + if(this.slot.stackSize <= amount) { + ItemStack stack = this.slot; + this.slot = null; + return stack; + } + + ItemStack stack = this.slot.splitStack(amount); + if(this.slot.stackSize == 0) + this.slot = null; + + return stack; + } + + return null; + } + + @Override + public ItemStack getStackInSlotOnClosing(int slot) { return null; } + + @Override + public void setInventorySlotContents(int slot, ItemStack stack) { + this.slot = stack; + if(stack != null && stack.stackSize > this.getInventoryStackLimit()) + stack.stackSize = this.getInventoryStackLimit(); + } + + @Override public String getInventoryName() { return null; } + + @Override public boolean hasCustomInventoryName() { return false; } + + @Override public int getInventoryStackLimit() { return 1; } + + @Override public boolean isUseableByPlayer(EntityPlayer player) { return false; } + + @Override public void openInventory() {} + + @Override public void closeInventory() {} + + @Override public boolean isItemValidForSlot(int slot, ItemStack stack) { return true; } + + } +} diff --git a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteBreedingFuel.java b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteBreedingFuel.java index 46231bca4..fdfcac709 100644 --- a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteBreedingFuel.java +++ b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteBreedingFuel.java @@ -64,4 +64,5 @@ public class BlockGraphiteBreedingFuel extends BlockGraphiteDrilledTE implements protected Item getInsertedItem() { return ModItems.pile_rod_lithium; } + } diff --git a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteFuel.java b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteFuel.java index d3b768d6c..3a315e2cf 100644 --- a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteFuel.java +++ b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteFuel.java @@ -5,6 +5,7 @@ import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; import com.hbm.tileentity.machine.pile.TileEntityPileFuel; +import api.hbm.block.IBlowable; import api.hbm.block.IToolable; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -19,7 +20,7 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class BlockGraphiteFuel extends BlockGraphiteDrilledTE implements IToolable { +public class BlockGraphiteFuel extends BlockGraphiteDrilledTE implements IToolable, IBlowable { @Override public TileEntity createNewTileEntity(World world, int mets) { @@ -68,4 +69,10 @@ public class BlockGraphiteFuel extends BlockGraphiteDrilledTE implements IToolab protected Item getInsertedItem(int meta) { return (meta & 8) == 8 ? ModItems.pile_rod_pu239 : ModItems.pile_rod_uranium; } + + @Override + public void applyFan(World world, int x, int y, int z, ForgeDirection dir, int dist) { + TileEntityPileFuel pile = (TileEntityPileFuel) world.getTileEntity(x, y, z); + pile.heat -= pile.heat * 0.025; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileBase.java b/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileBase.java index 90d3cd483..30d6c3552 100644 --- a/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileBase.java +++ b/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileBase.java @@ -4,6 +4,7 @@ import java.util.List; import java.util.Random; import com.hbm.blocks.ModBlocks; +import com.hbm.main.MainRegistry; import com.hbm.util.ContaminationUtil; import com.hbm.util.ContaminationUtil.ContaminationType; import com.hbm.util.ContaminationUtil.HazardType; @@ -11,6 +12,7 @@ import com.hbm.util.ContaminationUtil.HazardType; import api.hbm.block.IPileNeutronReceiver; import net.minecraft.block.Block; import net.minecraft.entity.EntityLivingBase; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.Vec3; @@ -21,11 +23,8 @@ public abstract class TileEntityPileBase extends TileEntity { public abstract void updateEntity(); protected void castRay(int flux, int range) { - Random rand = worldObj.rand; - int[] vecVals = { 0, 0, 0,}; - vecVals[rand.nextInt(3)] = 1; - Vec3 vec = Vec3.createVectorHelper(vecVals[0], vecVals[1], vecVals[2]); + Vec3 vec = Vec3.createVectorHelper(1, 0, 0); vec.rotateAroundZ((float)(rand.nextDouble() * Math.PI * 2D)); vec.rotateAroundY((float)(rand.nextDouble() * Math.PI * 2D)); vec.rotateAroundX((float)(rand.nextDouble() * Math.PI * 2D)); @@ -47,13 +46,14 @@ public abstract class TileEntityPileBase extends TileEntity { prevY = y; prevZ = z; - /*if(i == range) { + /*if(i == range || i == 1) { NBTTagCompound data2 = new NBTTagCompound(); data2.setString("type", "vanillaExt"); - data2.setString("mode", "greendust"); - data2.setDouble("posX", xCoord + 0.5 + vec.xCoord * range); - data2.setDouble("posY", yCoord + 0.5 + vec.yCoord * range); - data2.setDouble("posZ", zCoord + 0.5 + vec.zCoord * range); + data2.setString("mode", i == range ? "greendust" : + i == 1 ? "reddust" : "bluedust"); + data2.setDouble("posX", xCoord + 0.5 + vec.xCoord * i); + data2.setDouble("posY", yCoord + 0.5 + vec.yCoord * i); + data2.setDouble("posZ", zCoord + 0.5 + vec.zCoord * i); MainRegistry.proxy.effectNT(data2); }*/ @@ -91,7 +91,7 @@ public abstract class TileEntityPileBase extends TileEntity { if(entities != null) for(EntityLivingBase e : entities) { - ContaminationUtil.contaminate(e, HazardType.RADIATION, ContaminationType.CREATIVE, flux / 2); + ContaminationUtil.contaminate(e, HazardType.RADIATION, ContaminationType.CREATIVE, flux / 4F); } } } diff --git a/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileFuel.java b/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileFuel.java index 7a48e4f83..869971e6f 100644 --- a/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileFuel.java +++ b/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileFuel.java @@ -2,8 +2,12 @@ package com.hbm.tileentity.machine.pile; import com.hbm.blocks.ModBlocks; import com.hbm.config.GeneralConfig; +import com.hbm.main.MainRegistry; +import com.hbm.packet.AuxParticlePacketNT; +import com.hbm.packet.PacketDispatcher; import api.hbm.block.IPileNeutronReceiver; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.nbt.NBTTagCompound; public class TileEntityPileFuel extends TileEntityPileBase implements IPileNeutronReceiver { @@ -28,10 +32,21 @@ public class TileEntityPileFuel extends TileEntityPileBase implements IPileNeutr worldObj.setBlock(xCoord, yCoord, zCoord, ModBlocks.gas_radon_dense); } + if(worldObj.rand.nextFloat() * 2F <= this.heat / (float)this.maxHeat) { + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "vanillaExt"); + data.setString("mode", "smoke"); + data.setDouble("mY", 0.05); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, xCoord + 0.25 + worldObj.rand.nextDouble() * 0.5, yCoord + 1, zCoord + 0.25 + worldObj.rand.nextDouble() * 0.5), + new TargetPoint(worldObj.provider.dimensionId, xCoord + 0.5, yCoord + 1, zCoord + 0.5, 20)); + MainRegistry.proxy.effectNT(data); + } + if(this.progress >= this.maxProgress) { worldObj.setBlock(xCoord, yCoord, zCoord, ModBlocks.block_graphite_plutonium, this.getBlockMetadata() & 7, 3); } } + } private void dissipateHeat() { diff --git a/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileSource.java b/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileSource.java index c297f9dfb..0c164657f 100644 --- a/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileSource.java +++ b/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileSource.java @@ -11,7 +11,7 @@ public class TileEntityPileSource extends TileEntityPileBase { int n = this.getBlockType() == ModBlocks.block_graphite_source ? 1 : 2; - for(int i = 0; i < 12; i++) { + for(int i = 0; i < 12 * 5; i++) { this.castRay(n, 5); } } From d8e87453cbc0187f623b366c28e94050cb312dfa Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 14 May 2023 14:29:11 +0200 Subject: [PATCH 032/432] fixed tain bounding boxes not properly initializing --- src/main/java/com/hbm/blocks/ModBlocks.java | 10 +- .../hbm/entity/train/EntityRailCarBase.java | 7 +- .../handler/nei/CMBFurnaceRecipeHandler.java | 132 ------------------ src/main/java/com/hbm/main/NEIConfig.java | 1 - .../entity/item/RenderTrainCargoTram.java | 1 - .../hbm/textures/models/machines/fan.png | Bin 719 -> 811 bytes 6 files changed, 7 insertions(+), 144 deletions(-) delete mode 100644 src/main/java/com/hbm/handler/nei/CMBFurnaceRecipeHandler.java diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 0a0df5800..3605f9a2f 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -910,7 +910,6 @@ public class ModBlocks { public static Block field_disturber; public static Block machine_rtg_grey; - public static Block machine_rtg_cyan; public static Block machine_amgen; public static Block machine_geo; public static Block machine_minirtg; @@ -1859,20 +1858,13 @@ public class ModBlocks { machine_shredder = new MachineShredder(Material.iron).setBlockName("machine_shredder").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); machine_shredder_large = new MachineShredderLarge(Material.iron).setBlockName("machine_shredder_large").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":code"); - machine_combine_factory = new MachineCMBFactory(Material.iron).setBlockName("machine_combine_factory").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + machine_combine_factory = new MachineCMBFactory(Material.iron).setBlockName("machine_combine_factory").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null); machine_teleporter = new MachineTeleporter(Material.iron).setBlockName("machine_teleporter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); teleanchor = new MachineTeleanchor().setBlockName("teleanchor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); field_disturber = new MachineFieldDisturber().setBlockName("field_disturber").setHardness(5.0F).setResistance(200.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":field_disturber"); machine_rtg_grey = new MachineRTG(Material.iron).setBlockName("machine_rtg_grey").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rtg"); - //machine_rtg_red = new MachineRTG(Material.iron).setBlockName("machine_rtg_red").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - //machine_rtg_orange = new MachineRTG(Material.iron).setBlockName("machine_rtg_orange").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - //machine_rtg_yellow = new MachineRTG(Material.iron).setBlockName("machine_rtg_yellow").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - //machine_rtg_green = new MachineRTG(Material.iron).setBlockName("machine_rtg_green").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - machine_rtg_cyan = new MachineRTG(Material.iron).setBlockName("machine_rtg_cyan").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - //machine_rtg_blue = new MachineRTG(Material.iron).setBlockName("machine_rtg_blue").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - //machine_rtg_purple = new MachineRTG(Material.iron).setBlockName("machine_rtg_purple").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); machine_amgen = new MachineAmgen(Material.iron).setBlockName("machine_amgen").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); machine_geo = new MachineAmgen(Material.iron).setBlockName("machine_geo").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); machine_minirtg = new MachineMiniRTG(Material.iron).setBlockName("machine_minirtg").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rtg_cell"); diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java index 65c5b1cf4..f2a502e69 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java @@ -81,7 +81,12 @@ public abstract class EntityRailCarBase extends Entity { for(int i = 0; i < definitions.length; i++) { DummyConfig def = definitions[i]; BoundingBoxDummyEntity dummy = new BoundingBoxDummyEntity(worldObj, this, def.width, def.height); - dummy.setPosition(posX, posY, posZ); + Vec3 rot = Vec3.createVectorHelper(def.offset.xCoord, def.offset.yCoord, def.offset.zCoord); + rot.rotateAroundY((float) (-this.rotationYaw * Math.PI / 180)); + double x = posX + rot.xCoord; + double y = posY + rot.yCoord; + double z = posZ + rot.zCoord; + dummy.setPosition(x, y, z); worldObj.spawnEntityInWorld(dummy); this.dummies[i] = dummy; } diff --git a/src/main/java/com/hbm/handler/nei/CMBFurnaceRecipeHandler.java b/src/main/java/com/hbm/handler/nei/CMBFurnaceRecipeHandler.java deleted file mode 100644 index 5390eef46..000000000 --- a/src/main/java/com/hbm/handler/nei/CMBFurnaceRecipeHandler.java +++ /dev/null @@ -1,132 +0,0 @@ -package com.hbm.handler.nei; - -import java.awt.Rectangle; -import java.util.Arrays; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; - -import com.hbm.inventory.gui.GUIMachineCMBFactory; -import com.hbm.inventory.recipes.MachineRecipes; -import com.hbm.lib.RefStrings; - -import codechicken.nei.NEIServerUtils; -import codechicken.nei.PositionedStack; -import codechicken.nei.recipe.TemplateRecipeHandler; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.item.ItemStack; - -public class CMBFurnaceRecipeHandler extends TemplateRecipeHandler { - - public LinkedList transferRectsRec = new LinkedList(); - public LinkedList transferRectsGui = new LinkedList(); - public LinkedList> guiRec = new LinkedList>(); - public LinkedList> guiGui = new LinkedList>(); - - public class SmeltingSet extends TemplateRecipeHandler.CachedRecipe - { - PositionedStack input1; - PositionedStack input2; - PositionedStack result; - - public SmeltingSet(ItemStack input1, ItemStack input2, ItemStack result) { - input1.stackSize = 1; - input2.stackSize = 1; - this.input1 = new PositionedStack(input1, 66, 6); - this.input2 = new PositionedStack(input2, 66, 42); - this.result = new PositionedStack(result, 129, 24); - } - - @Override - public List getIngredients() { - return getCycledIngredients(cycleticks / 48, Arrays.asList(new PositionedStack[] {input1, input2})); - } - - @Override - public PositionedStack getResult() { - return result; - } - } - - @Override - public String getRecipeName() { - return "CMB Steel Furnace"; - } - - @Override - public String getGuiTexture() { - return RefStrings.MODID + ":textures/gui/nei/gui_nei_cmb.png"; - } - - @Override - public void loadCraftingRecipes(String outputId, Object... results) { - if ((outputId.equals("cmbsmelting")) && getClass() == CMBFurnaceRecipeHandler.class) { - Map recipes = MachineRecipes.instance().getCMBRecipes(); - for (Map.Entry recipe : recipes.entrySet()) { - this.arecipes.add(new SmeltingSet((ItemStack)recipe.getKey()[0], (ItemStack)recipe.getKey()[1], (ItemStack)recipe.getValue())); - } - } else { - super.loadCraftingRecipes(outputId, results); - } - } - - @Override - public void loadCraftingRecipes(ItemStack result) { - Map recipes = MachineRecipes.instance().getCMBRecipes(); - for (Map.Entry recipe : recipes.entrySet()) { - if (NEIServerUtils.areStacksSameType((ItemStack)recipe.getValue(), result)) - this.arecipes.add(new SmeltingSet((ItemStack)recipe.getKey()[0], (ItemStack)recipe.getKey()[1], (ItemStack)recipe.getValue())); - } - } - - @Override - public void loadUsageRecipes(String inputId, Object... ingredients) { - if ((inputId.equals("cmbsmelting")) && getClass() == CMBFurnaceRecipeHandler.class) { - loadCraftingRecipes("cmbsmelting", new Object[0]); - } else { - super.loadUsageRecipes(inputId, ingredients); - } - } - - @Override - public void loadUsageRecipes(ItemStack ingredient) { - Map recipes = MachineRecipes.instance().getCMBRecipes(); - for (Map.Entry recipe : recipes.entrySet()) { - if (NEIServerUtils.areStacksSameType(ingredient, (ItemStack)recipe.getKey()[0]) || NEIServerUtils.areStacksSameType(ingredient, (ItemStack)recipe.getKey()[1])) - this.arecipes.add(new SmeltingSet((ItemStack)recipe.getKey()[0], (ItemStack)recipe.getKey()[1], (ItemStack)recipe.getValue())); - } - } - - @Override - public Class getGuiClass() { - //return GUITestDiFurnace.class; - return null; - } - - @Override - public void loadTransferRects() { - transferRectsGui = new LinkedList(); - guiGui = new LinkedList>(); - - transferRects.add(new RecipeTransferRect(new Rectangle(74 + 6 + 18, 23, 24, 18), "cmbsmelting")); - transferRectsGui.add(new RecipeTransferRect(new Rectangle(74 + 6 + 18, 23, 24, 18), "cmbsmelting")); - guiGui.add(GUIMachineCMBFactory.class); - RecipeTransferRectHandler.registerRectsToGuis(getRecipeTransferRectGuis(), transferRects); - RecipeTransferRectHandler.registerRectsToGuis(guiGui, transferRectsGui); - } - - @Override - public void drawExtras(int recipe) { - - drawProgressBar(83 - (18 * 4) - 9 + 1, 6, 36, 86, 16, 18 * 3 - 2, 480, 7); - drawProgressBar(83 - (18 * 4) - 9 + 1 + 18, 6, 36 + 48, 86, 16, 18 * 3 - 2, 480, 7); - - drawProgressBar(83 - 3 + 16, 5 + 18, 100, 118, 24, 16, 48, 0); - } - - @Override - public TemplateRecipeHandler newInstance() { - return super.newInstance(); - } - -} diff --git a/src/main/java/com/hbm/main/NEIConfig.java b/src/main/java/com/hbm/main/NEIConfig.java index a1b32bf65..41d03f7bd 100644 --- a/src/main/java/com/hbm/main/NEIConfig.java +++ b/src/main/java/com/hbm/main/NEIConfig.java @@ -32,7 +32,6 @@ public class NEIConfig implements IConfigureNEI { registerHandler(new CentrifugeRecipeHandler()); registerHandler(new GasCentrifugeRecipeHandler()); registerHandler(new BreederRecipeHandler()); - registerHandler(new CMBFurnaceRecipeHandler()); registerHandler(new CyclotronRecipeHandler()); registerHandler(new AssemblerRecipeHandler()); registerHandler(new RefineryRecipeHandler()); diff --git a/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTram.java b/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTram.java index 5612b2a93..8e097ac2b 100644 --- a/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTram.java +++ b/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTram.java @@ -2,7 +2,6 @@ package com.hbm.render.entity.item; import org.lwjgl.opengl.GL11; -import com.hbm.main.MainRegistry; import com.hbm.main.ResourceManager; import net.minecraft.client.renderer.entity.Render; diff --git a/src/main/resources/assets/hbm/textures/models/machines/fan.png b/src/main/resources/assets/hbm/textures/models/machines/fan.png index 003223c2f3e52f86f8a15732a73970e6b1d9299e..a2abda82d65b03a0e558df88393cdf5efefa35dd 100644 GIT binary patch delta 771 zcmV+e1N{8Y1*-;-G=JhrL_t(og~gY@PuoBg$3Nzm+=$jF9y(S+YS(5$>V_&Yc8p*n z1Kp4SF_j@h7A6KH#KOb|vl%K_*g7Dj%yi-pxX4yf8pWXN5bkO_wv)3{`dysZe)qZe z?%jJnt5&N?N~qm#TPE+%04yvl=o_|ek2LD_dI0#oZ!|d#1b?``zBZca^73+_$V?S6 zDx<={aY8>)U{Os$@!1y9%;;D0wYIjVljrR0Y-Hk<4(Y?gL+tv`f%Eh8W5Xr_d~pv= zVDOwYs#KXs*<4&)SOA{q$ws3g8;wS8;!JEG3L$V^cjS9ktyYuK;tl!xG8zrv_u1aw z&IKero>7KHHGhs*QN4I+`+xoL`1p8e5XW%<2!de9aBpwV7#0I2XDftA{qMT&(6d6o zv_bOj740y&!24DUfOpMip}{kOwr#Vtv;+)7>o^WK^*SrnD$evY;pHXW&CQ7b^|tVR zU$5g$z0QY91%Tk`iSFGUm7}A{0$~u=yNwME6Jdyy5`Phf8Y+aCY|^;1vxJL_0K5Sn zpRXYhJU$i%WdhmRA$R^Iyo&*oNuxG<^tY0f#ZL#iA4WI60w}Mglyo{Bs?{o;P6uUE z7#JNqspx$L%X&VJO7}x`dh$F^3L%F2Us9#}p^{O@FHJL0>3*ne$Fh!!7_oSO8elFQVy-55F-5qtkz70 z6yj@|21`O!-A&#f0;VNMS|Vk6H%c*JRyJm3FPQgH-7P+Ue4Cq%$qC)whxop)D^1dC z*L73-sP=FaEa~asE62Q#mhOk+7Jg+{x*wX_{sAtQH&uiZrELHJ002ovPDHLkV1gtm BckloJ delta 679 zcmV;Y0$Ba42G0eMG=GLkL_t(og~gYzZyPZb$G@(!DyuSGlmq<>igzf|STw0{xM4jq z+(<+z^6Mc>Y@~QAbpn4@%^yx(tSx&=bk_I^Yi=W zSP%pPHMCl-n9cJo0O)qRa-iLAmj-P%8vsC(Bvy-)Kmb@Smw#3(9SjCenK^O^sv~D$ zmDD#1bkz~yzFHTx${#7#a5$93GoQ~(3$J!c*XwoW@4Jc4pRs` zgj&FEwf%k{z%I3(=gD(ZKQ{&>5J?3z2?MlyXetyTL}r|G-fYq6lf`jt9B&MGXi1<= z(Fo!Gb|C%GR5Y|}Aq3($Mz7bCDR%Kt2~;Q7rH&IU?|=I$s_lpL_7p{t;GFOIpRU?| zNV0PL+B6H*_Ct!T8Yhe9)7b}Xw;N1m-wV&+_Uc0XeSU`@zy1KQ_fgr}-k+S{__&Sh z%k$h6?_kf^ZnK4>!Z_zh(=>Cn)Gj80H}{XM2&%#+vnNI=qzUzj^`1+gGjC5f_mAxM z>Oug(^?&8Ln9QD-38u!_-b3k!Cg``XUjzW;!2r9K2;}@sr1aiBMC|S%VtFtE(HU0p z(MEok+W4sP4Vcc1QVL|x)C8;QqkBM8ftU&@Z+B(N0Q0IbuX+J{AC+$L`QvF}HR=oc z`TGS)lE_Y@@7ni$qmRlRmcjI$0xxoMlk$ADwjdu?ZTu8h+YfDH{{et-Cc!v9gl7N% N002ovPDHLkV1g-vN%jB$ From a71d7972ec8f168bf0af7e9e637cc06519b65cbc Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 14 May 2023 17:51:35 +0200 Subject: [PATCH 033/432] fluid pressure stat --- .../java/api/hbm/fluid/IFluidConductor.java | 4 +- .../java/api/hbm/fluid/IFluidConnector.java | 4 +- .../api/hbm/fluid/IFluidStandardReceiver.java | 8 +- .../api/hbm/fluid/IFluidStandardSender.java | 12 +- .../hbm/fluid/IFluidStandardTransceiver.java | 8 +- src/main/java/api/hbm/fluid/IFluidUser.java | 26 ++-- src/main/java/api/hbm/fluid/IPipeNet.java | 2 +- src/main/java/api/hbm/fluid/PipeNet.java | 10 +- .../hbm/commands/CommandDebugChunkLoad.java | 112 ++++++++++++++++++ .../hbm/entity/train/EntityRailCarBase.java | 8 +- .../entity/train/EntityRailCarRidable.java | 47 +++++++- .../com/hbm/entity/train/TrainCargoTram.java | 2 +- .../com/hbm/handler/nei/CokingHandler.java | 11 ++ .../hbm/handler/nei/CombinationHandler.java | 11 ++ .../hbm/inventory/fluid/tank/FluidTank.java | 20 ++++ src/main/java/com/hbm/main/MainRegistry.java | 2 + .../hbm/tileentity/TileEntityProxyCombo.java | 8 +- .../tileentity/machine/TileEntityChungus.java | 2 +- .../machine/TileEntityCondenser.java | 2 +- .../machine/TileEntityCoreEmitter.java | 36 +----- .../machine/TileEntityDeuteriumExtractor.java | 2 +- .../machine/TileEntityDeuteriumTower.java | 11 +- .../machine/TileEntityFurnaceCombination.java | 4 +- .../machine/TileEntityHeatBoiler.java | 2 +- .../machine/TileEntityHeaterHeatex.java | 2 +- .../tileentity/machine/TileEntityITER.java | 2 +- .../machine/TileEntityMachineAssemfac.java | 2 +- .../machine/TileEntityMachineBoiler.java | 2 +- .../TileEntityMachineBoilerElectric.java | 2 +- .../machine/TileEntityMachineChemfac.java | 62 +--------- .../machine/TileEntityMachineChemplant.java | 4 +- .../TileEntityMachineChemplantBase.java | 71 +++-------- .../machine/TileEntityMachineCyclotron.java | 2 +- .../machine/TileEntityMachineHephaestus.java | 2 +- .../TileEntityMachineLargeTurbine.java | 2 +- .../machine/TileEntityMachineMiningLaser.java | 8 +- .../machine/TileEntityMachineMixer.java | 2 +- .../machine/TileEntityMachineRadiolysis.java | 4 +- .../TileEntityMachineReactorLarge.java | 6 +- .../machine/TileEntityMachineTurbine.java | 2 +- .../machine/TileEntityMachineTurbineGas.java | 2 +- .../machine/TileEntityMachineTurbofan.java | 2 +- .../machine/TileEntityReactorZirnox.java | 2 +- .../machine/TileEntitySolarBoiler.java | 4 +- .../machine/TileEntitySteamEngine.java | 2 +- .../machine/TileEntityStorageDrum.java | 4 +- .../machine/TileEntityTowerLarge.java | 8 +- .../machine/TileEntityTowerSmall.java | 10 +- .../tileentity/machine/TileEntityWatz.java | 4 +- .../machine/TileEntityWatzCore.java | 8 +- .../TileEntityMachineCatalyticCracker.java | 2 +- .../TileEntityMachineCatalyticReformer.java | 2 +- .../machine/oil/TileEntityMachineCoker.java | 2 +- .../oil/TileEntityMachineFractionTower.java | 4 +- .../oil/TileEntityMachineLiquefactor.java | 2 +- .../oil/TileEntityMachineRefinery.java | 2 +- .../oil/TileEntityMachineVacuumDistill.java | 2 +- .../machine/oil/TileEntityOilDrillBase.java | 4 +- .../machine/rbmk/TileEntityRBMKBoiler.java | 2 +- .../machine/rbmk/TileEntityRBMKHeater.java | 2 +- .../machine/rbmk/TileEntityRBMKOutgasser.java | 2 +- .../machine/rbmk/TileEntityRBMKOutlet.java | 2 +- .../machine/storage/TileEntityBarrel.java | 8 +- .../storage/TileEntityMachineFluidTank.java | 10 +- .../network/TileEntityPipeBaseNT.java | 6 +- .../java/com/hbm/wiaj/cannery/Dummies.java | 4 +- .../processing/gui_furnace_combination.png | Bin 6228 -> 6931 bytes 67 files changed, 357 insertions(+), 274 deletions(-) create mode 100644 src/main/java/com/hbm/commands/CommandDebugChunkLoad.java diff --git a/src/main/java/api/hbm/fluid/IFluidConductor.java b/src/main/java/api/hbm/fluid/IFluidConductor.java index 95ae30766..d9d1e00c7 100644 --- a/src/main/java/api/hbm/fluid/IFluidConductor.java +++ b/src/main/java/api/hbm/fluid/IFluidConductor.java @@ -9,11 +9,11 @@ public interface IFluidConductor extends IFluidConnector { public void setPipeNet(FluidType type, IPipeNet network); @Override - public default long transferFluid(FluidType type, long amount) { + public default long transferFluid(FluidType type, int pressure, long amount) { if(this.getPipeNet(type) == null) return amount; - return this.getPipeNet(type).transferFluid(amount); + return this.getPipeNet(type).transferFluid(amount, pressure); } } diff --git a/src/main/java/api/hbm/fluid/IFluidConnector.java b/src/main/java/api/hbm/fluid/IFluidConnector.java index 634412cbf..a47b56def 100644 --- a/src/main/java/api/hbm/fluid/IFluidConnector.java +++ b/src/main/java/api/hbm/fluid/IFluidConnector.java @@ -17,7 +17,7 @@ public interface IFluidConnector { * @param power * @return */ - public long transferFluid(FluidType type, long fluid); + public long transferFluid(FluidType type, int pressure, long fluid); /** * Whether the given side can be connected to @@ -33,7 +33,7 @@ public interface IFluidConnector { * @param type * @return */ - public long getDemand(FluidType type); + public long getDemand(FluidType type, int pressure); /** * Basic implementation of subscribing to a nearby power grid diff --git a/src/main/java/api/hbm/fluid/IFluidStandardReceiver.java b/src/main/java/api/hbm/fluid/IFluidStandardReceiver.java index e60aca9cd..dc7151daf 100644 --- a/src/main/java/api/hbm/fluid/IFluidStandardReceiver.java +++ b/src/main/java/api/hbm/fluid/IFluidStandardReceiver.java @@ -14,10 +14,10 @@ import com.hbm.inventory.fluid.tank.FluidTank; public interface IFluidStandardReceiver extends IFluidUser { @Override - public default long transferFluid(FluidType type, long amount) { + public default long transferFluid(FluidType type, int pressure, long amount) { for(FluidTank tank : getReceivingTanks()) { - if(tank.getTankType() == type) { + if(tank.getTankType() == type && tank.getPressure() == pressure) { tank.setFill(tank.getFill() + (int) amount); if(tank.getFill() > tank.getMaxFill()) { @@ -36,10 +36,10 @@ public interface IFluidStandardReceiver extends IFluidUser { public FluidTank[] getReceivingTanks(); @Override - public default long getDemand(FluidType type) { + public default long getDemand(FluidType type, int pressure) { for(FluidTank tank : getReceivingTanks()) { - if(tank.getTankType() == type) { + if(tank.getTankType() == type && tank.getPressure() == pressure) { return tank.getMaxFill() - tank.getFill(); } } diff --git a/src/main/java/api/hbm/fluid/IFluidStandardSender.java b/src/main/java/api/hbm/fluid/IFluidStandardSender.java index 46baee9da..57b587370 100644 --- a/src/main/java/api/hbm/fluid/IFluidStandardSender.java +++ b/src/main/java/api/hbm/fluid/IFluidStandardSender.java @@ -16,10 +16,10 @@ public interface IFluidStandardSender extends IFluidUser { public FluidTank[] getSendingTanks(); @Override - public default long getTotalFluidForSend(FluidType type) { + public default long getTotalFluidForSend(FluidType type, int pressure) { for(FluidTank tank : getSendingTanks()) { - if(tank.getTankType() == type) { + if(tank.getTankType() == type && tank.getPressure() == pressure) { return tank.getFill(); } } @@ -28,10 +28,10 @@ public interface IFluidStandardSender extends IFluidUser { } @Override - public default void removeFluidForTransfer(FluidType type, long amount) { + public default void removeFluidForTransfer(FluidType type, int pressure, long amount) { for(FluidTank tank : getSendingTanks()) { - if(tank.getTankType() == type) { + if(tank.getTankType() == type && tank.getPressure() == pressure) { tank.setFill(tank.getFill() - (int) amount); return; } @@ -39,12 +39,12 @@ public interface IFluidStandardSender extends IFluidUser { } @Override - public default long transferFluid(FluidType type, long fluid) { + public default long transferFluid(FluidType type, int pressure, long fluid) { return fluid; } @Override - public default long getDemand(FluidType type) { + public default long getDemand(FluidType type, int pressure) { return 0; } } diff --git a/src/main/java/api/hbm/fluid/IFluidStandardTransceiver.java b/src/main/java/api/hbm/fluid/IFluidStandardTransceiver.java index 4cbe6b0a4..eb7092ad8 100644 --- a/src/main/java/api/hbm/fluid/IFluidStandardTransceiver.java +++ b/src/main/java/api/hbm/fluid/IFluidStandardTransceiver.java @@ -23,7 +23,7 @@ public interface IFluidStandardTransceiver extends IFluidUser { public FluidTank[] getReceivingTanks(); @Override - public default long getTotalFluidForSend(FluidType type) { + public default long getTotalFluidForSend(FluidType type, int pressure) { for(FluidTank tank : getSendingTanks()) { if(tank.getTankType() == type) { @@ -35,7 +35,7 @@ public interface IFluidStandardTransceiver extends IFluidUser { } @Override - public default void removeFluidForTransfer(FluidType type, long amount) { + public default void removeFluidForTransfer(FluidType type, int pressure, long amount) { for(FluidTank tank : getSendingTanks()) { if(tank.getTankType() == type) { @@ -46,7 +46,7 @@ public interface IFluidStandardTransceiver extends IFluidUser { } @Override - public default long getDemand(FluidType type) { + public default long getDemand(FluidType type, int pressure) { for(FluidTank tank : getReceivingTanks()) { if(tank.getTankType() == type) { @@ -58,7 +58,7 @@ public interface IFluidStandardTransceiver extends IFluidUser { } @Override - public default long transferFluid(FluidType type, long amount) { + public default long transferFluid(FluidType type, int pressure, long amount) { for(FluidTank tank : getReceivingTanks()) { if(tank.getTankType() == type) { diff --git a/src/main/java/api/hbm/fluid/IFluidUser.java b/src/main/java/api/hbm/fluid/IFluidUser.java index 2a181f99c..7c4a36a92 100644 --- a/src/main/java/api/hbm/fluid/IFluidUser.java +++ b/src/main/java/api/hbm/fluid/IFluidUser.java @@ -13,7 +13,11 @@ import net.minecraftforge.common.util.ForgeDirection; public interface IFluidUser extends IFluidConnector { - public default void sendFluid(FluidType type, World world, int x, int y, int z, ForgeDirection dir) { + public default void sendFluid(FluidTank tank, World world, int x, int y, int z, ForgeDirection dir) { + sendFluid(tank.getTankType(), tank.getPressure(), world, x, y, z, dir); + } + + public default void sendFluid(FluidType type, int pressure, World world, int x, int y, int z, ForgeDirection dir) { TileEntity te = world.getTileEntity(x, y, z); boolean wasSubscribed = false; @@ -32,9 +36,9 @@ public interface IFluidUser extends IFluidConnector { IFluidConnector con = (IFluidConnector) te; if(con.canConnect(type, dir.getOpposite())) { - long toSend = this.getTotalFluidForSend(type); - long transfer = toSend - con.transferFluid(type, toSend); - this.removeFluidForTransfer(type, transfer); + long toSend = this.getTotalFluidForSend(type, pressure); + long transfer = toSend - con.transferFluid(type, pressure, toSend); + this.removeFluidForTransfer(type, pressure, transfer); red = true; } } @@ -77,15 +81,21 @@ public interface IFluidUser extends IFluidConnector { return null; } - public default void sendFluidToAll(FluidType type, TileEntity te) { + /** Use more common conPos method instead */ + @Deprecated public default void sendFluidToAll(FluidTank tank, TileEntity te) { + sendFluidToAll(tank.getTankType(), tank.getPressure(), te); + } + + /** Use more common conPos method instead */ + @Deprecated public default void sendFluidToAll(FluidType type, int pressure, TileEntity te) { for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { - sendFluid(type, te.getWorldObj(), te.xCoord + dir.offsetX, te.yCoord + dir.offsetY, te.zCoord + dir.offsetZ, dir); + sendFluid(type, pressure, te.getWorldObj(), te.xCoord + dir.offsetX, te.yCoord + dir.offsetY, te.zCoord + dir.offsetZ, dir); } } - public default long getTotalFluidForSend(FluidType type) { return 0; } - public default void removeFluidForTransfer(FluidType type, long amount) { } + public default long getTotalFluidForSend(FluidType type, int pressure) { return 0; } + public default void removeFluidForTransfer(FluidType type, int pressure, long amount) { } public default void subscribeToAllAround(FluidType type, TileEntity te) { subscribeToAllAround(type, te.getWorldObj(), te.xCoord, te.yCoord, te.zCoord); diff --git a/src/main/java/api/hbm/fluid/IPipeNet.java b/src/main/java/api/hbm/fluid/IPipeNet.java index 442ec3a33..45e67b017 100644 --- a/src/main/java/api/hbm/fluid/IPipeNet.java +++ b/src/main/java/api/hbm/fluid/IPipeNet.java @@ -24,7 +24,7 @@ public interface IPipeNet { public boolean isValid(); - public long transferFluid(long fill); + public long transferFluid(long fill, int pressure); public FluidType getType(); public BigInteger getTotalTransfer(); } diff --git a/src/main/java/api/hbm/fluid/PipeNet.java b/src/main/java/api/hbm/fluid/PipeNet.java index 1b3d46f5d..09b63d4f5 100644 --- a/src/main/java/api/hbm/fluid/PipeNet.java +++ b/src/main/java/api/hbm/fluid/PipeNet.java @@ -85,7 +85,7 @@ public class PipeNet implements IPipeNet { } @Override - public long transferFluid(long fill) { + public long transferFluid(long fill, int pressure) { this.subscribers.removeIf(x -> x == null || !(x instanceof TileEntity) || ((TileEntity)x).isInvalid() @@ -97,16 +97,16 @@ public class PipeNet implements IPipeNet { trackingInstances = new ArrayList(); trackingInstances.add(this); List subList = new ArrayList(subscribers); - return fairTransfer(subList, type, fill); + return fairTransfer(subList, type, pressure, fill); } - public static long fairTransfer(List subList, FluidType type, long fill) { + public static long fairTransfer(List subList, FluidType type, int pressure, long fill) { List weight = new ArrayList(); long totalReq = 0; for(IFluidConnector con : subList) { - long req = con.getDemand(type); + long req = con.getDemand(type, pressure); weight.add(req); totalReq += req; } @@ -123,7 +123,7 @@ public class PipeNet implements IPipeNet { long given = (long) Math.floor(fraction * fill); - totalGiven += (given - con.transferFluid(type, given)); + totalGiven += (given - con.transferFluid(type, pressure, given)); } if(trackingInstances != null) { diff --git a/src/main/java/com/hbm/commands/CommandDebugChunkLoad.java b/src/main/java/com/hbm/commands/CommandDebugChunkLoad.java new file mode 100644 index 000000000..ac10eae4d --- /dev/null +++ b/src/main/java/com/hbm/commands/CommandDebugChunkLoad.java @@ -0,0 +1,112 @@ +package com.hbm.commands; + +import net.minecraft.command.CommandBase; +import net.minecraft.command.ICommandSender; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.chunk.Chunk; +import net.minecraft.world.chunk.IChunkProvider; +import net.minecraft.world.chunk.storage.AnvilChunkLoader; +import net.minecraft.world.chunk.storage.IChunkLoader; +import net.minecraft.world.gen.ChunkProviderServer; + +public class CommandDebugChunkLoad extends CommandBase { + + @Override + public String getCommandName() { + return "ntmloadchunk"; + } + + @Override + public String getCommandUsage(ICommandSender sender) { + return "/ntmloadchunk "; + } + + @Override + public void processCommand(ICommandSender sender, String[] args) { + + if(args.length != 2) { + return; + } + + int x = this.parseInt(sender, args[0]); + int z = this.parseInt(sender, args[1]); + + IChunkProvider prov = sender.getEntityWorld().getChunkProvider(); + if(prov instanceof ChunkProviderServer) { + ChunkProviderServer serv = (ChunkProviderServer) prov; + IChunkLoader loader = serv.currentChunkLoader; + + if(loader instanceof AnvilChunkLoader) { + AnvilChunkLoader anvil = (AnvilChunkLoader) loader; + + try { + int cX = x >> 4; + int cZ = z >> 4; + + if(prov.chunkExists(cX, cZ)) { + Chunk chunk = sender.getEntityWorld().getChunkFromChunkCoords(cX, cZ); + if(chunk.isChunkLoaded) { + sender.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Chunk currently loaded.")); + return; + } + } + + Object[] data = anvil.loadChunk__Async(sender.getEntityWorld(), cX, cZ); + Chunk chunk = (Chunk) data[0]; + NBTTagCompound nbt = (NBTTagCompound) data[1]; + NBTTagCompound level = nbt.getCompoundTag("Level"); + NBTTagList tagList = level.getTagList("TileEntities", 10); + + if(tagList != null) { + + if(tagList.tagCount() <= 0) { + sender.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Tag list empty")); + } + + for(int i1 = 0; i1 < tagList.tagCount(); ++i1) { + NBTTagCompound tileCompound = tagList.getCompoundTagAt(i1); + int tX = tileCompound.getInteger("x"); + int tY = tileCompound.getInteger("y"); + int tZ = tileCompound.getInteger("z"); + String name = tileCompound.getString("id"); + + int i = tX - cX * 16; + int j = tY; + int k = tZ - cZ * 16; + + EnumChatFormatting color = EnumChatFormatting.GREEN; + + if(i < 0 || i > 15 || j < 0 || j > 255 || k < 0 || k > 15) { + color = EnumChatFormatting.RED; + } + + sender.addChatMessage(new ChatComponentText(color + name + " " + i + " " + j + " " + k)); + + if(i < 0 || i > 15 || j < 0 || j > 255 || k < 0 || k > 15) { + tileCompound.setString("id", "INVALID_POS_" + name); + + NBTTagCompound nbttagcompound = new NBTTagCompound(); + NBTTagCompound nbttagcompound1 = new NBTTagCompound(); + nbttagcompound.setTag("Level", nbttagcompound1); + // anvil.writeChunkToNBT(chunk, sender.getEntityWorld(), nbttagcompound1); + // anvil.addChunkToPending(chunk.getChunkCoordIntPair(), nbttagcompound); + } + } + } else { + sender.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Tag list null")); + } + + } catch(Exception e) { + sender.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "" + e.getLocalizedMessage())); + } + } else { + sender.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Not AnvilChunkLoader")); + } + } else { + sender.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Not ChunkProviderServer")); + } + } +} diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java index f2a502e69..008ed2e78 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java @@ -41,7 +41,7 @@ public abstract class EntityRailCarBase extends Entity { @Override protected void readEntityFromNBT(NBTTagCompound nbt) { } @Override protected void writeEntityToNBT(NBTTagCompound nbt) { } - @Override + /*@Override public boolean canBePushed() { return true; } @@ -49,7 +49,7 @@ public abstract class EntityRailCarBase extends Entity { @Override public boolean canBeCollidedWith() { return !this.isDead; - } + }*/ @Override public void onUpdate() { @@ -260,7 +260,7 @@ public abstract class EntityRailCarBase extends Entity { } @Override protected void entityInit() { - this.dataWatcher.addObject(3, new Integer(1)); + this.dataWatcher.addObject(3, new Integer(0)); this.dataWatcher.addObject(4, new Float(1F)); this.dataWatcher.addObject(5, new Float(1F)); } @@ -276,7 +276,7 @@ public abstract class EntityRailCarBase extends Entity { @Override public void onUpdate() { if(!worldObj.isRemote) { - if(this.train.isDead) { + if(this.train == null || this.train.isDead) { this.setDead(); } } else { diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java b/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java index 084beef8a..1725275b8 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java @@ -2,6 +2,8 @@ package com.hbm.entity.train; import com.hbm.util.BobMathUtil; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; @@ -72,7 +74,7 @@ public abstract class EntityRailCarRidable extends EntityRailCarCargo { if(nearestSeat == -1) { player.mountEntity(this); } else { - SeatDummyEntity dummySeat = new SeatDummyEntity(worldObj); + SeatDummyEntity dummySeat = new SeatDummyEntity(worldObj, this); Vec3 passengerSeat = this.getPassengerSeats()[nearestSeat]; passengerSeat.rotateAroundY((float) (-this.rotationYaw * Math.PI / 180)); double x = posX + passengerSeat.xCoord; @@ -108,7 +110,6 @@ public abstract class EntityRailCarRidable extends EntityRailCarCargo { double y = posY + rot.yCoord; double z = posZ + rot.zCoord; seat.setPosition(x, y - 1, z); - seat.updateRiderPosition(); } } } @@ -133,11 +134,51 @@ public abstract class EntityRailCarRidable extends EntityRailCarCargo { /** Dynamic seats generated when a player clicks near a seat-spot, moves and rotates with the train as one would expect. */ public static class SeatDummyEntity extends Entity { + + private int turnProgress; + private double trainX; + private double trainY; + private double trainZ; + public EntityRailCarBase train; + public SeatDummyEntity(World world) { super(world); this.setSize(0.5F, 0.1F);} - @Override protected void entityInit() { } + public SeatDummyEntity(World world, EntityRailCarBase train) { + this(world); + this.train = train; + if(train != null) this.dataWatcher.updateObject(3, train.getEntityId()); + } + + @Override protected void entityInit() { this.dataWatcher.addObject(3, new Integer(0)); } @Override protected void writeEntityToNBT(NBTTagCompound nbt) { } @Override public boolean writeToNBTOptional(NBTTagCompound nbt) { return false; } @Override public void readEntityFromNBT(NBTTagCompound nbt) { this.setDead(); } + + @Override public void onUpdate() { + if(!worldObj.isRemote) { + if(this.train == null || this.train.isDead) { + this.setDead(); + } + } else { + + if(this.turnProgress > 0) { + this.prevRotationYaw = this.rotationYaw; + double x = this.posX + (this.trainX - this.posX) / (double) this.turnProgress; + double y = this.posY + (this.trainY - this.posY) / (double) this.turnProgress; + double z = this.posZ + (this.trainZ - this.posZ) / (double) this.turnProgress; + --this.turnProgress; + this.setPosition(x, y, z); + } else { + this.setPosition(this.posX, this.posY, this.posZ); + } + } + } + + @Override @SideOnly(Side.CLIENT) public void setPositionAndRotation2(double posX, double posY, double posZ, float yaw, float pitch, int turnProg) { + this.trainX = posX; + this.trainY = posY; + this.trainZ = posZ; + this.turnProgress = turnProg + 2; + } @Override public void updateRiderPosition() { diff --git a/src/main/java/com/hbm/entity/train/TrainCargoTram.java b/src/main/java/com/hbm/entity/train/TrainCargoTram.java index c88d6b35c..46981be68 100644 --- a/src/main/java/com/hbm/entity/train/TrainCargoTram.java +++ b/src/main/java/com/hbm/entity/train/TrainCargoTram.java @@ -30,7 +30,7 @@ public class TrainCargoTram extends EntityRailCarRidable implements IGUIProvider public TrainCargoTram(World world) { super(world); - this.setSize(1F, 1F); + this.setSize(5F, 2F); } public double speed = 0; diff --git a/src/main/java/com/hbm/handler/nei/CokingHandler.java b/src/main/java/com/hbm/handler/nei/CokingHandler.java index da3cb101d..a0227147e 100644 --- a/src/main/java/com/hbm/handler/nei/CokingHandler.java +++ b/src/main/java/com/hbm/handler/nei/CokingHandler.java @@ -1,6 +1,9 @@ package com.hbm.handler.nei; +import java.awt.Rectangle; + import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.gui.GUIMachineCoker; import com.hbm.inventory.recipes.CokerRecipes; public class CokingHandler extends NEIUniversalHandler { @@ -13,4 +16,12 @@ public class CokingHandler extends NEIUniversalHandler { public String getKey() { return "ntmCoking"; } + + @Override + public void loadTransferRects() { + super.loadTransferRects(); + transferRectsGui.add(new RecipeTransferRect(new Rectangle(55, 15, 36, 18), "ntmCoking")); + guiGui.add(GUIMachineCoker.class); + RecipeTransferRectHandler.registerRectsToGuis(guiGui, transferRectsGui); + } } diff --git a/src/main/java/com/hbm/handler/nei/CombinationHandler.java b/src/main/java/com/hbm/handler/nei/CombinationHandler.java index 8537c12b0..0c07afbbc 100644 --- a/src/main/java/com/hbm/handler/nei/CombinationHandler.java +++ b/src/main/java/com/hbm/handler/nei/CombinationHandler.java @@ -1,6 +1,9 @@ package com.hbm.handler.nei; +import java.awt.Rectangle; + import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.gui.GUIFurnaceCombo; import com.hbm.inventory.recipes.CombinationRecipes; public class CombinationHandler extends NEIUniversalHandler { @@ -13,4 +16,12 @@ public class CombinationHandler extends NEIUniversalHandler { public String getKey() { return "ntmCombination"; } + + @Override + public void loadTransferRects() { + super.loadTransferRects(); + transferRectsGui.add(new RecipeTransferRect(new Rectangle(49, 44, 18, 18), "ntmCombination")); + guiGui.add(GUIFurnaceCombo.class); + RecipeTransferRectHandler.registerRectsToGuis(guiGui, transferRectsGui); + } } diff --git a/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java b/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java index 5d67bb325..ce98e9579 100644 --- a/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java +++ b/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java @@ -19,6 +19,7 @@ import net.minecraft.client.resources.I18n; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; public class FluidTank { @@ -34,12 +35,18 @@ public class FluidTank { int fluid; int maxFluid; public int index = 0; + int pressure = 0; public FluidTank(FluidType type, int maxFluid) { this.type = type; this.maxFluid = maxFluid; } + public FluidTank withPressure(int pressure) { + this.pressure = pressure; + return this; + } + @Deprecated // indices are no longer needed public FluidTank(FluidType type, int maxFluid, int index) { this.type = type; @@ -76,6 +83,10 @@ public class FluidTank { return maxFluid; } + public int getPressure() { + return pressure; + } + public int changeTankSize(int size) { maxFluid = size; @@ -108,6 +119,8 @@ public class FluidTank { if(slots[in] == null) return false; + if(this.pressure != 0) return false; //for now, canisters can only be loaded from high-pressure tanks, not unloaded + int prev = this.getFill(); for(FluidLoadingHandler handler : loadingHandlers) { @@ -223,6 +236,10 @@ public class FluidTank { list.add(I18n.format(this.type.getUnlocalizedName())); list.add(fluid + "/" + maxFluid + "mB"); + if(this.pressure != 0) { + list.add(EnumChatFormatting.RED + "" + this.pressure + "mB/l"); + } + type.addInfo(list); gui.drawInfo(list.toArray(new String[0]), mouseX, mouseY); } @@ -233,6 +250,7 @@ public class FluidTank { nbt.setInteger(s, fluid); nbt.setInteger(s + "_max", maxFluid); nbt.setInteger(s + "_type", type.getID()); + nbt.setShort(s + "_p", (short) pressure); } //Called by TE to load fillstate @@ -245,6 +263,8 @@ public class FluidTank { type = Fluids.fromName(nbt.getString(s + "_type")); //compat if(type == Fluids.NONE) type = Fluids.fromID(nbt.getInteger(s + "_type")); + + this.pressure = nbt.getShort(s + "_p"); } } diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index d2806ca03..acaadd51d 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -47,6 +47,7 @@ import com.hbm.blocks.BlockEnums.EnumStoneType; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockMotherOfAllOres; import com.hbm.blocks.generic.BlockToolConversion; +import com.hbm.commands.CommandDebugChunkLoad; import com.hbm.commands.CommandReloadRecipes; import com.hbm.config.*; import com.hbm.crafting.RodRecipes; @@ -895,6 +896,7 @@ public class MainRegistry { RBMKDials.createDials(world); SiegeOrchestrator.createGameRules(world); event.registerServerCommand(new CommandReloadRecipes()); + event.registerServerCommand(new CommandDebugChunkLoad()); } @EventHandler diff --git a/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java b/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java index 4a1786e53..c4b8404d3 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java +++ b/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java @@ -427,25 +427,25 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy } @Override - public long transferFluid(FluidType type, long fluid) { + public long transferFluid(FluidType type, int pressure, long fluid) { if(!this.fluid) return fluid; if(getTile() instanceof IFluidConnector) { - return ((IFluidConnector)getTile()).transferFluid(type, fluid); + return ((IFluidConnector)getTile()).transferFluid(type, pressure, fluid); } return fluid; } @Override - public long getDemand(FluidType type) { + public long getDemand(FluidType type, int pressure) { if(!this.fluid) return 0; if(getTile() instanceof IFluidConnector) { - return ((IFluidConnector)getTile()).getDemand(type); + return ((IFluidConnector)getTile()).getDemand(type, pressure); } return 0; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java index fdc95bc0e..4a0226d96 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java @@ -81,7 +81,7 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcc this.sendPower(worldObj, xCoord - dir.offsetX * 11, yCoord, zCoord - dir.offsetZ * 11, dir.getOpposite()); for(DirPos pos : this.getConPos()) { - this.sendFluid(tanks[1].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.sendFluid(tanks[1], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCondenser.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCondenser.java index 20f0d3915..8b42674b0 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCondenser.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCondenser.java @@ -60,7 +60,7 @@ public class TileEntityCondenser extends TileEntityLoadedBase implements IFluidA } this.subscribeToAllAround(tanks[0].getTankType(), this); - this.sendFluidToAll(tanks[1].getTankType(), this); + this.sendFluidToAll(tanks[1], this); fillFluidInit(tanks[1].getTankType()); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java index 085f1d9ad..ec4354528 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java @@ -3,9 +3,7 @@ package com.hbm.tileentity.machine; import api.hbm.block.ILaserable; import api.hbm.energy.IEnergyUser; import api.hbm.fluid.IFluidStandardReceiver; -import com.hbm.interfaces.IFluidAcceptor; import com.hbm.inventory.container.ContainerCoreEmitter; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUICoreEmitter; @@ -35,7 +33,7 @@ import net.minecraftforge.common.util.ForgeDirection; import java.util.List; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEnergyUser, IFluidAcceptor, ILaserable, IFluidStandardReceiver, SimpleComponent, IGUIProvider { +public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEnergyUser, ILaserable, IFluidStandardReceiver, SimpleComponent, IGUIProvider { public long power; public static final long maxPower = 1000000000L; @@ -198,38 +196,6 @@ public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEne return (watts * i) / 100; } - @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tank.getTankType().name())) - tank.setFill(i); - } - - @Override - public int getFluidFill(FluidType type) { - if(type.name().equals(tank.getTankType().name())) - return tank.getFill(); - else - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - if(type.name().equals(tank.getTankType().name())) - return tank.getMaxFill(); - else - return 0; - } - - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - @Override public void setPower(long i) { this.power = i; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumExtractor.java b/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumExtractor.java index 1996b4bec..b902dfd3e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumExtractor.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumExtractor.java @@ -43,7 +43,7 @@ public class TileEntityDeuteriumExtractor extends TileEntityMachineBase implemen } this.subscribeToAllAround(tanks[0].getTankType(), this); - this.sendFluidToAll(tanks[1].getTankType(), this); + this.sendFluidToAll(tanks[1], this); NBTTagCompound data = new NBTTagCompound(); data.setLong("power", power); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumTower.java b/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumTower.java index 8cc2e93c9..a05b6fe01 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumTower.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumTower.java @@ -20,7 +20,8 @@ public class TileEntityDeuteriumTower extends TileEntityDeuteriumExtractor { tanks[0] = new FluidTank(Fluids.WATER, 50000, 0); tanks[1] = new FluidTank(Fluids.HEAVYWATER, 5000, 1); } - + + @Override protected void updateConnections() { for(DirPos pos : getConPos()) { @@ -28,17 +29,19 @@ public class TileEntityDeuteriumTower extends TileEntityDeuteriumExtractor { } } + @Override public void subscribeToAllAround(FluidType type, World world, int x, int y, int z) { for(DirPos pos : getConPos()) { this.trySubscribe(type, world, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } } - - public void sendFluidToAll(FluidType type, TileEntity te) { + + @Override + public void sendFluidToAll(FluidTank tank, TileEntity te) { for(DirPos pos : getConPos()) { - this.sendFluid(type, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.sendFluid(tank, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceCombination.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceCombination.java index 3295b6b0c..a35eaa70d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceCombination.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceCombination.java @@ -62,14 +62,14 @@ public class TileEntityFurnaceCombination extends TileEntityMachineBase implemen for(int y = yCoord; y <= yCoord + 1; y++) { for(int j = -1; j <= 1; j++) { - if(tank.getFill() > 0) this.sendFluid(tank.getTankType(), worldObj, xCoord + dir.offsetX * 2 + rot.offsetX * j, y, zCoord + dir.offsetZ * 2 + rot.offsetZ * j, dir); + if(tank.getFill() > 0) this.sendFluid(tank, worldObj, xCoord + dir.offsetX * 2 + rot.offsetX * j, y, zCoord + dir.offsetZ * 2 + rot.offsetZ * j, dir); } } } for(int x = xCoord - 1; x <= xCoord + 1; x++) { for(int z = zCoord - 1; z <= zCoord + 1; z++) { - if(tank.getFill() > 0) this.sendFluid(tank.getTankType(), worldObj, x, yCoord + 2, z, ForgeDirection.UP); + if(tank.getFill() > 0) this.sendFluid(tank, worldObj, x, yCoord + 2, z, ForgeDirection.UP); } } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoiler.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoiler.java index a2325f6af..c7c98008d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoiler.java @@ -193,7 +193,7 @@ public class TileEntityHeatBoiler extends TileEntityLoadedBase implements IFluid private void sendFluid() { for(DirPos pos : getConPos()) { - this.sendFluid(tanks[1].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir().getOpposite()); + this.sendFluid(tanks[1], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir().getOpposite()); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterHeatex.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterHeatex.java index 7d0656c7e..e1dffc2b1 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterHeatex.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterHeatex.java @@ -65,7 +65,7 @@ public class TileEntityHeaterHeatex extends TileEntityMachineBase implements IHe INBTPacketReceiver.networkPack(this, data, 25); for(DirPos pos : getConPos()) { - if(this.tanks[1].getFill() > 0) this.sendFluid(tanks[1].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + if(this.tanks[1].getFill() > 0) this.sendFluid(tanks[1], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java index fe47229b1..1e7d206f2 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java @@ -156,7 +156,7 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyUser for(DirPos pos : getConPos()) { if(tanks[1].getFill() > 0) { - this.sendFluid(tanks[1].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.sendFluid(tanks[1], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java index 9dd81d815..8a7c4e55f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java @@ -91,7 +91,7 @@ public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase im this.consumption *= (overLevel + 1); for(DirPos pos : getConPos()) { - this.sendFluid(steam.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.sendFluid(steam, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } if(steam.getFill() > 0) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoiler.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoiler.java index 50571797e..7882e3e8c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoiler.java @@ -218,7 +218,7 @@ public class TileEntityMachineBoiler extends TileEntityLoadedBase implements ISi if(!worldObj.isRemote) { this.subscribeToAllAround(tanks[0].getTankType(), this); - this.sendFluidToAll(tanks[1].getTankType(), this); + this.sendFluidToAll(tanks[1], this); age++; if(age >= 20) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoilerElectric.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoilerElectric.java index 38616f5a8..e29757724 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoilerElectric.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoilerElectric.java @@ -233,7 +233,7 @@ public class TileEntityMachineBoilerElectric extends TileEntityLoadedBase implem { this.updateConnections(); this.subscribeToAllAround(tanks[0].getTankType(), this); - this.sendFluidToAll(tanks[1].getTankType(), this); + this.sendFluidToAll(tanks[1], this); age++; if(age >= 20) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java index 69215202a..539ea2f42 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java @@ -1,15 +1,12 @@ package com.hbm.tileentity.machine; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; import java.util.Random; import com.hbm.blocks.BlockDummyable; -import com.hbm.interfaces.IFluidAcceptor; import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerChemfac; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIChemfac; @@ -76,7 +73,7 @@ public class TileEntityMachineChemfac extends TileEntityMachineChemplantBase { for(DirPos pos : getConPos()) for(FluidTank tank : outTanks()) { if(tank.getTankType() != Fluids.NONE && tank.getFill() > 0) { - this.sendFluid(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.sendFluid(tank, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } } @@ -217,58 +214,6 @@ public class TileEntityMachineChemfac extends TileEntityMachineChemplantBase { return conPos; } - @Override - public void fillFluidInit(FluidType type) { - - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); - ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - - for(int i = 0; i < 6; i++) { - fillFluid(xCoord + dir.offsetX * (2 - i) + rot.offsetX * 3, yCoord + 4, zCoord + dir.offsetZ * (2 - i) + rot.offsetZ * 3, this.getTact(), type); - fillFluid(xCoord + dir.offsetX * (2 - i) - rot.offsetX * 2, yCoord + 4, zCoord + dir.offsetZ * (2 - i) - rot.offsetZ * 2, this.getTact(), type); - - for(int j = 0; j < 2; j++) { - fillFluid(xCoord + dir.offsetX * (2 - i) + rot.offsetX * 5, yCoord + 1 + j, zCoord + dir.offsetZ * (2 - i) + rot.offsetZ * 5, this.getTact(), type); - fillFluid(xCoord + dir.offsetX * (2 - i) - rot.offsetX * 4, yCoord + 1 + j, zCoord + dir.offsetZ * (2 - i) - rot.offsetZ * 4, this.getTact(), type); - } - } - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - return this.worldObj.getTotalWorldTime() % 20 < 10; - } - - private HashMap> fluidMap = new HashMap(); - - @Override - public List getFluidList(FluidType type) { - - List list = fluidMap.get(type); - - if(list == null) { - list = new ArrayList(); - fluidMap.put(type, list); - } - - return list; - } - - @Override - public void clearFluidList(FluidType type) { - - List list = fluidMap.get(type); - - if(list != null) { - list.clear(); - } - } - @Override public int getRecipeCount() { return 8; @@ -366,11 +311,6 @@ public class TileEntityMachineChemfac extends TileEntityMachineChemplantBase { return outTanks; } - - @Override - public int getMaxFluidFillForReceive(FluidType type) { - return super.getMaxFluidFillForReceive(type); - } AxisAlignedBB bb = null; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java index a1b29e28e..b40be0fdc 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java @@ -111,8 +111,8 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements } for(DirPos pos : getConPos()) { - if(tanks[2].getFill() > 0) this.sendFluid(tanks[2].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); - if(tanks[3].getFill() > 0) this.sendFluid(tanks[3].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + if(tanks[2].getFill() > 0) this.sendFluid(tanks[2], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + if(tanks[3].getFill() > 0) this.sendFluid(tanks[3], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } UpgradeManager.eval(slots, 1, 3); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java index 1a32bf626..9956e1810 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java @@ -34,7 +34,7 @@ import net.minecraft.util.ChunkCoordinates; * Tanks follow the order R1(I1, I2, O1, O2), R2(I1, I2, O1, O2) ... * @author hbm */ -public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBase implements IEnergyUser, IFluidSource, IFluidAcceptor, IFluidUser, IGUIProvider { +public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBase implements IEnergyUser, IFluidUser, IGUIProvider { public long power; public int[] progress; @@ -74,15 +74,6 @@ public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBa loadItems(i); unloadItems(i); } - - if(worldObj.getTotalWorldTime() % 10 == 0) { - - for(FluidTank tank : this.outTanks()) { - if(tank.getTankType() != Fluids.NONE && tank.getFill() > 0) { - this.fillFluidInit(tank.getTankType()); - } - } - } for(int i = 0; i < count; i++) { @@ -322,17 +313,7 @@ public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBa this.power = power; } - @Override - public void setFillForSync(int fill, int index) { } - - @Override - public void setFluidFill(int fill, FluidType type) { } - - @Override - public void setTypeForSync(FluidType type, int index) { } - - @Override - public int getFluidFill(FluidType type) { + /*public int getFluidFill(FluidType type) { int fill = 0; @@ -349,10 +330,9 @@ public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBa } return fill; - } + }*/ /* For input only! */ - @Override public int getMaxFluidFill(FluidType type) { int maxFill = 0; @@ -365,20 +345,6 @@ public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBa return maxFill; } - - @Override - public int getFluidFillForReceive(FluidType type) { - - int fill = 0; - - for(FluidTank tank : inTanks()) { - if(tank.getTankType() == type) { - fill += tank.getFill(); - } - } - - return fill; - } protected List inTanks() { @@ -394,8 +360,7 @@ public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBa return inTanks; } - @Override - public void receiveFluid(int amount, FluidType type) { + /*public void receiveFluid(int amount, FluidType type) { if(amount <= 0) return; @@ -431,15 +396,14 @@ public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBa tank.setFill(tank.getFill() + part); } - } + }*/ - @Override - public int getFluidFillForTransfer(FluidType type) { + public int getFluidFillForTransfer(FluidType type, int pressure) { int fill = 0; for(FluidTank tank : outTanks()) { - if(tank.getTankType() == type) { + if(tank.getTankType() == type && tank.getPressure() == pressure) { fill += tank.getFill(); } } @@ -447,8 +411,7 @@ public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBa return fill; } - @Override - public void transferFluid(int amount, FluidType type) { + public void transferFluid(int amount, FluidType type, int pressure) { /* * this whole new fluid mumbo jumbo extra abstraction layer might just be a bandaid @@ -462,7 +425,7 @@ public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBa List send = new ArrayList(); for(FluidTank tank : outTanks()) { - if(tank.getTankType() == type) { + if(tank.getTankType() == type && tank.getPressure() == pressure) { send.add(tank); } } @@ -524,7 +487,7 @@ public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBa } @Override - public long transferFluid(FluidType type, long fluid) { + public long transferFluid(FluidType type, int pressure, long fluid) { int amount = (int) fluid; if(amount <= 0) @@ -533,7 +496,7 @@ public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBa List rec = new ArrayList(); for(FluidTank tank : inTanks()) { - if(tank.getTankType() == type) { + if(tank.getTankType() == type && tank.getPressure() == pressure) { rec.add(tank); } } @@ -567,18 +530,18 @@ public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBa } @Override - public long getDemand(FluidType type) { - return getMaxFluidFill(type) - getFluidFillForTransfer(type); + public long getDemand(FluidType type, int pressure) { + return getMaxFluidFill(type) - getFluidFillForTransfer(type, pressure); } @Override - public long getTotalFluidForSend(FluidType type) { - return getFluidFillForTransfer(type); + public long getTotalFluidForSend(FluidType type, int pressure) { + return getFluidFillForTransfer(type, pressure); } @Override - public void removeFluidForTransfer(FluidType type, long amount) { - this.transferFluid((int) amount, type); + public void removeFluidForTransfer(FluidType type, int pressure, long amount) { + this.transferFluid((int) amount, type, pressure); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java index 05459da78..0fa7a053f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java @@ -173,7 +173,7 @@ public class TileEntityMachineCyclotron extends TileEntityMachineBase implements private void sendFluid() { for(DirPos pos : getConPos()) { - this.sendFluid(amat.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.sendFluid(amat, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineHephaestus.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineHephaestus.java index 242d316cd..f629c577b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineHephaestus.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineHephaestus.java @@ -72,7 +72,7 @@ public class TileEntityMachineHephaestus extends TileEntityLoadedBase implements if(output.getFill() > 0) { for(DirPos pos : getConPos()) { - this.sendFluid(output.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.sendFluid(output, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } } data.setInteger("heat", this.getTotalHeat()); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java index 4e43bfcb0..5f37053e9 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java @@ -74,7 +74,7 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); this.sendPower(worldObj, xCoord + dir.offsetX * -4, yCoord, zCoord + dir.offsetZ * -4, dir.getOpposite()); for(DirPos pos : getConPos()) this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); - for(DirPos pos : getConPos()) this.sendFluid(tanks[1].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + for(DirPos pos : getConPos()) this.sendFluid(tanks[1], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); tanks[0].setType(0, 1, slots); tanks[0].loadTank(2, 3, slots); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java index b8d708c5e..e0e4c52f7 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java @@ -99,10 +99,10 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen if (age == 9 || age == 19) fillFluidInit(tank.getTankType()); - this.sendFluid(tank.getTankType(), worldObj, xCoord + 2, yCoord, zCoord, Library.POS_X); - this.sendFluid(tank.getTankType(), worldObj, xCoord - 2, yCoord, zCoord, Library.NEG_X); - this.sendFluid(tank.getTankType(), worldObj, xCoord, yCoord + 2, zCoord, Library.POS_Z); - this.sendFluid(tank.getTankType(), worldObj, xCoord, yCoord - 2, zCoord, Library.NEG_Z); + this.sendFluid(tank, worldObj, xCoord + 2, yCoord, zCoord, Library.POS_X); + this.sendFluid(tank, worldObj, xCoord - 2, yCoord, zCoord, Library.NEG_X); + this.sendFluid(tank, worldObj, xCoord, yCoord + 2, zCoord, Library.POS_Z); + this.sendFluid(tank, worldObj, xCoord, yCoord - 2, zCoord, Library.NEG_Z); power = Library.chargeTEFromItems(slots, 0, power, maxPower); tank.updateTank(xCoord, yCoord, zCoord, this.worldObj.provider.dimensionId); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMixer.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMixer.java index d92976d5f..37333a316 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMixer.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMixer.java @@ -100,7 +100,7 @@ public class TileEntityMachineMixer extends TileEntityMachineBase implements INB } for(DirPos pos : getConPos()) { - if(tanks[2].getFill() > 0) this.sendFluid(tanks[2].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + if(tanks[2].getFill() > 0) this.sendFluid(tanks[2], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } NBTTagCompound data = new NBTTagCompound(); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadiolysis.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadiolysis.java index 12ec35a76..1cbe50ab4 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadiolysis.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadiolysis.java @@ -142,8 +142,8 @@ public class TileEntityMachineRadiolysis extends TileEntityMachineBase implement for(DirPos pos : getConPos()) { this.sendPower(worldObj, pos.getX(), pos.getY(),pos.getZ(), pos.getDir()); this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(),pos.getZ(), pos.getDir()); - if(tanks[1].getFill() > 0) this.sendFluid(tanks[1].getTankType(), worldObj, pos.getX(), pos.getY(),pos.getZ(), pos.getDir()); - if(tanks[2].getFill() > 0) this.sendFluid(tanks[2].getTankType(), worldObj, pos.getX(), pos.getY(),pos.getZ(), pos.getDir()); + if(tanks[1].getFill() > 0) this.sendFluid(tanks[1], worldObj, pos.getX(), pos.getY(),pos.getZ(), pos.getDir()); + if(tanks[2].getFill() > 0) this.sendFluid(tanks[2], worldObj, pos.getX(), pos.getY(),pos.getZ(), pos.getDir()); } NBTTagCompound data = new NBTTagCompound(); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorLarge.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorLarge.java index ee0e824d8..9cfafeb0d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorLarge.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorLarge.java @@ -771,7 +771,7 @@ public class TileEntityMachineReactorLarge extends TileEntityLoadedBase implemen if(worldObj.getBlock(xCoord + dir.offsetX * 2, yCoord, zCoord + dir.offsetZ * 2) == ModBlocks.reactor_hatch) { fillFluid(this.xCoord + dir.offsetX * 3, this.yCoord, this.zCoord + dir.offsetZ * 3, getTact(), type); for(int i = 0; i < 2; i++) this.trySubscribe(tanks[i].getTankType(), worldObj, this.xCoord + dir.offsetX * 3, this.yCoord, this.zCoord + dir.offsetZ * 3, Library.NEG_X); - this.sendFluid(tanks[2].getTankType(), worldObj, this.xCoord + dir.offsetX * 3, this.yCoord, this.zCoord + dir.offsetZ * 3, Library.NEG_X); + this.sendFluid(tanks[2], worldObj, this.xCoord + dir.offsetX * 3, this.yCoord, this.zCoord + dir.offsetZ * 3, Library.NEG_X); } else { for(int i = 0; i < 2; i++) this.tryUnsubscribe(tanks[i].getTankType(), worldObj, this.xCoord + dir.offsetX * 3, this.yCoord, this.zCoord + dir.offsetZ * 3); } @@ -780,8 +780,8 @@ public class TileEntityMachineReactorLarge extends TileEntityLoadedBase implemen fillFluid(this.xCoord, this.yCoord + height + 1, this.zCoord, getTact(), type); fillFluid(this.xCoord, this.yCoord - depth - 1, this.zCoord, getTact(), type); - this.sendFluid(tanks[2].getTankType(), worldObj, this.xCoord, this.yCoord + height + 1, this.zCoord, Library.POS_Y); - this.sendFluid(tanks[2].getTankType(), worldObj, this.xCoord, this.yCoord - depth - 1, this.zCoord, Library.NEG_Y); + this.sendFluid(tanks[2], worldObj, this.xCoord, this.yCoord + height + 1, this.zCoord, Library.POS_Y); + this.sendFluid(tanks[2], worldObj, this.xCoord, this.yCoord - depth - 1, this.zCoord, Library.NEG_Y); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java index 2a9f08a8b..eb4d3f731 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java @@ -261,7 +261,7 @@ public class TileEntityMachineTurbine extends TileEntityLoadedBase implements IS if(!valid) tanks[1].setTankType(Fluids.NONE); if(power > maxPower) power = maxPower; - this.sendFluidToAll(tanks[1].getTankType(), this); + this.sendFluidToAll(tanks[1], this); tanks[1].unloadTank(5, 6, slots); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java index 79334c4b6..e2b64dde5 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java @@ -139,7 +139,7 @@ public class TileEntityMachineTurbineGas extends TileEntityMachineBase implement this.trySubscribe(tanks[2].getTankType(), worldObj, xCoord - dir.offsetX * 2 + rot.offsetX * -4, yCoord, zCoord - dir.offsetZ * 2 + rot.offsetZ * -4, dir.getOpposite()); this.trySubscribe(tanks[2].getTankType(), worldObj, xCoord + dir.offsetX * 2 + rot.offsetX * -4, yCoord, zCoord + dir.offsetZ * 2 + rot.offsetZ * -4, dir); //steam - this.sendFluid(tanks[3].getTankType(), worldObj, xCoord + dir.offsetZ * 6, yCoord + 1, zCoord - dir.offsetX * 6, rot.getOpposite()); + this.sendFluid(tanks[3], worldObj, xCoord + dir.offsetZ * 6, yCoord + 1, zCoord - dir.offsetX * 6, rot.getOpposite()); //if(audio != null) // audio shouldn't even exist serverside // audio.updatePitch((float) (0.45 + 0.05 * rpm / 10)); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java index 262bfb654..bd87b519c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java @@ -168,7 +168,7 @@ public class TileEntityMachineTurbofan extends TileEntityMachineBase implements for(DirPos pos : getConPos()) { this.sendPower(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); this.trySubscribe(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); - if(this.blood.getFill() > 0) this.sendFluid(blood.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + if(this.blood.getFill() > 0) this.sendFluid(blood, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } if(burnValue > 0 && amountToBurn > 0) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java index 143795070..c605f96d6 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java @@ -230,7 +230,7 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF } for(DirPos pos : getConPos()) { - this.sendFluid(steam.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.sendFluid(steam, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } checkIfMeltdown(); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntitySolarBoiler.java b/src/main/java/com/hbm/tileentity/machine/TileEntitySolarBoiler.java index 2ceec4118..ab91d87c3 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntitySolarBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntitySolarBoiler.java @@ -56,8 +56,8 @@ public class TileEntitySolarBoiler extends TileEntityLoadedBase implements IFlui water.setFill(water.getFill() - process); steam.setFill(steam.getFill() + process * 100); - this.sendFluid(steam.getTankType(), worldObj, xCoord, yCoord + 3, zCoord, Library.POS_Y); - this.sendFluid(steam.getTankType(), worldObj, xCoord, yCoord - 1, zCoord, Library.NEG_Y); + this.sendFluid(steam, worldObj, xCoord, yCoord + 3, zCoord, Library.POS_Y); + this.sendFluid(steam, worldObj, xCoord, yCoord - 1, zCoord, Library.NEG_Y); heat = 0; } else { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntitySteamEngine.java b/src/main/java/com/hbm/tileentity/machine/TileEntitySteamEngine.java index f3c99b090..2d70dc4c6 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntitySteamEngine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntitySteamEngine.java @@ -120,7 +120,7 @@ public class TileEntitySteamEngine extends TileEntityLoadedBase implements IFlui if(this.powerBuffer > 0) this.sendPower(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); - this.sendFluid(tanks[1].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.sendFluid(tanks[1], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } if(tanks[1].getFill() > 0) fillFluidInit(tanks[1].getTankType()); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java b/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java index e157188be..9b9a4432c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java @@ -148,8 +148,8 @@ public class TileEntityStorageDrum extends TileEntityMachineBase implements IFlu fillFluidInit(tanks[1].getTankType()); } - this.sendFluidToAll(tanks[0].getTankType(), this); - this.sendFluidToAll(tanks[1].getTankType(), this); + this.sendFluidToAll(tanks[0], this); + this.sendFluidToAll(tanks[1], this); tanks[0].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); tanks[1].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityTowerLarge.java b/src/main/java/com/hbm/tileentity/machine/TileEntityTowerLarge.java index 5fd40bbe0..03b16cf88 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityTowerLarge.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityTowerLarge.java @@ -68,14 +68,14 @@ public class TileEntityTowerLarge extends TileEntityCondenser { } @Override - public void sendFluidToAll(FluidType type, TileEntity te) { + public void sendFluidToAll(FluidTank tank, TileEntity te) { for(int i = 2; i < 6; i++) { ForgeDirection dir = ForgeDirection.getOrientation(i); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - this.sendFluid(this.tanks[1].getTankType(), worldObj, xCoord + dir.offsetX * 5, yCoord, zCoord + dir.offsetZ * 5, dir); - this.sendFluid(this.tanks[1].getTankType(), worldObj, xCoord + dir.offsetX * 5 + rot.offsetX * 3, yCoord, zCoord + dir.offsetZ * 5 + rot.offsetZ * 3, dir); - this.sendFluid(this.tanks[1].getTankType(),worldObj, xCoord + dir.offsetX * 5 + rot.offsetX * -3, yCoord, zCoord + dir.offsetZ * 5 + rot.offsetZ * -3, dir); + this.sendFluid(this.tanks[1], worldObj, xCoord + dir.offsetX * 5, yCoord, zCoord + dir.offsetZ * 5, dir); + this.sendFluid(this.tanks[1], worldObj, xCoord + dir.offsetX * 5 + rot.offsetX * 3, yCoord, zCoord + dir.offsetZ * 5 + rot.offsetZ * 3, dir); + this.sendFluid(this.tanks[1], worldObj, xCoord + dir.offsetX * 5 + rot.offsetX * -3, yCoord, zCoord + dir.offsetZ * 5 + rot.offsetZ * -3, dir); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityTowerSmall.java b/src/main/java/com/hbm/tileentity/machine/TileEntityTowerSmall.java index 05849023a..7dbb010bb 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityTowerSmall.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityTowerSmall.java @@ -53,11 +53,11 @@ public class TileEntityTowerSmall extends TileEntityCondenser { } @Override - public void sendFluidToAll(FluidType type, TileEntity te) { - this.sendFluid(this.tanks[1].getTankType(), worldObj, xCoord + 3, yCoord, zCoord, Library.POS_X); - this.sendFluid(this.tanks[1].getTankType(), worldObj, xCoord - 3, yCoord, zCoord, Library.NEG_X); - this.sendFluid(this.tanks[1].getTankType(), worldObj, xCoord, yCoord, zCoord + 3, Library.POS_Z); - this.sendFluid(this.tanks[1].getTankType(), worldObj, xCoord, yCoord, zCoord - 3, Library.NEG_Z); + public void sendFluidToAll(FluidTank tank, TileEntity te) { + this.sendFluid(this.tanks[1], worldObj, xCoord + 3, yCoord, zCoord, Library.POS_X); + this.sendFluid(this.tanks[1], worldObj, xCoord - 3, yCoord, zCoord, Library.NEG_X); + this.sendFluid(this.tanks[1], worldObj, xCoord, yCoord, zCoord + 3, Library.POS_Z); + this.sendFluid(this.tanks[1], worldObj, xCoord, yCoord, zCoord - 3, Library.NEG_Z); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityWatz.java b/src/main/java/com/hbm/tileentity/machine/TileEntityWatz.java index 4f1124f8e..8b3e4baeb 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityWatz.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityWatz.java @@ -318,8 +318,8 @@ public class TileEntityWatz extends TileEntityMachineBase implements IFluidStand protected void sendOutBottom() { for(DirPos pos : getSendingPos()) { - if(tanks[1].getFill() > 0) this.sendFluid(tanks[1].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); - if(tanks[2].getFill() > 0) this.sendFluid(tanks[2].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + if(tanks[1].getFill() > 0) this.sendFluid(tanks[1], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + if(tanks[2].getFill() > 0) this.sendFluid(tanks[2], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityWatzCore.java b/src/main/java/com/hbm/tileentity/machine/TileEntityWatzCore.java index 8411a1c76..95db0d668 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityWatzCore.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityWatzCore.java @@ -565,10 +565,10 @@ public class TileEntityWatzCore extends TileEntityLoadedBase implements ISidedIn this.sendPower(worldObj, xCoord, yCoord + 7, zCoord, ForgeDirection.UP); this.sendPower(worldObj, xCoord, yCoord - 7, zCoord, ForgeDirection.DOWN); - this.sendFluid(tank.getTankType(), worldObj, xCoord + 4, yCoord, zCoord, Library.POS_X); - this.sendFluid(tank.getTankType(), worldObj, xCoord, yCoord, zCoord + 4, Library.POS_Z); - this.sendFluid(tank.getTankType(), worldObj, xCoord - 4, yCoord, zCoord, Library.NEG_X); - this.sendFluid(tank.getTankType(), worldObj, xCoord, yCoord, zCoord - 4, Library.NEG_Z); + this.sendFluid(tank, worldObj, xCoord + 4, yCoord, zCoord, Library.POS_X); + this.sendFluid(tank, worldObj, xCoord, yCoord, zCoord + 4, Library.POS_Z); + this.sendFluid(tank, worldObj, xCoord - 4, yCoord, zCoord, Library.NEG_X); + this.sendFluid(tank, worldObj, xCoord, yCoord, zCoord - 4, Library.NEG_Z); if (age == 9 || age == 19) { fillFluidInit(tank.getTankType()); diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticCracker.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticCracker.java index e04bef058..37f9f4fb0 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticCracker.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticCracker.java @@ -49,7 +49,7 @@ public class TileEntityMachineCatalyticCracker extends TileEntityLoadedBase impl for(DirPos pos : getConPos()) { for(int i = 2; i <= 4; i++) { - if(tanks[i].getFill() > 0) this.sendFluid(tanks[i].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + if(tanks[i].getFill() > 0) this.sendFluid(tanks[i], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticReformer.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticReformer.java index 7aaf0ed3a..04e534de5 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticReformer.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticReformer.java @@ -69,7 +69,7 @@ public class TileEntityMachineCatalyticReformer extends TileEntityMachineBase im for(DirPos pos : getConPos()) { for(int i = 1; i < 4; i++) { if(tanks[i].getFill() > 0) { - this.sendFluid(tanks[i].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.sendFluid(tanks[i], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCoker.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCoker.java index fa5ee1a72..65db88540 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCoker.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCoker.java @@ -101,7 +101,7 @@ public class TileEntityMachineCoker extends TileEntityMachineBase implements IFl } for(DirPos pos : getConPos()) { - if(this.tanks[1].getFill() > 0) this.sendFluid(tanks[1].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + if(this.tanks[1].getFill() > 0) this.sendFluid(tanks[1], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } NBTTagCompound data = new NBTTagCompound(); diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFractionTower.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFractionTower.java index c963381a2..19ed18ecd 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFractionTower.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFractionTower.java @@ -104,8 +104,8 @@ public class TileEntityMachineFractionTower extends TileEntityLoadedBase impleme private void sendFluid() { for(DirPos pos : getConPos()) { - this.sendFluid(tanks[1].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); - this.sendFluid(tanks[2].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.sendFluid(tanks[1], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.sendFluid(tanks[2], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java index 2092b4805..99f9d8bf0 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java @@ -97,7 +97,7 @@ public class TileEntityMachineLiquefactor extends TileEntityMachineBase implemen private void sendFluid() { for(DirPos pos : getConPos()) { - this.sendFluid(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.sendFluid(tank, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java index a345a43d4..8cac21820 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java @@ -174,7 +174,7 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements for(DirPos pos : getConPos()) { for(int i = 1; i < 5; i++) { if(tanks[i].getFill() > 0) { - this.sendFluid(tanks[i].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.sendFluid(tanks[i], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineVacuumDistill.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineVacuumDistill.java index 400e5c98f..81ef2baa8 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineVacuumDistill.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineVacuumDistill.java @@ -66,7 +66,7 @@ public class TileEntityMachineVacuumDistill extends TileEntityMachineBase implem for(DirPos pos : getConPos()) { for(int i = 1; i < 5; i++) { if(tanks[i].getFill() > 0) { - this.sendFluid(tanks[i].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.sendFluid(tanks[i], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java index 7ac708861..11d36657f 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java @@ -132,8 +132,8 @@ public abstract class TileEntityOilDrillBase extends TileEntityMachineBase imple this.fillFluidInit(tanks[1].getTankType()); for(DirPos pos : getConPos()) { - if(tanks[0].getFill() > 0) this.sendFluid(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); - if(tanks[1].getFill() > 0) this.sendFluid(tanks[1].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + if(tanks[0].getFill() > 0) this.sendFluid(tanks[0], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + if(tanks[1].getFill() > 0) this.sendFluid(tanks[1], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } if(this.power >= this.getPowerReqEff() && this.tanks[0].getFill() < this.tanks[0].getMaxFill() && this.tanks[1].getFill() < this.tanks[1].getMaxFill()) { diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java index bd46536de..6c1a784e6 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java @@ -95,7 +95,7 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I this.trySubscribe(feed.getTankType(), worldObj, xCoord, yCoord - 1, zCoord, Library.NEG_Y); for(DirPos pos : getOutputPos()) { - if(this.steam.getFill() > 0) this.sendFluid(steam.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + if(this.steam.getFill() > 0) this.sendFluid(steam, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } } diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java index 3ddb02d04..3d408086d 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java @@ -86,7 +86,7 @@ public class TileEntityRBMKHeater extends TileEntityRBMKSlottedBase implements I this.trySubscribe(feed.getTankType(), worldObj, xCoord, yCoord - 1, zCoord, Library.NEG_Y); for(DirPos pos : getOutputPos()) { - if(this.steam.getFill() > 0) this.sendFluid(steam.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + if(this.steam.getFill() > 0) this.sendFluid(steam, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } } diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java index bbb5ff2e0..c3c2665bf 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java @@ -54,7 +54,7 @@ public class TileEntityRBMKOutgasser extends TileEntityRBMKSlottedBase implement } for(DirPos pos : getOutputPos()) { - if(this.gas.getFill() > 0) this.sendFluid(gas.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + if(this.gas.getFill() > 0) this.sendFluid(gas, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } } diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutlet.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutlet.java index f852e31bd..2c047cfd1 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutlet.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutlet.java @@ -54,7 +54,7 @@ public class TileEntityRBMKOutlet extends TileEntityLoadedBase implements IFluid } fillFluidInit(this.steam.getTankType()); - this.sendFluidToAll(steam.getTankType(), this); + this.sendFluidToAll(steam, this); } } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java index d6957ce01..e8f941496 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java @@ -75,7 +75,7 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc tank.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); this.sendingBrake = true; - tank.setFill(transmitFluidFairly(worldObj, tank.getTankType(), this, tank.getFill(), this.mode == 0 || this.mode == 1, this.mode == 1 || this.mode == 2, getConPos())); + tank.setFill(transmitFluidFairly(worldObj, tank, this, tank.getFill(), this.mode == 0 || this.mode == 1, this.mode == 1 || this.mode == 2, getConPos())); this.sendingBrake = false; age++; @@ -106,10 +106,12 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc }; } - protected static int transmitFluidFairly(World world, FluidType type, IFluidConnector that, int fill, boolean connect, boolean send, DirPos[] connections) { + protected static int transmitFluidFairly(World world, FluidTank tank, IFluidConnector that, int fill, boolean connect, boolean send, DirPos[] connections) { Set nets = new HashSet(); Set consumers = new HashSet(); + FluidType type = tank.getTankType(); + int pressure = tank.getPressure(); for(DirPos pos : connections) { @@ -144,7 +146,7 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc if(x instanceof PipeNet) PipeNet.trackingInstances.add((PipeNet) x); }); - fill = (int) PipeNet.fairTransfer(con, type, fill); + fill = (int) PipeNet.fairTransfer(con, type, pressure, fill); } //resubscribe to buffered nets, if necessary diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java index 91174eb4a..391f5fe43 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java @@ -107,7 +107,7 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements age = 0; this.sendingBrake = true; - tank.setFill(TileEntityBarrel.transmitFluidFairly(worldObj, tank.getTankType(), this, tank.getFill(), this.mode == 0 || this.mode == 1, this.mode == 1 || this.mode == 2, getConPos())); + tank.setFill(TileEntityBarrel.transmitFluidFairly(worldObj, tank, this, tank.getFill(), this.mode == 0 || this.mode == 1, this.mode == 1 || this.mode == 2, getConPos())); this.sendingBrake = false; if((mode == 1 || mode == 2) && (age == 9 || age == 19)) @@ -359,18 +359,20 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements } @Override - public long transferFluid(FluidType type, long fluid) { - long toTransfer = Math.min(getDemand(type), fluid); + public long transferFluid(FluidType type, int pressure, long fluid) { + long toTransfer = Math.min(getDemand(type, pressure), fluid); tank.setFill(tank.getFill() + (int) toTransfer); return fluid - toTransfer; } @Override - public long getDemand(FluidType type) { + public long getDemand(FluidType type, int pressure) { if(this.mode == 2 || this.mode == 3 || this.sendingBrake) return 0; + if(tank.getPressure() != pressure) return 0; + return type == tank.getTankType() ? tank.getMaxFill() - tank.getFill() : 0; } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityPipeBaseNT.java b/src/main/java/com/hbm/tileentity/network/TileEntityPipeBaseNT.java index 71e0c0104..c238da297 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityPipeBaseNT.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityPipeBaseNT.java @@ -107,16 +107,16 @@ public class TileEntityPipeBaseNT extends TileEntity implements IFluidConductor } @Override - public long transferFluid(FluidType type, long fluid) { + public long transferFluid(FluidType type, int pressure, long fluid) { if(this.network == null) return fluid; - return this.network.transferFluid(fluid); + return this.network.transferFluid(fluid, pressure); } @Override - public long getDemand(FluidType type) { + public long getDemand(FluidType type, int pressure) { return 0; } diff --git a/src/main/java/com/hbm/wiaj/cannery/Dummies.java b/src/main/java/com/hbm/wiaj/cannery/Dummies.java index adbc22ee6..879a3fd3a 100644 --- a/src/main/java/com/hbm/wiaj/cannery/Dummies.java +++ b/src/main/java/com/hbm/wiaj/cannery/Dummies.java @@ -11,8 +11,8 @@ public class Dummies { public static class JarDummyConnector extends TileEntity implements IEnergyConnector, IFluidConnector { @Override public boolean isLoaded() { return false; } - @Override public long transferFluid(FluidType type, long fluid) { return 0; } - @Override public long getDemand(FluidType type) { return 0; } + @Override public long transferFluid(FluidType type, int pressure, long fluid) { return 0; } + @Override public long getDemand(FluidType type, int pressure) { return 0; } @Override public long transferPower(long power) { return 0; } @Override public long getPower() { return 0; } @Override public long getMaxPower() { return 0; } diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_furnace_combination.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_furnace_combination.png index 3645fbfd5cb8309eabd11e95781fdb756c18118c..9db29bd5f86b9d8ce034e3d1e504cd8bddb86b83 100644 GIT binary patch literal 6931 zcmd5>XIN9)w%s9M5Rr%q(u1O+6ho74KtWMJieNbk1mPgkdl8ZlY=Bbapwf$|G=YFp z1cXonNG}o~NDEb(A(Vs=c$;(Y`|fK$-uw5~kL-Ned(AcHTw{$n=1zo}iNQf05gq^l z4qm&ee**v@;8zI1y$`%tdFMO;FPuJ?u32(}1H=7iH~@%zzoviDGB9Q7C)QPLIu-Vt z;8;ztp+sC$DE1Ds@H%g$jwun>Z2^d45!0rIP8d48JUHu`m))~5Y|!Fs#;j@ENs>q zi}|x4z!BHgUeo@Cu1(h_x`q1i@V&jiSSwyo zK=Q3}4U>voW?4e`ZgHrDyns3!y%L5F9n-n@I?tK=c|BnJjcNC2w)bU5UQ%(|SBGx_ zlVe*;A%M2MFPA|laF~`r+cnbD@yopGZ1-dnK{7yA2@%-11V@eo?Xf%=3y3%D~`dHy5IaNO3;lkY~cU;9{ zix91^zX!q_VI23TeEyI|1*was=zhAP`-uRAJfqy=;%4yR33$PectJGeMR7hroG$y3 zO+bI%KD=NbFJ)SAJY^1wf7_*dvvf%9(TpGvg#5#0B<3lbL{&O}!2uH}v{D^-SKXw9 z$dkRJ!U+U!c4Uj6iB9@C&JKeBVBA7EG-bv|zfU|r(jc$5NCCfiGaSg1^JLEt`@1C) z<*&HYPjwRAoDtvMEkCW1HyQ0-iPf$MV4%~?;tir z+kBjP=dFNwxXC-8c_mIt@EX^9Y2lSn#^bk7vNU?PK8R?XKh*N|wCjkeDP+PSYa`>8 zaqgT|C9lO1`>R=&@1YU2(QvZL!Gawi<@c9krpTl|H#Iv1a6Tmt3s{OalOQ>{w9Jk4 zhez&G9{ampsqzyVOQF3RkCP1W{J_y&!mD!1u4EI??cf4VLV%08@;M%U6{Dw9oRnw! zg;opNgje1$-U3ITVFCB?ma13RvW@NQAPK`*Z$NSqJSPgUlwNVLCo#f4RiDJO)V|LYinysZ$DBU6;rR;KiZUuj7+(B+u+cX{k9=$*45e38hyw7%QBW6@R#BkFgUtx5J%6*LFA<|mE z2C!8pv~(xhO7+=*u22O=HdDMU)^I+~>r#&Z>1?oSa@fkoLXQZy)SDE!7hSWTyH&VC zbpfW8V3)X7XxT&QLgt@U{ON63hnDWRyM{PVVyQmnF&GeWj{7*KmCg7|65*(bQKJF7 z?I#vrQvW!km@bwY8F0p?ZMIv48ydm+Hh@qMdQq~ko|_W`)L*7mxbh@o!y;LafbZnp zgMcyZMdtYMCmr|vfVtdR2w*CX-T#6hkWAPvvT1F%RK0q#yJGD`iYV^g;!a<^*9VTP zAC&+lA<=YB1r2%*js?=t_0578@yay=jQl)1yBV2!FpKO7{d(2WJ3AdN#xXCoW4tj+ zi3;BZ3K>^pMiHJ(rvg`pZacEL9+U;(F#W3)K(Dg!6Q>D9gzgbi`Q@M_{!WV7UPUTo+33a#;7r21fJ@kWF{}m>3@C8i8N^8v2>$j0U4Mu3~e!ij`X* zZg~BvboNY*8IxgrI4pff9MGjbi=4h<9JpU8@pX^EaRmfESbgK%;0*MYyThbrIRjne z@J$&^<#%7%wg>cZ{r99@Kmpq&6|Nn4G;WNksKnyaZF7_%!CfoGptsklU!aJF+M6?< z1WuT|mhw?T06(5nfh03266Cd=br=;GiDCjt3N`YYPYa_ZJDZitun_O$v0-UR5~O4d zC;bn=k=QqAtD3X+!oJqs)+)C`nZU@Cy=kcQwo4u59Nnfw_6;-u)Mlg04O}hJI_a0{ z$kCQE(c|ML)$R4J$>_$HHP5_hcBv^P*cqrNat8XamoZSgxQ^@TgtezWy27NXgN`Tc z97Px91ujrmHxl8s)ncNsSB4Ir8`Tq;4qwQ*OA*ssrIWpF$Be!`9P9i%TAqhvW<_DY zI_sq`Z9v$X!9D8u!!z1^wpk-RJ?0d~eB#2+Y8eD8hF|xo^8!y@yMyjWeCNkwknUzk ziUw2WZNTN8fl`tX88ep#!S_FlGoRPfT7%6g$=A?|A`{TL(j zNSn1-4lT@!9i&^kYMq_Lc2pvVm=O6*}fH$V-TMN^0 z~yqS-oz9nJsN7v-l(*4?(Kx2-pMAaVqeF()1&aQtdv|c%EUnSXiJ{4S!Q+ejpm^8S{J!`tT)RA}K6BIfgG` zHtyv@JG#O_?evw=+D?y=C;3SR>b(*A7@l_-gq#bBh9<&o1r@Wa&fm__C}sK0vt_Qj z_k3F(s&zS{aJjR{=9m6{Qmc^HZ3e%`O>xm6%4@#bS2?8`GIYHGRD(TiV zF8=+jcZ?SSkIvCb-HA88(wxbpGWF#k<`bppuY3U9B8%VJ=ed`ks(b zF4S{j@;-i7BO4CeP6Npe zifVdYJIf==5e005N+%&D!ELP7ezu9>`-t~Z&!Ddn#nJ{PUmDh=x^?RrjZ}Ofdh4{`6m!wrT|=#_Ii4~`PmDqTVz#vnOBLK151&}=-NSbLrvuzpaJW39QB=AX8ZMZ8*7@QP2f8kuAJ#>aSx9ZUw zF_w8G)qKEvI#hFDNlP4wgA#go$XnY>GgQ;-k$ZyGLhIY`(rk!l%UXgE3^>{~TVA%g zRE8w(g5axwXCF1DL-L7mBx#v$L$+pM>Gq5G^pNUu zfW1uL7iST0~V z4F%Rz)3cnim~)v2WyXd(!e9?5`I+0EAAD^7K?>X33)NT+1paF&$g&-KEGtAjuvhD^ zq(@t$o_->1XJ<0@1aL8SfrU%e> z$pLu&cwUo<+Fy4r4OFi^uP}gCz=z*&?)gK3{(kkpoCH#hko8QOd5OW@2{_tT#sd_K z_7!LDy(WIvdOV@S?maW+j>3Fo&Uy1)kft`N2N0&9fCAy4wSWnzx>-Gm^N>)wE|4n5 zmg=lgi~NCQhaV)~PcmJG`%RAgJ^-pd{cggW)EIX)L`^Sdt&*f>j>6Zm;CkkKQir(p z+GaBtccbo&|M8*kY{_M<*e>zMnP<9HuHRh|{`2OZq*Si)WCI`+qmsoC<46mOARjx;MCJ8IuU~rTqwr?k zj`Mozq48s45TNg~H6El#j@^F+lHzFkOKwx!b;T;^~1^QWh(;|K4F2! zKXEESyDm{=mcRoKhgEf`m;4@4M|uHZN0l+HT=sWC2D_)PJIbQKoIPKf_9{81Cd|12(M&Zr8%#5h{~yTMAog(Cj~9MgGexU_aUz^=(Sy?^K|OBv$ADm7=JjlNkh zfxlXx=IS(vq~E;hS~+=GJ7AGh)on4kB30gAGxki9R6Qv4dci%5N{R6>K>g?{7#o$`AK7ZuU+YM~v;kuw8=8}@AJwnthj9Kv5pD++h z7v9tQ=T9Q=ee~AZ!*IafalKC4G22$NHk5B_VDZudMd$N{BY|s$QH-|4q4YYNa5mxm zXe$QzI63VFOt1d?d|eHH`cP^(kr%Ji`z$y2nsyNR%E<3(`zxn_aOF_z1e}ov-^u6@ z7*Tum9#A{*6F%|AU>AFFllV4Jnht59t%^Z=mJz}l_S+smRWs0)CAf2g|Ih)psqk}e z-z0S{>uUo!t#n`wy46#qD&oi?tGTWmT5JqE{K@^I-AuCc!g5%V-=>~=kq2y4<0E>- zCWlQpHJXb7PLzjQZ+D7A1DPHCVj@^e(l7Nq^5aa8SL!GdAX~H18ruqnNE6zwN?2tbn>VYMPDSMXe)vy^o z0mfnndJeSjpw>I#4UGB~6?{uD_lx^&l*h~Hgw^9MK9I&8We{HA z%-T!svq)U#jG^u9xP7nMPPQSc{MqpC-O1GNFxx2NOkDg#ya76?6{a9J4GnB=ffX^o z!{6T=-sx{-k!Bx*@;%#$4jI%L8ZzAT+LcHv5WI)t2+27D(yT&FF^fX-5YPH6u8es9 zp>^T3aux;bkUg8naTePh==5OB2?@Q~UU#sq2fIkCypO9g0sPazrP{vyGHe*D(#)^*Fe%9{Tolom{4bLz;bF^_+US9sPqw=cvg66YJ z?j@$Uv(L===Z%Gz%`!LTOuRlEG3!0*A=7iI z=oa_%mOx59^li?*A1V+-KaSy2rl{XOUH!fB<8xWh(sEnKK=aao>}?7Dif~N#uz2l& zU+5&1*!#KCDVmm`f8Z0>R-Gofv+~BmA8?%i4u8dnmFduu1mVHY%2&;hqJoPro9tK* zN?5AM^@B)>_?YHOIA`8wAoN6YNlA&^MjzD>Mzk&97R$!NbmWzqV-PUGUExoqWMcmx zm#j-`Z$Msu&(xa|)Y+bZLx32a9rdEGU7Ug`^D+P&cfw=BK{r!mBzUFznc?QN&H~kc z;f-vUQ$7&xe3I`*)sywn;1xIikkzeTs`sgGy9oI^2pVmj{2d>Z`rx%5muYosUn@m0hO+bLG#t zhImb*oK0N9J`OK2Kz^SX_mr3_BwRaE0Ei7M=8#-f0H;gb+K{PDyAbR=TD!4C5oad4 zzoq{4R&^aT^U?T|FzHacL@6higjNS{PL9_-kqet{uM)FK%|rZmLnI!2OT!(=p+`cp zzzMiLm+sVkFvkC~+JAmXHW_Zq+E^N_3h?LmB&EmWlr#fmCQz4964{AarVe(1YDhmx#9o0p!(Kz{9%*aNNy zdoHE+tv8(hk6ZIEga7M{{_R>jPrJ7jn(qhv3rAmOLw;@N{UiU%++EAYc^!@S0=h=v zm|)PT7_SKJD=CnYd^8bvG2m&A$RgnTe4R^9uEpli%@~*t|Nom|Zq3%Y6SjD0Q8V8Y R{Fe*3cG*O~@RIH0e*c{E$=yWSB*QK6+M5{LHC!BmQxTT^G%Dr!iSwy2q!W9UR$L)z2URF$GthoY)# z7HUXqb_`Kd)I5|3B8f7wOs z!To{&0PH?<+Uzm_K)_oFAixh^oC5Q2ffwGOQ)g@hz=09Cfdv35p)+PDZNf5_#~i(7 zN#U?nV|R+=?Sl@-W*!1pVy~y4e)=X6s`Q70;$`QT$M#!(c<)ru|8*=WX&=A0;@x{g z5Cw6IdwEtCh+&wbub|dP;e!G1KRp#|{_Jg9KXZ2E>VeWf5A`XS2UfLzAN!uZ(6lPt z-O;rYSXI{kql*g@Xdlxgr`L7%W@^r1^Z{;~(V#ior=jFAV!w>0M4uV2NwZe=QL=V5 zVR*TA^7++K98V=@(wvM!SC~f?5Hqt35-yjGs7DL>))gYw z((K}U&Y3SKlgdWMEYG9US4+iSmtVo;H|@-`_kMf$g65Occ|Zea)jZs{J;Wp9x}TD- zG%|~U=B}ZEEDip9YVN>W*G3NOZ69~m@|*lX`zuLYRe?S=xg zc_?CWuZEKWUC^SqM$GR*ZJcwiTe8nNyYc3kBjz<2qW}K%Y#G@R^?JgT1mEemL9c0Z z=b)GV%*VEfiwl%$wijtM*0?R5x;l->|=P)W`%49&Te#s}Pp^EJs< zPq=e9?%-87jKJg+ReZx?09S%gJvb|R^}Lzl@2)Doxq_m&G?V7$SXWnh*HfkK=bN1> zda>nEOo@>OYUgPudSv$_f zmY-`GwkB2kESYudUwytmZgv?zoMuF1h&I2p*d6!d9OaqbG|5b!mGL2pPz${IthaUl z%O3^5RopzXZ}!%QH@7!|JyT6$ep387rMlaz_a)W5)B2X>C#3*dCf*I`mnP3bJQls3 zxmFvy#-dJ^80C_*6Di${83s~SCua9 zs$5=Ez$6r`p0K*hNd~-lUQZ_c1tVD;;G|FGU?whv~&>F9lH3%mH`E$Db zqO$dw5Hs;U6#RqN9pOi5cjcNqS$+XW+RW1#j^0fS|7NAVVmCf!ib?T;FFK`1NMzia zpv}c#LBiyF@*VBy1Y!;O?wlF$UwCz9sXbts7W@Jm*cyu9hN9U@{aRkdb$cG2vKE($ zyBm1zVGi)^MxH9_x%-QQrXm&^Mf%y@>jjtGIZ6Cb6AiLop@i@l?!%dSz;w;q-4U;g@yaf(s28hPX zrP#=oI%G@)>jZIKClMbcsxGg~-xI%6L9ET>5E~+y%#vT(+L)808L+k=M4>q~R}EJv zd_>@06A1(4Af+~F^K3+kveJ`ooXhP+g*B#_<+ZA?T?ucGecnxJ?(a7j_Bkt`Ue~IM z=eE)zfGK%f70?BFb|~`%OS>S$m;Pgn3iyX_eL2gv+fC|(UpI=Ka50KCO2iSb*gI7U zH|R-~z5JYQdsQsy-KD2_&zpQgQdf z3`FW|Tgtkv9{vIlOs7hUQUo4`wBC8MRiwrg1Q^`fEckFp6C>+ z2-Y;=SlUDWrEgE&YOSboC{wL0p0fwNWyT-1JZ#6dUcnL-fy===q1sB7mRWkhOgmQq zNDec%_GhUeODiJRl)526bl~Da<)_NNb<8MR#j??%*EXj>$#TlVWG}40qfMQIzAlge zBsw~}plRsn{^}^N$>YSRiY<^h`_Thh9V%$^w2W#GL#M;xts^t&x=w24*L7v0n#zlx z5f5J)rB$>-eXB*3VmNJWl?`j0;*N_o^^zvxC*0JFjAx~|Kz-xlbgWaWX5^zc#s3}A_rFc`Uoxcb-7{8q(ia>A4bM4 z5Ks{P32+yT56FpUk=p&yiVudLx(DS_s zZr>ekFYaz20dAbU;r33Qn?%VC{JBdi;_c0CMm-$ltkjAWSG|?4Ut){ZwZ?UHV?eR! zg3g=PrNMfzkuqIS0quXSJWl(d|JzGcS)nJa?G+7(2Ha(}u>=~cX!PvWM~cql)QYOh z`7ZMXKdP$)carLW^~6&niUcptw%nu|ZN*A^4 zwzd^ei7HwNk|X_Z*qTTae+{GwzSVN-2#IBGjPw_o{Z5li$d`@$LbZByVEA#Uu_^`6 z1n#w0gaZW*jc-GLUuv^0z7n~2X0Uv+bw=hOYQxX2l2TKSuJ@xTZ&IXbqsA`I?j&fHZ7?4 zDAJ^cRU#Y7LZ( zQE4wD+V2SC1=y(u>SQ&nYXW@R*}+V!(-Uu^@|cm6(7qdm&}1_pS~5jdXh%wjQLHUfATLkV^_KR-kTq$4#NP|F$Jb}j z<^%Cp$1M^yvB&3^TcL%HaKd016@i^2b+T*bNTElNv5}a@S2&aYayQ-OAwrKb9xDB$v1SPv-h_7Q@~q~L z`mMf&0Q;w*_ME6N9j0CdM#aIlumDReOFpRs=!UuI7_EO-8zQB@IQ^x5pY!2;KbLyq zP$w1A1HGq$Uk!IN1`N0t(S)#)76ZO;RTCu^8p8-68URy5^dWq1tt!NSR#CKjL=)e* zHb+Tz|NDDsc*h0ux1hO}?K|Nj;bWtB?8r8%=;vEauE<>dD`9LVa*O(@CdbC<1B;xn z5^Xrh*_sK|K)42Mc9Ju~IuY?6Ufg00;A&CWiYW)vVoz)f8OIa!v)pzFivhkhf2*!n znW)Qh8n-}otInketwms}xOFKsMiPqPq@9-RO7ySxGy-~4{SGk8^=)6kUw>bMy)TC( zefHeofP(jnYnhHBCVjN&Q=R2m&eJKZMbkk^8*A~SDlb6NqE@cxSvBsiiz~=Gew3~s z4QjV9;pWS^2u8@@FN&pSzbT3i1(SISqcpqz`2g%d)y0Fs8m>OmP>(bmP!h3%^mw{M zI-Vx{Ba@pFkKUBw4;4e9{;~!r_Sjoju?6ozYGq~eZe3DtJK>B{bizepi>jp;N{f|r zN@y)(cdczVp^ro4bGhpRVVGgD{TPpbNdz@pru)ij0C!Ewq+%WNsV!c97V_zt)m;$IAMN4x zW*Tx!kWm6$Z4e8!#Rqs?;bCrL*`Y^WhogGIWtCz*{S@029!r2)JSa|H;5fFluZvgL zaU1W5*H{pDET?{4-|1%I$fFHyu-M}iWA@OYH%R@P6x04!*lX?qdnIjZIV0<7m9K}X zgop(=cr&>nv^NV+ko8O2WxhCQ-?IghbhQn3sklX>rZ#I_>-LT_YRGtrIOh`ww(8&k z2V8w{qE6UCZ-W>#0-eaCv*sitnF+0`HCR*QJta^EvRt<1Q<%Na}ccGkCld{~aCrUI}+FsM3JR zbL-aJQ>^p_Qtsb@>I$h*&*2mExk|5g=4z&Lx-2#LPkkvcNv{gi;e;W;aQ4DBUDi6$LmHEpo%JM|klnAEKsZ2OurGxhzb~~N z7@Ao#l4+qUAY*IeOp_&-nB4V0(enEfrjn`f5o)X^{;qvfBiLc5N8U}O!vQaDRAg)D zKEI?R??>CF!}%v2IFn7dk#*oOF)KFP&R`0T7)qkD-743oA_4m#k&8w_`>YJvALlsc zhQ~k%lC!|01}z0m5b`IzGp6LveVMfn-Nb52H5e5LsTGZ>$|iUifb}jnw0sgi57zGa2sXS#TcYU&q6)K)w-b`DgSRsoQ8E?dnEP_zB>6!V&>X1m2wbFLn5#PZj-mdPegYkAlJ=w?Wl$?F zDSXRg3jeVn3-(BRut!#s?$?w!*O1CI>&wE7*CASujhP+S5-G?gxhZ7p6)VE1I{xI* zJTPi(0Kx>hIA8#%t@wbhbSUBvxXEBAjgeTvNC!#QedC?_r$fD3pyv*pHhn_k!Onq} z{a5lbw+&;E&8!#j2Dz9K;y4b8kMKN!Y)E8v8pbsBIQz~^5SMq3Ec5fBa#S>9ZE@;c3s0b9TtN65A2?At8FHyR zKv-Tk4IWE1#O?G~7bBpRZcvY3gQVqoJ|@8U`4_uxO$XAo^E@*qqjMvseX8#=0V#4H zqlUt|NS=X8+0Pmcjm@k;N4)fz(G~FM1_CEFe34A4V1<|!_QKtO6>iJO3GB;Pkd4U+ z*ml%qa7mCSb-BXvqe-zJ&Y8 zRW5YZfKOrV!w-1$Ynrr4u8)k58p3Pf1EVGNq{$gHCf{tSaZFxI#%@&zZl5FasgKV? zOJIIrjxrz(i0zE>_AyI(wHi0bc%|IAYzwPwGJSt=2?+5M>PIq)+N$%6XWjM`l|bxa zOSfT5`+eq&7$+E(;{Jt(H|Y_zuY77wWx*Qi`F+G?mSZeRxScX=xEdlAM=ZADUEIV# z70ANE!rmKwQ?@X|gs%YRT`bJlN8P1P;$L5<(%G31hk>S%%Aylhz zRD_c+FTYc19!rBz3XxxYqWi=y@`Ltp*Hq%`r74-{IjFqgTU%Hm38G>=8ywg3%6+jJ z4ASl(w~fN-EbV7Jat3k`Ucsy9=->I|7cEz~KV)7Vyu%9D{hcQO0r>D{3QQwIAlOrh zy8&w~_ys`?ZNTie!HvTWY&w}t6%mosdoV@Bl_3VpW+OI#e(wt~oGzNV* Date: Sun, 14 May 2023 22:29:27 +0200 Subject: [PATCH 034/432] compressor stuff --- src/main/java/com/hbm/blocks/ModBlocks.java | 5 ++- .../hbm/blocks/machine/MachineCompressor.java | 32 +++++++++++++++++++ src/main/java/com/hbm/main/ClientProxy.java | 1 + .../java/com/hbm/main/ResourceManager.java | 2 ++ .../render/tileentity/RenderCompressor.java | 27 ++++++++++++++++ .../java/com/hbm/tileentity/TileMappings.java | 1 + .../machine/TileEntityMachineCompressor.java | 21 ++++++++++++ 7 files changed, 88 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/hbm/blocks/machine/MachineCompressor.java create mode 100644 src/main/java/com/hbm/render/tileentity/RenderCompressor.java create mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 3605f9a2f..0397a6f6e 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -947,6 +947,7 @@ public class ModBlocks { public static Block machine_liquefactor; public static Block machine_solidifier; + public static Block machine_compressor; public static Block machine_chungus; public static Block machine_condenser; @@ -2183,8 +2184,9 @@ public class ModBlocks { machine_deuterium_extractor = new MachineDeuteriumExtractor(Material.iron).setBlockName("machine_deuterium_extractor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_deuterium_extractor_side"); machine_deuterium_tower = new DeuteriumTower(Material.iron).setBlockName("machine_deuterium_tower").setHardness(10.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":concrete"); - machine_liquefactor = new MachineLiquefactor().setBlockName("machine_liquefactor").setHardness(10.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_liquefactor = new MachineLiquefactor().setBlockName("machine_liquefactor").setHardness(10.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel_machine"); machine_solidifier = new MachineSolidifier().setBlockName("machine_solidifier").setHardness(10.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel_machine"); + machine_compressor = new MachineCompressor().setBlockName("machine_compressor").setHardness(10.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel_machine"); machine_electrolyser = new MachineElectrolyser().setBlockName("machine_electrolyser").setHardness(10.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel_machine"); @@ -3178,6 +3180,7 @@ public class ModBlocks { GameRegistry.registerBlock(machine_deuterium_tower, machine_deuterium_tower.getUnlocalizedName()); GameRegistry.registerBlock(machine_liquefactor, ItemBlockBase.class, machine_liquefactor.getUnlocalizedName()); GameRegistry.registerBlock(machine_solidifier, ItemBlockBase.class, machine_solidifier.getUnlocalizedName()); + register(machine_compressor); GameRegistry.registerBlock(machine_electrolyser, machine_electrolyser.getUnlocalizedName()); GameRegistry.registerBlock(machine_deaerator, machine_deaerator.getUnlocalizedName()); GameRegistry.registerBlock(machine_waste_drum, machine_waste_drum.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/machine/MachineCompressor.java b/src/main/java/com/hbm/blocks/machine/MachineCompressor.java new file mode 100644 index 000000000..3aa083e0b --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineCompressor.java @@ -0,0 +1,32 @@ +package com.hbm.blocks.machine; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.tileentity.machine.TileEntityMachineCompressor; + +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class MachineCompressor extends BlockDummyable { + + public MachineCompressor() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityMachineCompressor(); + + return null; + } + + @Override + public int[] getDimensions() { + return new int[] {2, 0, 1, 2, 1, 1}; + } + + @Override + public int getOffset() { + return 2; + } +} diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 3e3fecd69..64544cadb 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -253,6 +253,7 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineCatalyticCracker.class, new RenderCatalyticCracker()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineLiquefactor.class, new RenderLiquefactor()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineSolidifier.class, new RenderSolidifier()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineCompressor.class, new RenderCompressor()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineRadiolysis.class, new RenderRadiolysis()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityElectrolyser.class, new RenderElectrolyser()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFurnaceIron.class, new RenderFurnaceIron()); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 64c2e280d..23c8c4867 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -76,6 +76,7 @@ public class ResourceManager { public static final IModelCustom catalytic_reformer = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/catalytic_reformer.obj")); public static final IModelCustom liquefactor = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/liquefactor.obj")); public static final IModelCustom solidifier = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/solidifier.obj")); + public static final IModelCustom compressor = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/compressor.obj")); public static final IModelCustom coker = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/coker.obj")); //Flare Stack @@ -402,6 +403,7 @@ public class ResourceManager { public static final ResourceLocation catalytic_reformer_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/catalytic_reformer.png"); public static final ResourceLocation liquefactor_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/liquefactor.png"); public static final ResourceLocation solidifier_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/solidifier.png"); + public static final ResourceLocation compressor_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/compressor.png"); public static final ResourceLocation coker_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/coker.png"); //Flare Stack diff --git a/src/main/java/com/hbm/render/tileentity/RenderCompressor.java b/src/main/java/com/hbm/render/tileentity/RenderCompressor.java new file mode 100644 index 000000000..1d6f0a04e --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderCompressor.java @@ -0,0 +1,27 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.main.ResourceManager; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.tileentity.TileEntity; + +public class RenderCompressor extends TileEntitySpecialRenderer { + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.compressor_tex); + ResourceManager.compressor.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glEnable(GL11.GL_CULL_FACE); + + GL11.glPopMatrix(); + } +} diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 4426db9ed..3c6465939 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -281,6 +281,7 @@ public class TileMappings { put(TileEntityDeuteriumTower.class, "tileentity_deuterium_tower"); put(TileEntityMachineLiquefactor.class, "tileentity_liquefactor"); put(TileEntityMachineSolidifier.class, "tileentity_solidifier"); + put(TileEntityMachineCompressor.class, "tileentity_compressor"); put(TileEntityElectrolyser.class, "tileentity_electrolyser"); put(TileEntityMachineMixer.class, "tileentity_mixer"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java new file mode 100644 index 000000000..38afcc4fc --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java @@ -0,0 +1,21 @@ +package com.hbm.tileentity.machine; + +import com.hbm.tileentity.TileEntityMachineBase; + +public class TileEntityMachineCompressor extends TileEntityMachineBase { + + public TileEntityMachineCompressor() { + super(0); + } + + @Override + public String getName() { + return null; + } + + @Override + public void updateEntity() { + + } + +} From 5c36e1aa044a488c7330fd0f3d29510d91c71ba2 Mon Sep 17 00:00:00 2001 From: Vaern Date: Sun, 14 May 2023 22:22:45 -0700 Subject: [PATCH 035/432] piston inserter --- src/main/java/com/hbm/blocks/ModBlocks.java | 6 + .../hbm/blocks/machine/PistonInserter.java | 112 +++++- .../pile/BlockGraphiteDrilledBase.java | 111 ++++- src/main/java/com/hbm/main/ClientProxy.java | 2 + .../java/com/hbm/main/ResourceManager.java | 6 + .../tileentity/RenderPistonInserter.java | 65 +++ .../java/com/hbm/tileentity/TileMappings.java | 2 + .../hbm/models/machines/piston_inserter.obj | 379 ++++++++++++++++++ .../models/machines/piston_inserter.png | Bin 0 -> 544 bytes 9 files changed, 673 insertions(+), 10 deletions(-) create mode 100644 src/main/java/com/hbm/render/tileentity/RenderPistonInserter.java create mode 100644 src/main/resources/assets/hbm/models/machines/piston_inserter.obj create mode 100644 src/main/resources/assets/hbm/textures/models/machines/piston_inserter.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 3605f9a2f..8d85225ec 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -786,6 +786,8 @@ public class ModBlocks { public static Block crane_splitter; public static Block fan; + + public static Block piston_inserter; public static Block chain; @@ -1912,6 +1914,8 @@ public class ModBlocks { crane_splitter = new CraneSplitter().setBlockName("crane_splitter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":crane_side"); fan = new MachineFan().setBlockName("fan").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + piston_inserter = new PistonInserter().setBlockName("piston_inserter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + chain = new BlockChain(Material.iron).setBlockName("dungeon_chain").setHardness(0.25F).setResistance(2.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":chain"); ladder_sturdy = new BlockNTMLadder().setBlockName("ladder_sturdy").setHardness(0.25F).setResistance(2.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":ladder_sturdy"); @@ -3120,6 +3124,8 @@ public class ModBlocks { GameRegistry.registerBlock(crane_splitter, crane_splitter.getUnlocalizedName()); GameRegistry.registerBlock(fan, fan.getUnlocalizedName()); + GameRegistry.registerBlock(piston_inserter, piston_inserter.getUnlocalizedName()); + GameRegistry.registerBlock(chain, chain.getUnlocalizedName()); GameRegistry.registerBlock(ladder_sturdy, ladder_sturdy.getUnlocalizedName()); GameRegistry.registerBlock(ladder_iron, ladder_iron.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/machine/PistonInserter.java b/src/main/java/com/hbm/blocks/machine/PistonInserter.java index f7093a8f7..99b284104 100644 --- a/src/main/java/com/hbm/blocks/machine/PistonInserter.java +++ b/src/main/java/com/hbm/blocks/machine/PistonInserter.java @@ -5,12 +5,16 @@ import com.hbm.tileentity.INBTPacketReceiver; import api.hbm.block.IInsertable; import net.minecraft.block.Block; +import net.minecraft.block.BlockPistonBase; import net.minecraft.block.material.Material; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -37,12 +41,13 @@ public class PistonInserter extends BlockContainerBase { if(world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ).isNormalCube()) return; //no obstructions allowed! - if(checkRedstone(world, x, y, z)) { //if necessary, add lastState (if block updates are too unreliable). - TileEntityPistonInserter piston = (TileEntityPistonInserter)world.getTileEntity(x, y, z); - - if(piston.extend <= 0) - piston.isRetracting = false; - } + boolean flag = checkRedstone(world, x, y, z); + TileEntityPistonInserter piston = (TileEntityPistonInserter)world.getTileEntity(x, y, z); + + if(flag && !piston.lastState && piston.extend <= 0) + piston.isRetracting = false; + + piston.lastState = flag; } } @@ -55,6 +60,69 @@ public class PistonInserter extends BlockContainerBase { return false; } + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + + if(player.getHeldItem() != null) { + if(!world.isRemote) { + TileEntityPistonInserter piston = (TileEntityPistonInserter)world.getTileEntity(x, y, z); + + if(piston.slot == null) { + piston.slot = player.inventory.decrStackSize(player.inventory.currentItem, 1); + player.inventoryContainer.detectAndSendChanges(); + } + } + + return true; + } else if(player.isSneaking()) { + if(!world.isRemote) { + TileEntityPistonInserter piston = (TileEntityPistonInserter)world.getTileEntity(x, y, z); + + if(piston.slot != null) { + ForgeDirection dir = ForgeDirection.getOrientation(piston.getBlockMetadata()); + + EntityItem dust = new EntityItem(world, x + 0.5D + dir.offsetX * 0.75D, y + 0.5D + dir.offsetY * 0.75D, z + 0.5D + dir.offsetZ * 0.75D, piston.slot); + piston.slot = null; + + dust.motionX = dir.offsetX * 0.25; + dust.motionY = dir.offsetY * 0.25; + dust.motionZ = dir.offsetZ * 0.25; + world.spawnEntityInWorld(dust); + } + } + + return true; + } + + return false; + } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack) { + int l = BlockPistonBase.determineOrientation(world, x, y, z, player); + world.setBlockMetadataWithNotify(x, y, z, l, 2); + } + + @Override + public boolean isSideSolid(IBlockAccess world, int x, int y, int z, ForgeDirection side) { + return world.getBlockMetadata(x, y, z) != side.ordinal(); + } + + @Override + public int getRenderType(){ + return -1; + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + // $%&#$& // %$&&@$%%#% //______ $%@--$@@%&$%$ @@ -94,10 +162,11 @@ public class PistonInserter extends BlockContainerBase { public int extend; public static final int maxExtend = 25; - public boolean isRetracting; + public boolean isRetracting = true; public int delay; - private int lastState; + //prevents funkies from happening with block updates or loading into a server + private boolean lastState; public TileEntityPistonInserter() { } @@ -157,6 +226,33 @@ public class PistonInserter extends BlockContainerBase { this.slot = null; } + /* :3 NBT stuff */ + + @Override + public void writeToNBT(NBTTagCompound nbt) { + nbt.setInteger("extend", extend); + nbt.setBoolean("retract", isRetracting); + nbt.setBoolean("state", lastState); //saved so loading into a world doesn't cause issues + if(this.slot != null) { + NBTTagCompound stack = new NBTTagCompound(); + slot.writeToNBT(stack); + nbt.setTag("stack", stack); + } + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + this.extend = nbt.getInteger("extend"); + this.isRetracting = nbt.getBoolean("retract"); + this.lastState = nbt.getBoolean("state"); + if(nbt.hasKey("stack")) { + NBTTagCompound stack = nbt.getCompoundTag("stack"); + this.slot = ItemStack.loadItemStackFromNBT(stack); + } else { + this.slot = null; + } + } + /* BS inventory stuff */ @Override public int getSizeInventory() { return 1; } diff --git a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilledBase.java b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilledBase.java index 909620e26..8e45d7aec 100644 --- a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilledBase.java +++ b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilledBase.java @@ -5,9 +5,11 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockFlammable; +import com.hbm.inventory.RecipesCommon.MetaBlock; import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; +import api.hbm.block.IInsertable; import api.hbm.block.IToolable; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -17,11 +19,13 @@ import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public abstract class BlockGraphiteDrilledBase extends BlockFlammable implements IToolable { +public abstract class BlockGraphiteDrilledBase extends BlockFlammable implements IToolable, IInsertable { @SideOnly(Side.CLIENT) protected IIcon sideIcon; @@ -89,7 +93,7 @@ public abstract class BlockGraphiteDrilledBase extends BlockFlammable implements if(side == cfg * 2 || side == cfg * 2 + 1) { world.setBlock(x, y, z, ModBlocks.block_graphite_drilled, meta & 7, 3); - this.ejectItem(world, x, y, z, ForgeDirection.getOrientation(side), new ItemStack(getInsertedItem())); + this.ejectItem(world, x, y, z, ForgeDirection.getOrientation(side), new ItemStack(getInsertedItem(meta))); } } @@ -115,4 +119,107 @@ public abstract class BlockGraphiteDrilledBase extends BlockFlammable implements drops.add(new ItemStack(getInsertedItem(meta), 1)); return drops; } + + //Checks the relationship between specific items and placement. + //kinda cringe but anything other than hardcoding would be overengineering this for no reason so + //all of this is destined to be changed most likely anyway + protected MetaBlock checkInteractions(ItemStack stack) { + Item item = stack.getItem(); //temp + if(item == ModItems.pile_rod_uranium) return new MetaBlock(ModBlocks.block_graphite_fuel); + if(item == ModItems.pile_rod_pu239) return new MetaBlock(ModBlocks.block_graphite_fuel, 0b1000); + if(item == ModItems.pile_rod_plutonium) return new MetaBlock(ModBlocks.block_graphite_plutonium); + if(item == ModItems.pile_rod_source) return new MetaBlock(ModBlocks.block_graphite_source); + if(item == ModItems.pile_rod_boron) return new MetaBlock(ModBlocks.block_graphite_rod); + if(item == ModItems.pile_rod_lithium) return new MetaBlock(ModBlocks.block_graphite_lithium); + if(item == ModItems.cell_tritium) return new MetaBlock(ModBlocks.block_graphite_tritium); + if(item == ModItems.pile_rod_detector) return new MetaBlock(ModBlocks.block_graphite_detector); + return null; + } + + @Override + public boolean insertItem(World world, int x, int y, int z, ForgeDirection dir, ItemStack stack) { + + if(stack == null) return false; + + MetaBlock baseBlock = checkInteractions(stack); + if(baseBlock == null) return false; + + final int side = dir.ordinal(); + final int baseMeta = world.getBlockMetadata(x, y, z); + final int pureMeta = baseMeta & 3; //in case it's shrouded in aluminum + + if(side == pureMeta * 2 || side == pureMeta * 2 + 1) { + //first, make sure we can even push rods out + for(int i = 0; i <= 3; i++) { //limited to 3 boyos + int ix = x + dir.offsetX * i; + int iy = y + dir.offsetY * i; + int iz = z + dir.offsetZ * i; + + Block b = world.getBlock(ix, iy, iz); + + if(b instanceof BlockGraphiteDrilledBase) { + if((world.getBlockMetadata(ix, iy, iz) & 3) != pureMeta) //wrong orientation + return false; + + if(((BlockGraphiteDrilledBase)b).getInsertedItem() == null) //if there's nothing to push + break; + else if(i >= 4) //if there is stuff to push and we reach our limit + return false; + } else { + if(b.isNormalCube()) //obstructions + return false; + else //empty space? no need to search + break; + } + } + + //TODO convert old methods to use itemstack for flexibility + int oldMeta = baseMeta | baseBlock.meta; //metablocks are kinda inconvenient to work with so + Block oldBlock = baseBlock.block; + NBTTagCompound oldTag = new NBTTagCompound(); //In case of TEs + + //now actually make the change + for(int i = 0; i <= 3; i++) { //yeah yeah we know it's safe but let's be *extra cautious* of infinite loops + int ix = x + dir.offsetX * i; + int iy = y + dir.offsetY * i; + int iz = z + dir.offsetZ * i; + + Block newBlock = world.getBlock(ix, iy, iz); + + if(newBlock instanceof BlockGraphiteDrilledBase) { + int newMeta = world.getBlockMetadata(ix, iy, iz); + NBTTagCompound newTag = new NBTTagCompound(); + + if(newBlock instanceof BlockGraphiteDrilledTE) { + TileEntity te = world.getTileEntity(ix, iy, iz); + te.writeToNBT(newTag); + } + + world.setBlock(ix, iy, iz, oldBlock, (oldMeta & ~0b100) | (newMeta & 0b100), 2); + + if(oldBlock instanceof BlockGraphiteDrilledTE && !oldTag.hasNoTags()) { //safety first + TileEntity te = world.getTileEntity(ix, iy, iz); + te.readFromNBT(oldTag); + } + + oldMeta = newMeta; + oldBlock = newBlock; + oldTag = newTag; + + if(oldBlock instanceof BlockGraphiteDrilled) //if there's no need to eject an item + break; + } else { + Item eject = ((BlockGraphiteDrilledBase) oldBlock).getInsertedItem(oldMeta); //TODO old methods to itemstack + this.ejectItem(world, ix - dir.offsetX, iy - dir.offsetY, iz - dir.offsetZ, dir, new ItemStack(eject)); + world.playSoundEffect(ix + 0.5, iy + 0.5, iz + 0.5, "hbm:item.upgradePlug", 1.0F, 1.0F); + + break; + } + } + + return true; + } + + return false; + } } diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 3e3fecd69..713923269 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -48,6 +48,7 @@ import com.hbm.blocks.generic.BlockEmitter.TileEntityEmitter; import com.hbm.blocks.generic.BlockLoot.TileEntityLoot; import com.hbm.blocks.generic.BlockSnowglobe.TileEntitySnowglobe; import com.hbm.blocks.machine.MachineFan.TileEntityFan; +import com.hbm.blocks.machine.PistonInserter.TileEntityPistonInserter; import com.hbm.blocks.machine.WatzPump.TileEntityWatzPump; import com.hbm.entity.cart.*; import com.hbm.entity.effect.*; @@ -278,6 +279,7 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineCatalyticReformer.class, new RenderCatalyticReformer()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineCoker.class, new RenderCoker()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFan.class, new RenderFan()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPistonInserter.class, new RenderPistonInserter()); //Foundry ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFoundryBasin.class, new RenderFoundry()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFoundryMold.class, new RenderFoundry()); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 64c2e280d..83c518d86 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -191,6 +191,9 @@ public class ResourceManager { //Fan public static final IModelCustom fan = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/fan.obj")); + //Piston Inserter + public static final IModelCustom piston_inserter = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/piston_inserter.obj")); + //Sphere public static final IModelCustom sphere_ruv = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/sphere_ruv.obj")); public static final IModelCustom sphere_iuv = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/sphere_iuv.obj")); @@ -538,6 +541,9 @@ public class ResourceManager { //Fan public static final ResourceLocation fan_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/fan.png"); + //Piston_Inserter + public static final ResourceLocation piston_inserter_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/piston_inserter.png"); + //Radgen public static final ResourceLocation radgen_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/radgen.png"); diff --git a/src/main/java/com/hbm/render/tileentity/RenderPistonInserter.java b/src/main/java/com/hbm/render/tileentity/RenderPistonInserter.java new file mode 100644 index 000000000..f75aa3857 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderPistonInserter.java @@ -0,0 +1,65 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.machine.PistonInserter.TileEntityPistonInserter; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderPistonInserter extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y + 0.5, z + 0.5); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + + switch(tile.getBlockMetadata()) { + case 0: GL11.glRotatef(180, 1F, 0F, 0F); break; + case 1: break; + case 2: GL11.glRotatef(-90, 1F, 0F, 0F); break; + case 4: GL11.glRotatef(90, 0F, 0F, 1F); break; + case 3: GL11.glRotatef(90, 1F, 0F, 0F); break; + case 5: GL11.glRotatef(-90, 0F, 0F, 1F); break; + } + + GL11.glTranslated(0D, -0.5, 0D); + + bindTexture(ResourceManager.piston_inserter_tex); + ResourceManager.piston_inserter.renderPart("Frame"); + + TileEntityPistonInserter piston = (TileEntityPistonInserter)tile; + double e = piston.extend / (double)piston.maxExtend; + GL11.glTranslated(0, -e, 0); + ResourceManager.piston_inserter.renderPart("Piston"); + + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.piston_inserter); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase() { + public void renderInventory() { + GL11.glTranslated(0, -2.5, 0); + double scale = 5; + GL11.glScaled(scale, scale, scale); + } + public void renderCommon() { + GL11.glScaled(2, 2, 2); + bindTexture(ResourceManager.piston_inserter_tex); + ResourceManager.piston_inserter.renderAll(); + }}; + } +} diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 4426db9ed..9f1b24737 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -13,6 +13,7 @@ import com.hbm.blocks.generic.BlockMotherOfAllOres.TileEntityRandomOre; import com.hbm.blocks.generic.BlockSnowglobe.TileEntitySnowglobe; import com.hbm.blocks.generic.PartEmitter.TileEntityPartEmitter; import com.hbm.blocks.machine.MachineFan.TileEntityFan; +import com.hbm.blocks.machine.PistonInserter.TileEntityPistonInserter; import com.hbm.blocks.machine.WatzPump.TileEntityWatzPump; import com.hbm.blocks.network.BlockCablePaintable.TileEntityCablePaintable; import com.hbm.blocks.network.CableDiode.TileEntityDiode; @@ -360,6 +361,7 @@ public class TileMappings { put(TileEntityCraneRouter.class, "tileentity_router"); put(TileEntityCraneSplitter.class, "tileentity_splitter"); put(TileEntityFan.class, "tileentity_fan"); + put(TileEntityPistonInserter.class, "tileentity_piston_inserter"); put(TileEntityRadioTorchSender.class, "tileentity_rtty_sender"); put(TileEntityRadioTorchReceiver.class, "tileentity_rtty_rec"); diff --git a/src/main/resources/assets/hbm/models/machines/piston_inserter.obj b/src/main/resources/assets/hbm/models/machines/piston_inserter.obj new file mode 100644 index 000000000..8d78694b6 --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/piston_inserter.obj @@ -0,0 +1,379 @@ +# Blender v3.2.0 OBJ File: 'piston_inserter.blend' +# www.blender.org +mtllib piston_inserter.mtl +o Frame +v -0.125000 0.000000 0.125000 +v -0.125000 1.000000 0.125000 +v -0.125000 0.000000 -0.125000 +v -0.125000 1.000000 -0.125000 +v 0.125000 0.000000 0.125000 +v 0.125000 1.000000 0.125000 +v 0.125000 0.000000 -0.125000 +v 0.125000 1.000000 -0.125000 +v -0.500000 1.000000 0.500000 +v -0.500000 1.000000 -0.500000 +v 0.500000 1.000000 -0.500000 +v 0.500000 1.000000 0.500000 +v -0.500000 0.000000 -0.500000 +v -0.500000 0.000000 0.500000 +v 0.500000 0.000000 -0.500000 +v 0.500000 0.000000 0.500000 +v -0.375000 1.000000 0.375000 +v -0.375000 1.000000 -0.375000 +v 0.375000 1.000000 -0.375000 +v 0.375000 1.000000 0.375000 +v -0.375000 0.000000 -0.375000 +v -0.375000 0.000000 0.375000 +v 0.375000 0.000000 -0.375000 +v 0.375000 0.000000 0.375000 +v 0.312500 0.937500 0.375000 +v 0.375000 0.937500 0.375000 +v 0.125000 0.937500 0.125000 +v 0.375000 0.937500 0.312500 +v 0.004327 0.858644 -0.020544 +v 0.062500 0.937500 0.125000 +v 0.125000 0.937500 0.062500 +v -0.312500 0.937500 -0.375000 +v -0.375000 0.937500 -0.375000 +v -0.125000 0.937500 -0.125000 +v -0.375000 0.937500 -0.312500 +v -0.062500 0.937500 -0.125000 +v -0.125000 0.937500 -0.062500 +v 0.375000 0.937500 -0.312500 +v 0.375000 0.937500 -0.375000 +v 0.125000 0.937500 -0.125000 +v 0.312500 0.937500 -0.375000 +v 0.125000 0.937500 -0.062500 +v 0.062500 0.937500 -0.125000 +v -0.375000 0.937500 0.312500 +v -0.375000 0.937500 0.375000 +v -0.125000 0.937500 0.125000 +v -0.312500 0.937500 0.375000 +v -0.125000 0.937500 0.062500 +v -0.062500 0.937500 0.125000 +v 0.312500 0.062500 0.375000 +v 0.375000 0.062500 0.375000 +v 0.125000 0.062500 0.125000 +v 0.375000 0.062500 0.312500 +v 0.062500 0.062500 0.125000 +v 0.125000 0.062500 0.062500 +v -0.312500 0.062500 -0.375000 +v -0.375000 0.062500 -0.375000 +v -0.125000 0.062500 -0.125000 +v -0.375000 0.062500 -0.312500 +v -0.062500 0.062500 -0.125000 +v -0.125000 0.062500 -0.062500 +v 0.375000 0.062500 -0.312500 +v 0.375000 0.062500 -0.375000 +v 0.125000 0.062500 -0.125000 +v 0.312500 0.062500 -0.375000 +v 0.125000 0.062500 -0.062500 +v 0.062500 0.062500 -0.125000 +v -0.375000 0.062500 0.312500 +v -0.375000 0.062500 0.375000 +v -0.125000 0.062500 0.125000 +v -0.312500 0.062500 0.375000 +v -0.125000 0.062500 0.062500 +v -0.062500 0.062500 0.125000 +vt 0.571429 0.666667 +vt 0.000000 0.333333 +vt 0.571429 0.333333 +vt 0.571429 0.666667 +vt -0.000000 0.333333 +vt 0.571429 0.333333 +vt 0.571429 0.666667 +vt -0.000000 0.333333 +vt 0.571429 0.333333 +vt 0.571429 0.666667 +vt -0.000000 0.333333 +vt 0.571429 0.333333 +vt 0.714286 0.416667 +vt 0.571429 0.333333 +vt 0.714286 0.333333 +vt 0.714286 0.750000 +vt 0.571429 0.833333 +vt 0.571429 0.750000 +vt 0.071429 0.708333 +vt 0.500000 0.708333 +vt 0.071429 0.958333 +vt 0.000000 0.666667 +vt 0.500000 0.958333 +vt 0.000000 1.000000 +vt 0.571429 1.000000 +vt 0.500000 0.041667 +vt 0.500000 0.291667 +vt 0.071429 0.291667 +vt 0.000000 0.000000 +vt 0.071429 0.041667 +vt 0.571429 0.000000 +vt 0.714286 0.416667 +vt 0.571429 0.750000 +vt 0.571429 0.416667 +vt 0.714286 0.416667 +vt 0.571429 0.750000 +vt 0.571429 0.416667 +vt 0.714286 0.416667 +vt 0.571429 0.750000 +vt 0.571429 0.416667 +vt 0.714286 0.416667 +vt 0.571429 0.750000 +vt 0.571429 0.416667 +vt 0.571429 -0.000000 +vt 1.000000 0.333333 +vt 0.571429 0.333333 +vt 0.571429 0.000000 +vt 1.000000 0.333333 +vt 0.571429 0.333333 +vt 0.571429 0.000000 +vt 1.000000 0.333333 +vt 0.571429 0.333333 +vt 0.571429 0.000000 +vt 1.000000 0.333333 +vt 0.571429 0.333333 +vt 0.214286 0.125000 +vt 0.071429 0.062500 +vt 0.107143 0.041667 +vt 0.357143 0.208333 +vt 0.500000 0.270833 +vt 0.464286 0.291667 +vt 0.214286 0.208333 +vt 0.107143 0.291667 +vt 0.071429 0.270833 +vt 0.357143 0.125000 +vt 0.464286 0.041667 +vt 0.500000 0.062500 +vt 0.214286 0.125000 +vt 0.071429 0.062500 +vt 0.107143 0.041667 +vt 0.357143 0.208333 +vt 0.500000 0.270833 +vt 0.464286 0.291667 +vt 0.214286 0.208333 +vt 0.107143 0.291667 +vt 0.071429 0.270833 +vt 0.357143 0.125000 +vt 0.464286 0.041667 +vt 0.500000 0.062500 +vt -0.000000 0.666667 +vt 0.000000 0.666667 +vt 0.000000 0.666667 +vt 0.571429 0.416667 +vt 0.714286 0.833333 +vt 0.714286 0.750000 +vt 0.714286 0.750000 +vt 0.714286 0.750000 +vt 0.714286 0.750000 +vt 1.000000 -0.000000 +vt 1.000000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 -0.000000 +vt 0.250000 0.125000 +vt 0.214286 0.145833 +vt 0.071429 0.041667 +vt 0.321429 0.208333 +vt 0.357143 0.187500 +vt 0.500000 0.291667 +vt 0.214286 0.187500 +vt 0.250000 0.208333 +vt 0.071429 0.291667 +vt 0.357143 0.145833 +vt 0.321429 0.125000 +vt 0.500000 0.041667 +vt 0.250000 0.125000 +vt 0.214286 0.145833 +vt 0.071429 0.041667 +vt 0.321429 0.208333 +vt 0.357143 0.187500 +vt 0.500000 0.291667 +vt 0.214286 0.187500 +vt 0.250000 0.208333 +vt 0.071429 0.291667 +vt 0.357143 0.145833 +vt 0.321429 0.125000 +vt 0.500000 0.041667 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +usemtl None +s off +f 9/1/1 13/2/1 14/3/1 +f 10/4/2 15/5/2 13/6/2 +f 11/7/3 16/8/3 15/9/3 +f 12/10/4 14/11/4 16/12/4 +f 7/13/5 1/14/5 3/15/5 +f 4/16/6 6/17/6 8/18/6 +f 18/19/6 9/1/6 17/20/6 +f 19/21/6 10/22/6 18/19/6 +f 20/23/6 11/24/6 19/21/6 +f 17/20/6 12/25/6 20/23/6 +f 22/26/5 13/6/5 21/27/5 +f 21/27/5 15/5/5 23/28/5 +f 23/28/5 16/29/5 24/30/5 +f 24/30/5 14/31/5 22/26/5 +f 8/32/2 3/33/2 4/34/2 +f 6/35/3 7/36/3 8/37/3 +f 2/38/4 5/39/4 6/40/4 +f 4/41/1 1/42/1 2/43/1 +f 23/44/1 20/45/1 19/46/1 +f 24/47/2 17/48/2 20/49/2 +f 22/50/3 18/51/3 17/52/3 +f 21/53/4 19/54/4 18/55/4 +f 27/56/5 28/57/5 25/58/5 +f 34/59/5 35/60/5 32/61/5 +f 40/62/5 41/63/5 38/64/5 +f 46/65/5 47/66/5 44/67/5 +f 52/68/5 53/69/5 50/70/5 +f 58/71/5 59/72/5 56/73/5 +f 64/74/5 65/75/5 62/76/5 +f 70/77/5 71/78/5 68/79/5 +f 9/1/1 10/22/1 13/2/1 +f 10/4/2 11/80/2 15/5/2 +f 11/7/3 12/81/3 16/8/3 +f 12/10/4 9/82/4 14/11/4 +f 7/13/5 5/83/5 1/14/5 +f 4/16/6 2/84/6 6/17/6 +f 18/19/6 10/22/6 9/1/6 +f 19/21/6 11/24/6 10/22/6 +f 20/23/6 12/25/6 11/24/6 +f 17/20/6 9/1/6 12/25/6 +f 22/26/5 14/31/5 13/6/5 +f 21/27/5 13/6/5 15/5/5 +f 23/28/5 15/5/5 16/29/5 +f 24/30/5 16/29/5 14/31/5 +f 8/32/2 7/85/2 3/33/2 +f 6/35/3 5/86/3 7/36/3 +f 2/38/4 1/87/4 5/39/4 +f 4/41/1 3/88/1 1/42/1 +f 23/44/1 24/89/1 20/45/1 +f 24/47/2 22/90/2 17/48/2 +f 22/50/3 21/91/3 18/51/3 +f 21/53/4 23/92/4 19/54/4 +f 25/58/5 30/93/5 27/56/5 +f 27/56/5 31/94/5 28/57/5 +f 28/57/5 26/95/5 25/58/5 +f 32/61/5 36/96/5 34/59/5 +f 34/59/5 37/97/5 35/60/5 +f 35/60/5 33/98/5 32/61/5 +f 38/64/5 42/99/5 40/62/5 +f 40/62/5 43/100/5 41/63/5 +f 41/63/5 39/101/5 38/64/5 +f 44/67/5 48/102/5 46/65/5 +f 46/65/5 49/103/5 47/66/5 +f 47/66/5 45/104/5 44/67/5 +f 50/70/5 54/105/5 52/68/5 +f 52/68/5 55/106/5 53/69/5 +f 53/69/5 51/107/5 50/70/5 +f 56/73/5 60/108/5 58/71/5 +f 58/71/5 61/109/5 59/72/5 +f 59/72/5 57/110/5 56/73/5 +f 62/76/5 66/111/5 64/74/5 +f 64/74/5 67/112/5 65/75/5 +f 65/75/5 63/113/5 62/76/5 +f 68/79/5 72/114/5 70/77/5 +f 70/77/5 73/115/5 71/78/5 +f 71/78/5 69/116/5 68/79/5 +l 27 29 +o Piston +v -0.062500 1.000000 0.062500 +v -0.125000 1.062500 0.125000 +v -0.062500 1.000000 -0.062500 +v -0.125000 1.062500 -0.125000 +v 0.062500 1.000000 0.062500 +v 0.125000 1.062500 0.125000 +v 0.062500 1.000000 -0.062500 +v 0.125000 1.062500 -0.125000 +v -0.125000 1.000000 -0.125000 +v -0.125000 1.000000 0.125000 +v 0.125000 1.000000 -0.125000 +v 0.125000 1.000000 0.125000 +v -0.062500 0.062500 -0.062500 +v -0.062500 0.062500 0.062500 +v 0.062500 0.062500 -0.062500 +v 0.062500 0.062500 0.062500 +vt 0.857143 0.708333 +vt 0.714286 0.687500 +vt 0.857143 0.687500 +vt 0.857143 0.708333 +vt 0.714286 0.687500 +vt 0.857143 0.687500 +vt 0.857143 0.708333 +vt 0.714286 0.687500 +vt 0.857143 0.687500 +vt 0.857143 0.708333 +vt 0.714286 0.687500 +vt 0.857143 0.687500 +vt 0.821429 0.375000 +vt 0.750000 0.687500 +vt 0.750000 0.375000 +vt 0.857143 0.791667 +vt 0.714286 0.875000 +vt 0.714286 0.791667 +vt 0.821429 0.770833 +vt 0.714286 0.791667 +vt 0.750000 0.770833 +vt 0.714286 0.708333 +vt 0.750000 0.729167 +vt 0.857143 0.708333 +vt 0.821429 0.729167 +vt 0.857143 0.791667 +vt 0.821429 0.333333 +vt 0.750000 0.375000 +vt 0.750000 0.333333 +vt 0.821429 0.375000 +vt 0.750000 0.687500 +vt 0.750000 0.375000 +vt 0.821429 0.375000 +vt 0.750000 0.687500 +vt 0.750000 0.375000 +vt 0.821429 0.375000 +vt 0.750000 0.687500 +vt 0.750000 0.375000 +vt 0.714286 0.708333 +vt 0.714286 0.708333 +vt 0.714286 0.708333 +vt 0.714286 0.708333 +vt 0.821429 0.687500 +vt 0.857143 0.875000 +vt 0.821429 0.375000 +vt 0.821429 0.687500 +vt 0.821429 0.687500 +vt 0.821429 0.687500 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +usemtl None +s off +f 75/117/7 82/118/7 83/119/7 +f 77/120/8 84/121/8 82/122/8 +f 81/123/9 85/124/9 84/125/9 +f 79/126/10 83/127/10 85/128/10 +f 78/129/9 88/130/9 80/131/9 +f 77/132/11 79/133/11 81/134/11 +f 74/135/12 82/136/12 76/137/12 +f 76/137/12 84/138/12 80/139/12 +f 80/139/12 85/140/12 78/141/12 +f 78/141/12 83/142/12 74/135/12 +f 88/143/12 87/144/12 86/145/12 +f 76/146/7 87/147/7 74/148/7 +f 74/149/10 89/150/10 78/151/10 +f 80/152/8 86/153/8 76/154/8 +f 75/117/7 77/155/7 82/118/7 +f 77/120/8 81/156/8 84/121/8 +f 81/123/9 79/157/9 85/124/9 +f 79/126/10 75/158/10 83/127/10 +f 78/129/9 89/159/9 88/130/9 +f 77/132/11 75/160/11 79/133/11 +f 74/135/12 83/142/12 82/136/12 +f 76/137/12 82/136/12 84/138/12 +f 80/139/12 84/138/12 85/140/12 +f 78/141/12 85/140/12 83/142/12 +f 88/143/12 89/161/12 87/144/12 +f 76/146/7 86/162/7 87/147/7 +f 74/149/10 87/163/10 89/150/10 +f 80/152/8 88/164/8 86/153/8 diff --git a/src/main/resources/assets/hbm/textures/models/machines/piston_inserter.png b/src/main/resources/assets/hbm/textures/models/machines/piston_inserter.png new file mode 100644 index 0000000000000000000000000000000000000000..86e8b0b8a4b3f7018233bfba22f9e72e432f55c8 GIT binary patch literal 544 zcmeAS@N?(olHy`uVBq!ia0vp^GC*v=!3-o#_r7`!q!^2X+?^QKos)S9y9W4#xEdH3I5;?Xcz8raMELmlXlQ6GSg>I8=FL~HUOjf~*tKid8kLk5 zXlWfYF}Z4PejzGqv%daOW8;HiVMmW1m6MZ`l#~RT#J+tpJCG7D3Gxg6j}q~1x*3Op^0tseF3zPwjqRs#5ky=^x9Ui~SJ? zBH3$u9-650N*5%avl136;bOg2oD?wUxQF7Zt#f)gu1`7P_h1U|yX9H-(iJ5%(d zpk=QmAG~%y-|*=4?p?bZHU{wQN#0N*KEW~h$BMUpT23vY5t}SST5j#^wBBiJkZve! zDZL^vn1AamR{v)?3$88-`mu7s_SIMJ+L|mZ*}nPwrIif#e@C8QW9nY?PCPEp;%27W S1wCL0GkCiCxvX Date: Mon, 15 May 2023 14:58:30 +0200 Subject: [PATCH 036/432] the malicious gigglefish from the silly dimension --- .../java/com/hbm/blocks/BlockEnumMulti.java | 6 +- .../hbm/blocks/generic/BlockBiomeStone.java | 8 +- .../hbm/blocks/generic/BlockTallPlant.java | 5 +- .../hbm/blocks/machine/DeuteriumTower.java | 3 +- .../hbm/blocks/machine/MachineAutosaw.java | 3 +- .../machine/MachineCatalyticCracker.java | 5 +- .../hbm/blocks/machine/MachineCondenser.java | 3 +- .../machine/MachineDeuteriumExtractor.java | 3 +- .../blocks/machine/MachineFractionTower.java | 5 +- .../hbm/blocks/machine/MachineHeatBoiler.java | 3 +- .../hbm/blocks/machine/MachineHephaestus.java | 3 +- .../hbm/blocks/machine/MachineTowerLarge.java | 3 +- .../hbm/blocks/machine/MachineTowerSmall.java | 3 +- .../hbm/blocks/machine/MachineTurbineGas.java | 9 +- .../java/com/hbm/config/PotionConfig.java | 6 +- .../com/hbm/entity/train/TrainCargoTram.java | 150 ++++++++++++++---- .../com/hbm/inventory/fluid/FluidType.java | 7 +- .../java/com/hbm/inventory/gui/GUIAnvil.java | 9 +- .../java/com/hbm/inventory/gui/GUIHadron.java | 5 +- .../com/hbm/inventory/gui/GUIRBMKConsole.java | 3 +- .../com/hbm/inventory/gui/GUIScreenFluid.java | 5 +- .../gui/GUIScreenTemplateFolder.java | 7 +- .../hbm/inventory/material/NTMMaterial.java | 3 +- .../recipes/GasCentrifugeRecipes.java | 3 +- .../hbm/inventory/recipes/PressRecipes.java | 3 +- .../java/com/hbm/items/ItemEnumMulti.java | 5 +- src/main/java/com/hbm/items/ModItems.java | 3 + .../java/com/hbm/items/food/ItemConserve.java | 5 +- .../java/com/hbm/items/food/ItemCrayon.java | 3 +- .../java/com/hbm/items/food/ItemFlask.java | 4 +- .../com/hbm/items/machine/ItemDrillbit.java | 5 +- .../com/hbm/items/machine/ItemPistons.java | 5 +- .../com/hbm/items/machine/ItemZirnoxRod.java | 5 +- .../com/hbm/items/special/ItemBedrockOre.java | 5 +- .../java/com/hbm/items/special/ItemTrain.java | 55 +++++++ .../com/hbm/items/tool/ItemModMinecart.java | 7 +- .../com/hbm/items/tool/ItemToolAbility.java | 3 +- .../java/com/hbm/items/weapon/ItemAmmo.java | 3 +- .../java/com/hbm/main/ModEventHandler.java | 3 +- .../com/hbm/main/ModEventHandlerClient.java | 3 +- .../machine/rbmk/TileEntityRBMKConsole.java | 3 +- src/main/java/com/hbm/util/ArmorUtil.java | 3 +- .../textures/gui/vehicles/gui_cargo_tram.png | Bin 0 -> 2096 bytes .../hbm/textures/items/train.cargo_tram.png | Bin 0 -> 218 bytes 44 files changed, 285 insertions(+), 98 deletions(-) create mode 100644 src/main/java/com/hbm/items/special/ItemTrain.java create mode 100644 src/main/resources/assets/hbm/textures/gui/vehicles/gui_cargo_tram.png create mode 100644 src/main/resources/assets/hbm/textures/items/train.cargo_tram.png diff --git a/src/main/java/com/hbm/blocks/BlockEnumMulti.java b/src/main/java/com/hbm/blocks/BlockEnumMulti.java index 5ee6e4660..d581bfd2d 100644 --- a/src/main/java/com/hbm/blocks/BlockEnumMulti.java +++ b/src/main/java/com/hbm/blocks/BlockEnumMulti.java @@ -1,5 +1,7 @@ package com.hbm.blocks; +import java.util.Locale; + import com.hbm.util.EnumUtil; import cpw.mods.fml.relauncher.Side; @@ -34,7 +36,7 @@ public class BlockEnumMulti extends BlockMulti { for(int i = 0; i < icons.length; i++) { Enum num = enums[i]; - this.icons[i] = reg.registerIcon(this.getTextureName() + "." + num.name().toLowerCase()); + this.icons[i] = reg.registerIcon(this.getTextureName() + "." + num.name().toLowerCase(Locale.US)); } } else { this.blockIcon = reg.registerIcon(this.getTextureName()); @@ -45,7 +47,7 @@ public class BlockEnumMulti extends BlockMulti { if(this.multiName) { Enum num = EnumUtil.grabEnumSafely(this.theEnum, stack.getItemDamage()); - return super.getUnlocalizedName() + "." + num.name().toLowerCase(); + return super.getUnlocalizedName() + "." + num.name().toLowerCase(Locale.US); } return this.getUnlocalizedName(); diff --git a/src/main/java/com/hbm/blocks/generic/BlockBiomeStone.java b/src/main/java/com/hbm/blocks/generic/BlockBiomeStone.java index a53cce92d..157270048 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockBiomeStone.java +++ b/src/main/java/com/hbm/blocks/generic/BlockBiomeStone.java @@ -1,5 +1,7 @@ package com.hbm.blocks.generic; +import java.util.Locale; + import com.hbm.blocks.BlockEnumMulti; import com.hbm.blocks.BlockEnums.EnumBiomeType; @@ -30,9 +32,9 @@ public class BlockBiomeStone extends BlockEnumMulti { for(int i = 0; i < icons.length; i++) { Enum num = enums[i]; - this.icons[i] = reg.registerIcon(this.getTextureName() + "." + num.name().toLowerCase()); - this.iconsTop[i] = reg.registerIcon(this.getTextureName() + "_top." + num.name().toLowerCase()); - this.iconsLayer[i] = reg.registerIcon(this.getTextureName() + "_layer." + num.name().toLowerCase()); + this.icons[i] = reg.registerIcon(this.getTextureName() + "." + num.name().toLowerCase(Locale.US)); + this.iconsTop[i] = reg.registerIcon(this.getTextureName() + "_top." + num.name().toLowerCase(Locale.US)); + this.iconsLayer[i] = reg.registerIcon(this.getTextureName() + "_layer." + num.name().toLowerCase(Locale.US)); } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockTallPlant.java b/src/main/java/com/hbm/blocks/generic/BlockTallPlant.java index 60ef35c47..4a972a3e7 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockTallPlant.java +++ b/src/main/java/com/hbm/blocks/generic/BlockTallPlant.java @@ -1,6 +1,7 @@ package com.hbm.blocks.generic; import java.util.ArrayList; +import java.util.Locale; import java.util.Random; import com.hbm.blocks.BlockEnumMulti; @@ -87,8 +88,8 @@ public class BlockTallPlant extends BlockEnumMulti implements IPlantable, IGrowa for(int i = 0; i < icons.length; i++) { Enum num = enums[i]; - this.icons[i] = reg.registerIcon(this.getTextureName() + "." + num.name().toLowerCase() + ".upper"); - this.bottomIcons[i] = reg.registerIcon(this.getTextureName() + "." + num.name().toLowerCase() + ".lower"); + this.icons[i] = reg.registerIcon(this.getTextureName() + "." + num.name().toLowerCase(Locale.US) + ".upper"); + this.bottomIcons[i] = reg.registerIcon(this.getTextureName() + "." + num.name().toLowerCase(Locale.US) + ".lower"); } } diff --git a/src/main/java/com/hbm/blocks/machine/DeuteriumTower.java b/src/main/java/com/hbm/blocks/machine/DeuteriumTower.java index e3e706707..b7530f2d2 100644 --- a/src/main/java/com/hbm/blocks/machine/DeuteriumTower.java +++ b/src/main/java/com/hbm/blocks/machine/DeuteriumTower.java @@ -2,6 +2,7 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; @@ -77,7 +78,7 @@ public class DeuteriumTower extends BlockDummyable implements ILookOverlay { text.add((tower.power < tower.getMaxPower() / 20 ? EnumChatFormatting.RED : EnumChatFormatting.GREEN) + "Power: " + BobMathUtil.getShortNumber(tower.power) + "HE"); for(int i = 0; i < tower.tanks.length; i++) - text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + tower.tanks[i].getTankType().getName().toLowerCase()) + ": " + tower.tanks[i].getFill() + "/" + tower.tanks[i].getMaxFill() + "mB"); + text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + tower.tanks[i].getTankType().getName().toLowerCase(Locale.US)) + ": " + tower.tanks[i].getFill() + "/" + tower.tanks[i].getMaxFill() + "mB"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/blocks/machine/MachineAutosaw.java b/src/main/java/com/hbm/blocks/machine/MachineAutosaw.java index b2bce040f..fe568c409 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineAutosaw.java +++ b/src/main/java/com/hbm/blocks/machine/MachineAutosaw.java @@ -2,6 +2,7 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import com.hbm.blocks.ILookOverlay; import com.hbm.tileentity.machine.TileEntityMachineAutosaw; @@ -50,7 +51,7 @@ public class MachineAutosaw extends BlockContainer implements ILookOverlay { TileEntityMachineAutosaw saw = (TileEntityMachineAutosaw) te; List text = new ArrayList(); - text.add(I18nUtil.resolveKey("hbmfluid." + saw.tank.getTankType().getName().toLowerCase()) + ": " + saw.tank.getFill() + "/" + saw.tank.getMaxFill() + "mB"); + text.add(I18nUtil.resolveKey("hbmfluid." + saw.tank.getTankType().getName().toLowerCase(Locale.US)) + ": " + saw.tank.getFill() + "/" + saw.tank.getMaxFill() + "mB"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/blocks/machine/MachineCatalyticCracker.java b/src/main/java/com/hbm/blocks/machine/MachineCatalyticCracker.java index 648f9a3b6..247ee608d 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineCatalyticCracker.java +++ b/src/main/java/com/hbm/blocks/machine/MachineCatalyticCracker.java @@ -2,6 +2,7 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; @@ -70,7 +71,7 @@ public class MachineCatalyticCracker extends BlockDummyable implements ILookOver FluidType type = ((IItemFluidIdentifier) player.getHeldItem().getItem()).getType(world, pos[0], pos[1], pos[2], player.getHeldItem()); cracker.tanks[0].setTankType(type); cracker.markDirty(); - player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation("hbmfluid." + type.getName().toLowerCase())).appendSibling(new ChatComponentText("!"))); + player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation("hbmfluid." + type.getName().toLowerCase(Locale.US))).appendSibling(new ChatComponentText("!"))); return true; } @@ -129,7 +130,7 @@ public class MachineCatalyticCracker extends BlockDummyable implements ILookOver List text = new ArrayList(); for(int i = 0; i < cracker.tanks.length; i++) - text.add((i < 2 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + cracker.tanks[i].getTankType().getName().toLowerCase()) + ": " + cracker.tanks[i].getFill() + "/" + cracker.tanks[i].getMaxFill() + "mB"); + text.add((i < 2 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + cracker.tanks[i].getTankType().getName().toLowerCase(Locale.US)) + ": " + cracker.tanks[i].getFill() + "/" + cracker.tanks[i].getMaxFill() + "mB"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/blocks/machine/MachineCondenser.java b/src/main/java/com/hbm/blocks/machine/MachineCondenser.java index b31340f09..e498acde6 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineCondenser.java +++ b/src/main/java/com/hbm/blocks/machine/MachineCondenser.java @@ -2,6 +2,7 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import com.hbm.blocks.ILookOverlay; import com.hbm.tileentity.machine.TileEntityCondenser; @@ -38,7 +39,7 @@ public class MachineCondenser extends BlockContainer implements ILookOverlay { List text = new ArrayList(); for(int i = 0; i < condenser.tanks.length; i++) - text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + condenser.tanks[i].getTankType().getName().toLowerCase()) + ": " + condenser.tanks[i].getFill() + "/" + condenser.tanks[i].getMaxFill() + "mB"); + text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + condenser.tanks[i].getTankType().getName().toLowerCase(Locale.US)) + ": " + condenser.tanks[i].getFill() + "/" + condenser.tanks[i].getMaxFill() + "mB"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/blocks/machine/MachineDeuteriumExtractor.java b/src/main/java/com/hbm/blocks/machine/MachineDeuteriumExtractor.java index f0d3d2d43..a8e0dc586 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineDeuteriumExtractor.java +++ b/src/main/java/com/hbm/blocks/machine/MachineDeuteriumExtractor.java @@ -2,6 +2,7 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import com.hbm.blocks.ILookOverlay; import com.hbm.lib.RefStrings; @@ -66,7 +67,7 @@ public class MachineDeuteriumExtractor extends BlockContainer implements ILookOv text.add((extractor.power < extractor.getMaxPower() / 20 ? EnumChatFormatting.RED : EnumChatFormatting.GREEN) + "Power: " + BobMathUtil.getShortNumber(extractor.power) + "HE"); for(int i = 0; i < extractor.tanks.length; i++) - text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + extractor.tanks[i].getTankType().getName().toLowerCase()) + ": " + extractor.tanks[i].getFill() + "/" + extractor.tanks[i].getMaxFill() + "mB"); + text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + extractor.tanks[i].getTankType().getName().toLowerCase(Locale.US)) + ": " + extractor.tanks[i].getFill() + "/" + extractor.tanks[i].getMaxFill() + "mB"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/blocks/machine/MachineFractionTower.java b/src/main/java/com/hbm/blocks/machine/MachineFractionTower.java index b8705ead5..af24b1d28 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineFractionTower.java +++ b/src/main/java/com/hbm/blocks/machine/MachineFractionTower.java @@ -2,6 +2,7 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; @@ -73,7 +74,7 @@ public class MachineFractionTower extends BlockDummyable implements ILookOverlay FluidType type = ((IItemFluidIdentifier) player.getHeldItem().getItem()).getType(world, pos[0], pos[1], pos[2], player.getHeldItem()); frac.tanks[0].setTankType(type); frac.markDirty(); - player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation("hbmfluid." + type.getName().toLowerCase())).appendSibling(new ChatComponentText("!"))); + player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation("hbmfluid." + type.getName().toLowerCase(Locale.US))).appendSibling(new ChatComponentText("!"))); } return true; @@ -115,7 +116,7 @@ public class MachineFractionTower extends BlockDummyable implements ILookOverlay List text = new ArrayList(); for(int i = 0; i < cracker.tanks.length; i++) - text.add((i == 0 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + cracker.tanks[i].getTankType().getName().toLowerCase()) + ": " + cracker.tanks[i].getFill() + "/" + cracker.tanks[i].getMaxFill() + "mB"); + text.add((i == 0 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + cracker.tanks[i].getTankType().getName().toLowerCase(Locale.US)) + ": " + cracker.tanks[i].getFill() + "/" + cracker.tanks[i].getMaxFill() + "mB"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/blocks/machine/MachineHeatBoiler.java b/src/main/java/com/hbm/blocks/machine/MachineHeatBoiler.java index 4264b777d..a8779573e 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineHeatBoiler.java +++ b/src/main/java/com/hbm/blocks/machine/MachineHeatBoiler.java @@ -2,6 +2,7 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.IBlockMulti; @@ -68,7 +69,7 @@ public class MachineHeatBoiler extends BlockDummyable implements ILookOverlay, I if(type.hasTrait(FT_Heatable.class) && type.getTrait(FT_Heatable.class).getEfficiency(HeatingType.BOILER) > 0) { boiler.tanks[0].setTankType(type); boiler.markDirty(); - player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation("hbmfluid." + type.getName().toLowerCase())).appendSibling(new ChatComponentText("!"))); + player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation("hbmfluid." + type.getName().toLowerCase(Locale.US))).appendSibling(new ChatComponentText("!"))); } return true; } diff --git a/src/main/java/com/hbm/blocks/machine/MachineHephaestus.java b/src/main/java/com/hbm/blocks/machine/MachineHephaestus.java index b748e3412..6f31472b9 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineHephaestus.java +++ b/src/main/java/com/hbm/blocks/machine/MachineHephaestus.java @@ -2,6 +2,7 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; @@ -110,7 +111,7 @@ public class MachineHephaestus extends BlockDummyable implements ILookOverlay { for(int i = 0; i < heatex.getAllTanks().length; i++) { FluidTank tank = heatex.getAllTanks()[i]; - text.add((i == 0 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + tank.getTankType().getName().toLowerCase()) + ": " + tank.getFill() + "/" + tank.getMaxFill() + "mB"); + text.add((i == 0 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + tank.getTankType().getName().toLowerCase(Locale.US)) + ": " + tank.getFill() + "/" + tank.getMaxFill() + "mB"); } ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); diff --git a/src/main/java/com/hbm/blocks/machine/MachineTowerLarge.java b/src/main/java/com/hbm/blocks/machine/MachineTowerLarge.java index b3fea11e2..b15c2dc74 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineTowerLarge.java +++ b/src/main/java/com/hbm/blocks/machine/MachineTowerLarge.java @@ -2,6 +2,7 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; @@ -77,7 +78,7 @@ public class MachineTowerLarge extends BlockDummyable implements ILookOverlay { List text = new ArrayList(); for(int i = 0; i < tower.tanks.length; i++) - text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + tower.tanks[i].getTankType().getName().toLowerCase()) + ": " + tower.tanks[i].getFill() + "/" + tower.tanks[i].getMaxFill() + "mB"); + text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + tower.tanks[i].getTankType().getName().toLowerCase(Locale.US)) + ": " + tower.tanks[i].getFill() + "/" + tower.tanks[i].getMaxFill() + "mB"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/blocks/machine/MachineTowerSmall.java b/src/main/java/com/hbm/blocks/machine/MachineTowerSmall.java index ac1dd989e..f13cc49df 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineTowerSmall.java +++ b/src/main/java/com/hbm/blocks/machine/MachineTowerSmall.java @@ -2,6 +2,7 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; @@ -74,7 +75,7 @@ public class MachineTowerSmall extends BlockDummyable implements ILookOverlay { List text = new ArrayList(); for(int i = 0; i < tower.tanks.length; i++) - text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + tower.tanks[i].getTankType().getName().toLowerCase()) + ": " + tower.tanks[i].getFill() + "/" + tower.tanks[i].getMaxFill() + "mB"); + text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + tower.tanks[i].getTankType().getName().toLowerCase(Locale.US)) + ": " + tower.tanks[i].getFill() + "/" + tower.tanks[i].getMaxFill() + "mB"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/blocks/machine/MachineTurbineGas.java b/src/main/java/com/hbm/blocks/machine/MachineTurbineGas.java index 02c6d7394..f47e6b6c3 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineTurbineGas.java +++ b/src/main/java/com/hbm/blocks/machine/MachineTurbineGas.java @@ -6,6 +6,7 @@ import com.hbm.util.I18nUtil; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; @@ -85,16 +86,16 @@ public class MachineTurbineGas extends BlockDummyable implements ILookOverlay { List text = new ArrayList(); if(hitCheck(dir, pos[0], pos[1], pos[2], -1, -1, 0, x, y, z) || hitCheck(dir, pos[0], pos[1], pos[2], 1, -1, 0, x, y, z)) { - text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + turbine.tanks[0].getTankType().getName().toLowerCase())); - text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + turbine.tanks[1].getTankType().getName().toLowerCase())); + text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + turbine.tanks[0].getTankType().getName().toLowerCase(Locale.US))); + text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + turbine.tanks[1].getTankType().getName().toLowerCase(Locale.US))); } if(hitCheck(dir, pos[0], pos[1], pos[2], -1, 4, 0, x, y, z) || hitCheck(dir, pos[0], pos[1], pos[2], 1, 4, 0, x, y, z)) { - text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + turbine.tanks[2].getTankType().getName().toLowerCase())); + text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + turbine.tanks[2].getTankType().getName().toLowerCase(Locale.US))); } if(hitCheck(dir, pos[0], pos[1], pos[2], 0, 5, 1, x, y, z)) { - text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + turbine.tanks[3].getTankType().getName().toLowerCase())); + text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + turbine.tanks[3].getTankType().getName().toLowerCase(Locale.US))); } if(hitCheck(dir, pos[0], pos[1], pos[2], 0, -4, 1, x, y, z)) { diff --git a/src/main/java/com/hbm/config/PotionConfig.java b/src/main/java/com/hbm/config/PotionConfig.java index d34c9128c..9cd584ff0 100644 --- a/src/main/java/com/hbm/config/PotionConfig.java +++ b/src/main/java/com/hbm/config/PotionConfig.java @@ -1,5 +1,7 @@ package com.hbm.config; +import java.util.Locale; + import net.minecraftforge.common.config.Configuration; public class PotionConfig { @@ -37,9 +39,9 @@ public class PotionConfig { String s = CommonConfig.createConfigString(config, CATEGORY_POTION, "8.S0_potionSickness", "Valid configs include \"NORMAL\" and \"TERRARIA\", otherwise potion sickness is turned off", "OFF"); - if("normal".equals(s.toLowerCase())) + if("normal".equals(s.toLowerCase(Locale.US))) potionSickness = 1; - if("terraria".equals(s.toLowerCase())) + if("terraria".equals(s.toLowerCase(Locale.US))) potionSickness = 2; } diff --git a/src/main/java/com/hbm/entity/train/TrainCargoTram.java b/src/main/java/com/hbm/entity/train/TrainCargoTram.java index 46981be68..5ae727de1 100644 --- a/src/main/java/com/hbm/entity/train/TrainCargoTram.java +++ b/src/main/java/com/hbm/entity/train/TrainCargoTram.java @@ -1,15 +1,26 @@ package com.hbm.entity.train; +import org.lwjgl.opengl.GL11; + import com.hbm.blocks.rail.IRailNTM.TrackGauge; +import com.hbm.inventory.gui.GuiInfoContainer; +import com.hbm.lib.RefStrings; import com.hbm.tileentity.IGUIProvider; +import api.hbm.energy.IBatteryItem; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; import net.minecraft.util.DamageSource; import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; import net.minecraft.util.Vec3; import net.minecraft.world.World; @@ -62,20 +73,12 @@ public class TrainCargoTram extends EntityRailCarRidable implements IGUIProvider return speed; } - @Override - public TrackGauge getGauge() { - return TrackGauge.STANDARD; - } - - @Override - public double getLengthSpan() { - return 1.5; - } - - @Override - public Vec3 getRiderSeatPosition() { - return Vec3.createVectorHelper(0.375, 2.25, 0.5); - } + @Override public TrackGauge getGauge() { return TrackGauge.STANDARD; } + @Override public double getLengthSpan() { return 1.5; } + @Override public Vec3 getRiderSeatPosition() { return Vec3.createVectorHelper(0.375, 2.25, 0.5); } + @Override public boolean shouldRiderSit() { return false; } + @Override public int getSizeInventory() { return 29; } + @Override public String getInventoryName() { return this.hasCustomInventoryName() ? this.getEntityName() : "container.trainTram"; } @Override public DummyConfig[] getDummies() { @@ -95,11 +98,6 @@ public class TrainCargoTram extends EntityRailCarRidable implements IGUIProvider return true; } - @Override - public boolean shouldRiderSit() { - return false; - } - @Override public Vec3[] getPassengerSeats() { return new Vec3[] { @@ -108,26 +106,112 @@ public class TrainCargoTram extends EntityRailCarRidable implements IGUIProvider }; } - @Override - public int getSizeInventory() { - return 27; - } - - @Override - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.getEntityName() : "container.trainTram"; - } - @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - //return new ContainerTrainCargoTram(player.inventory, (TrainCargoTram)player.worldObj.getEntityByID(x)); - return null; + return new ContainerTrainCargoTram(player.inventory, this); } @Override @SideOnly(Side.CLIENT) public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - //return new GUITrainCargoTram(player.inventory, (TrainCargoTram) player.worldObj.getEntityByID(x)); - return null; + return new GUITrainCargoTram(player.inventory, this); + } + + /* + * ##### ##### # # ##### ##### ### # # ##### #### + * # # # ## # # # # # ## # # # # + * # # # # # # # ##### # # # # ### #### + * # # # # ## # # # # # ## # # # + * ##### ##### # # # # # ### # # ##### # # + */ + public static class ContainerTrainCargoTram extends Container { + private TrainCargoTram train; + public ContainerTrainCargoTram(InventoryPlayer invPlayer, TrainCargoTram train) { + this.train = train; + for(int i = 0; i < 4; i++) { + for(int j = 0; j < 7; j++) { + this.addSlotToContainer(new Slot(train, i * 7 + j, 8 + j * 18, 18 + i * 18)); + } + } + this.addSlotToContainer(new Slot(train, 28, 152, 72)); + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 122 + i * 18)); + } + } + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 180)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int slotIndex) { + ItemStack stackCopy = null; + Slot slot = (Slot) this.inventorySlots.get(slotIndex); + if(slot != null && slot.getHasStack()) { + ItemStack stack = slot.getStack(); + stackCopy = stack.copy(); + if(slotIndex < train.getSizeInventory()) { + if(!this.mergeItemStack(stack, train.getSizeInventory(), this.inventorySlots.size(), true)) { + return null; + } + } else { + + if(stackCopy.getItem() instanceof IBatteryItem) { + if(!this.mergeItemStack(stack, 28, 29, false)) { + return null; + } + } else { + if(!this.mergeItemStack(stack, 0, 28, false)) { + return null; + } + } + } + if(stack.stackSize == 0) { + slot.putStack((ItemStack) null); + } else { + slot.onSlotChanged(); + } + } + return stackCopy; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return train.isUseableByPlayer(player); + } + } + + /* + * ##### # # ### + * # # # # + * # ## # # # + * # # # # # + * ##### ##### ### + */ + @SideOnly(Side.CLIENT) + public static class GUITrainCargoTram extends GuiInfoContainer { + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/vehicles/gui_cargo_tram.png"); + private TrainCargoTram train; + public GUITrainCargoTram(InventoryPlayer invPlayer, TrainCargoTram train) { + super(new ContainerTrainCargoTram(invPlayer, train)); + this.train = train; + this.xSize = 176; + this.ySize = 204; + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.train.hasCustomInventoryName() ? this.train.getInventoryName() : I18n.format(this.train.getInventoryName()); + this.fontRendererObj.drawString(name, 140 / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 0xffffff); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float intero, int x, int y) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + } } } diff --git a/src/main/java/com/hbm/inventory/fluid/FluidType.java b/src/main/java/com/hbm/inventory/fluid/FluidType.java index cc52b005d..d4dd7c272 100644 --- a/src/main/java/com/hbm/inventory/fluid/FluidType.java +++ b/src/main/java/com/hbm/inventory/fluid/FluidType.java @@ -3,6 +3,7 @@ package com.hbm.inventory.fluid; import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import java.util.Locale; import java.util.Map.Entry; import org.lwjgl.input.Keyboard; @@ -55,12 +56,12 @@ public class FluidType { public FluidType(String name, int color, int p, int f, int r, EnumSymbol symbol) { this.stringId = name; this.color = color; - this.unlocalized = "hbmfluid." + name.toLowerCase(); + this.unlocalized = "hbmfluid." + name.toLowerCase(Locale.US); this.poison = p; this.flammability = f; this.reactivity = r; this.symbol = symbol; - this.texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/fluids/" + name.toLowerCase() + ".png"); + this.texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/fluids/" + name.toLowerCase(Locale.US) + ".png"); this.id = Fluids.registerSelf(this); } @@ -124,7 +125,7 @@ public class FluidType { return this.unlocalized; } public String getDict(int quantity) { - return "container" + quantity + this.stringId.replace("_", "").toLowerCase(); + return "container" + quantity + this.stringId.replace("_", "").toLowerCase(Locale.US); } public boolean isHot() { diff --git a/src/main/java/com/hbm/inventory/gui/GUIAnvil.java b/src/main/java/com/hbm/inventory/gui/GUIAnvil.java index b9f77897d..6f8ef4a10 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIAnvil.java +++ b/src/main/java/com/hbm/inventory/gui/GUIAnvil.java @@ -2,6 +2,7 @@ package com.hbm.inventory.gui; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import org.lwjgl.input.Keyboard; import org.lwjgl.input.Mouse; @@ -85,7 +86,7 @@ public class GUIAnvil extends GuiContainer { private void search(String search) { - search = search.toLowerCase(); + search = search.toLowerCase(Locale.US); this.recipes.clear(); @@ -320,7 +321,7 @@ public class GUIAnvil extends GuiContainer { for(AStack stack : recipe.input) { if(stack instanceof ComparableStack) { ItemStack input = ((ComparableStack) stack).toStack(); - list.add(input.getDisplayName().toLowerCase()); + list.add(input.getDisplayName().toLowerCase(Locale.US)); } else if(stack instanceof OreDictStack) { OreDictStack input = (OreDictStack) stack; @@ -328,7 +329,7 @@ public class GUIAnvil extends GuiContainer { if(ores.size() > 0) { for(ItemStack ore : ores) { - list.add(ore.getDisplayName().toLowerCase()); + list.add(ore.getDisplayName().toLowerCase(Locale.US)); } } @@ -336,7 +337,7 @@ public class GUIAnvil extends GuiContainer { } for(AnvilOutput stack : recipe.output) { - list.add(stack.stack.getDisplayName().toLowerCase()); + list.add(stack.stack.getDisplayName().toLowerCase(Locale.US)); } return list; diff --git a/src/main/java/com/hbm/inventory/gui/GUIHadron.java b/src/main/java/com/hbm/inventory/gui/GUIHadron.java index d77a5bb3f..f932ba665 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIHadron.java +++ b/src/main/java/com/hbm/inventory/gui/GUIHadron.java @@ -2,6 +2,7 @@ package com.hbm.inventory.gui; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import org.lwjgl.opengl.GL11; @@ -51,7 +52,7 @@ public class GUIHadron extends GuiInfoContainer { List stats = new ArrayList(); stats.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("hadron.stats")); - stats.add((hadron.stat_success ? EnumChatFormatting.GREEN : EnumChatFormatting.RED) + I18n.format("hadron." + this.hadron.stat_state.name().toLowerCase())); + stats.add((hadron.stat_success ? EnumChatFormatting.GREEN : EnumChatFormatting.RED) + I18n.format("hadron." + this.hadron.stat_state.name().toLowerCase(Locale.US))); if(this.hadron.state.showCoord) stats.add(EnumChatFormatting.RED + I18nUtil.resolveKey("hadron.stats_coord", hadron.stat_x, hadron.stat_y, hadron.stat_z)); stats.add(EnumChatFormatting.GRAY + I18nUtil.resolveKey("hadron.stats_momentum", String.format("%,d", hadron.stat_charge))); this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 41, guiTop + 92, 25, 11, mouseX, mouseY, stats.toArray(new String[0])); @@ -89,7 +90,7 @@ public class GUIHadron extends GuiInfoContainer { this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); - String state = I18n.format("hadron." + this.hadron.state.name().toLowerCase()); + String state = I18n.format("hadron." + this.hadron.state.name().toLowerCase(Locale.US)); this.fontRendererObj.drawString(state, this.xSize / 2 - this.fontRendererObj.getStringWidth(state) / 2, 76, this.hadron.state.color); } diff --git a/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java b/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java index 8d9bda1d3..85be6afb7 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java +++ b/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java @@ -3,6 +3,7 @@ package com.hbm.inventory.gui; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.Locale; import org.apache.commons.lang3.math.NumberUtils; import org.lwjgl.input.Keyboard; @@ -96,7 +97,7 @@ public class GUIRBMKConsole extends GuiScreen { for(int i = 0; i < 3; i++) { for(int j = 0; j < 2; j++) { int id = i * 2 + j + 1; - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 6 + 40 * j, guiTop + 8 + 21 * i, 18, 18, mouseX, mouseY, new String[]{ EnumChatFormatting.YELLOW + I18nUtil.resolveKey("rbmk.console." + console.screens[id - 1].type.name().toLowerCase(), id) } ); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 6 + 40 * j, guiTop + 8 + 21 * i, 18, 18, mouseX, mouseY, new String[]{ EnumChatFormatting.YELLOW + I18nUtil.resolveKey("rbmk.console." + console.screens[id - 1].type.name().toLowerCase(Locale.US), id) } ); this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 24 + 40 * j, guiTop + 8 + 21 * i, 18, 18, mouseX, mouseY, new String[]{ I18nUtil.resolveKey("rbmk.console.assign", id) } ); } } diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenFluid.java b/src/main/java/com/hbm/inventory/gui/GUIScreenFluid.java index 24a00b973..7a35749db 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenFluid.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenFluid.java @@ -2,6 +2,7 @@ package com.hbm.inventory.gui; import java.awt.Color; import java.util.Arrays; +import java.util.Locale; import org.lwjgl.input.Keyboard; import org.lwjgl.opengl.GL11; @@ -166,10 +167,10 @@ public class GUIScreenFluid extends GuiScreen { this.searchArray = new FluidType[9]; int next = 0; - String subs = this.search.getText().toLowerCase(); + String subs = this.search.getText().toLowerCase(Locale.US); for(FluidType type : Fluids.getInNiceOrder()) { - String name = I18nUtil.resolveKey(type.getUnlocalizedName()).toLowerCase(); + String name = I18nUtil.resolveKey(type.getUnlocalizedName()).toLowerCase(Locale.US); if(name.contains(subs) && !type.hasNoID()) { this.searchArray[next] = type; diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java b/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java index 6872d9f9a..4d09369be 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java @@ -3,6 +3,7 @@ package com.hbm.inventory.gui; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.Locale; import org.lwjgl.input.Keyboard; import org.lwjgl.opengl.GL11; @@ -122,7 +123,7 @@ public class GUIScreenTemplateFolder extends GuiScreen { return; } - sub = sub.toLowerCase(); + sub = sub.toLowerCase(Locale.US); outer: for(ItemStack stack : allStacks) { @@ -132,7 +133,7 @@ public class GUIScreenTemplateFolder extends GuiScreen { if(o instanceof String) { String text = (String) o; - if(text.toLowerCase().contains(sub)) { + if(text.toLowerCase(Locale.US).contains(sub)) { stacks.add(stack); continue outer; } @@ -142,7 +143,7 @@ public class GUIScreenTemplateFolder extends GuiScreen { if(stack.getItem() == ModItems.fluid_identifier) { FluidType fluid = Fluids.fromID(stack.getItemDamage()); - if(I18nUtil.resolveKey(fluid.getUnlocalizedName()).toLowerCase().contains(sub)) { + if(I18nUtil.resolveKey(fluid.getUnlocalizedName()).toLowerCase(Locale.US).contains(sub)) { stacks.add(stack); } } diff --git a/src/main/java/com/hbm/inventory/material/NTMMaterial.java b/src/main/java/com/hbm/inventory/material/NTMMaterial.java index 35940e7b2..0f953871b 100644 --- a/src/main/java/com/hbm/inventory/material/NTMMaterial.java +++ b/src/main/java/com/hbm/inventory/material/NTMMaterial.java @@ -1,6 +1,7 @@ package com.hbm.inventory.material; import java.util.HashSet; +import java.util.Locale; import java.util.Set; import com.hbm.inventory.OreDictManager.DictFrame; @@ -45,7 +46,7 @@ public class NTMMaterial { } public String getUnlocalizedName() { - return "hbmmat." + this.names[0].toLowerCase(); + return "hbmmat." + this.names[0].toLowerCase(Locale.US); } public NTMMaterial setConversion(NTMMaterial mat, int in, int out) { diff --git a/src/main/java/com/hbm/inventory/recipes/GasCentrifugeRecipes.java b/src/main/java/com/hbm/inventory/recipes/GasCentrifugeRecipes.java index abbdea91a..7b7743f2c 100644 --- a/src/main/java/com/hbm/inventory/recipes/GasCentrifugeRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/GasCentrifugeRecipes.java @@ -2,6 +2,7 @@ package com.hbm.inventory.recipes; import java.util.HashMap; import java.util.Iterator; +import java.util.Locale; import java.util.Map; import java.util.Map.Entry; @@ -60,7 +61,7 @@ public class GasCentrifugeRecipes { } public String getName() { - return I18nUtil.resolveKey("hbmpseudofluid.".concat(this.toString().toLowerCase())); + return I18nUtil.resolveKey("hbmpseudofluid.".concat(this.toString().toLowerCase(Locale.US))); } public boolean getIfHighSpeed() { diff --git a/src/main/java/com/hbm/inventory/recipes/PressRecipes.java b/src/main/java/com/hbm/inventory/recipes/PressRecipes.java index 1186eb481..15f16e04c 100644 --- a/src/main/java/com/hbm/inventory/recipes/PressRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/PressRecipes.java @@ -2,6 +2,7 @@ package com.hbm.inventory.recipes; import java.io.IOException; import java.util.HashMap; +import java.util.Locale; import java.util.Map.Entry; import static com.hbm.inventory.OreDictManager.*; @@ -151,7 +152,7 @@ public class PressRecipes extends SerializableRecipe { writer.name("input"); this.writeAStack(entry.getKey().getKey(), writer); - writer.name("stamp").value(entry.getKey().getValue().name().toLowerCase()); + writer.name("stamp").value(entry.getKey().getValue().name().toLowerCase(Locale.US)); writer.name("output"); this.writeItemStack(entry.getValue(), writer); } diff --git a/src/main/java/com/hbm/items/ItemEnumMulti.java b/src/main/java/com/hbm/items/ItemEnumMulti.java index f3f81d997..8085625d1 100644 --- a/src/main/java/com/hbm/items/ItemEnumMulti.java +++ b/src/main/java/com/hbm/items/ItemEnumMulti.java @@ -1,6 +1,7 @@ package com.hbm.items; import java.util.List; +import java.util.Locale; import com.hbm.lib.RefStrings; import com.hbm.util.EnumUtil; @@ -54,7 +55,7 @@ public class ItemEnumMulti extends Item { for(int i = 0; i < icons.length; i++) { Enum num = enums[i]; - this.icons[i] = reg.registerIcon(this.getIconString() + "." + num.name().toLowerCase()); + this.icons[i] = reg.registerIcon(this.getIconString() + "." + num.name().toLowerCase(Locale.US)); } } else { this.itemIcon = reg.registerIcon(this.getIconString()); @@ -91,7 +92,7 @@ public class ItemEnumMulti extends Item { if(multiName) { Enum num = EnumUtil.grabEnumSafely(theEnum, stack.getItemDamage()); - return super.getUnlocalizedName() + "." + num.name().toLowerCase(); + return super.getUnlocalizedName() + "." + num.name().toLowerCase(Locale.US); } else { return super.getUnlocalizedName(stack); } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 79043e1e0..d055d6f01 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1031,6 +1031,7 @@ public class ModItems { public static Item can_key; public static Item cart; + public static Item train; public static Item coin_creeper; public static Item coin_radiation; @@ -3456,6 +3457,7 @@ public class ModItems { can_key = new Item().setUnlocalizedName("can_key").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":can_key"); cart = new ItemModMinecart().setUnlocalizedName("cart"); + train = new ItemTrain().setUnlocalizedName("train"); coin_creeper = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("coin_creeper").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":coin_creeper"); coin_radiation = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("coin_radiation").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":coin_radiation"); @@ -7647,6 +7649,7 @@ public class ModItems { //Minecarts GameRegistry.registerItem(cart, cart.getUnlocalizedName()); + GameRegistry.registerItem(train, train.getUnlocalizedName()); //High Explosive Lenses GameRegistry.registerItem(early_explosive_lenses, early_explosive_lenses.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/food/ItemConserve.java b/src/main/java/com/hbm/items/food/ItemConserve.java index a8a7a5af1..11b2c9bb7 100644 --- a/src/main/java/com/hbm/items/food/ItemConserve.java +++ b/src/main/java/com/hbm/items/food/ItemConserve.java @@ -1,6 +1,7 @@ package com.hbm.items.food; import java.util.List; +import java.util.Locale; import com.hbm.entity.effect.EntityVortex; import com.hbm.items.ItemEnumMulti; @@ -93,14 +94,14 @@ public class ItemConserve extends ItemEnumMulti { for(int i = 0; i < icons.length; i++) { Enum num = enums[i]; - this.icons[i] = reg.registerIcon(this.getIconString() + "_" + num.name().toLowerCase()); + this.icons[i] = reg.registerIcon(this.getIconString() + "_" + num.name().toLowerCase(Locale.US)); } } @Override public String getUnlocalizedName(ItemStack stack) { Enum num = EnumUtil.grabEnumSafely(theEnum, stack.getItemDamage()); - return "item.canned_" + num.name().toLowerCase(); + return "item.canned_" + num.name().toLowerCase(Locale.US); } public static enum EnumFoodType { diff --git a/src/main/java/com/hbm/items/food/ItemCrayon.java b/src/main/java/com/hbm/items/food/ItemCrayon.java index c03282985..f9f7d0760 100644 --- a/src/main/java/com/hbm/items/food/ItemCrayon.java +++ b/src/main/java/com/hbm/items/food/ItemCrayon.java @@ -1,6 +1,7 @@ package com.hbm.items.food; import java.util.List; +import java.util.Locale; import com.hbm.items.machine.ItemChemicalDye.EnumChemDye; import com.hbm.lib.RefStrings; @@ -44,7 +45,7 @@ public class ItemCrayon extends ItemFood { @Override public String getUnlocalizedName(ItemStack stack) { Enum num = EnumUtil.grabEnumSafely(EnumChemDye.class, stack.getItemDamage()); - return super.getUnlocalizedName() + "." + num.name().toLowerCase(); + return super.getUnlocalizedName() + "." + num.name().toLowerCase(Locale.US); } @Override diff --git a/src/main/java/com/hbm/items/food/ItemFlask.java b/src/main/java/com/hbm/items/food/ItemFlask.java index c2d727da0..256fa9eff 100644 --- a/src/main/java/com/hbm/items/food/ItemFlask.java +++ b/src/main/java/com/hbm/items/food/ItemFlask.java @@ -1,5 +1,7 @@ package com.hbm.items.food; +import java.util.Locale; + import com.hbm.extprop.HbmPlayerProps; import com.hbm.items.ItemEnumMulti; @@ -30,7 +32,7 @@ public class ItemFlask extends ItemEnumMulti { for(int i = 0; i < icons.length; i++) { Enum num = enums[i]; - this.icons[i] = reg.registerIcon(this.getIconString() + "_" + num.name().toLowerCase()); + this.icons[i] = reg.registerIcon(this.getIconString() + "_" + num.name().toLowerCase(Locale.US)); } } diff --git a/src/main/java/com/hbm/items/machine/ItemDrillbit.java b/src/main/java/com/hbm/items/machine/ItemDrillbit.java index b992fd052..7dd8d3bdd 100644 --- a/src/main/java/com/hbm/items/machine/ItemDrillbit.java +++ b/src/main/java/com/hbm/items/machine/ItemDrillbit.java @@ -1,6 +1,7 @@ package com.hbm.items.machine; import java.util.List; +import java.util.Locale; import com.hbm.items.ItemEnumMulti; import com.hbm.util.EnumUtil; @@ -27,14 +28,14 @@ public class ItemDrillbit extends ItemEnumMulti { for(int i = 0; i < icons.length; i++) { Enum num = enums[i]; - this.icons[i] = reg.registerIcon(this.getIconString() + "_" + num.name().toLowerCase()); + this.icons[i] = reg.registerIcon(this.getIconString() + "_" + num.name().toLowerCase(Locale.US)); } } @Override public String getUnlocalizedName(ItemStack stack) { Enum num = EnumUtil.grabEnumSafely(theEnum, stack.getItemDamage()); - return super.getUnlocalizedName() + "_" + num.name().toLowerCase(); + return super.getUnlocalizedName() + "_" + num.name().toLowerCase(Locale.US); } @Override diff --git a/src/main/java/com/hbm/items/machine/ItemPistons.java b/src/main/java/com/hbm/items/machine/ItemPistons.java index e47d8a53b..4736b5cdd 100644 --- a/src/main/java/com/hbm/items/machine/ItemPistons.java +++ b/src/main/java/com/hbm/items/machine/ItemPistons.java @@ -1,6 +1,7 @@ package com.hbm.items.machine; import java.util.List; +import java.util.Locale; import com.hbm.inventory.fluid.trait.FT_Combustible.FuelGrade; import com.hbm.items.ItemEnumMulti; @@ -28,14 +29,14 @@ public class ItemPistons extends ItemEnumMulti { for(int i = 0; i < icons.length; i++) { Enum num = enums[i]; - this.icons[i] = reg.registerIcon(this.getIconString() + "_" + num.name().toLowerCase()); + this.icons[i] = reg.registerIcon(this.getIconString() + "_" + num.name().toLowerCase(Locale.US)); } } @Override public String getUnlocalizedName(ItemStack stack) { Enum num = EnumUtil.grabEnumSafely(theEnum, stack.getItemDamage()); - return super.getUnlocalizedName() + "_" + num.name().toLowerCase(); + return super.getUnlocalizedName() + "_" + num.name().toLowerCase(Locale.US); } @Override diff --git a/src/main/java/com/hbm/items/machine/ItemZirnoxRod.java b/src/main/java/com/hbm/items/machine/ItemZirnoxRod.java index 3856016fa..d2a50f20d 100644 --- a/src/main/java/com/hbm/items/machine/ItemZirnoxRod.java +++ b/src/main/java/com/hbm/items/machine/ItemZirnoxRod.java @@ -1,6 +1,7 @@ package com.hbm.items.machine; import java.util.List; +import java.util.Locale; import com.hbm.items.ItemEnumMulti; import com.hbm.util.BobMathUtil; @@ -87,14 +88,14 @@ public class ItemZirnoxRod extends ItemEnumMulti { for(int i = 0; i < icons.length; i++) { Enum num = enums[i]; - this.icons[i] = reg.registerIcon(this.getIconString() + "_" + num.name().toLowerCase()); + this.icons[i] = reg.registerIcon(this.getIconString() + "_" + num.name().toLowerCase(Locale.US)); } } @Override public String getUnlocalizedName(ItemStack stack) { Enum num = EnumUtil.grabEnumSafely(theEnum, stack.getItemDamage()); - return super.getUnlocalizedName() + "_" + num.name().toLowerCase(); + return super.getUnlocalizedName() + "_" + num.name().toLowerCase(Locale.US); } public static enum EnumZirnoxType { diff --git a/src/main/java/com/hbm/items/special/ItemBedrockOre.java b/src/main/java/com/hbm/items/special/ItemBedrockOre.java index 61fc2bd96..55539aa79 100644 --- a/src/main/java/com/hbm/items/special/ItemBedrockOre.java +++ b/src/main/java/com/hbm/items/special/ItemBedrockOre.java @@ -3,6 +3,9 @@ package com.hbm.items.special; import com.hbm.items.ItemEnumMulti; import com.hbm.items.special.ItemByproduct.EnumByproduct; import static com.hbm.items.special.ItemByproduct.EnumByproduct.*; + +import java.util.Locale; + import com.hbm.lib.RefStrings; import com.hbm.util.EnumUtil; @@ -57,7 +60,7 @@ public class ItemBedrockOre extends ItemEnumMulti { public String getItemStackDisplayName(ItemStack stack) { EnumBedrockOre ore = EnumUtil.grabEnumSafely(EnumBedrockOre.class, stack.getItemDamage()); - String oreName = StatCollector.translateToLocal("item.ore." + ore.oreName.toLowerCase()); + String oreName = StatCollector.translateToLocal("item.ore." + ore.oreName.toLowerCase(Locale.US)); return StatCollector.translateToLocalFormatted(this.getUnlocalizedNameInefficiently(stack) + ".name", oreName); } diff --git a/src/main/java/com/hbm/items/special/ItemTrain.java b/src/main/java/com/hbm/items/special/ItemTrain.java new file mode 100644 index 000000000..9c5e65062 --- /dev/null +++ b/src/main/java/com/hbm/items/special/ItemTrain.java @@ -0,0 +1,55 @@ +package com.hbm.items.special; + +import com.hbm.blocks.rail.IRailNTM; +import com.hbm.entity.train.EntityRailCarBase; +import com.hbm.entity.train.TrainCargoTram; +import com.hbm.items.ItemEnumMulti; +import com.hbm.util.EnumUtil; + +import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class ItemTrain extends ItemEnumMulti { + + public ItemTrain() { + super(EnumTrainType.class, true, true); + } + + public static enum EnumTrainType { + + CARGO_TRAM(TrainCargoTram.class); + + public Class train; + private EnumTrainType(Class train) { + this.train = train; + } + } + + @Override + public boolean onItemUse(ItemStack stack, EntityPlayer entity, World world, int x, int y, int z, int side, float fx, float fy, float fz) { + + Block b = world.getBlock(x, y, z); + + if(b instanceof IRailNTM) { + + EnumTrainType type = EnumUtil.grabEnumSafely(theEnum, stack.getItemDamage()); + EntityRailCarBase train = null; + try { train = type.train.getConstructor(World.class).newInstance(world); } catch(Exception e) { } + + if(train != null && train.getGauge() == ((IRailNTM) b).getGauge(world, x, y, z)) { + if(!world.isRemote) { + train.setPosition(x + fx, y + fy, z + fz); + train.rotationYaw = entity.rotationYaw; + world.spawnEntityInWorld(train); + } + + stack.stackSize--; + return true; + } + } + + return false; + } +} diff --git a/src/main/java/com/hbm/items/tool/ItemModMinecart.java b/src/main/java/com/hbm/items/tool/ItemModMinecart.java index c065c189f..4bc248f8c 100644 --- a/src/main/java/com/hbm/items/tool/ItemModMinecart.java +++ b/src/main/java/com/hbm/items/tool/ItemModMinecart.java @@ -1,6 +1,7 @@ package com.hbm.items.tool; import java.util.List; +import java.util.Locale; import com.hbm.entity.cart.*; import com.hbm.items.ModItems; @@ -103,7 +104,7 @@ public class ItemModMinecart extends Item { @Override public String getUnlocalizedName(ItemStack stack) { EnumMinecart cart = EnumUtil.grabEnumSafely(EnumMinecart.class, stack.getItemDamage()); - return super.getUnlocalizedName() + "." + cart.name().toLowerCase(); + return super.getUnlocalizedName() + "." + cart.name().toLowerCase(Locale.US); } @Override @@ -126,7 +127,7 @@ public class ItemModMinecart extends Item { for(int i = 0; i < EnumCartBase.values().length; i++) { EnumCartBase base = EnumCartBase.values()[i]; - bases[i] = reg.registerIcon(this.getIconString() + "." + base.name().toLowerCase()); + bases[i] = reg.registerIcon(this.getIconString() + "." + base.name().toLowerCase(Locale.US)); } EnumMinecart[] enums = EnumMinecart.values(); @@ -134,7 +135,7 @@ public class ItemModMinecart extends Item { for(int i = 0; i < icons.length; i++) { Enum num = enums[i]; - this.icons[i] = reg.registerIcon(this.getIconString() + "_overlay." + num.name().toLowerCase()); + this.icons[i] = reg.registerIcon(this.getIconString() + "_overlay." + num.name().toLowerCase(Locale.US)); } } diff --git a/src/main/java/com/hbm/items/tool/ItemToolAbility.java b/src/main/java/com/hbm/items/tool/ItemToolAbility.java index e5b006909..85e0694d0 100644 --- a/src/main/java/com/hbm/items/tool/ItemToolAbility.java +++ b/src/main/java/com/hbm/items/tool/ItemToolAbility.java @@ -3,6 +3,7 @@ package com.hbm.items.tool; import java.util.ArrayList; import java.util.HashSet; import java.util.List; +import java.util.Locale; import java.util.Set; import com.google.common.collect.HashMultimap; @@ -90,7 +91,7 @@ public class ItemToolAbility extends ItemTool implements IItemAbility, IDepthRoc this.setHarvestLevel("pickaxe", material.getHarvestLevel()); this.setHarvestLevel("shovel", material.getHarvestLevel()); } else { - this.setHarvestLevel(type.toString().toLowerCase(), material.getHarvestLevel()); + this.setHarvestLevel(type.toString().toLowerCase(Locale.US), material.getHarvestLevel()); } } diff --git a/src/main/java/com/hbm/items/weapon/ItemAmmo.java b/src/main/java/com/hbm/items/weapon/ItemAmmo.java index 1917cfa1c..f83ea596c 100644 --- a/src/main/java/com/hbm/items/weapon/ItemAmmo.java +++ b/src/main/java/com/hbm/items/weapon/ItemAmmo.java @@ -3,6 +3,7 @@ package com.hbm.items.weapon; import java.util.ArrayList; import java.util.Comparator; import java.util.List; +import java.util.Locale; import java.util.Set; import com.hbm.items.ItemAmmoEnums.AmmoRocket; @@ -108,7 +109,7 @@ public class ItemAmmo extends ItemEnumMulti { public String key = "desc.item.ammo."; private AmmoItemTrait() { - key += this.toString().toLowerCase(); + key += this.toString().toLowerCase(Locale.US); } } diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index 81bb45c51..949a92461 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -6,6 +6,7 @@ import java.security.NoSuchAlgorithmException; import java.util.ArrayList; import java.util.Iterator; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.Random; @@ -1310,7 +1311,7 @@ public class ModEventHandler { String[] msg = message.split(" "); - String m = msg[0].substring(1, msg[0].length()).toLowerCase(); + String m = msg[0].substring(1, msg[0].length()).toLowerCase(Locale.US); if("gv".equals(m)) { diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 2af37c069..0c181697b 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -3,6 +3,7 @@ package com.hbm.main; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import java.util.Random; import org.lwjgl.input.Keyboard; @@ -446,7 +447,7 @@ public class ModEventHandlerClient { if(invis != null && invis.getAmplifier() > 0) event.setCanceled(true); - if(player.getDisplayName().toLowerCase().equals("martmn")) { + if(player.getDisplayName().toLowerCase(Locale.US).equals("martmn")) { event.setCanceled(true); diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java index f44cfb151..4ce54e100 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java @@ -3,6 +3,7 @@ package com.hbm.tileentity.machine.rbmk; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.Locale; import java.util.Set; import com.hbm.interfaces.IControlReceiver; @@ -389,7 +390,7 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon short col = this.data.getShort("color"); if(col >= 0 && col < RBMKColor.values().length) - stats.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("rbmk.control." + RBMKColor.values()[col].name().toLowerCase())); + stats.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("rbmk.control." + RBMKColor.values()[col].name().toLowerCase(Locale.US))); } case CONTROL_AUTO: diff --git a/src/main/java/com/hbm/util/ArmorUtil.java b/src/main/java/com/hbm/util/ArmorUtil.java index 21bba6f78..6ece2e502 100644 --- a/src/main/java/com/hbm/util/ArmorUtil.java +++ b/src/main/java/com/hbm/util/ArmorUtil.java @@ -2,6 +2,7 @@ package com.hbm.util; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import com.hbm.handler.ArmorModHandler; import com.hbm.handler.HazmatRegistry; @@ -241,7 +242,7 @@ public class ArmorUtil { for(String metal : metals) { - if(name.toLowerCase().contains(metal)) + if(name.toLowerCase(Locale.US).contains(metal)) return true; } diff --git a/src/main/resources/assets/hbm/textures/gui/vehicles/gui_cargo_tram.png b/src/main/resources/assets/hbm/textures/gui/vehicles/gui_cargo_tram.png new file mode 100644 index 0000000000000000000000000000000000000000..21f3bf5a2dc2ca8e1dbe76752ba71b54d7401391 GIT binary patch literal 2096 zcmb7FdsNbQ8~=h#LI7ZtN;bM4rhnz@WwkVDO-*z(rW)bd(bYRKz#in*rLdaYAi zI-uN~5@eEV-d&hcymmk=b7W@7jPQ~ob6!x9_oudVTI-y>d;a-ep4;d7KA-3JW9_B- zqRnm10RU*f-IRR*z@RM*n3+OL#EGl%(1M_Q`30Lnl4BNI1OQUwN7)se!5Qrn9q(1F zM2_ES{eXA^-Bz*gWz)t4lb?`0@_9bf^S{FWMpMKitIpf(Z!p&lW)BHv%mn9$7AYw& zU0khg4*mvA@pFn@=L!2(Rb1I@Jjj(JU1CwcsL%yX(V z$pJm13-xrqv5q!!Pw2qjR($+=+WIOXTOPU1^&`Z$yud4)Y1?(r+b>+0%$XgJJ5+0> zwh%mCeQ1K7UywY9)sWhp856#gq@*OueADF@mz>Wm#HPp0T98DBhSQ82_b?J|4A02$ z#EY7*;))6i3Qh?Vw%U4&l*PJ?r#U~e&iEskGP(CN&nEW=sHZtov(L51J~Sq7CF-+< ziZjRSvnwXI-VKDE_^1ok`lF?3K~d2fOkvms1V~uQCvC#?Z)xfqD-GD$xAG^I zW!YCC`d<-~-N2q~10y?Cn>0isfRkcmG6K~=fHOl^rP{ZKD3R8X1F=VEMIY87qK8X0Qs76*V2{D zW)b(BE~TZg6yv{*g9g>9NBnEl0LZ=61~^BZ9f(t*@qvO*d6$V+=Cn;0FlAq{$ip1I z8;#J}bR<`|sqTyHVnL}{@N1x!5i0%}f<;ho0gVH3{)m0Nqjq^j+o&xwN43vs%BQRu z#j|_un(XXsZiREz3P(7fUP%qWQN&T&wTA6e!-Z-g-x1Cf z7}Om-K}OPoYH%Q(LyP!&0gG3_f2hd#{82NBDBKAF> z@&{r~1s5JxZW2ATc=*!6(lh~{ueJu8x_^H`azuoF3~r=J>^^r{!}%g#CbI1SiE3GS zxNJzCyfeG6>7HioC<9zu5B8%9b4PZ8&inFYQgs$edfpA}_D7PP3S&eb5;o_M}biPlJtW)5qvY;a%rxknOt=DA*}O0L1+@KhsNU29U&6x!;uOZ131F3i%MbR z{f23}4Mw-li+g%lx~IO^T^b|HG+!R17IVNF0wqUgv3cDJScarO$KEJU!rU6AX-kGw zGY7@VBsZSBot@ntC1*f4(=wUj$J4gN^Nf@CSG8raYxKqLhTI;?uOB8Y=u{}Q8A zRwupUz;=K>zKha-k>vynt20lOc$4WTev4#Q))@I8^SW5paJtU>@qBQ6ULMIyLR`%) zF$cJa{pr2Ey;y9`&6~LIa2vO{T8m#4M))I6iV@&l$2U8P1LsNr^EH)hUR_q~K-zpO zUnY}1?&}Nj*<7a6m;o;#m&CS>TLkz1PI4C$X@WKBR8U?ju znLkk0$I?u|X0vN*YeRB23}3yIHB6y&Z4IDs43quPWZc9sD&L16OHTHsh&wu{;s~5;*B3oaJ_U9Vjrds47EvoRYE5y}WVGN=3*AlZII-V$8v5BdRRD@Xl zm$!IZoL4Vcy5xK)HJ*w%$%rL%&SyX*cxCTq1q*m5G{Jt@Kk%LSTz_agI^w~J#0SFO z7^A;Wxa@qxqY@ruAC#|=1idPnDZtkorINEngK0!A)P5z`q8*>a_KpUz)V) qOKzF4zpjEmxv5|LrT;_ex1A$hQ)xq)mrsAU=<4T9rBr)GpZp(|onvnR literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/train.cargo_tram.png b/src/main/resources/assets/hbm/textures/items/train.cargo_tram.png new file mode 100644 index 0000000000000000000000000000000000000000..dc08307e90b9818e8af3f49d3b28747f872d6c5e GIT binary patch literal 218 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf)2Y&*)-ue8y@gQZ;LL+J9$ zcYin9-(Rljv^;KST-xV9AM7uR8Q$ZYGlRXOLoD9qRolxetNB*&*-S58%Y2&qoF(fC z%Wz%eV+;aL8Bq<7>%6-J%cOIzPYhx?aI3uPbP0l+XkK=<-wn literal 0 HcmV?d00001 From b04a25ad713ca4173d683c3abae53b597e9e54e3 Mon Sep 17 00:00:00 2001 From: Boblet Date: Mon, 15 May 2023 16:21:36 +0200 Subject: [PATCH 037/432] i can't feel my legs no more --- README.md | 15 ++++++ .../java/com/hbm/config/GeneralConfig.java | 2 + .../hbm/inventory/fluid/tank/FluidTank.java | 5 +- .../com/hbm/main/ModEventHandlerClient.java | 48 +++++++++++++++++++ src/main/resources/META-INF/HBM_at.cfg | 7 +++ 5 files changed, 76 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 39977e9da..e43375975 100644 --- a/README.md +++ b/README.md @@ -91,5 +91,20 @@ If you want to make some changes to the mod, follow this guide: * Click **Add Standard VM**; in the JRE home, navigate to the directory where the JDK is installed, then click finish and select it. 10. Code! +## Compatibility notice +NTM has certain behaviors intended to fix vanilla code or to increase compatibility in certain cases where it otherwise would not be possible. These behaviors have the potential of not playing well with other mods, and while no such cases are currently known, here's a list of them. + +### Skybox chainloader +NTM adds a few small things to the skybox using a custom skybox renderer. Minecraft can only have a single skybox renderer loaded, so setting the skybox to the NTM custom one would break compatibility with other mods' skyboxes. To mend this, NTM employs a **chainloader**. This chainloader will detect if a different skybox is loaded, save a reference to that skybox and then use NTM's skybox, which when used will also make sure to run the previous modded skybox renderer. In the event that NTM's skybox were to cause trouble, it can be disabled with the config option `1.31_enableSkyboxes`. + +### Custom world provider +A world provider is a piece of code that minecraft can load to determine certain aspects of how the world should be handled, like light levels, sky color, day/night cycle, etc. In order for the Tomp impact effects to work, NTM employs such a world provider, although this is known to cause issues with Hardcore Darkness. The world provider can be disabled with the config option `1.32_enableImpactWorldProvider`. + +### Stat re-registering +An often overlooked aspect of Minecraft is its stats, the game keeps track of how many of an item were crafted, placed, broken, etc. By default, Minecraft can only handle vanilla items, modded items would not show up in the stats window. Forge does little to fix this, and since NTM has to keep track of certain things (such as use of an acidizer for spawning Mask Man) it will run its own code which re-registers all stats for all modded items. In the event that re-registering causes issues, or another mod already does this but better, this behavior can be disabled with the config option `1.33_enableStatReRegistering`. + +### Keybind overlap +An often annoying aspect of modded Minecraft is its keybinds. Even though multiple binds can be assigned the same key, all but one will show up as "conflicting" and only the non-conflicting one will work. Which one this is is usually arbitrary, and there is no reason to have such limitation. Often times keybinds are only applicable in certain scenarios, and a commonly found degree of overlap is within reason. Therefore, NTM will run its own key handling code which allows conflicting keybinds to work. If there should be any issues with this behavior, it can be disabled with the config option `1.34_enableKeybindOverlap`. + # License This software is licensed under the GNU Lesser General Public License version 3. In short: This software is free, you may run the software freely, create modified versions, distribute this software and distribute modified versions, as long as the modified software too has a free software license (with an exception for linking to this software, as stated by the "Lesser" part of the LGPL, where this may not be required). You win this round, Stallman. The full license can be found in the `LICENSE` and `LICENSE.LESSER` files. diff --git a/src/main/java/com/hbm/config/GeneralConfig.java b/src/main/java/com/hbm/config/GeneralConfig.java index 2e4b79920..557ca2a0c 100644 --- a/src/main/java/com/hbm/config/GeneralConfig.java +++ b/src/main/java/com/hbm/config/GeneralConfig.java @@ -31,6 +31,7 @@ public class GeneralConfig { public static boolean enableSkyboxes = true; public static boolean enableImpactWorldProvider = true; public static boolean enableStatReRegistering = true; + public static boolean enableKeybindOverlap = true; public static int hintPos = 0; public static boolean enable528 = false; @@ -89,6 +90,7 @@ public class GeneralConfig { enableSkyboxes = config.get(CATEGORY_GENERAL, "1.31_enableSkyboxes", true, "If enabled, will try to use NTM's custom skyboxes.").getBoolean(true); enableImpactWorldProvider = config.get(CATEGORY_GENERAL, "1.32_enableImpactWorldProvider", true, "If enabled, registers custom world provider which modifies lighting and sky colors for post impact effects.").getBoolean(true); enableStatReRegistering = config.get(CATEGORY_GENERAL, "1.33_enableStatReRegistering", true, "If enabled, will re-register item crafting/breaking/usage stats in order to fix a forge bug where modded items just won't show up.").getBoolean(true); + enableKeybindOverlap = config.get(CATEGORY_GENERAL, "1.34_enableKeybindOverlap", true, "If enabled, will handle keybinds that would otherwise be ignored due to overlapping.").getBoolean(true); final String CATEGORY_528 = CommonConfig.CATEGORY_528; diff --git a/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java b/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java index ce98e9579..ee0dfe019 100644 --- a/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java +++ b/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java @@ -20,6 +20,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.MathHelper; public class FluidTank { @@ -258,7 +259,9 @@ public class FluidTank { fluid = nbt.getInteger(s); int max = nbt.getInteger(s + "_max"); if(max > 0) - maxFluid = nbt.getInteger(s + "_max"); + maxFluid = max; + + fluid = MathHelper.clamp_int(fluid, 0, max); type = Fluids.fromName(nbt.getString(s + "_type")); //compat if(type == Fluids.NONE) diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 0c181697b..de63427b1 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -83,6 +83,7 @@ import cpw.mods.fml.client.FMLClientHandler; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.eventhandler.EventPriority; import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import cpw.mods.fml.common.gameevent.InputEvent; import cpw.mods.fml.common.gameevent.InputEvent.KeyInputEvent; import cpw.mods.fml.common.gameevent.TickEvent.ClientTickEvent; import cpw.mods.fml.common.gameevent.TickEvent.Phase; @@ -101,6 +102,7 @@ import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.entity.RenderPlayer; +import net.minecraft.client.settings.KeyBinding; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Items; import net.minecraft.inventory.Slot; @@ -954,6 +956,52 @@ public class ModEventHandlerClient { } } } + + @SideOnly(Side.CLIENT) + @SubscribeEvent + public void onMouseClicked(InputEvent.KeyInputEvent event) { + + if(GeneralConfig.enableKeybindOverlap) { + boolean state = Mouse.getEventButtonState(); + int keyCode = Mouse.getEventButton() - 100; + + //if anything errors here, run ./gradlew clean setupDecompWorkSpace + for(Object o : KeyBinding.keybindSet) { + KeyBinding key = (KeyBinding) o; + + if(key.getKeyCode() == keyCode && KeyBinding.hash.lookup(key.getKeyCode()) != key) { + + key.pressed = state; + if(state) { + key.pressTime++; + } + } + } + } + } + + @SideOnly(Side.CLIENT) + @SubscribeEvent + public void onKeyTyped(InputEvent.KeyInputEvent event) { + + if(GeneralConfig.enableKeybindOverlap) { + boolean state = Keyboard.getEventKeyState(); + int keyCode = Keyboard.getEventKey(); + + //if anything errors here, run ./gradlew clean setupDecompWorkSpace + for(Object o : KeyBinding.keybindSet) { + KeyBinding key = (KeyBinding) o; + + if(key.getKeyCode() == keyCode && KeyBinding.hash.lookup(key.getKeyCode()) != key) { + + key.pressed = state; + if(state) { + key.pressTime++; + } + } + } + } + } @SideOnly(Side.CLIENT) @SubscribeEvent diff --git a/src/main/resources/META-INF/HBM_at.cfg b/src/main/resources/META-INF/HBM_at.cfg index 1cc05d2b5..5d2a92333 100644 --- a/src/main/resources/META-INF/HBM_at.cfg +++ b/src/main/resources/META-INF/HBM_at.cfg @@ -8,3 +8,10 @@ public net.minecraft.entity.monster.EntityCreeper func_146077_cc()V # ex # RenderCreeper public net.minecraft.client.renderer.entity.RenderCreeper field_77064_a # creeperModel + +# KeyBinding +public net.minecraft.client.settings.KeyBinding field_74516_a # keybindArray +public net.minecraft.client.settings.KeyBinding field_74514_b # hash +public net.minecraft.client.settings.KeyBinding field_151473_c # keybindSet +public net.minecraft.client.settings.KeyBinding field_74513_e # pressed +public net.minecraft.client.settings.KeyBinding field_151474_i # pressTime From e63996f9f2944980591f638122e1dd875d363fd8 Mon Sep 17 00:00:00 2001 From: HbmMods Date: Mon, 15 May 2023 16:24:19 +0200 Subject: [PATCH 038/432] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e43375975..2506c1a64 100644 --- a/README.md +++ b/README.md @@ -98,10 +98,10 @@ NTM has certain behaviors intended to fix vanilla code or to increase compatibil NTM adds a few small things to the skybox using a custom skybox renderer. Minecraft can only have a single skybox renderer loaded, so setting the skybox to the NTM custom one would break compatibility with other mods' skyboxes. To mend this, NTM employs a **chainloader**. This chainloader will detect if a different skybox is loaded, save a reference to that skybox and then use NTM's skybox, which when used will also make sure to run the previous modded skybox renderer. In the event that NTM's skybox were to cause trouble, it can be disabled with the config option `1.31_enableSkyboxes`. ### Custom world provider -A world provider is a piece of code that minecraft can load to determine certain aspects of how the world should be handled, like light levels, sky color, day/night cycle, etc. In order for the Tomp impact effects to work, NTM employs such a world provider, although this is known to cause issues with Hardcore Darkness. The world provider can be disabled with the config option `1.32_enableImpactWorldProvider`. +A world provider is a piece of code that minecraft can load to determine certain aspects of how the world should be handled, like light levels, sky color, day/night cycle, etc. In order for the Tom impact effects to work, NTM employs such a world provider, although this is known to cause issues with Hardcore Darkness. The world provider can be disabled with the config option `1.32_enableImpactWorldProvider`. ### Stat re-registering -An often overlooked aspect of Minecraft is its stats, the game keeps track of how many of an item were crafted, placed, broken, etc. By default, Minecraft can only handle vanilla items, modded items would not show up in the stats window. Forge does little to fix this, and since NTM has to keep track of certain things (such as use of an acidizer for spawning Mask Man) it will run its own code which re-registers all stats for all modded items. In the event that re-registering causes issues, or another mod already does this but better, this behavior can be disabled with the config option `1.33_enableStatReRegistering`. +An often overlooked aspect of Minecraft is its stats, the game keeps track of how many of an item were crafted, placed, broken, etc. By default, Minecraft can only handle vanilla items, modded items would not show up in the stats window. Forge does little to fix this, and since NTM has to keep track of certain things (such as the use of an acidizer for spawning Mask Man) it will run its own code which re-registers all stats for all modded items. In the event that re-registering causes issues, or another mod already does this better already, this behavior can be disabled with the config option `1.33_enableStatReRegistering`. ### Keybind overlap An often annoying aspect of modded Minecraft is its keybinds. Even though multiple binds can be assigned the same key, all but one will show up as "conflicting" and only the non-conflicting one will work. Which one this is is usually arbitrary, and there is no reason to have such limitation. Often times keybinds are only applicable in certain scenarios, and a commonly found degree of overlap is within reason. Therefore, NTM will run its own key handling code which allows conflicting keybinds to work. If there should be any issues with this behavior, it can be disabled with the config option `1.34_enableKeybindOverlap`. From 1005eee31c4bc9769553333724fa65648e0f51c1 Mon Sep 17 00:00:00 2001 From: Bob Date: Mon, 15 May 2023 23:12:50 +0200 Subject: [PATCH 039/432] bronk --- .../java/com/hbm/main/ModEventHandlerClient.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index de63427b1..2fd559dd2 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -960,13 +960,14 @@ public class ModEventHandlerClient { @SideOnly(Side.CLIENT) @SubscribeEvent public void onMouseClicked(InputEvent.KeyInputEvent event) { - - if(GeneralConfig.enableKeybindOverlap) { + + Minecraft mc = Minecraft.getMinecraft(); + if(GeneralConfig.enableKeybindOverlap && (mc.currentScreen == null || mc.currentScreen.allowUserInput)) { boolean state = Mouse.getEventButtonState(); int keyCode = Mouse.getEventButton() - 100; //if anything errors here, run ./gradlew clean setupDecompWorkSpace - for(Object o : KeyBinding.keybindSet) { + for(Object o : KeyBinding.keybindArray) { KeyBinding key = (KeyBinding) o; if(key.getKeyCode() == keyCode && KeyBinding.hash.lookup(key.getKeyCode()) != key) { @@ -984,12 +985,13 @@ public class ModEventHandlerClient { @SubscribeEvent public void onKeyTyped(InputEvent.KeyInputEvent event) { - if(GeneralConfig.enableKeybindOverlap) { + Minecraft mc = Minecraft.getMinecraft(); + if(GeneralConfig.enableKeybindOverlap && (mc.currentScreen == null || mc.currentScreen.allowUserInput)) { boolean state = Keyboard.getEventKeyState(); int keyCode = Keyboard.getEventKey(); //if anything errors here, run ./gradlew clean setupDecompWorkSpace - for(Object o : KeyBinding.keybindSet) { + for(Object o : KeyBinding.keybindArray) { KeyBinding key = (KeyBinding) o; if(key.getKeyCode() == keyCode && KeyBinding.hash.lookup(key.getKeyCode()) != key) { From 230ff0025752c3ab1eb114478d6c13d0ee0a733d Mon Sep 17 00:00:00 2001 From: Vaern Date: Mon, 15 May 2023 19:46:19 -0700 Subject: [PATCH 040/432] Piston inserter fixed, some crucial bug fixes in the pile insertion --- .../hbm/blocks/machine/PistonInserter.java | 55 ++-- .../pile/BlockGraphiteDrilledBase.java | 21 +- .../tileentity/RenderPistonInserter.java | 5 +- .../hbm/models/machines/piston_inserter.obj | 258 +++++++++++++----- 4 files changed, 247 insertions(+), 92 deletions(-) diff --git a/src/main/java/com/hbm/blocks/machine/PistonInserter.java b/src/main/java/com/hbm/blocks/machine/PistonInserter.java index 99b284104..b42828c0b 100644 --- a/src/main/java/com/hbm/blocks/machine/PistonInserter.java +++ b/src/main/java/com/hbm/blocks/machine/PistonInserter.java @@ -4,6 +4,8 @@ import com.hbm.blocks.BlockContainerBase; import com.hbm.tileentity.INBTPacketReceiver; import api.hbm.block.IInsertable; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.block.BlockPistonBase; import net.minecraft.block.material.Material; @@ -53,7 +55,7 @@ public class PistonInserter extends BlockContainerBase { protected boolean checkRedstone(World world, int x, int y, int z) { for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { - if(world.getIndirectPowerOutput(x, y, z, dir.ordinal())) + if(world.getIndirectPowerOutput(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, dir.ordinal())) return true; } @@ -63,18 +65,9 @@ public class PistonInserter extends BlockContainerBase { @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(player.getHeldItem() != null) { - if(!world.isRemote) { - TileEntityPistonInserter piston = (TileEntityPistonInserter)world.getTileEntity(x, y, z); - - if(piston.slot == null) { - piston.slot = player.inventory.decrStackSize(player.inventory.currentItem, 1); - player.inventoryContainer.detectAndSendChanges(); - } - } - - return true; - } else if(player.isSneaking()) { + if(side != world.getBlockMetadata(x, y, z)) return false; + + if(player.isSneaking()) { if(!world.isRemote) { TileEntityPistonInserter piston = (TileEntityPistonInserter)world.getTileEntity(x, y, z); @@ -91,6 +84,17 @@ public class PistonInserter extends BlockContainerBase { } } + return true; + } else if(player.getHeldItem() != null) { + if(!world.isRemote) { + TileEntityPistonInserter piston = (TileEntityPistonInserter)world.getTileEntity(x, y, z); + + if(piston.slot == null) { + piston.slot = player.inventory.decrStackSize(player.inventory.currentItem, 1); + player.inventoryContainer.detectAndSendChanges(); + } + } + return true; } @@ -160,7 +164,7 @@ public class PistonInserter extends BlockContainerBase { public ItemStack slot; - public int extend; + public int extend; //why don't we just make all these ones serverside? we're never using them on the client anyway public static final int maxExtend = 25; public boolean isRetracting = true; public int delay; @@ -168,10 +172,16 @@ public class PistonInserter extends BlockContainerBase { //prevents funkies from happening with block updates or loading into a server private boolean lastState; + //when a fake animatorcel gives you something so 20fps you gotta hit him with the true interpolation stare + @SideOnly(Side.CLIENT) public double renderExtend; + @SideOnly(Side.CLIENT) public double lastExtend; + @SideOnly(Side.CLIENT) private int syncExtend; //what are these for? + @SideOnly(Side.CLIENT) private int turnProgress; //idk man, i can't find the convo bob had about them + public TileEntityPistonInserter() { } @Override - public void updateEntity() { //what is this amalgamation + public void updateEntity() { if(!worldObj.isRemote) { @@ -183,7 +193,7 @@ public class PistonInserter extends BlockContainerBase { this.extend++; if(this.extend >= this.maxExtend) { - worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:block.pressOperate", 1.5F, 1.0F); + worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:block.pressOperate", 1.0F, 1.5F); ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); Block b = worldObj.getBlock(xCoord + dir.offsetX * 2, yCoord + dir.offsetY * 2, zCoord + dir.offsetZ * 2); @@ -211,19 +221,30 @@ public class PistonInserter extends BlockContainerBase { INBTPacketReceiver.networkPack(this, data, 25); + } else { + this.lastExtend = this.renderExtend; + + if(this.turnProgress > 0) { + this.renderExtend += (this.syncExtend - this.renderExtend) / (double) this.turnProgress; + this.turnProgress--; + } else { + this.renderExtend = this.syncExtend; + } } } @Override public void networkUnpack(NBTTagCompound nbt) { - this.extend = nbt.getInteger("extend"); + this.syncExtend = nbt.getInteger("extend"); if(nbt.hasKey("stack")) { NBTTagCompound stack = nbt.getCompoundTag("stack"); this.slot = ItemStack.loadItemStackFromNBT(stack); } else this.slot = null; + + this.turnProgress = 2; } /* :3 NBT stuff */ diff --git a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilledBase.java b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilledBase.java index 8e45d7aec..9d8b2fc8f 100644 --- a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilledBase.java +++ b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilledBase.java @@ -145,8 +145,7 @@ public abstract class BlockGraphiteDrilledBase extends BlockFlammable implements if(baseBlock == null) return false; final int side = dir.ordinal(); - final int baseMeta = world.getBlockMetadata(x, y, z); - final int pureMeta = baseMeta & 3; //in case it's shrouded in aluminum + final int pureMeta = world.getBlockMetadata(x, y, z) & 3; //in case it's shrouded in aluminum if(side == pureMeta * 2 || side == pureMeta * 2 + 1) { //first, make sure we can even push rods out @@ -157,13 +156,14 @@ public abstract class BlockGraphiteDrilledBase extends BlockFlammable implements Block b = world.getBlock(ix, iy, iz); - if(b instanceof BlockGraphiteDrilledBase) { - if((world.getBlockMetadata(ix, iy, iz) & 3) != pureMeta) //wrong orientation + if(b instanceof BlockGraphiteDrilledBase) { + int baseMeta = world.getBlockMetadata(ix, iy, iz); + if((baseMeta & 3) != pureMeta) //wrong orientation return false; - if(((BlockGraphiteDrilledBase)b).getInsertedItem() == null) //if there's nothing to push + if(((BlockGraphiteDrilledBase)b).getInsertedItem(baseMeta) == null) //if there's nothing to push break; - else if(i >= 4) //if there is stuff to push and we reach our limit + else if(i >= 3) //if there is stuff to push and we reach our limit return false; } else { if(b.isNormalCube()) //obstructions @@ -174,7 +174,7 @@ public abstract class BlockGraphiteDrilledBase extends BlockFlammable implements } //TODO convert old methods to use itemstack for flexibility - int oldMeta = baseMeta | baseBlock.meta; //metablocks are kinda inconvenient to work with so + int oldMeta = pureMeta | baseBlock.meta; //metablocks are kinda inconvenient to work with so Block oldBlock = baseBlock.block; NBTTagCompound oldTag = new NBTTagCompound(); //In case of TEs @@ -193,10 +193,15 @@ public abstract class BlockGraphiteDrilledBase extends BlockFlammable implements if(newBlock instanceof BlockGraphiteDrilledTE) { TileEntity te = world.getTileEntity(ix, iy, iz); te.writeToNBT(newTag); + newTag.setInteger("x", newTag.getInteger("x") + dir.offsetX); //malformed positions is very very bad and prevents the pile TEs from ticking + newTag.setInteger("y", newTag.getInteger("y") + dir.offsetY); + newTag.setInteger("z", newTag.getInteger("z") + dir.offsetZ); } world.setBlock(ix, iy, iz, oldBlock, (oldMeta & ~0b100) | (newMeta & 0b100), 2); + //TODO: fix buggy interaction when a pu239 rod is inserted into another pu239 rod. the te doesn't disappear in time (even when invalidated) so the progress is 'duplicated' in the new rod. + //the fix might be to make an additional part after the oldTag is initalized, where the id + x,y,z are set, meaning that all other values will be set back to 0 and fixed. if(oldBlock instanceof BlockGraphiteDrilledTE && !oldTag.hasNoTags()) { //safety first TileEntity te = world.getTileEntity(ix, iy, iz); te.readFromNBT(oldTag); @@ -211,7 +216,7 @@ public abstract class BlockGraphiteDrilledBase extends BlockFlammable implements } else { Item eject = ((BlockGraphiteDrilledBase) oldBlock).getInsertedItem(oldMeta); //TODO old methods to itemstack this.ejectItem(world, ix - dir.offsetX, iy - dir.offsetY, iz - dir.offsetZ, dir, new ItemStack(eject)); - world.playSoundEffect(ix + 0.5, iy + 0.5, iz + 0.5, "hbm:item.upgradePlug", 1.0F, 1.0F); + world.playSoundEffect(ix + 0.5, iy + 0.5, iz + 0.5, "hbm:item.upgradePlug", 1.25F, 1.0F); break; } diff --git a/src/main/java/com/hbm/render/tileentity/RenderPistonInserter.java b/src/main/java/com/hbm/render/tileentity/RenderPistonInserter.java index f75aa3857..dc15763fe 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderPistonInserter.java +++ b/src/main/java/com/hbm/render/tileentity/RenderPistonInserter.java @@ -10,6 +10,7 @@ import com.hbm.render.item.ItemRenderBase; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.item.Item; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.MathHelper; import net.minecraftforge.client.IItemRenderer; public class RenderPistonInserter extends TileEntitySpecialRenderer implements IItemRendererProvider { @@ -36,8 +37,8 @@ public class RenderPistonInserter extends TileEntitySpecialRenderer implements I ResourceManager.piston_inserter.renderPart("Frame"); TileEntityPistonInserter piston = (TileEntityPistonInserter)tile; - double e = piston.extend / (double)piston.maxExtend; - GL11.glTranslated(0, -e, 0); + double e = (piston.lastExtend + (piston.renderExtend - piston.lastExtend) * interp) / (double) piston.maxExtend; + GL11.glTranslated(0, e * 0.9375D, 0); ResourceManager.piston_inserter.renderPart("Piston"); GL11.glPopMatrix(); diff --git a/src/main/resources/assets/hbm/models/machines/piston_inserter.obj b/src/main/resources/assets/hbm/models/machines/piston_inserter.obj index 8d78694b6..ff7cc6c6d 100644 --- a/src/main/resources/assets/hbm/models/machines/piston_inserter.obj +++ b/src/main/resources/assets/hbm/models/machines/piston_inserter.obj @@ -75,6 +75,54 @@ v -0.125000 0.062500 0.125000 v -0.312500 0.062500 0.375000 v -0.125000 0.062500 0.062500 v -0.062500 0.062500 0.125000 +v 0.312500 0.062500 -0.375000 +v 0.375000 0.062500 -0.375000 +v 0.125000 0.062500 -0.125000 +v 0.375000 0.062500 -0.312500 +v 0.062500 0.062500 -0.125000 +v 0.125000 0.062500 -0.062500 +v -0.312500 0.062500 0.375000 +v -0.375000 0.062500 0.375000 +v -0.125000 0.062500 0.125000 +v -0.375000 0.062500 0.312500 +v -0.062500 0.062500 0.125000 +v -0.125000 0.062500 0.062500 +v 0.375000 0.062500 0.312500 +v 0.375000 0.062500 0.375000 +v 0.125000 0.062500 0.125000 +v 0.312500 0.062500 0.375000 +v 0.125000 0.062500 0.062500 +v 0.062500 0.062500 0.125000 +v -0.375000 0.062500 -0.312500 +v -0.375000 0.062500 -0.375000 +v -0.125000 0.062500 -0.125000 +v -0.312500 0.062500 -0.375000 +v -0.125000 0.062500 -0.062500 +v -0.062500 0.062500 -0.125000 +v 0.312500 0.937500 -0.375000 +v 0.375000 0.937500 -0.375000 +v 0.125000 0.937500 -0.125000 +v 0.375000 0.937500 -0.312500 +v 0.062500 0.937500 -0.125000 +v 0.125000 0.937500 -0.062500 +v -0.312500 0.937500 0.375000 +v -0.375000 0.937500 0.375000 +v -0.125000 0.937500 0.125000 +v -0.375000 0.937500 0.312500 +v -0.062500 0.937500 0.125000 +v -0.125000 0.937500 0.062500 +v 0.375000 0.937500 0.312500 +v 0.375000 0.937500 0.375000 +v 0.125000 0.937500 0.125000 +v 0.312500 0.937500 0.375000 +v 0.125000 0.937500 0.062500 +v 0.062500 0.937500 0.125000 +v -0.375000 0.937500 -0.312500 +v -0.375000 0.937500 -0.375000 +v -0.125000 0.937500 -0.125000 +v -0.312500 0.937500 -0.375000 +v -0.125000 0.937500 -0.062500 +v -0.062500 0.937500 -0.125000 vt 0.571429 0.666667 vt 0.000000 0.333333 vt 0.571429 0.333333 @@ -154,6 +202,30 @@ vt 0.071429 0.270833 vt 0.357143 0.125000 vt 0.464286 0.041667 vt 0.500000 0.062500 +vt 0.214286 0.125000 +vt 0.071429 0.062500 +vt 0.107143 0.041667 +vt 0.357143 0.208333 +vt 0.500000 0.270833 +vt 0.464286 0.291667 +vt 0.214286 0.208333 +vt 0.107143 0.291667 +vt 0.071429 0.270833 +vt 0.357143 0.125000 +vt 0.464286 0.041667 +vt 0.500000 0.062500 +vt 0.214286 0.125000 +vt 0.071429 0.062500 +vt 0.107143 0.041667 +vt 0.357143 0.208333 +vt 0.500000 0.270833 +vt 0.464286 0.291667 +vt 0.214286 0.208333 +vt 0.107143 0.291667 +vt 0.071429 0.270833 +vt 0.357143 0.125000 +vt 0.464286 0.041667 +vt 0.500000 0.062500 vt -0.000000 0.666667 vt 0.000000 0.666667 vt 0.000000 0.666667 @@ -191,6 +263,30 @@ vt 0.071429 0.291667 vt 0.357143 0.145833 vt 0.321429 0.125000 vt 0.500000 0.041667 +vt 0.250000 0.125000 +vt 0.214286 0.145833 +vt 0.071429 0.041667 +vt 0.321429 0.208333 +vt 0.357143 0.187500 +vt 0.500000 0.291667 +vt 0.214286 0.187500 +vt 0.250000 0.208333 +vt 0.071429 0.291667 +vt 0.357143 0.145833 +vt 0.321429 0.125000 +vt 0.500000 0.041667 +vt 0.250000 0.125000 +vt 0.214286 0.145833 +vt 0.071429 0.041667 +vt 0.321429 0.208333 +vt 0.357143 0.187500 +vt 0.500000 0.291667 +vt 0.214286 0.187500 +vt 0.250000 0.208333 +vt 0.071429 0.291667 +vt 0.357143 0.145833 +vt 0.321429 0.125000 +vt 0.500000 0.041667 vn -1.0000 0.0000 0.0000 vn 0.0000 0.0000 -1.0000 vn 1.0000 0.0000 0.0000 @@ -229,12 +325,20 @@ f 52/68/5 53/69/5 50/70/5 f 58/71/5 59/72/5 56/73/5 f 64/74/5 65/75/5 62/76/5 f 70/77/5 71/78/5 68/79/5 +f 76/80/6 77/81/6 74/82/6 +f 82/83/6 83/84/6 80/85/6 +f 88/86/6 89/87/6 86/88/6 +f 94/89/6 95/90/6 92/91/6 +f 100/92/6 101/93/6 98/94/6 +f 106/95/6 107/96/6 104/97/6 +f 112/98/6 113/99/6 110/100/6 +f 118/101/6 119/102/6 116/103/6 f 9/1/1 10/22/1 13/2/1 -f 10/4/2 11/80/2 15/5/2 -f 11/7/3 12/81/3 16/8/3 -f 12/10/4 9/82/4 14/11/4 -f 7/13/5 5/83/5 1/14/5 -f 4/16/6 2/84/6 6/17/6 +f 10/4/2 11/104/2 15/5/2 +f 11/7/3 12/105/3 16/8/3 +f 12/10/4 9/106/4 14/11/4 +f 7/13/5 5/107/5 1/14/5 +f 4/16/6 2/108/6 6/17/6 f 18/19/6 10/22/6 9/1/6 f 19/21/6 11/24/6 10/22/6 f 20/23/6 12/25/6 11/24/6 @@ -243,38 +347,62 @@ f 22/26/5 14/31/5 13/6/5 f 21/27/5 13/6/5 15/5/5 f 23/28/5 15/5/5 16/29/5 f 24/30/5 16/29/5 14/31/5 -f 8/32/2 7/85/2 3/33/2 -f 6/35/3 5/86/3 7/36/3 -f 2/38/4 1/87/4 5/39/4 -f 4/41/1 3/88/1 1/42/1 -f 23/44/1 24/89/1 20/45/1 -f 24/47/2 22/90/2 17/48/2 -f 22/50/3 21/91/3 18/51/3 -f 21/53/4 23/92/4 19/54/4 -f 25/58/5 30/93/5 27/56/5 -f 27/56/5 31/94/5 28/57/5 -f 28/57/5 26/95/5 25/58/5 -f 32/61/5 36/96/5 34/59/5 -f 34/59/5 37/97/5 35/60/5 -f 35/60/5 33/98/5 32/61/5 -f 38/64/5 42/99/5 40/62/5 -f 40/62/5 43/100/5 41/63/5 -f 41/63/5 39/101/5 38/64/5 -f 44/67/5 48/102/5 46/65/5 -f 46/65/5 49/103/5 47/66/5 -f 47/66/5 45/104/5 44/67/5 -f 50/70/5 54/105/5 52/68/5 -f 52/68/5 55/106/5 53/69/5 -f 53/69/5 51/107/5 50/70/5 -f 56/73/5 60/108/5 58/71/5 -f 58/71/5 61/109/5 59/72/5 -f 59/72/5 57/110/5 56/73/5 -f 62/76/5 66/111/5 64/74/5 -f 64/74/5 67/112/5 65/75/5 -f 65/75/5 63/113/5 62/76/5 -f 68/79/5 72/114/5 70/77/5 -f 70/77/5 73/115/5 71/78/5 -f 71/78/5 69/116/5 68/79/5 +f 8/32/2 7/109/2 3/33/2 +f 6/35/3 5/110/3 7/36/3 +f 2/38/4 1/111/4 5/39/4 +f 4/41/1 3/112/1 1/42/1 +f 23/44/1 24/113/1 20/45/1 +f 24/47/2 22/114/2 17/48/2 +f 22/50/3 21/115/3 18/51/3 +f 21/53/4 23/116/4 19/54/4 +f 25/58/5 30/117/5 27/56/5 +f 27/56/5 31/118/5 28/57/5 +f 28/57/5 26/119/5 25/58/5 +f 32/61/5 36/120/5 34/59/5 +f 34/59/5 37/121/5 35/60/5 +f 35/60/5 33/122/5 32/61/5 +f 38/64/5 42/123/5 40/62/5 +f 40/62/5 43/124/5 41/63/5 +f 41/63/5 39/125/5 38/64/5 +f 44/67/5 48/126/5 46/65/5 +f 46/65/5 49/127/5 47/66/5 +f 47/66/5 45/128/5 44/67/5 +f 50/70/5 54/129/5 52/68/5 +f 52/68/5 55/130/5 53/69/5 +f 53/69/5 51/131/5 50/70/5 +f 56/73/5 60/132/5 58/71/5 +f 58/71/5 61/133/5 59/72/5 +f 59/72/5 57/134/5 56/73/5 +f 62/76/5 66/135/5 64/74/5 +f 64/74/5 67/136/5 65/75/5 +f 65/75/5 63/137/5 62/76/5 +f 68/79/5 72/138/5 70/77/5 +f 70/77/5 73/139/5 71/78/5 +f 71/78/5 69/140/5 68/79/5 +f 74/82/6 78/141/6 76/80/6 +f 76/80/6 79/142/6 77/81/6 +f 77/81/6 75/143/6 74/82/6 +f 80/85/6 84/144/6 82/83/6 +f 82/83/6 85/145/6 83/84/6 +f 83/84/6 81/146/6 80/85/6 +f 86/88/6 90/147/6 88/86/6 +f 88/86/6 91/148/6 89/87/6 +f 89/87/6 87/149/6 86/88/6 +f 92/91/6 96/150/6 94/89/6 +f 94/89/6 97/151/6 95/90/6 +f 95/90/6 93/152/6 92/91/6 +f 98/94/6 102/153/6 100/92/6 +f 100/92/6 103/154/6 101/93/6 +f 101/93/6 99/155/6 98/94/6 +f 104/97/6 108/156/6 106/95/6 +f 106/95/6 109/157/6 107/96/6 +f 107/96/6 105/158/6 104/97/6 +f 110/100/6 114/159/6 112/98/6 +f 112/98/6 115/160/6 113/99/6 +f 113/99/6 111/161/6 110/100/6 +f 116/103/6 120/162/6 118/101/6 +f 118/101/6 121/163/6 119/102/6 +f 119/102/6 117/164/6 116/103/6 l 27 29 o Piston v -0.062500 1.000000 0.062500 @@ -349,31 +477,31 @@ vn 0.0000 1.0000 0.0000 vn 0.0000 -1.0000 0.0000 usemtl None s off -f 75/117/7 82/118/7 83/119/7 -f 77/120/8 84/121/8 82/122/8 -f 81/123/9 85/124/9 84/125/9 -f 79/126/10 83/127/10 85/128/10 -f 78/129/9 88/130/9 80/131/9 -f 77/132/11 79/133/11 81/134/11 -f 74/135/12 82/136/12 76/137/12 -f 76/137/12 84/138/12 80/139/12 -f 80/139/12 85/140/12 78/141/12 -f 78/141/12 83/142/12 74/135/12 -f 88/143/12 87/144/12 86/145/12 -f 76/146/7 87/147/7 74/148/7 -f 74/149/10 89/150/10 78/151/10 -f 80/152/8 86/153/8 76/154/8 -f 75/117/7 77/155/7 82/118/7 -f 77/120/8 81/156/8 84/121/8 -f 81/123/9 79/157/9 85/124/9 -f 79/126/10 75/158/10 83/127/10 -f 78/129/9 89/159/9 88/130/9 -f 77/132/11 75/160/11 79/133/11 -f 74/135/12 83/142/12 82/136/12 -f 76/137/12 82/136/12 84/138/12 -f 80/139/12 84/138/12 85/140/12 -f 78/141/12 85/140/12 83/142/12 -f 88/143/12 89/161/12 87/144/12 -f 76/146/7 86/162/7 87/147/7 -f 74/149/10 87/163/10 89/150/10 -f 80/152/8 88/164/8 86/153/8 +f 123/165/7 130/166/7 131/167/7 +f 125/168/8 132/169/8 130/170/8 +f 129/171/9 133/172/9 132/173/9 +f 127/174/10 131/175/10 133/176/10 +f 126/177/9 136/178/9 128/179/9 +f 125/180/11 127/181/11 129/182/11 +f 122/183/12 130/184/12 124/185/12 +f 124/185/12 132/186/12 128/187/12 +f 128/187/12 133/188/12 126/189/12 +f 126/189/12 131/190/12 122/183/12 +f 136/191/12 135/192/12 134/193/12 +f 124/194/7 135/195/7 122/196/7 +f 122/197/10 137/198/10 126/199/10 +f 128/200/8 134/201/8 124/202/8 +f 123/165/7 125/203/7 130/166/7 +f 125/168/8 129/204/8 132/169/8 +f 129/171/9 127/205/9 133/172/9 +f 127/174/10 123/206/10 131/175/10 +f 126/177/9 137/207/9 136/178/9 +f 125/180/11 123/208/11 127/181/11 +f 122/183/12 131/190/12 130/184/12 +f 124/185/12 130/184/12 132/186/12 +f 128/187/12 132/186/12 133/188/12 +f 126/189/12 133/188/12 131/190/12 +f 136/191/12 137/209/12 135/192/12 +f 124/194/7 134/210/7 135/195/7 +f 122/197/10 135/211/10 137/198/10 +f 128/200/8 136/212/8 134/201/8 From 2ea60eae1374818c5e6fb2c719c7fc3cd0e722a4 Mon Sep 17 00:00:00 2001 From: Vaern Date: Mon, 15 May 2023 22:52:32 -0700 Subject: [PATCH 041/432] Fixes! --- .../java/com/hbm/blocks/machine/PistonInserter.java | 5 ++++- .../blocks/machine/pile/BlockGraphiteDrilledBase.java | 11 ++++++----- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/hbm/blocks/machine/PistonInserter.java b/src/main/java/com/hbm/blocks/machine/PistonInserter.java index b42828c0b..d0725186f 100644 --- a/src/main/java/com/hbm/blocks/machine/PistonInserter.java +++ b/src/main/java/com/hbm/blocks/machine/PistonInserter.java @@ -109,7 +109,8 @@ public class PistonInserter extends BlockContainerBase { @Override public boolean isSideSolid(IBlockAccess world, int x, int y, int z, ForgeDirection side) { - return world.getBlockMetadata(x, y, z) != side.ordinal(); + int meta = world.getBlockMetadata(x, y, z); + return meta != side.ordinal() && meta != side.getOpposite().ordinal(); } @Override @@ -274,6 +275,8 @@ public class PistonInserter extends BlockContainerBase { } } + //TODO: render AABB that extends out in direction of piston so it will render + /* BS inventory stuff */ @Override public int getSizeInventory() { return 1; } diff --git a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilledBase.java b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilledBase.java index 9d8b2fc8f..19adfb63e 100644 --- a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilledBase.java +++ b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilledBase.java @@ -177,6 +177,9 @@ public abstract class BlockGraphiteDrilledBase extends BlockFlammable implements int oldMeta = pureMeta | baseBlock.meta; //metablocks are kinda inconvenient to work with so Block oldBlock = baseBlock.block; NBTTagCompound oldTag = new NBTTagCompound(); //In case of TEs + oldTag.setInteger("x", x); //giving tags prevents issues and resets any lingering tes. + oldTag.setInteger("y", y); + oldTag.setInteger("z", z); //now actually make the change for(int i = 0; i <= 3; i++) { //yeah yeah we know it's safe but let's be *extra cautious* of infinite loops @@ -193,15 +196,13 @@ public abstract class BlockGraphiteDrilledBase extends BlockFlammable implements if(newBlock instanceof BlockGraphiteDrilledTE) { TileEntity te = world.getTileEntity(ix, iy, iz); te.writeToNBT(newTag); - newTag.setInteger("x", newTag.getInteger("x") + dir.offsetX); //malformed positions is very very bad and prevents the pile TEs from ticking - newTag.setInteger("y", newTag.getInteger("y") + dir.offsetY); - newTag.setInteger("z", newTag.getInteger("z") + dir.offsetZ); + newTag.setInteger("x", te.xCoord + dir.offsetX); //malformed positions is very very bad and prevents the pile TEs from ticking + newTag.setInteger("y", te.yCoord + dir.offsetY); + newTag.setInteger("z", te.zCoord + dir.offsetZ); } world.setBlock(ix, iy, iz, oldBlock, (oldMeta & ~0b100) | (newMeta & 0b100), 2); - //TODO: fix buggy interaction when a pu239 rod is inserted into another pu239 rod. the te doesn't disappear in time (even when invalidated) so the progress is 'duplicated' in the new rod. - //the fix might be to make an additional part after the oldTag is initalized, where the id + x,y,z are set, meaning that all other values will be set back to 0 and fixed. if(oldBlock instanceof BlockGraphiteDrilledTE && !oldTag.hasNoTags()) { //safety first TileEntity te = world.getTileEntity(ix, iy, iz); te.readFromNBT(oldTag); From 78cbce7a36af27039793d36e20450de85c585a96 Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 16 May 2023 11:21:30 +0200 Subject: [PATCH 042/432] some untested turret compat stuff --- .../turret/TileEntityTurretBaseNT.java | 26 +++++++- .../java/com/hbm/util/CompatExternal.java | 65 +++++++++++++++++++ 2 files changed, 88 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java index ef43786c1..b8217f1d3 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java @@ -3,6 +3,7 @@ package com.hbm.tileentity.turret; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.function.BiFunction; import com.hbm.blocks.BlockDummyable; import com.hbm.entity.logic.EntityBomber; @@ -10,6 +11,7 @@ import com.hbm.entity.missile.EntityMissileBaseAdvanced; import com.hbm.entity.missile.EntityMissileCustom; import com.hbm.entity.missile.EntitySiegeDropship; import com.hbm.entity.projectile.EntityBulletBase; +import com.hbm.entity.train.EntityRailCarBase; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; import com.hbm.handler.CasingEjector; @@ -24,6 +26,7 @@ import com.hbm.packet.PacketDispatcher; import com.hbm.particle.SpentCasing; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.CompatExternal; import api.hbm.energy.IEnergyUser; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; @@ -592,8 +595,20 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple if(e.isDead || !e.isEntityAlive()) return false; - + for(Class c : CompatExternal.turretTargetBlacklist) if(c.isAssignableFrom(e.getClass())) return false; + + for(Class c : CompatExternal.turretTargetCondition.keySet()) { + if(c.isAssignableFrom(e.getClass())) { + BiFunction lambda = CompatExternal.turretTargetCondition.get(c); + if(lambda != null) { + int result = lambda.apply(e, this); + if(result == -1) return false; + if(result == 1) return true; + } + } + } + List wl = getWhitelist(); if(wl != null) { @@ -613,6 +628,7 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple if(e instanceof IAnimals) return true; if(e instanceof INpc) return true; + for(Class c : CompatExternal.turretTargetFriendly) if(c.isAssignableFrom(e.getClass())) return true; } if(targetMobs) { @@ -621,6 +637,7 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple if(e instanceof EntityDragon) return false; if(e instanceof EntityDragonPart) return true; if(e instanceof IMob) return true; + for(Class c : CompatExternal.turretTargetHostile) if(c.isAssignableFrom(e.getClass())) return true; } if(targetMachines) { @@ -628,16 +645,19 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple if(e instanceof EntityMissileBaseAdvanced) return true; if(e instanceof EntityMissileCustom) return true; if(e instanceof EntityMinecart) return true; + if(e instanceof EntityRailCarBase) return true; if(e instanceof EntityBomber) return true; if(e instanceof EntitySiegeDropship) return true; + for(Class c : CompatExternal.turretTargetMachine) if(c.isAssignableFrom(e.getClass())) return true; } - if(targetPlayers && e instanceof EntityPlayer) { + if(targetPlayers ) { if(e instanceof FakePlayer) return false; - return true; + if(e instanceof EntityPlayer) return true; + for(Class c : CompatExternal.turretTargetPlayer) if(c.isAssignableFrom(e.getClass())) return true; } return false; diff --git a/src/main/java/com/hbm/util/CompatExternal.java b/src/main/java/com/hbm/util/CompatExternal.java index 00d1425ee..46f1fab61 100644 --- a/src/main/java/com/hbm/util/CompatExternal.java +++ b/src/main/java/com/hbm/util/CompatExternal.java @@ -1,15 +1,24 @@ package com.hbm.util; import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Set; +import java.util.function.BiFunction; import com.hbm.blocks.BlockDummyable; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.tileentity.machine.TileEntityDummy; +import com.hbm.tileentity.turret.TileEntityTurretSentry; import api.hbm.energy.IEnergyUser; import api.hbm.fluid.IFluidUser; import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.passive.EntityChicken; +import net.minecraft.entity.passive.EntityCow; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; @@ -125,4 +134,60 @@ public class CompatExternal { return list; } + + public static Set turretTargetPlayer = new HashSet(); + public static Set turretTargetFriendly = new HashSet(); + public static Set turretTargetHostile = new HashSet(); + public static Set turretTargetMachine = new HashSet(); + + /** + * Registers a class for turret targeting + * @param clazz is the class that should be targeted. + * @param type determines what setting the turret needs to have enabled to target this class. 0 is player, 1 is friendly, 2 is hostile and 3 is machine. + */ + public static void registerTurretTargetSimple(Class clazz, int type) { + + switch(type) { + case 0: turretTargetPlayer.add(clazz); break; + case 1: turretTargetFriendly.add(clazz); break; + case 2: turretTargetHostile.add(clazz); break; + case 3: turretTargetMachine.add(clazz); break; + } + } + + public static Set turretTargetBlacklist = new HashSet(); + + /** + * Registers a class to be fully ignored by turrets + * @param clazz is the class that should be ignored. + */ + public static void registerTurretTargetBlacklist(Class clazz) { + turretTargetBlacklist.add(clazz); + } + + public static HashMap> turretTargetCondition = new HashMap(); + + /** + * Registers a BiFunction lambda for more complex targeting compatibility + * @param clazz is the class that this rule should apply to + * @param bi is the lambda. The function should return 0 to continue with other targeting checks (i.e. do nothing), -1 to ignore this entity or 1 to target it. + * The params for this lambda are the entity and the turret in question. The type for the turret is omitted on purpose as to not require any reference of the tile entity + * class on the side of whoever is adding compat, allowing the compat class to be used entirely with reflection. + */ + public static void registerTurretTargetingCondition(Class clazz, BiFunction bi) { + turretTargetBlacklist.add(clazz); + } + + public static void compatExamples() { + // Makes all cows be targeted by turrets if player mode is active in addition to the existing rules. Applies to all entities that inherit EntityCow. + CompatExternal.registerTurretTargetSimple(EntityCow.class, 0); + // Makes all chickens ignored by turrets, also applies to entities that inherit EntityChicken like ducks. + CompatExternal.registerTurretTargetBlacklist(EntityChicken.class); + // An example for more complex turret behavior. Turrets will always target players named "Target Practice", and sentry turrets will never target players. + CompatExternal.registerTurretTargetingCondition(EntityPlayer.class, (entity, turret) -> { + if(entity.getCommandSenderName().equals("Target Practice")) return 1; + if(turret instanceof TileEntityTurretSentry) return -1; + return 0; + }); + } } From e6bb2233fa82b58ad577507deb0d0f3ba9e6e63a Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 16 May 2023 15:13:20 +0200 Subject: [PATCH 043/432] usable train GUI --- .../java/com/hbm/extprop/HbmPlayerProps.java | 13 ++++++++++ .../java/com/hbm/handler/HbmKeybinds.java | 3 +++ .../inventory/recipes/ChemplantRecipes.java | 6 ++--- src/main/java/com/hbm/main/ClientProxy.java | 1 + .../com/hbm/main/ModEventHandlerClient.java | 26 +++++++++++++++++++ src/main/resources/META-INF/HBM_at.cfg | 3 +++ 6 files changed, 49 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/hbm/extprop/HbmPlayerProps.java b/src/main/java/com/hbm/extprop/HbmPlayerProps.java index 23191641e..d6f173e61 100644 --- a/src/main/java/com/hbm/extprop/HbmPlayerProps.java +++ b/src/main/java/com/hbm/extprop/HbmPlayerProps.java @@ -1,8 +1,11 @@ package com.hbm.extprop; +import com.hbm.entity.train.EntityRailCarBase; import com.hbm.handler.HbmKeybinds.EnumKeybind; import com.hbm.main.MainRegistry; +import com.hbm.tileentity.IGUIProvider; +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; @@ -78,6 +81,16 @@ public class HbmPlayerProps implements IExtendedEntityProperties { else MainRegistry.proxy.displayTooltip(EnumChatFormatting.RED + "HUD OFF", MainRegistry.proxy.ID_HUD); } + + if(key == EnumKeybind.TRAIN) { + + if(!this.player.worldObj.isRemote) { + + if(player.ridingEntity != null && player.ridingEntity instanceof EntityRailCarBase && player.ridingEntity instanceof IGUIProvider) { + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, player.worldObj, player.ridingEntity.getEntityId(), 0, 0); + } + } + } } keysPressed[key.ordinal()] = pressed; diff --git a/src/main/java/com/hbm/handler/HbmKeybinds.java b/src/main/java/com/hbm/handler/HbmKeybinds.java index 19ae602f3..b07989f7f 100644 --- a/src/main/java/com/hbm/handler/HbmKeybinds.java +++ b/src/main/java/com/hbm/handler/HbmKeybinds.java @@ -23,6 +23,7 @@ public class HbmKeybinds { public static KeyBinding hudKey = new KeyBinding(category + ".toggleHUD", Keyboard.KEY_V, category); public static KeyBinding reloadKey = new KeyBinding(category + ".reload", Keyboard.KEY_R, category); public static KeyBinding dashKey = new KeyBinding(category + ".dash", Keyboard.KEY_F, category); + public static KeyBinding trainKey = new KeyBinding(category + ".trainInv", Keyboard.KEY_R, category); public static KeyBinding craneUpKey = new KeyBinding(category + ".craneMoveUp", Keyboard.KEY_UP, category); public static KeyBinding craneDownKey = new KeyBinding(category + ".craneMoveDown", Keyboard.KEY_DOWN, category); @@ -36,6 +37,7 @@ public class HbmKeybinds { ClientRegistry.registerKeyBinding(hudKey); ClientRegistry.registerKeyBinding(reloadKey); ClientRegistry.registerKeyBinding(dashKey); + ClientRegistry.registerKeyBinding(trainKey); ClientRegistry.registerKeyBinding(craneUpKey); ClientRegistry.registerKeyBinding(craneDownKey); @@ -69,6 +71,7 @@ public class HbmKeybinds { TOGGLE_HEAD, RELOAD, DASH, + TRAIN, CRANE_UP, CRANE_DOWN, CRANE_LEFT, diff --git a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java index 979ff7f1e..57bad806d 100644 --- a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java @@ -190,13 +190,13 @@ public class ChemplantRecipes extends SerializableRecipe { recipes.add(new ChemRecipe(55, "CONCRETE", 100) .inputItems( new ComparableStack(Blocks.gravel, 8), - new ComparableStack(Blocks.sand, 8)) + new OreDictStack(KEY_SAND, 8)) .inputFluids(new FluidStack(Fluids.WATER, 2000)) .outputItems(new ItemStack(ModBlocks.concrete_smooth, 16))); recipes.add(new ChemRecipe(56, "CONCRETE_ASBESTOS", 100) .inputItems( new ComparableStack(Blocks.gravel, 2), - new ComparableStack(Blocks.sand, 2), + new OreDictStack(KEY_SAND, 2), (GeneralConfig.enableLBSM && GeneralConfig.enableLBSMSimpleChemsitry) ? new OreDictStack(ASBESTOS.ingot(), 1) : new OreDictStack(ASBESTOS.ingot(), 4)) @@ -204,7 +204,7 @@ public class ChemplantRecipes extends SerializableRecipe { .outputItems(new ItemStack(ModBlocks.concrete_asbestos, 16))); recipes.add(new ChemRecipe(79, "DUCRETE", 150) .inputItems( - new ComparableStack(Blocks.sand, 8), + new OreDictStack(KEY_SAND, 8), new OreDictStack(U238.billet(), 2), new ComparableStack(Items.clay_ball, 4)) .inputFluids(new FluidStack(Fluids.WATER, 2000)) diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 64544cadb..e79faa9a0 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -1908,6 +1908,7 @@ public class ClientProxy extends ServerProxy { case TOGGLE_HEAD: return HbmKeybinds.hudKey.getIsKeyPressed(); case RELOAD: return HbmKeybinds.reloadKey.getIsKeyPressed(); case DASH: return HbmKeybinds.dashKey.getIsKeyPressed(); + case TRAIN: return HbmKeybinds.trainKey.getIsKeyPressed(); case CRANE_UP: return HbmKeybinds.craneUpKey.getIsKeyPressed(); case CRANE_DOWN: return HbmKeybinds.craneDownKey.getIsKeyPressed(); case CRANE_LEFT: return HbmKeybinds.craneLeftKey.getIsKeyPressed(); diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 2fd559dd2..3d88bed9c 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -95,6 +95,7 @@ import net.minecraft.block.Block; import net.minecraft.client.Minecraft; import net.minecraft.client.entity.AbstractClientPlayer; import net.minecraft.client.entity.EntityClientPlayerMP; +import net.minecraft.client.gui.GuiMainMenu; import net.minecraft.client.gui.ScaledResolution; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.client.multiplayer.WorldClient; @@ -124,6 +125,7 @@ import net.minecraft.world.WorldProviderSurface; import net.minecraftforge.client.GuiIngameForge; import net.minecraftforge.client.IRenderHandler; import net.minecraftforge.client.event.FOVUpdateEvent; +import net.minecraftforge.client.event.GuiOpenEvent; import net.minecraftforge.client.event.MouseEvent; import net.minecraftforge.client.event.RenderGameOverlayEvent; import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; @@ -1230,4 +1232,28 @@ public class ModEventHandlerClient { } } } + + @SubscribeEvent + public void onOpenGUI(GuiOpenEvent event) { + + if(event.gui instanceof GuiMainMenu) { + GuiMainMenu main = (GuiMainMenu) event.gui; + int rand = (int)(Math.random() * 150); + + switch(rand) { + case 0: main.splashText = "Floppenheimer!"; break; + case 1: main.splashText = "i should dip my balls in sulfuic acid"; break; + case 2: main.splashText = "All answers are popbob!"; break; + case 3: main.splashText = "None shall enter The Orb!"; break; + case 4: main.splashText = "Wacarb was here"; break; + case 5: main.splashText = "SpongeBoy me Bob I am overdosing on keramine agagagagaga"; break; + case 6: main.splashText = "I know where you live, " + System.getProperty("user.name"); break; + case 7: main.splashText = "Nice toes, now hand them over."; break; + case 8: main.splashText = "I smell burnt toast!"; break; + case 9: main.splashText = "There are bugs under your skin!"; break; + case 10: main.splashText = "Fentanyl!"; break; + case 11: main.splashText = "Do drugs!"; break; + } + } + } } diff --git a/src/main/resources/META-INF/HBM_at.cfg b/src/main/resources/META-INF/HBM_at.cfg index 5d2a92333..ab5149f2d 100644 --- a/src/main/resources/META-INF/HBM_at.cfg +++ b/src/main/resources/META-INF/HBM_at.cfg @@ -15,3 +15,6 @@ public net.minecraft.client.settings.KeyBinding field_74514_b # ha public net.minecraft.client.settings.KeyBinding field_151473_c # keybindSet public net.minecraft.client.settings.KeyBinding field_74513_e # pressed public net.minecraft.client.settings.KeyBinding field_151474_i # pressTime + +# GuiMainMenu +public net.minecraft.client.gui.GuiMainMenu field_73975_c # splashText From 5f27a78bcb844ebf4bce6f9876ce3ece951c0d5e Mon Sep 17 00:00:00 2001 From: Vaern Date: Tue, 16 May 2023 15:09:11 -0700 Subject: [PATCH 044/432] Fixed piston display, fixed critical issue, added comparator output still need fixes --- .../hbm/blocks/machine/PistonInserter.java | 8 +++- .../machine/pile/BlockGraphiteFuel.java | 12 ++++++ .../tileentity/RenderPistonInserter.java | 42 +++++++++++++++++-- .../machine/pile/TileEntityPileFuel.java | 20 +++++++-- 4 files changed, 73 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/hbm/blocks/machine/PistonInserter.java b/src/main/java/com/hbm/blocks/machine/PistonInserter.java index d0725186f..70defcb86 100644 --- a/src/main/java/com/hbm/blocks/machine/PistonInserter.java +++ b/src/main/java/com/hbm/blocks/machine/PistonInserter.java @@ -71,7 +71,7 @@ public class PistonInserter extends BlockContainerBase { if(!world.isRemote) { TileEntityPistonInserter piston = (TileEntityPistonInserter)world.getTileEntity(x, y, z); - if(piston.slot != null) { + if(piston.slot != null && piston.isRetracting) { ForgeDirection dir = ForgeDirection.getOrientation(piston.getBlockMetadata()); EntityItem dust = new EntityItem(world, x + 0.5D + dir.offsetX * 0.75D, y + 0.5D + dir.offsetY * 0.75D, z + 0.5D + dir.offsetZ * 0.75D, piston.slot); @@ -113,6 +113,8 @@ public class PistonInserter extends BlockContainerBase { return meta != side.ordinal() && meta != side.getOpposite().ordinal(); } + //TODO make item drop when block is broken + @Override public int getRenderType(){ return -1; @@ -252,6 +254,7 @@ public class PistonInserter extends BlockContainerBase { @Override public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); nbt.setInteger("extend", extend); nbt.setBoolean("retract", isRetracting); nbt.setBoolean("state", lastState); //saved so loading into a world doesn't cause issues @@ -264,10 +267,11 @@ public class PistonInserter extends BlockContainerBase { @Override public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); this.extend = nbt.getInteger("extend"); this.isRetracting = nbt.getBoolean("retract"); this.lastState = nbt.getBoolean("state"); - if(nbt.hasKey("stack")) { + if(nbt.hasKey("stack")) { //TODO double check that these work NBTTagCompound stack = nbt.getCompoundTag("stack"); this.slot = ItemStack.loadItemStackFromNBT(stack); } else { diff --git a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteFuel.java b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteFuel.java index 3a315e2cf..74281a5e3 100644 --- a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteFuel.java +++ b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteFuel.java @@ -17,6 +17,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ChatComponentText; import net.minecraft.util.ChatStyle; import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -34,6 +35,17 @@ public class BlockGraphiteFuel extends BlockGraphiteDrilledTE implements IToolab this.blockIconAluminum = iconRegister.registerIcon(RefStrings.MODID + ":block_graphite_fuel_aluminum"); } + @Override + public boolean hasComparatorInputOverride() { + return true; + } + + @Override + public int getComparatorInputOverride(World world, int x, int y, int z, int side) { //serverside? maybe + TileEntityPileFuel pile = (TileEntityPileFuel)world.getTileEntity(x, y, z); + return MathHelper.clamp_int((pile.progress * 16) / pile.maxProgress, 0, 15); //potentially wip + } + @Override public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) { diff --git a/src/main/java/com/hbm/render/tileentity/RenderPistonInserter.java b/src/main/java/com/hbm/render/tileentity/RenderPistonInserter.java index dc15763fe..e09129898 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderPistonInserter.java +++ b/src/main/java/com/hbm/render/tileentity/RenderPistonInserter.java @@ -6,11 +6,16 @@ import com.hbm.blocks.ModBlocks; import com.hbm.blocks.machine.PistonInserter.TileEntityPistonInserter; import com.hbm.main.ResourceManager; import com.hbm.render.item.ItemRenderBase; +import com.hbm.render.util.RenderDecoItem; +import net.minecraft.client.renderer.entity.RenderItem; +import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.entity.item.EntityItem; import net.minecraft.item.Item; +import net.minecraft.item.ItemBlock; +import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.MathHelper; import net.minecraftforge.client.IItemRenderer; public class RenderPistonInserter extends TileEntitySpecialRenderer implements IItemRendererProvider { @@ -25,10 +30,13 @@ public class RenderPistonInserter extends TileEntitySpecialRenderer implements I switch(tile.getBlockMetadata()) { case 0: GL11.glRotatef(180, 1F, 0F, 0F); break; case 1: break; - case 2: GL11.glRotatef(-90, 1F, 0F, 0F); break; - case 4: GL11.glRotatef(90, 0F, 0F, 1F); break; + case 2: GL11.glRotatef(-90, 1F, 0F, 0F); + GL11.glRotatef(180, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(90, 0F, 0F, 1F); + GL11.glRotatef(-90, 0F, 1F, 0F); break; case 3: GL11.glRotatef(90, 1F, 0F, 0F); break; - case 5: GL11.glRotatef(-90, 0F, 0F, 1F); break; + case 5: GL11.glRotatef(-90, 0F, 0F, 1F); + GL11.glRotatef(90, 0F, 1F, 0F); break; } GL11.glTranslated(0D, -0.5, 0D); @@ -40,6 +48,32 @@ public class RenderPistonInserter extends TileEntitySpecialRenderer implements I double e = (piston.lastExtend + (piston.renderExtend - piston.lastExtend) * interp) / (double) piston.maxExtend; GL11.glTranslated(0, e * 0.9375D, 0); ResourceManager.piston_inserter.renderPart("Piston"); + + RenderItem itemRenderer = new RenderDecoItem(this); + itemRenderer.setRenderManager(RenderManager.instance); + + if(piston.slot != null) { + ItemStack stack = piston.slot.copy(); + + EntityItem item = new EntityItem(null, 0.0D, 0.0D, 0.0D, stack); + item.getEntityItem().stackSize = 1; + item.hoverStart = 0.0F; + + if(stack.getItem() instanceof ItemBlock) { + GL11.glTranslated(0.0D, 1.125D, 0.0D); + } else { + GL11.glTranslated(0.0D, 1.0625D, 0.1D); + if(!RenderManager.instance.options.fancyGraphics) + GL11.glTranslated(0.0D, 0.01D, 0.0D); + + GL11.glRotated(90, -1, 0, 0); + } + + RenderItem.renderInFrame = true; + itemRenderer.doRender(item, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); + RenderItem.renderInFrame = false; + } + GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileFuel.java b/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileFuel.java index 869971e6f..7b00d14e2 100644 --- a/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileFuel.java +++ b/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileFuel.java @@ -9,6 +9,7 @@ import com.hbm.packet.PacketDispatcher; import api.hbm.block.IPileNeutronReceiver; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; public class TileEntityPileFuel extends TileEntityPileBase implements IPileNeutronReceiver { @@ -24,7 +25,7 @@ public class TileEntityPileFuel extends TileEntityPileBase implements IPileNeutr if(!worldObj.isRemote) { dissipateHeat(); - react(); + checkRedstone(react()); transmute(); if(this.heat >= this.maxHeat) { @@ -53,22 +54,35 @@ public class TileEntityPileFuel extends TileEntityPileBase implements IPileNeutr this.heat -= (this.getBlockMetadata() & 4) == 4 ? heat * 0.065 : heat * 0.05; //remove 5% of the stored heat per tick; 6.5% for windscale } - private void react() { + private int react() { int reaction = (int) (this.neutrons * (1D - ((double)this.heat / (double)this.maxHeat) * 0.5D)); //max heat reduces reaction by 50% due to thermal expansion this.lastNeutrons = this.neutrons; this.neutrons = 0; + int lastProgress = this.progress; + this.progress += reaction; if(reaction <= 0) - return; + return lastProgress; this.heat += reaction; for(int i = 0; i < 12; i++) this.castRay((int) Math.max(reaction * 0.25, 1), 5); + + return lastProgress; + } + + private void checkRedstone(int lastProgress) { + int lastLevel = MathHelper.clamp_int((lastProgress * 16) / maxProgress, 0, 15); + int newLevel = MathHelper.clamp_int((progress * 16) / maxProgress, 0, 15); + if(lastLevel != newLevel) //TODO TEST + System.out.println(lastLevel + ", " + newLevel + "; " + lastProgress + ", " + progress); + if(lastLevel != newLevel) //the block update doesn't seem to update the comparators... need to troubleshoot and fix + worldObj.scheduleBlockUpdate(this.xCoord, this.yCoord, this.zCoord, this.getBlockType(), 1); //TODO test } private void transmute() { From d871e46b9f689970021d1414b6809f15751f7d05 Mon Sep 17 00:00:00 2001 From: Vaern Date: Tue, 16 May 2023 19:58:15 -0700 Subject: [PATCH 045/432] Fixes o'plenty, nearing completion --- .../hbm/blocks/machine/PistonInserter.java | 19 ++++++++++++++++--- .../pile/BlockGraphiteDrilledBase.java | 4 +++- .../machine/pile/BlockGraphiteFuel.java | 10 +++++++--- .../machine/pile/TileEntityPileFuel.java | 8 +++----- 4 files changed, 29 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/hbm/blocks/machine/PistonInserter.java b/src/main/java/com/hbm/blocks/machine/PistonInserter.java index 70defcb86..8dd6114df 100644 --- a/src/main/java/com/hbm/blocks/machine/PistonInserter.java +++ b/src/main/java/com/hbm/blocks/machine/PistonInserter.java @@ -16,6 +16,7 @@ import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -179,7 +180,7 @@ public class PistonInserter extends BlockContainerBase { @SideOnly(Side.CLIENT) public double renderExtend; @SideOnly(Side.CLIENT) public double lastExtend; @SideOnly(Side.CLIENT) private int syncExtend; //what are these for? - @SideOnly(Side.CLIENT) private int turnProgress; //idk man, i can't find the convo bob had about them + @SideOnly(Side.CLIENT) private int turnProgress; public TileEntityPistonInserter() { } @@ -271,7 +272,7 @@ public class PistonInserter extends BlockContainerBase { this.extend = nbt.getInteger("extend"); this.isRetracting = nbt.getBoolean("retract"); this.lastState = nbt.getBoolean("state"); - if(nbt.hasKey("stack")) { //TODO double check that these work + if(nbt.hasKey("stack")) { NBTTagCompound stack = nbt.getCompoundTag("stack"); this.slot = ItemStack.loadItemStackFromNBT(stack); } else { @@ -279,7 +280,19 @@ public class PistonInserter extends BlockContainerBase { } } - //TODO: render AABB that extends out in direction of piston so it will render + @SideOnly(Side.CLIENT) + private AxisAlignedBB aabb; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(aabb != null) + return aabb; + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); + aabb = AxisAlignedBB.getBoundingBox(xCoord, yCoord, zCoord, xCoord + 1, yCoord + 1, zCoord + 1).addCoord(dir.offsetX, dir.offsetY, dir.offsetZ); + return aabb; + } /* BS inventory stuff */ diff --git a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilledBase.java b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilledBase.java index 19adfb63e..58ec7bce2 100644 --- a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilledBase.java +++ b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilledBase.java @@ -201,13 +201,15 @@ public abstract class BlockGraphiteDrilledBase extends BlockFlammable implements newTag.setInteger("z", te.zCoord + dir.offsetZ); } - world.setBlock(ix, iy, iz, oldBlock, (oldMeta & ~0b100) | (newMeta & 0b100), 2); + world.setBlock(ix, iy, iz, oldBlock, (oldMeta & ~0b100) | (newMeta & 0b100), 0); if(oldBlock instanceof BlockGraphiteDrilledTE && !oldTag.hasNoTags()) { //safety first TileEntity te = world.getTileEntity(ix, iy, iz); te.readFromNBT(oldTag); } + world.markAndNotifyBlock(ix, iy, iz, world.getChunkFromBlockCoords(ix, iz), newBlock, oldBlock, 3); //in case setBlock returns false due to = meta / block + oldMeta = newMeta; oldBlock = newBlock; oldTag = newTag; diff --git a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteFuel.java b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteFuel.java index 74281a5e3..cc98534da 100644 --- a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteFuel.java +++ b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteFuel.java @@ -24,8 +24,12 @@ import net.minecraftforge.common.util.ForgeDirection; public class BlockGraphiteFuel extends BlockGraphiteDrilledTE implements IToolable, IBlowable { @Override - public TileEntity createNewTileEntity(World world, int mets) { - return new TileEntityPileFuel(); + public TileEntity createNewTileEntity(World world, int meta) { + TileEntityPileFuel pile = new TileEntityPileFuel(); + if((meta & 8) != 0) + pile.progress = pile.maxProgress - 1000; // pu239 rods cringe :( + + return pile; } @Override @@ -41,7 +45,7 @@ public class BlockGraphiteFuel extends BlockGraphiteDrilledTE implements IToolab } @Override - public int getComparatorInputOverride(World world, int x, int y, int z, int side) { //serverside? maybe + public int getComparatorInputOverride(World world, int x, int y, int z, int side) { TileEntityPileFuel pile = (TileEntityPileFuel)world.getTileEntity(x, y, z); return MathHelper.clamp_int((pile.progress * 16) / pile.maxProgress, 0, 15); //potentially wip } diff --git a/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileFuel.java b/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileFuel.java index 7b00d14e2..15233ad0c 100644 --- a/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileFuel.java +++ b/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileFuel.java @@ -18,7 +18,7 @@ public class TileEntityPileFuel extends TileEntityPileBase implements IPileNeutr public int neutrons; public int lastNeutrons; public int progress; - public static final int maxProgress = GeneralConfig.enable528 ? 75000 : 50000; + public static final int maxProgress = GeneralConfig.enable528 ? 75000 : 50000; //might double to reduce compact setup's effectiveness @Override public void updateEntity() { @@ -79,10 +79,8 @@ public class TileEntityPileFuel extends TileEntityPileBase implements IPileNeutr private void checkRedstone(int lastProgress) { int lastLevel = MathHelper.clamp_int((lastProgress * 16) / maxProgress, 0, 15); int newLevel = MathHelper.clamp_int((progress * 16) / maxProgress, 0, 15); - if(lastLevel != newLevel) //TODO TEST - System.out.println(lastLevel + ", " + newLevel + "; " + lastProgress + ", " + progress); - if(lastLevel != newLevel) //the block update doesn't seem to update the comparators... need to troubleshoot and fix - worldObj.scheduleBlockUpdate(this.xCoord, this.yCoord, this.zCoord, this.getBlockType(), 1); //TODO test + if(lastLevel != newLevel) + worldObj.notifyBlocksOfNeighborChange(xCoord, yCoord, zCoord, this.getBlockType()); } private void transmute() { From c58b456adbaf4cf1f312d9353bb3cade7eadc57b Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 17 May 2023 14:13:56 +0200 Subject: [PATCH 046/432] electric train class --- .../entity/train/EntityRailCarElectric.java | 68 +++++++++++++++++++ .../entity/train/EntityRailCarRidable.java | 52 ++++++++++++++ .../com/hbm/entity/train/TrainCargoTram.java | 40 +++-------- 3 files changed, 130 insertions(+), 30 deletions(-) create mode 100644 src/main/java/com/hbm/entity/train/EntityRailCarElectric.java diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarElectric.java b/src/main/java/com/hbm/entity/train/EntityRailCarElectric.java new file mode 100644 index 000000000..4a6b0bdff --- /dev/null +++ b/src/main/java/com/hbm/entity/train/EntityRailCarElectric.java @@ -0,0 +1,68 @@ +package com.hbm.entity.train; + +import com.hbm.items.ModItems; + +import api.hbm.energy.IBatteryItem; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public abstract class EntityRailCarElectric extends EntityRailCarRidable { + + public EntityRailCarElectric(World world) { + super(world); + } + + public abstract int getMaxPower(); + public abstract int getPowerConsumption(); + + public boolean hasChargeSlot() { return false; } + public int getChargeSlot() { return 0; } + + @Override protected void entityInit() { + this.dataWatcher.addObject(3, new Integer(0)); + } + + @Override public boolean canAccelerate() { + return this.getPower() >= this.getPowerConsumption(); + } + + @Override public void consumeFuel() { + this.setPower(this.getPower() - this.getPowerConsumption()); + } + + public void setPower(int power) { + this.dataWatcher.updateObject(3, power); + } + + public int getPower() { + return this.dataWatcher.getWatchableObjectInt(3); + } + + @Override + public void onUpdate() { + super.onUpdate(); + + if(!worldObj.isRemote) { + + if(this.hasChargeSlot()) { + ItemStack stack = this.getStackInSlot(this.getChargeSlot()); + + if(stack != null && stack.getItem() instanceof IBatteryItem) { + IBatteryItem battery = (IBatteryItem) stack.getItem(); + int powerNeeded = this.getMaxPower() - this.getPower(); + long powerProvided = Math.min(battery.getDischargeRate(), battery.getCharge(stack)); + int powerTransfered = (int) Math.min(powerNeeded, powerProvided); + + if(powerTransfered > 0) { + battery.dischargeBattery(stack, powerTransfered); + this.setPower(this.getPower() + powerTransfered); + } + } else if(stack != null) { + if(stack.getItem() == ModItems.battery_creative || stack.getItem() == ModItems.fusion_core_infinite) { + this.setPower(this.getMaxPower()); + } + } + } + } + } +} diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java b/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java index 1725275b8..c7575c57a 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java @@ -13,6 +13,7 @@ import net.minecraft.world.World; public abstract class EntityRailCarRidable extends EntityRailCarCargo { + public double engineSpeed; public SeatDummyEntity[] passengerSeats; public EntityRailCarRidable(World world) { @@ -20,6 +21,57 @@ public abstract class EntityRailCarRidable extends EntityRailCarCargo { this.passengerSeats = new SeatDummyEntity[this.getPassengerSeats().length]; } + /** Returns the linear speed added per tick when using powered movement */ + public abstract double getPoweredAcceleration(); + /** A mulitplier used on the speed either is there is no player in the train or if the parking brake is active */ + public abstract double getPassivBrake(); + /** The parking brake can be toggled, assuming a player is present, otherwise it is implicitly ON */ + public abstract boolean shouldUseEngineBrake(EntityPlayer player); + /** The max speed the engine can provide in both directions */ + public abstract double getMaxPoweredSpeed(); + /** Whether the engine is turned on */ + public abstract boolean canAccelerate(); + /** Called every tick if acceleration is successful */ + public void consumeFuel() { } + + /** An additive to the engine's speed yielding the total speed, caused by uneven surfaces */ + public double getGravitySpeed() { + return 0D; + } + + @Override + public double getCurrentSpeed() { // in its current form, only call once per tick + + if(this.riddenByEntity instanceof EntityPlayer) { + + EntityPlayer player = (EntityPlayer) this.riddenByEntity; + + if(this.canAccelerate()) { + if(player.moveForward > 0) { + engineSpeed += this.getPoweredAcceleration(); + } else if(player.moveForward < 0) { + engineSpeed -= this.getPoweredAcceleration(); + } else { + if(this.shouldUseEngineBrake(player)) { + engineSpeed *= this.getPassivBrake(); + } + } + } else { + if(this.shouldUseEngineBrake(player)) { + engineSpeed *= this.getPassivBrake(); + } + } + + } else { + engineSpeed *= this.getPassivBrake(); + } + + double maxSpeed = this.getMaxPoweredSpeed(); + engineSpeed = MathHelper.clamp_double(engineSpeed, -maxSpeed, maxSpeed); + + return engineSpeed + this.getGravitySpeed(); + } + @Override public boolean interactFirst(EntityPlayer player) { diff --git a/src/main/java/com/hbm/entity/train/TrainCargoTram.java b/src/main/java/com/hbm/entity/train/TrainCargoTram.java index 5ae727de1..4f5a466a1 100644 --- a/src/main/java/com/hbm/entity/train/TrainCargoTram.java +++ b/src/main/java/com/hbm/entity/train/TrainCargoTram.java @@ -19,12 +19,11 @@ import net.minecraft.inventory.Container; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; import net.minecraft.util.DamageSource; -import net.minecraft.util.MathHelper; import net.minecraft.util.ResourceLocation; import net.minecraft.util.Vec3; import net.minecraft.world.World; -public class TrainCargoTram extends EntityRailCarRidable implements IGUIProvider { +public class TrainCargoTram extends EntityRailCarElectric implements IGUIProvider { /* * @@ -43,35 +42,11 @@ public class TrainCargoTram extends EntityRailCarRidable implements IGUIProvider super(world); this.setSize(5F, 2F); } - - public double speed = 0; - public static final double maxSpeed = 0.5; - public static final double acceleration = 0.01; - public static final double deceleration = 0.95; - @Override - public double getCurrentSpeed() { // in its current form, only call once per tick - - if(this.riddenByEntity instanceof EntityPlayer) { - - EntityPlayer player = (EntityPlayer) this.riddenByEntity; - - if(player.moveForward > 0) { - speed += acceleration; - } else if(player.moveForward < 0) { - speed -= acceleration; - } else { - speed *= deceleration; - } - - } else { - speed *= deceleration; - } - - speed = MathHelper.clamp_double(speed, -maxSpeed, maxSpeed); - - return speed; - } + @Override public double getPoweredAcceleration() { return 0.01; } + @Override public double getPassivBrake() { return 0.95; } + @Override public boolean shouldUseEngineBrake(EntityPlayer player) { return Math.abs(this.engineSpeed) < 0.1; } + @Override public double getMaxPoweredSpeed() { return 0.5; } @Override public TrackGauge getGauge() { return TrackGauge.STANDARD; } @Override public double getLengthSpan() { return 1.5; } @@ -80,6 +55,11 @@ public class TrainCargoTram extends EntityRailCarRidable implements IGUIProvider @Override public int getSizeInventory() { return 29; } @Override public String getInventoryName() { return this.hasCustomInventoryName() ? this.getEntityName() : "container.trainTram"; } + @Override public int getMaxPower() { return this.getPowerConsumption() * 100; } + @Override public int getPowerConsumption() { return 50; } + @Override public boolean hasChargeSlot() { return true; } + @Override public int getChargeSlot() { return 28; } + @Override public DummyConfig[] getDummies() { return new DummyConfig[] { From b68b83e2e28a21ed0c99a97e621e97030da806e9 Mon Sep 17 00:00:00 2001 From: Vaern Date: Wed, 17 May 2023 07:47:32 -0700 Subject: [PATCH 047/432] Finishing touches i mean i think that's everything? --- .../hbm/blocks/machine/PistonInserter.java | 41 ++++++++++++++++++- .../java/com/hbm/main/CraftingManager.java | 3 +- src/main/resources/assets/hbm/lang/en_US.lang | 1 + 3 files changed, 43 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/hbm/blocks/machine/PistonInserter.java b/src/main/java/com/hbm/blocks/machine/PistonInserter.java index 8dd6114df..91e3e25b1 100644 --- a/src/main/java/com/hbm/blocks/machine/PistonInserter.java +++ b/src/main/java/com/hbm/blocks/machine/PistonInserter.java @@ -114,7 +114,46 @@ public class PistonInserter extends BlockContainerBase { return meta != side.ordinal() && meta != side.getOpposite().ordinal(); } - //TODO make item drop when block is broken + @Override + public void breakBlock(World world, int x, int y, int z, Block block, int meta) { + IInventory tileentityfurnace = (IInventory) world.getTileEntity(x, y, z); + + if(tileentityfurnace != null) { + + ItemStack itemstack = tileentityfurnace.getStackInSlot(0); + + if(itemstack != null) { + float f = world.rand.nextFloat() * 0.8F + 0.1F; + float f1 = world.rand.nextFloat() * 0.8F + 0.1F; + float f2 = world.rand.nextFloat() * 0.8F + 0.1F; + + while(itemstack.stackSize > 0) { + int j1 = world.rand.nextInt(21) + 10; + + if(j1 > itemstack.stackSize) { + j1 = itemstack.stackSize; + } + + itemstack.stackSize -= j1; + EntityItem entityitem = new EntityItem(world, x + f, y + f1, z + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); + + if(itemstack.hasTagCompound()) { + entityitem.getEntityItem().setTagCompound((NBTTagCompound) itemstack.getTagCompound().copy()); + } + + float f3 = 0.05F; + entityitem.motionX = (float) world.rand.nextGaussian() * f3; + entityitem.motionY = (float) world.rand.nextGaussian() * f3 + 0.2F; + entityitem.motionZ = (float) world.rand.nextGaussian() * f3; + world.spawnEntityInWorld(entityitem); + } + } + + world.func_147453_f(x, y, z, block); + } + + super.breakBlock(world, x, y, z, block, meta); + } @Override public int getRenderType(){ diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index baadb5428..77f0c09fa 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -308,7 +308,8 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.furnace_iron), new Object[] { "III", "IFI", "BBB", 'I', IRON.ingot(), 'F', Blocks.furnace, 'B', Blocks.stonebrick }); addRecipeAuto(new ItemStack(ModBlocks.machine_mixer), new Object[] { "PIP", "GCG", "PMP", 'P', STEEL.plate(), 'I', DURA.ingot(), 'G', KEY_ANYPANE, 'C', ModItems.circuit_copper, 'M', ModItems.motor }); addRecipeAuto(new ItemStack(ModBlocks.fan), new Object[] { "BPB", "PRP", "BPB", 'B', ModItems.bolt_tungsten, 'P', IRON.plate(), 'R', REDSTONE.dust() }); - + addRecipeAuto(new ItemStack(ModBlocks.piston_inserter), new Object[] { "ITI", "TPT", "ITI", 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_PNEUMATIC), 'I', IRON.plate(), 'T', ModItems.bolt_tungsten }); + addRecipeAuto(new ItemStack(ModBlocks.muffler, 1), new Object[] { "III", "IWI", "III", 'I', ModItems.plate_polymer, 'W', Blocks.wool }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.factory_titanium_hull), 8), new Object[] { "PIP", "I I", "PIP", 'P', TI.plate(), 'I', TI.ingot() }); diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index e2b518d48..5af3a39a9 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -4462,6 +4462,7 @@ tile.deco_beryllium.name=Beryllium Deco Block tile.deco_computer.ibm_300pl.name=IBM Personal Computer 300PL tile.deco_emitter.name=Deco Light Emitter tile.part_emitter.name=Deco Particle Emitter +tile.piston_inserter.name=Inserter tile.deco_lead.name=Lead Deco Block tile.deco_rbmk.name=RBMK Deco Block tile.deco_rbmk_smooth.name=Smooth RBMK Deco Block From 9ce84ac921f9a7b8e3c60cee210712b7bb81b742 Mon Sep 17 00:00:00 2001 From: Vaern Date: Wed, 17 May 2023 07:58:43 -0700 Subject: [PATCH 048/432] whooooops --- .../com/hbm/tileentity/machine/pile/TileEntityPileSource.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileSource.java b/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileSource.java index 0c164657f..c297f9dfb 100644 --- a/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileSource.java +++ b/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileSource.java @@ -11,7 +11,7 @@ public class TileEntityPileSource extends TileEntityPileBase { int n = this.getBlockType() == ModBlocks.block_graphite_source ? 1 : 2; - for(int i = 0; i < 12 * 5; i++) { + for(int i = 0; i < 12; i++) { this.castRay(n, 5); } } From 830f0e5162726cb733ff7b4214c6f85ca527e137 Mon Sep 17 00:00:00 2001 From: Bob Date: Thu, 18 May 2023 22:05:22 +0200 Subject: [PATCH 049/432] fixed trains nor consuming fuel, some model stuff --- .../pile/BlockGraphiteDrilledBase.java | 1 + .../entity/train/EntityRailCarRidable.java | 8 +- .../com/hbm/entity/train/TrainCargoTram.java | 18 +- src/main/resources/assets/hbm/lang/de_DE.lang | 2 + src/main/resources/assets/hbm/lang/en_US.lang | 2 + .../assets/hbm/models/weapons/coilgun.obj | 6170 +++++++++++++++++ .../assets/hbm/models/weapons/cryo_cannon.obj | 3733 ++++++++++ 7 files changed, 9930 insertions(+), 4 deletions(-) create mode 100644 src/main/resources/assets/hbm/models/weapons/coilgun.obj create mode 100644 src/main/resources/assets/hbm/models/weapons/cryo_cannon.obj diff --git a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilledBase.java b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilledBase.java index 58ec7bce2..00b520a54 100644 --- a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilledBase.java +++ b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilledBase.java @@ -133,6 +133,7 @@ public abstract class BlockGraphiteDrilledBase extends BlockFlammable implements if(item == ModItems.pile_rod_lithium) return new MetaBlock(ModBlocks.block_graphite_lithium); if(item == ModItems.cell_tritium) return new MetaBlock(ModBlocks.block_graphite_tritium); if(item == ModItems.pile_rod_detector) return new MetaBlock(ModBlocks.block_graphite_detector); + if(item == ModItems.ingot_graphite) return new MetaBlock(ModBlocks.block_graphite); return null; } diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java b/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java index c7575c57a..f49a95c45 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java @@ -49,17 +49,19 @@ public abstract class EntityRailCarRidable extends EntityRailCarCargo { if(this.canAccelerate()) { if(player.moveForward > 0) { engineSpeed += this.getPoweredAcceleration(); + this.consumeFuel(); } else if(player.moveForward < 0) { engineSpeed -= this.getPoweredAcceleration(); + this.consumeFuel(); } else { if(this.shouldUseEngineBrake(player)) { engineSpeed *= this.getPassivBrake(); + } else { + this.consumeFuel(); } } } else { - if(this.shouldUseEngineBrake(player)) { - engineSpeed *= this.getPassivBrake(); - } + engineSpeed *= this.getPassivBrake(); } } else { diff --git a/src/main/java/com/hbm/entity/train/TrainCargoTram.java b/src/main/java/com/hbm/entity/train/TrainCargoTram.java index 4f5a466a1..8e5d7990f 100644 --- a/src/main/java/com/hbm/entity/train/TrainCargoTram.java +++ b/src/main/java/com/hbm/entity/train/TrainCargoTram.java @@ -1,5 +1,7 @@ package com.hbm.entity.train; +import java.util.Arrays; + import org.lwjgl.opengl.GL11; import com.hbm.blocks.rail.IRailNTM.TrackGauge; @@ -19,6 +21,7 @@ import net.minecraft.inventory.Container; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; import net.minecraft.util.DamageSource; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.ResourceLocation; import net.minecraft.util.Vec3; import net.minecraft.world.World; @@ -56,7 +59,7 @@ public class TrainCargoTram extends EntityRailCarElectric implements IGUIProvide @Override public String getInventoryName() { return this.hasCustomInventoryName() ? this.getEntityName() : "container.trainTram"; } @Override public int getMaxPower() { return this.getPowerConsumption() * 100; } - @Override public int getPowerConsumption() { return 50; } + @Override public int getPowerConsumption() { return 10; } @Override public boolean hasChargeSlot() { return true; } @Override public int getChargeSlot() { return 28; } @@ -180,6 +183,12 @@ public class TrainCargoTram extends EntityRailCarElectric implements IGUIProvide this.ySize = 204; } + @Override + public void drawScreen(int x, int y, float interp) { + super.drawScreen(x, y, interp); + this.drawElectricityInfo(this, x, y, guiLeft + 152, guiTop + 18, 16, 52, train.getPower(), train.getMaxPower()); + } + @Override protected void drawGuiContainerForegroundLayer(int i, int j) { String name = this.train.hasCustomInventoryName() ? this.train.getInventoryName() : I18n.format(this.train.getInventoryName()); @@ -192,6 +201,13 @@ public class TrainCargoTram extends EntityRailCarElectric implements IGUIProvide GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + int i = train.getPower() * 53 / train.getMaxPower(); + drawTexturedModalRect(guiLeft + 152, guiTop + 70 - i, 176, 52 - i, 16, i); + + if(train.getPower() > train.getPowerConsumption()) { + drawTexturedModalRect(guiLeft + 156, guiTop + 4, 176, 52, 9, 12); + } } } } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index ad9fb7d74..1bc1639b7 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -397,6 +397,7 @@ container.soyuzLauncher=Soyuz-Startplatform container.storageDrum=Atommüll-Lagertrommel container.teleLinker=TelLink-Gerät container.teleporter=Teleporter +container.trainTram=Elektrischer Flachwagen container.turbinegas=Kombizyklus-Gasturbine container.turretArty=Greg container.turretChekhov=Tschechows Gewehr @@ -3156,6 +3157,7 @@ item.titanium_plate.name=Titanbrustpanzer item.titanium_shovel.name=Titanschaufel item.titanium_sword.name=Titanschwert item.toothpicks.name=Zahnstocher +item.train.cargo_tram.name=Elektrischer Flachwagen item.trinitite.name=Trinitit item.tritium_deuterium_cake.name=Tritium-Deuterium-Kuchen item.tsar_core.name=Fusionskern diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 5af3a39a9..994b22798 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -690,6 +690,7 @@ container.soyuzLauncher=Soyuz Launch Platform container.storageDrum=Nuclear Waste Disposal Drum container.teleLinker=TelLink Device container.teleporter=Teleporter +container.trainTram=Electric Flat Bed Tram container.turbinegas=Combined Cycle Gas Turbine container.turretArty=Greg container.turretChekhov=Chekhov's Gun @@ -3941,6 +3942,7 @@ item.titanium_plate.name=Titanium Chestplate item.titanium_shovel.name=Titanium Shovel item.titanium_sword.name=Titanium Sword item.toothpicks.name=Toothpicks +item.train.cargo_tram.name=Electric Flat Bed Tram item.trinitite.name=Trinitite item.tritium_deuterium_cake.name=Tritium-Deuterium-Cake item.tritium_deuterium_cake.desc=Not actual cake, but great$universal fusion fuel! diff --git a/src/main/resources/assets/hbm/models/weapons/coilgun.obj b/src/main/resources/assets/hbm/models/weapons/coilgun.obj new file mode 100644 index 000000000..2bf0c74b4 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/coilgun.obj @@ -0,0 +1,6170 @@ +# Blender v2.79 (sub 0) OBJ File: 'coilgun.blend' +# www.blender.org +o Coils_Cylinder.012 +v -0.463562 0.524760 -0.428106 +v -0.237813 0.524760 -0.428106 +v -0.237813 0.222044 -0.302716 +v -0.463562 0.222044 -0.302716 +v -0.237813 0.096655 0.000000 +v -0.463562 0.096655 0.000000 +v -0.237813 0.222044 0.302716 +v -0.463562 0.222044 0.302716 +v -0.237813 0.524760 0.428106 +v -0.463562 0.524760 0.428106 +v -0.237813 0.827477 0.302716 +v -0.463562 0.827477 0.302716 +v -0.237813 0.952866 0.000000 +v -0.463562 0.952866 0.000000 +v -0.237813 0.827477 -0.302716 +v -0.463562 0.827477 -0.302716 +v -0.170088 0.524760 -0.428106 +v 0.055660 0.524760 -0.428106 +v 0.055660 0.222044 -0.302716 +v -0.170088 0.222044 -0.302716 +v 0.055660 0.096655 0.000000 +v -0.170088 0.096655 0.000000 +v 0.055660 0.222044 0.302716 +v -0.170088 0.222044 0.302716 +v 0.055660 0.524760 0.428106 +v -0.170088 0.524760 0.428106 +v 0.055660 0.827477 0.302716 +v -0.170088 0.827477 0.302716 +v 0.055660 0.952866 0.000000 +v -0.170088 0.952866 0.000000 +v 0.055660 0.827477 -0.302716 +v -0.170088 0.827477 -0.302716 +v 0.123385 0.524760 -0.428106 +v 0.349134 0.524760 -0.428106 +v 0.349134 0.222044 -0.302716 +v 0.123385 0.222044 -0.302716 +v 0.349134 0.096655 0.000000 +v 0.123385 0.096655 0.000000 +v 0.349134 0.222044 0.302716 +v 0.123385 0.222044 0.302716 +v 0.349134 0.524760 0.428106 +v 0.123385 0.524760 0.428106 +v 0.349134 0.827477 0.302716 +v 0.123385 0.827477 0.302716 +v 0.349134 0.952866 0.000000 +v 0.123385 0.952866 0.000000 +v 0.349134 0.827477 -0.302716 +v 0.123385 0.827477 -0.302716 +v 0.416858 0.524760 -0.428106 +v 0.642607 0.524760 -0.428106 +v 0.642607 0.222044 -0.302716 +v 0.416858 0.222044 -0.302716 +v 0.642607 0.096655 0.000000 +v 0.416858 0.096655 0.000000 +v 0.642607 0.222044 0.302716 +v 0.416858 0.222044 0.302716 +v 0.642607 0.524760 0.428106 +v 0.416858 0.524760 0.428106 +v 0.642607 0.827477 0.302716 +v 0.416858 0.827477 0.302716 +v 0.642607 0.952866 0.000000 +v 0.416858 0.952866 0.000000 +v 0.642607 0.827477 -0.302716 +v 0.416858 0.827477 -0.302716 +v 0.710331 0.524760 -0.428106 +v 0.936080 0.524760 -0.428106 +v 0.936080 0.222044 -0.302716 +v 0.710331 0.222044 -0.302716 +v 0.936080 0.096655 0.000000 +v 0.710331 0.096655 0.000000 +v 0.936080 0.222044 0.302716 +v 0.710331 0.222044 0.302716 +v 0.936080 0.524760 0.428106 +v 0.710331 0.524760 0.428106 +v 0.936080 0.827477 0.302716 +v 0.710331 0.827477 0.302716 +v 0.936080 0.952866 0.000000 +v 0.710331 0.952866 0.000000 +v 0.936080 0.827477 -0.302716 +v 0.710331 0.827477 -0.302716 +vt 1.000000 0.500000 +vt 1.000000 1.000000 +vt 0.875000 1.000000 +vt 0.875000 0.500000 +vt 0.750000 1.000000 +vt 0.750000 0.500000 +vt 0.625000 1.000000 +vt 0.625000 0.500000 +vt 0.500000 1.000000 +vt 0.500000 0.500000 +vt 0.375000 1.000000 +vt 0.375000 0.500000 +vt 0.250000 1.000000 +vt 0.250000 0.500000 +vt 0.419706 0.419706 +vt 0.250000 0.490000 +vt 0.080294 0.419706 +vt 0.010000 0.250000 +vt 0.080294 0.080294 +vt 0.250000 0.010000 +vt 0.419706 0.080294 +vt 0.490000 0.250000 +vt 0.125000 1.000000 +vt 0.125000 0.500000 +vt 0.000000 1.000000 +vt 0.000000 0.500000 +vt 0.750000 0.490000 +vt 0.919706 0.419706 +vt 0.990000 0.250000 +vt 0.919706 0.080294 +vt 0.750000 0.010000 +vt 0.580294 0.080294 +vt 0.510000 0.250000 +vt 0.580294 0.419706 +vt 1.000000 0.500000 +vt 1.000000 1.000000 +vt 0.875000 1.000000 +vt 0.875000 0.500000 +vt 0.750000 1.000000 +vt 0.750000 0.500000 +vt 0.625000 1.000000 +vt 0.625000 0.500000 +vt 0.500000 1.000000 +vt 0.500000 0.500000 +vt 0.375000 1.000000 +vt 0.375000 0.500000 +vt 0.250000 1.000000 +vt 0.250000 0.500000 +vt 0.419706 0.419706 +vt 0.250000 0.490000 +vt 0.080294 0.419706 +vt 0.010000 0.250000 +vt 0.080294 0.080294 +vt 0.250000 0.010000 +vt 0.419706 0.080294 +vt 0.490000 0.250000 +vt 0.125000 1.000000 +vt 0.125000 0.500000 +vt 0.000000 1.000000 +vt 0.000000 0.500000 +vt 0.750000 0.490000 +vt 0.919706 0.419706 +vt 0.990000 0.250000 +vt 0.919706 0.080294 +vt 0.750000 0.010000 +vt 0.580294 0.080294 +vt 0.510000 0.250000 +vt 0.580294 0.419706 +vt 1.000000 0.500000 +vt 1.000000 1.000000 +vt 0.875000 1.000000 +vt 0.875000 0.500000 +vt 0.750000 1.000000 +vt 0.750000 0.500000 +vt 0.625000 1.000000 +vt 0.625000 0.500000 +vt 0.500000 1.000000 +vt 0.500000 0.500000 +vt 0.375000 1.000000 +vt 0.375000 0.500000 +vt 0.250000 1.000000 +vt 0.250000 0.500000 +vt 0.419706 0.419706 +vt 0.250000 0.490000 +vt 0.080294 0.419706 +vt 0.010000 0.250000 +vt 0.080294 0.080294 +vt 0.250000 0.010000 +vt 0.419706 0.080294 +vt 0.490000 0.250000 +vt 0.125000 1.000000 +vt 0.125000 0.500000 +vt 0.000000 1.000000 +vt 0.000000 0.500000 +vt 0.750000 0.490000 +vt 0.919706 0.419706 +vt 0.990000 0.250000 +vt 0.919706 0.080294 +vt 0.750000 0.010000 +vt 0.580294 0.080294 +vt 0.510000 0.250000 +vt 0.580294 0.419706 +vt 1.000000 0.500000 +vt 1.000000 1.000000 +vt 0.875000 1.000000 +vt 0.875000 0.500000 +vt 0.750000 1.000000 +vt 0.750000 0.500000 +vt 0.625000 1.000000 +vt 0.625000 0.500000 +vt 0.500000 1.000000 +vt 0.500000 0.500000 +vt 0.375000 1.000000 +vt 0.375000 0.500000 +vt 0.250000 1.000000 +vt 0.250000 0.500000 +vt 0.419706 0.419706 +vt 0.250000 0.490000 +vt 0.080294 0.419706 +vt 0.010000 0.250000 +vt 0.080294 0.080294 +vt 0.250000 0.010000 +vt 0.419706 0.080294 +vt 0.490000 0.250000 +vt 0.125000 1.000000 +vt 0.125000 0.500000 +vt 0.000000 1.000000 +vt 0.000000 0.500000 +vt 0.750000 0.490000 +vt 0.919706 0.419706 +vt 0.990000 0.250000 +vt 0.919706 0.080294 +vt 0.750000 0.010000 +vt 0.580294 0.080294 +vt 0.510000 0.250000 +vt 0.580294 0.419706 +vt 1.000000 0.500000 +vt 1.000000 1.000000 +vt 0.875000 1.000000 +vt 0.875000 0.500000 +vt 0.750000 1.000000 +vt 0.750000 0.500000 +vt 0.625000 1.000000 +vt 0.625000 0.500000 +vt 0.500000 1.000000 +vt 0.500000 0.500000 +vt 0.375000 1.000000 +vt 0.375000 0.500000 +vt 0.250000 1.000000 +vt 0.250000 0.500000 +vt 0.419706 0.419706 +vt 0.250000 0.490000 +vt 0.080294 0.419706 +vt 0.010000 0.250000 +vt 0.080294 0.080294 +vt 0.250000 0.010000 +vt 0.419706 0.080294 +vt 0.490000 0.250000 +vt 0.125000 1.000000 +vt 0.125000 0.500000 +vt 0.000000 1.000000 +vt 0.000000 0.500000 +vt 0.750000 0.490000 +vt 0.919706 0.419706 +vt 0.990000 0.250000 +vt 0.919706 0.080294 +vt 0.750000 0.010000 +vt 0.580294 0.080294 +vt 0.510000 0.250000 +vt 0.580294 0.419706 +vn 0.0000 -0.3827 -0.9239 +vn 0.0000 -0.9239 -0.3827 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 -0.3827 0.9239 +vn 0.0000 0.3827 0.9239 +vn 0.0000 0.9239 0.3827 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.9239 -0.3827 +vn 0.0000 0.3827 -0.9239 +vn -1.0000 0.0000 0.0000 +s 1 +f 1/1/1 2/2/1 3/3/1 4/4/1 +f 4/4/2 3/3/2 5/5/2 6/6/2 +f 6/6/3 5/5/3 7/7/3 8/8/3 +f 8/8/4 7/7/4 9/9/4 10/10/4 +f 10/10/5 9/9/5 11/11/5 12/12/5 +f 12/12/6 11/11/6 13/13/6 14/14/6 +f 3/15/7 2/16/7 15/17/7 13/18/7 11/19/7 9/20/7 7/21/7 5/22/7 +f 14/14/8 13/13/8 15/23/8 16/24/8 +f 16/24/9 15/23/9 2/25/9 1/26/9 +f 1/27/10 4/28/10 6/29/10 8/30/10 10/31/10 12/32/10 14/33/10 16/34/10 +f 17/35/1 18/36/1 19/37/1 20/38/1 +f 20/38/2 19/37/2 21/39/2 22/40/2 +f 22/40/3 21/39/3 23/41/3 24/42/3 +f 24/42/4 23/41/4 25/43/4 26/44/4 +f 26/44/5 25/43/5 27/45/5 28/46/5 +f 28/46/6 27/45/6 29/47/6 30/48/6 +f 19/49/7 18/50/7 31/51/7 29/52/7 27/53/7 25/54/7 23/55/7 21/56/7 +f 30/48/8 29/47/8 31/57/8 32/58/8 +f 32/58/9 31/57/9 18/59/9 17/60/9 +f 17/61/10 20/62/10 22/63/10 24/64/10 26/65/10 28/66/10 30/67/10 32/68/10 +f 33/69/1 34/70/1 35/71/1 36/72/1 +f 36/72/2 35/71/2 37/73/2 38/74/2 +f 38/74/3 37/73/3 39/75/3 40/76/3 +f 40/76/4 39/75/4 41/77/4 42/78/4 +f 42/78/5 41/77/5 43/79/5 44/80/5 +f 44/80/6 43/79/6 45/81/6 46/82/6 +f 35/83/7 34/84/7 47/85/7 45/86/7 43/87/7 41/88/7 39/89/7 37/90/7 +f 46/82/8 45/81/8 47/91/8 48/92/8 +f 48/92/9 47/91/9 34/93/9 33/94/9 +f 33/95/10 36/96/10 38/97/10 40/98/10 42/99/10 44/100/10 46/101/10 48/102/10 +f 49/103/1 50/104/1 51/105/1 52/106/1 +f 52/106/2 51/105/2 53/107/2 54/108/2 +f 54/108/3 53/107/3 55/109/3 56/110/3 +f 56/110/4 55/109/4 57/111/4 58/112/4 +f 58/112/5 57/111/5 59/113/5 60/114/5 +f 60/114/6 59/113/6 61/115/6 62/116/6 +f 51/117/7 50/118/7 63/119/7 61/120/7 59/121/7 57/122/7 55/123/7 53/124/7 +f 62/116/8 61/115/8 63/125/8 64/126/8 +f 64/126/9 63/125/9 50/127/9 49/128/9 +f 49/129/10 52/130/10 54/131/10 56/132/10 58/133/10 60/134/10 62/135/10 64/136/10 +f 65/137/1 66/138/1 67/139/1 68/140/1 +f 68/140/2 67/139/2 69/141/2 70/142/2 +f 70/142/3 69/141/3 71/143/3 72/144/3 +f 72/144/4 71/143/4 73/145/4 74/146/4 +f 74/146/5 73/145/5 75/147/5 76/148/5 +f 76/148/6 75/147/6 77/149/6 78/150/6 +f 67/151/7 66/152/7 79/153/7 77/154/7 75/155/7 73/156/7 71/157/7 69/158/7 +f 78/150/8 77/149/8 79/159/8 80/160/8 +f 80/160/9 79/159/9 66/161/9 65/162/9 +f 65/163/10 68/164/10 70/165/10 72/166/10 74/167/10 76/168/10 78/169/10 80/170/10 +o Tech_thingy_Cylinder.011 +v -1.457017 0.997796 0.139627 +v -1.457017 1.110929 0.189700 +v -1.405270 1.098405 0.216824 +v -1.405270 0.985272 0.166751 +v -1.405270 1.073357 0.271072 +v -1.405270 0.960224 0.220999 +v -1.457017 1.060833 0.298196 +v -1.457017 0.947700 0.248123 +v -1.508763 1.073357 0.271072 +v -1.508763 0.960224 0.220999 +v -1.508763 1.098405 0.216824 +v -1.508763 0.985272 0.166751 +v -1.322476 0.997796 0.139627 +v -1.322476 1.110929 0.189700 +v -1.270730 1.098405 0.216824 +v -1.270730 0.985272 0.166751 +v -1.270730 1.073357 0.271072 +v -1.270730 0.960224 0.220999 +v -1.322476 1.060833 0.298196 +v -1.322476 0.947700 0.248123 +v -1.374223 1.073357 0.271072 +v -1.374223 0.960224 0.220999 +v -1.374223 1.098405 0.216824 +v -1.374223 0.985272 0.166751 +v -1.187935 0.997796 0.139627 +v -1.187935 1.110929 0.189700 +v -1.136189 1.098405 0.216824 +v -1.136189 0.985272 0.166751 +v -1.136189 1.073357 0.271072 +v -1.136189 0.960224 0.220999 +v -1.187935 1.060833 0.298196 +v -1.187935 0.947700 0.248123 +v -1.239682 1.073357 0.271072 +v -1.239682 0.960224 0.220999 +v -1.239682 1.098405 0.216824 +v -1.239682 0.985272 0.166751 +v -1.551588 0.824089 0.270719 +v -1.551588 0.906574 0.321562 +v -1.551588 1.018668 0.066710 +v -1.551588 0.936183 0.015867 +v -1.097206 1.018668 0.066710 +v -1.097206 0.936183 0.015867 +v -1.097206 0.906574 0.321562 +v -1.097206 0.824089 0.270719 +v -1.521210 0.950031 0.320343 +v -1.521210 1.047137 0.099566 +v -1.127583 1.047137 0.099566 +v -1.127583 0.950031 0.320343 +v -1.457017 0.997796 -0.139627 +v -1.405271 0.985272 -0.166751 +v -1.405271 1.098405 -0.216824 +v -1.457017 1.110929 -0.189700 +v -1.405271 0.960224 -0.220999 +v -1.405271 1.073357 -0.271072 +v -1.457017 0.947700 -0.248123 +v -1.457017 1.060833 -0.298196 +v -1.508764 0.960224 -0.220999 +v -1.508764 1.073357 -0.271072 +v -1.508764 1.098405 -0.216824 +v -1.508764 0.985272 -0.166751 +v -1.322476 0.997796 -0.139627 +v -1.270730 0.985272 -0.166751 +v -1.270730 1.098405 -0.216824 +v -1.322476 1.110929 -0.189700 +v -1.270730 0.960224 -0.220999 +v -1.270730 1.073357 -0.271072 +v -1.322476 0.947700 -0.248123 +v -1.322476 1.060833 -0.298196 +v -1.374223 0.960224 -0.220999 +v -1.374223 1.073357 -0.271072 +v -1.374223 1.098405 -0.216824 +v -1.374223 0.985272 -0.166751 +v -1.187936 0.997796 -0.139627 +v -1.136189 0.985272 -0.166751 +v -1.136189 1.098405 -0.216824 +v -1.187936 1.110929 -0.189700 +v -1.136189 0.960224 -0.220999 +v -1.136189 1.073357 -0.271072 +v -1.187936 0.947700 -0.248123 +v -1.187936 1.060833 -0.298196 +v -1.239682 0.960224 -0.220999 +v -1.239682 1.073357 -0.271072 +v -1.239682 1.098405 -0.216824 +v -1.239682 0.985272 -0.166751 +v -1.551588 0.824089 -0.270719 +v -1.551588 0.936183 -0.015867 +v -1.551588 1.018668 -0.066710 +v -1.551588 0.906574 -0.321562 +v -1.097206 0.936183 -0.015867 +v -1.097206 1.018668 -0.066710 +v -1.097206 0.824089 -0.270719 +v -1.097206 0.906574 -0.321562 +v -1.521211 1.047137 -0.099566 +v -1.521211 0.950031 -0.320343 +v -1.127584 1.047137 -0.099566 +v -1.127584 0.950031 -0.320343 +vt 1.000000 0.500000 +vt 1.000000 1.000000 +vt 0.833333 1.000000 +vt 0.833333 0.500000 +vt 0.666667 1.000000 +vt 0.666667 0.500000 +vt 0.500000 1.000000 +vt 0.500000 0.500000 +vt 0.333333 1.000000 +vt 0.333333 0.500000 +vt 0.457846 0.370000 +vt 0.250000 0.490000 +vt 0.042154 0.370000 +vt 0.042154 0.130000 +vt 0.250000 0.010000 +vt 0.457846 0.130000 +vt 0.166667 1.000000 +vt 0.166667 0.500000 +vt -0.000000 1.000000 +vt -0.000000 0.500000 +vt 0.750000 0.490000 +vt 0.957846 0.370000 +vt 0.957846 0.130000 +vt 0.750000 0.010000 +vt 0.542154 0.130000 +vt 0.542154 0.370000 +vt 1.000000 0.500000 +vt 1.000000 1.000000 +vt 0.833333 1.000000 +vt 0.833333 0.500000 +vt 0.666667 1.000000 +vt 0.666667 0.500000 +vt 0.500000 1.000000 +vt 0.500000 0.500000 +vt 0.333333 1.000000 +vt 0.333333 0.500000 +vt 0.457846 0.370000 +vt 0.250000 0.490000 +vt 0.042154 0.370000 +vt 0.042154 0.130000 +vt 0.250000 0.010000 +vt 0.457846 0.130000 +vt 0.166667 1.000000 +vt 0.166667 0.500000 +vt -0.000000 1.000000 +vt -0.000000 0.500000 +vt 0.750000 0.490000 +vt 0.957846 0.370000 +vt 0.957846 0.130000 +vt 0.750000 0.010000 +vt 0.542154 0.130000 +vt 0.542154 0.370000 +vt 1.000000 0.500000 +vt 1.000000 1.000000 +vt 0.833333 1.000000 +vt 0.833333 0.500000 +vt 0.666667 1.000000 +vt 0.666667 0.500000 +vt 0.500000 1.000000 +vt 0.500000 0.500000 +vt 0.333333 1.000000 +vt 0.333333 0.500000 +vt 0.457846 0.370000 +vt 0.250000 0.490000 +vt 0.042154 0.370000 +vt 0.042154 0.130000 +vt 0.250000 0.010000 +vt 0.457846 0.130000 +vt 0.166667 1.000000 +vt 0.166667 0.500000 +vt -0.000000 1.000000 +vt -0.000000 0.500000 +vt 0.750000 0.490000 +vt 0.957846 0.370000 +vt 0.957846 0.130000 +vt 0.750000 0.010000 +vt 0.542154 0.130000 +vt 0.542154 0.370000 +vt 0.375000 0.000000 +vt 0.625000 0.000000 +vt 0.625000 0.250000 +vt 0.375000 0.250000 +vt 0.625000 0.500000 +vt 0.375000 0.500000 +vt 0.625000 0.750000 +vt 0.375000 0.750000 +vt 0.625000 1.000000 +vt 0.375000 1.000000 +vt 0.125000 0.500000 +vt 0.125000 0.750000 +vt 0.625000 0.000000 +vt 0.625000 0.250000 +vt 0.625000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 1.000000 +vt 1.000000 0.500000 +vt 0.833333 0.500000 +vt 0.833333 1.000000 +vt 1.000000 1.000000 +vt 0.666667 0.500000 +vt 0.666667 1.000000 +vt 0.500000 0.500000 +vt 0.500000 1.000000 +vt 0.333333 0.500000 +vt 0.333333 1.000000 +vt 0.457846 0.370000 +vt 0.457846 0.130000 +vt 0.250000 0.010000 +vt 0.042154 0.130000 +vt 0.042154 0.370000 +vt 0.250000 0.490000 +vt 0.166667 0.500000 +vt 0.166667 1.000000 +vt -0.000000 0.500000 +vt -0.000000 1.000000 +vt 0.750000 0.490000 +vt 0.542154 0.370000 +vt 0.542154 0.130000 +vt 0.750000 0.010000 +vt 0.957846 0.130000 +vt 0.957846 0.370000 +vt 1.000000 0.500000 +vt 0.833333 0.500000 +vt 0.833333 1.000000 +vt 1.000000 1.000000 +vt 0.666667 0.500000 +vt 0.666667 1.000000 +vt 0.500000 0.500000 +vt 0.500000 1.000000 +vt 0.333333 0.500000 +vt 0.333333 1.000000 +vt 0.457846 0.370000 +vt 0.457846 0.130000 +vt 0.250000 0.010000 +vt 0.042154 0.130000 +vt 0.042154 0.370000 +vt 0.250000 0.490000 +vt 0.166667 0.500000 +vt 0.166667 1.000000 +vt -0.000000 0.500000 +vt -0.000000 1.000000 +vt 0.750000 0.490000 +vt 0.542154 0.370000 +vt 0.542154 0.130000 +vt 0.750000 0.010000 +vt 0.957846 0.130000 +vt 0.957846 0.370000 +vt 1.000000 0.500000 +vt 0.833333 0.500000 +vt 0.833333 1.000000 +vt 1.000000 1.000000 +vt 0.666667 0.500000 +vt 0.666667 1.000000 +vt 0.500000 0.500000 +vt 0.500000 1.000000 +vt 0.333333 0.500000 +vt 0.333333 1.000000 +vt 0.457846 0.370000 +vt 0.457846 0.130000 +vt 0.250000 0.010000 +vt 0.042154 0.130000 +vt 0.042154 0.370000 +vt 0.250000 0.490000 +vt 0.166667 0.500000 +vt 0.166667 1.000000 +vt -0.000000 0.500000 +vt -0.000000 1.000000 +vt 0.750000 0.490000 +vt 0.542154 0.370000 +vt 0.542154 0.130000 +vt 0.750000 0.010000 +vt 0.957846 0.130000 +vt 0.957846 0.370000 +vt 0.375000 0.000000 +vt 0.375000 0.250000 +vt 0.625000 0.250000 +vt 0.625000 0.000000 +vt 0.375000 0.500000 +vt 0.625000 0.500000 +vt 0.375000 0.750000 +vt 0.625000 0.750000 +vt 0.375000 1.000000 +vt 0.625000 1.000000 +vt 0.125000 0.500000 +vt 0.125000 0.750000 +vt 0.625000 0.250000 +vt 0.625000 0.000000 +vt 0.625000 0.500000 +vt 0.625000 0.750000 +vt 0.875000 0.750000 +vt 0.875000 0.500000 +vt 0.625000 1.000000 +vn 0.4999 0.3505 -0.7920 +vn 1.0000 -0.0000 0.0000 +vn 0.4999 -0.3505 0.7920 +vn -0.5000 -0.3505 0.7919 +vn 0.0000 0.9079 0.4192 +vn -1.0000 0.0000 0.0000 +vn -0.5000 0.3505 -0.7919 +vn 0.0000 -0.9079 -0.4192 +vn 0.5000 0.3505 -0.7919 +vn 0.5000 -0.3505 0.7919 +vn -0.4999 -0.3505 0.7920 +vn -0.4999 0.3505 -0.7920 +vn 0.0000 0.5247 -0.8513 +vn 0.0000 -0.5247 0.8513 +vn 0.0000 -0.9154 -0.4026 +vn -0.7911 0.5599 0.2463 +vn 0.0000 0.9154 0.4026 +vn 0.0000 0.0280 0.9996 +vn 0.0000 0.7558 -0.6548 +vn 0.7911 0.5599 0.2463 +vn 0.5000 0.3505 0.7919 +vn 0.5000 -0.3505 -0.7919 +vn -0.4999 -0.3505 -0.7920 +vn 0.0000 0.9079 -0.4192 +vn -0.4999 0.3505 0.7920 +vn 0.0000 -0.9079 0.4192 +vn 0.4999 0.3505 0.7920 +vn 0.4999 -0.3505 -0.7920 +vn -0.5000 -0.3505 -0.7919 +vn -0.5000 0.3505 0.7919 +vn 0.0000 0.5247 0.8513 +vn 0.0000 -0.5247 -0.8513 +vn 0.0000 -0.9154 0.4026 +vn -0.7911 0.5599 -0.2463 +vn 0.0000 0.9154 -0.4026 +vn 0.0000 0.0280 -0.9996 +vn 0.0000 0.7558 0.6548 +vn 0.7911 0.5599 -0.2463 +s 1 +f 81/171/11 82/172/11 83/173/11 84/174/11 +f 84/174/12 83/173/12 85/175/12 86/176/12 +f 86/176/13 85/175/13 87/177/13 88/178/13 +f 88/178/14 87/177/14 89/179/14 90/180/14 +f 83/181/15 82/182/15 91/183/15 89/184/15 87/185/15 85/186/15 +f 90/180/16 89/179/16 91/187/16 92/188/16 +f 92/188/17 91/187/17 82/189/17 81/190/17 +f 81/191/18 84/192/18 86/193/18 88/194/18 90/195/18 92/196/18 +f 93/197/19 94/198/19 95/199/19 96/200/19 +f 96/200/12 95/199/12 97/201/12 98/202/12 +f 98/202/20 97/201/20 99/203/20 100/204/20 +f 100/204/21 99/203/21 101/205/21 102/206/21 +f 95/207/15 94/208/15 103/209/15 101/210/15 99/211/15 97/212/15 +f 102/206/16 101/205/16 103/213/16 104/214/16 +f 104/214/22 103/213/22 94/215/22 93/216/22 +f 93/217/18 96/218/18 98/219/18 100/220/18 102/221/18 104/222/18 +f 105/223/19 106/224/19 107/225/19 108/226/19 +f 108/226/12 107/225/12 109/227/12 110/228/12 +f 110/228/20 109/227/20 111/229/20 112/230/20 +f 112/230/21 111/229/21 113/231/21 114/232/21 +f 107/233/15 106/234/15 115/235/15 113/236/15 111/237/15 109/238/15 +f 114/232/16 113/231/16 115/239/16 116/240/16 +f 116/240/22 115/239/22 106/241/22 105/242/22 +f 105/243/18 108/244/18 110/245/18 112/246/18 114/247/18 116/248/18 +f 117/249/16 118/250/16 119/251/16 120/252/16 +f 120/252/23 119/251/23 121/253/23 122/254/23 +f 122/254/12 121/253/12 123/255/12 124/256/12 +f 124/256/24 123/255/24 118/257/24 117/258/24 +f 120/259/25 122/254/25 124/256/25 117/260/25 +f 119/251/26 118/250/26 125/261/26 126/262/26 +f 127/263/27 126/264/27 125/265/27 128/266/27 +f 118/257/28 123/255/28 128/266/28 125/267/28 +f 121/253/29 119/251/29 126/262/29 127/263/29 +f 123/255/30 121/253/30 127/263/30 128/266/30 +f 129/268/31 130/269/31 131/270/31 132/271/31 +f 130/269/12 133/272/12 134/273/12 131/270/12 +f 133/272/32 135/274/32 136/275/32 134/273/32 +f 135/274/33 137/276/33 138/277/33 136/275/33 +f 131/278/34 134/279/34 136/280/34 138/281/34 139/282/34 132/283/34 +f 137/276/16 140/284/16 139/285/16 138/277/16 +f 140/284/35 129/286/35 132/287/35 139/285/35 +f 129/288/36 140/289/36 137/290/36 135/291/36 133/292/36 130/293/36 +f 141/294/31 142/295/31 143/296/31 144/297/31 +f 142/295/12 145/298/12 146/299/12 143/296/12 +f 145/298/32 147/300/32 148/301/32 146/299/32 +f 147/300/33 149/302/33 150/303/33 148/301/33 +f 143/304/34 146/305/34 148/306/34 150/307/34 151/308/34 144/309/34 +f 149/302/16 152/310/16 151/311/16 150/303/16 +f 152/310/35 141/312/35 144/313/35 151/311/35 +f 141/314/36 152/315/36 149/316/36 147/317/36 145/318/36 142/319/36 +f 153/320/37 154/321/37 155/322/37 156/323/37 +f 154/321/12 157/324/12 158/325/12 155/322/12 +f 157/324/38 159/326/38 160/327/38 158/325/38 +f 159/326/39 161/328/39 162/329/39 160/327/39 +f 155/330/34 158/331/34 160/332/34 162/333/34 163/334/34 156/335/34 +f 161/328/16 164/336/16 163/337/16 162/329/16 +f 164/336/40 153/338/40 156/339/40 163/337/40 +f 153/340/36 164/341/36 161/342/36 159/343/36 157/344/36 154/345/36 +f 165/346/16 166/347/16 167/348/16 168/349/16 +f 166/347/41 169/350/41 170/351/41 167/348/41 +f 169/350/12 171/352/12 172/353/12 170/351/12 +f 171/352/42 165/354/42 168/355/42 172/353/42 +f 166/356/43 165/357/43 171/352/43 169/350/43 +f 167/348/44 173/358/44 174/359/44 168/349/44 +f 175/360/45 176/361/45 174/362/45 173/363/45 +f 168/355/46 174/364/46 176/361/46 172/353/46 +f 170/351/47 175/360/47 173/358/47 167/348/47 +f 172/353/48 176/361/48 175/360/48 170/351/48 +o SideThingy_Cube.009 +v -1.552216 0.766425 0.449060 +v -1.552216 0.766425 0.324053 +v -1.613245 0.699098 0.324053 +v -1.613245 0.699098 0.449060 +v -1.552216 0.456014 0.324053 +v -1.052377 0.766425 0.324053 +v -1.052377 0.456014 0.324053 +v -1.052377 0.766425 0.449060 +v -1.048308 0.766425 0.449060 +v -1.048308 0.766425 0.324053 +v -1.052377 0.456014 0.449060 +v -1.552216 0.456014 0.449060 +v -1.048308 0.456014 0.324053 +v -1.041527 0.788142 0.315308 +v -1.041527 0.434297 0.315308 +v -1.048308 0.456014 0.449060 +v -1.041527 0.788142 0.457806 +v -1.041527 0.434297 0.457806 +v -0.900483 0.434297 0.457806 +v -0.900483 0.788142 0.457806 +v -0.900483 0.788142 0.315308 +v -0.896414 0.768510 0.449899 +v -0.896414 0.768510 0.323214 +v -0.900483 0.434297 0.315308 +v -0.896414 0.453929 0.449899 +v -0.817755 0.457256 0.449106 +v -0.817755 0.767895 0.449106 +v -0.896414 0.453929 0.323214 +v -0.817755 0.457256 0.324007 +v -0.817755 0.767895 0.324007 +v -1.613245 0.523341 0.449060 +v -1.613245 0.523341 0.324053 +v -1.552216 0.766425 -0.449060 +v -1.613245 0.699098 -0.449060 +v -1.613245 0.699098 -0.324053 +v -1.552216 0.766425 -0.324053 +v -1.552216 0.456014 -0.324053 +v -1.052377 0.456014 -0.324053 +v -1.052377 0.766425 -0.324053 +v -1.048308 0.766425 -0.324053 +v -1.048308 0.766425 -0.449060 +v -1.052377 0.766425 -0.449060 +v -1.052377 0.456014 -0.449060 +v -1.552216 0.456014 -0.449060 +v -1.048308 0.456014 -0.324053 +v -1.041528 0.434297 -0.315308 +v -1.041528 0.788142 -0.315308 +v -1.048308 0.456014 -0.449060 +v -1.041528 0.788142 -0.457806 +v -0.900483 0.788142 -0.457806 +v -0.900483 0.434297 -0.457806 +v -1.041528 0.434297 -0.457806 +v -0.900483 0.788142 -0.315308 +v -0.896414 0.768510 -0.323214 +v -0.896414 0.768510 -0.449899 +v -0.900483 0.434297 -0.315308 +v -0.817755 0.767895 -0.449106 +v -0.817755 0.457256 -0.449106 +v -0.896414 0.453929 -0.449899 +v -0.896414 0.453929 -0.323214 +v -0.817755 0.457256 -0.324007 +v -0.817755 0.767895 -0.324007 +v -1.613245 0.523341 -0.449060 +v -1.613245 0.523341 -0.324053 +vt 0.875000 0.750000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.750000 +vt 0.375000 0.250000 +vt 0.625000 0.250000 +vt 0.625000 0.500000 +vt 0.375000 0.500000 +vt 0.625000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 0.500000 +vt 0.375000 0.750000 +vt 0.625000 1.000000 +vt 0.375000 1.000000 +vt 0.125000 0.500000 +vt 0.125000 0.750000 +vt 0.375000 0.500000 +vt 0.625000 0.500000 +vt 0.375000 0.500000 +vt 0.375000 0.750000 +vt 0.625000 0.750000 +vt 0.375000 0.750000 +vt 0.375000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 0.500000 +vt 0.625000 0.750000 +vt 0.625000 0.500000 +vt 0.375000 0.500000 +vt 0.375000 0.750000 +vt 0.375000 0.750000 +vt 0.625000 0.750000 +vt 0.375000 0.500000 +vt 0.375000 0.500000 +vt 0.625000 0.500000 +vt 0.375000 0.000000 +vt 0.625000 0.000000 +vt 0.625000 0.250000 +vt 0.375000 0.250000 +vt 0.125000 0.750000 +vt 0.125000 0.500000 +vt 0.625000 1.000000 +vt 0.375000 1.000000 +vt 0.875000 0.750000 +vt 0.875000 0.750000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.375000 0.250000 +vt 0.375000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.250000 +vt 0.625000 0.500000 +vt 0.625000 0.750000 +vt 0.625000 0.750000 +vt 0.375000 0.750000 +vt 0.375000 1.000000 +vt 0.625000 1.000000 +vt 0.125000 0.500000 +vt 0.125000 0.750000 +vt 0.375000 0.500000 +vt 0.375000 0.500000 +vt 0.625000 0.500000 +vt 0.375000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 0.750000 +vt 0.375000 0.750000 +vt 0.375000 0.750000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.750000 +vt 0.375000 0.500000 +vt 0.625000 0.750000 +vt 0.375000 0.750000 +vt 0.375000 0.750000 +vt 0.375000 0.500000 +vt 0.375000 0.500000 +vt 0.625000 0.500000 +vt 0.375000 0.000000 +vt 0.375000 0.250000 +vt 0.625000 0.250000 +vt 0.625000 0.000000 +vt 0.125000 0.500000 +vt 0.125000 0.750000 +vt 0.375000 1.000000 +vt 0.625000 1.000000 +vn -0.7409 0.6716 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 -0.0000 +vn -0.7903 0.0000 -0.6128 +vn -0.7903 0.0000 0.6127 +vn -0.9545 -0.2981 -0.0000 +vn -0.9545 0.2981 0.0000 +vn 0.9792 0.2030 0.0000 +vn 0.0101 0.0000 0.9999 +vn 0.8891 0.0000 -0.4576 +vn 0.8892 0.0000 0.4576 +vn 0.9792 -0.2030 -0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0423 -0.9991 -0.0000 +vn 0.0078 1.0000 0.0000 +vn 0.0101 0.0000 -0.9999 +vn -1.0000 0.0000 0.0000 +vn -0.7409 -0.6716 0.0000 +vn -0.7903 0.0000 -0.6127 +vn -0.9546 -0.2980 -0.0000 +vn -0.9546 0.2980 0.0000 +vn 0.8891 0.0000 0.4576 +vn 0.8892 0.0000 -0.4576 +s 1 +f 177/365/49 178/366/49 179/367/49 180/368/49 +f 181/369/50 178/370/50 182/371/50 183/372/50 +f 182/371/51 184/373/51 185/374/51 186/375/51 +f 187/376/52 184/373/52 177/377/52 188/378/52 +f 181/379/53 183/372/53 187/376/53 188/380/53 +f 182/371/51 178/366/51 177/365/51 184/373/51 +f 189/381/54 186/375/54 190/382/54 191/383/54 +f 183/372/50 182/371/50 186/375/50 189/381/50 +f 184/373/52 187/376/52 192/384/52 185/374/52 +f 187/376/53 183/372/53 189/381/53 192/384/53 +f 193/385/52 194/386/52 195/387/52 196/388/52 +f 185/374/55 192/384/55 194/386/55 193/385/55 +f 192/384/56 189/381/56 191/383/56 194/386/56 +f 186/375/57 185/374/57 193/385/57 190/382/57 +f 197/389/58 196/388/58 198/390/58 199/391/58 +f 194/386/53 191/383/53 200/392/53 195/387/53 +f 190/382/51 193/385/51 196/388/51 197/389/51 +f 191/383/50 190/382/50 197/389/50 200/392/50 +f 198/390/59 201/393/59 202/394/59 203/395/59 +f 200/392/60 197/389/60 199/391/60 204/396/60 +f 196/388/61 195/387/61 201/393/61 198/390/61 +f 195/387/62 200/392/62 204/396/62 201/393/62 +f 205/397/63 206/398/63 203/395/63 202/394/63 +f 201/393/64 204/396/64 205/397/64 202/394/64 +f 199/391/65 198/390/65 203/395/65 206/398/65 +f 204/396/66 199/391/66 206/398/66 205/397/66 +f 207/399/67 180/400/67 179/401/67 208/402/67 +f 181/379/68 188/380/68 207/403/68 208/404/68 +f 178/370/50 181/369/50 208/402/50 179/401/50 +f 188/378/52 177/377/52 180/405/52 207/406/52 +f 209/407/49 210/408/49 211/409/49 212/410/49 +f 213/411/52 214/412/52 215/413/52 212/414/52 +f 215/413/51 216/415/51 217/416/51 218/417/51 +f 219/418/50 220/419/50 209/420/50 218/417/50 +f 213/421/53 220/422/53 219/418/53 214/412/53 +f 215/413/51 218/417/51 209/407/51 212/410/51 +f 221/423/55 222/424/55 223/425/55 216/415/55 +f 214/412/52 221/423/52 216/415/52 215/413/52 +f 218/417/50 217/416/50 224/426/50 219/418/50 +f 219/418/53 224/426/53 221/423/53 214/412/53 +f 225/427/50 226/428/50 227/429/50 228/430/50 +f 217/416/69 225/427/69 228/430/69 224/426/69 +f 224/426/70 228/430/70 222/424/70 221/423/70 +f 216/415/71 223/425/71 225/427/71 217/416/71 +f 229/431/58 230/432/58 231/433/58 226/428/58 +f 228/430/53 227/429/53 232/434/53 222/424/53 +f 223/425/51 229/431/51 226/428/51 225/427/51 +f 222/424/52 232/434/52 229/431/52 223/425/52 +f 231/433/66 233/435/66 234/436/66 235/437/66 +f 232/434/72 236/438/72 230/432/72 229/431/72 +f 226/428/73 231/433/73 235/437/73 227/429/73 +f 227/429/62 235/437/62 236/438/62 232/434/62 +f 237/439/63 234/436/63 233/435/63 238/440/63 +f 235/437/64 234/436/64 237/439/64 236/438/64 +f 230/432/65 238/440/65 233/435/65 231/433/65 +f 236/438/59 237/439/59 238/440/59 230/432/59 +f 239/441/67 240/442/67 211/443/67 210/444/67 +f 213/421/68 240/445/68 239/446/68 220/422/68 +f 212/414/52 211/443/52 240/442/52 213/411/52 +f 220/419/50 239/447/50 210/448/50 209/420/50 +o AmmoVice_Cylinder.010 +v -2.170566 0.644712 -0.108739 +v -2.102717 0.644712 -0.108739 +v -2.102717 0.567822 -0.076890 +v -2.170566 0.567822 -0.076890 +v -2.102717 0.535974 0.000000 +v -2.170566 0.535974 0.000000 +v -2.102717 0.567822 0.076890 +v -2.170566 0.567822 0.076890 +v -2.102717 0.644712 0.108739 +v -2.170566 0.644712 0.108739 +v -2.102717 0.721602 0.076890 +v -2.170566 0.721602 0.076890 +v -2.102717 0.753451 0.000000 +v -2.170566 0.753451 0.000000 +v -2.102717 0.721602 -0.076890 +v -2.170566 0.721602 -0.076890 +v -2.209619 0.644712 0.088337 +v -2.209619 0.582248 0.062464 +v -2.209619 0.644712 -0.088337 +v -2.209619 0.582248 -0.062464 +v -2.209619 0.556375 0.000000 +v -2.209619 0.707176 0.062464 +v -2.209619 0.733049 0.000000 +v -2.209619 0.707176 -0.062464 +vt 1.000000 0.500000 +vt 1.000000 1.000000 +vt 0.875000 1.000000 +vt 0.875000 0.500000 +vt 0.750000 1.000000 +vt 0.750000 0.500000 +vt 0.625000 1.000000 +vt 0.625000 0.500000 +vt 0.500000 1.000000 +vt 0.500000 0.500000 +vt 0.375000 1.000000 +vt 0.375000 0.500000 +vt 0.250000 1.000000 +vt 0.250000 0.500000 +vt 0.419706 0.419706 +vt 0.250000 0.490000 +vt 0.080294 0.419706 +vt 0.010000 0.250000 +vt 0.080294 0.080294 +vt 0.250000 0.010000 +vt 0.419706 0.080294 +vt 0.490000 0.250000 +vt 0.125000 1.000000 +vt 0.125000 0.500000 +vt 0.000000 1.000000 +vt 0.000000 0.500000 +vt 0.500000 0.500000 +vt 0.625000 0.500000 +vt 0.750000 0.490000 +vt 0.919706 0.419706 +vt 0.990000 0.250000 +vt 0.919706 0.080294 +vt 0.750000 0.010000 +vt 0.580294 0.080294 +vt 0.510000 0.250000 +vt 0.580294 0.419706 +vt 0.125000 0.500000 +vt 0.250000 0.500000 +vt 0.750000 0.500000 +vt 0.875000 0.500000 +vt 0.375000 0.500000 +vt 0.000000 0.500000 +vt 1.000000 0.500000 +vn 0.0000 -0.3827 -0.9239 +vn 0.0000 -0.9239 -0.3827 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 -0.3827 0.9239 +vn 0.0000 0.3827 0.9239 +vn 0.0000 0.9239 0.3827 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.9239 -0.3827 +vn 0.0000 0.3827 -0.9239 +vn -0.4347 -0.3446 0.8320 +vn -1.0000 0.0000 0.0000 +vn -0.4347 0.8320 -0.3446 +vn -0.4347 -0.8320 -0.3446 +vn -0.4347 0.3446 0.8320 +vn -0.4347 0.3446 -0.8320 +vn -0.4347 -0.3446 -0.8320 +vn -0.4347 -0.8320 0.3446 +vn -0.4347 0.8320 0.3446 +s 1 +f 241/449/74 242/450/74 243/451/74 244/452/74 +f 244/452/75 243/451/75 245/453/75 246/454/75 +f 246/454/76 245/453/76 247/455/76 248/456/76 +f 248/456/77 247/455/77 249/457/77 250/458/77 +f 250/458/78 249/457/78 251/459/78 252/460/78 +f 252/460/79 251/459/79 253/461/79 254/462/79 +f 243/463/80 242/464/80 255/465/80 253/466/80 251/467/80 249/468/80 247/469/80 245/470/80 +f 254/462/81 253/461/81 255/471/81 256/472/81 +f 256/472/82 255/471/82 242/473/82 241/474/82 +f 248/456/83 250/458/83 257/475/83 258/476/83 +f 259/477/84 260/478/84 261/479/84 258/480/84 257/481/84 262/482/84 263/483/84 264/484/84 +f 254/462/85 256/472/85 264/485/85 263/486/85 +f 244/452/86 246/454/86 261/487/86 260/488/86 +f 250/458/87 252/460/87 262/489/87 257/475/87 +f 256/472/88 241/474/88 259/490/88 264/485/88 +f 241/449/89 244/452/89 260/488/89 259/491/89 +f 246/454/90 248/456/90 258/476/90 261/487/90 +f 252/460/91 254/462/91 263/486/91 262/489/91 +o UnderailBit_Cylinder.006 +v -0.166791 0.038391 -0.117032 +v -0.166791 0.038391 0.117032 +v -0.118438 0.018363 0.117032 +v -0.118438 0.018363 -0.117032 +v -0.098409 -0.029991 0.117032 +v -0.098409 -0.029991 -0.117032 +v -0.118438 -0.078344 0.117032 +v -0.118438 -0.078344 -0.117032 +v -0.166791 -0.098373 0.117032 +v -0.166791 -0.098373 -0.117032 +v -0.215145 -0.078344 0.117032 +v -0.215145 -0.078344 -0.117032 +v -0.235173 -0.029991 0.117032 +v -0.235173 -0.029991 -0.117032 +v -0.215145 0.018363 0.117032 +v -0.215145 0.018363 -0.117032 +vt 1.000000 0.500000 +vt 1.000000 1.000000 +vt 0.875000 1.000000 +vt 0.875000 0.500000 +vt 0.750000 1.000000 +vt 0.750000 0.500000 +vt 0.625000 1.000000 +vt 0.625000 0.500000 +vt 0.500000 1.000000 +vt 0.500000 0.500000 +vt 0.375000 1.000000 +vt 0.375000 0.500000 +vt 0.250000 1.000000 +vt 0.250000 0.500000 +vt 0.419706 0.419706 +vt 0.250000 0.490000 +vt 0.080294 0.419706 +vt 0.010000 0.250000 +vt 0.080294 0.080294 +vt 0.250000 0.010000 +vt 0.419706 0.080294 +vt 0.490000 0.250000 +vt 0.125000 1.000000 +vt 0.125000 0.500000 +vt 0.000000 1.000000 +vt 0.000000 0.500000 +vt 0.750000 0.490000 +vt 0.919706 0.419706 +vt 0.990000 0.250000 +vt 0.919706 0.080294 +vt 0.750000 0.010000 +vt 0.580294 0.080294 +vt 0.510000 0.250000 +vt 0.580294 0.419706 +vn 0.3827 0.9239 0.0000 +vn 0.9239 0.3827 0.0000 +vn 0.9239 -0.3827 -0.0000 +vn 0.3827 -0.9239 -0.0000 +vn -0.3827 -0.9239 -0.0000 +vn -0.9239 -0.3827 -0.0000 +vn 0.0000 -0.0000 1.0000 +vn -0.9239 0.3827 0.0000 +vn -0.3827 0.9239 0.0000 +vn -0.0000 0.0000 -1.0000 +s 1 +f 265/492/92 266/493/92 267/494/92 268/495/92 +f 268/495/93 267/494/93 269/496/93 270/497/93 +f 270/497/94 269/496/94 271/498/94 272/499/94 +f 272/499/95 271/498/95 273/500/95 274/501/95 +f 274/501/96 273/500/96 275/502/96 276/503/96 +f 276/503/97 275/502/97 277/504/97 278/505/97 +f 267/506/98 266/507/98 279/508/98 277/509/98 275/510/98 273/511/98 271/512/98 269/513/98 +f 278/505/99 277/504/99 279/514/99 280/515/99 +f 280/515/100 279/514/100 266/516/100 265/517/100 +f 265/518/101 268/519/101 270/520/101 272/521/101 274/522/101 276/523/101 278/524/101 280/525/101 +o Underail_Cube.004 +v -0.033837 0.094104 -0.072767 +v -0.033837 -0.016338 -0.072767 +v -0.115306 -0.142061 -0.072767 +v -0.115306 0.094104 -0.072767 +v 0.797049 0.094104 -0.072767 +v 0.797049 -0.016338 -0.072767 +v 0.796577 -0.079782 0.048582 +v 0.796577 -0.079782 -0.048582 +v 0.886076 -0.258069 -0.048582 +v 0.886076 -0.258069 0.048582 +v 0.797049 -0.016338 0.072767 +v 0.797049 0.094104 0.072767 +v -0.033837 0.094104 0.072767 +v -0.033837 -0.016338 0.072767 +v -0.026079 -0.079782 -0.048582 +v -0.115306 0.094104 0.072767 +v -0.272459 0.094104 -0.072767 +v -0.272459 0.094104 0.072767 +v -0.115306 -0.142061 0.072767 +v -0.272459 -0.098487 0.072767 +v -0.264701 -0.161930 0.048582 +v -0.107548 -0.205505 0.048582 +v -0.272459 -0.098487 -0.072767 +v -0.026079 -0.079782 0.048582 +v -0.107548 -0.205505 -0.048582 +v -0.264701 -0.161930 -0.048582 +v 0.886547 0.093771 0.072767 +v 0.886547 0.093771 -0.072767 +v 0.886547 -0.194626 0.072767 +v 0.888072 -0.069961 0.072767 +v 0.917361 0.000750 0.072767 +v 0.988072 0.030039 0.072767 +v 1.058783 0.000750 0.072767 +v 1.088072 -0.069961 0.072767 +v 1.088250 -0.195375 0.072767 +v 1.088250 0.093022 0.072767 +v 0.886547 -0.194626 -0.072767 +v 1.088250 -0.195375 -0.072767 +v 1.087778 -0.258818 -0.048582 +v 1.087778 -0.258818 0.048582 +v 1.152616 -0.153109 -0.048582 +v 1.152616 -0.153109 0.048582 +v 1.153087 -0.089666 0.072767 +v 1.088250 0.093022 -0.072767 +v 0.888072 -0.069961 -0.072767 +v 0.917362 -0.140671 -0.072767 +v 0.988072 -0.169961 -0.072767 +v 1.058783 -0.140671 -0.072767 +v 1.088072 -0.069961 -0.072767 +v 1.153087 -0.089666 -0.072767 +v 1.153087 0.092782 -0.072767 +v 1.153087 0.092782 0.072767 +v 0.917361 0.000750 -0.072767 +v 1.058783 0.000750 -0.072767 +v 1.058783 -0.140671 0.072767 +v 0.988072 -0.169961 0.072767 +v 0.917362 -0.140671 0.072767 +v 0.988072 0.030039 -0.072767 +vt 0.625000 0.250000 +vt 0.375000 0.250000 +vt 0.375000 0.250000 +vt 0.625000 0.250000 +vt 0.625000 0.500000 +vt 0.375000 0.500000 +vt 0.375000 0.750000 +vt 0.375000 0.500000 +vt 0.375000 0.500000 +vt 0.375000 0.750000 +vt 0.375000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 1.000000 +vt 0.375000 1.000000 +vt 0.375000 0.250000 +vt 0.875000 0.500000 +vt 0.875000 0.750000 +vt 0.875000 0.750000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.750000 +vt 0.625000 1.000000 +vt 0.375000 1.000000 +vt 0.375000 1.000000 +vt 0.375000 1.000000 +vt 0.375000 1.000000 +vt 0.375000 0.000000 +vt 0.625000 0.000000 +vt 0.625000 0.250000 +vt 0.375000 0.250000 +vt 0.375000 1.000000 +vt 0.625000 1.000000 +vt 0.125000 0.500000 +vt 0.125000 0.750000 +vt 0.125000 0.750000 +vt 0.125000 0.500000 +vt 0.125000 0.750000 +vt 0.125000 0.500000 +vt 0.375000 0.250000 +vt 0.375000 0.000000 +vt 0.625000 0.750000 +vt 0.625000 0.500000 +vt 0.375000 0.250000 +vt 0.375000 0.750000 +vt 0.483072 0.750000 +vt 0.544463 0.750000 +vt 0.570080 0.750000 +vt 0.544918 0.750000 +vt 0.483716 0.750000 +vt 0.375000 0.750000 +vt 0.625000 0.750000 +vt 0.375000 0.500000 +vt 0.375000 0.500000 +vt 0.375000 0.500000 +vt 0.375000 0.750000 +vt 0.375000 0.500000 +vt 0.375000 0.750000 +vt 0.375000 0.750000 +vt 0.625000 0.500000 +vt 0.483072 0.500000 +vt 0.421870 0.500000 +vt 0.396708 0.500000 +vt 0.422325 0.500000 +vt 0.483716 0.500000 +vt 0.375000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.750000 +vt 0.125000 0.688522 +vt 0.125000 0.811478 +vt 0.250000 0.811478 +vt 0.250000 0.688522 +vt 0.750000 0.688522 +vt 0.750000 0.811478 +vt 0.875000 0.811478 +vt 0.875000 0.688522 +vt 0.422325 0.750000 +vt 0.396708 0.750000 +vt 0.421870 0.750000 +vt 0.375000 0.811478 +vt 0.375000 0.688522 +vt 0.625000 0.688522 +vt 0.625000 0.811478 +vt 0.500000 0.688522 +vt 0.500000 0.811478 +vt 0.000000 0.688522 +vt 0.000000 0.811478 +vt 1.000000 0.811478 +vt 1.000000 0.688522 +vt 0.544918 0.500000 +vt 0.570080 0.500000 +vt 0.544463 0.500000 +vn 0.0000 0.0000 -1.0000 +vn -0.8937 -0.4486 0.0000 +vn 0.0000 -0.0000 1.0000 +vn 0.0000 -0.3562 -0.9344 +vn 0.0019 1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -0.1012 -0.3652 0.9254 +vn -1.0000 -0.0000 0.0000 +vn 0.4263 -0.2762 0.8614 +vn 0.0000 -1.0000 0.0000 +vn 0.8392 -0.5438 0.0000 +vn -0.2672 -0.9636 0.0000 +vn -0.9926 -0.1214 0.0000 +vn 0.0037 1.0000 0.0000 +vn -0.1012 -0.3652 -0.9254 +vn 0.4263 -0.2762 -0.8614 +vn 0.0000 -0.3562 0.9344 +vn -0.0013 -0.3562 -0.9344 +vn -0.5737 -0.2880 -0.7667 +vn -0.5737 -0.2880 0.7667 +vn 0.8524 -0.5228 0.0000 +vn 0.5062 -0.3105 0.8046 +vn -0.0013 -0.3562 0.9344 +vn -0.0037 -1.0000 0.0000 +vn 1.0000 -0.0069 -0.0000 +vn 1.0000 0.0000 0.0000 +vn 1.0000 -0.0074 0.0000 +vn 0.5062 -0.3105 -0.8046 +vn 0.9239 -0.3827 -0.0000 +vn -0.9239 -0.3827 -0.0000 +vn 0.9239 0.3827 0.0000 +vn -0.9239 0.3827 0.0000 +vn -0.3827 0.9239 0.0000 +vn 0.3827 -0.9239 -0.0000 +vn -0.3827 -0.9239 -0.0000 +vn 0.3827 0.9239 0.0000 +s 1 +f 281/526/102 282/527/102 283/528/102 284/529/102 +f 282/527/102 281/526/102 285/530/102 286/531/102 +f 287/532/103 288/533/103 289/534/103 290/535/103 +f 291/536/104 292/537/104 293/538/104 294/539/104 +f 282/527/105 286/531/105 288/533/105 295/540/105 +f 285/530/106 281/541/107 293/542/107 292/537/106 +f 296/543/107 284/544/107 297/545/107 298/546/107 +f 294/539/104 293/538/104 296/547/104 299/548/104 +f 293/542/107 281/541/107 284/544/107 296/543/107 +f 299/548/108 300/549/108 301/550/108 302/551/108 +f 300/552/109 298/553/109 297/554/109 303/555/109 +f 294/539/110 299/548/110 302/551/110 304/556/110 +f 284/529/102 283/528/102 303/555/102 297/554/102 +f 299/548/104 296/547/104 298/557/104 300/549/104 +f 295/558/111 288/533/111 287/532/111 304/559/111 +f 295/558/112 304/559/112 302/560/112 305/561/112 +f 305/561/113 302/560/113 301/562/113 306/563/113 +f 300/552/114 303/555/114 306/564/114 301/565/114 +f 285/530/106 292/537/106 307/566/115 308/567/115 +f 303/555/116 283/528/116 305/568/116 306/564/116 +f 283/528/117 282/527/117 295/540/117 305/568/117 +f 291/536/118 294/539/118 304/556/118 287/532/118 +f 307/566/104 309/569/104 310/570/104 311/571/104 312/572/104 313/573/104 314/574/104 315/575/104 316/576/104 +f 289/534/119 317/577/119 318/578/119 319/579/119 +f 288/533/120 286/531/120 317/577/120 289/534/120 +f 286/531/102 285/530/102 308/567/102 317/577/102 +f 291/536/121 287/532/121 290/535/121 309/569/121 +f 292/537/104 291/536/104 309/569/104 307/566/104 +f 320/580/122 319/579/122 321/581/122 322/582/122 +f 315/575/123 320/580/123 322/582/123 323/583/123 +f 309/569/124 290/535/124 320/580/124 315/575/124 +f 290/535/125 289/534/125 319/579/125 320/580/125 +f 308/567/115 307/566/115 316/576/115 324/584/115 +f 317/577/102 325/585/102 326/586/102 327/587/102 328/588/102 329/589/102 318/578/102 +f 330/590/126 331/591/127 332/592/127 323/583/126 +f 330/590/126 323/583/126 322/582/128 321/581/128 +f 324/584/115 316/576/115 332/592/115 331/591/115 +f 318/578/102 324/584/102 331/591/102 330/590/102 +f 319/579/129 318/578/129 330/590/129 321/581/129 +f 316/576/104 315/575/104 323/583/104 332/592/104 +f 333/593/130 311/594/130 310/595/130 325/596/130 +f 329/597/131 314/598/131 313/599/131 334/600/131 +f 315/575/104 314/574/104 335/601/104 336/602/104 337/603/104 310/570/104 309/569/104 +f 325/596/132 310/595/132 337/604/132 326/605/132 +f 328/606/133 335/607/133 314/598/133 329/597/133 +f 327/608/134 336/609/134 335/607/134 328/606/134 +f 338/610/135 312/611/135 311/594/135 333/593/135 +f 334/600/136 313/599/136 312/612/136 338/613/136 +f 326/605/137 337/604/137 336/609/137 327/608/137 +f 318/578/102 329/589/102 334/614/102 338/615/102 333/616/102 325/585/102 317/577/102 308/567/102 324/584/102 +o UndeRail_Cube.005 +v -1.185225 0.299229 -0.228225 +v -1.185225 0.078919 -0.228225 +v -1.579320 0.146982 -0.228225 +v -1.579320 0.299229 -0.228225 +v -0.726389 0.070637 -0.201417 +v -0.726389 0.299229 -0.201417 +v -0.726389 0.299229 0.201417 +v -0.726389 0.070637 0.201417 +v -0.770558 0.343398 -0.201417 +v -1.096886 0.343398 -0.201417 +v -1.096886 0.343398 0.201417 +v -0.770558 0.343398 0.201417 +v -1.185225 0.078919 0.228225 +v -1.185225 0.299229 0.228225 +v -1.579320 0.299229 0.228225 +v -1.579320 0.146982 0.228225 +v -1.185225 0.343398 0.201417 +v -1.185225 0.343398 -0.201417 +v -1.579320 0.343398 -0.201417 +v -1.579320 0.343398 0.201417 +v -1.096886 0.026467 -0.201417 +v -0.770558 0.026467 -0.201417 +v -0.770558 0.026467 0.201417 +v -1.096886 0.026467 0.201417 +v -1.096886 0.070637 -0.228225 +v -1.096886 0.299229 -0.228225 +v -0.770558 0.299229 -0.228225 +v -0.770558 0.070637 -0.228225 +v -0.770558 0.070637 0.228225 +v -0.770558 0.299229 0.228225 +v -1.096886 0.299229 0.228225 +v -1.096886 0.070637 0.228225 +v -1.690351 0.200246 0.201417 +v -1.690351 0.287913 0.201417 +v -1.690351 0.287913 -0.201417 +v -1.690351 0.200246 -0.201417 +v -1.184581 0.033984 0.201417 +v -1.184581 0.033984 -0.201417 +v -1.659805 0.134929 0.201417 +v -1.579964 0.102270 0.201417 +v -1.667659 0.194088 0.228225 +v -1.667659 0.291126 0.228225 +v -1.646801 0.339453 0.201417 +v -1.659805 0.134929 -0.201417 +v -1.667659 0.194088 -0.228225 +v -1.579964 0.102270 -0.201417 +v -1.667040 0.336028 -0.201417 +v -1.667659 0.291126 -0.228225 +vt 0.588425 0.250000 +vt 0.411758 0.250000 +vt 0.420274 0.250000 +vt 0.579929 0.250000 +vt 0.409842 0.514683 +vt 0.590158 0.514683 +vt 0.590158 0.735317 +vt 0.409842 0.735317 +vt 0.651630 0.514683 +vt 0.848370 0.514683 +vt 0.848370 0.735317 +vt 0.651630 0.735317 +vt 0.411758 1.000000 +vt 0.588425 1.000000 +vt 0.579929 1.000000 +vt 0.420274 1.000000 +vt 0.875000 0.735317 +vt 0.875000 0.514683 +vt 0.875000 0.514683 +vt 0.875000 0.735317 +vt 0.151630 0.514683 +vt 0.348370 0.514683 +vt 0.348370 0.735317 +vt 0.151630 0.735317 +vt 0.409842 0.276630 +vt 0.590158 0.276630 +vt 0.590158 0.473370 +vt 0.409842 0.473370 +vt 0.409842 0.776629 +vt 0.590158 0.776630 +vt 0.590158 0.973370 +vt 0.409842 0.973370 +vt 0.437738 0.014683 +vt 0.562262 0.014683 +vt 0.562262 0.235317 +vt 0.437738 0.235317 +vt 0.098759 0.735317 +vt 0.125000 0.735317 +vt 0.151630 0.750000 +vt 0.125000 0.750000 +vt 0.590158 1.000000 +vt 0.625000 1.000000 +vt 0.625000 1.000000 +vt 0.098759 0.514683 +vt 0.125000 0.500000 +vt 0.151630 0.500000 +vt 0.125000 0.514683 +vt 0.625000 0.250000 +vt 0.625000 0.250000 +vt 0.590158 0.250000 +vt 0.625000 0.250000 +vt 0.375000 0.735317 +vt 0.348370 0.750000 +vt 0.625000 0.776630 +vt 0.625000 0.776630 +vt 0.590158 0.750000 +vt 0.348370 0.500000 +vt 0.375000 0.514683 +vt 0.625000 0.514683 +vt 0.625000 0.514683 +vt 0.590158 0.500000 +vt 0.125000 0.735317 +vt 0.125000 0.735317 +vt 0.125000 0.750000 +vt 0.125000 0.750000 +vt 0.565038 1.000000 +vt 0.577732 1.000000 +vt 0.625000 1.000000 +vt 0.617113 1.000000 +vt 0.125000 0.514683 +vt 0.125000 0.500000 +vt 0.125000 0.500000 +vt 0.125000 0.514683 +vt 0.611973 0.250000 +vt 0.625000 0.250000 +vt 0.625000 0.250000 +vt 0.569060 0.250000 +vt 0.125000 0.735317 +vt 0.572214 1.000000 +vt 0.625000 1.000000 +vt 0.562262 1.000000 +vt 0.125000 0.514683 +vt 0.625000 0.250000 +vt 0.625000 0.250000 +vt 0.562262 0.250000 +vt 0.125000 0.735317 +vt 0.125000 0.514683 +vt 0.625000 0.276630 +vt 0.625000 0.473370 +vt 0.625000 0.973370 +vt 0.567775 1.000000 +vt 0.441517 1.000000 +vt 0.875000 0.514683 +vt 0.875000 0.735317 +vt 0.441517 0.250000 +vt 0.567775 0.250000 +vt 0.436229 1.000000 +vt 0.437738 1.000000 +vt 0.625000 0.014683 +vt 0.625000 0.235317 +vt 0.572214 0.250000 +vt 0.436229 0.250000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 -0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -0.0000 -0.0000 1.0000 +vn 0.0000 -1.0000 -0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.0462 -0.5153 0.8558 +vn 0.0000 0.5189 0.8549 +vn -0.0462 -0.5153 -0.8558 +vn 0.0000 0.5189 -0.8549 +vn 0.4606 -0.4605 0.7588 +vn 0.4606 0.4606 0.7588 +vn 0.4606 -0.4605 -0.7588 +vn 0.4606 0.4606 -0.7588 +vn -0.2180 -0.4596 0.8610 +vn -0.0393 0.5077 0.8606 +vn -0.2180 -0.4596 -0.8610 +vn -0.0453 0.5154 -0.8557 +vn -0.7527 -0.3520 0.5563 +vn -0.6638 0.5609 0.4947 +vn -0.7527 -0.3520 -0.5563 +vn -0.7340 0.3556 -0.5787 +vn -0.0854 -0.9963 -0.0000 +vn 0.0000 -0.5188 -0.8549 +vn 0.5189 0.0000 -0.8549 +vn 0.7071 -0.7071 -0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.5189 -0.0000 0.8549 +vn 0.0000 -0.5188 0.8549 +vn -0.3786 -0.9256 -0.0000 +vn -0.0727 0.9974 -0.0024 +vn -0.0883 -0.5113 0.8549 +vn -0.0883 -0.5113 -0.8549 +vn -0.9058 -0.4236 -0.0000 +vn -0.7633 0.0000 0.6461 +vn -0.8303 0.5571 0.0185 +vn -0.7633 0.0000 -0.6461 +vn -0.1702 -0.9854 -0.0000 +s 1 +f 339/617/138 340/618/138 341/619/138 342/620/138 +f 343/621/139 344/622/139 345/623/139 346/624/139 +f 347/625/140 348/626/140 349/627/140 350/628/140 +f 351/629/141 352/630/141 353/631/141 354/632/141 +f 355/633/140 356/634/140 357/635/140 358/636/140 +f 359/637/142 360/638/142 361/639/142 362/640/142 +f 363/641/138 364/642/138 365/643/138 366/644/138 +f 367/645/141 368/646/141 369/647/141 370/648/141 +f 371/649/143 372/650/143 373/651/143 374/652/143 +f 375/653/144 362/654/144 370/655/144 351/656/144 +f 352/630/145 369/657/145 349/658/145 355/659/145 +f 376/660/146 340/661/146 363/662/146 359/663/146 +f 356/664/147 348/665/147 364/666/147 339/667/147 +f 361/639/148 346/668/148 367/669/148 +f 350/670/149 368/671/149 345/672/149 +f 360/638/150 366/673/150 343/674/150 +f 347/675/151 344/676/151 365/677/151 +f 377/678/152 378/679/152 354/680/152 379/681/152 +f 380/682/153 353/683/153 358/684/153 381/685/153 +f 382/686/154 383/687/154 341/688/154 384/689/154 +f 385/690/155 357/691/155 342/692/155 386/693/155 +f 377/678/156 379/681/156 371/694/156 +f 380/695/157 381/696/157 372/697/157 +f 382/686/158 374/698/158 383/687/158 +f 385/699/159 386/700/159 373/701/159 +f 359/637/160 362/640/160 375/702/160 376/703/160 +f 370/648/141 369/647/141 352/630/141 351/629/141 +f 349/627/140 348/626/140 356/634/140 355/633/140 +f 364/642/138 363/641/138 340/618/138 339/617/138 +f 360/638/161 359/637/161 363/662/161 366/673/161 +f 348/704/147 347/705/147 365/643/147 364/642/147 +f 344/622/162 343/621/162 366/644/162 365/643/162 +f 361/639/163 360/638/163 343/621/163 346/624/163 +f 347/625/164 350/628/164 345/623/164 344/622/164 +f 368/646/165 367/645/165 346/624/165 345/623/165 +f 362/640/166 361/639/166 367/669/166 370/655/166 +f 350/670/145 349/706/145 369/647/145 368/646/145 +f 384/689/167 378/679/167 377/678/167 382/686/167 +f 354/632/141 353/631/141 380/707/141 379/708/141 +f 358/636/168 357/635/168 385/709/168 381/710/168 +f 342/620/138 341/619/138 383/711/138 386/712/138 +f 339/617/147 342/620/147 357/691/147 356/664/147 +f 353/631/145 352/630/145 355/659/145 358/684/145 +f 351/656/169 354/680/169 378/679/169 375/702/169 +f 341/688/170 340/661/170 376/703/170 384/689/170 +f 382/686/171 377/678/171 371/694/171 374/698/171 +f 379/713/172 380/695/172 372/697/172 371/714/172 +f 381/715/173 385/716/173 373/651/173 372/650/173 +f 386/717/174 383/718/174 374/652/174 373/651/174 +f 376/703/175 375/702/175 378/679/175 384/689/175 +o TriggerGuard_Cube.007 +v -0.991593 0.009137 0.090896 +v -0.991593 0.050129 0.090896 +v -0.991593 0.050129 -0.090896 +v -0.991593 0.009137 -0.090896 +v -0.359255 0.050129 -0.090896 +v -0.359255 0.009137 -0.090896 +v -0.359255 0.050129 0.090896 +v -0.359255 0.009137 0.090896 +v -0.952793 -0.032302 0.079741 +v -0.475801 -0.032302 0.079741 +v -0.398056 -0.032302 0.079741 +v -0.952793 -0.032302 -0.079741 +v -0.477062 -0.032302 -0.079741 +v -0.398056 -0.032302 -0.079741 +v -0.547697 -0.243266 -0.079741 +v -0.468691 -0.243266 -0.079741 +v -0.417833 -0.308250 -0.079741 +v -0.496840 -0.308250 -0.079741 +v -0.468691 -0.243266 0.079741 +v -0.546437 -0.243266 0.079741 +v -0.495579 -0.308250 0.079741 +v -0.884730 -0.317360 -0.073714 +v -0.883469 -0.317360 0.085769 +v -0.417833 -0.308250 0.079741 +v -0.548320 -0.390292 0.079741 +v -0.549581 -0.390292 -0.079741 +v -0.470574 -0.390292 -0.079741 +v -0.470574 -0.390292 0.079741 +v -0.933383 -0.398929 -0.073714 +v -0.932122 -0.398929 0.085769 +v -1.071287 -0.315922 0.087949 +v -1.072548 -0.315922 -0.071533 +v -1.022634 -0.234353 0.087949 +v -1.023895 -0.234353 -0.071533 +vt 0.375000 0.000000 +vt 0.625000 0.000000 +vt 0.625000 0.250000 +vt 0.375000 0.250000 +vt 0.625000 0.500000 +vt 0.375000 0.500000 +vt 0.625000 0.750000 +vt 0.375000 0.750000 +vt 0.625000 1.000000 +vt 0.375000 1.000000 +vt 0.375000 1.000000 +vt 0.375000 0.806259 +vt 0.375000 0.750000 +vt 0.875000 0.500000 +vt 0.875000 0.750000 +vt 0.125000 0.500000 +vt 0.318173 0.500000 +vt 0.318741 0.750000 +vt 0.125000 0.750000 +vt 0.375000 0.500000 +vt 0.375000 0.443173 +vt 0.375000 0.250000 +vt 0.375000 0.000000 +vt 0.375000 0.443173 +vt 0.375000 0.500000 +vt 0.375000 0.500000 +vt 0.375000 0.443173 +vt 0.375000 0.750000 +vt 0.375000 0.806259 +vt 0.318173 0.500000 +vt 0.318741 0.750000 +vt 0.318741 0.750000 +vt 0.318173 0.500000 +vt 0.318173 0.500000 +vt 0.318741 0.750000 +vt 0.375000 0.750000 +vt 0.375000 0.806259 +vt 0.318741 0.750000 +vt 0.318173 0.500000 +vt 0.375000 0.500000 +vt 0.375000 0.750000 +vt 0.375000 0.806259 +vt 0.375000 0.443173 +vt 0.318173 0.500000 +vt 0.318741 0.750000 +vt 0.318741 0.750000 +vt 0.318173 0.500000 +vt 0.375000 0.443173 +vt 0.375000 0.443173 +vt 0.375000 0.806259 +vt 0.375000 0.806259 +vt 0.318741 0.750000 +vt 0.318173 0.500000 +vt 0.375000 0.443173 +vt 0.375000 0.443173 +vt 0.375000 0.806259 +vt 0.375000 0.806259 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -0.2599 0.9656 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 -0.0000 +vn 0.0000 -0.2599 -0.9656 +vn -0.7300 -0.6835 -0.0000 +vn 0.7300 -0.6835 -0.0000 +vn 0.9483 -0.3175 0.0000 +vn -0.9482 0.3175 0.0075 +vn -0.0235 0.9997 0.0002 +vn 0.7875 0.6163 0.0000 +vn -0.7875 -0.6163 0.0062 +vn 0.8412 -0.5408 0.0000 +vn -0.5122 -0.8589 0.0040 +vn -0.0158 0.0098 -0.9998 +vn -0.0154 0.0095 -0.9998 +vn -0.0119 0.0071 -0.9999 +vn 0.0158 -0.0098 0.9998 +vn 0.0119 -0.0071 0.9999 +vn 0.0154 -0.0095 0.9998 +vn 0.0225 -0.9997 -0.0002 +vn -0.8588 0.5123 0.0068 +vn -0.0116 0.0069 -0.9999 +vn 0.5122 0.8589 -0.0040 +vn 0.0116 -0.0069 0.9999 +s 1 +f 387/719/176 388/720/176 389/721/176 390/722/176 +f 390/722/177 389/721/177 391/723/177 392/724/177 +f 392/724/178 391/723/178 393/725/178 394/726/178 +f 394/726/179 393/725/179 388/727/179 387/728/179 +f 394/726/180 387/728/180 395/729/180 396/730/180 397/731/180 +f 391/723/181 389/732/181 388/733/181 393/725/181 +f 398/734/182 399/735/182 396/736/182 395/737/182 +f 390/722/183 392/724/183 400/738/183 399/739/183 398/740/183 +f 387/719/184 390/722/184 398/740/184 395/741/184 +f 392/724/185 394/726/185 397/731/185 400/738/185 +f 401/742/177 402/743/177 403/744/177 404/745/177 +f 400/738/186 397/731/186 405/746/186 402/743/186 +f 397/731/179 396/730/179 406/747/179 405/746/179 +f 396/736/187 399/735/187 401/748/187 406/749/187 +f 399/739/177 400/738/177 402/743/177 401/742/177 +f 407/750/188 404/751/188 408/752/188 409/753/188 +f 402/743/189 405/746/189 410/754/189 403/744/189 +f 406/749/190 401/748/190 404/751/190 407/750/190 +f 405/746/179 406/747/179 407/755/179 410/754/179 +f 411/756/182 412/757/182 413/758/182 414/759/182 +f 410/754/179 407/755/179 411/760/179 414/759/179 +f 404/745/177 403/744/177 413/758/177 412/761/177 +f 403/744/191 410/754/191 414/759/191 413/758/191 +f 415/762/192 416/763/192 417/764/192 418/765/192 +f 404/745/193 412/761/193 415/766/194 408/767/195 +f 411/760/196 407/755/196 409/768/197 416/769/198 +f 412/757/199 411/756/199 416/763/199 415/762/199 +f 419/770/200 420/771/200 418/765/200 417/764/200 +f 408/767/195 415/766/194 418/772/201 420/773/201 +f 409/753/202 408/752/202 420/771/202 419/770/202 +f 416/769/198 409/768/197 419/774/203 417/775/203 +o Trigger_Cube.008 +v -0.906556 -0.031746 0.035327 +v -0.906556 -0.031746 -0.035327 +v -0.906556 -0.054594 -0.035327 +v -0.906556 -0.054594 0.035327 +v -0.750972 -0.031746 -0.035327 +v -0.757513 -0.054594 -0.035327 +v -0.750972 -0.031746 0.035327 +v -0.757513 -0.054594 0.035327 +v -0.891840 -0.172320 -0.035327 +v -0.891840 -0.172320 0.035327 +v -0.858049 -0.254618 0.035327 +v -0.773318 -0.237178 0.035327 +v -0.781494 -0.172320 0.035327 +v -0.781494 -0.172320 -0.035327 +v -0.752234 -0.268743 0.035327 +v -0.752234 -0.268743 -0.035327 +v -0.773318 -0.237178 -0.035327 +v -0.858049 -0.254618 -0.035327 +v -0.786277 -0.298175 0.035327 +v -0.786277 -0.298175 -0.035327 +vt 0.375000 0.000000 +vt 0.375000 0.250000 +vt 0.625000 0.250000 +vt 0.625000 0.000000 +vt 0.375000 0.500000 +vt 0.625000 0.500000 +vt 0.375000 0.750000 +vt 0.625000 0.750000 +vt 0.375000 1.000000 +vt 0.625000 1.000000 +vt 0.125000 0.500000 +vt 0.125000 0.750000 +vt 0.625000 0.250000 +vt 0.625000 0.000000 +vt 0.625000 1.000000 +vt 0.625000 1.000000 +vt 0.625000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 0.500000 +vt 0.625000 0.750000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.250000 +vt 0.625000 0.000000 +vt 0.875000 0.750000 +vt 0.875000 0.500000 +vt 0.625000 0.250000 +vt 0.625000 0.000000 +vt 0.625000 1.000000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.9614 -0.2752 0.0000 +vn 0.0000 -0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn -0.9923 -0.1240 0.0000 +vn 0.9799 -0.1996 0.0000 +vn 0.8316 0.5554 0.0000 +vn 0.9921 0.1251 0.0000 +vn -0.9251 -0.3798 0.0000 +vn 0.6540 -0.7565 0.0000 +vn -0.5188 -0.8549 0.0000 +s 1 +f 421/776/204 422/777/204 423/778/204 424/779/204 +f 422/777/205 425/780/205 426/781/205 423/778/205 +f 425/780/206 427/782/206 428/783/206 426/781/206 +f 427/782/207 421/784/207 424/785/207 428/783/207 +f 422/786/208 421/787/208 427/782/208 425/780/208 +f 423/778/209 429/788/209 430/789/209 424/779/209 +f 430/790/207 431/791/207 432/792/207 433/793/207 +f 424/785/207 430/790/207 433/793/207 428/783/207 +f 426/781/205 434/794/205 429/788/205 423/778/205 +f 428/783/210 433/793/210 434/794/210 426/781/210 +f 432/792/211 435/795/211 436/796/211 437/797/211 +f 434/794/205 437/797/205 438/798/205 429/788/205 +f 433/793/212 432/792/212 437/797/212 434/794/212 +f 429/788/213 438/798/213 431/799/213 430/789/213 +f 436/796/214 435/795/214 439/800/214 440/801/214 +f 438/798/215 440/802/215 439/803/215 431/799/215 +f 431/791/207 439/804/207 435/795/207 432/792/207 +f 437/797/205 436/796/205 440/802/205 438/798/205 +o SideHolders.001_Cube.002 +v 1.310526 -0.082794 0.073582 +v 1.384588 0.101767 0.073582 +v 1.139921 0.101767 0.053905 +v 1.144858 -0.044123 0.053905 +v 1.384588 0.101767 -0.069977 +v 1.504148 0.101767 0.073582 +v 1.504148 0.101767 -0.069977 +v 1.430086 -0.082794 0.073582 +v 1.608182 -0.022025 0.051795 +v 1.577323 0.101767 0.051795 +v 1.430086 -0.082794 -0.069977 +v 1.310526 -0.082794 -0.069977 +v 1.577323 0.101767 -0.048191 +v 1.608182 -0.022025 -0.048191 +v 1.144858 -0.044123 -0.050301 +v 1.139921 0.101767 -0.050301 +vt 0.875000 0.750000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.750000 +vt 0.375000 0.250000 +vt 0.625000 0.250000 +vt 0.625000 0.500000 +vt 0.375000 0.500000 +vt 0.625000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 0.500000 +vt 0.375000 0.750000 +vt 0.625000 1.000000 +vt 0.375000 1.000000 +vt 0.125000 0.500000 +vt 0.125000 0.750000 +vt 0.375000 0.500000 +vt 0.375000 0.750000 +vt 0.375000 0.000000 +vt 0.625000 0.000000 +vt 0.625000 0.250000 +vt 0.375000 0.250000 +vt 0.125000 0.750000 +vt 0.125000 0.500000 +vt 0.625000 1.000000 +vt 0.375000 1.000000 +vn -0.0936 0.0196 0.9954 +vn 0.0000 1.0000 0.0000 +vn 0.1766 -0.0247 0.9840 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -0.0000 1.0000 +vn 0.9703 0.2419 0.0000 +vn 0.3229 -0.9464 -0.0000 +vn 0.1766 -0.0247 -0.9840 +vn -0.9994 -0.0338 -0.0000 +vn -0.0936 0.0196 -0.9954 +vn -0.2273 -0.9738 0.0000 +s 1 +f 441/805/216 442/806/216 443/807/216 444/808/216 +f 445/809/217 442/810/217 446/811/217 447/812/217 +f 446/811/218 448/813/218 449/814/218 450/815/218 +f 451/816/219 448/813/219 441/817/219 452/818/219 +f 445/819/220 447/812/220 451/816/220 452/820/220 +f 446/811/221 442/806/221 441/805/221 448/813/221 +f 453/821/222 450/815/222 449/814/222 454/822/222 +f 447/812/217 446/811/217 450/815/217 453/821/217 +f 448/813/223 451/816/223 454/822/223 449/814/223 +f 451/816/224 447/812/224 453/821/224 454/822/224 +f 455/823/225 444/824/225 443/825/225 456/826/225 +f 445/819/226 452/820/226 455/827/226 456/828/226 +f 442/810/217 445/809/217 456/826/217 443/825/217 +f 452/818/227 441/817/227 444/829/227 455/830/227 +o Roundthing_Cylinder.008 +v -0.745839 1.097427 -0.260529 +v -0.745839 1.097427 0.260529 +v -0.654718 0.939467 0.260529 +v -0.654718 0.939467 -0.260529 +v -0.745955 0.781575 0.260529 +v -0.745955 0.781575 -0.260529 +v -0.928312 0.781642 0.260529 +v -0.928312 0.781642 -0.260529 +v -1.019432 0.939601 0.260529 +v -1.019432 0.939601 -0.260529 +v -0.654718 0.939467 0.338343 +v -0.745955 0.781575 0.338343 +v -0.928196 1.097493 0.260529 +v -0.928196 1.097493 -0.260529 +v -0.745839 1.097427 0.338343 +v -0.757348 1.077508 0.380293 +v -0.677723 0.939476 0.380293 +v -1.019432 0.939601 0.338343 +v -0.928196 1.097493 0.338343 +v -0.928312 0.781642 0.338343 +v -0.916701 1.077567 0.380293 +v -0.996428 0.939592 0.380293 +v -0.949024 0.939575 0.380293 +v -0.893014 1.036505 0.380293 +v -0.916802 0.801560 0.380293 +v -0.757450 0.801501 0.380293 +v -0.781065 1.036464 0.380293 +v -0.884357 1.021497 0.419074 +v -0.789734 1.021463 0.419074 +v -0.781137 0.842563 0.380293 +v -0.893085 0.842604 0.380293 +v -0.725127 0.939493 0.380293 +v -0.931698 0.939569 0.419074 +v -0.877029 0.939549 0.419074 +v -0.857040 0.974142 0.419074 +v -0.884417 0.857606 0.419074 +v -0.742452 0.939499 0.419074 +v -0.789794 0.857571 0.419074 +v -0.817086 0.974128 0.419074 +v -0.857040 0.974142 0.317496 +v -0.817086 0.974128 0.317496 +v -0.817111 0.904926 0.419074 +v -0.857065 0.904940 0.419074 +v -0.797122 0.939519 0.419074 +v -0.797122 0.939519 0.317496 +v -0.877029 0.939549 0.317496 +v -0.857065 0.904940 0.317496 +v -0.817111 0.904926 0.317496 +v -0.745955 0.781575 -0.338343 +v -0.654718 0.939467 -0.338343 +v -0.677723 0.939476 -0.380293 +v -0.757348 1.077508 -0.380293 +v -0.745839 1.097427 -0.338343 +v -0.928196 1.097493 -0.338343 +v -1.019432 0.939601 -0.338343 +v -0.928312 0.781642 -0.338343 +v -0.916701 1.077567 -0.380293 +v -0.893014 1.036505 -0.380293 +v -0.949024 0.939575 -0.380293 +v -0.996428 0.939593 -0.380293 +v -0.916802 0.801560 -0.380293 +v -0.757450 0.801502 -0.380293 +v -0.781065 1.036464 -0.380293 +v -0.789734 1.021463 -0.419074 +v -0.884357 1.021497 -0.419074 +v -0.893085 0.842604 -0.380293 +v -0.781137 0.842563 -0.380293 +v -0.725127 0.939493 -0.380293 +v -0.857040 0.974142 -0.419074 +v -0.877029 0.939549 -0.419074 +v -0.931698 0.939569 -0.419074 +v -0.884417 0.857606 -0.419074 +v -0.789794 0.857571 -0.419074 +v -0.742452 0.939499 -0.419074 +v -0.817086 0.974128 -0.419074 +v -0.817086 0.974128 -0.317496 +v -0.857040 0.974142 -0.317496 +v -0.857065 0.904940 -0.419074 +v -0.817111 0.904926 -0.419074 +v -0.797122 0.939519 -0.419074 +v -0.797122 0.939519 -0.317496 +v -0.817111 0.904926 -0.317496 +v -0.857065 0.904940 -0.317496 +v -0.877029 0.939549 -0.317496 +vt 1.000000 0.500000 +vt 1.000000 1.000000 +vt 0.833333 1.000000 +vt 0.833333 0.500000 +vt 0.666667 1.000000 +vt 0.666667 0.500000 +vt 0.500000 1.000000 +vt 0.500000 0.500000 +vt 0.333333 1.000000 +vt 0.333333 0.500000 +vt 0.833333 1.000000 +vt 0.666667 1.000000 +vt 0.166667 1.000000 +vt 0.166667 0.500000 +vt -0.000000 1.000000 +vt -0.000000 0.500000 +vt 0.750000 0.490000 +vt 0.957846 0.370000 +vt 0.957846 0.130000 +vt 0.750000 0.010000 +vt 0.542154 0.130000 +vt 0.542154 0.370000 +vt 1.000000 1.000000 +vt 1.000000 1.000000 +vt 0.833333 1.000000 +vt 0.333333 1.000000 +vt 0.166667 1.000000 +vt 0.500000 1.000000 +vt -0.000000 1.000000 +vt 0.166667 1.000000 +vt 0.333333 1.000000 +vt 0.333333 1.000000 +vt 0.166667 1.000000 +vt -0.000000 1.000000 +vt 0.500000 1.000000 +vt 0.666667 1.000000 +vt -0.000000 1.000000 +vt 0.166667 1.000000 +vt -0.000000 1.000000 +vt 0.666667 1.000000 +vt 0.500000 1.000000 +vt 1.000000 1.000000 +vt 0.833333 1.000000 +vt 0.333333 1.000000 +vt 0.333333 1.000000 +vt 0.166667 1.000000 +vt 0.500000 1.000000 +vt 0.833333 1.000000 +vt 0.666667 1.000000 +vt 1.000000 1.000000 +vt -0.000000 1.000000 +vt 0.166667 1.000000 +vt -0.000000 1.000000 +vt 0.666667 1.000000 +vt 0.500000 1.000000 +vt 1.000000 1.000000 +vt 0.833333 1.000000 +vt 0.457846 0.370000 +vt 0.250000 0.490000 +vt 0.042154 0.370000 +vt 0.042154 0.130000 +vt 0.250000 0.010000 +vt 0.457846 0.130000 +vt 0.500000 1.000000 +vt 0.333333 1.000000 +vt 0.833333 1.000000 +vt 0.666667 1.000000 +vt 1.000000 1.000000 +vt 0.666667 1.000000 +vt 0.666667 1.000000 +vt 0.833333 1.000000 +vt 0.833333 1.000000 +vt 0.750000 0.490000 +vt 0.542154 0.370000 +vt 0.542154 0.130000 +vt 0.750000 0.010000 +vt 0.957846 0.130000 +vt 0.957846 0.370000 +vt 0.833333 1.000000 +vt 1.000000 1.000000 +vt 1.000000 1.000000 +vt 0.166667 1.000000 +vt 0.166667 1.000000 +vt 0.333333 1.000000 +vt 0.333333 1.000000 +vt 1.000000 1.000000 +vt 0.500000 1.000000 +vt 0.500000 1.000000 +vt -0.000000 1.000000 +vt -0.000000 1.000000 +vt 0.166667 1.000000 +vt 0.166667 1.000000 +vt 0.333333 1.000000 +vt 0.333333 1.000000 +vt -0.000000 1.000000 +vt 0.500000 1.000000 +vt 0.666667 1.000000 +vt -0.000000 1.000000 +vt -0.000000 1.000000 +vt 0.166667 1.000000 +vt 0.500000 1.000000 +vt 0.666667 1.000000 +vt 0.833333 1.000000 +vt 1.000000 1.000000 +vt 0.166667 1.000000 +vt 0.333333 1.000000 +vt 0.333333 1.000000 +vt 0.500000 1.000000 +vt 0.666667 1.000000 +vt 0.833333 1.000000 +vt 1.000000 1.000000 +vt -0.000000 1.000000 +vt -0.000000 1.000000 +vt 0.166667 1.000000 +vt 0.500000 1.000000 +vt 0.666667 1.000000 +vt 0.833333 1.000000 +vt 1.000000 1.000000 +vt 0.457846 0.370000 +vt 0.457846 0.130000 +vt 0.250000 0.010000 +vt 0.042154 0.130000 +vt 0.042154 0.370000 +vt 0.250000 0.490000 +vt 0.333333 1.000000 +vt 0.500000 1.000000 +vt 0.666667 1.000000 +vt 0.833333 1.000000 +vt 1.000000 1.000000 +vn 0.8662 0.4997 0.0000 +vn 0.8658 -0.5003 0.0000 +vn -0.0004 -1.0000 0.0000 +vn -0.8662 -0.4997 0.0000 +vn -0.8658 0.5003 0.0000 +vn 0.0004 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.7825 0.4514 0.4290 +vn -0.0000 -0.0000 1.0000 +vn 0.0003 0.9033 0.4290 +vn -0.7825 -0.4514 0.4290 +vn 0.7821 -0.4519 0.4290 +vn -0.7821 0.4519 0.4290 +vn -0.0003 -0.9033 0.4290 +vn 0.0003 0.9326 0.3608 +vn -0.8079 -0.4660 0.3608 +vn 0.8075 -0.4666 0.3608 +vn -0.8075 0.4666 0.3608 +vn -0.0003 -0.9326 0.3608 +vn 0.8079 0.4660 0.3608 +vn 0.7825 0.4514 -0.4290 +vn 0.0003 0.9033 -0.4290 +vn -0.7825 -0.4514 -0.4290 +vn 0.7821 -0.4519 -0.4290 +vn -0.7821 0.4519 -0.4290 +vn -0.0003 -0.9033 -0.4290 +vn 0.0003 0.9326 -0.3608 +vn -0.8079 -0.4660 -0.3608 +vn 0.8075 -0.4666 -0.3608 +vn -0.8075 0.4666 -0.3608 +vn -0.0003 -0.9326 -0.3608 +vn 0.8079 0.4660 -0.3608 +s 1 +f 457/831/228 458/832/228 459/833/228 460/834/228 +f 460/834/229 459/833/229 461/835/229 462/836/229 +f 462/836/230 461/835/230 463/837/230 464/838/230 +f 464/838/231 463/837/231 465/839/231 466/840/231 +f 461/835/229 459/833/229 467/841/229 468/842/229 +f 466/840/232 465/839/232 469/843/232 470/844/232 +f 470/844/233 469/843/233 458/845/233 457/846/233 +f 457/847/234 460/848/234 462/849/234 464/850/234 466/851/234 470/852/234 +f 467/841/235 471/853/235 472/854/235 473/855/235 +f 469/843/232 465/839/232 474/856/232 475/857/232 +f 459/833/228 458/832/228 471/853/228 467/841/228 +f 463/837/230 461/835/230 468/842/230 476/858/230 +f 458/845/233 469/843/233 475/857/233 471/859/233 +f 465/839/231 463/837/231 476/858/231 474/856/231 +f 477/860/236 478/861/236 479/862/236 480/863/236 +f 471/859/237 475/857/237 477/860/237 472/864/237 +f 474/856/238 476/858/238 481/865/238 478/861/238 +f 468/842/239 467/841/239 473/855/239 482/866/239 +f 475/857/240 474/856/240 478/861/240 477/860/240 +f 476/858/241 468/842/241 482/866/241 481/865/241 +f 483/867/242 480/863/242 484/868/242 485/869/242 +f 481/865/236 482/866/236 486/870/236 487/871/236 +f 473/855/236 472/854/236 483/872/236 488/873/236 +f 472/864/236 477/860/236 480/863/236 483/867/236 +f 478/861/236 481/865/236 487/871/236 479/862/236 +f 482/866/236 473/855/236 488/873/236 486/870/236 +f 484/868/236 489/874/236 490/875/236 491/876/236 +f 479/862/243 487/871/243 492/877/243 489/874/243 +f 486/870/244 488/873/244 493/878/244 494/879/244 +f 480/863/245 479/862/245 489/874/245 484/868/245 +f 487/871/246 486/870/246 494/879/246 492/877/246 +f 488/873/247 483/872/247 485/880/247 493/878/247 +f 495/881/230 491/876/230 496/882/230 497/883/230 +f 492/877/236 494/879/236 498/884/236 499/885/236 +f 493/878/236 485/880/236 495/886/236 500/887/236 +f 485/869/236 484/868/236 491/876/236 495/881/236 +f 489/874/236 492/877/236 499/885/236 490/875/236 +f 494/879/236 493/878/236 500/887/236 498/884/236 +f 501/888/236 497/889/236 496/890/236 502/891/236 503/892/236 504/893/236 +f 490/875/228 499/885/228 503/894/228 502/895/228 +f 498/884/232 500/887/232 501/896/232 504/897/232 +f 491/876/229 490/875/229 502/895/229 496/882/229 +f 499/885/233 498/884/233 504/897/233 503/894/233 +f 500/887/231 495/886/231 497/898/231 501/896/231 +f 462/899/229 505/900/229 506/901/229 460/902/229 +f 458/903/236 469/904/236 465/905/236 463/906/236 461/907/236 459/908/236 +f 506/901/248 507/909/248 508/910/248 509/911/248 +f 470/912/232 510/913/232 511/914/232 466/915/232 +f 460/902/228 506/901/228 509/911/228 457/916/228 +f 464/917/230 512/918/230 505/900/230 462/899/230 +f 457/919/233 509/920/233 510/913/233 470/912/233 +f 466/915/231 511/914/231 512/918/231 464/917/231 +f 513/921/234 514/922/234 515/923/234 516/924/234 +f 509/920/249 508/925/249 513/921/249 510/913/249 +f 511/914/250 516/924/250 517/926/250 512/918/250 +f 505/900/251 518/927/251 507/909/251 506/901/251 +f 510/913/252 513/921/252 516/924/252 511/914/252 +f 512/918/253 517/926/253 518/927/253 505/900/253 +f 519/928/254 520/929/254 521/930/254 514/922/254 +f 517/926/234 522/931/234 523/932/234 518/927/234 +f 507/909/234 524/933/234 519/934/234 508/910/234 +f 508/925/234 519/928/234 514/922/234 513/921/234 +f 516/924/234 515/923/234 522/931/234 517/926/234 +f 518/927/234 523/932/234 524/933/234 507/909/234 +f 521/930/234 525/935/234 526/936/234 527/937/234 +f 515/923/255 527/937/255 528/938/255 522/931/255 +f 523/932/256 529/939/256 530/940/256 524/933/256 +f 514/922/257 521/930/257 527/937/257 515/923/257 +f 522/931/258 528/938/258 529/939/258 523/932/258 +f 524/933/259 530/940/259 520/941/259 519/934/259 +f 531/942/230 532/943/230 533/944/230 525/935/230 +f 528/938/234 534/945/234 535/946/234 529/939/234 +f 530/940/234 536/947/234 531/948/234 520/941/234 +f 520/929/234 531/942/234 525/935/234 521/930/234 +f 527/937/234 526/936/234 534/945/234 528/938/234 +f 529/939/234 535/946/234 536/947/234 530/940/234 +f 537/949/234 538/950/234 539/951/234 540/952/234 533/953/234 532/954/234 +f 526/936/228 540/955/228 539/956/228 534/945/228 +f 535/946/232 538/957/232 537/958/232 536/947/232 +f 525/935/229 533/944/229 540/955/229 526/936/229 +f 534/945/233 539/956/233 538/957/233 535/946/233 +f 536/947/231 537/958/231 532/959/231 531/948/231 +o ring_Torus +v 0.990151 -0.648179 -0.190841 +v 0.990151 -0.321606 -0.374799 +v 1.068843 -0.322088 -0.329369 +v 1.068843 -0.609076 -0.167709 +v 1.068843 -0.323051 -0.238509 +v 1.068843 -0.530870 -0.121444 +v 0.990151 -0.323533 -0.193078 +v 0.990151 -0.491768 -0.098312 +v 0.911459 -0.323051 -0.238509 +v 0.911459 -0.530870 -0.121444 +v 0.911459 -0.322088 -0.329369 +v 0.911459 -0.609076 -0.167709 +v 0.990151 0.000993 -0.183958 +v 1.068843 -0.038592 -0.161660 +v 1.068843 -0.117761 -0.117064 +v 0.990151 -0.157346 -0.094766 +v 0.911459 -0.117761 -0.117064 +v 0.911459 -0.038592 -0.161660 +v 0.990151 -0.002981 0.190841 +v 1.068843 -0.042084 0.167709 +v 1.068843 -0.120290 0.121444 +v 0.990151 -0.159393 0.098312 +v 0.911459 -0.120290 0.121444 +v 0.911459 -0.042084 0.167709 +v 0.990151 -0.329554 0.374799 +v 1.068843 -0.329073 0.329369 +v 1.068843 -0.328109 0.238509 +v 0.990151 -0.327627 0.193079 +v 0.911459 -0.328109 0.238509 +v 0.911459 -0.329073 0.329369 +v 0.990151 -0.652153 0.183958 +v 1.068843 -0.612568 0.161660 +v 1.068843 -0.533399 0.117064 +v 0.990151 -0.493815 0.094766 +v 0.911459 -0.533399 0.117064 +v 0.911459 -0.612568 0.161660 +vt 0.500000 0.500000 +vt 0.666667 0.500000 +vt 0.666667 0.666667 +vt 0.500000 0.666667 +vt 0.666667 0.833333 +vt 0.500000 0.833333 +vt 0.666667 1.000000 +vt 0.500000 1.000000 +vt 0.500000 -0.000000 +vt 0.666667 -0.000000 +vt 0.666667 0.166667 +vt 0.500000 0.166667 +vt 0.666667 0.333333 +vt 0.500000 0.333333 +vt 0.833333 0.500000 +vt 0.833333 0.666667 +vt 0.833333 0.833333 +vt 0.833333 1.000000 +vt 0.833333 -0.000000 +vt 0.833333 0.166667 +vt 0.833333 0.333333 +vt 1.000000 0.500000 +vt 1.000000 0.666667 +vt 1.000000 0.833333 +vt 1.000000 1.000000 +vt 1.000000 -0.000000 +vt 1.000000 0.166667 +vt 1.000000 0.333333 +vt -0.000000 0.500000 +vt 0.166667 0.500000 +vt 0.166667 0.666667 +vt -0.000000 0.666667 +vt 0.166667 0.833333 +vt -0.000000 0.833333 +vt 0.166667 1.000000 +vt -0.000000 1.000000 +vt -0.000000 -0.000000 +vt 0.166667 -0.000000 +vt 0.166667 0.166667 +vt -0.000000 0.166667 +vt 0.166667 0.333333 +vt -0.000000 0.333333 +vt 0.333333 0.500000 +vt 0.333333 0.666667 +vt 0.333333 0.833333 +vt 0.333333 1.000000 +vt 0.333333 -0.000000 +vt 0.333333 0.166667 +vt 0.333333 0.333333 +vn 0.4472 -0.4390 -0.7793 +vn 1.0000 0.0000 0.0000 +vn 0.4472 0.4390 0.7793 +vn -0.4472 0.4390 0.7793 +vn -1.0000 -0.0000 0.0000 +vn -0.4472 -0.4390 -0.7793 +vn 0.4472 0.4554 -0.7698 +vn 0.4472 -0.4554 0.7698 +vn -0.4472 -0.4554 0.7698 +vn -0.4472 0.4554 -0.7698 +vn 0.4472 0.8944 0.0095 +vn 0.4472 -0.8944 -0.0095 +vn -0.4472 -0.8944 -0.0095 +vn -0.4472 0.8944 0.0095 +s 1 +f 541/960/260 542/961/260 543/962/260 544/963/260 +f 544/963/261 543/962/261 545/964/261 546/965/261 +f 546/965/262 545/964/262 547/966/262 548/967/262 +f 548/968/263 547/969/263 549/970/263 550/971/263 +f 550/971/264 549/970/264 551/972/264 552/973/264 +f 552/973/265 551/972/265 542/961/265 541/960/265 +f 542/961/266 553/974/266 554/975/266 543/962/266 +f 543/962/261 554/975/261 555/976/261 545/964/261 +f 545/964/267 555/976/267 556/977/267 547/966/267 +f 547/969/268 556/978/268 557/979/268 549/970/268 +f 549/970/264 557/979/264 558/980/264 551/972/264 +f 551/972/269 558/980/269 553/974/269 542/961/269 +f 553/974/270 559/981/270 560/982/270 554/975/270 +f 554/975/261 560/982/261 561/983/261 555/976/261 +f 555/976/271 561/983/271 562/984/271 556/977/271 +f 556/978/272 562/985/272 563/986/272 557/979/272 +f 557/979/264 563/986/264 564/987/264 558/980/264 +f 558/980/273 564/987/273 559/981/273 553/974/273 +f 559/988/262 565/989/262 566/990/262 560/991/262 +f 560/991/261 566/990/261 567/992/261 561/993/261 +f 561/993/260 567/992/260 568/994/260 562/995/260 +f 562/996/265 568/997/265 569/998/265 563/999/265 +f 563/999/264 569/998/264 570/1000/264 564/1001/264 +f 564/1001/263 570/1000/263 565/989/263 559/988/263 +f 565/989/267 571/1002/267 572/1003/267 566/990/267 +f 566/990/261 572/1003/261 573/1004/261 567/992/261 +f 567/992/266 573/1004/266 574/1005/266 568/994/266 +f 568/997/269 574/1006/269 575/1007/269 569/998/269 +f 569/998/264 575/1007/264 576/1008/264 570/1000/264 +f 570/1000/268 576/1008/268 571/1002/268 565/989/268 +f 571/1002/271 541/960/271 544/963/271 572/1003/271 +f 572/1003/261 544/963/261 546/965/261 573/1004/261 +f 573/1004/270 546/965/270 548/967/270 574/1005/270 +f 574/1006/273 548/968/273 550/971/273 575/1007/273 +f 575/1007/264 550/971/264 552/973/264 576/1008/264 +f 576/1008/272 552/973/272 541/960/272 571/1002/272 +o HolographicHolder_Cylinder.009 +v -0.972691 1.166717 0.278124 +v -0.972691 1.166717 -0.278124 +v -0.987438 1.166717 -0.260322 +v -0.987438 1.166717 0.260322 +v -0.934937 1.102284 0.278124 +v -0.934937 1.102284 -0.278124 +v -0.971860 1.037372 0.278124 +v -0.971860 1.037372 -0.278124 +v -1.046537 1.036892 0.278124 +v -1.046537 1.036892 -0.278124 +v -1.047369 1.166237 0.278124 +v -1.084291 1.101324 0.278124 +v -1.084291 1.101324 -0.278124 +v -1.047368 1.166237 -0.278124 +v -1.032621 1.166237 -0.260322 +v -1.032621 1.166237 0.260322 +v -1.033084 1.202181 0.260322 +v -1.033084 1.202181 -0.260322 +v -0.987902 1.202661 0.260322 +v -0.987902 1.202661 -0.260322 +vt 0.833333 1.000000 +vt 0.833333 0.500000 +vt 0.833333 0.500000 +vt 0.833333 1.000000 +vt 0.666667 1.000000 +vt 0.666667 0.500000 +vt 0.500000 1.000000 +vt 0.500000 0.500000 +vt 0.333333 1.000000 +vt 0.333333 0.500000 +vt 0.457846 0.370000 +vt 0.250000 0.490000 +vt 0.042154 0.370000 +vt 0.042154 0.130000 +vt 0.250000 0.010000 +vt 0.457846 0.130000 +vt 0.166667 1.000000 +vt 0.166667 0.500000 +vt -0.000000 1.000000 +vt -0.000000 0.500000 +vt 0.750000 0.490000 +vt 0.957846 0.370000 +vt 0.957846 0.130000 +vt 0.750000 0.010000 +vt 0.542154 0.130000 +vt 0.542154 0.370000 +vt -0.000000 0.500000 +vt -0.000000 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.500000 +vt 0.457846 0.370000 +vt 0.250000 0.490000 +vt 0.750000 0.490000 +vt 0.957846 0.370000 +vt 1.000000 0.500000 +vt 1.000000 1.000000 +vt 0.833333 1.000000 +vt 0.833333 0.500000 +vt 0.750000 0.490000 +vt 0.957846 0.370000 +vt 0.457846 0.370000 +vt 0.250000 0.490000 +vn -0.0005 1.0000 -0.0000 +vn -0.0078 1.0000 0.0000 +vn 0.8628 0.5055 0.0000 +vn 0.8692 -0.4944 0.0000 +vn 0.0064 -1.0000 0.0000 +vn -0.0000 0.0000 1.0000 +vn -0.8628 -0.5056 0.0000 +vn -0.8692 0.4944 -0.0000 +vn -0.0000 0.0000 -1.0000 +vn -0.9999 -0.0129 0.0000 +vn -0.0079 1.0000 -0.0000 +vn -0.0106 0.9999 0.0000 +vn 0.9999 0.0129 0.0000 +s 1 +f 577/1009/274 578/1010/274 579/1011/275 580/1012/275 +f 578/1010/276 577/1009/276 581/1013/276 582/1014/276 +f 582/1014/277 581/1013/277 583/1015/277 584/1016/277 +f 584/1016/278 583/1015/278 585/1017/278 586/1018/278 +f 577/1019/279 587/1020/279 588/1021/279 585/1022/279 583/1023/279 581/1024/279 +f 586/1018/280 585/1017/280 588/1025/280 589/1026/280 +f 589/1026/281 588/1025/281 587/1027/281 590/1028/281 +f 590/1029/282 578/1030/282 582/1031/282 584/1032/282 586/1033/282 589/1034/282 +f 591/1035/283 592/1036/283 593/1037/283 594/1038/283 +f 587/1020/274 577/1019/274 580/1039/275 592/1040/284 +f 590/1028/274 587/1027/274 592/1036/284 591/1035/284 +f 578/1030/274 590/1029/274 591/1041/284 579/1042/275 +f 594/1043/285 593/1044/285 595/1045/285 596/1046/285 +f 579/1042/282 591/1041/282 594/1047/282 596/1048/282 +f 580/1012/286 579/1011/286 596/1046/286 595/1045/286 +f 592/1040/279 580/1039/279 595/1049/279 593/1050/279 +o HandleHilt_Cylinder.003 +v -1.464091 -0.996279 -0.140051 +v -1.457375 -0.967729 -0.140051 +v -1.339310 -0.995504 -0.070026 +v -1.346026 -1.024054 -0.070026 +v -1.339310 -0.995504 0.070026 +v -1.346026 -1.024054 0.070026 +v -1.457375 -0.967729 0.140051 +v -1.464091 -0.996279 0.140051 +v -1.575440 -0.939954 0.070026 +v -1.582156 -0.968503 0.070026 +v -1.343945 -0.917630 -0.057125 +v -1.343945 -0.917630 0.057125 +v -1.575440 -0.939954 -0.070026 +v -1.582156 -0.968503 -0.070026 +v -1.482215 -1.073316 0.113549 +v -1.386492 -1.095835 0.056774 +v -1.440258 -0.894971 -0.114249 +v -1.536572 -0.872313 -0.057125 +v -1.536572 -0.872313 0.057125 +v -1.440258 -0.894971 0.114249 +v -1.577937 -1.050797 0.056774 +v -1.577937 -1.050797 -0.056774 +v -1.539716 -1.059789 -0.034105 +v -1.539716 -1.059789 0.034105 +v -1.482215 -1.073316 -0.113549 +v -1.386492 -1.095835 -0.056774 +v -1.482215 -1.073316 -0.068210 +v -1.487302 -1.094942 -0.059778 +v -1.537696 -1.083087 -0.029889 +v -1.482215 -1.073316 0.068210 +v -1.424713 -1.086844 0.034105 +v -1.424713 -1.086844 -0.034105 +v -1.436908 -1.106798 -0.029889 +v -1.436908 -1.106798 0.029889 +v -1.487302 -1.094942 0.059778 +v -1.537696 -1.083087 0.029889 +vt 1.000000 0.500000 +vt 1.000000 1.000000 +vt 0.833333 1.000000 +vt 0.833333 0.500000 +vt 0.666667 1.000000 +vt 0.666667 0.500000 +vt 0.500000 1.000000 +vt 0.500000 0.500000 +vt 0.333333 1.000000 +vt 0.333333 0.500000 +vt 0.833333 1.000000 +vt 0.666667 1.000000 +vt 0.166667 1.000000 +vt 0.166667 0.500000 +vt -0.000000 1.000000 +vt -0.000000 0.500000 +vt 0.500000 0.500000 +vt 0.666667 0.500000 +vt 0.457846 0.370000 +vt 0.250000 0.490000 +vt 0.042154 0.370000 +vt 0.042154 0.130000 +vt 0.250000 0.010000 +vt 0.457846 0.130000 +vt 0.333333 1.000000 +vt 0.166667 1.000000 +vt 1.000000 1.000000 +vt 0.500000 1.000000 +vt -0.000000 1.000000 +vt 0.333333 0.500000 +vt 0.166667 0.500000 +vt 0.166667 0.500000 +vt 0.333333 0.500000 +vt -0.000000 0.500000 +vt 0.833333 0.500000 +vt 1.000000 0.500000 +vt -0.000000 0.500000 +vt -0.000000 0.500000 +vt 0.166667 0.500000 +vt 0.500000 0.500000 +vt 0.666667 0.500000 +vt 0.833333 0.500000 +vt 1.000000 0.500000 +vt 0.750000 0.490000 +vt 0.957846 0.370000 +vt 0.957846 0.130000 +vt 0.750000 0.010000 +vt 0.542154 0.130000 +vt 0.542154 0.370000 +vt 0.333333 0.500000 +vt 0.500000 0.500000 +vt 0.666667 0.500000 +vt 0.833333 0.500000 +vt 1.000000 0.500000 +vn 0.4867 -0.1145 -0.8660 +vn 0.9734 -0.2290 0.0000 +vn 0.4867 -0.1145 0.8660 +vn -0.4867 0.1145 0.8660 +vn 0.9982 0.0594 0.0000 +vn -0.9734 0.2290 0.0000 +vn -0.4867 0.1145 -0.8660 +vn 0.4037 -0.3811 0.8318 +vn 0.2290 0.9734 -0.0000 +vn -0.8670 0.4982 0.0000 +vn 0.5319 0.1691 -0.8297 +vn 0.5319 0.1691 0.8297 +vn -0.4007 0.3885 -0.8297 +vn -0.4007 0.3885 0.8297 +vn -0.2290 -0.9734 0.0000 +vn -0.5312 -0.1612 -0.8318 +vn -0.5312 -0.1612 0.8318 +vn 0.8711 -0.4911 0.0000 +vn -0.9987 -0.0512 0.0000 +vn 0.4037 -0.3811 -0.8318 +vn -0.5339 -0.1952 -0.8227 +vn -0.5339 -0.1952 0.8227 +vn 0.8533 -0.5215 0.0000 +vn -0.9963 -0.0864 0.0000 +vn 0.3909 -0.4127 0.8227 +vn 0.3909 -0.4127 -0.8227 +s 1 +f 597/1051/287 598/1052/287 599/1053/287 600/1054/287 +f 600/1054/288 599/1053/288 601/1055/288 602/1056/288 +f 602/1056/289 601/1055/289 603/1057/289 604/1058/289 +f 604/1058/290 603/1057/290 605/1059/290 606/1060/290 +f 601/1055/291 599/1053/291 607/1061/291 608/1062/291 +f 606/1060/292 605/1059/292 609/1063/292 610/1064/292 +f 610/1064/293 609/1063/293 598/1065/293 597/1066/293 +f 602/1056/294 604/1058/294 611/1067/294 612/1068/294 +f 607/1069/295 613/1070/295 614/1071/295 615/1072/295 616/1073/295 608/1074/295 +f 609/1063/296 605/1059/296 615/1075/296 614/1076/296 +f 599/1053/297 598/1052/297 613/1077/297 607/1061/297 +f 603/1057/298 601/1055/298 608/1062/298 616/1078/298 +f 598/1065/299 609/1063/299 614/1076/299 613/1079/299 +f 605/1059/300 603/1057/300 616/1078/300 615/1075/300 +f 617/1080/301 618/1081/301 619/1082/301 620/1083/301 +f 610/1064/302 597/1066/302 621/1084/302 618/1081/302 +f 604/1058/303 606/1060/303 617/1080/303 611/1067/303 +f 600/1054/304 602/1056/304 612/1068/304 622/1085/304 +f 606/1060/305 610/1064/305 618/1081/305 617/1080/305 +f 597/1051/306 600/1054/306 622/1085/306 621/1086/306 +f 619/1082/307 623/1087/307 624/1088/307 625/1089/307 +f 612/1068/301 611/1067/301 626/1090/301 627/1091/301 +f 621/1086/301 622/1085/301 628/1092/301 623/1093/301 +f 618/1081/301 621/1084/301 623/1087/301 619/1082/301 +f 611/1067/301 617/1080/301 620/1083/301 626/1090/301 +f 622/1085/301 612/1068/301 627/1091/301 628/1092/301 +f 624/1094/301 629/1095/301 630/1096/301 631/1097/301 632/1098/301 625/1099/301 +f 626/1090/308 620/1083/308 632/1100/308 631/1101/308 +f 628/1092/309 627/1091/309 630/1102/309 629/1103/309 +f 620/1083/310 619/1082/310 625/1089/310 632/1100/310 +f 627/1091/311 626/1090/311 631/1101/311 630/1102/311 +f 623/1093/312 628/1092/312 629/1103/312 624/1104/312 +o HandleComfortThing_Cube.006 +v -1.508359 -0.214874 0.108693 +v -1.504838 -0.215309 -0.106817 +v -1.564296 -0.274102 -0.089219 +v -1.567402 -0.273718 0.089973 +v -1.348484 -0.928894 -0.174279 +v -1.331423 -0.813343 -0.174279 +v -1.263873 -0.855085 -0.182453 +v -1.262042 -0.949106 -0.182453 +v -1.263873 -0.855085 0.182453 +v -1.207149 -0.865197 0.174081 +v -1.207149 -0.865197 -0.174081 +v -1.570189 -0.877055 0.143835 +v -1.435938 -0.379825 0.163084 +v -1.622805 -0.828855 0.096503 +v -1.262042 -0.949106 0.182453 +v -1.348484 -0.928894 0.174279 +v -1.435938 -0.379825 -0.163084 +v -1.112852 -0.829663 0.130793 +v -1.112852 -0.829663 -0.130793 +v -1.205319 -0.959218 -0.174081 +v -1.205319 -0.959218 0.174081 +v -1.111021 -0.923684 0.130793 +v -1.072210 -0.848373 0.087270 +v -1.073111 -0.802094 0.087270 +v -1.111021 -0.923684 -0.130793 +v -1.072210 -0.848373 -0.087270 +v -1.073111 -0.802094 -0.087270 +v -1.681696 -0.766817 -0.072169 +v -1.689936 -0.702839 -0.059605 +v -1.640119 -0.414721 -0.072179 +v -1.619700 -0.829239 -0.095954 +v -1.684682 -0.766448 0.071709 +v -1.643105 -0.414353 0.071698 +v -1.666879 -0.498637 -0.059615 +v -1.669865 -0.498268 0.058900 +v -1.692922 -0.702470 0.058910 +v -1.690559 -0.607421 0.054481 +v -1.687573 -0.607789 -0.055307 +v -1.331423 -0.813343 0.174279 +v -1.416650 -0.767127 -0.178303 +v -1.416650 -0.767127 0.178303 +v -1.469005 -0.685482 -0.171908 +v -1.469005 -0.685482 0.171908 +v -1.542909 -0.883434 -0.161182 +v -1.516768 -0.889546 -0.174389 +v -1.516768 -0.889546 0.174389 +v -1.542909 -0.883434 0.161182 +v -1.432626 -0.909220 -0.178303 +v -1.432626 -0.909220 0.178303 +v -1.484962 -0.656299 -0.158888 +v -1.570189 -0.877055 -0.143835 +v -1.484962 -0.656299 0.158888 +vt 0.875000 0.750000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.750000 +vt 0.375000 0.435792 +vt 0.625000 0.435792 +vt 0.625000 0.500000 +vt 0.375000 0.500000 +vt 0.625000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 0.500000 +vt 0.375000 0.978890 +vt 0.625000 0.978890 +vt 0.625000 1.000000 +vt 0.375000 1.000000 +vt 0.310792 0.500000 +vt 0.375000 0.750000 +vt 0.310792 0.750000 +vt 0.853890 0.500000 +vt 0.853890 0.750000 +vt 0.625000 0.750000 +vt 0.625000 0.500000 +vt 0.375000 0.500000 +vt 0.375000 0.750000 +vt 0.375000 0.750000 +vt 0.375000 0.750000 +vt 0.625000 0.750000 +vt 0.375000 0.500000 +vt 0.375000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.250000 +vt 0.375000 0.250000 +vt 0.375000 0.250000 +vt 0.625000 0.250000 +vt 0.125000 0.500000 +vt 0.125000 0.750000 +vt 0.125000 0.750000 +vt 0.125000 0.500000 +vt 0.625000 0.250000 +vt 0.375000 0.250000 +vt 0.625000 1.000000 +vt 0.375000 1.000000 +vt 0.875000 0.750000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.750000 +vt 0.625000 1.000000 +vt 0.375000 1.000000 +vt 0.125000 0.750000 +vt 0.125000 0.500000 +vt 0.375000 0.000000 +vt 0.625000 0.000000 +vt 0.625000 0.250000 +vt 0.375000 0.250000 +vt 0.125000 0.750000 +vt 0.125000 0.500000 +vt 0.625000 1.000000 +vt 0.375000 1.000000 +vt 0.689208 0.500000 +vt 0.689208 0.750000 +vt 0.751708 0.500000 +vt 0.751708 0.750000 +vt 0.814208 0.500000 +vt 0.814208 0.750000 +vt 0.166374 0.500000 +vt 0.185792 0.500000 +vt 0.185792 0.750000 +vt 0.166374 0.750000 +vt 0.248292 0.500000 +vt 0.248292 0.750000 +vt 0.625000 0.814208 +vt 0.375000 0.814208 +vt 0.625000 0.876708 +vt 0.375000 0.876708 +vt 0.625000 0.939208 +vt 0.375000 0.939208 +vt 0.375000 0.291374 +vt 0.625000 0.291374 +vt 0.625000 0.310792 +vt 0.375000 0.310792 +vt 0.625000 0.373292 +vt 0.375000 0.373292 +vt 0.625000 0.271110 +vt 0.375000 0.271110 +vt 0.146110 0.500000 +vt 0.146110 0.750000 +vt 0.833626 0.500000 +vt 0.833626 0.750000 +vt 0.625000 0.958626 +vt 0.375000 0.958626 +vn -0.7044 0.7097 -0.0133 +vn -0.1026 0.0075 -0.9947 +vn 0.1755 0.9845 0.0000 +vn -0.5269 0.0940 0.8447 +vn -0.2277 -0.9737 0.0000 +vn 0.9190 0.3942 0.0057 +vn -0.3526 0.9358 0.0000 +vn 0.1465 0.0029 -0.9892 +vn 0.1465 0.0029 0.9892 +vn -0.1755 -0.9845 0.0000 +vn 0.7339 0.0143 0.6791 +vn 0.4147 0.0081 -0.9099 +vn 0.4147 0.0081 0.9099 +vn 0.3526 -0.9358 0.0000 +vn 0.9998 0.0195 0.0000 +vn 0.8889 -0.4581 0.0000 +vn -0.5700 0.8216 0.0000 +vn 0.7339 0.0143 -0.6791 +vn -0.3667 0.0433 -0.9293 +vn -0.7097 -0.7044 -0.0113 +vn -0.3211 0.0435 -0.9461 +vn -0.3371 0.0447 0.9404 +vn -0.9525 0.3038 -0.0225 +vn -0.3829 0.0452 0.9227 +vn -0.8802 0.4743 -0.0177 +vn -0.9916 -0.1277 -0.0222 +vn -0.9822 0.1862 -0.0263 +vn -0.9993 0.0248 -0.0262 +vn -0.5482 0.0619 -0.8340 +vn -0.5564 0.0629 0.8286 +vn 0.5257 0.8507 0.0000 +vn 0.4767 0.8791 0.0000 +vn 0.8418 0.5398 0.0000 +vn -0.1026 0.0075 0.9947 +vn 0.0452 -0.0058 0.9990 +vn -0.0616 0.0185 0.9979 +vn -0.4504 0.1202 -0.8847 +vn -0.0616 0.0185 -0.9979 +vn 0.0452 -0.0058 -0.9990 +vn -0.5492 0.1006 -0.8296 +vn -0.3469 0.0702 -0.9353 +vn -0.6850 -0.7286 -0.0038 +vn 0.8774 0.4798 0.0000 +vn 0.9846 -0.1746 0.0000 +vn -0.4504 0.1202 0.8847 +vn -0.3469 0.0702 0.9353 +s 1 +f 633/1105/313 634/1106/313 635/1107/313 636/1108/313 +f 637/1109/314 638/1110/314 639/1111/314 640/1112/314 +f 639/1111/315 641/1113/315 642/1114/315 643/1115/315 +f 644/1116/316 645/1117/316 633/1118/316 646/1119/316 +f 637/1120/317 640/1112/317 647/1121/317 648/1122/317 +f 649/1123/318 634/1106/318 633/1105/318 645/1124/318 +f 643/1115/319 642/1114/319 650/1125/319 651/1126/319 +f 640/1112/320 639/1111/320 643/1115/320 652/1127/320 +f 641/1113/321 647/1121/321 653/1128/321 642/1114/321 +f 647/1121/322 640/1112/322 652/1127/322 653/1128/322 +f 650/1125/323 654/1129/323 655/1130/323 656/1131/323 +f 652/1127/324 643/1115/324 651/1126/324 657/1132/324 +f 642/1114/325 653/1128/325 654/1129/325 650/1125/325 +f 653/1128/326 652/1127/326 657/1132/326 654/1129/326 +f 658/1133/327 659/1134/327 656/1131/327 655/1130/327 +f 654/1129/328 657/1132/328 658/1133/328 655/1130/328 +f 651/1126/329 650/1125/329 656/1131/329 659/1134/329 +f 657/1132/330 651/1126/330 659/1134/330 658/1133/330 +f 635/1135/331 660/1136/331 661/1137/331 662/1138/331 +f 663/1139/332 646/1140/332 664/1141/332 660/1142/332 +f 634/1143/333 663/1144/333 660/1136/333 635/1135/333 +f 646/1119/334 633/1118/334 636/1145/334 664/1146/334 +f 665/1147/335 662/1148/335 666/1149/335 667/1150/335 +f 664/1146/336 636/1145/336 665/1151/336 668/1152/336 +f 636/1108/337 635/1107/337 662/1148/337 665/1147/337 +f 660/1142/338 664/1141/338 668/1153/338 661/1154/338 +f 669/1155/339 667/1156/339 666/1157/339 670/1158/339 +f 661/1154/340 668/1153/340 669/1159/340 670/1160/340 +f 662/1138/341 661/1137/341 670/1158/341 666/1157/341 +f 668/1152/342 665/1151/342 667/1161/342 669/1162/342 +f 639/1111/343 638/1163/343 671/1164/343 641/1113/343 +f 638/1163/344 672/1165/344 673/1166/344 671/1164/344 +f 672/1165/345 674/1167/345 675/1168/345 673/1166/345 +f 676/1169/317 677/1170/317 678/1171/317 679/1172/317 +f 677/1170/317 680/1173/317 681/1174/317 678/1171/317 +f 680/1173/317 637/1120/317 648/1122/317 681/1174/317 +f 647/1121/346 641/1113/346 671/1175/346 648/1176/346 +f 648/1176/347 671/1175/347 673/1177/347 681/1178/347 +f 681/1178/348 673/1177/348 675/1179/348 678/1180/348 +f 676/1181/349 682/1182/349 674/1183/349 677/1184/349 +f 677/1184/350 674/1183/350 672/1185/350 680/1186/350 +f 680/1186/351 672/1185/351 638/1110/351 637/1109/351 +f 663/1144/352 634/1143/352 649/1187/352 683/1188/352 +f 683/1188/353 649/1187/353 682/1182/353 676/1181/353 +f 663/1139/354 683/1189/354 644/1190/354 646/1140/354 +f 683/1189/317 676/1169/317 679/1172/317 644/1190/317 +f 674/1167/355 682/1191/355 684/1192/355 675/1168/355 +f 682/1191/356 649/1123/356 645/1124/356 684/1192/356 +f 678/1180/357 675/1179/357 684/1193/357 679/1194/357 +f 679/1194/358 684/1193/358 645/1117/358 644/1116/358 +o Grip_Cube.001 +v -1.325666 -0.019640 0.170554 +v -1.325666 0.137146 0.170554 +v -1.472478 0.148884 0.071087 +v -1.472478 -0.007902 0.071087 +v -1.325666 -0.019640 -0.170554 +v -1.325666 0.137146 -0.170554 +v -1.062875 0.137146 -0.170554 +v -1.062875 -0.019640 -0.170554 +v -1.130714 -0.142396 -0.170554 +v -0.914155 -0.020276 -0.107189 +v -0.981994 -0.143031 -0.107189 +v -1.062875 -0.019640 0.170554 +v -1.062875 0.137146 0.170554 +v -0.914155 0.136510 -0.107189 +v -1.259746 -0.728734 -0.170554 +v -1.147611 -0.221161 -0.170554 +v -0.998891 -0.221796 -0.107189 +v -1.111026 -0.729370 -0.107189 +v -1.346664 -0.179545 0.170554 +v -1.130714 -0.142396 0.170554 +v -1.346664 -0.179545 -0.170554 +v -1.447785 -0.735647 0.170554 +v -1.363562 -0.258310 0.170554 +v -1.510373 -0.246572 0.071087 +v -1.594597 -0.723909 0.071087 +v -0.981994 -0.143031 0.107189 +v -0.914155 -0.020276 0.107189 +v -1.363562 -0.258310 -0.170554 +v -1.447785 -0.735647 -0.170554 +v -1.594597 -0.723909 -0.071087 +v -1.510373 -0.246572 -0.071087 +v -1.147611 -0.221161 0.170554 +v -1.259746 -0.728734 0.170554 +v -1.483874 -0.874924 0.170554 +v -1.219691 -0.868011 0.170554 +v -1.493475 -0.167807 0.071087 +v -1.483874 -0.751872 -0.170554 +v -1.219691 -0.868011 -0.170554 +v -0.914155 0.136510 0.107189 +v -1.472478 -0.007902 -0.071087 +v -1.472478 0.148884 -0.071087 +v -1.493475 -0.167807 -0.071087 +v -1.630686 -0.740134 -0.071087 +v -1.630686 -0.740134 0.071087 +v -0.998891 -0.221796 0.107189 +v -1.111026 -0.729370 0.107189 +v -1.100054 -0.868647 0.107189 +v -1.100054 -0.868647 -0.107189 +vt 0.375000 1.000000 +vt 0.625000 1.000000 +vt 0.625000 1.000000 +vt 0.375000 1.000000 +vt 0.375000 0.250000 +vt 0.625000 0.250000 +vt 0.625000 0.500000 +vt 0.375000 0.500000 +vt 0.375000 0.500000 +vt 0.375000 0.500000 +vt 0.375000 0.500000 +vt 0.375000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.750000 +vt 0.375000 0.500000 +vt 0.375000 0.500000 +vt 0.375000 0.500000 +vt 0.375000 0.500000 +vt 0.375000 1.000000 +vt 0.375000 0.750000 +vt 0.375000 0.250000 +vt 0.375000 1.000000 +vt 0.375000 1.000000 +vt 0.375000 1.000000 +vt 0.375000 1.000000 +vt 0.375000 0.750000 +vt 0.375000 0.750000 +vt 0.375000 0.250000 +vt 0.375000 0.250000 +vt 0.375000 0.250000 +vt 0.375000 0.250000 +vt 0.375000 0.750000 +vt 0.375000 0.750000 +vt 0.375000 1.000000 +vt 0.375000 0.750000 +vt 0.375000 1.000000 +vt 0.125000 0.500000 +vt 0.375000 0.500000 +vt 0.125000 0.750000 +vt 0.375000 0.250000 +vt 0.625000 0.750000 +vt 0.375000 0.250000 +vt 0.625000 0.250000 +vt 0.375000 0.000000 +vt 0.625000 0.000000 +vt 0.375000 0.250000 +vt 0.375000 0.000000 +vt 0.375000 0.000000 +vt 0.375000 0.000000 +vt 0.375000 0.250000 +vt 0.375000 0.000000 +vt 0.125000 0.750000 +vt 0.125000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.750000 +vt 0.375000 1.000000 +vt 0.375000 0.750000 +vt 0.375000 0.750000 +vt 0.375000 0.750000 +vt 0.375000 0.500000 +vn -0.5609 0.0000 0.8279 +vn 0.0000 0.0000 -1.0000 +vn 0.3824 -0.2113 -0.8995 +vn -0.0000 -0.0000 1.0000 +vn 0.3920 0.0000 -0.9200 +vn 0.0039 1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.3902 -0.0862 -0.9167 +vn 0.3902 -0.0839 -0.9169 +vn 0.3901 -0.0861 -0.9167 +vn -0.5529 0.0976 0.8275 +vn 0.3824 -0.2113 0.8995 +vn -0.5529 0.0976 -0.8275 +vn -0.5505 0.1181 0.8264 +vn -0.1994 -0.9644 -0.1739 +vn 0.3920 -0.0000 0.9200 +vn -0.5609 -0.0000 -0.8279 +vn -1.0000 0.0000 0.0000 +vn -0.9915 0.1302 0.0000 +vn -0.9778 0.2098 0.0000 +vn -0.9848 0.1738 0.0000 +vn -0.4100 0.9121 0.0000 +vn -0.5554 0.0729 0.8284 +vn -0.4354 -0.8724 -0.2221 +vn 0.0797 0.9968 0.0000 +vn -0.5554 0.0729 -0.8284 +vn -0.3339 0.7427 -0.5805 +vn -0.5505 0.1181 -0.8264 +vn -0.4704 0.2183 0.8550 +vn 1.0000 -0.0000 0.0000 +vn 0.8752 -0.4837 -0.0000 +vn 0.9778 -0.2098 0.0000 +vn 0.9771 -0.2127 0.0000 +vn 0.9765 -0.2157 0.0000 +vn 0.9969 0.0785 0.0000 +vn 0.4260 0.0780 0.9013 +vn 0.3903 -0.0837 0.9169 +vn 0.3902 -0.0839 0.9169 +vn 0.3901 -0.0861 0.9167 +vn -0.0053 -1.0000 0.0000 +vn 0.4260 0.0780 -0.9013 +vn 0.3903 -0.0837 -0.9169 +vn 0.0043 1.0000 0.0000 +vn 0.3902 -0.0862 0.9167 +s 1 +f 685/1195/359 686/1196/359 687/1197/359 688/1198/359 +f 689/1199/360 690/1200/360 691/1201/360 692/1202/360 +f 693/1203/361 692/1202/361 694/1204/361 695/1205/361 +f 696/1206/362 697/1207/362 686/1196/362 685/1195/362 +f 692/1202/363 691/1201/363 698/1208/363 694/1204/363 +f 691/1201/364 690/1209/365 686/1210/365 697/1207/364 +f 699/1211/366 700/1212/367 701/1213/368 702/1214/366 +f 696/1206/362 685/1195/362 703/1215/362 704/1216/362 +f 689/1199/360 692/1202/360 693/1203/360 705/1217/360 +f 706/1218/369 707/1219/369 708/1220/369 709/1221/369 +f 696/1206/370 704/1216/370 710/1222/370 711/1223/370 +f 712/1224/371 713/1225/371 714/1226/371 715/1227/371 +f 704/1216/362 703/1215/362 707/1219/362 716/1228/362 +f 705/1217/360 693/1203/360 700/1212/360 712/1224/360 +f 717/1229/362 706/1218/362 718/1230/362 719/1231/362 +f 707/1219/372 703/1215/372 720/1232/372 708/1220/372 +f 716/1228/362 707/1219/362 706/1218/362 717/1229/362 +f 712/1224/360 700/1212/360 699/1211/360 713/1225/360 +f 721/1233/373 722/1234/373 719/1231/373 718/1235/373 +f 713/1225/360 699/1211/360 722/1234/360 721/1236/360 +f 697/1207/374 696/1206/374 711/1223/374 723/1237/374 +f 690/1200/375 689/1199/375 724/1238/375 725/1239/375 +f 688/1240/376 687/1241/376 725/1239/376 724/1238/376 +f 688/1240/377 724/1238/377 726/1242/377 720/1243/377 +f 720/1243/378 726/1242/378 715/1227/378 708/1244/378 +f 708/1244/379 715/1227/379 714/1226/379 709/1245/379 +f 709/1245/380 714/1226/380 727/1246/380 728/1247/380 +f 703/1215/381 685/1195/381 688/1198/381 720/1232/381 +f 721/1233/382 718/1235/382 728/1248/382 727/1249/382 +f 686/1210/383 690/1209/383 725/1250/383 687/1251/383 +f 689/1199/384 705/1217/384 726/1242/384 724/1238/384 +f 713/1225/385 721/1236/385 727/1246/385 714/1226/385 +f 705/1217/386 712/1224/386 715/1227/386 726/1242/386 +f 718/1230/387 706/1218/387 709/1221/387 728/1252/387 +f 694/1204/388 698/1208/388 723/1237/388 711/1223/388 +f 694/1204/389 711/1223/389 710/1222/389 695/1205/389 +f 695/1205/390 710/1222/390 729/1253/391 701/1213/391 +f 701/1213/391 729/1253/391 730/1254/392 702/1214/392 +f 702/1214/393 730/1254/393 731/1255/393 732/1256/393 +f 717/1229/394 719/1231/394 731/1255/394 730/1254/394 +f 704/1216/395 716/1228/396 729/1253/397 710/1222/395 +f 719/1231/398 722/1234/398 732/1256/398 731/1255/398 +f 722/1234/399 699/1211/399 702/1214/399 732/1256/399 +f 700/1212/367 693/1203/400 695/1205/400 701/1213/368 +f 691/1201/364 697/1207/364 723/1237/401 698/1208/401 +f 716/1228/396 717/1229/402 730/1254/402 729/1253/397 +o AmmunitionCan_Cylinder.007 +v -1.114931 0.645018 -0.394257 +v -0.705608 0.645018 -0.392564 +v -0.705608 0.367434 -0.277584 +v -1.115595 0.367434 -0.277584 +v -0.705608 0.252454 0.000000 +v -1.115595 0.252454 0.000000 +v -0.705608 0.367434 0.277584 +v -1.115595 0.367434 0.277584 +v -0.705608 0.645018 0.392564 +v -1.115595 0.645018 0.392564 +v -0.705608 0.922602 0.277584 +v -1.115595 0.922602 0.277584 +v -0.705608 1.037581 0.000000 +v -1.115595 1.037581 0.000000 +v -0.705608 0.922602 -0.277584 +v -1.115595 0.922602 -0.277584 +v -1.680468 0.367434 -0.277584 +v -1.680468 0.252454 0.000000 +v -1.696762 0.326183 0.000000 +v -1.696762 0.419567 -0.225451 +v -1.696762 0.645018 0.318835 +v -1.696762 0.870468 0.225451 +v -1.717499 0.922175 0.277157 +v -1.717499 0.645018 0.391959 +v -1.680468 0.645018 0.392564 +v -1.680468 0.922602 0.277584 +v -1.680468 0.922602 -0.277584 +v -1.680468 0.645018 -0.392564 +v -1.696762 0.645018 -0.318835 +v -1.696762 0.870469 -0.225450 +v -1.680468 0.367434 0.277584 +v -1.696762 0.419567 0.225451 +v -1.680468 1.037582 0.000000 +v -1.696762 0.963853 0.000000 +v -1.717499 1.036977 0.000000 +v -1.717499 0.922175 -0.277157 +v -1.807855 0.922175 -0.277157 +v -1.807855 1.036977 0.000000 +v -1.717499 0.367861 0.277157 +v -1.717499 0.253059 0.000000 +v -1.717499 0.367861 -0.277157 +v -1.717499 0.645018 -0.391959 +v -1.807855 0.922175 0.277157 +v -1.827112 0.964049 0.000000 +v -1.827112 0.870607 0.225589 +v -1.807856 0.645018 0.391959 +v -1.807856 0.367861 0.277157 +v -1.807856 0.253059 0.000000 +v -1.807856 0.367861 -0.277157 +v -1.807856 0.645018 -0.391959 +v -1.827112 0.645018 -0.319031 +v -1.827112 0.419429 -0.225589 +v -1.850272 0.367220 -0.277798 +v -1.850272 0.645018 -0.392866 +v -1.827112 0.645018 0.319031 +v -1.827112 0.419429 0.225589 +v -1.827112 0.325987 0.000000 +v -1.827112 0.870607 -0.225589 +v -1.850272 1.037884 0.000000 +v -1.850272 0.922816 -0.277798 +v -1.929992 0.922816 -0.277798 +v -1.929992 1.037884 0.000000 +v -1.850272 0.922816 0.277798 +v -1.850272 0.645018 0.392866 +v -1.850272 0.367220 0.277798 +v -1.850272 0.252152 0.000000 +v -1.929992 0.367220 -0.277798 +v -1.929992 0.252152 0.000000 +v -2.043752 0.321683 0.000000 +v -2.043752 0.416385 -0.228633 +v -1.929992 0.922816 0.277798 +v -1.929992 0.645018 0.392866 +v -1.929992 0.367220 0.277798 +v -1.929992 0.645018 -0.392866 +v -2.043752 0.873651 -0.228633 +v -2.043752 0.645018 -0.323335 +v -2.121962 0.645018 -0.225354 +v -2.121962 0.804367 -0.159349 +v -2.043752 0.968353 0.000000 +v -2.043752 0.873651 0.228633 +v -2.043752 0.645018 0.323335 +v -2.043752 0.416385 0.228633 +v -2.121962 0.870372 0.000000 +v -2.179800 0.787147 -0.142129 +v -2.179800 0.846019 0.000000 +v -2.121962 0.804367 0.159349 +v -2.121962 0.645018 0.225354 +v -2.121962 0.485669 0.159349 +v -2.121962 0.419664 0.000000 +v -2.121962 0.485669 -0.159349 +v -2.179800 0.787147 0.142129 +v -2.179800 0.817735 0.000000 +v -2.179800 0.767148 0.122130 +v -2.179800 0.645018 0.201001 +v -2.179800 0.502889 0.142129 +v -2.179800 0.444017 0.000000 +v -2.179800 0.502889 -0.142129 +v -2.179800 0.645018 -0.201001 +v -2.179800 0.645018 -0.172717 +v -2.179800 0.522888 -0.122130 +v -2.139229 0.522888 -0.122130 +v -2.139229 0.645018 -0.172717 +v -2.179800 0.645018 0.172717 +v -2.179800 0.522888 0.122130 +v -2.179800 0.472301 0.000000 +v -2.179800 0.767148 -0.122130 +v -2.139229 0.472301 0.000000 +v -2.139229 0.522888 0.122130 +v -2.139229 0.645018 0.172717 +v -2.139229 0.767148 0.122130 +v -2.139229 0.817735 0.000000 +v -2.139229 0.767148 -0.122130 +v -1.416219 0.923800 -0.278782 +v -1.416219 0.645018 -0.394257 +v -1.415588 1.037581 0.000000 +v -1.416219 0.923800 0.278782 +v -1.416219 0.645018 0.394257 +v -1.416219 0.366236 0.278782 +v -1.415589 0.252454 0.000000 +v -1.416219 0.366236 -0.278782 +v -1.161507 0.923800 -0.278782 +v -1.161507 0.645018 -0.394257 +v -1.161507 1.039275 0.000000 +v -1.161507 0.923800 0.278782 +v -1.161507 0.645018 0.394257 +v -1.161507 0.366236 0.278782 +v -1.161507 0.250761 0.000000 +v -1.161507 0.366236 -0.278782 +v -1.379544 0.645018 -0.394257 +v -1.379545 0.366236 -0.278782 +v -1.379545 1.039275 0.000000 +v -1.379545 0.923800 0.278782 +v -1.382795 0.953877 0.308859 +v -1.382795 1.081811 0.000000 +v -1.319287 0.645018 -0.409318 +v -1.221764 0.645018 -0.409318 +v -1.221764 0.355586 -0.289432 +v -1.319287 0.355586 -0.289432 +v -1.158621 0.950501 -0.305483 +v -1.158621 1.077036 0.000000 +v -1.379545 0.250761 0.000000 +v -1.319287 0.235700 0.000000 +v -1.316037 0.208225 0.000000 +v -1.316037 0.336159 -0.308859 +v -1.221764 0.235700 0.000000 +v -1.158621 0.950501 0.305483 +v -1.158621 0.645018 0.432019 +v -1.379545 0.366236 0.278782 +v -1.379545 0.645018 0.394257 +v -1.382795 0.336159 0.308859 +v -1.382795 0.645018 0.436793 +v -1.221764 0.355586 0.289432 +v -1.319287 0.355586 0.289432 +v -1.221764 0.934450 -0.289432 +v -1.221764 1.054336 0.000000 +v -1.224650 1.077036 0.000000 +v -1.224650 0.950501 -0.305483 +v -1.382795 0.336159 -0.308859 +v -1.382795 0.208225 0.000000 +v -1.221764 0.645018 0.409318 +v -1.319287 0.645018 0.409318 +v -1.158621 0.339535 0.305483 +v -1.158621 0.212999 0.000000 +v -1.319287 1.054336 0.000000 +v -1.319287 0.934450 -0.289432 +v -1.316037 0.953877 -0.308859 +v -1.316037 1.081811 0.000000 +v -1.221764 0.934450 0.289432 +v -1.319287 0.934450 0.289432 +v -1.224650 0.645018 0.432019 +v -1.224650 0.950501 0.305483 +v -1.316037 0.953877 0.308859 +v -1.316037 0.645018 0.436793 +v -1.158621 0.339535 -0.305483 +v -1.158621 0.645018 -0.432019 +v -1.379545 0.923800 -0.278782 +v -1.382795 0.953877 -0.308859 +v -1.224650 0.212999 0.000000 +v -1.224650 0.339535 0.305483 +v -1.316037 0.336159 0.308859 +v -1.224650 0.645018 -0.432019 +v -1.224650 0.339535 -0.305483 +v -1.382795 0.645018 -0.436793 +v -1.316036 0.645018 -0.436793 +vt 1.000000 0.825168 +vt 1.000000 1.000000 +vt 0.875000 1.000000 +vt 0.875000 0.825168 +vt 0.750000 1.000000 +vt 0.750000 0.825168 +vt 0.625000 1.000000 +vt 0.625000 0.825168 +vt 0.500000 1.000000 +vt 0.500000 0.825168 +vt 0.375000 1.000000 +vt 0.375000 0.825168 +vt 0.250000 1.000000 +vt 0.250000 0.825168 +vt 0.419706 0.419706 +vt 0.250000 0.490000 +vt 0.080294 0.419706 +vt 0.010000 0.250000 +vt 0.080294 0.080294 +vt 0.250000 0.010000 +vt 0.419706 0.080294 +vt 0.490000 0.250000 +vt 0.125000 1.000000 +vt 0.125000 0.825168 +vt 0.000000 1.000000 +vt 0.000000 0.825168 +vt 0.875000 0.500000 +vt 0.750000 0.500000 +vt 0.750000 0.500000 +vt 0.875000 0.500000 +vt 0.500000 0.500000 +vt 0.375000 0.500000 +vt 0.375000 0.500000 +vt 0.500000 0.500000 +vt 0.500000 0.500000 +vt 0.375000 0.500000 +vt 0.125000 0.500000 +vt 0.000000 0.500000 +vt 0.000000 0.500000 +vt 0.125000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.250000 0.500000 +vt 0.250000 0.500000 +vt 0.250000 0.500000 +vt 0.125000 0.500000 +vt 0.125000 0.500000 +vt 0.250000 0.500000 +vt 0.625000 0.500000 +vt 0.750000 0.500000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 0.000000 0.500000 +vt 0.375000 0.500000 +vt 0.250000 0.500000 +vt 0.375000 0.500000 +vt 0.500000 0.500000 +vt 0.625000 0.500000 +vt 0.750000 0.500000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 0.000000 0.500000 +vt 1.000000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 0.500000 0.500000 +vt 0.625000 0.500000 +vt 0.750000 0.500000 +vt 0.125000 0.500000 +vt 0.000000 0.500000 +vt 0.250000 0.500000 +vt 0.125000 0.500000 +vt 0.125000 0.500000 +vt 0.250000 0.500000 +vt 0.000000 0.500000 +vt 0.375000 0.500000 +vt 0.500000 0.500000 +vt 0.625000 0.500000 +vt 0.750000 0.500000 +vt 0.875000 0.500000 +vt 0.750000 0.500000 +vt 0.750000 0.500000 +vt 0.875000 0.500000 +vt 0.375000 0.500000 +vt 0.500000 0.500000 +vt 0.625000 0.500000 +vt 1.000000 0.500000 +vt 0.000000 0.500000 +vt 0.125000 0.500000 +vt 0.000000 0.500000 +vt 0.000000 0.500000 +vt 0.125000 0.500000 +vt 0.250000 0.500000 +vt 0.375000 0.500000 +vt 0.500000 0.500000 +vt 0.625000 0.500000 +vt 1.000000 0.500000 +vt 0.250000 0.500000 +vt 0.125000 0.500000 +vt 0.250000 0.500000 +vt 0.375000 0.500000 +vt 0.500000 0.500000 +vt 0.625000 0.500000 +vt 0.750000 0.500000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 0.375000 0.500000 +vt 0.250000 0.500000 +vt 0.375000 0.500000 +vt 0.500000 0.500000 +vt 0.625000 0.500000 +vt 0.750000 0.500000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 0.000000 0.500000 +vt 1.000000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 0.500000 0.500000 +vt 0.625000 0.500000 +vt 0.750000 0.500000 +vt 0.125000 0.500000 +vt 0.000000 0.500000 +vt 0.750000 0.490000 +vt 0.919706 0.419706 +vt 0.990000 0.250000 +vt 0.919706 0.080294 +vt 0.750000 0.010000 +vt 0.580294 0.080294 +vt 0.510000 0.250000 +vt 0.580294 0.419706 +vt 0.000000 0.500000 +vt 0.125000 0.500000 +vt 0.250000 0.500000 +vt 0.375000 0.500000 +vt 0.500000 0.500000 +vt 0.625000 0.500000 +vt 0.750000 0.500000 +vt 0.125000 0.658502 +vt 0.000000 0.658502 +vt 0.250000 0.658502 +vt 0.375000 0.658502 +vt 0.500000 0.658502 +vt 0.625000 0.658502 +vt 0.750000 0.658502 +vt 0.875000 0.658502 +vt 1.000000 0.658502 +vt 0.125000 0.790724 +vt 0.000000 0.790724 +vt 0.250000 0.790724 +vt 0.375000 0.790724 +vt 0.500000 0.790724 +vt 0.625000 0.790724 +vt 0.750000 0.790724 +vt 0.875000 0.790724 +vt 1.000000 0.790724 +vt 1.000000 0.690724 +vt 0.875000 0.690724 +vt 0.250000 0.690724 +vt 0.375000 0.690724 +vt 0.375000 0.690724 +vt 0.250000 0.690724 +vt 1.000000 0.724057 +vt 1.000000 0.757391 +vt 0.875000 0.757391 +vt 0.875000 0.724057 +vt 0.125000 0.790724 +vt 0.250000 0.790724 +vt 0.750000 0.690724 +vt 0.750000 0.724057 +vt 0.750000 0.724057 +vt 0.875000 0.724057 +vt 0.750000 0.757391 +vt 0.375000 0.790724 +vt 0.500000 0.790724 +vt 0.625000 0.690724 +vt 0.500000 0.690724 +vt 0.625000 0.690724 +vt 0.500000 0.690724 +vt 0.625000 0.757391 +vt 0.625000 0.724057 +vt 0.125000 0.757391 +vt 0.250000 0.757391 +vt 0.250000 0.757391 +vt 0.125000 0.757391 +vt 0.875000 0.690724 +vt 0.750000 0.690724 +vt 0.500000 0.757391 +vt 0.500000 0.724057 +vt 0.625000 0.790724 +vt 0.750000 0.790724 +vt 0.250000 0.724057 +vt 0.125000 0.724057 +vt 0.125000 0.724057 +vt 0.250000 0.724057 +vt 0.375000 0.757391 +vt 0.375000 0.724057 +vt 0.500000 0.757391 +vt 0.375000 0.757391 +vt 0.375000 0.724057 +vt 0.500000 0.724057 +vt 0.875000 0.790724 +vt 1.000000 0.790724 +vt 0.125000 0.690724 +vt 0.125000 0.690724 +vt 0.750000 0.757391 +vt 0.625000 0.757391 +vt 0.000000 0.690724 +vt 0.625000 0.724057 +vt 0.000000 0.757391 +vt 0.000000 0.724057 +vt 1.000000 0.757391 +vt 0.875000 0.757391 +vt 0.000000 0.790724 +vt 0.000000 0.757391 +vt 1.000000 0.690724 +vt 1.000000 0.724057 +vt 0.000000 0.724057 +vt 0.000000 0.690724 +vn 0.0019 -0.3851 -0.9229 +vn 0.0000 -0.9239 -0.3827 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 -0.3827 0.9239 +vn 0.0000 0.3827 0.9239 +vn 0.0000 0.9239 0.3827 +vn 1.0000 -0.0000 0.0000 +vn 0.0000 0.9239 -0.3827 +vn 0.0019 0.3851 -0.9229 +vn -0.9726 -0.2149 -0.0890 +vn 0.9560 0.1123 0.2711 +vn -0.9726 0.0890 0.2149 +vn -0.9726 0.0890 -0.2149 +vn -0.9726 -0.0890 -0.2149 +vn -0.9726 -0.2149 0.0890 +vn -0.9726 0.2149 0.0890 +vn -0.9726 -0.0890 0.2149 +vn -0.9726 0.2149 -0.0890 +vn 0.9560 -0.2711 0.1123 +vn 0.9560 -0.1123 -0.2711 +vn 0.9560 0.1123 -0.2711 +vn 0.9560 0.2711 0.1123 +vn 0.9560 -0.1123 0.2711 +vn 0.9560 -0.2711 -0.1123 +vn 0.9560 0.2711 -0.1123 +vn -0.9615 0.2539 0.1052 +vn 0.0000 -0.3827 -0.9239 +vn 0.0000 0.3827 -0.9239 +vn 0.9469 -0.1230 -0.2970 +vn -0.9615 -0.1052 0.2539 +vn -0.9615 -0.2539 -0.1052 +vn -0.9615 0.2539 -0.1052 +vn -0.9615 0.1052 0.2539 +vn -0.9615 -0.2539 0.1052 +vn -0.9615 -0.1052 -0.2539 +vn -0.9615 0.1052 -0.2539 +vn 0.9469 0.1230 -0.2970 +vn 0.9469 0.2970 0.1230 +vn 0.9469 -0.1230 0.2970 +vn 0.9469 -0.2970 -0.1230 +vn 0.9469 0.2970 -0.1230 +vn 0.9469 0.1230 0.2970 +vn 0.9469 -0.2970 0.1230 +vn -0.4917 -0.8045 -0.3332 +vn -0.7567 0.2502 -0.6040 +vn -0.4917 0.8045 -0.3332 +vn -0.4917 0.3332 0.8045 +vn -0.4917 -0.8045 0.3332 +vn -0.4917 -0.3332 -0.8045 +vn -0.4917 0.3332 -0.8045 +vn -0.4917 0.8045 0.3332 +vn -0.4917 -0.3332 0.8045 +vn -0.3625 0.8610 -0.3567 +vn -0.7567 0.6040 0.2502 +vn -0.7567 -0.2502 0.6040 +vn -0.7567 -0.6040 -0.2502 +vn -0.7567 0.6040 -0.2502 +vn -0.7567 0.2502 0.6040 +vn -0.7567 -0.6040 0.2502 +vn -0.7567 -0.2502 -0.6040 +vn -1.0000 0.0000 0.0000 +vn -0.3625 0.3567 0.8610 +vn -0.3625 -0.8610 0.3567 +vn -0.3625 -0.3567 -0.8610 +vn -0.3625 0.3567 -0.8610 +vn -0.3625 0.8610 0.3567 +vn -0.3625 -0.3567 0.8610 +vn -0.3625 -0.8610 -0.3567 +vn -0.0059 0.3827 -0.9239 +vn -0.0030 0.3827 -0.9239 +vn -0.0030 0.9249 -0.3803 +vn -0.0030 0.9249 0.3803 +vn -0.0059 0.3827 0.9239 +vn -0.0030 0.3827 0.9239 +vn -0.0059 -0.3827 0.9239 +vn -0.0030 -0.3827 0.9239 +vn -0.0030 -0.9249 0.3803 +vn -0.0030 -0.9249 -0.3803 +vn -0.0059 -0.3827 -0.9239 +vn -0.0030 -0.3827 -0.9239 +vn 0.0169 0.3850 -0.9227 +vn 0.0341 0.9233 -0.3825 +vn 0.0341 0.9233 0.3825 +vn 0.0341 0.3825 0.9233 +vn 0.0341 -0.3825 0.9233 +vn 0.0341 -0.9233 0.3825 +vn 0.0341 -0.9233 -0.3825 +vn 0.0169 -0.3850 -0.9227 +vn -0.9966 -0.0761 -0.0315 +vn 0.9966 -0.0762 0.0316 +vn -0.0215 -0.9247 -0.3802 +vn 0.9919 0.1173 0.0486 +vn 0.9966 -0.0316 -0.0762 +vn -0.0215 -0.9247 0.3802 +vn -0.9966 0.0315 -0.0761 +vn -0.9907 -0.1260 0.0522 +vn -0.9966 0.0761 0.0315 +vn 0.9966 0.0762 -0.0316 +vn 0.9919 -0.1173 0.0486 +vn -0.9907 -0.0522 -0.1260 +vn -0.0215 0.9247 0.3802 +vn 0.9919 -0.0486 -0.1173 +vn 0.9966 0.0315 0.0762 +vn -0.0215 0.9247 -0.3802 +vn -0.9966 -0.0761 0.0315 +vn -0.9907 0.1260 -0.0522 +vn 0.9919 0.1173 -0.0486 +vn -0.9907 0.0522 0.1260 +vn -0.9907 0.1259 0.0522 +vn -0.9907 0.0522 -0.1260 +vn 0.9966 0.0762 0.0316 +vn -0.9907 -0.1260 -0.0522 +vn 0.9966 0.0315 -0.0762 +vn -0.9907 -0.0522 0.1260 +vn 0.9966 -0.0762 -0.0316 +vn 0.9966 -0.0316 0.0762 +vn 0.9919 0.0486 -0.1173 +vn -0.9966 -0.0315 0.0762 +vn 0.9919 -0.1173 -0.0486 +vn 0.9919 -0.0486 0.1173 +vn -0.9966 0.0315 0.0762 +vn -0.9966 0.0761 -0.0315 +vn 0.9919 0.0486 0.1173 +vn -0.9966 -0.0315 -0.0761 +s 1 +f 733/1257/403 734/1258/403 735/1259/403 736/1260/403 +f 736/1260/404 735/1259/404 737/1261/404 738/1262/404 +f 738/1262/405 737/1261/405 739/1263/405 740/1264/405 +f 740/1264/406 739/1263/406 741/1265/406 742/1266/406 +f 742/1266/407 741/1265/407 743/1267/407 744/1268/407 +f 744/1268/408 743/1267/408 745/1269/408 746/1270/408 +f 735/1271/409 734/1272/409 747/1273/409 745/1274/409 743/1275/409 741/1276/409 739/1277/409 737/1278/409 +f 746/1270/410 745/1269/410 747/1279/410 748/1280/410 +f 748/1280/411 747/1279/411 734/1281/411 733/1282/411 +f 749/1283/412 750/1284/412 751/1285/412 752/1286/412 +f 753/1287/413 754/1288/413 755/1289/413 756/1290/413 +f 757/1291/414 758/1292/414 754/1288/414 753/1287/414 +f 759/1293/415 760/1294/415 761/1295/415 762/1296/415 +f 760/1297/416 749/1283/416 752/1286/416 761/1298/416 +f 750/1284/417 763/1299/417 764/1300/417 751/1285/417 +f 758/1292/418 765/1301/418 766/1302/418 754/1288/418 +f 763/1299/419 757/1291/419 753/1287/419 764/1300/419 +f 765/1301/420 759/1293/420 762/1296/420 766/1302/420 +f 767/1303/410 768/1304/410 769/1305/410 770/1306/410 +f 751/1285/421 764/1300/421 771/1307/421 772/1308/421 +f 761/1298/422 752/1286/422 773/1309/422 774/1310/422 +f 762/1296/423 761/1295/423 774/1311/423 768/1304/423 +f 754/1288/424 766/1302/424 767/1303/424 755/1289/424 +f 764/1300/425 753/1287/425 756/1290/425 771/1307/425 +f 752/1286/426 751/1285/426 772/1308/426 773/1309/426 +f 766/1302/427 762/1296/427 768/1304/427 767/1303/427 +f 775/1312/428 770/1306/428 776/1313/428 777/1314/428 +f 756/1290/407 755/1289/407 775/1312/407 778/1315/407 +f 772/1308/405 771/1307/405 779/1316/405 780/1317/405 +f 774/1310/429 773/1309/429 781/1318/429 782/1319/429 +f 768/1304/430 774/1311/430 782/1320/430 769/1305/430 +f 755/1289/408 767/1303/408 770/1306/408 775/1312/408 +f 771/1307/406 756/1290/406 778/1315/406 779/1316/406 +f 773/1309/404 772/1308/404 780/1317/404 781/1318/404 +f 783/1321/431 784/1322/431 785/1323/431 786/1324/431 +f 779/1316/432 778/1315/432 787/1325/432 788/1326/432 +f 781/1318/433 780/1317/433 789/1327/433 784/1322/433 +f 770/1306/434 769/1305/434 790/1328/434 776/1313/434 +f 778/1315/435 775/1312/435 777/1314/435 787/1325/435 +f 780/1317/436 779/1316/436 788/1326/436 789/1327/436 +f 782/1319/437 781/1318/437 784/1322/437 783/1321/437 +f 769/1305/438 782/1320/438 783/1329/438 790/1328/438 +f 791/1330/410 792/1331/410 793/1332/410 794/1333/410 +f 790/1328/439 783/1329/439 786/1334/439 792/1331/439 +f 777/1314/440 776/1313/440 791/1330/440 795/1335/440 +f 788/1326/441 787/1325/441 796/1336/441 797/1337/441 +f 784/1322/442 789/1327/442 798/1338/442 785/1323/442 +f 776/1313/443 790/1328/443 792/1331/443 791/1330/443 +f 787/1325/444 777/1314/444 795/1335/444 796/1336/444 +f 789/1327/445 788/1326/445 797/1337/445 798/1338/445 +f 799/1339/446 800/1340/446 801/1341/446 802/1342/446 +f 796/1336/407 795/1335/407 803/1343/407 804/1344/407 +f 798/1338/405 797/1337/405 805/1345/405 800/1340/405 +f 786/1324/429 785/1323/429 799/1339/429 806/1346/429 +f 792/1331/430 786/1334/430 806/1347/430 793/1332/430 +f 795/1335/408 791/1330/408 794/1333/408 803/1343/408 +f 797/1337/406 796/1336/406 804/1344/406 805/1345/406 +f 785/1323/404 798/1338/404 800/1340/404 799/1339/404 +f 807/1348/447 808/1349/447 809/1350/447 810/1351/447 +f 794/1333/448 793/1332/448 807/1348/448 811/1352/448 +f 804/1344/449 803/1343/449 812/1353/449 813/1354/449 +f 800/1340/450 805/1345/450 814/1355/450 801/1341/450 +f 806/1346/451 799/1339/451 802/1342/451 808/1356/451 +f 793/1332/452 806/1347/452 808/1349/452 807/1348/452 +f 803/1343/453 794/1333/453 811/1352/453 812/1353/453 +f 805/1345/454 804/1344/454 813/1354/454 814/1355/454 +f 815/1357/455 810/1351/455 816/1358/455 817/1359/455 +f 812/1353/456 811/1352/456 815/1357/456 818/1360/456 +f 814/1355/457 813/1354/457 819/1361/457 820/1362/457 +f 802/1342/458 801/1341/458 821/1363/458 822/1364/458 +f 811/1352/459 807/1348/459 810/1351/459 815/1357/459 +f 813/1354/460 812/1353/460 818/1360/460 819/1361/460 +f 801/1341/461 814/1355/461 820/1362/461 821/1363/461 +f 808/1356/462 802/1342/462 822/1364/462 809/1365/462 +f 823/1366/463 817/1359/463 824/1367/463 825/1368/463 +f 819/1361/464 818/1360/464 823/1366/464 826/1369/464 +f 821/1363/465 820/1362/465 827/1370/465 828/1371/465 +f 809/1365/466 822/1364/466 829/1372/466 830/1373/466 +f 810/1351/467 809/1350/467 830/1374/467 816/1358/467 +f 818/1360/468 815/1357/468 817/1359/468 823/1366/468 +f 820/1362/469 819/1361/469 826/1369/469 827/1370/469 +f 822/1364/470 821/1363/470 828/1371/470 829/1372/470 +f 831/1375/407 832/1376/407 833/1377/407 834/1378/407 +f 827/1370/463 826/1369/463 835/1379/463 836/1380/463 +f 829/1372/463 828/1371/463 837/1381/463 832/1376/463 +f 817/1359/463 816/1358/463 838/1382/463 824/1367/463 +f 826/1369/463 823/1366/463 825/1368/463 835/1379/463 +f 828/1371/463 827/1370/463 836/1380/463 837/1381/463 +f 830/1373/463 829/1372/463 832/1376/463 831/1375/463 +f 816/1358/463 830/1374/463 831/1383/463 838/1382/463 +f 834/1384/463 833/1385/463 839/1386/463 840/1387/463 841/1388/463 842/1389/463 843/1390/463 844/1391/463 +f 838/1382/406 831/1383/406 834/1392/406 844/1393/406 +f 825/1368/404 824/1367/404 843/1394/404 842/1395/404 +f 836/1380/430 835/1379/430 841/1396/430 840/1397/430 +f 832/1376/408 837/1381/408 839/1398/408 833/1377/408 +f 824/1367/405 838/1382/405 844/1393/405 843/1394/405 +f 835/1379/429 825/1368/429 842/1395/429 841/1396/429 +f 837/1381/410 836/1380/410 840/1397/410 839/1398/410 +f 759/1293/471 845/1399/472 846/1400/472 760/1294/471 +f 765/1301/473 847/1401/473 845/1399/473 759/1293/473 +f 758/1292/474 848/1402/474 847/1401/474 765/1301/474 +f 757/1291/475 849/1403/476 848/1402/476 758/1292/475 +f 763/1299/477 850/1404/478 849/1403/478 757/1291/477 +f 750/1284/479 851/1405/479 850/1404/479 763/1299/479 +f 749/1283/480 852/1406/480 851/1405/480 750/1284/480 +f 760/1297/481 846/1407/482 852/1406/482 749/1283/481 +f 853/1408/483 748/1280/483 733/1282/483 854/1409/483 +f 855/1410/484 746/1270/484 748/1280/484 853/1408/484 +f 856/1411/485 744/1268/485 746/1270/485 855/1410/485 +f 857/1412/486 742/1266/486 744/1268/486 856/1411/486 +f 858/1413/487 740/1264/487 742/1266/487 857/1412/487 +f 859/1414/488 738/1262/488 740/1264/488 858/1413/488 +f 860/1415/489 736/1260/489 738/1262/489 859/1414/489 +f 854/1416/490 733/1257/490 736/1260/490 860/1415/490 +f 846/1407/482 861/1417/429 862/1418/429 852/1406/482 +f 863/1419/491 864/1420/491 865/1421/491 866/1422/491 +f 867/1423/429 868/1424/429 869/1425/429 870/1426/429 +f 855/1410/492 853/1408/492 871/1427/492 872/1428/492 +f 852/1406/493 862/1418/493 873/1429/493 851/1405/493 +f 870/1426/494 874/1430/494 875/1431/494 876/1432/494 +f 870/1426/404 869/1425/404 877/1433/404 874/1430/404 +f 857/1412/495 856/1411/495 878/1434/495 879/1435/495 +f 851/1405/496 873/1429/496 880/1436/496 850/1404/496 +f 881/1437/497 880/1436/497 882/1438/497 883/1439/497 +f 874/1430/405 877/1433/405 884/1440/405 885/1441/405 +f 886/1442/498 887/1443/498 888/1444/498 889/1445/498 +f 850/1404/478 880/1436/406 881/1437/406 849/1403/478 +f 873/1429/499 862/1418/499 890/1446/499 891/1447/499 +f 885/1441/406 884/1440/406 892/1448/406 893/1449/406 +f 859/1414/500 858/1413/500 894/1450/500 895/1451/500 +f 849/1403/476 881/1437/407 864/1420/407 848/1402/476 +f 896/1452/501 897/1453/501 898/1454/501 899/1455/501 +f 893/1449/407 892/1448/407 900/1456/407 901/1457/407 +f 900/1456/502 892/1448/502 902/1458/502 903/1459/502 +f 848/1402/503 864/1420/503 863/1419/503 847/1401/503 +f 893/1449/504 901/1457/504 904/1460/504 905/1461/504 +f 901/1457/408 900/1456/408 887/1443/408 896/1452/408 +f 854/1416/505 860/1415/505 906/1462/505 907/1463/505 +f 847/1401/506 863/1419/506 908/1464/506 845/1399/506 +f 908/1464/507 863/1419/507 866/1422/507 909/1465/507 +f 896/1452/410 887/1443/410 886/1442/410 897/1453/410 +f 884/1440/508 877/1433/508 910/1466/508 911/1467/508 +f 845/1399/472 908/1464/430 861/1468/430 846/1400/472 +f 874/1430/509 885/1441/509 912/1469/509 875/1431/509 +f 897/1453/430 886/1442/430 868/1470/430 867/1471/430 +f 869/1425/510 868/1424/510 913/1472/510 914/1473/510 +f 913/1472/429 907/1463/429 906/1462/429 914/1473/429 +f 914/1473/404 906/1462/404 895/1451/404 910/1466/404 +f 910/1466/405 895/1451/405 894/1450/405 911/1467/405 +f 911/1467/406 894/1450/406 879/1435/406 902/1458/406 +f 902/1458/407 879/1435/407 878/1434/407 903/1459/407 +f 903/1459/408 878/1434/408 872/1428/408 888/1444/408 +f 888/1444/410 872/1428/410 871/1427/410 889/1445/410 +f 889/1445/430 871/1427/430 907/1474/430 913/1475/430 +f 877/1433/511 869/1425/511 914/1473/511 910/1466/511 +f 892/1448/512 884/1440/512 911/1467/512 902/1458/512 +f 860/1415/513 859/1414/513 895/1451/513 906/1462/513 +f 887/1443/514 900/1456/514 903/1459/514 888/1444/514 +f 858/1413/515 857/1412/515 879/1435/515 894/1450/515 +f 868/1470/516 886/1442/516 889/1445/516 913/1475/516 +f 856/1411/517 855/1410/517 872/1428/517 878/1434/517 +f 853/1408/518 854/1409/518 907/1474/518 871/1427/518 +f 915/1476/429 916/1477/429 876/1432/429 890/1446/429 +f 890/1446/404 876/1432/404 875/1431/404 891/1447/404 +f 891/1447/405 875/1431/405 912/1469/405 882/1438/405 +f 882/1438/406 912/1469/406 905/1461/406 883/1439/406 +f 883/1439/407 905/1461/407 904/1460/407 865/1421/407 +f 865/1421/408 904/1460/408 899/1455/408 866/1422/408 +f 866/1422/410 899/1455/410 898/1454/410 909/1465/410 +f 909/1465/430 898/1454/430 916/1478/430 915/1479/430 +f 885/1441/519 893/1449/519 905/1461/519 912/1469/519 +f 861/1468/520 908/1464/520 909/1465/520 915/1479/520 +f 901/1457/521 896/1452/521 899/1455/521 904/1460/521 +f 897/1453/522 867/1471/522 916/1478/522 898/1454/522 +f 862/1418/523 861/1417/523 915/1476/523 890/1446/523 +f 880/1436/524 873/1429/524 891/1447/524 882/1438/524 +f 867/1423/525 870/1426/525 876/1432/525 916/1477/525 +f 864/1420/526 881/1437/526 883/1439/526 865/1421/526 +o SideScrews_Cylinder.005 +v -0.436383 0.265019 0.509254 +v 1.004741 0.265019 0.509254 +v 1.004741 0.179718 0.544586 +v -0.436383 0.179718 0.544586 +v 1.004741 0.144386 0.629887 +v -0.436383 0.144385 0.629887 +v 1.004741 0.179718 0.715187 +v -0.436383 0.179718 0.715187 +v 1.004741 0.265019 0.750520 +v -0.436383 0.265019 0.750520 +v 1.004741 0.350319 0.715187 +v -0.436383 0.350319 0.715187 +v 1.004741 0.385652 0.629887 +v -0.436383 0.385652 0.629887 +v 1.088061 0.265019 0.750520 +v 1.088061 0.350319 0.715187 +v 1.004741 0.350319 0.544586 +v -0.436383 0.350319 0.544586 +v -0.513171 0.364069 0.629887 +v -0.513171 0.335058 0.699926 +v -0.513171 0.265019 0.530836 +v -0.513171 0.194979 0.559848 +v -0.513171 0.165968 0.629887 +v -0.513171 0.194979 0.699926 +v -0.513171 0.265019 0.728937 +v -0.513171 0.335058 0.559848 +v 1.088061 0.265019 0.509254 +v 1.088061 0.350319 0.544586 +v 1.100404 0.336110 0.558795 +v 1.100404 0.265019 0.529348 +v 1.088061 0.179718 0.544586 +v 1.088061 0.144386 0.629887 +v 1.088061 0.179718 0.715187 +v 1.088061 0.385652 0.629887 +v 1.100404 0.336110 0.700979 +v 1.100404 0.365558 0.629887 +v 1.100404 0.193927 0.700979 +v 1.100404 0.265019 0.730426 +v 1.100404 0.193927 0.558795 +v 1.100404 0.164480 0.629887 +v 1.127149 0.181939 0.629887 +v 1.127149 0.206273 0.688633 +v 1.127149 0.206273 0.571141 +v 1.127149 0.265019 0.546807 +v 1.127149 0.323765 0.571141 +v 1.127149 0.348098 0.629887 +v 1.127149 0.323765 0.688633 +v 1.127149 0.265019 0.712966 +v -0.436384 0.265019 -0.509254 +v -0.436384 0.179718 -0.544586 +v 1.004741 0.179718 -0.544586 +v 1.004741 0.265019 -0.509254 +v -0.436384 0.144385 -0.629887 +v 1.004741 0.144386 -0.629887 +v -0.436384 0.179718 -0.715187 +v 1.004741 0.179718 -0.715187 +v -0.436384 0.265019 -0.750520 +v 1.004741 0.265019 -0.750520 +v -0.436384 0.350319 -0.715187 +v 1.004741 0.350319 -0.715187 +v -0.436384 0.385652 -0.629887 +v 1.004741 0.385652 -0.629887 +v 1.088061 0.350319 -0.715187 +v 1.088061 0.265019 -0.750520 +v -0.436384 0.350319 -0.544586 +v 1.004741 0.350319 -0.544586 +v -0.513171 0.335058 -0.699926 +v -0.513171 0.364069 -0.629887 +v -0.513171 0.265019 -0.530836 +v -0.513171 0.335058 -0.559848 +v -0.513171 0.265019 -0.728937 +v -0.513171 0.194979 -0.699926 +v -0.513171 0.165968 -0.629887 +v -0.513171 0.194979 -0.559848 +v 1.088061 0.265019 -0.509254 +v 1.100404 0.265019 -0.529348 +v 1.100404 0.336111 -0.558795 +v 1.088061 0.350319 -0.544586 +v 1.088061 0.179718 -0.544586 +v 1.088061 0.179718 -0.715187 +v 1.088061 0.144386 -0.629887 +v 1.088061 0.385652 -0.629887 +v 1.100404 0.365558 -0.629887 +v 1.100404 0.336110 -0.700979 +v 1.100404 0.265019 -0.730426 +v 1.100404 0.193927 -0.700979 +v 1.100404 0.164480 -0.629887 +v 1.100404 0.193927 -0.558795 +v 1.127149 0.206273 -0.688633 +v 1.127149 0.181939 -0.629887 +v 1.127149 0.206273 -0.571141 +v 1.127149 0.265019 -0.712966 +v 1.127149 0.323765 -0.688633 +v 1.127149 0.348098 -0.629887 +v 1.127149 0.323765 -0.571141 +v 1.127149 0.265019 -0.546807 +vt 1.000000 0.500000 +vt 1.000000 1.000000 +vt 0.875000 1.000000 +vt 0.875000 0.500000 +vt 0.750000 1.000000 +vt 0.750000 0.500000 +vt 0.625000 1.000000 +vt 0.625000 0.500000 +vt 0.500000 1.000000 +vt 0.500000 0.500000 +vt 0.375000 1.000000 +vt 0.375000 0.500000 +vt 0.250000 1.000000 +vt 0.250000 0.500000 +vt 0.500000 1.000000 +vt 0.375000 1.000000 +vt 0.125000 1.000000 +vt 0.125000 0.500000 +vt 0.000000 1.000000 +vt 0.000000 0.500000 +vt 0.250000 0.500000 +vt 0.375000 0.500000 +vt 0.750000 0.490000 +vt 0.919706 0.419706 +vt 0.990000 0.250000 +vt 0.919706 0.080294 +vt 0.750000 0.010000 +vt 0.580294 0.080294 +vt 0.510000 0.250000 +vt 0.580294 0.419706 +vt 0.500000 0.500000 +vt 0.625000 0.500000 +vt 0.125000 0.500000 +vt 0.750000 0.500000 +vt 0.875000 0.500000 +vt 0.000000 0.500000 +vt 1.000000 0.500000 +vt 0.000000 1.000000 +vt 0.125000 1.000000 +vt 0.125000 1.000000 +vt 0.000000 1.000000 +vt 1.000000 1.000000 +vt 0.875000 1.000000 +vt 0.750000 1.000000 +vt 0.625000 1.000000 +vt 0.250000 1.000000 +vt 0.375000 1.000000 +vt 0.250000 1.000000 +vt 0.625000 1.000000 +vt 0.500000 1.000000 +vt 0.875000 1.000000 +vt 0.750000 1.000000 +vt 1.000000 1.000000 +vt 0.750000 1.000000 +vt 0.625000 1.000000 +vt 0.419706 0.419706 +vt 0.250000 0.490000 +vt 0.080294 0.419706 +vt 0.010000 0.250000 +vt 0.080294 0.080294 +vt 0.250000 0.010000 +vt 0.419706 0.080294 +vt 0.490000 0.250000 +vt 1.000000 1.000000 +vt 0.875000 1.000000 +vt 0.125000 1.000000 +vt 0.000000 1.000000 +vt 0.375000 1.000000 +vt 0.250000 1.000000 +vt 0.500000 1.000000 +vt 1.000000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 1.000000 +vt 1.000000 1.000000 +vt 0.750000 0.500000 +vt 0.750000 1.000000 +vt 0.625000 0.500000 +vt 0.625000 1.000000 +vt 0.500000 0.500000 +vt 0.500000 1.000000 +vt 0.375000 0.500000 +vt 0.375000 1.000000 +vt 0.250000 0.500000 +vt 0.250000 1.000000 +vt 0.375000 1.000000 +vt 0.500000 1.000000 +vt 0.125000 0.500000 +vt 0.125000 1.000000 +vt 0.000000 0.500000 +vt 0.000000 1.000000 +vt 0.375000 0.500000 +vt 0.250000 0.500000 +vt 0.750000 0.490000 +vt 0.580294 0.419706 +vt 0.510000 0.250000 +vt 0.580294 0.080294 +vt 0.750000 0.010000 +vt 0.919706 0.080294 +vt 0.990000 0.250000 +vt 0.919706 0.419706 +vt 0.625000 0.500000 +vt 0.500000 0.500000 +vt 0.125000 0.500000 +vt 0.875000 0.500000 +vt 0.750000 0.500000 +vt 0.000000 0.500000 +vt 1.000000 0.500000 +vt 0.000000 1.000000 +vt 0.000000 1.000000 +vt 0.125000 1.000000 +vt 0.125000 1.000000 +vt 0.875000 1.000000 +vt 1.000000 1.000000 +vt 0.625000 1.000000 +vt 0.750000 1.000000 +vt 0.250000 1.000000 +vt 0.250000 1.000000 +vt 0.375000 1.000000 +vt 0.500000 1.000000 +vt 0.625000 1.000000 +vt 0.750000 1.000000 +vt 0.875000 1.000000 +vt 1.000000 1.000000 +vt 0.625000 1.000000 +vt 0.750000 1.000000 +vt 0.419706 0.419706 +vt 0.490000 0.250000 +vt 0.419706 0.080294 +vt 0.250000 0.010000 +vt 0.080294 0.080294 +vt 0.010000 0.250000 +vt 0.080294 0.419706 +vt 0.250000 0.490000 +vt 0.875000 1.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.125000 1.000000 +vt 0.250000 1.000000 +vt 0.375000 1.000000 +vt 0.500000 1.000000 +vn 0.0000 -0.3827 -0.9239 +vn 0.0000 -0.9239 -0.3827 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 -0.3827 0.9239 +vn 0.0000 0.3827 0.9239 +vn 0.0000 0.9239 0.3827 +vn 0.0000 0.9239 -0.3827 +vn 0.0000 0.3827 -0.9239 +vn -0.2513 0.8942 0.3704 +vn -1.0000 0.0000 0.0000 +vn -0.2513 -0.3704 0.8942 +vn -0.2513 0.8942 -0.3704 +vn -0.2513 -0.8942 -0.3704 +vn -0.2513 0.3704 0.8942 +vn -0.2513 0.3704 -0.8942 +vn -0.2513 -0.3704 -0.8942 +vn -0.2513 -0.8942 0.3704 +vn 0.8327 0.2119 -0.5115 +vn 0.8327 0.5115 0.2119 +vn 0.8327 -0.2119 0.5115 +vn 0.8327 -0.5115 -0.2119 +vn 0.8327 0.5115 -0.2119 +vn 0.8327 0.2119 0.5115 +vn 0.8327 -0.5115 0.2119 +vn 0.8327 -0.2119 -0.5115 +vn 0.5165 -0.7911 0.3277 +vn 1.0000 -0.0000 0.0000 +vn 0.5165 -0.3277 -0.7911 +vn 0.5165 0.3277 -0.7911 +vn 0.5165 0.7911 0.3277 +vn 0.5165 -0.3277 0.7911 +vn 0.5165 -0.7911 -0.3277 +vn 0.5165 0.7911 -0.3277 +vn 0.5165 0.3277 0.7911 +s 1 +f 917/1480/527 918/1481/527 919/1482/527 920/1483/527 +f 920/1483/528 919/1482/528 921/1484/528 922/1485/528 +f 922/1485/529 921/1484/529 923/1486/529 924/1487/529 +f 924/1487/530 923/1486/530 925/1488/530 926/1489/530 +f 926/1489/531 925/1488/531 927/1490/531 928/1491/531 +f 928/1491/532 927/1490/532 929/1492/532 930/1493/532 +f 927/1490/531 925/1488/531 931/1494/531 932/1495/531 +f 930/1493/533 929/1492/533 933/1496/533 934/1497/533 +f 934/1497/534 933/1496/534 918/1498/534 917/1499/534 +f 928/1491/535 930/1493/535 935/1500/535 936/1501/535 +f 937/1502/536 938/1503/536 939/1504/536 940/1505/536 941/1506/536 936/1507/536 935/1508/536 942/1509/536 +f 924/1487/537 926/1489/537 941/1510/537 940/1511/537 +f 930/1493/538 934/1497/538 942/1512/538 935/1500/538 +f 920/1483/539 922/1485/539 939/1513/539 938/1514/539 +f 926/1489/540 928/1491/540 936/1501/540 941/1510/540 +f 934/1497/541 917/1499/541 937/1515/541 942/1512/541 +f 917/1480/542 920/1483/542 938/1514/542 937/1516/542 +f 922/1485/543 924/1487/543 940/1511/543 939/1513/543 +f 943/1517/544 944/1518/544 945/1519/544 946/1520/544 +f 918/1498/534 933/1496/534 944/1518/534 943/1517/534 +f 919/1482/527 918/1481/527 943/1521/527 947/1522/527 +f 923/1486/529 921/1484/529 948/1523/529 949/1524/529 +f 929/1492/532 927/1490/532 932/1495/532 950/1525/532 +f 925/1488/530 923/1486/530 949/1524/530 931/1494/530 +f 933/1496/533 929/1492/533 950/1525/533 944/1518/533 +f 921/1484/528 919/1482/528 947/1522/528 948/1523/528 +f 950/1525/545 932/1495/545 951/1526/545 952/1527/545 +f 931/1494/546 949/1524/546 953/1528/546 954/1529/546 +f 948/1523/547 947/1522/547 955/1530/547 956/1531/547 +f 944/1518/548 950/1525/548 952/1527/548 945/1519/548 +f 932/1495/549 931/1494/549 954/1529/549 951/1526/549 +f 949/1524/550 948/1523/550 956/1531/550 953/1528/550 +f 947/1522/551 943/1521/551 946/1532/551 955/1530/551 +f 953/1528/552 956/1531/552 957/1533/552 958/1534/552 +f 959/1535/553 960/1536/553 961/1537/553 962/1538/553 963/1539/553 964/1540/553 958/1541/553 957/1542/553 +f 955/1530/554 946/1532/554 960/1543/554 959/1544/554 +f 946/1520/555 945/1519/555 961/1545/555 960/1546/555 +f 952/1527/556 951/1526/556 963/1547/556 962/1548/556 +f 954/1529/557 953/1528/557 958/1534/557 964/1549/557 +f 956/1531/558 955/1530/558 959/1544/558 957/1533/558 +f 945/1519/559 952/1527/559 962/1548/559 961/1545/559 +f 951/1526/560 954/1529/560 964/1549/560 963/1547/560 +f 965/1550/530 966/1551/530 967/1552/530 968/1553/530 +f 966/1551/529 969/1554/529 970/1555/529 967/1552/529 +f 969/1554/528 971/1556/528 972/1557/528 970/1555/528 +f 971/1556/527 973/1558/527 974/1559/527 972/1557/527 +f 973/1558/534 975/1560/534 976/1561/534 974/1559/534 +f 975/1560/533 977/1562/533 978/1563/533 976/1561/533 +f 976/1561/534 979/1564/534 980/1565/534 974/1559/534 +f 977/1562/532 981/1566/532 982/1567/532 978/1563/532 +f 981/1566/531 965/1568/531 968/1569/531 982/1567/531 +f 975/1560/538 983/1570/538 984/1571/538 977/1562/538 +f 985/1572/536 986/1573/536 984/1574/536 983/1575/536 987/1576/536 988/1577/536 989/1578/536 990/1579/536 +f 971/1556/542 988/1580/542 987/1581/542 973/1558/542 +f 977/1562/535 984/1571/535 986/1582/535 981/1566/535 +f 966/1551/543 990/1583/543 989/1584/543 969/1554/543 +f 973/1558/541 987/1581/541 983/1570/541 975/1560/541 +f 981/1566/540 986/1582/540 985/1585/540 965/1568/540 +f 965/1550/537 985/1586/537 990/1583/537 966/1551/537 +f 969/1554/539 989/1584/539 988/1580/539 971/1556/539 +f 991/1587/549 992/1588/549 993/1589/549 994/1590/549 +f 968/1569/531 991/1587/531 994/1590/531 982/1567/531 +f 967/1552/530 995/1591/530 991/1592/530 968/1553/530 +f 972/1557/528 996/1593/528 997/1594/528 970/1555/528 +f 978/1563/533 998/1595/533 979/1564/533 976/1561/533 +f 974/1559/527 980/1565/527 996/1593/527 972/1557/527 +f 982/1567/532 994/1590/532 998/1595/532 978/1563/532 +f 970/1555/529 997/1594/529 995/1591/529 967/1552/529 +f 998/1595/548 999/1596/548 1000/1597/548 979/1564/548 +f 980/1565/551 1001/1598/551 1002/1599/551 996/1593/551 +f 997/1594/550 1003/1600/550 1004/1601/550 995/1591/550 +f 994/1590/545 993/1589/545 999/1596/545 998/1595/545 +f 979/1564/544 1000/1597/544 1001/1598/544 980/1565/544 +f 996/1593/547 1002/1599/547 1003/1600/547 997/1594/547 +f 995/1591/546 1004/1601/546 992/1602/546 991/1592/546 +f 1002/1599/558 1005/1603/558 1006/1604/558 1003/1600/558 +f 1007/1605/553 1006/1606/553 1005/1607/553 1008/1608/553 1009/1609/553 1010/1610/553 1011/1611/553 1012/1612/553 +f 1004/1601/557 1007/1613/557 1012/1614/557 992/1602/557 +f 992/1588/560 1012/1615/560 1011/1616/560 993/1589/560 +f 999/1596/559 1010/1617/559 1009/1618/559 1000/1597/559 +f 1001/1598/554 1008/1619/554 1005/1603/554 1002/1599/554 +f 1003/1600/552 1006/1604/552 1007/1613/552 1004/1601/552 +f 993/1589/556 1011/1616/556 1010/1617/556 999/1596/556 +f 1000/1597/555 1009/1618/555 1008/1619/555 1001/1598/555 +o CoiCanon_Cylinder.004 +v -0.419369 0.526526 -0.206986 +v 0.947632 0.526526 -0.206986 +v 0.947632 0.380164 -0.146361 +v -0.419369 0.380164 -0.146361 +v 0.947632 0.319540 0.000000 +v -0.419369 0.319540 0.000000 +v 0.947632 0.380164 0.146361 +v -0.419369 0.380164 0.146361 +v 0.947632 0.526526 0.206986 +v -0.419369 0.526526 0.206986 +v 0.947632 0.672887 0.146361 +v -0.419369 0.672887 0.146361 +v 0.947632 0.733512 0.000000 +v -0.419369 0.733512 0.000000 +v 0.947632 0.672887 -0.146361 +v -0.419369 0.672887 -0.146361 +vt 1.000000 0.500000 +vt 1.000000 1.000000 +vt 0.875000 1.000000 +vt 0.875000 0.500000 +vt 0.750000 1.000000 +vt 0.750000 0.500000 +vt 0.625000 1.000000 +vt 0.625000 0.500000 +vt 0.500000 1.000000 +vt 0.500000 0.500000 +vt 0.375000 1.000000 +vt 0.375000 0.500000 +vt 0.250000 1.000000 +vt 0.250000 0.500000 +vt 0.419706 0.419706 +vt 0.250000 0.490000 +vt 0.080294 0.419706 +vt 0.010000 0.250000 +vt 0.080294 0.080294 +vt 0.250000 0.010000 +vt 0.419706 0.080294 +vt 0.490000 0.250000 +vt 0.125000 1.000000 +vt 0.125000 0.500000 +vt 0.000000 1.000000 +vt 0.000000 0.500000 +vt 0.750000 0.490000 +vt 0.919706 0.419706 +vt 0.990000 0.250000 +vt 0.919706 0.080294 +vt 0.750000 0.010000 +vt 0.580294 0.080294 +vt 0.510000 0.250000 +vt 0.580294 0.419706 +vn 0.0000 -0.3827 -0.9239 +vn 0.0000 -0.9239 -0.3827 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 -0.3827 0.9239 +vn 0.0000 0.3827 0.9239 +vn 0.0000 0.9239 0.3827 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.9239 -0.3827 +vn 0.0000 0.3827 -0.9239 +vn -1.0000 0.0000 0.0000 +s 1 +f 1013/1620/561 1014/1621/561 1015/1622/561 1016/1623/561 +f 1016/1623/562 1015/1622/562 1017/1624/562 1018/1625/562 +f 1018/1625/563 1017/1624/563 1019/1626/563 1020/1627/563 +f 1020/1627/564 1019/1626/564 1021/1628/564 1022/1629/564 +f 1022/1629/565 1021/1628/565 1023/1630/565 1024/1631/565 +f 1024/1631/566 1023/1630/566 1025/1632/566 1026/1633/566 +f 1015/1634/567 1014/1635/567 1027/1636/567 1025/1637/567 1023/1638/567 1021/1639/567 1019/1640/567 1017/1641/567 +f 1026/1633/568 1025/1632/568 1027/1642/568 1028/1643/568 +f 1028/1643/569 1027/1642/569 1014/1644/569 1013/1645/569 +f 1013/1646/570 1016/1647/570 1018/1648/570 1020/1649/570 1022/1650/570 1024/1651/570 1026/1652/570 1028/1653/570 +o SideHolders_Cube.003 +v 1.384588 0.551670 0.654257 +v 1.384588 0.551670 0.449972 +v 1.139921 0.531994 0.449972 +v 1.139921 0.531994 0.558806 +v 1.384588 0.408111 0.449972 +v 1.504148 0.551670 0.449972 +v 1.504148 0.408111 0.449972 +v 1.504148 0.551670 0.654257 +v 1.577323 0.529883 0.613238 +v 1.577323 0.529883 0.449972 +v 1.504148 0.408111 0.654257 +v 1.384588 0.408111 0.654257 +v 1.577323 0.429898 0.449972 +v 1.577323 0.429898 0.613238 +v 1.139921 0.427787 0.558806 +v 1.139921 0.427787 0.449972 +v 1.384588 0.551670 -0.654257 +v 1.139921 0.531994 -0.558805 +v 1.139921 0.531994 -0.449972 +v 1.384588 0.551670 -0.449972 +v 1.384588 0.408111 -0.449972 +v 1.504148 0.408111 -0.449972 +v 1.504148 0.551670 -0.449972 +v 1.577323 0.529883 -0.449972 +v 1.577323 0.529883 -0.613238 +v 1.504148 0.551670 -0.654257 +v 1.504148 0.408111 -0.654257 +v 1.384588 0.408111 -0.654257 +v 1.577323 0.429898 -0.449972 +v 1.577323 0.429898 -0.613238 +v 1.139921 0.427787 -0.558805 +v 1.139921 0.427787 -0.449972 +vt 0.875000 0.750000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.750000 +vt 0.375000 0.250000 +vt 0.625000 0.250000 +vt 0.625000 0.500000 +vt 0.375000 0.500000 +vt 0.625000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 0.500000 +vt 0.375000 0.750000 +vt 0.625000 1.000000 +vt 0.375000 1.000000 +vt 0.125000 0.500000 +vt 0.125000 0.750000 +vt 0.375000 0.500000 +vt 0.375000 0.750000 +vt 0.375000 0.000000 +vt 0.625000 0.000000 +vt 0.625000 0.250000 +vt 0.375000 0.250000 +vt 0.125000 0.750000 +vt 0.125000 0.500000 +vt 0.625000 1.000000 +vt 0.375000 1.000000 +vt 0.875000 0.750000 +vt 0.875000 0.750000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.375000 0.250000 +vt 0.375000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.250000 +vt 0.625000 0.500000 +vt 0.625000 0.750000 +vt 0.625000 0.750000 +vt 0.375000 0.750000 +vt 0.375000 1.000000 +vt 0.625000 1.000000 +vt 0.125000 0.500000 +vt 0.125000 0.750000 +vt 0.375000 0.500000 +vt 0.375000 0.750000 +vt 0.375000 0.000000 +vt 0.375000 0.250000 +vt 0.625000 0.250000 +vt 0.625000 0.000000 +vt 0.125000 0.500000 +vt 0.125000 0.750000 +vt 0.375000 1.000000 +vt 0.625000 1.000000 +vn -0.0802 0.9968 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.2854 0.9584 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.4890 0.0000 0.8723 +vn 0.2854 -0.9584 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.0802 -0.9968 0.0000 +vn -0.3634 0.0000 0.9316 +vn 0.4890 0.0000 -0.8723 +vn -0.3635 0.0000 -0.9316 +s 1 +f 1029/1654/571 1030/1655/571 1031/1656/571 1032/1657/571 +f 1033/1658/572 1030/1659/572 1034/1660/572 1035/1661/572 +f 1034/1660/573 1036/1662/573 1037/1663/573 1038/1664/573 +f 1039/1665/574 1036/1662/574 1029/1666/574 1040/1667/574 +f 1033/1668/575 1035/1661/575 1039/1665/575 1040/1669/575 +f 1034/1660/576 1030/1655/576 1029/1654/576 1036/1662/576 +f 1041/1670/577 1038/1664/577 1037/1663/577 1042/1671/577 +f 1035/1661/572 1034/1660/572 1038/1664/572 1041/1670/572 +f 1036/1662/578 1039/1665/578 1042/1671/578 1037/1663/578 +f 1039/1665/579 1035/1661/579 1041/1670/579 1042/1671/579 +f 1043/1672/580 1032/1673/580 1031/1674/580 1044/1675/580 +f 1033/1668/581 1040/1669/581 1043/1676/581 1044/1677/581 +f 1030/1659/572 1033/1658/572 1044/1675/572 1031/1674/572 +f 1040/1667/582 1029/1666/582 1032/1678/582 1043/1679/582 +f 1045/1680/571 1046/1681/571 1047/1682/571 1048/1683/571 +f 1049/1684/574 1050/1685/574 1051/1686/574 1048/1687/574 +f 1051/1686/573 1052/1688/573 1053/1689/573 1054/1690/573 +f 1055/1691/572 1056/1692/572 1045/1693/572 1054/1690/572 +f 1049/1694/575 1056/1695/575 1055/1691/575 1050/1685/575 +f 1051/1686/576 1054/1690/576 1045/1680/576 1048/1683/576 +f 1057/1696/577 1058/1697/577 1053/1689/577 1052/1688/577 +f 1050/1685/574 1057/1696/574 1052/1688/574 1051/1686/574 +f 1054/1690/583 1053/1689/583 1058/1697/583 1055/1691/583 +f 1055/1691/579 1058/1697/579 1057/1696/579 1050/1685/579 +f 1059/1698/580 1060/1699/580 1047/1700/580 1046/1701/580 +f 1049/1694/581 1060/1702/581 1059/1703/581 1056/1695/581 +f 1048/1687/574 1047/1700/574 1060/1699/574 1049/1684/574 +f 1056/1692/584 1059/1704/584 1046/1705/584 1045/1693/584 +o Rail_Cube +v -1.606489 0.994589 0.070837 +v -1.606489 1.084445 0.070837 +v -1.606489 1.084277 -0.070837 +v -1.606489 0.994589 -0.070837 +v -0.511384 1.084480 -0.070837 +v -0.514357 1.052983 -0.070837 +v -0.549767 1.006668 -0.070837 +v -0.549767 0.994589 -0.070837 +v 1.313063 1.160981 0.058974 +v 1.498769 1.160981 0.058974 +v 1.498532 1.230366 0.031927 +v 1.312826 1.230366 0.031927 +v 1.225298 0.994589 0.070837 +v 1.225298 1.084445 0.070837 +v 0.962233 1.084445 0.070837 +v 0.964610 1.052983 0.070837 +v 1.000021 1.006668 0.070837 +v 1.000021 0.994589 0.070837 +v -0.197543 0.994589 -0.070837 +v 0.049014 0.994589 -0.070837 +v 0.049014 0.994589 0.070837 +v -0.197543 0.994589 0.070837 +v 0.401239 0.994589 -0.070837 +v 0.647796 0.994589 -0.070837 +v 0.647796 0.994589 0.070837 +v 0.401239 0.994589 0.070837 +v 1.000021 0.994589 -0.070837 +v 1.225298 0.994589 -0.070837 +v -0.549767 0.994589 0.070837 +v 1.225298 1.143051 -0.043128 +v -1.531817 1.143051 -0.043128 +v -1.531817 1.143051 0.043128 +v 1.225298 1.143051 0.043128 +v 1.313063 0.996053 0.070837 +v 1.498769 0.996053 0.070837 +v 1.313063 1.160981 -0.058974 +v 1.313063 0.996053 -0.070837 +v 1.225298 1.084802 -0.070837 +v 1.269521 1.219445 0.031927 +v 1.498769 0.996053 -0.070837 +v 1.498769 1.160981 -0.058974 +v 1.312826 1.230366 -0.031927 +v 1.498532 1.230366 -0.031927 +v 1.575087 0.954078 -0.070837 +v 1.575087 1.119006 -0.070837 +v 1.575087 1.119006 0.070837 +v 1.575087 0.954078 0.070837 +v 1.269521 1.219445 -0.031927 +v 1.554546 1.188392 0.031927 +v 1.554546 1.188392 -0.031927 +v -0.514597 1.084445 0.070837 +v -0.234129 1.084445 0.070837 +v 0.083877 1.084445 0.070837 +v 0.364860 1.084445 0.070837 +v 0.682044 1.084445 0.070837 +v 0.964998 1.084754 -0.070837 +v 0.683980 1.084702 -0.070837 +v 0.366670 1.084643 -0.070837 +v 0.084942 1.084590 -0.070837 +v -0.230760 1.084532 -0.070837 +v -0.232953 1.052983 -0.070837 +v -0.232953 1.052983 0.070837 +v -0.514357 1.052983 0.070837 +v -0.197543 1.006668 0.070837 +v -0.197543 1.006668 -0.070837 +v -0.549767 1.006668 0.070837 +v 0.084425 1.052983 -0.070837 +v 0.365828 1.052983 -0.070837 +v 0.365828 1.052983 0.070837 +v 0.084425 1.052983 0.070837 +v 0.401239 1.006668 0.070837 +v 0.401239 1.006668 -0.070837 +v 0.049014 1.006668 -0.070837 +v 0.049014 1.006668 0.070837 +v 0.683207 1.052983 -0.070837 +v 0.964610 1.052983 -0.070837 +v 0.683207 1.052983 0.070837 +v 1.000021 1.006668 -0.070837 +v 0.647796 1.006668 -0.070837 +v 0.647796 1.006668 0.070837 +vt 0.375000 0.000000 +vt 0.499342 0.000000 +vt 0.499091 0.250000 +vt 0.375000 0.250000 +vt 0.499394 0.346680 +vt 0.462188 0.264617 +vt 0.393035 0.259826 +vt 0.375000 0.259826 +vt 0.625000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 0.750000 +vt 0.375000 0.750000 +vt 0.499342 0.750000 +vt 0.499342 0.773224 +vt 0.462188 0.785272 +vt 0.393035 0.780481 +vt 0.375000 0.780481 +vt 0.182484 0.500000 +vt 0.215844 0.500000 +vt 0.215844 0.750000 +vt 0.182484 0.750000 +vt 0.263501 0.500000 +vt 0.296862 0.500000 +vt 0.296862 0.750000 +vt 0.263501 0.750000 +vt 0.344519 0.500000 +vt 0.375000 0.500000 +vt 0.344519 0.750000 +vt 0.125000 0.750000 +vt 0.125000 0.500000 +vt 0.134826 0.500000 +vt 0.134826 0.750000 +vt 0.625000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.750000 +vt 0.625000 0.750000 +vt 0.375000 0.750000 +vt 0.375000 0.750000 +vt 0.625000 0.500000 +vt 0.375000 0.500000 +vt 0.499875 0.500000 +vt 0.625000 0.750000 +vt 0.375000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.375000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.750000 +vt 0.375000 0.750000 +vt 0.625000 0.500000 +vt 0.625000 0.750000 +vt 0.625000 0.500000 +vt 0.499342 1.000000 +vt 0.499342 0.903604 +vt 0.499342 0.878843 +vt 0.499342 0.850769 +vt 0.499342 0.825962 +vt 0.499342 0.797960 +vt 0.625000 1.000000 +vt 0.625000 0.000000 +vt 0.625000 0.250000 +vt 0.499803 0.477020 +vt 0.499725 0.452211 +vt 0.499637 0.424197 +vt 0.499559 0.399325 +vt 0.499472 0.371454 +vt 0.849867 0.594807 +vt 0.650133 0.594807 +vt 0.650133 0.655193 +vt 0.849867 0.655193 +vt 0.549693 0.655193 +vt 0.599866 0.655193 +vt 0.599866 0.594807 +vt 0.549693 0.594807 +vt 0.549693 0.155193 +vt 0.599866 0.155193 +vt 0.599866 0.094807 +vt 0.549693 0.094807 +vt 0.875000 0.594807 +vt 0.875000 0.655193 +vt 0.849867 0.594807 +vt 0.650133 0.594807 +vt 0.650133 0.655193 +vt 0.849867 0.655193 +vt 0.549693 0.655193 +vt 0.599866 0.655193 +vt 0.599866 0.594807 +vt 0.549693 0.594807 +vt 0.549693 0.155193 +vt 0.599866 0.155193 +vt 0.599866 0.094807 +vt 0.549693 0.094807 +vt 0.875000 0.594807 +vt 0.875000 0.655193 +vt 0.849867 0.594807 +vt 0.650133 0.594807 +vt 0.650133 0.655193 +vt 0.849867 0.655193 +vt 0.599866 0.655193 +vt 0.599866 0.594807 +vt 0.549693 0.594807 +vt 0.549693 0.655193 +vt 0.549693 0.155193 +vt 0.599866 0.155193 +vt 0.599866 0.094807 +vt 0.549693 0.094807 +vt 0.875000 0.655193 +vt 0.875000 0.594807 +vt 0.462188 0.866290 +vt 0.462188 0.904365 +vt 0.462188 0.823347 +vt 0.393035 0.861499 +vt 0.375000 0.861499 +vt 0.375000 0.828138 +vt 0.393035 0.828138 +vt 0.462188 0.947308 +vt 0.393035 0.942516 +vt 0.375000 0.942516 +vt 0.375000 0.909156 +vt 0.393035 0.909156 +vt 0.462188 0.985383 +vt 0.375000 1.000000 +vt 0.375000 0.990174 +vt 0.393035 0.990174 +vt 0.462188 0.464728 +vt 0.375000 0.469519 +vt 0.393035 0.469519 +vt 0.462188 0.426653 +vt 0.462188 0.383710 +vt 0.393035 0.421861 +vt 0.375000 0.421862 +vt 0.375000 0.388501 +vt 0.393035 0.388501 +vt 0.462188 0.345635 +vt 0.462188 0.302692 +vt 0.393035 0.340844 +vt 0.375000 0.340844 +vt 0.375000 0.307483 +vt 0.393035 0.307484 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.3632 0.9317 +vn -0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0717 0.9974 +vn -0.0132 0.1253 -0.9920 +vn -0.0136 0.1253 0.9920 +vn 0.0167 -0.9999 0.0000 +vn -0.1793 0.2999 0.9370 +vn 0.0000 0.3632 -0.9317 +vn 0.0000 0.0717 -0.9974 +vn 1.0000 -0.0000 0.0000 +vn -0.0578 0.0359 -0.9977 +vn -0.0578 0.0359 0.9977 +vn -0.4819 -0.8762 0.0000 +vn -0.2445 0.9696 0.0000 +vn 0.5997 0.8003 0.0000 +vn 0.2041 0.4450 0.8720 +vn 0.9589 0.2839 0.0000 +vn -0.8655 0.5010 0.0000 +vn -0.1793 0.2999 -0.9370 +vn 0.2041 0.4450 -0.8720 +vn 0.0000 0.4274 0.9040 +vn -0.6179 0.7862 -0.0006 +vn -0.0000 0.4280 -0.9038 +vn 0.7944 -0.6074 0.0000 +vn -0.7944 -0.6074 0.0000 +s 1 +f 1061/1706/585 1062/1707/585 1063/1708/585 1064/1709/585 +f 1064/1709/586 1063/1708/586 1065/1710/586 1066/1711/586 1067/1712/586 1068/1713/586 +f 1069/1714/587 1070/1715/587 1071/1716/587 1072/1717/587 +f 1073/1718/588 1074/1719/588 1075/1720/588 1076/1721/588 1077/1722/588 1078/1723/588 +f 1079/1724/589 1080/1725/589 1081/1726/589 1082/1727/589 +f 1083/1728/589 1084/1729/589 1085/1730/589 1086/1731/589 +f 1087/1732/589 1088/1733/589 1073/1718/589 1078/1734/589 +f 1061/1735/589 1064/1736/589 1068/1737/589 1089/1738/589 +f 1090/1739/590 1091/1740/590 1092/1741/590 1093/1742/590 +f 1069/1714/591 1094/1743/591 1095/1744/591 1070/1715/591 +f 1096/1745/592 1097/1746/592 1088/1733/592 1098/1747/592 1090/1739/592 +f 1074/1719/593 1073/1718/593 1094/1743/593 1069/1714/593 1093/1742/593 +f 1073/1718/594 1088/1733/594 1097/1746/594 1094/1743/594 +f 1093/1742/595 1069/1714/595 1072/1717/595 1099/1748/595 +f 1094/1743/589 1097/1746/589 1100/1749/589 1095/1744/589 +f 1101/1750/596 1096/1745/596 1102/1751/596 1103/1752/596 +f 1097/1746/597 1096/1745/597 1101/1750/597 1100/1749/597 +f 1104/1753/598 1105/1754/598 1106/1755/598 1107/1756/598 +f 1100/1749/599 1101/1750/599 1105/1754/599 1104/1753/599 +f 1070/1715/600 1095/1744/600 1107/1756/600 1106/1755/600 +f 1095/1744/601 1100/1749/601 1104/1753/601 1107/1756/601 +f 1108/1757/602 1099/1748/602 1072/1717/602 1102/1751/602 +f 1103/1752/603 1071/1716/603 1109/1758/603 1110/1759/603 +f 1102/1751/590 1072/1717/590 1071/1716/590 1103/1752/590 +f 1070/1715/604 1106/1755/604 1109/1758/604 1071/1716/604 +f 1106/1755/605 1105/1754/605 1110/1759/605 1109/1758/605 +f 1090/1739/606 1093/1742/606 1099/1748/606 1108/1757/606 +f 1096/1745/607 1090/1739/607 1108/1757/607 1102/1751/607 +f 1105/1754/608 1101/1750/608 1103/1752/608 1110/1759/608 +f 1062/1760/609 1111/1761/609 1112/1762/609 1113/1763/609 1114/1764/609 1115/1765/609 1075/1720/609 1074/1719/609 1093/1742/609 1092/1766/609 +f 1063/1708/610 1062/1707/610 1092/1767/610 1091/1768/610 +f 1098/1747/611 1116/1769/611 1117/1770/611 1118/1771/611 1119/1772/611 1120/1773/611 1065/1710/611 1063/1708/611 1091/1768/611 1090/1739/611 +f 1066/1774/589 1121/1775/589 1122/1776/589 1123/1777/589 +f 1082/1778/585 1124/1779/585 1125/1780/585 1079/1781/585 +f 1068/1782/598 1067/1783/598 1126/1784/598 1089/1785/598 +f 1067/1786/612 1066/1774/612 1123/1777/612 1126/1787/612 +f 1122/1776/613 1121/1775/613 1125/1780/613 1124/1779/613 +f 1127/1788/589 1128/1789/589 1129/1790/589 1130/1791/589 +f 1086/1792/585 1131/1793/585 1132/1794/585 1083/1795/585 +f 1080/1796/598 1133/1797/598 1134/1798/598 1081/1799/598 +f 1133/1800/612 1127/1788/612 1130/1791/612 1134/1801/612 +f 1132/1794/613 1131/1793/613 1129/1790/613 1128/1789/613 +f 1135/1802/589 1136/1803/589 1076/1804/589 1137/1805/589 +f 1077/1806/585 1138/1807/585 1087/1808/585 1078/1809/585 +f 1084/1810/598 1139/1811/598 1140/1812/598 1085/1813/598 +f 1140/1814/612 1139/1815/612 1135/1802/612 1137/1805/612 +f 1076/1804/613 1136/1803/613 1138/1807/613 1077/1806/613 +f 1129/1816/588 1114/1764/588 1113/1763/588 1130/1817/588 +f 1137/1818/588 1115/1765/588 1114/1764/588 1129/1816/588 1131/1819/588 1086/1820/588 1085/1821/588 1140/1822/588 +f 1076/1721/588 1075/1720/588 1115/1765/588 1137/1818/588 +f 1130/1817/588 1113/1763/588 1112/1762/588 1122/1823/588 1124/1824/588 1082/1825/588 1081/1826/588 1134/1827/588 +f 1122/1823/588 1112/1762/588 1111/1761/588 1123/1828/588 +f 1123/1828/588 1111/1761/588 1062/1760/588 1061/1829/588 1089/1830/588 1126/1831/588 +f 1136/1832/586 1116/1769/586 1098/1747/586 1088/1733/586 1087/1833/586 1138/1834/586 +f 1135/1835/586 1117/1770/586 1116/1769/586 1136/1832/586 +f 1128/1836/586 1118/1771/586 1117/1770/586 1135/1835/586 1139/1837/586 1084/1838/586 1083/1839/586 1132/1840/586 +f 1127/1841/586 1119/1772/586 1118/1771/586 1128/1836/586 +f 1121/1842/586 1120/1773/586 1119/1772/586 1127/1841/586 1133/1843/586 1080/1844/586 1079/1845/586 1125/1846/586 +f 1066/1711/586 1065/1710/586 1120/1773/586 1121/1842/586 +o CanonBody_Cylinder.002 +v 1.103664 0.525584 -0.500000 +v 1.292985 0.525584 -0.500000 +v 1.292985 0.172030 -0.353553 +v 1.103664 0.172030 -0.353553 +v 1.103664 0.525584 0.500000 +v 1.292985 0.525584 0.500000 +v 1.292985 0.879137 0.353553 +v 1.103664 0.879137 0.353553 +v 1.292985 1.025584 0.000000 +v 1.103664 1.025584 0.000000 +v 1.503651 1.012795 0.000000 +v 1.503651 0.870094 -0.344510 +v 1.509822 0.895986 -0.370402 +v 1.509822 1.049411 0.000000 +v 1.080568 0.851567 0.325983 +v 1.080568 0.525584 0.461010 +v 1.292985 0.879137 -0.353553 +v 1.286814 0.905708 -0.380125 +v 1.286814 0.525584 -0.537577 +v 1.286814 0.525584 0.537577 +v 1.286814 0.905708 0.380125 +v 1.503651 0.038372 0.000000 +v 1.503651 0.181073 0.344510 +v 1.509822 0.155181 0.370402 +v 1.509822 0.001756 0.000000 +v 1.503651 0.870094 0.344510 +v 1.509822 0.895986 0.370402 +v 1.503651 0.525584 0.487211 +v 1.669294 0.525584 0.401911 +v 1.669294 0.809777 0.284194 +v 1.503651 0.181073 -0.344510 +v 1.503651 0.525584 -0.487211 +v 1.669294 0.525584 -0.401911 +v 1.669294 0.241390 -0.284194 +v 1.669294 0.809777 -0.284194 +v 1.669294 0.927494 0.000000 +v 1.669294 0.241390 0.284194 +v -0.603601 0.525584 -0.500000 +v 1.044523 0.525584 -0.500000 +v 1.044523 0.172030 -0.353553 +v -0.603601 0.172030 -0.353553 +v -0.603601 0.025584 0.000000 +v 1.044523 0.025584 0.000000 +v 1.044523 0.172030 0.353553 +v -0.603601 0.172030 0.353553 +v 0.951045 0.197436 0.364077 +v -0.460212 0.197436 0.364077 +v 1.044523 0.879137 0.353553 +v 0.899442 0.953734 0.173461 +v 0.899442 0.879137 0.353553 +v 1.044523 0.525584 0.500000 +v 1.068921 0.199748 0.325836 +v 1.068921 0.525584 0.460801 +v 1.044523 0.879137 -0.353553 +v 0.899442 0.735289 -0.413137 +v 0.899442 0.879137 -0.353553 +v 1.068921 0.986385 0.000000 +v 1.068921 0.851420 -0.325836 +v 1.044523 0.998052 -0.066468 +v 1.044523 1.025584 0.000000 +v 0.985768 0.843292 0.316901 +v 0.899442 0.843292 0.316901 +v 0.899442 0.918248 0.161081 +v 0.968182 0.918248 0.161081 +v 1.068921 0.525584 -0.460801 +v 1.044523 0.655732 -0.446091 +v 1.068921 0.199748 -0.325836 +v 1.068921 0.851420 0.325836 +v 1.044523 0.998052 0.066468 +v 1.080568 0.851567 -0.325983 +v 1.080568 0.525584 -0.461010 +v 1.080568 0.199600 -0.325983 +v 1.080568 0.064574 0.000000 +v 1.080568 0.199600 0.325983 +v 1.080568 0.986594 0.000000 +v 1.103664 0.172030 0.353553 +v 1.068921 0.064782 0.000000 +v -0.603601 0.997972 -0.066659 +v -0.603601 1.025584 0.000000 +v 0.810528 0.997935 -0.101577 +v -0.388078 0.997935 -0.101577 +v 0.810528 0.952228 0.101577 +v 0.969099 0.952228 0.101577 +v 0.988155 0.719760 0.368080 +v 0.899442 0.719760 0.368080 +v 0.810528 0.997935 0.101577 +v -0.603601 0.997968 0.066670 +v -0.388078 0.997935 0.101577 +v 0.810528 0.655494 -0.446189 +v 1.286814 1.063161 0.000000 +v 1.320923 0.951339 0.425755 +v 1.320923 1.127692 0.000000 +v 1.286814 0.145459 -0.380125 +v 1.320923 0.525584 -0.602109 +v 1.320923 0.099829 -0.425755 +v 1.509822 0.525584 -0.523828 +v 1.475712 0.525584 -0.586708 +v 1.475712 0.940449 -0.414865 +v 1.286814 -0.011994 -0.000000 +v 1.320923 -0.076525 -0.000000 +v 1.509822 0.525584 0.523828 +v 1.475712 0.940449 0.414865 +v 1.475712 0.525584 0.586708 +v 1.509822 0.155181 -0.370402 +v 1.320923 0.525584 0.602109 +v 1.320923 0.951339 -0.425755 +v 1.475712 0.110718 -0.414866 +v 1.475712 1.112292 0.000000 +v 1.475712 0.110718 0.414866 +v 1.669294 0.271118 -0.254466 +v 1.669294 0.525584 -0.359869 +v 1.423236 0.525584 -0.300328 +v 1.423236 0.313220 -0.212364 +v 1.669294 0.780049 -0.254466 +v 1.669294 0.885452 0.000000 +v 1.669294 0.525584 0.359869 +v 1.669294 0.780049 0.254466 +v 1.669294 0.271118 0.254466 +v 1.423236 0.737947 -0.212364 +v 1.423236 0.825911 0.000000 +v 1.657500 0.838523 0.000000 +v 1.657500 0.746865 -0.221281 +v 1.423236 0.525584 0.300328 +v 1.423236 0.737947 0.212364 +v 1.657500 0.746865 0.221281 +v 1.657500 0.525584 0.312939 +v 1.657500 0.525584 0.252281 +v 1.657500 0.703973 0.178389 +v 1.657500 0.525584 -0.312939 +v 1.657500 0.304302 -0.221282 +v 1.423236 0.313220 0.212364 +v 1.657500 0.304302 0.221282 +v 1.657500 0.703973 -0.178389 +v 1.657500 0.525584 -0.252281 +v 1.657500 0.347194 -0.178389 +v 1.657500 0.347194 0.178389 +v 1.432520 0.525584 -0.169385 +v 1.432520 0.645357 -0.119773 +v 1.651829 0.645357 -0.119773 +v 1.651829 0.525584 -0.169385 +v 1.657500 0.777864 0.000000 +v 1.432520 0.645357 0.119773 +v 1.432520 0.694968 0.000000 +v 1.432520 0.405810 -0.119773 +v 1.432520 0.405810 0.119773 +v 1.432520 0.525584 0.169385 +v 1.657500 0.273303 0.000000 +v 1.432520 0.356199 0.000000 +v 1.651829 0.431184 0.000000 +v 1.651829 0.356199 0.000000 +v 1.651829 0.405810 -0.119773 +v 1.651829 0.525394 -0.094211 +v 1.651829 0.458777 -0.066617 +v 1.651829 0.405810 0.119773 +v 1.651829 0.525584 0.169385 +v 1.651829 0.645357 0.119773 +v 1.127542 0.525394 -0.094211 +v 1.127542 0.458777 -0.066617 +v 1.127542 0.431184 0.000000 +v 1.127542 0.525394 0.094211 +v 1.127542 0.592011 0.066617 +v 1.651829 0.592011 0.066617 +v 1.651829 0.525394 0.094211 +v 1.651829 0.619605 0.000000 +v 1.127542 0.619605 0.000000 +v 1.127542 0.592011 -0.066617 +v 1.651829 0.592011 -0.066617 +v 1.127542 0.458777 0.066617 +v -0.476991 0.837264 -0.291860 +v -0.476991 0.714942 -0.357372 +v -0.476991 0.735289 -0.413137 +v -0.476991 0.879137 -0.353553 +v -0.476991 0.879137 0.353553 +v -0.476991 0.953734 0.173461 +v -0.603601 0.879137 0.353553 +v 0.899442 0.735289 0.413137 +v -0.603601 0.879137 -0.353553 +v -0.724548 0.869896 -0.337068 +v 1.044523 0.655732 0.446091 +v -0.476991 0.953734 -0.173461 +v -0.476991 0.735289 0.413137 +v -0.388078 0.655494 0.446189 +v -0.603601 0.655322 0.446261 +v -0.388078 0.655494 -0.446189 +v -0.603601 0.658327 -0.445016 +v 0.810528 0.655494 0.446189 +v -0.603601 0.525584 0.500000 +v 1.651829 0.458777 0.066617 +v -0.388078 0.633076 0.392654 +v -0.476991 0.714942 0.357372 +v -0.476991 0.837264 0.291860 +v -0.388078 0.944133 0.101577 +v -0.388078 0.944133 -0.101577 +v 0.810528 0.952228 -0.101577 +v 1.657500 0.212644 0.000000 +v 1.651829 0.694968 0.000000 +v -0.476991 0.926475 0.173461 +v 0.899442 0.843292 -0.316901 +v 0.899442 0.918248 -0.161081 +v 0.899442 0.953734 -0.173461 +v 0.899442 0.719760 -0.368080 +v 0.810528 0.655494 -0.378684 +v 0.810528 0.655494 0.378684 +v -0.388078 0.633076 -0.392654 +v 1.669294 0.123673 0.000000 +v 1.669294 0.165715 0.000000 +v 0.985768 0.843292 -0.316901 +v 0.968182 0.918248 -0.161081 +v 0.969099 0.952228 -0.101577 +v 0.988155 0.719760 -0.368080 +v 1.475712 -0.061125 -0.000000 +v 1.423236 0.225256 0.000000 +v 0.984259 0.655494 -0.391440 +v 0.984259 0.528318 -0.436781 +v 0.984259 0.228435 -0.325032 +v 0.984259 0.095638 0.005025 +v 0.984259 0.228435 0.325032 +v 0.984259 0.528318 0.436781 +v 0.984259 0.655494 0.391440 +v 1.103664 0.025584 0.000000 +v -0.534084 0.903408 0.173461 +v -0.534084 0.903408 -0.173461 +v -0.476991 0.926475 -0.173461 +v -0.548068 0.837264 0.291860 +v -0.551352 0.714942 0.357372 +v -0.550334 0.633076 0.392654 +v -0.548068 0.837264 -0.291860 +v -0.551352 0.714942 -0.357372 +v -0.550334 0.633076 -0.392654 +v 1.292985 0.025584 0.000000 +v -0.550334 0.529772 0.433593 +v -0.550334 0.236472 0.339820 +v -0.550334 0.062663 0.005342 +v -0.550334 0.236472 -0.339820 +v -0.550334 0.529772 -0.433593 +v -0.388078 0.540720 0.422003 +v -0.388078 0.540720 -0.422003 +v 0.810528 0.526819 -0.419828 +v 0.810528 0.526819 0.419828 +v -0.388078 0.088709 0.007100 +v -0.388078 0.229035 -0.323350 +v -0.388078 0.229035 0.323350 +v 0.810528 0.240010 -0.300109 +v 0.810528 0.100279 0.006216 +v 0.810528 0.240010 0.300109 +v -0.460212 0.500178 0.489476 +v -0.460212 0.155552 0.465195 +v -0.460212 0.458293 0.590595 +v 0.641563 0.500178 0.489476 +v 0.674042 0.500178 0.489476 +v 0.951045 0.500178 0.489476 +v 0.951045 0.458293 0.590595 +v 0.674638 0.458293 0.590595 +v 0.676644 0.321964 0.818654 +v 0.948697 0.323297 0.818799 +v 0.951045 0.155552 0.465195 +v 0.678557 0.155552 0.465195 +v 0.649846 0.155552 0.465195 +v -0.059018 0.088623 0.724480 +v -0.004002 0.088898 0.724510 +v -0.004015 0.318594 0.818287 +v -0.060217 0.318313 0.818256 +v 0.645678 0.092117 0.724860 +v 0.346592 0.090651 0.724701 +v 0.275455 0.090295 0.724662 +v 0.190590 0.089871 0.724616 +v 0.128016 0.089558 0.724582 +v 0.053442 0.089185 0.724541 +v 0.949896 0.093608 0.725023 +v 0.051715 0.318872 0.818317 +v 0.044163 0.311789 0.796066 +v 0.045414 0.108104 0.712906 +v 0.127999 0.319254 0.818359 +v 0.188876 0.319558 0.818392 +v 0.137105 0.309206 0.794886 +v 0.180025 0.309468 0.794915 +v 0.273733 0.319982 0.818438 +v 0.346589 0.320346 0.818478 +v 0.285150 0.311362 0.795548 +v 0.335438 0.311680 0.795582 +v 0.643209 0.321800 0.818636 +v 0.137117 0.111516 0.714176 +v 0.181234 0.111785 0.714205 +v 0.286340 0.110829 0.713675 +v 0.335441 0.111139 0.713708 +v 0.003776 0.311542 0.796039 +v 0.003785 0.107850 0.712878 +v 0.671568 0.425284 0.596467 +v 0.673140 0.318430 0.775219 +v 0.641987 0.458293 0.590595 +v 0.648869 0.138277 0.701704 +v 0.646934 0.318302 0.775205 +v 0.678212 0.092276 0.724878 +v 0.674369 0.138402 0.701718 +v 0.645976 0.425284 0.596467 +v 0.645644 0.458113 0.517211 +v 0.671101 0.458113 0.517211 +v 0.652136 0.187997 0.498180 +v 0.674639 0.187997 0.498180 +v 1.292985 0.172030 0.353553 +v 1.103664 0.879137 -0.353553 +v -0.460212 0.197436 -0.364077 +v 0.951045 0.197436 -0.364077 +v 1.286814 0.145459 0.380125 +v 1.320923 0.099829 0.425755 +v -0.460212 0.500178 -0.489476 +v -0.460212 0.458293 -0.590595 +v -0.460212 0.155552 -0.465195 +v 0.951045 0.500178 -0.489476 +v 0.674042 0.500178 -0.489476 +v 0.641563 0.500178 -0.489476 +v 0.951045 0.458293 -0.590595 +v 0.948697 0.323297 -0.818799 +v 0.676644 0.321964 -0.818654 +v 0.674638 0.458293 -0.590595 +v 0.951045 0.155552 -0.465195 +v 0.649846 0.155552 -0.465195 +v 0.678557 0.155552 -0.465195 +v -0.059018 0.088623 -0.724480 +v -0.060217 0.318313 -0.818256 +v -0.004015 0.318594 -0.818287 +v -0.004002 0.088898 -0.724510 +v 0.053442 0.089185 -0.724541 +v 0.128016 0.089558 -0.724582 +v 0.190590 0.089871 -0.724616 +v 0.275455 0.090295 -0.724662 +v 0.346592 0.090651 -0.724701 +v 0.645678 0.092117 -0.724860 +v 0.949896 0.093608 -0.725023 +v 0.045414 0.108104 -0.712906 +v 0.044163 0.311789 -0.796066 +v 0.051715 0.318872 -0.818317 +v 0.127999 0.319254 -0.818359 +v 0.188876 0.319558 -0.818392 +v 0.180025 0.309468 -0.794915 +v 0.137105 0.309206 -0.794886 +v 0.273733 0.319982 -0.818438 +v 0.346589 0.320346 -0.818478 +v 0.335438 0.311680 -0.795582 +v 0.285150 0.311362 -0.795548 +v 0.643209 0.321800 -0.818636 +v 0.181234 0.111785 -0.714205 +v 0.137117 0.111516 -0.714176 +v 0.335441 0.111139 -0.713708 +v 0.286340 0.110829 -0.713675 +v 0.003776 0.311542 -0.796039 +v 0.003785 0.107850 -0.712878 +v 0.673140 0.318430 -0.775219 +v 0.671568 0.425284 -0.596467 +v 0.641987 0.458293 -0.590595 +v 0.646934 0.318302 -0.775205 +v 0.648869 0.138277 -0.701704 +v 0.678212 0.092276 -0.724878 +v 0.674369 0.138402 -0.701718 +v 0.645644 0.458113 -0.517211 +v 0.645976 0.425284 -0.596467 +v 0.671101 0.458113 -0.517211 +v 0.674639 0.187997 -0.498180 +v 0.652136 0.187997 -0.498180 +v -0.724548 0.532825 -0.476687 +v -0.724548 0.195753 -0.337068 +v -0.724548 0.056134 0.000004 +v -0.724548 0.195753 0.337075 +v -0.724548 0.532825 0.476694 +v -0.724548 0.869896 0.337075 +v -0.724548 1.009515 0.000004 +vt 1.000000 0.500000 +vt 1.000000 1.000000 +vt 0.875000 1.000000 +vt 0.875000 0.500000 +vt 0.500000 0.500000 +vt 0.500000 1.000000 +vt 0.375000 1.000000 +vt 0.375000 0.500000 +vt 0.250000 1.000000 +vt 0.250000 0.500000 +vt 0.250000 1.000000 +vt 0.125000 1.000000 +vt 0.125000 1.000000 +vt 0.250000 1.000000 +vt 0.375000 0.500000 +vt 0.500000 0.500000 +vt 0.000000 1.000000 +vt 0.125000 1.000000 +vt 0.125000 1.000000 +vt 0.000000 1.000000 +vt 0.500000 1.000000 +vt 0.375000 1.000000 +vt 0.750000 1.000000 +vt 0.625000 1.000000 +vt 0.625000 1.000000 +vt 0.750000 1.000000 +vt 0.375000 1.000000 +vt 0.375000 1.000000 +vt 0.500000 1.000000 +vt 0.500000 1.000000 +vt 0.375000 1.000000 +vt 0.875000 1.000000 +vt 1.000000 1.000000 +vt 1.000000 1.000000 +vt 0.875000 1.000000 +vt 0.000000 1.000000 +vt 0.125000 1.000000 +vt 0.000000 1.000000 +vt 0.250000 1.000000 +vt 0.625000 1.000000 +vt 1.000000 0.500000 +vt 1.000000 1.000000 +vt 0.875000 1.000000 +vt 0.875000 0.500000 +vt 0.750000 0.500000 +vt 0.750000 1.000000 +vt 0.625000 1.000000 +vt 0.625000 0.500000 +vt 0.625000 1.000000 +vt 0.625000 0.500000 +vt 0.311328 0.973144 +vt 0.273600 0.943506 +vt 0.273532 1.000000 +vt 0.375000 1.000000 +vt 0.375000 0.973144 +vt 0.500000 1.000000 +vt 0.625000 1.000000 +vt 0.500000 1.000000 +vt 0.074142 0.973144 +vt 0.045930 0.943506 +vt 0.045816 1.000000 +vt 0.125000 1.000000 +vt 0.125000 0.973144 +vt 0.250000 1.000000 +vt 0.125000 1.000000 +vt 0.125000 1.000000 +vt 0.226500 1.000000 +vt 0.250000 1.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 1.000000 +vt 0.000000 1.000000 +vt 0.045816 1.000000 +vt 1.000000 1.000000 +vt 0.875000 1.000000 +vt 0.375000 1.000000 +vt 0.273532 1.000000 +vt 0.375000 1.000000 +vt 0.580294 0.419706 +vt 0.750000 0.490000 +vt 0.919706 0.419706 +vt 0.990000 0.250000 +vt 0.919706 0.080294 +vt 0.750000 0.010000 +vt 0.580294 0.080294 +vt 0.510000 0.250000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.419706 0.419706 +vt 0.250000 0.490000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.226429 0.500000 +vt 0.250000 0.500000 +vt 0.226400 0.943506 +vt 0.226400 0.560020 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.273568 0.500000 +vt 0.273600 0.560020 +vt 0.273600 0.943506 +vt 0.250000 1.000000 +vt 0.375000 1.000000 +vt 0.250000 1.000000 +vt 0.875000 1.000000 +vt 1.000000 1.000000 +vt 1.000000 1.000000 +vt 0.875000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 1.000000 +vt 0.125000 1.000000 +vt 0.750000 1.000000 +vt 0.750000 1.000000 +vt 0.500000 1.000000 +vt 0.375000 1.000000 +vt 0.500000 1.000000 +vt 0.875000 1.000000 +vt 1.000000 1.000000 +vt 0.500000 1.000000 +vt 0.000000 1.000000 +vt 0.125000 1.000000 +vt 1.000000 1.000000 +vt 0.875000 1.000000 +vt 0.250000 1.000000 +vt 0.625000 1.000000 +vt 0.875000 1.000000 +vt 1.000000 1.000000 +vt 1.000000 1.000000 +vt 0.875000 1.000000 +vt 0.125000 1.000000 +vt 0.000000 1.000000 +vt 0.250000 1.000000 +vt 0.500000 1.000000 +vt 0.375000 1.000000 +vt 0.625000 1.000000 +vt 0.125000 1.000000 +vt 0.250000 1.000000 +vt 0.250000 1.000000 +vt 0.125000 1.000000 +vt 0.500000 1.000000 +vt 0.375000 1.000000 +vt 0.000000 1.000000 +vt 0.375000 1.000000 +vt 0.500000 1.000000 +vt 0.500000 1.000000 +vt 0.375000 1.000000 +vt 0.000000 1.000000 +vt 1.000000 1.000000 +vt 0.875000 1.000000 +vt 0.625000 1.000000 +vt 0.625000 1.000000 +vt 0.125000 1.000000 +vt 0.000000 1.000000 +vt 1.000000 1.000000 +vt 0.875000 1.000000 +vt 0.625000 1.000000 +vt 0.000000 1.000000 +vt 0.125000 1.000000 +vt 0.125000 1.000000 +vt 0.000000 1.000000 +vt 0.250000 1.000000 +vt 0.375000 1.000000 +vt 0.250000 1.000000 +vt 1.000000 1.000000 +vt 0.875000 1.000000 +vt 0.625000 1.000000 +vt 0.500000 1.000000 +vt 0.750000 1.000000 +vt 0.750000 1.000000 +vt 1.000000 1.000000 +vt 0.875000 1.000000 +vt 0.625000 1.000000 +vt 0.500000 1.000000 +vt 0.375000 1.000000 +vt 1.000000 0.728416 +vt 1.000000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.728416 +vt 0.750000 0.500000 +vt 0.750000 0.728416 +vt 0.500000 0.500000 +vt 0.375000 0.500000 +vt 0.375000 0.728416 +vt 0.500000 0.728416 +vt 0.250000 0.728416 +vt 0.250000 0.500000 +vt 0.125000 0.500000 +vt 0.125000 0.728416 +vt 0.000000 0.500000 +vt 0.000000 0.728416 +vt 0.990000 0.250000 +vt 0.919706 0.419706 +vt 0.750000 0.490000 +vt 0.580294 0.419706 +vt 0.510000 0.250000 +vt 0.580294 0.080294 +vt 0.750000 0.010000 +vt 0.919706 0.080294 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.074142 0.530382 +vt 0.125000 0.530382 +vt 0.454131 0.500000 +vt 0.125000 0.500000 +vt 0.425858 0.530382 +vt 0.454070 0.560020 +vt 0.311328 0.973144 +vt 0.375000 0.973144 +vt 0.125000 0.500000 +vt 0.125000 0.500000 +vt 0.000000 0.500000 +vt 0.000000 0.500000 +vt 0.046932 0.500000 +vt 0.125000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 1.000000 +vt 0.273568 0.500000 +vt 0.375000 0.500000 +vt 0.375000 0.500000 +vt 0.250000 0.500000 +vt 0.454070 0.943506 +vt 0.453986 1.000000 +vt 0.500000 1.000000 +vt 0.500000 0.500000 +vt 0.045930 0.560020 +vt 0.344657 0.155611 +vt 0.383755 0.250000 +vt 0.490000 0.250000 +vt 0.419706 0.080294 +vt 1.000000 0.728416 +vt 0.875000 0.728416 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 0.074142 0.530382 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.125000 0.530382 +vt 0.226400 0.560020 +vt 0.000000 0.000000 +vt 0.226400 0.943506 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.750000 1.000000 +vt 0.875000 1.000000 +vt 0.875000 1.000000 +vt 0.125000 1.000000 +vt 0.125000 1.000000 +vt 0.250000 1.000000 +vt 0.188672 0.530382 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.074142 0.973144 +vt 0.000000 0.000000 +vt 0.750000 1.000000 +vt 0.045930 0.943506 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.045930 0.560020 +vt 0.000000 0.000000 +vt 0.750000 1.000000 +vt 0.750000 1.000000 +vt 0.875000 1.000000 +vt 0.875000 1.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.625000 1.000000 +vt 0.625000 1.000000 +vt 0.750000 1.000000 +vt 0.625000 1.000000 +vt 0.625000 1.000000 +vt 0.750000 1.000000 +vt 0.375000 1.000000 +vt 0.375000 1.000000 +vt 0.500000 1.000000 +vt 0.500000 1.000000 +vt 0.875000 1.000000 +vt 0.875000 1.000000 +vt 0.000000 0.000000 +vt 0.625000 1.000000 +vt 0.625000 1.000000 +vt 0.625000 1.000000 +vt 0.750000 0.490000 +vt 0.250000 0.490000 +vt 0.419706 0.419706 +vt 0.919706 0.419706 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.875000 1.000000 +vt 1.000000 1.000000 +vt 1.000000 1.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.875000 0.500000 +vt 0.875000 0.500000 +vt 0.750000 0.500000 +vt 0.750000 0.500000 +vt 0.125000 1.000000 +vt 0.125000 1.000000 +vt 0.250000 0.500000 +vt 0.125000 0.500000 +vt 0.125000 0.500000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.750000 1.000000 +vt 0.125000 1.000000 +vt 0.125000 1.000000 +vt 0.625000 1.000000 +vt 0.625000 1.000000 +vt 0.750000 1.000000 +vt 0.344657 0.155611 +vt 0.419706 0.080294 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.750000 0.490000 +vt 0.919706 0.419706 +vt 0.919706 0.419706 +vt 0.750000 0.490000 +vt 0.000000 0.500000 +vt 0.000000 0.890352 +vt 0.000000 0.901860 +vt 0.000000 1.000000 +vt 0.500000 1.000000 +vt 0.750000 0.490000 +vt 0.919706 0.419706 +vt 0.000000 1.000000 +vt 0.000000 0.902071 +vt 0.000000 0.866263 +vt 0.000000 1.000000 +vt 0.625000 1.000000 +vt 0.625000 0.903459 +vt 0.625000 0.893287 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.527590 +vt 0.500000 0.528185 +vt 0.500000 0.500000 +vt 0.625000 0.850445 +vt 0.625000 0.703414 +vt 0.625000 0.667738 +vt 0.625000 0.625178 +vt 0.625000 0.593798 +vt 0.625000 0.556398 +vt 0.919706 0.419706 +vt 0.750000 0.490000 +vt 0.500000 0.556134 +vt 0.500000 0.556134 +vt 0.625000 0.556398 +vt 0.500000 0.594391 +vt 0.000000 0.624920 +vt 0.000000 0.594391 +vt 0.000000 0.594391 +vt 0.000000 0.624920 +vt 0.500000 0.624920 +vt 0.500000 0.667476 +vt 0.000000 0.704013 +vt 0.000000 0.667476 +vt 0.000000 0.667476 +vt 0.000000 0.704013 +vt 0.500000 0.704013 +vt 0.500000 0.849827 +vt 0.500000 0.594391 +vt 0.625000 0.593798 +vt 0.625000 0.625178 +vt 0.500000 0.624920 +vt 0.500000 0.667476 +vt 0.625000 0.667738 +vt 0.625000 0.703414 +vt 0.500000 0.704013 +vt 0.500000 0.528185 +vt 0.625000 0.527590 +vt 0.000000 0.556134 +vt 0.000000 0.528185 +vt 0.000000 0.528185 +vt 0.000000 0.556134 +vt 0.000000 0.902071 +vt 0.000000 0.866263 +vt 0.000000 0.849827 +vt 0.000000 0.890503 +vt 0.000000 0.500000 +vt 0.000000 0.500000 +vt 0.625000 0.850445 +vt 0.500000 0.849827 +vt 0.625000 0.866439 +vt 0.500000 0.866263 +vt 0.500000 0.866263 +vt 0.625000 0.866439 +vt 0.625000 1.000000 +vt 0.500000 1.000000 +vt 0.000000 0.890503 +vt 0.000000 0.890352 +vt 0.000000 0.849827 +vt 0.000000 0.901860 +vt 0.625000 0.893287 +vt 0.625000 0.903459 +vt 1.000000 0.500000 +vt 0.875000 1.000000 +vt 1.000000 1.000000 +vt 0.500000 0.500000 +vt 0.375000 0.500000 +vt 0.375000 1.000000 +vt 0.500000 1.000000 +vt 0.500000 0.500000 +vt 0.375000 0.500000 +vt 1.000000 0.500000 +vt 0.875000 0.500000 +vt 0.875000 1.000000 +vt 1.000000 1.000000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 1.000000 +vt 0.625000 1.000000 +vt 0.625000 1.000000 +vt 0.500000 1.000000 +vt 0.500000 1.000000 +vt 0.500000 1.000000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.875000 1.000000 +vt 0.875000 1.000000 +vt 1.000000 1.000000 +vt 1.000000 1.000000 +vt 0.875000 1.000000 +vt 1.000000 1.000000 +vt 0.125000 1.000000 +vt 0.125000 1.000000 +vt 0.125000 1.000000 +vt 0.125000 0.728416 +vt 0.125000 0.500000 +vt 0.188672 0.530382 +vt 0.625000 1.000000 +vt 0.875000 0.500000 +vt 0.125000 0.500000 +vt 0.125000 0.500000 +vt 0.750000 0.490000 +vt 0.750000 0.490000 +vt 0.919706 0.419706 +vt 0.919706 0.419706 +vt 0.000000 1.000000 +vt 0.000000 0.901860 +vt 0.000000 0.890352 +vt 0.000000 0.500000 +vt 0.000000 0.500000 +vt 0.750000 0.490000 +vt 0.919706 0.419706 +vt 0.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.866263 +vt 0.000000 0.902071 +vt 0.500000 1.000000 +vt 0.625000 0.500000 +vt 0.625000 0.893287 +vt 0.625000 0.903459 +vt 0.625000 0.500000 +vt 0.500000 0.500000 +vt 0.500000 0.528185 +vt 0.625000 0.527590 +vt 0.625000 0.556398 +vt 0.625000 0.593798 +vt 0.625000 0.625178 +vt 0.625000 0.667738 +vt 0.625000 0.703414 +vt 0.625000 0.850445 +vt 0.750000 0.490000 +vt 0.919706 0.419706 +vt 0.625000 0.556398 +vt 0.500000 0.556134 +vt 0.500000 0.556134 +vt 0.500000 0.594391 +vt 0.000000 0.624920 +vt 0.000000 0.624920 +vt 0.000000 0.594391 +vt 0.000000 0.594391 +vt 0.500000 0.624920 +vt 0.500000 0.667476 +vt 0.000000 0.704013 +vt 0.000000 0.704013 +vt 0.000000 0.667476 +vt 0.000000 0.667476 +vt 0.500000 0.704013 +vt 0.500000 0.849827 +vt 0.500000 0.594391 +vt 0.500000 0.624920 +vt 0.625000 0.625178 +vt 0.625000 0.593798 +vt 0.500000 0.667476 +vt 0.500000 0.704013 +vt 0.625000 0.703414 +vt 0.625000 0.667738 +vt 0.500000 0.528185 +vt 0.625000 0.527590 +vt 0.000000 0.556134 +vt 0.000000 0.556134 +vt 0.000000 0.528185 +vt 0.000000 0.528185 +vt 0.000000 0.866263 +vt 0.000000 0.902071 +vt 0.000000 0.849827 +vt 0.000000 0.500000 +vt 0.000000 0.500000 +vt 0.000000 0.890503 +vt 0.500000 0.849827 +vt 0.625000 0.850445 +vt 0.625000 0.866439 +vt 0.625000 0.866439 +vt 0.500000 0.866263 +vt 0.500000 0.866263 +vt 0.000000 0.890352 +vt 0.000000 0.890503 +vt 0.000000 0.849827 +vt 0.000000 0.901860 +vt 0.625000 0.903459 +vt 0.625000 0.893287 +vt 0.580294 0.080294 +vt 0.750000 0.010000 +vt 0.919706 0.080294 +vt 0.990000 0.250000 +vt 0.919706 0.419706 +vt 0.750000 0.490000 +vt 0.580294 0.419706 +vt 0.510000 0.250000 +vt 0.750000 0.500000 +vt 0.625000 0.500000 +vt 0.226429 0.500000 +vt 0.273600 0.560020 +vt 0.311328 0.530382 +vt 0.375000 0.530382 +vt 0.625000 0.500000 +vt 0.875000 0.500000 +vt 1.000000 0.500000 +vt 0.500000 0.500000 +vt 0.125000 0.500000 +vt 0.125000 0.973144 +vt 0.116782 0.250000 +vt 0.010000 0.250000 +vt 0.080294 0.080294 +vt 0.155879 0.155611 +vt 0.155879 0.155611 +vt 0.080294 0.080294 +vt 0.250268 0.116514 +vt 0.250000 0.010000 +vt 0.250268 0.116514 +vt 0.250000 0.010000 +vt 0.250000 0.490000 +vt 0.250268 0.383486 +vt 0.155879 0.344389 +vt 0.080294 0.419706 +vn 0.0000 -0.3827 -0.9239 +vn 0.0000 0.3827 0.9239 +vn 0.0000 0.9239 0.3827 +vn 0.9838 -0.1658 0.0687 +vn -0.8418 0.2066 0.4987 +vn -0.9846 -0.0670 0.1617 +vn -0.9846 -0.0670 -0.1617 +vn 0.9838 0.1658 -0.0687 +vn 0.9838 -0.1658 -0.0687 +vn 0.4296 0.3456 0.8343 +vn 0.4296 -0.3456 -0.8343 +vn 0.4296 0.3456 -0.8343 +vn 0.4296 0.8343 0.3456 +vn 0.4296 -0.3456 0.8343 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 -0.3827 0.9239 +vn 0.0161 0.9158 -0.4012 +vn 0.8293 -0.2138 0.5162 +vn 0.8293 0.5162 -0.2138 +vn 0.0000 -0.9012 -0.4335 +vn 0.8293 0.2138 -0.5162 +vn 0.8293 -0.2138 -0.5162 +vn 0.8293 0.5162 0.2138 +vn -1.0000 0.0000 0.0000 +vn -0.8418 -0.2066 0.4987 +vn -0.0165 -0.3826 -0.9238 +vn -0.0165 0.3826 -0.9238 +vn -0.0165 0.3826 0.9238 +vn -0.0165 -0.9238 -0.3826 +vn -0.0000 0.9616 -0.2745 +vn 0.0000 -0.8684 -0.4959 +vn -0.0000 0.9616 0.2745 +vn -0.8680 0.4588 0.1900 +vn -0.8680 -0.1900 -0.4588 +vn 0.8623 0.1938 -0.4678 +vn -0.8680 -0.4588 -0.1900 +vn 0.8623 0.1938 0.4678 +vn 0.9838 0.0687 0.1658 +vn -0.9846 -0.1617 -0.0670 +vn 0.9838 -0.0687 -0.1658 +vn 0.9838 -0.0687 0.1658 +vn 0.9838 0.0687 -0.1658 +vn -0.9846 0.0670 0.1617 +vn 0.0915 0.3811 0.9200 +vn 0.0915 0.3811 -0.9200 +vn 0.0915 -0.3811 -0.9200 +vn -0.8680 0.1900 -0.4588 +vn -0.8680 0.1900 0.4588 +vn 0.8623 0.4678 -0.1938 +vn 0.8623 -0.1938 0.4678 +vn 0.8623 -0.1938 -0.4678 +vn 0.2182 0.3735 0.9016 +vn 1.0000 -0.0000 0.0000 +vn -0.0497 0.9227 -0.3822 +vn 0.2182 -0.3735 -0.9016 +vn 0.2182 -0.9016 0.3735 +vn 0.2182 -0.9016 -0.3735 +vn 0.2182 -0.3735 0.9016 +vn -0.0497 0.9227 0.3822 +vn -0.0497 0.3822 -0.9227 +vn -0.0497 -0.3822 -0.9227 +vn -0.0497 -0.3822 0.9227 +vn -0.0497 0.3822 0.9227 +vn 0.0000 0.3827 -0.9239 +vn 0.3223 -0.8746 -0.3623 +vn 0.3223 0.3623 0.8746 +vn 0.3223 0.3623 -0.8746 +vn 0.3223 0.8746 -0.3623 +vn 0.3223 -0.3623 -0.8746 +vn 0.0161 0.9158 0.4012 +vn -0.1533 0.3782 0.9130 +vn 0.8293 0.2138 0.5162 +vn -0.1218 0.9170 -0.3798 +vn 0.7023 0.6629 -0.2594 +vn 0.0000 0.0000 1.0000 +vn 0.0068 -1.0000 0.0000 +vn 0.6287 0.0000 0.7776 +vn -0.0165 0.9238 -0.3826 +vn -0.8680 0.4588 -0.1900 +vn 0.0000 -0.9239 -0.3827 +vn -0.6414 0.7600 0.1048 +vn -0.6231 -0.1179 -0.7732 +vn -0.6231 -0.1179 0.7732 +vn -0.6414 0.7600 -0.1048 +vn -0.0103 0.9832 -0.1821 +vn -0.0103 0.9832 0.1821 +vn 0.0000 -0.9012 0.4335 +vn 0.0000 -0.8684 0.4959 +vn 0.0915 -0.9200 -0.3811 +vn 0.2182 0.9016 0.3735 +vn 0.3223 -0.3623 0.8746 +vn 0.0465 -0.2865 0.9570 +vn 0.0000 -1.0000 0.0000 +vn 0.9838 0.1658 0.0687 +vn 0.4296 -0.8343 -0.3456 +vn -0.0166 -0.3826 0.9238 +vn -0.0165 -0.9238 0.3826 +vn 0.8623 -0.4678 -0.1938 +vn 0.2182 0.3735 -0.9016 +vn 0.7023 0.6629 0.2594 +vn -0.9999 -0.0123 -0.0000 +vn 0.0915 0.9200 -0.3811 +vn 0.0465 -0.2865 -0.9570 +vn -0.8418 -0.4987 0.2066 +vn -0.0497 -0.9227 0.3822 +vn -0.8418 0.4987 0.2066 +vn 0.3746 -0.9272 0.0000 +vn 0.1495 -0.8307 -0.5362 +vn 0.0000 -0.4721 -0.8815 +vn 0.0000 -0.3958 -0.9183 +vn 0.1495 -0.8307 0.5362 +vn 0.0000 -0.4721 0.8815 +vn 0.0000 -0.3958 0.9183 +vn -0.9846 0.1617 0.0670 +vn 0.4296 -0.8343 0.3456 +vn 0.0915 0.9200 0.3811 +vn 0.4296 0.8343 -0.3456 +vn 0.8623 -0.4678 0.1938 +vn -0.0497 -0.9227 -0.3822 +vn 0.3223 0.8746 0.3623 +vn 0.8293 -0.5162 -0.2138 +vn -0.9846 -0.1617 0.0670 +vn 0.9999 -0.0145 -0.0000 +vn -0.0222 -0.3380 -0.9409 +vn -0.0222 -0.3380 0.9409 +vn 0.0821 -0.3191 0.9441 +vn 0.0821 -0.3191 -0.9441 +vn -0.0053 -0.3038 0.9527 +vn -0.0053 -0.3038 -0.9527 +vn -0.0755 0.9042 0.4204 +vn -0.0854 0.3020 0.9495 +vn -0.0854 0.3020 -0.9495 +vn 0.0723 0.9168 0.3926 +vn 0.0702 0.9117 -0.4047 +vn 0.1218 0.3643 -0.9233 +vn -0.0095 0.3428 -0.9394 +vn -0.0127 0.9088 -0.4171 +vn -0.0124 0.9153 0.4026 +vn -0.0095 0.3428 0.9394 +vn -0.0039 0.8598 0.5107 +vn -0.0022 0.8595 0.5111 +vn 0.0005 0.9245 0.3812 +vn -0.0013 -0.9234 -0.3838 +vn 0.0014 -0.3780 0.9258 +vn 0.0019 -0.9695 -0.2450 +vn -0.5510 -0.3187 0.7712 +vn -0.9170 -0.1562 0.3671 +vn 0.0048 -0.9190 0.3942 +vn 0.0050 -0.9355 0.3532 +vn 0.0017 -0.3780 0.9258 +vn 0.8917 -0.1710 0.4191 +vn -0.8914 -0.1765 0.4174 +vn -0.0029 0.4287 0.9035 +vn 0.0018 -0.3780 0.9258 +vn 0.8493 -0.1946 0.4907 +vn -0.8491 -0.1997 0.4891 +vn -0.0031 0.4723 0.8814 +vn -0.0034 0.5235 0.8520 +vn 0.0050 -0.9531 0.3028 +vn 0.9172 -0.1505 0.3689 +vn -0.9919 0.1050 0.0715 +vn -0.0018 0.8543 0.5198 +vn 0.9959 -0.0250 0.0874 +vn -0.9957 -0.0410 0.0837 +vn 0.0024 -0.9722 -0.2343 +vn 0.0013 -0.9725 -0.2331 +vn 0.9905 0.1284 0.0490 +vn 0.0013 -0.3780 0.9258 +vn -0.0023 0.8582 0.5133 +vn 0.0026 -0.9715 -0.2370 +vn 0.9976 -0.0694 -0.0010 +vn 0.0000 -0.7129 0.7012 +vn 0.9884 0.1326 0.0741 +vn -0.9938 0.1009 0.0477 +vn 0.0000 0.5505 0.8349 +vn -0.9952 -0.0952 -0.0245 +vn 0.0000 0.9239 -0.3827 +vn -0.8418 0.2066 -0.4987 +vn 1.0000 -0.0007 -0.0064 +vn 1.0000 -0.0004 -0.0047 +vn 1.0000 0.0013 -0.0051 +vn -0.8418 -0.2066 -0.4987 +vn -0.8680 -0.1900 0.4588 +vn -0.8680 -0.4588 0.1900 +vn -0.9846 0.0670 -0.1617 +vn 0.0915 -0.3811 0.9200 +vn 0.8623 0.4678 0.1938 +vn 0.3223 -0.8746 0.3623 +vn 0.0000 0.0000 -1.0000 +vn 0.6287 0.0000 -0.7776 +vn -0.0165 0.9238 0.3826 +vn 0.0915 -0.9200 0.3811 +vn 0.2182 0.9016 -0.3735 +vn 0.1948 -0.9808 0.0000 +vn -0.8418 -0.4987 -0.2066 +vn -0.8418 0.4987 -0.2066 +vn -0.9846 0.1617 -0.0670 +vn 0.8293 -0.5162 0.2138 +vn -0.0712 0.8983 -0.4336 +vn 0.1218 0.3643 0.9233 +vn -0.0007 0.8599 -0.5105 +vn -0.0022 0.8595 -0.5111 +vn 1.0000 -0.0009 0.0063 +vn 1.0000 -0.0004 0.0047 +vn 1.0000 0.0013 0.0051 +vn 0.0008 0.9233 -0.3841 +vn -0.0001 -0.9232 0.3843 +vn 0.0014 -0.3780 -0.9258 +vn 0.0019 -0.9695 0.2450 +vn -0.5510 -0.3187 -0.7712 +vn -0.9170 -0.1562 -0.3671 +vn 0.0048 -0.9190 -0.3942 +vn 0.0050 -0.9355 -0.3532 +vn 0.0017 -0.3780 -0.9258 +vn 0.8917 -0.1710 -0.4191 +vn -0.8914 -0.1765 -0.4174 +vn -0.0029 0.4287 -0.9035 +vn 0.0018 -0.3780 -0.9258 +vn 0.8493 -0.1946 -0.4907 +vn -0.8491 -0.1997 -0.4891 +vn -0.0031 0.4723 -0.8814 +vn -0.0034 0.5235 -0.8520 +vn 0.0050 -0.9531 -0.3028 +vn 0.9172 -0.1505 -0.3689 +vn -0.9919 0.1050 -0.0715 +vn -0.0018 0.8543 -0.5198 +vn 0.9959 -0.0250 -0.0874 +vn -0.9957 -0.0410 -0.0837 +vn 0.0024 -0.9722 0.2343 +vn 0.0007 -0.9722 0.2343 +vn 0.9905 0.1284 -0.0490 +vn -0.0023 0.8582 -0.5133 +vn 0.0026 -0.9715 0.2370 +vn 0.9976 -0.0694 0.0010 +vn 0.0000 -0.7129 -0.7012 +vn 0.9884 0.1326 -0.0741 +vn -0.9938 0.1009 -0.0476 +vn 0.0000 0.5505 -0.8349 +vn -0.9952 -0.0952 0.0245 +vn -0.2273 -0.8997 -0.3727 +vn -0.0182 0.9159 0.4009 +vn -0.0182 0.9159 -0.4009 +vn -0.2272 -0.8997 0.3727 +vn -0.1218 0.9170 0.3798 +vn -0.1970 -0.3752 -0.9058 +vn -0.1970 -0.3752 0.9058 +vn -0.1533 0.3782 -0.9130 +s off +f 1141/1847/614 1142/1848/614 1143/1849/614 1144/1850/614 +f 1145/1851/615 1146/1852/615 1147/1853/615 1148/1854/615 +f 1148/1854/616 1147/1853/616 1149/1855/616 1150/1856/616 +f 1151/1857/617 1152/1858/617 1153/1859/617 1154/1860/617 +f 1145/1851/618 1148/1854/618 1155/1861/618 1156/1862/618 +f 1142/1863/619 1157/1864/619 1158/1865/619 1159/1866/619 +f 1147/1853/620 1146/1852/620 1160/1867/620 1161/1868/620 +f 1162/1869/621 1163/1870/621 1164/1871/621 1165/1872/621 +f 1166/1873/622 1151/1857/622 1154/1860/622 1167/1874/622 +f 1166/1873/623 1168/1875/623 1169/1876/623 1170/1877/623 +f 1171/1878/624 1172/1879/624 1173/1880/624 1174/1881/624 +f 1172/1882/625 1152/1858/625 1175/1883/625 1173/1884/625 +f 1151/1857/626 1166/1873/626 1170/1877/626 1176/1885/626 +f 1168/1875/627 1163/1870/627 1177/1886/627 1169/1876/627 +f 1178/1887/614 1179/1888/614 1180/1889/614 1181/1890/614 +f 1182/1891/628 1183/1892/628 1184/1893/628 1185/1894/628 +f 1185/1894/629 1184/1893/629 1186/1895/629 1187/1896/629 +f 1340/1897/630 1220/1898/630 1199/1899/630 1194/1900/630 1196/1901/630 +f 1191/1902/631 1184/1893/631 1192/1903/631 1193/1904/631 +f 1316/1905/615 1326/1906/615 1319/1907/615 1188/1908/615 1190/1909/615 +f 1197/1910/632 1198/1911/632 1194/1912/632 1199/1913/632 1200/1914/632 +f 1201/1915/633 1202/1916/633 1203/1917/633 1204/1918/633 +f 1198/1911/634 1205/1919/634 1179/1920/634 1206/1921/634 1194/1912/634 +f 1180/1889/635 1179/1888/635 1205/1922/635 1207/1923/635 +f 1208/1924/636 1197/1910/636 1200/1914/636 1209/1925/636 1188/1926/636 +f 1210/1927/637 1211/1928/637 1212/1929/637 1213/1930/637 1214/1931/637 1156/1932/637 1155/1933/637 1215/1934/637 +f 1216/1935/638 1145/1851/638 1156/1862/638 1214/1936/638 +f 1211/1928/639 1212/1929/639 1207/1937/639 1205/1938/639 +f 1211/1939/640 1205/1940/640 1198/1941/640 1210/1942/640 +f 1155/1943/641 1208/1944/641 1193/1945/641 1156/1946/641 +f 1213/1947/642 1217/1948/642 1207/1949/642 1212/1950/642 +f 1218/1951/643 1219/1952/643 1200/1914/643 1199/1913/643 1220/1953/643 1221/1954/643 +f 1204/1918/644 1203/1917/644 1222/1955/644 1223/1956/644 +f 1201/1915/614 1224/1957/614 1225/1958/614 1202/1916/614 +f 1200/1914/645 1219/1952/645 1227/1959/645 1228/1960/645 1226/1961/645 1209/1925/645 +f 1230/1962/646 1161/1868/646 1231/1963/646 1232/1964/646 +f 1233/1965/647 1159/1966/647 1234/1967/647 1235/1968/647 +f 1153/1859/648 1236/1969/648 1237/1970/648 1238/1971/648 +f 1239/1972/649 1233/1965/649 1235/1968/649 1240/1973/649 +f 1241/1974/650 1167/1874/650 1242/1975/650 1243/1976/650 +f 1172/1879/651 1171/1878/651 1244/1977/651 1236/1978/651 +f 1149/1855/652 1147/1853/652 1161/1868/652 1230/1962/652 +f 1168/1875/653 1166/1873/653 1167/1874/653 1241/1974/653 +f 1152/1858/654 1172/1882/654 1236/1969/654 1153/1859/654 +f 1163/1870/655 1168/1875/655 1241/1974/655 1164/1871/655 +f 1143/1849/656 1142/1848/656 1159/1966/656 1233/1965/656 +f 1231/1963/657 1245/1979/657 1243/1976/657 1242/1975/657 +f 1234/1980/658 1246/1981/658 1238/1971/658 1237/1970/658 +f 1235/1968/659 1234/1967/659 1237/1982/659 1247/1983/659 +f 1159/1866/660 1158/1865/660 1246/1981/660 1234/1980/660 +f 1161/1868/661 1160/1867/661 1245/1979/661 1231/1963/661 +f 1154/1860/662 1153/1859/662 1238/1971/662 1248/1984/662 +f 1164/1871/663 1241/1974/663 1243/1976/663 1249/1985/663 +f 1236/1978/664 1244/1977/664 1247/1983/664 1237/1982/664 +f 1250/1986/665 1251/1987/665 1252/1988/665 1253/1989/665 +f 1173/1884/666 1175/1883/666 1254/1990/666 1251/1991/666 +f 1174/1881/666 1173/1880/666 1251/1987/666 1250/1986/666 +f 1175/1883/666 1176/1885/666 1255/1992/666 1254/1990/666 +f 1170/1877/666 1169/1876/666 1256/1993/666 1257/1994/666 +f 1169/1876/666 1177/1886/666 1258/1995/666 1256/1993/666 +f 1259/1996/667 1260/1997/667 1261/1998/667 1262/1999/667 +f 1257/1994/668 1256/1993/668 1263/2000/668 1264/2001/668 +f 1254/1990/669 1255/1992/669 1260/1997/669 1259/1996/669 +f 1255/1992/670 1257/1994/670 1264/2001/670 1260/1997/670 +f 1251/1991/671 1254/1990/671 1259/1996/671 1252/2002/671 +f 1265/2003/666 1266/2004/666 1267/2005/666 1268/2006/666 +f 1260/1997/672 1264/2001/672 1265/2003/672 1261/1998/672 +f 1252/2002/673 1259/1996/673 1262/1999/673 1269/2007/673 +f 1253/1989/674 1252/1988/674 1269/2008/674 1270/2009/674 +f 1263/2000/675 1271/2010/675 1272/2011/675 1266/2004/675 +f 1264/2001/676 1263/2000/676 1266/2004/676 1265/2003/676 +f 1269/2007/666 1262/1999/666 1273/2012/666 1274/2013/666 +f 1270/2009/666 1269/2008/666 1274/2014/666 1275/2015/666 +f 1266/2004/666 1272/2011/666 1276/2016/666 1267/2005/666 +f 1277/2017/677 1278/2018/677 1279/2019/677 1280/2020/677 +f 1281/2021/678 1268/2006/678 1282/2022/678 1283/2023/678 +f 1275/2015/679 1274/2014/679 1277/2024/679 1284/2025/679 +f 1267/2005/680 1276/2016/680 1285/2026/680 1286/2027/680 +f 1276/2016/681 1287/2028/681 1288/2029/681 1285/2026/681 +f 1268/2006/682 1267/2005/682 1286/2027/682 1282/2022/682 +f 1284/2025/614 1277/2024/614 1280/2030/614 1291/2031/614 +f 1286/2027/629 1285/2026/629 1294/2032/629 1295/2033/629 +f 1282/2022/615 1286/2027/615 1295/2033/615 1296/2034/615 +f 1292/2035/615 1297/2036/615 1298/2037/615 1293/2038/615 +f 1298/2037/616 1299/2039/616 1289/2040/616 1293/2038/616 +f 1300/2041/614 1301/2042/614 1302/2043/614 1303/2044/614 +f 1304/2045/628 1305/2046/628 1306/2047/628 1307/2048/628 +f 1307/2048/629 1306/2047/629 1297/2049/629 1292/2050/629 +f 1299/2051/666 1298/2052/666 1297/2053/666 1306/2054/666 1305/2055/666 1301/2056/666 1300/2057/666 1308/2058/666 +f 1309/2059/666 1310/2060/666 1311/2061/666 1312/2062/666 +f 1325/2063/677 1317/2064/677 1312/2062/677 1311/2065/677 1324/2066/677 +f 1188/1926/683 1209/1925/683 1226/1961/683 1189/2067/683 1190/2068/683 +f 1315/2069/684 1505/2070/684 1504/2071/684 1327/2072/684 1323/2073/684 +f 1208/2074/685 1188/1908/685 1319/1907/685 1191/2075/685 1193/2076/685 +f 1218/2077/686 1317/2078/686 1318/2079/686 1506/2080/686 1219/1952/686 +f 1325/2063/677 1324/2066/677 1229/2081/677 1206/2082/677 1179/2083/677 1178/2084/677 +f 1191/2075/615 1319/1907/615 1326/1906/615 1322/2085/615 1323/2073/615 1327/2072/615 +f 1293/2086/666 1289/2087/666 1290/2088/666 1291/2089/666 +f 1303/2090/677 1328/2091/677 1308/2092/677 1300/2093/677 +f 1321/2094/687 1322/2085/687 1329/2095/687 1330/2096/687 +f 1331/2097/666 1313/2098/666 1321/2094/666 1330/2096/666 +f 1228/2099/688 1332/2100/688 1222/1955/688 1226/2101/688 +f 1222/1955/689 1332/2100/689 1333/2102/689 1334/2103/689 +f 1335/2104/666 1287/2028/666 1276/2105/666 1272/2106/666 +f 1282/2107/616 1296/2108/616 1336/2109/616 1283/2023/616 +f 1228/2099/690 1314/2110/690 1337/2111/690 1332/2100/690 +f 1196/2112/637 1338/2113/637 1339/2114/637 1340/2115/637 +f 1210/1942/691 1198/1941/691 1197/2116/691 1215/2117/691 +f 1196/2112/637 1195/2118/637 1341/2119/637 1338/2113/637 +f 1158/1865/692 1230/1962/692 1232/1964/692 1246/1981/692 +f 1288/2029/693 1284/2025/693 1291/2031/693 1290/2120/693 +f 1229/2121/694 1342/2122/694 1341/2119/694 1195/2118/694 +f 1334/2103/695 1220/2123/695 1340/2115/695 1339/2114/695 +f 1203/1917/696 1189/2124/696 1226/1961/696 1222/1955/696 +f 1203/1917/637 1202/1916/637 1190/2068/637 1189/2124/637 +f 1225/1958/637 1316/2125/637 1190/2126/637 1202/1916/637 +f 1326/2127/697 1316/2125/697 1225/1958/697 1343/2128/697 +f 1329/2095/698 1322/2085/698 1326/2127/698 1343/2128/698 +f 1229/2121/699 1324/2129/699 1344/2130/699 1342/2122/699 +f 1345/2131/666 1346/2132/666 1258/2133/666 1177/2134/666 +f 1347/2135/700 1348/2136/700 1339/2114/700 1338/2113/700 +f 1348/2136/701 1349/2137/701 1334/2103/701 1339/2114/701 +f 1347/2135/629 1338/2113/629 1341/2119/629 1350/2138/629 +f 1235/2139/702 1247/2140/702 1351/2141/702 1240/1973/702 +f 1250/2142/703 1253/2143/703 1352/2144/703 1346/2132/703 +f 1273/2145/704 1278/2146/704 1277/2147/704 1274/2148/704 +f 1288/2029/628 1290/2120/628 1294/2149/628 1285/2150/628 +f 1353/2151/705 1350/2138/705 1341/2119/705 1342/2122/705 +f 1334/2103/706 1349/2137/706 1223/1956/706 1222/1955/706 +f 1162/1869/707 1165/1872/707 1244/2152/707 1171/2153/707 +f 1171/2153/708 1174/2154/708 1345/2131/708 1162/1869/708 +f 1156/2155/709 1193/2156/709 1192/2157/709 1214/2158/709 +f 1213/1947/710 1214/2159/710 1192/2160/710 1217/1948/710 +f 1165/1872/711 1351/2141/711 1247/2140/711 1244/2152/711 +f 1258/2133/712 1271/2161/712 1263/2162/712 1256/2163/712 +f 1262/1999/666 1261/1998/666 1281/2021/666 1273/2012/666 +f 1311/2061/713 1310/2060/713 1344/2130/713 1324/2129/713 +f 1354/2164/714 1355/2165/714 1356/2166/714 1357/2167/714 1358/2168/714 1359/2169/714 1224/1957/714 1201/1915/714 1204/1918/714 1223/1956/714 1349/2137/714 1348/2136/714 1347/2135/714 1350/2138/714 1353/2151/714 +f 1345/2131/666 1174/1881/666 1250/1986/666 1346/2132/666 +f 1246/1981/715 1232/1964/715 1248/1984/715 1238/1971/715 +f 1359/2169/716 1343/2128/716 1225/1958/716 1224/1957/716 +f 1216/2170/717 1214/2171/717 1213/2172/717 1360/2173/717 +f 1352/2144/718 1335/2104/718 1272/2106/718 1271/2161/718 +f 1265/2174/666 1268/2175/666 1281/2021/666 1261/1998/666 +f 1150/1856/719 1215/2176/719 1155/2177/719 1148/2178/719 +f 1361/2179/720 1362/2180/720 1363/2181/720 1337/2111/720 +f 1361/2179/721 1337/2111/721 1331/2097/721 1364/2182/721 +f 1364/2182/722 1331/2097/722 1330/2096/722 1365/2183/722 +f 1366/2184/723 1365/2183/723 1330/2096/723 1329/2095/723 +f 1363/2181/724 1362/2180/724 1367/2185/724 1309/2059/724 +f 1309/2059/725 1367/2185/725 1368/2186/725 1310/2060/725 +f 1310/2060/726 1368/2186/726 1369/2187/726 1344/2130/726 +f 1144/1850/693 1143/1849/693 1370/2188/693 1360/2173/693 +f 1370/2188/727 1143/1849/727 1233/1965/727 1239/1972/727 +f 1163/1870/728 1162/1869/728 1345/2131/728 1177/1886/728 +f 1231/2189/729 1242/2190/729 1248/1984/729 1232/1964/729 +f 1152/1858/730 1151/1857/730 1176/1885/730 1175/1883/730 +f 1165/1872/731 1164/1871/731 1249/1985/731 1351/2141/731 +f 1352/2144/732 1253/1989/732 1270/2009/732 1335/2104/732 +f 1335/2104/666 1270/2009/666 1275/2015/666 1287/2028/666 +f 1287/2028/733 1275/2015/733 1284/2025/733 1288/2029/733 +f 1180/2191/734 1207/2192/734 1217/2193/734 1183/1892/734 +f 1157/1864/735 1149/1855/735 1230/1962/735 1158/1865/735 +f 1328/2194/666 1294/2195/666 1290/2088/666 1289/2087/666 +f 1367/2185/736 1362/2180/736 1361/2179/736 1364/2182/736 1365/2183/736 1366/2184/736 1371/2196/736 1372/2197/736 1373/2198/736 1374/2199/736 1375/2200/736 1369/2187/736 1368/2186/736 +f 1376/2201/737 1371/2196/737 1366/2184/737 1329/2095/737 +f 1377/2202/738 1344/2130/738 1369/2187/738 1375/2200/738 +f 1354/2164/739 1353/2151/739 1342/2122/739 1378/2203/739 +f 1358/2168/740 1379/2204/740 1343/2128/740 1359/2169/740 +f 1342/2122/741 1344/2130/741 1377/2202/741 1378/2203/741 +f 1343/2128/742 1379/2204/742 1376/2201/742 1329/2095/742 +f 1373/2198/743 1380/2205/743 1381/2206/743 1374/2199/743 +f 1374/2199/744 1381/2206/744 1377/2202/744 1375/2200/744 +f 1372/2197/745 1371/2196/745 1376/2201/745 1382/2207/745 +f 1356/2166/746 1355/2165/746 1383/2208/746 1384/2209/746 +f 1356/2166/747 1384/2209/747 1385/2210/747 1357/2167/747 +f 1357/2167/748 1385/2210/748 1379/2204/748 1358/2168/748 +f 1379/2204/749 1385/2210/749 1382/2207/749 1376/2201/749 +f 1380/2205/750 1382/2207/750 1385/2210/750 1384/2209/750 +f 1380/2205/751 1384/2209/751 1383/2208/751 1381/2206/751 +f 1378/2203/752 1377/2202/752 1381/2206/752 1383/2208/752 +f 1386/2211/637 1187/2212/637 1387/2213/637 1388/2214/637 +f 1191/2075/629 1327/2072/629 1386/2215/629 1389/2216/629 1390/2217/629 1391/2218/629 +f 1184/1893/629 1191/1902/629 1391/2219/629 1186/1895/629 +f 1327/2220/629 1185/2221/629 1187/2212/629 1386/2211/629 +f 1392/2222/753 1393/2223/754 1394/2224/754 1395/2225/754 +f 1391/2218/616 1390/2217/616 1393/2223/616 1392/2222/755 +f 1187/1896/693 1186/1895/693 1396/2226/756 1397/2227/693 1398/2228/693 1387/2229/693 +f 1399/2230/757 1400/2231/757 1401/2232/757 1402/2233/757 +f 1387/2229/758 1398/2228/758 1403/2234/758 1404/2235/758 1405/2236/758 1406/2237/758 1407/2238/758 1408/2239/758 1400/2231/758 1399/2230/758 +f 1388/2214/759 1387/2213/759 1399/2240/759 1402/2241/759 +f 1408/2239/760 1410/2242/760 1411/2243/760 1412/2244/760 +f 1410/2242/757 1408/2239/757 1407/2238/757 1413/2245/757 +f 1414/2246/761 1413/2247/761 1415/2248/761 1416/2249/761 +f 1414/2250/757 1406/2237/757 1405/2236/757 1417/2251/757 +f 1418/2252/762 1417/2253/762 1419/2254/762 1420/2255/762 +f 1418/2256/757 1404/2235/757 1403/2234/757 1421/2257/757 +f 1415/2258/763 1422/2259/763 1423/2260/763 1416/2261/763 +f 1413/2245/764 1407/2238/764 1422/2259/764 1415/2258/764 +f 1406/2237/765 1414/2250/765 1416/2261/765 1423/2260/765 +f 1407/2238/766 1406/2237/766 1423/2260/766 1422/2259/766 +f 1419/2262/767 1424/2263/767 1425/2264/767 1420/2265/767 +f 1417/2251/768 1405/2236/768 1424/2263/768 1419/2262/768 +f 1404/2235/769 1418/2256/769 1420/2265/769 1425/2264/769 +f 1405/2236/770 1404/2235/770 1425/2264/770 1424/2263/770 +f 1426/2266/763 1427/2267/763 1412/2244/763 1411/2243/763 +f 1400/2231/771 1408/2239/771 1412/2244/771 1427/2267/771 +f 1410/2268/772 1401/2269/772 1426/2270/772 1411/2271/772 +f 1401/2232/773 1400/2231/773 1427/2267/773 1426/2266/773 +f 1394/2224/774 1393/2223/774 1428/2272/774 1429/2273/774 +f 1421/2274/775 1430/2275/775 1388/2276/775 1402/2277/775 1401/2269/775 1410/2268/775 1413/2247/775 1414/2246/775 1417/2253/775 1418/2252/775 +f 1430/2275/616 1389/2216/616 1386/2215/616 1388/2276/616 +f 1421/2257/776 1403/2234/776 1431/2278/776 1432/2279/776 +f 1433/2280/777 1394/2281/777 1429/2282/777 1434/2283/777 +f 1394/2281/757 1433/2280/757 1409/2284/757 1395/2285/757 +f 1433/2280/778 1397/2227/778 1396/2226/779 1409/2284/778 +f 1389/2216/780 1430/2275/780 1435/2286/780 1436/2287/780 +f 1432/2279/781 1431/2278/781 1434/2283/781 1429/2282/781 +f 1429/2273/782 1428/2272/782 1435/2286/782 1432/2288/782 +f 1428/2272/616 1437/2289/616 1436/2287/616 1435/2286/616 +f 1431/2278/783 1438/2290/783 1439/2291/783 1434/2283/783 +f 1403/2234/784 1398/2228/784 1438/2290/784 1431/2278/784 +f 1398/2228/785 1397/2227/785 1439/2291/785 1438/2290/785 +f 1430/2275/786 1421/2274/786 1432/2288/786 1435/2286/786 +f 1393/2223/787 1390/2217/787 1437/2289/787 1428/2272/787 +f 1390/2217/788 1389/2216/788 1436/2287/788 1437/2289/788 +f 1397/2227/789 1433/2280/789 1434/2283/789 1439/2291/789 +f 1145/2292/629 1216/2170/629 1440/2293/629 1146/2294/629 +f 1141/2295/677 1441/2296/677 1157/2297/677 1142/2298/677 +f 1441/2296/790 1150/1856/790 1149/1855/790 1157/2297/790 +f 1141/2295/791 1211/2299/791 1210/2300/791 1441/2296/791 +f 1327/2301/629 1185/2302/629 1184/2303/629 1191/2304/629 +f 1182/1891/693 1181/2305/693 1180/2191/693 1183/1892/693 +f 1181/2305/614 1442/2306/614 1443/2307/614 1180/2191/614 +f 1456/2308/792 1469/2309/793 1453/2310/793 1452/2311/794 1449/2312/793 1443/2307/793 +f 1144/2313/795 1212/2314/795 1211/2299/795 1141/2295/795 +f 1444/2315/796 1445/2316/796 1245/2317/796 1160/2318/796 +f 1239/1972/797 1240/1973/797 1445/2316/797 1444/2315/797 +f 1440/2293/798 1444/2315/798 1160/2318/798 1146/2294/798 +f 1445/2316/799 1249/2319/799 1243/2320/799 1245/2317/799 +f 1154/1860/800 1248/1984/800 1242/2190/800 1167/2321/800 +f 1170/2322/666 1257/2323/666 1255/1992/666 1176/1885/666 +f 1281/2021/801 1283/2023/801 1278/2146/801 1273/2145/801 +f 1308/2092/790 1328/2091/790 1289/2040/790 1299/2039/790 +f 1304/2045/693 1302/2324/693 1301/2325/693 1305/2046/693 +f 1337/2111/666 1314/2110/666 1313/2098/666 1331/2097/666 +f 1363/2181/666 1309/2059/666 1312/2062/666 1320/2326/666 +f 1221/1954/802 1220/1953/802 1334/2103/802 1333/2102/802 +f 1278/2018/790 1283/2023/790 1336/2109/790 1279/2019/790 +f 1221/1954/803 1333/2102/803 1363/2181/803 1320/2326/803 +f 1155/1943/804 1215/2117/804 1197/2116/804 1208/1944/804 +f 1445/2327/805 1240/1973/805 1351/2141/805 1249/1985/805 +f 1258/1995/806 1346/2132/806 1352/2144/806 1271/2010/806 +f 1333/2102/807 1332/2100/807 1337/2111/807 1363/2181/807 +f 1144/1850/808 1360/2173/808 1213/2172/808 1212/2328/808 +f 1150/1856/809 1441/2329/809 1210/2330/809 1215/2176/809 +f 1216/2170/628 1360/2173/628 1370/2188/628 1440/2293/628 +f 1370/2188/810 1239/1972/810 1444/2315/810 1440/2293/810 +f 1184/1893/811 1183/1892/811 1217/2193/811 1192/1903/811 +f 1373/2198/812 1372/2197/812 1382/2207/812 1380/2205/812 +f 1355/2165/813 1354/2164/813 1378/2203/813 1383/2208/813 +f 1446/2331/637 1447/2332/637 1448/2333/637 1442/2334/637 +f 1179/1920/614 1449/2335/614 1450/2336/614 1451/2337/614 1446/2338/614 1178/2339/614 +f 1180/2191/614 1443/2307/614 1449/2312/614 1179/2083/614 +f 1178/2340/614 1446/2331/614 1442/2334/614 1181/2341/614 +f 1452/2342/814 1453/2343/815 1454/2344/815 1455/2345/815 +f 1392/2346/816 1395/2285/817 1409/2284/817 1396/2226/818 1186/1895/817 1391/2219/817 +f 1449/2335/790 1452/2342/819 1455/2345/790 1450/2336/790 +f 1442/2306/628 1448/2347/628 1457/2348/628 1458/2349/628 1456/2308/820 1443/2307/628 +f 1459/2350/821 1460/2351/821 1461/2352/821 1462/2353/821 +f 1448/2347/822 1459/2350/822 1462/2353/822 1463/2354/822 1464/2355/822 1465/2356/822 1466/2357/822 1467/2358/822 1468/2359/822 1457/2348/822 +f 1447/2332/823 1460/2360/823 1459/2361/823 1448/2333/823 +f 1463/2354/824 1470/2362/824 1471/2363/824 1472/2364/824 +f 1472/2364/821 1473/2365/821 1464/2355/821 1463/2354/821 +f 1474/2366/825 1475/2367/825 1476/2368/825 1473/2369/825 +f 1474/2370/821 1477/2371/821 1466/2357/821 1465/2356/821 +f 1478/2372/826 1479/2373/826 1480/2374/826 1477/2375/826 +f 1478/2376/821 1481/2377/821 1468/2359/821 1467/2358/821 +f 1476/2378/827 1475/2379/827 1482/2380/827 1483/2381/827 +f 1473/2365/828 1476/2378/828 1483/2381/828 1464/2355/828 +f 1465/2356/829 1482/2380/829 1475/2379/829 1474/2370/829 +f 1464/2355/830 1483/2381/830 1482/2380/830 1465/2356/830 +f 1480/2382/831 1479/2383/831 1484/2384/831 1485/2385/831 +f 1477/2371/832 1480/2382/832 1485/2385/832 1466/2357/832 +f 1467/2358/833 1484/2384/833 1479/2383/833 1478/2376/833 +f 1466/2357/834 1485/2385/834 1484/2384/834 1467/2358/834 +f 1486/2386/827 1471/2363/827 1470/2362/827 1487/2387/827 +f 1462/2353/835 1487/2387/835 1470/2362/835 1463/2354/835 +f 1472/2388/836 1471/2389/836 1486/2390/836 1461/2391/836 +f 1461/2352/837 1486/2386/837 1487/2387/837 1462/2353/837 +f 1454/2344/838 1488/2392/838 1489/2393/838 1455/2345/838 +f 1481/2394/839 1478/2372/839 1477/2375/839 1474/2366/839 1473/2369/839 1472/2388/839 1461/2391/839 1460/2395/839 1447/2396/839 1490/2397/839 +f 1490/2397/790 1447/2396/790 1446/2338/790 1451/2337/790 +f 1481/2377/840 1491/2398/840 1492/2399/840 1468/2359/840 +f 1493/2400/841 1494/2401/841 1488/2402/841 1454/2403/841 +f 1454/2403/821 1453/2310/821 1469/2309/821 1493/2400/821 +f 1493/2400/842 1469/2309/842 1456/2308/843 1458/2349/842 +f 1451/2337/844 1495/2404/844 1496/2405/844 1490/2397/844 +f 1491/2398/821 1488/2402/821 1494/2401/821 1492/2399/821 +f 1488/2392/845 1491/2406/845 1496/2405/845 1489/2393/845 +f 1489/2393/790 1496/2405/790 1495/2404/790 1497/2407/790 +f 1492/2399/846 1494/2401/846 1498/2408/846 1499/2409/846 +f 1468/2359/847 1492/2399/847 1499/2409/847 1457/2348/847 +f 1457/2348/848 1499/2409/848 1498/2408/848 1458/2349/848 +f 1490/2397/849 1496/2405/849 1491/2406/849 1481/2394/849 +f 1455/2345/850 1489/2393/850 1497/2407/850 1450/2336/850 +f 1450/2336/851 1497/2407/851 1495/2404/851 1451/2337/851 +f 1458/2349/852 1498/2408/852 1494/2401/852 1493/2400/852 +f 1318/2410/637 1500/2411/637 1501/2412/637 1502/2413/637 1503/2414/637 1504/2415/637 1505/2416/637 1506/2417/637 +f 1181/2305/853 1182/1891/853 1502/2418/853 1501/2419/853 +f 1314/2110/854 1228/2099/854 1227/2420/854 1315/2069/854 1313/2098/854 +f 1221/2421/855 1320/2422/855 1312/2423/855 1317/2078/855 1218/2077/855 +f 1182/1891/856 1185/1894/856 1503/2424/856 1502/2418/856 +f 1315/2069/857 1227/1959/857 1219/1952/857 1506/2080/857 1505/2070/857 +f 1178/1887/858 1181/1890/858 1501/2425/858 1500/2426/858 +f 1185/2221/859 1327/2220/859 1504/2415/859 1503/2414/859 +f 1325/2063/860 1178/2084/860 1500/2427/860 1318/2428/860 1317/2064/860 +f 1194/1912/677 1206/1921/677 1229/2121/677 1195/2118/677 1196/2429/677 +f 1304/2430/666 1336/2431/666 1296/2432/666 1302/2433/666 +f 1336/2431/666 1304/2430/666 1307/2434/666 1279/2435/666 +f 1279/2435/666 1307/2434/666 1292/2436/666 1280/2437/666 +f 1280/2437/666 1292/2436/666 1293/2086/666 1291/2089/666 +f 1303/2438/666 1295/2439/666 1294/2195/666 1328/2194/666 +f 1295/2440/666 1303/2441/666 1302/2442/666 1296/2443/666 +f 1322/2085/615 1321/2094/615 1313/2098/615 1315/2069/615 1323/2073/615 diff --git a/src/main/resources/assets/hbm/models/weapons/cryo_cannon.obj b/src/main/resources/assets/hbm/models/weapons/cryo_cannon.obj new file mode 100644 index 000000000..64c8e3755 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/cryo_cannon.obj @@ -0,0 +1,3733 @@ +# Blender v2.79 (sub 0) OBJ File: 'cryo_cannon.blend' +# www.blender.org +o Plane +v -0.500000 0.000000 0.125000 +v 0.500000 0.000000 0.125000 +v -0.500000 0.000000 -0.375000 +v 0.500000 0.000000 -0.375000 +v -0.500000 2.500000 0.125000 +v 0.500000 2.500000 0.125000 +v -0.500000 2.500000 -0.375000 +v 0.500000 2.500000 -0.375000 +v -1.250000 1.750000 0.125000 +v -1.250000 0.750000 0.125000 +v -1.250000 1.750000 -0.375000 +v -1.250000 0.750000 -0.375000 +v 1.250000 1.750000 0.125000 +v 1.250000 0.750000 0.125000 +v 1.250000 1.750000 -0.375000 +v 1.250000 0.750000 -0.375000 +v -0.000000 2.375000 0.125000 +v -0.430519 2.289364 0.125000 +v -0.795495 2.045495 0.125000 +v -1.039364 1.680519 0.125000 +v -1.125000 1.250000 0.125000 +v -1.039364 0.819481 0.125000 +v -0.795495 0.454505 0.125000 +v -0.430519 0.210636 0.125000 +v -0.000000 0.125000 0.125000 +v 0.430519 0.210635 0.125000 +v 0.795495 0.454505 0.125000 +v 1.039364 0.819481 0.125000 +v 1.125000 1.250000 0.125000 +v 1.039364 1.680519 0.125000 +v 0.795495 2.045496 0.125000 +v 0.430518 2.289365 0.125000 +v -0.000000 2.250000 -0.125000 +v -0.382683 2.173880 -0.125000 +v -0.707107 1.957107 -0.125000 +v -0.923880 1.632683 -0.125000 +v -1.000000 1.250000 -0.125000 +v -0.923880 0.867316 -0.125000 +v -0.707107 0.542893 -0.125000 +v -0.382684 0.326120 -0.125000 +v -0.000000 0.250000 -0.125000 +v 0.382683 0.326120 -0.125000 +v 0.707106 0.542893 -0.125000 +v 0.923879 0.867316 -0.125000 +v 1.000000 1.250000 -0.125000 +v 0.923879 1.632684 -0.125000 +v 0.707106 1.957107 -0.125000 +v 0.382683 2.173880 -0.125000 +v -0.500000 0.000000 -0.625000 +v 0.500000 0.000000 -0.625000 +v -0.500000 2.500000 -0.625000 +v 0.500000 2.500000 -0.625000 +v -1.250000 1.750000 -0.625000 +v -1.250000 0.750000 -0.625000 +v 1.250000 1.750000 -0.625000 +v 1.250000 0.750000 -0.625000 +v -0.500000 0.000000 -1.625000 +v 0.500000 0.000000 -1.625000 +v -1.000000 0.500000 -2.125000 +v 1.000000 0.500000 -2.125000 +v -1.000000 0.500000 -2.625000 +v 1.250000 1.625000 -3.750000 +v 1.000000 0.500000 -3.750000 +v -1.250000 0.751000 -2.625000 +v -0.500000 2.500000 -2.625000 +v 0.500000 2.500000 -2.625000 +v -1.250000 1.750000 -3.000000 +v 1.250000 1.750000 -3.000000 +v 1.250000 0.750000 -3.750000 +v -1.250000 1.376000 -2.625000 +v 1.250000 1.750000 -3.375000 +v -1.250000 1.750000 -3.375000 +v -1.250000 1.625000 -3.750000 +v -1.250000 0.750000 -3.750000 +v -1.250000 1.376000 -3.625000 +v -1.250000 0.751000 -3.625000 +v -1.000000 0.500000 -3.750000 +v -1.000000 0.501000 -3.625000 +v -1.312500 1.376000 -2.625000 +v -1.312500 1.376000 -3.625000 +v -1.312500 0.251000 -2.625000 +v -1.312500 0.251000 -3.625000 +v -1.312500 0.751000 -2.750000 +v -1.312500 0.751000 -3.500000 +v -1.312500 0.876000 -2.750000 +v -1.312500 0.876000 -3.500000 +v -1.312500 1.251000 -2.750000 +v -1.312500 1.251000 -3.500000 +v -1.312500 0.376000 -2.750000 +v -1.312500 0.376000 -3.500000 +v -1.312500 0.501000 -2.750000 +v -1.312500 0.501000 -3.500000 +v -1.312500 0.626000 -2.750000 +v -1.312500 0.626000 -3.500000 +v -1.312500 1.001000 -2.750000 +v -1.312500 1.001000 -3.500000 +v -1.312500 1.126000 -2.750000 +v -1.312500 1.126000 -3.500000 +v -1.187500 0.751000 -2.750000 +v -1.187500 0.751000 -3.500000 +v -1.187500 0.876000 -2.750000 +v -1.187500 0.876000 -3.500000 +v -1.187500 1.251000 -2.750000 +v -1.187500 1.251000 -3.500000 +v -1.187500 0.376000 -2.750000 +v -1.187500 0.376000 -3.500000 +v -1.187500 0.501000 -2.750000 +v -1.187500 0.501000 -3.500000 +v -1.187500 0.626000 -2.750000 +v -1.187500 0.626000 -3.500000 +v -1.187500 1.001000 -2.750000 +v -1.187500 1.001000 -3.500000 +v -1.187500 1.126000 -2.750000 +v -1.187500 1.126000 -3.500000 +v 1.000000 1.625000 -3.750000 +v 1.000000 0.750000 -3.750000 +v -1.000000 1.625000 -3.750000 +v -1.000000 0.750000 -3.750000 +v -1.000000 1.750000 -3.375000 +v 1.000000 1.750000 -3.375000 +v 1.000000 1.750000 -3.000000 +v -1.000000 1.750000 -3.000000 +v -0.500000 2.250000 -2.750000 +v 0.500000 2.250000 -2.750000 +v -0.264515 1.360485 -0.750000 +v -0.218750 1.250000 -0.750000 +v -0.264515 1.139515 -0.750000 +v -0.375000 1.093750 -0.750000 +v -0.485486 1.139515 -0.750000 +v -0.531250 1.250000 -0.750000 +v -0.485486 1.360485 -0.750000 +v -0.375000 1.406250 -0.750000 +v -0.512294 1.406250 -0.418544 +v -0.590419 1.360485 -0.496669 +v -0.622779 1.250000 -0.529029 +v -0.590419 1.139515 -0.496669 +v -0.512294 1.093750 -0.418544 +v -0.434169 1.139515 -0.340419 +v -0.401808 1.250000 -0.308058 +v -0.434169 1.360485 -0.340419 +v -0.664367 1.406250 -0.316931 +v -0.706648 1.360485 -0.419007 +v -0.724162 1.250000 -0.461288 +v -0.706648 1.139515 -0.419007 +v -0.664367 1.093750 -0.316931 +v -0.622086 1.139515 -0.214856 +v -0.604573 1.250000 -0.172575 +v -0.622086 1.360485 -0.214856 +v -0.843750 1.406250 -0.281250 +v -0.843750 1.360485 -0.391735 +v -0.843750 1.250000 -0.437500 +v -0.843750 1.139515 -0.391735 +v -0.843750 1.093750 -0.281250 +v -0.843750 1.139515 -0.170765 +v -0.843750 1.250000 -0.125000 +v -0.843750 1.360485 -0.170765 +v -1.023133 1.406250 -0.316932 +v -0.980852 1.360485 -0.419007 +v -0.963339 1.250000 -0.461288 +v -0.980852 1.139515 -0.419007 +v -1.023133 1.093750 -0.316932 +v -1.065414 1.139515 -0.214856 +v -1.082927 1.250000 -0.172575 +v -1.065414 1.360485 -0.214856 +v -0.000000 2.250000 -0.500000 +v -0.382683 2.173880 -0.500000 +v -0.707107 1.957107 -0.500000 +v -0.923880 1.632683 -0.500000 +v -1.000000 1.250000 -0.500000 +v -0.923880 0.867316 -0.500000 +v -0.707107 0.542893 -0.500000 +v -0.382684 0.326120 -0.500000 +v -0.000000 0.250000 -0.500000 +v 0.382683 0.326120 -0.500000 +v 0.707106 0.542893 -0.500000 +v 0.923879 0.867316 -0.500000 +v 1.000000 1.250000 -0.500000 +v 0.923879 1.632684 -0.500000 +v 0.707106 1.957107 -0.500000 +v 0.382683 2.173880 -0.500000 +v 0.264515 1.139515 -0.750000 +v 0.218750 1.250000 -0.750000 +v 0.264515 1.360485 -0.750000 +v 0.375000 1.406250 -0.750000 +v 0.485485 1.360485 -0.750000 +v 0.531250 1.250000 -0.750000 +v 0.485485 1.139515 -0.750000 +v 0.375000 1.093750 -0.750000 +v 0.512294 1.093750 -0.418544 +v 0.590419 1.139515 -0.496669 +v 0.622779 1.250000 -0.529029 +v 0.590419 1.360485 -0.496669 +v 0.512294 1.406250 -0.418544 +v 0.434169 1.360485 -0.340419 +v 0.401808 1.250000 -0.308058 +v 0.434169 1.139515 -0.340419 +v 0.664367 1.093750 -0.316931 +v 0.706648 1.139514 -0.419007 +v 0.724161 1.250000 -0.461288 +v 0.706648 1.360485 -0.419007 +v 0.664367 1.406250 -0.316931 +v 0.622086 1.360485 -0.214856 +v 0.604573 1.250000 -0.172575 +v 0.622086 1.139515 -0.214856 +v 0.843750 1.093750 -0.281250 +v 0.843750 1.139514 -0.391735 +v 0.843750 1.250000 -0.437500 +v 0.843750 1.360485 -0.391735 +v 0.843750 1.406250 -0.281250 +v 0.843750 1.360485 -0.170765 +v 0.843750 1.250000 -0.125000 +v 0.843750 1.139514 -0.170765 +v 1.023133 1.093750 -0.316932 +v 0.980852 1.139514 -0.419007 +v 0.963338 1.250000 -0.461288 +v 0.980852 1.360485 -0.419007 +v 1.023133 1.406250 -0.316932 +v 1.065414 1.360485 -0.214856 +v 1.082927 1.250000 -0.172575 +v 1.065414 1.139514 -0.214856 +v 0.110485 1.514515 -0.750000 +v -0.000000 1.468750 -0.750000 +v -0.110486 1.514515 -0.750000 +v -0.156250 1.625000 -0.750000 +v -0.110485 1.735486 -0.750000 +v -0.000000 1.781250 -0.750000 +v 0.110485 1.735486 -0.750000 +v 0.156250 1.625000 -0.750000 +v 0.156250 1.762294 -0.418544 +v 0.110485 1.840419 -0.496669 +v -0.000000 1.872779 -0.529029 +v -0.110485 1.840419 -0.496669 +v -0.156250 1.762294 -0.418544 +v -0.110485 1.684169 -0.340419 +v -0.000000 1.651808 -0.308058 +v 0.110485 1.684169 -0.340419 +v 0.156250 1.914367 -0.316931 +v 0.110485 1.956648 -0.419007 +v -0.000000 1.974162 -0.461288 +v -0.110485 1.956648 -0.419007 +v -0.156250 1.914367 -0.316931 +v -0.110485 1.872086 -0.214856 +v -0.000000 1.854573 -0.172575 +v 0.110485 1.872086 -0.214856 +v 0.156250 2.093750 -0.281250 +v 0.110485 2.093750 -0.391735 +v -0.000000 2.093750 -0.437500 +v -0.110485 2.093750 -0.391735 +v -0.156250 2.093750 -0.281250 +v -0.110485 2.093750 -0.170765 +v -0.000000 2.093750 -0.125000 +v 0.110485 2.093750 -0.170765 +v 0.156250 2.273133 -0.316932 +v 0.110485 2.230852 -0.419007 +v -0.000000 2.213339 -0.461288 +v -0.110485 2.230852 -0.419007 +v -0.156250 2.273133 -0.316932 +v -0.110485 2.315414 -0.214856 +v 0.000000 2.332927 -0.172575 +v 0.110485 2.315414 -0.214856 +v -0.110486 0.985485 -0.750000 +v -0.000000 1.031250 -0.750000 +v 0.110485 0.985485 -0.750000 +v 0.156250 0.875000 -0.750000 +v 0.110485 0.764515 -0.750000 +v -0.000000 0.718750 -0.750000 +v -0.110486 0.764515 -0.750000 +v -0.156250 0.875000 -0.750000 +v -0.156250 0.737706 -0.418544 +v -0.110486 0.659581 -0.496669 +v -0.000000 0.627221 -0.529029 +v 0.110485 0.659581 -0.496669 +v 0.156250 0.737706 -0.418544 +v 0.110485 0.815831 -0.340419 +v -0.000000 0.848192 -0.308058 +v -0.110486 0.815831 -0.340419 +v -0.156250 0.585633 -0.316931 +v -0.110486 0.543352 -0.419007 +v -0.000000 0.525838 -0.461288 +v 0.110485 0.543352 -0.419007 +v 0.156250 0.585633 -0.316931 +v 0.110485 0.627914 -0.214856 +v -0.000000 0.645427 -0.172575 +v -0.110486 0.627914 -0.214856 +v -0.156250 0.406250 -0.281250 +v -0.110486 0.406250 -0.391735 +v -0.000000 0.406250 -0.437500 +v 0.110485 0.406250 -0.391735 +v 0.156250 0.406250 -0.281250 +v 0.110485 0.406250 -0.170765 +v -0.000000 0.406250 -0.125000 +v -0.110486 0.406250 -0.170765 +v -0.156250 0.226867 -0.316932 +v -0.110486 0.269148 -0.419007 +v -0.000000 0.286661 -0.461288 +v 0.110485 0.269148 -0.419007 +v 0.156250 0.226867 -0.316932 +v 0.110485 0.184586 -0.214856 +v -0.000000 0.167073 -0.172575 +v -0.110486 0.184586 -0.214856 +v -0.108915 1.515165 -0.750000 +v -0.154680 1.404680 -0.750000 +v -0.265165 1.358915 -0.750000 +v -0.375651 1.404680 -0.750000 +v -0.421415 1.515165 -0.750000 +v -0.375651 1.625650 -0.750000 +v -0.265165 1.671415 -0.750000 +v -0.154680 1.625651 -0.750000 +v -0.251761 1.722732 -0.418544 +v -0.339364 1.745614 -0.496669 +v -0.440371 1.690371 -0.529029 +v -0.495614 1.589364 -0.496669 +v -0.472732 1.501761 -0.418544 +v -0.385129 1.478879 -0.340419 +v -0.284121 1.534121 -0.308058 +v -0.228879 1.635129 -0.340419 +v -0.359293 1.830264 -0.316931 +v -0.421551 1.827801 -0.419007 +v -0.512060 1.762059 -0.461288 +v -0.577801 1.671551 -0.419007 +v -0.580264 1.609293 -0.316931 +v -0.518007 1.611756 -0.214856 +v -0.427498 1.677498 -0.172575 +v -0.361757 1.768006 -0.214856 +v -0.486136 1.957107 -0.281250 +v -0.518496 1.924746 -0.391735 +v -0.596621 1.846621 -0.437500 +v -0.674746 1.768496 -0.391735 +v -0.707107 1.736136 -0.281250 +v -0.674747 1.768496 -0.170765 +v -0.596622 1.846621 -0.125000 +v -0.518497 1.924746 -0.170765 +v -0.612979 2.083950 -0.316932 +v -0.615442 2.021692 -0.419007 +v -0.681183 1.931183 -0.461288 +v -0.771692 1.865442 -0.419007 +v -0.833950 1.862979 -0.316932 +v -0.831486 1.925236 -0.214856 +v -0.765745 2.015745 -0.172575 +v -0.675236 2.081486 -0.214856 +v 0.108915 0.984835 -0.750000 +v 0.154680 1.095320 -0.750000 +v 0.265165 1.141085 -0.750000 +v 0.375650 1.095320 -0.750000 +v 0.421415 0.984835 -0.750000 +v 0.375650 0.874350 -0.750000 +v 0.265165 0.828585 -0.750000 +v 0.154680 0.874349 -0.750000 +v 0.251761 0.777268 -0.418544 +v 0.339364 0.754386 -0.496669 +v 0.440371 0.809629 -0.529029 +v 0.495614 0.910636 -0.496669 +v 0.472732 0.998239 -0.418544 +v 0.385129 1.021121 -0.340419 +v 0.284121 0.965879 -0.308058 +v 0.228879 0.864871 -0.340419 +v 0.359293 0.669736 -0.316931 +v 0.421550 0.672199 -0.419007 +v 0.512059 0.737940 -0.461288 +v 0.577801 0.828449 -0.419007 +v 0.580264 0.890707 -0.316931 +v 0.518006 0.888244 -0.214856 +v 0.427498 0.822502 -0.172575 +v 0.361756 0.731994 -0.214856 +v 0.486136 0.542893 -0.281250 +v 0.518496 0.575254 -0.391735 +v 0.596621 0.653379 -0.437500 +v 0.674746 0.731504 -0.391735 +v 0.707107 0.763864 -0.281250 +v 0.674746 0.731504 -0.170765 +v 0.596621 0.653379 -0.125000 +v 0.518496 0.575254 -0.170765 +v 0.612979 0.416050 -0.316932 +v 0.615442 0.478308 -0.419007 +v 0.681183 0.568817 -0.461288 +v 0.771692 0.634558 -0.419007 +v 0.833949 0.637021 -0.316932 +v 0.831486 0.574764 -0.214856 +v 0.765745 0.484255 -0.172575 +v 0.675236 0.418514 -0.214856 +v 0.265165 1.358915 -0.750000 +v 0.154680 1.404680 -0.750000 +v 0.108915 1.515165 -0.750000 +v 0.154680 1.625650 -0.750000 +v 0.265165 1.671415 -0.750000 +v 0.375650 1.625650 -0.750000 +v 0.421415 1.515165 -0.750000 +v 0.375650 1.404680 -0.750000 +v 0.472732 1.501761 -0.418544 +v 0.495614 1.589364 -0.496669 +v 0.440371 1.690371 -0.529029 +v 0.339364 1.745614 -0.496669 +v 0.251761 1.722732 -0.418544 +v 0.228879 1.635129 -0.340419 +v 0.284121 1.534121 -0.308058 +v 0.385129 1.478879 -0.340419 +v 0.580264 1.609293 -0.316931 +v 0.577801 1.671551 -0.419007 +v 0.512059 1.762059 -0.461288 +v 0.421551 1.827801 -0.419007 +v 0.359293 1.830264 -0.316931 +v 0.361756 1.768006 -0.214856 +v 0.427498 1.677498 -0.172575 +v 0.518006 1.611756 -0.214856 +v 0.707107 1.736136 -0.281250 +v 0.674746 1.768496 -0.391735 +v 0.596621 1.846621 -0.437500 +v 0.518496 1.924746 -0.391735 +v 0.486136 1.957107 -0.281250 +v 0.518496 1.924746 -0.170765 +v 0.596621 1.846621 -0.125000 +v 0.674746 1.768496 -0.170765 +v 0.833950 1.862979 -0.316932 +v 0.771692 1.865442 -0.419007 +v 0.681183 1.931183 -0.461288 +v 0.615442 2.021692 -0.419007 +v 0.612979 2.083950 -0.316932 +v 0.675236 2.081486 -0.214856 +v 0.765745 2.015745 -0.172575 +v 0.831486 1.925236 -0.214856 +v -0.265165 1.141085 -0.750000 +v -0.154680 1.095320 -0.750000 +v -0.108915 0.984835 -0.750000 +v -0.154680 0.874350 -0.750000 +v -0.265165 0.828585 -0.750000 +v -0.375651 0.874350 -0.750000 +v -0.421415 0.984835 -0.750000 +v -0.375651 1.095320 -0.750000 +v -0.472732 0.998239 -0.418544 +v -0.495614 0.910636 -0.496669 +v -0.440371 0.809629 -0.529029 +v -0.339364 0.754386 -0.496669 +v -0.251761 0.777268 -0.418544 +v -0.228879 0.864871 -0.340419 +v -0.284121 0.965879 -0.308058 +v -0.385129 1.021121 -0.340419 +v -0.580264 0.890707 -0.316931 +v -0.577801 0.828449 -0.419007 +v -0.512060 0.737941 -0.461288 +v -0.421551 0.672199 -0.419007 +v -0.359293 0.669736 -0.316931 +v -0.361757 0.731994 -0.214856 +v -0.427498 0.822502 -0.172575 +v -0.518007 0.888244 -0.214856 +v -0.707107 0.763864 -0.281250 +v -0.674747 0.731504 -0.391735 +v -0.596622 0.653379 -0.437500 +v -0.518497 0.575254 -0.391735 +v -0.486136 0.542893 -0.281250 +v -0.518497 0.575254 -0.170765 +v -0.596622 0.653379 -0.125000 +v -0.674747 0.731504 -0.170765 +v -0.833950 0.637021 -0.316932 +v -0.771692 0.634558 -0.419007 +v -0.681183 0.568817 -0.461288 +v -0.615442 0.478308 -0.419007 +v -0.612979 0.416050 -0.316932 +v -0.675237 0.418514 -0.214856 +v -0.765745 0.484255 -0.172575 +v -0.831487 0.574764 -0.214856 +v -0.811434 1.466518 -0.082211 +v -0.807472 1.584466 -0.062870 +v -0.726872 1.670669 -0.082211 +v -0.616847 1.674630 -0.128904 +v -0.541848 1.594030 -0.175597 +v -0.545810 1.476082 -0.194938 +v -0.626410 1.389879 -0.175597 +v -0.736435 1.385918 -0.128904 +v -0.882853 1.446566 -0.468769 +v -0.772828 1.450527 -0.515462 +v -0.692228 1.536730 -0.534803 +v -0.688267 1.654678 -0.515462 +v -0.763265 1.735278 -0.468769 +v -0.873290 1.731317 -0.422076 +v -0.953890 1.645114 -0.402735 +v -0.957852 1.527167 -0.422076 +v -0.721487 1.422007 -0.128904 +v -0.777735 1.482457 -0.093884 +v -0.774764 1.570918 -0.079378 +v -0.714314 1.635570 -0.093884 +v -0.631795 1.638541 -0.128904 +v -0.575547 1.578091 -0.163924 +v -0.578518 1.489630 -0.178429 +v -0.638968 1.424978 -0.163924 +v -0.744037 1.498396 -0.105557 +v -0.742056 1.557370 -0.095887 +v -0.701756 1.600471 -0.105557 +v -0.646744 1.602452 -0.128904 +v -0.609245 1.562152 -0.152250 +v -0.611225 1.503178 -0.161921 +v -0.651526 1.460076 -0.152250 +v -0.706538 1.458096 -0.128904 +v -0.697084 1.411899 -0.072260 +v -0.753332 1.472349 -0.037240 +v -0.750361 1.560810 -0.022734 +v -0.689911 1.625462 -0.037240 +v -0.607392 1.628433 -0.072260 +v -0.551144 1.567983 -0.107280 +v -0.554115 1.479522 -0.121785 +v -0.614565 1.414870 -0.107280 +v -0.682135 1.447988 -0.072260 +v -0.719634 1.488288 -0.048913 +v -0.717654 1.547262 -0.039243 +v -0.677353 1.590363 -0.048913 +v -0.622341 1.592344 -0.072260 +v -0.584842 1.552044 -0.095606 +v -0.586822 1.493070 -0.105277 +v -0.627123 1.449968 -0.095606 +v 0.811433 1.033482 -0.082211 +v 0.807472 0.915534 -0.062870 +v 0.726871 0.829331 -0.082211 +v 0.616846 0.825370 -0.128904 +v 0.541848 0.905970 -0.175597 +v 0.545810 1.023918 -0.194938 +v 0.626410 1.110121 -0.175597 +v 0.736435 1.114082 -0.128904 +v 0.882853 1.053434 -0.468769 +v 0.772828 1.049472 -0.515462 +v 0.692228 0.963270 -0.534803 +v 0.688266 0.845322 -0.515462 +v 0.763264 0.764722 -0.468769 +v 0.873289 0.768683 -0.422076 +v 0.953890 0.854886 -0.402735 +v 0.957851 0.972833 -0.422076 +v 0.721486 1.077993 -0.128904 +v 0.777735 1.017543 -0.093884 +v 0.774764 0.929082 -0.079378 +v 0.714314 0.864430 -0.093884 +v 0.631795 0.861459 -0.128904 +v 0.575546 0.921909 -0.163924 +v 0.578517 1.010370 -0.178429 +v 0.638968 1.075022 -0.163924 +v 0.744037 1.001604 -0.105557 +v 0.742056 0.942630 -0.095887 +v 0.701756 0.899529 -0.105557 +v 0.646743 0.897548 -0.128904 +v 0.609244 0.937848 -0.152250 +v 0.611225 0.996822 -0.161921 +v 0.651525 1.039924 -0.152250 +v 0.706538 1.041904 -0.128904 +v 0.697083 1.088101 -0.072260 +v 0.753332 1.027651 -0.037240 +v 0.750361 0.939190 -0.022734 +v 0.689911 0.874538 -0.037240 +v 0.607392 0.871567 -0.072260 +v 0.551143 0.932017 -0.107280 +v 0.554115 1.020478 -0.121785 +v 0.614565 1.085130 -0.107280 +v 0.682135 1.052012 -0.072260 +v 0.719634 1.011712 -0.048913 +v 0.717653 0.952738 -0.039243 +v 0.677353 0.909637 -0.048913 +v 0.622341 0.907656 -0.072260 +v 0.584841 0.947956 -0.095606 +v 0.586822 1.006930 -0.105277 +v 0.627122 1.050032 -0.095606 +v 0.216518 2.061433 -0.082211 +v 0.334466 2.057472 -0.062870 +v 0.420668 1.976871 -0.082211 +v 0.424630 1.866847 -0.128904 +v 0.344029 1.791848 -0.175597 +v 0.226082 1.795810 -0.194938 +v 0.139879 1.876410 -0.175597 +v 0.135918 1.986435 -0.128904 +v 0.196566 2.132853 -0.468769 +v 0.200527 2.022828 -0.515462 +v 0.286730 1.942228 -0.534803 +v 0.404678 1.938266 -0.515462 +v 0.485278 2.013265 -0.468769 +v 0.481317 2.123290 -0.422076 +v 0.395114 2.203890 -0.402735 +v 0.277167 2.207852 -0.422076 +v 0.172007 1.971487 -0.128904 +v 0.232457 2.027735 -0.093884 +v 0.320918 2.024764 -0.079378 +v 0.385570 1.964314 -0.093884 +v 0.388541 1.881795 -0.128904 +v 0.328090 1.825547 -0.163924 +v 0.239630 1.828518 -0.178429 +v 0.174978 1.888968 -0.163924 +v 0.248396 1.994037 -0.105557 +v 0.307370 1.992056 -0.095887 +v 0.350471 1.951756 -0.105557 +v 0.352452 1.896744 -0.128904 +v 0.312152 1.859245 -0.152250 +v 0.253178 1.861225 -0.161921 +v 0.210076 1.901525 -0.152250 +v 0.208096 1.956538 -0.128904 +v 0.161898 1.947083 -0.072260 +v 0.222349 2.003332 -0.037240 +v 0.310810 2.000361 -0.022734 +v 0.375462 1.939911 -0.037240 +v 0.378433 1.857392 -0.072260 +v 0.317982 1.801143 -0.107280 +v 0.229522 1.804115 -0.121785 +v 0.164870 1.864565 -0.107280 +v 0.197988 1.932135 -0.072260 +v 0.238288 1.969634 -0.048913 +v 0.297262 1.967653 -0.039243 +v 0.340363 1.927353 -0.048913 +v 0.342344 1.872341 -0.072260 +v 0.302044 1.834841 -0.095606 +v 0.243070 1.836822 -0.105277 +v 0.199968 1.877123 -0.095606 +v -0.216518 0.438567 -0.082211 +v -0.334466 0.442528 -0.062870 +v -0.420669 0.523129 -0.082211 +v -0.424630 0.633153 -0.128904 +v -0.344030 0.708152 -0.175597 +v -0.226082 0.704190 -0.194938 +v -0.139879 0.623590 -0.175597 +v -0.135918 0.513565 -0.128904 +v -0.196566 0.367147 -0.468769 +v -0.200528 0.477172 -0.515462 +v -0.286731 0.557772 -0.534803 +v -0.404678 0.561734 -0.515462 +v -0.485279 0.486735 -0.468769 +v -0.481317 0.376710 -0.422076 +v -0.395115 0.296110 -0.402735 +v -0.277167 0.292148 -0.422076 +v -0.172007 0.528513 -0.128904 +v -0.232457 0.472265 -0.093884 +v -0.320918 0.475236 -0.079378 +v -0.385570 0.535686 -0.093884 +v -0.388541 0.618205 -0.128904 +v -0.328091 0.674453 -0.163924 +v -0.239630 0.671482 -0.178429 +v -0.174978 0.611032 -0.163924 +v -0.248396 0.505963 -0.105557 +v -0.307370 0.507944 -0.095887 +v -0.350472 0.548244 -0.105557 +v -0.352452 0.603256 -0.128904 +v -0.312152 0.640755 -0.152250 +v -0.253178 0.638775 -0.161921 +v -0.210077 0.598474 -0.152250 +v -0.208096 0.543462 -0.128904 +v -0.161899 0.552916 -0.072260 +v -0.222349 0.496668 -0.037240 +v -0.310810 0.499639 -0.022734 +v -0.375462 0.560089 -0.037240 +v -0.378433 0.642608 -0.072260 +v -0.317983 0.698857 -0.107280 +v -0.229522 0.695885 -0.121785 +v -0.164870 0.635435 -0.107280 +v -0.197988 0.567865 -0.072260 +v -0.238288 0.530366 -0.048913 +v -0.297262 0.532347 -0.039243 +v -0.340364 0.572647 -0.048913 +v -0.342344 0.627659 -0.072260 +v -0.302044 0.665158 -0.095606 +v -0.243070 0.663178 -0.105277 +v -0.199969 0.622877 -0.095606 +v -0.420669 1.976871 -0.082211 +v -0.334466 2.057472 -0.062870 +v -0.216518 2.061433 -0.082211 +v -0.135918 1.986435 -0.128904 +v -0.139879 1.876410 -0.175597 +v -0.226082 1.795810 -0.194938 +v -0.344030 1.791848 -0.175597 +v -0.424630 1.866847 -0.128904 +v -0.485279 2.013265 -0.468769 +v -0.404678 1.938267 -0.515462 +v -0.286730 1.942228 -0.534803 +v -0.200527 2.022828 -0.515462 +v -0.196566 2.132853 -0.468769 +v -0.277167 2.207851 -0.422076 +v -0.395114 2.203890 -0.402735 +v -0.481317 2.123290 -0.422076 +v -0.388541 1.881795 -0.128904 +v -0.385570 1.964314 -0.093884 +v -0.320918 2.024764 -0.079378 +v -0.232457 2.027735 -0.093884 +v -0.172007 1.971487 -0.128904 +v -0.174978 1.888968 -0.163924 +v -0.239630 1.828518 -0.178429 +v -0.328091 1.825547 -0.163924 +v -0.350471 1.951756 -0.105557 +v -0.307370 1.992056 -0.095887 +v -0.248396 1.994037 -0.105557 +v -0.208096 1.956538 -0.128904 +v -0.210077 1.901525 -0.152250 +v -0.253178 1.861225 -0.161921 +v -0.312152 1.859245 -0.152250 +v -0.352452 1.896744 -0.128904 +v -0.378433 1.857392 -0.072260 +v -0.375462 1.939911 -0.037240 +v -0.310810 2.000361 -0.022734 +v -0.222349 2.003332 -0.037240 +v -0.161899 1.947084 -0.072260 +v -0.164870 1.864565 -0.107280 +v -0.229522 1.804115 -0.121785 +v -0.317983 1.801143 -0.107280 +v -0.342344 1.872341 -0.072260 +v -0.340363 1.927353 -0.048913 +v -0.297262 1.967653 -0.039243 +v -0.238288 1.969634 -0.048913 +v -0.197988 1.932135 -0.072260 +v -0.199968 1.877123 -0.095606 +v -0.243070 1.836822 -0.105277 +v -0.302044 1.834842 -0.095606 +v 0.420668 0.523128 -0.082211 +v 0.334466 0.442528 -0.062870 +v 0.216518 0.438567 -0.082211 +v 0.135917 0.513565 -0.128904 +v 0.139879 0.623590 -0.175597 +v 0.226082 0.704190 -0.194938 +v 0.344029 0.708152 -0.175597 +v 0.424630 0.633153 -0.128904 +v 0.485278 0.486735 -0.468769 +v 0.404678 0.561733 -0.515462 +v 0.286730 0.557772 -0.534803 +v 0.200527 0.477172 -0.515462 +v 0.196566 0.367147 -0.468769 +v 0.277166 0.292148 -0.422076 +v 0.395114 0.296110 -0.402735 +v 0.481317 0.376710 -0.422076 +v 0.388541 0.618205 -0.128904 +v 0.385570 0.535686 -0.093884 +v 0.320918 0.475236 -0.079378 +v 0.232457 0.472265 -0.093884 +v 0.172006 0.528513 -0.128904 +v 0.174978 0.611032 -0.163924 +v 0.239630 0.671482 -0.178429 +v 0.328090 0.674454 -0.163924 +v 0.350471 0.548244 -0.105557 +v 0.307370 0.507944 -0.095887 +v 0.248396 0.505963 -0.105557 +v 0.208095 0.543462 -0.128904 +v 0.210076 0.598475 -0.152250 +v 0.253178 0.638775 -0.161921 +v 0.312152 0.640755 -0.152250 +v 0.352452 0.603256 -0.128904 +v 0.378433 0.642608 -0.072260 +v 0.375462 0.560089 -0.037240 +v 0.310810 0.499639 -0.022734 +v 0.222349 0.496668 -0.037240 +v 0.161898 0.552916 -0.072260 +v 0.164869 0.635435 -0.107280 +v 0.229522 0.695885 -0.121785 +v 0.317982 0.698857 -0.107280 +v 0.342344 0.627659 -0.072260 +v 0.340363 0.572647 -0.048913 +v 0.297262 0.532347 -0.039243 +v 0.238288 0.530366 -0.048913 +v 0.197987 0.567865 -0.072260 +v 0.199968 0.622877 -0.095606 +v 0.243070 0.663178 -0.105277 +v 0.302043 0.665158 -0.095606 +v 0.726871 1.670668 -0.082211 +v 0.807472 1.584466 -0.062870 +v 0.811433 1.466518 -0.082211 +v 0.736435 1.385918 -0.128904 +v 0.626410 1.389879 -0.175597 +v 0.545810 1.476082 -0.194938 +v 0.541848 1.594030 -0.175597 +v 0.616847 1.674630 -0.128904 +v 0.763265 1.735278 -0.468769 +v 0.688266 1.654678 -0.515462 +v 0.692228 1.536730 -0.534803 +v 0.772828 1.450527 -0.515462 +v 0.882853 1.446566 -0.468769 +v 0.957851 1.527166 -0.422076 +v 0.953890 1.645114 -0.402735 +v 0.873290 1.731317 -0.422076 +v 0.631795 1.638541 -0.128904 +v 0.714314 1.635570 -0.093884 +v 0.774764 1.570918 -0.079378 +v 0.777735 1.482457 -0.093884 +v 0.721487 1.422007 -0.128904 +v 0.638968 1.424978 -0.163924 +v 0.578518 1.489630 -0.178429 +v 0.575546 1.578091 -0.163924 +v 0.701756 1.600471 -0.105557 +v 0.742056 1.557370 -0.095887 +v 0.744037 1.498396 -0.105557 +v 0.706538 1.458096 -0.128904 +v 0.651525 1.460076 -0.152250 +v 0.611225 1.503178 -0.161921 +v 0.609244 1.562152 -0.152250 +v 0.646744 1.602452 -0.128904 +v 0.607392 1.628433 -0.072260 +v 0.689911 1.625462 -0.037240 +v 0.750361 1.560810 -0.022734 +v 0.753332 1.472349 -0.037240 +v 0.697084 1.411899 -0.072260 +v 0.614565 1.414870 -0.107280 +v 0.554114 1.479522 -0.121785 +v 0.551143 1.567982 -0.107280 +v 0.622341 1.592344 -0.072260 +v 0.677353 1.590363 -0.048913 +v 0.717653 1.547262 -0.039243 +v 0.719634 1.488288 -0.048913 +v 0.682135 1.447988 -0.072260 +v 0.627122 1.449968 -0.095606 +v 0.586822 1.493070 -0.105277 +v 0.584842 1.552044 -0.095606 +v -0.726872 0.829332 -0.082211 +v -0.807472 0.915534 -0.062870 +v -0.811434 1.033482 -0.082211 +v -0.736435 1.114082 -0.128904 +v -0.626410 1.110121 -0.175597 +v -0.545810 1.023918 -0.194938 +v -0.541848 0.905970 -0.175597 +v -0.616847 0.825370 -0.128904 +v -0.763265 0.764722 -0.468769 +v -0.688267 0.845322 -0.515462 +v -0.692228 0.963270 -0.534803 +v -0.772828 1.049473 -0.515462 +v -0.882853 1.053434 -0.468769 +v -0.957852 0.972834 -0.422076 +v -0.953890 0.854886 -0.402735 +v -0.873290 0.768683 -0.422076 +v -0.631795 0.861459 -0.128904 +v -0.714314 0.864430 -0.093884 +v -0.774764 0.929082 -0.079378 +v -0.777735 1.017543 -0.093884 +v -0.721487 1.077993 -0.128904 +v -0.638968 1.075022 -0.163924 +v -0.578518 1.010370 -0.178429 +v -0.575547 0.921910 -0.163924 +v -0.701756 0.899529 -0.105557 +v -0.742057 0.942630 -0.095887 +v -0.744037 1.001604 -0.105557 +v -0.706538 1.041904 -0.128904 +v -0.651526 1.039924 -0.152250 +v -0.611226 0.996822 -0.161921 +v -0.609245 0.937848 -0.152250 +v -0.646744 0.897548 -0.128904 +v -0.607392 0.871567 -0.072260 +v -0.689911 0.874538 -0.037240 +v -0.750361 0.939190 -0.022734 +v -0.753332 1.027651 -0.037240 +v -0.697084 1.088101 -0.072260 +v -0.614565 1.085130 -0.107280 +v -0.554115 1.020478 -0.121785 +v -0.551144 0.932018 -0.107280 +v -0.622341 0.907656 -0.072260 +v -0.677353 0.909637 -0.048913 +v -0.717654 0.952738 -0.039243 +v -0.719634 1.011712 -0.048913 +v -0.682135 1.052012 -0.072260 +v -0.627123 1.050032 -0.095606 +v -0.586822 1.006930 -0.105277 +v -0.584842 0.947956 -0.095606 +v -1.112133 1.224587 0.109375 +v -1.037201 0.847883 0.109375 +v -1.002758 1.224587 -0.109375 +v -0.936152 0.889739 -0.109375 +v -0.982164 0.858831 0.136894 +v -1.057095 1.235535 0.136894 +v -0.881115 0.900687 -0.081856 +v -0.947720 1.235535 -0.081856 +v 1.112132 1.275412 0.109375 +v 1.037201 1.652117 0.109375 +v 1.002757 1.275412 -0.109375 +v 0.936152 1.610261 -0.109375 +v 0.982164 1.641169 0.136894 +v 1.057095 1.264465 0.136894 +v 0.881115 1.599313 -0.081856 +v 0.947720 1.264465 -0.081856 +v -0.025413 2.362133 0.109375 +v -0.402117 2.287201 0.109375 +v -0.025413 2.252758 -0.109375 +v -0.360261 2.186152 -0.109375 +v -0.391169 2.232164 0.136894 +v -0.014465 2.307095 0.136894 +v -0.349313 2.131115 -0.081856 +v -0.014465 2.197720 -0.081856 +v 0.025412 0.137868 0.109375 +v 0.402116 0.212799 0.109375 +v 0.025412 0.247242 -0.109375 +v 0.360260 0.313848 -0.109375 +v 0.391169 0.267836 0.136894 +v 0.014465 0.192905 0.136894 +v 0.349313 0.368885 -0.081856 +v 0.014465 0.302280 -0.081856 +v -0.804366 2.018427 0.109375 +v -1.017752 1.699073 0.109375 +v -0.727026 1.941087 -0.109375 +v -0.916702 1.657217 -0.109375 +v -0.971093 1.667896 0.136894 +v -0.757707 1.987251 0.136894 +v -0.870044 1.626041 -0.081856 +v -0.680368 1.909911 -0.081856 +v 0.804366 0.481573 0.109375 +v 1.017751 0.800927 0.109375 +v 0.727026 0.558913 -0.109375 +v 0.916702 0.842783 -0.109375 +v 0.971093 0.832103 0.136894 +v 0.757707 0.512749 0.136894 +v 0.870044 0.873959 -0.081856 +v 0.680367 0.590089 -0.081856 +v 0.768427 2.054366 0.109375 +v 0.449073 2.267752 0.109375 +v 0.691087 1.977026 -0.109375 +v 0.407216 2.166702 -0.109375 +v 0.417896 2.221093 0.136894 +v 0.737251 2.007707 0.136894 +v 0.376040 2.120044 -0.081856 +v 0.659911 1.930367 -0.081856 +v -0.768427 0.445634 0.109375 +v -0.449073 0.232249 0.109375 +v -0.691087 0.522974 -0.109375 +v -0.407217 0.333298 -0.109375 +v -0.417897 0.278907 0.136894 +v -0.737251 0.492293 0.136894 +v -0.376041 0.379956 -0.081856 +v -0.659911 0.569633 -0.081856 +v -1.037201 1.652117 0.109375 +v -1.112133 1.275412 0.109375 +v -0.936152 1.610261 -0.109375 +v -1.002758 1.275413 -0.109375 +v -1.057095 1.264465 0.136894 +v -0.982164 1.641169 0.136894 +v -0.947720 1.264465 -0.081856 +v -0.881115 1.599313 -0.081856 +v 1.037201 0.847883 0.109375 +v 1.112132 1.224588 0.109375 +v 0.936152 0.889739 -0.109375 +v 1.002757 1.224587 -0.109375 +v 1.057095 1.235535 0.136894 +v 0.982164 0.858831 0.136894 +v 0.947720 1.235535 -0.081856 +v 0.881115 0.900687 -0.081856 +v 0.402116 2.287201 0.109375 +v 0.025412 2.362133 0.109375 +v 0.360260 2.186152 -0.109375 +v 0.025412 2.252758 -0.109375 +v 0.014465 2.307095 0.136894 +v 0.391169 2.232164 0.136894 +v 0.014465 2.197720 -0.081856 +v 0.349313 2.131114 -0.081856 +v -0.402117 0.212799 0.109375 +v -0.025413 0.137868 0.109375 +v -0.360261 0.313848 -0.109375 +v -0.025413 0.247242 -0.109375 +v -0.014465 0.192905 0.136894 +v -0.391169 0.267836 0.136894 +v -0.014465 0.302280 -0.081856 +v -0.349313 0.368885 -0.081856 +v -0.449073 2.267751 0.109375 +v -0.768427 2.054366 0.109375 +v -0.407217 2.166702 -0.109375 +v -0.691087 1.977026 -0.109375 +v -0.737251 2.007707 0.136894 +v -0.417897 2.221093 0.136894 +v -0.659911 1.930367 -0.081856 +v -0.376041 2.120044 -0.081856 +v 0.449073 0.232249 0.109375 +v 0.768427 0.445634 0.109375 +v 0.407217 0.333298 -0.109375 +v 0.691087 0.522974 -0.109375 +v 0.737251 0.492293 0.136894 +v 0.417896 0.278907 0.136894 +v 0.659911 0.569632 -0.081856 +v 0.376040 0.379956 -0.081856 +v 1.017751 1.699073 0.109375 +v 0.804366 2.018427 0.109375 +v 0.916702 1.657217 -0.109375 +v 0.727026 1.941087 -0.109375 +v 0.757707 1.987251 0.136894 +v 0.971093 1.667897 0.136894 +v 0.680367 1.909911 -0.081856 +v 0.870043 1.626041 -0.081856 +v -1.017752 0.800927 0.109375 +v -0.804366 0.481573 0.109375 +v -0.916702 0.842783 -0.109375 +v -0.727026 0.558913 -0.109375 +v -0.757708 0.512749 0.136894 +v -0.971093 0.832104 0.136894 +v -0.680368 0.590089 -0.081856 +v -0.870044 0.873959 -0.081856 +v -0.000000 1.750000 -0.750000 +v -0.191342 1.711940 -0.750000 +v -0.353553 1.603553 -0.750000 +v -0.461940 1.441342 -0.750000 +v -0.500000 1.250000 -0.750000 +v -0.461940 1.058658 -0.750000 +v -0.353553 0.896447 -0.750000 +v -0.191342 0.788060 -0.750000 +v -0.000000 0.750000 -0.750000 +v 0.191342 0.788060 -0.750000 +v 0.353553 0.896446 -0.750000 +v 0.461940 1.058658 -0.750000 +v 0.500000 1.250000 -0.750000 +v 0.461940 1.441342 -0.750000 +v 0.353553 1.603554 -0.750000 +v 0.191341 1.711940 -0.750000 +v 0.095671 1.480970 -0.750000 +v -0.095671 1.480970 -0.750000 +v -0.230970 1.345671 -0.750000 +v -0.230970 1.154329 -0.750000 +v -0.095671 1.019030 -0.750000 +v 0.095671 1.019030 -0.750000 +v 0.230970 1.154329 -0.750000 +v 0.230970 1.345671 -0.750000 +v 0.095671 1.480970 -0.500000 +v -0.095671 1.480970 -0.500000 +v -0.230970 1.345671 -0.500000 +v -0.230970 1.154329 -0.500000 +v -0.095671 1.019030 -0.500000 +v 0.095671 1.019030 -0.500000 +v 0.230970 1.154329 -0.500000 +v 0.230970 1.345671 -0.500000 +v 0.047835 1.365485 -0.500000 +v -0.047836 1.365485 -0.500000 +v -0.115485 1.297835 -0.500000 +v -0.115485 1.202165 -0.500000 +v -0.047836 1.134515 -0.500000 +v 0.047835 1.134515 -0.500000 +v 0.115485 1.202165 -0.500000 +v 0.115485 1.297835 -0.500000 +v 0.071753 1.423227 -0.500000 +v -0.071753 1.423227 -0.500000 +v -0.173227 1.321753 -0.500000 +v -0.173227 1.178247 -0.500000 +v -0.071753 1.076773 -0.500000 +v 0.071753 1.076773 -0.500000 +v 0.173227 1.178247 -0.500000 +v 0.173227 1.321753 -0.500000 +v -0.047836 1.365485 -0.375000 +v 0.047835 1.365485 -0.375000 +v -0.115485 1.297835 -0.375000 +v -0.115485 1.202165 -0.375000 +v -0.047836 1.134515 -0.375000 +v 0.047835 1.134515 -0.375000 +v 0.115485 1.202165 -0.375000 +v 0.115485 1.297835 -0.375000 +v -0.071753 1.423227 -0.375000 +v 0.071753 1.423227 -0.375000 +v -0.173227 1.321753 -0.375000 +v -0.173227 1.178247 -0.375000 +v -0.071753 1.076773 -0.375000 +v 0.071753 1.076773 -0.375000 +v 0.173227 1.178247 -0.375000 +v 0.173227 1.321753 -0.375000 +v -0.000000 2.375000 -0.375000 +v -0.430519 2.289364 -0.375000 +v -0.795495 2.045495 -0.375000 +v -1.039364 1.680519 -0.375000 +v -1.125000 1.250000 -0.375000 +v -1.039364 0.819481 -0.375000 +v -0.795495 0.454505 -0.375000 +v -0.430519 0.210636 -0.375000 +v -0.000000 0.125000 -0.375000 +v 0.430519 0.210635 -0.375000 +v 0.795495 0.454505 -0.375000 +v 1.039364 0.819481 -0.375000 +v 1.125000 1.250000 -0.375000 +v 1.039364 1.680519 -0.375000 +v 0.795495 2.045496 -0.375000 +v 0.430518 2.289365 -0.375000 +v -0.000000 2.375000 -0.625000 +v -0.430519 2.289364 -0.625000 +v -0.795495 2.045495 -0.625000 +v -1.039364 1.680519 -0.625000 +v -1.125000 1.250000 -0.625000 +v -1.039364 0.819481 -0.625000 +v -0.795495 0.454505 -0.625000 +v -0.430519 0.210636 -0.625000 +v -0.000000 0.125000 -0.625000 +v 0.430519 0.210635 -0.625000 +v 0.795495 0.454505 -0.625000 +v 1.039364 0.819481 -0.625000 +v 1.125000 1.250000 -0.625000 +v 1.039364 1.680519 -0.625000 +v 0.795495 2.045496 -0.625000 +v 0.430518 2.289365 -0.625000 +v -1.000000 0.938500 -4.125000 +v -1.000000 1.645607 -3.832107 +v -1.000000 1.938500 -3.125000 +v -1.000000 1.645607 -2.417893 +v -1.000000 0.938500 -2.125000 +v -1.000000 0.231393 -2.417893 +v -1.000000 -0.061500 -3.125000 +v -1.000000 0.231393 -3.832107 +v -1.000000 1.376000 -2.625000 +v -1.000000 1.376000 -3.625000 +v -1.000000 0.251000 -2.625000 +v -1.000000 0.251000 -3.625000 +v 1.000000 1.645607 -3.832107 +v 1.000000 0.938500 -4.125000 +v 1.000000 1.938500 -3.125000 +v 1.000000 1.645607 -2.417893 +v 1.000000 0.938500 -2.125000 +v 1.000000 0.231393 -2.417893 +v 1.000000 -0.061500 -3.125000 +v 1.000000 0.231393 -3.832107 +v 0.554917 2.356694 0.187500 +v 0.731694 2.179917 0.187500 +v 0.643306 2.445082 0.187500 +v 0.820083 2.268306 0.187500 +v 0.643306 2.445082 -0.312500 +v 0.554917 2.356694 -0.312500 +v 0.731694 2.179917 -0.312500 +v 0.820083 2.268306 -0.312500 +v -0.929917 0.518306 0.187500 +v -1.106694 0.695083 0.187500 +v -1.018306 0.429918 0.187500 +v -1.195083 0.606694 0.187500 +v -1.018306 0.429918 -0.312500 +v -0.929917 0.518306 -0.312500 +v -1.106694 0.695083 -0.312500 +v -1.195083 0.606694 -0.312500 +v 1.106694 0.695082 0.187500 +v 0.929917 0.518306 0.187500 +v 1.195082 0.606694 0.187500 +v 1.018306 0.429917 0.187500 +v 1.195082 0.606694 -0.312500 +v 1.106694 0.695082 -0.312500 +v 0.929917 0.518306 -0.312500 +v 1.018306 0.429917 -0.312500 +v -0.731694 2.179918 0.187500 +v -0.554917 2.356694 0.187500 +v -0.820082 2.268306 0.187500 +v -0.643306 2.445083 0.187500 +v -0.820082 2.268306 -0.312500 +v -0.731694 2.179918 -0.312500 +v -0.554917 2.356694 -0.312500 +v -0.643306 2.445083 -0.312500 +v 0.554917 2.356694 -2.375000 +v 0.731694 2.179917 -2.375000 +v 0.643306 2.445082 -2.375000 +v 0.820083 2.268306 -2.375000 +v 0.643306 2.445082 -2.751000 +v 0.554917 2.356694 -2.751000 +v 0.731694 2.179917 -2.875000 +v 0.820083 2.268306 -2.875000 +v -1.125000 1.875000 -2.600000 +v -1.125000 1.875000 -1.875000 +v -0.625000 2.375000 -2.375000 +v -0.625000 2.375000 -2.125000 +v 1.000000 1.750000 -2.875000 +v -1.000000 1.750000 -2.875000 +v -0.500000 2.250000 -2.625000 +v 0.500000 2.250000 -2.625000 +v -0.500000 2.268567 -2.829241 +v 0.500000 2.268567 -2.829241 +v -0.500000 2.215740 -2.715952 +v 0.500000 2.215740 -2.715952 +v 0.312500 2.438500 -2.750000 +v -0.312500 2.438500 -2.750000 +v 0.312500 2.385673 -2.636712 +v -0.312500 2.385673 -2.636712 +v -0.500000 1.872057 -3.014137 +v 0.500000 1.872057 -3.014137 +v 0.500000 1.819230 -2.900848 +v -0.500000 1.819230 -2.900848 +v 0.500000 0.125000 -2.750000 +v -0.500000 0.125000 -2.750000 +v -0.750000 1.696383 -3.709523 +v 0.750000 1.696383 -3.709523 +v -0.750000 1.544192 -3.511185 +v 0.750000 1.544192 -3.511185 +v -0.750000 1.639863 -3.280215 +v 0.750000 1.639863 -3.280215 +v -0.750000 1.887724 -3.247583 +v 0.750000 1.887724 -3.247583 +v -0.750000 2.039915 -3.445922 +v 0.750000 2.039915 -3.445922 +v -0.750000 1.944244 -3.676892 +v 0.750000 1.944244 -3.676892 +v 0.500000 0.125000 -1.750000 +v -0.500000 0.125000 -1.750000 +v 0.500000 0.500000 -2.750000 +v -0.500000 0.500000 -2.750000 +v 0.500000 0.500000 -1.750000 +v -0.500000 0.500000 -1.750000 +v -0.625000 0.187500 -3.625000 +v 0.625000 0.187500 -3.625000 +v -0.625000 1.687500 -3.625000 +v 0.625000 1.687500 -3.625000 +v -0.625000 1.687500 -4.125000 +v -0.625000 0.187500 -4.125000 +v 0.625000 0.187500 -4.125000 +v 0.625000 1.687500 -4.125000 +v -0.500000 1.562500 -4.125000 +v 0.500000 1.562500 -4.125000 +v -0.500000 0.312500 -4.125000 +v 0.500000 0.312500 -4.125000 +v -0.500000 0.312500 -4.875000 +v -0.500000 1.562500 -4.875000 +v 0.500000 1.562500 -4.875000 +v 0.500000 0.312500 -4.875000 +v 1.375000 1.875000 -2.562500 +v 1.375000 2.091506 -2.437500 +v 1.375000 2.091506 -2.187500 +v 1.375000 1.875000 -2.062500 +v 1.375000 1.658494 -2.187500 +v 1.375000 1.658494 -2.437500 +v 0.875000 1.875000 -2.562500 +v 0.875000 2.091506 -2.437500 +v 0.875000 2.091506 -2.187500 +v 0.875000 1.875000 -2.062500 +v 0.875000 1.658494 -2.187500 +v 0.875000 1.658494 -2.437500 +v 1.375000 1.875000 -2.437500 +v 1.375000 1.983253 -2.375000 +v 1.375000 1.983253 -2.250000 +v 1.375000 1.875000 -2.187500 +v 1.375000 1.766747 -2.250000 +v 1.375000 1.766747 -2.375000 +v 1.562500 1.875000 -2.437500 +v 1.562500 1.983253 -2.375000 +v 1.562500 1.983253 -2.250000 +v 1.562500 1.875000 -2.187500 +v 1.562500 1.766747 -2.250000 +v 1.562500 1.766747 -2.375000 +v 1.562500 1.875000 -2.500000 +v 1.562500 2.037380 -2.406250 +v 1.562500 2.037380 -2.218750 +v 1.562500 1.875000 -2.125000 +v 1.562500 1.712620 -2.218750 +v 1.562500 1.712620 -2.406250 +v 2.312500 1.875000 -2.500000 +v 2.312500 2.037380 -2.406250 +v 2.312500 2.037380 -2.218750 +v 2.312500 1.875000 -2.125000 +v 2.312500 1.712620 -2.218750 +v 2.312500 1.712620 -2.406250 +v 2.312500 1.875000 -2.437500 +v 2.312500 1.983253 -2.375000 +v 2.312500 1.983253 -2.250000 +v 2.312500 1.875000 -2.187500 +v 2.312500 1.766747 -2.250000 +v 2.312500 1.766747 -2.375000 +v 2.500000 1.875000 -2.437500 +v 2.500000 1.983253 -2.375000 +v 2.500000 1.983253 -2.250000 +v 2.500000 1.875000 -2.187500 +v 2.500000 1.766747 -2.250000 +v 2.500000 1.766747 -2.375000 +v 2.500000 1.875000 -2.562500 +v 2.500000 2.091506 -2.437500 +v 2.500000 2.091506 -2.187500 +v 2.500000 1.875000 -2.062500 +v 2.500000 1.658494 -2.187500 +v 2.500000 1.658494 -2.437500 +v 2.625000 1.875000 -2.562500 +v 2.625000 2.091506 -2.437500 +v 2.625000 2.091506 -2.187500 +v 2.625000 1.875000 -2.062500 +v 2.625000 1.658494 -2.187500 +v 2.625000 1.658494 -2.437500 +v 2.750000 1.875000 -2.437500 +v 2.750000 1.983253 -2.375000 +v 2.750000 1.983253 -2.250000 +v 2.750000 1.875000 -2.187500 +v 2.750000 1.766747 -2.250000 +v 2.750000 1.766747 -2.375000 +v -0.187500 1.625000 -4.125000 +v 0.187500 1.625000 -4.125000 +v -0.187500 1.625000 -5.000000 +v 0.187500 1.625000 -5.000000 +v -0.187500 1.250000 -5.000000 +v -0.187500 1.250000 -4.125000 +v 0.187500 1.250000 -4.125000 +v 0.187500 1.250000 -5.000000 +v -0.125000 1.625000 -4.734835 +v 0.125000 1.625000 -4.734835 +v -0.125000 1.359835 -5.000000 +v 0.125000 1.359835 -5.000000 +v 0.125000 1.978553 -5.088388 +v -0.125000 1.978553 -5.088388 +v 0.125000 1.713388 -5.353553 +v -0.125000 1.713388 -5.353553 +v -0.187500 2.022748 -5.044194 +v 0.187500 2.022748 -5.044194 +v -0.187500 1.669194 -5.397748 +v 0.187500 1.669194 -5.397748 +v 0.187500 2.287913 -5.309359 +v -0.187500 2.287913 -5.309359 +v 0.187500 1.845971 -5.574524 +v -0.187500 1.845971 -5.574524 +v 0.187500 2.022748 -5.574524 +v -0.187500 2.022748 -5.574524 +v -0.062500 2.066942 -5.088388 +v 0.062500 2.066942 -5.088388 +v -0.062500 2.243718 -5.265165 +v 0.062500 2.243718 -5.265165 +v -0.062500 2.774049 -4.734835 +v -0.062500 2.597272 -4.558058 +v 0.062500 2.597272 -4.558058 +v 0.062500 2.774049 -4.734835 +v 0.000000 2.374456 -2.778129 +v -0.125000 2.344101 -2.792284 +v -0.216506 2.261168 -2.830956 +v -0.250000 2.147880 -2.883784 +v -0.216506 2.034591 -2.936611 +v -0.125000 1.951658 -2.975283 +v -0.000000 1.921303 -2.989438 +v 0.125000 1.951658 -2.975283 +v 0.216506 2.034591 -2.936611 +v -0.125000 2.423342 -2.962217 +v 0.000000 2.453697 -2.948062 +v -0.216506 2.340409 -3.000889 +v -0.250000 2.227120 -3.053716 +v -0.216506 2.113832 -3.106544 +v -0.125000 2.030899 -3.145216 +v -0.000000 2.000544 -3.159371 +v 0.125000 2.030899 -3.145216 +v 0.216506 2.113832 -3.106544 +v 0.250000 2.227120 -3.053716 +v 0.216506 2.340409 -3.000889 +v 0.125000 2.423342 -2.962217 +v 0.000000 2.487745 -2.725302 +v 0.324759 1.977947 -2.963025 +v 0.375000 2.147880 -2.883783 +v 0.324760 2.317812 -2.804543 +v 0.187500 2.442212 -2.746534 +v 0.000000 2.566986 -2.895234 +v 0.324759 2.057188 -3.132957 +v 0.375000 2.227120 -3.053716 +v 0.324760 2.397053 -2.974475 +v 0.187500 2.521452 -2.916467 +v -0.375000 2.034591 -2.936611 +v -0.437500 2.049769 -2.929533 +v -0.483253 2.091235 -2.910197 +v -0.500000 2.147880 -2.883784 +v -0.483253 2.204524 -2.857370 +v -0.437500 2.245990 -2.838034 +v -0.375000 2.261168 -2.830956 +v -0.312500 2.245990 -2.838034 +v -0.266747 2.204524 -2.857370 +v -0.250000 2.147880 -2.883784 +v -0.266747 2.091235 -2.910197 +v -0.312500 2.049769 -2.929533 +v -0.375000 2.087419 -3.049900 +v -0.437500 2.102596 -3.042822 +v -0.483253 2.144063 -3.023486 +v -0.500000 2.200707 -2.997072 +v -0.483253 2.257351 -2.970659 +v -0.437500 2.298818 -2.951323 +v -0.375000 2.313995 -2.944245 +v -0.312500 2.298818 -2.951323 +v -0.266747 2.257351 -2.970659 +v -0.250000 2.200707 -2.997072 +v -0.266747 2.144063 -3.023486 +v -0.312500 2.102596 -3.042822 +v 0.625000 2.375000 -0.875000 +v 1.125000 1.875000 -0.875000 +v 0.625000 2.375000 -1.875000 +v 1.125000 1.875000 -1.625000 +v -0.625000 2.375000 -0.875000 +v -0.625000 2.375000 -1.875000 +v -1.125000 1.875000 -0.875000 +v -1.125000 1.875000 -1.625000 +v -1.036612 1.786612 -2.600000 +v -0.536612 2.286612 -2.375000 +v -1.036612 1.786612 -1.875000 +v -0.536612 2.286612 -2.125000 +v 0.948223 1.698223 -1.625000 +v 0.448223 2.198223 -1.875000 +v 0.948223 1.698223 -0.875000 +v 0.448223 2.198223 -0.875000 +v 0.875000 1.948223 -1.125000 +v 0.911612 2.036612 -1.125000 +v 0.875000 2.125000 -1.125000 +v -0.875000 2.125000 -1.125000 +v -0.911612 2.036612 -1.125000 +v -0.875000 1.948223 -1.125000 +v 0.137500 2.062500 -3.437400 +v -0.137500 2.062500 -3.749900 +v -0.012500 2.062500 -3.749900 +v -0.698223 2.125000 -1.125000 +v -0.786612 2.161612 -1.125000 +v -0.823223 2.073223 -0.948223 +v -0.867418 1.992418 -0.974112 +v -0.849112 1.922335 -1.036612 +v 0.137500 2.062500 -3.749900 +v 0.012500 2.062500 -3.749900 +v -0.672335 2.099112 -1.036612 +v -0.742418 2.117417 -0.974112 +v -0.698223 1.948223 -0.875000 +v -0.760723 1.885723 -0.911612 +v -0.786612 1.859835 -1.000000 +v 0.012500 1.937500 -3.749900 +v 0.137500 1.937500 -3.749900 +v -0.609835 2.036612 -1.000000 +v -0.635723 2.010723 -0.911612 +v -0.698223 2.301777 -1.125000 +v -0.734835 2.213388 -1.125000 +v -0.698223 2.125000 -1.125000 +v 0.012500 1.937500 -3.874900 +v 0.137500 1.937500 -3.874900 +v -0.012500 1.937500 -3.874900 +v -0.521447 2.301777 -1.125000 +v -0.609835 2.338388 -1.125000 +v -0.646447 2.250000 -0.948223 +v -0.690641 2.169194 -0.974112 +v -0.672335 2.099112 -1.036612 +v -0.012500 1.937500 -3.749900 +v -0.137500 1.937500 -3.749900 +v -0.495558 2.275888 -1.036612 +v -0.565641 2.294194 -0.974112 +v -0.521447 2.125000 -0.875000 +v -0.583947 2.062500 -0.911612 +v -0.609835 2.036612 -1.000000 +v -0.137500 1.937500 -3.874900 +v -0.137500 1.687500 -3.749900 +v -0.433058 2.213388 -1.000000 +v -0.458947 2.187500 -0.911612 +v -1.051777 1.948223 -1.125000 +v -1.088388 1.859835 -1.125000 +v -1.051777 1.771446 -1.125000 +v -0.012500 1.687500 -3.749900 +v -0.137500 1.687500 -3.874900 +v -0.012500 1.687500 -3.874900 +v -0.875000 1.948223 -1.125000 +v -0.963388 1.984835 -1.125000 +v -1.000000 1.896446 -0.948223 +v -1.044194 1.815641 -0.974112 +v -1.025888 1.745558 -1.036612 +v 0.137500 1.687500 -3.874900 +v 0.012500 1.687500 -3.874900 +v -0.849112 1.922335 -1.036612 +v -0.919194 1.940641 -0.974112 +v -0.875000 1.771446 -0.875000 +v -0.937500 1.708946 -0.911612 +v -0.963388 1.683058 -1.000000 +v 0.137500 1.687500 -3.749900 +v 0.012500 1.687500 -3.749900 +v -0.786612 1.859835 -1.000000 +v -0.812500 1.833946 -0.911612 +v -0.875000 2.125000 -1.812500 +v -0.911612 2.036612 -1.812500 +v -0.875000 1.948223 -1.812500 +v -0.698223 2.125000 -1.812500 +v -0.786612 2.161612 -1.812500 +v -0.698223 2.301777 -1.875000 +v -0.734835 2.213388 -1.875000 +v -0.698223 2.125000 -1.875000 +v -0.521447 2.301777 -1.875000 +v -0.609835 2.338388 -1.875000 +v -1.051777 1.948223 -1.750000 +v -1.088388 1.859835 -1.750000 +v -1.051777 1.771446 -1.750000 +v -0.875000 1.948223 -1.750000 +v -0.963388 1.984835 -1.750000 +v -0.448223 2.198223 -1.875000 +v -0.448223 2.198223 -0.875000 +v -0.948223 1.698223 -0.875000 +v -0.948223 1.698223 -1.625000 +v 0.698223 2.125000 -1.125000 +v 0.786612 2.161612 -1.125000 +v 0.823223 2.073223 -0.948223 +v 0.867418 1.992418 -0.974112 +v 0.849112 1.922335 -1.036612 +v 0.672335 2.099112 -1.036612 +v 0.742418 2.117417 -0.974112 +v 0.698223 1.948223 -0.875000 +v 0.760723 1.885723 -0.911612 +v 0.786612 1.859835 -1.000000 +v -0.012500 2.134191 -3.062400 +v 0.609835 2.036612 -1.000000 +v 0.635723 2.010723 -0.911612 +v 0.698223 2.301777 -1.125000 +v 0.734835 2.213388 -1.125000 +v 0.698223 2.125000 -1.125000 +v -0.137500 2.134191 -3.062400 +v 0.137500 2.134191 -3.062400 +v 0.012500 2.134191 -3.062400 +v 0.521447 2.301777 -1.125000 +v 0.609835 2.338388 -1.125000 +v 0.646447 2.250000 -0.948223 +v 0.690641 2.169194 -0.974112 +v 0.672335 2.099112 -1.036612 +v 0.137500 2.009191 -3.062400 +v 0.012500 2.009191 -3.062400 +v 0.495558 2.275888 -1.036612 +v 0.565641 2.294194 -0.974112 +v 0.521447 2.125000 -0.875000 +v 0.583947 2.062500 -0.911612 +v 0.609835 2.036612 -1.000000 +v -0.012500 2.009191 -3.062400 +v -0.137500 2.009191 -3.062400 +v 0.433058 2.213388 -1.000000 +v 0.458947 2.187500 -0.911612 +v 1.051777 1.948223 -1.125000 +v 1.088388 1.859835 -1.125000 +v 1.051777 1.771446 -1.125000 +v -0.137500 2.062500 -3.437400 +v -0.137500 2.187500 -3.437400 +v -0.012500 2.187500 -3.437400 +v 0.875000 1.948223 -1.125000 +v 0.963388 1.984835 -1.125000 +v 1.000000 1.896446 -0.948223 +v 1.044194 1.815641 -0.974112 +v 1.025888 1.745558 -1.036612 +v -0.012500 2.062500 -3.437400 +v 0.012500 2.062500 -3.437400 +v 0.849112 1.922335 -1.036612 +v 0.919194 1.940641 -0.974112 +v 0.875000 1.771446 -0.875000 +v 0.937500 1.708946 -0.911612 +v 0.963388 1.683058 -1.000000 +v 0.012500 2.187500 -3.437400 +v 0.137500 2.187500 -3.437400 +v 0.786612 1.859835 -1.000000 +v 0.812500 1.833946 -0.911612 +v 0.875000 2.125000 -1.812500 +v 0.911612 2.036612 -1.812500 +v 0.875000 1.948223 -1.812500 +v 0.698223 2.125000 -1.812500 +v 0.786612 2.161612 -1.812500 +v 0.698223 2.301777 -1.875000 +v 0.734835 2.213388 -1.875000 +v 0.698223 2.125000 -1.875000 +v 0.521447 2.301777 -1.875000 +v 0.609835 2.338388 -1.875000 +v 1.051777 1.948223 -1.750000 +v 1.088388 1.859835 -1.750000 +v 1.051777 1.771446 -1.750000 +v 0.875000 1.948223 -1.750000 +v 0.963388 1.984835 -1.750000 +v 1.187500 1.359472 -0.413125 +v 1.187500 1.246183 -0.360298 +v 1.187500 1.253817 -0.639702 +v 1.187500 1.140528 -0.586875 +v 1.062500 1.253817 -0.639702 +v 1.062500 1.359472 -0.413125 +v 1.062500 1.246183 -0.360298 +v 1.062500 1.140528 -0.586875 +v -1.187500 1.140528 -0.413125 +v -1.187500 1.253817 -0.360298 +v -1.187500 1.246183 -0.639702 +v -1.187500 1.359471 -0.586875 +v -1.062500 1.246183 -0.639702 +v -1.062500 1.140528 -0.413125 +v -1.062500 1.253817 -0.360298 +v -1.062500 1.359471 -0.586875 +v 0.109472 0.062500 -0.413125 +v -0.003817 0.062500 -0.360298 +v 0.003817 0.062500 -0.639702 +v -0.109472 0.062500 -0.586875 +v 0.003817 0.187500 -0.639702 +v 0.109472 0.187500 -0.413125 +v -0.003817 0.187500 -0.360298 +v -0.109472 0.187500 -0.586875 +v -0.109472 2.437500 -0.413125 +v 0.003817 2.437500 -0.360298 +v -0.003817 2.437500 -0.639702 +v 0.109472 2.437500 -0.586875 +v -0.003817 2.312500 -0.639702 +v -0.109472 2.312500 -0.413125 +v 0.003817 2.312500 -0.360298 +v 0.109472 2.312500 -0.586875 +v 0.917097 0.487719 -0.413125 +v 0.836990 0.407612 -0.360298 +v 0.842388 0.413010 -0.639702 +v 0.762281 0.332903 -0.586875 +v 0.754000 0.501398 -0.639702 +v 0.828709 0.576107 -0.413125 +v 0.748602 0.496000 -0.360298 +v 0.673893 0.421291 -0.586875 +v -0.917097 2.012281 -0.413125 +v -0.836990 2.092388 -0.360298 +v -0.842388 2.086990 -0.639702 +v -0.762281 2.167097 -0.586875 +v -0.754000 1.998602 -0.639702 +v -0.828709 1.923893 -0.413125 +v -0.748602 2.004000 -0.360298 +v -0.673893 2.078709 -0.586875 +v -0.762281 0.332902 -0.413125 +v -0.842388 0.413010 -0.360298 +v -0.836990 0.407611 -0.639702 +v -0.917097 0.487719 -0.586875 +v -0.748602 0.496000 -0.639702 +v -0.673893 0.421291 -0.413125 +v -0.754000 0.501398 -0.360298 +v -0.828709 0.576107 -0.586875 +v 0.762281 2.167097 -0.413125 +v 0.842388 2.086990 -0.360298 +v 0.836990 2.092388 -0.639702 +v 0.917097 2.012281 -0.586875 +v 0.748602 2.004000 -0.639702 +v 0.673893 2.078709 -0.413125 +v 0.754000 1.998602 -0.360298 +v 0.828709 1.923893 -0.586875 +v -0.498945 0.166859 -0.413125 +v -0.597056 0.223503 -0.360298 +v -0.590444 0.219686 -0.639702 +v -0.688555 0.276330 -0.586875 +v -0.527944 0.327939 -0.639702 +v -0.436445 0.275112 -0.413125 +v -0.534556 0.331756 -0.360298 +v -0.626055 0.384584 -0.586875 +v 0.498945 2.333141 -0.413125 +v 0.597056 2.276496 -0.360298 +v 0.590444 2.280313 -0.639702 +v 0.688555 2.223669 -0.586875 +v 0.527944 2.172060 -0.639702 +v 0.436445 2.224888 -0.413125 +v 0.534556 2.168243 -0.360298 +v 0.626055 2.115416 -0.586875 +v -1.083141 1.748945 -0.413125 +v -1.026497 1.847055 -0.360298 +v -1.030314 1.840444 -0.639702 +v -0.973670 1.938555 -0.586875 +v -0.922061 1.777944 -0.639702 +v -0.974888 1.686445 -0.413125 +v -0.918244 1.784555 -0.360298 +v -0.865416 1.876055 -0.586875 +v 1.083141 0.751055 -0.413125 +v 1.026497 0.652944 -0.360298 +v 1.030314 0.659555 -0.639702 +v 0.973669 0.561445 -0.586875 +v 0.922060 0.722055 -0.639702 +v 0.974888 0.813555 -0.413125 +v 0.918243 0.715444 -0.360298 +v 0.865416 0.623945 -0.586875 +v -1.118704 0.836911 -0.413125 +v -1.148025 0.946339 -0.360298 +v -1.146049 0.938965 -0.639702 +v -1.175370 1.048394 -0.586875 +v -1.025308 0.971318 -0.639702 +v -0.997963 0.869263 -0.413125 +v -1.027284 0.978692 -0.360298 +v -1.054630 1.080746 -0.586875 +v 1.118703 1.663089 -0.413125 +v 1.148025 1.553661 -0.360298 +v 1.146049 1.561034 -0.639702 +v 1.175370 1.451606 -0.586875 +v 1.025308 1.528682 -0.639702 +v 0.997963 1.630736 -0.413125 +v 1.027284 1.521308 -0.360298 +v 1.054629 1.419254 -0.586875 +v -0.413089 2.368703 -0.413125 +v -0.303661 2.398025 -0.360298 +v -0.311035 2.396049 -0.639702 +v -0.201606 2.425370 -0.586875 +v -0.278682 2.275308 -0.639702 +v -0.380737 2.247963 -0.413125 +v -0.271308 2.277284 -0.360298 +v -0.169254 2.304629 -0.586875 +v 0.413089 0.131296 -0.413125 +v 0.303660 0.101975 -0.360298 +v 0.311034 0.103951 -0.639702 +v 0.201606 0.074629 -0.586875 +v 0.278682 0.224691 -0.639702 +v 0.380737 0.252037 -0.413125 +v 0.271308 0.222716 -0.360298 +v 0.169254 0.195370 -0.586875 +v -0.688555 2.223669 -0.413125 +v -0.590445 2.280313 -0.360298 +v -0.597056 2.276496 -0.639702 +v -0.498945 2.333141 -0.586875 +v -0.534556 2.168243 -0.639702 +v -0.626055 2.115416 -0.413125 +v -0.527945 2.172060 -0.360298 +v -0.436445 2.224888 -0.586875 +v 0.688555 0.276330 -0.413125 +v 0.590444 0.219686 -0.360298 +v 0.597055 0.223503 -0.639702 +v 0.498945 0.166859 -0.586875 +v 0.534555 0.331756 -0.639702 +v 0.626055 0.384583 -0.413125 +v 0.527944 0.327939 -0.360298 +v 0.436445 0.275112 -0.586875 +v 0.973669 1.938555 -0.413125 +v 1.030313 1.840444 -0.360298 +v 1.026497 1.847055 -0.639702 +v 1.083141 1.748945 -0.586875 +v 0.918244 1.784555 -0.639702 +v 0.865416 1.876055 -0.413125 +v 0.922060 1.777944 -0.360298 +v 0.974888 1.686445 -0.586875 +v -0.973670 0.561445 -0.413125 +v -1.030314 0.659556 -0.360298 +v -1.026497 0.652944 -0.639702 +v -1.083141 0.751055 -0.586875 +v -0.918244 0.715444 -0.639702 +v -0.865416 0.623945 -0.413125 +v -0.922061 0.722056 -0.360298 +v -0.974888 0.813555 -0.586875 +v 0.201606 2.425370 -0.413125 +v 0.311034 2.396049 -0.360298 +v 0.303661 2.398025 -0.639702 +v 0.413089 2.368704 -0.586875 +v 0.271308 2.277284 -0.639702 +v 0.169254 2.304629 -0.413125 +v 0.278682 2.275308 -0.360298 +v 0.380737 2.247963 -0.586875 +v -0.201606 0.074630 -0.413125 +v -0.311035 0.103951 -0.360298 +v -0.303661 0.101975 -0.639702 +v -0.413089 0.131296 -0.586875 +v -0.271309 0.222716 -0.639702 +v -0.169254 0.195370 -0.413125 +v -0.278682 0.224692 -0.360298 +v -0.380737 0.252037 -0.586875 +v 1.175370 1.048394 -0.413125 +v 1.146049 0.938965 -0.360298 +v 1.148025 0.946339 -0.639702 +v 1.118704 0.836911 -0.586875 +v 1.027284 0.978692 -0.639702 +v 1.054629 1.080746 -0.413125 +v 1.025308 0.971318 -0.360298 +v 0.997963 0.869263 -0.586875 +v -1.175371 1.451606 -0.413125 +v -1.146049 1.561035 -0.360298 +v -1.148025 1.553661 -0.639702 +v -1.118704 1.663089 -0.586875 +v -1.027284 1.521308 -0.639702 +v -1.054630 1.419254 -0.413125 +v -1.025308 1.528682 -0.360298 +v -0.997963 1.630737 -0.586875 +v 0.625000 1.876000 -3.062500 +v 0.625000 2.001000 -3.062500 +v -0.625000 1.938500 -3.250000 +v 0.625000 1.938500 -3.250000 +v -0.625000 1.830247 -3.187500 +v 0.625000 1.830247 -3.187500 +v -0.625000 1.830247 -3.062500 +v 0.625000 1.830247 -3.062500 +v -0.625000 1.938500 -3.000000 +v 0.625000 1.938500 -3.000000 +v -0.625000 2.046753 -3.062500 +v 0.625000 2.046753 -3.062500 +v -0.625000 2.046753 -3.187500 +v 0.625000 2.046753 -3.187500 +v 0.625000 2.001000 -3.187500 +v 0.625000 1.876000 -3.187500 +v 0.875000 1.876000 -3.187500 +v 0.875000 2.001000 -3.187500 +v 0.875000 1.876000 -3.062500 +v 0.875000 2.001000 -3.062500 +v 1.000000 2.001000 -3.187500 +v 1.000000 2.001000 -3.062500 +v 0.875000 2.126000 -3.187500 +v 0.875000 2.126000 -3.062500 +v 1.000000 2.126000 -3.062500 +v 1.000000 2.126000 -3.187500 +v 0.875000 2.251000 -3.187500 +v 1.000000 2.251000 -3.187500 +v 0.875000 2.126000 -3.312500 +v 1.000000 2.126000 -3.312500 +v 0.875000 2.251000 -3.312500 +v 1.000000 2.251000 -3.312500 +v 0.875000 1.876000 -3.937500 +v 1.000000 1.876000 -3.937500 +v 0.875000 2.001000 -3.937500 +v 1.000000 2.001000 -3.937500 +v 0.875000 1.876000 -4.062500 +v 1.000000 1.876000 -4.062500 +v 1.000000 1.626000 -3.937500 +v 0.875000 1.626000 -3.937500 +v 0.875000 1.626000 -4.062500 +v 1.000000 1.626000 -4.062500 +v 0.875000 1.501000 -4.062500 +v 0.875000 1.501000 -3.937500 +v 0.625000 1.626000 -3.937500 +v 0.625000 1.626000 -4.062500 +v 0.625000 1.501000 -4.062500 +v 0.625000 1.501000 -3.937500 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.0000 -0.0000 1.0000 +vn -0.7074 -0.7068 -0.0001 +vn 0.0000 -0.7071 -0.7071 +vn -0.7071 -0.7071 0.0057 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.9487 -0.3162 +vn 0.0000 0.4472 -0.8944 +vn 0.3904 -0.1617 0.9063 +vn -0.3904 0.1617 0.9063 +vn -0.3905 0.1617 0.9063 +vn -0.1617 -0.3904 0.9063 +vn 0.1617 0.3904 0.9063 +vn 0.1617 -0.3904 0.9063 +vn 0.1617 -0.3905 0.9063 +vn -0.1617 0.3904 0.9063 +vn -0.3904 -0.1617 0.9063 +vn 0.3904 0.1617 0.9063 +vn -0.8806 -0.1752 0.4403 +vn 0.8806 0.1752 0.4403 +vn 0.4318 0.0859 -0.8979 +vn 0.2320 -0.9696 -0.0783 +vn -0.4318 -0.0859 0.8979 +vn -0.1567 0.9845 -0.0783 +vn -0.4318 -0.0859 -0.8979 +vn -0.2320 0.9696 -0.0783 +vn 0.4318 0.0859 0.8979 +vn 0.1567 -0.9845 -0.0783 +vn -0.1752 0.8806 0.4403 +vn 0.1752 -0.8806 0.4403 +vn 0.0859 -0.4318 -0.8979 +vn -0.9696 -0.2320 -0.0783 +vn -0.0859 0.4318 0.8979 +vn 0.9845 0.1567 -0.0783 +vn -0.0859 0.4318 -0.8979 +vn 0.9696 0.2320 -0.0783 +vn 0.0859 -0.4318 0.8979 +vn -0.9845 -0.1567 -0.0783 +vn -0.7465 0.4988 0.4403 +vn 0.7465 -0.4988 0.4403 +vn 0.3661 -0.2446 -0.8979 +vn -0.5215 -0.8496 -0.0783 +vn -0.3661 0.2446 0.8979 +vn 0.5854 0.8070 -0.0783 +vn -0.3661 0.2446 -0.8979 +vn 0.5215 0.8496 -0.0783 +vn 0.3661 -0.2446 0.8979 +vn -0.5854 -0.8070 -0.0783 +vn 0.4988 0.7465 0.4403 +vn -0.4988 -0.7465 0.4403 +vn -0.2446 -0.3661 -0.8979 +vn -0.8496 0.5215 -0.0783 +vn 0.2446 0.3661 0.8979 +vn 0.8070 -0.5854 -0.0783 +vn 0.2446 0.3661 -0.8979 +vn 0.8496 -0.5215 -0.0783 +vn -0.2446 -0.3661 0.8979 +vn -0.8070 0.5854 -0.0783 +vn -0.8806 0.1752 0.4403 +vn 0.8806 -0.1752 0.4403 +vn 0.4318 -0.0859 -0.8979 +vn -0.1567 -0.9845 -0.0783 +vn -0.4318 0.0859 0.8979 +vn 0.2320 0.9696 -0.0783 +vn -0.4318 0.0859 -0.8979 +vn 0.1567 0.9845 -0.0783 +vn 0.4318 -0.0859 0.8979 +vn -0.2320 -0.9696 -0.0783 +vn 0.1752 0.8806 0.4403 +vn -0.1752 -0.8806 0.4403 +vn -0.0859 -0.4318 -0.8979 +vn -0.9845 0.1567 -0.0783 +vn 0.0859 0.4318 0.8979 +vn 0.9696 -0.2320 -0.0783 +vn 0.0859 0.4318 -0.8979 +vn 0.9845 -0.1567 -0.0783 +vn -0.0859 -0.4318 0.8979 +vn -0.9696 0.2320 -0.0783 +vn -0.4988 0.7465 0.4403 +vn 0.4988 -0.7465 0.4403 +vn 0.2446 -0.3661 -0.8979 +vn -0.8070 -0.5854 -0.0783 +vn -0.2446 0.3661 0.8979 +vn 0.8496 0.5215 -0.0783 +vn -0.2446 0.3661 -0.8979 +vn 0.8070 0.5854 -0.0783 +vn 0.2446 -0.3661 0.8979 +vn -0.8496 -0.5215 -0.0783 +vn 0.7465 0.4988 0.4403 +vn -0.7465 -0.4988 0.4403 +vn -0.3661 -0.2446 -0.8979 +vn -0.5854 0.8070 -0.0783 +vn 0.3661 0.2446 0.8979 +vn 0.5215 -0.8496 -0.0783 +vn 0.3661 0.2446 -0.8979 +vn 0.5854 -0.8070 -0.0783 +vn -0.3661 -0.2446 0.8979 +vn -0.5215 0.8496 -0.0783 +vn 0.0000 -0.3827 -0.9239 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 0.9239 -0.3827 +vn 0.0000 -0.9239 -0.3827 +vn 0.0000 -0.3827 0.9239 +vn 0.0000 0.9239 0.3827 +vn 0.0000 0.3827 -0.9239 +vn -0.3142 0.3142 -0.8959 +vn 0.0000 0.4226 -0.9063 +vn 0.0000 0.9063 0.4226 +vn -0.7071 0.6409 0.2988 +vn 0.7071 0.6409 0.2988 +vn 0.0000 0.7934 0.6088 +vn 0.0000 0.1305 -0.9914 +vn 0.0000 0.5000 0.8660 +vn 0.0000 0.5000 -0.8660 +vn 0.0000 -0.5000 -0.8660 +vn 0.0000 -0.5000 0.8660 +vn 0.6547 0.3780 -0.6547 +vn 0.6547 -0.3780 -0.6547 +vn 0.6547 -0.3780 0.6547 +vn 0.6547 0.7559 0.0000 +vn 0.6547 -0.7559 0.0000 +vn 0.6547 0.3780 0.6547 +vn 0.0000 0.7071 0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.7071 -0.7071 +vn -0.5000 -0.7849 -0.3660 +vn -0.0000 -0.4226 0.9063 +vn -0.2357 0.2357 0.9428 +vn 0.2357 0.2357 0.9428 +vn -0.2357 -0.2357 -0.9428 +vn -0.2144 -0.2144 0.9529 +vn 0.0000 -0.9285 0.3714 +vn 0.0000 0.9285 -0.3714 +vn 0.0000 -0.9900 -0.1407 +vn 0.0000 0.9900 0.1407 +vn 0.0000 -0.4226 -0.9063 +vn 0.0000 0.4226 0.9063 +vn 0.0000 -0.9063 0.4226 +vn 0.0000 0.9063 -0.4226 +vn 0.0000 -0.9063 -0.4226 +vn -0.4226 0.0000 -0.9063 +vn 0.4226 0.0000 0.9063 +vn -0.9063 0.0000 0.4226 +vn 0.9063 0.0000 -0.4226 +vn 0.4226 0.0000 -0.9063 +vn -0.4226 0.0000 0.9063 +vn 0.9063 0.0000 0.4226 +vn -0.9063 0.0000 -0.4226 +vn -0.2988 -0.2988 -0.9063 +vn 0.2988 0.2988 0.9063 +vn -0.6409 -0.6409 0.4226 +vn 0.6409 0.6409 -0.4226 +vn 0.2988 0.2988 -0.9063 +vn -0.2988 -0.2988 0.9063 +vn 0.6409 0.6409 0.4226 +vn -0.6409 -0.6409 -0.4226 +vn -0.2988 0.2988 -0.9063 +vn 0.2988 -0.2988 0.9063 +vn -0.6409 0.6409 0.4226 +vn 0.6409 -0.6409 -0.4226 +vn 0.2988 -0.2988 -0.9063 +vn -0.2988 0.2988 0.9063 +vn 0.6409 -0.6409 0.4226 +vn -0.6409 0.6409 -0.4226 +vn -0.5000 -0.8660 0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.3660 0.2113 -0.9063 +vn 0.3660 -0.2113 0.9063 +vn -0.7849 0.4532 0.4226 +vn 0.7849 -0.4532 -0.4226 +vn 0.3660 -0.2113 -0.9063 +vn -0.3660 0.2113 0.9063 +vn 0.7849 -0.4532 0.4226 +vn -0.7849 0.4532 -0.4226 +vn -0.8660 0.5000 0.0000 +vn 0.8660 -0.5000 0.0000 +vn 0.2113 0.3660 -0.9063 +vn -0.2113 -0.3660 0.9063 +vn 0.4532 0.7849 0.4226 +vn -0.4532 -0.7849 -0.4226 +vn -0.2113 -0.3660 -0.9063 +vn 0.2113 0.3660 0.9063 +vn -0.4532 -0.7849 0.4226 +vn 0.4532 0.7849 -0.4226 +vn -0.9659 -0.2588 -0.0000 +vn 0.9659 0.2588 0.0000 +vn -0.1094 0.4082 -0.9063 +vn 0.1094 -0.4082 0.9063 +vn -0.2346 0.8754 0.4226 +vn 0.2346 -0.8754 -0.4226 +vn 0.1094 -0.4082 -0.9063 +vn -0.1094 0.4082 0.9063 +vn 0.2346 -0.8754 0.4226 +vn -0.2346 0.8754 -0.4226 +vn -0.2588 0.9659 0.0000 +vn 0.2588 -0.9659 -0.0000 +vn 0.4082 0.1094 -0.9063 +vn -0.4082 -0.1094 0.9063 +vn 0.8754 0.2346 0.4226 +vn -0.8754 -0.2346 -0.4226 +vn -0.4082 -0.1094 -0.9063 +vn 0.4082 0.1094 0.9063 +vn -0.8754 -0.2346 0.4226 +vn 0.8754 0.2346 -0.4226 +vn -0.5000 0.8660 -0.0000 +vn 0.5000 -0.8660 -0.0000 +vn 0.3660 0.2113 -0.9063 +vn -0.3660 -0.2113 0.9063 +vn 0.7849 0.4532 0.4226 +vn -0.7849 -0.4532 -0.4226 +vn -0.3660 -0.2113 -0.9063 +vn 0.3660 0.2113 0.9063 +vn -0.7849 -0.4532 0.4226 +vn 0.7849 0.4532 -0.4226 +vn 0.8660 0.5000 0.0000 +vn -0.8660 -0.5000 -0.0000 +vn 0.2113 -0.3660 -0.9063 +vn -0.2113 0.3660 0.9063 +vn 0.4532 -0.7849 0.4226 +vn -0.4532 0.7849 -0.4226 +vn -0.2113 0.3660 -0.9063 +vn 0.2113 -0.3660 0.9063 +vn -0.4532 0.7849 0.4226 +vn 0.4532 -0.7849 -0.4226 +vn 0.2588 0.9659 0.0000 +vn -0.2588 -0.9659 0.0000 +vn 0.4082 -0.1094 -0.9063 +vn -0.4082 0.1094 0.9063 +vn 0.8754 -0.2346 0.4226 +vn -0.8754 0.2346 -0.4226 +vn -0.4082 0.1094 -0.9063 +vn 0.4082 -0.1094 0.9063 +vn -0.8754 0.2346 0.4226 +vn 0.8754 -0.2346 -0.4226 +vn 0.9659 -0.2588 0.0000 +vn -0.9659 0.2588 0.0000 +vn -0.1094 -0.4082 -0.9063 +vn 0.1094 0.4082 0.9063 +vn -0.2346 -0.8754 0.4226 +vn 0.2346 0.8754 -0.4226 +vn 0.1094 0.4082 -0.9063 +vn -0.1094 -0.4082 0.9063 +vn 0.2346 0.8754 0.4226 +vn -0.2346 -0.8754 -0.4226 +vn 0.0000 -0.8944 0.4472 +vn 0.3423 -0.8263 0.4472 +vn -0.3423 -0.8263 0.4472 +vn -0.6325 -0.6325 0.4472 +vn -0.8263 -0.3423 0.4472 +vn -0.8944 -0.0000 0.4472 +vn -0.8263 0.3423 0.4472 +vn -0.6325 0.6325 0.4472 +vn -0.3423 0.8263 0.4472 +vn 0.0000 0.8944 0.4472 +vn 0.3423 0.8263 0.4472 +vn 0.6325 0.6325 0.4472 +vn 0.8263 0.3423 0.4472 +vn 0.8944 -0.0000 0.4472 +vn 0.8263 -0.3423 0.4472 +vn 0.6325 -0.6325 0.4472 +vn -0.6303 -0.7311 -0.2611 +vn 0.0948 -0.9947 0.0393 +vn 0.0609 -0.9973 0.0399 +vn -0.5190 -0.7430 -0.4226 +vn 0.7150 -0.6333 0.2962 +vn 0.9239 -0.0000 0.3827 +vn 0.7690 -0.0000 0.6392 +vn 0.5735 -0.6721 0.4683 +vn 0.7150 0.6333 0.2962 +vn 0.0948 0.9947 0.0393 +vn 0.0609 0.9973 0.0399 +vn 0.5735 0.6721 0.4683 +vn -0.6303 0.7311 -0.2611 +vn -0.5190 0.7430 -0.4226 +vn -0.9239 -0.0000 -0.3827 +vn -0.7779 -0.0000 -0.6284 +vn 0.0183 0.9989 0.0441 +vn 0.2791 0.6840 0.6739 +vn 0.3827 0.0000 0.9239 +vn 0.2791 -0.6840 0.6739 +vn 0.0183 -0.9989 0.0441 +vn -0.2608 -0.7317 -0.6297 +vn -0.3827 -0.0000 -0.9239 +vn -0.2608 0.7317 -0.6297 +vn -0.0000 -0.7317 -0.6816 +vn -0.0000 0.7317 -0.6816 +vn 0.0000 0.9989 0.0477 +vn -0.0000 0.6840 0.7294 +vn -0.0000 -0.6840 0.7294 +vn 0.0000 -0.9989 0.0477 +vn -0.1436 0.6770 0.7219 +vn -0.1951 0.0000 0.9808 +vn -0.1436 -0.6770 0.7219 +vn -0.0095 -0.9988 0.0477 +vn 0.1343 -0.7251 -0.6754 +vn 0.1951 0.0000 -0.9808 +vn 0.1343 0.7251 -0.6754 +vn -0.0095 0.9988 0.0477 +vn 0.3827 -0.9239 0.0000 +vn -0.3827 -0.9239 0.0000 +vn -0.3827 0.9239 0.0000 +vn 0.9239 -0.3827 0.0000 +vn -0.9239 0.3827 0.0000 +vn 0.9239 0.3827 0.0000 +vn -0.9239 -0.3827 0.0000 +vn 0.3827 0.9239 0.0000 +vn 0.6303 0.7311 -0.2611 +vn -0.0948 0.9947 0.0393 +vn -0.0609 0.9973 0.0399 +vn 0.5190 0.7430 -0.4226 +vn -0.7150 0.6333 0.2962 +vn -0.9239 0.0000 0.3827 +vn -0.7690 -0.0000 0.6392 +vn -0.5735 0.6721 0.4683 +vn -0.7150 -0.6333 0.2962 +vn -0.0948 -0.9947 0.0393 +vn -0.0609 -0.9973 0.0399 +vn -0.5735 -0.6721 0.4683 +vn 0.6303 -0.7311 -0.2611 +vn 0.5190 -0.7430 -0.4226 +vn 0.9239 0.0000 -0.3827 +vn 0.7779 0.0000 -0.6284 +vn -0.0183 -0.9989 0.0441 +vn -0.2791 -0.6840 0.6739 +vn -0.3827 0.0000 0.9239 +vn -0.2791 0.6840 0.6739 +vn -0.0183 0.9989 0.0441 +vn 0.2608 0.7317 -0.6297 +vn 0.3827 0.0000 -0.9239 +vn 0.2608 -0.7317 -0.6297 +vn 0.1436 -0.6770 0.7219 +vn 0.1951 0.0000 0.9808 +vn 0.1436 0.6770 0.7219 +vn 0.0095 0.9988 0.0477 +vn -0.1344 0.7251 -0.6754 +vn -0.1951 -0.0000 -0.9808 +vn -0.1344 -0.7251 -0.6754 +vn 0.0095 -0.9988 0.0477 +vn -0.7311 0.6303 -0.2611 +vn -0.9947 -0.0948 0.0393 +vn -0.9973 -0.0609 0.0399 +vn -0.7430 0.5190 -0.4226 +vn -0.6333 -0.7150 0.2962 +vn 0.0000 -0.7690 0.6392 +vn -0.6721 -0.5735 0.4683 +vn 0.6333 -0.7150 0.2962 +vn 0.9947 -0.0948 0.0393 +vn 0.9973 -0.0609 0.0399 +vn 0.6721 -0.5735 0.4683 +vn 0.7311 0.6303 -0.2611 +vn 0.7430 0.5190 -0.4226 +vn 0.0000 0.7779 -0.6284 +vn 0.9989 -0.0183 0.0441 +vn 0.6840 -0.2791 0.6739 +vn -0.6840 -0.2791 0.6739 +vn -0.9989 -0.0183 0.0441 +vn -0.7317 0.2608 -0.6297 +vn 0.7317 0.2608 -0.6297 +vn -0.7317 0.0000 -0.6816 +vn 0.7317 -0.0000 -0.6816 +vn 0.9989 -0.0000 0.0477 +vn 0.6840 -0.0000 0.7294 +vn -0.6840 0.0000 0.7294 +vn -0.9989 0.0000 0.0477 +vn 0.6770 0.1436 0.7219 +vn 0.0000 0.1951 0.9808 +vn -0.6770 0.1436 0.7219 +vn -0.9988 0.0095 0.0477 +vn -0.7251 -0.1344 -0.6754 +vn -0.0000 -0.1951 -0.9808 +vn 0.7251 -0.1344 -0.6754 +vn 0.9988 0.0095 0.0477 +vn 0.7311 -0.6303 -0.2611 +vn 0.9947 0.0948 0.0393 +vn 0.9973 0.0609 0.0399 +vn 0.7430 -0.5190 -0.4226 +vn 0.6333 0.7150 0.2962 +vn 0.0000 0.7690 0.6392 +vn 0.6721 0.5735 0.4683 +vn -0.6333 0.7150 0.2962 +vn -0.9947 0.0948 0.0393 +vn -0.9973 0.0609 0.0399 +vn -0.6721 0.5735 0.4683 +vn -0.7311 -0.6303 -0.2611 +vn -0.7430 -0.5190 -0.4226 +vn 0.0000 -0.7779 -0.6284 +vn -0.9989 0.0183 0.0441 +vn -0.6840 0.2791 0.6739 +vn 0.0000 0.3827 0.9239 +vn 0.6840 0.2791 0.6739 +vn 0.9989 0.0183 0.0441 +vn 0.7317 -0.2608 -0.6297 +vn -0.7317 -0.2608 -0.6297 +vn -0.6770 -0.1436 0.7219 +vn 0.0000 -0.1951 0.9808 +vn 0.6770 -0.1436 0.7219 +vn 0.9988 -0.0095 0.0477 +vn 0.7251 0.1344 -0.6754 +vn 0.0000 0.1951 -0.9808 +vn -0.7251 0.1343 -0.6754 +vn -0.9988 -0.0095 0.0477 +vn -0.9627 -0.0712 -0.2611 +vn -0.6363 -0.7704 0.0393 +vn -0.6622 -0.7483 0.0399 +vn -0.8924 -0.1584 -0.4226 +vn 0.0578 -0.9534 0.2962 +vn 0.6533 -0.6533 0.3827 +vn 0.5438 -0.5438 0.6392 +vn -0.0697 -0.8808 0.4683 +vn 0.9534 -0.0578 0.2962 +vn 0.7704 0.6363 0.0393 +vn 0.7483 0.6622 0.0399 +vn 0.8808 0.0697 0.4683 +vn 0.0712 0.9627 -0.2611 +vn 0.1584 0.8924 -0.4226 +vn -0.6533 0.6533 -0.3827 +vn -0.5501 0.5501 -0.6284 +vn 0.7192 0.6934 0.0441 +vn 0.6811 0.2863 0.6739 +vn 0.2706 -0.2706 0.9239 +vn -0.2863 -0.6811 0.6739 +vn -0.6934 -0.7192 0.0441 +vn -0.7018 -0.3330 -0.6297 +vn -0.2706 0.2706 -0.9239 +vn 0.3330 0.7018 -0.6297 +vn -0.5174 -0.5174 -0.6816 +vn 0.5174 0.5174 -0.6816 +vn 0.7063 0.7063 0.0477 +vn 0.4837 0.4837 0.7294 +vn -0.4837 -0.4837 0.7294 +vn -0.7063 -0.7063 0.0477 +vn 0.3771 0.5802 0.7219 +vn -0.1379 0.1379 0.9808 +vn -0.5802 -0.3772 0.7219 +vn -0.7130 -0.6996 0.0477 +vn -0.4177 -0.6077 -0.6754 +vn 0.1379 -0.1379 -0.9808 +vn 0.6077 0.4177 -0.6754 +vn 0.6996 0.7130 0.0477 +vn 0.9627 0.0712 -0.2611 +vn 0.6363 0.7704 0.0393 +vn 0.6622 0.7483 0.0399 +vn 0.8924 0.1584 -0.4226 +vn -0.0578 0.9534 0.2962 +vn -0.6533 0.6533 0.3827 +vn -0.5438 0.5438 0.6392 +vn 0.0697 0.8808 0.4683 +vn -0.9534 0.0578 0.2962 +vn -0.7704 -0.6363 0.0393 +vn -0.7483 -0.6622 0.0399 +vn -0.8808 -0.0697 0.4683 +vn -0.0712 -0.9627 -0.2611 +vn -0.1584 -0.8924 -0.4226 +vn 0.6533 -0.6533 -0.3827 +vn 0.5501 -0.5501 -0.6284 +vn -0.7192 -0.6934 0.0441 +vn -0.6811 -0.2863 0.6739 +vn -0.2706 0.2706 0.9239 +vn 0.2863 0.6811 0.6739 +vn 0.6934 0.7192 0.0441 +vn 0.7018 0.3330 -0.6297 +vn 0.2706 -0.2706 -0.9239 +vn -0.3330 -0.7018 -0.6297 +vn -0.3771 -0.5802 0.7219 +vn 0.1379 -0.1379 0.9808 +vn 0.5802 0.3772 0.7219 +vn 0.7130 0.6996 0.0477 +vn 0.4177 0.6077 -0.6754 +vn -0.1379 0.1379 -0.9808 +vn -0.6077 -0.4177 -0.6754 +vn -0.6996 -0.7130 0.0477 +vn -0.0712 0.9627 -0.2611 +vn -0.7704 0.6363 0.0393 +vn -0.7483 0.6622 0.0399 +vn -0.1584 0.8924 -0.4226 +vn -0.9534 -0.0578 0.2962 +vn -0.6533 -0.6533 0.3827 +vn -0.5438 -0.5438 0.6392 +vn -0.8808 0.0697 0.4683 +vn -0.0578 -0.9534 0.2962 +vn 0.6363 -0.7704 0.0393 +vn 0.6622 -0.7483 0.0399 +vn 0.0697 -0.8808 0.4683 +vn 0.9627 -0.0712 -0.2611 +vn 0.8924 -0.1584 -0.4226 +vn 0.6533 0.6533 -0.3827 +vn 0.5501 0.5501 -0.6284 +vn 0.6934 -0.7192 0.0441 +vn 0.2863 -0.6811 0.6739 +vn -0.2706 -0.2706 0.9239 +vn -0.6811 0.2863 0.6739 +vn -0.7192 0.6934 0.0441 +vn -0.3330 0.7018 -0.6297 +vn 0.2706 0.2706 -0.9239 +vn 0.7018 -0.3330 -0.6297 +vn -0.5174 0.5174 -0.6816 +vn 0.5174 -0.5174 -0.6816 +vn 0.7063 -0.7063 0.0477 +vn 0.4837 -0.4837 0.7294 +vn -0.4837 0.4837 0.7294 +vn -0.7063 0.7063 0.0477 +vn 0.5802 -0.3772 0.7219 +vn 0.1379 0.1379 0.9808 +vn -0.3772 0.5802 0.7219 +vn -0.6996 0.7130 0.0477 +vn -0.6077 0.4177 -0.6754 +vn -0.1380 -0.1379 -0.9808 +vn 0.4177 -0.6077 -0.6754 +vn 0.7130 -0.6996 0.0477 +vn 0.0712 -0.9627 -0.2611 +vn 0.7704 -0.6363 0.0393 +vn 0.7483 -0.6622 0.0399 +vn 0.1584 -0.8924 -0.4226 +vn 0.9534 0.0578 0.2962 +vn 0.6533 0.6533 0.3827 +vn 0.5438 0.5438 0.6392 +vn 0.8808 -0.0697 0.4683 +vn 0.0578 0.9534 0.2962 +vn -0.6363 0.7704 0.0393 +vn -0.6622 0.7483 0.0399 +vn -0.0697 0.8808 0.4683 +vn -0.9627 0.0712 -0.2611 +vn -0.8924 0.1584 -0.4226 +vn -0.6533 -0.6533 -0.3827 +vn -0.5501 -0.5501 -0.6284 +vn -0.6934 0.7192 0.0441 +vn -0.2863 0.6811 0.6739 +vn 0.2706 0.2706 0.9239 +vn 0.6811 -0.2863 0.6739 +vn 0.7192 -0.6934 0.0441 +vn 0.3330 -0.7018 -0.6297 +vn -0.2706 -0.2706 -0.9239 +vn -0.7018 0.3330 -0.6297 +vn -0.5802 0.3772 0.7219 +vn -0.1379 -0.1379 0.9808 +vn 0.3771 -0.5802 0.7219 +vn 0.6996 -0.7130 0.0477 +vn 0.6077 -0.4177 -0.6754 +vn 0.1379 0.1379 -0.9808 +vn -0.4177 0.6077 -0.6754 +vn -0.7130 0.6996 0.0477 +vn 0.3215 -0.8985 -0.2988 +vn 0.8373 -0.3468 -0.4226 +vn 0.8627 0.4080 -0.2988 +vn -0.3215 0.8985 0.2988 +vn -0.8373 0.3468 0.4226 +vn -0.8627 -0.4080 0.2988 +vn -0.3215 0.8985 -0.2988 +vn -0.8373 0.3468 -0.4226 +vn -0.8627 -0.4080 -0.2988 +vn 0.3215 -0.8985 0.2988 +vn 0.8373 -0.3468 0.4226 +vn 0.8627 0.4080 0.2988 +vn -0.8985 -0.3215 -0.2988 +vn -0.3468 -0.8373 -0.4226 +vn 0.4080 -0.8627 -0.2988 +vn 0.8985 0.3215 0.2988 +vn 0.3468 0.8373 0.4226 +vn -0.4080 0.8627 0.2988 +vn 0.8985 0.3215 -0.2988 +vn 0.3468 0.8373 -0.4226 +vn -0.4080 0.8627 -0.2988 +vn -0.8985 -0.3215 0.2988 +vn -0.3468 -0.8373 0.4226 +vn 0.4080 -0.8627 0.2988 +vn -0.4080 -0.8627 -0.2988 +vn 0.3468 -0.8373 -0.4226 +vn 0.8985 -0.3215 -0.2988 +vn 0.4080 0.8627 0.2988 +vn -0.3468 0.8373 0.4226 +vn -0.8985 0.3215 0.2988 +vn 0.4080 0.8627 -0.2988 +vn -0.3468 0.8373 -0.4226 +vn -0.8985 0.3215 -0.2988 +vn -0.4080 -0.8627 0.2988 +vn 0.3468 -0.8373 0.4226 +vn 0.8985 -0.3215 0.2988 +vn -0.8627 0.4080 -0.2988 +vn -0.8373 -0.3468 -0.4226 +vn -0.3215 -0.8985 -0.2988 +vn 0.8627 -0.4080 0.2988 +vn 0.8373 0.3468 0.4226 +vn 0.3215 0.8985 0.2988 +vn 0.8627 -0.4080 -0.2988 +vn 0.8373 0.3468 -0.4226 +vn 0.3215 0.8985 -0.2988 +vn -0.8627 0.4080 0.2988 +vn -0.8373 -0.3468 0.4226 +vn -0.3215 -0.8985 0.2988 +vn -0.3162 0.3162 0.8944 +vn -0.4132 0.1711 0.8944 +vn 0.4132 -0.1711 0.8944 +vn 0.4472 -0.0000 0.8944 +vn -0.4472 -0.0000 0.8944 +vn 0.4132 0.1711 0.8944 +vn -0.4132 -0.1711 0.8944 +vn 0.3162 0.3162 0.8944 +vn -0.3162 -0.3162 0.8944 +vn 0.1711 0.4132 0.8944 +vn -0.1711 -0.4132 0.8944 +vn 0.0000 0.4472 0.8944 +vn -0.0000 -0.4472 0.8944 +vn 0.1711 -0.4132 0.8944 +vn -0.1711 0.4132 0.8944 +vn 0.3162 -0.3162 0.8944 +vn -0.8660 0.4532 0.2113 +vn 0.2588 0.8754 0.4082 +vn 0.5000 0.7849 0.3660 +vn 0.5000 -0.7849 -0.3660 +vn -0.8660 -0.4532 -0.2113 +vn 0.8660 0.4532 0.2113 +vn -0.5000 0.7849 0.3660 +vn -0.2588 0.8754 0.4082 +vn 0.7071 -0.6409 -0.2988 +vn 0.9659 -0.2346 -0.1094 +vn 0.8660 -0.4532 -0.2113 +vn 0.9891 0.0283 0.1448 +vn 0.6947 0.6947 0.1866 +vn 0.5000 0.5000 0.7071 +vn 0.8431 -0.0945 0.5294 +vn 0.0283 0.9891 0.1448 +vn -0.3812 0.9204 0.0866 +vn -0.4619 0.8446 0.2706 +vn -0.0945 0.8431 0.5294 +vn -0.0283 0.9891 0.1448 +vn 0.0945 0.8431 0.5294 +vn 0.4619 0.8446 0.2706 +vn 0.3812 0.9204 0.0866 +vn -0.9891 0.0283 0.1448 +vn -0.8431 -0.0945 0.5294 +vn -0.5000 0.5000 0.7071 +vn -0.6947 0.6947 0.1866 +vn -0.9204 -0.3812 0.0866 +vn -0.8446 -0.4619 0.2706 +vn 0.2384 0.6572 0.7150 +vn -0.7559 -0.5345 0.3780 +vn -0.6572 -0.2384 0.7150 +vn 0.5345 0.7559 0.3780 +vn 0.9204 -0.3812 0.0866 +vn 0.8446 -0.4619 0.2706 +vn -0.2384 0.6572 0.7150 +vn 0.6572 -0.2384 0.7150 +vn 0.7559 -0.5345 0.3780 +vn -0.5345 0.7559 0.3780 +s off +f 1//1 3//1 4//1 2//1 +f 5//2 6//2 8//2 7//2 +f 9//3 11//3 12//3 10//3 +f 13//4 14//4 16//4 15//4 +f 6//5 13//5 15//5 8//5 +f 4//6 16//6 14//6 2//6 +f 3//7 1//7 10//7 12//7 +f 5//8 7//8 11//8 9//8 +f 14//9 13//9 30//9 29//9 28//9 +f 13//9 6//9 32//9 31//9 30//9 +f 6//9 5//9 18//9 17//9 32//9 +f 5//9 9//9 20//9 19//9 18//9 +f 9//9 10//9 22//9 21//9 20//9 +f 10//9 1//9 24//9 23//9 22//9 +f 1//9 2//9 26//9 25//9 24//9 +f 2//9 14//9 28//9 27//9 26//9 +f 53//3 67//3 70//3 64//3 54//3 +f 58//6 60//6 63//6 69//6 56//6 50//6 +f 68//4 55//4 56//4 69//4 62//4 71//4 +f 49//1 57//1 58//1 50//1 +f 54//10 64//10 61//10 59//10 57//10 49//10 +f 58//11 57//11 59//11 60//11 +f 120//2 121//2 68//2 71//2 +f 74//3 76//3 75//3 73//3 +f 72//3 73//3 75//3 70//3 67//3 +f 76//12 74//12 77//12 78//12 +f 92//3 91//3 93//3 94//3 +f 84//3 83//3 85//3 86//3 +f 96//3 95//3 97//3 98//3 +f 80//3 88//3 87//3 79//3 +f 82//3 81//3 89//3 90//3 +f 80//3 82//3 90//3 92//3 94//3 84//3 86//3 96//3 98//3 88//3 +f 79//3 87//3 97//3 95//3 85//3 83//3 93//3 91//3 89//3 81//3 +f 95//1 96//1 112//1 111//1 +f 96//9 86//9 102//9 112//9 +f 94//2 93//2 109//2 110//2 +f 84//9 94//9 110//9 100//9 +f 104//3 114//3 113//3 103//3 +f 102//3 101//3 111//3 112//3 +f 100//3 110//3 109//3 99//3 +f 106//3 105//3 107//3 108//3 +f 88//9 98//9 114//9 104//9 +f 98//2 97//2 113//2 114//2 +f 97//13 87//13 103//13 113//13 +f 83//1 84//1 100//1 99//1 +f 85//13 95//13 111//13 101//13 +f 86//2 85//2 101//2 102//2 +f 93//13 83//13 99//13 109//13 +f 87//1 88//1 104//1 103//1 +f 89//13 91//13 107//13 105//13 +f 90//2 89//2 105//2 106//2 +f 92//9 90//9 106//9 108//9 +f 91//1 92//1 108//1 107//1 +f 62//13 69//13 116//13 115//13 +f 69//13 63//13 116//13 +f 74//13 73//13 117//13 118//13 +f 74//13 118//13 77//13 +f 71//14 62//14 115//14 120//14 +f 119//14 117//14 73//14 72//14 +f 122//2 119//2 72//2 67//2 +f 65//15 66//15 124//15 123//15 +f 66//15 68//15 121//15 124//15 +f 65//15 123//15 122//15 67//15 +f 465//16 464//16 481//16 482//16 +f 463//16 462//16 479//16 480//16 +f 461//16 468//16 477//16 478//16 +f 468//16 467//16 484//16 477//16 +f 466//16 465//16 482//16 483//16 +f 464//16 463//16 480//16 481//16 +f 462//16 461//16 478//16 479//16 +f 467//16 466//16 483//16 484//16 +f 492//16 491//16 490//16 489//16 488//16 487//16 486//16 485//16 +f 494//16 493//16 501//16 502//16 +f 493//16 500//16 508//16 501//16 +f 500//16 499//16 507//16 508//16 +f 499//16 498//16 506//16 507//16 +f 498//16 497//16 505//16 506//16 +f 497//16 496//16 504//16 505//16 +f 496//16 495//16 503//16 504//16 +f 495//16 494//16 502//16 503//16 +f 513//17 512//17 529//17 530//17 +f 511//17 510//17 527//17 528//17 +f 509//17 516//17 525//17 526//17 +f 516//17 515//17 532//17 525//17 +f 514//17 513//17 530//17 531//17 +f 512//17 511//17 528//17 529//17 +f 510//17 509//17 526//17 527//17 +f 515//18 514//18 531//18 532//18 +f 540//17 539//17 538//17 537//17 536//17 535//17 534//17 533//17 +f 542//17 541//17 549//17 550//17 +f 541//17 548//17 556//17 549//17 +f 548//17 547//17 555//17 556//17 +f 547//17 546//17 554//17 555//17 +f 546//17 545//17 553//17 554//17 +f 545//17 544//17 552//17 553//17 +f 544//17 543//17 551//17 552//17 +f 543//17 542//17 550//17 551//17 +f 561//19 560//19 577//19 578//19 +f 559//19 558//19 575//19 576//19 +f 557//19 564//19 573//19 574//19 +f 564//19 563//19 580//19 573//19 +f 562//19 561//19 578//19 579//19 +f 560//19 559//19 576//19 577//19 +f 558//19 557//19 574//19 575//19 +f 563//19 562//19 579//19 580//19 +f 588//19 587//19 586//19 585//19 584//19 583//19 582//19 581//19 +f 590//19 589//19 597//19 598//19 +f 589//19 596//19 604//19 597//19 +f 596//19 595//19 603//19 604//19 +f 595//19 594//19 602//19 603//19 +f 594//19 593//19 601//19 602//19 +f 593//19 592//19 600//19 601//19 +f 592//19 591//19 599//19 600//19 +f 591//19 590//19 598//19 599//19 +f 609//20 608//20 625//20 626//20 +f 607//20 606//20 623//20 624//20 +f 605//20 612//20 621//20 622//20 +f 612//20 611//20 628//20 621//20 +f 610//20 609//20 626//20 627//20 +f 608//20 607//20 624//20 625//20 +f 606//20 605//20 622//20 623//20 +f 611//20 610//20 627//20 628//20 +f 636//20 635//20 634//20 633//20 632//20 631//20 630//20 629//20 +f 638//20 637//20 645//20 646//20 +f 637//20 644//20 652//20 645//20 +f 644//20 643//20 651//20 652//20 +f 643//20 642//20 650//20 651//20 +f 642//20 641//20 649//20 650//20 +f 641//20 640//20 648//20 649//20 +f 640//20 639//20 647//20 648//20 +f 639//20 638//20 646//20 647//20 +f 657//21 656//21 673//21 674//21 +f 655//21 654//21 671//21 672//21 +f 653//21 660//21 669//21 670//21 +f 660//21 659//21 676//21 669//21 +f 658//21 657//21 674//21 675//21 +f 656//21 655//21 672//21 673//21 +f 654//21 653//21 670//21 671//21 +f 659//21 658//21 675//21 676//21 +f 684//21 683//21 682//21 681//21 680//21 679//21 678//21 677//21 +f 686//21 685//21 693//21 694//21 +f 685//21 692//21 700//21 693//21 +f 692//21 691//21 699//21 700//21 +f 691//22 690//22 698//22 699//22 +f 690//21 689//21 697//21 698//21 +f 689//21 688//21 696//21 697//21 +f 688//21 687//21 695//21 696//21 +f 687//21 686//21 694//21 695//21 +f 705//23 704//23 721//23 722//23 +f 703//23 702//23 719//23 720//23 +f 701//23 708//23 717//23 718//23 +f 708//23 707//23 724//23 717//23 +f 706//23 705//23 722//23 723//23 +f 704//23 703//23 720//23 721//23 +f 702//23 701//23 718//23 719//23 +f 707//23 706//23 723//23 724//23 +f 732//23 731//23 730//23 729//23 728//23 727//23 726//23 725//23 +f 734//23 733//23 741//23 742//23 +f 733//23 740//23 748//23 741//23 +f 740//23 739//23 747//23 748//23 +f 739//23 738//23 746//23 747//23 +f 738//23 737//23 745//23 746//23 +f 737//23 736//23 744//23 745//23 +f 736//23 735//23 743//23 744//23 +f 735//23 734//23 742//23 743//23 +f 753//24 752//24 769//24 770//24 +f 751//24 750//24 767//24 768//24 +f 749//24 756//24 765//24 766//24 +f 756//24 755//24 772//24 765//24 +f 754//24 753//24 770//24 771//24 +f 752//24 751//24 768//24 769//24 +f 750//24 749//24 766//24 767//24 +f 755//24 754//24 771//24 772//24 +f 780//24 779//24 778//24 777//24 776//24 775//24 774//24 773//24 +f 782//24 781//24 789//24 790//24 +f 781//24 788//24 796//24 789//24 +f 788//24 787//24 795//24 796//24 +f 787//24 786//24 794//24 795//24 +f 786//24 785//24 793//24 794//24 +f 785//24 784//24 792//24 793//24 +f 784//24 783//24 791//24 792//24 +f 783//24 782//24 790//24 791//24 +f 801//25 800//25 817//25 818//25 +f 799//25 798//25 815//25 816//25 +f 797//25 804//25 813//25 814//25 +f 804//25 803//25 820//25 813//25 +f 802//25 801//25 818//25 819//25 +f 800//25 799//25 816//25 817//25 +f 798//25 797//25 814//25 815//25 +f 803//25 802//25 819//25 820//25 +f 828//25 827//25 826//25 825//25 824//25 823//25 822//25 821//25 +f 830//25 829//25 837//25 838//25 +f 829//25 836//25 844//25 837//25 +f 836//25 835//25 843//25 844//25 +f 835//25 834//25 842//25 843//25 +f 834//25 833//25 841//25 842//25 +f 833//25 832//25 840//25 841//25 +f 832//25 831//25 839//25 840//25 +f 831//25 830//25 838//25 839//25 +f 858//26 857//26 859//26 860//26 +f 850//27 849//27 851//27 852//27 +f 848//28 847//28 852//28 851//28 +f 846//29 848//29 851//29 849//29 +f 845//30 846//30 849//30 850//30 +f 847//31 845//31 850//31 852//31 +f 856//32 855//32 860//32 859//32 +f 854//33 856//33 859//33 857//33 +f 853//34 854//34 857//34 858//34 +f 855//35 853//35 858//35 860//35 +f 874//36 873//36 875//36 876//36 +f 866//37 865//37 867//37 868//37 +f 864//38 863//38 868//38 867//38 +f 862//39 864//39 867//39 865//39 +f 861//40 862//40 865//40 866//40 +f 863//41 861//41 866//41 868//41 +f 872//42 871//42 876//42 875//42 +f 870//43 872//43 875//43 873//43 +f 869//44 870//44 873//44 874//44 +f 871//45 869//45 874//45 876//45 +f 890//46 889//46 891//46 892//46 +f 882//47 881//47 883//47 884//47 +f 880//48 879//48 884//48 883//48 +f 878//49 880//49 883//49 881//49 +f 877//50 878//50 881//50 882//50 +f 879//51 877//51 882//51 884//51 +f 888//52 887//52 892//52 891//52 +f 886//53 888//53 891//53 889//53 +f 885//54 886//54 889//54 890//54 +f 887//55 885//55 890//55 892//55 +f 906//56 905//56 907//56 908//56 +f 898//57 897//57 899//57 900//57 +f 896//58 895//58 900//58 899//58 +f 894//59 896//59 899//59 897//59 +f 893//60 894//60 897//60 898//60 +f 895//61 893//61 898//61 900//61 +f 904//62 903//62 908//62 907//62 +f 902//63 904//63 907//63 905//63 +f 901//64 902//64 905//64 906//64 +f 903//65 901//65 906//65 908//65 +f 922//66 921//66 923//66 924//66 +f 914//67 913//67 915//67 916//67 +f 912//68 911//68 916//68 915//68 +f 910//69 912//69 915//69 913//69 +f 909//70 910//70 913//70 914//70 +f 911//71 909//71 914//71 916//71 +f 920//72 919//72 924//72 923//72 +f 918//73 920//73 923//73 921//73 +f 917//74 918//74 921//74 922//74 +f 919//75 917//75 922//75 924//75 +f 938//76 937//76 939//76 940//76 +f 930//77 929//77 931//77 932//77 +f 928//78 927//78 932//78 931//78 +f 926//79 928//79 931//79 929//79 +f 925//80 926//80 929//80 930//80 +f 927//81 925//81 930//81 932//81 +f 936//82 935//82 940//82 939//82 +f 934//83 936//83 939//83 937//83 +f 933//84 934//84 937//84 938//84 +f 935//85 933//85 938//85 940//85 +f 954//86 953//86 955//86 956//86 +f 946//87 945//87 947//87 948//87 +f 944//88 943//88 948//88 947//88 +f 942//89 944//89 947//89 945//89 +f 941//90 942//90 945//90 946//90 +f 943//91 941//91 946//91 948//91 +f 952//92 951//92 956//92 955//92 +f 950//93 952//93 955//93 953//93 +f 949//94 950//94 953//94 954//94 +f 951//95 949//95 954//95 956//95 +f 970//96 969//96 971//96 972//96 +f 962//97 961//97 963//97 964//97 +f 960//98 959//98 964//98 963//98 +f 958//99 960//99 963//99 961//99 +f 957//100 958//100 961//100 962//100 +f 959//101 957//101 962//101 964//101 +f 968//102 967//102 972//102 971//102 +f 966//103 968//103 971//103 969//103 +f 965//104 966//104 969//104 970//104 +f 967//105 965//105 970//105 972//105 +f 1004//9 997//9 1013//9 1020//9 +f 1006//9 1007//9 1008//9 1009//9 1010//9 1011//9 1012//9 1005//9 +f 1003//9 1004//9 1020//9 1019//9 +f 1002//9 1003//9 1019//9 1018//9 +f 1001//9 1002//9 1018//9 1017//9 +f 1000//9 1001//9 1017//9 1016//9 +f 999//9 1000//9 1016//9 1015//9 +f 998//9 999//9 1015//9 1014//9 +f 997//9 998//9 1014//9 1013//9 +f 1028//9 1036//9 1030//9 1022//9 +f 1027//9 1035//9 1036//9 1028//9 +f 1026//9 1034//9 1035//9 1027//9 +f 1025//9 1033//9 1034//9 1026//9 +f 1024//9 1032//9 1033//9 1025//9 +f 1023//9 1031//9 1032//9 1024//9 +f 1021//9 1029//9 1031//9 1023//9 +f 1022//9 1030//9 1029//9 1021//9 +f 974//9 975//9 976//9 977//9 978//9 979//9 980//9 981//9 982//9 983//9 984//9 985//9 986//9 987//9 988//9 973//9 +f 15//13 1050//13 1051//13 1052//13 8//13 +f 16//13 1048//13 1049//13 1050//13 15//13 +f 4//13 1046//13 1047//13 1048//13 16//13 +f 3//13 1044//13 1045//13 1046//13 4//13 +f 12//13 1042//13 1043//13 1044//13 3//13 +f 11//13 1040//13 1041//13 1042//13 12//13 +f 7//13 1038//13 1039//13 1040//13 11//13 +f 8//13 1052//13 1037//13 1038//13 7//13 +f 52//9 51//9 1054//9 1053//9 1068//9 +f 55//9 52//9 1068//9 1067//9 1066//9 +f 56//9 55//9 1066//9 1065//9 1064//9 +f 50//9 56//9 1064//9 1063//9 1062//9 +f 49//9 50//9 1062//9 1061//9 1060//9 +f 54//9 49//9 1060//9 1059//9 1058//9 +f 53//9 54//9 1058//9 1057//9 1056//9 +f 51//9 53//9 1056//9 1055//9 1054//9 +f 1070//3 1069//3 1076//3 1075//3 1074//3 1073//3 1072//3 1071//3 +f 79//9 81//9 1079//9 1077//9 +f 81//1 82//1 1080//1 1079//1 +f 82//13 80//13 1078//13 1080//13 +f 80//2 79//2 1077//2 1078//2 +f 1081//4 1083//4 1084//4 1085//4 1086//4 1087//4 1088//4 1082//4 +f 1069//106 1082//106 1088//106 1076//106 +f 1075//107 1087//107 1086//107 1074//107 +f 1071//108 1083//108 1081//108 1070//108 +f 1076//109 1088//109 1087//109 1075//109 +f 1074//110 1086//110 1085//110 1073//110 +f 1072//111 1084//111 1083//111 1071//111 +f 1070//112 1081//112 1082//112 1069//112 +f 1089//9 1090//9 1092//9 1091//9 +f 1094//13 1093//13 1096//13 1095//13 +f 1092//6 1090//6 1095//6 1096//6 +f 1089//8 1091//8 1093//8 1094//8 +f 1091//5 1092//5 1096//5 1093//5 +f 1090//7 1089//7 1094//7 1095//7 +f 1097//9 1098//9 1100//9 1099//9 +f 1102//13 1101//13 1104//13 1103//13 +f 1100//8 1098//8 1103//8 1104//8 +f 1097//6 1099//6 1101//6 1102//6 +f 1099//7 1100//7 1104//7 1101//7 +f 1098//5 1097//5 1102//5 1103//5 +f 1105//9 1106//9 1108//9 1107//9 +f 1110//13 1109//13 1112//13 1111//13 +f 1108//7 1106//7 1111//7 1112//7 +f 1105//5 1107//5 1109//5 1110//5 +f 1107//6 1108//6 1112//6 1109//6 +f 1106//8 1105//8 1110//8 1111//8 +f 1113//9 1114//9 1116//9 1115//9 +f 1118//13 1117//13 1120//13 1119//13 +f 1116//5 1114//5 1119//5 1120//5 +f 1113//7 1115//7 1117//7 1118//7 +f 1115//8 1116//8 1120//8 1117//8 +f 1114//6 1113//6 1118//6 1119//6 +f 1121//9 1122//9 1124//9 1123//9 +f 1126//113 1125//113 1128//113 1127//113 +f 1124//6 1122//6 1127//6 1128//6 +f 1121//8 1123//8 1125//8 1126//8 +f 1123//5 1124//5 1128//5 1125//5 +f 1122//7 1121//7 1126//7 1127//7 +f 122//6 123//6 1135//6 1134//6 +f 124//7 121//7 1133//7 1136//7 +f 123//1 124//1 1136//1 1135//1 +f 1135//15 1136//15 1133//15 1134//15 +f 1140//4 1147//4 1146//4 1138//4 +f 1137//3 1145//3 1148//3 1139//3 +f 1138//114 1146//114 1145//114 1137//114 1142//114 1141//114 +f 1141//115 1142//115 1144//115 1143//115 +f 1137//116 1139//116 1144//116 1142//116 +f 1140//117 1138//117 1141//117 1143//117 +f 60//1 59//1 61//1 63//1 +f 1157//118 1158//118 1160//118 1159//118 +f 1154//4 1152//4 1162//4 1160//4 1158//4 1156//4 +f 1159//108 1160//108 1162//108 1161//108 +f 1161//119 1162//119 1152//119 1151//119 +f 1151//3 1153//3 1155//3 1157//3 1159//3 1161//3 +f 1150//1 1149//1 1163//1 1164//1 +f 1163//4 1149//4 1165//4 1167//4 +f 1150//3 1164//3 1168//3 1166//3 +f 1174//13 1173//13 1176//13 1175//13 +f 1172//4 1170//4 1175//4 1176//4 +f 1169//3 1171//3 1173//3 1174//3 +f 1171//2 1172//2 1176//2 1173//2 +f 1170//1 1169//1 1174//1 1175//1 +f 1182//13 1183//13 1184//13 1181//13 +f 1180//1 1179//1 1181//1 1184//1 +f 1177//2 1178//2 1183//2 1182//2 +f 1178//4 1180//4 1184//4 1183//4 +f 1179//3 1177//3 1182//3 1181//3 +f 1189//1 1195//1 1196//1 1190//1 +f 1187//120 1193//120 1194//120 1188//120 +f 1185//121 1191//121 1192//121 1186//121 +f 1190//122 1196//122 1191//122 1185//122 +f 1188//123 1194//123 1195//123 1189//123 +f 1186//2 1192//2 1193//2 1187//2 +f 1186//4 1187//4 1188//4 1189//4 1190//4 1185//4 +f 1198//2 1199//2 1205//2 1204//2 +f 1201//1 1202//1 1208//1 1207//1 +f 1199//120 1200//120 1206//120 1205//120 +f 1197//121 1198//121 1204//121 1203//121 +f 1202//122 1197//122 1203//122 1208//122 +f 1200//123 1201//123 1207//123 1206//123 +f 1207//3 1208//3 1214//3 1213//3 +f 1205//3 1206//3 1212//3 1211//3 +f 1203//3 1204//3 1210//3 1209//3 +f 1208//3 1203//3 1209//3 1214//3 +f 1206//3 1207//3 1213//3 1212//3 +f 1204//3 1205//3 1211//3 1210//3 +f 1214//122 1209//122 1215//122 1220//122 +f 1212//123 1213//123 1219//123 1218//123 +f 1210//2 1211//2 1217//2 1216//2 +f 1213//1 1214//1 1220//1 1219//1 +f 1211//120 1212//120 1218//120 1217//120 +f 1209//121 1210//121 1216//121 1215//121 +f 1217//4 1218//4 1224//4 1223//4 +f 1216//4 1217//4 1223//4 1222//4 +f 1215//4 1216//4 1222//4 1221//4 +f 1220//4 1215//4 1221//4 1226//4 +f 1219//4 1220//4 1226//4 1225//4 +f 1218//4 1219//4 1225//4 1224//4 +f 1224//123 1225//123 1231//123 1230//123 +f 1222//2 1223//2 1229//2 1228//2 +f 1225//1 1226//1 1232//1 1231//1 +f 1223//120 1224//120 1230//120 1229//120 +f 1221//121 1222//121 1228//121 1227//121 +f 1226//122 1221//122 1227//122 1232//122 +f 1229//3 1230//3 1236//3 1235//3 +f 1228//3 1229//3 1235//3 1234//3 +f 1227//3 1228//3 1234//3 1233//3 +f 1232//3 1227//3 1233//3 1238//3 +f 1231//3 1232//3 1238//3 1237//3 +f 1230//3 1231//3 1237//3 1236//3 +f 1234//2 1235//2 1241//2 1240//2 +f 1237//1 1238//1 1244//1 1243//1 +f 1235//120 1236//120 1242//120 1241//120 +f 1233//121 1234//121 1240//121 1239//121 +f 1238//122 1233//122 1239//122 1244//122 +f 1236//123 1237//123 1243//123 1242//123 +f 1239//124 1240//124 1246//124 1245//124 +f 1244//125 1239//125 1245//125 1250//125 +f 1242//126 1243//126 1249//126 1248//126 +f 1240//127 1241//127 1247//127 1246//127 +f 1243//128 1244//128 1250//128 1249//128 +f 1241//129 1242//129 1248//129 1247//129 +f 1246//4 1247//4 1248//4 1249//4 1250//4 1245//4 +f 1251//2 1252//2 1254//2 1253//2 +f 1269//3 1267//3 1272//3 1276//3 1274//3 +f 1253//13 1254//13 1258//13 1255//13 +f 1254//4 1252//4 1257//4 1258//4 +f 1251//3 1253//3 1255//3 1256//3 +f 1259//130 1260//130 1263//130 1264//130 +f 1261//3 1259//3 1264//3 1266//3 +f 1262//11 1261//11 1266//11 1265//11 +f 1260//4 1262//4 1265//4 1263//4 +f 1267//131 1269//131 1270//131 1268//131 +f 1274//13 1276//13 1275//13 1273//13 +f 1268//4 1270//4 1273//4 1275//4 1271//4 +f 1267//130 1268//130 1271//130 1272//130 +f 1272//132 1271//132 1275//132 1276//132 +f 1270//11 1269//11 1274//11 1273//11 +f 1282//130 1283//130 1284//130 1281//130 +f 1278//4 1280//4 1284//4 1283//4 +f 1279//3 1277//3 1282//3 1281//3 +f 1280//132 1279//132 1281//132 1284//132 +f 1277//131 1278//131 1283//131 1282//131 +f 1294//114 1295//114 1305//114 1304//114 1303//114 1302//114 1301//114 1300//114 1299//114 1298//114 1297//114 1296//114 +f 1295//3 1285//3 1306//3 1311//3 +f 1307//133 1293//133 1302//133 1312//133 +f 1302//114 1303//114 1313//114 1312//114 +f 1303//114 1304//114 1314//114 1313//114 +f 1304//114 1305//114 1315//114 1314//114 +f 1311//114 1315//114 1305//114 1295//114 +f 1285//134 1309//134 1310//134 1306//134 +f 1329//114 1330//114 1331//114 1332//114 1333//114 1334//114 1335//114 1336//114 1337//114 1338//114 1339//114 1328//114 +f 52//2 66//2 65//2 51//2 +f 1130//8 1347//8 1345//8 1132//8 +f 53//8 51//8 1344//8 1346//8 +f 65//8 67//8 1129//8 1131//8 +f 53//8 1346//8 1347//8 1130//8 1129//8 67//8 +f 51//8 65//8 1131//8 1132//8 1345//8 1344//8 +f 55//5 1341//5 1340//5 52//5 +f 68//5 1343//5 1341//5 55//5 +f 68//5 66//5 1342//5 1343//5 +f 52//5 1340//5 1342//5 66//5 +f 1343//135 1342//135 1353//135 1352//135 +f 1129//5 1130//5 1350//5 1348//5 +f 1347//136 1443//136 1440//136 1345//136 +f 1349//8 1348//8 1350//8 1351//8 +f 1344//13 1441//13 1442//13 1346//13 +f 1354//5 1352//5 1353//5 1355//5 +f 1130//137 1132//137 1351//137 1350//137 +f 1346//5 1442//5 1443//5 1347//5 +f 1131//138 1129//138 1348//138 1349//138 +f 1132//7 1131//7 1349//7 1351//7 +f 1355//6 1353//6 1342//6 1340//6 +f 1352//8 1354//8 1341//8 1343//8 +f 1363//3 1393//3 1482//3 1483//3 +f 1393//139 1392//139 1490//139 1482//139 +f 1378//4 1370//4 1498//4 1362//4 +f 1364//140 1363//140 1483//140 1484//140 +f 1362//4 1498//4 1461//4 1468//4 +f 1482//141 1490//141 1475//141 1476//141 +f 1364//4 1392//4 1386//4 +f 1386//132 1399//132 1363//132 1364//132 +f 1399//3 1393//3 1363//3 +f 1370//4 1378//4 1385//4 +f 1385//132 1384//132 1371//132 1370//132 +f 1384//3 1377//3 1371//3 +f 1408//13 1407//13 1399//13 1386//13 +f 1400//9 1406//9 1392//9 1393//9 +f 1421//4 1414//4 1385//4 1378//4 +f 1415//3 1422//3 1377//3 1384//3 +f 1407//3 1400//3 1393//3 1399//3 +f 1414//13 1415//13 1384//13 1385//13 +f 1422//9 1421//9 1378//9 1377//9 +f 1406//4 1408//4 1386//4 1392//4 +f 1377//139 1378//139 1362//139 1491//139 +f 1392//4 1364//4 1484//4 1490//4 +f 1722//2 1709//2 1727//2 1725//2 +f 1440//8 1443//8 1442//8 1441//8 +f 1345//7 1440//7 1441//7 1344//7 +f 1354//13 1355//13 1340//13 1341//13 +f 1498//142 1497//142 1462//142 1461//142 +f 1497//3 1491//3 1469//3 1462//3 +f 1483//3 1482//3 1476//3 1460//3 +f 1491//141 1362//141 1468//141 1469//141 +f 1490//4 1484//4 1454//4 1475//4 +f 1484//142 1483//142 1460//142 1454//142 +f 1371//3 1377//3 1491//3 1497//3 +f 1370//140 1371//140 1497//140 1498//140 +f 1516//4 1517//4 1519//4 1518//4 +f 1524//3 1525//3 1527//3 1526//3 +f 1518//143 1519//143 1523//143 1520//143 +f 1517//144 1516//144 1521//144 1522//144 +f 1519//145 1517//145 1522//145 1523//145 +f 1516//146 1518//146 1520//146 1521//146 +f 1526//114 1527//114 1531//114 1528//114 +f 1525//134 1524//134 1529//134 1530//134 +f 1527//115 1525//115 1530//115 1531//115 +f 1524//147 1526//147 1528//147 1529//147 +f 1532//1 1533//1 1535//1 1534//1 +f 1540//2 1541//2 1543//2 1542//2 +f 1534//148 1535//148 1539//148 1536//148 +f 1533//149 1532//149 1537//149 1538//149 +f 1535//150 1533//150 1538//150 1539//150 +f 1532//151 1534//151 1536//151 1537//151 +f 1542//152 1543//152 1547//152 1544//152 +f 1541//153 1540//153 1545//153 1546//153 +f 1543//154 1541//154 1546//154 1547//154 +f 1540//155 1542//155 1544//155 1545//155 +f 1548//6 1549//6 1551//6 1550//6 +f 1556//8 1557//8 1559//8 1558//8 +f 1550//156 1551//156 1555//156 1552//156 +f 1549//157 1548//157 1553//157 1554//157 +f 1551//158 1549//158 1554//158 1555//158 +f 1548//159 1550//159 1552//159 1553//159 +f 1558//160 1559//160 1563//160 1560//160 +f 1557//161 1556//161 1561//161 1562//161 +f 1559//162 1557//162 1562//162 1563//162 +f 1556//163 1558//163 1560//163 1561//163 +f 1564//7 1565//7 1567//7 1566//7 +f 1572//5 1573//5 1575//5 1574//5 +f 1566//164 1567//164 1571//164 1568//164 +f 1565//165 1564//165 1569//165 1570//165 +f 1567//166 1565//166 1570//166 1571//166 +f 1564//167 1566//167 1568//167 1569//167 +f 1574//168 1575//168 1579//168 1576//168 +f 1573//169 1572//169 1577//169 1578//169 +f 1575//170 1573//170 1578//170 1579//170 +f 1572//171 1574//171 1576//171 1577//171 +f 1580//172 1581//172 1583//172 1582//172 +f 1588//173 1589//173 1591//173 1590//173 +f 1582//174 1583//174 1587//174 1584//174 +f 1581//175 1580//175 1585//175 1586//175 +f 1583//176 1581//176 1586//176 1587//176 +f 1580//177 1582//177 1584//177 1585//177 +f 1590//178 1591//178 1595//178 1592//178 +f 1589//179 1588//179 1593//179 1594//179 +f 1591//180 1589//180 1594//180 1595//180 +f 1588//181 1590//181 1592//181 1593//181 +f 1596//182 1597//182 1599//182 1598//182 +f 1604//183 1605//183 1607//183 1606//183 +f 1598//184 1599//184 1603//184 1600//184 +f 1597//185 1596//185 1601//185 1602//185 +f 1599//186 1597//186 1602//186 1603//186 +f 1596//187 1598//187 1600//187 1601//187 +f 1606//188 1607//188 1611//188 1608//188 +f 1605//189 1604//189 1609//189 1610//189 +f 1607//190 1605//190 1610//190 1611//190 +f 1604//191 1606//191 1608//191 1609//191 +f 1612//192 1613//192 1615//192 1614//192 +f 1620//193 1621//193 1623//193 1622//193 +f 1614//194 1615//194 1619//194 1616//194 +f 1613//195 1612//195 1617//195 1618//195 +f 1615//196 1613//196 1618//196 1619//196 +f 1612//197 1614//197 1616//197 1617//197 +f 1622//198 1623//198 1627//198 1624//198 +f 1621//199 1620//199 1625//199 1626//199 +f 1623//200 1621//200 1626//200 1627//200 +f 1620//201 1622//201 1624//201 1625//201 +f 1628//202 1629//202 1631//202 1630//202 +f 1636//203 1637//203 1639//203 1638//203 +f 1630//204 1631//204 1635//204 1632//204 +f 1629//205 1628//205 1633//205 1634//205 +f 1631//206 1629//206 1634//206 1635//206 +f 1628//207 1630//207 1632//207 1633//207 +f 1638//208 1639//208 1643//208 1640//208 +f 1637//209 1636//209 1641//209 1642//209 +f 1639//210 1637//210 1642//210 1643//210 +f 1636//211 1638//211 1640//211 1641//211 +f 1644//212 1645//212 1647//212 1646//212 +f 1652//213 1653//213 1655//213 1654//213 +f 1646//214 1647//214 1651//214 1648//214 +f 1645//215 1644//215 1649//215 1650//215 +f 1647//216 1645//216 1650//216 1651//216 +f 1644//217 1646//217 1648//217 1649//217 +f 1654//218 1655//218 1659//218 1656//218 +f 1653//219 1652//219 1657//219 1658//219 +f 1655//220 1653//220 1658//220 1659//220 +f 1652//221 1654//221 1656//221 1657//221 +f 1660//222 1661//222 1663//222 1662//222 +f 1668//223 1669//223 1671//223 1670//223 +f 1662//224 1663//224 1667//224 1664//224 +f 1661//225 1660//225 1665//225 1666//225 +f 1663//226 1661//226 1666//226 1667//226 +f 1660//227 1662//227 1664//227 1665//227 +f 1670//228 1671//228 1675//228 1672//228 +f 1669//229 1668//229 1673//229 1674//229 +f 1671//230 1669//230 1674//230 1675//230 +f 1668//231 1670//231 1672//231 1673//231 +f 1676//232 1677//232 1679//232 1678//232 +f 1684//233 1685//233 1687//233 1686//233 +f 1678//234 1679//234 1683//234 1680//234 +f 1677//235 1676//235 1681//235 1682//235 +f 1679//236 1677//236 1682//236 1683//236 +f 1676//237 1678//237 1680//237 1681//237 +f 1686//238 1687//238 1691//238 1688//238 +f 1685//239 1684//239 1689//239 1690//239 +f 1687//240 1685//240 1690//240 1691//240 +f 1684//241 1686//241 1688//241 1689//241 +f 1692//242 1693//242 1695//242 1694//242 +f 1700//243 1701//243 1703//243 1702//243 +f 1694//244 1695//244 1699//244 1696//244 +f 1693//245 1692//245 1697//245 1698//245 +f 1695//246 1693//246 1698//246 1699//246 +f 1692//247 1694//247 1696//247 1697//247 +f 1702//248 1703//248 1707//248 1704//248 +f 1701//249 1700//249 1705//249 1706//249 +f 1703//250 1701//250 1706//250 1707//250 +f 1700//251 1702//251 1704//251 1705//251 +f 1710//122 1711//122 1713//122 1712//122 +f 1709//9 1708//9 1726//9 1727//9 +f 1712//1 1713//1 1715//1 1714//1 +f 1708//1 1723//1 1724//1 1726//1 +f 1714//123 1715//123 1717//123 1716//123 +f 1723//13 1722//13 1725//13 1724//13 +f 1716//120 1717//120 1719//120 1718//120 +f 1713//4 1711//4 1721//4 1719//4 1717//4 1715//4 +f 1709//3 1722//3 1723//3 1708//3 +f 1718//2 1719//2 1721//2 1720//2 +f 1720//121 1721//121 1711//121 1710//121 +f 1710//3 1712//3 1714//3 1716//3 1718//3 1720//3 +f 1726//6 1724//6 1728//6 1729//6 +f 1726//9 1729//9 1727//9 +f 1725//13 1728//13 1724//13 +f 1728//13 1725//13 1730//13 1733//13 +f 1733//1 1730//1 1736//1 1737//1 +f 1729//4 1728//4 1733//4 1732//4 +f 1727//9 1729//9 1732//9 1731//9 +f 1725//3 1727//3 1731//3 1730//3 +f 1733//4 1735//4 1732//4 +f 1731//3 1734//3 1730//3 +f 1732//130 1735//130 1734//130 1731//130 +f 1738//140 1739//140 1743//140 1742//140 +f 1735//4 1733//4 1737//4 1739//4 +f 1734//2 1735//2 1739//2 1738//2 +f 1730//3 1734//3 1738//3 1736//3 +f 1741//4 1745//4 1743//4 +f 1736//3 1738//3 1742//3 1740//3 +f 1737//139 1736//139 1740//139 1741//139 +f 1739//4 1737//4 1741//4 1743//4 +f 1743//132 1745//132 1744//132 1742//132 +f 1740//3 1744//3 1748//3 1747//3 +f 1740//3 1742//3 1744//3 +f 1751//9 1747//9 1752//9 1755//9 +f 1741//9 1740//9 1747//9 1746//9 +f 1745//4 1741//4 1746//4 1749//4 +f 1744//13 1745//13 1749//13 1748//13 +f 1749//13 1750//13 1748//13 +f 1746//6 1751//6 1750//6 1749//6 +f 1747//9 1751//9 1746//9 +f 1747//2 1748//2 1753//2 1752//2 +f 1748//13 1750//13 1754//13 1753//13 +f 1750//1 1751//1 1755//1 1754//1 +s 1 +f 17//252 18//253 34//253 33//252 +f 32//254 17//252 33//252 48//254 +f 31//255 32//254 48//254 47//255 +f 30//256 31//255 47//255 46//256 +f 29//257 30//256 46//256 45//257 +f 28//258 29//257 45//257 44//258 +f 27//259 28//258 44//258 43//259 +f 26//260 27//259 43//259 42//260 +f 25//261 26//260 42//260 41//261 +f 24//262 25//261 41//261 40//262 +f 23//263 24//262 40//262 39//263 +f 22//264 23//263 39//263 38//264 +f 21//265 22//264 38//264 37//265 +f 20//266 21//265 37//265 36//266 +f 19//267 20//266 36//266 35//267 +f 18//253 19//267 35//267 34//253 +f 129//268 128//269 137//270 136//271 +f 127//272 126//273 139//274 138//275 +f 125//276 132//277 133//278 140//279 +f 132//277 131//280 134//281 133//278 +f 130//282 129//268 136//271 135//283 +f 128//269 127//272 138//275 137//270 +f 126//273 125//276 140//279 139//274 +f 131//280 130//282 135//283 134//281 +f 140//279 133//278 141//284 148//285 +f 138//275 139//274 147//286 146//287 +f 136//271 137//270 145//288 144//289 +f 134//281 135//283 143//290 142//291 +f 139//274 140//279 148//285 147//286 +f 137//270 138//275 146//287 145//288 +f 135//283 136//271 144//289 143//290 +f 133//278 134//281 142//291 141//284 +f 143//290 144//289 152//292 151//13 +f 141//284 142//291 150//293 149//294 +f 148//285 141//284 149//294 156//295 +f 146//287 147//286 155//9 154//296 +f 144//289 145//288 153//297 152//292 +f 142//291 143//290 151//13 150//293 +f 147//286 148//285 156//295 155//9 +f 145//288 146//287 154//296 153//297 +f 155//9 156//295 164//298 163//299 +f 153//297 154//296 162//300 161//301 +f 151//13 152//292 160//302 159//303 +f 149//294 150//293 158//304 157//305 +f 156//295 149//294 157//305 164//298 +f 154//296 155//9 163//299 162//300 +f 152//292 153//297 161//301 160//302 +f 150//293 151//13 159//303 158//304 +f 33//1 34//306 166//306 165//1 +f 48//307 33//1 165//1 180//307 +f 41//2 42//308 174//308 173//2 +f 34//306 35//6 167//6 166//306 +f 42//308 43//8 175//8 174//308 +f 35//6 36//309 168//309 167//6 +f 43//8 44//310 176//310 175//8 +f 36//309 37//4 169//4 168//309 +f 44//310 45//3 177//3 176//310 +f 37//4 38//311 170//311 169//4 +f 45//3 46//312 178//312 177//3 +f 38//311 39//5 171//5 170//311 +f 46//312 47//7 179//7 178//312 +f 39//5 40//313 172//313 171//5 +f 47//7 48//307 180//307 179//7 +f 40//313 41//2 173//2 172//313 +f 185//314 184//315 193//316 192//317 +f 183//318 182//319 195//320 194//321 +f 181//322 188//323 189//324 196//325 +f 188//323 187//326 190//327 189//324 +f 186//328 185//314 192//317 191//329 +f 184//315 183//318 194//321 193//316 +f 182//319 181//322 196//325 195//320 +f 187//326 186//328 191//329 190//327 +f 196//325 189//324 197//330 204//331 +f 194//321 195//320 203//332 202//333 +f 192//317 193//316 201//334 200//335 +f 190//327 191//329 199//336 198//337 +f 195//320 196//325 204//331 203//332 +f 193//316 194//321 202//333 201//334 +f 191//329 192//317 200//335 199//336 +f 189//324 190//327 198//337 197//330 +f 199//336 200//335 208//293 207//13 +f 197//330 198//337 206//292 205//297 +f 204//331 197//330 205//297 212//296 +f 202//333 203//332 211//9 210//295 +f 200//335 201//334 209//294 208//293 +f 198//337 199//336 207//13 206//292 +f 203//332 204//331 212//296 211//9 +f 201//334 202//333 210//295 209//294 +f 211//9 212//296 220//338 219//339 +f 209//294 210//295 218//340 217//341 +f 207//13 208//293 216//342 215//343 +f 205//297 206//292 214//344 213//345 +f 212//296 205//297 213//345 220//338 +f 210//295 211//9 219//339 218//340 +f 208//293 209//294 217//341 216//342 +f 206//292 207//13 215//343 214//344 +f 225//346 224//347 233//348 232//349 +f 223//350 222//107 235//351 234//352 +f 221//353 228//354 229//355 236//356 +f 228//354 227//357 230//358 229//355 +f 226//108 225//346 232//349 231//359 +f 224//347 223//350 234//352 233//348 +f 222//107 221//353 236//356 235//351 +f 227//357 226//108 231//359 230//358 +f 236//356 229//355 237//360 244//361 +f 234//352 235//351 243//110 242//362 +f 232//349 233//348 241//363 240//364 +f 230//358 231//359 239//112 238//365 +f 235//351 236//356 244//361 243//110 +f 233//348 234//352 242//362 241//363 +f 231//359 232//349 240//364 239//112 +f 229//355 230//358 238//365 237//360 +f 239//112 240//364 248//366 247//13 +f 237//360 238//365 246//367 245//368 +f 244//361 237//360 245//368 252//369 +f 242//362 243//110 251//9 250//370 +f 240//364 241//363 249//371 248//366 +f 238//365 239//112 247//13 246//367 +f 243//110 244//361 252//369 251//9 +f 241//363 242//362 250//370 249//371 +f 251//9 252//369 260//372 259//373 +f 249//371 250//370 258//374 257//375 +f 247//13 248//366 256//376 255//377 +f 245//368 246//367 254//378 253//379 +f 252//369 245//368 253//379 260//372 +f 250//370 251//9 259//373 258//374 +f 248//366 249//371 257//375 256//376 +f 246//367 247//13 255//377 254//378 +f 265//380 264//381 273//382 272//383 +f 263//384 262//111 275//385 274//386 +f 261//387 268//388 269//389 276//390 +f 268//388 267//391 270//392 269//389 +f 266//109 265//380 272//383 271//393 +f 264//381 263//384 274//386 273//382 +f 262//111 261//387 276//390 275//385 +f 267//391 266//109 271//393 270//392 +f 276//390 269//389 277//394 284//395 +f 274//386 275//385 283//396 282//397 +f 272//383 273//382 281//398 280//399 +f 270//392 271//393 279//106 278//400 +f 275//385 276//390 284//395 283//396 +f 273//382 274//386 282//397 281//398 +f 271//393 272//383 280//399 279//106 +f 269//389 270//392 278//400 277//394 +f 279//106 280//399 288//367 287//13 +f 277//394 278//400 286//366 285//371 +f 284//395 277//394 285//371 292//370 +f 282//397 283//396 291//9 290//369 +f 280//399 281//398 289//368 288//367 +f 278//400 279//106 287//13 286//366 +f 283//396 284//395 292//370 291//9 +f 281//398 282//397 290//369 289//368 +f 291//9 292//370 300//401 299//402 +f 289//368 290//369 298//403 297//404 +f 287//13 288//367 296//405 295//406 +f 285//371 286//366 294//407 293//408 +f 292//370 285//371 293//408 300//401 +f 290//369 291//9 299//402 298//403 +f 288//367 289//368 297//404 296//405 +f 286//366 287//13 295//406 294//407 +f 305//409 304//410 313//411 312//412 +f 303//413 302//414 315//415 314//416 +f 301//417 308//418 309//419 316//420 +f 308//418 307//421 310//422 309//419 +f 306//423 305//409 312//412 311//424 +f 304//410 303//413 314//416 313//411 +f 302//414 301//417 316//420 315//415 +f 307//421 306//423 311//424 310//422 +f 316//420 309//419 317//425 324//426 +f 314//416 315//415 323//427 322//428 +f 312//412 313//411 321//429 320//430 +f 310//422 311//424 319//431 318//432 +f 315//415 316//420 324//426 323//427 +f 313//411 314//416 322//428 321//429 +f 311//424 312//412 320//430 319//431 +f 309//419 310//422 318//432 317//425 +f 319//431 320//430 328//433 327//13 +f 317//425 318//432 326//434 325//435 +f 324//426 317//425 325//435 332//436 +f 322//428 323//427 331//9 330//437 +f 320//430 321//429 329//438 328//433 +f 318//432 319//431 327//13 326//434 +f 323//427 324//426 332//436 331//9 +f 321//429 322//428 330//437 329//438 +f 331//9 332//436 340//439 339//440 +f 329//438 330//437 338//441 337//442 +f 327//13 328//433 336//443 335//444 +f 325//435 326//434 334//445 333//446 +f 332//436 325//435 333//446 340//439 +f 330//437 331//9 339//440 338//441 +f 328//433 329//438 337//442 336//443 +f 326//434 327//13 335//444 334//445 +f 345//447 344//448 353//449 352//450 +f 343//451 342//452 355//453 354//454 +f 341//455 348//456 349//457 356//458 +f 348//456 347//459 350//460 349//457 +f 346//461 345//447 352//450 351//462 +f 344//448 343//451 354//454 353//449 +f 342//452 341//455 356//458 355//453 +f 347//459 346//461 351//462 350//460 +f 356//458 349//457 357//463 364//464 +f 354//454 355//453 363//465 362//466 +f 352//450 353//449 361//467 360//468 +f 350//460 351//462 359//469 358//470 +f 355//453 356//458 364//464 363//465 +f 353//449 354//454 362//466 361//467 +f 351//462 352//450 360//468 359//469 +f 349//457 350//460 358//470 357//463 +f 359//469 360//468 368//434 367//13 +f 357//463 358//470 366//433 365//438 +f 364//464 357//463 365//438 372//437 +f 362//466 363//465 371//9 370//436 +f 360//468 361//467 369//435 368//434 +f 358//470 359//469 367//13 366//433 +f 363//465 364//464 372//437 371//9 +f 361//467 362//466 370//436 369//435 +f 371//9 372//437 380//471 379//472 +f 369//435 370//436 378//473 377//474 +f 367//13 368//434 376//475 375//476 +f 365//438 366//433 374//477 373//478 +f 372//437 365//438 373//478 380//471 +f 370//436 371//9 379//472 378//473 +f 368//434 369//435 377//474 376//475 +f 366//433 367//13 375//476 374//477 +f 385//479 384//480 393//481 392//482 +f 383//483 382//484 395//485 394//486 +f 381//487 388//488 389//489 396//490 +f 388//488 387//491 390//492 389//489 +f 386//493 385//479 392//482 391//494 +f 384//480 383//483 394//486 393//481 +f 382//484 381//487 396//490 395//485 +f 387//491 386//493 391//494 390//492 +f 396//490 389//489 397//495 404//496 +f 394//486 395//485 403//497 402//498 +f 392//482 393//481 401//499 400//500 +f 390//492 391//494 399//501 398//502 +f 395//485 396//490 404//496 403//497 +f 393//481 394//486 402//498 401//499 +f 391//494 392//482 400//500 399//501 +f 389//489 390//492 398//502 397//495 +f 399//501 400//500 408//503 407//13 +f 397//495 398//502 406//504 405//505 +f 404//496 397//495 405//505 412//506 +f 402//498 403//497 411//9 410//507 +f 400//500 401//499 409//508 408//503 +f 398//502 399//501 407//13 406//504 +f 403//497 404//496 412//506 411//9 +f 401//499 402//498 410//507 409//508 +f 411//9 412//506 420//509 419//510 +f 409//508 410//507 418//511 417//512 +f 407//13 408//503 416//513 415//514 +f 405//505 406//504 414//515 413//516 +f 412//506 405//505 413//516 420//509 +f 410//507 411//9 419//510 418//511 +f 408//503 409//508 417//512 416//513 +f 406//504 407//13 415//514 414//515 +f 425//517 424//518 433//519 432//520 +f 423//521 422//522 435//523 434//524 +f 421//525 428//526 429//527 436//528 +f 428//526 427//529 430//530 429//527 +f 426//531 425//517 432//520 431//532 +f 424//518 423//521 434//524 433//519 +f 422//522 421//525 436//528 435//523 +f 427//529 426//531 431//532 430//530 +f 436//528 429//527 437//533 444//534 +f 434//524 435//523 443//535 442//536 +f 432//520 433//519 441//537 440//538 +f 430//530 431//532 439//539 438//540 +f 435//523 436//528 444//534 443//535 +f 433//519 434//524 442//536 441//537 +f 431//532 432//520 440//538 439//539 +f 429//527 430//530 438//540 437//533 +f 439//539 440//538 448//504 447//13 +f 437//533 438//540 446//503 445//508 +f 444//534 437//533 445//508 452//507 +f 442//536 443//535 451//9 450//506 +f 440//538 441//537 449//505 448//504 +f 438//540 439//539 447//13 446//503 +f 443//535 444//534 452//507 451//9 +f 441//537 442//536 450//506 449//505 +f 451//9 452//507 460//541 459//542 +f 449//505 450//506 458//543 457//544 +f 447//13 448//504 456//545 455//546 +f 445//508 446//503 454//547 453//548 +f 452//507 445//508 453//548 460//541 +f 450//506 451//9 459//542 458//543 +f 448//504 449//505 457//544 456//545 +f 446//503 447//13 455//546 454//547 +f 469//307 470//549 467//549 468//307 +f 471//550 472//551 465//551 466//550 +f 473//313 474//552 463//552 464//313 +f 475//553 476//554 461//554 462//553 +f 470//549 471//550 466//550 467//549 +f 472//551 473//313 464//313 465//551 +f 474//552 475//553 462//553 463//552 +f 476//554 469//307 468//307 461//554 +f 491//552 492//313 501//313 508//552 +f 478//554 477//307 493//307 494//554 +f 490//553 491//552 508//552 507//553 +f 477//307 484//549 500//549 493//307 +f 489//554 490//553 507//553 506//554 +f 484//549 483//550 499//550 500//549 +f 488//307 489//554 506//554 505//307 +f 483//550 482//551 498//551 499//550 +f 479//553 478//554 494//554 495//553 +f 492//313 485//551 502//551 501//313 +f 480//552 479//553 495//553 496//552 +f 485//551 486//550 503//550 502//551 +f 481//313 480//552 496//552 497//313 +f 486//550 487//549 504//549 503//550 +f 482//551 481//313 497//313 498//551 +f 487//549 488//307 505//307 504//549 +f 517//313 518//555 515//555 516//313 +f 519//556 520//557 513//557 514//556 +f 521//307 522//558 511//558 512//307 +f 523//559 524//560 509//560 510//559 +f 518//555 519//556 514//556 515//555 +f 520//557 521//307 512//307 513//557 +f 522//558 523//559 510//559 511//558 +f 524//560 517//313 516//313 509//560 +f 539//558 540//307 549//307 556//558 +f 526//560 525//313 541//313 542//560 +f 538//559 539//558 556//558 555//559 +f 525//313 532//555 548//555 541//313 +f 537//560 538//559 555//559 554//560 +f 532//555 531//556 547//556 548//555 +f 536//313 537//560 554//560 553//313 +f 531//556 530//557 546//557 547//556 +f 527//559 526//560 542//560 543//559 +f 540//307 533//557 550//557 549//307 +f 528//558 527//559 543//559 544//558 +f 533//557 534//556 551//556 550//557 +f 529//307 528//558 544//558 545//307 +f 534//556 535//555 552//555 551//556 +f 530//557 529//307 545//307 546//557 +f 535//555 536//313 553//313 552//555 +f 565//310 566//561 563//561 564//310 +f 567//562 568//563 561//563 562//562 +f 569//309 570//564 559//564 560//309 +f 571//565 572//566 557//566 558//565 +f 566//561 567//562 562//562 563//561 +f 568//563 569//309 560//309 561//563 +f 570//564 571//565 558//565 559//564 +f 572//566 565//310 564//310 557//566 +f 587//564 588//309 597//309 604//564 +f 574//566 573//310 589//310 590//566 +f 586//565 587//564 604//564 603//565 +f 573//310 580//561 596//561 589//310 +f 585//566 586//565 603//565 602//566 +f 580//561 579//562 595//562 596//561 +f 584//310 585//566 602//566 601//310 +f 579//562 578//563 594//563 595//562 +f 575//565 574//566 590//566 591//565 +f 588//309 581//563 598//563 597//309 +f 576//564 575//565 591//565 592//564 +f 581//563 582//562 599//562 598//563 +f 577//309 576//564 592//564 593//309 +f 582//562 583//561 600//561 599//562 +f 578//563 577//309 593//309 594//563 +f 583//561 584//310 601//310 600//561 +f 613//309 614//567 611//567 612//309 +f 615//568 616//569 609//569 610//568 +f 617//310 618//570 607//570 608//310 +f 619//571 620//572 605//572 606//571 +f 614//567 615//568 610//568 611//567 +f 616//569 617//310 608//310 609//569 +f 618//570 619//571 606//571 607//570 +f 620//572 613//309 612//309 605//572 +f 635//570 636//310 645//310 652//570 +f 622//572 621//309 637//309 638//572 +f 634//571 635//570 652//570 651//571 +f 621//309 628//567 644//567 637//309 +f 633//572 634//571 651//571 650//572 +f 628//567 627//568 643//568 644//567 +f 632//309 633//572 650//572 649//309 +f 627//568 626//569 642//569 643//568 +f 623//571 622//572 638//572 639//571 +f 636//310 629//569 646//569 645//310 +f 624//570 623//571 639//571 640//570 +f 629//569 630//568 647//568 646//569 +f 625//310 624//570 640//570 641//310 +f 630//568 631//567 648//567 647//568 +f 626//569 625//310 641//310 642//569 +f 631//567 632//309 649//309 648//567 +f 661//312 662//573 659//573 660//312 +f 663//574 664//575 657//575 658//574 +f 665//311 666//576 655//576 656//311 +f 667//577 668//578 653//578 654//577 +f 662//573 663//574 658//574 659//573 +f 664//575 665//311 656//311 657//575 +f 666//576 667//577 654//577 655//576 +f 668//578 661//312 660//312 653//578 +f 683//576 684//311 693//311 700//576 +f 670//578 669//312 685//312 686//578 +f 682//577 683//576 700//576 699//577 +f 669//312 676//573 692//573 685//312 +f 681//578 682//577 699//577 698//578 +f 676//573 675//574 691//574 692//573 +f 680//312 681//578 698//578 697//312 +f 675//574 674//575 690//575 691//574 +f 671//577 670//578 686//578 687//577 +f 684//311 677//575 694//575 693//311 +f 672//576 671//577 687//577 688//576 +f 677//575 678//574 695//574 694//575 +f 673//311 672//576 688//576 689//311 +f 678//574 679//573 696//573 695//574 +f 674//575 673//311 689//311 690//575 +f 679//573 680//312 697//312 696//573 +f 709//311 710//579 707//579 708//311 +f 711//580 712//581 705//581 706//580 +f 713//312 714//582 703//582 704//312 +f 715//583 716//584 701//584 702//583 +f 710//579 711//580 706//580 707//579 +f 712//581 713//312 704//312 705//581 +f 714//582 715//583 702//583 703//582 +f 716//584 709//311 708//311 701//584 +f 731//582 732//312 741//312 748//582 +f 718//584 717//311 733//311 734//584 +f 730//583 731//582 748//582 747//583 +f 717//311 724//579 740//579 733//311 +f 729//584 730//583 747//583 746//584 +f 724//579 723//580 739//580 740//579 +f 728//311 729//584 746//584 745//311 +f 723//580 722//581 738//581 739//580 +f 719//583 718//584 734//584 735//583 +f 732//312 725//581 742//581 741//312 +f 720//582 719//583 735//583 736//582 +f 725//581 726//580 743//580 742//581 +f 721//312 720//582 736//582 737//312 +f 726//580 727//579 744//579 743//580 +f 722//581 721//312 737//312 738//581 +f 727//579 728//311 745//311 744//579 +f 757//308 758//585 755//585 756//308 +f 759//586 760//587 753//587 754//586 +f 761//306 762//588 751//588 752//306 +f 763//589 764//590 749//590 750//589 +f 758//585 759//586 754//586 755//585 +f 760//587 761//306 752//306 753//587 +f 762//588 763//589 750//589 751//588 +f 764//590 757//308 756//308 749//590 +f 779//588 780//306 789//306 796//588 +f 766//590 765//308 781//308 782//590 +f 778//589 779//588 796//588 795//589 +f 765//308 772//585 788//585 781//308 +f 777//590 778//589 795//589 794//590 +f 772//585 771//586 787//586 788//585 +f 776//308 777//590 794//590 793//308 +f 771//586 770//587 786//587 787//586 +f 767//589 766//590 782//590 783//589 +f 780//306 773//587 790//587 789//306 +f 768//588 767//589 783//589 784//588 +f 773//587 774//586 791//586 790//587 +f 769//306 768//588 784//588 785//306 +f 774//586 775//585 792//585 791//586 +f 770//587 769//306 785//306 786//587 +f 775//585 776//308 793//308 792//585 +f 805//306 806//591 803//591 804//306 +f 807//592 808//593 801//593 802//592 +f 809//308 810//594 799//594 800//308 +f 811//595 812//596 797//596 798//595 +f 806//591 807//592 802//592 803//591 +f 808//593 809//308 800//308 801//593 +f 810//594 811//595 798//595 799//594 +f 812//596 805//306 804//306 797//596 +f 827//594 828//308 837//308 844//594 +f 814//596 813//306 829//306 830//596 +f 826//595 827//594 844//594 843//595 +f 813//306 820//591 836//591 829//306 +f 825//596 826//595 843//595 842//596 +f 820//591 819//592 835//592 836//591 +f 824//306 825//596 842//596 841//306 +f 819//592 818//593 834//593 835//592 +f 815//595 814//596 830//596 831//595 +f 828//308 821//593 838//593 837//308 +f 816//594 815//595 831//595 832//594 +f 821//593 822//592 839//592 838//593 +f 817//308 816//594 832//594 833//308 +f 822//592 823//591 840//591 839//592 +f 818//593 817//308 833//308 834//593 +f 823//591 824//306 841//306 840//591 +f 175//597 176//598 984//598 983//597 +f 168//599 169//600 977//600 976//599 +f 176//598 177//601 985//601 984//598 +f 169//600 170//602 978//602 977//600 +f 177//601 178//603 986//603 985//601 +f 170//602 171//604 979//604 978//602 +f 178//603 179//605 987//605 986//603 +f 171//604 172//606 980//606 979//604 +f 179//605 180//607 988//607 987//605 +f 172//606 173//608 981//608 980//606 +f 165//609 166//610 974//610 973//609 +f 180//607 165//609 973//609 988//607 +f 173//608 174//611 982//611 981//608 +f 166//610 167//612 975//612 974//610 +f 174//611 175//597 983//597 982//611 +f 167//612 168//599 976//599 975//612 +f 996//311 989//313 997//313 1004//311 +f 994//306 995//309 1003//309 1002//306 +f 992//312 993//307 1001//307 1000//312 +f 990//308 991//310 999//310 998//308 +f 995//309 996//311 1004//311 1003//309 +f 993//307 994//306 1002//306 1001//307 +f 991//310 992//312 1000//312 999//310 +f 989//313 990//308 998//308 997//313 +f 1020//311 1013//313 1030//313 1036//311 +f 1006//306 1005//307 1022//307 1021//306 +f 1005//307 1012//312 1028//312 1022//307 +f 1019//309 1020//311 1036//311 1035//309 +f 1012//312 1011//310 1027//310 1028//312 +f 1018//306 1019//309 1035//309 1034//306 +f 1011//310 1010//308 1026//308 1027//310 +f 1017//307 1018//306 1034//306 1033//307 +f 1013//313 1014//308 1029//308 1030//313 +f 1007//309 1006//306 1021//306 1023//309 +f 1014//308 1015//310 1031//310 1029//308 +f 1008//311 1007//309 1023//309 1024//311 +f 1015//310 1016//312 1032//312 1031//310 +f 1009//313 1008//311 1024//311 1025//313 +f 1016//312 1017//307 1033//307 1032//312 +f 1010//308 1009//313 1025//313 1026//308 +f 1045//1 1044//307 1060//307 1061//1 +f 1038//308 1037//2 1053//2 1054//308 +f 1037//2 1052//313 1068//313 1053//2 +f 1046//306 1045//1 1061//1 1062//306 +f 1039//8 1038//308 1054//308 1055//8 +f 1047//6 1046//306 1062//306 1063//6 +f 1040//310 1039//8 1055//8 1056//310 +f 1048//309 1047//6 1063//6 1064//309 +f 1041//3 1040//310 1056//310 1057//3 +f 1049//4 1048//309 1064//309 1065//4 +f 1042//312 1041//3 1057//3 1058//312 +f 1050//311 1049//4 1065//4 1066//311 +f 1043//7 1042//312 1058//312 1059//7 +f 1051//5 1050//311 1066//311 1067//5 +f 1044//307 1043//7 1059//7 1060//307 +f 1052//313 1051//5 1067//5 1068//313 +f 1291//147 1290//133 1299//133 1300//147 +f 1288//3 1287//613 1296//613 1297//3 +f 1311//614 1306//614 1310//615 1315//615 +f 1292//616 1291//147 1300//147 1301//616 +f 1289//617 1288//3 1297//3 1298//617 +f 1315//615 1310//615 1309//618 1314//618 +f 1286//619 1285//620 1295//620 1294//619 +f 1293//621 1292//616 1301//616 1302//621 +f 1290//133 1289//617 1298//617 1299//133 +f 1314//618 1309//618 1308//4 1313//4 +f 1287//613 1286//619 1294//619 1296//613 +f 1307//622 1312//622 1313//4 1308//4 +f 1322//115 1323//615 1335//615 1334//115 +f 1319//3 1320//613 1332//613 1331//3 +f 1326//623 1327//616 1339//616 1338//623 +f 1316//147 1317//133 1329//133 1328//147 +f 1323//615 1324//618 1336//618 1335//615 +f 1320//613 1321//619 1333//619 1332//613 +f 1327//616 1316//147 1328//147 1339//616 +f 1317//133 1318//617 1330//617 1329//133 +f 1324//618 1325//4 1337//4 1336//618 +f 1321//619 1322//115 1334//115 1333//619 +f 1318//617 1319//3 1331//3 1330//617 +f 1325//4 1326//623 1338//623 1337//4 +f 1357//624 1358//625 1446//626 1447//627 +f 1445//628 1444//629 1449//630 1450//631 +f 1366//632 1373//633 1372//634 1365//635 +f 1360//636 1368//637 1367//638 1359//639 +f 1359//639 1367//638 1373//633 1366//632 +f 1361//640 1369//641 1368//637 1360//636 +f 1367//638 1374//465 1380//642 1373//633 +f 1369//641 1376//643 1375//644 1368//637 +f 1373//633 1380//642 1379//645 1372//634 +f 1368//637 1375//644 1374//465 1367//638 +f 1388//632 1395//633 1394//634 1387//635 +f 1382//636 1390//637 1389//638 1381//639 +f 1381//639 1389//638 1395//633 1388//632 +f 1383//640 1391//641 1390//637 1382//636 +f 1389//638 1396//465 1402//642 1395//633 +f 1391//641 1398//643 1397//644 1390//637 +f 1395//633 1402//642 1401//645 1394//634 +f 1390//637 1397//644 1396//465 1389//638 +f 1410//632 1417//633 1416//634 1409//635 +f 1404//636 1412//637 1411//638 1403//639 +f 1403//639 1411//638 1417//633 1410//632 +f 1405//640 1413//641 1412//637 1404//636 +f 1411//638 1418//465 1424//642 1417//633 +f 1413//641 1420//643 1419//644 1412//637 +f 1417//633 1424//642 1423//645 1416//634 +f 1412//637 1419//644 1418//465 1411//638 +f 1366//632 1365//635 1428//313 1429//2 +f 1388//632 1387//635 1433//313 1434//2 +f 1359//639 1366//632 1429//2 1425//8 +f 1360//636 1359//639 1425//8 1426//3 +f 1410//632 1409//635 1438//313 1439//2 +f 1381//639 1388//632 1434//2 1430//8 +f 1361//640 1360//636 1426//3 1427//312 +f 1382//636 1381//639 1430//8 1431//3 +f 1403//639 1410//632 1439//2 1435//8 +f 1404//636 1403//639 1435//8 1436//3 +f 1383//640 1382//636 1431//3 1432//312 +f 1405//640 1404//636 1436//3 1437//312 +f 1358//625 1445//628 1450//631 1446//626 +f 1356//646 1357//624 1447//627 1448//647 +f 1446//626 1450//631 1456//648 1451//535 +f 1448//647 1447//627 1452//649 1453//650 +f 1450//631 1449//630 1455//651 1456//648 +f 1447//627 1446//626 1451//535 1452//649 +f 1464//628 1463//629 1470//630 1471//631 +f 1458//624 1457//625 1465//626 1466//627 +f 1457//625 1464//628 1471//631 1465//626 +f 1459//646 1458//624 1466//627 1467//647 +f 1465//626 1471//631 1478//648 1472//535 +f 1467//647 1466//627 1473//649 1474//650 +f 1471//631 1470//630 1477//651 1478//648 +f 1466//627 1465//626 1472//535 1473//649 +f 1486//628 1485//629 1492//630 1493//631 +f 1480//624 1479//625 1487//626 1488//627 +f 1479//625 1486//628 1493//631 1487//626 +f 1481//646 1480//624 1488//627 1489//647 +f 1487//626 1493//631 1500//648 1494//535 +f 1489//647 1488//627 1495//649 1496//650 +f 1493//631 1492//630 1499//651 1500//648 +f 1488//627 1487//626 1494//535 1495//649 +f 1445//628 1505//2 1504//308 1444//629 +f 1464//628 1510//2 1509//308 1463//629 +f 1358//625 1501//5 1505//2 1445//628 +f 1357//624 1502//4 1501//5 1358//625 +f 1486//628 1515//2 1514//308 1485//629 +f 1457//625 1506//5 1510//2 1464//628 +f 1356//646 1503//309 1502//4 1357//624 +f 1458//624 1507//4 1506//5 1457//625 +f 1479//625 1511//5 1515//2 1486//628 +f 1480//624 1512//4 1511//5 1479//625 +f 1459//646 1508//309 1507//4 1458//624 +f 1481//646 1513//309 1512//4 1480//624 From 17eb7b7eb2bcab5066c0895bcc4461000177915a Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 19 May 2023 14:36:48 +0200 Subject: [PATCH 050/432] cryo cannon UV template --- .../com/hbm/main/ModEventHandlerClient.java | 1 + .../assets/hbm/models/weapons/cryo_cannon.obj | 4644 +++++------------ .../textures/models/weapons/cryo_cannon.png | Bin 0 -> 2251 bytes 3 files changed, 1282 insertions(+), 3363 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon.png diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 3d88bed9c..0b0967b59 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -1253,6 +1253,7 @@ public class ModEventHandlerClient { case 9: main.splashText = "There are bugs under your skin!"; break; case 10: main.splashText = "Fentanyl!"; break; case 11: main.splashText = "Do drugs!"; break; + case 12: main.splashText = "post this on r/feedthememes for free internet points!"; break; } } } diff --git a/src/main/resources/assets/hbm/models/weapons/cryo_cannon.obj b/src/main/resources/assets/hbm/models/weapons/cryo_cannon.obj index 64c8e3755..db707ffc8 100644 --- a/src/main/resources/assets/hbm/models/weapons/cryo_cannon.obj +++ b/src/main/resources/assets/hbm/models/weapons/cryo_cannon.obj @@ -1,1334 +1,485 @@ # Blender v2.79 (sub 0) OBJ File: 'cryo_cannon.blend' # www.blender.org o Plane -v -0.500000 0.000000 0.125000 -v 0.500000 0.000000 0.125000 +v -0.500000 -0.000000 0.125000 v -0.500000 0.000000 -0.375000 v 0.500000 0.000000 -0.375000 +v 0.500000 -0.000000 0.125000 v -0.500000 2.500000 0.125000 v 0.500000 2.500000 0.125000 -v -0.500000 2.500000 -0.375000 v 0.500000 2.500000 -0.375000 +v -0.500000 2.500000 -0.375000 v -1.250000 1.750000 0.125000 -v -1.250000 0.750000 0.125000 v -1.250000 1.750000 -0.375000 v -1.250000 0.750000 -0.375000 +v -1.250000 0.750000 0.125000 v 1.250000 1.750000 0.125000 v 1.250000 0.750000 0.125000 -v 1.250000 1.750000 -0.375000 v 1.250000 0.750000 -0.375000 -v -0.000000 2.375000 0.125000 -v -0.430519 2.289364 0.125000 -v -0.795495 2.045495 0.125000 -v -1.039364 1.680519 0.125000 -v -1.125000 1.250000 0.125000 -v -1.039364 0.819481 0.125000 -v -0.795495 0.454505 0.125000 -v -0.430519 0.210636 0.125000 -v -0.000000 0.125000 0.125000 -v 0.430519 0.210635 0.125000 -v 0.795495 0.454505 0.125000 -v 1.039364 0.819481 0.125000 -v 1.125000 1.250000 0.125000 +v 1.250000 1.750000 -0.375000 v 1.039364 1.680519 0.125000 -v 0.795495 2.045496 0.125000 +v 1.125000 1.250000 0.125000 +v 1.039364 0.819481 0.125000 v 0.430518 2.289365 0.125000 -v -0.000000 2.250000 -0.125000 -v -0.382683 2.173880 -0.125000 -v -0.707107 1.957107 -0.125000 -v -0.923880 1.632683 -0.125000 -v -1.000000 1.250000 -0.125000 -v -0.923880 0.867316 -0.125000 -v -0.707107 0.542893 -0.125000 -v -0.382684 0.326120 -0.125000 -v -0.000000 0.250000 -0.125000 -v 0.382683 0.326120 -0.125000 -v 0.707106 0.542893 -0.125000 -v 0.923879 0.867316 -0.125000 -v 1.000000 1.250000 -0.125000 -v 0.923879 1.632684 -0.125000 -v 0.707106 1.957107 -0.125000 -v 0.382683 2.173880 -0.125000 -v -0.500000 0.000000 -0.625000 -v 0.500000 0.000000 -0.625000 -v -0.500000 2.500000 -0.625000 -v 0.500000 2.500000 -0.625000 +v 0.795495 2.045496 0.125000 +v -0.430519 2.289364 0.125000 +v 0.000000 2.375000 0.125000 +v -1.039364 1.680519 0.125000 +v -0.795495 2.045495 0.125000 +v -1.039364 0.819481 0.125000 +v -1.125000 1.250000 0.125000 +v -0.430519 0.210636 0.125000 +v -0.795495 0.454505 0.125000 +v 0.430519 0.210635 0.125000 +v 0.000000 0.125000 0.125000 +v 0.795495 0.454505 0.125000 v -1.250000 1.750000 -0.625000 -v -1.250000 0.750000 -0.625000 -v 1.250000 1.750000 -0.625000 -v 1.250000 0.750000 -0.625000 -v -0.500000 0.000000 -1.625000 -v 0.500000 0.000000 -1.625000 -v -1.000000 0.500000 -2.125000 -v 1.000000 0.500000 -2.125000 -v -1.000000 0.500000 -2.625000 -v 1.250000 1.625000 -3.750000 -v 1.000000 0.500000 -3.750000 -v -1.250000 0.751000 -2.625000 -v -0.500000 2.500000 -2.625000 -v 0.500000 2.500000 -2.625000 v -1.250000 1.750000 -3.000000 -v 1.250000 1.750000 -3.000000 -v 1.250000 0.750000 -3.750000 v -1.250000 1.376000 -2.625000 +v -1.250000 0.751000 -2.625000 +v -1.250000 0.750000 -0.625000 +v 0.500000 0.000000 -1.625000 +v 1.000000 0.500000 -2.125000 +v 1.000000 0.500000 -3.750000 +v 1.250000 0.750000 -3.750000 +v 1.250000 0.750000 -0.625000 +v 0.500000 0.000000 -0.625000 +v 1.250000 1.750000 -3.000000 +v 1.250000 1.750000 -0.625000 +v 1.250000 1.625000 -3.750000 v 1.250000 1.750000 -3.375000 -v -1.250000 1.750000 -3.375000 -v -1.250000 1.625000 -3.750000 +v -0.500000 0.000000 -0.625000 +v -0.500000 0.000000 -1.625000 +v -1.000000 0.500000 -2.625000 +v -1.000000 0.500000 -2.125000 +v 1.000000 1.750000 -3.375000 +v 1.000000 1.750000 -3.000000 v -1.250000 0.750000 -3.750000 -v -1.250000 1.376000 -3.625000 v -1.250000 0.751000 -3.625000 +v -1.250000 1.376000 -3.625000 +v -1.250000 1.625000 -3.750000 +v -1.250000 1.750000 -3.375000 v -1.000000 0.500000 -3.750000 v -1.000000 0.501000 -3.625000 -v -1.312500 1.376000 -2.625000 -v -1.312500 1.376000 -3.625000 -v -1.312500 0.251000 -2.625000 -v -1.312500 0.251000 -3.625000 -v -1.312500 0.751000 -2.750000 -v -1.312500 0.751000 -3.500000 -v -1.312500 0.876000 -2.750000 -v -1.312500 0.876000 -3.500000 -v -1.312500 1.251000 -2.750000 -v -1.312500 1.251000 -3.500000 -v -1.312500 0.376000 -2.750000 -v -1.312500 0.376000 -3.500000 -v -1.312500 0.501000 -2.750000 v -1.312500 0.501000 -3.500000 +v -1.312500 0.501000 -2.750000 v -1.312500 0.626000 -2.750000 v -1.312500 0.626000 -3.500000 -v -1.312500 1.001000 -2.750000 +v -1.312500 0.751000 -3.500000 +v -1.312500 0.751000 -2.750000 +v -1.312500 0.876000 -2.750000 +v -1.312500 0.876000 -3.500000 v -1.312500 1.001000 -3.500000 +v -1.312500 1.001000 -2.750000 v -1.312500 1.126000 -2.750000 v -1.312500 1.126000 -3.500000 -v -1.187500 0.751000 -2.750000 -v -1.187500 0.751000 -3.500000 -v -1.187500 0.876000 -2.750000 +v -1.312500 1.376000 -3.625000 +v -1.312500 1.251000 -3.500000 +v -1.312500 1.251000 -2.750000 +v -1.312500 1.376000 -2.625000 +v -1.312500 0.251000 -3.625000 +v -1.312500 0.251000 -2.625000 +v -1.312500 0.376000 -2.750000 +v -1.312500 0.376000 -3.500000 +v -1.187500 1.001000 -3.500000 +v -1.187500 1.001000 -2.750000 v -1.187500 0.876000 -3.500000 -v -1.187500 1.251000 -2.750000 -v -1.187500 1.251000 -3.500000 -v -1.187500 0.376000 -2.750000 -v -1.187500 0.376000 -3.500000 -v -1.187500 0.501000 -2.750000 -v -1.187500 0.501000 -3.500000 v -1.187500 0.626000 -2.750000 v -1.187500 0.626000 -3.500000 -v -1.187500 1.001000 -2.750000 -v -1.187500 1.001000 -3.500000 -v -1.187500 1.126000 -2.750000 +v -1.187500 0.751000 -3.500000 +v -1.187500 1.251000 -3.500000 v -1.187500 1.126000 -3.500000 -v 1.000000 1.625000 -3.750000 +v -1.187500 1.126000 -2.750000 +v -1.187500 1.251000 -2.750000 +v -1.187500 0.876000 -2.750000 +v -1.187500 0.751000 -2.750000 +v -1.187500 0.376000 -3.500000 +v -1.187500 0.376000 -2.750000 +v -1.187500 0.501000 -2.750000 +v -1.187500 0.501000 -3.500000 v 1.000000 0.750000 -3.750000 +v 1.000000 1.625000 -3.750000 v -1.000000 1.625000 -3.750000 v -1.000000 0.750000 -3.750000 v -1.000000 1.750000 -3.375000 -v 1.000000 1.750000 -3.375000 -v 1.000000 1.750000 -3.000000 v -1.000000 1.750000 -3.000000 -v -0.500000 2.250000 -2.750000 +v -0.500000 2.500000 -2.625000 +v 0.500000 2.500000 -2.625000 v 0.500000 2.250000 -2.750000 -v -0.264515 1.360485 -0.750000 -v -0.218750 1.250000 -0.750000 -v -0.264515 1.139515 -0.750000 -v -0.375000 1.093750 -0.750000 -v -0.485486 1.139515 -0.750000 -v -0.531250 1.250000 -0.750000 -v -0.485486 1.360485 -0.750000 -v -0.375000 1.406250 -0.750000 -v -0.512294 1.406250 -0.418544 -v -0.590419 1.360485 -0.496669 -v -0.622779 1.250000 -0.529029 -v -0.590419 1.139515 -0.496669 -v -0.512294 1.093750 -0.418544 -v -0.434169 1.139515 -0.340419 -v -0.401808 1.250000 -0.308058 -v -0.434169 1.360485 -0.340419 -v -0.664367 1.406250 -0.316931 -v -0.706648 1.360485 -0.419007 -v -0.724162 1.250000 -0.461288 -v -0.706648 1.139515 -0.419007 -v -0.664367 1.093750 -0.316931 -v -0.622086 1.139515 -0.214856 -v -0.604573 1.250000 -0.172575 -v -0.622086 1.360485 -0.214856 -v -0.843750 1.406250 -0.281250 -v -0.843750 1.360485 -0.391735 -v -0.843750 1.250000 -0.437500 -v -0.843750 1.139515 -0.391735 -v -0.843750 1.093750 -0.281250 -v -0.843750 1.139515 -0.170765 -v -0.843750 1.250000 -0.125000 -v -0.843750 1.360485 -0.170765 -v -1.023133 1.406250 -0.316932 -v -0.980852 1.360485 -0.419007 -v -0.963339 1.250000 -0.461288 -v -0.980852 1.139515 -0.419007 -v -1.023133 1.093750 -0.316932 -v -1.065414 1.139515 -0.214856 -v -1.082927 1.250000 -0.172575 -v -1.065414 1.360485 -0.214856 -v -0.000000 2.250000 -0.500000 -v -0.382683 2.173880 -0.500000 -v -0.707107 1.957107 -0.500000 -v -0.923880 1.632683 -0.500000 -v -1.000000 1.250000 -0.500000 -v -0.923880 0.867316 -0.500000 -v -0.707107 0.542893 -0.500000 -v -0.382684 0.326120 -0.500000 -v -0.000000 0.250000 -0.500000 -v 0.382683 0.326120 -0.500000 -v 0.707106 0.542893 -0.500000 -v 0.923879 0.867316 -0.500000 -v 1.000000 1.250000 -0.500000 -v 0.923879 1.632684 -0.500000 -v 0.707106 1.957107 -0.500000 -v 0.382683 2.173880 -0.500000 -v 0.264515 1.139515 -0.750000 -v 0.218750 1.250000 -0.750000 -v 0.264515 1.360485 -0.750000 -v 0.375000 1.406250 -0.750000 -v 0.485485 1.360485 -0.750000 -v 0.531250 1.250000 -0.750000 -v 0.485485 1.139515 -0.750000 -v 0.375000 1.093750 -0.750000 -v 0.512294 1.093750 -0.418544 -v 0.590419 1.139515 -0.496669 -v 0.622779 1.250000 -0.529029 -v 0.590419 1.360485 -0.496669 -v 0.512294 1.406250 -0.418544 -v 0.434169 1.360485 -0.340419 -v 0.401808 1.250000 -0.308058 -v 0.434169 1.139515 -0.340419 -v 0.664367 1.093750 -0.316931 -v 0.706648 1.139514 -0.419007 -v 0.724161 1.250000 -0.461288 -v 0.706648 1.360485 -0.419007 -v 0.664367 1.406250 -0.316931 -v 0.622086 1.360485 -0.214856 -v 0.604573 1.250000 -0.172575 -v 0.622086 1.139515 -0.214856 -v 0.843750 1.093750 -0.281250 -v 0.843750 1.139514 -0.391735 -v 0.843750 1.250000 -0.437500 -v 0.843750 1.360485 -0.391735 -v 0.843750 1.406250 -0.281250 -v 0.843750 1.360485 -0.170765 -v 0.843750 1.250000 -0.125000 -v 0.843750 1.139514 -0.170765 -v 1.023133 1.093750 -0.316932 -v 0.980852 1.139514 -0.419007 -v 0.963338 1.250000 -0.461288 -v 0.980852 1.360485 -0.419007 -v 1.023133 1.406250 -0.316932 -v 1.065414 1.360485 -0.214856 -v 1.082927 1.250000 -0.172575 -v 1.065414 1.139514 -0.214856 -v 0.110485 1.514515 -0.750000 -v -0.000000 1.468750 -0.750000 -v -0.110486 1.514515 -0.750000 -v -0.156250 1.625000 -0.750000 -v -0.110485 1.735486 -0.750000 -v -0.000000 1.781250 -0.750000 -v 0.110485 1.735486 -0.750000 -v 0.156250 1.625000 -0.750000 -v 0.156250 1.762294 -0.418544 -v 0.110485 1.840419 -0.496669 -v -0.000000 1.872779 -0.529029 -v -0.110485 1.840419 -0.496669 -v -0.156250 1.762294 -0.418544 -v -0.110485 1.684169 -0.340419 -v -0.000000 1.651808 -0.308058 -v 0.110485 1.684169 -0.340419 -v 0.156250 1.914367 -0.316931 -v 0.110485 1.956648 -0.419007 -v -0.000000 1.974162 -0.461288 -v -0.110485 1.956648 -0.419007 -v -0.156250 1.914367 -0.316931 -v -0.110485 1.872086 -0.214856 -v -0.000000 1.854573 -0.172575 -v 0.110485 1.872086 -0.214856 -v 0.156250 2.093750 -0.281250 -v 0.110485 2.093750 -0.391735 -v -0.000000 2.093750 -0.437500 -v -0.110485 2.093750 -0.391735 -v -0.156250 2.093750 -0.281250 -v -0.110485 2.093750 -0.170765 -v -0.000000 2.093750 -0.125000 -v 0.110485 2.093750 -0.170765 -v 0.156250 2.273133 -0.316932 -v 0.110485 2.230852 -0.419007 -v -0.000000 2.213339 -0.461288 -v -0.110485 2.230852 -0.419007 -v -0.156250 2.273133 -0.316932 -v -0.110485 2.315414 -0.214856 -v 0.000000 2.332927 -0.172575 -v 0.110485 2.315414 -0.214856 -v -0.110486 0.985485 -0.750000 -v -0.000000 1.031250 -0.750000 -v 0.110485 0.985485 -0.750000 -v 0.156250 0.875000 -0.750000 -v 0.110485 0.764515 -0.750000 -v -0.000000 0.718750 -0.750000 -v -0.110486 0.764515 -0.750000 -v -0.156250 0.875000 -0.750000 -v -0.156250 0.737706 -0.418544 -v -0.110486 0.659581 -0.496669 -v -0.000000 0.627221 -0.529029 -v 0.110485 0.659581 -0.496669 -v 0.156250 0.737706 -0.418544 -v 0.110485 0.815831 -0.340419 -v -0.000000 0.848192 -0.308058 -v -0.110486 0.815831 -0.340419 -v -0.156250 0.585633 -0.316931 -v -0.110486 0.543352 -0.419007 -v -0.000000 0.525838 -0.461288 -v 0.110485 0.543352 -0.419007 -v 0.156250 0.585633 -0.316931 -v 0.110485 0.627914 -0.214856 -v -0.000000 0.645427 -0.172575 -v -0.110486 0.627914 -0.214856 -v -0.156250 0.406250 -0.281250 -v -0.110486 0.406250 -0.391735 -v -0.000000 0.406250 -0.437500 -v 0.110485 0.406250 -0.391735 -v 0.156250 0.406250 -0.281250 -v 0.110485 0.406250 -0.170765 -v -0.000000 0.406250 -0.125000 -v -0.110486 0.406250 -0.170765 -v -0.156250 0.226867 -0.316932 -v -0.110486 0.269148 -0.419007 -v -0.000000 0.286661 -0.461288 -v 0.110485 0.269148 -0.419007 -v 0.156250 0.226867 -0.316932 -v 0.110485 0.184586 -0.214856 -v -0.000000 0.167073 -0.172575 -v -0.110486 0.184586 -0.214856 -v -0.108915 1.515165 -0.750000 -v -0.154680 1.404680 -0.750000 -v -0.265165 1.358915 -0.750000 -v -0.375651 1.404680 -0.750000 -v -0.421415 1.515165 -0.750000 -v -0.375651 1.625650 -0.750000 -v -0.265165 1.671415 -0.750000 -v -0.154680 1.625651 -0.750000 -v -0.251761 1.722732 -0.418544 -v -0.339364 1.745614 -0.496669 -v -0.440371 1.690371 -0.529029 -v -0.495614 1.589364 -0.496669 -v -0.472732 1.501761 -0.418544 -v -0.385129 1.478879 -0.340419 -v -0.284121 1.534121 -0.308058 -v -0.228879 1.635129 -0.340419 -v -0.359293 1.830264 -0.316931 -v -0.421551 1.827801 -0.419007 -v -0.512060 1.762059 -0.461288 -v -0.577801 1.671551 -0.419007 -v -0.580264 1.609293 -0.316931 -v -0.518007 1.611756 -0.214856 -v -0.427498 1.677498 -0.172575 -v -0.361757 1.768006 -0.214856 -v -0.486136 1.957107 -0.281250 -v -0.518496 1.924746 -0.391735 -v -0.596621 1.846621 -0.437500 -v -0.674746 1.768496 -0.391735 -v -0.707107 1.736136 -0.281250 -v -0.674747 1.768496 -0.170765 -v -0.596622 1.846621 -0.125000 -v -0.518497 1.924746 -0.170765 -v -0.612979 2.083950 -0.316932 -v -0.615442 2.021692 -0.419007 -v -0.681183 1.931183 -0.461288 -v -0.771692 1.865442 -0.419007 -v -0.833950 1.862979 -0.316932 -v -0.831486 1.925236 -0.214856 -v -0.765745 2.015745 -0.172575 -v -0.675236 2.081486 -0.214856 -v 0.108915 0.984835 -0.750000 -v 0.154680 1.095320 -0.750000 -v 0.265165 1.141085 -0.750000 -v 0.375650 1.095320 -0.750000 -v 0.421415 0.984835 -0.750000 -v 0.375650 0.874350 -0.750000 -v 0.265165 0.828585 -0.750000 -v 0.154680 0.874349 -0.750000 -v 0.251761 0.777268 -0.418544 -v 0.339364 0.754386 -0.496669 -v 0.440371 0.809629 -0.529029 -v 0.495614 0.910636 -0.496669 -v 0.472732 0.998239 -0.418544 -v 0.385129 1.021121 -0.340419 -v 0.284121 0.965879 -0.308058 -v 0.228879 0.864871 -0.340419 -v 0.359293 0.669736 -0.316931 -v 0.421550 0.672199 -0.419007 -v 0.512059 0.737940 -0.461288 -v 0.577801 0.828449 -0.419007 -v 0.580264 0.890707 -0.316931 -v 0.518006 0.888244 -0.214856 -v 0.427498 0.822502 -0.172575 -v 0.361756 0.731994 -0.214856 -v 0.486136 0.542893 -0.281250 -v 0.518496 0.575254 -0.391735 -v 0.596621 0.653379 -0.437500 -v 0.674746 0.731504 -0.391735 -v 0.707107 0.763864 -0.281250 -v 0.674746 0.731504 -0.170765 -v 0.596621 0.653379 -0.125000 -v 0.518496 0.575254 -0.170765 -v 0.612979 0.416050 -0.316932 -v 0.615442 0.478308 -0.419007 -v 0.681183 0.568817 -0.461288 -v 0.771692 0.634558 -0.419007 -v 0.833949 0.637021 -0.316932 -v 0.831486 0.574764 -0.214856 -v 0.765745 0.484255 -0.172575 -v 0.675236 0.418514 -0.214856 -v 0.265165 1.358915 -0.750000 -v 0.154680 1.404680 -0.750000 -v 0.108915 1.515165 -0.750000 -v 0.154680 1.625650 -0.750000 -v 0.265165 1.671415 -0.750000 -v 0.375650 1.625650 -0.750000 -v 0.421415 1.515165 -0.750000 -v 0.375650 1.404680 -0.750000 -v 0.472732 1.501761 -0.418544 -v 0.495614 1.589364 -0.496669 -v 0.440371 1.690371 -0.529029 -v 0.339364 1.745614 -0.496669 -v 0.251761 1.722732 -0.418544 -v 0.228879 1.635129 -0.340419 -v 0.284121 1.534121 -0.308058 -v 0.385129 1.478879 -0.340419 -v 0.580264 1.609293 -0.316931 -v 0.577801 1.671551 -0.419007 -v 0.512059 1.762059 -0.461288 -v 0.421551 1.827801 -0.419007 -v 0.359293 1.830264 -0.316931 -v 0.361756 1.768006 -0.214856 -v 0.427498 1.677498 -0.172575 -v 0.518006 1.611756 -0.214856 -v 0.707107 1.736136 -0.281250 -v 0.674746 1.768496 -0.391735 -v 0.596621 1.846621 -0.437500 -v 0.518496 1.924746 -0.391735 -v 0.486136 1.957107 -0.281250 -v 0.518496 1.924746 -0.170765 -v 0.596621 1.846621 -0.125000 -v 0.674746 1.768496 -0.170765 -v 0.833950 1.862979 -0.316932 -v 0.771692 1.865442 -0.419007 -v 0.681183 1.931183 -0.461288 -v 0.615442 2.021692 -0.419007 -v 0.612979 2.083950 -0.316932 -v 0.675236 2.081486 -0.214856 -v 0.765745 2.015745 -0.172575 -v 0.831486 1.925236 -0.214856 -v -0.265165 1.141085 -0.750000 -v -0.154680 1.095320 -0.750000 -v -0.108915 0.984835 -0.750000 -v -0.154680 0.874350 -0.750000 -v -0.265165 0.828585 -0.750000 -v -0.375651 0.874350 -0.750000 -v -0.421415 0.984835 -0.750000 -v -0.375651 1.095320 -0.750000 -v -0.472732 0.998239 -0.418544 -v -0.495614 0.910636 -0.496669 -v -0.440371 0.809629 -0.529029 -v -0.339364 0.754386 -0.496669 -v -0.251761 0.777268 -0.418544 -v -0.228879 0.864871 -0.340419 -v -0.284121 0.965879 -0.308058 -v -0.385129 1.021121 -0.340419 -v -0.580264 0.890707 -0.316931 -v -0.577801 0.828449 -0.419007 -v -0.512060 0.737941 -0.461288 -v -0.421551 0.672199 -0.419007 -v -0.359293 0.669736 -0.316931 -v -0.361757 0.731994 -0.214856 -v -0.427498 0.822502 -0.172575 -v -0.518007 0.888244 -0.214856 -v -0.707107 0.763864 -0.281250 -v -0.674747 0.731504 -0.391735 -v -0.596622 0.653379 -0.437500 -v -0.518497 0.575254 -0.391735 -v -0.486136 0.542893 -0.281250 -v -0.518497 0.575254 -0.170765 -v -0.596622 0.653379 -0.125000 -v -0.674747 0.731504 -0.170765 -v -0.833950 0.637021 -0.316932 -v -0.771692 0.634558 -0.419007 -v -0.681183 0.568817 -0.461288 -v -0.615442 0.478308 -0.419007 -v -0.612979 0.416050 -0.316932 -v -0.675237 0.418514 -0.214856 -v -0.765745 0.484255 -0.172575 -v -0.831487 0.574764 -0.214856 -v -0.811434 1.466518 -0.082211 -v -0.807472 1.584466 -0.062870 -v -0.726872 1.670669 -0.082211 -v -0.616847 1.674630 -0.128904 -v -0.541848 1.594030 -0.175597 -v -0.545810 1.476082 -0.194938 -v -0.626410 1.389879 -0.175597 -v -0.736435 1.385918 -0.128904 -v -0.882853 1.446566 -0.468769 -v -0.772828 1.450527 -0.515462 -v -0.692228 1.536730 -0.534803 -v -0.688267 1.654678 -0.515462 -v -0.763265 1.735278 -0.468769 -v -0.873290 1.731317 -0.422076 -v -0.953890 1.645114 -0.402735 -v -0.957852 1.527167 -0.422076 -v -0.721487 1.422007 -0.128904 -v -0.777735 1.482457 -0.093884 -v -0.774764 1.570918 -0.079378 -v -0.714314 1.635570 -0.093884 -v -0.631795 1.638541 -0.128904 -v -0.575547 1.578091 -0.163924 -v -0.578518 1.489630 -0.178429 -v -0.638968 1.424978 -0.163924 -v -0.744037 1.498396 -0.105557 -v -0.742056 1.557370 -0.095887 -v -0.701756 1.600471 -0.105557 -v -0.646744 1.602452 -0.128904 -v -0.609245 1.562152 -0.152250 -v -0.611225 1.503178 -0.161921 -v -0.651526 1.460076 -0.152250 -v -0.706538 1.458096 -0.128904 -v -0.697084 1.411899 -0.072260 -v -0.753332 1.472349 -0.037240 -v -0.750361 1.560810 -0.022734 -v -0.689911 1.625462 -0.037240 -v -0.607392 1.628433 -0.072260 -v -0.551144 1.567983 -0.107280 -v -0.554115 1.479522 -0.121785 -v -0.614565 1.414870 -0.107280 -v -0.682135 1.447988 -0.072260 -v -0.719634 1.488288 -0.048913 -v -0.717654 1.547262 -0.039243 -v -0.677353 1.590363 -0.048913 -v -0.622341 1.592344 -0.072260 -v -0.584842 1.552044 -0.095606 -v -0.586822 1.493070 -0.105277 -v -0.627123 1.449968 -0.095606 -v 0.811433 1.033482 -0.082211 -v 0.807472 0.915534 -0.062870 -v 0.726871 0.829331 -0.082211 -v 0.616846 0.825370 -0.128904 -v 0.541848 0.905970 -0.175597 -v 0.545810 1.023918 -0.194938 -v 0.626410 1.110121 -0.175597 -v 0.736435 1.114082 -0.128904 -v 0.882853 1.053434 -0.468769 -v 0.772828 1.049472 -0.515462 -v 0.692228 0.963270 -0.534803 -v 0.688266 0.845322 -0.515462 -v 0.763264 0.764722 -0.468769 -v 0.873289 0.768683 -0.422076 -v 0.953890 0.854886 -0.402735 -v 0.957851 0.972833 -0.422076 -v 0.721486 1.077993 -0.128904 -v 0.777735 1.017543 -0.093884 -v 0.774764 0.929082 -0.079378 -v 0.714314 0.864430 -0.093884 -v 0.631795 0.861459 -0.128904 -v 0.575546 0.921909 -0.163924 -v 0.578517 1.010370 -0.178429 -v 0.638968 1.075022 -0.163924 -v 0.744037 1.001604 -0.105557 -v 0.742056 0.942630 -0.095887 -v 0.701756 0.899529 -0.105557 -v 0.646743 0.897548 -0.128904 -v 0.609244 0.937848 -0.152250 -v 0.611225 0.996822 -0.161921 -v 0.651525 1.039924 -0.152250 -v 0.706538 1.041904 -0.128904 -v 0.697083 1.088101 -0.072260 -v 0.753332 1.027651 -0.037240 -v 0.750361 0.939190 -0.022734 -v 0.689911 0.874538 -0.037240 -v 0.607392 0.871567 -0.072260 -v 0.551143 0.932017 -0.107280 -v 0.554115 1.020478 -0.121785 -v 0.614565 1.085130 -0.107280 -v 0.682135 1.052012 -0.072260 -v 0.719634 1.011712 -0.048913 -v 0.717653 0.952738 -0.039243 -v 0.677353 0.909637 -0.048913 -v 0.622341 0.907656 -0.072260 -v 0.584841 0.947956 -0.095606 -v 0.586822 1.006930 -0.105277 -v 0.627122 1.050032 -0.095606 -v 0.216518 2.061433 -0.082211 -v 0.334466 2.057472 -0.062870 -v 0.420668 1.976871 -0.082211 -v 0.424630 1.866847 -0.128904 -v 0.344029 1.791848 -0.175597 -v 0.226082 1.795810 -0.194938 -v 0.139879 1.876410 -0.175597 -v 0.135918 1.986435 -0.128904 -v 0.196566 2.132853 -0.468769 -v 0.200527 2.022828 -0.515462 -v 0.286730 1.942228 -0.534803 -v 0.404678 1.938266 -0.515462 -v 0.485278 2.013265 -0.468769 -v 0.481317 2.123290 -0.422076 -v 0.395114 2.203890 -0.402735 -v 0.277167 2.207852 -0.422076 -v 0.172007 1.971487 -0.128904 -v 0.232457 2.027735 -0.093884 -v 0.320918 2.024764 -0.079378 -v 0.385570 1.964314 -0.093884 -v 0.388541 1.881795 -0.128904 -v 0.328090 1.825547 -0.163924 -v 0.239630 1.828518 -0.178429 -v 0.174978 1.888968 -0.163924 -v 0.248396 1.994037 -0.105557 -v 0.307370 1.992056 -0.095887 -v 0.350471 1.951756 -0.105557 -v 0.352452 1.896744 -0.128904 -v 0.312152 1.859245 -0.152250 -v 0.253178 1.861225 -0.161921 -v 0.210076 1.901525 -0.152250 -v 0.208096 1.956538 -0.128904 -v 0.161898 1.947083 -0.072260 -v 0.222349 2.003332 -0.037240 -v 0.310810 2.000361 -0.022734 -v 0.375462 1.939911 -0.037240 -v 0.378433 1.857392 -0.072260 -v 0.317982 1.801143 -0.107280 -v 0.229522 1.804115 -0.121785 -v 0.164870 1.864565 -0.107280 -v 0.197988 1.932135 -0.072260 -v 0.238288 1.969634 -0.048913 -v 0.297262 1.967653 -0.039243 -v 0.340363 1.927353 -0.048913 -v 0.342344 1.872341 -0.072260 -v 0.302044 1.834841 -0.095606 -v 0.243070 1.836822 -0.105277 -v 0.199968 1.877123 -0.095606 -v -0.216518 0.438567 -0.082211 -v -0.334466 0.442528 -0.062870 -v -0.420669 0.523129 -0.082211 -v -0.424630 0.633153 -0.128904 +v -0.500000 2.250000 -2.750000 v -0.344030 0.708152 -0.175597 -v -0.226082 0.704190 -0.194938 -v -0.139879 0.623590 -0.175597 -v -0.135918 0.513565 -0.128904 -v -0.196566 0.367147 -0.468769 -v -0.200528 0.477172 -0.515462 -v -0.286731 0.557772 -0.534803 -v -0.404678 0.561734 -0.515462 -v -0.485279 0.486735 -0.468769 -v -0.481317 0.376710 -0.422076 -v -0.395115 0.296110 -0.402735 -v -0.277167 0.292148 -0.422076 -v -0.172007 0.528513 -0.128904 -v -0.232457 0.472265 -0.093884 -v -0.320918 0.475236 -0.079378 -v -0.385570 0.535686 -0.093884 +v -0.424630 0.633153 -0.128904 v -0.388541 0.618205 -0.128904 v -0.328091 0.674453 -0.163924 -v -0.239630 0.671482 -0.178429 +v -0.420670 0.523129 -0.082211 +v -0.334466 0.442528 -0.062870 +v -0.320918 0.475236 -0.079378 +v -0.385571 0.535686 -0.093884 +v -0.216518 0.438567 -0.082211 +v -0.135918 0.513565 -0.128904 +v -0.172007 0.528513 -0.128904 +v -0.232457 0.472265 -0.093884 +v -0.139879 0.623590 -0.175597 v -0.174978 0.611032 -0.163924 -v -0.248396 0.505963 -0.105557 -v -0.307370 0.507944 -0.095887 -v -0.350472 0.548244 -0.105557 -v -0.352452 0.603256 -0.128904 -v -0.312152 0.640755 -0.152250 -v -0.253178 0.638775 -0.161921 -v -0.210077 0.598474 -0.152250 +v -0.226082 0.704190 -0.194938 +v -0.239630 0.671482 -0.178429 v -0.208096 0.543462 -0.128904 -v -0.161899 0.552916 -0.072260 +v -0.210077 0.598474 -0.152250 +v -0.253178 0.638775 -0.161921 +v -0.312152 0.640755 -0.152250 +v -0.352451 0.603256 -0.128904 +v -0.350471 0.548244 -0.105557 +v -0.307370 0.507944 -0.095887 +v -0.248396 0.505963 -0.105557 v -0.222349 0.496668 -0.037240 -v -0.310810 0.499639 -0.022734 -v -0.375462 0.560089 -0.037240 -v -0.378433 0.642608 -0.072260 -v -0.317983 0.698857 -0.107280 -v -0.229522 0.695885 -0.121785 -v -0.164870 0.635435 -0.107280 -v -0.197988 0.567865 -0.072260 +v -0.161900 0.552916 -0.072260 +v -0.197989 0.567865 -0.072260 v -0.238288 0.530366 -0.048913 -v -0.297262 0.532347 -0.039243 -v -0.340364 0.572647 -0.048913 -v -0.342344 0.627659 -0.072260 +v -0.164869 0.635435 -0.107280 +v -0.199968 0.622877 -0.095606 +v -0.229523 0.695885 -0.121785 +v -0.243071 0.663178 -0.105277 +v -0.317984 0.698857 -0.107280 v -0.302044 0.665158 -0.095606 -v -0.243070 0.663178 -0.105277 -v -0.199969 0.622877 -0.095606 -v -0.420669 1.976871 -0.082211 -v -0.334466 2.057472 -0.062870 -v -0.216518 2.061433 -0.082211 -v -0.135918 1.986435 -0.128904 -v -0.139879 1.876410 -0.175597 -v -0.226082 1.795810 -0.194938 -v -0.344030 1.791848 -0.175597 -v -0.424630 1.866847 -0.128904 -v -0.485279 2.013265 -0.468769 -v -0.404678 1.938267 -0.515462 -v -0.286730 1.942228 -0.534803 -v -0.200527 2.022828 -0.515462 -v -0.196566 2.132853 -0.468769 -v -0.277167 2.207851 -0.422076 -v -0.395114 2.203890 -0.402735 -v -0.481317 2.123290 -0.422076 -v -0.388541 1.881795 -0.128904 -v -0.385570 1.964314 -0.093884 -v -0.320918 2.024764 -0.079378 -v -0.232457 2.027735 -0.093884 -v -0.172007 1.971487 -0.128904 -v -0.174978 1.888968 -0.163924 -v -0.239630 1.828518 -0.178429 -v -0.328091 1.825547 -0.163924 -v -0.350471 1.951756 -0.105557 -v -0.307370 1.992056 -0.095887 -v -0.248396 1.994037 -0.105557 -v -0.208096 1.956538 -0.128904 -v -0.210077 1.901525 -0.152250 -v -0.253178 1.861225 -0.161921 -v -0.312152 1.859245 -0.152250 -v -0.352452 1.896744 -0.128904 -v -0.378433 1.857392 -0.072260 -v -0.375462 1.939911 -0.037240 -v -0.310810 2.000361 -0.022734 -v -0.222349 2.003332 -0.037240 -v -0.161899 1.947084 -0.072260 -v -0.164870 1.864565 -0.107280 -v -0.229522 1.804115 -0.121785 -v -0.317983 1.801143 -0.107280 -v -0.342344 1.872341 -0.072260 -v -0.340363 1.927353 -0.048913 -v -0.297262 1.967653 -0.039243 -v -0.238288 1.969634 -0.048913 -v -0.197988 1.932135 -0.072260 -v -0.199968 1.877123 -0.095606 -v -0.243070 1.836822 -0.105277 -v -0.302044 1.834842 -0.095606 -v 0.420668 0.523128 -0.082211 -v 0.334466 0.442528 -0.062870 -v 0.216518 0.438567 -0.082211 -v 0.135917 0.513565 -0.128904 -v 0.139879 0.623590 -0.175597 -v 0.226082 0.704190 -0.194938 -v 0.344029 0.708152 -0.175597 -v 0.424630 0.633153 -0.128904 -v 0.485278 0.486735 -0.468769 -v 0.404678 0.561733 -0.515462 -v 0.286730 0.557772 -0.534803 -v 0.200527 0.477172 -0.515462 -v 0.196566 0.367147 -0.468769 -v 0.277166 0.292148 -0.422076 -v 0.395114 0.296110 -0.402735 -v 0.481317 0.376710 -0.422076 -v 0.388541 0.618205 -0.128904 -v 0.385570 0.535686 -0.093884 -v 0.320918 0.475236 -0.079378 -v 0.232457 0.472265 -0.093884 -v 0.172006 0.528513 -0.128904 -v 0.174978 0.611032 -0.163924 -v 0.239630 0.671482 -0.178429 -v 0.328090 0.674454 -0.163924 -v 0.350471 0.548244 -0.105557 -v 0.307370 0.507944 -0.095887 -v 0.248396 0.505963 -0.105557 -v 0.208095 0.543462 -0.128904 -v 0.210076 0.598475 -0.152250 -v 0.253178 0.638775 -0.161921 -v 0.312152 0.640755 -0.152250 -v 0.352452 0.603256 -0.128904 -v 0.378433 0.642608 -0.072260 -v 0.375462 0.560089 -0.037240 -v 0.310810 0.499639 -0.022734 -v 0.222349 0.496668 -0.037240 -v 0.161898 0.552916 -0.072260 -v 0.164869 0.635435 -0.107280 -v 0.229522 0.695885 -0.121785 -v 0.317982 0.698857 -0.107280 -v 0.342344 0.627659 -0.072260 -v 0.340363 0.572647 -0.048913 -v 0.297262 0.532347 -0.039243 -v 0.238288 0.530366 -0.048913 -v 0.197987 0.567865 -0.072260 -v 0.199968 0.622877 -0.095606 -v 0.243070 0.663178 -0.105277 -v 0.302043 0.665158 -0.095606 -v 0.726871 1.670668 -0.082211 -v 0.807472 1.584466 -0.062870 -v 0.811433 1.466518 -0.082211 -v 0.736435 1.385918 -0.128904 -v 0.626410 1.389879 -0.175597 -v 0.545810 1.476082 -0.194938 -v 0.541848 1.594030 -0.175597 -v 0.616847 1.674630 -0.128904 -v 0.763265 1.735278 -0.468769 -v 0.688266 1.654678 -0.515462 -v 0.692228 1.536730 -0.534803 -v 0.772828 1.450527 -0.515462 -v 0.882853 1.446566 -0.468769 -v 0.957851 1.527166 -0.422076 -v 0.953890 1.645114 -0.402735 -v 0.873290 1.731317 -0.422076 -v 0.631795 1.638541 -0.128904 -v 0.714314 1.635570 -0.093884 -v 0.774764 1.570918 -0.079378 -v 0.777735 1.482457 -0.093884 -v 0.721487 1.422007 -0.128904 -v 0.638968 1.424978 -0.163924 -v 0.578518 1.489630 -0.178429 -v 0.575546 1.578091 -0.163924 -v 0.701756 1.600471 -0.105557 -v 0.742056 1.557370 -0.095887 -v 0.744037 1.498396 -0.105557 -v 0.706538 1.458096 -0.128904 -v 0.651525 1.460076 -0.152250 -v 0.611225 1.503178 -0.161921 -v 0.609244 1.562152 -0.152250 -v 0.646744 1.602452 -0.128904 -v 0.607392 1.628433 -0.072260 -v 0.689911 1.625462 -0.037240 -v 0.750361 1.560810 -0.022734 -v 0.753332 1.472349 -0.037240 -v 0.697084 1.411899 -0.072260 -v 0.614565 1.414870 -0.107280 -v 0.554114 1.479522 -0.121785 -v 0.551143 1.567982 -0.107280 -v 0.622341 1.592344 -0.072260 -v 0.677353 1.590363 -0.048913 -v 0.717653 1.547262 -0.039243 -v 0.719634 1.488288 -0.048913 -v 0.682135 1.447988 -0.072260 -v 0.627122 1.449968 -0.095606 -v 0.586822 1.493070 -0.105277 -v 0.584842 1.552044 -0.095606 -v -0.726872 0.829332 -0.082211 -v -0.807472 0.915534 -0.062870 -v -0.811434 1.033482 -0.082211 -v -0.736435 1.114082 -0.128904 -v -0.626410 1.110121 -0.175597 -v -0.545810 1.023918 -0.194938 -v -0.541848 0.905970 -0.175597 -v -0.616847 0.825370 -0.128904 -v -0.763265 0.764722 -0.468769 -v -0.688267 0.845322 -0.515462 -v -0.692228 0.963270 -0.534803 -v -0.772828 1.049473 -0.515462 -v -0.882853 1.053434 -0.468769 -v -0.957852 0.972834 -0.422076 -v -0.953890 0.854886 -0.402735 -v -0.873290 0.768683 -0.422076 -v -0.631795 0.861459 -0.128904 -v -0.714314 0.864430 -0.093884 -v -0.774764 0.929082 -0.079378 -v -0.777735 1.017543 -0.093884 -v -0.721487 1.077993 -0.128904 -v -0.638968 1.075022 -0.163924 -v -0.578518 1.010370 -0.178429 -v -0.575547 0.921910 -0.163924 -v -0.701756 0.899529 -0.105557 -v -0.742057 0.942630 -0.095887 -v -0.744037 1.001604 -0.105557 -v -0.706538 1.041904 -0.128904 -v -0.651526 1.039924 -0.152250 -v -0.611226 0.996822 -0.161921 -v -0.609245 0.937848 -0.152250 -v -0.646744 0.897548 -0.128904 -v -0.607392 0.871567 -0.072260 -v -0.689911 0.874538 -0.037240 -v -0.750361 0.939190 -0.022734 -v -0.753332 1.027651 -0.037240 -v -0.697084 1.088101 -0.072260 -v -0.614565 1.085130 -0.107280 -v -0.554115 1.020478 -0.121785 -v -0.551144 0.932018 -0.107280 -v -0.622341 0.907656 -0.072260 -v -0.677353 0.909637 -0.048913 -v -0.717654 0.952738 -0.039243 -v -0.719634 1.011712 -0.048913 -v -0.682135 1.052012 -0.072260 -v -0.627123 1.050032 -0.095606 -v -0.586822 1.006930 -0.105277 -v -0.584842 0.947956 -0.095606 -v -1.112133 1.224587 0.109375 -v -1.037201 0.847883 0.109375 -v -1.002758 1.224587 -0.109375 -v -0.936152 0.889739 -0.109375 -v -0.982164 0.858831 0.136894 -v -1.057095 1.235535 0.136894 -v -0.881115 0.900687 -0.081856 -v -0.947720 1.235535 -0.081856 -v 1.112132 1.275412 0.109375 -v 1.037201 1.652117 0.109375 -v 1.002757 1.275412 -0.109375 -v 0.936152 1.610261 -0.109375 -v 0.982164 1.641169 0.136894 -v 1.057095 1.264465 0.136894 -v 0.881115 1.599313 -0.081856 -v 0.947720 1.264465 -0.081856 -v -0.025413 2.362133 0.109375 -v -0.402117 2.287201 0.109375 -v -0.025413 2.252758 -0.109375 -v -0.360261 2.186152 -0.109375 -v -0.391169 2.232164 0.136894 -v -0.014465 2.307095 0.136894 -v -0.349313 2.131115 -0.081856 -v -0.014465 2.197720 -0.081856 -v 0.025412 0.137868 0.109375 -v 0.402116 0.212799 0.109375 -v 0.025412 0.247242 -0.109375 -v 0.360260 0.313848 -0.109375 -v 0.391169 0.267836 0.136894 -v 0.014465 0.192905 0.136894 -v 0.349313 0.368885 -0.081856 -v 0.014465 0.302280 -0.081856 -v -0.804366 2.018427 0.109375 -v -1.017752 1.699073 0.109375 -v -0.727026 1.941087 -0.109375 -v -0.916702 1.657217 -0.109375 -v -0.971093 1.667896 0.136894 -v -0.757707 1.987251 0.136894 -v -0.870044 1.626041 -0.081856 -v -0.680368 1.909911 -0.081856 -v 0.804366 0.481573 0.109375 -v 1.017751 0.800927 0.109375 -v 0.727026 0.558913 -0.109375 -v 0.916702 0.842783 -0.109375 -v 0.971093 0.832103 0.136894 -v 0.757707 0.512749 0.136894 -v 0.870044 0.873959 -0.081856 -v 0.680367 0.590089 -0.081856 -v 0.768427 2.054366 0.109375 -v 0.449073 2.267752 0.109375 -v 0.691087 1.977026 -0.109375 -v 0.407216 2.166702 -0.109375 -v 0.417896 2.221093 0.136894 -v 0.737251 2.007707 0.136894 -v 0.376040 2.120044 -0.081856 -v 0.659911 1.930367 -0.081856 -v -0.768427 0.445634 0.109375 -v -0.449073 0.232249 0.109375 -v -0.691087 0.522974 -0.109375 -v -0.407217 0.333298 -0.109375 -v -0.417897 0.278907 0.136894 -v -0.737251 0.492293 0.136894 -v -0.376041 0.379956 -0.081856 -v -0.659911 0.569633 -0.081856 -v -1.037201 1.652117 0.109375 -v -1.112133 1.275412 0.109375 -v -0.936152 1.610261 -0.109375 -v -1.002758 1.275413 -0.109375 -v -1.057095 1.264465 0.136894 -v -0.982164 1.641169 0.136894 -v -0.947720 1.264465 -0.081856 -v -0.881115 1.599313 -0.081856 -v 1.037201 0.847883 0.109375 -v 1.112132 1.224588 0.109375 -v 0.936152 0.889739 -0.109375 -v 1.002757 1.224587 -0.109375 -v 1.057095 1.235535 0.136894 -v 0.982164 0.858831 0.136894 -v 0.947720 1.235535 -0.081856 -v 0.881115 0.900687 -0.081856 -v 0.402116 2.287201 0.109375 -v 0.025412 2.362133 0.109375 -v 0.360260 2.186152 -0.109375 -v 0.025412 2.252758 -0.109375 -v 0.014465 2.307095 0.136894 -v 0.391169 2.232164 0.136894 -v 0.014465 2.197720 -0.081856 -v 0.349313 2.131114 -0.081856 -v -0.402117 0.212799 0.109375 -v -0.025413 0.137868 0.109375 -v -0.360261 0.313848 -0.109375 -v -0.025413 0.247242 -0.109375 -v -0.014465 0.192905 0.136894 +v -0.378433 0.642608 -0.072260 +v -0.342344 0.627659 -0.072260 +v -0.375462 0.560089 -0.037240 +v -0.340364 0.572647 -0.048913 +v -0.310810 0.499639 -0.022734 +v -0.297262 0.532347 -0.039243 v -0.391169 0.267836 0.136894 +v -0.014465 0.192905 0.136894 v -0.014465 0.302280 -0.081856 v -0.349313 0.368885 -0.081856 -v -0.449073 2.267751 0.109375 -v -0.768427 2.054366 0.109375 -v -0.407217 2.166702 -0.109375 -v -0.691087 1.977026 -0.109375 -v -0.737251 2.007707 0.136894 -v -0.417897 2.221093 0.136894 -v -0.659911 1.930367 -0.081856 -v -0.376041 2.120044 -0.081856 -v 0.449073 0.232249 0.109375 -v 0.768427 0.445634 0.109375 -v 0.407217 0.333298 -0.109375 -v 0.691087 0.522974 -0.109375 -v 0.737251 0.492293 0.136894 -v 0.417896 0.278907 0.136894 -v 0.659911 0.569632 -0.081856 -v 0.376040 0.379956 -0.081856 -v 1.017751 1.699073 0.109375 -v 0.804366 2.018427 0.109375 -v 0.916702 1.657217 -0.109375 -v 0.727026 1.941087 -0.109375 -v 0.757707 1.987251 0.136894 -v 0.971093 1.667897 0.136894 -v 0.680367 1.909911 -0.081856 -v 0.870043 1.626041 -0.081856 -v -1.017752 0.800927 0.109375 -v -0.804366 0.481573 0.109375 -v -0.916702 0.842783 -0.109375 -v -0.727026 0.558913 -0.109375 -v -0.757708 0.512749 0.136894 -v -0.971093 0.832104 0.136894 -v -0.680368 0.590089 -0.081856 -v -0.870044 0.873959 -0.081856 -v -0.000000 1.750000 -0.750000 -v -0.191342 1.711940 -0.750000 +v -0.025414 0.247242 -0.109375 +v -0.360261 0.313848 -0.109375 +v -0.025414 0.137868 0.109375 +v -0.402117 0.212799 0.109375 +v 0.230970 1.345671 -0.500000 +v 0.095671 1.480970 -0.500000 +v 0.071753 1.423227 -0.500000 +v 0.173227 1.321753 -0.500000 +v -0.047836 1.365485 -0.500000 +v -0.115485 1.297835 -0.500000 +v -0.115485 1.202165 -0.500000 +v -0.047836 1.134515 -0.500000 +v 0.047834 1.134515 -0.500000 +v 0.115485 1.202165 -0.500000 +v 0.115485 1.297835 -0.500000 +v 0.047834 1.365485 -0.500000 +v 0.230970 1.154329 -0.500000 +v 0.173227 1.178247 -0.500000 +v 0.095671 1.019030 -0.500000 +v 0.071753 1.076773 -0.500000 +v -0.095671 1.019030 -0.500000 +v -0.071753 1.076773 -0.500000 +v -0.230970 1.154329 -0.500000 +v -0.173227 1.178247 -0.500000 +v -0.230970 1.345671 -0.500000 +v -0.173227 1.321753 -0.500000 +v -0.095671 1.480970 -0.500000 +v -0.071753 1.423227 -0.500000 +v 0.115485 1.297835 -0.375000 +v 0.173227 1.321753 -0.375000 +v 0.071753 1.423227 -0.375000 +v 0.047834 1.365485 -0.375000 +v 0.115485 1.202165 -0.375000 +v 0.173227 1.178247 -0.375000 +v 0.047834 1.134515 -0.375000 +v 0.071753 1.076773 -0.375000 +v -0.047836 1.134515 -0.375000 +v -0.071753 1.076773 -0.375000 +v -0.115485 1.202165 -0.375000 +v -0.173227 1.178247 -0.375000 +v -0.115485 1.297835 -0.375000 +v -0.173227 1.321753 -0.375000 +v -0.047836 1.365485 -0.375000 +v -0.071753 1.423227 -0.375000 +v -0.191341 1.711940 -0.750000 v -0.353553 1.603553 -0.750000 v -0.461940 1.441342 -0.750000 v -0.500000 1.250000 -0.750000 v -0.461940 1.058658 -0.750000 v -0.353553 0.896447 -0.750000 -v -0.191342 0.788060 -0.750000 -v -0.000000 0.750000 -0.750000 -v 0.191342 0.788060 -0.750000 +v -0.191341 0.788060 -0.750000 +v 0.000000 0.750000 -0.750000 +v 0.191341 0.788060 -0.750000 v 0.353553 0.896446 -0.750000 v 0.461940 1.058658 -0.750000 v 0.500000 1.250000 -0.750000 v 0.461940 1.441342 -0.750000 v 0.353553 1.603554 -0.750000 v 0.191341 1.711940 -0.750000 -v 0.095671 1.480970 -0.750000 -v -0.095671 1.480970 -0.750000 -v -0.230970 1.345671 -0.750000 -v -0.230970 1.154329 -0.750000 -v -0.095671 1.019030 -0.750000 -v 0.095671 1.019030 -0.750000 -v 0.230970 1.154329 -0.750000 -v 0.230970 1.345671 -0.750000 -v 0.095671 1.480970 -0.500000 -v -0.095671 1.480970 -0.500000 -v -0.230970 1.345671 -0.500000 -v -0.230970 1.154329 -0.500000 -v -0.095671 1.019030 -0.500000 -v 0.095671 1.019030 -0.500000 -v 0.230970 1.154329 -0.500000 -v 0.230970 1.345671 -0.500000 -v 0.047835 1.365485 -0.500000 -v -0.047836 1.365485 -0.500000 -v -0.115485 1.297835 -0.500000 -v -0.115485 1.202165 -0.500000 -v -0.047836 1.134515 -0.500000 -v 0.047835 1.134515 -0.500000 -v 0.115485 1.202165 -0.500000 -v 0.115485 1.297835 -0.500000 -v 0.071753 1.423227 -0.500000 -v -0.071753 1.423227 -0.500000 -v -0.173227 1.321753 -0.500000 -v -0.173227 1.178247 -0.500000 -v -0.071753 1.076773 -0.500000 -v 0.071753 1.076773 -0.500000 -v 0.173227 1.178247 -0.500000 -v 0.173227 1.321753 -0.500000 -v -0.047836 1.365485 -0.375000 -v 0.047835 1.365485 -0.375000 -v -0.115485 1.297835 -0.375000 -v -0.115485 1.202165 -0.375000 -v -0.047836 1.134515 -0.375000 -v 0.047835 1.134515 -0.375000 -v 0.115485 1.202165 -0.375000 -v 0.115485 1.297835 -0.375000 -v -0.071753 1.423227 -0.375000 -v 0.071753 1.423227 -0.375000 -v -0.173227 1.321753 -0.375000 -v -0.173227 1.178247 -0.375000 -v -0.071753 1.076773 -0.375000 -v 0.071753 1.076773 -0.375000 -v 0.173227 1.178247 -0.375000 -v 0.173227 1.321753 -0.375000 -v -0.000000 2.375000 -0.375000 -v -0.430519 2.289364 -0.375000 -v -0.795495 2.045495 -0.375000 -v -1.039364 1.680519 -0.375000 -v -1.125000 1.250000 -0.375000 -v -1.039364 0.819481 -0.375000 -v -0.795495 0.454505 -0.375000 -v -0.430519 0.210636 -0.375000 -v -0.000000 0.125000 -0.375000 -v 0.430519 0.210635 -0.375000 -v 0.795495 0.454505 -0.375000 -v 1.039364 0.819481 -0.375000 -v 1.125000 1.250000 -0.375000 +v 0.000000 1.750000 -0.750000 v 1.039364 1.680519 -0.375000 v 0.795495 2.045496 -0.375000 v 0.430518 2.289365 -0.375000 -v -0.000000 2.375000 -0.625000 +v 1.039364 0.819481 -0.375000 +v 1.125000 1.250000 -0.375000 +v 0.430519 0.210635 -0.375000 +v 0.795495 0.454505 -0.375000 +v -0.430519 0.210636 -0.375000 +v 0.000000 0.125000 -0.375000 +v -1.039364 0.819481 -0.375000 +v -0.795495 0.454505 -0.375000 +v -1.039364 1.680519 -0.375000 +v -1.125000 1.250000 -0.375000 +v -0.430519 2.289364 -0.375000 +v -0.795495 2.045495 -0.375000 +v 0.000000 2.375000 -0.375000 +v 0.500000 2.500000 -0.625000 +v -0.500000 2.500000 -0.625000 v -0.430519 2.289364 -0.625000 -v -0.795495 2.045495 -0.625000 -v -1.039364 1.680519 -0.625000 -v -1.125000 1.250000 -0.625000 -v -1.039364 0.819481 -0.625000 -v -0.795495 0.454505 -0.625000 -v -0.430519 0.210636 -0.625000 -v -0.000000 0.125000 -0.625000 -v 0.430519 0.210635 -0.625000 -v 0.795495 0.454505 -0.625000 -v 1.039364 0.819481 -0.625000 -v 1.125000 1.250000 -0.625000 -v 1.039364 1.680519 -0.625000 -v 0.795495 2.045496 -0.625000 +v 0.000000 2.375000 -0.625000 v 0.430518 2.289365 -0.625000 -v -1.000000 0.938500 -4.125000 +v 0.795495 2.045496 -0.625000 +v 1.039364 1.680519 -0.625000 +v 1.125000 1.250000 -0.625000 +v 1.039364 0.819481 -0.625000 +v 0.795495 0.454505 -0.625000 +v 0.430519 0.210635 -0.625000 +v 0.000000 0.125000 -0.625000 +v -0.430519 0.210636 -0.625000 +v -0.795495 0.454505 -0.625000 +v -1.039364 0.819481 -0.625000 +v -1.125000 1.250000 -0.625000 +v -1.039364 1.680519 -0.625000 +v -0.795495 2.045495 -0.625000 v -1.000000 1.645607 -3.832107 -v -1.000000 1.938500 -3.125000 -v -1.000000 1.645607 -2.417893 -v -1.000000 0.938500 -2.125000 -v -1.000000 0.231393 -2.417893 -v -1.000000 -0.061500 -3.125000 +v -1.000000 0.938500 -4.125000 v -1.000000 0.231393 -3.832107 -v -1.000000 1.376000 -2.625000 -v -1.000000 1.376000 -3.625000 +v -1.000000 -0.061500 -3.125000 +v -1.000000 0.231393 -2.417893 +v -1.000000 0.938500 -2.125000 +v -1.000000 1.645607 -2.417893 +v -1.000000 1.938500 -3.125000 v -1.000000 0.251000 -2.625000 +v -1.000000 1.376000 -2.625000 v -1.000000 0.251000 -3.625000 +v -1.000000 1.376000 -3.625000 v 1.000000 1.645607 -3.832107 -v 1.000000 0.938500 -4.125000 v 1.000000 1.938500 -3.125000 v 1.000000 1.645607 -2.417893 v 1.000000 0.938500 -2.125000 v 1.000000 0.231393 -2.417893 v 1.000000 -0.061500 -3.125000 v 1.000000 0.231393 -3.832107 -v 0.554917 2.356694 0.187500 +v 1.000000 0.938500 -4.125000 +v 0.554916 2.356694 0.187500 v 0.731694 2.179917 0.187500 +v 0.820084 2.268306 0.187500 v 0.643306 2.445082 0.187500 -v 0.820083 2.268306 0.187500 +v 0.554916 2.356694 -0.312500 v 0.643306 2.445082 -0.312500 -v 0.554917 2.356694 -0.312500 +v 0.820084 2.268306 -0.312500 v 0.731694 2.179917 -0.312500 -v 0.820083 2.268306 -0.312500 -v -0.929917 0.518306 0.187500 +v -0.929916 0.518306 0.187500 v -1.106694 0.695083 0.187500 +v -1.195084 0.606694 0.187500 v -1.018306 0.429918 0.187500 -v -1.195083 0.606694 0.187500 +v -0.929916 0.518306 -0.312500 v -1.018306 0.429918 -0.312500 -v -0.929917 0.518306 -0.312500 +v -1.195084 0.606694 -0.312500 v -1.106694 0.695083 -0.312500 -v -1.195083 0.606694 -0.312500 v 1.106694 0.695082 0.187500 -v 0.929917 0.518306 0.187500 -v 1.195082 0.606694 0.187500 +v 0.929916 0.518306 0.187500 v 1.018306 0.429917 0.187500 -v 1.195082 0.606694 -0.312500 +v 1.195082 0.606694 0.187500 v 1.106694 0.695082 -0.312500 -v 0.929917 0.518306 -0.312500 +v 1.195082 0.606694 -0.312500 v 1.018306 0.429917 -0.312500 +v 0.929916 0.518306 -0.312500 v -0.731694 2.179918 0.187500 -v -0.554917 2.356694 0.187500 -v -0.820082 2.268306 0.187500 +v -0.554916 2.356694 0.187500 v -0.643306 2.445083 0.187500 -v -0.820082 2.268306 -0.312500 +v -0.820082 2.268306 0.187500 v -0.731694 2.179918 -0.312500 -v -0.554917 2.356694 -0.312500 +v -0.820082 2.268306 -0.312500 v -0.643306 2.445083 -0.312500 -v 0.554917 2.356694 -2.375000 +v -0.554916 2.356694 -0.312500 +v 0.554916 2.356694 -2.375000 v 0.731694 2.179917 -2.375000 +v 0.820084 2.268306 -2.375000 v 0.643306 2.445082 -2.375000 -v 0.820083 2.268306 -2.375000 -v 0.643306 2.445082 -2.751000 -v 0.554917 2.356694 -2.751000 +v 0.554916 2.356694 -2.750000 +v 0.643306 2.445082 -2.750000 +v 0.820084 2.268306 -2.875000 v 0.731694 2.179917 -2.875000 -v 0.820083 2.268306 -2.875000 -v -1.125000 1.875000 -2.600000 -v -1.125000 1.875000 -1.875000 -v -0.625000 2.375000 -2.375000 -v -0.625000 2.375000 -2.125000 -v 1.000000 1.750000 -2.875000 -v -1.000000 1.750000 -2.875000 v -0.500000 2.250000 -2.625000 +v -1.000000 1.750000 -2.875000 +v 1.000000 1.750000 -2.875000 v 0.500000 2.250000 -2.625000 -v -0.500000 2.268567 -2.829241 -v 0.500000 2.268567 -2.829241 -v -0.500000 2.215740 -2.715952 v 0.500000 2.215740 -2.715952 -v 0.312500 2.438500 -2.750000 -v -0.312500 2.438500 -2.750000 -v 0.312500 2.385673 -2.636712 -v -0.312500 2.385673 -2.636712 -v -0.500000 1.872057 -3.014137 -v 0.500000 1.872057 -3.014137 v 0.500000 1.819230 -2.900848 +v 0.500000 1.872057 -3.014137 +v 0.500000 2.268567 -2.829241 +v -0.500000 2.268567 -2.829241 +v -0.500000 1.872057 -3.014137 v -0.500000 1.819230 -2.900848 -v 0.500000 0.125000 -2.750000 -v -0.500000 0.125000 -2.750000 -v -0.750000 1.696383 -3.709523 -v 0.750000 1.696383 -3.709523 -v -0.750000 1.544192 -3.511185 -v 0.750000 1.544192 -3.511185 -v -0.750000 1.639863 -3.280215 -v 0.750000 1.639863 -3.280215 +v -0.500000 2.215740 -2.715952 +v -0.312500 2.438500 -2.750000 +v 0.312500 2.438500 -2.750000 +v -0.312500 2.385673 -2.636712 +v 0.312500 2.385673 -2.636712 v -0.750000 1.887724 -3.247583 v 0.750000 1.887724 -3.247583 -v -0.750000 2.039915 -3.445922 v 0.750000 2.039915 -3.445922 -v -0.750000 1.944244 -3.676892 +v -0.750000 2.039915 -3.445922 +v 0.750000 1.544192 -3.511185 +v 0.750000 1.696383 -3.709523 v 0.750000 1.944244 -3.676892 +v 0.750000 1.639863 -3.280215 +v -0.750000 1.944244 -3.676892 +v -0.750000 1.696383 -3.709523 +v -0.750000 1.544192 -3.511185 +v -0.750000 1.639863 -3.280215 +v -0.500000 0.125000 -2.750000 +v 0.500000 0.125000 -2.750000 v 0.500000 0.125000 -1.750000 v -0.500000 0.125000 -1.750000 v 0.500000 0.500000 -2.750000 -v -0.500000 0.500000 -2.750000 v 0.500000 0.500000 -1.750000 v -0.500000 0.500000 -1.750000 -v -0.625000 0.187500 -3.625000 -v 0.625000 0.187500 -3.625000 -v -0.625000 1.687500 -3.625000 -v 0.625000 1.687500 -3.625000 -v -0.625000 1.687500 -4.125000 +v -0.500000 0.500000 -2.750000 v -0.625000 0.187500 -4.125000 -v 0.625000 0.187500 -4.125000 +v -0.625000 1.687500 -4.125000 v 0.625000 1.687500 -4.125000 -v -0.500000 1.562500 -4.125000 -v 0.500000 1.562500 -4.125000 -v -0.500000 0.312500 -4.125000 -v 0.500000 0.312500 -4.125000 -v -0.500000 0.312500 -4.875000 +v 0.625000 0.187500 -4.125000 +v 0.625000 1.687500 -3.625000 +v 0.625000 0.187500 -3.625000 +v -0.625000 0.187500 -3.625000 +v -0.625000 1.687500 -3.625000 v -0.500000 1.562500 -4.875000 v 0.500000 1.562500 -4.875000 v 0.500000 0.312500 -4.875000 -v 1.375000 1.875000 -2.562500 -v 1.375000 2.091506 -2.437500 -v 1.375000 2.091506 -2.187500 -v 1.375000 1.875000 -2.062500 +v -0.500000 0.312500 -4.875000 +v 0.500000 0.312500 -4.125000 +v -0.500000 0.312500 -4.125000 +v -0.500000 1.562500 -4.125000 +v 0.500000 1.562500 -4.125000 v 1.375000 1.658494 -2.187500 -v 1.375000 1.658494 -2.437500 -v 0.875000 1.875000 -2.562500 -v 0.875000 2.091506 -2.437500 -v 0.875000 2.091506 -2.187500 -v 0.875000 1.875000 -2.062500 v 0.875000 1.658494 -2.187500 v 0.875000 1.658494 -2.437500 -v 1.375000 1.875000 -2.437500 +v 1.375000 1.658494 -2.437500 +v 1.375000 2.091506 -2.187500 +v 0.875000 2.091506 -2.187500 +v 0.875000 1.875000 -2.062500 +v 1.375000 1.875000 -2.062500 +v 1.375000 1.875000 -2.562500 +v 0.875000 1.875000 -2.562500 +v 0.875000 2.091506 -2.437500 +v 1.375000 2.091506 -2.437500 v 1.375000 1.983253 -2.375000 v 1.375000 1.983253 -2.250000 -v 1.375000 1.875000 -2.187500 +v 1.562500 1.983253 -2.250000 +v 1.562500 1.983253 -2.375000 v 1.375000 1.766747 -2.250000 v 1.375000 1.766747 -2.375000 -v 1.562500 1.875000 -2.437500 -v 1.562500 1.983253 -2.375000 -v 1.562500 1.983253 -2.250000 -v 1.562500 1.875000 -2.187500 -v 1.562500 1.766747 -2.250000 v 1.562500 1.766747 -2.375000 -v 1.562500 1.875000 -2.500000 -v 1.562500 2.037380 -2.406250 -v 1.562500 2.037380 -2.218750 -v 1.562500 1.875000 -2.125000 -v 1.562500 1.712620 -2.218750 +v 1.562500 1.766747 -2.250000 +v 1.375000 1.875000 -2.187500 +v 1.562500 1.875000 -2.187500 +v 1.375000 1.875000 -2.437500 +v 1.562500 1.875000 -2.437500 v 1.562500 1.712620 -2.406250 +v 1.562500 1.712620 -2.218750 +v 1.562500 1.875000 -2.125000 +v 1.562500 2.037380 -2.218750 +v 1.562500 2.037380 -2.406250 +v 1.562500 1.875000 -2.500000 v 2.312500 1.875000 -2.500000 -v 2.312500 2.037380 -2.406250 -v 2.312500 2.037380 -2.218750 -v 2.312500 1.875000 -2.125000 -v 2.312500 1.712620 -2.218750 v 2.312500 1.712620 -2.406250 -v 2.312500 1.875000 -2.437500 -v 2.312500 1.983253 -2.375000 -v 2.312500 1.983253 -2.250000 +v 2.312500 1.712620 -2.218750 +v 2.312500 1.875000 -2.125000 +v 2.312500 2.037380 -2.218750 +v 2.312500 2.037380 -2.406250 v 2.312500 1.875000 -2.187500 -v 2.312500 1.766747 -2.250000 +v 2.312500 1.983253 -2.250000 +v 2.312500 1.983253 -2.375000 +v 2.312500 1.875000 -2.437500 v 2.312500 1.766747 -2.375000 -v 2.500000 1.875000 -2.437500 -v 2.500000 1.983253 -2.375000 -v 2.500000 1.983253 -2.250000 -v 2.500000 1.875000 -2.187500 +v 2.312500 1.766747 -2.250000 v 2.500000 1.766747 -2.250000 +v 2.500000 1.875000 -2.187500 +v 2.500000 1.983253 -2.250000 +v 2.500000 1.983253 -2.375000 v 2.500000 1.766747 -2.375000 -v 2.500000 1.875000 -2.562500 -v 2.500000 2.091506 -2.437500 -v 2.500000 2.091506 -2.187500 +v 2.500000 1.875000 -2.437500 v 2.500000 1.875000 -2.062500 -v 2.500000 1.658494 -2.187500 +v 2.500000 2.091506 -2.187500 +v 2.500000 2.091506 -2.437500 +v 2.500000 1.875000 -2.562500 v 2.500000 1.658494 -2.437500 -v 2.625000 1.875000 -2.562500 -v 2.625000 2.091506 -2.437500 +v 2.500000 1.658494 -2.187500 v 2.625000 2.091506 -2.187500 -v 2.625000 1.875000 -2.062500 -v 2.625000 1.658494 -2.187500 +v 2.625000 2.091506 -2.437500 v 2.625000 1.658494 -2.437500 -v 2.750000 1.875000 -2.437500 +v 2.625000 1.658494 -2.187500 +v 2.625000 1.875000 -2.062500 +v 2.625000 1.875000 -2.562500 v 2.750000 1.983253 -2.375000 -v 2.750000 1.983253 -2.250000 -v 2.750000 1.875000 -2.187500 -v 2.750000 1.766747 -2.250000 +v 2.750000 1.875000 -2.437500 v 2.750000 1.766747 -2.375000 +v 2.750000 1.766747 -2.250000 +v 2.750000 1.875000 -2.187500 +v 2.750000 1.983253 -2.250000 v -0.187500 1.625000 -4.125000 v 0.187500 1.625000 -4.125000 -v -0.187500 1.625000 -5.000000 v 0.187500 1.625000 -5.000000 -v -0.187500 1.250000 -5.000000 -v -0.187500 1.250000 -4.125000 -v 0.187500 1.250000 -4.125000 +v -0.187500 1.625000 -5.000000 +v -0.187500 1.669194 -5.397748 +v -0.187500 2.022748 -5.044194 +v -0.187500 2.287913 -5.309359 +v -0.187500 2.022748 -5.574524 +v -0.187500 1.845971 -5.574524 v 0.187500 1.250000 -5.000000 +v -0.187500 1.250000 -5.000000 +v 0.187500 1.250000 -4.125000 +v -0.187500 1.250000 -4.125000 v -0.125000 1.625000 -4.734835 v 0.125000 1.625000 -4.734835 -v -0.125000 1.359835 -5.000000 -v 0.125000 1.359835 -5.000000 v 0.125000 1.978553 -5.088388 v -0.125000 1.978553 -5.088388 -v 0.125000 1.713388 -5.353553 +v -0.125000 1.359835 -5.000000 v -0.125000 1.713388 -5.353553 -v -0.187500 2.022748 -5.044194 -v 0.187500 2.022748 -5.044194 -v -0.187500 1.669194 -5.397748 +v 0.125000 1.359835 -5.000000 +v 0.125000 1.713388 -5.353553 v 0.187500 1.669194 -5.397748 -v 0.187500 2.287913 -5.309359 -v -0.187500 2.287913 -5.309359 -v 0.187500 1.845971 -5.574524 -v -0.187500 1.845971 -5.574524 +v 0.187500 2.022748 -5.044194 v 0.187500 2.022748 -5.574524 -v -0.187500 2.022748 -5.574524 -v -0.062500 2.066942 -5.088388 -v 0.062500 2.066942 -5.088388 -v -0.062500 2.243718 -5.265165 -v 0.062500 2.243718 -5.265165 -v -0.062500 2.774049 -4.734835 +v 0.187500 1.845971 -5.574524 +v 0.187500 2.287913 -5.309359 v -0.062500 2.597272 -4.558058 v 0.062500 2.597272 -4.558058 v 0.062500 2.774049 -4.734835 -v 0.000000 2.374456 -2.778129 -v -0.125000 2.344101 -2.792284 -v -0.216506 2.261168 -2.830956 -v -0.250000 2.147880 -2.883784 -v -0.216506 2.034591 -2.936611 -v -0.125000 1.951658 -2.975283 -v -0.000000 1.921303 -2.989438 -v 0.125000 1.951658 -2.975283 -v 0.216506 2.034591 -2.936611 +v -0.062500 2.774049 -4.734835 +v 0.062500 2.066942 -5.088388 +v 0.062500 2.243718 -5.265165 +v -0.062500 2.243718 -5.265165 +v -0.062500 2.066942 -5.088388 v -0.125000 2.423342 -2.962217 v 0.000000 2.453697 -2.948062 -v -0.216506 2.340409 -3.000889 -v -0.250000 2.227120 -3.053716 -v -0.216506 2.113832 -3.106544 -v -0.125000 2.030899 -3.145216 -v -0.000000 2.000544 -3.159371 -v 0.125000 2.030899 -3.145216 -v 0.216506 2.113832 -3.106544 -v 0.250000 2.227120 -3.053716 -v 0.216506 2.340409 -3.000889 v 0.125000 2.423342 -2.962217 +v 0.216506 2.340409 -3.000889 +v 0.250000 2.227120 -3.053716 +v 0.216506 2.113832 -3.106544 +v 0.125000 2.030899 -3.145216 +v 0.000000 2.000544 -3.159371 +v -0.125000 2.030899 -3.145216 +v -0.216506 2.113832 -3.106544 +v -0.250000 2.227120 -3.053716 +v -0.216506 2.340409 -3.000889 +v 0.000000 2.374456 -2.778129 v 0.000000 2.487745 -2.725302 -v 0.324759 1.977947 -2.963025 -v 0.375000 2.147880 -2.883783 -v 0.324760 2.317812 -2.804543 -v 0.187500 2.442212 -2.746534 v 0.000000 2.566986 -2.895234 +v 0.324759 1.977947 -2.963025 +v 0.216506 2.034591 -2.936611 v 0.324759 2.057188 -3.132957 v 0.375000 2.227120 -3.053716 v 0.324760 2.397053 -2.974475 v 0.187500 2.521452 -2.916467 -v -0.375000 2.034591 -2.936611 -v -0.437500 2.049769 -2.929533 -v -0.483253 2.091235 -2.910197 -v -0.500000 2.147880 -2.883784 -v -0.483253 2.204524 -2.857370 -v -0.437500 2.245990 -2.838034 -v -0.375000 2.261168 -2.830956 -v -0.312500 2.245990 -2.838034 -v -0.266747 2.204524 -2.857370 -v -0.250000 2.147880 -2.883784 -v -0.266747 2.091235 -2.910197 -v -0.312500 2.049769 -2.929533 -v -0.375000 2.087419 -3.049900 +v 0.324760 2.317812 -2.804543 +v 0.187500 2.442212 -2.746534 v -0.437500 2.102596 -3.042822 v -0.483253 2.144063 -3.023486 v -0.500000 2.200707 -2.997072 @@ -1340,527 +491,374 @@ v -0.266747 2.257351 -2.970659 v -0.250000 2.200707 -2.997072 v -0.266747 2.144063 -3.023486 v -0.312500 2.102596 -3.042822 -v 0.625000 2.375000 -0.875000 -v 1.125000 1.875000 -0.875000 -v 0.625000 2.375000 -1.875000 -v 1.125000 1.875000 -1.625000 -v -0.625000 2.375000 -0.875000 -v -0.625000 2.375000 -1.875000 -v -1.125000 1.875000 -0.875000 +v -0.375000 2.087419 -3.049900 +v -1.125000 1.875000 -1.875000 v -1.125000 1.875000 -1.625000 -v -1.036612 1.786612 -2.600000 -v -0.536612 2.286612 -2.375000 -v -1.036612 1.786612 -1.875000 -v -0.536612 2.286612 -2.125000 -v 0.948223 1.698223 -1.625000 +v -0.625000 2.375000 -1.875000 +v -0.625000 2.375000 -2.125000 +v -0.625000 2.375000 -0.875000 +v -1.125000 1.875000 -0.875000 +v -1.125000 1.875000 -2.625000 +v -0.625000 2.375000 -2.375000 +v 1.125000 1.875000 -0.875000 +v 0.625000 2.375000 -0.875000 +v 1.125000 1.875000 -1.625000 +v 0.625000 2.375000 -1.875000 v 0.448223 2.198223 -1.875000 -v 0.948223 1.698223 -0.875000 -v 0.448223 2.198223 -0.875000 -v 0.875000 1.948223 -1.125000 -v 0.911612 2.036612 -1.125000 -v 0.875000 2.125000 -1.125000 -v -0.875000 2.125000 -1.125000 -v -0.911612 2.036612 -1.125000 -v -0.875000 1.948223 -1.125000 -v 0.137500 2.062500 -3.437400 -v -0.137500 2.062500 -3.749900 -v -0.012500 2.062500 -3.749900 -v -0.698223 2.125000 -1.125000 -v -0.786612 2.161612 -1.125000 -v -0.823223 2.073223 -0.948223 -v -0.867418 1.992418 -0.974112 -v -0.849112 1.922335 -1.036612 -v 0.137500 2.062500 -3.749900 -v 0.012500 2.062500 -3.749900 -v -0.672335 2.099112 -1.036612 -v -0.742418 2.117417 -0.974112 -v -0.698223 1.948223 -0.875000 -v -0.760723 1.885723 -0.911612 -v -0.786612 1.859835 -1.000000 -v 0.012500 1.937500 -3.749900 -v 0.137500 1.937500 -3.749900 -v -0.609835 2.036612 -1.000000 -v -0.635723 2.010723 -0.911612 -v -0.698223 2.301777 -1.125000 -v -0.734835 2.213388 -1.125000 -v -0.698223 2.125000 -1.125000 -v 0.012500 1.937500 -3.874900 -v 0.137500 1.937500 -3.874900 -v -0.012500 1.937500 -3.874900 -v -0.521447 2.301777 -1.125000 -v -0.609835 2.338388 -1.125000 -v -0.646447 2.250000 -0.948223 -v -0.690641 2.169194 -0.974112 -v -0.672335 2.099112 -1.036612 -v -0.012500 1.937500 -3.749900 -v -0.137500 1.937500 -3.749900 -v -0.495558 2.275888 -1.036612 -v -0.565641 2.294194 -0.974112 -v -0.521447 2.125000 -0.875000 -v -0.583947 2.062500 -0.911612 -v -0.609835 2.036612 -1.000000 -v -0.137500 1.937500 -3.874900 -v -0.137500 1.687500 -3.749900 -v -0.433058 2.213388 -1.000000 -v -0.458947 2.187500 -0.911612 -v -1.051777 1.948223 -1.125000 -v -1.088388 1.859835 -1.125000 -v -1.051777 1.771446 -1.125000 -v -0.012500 1.687500 -3.749900 -v -0.137500 1.687500 -3.874900 -v -0.012500 1.687500 -3.874900 -v -0.875000 1.948223 -1.125000 -v -0.963388 1.984835 -1.125000 -v -1.000000 1.896446 -0.948223 -v -1.044194 1.815641 -0.974112 -v -1.025888 1.745558 -1.036612 -v 0.137500 1.687500 -3.874900 -v 0.012500 1.687500 -3.874900 -v -0.849112 1.922335 -1.036612 -v -0.919194 1.940641 -0.974112 -v -0.875000 1.771446 -0.875000 -v -0.937500 1.708946 -0.911612 -v -0.963388 1.683058 -1.000000 -v 0.137500 1.687500 -3.749900 -v 0.012500 1.687500 -3.749900 -v -0.786612 1.859835 -1.000000 -v -0.812500 1.833946 -0.911612 -v -0.875000 2.125000 -1.812500 -v -0.911612 2.036612 -1.812500 -v -0.875000 1.948223 -1.812500 -v -0.698223 2.125000 -1.812500 -v -0.786612 2.161612 -1.812500 -v -0.698223 2.301777 -1.875000 -v -0.734835 2.213388 -1.875000 -v -0.698223 2.125000 -1.875000 -v -0.521447 2.301777 -1.875000 -v -0.609835 2.338388 -1.875000 -v -1.051777 1.948223 -1.750000 -v -1.088388 1.859835 -1.750000 -v -1.051777 1.771446 -1.750000 -v -0.875000 1.948223 -1.750000 -v -0.963388 1.984835 -1.750000 +v 0.948223 1.698223 -1.625000 +v -1.036612 1.786612 -1.875000 +v -1.036612 1.786612 -2.625000 +v -0.948223 1.698223 -1.625000 v -0.448223 2.198223 -1.875000 +v -0.536612 2.286612 -2.375000 +v -0.536612 2.286612 -2.125000 v -0.448223 2.198223 -0.875000 v -0.948223 1.698223 -0.875000 -v -0.948223 1.698223 -1.625000 -v 0.698223 2.125000 -1.125000 -v 0.786612 2.161612 -1.125000 -v 0.823223 2.073223 -0.948223 -v 0.867418 1.992418 -0.974112 -v 0.849112 1.922335 -1.036612 -v 0.672335 2.099112 -1.036612 -v 0.742418 2.117417 -0.974112 -v 0.698223 1.948223 -0.875000 -v 0.760723 1.885723 -0.911612 -v 0.786612 1.859835 -1.000000 -v -0.012500 2.134191 -3.062400 -v 0.609835 2.036612 -1.000000 -v 0.635723 2.010723 -0.911612 -v 0.698223 2.301777 -1.125000 -v 0.734835 2.213388 -1.125000 -v 0.698223 2.125000 -1.125000 -v -0.137500 2.134191 -3.062400 -v 0.137500 2.134191 -3.062400 -v 0.012500 2.134191 -3.062400 -v 0.521447 2.301777 -1.125000 -v 0.609835 2.338388 -1.125000 -v 0.646447 2.250000 -0.948223 -v 0.690641 2.169194 -0.974112 -v 0.672335 2.099112 -1.036612 -v 0.137500 2.009191 -3.062400 -v 0.012500 2.009191 -3.062400 -v 0.495558 2.275888 -1.036612 -v 0.565641 2.294194 -0.974112 -v 0.521447 2.125000 -0.875000 -v 0.583947 2.062500 -0.911612 -v 0.609835 2.036612 -1.000000 -v -0.012500 2.009191 -3.062400 -v -0.137500 2.009191 -3.062400 -v 0.433058 2.213388 -1.000000 -v 0.458947 2.187500 -0.911612 -v 1.051777 1.948223 -1.125000 -v 1.088388 1.859835 -1.125000 -v 1.051777 1.771446 -1.125000 +v 0.948223 1.698223 -0.875000 +v 0.448223 2.198223 -0.875000 +v -0.137500 2.062500 -3.749900 +v -0.137500 1.937500 -3.749900 v -0.137500 2.062500 -3.437400 v -0.137500 2.187500 -3.437400 -v -0.012500 2.187500 -3.437400 -v 0.875000 1.948223 -1.125000 -v 0.963388 1.984835 -1.125000 -v 1.000000 1.896446 -0.948223 -v 1.044194 1.815641 -0.974112 -v 1.025888 1.745558 -1.036612 +v -0.012500 1.937500 -3.749900 v -0.012500 2.062500 -3.437400 -v 0.012500 2.062500 -3.437400 -v 0.849112 1.922335 -1.036612 -v 0.919194 1.940641 -0.974112 -v 0.875000 1.771446 -0.875000 -v 0.937500 1.708946 -0.911612 -v 0.963388 1.683058 -1.000000 -v 0.012500 2.187500 -3.437400 +v 0.137500 1.937500 -3.749900 +v 0.137500 2.062500 -3.749900 v 0.137500 2.187500 -3.437400 -v 0.786612 1.859835 -1.000000 -v 0.812500 1.833946 -0.911612 -v 0.875000 2.125000 -1.812500 -v 0.911612 2.036612 -1.812500 -v 0.875000 1.948223 -1.812500 -v 0.698223 2.125000 -1.812500 -v 0.786612 2.161612 -1.812500 -v 0.698223 2.301777 -1.875000 -v 0.734835 2.213388 -1.875000 -v 0.698223 2.125000 -1.875000 -v 0.521447 2.301777 -1.875000 -v 0.609835 2.338388 -1.875000 -v 1.051777 1.948223 -1.750000 -v 1.088388 1.859835 -1.750000 -v 1.051777 1.771446 -1.750000 -v 0.875000 1.948223 -1.750000 -v 0.963388 1.984835 -1.750000 -v 1.187500 1.359472 -0.413125 -v 1.187500 1.246183 -0.360298 -v 1.187500 1.253817 -0.639702 -v 1.187500 1.140528 -0.586875 -v 1.062500 1.253817 -0.639702 -v 1.062500 1.359472 -0.413125 -v 1.062500 1.246183 -0.360298 -v 1.062500 1.140528 -0.586875 -v -1.187500 1.140528 -0.413125 -v -1.187500 1.253817 -0.360298 -v -1.187500 1.246183 -0.639702 -v -1.187500 1.359471 -0.586875 -v -1.062500 1.246183 -0.639702 -v -1.062500 1.140528 -0.413125 -v -1.062500 1.253817 -0.360298 -v -1.062500 1.359471 -0.586875 -v 0.109472 0.062500 -0.413125 -v -0.003817 0.062500 -0.360298 -v 0.003817 0.062500 -0.639702 -v -0.109472 0.062500 -0.586875 -v 0.003817 0.187500 -0.639702 -v 0.109472 0.187500 -0.413125 -v -0.003817 0.187500 -0.360298 -v -0.109472 0.187500 -0.586875 +v 0.137500 2.062500 -3.437400 +v -0.012500 2.062500 -3.749900 +v -0.012500 2.187500 -3.437400 +v 0.137500 2.134191 -3.062400 +v 0.137500 2.009191 -3.062400 +v -0.012500 2.009191 -3.062400 +v -0.137500 2.009191 -3.062400 +v -0.012500 1.937500 -3.874900 +v -0.137500 1.937500 -3.874900 +v 0.137500 1.937500 -3.874900 +v 0.012500 1.937500 -3.874900 +v 0.012500 2.062500 -3.749900 +v 0.012500 1.937500 -3.749900 +v -0.012500 1.687500 -3.874900 +v -0.137500 1.687500 -3.874900 +v -0.137500 1.687500 -3.749900 +v -0.012500 1.687500 -3.749900 +v 0.137500 1.687500 -3.749900 +v 0.137500 1.687500 -3.874900 +v 0.012500 1.687500 -3.874900 +v 0.012500 1.687500 -3.749900 +v 0.012500 2.062500 -3.437400 +v 0.625000 2.001000 -3.187500 +v 0.625000 2.001000 -3.062500 +v 0.875000 2.001000 -3.062500 +v 0.875000 2.001000 -3.187500 +v 0.012500 2.187500 -3.437400 +v 0.012500 2.134191 -3.062400 +v 0.012500 2.009191 -3.062400 +v -0.137500 2.134191 -3.062400 +v -0.012500 2.134191 -3.062400 v -0.109472 2.437500 -0.413125 v 0.003817 2.437500 -0.360298 -v -0.003817 2.437500 -0.639702 v 0.109472 2.437500 -0.586875 +v -0.003817 2.437500 -0.639702 +v 0.109472 2.312500 -0.586875 v -0.003817 2.312500 -0.639702 v -0.109472 2.312500 -0.413125 v 0.003817 2.312500 -0.360298 -v 0.109472 2.312500 -0.586875 -v 0.917097 0.487719 -0.413125 -v 0.836990 0.407612 -0.360298 -v 0.842388 0.413010 -0.639702 -v 0.762281 0.332903 -0.586875 -v 0.754000 0.501398 -0.639702 -v 0.828709 0.576107 -0.413125 -v 0.748602 0.496000 -0.360298 -v 0.673893 0.421291 -0.586875 -v -0.917097 2.012281 -0.413125 -v -0.836990 2.092388 -0.360298 -v -0.842388 2.086990 -0.639702 -v -0.762281 2.167097 -0.586875 -v -0.754000 1.998602 -0.639702 -v -0.828709 1.923893 -0.413125 -v -0.748602 2.004000 -0.360298 -v -0.673893 2.078709 -0.586875 -v -0.762281 0.332902 -0.413125 -v -0.842388 0.413010 -0.360298 -v -0.836990 0.407611 -0.639702 -v -0.917097 0.487719 -0.586875 -v -0.748602 0.496000 -0.639702 -v -0.673893 0.421291 -0.413125 -v -0.754000 0.501398 -0.360298 -v -0.828709 0.576107 -0.586875 -v 0.762281 2.167097 -0.413125 -v 0.842388 2.086990 -0.360298 -v 0.836990 2.092388 -0.639702 -v 0.917097 2.012281 -0.586875 -v 0.748602 2.004000 -0.639702 -v 0.673893 2.078709 -0.413125 -v 0.754000 1.998602 -0.360298 -v 0.828709 1.923893 -0.586875 -v -0.498945 0.166859 -0.413125 -v -0.597056 0.223503 -0.360298 -v -0.590444 0.219686 -0.639702 -v -0.688555 0.276330 -0.586875 -v -0.527944 0.327939 -0.639702 -v -0.436445 0.275112 -0.413125 -v -0.534556 0.331756 -0.360298 -v -0.626055 0.384584 -0.586875 -v 0.498945 2.333141 -0.413125 -v 0.597056 2.276496 -0.360298 -v 0.590444 2.280313 -0.639702 -v 0.688555 2.223669 -0.586875 -v 0.527944 2.172060 -0.639702 -v 0.436445 2.224888 -0.413125 -v 0.534556 2.168243 -0.360298 -v 0.626055 2.115416 -0.586875 -v -1.083141 1.748945 -0.413125 -v -1.026497 1.847055 -0.360298 -v -1.030314 1.840444 -0.639702 -v -0.973670 1.938555 -0.586875 -v -0.922061 1.777944 -0.639702 -v -0.974888 1.686445 -0.413125 -v -0.918244 1.784555 -0.360298 -v -0.865416 1.876055 -0.586875 -v 1.083141 0.751055 -0.413125 -v 1.026497 0.652944 -0.360298 -v 1.030314 0.659555 -0.639702 -v 0.973669 0.561445 -0.586875 -v 0.922060 0.722055 -0.639702 -v 0.974888 0.813555 -0.413125 -v 0.918243 0.715444 -0.360298 -v 0.865416 0.623945 -0.586875 -v -1.118704 0.836911 -0.413125 -v -1.148025 0.946339 -0.360298 -v -1.146049 0.938965 -0.639702 -v -1.175370 1.048394 -0.586875 -v -1.025308 0.971318 -0.639702 -v -0.997963 0.869263 -0.413125 -v -1.027284 0.978692 -0.360298 -v -1.054630 1.080746 -0.586875 -v 1.118703 1.663089 -0.413125 -v 1.148025 1.553661 -0.360298 -v 1.146049 1.561034 -0.639702 -v 1.175370 1.451606 -0.586875 -v 1.025308 1.528682 -0.639702 -v 0.997963 1.630736 -0.413125 -v 1.027284 1.521308 -0.360298 -v 1.054629 1.419254 -0.586875 -v -0.413089 2.368703 -0.413125 -v -0.303661 2.398025 -0.360298 -v -0.311035 2.396049 -0.639702 -v -0.201606 2.425370 -0.586875 -v -0.278682 2.275308 -0.639702 -v -0.380737 2.247963 -0.413125 -v -0.271308 2.277284 -0.360298 -v -0.169254 2.304629 -0.586875 -v 0.413089 0.131296 -0.413125 -v 0.303660 0.101975 -0.360298 -v 0.311034 0.103951 -0.639702 -v 0.201606 0.074629 -0.586875 -v 0.278682 0.224691 -0.639702 -v 0.380737 0.252037 -0.413125 -v 0.271308 0.222716 -0.360298 -v 0.169254 0.195370 -0.586875 -v -0.688555 2.223669 -0.413125 -v -0.590445 2.280313 -0.360298 -v -0.597056 2.276496 -0.639702 -v -0.498945 2.333141 -0.586875 -v -0.534556 2.168243 -0.639702 -v -0.626055 2.115416 -0.413125 -v -0.527945 2.172060 -0.360298 -v -0.436445 2.224888 -0.586875 -v 0.688555 0.276330 -0.413125 -v 0.590444 0.219686 -0.360298 -v 0.597055 0.223503 -0.639702 -v 0.498945 0.166859 -0.586875 -v 0.534555 0.331756 -0.639702 -v 0.626055 0.384583 -0.413125 -v 0.527944 0.327939 -0.360298 -v 0.436445 0.275112 -0.586875 -v 0.973669 1.938555 -0.413125 -v 1.030313 1.840444 -0.360298 -v 1.026497 1.847055 -0.639702 -v 1.083141 1.748945 -0.586875 -v 0.918244 1.784555 -0.639702 -v 0.865416 1.876055 -0.413125 -v 0.922060 1.777944 -0.360298 -v 0.974888 1.686445 -0.586875 -v -0.973670 0.561445 -0.413125 -v -1.030314 0.659556 -0.360298 -v -1.026497 0.652944 -0.639702 -v -1.083141 0.751055 -0.586875 -v -0.918244 0.715444 -0.639702 -v -0.865416 0.623945 -0.413125 -v -0.922061 0.722056 -0.360298 -v -0.974888 0.813555 -0.586875 -v 0.201606 2.425370 -0.413125 -v 0.311034 2.396049 -0.360298 -v 0.303661 2.398025 -0.639702 -v 0.413089 2.368704 -0.586875 -v 0.271308 2.277284 -0.639702 -v 0.169254 2.304629 -0.413125 -v 0.278682 2.275308 -0.360298 -v 0.380737 2.247963 -0.586875 -v -0.201606 0.074630 -0.413125 -v -0.311035 0.103951 -0.360298 -v -0.303661 0.101975 -0.639702 -v -0.413089 0.131296 -0.586875 -v -0.271309 0.222716 -0.639702 -v -0.169254 0.195370 -0.413125 -v -0.278682 0.224692 -0.360298 -v -0.380737 0.252037 -0.586875 -v 1.175370 1.048394 -0.413125 -v 1.146049 0.938965 -0.360298 -v 1.148025 0.946339 -0.639702 -v 1.118704 0.836911 -0.586875 -v 1.027284 0.978692 -0.639702 -v 1.054629 1.080746 -0.413125 -v 1.025308 0.971318 -0.360298 -v 0.997963 0.869263 -0.586875 -v -1.175371 1.451606 -0.413125 -v -1.146049 1.561035 -0.360298 -v -1.148025 1.553661 -0.639702 -v -1.118704 1.663089 -0.586875 -v -1.027284 1.521308 -0.639702 -v -1.054630 1.419254 -0.413125 -v -1.025308 1.528682 -0.360298 -v -0.997963 1.630737 -0.586875 -v 0.625000 1.876000 -3.062500 -v 0.625000 2.001000 -3.062500 v -0.625000 1.938500 -3.250000 v 0.625000 1.938500 -3.250000 -v -0.625000 1.830247 -3.187500 v 0.625000 1.830247 -3.187500 -v -0.625000 1.830247 -3.062500 +v -0.625000 1.830247 -3.187500 +v 0.625000 1.876000 -3.062500 +v 0.875000 1.876000 -3.062500 v 0.625000 1.830247 -3.062500 -v -0.625000 1.938500 -3.000000 -v 0.625000 1.938500 -3.000000 -v -0.625000 2.046753 -3.062500 -v 0.625000 2.046753 -3.062500 -v -0.625000 2.046753 -3.187500 -v 0.625000 2.046753 -3.187500 -v 0.625000 2.001000 -3.187500 +v -0.625000 1.830247 -3.062500 v 0.625000 1.876000 -3.187500 v 0.875000 1.876000 -3.187500 -v 0.875000 2.001000 -3.187500 -v 0.875000 1.876000 -3.062500 -v 0.875000 2.001000 -3.062500 +v 0.625000 1.938500 -3.000000 +v -0.625000 1.938500 -3.000000 +v 0.625000 2.046753 -3.062500 +v -0.625000 2.046753 -3.062500 +v 0.625000 2.046753 -3.187500 +v -0.625000 2.046753 -3.187500 v 1.000000 2.001000 -3.187500 v 1.000000 2.001000 -3.062500 v 0.875000 2.126000 -3.187500 -v 0.875000 2.126000 -3.062500 -v 1.000000 2.126000 -3.062500 v 1.000000 2.126000 -3.187500 -v 0.875000 2.251000 -3.187500 -v 1.000000 2.251000 -3.187500 v 0.875000 2.126000 -3.312500 v 1.000000 2.126000 -3.312500 +v 1.000000 2.126000 -3.062500 +v 0.875000 2.126000 -3.062500 +v 1.000000 2.251000 -3.187500 +v 0.875000 2.251000 -3.187500 v 0.875000 2.251000 -3.312500 v 1.000000 2.251000 -3.312500 -v 0.875000 1.876000 -3.937500 -v 1.000000 1.876000 -3.937500 -v 0.875000 2.001000 -3.937500 v 1.000000 2.001000 -3.937500 -v 0.875000 1.876000 -4.062500 +v 0.875000 2.001000 -3.937500 +v 1.000000 1.876000 -3.937500 v 1.000000 1.876000 -4.062500 -v 1.000000 1.626000 -3.937500 -v 0.875000 1.626000 -3.937500 +v 0.875000 1.876000 -3.937500 +v 0.875000 1.876000 -4.062500 v 0.875000 1.626000 -4.062500 -v 1.000000 1.626000 -4.062500 -v 0.875000 1.501000 -4.062500 +v 0.875000 1.626000 -3.937500 v 0.875000 1.501000 -3.937500 v 0.625000 1.626000 -3.937500 +v 0.625000 1.501000 -3.937500 +v 1.000000 1.626000 -3.937500 +v 1.000000 1.626000 -4.062500 +v 0.875000 1.501000 -4.062500 v 0.625000 1.626000 -4.062500 v 0.625000 1.501000 -4.062500 -v 0.625000 1.501000 -3.937500 -vn 0.0000 -1.0000 0.0000 +v -0.382683 2.173880 -0.125000 +v 0.000000 2.250000 -0.125000 +v 0.382683 2.173880 -0.125000 +v 0.707106 1.957107 -0.125000 +v 0.923880 1.632684 -0.125000 +v 1.000000 1.250000 -0.125000 +v 0.923880 0.867316 -0.125000 +v 0.707106 0.542893 -0.125000 +v 0.382683 0.326120 -0.125000 +v 0.000000 0.250000 -0.125000 +v -0.382684 0.326120 -0.125000 +v -0.707108 0.542893 -0.125000 +v -0.923880 0.867316 -0.125000 +v -1.000000 1.250000 -0.125000 +v -0.923880 1.632683 -0.125000 +v -0.707108 1.957107 -0.125000 +v -0.382683 2.173880 -0.500000 +v 0.000000 2.250000 -0.500000 +v 0.382683 2.173880 -0.500000 +v 0.382683 0.326120 -0.500000 +v 0.000000 0.250000 -0.500000 +v -0.707108 1.957107 -0.500000 +v 0.707106 0.542893 -0.500000 +v -0.923880 1.632683 -0.500000 +v 0.923880 0.867316 -0.500000 +v -1.000000 1.250000 -0.500000 +v 1.000000 1.250000 -0.500000 +v -0.923880 0.867316 -0.500000 +v 0.923880 1.632684 -0.500000 +v -0.707108 0.542893 -0.500000 +v 0.707106 1.957107 -0.500000 +v -0.382684 0.326120 -0.500000 +v 0.110485 0.764515 -0.750000 +v 0.156250 0.875000 -0.750000 +v 0.156250 0.737706 -0.418544 +v 0.110485 0.659581 -0.496669 +v 0.110485 0.985485 -0.750000 +v 0.000000 1.031250 -0.750000 +v 0.000000 0.848192 -0.308058 +v 0.110485 0.815831 -0.340419 +v -0.110486 0.985485 -0.750000 +v -0.156250 0.875000 -0.750000 +v -0.156250 0.737706 -0.418544 +v -0.110486 0.815831 -0.340419 +v -0.110486 0.764515 -0.750000 +v -0.110486 0.659581 -0.496669 +v 0.000000 0.718750 -0.750000 +v 0.000000 0.627221 -0.529029 +v -0.156250 0.585633 -0.316931 +v -0.110486 0.627914 -0.214856 +v 0.000000 0.645427 -0.172575 +v 0.110485 0.627914 -0.214856 +v 0.156250 0.585633 -0.316931 +v 0.110485 0.543352 -0.419007 +v 0.000000 0.525838 -0.461288 +v -0.110486 0.543352 -0.419007 +v 0.110485 0.406250 -0.391735 +v 0.000000 0.406250 -0.437500 +v -0.110486 0.406250 -0.391735 +v -0.156250 0.406250 -0.281250 +v -0.110486 0.406250 -0.170765 +v 0.000000 0.406250 -0.125000 +v 0.110485 0.406250 -0.170765 +v 0.156250 0.406250 -0.281250 +v -0.110486 0.184586 -0.214856 +v 0.000000 0.167073 -0.172575 +v 0.110485 0.184586 -0.214856 +v 0.156250 0.226867 -0.316932 +v 0.110485 0.269148 -0.419007 +v 0.000000 0.286661 -0.461288 +v -0.110486 0.269148 -0.419007 +v -0.156250 0.226867 -0.316932 +v -0.196566 0.367147 -0.468769 +v -0.200528 0.477172 -0.515462 +v -0.286731 0.557772 -0.534803 +v -0.404678 0.561734 -0.515462 +v -0.485279 0.486735 -0.468769 +v -0.481318 0.376710 -0.422076 +v -0.395115 0.296110 -0.402735 +v -0.277166 0.292148 -0.422076 +v 0.230970 1.345671 -0.750000 +v 0.095671 1.480970 -0.750000 +v 0.095671 1.019030 -0.750000 +v 0.230970 1.154329 -0.750000 +v -0.230970 1.154329 -0.750000 +v -0.095671 1.019030 -0.750000 +v -0.095671 1.480970 -0.750000 +v -0.230970 1.345671 -0.750000 +v 0.000000 1.921303 -2.989438 +v -0.125000 1.951658 -2.975283 +v -0.250000 2.147880 -2.883784 +v -0.216506 2.261168 -2.830956 +v 0.125000 1.951658 -2.975283 +v -0.216506 2.034591 -2.936611 +v -0.125000 2.344101 -2.792284 +v 0.375000 2.147880 -2.883783 +v -0.375000 2.261168 -2.830956 +v -0.312500 2.245990 -2.838034 +v -0.500000 2.147880 -2.883784 +v -0.483253 2.204524 -2.857370 +v -0.266747 2.091235 -2.910197 +v -0.312500 2.049769 -2.929533 +v -0.375000 2.034591 -2.936611 +v -0.437500 2.049769 -2.929533 +v -0.266747 2.204524 -2.857370 +v -0.437500 2.245990 -2.838034 +v -0.483253 2.091235 -2.910197 +v -0.250000 2.147880 -2.883784 +v 0.911612 2.036612 -1.125000 +v 0.875000 2.125000 -1.125000 +v 0.823223 2.073223 -0.948223 +v 0.867418 1.992418 -0.974112 +v 0.786612 2.161612 -1.125000 +v 0.698223 2.125000 -1.125000 +v 0.672335 2.099112 -1.036612 +v 0.742418 2.117417 -0.974112 +v -0.786612 2.161612 -1.125000 +v -0.742418 2.117417 -0.974112 +v -0.672335 2.099112 -1.036612 +v -0.698223 2.125000 -1.125000 +v -0.911612 2.036612 -1.125000 +v -0.867418 1.992418 -0.974112 +v -0.823223 2.073223 -0.948223 +v -0.875000 2.125000 -1.125000 +v -0.875000 1.948223 -1.125000 +v -0.849112 1.922335 -1.036612 +v -0.698223 1.948223 -0.875000 +v -0.635723 2.010723 -0.911612 +v -0.786612 1.859835 -1.000000 +v -0.760723 1.885723 -0.911612 +v -0.609835 2.036612 -1.000000 +v -0.609835 2.338388 -1.125000 +v -0.565641 2.294194 -0.974112 +v -0.495558 2.275888 -1.036612 +v -0.521447 2.301777 -1.125000 +v -0.734835 2.213388 -1.125000 +v -0.690641 2.169194 -0.974112 +v -0.646447 2.250000 -0.948223 +v -0.698223 2.301777 -1.125000 +v -0.698223 2.125000 -1.125000 +v -0.672335 2.099112 -1.036612 +v -0.521447 2.125000 -0.875000 +v -0.458947 2.187500 -0.911612 +v -0.609835 2.036612 -1.000000 +v -0.583947 2.062500 -0.911612 +v -0.433058 2.213388 -1.000000 +v -0.963388 1.984835 -1.125000 +v -0.919194 1.940641 -0.974112 +v -0.849112 1.922335 -1.036612 +v -0.875000 1.948223 -1.125000 +v -1.088388 1.859835 -1.125000 +v -1.044194 1.815641 -0.974112 +v -1.000000 1.896446 -0.948223 +v -1.051777 1.948223 -1.125000 +v -1.051777 1.771446 -1.125000 +v -1.025888 1.745558 -1.036612 +v -0.875000 1.771446 -0.875000 +v -0.812500 1.833946 -0.911612 +v -0.963388 1.683058 -1.000000 +v -0.937500 1.708946 -0.911612 +v -0.786612 1.859835 -1.000000 +v -0.698223 2.125000 -1.812500 +v -0.786612 2.161612 -1.812500 +v -0.521447 2.301777 -1.875000 +v -0.609835 2.338388 -1.875000 +v -0.875000 2.125000 -1.812500 +v -0.911612 2.036612 -1.812500 +v -0.875000 1.948223 -1.750000 +v -0.963388 1.984835 -1.750000 +v -0.698223 2.301777 -1.875000 +v -0.875000 1.948223 -1.812500 +v -0.734835 2.213388 -1.875000 +v -1.051777 1.948223 -1.750000 +v -1.088388 1.859835 -1.750000 +v -0.698223 2.125000 -1.875000 +v -1.051777 1.771446 -1.750000 +v 0.875000 1.948223 -1.125000 +v 0.849112 1.922335 -1.036612 +v 0.635723 2.010723 -0.911612 +v 0.698223 1.948223 -0.875000 +v 0.760723 1.885723 -0.911612 +v 0.786612 1.859835 -1.000000 +v 0.609835 2.036612 -1.000000 +v 0.609835 2.338388 -1.125000 +v 0.521447 2.301777 -1.125000 +v 0.495558 2.275888 -1.036612 +v 0.565641 2.294194 -0.974112 +v 0.734835 2.213388 -1.125000 +v 0.698223 2.301777 -1.125000 +v 0.646447 2.250000 -0.948223 +v 0.690641 2.169194 -0.974112 +v 0.698223 2.125000 -1.125000 +v 0.672335 2.099112 -1.036612 +v 0.458947 2.187500 -0.911612 +v 0.521447 2.125000 -0.875000 +v 0.583947 2.062500 -0.911612 +v 0.609835 2.036612 -1.000000 +v 0.433058 2.213388 -1.000000 +v 0.963388 1.984835 -1.125000 +v 0.875000 1.948223 -1.125000 +v 0.849112 1.922335 -1.036612 +v 0.919194 1.940641 -0.974112 +v 1.088388 1.859835 -1.125000 +v 1.051777 1.948223 -1.125000 +v 1.000000 1.896446 -0.948223 +v 1.044194 1.815641 -0.974112 +v 1.051777 1.771446 -1.125000 +v 1.025888 1.745558 -1.036612 +v 0.812500 1.833946 -0.911612 +v 0.875000 1.771446 -0.875000 +v 0.937500 1.708946 -0.911612 +v 0.963388 1.683058 -1.000000 +v 0.786612 1.859835 -1.000000 +v 0.786612 2.161612 -1.812500 +v 0.698223 2.125000 -1.812500 +v 0.609835 2.338388 -1.875000 +v 0.521447 2.301777 -1.875000 +v 0.875000 2.125000 -1.812500 +v 0.911612 2.036612 -1.812500 +v 0.963388 1.984835 -1.750000 +v 0.875000 1.948223 -1.750000 +v 0.698223 2.301777 -1.875000 +v 0.875000 1.948223 -1.812500 +v 0.734835 2.213388 -1.875000 +v 1.051777 1.948223 -1.750000 +v 1.088388 1.859835 -1.750000 +v 0.698223 2.125000 -1.875000 +v 1.051777 1.771446 -1.750000 +v 1.000000 0.500000 -2.625000 +vn 0.0000 -1.0000 -0.0000 vn 0.0000 1.0000 0.0000 vn -1.0000 0.0000 0.0000 -vn 1.0000 0.0000 0.0000 +vn 1.0000 -0.0000 0.0000 vn 0.7071 0.7071 0.0000 vn 0.7071 -0.7071 0.0000 vn -0.7071 -0.7071 0.0000 vn -0.7071 0.7071 0.0000 -vn 0.0000 -0.0000 1.0000 +vn -0.0000 -0.0000 1.0000 vn -0.7074 -0.7068 -0.0001 vn 0.0000 -0.7071 -0.7071 vn -0.7071 -0.7071 0.0057 vn 0.0000 0.0000 -1.0000 vn 0.0000 0.9487 -0.3162 vn 0.0000 0.4472 -0.8944 -vn 0.3904 -0.1617 0.9063 -vn -0.3904 0.1617 0.9063 -vn -0.3905 0.1617 0.9063 -vn -0.1617 -0.3904 0.9063 vn 0.1617 0.3904 0.9063 -vn 0.1617 -0.3904 0.9063 -vn 0.1617 -0.3905 0.9063 -vn -0.1617 0.3904 0.9063 -vn -0.3904 -0.1617 0.9063 -vn 0.3904 0.1617 0.9063 -vn -0.8806 -0.1752 0.4403 -vn 0.8806 0.1752 0.4403 -vn 0.4318 0.0859 -0.8979 -vn 0.2320 -0.9696 -0.0783 -vn -0.4318 -0.0859 0.8979 -vn -0.1567 0.9845 -0.0783 -vn -0.4318 -0.0859 -0.8979 -vn -0.2320 0.9696 -0.0783 -vn 0.4318 0.0859 0.8979 -vn 0.1567 -0.9845 -0.0783 -vn -0.1752 0.8806 0.4403 -vn 0.1752 -0.8806 0.4403 -vn 0.0859 -0.4318 -0.8979 -vn -0.9696 -0.2320 -0.0783 -vn -0.0859 0.4318 0.8979 -vn 0.9845 0.1567 -0.0783 -vn -0.0859 0.4318 -0.8979 -vn 0.9696 0.2320 -0.0783 -vn 0.0859 -0.4318 0.8979 -vn -0.9845 -0.1567 -0.0783 -vn -0.7465 0.4988 0.4403 -vn 0.7465 -0.4988 0.4403 -vn 0.3661 -0.2446 -0.8979 -vn -0.5215 -0.8496 -0.0783 -vn -0.3661 0.2446 0.8979 -vn 0.5854 0.8070 -0.0783 -vn -0.3661 0.2446 -0.8979 -vn 0.5215 0.8496 -0.0783 -vn 0.3661 -0.2446 0.8979 -vn -0.5854 -0.8070 -0.0783 -vn 0.4988 0.7465 0.4403 -vn -0.4988 -0.7465 0.4403 -vn -0.2446 -0.3661 -0.8979 -vn -0.8496 0.5215 -0.0783 -vn 0.2446 0.3661 0.8979 -vn 0.8070 -0.5854 -0.0783 -vn 0.2446 0.3661 -0.8979 -vn 0.8496 -0.5215 -0.0783 -vn -0.2446 -0.3661 0.8979 -vn -0.8070 0.5854 -0.0783 -vn -0.8806 0.1752 0.4403 -vn 0.8806 -0.1752 0.4403 -vn 0.4318 -0.0859 -0.8979 -vn -0.1567 -0.9845 -0.0783 -vn -0.4318 0.0859 0.8979 -vn 0.2320 0.9696 -0.0783 -vn -0.4318 0.0859 -0.8979 -vn 0.1567 0.9845 -0.0783 -vn 0.4318 -0.0859 0.8979 -vn -0.2320 -0.9696 -0.0783 +vn 0.1617 0.3905 0.9063 vn 0.1752 0.8806 0.4403 -vn -0.1752 -0.8806 0.4403 -vn -0.0859 -0.4318 -0.8979 -vn -0.9845 0.1567 -0.0783 -vn 0.0859 0.4318 0.8979 -vn 0.9696 -0.2320 -0.0783 -vn 0.0859 0.4318 -0.8979 +vn 0.0859 0.4318 -0.8978 vn 0.9845 -0.1567 -0.0783 -vn -0.0859 -0.4318 0.8979 -vn -0.9696 0.2320 -0.0783 -vn -0.4988 0.7465 0.4403 -vn 0.4988 -0.7465 0.4403 -vn 0.2446 -0.3661 -0.8979 -vn -0.8070 -0.5854 -0.0783 -vn -0.2446 0.3661 0.8979 -vn 0.8496 0.5215 -0.0783 -vn -0.2446 0.3661 -0.8979 -vn 0.8070 0.5854 -0.0783 -vn 0.2446 -0.3661 0.8979 -vn -0.8496 -0.5215 -0.0783 -vn 0.7465 0.4988 0.4403 -vn -0.7465 -0.4988 0.4403 -vn -0.3661 -0.2446 -0.8979 -vn -0.5854 0.8070 -0.0783 -vn 0.3661 0.2446 0.8979 -vn 0.5215 -0.8496 -0.0783 -vn 0.3661 0.2446 -0.8979 -vn 0.5854 -0.8070 -0.0783 -vn -0.3661 -0.2446 0.8979 -vn -0.5215 0.8496 -0.0783 +vn -0.0859 -0.4318 0.8978 +vn -0.9695 0.2320 -0.0783 vn 0.0000 -0.3827 -0.9239 vn 0.0000 -0.9239 0.3827 vn 0.0000 0.9239 -0.3827 @@ -1868,7 +866,7 @@ vn 0.0000 -0.9239 -0.3827 vn 0.0000 -0.3827 0.9239 vn 0.0000 0.9239 0.3827 vn 0.0000 0.3827 -0.9239 -vn -0.3142 0.3142 -0.8959 +vn -0.3162 0.3162 -0.8944 vn 0.0000 0.4226 -0.9063 vn 0.0000 0.9063 0.4226 vn -0.7071 0.6409 0.2988 @@ -1893,120 +891,15 @@ vn -0.0000 -0.4226 0.9063 vn -0.2357 0.2357 0.9428 vn 0.2357 0.2357 0.9428 vn -0.2357 -0.2357 -0.9428 -vn -0.2144 -0.2144 0.9529 +vn -0.2357 -0.2357 0.9428 vn 0.0000 -0.9285 0.3714 vn 0.0000 0.9285 -0.3714 vn 0.0000 -0.9900 -0.1407 vn 0.0000 0.9900 0.1407 -vn 0.0000 -0.4226 -0.9063 -vn 0.0000 0.4226 0.9063 -vn 0.0000 -0.9063 0.4226 -vn 0.0000 0.9063 -0.4226 -vn 0.0000 -0.9063 -0.4226 -vn -0.4226 0.0000 -0.9063 -vn 0.4226 0.0000 0.9063 -vn -0.9063 0.0000 0.4226 -vn 0.9063 0.0000 -0.4226 vn 0.4226 0.0000 -0.9063 -vn -0.4226 0.0000 0.9063 -vn 0.9063 0.0000 0.4226 +vn -0.4226 -0.0000 0.9063 +vn 0.9063 -0.0000 0.4226 vn -0.9063 0.0000 -0.4226 -vn -0.2988 -0.2988 -0.9063 -vn 0.2988 0.2988 0.9063 -vn -0.6409 -0.6409 0.4226 -vn 0.6409 0.6409 -0.4226 -vn 0.2988 0.2988 -0.9063 -vn -0.2988 -0.2988 0.9063 -vn 0.6409 0.6409 0.4226 -vn -0.6409 -0.6409 -0.4226 -vn -0.2988 0.2988 -0.9063 -vn 0.2988 -0.2988 0.9063 -vn -0.6409 0.6409 0.4226 -vn 0.6409 -0.6409 -0.4226 -vn 0.2988 -0.2988 -0.9063 -vn -0.2988 0.2988 0.9063 -vn 0.6409 -0.6409 0.4226 -vn -0.6409 0.6409 -0.4226 -vn -0.5000 -0.8660 0.0000 -vn 0.5000 0.8660 0.0000 -vn -0.3660 0.2113 -0.9063 -vn 0.3660 -0.2113 0.9063 -vn -0.7849 0.4532 0.4226 -vn 0.7849 -0.4532 -0.4226 -vn 0.3660 -0.2113 -0.9063 -vn -0.3660 0.2113 0.9063 -vn 0.7849 -0.4532 0.4226 -vn -0.7849 0.4532 -0.4226 -vn -0.8660 0.5000 0.0000 -vn 0.8660 -0.5000 0.0000 -vn 0.2113 0.3660 -0.9063 -vn -0.2113 -0.3660 0.9063 -vn 0.4532 0.7849 0.4226 -vn -0.4532 -0.7849 -0.4226 -vn -0.2113 -0.3660 -0.9063 -vn 0.2113 0.3660 0.9063 -vn -0.4532 -0.7849 0.4226 -vn 0.4532 0.7849 -0.4226 -vn -0.9659 -0.2588 -0.0000 -vn 0.9659 0.2588 0.0000 -vn -0.1094 0.4082 -0.9063 -vn 0.1094 -0.4082 0.9063 -vn -0.2346 0.8754 0.4226 -vn 0.2346 -0.8754 -0.4226 -vn 0.1094 -0.4082 -0.9063 -vn -0.1094 0.4082 0.9063 -vn 0.2346 -0.8754 0.4226 -vn -0.2346 0.8754 -0.4226 -vn -0.2588 0.9659 0.0000 -vn 0.2588 -0.9659 -0.0000 -vn 0.4082 0.1094 -0.9063 -vn -0.4082 -0.1094 0.9063 -vn 0.8754 0.2346 0.4226 -vn -0.8754 -0.2346 -0.4226 -vn -0.4082 -0.1094 -0.9063 -vn 0.4082 0.1094 0.9063 -vn -0.8754 -0.2346 0.4226 -vn 0.8754 0.2346 -0.4226 -vn -0.5000 0.8660 -0.0000 -vn 0.5000 -0.8660 -0.0000 -vn 0.3660 0.2113 -0.9063 -vn -0.3660 -0.2113 0.9063 -vn 0.7849 0.4532 0.4226 -vn -0.7849 -0.4532 -0.4226 -vn -0.3660 -0.2113 -0.9063 -vn 0.3660 0.2113 0.9063 -vn -0.7849 -0.4532 0.4226 -vn 0.7849 0.4532 -0.4226 -vn 0.8660 0.5000 0.0000 -vn -0.8660 -0.5000 -0.0000 -vn 0.2113 -0.3660 -0.9063 -vn -0.2113 0.3660 0.9063 -vn 0.4532 -0.7849 0.4226 -vn -0.4532 0.7849 -0.4226 -vn -0.2113 0.3660 -0.9063 -vn 0.2113 -0.3660 0.9063 -vn -0.4532 0.7849 0.4226 -vn 0.4532 -0.7849 -0.4226 -vn 0.2588 0.9659 0.0000 -vn -0.2588 -0.9659 0.0000 -vn 0.4082 -0.1094 -0.9063 -vn -0.4082 0.1094 0.9063 -vn 0.8754 -0.2346 0.4226 -vn -0.8754 0.2346 -0.4226 -vn -0.4082 0.1094 -0.9063 -vn 0.4082 -0.1094 0.9063 -vn -0.8754 0.2346 0.4226 -vn 0.8754 -0.2346 -0.4226 -vn 0.9659 -0.2588 0.0000 -vn -0.9659 0.2588 0.0000 -vn -0.1094 -0.4082 -0.9063 -vn 0.1094 0.4082 0.9063 -vn -0.2346 -0.8754 0.4226 -vn 0.2346 0.8754 -0.4226 -vn 0.1094 0.4082 -0.9063 -vn -0.1094 -0.4082 0.9063 -vn 0.2346 0.8754 0.4226 -vn -0.2346 -0.8754 -0.4226 vn 0.0000 -0.8944 0.4472 vn 0.3423 -0.8263 0.4472 vn -0.3423 -0.8263 0.4472 @@ -2023,44 +916,6 @@ vn 0.8263 0.3423 0.4472 vn 0.8944 -0.0000 0.4472 vn 0.8263 -0.3423 0.4472 vn 0.6325 -0.6325 0.4472 -vn -0.6303 -0.7311 -0.2611 -vn 0.0948 -0.9947 0.0393 -vn 0.0609 -0.9973 0.0399 -vn -0.5190 -0.7430 -0.4226 -vn 0.7150 -0.6333 0.2962 -vn 0.9239 -0.0000 0.3827 -vn 0.7690 -0.0000 0.6392 -vn 0.5735 -0.6721 0.4683 -vn 0.7150 0.6333 0.2962 -vn 0.0948 0.9947 0.0393 -vn 0.0609 0.9973 0.0399 -vn 0.5735 0.6721 0.4683 -vn -0.6303 0.7311 -0.2611 -vn -0.5190 0.7430 -0.4226 -vn -0.9239 -0.0000 -0.3827 -vn -0.7779 -0.0000 -0.6284 -vn 0.0183 0.9989 0.0441 -vn 0.2791 0.6840 0.6739 -vn 0.3827 0.0000 0.9239 -vn 0.2791 -0.6840 0.6739 -vn 0.0183 -0.9989 0.0441 -vn -0.2608 -0.7317 -0.6297 -vn -0.3827 -0.0000 -0.9239 -vn -0.2608 0.7317 -0.6297 -vn -0.0000 -0.7317 -0.6816 -vn -0.0000 0.7317 -0.6816 -vn 0.0000 0.9989 0.0477 -vn -0.0000 0.6840 0.7294 -vn -0.0000 -0.6840 0.7294 -vn 0.0000 -0.9989 0.0477 -vn -0.1436 0.6770 0.7219 -vn -0.1951 0.0000 0.9808 -vn -0.1436 -0.6770 0.7219 -vn -0.0095 -0.9988 0.0477 -vn 0.1343 -0.7251 -0.6754 -vn 0.1951 0.0000 -0.9808 -vn 0.1343 0.7251 -0.6754 -vn -0.0095 0.9988 0.0477 vn 0.3827 -0.9239 0.0000 vn -0.3827 -0.9239 0.0000 vn -0.3827 0.9239 0.0000 @@ -2069,72 +924,6 @@ vn -0.9239 0.3827 0.0000 vn 0.9239 0.3827 0.0000 vn -0.9239 -0.3827 0.0000 vn 0.3827 0.9239 0.0000 -vn 0.6303 0.7311 -0.2611 -vn -0.0948 0.9947 0.0393 -vn -0.0609 0.9973 0.0399 -vn 0.5190 0.7430 -0.4226 -vn -0.7150 0.6333 0.2962 -vn -0.9239 0.0000 0.3827 -vn -0.7690 -0.0000 0.6392 -vn -0.5735 0.6721 0.4683 -vn -0.7150 -0.6333 0.2962 -vn -0.0948 -0.9947 0.0393 -vn -0.0609 -0.9973 0.0399 -vn -0.5735 -0.6721 0.4683 -vn 0.6303 -0.7311 -0.2611 -vn 0.5190 -0.7430 -0.4226 -vn 0.9239 0.0000 -0.3827 -vn 0.7779 0.0000 -0.6284 -vn -0.0183 -0.9989 0.0441 -vn -0.2791 -0.6840 0.6739 -vn -0.3827 0.0000 0.9239 -vn -0.2791 0.6840 0.6739 -vn -0.0183 0.9989 0.0441 -vn 0.2608 0.7317 -0.6297 -vn 0.3827 0.0000 -0.9239 -vn 0.2608 -0.7317 -0.6297 -vn 0.1436 -0.6770 0.7219 -vn 0.1951 0.0000 0.9808 -vn 0.1436 0.6770 0.7219 -vn 0.0095 0.9988 0.0477 -vn -0.1344 0.7251 -0.6754 -vn -0.1951 -0.0000 -0.9808 -vn -0.1344 -0.7251 -0.6754 -vn 0.0095 -0.9988 0.0477 -vn -0.7311 0.6303 -0.2611 -vn -0.9947 -0.0948 0.0393 -vn -0.9973 -0.0609 0.0399 -vn -0.7430 0.5190 -0.4226 -vn -0.6333 -0.7150 0.2962 -vn 0.0000 -0.7690 0.6392 -vn -0.6721 -0.5735 0.4683 -vn 0.6333 -0.7150 0.2962 -vn 0.9947 -0.0948 0.0393 -vn 0.9973 -0.0609 0.0399 -vn 0.6721 -0.5735 0.4683 -vn 0.7311 0.6303 -0.2611 -vn 0.7430 0.5190 -0.4226 -vn 0.0000 0.7779 -0.6284 -vn 0.9989 -0.0183 0.0441 -vn 0.6840 -0.2791 0.6739 -vn -0.6840 -0.2791 0.6739 -vn -0.9989 -0.0183 0.0441 -vn -0.7317 0.2608 -0.6297 -vn 0.7317 0.2608 -0.6297 -vn -0.7317 0.0000 -0.6816 -vn 0.7317 -0.0000 -0.6816 -vn 0.9989 -0.0000 0.0477 -vn 0.6840 -0.0000 0.7294 -vn -0.6840 0.0000 0.7294 -vn -0.9989 0.0000 0.0477 -vn 0.6770 0.1436 0.7219 -vn 0.0000 0.1951 0.9808 -vn -0.6770 0.1436 0.7219 -vn -0.9988 0.0095 0.0477 -vn -0.7251 -0.1344 -0.6754 -vn -0.0000 -0.1951 -0.9808 -vn 0.7251 -0.1344 -0.6754 -vn 0.9988 0.0095 0.0477 vn 0.7311 -0.6303 -0.2611 vn 0.9947 0.0948 0.0393 vn 0.9973 0.0609 0.0399 @@ -2150,208 +939,32 @@ vn -0.7311 -0.6303 -0.2611 vn -0.7430 -0.5190 -0.4226 vn 0.0000 -0.7779 -0.6284 vn -0.9989 0.0183 0.0441 -vn -0.6840 0.2791 0.6739 +vn -0.6841 0.2791 0.6739 vn 0.0000 0.3827 0.9239 vn 0.6840 0.2791 0.6739 vn 0.9989 0.0183 0.0441 vn 0.7317 -0.2608 -0.6297 vn -0.7317 -0.2608 -0.6297 +vn 0.7317 0.0000 -0.6816 +vn -0.7317 0.0000 -0.6816 +vn -0.9989 0.0000 0.0477 +vn -0.6841 -0.0000 0.7294 +vn 0.6840 -0.0000 0.7294 +vn 0.9989 0.0000 0.0477 vn -0.6770 -0.1436 0.7219 vn 0.0000 -0.1951 0.9808 vn 0.6770 -0.1436 0.7219 vn 0.9988 -0.0095 0.0477 vn 0.7251 0.1344 -0.6754 vn 0.0000 0.1951 -0.9808 -vn -0.7251 0.1343 -0.6754 +vn -0.7251 0.1344 -0.6754 vn -0.9988 -0.0095 0.0477 -vn -0.9627 -0.0712 -0.2611 -vn -0.6363 -0.7704 0.0393 -vn -0.6622 -0.7483 0.0399 -vn -0.8924 -0.1584 -0.4226 -vn 0.0578 -0.9534 0.2962 -vn 0.6533 -0.6533 0.3827 -vn 0.5438 -0.5438 0.6392 -vn -0.0697 -0.8808 0.4683 -vn 0.9534 -0.0578 0.2962 -vn 0.7704 0.6363 0.0393 -vn 0.7483 0.6622 0.0399 -vn 0.8808 0.0697 0.4683 -vn 0.0712 0.9627 -0.2611 -vn 0.1584 0.8924 -0.4226 -vn -0.6533 0.6533 -0.3827 -vn -0.5501 0.5501 -0.6284 -vn 0.7192 0.6934 0.0441 -vn 0.6811 0.2863 0.6739 -vn 0.2706 -0.2706 0.9239 -vn -0.2863 -0.6811 0.6739 -vn -0.6934 -0.7192 0.0441 -vn -0.7018 -0.3330 -0.6297 -vn -0.2706 0.2706 -0.9239 -vn 0.3330 0.7018 -0.6297 -vn -0.5174 -0.5174 -0.6816 -vn 0.5174 0.5174 -0.6816 -vn 0.7063 0.7063 0.0477 -vn 0.4837 0.4837 0.7294 -vn -0.4837 -0.4837 0.7294 -vn -0.7063 -0.7063 0.0477 -vn 0.3771 0.5802 0.7219 -vn -0.1379 0.1379 0.9808 -vn -0.5802 -0.3772 0.7219 -vn -0.7130 -0.6996 0.0477 -vn -0.4177 -0.6077 -0.6754 -vn 0.1379 -0.1379 -0.9808 -vn 0.6077 0.4177 -0.6754 -vn 0.6996 0.7130 0.0477 -vn 0.9627 0.0712 -0.2611 -vn 0.6363 0.7704 0.0393 -vn 0.6622 0.7483 0.0399 -vn 0.8924 0.1584 -0.4226 -vn -0.0578 0.9534 0.2962 -vn -0.6533 0.6533 0.3827 -vn -0.5438 0.5438 0.6392 -vn 0.0697 0.8808 0.4683 -vn -0.9534 0.0578 0.2962 -vn -0.7704 -0.6363 0.0393 -vn -0.7483 -0.6622 0.0399 -vn -0.8808 -0.0697 0.4683 -vn -0.0712 -0.9627 -0.2611 -vn -0.1584 -0.8924 -0.4226 -vn 0.6533 -0.6533 -0.3827 -vn 0.5501 -0.5501 -0.6284 -vn -0.7192 -0.6934 0.0441 -vn -0.6811 -0.2863 0.6739 -vn -0.2706 0.2706 0.9239 -vn 0.2863 0.6811 0.6739 -vn 0.6934 0.7192 0.0441 -vn 0.7018 0.3330 -0.6297 -vn 0.2706 -0.2706 -0.9239 -vn -0.3330 -0.7018 -0.6297 -vn -0.3771 -0.5802 0.7219 -vn 0.1379 -0.1379 0.9808 -vn 0.5802 0.3772 0.7219 -vn 0.7130 0.6996 0.0477 -vn 0.4177 0.6077 -0.6754 -vn -0.1379 0.1379 -0.9808 -vn -0.6077 -0.4177 -0.6754 -vn -0.6996 -0.7130 0.0477 -vn -0.0712 0.9627 -0.2611 -vn -0.7704 0.6363 0.0393 -vn -0.7483 0.6622 0.0399 -vn -0.1584 0.8924 -0.4226 -vn -0.9534 -0.0578 0.2962 -vn -0.6533 -0.6533 0.3827 -vn -0.5438 -0.5438 0.6392 -vn -0.8808 0.0697 0.4683 -vn -0.0578 -0.9534 0.2962 -vn 0.6363 -0.7704 0.0393 -vn 0.6622 -0.7483 0.0399 -vn 0.0697 -0.8808 0.4683 -vn 0.9627 -0.0712 -0.2611 -vn 0.8924 -0.1584 -0.4226 -vn 0.6533 0.6533 -0.3827 -vn 0.5501 0.5501 -0.6284 -vn 0.6934 -0.7192 0.0441 -vn 0.2863 -0.6811 0.6739 -vn -0.2706 -0.2706 0.9239 -vn -0.6811 0.2863 0.6739 -vn -0.7192 0.6934 0.0441 -vn -0.3330 0.7018 -0.6297 -vn 0.2706 0.2706 -0.9239 -vn 0.7018 -0.3330 -0.6297 -vn -0.5174 0.5174 -0.6816 -vn 0.5174 -0.5174 -0.6816 -vn 0.7063 -0.7063 0.0477 -vn 0.4837 -0.4837 0.7294 -vn -0.4837 0.4837 0.7294 -vn -0.7063 0.7063 0.0477 -vn 0.5802 -0.3772 0.7219 -vn 0.1379 0.1379 0.9808 -vn -0.3772 0.5802 0.7219 -vn -0.6996 0.7130 0.0477 -vn -0.6077 0.4177 -0.6754 -vn -0.1380 -0.1379 -0.9808 -vn 0.4177 -0.6077 -0.6754 -vn 0.7130 -0.6996 0.0477 -vn 0.0712 -0.9627 -0.2611 -vn 0.7704 -0.6363 0.0393 -vn 0.7483 -0.6622 0.0399 -vn 0.1584 -0.8924 -0.4226 -vn 0.9534 0.0578 0.2962 -vn 0.6533 0.6533 0.3827 -vn 0.5438 0.5438 0.6392 -vn 0.8808 -0.0697 0.4683 -vn 0.0578 0.9534 0.2962 -vn -0.6363 0.7704 0.0393 -vn -0.6622 0.7483 0.0399 -vn -0.0697 0.8808 0.4683 -vn -0.9627 0.0712 -0.2611 -vn -0.8924 0.1584 -0.4226 -vn -0.6533 -0.6533 -0.3827 -vn -0.5501 -0.5501 -0.6284 -vn -0.6934 0.7192 0.0441 -vn -0.2863 0.6811 0.6739 -vn 0.2706 0.2706 0.9239 -vn 0.6811 -0.2863 0.6739 -vn 0.7192 -0.6934 0.0441 -vn 0.3330 -0.7018 -0.6297 -vn -0.2706 -0.2706 -0.9239 -vn -0.7018 0.3330 -0.6297 -vn -0.5802 0.3772 0.7219 -vn -0.1379 -0.1379 0.9808 -vn 0.3771 -0.5802 0.7219 -vn 0.6996 -0.7130 0.0477 -vn 0.6077 -0.4177 -0.6754 -vn 0.1379 0.1379 -0.9808 -vn -0.4177 0.6077 -0.6754 -vn -0.7130 0.6996 0.0477 -vn 0.3215 -0.8985 -0.2988 -vn 0.8373 -0.3468 -0.4226 -vn 0.8627 0.4080 -0.2988 -vn -0.3215 0.8985 0.2988 -vn -0.8373 0.3468 0.4226 -vn -0.8627 -0.4080 0.2988 -vn -0.3215 0.8985 -0.2988 -vn -0.8373 0.3468 -0.4226 -vn -0.8627 -0.4080 -0.2988 -vn 0.3215 -0.8985 0.2988 -vn 0.8373 -0.3468 0.4226 -vn 0.8627 0.4080 0.2988 -vn -0.8985 -0.3215 -0.2988 -vn -0.3468 -0.8373 -0.4226 -vn 0.4080 -0.8627 -0.2988 -vn 0.8985 0.3215 0.2988 -vn 0.3468 0.8373 0.4226 -vn -0.4080 0.8627 0.2988 vn 0.8985 0.3215 -0.2988 vn 0.3468 0.8373 -0.4226 vn -0.4080 0.8627 -0.2988 vn -0.8985 -0.3215 0.2988 vn -0.3468 -0.8373 0.4226 vn 0.4080 -0.8627 0.2988 -vn -0.4080 -0.8627 -0.2988 -vn 0.3468 -0.8373 -0.4226 -vn 0.8985 -0.3215 -0.2988 -vn 0.4080 0.8627 0.2988 -vn -0.3468 0.8373 0.4226 -vn -0.8985 0.3215 0.2988 -vn 0.4080 0.8627 -0.2988 -vn -0.3468 0.8373 -0.4226 -vn -0.8985 0.3215 -0.2988 -vn -0.4080 -0.8627 0.2988 -vn 0.3468 -0.8373 0.4226 -vn 0.8985 -0.3215 0.2988 -vn -0.8627 0.4080 -0.2988 -vn -0.8373 -0.3468 -0.4226 -vn -0.3215 -0.8985 -0.2988 -vn 0.8627 -0.4080 0.2988 -vn 0.8373 0.3468 0.4226 -vn 0.3215 0.8985 0.2988 -vn 0.8627 -0.4080 -0.2988 -vn 0.8373 0.3468 -0.4226 -vn 0.3215 0.8985 -0.2988 -vn -0.8627 0.4080 0.2988 -vn -0.8373 -0.3468 0.4226 -vn -0.3215 -0.8985 0.2988 vn -0.3162 0.3162 0.8944 vn -0.4132 0.1711 0.8944 vn 0.4132 -0.1711 0.8944 @@ -2364,10 +977,11 @@ vn -0.3162 -0.3162 0.8944 vn 0.1711 0.4132 0.8944 vn -0.1711 -0.4132 0.8944 vn 0.0000 0.4472 0.8944 -vn -0.0000 -0.4472 0.8944 +vn 0.0000 -0.4472 0.8944 vn 0.1711 -0.4132 0.8944 vn -0.1711 0.4132 0.8944 vn 0.3162 -0.3162 0.8944 +vn 0.0000 -0.9063 -0.4226 vn -0.8660 0.4532 0.2113 vn 0.2588 0.8754 0.4082 vn 0.5000 0.7849 0.3660 @@ -2382,7 +996,7 @@ vn 0.8660 -0.4532 -0.2113 vn 0.9891 0.0283 0.1448 vn 0.6947 0.6947 0.1866 vn 0.5000 0.5000 0.7071 -vn 0.8431 -0.0945 0.5294 +vn 0.8431 -0.0945 0.5293 vn 0.0283 0.9891 0.1448 vn -0.3812 0.9204 0.0866 vn -0.4619 0.8446 0.2706 @@ -2392,1342 +1006,646 @@ vn 0.0945 0.8431 0.5294 vn 0.4619 0.8446 0.2706 vn 0.3812 0.9204 0.0866 vn -0.9891 0.0283 0.1448 -vn -0.8431 -0.0945 0.5294 +vn -0.8431 -0.0945 0.5293 vn -0.5000 0.5000 0.7071 vn -0.6947 0.6947 0.1866 vn -0.9204 -0.3812 0.0866 vn -0.8446 -0.4619 0.2706 +vn -0.2706 0.2706 0.9239 vn 0.2384 0.6572 0.7150 vn -0.7559 -0.5345 0.3780 vn -0.6572 -0.2384 0.7150 vn 0.5345 0.7559 0.3780 +vn -0.8431 -0.0945 0.5294 vn 0.9204 -0.3812 0.0866 vn 0.8446 -0.4619 0.2706 vn -0.2384 0.6572 0.7150 +vn 0.2706 0.2706 0.9239 vn 0.6572 -0.2384 0.7150 vn 0.7559 -0.5345 0.3780 vn -0.5345 0.7559 0.3780 +vn -0.0945 0.8431 0.5293 +vn 0.8431 -0.0945 0.5294 s off -f 1//1 3//1 4//1 2//1 -f 5//2 6//2 8//2 7//2 -f 9//3 11//3 12//3 10//3 -f 13//4 14//4 16//4 15//4 -f 6//5 13//5 15//5 8//5 -f 4//6 16//6 14//6 2//6 -f 3//7 1//7 10//7 12//7 -f 5//8 7//8 11//8 9//8 -f 14//9 13//9 30//9 29//9 28//9 -f 13//9 6//9 32//9 31//9 30//9 -f 6//9 5//9 18//9 17//9 32//9 -f 5//9 9//9 20//9 19//9 18//9 -f 9//9 10//9 22//9 21//9 20//9 -f 10//9 1//9 24//9 23//9 22//9 -f 1//9 2//9 26//9 25//9 24//9 -f 2//9 14//9 28//9 27//9 26//9 -f 53//3 67//3 70//3 64//3 54//3 -f 58//6 60//6 63//6 69//6 56//6 50//6 -f 68//4 55//4 56//4 69//4 62//4 71//4 -f 49//1 57//1 58//1 50//1 -f 54//10 64//10 61//10 59//10 57//10 49//10 -f 58//11 57//11 59//11 60//11 -f 120//2 121//2 68//2 71//2 -f 74//3 76//3 75//3 73//3 -f 72//3 73//3 75//3 70//3 67//3 -f 76//12 74//12 77//12 78//12 -f 92//3 91//3 93//3 94//3 -f 84//3 83//3 85//3 86//3 -f 96//3 95//3 97//3 98//3 -f 80//3 88//3 87//3 79//3 -f 82//3 81//3 89//3 90//3 -f 80//3 82//3 90//3 92//3 94//3 84//3 86//3 96//3 98//3 88//3 -f 79//3 87//3 97//3 95//3 85//3 83//3 93//3 91//3 89//3 81//3 -f 95//1 96//1 112//1 111//1 -f 96//9 86//9 102//9 112//9 -f 94//2 93//2 109//2 110//2 -f 84//9 94//9 110//9 100//9 -f 104//3 114//3 113//3 103//3 -f 102//3 101//3 111//3 112//3 -f 100//3 110//3 109//3 99//3 -f 106//3 105//3 107//3 108//3 -f 88//9 98//9 114//9 104//9 -f 98//2 97//2 113//2 114//2 -f 97//13 87//13 103//13 113//13 -f 83//1 84//1 100//1 99//1 -f 85//13 95//13 111//13 101//13 -f 86//2 85//2 101//2 102//2 -f 93//13 83//13 99//13 109//13 -f 87//1 88//1 104//1 103//1 -f 89//13 91//13 107//13 105//13 -f 90//2 89//2 105//2 106//2 -f 92//9 90//9 106//9 108//9 -f 91//1 92//1 108//1 107//1 -f 62//13 69//13 116//13 115//13 -f 69//13 63//13 116//13 -f 74//13 73//13 117//13 118//13 -f 74//13 118//13 77//13 -f 71//14 62//14 115//14 120//14 -f 119//14 117//14 73//14 72//14 -f 122//2 119//2 72//2 67//2 -f 65//15 66//15 124//15 123//15 -f 66//15 68//15 121//15 124//15 -f 65//15 123//15 122//15 67//15 -f 465//16 464//16 481//16 482//16 -f 463//16 462//16 479//16 480//16 -f 461//16 468//16 477//16 478//16 -f 468//16 467//16 484//16 477//16 -f 466//16 465//16 482//16 483//16 -f 464//16 463//16 480//16 481//16 -f 462//16 461//16 478//16 479//16 -f 467//16 466//16 483//16 484//16 -f 492//16 491//16 490//16 489//16 488//16 487//16 486//16 485//16 -f 494//16 493//16 501//16 502//16 -f 493//16 500//16 508//16 501//16 -f 500//16 499//16 507//16 508//16 -f 499//16 498//16 506//16 507//16 -f 498//16 497//16 505//16 506//16 -f 497//16 496//16 504//16 505//16 -f 496//16 495//16 503//16 504//16 -f 495//16 494//16 502//16 503//16 -f 513//17 512//17 529//17 530//17 -f 511//17 510//17 527//17 528//17 -f 509//17 516//17 525//17 526//17 -f 516//17 515//17 532//17 525//17 -f 514//17 513//17 530//17 531//17 -f 512//17 511//17 528//17 529//17 -f 510//17 509//17 526//17 527//17 -f 515//18 514//18 531//18 532//18 -f 540//17 539//17 538//17 537//17 536//17 535//17 534//17 533//17 -f 542//17 541//17 549//17 550//17 -f 541//17 548//17 556//17 549//17 -f 548//17 547//17 555//17 556//17 -f 547//17 546//17 554//17 555//17 -f 546//17 545//17 553//17 554//17 -f 545//17 544//17 552//17 553//17 -f 544//17 543//17 551//17 552//17 -f 543//17 542//17 550//17 551//17 -f 561//19 560//19 577//19 578//19 -f 559//19 558//19 575//19 576//19 -f 557//19 564//19 573//19 574//19 -f 564//19 563//19 580//19 573//19 -f 562//19 561//19 578//19 579//19 -f 560//19 559//19 576//19 577//19 -f 558//19 557//19 574//19 575//19 -f 563//19 562//19 579//19 580//19 -f 588//19 587//19 586//19 585//19 584//19 583//19 582//19 581//19 -f 590//19 589//19 597//19 598//19 -f 589//19 596//19 604//19 597//19 -f 596//19 595//19 603//19 604//19 -f 595//19 594//19 602//19 603//19 -f 594//19 593//19 601//19 602//19 -f 593//19 592//19 600//19 601//19 -f 592//19 591//19 599//19 600//19 -f 591//19 590//19 598//19 599//19 -f 609//20 608//20 625//20 626//20 -f 607//20 606//20 623//20 624//20 -f 605//20 612//20 621//20 622//20 -f 612//20 611//20 628//20 621//20 -f 610//20 609//20 626//20 627//20 -f 608//20 607//20 624//20 625//20 -f 606//20 605//20 622//20 623//20 -f 611//20 610//20 627//20 628//20 -f 636//20 635//20 634//20 633//20 632//20 631//20 630//20 629//20 -f 638//20 637//20 645//20 646//20 -f 637//20 644//20 652//20 645//20 -f 644//20 643//20 651//20 652//20 -f 643//20 642//20 650//20 651//20 -f 642//20 641//20 649//20 650//20 -f 641//20 640//20 648//20 649//20 -f 640//20 639//20 647//20 648//20 -f 639//20 638//20 646//20 647//20 -f 657//21 656//21 673//21 674//21 -f 655//21 654//21 671//21 672//21 -f 653//21 660//21 669//21 670//21 -f 660//21 659//21 676//21 669//21 -f 658//21 657//21 674//21 675//21 -f 656//21 655//21 672//21 673//21 -f 654//21 653//21 670//21 671//21 -f 659//21 658//21 675//21 676//21 -f 684//21 683//21 682//21 681//21 680//21 679//21 678//21 677//21 -f 686//21 685//21 693//21 694//21 -f 685//21 692//21 700//21 693//21 -f 692//21 691//21 699//21 700//21 -f 691//22 690//22 698//22 699//22 -f 690//21 689//21 697//21 698//21 -f 689//21 688//21 696//21 697//21 -f 688//21 687//21 695//21 696//21 -f 687//21 686//21 694//21 695//21 -f 705//23 704//23 721//23 722//23 -f 703//23 702//23 719//23 720//23 -f 701//23 708//23 717//23 718//23 -f 708//23 707//23 724//23 717//23 -f 706//23 705//23 722//23 723//23 -f 704//23 703//23 720//23 721//23 -f 702//23 701//23 718//23 719//23 -f 707//23 706//23 723//23 724//23 -f 732//23 731//23 730//23 729//23 728//23 727//23 726//23 725//23 -f 734//23 733//23 741//23 742//23 -f 733//23 740//23 748//23 741//23 -f 740//23 739//23 747//23 748//23 -f 739//23 738//23 746//23 747//23 -f 738//23 737//23 745//23 746//23 -f 737//23 736//23 744//23 745//23 -f 736//23 735//23 743//23 744//23 -f 735//23 734//23 742//23 743//23 -f 753//24 752//24 769//24 770//24 -f 751//24 750//24 767//24 768//24 -f 749//24 756//24 765//24 766//24 -f 756//24 755//24 772//24 765//24 -f 754//24 753//24 770//24 771//24 -f 752//24 751//24 768//24 769//24 -f 750//24 749//24 766//24 767//24 -f 755//24 754//24 771//24 772//24 -f 780//24 779//24 778//24 777//24 776//24 775//24 774//24 773//24 -f 782//24 781//24 789//24 790//24 -f 781//24 788//24 796//24 789//24 -f 788//24 787//24 795//24 796//24 -f 787//24 786//24 794//24 795//24 -f 786//24 785//24 793//24 794//24 -f 785//24 784//24 792//24 793//24 -f 784//24 783//24 791//24 792//24 -f 783//24 782//24 790//24 791//24 -f 801//25 800//25 817//25 818//25 -f 799//25 798//25 815//25 816//25 -f 797//25 804//25 813//25 814//25 -f 804//25 803//25 820//25 813//25 -f 802//25 801//25 818//25 819//25 -f 800//25 799//25 816//25 817//25 -f 798//25 797//25 814//25 815//25 -f 803//25 802//25 819//25 820//25 -f 828//25 827//25 826//25 825//25 824//25 823//25 822//25 821//25 -f 830//25 829//25 837//25 838//25 -f 829//25 836//25 844//25 837//25 -f 836//25 835//25 843//25 844//25 -f 835//25 834//25 842//25 843//25 -f 834//25 833//25 841//25 842//25 -f 833//25 832//25 840//25 841//25 -f 832//25 831//25 839//25 840//25 -f 831//25 830//25 838//25 839//25 -f 858//26 857//26 859//26 860//26 -f 850//27 849//27 851//27 852//27 -f 848//28 847//28 852//28 851//28 -f 846//29 848//29 851//29 849//29 -f 845//30 846//30 849//30 850//30 -f 847//31 845//31 850//31 852//31 -f 856//32 855//32 860//32 859//32 -f 854//33 856//33 859//33 857//33 -f 853//34 854//34 857//34 858//34 -f 855//35 853//35 858//35 860//35 -f 874//36 873//36 875//36 876//36 -f 866//37 865//37 867//37 868//37 -f 864//38 863//38 868//38 867//38 -f 862//39 864//39 867//39 865//39 -f 861//40 862//40 865//40 866//40 -f 863//41 861//41 866//41 868//41 -f 872//42 871//42 876//42 875//42 -f 870//43 872//43 875//43 873//43 -f 869//44 870//44 873//44 874//44 -f 871//45 869//45 874//45 876//45 -f 890//46 889//46 891//46 892//46 -f 882//47 881//47 883//47 884//47 -f 880//48 879//48 884//48 883//48 -f 878//49 880//49 883//49 881//49 -f 877//50 878//50 881//50 882//50 -f 879//51 877//51 882//51 884//51 -f 888//52 887//52 892//52 891//52 -f 886//53 888//53 891//53 889//53 -f 885//54 886//54 889//54 890//54 -f 887//55 885//55 890//55 892//55 -f 906//56 905//56 907//56 908//56 -f 898//57 897//57 899//57 900//57 -f 896//58 895//58 900//58 899//58 -f 894//59 896//59 899//59 897//59 -f 893//60 894//60 897//60 898//60 -f 895//61 893//61 898//61 900//61 -f 904//62 903//62 908//62 907//62 -f 902//63 904//63 907//63 905//63 -f 901//64 902//64 905//64 906//64 -f 903//65 901//65 906//65 908//65 -f 922//66 921//66 923//66 924//66 -f 914//67 913//67 915//67 916//67 -f 912//68 911//68 916//68 915//68 -f 910//69 912//69 915//69 913//69 -f 909//70 910//70 913//70 914//70 -f 911//71 909//71 914//71 916//71 -f 920//72 919//72 924//72 923//72 -f 918//73 920//73 923//73 921//73 -f 917//74 918//74 921//74 922//74 -f 919//75 917//75 922//75 924//75 -f 938//76 937//76 939//76 940//76 -f 930//77 929//77 931//77 932//77 -f 928//78 927//78 932//78 931//78 -f 926//79 928//79 931//79 929//79 -f 925//80 926//80 929//80 930//80 -f 927//81 925//81 930//81 932//81 -f 936//82 935//82 940//82 939//82 -f 934//83 936//83 939//83 937//83 -f 933//84 934//84 937//84 938//84 -f 935//85 933//85 938//85 940//85 -f 954//86 953//86 955//86 956//86 -f 946//87 945//87 947//87 948//87 -f 944//88 943//88 948//88 947//88 -f 942//89 944//89 947//89 945//89 -f 941//90 942//90 945//90 946//90 -f 943//91 941//91 946//91 948//91 -f 952//92 951//92 956//92 955//92 -f 950//93 952//93 955//93 953//93 -f 949//94 950//94 953//94 954//94 -f 951//95 949//95 954//95 956//95 -f 970//96 969//96 971//96 972//96 -f 962//97 961//97 963//97 964//97 -f 960//98 959//98 964//98 963//98 -f 958//99 960//99 963//99 961//99 -f 957//100 958//100 961//100 962//100 -f 959//101 957//101 962//101 964//101 -f 968//102 967//102 972//102 971//102 -f 966//103 968//103 971//103 969//103 -f 965//104 966//104 969//104 970//104 -f 967//105 965//105 970//105 972//105 -f 1004//9 997//9 1013//9 1020//9 -f 1006//9 1007//9 1008//9 1009//9 1010//9 1011//9 1012//9 1005//9 -f 1003//9 1004//9 1020//9 1019//9 -f 1002//9 1003//9 1019//9 1018//9 -f 1001//9 1002//9 1018//9 1017//9 -f 1000//9 1001//9 1017//9 1016//9 -f 999//9 1000//9 1016//9 1015//9 -f 998//9 999//9 1015//9 1014//9 -f 997//9 998//9 1014//9 1013//9 -f 1028//9 1036//9 1030//9 1022//9 -f 1027//9 1035//9 1036//9 1028//9 -f 1026//9 1034//9 1035//9 1027//9 -f 1025//9 1033//9 1034//9 1026//9 -f 1024//9 1032//9 1033//9 1025//9 -f 1023//9 1031//9 1032//9 1024//9 -f 1021//9 1029//9 1031//9 1023//9 -f 1022//9 1030//9 1029//9 1021//9 -f 974//9 975//9 976//9 977//9 978//9 979//9 980//9 981//9 982//9 983//9 984//9 985//9 986//9 987//9 988//9 973//9 -f 15//13 1050//13 1051//13 1052//13 8//13 -f 16//13 1048//13 1049//13 1050//13 15//13 -f 4//13 1046//13 1047//13 1048//13 16//13 -f 3//13 1044//13 1045//13 1046//13 4//13 -f 12//13 1042//13 1043//13 1044//13 3//13 -f 11//13 1040//13 1041//13 1042//13 12//13 -f 7//13 1038//13 1039//13 1040//13 11//13 -f 8//13 1052//13 1037//13 1038//13 7//13 -f 52//9 51//9 1054//9 1053//9 1068//9 -f 55//9 52//9 1068//9 1067//9 1066//9 -f 56//9 55//9 1066//9 1065//9 1064//9 -f 50//9 56//9 1064//9 1063//9 1062//9 -f 49//9 50//9 1062//9 1061//9 1060//9 -f 54//9 49//9 1060//9 1059//9 1058//9 -f 53//9 54//9 1058//9 1057//9 1056//9 -f 51//9 53//9 1056//9 1055//9 1054//9 -f 1070//3 1069//3 1076//3 1075//3 1074//3 1073//3 1072//3 1071//3 -f 79//9 81//9 1079//9 1077//9 -f 81//1 82//1 1080//1 1079//1 -f 82//13 80//13 1078//13 1080//13 -f 80//2 79//2 1077//2 1078//2 -f 1081//4 1083//4 1084//4 1085//4 1086//4 1087//4 1088//4 1082//4 -f 1069//106 1082//106 1088//106 1076//106 -f 1075//107 1087//107 1086//107 1074//107 -f 1071//108 1083//108 1081//108 1070//108 -f 1076//109 1088//109 1087//109 1075//109 -f 1074//110 1086//110 1085//110 1073//110 -f 1072//111 1084//111 1083//111 1071//111 -f 1070//112 1081//112 1082//112 1069//112 -f 1089//9 1090//9 1092//9 1091//9 -f 1094//13 1093//13 1096//13 1095//13 -f 1092//6 1090//6 1095//6 1096//6 -f 1089//8 1091//8 1093//8 1094//8 -f 1091//5 1092//5 1096//5 1093//5 -f 1090//7 1089//7 1094//7 1095//7 -f 1097//9 1098//9 1100//9 1099//9 -f 1102//13 1101//13 1104//13 1103//13 -f 1100//8 1098//8 1103//8 1104//8 -f 1097//6 1099//6 1101//6 1102//6 -f 1099//7 1100//7 1104//7 1101//7 -f 1098//5 1097//5 1102//5 1103//5 -f 1105//9 1106//9 1108//9 1107//9 -f 1110//13 1109//13 1112//13 1111//13 -f 1108//7 1106//7 1111//7 1112//7 -f 1105//5 1107//5 1109//5 1110//5 -f 1107//6 1108//6 1112//6 1109//6 -f 1106//8 1105//8 1110//8 1111//8 -f 1113//9 1114//9 1116//9 1115//9 -f 1118//13 1117//13 1120//13 1119//13 -f 1116//5 1114//5 1119//5 1120//5 -f 1113//7 1115//7 1117//7 1118//7 -f 1115//8 1116//8 1120//8 1117//8 -f 1114//6 1113//6 1118//6 1119//6 -f 1121//9 1122//9 1124//9 1123//9 -f 1126//113 1125//113 1128//113 1127//113 -f 1124//6 1122//6 1127//6 1128//6 -f 1121//8 1123//8 1125//8 1126//8 -f 1123//5 1124//5 1128//5 1125//5 -f 1122//7 1121//7 1126//7 1127//7 -f 122//6 123//6 1135//6 1134//6 -f 124//7 121//7 1133//7 1136//7 -f 123//1 124//1 1136//1 1135//1 -f 1135//15 1136//15 1133//15 1134//15 -f 1140//4 1147//4 1146//4 1138//4 -f 1137//3 1145//3 1148//3 1139//3 -f 1138//114 1146//114 1145//114 1137//114 1142//114 1141//114 -f 1141//115 1142//115 1144//115 1143//115 -f 1137//116 1139//116 1144//116 1142//116 -f 1140//117 1138//117 1141//117 1143//117 -f 60//1 59//1 61//1 63//1 -f 1157//118 1158//118 1160//118 1159//118 -f 1154//4 1152//4 1162//4 1160//4 1158//4 1156//4 -f 1159//108 1160//108 1162//108 1161//108 -f 1161//119 1162//119 1152//119 1151//119 -f 1151//3 1153//3 1155//3 1157//3 1159//3 1161//3 -f 1150//1 1149//1 1163//1 1164//1 -f 1163//4 1149//4 1165//4 1167//4 -f 1150//3 1164//3 1168//3 1166//3 -f 1174//13 1173//13 1176//13 1175//13 -f 1172//4 1170//4 1175//4 1176//4 -f 1169//3 1171//3 1173//3 1174//3 -f 1171//2 1172//2 1176//2 1173//2 -f 1170//1 1169//1 1174//1 1175//1 -f 1182//13 1183//13 1184//13 1181//13 -f 1180//1 1179//1 1181//1 1184//1 -f 1177//2 1178//2 1183//2 1182//2 -f 1178//4 1180//4 1184//4 1183//4 -f 1179//3 1177//3 1182//3 1181//3 -f 1189//1 1195//1 1196//1 1190//1 -f 1187//120 1193//120 1194//120 1188//120 -f 1185//121 1191//121 1192//121 1186//121 -f 1190//122 1196//122 1191//122 1185//122 -f 1188//123 1194//123 1195//123 1189//123 -f 1186//2 1192//2 1193//2 1187//2 -f 1186//4 1187//4 1188//4 1189//4 1190//4 1185//4 -f 1198//2 1199//2 1205//2 1204//2 -f 1201//1 1202//1 1208//1 1207//1 -f 1199//120 1200//120 1206//120 1205//120 -f 1197//121 1198//121 1204//121 1203//121 -f 1202//122 1197//122 1203//122 1208//122 -f 1200//123 1201//123 1207//123 1206//123 -f 1207//3 1208//3 1214//3 1213//3 -f 1205//3 1206//3 1212//3 1211//3 -f 1203//3 1204//3 1210//3 1209//3 -f 1208//3 1203//3 1209//3 1214//3 -f 1206//3 1207//3 1213//3 1212//3 -f 1204//3 1205//3 1211//3 1210//3 -f 1214//122 1209//122 1215//122 1220//122 -f 1212//123 1213//123 1219//123 1218//123 -f 1210//2 1211//2 1217//2 1216//2 -f 1213//1 1214//1 1220//1 1219//1 -f 1211//120 1212//120 1218//120 1217//120 -f 1209//121 1210//121 1216//121 1215//121 -f 1217//4 1218//4 1224//4 1223//4 -f 1216//4 1217//4 1223//4 1222//4 -f 1215//4 1216//4 1222//4 1221//4 -f 1220//4 1215//4 1221//4 1226//4 -f 1219//4 1220//4 1226//4 1225//4 -f 1218//4 1219//4 1225//4 1224//4 -f 1224//123 1225//123 1231//123 1230//123 -f 1222//2 1223//2 1229//2 1228//2 -f 1225//1 1226//1 1232//1 1231//1 -f 1223//120 1224//120 1230//120 1229//120 -f 1221//121 1222//121 1228//121 1227//121 -f 1226//122 1221//122 1227//122 1232//122 -f 1229//3 1230//3 1236//3 1235//3 -f 1228//3 1229//3 1235//3 1234//3 -f 1227//3 1228//3 1234//3 1233//3 -f 1232//3 1227//3 1233//3 1238//3 -f 1231//3 1232//3 1238//3 1237//3 -f 1230//3 1231//3 1237//3 1236//3 -f 1234//2 1235//2 1241//2 1240//2 -f 1237//1 1238//1 1244//1 1243//1 -f 1235//120 1236//120 1242//120 1241//120 -f 1233//121 1234//121 1240//121 1239//121 -f 1238//122 1233//122 1239//122 1244//122 -f 1236//123 1237//123 1243//123 1242//123 -f 1239//124 1240//124 1246//124 1245//124 -f 1244//125 1239//125 1245//125 1250//125 -f 1242//126 1243//126 1249//126 1248//126 -f 1240//127 1241//127 1247//127 1246//127 -f 1243//128 1244//128 1250//128 1249//128 -f 1241//129 1242//129 1248//129 1247//129 -f 1246//4 1247//4 1248//4 1249//4 1250//4 1245//4 -f 1251//2 1252//2 1254//2 1253//2 -f 1269//3 1267//3 1272//3 1276//3 1274//3 -f 1253//13 1254//13 1258//13 1255//13 -f 1254//4 1252//4 1257//4 1258//4 -f 1251//3 1253//3 1255//3 1256//3 -f 1259//130 1260//130 1263//130 1264//130 -f 1261//3 1259//3 1264//3 1266//3 -f 1262//11 1261//11 1266//11 1265//11 -f 1260//4 1262//4 1265//4 1263//4 -f 1267//131 1269//131 1270//131 1268//131 -f 1274//13 1276//13 1275//13 1273//13 -f 1268//4 1270//4 1273//4 1275//4 1271//4 -f 1267//130 1268//130 1271//130 1272//130 -f 1272//132 1271//132 1275//132 1276//132 -f 1270//11 1269//11 1274//11 1273//11 -f 1282//130 1283//130 1284//130 1281//130 -f 1278//4 1280//4 1284//4 1283//4 -f 1279//3 1277//3 1282//3 1281//3 -f 1280//132 1279//132 1281//132 1284//132 -f 1277//131 1278//131 1283//131 1282//131 -f 1294//114 1295//114 1305//114 1304//114 1303//114 1302//114 1301//114 1300//114 1299//114 1298//114 1297//114 1296//114 -f 1295//3 1285//3 1306//3 1311//3 -f 1307//133 1293//133 1302//133 1312//133 -f 1302//114 1303//114 1313//114 1312//114 -f 1303//114 1304//114 1314//114 1313//114 -f 1304//114 1305//114 1315//114 1314//114 -f 1311//114 1315//114 1305//114 1295//114 -f 1285//134 1309//134 1310//134 1306//134 -f 1329//114 1330//114 1331//114 1332//114 1333//114 1334//114 1335//114 1336//114 1337//114 1338//114 1339//114 1328//114 -f 52//2 66//2 65//2 51//2 -f 1130//8 1347//8 1345//8 1132//8 -f 53//8 51//8 1344//8 1346//8 -f 65//8 67//8 1129//8 1131//8 -f 53//8 1346//8 1347//8 1130//8 1129//8 67//8 -f 51//8 65//8 1131//8 1132//8 1345//8 1344//8 -f 55//5 1341//5 1340//5 52//5 -f 68//5 1343//5 1341//5 55//5 -f 68//5 66//5 1342//5 1343//5 -f 52//5 1340//5 1342//5 66//5 -f 1343//135 1342//135 1353//135 1352//135 -f 1129//5 1130//5 1350//5 1348//5 -f 1347//136 1443//136 1440//136 1345//136 -f 1349//8 1348//8 1350//8 1351//8 -f 1344//13 1441//13 1442//13 1346//13 -f 1354//5 1352//5 1353//5 1355//5 -f 1130//137 1132//137 1351//137 1350//137 -f 1346//5 1442//5 1443//5 1347//5 -f 1131//138 1129//138 1348//138 1349//138 -f 1132//7 1131//7 1349//7 1351//7 -f 1355//6 1353//6 1342//6 1340//6 -f 1352//8 1354//8 1341//8 1343//8 -f 1363//3 1393//3 1482//3 1483//3 -f 1393//139 1392//139 1490//139 1482//139 -f 1378//4 1370//4 1498//4 1362//4 -f 1364//140 1363//140 1483//140 1484//140 -f 1362//4 1498//4 1461//4 1468//4 -f 1482//141 1490//141 1475//141 1476//141 -f 1364//4 1392//4 1386//4 -f 1386//132 1399//132 1363//132 1364//132 -f 1399//3 1393//3 1363//3 -f 1370//4 1378//4 1385//4 -f 1385//132 1384//132 1371//132 1370//132 -f 1384//3 1377//3 1371//3 -f 1408//13 1407//13 1399//13 1386//13 -f 1400//9 1406//9 1392//9 1393//9 -f 1421//4 1414//4 1385//4 1378//4 -f 1415//3 1422//3 1377//3 1384//3 -f 1407//3 1400//3 1393//3 1399//3 -f 1414//13 1415//13 1384//13 1385//13 -f 1422//9 1421//9 1378//9 1377//9 -f 1406//4 1408//4 1386//4 1392//4 -f 1377//139 1378//139 1362//139 1491//139 -f 1392//4 1364//4 1484//4 1490//4 -f 1722//2 1709//2 1727//2 1725//2 -f 1440//8 1443//8 1442//8 1441//8 -f 1345//7 1440//7 1441//7 1344//7 -f 1354//13 1355//13 1340//13 1341//13 -f 1498//142 1497//142 1462//142 1461//142 -f 1497//3 1491//3 1469//3 1462//3 -f 1483//3 1482//3 1476//3 1460//3 -f 1491//141 1362//141 1468//141 1469//141 -f 1490//4 1484//4 1454//4 1475//4 -f 1484//142 1483//142 1460//142 1454//142 -f 1371//3 1377//3 1491//3 1497//3 -f 1370//140 1371//140 1497//140 1498//140 -f 1516//4 1517//4 1519//4 1518//4 -f 1524//3 1525//3 1527//3 1526//3 -f 1518//143 1519//143 1523//143 1520//143 -f 1517//144 1516//144 1521//144 1522//144 -f 1519//145 1517//145 1522//145 1523//145 -f 1516//146 1518//146 1520//146 1521//146 -f 1526//114 1527//114 1531//114 1528//114 -f 1525//134 1524//134 1529//134 1530//134 -f 1527//115 1525//115 1530//115 1531//115 -f 1524//147 1526//147 1528//147 1529//147 -f 1532//1 1533//1 1535//1 1534//1 -f 1540//2 1541//2 1543//2 1542//2 -f 1534//148 1535//148 1539//148 1536//148 -f 1533//149 1532//149 1537//149 1538//149 -f 1535//150 1533//150 1538//150 1539//150 -f 1532//151 1534//151 1536//151 1537//151 -f 1542//152 1543//152 1547//152 1544//152 -f 1541//153 1540//153 1545//153 1546//153 -f 1543//154 1541//154 1546//154 1547//154 -f 1540//155 1542//155 1544//155 1545//155 -f 1548//6 1549//6 1551//6 1550//6 -f 1556//8 1557//8 1559//8 1558//8 -f 1550//156 1551//156 1555//156 1552//156 -f 1549//157 1548//157 1553//157 1554//157 -f 1551//158 1549//158 1554//158 1555//158 -f 1548//159 1550//159 1552//159 1553//159 -f 1558//160 1559//160 1563//160 1560//160 -f 1557//161 1556//161 1561//161 1562//161 -f 1559//162 1557//162 1562//162 1563//162 -f 1556//163 1558//163 1560//163 1561//163 -f 1564//7 1565//7 1567//7 1566//7 -f 1572//5 1573//5 1575//5 1574//5 -f 1566//164 1567//164 1571//164 1568//164 -f 1565//165 1564//165 1569//165 1570//165 -f 1567//166 1565//166 1570//166 1571//166 -f 1564//167 1566//167 1568//167 1569//167 -f 1574//168 1575//168 1579//168 1576//168 -f 1573//169 1572//169 1577//169 1578//169 -f 1575//170 1573//170 1578//170 1579//170 -f 1572//171 1574//171 1576//171 1577//171 -f 1580//172 1581//172 1583//172 1582//172 -f 1588//173 1589//173 1591//173 1590//173 -f 1582//174 1583//174 1587//174 1584//174 -f 1581//175 1580//175 1585//175 1586//175 -f 1583//176 1581//176 1586//176 1587//176 -f 1580//177 1582//177 1584//177 1585//177 -f 1590//178 1591//178 1595//178 1592//178 -f 1589//179 1588//179 1593//179 1594//179 -f 1591//180 1589//180 1594//180 1595//180 -f 1588//181 1590//181 1592//181 1593//181 -f 1596//182 1597//182 1599//182 1598//182 -f 1604//183 1605//183 1607//183 1606//183 -f 1598//184 1599//184 1603//184 1600//184 -f 1597//185 1596//185 1601//185 1602//185 -f 1599//186 1597//186 1602//186 1603//186 -f 1596//187 1598//187 1600//187 1601//187 -f 1606//188 1607//188 1611//188 1608//188 -f 1605//189 1604//189 1609//189 1610//189 -f 1607//190 1605//190 1610//190 1611//190 -f 1604//191 1606//191 1608//191 1609//191 -f 1612//192 1613//192 1615//192 1614//192 -f 1620//193 1621//193 1623//193 1622//193 -f 1614//194 1615//194 1619//194 1616//194 -f 1613//195 1612//195 1617//195 1618//195 -f 1615//196 1613//196 1618//196 1619//196 -f 1612//197 1614//197 1616//197 1617//197 -f 1622//198 1623//198 1627//198 1624//198 -f 1621//199 1620//199 1625//199 1626//199 -f 1623//200 1621//200 1626//200 1627//200 -f 1620//201 1622//201 1624//201 1625//201 -f 1628//202 1629//202 1631//202 1630//202 -f 1636//203 1637//203 1639//203 1638//203 -f 1630//204 1631//204 1635//204 1632//204 -f 1629//205 1628//205 1633//205 1634//205 -f 1631//206 1629//206 1634//206 1635//206 -f 1628//207 1630//207 1632//207 1633//207 -f 1638//208 1639//208 1643//208 1640//208 -f 1637//209 1636//209 1641//209 1642//209 -f 1639//210 1637//210 1642//210 1643//210 -f 1636//211 1638//211 1640//211 1641//211 -f 1644//212 1645//212 1647//212 1646//212 -f 1652//213 1653//213 1655//213 1654//213 -f 1646//214 1647//214 1651//214 1648//214 -f 1645//215 1644//215 1649//215 1650//215 -f 1647//216 1645//216 1650//216 1651//216 -f 1644//217 1646//217 1648//217 1649//217 -f 1654//218 1655//218 1659//218 1656//218 -f 1653//219 1652//219 1657//219 1658//219 -f 1655//220 1653//220 1658//220 1659//220 -f 1652//221 1654//221 1656//221 1657//221 -f 1660//222 1661//222 1663//222 1662//222 -f 1668//223 1669//223 1671//223 1670//223 -f 1662//224 1663//224 1667//224 1664//224 -f 1661//225 1660//225 1665//225 1666//225 -f 1663//226 1661//226 1666//226 1667//226 -f 1660//227 1662//227 1664//227 1665//227 -f 1670//228 1671//228 1675//228 1672//228 -f 1669//229 1668//229 1673//229 1674//229 -f 1671//230 1669//230 1674//230 1675//230 -f 1668//231 1670//231 1672//231 1673//231 -f 1676//232 1677//232 1679//232 1678//232 -f 1684//233 1685//233 1687//233 1686//233 -f 1678//234 1679//234 1683//234 1680//234 -f 1677//235 1676//235 1681//235 1682//235 -f 1679//236 1677//236 1682//236 1683//236 -f 1676//237 1678//237 1680//237 1681//237 -f 1686//238 1687//238 1691//238 1688//238 -f 1685//239 1684//239 1689//239 1690//239 -f 1687//240 1685//240 1690//240 1691//240 -f 1684//241 1686//241 1688//241 1689//241 -f 1692//242 1693//242 1695//242 1694//242 -f 1700//243 1701//243 1703//243 1702//243 -f 1694//244 1695//244 1699//244 1696//244 -f 1693//245 1692//245 1697//245 1698//245 -f 1695//246 1693//246 1698//246 1699//246 -f 1692//247 1694//247 1696//247 1697//247 -f 1702//248 1703//248 1707//248 1704//248 -f 1701//249 1700//249 1705//249 1706//249 -f 1703//250 1701//250 1706//250 1707//250 -f 1700//251 1702//251 1704//251 1705//251 -f 1710//122 1711//122 1713//122 1712//122 -f 1709//9 1708//9 1726//9 1727//9 -f 1712//1 1713//1 1715//1 1714//1 -f 1708//1 1723//1 1724//1 1726//1 -f 1714//123 1715//123 1717//123 1716//123 -f 1723//13 1722//13 1725//13 1724//13 -f 1716//120 1717//120 1719//120 1718//120 -f 1713//4 1711//4 1721//4 1719//4 1717//4 1715//4 -f 1709//3 1722//3 1723//3 1708//3 -f 1718//2 1719//2 1721//2 1720//2 -f 1720//121 1721//121 1711//121 1710//121 -f 1710//3 1712//3 1714//3 1716//3 1718//3 1720//3 -f 1726//6 1724//6 1728//6 1729//6 -f 1726//9 1729//9 1727//9 -f 1725//13 1728//13 1724//13 -f 1728//13 1725//13 1730//13 1733//13 -f 1733//1 1730//1 1736//1 1737//1 -f 1729//4 1728//4 1733//4 1732//4 -f 1727//9 1729//9 1732//9 1731//9 -f 1725//3 1727//3 1731//3 1730//3 -f 1733//4 1735//4 1732//4 -f 1731//3 1734//3 1730//3 -f 1732//130 1735//130 1734//130 1731//130 -f 1738//140 1739//140 1743//140 1742//140 -f 1735//4 1733//4 1737//4 1739//4 -f 1734//2 1735//2 1739//2 1738//2 -f 1730//3 1734//3 1738//3 1736//3 -f 1741//4 1745//4 1743//4 -f 1736//3 1738//3 1742//3 1740//3 -f 1737//139 1736//139 1740//139 1741//139 -f 1739//4 1737//4 1741//4 1743//4 -f 1743//132 1745//132 1744//132 1742//132 -f 1740//3 1744//3 1748//3 1747//3 -f 1740//3 1742//3 1744//3 -f 1751//9 1747//9 1752//9 1755//9 -f 1741//9 1740//9 1747//9 1746//9 -f 1745//4 1741//4 1746//4 1749//4 -f 1744//13 1745//13 1749//13 1748//13 -f 1749//13 1750//13 1748//13 -f 1746//6 1751//6 1750//6 1749//6 -f 1747//9 1751//9 1746//9 -f 1747//2 1748//2 1753//2 1752//2 -f 1748//13 1750//13 1754//13 1753//13 -f 1750//1 1751//1 1755//1 1754//1 +f 1//1 2//1 3//1 4//1 +f 5//2 6//2 7//2 8//2 +f 9//3 10//3 11//3 12//3 +f 13//4 14//4 15//4 16//4 +f 6//5 13//5 16//5 7//5 +f 3//6 15//6 14//6 4//6 +f 2//7 1//7 12//7 11//7 +f 5//8 8//8 10//8 9//8 +f 14//9 13//9 17//9 18//9 19//9 +f 13//9 6//9 20//9 21//9 17//9 +f 6//9 5//9 22//9 23//9 20//9 +f 5//9 9//9 24//9 25//9 22//9 +f 9//9 12//9 26//9 27//9 24//9 +f 12//9 1//9 28//9 29//9 26//9 +f 1//9 4//9 30//9 31//9 28//9 +f 4//9 14//9 19//9 32//9 30//9 +f 33//3 34//3 35//3 36//3 37//3 +f 38//6 39//6 836//6 40//6 41//6 42//6 43//6 +f 44//4 45//4 42//4 41//4 46//4 47//4 +f 48//1 49//1 38//1 43//1 +f 37//10 36//10 50//10 51//10 49//10 48//10 +f 38//11 49//11 51//11 39//11 +f 52//2 53//2 44//2 47//2 +f 54//3 55//3 56//3 57//3 +f 58//3 57//3 56//3 35//3 34//3 +f 55//12 54//12 59//12 60//12 +f 61//3 62//3 63//3 64//3 +f 65//3 66//3 67//3 68//3 +f 69//3 70//3 71//3 72//3 +f 73//3 74//3 75//3 76//3 +f 77//3 78//3 79//3 80//3 +f 73//3 77//3 80//3 61//3 64//3 65//3 68//3 69//3 72//3 74//3 +f 76//3 75//3 71//3 70//3 67//3 66//3 63//3 62//3 79//3 78//3 +f 70//1 69//1 81//1 82//1 +f 69//9 68//9 83//9 81//9 +f 64//2 63//2 84//2 85//2 +f 65//9 64//9 85//9 86//9 +f 87//3 88//3 89//3 90//3 +f 83//3 91//3 82//3 81//3 +f 86//3 85//3 84//3 92//3 +f 93//3 94//3 95//3 96//3 +f 74//9 72//9 88//9 87//9 +f 72//2 71//2 89//2 88//2 +f 71//13 75//13 90//13 89//13 +f 66//1 65//1 86//1 92//1 +f 67//13 70//13 82//13 91//13 +f 68//2 67//2 91//2 83//2 +f 63//13 66//13 92//13 84//13 +f 75//1 74//1 87//1 90//1 +f 79//13 62//13 95//13 94//13 +f 80//2 79//2 94//2 93//2 +f 61//9 80//9 93//9 96//9 +f 62//1 61//1 96//1 95//1 +f 46//13 41//13 97//13 98//13 +f 41//13 40//13 97//13 +f 54//13 57//13 99//13 100//13 +f 54//13 100//13 59//13 +f 47//14 46//14 98//14 52//14 +f 101//14 99//14 57//14 58//14 +f 102//2 101//2 58//2 34//2 +f 103//15 104//15 105//15 106//15 +f 104//15 44//15 53//15 105//15 +f 103//15 106//15 102//15 34//15 +f 107//16 108//16 109//16 110//16 +f 111//16 112//16 113//16 114//16 +f 115//16 116//16 117//16 118//16 +f 116//16 119//16 120//16 117//16 +f 121//16 107//16 110//16 122//16 +f 108//16 111//16 114//16 109//16 +f 112//16 115//16 118//16 113//16 +f 119//16 121//16 122//16 120//16 +f 123//16 124//16 125//16 126//16 127//16 128//16 129//16 130//16 +f 131//16 132//16 133//16 134//16 +f 132//16 135//16 136//16 133//16 +f 135//17 137//17 138//17 136//17 +f 137//17 139//17 140//17 138//17 +f 139//16 141//16 142//16 140//16 +f 141//17 143//17 144//17 142//17 +f 143//17 145//17 146//17 144//17 +f 145//17 131//17 134//17 146//17 +f 147//18 148//18 149//18 150//18 +f 151//19 152//19 150//19 149//19 +f 153//20 151//20 149//20 148//20 +f 154//21 153//21 148//21 147//21 +f 152//22 154//22 147//22 150//22 +f 155//9 156//9 157//9 158//9 +f 159//9 160//9 161//9 162//9 163//9 164//9 165//9 166//9 +f 167//9 155//9 158//9 168//9 +f 169//9 167//9 168//9 170//9 +f 171//9 169//9 170//9 172//9 +f 173//9 171//9 172//9 174//9 +f 175//9 173//9 174//9 176//9 +f 177//9 175//9 176//9 178//9 +f 156//9 177//9 178//9 157//9 +f 179//9 180//9 181//9 182//9 +f 183//9 184//9 180//9 179//9 +f 185//9 186//9 184//9 183//9 +f 187//9 188//9 186//9 185//9 +f 189//9 190//9 188//9 187//9 +f 191//9 192//9 190//9 189//9 +f 193//9 194//9 192//9 191//9 +f 182//9 181//9 194//9 193//9 +f 195//9 196//9 197//9 198//9 199//9 200//9 201//9 202//9 203//9 204//9 205//9 206//9 207//9 208//9 209//9 210//9 +f 16//13 211//13 212//13 213//13 7//13 +f 15//13 214//13 215//13 211//13 16//13 +f 3//13 216//13 217//13 214//13 15//13 +f 2//13 218//13 219//13 216//13 3//13 +f 11//13 220//13 221//13 218//13 2//13 +f 10//13 222//13 223//13 220//13 11//13 +f 8//13 224//13 225//13 222//13 10//13 +f 7//13 213//13 226//13 224//13 8//13 +f 227//9 228//9 229//9 230//9 231//9 +f 45//9 227//9 231//9 232//9 233//9 +f 42//9 45//9 233//9 234//9 235//9 +f 43//9 42//9 235//9 236//9 237//9 +f 48//9 43//9 237//9 238//9 239//9 +f 37//9 48//9 239//9 240//9 241//9 +f 33//9 37//9 241//9 242//9 243//9 +f 228//9 33//9 243//9 244//9 229//9 +f 245//3 246//3 247//3 248//3 249//3 250//3 251//3 252//3 +f 76//9 78//9 253//9 254//9 +f 78//1 77//1 255//1 253//1 +f 77//13 73//13 256//13 255//13 +f 73//2 76//2 254//2 256//2 +f 257//4 258//4 259//4 260//4 261//4 262//4 263//4 264//4 +f 246//23 264//23 263//23 247//23 +f 248//24 262//24 261//24 249//24 +f 252//25 258//25 257//25 245//25 +f 247//26 263//26 262//26 248//26 +f 249//27 261//27 260//27 250//27 +f 251//28 259//28 258//28 252//28 +f 245//29 257//29 264//29 246//29 +f 265//9 266//9 267//9 268//9 +f 269//13 270//13 271//13 272//13 +f 267//6 266//6 272//6 271//6 +f 265//8 268//8 270//8 269//8 +f 268//5 267//5 271//5 270//5 +f 266//7 265//7 269//7 272//7 +f 273//9 274//9 275//9 276//9 +f 277//13 278//13 279//13 280//13 +f 275//8 274//8 280//8 279//8 +f 273//6 276//6 278//6 277//6 +f 276//7 275//7 279//7 278//7 +f 274//5 273//5 277//5 280//5 +f 281//9 282//9 283//9 284//9 +f 285//13 286//13 287//13 288//13 +f 283//7 282//7 288//7 287//7 +f 281//5 284//5 286//5 285//5 +f 284//6 283//6 287//6 286//6 +f 282//8 281//8 285//8 288//8 +f 289//9 290//9 291//9 292//9 +f 293//13 294//13 295//13 296//13 +f 291//5 290//5 296//5 295//5 +f 289//7 292//7 294//7 293//7 +f 292//8 291//8 295//8 294//8 +f 290//6 289//6 293//6 296//6 +f 297//9 298//9 299//9 300//9 +f 301//30 302//30 303//30 304//30 +f 299//6 298//6 304//6 303//6 +f 297//8 300//8 302//8 301//8 +f 300//5 299//5 303//5 302//5 +f 298//7 297//7 301//7 304//7 +f 102//6 106//6 305//6 306//6 +f 105//7 53//7 307//7 308//7 +f 106//1 105//1 308//1 305//1 +f 305//15 308//15 307//15 306//15 +f 309//4 310//4 311//4 312//4 +f 313//3 314//3 315//3 316//3 +f 312//31 311//31 314//31 313//31 317//31 318//31 +f 318//32 317//32 319//32 320//32 +f 313//33 316//33 319//33 317//33 +f 309//34 312//34 318//34 320//34 +f 39//1 51//1 50//1 836//1 +f 321//35 322//35 323//35 324//35 +f 325//4 326//4 327//4 323//4 322//4 328//4 +f 324//25 323//25 327//25 329//25 +f 329//36 327//36 326//36 330//36 +f 330//3 331//3 332//3 321//3 324//3 329//3 +f 333//1 334//1 335//1 336//1 +f 335//4 334//4 337//4 338//4 +f 333//3 336//3 339//3 340//3 +f 341//13 342//13 343//13 344//13 +f 345//4 346//4 344//4 343//4 +f 347//3 348//3 342//3 341//3 +f 348//2 345//2 343//2 342//2 +f 346//1 347//1 341//1 344//1 +f 349//13 350//13 351//13 352//13 +f 353//1 354//1 352//1 351//1 +f 355//2 356//2 350//2 349//2 +f 356//4 353//4 351//4 350//4 +f 354//3 355//3 349//3 352//3 +f 357//1 358//1 359//1 360//1 +f 361//37 362//37 363//37 364//37 +f 365//38 366//38 367//38 368//38 +f 360//39 359//39 366//39 365//39 +f 364//40 363//40 358//40 357//40 +f 368//2 367//2 362//2 361//2 +f 368//4 361//4 364//4 357//4 360//4 365//4 +f 369//2 370//2 371//2 372//2 +f 373//1 374//1 375//1 376//1 +f 370//37 377//37 378//37 371//37 +f 379//38 369//38 372//38 380//38 +f 374//39 379//39 380//39 375//39 +f 377//40 373//40 376//40 378//40 +f 376//3 375//3 381//3 382//3 +f 371//3 378//3 383//3 384//3 +f 380//3 372//3 385//3 386//3 +f 375//3 380//3 386//3 381//3 +f 378//3 376//3 382//3 383//3 +f 372//3 371//3 384//3 385//3 +f 381//39 386//39 387//39 388//39 +f 383//40 382//40 389//40 390//40 +f 385//2 384//2 391//2 392//2 +f 382//1 381//1 388//1 389//1 +f 384//37 383//37 390//37 391//37 +f 386//38 385//38 392//38 387//38 +f 391//4 390//4 393//4 394//4 +f 392//4 391//4 394//4 395//4 +f 387//4 392//4 395//4 396//4 +f 388//4 387//4 396//4 397//4 +f 389//4 388//4 397//4 398//4 +f 390//4 389//4 398//4 393//4 +f 393//40 398//40 399//40 400//40 +f 395//2 394//2 401//2 402//2 +f 398//1 397//1 403//1 399//1 +f 394//37 393//37 400//37 401//37 +f 396//38 395//38 402//38 404//38 +f 397//39 396//39 404//39 403//39 +f 401//3 400//3 405//3 406//3 +f 402//3 401//3 406//3 407//3 +f 404//3 402//3 407//3 408//3 +f 403//3 404//3 408//3 409//3 +f 399//3 403//3 409//3 410//3 +f 400//3 399//3 410//3 405//3 +f 407//2 406//2 411//2 412//2 +f 410//1 409//1 413//1 414//1 +f 406//37 405//37 415//37 411//37 +f 408//38 407//38 412//38 416//38 +f 409//39 408//39 416//39 413//39 +f 405//40 410//40 414//40 415//40 +f 416//41 412//41 417//41 418//41 +f 413//42 416//42 418//42 419//42 +f 415//43 414//43 420//43 421//43 +f 412//44 411//44 422//44 417//44 +f 414//45 413//45 419//45 420//45 +f 411//46 415//46 421//46 422//46 +f 417//4 422//4 421//4 420//4 419//4 418//4 +f 423//2 424//2 425//2 426//2 +f 427//3 428//3 429//3 430//3 431//3 +f 426//13 425//13 432//13 433//13 +f 425//4 424//4 434//4 432//4 +f 423//3 426//3 433//3 435//3 +f 436//47 437//47 438//47 439//47 +f 440//3 436//3 439//3 441//3 +f 442//11 440//11 441//11 443//11 +f 437//4 442//4 443//4 438//4 +f 428//48 427//48 444//48 445//48 +f 431//13 430//13 446//13 447//13 +f 445//4 444//4 447//4 446//4 448//4 +f 428//47 445//47 448//47 429//47 +f 429//49 448//49 446//49 430//49 +f 444//11 427//11 431//11 447//11 +f 449//47 450//47 451//47 452//47 +f 453//4 454//4 451//4 450//4 +f 455//3 456//3 449//3 452//3 +f 454//49 455//49 452//49 451//49 +f 456//48 453//48 450//48 449//48 +f 457//31 458//31 459//31 460//31 461//31 462//31 463//31 464//31 465//31 466//31 467//31 468//31 +f 458//3 469//3 470//3 471//3 +f 472//50 473//50 462//50 474//50 +f 462//31 461//31 475//31 474//31 +f 461//31 460//31 476//31 475//31 +f 460//31 459//31 477//31 476//31 +f 471//31 477//31 459//31 458//31 +f 469//51 478//51 479//51 470//51 +f 480//31 481//31 482//31 483//31 484//31 485//31 486//31 487//31 488//31 489//31 490//31 491//31 +f 227//2 104//2 103//2 228//2 +f 492//8 493//8 494//8 495//8 +f 33//8 228//8 496//8 497//8 +f 103//8 34//8 498//8 499//8 +f 33//8 497//8 493//8 492//8 498//8 34//8 +f 228//8 103//8 499//8 495//8 494//8 496//8 +f 45//5 500//5 501//5 227//5 +f 44//5 502//5 500//5 45//5 +f 44//5 104//5 503//5 502//5 +f 227//5 501//5 503//5 104//5 +f 502//52 503//52 504//52 505//52 +f 498//5 492//5 506//5 507//5 +f 493//53 508//53 509//53 494//53 +f 510//8 507//8 506//8 511//8 +f 496//13 512//13 513//13 497//13 +f 514//5 505//5 504//5 515//5 +f 492//54 495//54 511//54 506//54 +f 497//5 513//5 508//5 493//5 +f 499//55 498//55 507//55 510//55 +f 495//7 499//7 510//7 511//7 +f 515//6 504//6 503//6 501//6 +f 505//8 514//8 500//8 502//8 +f 516//3 517//3 518//3 519//3 +f 517//56 520//56 521//56 518//56 +f 522//4 523//4 524//4 525//4 +f 526//57 516//57 519//57 527//57 +f 525//4 524//4 528//4 529//4 +f 518//58 521//58 530//58 531//58 +f 526//4 520//4 532//4 +f 532//49 533//49 516//49 526//49 +f 533//3 517//3 516//3 +f 523//4 522//4 534//4 +f 534//49 535//49 536//49 523//49 +f 535//3 537//3 536//3 +f 538//13 539//13 533//13 532//13 +f 540//9 541//9 520//9 517//9 +f 542//4 543//4 534//4 522//4 +f 544//3 545//3 537//3 535//3 +f 539//3 540//3 517//3 533//3 +f 543//13 544//13 535//13 534//13 +f 545//9 542//9 522//9 537//9 +f 541//4 538//4 532//4 520//4 +f 537//56 522//56 525//56 546//56 +f 520//4 526//4 527//4 521//4 +f 547//2 548//2 549//2 550//2 +f 509//8 508//8 513//8 512//8 +f 494//7 509//7 512//7 496//7 +f 514//13 515//13 501//13 500//13 +f 524//59 551//59 552//59 528//59 +f 551//3 546//3 553//3 552//3 +f 519//3 518//3 531//3 554//3 +f 546//58 525//58 529//58 553//58 +f 521//4 527//4 555//4 530//4 +f 527//59 519//59 554//59 555//59 +f 536//3 537//3 546//3 551//3 +f 523//57 536//57 551//57 524//57 +f 556//2 557//2 558//2 559//2 +f 559//60 558//60 560//60 561//60 +f 557//61 556//61 562//61 563//61 +f 558//62 557//62 563//62 560//62 +f 556//63 559//63 561//63 562//63 +f 564//39 565//39 566//39 567//39 +f 548//9 568//9 569//9 549//9 +f 567//1 566//1 570//1 571//1 +f 568//1 572//1 573//1 569//1 +f 571//40 570//40 574//40 575//40 +f 572//13 547//13 550//13 573//13 +f 575//37 574//37 576//37 577//37 +f 566//4 565//4 578//4 576//4 574//4 570//4 +f 548//3 547//3 572//3 568//3 +f 577//2 576//2 578//2 579//2 +f 579//38 578//38 565//38 564//38 +f 564//3 567//3 571//3 575//3 577//3 579//3 +f 569//6 573//6 580//6 581//6 +f 569//9 581//9 549//9 +f 550//13 580//13 573//13 +f 580//13 550//13 582//13 583//13 +f 583//1 582//1 584//1 585//1 +f 581//4 580//4 583//4 586//4 +f 549//9 581//9 586//9 587//9 +f 550//3 549//3 587//3 582//3 +f 583//4 588//4 586//4 +f 587//3 589//3 582//3 +f 586//47 588//47 589//47 587//47 +f 590//57 591//57 592//57 593//57 +f 588//4 583//4 585//4 591//4 +f 589//2 588//2 591//2 590//2 +f 582//3 589//3 590//3 584//3 +f 594//4 595//4 592//4 +f 584//3 590//3 593//3 596//3 +f 585//56 584//56 596//56 594//56 +f 591//4 585//4 594//4 592//4 +f 592//49 595//49 597//49 593//49 +f 596//3 597//3 598//3 599//3 +f 596//3 593//3 597//3 +f 600//9 599//9 601//9 602//9 +f 594//9 596//9 599//9 603//9 +f 595//4 594//4 603//4 604//4 +f 597//13 595//13 604//13 598//13 +f 604//13 605//13 598//13 +f 603//6 600//6 605//6 604//6 +f 599//9 600//9 603//9 +f 599//2 598//2 606//2 601//2 +f 598//13 605//13 607//13 606//13 +f 605//1 600//1 602//1 607//1 s 1 -f 17//252 18//253 34//253 33//252 -f 32//254 17//252 33//252 48//254 -f 31//255 32//254 48//254 47//255 -f 30//256 31//255 47//255 46//256 -f 29//257 30//256 46//256 45//257 -f 28//258 29//257 45//257 44//258 -f 27//259 28//258 44//258 43//259 -f 26//260 27//259 43//259 42//260 -f 25//261 26//260 42//260 41//261 -f 24//262 25//261 41//261 40//262 -f 23//263 24//262 40//262 39//263 -f 22//264 23//263 39//263 38//264 -f 21//265 22//264 38//264 37//265 -f 20//266 21//265 37//265 36//266 -f 19//267 20//266 36//266 35//267 -f 18//253 19//267 35//267 34//253 -f 129//268 128//269 137//270 136//271 -f 127//272 126//273 139//274 138//275 -f 125//276 132//277 133//278 140//279 -f 132//277 131//280 134//281 133//278 -f 130//282 129//268 136//271 135//283 -f 128//269 127//272 138//275 137//270 -f 126//273 125//276 140//279 139//274 -f 131//280 130//282 135//283 134//281 -f 140//279 133//278 141//284 148//285 -f 138//275 139//274 147//286 146//287 -f 136//271 137//270 145//288 144//289 -f 134//281 135//283 143//290 142//291 -f 139//274 140//279 148//285 147//286 -f 137//270 138//275 146//287 145//288 -f 135//283 136//271 144//289 143//290 -f 133//278 134//281 142//291 141//284 -f 143//290 144//289 152//292 151//13 -f 141//284 142//291 150//293 149//294 -f 148//285 141//284 149//294 156//295 -f 146//287 147//286 155//9 154//296 -f 144//289 145//288 153//297 152//292 -f 142//291 143//290 151//13 150//293 -f 147//286 148//285 156//295 155//9 -f 145//288 146//287 154//296 153//297 -f 155//9 156//295 164//298 163//299 -f 153//297 154//296 162//300 161//301 -f 151//13 152//292 160//302 159//303 -f 149//294 150//293 158//304 157//305 -f 156//295 149//294 157//305 164//298 -f 154//296 155//9 163//299 162//300 -f 152//292 153//297 161//301 160//302 -f 150//293 151//13 159//303 158//304 -f 33//1 34//306 166//306 165//1 -f 48//307 33//1 165//1 180//307 -f 41//2 42//308 174//308 173//2 -f 34//306 35//6 167//6 166//306 -f 42//308 43//8 175//8 174//308 -f 35//6 36//309 168//309 167//6 -f 43//8 44//310 176//310 175//8 -f 36//309 37//4 169//4 168//309 -f 44//310 45//3 177//3 176//310 -f 37//4 38//311 170//311 169//4 -f 45//3 46//312 178//312 177//3 -f 38//311 39//5 171//5 170//311 -f 46//312 47//7 179//7 178//312 -f 39//5 40//313 172//313 171//5 -f 47//7 48//307 180//307 179//7 -f 40//313 41//2 173//2 172//313 -f 185//314 184//315 193//316 192//317 -f 183//318 182//319 195//320 194//321 -f 181//322 188//323 189//324 196//325 -f 188//323 187//326 190//327 189//324 -f 186//328 185//314 192//317 191//329 -f 184//315 183//318 194//321 193//316 -f 182//319 181//322 196//325 195//320 -f 187//326 186//328 191//329 190//327 -f 196//325 189//324 197//330 204//331 -f 194//321 195//320 203//332 202//333 -f 192//317 193//316 201//334 200//335 -f 190//327 191//329 199//336 198//337 -f 195//320 196//325 204//331 203//332 -f 193//316 194//321 202//333 201//334 -f 191//329 192//317 200//335 199//336 -f 189//324 190//327 198//337 197//330 -f 199//336 200//335 208//293 207//13 -f 197//330 198//337 206//292 205//297 -f 204//331 197//330 205//297 212//296 -f 202//333 203//332 211//9 210//295 -f 200//335 201//334 209//294 208//293 -f 198//337 199//336 207//13 206//292 -f 203//332 204//331 212//296 211//9 -f 201//334 202//333 210//295 209//294 -f 211//9 212//296 220//338 219//339 -f 209//294 210//295 218//340 217//341 -f 207//13 208//293 216//342 215//343 -f 205//297 206//292 214//344 213//345 -f 212//296 205//297 213//345 220//338 -f 210//295 211//9 219//339 218//340 -f 208//293 209//294 217//341 216//342 -f 206//292 207//13 215//343 214//344 -f 225//346 224//347 233//348 232//349 -f 223//350 222//107 235//351 234//352 -f 221//353 228//354 229//355 236//356 -f 228//354 227//357 230//358 229//355 -f 226//108 225//346 232//349 231//359 -f 224//347 223//350 234//352 233//348 -f 222//107 221//353 236//356 235//351 -f 227//357 226//108 231//359 230//358 -f 236//356 229//355 237//360 244//361 -f 234//352 235//351 243//110 242//362 -f 232//349 233//348 241//363 240//364 -f 230//358 231//359 239//112 238//365 -f 235//351 236//356 244//361 243//110 -f 233//348 234//352 242//362 241//363 -f 231//359 232//349 240//364 239//112 -f 229//355 230//358 238//365 237//360 -f 239//112 240//364 248//366 247//13 -f 237//360 238//365 246//367 245//368 -f 244//361 237//360 245//368 252//369 -f 242//362 243//110 251//9 250//370 -f 240//364 241//363 249//371 248//366 -f 238//365 239//112 247//13 246//367 -f 243//110 244//361 252//369 251//9 -f 241//363 242//362 250//370 249//371 -f 251//9 252//369 260//372 259//373 -f 249//371 250//370 258//374 257//375 -f 247//13 248//366 256//376 255//377 -f 245//368 246//367 254//378 253//379 -f 252//369 245//368 253//379 260//372 -f 250//370 251//9 259//373 258//374 -f 248//366 249//371 257//375 256//376 -f 246//367 247//13 255//377 254//378 -f 265//380 264//381 273//382 272//383 -f 263//384 262//111 275//385 274//386 -f 261//387 268//388 269//389 276//390 -f 268//388 267//391 270//392 269//389 -f 266//109 265//380 272//383 271//393 -f 264//381 263//384 274//386 273//382 -f 262//111 261//387 276//390 275//385 -f 267//391 266//109 271//393 270//392 -f 276//390 269//389 277//394 284//395 -f 274//386 275//385 283//396 282//397 -f 272//383 273//382 281//398 280//399 -f 270//392 271//393 279//106 278//400 -f 275//385 276//390 284//395 283//396 -f 273//382 274//386 282//397 281//398 -f 271//393 272//383 280//399 279//106 -f 269//389 270//392 278//400 277//394 -f 279//106 280//399 288//367 287//13 -f 277//394 278//400 286//366 285//371 -f 284//395 277//394 285//371 292//370 -f 282//397 283//396 291//9 290//369 -f 280//399 281//398 289//368 288//367 -f 278//400 279//106 287//13 286//366 -f 283//396 284//395 292//370 291//9 -f 281//398 282//397 290//369 289//368 -f 291//9 292//370 300//401 299//402 -f 289//368 290//369 298//403 297//404 -f 287//13 288//367 296//405 295//406 -f 285//371 286//366 294//407 293//408 -f 292//370 285//371 293//408 300//401 -f 290//369 291//9 299//402 298//403 -f 288//367 289//368 297//404 296//405 -f 286//366 287//13 295//406 294//407 -f 305//409 304//410 313//411 312//412 -f 303//413 302//414 315//415 314//416 -f 301//417 308//418 309//419 316//420 -f 308//418 307//421 310//422 309//419 -f 306//423 305//409 312//412 311//424 -f 304//410 303//413 314//416 313//411 -f 302//414 301//417 316//420 315//415 -f 307//421 306//423 311//424 310//422 -f 316//420 309//419 317//425 324//426 -f 314//416 315//415 323//427 322//428 -f 312//412 313//411 321//429 320//430 -f 310//422 311//424 319//431 318//432 -f 315//415 316//420 324//426 323//427 -f 313//411 314//416 322//428 321//429 -f 311//424 312//412 320//430 319//431 -f 309//419 310//422 318//432 317//425 -f 319//431 320//430 328//433 327//13 -f 317//425 318//432 326//434 325//435 -f 324//426 317//425 325//435 332//436 -f 322//428 323//427 331//9 330//437 -f 320//430 321//429 329//438 328//433 -f 318//432 319//431 327//13 326//434 -f 323//427 324//426 332//436 331//9 -f 321//429 322//428 330//437 329//438 -f 331//9 332//436 340//439 339//440 -f 329//438 330//437 338//441 337//442 -f 327//13 328//433 336//443 335//444 -f 325//435 326//434 334//445 333//446 -f 332//436 325//435 333//446 340//439 -f 330//437 331//9 339//440 338//441 -f 328//433 329//438 337//442 336//443 -f 326//434 327//13 335//444 334//445 -f 345//447 344//448 353//449 352//450 -f 343//451 342//452 355//453 354//454 -f 341//455 348//456 349//457 356//458 -f 348//456 347//459 350//460 349//457 -f 346//461 345//447 352//450 351//462 -f 344//448 343//451 354//454 353//449 -f 342//452 341//455 356//458 355//453 -f 347//459 346//461 351//462 350//460 -f 356//458 349//457 357//463 364//464 -f 354//454 355//453 363//465 362//466 -f 352//450 353//449 361//467 360//468 -f 350//460 351//462 359//469 358//470 -f 355//453 356//458 364//464 363//465 -f 353//449 354//454 362//466 361//467 -f 351//462 352//450 360//468 359//469 -f 349//457 350//460 358//470 357//463 -f 359//469 360//468 368//434 367//13 -f 357//463 358//470 366//433 365//438 -f 364//464 357//463 365//438 372//437 -f 362//466 363//465 371//9 370//436 -f 360//468 361//467 369//435 368//434 -f 358//470 359//469 367//13 366//433 -f 363//465 364//464 372//437 371//9 -f 361//467 362//466 370//436 369//435 -f 371//9 372//437 380//471 379//472 -f 369//435 370//436 378//473 377//474 -f 367//13 368//434 376//475 375//476 -f 365//438 366//433 374//477 373//478 -f 372//437 365//438 373//478 380//471 -f 370//436 371//9 379//472 378//473 -f 368//434 369//435 377//474 376//475 -f 366//433 367//13 375//476 374//477 -f 385//479 384//480 393//481 392//482 -f 383//483 382//484 395//485 394//486 -f 381//487 388//488 389//489 396//490 -f 388//488 387//491 390//492 389//489 -f 386//493 385//479 392//482 391//494 -f 384//480 383//483 394//486 393//481 -f 382//484 381//487 396//490 395//485 -f 387//491 386//493 391//494 390//492 -f 396//490 389//489 397//495 404//496 -f 394//486 395//485 403//497 402//498 -f 392//482 393//481 401//499 400//500 -f 390//492 391//494 399//501 398//502 -f 395//485 396//490 404//496 403//497 -f 393//481 394//486 402//498 401//499 -f 391//494 392//482 400//500 399//501 -f 389//489 390//492 398//502 397//495 -f 399//501 400//500 408//503 407//13 -f 397//495 398//502 406//504 405//505 -f 404//496 397//495 405//505 412//506 -f 402//498 403//497 411//9 410//507 -f 400//500 401//499 409//508 408//503 -f 398//502 399//501 407//13 406//504 -f 403//497 404//496 412//506 411//9 -f 401//499 402//498 410//507 409//508 -f 411//9 412//506 420//509 419//510 -f 409//508 410//507 418//511 417//512 -f 407//13 408//503 416//513 415//514 -f 405//505 406//504 414//515 413//516 -f 412//506 405//505 413//516 420//509 -f 410//507 411//9 419//510 418//511 -f 408//503 409//508 417//512 416//513 -f 406//504 407//13 415//514 414//515 -f 425//517 424//518 433//519 432//520 -f 423//521 422//522 435//523 434//524 -f 421//525 428//526 429//527 436//528 -f 428//526 427//529 430//530 429//527 -f 426//531 425//517 432//520 431//532 -f 424//518 423//521 434//524 433//519 -f 422//522 421//525 436//528 435//523 -f 427//529 426//531 431//532 430//530 -f 436//528 429//527 437//533 444//534 -f 434//524 435//523 443//535 442//536 -f 432//520 433//519 441//537 440//538 -f 430//530 431//532 439//539 438//540 -f 435//523 436//528 444//534 443//535 -f 433//519 434//524 442//536 441//537 -f 431//532 432//520 440//538 439//539 -f 429//527 430//530 438//540 437//533 -f 439//539 440//538 448//504 447//13 -f 437//533 438//540 446//503 445//508 -f 444//534 437//533 445//508 452//507 -f 442//536 443//535 451//9 450//506 -f 440//538 441//537 449//505 448//504 -f 438//540 439//539 447//13 446//503 -f 443//535 444//534 452//507 451//9 -f 441//537 442//536 450//506 449//505 -f 451//9 452//507 460//541 459//542 -f 449//505 450//506 458//543 457//544 -f 447//13 448//504 456//545 455//546 -f 445//508 446//503 454//547 453//548 -f 452//507 445//508 453//548 460//541 -f 450//506 451//9 459//542 458//543 -f 448//504 449//505 457//544 456//545 -f 446//503 447//13 455//546 454//547 -f 469//307 470//549 467//549 468//307 -f 471//550 472//551 465//551 466//550 -f 473//313 474//552 463//552 464//313 -f 475//553 476//554 461//554 462//553 -f 470//549 471//550 466//550 467//549 -f 472//551 473//313 464//313 465//551 -f 474//552 475//553 462//553 463//552 -f 476//554 469//307 468//307 461//554 -f 491//552 492//313 501//313 508//552 -f 478//554 477//307 493//307 494//554 -f 490//553 491//552 508//552 507//553 -f 477//307 484//549 500//549 493//307 -f 489//554 490//553 507//553 506//554 -f 484//549 483//550 499//550 500//549 -f 488//307 489//554 506//554 505//307 -f 483//550 482//551 498//551 499//550 -f 479//553 478//554 494//554 495//553 -f 492//313 485//551 502//551 501//313 -f 480//552 479//553 495//553 496//552 -f 485//551 486//550 503//550 502//551 -f 481//313 480//552 496//552 497//313 -f 486//550 487//549 504//549 503//550 -f 482//551 481//313 497//313 498//551 -f 487//549 488//307 505//307 504//549 -f 517//313 518//555 515//555 516//313 -f 519//556 520//557 513//557 514//556 -f 521//307 522//558 511//558 512//307 -f 523//559 524//560 509//560 510//559 -f 518//555 519//556 514//556 515//555 -f 520//557 521//307 512//307 513//557 -f 522//558 523//559 510//559 511//558 -f 524//560 517//313 516//313 509//560 -f 539//558 540//307 549//307 556//558 -f 526//560 525//313 541//313 542//560 -f 538//559 539//558 556//558 555//559 -f 525//313 532//555 548//555 541//313 -f 537//560 538//559 555//559 554//560 -f 532//555 531//556 547//556 548//555 -f 536//313 537//560 554//560 553//313 -f 531//556 530//557 546//557 547//556 -f 527//559 526//560 542//560 543//559 -f 540//307 533//557 550//557 549//307 -f 528//558 527//559 543//559 544//558 -f 533//557 534//556 551//556 550//557 -f 529//307 528//558 544//558 545//307 -f 534//556 535//555 552//555 551//556 -f 530//557 529//307 545//307 546//557 -f 535//555 536//313 553//313 552//555 -f 565//310 566//561 563//561 564//310 -f 567//562 568//563 561//563 562//562 -f 569//309 570//564 559//564 560//309 -f 571//565 572//566 557//566 558//565 -f 566//561 567//562 562//562 563//561 -f 568//563 569//309 560//309 561//563 -f 570//564 571//565 558//565 559//564 -f 572//566 565//310 564//310 557//566 -f 587//564 588//309 597//309 604//564 -f 574//566 573//310 589//310 590//566 -f 586//565 587//564 604//564 603//565 -f 573//310 580//561 596//561 589//310 -f 585//566 586//565 603//565 602//566 -f 580//561 579//562 595//562 596//561 -f 584//310 585//566 602//566 601//310 -f 579//562 578//563 594//563 595//562 -f 575//565 574//566 590//566 591//565 -f 588//309 581//563 598//563 597//309 -f 576//564 575//565 591//565 592//564 -f 581//563 582//562 599//562 598//563 -f 577//309 576//564 592//564 593//309 -f 582//562 583//561 600//561 599//562 -f 578//563 577//309 593//309 594//563 -f 583//561 584//310 601//310 600//561 -f 613//309 614//567 611//567 612//309 -f 615//568 616//569 609//569 610//568 -f 617//310 618//570 607//570 608//310 -f 619//571 620//572 605//572 606//571 -f 614//567 615//568 610//568 611//567 -f 616//569 617//310 608//310 609//569 -f 618//570 619//571 606//571 607//570 -f 620//572 613//309 612//309 605//572 -f 635//570 636//310 645//310 652//570 -f 622//572 621//309 637//309 638//572 -f 634//571 635//570 652//570 651//571 -f 621//309 628//567 644//567 637//309 -f 633//572 634//571 651//571 650//572 -f 628//567 627//568 643//568 644//567 -f 632//309 633//572 650//572 649//309 -f 627//568 626//569 642//569 643//568 -f 623//571 622//572 638//572 639//571 -f 636//310 629//569 646//569 645//310 -f 624//570 623//571 639//571 640//570 -f 629//569 630//568 647//568 646//569 -f 625//310 624//570 640//570 641//310 -f 630//568 631//567 648//567 647//568 -f 626//569 625//310 641//310 642//569 -f 631//567 632//309 649//309 648//567 -f 661//312 662//573 659//573 660//312 -f 663//574 664//575 657//575 658//574 -f 665//311 666//576 655//576 656//311 -f 667//577 668//578 653//578 654//577 -f 662//573 663//574 658//574 659//573 -f 664//575 665//311 656//311 657//575 -f 666//576 667//577 654//577 655//576 -f 668//578 661//312 660//312 653//578 -f 683//576 684//311 693//311 700//576 -f 670//578 669//312 685//312 686//578 -f 682//577 683//576 700//576 699//577 -f 669//312 676//573 692//573 685//312 -f 681//578 682//577 699//577 698//578 -f 676//573 675//574 691//574 692//573 -f 680//312 681//578 698//578 697//312 -f 675//574 674//575 690//575 691//574 -f 671//577 670//578 686//578 687//577 -f 684//311 677//575 694//575 693//311 -f 672//576 671//577 687//577 688//576 -f 677//575 678//574 695//574 694//575 -f 673//311 672//576 688//576 689//311 -f 678//574 679//573 696//573 695//574 -f 674//575 673//311 689//311 690//575 -f 679//573 680//312 697//312 696//573 -f 709//311 710//579 707//579 708//311 -f 711//580 712//581 705//581 706//580 -f 713//312 714//582 703//582 704//312 -f 715//583 716//584 701//584 702//583 -f 710//579 711//580 706//580 707//579 -f 712//581 713//312 704//312 705//581 -f 714//582 715//583 702//583 703//582 -f 716//584 709//311 708//311 701//584 -f 731//582 732//312 741//312 748//582 -f 718//584 717//311 733//311 734//584 -f 730//583 731//582 748//582 747//583 -f 717//311 724//579 740//579 733//311 -f 729//584 730//583 747//583 746//584 -f 724//579 723//580 739//580 740//579 -f 728//311 729//584 746//584 745//311 -f 723//580 722//581 738//581 739//580 -f 719//583 718//584 734//584 735//583 -f 732//312 725//581 742//581 741//312 -f 720//582 719//583 735//583 736//582 -f 725//581 726//580 743//580 742//581 -f 721//312 720//582 736//582 737//312 -f 726//580 727//579 744//579 743//580 -f 722//581 721//312 737//312 738//581 -f 727//579 728//311 745//311 744//579 -f 757//308 758//585 755//585 756//308 -f 759//586 760//587 753//587 754//586 -f 761//306 762//588 751//588 752//306 -f 763//589 764//590 749//590 750//589 -f 758//585 759//586 754//586 755//585 -f 760//587 761//306 752//306 753//587 -f 762//588 763//589 750//589 751//588 -f 764//590 757//308 756//308 749//590 -f 779//588 780//306 789//306 796//588 -f 766//590 765//308 781//308 782//590 -f 778//589 779//588 796//588 795//589 -f 765//308 772//585 788//585 781//308 -f 777//590 778//589 795//589 794//590 -f 772//585 771//586 787//586 788//585 -f 776//308 777//590 794//590 793//308 -f 771//586 770//587 786//587 787//586 -f 767//589 766//590 782//590 783//589 -f 780//306 773//587 790//587 789//306 -f 768//588 767//589 783//589 784//588 -f 773//587 774//586 791//586 790//587 -f 769//306 768//588 784//588 785//306 -f 774//586 775//585 792//585 791//586 -f 770//587 769//306 785//306 786//587 -f 775//585 776//308 793//308 792//585 -f 805//306 806//591 803//591 804//306 -f 807//592 808//593 801//593 802//592 -f 809//308 810//594 799//594 800//308 -f 811//595 812//596 797//596 798//595 -f 806//591 807//592 802//592 803//591 -f 808//593 809//308 800//308 801//593 -f 810//594 811//595 798//595 799//594 -f 812//596 805//306 804//306 797//596 -f 827//594 828//308 837//308 844//594 -f 814//596 813//306 829//306 830//596 -f 826//595 827//594 844//594 843//595 -f 813//306 820//591 836//591 829//306 -f 825//596 826//595 843//595 842//596 -f 820//591 819//592 835//592 836//591 -f 824//306 825//596 842//596 841//306 -f 819//592 818//593 834//593 835//592 -f 815//595 814//596 830//596 831//595 -f 828//308 821//593 838//593 837//308 -f 816//594 815//595 831//595 832//594 -f 821//593 822//592 839//592 838//593 -f 817//308 816//594 832//594 833//308 -f 822//592 823//591 840//591 839//592 -f 818//593 817//308 833//308 834//593 -f 823//591 824//306 841//306 840//591 -f 175//597 176//598 984//598 983//597 -f 168//599 169//600 977//600 976//599 -f 176//598 177//601 985//601 984//598 -f 169//600 170//602 978//602 977//600 -f 177//601 178//603 986//603 985//601 -f 170//602 171//604 979//604 978//602 -f 178//603 179//605 987//605 986//603 -f 171//604 172//606 980//606 979//604 -f 179//605 180//607 988//607 987//605 -f 172//606 173//608 981//608 980//606 -f 165//609 166//610 974//610 973//609 -f 180//607 165//609 973//609 988//607 -f 173//608 174//611 982//611 981//608 -f 166//610 167//612 975//612 974//610 -f 174//611 175//597 983//597 982//611 -f 167//612 168//599 976//599 975//612 -f 996//311 989//313 997//313 1004//311 -f 994//306 995//309 1003//309 1002//306 -f 992//312 993//307 1001//307 1000//312 -f 990//308 991//310 999//310 998//308 -f 995//309 996//311 1004//311 1003//309 -f 993//307 994//306 1002//306 1001//307 -f 991//310 992//312 1000//312 999//310 -f 989//313 990//308 998//308 997//313 -f 1020//311 1013//313 1030//313 1036//311 -f 1006//306 1005//307 1022//307 1021//306 -f 1005//307 1012//312 1028//312 1022//307 -f 1019//309 1020//311 1036//311 1035//309 -f 1012//312 1011//310 1027//310 1028//312 -f 1018//306 1019//309 1035//309 1034//306 -f 1011//310 1010//308 1026//308 1027//310 -f 1017//307 1018//306 1034//306 1033//307 -f 1013//313 1014//308 1029//308 1030//313 -f 1007//309 1006//306 1021//306 1023//309 -f 1014//308 1015//310 1031//310 1029//308 -f 1008//311 1007//309 1023//309 1024//311 -f 1015//310 1016//312 1032//312 1031//310 -f 1009//313 1008//311 1024//311 1025//313 -f 1016//312 1017//307 1033//307 1032//312 -f 1010//308 1009//313 1025//313 1026//308 -f 1045//1 1044//307 1060//307 1061//1 -f 1038//308 1037//2 1053//2 1054//308 -f 1037//2 1052//313 1068//313 1053//2 -f 1046//306 1045//1 1061//1 1062//306 -f 1039//8 1038//308 1054//308 1055//8 -f 1047//6 1046//306 1062//306 1063//6 -f 1040//310 1039//8 1055//8 1056//310 -f 1048//309 1047//6 1063//6 1064//309 -f 1041//3 1040//310 1056//310 1057//3 -f 1049//4 1048//309 1064//309 1065//4 -f 1042//312 1041//3 1057//3 1058//312 -f 1050//311 1049//4 1065//4 1066//311 -f 1043//7 1042//312 1058//312 1059//7 -f 1051//5 1050//311 1066//311 1067//5 -f 1044//307 1043//7 1059//7 1060//307 -f 1052//313 1051//5 1067//5 1068//313 -f 1291//147 1290//133 1299//133 1300//147 -f 1288//3 1287//613 1296//613 1297//3 -f 1311//614 1306//614 1310//615 1315//615 -f 1292//616 1291//147 1300//147 1301//616 -f 1289//617 1288//3 1297//3 1298//617 -f 1315//615 1310//615 1309//618 1314//618 -f 1286//619 1285//620 1295//620 1294//619 -f 1293//621 1292//616 1301//616 1302//621 -f 1290//133 1289//617 1298//617 1299//133 -f 1314//618 1309//618 1308//4 1313//4 -f 1287//613 1286//619 1294//619 1296//613 -f 1307//622 1312//622 1313//4 1308//4 -f 1322//115 1323//615 1335//615 1334//115 -f 1319//3 1320//613 1332//613 1331//3 -f 1326//623 1327//616 1339//616 1338//623 -f 1316//147 1317//133 1329//133 1328//147 -f 1323//615 1324//618 1336//618 1335//615 -f 1320//613 1321//619 1333//619 1332//613 -f 1327//616 1316//147 1328//147 1339//616 -f 1317//133 1318//617 1330//617 1329//133 -f 1324//618 1325//4 1337//4 1336//618 -f 1321//619 1322//115 1334//115 1333//619 -f 1318//617 1319//3 1331//3 1330//617 -f 1325//4 1326//623 1338//623 1337//4 -f 1357//624 1358//625 1446//626 1447//627 -f 1445//628 1444//629 1449//630 1450//631 -f 1366//632 1373//633 1372//634 1365//635 -f 1360//636 1368//637 1367//638 1359//639 -f 1359//639 1367//638 1373//633 1366//632 -f 1361//640 1369//641 1368//637 1360//636 -f 1367//638 1374//465 1380//642 1373//633 -f 1369//641 1376//643 1375//644 1368//637 -f 1373//633 1380//642 1379//645 1372//634 -f 1368//637 1375//644 1374//465 1367//638 -f 1388//632 1395//633 1394//634 1387//635 -f 1382//636 1390//637 1389//638 1381//639 -f 1381//639 1389//638 1395//633 1388//632 -f 1383//640 1391//641 1390//637 1382//636 -f 1389//638 1396//465 1402//642 1395//633 -f 1391//641 1398//643 1397//644 1390//637 -f 1395//633 1402//642 1401//645 1394//634 -f 1390//637 1397//644 1396//465 1389//638 -f 1410//632 1417//633 1416//634 1409//635 -f 1404//636 1412//637 1411//638 1403//639 -f 1403//639 1411//638 1417//633 1410//632 -f 1405//640 1413//641 1412//637 1404//636 -f 1411//638 1418//465 1424//642 1417//633 -f 1413//641 1420//643 1419//644 1412//637 -f 1417//633 1424//642 1423//645 1416//634 -f 1412//637 1419//644 1418//465 1411//638 -f 1366//632 1365//635 1428//313 1429//2 -f 1388//632 1387//635 1433//313 1434//2 -f 1359//639 1366//632 1429//2 1425//8 -f 1360//636 1359//639 1425//8 1426//3 -f 1410//632 1409//635 1438//313 1439//2 -f 1381//639 1388//632 1434//2 1430//8 -f 1361//640 1360//636 1426//3 1427//312 -f 1382//636 1381//639 1430//8 1431//3 -f 1403//639 1410//632 1439//2 1435//8 -f 1404//636 1403//639 1435//8 1436//3 -f 1383//640 1382//636 1431//3 1432//312 -f 1405//640 1404//636 1436//3 1437//312 -f 1358//625 1445//628 1450//631 1446//626 -f 1356//646 1357//624 1447//627 1448//647 -f 1446//626 1450//631 1456//648 1451//535 -f 1448//647 1447//627 1452//649 1453//650 -f 1450//631 1449//630 1455//651 1456//648 -f 1447//627 1446//626 1451//535 1452//649 -f 1464//628 1463//629 1470//630 1471//631 -f 1458//624 1457//625 1465//626 1466//627 -f 1457//625 1464//628 1471//631 1465//626 -f 1459//646 1458//624 1466//627 1467//647 -f 1465//626 1471//631 1478//648 1472//535 -f 1467//647 1466//627 1473//649 1474//650 -f 1471//631 1470//630 1477//651 1478//648 -f 1466//627 1465//626 1472//535 1473//649 -f 1486//628 1485//629 1492//630 1493//631 -f 1480//624 1479//625 1487//626 1488//627 -f 1479//625 1486//628 1493//631 1487//626 -f 1481//646 1480//624 1488//627 1489//647 -f 1487//626 1493//631 1500//648 1494//535 -f 1489//647 1488//627 1495//649 1496//650 -f 1493//631 1492//630 1499//651 1500//648 -f 1488//627 1487//626 1494//535 1495//649 -f 1445//628 1505//2 1504//308 1444//629 -f 1464//628 1510//2 1509//308 1463//629 -f 1358//625 1501//5 1505//2 1445//628 -f 1357//624 1502//4 1501//5 1358//625 -f 1486//628 1515//2 1514//308 1485//629 -f 1457//625 1506//5 1510//2 1464//628 -f 1356//646 1503//309 1502//4 1357//624 -f 1458//624 1507//4 1506//5 1457//625 -f 1479//625 1511//5 1515//2 1486//628 -f 1480//624 1512//4 1511//5 1479//625 -f 1459//646 1508//309 1507//4 1458//624 -f 1481//646 1513//309 1512//4 1480//624 +f 23//64 22//65 608//65 609//64 +f 20//66 23//64 609//64 610//66 +f 21//67 20//66 610//66 611//67 +f 17//68 21//67 611//67 612//68 +f 18//69 17//68 612//68 613//69 +f 19//70 18//69 613//69 614//70 +f 32//71 19//70 614//70 615//71 +f 30//72 32//71 615//71 616//72 +f 31//73 30//72 616//72 617//73 +f 28//74 31//73 617//73 618//74 +f 29//75 28//74 618//74 619//75 +f 26//76 29//75 619//75 620//76 +f 27//77 26//76 620//76 621//77 +f 24//78 27//77 621//77 622//78 +f 25//79 24//78 622//78 623//79 +f 22//65 25//79 623//79 608//65 +f 609//1 608//80 624//80 625//1 +f 610//81 609//1 625//1 626//81 +f 617//2 616//82 627//82 628//2 +f 608//80 623//6 629//6 624//80 +f 616//82 615//8 630//8 627//82 +f 623//6 622//83 631//83 629//6 +f 615//8 614//84 632//84 630//8 +f 622//83 621//4 633//4 631//83 +f 614//84 613//3 634//3 632//84 +f 621//4 620//85 635//85 633//4 +f 613//3 612//86 636//86 634//3 +f 620//85 619//5 637//5 635//85 +f 612//86 611//7 638//7 636//86 +f 619//5 618//87 639//87 637//5 +f 611//7 610//81 626//81 638//7 +f 618//87 617//2 628//2 639//87 +f 640//88 641//89 642//90 643//91 +f 644//92 645//28 646//93 647//94 +f 648//95 649//96 650//97 651//98 +f 649//96 652//99 653//100 650//97 +f 654//26 640//88 643//91 655//101 +f 641//89 644//92 647//94 642//90 +f 645//28 648//95 651//98 646//93 +f 652//99 654//26 655//101 653//100 +f 651//98 650//97 656//102 657//103 +f 647//94 646//93 658//104 659//105 +f 643//91 642//90 660//106 661//107 +f 653//100 655//101 662//23 663//108 +f 646//93 651//98 657//103 658//104 +f 642//90 647//94 659//105 660//106 +f 655//101 643//91 661//107 662//23 +f 650//97 653//100 663//108 656//102 +f 662//23 661//107 664//109 665//13 +f 656//102 663//108 666//110 667//111 +f 657//103 656//102 667//111 668//112 +f 659//105 658//104 669//9 670//113 +f 661//107 660//106 671//114 664//109 +f 663//108 662//23 665//13 666//110 +f 658//104 657//103 668//112 669//9 +f 660//106 659//105 670//113 671//114 +f 669//9 668//112 672//115 673//116 +f 671//114 670//113 674//117 675//118 +f 665//13 664//109 676//119 677//120 +f 667//111 666//110 678//121 679//122 +f 668//112 667//111 679//122 672//115 +f 670//113 669//9 673//116 674//117 +f 664//109 671//114 675//118 676//119 +f 666//110 665//13 677//120 678//121 +f 680//83 681//123 119//123 116//83 +f 682//124 683//125 107//125 121//124 +f 684//84 685//126 111//126 108//84 +f 686//127 687//128 115//128 112//127 +f 681//123 682//124 121//124 119//123 +f 683//125 684//84 108//84 107//125 +f 685//126 686//127 112//127 111//126 +f 687//128 680//83 116//83 115//128 +f 124//126 123//84 133//84 136//126 +f 118//128 117//83 132//83 131//128 +f 125//127 124//126 136//126 138//127 +f 117//83 120//123 135//123 132//83 +f 126//128 125//127 138//127 140//128 +f 120//123 122//124 137//124 135//123 +f 127//83 126//128 140//128 142//83 +f 122//124 110//125 139//125 137//124 +f 113//127 118//128 131//128 145//127 +f 123//84 130//125 134//125 133//84 +f 114//126 113//127 145//127 143//126 +f 130//125 129//124 146//124 134//125 +f 109//84 114//126 143//126 141//84 +f 129//124 128//123 144//123 146//124 +f 110//125 109//84 141//84 139//125 +f 128//123 127//83 142//83 144//123 +f 630//129 632//130 205//130 204//129 +f 631//131 633//132 198//132 197//131 +f 632//130 634//133 206//133 205//130 +f 633//132 635//134 199//134 198//132 +f 634//133 636//135 207//135 206//133 +f 635//134 637//136 200//136 199//134 +f 636//135 638//137 208//137 207//135 +f 637//136 639//138 201//138 200//136 +f 638//137 626//139 209//139 208//137 +f 639//138 628//140 202//140 201//138 +f 625//141 624//142 195//142 210//141 +f 626//139 625//141 210//141 209//139 +f 628//140 627//143 203//143 202//140 +f 624//142 629//144 196//144 195//142 +f 627//143 630//129 204//129 203//143 +f 629//144 631//131 197//131 196//144 +f 688//85 689//87 156//87 155//85 +f 690//80 691//83 167//83 169//80 +f 692//86 693//81 171//81 173//86 +f 694//82 695//84 175//84 177//82 +f 691//83 688//85 155//85 167//83 +f 693//81 690//80 169//80 171//81 +f 695//84 692//86 173//86 175//84 +f 689//87 694//82 177//82 156//87 +f 158//85 157//87 181//87 180//85 +f 159//80 166//81 182//81 193//80 +f 166//81 165//86 179//86 182//81 +f 168//83 158//85 180//85 184//83 +f 165//86 164//84 183//84 179//86 +f 170//80 168//83 184//83 186//80 +f 164//84 163//82 185//82 183//84 +f 172//81 170//80 186//80 188//81 +f 157//87 178//82 194//82 181//87 +f 160//83 159//80 193//80 191//83 +f 178//82 176//84 192//84 194//82 +f 161//85 160//83 191//83 189//85 +f 176//84 174//86 190//86 192//84 +f 162//87 161//85 189//85 187//87 +f 174//86 172//81 188//81 190//86 +f 163//82 162//87 187//87 185//82 +f 219//1 218//81 239//81 238//1 +f 224//82 226//2 230//2 229//82 +f 226//2 213//87 231//87 230//2 +f 216//80 219//1 238//1 237//80 +f 225//8 224//82 229//82 244//8 +f 217//6 216//80 237//80 236//6 +f 222//84 225//8 244//8 243//84 +f 214//83 217//6 236//6 235//83 +f 223//3 222//84 243//84 242//3 +f 215//4 214//83 235//83 234//4 +f 220//86 223//3 242//3 241//86 +f 211//85 215//4 234//4 233//85 +f 221//7 220//86 241//86 240//7 +f 212//5 211//85 233//85 232//5 +f 218//81 221//7 240//7 239//81 +f 213//87 212//5 232//5 231//87 +f 696//145 697//50 465//50 464//145 +f 698//3 699//146 468//146 467//3 +f 471//147 470//147 479//148 477//148 +f 700//149 696//145 464//145 463//149 +f 701//150 698//3 467//3 466//150 +f 477//148 479//148 478//151 476//151 +f 702//152 469//153 458//153 457//152 +f 473//154 700//149 463//149 462//154 +f 697//50 701//150 466//150 465//50 +f 476//151 478//151 703//4 475//4 +f 699//146 702//152 457//152 468//146 +f 472//155 474//155 475//4 703//4 +f 704//32 705//148 486//148 485//32 +f 706//3 707//146 483//146 482//3 +f 708//156 709//149 490//149 489//156 +f 710//145 711//50 480//50 491//145 +f 705//148 712//151 487//151 486//148 +f 707//146 713//152 484//152 483//146 +f 709//149 710//145 491//145 490//149 +f 711//50 714//150 481//150 480//50 +f 712//151 715//4 488//4 487//151 +f 713//152 704//32 485//32 484//152 +f 714//150 706//3 482//3 481//150 +f 715//4 708//156 489//156 488//4 +f 716//157 717//158 718//159 719//160 +f 720//161 721//162 722//163 723//164 +f 724//165 725//166 726//167 727//168 +f 728//169 729//170 730//171 731//172 +f 731//172 730//171 725//166 724//165 +f 732//173 733//174 729//170 728//169 +f 730//171 734//175 735//176 725//166 +f 733//174 736//177 737//178 729//170 +f 725//166 735//176 738//179 726//167 +f 729//170 737//178 734//175 730//171 +f 739//165 740//166 741//167 742//168 +f 743//169 744//170 745//171 746//172 +f 746//172 745//171 740//166 739//165 +f 747//173 748//174 744//170 743//169 +f 745//171 749//175 750//176 740//166 +f 748//174 751//177 752//178 744//170 +f 740//166 750//176 753//179 741//167 +f 744//170 752//178 749//175 745//171 +f 754//165 755//166 756//167 757//168 +f 758//169 759//180 760//171 761//172 +f 761//172 760//171 755//166 754//165 +f 762//173 763//174 759//180 758//169 +f 760//171 764//175 765//176 755//166 +f 763//174 766//177 767//178 759//180 +f 755//166 765//176 768//179 756//167 +f 759//180 767//178 764//175 760//171 +f 724//165 727//168 769//87 770//2 +f 739//165 742//168 771//87 772//2 +f 731//172 724//165 770//2 773//8 +f 728//169 731//172 773//8 774//3 +f 754//165 757//168 775//87 776//2 +f 746//172 739//165 772//2 777//8 +f 732//173 728//169 774//3 778//86 +f 743//169 746//172 777//8 779//3 +f 761//172 754//165 776//2 780//8 +f 758//169 761//172 780//8 781//3 +f 747//173 743//169 779//3 782//86 +f 762//173 758//169 781//3 783//86 +f 717//158 720//161 723//164 718//159 +f 784//181 716//157 719//160 785//182 +f 718//159 723//164 786//183 787//184 +f 785//182 719//160 788//185 789//186 +f 723//164 722//163 790//187 786//183 +f 719//160 718//159 787//184 788//185 +f 791//161 792//162 793//163 794//188 +f 795//157 796//158 797//159 798//160 +f 796//158 791//161 794//188 797//159 +f 799//181 795//157 798//160 800//182 +f 797//159 794//188 801//183 802//184 +f 800//182 798//160 803//185 804//186 +f 794//188 793//163 805//187 801//183 +f 798//160 797//159 802//184 803//185 +f 806//161 807//162 808//163 809//164 +f 810//157 811//158 812//159 813//189 +f 811//158 806//161 809//164 812//159 +f 814//181 810//157 813//189 815//182 +f 812//159 809//164 816//183 817//184 +f 815//182 813//189 818//185 819//186 +f 809//164 808//163 820//187 816//183 +f 813//189 812//159 817//184 818//185 +f 720//161 821//2 822//82 721//162 +f 791//161 823//2 824//82 792//162 +f 717//158 825//5 821//2 720//161 +f 716//157 826//4 825//5 717//158 +f 806//161 827//2 828//82 807//162 +f 796//158 829//5 823//2 791//161 +f 784//181 830//83 826//4 716//157 +f 795//157 831//4 829//5 796//158 +f 811//158 832//5 827//2 806//161 +f 810//157 833//4 832//5 811//158 +f 799//181 834//83 831//4 795//157 +f 814//181 835//83 833//4 810//157 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon.png new file mode 100644 index 0000000000000000000000000000000000000000..8a5fb8d117c6e8e91287724f110a2b25ac19f5ac GIT binary patch literal 2251 zcmV;+2sHPJP)uA_pq|0*H*DpRfXq&U?W`_#@_&>4WAn}e48 za-dV`$S=_#Vgb;6BG%-+72@-|=B{gxdZ8%RwEz0JnqlSy0Nh6&Yb@lciS`g(!xy?R zn1ioV@P~keLL>k|jy{BdD!P?a1CwR7g3*nDocy-4}{(_T?f%2-7`@E(Hlu$wO~kG<~A_ zmzuT%N+8JC*QQz3c5&J~hCV#Ab6Cb9ql75Nru*zWCjGH_Pen5;0RpT-^u$%gr<*&y zukEB=wJ~Ju)2F(}q(3(AF<@ow5YQH&WnuE|ssSkXE9tFL_;fZQ3ZY}W2|gE8zd$-I zldaVBjhKEE-isdXMA}mIBTGM>kL)xM$RIY(;p@O5cy@DQ5aKDHqM=U9B|J&=h{bel` zfnS1&dkB?uK4_u?ywRnJ4nlN*HeziNgveEWb`|Pt-`W<=^UnCPEB`82!c&hgPjyO2c<(Si!`3S{I-W%2~d~+k& z*qIU(pj#6GU(MYlU86lz*33}2M4%u9KS>Apq11>~gr*P_o&EOLTpS%8RqN;T zxwxi(tM)E5(Nr{0&M1r!KY4VPQWM$hfBn&_M;=g5WUBQfZ%9lWK|-|IY?x`zHuSV= zcWI(GT+Z;ZDwSc%sc@OhT`}{;zgUQS2s)Qqn9c$Ihmg}EKO?#PJmHYj0BJuxEfN-; z2_ZJkZt}*JPyDsAnB_th)V=X#cHjthsktWa6Xi5^rVkcxbykoSsG7jLT$W!DidRUf zG*GJq^`8_}r;RWnvduSC6r%Dyh&pChv(I=&W_x8ntkQ($M_iomWOd|;d`dKQQ$}Y1 zzoOcdJtNQ-%$efRSp(!iY>oEf@1k<1IRLC>E6LbdYPh}tl;VYfuJJO{WE{sIDjFdJ z#iKzA4$~)8&vKHhF2Oc6QK&F)^M;Vo4jo`+09)oENG;zpjS$&BEK?LBbi&XvHPKK3 zD&O)H%A}Pu*^0`fJvLZA>5%1nXX^D_J&hpOZyG|WZ&%6Bo12@q;OaHjt~?Pn+sB`3 z0g^sZA#|T;NQln>rrsW<^ZGo^H%c3IM<;u8c&!Bk=bC-U8rdbSkybpqr~} zH5FZ|gl1QN)lYpAVrN*Bb@jN>*+n@A_1obevoo{eYMt`GHk`M%=ZY?8y70_x`Sy#! zLUPDL1T}1utCnhQ`UTZTcrVC{Au`%`<%#_F!%=gCo{Iv+(T5K{0ld7BV`eYGm|A+%<(yR$c*cAxA`|4~6Ricr zI`9ZV(V5ExVnNb=b}b!vAmD+6oroK8&A?^_glt1xGcMZzzWwtC?d^Gwy2toLF@ Date: Sat, 20 May 2023 23:30:13 +0200 Subject: [PATCH 051/432] black lung balance, tram tooltip --- .../pile/BlockGraphiteDrilledBase.java | 1 - .../com/hbm/entity/train/TrainCargoTram.java | 3 -- .../java/com/hbm/extprop/HbmLivingProps.java | 2 +- .../com/hbm/handler/EntityEffectHandler.java | 2 +- .../java/com/hbm/handler/HTTPHandler.java | 25 ++++++++----- .../java/com/hbm/items/special/ItemTrain.java | 35 +++++++++++++++++- .../hbm/textures/models/weapons/ipleaker.png | Bin 0 -> 1025 bytes 7 files changed, 51 insertions(+), 17 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/ipleaker.png diff --git a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilledBase.java b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilledBase.java index 00b520a54..58ec7bce2 100644 --- a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilledBase.java +++ b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphiteDrilledBase.java @@ -133,7 +133,6 @@ public abstract class BlockGraphiteDrilledBase extends BlockFlammable implements if(item == ModItems.pile_rod_lithium) return new MetaBlock(ModBlocks.block_graphite_lithium); if(item == ModItems.cell_tritium) return new MetaBlock(ModBlocks.block_graphite_tritium); if(item == ModItems.pile_rod_detector) return new MetaBlock(ModBlocks.block_graphite_detector); - if(item == ModItems.ingot_graphite) return new MetaBlock(ModBlocks.block_graphite); return null; } diff --git a/src/main/java/com/hbm/entity/train/TrainCargoTram.java b/src/main/java/com/hbm/entity/train/TrainCargoTram.java index 8e5d7990f..e0d1aaa2a 100644 --- a/src/main/java/com/hbm/entity/train/TrainCargoTram.java +++ b/src/main/java/com/hbm/entity/train/TrainCargoTram.java @@ -1,7 +1,5 @@ package com.hbm.entity.train; -import java.util.Arrays; - import org.lwjgl.opengl.GL11; import com.hbm.blocks.rail.IRailNTM.TrackGauge; @@ -21,7 +19,6 @@ import net.minecraft.inventory.Container; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.ResourceLocation; import net.minecraft.util.Vec3; import net.minecraft.world.World; diff --git a/src/main/java/com/hbm/extprop/HbmLivingProps.java b/src/main/java/com/hbm/extprop/HbmLivingProps.java index 73d5957af..da9d1d0c6 100644 --- a/src/main/java/com/hbm/extprop/HbmLivingProps.java +++ b/src/main/java/com/hbm/extprop/HbmLivingProps.java @@ -40,7 +40,7 @@ public class HbmLivingProps implements IExtendedEntityProperties { private int asbestos; public static final int maxAsbestos = 60 * 60 * 20; private int blacklung; - public static final int maxBlacklung = 60 * 60 * 20; + public static final int maxBlacklung = 2 * 60 * 60 * 20; private float radEnv; private float radBuf; private int bombTimer; diff --git a/src/main/java/com/hbm/handler/EntityEffectHandler.java b/src/main/java/com/hbm/handler/EntityEffectHandler.java index 845bbd9a6..2ccce3b4a 100644 --- a/src/main/java/com/hbm/handler/EntityEffectHandler.java +++ b/src/main/java/com/hbm/handler/EntityEffectHandler.java @@ -359,7 +359,7 @@ public class EntityEffectHandler { int bl = HbmLivingProps.getBlackLung(entity); - if(bl > 0 && bl < HbmLivingProps.maxBlacklung * 0.25) + if(bl > 0 && bl < HbmLivingProps.maxBlacklung * 0.5) HbmLivingProps.setBlackLung(entity, HbmLivingProps.getBlackLung(entity) - 1); } diff --git a/src/main/java/com/hbm/handler/HTTPHandler.java b/src/main/java/com/hbm/handler/HTTPHandler.java index e12832267..4efc054f4 100644 --- a/src/main/java/com/hbm/handler/HTTPHandler.java +++ b/src/main/java/com/hbm/handler/HTTPHandler.java @@ -17,15 +17,22 @@ public class HTTPHandler { public static String versionNumber = ""; public static void loadStats() { - - try { - - loadVersion(); - loadSoyuz(); - - } catch(IOException e) { - MainRegistry.logger.warn("Version checker failed!"); - } + + Thread versionChecker = new Thread("NTM Version Checker") { + + @Override + public void run() { + try { + loadVersion(); + loadSoyuz(); + } catch(IOException e) { + MainRegistry.logger.warn("Version checker failed!"); + } + } + + }; + + versionChecker.start(); } private static void loadVersion() throws IOException { diff --git a/src/main/java/com/hbm/items/special/ItemTrain.java b/src/main/java/com/hbm/items/special/ItemTrain.java index 9c5e65062..1a2648d38 100644 --- a/src/main/java/com/hbm/items/special/ItemTrain.java +++ b/src/main/java/com/hbm/items/special/ItemTrain.java @@ -1,5 +1,7 @@ package com.hbm.items.special; +import java.util.List; + import com.hbm.blocks.rail.IRailNTM; import com.hbm.entity.train.EntityRailCarBase; import com.hbm.entity.train.TrainCargoTram; @@ -7,23 +9,52 @@ import com.hbm.items.ItemEnumMulti; import com.hbm.util.EnumUtil; import net.minecraft.block.Block; +import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; public class ItemTrain extends ItemEnumMulti { public ItemTrain() { super(EnumTrainType.class, true, true); + this.setCreativeTab(CreativeTabs.tabTransport); + this.setMaxStackSize(1); + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { + EnumTrainType train = EnumUtil.grabEnumSafely(this.theEnum, stack.getItemDamage()); + + list.add(EnumChatFormatting.GREEN + "Engine: " + EnumChatFormatting.RESET + train.engine); + list.add(EnumChatFormatting.GREEN + "Gauge: " + EnumChatFormatting.RESET + train.gauge); + list.add(EnumChatFormatting.GREEN + "Max Speed: " + EnumChatFormatting.RESET + train.maxSpeed); + list.add(EnumChatFormatting.GREEN + "Acceleration: " + EnumChatFormatting.RESET + train.acceleration); + list.add(EnumChatFormatting.GREEN + "Engine Brake Threshold: " + EnumChatFormatting.RESET + train.brakeThreshold); + list.add(EnumChatFormatting.GREEN + "Parking Brake: " + EnumChatFormatting.RESET + train.parkingBrake); } public static enum EnumTrainType { - CARGO_TRAM(TrainCargoTram.class); + // Engine Gauge Max Speed Accel. Eng. Brake Parking Brake + CARGO_TRAM(TrainCargoTram.class, "Electric", "Standard Gauge", "10m/s", "0.2m/s", "<1m/s", "Yes"); public Class train; - private EnumTrainType(Class train) { + public String engine; + public String maxSpeed; + public String acceleration; + public String brakeThreshold; + public String parkingBrake; + public String gauge; + private EnumTrainType(Class train, String engine, String gauge, String maxSpeed, String acceleration, String brakeThreshold, String parkingBrake) { this.train = train; + this.engine = engine; + this.maxSpeed = maxSpeed; + this.acceleration = acceleration; + this.brakeThreshold = brakeThreshold; + this.parkingBrake = parkingBrake; + this.gauge = gauge; } } diff --git a/src/main/resources/assets/hbm/textures/models/weapons/ipleaker.png b/src/main/resources/assets/hbm/textures/models/weapons/ipleaker.png new file mode 100644 index 0000000000000000000000000000000000000000..ca0c368899e944b83f769574381aada5876f3a4d GIT binary patch literal 1025 zcmV+c1pfPpP)zfK!59LImDs%wMz6DbW6AzdR?Vnk7gPAq)@-hl_;B`SvU z0DXXN89T6Ks5+qx87d*MRskt#rTkMPZn+NB$zg1teZD`w-1oBt?i|jD4`177`%)p0 zD!tBO;BD`cx3fpDcJ`i~f0$2+h=k{o}41w=##jrFnnG12iUS#>v%sGtx)R8R;YDkuaH6%+!9>L7n^e=1-3ugd^N z{f@y4D3Z0_K6>`G3BAr?AUf{yL;yr}jIe|<;tE=1(DZ{s08t&L-adMgoc#A?0-}OK zfIh0D)Z0hWfmIn(6{0!{8!+**vST)~p8E}|)oL`EOlU9|I6Kl015q7=Pfd}KVS(ca z%OtJUY8Evm`f>7Zb(`x$?!kvs0%QEeOnUBhO4o#_$zz;QStCkB6Ig#VJQd5PU;8Qj z{ty);3cr$n_&phM3vp|rU_AN5^g4&++Ah@XgSS>cYjOW8p<3yKLcH`- ze!uJZlq$WB`-3Y}@(>-Osu3otF8wYAE+(oiZ_cia%K!fI(fXPYRSgnV0N>S#^qr~>Xr(PfNNHv)*NCYL^{ z&N99{_e~`&p$-sLP3DPevJE<}tZb5@NI+CInI|g06*`TD)4rvsX!_kFw?3*!Qley< zeAVhF9r9@UG3r;7+o+!jDcXfvwx^^JAyK2)$Wi~f--s@x;M-^zSq4piw&Xf9CEJB+ z%cVCqD$hUar@5c~KOaO@vyq9)!>@+2?ZfiijqImUA*!0p6E(cMRFogVBi15VL@hD?d@4;<(`i=rQJTu@StKz;Eh+wDw(6(K7OBJ$D=G1LAZp2B0_lwQ^8})n vnD8Bdu%I?gbXuZARFKFh{^WX?>MYzpUvvEnX6F Date: Sun, 21 May 2023 19:44:35 +0200 Subject: [PATCH 052/432] new concrete, sound fixes, additions, slag tap --- gradle.properties | 2 +- src/main/java/com/hbm/blocks/ModBlocks.java | 17 + .../generic/BlockConcreteColoredExt.java | 35 + .../hbm/blocks/generic/BlockDynamicSlag.java | 278 ++ .../hbm/blocks/machine/FoundryChannel.java | 2 +- .../com/hbm/blocks/machine/FoundryOutlet.java | 4 +- .../hbm/blocks/machine/FoundrySlagtap.java | 35 + .../java/com/hbm/blocks/rail/IRailNTM.java | 3 +- .../com/hbm/blocks/rail/RailNarrowCurve.java | 144 + .../hbm/blocks/rail/RailNarrowStraight.java | 115 + .../hbm/blocks/rail/RailStandardCurve.java | 9 +- .../hbm/blocks/rail/RailStandardStraight.java | 7 +- .../com/hbm/inventory/OreDictManager.java | 1 + .../inventory/recipes/ChemplantRecipes.java | 13 +- .../com/hbm/items/special/ItemAutogen.java | 2 +- .../com/hbm/items/weapon/ItemGunGauss.java | 4 +- src/main/java/com/hbm/lib/RefStrings.java | 2 +- src/main/java/com/hbm/main/ClientProxy.java | 15 +- .../java/com/hbm/main/CraftingManager.java | 11 +- .../java/com/hbm/main/ResourceManager.java | 4 +- src/main/java/com/hbm/main/ServerProxy.java | 3 +- .../hbm/render/block/RenderFoundryOutlet.java | 20 +- .../render/block/RenderNarrowCurveRail.java | 69 + .../block/RenderNarrowStraightRail.java | 62 + .../icon/TextureAtlasSpriteMutatable.java | 3 +- .../hbm/render/item/ItemRenderLibrary.java | 2 + .../render/tileentity/RenderChemplant.java | 2 + .../render/tileentity/RenderMicrowave.java | 41 +- src/main/java/com/hbm/sound/AudioDynamic.java | 44 +- src/main/java/com/hbm/sound/AudioWrapper.java | 9 +- .../com/hbm/sound/AudioWrapperClient.java | 18 + .../sound/AudioWrapperClientStartStop.java | 1 + .../hbm/tileentity/TileEntityLoadedBase.java | 11 + .../hbm/tileentity/TileEntityMachineBase.java | 10 - .../java/com/hbm/tileentity/TileMappings.java | 3 + .../machine/TileEntityFoundrySlagtap.java | 115 + .../machine/TileEntityHeatBoiler.java | 64 +- .../machine/TileEntityHeaterElectric.java | 56 +- .../machine/TileEntityMachineAssembler.java | 2 +- .../machine/TileEntityMachineCentrifuge.java | 8 +- .../machine/TileEntityMachineChemplant.java | 8 +- .../TileEntityMachineCombustionEngine.java | 2 +- ...eEntityMachineSchrabidiumTransmutator.java | 2 +- .../machine/TileEntityMachineTurbineGas.java | 4 +- .../machine/TileEntityMachineTurbofan.java | 2 +- .../machine/TileEntitySoyuzLauncher.java | 2 +- .../oil/TileEntityMachineRefinery.java | 60 + .../oil/TileEntityMachineVacuumDistill.java | 62 +- src/main/java/com/hbm/util/Compat.java | 29 +- src/main/resources/assets/hbm/lang/de_DE.lang | 37 +- src/main/resources/assets/hbm/lang/en_US.lang | 7 + .../assets/hbm/models/blocks/rail_narrow.obj | 314 ++ .../hbm/models/blocks/rail_narrow_bend.obj | 681 +++++ .../assets/hbm/models/chemplant_new_body.obj | 1457 +++++---- .../assets/hbm/models/machines/microwave.obj | 2600 ++++++++--------- src/main/resources/assets/hbm/sounds.json | 2 + .../assets/hbm/sounds/block/boiler.ogg | Bin 0 -> 191587 bytes .../assets/hbm/sounds/block/electricHum.ogg | Bin 0 -> 30848 bytes .../blocks/concrete_colored_ext.hazard.png | Bin 0 -> 716 bytes .../blocks/concrete_colored_ext.indigo.png | Bin 0 -> 523 bytes .../blocks/concrete_colored_ext.machine.png | Bin 0 -> 515 bytes .../concrete_colored_ext.machine_stripe.png | Bin 0 -> 507 bytes .../blocks/concrete_colored_ext.pink.png | Bin 0 -> 523 bytes .../blocks/concrete_colored_ext.purple.png | Bin 0 -> 523 bytes .../blocks/foundry_slagtap_bottom.png | Bin 0 -> 424 bytes .../textures/blocks/foundry_slagtap_front.png | Bin 0 -> 171 bytes .../textures/blocks/foundry_slagtap_inner.png | Bin 0 -> 306 bytes .../textures/blocks/foundry_slagtap_side.png | Bin 0 -> 307 bytes .../textures/blocks/foundry_slagtap_top.png | Bin 0 -> 370 bytes .../hbm/textures/blocks/rail_narrow_neo.png | Bin 0 -> 134 bytes .../assets/hbm/textures/blocks/slag.png | Bin 0 -> 775 bytes 71 files changed, 4456 insertions(+), 2059 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/generic/BlockConcreteColoredExt.java create mode 100644 src/main/java/com/hbm/blocks/generic/BlockDynamicSlag.java create mode 100644 src/main/java/com/hbm/blocks/machine/FoundrySlagtap.java create mode 100644 src/main/java/com/hbm/blocks/rail/RailNarrowCurve.java create mode 100644 src/main/java/com/hbm/blocks/rail/RailNarrowStraight.java create mode 100644 src/main/java/com/hbm/render/block/RenderNarrowCurveRail.java create mode 100644 src/main/java/com/hbm/render/block/RenderNarrowStraightRail.java create mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityFoundrySlagtap.java create mode 100644 src/main/resources/assets/hbm/models/blocks/rail_narrow.obj create mode 100644 src/main/resources/assets/hbm/models/blocks/rail_narrow_bend.obj create mode 100644 src/main/resources/assets/hbm/sounds/block/boiler.ogg create mode 100644 src/main/resources/assets/hbm/sounds/block/electricHum.ogg create mode 100644 src/main/resources/assets/hbm/textures/blocks/concrete_colored_ext.hazard.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/concrete_colored_ext.indigo.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/concrete_colored_ext.machine.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/concrete_colored_ext.machine_stripe.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/concrete_colored_ext.pink.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/concrete_colored_ext.purple.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/foundry_slagtap_bottom.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/foundry_slagtap_front.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/foundry_slagtap_inner.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/foundry_slagtap_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/foundry_slagtap_top.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rail_narrow_neo.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/slag.png diff --git a/gradle.properties b/gradle.properties index 697f43ef4..c7f807b69 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4592 +mod_build_number=4606 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models, porting),\ diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index ea82b5b0f..bafc8521d 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -11,6 +11,8 @@ import com.hbm.blocks.machine.*; import com.hbm.blocks.machine.pile.*; import com.hbm.blocks.machine.rbmk.*; import com.hbm.blocks.network.*; +import com.hbm.blocks.rail.RailNarrowCurve; +import com.hbm.blocks.rail.RailNarrowStraight; import com.hbm.blocks.rail.RailStandardCurve; import com.hbm.blocks.rail.RailStandardStraight; import com.hbm.blocks.siege.*; @@ -328,6 +330,7 @@ public class ModBlocks { public static Block reinforced_stone; public static Block concrete_smooth; public static Block concrete_colored; + public static Block concrete_colored_ext; public static Block concrete; public static Block concrete_asbestos; public static Block concrete_super; @@ -664,6 +667,8 @@ public class ModBlocks { public static Block foundry_channel; public static Block foundry_tank; public static Block foundry_outlet; + public static Block foundry_slagtap; + public static Block slag; public static Block machine_difurnace_off; public static Block machine_difurnace_on; @@ -1090,6 +1095,8 @@ public class ModBlocks { public static Block rail_highspeed; public static Block rail_booster; + public static Block rail_narrow_straight; + public static Block rail_narrow_curve; public static Block rail_large_straight; public static Block rail_large_curve; @@ -1507,6 +1514,7 @@ public class ModBlocks { reinforced_stone = new BlockGeneric(Material.rock).setBlockName("reinforced_stone").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(3000.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_stone"); concrete_smooth = new BlockRadResistant(Material.rock).setBlockName("concrete_smooth").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(4000.0F).setBlockTextureName(RefStrings.MODID + ":concrete"); concrete_colored = new BlockConcreteColored(Material.rock).setBlockName("concrete_colored").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(4000.0F).setBlockTextureName(RefStrings.MODID + ":concrete"); + concrete_colored_ext = new BlockConcreteColoredExt(Material.rock).setBlockName("concrete_colored_ext").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(4000.0F).setBlockTextureName(RefStrings.MODID + ":concrete_colored_ext"); concrete = new BlockGeneric(Material.rock).setBlockName("concrete").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(4000.0F).setBlockTextureName(RefStrings.MODID + ":concrete_tile"); concrete_asbestos = new BlockGeneric(Material.rock).setBlockName("concrete_asbestos").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(4000.0F).setBlockTextureName(RefStrings.MODID + ":concrete_asbestos"); concrete_super = new BlockUberConcrete().setBlockName("concrete_super").setCreativeTab(MainRegistry.blockTab).setHardness(150.0F).setResistance(10000.0F); @@ -1780,6 +1788,8 @@ public class ModBlocks { foundry_channel = new FoundryChannel().setBlockName("foundry_channel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire"); foundry_tank = new FoundryTank().setBlockName("foundry_tank").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire"); foundry_outlet = new FoundryOutlet().setBlockName("foundry_outlet").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire"); + foundry_slagtap = new FoundrySlagtap().setBlockName("foundry_slagtap").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire"); + slag = new BlockDynamicSlag().setBlockName("slag").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":slag"); machine_difurnace_off = new MachineDiFurnace(false).setBlockName("machine_difurnace_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); machine_difurnace_on = new MachineDiFurnace(true).setBlockName("machine_difurnace_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F); @@ -2113,6 +2123,8 @@ public class ModBlocks { rail_narrow = new RailGeneric().setBlockName("rail_narrow").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_narrow"); rail_highspeed = new RailGeneric().setMaxSpeed(1F).setFlexible(false).setBlockName("rail_highspeed").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_highspeed"); rail_booster = new RailBooster().setBlockName("rail_booster").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_booster"); + rail_narrow_straight = new RailNarrowStraight().setBlockName("rail_narrow_straight").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_narrow_neo"); + rail_narrow_curve = new RailNarrowCurve().setBlockName("rail_narrow_curve").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_narrow_neo"); rail_large_straight = new RailStandardStraight().setBlockName("rail_large_straight").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":block_steel"); rail_large_curve = new RailStandardCurve().setBlockName("rail_large_curve").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":block_steel"); @@ -2639,6 +2651,7 @@ public class ModBlocks { GameRegistry.registerBlock(reinforced_ducrete, ItemBlockBlastInfo.class, reinforced_ducrete.getUnlocalizedName()); GameRegistry.registerBlock(concrete_smooth, ItemBlockBlastInfo.class, concrete_smooth.getUnlocalizedName()); GameRegistry.registerBlock(concrete_colored, ItemBlockColoredConcrete.class, concrete_colored.getUnlocalizedName()); + register(concrete_colored_ext); GameRegistry.registerBlock(concrete, ItemBlockBlastInfo.class, concrete.getUnlocalizedName()); GameRegistry.registerBlock(concrete_asbestos, ItemBlockBlastInfo.class, concrete_asbestos.getUnlocalizedName()); GameRegistry.registerBlock(concrete_super, ItemBlockBlastInfo.class, concrete_super.getUnlocalizedName()); @@ -2993,6 +3006,8 @@ public class ModBlocks { register(foundry_channel); register(foundry_tank); register(foundry_outlet); + register(foundry_slagtap); + register(slag); register(machine_difurnace_off); register(machine_difurnace_on); register(machine_difurnace_extension); @@ -3337,6 +3352,8 @@ public class ModBlocks { GameRegistry.registerBlock(rail_narrow, ItemBlockBase.class, rail_narrow.getUnlocalizedName()); GameRegistry.registerBlock(rail_highspeed, ItemBlockBase.class, rail_highspeed.getUnlocalizedName()); GameRegistry.registerBlock(rail_booster, ItemBlockBase.class, rail_booster.getUnlocalizedName()); + register(rail_narrow_straight); + register(rail_narrow_curve); register(rail_large_straight); register(rail_large_curve); diff --git a/src/main/java/com/hbm/blocks/generic/BlockConcreteColoredExt.java b/src/main/java/com/hbm/blocks/generic/BlockConcreteColoredExt.java new file mode 100644 index 000000000..929d2281a --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockConcreteColoredExt.java @@ -0,0 +1,35 @@ +package com.hbm.blocks.generic; + +import com.hbm.blocks.BlockEnumMulti; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.material.Material; +import net.minecraft.util.IIcon; + +public class BlockConcreteColoredExt extends BlockEnumMulti { + + public BlockConcreteColoredExt(Material mat) { + super(mat, EnumConcreteType.class, true, true); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta) { + + if(meta == EnumConcreteType.MACHINE_STRIPE.ordinal() && (side == 0 || side == 1)) { + return super.getIcon(side, EnumConcreteType.MACHINE.ordinal()); + } + + return super.getIcon(side, meta); + } + + public enum EnumConcreteType { + MACHINE, + MACHINE_STRIPE, + INDIGO, + PURPLE, + PINK, + HAZARD + } +} diff --git a/src/main/java/com/hbm/blocks/generic/BlockDynamicSlag.java b/src/main/java/com/hbm/blocks/generic/BlockDynamicSlag.java new file mode 100644 index 000000000..fc053c80c --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockDynamicSlag.java @@ -0,0 +1,278 @@ +package com.hbm.blocks.generic; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Random; + +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.material.MaterialShapes; +import com.hbm.inventory.material.Mats; +import com.hbm.inventory.material.Mats.MaterialStack; +import com.hbm.inventory.material.NTMMaterial; +import com.hbm.items.machine.ItemScraps; +import com.hbm.render.icon.RGBMutatorInterpolatedComponentRemap; +import com.hbm.render.icon.TextureAtlasSpriteMutatable; +import com.hbm.util.Compat; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.client.renderer.texture.TextureMap; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.stats.StatList; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.IIcon; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class BlockDynamicSlag extends BlockContainer { + + private HashMap iconMap = new HashMap(); + + public BlockDynamicSlag() { + super(Material.iron); + this.useNeighborBrightness = true; + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntitySlag(); + } + + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister reg) { + super.registerBlockIcons(reg); + + if(reg instanceof TextureMap) { + TextureMap map = (TextureMap) reg; + + for(NTMMaterial mat : Mats.orderedList) { + if(mat.solidColorLight != mat.solidColorDark) { + String placeholderName = this.getTextureName() + "-" + mat.names[0]; + TextureAtlasSpriteMutatable mutableIcon = new TextureAtlasSpriteMutatable(placeholderName, new RGBMutatorInterpolatedComponentRemap(0xFFFFFF, 0x505050, mat.solidColorLight, mat.solidColorDark)).setBlockAtlas(); + map.setTextureEntry(placeholderName, mutableIcon); + iconMap.put(mat, mutableIcon); + } + } + } + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) { + + TileEntitySlag tile = (TileEntitySlag) world.getTileEntity(x, y, z); + + if(tile != null && tile.mat != null) { + IIcon override = iconMap.get(tile.mat); + if(override != null) { + return override; + } + } + + return this.blockIcon; + } + + @Override + @SideOnly(Side.CLIENT) + public int colorMultiplier(IBlockAccess world, int x, int y, int z) { + + TileEntitySlag tile = (TileEntitySlag) world.getTileEntity(x, y, z); + + if(tile != null && tile.mat != null) { + if(!iconMap.containsKey(tile.mat)) { + return tile.mat.moltenColor; + } + } + + return 0xffffff; + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { + TileEntitySlag tile = (TileEntitySlag) world.getTileEntity(x, y, z); + if(tile != null) { + this.setBlockBounds(0F, 0F, 0F, 1F, (float) tile.amount / (float) TileEntitySlag.maxAmount, 1F); + } + } + + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + TileEntitySlag tile = (TileEntitySlag) world.getTileEntity(x, y, z); + if(tile != null) { + this.setBlockBounds(0F, 0F, 0F, 1F, (float) tile.amount / (float) TileEntitySlag.maxAmount, 1F); + } + return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); + } + + @Override + public void updateTick(World world, int x, int y, int z, Random rand) { + + TileEntity s = Compat.getTileStandard(world, x, y, z); + TileEntity b = Compat.getTileStandard(world, x, y - 1, z); + + /* Error here, delete the block */ + if(s == null || !(s instanceof TileEntitySlag)) { + world.setBlockToAir(x, y, z); + return; + } + + TileEntitySlag self = (TileEntitySlag) s; + + /* Flow down */ + if(world.getBlock(x, y - 1, z).isReplaceable(world, x, y - 1, z)) { + world.setBlock(x, y - 1, z, ModBlocks.slag); + TileEntitySlag tile = (TileEntitySlag) Compat.getTileStandard(world, x, y - 1, z); + tile.mat = self.mat; + tile.amount = self.amount; + world.markBlockForUpdate(x, y - 1, z); + world.setBlockToAir(x, y, z); + return; + } else if(b instanceof TileEntitySlag) { + + TileEntitySlag below = (TileEntitySlag) b; + + if(below.mat == self.mat && below.amount < TileEntitySlag.maxAmount) { + int transfer = Math.min(TileEntitySlag.maxAmount - below.amount, self.amount); + below.amount += transfer; + self.amount -= transfer; + + if(self.amount <= 0){ + world.setBlockToAir(x, y, z); + } else { + world.markBlockForUpdate(x, y, z); + } + + world.markBlockForUpdate(x, y - 1, z); + world.scheduleBlockUpdate(x, y - 1, z, ModBlocks.slag, 1); + return; + } + } + + /* Flow sideways, no neighbors */ + ForgeDirection[] sides = new ForgeDirection[] { ForgeDirection.NORTH, ForgeDirection.SOUTH, ForgeDirection.EAST, ForgeDirection.WEST }; + int count = 0; + for(ForgeDirection dir : sides) { + int iX = x + dir.offsetX; + int iZ = z + dir.offsetZ; + + if(world.getBlock(iX, y, iZ).isReplaceable(world, iX, y, iZ)) { + count++; + } + } + + if(self.amount >= self.maxAmount / 5 && count > 0) { + int toSpread = Math.max(self.amount / (count * 2), 1); + + for(ForgeDirection dir : sides) { + int iX = x + dir.offsetX; + int iZ = z + dir.offsetZ; + + if(world.getBlock(iX, y, iZ).isReplaceable(world, iX, y, iZ)) { + world.setBlock(iX, y, iZ, ModBlocks.slag); + TileEntitySlag tile = (TileEntitySlag) Compat.getTileStandard(world, iX, y, iZ); + world.markBlockForUpdate(iX, y, iZ); + world.scheduleBlockUpdate(iX, y, iZ, ModBlocks.slag, 1); + tile.mat = self.mat; + tile.amount = toSpread; + self.amount -= toSpread; + world.markBlockForUpdate(x, y, z); + } + } + } + } + + @Override + public void onBlockHarvested(World world, int x, int y, int z, int meta, EntityPlayer player) { + + if(!player.capabilities.isCreativeMode) { + harvesters.set(player); + this.dropBlockAsItem(world, x, y, z, meta, 0); + harvesters.set(null); + } + } + + @Override + public void harvestBlock(World world, EntityPlayer player, int x, int y, int z, int meta) { + player.addStat(StatList.mineBlockStatArray[getIdFromBlock(this)], 1); + player.addExhaustion(0.025F); + } + + @Override + public ArrayList getDrops(World world, int x, int y, int z, int metadata, int fortune) { + ArrayList ret = new ArrayList(); + + TileEntitySlag tile = (TileEntitySlag) world.getTileEntity(x, y, z); + + if(tile != null && tile.mat != null && tile.amount > 0) { + ret.add(ItemScraps.create(new MaterialStack(tile.mat, tile.amount))); + } + + return ret; + } + + @Override + public ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z, EntityPlayer player) { + + TileEntitySlag tile = (TileEntitySlag) world.getTileEntity(x, y, z); + + if(tile != null) { + return ItemScraps.create(new MaterialStack(tile.mat, tile.amount)); + } + + return super.getPickBlock(target, world, x, y, z, player); + } + + public static class TileEntitySlag extends TileEntity { + + public NTMMaterial mat; + public int amount; + public static int maxAmount = MaterialShapes.BLOCK.q(16); + + @Override + public boolean canUpdate() { + return false; + } + + @Override + public Packet getDescriptionPacket() { + NBTTagCompound nbt = new NBTTagCompound(); + this.writeToNBT(nbt); + return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 0, nbt); + } + + @Override + public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { + this.readFromNBT(pkt.func_148857_g()); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.mat = Mats.matById.get(nbt.getInteger("mat")); + this.amount = nbt.getInteger("amount"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + if(this.mat != null) nbt.setInteger("mat", this.mat.id); + nbt.setInteger("amount", this.amount); + } + } +} diff --git a/src/main/java/com/hbm/blocks/machine/FoundryChannel.java b/src/main/java/com/hbm/blocks/machine/FoundryChannel.java index bf00c6b60..e692c3bf9 100644 --- a/src/main/java/com/hbm/blocks/machine/FoundryChannel.java +++ b/src/main/java/com/hbm/blocks/machine/FoundryChannel.java @@ -131,7 +131,7 @@ public class FoundryChannel extends BlockContainer implements ICrucibleAcceptor if(b == ModBlocks.foundry_outlet && meta == dir.ordinal()) return true; - return b == ModBlocks.foundry_channel || b == ModBlocks.foundry_mold; + return b == ModBlocks.foundry_channel || b == ModBlocks.foundry_mold || b == ModBlocks.foundry_slagtap; } public static int renderID = RenderingRegistry.getNextAvailableRenderId(); diff --git a/src/main/java/com/hbm/blocks/machine/FoundryOutlet.java b/src/main/java/com/hbm/blocks/machine/FoundryOutlet.java index de46f885b..d62f01cb0 100644 --- a/src/main/java/com/hbm/blocks/machine/FoundryOutlet.java +++ b/src/main/java/com/hbm/blocks/machine/FoundryOutlet.java @@ -167,12 +167,12 @@ public class FoundryOutlet extends BlockContainer implements ICrucibleAcceptor, @Override public boolean canAcceptPartialFlow(World world, int x, int y, int z, ForgeDirection side, MaterialStack stack) { - return ((TileEntityFoundryOutlet) world.getTileEntity(x, y, z)).canAcceptPartialFlow(world, x, y, z, side, stack); + return ((ICrucibleAcceptor) world.getTileEntity(x, y, z)).canAcceptPartialFlow(world, x, y, z, side, stack); } @Override public MaterialStack flow(World world, int x, int y, int z, ForgeDirection side, MaterialStack stack) { - return ((TileEntityFoundryOutlet) world.getTileEntity(x, y, z)).flow(world, x, y, z, side, stack); + return ((ICrucibleAcceptor) world.getTileEntity(x, y, z)).flow(world, x, y, z, side, stack); } public static int renderID = RenderingRegistry.getNextAvailableRenderId(); diff --git a/src/main/java/com/hbm/blocks/machine/FoundrySlagtap.java b/src/main/java/com/hbm/blocks/machine/FoundrySlagtap.java new file mode 100644 index 000000000..b001d1157 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/FoundrySlagtap.java @@ -0,0 +1,35 @@ +package com.hbm.blocks.machine; + +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.machine.TileEntityFoundrySlagtap; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; + +public class FoundrySlagtap extends FoundryOutlet { + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + super.registerBlockIcons(iconRegister); + this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":foundry_slagtap_top"); + this.iconSide = iconRegister.registerIcon(RefStrings.MODID + ":foundry_slagtap_side"); + this.iconBottom = iconRegister.registerIcon(RefStrings.MODID + ":foundry_slagtap_bottom"); + this.iconInner = iconRegister.registerIcon(RefStrings.MODID + ":foundry_slagtap_inner"); + this.iconFront = iconRegister.registerIcon(RefStrings.MODID + ":foundry_slagtap_front"); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityFoundrySlagtap(); + } + + @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { return false; } + @Override public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) { return false; } + @Override public void printHook(Pre event, World world, int x, int y, int z) { } +} diff --git a/src/main/java/com/hbm/blocks/rail/IRailNTM.java b/src/main/java/com/hbm/blocks/rail/IRailNTM.java index 430395012..4fd66886a 100644 --- a/src/main/java/com/hbm/blocks/rail/IRailNTM.java +++ b/src/main/java/com/hbm/blocks/rail/IRailNTM.java @@ -25,7 +25,8 @@ public interface IRailNTM { public TrackGauge getGauge(World world, int x, int y, int z); public static enum TrackGauge { - STANDARD //roughly 1.5m + STANDARD, //roughly 1.5m + NARROW //roughly 0.75m } /** A wrapper for all relevant info required when leaving a rail */ diff --git a/src/main/java/com/hbm/blocks/rail/RailNarrowCurve.java b/src/main/java/com/hbm/blocks/rail/RailNarrowCurve.java new file mode 100644 index 000000000..1fc4c01ae --- /dev/null +++ b/src/main/java/com/hbm/blocks/rail/RailNarrowCurve.java @@ -0,0 +1,144 @@ +package com.hbm.blocks.rail; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.lib.Library; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import cpw.mods.fml.client.registry.RenderingRegistry; +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class RailNarrowCurve extends BlockDummyable implements IRailNTM { + + public RailNarrowCurve() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { + return null; + } + + public static int renderID = RenderingRegistry.getNextAvailableRenderId(); + + @Override + public int getRenderType() { + return renderID; + } + + @Override + public Vec3 getSnappingPos(World world, int x, int y, int z, double trainX, double trainY, double trainZ) { + return snapAndMove(world, x, y, z, trainX, trainY, trainZ, 0, 0, 0, 0, new RailContext()); + } + + @Override + public Vec3 getTravelLocation(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info) { + return snapAndMove(world, x, y, z, trainX, trainY, trainZ, motionX, motionY, motionZ, speed, info); + } + + /* Very simple function determining the snapping position and adding the motion value to it, if desired. */ + public Vec3 snapAndMove(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info) { + int[] pos = this.findCore(world, x, y, z); + if(pos == null) return Vec3.createVectorHelper(trainX, trainY, trainZ); + int cX = pos[0]; + int cY = pos[1]; + int cZ = pos[2]; + int meta = world.getBlockMetadata(cX, cY, cZ) - this.offset; + ForgeDirection dir = ForgeDirection.getOrientation(meta); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + double turnRadius = 4.5D; + + Vec3 vec = Vec3.createVectorHelper(trainX, trainY, trainZ); + double axisX = cX + 0.5 + dir.offsetX * 0.5 + rot.offsetX * turnRadius; + double axisZ = cZ + 0.5 + dir.offsetZ * 0.5 + rot.offsetZ * turnRadius; + + Vec3 dist = Vec3.createVectorHelper(vec.xCoord - axisX, 0, vec.zCoord - axisZ); + dist = dist.normalize(); + dist.xCoord *= turnRadius; + dist.zCoord *= turnRadius; + + double moveAngle = Math.atan2(motionX, motionZ) * 180D / Math.PI + 90; + + if(speed == 0) { + info.dist(0).pos(new BlockPos(x, y, z)).yaw((float) moveAngle); + return Vec3.createVectorHelper(axisX + dist.xCoord, y, axisZ + dist.zCoord); + } + + double angleDeg = Math.atan2(dist.xCoord, dist.zCoord) * 180D / Math.PI + 90; + if(dir == Library.NEG_X) angleDeg -= 90; + if(dir == Library.POS_X) angleDeg += 90; + if(dir == Library.POS_Z) angleDeg += 180; + angleDeg = MathHelper.wrapAngleTo180_double(angleDeg); + double length90Deg = turnRadius * Math.PI / 2D; + double angularChange = speed / length90Deg * 90D; + + ForgeDirection moveDir = ForgeDirection.UNKNOWN; + + if(Math.abs(motionX) > Math.abs(motionZ)) { + moveDir = motionX > 0 ? Library.POS_X : Library.NEG_X; + } else { + moveDir = motionZ > 0 ? Library.POS_Z : Library.NEG_Z; + } + + if(moveDir == dir || moveDir == rot.getOpposite()) { + angularChange *= -1; + } + + double effAngle = angleDeg + angularChange; + moveAngle += angularChange; + + if(effAngle > 90) { + double angleOvershoot = effAngle - 90D; + moveAngle -= angleOvershoot; + double lengthOvershoot = angleOvershoot * length90Deg / 90D; + info.dist(lengthOvershoot * Math.signum(speed * angularChange)).pos(new BlockPos(cX - dir.offsetX * 4 + rot.offsetX * 5, y, cZ - dir.offsetZ * 4 + rot.offsetZ * 5)).yaw((float) moveAngle); + return Vec3.createVectorHelper(axisX - dir.offsetX * turnRadius, y, axisZ - dir.offsetZ * turnRadius); + } + + if(effAngle < 0) { + double angleOvershoot = -effAngle; + moveAngle -= angleOvershoot; + double lengthOvershoot = angleOvershoot * length90Deg / 90D; + info.dist(-lengthOvershoot * Math.signum(speed * angularChange)).pos(new BlockPos(cX + dir.offsetX , y, cZ + dir.offsetZ)).yaw((float) moveAngle); + return Vec3.createVectorHelper(axisX - rot.offsetX * turnRadius, y, axisZ -rot.offsetZ * turnRadius); + } + + double radianChange = angularChange * Math.PI / 180D; + dist.rotateAroundY((float) radianChange); + + return Vec3.createVectorHelper(axisX + dist.xCoord, y, axisZ + dist.zCoord); + } + + @Override + public TrackGauge getGauge(World world, int x, int y, int z) { + return TrackGauge.NARROW; + } + + @Override + public int[] getDimensions() { + return new int[] {0, 0, 4, 0, 4, 0}; + } + + @Override + public int getOffset() { + return 0; + } + + @Override + public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { + this.setBlockBounds(0F, 0F, 0F, 1F, 0.125F, 1F); + } + + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + this.setBlockBounds(0F, 0F, 0F, 1F, 0.125F, 1F); + return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); + } +} diff --git a/src/main/java/com/hbm/blocks/rail/RailNarrowStraight.java b/src/main/java/com/hbm/blocks/rail/RailNarrowStraight.java new file mode 100644 index 000000000..4d51dfe07 --- /dev/null +++ b/src/main/java/com/hbm/blocks/rail/RailNarrowStraight.java @@ -0,0 +1,115 @@ +package com.hbm.blocks.rail; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.lib.Library; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import cpw.mods.fml.client.registry.RenderingRegistry; +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class RailNarrowStraight extends BlockDummyable implements IRailNTM { + + public RailNarrowStraight() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return null; + } + + public static int renderID = RenderingRegistry.getNextAvailableRenderId(); + + @Override + public int getRenderType() { + return renderID; + } + + @Override + public int[] getDimensions() { + return new int[] {0, 0, 2, 2, 0, 0}; + } + + @Override + public int getOffset() { + return 2; + } + + @Override + public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { + this.setBlockBounds(0F, 0F, 0F, 1F, 0.125F, 1F); + } + + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + this.setBlockBounds(0F, 0F, 0F, 1F, 0.125F, 1F); + return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); + } + + @Override + public Vec3 getSnappingPos(World world, int x, int y, int z, double trainX, double trainY, double trainZ) { + return snapAndMove(world, x, y, z, trainX, trainY, trainZ, 0, 0, 0, 0, new RailContext()); + } + + @Override + public Vec3 getTravelLocation(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info) { + return snapAndMove(world, x, y, z, trainX, trainY, trainZ, motionX, motionY, motionZ, speed, info); + } + + /* Very simple function determining the snapping position and adding the motion value to it, if desired. */ + public Vec3 snapAndMove(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info) { + int[] pos = this.findCore(world, x, y, z); + if(pos == null) return Vec3.createVectorHelper(trainX, trainY, trainZ); + int cX = pos[0]; + int cY = pos[1]; + int cZ = pos[2]; + int meta = world.getBlockMetadata(cX, cY, cZ) - this.offset; + ForgeDirection dir = ForgeDirection.getOrientation(meta); + + Vec3 vec = Vec3.createVectorHelper(trainX, trainY, trainZ); + + if(dir == Library.POS_X || dir == Library.NEG_X) { + double targetX = trainX; + if(motionX > 0) { + targetX += speed; + info.yaw(-90F); + } else { + targetX -= speed; + info.yaw(90F); + } + vec.xCoord = MathHelper.clamp_double(targetX, cX - 2, cX + 3); + vec.yCoord = y; + vec.zCoord = cZ + 0.5; + info.dist(Math.abs(targetX - vec.xCoord) * Math.signum(speed)); + info.pos(new BlockPos(cX + (motionX * speed > 0 ? 3 : -3), y, cZ)); + } else { + double targetZ = trainZ; + if(motionZ > 0) { + targetZ += speed; + info.yaw(0F); + } else { + targetZ -= speed; + info.yaw(180F); + } + vec.xCoord = cX + 0.5; + vec.yCoord = y; + vec.zCoord = MathHelper.clamp_double(targetZ, cZ - 2,cZ + 3); + info.dist(Math.abs(targetZ - vec.zCoord) * Math.signum(speed)); + info.pos(new BlockPos(cX, y, cZ + (motionZ * speed > 0 ? 3 : -3))); + } + + return vec; + } + + @Override + public TrackGauge getGauge(World world, int x, int y, int z) { + return TrackGauge.NARROW; + } +} diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java b/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java index 46bc0bf4d..7028571ce 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java @@ -49,12 +49,13 @@ public class RailStandardCurve extends BlockDummyable implements IRailNTM { int meta = world.getBlockMetadata(cX, cY, cZ) - this.offset; ForgeDirection dir = ForgeDirection.getOrientation(meta); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - - double turnRadius = 4.5D; + + double turnRadius = 4D; + double axisDist = 4.5D; Vec3 vec = Vec3.createVectorHelper(trainX, trainY, trainZ); - double axisX = cX + 0.5 + dir.offsetX * 0.5 + rot.offsetX * turnRadius; - double axisZ = cZ + 0.5 + dir.offsetZ * 0.5 + rot.offsetZ * turnRadius; + double axisX = cX + 0.5 + dir.offsetX * 0.5 + rot.offsetX * axisDist; + double axisZ = cZ + 0.5 + dir.offsetZ * 0.5 + rot.offsetZ * axisDist; Vec3 dist = Vec3.createVectorHelper(vec.xCoord - axisX, 0, vec.zCoord - axisZ); dist = dist.normalize(); diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java b/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java index 1c8889b0b..903e01e1b 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java @@ -31,7 +31,7 @@ public class RailStandardStraight extends BlockDummyable implements IRailNTM { @Override public int[] getDimensions() { - return new int[] {0, 0, 2, 2, 0, 0}; + return new int[] {0, 0, 2, 2, 1, 0}; } @Override @@ -69,6 +69,7 @@ public class RailStandardStraight extends BlockDummyable implements IRailNTM { int cZ = pos[2]; int meta = world.getBlockMetadata(cX, cY, cZ) - this.offset; ForgeDirection dir = ForgeDirection.getOrientation(meta); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); Vec3 vec = Vec3.createVectorHelper(trainX, trainY, trainZ); @@ -87,7 +88,7 @@ public class RailStandardStraight extends BlockDummyable implements IRailNTM { } vec.xCoord = MathHelper.clamp_double(targetX, cX - 2, cX + 3); vec.yCoord = y; - vec.zCoord = cZ + 0.5; + vec.zCoord = cZ + 0.5 + rot.offsetZ * 0.5; info.dist(Math.abs(targetX - vec.xCoord) * Math.signum(speed)); info.pos(new BlockPos(cX + (motionX * speed > 0 ? 3 : -3), y, cZ)); } else { @@ -99,7 +100,7 @@ public class RailStandardStraight extends BlockDummyable implements IRailNTM { targetZ -= speed; info.yaw(180F); } - vec.xCoord = cX + 0.5; + vec.xCoord = cX + 0.5 + rot.offsetX * 0.5; vec.yCoord = y; vec.zCoord = MathHelper.clamp_double(targetZ, cZ - 2,cZ + 3); info.dist(Math.abs(targetZ - vec.zCoord) * Math.signum(speed)); diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index fb39122a5..f85df1900 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -452,6 +452,7 @@ public class OreDictManager { ANY_HIGHEXPLOSIVE .ingot(ball_tnt).ingot(ball_tatb); ANY_CONCRETE .any(concrete, concrete_smooth, concrete_asbestos, ducrete, ducrete_smooth); for(int i = 0; i < 16; i++) { ANY_CONCRETE.any(new ItemStack(ModBlocks.concrete_colored, 1, i)); } + for(int i = 0; i < 16; i++) { ANY_CONCRETE.any(new ItemStack(ModBlocks.concrete_colored_ext, 1, i)); } ANY_COKE .gem(fromAll(coke, EnumCokeType.class)).block(fromAll(block_coke, EnumCokeType.class)); ANY_BISMOID .ingot(ingot_bismuth, ingot_arsenic).nugget(nugget_bismuth, nugget_arsenic).block(block_bismuth); diff --git a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java index 57bad806d..be6b5d8bc 100644 --- a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java @@ -229,14 +229,11 @@ public class ChemplantRecipes extends SerializableRecipe { .outputFluids(new FluidStack(Fluids.XENON, 50))); recipes.add(new ChemRecipe(61, "SATURN", 60) .inputItems( - new ComparableStack(ModItems.powder_dura_steel), - new OreDictStack(P_RED.dust())) - .inputFluids( - new FluidStack(Fluids.ACID, 100), - (GeneralConfig.enableLBSM && GeneralConfig.enableLBSMSimpleChemsitry) ? - new FluidStack(Fluids.WATER, 200) : - new FluidStack(Fluids.MERCURY, 50)) - .outputItems(new ItemStack(ModItems.ingot_saturnite, 2))); + new OreDictStack(DURA.dust(), 2), + new OreDictStack(CU.dust(), 1), + new OreDictStack(COAL.dust(), 1)) + .inputFluids(new FluidStack(Fluids.SULFURIC_ACID, 100)) + .outputItems(new ItemStack(ModItems.ingot_saturnite, 4))); recipes.add(new ChemRecipe(62, "BALEFIRE", 100) .inputItems(new ComparableStack(ModItems.egg_balefire_shard)) .inputFluids(new FluidStack(Fluids.KEROSENE, 6000)) diff --git a/src/main/java/com/hbm/items/special/ItemAutogen.java b/src/main/java/com/hbm/items/special/ItemAutogen.java index 9ddf38798..1e1f1d075 100644 --- a/src/main/java/com/hbm/items/special/ItemAutogen.java +++ b/src/main/java/com/hbm/items/special/ItemAutogen.java @@ -99,7 +99,7 @@ public class ItemAutogen extends Item { NTMMaterial mat = Mats.matById.get(stack.getItemDamage()); if(mat != null) { - return mat.solidColorLight; + return mat.moltenColor; } return 0xffffff; diff --git a/src/main/java/com/hbm/items/weapon/ItemGunGauss.java b/src/main/java/com/hbm/items/weapon/ItemGunGauss.java index 4db1ce526..1d53bb44c 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGunGauss.java +++ b/src/main/java/com/hbm/items/weapon/ItemGunGauss.java @@ -59,7 +59,7 @@ public class ItemGunGauss extends ItemGunBase { public void startActionClient(ItemStack stack, World world, EntityPlayer player, boolean main) { if(!main && getItemWear(stack) < mainConfig.durability && player.inventory.hasItem(ModItems.gun_xvl1456_ammo)) { - chargeLoop = MainRegistry.proxy.getLoopedSound("hbm:weapon.tauChargeLoop2", (float)player.posX, (float)player.posY, (float)player.posZ, 1.0F, 0.75F); + chargeLoop = MainRegistry.proxy.getLoopedSound("hbm:weapon.tauChargeLoop2", (float)player.posX, (float)player.posY, (float)player.posZ, 1.0F, 5F, 0.75F); world.playSoundAtEntity(player, "hbm:weapon.tauChargeLoop2", 1.0F, 0.75F); if(chargeLoop != null) { @@ -120,7 +120,7 @@ public class ItemGunGauss extends ItemGunBase { public AudioWrapper rebootAudio(AudioWrapper wrapper, EntityPlayer player) { wrapper.stopSound(); - AudioWrapper audio = MainRegistry.proxy.getLoopedSound("hbm:weapon.tauChargeLoop2", (float)player.posX, (float)player.posY, (float)player.posZ, wrapper.getVolume(), wrapper.getPitch()); + AudioWrapper audio = MainRegistry.proxy.getLoopedSound("hbm:weapon.tauChargeLoop2", (float)player.posX, (float)player.posY, (float)player.posZ, wrapper.getVolume(), wrapper.getRange(), wrapper.getPitch()); audio.startSound(); return audio; } diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 79c7e3689..7f4e466a7 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4592)"; + public static final String VERSION = "1.0.27 BETA (4606)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index a549c1204..c47b1b9e1 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -782,6 +782,9 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerBlockHandler(new RenderFoundryChannel()); RenderingRegistry.registerBlockHandler(new RenderFoundryTank()); RenderingRegistry.registerBlockHandler(new RenderFoundryOutlet()); + + RenderingRegistry.registerBlockHandler(new RenderNarrowStraightRail()); + RenderingRegistry.registerBlockHandler(new RenderNarrowCurveRail()); RenderingRegistry.registerBlockHandler(new RenderBlockRotated(ModBlocks.charge_dynamite.getRenderType(), ResourceManager.charge_dynamite)); RenderingRegistry.registerBlockHandler(new RenderBlockRotated(ModBlocks.charge_c4.getRenderType(), ResourceManager.charge_c4)); @@ -1875,13 +1878,23 @@ public class ClientProxy extends ServerProxy { } @Override - public AudioWrapper getLoopedSound(String sound, float x, float y, float z, float volume, float pitch) { + public AudioWrapper getLoopedSound(String sound, float x, float y, float z, float volume, float range, float pitch) { AudioWrapperClient audio = new AudioWrapperClient(new ResourceLocation(sound)); audio.updatePosition(x, y, z); + audio.updateVolume(volume); + audio.updateRange(range); return audio; } + @Override + public AudioWrapper getLoopedSound(String sound, float x, float y, float z, float volume, float range, float pitch, int keepAlive) { + AudioWrapper audio = getLoopedSound(sound, x, y, z, volume, range, pitch); + audio.setKeepAlive(keepAlive); + return audio; + } + + /** Only used for doors */ @Override public AudioWrapper getLoopedSoundStartStop(World world, String sound, String start, String stop, float x, float y, float z, float volume, float pitch) { AudioWrapperClientStartStop audio = new AudioWrapperClientStartStop(world, sound == null ? null : new ResourceLocation(sound), start, stop, volume * 5); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 77f0c09fa..02ce53a80 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -5,6 +5,7 @@ import java.util.List; import com.hbm.blocks.BlockEnums.DecoCabinetEnum; import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.generic.BlockConcreteColoredExt.EnumConcreteType; import com.hbm.blocks.generic.BlockGenericStairs; import com.hbm.blocks.generic.BlockMultiSlab; import com.hbm.blocks.generic.BlockNTMFlower.EnumFlowerType; @@ -406,9 +407,16 @@ public class CraftingManager { for(int i = 0; i < 16; i++) { String dyeName = "dye" + dyes[15 - i]; addRecipeAuto(new ItemStack(ModBlocks.concrete_colored, 8, i), new Object[] { "CCC", "CDC", "CCC", 'C', ModBlocks.concrete_smooth, 'D', dyeName }); - addRecipeAuto(new ItemStack(ModBlocks.concrete_colored, 8, i), new Object[] { "CCC", "CDC", "CCC", 'C', ModBlocks.concrete_colored, 'D', dyeName }); } addShapelessAuto(new ItemStack(ModBlocks.concrete_smooth, 1), new Object[] { ModBlocks.concrete_colored }); + addShapelessAuto(new ItemStack(ModBlocks.concrete_smooth, 1), new Object[] { ModBlocks.concrete_colored_ext }); + + addRecipeAuto(new ItemStack(ModBlocks.concrete_colored_ext, 6, EnumConcreteType.MACHINE.ordinal()), new Object[] { "CCC", "1 2", "CCC", 'C', ModBlocks.concrete_smooth, '1', KEY_BROWN, '2', KEY_GRAY }); + addRecipeAuto(new ItemStack(ModBlocks.concrete_colored_ext, 6, EnumConcreteType.MACHINE_STRIPE.ordinal()), new Object[] { "CCC", "1 2", "CCC", 'C', ModBlocks.concrete_smooth, '1', KEY_BROWN, '2', KEY_BLACK }); + addRecipeAuto(new ItemStack(ModBlocks.concrete_colored_ext, 6, EnumConcreteType.INDIGO.ordinal()), new Object[] { "CCC", "1 2", "CCC", 'C', ModBlocks.concrete_smooth, '1', KEY_BLUE, '2', KEY_PURPLE }); + addRecipeAuto(new ItemStack(ModBlocks.concrete_colored_ext, 6, EnumConcreteType.PURPLE.ordinal()), new Object[] { "CCC", "1 2", "CCC", 'C', ModBlocks.concrete_smooth, '1', KEY_PURPLE, '2', KEY_PURPLE }); + addRecipeAuto(new ItemStack(ModBlocks.concrete_colored_ext, 6, EnumConcreteType.PINK.ordinal()), new Object[] { "CCC", "1 2", "CCC", 'C', ModBlocks.concrete_smooth, '1', KEY_PINK, '2', KEY_RED }); + addRecipeAuto(new ItemStack(ModBlocks.concrete_colored_ext, 6, EnumConcreteType.HAZARD.ordinal()), new Object[] { "CCC", "1 2", "CCC", 'C', ModBlocks.concrete_smooth, '1', KEY_YELLOW, '2', KEY_BLACK }); addRecipeAuto(new ItemStack(ModBlocks.gneiss_tile, 4), new Object[] { "CC", "CC", 'C', ModBlocks.stone_gneiss }); addRecipeAuto(new ItemStack(ModBlocks.gneiss_brick, 4), new Object[] { "CC", "CC", 'C', ModBlocks.gneiss_tile }); @@ -961,6 +969,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.foundry_channel, 4), new Object[] { "B B", " S ", 'B', ModItems.ingot_firebrick, 'S', Blocks.stone_slab }); addRecipeAuto(new ItemStack(ModBlocks.foundry_tank), new Object[] { "B B", "I I", "BSB", 'B', ModItems.ingot_firebrick, 'I', STEEL.ingot(), 'S', Blocks.stone_slab }); addShapelessAuto(new ItemStack(ModBlocks.foundry_outlet), new Object[] { ModBlocks.foundry_channel, STEEL.plate() }); + addShapelessAuto(new ItemStack(ModBlocks.foundry_slagtap), new Object[] { ModBlocks.foundry_channel, Blocks.stonebrick }); addRecipeAuto(new ItemStack(ModItems.mold_base), new Object[] { " B ", "BIB", " B ", 'B', ModItems.ingot_firebrick, 'I', IRON.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.brick_fire), new Object[] { "BB", "BB", 'B', ModItems.ingot_firebrick }); addShapelessAuto(new ItemStack(ModItems.ingot_firebrick, 4), new Object[] { ModBlocks.brick_fire }); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 12bc57f09..c947a97be 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -129,7 +129,7 @@ public class ResourceManager { public static final IModelCustom assemfac = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/assemfac.obj")); //Chemplant - public static final IModelCustom chemplant_body = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/chemplant_new_body.obj")); + public static final IModelCustom chemplant_body = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/chemplant_new_body.obj")); public static final IModelCustom chemplant_spinner = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/chemplant_new_spinner.obj")); public static final IModelCustom chemplant_piston = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/chemplant_new_piston.obj")); public static final IModelCustom chemplant_fluid = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/chemplant_new_fluid.hmf")); @@ -1327,6 +1327,8 @@ public class ResourceManager { public static final IModelCustom pipe_neo = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/pipe_neo.obj")); public static final IModelCustom difurnace_extension = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/difurnace_extension.obj")); public static final IModelCustom splitter = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/splitter.obj")); + public static final IModelCustom rail_narrow_straight = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_narrow.obj")); + public static final IModelCustom rail_narrow_curve = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_narrow_bend.obj")); public static final IModelCustom charge_dynamite = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/charge_dynamite.obj")); public static final IModelCustom charge_c4 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/charge_c4.obj")); diff --git a/src/main/java/com/hbm/main/ServerProxy.java b/src/main/java/com/hbm/main/ServerProxy.java index d479b8790..d296c9ab3 100644 --- a/src/main/java/com/hbm/main/ServerProxy.java +++ b/src/main/java/com/hbm/main/ServerProxy.java @@ -41,7 +41,8 @@ public class ServerProxy { public void registerMissileItems() { } - public AudioWrapper getLoopedSound(String sound, float x, float y, float z, float volume, float pitch) { return null; } + public AudioWrapper getLoopedSound(String sound, float x, float y, float z, float volume, float range, float pitch) { return null; } + public AudioWrapper getLoopedSound(String sound, float x, float y, float z, float volume, float range, float pitch, int keepAlive) { return null; } public AudioWrapper getLoopedSoundStartStop(World world, String sound, String start, String stop, float x, float y, float z, float volume, float pitch) { return null; } public void playSound(String sound, Object data) { } diff --git a/src/main/java/com/hbm/render/block/RenderFoundryOutlet.java b/src/main/java/com/hbm/render/block/RenderFoundryOutlet.java index 743ba6306..1e5b52354 100644 --- a/src/main/java/com/hbm/render/block/RenderFoundryOutlet.java +++ b/src/main/java/com/hbm/render/block/RenderFoundryOutlet.java @@ -10,6 +10,7 @@ import net.minecraft.block.Block; import net.minecraft.client.renderer.EntityRenderer; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.Tessellator; +import net.minecraft.tileentity.TileEntity; import net.minecraft.world.IBlockAccess; public class RenderFoundryOutlet implements ISimpleBlockRenderingHandler { @@ -82,7 +83,8 @@ public class RenderFoundryOutlet implements ISimpleBlockRenderingHandler { FoundryOutlet outlet = (FoundryOutlet) block; int meta = world.getBlockMetadata(x, y, z); - TileEntityFoundryOutlet tile = (TileEntityFoundryOutlet) world.getTileEntity(x, y, z); + TileEntity tile = world.getTileEntity(x, y, z); + TileEntityFoundryOutlet tileOutlet = tile instanceof TileEntityFoundryOutlet ? (TileEntityFoundryOutlet) tile : null; int brightness = block.getMixedBrightnessForBlock(world, x, y, z); tessellator.setBrightness(brightness); @@ -105,13 +107,13 @@ public class RenderFoundryOutlet implements ISimpleBlockRenderingHandler { renderer.renderFaceXPos(block, x, y, z, outlet.iconFront); renderer.renderFaceXNeg(block, x, y, z, outlet.iconFront); - if(tile.filter != null) { + if(tileOutlet != null && tileOutlet.filter != null) { renderer.setRenderBounds(0.96875D, 0.0625, 0.375D, 0.96875D, top, 0.625D); renderer.renderFaceXPos(block, x, y, z, outlet.iconFilter); renderer.renderFaceXNeg(block, x, y, z, outlet.iconFilter); } - if(tile.isClosed()) { + if(tileOutlet != null && tileOutlet.isClosed()) { renderer.setRenderBounds(0.9375D, 0.0625, 0.375D, 0.9375D, top, 0.625D); renderer.renderFaceXPos(block, x, y, z, outlet.iconLock); renderer.renderFaceXNeg(block, x, y, z, outlet.iconLock); @@ -136,13 +138,13 @@ public class RenderFoundryOutlet implements ISimpleBlockRenderingHandler { renderer.renderFaceXPos(block, x, y, z, outlet.iconFront); renderer.renderFaceXNeg(block, x, y, z, outlet.iconFront); - if(tile.filter != null) { + if(tileOutlet != null && tileOutlet.filter != null) { renderer.setRenderBounds(0.03125D, 0.0625, 0.375D, 0.03125D, top, 0.625D); renderer.renderFaceXPos(block, x, y, z, outlet.iconFilter); renderer.renderFaceXNeg(block, x, y, z, outlet.iconFilter); } - if(tile.isClosed()) { + if(tileOutlet != null && tileOutlet.isClosed()) { renderer.setRenderBounds(0.0625D, 0.0625, 0.375D, 0.0625D, top, 0.625D); renderer.renderFaceXPos(block, x, y, z, outlet.iconLock); renderer.renderFaceXNeg(block, x, y, z, outlet.iconLock); @@ -167,13 +169,13 @@ public class RenderFoundryOutlet implements ISimpleBlockRenderingHandler { renderer.renderFaceZPos(block, x, y, z, outlet.iconFront); renderer.renderFaceZNeg(block, x, y, z, outlet.iconFront); - if(tile.filter != null) { + if(tileOutlet != null && tileOutlet.filter != null) { renderer.setRenderBounds(0.375D, 0.0625, 0.96875D, 0.625D, top, 0.96875D); renderer.renderFaceZPos(block, x, y, z, outlet.iconFilter); renderer.renderFaceZNeg(block, x, y, z, outlet.iconFilter); } - if(tile.isClosed()) { + if(tileOutlet != null && tileOutlet.isClosed()) { renderer.setRenderBounds(0.375D, 0.0625, 0.9375D, 0.625D, top, 0.9375D); renderer.renderFaceZPos(block, x, y, z, outlet.iconLock); renderer.renderFaceZNeg(block, x, y, z, outlet.iconLock); @@ -198,13 +200,13 @@ public class RenderFoundryOutlet implements ISimpleBlockRenderingHandler { renderer.renderFaceZPos(block, x, y, z, outlet.iconFront); renderer.renderFaceZNeg(block, x, y, z, outlet.iconFront); - if(tile.filter != null) { + if(tileOutlet != null && tileOutlet.filter != null) { renderer.setRenderBounds(0.375D, 0.0625D, 0.03125, 0.625D, top, 0.03125D); renderer.renderFaceZPos(block, x, y, z, outlet.iconFilter); renderer.renderFaceZNeg(block, x, y, z, outlet.iconFilter); } - if(tile.isClosed()) { + if(tileOutlet != null && tileOutlet.isClosed()) { renderer.setRenderBounds(0.375D, 0.0625, 0.0625D, 0.625D, top, 0.0625D); renderer.renderFaceZPos(block, x, y, z, outlet.iconLock); renderer.renderFaceZNeg(block, x, y, z, outlet.iconLock); diff --git a/src/main/java/com/hbm/render/block/RenderNarrowCurveRail.java b/src/main/java/com/hbm/render/block/RenderNarrowCurveRail.java new file mode 100644 index 000000000..0cb029690 --- /dev/null +++ b/src/main/java/com/hbm/render/block/RenderNarrowCurveRail.java @@ -0,0 +1,69 @@ +package com.hbm.render.block; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.rail.RailNarrowCurve; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; + +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.world.IBlockAccess; +import net.minecraftforge.client.model.obj.WavefrontObject; + +public class RenderNarrowCurveRail implements ISimpleBlockRenderingHandler { + + @Override + public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { + + GL11.glPushMatrix(); + Tessellator tessellator = Tessellator.instance; + + GL11.glScaled(0.2, 0.2, 0.2); + GL11.glTranslated(2.5, -0.0625, -1.5); + tessellator.startDrawingQuads(); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_narrow_curve, block.getIcon(1, 0), tessellator, 0, false); + tessellator.draw(); + + GL11.glPopMatrix(); + } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { + + int meta = world.getBlockMetadata(x, y, z); + if(meta < 12) return true; + + Tessellator tessellator = Tessellator.instance; + + tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); + tessellator.setColorOpaque_F(1, 1, 1); + + float rotation = 0; + + if(meta == 12) + rotation = 90F / 180F * (float) Math.PI; + if(meta == 14) + rotation = 180F / 180F * (float) Math.PI; + if(meta == 13) + rotation = 270F / 180F * (float) Math.PI; + + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_narrow_curve, block.getIcon(1, 0), tessellator, rotation, true); + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + + return true; + } + + @Override + public boolean shouldRender3DInInventory(int modelId) { + return true; + } + + @Override + public int getRenderId() { + return RailNarrowCurve.renderID; + } +} diff --git a/src/main/java/com/hbm/render/block/RenderNarrowStraightRail.java b/src/main/java/com/hbm/render/block/RenderNarrowStraightRail.java new file mode 100644 index 000000000..3f2c40c78 --- /dev/null +++ b/src/main/java/com/hbm/render/block/RenderNarrowStraightRail.java @@ -0,0 +1,62 @@ +package com.hbm.render.block; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.rail.RailNarrowStraight; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; + +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.world.IBlockAccess; +import net.minecraftforge.client.model.obj.WavefrontObject; + +public class RenderNarrowStraightRail implements ISimpleBlockRenderingHandler { + + @Override + public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { + + GL11.glPushMatrix(); + Tessellator tessellator = Tessellator.instance; + + GL11.glTranslated(0, -0.0625, 0); + tessellator.startDrawingQuads(); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_narrow_straight, block.getIcon(1, 0), tessellator, 0, false); + tessellator.draw(); + + GL11.glPopMatrix(); + } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { + + Tessellator tessellator = Tessellator.instance; + + tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); + tessellator.setColorOpaque_F(1, 1, 1); + int meta = world.getBlockMetadata(x, y, z); + + float rotation = 0; + + if(meta == 2 || meta == 3 || meta == 12 || meta == 13) + rotation = 90F / 180F * (float) Math.PI; + + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_narrow_straight, block.getIcon(1, 0), tessellator, rotation, true); + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + + return true; + } + + @Override + public boolean shouldRender3DInInventory(int modelId) { + return true; + } + + @Override + public int getRenderId() { + return RailNarrowStraight.renderID; + } +} diff --git a/src/main/java/com/hbm/render/icon/TextureAtlasSpriteMutatable.java b/src/main/java/com/hbm/render/icon/TextureAtlasSpriteMutatable.java index 5a0e97ee2..3c596db64 100644 --- a/src/main/java/com/hbm/render/icon/TextureAtlasSpriteMutatable.java +++ b/src/main/java/com/hbm/render/icon/TextureAtlasSpriteMutatable.java @@ -52,7 +52,8 @@ public class TextureAtlasSpriteMutatable extends TextureAtlasSprite { if(mutator != null) { for(int i = 0; i < frames.length; i++) { BufferedImage frame = frames[i]; - mutator.mutate(frame, i, frames.length); + + if(frame != null) mutator.mutate(frame, i, frames.length); } } diff --git a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java index 9e15b0a08..52222f734 100644 --- a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java +++ b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java @@ -257,7 +257,9 @@ public class ItemRenderLibrary { } public void renderCommon() { GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); bindTexture(ResourceManager.chemplant_body_tex); ResourceManager.chemplant_body.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); bindTexture(ResourceManager.chemplant_piston_tex); ResourceManager.chemplant_piston.renderAll(); bindTexture(ResourceManager.chemplant_spinner_tex); GL11.glTranslated(-0.625, 0, 0.625); diff --git a/src/main/java/com/hbm/render/tileentity/RenderChemplant.java b/src/main/java/com/hbm/render/tileentity/RenderChemplant.java index da86e40ec..6a1a936ac 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderChemplant.java +++ b/src/main/java/com/hbm/render/tileentity/RenderChemplant.java @@ -42,7 +42,9 @@ public class RenderChemplant extends TileEntitySpecialRenderer { bindTexture(ResourceManager.chemplant_body_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); ResourceManager.chemplant_body.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); GL11.glPopMatrix(); diff --git a/src/main/java/com/hbm/render/tileentity/RenderMicrowave.java b/src/main/java/com/hbm/render/tileentity/RenderMicrowave.java index cfdc25b26..fbe36e6e2 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderMicrowave.java +++ b/src/main/java/com/hbm/render/tileentity/RenderMicrowave.java @@ -10,36 +10,35 @@ import net.minecraft.tileentity.TileEntity; public class RenderMicrowave extends TileEntitySpecialRenderer { - @Override - public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) - { - GL11.glPushMatrix(); - GL11.glTranslated(x + 0.5D, y - 0.75, z + 0.5D); - GL11.glEnable(GL11.GL_LIGHTING); - + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y - 0.785, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + switch(tileEntity.getBlockMetadata()) { case 2: GL11.glRotatef(0, 0F, 1F, 0F); break; case 4: GL11.glRotatef(90, 0F, 1F, 0F); break; case 3: GL11.glRotatef(180, 0F, 1F, 0F); break; case 5: GL11.glRotatef(270, 0F, 1F, 0F); break; } - GL11.glTranslated(-0.5D, 0.0D, 0.5D); - - TileEntityMicrowave mic = (TileEntityMicrowave)tileEntity; + GL11.glTranslated(-0.5D, 0.0D, 0.65D); + + TileEntityMicrowave mic = (TileEntityMicrowave) tileEntity; bindTexture(ResourceManager.microwave_tex); - ResourceManager.microwave.renderPart("mainbody_Cube.001"); - ResourceManager.microwave.renderPart("window_Cube.002"); + ResourceManager.microwave.renderPart("mainbody_Cube.001"); + ResourceManager.microwave.renderPart("window_Cube.002"); - double rot = (System.currentTimeMillis() * mic.speed / 10D) % 360; - - if(mic.time > 0) { - GL11.glTranslated(0.575D, 0.0D, -0.45D); + double rot = (System.currentTimeMillis() * mic.speed / 10D) % 360; + + if(mic.time > 0) { + GL11.glTranslated(0.575D, 0.0D, -0.45D); GL11.glRotated(rot, 0F, 1F, 0F); - GL11.glTranslated(-0.575D, 0.0D, 0.45D); - } - ResourceManager.microwave.renderPart("plate_Cylinder"); + GL11.glTranslated(-0.575D, 0.0D, 0.45D); + } + ResourceManager.microwave.renderPart("plate_Cylinder"); - GL11.glPopMatrix(); - } + GL11.glPopMatrix(); + } } diff --git a/src/main/java/com/hbm/sound/AudioDynamic.java b/src/main/java/com/hbm/sound/AudioDynamic.java index 8bc976d0d..3799b7d05 100644 --- a/src/main/java/com/hbm/sound/AudioDynamic.java +++ b/src/main/java/com/hbm/sound/AudioDynamic.java @@ -10,14 +10,18 @@ import net.minecraft.util.ResourceLocation; @SideOnly(Side.CLIENT) public class AudioDynamic extends MovingSound { - - public float intendedVolume; + + public float maxVolume = 1; + public float range; + public int keepAlive; + public int timeSinceKA;; + public boolean shouldExpire = false;; protected AudioDynamic(ResourceLocation loc) { super(loc); this.repeat = true; - this.field_147666_i = ISound.AttenuationType.LINEAR; - this.intendedVolume = 10; + this.field_147666_i = ISound.AttenuationType.NONE; + this.range = 10; } public void setPosition(float x, float y, float z) { @@ -34,9 +38,18 @@ public class AudioDynamic extends MovingSound { if(player != null) { f = (float)Math.sqrt(Math.pow(xPosF - player.posX, 2) + Math.pow(yPosF - player.posY, 2) + Math.pow(zPosF - player.posZ, 2)); - volume = func(f, intendedVolume); + volume = func(f); } else { - volume = intendedVolume; + volume = maxVolume; + } + + if(this.shouldExpire) { + + if(this.timeSinceKA > this.keepAlive) { + this.stop(); + } + + this.timeSinceKA++; } } @@ -49,15 +62,28 @@ public class AudioDynamic extends MovingSound { } public void setVolume(float volume) { - this.intendedVolume = volume; + this.volume = volume; + } + + public void setRange(float range) { + this.range = range; + } + + public void setKeepAlive(int keepAlive) { + this.keepAlive = keepAlive; + this.shouldExpire = true; + } + + public void keepAlive() { + this.timeSinceKA = 0; } public void setPitch(float pitch) { this.field_147663_c = pitch; } - public float func(float f, float v) { - return (f / v) * -2 + 2; + public float func(float dist) { + return (dist / range) * -maxVolume + maxVolume; } public boolean isPlaying() { diff --git a/src/main/java/com/hbm/sound/AudioWrapper.java b/src/main/java/com/hbm/sound/AudioWrapper.java index 9c99bf096..e3830d5d8 100644 --- a/src/main/java/com/hbm/sound/AudioWrapper.java +++ b/src/main/java/com/hbm/sound/AudioWrapper.java @@ -1,14 +1,19 @@ package com.hbm.sound; public class AudioWrapper { + + public void setKeepAlive(int keepAlive) { } + public void keepAlive() { } public void updatePosition(float x, float y, float z) { } - + public void updateVolume(float volume) { } + public void updateRange(float range) { } public void updatePitch(float pitch) { } - + public float getVolume() { return 0F; } + public float getRange() { return 0F; } public float getPitch() { return 0F; } diff --git a/src/main/java/com/hbm/sound/AudioWrapperClient.java b/src/main/java/com/hbm/sound/AudioWrapperClient.java index 34a72dc06..bc259c1dd 100644 --- a/src/main/java/com/hbm/sound/AudioWrapperClient.java +++ b/src/main/java/com/hbm/sound/AudioWrapperClient.java @@ -14,6 +14,18 @@ public class AudioWrapperClient extends AudioWrapper { sound = new AudioDynamic(source); } + @Override + public void setKeepAlive(int keepAlive) { + if(sound != null) + sound.setKeepAlive(keepAlive); + } + + @Override + public void keepAlive() { + if(sound != null) + sound.keepAlive(); + } + @Override public void updatePosition(float x, float y, float z) { if(sound != null) @@ -26,6 +38,12 @@ public class AudioWrapperClient extends AudioWrapper { sound.setVolume(volume); } + @Override + public void updateRange(float range) { + if(sound != null) + sound.setRange(range); + } + @Override public void updatePitch(float pitch) { if(sound != null) diff --git a/src/main/java/com/hbm/sound/AudioWrapperClientStartStop.java b/src/main/java/com/hbm/sound/AudioWrapperClientStartStop.java index 663981b9e..6df22c652 100644 --- a/src/main/java/com/hbm/sound/AudioWrapperClientStartStop.java +++ b/src/main/java/com/hbm/sound/AudioWrapperClientStartStop.java @@ -3,6 +3,7 @@ package com.hbm.sound; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; +/** Only used for doors */ public class AudioWrapperClientStartStop extends AudioWrapperClient { public String start; diff --git a/src/main/java/com/hbm/tileentity/TileEntityLoadedBase.java b/src/main/java/com/hbm/tileentity/TileEntityLoadedBase.java index baec2d8d4..f2ab912aa 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityLoadedBase.java +++ b/src/main/java/com/hbm/tileentity/TileEntityLoadedBase.java @@ -1,5 +1,7 @@ package com.hbm.tileentity; +import com.hbm.sound.AudioWrapper; + import api.hbm.energy.ILoadedTile; import net.minecraft.tileentity.TileEntity; @@ -17,4 +19,13 @@ public class TileEntityLoadedBase extends TileEntity implements ILoadedTile { super.onChunkUnload(); this.isLoaded = false; } + + public AudioWrapper createAudioLoop() { return null; } + + public AudioWrapper rebootAudio(AudioWrapper wrapper) { + wrapper.stopSound(); + AudioWrapper audio = createAudioLoop(); + audio.startSound(); + return audio; + } } diff --git a/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java b/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java index 5c5c26d5d..d71c1ab66 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java +++ b/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java @@ -4,7 +4,6 @@ import com.hbm.blocks.ModBlocks; import com.hbm.packet.AuxGaugePacket; import com.hbm.packet.NBTPacket; import com.hbm.packet.PacketDispatcher; -import com.hbm.sound.AudioWrapper; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.entity.player.EntityPlayer; @@ -222,13 +221,4 @@ public abstract class TileEntityMachineBase extends TileEntityLoadedBase impleme return Math.max(volume, 0); } - - public AudioWrapper createAudioLoop() { return null; } - - public AudioWrapper rebootAudio(AudioWrapper wrapper) { - wrapper.stopSound(); - AudioWrapper audio = createAudioLoop(); - audio.startSound(); - return audio; - } } diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 96cdeb446..824ecb205 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -7,6 +7,7 @@ import java.util.List; import com.hbm.blocks.bomb.BlockVolcano.TileEntityVolcanoCore; import com.hbm.blocks.generic.BlockBedrockOreTE.TileEntityBedrockOre; import com.hbm.blocks.generic.BlockBobble.TileEntityBobble; +import com.hbm.blocks.generic.BlockDynamicSlag.TileEntitySlag; import com.hbm.blocks.generic.BlockEmitter.TileEntityEmitter; import com.hbm.blocks.generic.BlockLoot.TileEntityLoot; import com.hbm.blocks.generic.BlockMotherOfAllOres.TileEntityRandomOre; @@ -268,6 +269,8 @@ public class TileMappings { put(TileEntityFoundryChannel.class, "tileentity_foundry_channel"); put(TileEntityFoundryTank.class, "tileentity_foundry_tank"); put(TileEntityFoundryOutlet.class, "tileentity_foundry_outlet"); + put(TileEntityFoundrySlagtap.class, "tileentity_foundry_slagtap"); + put(TileEntitySlag.class, "tileentity_foundry_slag"); put(TileEntityMachineAutocrafter.class, "tileentity_autocrafter"); put(TileEntityDiFurnaceRTG.class, "tileentity_rtg_difurnace"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFoundrySlagtap.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFoundrySlagtap.java new file mode 100644 index 000000000..ef09f7257 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFoundrySlagtap.java @@ -0,0 +1,115 @@ +package com.hbm.tileentity.machine; + +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.generic.BlockDynamicSlag.TileEntitySlag; +import com.hbm.inventory.material.Mats.MaterialStack; +import com.hbm.packet.AuxParticlePacketNT; +import com.hbm.packet.PacketDispatcher; +import com.hbm.util.Compat; + +import api.hbm.block.ICrucibleAcceptor; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.block.Block; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityFoundrySlagtap extends TileEntity implements ICrucibleAcceptor { + + @Override + public boolean canAcceptPartialFlow(World world, int x, int y, int z, ForgeDirection side, MaterialStack stack) { + + Vec3 start = Vec3.createVectorHelper(x + 0.5, y - 0.125, z + 0.5); + Vec3 end = Vec3.createVectorHelper(x + 0.5, y + 0.125 - 15, z + 0.5); + + MovingObjectPosition mop = world.func_147447_a(start, end, true, true, true); + + if(mop == null || mop.typeOfHit != mop.typeOfHit.BLOCK) { + return false; + } + + return true; + } + + @Override + public MaterialStack flow(World world, int x, int y, int z, ForgeDirection side, MaterialStack stack) { + + if(stack == null || stack.material == null || stack.amount <= 0) { + return null; + } + + Vec3 start = Vec3.createVectorHelper(x + 0.5, y - 0.125, z + 0.5); + Vec3 end = Vec3.createVectorHelper(x + 0.5, y + 0.125 - 15, z + 0.5); + + MovingObjectPosition mop = world.func_147447_a(start, end, true, true, true); + + if(mop == null || mop.typeOfHit != mop.typeOfHit.BLOCK) { + return null; + } + + Block hit = world.getBlock(mop.blockX, mop.blockY, mop.blockZ); + Block above = world.getBlock(mop.blockX, mop.blockY + 1, mop.blockZ); + + boolean didFlow = false; + + if(hit == ModBlocks.slag) { + TileEntitySlag tile = (TileEntitySlag) Compat.getTileStandard(world, mop.blockX, mop.blockY, mop.blockZ); + if(tile.mat == stack.material) { + int transfer = Math.min(tile.maxAmount - tile.amount, stack.amount); + tile.amount += transfer; + stack.amount -= transfer; + didFlow = didFlow || transfer > 0; + world.markBlockForUpdate(mop.blockX, mop.blockY, mop.blockZ); + world.scheduleBlockUpdate(mop.blockX, mop.blockY, mop.blockZ, ModBlocks.slag, 1); + } + } else if(hit.isReplaceable(world, mop.blockX, mop.blockY, mop.blockZ)) { + world.setBlock(mop.blockX, mop.blockY, mop.blockZ, ModBlocks.slag); + TileEntitySlag tile = (TileEntitySlag) Compat.getTileStandard(world, mop.blockX, mop.blockY, mop.blockZ); + tile.mat = stack.material; + int transfer = Math.min(tile.maxAmount, stack.amount); + tile.amount += transfer; + stack.amount -= transfer; + didFlow = didFlow || transfer > 0; + world.markBlockForUpdate(mop.blockX, mop.blockY, mop.blockZ); + world.scheduleBlockUpdate(mop.blockX, mop.blockY, mop.blockZ, ModBlocks.slag, 1); + } + + if(stack.amount > 0 && above.isReplaceable(world, mop.blockX, mop.blockY + 1, mop.blockZ)) { + world.setBlock(mop.blockX, mop.blockY + 1, mop.blockZ, ModBlocks.slag); + TileEntitySlag tile = (TileEntitySlag) Compat.getTileStandard(world, mop.blockX, mop.blockY + 1, mop.blockZ); + tile.mat = stack.material; + int transfer = Math.min(tile.maxAmount, stack.amount); + tile.amount += transfer; + stack.amount -= transfer; + didFlow = didFlow || transfer > 0; + world.markBlockForUpdate(mop.blockX, mop.blockY + 1, mop.blockZ); + world.scheduleBlockUpdate(mop.blockX, mop.blockY + 1, mop.blockZ, ModBlocks.slag, 1); + } + + if(didFlow) { + ForgeDirection dir = side.getOpposite(); + double hitY = mop.blockY; + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "foundry"); + data.setInteger("color", stack.material.moltenColor); + data.setByte("dir", (byte) dir.ordinal()); + data.setFloat("off", 0.375F); + data.setFloat("base", 0F); + data.setFloat("len", Math.max(1F, yCoord - (float) (Math.ceil(hitY)))); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, xCoord + 0.5D - dir.offsetX * 0.125, yCoord + 0.125, zCoord + 0.5D - dir.offsetZ * 0.125), new TargetPoint(worldObj.provider.dimensionId, xCoord + 0.5, yCoord, zCoord + 0.5, 50)); + } + + if(stack.amount <= 0) { + stack = null; + } + + return stack; + } + + @Override public boolean canAcceptPartialPour(World world, int x, int y, int z, double dX, double dY, double dZ, ForgeDirection side, MaterialStack stack) { return false; } + @Override public MaterialStack pour(World world, int x, int y, int z, double dX, double dY, double dZ, ForgeDirection side, MaterialStack stack) { return stack; } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoiler.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoiler.java index c7c98008d..bcda9f18b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoiler.java @@ -20,7 +20,9 @@ import com.hbm.inventory.fluid.trait.FT_Heatable; import com.hbm.inventory.fluid.trait.FT_Heatable.HeatingStep; import com.hbm.inventory.fluid.trait.FT_Heatable.HeatingType; import com.hbm.lib.Library; +import com.hbm.main.MainRegistry; import com.hbm.saveddata.TomSaveData; +import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.IConfigurableMachine; import com.hbm.tileentity.INBTPacketReceiver; import com.hbm.tileentity.TileEntityLoadedBase; @@ -41,8 +43,12 @@ public class TileEntityHeatBoiler extends TileEntityLoadedBase implements IFluid public int heat; public FluidTank[] tanks; public List list = new ArrayList(); + public boolean isOn; public boolean hasExploded = false; + private AudioWrapper audio; + private int audioTime; + /* CONFIGURABLE */ public static int maxHeat = 12_800_000; //the heat required to turn 64k of water into steam public static double diffusion = 0.1D; @@ -76,6 +82,7 @@ public class TileEntityHeatBoiler extends TileEntityLoadedBase implements IFluid data.setInteger("heat", lastHeat); tanks[0].writeToNBT(data, "0"); + this.isOn = false; this.tryConvert(); tanks[1].writeToNBT(data, "1"); @@ -84,9 +91,59 @@ public class TileEntityHeatBoiler extends TileEntityLoadedBase implements IFluid fillFluidInit(tanks[1].getTankType()); } } - + data.setBoolean("exploded", this.hasExploded); + data.setBoolean("isOn", this.isOn); INBTPacketReceiver.networkPack(this, data, 25); + } else { + + if(this.isOn) audioTime = 20; + + if(audioTime > 0) { + + audioTime--; + + if(audio == null) { + audio = createAudioLoop(); + audio.startSound(); + } else if(!audio.isPlaying()) { + audio = rebootAudio(audio); + } + + audio.keepAlive(); + + } else { + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + } + } + + @Override + public AudioWrapper createAudioLoop() { + return MainRegistry.proxy.getLoopedSound("hbm:block.boiler", xCoord, yCoord, zCoord, 0.125F, 10F, 1.0F, 20); + } + + @Override + public void onChunkUnload() { + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + + @Override + public void invalidate() { + + super.invalidate(); + + if(audio != null) { + audio.stopSound(); + audio = null; } } @@ -96,6 +153,7 @@ public class TileEntityHeatBoiler extends TileEntityLoadedBase implements IFluid this.heat = nbt.getInteger("heat"); this.tanks[0].readFromNBT(nbt, "0"); this.tanks[1].readFromNBT(nbt, "1"); + this.isOn = nbt.getBoolean("isOn"); } protected void tryPullHeat() { @@ -159,6 +217,10 @@ public class TileEntityHeatBoiler extends TileEntityLoadedBase implements IFluid worldObj.playSoundEffect(xCoord + 0.5, yCoord + 2, zCoord + 0.5, "hbm:block.boilerGroan", 0.5F, 1.0F); } + if(ops > 0) { + this.isOn = true; + } + if(outputOps == 0 && canExplode) { this.hasExploded = true; BlockDummyable.safeRem = true; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterElectric.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterElectric.java index 7a3dacf54..35569da50 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterElectric.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterElectric.java @@ -1,6 +1,8 @@ package com.hbm.tileentity.machine; import com.hbm.blocks.BlockDummyable; +import com.hbm.main.MainRegistry; +import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.INBTPacketReceiver; import com.hbm.tileentity.TileEntityLoadedBase; @@ -17,7 +19,10 @@ public class TileEntityHeaterElectric extends TileEntityLoadedBase implements IH public long power; public int heatEnergy; + public boolean isOn; protected int setting = 0; + + private AudioWrapper audio; @Override public void updateEntity() { @@ -32,16 +37,64 @@ public class TileEntityHeaterElectric extends TileEntityLoadedBase implements IH this.heatEnergy *= 0.999; this.tryPullHeat(); - + + this.isOn = false; if(setting > 0 && this.power >= this.getConsumption()) { this.power -= this.getConsumption(); this.heatEnergy += getHeatGen(); + this.isOn = true; } NBTTagCompound data = new NBTTagCompound(); data.setByte("s", (byte) this.setting); data.setInteger("h", this.heatEnergy); + data.setBoolean("o", isOn); INBTPacketReceiver.networkPack(this, data, 25); + } else { + + if(isOn) { + + if(audio == null) { + audio = createAudioLoop(); + audio.startSound(); + } else if(!audio.isPlaying()) { + audio = rebootAudio(audio); + } + + audio.keepAlive(); + + } else { + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + } + } + + @Override + public AudioWrapper createAudioLoop() { + return MainRegistry.proxy.getLoopedSound("hbm:block.electricHum", xCoord, yCoord, zCoord, 0.25F, 7.5F, 1.0F, 20); + } + + @Override + public void onChunkUnload() { + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + + @Override + public void invalidate() { + + super.invalidate(); + + if(audio != null) { + audio.stopSound(); + audio = null; } } @@ -49,6 +102,7 @@ public class TileEntityHeaterElectric extends TileEntityLoadedBase implements IH public void networkUnpack(NBTTagCompound nbt) { this.setting = nbt.getByte("s"); this.heatEnergy = nbt.getInteger("h"); + this.isOn = nbt.getBoolean("o"); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java index 826bf7ffd..33c973b89 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java @@ -256,7 +256,7 @@ public class TileEntityMachineAssembler extends TileEntityMachineBase implements @Override public AudioWrapper createAudioLoop() { - return MainRegistry.proxy.getLoopedSound("hbm:block.assemblerOperate", xCoord, yCoord, zCoord, 1.0F, 1.0F); + return MainRegistry.proxy.getLoopedSound("hbm:block.assemblerOperate", xCoord, yCoord, zCoord, 1.0F, 10F, 1.0F); } private void updateConnections() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java index b35ad6c76..8add21027 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java @@ -223,15 +223,17 @@ public class TileEntityMachineCentrifuge extends TileEntityMachineBase implement } } } - + + @Override public void networkUnpack(NBTTagCompound data) { this.power = data.getLong("power"); this.progress = data.getInteger("progress"); this.isProgressing = data.getBoolean("isProgressing"); } - + + @Override public AudioWrapper createAudioLoop() { - return MainRegistry.proxy.getLoopedSound("hbm:block.centrifugeOperate", xCoord, yCoord, zCoord, 2.0F, 1.0F); + return MainRegistry.proxy.getLoopedSound("hbm:block.centrifugeOperate", xCoord, yCoord, zCoord, 1.0F, 10F, 1.0F); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java index b40be0fdc..9aea57727 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java @@ -93,8 +93,8 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements this.isProgressing = false; this.power = Library.chargeTEFromItems(slots, 0, power, maxPower); - if(!tanks[0].loadTank(17, 19, slots)) tanks[0].unloadTank(17, 19, slots); - if(!tanks[1].loadTank(18, 20, slots)) tanks[1].unloadTank(18, 20, slots); + if(!tanks[0].loadTank(17, 19, slots) && (slots[17] == null || slots[17].getItem() != ModItems.fluid_barrel_infinite)) tanks[0].unloadTank(17, 19, slots); + if(!tanks[1].loadTank(18, 20, slots) && (slots[18] == null || slots[18].getItem() != ModItems.fluid_barrel_infinite)) tanks[1].unloadTank(18, 20, slots); tanks[2].unloadTank(9, 11, slots); tanks[3].unloadTank(10, 12, slots); @@ -162,7 +162,7 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements worldObj.spawnParticle("cloud", x, y, z, 0.0, 0.1, 0.0); } - float volume = this.getVolume(2); + float volume = 1;//this.getVolume(2); if(isProgressing && volume > 0) { @@ -187,7 +187,7 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements @Override public AudioWrapper createAudioLoop() { - return MainRegistry.proxy.getLoopedSound("hbm:block.chemplantOperate", xCoord, yCoord, zCoord, 1.0F, 1.0F); + return MainRegistry.proxy.getLoopedSound("hbm:block.chemplantOperate", xCoord, yCoord, zCoord, 1.0F, 10F, 1.0F); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java index 592854660..18d48904a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java @@ -157,7 +157,7 @@ public class TileEntityMachineCombustionEngine extends TileEntityMachineBase imp } public AudioWrapper createAudioLoop() { - return MainRegistry.proxy.getLoopedSound("hbm:block.igeneratorOperate", xCoord, yCoord, zCoord, 2.0F, 1.0F); + return MainRegistry.proxy.getLoopedSound("hbm:block.igeneratorOperate", xCoord, yCoord, zCoord, 1.0F, 10F, 1.0F); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java index d6e7d9e1a..12bdd43ec 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java @@ -196,7 +196,7 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntityMachineB } public AudioWrapper createAudioLoop() { - return MainRegistry.proxy.getLoopedSound("hbm:weapon.tauChargeLoop", xCoord, yCoord, zCoord, 1.0F, 1.0F); + return MainRegistry.proxy.getLoopedSound("hbm:weapon.tauChargeLoop", xCoord, yCoord, zCoord, 1.0F, 10F, 1.0F); } private void updateConnections() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java index e2b64dde5..419664383 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java @@ -170,12 +170,12 @@ public class TileEntityMachineTurbineGas extends TileEntityMachineBase implement if(audio == null) { //if there is no sound playing, start it - audio = MainRegistry.proxy.getLoopedSound("hbm:block.turbinegasRunning", xCoord, yCoord, zCoord, 1.0F, 1.0F); + audio = MainRegistry.proxy.getLoopedSound("hbm:block.turbinegasRunning", xCoord, yCoord, zCoord, 1.0F, 20F, 1.0F); audio.startSound(); } else if(!audio.isPlaying()) { audio.stopSound(); - audio = MainRegistry.proxy.getLoopedSound("hbm:block.turbinegasRunning", xCoord, yCoord, zCoord, 1.0F, 1.0F); + audio = MainRegistry.proxy.getLoopedSound("hbm:block.turbinegasRunning", xCoord, yCoord, zCoord, 1.0F, 20F, 1.0F); audio.startSound(); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java index bd87b519c..942732fa1 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java @@ -382,7 +382,7 @@ public class TileEntityMachineTurbofan extends TileEntityMachineBase implements } public AudioWrapper createAudioLoop() { - return MainRegistry.proxy.getLoopedSound("hbm:block.turbofanOperate", xCoord, yCoord, zCoord, 5.0F, 1.0F); + return MainRegistry.proxy.getLoopedSound("hbm:block.turbofanOperate", xCoord, yCoord, zCoord, 1.0F, 50F, 1.0F, 20); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java b/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java index 20204ca0d..6f85b34fd 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java @@ -171,7 +171,7 @@ public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements IS @Override public AudioWrapper createAudioLoop() { - return MainRegistry.proxy.getLoopedSound("hbm:block.soyuzReady", xCoord, yCoord, zCoord, 1.0F, 1.0F); + return MainRegistry.proxy.getLoopedSound("hbm:block.soyuzReady", xCoord, yCoord, zCoord, 2.0F, 100F, 1.0F); } public void onChunkUnload() { diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java index 8cac21820..ee2d7b79a 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java @@ -24,6 +24,8 @@ import com.hbm.inventory.gui.GUIMachineRefinery; import com.hbm.inventory.recipes.RefineryRecipes; import com.hbm.items.ModItems; import com.hbm.lib.Library; +import com.hbm.main.MainRegistry; +import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IOverpressurable; import com.hbm.tileentity.IPersistentNBT; @@ -65,6 +67,10 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements public boolean hasExploded = false; public boolean onFire = false; public Explosion lastExplosion = null; + + private AudioWrapper audio; + private int audioTime; + public boolean isOn; private static final int[] slot_access = new int[] {11}; @@ -138,6 +144,8 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements if(!worldObj.isRemote) { + this.isOn = false; + if(this.getBlockMetadata() < 12) { ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()).getRotation(ForgeDirection.DOWN); worldObj.removeTileEntity(xCoord, yCoord, zCoord); @@ -201,7 +209,57 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements for(int i = 0; i < 5; i++) tanks[i].writeToNBT(data, "" + i); data.setBoolean("exploded", hasExploded); data.setBoolean("onFire", onFire); + data.setBoolean("isOn", this.isOn); this.networkPack(data, 150); + } else { + + if(this.isOn) audioTime = 20; + + if(audioTime > 0) { + + audioTime--; + + if(audio == null) { + audio = createAudioLoop(); + audio.startSound(); + } else if(!audio.isPlaying()) { + audio = rebootAudio(audio); + } + + audio.keepAlive(); + + } else { + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + } + } + + @Override + public AudioWrapper createAudioLoop() { + return MainRegistry.proxy.getLoopedSound("hbm:block.boiler", xCoord, yCoord, zCoord, 0.25F, 15F, 1.0F, 20); + } + + @Override + public void onChunkUnload() { + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + + @Override + public void invalidate() { + + super.invalidate(); + + if(audio != null) { + audio.stopSound(); + audio = null; } } @@ -211,6 +269,7 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements for(int i = 0; i < 5; i++) tanks[i].readFromNBT(nbt, "" + i); this.hasExploded = nbt.getBoolean("exploded"); this.onFire = nbt.getBoolean("onFire"); + this.isOn = nbt.getBoolean("isOn"); } private void refine() { @@ -233,6 +292,7 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements } } + this.isOn = true; tanks[0].setFill(tanks[0].getFill() - 100); for(int i = 0; i < stacks.length; i++) diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineVacuumDistill.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineVacuumDistill.java index 81ef2baa8..bc2ba6469 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineVacuumDistill.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineVacuumDistill.java @@ -7,6 +7,8 @@ import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIMachineVacuumDistill; import com.hbm.inventory.recipes.RefineryRecipes; import com.hbm.lib.Library; +import com.hbm.main.MainRegistry; +import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.TileEntityMachineBase; @@ -30,6 +32,10 @@ public class TileEntityMachineVacuumDistill extends TileEntityMachineBase implem public static final long maxPower = 1_000_000; public FluidTank[] tanks; + + private AudioWrapper audio; + private int audioTime; + public boolean isOn; public TileEntityMachineVacuumDistill() { super(11); @@ -52,6 +58,8 @@ public class TileEntityMachineVacuumDistill extends TileEntityMachineBase implem if(!worldObj.isRemote) { + this.isOn = false; + this.updateConnections(); power = Library.chargeTEFromItems(slots, 0, power, maxPower); tanks[0].loadTank(1, 2, slots); @@ -73,14 +81,65 @@ public class TileEntityMachineVacuumDistill extends TileEntityMachineBase implem NBTTagCompound data = new NBTTagCompound(); data.setLong("power", this.power); + data.setBoolean("isOn", this.isOn); for(int i = 0; i < 5; i++) tanks[i].writeToNBT(data, "" + i); this.networkPack(data, 150); + } else { + + if(this.isOn) audioTime = 20; + + if(audioTime > 0) { + + audioTime--; + + if(audio == null) { + audio = createAudioLoop(); + audio.startSound(); + } else if(!audio.isPlaying()) { + audio = rebootAudio(audio); + } + + audio.keepAlive(); + + } else { + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + } + } + + @Override + public AudioWrapper createAudioLoop() { + return MainRegistry.proxy.getLoopedSound("hbm:block.boiler", xCoord, yCoord, zCoord, 0.25F, 15F, 1.0F, 20); + } + + @Override + public void onChunkUnload() { + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + + @Override + public void invalidate() { + + super.invalidate(); + + if(audio != null) { + audio.stopSound(); + audio = null; } } @Override public void networkUnpack(NBTTagCompound nbt) { this.power = nbt.getLong("power"); + this.isOn = nbt.getBoolean("isOn"); for(int i = 0; i < 5; i++) tanks[i].readFromNBT(nbt, "" + i); } @@ -92,7 +151,8 @@ public class TileEntityMachineVacuumDistill extends TileEntityMachineBase implem if(tanks[2].getFill() + RefineryRecipes.vac_frac_reform > tanks[2].getMaxFill()) return; if(tanks[3].getFill() + RefineryRecipes.vac_frac_light > tanks[3].getMaxFill()) return; if(tanks[4].getFill() + RefineryRecipes.vac_frac_sour > tanks[4].getMaxFill()) return; - + + this.isOn = true; power -= 10_000; tanks[0].setFill(tanks[0].getFill() - 100); tanks[1].setFill(tanks[1].getFill() + RefineryRecipes.vac_frac_heavy); diff --git a/src/main/java/com/hbm/util/Compat.java b/src/main/java/com/hbm/util/Compat.java index ff7da1c9d..3a8a4a9a6 100644 --- a/src/main/java/com/hbm/util/Compat.java +++ b/src/main/java/com/hbm/util/Compat.java @@ -100,24 +100,25 @@ public class Compat { public static List scrapeItemFromME(ItemStack meDrive) { List stacks = new ArrayList(); - if(meDrive != null && meDrive.hasTagCompound()) { - NBTTagCompound nbt = meDrive.getTagCompound(); - int types = nbt.getShort("it"); //ITEM_TYPE_TAG - - for(int i = 0; i < types; i++) { - NBTBase stackTag = nbt.getTag("#" + i); + try { + if(meDrive != null && meDrive.hasTagCompound()) { + NBTTagCompound nbt = meDrive.getTagCompound(); + int types = nbt.getShort("it"); //ITEM_TYPE_TAG - if(stackTag instanceof NBTTagCompound) { - NBTTagCompound compound = (NBTTagCompound) stackTag; - ItemStack stack = ItemStack.loadItemStackFromNBT(compound); + for(int i = 0; i < types; i++) { + NBTBase stackTag = nbt.getTag("#" + i); - int count = nbt.getInteger("@" + i); - stack.stackSize = count; - - stacks.add(stack); + if(stackTag instanceof NBTTagCompound) { + NBTTagCompound compound = (NBTTagCompound) stackTag; + ItemStack stack = ItemStack.loadItemStackFromNBT(compound); + + int count = nbt.getInteger("@" + i); + stack.stackSize = count; + stacks.add(stack); + } } } - } + } catch(Exception ex) { } return stacks; } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 1bc1639b7..4a9c5faf2 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -3590,22 +3590,28 @@ tile.concrete_brick_slab.brick_concrete_broken.name=Rissige Betonziegelstufe tile.concrete_brick_slab.brick_concrete_cracked.name=Gebrochene Betonziegelstufe tile.concrete_brick_slab.brick_concrete_mossy.name=Bemooste Betonziegelstufe tile.concrete_brick_slab.brick_ducrete.name=Ducreteziegelstufe -tile.concrete_colored.black.name=Schwarzer Beton -tile.concrete_colored.blue.name=Blauer Beton -tile.concrete_colored.brown.name=Brauner Beton -tile.concrete_colored.cyan.name=Türkiser Beton -tile.concrete_colored.gray.name=Grauer Beton -tile.concrete_colored.green.name=Grüner Beton -tile.concrete_colored.lightBlue.name=Hellblauer Beton -tile.concrete_colored.lime.name=Hellgrüner Beton -tile.concrete_colored.magenta.name=Magenta Beton -tile.concrete_colored.orange.name=Oranger Beton -tile.concrete_colored.pink.name=Rosa Beton -tile.concrete_colored.purple.name=Lila Beton -tile.concrete_colored.red.name=Roter Beton +tile.concrete_colored.black.name=Schwarzer Beton +tile.concrete_colored.blue.name=Blauer Beton +tile.concrete_colored.brown.name=Brauner Beton +tile.concrete_colored.cyan.name=Türkiser Beton +tile.concrete_colored.gray.name=Grauer Beton +tile.concrete_colored.green.name=Grüner Beton +tile.concrete_colored.lightBlue.name=Hellblauer Beton +tile.concrete_colored.lime.name=Hellgrüner Beton +tile.concrete_colored.magenta.name=Magenta Beton +tile.concrete_colored.orange.name=Oranger Beton +tile.concrete_colored.pink.name=Rosa Beton +tile.concrete_colored.purple.name=Lila Beton +tile.concrete_colored.red.name=Roter Beton tile.concrete_colored.silver.name=Hellgrauer Beton -tile.concrete_colored.white.name=Weißer Beton -tile.concrete_colored.yellow.name=Gelber Beton +tile.concrete_colored.white.name=Weißer Beton +tile.concrete_colored.yellow.name=Gelber Beton +tile.concrete_colored_ext.hazard.name=Builder's Choice Concrete - Gefahrenstreifen +tile.concrete_colored_ext.indigo.name=Builder's Choice Concrete - Tiefes Indigo +tile.concrete_colored_ext.machine.name=Builder's Choice Concrete - Industrieller Ton +tile.concrete_colored_ext.machine_stripe.name=Builder's Choice Concrete - Industrieller Streifen +tile.concrete_colored_ext.pink.name=Builder's Choice Concrete - Männliches Pink +tile.concrete_colored_ext.purple.name=Builder's Choice Concrete - Mysteriöses Lila tile.concrete_pillar.name=Stahlbetonsäule tile.concrete_slab.concrete.name=Betonfliesenstufe tile.concrete_slab.concrete_asbestos.name=Asbestbetonstufe @@ -3745,6 +3751,7 @@ tile.foundry_channel.name=Gusskanal tile.foundry_tank.name=Gießerei-Lagerbecken tile.foundry_mold.name=Seichtes Gussbecken tile.foundry_outlet.name=Ausguss +tile.foundry_slagtap.name=Schlackeausguss tile.fraction_spacer.name=Fraktionierungsturm-Teiler tile.frozen_dirt.name=Gefrorene Erde tile.frozen_grass.name=Gefrorenes Gras diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 994b22798..b179aee53 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -4418,6 +4418,12 @@ tile.concrete_colored.red.name=Red Concrete tile.concrete_colored.silver.name=Light Gray Concrete tile.concrete_colored.white.name=White Concrete tile.concrete_colored.yellow.name=Yellow Concrete +tile.concrete_colored_ext.hazard.name=Builder's Choice Concrete - Hazard Stripe +tile.concrete_colored_ext.indigo.name=Builder's Choice Concrete - Deep Indigo +tile.concrete_colored_ext.machine.name=Builder's Choice Concrete - Industrial Tinge +tile.concrete_colored_ext.machine_stripe.name=Builder's Choice Concrete - Industrial Stripe +tile.concrete_colored_ext.pink.name=Builder's Choice Concrete - Manly Pink +tile.concrete_colored_ext.purple.name=Builder's Choice Concrete - Mysterious Purple tile.concrete_pillar.name=Rebar Reinforced Concrete Pillar tile.concrete_slab.concrete.name=Concrete Tile Slab tile.concrete_slab.concrete_asbestos.name=Asbestos Concrete Slab @@ -4562,6 +4568,7 @@ tile.foundry_channel.name=Foundry Channel tile.foundry_tank.name=Foundry Storage Basin tile.foundry_mold.name=Shallow Foundry Basin tile.foundry_outlet.name=Foundry Outlet +tile.foundry_slagtap.name=Foundry Slag Outlet tile.fraction_spacer.name=Fractioning Tower Separator tile.frozen_dirt.name=Frozen Dirt tile.frozen_grass.name=Frozen Grass diff --git a/src/main/resources/assets/hbm/models/blocks/rail_narrow.obj b/src/main/resources/assets/hbm/models/blocks/rail_narrow.obj new file mode 100644 index 000000000..ae0ae0946 --- /dev/null +++ b/src/main/resources/assets/hbm/models/blocks/rail_narrow.obj @@ -0,0 +1,314 @@ +# Blender v2.79 (sub 0) OBJ File: 'rail_narrow.blend' +# www.blender.org +o Plane +v 0.500000 0.125000 0.375000 +v -0.500000 0.125000 0.375000 +v -0.500000 0.125000 -0.375000 +v 0.500000 0.125000 -0.375000 +v -0.500000 0.000000 0.375000 +v 0.500000 0.000000 0.375000 +v -0.500000 0.000000 -0.437500 +v 0.500000 0.000000 -0.437500 +v -0.500000 0.000000 0.437500 +v 0.500000 0.000000 0.437500 +v -0.500000 0.000000 -0.375000 +v 0.500000 0.000000 -0.375000 +v -0.500000 0.125000 0.437500 +v 0.500000 0.125000 0.437500 +v 0.500000 0.125000 -0.437500 +v -0.500000 0.125000 -0.437500 +v 0.187500 0.000000 0.375000 +v 0.312500 0.000000 0.375000 +v 0.187500 0.000000 -0.375000 +v 0.312500 0.000000 -0.375000 +v 0.187500 0.062500 -0.375000 +v 0.187500 0.062500 0.375000 +v 0.312500 0.062500 0.375000 +v 0.312500 0.062500 -0.375000 +v 0.187500 0.000000 -0.437500 +v 0.312500 0.000000 -0.437500 +v 0.187500 0.062500 -0.437500 +v 0.312500 0.062500 -0.437500 +v 0.187500 0.000000 -0.500000 +v 0.312500 0.000000 -0.500000 +v 0.187500 0.062500 -0.500000 +v 0.312500 0.062500 -0.500000 +v 0.187500 0.000000 0.437500 +v 0.312500 0.000000 0.437500 +v 0.187500 0.062500 0.437500 +v 0.312500 0.062500 0.437500 +v 0.187500 0.000000 0.500000 +v 0.312500 0.000000 0.500000 +v 0.187500 0.062500 0.500000 +v 0.312500 0.062500 0.500000 +v -0.312500 0.000000 0.375000 +v -0.187500 0.000000 0.375000 +v -0.312500 0.000000 -0.375000 +v -0.187500 0.000000 -0.375000 +v -0.312500 0.062500 -0.375000 +v -0.312500 0.062500 0.375000 +v -0.187500 0.062500 0.375000 +v -0.187500 0.062500 -0.375000 +v -0.312500 0.000000 -0.437500 +v -0.187500 0.000000 -0.437500 +v -0.312500 0.062500 -0.437500 +v -0.187500 0.062500 -0.437500 +v -0.312500 0.000000 -0.500000 +v -0.187500 0.000000 -0.500000 +v -0.312500 0.062500 -0.500000 +v -0.187500 0.062500 -0.500000 +v -0.312500 0.000000 0.437500 +v -0.187500 0.000000 0.437500 +v -0.312500 0.062500 0.437500 +v -0.187500 0.062500 0.437500 +v -0.312500 0.000000 0.500000 +v -0.187500 0.000000 0.500000 +v -0.312500 0.062500 0.500000 +v -0.187500 0.062500 0.500000 +vt 0.125000 0.000000 +vt 0.062500 1.000000 +vt 0.062500 0.000000 +vt 0.937500 1.000000 +vt 0.875000 0.000000 +vt 0.937500 0.000000 +vt 0.062500 1.000000 +vt 0.125000 0.000000 +vt 0.125000 1.000000 +vt 0.875000 0.000000 +vt 0.937500 1.000000 +vt 0.875000 1.000000 +vt 0.125000 -0.000000 +vt 0.062500 0.125000 +vt 0.062500 -0.000000 +vt 1.000000 0.000000 +vt -0.000000 0.125000 +vt -0.000000 0.000000 +vt 1.000000 0.000000 +vt -0.000000 0.125000 +vt -0.000000 0.000000 +vt 0.937500 -0.000000 +vt 0.875000 0.125000 +vt 0.875000 -0.000000 +vt 0.937500 0.000000 +vt 0.875000 0.125000 +vt 0.875000 0.000000 +vt 1.000000 -0.000000 +vt -0.000000 0.125000 +vt -0.000000 -0.000000 +vt 1.000000 -0.000000 +vt -0.000000 0.125000 +vt -0.000000 -0.000000 +vt 0.125000 0.000000 +vt 0.062500 0.125000 +vt 0.062500 0.000000 +vt 0.875000 0.687500 +vt 0.125000 0.812500 +vt 0.125000 0.687500 +vt 0.875000 0.812500 +vt 0.125000 0.687500 +vt 0.875000 0.687500 +vt 0.875000 0.000000 +vt 0.125000 0.062500 +vt 0.125000 0.000000 +vt 0.875000 -0.000000 +vt 0.125000 0.062500 +vt 0.125000 -0.000000 +vt 0.062500 0.812500 +vt 0.000000 0.687500 +vt 0.062500 0.687500 +vt 0.062500 0.062500 +vt -0.000000 -0.000000 +vt 0.062500 -0.000000 +vt 0.937500 0.000000 +vt 1.000000 0.062500 +vt 0.937500 0.062500 +vt 1.000000 0.687500 +vt 0.937500 0.812500 +vt 0.937500 0.687500 +vt 0.312500 0.062500 +vt 0.187500 -0.000000 +vt 0.312500 -0.000000 +vt 0.062500 0.062500 +vt 0.000000 0.000000 +vt 0.062500 0.000000 +vt 0.000000 0.812500 +vt 0.062500 0.687500 +vt 0.062500 0.812500 +vt 0.937500 -0.000000 +vt 1.000000 0.062500 +vt 0.937500 0.062500 +vt 0.937500 0.687500 +vt 1.000000 0.812500 +vt 0.937500 0.812500 +vt 0.812500 0.062500 +vt 0.687500 0.000000 +vt 0.812500 0.000000 +vt 0.875000 0.187500 +vt 0.125000 0.312500 +vt 0.125000 0.187500 +vt 0.875000 0.312500 +vt 0.125000 0.187500 +vt 0.875000 0.187500 +vt 0.875000 0.000000 +vt 0.125000 0.062500 +vt 0.125000 0.000000 +vt 0.875000 -0.000000 +vt 0.125000 0.062500 +vt 0.125000 -0.000000 +vt 0.062500 0.312500 +vt 0.000000 0.187500 +vt 0.062500 0.187500 +vt 0.062500 0.062500 +vt -0.000000 -0.000000 +vt 0.062500 -0.000000 +vt 0.937500 0.000000 +vt 1.000000 0.062500 +vt 0.937500 0.062500 +vt 1.000000 0.187500 +vt 0.937500 0.312500 +vt 0.937500 0.187500 +vt 0.812500 0.062500 +vt 0.687500 -0.000000 +vt 0.812500 -0.000000 +vt 0.062500 0.062500 +vt 0.000000 0.000000 +vt 0.062500 0.000000 +vt 0.000000 0.312500 +vt 0.062500 0.187500 +vt 0.062500 0.312500 +vt 0.937500 -0.000000 +vt 1.000000 0.062500 +vt 0.937500 0.062500 +vt 0.937500 0.187500 +vt 1.000000 0.312500 +vt 0.937500 0.312500 +vt 0.312500 0.062500 +vt 0.187500 0.000000 +vt 0.312500 0.000000 +vt 0.125000 1.000000 +vt 0.875000 1.000000 +vt 0.062500 0.000000 +vt 0.937500 0.000000 +vt 0.125000 0.125000 +vt 1.000000 0.125000 +vt 1.000000 0.125000 +vt 0.937500 0.125000 +vt 0.937500 0.125000 +vt 1.000000 0.125000 +vt 1.000000 0.125000 +vt 0.125000 0.125000 +vt 0.875000 0.812500 +vt 0.125000 0.812500 +vt 0.875000 0.062500 +vt 0.875000 0.062500 +vt 0.000000 0.812500 +vt -0.000000 0.062500 +vt 1.000000 0.000000 +vt 1.000000 0.812500 +vt 0.187500 0.062500 +vt 0.000000 0.062500 +vt 0.000000 0.687500 +vt 1.000000 -0.000000 +vt 1.000000 0.687500 +vt 0.687500 0.062500 +vt 0.875000 0.312500 +vt 0.125000 0.312500 +vt 0.875000 0.062500 +vt 0.875000 0.062500 +vt 0.000000 0.312500 +vt -0.000000 0.062500 +vt 1.000000 0.000000 +vt 1.000000 0.312500 +vt 0.687500 0.062500 +vt 0.000000 0.062500 +vt 0.000000 0.187500 +vt 1.000000 -0.000000 +vt 1.000000 0.187500 +vt 0.187500 0.062500 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +s off +f 3/1/1 15/2/1 16/3/1 +f 8/4/2 11/5/2 7/6/2 +f 10/7/2 5/8/2 6/9/2 +f 2/10/1 14/11/1 1/12/1 +f 11/13/3 16/14/3 7/15/3 +f 10/16/4 13/17/4 9/18/4 +f 12/19/4 3/20/4 11/21/4 +f 9/22/3 2/23/3 5/24/3 +f 8/25/5 4/26/5 12/27/5 +f 7/28/6 15/29/6 8/30/6 +f 5/31/6 1/32/6 6/33/6 +f 6/34/5 14/35/5 10/36/5 +f 19/37/2 18/38/2 17/39/2 +f 23/40/1 21/41/1 22/42/1 +f 20/43/5 23/44/5 18/45/5 +f 17/46/3 21/47/3 19/48/3 +f 28/49/1 31/50/1 27/51/1 +f 27/52/3 29/53/3 25/54/3 +f 26/55/5 32/56/5 28/57/5 +f 29/58/2 26/59/2 25/60/2 +f 31/61/6 30/62/6 29/63/6 +f 36/64/5 38/65/5 34/66/5 +f 38/67/2 33/68/2 34/69/2 +f 33/70/3 39/71/3 35/72/3 +f 35/73/1 40/74/1 36/75/1 +f 40/76/4 37/77/4 38/78/4 +f 43/79/2 42/80/2 41/81/2 +f 47/82/1 45/83/1 46/84/1 +f 44/85/5 47/86/5 42/87/5 +f 41/88/3 45/89/3 43/90/3 +f 52/91/1 55/92/1 51/93/1 +f 51/94/3 53/95/3 49/96/3 +f 50/97/5 56/98/5 52/99/5 +f 53/100/2 50/101/2 49/102/2 +f 55/103/6 54/104/6 53/105/6 +f 60/106/5 62/107/5 58/108/5 +f 62/109/2 57/110/2 58/111/2 +f 57/112/3 63/113/3 59/114/3 +f 59/115/1 64/116/1 60/117/1 +f 64/118/4 61/119/4 62/120/4 +f 3/1/1 4/121/1 15/2/1 +f 8/4/2 12/122/2 11/5/2 +f 10/7/2 9/123/2 5/8/2 +f 2/10/1 13/124/1 14/11/1 +f 11/13/3 3/125/3 16/14/3 +f 10/16/4 14/126/4 13/17/4 +f 12/19/4 4/127/4 3/20/4 +f 9/22/3 13/128/3 2/23/3 +f 8/25/5 15/129/5 4/26/5 +f 7/28/6 16/130/6 15/29/6 +f 5/31/6 2/131/6 1/32/6 +f 6/34/5 1/132/5 14/35/5 +f 19/37/2 20/133/2 18/38/2 +f 23/40/1 24/134/1 21/41/1 +f 20/43/5 24/135/5 23/44/5 +f 17/46/3 22/136/3 21/47/3 +f 28/49/1 32/137/1 31/50/1 +f 27/52/3 31/138/3 29/53/3 +f 26/55/5 30/139/5 32/56/5 +f 29/58/2 30/140/2 26/59/2 +f 31/61/6 32/141/6 30/62/6 +f 36/64/5 40/142/5 38/65/5 +f 38/67/2 37/143/2 33/68/2 +f 33/70/3 37/144/3 39/71/3 +f 35/73/1 39/145/1 40/74/1 +f 40/76/4 39/146/4 37/77/4 +f 43/79/2 44/147/2 42/80/2 +f 47/82/1 48/148/1 45/83/1 +f 44/85/5 48/149/5 47/86/5 +f 41/88/3 46/150/3 45/89/3 +f 52/91/1 56/151/1 55/92/1 +f 51/94/3 55/152/3 53/95/3 +f 50/97/5 54/153/5 56/98/5 +f 53/100/2 54/154/2 50/101/2 +f 55/103/6 56/155/6 54/104/6 +f 60/106/5 64/156/5 62/107/5 +f 62/109/2 61/157/2 57/110/2 +f 57/112/3 61/158/3 63/113/3 +f 59/115/1 63/159/1 64/116/1 +f 64/118/4 63/160/4 61/119/4 diff --git a/src/main/resources/assets/hbm/models/blocks/rail_narrow_bend.obj b/src/main/resources/assets/hbm/models/blocks/rail_narrow_bend.obj new file mode 100644 index 000000000..426e32d48 --- /dev/null +++ b/src/main/resources/assets/hbm/models/blocks/rail_narrow_bend.obj @@ -0,0 +1,681 @@ +# Blender v2.79 (sub 0) OBJ File: 'rail_narrow_bend.blend' +# www.blender.org +o Plane +v 0.500000 0.125000 0.375000 +v 0.500000 0.125000 -0.375000 +v 0.500000 0.000000 0.375000 +v 0.500000 0.000000 -0.437500 +v -0.463258 0.125000 -0.342627 +v 0.500000 0.000000 0.437500 +v -0.292554 0.125000 0.515560 +v 0.500000 0.000000 -0.375000 +v -0.451065 0.000000 -0.281328 +v 0.500000 0.125000 0.437500 +v 0.500000 0.125000 -0.437500 +v -0.292554 0.000000 0.515560 +v -3.325402 0.062500 1.279721 +v -3.404702 0.062500 1.376347 +v -3.325402 0.000000 1.279721 +v -3.404702 0.000000 1.376347 +v -3.057147 0.000000 2.669533 +v -2.998222 0.000000 2.559293 +v -3.057147 0.062500 2.669533 +v -2.998222 0.062500 2.559293 +v -0.601330 0.062500 0.654096 +v -0.720948 0.062500 0.690382 +v -0.601330 0.000000 0.654096 +v -0.720948 0.000000 0.690382 +v -0.052285 0.000000 -0.469798 +v 0.072113 0.000000 -0.482049 +v -0.052285 0.062500 -0.469798 +v 0.072113 0.062500 -0.482049 +v -0.891615 0.062500 -0.302844 +v -1.011232 0.062500 -0.266559 +v -0.891615 0.000000 -0.302844 +v -1.011232 0.000000 -0.266559 +v 0.045732 0.000000 0.525387 +v 0.170130 0.000000 0.513135 +v 0.045732 0.062500 0.525387 +v 0.170130 0.062500 0.513135 +v -0.463258 0.000000 -0.342627 +v -0.304748 0.000000 0.454261 +v -0.451065 0.125000 -0.281328 +v -0.304748 0.125000 0.454261 +v -3.605381 0.125000 1.756872 +v -2.877845 0.125000 2.242996 +v -3.553414 0.000000 1.791595 +v -2.877845 0.000000 2.242996 +v -3.605381 0.000000 1.756872 +v -2.929812 0.000000 2.208273 +v -3.553414 0.125000 1.791595 +v -2.929812 0.125000 2.208273 +v -2.243128 0.125000 0.394619 +v -1.757004 0.125000 1.122155 +v -2.208405 0.000000 0.446586 +v -1.757004 0.000000 1.122155 +v -2.243128 0.000000 0.394619 +v -1.791727 0.000000 1.070188 +v -2.208405 0.125000 0.446586 +v -1.791727 0.125000 1.070188 +v -4.342627 0.125000 3.536741 +v -3.484440 0.125000 3.707446 +v -4.281328 0.000000 3.548935 +v -3.484440 0.000000 3.707446 +v -4.342627 0.000000 3.536741 +v -3.545739 0.000000 3.695252 +v -4.281328 0.125000 3.548935 +v -3.545739 0.125000 3.695252 +v 0.500000 0.000000 4.500000 +v -3.625000 0.125000 4.500000 +v -4.375000 0.125000 4.500000 +v -3.625000 0.000000 4.500000 +v -4.437500 0.000000 4.500000 +v -3.562500 0.000000 4.500000 +v -4.375000 0.000000 4.500000 +v -3.562500 0.125000 4.500000 +v -4.437500 0.125000 4.500000 +v -2.416816 0.125000 1.583184 +v -2.947145 0.125000 1.052855 +v -2.416816 0.000000 1.583184 +v -2.991340 0.000000 1.008660 +v -2.372621 0.000000 1.627379 +v -2.947145 0.000000 1.052855 +v -2.372621 0.125000 1.627379 +v -2.991340 0.125000 1.008660 +v -3.311003 0.125000 2.921431 +v -4.003912 0.125000 2.634418 +v -3.311003 0.000000 2.921431 +v -4.061655 0.000000 2.610501 +v -3.253261 0.000000 2.945349 +v -4.003912 0.000000 2.634418 +v -3.253261 0.125000 2.945349 +v -4.061655 0.125000 2.610501 +v -1.078569 0.125000 0.688997 +v -1.365582 0.125000 -0.003912 +v -1.078569 0.000000 0.688997 +v -1.389499 0.000000 -0.061655 +v -1.054651 0.000000 0.746740 +v -1.365582 0.000000 -0.003912 +v -1.054651 0.125000 0.746740 +v -1.389499 0.125000 -0.061655 +v -3.880144 0.062500 2.087896 +v -3.939068 0.062500 2.198136 +v -3.880144 0.000000 2.087896 +v -3.939068 0.000000 2.198136 +v -2.631691 0.000000 2.010740 +v -2.552392 0.000000 1.914114 +v -2.631691 0.062500 2.010740 +v -2.552392 0.062500 1.914114 +v -4.266559 0.062500 2.988768 +v -4.302845 0.062500 3.108386 +v -4.266559 0.000000 2.988768 +v -4.302845 0.000000 3.108386 +v -3.486865 0.000000 4.170131 +v -3.474612 0.000000 4.045732 +v -3.486865 0.062500 4.170131 +v -3.474612 0.062500 4.045732 +v -1.989260 0.062500 1.368309 +v -2.085886 0.062500 1.447608 +v -1.989260 0.000000 1.368309 +v -2.085886 0.000000 1.447608 +v -1.912104 0.000000 0.119856 +v -1.801864 0.000000 0.060932 +v -1.912104 0.062500 0.119856 +v -1.801864 0.062500 0.060932 +v -2.623653 0.062500 0.595299 +v -2.720279 0.062500 0.674598 +v -2.623653 0.000000 0.595299 +v -2.720279 0.000000 0.674598 +v -1.440707 0.000000 1.001778 +v -1.330467 0.000000 0.942852 +v -1.440707 0.062500 1.001778 +v -1.330467 0.062500 0.942852 +v -4.469797 0.062500 3.947715 +v -4.482049 0.062500 4.072114 +v -4.469797 0.000000 3.947715 +v -4.482049 0.000000 4.072114 +v -3.345904 0.000000 3.398670 +v -3.309618 0.000000 3.279053 +v -3.345904 0.062500 3.398670 +v -3.309618 0.062500 3.279053 +vt 0.615249 0.562500 +vt 0.726069 0.437500 +vt 0.615249 0.437500 +vt 0.678003 0.453027 +vt 0.764947 0.316851 +vt 0.688434 0.459997 +vt 0.613503 0.437500 +vt 0.722644 0.562500 +vt 0.613503 0.562500 +vt 0.828202 0.562500 +vt 0.828202 0.437500 +vt 0.812063 0.161529 +vt 0.753357 0.312051 +vt 0.799759 0.159082 +vt 0.823229 0.437500 +vt 0.823229 0.562500 +vt 0.812063 0.161529 +vt 0.753357 0.312051 +vt 0.764947 0.316851 +vt 0.678003 0.453027 +vt 0.688434 0.459997 +vt 1.000000 0.437500 +vt 0.993671 0.562500 +vt 0.993671 0.437500 +vt 0.576594 0.576594 +vt 0.585465 0.585465 +vt 0.459997 0.688434 +vt 0.917722 0.437500 +vt 0.911392 0.562500 +vt 0.911392 0.437500 +vt 0.777932 0.500000 +vt 0.762144 0.437500 +vt 0.777932 0.437500 +vt 0.283574 0.500000 +vt 0.325146 0.437500 +vt 0.325146 0.500000 +vt 0.342277 0.500000 +vt 0.342277 0.437500 +vt 0.626982 0.783754 +vt 0.519041 0.612678 +vt 0.499646 0.628595 +vt 0.829653 0.500000 +vt 0.762144 0.500000 +vt 0.797787 0.091181 +vt 1.000000 0.085886 +vt 0.800246 0.066212 +vt 0.845441 0.437500 +vt 0.829653 0.437500 +vt 0.964030 0.279326 +vt 0.764669 0.245069 +vt 0.771952 0.221060 +vt 0.947343 0.500000 +vt 0.961181 0.437500 +vt 0.947343 0.437500 +vt 0.856491 0.437500 +vt 0.856491 0.500000 +vt 1.000000 0.085886 +vt 0.797787 0.091181 +vt 0.800246 0.066212 +vt 0.956746 0.303335 +vt 0.771952 0.221060 +vt 0.764669 0.245069 +vt 0.870329 0.500000 +vt 0.870329 0.437500 +vt 0.312050 0.753357 +vt 0.316851 0.764947 +vt 0.159082 0.799759 +vt 0.161529 0.812063 +vt 0.171798 0.437501 +vt 0.273931 0.562500 +vt 0.273931 0.437500 +vt 0.161529 0.812063 +vt 0.312050 0.753357 +vt 0.316851 0.764947 +vt 0.176771 0.562500 +vt 0.277356 0.437500 +vt 0.277356 0.562500 +vt 0.107153 0.562500 +vt 0.000000 0.437501 +vt 0.000000 0.562500 +vt 0.000000 0.991058 +vt 0.190898 0.959711 +vt 0.193346 0.972015 +vt 0.006329 0.437501 +vt 0.112125 0.562500 +vt 0.006329 0.562500 +vt 0.000000 0.991058 +vt 0.190898 0.959711 +vt 0.000000 0.978513 +vt 0.171798 0.562500 +vt 0.082278 0.437501 +vt 0.082278 0.562500 +vt 0.000000 0.815428 +vt 0.000000 0.827972 +vt 0.088607 0.437501 +vt 0.088607 0.562500 +vt 0.000000 0.827972 +vt 0.000000 0.815428 +vt 0.892847 0.562499 +vt 1.000000 0.562499 +vt 0.991058 0.000000 +vt 0.959711 0.190898 +vt 0.978513 0.000000 +vt 0.887875 0.562499 +vt 0.959711 0.190898 +vt 0.991058 0.000000 +vt 0.978513 0.000000 +vt 0.917722 0.562500 +vt 0.827972 0.000000 +vt 0.815427 0.000000 +vt 0.827972 0.000000 +vt 0.799759 0.159082 +vt 0.500000 0.562500 +vt 0.585465 0.585465 +vt 0.500000 0.437500 +vt 0.386497 0.437500 +vt 0.500000 0.437500 +vt 0.453027 0.678003 +vt 0.459997 0.688434 +vt 0.384751 0.437500 +vt 0.500000 0.562500 +vt 0.193346 0.972015 +vt 0.374461 0.904028 +vt 0.550602 0.824035 +vt 0.543633 0.813604 +vt 0.691913 0.691913 +vt 0.824035 0.550602 +vt 0.813604 0.543633 +vt 0.915618 0.379261 +vt 0.904028 0.374461 +vt 0.972015 0.193346 +vt 0.767173 0.562499 +vt 0.887875 0.437500 +vt 0.915618 0.379261 +vt 0.904028 0.374461 +vt 0.892847 0.437500 +vt 0.770598 0.562499 +vt 0.636203 0.437500 +vt 0.636203 0.562500 +vt 0.813604 0.543633 +vt 0.824035 0.550602 +vt 0.637950 0.437500 +vt 0.637950 0.562499 +vt 0.500000 0.562500 +vt 0.691913 0.691913 +vt 0.500000 0.562500 +vt 0.363797 0.437500 +vt 0.363797 0.562500 +vt 0.550602 0.824035 +vt 0.543633 0.813604 +vt 0.362050 0.437500 +vt 0.362050 0.562500 +vt 0.232827 0.562500 +vt 0.374461 0.904028 +vt 0.229402 0.562500 +vt 0.112125 0.437501 +vt 0.107153 0.437501 +vt 0.300705 0.437500 +vt 0.283574 0.437500 +vt 0.484159 0.879185 +vt 0.367412 0.713993 +vt 0.389540 0.702165 +vt 0.420906 0.500000 +vt 0.438722 0.437500 +vt 0.420906 0.437500 +vt 0.434944 0.437500 +vt 0.434944 0.500000 +vt 0.646376 0.767837 +vt 0.499646 0.628595 +vt 0.519041 0.612678 +vt 0.367412 0.713993 +vt 0.484159 0.879185 +vt 0.389540 0.702165 +vt 0.452759 0.500000 +vt 0.452759 0.437500 +vt 0.565056 0.500000 +vt 0.547241 0.437500 +vt 0.565056 0.437500 +vt 0.038819 0.500001 +vt 0.129671 0.437501 +vt 0.129671 0.500001 +vt 0.143509 0.500001 +vt 0.143509 0.437501 +vt 0.221060 0.771952 +vt 0.303335 0.956746 +vt 0.245069 0.764669 +vt 0.561278 0.500000 +vt 0.547241 0.500000 +vt 0.879185 0.484159 +vt 0.713993 0.367412 +vt 0.702165 0.389540 +vt 0.579094 0.437500 +vt 0.561278 0.437500 +vt 0.628595 0.499646 +vt 0.767837 0.646376 +vt 0.612678 0.519041 +vt 0.699295 0.500000 +vt 0.716426 0.437500 +vt 0.699295 0.437500 +vt 0.657723 0.437500 +vt 0.657723 0.500000 +vt 0.713993 0.367412 +vt 0.879185 0.484159 +vt 0.702165 0.389540 +vt 0.767837 0.646376 +vt 0.628595 0.499646 +vt 0.612678 0.519041 +vt 0.674854 0.500000 +vt 0.674854 0.437500 +vt 0.052657 0.437501 +vt 0.038819 0.437501 +vt 0.110855 0.997541 +vt 0.066211 0.800246 +vt 0.091181 0.797787 +vt 0.154559 0.500000 +vt 0.170347 0.437500 +vt 0.154559 0.437500 +vt 0.222068 0.437501 +vt 0.222068 0.500000 +vt 0.303335 0.956746 +vt 0.221060 0.771952 +vt 0.245069 0.764669 +vt 0.085886 1.000000 +vt 0.091181 0.797787 +vt 0.066211 0.800246 +vt 0.237856 0.500000 +vt 0.237856 0.437501 +vt 0.726069 0.562500 +vt 0.722644 0.437500 +vt 0.453027 0.678003 +vt 0.646376 0.767837 +vt 0.997541 0.110855 +vt 0.845441 0.500000 +vt 0.956746 0.303335 +vt 0.961181 0.500000 +vt 0.997541 0.110855 +vt 0.964030 0.279326 +vt 0.159082 0.799759 +vt 0.176771 0.437501 +vt 0.000000 0.978513 +vt 0.972015 0.193346 +vt 0.815427 0.000000 +vt 0.576594 0.576594 +vt 0.386497 0.562500 +vt 0.384751 0.562500 +vt 0.379261 0.915618 +vt 0.700784 0.700784 +vt 0.767173 0.437500 +vt 0.770598 0.437500 +vt 0.500000 0.437500 +vt 0.700784 0.700784 +vt 0.500000 0.437500 +vt 0.232827 0.437500 +vt 0.379261 0.915618 +vt 0.229402 0.437500 +vt 0.300705 0.500000 +vt 0.462031 0.891012 +vt 0.438722 0.500000 +vt 0.626982 0.783754 +vt 0.462031 0.891012 +vt 0.279326 0.964030 +vt 0.891012 0.462031 +vt 0.579094 0.500000 +vt 0.783754 0.626981 +vt 0.716426 0.500000 +vt 0.891012 0.462031 +vt 0.783754 0.626981 +vt 0.052657 0.500000 +vt 0.085886 1.000000 +vt 0.170347 0.500000 +vt 0.279326 0.964030 +vt 0.110855 0.997541 +vn -0.4714 0.0000 -0.8819 +vn 0.0000 1.0000 0.0000 +vn 0.4714 0.0000 0.8819 +vn -0.2903 0.0000 -0.9569 +vn 0.2903 0.0000 0.9569 +vn 0.0000 -1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -0.4714 0.0000 0.8819 +vn 0.8819 0.0000 0.4714 +vn -0.9569 0.0000 0.2903 +vn -0.0980 0.0000 -0.9952 +vn -0.9952 0.0000 0.0980 +vn 0.9952 0.0000 -0.0980 +vn 0.0980 0.0000 0.9952 +vn -0.9569 0.0000 -0.2903 +vn 0.9569 0.0000 0.2903 +vn -0.9952 0.0000 -0.0980 +vn 0.9952 0.0000 0.0980 +vn 0.0000 0.0000 1.0000 +vn 0.6344 0.0000 0.7730 +vn -0.6344 0.0000 -0.7730 +vn 0.7730 0.0000 0.6344 +vn -0.7730 0.0000 -0.6344 +vn -0.8819 0.0000 -0.4714 +vn 0.9569 0.0000 -0.2903 +vn -0.6344 0.0000 0.7730 +vn 0.6344 0.0000 -0.7730 +vn 0.4714 0.0000 -0.8819 +vn -0.0980 0.0000 0.9952 +vn -0.7730 0.0000 0.6344 +vn -0.8819 0.0000 0.4714 +vn 0.8819 0.0000 -0.4714 +vn 0.7730 0.0000 -0.6344 +vn -0.2903 0.0000 0.9569 +vn 0.2903 0.0000 -0.9569 +vn 0.0980 0.0000 -0.9952 +s off +f 56/1/1 92/2/1 54/3/1 +f 50/4/2 90/5/2 56/6/2 +f 52/7/3 96/8/3 50/9/3 +f 92/2/4 40/10/4 38/11/4 +f 40/12/2 96/13/2 7/14/2 +f 96/8/5 12/15/5 7/16/5 +f 38/17/6 94/18/6 92/19/6 +f 92/19/6 52/20/6 54/21/6 +f 4/22/7 2/23/7 8/24/7 +f 54/21/6 78/25/6 76/26/6 +f 78/25/6 46/27/6 76/26/6 +f 3/28/7 10/29/7 6/30/7 +f 21/31/5 24/32/5 23/33/5 +f 99/34/8 17/35/8 19/36/8 +f 20/37/9 17/35/9 18/38/9 +f 16/39/6 103/40/6 102/41/6 +f 30/42/10 24/32/10 22/43/10 +f 33/44/6 26/45/6 34/46/6 +f 30/42/4 31/47/4 32/48/4 +f 29/49/2 22/50/2 21/51/2 +f 27/52/11 26/53/11 25/54/11 +f 27/52/12 33/55/12 35/56/12 +f 28/57/2 35/58/2 36/59/2 +f 32/60/6 23/61/6 24/62/6 +f 26/53/13 36/63/13 34/64/13 +f 36/63/14 33/55/14 34/64/14 +f 46/27/6 86/65/6 84/66/6 +f 84/66/6 60/67/6 62/68/6 +f 62/69/15 82/70/15 84/71/15 +f 64/72/2 88/73/2 82/74/2 +f 58/75/16 86/76/16 88/77/16 +f 57/78/17 69/79/17 73/80/17 +f 73/81/2 63/82/2 57/83/2 +f 71/84/18 63/85/18 67/86/18 +f 69/87/6 59/88/6 71/89/6 +f 64/90/17 68/91/17 66/92/17 +f 72/93/2 64/72/2 66/94/2 +f 70/95/18 58/75/18 72/96/18 +f 68/97/6 60/67/6 70/98/6 +f 4/22/11 5/99/11 11/100/11 +f 11/101/2 39/102/2 2/103/2 +f 67/86/19 69/79/19 71/84/19 +f 72/96/19 68/91/19 70/95/19 +f 39/104/14 8/24/14 2/23/14 +f 9/105/6 4/106/6 8/107/6 +f 38/11/11 1/108/11 3/28/11 +f 1/109/2 7/14/2 10/110/2 +f 7/16/14 6/30/14 10/29/14 +f 3/111/6 12/112/6 38/17/6 +f 80/113/20 52/7/20 50/9/20 +f 74/114/2 50/4/2 56/6/2 +f 76/115/21 56/1/21 54/3/21 +f 80/113/22 44/116/22 78/117/22 +f 42/118/2 74/114/2 48/119/2 +f 46/120/23 74/121/23 76/115/23 +f 44/116/9 88/77/9 86/76/9 +f 82/74/2 42/118/2 48/119/2 +f 82/70/24 46/120/24 84/71/24 +f 61/122/6 87/123/6 59/88/6 +f 87/123/6 45/124/6 43/125/6 +f 45/124/6 79/126/6 43/125/6 +f 79/126/6 53/127/6 51/128/6 +f 51/128/6 93/129/6 95/130/6 +f 95/130/6 37/131/6 9/105/6 +f 91/132/5 9/133/5 39/104/5 +f 39/102/2 97/134/2 91/135/2 +f 37/136/4 97/137/4 5/99/4 +f 51/138/3 91/132/3 55/139/3 +f 55/140/2 97/134/2 49/141/2 +f 97/137/1 53/142/1 49/143/1 +f 75/144/20 51/138/20 55/139/20 +f 49/141/2 75/145/2 55/140/2 +f 53/142/21 81/146/21 49/143/21 +f 43/147/22 75/144/22 47/148/22 +f 75/145/2 41/149/2 47/150/2 +f 81/146/23 45/151/23 41/152/23 +f 83/153/9 43/147/9 47/148/9 +f 41/149/2 83/154/2 47/150/2 +f 45/151/24 89/155/24 41/152/24 +f 59/156/16 83/153/16 63/85/16 +f 83/154/2 57/83/2 63/82/2 +f 89/155/15 61/157/15 57/78/15 +f 31/47/25 21/31/25 23/33/25 +f 99/34/24 100/158/24 101/159/24 +f 98/160/2 19/161/2 20/162/2 +f 14/163/23 15/164/23 16/165/23 +f 14/163/26 102/166/26 104/167/26 +f 13/168/2 104/169/2 105/170/2 +f 17/171/6 100/172/6 18/173/6 +f 15/164/27 105/174/27 103/175/27 +f 105/174/22 102/166/22 103/175/22 +f 100/158/28 20/37/28 18/38/28 +f 114/176/20 117/177/20 116/178/20 +f 131/179/29 110/180/29 112/181/29 +f 113/182/18 110/180/18 111/183/18 +f 134/184/6 108/185/6 135/186/6 +f 123/187/30 117/177/30 115/188/30 +f 118/189/6 127/190/6 126/191/6 +f 123/187/21 124/192/21 125/193/21 +f 114/194/2 123/195/2 115/196/2 +f 120/197/1 119/198/1 118/199/1 +f 120/197/31 126/200/31 128/201/31 +f 129/202/2 120/203/2 128/204/2 +f 125/205/6 116/206/6 117/207/6 +f 119/198/32 129/208/32 127/209/32 +f 129/208/3 126/200/3 127/209/3 +f 124/192/33 114/176/33 116/178/33 +f 131/179/17 132/210/17 133/211/17 +f 130/212/2 112/213/2 113/214/2 +f 107/215/15 108/216/15 109/217/15 +f 107/215/34 134/218/34 136/219/34 +f 106/220/2 136/221/2 137/222/2 +f 133/223/6 111/224/6 110/225/6 +f 108/216/35 137/226/35 135/227/35 +f 137/226/16 134/218/16 135/227/16 +f 132/210/36 113/182/36 111/183/36 +f 56/1/1 90/228/1 92/2/1 +f 50/4/2 96/13/2 90/5/2 +f 52/7/3 94/229/3 96/8/3 +f 92/2/4 90/228/4 40/10/4 +f 40/12/2 90/5/2 96/13/2 +f 96/8/5 94/229/5 12/15/5 +f 38/17/6 12/112/6 94/18/6 +f 92/19/6 94/18/6 52/20/6 +f 4/22/7 11/100/7 2/23/7 +f 54/21/6 52/20/6 78/25/6 +f 78/25/6 44/230/6 46/27/6 +f 3/28/7 1/108/7 10/29/7 +f 21/31/5 22/43/5 24/32/5 +f 99/34/8 101/159/8 17/35/8 +f 20/37/9 19/36/9 17/35/9 +f 16/39/6 15/231/6 103/40/6 +f 30/42/10 32/48/10 24/32/10 +f 33/44/6 25/232/6 26/45/6 +f 30/42/4 29/233/4 31/47/4 +f 29/49/2 30/234/2 22/50/2 +f 27/52/11 28/235/11 26/53/11 +f 27/52/12 25/54/12 33/55/12 +f 28/57/2 27/236/2 35/58/2 +f 32/60/6 31/237/6 23/61/6 +f 26/53/13 28/235/13 36/63/13 +f 36/63/14 35/56/14 33/55/14 +f 46/27/6 44/230/6 86/65/6 +f 84/66/6 86/65/6 60/67/6 +f 62/69/15 64/90/15 82/70/15 +f 64/72/2 58/238/2 88/73/2 +f 58/75/16 60/239/16 86/76/16 +f 57/78/17 61/157/17 69/79/17 +f 73/81/2 67/240/2 63/82/2 +f 71/84/18 59/156/18 63/85/18 +f 69/87/6 61/122/6 59/88/6 +f 64/90/17 62/69/17 68/91/17 +f 72/93/2 58/238/2 64/72/2 +f 70/95/18 60/239/18 58/75/18 +f 68/97/6 62/68/6 60/67/6 +f 4/22/11 37/136/11 5/99/11 +f 11/101/2 5/241/2 39/102/2 +f 67/86/19 73/80/19 69/79/19 +f 72/96/19 66/92/19 68/91/19 +f 39/104/14 9/133/14 8/24/14 +f 9/105/6 37/131/6 4/106/6 +f 38/11/11 40/10/11 1/108/11 +f 1/109/2 40/12/2 7/14/2 +f 7/16/14 12/15/14 6/30/14 +f 3/111/6 6/242/6 12/112/6 +f 80/113/20 78/117/20 52/7/20 +f 74/114/2 80/243/2 50/4/2 +f 76/115/21 74/121/21 56/1/21 +f 80/113/22 42/244/22 44/116/22 +f 42/118/2 80/243/2 74/114/2 +f 46/120/23 48/245/23 74/121/23 +f 44/116/9 42/244/9 88/77/9 +f 82/74/2 88/73/2 42/118/2 +f 82/70/24 48/245/24 46/120/24 +f 61/122/6 85/246/6 87/123/6 +f 87/123/6 85/246/6 45/124/6 +f 45/124/6 77/247/6 79/126/6 +f 79/126/6 77/247/6 53/127/6 +f 51/128/6 53/127/6 93/129/6 +f 95/130/6 93/129/6 37/131/6 +f 91/132/5 95/248/5 9/133/5 +f 39/102/2 5/241/2 97/134/2 +f 37/136/4 93/249/4 97/137/4 +f 51/138/3 95/248/3 91/132/3 +f 55/140/2 91/135/2 97/134/2 +f 97/137/1 93/249/1 53/142/1 +f 75/144/20 79/250/20 51/138/20 +f 49/141/2 81/251/2 75/145/2 +f 53/142/21 77/252/21 81/146/21 +f 43/147/22 79/250/22 75/144/22 +f 75/145/2 81/251/2 41/149/2 +f 81/146/23 77/252/23 45/151/23 +f 83/153/9 87/253/9 43/147/9 +f 41/149/2 89/254/2 83/154/2 +f 45/151/24 85/255/24 89/155/24 +f 59/156/16 87/253/16 83/153/16 +f 83/154/2 89/254/2 57/83/2 +f 89/155/15 85/255/15 61/157/15 +f 31/47/25 29/233/25 21/31/25 +f 99/34/24 98/256/24 100/158/24 +f 98/160/2 99/257/2 19/161/2 +f 14/163/23 13/258/23 15/164/23 +f 14/163/26 16/165/26 102/166/26 +f 13/168/2 14/259/2 104/169/2 +f 17/171/6 101/260/6 100/172/6 +f 15/164/27 13/258/27 105/174/27 +f 105/174/22 104/167/22 102/166/22 +f 100/158/28 98/256/28 20/37/28 +f 114/176/20 115/188/20 117/177/20 +f 131/179/29 133/211/29 110/180/29 +f 113/182/18 112/181/18 110/180/18 +f 134/184/6 109/261/6 108/185/6 +f 123/187/30 125/193/30 117/177/30 +f 118/189/6 119/262/6 127/190/6 +f 123/187/21 122/263/21 124/192/21 +f 114/194/2 122/264/2 123/195/2 +f 120/197/1 121/265/1 119/198/1 +f 120/197/31 118/199/31 126/200/31 +f 129/202/2 121/266/2 120/203/2 +f 125/205/6 124/267/6 116/206/6 +f 119/198/32 121/265/32 129/208/32 +f 129/208/3 128/201/3 126/200/3 +f 124/192/33 122/263/33 114/176/33 +f 131/179/17 130/268/17 132/210/17 +f 130/212/2 131/269/2 112/213/2 +f 107/215/15 106/270/15 108/216/15 +f 107/215/34 109/217/34 134/218/34 +f 106/220/2 107/271/2 136/221/2 +f 133/223/6 132/272/6 111/224/6 +f 108/216/35 106/270/35 137/226/35 +f 137/226/16 136/219/16 134/218/16 +f 132/210/36 130/268/36 113/182/36 diff --git a/src/main/resources/assets/hbm/models/chemplant_new_body.obj b/src/main/resources/assets/hbm/models/chemplant_new_body.obj index c2342adcd..e958c24e3 100644 --- a/src/main/resources/assets/hbm/models/chemplant_new_body.obj +++ b/src/main/resources/assets/hbm/models/chemplant_new_body.obj @@ -1,4 +1,4 @@ -# Blender v2.76 (sub 0) OBJ File: 'chemplant_new_body.blend' +# Blender v2.79 (sub 0) OBJ File: 'chemplant_new_body.blend' # www.blender.org o Cube_Cube.001 v -1.500000 0.000000 1.500000 @@ -282,715 +282,918 @@ v -0.500000 2.750000 -0.625000 v -0.516747 2.750000 -0.687500 v -0.562500 2.750000 -0.733253 vt 0.000000 0.317073 -vt 0.000000 0.292683 vt 0.292683 0.292683 -vt -0.000000 0.000000 +vt 0.292683 0.317073 +vt 0.000000 0.317073 +vt 0.292683 0.292683 +vt 0.292683 0.317073 +vt -0.000000 0.317073 +vt 0.292683 0.292683 +vt 0.292683 0.317073 +vt 0.000000 0.317073 +vt 0.292683 0.292683 +vt 0.292683 0.317073 +vt 0.000000 0.292683 vt 0.292683 -0.000000 vt 0.024390 0.353659 -vt 0.292683 0.317073 vt 0.268293 0.353659 +vt 0.268293 0.353659 +vt 0.024390 0.353659 +vt 0.268293 0.353659 +vt 0.024390 0.353659 +vt 0.024390 0.353659 vt 0.292683 0.207317 -vt 0.390244 0.207317 vt 0.390244 0.256098 +vt 0.292683 0.256098 vt 0.390244 0.109756 -vt 0.378049 0.121951 vt 0.304878 0.121951 +vt 0.292683 0.109756 vt 0.365854 0.310976 +vt 0.292683 0.256098 +vt 0.390244 0.256098 +vt 0.390244 0.207317 +vt 0.292683 0.256098 +vt 0.292683 0.207317 +vt 0.390244 0.256098 vt 0.317073 0.310976 vt 0.292683 0.256098 -vt 0.323171 0.140244 +vt 0.390244 0.207317 +vt 0.292683 0.207317 +vt 0.292683 0.207317 +vt 0.390244 0.207317 +vt 0.365854 0.310976 +vt 0.317073 0.310976 vt 0.323171 0.176829 vt 0.304878 0.195122 vt 0.378049 0.195122 -vt 0.292683 0.109756 +vt 0.378049 0.121951 vt 0.359756 0.140244 vt 0.359756 0.176829 +vt 0.323171 0.140244 +vt 0.292683 0.256098 +vt 0.390244 0.207317 +vt 0.390244 0.256098 +vt 0.304878 0.195122 +vt 0.390244 0.207317 +vt 0.292683 0.207317 +vt 0.390244 0.256098 +vt 0.317073 0.310976 +vt 0.292683 0.256098 +vt 0.390244 0.256098 +vt 0.292683 0.256098 +vt 0.365854 0.310976 +vt 0.292683 0.256098 +vt 0.390244 0.256098 +vt 0.292683 0.207317 +vt 0.390244 0.207317 +vt 0.390244 0.207317 +vt 0.292683 0.207317 +vt 0.317073 0.310976 +vt 0.365854 0.310976 +vt 0.323171 0.140244 +vt 0.304878 0.121951 +vt 0.378049 0.121951 +vt 0.292683 0.109756 +vt 0.390244 0.109756 +vt 0.378049 0.195122 +vt 0.359756 0.176829 +vt 0.359756 0.140244 +vt 0.323171 0.176829 vt 0.902439 0.262195 -vt 0.902439 0.335366 vt 0.871951 0.335366 -vt 0.841463 0.262195 -vt 0.841463 0.335366 -vt 0.810976 0.335366 vt 0.871951 0.262195 +vt 0.841463 0.262195 +vt 0.810976 0.335366 vt 0.810976 0.262195 +vt 0.841463 0.335366 vt 0.780488 0.335366 -vt 0.780488 0.365854 vt 0.780488 0.262195 +vt 0.780488 0.365854 vt 0.810976 0.365854 +vt 0.902439 0.262195 +vt 0.871951 0.335366 +vt 0.871951 0.262195 +vt 0.841463 0.262195 +vt 0.810976 0.335366 +vt 0.810976 0.262195 +vt 0.841463 0.335366 +vt 0.780488 0.335366 +vt 0.780488 0.262195 +vt 0.780488 0.365854 +vt 0.810976 0.365854 +vt 0.841463 0.335366 +vt 0.810976 0.262195 +vt 0.841463 0.262195 +vt 0.902439 0.335366 +vt 0.871951 0.262195 +vt 0.902439 0.262195 +vt 0.871951 0.335366 +vt 0.810976 0.335366 +vt 0.780488 0.262195 +vt 0.780488 0.335366 +vt 0.810976 0.365854 +vt 0.780488 0.365854 +vt 0.841463 0.335366 +vt 0.810976 0.262195 +vt 0.841463 0.262195 +vt 0.902439 0.335366 +vt 0.871951 0.262195 +vt 0.902439 0.262195 +vt 0.871951 0.335366 +vt 0.810976 0.335366 +vt 0.780488 0.262195 +vt 0.780488 0.335366 +vt 0.810976 0.365854 +vt 0.780488 0.365854 +vt 0.365854 0.359756 +vt 0.365854 0.310976 +vt 0.341463 0.335366 vt 0.365854 0.359756 vt 0.341463 0.335366 +vt 0.365854 0.310976 vt 0.341463 0.359756 vt 0.341463 0.310976 vt 0.317073 0.335366 +vt 0.341463 0.359756 +vt 0.317073 0.335366 +vt 0.341463 0.310976 vt 0.268293 0.378049 vt 0.024390 0.378049 +vt 0.024390 0.378049 +vt 0.268293 0.378049 +vt 0.268293 0.378049 +vt 0.024390 0.378049 +vt 0.268293 0.378049 vt 0.024390 0.621951 +vt 0.268293 0.621951 vt 0.292683 0.012195 -vt 0.390244 0.012195 +vt 0.390244 0.109756 +vt 0.292683 0.109756 vt 0.390244 -0.000000 +vt 0.292683 -0.000000 +vt 0.390244 0.000000 +vt 0.292683 0.012195 +vt 0.292683 -0.000000 +vt 0.390244 0.000000 +vt 0.292683 0.012195 +vt 0.292683 -0.000000 +vt 0.390244 -0.000000 +vt 0.292683 0.012195 +vt 0.292683 -0.000000 +vt 0.292683 0.012195 +vt 0.390244 0.109756 +vt 0.292683 0.109756 +vt 0.390244 -0.000000 +vt 0.292683 -0.000000 +vt 0.390244 0.000000 +vt 0.292683 0.012195 +vt 0.292683 -0.000000 +vt 0.390244 0.000000 +vt 0.292683 0.012195 +vt 0.292683 -0.000000 +vt 0.390244 -0.000000 +vt 0.292683 0.012195 +vt 0.292683 -0.000000 vt 0.487805 0.146341 -vt 0.585366 0.146341 vt 0.560976 0.182927 +vt 0.512195 0.182927 vt 0.487805 -0.000000 vt 0.390244 0.146341 +vt 0.390244 -0.000000 vt 0.585366 0.000000 vt 0.780488 -0.000000 -vt 0.780488 0.146341 vt 0.682927 0.146341 +vt 0.682927 0.000000 vt 0.707317 0.182927 -vt 0.756098 0.182927 vt 0.756098 0.231707 -vt 0.463415 0.182927 +vt 0.707317 0.231707 +vt 0.780488 0.146341 +vt 0.707317 0.182927 vt 0.414634 0.182927 +vt 0.585366 0.146341 vt 0.658537 0.182927 vt 0.609756 0.182927 -vt 0.682927 0.000000 +vt 0.292683 0.012195 +vt 0.390244 0.109756 +vt 0.292683 0.109756 +vt 0.390244 -0.000000 +vt 0.292683 -0.000000 +vt 0.390244 0.000000 +vt 0.292683 0.012195 +vt 0.292683 -0.000000 +vt 0.390244 0.000000 +vt 0.292683 0.012195 +vt 0.292683 -0.000000 +vt 0.390244 -0.000000 +vt 0.292683 0.012195 +vt 0.292683 -0.000000 vt 0.847561 0.207317 -vt 0.786585 0.243902 +vt 0.786585 0.207317 vt 0.817073 0.262195 -vt 0.853659 0.164634 -vt 0.853659 0.189024 -vt 0.835366 0.189024 -vt 0.871951 0.164634 -vt 0.871951 0.189024 -vt 0.835366 0.164634 -vt 0.817073 0.189024 -vt 0.817073 0.164634 -vt 0.798781 0.189024 -vt 0.798781 0.164634 -vt 0.780488 0.189024 -vt 1.000000 0.164634 -vt 1.000000 0.189024 -vt 0.981707 0.189024 -vt 0.981707 0.164634 -vt 0.963415 0.189024 -vt 0.963415 0.164634 -vt 0.945122 0.189024 -vt 0.890244 0.164634 -vt 0.890244 0.189024 -vt 0.908537 0.164634 -vt 0.908537 0.189024 -vt 0.926829 0.164634 -vt 0.926829 0.189024 -vt 0.945122 0.164634 -vt 0.817073 0.146341 -vt 0.835366 0.146341 -vt 0.798781 0.146341 -vt 0.981707 0.146341 -vt 1.000000 0.146341 -vt 0.963415 0.146341 -vt 0.945122 0.146341 -vt 0.926829 0.146341 -vt 0.853659 0.146341 -vt 0.871951 0.146341 -vt 0.890244 0.146341 -vt 0.908537 0.146341 -vt 0.945122 -0.000000 -vt 0.908537 0.000000 -vt 0.926829 -0.000000 -vt 0.963415 0.000000 -vt 0.981707 0.000000 -vt 1.000000 0.000000 -vt 0.890244 -0.000000 -vt 0.798781 -0.000000 -vt 0.817073 0.000000 -vt 0.835366 -0.000000 -vt 0.853659 -0.000000 -vt 0.871951 -0.000000 -vt 0.908537 0.237805 -vt 0.908537 0.213415 -vt 0.914634 0.213415 vt 0.902439 0.237805 -vt 0.890244 0.237805 vt 0.890244 0.231707 -vt 0.865854 0.189024 -vt 0.865854 0.213415 -vt 0.853659 0.213415 -vt 0.975610 0.189024 -vt 0.975610 0.213415 -vt 0.963415 0.213415 -vt 0.914634 0.189024 -vt 0.902439 0.213415 -vt 0.939024 0.189024 -vt 0.939024 0.213415 -vt 0.926829 0.213415 -vt 0.878049 0.189024 -vt 0.878049 0.213415 -vt 0.987805 0.189024 -vt 0.987805 0.213415 -vt 0.951219 0.189024 -vt 0.951219 0.213415 -vt 0.890244 0.213415 -vt 1.000000 0.213415 -vt 0.902439 0.189024 +vt 0.896341 0.225610 vt 0.890244 0.256098 -vt 0.884146 0.250000 vt 0.890244 0.243902 -vt 0.878049 0.225610 +vt 0.896341 0.250000 +vt 0.878049 0.213415 vt 0.871951 0.225610 +vt 0.865854 0.219512 vt 0.853659 0.237805 -vt 0.865854 0.237805 vt 0.865854 0.243902 +vt 0.859756 0.250000 vt 0.878049 0.262195 +vt 0.884146 0.250000 +vt 0.884146 0.225610 +vt 0.878049 0.225610 +vt 0.859756 0.225610 +vt 0.865854 0.237805 +vt 0.865854 0.256098 vt 0.878049 0.250000 vt 0.890244 0.219512 -vt 0.884146 0.225610 -vt 0.859756 0.225610 +vt 0.890244 0.237805 vt 0.865854 0.231707 -vt 0.865854 0.256098 vt 0.871951 0.250000 -vt 0.896341 0.225610 -vt 0.896341 0.250000 -vt 0.865854 0.219512 -vt 0.859756 0.250000 -vt 0.939024 0.237805 -vt 0.945122 0.213415 -vt 0.926829 0.237805 -vt 0.932927 0.213415 -vt 0.957317 0.237805 -vt 0.957317 0.213415 -vt 0.920732 0.237805 -vt 0.920732 0.213415 -vt 0.951219 0.237805 -vt 0.969512 0.237805 -vt 0.969512 0.213415 -vt 0.914634 0.237805 -vt 0.945122 0.237805 -vt 0.932927 0.237805 -vt 0.963415 0.237805 -vt 0.341463 0.524390 vt 0.298781 0.548781 +vt 0.298781 0.597561 vt 0.341463 0.621951 -vt 0.463415 0.402439 -vt 0.487805 0.402439 -vt 0.487805 0.621951 -vt 0.512195 0.402439 -vt 0.512195 0.621951 -vt 0.536585 0.402439 -vt 0.536585 0.621951 -vt 0.560976 0.402439 -vt 0.585366 0.402439 -vt 0.585366 0.621951 -vt 0.609756 0.402439 -vt 0.609756 0.621951 -vt 0.634146 0.402439 -vt 0.634146 0.621951 -vt 0.414634 0.402439 -vt 0.439024 0.402439 -vt 0.439024 0.621951 -vt 0.390244 0.402439 -vt 0.414634 0.621951 -vt 0.658537 0.402439 -vt 0.682927 0.402439 -vt 0.682927 0.621951 -vt 0.658537 0.621951 -vt 0.560976 0.621951 -vt 0.463415 0.621951 -vt 0.341463 0.426829 vt 0.298781 0.451219 -vt 0.439024 0.182927 -vt 0.487805 0.182927 -vt 0.512195 0.182927 -vt 0.536585 0.182927 -vt 0.585366 0.182927 -vt 0.634146 0.182927 -vt 0.682927 0.182927 -vt 0.390244 0.182927 -vt 0.268293 0.621951 -vt 0.707317 0.231707 +vt 0.298781 0.500000 +vt 0.341463 0.524390 +vt 0.000000 0.292683 +vt -0.000000 0.292683 +vt 0.000000 0.292683 +vt -0.000000 0.000000 +vt 0.268293 0.353659 +vt 0.390244 0.207317 +vt 0.317073 0.310976 +vt 0.390244 0.256098 +vt 0.365854 0.310976 +vt 0.292683 0.207317 +vt 0.365854 0.310976 +vt 0.317073 0.310976 +vt 0.902439 0.335366 +vt 0.902439 0.335366 +vt 0.024390 0.378049 +vt 0.390244 0.012195 +vt 0.390244 0.012195 +vt 0.390244 0.012195 +vt 0.390244 0.012195 +vt 0.390244 0.012195 +vt 0.390244 0.012195 +vt 0.390244 0.012195 +vt 0.390244 0.012195 +vt 0.756098 0.182927 +vt 0.756098 0.182927 +vt 0.463415 0.182927 +vt 0.390244 0.012195 +vt 0.390244 0.012195 +vt 0.390244 0.012195 +vt 0.390244 0.012195 vt 0.835366 0.256098 vt 0.847561 0.243902 vt 0.853659 0.225610 vt 0.835366 0.195122 +vt 0.817073 0.189024 vt 0.798781 0.195122 -vt 0.786585 0.207317 vt 0.780488 0.225610 +vt 0.786585 0.243902 vt 0.798781 0.256098 -vt 0.780488 0.164634 -vt 0.975610 0.237805 vt 0.365854 0.615854 vt 0.384146 0.597561 vt 0.390244 0.573171 vt 0.384146 0.548781 vt 0.365854 0.530488 +vt 0.341463 0.524390 vt 0.317073 0.530488 vt 0.292683 0.573171 -vt 0.298781 0.597561 vt 0.317073 0.615854 -vt 0.390244 0.621951 vt 0.365854 0.518293 vt 0.384146 0.500000 vt 0.390244 0.475610 vt 0.384146 0.451219 vt 0.365854 0.432927 +vt 0.341463 0.426829 vt 0.317073 0.432927 vt 0.292683 0.475610 -vt 0.298781 0.500000 vt 0.317073 0.518293 -vn -1.000000 0.000000 0.000000 -vn 0.000000 0.000000 -1.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000000 0.000000 1.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.707100 0.707100 0.000000 -vn -0.707100 0.707100 0.000000 -vn 0.000000 0.707100 -0.707100 -vn 0.000000 0.707100 0.707100 -vn -0.447200 0.000000 0.894400 -vn -0.447200 0.894400 0.000000 -vn 0.000000 1.000000 0.000000 -vn -0.447200 0.000000 -0.894400 -vn 0.351100 0.000000 -0.936300 -vn 0.351100 0.000000 0.936300 -vn 0.351100 0.936300 0.000000 -vn 0.351100 -0.936300 0.000000 -vn 0.447200 0.000000 0.894400 -vn 0.447200 0.894400 0.000000 -vn 0.447200 0.000000 -0.894400 -vn -0.351100 0.000000 -0.936300 -vn -0.351100 0.000000 0.936300 -vn -0.351100 0.936300 0.000000 -vn -0.351100 -0.936300 0.000000 -vn 0.965900 0.000000 -0.258800 -vn 0.707100 0.000000 -0.707100 -vn 0.965900 0.000000 0.258800 -vn 0.707100 0.000000 0.707100 -vn 0.258800 0.000000 0.965900 -vn -0.258800 0.000000 0.965900 -vn -0.707100 0.000000 0.707100 -vn -0.965900 0.000000 0.258800 -vn 0.258800 0.000000 -0.965900 -vn -0.258800 0.000000 -0.965900 -vn -0.707100 0.000000 -0.707100 -vn -0.965900 0.000000 -0.258800 -vn 0.694700 -0.694700 0.186200 -vn 0.508600 -0.694700 0.508600 -vn 0.186200 -0.694700 0.694700 -vn -0.186200 -0.694700 0.694700 -vn -0.508600 -0.694700 0.508600 -vn -0.694700 -0.694700 0.186200 -vn -0.694700 -0.694700 -0.186200 -vn 0.694700 -0.694700 -0.186200 -vn 0.508600 -0.694700 -0.508600 -vn 0.186200 -0.694700 -0.694700 -vn -0.186200 -0.694700 -0.694700 -vn -0.508600 -0.694700 -0.508600 -vn -0.962800 0.080200 -0.258000 -vn -0.704800 0.080200 -0.704800 -vn -0.962800 0.080200 0.258000 -vn -0.704800 0.080200 0.704800 -vn -0.258000 0.080200 0.962800 -vn -0.258000 0.080200 -0.962800 -vn 0.258000 0.080200 -0.962800 -vn 0.258000 0.080200 0.962800 -vn 0.704800 0.080200 0.704800 -vn 0.962800 0.080200 0.258000 -vn 0.962800 0.080200 -0.258000 -vn 0.704800 0.080200 -0.704800 +vt 0.853659 0.164634 +vt 0.835366 0.189024 +vt 0.835366 0.164634 +vt 0.871951 0.164634 +vt 0.853659 0.189024 +vt 0.817073 0.189024 +vt 0.817073 0.164634 +vt 0.798781 0.189024 +vt 0.798781 0.164634 +vt 0.780488 0.189024 +vt 0.780488 0.164634 +vt 1.000000 0.164634 +vt 0.981707 0.189024 +vt 0.981707 0.164634 +vt 0.963415 0.189024 +vt 0.963415 0.164634 +vt 0.945122 0.189024 +vt 0.945122 0.164634 +vt 0.890244 0.164634 +vt 0.871951 0.189024 +vt 0.908537 0.164634 +vt 0.890244 0.189024 +vt 0.926829 0.164634 +vt 0.908537 0.189024 +vt 0.926829 0.189024 +vt 0.817073 0.146341 +vt 0.780488 0.146341 +vt 0.981707 0.146341 +vt 0.945122 0.146341 +vt 0.926829 0.146341 +vt 0.835366 0.146341 +vt 0.853659 0.146341 +vt 0.871951 0.146341 +vt 0.890244 0.146341 +vt 0.908537 0.146341 +vt 0.945122 -0.000000 +vt 0.926829 -0.000000 +vt 0.908537 0.000000 +vt 0.963415 0.000000 +vt 0.981707 0.000000 +vt 0.963415 0.146341 +vt 1.000000 0.000000 +vt 0.890244 -0.000000 +vt 0.871951 -0.000000 +vt 0.798781 -0.000000 +vt 0.780488 -0.000000 +vt 0.817073 0.000000 +vt 0.798781 0.146341 +vt 0.853659 -0.000000 +vt 0.835366 -0.000000 +vt 0.908537 0.237805 +vt 0.914634 0.213415 +vt 0.914634 0.237805 +vt 0.865854 0.189024 +vt 0.853659 0.213415 +vt 0.853659 0.189024 +vt 0.975610 0.189024 +vt 0.963415 0.213415 +vt 0.963415 0.189024 +vt 0.902439 0.189024 +vt 0.914634 0.213415 +vt 0.902439 0.213415 +vt 0.926829 0.189024 +vt 0.939024 0.213415 +vt 0.926829 0.213415 +vt 0.878049 0.189024 +vt 0.865854 0.213415 +vt 0.987805 0.189024 +vt 0.975610 0.213415 +vt 0.914634 0.189024 +vt 0.939024 0.189024 +vt 0.951219 0.213415 +vt 0.890244 0.189024 +vt 0.878049 0.213415 +vt 1.000000 0.189024 +vt 0.987805 0.213415 +vt 0.951219 0.189024 +vt 0.890244 0.213415 +vt 0.939024 0.237805 +vt 0.945122 0.213415 +vt 0.945122 0.237805 +vt 0.926829 0.237805 +vt 0.932927 0.213415 +vt 0.932927 0.237805 +vt 0.957317 0.237805 +vt 0.963415 0.213415 +vt 0.963415 0.237805 +vt 0.902439 0.237805 +vt 0.908537 0.213415 +vt 0.920732 0.237805 +vt 0.926829 0.213415 +vt 0.951219 0.237805 +vt 0.957317 0.213415 +vt 0.969512 0.237805 +vt 0.975610 0.213415 +vt 0.975610 0.237805 +vt 0.920732 0.213415 +vt 0.951219 0.213415 +vt 0.939024 0.213415 +vt 0.969512 0.213415 +vt 0.463415 0.402439 +vt 0.487805 0.621951 +vt 0.463415 0.621951 +vt 0.487805 0.402439 +vt 0.512195 0.621951 +vt 0.512195 0.402439 +vt 0.536585 0.621951 +vt 0.560976 0.402439 +vt 0.585366 0.621951 +vt 0.560976 0.621951 +vt 0.585366 0.402439 +vt 0.609756 0.621951 +vt 0.609756 0.402439 +vt 0.634146 0.621951 +vt 0.414634 0.402439 +vt 0.439024 0.621951 +vt 0.414634 0.621951 +vt 0.390244 0.402439 +vt 0.390244 0.621951 +vt 0.658537 0.402439 +vt 0.682927 0.621951 +vt 0.658537 0.621951 +vt 0.634146 0.402439 +vt 0.536585 0.402439 +vt 0.439024 0.402439 +vt 0.439024 0.182927 +vt 0.463415 0.402439 +vt 0.439024 0.402439 +vt 0.463415 0.182927 +vt 0.487805 0.402439 +vt 0.487805 0.182927 +vt 0.512195 0.402439 +vt 0.512195 0.182927 +vt 0.536585 0.402439 +vt 0.536585 0.182927 +vt 0.560976 0.402439 +vt 0.560976 0.182927 +vt 0.585366 0.402439 +vt 0.585366 0.182927 +vt 0.609756 0.402439 +vt 0.609756 0.182927 +vt 0.634146 0.402439 +vt 0.634146 0.182927 +vt 0.658537 0.402439 +vt 0.658537 0.182927 +vt 0.682927 0.402439 +vt 0.390244 0.182927 +vt 0.414634 0.402439 +vt 0.390244 0.402439 +vt 0.414634 0.182927 +vt 1.000000 0.189024 +vt 1.000000 0.146341 +vt 1.000000 0.213415 +vt 0.902439 0.213415 +vt 0.682927 0.402439 +vt 0.682927 0.182927 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 0.7071 0.7071 +vn -0.4472 0.0000 0.8944 +vn -0.4472 0.8944 0.0000 +vn 0.0000 1.0000 0.0000 +vn -0.4472 0.0000 -0.8944 +vn 0.3511 0.0000 -0.9363 +vn 0.3511 0.0000 0.9363 +vn 0.3511 0.9363 0.0000 +vn 0.3511 -0.9363 0.0000 +vn 0.4472 0.0000 0.8944 +vn 0.4472 0.8944 0.0000 +vn 0.4472 0.0000 -0.8944 +vn -0.3511 0.0000 -0.9363 +vn -0.3511 0.0000 0.9363 +vn -0.3511 0.9363 0.0000 +vn -0.3511 -0.9363 0.0000 +vn 0.8660 0.0000 -0.5000 +vn 0.5000 0.0000 -0.8660 +vn 0.8660 0.0000 0.5000 +vn 0.5000 0.0000 0.8660 +vn -0.5000 0.0000 0.8660 +vn -0.8660 0.0000 0.5000 +vn -0.5000 0.0000 -0.8660 +vn -0.8660 0.0000 -0.5000 +vn 0.6124 -0.7071 0.3536 +vn 0.7071 -0.7071 0.0000 +vn 0.3536 -0.7071 0.6124 +vn -0.0000 -0.7071 0.7071 +vn -0.3536 -0.7071 0.6124 +vn -0.6124 -0.7071 0.3536 +vn -0.7071 -0.7071 -0.0000 +vn -0.6124 -0.7071 -0.3536 +vn 0.6124 -0.7071 -0.3536 +vn 0.3536 -0.7071 -0.6124 +vn 0.0000 -0.7071 -0.7071 +vn -0.3536 -0.7071 -0.6124 +vn -0.9965 0.0830 0.0000 +vn -0.8630 0.0830 -0.4983 +vn -0.4983 0.0830 -0.8630 +vn -0.8630 0.0830 0.4983 +vn -0.4983 0.0830 0.8630 +vn -0.0000 0.0830 0.9965 +vn 0.0000 0.0830 -0.9965 +vn 0.4983 0.0830 -0.8630 +vn 0.4983 0.0830 0.8630 +vn 0.8630 0.0830 0.4983 +vn 0.9965 0.0830 0.0000 +vn 0.8630 0.0830 -0.4983 s off -f 4/1/1 3/2/1 1/3/1 -f 8/1/2 7/2/2 3/3/2 -f 6/1/3 5/2/3 7/3/3 -f 2/1/4 1/2/4 5/3/4 -f 3/2/5 7/4/5 5/5/5 -f 12/6/6 6/1/6 8/7/6 -f 4/1/7 2/7/7 9/8/7 -f 8/1/8 4/7/8 10/8/8 -f 6/7/9 12/8/9 9/6/9 -f 20/9/2 19/10/2 22/11/2 -f 19/12/3 26/13/3 28/14/3 -f 14/15/10 13/16/10 24/17/10 -f 22/10/5 19/11/5 17/17/5 -f 21/11/11 16/15/11 14/16/11 -f 20/10/12 21/11/12 23/17/12 -f 23/11/4 24/17/4 17/9/4 -f 21/17/13 22/11/13 15/15/13 -f 28/14/14 32/18/14 31/19/14 -f 18/9/3 27/20/3 25/21/3 -f 20/10/3 25/21/3 26/13/3 -f 17/22/3 28/14/3 27/20/3 -f 31/19/3 32/18/3 30/23/3 -f 25/21/15 29/24/15 30/23/15 -f 26/13/16 30/23/16 32/18/16 -f 27/20/17 31/19/17 29/24/17 -f 42/17/2 39/9/2 40/10/2 -f 48/20/1 46/21/1 39/10/1 -f 44/11/18 33/15/18 34/16/18 -f 37/9/5 39/10/5 42/11/5 -f 34/15/19 36/16/19 41/17/19 -f 43/11/12 41/17/12 40/9/12 -f 37/10/4 44/11/4 43/17/4 -f 35/16/20 42/17/20 41/11/20 -f 51/18/21 52/19/21 48/20/21 -f 45/13/1 47/14/1 38/22/1 -f 46/21/1 45/13/1 40/12/1 -f 47/14/1 48/20/1 37/9/1 -f 50/24/1 52/19/1 51/18/1 -f 50/24/22 49/23/22 45/13/22 -f 52/19/23 50/24/23 46/21/23 -f 49/23/24 51/18/24 47/14/24 -f 59/25/3 53/26/3 54/27/3 -f 56/28/1 58/29/1 57/30/1 -f 60/31/12 54/27/12 58/29/12 -f 55/32/5 57/30/5 53/33/5 -f 54/34/2 53/33/2 57/30/2 -f 67/25/3 61/26/3 62/27/3 -f 64/28/1 66/29/1 65/30/1 -f 68/31/12 62/27/12 66/29/12 -f 63/32/5 65/30/5 61/33/5 -f 62/34/2 61/33/2 65/30/2 -f 70/29/3 69/30/3 75/32/3 -f 73/26/1 74/27/1 72/31/1 -f 74/27/12 70/29/12 76/28/12 -f 69/30/5 73/33/5 71/35/5 -f 73/33/4 69/30/4 70/36/4 -f 78/29/3 77/30/3 83/32/3 -f 81/26/1 82/27/1 80/31/1 -f 82/27/12 78/29/12 84/28/12 -f 77/30/5 81/33/5 79/35/5 -f 81/33/4 77/30/4 78/36/4 -f 86/37/2 85/15/2 87/38/2 -f 89/37/4 90/38/4 88/15/4 -f 92/39/2 91/40/2 93/41/2 -f 95/39/4 96/41/4 94/40/4 -f 10/6/1 9/8/1 98/42/1 -f 97/43/3 12/6/3 11/8/3 -f 9/6/4 12/8/4 97/42/4 -f 99/42/2 100/43/2 11/6/2 -f 98/44/12 97/43/12 100/42/12 -f 131/45/12 132/46/12 129/12/12 -f 128/47/3 132/46/3 131/45/3 -f 125/47/1 130/46/1 129/45/1 -f 127/47/2 129/46/2 132/45/2 -f 126/47/4 131/46/4 130/45/4 -f 163/45/12 164/46/12 161/12/12 -f 160/47/3 164/46/3 163/45/3 -f 157/47/1 162/46/1 161/45/1 -f 159/47/2 161/46/2 164/45/2 -f 158/47/4 163/46/4 162/45/4 -f 172/48/8 169/49/8 173/50/8 -f 168/51/3 172/48/3 171/52/3 -f 167/53/2 169/49/2 172/48/2 -f 166/54/4 171/55/4 170/56/4 -f 175/57/12 176/58/12 173/59/12 -f 171/55/9 175/58/9 174/57/9 -f 172/48/6 176/60/6 175/61/6 -f 170/56/7 174/62/7 173/63/7 -f 167/53/1 165/64/1 170/56/1 -f 207/45/12 208/46/12 205/12/12 -f 204/47/3 208/46/3 207/45/3 -f 201/47/1 206/46/1 205/45/1 -f 203/47/2 205/46/2 208/45/2 -f 202/47/4 207/46/4 206/45/4 -f 197/65/12 191/66/12 179/67/12 -f 215/68/25 194/69/25 195/70/25 -f 216/71/26 193/72/26 194/69/26 -f 214/73/27 195/70/27 196/74/27 -f 213/75/28 196/74/28 197/76/28 -f 212/77/29 197/76/29 198/78/29 -f 211/79/30 198/80/30 199/81/30 -f 210/82/31 199/81/31 200/83/31 -f 209/84/32 200/83/32 179/85/32 -f 217/86/33 192/87/33 193/72/33 -f 218/88/34 191/89/34 192/87/34 -f 219/90/35 180/91/35 191/89/35 -f 220/92/36 179/85/36 180/91/36 -f 229/93/37 230/94/37 214/73/37 -f 212/77/38 228/95/38 229/93/38 -f 227/55/39 228/95/39 212/77/39 -f 226/96/40 227/97/40 211/79/40 -f 209/84/41 225/98/41 226/96/41 -f 224/99/42 225/98/42 209/84/42 -f 223/100/43 224/99/43 220/92/43 -f 214/73/44 230/94/44 231/101/44 -f 231/101/45 232/102/45 216/71/45 -f 216/71/46 232/102/46 221/103/46 -f 221/103/47 222/104/47 218/88/47 -f 222/104/48 223/100/48 219/90/48 -f 190/105/49 224/99/49 223/100/49 -f 188/106/50 189/107/50 223/100/50 -f 190/105/51 177/108/51 225/98/51 -f 178/109/52 226/96/52 225/98/52 -f 181/110/53 227/97/53 226/96/53 -f 187/111/54 188/106/54 222/104/54 -f 187/111/55 221/103/55 232/102/55 -f 182/112/56 228/95/56 227/55/56 -f 183/113/57 229/93/57 228/95/57 -f 184/114/58 230/94/58 229/93/58 -f 185/115/59 231/101/59 230/94/59 -f 185/115/60 186/116/60 232/102/60 -f 262/117/26 274/118/26 273/119/26 -f 246/120/12 258/121/12 268/122/12 -f 240/123/29 252/124/29 251/125/29 -f 237/126/32 249/127/32 248/128/32 -f 244/129/26 256/119/26 255/130/26 -f 234/131/34 245/132/34 246/133/34 -f 241/134/28 253/135/28 252/124/28 -f 237/126/31 238/136/31 250/137/31 -f 233/91/33 246/133/33 256/119/33 -f 235/138/35 247/139/35 245/132/35 -f 242/87/27 254/140/27 253/135/27 -f 239/80/30 251/141/30 250/137/30 -f 236/83/36 248/128/36 247/139/36 -f 243/142/25 255/130/25 254/140/25 -f 247/143/12 259/144/12 257/145/12 -f 254/135/12 266/146/12 265/147/12 -f 251/148/12 263/149/12 262/150/12 -f 248/151/12 260/152/12 259/144/12 -f 254/135/12 255/153/12 267/154/12 -f 251/148/12 252/155/12 264/156/12 -f 249/157/12 261/158/12 260/152/12 -f 256/159/12 268/122/12 267/154/12 -f 245/160/12 257/145/12 258/121/12 -f 253/161/12 265/147/12 264/156/12 -f 250/162/12 262/150/12 261/158/12 -f 258/163/30 270/132/30 280/164/30 -f 259/165/28 271/133/28 269/166/28 -f 266/167/36 278/168/36 277/128/36 -f 263/120/33 275/130/33 274/118/33 -f 260/169/27 272/170/27 271/133/27 -f 267/171/32 279/139/32 278/168/32 -f 264/172/34 276/173/34 275/127/34 -f 261/174/25 273/119/25 272/170/25 -f 268/175/31 280/164/31 279/139/31 -f 257/176/29 269/166/29 270/132/29 -f 265/177/35 277/128/35 276/173/35 -f 107/178/12 109/179/12 101/180/12 -f 116/181/32 117/182/32 105/183/32 -f 117/182/31 118/184/31 106/185/31 -f 118/184/30 119/186/30 107/187/30 -f 120/188/28 121/189/28 109/190/28 -f 121/189/27 122/191/27 110/192/27 -f 122/191/25 123/193/25 111/194/25 -f 113/195/35 115/196/35 103/197/35 -f 114/198/34 113/195/34 102/199/34 -f 124/200/33 114/201/33 101/202/33 -f 123/193/26 124/200/26 112/203/26 -f 119/186/29 120/188/29 108/204/29 -f 115/196/36 116/181/36 104/205/36 -f 139/206/12 141/207/12 133/178/12 -f 147/208/36 148/60/36 136/181/36 -f 148/60/32 149/209/32 137/182/32 -f 149/209/31 150/210/31 138/184/31 -f 150/210/30 151/211/30 139/186/30 -f 151/211/29 152/50/29 140/188/29 -f 152/50/28 153/212/28 141/189/28 -f 153/212/27 154/63/27 142/191/27 -f 154/63/25 155/213/25 143/193/25 -f 155/213/26 156/62/26 144/200/26 -f 156/62/33 146/214/33 133/201/33 -f 146/215/34 145/61/34 134/195/34 -f 145/61/35 147/208/35 135/196/35 -f 2/7/1 4/1/1 1/3/1 -f 4/7/2 8/1/2 3/3/2 -f 8/7/3 6/1/3 7/3/3 -f 6/7/4 2/1/4 5/3/4 -f 1/3/5 3/2/5 5/5/5 -f 11/8/6 12/6/6 8/7/6 -f 10/6/7 4/1/7 9/8/7 -f 11/6/8 8/1/8 10/8/8 -f 2/1/9 6/7/9 9/6/9 -f 21/17/2 20/9/2 22/11/2 -f 17/22/3 19/12/3 28/14/3 -f 23/11/10 14/15/10 24/17/10 -f 24/9/5 22/10/5 17/17/5 -f 23/17/11 21/11/11 14/16/11 -f 18/9/12 20/10/12 23/17/12 -f 18/10/4 23/11/4 17/9/4 -f 16/16/13 21/17/13 15/15/13 -f 27/20/14 28/14/14 31/19/14 -f 20/10/3 18/9/3 25/21/3 -f 19/12/3 20/10/3 26/13/3 -f 18/9/3 17/22/3 27/20/3 -f 29/24/3 31/19/3 30/23/3 -f 26/13/15 25/21/15 30/23/15 -f 28/14/16 26/13/16 32/18/16 -f 25/21/17 27/20/17 29/24/17 -f 41/11/2 42/17/2 40/10/2 -f 37/9/1 48/20/1 39/10/1 -f 43/17/18 44/11/18 34/16/18 -f 44/17/5 37/9/5 42/11/5 -f 43/11/19 34/15/19 41/17/19 -f 38/10/12 43/11/12 40/9/12 -f 38/9/4 37/10/4 43/17/4 -f 36/15/20 35/16/20 41/11/20 -f 47/14/21 51/18/21 48/20/21 -f 40/12/1 45/13/1 38/22/1 -f 39/10/1 46/21/1 40/12/1 -f 38/22/1 47/14/1 37/9/1 -f 49/23/1 50/24/1 51/18/1 -f 46/21/22 50/24/22 45/13/22 -f 48/20/23 52/19/23 46/21/23 -f 45/13/24 49/23/24 47/14/24 -f 60/31/3 59/25/3 54/27/3 -f 55/32/1 56/28/1 57/30/1 -f 56/28/12 60/31/12 58/29/12 -f 59/35/5 55/32/5 53/33/5 -f 58/36/2 54/34/2 57/30/2 -f 68/31/3 67/25/3 62/27/3 -f 63/32/1 64/28/1 65/30/1 -f 64/28/12 68/31/12 66/29/12 -f 67/35/5 63/32/5 61/33/5 -f 66/36/2 62/34/2 65/30/2 -f 76/28/3 70/29/3 75/32/3 -f 71/25/1 73/26/1 72/31/1 -f 72/31/12 74/27/12 76/28/12 -f 75/32/5 69/30/5 71/35/5 -f 74/34/4 73/33/4 70/36/4 -f 84/28/3 78/29/3 83/32/3 -f 79/25/1 81/26/1 80/31/1 -f 80/31/12 82/27/12 84/28/12 -f 83/32/5 77/30/5 79/35/5 -f 82/34/4 81/33/4 78/36/4 -f 99/43/1 10/6/1 98/42/1 -f 100/42/3 97/43/3 11/8/3 -f 98/43/4 9/6/4 97/42/4 -f 10/8/2 99/42/2 11/6/2 -f 99/216/12 98/44/12 100/42/12 -f 130/22/12 131/45/12 129/12/12 -f 126/5/3 128/47/3 131/45/3 -f 127/5/1 125/47/1 129/45/1 -f 128/5/2 127/47/2 132/45/2 -f 125/5/4 126/47/4 130/45/4 -f 162/22/12 163/45/12 161/12/12 -f 158/5/3 160/47/3 163/45/3 -f 159/5/1 157/47/1 161/45/1 -f 160/5/2 159/47/2 164/45/2 -f 157/5/4 158/47/4 162/45/4 -f 176/210/8 172/48/8 173/50/8 -f 166/47/3 168/51/3 171/52/3 -f 168/51/2 167/53/2 172/48/2 -f 165/64/4 166/54/4 170/56/4 -f 174/217/12 175/57/12 173/59/12 -f 170/56/9 171/55/9 174/57/9 -f 171/52/6 172/48/6 175/61/6 -f 169/49/7 170/56/7 173/63/7 -f 169/49/1 167/53/1 170/56/1 -f 206/22/12 207/45/12 205/12/12 -f 202/5/3 204/47/3 207/45/3 -f 203/5/1 201/47/1 205/45/1 -f 204/5/2 203/47/2 208/45/2 -f 201/5/4 202/47/4 206/45/4 -f 179/67/12 200/218/12 199/219/12 -f 199/219/12 198/220/12 197/65/12 -f 197/65/12 196/221/12 195/74/12 -f 195/74/12 194/222/12 193/223/12 -f 193/223/12 192/224/12 191/66/12 -f 191/66/12 180/225/12 179/67/12 -f 179/67/12 199/219/12 197/65/12 -f 197/65/12 195/74/12 193/223/12 -f 193/223/12 191/66/12 197/65/12 -f 214/73/25 215/68/25 195/70/25 -f 215/68/26 216/71/26 194/69/26 -f 213/75/27 214/73/27 196/74/27 -f 212/77/28 213/75/28 197/76/28 -f 211/226/29 212/77/29 198/78/29 -f 210/82/30 211/79/30 199/81/30 -f 209/84/31 210/82/31 200/83/31 -f 220/92/32 209/84/32 179/85/32 -f 216/71/33 217/86/33 193/72/33 -f 217/86/34 218/88/34 192/87/34 -f 218/88/35 219/90/35 191/89/35 -f 219/90/36 220/92/36 180/91/36 -f 213/75/37 229/93/37 214/73/37 -f 213/75/38 212/77/38 229/93/38 -f 211/226/39 227/55/39 212/77/39 -f 210/82/40 226/96/40 211/79/40 -f 210/82/41 209/84/41 226/96/41 -f 220/92/42 224/99/42 209/84/42 -f 219/90/43 223/100/43 220/92/43 -f 215/68/44 214/73/44 231/101/44 -f 215/68/45 231/101/45 216/71/45 -f 217/86/46 216/71/46 221/103/46 -f 217/86/47 221/103/47 218/88/47 -f 218/88/48 222/104/48 219/90/48 -f 189/107/49 190/105/49 223/100/49 -f 222/104/50 188/106/50 223/100/50 -f 224/99/51 190/105/51 225/98/51 -f 177/108/52 178/109/52 225/98/52 -f 178/109/53 181/110/53 226/96/53 -f 221/103/54 187/111/54 222/104/54 -f 186/116/55 187/111/55 232/102/55 -f 181/54/56 182/112/56 227/55/56 -f 182/112/57 183/113/57 228/95/57 -f 183/113/58 184/114/58 229/93/58 -f 184/114/59 185/115/59 230/94/59 -f 231/101/60 185/115/60 232/102/60 -f 261/174/26 262/117/26 273/119/26 -f 256/159/12 246/120/12 268/122/12 -f 239/69/29 240/123/29 251/125/29 -f 236/83/32 237/126/32 248/128/32 -f 243/142/26 244/129/26 255/130/26 -f 233/91/34 234/131/34 246/133/34 -f 240/123/28 241/134/28 252/124/28 -f 249/127/31 237/126/31 250/137/31 -f 244/129/33 233/91/33 256/119/33 -f 234/131/35 235/138/35 245/132/35 -f 241/134/27 242/87/27 253/135/27 -f 238/136/30 239/80/30 250/137/30 -f 235/138/36 236/83/36 247/139/36 -f 242/87/25 243/142/25 254/140/25 -f 245/160/12 247/143/12 257/145/12 -f 253/161/12 254/135/12 265/147/12 -f 250/162/12 251/148/12 262/150/12 -f 247/143/12 248/151/12 259/144/12 -f 266/146/12 254/135/12 267/154/12 -f 263/149/12 251/148/12 264/156/12 -f 248/151/12 249/157/12 260/152/12 -f 255/153/12 256/159/12 267/154/12 -f 246/120/12 245/160/12 258/121/12 -f 252/155/12 253/161/12 264/156/12 -f 249/157/12 250/162/12 261/158/12 -f 268/175/30 258/163/30 280/164/30 -f 257/176/28 259/165/28 269/166/28 -f 265/177/36 266/167/36 277/128/36 -f 262/117/33 263/120/33 274/118/33 -f 259/165/27 260/169/27 271/133/27 -f 266/167/32 267/171/32 278/168/32 -f 263/227/34 264/172/34 275/127/34 -f 260/169/25 261/174/25 272/170/25 -f 267/171/31 268/175/31 279/139/31 -f 258/163/29 257/176/29 270/132/29 -f 264/172/35 265/177/35 276/173/35 -f 101/180/12 102/228/12 103/229/12 -f 103/229/12 104/230/12 105/231/12 -f 105/231/12 106/232/12 107/178/12 -f 107/178/12 108/233/12 109/179/12 -f 109/179/12 110/234/12 111/235/12 -f 111/235/12 112/236/12 101/180/12 -f 101/180/12 103/229/12 105/231/12 -f 105/231/12 107/178/12 101/180/12 -f 109/179/12 111/235/12 101/180/12 -f 104/205/32 116/181/32 105/183/32 -f 105/183/31 117/182/31 106/185/31 -f 106/185/30 118/184/30 107/187/30 -f 108/204/28 120/188/28 109/190/28 -f 109/190/27 121/189/27 110/192/27 -f 110/192/25 122/191/25 111/194/25 -f 102/199/35 113/195/35 103/197/35 -f 101/237/34 114/198/34 102/199/34 -f 112/203/33 124/200/33 101/202/33 -f 111/194/26 123/193/26 112/203/26 -f 107/187/29 119/186/29 108/204/29 -f 103/197/36 115/196/36 104/205/36 -f 133/178/12 134/238/12 135/239/12 -f 135/239/12 136/240/12 133/178/12 -f 137/241/12 138/242/12 139/206/12 -f 139/206/12 140/243/12 141/207/12 -f 141/207/12 142/244/12 143/245/12 -f 143/245/12 144/246/12 133/178/12 -f 133/178/12 136/240/12 137/241/12 -f 137/241/12 139/206/12 133/178/12 -f 141/207/12 143/245/12 133/178/12 -f 135/196/36 147/208/36 136/181/36 -f 136/181/32 148/60/32 137/182/32 -f 137/182/31 149/209/31 138/184/31 -f 138/184/30 150/210/30 139/186/30 -f 139/186/29 151/211/29 140/188/29 -f 140/188/28 152/50/28 141/189/28 -f 141/189/27 153/212/27 142/191/27 -f 142/191/25 154/63/25 143/193/25 -f 143/193/26 155/213/26 144/200/26 -f 144/200/33 156/62/33 133/201/33 -f 133/198/34 146/215/34 134/195/34 -f 134/195/35 145/61/35 135/196/35 +f 4/1/1 1/2/1 2/3/1 +f 8/4/2 3/5/2 4/6/2 +f 6/7/3 7/8/3 8/9/3 +f 2/10/4 5/11/4 6/12/4 +f 3/13/5 5/14/5 1/2/5 +f 12/15/6 8/9/6 11/16/6 +f 4/1/7 9/17/7 10/18/7 +f 8/4/8 10/19/8 11/20/8 +f 6/12/9 9/21/9 2/10/9 +f 20/22/2 22/23/2 21/24/2 +f 19/25/3 28/26/3 17/27/3 +f 14/28/10 24/29/10 23/30/10 +f 22/31/5 17/32/5 24/33/5 +f 21/34/11 14/35/11 23/36/11 +f 20/37/12 23/36/12 18/38/12 +f 23/30/4 17/39/4 18/40/4 +f 21/24/13 15/41/13 16/42/13 +f 28/26/14 31/43/14 27/44/14 +f 18/38/3 25/45/3 20/37/3 +f 20/37/3 26/46/3 19/25/3 +f 17/27/3 27/44/3 18/38/3 +f 31/43/3 30/47/3 29/48/3 +f 25/45/15 30/47/15 26/46/15 +f 26/46/16 32/49/16 28/26/16 +f 27/44/17 29/48/17 25/45/17 +f 42/50/2 40/51/2 41/52/2 +f 48/53/1 39/54/1 37/55/1 +f 44/56/18 34/57/18 43/58/18 +f 37/55/5 42/59/5 44/60/5 +f 34/61/19 41/62/19 43/63/19 +f 43/63/12 40/64/12 38/65/12 +f 37/66/4 43/58/4 38/67/4 +f 35/68/20 41/52/20 36/69/20 +f 51/70/21 48/53/21 47/71/21 +f 45/72/1 38/73/1 40/74/1 +f 46/75/1 40/74/1 39/54/1 +f 47/71/1 37/55/1 38/73/1 +f 50/76/1 51/70/1 49/77/1 +f 50/76/22 45/72/22 46/75/22 +f 52/78/23 46/75/23 48/53/23 +f 49/77/24 47/71/24 45/72/24 +f 59/79/3 54/80/3 60/81/3 +f 56/82/1 57/83/1 55/84/1 +f 60/81/12 58/85/12 56/82/12 +f 55/84/5 53/86/5 59/87/5 +f 54/88/2 57/83/2 58/89/2 +f 67/90/3 62/91/3 68/92/3 +f 64/93/1 65/94/1 63/95/1 +f 68/92/12 66/96/12 64/93/12 +f 63/95/5 61/97/5 67/98/5 +f 62/99/2 65/94/2 66/100/2 +f 70/101/3 75/102/3 76/103/3 +f 73/104/1 72/105/1 71/106/1 +f 74/107/12 76/103/12 72/105/12 +f 69/108/5 71/109/5 75/102/5 +f 73/110/4 70/111/4 74/112/4 +f 78/113/3 83/114/3 84/115/3 +f 81/116/1 80/117/1 79/118/1 +f 82/119/12 84/115/12 80/117/12 +f 77/120/5 79/121/5 83/114/5 +f 81/122/4 78/123/4 82/124/4 +f 86/125/2 85/126/2 87/127/2 +f 89/128/4 90/129/4 88/130/4 +f 92/131/2 91/132/2 93/133/2 +f 95/134/4 96/135/4 94/136/4 +f 10/18/1 98/137/1 99/138/1 +f 97/139/3 11/16/3 100/140/3 +f 9/21/4 97/141/4 98/142/4 +f 99/143/2 11/20/2 10/19/2 +f 98/144/12 100/140/12 99/145/12 +f 131/146/12 129/147/12 130/148/12 +f 128/149/3 131/146/3 126/150/3 +f 125/151/1 129/152/1 127/153/1 +f 127/154/2 132/155/2 128/156/2 +f 126/157/4 130/158/4 125/159/4 +f 163/160/12 161/161/12 162/162/12 +f 160/163/3 163/160/3 158/164/3 +f 157/165/1 161/166/1 159/167/1 +f 159/168/2 164/169/2 160/170/2 +f 158/171/4 162/172/4 157/173/4 +f 172/174/8 173/175/8 176/176/8 +f 168/177/3 171/178/3 166/179/3 +f 167/180/2 172/174/2 168/177/2 +f 166/181/4 170/182/4 165/183/4 +f 175/184/12 173/185/12 174/186/12 +f 171/187/9 174/188/9 170/182/9 +f 172/174/6 175/189/6 171/178/6 +f 169/190/7 174/191/7 173/192/7 +f 167/180/1 170/182/1 169/190/1 +f 207/193/12 205/194/12 206/195/12 +f 204/196/3 207/193/3 202/197/3 +f 201/198/1 205/199/1 203/200/1 +f 203/201/2 208/202/2 204/203/2 +f 202/204/4 206/205/4 201/206/4 +f 197/207/12 193/208/12 179/209/12 +f 246/210/12 268/211/12 256/212/12 +f 247/213/12 257/214/12 245/215/12 +f 254/216/12 265/217/12 253/218/12 +f 251/219/12 262/220/12 250/221/12 +f 248/222/12 259/223/12 247/213/12 +f 254/216/12 267/224/12 266/225/12 +f 252/226/12 263/227/12 251/219/12 +f 249/228/12 260/229/12 248/222/12 +f 256/212/12 267/224/12 255/230/12 +f 245/215/12 258/231/12 246/210/12 +f 253/218/12 264/232/12 252/226/12 +f 250/221/12 261/233/12 249/228/12 +f 109/234/12 111/235/12 101/236/12 +f 141/237/12 143/238/12 133/239/12 +f 4/1/1 3/13/1 1/2/1 +f 8/4/2 7/240/2 3/5/2 +f 6/7/3 5/241/3 7/8/3 +f 2/10/4 1/242/4 5/11/4 +f 3/13/5 7/243/5 5/14/5 +f 12/15/6 6/7/6 8/9/6 +f 4/1/7 2/3/7 9/17/7 +f 8/4/8 4/6/8 10/19/8 +f 6/12/9 12/244/9 9/21/9 +f 20/22/2 19/245/2 22/23/2 +f 19/25/3 26/46/3 28/26/3 +f 14/28/10 13/246/10 24/29/10 +f 22/31/5 19/247/5 17/32/5 +f 21/34/11 16/248/11 14/35/11 +f 20/37/12 21/34/12 23/36/12 +f 23/30/4 24/29/4 17/39/4 +f 21/24/13 22/23/13 15/41/13 +f 28/26/14 32/49/14 31/43/14 +f 18/38/3 27/44/3 25/45/3 +f 20/37/3 25/45/3 26/46/3 +f 17/27/3 28/26/3 27/44/3 +f 31/43/3 32/49/3 30/47/3 +f 25/45/15 29/48/15 30/47/15 +f 26/46/16 30/47/16 32/49/16 +f 27/44/17 31/43/17 29/48/17 +f 42/50/2 39/249/2 40/51/2 +f 48/53/1 46/75/1 39/54/1 +f 44/56/18 33/250/18 34/57/18 +f 37/55/5 39/54/5 42/59/5 +f 34/61/19 36/251/19 41/62/19 +f 43/63/12 41/62/12 40/64/12 +f 37/66/4 44/56/4 43/58/4 +f 35/68/20 42/50/20 41/52/20 +f 51/70/21 52/78/21 48/53/21 +f 45/72/1 47/71/1 38/73/1 +f 46/75/1 45/72/1 40/74/1 +f 47/71/1 48/53/1 37/55/1 +f 50/76/1 52/78/1 51/70/1 +f 50/76/22 49/77/22 45/72/22 +f 52/78/23 50/76/23 46/75/23 +f 49/77/24 51/70/24 47/71/24 +f 59/79/3 53/252/3 54/80/3 +f 56/82/1 58/85/1 57/83/1 +f 60/81/12 54/80/12 58/85/12 +f 55/84/5 57/83/5 53/86/5 +f 54/88/2 53/86/2 57/83/2 +f 67/90/3 61/253/3 62/91/3 +f 64/93/1 66/96/1 65/94/1 +f 68/92/12 62/91/12 66/96/12 +f 63/95/5 65/94/5 61/97/5 +f 62/99/2 61/97/2 65/94/2 +f 70/101/3 69/108/3 75/102/3 +f 73/104/1 74/107/1 72/105/1 +f 74/107/12 70/101/12 76/103/12 +f 69/108/5 73/110/5 71/109/5 +f 73/110/4 69/108/4 70/111/4 +f 78/113/3 77/120/3 83/114/3 +f 81/116/1 82/119/1 80/117/1 +f 82/119/12 78/113/12 84/115/12 +f 77/120/5 81/122/5 79/121/5 +f 81/122/4 77/120/4 78/123/4 +f 10/18/1 9/17/1 98/137/1 +f 97/139/3 12/15/3 11/16/3 +f 9/21/4 12/244/4 97/141/4 +f 99/143/2 100/254/2 11/20/2 +f 98/144/12 97/139/12 100/140/12 +f 131/146/12 132/255/12 129/147/12 +f 128/149/3 132/255/3 131/146/3 +f 125/151/1 130/256/1 129/152/1 +f 127/154/2 129/257/2 132/155/2 +f 126/157/4 131/258/4 130/158/4 +f 163/160/12 164/259/12 161/161/12 +f 160/163/3 164/259/3 163/160/3 +f 157/165/1 162/260/1 161/166/1 +f 159/168/2 161/261/2 164/169/2 +f 158/171/4 163/262/4 162/172/4 +f 172/174/8 169/190/8 173/175/8 +f 168/177/3 172/174/3 171/178/3 +f 167/180/2 169/190/2 172/174/2 +f 166/181/4 171/187/4 170/182/4 +f 175/184/12 176/263/12 173/185/12 +f 171/187/9 175/264/9 174/188/9 +f 172/174/6 176/265/6 175/189/6 +f 169/190/7 170/182/7 174/191/7 +f 167/180/1 165/183/1 170/182/1 +f 207/193/12 208/266/12 205/194/12 +f 204/196/3 208/266/3 207/193/3 +f 201/198/1 206/267/1 205/199/1 +f 203/201/2 205/268/2 208/202/2 +f 202/204/4 207/269/4 206/205/4 +f 179/209/12 200/270/12 199/271/12 +f 199/271/12 198/272/12 197/207/12 +f 197/207/12 196/273/12 195/274/12 +f 195/274/12 194/275/12 193/208/12 +f 193/208/12 192/276/12 191/277/12 +f 191/277/12 180/278/12 193/208/12 +f 180/278/12 179/209/12 193/208/12 +f 179/209/12 199/271/12 197/207/12 +f 197/207/12 195/274/12 193/208/12 +f 246/210/12 258/231/12 268/211/12 +f 247/213/12 259/223/12 257/214/12 +f 254/216/12 266/225/12 265/217/12 +f 251/219/12 263/227/12 262/220/12 +f 248/222/12 260/229/12 259/223/12 +f 254/216/12 255/230/12 267/224/12 +f 252/226/12 264/232/12 263/227/12 +f 249/228/12 261/233/12 260/229/12 +f 256/212/12 268/211/12 267/224/12 +f 245/215/12 257/214/12 258/231/12 +f 253/218/12 265/217/12 264/232/12 +f 250/221/12 262/220/12 261/233/12 +f 101/236/12 102/279/12 103/280/12 +f 103/280/12 104/281/12 105/282/12 +f 105/282/12 106/283/12 107/284/12 +f 107/284/12 108/285/12 109/234/12 +f 109/234/12 110/286/12 111/235/12 +f 111/235/12 112/287/12 101/236/12 +f 101/236/12 103/280/12 105/282/12 +f 105/282/12 107/284/12 101/236/12 +f 107/284/12 109/234/12 101/236/12 +f 133/239/12 134/288/12 135/289/12 +f 135/289/12 136/290/12 133/239/12 +f 136/290/12 137/291/12 133/239/12 +f 137/291/12 138/292/12 139/293/12 +f 139/293/12 140/294/12 141/237/12 +f 141/237/12 142/295/12 143/238/12 +f 143/238/12 144/296/12 133/239/12 +f 137/291/12 139/293/12 133/239/12 +f 139/293/12 141/237/12 133/239/12 +s 1 +f 215/297/25 195/298/3 214/299/3 +f 216/300/26 194/301/25 215/297/25 +f 214/299/3 196/302/27 213/303/27 +f 213/303/27 197/304/28 212/305/28 +f 212/305/28 198/306/4 211/307/4 +f 211/308/4 199/309/29 210/310/29 +f 210/310/29 200/311/30 209/312/30 +f 209/312/30 179/313/1 220/314/1 +f 217/315/2 193/316/26 216/300/26 +f 218/317/31 192/318/2 217/315/2 +f 219/319/32 191/320/31 218/317/31 +f 220/314/1 180/321/32 219/319/32 +f 229/322/33 214/299/34 213/303/33 +f 212/305/35 229/322/33 213/303/33 +f 227/323/36 212/305/35 211/307/36 +f 226/324/37 211/308/36 210/310/37 +f 209/312/38 226/324/37 210/310/37 +f 224/325/39 209/312/38 220/314/39 +f 223/326/40 220/314/39 219/319/40 +f 230/327/34 215/297/41 214/299/34 +f 231/328/41 216/300/42 215/297/41 +f 232/329/42 217/315/43 216/300/42 +f 221/330/43 218/317/44 217/315/43 +f 222/331/44 219/319/40 218/317/44 +f 190/332/45 223/326/46 189/333/46 +f 189/333/46 222/331/47 188/334/47 +f 177/335/48 224/325/45 190/332/45 +f 178/336/49 225/337/48 177/335/48 +f 181/338/50 226/324/49 178/336/49 +f 188/334/47 221/330/51 187/339/51 +f 187/339/51 232/329/52 186/340/52 +f 182/341/53 227/323/50 181/342/50 +f 183/343/54 228/344/53 182/341/53 +f 183/343/54 230/327/55 229/322/54 +f 185/345/56 230/327/55 184/346/55 +f 186/340/52 231/328/56 185/345/56 +f 262/347/26 273/348/25 261/349/25 +f 240/350/28 251/351/4 239/352/4 +f 237/353/30 248/354/1 236/355/1 +f 243/356/25 256/357/26 255/358/25 +f 233/359/2 245/360/31 246/361/2 +f 241/362/27 252/363/28 240/350/28 +f 238/364/29 249/365/30 237/353/30 +f 244/366/26 246/361/2 256/357/26 +f 234/367/31 247/368/32 245/360/31 +f 242/369/3 253/370/27 241/362/27 +f 239/371/4 250/372/29 238/364/29 +f 236/355/1 247/368/32 235/373/32 +f 243/356/25 254/374/3 242/369/3 +f 258/375/4 280/376/29 268/377/29 +f 259/378/27 269/379/28 257/380/28 +f 266/381/1 277/382/32 265/383/32 +f 263/384/2 274/385/26 262/347/26 +f 260/386/3 271/387/27 259/378/27 +f 267/388/30 278/389/1 266/381/1 +f 264/390/31 275/391/2 263/392/2 +f 261/349/25 272/393/3 260/386/3 +f 268/377/29 279/394/30 267/388/30 +f 257/380/28 270/395/4 258/375/4 +f 265/383/32 276/396/31 264/390/31 +f 116/397/1 105/398/30 104/399/1 +f 117/400/30 106/401/29 105/398/30 +f 118/402/29 107/403/4 106/401/29 +f 120/404/28 109/405/27 108/406/28 +f 121/407/27 110/408/3 109/405/27 +f 122/409/3 111/410/25 110/408/3 +f 113/411/31 103/412/32 102/413/31 +f 114/414/2 102/413/31 101/415/2 +f 124/416/26 101/417/2 112/418/26 +f 123/419/25 112/418/26 111/410/25 +f 119/420/4 108/406/28 107/403/4 +f 115/421/32 104/399/1 103/412/32 +f 147/422/32 136/423/1 135/424/32 +f 148/425/1 137/426/30 136/423/1 +f 149/427/30 138/428/29 137/426/30 +f 150/429/29 139/430/4 138/428/29 +f 151/431/4 140/432/28 139/430/4 +f 152/433/28 141/434/27 140/432/28 +f 153/435/27 142/436/3 141/434/27 +f 154/437/3 143/438/25 142/436/3 +f 155/439/25 144/440/26 143/438/25 +f 156/441/26 133/442/2 144/440/26 +f 146/443/2 134/444/31 133/445/2 +f 145/446/31 135/424/32 134/444/31 +f 215/297/25 194/301/25 195/298/3 +f 216/300/26 193/316/26 194/301/25 +f 214/299/3 195/298/3 196/302/27 +f 213/303/27 196/302/27 197/304/28 +f 212/305/28 197/304/28 198/306/4 +f 211/308/4 198/447/4 199/309/29 +f 210/310/29 199/309/29 200/311/30 +f 209/312/30 200/311/30 179/313/1 +f 217/315/2 192/318/2 193/316/26 +f 218/317/31 191/320/31 192/318/2 +f 219/319/32 180/321/32 191/320/31 +f 220/314/1 179/313/1 180/321/32 +f 229/322/33 230/327/34 214/299/34 +f 212/305/35 228/344/35 229/322/33 +f 227/323/36 228/344/35 212/305/35 +f 226/324/37 227/448/36 211/308/36 +f 209/312/38 225/337/38 226/324/37 +f 224/325/39 225/337/38 209/312/38 +f 223/326/40 224/325/39 220/314/39 +f 230/327/34 231/328/41 215/297/41 +f 231/328/41 232/329/42 216/300/42 +f 232/329/42 221/330/43 217/315/43 +f 221/330/43 222/331/44 218/317/44 +f 222/331/44 223/326/40 219/319/40 +f 190/332/45 224/325/45 223/326/46 +f 189/333/46 223/326/46 222/331/47 +f 177/335/48 225/337/48 224/325/45 +f 178/336/49 226/324/49 225/337/48 +f 181/338/50 227/448/50 226/324/49 +f 188/334/47 222/331/47 221/330/51 +f 187/339/51 221/330/51 232/329/52 +f 182/341/53 228/344/53 227/323/50 +f 183/343/54 229/322/54 228/344/53 +f 183/343/54 184/346/55 230/327/55 +f 185/345/56 231/328/56 230/327/55 +f 186/340/52 232/329/52 231/328/56 +f 262/347/26 274/385/26 273/348/25 +f 240/350/28 252/363/28 251/351/4 +f 237/353/30 249/365/30 248/354/1 +f 243/356/25 244/366/26 256/357/26 +f 233/359/2 234/367/31 245/360/31 +f 241/362/27 253/370/27 252/363/28 +f 238/364/29 250/372/29 249/365/30 +f 244/366/26 233/359/2 246/361/2 +f 234/367/31 235/373/32 247/368/32 +f 242/369/3 254/374/3 253/370/27 +f 239/371/4 251/449/4 250/372/29 +f 236/355/1 248/354/1 247/368/32 +f 243/356/25 255/358/25 254/374/3 +f 258/375/4 270/395/4 280/376/29 +f 259/378/27 271/387/27 269/379/28 +f 266/381/1 278/389/1 277/382/32 +f 263/384/2 275/450/2 274/385/26 +f 260/386/3 272/393/3 271/387/27 +f 267/388/30 279/394/30 278/389/1 +f 264/390/31 276/396/31 275/391/2 +f 261/349/25 273/348/25 272/393/3 +f 268/377/29 280/376/29 279/394/30 +f 257/380/28 269/379/28 270/395/4 +f 265/383/32 277/382/32 276/396/31 +f 116/397/1 117/400/30 105/398/30 +f 117/400/30 118/402/29 106/401/29 +f 118/402/29 119/420/4 107/403/4 +f 120/404/28 121/407/27 109/405/27 +f 121/407/27 122/409/3 110/408/3 +f 122/409/3 123/419/25 111/410/25 +f 113/411/31 115/421/32 103/412/32 +f 114/414/2 113/411/31 102/413/31 +f 124/416/26 114/451/2 101/417/2 +f 123/419/25 124/416/26 112/418/26 +f 119/420/4 120/404/28 108/406/28 +f 115/421/32 116/397/1 104/399/1 +f 147/422/32 148/425/1 136/423/1 +f 148/425/1 149/427/30 137/426/30 +f 149/427/30 150/429/29 138/428/29 +f 150/429/29 151/431/4 139/430/4 +f 151/431/4 152/433/28 140/432/28 +f 152/433/28 153/435/27 141/434/27 +f 153/435/27 154/437/3 142/436/3 +f 154/437/3 155/439/25 143/438/25 +f 155/439/25 156/441/26 144/440/26 +f 156/441/26 146/452/2 133/442/2 +f 146/443/2 145/446/31 134/444/31 +f 145/446/31 147/422/32 135/424/32 diff --git a/src/main/resources/assets/hbm/models/machines/microwave.obj b/src/main/resources/assets/hbm/models/machines/microwave.obj index 2f258c742..b13288dd5 100644 --- a/src/main/resources/assets/hbm/models/machines/microwave.obj +++ b/src/main/resources/assets/hbm/models/machines/microwave.obj @@ -1,963 +1,9 @@ -# Blender v2.82 (sub 7) OBJ File: 'microwave.blend' +# Blender v2.79 (sub 0) OBJ File: '' # www.blender.org -mtllib microwave.mtl -o mainbody_Cube.001 -v 0.238197 1.183358 -0.728996 -v 0.234821 1.183358 -0.728996 -v 0.238197 1.183358 -0.735637 -v 0.234821 1.183358 -0.735637 -v 0.238197 0.787154 -0.728996 -v 0.234821 0.787154 -0.728996 -v 0.234338 0.840926 -0.735637 -v 0.234821 1.127133 -0.735637 -v 0.238197 1.127133 -0.735637 -v 0.238197 0.840926 -0.735637 -v 0.155271 1.127133 -0.735637 -v 0.149897 1.125951 -0.735637 -v 0.838582 1.118357 -0.735637 -v 0.836356 1.121211 -0.735637 -v 0.827432 1.125951 -0.735637 -v 0.822058 1.127133 -0.735637 -v 0.826572 0.842109 -0.735637 -v 0.821198 0.840926 -0.735637 -v 0.837722 0.849703 -0.735637 -v 0.835496 0.846848 -0.735637 -v 0.140113 0.846848 -0.735637 -v 0.137887 0.849703 -0.735637 -v 0.154411 0.840926 -0.735637 -v 0.149037 0.842109 -0.735637 -v 0.138747 1.118357 -0.735637 -v 0.140973 1.121211 -0.735637 -v 0.234338 0.840926 -0.731795 -v 0.234821 1.127133 -0.731795 -v 0.140973 1.121211 -0.731795 -v 0.138747 1.118357 -0.731795 -v 0.149897 1.125951 -0.731795 -v 0.155271 1.127133 -0.731795 -v 0.137887 0.849703 -0.731795 -v 0.140113 0.846848 -0.731795 -v 0.149037 0.842109 -0.731795 -v 0.154411 0.840926 -0.731795 -v 0.303131 1.127133 -0.732176 -v 0.303131 0.840926 -0.732176 -v 0.820933 1.127133 -0.732176 -v 0.826308 1.125951 -0.732176 -v 0.835231 1.121211 -0.732176 -v 0.837458 1.118357 -0.732176 -v 0.836597 0.849703 -0.732176 -v 0.834371 0.846848 -0.732176 -v 0.825447 0.842109 -0.732176 -v 0.820073 0.840926 -0.732176 -v 0.234821 0.787154 -0.735637 -v 0.238197 0.787154 -0.735637 -v 0.114423 1.183358 -0.161513 -v 0.117047 1.181387 -0.156304 -v 0.127829 1.183358 -0.151007 -v 0.121182 1.181387 -0.153063 -v 0.127829 1.183358 -0.735637 -v 0.121182 1.181387 -0.733581 -v 0.117047 1.181387 -0.730340 -v 0.114423 1.183358 -0.725132 -v 0.862732 0.787154 -0.159690 -v 0.857794 0.789125 -0.156304 -v 0.849338 0.787154 -0.151007 -v 0.853658 0.789125 -0.153063 -v 0.847012 1.183358 -0.151007 -v 0.853658 1.181387 -0.153063 -v 0.857794 1.181387 -0.156304 -v 0.860417 1.183358 -0.161513 -v 0.853658 0.789125 -0.733581 -v 0.857794 0.789125 -0.730340 -v 0.860417 0.787154 -0.726955 -v 0.848027 0.787154 -0.735637 -v 0.860417 1.183358 -0.725132 -v 0.857794 1.181387 -0.730340 -v 0.853658 1.181387 -0.733581 -v 0.847012 1.183358 -0.735637 -v 0.112109 0.787154 -0.726955 -v 0.115750 0.789125 -0.732973 -v 0.120534 0.789125 -0.735475 -v 0.126814 0.787154 -0.735637 -v 0.125502 0.787154 -0.149193 -v 0.121182 0.789125 -0.153063 -v 0.117047 0.789125 -0.156304 -v 0.114423 0.787154 -0.159690 -v 0.246749 0.852258 -0.727568 -v 0.246749 1.118254 -0.727568 -v 0.246749 0.852258 -0.734150 -v 0.246749 1.118254 -0.734150 -v 0.282202 0.852258 -0.727568 -v 0.282202 1.118254 -0.727568 -v 0.282202 0.852258 -0.734150 -v 0.282202 1.118254 -0.734150 -v 0.246749 0.985256 -0.755632 -v 0.246749 0.985256 -0.762214 -v 0.264475 0.852258 -0.734150 -v 0.264475 1.118254 -0.734150 -v 0.282202 0.985256 -0.762214 -v 0.282202 0.985256 -0.755632 -v 0.264475 0.852258 -0.727568 -v 0.264475 1.118254 -0.727568 -v 0.264475 0.985256 -0.755632 -v 0.264475 0.985256 -0.762214 -v 0.246749 0.852258 -0.730859 -v 0.246749 1.051755 -0.751094 -v 0.246749 1.118254 -0.730859 -v 0.246749 0.918757 -0.754385 -v 0.255612 0.852258 -0.734150 -v 0.273339 1.118254 -0.734150 -v 0.282202 0.918757 -0.754385 -v 0.282202 0.852258 -0.730859 -v 0.282202 1.118254 -0.730859 -v 0.282202 0.918757 -0.747802 -v 0.273339 0.852258 -0.727568 -v 0.255612 1.118254 -0.727568 -v 0.246749 0.918757 -0.747802 -v 0.246749 1.051755 -0.757676 -v 0.273339 0.852258 -0.734150 -v 0.255612 1.118254 -0.734150 -v 0.282202 1.051755 -0.757676 -v 0.282202 1.051755 -0.751094 -v 0.255612 0.852258 -0.727568 -v 0.273339 1.118254 -0.727568 -v 0.264475 1.118254 -0.730849 -v 0.264475 0.852258 -0.730849 -v 0.255612 0.985256 -0.755632 -v 0.273339 0.985256 -0.755632 -v 0.264475 0.918757 -0.747802 -v 0.264475 1.051755 -0.751094 -v 0.282202 0.985256 -0.758923 -v 0.273339 0.985256 -0.762214 -v 0.255612 0.985256 -0.762214 -v 0.264475 0.918757 -0.754385 -v 0.264475 1.051755 -0.757676 -v 0.246749 0.985256 -0.758923 -v 0.246749 0.918757 -0.751094 -v 0.255612 1.051755 -0.757676 -v 0.255612 0.918757 -0.754385 -v 0.273339 0.918757 -0.754385 -v 0.282202 0.918757 -0.751094 -v 0.273339 1.051755 -0.751094 -v 0.273339 0.918757 -0.747802 -v 0.255612 0.918757 -0.747802 -v 0.255612 0.852258 -0.730849 -v 0.273339 1.118254 -0.730849 -v 0.255612 1.118254 -0.730849 -v 0.273339 0.852258 -0.730849 -v 0.255612 1.051755 -0.751094 -v 0.282202 1.051755 -0.754385 -v 0.273339 1.051755 -0.757676 -v 0.246749 1.051755 -0.754385 -v 0.303131 1.127133 -0.208209 -v 0.303131 0.840926 -0.208209 -v 0.820933 1.127133 -0.208209 -v 0.826308 1.125951 -0.208209 -v 0.835231 1.121211 -0.208209 -v 0.837458 1.118357 -0.208209 -v 0.836597 0.849703 -0.208209 -v 0.834371 0.846848 -0.208209 -v 0.825447 0.842109 -0.208209 -v 0.820073 0.840926 -0.208209 -v 0.339101 1.091541 -0.732176 -v 0.339101 0.874846 -0.732176 -v 0.796813 1.091541 -0.732176 -v 0.800847 1.090653 -0.732176 -v 0.807544 1.087096 -0.732176 -v 0.809215 1.084954 -0.732176 -v 0.808569 0.881432 -0.732176 -v 0.806898 0.879290 -0.732176 -v 0.800201 0.875733 -0.732176 -v 0.796168 0.874846 -0.732176 -v 0.238197 0.840926 -0.731795 -v 0.238197 1.127133 -0.731795 -v 0.415576 0.913412 -0.000812 -v 0.415576 1.057100 -0.000812 -v 0.415576 0.913412 -0.157633 -v 0.415576 1.057100 -0.157633 -v 0.559264 0.913412 -0.000812 -v 0.559264 1.057100 -0.000812 -v 0.559264 0.913412 -0.157633 -v 0.559264 1.057100 -0.157633 -vt 0.187756 0.185116 -vt 0.190250 0.359586 -vt 0.187359 0.359553 -vt 0.184816 0.183014 -vt 0.011904 0.361665 -vt 0.011410 0.182951 -vt 0.434160 0.035160 -vt 0.437617 0.233175 -vt 0.433848 0.233203 -vt 0.421314 0.234632 -vt 0.421314 0.024505 -vt 0.424461 0.141338 -vt 0.180342 0.556180 -vt 0.006258 0.555192 -vt 0.180341 0.553216 -vt 0.619010 0.294600 -vt 0.615336 0.293939 -vt 0.618997 0.293255 -vt 0.560911 0.771909 -vt 0.499383 0.771947 -vt 0.573681 0.763070 -vt 0.551781 0.278506 -vt 0.554882 0.277399 -vt 0.554849 0.278591 -vt 0.477598 0.276038 -vt 0.480699 0.274931 -vt 0.480666 0.276123 -vt 0.456844 0.275464 -vt 0.476217 0.274807 -vt 0.476184 0.275999 -vt 0.556296 0.277438 -vt 0.556263 0.278630 -vt 0.477631 0.274846 -vt 0.575727 0.277976 -vt 0.575694 0.279168 -vt 0.550366 0.278467 -vt 0.551814 0.277314 -vt 0.482080 0.276163 -vt 0.550399 0.277275 -vt 0.482113 0.274971 -vt 0.529499 0.294540 -vt 0.531162 0.293570 -vt 0.531174 0.294916 -vt 0.615349 0.295285 -vt 0.613628 0.294117 -vt 0.536559 0.295677 -vt 0.613641 0.295463 -vt 0.534848 0.295531 -vt 0.536546 0.294332 -vt 0.620678 0.294193 -vt 0.620665 0.292848 -vt 0.534835 0.294186 -vt 0.390231 0.176341 -vt 0.365296 0.176585 -vt 0.365277 0.174628 -vt 0.008379 0.053132 -vt 0.010531 0.175541 -vt 0.008501 0.175525 -vt 0.678815 0.051868 -vt 0.681765 0.009865 -vt 0.681766 0.212069 -vt 0.191651 0.177060 -vt 0.014270 0.002844 -vt 0.192984 0.003659 -vt 0.661827 0.216665 -vt 0.508504 0.216408 -vt 0.472754 0.213047 -vt 0.182461 0.549659 -vt 0.002549 0.378060 -vt 0.181254 0.376258 -vt 0.008747 0.359552 -vt 0.004975 0.185105 -vt 0.008120 0.184943 -vt 0.006284 0.051542 -vt 0.010601 0.053093 -vt 0.004000 0.561180 -vt 0.003756 0.551834 -vt 0.006284 0.177060 -vt 0.012743 0.177034 -vt 0.012878 0.051518 -vt 0.184195 0.361727 -vt 0.193393 0.361723 -vt 0.190903 0.184977 -vt 0.194207 0.183009 -vt 0.182571 0.559338 -vt 0.182461 0.550031 -vt 0.006443 0.558120 -vt 0.002020 0.183025 -vt 0.004195 0.360497 -vt 0.005856 0.359540 -vt 0.363575 0.189539 -vt 0.388348 0.187899 -vt 0.391408 0.191039 -vt 0.913862 0.374962 -vt 0.932207 0.411652 -vt 0.913862 0.411652 -vt 0.947121 0.484382 -vt 0.928948 0.502555 -vt 0.928948 0.484382 -vt 0.922832 0.558833 -vt 0.904487 0.595522 -vt 0.904487 0.558833 -vt 0.904487 0.650556 -vt 0.922832 0.668901 -vt 0.904487 0.668901 -vt 0.831108 0.558833 -vt 0.849453 0.595522 -vt 0.831108 0.595522 -vt 0.977866 0.558833 -vt 0.996210 0.595522 -vt 0.977866 0.595522 -vt 0.959521 0.558833 -vt 0.941176 0.595522 -vt 0.941176 0.558833 -vt 0.812764 0.558833 -vt 0.794419 0.595522 -vt 0.794419 0.558833 -vt 0.886142 0.650556 -vt 0.867798 0.668901 -vt 0.867798 0.650556 -vt 0.867798 0.613867 -vt 0.886142 0.632212 -vt 0.867798 0.632212 -vt 0.922832 0.613867 -vt 0.904487 0.632212 -vt 0.904487 0.613867 -vt 0.867798 0.558833 -vt 0.886142 0.595522 -vt 0.867798 0.595522 -vt 0.899580 0.488095 -vt 0.881478 0.506196 -vt 0.881478 0.488095 -vt 0.899580 0.451892 -vt 0.881478 0.469993 -vt 0.881478 0.451892 -vt 0.947121 0.448035 -vt 0.928948 0.466208 -vt 0.928948 0.448035 -vt 0.895517 0.374962 -vt 0.877173 0.411652 -vt 0.877173 0.374962 -vt 0.858828 0.411652 -vt 0.858828 0.374962 -vt 0.877173 0.338273 -vt 0.858828 0.338273 -vt 0.895517 0.338273 -vt 0.917681 0.451892 -vt 0.899580 0.469993 -vt 0.917681 0.433790 -vt 0.899580 0.433790 -vt 0.947121 0.429861 -vt 0.928948 0.429861 -vt 0.867173 0.448727 -vt 0.848828 0.467071 -vt 0.848828 0.448727 -vt 0.867173 0.430382 -vt 0.848828 0.430382 -vt 0.881478 0.433790 -vt 0.867173 0.485416 -vt 0.848828 0.503761 -vt 0.848828 0.485416 -vt 0.867173 0.467071 -vt 0.849453 0.558833 -vt 0.849453 0.522144 -vt 0.867798 0.522144 -vt 0.886142 0.558833 -vt 0.886142 0.613867 -vt 0.922832 0.595522 -vt 0.849453 0.632212 -vt 0.849453 0.613867 -vt 0.849453 0.668901 -vt 0.849453 0.650556 -vt 0.776074 0.595522 -vt 0.776074 0.558833 -vt 0.794419 0.522144 -vt 0.776074 0.522144 -vt 0.812764 0.522144 -vt 0.941176 0.522144 -vt 0.922832 0.522144 -vt 0.959521 0.522144 -vt 0.959521 0.595522 -vt 0.977866 0.522144 -vt 0.996210 0.558833 -vt 0.812764 0.595522 -vt 0.831108 0.522144 -vt 0.886142 0.668901 -vt 0.922832 0.632212 -vt 0.904487 0.522144 -vt 0.886142 0.522144 -vt 0.917681 0.488095 -vt 0.899580 0.506196 -vt 0.917681 0.469993 -vt 0.947121 0.466208 -vt 0.895517 0.411652 -vt 0.913862 0.338273 -vt 0.932207 0.374962 -vt 0.002361 0.690819 -vt 0.139582 0.797050 -vt 0.002382 0.797077 -vt 0.002401 0.574653 -vt 0.139602 0.577216 -vt 0.002401 0.577243 -vt 0.002381 0.685835 -vt 0.139582 0.688398 -vt 0.002381 0.688425 -vt 0.002381 0.579638 -vt 0.139602 0.683414 -vt 0.002401 0.683441 -vt 0.142087 0.686223 -vt 0.139686 0.823759 -vt 0.139686 0.686202 -vt 0.139581 0.685808 -vt 0.139686 0.574626 -vt 0.278011 0.686118 -vt 0.139686 0.686118 -vt 0.248444 0.686223 -vt 0.142087 0.823780 -vt 0.139581 0.579611 -vt 0.139561 0.690792 -vt 0.250041 0.742196 -vt 0.249216 0.741377 -vt 0.249011 0.740883 -vt 0.774121 0.040412 -vt 0.741243 0.024151 -vt 0.740050 0.027021 -vt 0.969467 0.033059 -vt 0.943495 0.044419 -vt 0.971709 0.034142 -vt 0.946381 0.253662 -vt 0.739889 0.270791 -vt 0.975938 0.269283 -vt 0.769234 0.254505 -vt 0.778655 0.034951 -vt 0.748853 0.018299 -vt 0.746005 0.019438 -vt 0.975297 0.038147 -vt 0.946804 0.049219 -vt 0.976119 0.040486 -vt 0.775156 0.037976 -vt 0.946189 0.047450 -vt 0.941812 0.043603 -vt 0.456798 0.276753 -vt 0.529486 0.293195 -vt 0.696767 0.284505 -vt 0.696612 0.283178 -vt 0.740071 0.299235 -vt 0.431207 0.203196 -vt 0.430221 0.118309 -vt 0.434139 0.035214 -vt 0.688985 0.442006 -vt 0.730728 0.480254 -vt 0.688985 0.480254 -vt 0.730728 0.556749 -vt 0.688985 0.518501 -vt 0.730728 0.518501 -vt 0.754269 0.654412 -vt 0.666048 0.576401 -vt 0.754269 0.576401 -vt 0.730728 0.442006 -vt 0.688985 0.403759 -vt 0.730728 0.403759 -vt 0.437617 0.035132 -vt 0.428782 0.141338 -vt 0.428782 0.234632 -vt 0.422863 0.024375 -vt 0.423529 0.042958 -vt 0.424425 0.042882 -vt 0.499383 0.483956 -vt 0.561202 0.483917 -vt 0.573995 0.492741 -vt 0.572269 0.489869 -vt 0.565361 0.485105 -vt 0.571963 0.765944 -vt 0.565067 0.770717 -vt 0.456877 0.274272 -vt 0.362261 0.174619 -vt 0.362252 0.177081 -vt 0.221168 0.176128 -vt 0.218310 0.173556 -vt 0.218310 0.006092 -vt 0.221417 0.003539 -vt 0.388881 0.003540 -vt 0.391433 0.006646 -vt 0.393601 0.173750 -vt 0.525055 0.212989 -vt 0.674718 0.186092 -vt 0.524902 0.186971 -vt 0.472754 0.045915 -vt 0.472804 0.009580 -vt 0.673151 0.046188 -vt 0.676096 0.185512 -vt 0.678376 0.183205 -vt 0.674995 0.046955 -vt 0.678054 0.050022 -vt 0.678940 0.181820 -vt 0.012947 0.175130 -vt 0.698934 0.213354 -vt 0.698934 0.245794 -vt 0.666837 0.221675 -vt 0.666837 0.245794 -vt 0.503488 0.245686 -vt 0.472755 0.245833 -vt 0.503488 0.221424 -vt 0.666162 0.220045 -vt 0.663456 0.217340 -vt 0.504163 0.219793 -vt 0.506872 0.217084 -vt 0.004989 0.551834 -vt 0.390747 0.356145 -vt 0.386158 0.360486 -vt 0.360628 0.189572 -vt 0.219798 0.360486 -vt 0.216697 0.357385 -vt 0.216697 0.191025 -vt 0.219798 0.187924 -vt 0.360628 0.187426 -vt 0.363600 0.187579 -vt 0.947121 0.502555 -vt 0.922832 0.650556 -vt 0.867173 0.503761 -vt 0.996210 0.522144 -vt 0.917681 0.506196 -vt 0.932207 0.338273 -vt 0.139601 0.574626 -vt 0.278011 0.574626 -vt 0.248444 0.823780 -vt 0.249011 0.687906 -vt 0.294366 0.687906 -vt 0.294366 0.740616 -vt 0.294160 0.741111 -vt 0.292839 0.742143 -vt 0.250538 0.742399 -vt 0.293336 0.741935 -vt 0.781306 0.033891 -vt 0.457098 0.275488 -vt 0.976119 0.297728 -vt 0.433827 0.231012 -vt 0.431907 0.231171 -vt 0.429916 0.203288 -vt 0.426195 0.118261 -vt 0.427181 0.035132 -vt 0.688985 0.556749 -vt 0.666048 0.654412 -vn 0.6168 0.0000 0.7871 -vn 0.0025 0.0046 1.0000 -vn 0.0000 0.0000 -1.0000 -vn 1.0000 0.0000 0.0000 -vn -0.6168 0.0073 -0.7871 -vn -0.4637 -0.8731 -0.1506 -vn 0.4691 0.8832 0.0000 -vn 0.4691 -0.8832 0.0000 -vn 0.0000 -1.0000 0.0000 -vn 0.2148 0.9766 0.0000 -vn 0.2148 -0.9766 0.0000 -vn 0.0000 1.0000 0.0000 -vn 0.7885 0.6150 0.0000 -vn 1.0000 -0.0032 0.0000 -vn 0.7885 -0.6150 0.0000 -vn -0.2143 0.9743 -0.0697 -vn -0.7638 -0.5958 -0.2482 -vn -0.9511 0.0030 -0.3090 -vn -0.7639 0.5958 -0.2482 -vn -0.2143 -0.9743 -0.0696 -vn -0.4637 0.8731 -0.1507 -vn 0.6168 0.0000 -0.7871 -vn 1.0000 0.0058 -0.0041 -vn -1.0000 0.0058 0.0041 -vn -0.6168 0.0000 0.7871 -vn 0.5448 -0.4689 -0.6952 -vn -0.2589 -0.8607 -0.4385 -vn 0.3836 0.7831 -0.4895 -vn 0.8931 0.0000 -0.4499 -vn 0.3427 0.0009 -0.9394 -vn 0.3836 0.7831 0.4895 -vn 0.2955 0.0000 0.9553 -vn 0.5448 -0.4690 0.6952 -vn 0.5674 0.0071 0.8234 -vn -0.3836 0.7831 -0.4895 -vn -0.2969 0.0051 -0.9549 -vn -0.8565 0.0063 -0.5161 -vn -0.5448 -0.4689 0.6952 -vn -0.6654 0.0073 0.7465 -vn -0.3836 0.7831 0.4895 -vn -0.8931 0.0000 0.4499 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.3335 -0.9427 -vn 0.0000 -0.3335 0.9427 -vn 0.0000 0.1169 0.9931 -vn 0.0000 -0.1169 -0.9931 -vn 0.0000 0.0681 -0.9977 -vn 0.0000 -0.2911 -0.9567 -vn 0.0000 -0.0681 0.9977 -vn 0.0000 0.2911 0.9567 -vn -0.4691 0.8832 0.0000 -vn -0.4691 -0.8832 0.0000 -vn -1.0000 0.0032 0.0000 -vn -0.2149 0.9766 0.0000 -vn -0.7885 -0.6150 0.0000 -vn -0.7886 0.6150 0.0000 -vn -0.2148 -0.9766 0.0000 -vn -0.0059 0.0000 -1.0000 -vn 0.0000 0.0000 1.0000 -vn 1.0000 0.0090 0.0000 -vn 0.9796 -0.0017 -0.2012 -vn -0.4635 0.0050 -0.8861 -vn -0.4637 -0.8731 -0.1507 -vn -0.2143 0.9743 -0.0696 -vn -0.7639 -0.5957 -0.2482 -vn -0.7639 0.5957 -0.2482 -vn 0.4513 -0.6177 -0.6440 -vn -0.2689 -0.8145 -0.5141 -vn 0.7912 0.0028 -0.6115 -vn 0.2956 0.0000 -0.9553 -vn 0.3836 0.7831 0.4894 -vn 0.4288 0.0025 0.9034 -vn 0.5423 -0.0782 0.8365 -vn 0.8931 0.0000 0.4499 -vn -0.3836 0.7831 -0.4894 -vn -0.0258 0.0001 -0.9997 -vn -0.8920 0.0073 -0.4520 -vn -0.6855 -0.0817 0.7235 -vn -0.2955 0.0000 0.9553 -vn -0.7912 0.0028 0.6115 -vn -0.7885 0.6150 0.0000 -usemtl Material.002 -s off -f 60/1/1 63/2/1 62/3/1 -f 59/4/2 51/5/2 77/6/2 -f 5/7/3 2/8/3 1/9/3 -f 2/10/4 6/11/4 28/12/4 -f 54/13/5 74/14/5 55/15/5 -f 15/16/6 41/17/6 40/18/6 -f 32/19/3 28/20/3 30/21/3 -f 21/22/7 35/23/7 24/24/7 -f 12/25/8 29/26/8 26/27/8 -f 8/28/9 32/29/9 11/30/9 -f 24/24/10 36/31/10 23/32/10 -f 11/30/11 31/33/11 12/25/11 -f 23/32/12 27/34/12 7/35/12 -f 22/36/13 34/37/13 21/22/13 -f 25/38/14 33/39/14 22/36/14 -f 26/27/15 30/40/15 25/38/15 -f 18/41/16 45/42/16 17/43/16 -f 14/44/17 42/45/17 41/17/17 -f 19/46/18 42/45/18 13/47/18 -f 20/48/19 43/49/19 19/46/19 -f 16/50/20 40/18/20 39/51/20 -f 17/43/21 44/52/21 20/48/21 -f 76/53/9 47/54/9 6/55/9 -f 66/56/22 71/57/22 70/58/22 -f 13/59/3 72/60/3 68/61/3 -f 67/62/23 64/63/23 57/64/23 -f 25/65/3 22/66/3 76/67/3 -f 80/68/24 56/69/24 73/70/24 -f 52/71/25 79/72/25 78/73/25 -f 67/74/26 65/75/26 66/56/26 -f 74/14/27 76/76/27 73/77/27 -f 69/78/28 71/57/28 72/79/28 -f 69/78/29 66/56/29 70/58/29 -f 72/79/30 65/75/30 68/80/30 -f 61/81/31 63/2/31 64/82/31 -f 61/81/32 60/1/32 62/3/32 -f 59/4/33 58/83/33 60/1/33 -f 64/82/34 58/83/34 57/84/34 -f 53/85/35 55/15/35 56/86/35 -f 53/85/36 75/87/36 54/13/36 -f 73/77/37 55/15/37 74/14/37 -f 80/88/38 78/73/38 79/72/38 -f 51/5/39 78/73/39 77/6/39 -f 49/89/40 52/71/40 51/5/40 -f 49/89/41 79/72/41 50/90/41 -f 2/91/12 53/92/12 56/93/12 -f 146/94/42 84/95/42 112/96/42 -f 104/97/43 115/98/43 145/99/43 -f 107/100/4 116/101/4 144/102/4 -f 143/103/44 82/104/44 100/105/44 -f 142/106/9 85/107/9 109/108/9 -f 141/109/12 82/110/12 110/111/12 -f 119/112/12 118/113/12 140/114/12 -f 120/115/9 117/116/9 139/117/9 -f 121/118/45 111/119/45 138/120/45 -f 137/121/45 97/122/45 123/123/45 -f 118/124/44 124/125/44 136/126/44 -f 135/127/4 94/128/4 108/129/4 -f 126/130/46 105/131/46 134/132/46 -f 127/133/46 128/134/46 133/135/46 -f 114/136/43 129/137/43 132/138/43 -f 130/139/42 102/140/42 131/141/42 -f 131/141/42 83/142/42 99/143/42 -f 111/144/42 99/143/42 81/145/42 -f 89/146/42 131/141/42 111/144/42 -f 132/147/47 98/148/47 127/133/47 -f 112/149/47 127/133/47 90/150/47 -f 84/151/43 132/138/43 112/152/43 -f 133/153/48 91/154/48 103/155/48 -f 102/156/48 103/155/48 83/157/48 -f 90/150/46 133/135/46 102/158/46 -f 134/159/48 87/160/48 113/161/48 -f 128/162/48 113/161/48 91/154/48 -f 98/148/46 134/132/46 128/134/46 -f 106/163/4 108/129/4 85/107/4 -f 87/164/4 135/127/4 106/163/4 -f 105/165/4 125/166/4 135/127/4 -f 136/126/49 97/122/49 122/167/49 -f 116/101/49 122/167/49 94/128/49 -f 86/168/44 136/126/44 116/101/44 -f 137/121/50 95/169/50 109/170/50 -f 108/129/50 109/170/50 85/107/50 -f 94/128/45 137/121/45 108/129/45 -f 138/120/50 81/171/50 117/172/50 -f 123/123/50 117/172/50 95/169/50 -f 97/122/45 138/120/45 123/123/45 -f 139/117/9 81/173/9 99/174/9 -f 103/175/9 99/174/9 83/176/9 -f 91/177/9 139/117/9 103/175/9 -f 140/114/12 86/168/12 107/100/12 -f 104/178/12 107/100/12 88/179/12 -f 92/180/12 140/114/12 104/178/12 -f 141/109/12 96/181/12 119/112/12 -f 114/182/12 119/112/12 92/180/12 -f 114/182/12 101/183/12 141/109/12 -f 142/106/9 95/184/9 120/115/9 -f 113/185/9 120/115/9 91/177/9 -f 113/185/9 106/163/9 142/106/9 -f 143/103/49 89/186/49 121/118/49 -f 124/125/49 121/118/49 97/122/49 -f 96/187/44 143/103/44 124/125/44 -f 144/102/4 94/128/4 125/166/4 -f 115/188/4 125/166/4 93/189/4 -f 88/179/4 144/102/4 115/188/4 -f 145/190/47 93/191/47 126/130/47 -f 129/192/47 126/130/47 98/148/47 -f 92/193/43 145/99/43 129/137/43 -f 130/139/42 112/96/42 90/194/42 -f 89/146/42 146/94/42 130/139/42 -f 100/195/42 101/196/42 146/94/42 -f 39/197/9 147/198/9 37/199/9 -f 45/200/51 154/201/51 44/202/51 -f 41/203/52 150/204/52 40/205/52 -f 43/206/53 152/207/53 42/208/53 -f 46/209/54 155/210/54 45/211/54 -f 42/208/55 151/212/55 41/203/55 -f 37/213/4 148/214/4 38/215/4 -f 38/216/12 156/217/12 46/209/12 -f 44/202/56 153/218/56 43/206/56 -f 40/205/57 149/219/57 39/197/57 -f 154/220/3 155/221/3 156/222/3 -f 166/223/3 45/224/3 46/225/3 -f 42/226/3 161/227/3 41/228/3 -f 157/229/3 38/230/3 37/231/3 -f 158/232/3 46/225/3 38/230/3 -f 164/233/3 43/234/3 44/235/3 -f 40/236/3 159/237/3 39/238/3 -f 39/238/3 157/229/3 37/231/3 -f 165/239/3 44/235/3 45/224/3 -f 41/228/3 160/240/3 40/236/3 -f 43/234/3 162/241/3 42/226/3 -f 10/242/12 46/243/12 18/41/12 -f 9/244/9 39/51/9 168/245/9 -f 167/246/58 37/231/58 38/230/58 -f 168/247/42 167/248/42 5/249/42 -f 170/250/42 171/251/42 169/252/42 -f 176/253/4 173/254/4 175/255/4 -f 174/256/59 169/257/59 173/258/59 -f 175/255/9 169/252/9 171/251/9 -f 172/259/12 174/260/12 176/261/12 -f 60/1/1 58/83/1 63/2/1 -f 59/4/59 61/81/59 51/5/59 -f 5/7/3 6/262/3 2/8/3 -f 8/263/4 4/264/4 28/12/4 -f 4/264/4 2/10/4 28/12/4 -f 6/11/60 47/265/60 27/266/60 -f 47/265/60 7/267/60 27/266/60 -f 6/11/61 27/266/61 28/12/61 -f 54/13/62 75/87/62 74/14/62 -f 15/16/63 14/44/63 41/17/63 -f 28/20/3 27/268/3 30/21/3 -f 27/268/3 36/269/3 33/270/3 -f 33/270/3 36/269/3 34/271/3 -f 36/269/3 35/272/3 34/271/3 -f 33/270/3 30/21/3 27/268/3 -f 30/21/3 29/273/3 31/274/3 -f 31/274/3 32/19/3 30/21/3 -f 21/22/7 34/37/7 35/23/7 -f 12/25/8 31/33/8 29/26/8 -f 8/28/9 28/275/9 32/29/9 -f 24/24/10 35/23/10 36/31/10 -f 11/30/11 32/29/11 31/33/11 -f 23/32/12 36/31/12 27/34/12 -f 22/36/13 33/39/13 34/37/13 -f 25/38/14 30/40/14 33/39/14 -f 26/27/15 29/26/15 30/40/15 -f 18/41/64 46/243/64 45/42/64 -f 14/44/65 13/47/65 42/45/65 -f 19/46/18 43/49/18 42/45/18 -f 20/48/66 44/52/66 43/49/66 -f 16/50/20 15/16/20 40/18/20 -f 17/43/21 45/42/21 44/52/21 -f 5/276/9 48/277/9 68/278/9 -f 68/278/9 67/279/9 5/276/9 -f 67/279/9 57/280/9 59/281/9 -f 5/276/9 67/279/9 59/281/9 -f 59/281/9 77/282/9 80/283/9 -f 5/276/9 59/281/9 80/283/9 -f 80/283/9 73/284/9 6/55/9 -f 5/276/9 80/283/9 6/55/9 -f 73/284/9 76/53/9 6/55/9 -f 66/56/22 65/75/22 71/57/22 -f 68/61/3 48/285/3 18/286/3 -f 48/285/3 10/287/3 18/286/3 -f 9/288/3 3/289/3 16/290/3 -f 3/289/3 72/60/3 16/290/3 -f 68/61/3 18/286/3 17/291/3 -f 68/61/3 17/291/3 20/292/3 -f 15/293/3 16/290/3 72/60/3 -f 14/294/3 15/293/3 72/60/3 -f 68/61/3 20/292/3 19/295/3 -f 13/59/3 14/294/3 72/60/3 -f 68/61/3 19/295/3 13/59/3 -f 67/62/4 69/296/4 64/63/4 -f 53/297/3 4/298/3 11/299/3 -f 4/298/3 8/300/3 11/299/3 -f 7/301/3 47/302/3 23/303/3 -f 47/302/3 76/67/3 23/303/3 -f 53/297/3 11/299/3 12/304/3 -f 53/297/3 12/304/3 26/305/3 -f 24/306/3 23/303/3 76/67/3 -f 21/307/3 24/306/3 76/67/3 -f 53/297/3 26/305/3 25/65/3 -f 22/66/3 21/307/3 76/67/3 -f 53/297/3 25/65/3 76/67/3 -f 80/68/42 49/308/42 56/69/42 -f 52/71/25 50/90/25 79/72/25 -f 67/74/67 68/80/67 65/75/67 -f 74/14/68 75/87/68 76/76/68 -f 69/78/28 70/58/28 71/57/28 -f 69/78/69 67/74/69 66/56/69 -f 72/79/70 71/57/70 65/75/70 -f 61/81/71 62/3/71 63/2/71 -f 61/81/72 59/4/72 60/1/72 -f 59/4/73 57/84/73 58/83/73 -f 64/82/74 63/2/74 58/83/74 -f 53/85/75 54/13/75 55/15/75 -f 53/85/76 76/76/76 75/87/76 -f 73/77/77 56/86/77 55/15/77 -f 80/88/78 77/6/78 78/73/78 -f 51/5/79 52/71/79 78/73/79 -f 49/89/40 50/90/40 52/71/40 -f 49/89/80 80/88/80 79/72/80 -f 56/93/12 49/309/12 2/91/12 -f 49/309/12 51/310/12 1/311/12 -f 2/91/12 49/309/12 1/311/12 -f 51/310/12 61/312/12 1/311/12 -f 61/312/12 64/313/12 1/311/12 -f 64/313/12 69/314/12 1/311/12 -f 69/314/12 72/315/12 1/311/12 -f 72/315/12 3/316/12 1/311/12 -f 2/91/12 4/317/12 53/92/12 -f 146/94/42 101/196/42 84/95/42 -f 104/97/43 88/318/43 115/98/43 -f 107/100/4 86/168/4 116/101/4 -f 143/103/44 110/319/44 82/104/44 -f 142/106/9 106/163/9 85/107/9 -f 141/109/12 101/183/12 82/110/12 -f 119/112/12 96/181/12 118/113/12 -f 120/115/9 95/184/9 117/116/9 -f 121/118/45 89/186/45 111/119/45 -f 137/121/45 122/167/45 97/122/45 -f 118/124/44 96/187/44 124/125/44 -f 135/127/4 125/166/4 94/128/4 -f 126/130/46 93/191/46 105/131/46 -f 127/133/46 98/148/46 128/134/46 -f 114/136/43 92/193/43 129/137/43 -f 130/139/42 90/194/42 102/140/42 -f 131/141/42 102/140/42 83/142/42 -f 111/144/42 131/141/42 99/143/42 -f 89/146/42 130/139/42 131/141/42 -f 132/147/47 129/192/47 98/148/47 -f 112/149/47 132/147/47 127/133/47 -f 84/151/43 114/136/43 132/138/43 -f 133/153/48 128/162/48 91/154/48 -f 102/156/48 133/153/48 103/155/48 -f 90/150/46 127/133/46 133/135/46 -f 134/159/48 105/320/48 87/160/48 -f 128/162/48 134/159/48 113/161/48 -f 98/148/46 126/130/46 134/132/46 -f 106/163/4 135/127/4 108/129/4 -f 87/164/4 105/165/4 135/127/4 -f 105/165/4 93/189/4 125/166/4 -f 136/126/49 124/125/49 97/122/49 -f 116/101/49 136/126/49 122/167/49 -f 86/168/44 118/124/44 136/126/44 -f 137/121/50 123/123/50 95/169/50 -f 108/129/50 137/121/50 109/170/50 -f 94/128/45 122/167/45 137/121/45 -f 138/120/50 111/119/50 81/171/50 -f 123/123/50 138/120/50 117/172/50 -f 97/122/45 121/118/45 138/120/45 -f 139/117/9 117/116/9 81/173/9 -f 103/175/9 139/117/9 99/174/9 -f 91/177/9 120/115/9 139/117/9 -f 140/114/12 118/113/12 86/168/12 -f 104/178/12 140/114/12 107/100/12 -f 92/180/12 119/112/12 140/114/12 -f 141/109/12 110/111/12 96/181/12 -f 114/182/12 141/109/12 119/112/12 -f 114/182/12 84/321/12 101/183/12 -f 142/106/9 109/108/9 95/184/9 -f 113/185/9 142/106/9 120/115/9 -f 113/185/9 87/164/9 106/163/9 -f 143/103/49 100/105/49 89/186/49 -f 124/125/49 143/103/49 121/118/49 -f 96/187/44 110/319/44 143/103/44 -f 144/102/4 116/101/4 94/128/4 -f 115/188/4 144/102/4 125/166/4 -f 88/179/4 107/100/4 144/102/4 -f 145/190/47 115/322/47 93/191/47 -f 129/192/47 145/190/47 126/130/47 -f 92/193/43 104/97/43 145/99/43 -f 130/139/42 146/94/42 112/96/42 -f 89/146/42 100/195/42 146/94/42 -f 100/195/42 82/323/42 101/196/42 -f 39/197/9 149/219/9 147/198/9 -f 45/200/51 155/324/51 154/201/51 -f 41/203/52 151/212/52 150/204/52 -f 43/206/53 153/218/53 152/207/53 -f 46/209/54 156/217/54 155/210/54 -f 42/208/55 152/207/55 151/212/55 -f 37/213/4 147/325/4 148/214/4 -f 38/216/12 148/326/12 156/217/12 -f 44/202/81 154/201/81 153/218/81 -f 40/205/57 150/204/57 149/219/57 -f 156/222/3 148/327/3 147/328/3 -f 147/328/3 149/329/3 156/222/3 -f 149/329/3 150/330/3 152/331/3 -f 156/222/3 149/329/3 153/332/3 -f 150/330/3 151/333/3 152/331/3 -f 152/331/3 153/332/3 149/329/3 -f 153/332/3 154/220/3 156/222/3 -f 166/223/3 165/239/3 45/224/3 -f 42/226/3 162/241/3 161/227/3 -f 157/229/3 158/232/3 38/230/3 -f 158/232/3 166/223/3 46/225/3 -f 164/233/3 163/334/3 43/234/3 -f 40/236/3 160/240/3 159/237/3 -f 39/238/3 159/237/3 157/229/3 -f 165/239/3 164/233/3 44/235/3 -f 41/228/3 161/227/3 160/240/3 -f 43/234/3 163/334/3 162/241/3 -f 10/242/12 167/335/12 46/243/12 -f 9/244/9 16/50/9 39/51/9 -f 167/246/58 168/336/58 37/231/58 -f 1/337/42 3/338/42 168/247/42 -f 3/338/42 9/339/42 168/247/42 -f 10/340/42 48/341/42 167/248/42 -f 48/341/42 5/249/42 167/248/42 -f 1/337/42 168/247/42 5/249/42 -f 170/250/42 172/259/42 171/251/42 -f 176/253/4 174/342/4 173/254/4 -f 174/256/59 170/343/59 169/257/59 -f 175/255/9 173/254/9 169/252/9 -f 172/259/12 170/250/12 174/260/12 -o window_Cube.002 -v 0.809482 1.091828 -0.732264 -v 0.338840 1.091828 -0.732264 -v 0.338840 0.874469 -0.732264 -v 0.809482 0.874469 -0.732264 -vt 0.978282 0.984581 -vt 0.711622 0.781054 -vt 0.978133 0.780594 -vt 0.713513 0.984128 -vn 0.0000 0.0000 -1.0000 -usemtl Material.002 -s off -f 178/344/82 180/345/82 179/346/82 -f 178/344/82 177/347/82 180/345/82 o plate_Cylinder -v 0.573046 0.817783 -0.643769 v 0.573046 0.868036 -0.643769 v 0.729762 0.817783 -0.568299 +v 0.573046 0.817783 -0.643769 v 0.729762 0.868036 -0.568299 v 0.768467 0.817783 -0.398719 v 0.768467 0.868036 -0.398719 @@ -969,132 +15,132 @@ v 0.377625 0.817783 -0.398719 v 0.377625 0.868036 -0.398719 v 0.416330 0.817783 -0.568299 v 0.416330 0.868036 -0.568299 -v 0.572966 0.867427 -0.529802 -v 0.572966 0.983075 -0.566974 -v 0.647860 0.867427 -0.486562 -v 0.680052 0.983075 -0.505148 -v 0.647860 0.867427 -0.400082 -v 0.680052 0.983075 -0.381496 -v 0.572966 0.867427 -0.356843 -v 0.572966 0.983075 -0.319670 -v 0.498072 0.867427 -0.400082 -v 0.465880 0.983075 -0.381496 -v 0.498072 0.867427 -0.486562 -v 0.465880 0.983075 -0.505148 -v 0.610413 0.867427 -0.508182 v 0.626509 0.983075 -0.536061 -v 0.572966 0.941312 -0.556665 v 0.671124 0.941312 -0.499994 -v 0.647860 0.867427 -0.443322 +v 0.622045 0.941312 -0.528329 v 0.680052 0.983075 -0.443322 v 0.671124 0.941312 -0.386651 -v 0.610413 0.867427 -0.378463 +v 0.671124 0.941312 -0.443322 v 0.626509 0.983075 -0.350583 v 0.572966 0.941312 -0.329980 -v 0.535519 0.867427 -0.378463 +v 0.622045 0.941312 -0.358315 v 0.519423 0.983075 -0.350583 v 0.474808 0.941312 -0.386651 -v 0.498072 0.867427 -0.443322 +v 0.523887 0.941312 -0.358315 +v 0.572966 0.983075 -0.347524 +v 0.531484 0.983075 -0.371474 v 0.465880 0.983075 -0.443322 v 0.474808 0.941312 -0.499994 -v 0.535519 0.867427 -0.508182 -v 0.519423 0.983075 -0.536061 -v 0.523887 0.941312 -0.528329 v 0.474808 0.941312 -0.443322 -v 0.523887 0.941312 -0.358315 -v 0.622045 0.941312 -0.358315 -v 0.671124 0.941312 -0.443322 -v 0.622045 0.941312 -0.528329 -v 0.572966 0.983075 -0.539121 -v 0.655930 0.983075 -0.491222 -v 0.655930 0.983075 -0.395423 -v 0.572966 0.983075 -0.347524 -v 0.490002 0.983075 -0.395423 -v 0.490002 0.983075 -0.491222 -v 0.614448 0.983075 -0.515171 -v 0.655930 0.983075 -0.443322 +v 0.519423 0.983075 -0.536061 +v 0.572966 0.941312 -0.556665 +v 0.523887 0.941312 -0.528329 +v 0.572966 0.867427 -0.529802 +v 0.535519 0.867427 -0.508182 +v 0.498072 0.867427 -0.486562 +v 0.498072 0.867427 -0.443322 +v 0.498072 0.867427 -0.400082 +v 0.535519 0.867427 -0.378463 +v 0.572966 0.867427 -0.356843 +v 0.610413 0.867427 -0.378463 +v 0.647860 0.867427 -0.400082 +v 0.647860 0.867427 -0.443322 +v 0.647860 0.867427 -0.486562 +v 0.610413 0.867427 -0.508182 v 0.614448 0.983075 -0.371474 -v 0.531484 0.983075 -0.371474 -v 0.490002 0.983075 -0.443322 -v 0.531484 0.983075 -0.515171 -v 0.572966 0.962908 -0.514054 -v 0.634221 0.962908 -0.478688 v 0.634221 0.962908 -0.407956 -v 0.572966 0.962908 -0.372591 -v 0.511710 0.962908 -0.407956 -v 0.511710 0.962908 -0.478688 -v 0.603594 0.962908 -0.496371 -v 0.634221 0.962908 -0.443322 v 0.603594 0.962908 -0.390274 +v 0.572966 0.983075 -0.539121 +v 0.572966 0.983075 -0.566974 +v 0.614448 0.983075 -0.515171 +v 0.655930 0.983075 -0.395423 +v 0.490002 0.983075 -0.491222 +v 0.465880 0.983075 -0.505148 +v 0.655930 0.983075 -0.491222 +v 0.655930 0.983075 -0.443322 +v 0.490002 0.983075 -0.395423 +v 0.465880 0.983075 -0.381496 +v 0.680052 0.983075 -0.505148 +v 0.572966 0.983075 -0.319670 +v 0.680052 0.983075 -0.381496 +v 0.531484 0.983075 -0.515171 +v 0.490002 0.983075 -0.443322 v 0.542338 0.962908 -0.390274 +v 0.634221 0.962908 -0.443322 +v 0.511710 0.962908 -0.407956 +v 0.634221 0.962908 -0.478688 +v 0.572966 0.962908 -0.372591 +v 0.511710 0.962908 -0.478688 +v 0.572966 0.962908 -0.514054 +v 0.603594 0.962908 -0.496371 v 0.511710 0.962908 -0.443322 v 0.542338 0.962908 -0.496371 -v 0.595406 0.982933 -0.519550 -v 0.702492 0.982933 -0.457724 -v 0.702492 0.982933 -0.334072 -v 0.595406 0.982933 -0.272246 -v 0.488321 0.982933 -0.334072 -v 0.488321 0.982933 -0.457724 -v 0.648949 0.982933 -0.488637 -v 0.702492 0.982933 -0.395898 -v 0.648949 0.982933 -0.303159 v 0.541863 0.982933 -0.303159 -v 0.488321 0.982933 -0.395898 -v 0.541863 0.982933 -0.488637 -v 0.678370 0.982933 -0.347999 -v 0.512442 0.982933 -0.347999 -v 0.553924 0.982933 -0.324049 -v 0.553924 0.982933 -0.467747 -v 0.648949 0.999716 -0.488637 -v 0.595406 0.999716 -0.519550 -v 0.702492 0.999716 -0.395898 -v 0.702492 0.999716 -0.457724 -v 0.648949 0.999716 -0.303159 -v 0.702492 0.999716 -0.334072 -v 0.541863 0.999716 -0.303159 -v 0.595406 0.999716 -0.272246 -v 0.488321 0.999716 -0.395898 -v 0.488321 0.999716 -0.334072 -v 0.541863 0.999716 -0.488637 -v 0.488321 0.999716 -0.457724 -v 0.595406 0.999716 -0.491697 -v 0.636888 0.999716 -0.324049 -v 0.553924 0.999716 -0.324049 -v 0.512442 0.999716 -0.395898 -v 0.553924 0.999716 -0.467747 -v 0.595406 0.982933 -0.491697 -v 0.678370 0.982933 -0.443797 v 0.595406 0.982933 -0.300100 +v 0.595406 0.982933 -0.272246 +v 0.595406 0.982933 -0.491697 +v 0.541863 0.982933 -0.488637 +v 0.595406 0.982933 -0.519550 +v 0.648949 0.982933 -0.488637 +v 0.648949 0.982933 -0.303159 +v 0.678370 0.982933 -0.347999 +v 0.702492 0.982933 -0.334072 v 0.512442 0.982933 -0.443797 -v 0.636888 0.982933 -0.467747 -v 0.678370 0.982933 -0.395898 -v 0.636888 0.982933 -0.324049 -v 0.512442 0.982933 -0.395898 -v 0.636888 0.999716 -0.467747 -v 0.678370 0.999716 -0.395898 -v 0.678370 0.999716 -0.443797 -v 0.678370 0.999716 -0.347999 +v 0.488321 0.982933 -0.395898 +v 0.488321 0.982933 -0.457724 +v 0.702492 0.982933 -0.395898 +v 0.678370 0.982933 -0.443797 +v 0.702492 0.982933 -0.457724 +v 0.512442 0.982933 -0.347999 +v 0.488321 0.982933 -0.334072 +v 0.541863 0.999716 -0.303159 v 0.595406 0.999716 -0.300100 -v 0.512442 0.999716 -0.347999 +v 0.553924 0.999716 -0.324049 +v 0.541863 0.999716 -0.488637 +v 0.595406 0.999716 -0.491697 +v 0.595406 0.999716 -0.519550 +v 0.648949 0.999716 -0.488637 +v 0.636888 0.999716 -0.467747 +v 0.648949 0.999716 -0.303159 +v 0.678370 0.999716 -0.347999 +v 0.636888 0.999716 -0.324049 +v 0.488321 0.999716 -0.395898 v 0.512442 0.999716 -0.443797 -v 0.556395 0.998139 -0.385001 -v 0.526238 0.998974 -0.385001 -v 0.556395 0.998139 -0.406796 -v 0.526238 0.998974 -0.406796 -v 0.634417 0.998139 -0.385001 -v 0.667116 0.998562 -0.385001 -v 0.634417 0.998139 -0.406796 -v 0.667116 0.998562 -0.406796 -v 0.556395 0.998139 -0.395898 -v 0.526238 0.998974 -0.395898 +v 0.488321 0.999716 -0.457724 +v 0.702492 0.999716 -0.395898 +v 0.678370 0.999716 -0.443797 +v 0.678370 0.999716 -0.395898 +v 0.512442 0.999716 -0.347999 +v 0.488321 0.999716 -0.334072 +v 0.702492 0.999716 -0.457724 +v 0.595406 0.999716 -0.272246 +v 0.702492 0.999716 -0.334072 +v 0.553924 0.999716 -0.467747 +v 0.512442 0.999716 -0.395898 v 0.595406 1.026090 -0.406796 -v 0.595406 1.052068 -0.406796 -v 0.634417 0.998139 -0.395898 -v 0.667116 0.998562 -0.395898 +v 0.667116 0.998562 -0.406796 +v 0.634417 0.998139 -0.406796 v 0.595406 1.026090 -0.385001 +v 0.526238 0.998974 -0.385001 +v 0.556395 0.998139 -0.385001 +v 0.634417 0.998139 -0.395898 +v 0.595406 1.026090 -0.395898 +v 0.526238 0.998974 -0.395898 v 0.595406 1.052068 -0.385001 v 0.595406 1.052068 -0.395898 -v 0.595406 1.026090 -0.395898 +v 0.667116 0.998562 -0.385001 +v 0.667116 0.998562 -0.395898 +v 0.595406 1.052068 -0.406796 +v 0.526238 0.998974 -0.406796 +v 0.556395 0.998139 -0.395898 +v 0.556395 0.998139 -0.406796 +v 0.634417 0.998139 -0.385001 +v 0.553924 0.982933 -0.324049 +v 0.636888 0.982933 -0.324049 +v 0.678370 0.982933 -0.395898 +v 0.553924 0.982933 -0.467747 +v 0.636888 0.982933 -0.467747 +v 0.512442 0.982933 -0.395898 vt 0.516568 0.925663 vt 0.501815 0.874025 vt 0.516568 0.874025 @@ -1345,26 +391,32 @@ vn 0.0000 1.0000 0.0000 vn -0.9749 0.0000 -0.2225 vn -0.4339 0.0000 -0.9010 vn 0.4890 -0.2091 -0.8469 +vn 0.4889 -0.2090 -0.8469 +vn 0.4889 -0.2091 -0.8469 vn 0.9779 -0.2091 0.0000 -vn 0.4890 -0.2091 0.8469 +vn 0.4889 -0.2091 0.8469 +vn -0.4889 -0.2091 0.8469 vn -0.4890 -0.2091 0.8469 vn -0.9779 -0.2091 0.0000 +vn -0.4890 -0.2091 -0.8469 vn -0.4889 -0.2091 -0.8469 vn -0.4769 -0.3003 -0.8260 -vn -0.4890 -0.2091 -0.8469 +vn -0.4889 -0.2090 -0.8469 vn -0.9538 -0.3003 0.0000 vn -0.4769 -0.3003 0.8260 vn 0.4769 -0.3003 0.8260 +vn 0.4769 -0.3003 0.8261 +vn 0.4890 -0.2091 0.8469 vn 0.9538 -0.3003 0.0000 vn 0.4769 -0.3003 -0.8260 -vn 0.4889 -0.2091 -0.8469 vn -0.3403 0.7326 -0.5894 vn 0.3403 0.7326 -0.5894 vn -0.3403 0.7326 0.5894 +vn -0.3403 0.7327 0.5894 vn 0.6806 0.7326 0.0000 vn -0.6806 0.7326 0.0000 vn 0.3403 0.7326 0.5894 -vn 0.0000 -1.0000 0.0000 +vn 0.0000 -1.0000 -0.0000 vn -0.5000 0.0000 -0.8660 vn 0.5000 0.0000 -0.8660 vn 1.0000 0.0000 0.0000 @@ -1373,251 +425,1187 @@ vn -0.5000 0.0000 0.8660 vn -1.0000 0.0000 0.0000 vn 0.0000 0.0000 -1.0000 vn -0.5824 -0.8129 0.0000 -vn -0.6089 0.7933 0.0000 +vn -0.6089 0.7932 0.0000 vn 0.5980 0.8015 0.0000 vn 0.5824 -0.8129 0.0000 -vn -0.6089 0.7932 0.0000 -usemtl Material.002 -s off -f 182/348/83 183/349/83 181/350/83 -f 184/351/84 185/352/84 183/349/84 -f 186/353/85 187/354/85 185/352/85 -f 188/355/86 189/356/86 187/354/86 -f 190/357/87 191/358/87 189/356/87 -f 190/359/88 188/360/88 182/361/88 -f 192/362/89 193/363/89 191/358/89 -f 194/364/90 181/365/90 193/363/90 -f 208/366/91 210/367/91 230/368/91 -f 212/369/92 213/370/92 229/371/92 -f 215/372/93 216/373/93 228/374/93 -f 218/375/94 219/376/94 227/377/94 -f 218/375/88 234/378/88 240/379/88 -f 221/380/95 222/381/95 226/382/95 -f 224/383/96 209/384/96 225/385/96 -f 225/385/97 195/386/97 223/387/97 -f 205/388/97 225/385/97 223/387/97 -f 222/381/98 224/383/98 225/385/98 -f 226/382/99 205/388/99 220/389/99 -f 203/390/99 226/382/99 220/389/99 -f 219/376/95 221/380/95 226/382/95 -f 227/377/100 203/390/100 217/391/100 -f 201/392/100 227/377/100 217/391/100 -f 216/373/94 218/375/94 227/377/94 -f 228/374/101 201/392/101 214/393/101 -f 199/394/101 228/374/101 214/393/101 -f 213/370/93 215/372/93 228/374/93 -f 229/371/102 199/394/102 211/395/102 -f 197/396/102 229/371/102 211/395/102 -f 210/367/92 212/369/92 229/371/92 -f 230/368/103 197/396/103 207/397/103 -f 195/398/103 230/368/103 207/397/103 -f 209/399/104 208/366/104 230/368/104 -f 239/400/105 245/401/105 251/402/105 -f 224/383/88 231/403/88 196/404/88 -f 208/366/88 231/405/88 237/406/88 -f 215/372/88 233/407/88 239/408/88 -f 221/380/88 236/409/88 206/410/88 -f 212/369/88 232/411/88 238/412/88 -f 218/375/88 235/413/88 204/414/88 -f 208/366/88 232/411/88 198/415/88 -f 215/372/88 234/378/88 202/416/88 -f 212/369/88 233/407/88 200/417/88 -f 224/383/88 236/409/88 242/418/88 -f 221/380/88 235/413/88 241/419/88 -f 252/420/88 251/421/88 250/422/88 -f 240/423/106 247/424/106 235/425/106 -f 237/426/107 244/427/107 232/428/107 -f 240/423/106 246/429/106 252/430/106 -f 241/431/108 248/432/108 236/433/108 -f 237/426/107 243/434/107 249/435/107 -f 238/436/109 245/401/109 233/437/109 -f 241/431/108 247/424/108 253/438/108 -f 242/439/110 243/434/110 231/440/110 -f 238/436/109 244/427/109 250/441/109 -f 239/400/105 246/429/105 234/442/105 -f 242/439/110 248/432/110 254/443/110 -f 264/444/111 290/445/111 258/446/111 -f 288/447/111 266/448/111 255/449/111 -f 261/450/111 288/447/111 255/449/111 -f 263/451/111 267/452/111 257/453/111 -f 291/454/111 265/455/111 260/456/111 -f 262/457/111 289/458/111 256/459/111 -f 268/460/111 264/444/111 259/461/111 -f 289/458/111 261/450/111 256/459/111 -f 290/445/111 263/451/111 258/446/111 -f 267/452/111 262/457/111 257/453/111 -f 266/448/111 291/454/111 260/456/111 -f 265/455/111 268/460/111 259/461/111 -f 277/462/88 300/463/88 285/464/88 -f 281/465/88 283/466/88 272/467/88 -f 271/468/88 283/466/88 296/469/88 -f 275/470/88 299/471/88 284/472/88 -f 279/473/88 302/474/88 282/475/88 -f 273/476/88 298/477/88 297/478/88 -f 277/462/88 301/479/88 280/480/88 -f 271/468/88 298/477/88 274/481/88 -f 275/470/88 300/463/88 278/482/88 -f 273/476/88 299/471/88 276/483/88 -f 281/465/88 302/474/88 287/484/88 -f 279/473/88 301/479/88 286/485/88 -f 260/486/112 281/487/112 266/488/112 -f 261/489/113 274/490/113 256/491/113 -f 262/492/114 276/493/114 257/494/114 -f 255/495/113 271/496/113 261/489/113 -f 263/497/115 278/498/115 258/499/115 -f 256/500/114 273/501/114 262/492/114 -f 264/502/116 280/503/116 259/504/116 -f 257/494/115 275/505/115 263/497/115 -f 265/506/117 282/507/117 260/486/117 -f 258/499/116 277/508/116 264/502/116 -f 266/488/112 272/509/112 255/495/112 -f 259/504/117 279/510/117 265/506/117 -f 285/511/88 284/512/88 297/513/88 -f 313/514/118 310/515/118 309/516/118 -f 317/517/86 304/518/86 303/519/86 -f 315/520/119 317/521/119 320/522/119 -f 312/523/120 318/524/120 319/525/120 -f 319/526/121 308/527/121 316/528/121 -f 314/529/121 316/530/121 310/515/121 -f 306/531/120 319/532/120 314/533/120 -f 320/534/122 303/519/122 311/535/122 -f 313/536/122 311/537/122 305/538/122 -f 309/516/119 320/539/119 313/514/119 -f 308/527/86 317/521/86 307/540/86 -f 306/531/118 313/536/118 305/538/118 -f 269/541/88 294/542/88 293/543/88 -f 182/348/83 184/351/83 183/349/83 -f 184/351/84 186/353/84 185/352/84 -f 186/353/85 188/355/85 187/354/85 -f 188/355/86 190/357/86 189/356/86 -f 190/357/87 192/362/87 191/358/87 -f 186/544/88 184/545/88 188/360/88 -f 184/545/88 182/361/88 188/360/88 -f 182/361/88 194/546/88 192/547/88 -f 192/547/88 190/359/88 182/361/88 -f 192/362/89 194/364/89 193/363/89 -f 194/364/90 182/548/90 181/365/90 -f 208/366/91 198/415/91 210/367/91 -f 212/369/92 200/417/92 213/370/92 -f 215/372/93 202/416/93 216/373/93 -f 218/375/94 204/414/94 219/376/94 -f 218/375/88 202/416/88 234/378/88 -f 221/380/95 206/410/95 222/381/95 -f 224/383/98 196/404/98 209/384/98 -f 225/385/97 209/384/97 195/386/97 -f 205/388/97 222/381/97 225/385/97 -f 222/381/98 206/410/98 224/383/98 -f 226/382/99 222/381/99 205/388/99 -f 203/390/99 219/376/99 226/382/99 -f 219/376/95 204/414/95 221/380/95 -f 227/377/100 219/376/100 203/390/100 -f 201/392/100 216/373/100 227/377/100 -f 216/373/94 202/416/94 218/375/94 -f 228/374/101 216/373/101 201/392/101 -f 199/394/101 213/370/101 228/374/101 -f 213/370/93 200/417/93 215/372/93 -f 229/371/102 213/370/102 199/394/102 -f 197/396/102 210/367/102 229/371/102 -f 210/367/92 198/415/92 212/369/92 -f 230/368/103 210/367/103 197/396/103 -f 195/398/103 209/399/103 230/368/103 -f 209/399/91 196/549/91 208/366/91 -f 239/400/105 233/437/105 245/401/105 -f 224/383/88 242/418/88 231/403/88 -f 208/366/88 196/549/88 231/405/88 -f 215/372/88 200/417/88 233/407/88 -f 221/380/88 241/419/88 236/409/88 -f 212/369/88 198/415/88 232/411/88 -f 218/375/88 240/379/88 235/413/88 -f 208/366/88 237/406/88 232/411/88 -f 215/372/88 239/408/88 234/378/88 -f 212/369/88 238/412/88 233/407/88 -f 224/383/88 206/410/88 236/409/88 -f 221/380/88 204/414/88 235/413/88 -f 250/422/88 244/550/88 249/551/88 -f 249/551/88 243/552/88 254/553/88 -f 254/553/88 248/554/88 253/555/88 -f 253/555/88 247/556/88 252/420/88 -f 252/420/88 246/557/88 251/421/88 -f 251/421/88 245/558/88 250/422/88 -f 250/422/88 249/551/88 252/420/88 -f 249/551/88 254/553/88 252/420/88 -f 254/553/88 253/555/88 252/420/88 -f 240/423/106 252/430/106 247/424/106 -f 237/426/107 249/435/107 244/427/107 -f 240/423/106 234/442/106 246/429/106 -f 241/431/108 253/438/108 248/432/108 -f 237/426/107 231/440/107 243/434/107 -f 238/436/109 250/441/109 245/401/109 -f 241/431/108 235/425/108 247/424/108 -f 242/439/110 254/443/110 243/434/110 -f 238/436/109 232/428/109 244/427/109 -f 239/400/105 251/402/105 246/429/105 -f 242/439/110 236/433/110 248/432/110 -f 264/444/111 269/559/111 290/445/111 -f 288/447/111 270/560/111 266/448/111 -f 261/450/111 292/561/111 288/447/111 -f 263/451/111 294/562/111 267/452/111 -f 291/454/111 295/563/111 265/455/111 -f 262/457/111 293/564/111 289/458/111 -f 268/460/111 269/559/111 264/444/111 -f 289/458/111 292/561/111 261/450/111 -f 290/445/111 294/562/111 263/451/111 -f 267/452/111 293/564/111 262/457/111 -f 266/448/111 270/560/111 291/454/111 -f 265/455/111 295/563/111 268/460/111 -f 277/462/88 278/482/88 300/463/88 -f 281/465/88 287/484/88 283/466/88 -f 271/468/88 272/467/88 283/466/88 -f 275/470/88 276/483/88 299/471/88 -f 279/473/88 286/485/88 302/474/88 -f 273/476/88 274/481/88 298/477/88 -f 277/462/88 285/464/88 301/479/88 -f 271/468/88 296/469/88 298/477/88 -f 275/470/88 284/472/88 300/463/88 -f 273/476/88 297/478/88 299/471/88 -f 281/465/88 282/475/88 302/474/88 -f 279/473/88 280/480/88 301/479/88 -f 260/486/112 282/507/112 281/487/112 -f 261/489/113 271/496/113 274/490/113 -f 262/492/114 273/501/114 276/493/114 -f 255/495/113 272/509/113 271/496/113 -f 263/497/115 275/505/115 278/498/115 -f 256/500/114 274/565/114 273/501/114 -f 264/502/116 277/508/116 280/503/116 -f 257/494/115 276/493/115 275/505/115 -f 265/506/117 279/510/117 282/507/117 -f 258/499/116 278/498/116 277/508/116 -f 266/488/112 281/487/112 272/509/112 -f 259/504/117 280/503/117 279/510/117 -f 297/513/88 298/566/88 296/567/88 -f 296/567/88 283/568/88 287/569/88 -f 287/569/88 302/570/88 286/571/88 -f 286/571/88 301/572/88 285/511/88 -f 285/511/88 300/573/88 284/512/88 -f 284/512/88 299/574/88 297/513/88 -f 297/513/88 296/567/88 285/511/88 -f 296/567/88 287/569/88 285/511/88 -f 287/569/88 286/571/88 285/511/88 -f 313/514/118 314/529/118 310/515/118 -f 317/517/86 318/524/86 304/518/86 -f 315/520/119 307/540/119 317/521/119 -f 312/523/123 304/518/123 318/524/123 -f 319/526/121 318/575/121 308/527/121 -f 314/529/121 319/576/121 316/530/121 -f 306/531/123 312/577/123 319/532/123 -f 320/534/122 317/517/122 303/519/122 -f 313/536/122 320/578/122 311/537/122 -f 309/516/119 315/579/119 320/539/119 -f 308/527/86 318/575/86 317/521/86 -f 306/531/118 314/533/118 313/536/118 -f 293/543/88 289/580/88 292/581/88 -f 292/581/88 288/582/88 270/583/88 -f 270/583/88 291/584/88 295/585/88 -f 295/585/88 268/586/88 269/541/88 -f 269/541/88 290/587/88 294/542/88 -f 294/542/88 267/588/88 293/543/88 -f 293/543/88 292/581/88 269/541/88 -f 292/581/88 270/583/88 269/541/88 -f 270/583/88 295/585/88 269/541/88 -l 289 298 +vn 0.4890 -0.2090 -0.8469 +vn -0.4769 -0.3003 -0.8261 +vn -0.4890 -0.2090 -0.8469 +vn -0.4769 -0.3003 0.8261 +vn 0.4769 -0.3003 -0.8261 +s 1 +f 1/1/1 2/2/1 3/3/1 +f 4/4/2 5/5/2 2/2/2 +f 6/6/3 7/7/3 5/5/3 +f 8/8/4 9/9/4 7/7/4 +f 10/10/5 11/11/5 9/9/5 +f 10/12/6 8/13/6 1/14/6 +f 12/15/7 13/16/7 11/11/7 +f 14/17/8 3/18/8 13/16/8 +f 15/19/9 16/20/10 17/21/11 +f 18/22/12 19/23/12 20/24/12 +f 21/25/13 22/26/13 23/27/13 +f 24/28/14 25/29/15 26/30/14 +f 24/28/6 27/31/6 28/32/6 +f 29/33/16 30/34/16 31/35/16 +f 32/36/17 33/37/17 34/38/18 +f 34/38/19 35/39/19 36/40/19 +f 37/41/19 34/38/19 36/40/19 +f 30/34/20 32/36/17 34/38/18 +f 31/35/21 37/41/21 38/42/21 +f 39/43/21 31/35/21 38/42/21 +f 25/29/16 29/33/16 31/35/16 +f 26/30/22 39/43/22 40/44/22 +f 41/45/22 26/30/22 40/44/22 +f 22/26/14 24/28/14 26/30/14 +f 23/27/23 41/45/23 42/46/23 +f 43/47/24 23/27/23 42/46/23 +f 19/23/25 21/25/13 23/27/13 +f 20/24/26 43/47/26 44/48/26 +f 45/49/26 20/24/26 44/48/26 +f 16/20/12 18/22/12 20/24/12 +f 17/21/27 45/49/27 46/50/27 +f 35/51/27 17/21/27 46/50/27 +f 33/52/9 15/19/9 17/21/11 +f 47/53/28 48/54/28 49/55/28 +f 32/36/6 50/56/6 51/57/6 +f 15/19/6 50/58/6 52/59/6 +f 21/25/6 53/60/6 47/61/6 +f 29/33/6 54/62/6 55/63/6 +f 18/22/6 56/64/6 57/65/6 +f 24/28/6 58/66/6 59/67/6 +f 15/19/6 56/64/6 60/68/6 +f 21/25/6 27/31/6 61/69/6 +f 18/22/6 53/60/6 62/70/6 +f 32/36/6 54/62/6 63/71/6 +f 29/33/6 58/66/6 64/72/6 +f 65/73/6 49/74/6 66/75/6 +f 28/76/29 67/77/29 58/78/29 +f 52/79/30 68/80/30 56/81/31 +f 28/76/29 69/82/29 65/83/29 +f 64/84/32 70/85/32 54/86/32 +f 52/79/30 71/87/30 72/88/30 +f 57/89/33 48/54/33 53/90/33 +f 64/84/32 67/77/32 73/91/32 +f 63/92/34 71/87/34 50/93/34 +f 57/89/33 68/80/33 66/94/33 +f 47/53/28 69/82/28 27/95/28 +f 63/92/34 70/85/34 74/96/34 +f 75/97/35 76/98/35 77/99/35 +f 78/100/35 79/101/35 80/102/35 +f 81/103/35 78/100/35 80/102/35 +f 82/104/35 83/105/35 84/106/35 +f 85/107/35 86/108/35 87/109/35 +f 88/110/35 89/111/35 90/112/35 +f 91/113/35 75/97/35 92/114/35 +f 89/111/35 81/103/35 90/112/35 +f 76/98/35 82/104/35 77/99/35 +f 83/105/35 88/110/35 84/106/35 +f 79/101/35 85/107/35 87/109/35 +f 86/108/35 91/113/35 92/114/35 +f 93/115/6 94/116/6 95/117/6 +f 96/118/6 97/119/6 98/120/6 +f 99/121/6 97/119/6 100/122/6 +f 101/123/6 102/124/6 103/125/6 +f 104/126/6 105/127/6 106/128/6 +f 107/129/6 108/130/6 109/131/6 +f 93/115/6 110/132/6 111/133/6 +f 99/121/6 108/130/6 112/134/6 +f 101/123/6 94/116/6 113/135/6 +f 107/129/6 102/124/6 114/136/6 +f 96/118/6 105/127/6 115/137/6 +f 104/126/6 110/132/6 116/138/6 +f 87/139/36 96/140/36 79/141/36 +f 81/142/37 112/143/37 90/144/37 +f 88/145/38 114/146/38 84/147/38 +f 80/148/37 99/149/37 81/142/37 +f 82/150/39 113/151/39 77/152/39 +f 90/153/38 107/154/38 88/145/38 +f 75/155/40 111/156/40 92/157/40 +f 84/147/39 101/158/39 82/150/39 +f 86/159/41 106/160/41 87/139/41 +f 77/152/40 93/161/40 75/155/40 +f 79/141/36 98/162/36 80/148/36 +f 92/157/41 104/163/41 86/159/41 +f 95/164/6 103/165/6 109/166/6 +f 117/167/42 118/168/42 119/169/42 +f 120/170/4 121/171/4 122/172/4 +f 123/173/43 120/174/43 124/175/43 +f 125/176/44 126/177/44 127/178/44 +f 127/179/45 128/180/45 129/181/45 +f 130/182/45 129/183/45 118/168/45 +f 131/184/44 127/185/44 130/186/44 +f 124/187/46 122/172/46 132/188/46 +f 117/189/46 132/190/46 133/191/46 +f 119/169/43 124/192/43 117/167/43 +f 128/180/4 120/174/4 134/193/4 +f 131/184/42 117/189/42 133/191/42 +f 135/194/6 136/195/6 137/196/6 +f 1/1/1 4/4/1 2/2/1 +f 4/4/2 6/6/2 5/5/2 +f 6/6/3 8/8/3 7/7/3 +f 8/8/4 10/10/4 9/9/4 +f 10/10/5 12/15/5 11/11/5 +f 6/197/6 4/198/6 8/13/6 +f 4/198/6 1/14/6 8/13/6 +f 1/14/6 14/199/6 12/200/6 +f 12/200/6 10/12/6 1/14/6 +f 12/15/7 14/17/7 13/16/7 +f 14/17/8 1/201/8 3/18/8 +f 15/19/9 60/68/47 16/20/10 +f 18/22/12 62/70/12 19/23/12 +f 21/25/13 61/69/13 22/26/13 +f 24/28/14 59/67/15 25/29/15 +f 24/28/6 61/69/6 27/31/6 +f 29/33/16 55/63/16 30/34/16 +f 32/36/17 51/57/17 33/37/17 +f 34/38/19 33/37/19 35/39/19 +f 37/41/48 30/34/48 34/38/48 +f 30/34/20 55/63/49 32/36/17 +f 31/35/21 30/34/21 37/41/21 +f 39/43/21 25/29/21 31/35/21 +f 25/29/16 59/67/16 29/33/16 +f 26/30/22 25/29/22 39/43/22 +f 41/45/50 22/26/50 26/30/50 +f 22/26/14 61/69/14 24/28/14 +f 23/27/23 22/26/24 41/45/23 +f 43/47/23 19/23/23 23/27/23 +f 19/23/25 62/70/25 21/25/13 +f 20/24/26 19/23/26 43/47/26 +f 45/49/26 16/20/26 20/24/26 +f 16/20/12 60/68/12 18/22/12 +f 17/21/27 16/20/51 45/49/27 +f 35/51/27 33/52/27 17/21/27 +f 33/52/9 51/202/9 15/19/9 +f 47/53/28 53/90/28 48/54/28 +f 32/36/6 63/71/6 50/56/6 +f 15/19/6 51/202/6 50/58/6 +f 21/25/6 62/70/6 53/60/6 +f 29/33/6 64/72/6 54/62/6 +f 18/22/6 60/68/6 56/64/6 +f 24/28/6 28/32/6 58/66/6 +f 15/19/6 52/59/6 56/64/6 +f 21/25/6 47/61/6 27/31/6 +f 18/22/6 57/65/6 53/60/6 +f 32/36/6 55/63/6 54/62/6 +f 29/33/6 59/67/6 58/66/6 +f 66/75/6 68/203/6 72/204/6 +f 72/204/6 71/205/6 74/206/6 +f 74/206/6 70/207/6 73/208/6 +f 73/208/6 67/209/6 65/73/6 +f 65/73/6 69/210/6 49/74/6 +f 49/74/6 48/211/6 66/75/6 +f 66/75/6 72/204/6 65/73/6 +f 72/204/6 74/206/6 65/73/6 +f 74/206/6 73/208/6 65/73/6 +f 28/76/29 65/83/29 67/77/29 +f 52/79/30 72/88/30 68/80/30 +f 28/76/29 27/95/29 69/82/29 +f 64/84/32 73/91/32 70/85/32 +f 52/79/30 50/93/30 71/87/30 +f 57/89/33 66/94/33 48/54/33 +f 64/84/32 58/78/32 67/77/32 +f 63/92/34 74/96/34 71/87/34 +f 57/89/33 56/81/33 68/80/33 +f 47/53/28 49/55/28 69/82/28 +f 63/92/34 54/86/34 70/85/34 +f 75/97/35 135/212/35 76/98/35 +f 78/100/35 138/213/35 79/101/35 +f 81/103/35 139/214/35 78/100/35 +f 82/104/35 136/215/35 83/105/35 +f 85/107/35 140/216/35 86/108/35 +f 88/110/35 137/217/35 89/111/35 +f 91/113/35 135/212/35 75/97/35 +f 89/111/35 139/214/35 81/103/35 +f 76/98/35 136/215/35 82/104/35 +f 83/105/35 137/217/35 88/110/35 +f 79/101/35 138/213/35 85/107/35 +f 86/108/35 140/216/35 91/113/35 +f 93/115/6 113/135/6 94/116/6 +f 96/118/6 115/137/6 97/119/6 +f 99/121/6 98/120/6 97/119/6 +f 101/123/6 114/136/6 102/124/6 +f 104/126/6 116/138/6 105/127/6 +f 107/129/6 112/134/6 108/130/6 +f 93/115/6 95/117/6 110/132/6 +f 99/121/6 100/122/6 108/130/6 +f 101/123/6 103/125/6 94/116/6 +f 107/129/6 109/131/6 102/124/6 +f 96/118/6 106/128/6 105/127/6 +f 104/126/6 111/133/6 110/132/6 +f 87/139/36 106/160/36 96/140/36 +f 81/142/37 99/149/37 112/143/37 +f 88/145/38 107/154/38 114/146/38 +f 80/148/37 98/162/37 99/149/37 +f 82/150/39 101/158/39 113/151/39 +f 90/153/38 112/218/38 107/154/38 +f 75/155/40 93/161/40 111/156/40 +f 84/147/39 114/146/39 101/158/39 +f 86/159/41 104/163/41 106/160/41 +f 77/152/40 113/151/40 93/161/40 +f 79/141/36 96/140/36 98/162/36 +f 92/157/41 111/156/41 104/163/41 +f 109/166/6 108/219/6 100/220/6 +f 100/220/6 97/221/6 115/222/6 +f 115/222/6 105/223/6 116/224/6 +f 116/224/6 110/225/6 95/164/6 +f 95/164/6 94/226/6 103/165/6 +f 103/165/6 102/227/6 109/166/6 +f 109/166/6 100/220/6 95/164/6 +f 100/220/6 115/222/6 95/164/6 +f 115/222/6 116/224/6 95/164/6 +f 117/167/42 130/182/42 118/168/42 +f 120/170/4 126/177/4 121/171/4 +f 123/173/43 134/193/43 120/174/43 +f 125/176/44 121/171/44 126/177/44 +f 127/179/45 126/228/45 128/180/45 +f 130/182/45 127/229/45 129/183/45 +f 131/184/44 125/230/44 127/185/44 +f 124/187/46 120/170/46 122/172/46 +f 117/189/46 124/231/46 132/190/46 +f 119/169/43 123/232/43 124/192/43 +f 128/180/4 126/228/4 120/174/4 +f 131/184/42 130/186/42 117/189/42 +f 137/196/6 89/233/6 139/234/6 +f 139/234/6 78/235/6 138/236/6 +f 138/236/6 85/237/6 140/238/6 +f 140/238/6 91/239/6 135/194/6 +f 135/194/6 76/240/6 136/195/6 +f 136/195/6 83/241/6 137/196/6 +f 137/196/6 139/234/6 135/194/6 +f 139/234/6 138/236/6 135/194/6 +f 138/236/6 140/238/6 135/194/6 +l 89 108 +o window_Cube.002 +v 0.338840 1.091828 -0.732264 +v 0.809482 0.874469 -0.732264 +v 0.338840 0.874469 -0.732264 +v 0.809482 1.091828 -0.732264 +vt 0.978282 0.984581 +vt 0.711622 0.781054 +vt 0.978133 0.780594 +vt 0.713513 0.984128 +vn 0.0000 0.0000 -1.0000 +s 1 +f 141/242/52 142/243/52 143/244/52 +f 141/242/52 144/245/52 142/243/52 +o mainbody_Cube.001 +v 0.853658 0.789125 -0.153063 +v 0.857794 1.181387 -0.156304 +v 0.853658 1.181387 -0.153063 +v 0.849338 0.787154 -0.151007 +v 0.127829 1.183358 -0.151007 +v 0.125502 0.787154 -0.149193 +v 0.238197 0.787154 -0.728996 +v 0.234821 1.183358 -0.728996 +v 0.238197 1.183358 -0.728996 +v 0.234821 0.787154 -0.728996 +v 0.234821 1.127133 -0.731795 +v 0.121182 1.181387 -0.733581 +v 0.115750 0.789125 -0.732973 +v 0.117047 1.181387 -0.730340 +v 0.827432 1.125951 -0.735637 +v 0.835231 1.121211 -0.732176 +v 0.826308 1.125951 -0.732176 +v 0.155271 1.127133 -0.731795 +v 0.138747 1.118357 -0.731795 +v 0.140113 0.846848 -0.735637 +v 0.149037 0.842109 -0.731795 +v 0.149037 0.842109 -0.735637 +v 0.149897 1.125951 -0.735637 +v 0.140973 1.121211 -0.731795 +v 0.140973 1.121211 -0.735637 +v 0.234821 1.127133 -0.735637 +v 0.155271 1.127133 -0.735637 +v 0.154411 0.840926 -0.731795 +v 0.154411 0.840926 -0.735637 +v 0.149897 1.125951 -0.731795 +v 0.234338 0.840926 -0.731795 +v 0.234338 0.840926 -0.735637 +v 0.137887 0.849703 -0.735637 +v 0.140113 0.846848 -0.731795 +v 0.138747 1.118357 -0.735637 +v 0.137887 0.849703 -0.731795 +v 0.821198 0.840926 -0.735637 +v 0.825447 0.842109 -0.732176 +v 0.826572 0.842109 -0.735637 +v 0.836356 1.121211 -0.735637 +v 0.837458 1.118357 -0.732176 +v 0.837722 0.849703 -0.735637 +v 0.838582 1.118357 -0.735637 +v 0.835496 0.846848 -0.735637 +v 0.836597 0.849703 -0.732176 +v 0.822058 1.127133 -0.735637 +v 0.820933 1.127133 -0.732176 +v 0.834371 0.846848 -0.732176 +v 0.126814 0.787154 -0.735637 +v 0.234821 0.787154 -0.735637 +v 0.857794 0.789125 -0.730340 +v 0.853658 1.181387 -0.733581 +v 0.857794 1.181387 -0.730340 +v 0.847012 1.183358 -0.735637 +v 0.848027 0.787154 -0.735637 +v 0.860417 0.787154 -0.726955 +v 0.860417 1.183358 -0.161513 +v 0.862732 0.787154 -0.159690 +v 0.114423 0.787154 -0.159690 +v 0.114423 1.183358 -0.725132 +v 0.112109 0.787154 -0.726955 +v 0.121182 1.181387 -0.153063 +v 0.117047 0.789125 -0.156304 +v 0.121182 0.789125 -0.153063 +v 0.853658 0.789125 -0.733581 +v 0.860417 1.183358 -0.725132 +v 0.847012 1.183358 -0.151007 +v 0.857794 0.789125 -0.156304 +v 0.127829 1.183358 -0.735637 +v 0.120534 0.789125 -0.735475 +v 0.114423 1.183358 -0.161513 +v 0.117047 1.181387 -0.156304 +v 0.246749 1.051755 -0.754385 +v 0.246749 1.118254 -0.734150 +v 0.246749 1.051755 -0.757676 +v 0.273339 1.118254 -0.734150 +v 0.282202 1.051755 -0.757676 +v 0.273339 1.051755 -0.757676 +v 0.282202 1.118254 -0.730859 +v 0.282202 1.051755 -0.751094 +v 0.282202 1.051755 -0.754385 +v 0.255612 1.051755 -0.751094 +v 0.246749 1.118254 -0.727568 +v 0.246749 1.051755 -0.751094 +v 0.273339 0.852258 -0.730849 +v 0.282202 0.852258 -0.727568 +v 0.273339 0.852258 -0.727568 +v 0.255612 1.118254 -0.730849 +v 0.255612 1.118254 -0.727568 +v 0.264475 1.118254 -0.730849 +v 0.273339 1.118254 -0.727568 +v 0.273339 1.118254 -0.730849 +v 0.264475 0.852258 -0.730849 +v 0.255612 0.852258 -0.727568 +v 0.255612 0.852258 -0.730849 +v 0.255612 0.985256 -0.755632 +v 0.246749 0.918757 -0.747802 +v 0.255612 0.918757 -0.747802 +v 0.273339 0.918757 -0.747802 +v 0.264475 0.985256 -0.755632 +v 0.264475 0.918757 -0.747802 +v 0.264475 1.051755 -0.751094 +v 0.273339 1.051755 -0.751094 +v 0.282202 0.918757 -0.751094 +v 0.282202 0.985256 -0.755632 +v 0.282202 0.918757 -0.747802 +v 0.273339 0.985256 -0.762214 +v 0.282202 0.918757 -0.754385 +v 0.273339 0.918757 -0.754385 +v 0.255612 0.985256 -0.762214 +v 0.264475 0.918757 -0.754385 +v 0.255612 0.918757 -0.754385 +v 0.255612 1.118254 -0.734150 +v 0.264475 1.051755 -0.757676 +v 0.255612 1.051755 -0.757676 +v 0.246749 0.985256 -0.758923 +v 0.246749 0.918757 -0.754385 +v 0.246749 0.918757 -0.751094 +v 0.246749 0.852258 -0.734150 +v 0.246749 0.852258 -0.730859 +v 0.246749 0.852258 -0.727568 +v 0.246749 0.985256 -0.755632 +v 0.264475 0.985256 -0.762214 +v 0.246749 0.985256 -0.762214 +v 0.264475 0.852258 -0.734150 +v 0.255612 0.852258 -0.734150 +v 0.282202 0.852258 -0.734150 +v 0.273339 0.852258 -0.734150 +v 0.282202 0.852258 -0.730859 +v 0.282202 0.985256 -0.758923 +v 0.273339 0.985256 -0.755632 +v 0.282202 1.118254 -0.727568 +v 0.264475 0.852258 -0.727568 +v 0.282202 1.118254 -0.734150 +v 0.264475 1.118254 -0.734150 +v 0.264475 1.118254 -0.727568 +v 0.246749 1.118254 -0.730859 +v 0.282202 0.985256 -0.762214 +v 0.303131 1.127133 -0.208209 +v 0.303131 1.127133 -0.732176 +v 0.834371 0.846848 -0.208209 +v 0.826308 1.125951 -0.208209 +v 0.837458 1.118357 -0.208209 +v 0.820073 0.840926 -0.732176 +v 0.825447 0.842109 -0.208209 +v 0.835231 1.121211 -0.208209 +v 0.303131 0.840926 -0.208209 +v 0.303131 0.840926 -0.732176 +v 0.820073 0.840926 -0.208209 +v 0.836597 0.849703 -0.208209 +v 0.820933 1.127133 -0.208209 +v 0.796168 0.874846 -0.732176 +v 0.807544 1.087096 -0.732176 +v 0.339101 1.091541 -0.732176 +v 0.339101 0.874846 -0.732176 +v 0.806898 0.879290 -0.732176 +v 0.796813 1.091541 -0.732176 +v 0.800201 0.875733 -0.732176 +v 0.800847 1.090653 -0.732176 +v 0.809215 1.084954 -0.732176 +v 0.238197 0.840926 -0.735637 +v 0.238197 1.127133 -0.735637 +v 0.238197 1.127133 -0.731795 +v 0.238197 0.840926 -0.731795 +v 0.234821 1.183358 -0.735637 +v 0.238197 0.787154 -0.735637 +v 0.238197 1.183358 -0.735637 +v 0.808569 0.881432 -0.732176 +vt 0.187756 0.185116 +vt 0.190250 0.359586 +vt 0.187359 0.359553 +vt 0.184816 0.183014 +vt 0.011904 0.361665 +vt 0.011410 0.182951 +vt 0.434160 0.035160 +vt 0.437617 0.233175 +vt 0.433848 0.233203 +vt 0.421314 0.234632 +vt 0.421314 0.024505 +vt 0.424461 0.141338 +vt 0.180342 0.556180 +vt 0.006258 0.555192 +vt 0.180341 0.553216 +vt 0.619010 0.294600 +vt 0.615336 0.293939 +vt 0.618997 0.293255 +vt 0.560911 0.771909 +vt 0.499383 0.771947 +vt 0.573681 0.763070 +vt 0.551781 0.278506 +vt 0.554882 0.277399 +vt 0.554849 0.278591 +vt 0.477598 0.276038 +vt 0.480699 0.274931 +vt 0.480666 0.276123 +vt 0.456844 0.275464 +vt 0.476217 0.274807 +vt 0.476184 0.275999 +vt 0.556296 0.277438 +vt 0.556263 0.278630 +vt 0.477631 0.274846 +vt 0.575727 0.277976 +vt 0.575694 0.279168 +vt 0.550366 0.278467 +vt 0.551814 0.277314 +vt 0.482080 0.276163 +vt 0.550399 0.277275 +vt 0.482113 0.274971 +vt 0.529499 0.294540 +vt 0.531162 0.293570 +vt 0.531174 0.294916 +vt 0.615349 0.295285 +vt 0.613628 0.294117 +vt 0.536559 0.295677 +vt 0.613641 0.295463 +vt 0.534848 0.295531 +vt 0.536546 0.294332 +vt 0.620678 0.294193 +vt 0.620665 0.292848 +vt 0.534835 0.294186 +vt 0.390231 0.176341 +vt 0.365296 0.176585 +vt 0.365277 0.174628 +vt 0.008379 0.053132 +vt 0.010531 0.175541 +vt 0.008501 0.175525 +vt 0.678815 0.051868 +vt 0.681765 0.009865 +vt 0.681766 0.212069 +vt 0.191651 0.177060 +vt 0.014270 0.002844 +vt 0.192984 0.003659 +vt 0.661827 0.216665 +vt 0.508504 0.216408 +vt 0.472754 0.213047 +vt 0.182461 0.549659 +vt 0.002549 0.378060 +vt 0.181254 0.376258 +vt 0.008747 0.359552 +vt 0.004975 0.185105 +vt 0.008120 0.184943 +vt 0.006284 0.051542 +vt 0.010601 0.053093 +vt 0.004000 0.561180 +vt 0.003756 0.551834 +vt 0.006284 0.177060 +vt 0.012743 0.177034 +vt 0.012878 0.051518 +vt 0.184195 0.361727 +vt 0.193393 0.361723 +vt 0.190903 0.184977 +vt 0.194207 0.183009 +vt 0.182571 0.559338 +vt 0.182461 0.550031 +vt 0.006443 0.558120 +vt 0.002020 0.183025 +vt 0.004195 0.360497 +vt 0.005856 0.359540 +vt 0.363575 0.189539 +vt 0.388348 0.187899 +vt 0.391408 0.191039 +vt 0.913862 0.374962 +vt 0.932207 0.411652 +vt 0.913862 0.411652 +vt 0.947121 0.484382 +vt 0.928948 0.502555 +vt 0.928948 0.484382 +vt 0.922832 0.558833 +vt 0.904487 0.595522 +vt 0.904487 0.558833 +vt 0.904487 0.650556 +vt 0.922832 0.668901 +vt 0.904487 0.668901 +vt 0.831108 0.558833 +vt 0.849453 0.595522 +vt 0.831108 0.595522 +vt 0.977866 0.558833 +vt 0.996210 0.595522 +vt 0.977866 0.595522 +vt 0.959521 0.558833 +vt 0.941176 0.595522 +vt 0.941176 0.558833 +vt 0.812764 0.558833 +vt 0.794419 0.595522 +vt 0.794419 0.558833 +vt 0.886142 0.650556 +vt 0.867798 0.668901 +vt 0.867798 0.650556 +vt 0.867798 0.613867 +vt 0.886142 0.632212 +vt 0.867798 0.632212 +vt 0.922832 0.613867 +vt 0.904487 0.632212 +vt 0.904487 0.613867 +vt 0.867798 0.558833 +vt 0.886142 0.595522 +vt 0.867798 0.595522 +vt 0.899580 0.488095 +vt 0.881478 0.506196 +vt 0.881478 0.488095 +vt 0.899580 0.451892 +vt 0.881478 0.469993 +vt 0.881478 0.451892 +vt 0.947121 0.448035 +vt 0.928948 0.466208 +vt 0.928948 0.448035 +vt 0.895517 0.374962 +vt 0.877173 0.411652 +vt 0.877173 0.374962 +vt 0.858828 0.411652 +vt 0.858828 0.374962 +vt 0.877173 0.338273 +vt 0.858828 0.338273 +vt 0.895517 0.338273 +vt 0.917681 0.451892 +vt 0.899580 0.469993 +vt 0.917681 0.433790 +vt 0.899580 0.433790 +vt 0.947121 0.429861 +vt 0.928948 0.429861 +vt 0.867173 0.448727 +vt 0.848828 0.467071 +vt 0.848828 0.448727 +vt 0.867173 0.430382 +vt 0.848828 0.430382 +vt 0.881478 0.433790 +vt 0.867173 0.485416 +vt 0.848828 0.503761 +vt 0.848828 0.485416 +vt 0.867173 0.467071 +vt 0.849453 0.558833 +vt 0.849453 0.522144 +vt 0.867798 0.522144 +vt 0.886142 0.558833 +vt 0.886142 0.613867 +vt 0.922832 0.595522 +vt 0.849453 0.632212 +vt 0.849453 0.613867 +vt 0.849453 0.668901 +vt 0.849453 0.650556 +vt 0.776074 0.595522 +vt 0.776074 0.558833 +vt 0.794419 0.522144 +vt 0.776074 0.522144 +vt 0.812764 0.522144 +vt 0.941176 0.522144 +vt 0.922832 0.522144 +vt 0.959521 0.522144 +vt 0.959521 0.595522 +vt 0.977866 0.522144 +vt 0.996210 0.558833 +vt 0.812764 0.595522 +vt 0.831108 0.522144 +vt 0.886142 0.668901 +vt 0.922832 0.632212 +vt 0.904487 0.522144 +vt 0.886142 0.522144 +vt 0.917681 0.488095 +vt 0.899580 0.506196 +vt 0.917681 0.469993 +vt 0.947121 0.466208 +vt 0.895517 0.411652 +vt 0.913862 0.338273 +vt 0.932207 0.374962 +vt 0.002361 0.690819 +vt 0.139582 0.797050 +vt 0.002382 0.797077 +vt 0.002401 0.574653 +vt 0.139602 0.577216 +vt 0.002401 0.577243 +vt 0.002381 0.685835 +vt 0.139582 0.688398 +vt 0.002381 0.688425 +vt 0.002381 0.579638 +vt 0.139602 0.683414 +vt 0.002401 0.683441 +vt 0.142087 0.686223 +vt 0.139686 0.823759 +vt 0.139686 0.686202 +vt 0.139581 0.685808 +vt 0.139686 0.574626 +vt 0.278011 0.686118 +vt 0.139686 0.686118 +vt 0.248444 0.686223 +vt 0.142087 0.823780 +vt 0.139581 0.579611 +vt 0.139561 0.690792 +vt 0.250041 0.742196 +vt 0.249216 0.741377 +vt 0.249011 0.740883 +vt 0.774121 0.040412 +vt 0.741243 0.024151 +vt 0.740050 0.027021 +vt 0.969467 0.033059 +vt 0.943495 0.044419 +vt 0.971709 0.034142 +vt 0.946381 0.253662 +vt 0.739889 0.270791 +vt 0.975938 0.269283 +vt 0.769234 0.254505 +vt 0.778655 0.034951 +vt 0.748853 0.018299 +vt 0.746005 0.019438 +vt 0.975297 0.038147 +vt 0.946804 0.049219 +vt 0.976119 0.040486 +vt 0.775156 0.037976 +vt 0.946189 0.047450 +vt 0.941812 0.043603 +vt 0.456798 0.276753 +vt 0.529486 0.293195 +vt 0.696767 0.284505 +vt 0.696612 0.283178 +vt 0.740071 0.299235 +vt 0.431207 0.203196 +vt 0.430221 0.118309 +vt 0.434139 0.035214 +vt 0.437617 0.035132 +vt 0.428782 0.141338 +vt 0.428782 0.234632 +vt 0.422863 0.024375 +vt 0.423529 0.042958 +vt 0.424425 0.042882 +vt 0.499383 0.483956 +vt 0.561202 0.483917 +vt 0.573995 0.492741 +vt 0.572269 0.489869 +vt 0.565361 0.485105 +vt 0.571963 0.765944 +vt 0.565067 0.770717 +vt 0.456877 0.274272 +vt 0.362261 0.174619 +vt 0.362252 0.177081 +vt 0.221168 0.176128 +vt 0.218310 0.173556 +vt 0.218310 0.006092 +vt 0.221417 0.003539 +vt 0.388881 0.003540 +vt 0.391433 0.006646 +vt 0.393601 0.173750 +vt 0.525055 0.212989 +vt 0.674718 0.186092 +vt 0.524902 0.186971 +vt 0.472754 0.045915 +vt 0.472804 0.009580 +vt 0.673151 0.046188 +vt 0.676096 0.185512 +vt 0.678376 0.183205 +vt 0.674995 0.046955 +vt 0.678054 0.050022 +vt 0.678940 0.181820 +vt 0.012947 0.175130 +vt 0.698934 0.213354 +vt 0.698934 0.245794 +vt 0.666837 0.221675 +vt 0.666837 0.245794 +vt 0.503488 0.245686 +vt 0.472755 0.245833 +vt 0.503488 0.221424 +vt 0.666162 0.220045 +vt 0.663456 0.217340 +vt 0.504163 0.219793 +vt 0.506872 0.217084 +vt 0.004989 0.551834 +vt 0.390747 0.356145 +vt 0.386158 0.360486 +vt 0.360628 0.189572 +vt 0.219798 0.360486 +vt 0.216697 0.357385 +vt 0.216697 0.191025 +vt 0.219798 0.187924 +vt 0.360628 0.187426 +vt 0.363600 0.187579 +vt 0.947121 0.502555 +vt 0.922832 0.650556 +vt 0.867173 0.503761 +vt 0.996210 0.522144 +vt 0.917681 0.506196 +vt 0.932207 0.338273 +vt 0.139601 0.574626 +vt 0.278011 0.574626 +vt 0.248444 0.823780 +vt 0.249011 0.687906 +vt 0.294366 0.687906 +vt 0.294366 0.740616 +vt 0.294160 0.741111 +vt 0.292839 0.742143 +vt 0.250538 0.742399 +vt 0.293336 0.741935 +vt 0.781306 0.033891 +vt 0.457098 0.275488 +vt 0.976119 0.297728 +vt 0.433827 0.231012 +vt 0.431907 0.231171 +vt 0.429916 0.203288 +vt 0.426195 0.118261 +vt 0.427181 0.035132 +vn 0.6168 0.0000 0.7871 +vn 0.0021 0.0039 1.0000 +vn 0.0003 0.0007 1.0000 +vn 0.0025 0.0046 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn -0.6169 0.0073 -0.7870 +vn -0.4638 -0.8731 -0.1507 +vn -0.4637 -0.8731 -0.1507 +vn 0.4690 0.8832 0.0000 +vn 0.4691 -0.8832 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.2150 0.9766 0.0000 +vn 0.2148 -0.9767 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.7883 0.6153 0.0000 +vn 0.7884 0.6151 0.0000 +vn 1.0000 -0.0032 0.0000 +vn 0.7885 -0.6150 0.0000 +vn -0.2141 0.9743 -0.0697 +vn -0.7638 -0.5958 -0.2482 +vn -0.7637 -0.5959 -0.2482 +vn -0.9511 0.0030 -0.3089 +vn -0.7639 0.5956 -0.2483 +vn -0.2143 -0.9743 -0.0696 +vn -0.4636 0.8731 -0.1507 +vn 0.6168 0.0000 -0.7871 +vn 1.0000 0.0052 -0.0037 +vn 1.0000 0.0005 -0.0005 +vn 1.0000 0.0058 -0.0041 +vn -1.0000 0.0052 0.0037 +vn -1.0000 0.0005 0.0005 +vn -1.0000 0.0058 0.0041 +vn -0.6169 -0.0000 0.7871 +vn 0.5448 -0.4689 -0.6952 +vn -0.2589 -0.8606 -0.4385 +vn 0.3836 0.7830 -0.4896 +vn 0.3837 0.7830 -0.4896 +vn 0.8931 0.0000 -0.4498 +vn 0.3427 0.0009 -0.9394 +vn 0.3836 0.7832 0.4893 +vn 0.3836 0.7831 0.4895 +vn 0.2955 -0.0000 0.9553 +vn 0.5448 -0.4689 0.6952 +vn 0.5674 0.0071 0.8234 +vn -0.3835 0.7833 -0.4892 +vn -0.3835 0.7833 -0.4893 +vn -0.2969 0.0051 -0.9549 +vn -0.8565 0.0063 -0.5161 +vn -0.5449 -0.4688 0.6952 +vn -0.6654 0.0073 0.7465 +vn -0.3837 0.7830 0.4895 +vn -0.3836 0.7831 0.4895 +vn -0.8931 -0.0000 0.4499 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.3335 -0.9427 +vn 0.0000 -0.3335 0.9427 +vn 0.0000 0.1169 0.9931 +vn 0.0000 -0.1169 -0.9931 +vn 0.0000 0.0681 -0.9977 +vn 0.0000 -0.2911 -0.9567 +vn 0.0000 -0.0681 0.9977 +vn 0.0000 0.2911 0.9567 +vn -0.4690 0.8832 0.0000 +vn -0.4691 -0.8831 0.0000 +vn -1.0000 0.0032 0.0000 +vn -0.2150 0.9766 0.0000 +vn -0.7886 -0.6149 -0.0000 +vn -0.7886 0.6149 0.0000 +vn -0.2148 -0.9767 0.0000 +vn 0.0000 -1.0000 0.0001 +vn -0.0059 0.0000 -1.0000 +vn 0.0000 -0.0000 1.0000 +vn 1.0000 0.0090 0.0000 +vn 0.9796 -0.0017 -0.2008 +vn -0.4634 0.0050 -0.8861 +vn 0.7886 0.6149 0.0000 +vn -0.2142 0.9743 -0.0695 +vn -0.7639 -0.5958 -0.2481 +vn -0.9511 0.0029 -0.3088 +vn 0.4513 -0.6178 -0.6439 +vn -0.2689 -0.8145 -0.5141 +vn 0.7912 0.0028 -0.6115 +vn 0.2955 0.0000 -0.9553 +vn 0.3837 0.7830 0.4897 +vn 0.4288 0.0025 0.9034 +vn 0.5423 -0.0784 0.8365 +vn 0.8932 -0.0000 0.4498 +vn -0.3836 0.7831 -0.4895 +vn -0.0258 0.0001 -0.9997 +vn -0.8919 0.0073 -0.4521 +vn -0.6855 -0.0819 0.7235 +vn -0.2955 -0.0000 0.9553 +vn -0.7912 0.0028 0.6115 +vn -0.7887 -0.6148 -0.0000 +s 1 +f 145/246/53 146/247/53 147/248/53 +f 148/249/54 149/250/55 150/251/56 +f 151/252/57 152/253/57 153/254/57 +f 152/255/58 154/256/58 155/257/58 +f 156/258/59 157/259/59 158/260/59 +f 159/261/60 160/262/61 161/263/60 +f 162/264/57 155/265/57 163/266/57 +f 164/267/62 165/268/62 166/269/62 +f 167/270/63 168/271/63 169/272/63 +f 170/273/64 162/274/64 171/275/64 +f 166/269/65 172/276/65 173/277/65 +f 171/275/66 174/278/66 167/270/66 +f 173/277/67 175/279/67 176/280/67 +f 177/281/68 178/282/69 164/267/69 +f 179/283/70 180/284/70 177/281/70 +f 169/272/71 163/285/71 179/283/71 +f 181/286/72 182/287/72 183/288/72 +f 184/289/73 185/290/73 160/262/74 +f 186/291/75 185/290/75 187/292/75 +f 188/293/76 189/294/76 186/291/76 +f 190/295/77 161/263/77 191/296/77 +f 183/288/78 192/297/78 188/293/78 +f 193/298/64 194/299/64 154/300/64 +f 195/301/79 196/302/79 197/303/79 +f 187/304/57 198/305/57 199/306/57 +f 200/307/80 201/308/81 202/309/82 +f 179/310/57 177/311/57 193/312/57 +f 203/313/83 204/314/84 205/315/85 +f 206/316/86 207/317/86 208/318/86 +f 200/319/87 209/320/87 195/301/87 +f 157/259/88 193/321/88 205/322/88 +f 210/323/89 196/302/90 198/324/90 +f 210/323/91 195/301/91 197/303/91 +f 198/324/92 209/320/92 199/325/92 +f 211/326/93 146/247/94 201/327/94 +f 211/326/95 145/246/95 147/248/95 +f 148/249/96 212/328/96 145/246/96 +f 201/327/97 212/328/97 202/329/97 +f 213/330/98 158/260/99 204/331/99 +f 213/330/100 214/332/100 156/258/100 +f 205/322/101 158/260/101 157/259/101 +f 203/333/102 208/318/102 207/317/102 +f 149/250/103 208/318/103 150/251/103 +f 215/334/104 206/316/105 149/250/105 +f 215/334/106 207/317/106 216/335/106 +f 152/336/67 213/337/67 204/338/67 +f 217/339/107 218/340/107 219/341/107 +f 220/342/108 221/343/108 222/344/108 +f 223/345/58 224/346/58 225/347/58 +f 226/348/109 227/349/109 228/350/109 +f 229/351/64 230/352/64 231/353/64 +f 232/354/67 227/355/67 233/356/67 +f 234/357/67 235/358/67 236/359/67 +f 237/360/64 238/361/64 239/362/64 +f 240/363/110 241/364/110 242/365/110 +f 243/366/110 244/367/110 245/368/110 +f 235/369/109 246/370/109 247/371/109 +f 248/372/58 249/373/58 250/374/58 +f 251/375/111 252/376/111 253/377/111 +f 254/378/111 255/379/111 256/380/111 +f 257/381/108 258/382/108 259/383/108 +f 260/384/107 261/385/107 262/386/107 +f 262/386/107 263/387/107 264/388/107 +f 241/389/107 264/388/107 265/390/107 +f 266/391/107 262/386/107 241/389/107 +f 259/392/112 267/393/112 254/378/112 +f 219/394/112 254/378/112 268/395/112 +f 218/396/108 259/383/108 219/397/108 +f 256/398/113 269/399/113 270/400/113 +f 261/401/113 270/400/113 263/402/113 +f 268/395/111 256/380/111 261/403/111 +f 253/404/113 271/405/113 272/406/113 +f 255/407/113 272/406/113 269/399/113 +f 267/393/111 253/377/111 255/379/111 +f 273/408/58 250/374/58 230/352/58 +f 271/409/58 248/372/58 273/408/58 +f 252/410/58 274/411/58 248/372/58 +f 247/371/114 244/367/114 275/412/114 +f 224/346/114 275/412/114 249/373/114 +f 276/413/109 247/371/109 224/346/109 +f 243/366/115 277/414/115 231/415/115 +f 250/374/115 231/415/115 230/352/115 +f 249/373/110 243/366/110 250/374/110 +f 242/365/115 265/416/115 238/417/115 +f 245/368/115 238/417/115 277/414/115 +f 244/367/110 242/365/110 245/368/110 +f 239/362/64 265/418/64 264/419/64 +f 270/420/64 264/419/64 263/421/64 +f 269/422/64 239/362/64 270/420/64 +f 236/359/67 276/413/67 223/345/67 +f 220/423/67 223/345/67 278/424/67 +f 279/425/67 236/359/67 220/423/67 +f 232/354/67 280/426/67 234/357/67 +f 257/427/67 234/357/67 279/425/67 +f 257/427/67 281/428/67 232/354/67 +f 229/351/64 277/429/64 237/360/64 +f 272/430/64 237/360/64 269/422/64 +f 272/430/64 273/408/64 229/351/64 +f 226/348/114 266/431/114 240/363/114 +f 246/370/114 240/363/114 244/367/114 +f 280/432/109 226/348/109 246/370/109 +f 225/347/58 249/373/58 274/411/58 +f 221/433/58 274/411/58 282/434/58 +f 278/424/58 225/347/58 221/433/58 +f 222/435/112 282/436/112 251/375/112 +f 258/437/112 251/375/112 267/393/112 +f 279/438/108 222/344/108 258/382/108 +f 260/384/107 219/341/107 268/439/107 +f 266/391/107 217/339/107 260/384/107 +f 228/440/107 281/441/107 217/339/107 +f 191/442/64 283/443/64 284/444/64 +f 182/445/116 285/446/116 192/447/116 +f 160/448/117 286/449/117 161/450/117 +f 189/451/118 287/452/118 185/453/118 +f 288/454/119 289/455/119 182/456/119 +f 185/453/120 290/457/120 160/448/120 +f 284/458/58 291/459/58 292/460/58 +f 292/461/67 293/462/67 288/454/67 +f 192/447/121 294/463/121 189/451/121 +f 161/450/122 295/464/122 191/442/122 +f 285/465/57 289/466/57 293/467/57 +f 296/468/57 182/469/57 288/470/57 +f 185/471/57 297/472/57 160/473/57 +f 298/474/57 292/475/57 284/476/57 +f 299/477/57 288/470/57 292/475/57 +f 300/478/57 189/479/57 192/480/57 +f 161/481/57 301/482/57 191/483/57 +f 191/483/57 298/474/57 284/476/57 +f 302/484/57 192/480/57 182/469/57 +f 160/473/57 303/485/57 161/481/57 +f 189/479/57 304/486/57 185/471/57 +f 305/487/67 288/488/67 181/286/67 +f 306/489/64 191/296/123 307/490/64 +f 308/491/124 284/476/124 292/475/124 +f 307/492/107 308/493/107 151/494/107 +f 145/246/53 212/328/53 146/247/53 +f 148/249/54 211/326/125 149/250/55 +f 151/252/57 154/495/57 152/253/57 +f 170/496/58 309/497/58 155/257/58 +f 309/497/58 152/255/58 155/257/58 +f 154/256/126 194/498/126 175/499/126 +f 194/498/126 176/500/126 175/499/126 +f 154/256/127 175/499/127 155/257/127 +f 156/258/128 214/332/128 157/259/128 +f 159/261/60 184/289/61 160/262/61 +f 155/265/57 175/501/57 163/266/57 +f 175/501/57 172/502/57 180/503/57 +f 180/503/57 172/502/57 178/504/57 +f 172/502/57 165/505/57 178/504/57 +f 180/503/57 163/266/57 175/501/57 +f 163/266/57 168/506/57 174/507/57 +f 174/507/57 162/264/57 163/266/57 +f 164/267/62 178/282/62 165/268/62 +f 167/270/63 174/278/63 168/271/63 +f 170/273/64 155/508/64 162/274/64 +f 166/269/65 165/268/65 172/276/65 +f 171/275/66 162/274/66 174/278/66 +f 173/277/67 172/276/67 175/279/67 +f 177/281/68 180/284/129 178/282/69 +f 179/283/70 163/285/70 180/284/70 +f 169/272/71 168/271/71 163/285/71 +f 181/286/130 288/488/130 182/287/130 +f 184/289/73 187/292/131 185/290/73 +f 186/291/132 189/294/132 185/290/132 +f 188/293/76 192/297/76 189/294/76 +f 190/295/77 159/261/77 161/263/77 +f 183/288/78 182/287/78 192/297/78 +f 151/509/64 310/510/64 199/511/64 +f 199/511/64 200/512/64 151/509/64 +f 200/512/64 202/513/64 148/514/64 +f 151/509/64 200/512/64 148/514/64 +f 148/514/64 150/515/64 203/516/64 +f 151/509/64 148/514/64 203/516/64 +f 203/516/64 205/517/64 154/300/64 +f 151/509/64 203/516/64 154/300/64 +f 205/517/64 193/298/64 154/300/64 +f 195/301/79 209/320/79 196/302/79 +f 199/306/57 310/518/57 181/519/57 +f 310/518/57 305/520/57 181/519/57 +f 306/521/57 311/522/57 190/523/57 +f 311/522/57 198/305/57 190/523/57 +f 199/306/57 181/519/57 183/524/57 +f 199/306/57 183/524/57 188/525/57 +f 159/526/57 190/523/57 198/305/57 +f 184/527/57 159/526/57 198/305/57 +f 199/306/57 188/525/57 186/528/57 +f 187/304/57 184/527/57 198/305/57 +f 199/306/57 186/528/57 187/304/57 +f 200/307/80 210/529/58 201/308/81 +f 213/530/57 309/531/57 171/532/57 +f 309/531/57 170/533/57 171/532/57 +f 176/534/57 194/535/57 173/536/57 +f 194/535/57 193/312/57 173/536/57 +f 213/530/57 171/532/57 167/537/57 +f 213/530/57 167/537/57 169/538/57 +f 166/539/57 173/536/57 193/312/57 +f 164/540/57 166/539/57 193/312/57 +f 213/530/57 169/538/57 179/310/57 +f 177/311/57 164/540/57 193/312/57 +f 213/530/57 179/310/57 193/312/57 +f 203/313/83 215/541/107 204/314/84 +f 206/316/86 216/335/86 207/317/86 +f 200/319/133 199/325/133 209/320/133 +f 157/259/134 214/332/134 193/321/134 +f 210/323/89 197/303/89 196/302/90 +f 210/323/135 200/319/135 195/301/135 +f 198/324/136 196/302/136 209/320/136 +f 211/326/93 147/248/137 146/247/94 +f 211/326/138 148/249/138 145/246/138 +f 148/249/139 202/329/139 212/328/139 +f 201/327/140 146/247/140 212/328/140 +f 213/330/98 156/258/141 158/260/99 +f 213/330/142 193/321/142 214/332/142 +f 205/322/143 204/331/143 158/260/143 +f 203/333/144 150/251/144 208/318/144 +f 149/250/145 206/316/145 208/318/145 +f 215/334/104 216/335/104 206/316/105 +f 215/334/146 203/333/146 207/317/146 +f 204/338/67 215/542/67 152/336/67 +f 215/542/67 149/543/67 153/544/67 +f 152/336/67 215/542/67 153/544/67 +f 149/543/67 211/545/67 153/544/67 +f 211/545/67 201/546/67 153/544/67 +f 201/546/67 210/547/67 153/544/67 +f 210/547/67 198/548/67 153/544/67 +f 198/548/67 311/549/67 153/544/67 +f 152/336/67 309/550/67 213/337/67 +f 217/339/107 281/441/107 218/340/107 +f 220/342/108 278/551/108 221/343/108 +f 223/345/58 276/413/58 224/346/58 +f 226/348/109 233/552/109 227/349/109 +f 229/351/64 273/408/64 230/352/64 +f 232/354/67 281/428/67 227/355/67 +f 234/357/67 280/426/67 235/358/67 +f 237/360/64 277/429/64 238/361/64 +f 240/363/110 266/431/110 241/364/110 +f 243/366/110 275/412/110 244/367/110 +f 235/369/109 280/432/109 246/370/109 +f 248/372/58 274/411/58 249/373/58 +f 251/375/111 282/436/111 252/376/111 +f 254/378/111 267/393/111 255/379/111 +f 257/381/108 279/438/108 258/382/108 +f 260/384/107 268/439/107 261/385/107 +f 262/386/107 261/385/107 263/387/107 +f 241/389/107 262/386/107 264/388/107 +f 266/391/107 260/384/107 262/386/107 +f 259/392/112 258/437/112 267/393/112 +f 219/394/112 259/392/112 254/378/112 +f 218/396/108 257/381/108 259/383/108 +f 256/398/113 255/407/113 269/399/113 +f 261/401/113 256/398/113 270/400/113 +f 268/395/111 254/378/111 256/380/111 +f 253/404/113 252/553/113 271/405/113 +f 255/407/113 253/404/113 272/406/113 +f 267/393/111 251/375/111 253/377/111 +f 273/408/58 248/372/58 250/374/58 +f 271/409/58 252/410/58 248/372/58 +f 252/410/58 282/434/58 274/411/58 +f 247/371/114 246/370/114 244/367/114 +f 224/346/114 247/371/114 275/412/114 +f 276/413/109 235/369/109 247/371/109 +f 243/366/115 245/368/115 277/414/115 +f 250/374/115 243/366/115 231/415/115 +f 249/373/110 275/412/110 243/366/110 +f 242/365/115 241/364/115 265/416/115 +f 245/368/115 242/365/115 238/417/115 +f 244/367/110 240/363/110 242/365/110 +f 239/362/64 238/361/64 265/418/64 +f 270/420/64 239/362/64 264/419/64 +f 269/422/64 237/360/64 239/362/64 +f 236/359/67 235/358/67 276/413/67 +f 220/423/67 236/359/67 223/345/67 +f 279/425/67 234/357/67 236/359/67 +f 232/354/67 233/356/67 280/426/67 +f 257/427/67 232/354/67 234/357/67 +f 257/427/67 218/554/67 281/428/67 +f 229/351/64 231/353/64 277/429/64 +f 272/430/64 229/351/64 237/360/64 +f 272/430/64 271/409/64 273/408/64 +f 226/348/114 228/350/114 266/431/114 +f 246/370/114 226/348/114 240/363/114 +f 280/432/109 233/552/109 226/348/109 +f 225/347/58 224/346/58 249/373/58 +f 221/433/58 225/347/58 274/411/58 +f 278/424/58 223/345/58 225/347/58 +f 222/435/112 221/555/112 282/436/112 +f 258/437/112 222/435/112 251/375/112 +f 279/438/108 220/342/108 222/344/108 +f 260/384/107 217/339/107 219/341/107 +f 266/391/107 228/440/107 217/339/107 +f 228/440/107 227/556/107 281/441/107 +f 191/442/64 295/464/64 283/443/64 +f 182/445/116 289/557/116 285/446/116 +f 160/448/117 290/457/117 286/449/117 +f 189/451/118 294/463/118 287/452/118 +f 288/454/119 293/462/119 289/455/119 +f 185/453/147 287/452/147 290/457/147 +f 284/458/58 283/558/58 291/459/58 +f 292/461/67 291/559/67 293/462/67 +f 192/447/121 285/446/121 294/463/121 +f 161/450/122 286/449/122 295/464/122 +f 293/467/57 291/560/57 283/561/57 +f 283/561/57 295/562/57 293/467/57 +f 295/562/57 286/563/57 287/564/57 +f 293/467/57 295/562/57 294/565/57 +f 286/563/57 290/566/57 287/564/57 +f 287/564/57 294/565/57 295/562/57 +f 294/565/57 285/465/57 293/467/57 +f 296/468/57 302/484/57 182/469/57 +f 185/471/57 304/486/57 297/472/57 +f 298/474/57 299/477/57 292/475/57 +f 299/477/57 296/468/57 288/470/57 +f 300/478/57 312/567/57 189/479/57 +f 161/481/57 303/485/57 301/482/57 +f 191/483/57 301/482/57 298/474/57 +f 302/484/57 300/478/57 192/480/57 +f 160/473/57 297/472/57 303/485/57 +f 189/479/57 312/567/57 304/486/57 +f 305/487/67 308/568/67 288/488/67 +f 306/489/64 190/295/123 191/296/123 +f 308/491/124 307/569/124 284/476/124 +f 153/570/107 311/571/107 307/492/107 +f 311/571/107 306/572/107 307/492/107 +f 305/573/107 310/574/107 308/493/107 +f 310/574/107 151/494/107 308/493/107 +f 153/570/107 307/492/107 151/494/107 diff --git a/src/main/resources/assets/hbm/sounds.json b/src/main/resources/assets/hbm/sounds.json index ab2066140..4a0266d81 100644 --- a/src/main/resources/assets/hbm/sounds.json +++ b/src/main/resources/assets/hbm/sounds.json @@ -52,6 +52,8 @@ "block.turbinegasRunning": {"category": "block", "sounds": [{"name": "block/turbinegasRunning", "stream": false}]}, "block.turbinegasShutdown": {"category": "block", "sounds": [{"name": "block/turbinegasShutdown", "stream": true}]}, "block.damage": {"category": "block", "sounds": ["block/dam1", "block/dam2", "block/dam3", "block/dam4"]}, + "block.electricHum": {"category": "block", "sounds": [{"name": "block/electricHum", "stream": false}]}, + "block.boiler": {"category": "block", "sounds": [{"name": "block/boiler", "stream": false}]}, "door.TransitionSealOpen": {"category": "block", "sounds": [{"name": "block/door/transition_seal_open", "stream": true}]}, "door.wghStart": {"category": "block", "sounds": [{"name": "block/door/wgh_start", "stream": true}]}, diff --git a/src/main/resources/assets/hbm/sounds/block/boiler.ogg b/src/main/resources/assets/hbm/sounds/block/boiler.ogg new file mode 100644 index 0000000000000000000000000000000000000000..c35d584f308dde45e23d89eb1ac5b495391b83cd GIT binary patch literal 191587 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

GtP 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 z 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/sounds/block/electricHum.ogg b/src/main/resources/assets/hbm/sounds/block/electricHum.ogg new file mode 100644 index 0000000000000000000000000000000000000000..2d6a77653ac3bbae74134d66b7a648acce9c7019 GIT binary patch literal 30848 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 N002ovPDHLkV1l=$?rQ)5 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/concrete_colored_ext.machine.png b/src/main/resources/assets/hbm/textures/blocks/concrete_colored_ext.machine.png new file mode 100644 index 0000000000000000000000000000000000000000..53406350fa015e77948f54ae5f07880b0c7b6a65 GIT binary patch literal 515 zcmV+e0{s1nP)B@dw6ZoCj;E>jGz$c{)GJf^Sd&W z@IX}f`FUezjNTce0}zoEMP*S{EO$hNW=6|MB7&@ zNsEZRX-0Uk?#BRgEqZH2CZ>vtpshWR0h*cZ1K*uZ6*B_?LU>;nV~nS%s2~U)v1K4U z2>*AEOvdQ6)-Y8>jRMnQV);46WMP$-j!_4;CTpY(BA~qs|$`@T#(TJd`IA5=g zq`Q!JvpE-t?EPAZ$YxW8d^|AQl(Gt literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/concrete_colored_ext.machine_stripe.png b/src/main/resources/assets/hbm/textures/blocks/concrete_colored_ext.machine_stripe.png new file mode 100644 index 0000000000000000000000000000000000000000..e60525931563597a87ea2863b344e159d411ee96 GIT binary patch literal 507 zcmVvHo7~?UvxvG%F%4AIs-Obn>k^J)gJ5>e1*h~+$ zF{bac5wU@1SbzNa7c(X^uuXRZ5DLaaW-?QzcVv@JYmu3R0tw6p4Q;iyiS9;%s=lox5rL$KeP-wxbSvnYtwcf0 z3^ttSL4@`o^ng`0i2dD-&{kt3U`53Cd`q$ohP9IGx`+re7kKYx{Kalyg}x$@gl%#q zUCnu(?3m|awasxHguK(LF1iN{A(6S66(TdxYq>MPo_qZCB&49KP>AlKsyWvBYM^)C z+p50ezWWdn;#g~!=-#wnc}vX9%?{Ufkr_XgO@!@7=BuKw&UH7L32gtF>$wNIEv%1^ z4>FRzSyl!%|MNa$j0vqU3jcduyqzaiwJ+VVxUOPm xSk+Bt5IVW49vk_xBRxM~ReXDU+w{{U~5LP8b`ObP%1002ovPDHLkV1n0D=qCUG literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/concrete_colored_ext.pink.png b/src/main/resources/assets/hbm/textures/blocks/concrete_colored_ext.pink.png new file mode 100644 index 0000000000000000000000000000000000000000..bf6c79faba4226e9dcb380f11a2c3a48119ce6d2 GIT binary patch literal 523 zcmV+m0`&cfP)EcWSKw%sG8{ ztwryh)*5C8z!>8%KuU?$8l@EOb6poXXL|315KvWe&dv%Tgb)B6IfOt60TDq&IF7@m z0H`V=LTl|CKtz1QzsS9JwrwM&gqfkLF2l^+4=tsjs$ADa@12~p(>>3VecxTXh@h%& zxS64?HRhbWy}kLMnK8y7=gfJYhzKbquIqA;IVU1Qh%pjE_z}}ui^t=^aU6sYNGY+_ zBF4xV!!R!S*6pU)rne*l`{K`-$Logn}K N002ovPDHLkV1h0O?neLs literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/concrete_colored_ext.purple.png b/src/main/resources/assets/hbm/textures/blocks/concrete_colored_ext.purple.png new file mode 100644 index 0000000000000000000000000000000000000000..10101f3fbf21907926b7726e6836320fa96c0cc1 GIT binary patch literal 523 zcmV+m0`&cfP)EcWSKw%sG8{ ztwryh)*5C8z!>8%KuU?$8l@EOb6poXXL|315KvWe&dv%Tgb)B6IfOt60TDq&IF7@m z0H`V=LTl|CKtz1QzsS9JwrwM&gqfkLF2l^+4=tsjs$ADa@12~p(>>3VecxTXh@h%& zxS64?HRhbWy}kLMnK8y7=gfJYhzKbquIqA;IVU1Qh%pjE_z}}ui^t=^aU6sYNGY+_ zBF4xV!!R!S*6pU)rne*kXQK&Dd1p^^Xq N002ovPDHLkV1jx2@6-SQ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/foundry_slagtap_bottom.png b/src/main/resources/assets/hbm/textures/blocks/foundry_slagtap_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..07af75aca5ea06fd62623193268766d622eee7a3 GIT binary patch literal 424 zcmV;Z0ayNsP)JwoWoiR5y8yxh#(?3=b);*-*47h0GxB`TLMJ{s#<^^5x)m_ z)>?HLV9trVv-d_-5fR+IE(55Up{jLJRcWo^?wA?(eIp_Ts;a1Jsd5o1h9~mgo8CL_ zUhHWj0U`pOb0Q+lIm?QfAtH=1xUQ?b1BeI_fr$L7$&g;JSIJY=0vltL_aqaMe-_LP zGvl1|C-v4E_kCk#^xiq=U}o&Siygr8kh1dfoU^ev7XE)I znREiCh2DEvnRAwHP5Do65mD22_v${G-|u$;c|_Fm@=2$^Twd?J>b$P&kKG?>LN0q% Sd%d#&0000lF(EG8ncaA`SA;Wn?QvyZ zC#1&=2tN4)lG1U+cx^XC+AGpbu7!mx~^O<7uvQZ=L|sed_Dn) zF%o0sd_FUdBiptyO%r|Jv+p~n)9Ikj^NhPAA~f!fy940v48s6G2mv!Yb}1#yjK||~ z+=>WlW~eIrz5}4Dgb-+&1~Vh2goqq;RYg^)wZ7-?qKF){pM@ABr4&jjxH~y#+?^1@ z+n|(kDAihjX`30fRz!rhZ4nX7jMwW$&KXtxw{QMEUmUe{tgQj*wg3PC07*qoM6N<$ Ef{a>!q5uE@ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/foundry_slagtap_side.png b/src/main/resources/assets/hbm/textures/blocks/foundry_slagtap_side.png new file mode 100644 index 0000000000000000000000000000000000000000..ce3162becd18fcdc33ac5110cfb2d2c635951335 GIT binary patch literal 307 zcmV-30nGl1P)|x)8zt@oW5L*CJG0G*wEQOk9ZN!2{po zZ9U7m+{4VkmoH$B$79Jk18_c{+3j{%Yw_N*TCIpN@-yG>_W-nQ%jtB&T`rf!rmCna zx7%%*g%A)C?)N*Y3P6mJuIm7hrfC4E>l*Jp*XwnW0X!ZLhGC$TLRD1&jN?cM;dR2{ za47G>dc6j~Irp-QFpeVt)>@`%VxDJ2gq$Wq?AZ05kkNigQ}8q<_T}YX#O~JXyX6?002ovPDHLk FV1ks_h~oeN literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/foundry_slagtap_top.png b/src/main/resources/assets/hbm/textures/blocks/foundry_slagtap_top.png new file mode 100644 index 0000000000000000000000000000000000000000..945bb0bbdc372ece0e1e005ba1f9037732e8ab81 GIT binary patch literal 370 zcmV-&0ge8NP)RX_LZRX?J1T-m7vRWcNoU=V!(c@bv_&Bz zrn7>+!e79D!^7d`K3;&`q-kohEHita=eddFm~d+kwAN5c?J?$gMi2yq+j}6T#4rp* ztg4EzpAE{g1Y?Ydr_%|J$*Z~jqCMlq?9Pj5<&=A zm&@fVan7+U3oMHi`||VojA0m{wZ`Fa__@}98q=N#7S^@0!r$Kw%A)BJgbd7i)Q`Fz4IiemFpk|f4;T@v8?KANV% z{eIv0cfH4MAO2SD%7=}aw0HqY#wk4b_+jSi{=R}O62to+LKNBWIEGmC zzP+%KmqCGt+41qQPcAp>wX{XgG+a_VrN8cHXy|RTNegx>a+;szoW|m}A-AAua)a<6 e`9JLZwieBdjr-a!%gzQG#Ng@b=d#Wzp$PyNZ7Em) literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/slag.png b/src/main/resources/assets/hbm/textures/blocks/slag.png new file mode 100644 index 0000000000000000000000000000000000000000..6b39d33d52ae39ff4bebf8f273ac874920ae9715 GIT binary patch literal 775 zcmV+i1Ni)jP)_6-3 zzrd+Z?Nptzb&)tVAS9C!B;DSC&`fVYNd&pS!LQ}J^SN;EdCo!po6%?_Wm!rTMRI+8 zEg~Xmnu^w1q9~HdWFlH?Da%r{))EAPD5Yeh)9Kt;mWAUu_`XlS-=|iq@%sA8{{BAC z&(8oH9v<@Y^1|NU9=`AM_4P%!+hzUa+U+*oZkM7c zNRk8q%d*JxoH&j_MC9%5ZS}@tv5?!_TM-eN&1TCFWj32hnx>+ZlIe6RA|hp3%0{cz zx@k6>*tX5q))v0+b9s45RaNZl>=4H>pP!%X?(Xvb{*GZ70MzSsOw(lD^E`^8AdX{# zAmIG`oIKAl41+w+3BwT6G%*YVtu>8C1JCmqkH>^z$a<0_3qO9v&WOwOS-e zLKueFwoR60jK^af$D!3~ad&se>FFs&QLq+8kz`p$r_-U)Xpkfcj^mId3GH?p%d&{$ zn4&0HEEaUTU0l~Cj^n=z=JPq8=K)Yv6}?^$(=QyR%VM#R;c&PT zEz$jdX*e8;QcBV^m9^<~Dq3qC$HBI3s;a^?O?=*6>L z^?IHA`+E$-U@#bv=Q+SC151;us$xE$vo@Q}WJzI}vMkF0*xufzC<*|IqF_Fs6UQ-E zS6AeD{@0DA>so6`(^N!6lv1l+1VJF9(P(AblG?Hh{{YFm5W=G@A%Oq@002ovPDHLk FV1iioa0UPX literal 0 HcmV?d00001 From 7acf23b2aa5a3f6bbd3019f8a99c16fa3f009215 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 21 May 2023 22:51:04 +0200 Subject: [PATCH 053/432] ow my balls --- src/main/java/com/hbm/blocks/generic/BlockTallPlant.java | 2 +- .../com/hbm/tileentity/machine/TileEntityMachineTurbofan.java | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/blocks/generic/BlockTallPlant.java b/src/main/java/com/hbm/blocks/generic/BlockTallPlant.java index 4a972a3e7..f52da4c41 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockTallPlant.java +++ b/src/main/java/com/hbm/blocks/generic/BlockTallPlant.java @@ -305,7 +305,7 @@ public class BlockTallPlant extends BlockEnumMulti implements IPlantable, IGrowa public ArrayList getDrops(World world, int x, int y, int z, int metadata, int fortune) { ArrayList ret = super.getDrops(world, x, y, z, metadata, fortune); - if(rectify(world.getBlockMetadata(x, y, z)) == EnumTallFlower.CD4.ordinal()) { + if(metadata == EnumTallFlower.CD4.ordinal() + 8) { ret.add(DictFrame.fromOne(ModItems.plant_item, com.hbm.items.ItemEnums.EnumPlantType.MUSTARDWILLOW, 3 + world.rand.nextInt(4))); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java index 942732fa1..4610b5216 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java @@ -309,6 +309,7 @@ public class TileEntityMachineTurbofan extends TileEntityMachineBase implements audio = rebootAudio(audio); } + audio.keepAlive(); audio.updateVolume(momentum); audio.updatePitch(momentum / 200F + 0.5F + this.afterburner * 0.16F); From 7ecc3fb1b79b961ad31c30fe4f55f6065a232430 Mon Sep 17 00:00:00 2001 From: Boblet Date: Mon, 22 May 2023 16:48:51 +0200 Subject: [PATCH 054/432] fixes, cryo cannon UV --- .../hbm/entity/projectile/EntityShrapnel.java | 12 + .../entity/projectile/EntityWaterSplash.java | 28 +- .../inventory/material/MatDistribution.java | 1 + src/main/java/com/hbm/items/ModItems.java | 2 +- .../machine/TileEntityMachineMiningLaser.java | 4 +- .../assets/hbm/models/weapons/cryo_cannon.obj | 5964 +++++++++++++++-- .../textures/models/weapons/cryo_cannon.png | Bin 2251 -> 2242 bytes .../models/weapons/cryo_cannon/fill_0.png | Bin 0 -> 144 bytes .../models/weapons/cryo_cannon/fill_1.png | Bin 0 -> 148 bytes .../models/weapons/cryo_cannon/fill_10.png | Bin 0 -> 153 bytes .../models/weapons/cryo_cannon/fill_11.png | Bin 0 -> 140 bytes .../models/weapons/cryo_cannon/fill_12.png | Bin 0 -> 142 bytes .../models/weapons/cryo_cannon/fill_13.png | Bin 0 -> 141 bytes .../models/weapons/cryo_cannon/fill_14.png | Bin 0 -> 138 bytes .../models/weapons/cryo_cannon/fill_2.png | Bin 0 -> 147 bytes .../models/weapons/cryo_cannon/fill_3.png | Bin 0 -> 152 bytes .../models/weapons/cryo_cannon/fill_4.png | Bin 0 -> 153 bytes .../models/weapons/cryo_cannon/fill_5.png | Bin 0 -> 156 bytes .../models/weapons/cryo_cannon/fill_6.png | Bin 0 -> 156 bytes .../models/weapons/cryo_cannon/fill_7.png | Bin 0 -> 151 bytes .../models/weapons/cryo_cannon/fill_8.png | Bin 0 -> 153 bytes .../models/weapons/cryo_cannon/fill_9.png | Bin 0 -> 154 bytes .../models/weapons/cryo_cannon/pressure_0.png | Bin 0 -> 220 bytes .../models/weapons/cryo_cannon/pressure_1.png | Bin 0 -> 225 bytes .../weapons/cryo_cannon/pressure_10.png | Bin 0 -> 227 bytes .../weapons/cryo_cannon/pressure_11.png | Bin 0 -> 227 bytes .../models/weapons/cryo_cannon/pressure_2.png | Bin 0 -> 225 bytes .../models/weapons/cryo_cannon/pressure_3.png | Bin 0 -> 219 bytes .../models/weapons/cryo_cannon/pressure_4.png | Bin 0 -> 224 bytes .../models/weapons/cryo_cannon/pressure_5.png | Bin 0 -> 208 bytes .../models/weapons/cryo_cannon/pressure_6.png | Bin 0 -> 204 bytes .../models/weapons/cryo_cannon/pressure_7.png | Bin 0 -> 222 bytes .../models/weapons/cryo_cannon/pressure_8.png | Bin 0 -> 213 bytes .../models/weapons/cryo_cannon/pressure_9.png | Bin 0 -> 227 bytes .../weapons/cryo_cannon/pressure_empty.png | Bin 0 -> 213 bytes .../models/weapons/cryo_cannon/turbine_0.png | Bin 0 -> 235 bytes .../models/weapons/cryo_cannon/turbine_1.png | Bin 0 -> 242 bytes .../models/weapons/cryo_cannon/turbine_2.png | Bin 0 -> 247 bytes .../models/weapons/cryo_cannon/turbine_3.png | Bin 0 -> 237 bytes .../models/weapons/cryo_cannon/turbine_4.png | Bin 0 -> 250 bytes .../models/weapons/cryo_cannon/turbine_5.png | Bin 0 -> 249 bytes .../models/weapons/cryo_cannon/turbine_6.png | Bin 0 -> 247 bytes .../models/weapons/cryo_cannon/turbine_7.png | Bin 0 -> 243 bytes .../models/weapons/cryo_cannon/turbine_8.png | Bin 0 -> 234 bytes .../weapons/cryo_cannon/turbine_empty.png | Bin 0 -> 206 bytes 45 files changed, 5359 insertions(+), 652 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_0.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_1.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_10.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_11.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_12.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_13.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_14.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_2.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_3.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_4.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_5.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_6.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_7.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_8.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_9.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_0.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_1.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_10.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_11.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_2.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_3.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_4.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_5.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_6.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_7.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_8.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_9.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_empty.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_0.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_1.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_2.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_3.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_4.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_5.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_6.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_7.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_8.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_empty.png diff --git a/src/main/java/com/hbm/entity/projectile/EntityShrapnel.java b/src/main/java/com/hbm/entity/projectile/EntityShrapnel.java index 3b1c7dea5..c7cc1a674 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityShrapnel.java +++ b/src/main/java/com/hbm/entity/projectile/EntityShrapnel.java @@ -7,6 +7,7 @@ import com.hbm.lib.ModDamageSource; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.projectile.EntityThrowable; import net.minecraft.init.Blocks; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; @@ -106,4 +107,15 @@ public class EntityShrapnel extends EntityThrowable { public void setWatz(boolean b) { this.dataWatcher.updateObject(16, (byte) (b ? 3 : 0)); } + + @Override + public boolean writeToNBTOptional(NBTTagCompound nbt) { + return false; + } + + @Override + public void readEntityFromNBT(NBTTagCompound nbt) { + super.readEntityFromNBT(nbt); + this.setDead(); + } } diff --git a/src/main/java/com/hbm/entity/projectile/EntityWaterSplash.java b/src/main/java/com/hbm/entity/projectile/EntityWaterSplash.java index d8501c733..4eed4570b 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityWaterSplash.java +++ b/src/main/java/com/hbm/entity/projectile/EntityWaterSplash.java @@ -9,24 +9,21 @@ import net.minecraft.world.World; public class EntityWaterSplash extends EntityThrowable { - public EntityWaterSplash(World p_i1773_1_) - { - super(p_i1773_1_); - } + public EntityWaterSplash(World p_i1773_1_) { + super(p_i1773_1_); + } - public EntityWaterSplash(World p_i1774_1_, EntityLivingBase p_i1774_2_) - { - super(p_i1774_1_, p_i1774_2_); - } + public EntityWaterSplash(World p_i1774_1_, EntityLivingBase p_i1774_2_) { + super(p_i1774_1_, p_i1774_2_); + } - @Override + @Override public void entityInit() { - } + } - public EntityWaterSplash(World p_i1775_1_, double p_i1775_2_, double p_i1775_4_, double p_i1775_6_) - { - super(p_i1775_1_, p_i1775_2_, p_i1775_4_, p_i1775_6_); - } + public EntityWaterSplash(World p_i1775_1_, double p_i1775_2_, double p_i1775_4_, double p_i1775_6_) { + super(p_i1775_1_, p_i1775_2_, p_i1775_4_, p_i1775_6_); + } @Override public void onUpdate() { @@ -51,9 +48,12 @@ public class EntityWaterSplash extends EntityThrowable { } } + @Override public boolean writeToNBTOptional(NBTTagCompound nbt) { return false; } + + @Override public void readEntityFromNBT(NBTTagCompound nbt) { super.readEntityFromNBT(nbt); this.setDead(); diff --git a/src/main/java/com/hbm/inventory/material/MatDistribution.java b/src/main/java/com/hbm/inventory/material/MatDistribution.java index 71116ec6c..a8793dc1c 100644 --- a/src/main/java/com/hbm/inventory/material/MatDistribution.java +++ b/src/main/java/com/hbm/inventory/material/MatDistribution.java @@ -84,6 +84,7 @@ public class MatDistribution extends SerializableRecipe { registerEntry(DictFrame.fromOne(ModBlocks.stone_resource, EnumStoneType.LIMESTONE), MAT_FLUX, DUST.q(10)); registerEntry(ModItems.powder_flux, MAT_FLUX, DUST.q(1)); + registerEntry(new ItemStack(Items.coal, 1, 1), MAT_CARBON, NUGGET.q(3)); } public static void registerEntry(Object key, Object... matDef) { diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index d055d6f01..8fc513266 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -3280,7 +3280,7 @@ public class ModItems { }).setUnlocalizedName("iv_blood").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":iv_blood"); iv_xp_empty = new ItemSimpleConsumable().setUseActionServer((stack, user) -> { - if(user.experienceTotal >= 100) { + if(EnchantmentUtil.getTotalExperience(user) >= 100) { ItemSimpleConsumable.giveSoundAndDecrement(stack, user, "hbm:item.syringe", new ItemStack(ModItems.iv_xp)); EnchantmentUtil.setExperience(user, EnchantmentUtil.getTotalExperience(user) - 100); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java index e0e4c52f7..82076c1cf 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java @@ -262,7 +262,9 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen if(hasCrystallizer()) { CrystallizerRecipe result = CrystallizerRecipes.getOutput(stack, Fluids.ACID); - if(result != null && result.output.getItem() != ModItems.scrap) { + if(result == null) result = CrystallizerRecipes.getOutput(stack, Fluids.SULFURIC_ACID); + + if(result != null) { worldObj.spawnEntityInWorld(new EntityItem(worldObj, targetX + 0.5, targetY + 0.5, targetZ + 0.5, result.output.copy())); normal = false; } diff --git a/src/main/resources/assets/hbm/models/weapons/cryo_cannon.obj b/src/main/resources/assets/hbm/models/weapons/cryo_cannon.obj index db707ffc8..32b7cee31 100644 --- a/src/main/resources/assets/hbm/models/weapons/cryo_cannon.obj +++ b/src/main/resources/assets/hbm/models/weapons/cryo_cannon.obj @@ -1,5 +1,810 @@ # Blender v2.79 (sub 0) OBJ File: 'cryo_cannon.blend' # www.blender.org +o Plane.004 +v -0.437500 2.102596 -3.042822 +v -0.483253 2.144063 -3.023486 +v -0.500000 2.200707 -2.997072 +v -0.483253 2.257351 -2.970659 +v -0.437500 2.298818 -2.951323 +v -0.375000 2.313995 -2.944245 +v -0.312500 2.298818 -2.951323 +v -0.266747 2.257351 -2.970659 +v -0.250000 2.200707 -2.997072 +v -0.266747 2.144063 -3.023486 +v -0.312500 2.102596 -3.042822 +v -0.375000 2.087419 -3.049900 +vt 0.750000 0.933013 +vt 0.933013 0.750000 +vt 1.000000 0.500000 +vt 0.933013 0.250000 +vt 0.750000 0.066987 +vt 0.500000 0.000000 +vt 0.250000 0.066987 +vt 0.066987 0.250000 +vt 0.000000 0.500000 +vt 0.066987 0.750000 +vt 0.250000 0.933013 +vt 0.500000 1.000000 +vn -0.0000 0.4226 -0.9063 +s off +f 1/1/1 2/2/1 3/3/1 4/4/1 5/5/1 6/6/1 7/7/1 8/8/1 9/9/1 10/10/1 11/11/1 12/12/1 +o Plane.003 +v -0.216506 2.340409 -3.000889 +v -0.250000 2.227120 -3.053716 +v -0.216506 2.113832 -3.106544 +v -0.125000 2.030899 -3.145216 +v 0.000000 2.000544 -3.159371 +v 0.125000 2.030899 -3.145216 +v 0.216506 2.113832 -3.106544 +v 0.250000 2.227120 -3.053716 +v 0.216506 2.340409 -3.000889 +v 0.125000 2.423342 -2.962217 +v 0.000000 2.453697 -2.948062 +v -0.125000 2.423342 -2.962217 +vt 0.250000 0.933013 +vt 0.500000 1.000000 +vt 0.750000 0.933013 +vt 0.933013 0.750000 +vt 1.000000 0.500000 +vt 0.933013 0.250000 +vt 0.750000 0.066987 +vt 0.500000 0.000000 +vt 0.250000 0.066987 +vt 0.066987 0.250000 +vt 0.000000 0.500000 +vt 0.066987 0.750000 +vn 0.0000 0.4226 -0.9063 +s off +f 24/13/2 23/14/2 22/15/2 21/16/2 20/17/2 19/18/2 18/19/2 17/20/2 16/21/2 15/22/2 14/23/2 13/24/2 +o Plane.002 +v -0.109472 2.437500 -0.413125 +v 0.003817 2.437500 -0.360298 +v 0.109472 2.437500 -0.586875 +v -0.003817 2.437500 -0.639702 +v 0.109472 2.312500 -0.586875 +v -0.003817 2.312500 -0.639702 +v -0.109472 2.312500 -0.413125 +v 0.003817 2.312500 -0.360298 +v 0.109472 0.062500 -0.413125 +v -0.003817 0.062500 -0.360298 +v -0.109472 0.062500 -0.586875 +v 0.003816 0.062500 -0.639702 +v -0.109472 0.187500 -0.586875 +v 0.003816 0.187500 -0.639702 +v 0.109472 0.187500 -0.413125 +v -0.003817 0.187500 -0.360298 +v 1.187500 1.359472 -0.413125 +v 1.187500 1.246183 -0.360298 +v 1.187500 1.140528 -0.586875 +v 1.187500 1.253817 -0.639702 +v 1.062500 1.140528 -0.586875 +v 1.062500 1.253817 -0.639702 +v 1.062500 1.359472 -0.413125 +v 1.062500 1.246183 -0.360298 +v -1.187500 1.140528 -0.413125 +v -1.187500 1.253817 -0.360298 +v -1.187500 1.359473 -0.586875 +v -1.187500 1.246184 -0.639702 +v -1.062500 1.359473 -0.586875 +v -1.062500 1.246184 -0.639702 +v -1.062500 1.140528 -0.413125 +v -1.062500 1.253817 -0.360298 +v 0.762281 2.167098 -0.413125 +v 0.842388 2.086991 -0.360298 +v 0.917098 2.012281 -0.586875 +v 0.836990 2.092388 -0.639702 +v 0.828709 1.923892 -0.586875 +v 0.748602 2.004000 -0.639702 +v 0.673892 2.078710 -0.413125 +v 0.754000 1.998602 -0.360298 +v -0.762281 0.332902 -0.413125 +v -0.842388 0.413010 -0.360298 +v -0.917098 0.487720 -0.586875 +v -0.836991 0.407612 -0.639702 +v -0.828710 0.576108 -0.586875 +v -0.748602 0.496001 -0.639702 +v -0.673892 0.421291 -0.413125 +v -0.754000 0.501398 -0.360298 +v 0.917098 0.487720 -0.413125 +v 0.836990 0.407612 -0.360298 +v 0.762280 0.332902 -0.586875 +v 0.842388 0.413010 -0.639702 +v 0.673892 0.421291 -0.586875 +v 0.753999 0.501398 -0.639702 +v 0.828709 0.576108 -0.413125 +v 0.748602 0.496001 -0.360298 +v -0.917098 2.012281 -0.413125 +v -0.836990 2.092388 -0.360298 +v -0.762281 2.167098 -0.586875 +v -0.842388 2.086991 -0.639702 +v -0.673892 2.078710 -0.586875 +v -0.754000 1.998602 -0.639702 +v -0.828709 1.923893 -0.413125 +v -0.748602 2.004000 -0.360298 +v 1.083141 0.751056 -0.413125 +v 1.026497 0.652945 -0.360298 +v 0.973669 0.561444 -0.586875 +v 1.030313 0.659555 -0.639702 +v 0.865416 0.623944 -0.586875 +v 0.922060 0.722055 -0.639702 +v 0.974888 0.813556 -0.413125 +v 0.918243 0.715445 -0.360298 +v -1.083141 1.748945 -0.413125 +v -1.026497 1.847056 -0.360298 +v -0.973669 1.938556 -0.586875 +v -1.030313 1.840445 -0.639702 +v -0.865416 1.876056 -0.586875 +v -0.922060 1.777945 -0.639702 +v -0.974888 1.686445 -0.413125 +v -0.918244 1.784556 -0.360298 +v -0.498944 0.166859 -0.413125 +v -0.597055 0.223504 -0.360298 +v -0.688556 0.276331 -0.586875 +v -0.590445 0.219687 -0.639702 +v -0.626056 0.384585 -0.586875 +v -0.527945 0.327940 -0.639702 +v -0.436444 0.275112 -0.413125 +v -0.534555 0.331757 -0.360298 +v 0.498944 2.333141 -0.413125 +v 0.597055 2.276497 -0.360298 +v 0.688556 2.223669 -0.586875 +v 0.590445 2.280313 -0.639702 +v 0.626056 2.115416 -0.586875 +v 0.527945 2.172060 -0.639702 +v 0.436444 2.224888 -0.413125 +v 0.534555 2.168244 -0.360298 +v 0.413089 0.131297 -0.413125 +v 0.303661 0.101975 -0.360298 +v 0.201605 0.074630 -0.586875 +v 0.311034 0.103951 -0.639702 +v 0.169253 0.195371 -0.586875 +v 0.278682 0.224692 -0.639702 +v 0.380737 0.252038 -0.413125 +v 0.271308 0.222716 -0.360298 +v -0.413090 2.368703 -0.413125 +v -0.303661 2.398025 -0.360298 +v -0.201605 2.425371 -0.586875 +v -0.311034 2.396049 -0.639702 +v -0.169253 2.304630 -0.586875 +v -0.278682 2.275309 -0.639702 +v -0.380737 2.247963 -0.413125 +v -0.271308 2.277284 -0.360298 +v -1.118703 0.836911 -0.413125 +v -1.148025 0.946339 -0.360298 +v -1.175370 1.048395 -0.586875 +v -1.146049 0.938966 -0.639702 +v -1.054630 1.080747 -0.586875 +v -1.025308 0.971319 -0.639702 +v -0.997963 0.869263 -0.413125 +v -1.027284 0.978692 -0.360298 +v 1.118703 1.663090 -0.413125 +v 1.148025 1.553661 -0.360298 +v 1.175370 1.451605 -0.586875 +v 1.146049 1.561034 -0.639702 +v 1.054630 1.419253 -0.586875 +v 1.025308 1.528682 -0.639702 +v 0.997963 1.630737 -0.413125 +v 1.027284 1.521308 -0.360298 +v -0.973669 0.561445 -0.413125 +v -1.030313 0.659556 -0.360298 +v -1.083141 0.751056 -0.586875 +v -1.026497 0.652945 -0.639702 +v -0.974888 0.813556 -0.586875 +v -0.918244 0.715445 -0.639702 +v -0.865416 0.623945 -0.413125 +v -0.922060 0.722056 -0.360298 +v 0.973669 1.938556 -0.413125 +v 1.030313 1.840445 -0.360298 +v 1.083141 1.748944 -0.586875 +v 1.026497 1.847055 -0.639702 +v 0.974888 1.686444 -0.586875 +v 0.918244 1.784555 -0.639702 +v 0.865416 1.876056 -0.413125 +v 0.922060 1.777945 -0.360298 +v -0.688556 2.223669 -0.413125 +v -0.590444 2.280313 -0.360298 +v -0.498944 2.333141 -0.586875 +v -0.597055 2.276497 -0.639702 +v -0.436444 2.224888 -0.586875 +v -0.534555 2.168244 -0.639702 +v -0.626056 2.115416 -0.413125 +v -0.527944 2.172060 -0.360298 +v 0.688555 0.276331 -0.413125 +v 0.590444 0.219687 -0.360298 +v 0.498944 0.166859 -0.586875 +v 0.597055 0.223503 -0.639702 +v 0.436444 0.275112 -0.586875 +v 0.534555 0.331756 -0.639702 +v 0.626055 0.384584 -0.413125 +v 0.527944 0.327940 -0.360298 +v -1.175370 1.451606 -0.413125 +v -1.146049 1.561034 -0.360298 +v -1.118703 1.663090 -0.586875 +v -1.148025 1.553661 -0.639702 +v -0.997963 1.630738 -0.586875 +v -1.027284 1.521309 -0.639702 +v -1.054630 1.419253 -0.413125 +v -1.025308 1.528682 -0.360298 +v 1.175370 1.048394 -0.413125 +v 1.146049 0.938966 -0.360298 +v 1.118703 0.836910 -0.586875 +v 1.148024 0.946339 -0.639702 +v 0.997963 0.869263 -0.586875 +v 1.027284 0.978691 -0.639702 +v 1.054630 1.080747 -0.413125 +v 1.025308 0.971318 -0.360298 +v 0.201606 2.425370 -0.413125 +v 0.311034 2.396049 -0.360298 +v 0.413090 2.368703 -0.586875 +v 0.303661 2.398025 -0.639702 +v 0.380738 2.247962 -0.586875 +v 0.271309 2.277284 -0.639702 +v 0.169253 2.304630 -0.413125 +v 0.278682 2.275308 -0.360298 +v -0.201606 0.074630 -0.413125 +v -0.311035 0.103951 -0.360298 +v -0.413090 0.131297 -0.586875 +v -0.303662 0.101975 -0.639702 +v -0.380738 0.252038 -0.586875 +v -0.271309 0.222716 -0.639702 +v -0.169254 0.195371 -0.413125 +v -0.278682 0.224692 -0.360298 +vt 0.317241 0.109375 +vt 0.317241 0.125000 +vt 0.303448 0.125000 +vt 0.303448 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.093750 +vt 0.317241 0.109375 +vt 0.317241 0.125000 +vt 0.303448 0.125000 +vt 0.303448 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.093750 +vt 0.317241 0.109375 +vt 0.317241 0.125000 +vt 0.303448 0.125000 +vt 0.303448 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.093750 +vt 0.317241 0.109375 +vt 0.317241 0.125000 +vt 0.303448 0.125000 +vt 0.303448 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.093750 +vt 0.317241 0.109375 +vt 0.317241 0.125000 +vt 0.303448 0.125000 +vt 0.303448 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.093750 +vt 0.317241 0.109375 +vt 0.317241 0.125000 +vt 0.303448 0.125000 +vt 0.303448 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.093750 +vt 0.317241 0.109375 +vt 0.317241 0.125000 +vt 0.303448 0.125000 +vt 0.303448 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.093750 +vt 0.317241 0.109375 +vt 0.317241 0.125000 +vt 0.303448 0.125000 +vt 0.303448 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.093750 +vt 0.317241 0.109375 +vt 0.317241 0.125000 +vt 0.303448 0.125000 +vt 0.303448 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.093750 +vt 0.317241 0.109375 +vt 0.317241 0.125000 +vt 0.303448 0.125000 +vt 0.303448 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.093750 +vt 0.317241 0.109375 +vt 0.317241 0.125000 +vt 0.303448 0.125000 +vt 0.303448 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.093750 +vt 0.317241 0.109375 +vt 0.317241 0.125000 +vt 0.303448 0.125000 +vt 0.303448 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.093750 +vt 0.317241 0.109375 +vt 0.317241 0.125000 +vt 0.303448 0.125000 +vt 0.303448 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.093750 +vt 0.317241 0.109375 +vt 0.317241 0.125000 +vt 0.303448 0.125000 +vt 0.303448 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.093750 +vt 0.317241 0.109375 +vt 0.317241 0.125000 +vt 0.303448 0.125000 +vt 0.303448 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.093750 +vt 0.317241 0.109375 +vt 0.317241 0.125000 +vt 0.303448 0.125000 +vt 0.303448 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.093750 +vt 0.317241 0.109375 +vt 0.317241 0.125000 +vt 0.303448 0.125000 +vt 0.303448 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.093750 +vt 0.317241 0.109375 +vt 0.317241 0.125000 +vt 0.303448 0.125000 +vt 0.303448 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.093750 +vt 0.317241 0.109375 +vt 0.317241 0.125000 +vt 0.303448 0.125000 +vt 0.303448 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.093750 +vt 0.317241 0.109375 +vt 0.317241 0.125000 +vt 0.303448 0.125000 +vt 0.303448 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.093750 +vt 0.317241 0.109375 +vt 0.317241 0.125000 +vt 0.303448 0.125000 +vt 0.303448 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.093750 +vt 0.317241 0.109375 +vt 0.317241 0.125000 +vt 0.303448 0.125000 +vt 0.303448 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.093750 +vt 0.317241 0.109375 +vt 0.317241 0.125000 +vt 0.303448 0.125000 +vt 0.303448 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.093750 +vt 0.317241 0.109375 +vt 0.317241 0.125000 +vt 0.303448 0.125000 +vt 0.303448 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.093750 +vn 0.0000 1.0000 0.0000 +vn 0.4226 0.0000 -0.9063 +vn -0.4226 -0.0000 0.9063 +vn 0.9063 -0.0000 0.4226 +vn -0.9063 0.0000 -0.4226 +vn 0.0000 -1.0000 -0.0000 +vn -0.4226 -0.0000 -0.9063 +vn 0.4226 -0.0000 0.9063 +vn -0.9063 0.0000 0.4226 +vn 0.9063 -0.0000 -0.4226 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -0.4226 -0.9063 +vn 0.0000 0.4226 0.9063 +vn 0.0000 -0.9063 0.4226 +vn 0.0000 0.9063 -0.4226 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.4226 -0.9063 +vn 0.0000 -0.4226 0.9063 +vn 0.0000 0.9063 0.4226 +vn 0.0000 -0.9063 -0.4226 +vn 0.7071 0.7071 0.0000 +vn 0.2988 -0.2988 -0.9063 +vn -0.2988 0.2988 0.9063 +vn 0.6409 -0.6409 0.4226 +vn -0.6409 0.6409 -0.4226 +vn -0.7071 -0.7071 0.0000 +vn -0.2988 0.2988 -0.9063 +vn 0.2988 -0.2988 0.9063 +vn -0.6409 0.6409 0.4226 +vn 0.6409 -0.6409 -0.4226 +vn 0.7071 -0.7071 0.0000 +vn -0.2988 -0.2988 -0.9063 +vn 0.2988 0.2988 0.9063 +vn -0.6409 -0.6409 0.4226 +vn 0.6409 0.6409 -0.4226 +vn -0.7071 0.7071 0.0000 +vn 0.2988 0.2988 -0.9063 +vn -0.2988 -0.2988 0.9063 +vn 0.6409 0.6409 0.4226 +vn -0.6409 -0.6409 -0.4226 +vn 0.8660 -0.5000 0.0000 +vn -0.2113 -0.3660 -0.9063 +vn 0.2113 0.3660 0.9063 +vn -0.4532 -0.7849 0.4226 +vn 0.4532 0.7849 -0.4226 +vn -0.8660 0.5000 -0.0000 +vn 0.2113 0.3660 -0.9063 +vn -0.2113 -0.3660 0.9063 +vn 0.4532 0.7849 0.4226 +vn -0.4532 -0.7849 -0.4226 +vn -0.5000 -0.8660 0.0000 +vn -0.3660 0.2113 -0.9063 +vn 0.3660 -0.2113 0.9063 +vn -0.7849 0.4532 0.4226 +vn 0.7849 -0.4532 -0.4226 +vn 0.5000 0.8660 0.0000 +vn 0.3660 -0.2113 -0.9063 +vn -0.3660 0.2113 0.9063 +vn 0.7849 -0.4532 0.4226 +vn -0.7849 0.4532 -0.4226 +vn 0.2588 -0.9659 -0.0000 +vn -0.4082 -0.1094 -0.9063 +vn 0.4082 0.1094 0.9063 +vn -0.8754 -0.2346 0.4226 +vn 0.8754 0.2346 -0.4226 +vn -0.2588 0.9659 -0.0000 +vn 0.4082 0.1094 -0.9063 +vn -0.4082 -0.1094 0.9063 +vn 0.8754 0.2346 0.4226 +vn -0.8754 -0.2346 -0.4226 +vn -0.9659 -0.2588 0.0000 +vn -0.1094 0.4082 -0.9063 +vn 0.1094 -0.4082 0.9063 +vn -0.2346 0.8754 0.4226 +vn 0.2346 -0.8754 -0.4226 +vn 0.9659 0.2588 0.0000 +vn 0.1094 -0.4082 -0.9063 +vn -0.1094 0.4082 0.9063 +vn 0.2346 -0.8754 0.4226 +vn -0.2346 0.8754 -0.4226 +vn -0.8660 -0.5000 0.0000 +vn -0.2113 0.3660 -0.9063 +vn 0.2113 -0.3660 0.9063 +vn -0.4532 0.7849 0.4226 +vn 0.4532 -0.7849 -0.4226 +vn 0.8660 0.5000 0.0000 +vn 0.2113 -0.3660 -0.9063 +vn -0.2113 0.3660 0.9063 +vn 0.4532 -0.7849 0.4226 +vn -0.4532 0.7849 -0.4226 +vn -0.5000 0.8660 0.0000 +vn 0.3660 0.2113 -0.9063 +vn -0.3660 -0.2113 0.9063 +vn 0.7849 0.4532 0.4226 +vn -0.7849 -0.4532 -0.4226 +vn 0.5000 -0.8660 -0.0000 +vn -0.3660 -0.2113 -0.9063 +vn 0.3660 0.2113 0.9063 +vn -0.7849 -0.4532 0.4226 +vn 0.7849 0.4532 -0.4226 +vn -0.9659 0.2588 0.0000 +vn 0.1094 0.4082 -0.9063 +vn -0.1094 -0.4082 0.9063 +vn 0.2346 0.8754 0.4226 +vn -0.2346 -0.8754 -0.4226 +vn 0.9659 -0.2588 -0.0000 +vn -0.1094 -0.4082 -0.9063 +vn 0.1094 0.4082 0.9063 +vn -0.2346 -0.8754 0.4226 +vn 0.2346 0.8754 -0.4226 +vn 0.2588 0.9659 0.0000 +vn 0.4082 -0.1094 -0.9063 +vn -0.4082 0.1094 0.9063 +vn 0.8754 -0.2346 0.4226 +vn -0.8754 0.2346 -0.4226 +vn -0.2588 -0.9659 0.0000 +vn -0.4082 0.1094 -0.9063 +vn 0.4082 -0.1094 0.9063 +vn -0.8754 0.2346 0.4226 +vn 0.8754 -0.2346 -0.4226 +s off +f 25/25/3 26/26/3 27/27/3 28/28/3 +f 28/28/4 27/27/4 29/29/4 30/30/4 +f 26/26/5 25/25/5 31/31/5 32/32/5 +f 27/27/6 26/26/6 32/33/6 29/34/6 +f 25/25/7 28/28/7 30/35/7 31/36/7 +f 33/37/8 34/38/8 35/39/8 36/40/8 +f 36/40/9 35/39/9 37/41/9 38/42/9 +f 34/38/10 33/37/10 39/43/10 40/44/10 +f 35/39/11 34/38/11 40/45/11 37/46/11 +f 33/37/12 36/40/12 38/47/12 39/48/12 +f 41/49/13 42/50/13 43/51/13 44/52/13 +f 44/52/14 43/51/14 45/53/14 46/54/14 +f 42/50/15 41/49/15 47/55/15 48/56/15 +f 43/51/16 42/50/16 48/57/16 45/58/16 +f 41/49/17 44/52/17 46/59/17 47/60/17 +f 49/61/18 50/62/18 51/63/18 52/64/18 +f 52/64/19 51/63/19 53/65/19 54/66/19 +f 50/62/20 49/61/20 55/67/20 56/68/20 +f 51/63/21 50/62/21 56/69/21 53/70/21 +f 49/61/22 52/64/22 54/71/22 55/72/22 +f 57/73/23 58/74/23 59/75/23 60/76/23 +f 60/76/24 59/75/24 61/77/24 62/78/24 +f 58/74/25 57/73/25 63/79/25 64/80/25 +f 59/75/26 58/74/26 64/81/26 61/82/26 +f 57/73/27 60/76/27 62/83/27 63/84/27 +f 65/85/28 66/86/28 67/87/28 68/88/28 +f 68/88/29 67/87/29 69/89/29 70/90/29 +f 66/86/30 65/85/30 71/91/30 72/92/30 +f 67/87/31 66/86/31 72/93/31 69/94/31 +f 65/85/32 68/88/32 70/95/32 71/96/32 +f 73/97/33 74/98/33 75/99/33 76/100/33 +f 76/100/34 75/99/34 77/101/34 78/102/34 +f 74/98/35 73/97/35 79/103/35 80/104/35 +f 75/99/36 74/98/36 80/105/36 77/106/36 +f 73/97/37 76/100/37 78/107/37 79/108/37 +f 81/109/38 82/110/38 83/111/38 84/112/38 +f 84/112/39 83/111/39 85/113/39 86/114/39 +f 82/110/40 81/109/40 87/115/40 88/116/40 +f 83/111/41 82/110/41 88/117/41 85/118/41 +f 81/109/42 84/112/42 86/119/42 87/120/42 +f 89/121/43 90/122/43 91/123/43 92/124/43 +f 92/124/44 91/123/44 93/125/44 94/126/44 +f 90/122/45 89/121/45 95/127/45 96/128/45 +f 91/123/46 90/122/46 96/129/46 93/130/46 +f 89/121/47 92/124/47 94/131/47 95/132/47 +f 97/133/48 98/134/48 99/135/48 100/136/48 +f 100/136/49 99/135/49 101/137/49 102/138/49 +f 98/134/50 97/133/50 103/139/50 104/140/50 +f 99/135/51 98/134/51 104/141/51 101/142/51 +f 97/133/52 100/136/52 102/143/52 103/144/52 +f 105/145/53 106/146/53 107/147/53 108/148/53 +f 108/148/54 107/147/54 109/149/54 110/150/54 +f 106/146/55 105/145/55 111/151/55 112/152/55 +f 107/147/56 106/146/56 112/153/56 109/154/56 +f 105/145/57 108/148/57 110/155/57 111/156/57 +f 113/157/58 114/158/58 115/159/58 116/160/58 +f 116/160/59 115/159/59 117/161/59 118/162/59 +f 114/158/60 113/157/60 119/163/60 120/164/60 +f 115/159/61 114/158/61 120/165/61 117/166/61 +f 113/157/62 116/160/62 118/167/62 119/168/62 +f 121/169/63 122/170/63 123/171/63 124/172/63 +f 124/172/64 123/171/64 125/173/64 126/174/64 +f 122/170/65 121/169/65 127/175/65 128/176/65 +f 123/171/66 122/170/66 128/177/66 125/178/66 +f 121/169/67 124/172/67 126/179/67 127/180/67 +f 129/181/68 130/182/68 131/183/68 132/184/68 +f 132/184/69 131/183/69 133/185/69 134/186/69 +f 130/182/70 129/181/70 135/187/70 136/188/70 +f 131/183/71 130/182/71 136/189/71 133/190/71 +f 129/181/72 132/184/72 134/191/72 135/192/72 +f 137/193/73 138/194/73 139/195/73 140/196/73 +f 140/196/74 139/195/74 141/197/74 142/198/74 +f 138/194/75 137/193/75 143/199/75 144/200/75 +f 139/195/76 138/194/76 144/201/76 141/202/76 +f 137/193/77 140/196/77 142/203/77 143/204/77 +f 145/205/78 146/206/78 147/207/78 148/208/78 +f 148/208/79 147/207/79 149/209/79 150/210/79 +f 146/206/80 145/205/80 151/211/80 152/212/80 +f 147/207/81 146/206/81 152/213/81 149/214/81 +f 145/205/82 148/208/82 150/215/82 151/216/82 +f 153/217/83 154/218/83 155/219/83 156/220/83 +f 156/220/84 155/219/84 157/221/84 158/222/84 +f 154/218/85 153/217/85 159/223/85 160/224/85 +f 155/219/86 154/218/86 160/225/86 157/226/86 +f 153/217/87 156/220/87 158/227/87 159/228/87 +f 161/229/88 162/230/88 163/231/88 164/232/88 +f 164/232/89 163/231/89 165/233/89 166/234/89 +f 162/230/90 161/229/90 167/235/90 168/236/90 +f 163/231/91 162/230/91 168/237/91 165/238/91 +f 161/229/92 164/232/92 166/239/92 167/240/92 +f 169/241/93 170/242/93 171/243/93 172/244/93 +f 172/244/94 171/243/94 173/245/94 174/246/94 +f 170/242/95 169/241/95 175/247/95 176/248/95 +f 171/243/96 170/242/96 176/249/96 173/250/96 +f 169/241/97 172/244/97 174/251/97 175/252/97 +f 177/253/98 178/254/98 179/255/98 180/256/98 +f 180/256/99 179/255/99 181/257/99 182/258/99 +f 178/254/100 177/253/100 183/259/100 184/260/100 +f 179/255/101 178/254/101 184/261/101 181/262/101 +f 177/253/102 180/256/102 182/263/102 183/264/102 +f 185/265/103 186/266/103 187/267/103 188/268/103 +f 188/268/104 187/267/104 189/269/104 190/270/104 +f 186/266/105 185/265/105 191/271/105 192/272/105 +f 187/267/106 186/266/106 192/273/106 189/274/106 +f 185/265/107 188/268/107 190/275/107 191/276/107 +f 193/277/108 194/278/108 195/279/108 196/280/108 +f 196/280/109 195/279/109 197/281/109 198/282/109 +f 194/278/110 193/277/110 199/283/110 200/284/110 +f 195/279/111 194/278/111 200/285/111 197/286/111 +f 193/277/112 196/280/112 198/287/112 199/288/112 +f 201/289/113 202/290/113 203/291/113 204/292/113 +f 204/292/114 203/291/114 205/293/114 206/294/114 +f 202/290/115 201/289/115 207/295/115 208/296/115 +f 203/291/116 202/290/116 208/297/116 205/298/116 +f 201/289/117 204/292/117 206/299/117 207/300/117 +f 209/301/118 210/302/118 211/303/118 212/304/118 +f 212/304/119 211/303/119 213/305/119 214/306/119 +f 210/302/120 209/301/120 215/307/120 216/308/120 +f 211/303/121 210/302/121 216/309/121 213/310/121 +f 209/301/122 212/304/122 214/311/122 215/312/122 +o Plane.001 +v 0.000000 2.453697 -2.948062 +v 0.125000 2.423342 -2.962217 +v 0.216506 2.340409 -3.000889 +v 0.250000 2.227120 -3.053716 +v 0.216506 2.113832 -3.106544 +v 0.000000 2.566986 -2.895234 +v 0.324759 2.057188 -3.132957 +v 0.375000 2.227120 -3.053716 +v 0.324760 2.397053 -2.974475 +v 0.187500 2.521452 -2.916467 +vt 1.000000 0.000000 +vt 1.000000 0.250000 +vt 0.000000 0.250000 +vt -0.000000 -0.000000 +vt 1.000000 0.500000 +vt -0.000000 0.500000 +vt 1.000000 0.750000 +vt -0.000000 0.750000 +vt 0.000000 1.000000 +vt 1.000000 1.000000 +vn 0.0000 0.4226 -0.9063 +s off +f 221/313/123 220/314/123 224/315/123 223/316/123 +f 220/314/123 219/317/123 225/318/123 224/315/123 +f 219/317/123 218/319/123 226/320/123 225/318/123 +f 222/321/123 226/320/123 218/319/123 217/322/123 o Plane v -0.500000 -0.000000 0.125000 v -0.500000 0.000000 -0.375000 @@ -459,9 +1264,6 @@ v -0.062500 2.243718 -5.265165 v -0.062500 2.066942 -5.088388 v -0.125000 2.423342 -2.962217 v 0.000000 2.453697 -2.948062 -v 0.125000 2.423342 -2.962217 -v 0.216506 2.340409 -3.000889 -v 0.250000 2.227120 -3.053716 v 0.216506 2.113832 -3.106544 v 0.125000 2.030899 -3.145216 v 0.000000 2.000544 -3.159371 @@ -556,14 +1358,6 @@ v 0.012500 2.134191 -3.062400 v 0.012500 2.009191 -3.062400 v -0.137500 2.134191 -3.062400 v -0.012500 2.134191 -3.062400 -v -0.109472 2.437500 -0.413125 -v 0.003817 2.437500 -0.360298 -v 0.109472 2.437500 -0.586875 -v -0.003817 2.437500 -0.639702 -v 0.109472 2.312500 -0.586875 -v -0.003817 2.312500 -0.639702 -v -0.109472 2.312500 -0.413125 -v 0.003817 2.312500 -0.360298 v -0.625000 1.938500 -3.250000 v 0.625000 1.938500 -3.250000 v 0.625000 1.830247 -3.187500 @@ -837,6 +1631,2962 @@ v 1.088388 1.859835 -1.750000 v 0.698223 2.125000 -1.875000 v 1.051777 1.771446 -1.750000 v 1.000000 0.500000 -2.625000 +v 0.344030 1.791848 -0.175597 +v 0.424630 1.866847 -0.128904 +v 0.388541 1.881795 -0.128904 +v 0.328091 1.825547 -0.163924 +v 0.420670 1.976871 -0.082211 +v 0.334466 2.057472 -0.062870 +v 0.320918 2.024764 -0.079378 +v 0.385571 1.964314 -0.093884 +v 0.216518 2.061433 -0.082211 +v 0.135918 1.986435 -0.128904 +v 0.172007 1.971487 -0.128904 +v 0.232457 2.027735 -0.093884 +v 0.139879 1.876410 -0.175597 +v 0.174978 1.888968 -0.163924 +v 0.226082 1.795810 -0.194938 +v 0.239630 1.828518 -0.178429 +v 0.208096 1.956538 -0.128904 +v 0.210077 1.901526 -0.152250 +v 0.253178 1.861225 -0.161921 +v 0.312152 1.859245 -0.152250 +v 0.352451 1.896744 -0.128904 +v 0.350472 1.951756 -0.105557 +v 0.307370 1.992056 -0.095887 +v 0.248396 1.994037 -0.105557 +v 0.222349 2.003332 -0.037240 +v 0.161900 1.947084 -0.072260 +v 0.197989 1.932135 -0.072260 +v 0.238288 1.969634 -0.048913 +v 0.164869 1.864565 -0.107280 +v 0.199968 1.877123 -0.095606 +v 0.229523 1.804115 -0.121785 +v 0.243071 1.836822 -0.105277 +v 0.317984 1.801143 -0.107280 +v 0.302044 1.834842 -0.095606 +v 0.378433 1.857392 -0.072260 +v 0.342344 1.872341 -0.072260 +v 0.375462 1.939911 -0.037240 +v 0.340365 1.927353 -0.048913 +v 0.310810 2.000361 -0.022734 +v 0.297262 1.967653 -0.039243 +v -0.110485 1.735485 -0.750000 +v -0.156250 1.625000 -0.750000 +v -0.156250 1.762294 -0.418544 +v -0.110485 1.840419 -0.496669 +v -0.110485 1.514515 -0.750000 +v 0.000000 1.468750 -0.750000 +v 0.000000 1.651808 -0.308058 +v -0.110485 1.684169 -0.340419 +v 0.110486 1.514515 -0.750000 +v 0.156250 1.625000 -0.750000 +v 0.156250 1.762294 -0.418544 +v 0.110486 1.684169 -0.340419 +v 0.110486 1.735485 -0.750000 +v 0.110486 1.840419 -0.496669 +v 0.000000 1.781250 -0.750000 +v 0.000000 1.872779 -0.529029 +v 0.156250 1.914367 -0.316931 +v 0.110486 1.872086 -0.214856 +v 0.000000 1.854573 -0.172575 +v -0.110485 1.872086 -0.214856 +v -0.156250 1.914367 -0.316931 +v -0.110485 1.956648 -0.419007 +v 0.000000 1.974162 -0.461288 +v 0.110486 1.956648 -0.419007 +v -0.110485 2.093750 -0.391735 +v 0.000000 2.093750 -0.437500 +v 0.110486 2.093750 -0.391735 +v 0.156250 2.093750 -0.281250 +v 0.110486 2.093750 -0.170765 +v 0.000000 2.093750 -0.125000 +v -0.110485 2.093750 -0.170765 +v -0.156250 2.093750 -0.281250 +v 0.110486 2.315414 -0.214856 +v 0.000000 2.332927 -0.172575 +v -0.110485 2.315414 -0.214856 +v -0.156250 2.273133 -0.316932 +v -0.110485 2.230852 -0.419007 +v 0.000000 2.213339 -0.461288 +v 0.110486 2.230852 -0.419007 +v 0.156250 2.273133 -0.316932 +v 0.196566 2.132853 -0.468769 +v 0.200528 2.022828 -0.515462 +v 0.286731 1.942228 -0.534803 +v 0.404678 1.938266 -0.515462 +v 0.485279 2.013265 -0.468769 +v 0.481318 2.123290 -0.422076 +v 0.395115 2.203890 -0.402735 +v 0.277166 2.207852 -0.422076 +v -0.541848 1.594031 -0.175597 +v -0.616847 1.674630 -0.128904 +v -0.631795 1.638541 -0.128904 +v -0.575547 1.578091 -0.163924 +v -0.726871 1.670670 -0.082211 +v -0.807472 1.584466 -0.062870 +v -0.774764 1.570918 -0.079378 +v -0.714314 1.635571 -0.093884 +v -0.811433 1.466519 -0.082211 +v -0.736435 1.385918 -0.128904 +v -0.721487 1.422007 -0.128904 +v -0.777735 1.482457 -0.093884 +v -0.626410 1.389879 -0.175597 +v -0.638968 1.424978 -0.163924 +v -0.545810 1.476082 -0.194938 +v -0.578518 1.489630 -0.178429 +v -0.706538 1.458096 -0.128904 +v -0.651526 1.460078 -0.152250 +v -0.611225 1.503178 -0.161921 +v -0.609245 1.562152 -0.152250 +v -0.646744 1.602452 -0.128904 +v -0.701756 1.600472 -0.105557 +v -0.742056 1.557370 -0.095887 +v -0.744037 1.498396 -0.105557 +v -0.753332 1.472349 -0.037240 +v -0.697084 1.411900 -0.072260 +v -0.682135 1.447989 -0.072260 +v -0.719634 1.488288 -0.048913 +v -0.614565 1.414870 -0.107280 +v -0.627123 1.449969 -0.095606 +v -0.554115 1.479523 -0.121785 +v -0.586822 1.493071 -0.105277 +v -0.551143 1.567984 -0.107280 +v -0.584842 1.552044 -0.095606 +v -0.607392 1.628433 -0.072260 +v -0.622341 1.592345 -0.072260 +v -0.689911 1.625462 -0.037240 +v -0.677353 1.590365 -0.048913 +v -0.750361 1.560810 -0.022734 +v -0.717653 1.547262 -0.039243 +v -0.485485 1.139515 -0.750000 +v -0.375000 1.093750 -0.750000 +v -0.512294 1.093750 -0.418544 +v -0.590419 1.139515 -0.496669 +v -0.264515 1.139515 -0.750000 +v -0.218750 1.250000 -0.750000 +v -0.401808 1.250000 -0.308058 +v -0.434169 1.139515 -0.340419 +v -0.264515 1.360486 -0.750000 +v -0.375000 1.406250 -0.750000 +v -0.512294 1.406250 -0.418544 +v -0.434169 1.360486 -0.340419 +v -0.485485 1.360486 -0.750000 +v -0.590419 1.360486 -0.496669 +v -0.531250 1.250000 -0.750000 +v -0.622779 1.250000 -0.529029 +v -0.664367 1.406250 -0.316931 +v -0.622086 1.360486 -0.214856 +v -0.604573 1.250000 -0.172575 +v -0.622086 1.139515 -0.214856 +v -0.664367 1.093750 -0.316931 +v -0.706648 1.139515 -0.419007 +v -0.724162 1.250000 -0.461288 +v -0.706648 1.360486 -0.419007 +v -0.843750 1.139515 -0.391735 +v -0.843750 1.250000 -0.437500 +v -0.843750 1.360486 -0.391735 +v -0.843750 1.406250 -0.281250 +v -0.843750 1.360486 -0.170765 +v -0.843750 1.250000 -0.125000 +v -0.843750 1.139515 -0.170765 +v -0.843750 1.093750 -0.281250 +v -1.065414 1.360486 -0.214856 +v -1.082927 1.250000 -0.172575 +v -1.065414 1.139515 -0.214856 +v -1.023133 1.093750 -0.316932 +v -0.980852 1.139515 -0.419007 +v -0.963339 1.250000 -0.461288 +v -0.980852 1.360486 -0.419007 +v -1.023133 1.406250 -0.316932 +v -0.882853 1.446566 -0.468769 +v -0.772828 1.450528 -0.515462 +v -0.692228 1.536731 -0.534803 +v -0.688266 1.654678 -0.515462 +v -0.763265 1.735279 -0.468769 +v -0.873290 1.731318 -0.422076 +v -0.953890 1.645115 -0.402735 +v -0.957852 1.527166 -0.422076 +v 0.541848 0.905970 -0.175597 +v 0.616847 0.825370 -0.128904 +v 0.631795 0.861459 -0.128904 +v 0.575547 0.921909 -0.163924 +v 0.726871 0.829330 -0.082211 +v 0.807472 0.915534 -0.062870 +v 0.774764 0.929082 -0.079378 +v 0.714314 0.864429 -0.093884 +v 0.811433 1.033482 -0.082211 +v 0.736435 1.114082 -0.128904 +v 0.721487 1.077993 -0.128904 +v 0.777735 1.017543 -0.093884 +v 0.626410 1.110121 -0.175597 +v 0.638968 1.075022 -0.163924 +v 0.545810 1.023918 -0.194938 +v 0.578518 1.010370 -0.178429 +v 0.706538 1.041904 -0.128904 +v 0.651526 1.039923 -0.152250 +v 0.611225 0.996822 -0.161921 +v 0.609245 0.937848 -0.152250 +v 0.646744 0.897549 -0.128904 +v 0.701756 0.899529 -0.105557 +v 0.742056 0.942630 -0.095887 +v 0.744037 1.001604 -0.105557 +v 0.753332 1.027651 -0.037240 +v 0.697084 1.088100 -0.072260 +v 0.682135 1.052011 -0.072260 +v 0.719634 1.011712 -0.048913 +v 0.614565 1.085131 -0.107280 +v 0.627123 1.050032 -0.095606 +v 0.554115 1.020477 -0.121785 +v 0.586822 1.006929 -0.105277 +v 0.551143 0.932016 -0.107280 +v 0.584842 0.947956 -0.095606 +v 0.607392 0.871567 -0.072260 +v 0.622341 0.907656 -0.072260 +v 0.689911 0.874539 -0.037240 +v 0.677353 0.909636 -0.048913 +v 0.750361 0.939190 -0.022734 +v 0.717653 0.952738 -0.039243 +v 0.485485 1.360485 -0.750000 +v 0.375000 1.406250 -0.750000 +v 0.512294 1.406250 -0.418544 +v 0.590419 1.360485 -0.496669 +v 0.264515 1.360485 -0.750000 +v 0.218750 1.250000 -0.750000 +v 0.401808 1.250000 -0.308058 +v 0.434169 1.360485 -0.340419 +v 0.264515 1.139514 -0.750000 +v 0.375000 1.093750 -0.750000 +v 0.512294 1.093750 -0.418544 +v 0.434169 1.139514 -0.340419 +v 0.485485 1.139514 -0.750000 +v 0.590419 1.139514 -0.496669 +v 0.531250 1.250000 -0.750000 +v 0.622779 1.250000 -0.529029 +v 0.664367 1.093750 -0.316931 +v 0.622086 1.139514 -0.214856 +v 0.604573 1.250000 -0.172575 +v 0.622086 1.360485 -0.214856 +v 0.664367 1.406250 -0.316931 +v 0.706648 1.360485 -0.419007 +v 0.724162 1.250000 -0.461288 +v 0.706648 1.139514 -0.419007 +v 0.843750 1.360485 -0.391735 +v 0.843750 1.250000 -0.437500 +v 0.843750 1.139514 -0.391735 +v 0.843750 1.093750 -0.281250 +v 0.843750 1.139514 -0.170765 +v 0.843750 1.250000 -0.125000 +v 0.843750 1.360485 -0.170765 +v 0.843750 1.406250 -0.281250 +v 1.065414 1.139514 -0.214856 +v 1.082927 1.250000 -0.172575 +v 1.065414 1.360485 -0.214856 +v 1.023133 1.406250 -0.316932 +v 0.980852 1.360485 -0.419007 +v 0.963339 1.250000 -0.461288 +v 0.980852 1.139514 -0.419007 +v 1.023133 1.093750 -0.316932 +v 0.882853 1.053434 -0.468769 +v 0.772828 1.049472 -0.515462 +v 0.692228 0.963269 -0.534803 +v 0.688266 0.845322 -0.515462 +v 0.763265 0.764721 -0.468769 +v 0.873290 0.768682 -0.422076 +v 0.953890 0.854885 -0.402735 +v 0.957852 0.972834 -0.422076 +v -0.626411 1.110122 -0.175597 +v -0.736436 1.114082 -0.128904 +v -0.721487 1.077994 -0.128904 +v -0.638968 1.075022 -0.163924 +v -0.811434 1.033483 -0.082211 +v -0.807472 0.915534 -0.062870 +v -0.774764 0.929083 -0.079378 +v -0.777736 1.017543 -0.093884 +v -0.726871 0.829332 -0.082211 +v -0.616847 0.825370 -0.128904 +v -0.631795 0.861459 -0.128904 +v -0.714314 0.864430 -0.093884 +v -0.541848 0.905971 -0.175597 +v -0.575547 0.921910 -0.163924 +v -0.545810 1.023918 -0.194938 +v -0.578518 1.010370 -0.178429 +v -0.646744 0.897548 -0.128904 +v -0.609246 0.937849 -0.152250 +v -0.611225 0.996822 -0.161921 +v -0.651526 1.039924 -0.152250 +v -0.706538 1.041904 -0.128904 +v -0.744037 1.001604 -0.105557 +v -0.742056 0.942631 -0.095887 +v -0.701756 0.899529 -0.105557 +v -0.689911 0.874538 -0.037240 +v -0.607393 0.871567 -0.072260 +v -0.622341 0.907657 -0.072260 +v -0.677353 0.909637 -0.048913 +v -0.551143 0.932017 -0.107280 +v -0.584842 0.947956 -0.095606 +v -0.554116 1.020479 -0.121785 +v -0.586823 1.006931 -0.105277 +v -0.614565 1.085132 -0.107280 +v -0.627123 1.050032 -0.095606 +v -0.697084 1.088102 -0.072260 +v -0.682136 1.052012 -0.072260 +v -0.753332 1.027651 -0.037240 +v -0.719635 1.011713 -0.048913 +v -0.750361 0.939191 -0.022734 +v -0.717654 0.952739 -0.039243 +v -0.265165 0.828586 -0.750000 +v -0.154680 0.874350 -0.750000 +v -0.251761 0.777268 -0.418544 +v -0.339365 0.754386 -0.496669 +v -0.108916 0.984835 -0.750000 +v -0.154680 1.095320 -0.750000 +v -0.284121 0.965879 -0.308058 +v -0.228879 0.864871 -0.340419 +v -0.265166 1.141085 -0.750000 +v -0.375651 1.095320 -0.750000 +v -0.472732 0.998239 -0.418544 +v -0.385129 1.021122 -0.340419 +v -0.421415 0.984836 -0.750000 +v -0.495615 0.910636 -0.496669 +v -0.375651 0.874350 -0.750000 +v -0.440371 0.809629 -0.529029 +v -0.580264 0.890707 -0.316931 +v -0.518007 0.888244 -0.214856 +v -0.427498 0.822502 -0.172575 +v -0.361757 0.731994 -0.214856 +v -0.359293 0.669736 -0.316931 +v -0.421551 0.672200 -0.419007 +v -0.512060 0.737940 -0.461288 +v -0.577801 0.828450 -0.419007 +v -0.518497 0.575254 -0.391735 +v -0.596621 0.653379 -0.437500 +v -0.674747 0.731504 -0.391735 +v -0.707107 0.763864 -0.281250 +v -0.674747 0.731504 -0.170765 +v -0.596621 0.653379 -0.125000 +v -0.518497 0.575254 -0.170765 +v -0.486136 0.542893 -0.281250 +v -0.831487 0.574764 -0.214856 +v -0.765745 0.484255 -0.172575 +v -0.675237 0.418514 -0.214856 +v -0.612979 0.416050 -0.316932 +v -0.615442 0.478308 -0.419007 +v -0.681184 0.568817 -0.461288 +v -0.771693 0.634558 -0.419007 +v -0.833950 0.637021 -0.316932 +v -0.763264 0.764722 -0.468769 +v -0.688267 0.845323 -0.515462 +v -0.692228 0.963270 -0.534803 +v -0.772828 1.049473 -0.515462 +v -0.882854 1.053434 -0.468769 +v -0.957852 0.972834 -0.422076 +v -0.953891 0.854886 -0.402735 +v -0.873290 0.768683 -0.422076 +v 0.626411 1.389878 -0.175597 +v 0.736436 1.385918 -0.128904 +v 0.721487 1.422006 -0.128904 +v 0.638968 1.424978 -0.163924 +v 0.811434 1.466517 -0.082211 +v 0.807472 1.584466 -0.062870 +v 0.774764 1.570918 -0.079378 +v 0.777736 1.482457 -0.093884 +v 0.726872 1.670668 -0.082211 +v 0.616847 1.674630 -0.128904 +v 0.631796 1.638541 -0.128904 +v 0.714314 1.635570 -0.093884 +v 0.541848 1.594029 -0.175597 +v 0.575547 1.578090 -0.163924 +v 0.545810 1.476082 -0.194938 +v 0.578518 1.489630 -0.178429 +v 0.646744 1.602452 -0.128904 +v 0.609246 1.562152 -0.152250 +v 0.611225 1.503178 -0.161921 +v 0.651526 1.460077 -0.152250 +v 0.706538 1.458097 -0.128904 +v 0.744037 1.498396 -0.105557 +v 0.742057 1.557369 -0.095887 +v 0.701756 1.600471 -0.105557 +v 0.689911 1.625462 -0.037240 +v 0.607393 1.628433 -0.072260 +v 0.622342 1.592343 -0.072260 +v 0.677353 1.590363 -0.048913 +v 0.551144 1.567983 -0.107280 +v 0.584842 1.552044 -0.095606 +v 0.554116 1.479522 -0.121785 +v 0.586823 1.493069 -0.105277 +v 0.614566 1.414869 -0.107280 +v 0.627123 1.449969 -0.095606 +v 0.697084 1.411898 -0.072260 +v 0.682136 1.447988 -0.072260 +v 0.753332 1.472350 -0.037240 +v 0.719635 1.488287 -0.048913 +v 0.750361 1.560810 -0.022734 +v 0.717654 1.547261 -0.039243 +v 0.265165 1.671415 -0.750000 +v 0.154680 1.625651 -0.750000 +v 0.251761 1.722732 -0.418544 +v 0.339365 1.745614 -0.496669 +v 0.108916 1.515165 -0.750000 +v 0.154680 1.404680 -0.750000 +v 0.284121 1.534121 -0.308058 +v 0.228879 1.635129 -0.340419 +v 0.265166 1.358915 -0.750000 +v 0.375651 1.404680 -0.750000 +v 0.472732 1.501761 -0.418544 +v 0.385129 1.478879 -0.340419 +v 0.421415 1.515165 -0.750000 +v 0.495615 1.589364 -0.496669 +v 0.375651 1.625651 -0.750000 +v 0.440371 1.690371 -0.529029 +v 0.580264 1.609293 -0.316931 +v 0.518007 1.611756 -0.214856 +v 0.427498 1.677498 -0.172575 +v 0.361757 1.768006 -0.214856 +v 0.359293 1.830264 -0.316931 +v 0.421551 1.827801 -0.419007 +v 0.512060 1.762060 -0.461288 +v 0.577801 1.671550 -0.419007 +v 0.518497 1.924746 -0.391735 +v 0.596621 1.846622 -0.437500 +v 0.674747 1.768496 -0.391735 +v 0.707107 1.736136 -0.281250 +v 0.674747 1.768496 -0.170765 +v 0.596621 1.846622 -0.125000 +v 0.518497 1.924746 -0.170765 +v 0.486136 1.957107 -0.281250 +v 0.831487 1.925236 -0.214856 +v 0.765745 2.015745 -0.172575 +v 0.675237 2.081486 -0.214856 +v 0.612979 2.083950 -0.316932 +v 0.615442 2.021692 -0.419007 +v 0.681184 1.931184 -0.461288 +v 0.771693 1.865442 -0.419007 +v 0.833950 1.862979 -0.316932 +v 0.763264 1.735279 -0.468769 +v 0.688267 1.654677 -0.515462 +v 0.692229 1.536730 -0.534803 +v 0.772828 1.450527 -0.515462 +v 0.882854 1.446566 -0.468769 +v 0.957852 1.527166 -0.422076 +v 0.953891 1.645114 -0.402735 +v 0.873290 1.731318 -0.422076 +v -0.139878 1.876411 -0.175597 +v -0.135918 1.986436 -0.128904 +v -0.172006 1.971487 -0.128904 +v -0.174978 1.888969 -0.163924 +v -0.216517 2.061434 -0.082211 +v -0.334466 2.057472 -0.062870 +v -0.320918 2.024765 -0.079378 +v -0.232457 2.027736 -0.093884 +v -0.420668 1.976872 -0.082211 +v -0.424630 1.866847 -0.128904 +v -0.388541 1.881796 -0.128904 +v -0.385570 1.964314 -0.093884 +v -0.344029 1.791849 -0.175597 +v -0.328090 1.825547 -0.163924 +v -0.226082 1.795810 -0.194938 +v -0.239630 1.828518 -0.178429 +v -0.352452 1.896744 -0.128904 +v -0.312151 1.859246 -0.152250 +v -0.253178 1.861225 -0.161921 +v -0.210077 1.901526 -0.152250 +v -0.208096 1.956538 -0.128904 +v -0.248396 1.994038 -0.105557 +v -0.307369 1.992057 -0.095887 +v -0.350471 1.951756 -0.105557 +v -0.375462 1.939911 -0.037240 +v -0.378433 1.857393 -0.072260 +v -0.342343 1.872342 -0.072260 +v -0.340363 1.927353 -0.048913 +v -0.317983 1.801144 -0.107280 +v -0.302044 1.834842 -0.095606 +v -0.229521 1.804116 -0.121785 +v -0.243069 1.836823 -0.105277 +v -0.164869 1.864566 -0.107280 +v -0.199968 1.877123 -0.095606 +v -0.161898 1.947084 -0.072260 +v -0.197988 1.932136 -0.072260 +v -0.222349 2.003333 -0.037240 +v -0.238287 1.969635 -0.048913 +v -0.310809 2.000361 -0.022734 +v -0.297261 1.967654 -0.039243 +v -0.421415 1.515165 -0.750000 +v -0.375651 1.404680 -0.750000 +v -0.472732 1.501761 -0.418544 +v -0.495614 1.589365 -0.496669 +v -0.265165 1.358916 -0.750000 +v -0.154680 1.404680 -0.750000 +v -0.284121 1.534121 -0.308058 +v -0.385129 1.478879 -0.340419 +v -0.108915 1.515166 -0.750000 +v -0.154680 1.625651 -0.750000 +v -0.251761 1.722732 -0.418544 +v -0.228879 1.635129 -0.340419 +v -0.265164 1.671415 -0.750000 +v -0.339364 1.745615 -0.496669 +v -0.375651 1.625651 -0.750000 +v -0.440371 1.690372 -0.529029 +v -0.359293 1.830264 -0.316931 +v -0.361756 1.768007 -0.214856 +v -0.427498 1.677498 -0.172575 +v -0.518006 1.611757 -0.214856 +v -0.580264 1.609293 -0.316931 +v -0.577800 1.671551 -0.419007 +v -0.512060 1.762060 -0.461288 +v -0.421550 1.827801 -0.419007 +v -0.674746 1.768497 -0.391735 +v -0.596621 1.846622 -0.437500 +v -0.518496 1.924747 -0.391735 +v -0.486136 1.957107 -0.281250 +v -0.518496 1.924747 -0.170765 +v -0.596621 1.846622 -0.125000 +v -0.674746 1.768497 -0.170765 +v -0.707107 1.736136 -0.281250 +v -0.675236 2.081487 -0.214856 +v -0.765745 2.015745 -0.172575 +v -0.831486 1.925237 -0.214856 +v -0.833950 1.862979 -0.316932 +v -0.771692 1.865443 -0.419007 +v -0.681184 1.931184 -0.461288 +v -0.615442 2.021693 -0.419007 +v -0.612979 2.083950 -0.316932 +v -0.485278 2.013265 -0.468769 +v -0.404677 1.938267 -0.515462 +v -0.286730 1.942229 -0.534803 +v -0.200527 2.022829 -0.515462 +v -0.196566 2.132854 -0.468769 +v -0.277167 2.207852 -0.422076 +v -0.395114 2.203891 -0.402735 +v -0.481318 2.123290 -0.422076 +v 0.139878 0.623589 -0.175597 +v 0.135918 0.513564 -0.128904 +v 0.172006 0.528513 -0.128904 +v 0.174978 0.611032 -0.163924 +v 0.216517 0.438566 -0.082211 +v 0.334466 0.442528 -0.062870 +v 0.320918 0.475236 -0.079378 +v 0.232457 0.472264 -0.093884 +v 0.420668 0.523129 -0.082211 +v 0.424630 0.633153 -0.128904 +v 0.388541 0.618205 -0.128904 +v 0.385570 0.535686 -0.093884 +v 0.344029 0.708152 -0.175597 +v 0.328090 0.674453 -0.163924 +v 0.226082 0.704190 -0.194938 +v 0.239630 0.671482 -0.178429 +v 0.352452 0.603256 -0.128904 +v 0.312151 0.640754 -0.152250 +v 0.253178 0.638775 -0.161921 +v 0.210077 0.598474 -0.152250 +v 0.208096 0.543462 -0.128904 +v 0.248396 0.505963 -0.105557 +v 0.307369 0.507944 -0.095887 +v 0.350471 0.548244 -0.105557 +v 0.375462 0.560089 -0.037240 +v 0.378433 0.642607 -0.072260 +v 0.342343 0.627659 -0.072260 +v 0.340363 0.572647 -0.048913 +v 0.317983 0.698857 -0.107280 +v 0.302044 0.665158 -0.095606 +v 0.229521 0.695884 -0.121785 +v 0.243069 0.663177 -0.105277 +v 0.164869 0.635435 -0.107280 +v 0.199969 0.622877 -0.095606 +v 0.161898 0.552916 -0.072260 +v 0.197988 0.567865 -0.072260 +v 0.222349 0.496668 -0.037240 +v 0.238287 0.530365 -0.048913 +v 0.310809 0.499639 -0.022734 +v 0.297261 0.532347 -0.039243 +v 0.421415 0.984835 -0.750000 +v 0.375651 1.095320 -0.750000 +v 0.472732 0.998239 -0.418544 +v 0.495614 0.910635 -0.496669 +v 0.265165 1.141084 -0.750000 +v 0.154680 1.095320 -0.750000 +v 0.284121 0.965879 -0.308058 +v 0.385129 1.021121 -0.340419 +v 0.108915 0.984834 -0.750000 +v 0.154680 0.874350 -0.750000 +v 0.251761 0.777268 -0.418544 +v 0.228879 0.864871 -0.340419 +v 0.265164 0.828585 -0.750000 +v 0.339364 0.754385 -0.496669 +v 0.375650 0.874350 -0.750000 +v 0.440371 0.809629 -0.529029 +v 0.359293 0.669736 -0.316931 +v 0.361756 0.731993 -0.214856 +v 0.427498 0.822502 -0.172575 +v 0.518006 0.888243 -0.214856 +v 0.580264 0.890707 -0.316931 +v 0.577800 0.828449 -0.419007 +v 0.512060 0.737940 -0.461288 +v 0.421550 0.672199 -0.419007 +v 0.674746 0.731503 -0.391735 +v 0.596621 0.653379 -0.437500 +v 0.518496 0.575253 -0.391735 +v 0.486136 0.542893 -0.281250 +v 0.518496 0.575253 -0.170765 +v 0.596621 0.653379 -0.125000 +v 0.674746 0.731503 -0.170765 +v 0.707107 0.763864 -0.281250 +v 0.675236 0.418513 -0.214856 +v 0.765745 0.484255 -0.172575 +v 0.831486 0.574763 -0.214856 +v 0.833950 0.637021 -0.316932 +v 0.771692 0.634558 -0.419007 +v 0.681184 0.568816 -0.461288 +v 0.615442 0.478308 -0.419007 +v 0.612979 0.416050 -0.316932 +v 0.485278 0.486736 -0.468769 +v 0.404677 0.561733 -0.515462 +v 0.286730 0.557772 -0.534803 +v 0.200527 0.477172 -0.515462 +v 0.196566 0.367146 -0.468769 +v 0.277166 0.292148 -0.422076 +v 0.395114 0.296109 -0.402735 +v 0.481317 0.376710 -0.422076 +v 0.391169 2.232164 0.136894 +v 0.014465 2.307096 0.136894 +v 0.014465 2.197720 -0.081856 +v 0.349313 2.131115 -0.081856 +v 0.025414 2.252758 -0.109375 +v 0.360261 2.186152 -0.109375 +v 0.025414 2.362132 0.109375 +v 0.402117 2.287201 0.109375 +v -0.982164 1.641169 0.136894 +v -1.057095 1.264466 0.136894 +v -0.947720 1.264466 -0.081856 +v -0.881115 1.599313 -0.081856 +v -1.002758 1.275414 -0.109375 +v -0.936152 1.610261 -0.109375 +v -1.112132 1.275414 0.109375 +v -1.037201 1.652117 0.109375 +v 0.982164 0.858831 0.136894 +v 1.057095 1.235535 0.136894 +v 0.947720 1.235535 -0.081856 +v 0.881115 0.900687 -0.081856 +v 1.002758 1.224586 -0.109375 +v 0.936152 0.889739 -0.109375 +v 1.112132 1.224586 0.109375 +v 1.037201 0.847883 0.109375 +v -0.971093 0.832103 0.136894 +v -0.757708 0.512749 0.136894 +v -0.680368 0.590089 -0.081856 +v -0.870044 0.873959 -0.081856 +v -0.727027 0.558913 -0.109375 +v -0.916702 0.842784 -0.109375 +v -0.804366 0.481574 0.109375 +v -1.017751 0.800928 0.109375 +v 0.971093 1.667897 0.136894 +v 0.757708 1.987251 0.136894 +v 0.680368 1.909911 -0.081856 +v 0.870044 1.626041 -0.081856 +v 0.727027 1.941087 -0.109375 +v 0.916703 1.657217 -0.109375 +v 0.804366 2.018426 0.109375 +v 1.017752 1.699073 0.109375 +v -0.417897 2.221093 0.136894 +v -0.737251 2.007708 0.136894 +v -0.659911 1.930368 -0.081856 +v -0.376041 2.120044 -0.081856 +v -0.691087 1.977027 -0.109375 +v -0.407216 2.166703 -0.109375 +v -0.768426 2.054366 0.109375 +v -0.449072 2.267752 0.109375 +v 0.417897 0.278907 0.136894 +v 0.737251 0.492292 0.136894 +v 0.659911 0.569632 -0.081856 +v 0.376041 0.379956 -0.081856 +v 0.691087 0.522973 -0.109375 +v 0.407216 0.333298 -0.109375 +v 0.768426 0.445634 0.109375 +v 0.449072 0.232249 0.109375 +v -0.737251 0.492293 0.136894 +v -0.417897 0.278907 0.136894 +v -0.376041 0.379957 -0.081856 +v -0.659911 0.569632 -0.081856 +v -0.407218 0.333298 -0.109375 +v -0.691088 0.522974 -0.109375 +v -0.449074 0.232249 0.109375 +v -0.768427 0.445635 0.109375 +v 0.737251 2.007708 0.136894 +v 0.417897 2.221093 0.136894 +v 0.376041 2.120044 -0.081856 +v 0.659911 1.930368 -0.081856 +v 0.407218 2.166703 -0.109375 +v 0.691088 1.977026 -0.109375 +v 0.449074 2.267751 0.109375 +v 0.768427 2.054366 0.109375 +v -0.757708 1.987251 0.136894 +v -0.971093 1.667897 0.136894 +v -0.870044 1.626041 -0.081856 +v -0.680368 1.909911 -0.081856 +v -0.916702 1.657218 -0.109375 +v -0.727026 1.941088 -0.109375 +v -1.017751 1.699074 0.109375 +v -0.804365 2.018427 0.109375 +v 0.757708 0.512749 0.136894 +v 0.971093 0.832103 0.136894 +v 0.870044 0.873959 -0.081856 +v 0.680368 0.590089 -0.081856 +v 0.916702 0.842782 -0.109375 +v 0.727026 0.558912 -0.109375 +v 1.017751 0.800926 0.109375 +v 0.804366 0.481573 0.109375 +v -1.057095 1.235535 0.136894 +v -0.982164 0.858832 0.136894 +v -0.881115 0.900688 -0.081856 +v -0.947720 1.235535 -0.081856 +v -0.936153 0.889740 -0.109375 +v -1.002758 1.224588 -0.109375 +v -1.037201 0.847885 0.109375 +v -1.112132 1.224588 0.109375 +v 1.057095 1.264465 0.136894 +v 0.982164 1.641169 0.136894 +v 0.881115 1.599313 -0.081856 +v 0.947720 1.264465 -0.081856 +v 0.936153 1.610260 -0.109375 +v 1.002758 1.275412 -0.109375 +v 1.037202 1.652116 0.109375 +v 1.112132 1.275412 0.109375 +v -0.014465 2.307096 0.136894 +v -0.391168 2.232164 0.136894 +v -0.349312 2.131115 -0.081856 +v -0.014465 2.197721 -0.081856 +v -0.360260 2.186153 -0.109375 +v -0.025412 2.252758 -0.109375 +v -0.402115 2.287201 0.109375 +v -0.025412 2.362133 0.109375 +v 0.014465 0.192905 0.136894 +v 0.391169 0.267836 0.136894 +v 0.349312 0.368885 -0.081856 +v 0.014465 0.302280 -0.081856 +v 0.360260 0.313847 -0.109375 +v 0.025412 0.247242 -0.109375 +v 0.402115 0.212799 0.109375 +v 0.025412 0.137868 0.109375 +vt 0.227586 -0.000000 +vt 0.255172 -0.000000 +vt 0.255172 0.125000 +vt 0.227586 0.125000 +vt 0.227586 0.625000 +vt 0.227586 0.500000 +vt 0.255172 0.500000 +vt 0.255172 0.625000 +vt 0.227586 0.750000 +vt 0.255172 0.750000 +vt 0.255172 0.875000 +vt 0.227586 0.875000 +vt 0.227586 0.375000 +vt 0.227586 0.250000 +vt 0.255172 0.250000 +vt 0.255172 0.375000 +vt 0.255172 1.000000 +vt 0.227586 1.000000 +vt 0.130816 0.408077 +vt 0.185647 0.407982 +vt 0.181809 0.433762 +vt 0.158206 0.423338 +vt 0.134644 0.434152 +vt 0.227246 0.501121 +vt 0.215680 0.509781 +vt 0.201106 0.462288 +vt 0.226770 0.624909 +vt 0.215543 0.616068 +vt 0.220300 0.563004 +vt 0.185661 0.717018 +vt 0.181941 0.690910 +vt 0.202736 0.659045 +vt 0.131028 0.716313 +vt 0.134829 0.690268 +vt 0.158386 0.701199 +vt 0.089995 0.623885 +vt 0.101155 0.615205 +vt 0.113984 0.658150 +vt 0.089997 0.501305 +vt 0.101178 0.509856 +vt 0.096611 0.562314 +vt 0.113890 0.466628 +vt 0.551724 0.750000 +vt 0.682759 0.750000 +vt 0.662069 0.796875 +vt 0.662069 0.875000 +vt 0.551724 0.875000 +vt 0.606897 0.125000 +vt 0.634483 0.218750 +vt 0.662069 0.218750 +vt 0.724138 0.218750 +vt 0.724138 0.250000 +vt 0.551724 0.250000 +vt 0.551724 0.125000 +vt 0.682759 0.375000 +vt 0.551724 0.375000 +vt 0.724138 0.359375 +vt 0.703448 0.375000 +vt 0.551724 -0.000000 +vt 0.606897 -0.000000 +vt 0.662069 0.906250 +vt 0.634483 0.906250 +vt 0.606897 1.000000 +vt 0.551724 1.000000 +vt 0.413793 0.187500 +vt 0.413793 0.062500 +vt 0.441379 -0.000000 +vt 0.441379 0.250000 +vt 0.703448 0.406250 +vt 0.682759 0.406250 +vt 0.724138 0.875000 +vt 0.717241 0.875000 +vt 0.717241 0.796875 +vt 0.724138 0.765625 +vt 0.703448 0.750000 +vt 0.724138 0.906250 +vt 0.717241 0.906250 +vt 0.282759 0.796875 +vt 0.324138 0.796875 +vt 0.324138 0.812500 +vt 0.282759 0.812500 +vt 0.282759 0.828125 +vt 0.324138 0.828125 +vt 0.324138 0.843750 +vt 0.282759 0.843750 +vt 0.282759 0.859375 +vt 0.324138 0.859375 +vt 0.324138 0.875000 +vt 0.282759 0.875000 +vt 0.275862 0.906250 +vt 0.282759 0.890625 +vt 0.324138 0.890625 +vt 0.331034 0.906250 +vt 0.275862 0.765625 +vt 0.331034 0.765625 +vt 0.324138 0.781250 +vt 0.282759 0.781250 +vt 0.324138 1.000000 +vt 0.282759 1.000000 +vt 0.282759 0.984375 +vt 0.324138 0.984375 +vt 0.275862 0.984375 +vt 0.275862 0.968750 +vt 0.282759 0.968750 +vt 0.282759 0.953125 +vt 0.324138 0.953125 +vt 0.324138 0.968750 +vt 0.282759 0.968750 +vt 0.275862 0.984375 +vt 0.275862 0.968750 +vt 0.282759 0.984375 +vt 0.282759 0.984375 +vt 0.282759 0.968750 +vt 0.324138 0.968750 +vt 0.324138 0.984375 +vt 0.324138 0.968750 +vt 0.324138 0.984375 +vt 0.282759 0.968750 +vt 0.324138 0.968750 +vt 0.324138 0.984375 +vt 0.282759 0.984375 +vt 0.275862 0.984375 +vt 0.275862 0.968750 +vt 0.282759 0.953125 +vt 0.324138 0.953125 +vt 0.331034 0.968750 +vt 0.331034 0.984375 +vt 0.324138 1.000000 +vt 0.282759 1.000000 +vt 0.331034 0.968750 +vt 0.331034 0.984375 +vt 0.282759 0.953125 +vt 0.324138 0.953125 +vt 0.331034 0.968750 +vt 0.331034 0.984375 +vt 0.324138 1.000000 +vt 0.282759 1.000000 +vt 0.331034 0.968750 +vt 0.331034 0.984375 +vt 0.282759 0.953125 +vt 0.324138 0.953125 +vt 0.275862 0.984375 +vt 0.275862 0.968750 +vt 0.324138 1.000000 +vt 0.282759 1.000000 +vt 0.737931 0.250000 +vt 0.737931 0.359375 +vt 0.737931 0.218750 +vt 0.737931 0.765625 +vt 0.737931 0.875000 +vt 0.737931 0.906250 +vt 0.724138 0.375000 +vt 0.724138 0.406250 +vt 0.703448 0.718750 +vt 0.724138 0.718750 +vt 0.724138 0.750000 +vt 0.682759 0.718750 +vt 0.662069 0.625000 +vt 0.662069 0.500000 +vt 0.675862 0.500000 +vt 0.675862 0.625000 +vt 0.696552 0.421875 +vt 0.696552 0.453125 +vt 0.696552 0.671875 +vt 0.696552 0.703125 +vt 0.151724 0.046875 +vt 0.158621 0.046875 +vt 0.158621 0.062500 +vt 0.151724 0.062500 +vt 0.165517 0.046875 +vt 0.172414 0.046875 +vt 0.172414 0.062500 +vt 0.165517 0.062500 +vt 0.179310 0.046875 +vt 0.186207 0.046875 +vt 0.186207 0.062500 +vt 0.179310 0.062500 +vt 0.193103 0.046875 +vt 0.193103 0.062500 +vt 0.144828 0.046875 +vt 0.144828 0.062500 +vt 0.200000 0.046875 +vt 0.200000 0.062500 +vt 0.172208 0.125000 +vt 0.170248 0.135718 +vt 0.165517 0.140158 +vt 0.160786 0.135718 +vt 0.158827 0.125000 +vt 0.160786 0.114281 +vt 0.165517 0.109842 +vt 0.170248 0.114281 +vt 0.179310 0.078125 +vt 0.186207 0.078125 +vt 0.186207 0.093750 +vt 0.179310 0.093750 +vt 0.193103 0.078125 +vt 0.193103 0.093750 +vt 0.200000 0.078125 +vt 0.200000 0.093750 +vt 0.144828 0.078125 +vt 0.151724 0.078125 +vt 0.151724 0.093750 +vt 0.144828 0.093750 +vt 0.158621 0.078125 +vt 0.158621 0.093750 +vt 0.165517 0.078125 +vt 0.165517 0.093750 +vt 0.172414 0.078125 +vt 0.172414 0.093750 +vt 0.096552 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.096552 0.343750 +vt 0.124138 0.296875 +vt 0.124138 0.328125 +vt 0.096552 0.281250 +vt 0.117241 0.281250 +vt 0.089655 0.328125 +vt 0.089655 0.296875 +vt 0.296552 0.031250 +vt 0.310345 0.031250 +vt 0.303448 0.046875 +vt 0.296552 0.046875 +vt 0.259370 0.124136 +vt 0.255554 0.115489 +vt 0.255554 0.103261 +vt 0.259370 0.094614 +vt 0.264768 0.094614 +vt 0.268584 0.103261 +vt 0.268584 0.115489 +vt 0.264768 0.124136 +vt 0.282759 0.031250 +vt 0.289655 0.046875 +vt 0.282759 0.046875 +vt 0.268966 0.031250 +vt 0.275862 0.046875 +vt 0.268966 0.046875 +vt 0.255172 0.031250 +vt 0.262069 0.046875 +vt 0.255172 0.046875 +vt 0.351724 0.031250 +vt 0.365517 0.031250 +vt 0.358621 0.046875 +vt 0.351724 0.046875 +vt 0.337931 0.031250 +vt 0.344828 0.046875 +vt 0.337931 0.046875 +vt 0.324138 0.031250 +vt 0.331034 0.046875 +vt 0.324138 0.046875 +vt 0.317241 0.046875 +vt 0.310345 0.046875 +vt 0.296552 0.078125 +vt 0.296552 0.062500 +vt 0.303448 0.062500 +vt 0.303448 0.078125 +vt 0.282759 0.078125 +vt 0.282759 0.062500 +vt 0.289655 0.062500 +vt 0.289655 0.078125 +vt 0.268966 0.078125 +vt 0.268966 0.062500 +vt 0.275862 0.062500 +vt 0.275862 0.078125 +vt 0.255172 0.078125 +vt 0.255172 0.062500 +vt 0.262069 0.062500 +vt 0.262069 0.078125 +vt 0.351724 0.078125 +vt 0.351724 0.062500 +vt 0.358621 0.062500 +vt 0.358621 0.078125 +vt 0.337931 0.078125 +vt 0.337931 0.062500 +vt 0.344828 0.062500 +vt 0.344828 0.078125 +vt 0.324138 0.078125 +vt 0.324138 0.062500 +vt 0.331034 0.062500 +vt 0.331034 0.078125 +vt 0.310345 0.078125 +vt 0.310345 0.062500 +vt 0.317241 0.062500 +vt 0.317241 0.078125 +vt 0.106793 0.119651 +vt 0.097935 0.106242 +vt 0.092016 0.086173 +vt 0.089938 0.062500 +vt 0.092016 0.038827 +vt 0.097935 0.018758 +vt 0.106793 0.005349 +vt 0.117241 0.000640 +vt 0.127690 0.005349 +vt 0.136548 0.018758 +vt 0.142467 0.038827 +vt 0.144545 0.062500 +vt 0.142467 0.086173 +vt 0.136548 0.106242 +vt 0.127690 0.119651 +vt 0.117241 0.124360 +vt 0.297766 0.407469 +vt 0.301337 0.432859 +vt 0.282000 0.461238 +vt 0.267164 0.508207 +vt 0.255663 0.499249 +vt 0.351705 0.408442 +vt 0.347882 0.434234 +vt 0.324503 0.423194 +vt 0.392481 0.500826 +vt 0.381418 0.509360 +vt 0.368692 0.466561 +vt 0.392687 0.622102 +vt 0.381587 0.613816 +vt 0.386036 0.561123 +vt 0.351758 0.717531 +vt 0.347834 0.691162 +vt 0.368830 0.657546 +vt 0.296432 0.717486 +vt 0.300333 0.691179 +vt 0.324106 0.701882 +vt 0.255589 0.622775 +vt 0.266830 0.614350 +vt 0.279544 0.658120 +vt 0.262317 0.561201 +vt 0.455702 0.407223 +vt 0.510269 0.408300 +vt 0.506371 0.433702 +vt 0.482981 0.422939 +vt 0.459519 0.433393 +vt 0.414646 0.501350 +vt 0.438585 0.466370 +vt 0.426010 0.510034 +vt 0.414688 0.625413 +vt 0.421416 0.563439 +vt 0.426182 0.616753 +vt 0.455784 0.717773 +vt 0.440498 0.663712 +vt 0.459554 0.692474 +vt 0.509818 0.717777 +vt 0.482677 0.702808 +vt 0.505992 0.692526 +vt 0.550560 0.624932 +vt 0.524922 0.663497 +vt 0.539080 0.616333 +vt 0.550871 0.501314 +vt 0.543898 0.563031 +vt 0.539362 0.509732 +vt 0.525316 0.462681 +vt 0.864604 0.213006 +vt 0.848515 0.125000 +vt 0.864604 0.036995 +vt 0.903448 0.000542 +vt 0.942292 0.036994 +vt 0.958382 0.125000 +vt 0.942292 0.213005 +vt 0.903448 0.249458 +vt 0.351724 0.765625 +vt 0.351724 0.906250 +vt 0.275862 0.718750 +vt 0.331034 0.718750 +vt 0.255172 0.906250 +vt 0.255172 0.765625 +vt 0.331034 0.953125 +vt 0.275862 0.953125 +vt 0.942292 0.463005 +vt 0.903448 0.499458 +vt 0.864604 0.463005 +vt 0.848515 0.375000 +vt 0.864604 0.286994 +vt 0.903448 0.250541 +vt 0.942292 0.286994 +vt 0.958382 0.375000 +vt 0.848276 0.375000 +vt 0.737931 0.375000 +vt 0.737931 0.281250 +vt 0.848276 0.281250 +vt 0.848276 0.187500 +vt 0.737931 0.187500 +vt 0.737931 0.093750 +vt 0.848276 0.093750 +vt 0.848276 0.562500 +vt 0.737931 0.562500 +vt 0.737931 0.468750 +vt 0.848276 0.468750 +vt 0.737931 -0.000000 +vt 0.848276 -0.000000 +vt 0.848276 0.656250 +vt 0.737931 0.656250 +vt 0.262069 0.171875 +vt 0.262069 0.140625 +vt 0.268966 0.140625 +vt 0.268966 0.171875 +vt 0.303448 0.171875 +vt 0.296552 0.171875 +vt 0.296552 0.140625 +vt 0.303448 0.140625 +vt 0.268966 0.125000 +vt 0.296552 0.125000 +vt 0.268966 0.187500 +vt 0.296552 0.187500 +vt 0.268966 0.093750 +vt 0.296552 0.093750 +vt 0.303448 0.140625 +vt 0.303448 0.171875 +vt 0.296552 0.171875 +vt 0.296552 0.140625 +vt 0.262069 0.140625 +vt 0.268966 0.140625 +vt 0.268966 0.171875 +vt 0.262069 0.171875 +vt 0.296552 0.187500 +vt 0.268966 0.187500 +vt 0.296552 0.125000 +vt 0.268966 0.125000 +vt 0.296552 0.093750 +vt 0.268966 0.093750 +vt 0.262069 0.171875 +vt 0.262069 0.140625 +vt 0.268966 0.140625 +vt 0.268966 0.171875 +vt 0.303448 0.171875 +vt 0.296552 0.171875 +vt 0.296552 0.140625 +vt 0.303448 0.140625 +vt 0.268966 0.125000 +vt 0.296552 0.125000 +vt 0.268966 0.187500 +vt 0.296552 0.187500 +vt 0.268966 0.093750 +vt 0.296552 0.093750 +vt 0.303448 0.140625 +vt 0.303448 0.171875 +vt 0.296552 0.171875 +vt 0.296552 0.140625 +vt 0.262069 0.140625 +vt 0.268966 0.140625 +vt 0.268966 0.171875 +vt 0.262069 0.171875 +vt 0.296552 0.187500 +vt 0.268966 0.187500 +vt 0.296552 0.125000 +vt 0.268966 0.125000 +vt 0.296552 0.093750 +vt 0.268966 0.093750 +vt 0.317241 0.171875 +vt 0.317241 0.140625 +vt 0.324138 0.140625 +vt 0.324138 0.171875 +vt 0.344828 0.187500 +vt 0.344828 0.171875 +vt 0.358621 0.171875 +vt 0.358621 0.187500 +vt 0.324138 0.125000 +vt 0.351724 0.125000 +vt 0.351724 0.140625 +vt 0.324138 0.187500 +vt 0.324138 0.093750 +vt 0.344828 0.093750 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 0.413793 0.914062 +vt 0.413793 0.859375 +vt 0.420690 0.859375 +vt 0.420690 0.914062 +vt 0.475862 0.914062 +vt 0.475862 0.859375 +vt 0.482759 0.859375 +vt 0.482759 0.914062 +vt 0.465517 0.937500 +vt 0.431034 0.937500 +vt 0.465517 0.953125 +vt 0.431034 0.953125 +vt 0.479310 0.937500 +vt 0.479310 0.953125 +vt 0.417241 0.953125 +vt 0.417241 0.937500 +vt 0.468966 -0.000000 +vt 0.468966 0.250000 +vt 0.337931 0.343750 +vt 0.255172 0.343750 +vt 0.255172 0.312500 +vt 0.337931 0.312500 +vt 0.351724 0.313754 +vt 0.363190 0.328752 +vt 0.363190 0.358748 +vt 0.351724 0.373746 +vt 0.340258 0.358748 +vt 0.340258 0.328752 +vt 0.255172 0.281250 +vt 0.337931 0.281250 +vt 0.255172 0.250000 +vt 0.337931 0.250000 +vt 0.340258 0.266252 +vt 0.351724 0.251254 +vt 0.363190 0.266252 +vt 0.363190 0.296248 +vt 0.351724 0.311246 +vt 0.340258 0.296248 +vt 0.924138 0.625000 +vt 0.868966 0.625000 +vt 0.868966 0.500000 +vt 0.924138 0.500000 +vt 0.848276 0.625000 +vt 0.848276 0.500000 +vt 0.944828 0.500000 +vt 0.944828 0.625000 +vt 0.834483 0.718750 +vt 0.834483 0.906250 +vt 0.765517 0.906250 +vt 0.765517 0.718750 +vt 0.737931 0.906250 +vt 0.737931 0.718750 +vt 0.862069 0.718750 +vt 0.862069 0.906250 +vt 0.834483 0.968750 +vt 0.765517 0.968750 +vt 0.765517 0.656250 +vt 0.834483 0.656250 +vt 0.958621 0.875000 +vt 0.903448 0.875000 +vt 0.903448 0.718750 +vt 0.958621 0.718750 +vt 0.903448 0.625000 +vt 0.958621 0.625000 +vt 0.958621 0.968750 +vt 0.903448 0.968750 +vt 0.862069 0.875000 +vt 0.862069 0.718750 +vt 1.000000 0.718750 +vt 1.000000 0.875000 +vt 0.986207 0.187500 +vt 0.958621 0.187500 +vt 0.958621 0.156250 +vt 0.986207 0.156250 +vt 0.986207 0.062500 +vt 0.958621 0.062500 +vt 0.958621 0.031250 +vt 0.986207 0.031250 +vt 0.986207 0.125000 +vt 0.958621 0.125000 +vt 0.958621 0.093750 +vt 0.986207 0.093750 +vt 0.958621 0.000000 +vt 0.986207 0.000000 +vt 0.978890 0.244165 +vt 0.965937 0.244165 +vt 0.959461 0.218750 +vt 0.965937 0.193335 +vt 0.978890 0.193335 +vt 0.985367 0.218750 +vt 0.737931 0.093750 +vt 0.737931 0.109375 +vt 0.724138 0.109375 +vt 0.724138 0.093750 +vt 0.737931 0.000000 +vt 0.737931 0.015625 +vt 0.724138 0.015625 +vt 0.724138 0.000000 +vt 0.737931 0.125000 +vt 0.737931 0.140625 +vt 0.724138 0.140625 +vt 0.724138 0.125000 +vt 0.737931 0.062500 +vt 0.737931 0.078125 +vt 0.724138 0.078125 +vt 0.724138 0.062500 +vt 0.737931 0.031250 +vt 0.737931 0.046875 +vt 0.724138 0.046875 +vt 0.724138 0.031250 +vt 0.737931 0.156250 +vt 0.737931 0.171875 +vt 0.724138 0.171875 +vt 0.724138 0.156250 +vt 0.717241 0.031250 +vt 0.717241 0.000000 +vt 0.717241 0.156250 +vt 0.717241 0.125000 +vt 0.717241 0.093750 +vt 0.717241 0.062500 +vt 0.717241 0.187500 +vt 0.675862 0.062500 +vt 0.675862 0.031250 +vt 0.675862 0.187500 +vt 0.675862 0.156250 +vt 0.675862 0.125000 +vt 0.675862 0.093750 +vt 0.675862 0.000000 +vt 0.668966 0.140625 +vt 0.668966 0.125000 +vt 0.668966 0.109375 +vt 0.668966 0.093750 +vt 0.668966 0.078125 +vt 0.668966 0.062500 +vt 0.668966 0.046875 +vt 0.668966 0.031250 +vt 0.668966 0.015625 +vt 0.668966 0.000000 +vt 0.668966 0.171875 +vt 0.668966 0.156250 +vt 0.655172 0.171875 +vt 0.655172 0.156250 +vt 0.655172 0.109375 +vt 0.655172 0.093750 +vt 0.655172 0.015625 +vt 0.655172 0.000000 +vt 0.655172 0.140625 +vt 0.655172 0.125000 +vt 0.655172 0.078125 +vt 0.655172 0.062500 +vt 0.655172 0.046875 +vt 0.655172 0.031250 +vt 0.648276 0.156250 +vt 0.648276 0.125000 +vt 0.648276 0.093750 +vt 0.648276 0.062500 +vt 0.648276 0.031250 +vt 0.648276 0.000000 +vt 0.648276 0.187500 +vt 0.641379 0.125000 +vt 0.641379 0.093750 +vt 0.641379 0.031250 +vt 0.641379 -0.000000 +vt 0.641379 0.156250 +vt 0.641379 0.062500 +vt 0.641379 0.187500 +vt 0.634483 0.078125 +vt 0.634483 0.062500 +vt 0.634483 0.046875 +vt 0.634483 0.031250 +vt 0.634483 0.171875 +vt 0.634483 0.156250 +vt 0.634483 0.109375 +vt 0.634483 0.093750 +vt 0.634483 0.015625 +vt 0.634483 0.000000 +vt 0.634483 0.140625 +vt 0.634483 0.125000 +vt 0.630883 0.028561 +vt 0.624290 0.028561 +vt 0.620993 0.015625 +vt 0.624290 0.002689 +vt 0.630883 0.002689 +vt 0.634179 0.015625 +vt 0.510345 0.156250 +vt 0.489655 0.156250 +vt 0.489655 0.046875 +vt 0.510345 0.046875 +vt 0.434483 0.750000 +vt 0.434483 0.812500 +vt 0.413793 0.812500 +vt 0.413793 0.765625 +vt 0.420690 0.750000 +vt 0.489655 0.000000 +vt 0.510345 0.000000 +vt 0.468966 0.156250 +vt 0.468966 0.046875 +vt 0.531034 0.046875 +vt 0.531034 0.156250 +vt 0.496552 0.156250 +vt 0.496552 0.187500 +vt 0.468966 0.187500 +vt 0.468966 0.156250 +vt 0.496552 0.265625 +vt 0.496552 0.312500 +vt 0.468966 0.312500 +vt 0.468966 0.265625 +vt 0.496552 0.234375 +vt 0.468966 0.234375 +vt 0.455172 0.750000 +vt 0.455172 0.812500 +vt 0.496552 0.750000 +vt 0.496552 0.765625 +vt 0.475862 0.765625 +vt 0.475862 0.750000 +vt 0.468966 0.750000 +vt 0.475862 0.812500 +vt 0.455172 0.859375 +vt 0.434483 0.859375 +vt 0.496552 0.812500 +vt 0.434483 0.718750 +vt 0.455172 0.718750 +vt 0.537931 0.812500 +vt 0.537931 0.828125 +vt 0.524138 0.828125 +vt 0.524138 0.812500 +vt 0.503448 0.718750 +vt 0.517241 0.718750 +vt 0.517241 0.812500 +vt 0.503448 0.812500 +vt 0.524138 0.718750 +vt 0.537931 0.718750 +vt 0.496552 0.718750 +vt 0.496552 0.812500 +vt 0.986207 0.609375 +vt 0.979310 0.609375 +vt 0.979310 0.593750 +vt 0.986207 0.593750 +vt 0.979310 0.531250 +vt 0.979310 0.515625 +vt 0.986207 0.515625 +vt 0.986207 0.531250 +vt 0.972414 0.593750 +vt 0.972414 0.562500 +vt 0.979310 0.578125 +vt 0.551724 0.500000 +vt 0.551724 0.625000 +vt 0.620690 0.734375 +vt 0.606897 0.734375 +vt 0.620690 0.640625 +vt 0.634483 0.640625 +vt 0.565517 0.640625 +vt 0.565517 0.734375 +vt 0.662069 0.734375 +vt 0.648276 0.640625 +vt 0.565517 0.390625 +vt 0.565517 0.484375 +vt 0.662069 0.375000 +vt 0.606897 0.390625 +vt 0.620690 0.484375 +vt 0.117241 0.906250 +vt 0.075862 0.906250 +vt 0.075862 0.875000 +vt 0.117241 0.875000 +vt 0.117241 0.125000 +vt 0.158621 0.125000 +vt 0.158621 0.156250 +vt 0.117241 0.156250 +vt 0.117241 0.906250 +vt 0.117241 0.875000 +vt 0.158621 0.875000 +vt 0.158621 0.906250 +vt 0.131034 0.250000 +vt 0.144828 0.250000 +vt 0.227586 0.875000 +vt 0.213793 0.875000 +vt 0.213793 0.781250 +vt 0.227586 0.781250 +vt 0.020690 0.781250 +vt 0.062069 0.781250 +vt 0.020690 0.875000 +vt 0.186207 0.281250 +vt 0.144828 0.281250 +vt 0.186207 0.250000 +vt 0.213793 0.750000 +vt 0.172414 0.781250 +vt 0.172414 0.750000 +vt 0.131034 0.281250 +vt 0.089655 0.281250 +vt 0.089655 0.250000 +vt 0.020690 0.906250 +vt 0.020690 0.750000 +vt 0.062069 0.750000 +vt 0.544828 0.203125 +vt 0.551724 0.203125 +vt 0.551724 0.250000 +vt 0.544828 0.250000 +vt 0.524138 0.203125 +vt 0.531034 0.203125 +vt 0.531034 0.250000 +vt 0.524138 0.250000 +vt 0.503448 0.203125 +vt 0.510345 0.203125 +vt 0.510345 0.250000 +vt 0.503448 0.250000 +vt 0.537931 0.203125 +vt 0.537931 0.250000 +vt 0.510345 0.296875 +vt 0.503448 0.296875 +vt 0.531034 0.296875 +vt 0.524138 0.296875 +vt 0.531034 0.203125 +vt 0.531034 0.187500 +vt 0.537931 0.187500 +vt 0.544828 0.187500 +vt 0.551724 0.187500 +vt 0.551724 0.203125 +vt 0.503448 0.203125 +vt 0.503448 0.187500 +vt 0.510345 0.187500 +vt 0.517241 0.187500 +vt 0.517241 0.203125 +vt 0.524138 0.187500 +vt 0.524138 0.203125 +vt 0.537931 0.156250 +vt 0.544828 0.156250 +vt 0.524138 0.156250 +vt 0.531034 0.156250 +vt 0.524138 0.187500 +vt 0.503448 0.156250 +vt 0.510345 0.156250 +vt 0.517241 0.156250 +vt 0.524138 0.156250 +vt 0.551724 0.156250 +vt 0.496552 0.156250 +vt 0.496552 0.187500 +vt 0.496552 0.203125 +vt 0.496552 0.250000 +vt 0.986207 0.515625 +vt 0.979310 0.515625 +vt 0.979310 0.484375 +vt 0.986207 0.484375 +vt 0.213793 0.906250 +vt 0.006897 0.875000 +vt 0.006897 0.781250 +vt 0.517241 0.250000 +vt 0.517241 0.296875 +vt 0.524138 0.250000 +vt 0.524138 0.296875 +vt 0.551724 0.296875 +vt 0.544828 0.296875 +vt 0.496552 0.296875 +vt 0.537931 0.296875 +vt 0.524138 0.203125 +vt 0.213793 0.265625 +vt 0.213793 0.109375 +vt 0.220690 0.109375 +vt 0.220690 0.265625 +vt 0.972414 0.515625 +vt 0.972414 0.484375 +vt 0.227586 0.109375 +vt 0.227586 0.265625 +vt 0.965517 0.515625 +vt 0.965517 0.484375 +vt 0.186207 0.265625 +vt 0.186207 0.109375 +vt 0.193103 0.109375 +vt 0.193103 0.265625 +vt 0.958621 0.515625 +vt 0.958621 0.484375 +vt 0.200000 0.109375 +vt 0.200000 0.265625 +vt 0.187370 0.273751 +vt 0.193103 0.266252 +vt 0.198836 0.273751 +vt 0.198836 0.288749 +vt 0.193103 0.296248 +vt 0.187370 0.288749 +vt 0.206897 0.109375 +vt 0.206897 0.265625 +vt 0.206897 0.266252 +vt 0.212630 0.273751 +vt 0.212630 0.288749 +vt 0.206897 0.296248 +vt 0.201164 0.288749 +vt 0.201164 0.273751 +vt 0.965517 0.468750 +vt 0.972414 0.468750 +vt 0.979310 0.484375 +vt 0.979310 0.468750 +vt 0.958621 0.468750 +vt 0.958621 0.484375 +vt 0.958621 0.453125 +vt 0.965517 0.453125 +vt 0.965517 0.437500 +vt 0.958621 0.437500 +vt 0.958621 0.421875 +vt 0.965517 0.421875 +vt 0.972414 0.453125 +vt 0.979310 0.453125 +vt 0.986207 0.468750 +vt 0.986207 0.453125 +vt 0.972414 0.437500 +vt 0.965517 0.453125 +vt 0.986207 0.453125 +vt 0.979310 0.437500 +vt 0.986207 0.437500 +vt 0.979310 0.421875 +vt 0.972414 0.421875 +vt 0.972414 0.343750 +vt 0.979310 0.343750 +vt 0.986207 0.421875 +vt 0.965517 0.328125 +vt 0.972414 0.328125 +vt 0.965517 0.343750 +vt 0.986207 0.343750 +vt 0.958621 0.343750 +vt 0.965517 0.343750 +vt 0.979310 0.328125 +vt 0.986207 0.328125 +vt 0.979310 0.296875 +vt 0.986207 0.296875 +vt 0.986207 0.343750 +vt 0.965517 0.281250 +vt 0.958621 0.281250 +vt 0.958621 0.250000 +vt 0.965517 0.250000 +vt 0.958621 0.328125 +vt 0.958621 0.296875 +vt 0.965517 0.296875 +vt 0.972414 0.296875 +vt 0.979310 0.296875 +vt 0.972414 0.281250 +vt 0.979310 0.281250 +vt 0.958621 0.296875 +vt 0.986207 0.281250 +vt 0.979310 0.250000 +vt 0.986207 0.250000 +vt 0.972414 0.250000 +vt 0.510345 0.156250 +vt 0.489655 0.156250 +vt 0.489655 0.046875 +vt 0.510345 0.046875 +vt 0.151724 0.046875 +vt 0.158621 0.046875 +vt 0.158621 0.062500 +vt 0.151724 0.062500 +vt 0.165517 0.046875 +vt 0.172414 0.046875 +vt 0.172414 0.062500 +vt 0.165517 0.062500 +vt 0.179310 0.046875 +vt 0.186207 0.046875 +vt 0.186207 0.062500 +vt 0.179310 0.062500 +vt 0.193103 0.046875 +vt 0.193103 0.062500 +vt 0.144828 0.046875 +vt 0.144828 0.062500 +vt 0.200000 0.046875 +vt 0.200000 0.062500 +vt 0.172208 0.125000 +vt 0.170248 0.135718 +vt 0.165517 0.140158 +vt 0.160786 0.135718 +vt 0.158827 0.125000 +vt 0.160786 0.114281 +vt 0.165517 0.109842 +vt 0.170248 0.114281 +vt 0.179310 0.078125 +vt 0.186207 0.078125 +vt 0.186207 0.093750 +vt 0.179310 0.093750 +vt 0.193103 0.078125 +vt 0.193103 0.093750 +vt 0.200000 0.078125 +vt 0.200000 0.093750 +vt 0.144828 0.078125 +vt 0.151724 0.078125 +vt 0.151724 0.093750 +vt 0.144828 0.093750 +vt 0.158621 0.078125 +vt 0.158621 0.093750 +vt 0.165517 0.078125 +vt 0.165517 0.093750 +vt 0.172414 0.078125 +vt 0.172414 0.093750 +vt 0.151724 0.046875 +vt 0.158621 0.046875 +vt 0.158621 0.062500 +vt 0.151724 0.062500 +vt 0.165517 0.046875 +vt 0.172414 0.046875 +vt 0.172414 0.062500 +vt 0.165517 0.062500 +vt 0.179310 0.046875 +vt 0.186207 0.046875 +vt 0.186207 0.062500 +vt 0.179310 0.062500 +vt 0.193103 0.046875 +vt 0.193103 0.062500 +vt 0.144828 0.046875 +vt 0.144828 0.062500 +vt 0.200000 0.046875 +vt 0.200000 0.062500 +vt 0.172208 0.125000 +vt 0.170248 0.135718 +vt 0.165517 0.140158 +vt 0.160786 0.135718 +vt 0.158827 0.125000 +vt 0.160786 0.114281 +vt 0.165517 0.109842 +vt 0.170248 0.114281 +vt 0.179310 0.078125 +vt 0.186207 0.078125 +vt 0.186207 0.093750 +vt 0.179310 0.093750 +vt 0.193103 0.078125 +vt 0.193103 0.093750 +vt 0.200000 0.078125 +vt 0.200000 0.093750 +vt 0.144828 0.078125 +vt 0.151724 0.078125 +vt 0.151724 0.093750 +vt 0.144828 0.093750 +vt 0.158621 0.078125 +vt 0.158621 0.093750 +vt 0.165517 0.078125 +vt 0.165517 0.093750 +vt 0.172414 0.078125 +vt 0.172414 0.093750 +vt 0.151724 0.046875 +vt 0.158621 0.046875 +vt 0.158621 0.062500 +vt 0.151724 0.062500 +vt 0.165517 0.046875 +vt 0.172414 0.046875 +vt 0.172414 0.062500 +vt 0.165517 0.062500 +vt 0.179310 0.046875 +vt 0.186207 0.046875 +vt 0.186207 0.062500 +vt 0.179310 0.062500 +vt 0.193103 0.046875 +vt 0.193103 0.062500 +vt 0.144828 0.046875 +vt 0.144828 0.062500 +vt 0.200000 0.046875 +vt 0.200000 0.062500 +vt 0.172208 0.125000 +vt 0.170248 0.135718 +vt 0.165517 0.140158 +vt 0.160786 0.135718 +vt 0.158827 0.125000 +vt 0.160786 0.114281 +vt 0.165517 0.109842 +vt 0.170248 0.114281 +vt 0.179310 0.078125 +vt 0.186207 0.078125 +vt 0.186207 0.093750 +vt 0.179310 0.093750 +vt 0.193103 0.078125 +vt 0.193103 0.093750 +vt 0.200000 0.078125 +vt 0.200000 0.093750 +vt 0.144828 0.078125 +vt 0.151724 0.078125 +vt 0.151724 0.093750 +vt 0.144828 0.093750 +vt 0.158621 0.078125 +vt 0.158621 0.093750 +vt 0.165517 0.078125 +vt 0.165517 0.093750 +vt 0.172414 0.078125 +vt 0.172414 0.093750 +vt 0.151724 0.046875 +vt 0.158621 0.046875 +vt 0.158621 0.062500 +vt 0.151724 0.062500 +vt 0.165517 0.046875 +vt 0.172414 0.046875 +vt 0.172414 0.062500 +vt 0.165517 0.062500 +vt 0.179310 0.046875 +vt 0.186207 0.046875 +vt 0.186207 0.062500 +vt 0.179310 0.062500 +vt 0.193103 0.046875 +vt 0.193103 0.062500 +vt 0.144828 0.046875 +vt 0.144828 0.062500 +vt 0.200000 0.046875 +vt 0.200000 0.062500 +vt 0.172208 0.125000 +vt 0.170248 0.135718 +vt 0.165517 0.140158 +vt 0.160786 0.135718 +vt 0.158827 0.125000 +vt 0.160786 0.114281 +vt 0.165517 0.109842 +vt 0.170248 0.114281 +vt 0.179310 0.078125 +vt 0.186207 0.078125 +vt 0.186207 0.093750 +vt 0.179310 0.093750 +vt 0.193103 0.078125 +vt 0.193103 0.093750 +vt 0.200000 0.078125 +vt 0.200000 0.093750 +vt 0.144828 0.078125 +vt 0.151724 0.078125 +vt 0.151724 0.093750 +vt 0.144828 0.093750 +vt 0.158621 0.078125 +vt 0.158621 0.093750 +vt 0.165517 0.078125 +vt 0.165517 0.093750 +vt 0.172414 0.078125 +vt 0.172414 0.093750 +vt 0.151724 0.046875 +vt 0.158621 0.046875 +vt 0.158621 0.062500 +vt 0.151724 0.062500 +vt 0.165517 0.046875 +vt 0.172414 0.046875 +vt 0.172414 0.062500 +vt 0.165517 0.062500 +vt 0.179310 0.046875 +vt 0.186207 0.046875 +vt 0.186207 0.062500 +vt 0.179310 0.062500 +vt 0.193103 0.046875 +vt 0.193103 0.062500 +vt 0.144828 0.046875 +vt 0.144828 0.062500 +vt 0.200000 0.046875 +vt 0.200000 0.062500 +vt 0.172208 0.125000 +vt 0.170248 0.135718 +vt 0.165517 0.140158 +vt 0.160786 0.135718 +vt 0.158827 0.125000 +vt 0.160786 0.114281 +vt 0.165517 0.109842 +vt 0.170248 0.114281 +vt 0.179310 0.078125 +vt 0.186207 0.078125 +vt 0.186207 0.093750 +vt 0.179310 0.093750 +vt 0.193103 0.078125 +vt 0.193103 0.093750 +vt 0.200000 0.078125 +vt 0.200000 0.093750 +vt 0.144828 0.078125 +vt 0.151724 0.078125 +vt 0.151724 0.093750 +vt 0.144828 0.093750 +vt 0.158621 0.078125 +vt 0.158621 0.093750 +vt 0.165517 0.078125 +vt 0.165517 0.093750 +vt 0.172414 0.078125 +vt 0.172414 0.093750 +vt 0.151724 0.046875 +vt 0.158621 0.046875 +vt 0.158621 0.062500 +vt 0.151724 0.062500 +vt 0.165517 0.046875 +vt 0.172414 0.046875 +vt 0.172414 0.062500 +vt 0.165517 0.062500 +vt 0.179310 0.046875 +vt 0.186207 0.046875 +vt 0.186207 0.062500 +vt 0.179310 0.062500 +vt 0.193103 0.046875 +vt 0.193103 0.062500 +vt 0.144828 0.046875 +vt 0.144828 0.062500 +vt 0.200000 0.046875 +vt 0.200000 0.062500 +vt 0.172208 0.125000 +vt 0.170248 0.135718 +vt 0.165517 0.140158 +vt 0.160786 0.135718 +vt 0.158827 0.125000 +vt 0.160786 0.114281 +vt 0.165517 0.109842 +vt 0.170248 0.114281 +vt 0.179310 0.078125 +vt 0.186207 0.078125 +vt 0.186207 0.093750 +vt 0.179310 0.093750 +vt 0.193103 0.078125 +vt 0.193103 0.093750 +vt 0.200000 0.078125 +vt 0.200000 0.093750 +vt 0.144828 0.078125 +vt 0.151724 0.078125 +vt 0.151724 0.093750 +vt 0.144828 0.093750 +vt 0.158621 0.078125 +vt 0.158621 0.093750 +vt 0.165517 0.078125 +vt 0.165517 0.093750 +vt 0.172414 0.078125 +vt 0.172414 0.093750 +vt 0.151724 0.046875 +vt 0.158621 0.046875 +vt 0.158621 0.062500 +vt 0.151724 0.062500 +vt 0.165517 0.046875 +vt 0.172414 0.046875 +vt 0.172414 0.062500 +vt 0.165517 0.062500 +vt 0.179310 0.046875 +vt 0.186207 0.046875 +vt 0.186207 0.062500 +vt 0.179310 0.062500 +vt 0.193103 0.046875 +vt 0.193103 0.062500 +vt 0.144828 0.046875 +vt 0.144828 0.062500 +vt 0.200000 0.046875 +vt 0.200000 0.062500 +vt 0.172208 0.125000 +vt 0.170248 0.135718 +vt 0.165517 0.140158 +vt 0.160786 0.135718 +vt 0.158827 0.125000 +vt 0.160786 0.114281 +vt 0.165517 0.109842 +vt 0.170248 0.114281 +vt 0.179310 0.078125 +vt 0.186207 0.078125 +vt 0.186207 0.093750 +vt 0.179310 0.093750 +vt 0.193103 0.078125 +vt 0.193103 0.093750 +vt 0.200000 0.078125 +vt 0.200000 0.093750 +vt 0.144828 0.078125 +vt 0.151724 0.078125 +vt 0.151724 0.093750 +vt 0.144828 0.093750 +vt 0.158621 0.078125 +vt 0.158621 0.093750 +vt 0.165517 0.078125 +vt 0.165517 0.093750 +vt 0.172414 0.078125 +vt 0.172414 0.093750 +vt 0.096552 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.096552 0.343750 +vt 0.124138 0.296875 +vt 0.124138 0.328125 +vt 0.096552 0.281250 +vt 0.117241 0.281250 +vt 0.089655 0.328125 +vt 0.089655 0.296875 +vt 0.096552 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.096552 0.343750 +vt 0.124138 0.296875 +vt 0.124138 0.328125 +vt 0.096552 0.281250 +vt 0.117241 0.281250 +vt 0.089655 0.328125 +vt 0.089655 0.296875 +vt 0.096552 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.096552 0.343750 +vt 0.124138 0.296875 +vt 0.124138 0.328125 +vt 0.096552 0.281250 +vt 0.117241 0.281250 +vt 0.089655 0.328125 +vt 0.089655 0.296875 +vt 0.096552 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.096552 0.343750 +vt 0.124138 0.296875 +vt 0.124138 0.328125 +vt 0.096552 0.281250 +vt 0.117241 0.281250 +vt 0.089655 0.328125 +vt 0.089655 0.296875 +vt 0.096552 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.096552 0.343750 +vt 0.124138 0.296875 +vt 0.124138 0.328125 +vt 0.096552 0.281250 +vt 0.117241 0.281250 +vt 0.089655 0.328125 +vt 0.089655 0.296875 +vt 0.096552 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.096552 0.343750 +vt 0.124138 0.296875 +vt 0.124138 0.328125 +vt 0.096552 0.281250 +vt 0.117241 0.281250 +vt 0.089655 0.328125 +vt 0.089655 0.296875 +vt 0.096552 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.096552 0.343750 +vt 0.124138 0.296875 +vt 0.124138 0.328125 +vt 0.096552 0.281250 +vt 0.117241 0.281250 +vt 0.089655 0.328125 +vt 0.089655 0.296875 +vt 0.096552 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.096552 0.343750 +vt 0.124138 0.296875 +vt 0.124138 0.328125 +vt 0.096552 0.281250 +vt 0.117241 0.281250 +vt 0.089655 0.328125 +vt 0.089655 0.296875 +vt 0.096552 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.096552 0.343750 +vt 0.124138 0.296875 +vt 0.124138 0.328125 +vt 0.096552 0.281250 +vt 0.117241 0.281250 +vt 0.089655 0.328125 +vt 0.089655 0.296875 +vt 0.096552 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.096552 0.343750 +vt 0.124138 0.296875 +vt 0.124138 0.328125 +vt 0.096552 0.281250 +vt 0.117241 0.281250 +vt 0.089655 0.328125 +vt 0.089655 0.296875 +vt 0.096552 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.096552 0.343750 +vt 0.124138 0.296875 +vt 0.124138 0.328125 +vt 0.096552 0.281250 +vt 0.117241 0.281250 +vt 0.089655 0.328125 +vt 0.089655 0.296875 +vt 0.096552 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.096552 0.343750 +vt 0.124138 0.296875 +vt 0.124138 0.328125 +vt 0.096552 0.281250 +vt 0.117241 0.281250 +vt 0.089655 0.328125 +vt 0.089655 0.296875 +vt 0.096552 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.096552 0.343750 +vt 0.124138 0.296875 +vt 0.124138 0.328125 +vt 0.096552 0.281250 +vt 0.117241 0.281250 +vt 0.089655 0.328125 +vt 0.089655 0.296875 +vt 0.096552 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.096552 0.343750 +vt 0.124138 0.296875 +vt 0.124138 0.328125 +vt 0.096552 0.281250 +vt 0.117241 0.281250 +vt 0.089655 0.328125 +vt 0.089655 0.296875 +vt 0.096552 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.096552 0.343750 +vt 0.124138 0.296875 +vt 0.124138 0.328125 +vt 0.096552 0.281250 +vt 0.117241 0.281250 +vt 0.089655 0.328125 +vt 0.089655 0.296875 +vt 0.089655 0.375000 +vt 0.089655 0.421875 +vt 0.075862 0.421875 +vt 0.075862 0.375000 +vt 0.089655 0.328125 +vt 0.075862 0.328125 +vt 0.089655 0.281250 +vt 0.075862 0.281250 +vt 0.089655 0.234375 +vt 0.075862 0.234375 +vt 0.089655 0.187500 +vt 0.075862 0.187500 +vt 0.089655 0.140625 +vt 0.075862 0.140625 +vt 0.089655 0.093750 +vt 0.075862 0.093750 +vt 0.089655 0.046875 +vt 0.075862 0.046875 +vt 0.089655 -0.000000 +vt 0.075862 0.000000 +vt 0.089655 0.703125 +vt 0.089655 0.750000 +vt 0.075862 0.750000 +vt 0.075862 0.703125 +vt 0.089655 0.656250 +vt 0.075862 0.656250 +vt 0.089655 0.609375 +vt 0.075862 0.609375 +vt 0.089655 0.562500 +vt 0.075862 0.562500 +vt 0.089655 0.515625 +vt 0.075862 0.515625 +vt 0.089655 0.468750 +vt 0.075862 0.468750 +vt 0.055172 0.421875 +vt 0.055172 0.375000 +vt 0.055172 0.328125 +vt 0.055172 0.046875 +vt 0.055172 -0.000000 +vt 0.055172 0.468750 +vt 0.055172 0.093750 +vt 0.055172 0.515625 +vt 0.055172 0.140625 +vt 0.055172 0.562500 +vt 0.055172 0.187500 +vt 0.055172 0.609375 +vt 0.055172 0.234375 +vt 0.055172 0.656250 +vt 0.055172 0.281250 +vt 0.055172 0.703125 +vt 0.055172 0.750000 +vt 0.124138 0.390625 +vt 0.124138 0.375000 +vt 0.144828 0.375000 +vt 0.144828 0.390625 +vt 0.124138 0.359375 +vt 0.124138 0.343750 +vt 0.144828 0.343750 +vt 0.144828 0.359375 +vt 0.124138 0.328125 +vt 0.124138 0.312500 +vt 0.144828 0.312500 +vt 0.144828 0.328125 +vt 0.124138 0.296875 +vt 0.144828 0.296875 +vt 0.124138 0.406250 +vt 0.144828 0.406250 +vt 0.124138 0.281250 +vt 0.144828 0.281250 +vt 0.158621 0.312500 +vt 0.158621 0.328125 +vt 0.158621 0.343750 +vt 0.158621 0.359375 +vt 0.158621 0.375000 +vt 0.158621 0.390625 +vt 0.158621 0.281250 +vt 0.158621 0.296875 +vt 0.158621 0.406250 +vt 0.172414 0.390625 +vt 0.172414 0.406250 +vt 0.172414 0.296875 +vt 0.172414 0.312500 +vt 0.172414 0.328125 +vt 0.172414 0.343750 +vt 0.172414 0.359375 +vt 0.172414 0.375000 +vt 0.172414 0.281250 +vt 0.186207 0.328125 +vt 0.186207 0.343750 +vt 0.186207 0.359375 +vt 0.186207 0.375000 +vt 0.186207 0.390625 +vt 0.186207 0.406250 +vt 0.186207 0.296875 +vt 0.186207 0.312500 +vt 0.186207 0.281250 +vt 0.186207 -0.000000 +vt 0.193103 -0.000000 +vt 0.144828 -0.000000 +vt 0.151724 -0.000000 +vt 0.158621 -0.000000 +vt 0.165517 -0.000000 +vt 0.172414 -0.000000 +vt 0.179310 -0.000000 +vt 0.200000 -0.000000 +vt 0.193103 0.109375 +vt 0.186207 0.109375 +vt 0.200000 0.109375 +vt 0.151724 0.109375 +vt 0.144828 0.109375 +vt 0.158621 0.109375 +vt 0.179310 0.109375 +vt 0.172414 0.109375 +vt 0.165517 0.109375 +vt 0.000000 0.125000 +vt 0.000000 0.093750 +vt -0.000000 0.546875 +vt 0.000000 0.515625 +vt -0.000000 0.171875 +vt -0.000000 0.140625 +vt -0.000000 0.593750 +vt -0.000000 0.562500 +vt 0.000000 0.218750 +vt 0.000000 0.187500 +vt 0.000000 0.640625 +vt 0.000000 0.609375 +vt -0.000000 0.265625 +vt -0.000000 0.234375 +vt 0.000000 0.687500 +vt 0.000000 0.656250 +vt -0.000000 0.312500 +vt -0.000000 0.281250 +vt -0.000000 0.734375 +vt 0.000000 0.703125 +vt -0.000000 0.406250 +vt -0.000000 0.375000 +vt 0.000000 0.359375 +vt 0.000000 0.328125 +vt 0.000000 0.031250 +vt -0.000000 0.000000 +vt -0.000000 0.453125 +vt 0.000000 0.421875 +vt -0.000000 0.078125 +vt -0.000000 0.046875 +vt -0.000000 0.500000 +vt 0.000000 0.468750 +vt 0.296552 0.000000 +vt 0.310345 0.000000 +vt 0.268966 0.000000 +vt 0.282759 0.000000 +vt 0.351724 0.000000 +vt 0.365517 0.000000 +vt 0.324138 0.000000 +vt 0.337931 0.000000 +vt 0.255172 0.000000 +vt 0.317241 0.093750 +vt 0.310345 0.093750 +vt 0.303448 0.093750 +vt 0.296552 0.093750 +vt 0.289655 0.093750 +vt 0.282759 0.093750 +vt 0.275862 0.093750 +vt 0.268966 0.093750 +vt 0.331034 0.093750 +vt 0.324138 0.093750 +vt 0.344828 0.093750 +vt 0.337931 0.093750 +vt 0.358621 0.093750 +vt 0.351724 0.093750 +vt 0.262069 0.093750 +vt 0.255172 0.093750 +vt 0.393103 1.000000 +vt 0.393103 0.937500 +vt 0.413793 0.937500 +vt 0.413793 1.000000 +vt 0.393103 0.562500 +vt 0.393103 0.500000 +vt 0.413793 0.500000 +vt 0.413793 0.562500 +vt 0.393103 0.437500 +vt 0.413793 0.437500 +vt 0.393103 0.062500 +vt 0.393103 -0.000000 +vt 0.413793 -0.000000 +vt 0.413793 0.062500 +vt 0.393103 0.625000 +vt 0.413793 0.625000 +vt 0.393103 0.125000 +vt 0.413793 0.125000 +vt 0.393103 0.687500 +vt 0.413793 0.687500 +vt 0.393103 0.187500 +vt 0.413793 0.187500 +vt 0.393103 0.750000 +vt 0.413793 0.750000 +vt 0.393103 0.250000 +vt 0.413793 0.250000 +vt 0.393103 0.812500 +vt 0.413793 0.812500 +vt 0.393103 0.312500 +vt 0.413793 0.312500 +vt 0.393103 0.875000 +vt 0.413793 0.875000 +vt 0.393103 0.375000 +vt 0.413793 0.375000 +vt 0.958621 0.609375 +vt 0.958621 0.593750 +vt 0.965517 0.593750 +vt 0.965517 0.609375 +vt 0.958621 0.562500 +vt 0.958621 0.546875 +vt 0.965517 0.546875 +vt 0.965517 0.562500 +vt 0.986207 0.578125 +vt 0.958621 0.625000 +vt 0.965517 0.625000 +vt 0.958621 0.578125 +vt 0.965517 0.578125 +vt 0.979310 0.562500 +vt 0.986207 0.562500 +vt 0.958621 0.531250 +vt 0.958621 0.515625 +vt 0.965517 0.515625 +vt 0.965517 0.531250 +vt 0.958621 0.640625 +vt 0.965517 0.640625 +vt 0.979310 0.546875 +vt 0.986207 0.546875 +vt 0.965517 0.609375 +vt 0.965517 0.593750 +vt 0.972414 0.593750 +vt 0.972414 0.609375 +vt 0.965517 0.656250 +vt 0.965517 0.640625 +vt 0.972414 0.640625 +vt 0.972414 0.656250 +vt 0.965517 0.546875 +vt 0.965517 0.531250 +vt 0.972414 0.531250 +vt 0.972414 0.546875 +vt 0.965517 0.703125 +vt 0.965517 0.687500 +vt 0.972414 0.687500 +vt 0.972414 0.703125 +vt 0.965517 0.578125 +vt 0.972414 0.578125 +vt 0.965517 0.625000 +vt 0.972414 0.625000 +vt 0.965517 0.515625 +vt 0.972414 0.515625 +vt 0.965517 0.671875 +vt 0.972414 0.671875 +vt 0.965517 0.562500 +vt 0.972414 0.562500 +vt 0.296552 0.234375 +vt 0.296552 0.218750 +vt 0.310345 0.218750 +vt 0.310345 0.234375 +vt 0.296552 0.203125 +vt 0.296552 0.187500 +vt 0.310345 0.187500 +vt 0.310345 0.203125 +vt 0.296552 0.234375 +vt 0.310345 0.234375 +vt 0.310345 0.250000 +vt 0.296552 0.250000 +vt 0.296552 0.203125 +vt 0.310345 0.203125 +vt 0.310345 0.218750 +vt 0.296552 0.218750 +vt 0.296552 0.187500 +vt 0.310345 0.187500 +vt 0.324138 0.218750 +vt 0.324138 0.234375 +vt 0.324138 0.187500 +vt 0.324138 0.203125 +vt 0.324138 0.250000 +vt 0.296552 0.234375 +vt 0.310345 0.234375 +vt 0.310345 0.250000 +vt 0.296552 0.250000 +vt 0.296552 0.203125 +vt 0.310345 0.203125 +vt 0.310345 0.218750 +vt 0.296552 0.218750 +vt 0.296552 0.187500 +vt 0.310345 0.187500 +vt 0.324138 0.218750 +vt 0.324138 0.234375 +vt 0.324138 0.187500 +vt 0.324138 0.203125 +vt 0.324138 0.250000 +vt 0.296552 0.234375 +vt 0.310345 0.234375 +vt 0.310345 0.250000 +vt 0.296552 0.250000 +vt 0.296552 0.203125 +vt 0.310345 0.203125 +vt 0.310345 0.218750 +vt 0.296552 0.218750 +vt 0.296552 0.187500 +vt 0.310345 0.187500 +vt 0.324138 0.218750 +vt 0.324138 0.234375 +vt 0.324138 0.187500 +vt 0.324138 0.203125 +vt 0.324138 0.250000 +vt 0.255172 0.250000 +vt 0.255172 0.234375 +vt 0.255172 0.250000 +vt 0.255172 0.234375 +vt 0.255172 0.218750 +vt 0.255172 0.203125 +vt 0.255172 0.250000 +vt 0.255172 0.234375 +vt 0.255172 0.218750 +vt 0.255172 0.187500 +vt 0.255172 0.203125 +vt 0.255172 0.218750 +vt 0.255172 0.203125 +vt 0.255172 0.187500 +vt 0.255172 0.187500 +vt 0.296552 0.250000 +vt 0.310345 0.250000 +vt 0.324138 0.203125 +vt 0.324138 0.218750 +vt 0.324138 0.234375 +vt 0.324138 0.250000 +vt 0.324138 0.187500 +vt 0.296552 0.203125 +vt 0.296552 0.187500 +vt 0.310345 0.187500 +vt 0.310345 0.203125 +vt 0.296552 0.234375 +vt 0.296552 0.218750 +vt 0.310345 0.218750 +vt 0.310345 0.234375 +vt 0.296552 0.250000 +vt 0.310345 0.250000 +vt 0.324138 0.203125 +vt 0.324138 0.218750 +vt 0.324138 0.234375 +vt 0.324138 0.250000 +vt 0.324138 0.187500 +vt 0.296552 0.203125 +vt 0.296552 0.187500 +vt 0.310345 0.187500 +vt 0.310345 0.203125 +vt 0.296552 0.234375 +vt 0.296552 0.218750 +vt 0.310345 0.218750 +vt 0.310345 0.234375 +vt 0.296552 0.250000 +vt 0.310345 0.250000 +vt 0.324138 0.203125 +vt 0.324138 0.218750 +vt 0.324138 0.234375 +vt 0.324138 0.250000 +vt 0.324138 0.187500 +vt 0.255172 0.203125 +vt 0.255172 0.187500 +vt 0.255172 0.203125 +vt 0.255172 0.187500 +vt 0.255172 0.218750 +vt 0.255172 0.234375 +vt 0.255172 0.203125 +vt 0.255172 0.187500 +vt 0.255172 0.218750 +vt 0.255172 0.250000 +vt 0.255172 0.234375 +vt 0.255172 0.218750 +vt 0.255172 0.234375 +vt 0.255172 0.250000 +vt 0.255172 0.250000 +vt 0.124138 0.390625 +vt 0.124138 0.375000 +vt 0.144828 0.375000 +vt 0.144828 0.390625 +vt 0.124138 0.359375 +vt 0.124138 0.343750 +vt 0.144828 0.343750 +vt 0.144828 0.359375 +vt 0.124138 0.328125 +vt 0.124138 0.312500 +vt 0.144828 0.312500 +vt 0.144828 0.328125 +vt 0.124138 0.296875 +vt 0.144828 0.296875 +vt 0.124138 0.406250 +vt 0.144828 0.406250 +vt 0.124138 0.281250 +vt 0.144828 0.281250 +vt 0.158621 0.312500 +vt 0.158621 0.328125 +vt 0.158621 0.343750 +vt 0.158621 0.359375 +vt 0.158621 0.375000 +vt 0.158621 0.390625 +vt 0.158621 0.281250 +vt 0.158621 0.296875 +vt 0.158621 0.406250 +vt 0.172414 0.390625 +vt 0.172414 0.406250 +vt 0.172414 0.296875 +vt 0.172414 0.312500 +vt 0.172414 0.328125 +vt 0.172414 0.343750 +vt 0.172414 0.359375 +vt 0.172414 0.375000 +vt 0.172414 0.281250 +vt 0.186207 0.328125 +vt 0.186207 0.343750 +vt 0.186207 0.359375 +vt 0.186207 0.375000 +vt 0.186207 0.390625 +vt 0.186207 0.406250 +vt 0.186207 0.296875 +vt 0.186207 0.312500 +vt 0.186207 0.281250 +vt 0.186207 -0.000000 +vt 0.193103 -0.000000 +vt 0.144828 -0.000000 +vt 0.151724 -0.000000 +vt 0.158621 -0.000000 +vt 0.165517 -0.000000 +vt 0.172414 -0.000000 +vt 0.179310 -0.000000 +vt 0.200000 -0.000000 +vt 0.193103 0.109375 +vt 0.186207 0.109375 +vt 0.200000 0.109375 +vt 0.151724 0.109375 +vt 0.144828 0.109375 +vt 0.158621 0.109375 +vt 0.179310 0.109375 +vt 0.172414 0.109375 +vt 0.165517 0.109375 +vt 0.124138 0.390625 +vt 0.124138 0.375000 +vt 0.144828 0.375000 +vt 0.144828 0.390625 +vt 0.124138 0.359375 +vt 0.124138 0.343750 +vt 0.144828 0.343750 +vt 0.144828 0.359375 +vt 0.124138 0.328125 +vt 0.124138 0.312500 +vt 0.144828 0.312500 +vt 0.144828 0.328125 +vt 0.124138 0.296875 +vt 0.144828 0.296875 +vt 0.124138 0.406250 +vt 0.144828 0.406250 +vt 0.124138 0.281250 +vt 0.144828 0.281250 +vt 0.158621 0.312500 +vt 0.158621 0.328125 +vt 0.158621 0.343750 +vt 0.158621 0.359375 +vt 0.158621 0.375000 +vt 0.158621 0.390625 +vt 0.158621 0.281250 +vt 0.158621 0.296875 +vt 0.158621 0.406250 +vt 0.172414 0.390625 +vt 0.172414 0.406250 +vt 0.172414 0.296875 +vt 0.172414 0.312500 +vt 0.172414 0.328125 +vt 0.172414 0.343750 +vt 0.172414 0.359375 +vt 0.172414 0.375000 +vt 0.172414 0.281250 +vt 0.186207 0.328125 +vt 0.186207 0.343750 +vt 0.186207 0.359375 +vt 0.186207 0.375000 +vt 0.186207 0.390625 +vt 0.186207 0.406250 +vt 0.186207 0.296875 +vt 0.186207 0.312500 +vt 0.186207 0.281250 +vt 0.186207 -0.000000 +vt 0.193103 -0.000000 +vt 0.144828 -0.000000 +vt 0.151724 -0.000000 +vt 0.158621 -0.000000 +vt 0.165517 -0.000000 +vt 0.172414 -0.000000 +vt 0.179310 -0.000000 +vt 0.200000 -0.000000 +vt 0.193103 0.109375 +vt 0.186207 0.109375 +vt 0.200000 0.109375 +vt 0.151724 0.109375 +vt 0.144828 0.109375 +vt 0.158621 0.109375 +vt 0.179310 0.109375 +vt 0.172414 0.109375 +vt 0.165517 0.109375 +vt 0.124138 0.390625 +vt 0.124138 0.375000 +vt 0.144828 0.375000 +vt 0.144828 0.390625 +vt 0.124138 0.359375 +vt 0.124138 0.343750 +vt 0.144828 0.343750 +vt 0.144828 0.359375 +vt 0.124138 0.328125 +vt 0.124138 0.312500 +vt 0.144828 0.312500 +vt 0.144828 0.328125 +vt 0.124138 0.296875 +vt 0.144828 0.296875 +vt 0.124138 0.406250 +vt 0.144828 0.406250 +vt 0.124138 0.281250 +vt 0.144828 0.281250 +vt 0.158621 0.312500 +vt 0.158621 0.328125 +vt 0.158621 0.343750 +vt 0.158621 0.359375 +vt 0.158621 0.375000 +vt 0.158621 0.390625 +vt 0.158621 0.281250 +vt 0.158621 0.296875 +vt 0.158621 0.406250 +vt 0.172414 0.390625 +vt 0.172414 0.406250 +vt 0.172414 0.296875 +vt 0.172414 0.312500 +vt 0.172414 0.328125 +vt 0.172414 0.343750 +vt 0.172414 0.359375 +vt 0.172414 0.375000 +vt 0.172414 0.281250 +vt 0.186207 0.328125 +vt 0.186207 0.343750 +vt 0.186207 0.359375 +vt 0.186207 0.375000 +vt 0.186207 0.390625 +vt 0.186207 0.406250 +vt 0.186207 0.296875 +vt 0.186207 0.312500 +vt 0.186207 0.281250 +vt 0.186207 -0.000000 +vt 0.193103 -0.000000 +vt 0.144828 -0.000000 +vt 0.151724 -0.000000 +vt 0.158621 -0.000000 +vt 0.165517 -0.000000 +vt 0.172414 -0.000000 +vt 0.179310 -0.000000 +vt 0.200000 -0.000000 +vt 0.193103 0.109375 +vt 0.186207 0.109375 +vt 0.200000 0.109375 +vt 0.151724 0.109375 +vt 0.144828 0.109375 +vt 0.158621 0.109375 +vt 0.179310 0.109375 +vt 0.172414 0.109375 +vt 0.165517 0.109375 +vt 0.124138 0.390625 +vt 0.124138 0.375000 +vt 0.144828 0.375000 +vt 0.144828 0.390625 +vt 0.124138 0.359375 +vt 0.124138 0.343750 +vt 0.144828 0.343750 +vt 0.144828 0.359375 +vt 0.124138 0.328125 +vt 0.124138 0.312500 +vt 0.144828 0.312500 +vt 0.144828 0.328125 +vt 0.124138 0.296875 +vt 0.144828 0.296875 +vt 0.124138 0.406250 +vt 0.144828 0.406250 +vt 0.124138 0.281250 +vt 0.144828 0.281250 +vt 0.158621 0.312500 +vt 0.158621 0.328125 +vt 0.158621 0.343750 +vt 0.158621 0.359375 +vt 0.158621 0.375000 +vt 0.158621 0.390625 +vt 0.158621 0.281250 +vt 0.158621 0.296875 +vt 0.158621 0.406250 +vt 0.172414 0.390625 +vt 0.172414 0.406250 +vt 0.172414 0.296875 +vt 0.172414 0.312500 +vt 0.172414 0.328125 +vt 0.172414 0.343750 +vt 0.172414 0.359375 +vt 0.172414 0.375000 +vt 0.172414 0.281250 +vt 0.186207 0.328125 +vt 0.186207 0.343750 +vt 0.186207 0.359375 +vt 0.186207 0.375000 +vt 0.186207 0.390625 +vt 0.186207 0.406250 +vt 0.186207 0.296875 +vt 0.186207 0.312500 +vt 0.186207 0.281250 +vt 0.186207 -0.000000 +vt 0.193103 -0.000000 +vt 0.144828 -0.000000 +vt 0.151724 -0.000000 +vt 0.158621 -0.000000 +vt 0.165517 -0.000000 +vt 0.172414 -0.000000 +vt 0.179310 -0.000000 +vt 0.200000 -0.000000 +vt 0.193103 0.109375 +vt 0.186207 0.109375 +vt 0.200000 0.109375 +vt 0.151724 0.109375 +vt 0.144828 0.109375 +vt 0.158621 0.109375 +vt 0.179310 0.109375 +vt 0.172414 0.109375 +vt 0.165517 0.109375 +vt 0.124138 0.390625 +vt 0.124138 0.375000 +vt 0.144828 0.375000 +vt 0.144828 0.390625 +vt 0.124138 0.359375 +vt 0.124138 0.343750 +vt 0.144828 0.343750 +vt 0.144828 0.359375 +vt 0.124138 0.328125 +vt 0.124138 0.312500 +vt 0.144828 0.312500 +vt 0.144828 0.328125 +vt 0.124138 0.296875 +vt 0.144828 0.296875 +vt 0.124138 0.406250 +vt 0.144828 0.406250 +vt 0.124138 0.281250 +vt 0.144828 0.281250 +vt 0.158621 0.312500 +vt 0.158621 0.328125 +vt 0.158621 0.343750 +vt 0.158621 0.359375 +vt 0.158621 0.375000 +vt 0.158621 0.390625 +vt 0.158621 0.281250 +vt 0.158621 0.296875 +vt 0.158621 0.406250 +vt 0.172414 0.390625 +vt 0.172414 0.406250 +vt 0.172414 0.296875 +vt 0.172414 0.312500 +vt 0.172414 0.328125 +vt 0.172414 0.343750 +vt 0.172414 0.359375 +vt 0.172414 0.375000 +vt 0.172414 0.281250 +vt 0.186207 0.328125 +vt 0.186207 0.343750 +vt 0.186207 0.359375 +vt 0.186207 0.375000 +vt 0.186207 0.390625 +vt 0.186207 0.406250 +vt 0.186207 0.296875 +vt 0.186207 0.312500 +vt 0.186207 0.281250 +vt 0.186207 -0.000000 +vt 0.193103 -0.000000 +vt 0.144828 -0.000000 +vt 0.151724 -0.000000 +vt 0.158621 -0.000000 +vt 0.165517 -0.000000 +vt 0.172414 -0.000000 +vt 0.179310 -0.000000 +vt 0.200000 -0.000000 +vt 0.193103 0.109375 +vt 0.186207 0.109375 +vt 0.200000 0.109375 +vt 0.151724 0.109375 +vt 0.144828 0.109375 +vt 0.158621 0.109375 +vt 0.179310 0.109375 +vt 0.172414 0.109375 +vt 0.165517 0.109375 +vt 0.124138 0.390625 +vt 0.124138 0.375000 +vt 0.144828 0.375000 +vt 0.144828 0.390625 +vt 0.124138 0.359375 +vt 0.124138 0.343750 +vt 0.144828 0.343750 +vt 0.144828 0.359375 +vt 0.124138 0.328125 +vt 0.124138 0.312500 +vt 0.144828 0.312500 +vt 0.144828 0.328125 +vt 0.124138 0.296875 +vt 0.144828 0.296875 +vt 0.124138 0.406250 +vt 0.144828 0.406250 +vt 0.124138 0.281250 +vt 0.144828 0.281250 +vt 0.158621 0.312500 +vt 0.158621 0.328125 +vt 0.158621 0.343750 +vt 0.158621 0.359375 +vt 0.158621 0.375000 +vt 0.158621 0.390625 +vt 0.158621 0.281250 +vt 0.158621 0.296875 +vt 0.158621 0.406250 +vt 0.172414 0.390625 +vt 0.172414 0.406250 +vt 0.172414 0.296875 +vt 0.172414 0.312500 +vt 0.172414 0.328125 +vt 0.172414 0.343750 +vt 0.172414 0.359375 +vt 0.172414 0.375000 +vt 0.172414 0.281250 +vt 0.186207 0.328125 +vt 0.186207 0.343750 +vt 0.186207 0.359375 +vt 0.186207 0.375000 +vt 0.186207 0.390625 +vt 0.186207 0.406250 +vt 0.186207 0.296875 +vt 0.186207 0.312500 +vt 0.186207 0.281250 +vt 0.186207 -0.000000 +vt 0.193103 -0.000000 +vt 0.144828 -0.000000 +vt 0.151724 -0.000000 +vt 0.158621 -0.000000 +vt 0.165517 -0.000000 +vt 0.172414 -0.000000 +vt 0.179310 -0.000000 +vt 0.200000 -0.000000 +vt 0.193103 0.109375 +vt 0.186207 0.109375 +vt 0.200000 0.109375 +vt 0.151724 0.109375 +vt 0.144828 0.109375 +vt 0.158621 0.109375 +vt 0.179310 0.109375 +vt 0.172414 0.109375 +vt 0.165517 0.109375 +vt 0.124138 0.390625 +vt 0.124138 0.375000 +vt 0.144828 0.375000 +vt 0.144828 0.390625 +vt 0.124138 0.359375 +vt 0.124138 0.343750 +vt 0.144828 0.343750 +vt 0.144828 0.359375 +vt 0.124138 0.328125 +vt 0.124138 0.312500 +vt 0.144828 0.312500 +vt 0.144828 0.328125 +vt 0.124138 0.296875 +vt 0.144828 0.296875 +vt 0.124138 0.406250 +vt 0.144828 0.406250 +vt 0.124138 0.281250 +vt 0.144828 0.281250 +vt 0.158621 0.312500 +vt 0.158621 0.328125 +vt 0.158621 0.343750 +vt 0.158621 0.359375 +vt 0.158621 0.375000 +vt 0.158621 0.390625 +vt 0.158621 0.281250 +vt 0.158621 0.296875 +vt 0.158621 0.406250 +vt 0.172414 0.390625 +vt 0.172414 0.406250 +vt 0.172414 0.296875 +vt 0.172414 0.312500 +vt 0.172414 0.328125 +vt 0.172414 0.343750 +vt 0.172414 0.359375 +vt 0.172414 0.375000 +vt 0.172414 0.281250 +vt 0.186207 0.328125 +vt 0.186207 0.343750 +vt 0.186207 0.359375 +vt 0.186207 0.375000 +vt 0.186207 0.390625 +vt 0.186207 0.406250 +vt 0.186207 0.296875 +vt 0.186207 0.312500 +vt 0.186207 0.281250 +vt 0.186207 -0.000000 +vt 0.193103 -0.000000 +vt 0.144828 -0.000000 +vt 0.151724 -0.000000 +vt 0.158621 -0.000000 +vt 0.165517 -0.000000 +vt 0.172414 -0.000000 +vt 0.179310 -0.000000 +vt 0.200000 -0.000000 +vt 0.193103 0.109375 +vt 0.186207 0.109375 +vt 0.200000 0.109375 +vt 0.151724 0.109375 +vt 0.144828 0.109375 +vt 0.158621 0.109375 +vt 0.179310 0.109375 +vt 0.172414 0.109375 +vt 0.165517 0.109375 vn 0.0000 -1.0000 -0.0000 vn 0.0000 1.0000 0.0000 vn -1.0000 0.0000 0.0000 @@ -896,10 +4646,95 @@ vn 0.0000 -0.9285 0.3714 vn 0.0000 0.9285 -0.3714 vn 0.0000 -0.9900 -0.1407 vn 0.0000 0.9900 0.1407 -vn 0.4226 0.0000 -0.9063 -vn -0.4226 -0.0000 0.9063 -vn 0.9063 -0.0000 0.4226 -vn -0.9063 0.0000 -0.4226 +vn -0.1617 -0.3904 0.9063 +vn -0.1617 -0.3905 0.9063 +vn 0.3904 -0.1617 0.9063 +vn 0.3905 -0.1617 0.9063 +vn -0.3904 0.1617 0.9063 +vn -0.3905 0.1617 0.9063 +vn 0.3904 0.1617 0.9063 +vn 0.3905 0.1617 0.9063 +vn -0.3904 -0.1617 0.9063 +vn -0.3905 -0.1617 0.9063 +vn 0.1617 -0.3904 0.9063 +vn 0.1617 -0.3905 0.9063 +vn -0.1617 0.3904 0.9063 +vn -0.1617 0.3905 0.9063 +vn -0.1752 -0.8806 0.4403 +vn -0.0859 -0.4318 -0.8979 +vn -0.9845 0.1567 -0.0783 +vn 0.0859 0.4318 0.8978 +vn 0.9695 -0.2320 -0.0783 +vn 0.8806 -0.1752 0.4403 +vn 0.4318 -0.0859 -0.8978 +vn -0.1567 -0.9845 -0.0783 +vn -0.4318 0.0859 0.8978 +vn 0.2320 0.9695 -0.0783 +vn -0.8806 0.1752 0.4403 +vn -0.4318 0.0859 -0.8978 +vn 0.1567 0.9845 -0.0783 +vn 0.4318 -0.0859 0.8978 +vn -0.2320 -0.9695 -0.0783 +vn 0.7465 0.4988 0.4403 +vn 0.3661 0.2446 -0.8978 +vn 0.5854 -0.8070 -0.0783 +vn -0.3661 -0.2446 0.8978 +vn -0.5215 0.8496 -0.0783 +vn -0.7465 -0.4988 0.4403 +vn -0.3661 -0.2446 -0.8978 +vn -0.5854 0.8070 -0.0783 +vn 0.3661 0.2446 0.8978 +vn 0.5215 -0.8496 -0.0783 +vn 0.4988 -0.7465 0.4403 +vn 0.2446 -0.3661 -0.8979 +vn -0.8070 -0.5854 -0.0783 +vn -0.2446 0.3661 0.8978 +vn 0.8496 0.5215 -0.0783 +vn -0.4988 0.7465 0.4403 +vn -0.2446 0.3661 -0.8978 +vn 0.8070 0.5854 -0.0783 +vn 0.2446 -0.3661 0.8978 +vn -0.8496 -0.5215 -0.0783 +vn 0.4988 0.7465 0.4403 +vn 0.2446 0.3661 -0.8979 +vn 0.8496 -0.5215 -0.0783 +vn -0.2446 -0.3661 0.8978 +vn -0.8070 0.5854 -0.0783 +vn -0.4988 -0.7465 0.4403 +vn -0.2446 -0.3661 -0.8978 +vn -0.8496 0.5215 -0.0783 +vn 0.2446 0.3661 0.8978 +vn 0.8070 -0.5854 -0.0783 +vn 0.7465 -0.4988 0.4403 +vn 0.3661 -0.2446 -0.8978 +vn -0.5215 -0.8496 -0.0783 +vn -0.3661 0.2446 0.8978 +vn 0.5854 0.8070 -0.0783 +vn -0.7465 0.4988 0.4403 +vn -0.3661 0.2446 -0.8978 +vn 0.5215 0.8496 -0.0783 +vn 0.3661 -0.2446 0.8978 +vn -0.5854 -0.8070 -0.0783 +vn 0.8806 0.1752 0.4403 +vn 0.4318 0.0859 -0.8978 +vn 0.2320 -0.9696 -0.0783 +vn -0.4318 -0.0859 0.8978 +vn -0.1567 0.9845 -0.0783 +vn -0.8806 -0.1752 0.4403 +vn -0.4318 -0.0859 -0.8978 +vn -0.2320 0.9696 -0.0783 +vn 0.4318 0.0859 0.8978 +vn 0.1567 -0.9845 -0.0783 +vn 0.1752 -0.8806 0.4403 +vn 0.0859 -0.4318 -0.8979 +vn -0.9696 -0.2320 -0.0783 +vn -0.0859 0.4318 0.8978 +vn 0.9845 0.1567 -0.0783 +vn -0.1752 0.8806 0.4403 +vn -0.0859 0.4318 -0.8978 +vn 0.9696 0.2320 -0.0783 +vn 0.0859 -0.4318 0.8978 +vn -0.9845 -0.1567 -0.0783 vn 0.0000 -0.8944 0.4472 vn 0.3423 -0.8263 0.4472 vn -0.3423 -0.8263 0.4472 @@ -1026,626 +4861,1483 @@ vn 0.7559 -0.5345 0.3780 vn -0.5345 0.7559 0.3780 vn -0.0945 0.8431 0.5293 vn 0.8431 -0.0945 0.5294 +vn -0.7311 0.6303 -0.2611 +vn -0.9947 -0.0948 0.0393 +vn -0.9973 -0.0609 0.0399 +vn -0.7430 0.5190 -0.4226 +vn -0.6333 -0.7150 0.2962 +vn -0.0000 -0.7690 0.6392 +vn -0.6721 -0.5735 0.4683 +vn 0.6333 -0.7150 0.2962 +vn 0.9947 -0.0948 0.0393 +vn 0.9973 -0.0609 0.0399 +vn 0.6721 -0.5735 0.4683 +vn 0.7311 0.6303 -0.2611 +vn 0.7430 0.5190 -0.4226 +vn -0.0000 0.7779 -0.6284 +vn 0.9989 -0.0183 0.0441 +vn 0.6841 -0.2791 0.6739 +vn -0.6840 -0.2791 0.6739 +vn -0.9989 -0.0183 0.0441 +vn -0.7317 0.2608 -0.6297 +vn 0.7317 0.2608 -0.6297 +vn 0.6841 0.0000 0.7294 +vn -0.6840 0.0000 0.7294 +vn 0.6770 0.1436 0.7219 +vn -0.0000 0.1951 0.9808 +vn -0.6770 0.1436 0.7219 +vn -0.9988 0.0095 0.0477 +vn -0.7251 -0.1344 -0.6754 +vn -0.0000 -0.1951 -0.9808 +vn 0.7251 -0.1344 -0.6754 +vn 0.9988 0.0095 0.0477 +vn -0.8985 -0.3215 -0.2988 +vn -0.3468 -0.8373 -0.4226 +vn 0.4080 -0.8627 -0.2988 +vn 0.8985 0.3215 0.2988 +vn 0.3468 0.8373 0.4226 +vn -0.4080 0.8627 0.2988 +vn -0.6303 -0.7311 -0.2611 +vn 0.0948 -0.9947 0.0393 +vn 0.0609 -0.9973 0.0399 +vn -0.5190 -0.7430 -0.4226 +vn 0.7150 -0.6333 0.2962 +vn 0.9239 -0.0000 0.3827 +vn 0.7690 -0.0000 0.6392 +vn 0.5735 -0.6721 0.4683 +vn 0.7150 0.6333 0.2962 +vn 0.0948 0.9947 0.0393 +vn 0.0609 0.9973 0.0399 +vn 0.5735 0.6721 0.4683 +vn -0.6303 0.7311 -0.2611 +vn -0.5190 0.7430 -0.4226 +vn -0.9239 -0.0000 -0.3827 +vn -0.7779 -0.0000 -0.6284 +vn 0.0183 0.9989 0.0441 +vn 0.2791 0.6841 0.6739 +vn 0.3827 -0.0000 0.9239 +vn 0.2791 -0.6840 0.6739 +vn 0.0183 -0.9989 0.0441 +vn -0.2608 -0.7317 -0.6297 +vn -0.3827 -0.0000 -0.9239 +vn -0.2608 0.7317 -0.6297 +vn 0.0000 -0.7317 -0.6816 +vn 0.0000 0.7317 -0.6816 +vn 0.0000 0.9989 0.0477 +vn 0.0000 0.6841 0.7294 +vn -0.0000 -0.6840 0.7294 +vn -0.0000 -0.9989 0.0477 +vn -0.1436 0.6770 0.7219 +vn -0.1951 -0.0000 0.9808 +vn -0.1436 -0.6770 0.7219 +vn -0.0095 -0.9988 0.0477 +vn 0.1344 -0.7251 -0.6754 +vn 0.1951 -0.0000 -0.9808 +vn 0.1344 0.7251 -0.6754 +vn -0.0095 0.9988 0.0477 +vn 0.3215 -0.8985 -0.2988 +vn 0.8373 -0.3468 -0.4226 +vn 0.8627 0.4080 -0.2988 +vn -0.3215 0.8985 0.2988 +vn -0.8373 0.3468 0.4226 +vn -0.8627 -0.4080 0.2988 +vn 0.6303 0.7311 -0.2611 +vn -0.0948 0.9947 0.0393 +vn -0.0609 0.9973 0.0399 +vn 0.5190 0.7430 -0.4226 +vn -0.7150 0.6333 0.2962 +vn -0.9239 0.0000 0.3827 +vn -0.7690 0.0000 0.6392 +vn -0.5735 0.6721 0.4683 +vn -0.7150 -0.6333 0.2962 +vn -0.0948 -0.9947 0.0393 +vn -0.0609 -0.9973 0.0399 +vn -0.5735 -0.6721 0.4683 +vn 0.6303 -0.7311 -0.2611 +vn 0.5190 -0.7430 -0.4226 +vn 0.9239 0.0000 -0.3827 +vn 0.7779 0.0000 -0.6284 +vn -0.0183 -0.9989 0.0441 +vn -0.2791 -0.6841 0.6739 +vn -0.3827 0.0000 0.9239 +vn -0.2791 0.6840 0.6739 +vn -0.0183 0.9989 0.0441 +vn 0.2608 0.7317 -0.6297 +vn 0.3827 0.0000 -0.9239 +vn 0.2608 -0.7317 -0.6297 +vn 0.0000 -0.6841 0.7294 +vn 0.0000 0.6840 0.7294 +vn 0.1436 -0.6770 0.7219 +vn 0.1951 0.0000 0.9808 +vn 0.1436 0.6770 0.7219 +vn 0.0095 0.9988 0.0477 +vn -0.1344 0.7251 -0.6754 +vn -0.1951 0.0000 -0.9808 +vn -0.1344 -0.7251 -0.6754 +vn 0.0095 -0.9988 0.0477 +vn -0.3215 0.8985 -0.2988 +vn -0.8373 0.3468 -0.4226 +vn -0.8627 -0.4080 -0.2988 +vn 0.3215 -0.8985 0.2988 +vn 0.8373 -0.3468 0.4226 +vn 0.8627 0.4080 0.2988 +vn 0.0712 -0.9627 -0.2611 +vn 0.7704 -0.6363 0.0393 +vn 0.7483 -0.6622 0.0399 +vn 0.1584 -0.8924 -0.4226 +vn 0.9534 0.0578 0.2962 +vn 0.6533 0.6533 0.3827 +vn 0.5438 0.5438 0.6392 +vn 0.8808 -0.0697 0.4683 +vn 0.0578 0.9534 0.2962 +vn -0.6364 0.7704 0.0393 +vn -0.6622 0.7483 0.0399 +vn -0.0697 0.8808 0.4683 +vn -0.9627 0.0712 -0.2611 +vn -0.8924 0.1584 -0.4226 +vn -0.6533 -0.6533 -0.3827 +vn -0.5501 -0.5501 -0.6284 +vn -0.6934 0.7192 0.0441 +vn -0.2863 0.6811 0.6739 +vn 0.6811 -0.2863 0.6739 +vn 0.7192 -0.6934 0.0441 +vn 0.3330 -0.7018 -0.6297 +vn -0.2706 -0.2706 -0.9239 +vn -0.7018 0.3330 -0.6297 +vn 0.5174 -0.5174 -0.6816 +vn -0.5174 0.5174 -0.6816 +vn -0.7063 0.7063 0.0477 +vn -0.4837 0.4837 0.7294 +vn 0.4837 -0.4837 0.7294 +vn 0.7063 -0.7063 0.0477 +vn -0.5802 0.3772 0.7219 +vn -0.1379 -0.1379 0.9808 +vn 0.3772 -0.5802 0.7219 +vn 0.6996 -0.7130 0.0477 +vn 0.6077 -0.4177 -0.6754 +vn 0.1380 0.1380 -0.9808 +vn -0.4177 0.6077 -0.6754 +vn -0.7130 0.6996 0.0477 +vn 0.8627 -0.4080 -0.2988 +vn 0.8373 0.3468 -0.4226 +vn 0.3215 0.8985 -0.2988 +vn -0.8627 0.4080 0.2988 +vn -0.8373 -0.3468 0.4226 +vn -0.3215 -0.8985 0.2988 +vn -0.0712 0.9627 -0.2611 +vn -0.7704 0.6363 0.0393 +vn -0.7483 0.6622 0.0399 +vn -0.1584 0.8924 -0.4226 +vn -0.9534 -0.0578 0.2962 +vn -0.6533 -0.6533 0.3827 +vn -0.5438 -0.5438 0.6392 +vn -0.8808 0.0697 0.4683 +vn -0.0578 -0.9534 0.2962 +vn 0.6364 -0.7704 0.0393 +vn 0.6622 -0.7483 0.0399 +vn 0.0697 -0.8808 0.4683 +vn 0.9627 -0.0712 -0.2611 +vn 0.8924 -0.1584 -0.4226 +vn 0.6533 0.6533 -0.3827 +vn 0.5501 0.5501 -0.6284 +vn 0.6934 -0.7192 0.0441 +vn 0.2863 -0.6811 0.6739 +vn -0.2706 -0.2706 0.9239 +vn -0.6811 0.2863 0.6739 +vn -0.7192 0.6934 0.0441 +vn -0.3330 0.7018 -0.6297 +vn 0.2706 0.2706 -0.9239 +vn 0.7018 -0.3330 -0.6297 +vn 0.5802 -0.3772 0.7219 +vn 0.1379 0.1379 0.9808 +vn -0.3772 0.5802 0.7219 +vn -0.6996 0.7130 0.0477 +vn -0.6077 0.4177 -0.6754 +vn -0.1380 -0.1380 -0.9808 +vn 0.4177 -0.6077 -0.6754 +vn 0.7130 -0.6996 0.0477 +vn -0.8627 0.4080 -0.2988 +vn -0.8373 -0.3468 -0.4226 +vn -0.3215 -0.8985 -0.2988 +vn 0.8627 -0.4080 0.2988 +vn 0.8373 0.3468 0.4226 +vn 0.3215 0.8985 0.2988 +vn -0.9627 -0.0712 -0.2611 +vn -0.6363 -0.7704 0.0393 +vn -0.6622 -0.7483 0.0399 +vn -0.8924 -0.1584 -0.4226 +vn 0.0578 -0.9534 0.2962 +vn 0.6533 -0.6533 0.3827 +vn 0.5438 -0.5438 0.6392 +vn -0.0697 -0.8808 0.4683 +vn 0.9534 -0.0578 0.2962 +vn 0.7704 0.6364 0.0393 +vn 0.7483 0.6622 0.0399 +vn 0.8808 0.0697 0.4683 +vn 0.0712 0.9627 -0.2611 +vn 0.1584 0.8924 -0.4226 +vn -0.6533 0.6533 -0.3827 +vn -0.5501 0.5501 -0.6284 +vn 0.7192 0.6934 0.0441 +vn 0.6811 0.2863 0.6739 +vn 0.2706 -0.2706 0.9239 +vn -0.2863 -0.6811 0.6739 +vn -0.6934 -0.7192 0.0441 +vn -0.7018 -0.3330 -0.6297 +vn -0.2706 0.2706 -0.9239 +vn 0.3330 0.7018 -0.6297 +vn -0.5174 -0.5174 -0.6816 +vn 0.5174 0.5174 -0.6816 +vn 0.7063 0.7063 0.0477 +vn 0.4837 0.4837 0.7294 +vn -0.4837 -0.4837 0.7294 +vn -0.7063 -0.7063 0.0477 +vn 0.3772 0.5802 0.7219 +vn -0.1379 0.1379 0.9808 +vn -0.5802 -0.3772 0.7219 +vn -0.7130 -0.6996 0.0477 +vn -0.4177 -0.6077 -0.6754 +vn 0.1380 -0.1380 -0.9808 +vn 0.6077 0.4177 -0.6754 +vn 0.6996 0.7130 0.0477 +vn -0.4080 -0.8627 -0.2988 +vn 0.3468 -0.8373 -0.4226 +vn 0.8985 -0.3215 -0.2988 +vn 0.4080 0.8627 0.2988 +vn -0.3468 0.8373 0.4226 +vn -0.8985 0.3215 0.2988 +vn 0.9627 0.0712 -0.2611 +vn 0.6363 0.7704 0.0393 +vn 0.6622 0.7483 0.0399 +vn 0.8924 0.1584 -0.4226 +vn -0.0578 0.9534 0.2962 +vn -0.6533 0.6533 0.3827 +vn -0.5438 0.5438 0.6392 +vn 0.0697 0.8808 0.4683 +vn -0.9534 0.0578 0.2962 +vn -0.7704 -0.6363 0.0393 +vn -0.7483 -0.6622 0.0399 +vn -0.8808 -0.0697 0.4683 +vn -0.0712 -0.9627 -0.2611 +vn -0.1584 -0.8924 -0.4226 +vn 0.6533 -0.6533 -0.3827 +vn 0.5501 -0.5501 -0.6284 +vn -0.7192 -0.6934 0.0441 +vn -0.6811 -0.2863 0.6739 +vn 0.2863 0.6811 0.6739 +vn 0.6934 0.7192 0.0441 +vn 0.7018 0.3330 -0.6297 +vn 0.2706 -0.2706 -0.9239 +vn -0.3330 -0.7018 -0.6297 +vn -0.3772 -0.5802 0.7219 +vn 0.1379 -0.1379 0.9808 +vn 0.5802 0.3772 0.7219 +vn 0.7130 0.6996 0.0477 +vn 0.4177 0.6077 -0.6754 +vn -0.1380 0.1380 -0.9808 +vn -0.6077 -0.4177 -0.6754 +vn -0.6996 -0.7130 0.0477 +vn 0.4080 0.8627 -0.2988 +vn -0.3468 0.8373 -0.4226 +vn -0.8985 0.3215 -0.2988 +vn -0.4080 -0.8627 0.2988 +vn 0.3468 -0.8373 0.4226 +vn 0.8985 -0.3215 0.2988 s off -f 1//1 2//1 3//1 4//1 -f 5//2 6//2 7//2 8//2 -f 9//3 10//3 11//3 12//3 -f 13//4 14//4 15//4 16//4 -f 6//5 13//5 16//5 7//5 -f 3//6 15//6 14//6 4//6 -f 2//7 1//7 12//7 11//7 -f 5//8 8//8 10//8 9//8 -f 14//9 13//9 17//9 18//9 19//9 -f 13//9 6//9 20//9 21//9 17//9 -f 6//9 5//9 22//9 23//9 20//9 -f 5//9 9//9 24//9 25//9 22//9 -f 9//9 12//9 26//9 27//9 24//9 -f 12//9 1//9 28//9 29//9 26//9 -f 1//9 4//9 30//9 31//9 28//9 -f 4//9 14//9 19//9 32//9 30//9 -f 33//3 34//3 35//3 36//3 37//3 -f 38//6 39//6 836//6 40//6 41//6 42//6 43//6 -f 44//4 45//4 42//4 41//4 46//4 47//4 -f 48//1 49//1 38//1 43//1 -f 37//10 36//10 50//10 51//10 49//10 48//10 -f 38//11 49//11 51//11 39//11 -f 52//2 53//2 44//2 47//2 -f 54//3 55//3 56//3 57//3 -f 58//3 57//3 56//3 35//3 34//3 -f 55//12 54//12 59//12 60//12 -f 61//3 62//3 63//3 64//3 -f 65//3 66//3 67//3 68//3 -f 69//3 70//3 71//3 72//3 -f 73//3 74//3 75//3 76//3 -f 77//3 78//3 79//3 80//3 -f 73//3 77//3 80//3 61//3 64//3 65//3 68//3 69//3 72//3 74//3 -f 76//3 75//3 71//3 70//3 67//3 66//3 63//3 62//3 79//3 78//3 -f 70//1 69//1 81//1 82//1 -f 69//9 68//9 83//9 81//9 -f 64//2 63//2 84//2 85//2 -f 65//9 64//9 85//9 86//9 -f 87//3 88//3 89//3 90//3 -f 83//3 91//3 82//3 81//3 -f 86//3 85//3 84//3 92//3 -f 93//3 94//3 95//3 96//3 -f 74//9 72//9 88//9 87//9 -f 72//2 71//2 89//2 88//2 -f 71//13 75//13 90//13 89//13 -f 66//1 65//1 86//1 92//1 -f 67//13 70//13 82//13 91//13 -f 68//2 67//2 91//2 83//2 -f 63//13 66//13 92//13 84//13 -f 75//1 74//1 87//1 90//1 -f 79//13 62//13 95//13 94//13 -f 80//2 79//2 94//2 93//2 -f 61//9 80//9 93//9 96//9 -f 62//1 61//1 96//1 95//1 -f 46//13 41//13 97//13 98//13 -f 41//13 40//13 97//13 -f 54//13 57//13 99//13 100//13 -f 54//13 100//13 59//13 -f 47//14 46//14 98//14 52//14 -f 101//14 99//14 57//14 58//14 -f 102//2 101//2 58//2 34//2 -f 103//15 104//15 105//15 106//15 -f 104//15 44//15 53//15 105//15 -f 103//15 106//15 102//15 34//15 -f 107//16 108//16 109//16 110//16 -f 111//16 112//16 113//16 114//16 -f 115//16 116//16 117//16 118//16 -f 116//16 119//16 120//16 117//16 -f 121//16 107//16 110//16 122//16 -f 108//16 111//16 114//16 109//16 -f 112//16 115//16 118//16 113//16 -f 119//16 121//16 122//16 120//16 -f 123//16 124//16 125//16 126//16 127//16 128//16 129//16 130//16 -f 131//16 132//16 133//16 134//16 -f 132//16 135//16 136//16 133//16 -f 135//17 137//17 138//17 136//17 -f 137//17 139//17 140//17 138//17 -f 139//16 141//16 142//16 140//16 -f 141//17 143//17 144//17 142//17 -f 143//17 145//17 146//17 144//17 -f 145//17 131//17 134//17 146//17 -f 147//18 148//18 149//18 150//18 -f 151//19 152//19 150//19 149//19 -f 153//20 151//20 149//20 148//20 -f 154//21 153//21 148//21 147//21 -f 152//22 154//22 147//22 150//22 -f 155//9 156//9 157//9 158//9 -f 159//9 160//9 161//9 162//9 163//9 164//9 165//9 166//9 -f 167//9 155//9 158//9 168//9 -f 169//9 167//9 168//9 170//9 -f 171//9 169//9 170//9 172//9 -f 173//9 171//9 172//9 174//9 -f 175//9 173//9 174//9 176//9 -f 177//9 175//9 176//9 178//9 -f 156//9 177//9 178//9 157//9 -f 179//9 180//9 181//9 182//9 -f 183//9 184//9 180//9 179//9 -f 185//9 186//9 184//9 183//9 -f 187//9 188//9 186//9 185//9 -f 189//9 190//9 188//9 187//9 -f 191//9 192//9 190//9 189//9 -f 193//9 194//9 192//9 191//9 -f 182//9 181//9 194//9 193//9 -f 195//9 196//9 197//9 198//9 199//9 200//9 201//9 202//9 203//9 204//9 205//9 206//9 207//9 208//9 209//9 210//9 -f 16//13 211//13 212//13 213//13 7//13 -f 15//13 214//13 215//13 211//13 16//13 -f 3//13 216//13 217//13 214//13 15//13 -f 2//13 218//13 219//13 216//13 3//13 -f 11//13 220//13 221//13 218//13 2//13 -f 10//13 222//13 223//13 220//13 11//13 -f 8//13 224//13 225//13 222//13 10//13 -f 7//13 213//13 226//13 224//13 8//13 -f 227//9 228//9 229//9 230//9 231//9 -f 45//9 227//9 231//9 232//9 233//9 -f 42//9 45//9 233//9 234//9 235//9 -f 43//9 42//9 235//9 236//9 237//9 -f 48//9 43//9 237//9 238//9 239//9 -f 37//9 48//9 239//9 240//9 241//9 -f 33//9 37//9 241//9 242//9 243//9 -f 228//9 33//9 243//9 244//9 229//9 -f 245//3 246//3 247//3 248//3 249//3 250//3 251//3 252//3 -f 76//9 78//9 253//9 254//9 -f 78//1 77//1 255//1 253//1 -f 77//13 73//13 256//13 255//13 -f 73//2 76//2 254//2 256//2 -f 257//4 258//4 259//4 260//4 261//4 262//4 263//4 264//4 -f 246//23 264//23 263//23 247//23 -f 248//24 262//24 261//24 249//24 -f 252//25 258//25 257//25 245//25 -f 247//26 263//26 262//26 248//26 -f 249//27 261//27 260//27 250//27 -f 251//28 259//28 258//28 252//28 -f 245//29 257//29 264//29 246//29 -f 265//9 266//9 267//9 268//9 -f 269//13 270//13 271//13 272//13 -f 267//6 266//6 272//6 271//6 -f 265//8 268//8 270//8 269//8 -f 268//5 267//5 271//5 270//5 -f 266//7 265//7 269//7 272//7 -f 273//9 274//9 275//9 276//9 -f 277//13 278//13 279//13 280//13 -f 275//8 274//8 280//8 279//8 -f 273//6 276//6 278//6 277//6 -f 276//7 275//7 279//7 278//7 -f 274//5 273//5 277//5 280//5 -f 281//9 282//9 283//9 284//9 -f 285//13 286//13 287//13 288//13 -f 283//7 282//7 288//7 287//7 -f 281//5 284//5 286//5 285//5 -f 284//6 283//6 287//6 286//6 -f 282//8 281//8 285//8 288//8 -f 289//9 290//9 291//9 292//9 -f 293//13 294//13 295//13 296//13 -f 291//5 290//5 296//5 295//5 -f 289//7 292//7 294//7 293//7 -f 292//8 291//8 295//8 294//8 -f 290//6 289//6 293//6 296//6 -f 297//9 298//9 299//9 300//9 -f 301//30 302//30 303//30 304//30 -f 299//6 298//6 304//6 303//6 -f 297//8 300//8 302//8 301//8 -f 300//5 299//5 303//5 302//5 -f 298//7 297//7 301//7 304//7 -f 102//6 106//6 305//6 306//6 -f 105//7 53//7 307//7 308//7 -f 106//1 105//1 308//1 305//1 -f 305//15 308//15 307//15 306//15 -f 309//4 310//4 311//4 312//4 -f 313//3 314//3 315//3 316//3 -f 312//31 311//31 314//31 313//31 317//31 318//31 -f 318//32 317//32 319//32 320//32 -f 313//33 316//33 319//33 317//33 -f 309//34 312//34 318//34 320//34 -f 39//1 51//1 50//1 836//1 -f 321//35 322//35 323//35 324//35 -f 325//4 326//4 327//4 323//4 322//4 328//4 -f 324//25 323//25 327//25 329//25 -f 329//36 327//36 326//36 330//36 -f 330//3 331//3 332//3 321//3 324//3 329//3 -f 333//1 334//1 335//1 336//1 -f 335//4 334//4 337//4 338//4 -f 333//3 336//3 339//3 340//3 -f 341//13 342//13 343//13 344//13 -f 345//4 346//4 344//4 343//4 -f 347//3 348//3 342//3 341//3 -f 348//2 345//2 343//2 342//2 -f 346//1 347//1 341//1 344//1 -f 349//13 350//13 351//13 352//13 -f 353//1 354//1 352//1 351//1 -f 355//2 356//2 350//2 349//2 -f 356//4 353//4 351//4 350//4 -f 354//3 355//3 349//3 352//3 -f 357//1 358//1 359//1 360//1 -f 361//37 362//37 363//37 364//37 -f 365//38 366//38 367//38 368//38 -f 360//39 359//39 366//39 365//39 -f 364//40 363//40 358//40 357//40 -f 368//2 367//2 362//2 361//2 -f 368//4 361//4 364//4 357//4 360//4 365//4 -f 369//2 370//2 371//2 372//2 -f 373//1 374//1 375//1 376//1 -f 370//37 377//37 378//37 371//37 -f 379//38 369//38 372//38 380//38 -f 374//39 379//39 380//39 375//39 -f 377//40 373//40 376//40 378//40 -f 376//3 375//3 381//3 382//3 -f 371//3 378//3 383//3 384//3 -f 380//3 372//3 385//3 386//3 -f 375//3 380//3 386//3 381//3 -f 378//3 376//3 382//3 383//3 -f 372//3 371//3 384//3 385//3 -f 381//39 386//39 387//39 388//39 -f 383//40 382//40 389//40 390//40 -f 385//2 384//2 391//2 392//2 -f 382//1 381//1 388//1 389//1 -f 384//37 383//37 390//37 391//37 -f 386//38 385//38 392//38 387//38 -f 391//4 390//4 393//4 394//4 -f 392//4 391//4 394//4 395//4 -f 387//4 392//4 395//4 396//4 -f 388//4 387//4 396//4 397//4 -f 389//4 388//4 397//4 398//4 -f 390//4 389//4 398//4 393//4 -f 393//40 398//40 399//40 400//40 -f 395//2 394//2 401//2 402//2 -f 398//1 397//1 403//1 399//1 -f 394//37 393//37 400//37 401//37 -f 396//38 395//38 402//38 404//38 -f 397//39 396//39 404//39 403//39 -f 401//3 400//3 405//3 406//3 -f 402//3 401//3 406//3 407//3 -f 404//3 402//3 407//3 408//3 -f 403//3 404//3 408//3 409//3 -f 399//3 403//3 409//3 410//3 -f 400//3 399//3 410//3 405//3 -f 407//2 406//2 411//2 412//2 -f 410//1 409//1 413//1 414//1 -f 406//37 405//37 415//37 411//37 -f 408//38 407//38 412//38 416//38 -f 409//39 408//39 416//39 413//39 -f 405//40 410//40 414//40 415//40 -f 416//41 412//41 417//41 418//41 -f 413//42 416//42 418//42 419//42 -f 415//43 414//43 420//43 421//43 -f 412//44 411//44 422//44 417//44 -f 414//45 413//45 419//45 420//45 -f 411//46 415//46 421//46 422//46 -f 417//4 422//4 421//4 420//4 419//4 418//4 -f 423//2 424//2 425//2 426//2 -f 427//3 428//3 429//3 430//3 431//3 -f 426//13 425//13 432//13 433//13 -f 425//4 424//4 434//4 432//4 -f 423//3 426//3 433//3 435//3 -f 436//47 437//47 438//47 439//47 -f 440//3 436//3 439//3 441//3 -f 442//11 440//11 441//11 443//11 -f 437//4 442//4 443//4 438//4 -f 428//48 427//48 444//48 445//48 -f 431//13 430//13 446//13 447//13 -f 445//4 444//4 447//4 446//4 448//4 -f 428//47 445//47 448//47 429//47 -f 429//49 448//49 446//49 430//49 -f 444//11 427//11 431//11 447//11 -f 449//47 450//47 451//47 452//47 -f 453//4 454//4 451//4 450//4 -f 455//3 456//3 449//3 452//3 -f 454//49 455//49 452//49 451//49 -f 456//48 453//48 450//48 449//48 -f 457//31 458//31 459//31 460//31 461//31 462//31 463//31 464//31 465//31 466//31 467//31 468//31 -f 458//3 469//3 470//3 471//3 -f 472//50 473//50 462//50 474//50 -f 462//31 461//31 475//31 474//31 -f 461//31 460//31 476//31 475//31 -f 460//31 459//31 477//31 476//31 -f 471//31 477//31 459//31 458//31 -f 469//51 478//51 479//51 470//51 -f 480//31 481//31 482//31 483//31 484//31 485//31 486//31 487//31 488//31 489//31 490//31 491//31 -f 227//2 104//2 103//2 228//2 -f 492//8 493//8 494//8 495//8 -f 33//8 228//8 496//8 497//8 -f 103//8 34//8 498//8 499//8 -f 33//8 497//8 493//8 492//8 498//8 34//8 -f 228//8 103//8 499//8 495//8 494//8 496//8 -f 45//5 500//5 501//5 227//5 -f 44//5 502//5 500//5 45//5 -f 44//5 104//5 503//5 502//5 -f 227//5 501//5 503//5 104//5 -f 502//52 503//52 504//52 505//52 -f 498//5 492//5 506//5 507//5 -f 493//53 508//53 509//53 494//53 -f 510//8 507//8 506//8 511//8 -f 496//13 512//13 513//13 497//13 -f 514//5 505//5 504//5 515//5 -f 492//54 495//54 511//54 506//54 -f 497//5 513//5 508//5 493//5 -f 499//55 498//55 507//55 510//55 -f 495//7 499//7 510//7 511//7 -f 515//6 504//6 503//6 501//6 -f 505//8 514//8 500//8 502//8 -f 516//3 517//3 518//3 519//3 -f 517//56 520//56 521//56 518//56 -f 522//4 523//4 524//4 525//4 -f 526//57 516//57 519//57 527//57 -f 525//4 524//4 528//4 529//4 -f 518//58 521//58 530//58 531//58 -f 526//4 520//4 532//4 -f 532//49 533//49 516//49 526//49 -f 533//3 517//3 516//3 -f 523//4 522//4 534//4 -f 534//49 535//49 536//49 523//49 -f 535//3 537//3 536//3 -f 538//13 539//13 533//13 532//13 -f 540//9 541//9 520//9 517//9 -f 542//4 543//4 534//4 522//4 -f 544//3 545//3 537//3 535//3 -f 539//3 540//3 517//3 533//3 -f 543//13 544//13 535//13 534//13 -f 545//9 542//9 522//9 537//9 -f 541//4 538//4 532//4 520//4 -f 537//56 522//56 525//56 546//56 -f 520//4 526//4 527//4 521//4 -f 547//2 548//2 549//2 550//2 -f 509//8 508//8 513//8 512//8 -f 494//7 509//7 512//7 496//7 -f 514//13 515//13 501//13 500//13 -f 524//59 551//59 552//59 528//59 -f 551//3 546//3 553//3 552//3 -f 519//3 518//3 531//3 554//3 -f 546//58 525//58 529//58 553//58 -f 521//4 527//4 555//4 530//4 -f 527//59 519//59 554//59 555//59 -f 536//3 537//3 546//3 551//3 -f 523//57 536//57 551//57 524//57 -f 556//2 557//2 558//2 559//2 -f 559//60 558//60 560//60 561//60 -f 557//61 556//61 562//61 563//61 -f 558//62 557//62 563//62 560//62 -f 556//63 559//63 561//63 562//63 -f 564//39 565//39 566//39 567//39 -f 548//9 568//9 569//9 549//9 -f 567//1 566//1 570//1 571//1 -f 568//1 572//1 573//1 569//1 -f 571//40 570//40 574//40 575//40 -f 572//13 547//13 550//13 573//13 -f 575//37 574//37 576//37 577//37 -f 566//4 565//4 578//4 576//4 574//4 570//4 -f 548//3 547//3 572//3 568//3 -f 577//2 576//2 578//2 579//2 -f 579//38 578//38 565//38 564//38 -f 564//3 567//3 571//3 575//3 577//3 579//3 -f 569//6 573//6 580//6 581//6 -f 569//9 581//9 549//9 -f 550//13 580//13 573//13 -f 580//13 550//13 582//13 583//13 -f 583//1 582//1 584//1 585//1 -f 581//4 580//4 583//4 586//4 -f 549//9 581//9 586//9 587//9 -f 550//3 549//3 587//3 582//3 -f 583//4 588//4 586//4 -f 587//3 589//3 582//3 -f 586//47 588//47 589//47 587//47 -f 590//57 591//57 592//57 593//57 -f 588//4 583//4 585//4 591//4 -f 589//2 588//2 591//2 590//2 -f 582//3 589//3 590//3 584//3 -f 594//4 595//4 592//4 -f 584//3 590//3 593//3 596//3 -f 585//56 584//56 596//56 594//56 -f 591//4 585//4 594//4 592//4 -f 592//49 595//49 597//49 593//49 -f 596//3 597//3 598//3 599//3 -f 596//3 593//3 597//3 -f 600//9 599//9 601//9 602//9 -f 594//9 596//9 599//9 603//9 -f 595//4 594//4 603//4 604//4 -f 597//13 595//13 604//13 598//13 -f 604//13 605//13 598//13 -f 603//6 600//6 605//6 604//6 -f 599//9 600//9 603//9 -f 599//2 598//2 606//2 601//2 -f 598//13 605//13 607//13 606//13 -f 605//1 600//1 602//1 607//1 +f 227/323/124 228/324/124 229/325/124 230/326/124 +f 231/327/125 232/328/125 233/329/125 234/330/125 +f 235/331/126 236/332/126 237/333/126 238/334/126 +f 239/335/127 240/336/127 241/337/127 242/338/127 +f 232/328/128 239/335/128 242/338/128 233/329/128 +f 229/325/129 241/337/129 240/336/129 230/326/129 +f 228/339/130 227/340/130 238/334/130 237/333/130 +f 231/327/131 234/330/131 236/332/131 235/331/131 +f 240/341/132 239/342/132 243/343/132 244/344/132 245/345/132 +f 239/342/132 232/346/132 246/347/132 247/348/132 243/343/132 +f 232/346/132 231/349/132 248/350/132 249/351/132 246/347/132 +f 231/349/132 235/352/132 250/353/132 251/354/132 248/350/132 +f 235/352/132 238/355/132 252/356/132 253/357/132 250/353/132 +f 238/355/132 227/358/132 254/359/132 255/360/132 252/356/132 +f 227/358/132 230/361/132 256/362/132 257/363/132 254/359/132 +f 230/361/132 240/341/132 245/345/132 258/364/132 256/362/132 +f 259/365/126 260/366/126 261/367/126 262/368/126 263/369/126 +f 264/370/129 265/371/129 1051/372/129 266/373/129 267/374/129 268/375/129 269/376/129 +f 270/377/127 271/378/127 268/375/127 267/374/127 272/379/127 273/380/127 +f 274/381/124 275/382/124 264/370/124 269/376/124 +f 263/369/133 262/368/133 276/383/133 277/384/133 275/385/133 274/386/133 +f 264/387/134 275/388/134 277/389/134 265/390/134 +f 278/391/125 279/392/125 270/377/125 273/380/125 +f 280/393/126 281/394/126 282/395/126 283/396/126 +f 284/397/126 283/396/126 282/395/126 261/367/126 260/366/126 +f 281/394/135 280/393/135 285/398/135 286/399/135 +f 287/400/126 288/401/126 289/402/126 290/403/126 +f 291/404/126 292/405/126 293/406/126 294/407/126 +f 295/408/126 296/409/126 297/410/126 298/411/126 +f 299/412/126 300/413/126 301/414/126 302/415/126 +f 303/416/126 304/417/126 305/418/126 306/419/126 +f 299/412/126 303/416/126 306/419/126 287/400/126 290/403/126 291/404/126 294/407/126 295/408/126 298/411/126 300/413/126 +f 302/415/126 301/414/126 297/410/126 296/409/126 293/406/126 292/405/126 289/402/126 288/401/126 305/418/126 304/417/126 +f 296/420/124 295/421/124 307/422/124 308/423/124 +f 295/424/132 294/425/132 309/426/132 307/422/132 +f 290/427/125 289/428/125 310/429/125 311/430/125 +f 291/431/132 290/432/132 311/430/132 312/433/132 +f 313/434/126 314/435/126 315/436/126 316/437/126 +f 309/426/126 317/438/126 308/423/126 307/422/126 +f 312/433/126 311/430/126 310/429/126 318/439/126 +f 319/440/126 320/441/126 321/442/126 322/443/126 +f 300/444/132 298/445/132 314/435/132 313/434/132 +f 298/446/125 297/447/125 315/436/125 314/435/125 +f 297/448/136 301/449/136 316/437/136 315/436/136 +f 292/450/124 291/451/124 312/433/124 318/439/124 +f 293/452/136 296/453/136 308/423/136 317/438/136 +f 294/454/125 293/455/125 317/438/125 309/426/125 +f 289/456/136 292/457/136 318/439/136 310/429/136 +f 301/458/124 300/459/124 313/434/124 316/437/124 +f 305/460/136 288/461/136 321/442/136 320/441/136 +f 306/462/125 305/463/125 320/441/125 319/440/125 +f 287/464/132 306/465/132 319/440/132 322/443/132 +f 288/466/124 287/467/124 322/443/124 321/442/124 +f 272/379/136 267/374/136 323/468/136 324/469/136 +f 267/374/136 266/470/136 323/468/136 +f 280/393/136 283/396/136 325/471/136 326/472/136 +f 280/393/136 326/472/136 285/473/136 +f 273/380/137 272/474/137 324/475/137 278/391/137 +f 327/476/137 325/477/137 283/478/137 284/397/137 +f 328/479/125 327/476/125 284/397/125 260/366/125 +f 329/480/138 330/481/138 331/482/138 332/483/138 +f 330/481/138 270/484/138 279/485/138 331/482/138 +f 329/480/138 332/483/138 328/486/138 260/487/138 +f 333/488/139 334/489/139 335/490/139 336/491/139 +f 337/492/139 338/493/139 339/494/139 340/495/139 +f 341/496/139 342/497/139 343/498/139 344/499/139 +f 342/497/139 345/500/139 346/501/139 343/498/139 +f 347/502/139 333/488/139 336/491/139 348/503/139 +f 334/489/139 337/492/139 340/495/139 335/490/139 +f 338/493/139 341/496/139 344/499/139 339/494/139 +f 345/500/139 347/504/139 348/505/139 346/501/139 +f 349/506/139 350/507/139 351/508/139 352/509/139 353/510/139 354/511/139 355/512/139 356/513/139 +f 357/514/139 358/515/139 359/516/139 360/517/139 +f 358/515/139 361/518/139 362/519/139 359/516/139 +f 361/518/140 363/520/140 364/521/140 362/519/140 +f 363/522/140 365/523/140 366/524/140 364/525/140 +f 365/523/139 367/526/139 368/527/139 366/524/139 +f 367/526/140 369/528/140 370/529/140 368/527/140 +f 369/528/140 371/530/140 372/531/140 370/529/140 +f 371/530/140 357/514/140 360/517/140 372/531/140 +f 373/532/141 374/533/141 375/534/141 376/535/141 +f 377/536/142 378/537/142 376/535/142 375/534/142 +f 379/538/143 377/539/143 375/534/143 374/533/143 +f 380/540/144 379/541/144 374/533/144 373/532/144 +f 378/542/145 380/543/145 373/532/145 376/535/145 +f 381/544/132 382/545/132 383/546/132 384/547/132 +f 385/548/132 386/549/132 387/550/132 388/551/132 389/552/132 390/553/132 391/554/132 392/555/132 +f 393/556/132 381/544/132 384/557/132 394/558/132 +f 395/559/132 393/556/132 394/560/132 396/561/132 +f 397/562/132 395/559/132 396/563/132 398/564/132 +f 399/565/132 397/566/132 398/567/132 400/568/132 +f 401/569/132 399/565/132 400/570/132 402/571/132 +f 403/572/132 401/569/132 402/573/132 404/574/132 +f 382/545/132 403/572/132 404/575/132 383/576/132 +f 405/577/132 406/578/132 407/579/132 408/580/132 +f 409/581/132 410/582/132 406/583/132 405/584/132 +f 411/585/132 412/586/132 410/587/132 409/588/132 +f 413/589/132 414/590/132 412/591/132 411/592/132 +f 415/593/132 416/594/132 414/595/132 413/596/132 +f 417/597/132 418/598/132 416/599/132 415/600/132 +f 419/601/132 420/602/132 418/603/132 417/604/132 +f 408/605/132 407/606/132 420/607/132 419/608/132 +f 421/609/132 422/610/132 423/611/132 424/612/132 425/613/132 426/614/132 427/615/132 428/616/132 429/617/132 430/618/132 431/619/132 432/620/132 433/621/132 434/622/132 435/623/132 436/624/132 +f 242/625/136 437/626/136 438/627/136 439/628/136 233/629/136 +f 241/630/136 440/631/136 441/632/136 437/626/136 242/625/136 +f 229/633/136 442/634/136 443/635/136 440/631/136 241/630/136 +f 228/636/136 444/637/136 445/638/136 442/634/136 229/633/136 +f 237/639/136 446/640/136 447/641/136 444/637/136 228/636/136 +f 236/642/136 448/643/136 449/644/136 446/640/136 237/639/136 +f 234/645/136 450/646/136 451/647/136 448/643/136 236/642/136 +f 233/629/136 439/628/136 452/648/136 450/646/136 234/645/136 +f 453/649/132 454/650/132 455/651/132 456/652/132 457/653/132 +f 271/654/132 453/649/132 457/653/132 458/655/132 459/656/132 +f 268/657/132 271/654/132 459/656/132 460/658/132 461/659/132 +f 269/660/132 268/657/132 461/659/132 462/661/132 463/662/132 +f 274/663/132 269/660/132 463/662/132 464/664/132 465/665/132 +f 263/666/132 274/663/132 465/665/132 466/667/132 467/668/132 +f 259/669/132 263/666/132 467/668/132 468/670/132 469/671/132 +f 454/650/132 259/669/132 469/671/132 470/672/132 455/651/132 +f 471/673/126 472/674/126 473/675/126 474/676/126 475/677/126 476/678/126 477/679/126 478/680/126 +f 302/415/132 304/417/132 479/681/132 480/682/132 +f 304/417/124 303/416/124 481/683/124 479/684/124 +f 303/416/136 299/412/136 482/685/136 481/686/136 +f 299/412/125 302/415/125 480/687/125 482/688/125 +f 483/689/127 484/690/127 485/691/127 486/692/127 487/693/127 488/694/127 489/695/127 490/696/127 +f 472/697/146 490/698/146 489/699/146 473/700/146 +f 474/701/147 488/702/147 487/703/147 475/704/147 +f 478/705/148 484/706/148 483/707/148 471/708/148 +f 473/700/149 489/699/149 488/702/149 474/701/149 +f 475/704/150 487/703/150 486/709/150 476/710/150 +f 477/711/151 485/712/151 484/706/151 478/705/151 +f 471/708/152 483/707/152 490/698/152 472/697/152 +f 491/713/132 492/714/132 493/715/132 494/716/132 +f 495/717/136 496/718/136 497/719/136 498/720/136 +f 493/715/129 492/721/129 498/722/129 497/719/129 +f 491/723/131 494/716/131 496/718/131 495/724/131 +f 494/716/128 493/715/128 497/719/128 496/718/128 +f 492/721/130 491/725/130 495/726/130 498/722/130 +f 499/727/132 500/728/132 501/729/132 502/730/132 +f 503/731/136 504/732/136 505/733/136 506/734/136 +f 501/729/131 500/735/131 506/736/131 505/733/131 +f 499/737/129 502/730/129 504/732/129 503/738/129 +f 502/730/130 501/729/130 505/733/130 504/732/130 +f 500/739/128 499/737/128 503/738/128 506/740/128 +f 507/741/132 508/742/132 509/743/132 510/744/132 +f 511/745/136 512/746/136 513/747/136 514/748/136 +f 509/743/130 508/749/130 514/750/130 513/747/130 +f 507/751/128 510/744/128 512/746/128 511/752/128 +f 510/744/129 509/743/129 513/747/129 512/746/129 +f 508/749/131 507/753/131 511/754/131 514/750/131 +f 515/755/132 516/756/132 517/757/132 518/758/132 +f 519/759/136 520/760/136 521/761/136 522/762/136 +f 517/757/128 516/763/128 522/764/128 521/761/128 +f 515/765/130 518/758/130 520/760/130 519/766/130 +f 518/758/131 517/757/131 521/761/131 520/760/131 +f 516/767/129 515/765/129 519/766/129 522/768/129 +f 523/769/132 524/770/132 525/771/132 526/772/132 +f 527/773/153 528/774/153 529/775/153 530/776/153 +f 525/771/129 524/777/129 530/778/129 529/779/129 +f 523/780/131 526/772/131 528/774/131 527/773/131 +f 526/772/128 525/771/128 529/779/128 528/774/128 +f 524/777/130 523/781/130 527/782/130 530/778/130 +f 328/783/129 332/784/129 531/785/129 532/786/129 +f 331/787/130 279/788/130 533/789/130 534/790/130 +f 332/791/124 331/792/124 534/793/124 531/794/124 +f 531/795/138 534/796/138 533/789/138 532/786/138 +f 535/797/127 536/798/127 537/799/127 538/800/127 +f 539/801/126 540/802/126 541/803/126 542/804/126 +f 538/800/154 537/799/154 540/802/154 539/801/154 543/805/154 544/806/154 +f 544/806/155 543/805/155 545/807/155 546/808/155 +f 539/809/156 542/810/156 545/807/156 543/805/156 +f 535/811/157 538/812/157 544/806/157 546/808/157 +f 265/390/124 277/389/124 276/813/124 1051/814/124 +f 547/815/158 548/816/158 549/817/158 550/818/158 +f 551/819/127 552/820/127 553/821/127 549/822/127 548/823/127 554/824/127 +f 550/818/148 549/817/148 553/825/148 555/826/148 +f 555/826/159 553/825/159 552/827/159 556/828/159 +f 556/829/126 557/830/126 558/831/126 547/832/126 550/833/126 555/834/126 +f 559/835/124 560/836/124 561/837/124 562/838/124 +f 561/837/127 560/836/127 563/839/127 564/840/127 +f 559/835/126 562/838/126 565/841/126 566/842/126 +f 567/843/136 568/844/136 569/845/136 570/846/136 +f 571/847/127 572/848/127 570/846/127 569/845/127 +f 573/849/126 574/850/126 568/844/126 567/843/126 +f 574/851/125 571/852/125 569/845/125 568/844/125 +f 572/853/124 573/854/124 567/843/124 570/846/124 +f 575/855/136 576/856/136 577/857/136 578/858/136 +f 579/859/124 580/860/124 578/858/124 577/857/124 +f 581/861/125 582/862/125 576/856/125 575/855/125 +f 582/863/127 579/864/127 577/857/127 576/856/127 +f 580/865/126 581/866/126 575/855/126 578/858/126 +f 583/867/124 584/868/124 585/869/124 586/870/124 +f 587/871/160 588/872/160 589/873/160 590/874/160 +f 591/875/161 592/876/161 593/877/161 594/878/161 +f 586/870/162 585/869/162 592/876/162 591/875/162 +f 590/874/163 589/873/163 584/879/163 583/880/163 +f 594/878/125 593/877/125 588/872/125 587/871/125 +f 594/881/127 587/882/127 590/883/127 583/884/127 586/885/127 591/886/127 +f 595/887/125 596/888/125 597/889/125 598/890/125 +f 599/891/124 600/892/124 601/893/124 602/894/124 +f 596/895/160 603/896/160 604/897/160 597/898/160 +f 605/899/161 595/900/161 598/901/161 606/902/161 +f 600/903/162 605/904/162 606/905/162 601/906/162 +f 603/907/163 599/908/163 602/909/163 604/910/163 +f 602/894/126 601/893/126 607/911/126 608/912/126 +f 597/898/126 604/897/126 609/913/126 610/914/126 +f 606/902/126 598/901/126 611/915/126 612/916/126 +f 601/906/126 606/905/126 612/916/126 607/911/126 +f 604/910/126 602/909/126 608/917/126 609/913/126 +f 598/890/126 597/889/126 610/914/126 611/915/126 +f 607/911/162 612/916/162 613/918/162 614/919/162 +f 609/913/163 608/917/163 615/920/163 616/921/163 +f 611/915/125 610/914/125 617/922/125 618/923/125 +f 608/912/124 607/911/124 614/919/124 615/924/124 +f 610/914/160 609/913/160 616/921/160 617/922/160 +f 612/916/161 611/915/161 618/923/161 613/918/161 +f 617/922/127 616/921/127 619/925/127 620/926/127 +f 618/923/127 617/922/127 620/927/127 621/928/127 +f 613/918/127 618/923/127 621/929/127 622/930/127 +f 614/919/127 613/918/127 622/931/127 623/932/127 +f 615/924/127 614/919/127 623/933/127 624/934/127 +f 616/921/127 615/920/127 624/935/127 619/936/127 +f 619/936/163 624/935/163 625/937/163 626/938/163 +f 621/928/125 620/927/125 627/939/125 628/940/125 +f 624/934/124 623/933/124 629/941/124 625/942/124 +f 620/926/160 619/925/160 626/943/160 627/944/160 +f 622/930/161 621/929/161 628/945/161 630/946/161 +f 623/932/162 622/931/162 630/947/162 629/948/162 +f 627/944/126 626/943/126 631/949/126 632/950/126 +f 628/940/126 627/939/126 632/950/126 633/951/126 +f 630/946/126 628/945/126 633/951/126 634/952/126 +f 629/948/126 630/947/126 634/952/126 635/953/126 +f 625/942/126 629/941/126 635/953/126 636/954/126 +f 626/938/126 625/937/126 636/955/126 631/949/126 +f 633/951/125 632/950/125 637/956/125 638/957/125 +f 636/954/124 635/953/124 639/958/124 640/959/124 +f 632/950/160 631/949/160 641/960/160 637/956/160 +f 634/952/161 633/951/161 638/957/161 642/961/161 +f 635/953/162 634/952/162 642/961/162 639/958/162 +f 631/949/163 636/955/163 640/962/163 641/960/163 +f 642/961/164 638/957/164 643/963/164 644/964/164 +f 639/958/165 642/961/165 644/965/165 645/966/165 +f 641/960/166 640/962/166 646/967/166 647/968/166 +f 638/957/167 637/956/167 648/969/167 643/970/167 +f 640/959/168 639/958/168 645/971/168 646/972/168 +f 637/956/169 641/960/169 647/973/169 648/974/169 +f 643/975/127 648/976/127 647/977/127 646/978/127 645/979/127 644/980/127 +f 649/981/125 650/982/125 651/983/125 652/984/125 +f 653/985/126 654/986/126 655/987/126 656/988/126 657/989/126 +f 652/984/136 651/983/136 658/990/136 659/991/136 +f 651/983/127 650/982/127 660/992/127 658/993/127 +f 649/981/126 652/984/126 659/994/126 661/995/126 +f 662/996/170 663/997/170 664/998/170 665/999/170 +f 666/1000/126 662/1001/126 665/1002/126 667/1003/126 +f 668/1004/134 666/1000/134 667/1003/134 669/1005/134 +f 663/997/127 668/1004/127 669/1005/127 664/998/127 +f 654/986/171 653/985/171 670/1006/171 671/1007/171 +f 657/1008/136 656/1009/136 672/1010/136 673/1011/136 +f 671/1007/127 670/1006/127 673/1012/127 672/1010/127 674/1013/127 +f 654/986/170 671/1007/170 674/1014/170 655/1015/170 +f 655/1016/172 674/1013/172 672/1010/172 656/1009/172 +f 670/1006/134 653/985/134 657/1017/134 673/1018/134 +f 675/1019/170 676/1020/170 677/1021/170 678/1022/170 +f 679/1023/127 680/1024/127 677/1025/127 676/1026/127 +f 681/1027/126 682/1028/126 675/1019/126 678/1022/126 +f 680/1024/172 681/1027/172 678/1022/172 677/1025/172 +f 682/1029/171 679/1023/171 676/1026/171 675/1030/171 +f 684/1031/126 692/1032/126 693/1033/126 694/1034/126 +f 695/1035/173 696/1036/173 685/1037/173 697/1038/173 +f 692/1039/174 701/1040/174 702/1041/174 693/1033/174 +f 453/1042/125 330/481/125 329/480/125 454/1043/125 +f 715/1044/131 716/1045/131 717/1046/131 718/1047/131 +f 259/365/131 454/1043/131 719/1048/131 720/1049/131 +f 329/480/131 260/366/131 721/1050/131 722/1051/131 +f 259/365/131 720/1049/131 716/1045/131 715/1044/131 721/1050/131 260/366/131 +f 454/1043/131 329/480/131 722/1051/131 718/1047/131 717/1046/131 719/1048/131 +f 271/378/128 723/1052/128 724/1053/128 453/1042/128 +f 270/1054/128 725/1055/128 723/1052/128 271/378/128 +f 270/1054/128 330/481/128 726/1056/128 725/1055/128 +f 453/1042/128 724/1053/128 726/1056/128 330/481/128 +f 725/1057/175 726/1058/175 727/1059/175 728/1060/175 +f 721/1061/128 715/1062/128 729/1063/128 730/1064/128 +f 716/1065/176 731/1066/176 732/1067/176 717/1068/176 +f 733/1069/131 730/1064/131 729/1063/131 734/1070/131 +f 719/1071/136 735/1072/136 736/1073/136 720/1074/136 +f 737/1075/128 728/1076/128 727/1059/128 738/1077/128 +f 715/1078/177 718/1079/177 734/1070/177 729/1080/177 +f 720/1081/128 736/1073/128 731/1082/128 716/1083/128 +f 722/1084/178 721/1085/178 730/1086/178 733/1069/178 +f 718/1079/130 722/1084/130 733/1069/130 734/1070/130 +f 738/1077/129 727/1059/129 726/1058/129 724/1087/129 +f 728/1076/131 737/1075/131 723/1088/131 725/1089/131 +f 739/1090/126 740/1091/126 741/1092/126 742/1093/126 +f 740/1094/179 743/1095/179 744/1096/179 741/1097/179 +f 745/1098/127 746/1099/127 747/1100/127 748/1101/127 +f 749/1102/180 739/1090/180 742/1093/180 750/1103/180 +f 748/1101/127 747/1100/127 751/1104/127 752/1105/127 +f 741/1097/181 744/1096/181 753/1106/181 754/1107/181 +f 749/1108/127 743/1109/127 755/1110/127 +f 755/1110/172 756/1111/172 739/1090/172 749/1102/172 +f 756/1111/126 740/1112/126 739/1113/126 +f 746/1114/127 745/1115/127 757/1116/127 +f 757/1116/172 758/1117/172 759/1118/172 746/1099/172 +f 758/1117/126 760/1119/126 759/1120/126 +f 761/1121/136 762/1122/136 756/1111/136 755/1110/136 +f 763/1123/132 764/1124/132 743/1109/132 740/1125/132 +f 765/1126/127 766/1127/127 757/1116/127 745/1115/127 +f 767/1128/126 768/1129/126 760/1119/126 758/1117/126 +f 762/1122/126 763/1130/126 740/1112/126 756/1111/126 +f 766/1127/136 767/1128/136 758/1117/136 757/1116/136 +f 768/1131/132 765/1126/132 745/1115/132 760/1132/132 +f 764/1124/127 761/1121/127 755/1110/127 743/1109/127 +f 760/1133/179 745/1098/179 748/1101/179 769/1134/179 +f 743/1095/127 749/1102/127 750/1103/127 744/1096/127 +f 770/1135/125 771/1136/125 772/1137/125 773/1138/125 +f 732/1067/131 731/1082/131 736/1073/131 735/1072/131 +f 717/1068/130 732/1067/130 735/1072/130 719/1139/130 +f 737/1075/136 738/1077/136 724/1140/136 723/1141/136 +f 747/1100/182 774/1142/182 775/1143/182 751/1104/182 +f 774/1142/126 769/1144/126 776/1145/126 775/1143/126 +f 742/1093/126 741/1092/126 754/1146/126 777/1147/126 +f 769/1134/181 748/1101/181 752/1105/181 776/1148/181 +f 744/1096/127 750/1103/127 778/1149/127 753/1106/127 +f 750/1103/182 742/1093/182 777/1147/182 778/1149/182 +f 759/1118/126 760/1150/126 769/1144/126 774/1142/126 +f 746/1099/180 759/1118/180 774/1142/180 747/1100/180 +f 779/1151/162 780/1152/162 781/1153/162 782/1154/162 +f 771/1136/132 783/1155/132 784/1156/132 772/1137/132 +f 782/1154/124 781/1153/124 785/1157/124 786/1158/124 +f 783/1155/124 787/1159/124 788/1160/124 784/1156/124 +f 786/1161/163 785/1162/163 789/1163/163 790/1164/163 +f 787/1159/136 770/1165/136 773/1166/136 788/1160/136 +f 790/1164/160 789/1163/160 791/1167/160 792/1168/160 +f 781/1169/127 780/1170/127 793/1171/127 791/1172/127 789/1173/127 785/1174/127 +f 792/1168/125 791/1167/125 793/1175/125 794/1176/125 +f 794/1176/161 793/1175/161 780/1152/161 779/1151/161 +f 779/1177/126 782/1178/126 786/1179/126 790/1180/126 792/1181/126 794/1182/126 +f 784/1156/129 788/1160/129 795/1183/129 796/1184/129 +f 784/1185/132 796/1184/132 772/1186/132 +f 773/1187/136 795/1183/136 788/1188/136 +f 795/1183/136 773/1187/136 797/1189/136 798/1190/136 +f 798/1191/124 797/1192/124 799/1193/124 800/1194/124 +f 796/1184/127 795/1183/127 798/1190/127 801/1195/127 +f 772/1186/132 796/1184/132 801/1195/132 802/1196/132 +f 773/1197/126 772/1186/126 802/1196/126 797/1198/126 +f 798/1191/127 803/1199/127 801/1200/127 +f 802/1201/126 804/1202/126 797/1203/126 +f 801/1195/170 803/1199/170 804/1202/170 802/1196/170 +f 805/1204/180 806/1205/180 807/1206/180 808/1207/180 +f 803/1199/127 798/1191/127 800/1194/127 806/1205/127 +f 804/1202/125 803/1199/125 806/1205/125 805/1204/125 +f 797/1203/126 804/1202/126 805/1204/126 799/1208/126 +f 809/1209/127 810/1210/127 807/1211/127 +f 799/1208/126 805/1204/126 808/1207/126 811/1212/126 +f 800/1194/179 799/1193/179 811/1213/179 809/1214/179 +f 806/1205/127 800/1194/127 809/1214/127 807/1206/127 +f 807/1206/172 810/1210/172 812/1215/172 808/1207/172 +f 811/1216/126 812/1215/126 813/1217/126 814/1218/126 +f 811/1216/126 808/1219/126 812/1215/126 +f 815/1220/132 814/1221/132 816/1222/132 817/1223/132 +f 809/1209/132 811/1224/132 814/1225/132 818/1226/132 +f 810/1210/127 809/1209/127 818/1226/127 819/1227/127 +f 812/1215/136 810/1210/136 819/1227/136 813/1217/136 +f 819/1228/136 820/1229/136 813/1230/136 +f 818/1226/129 815/1220/129 820/1229/129 819/1227/129 +f 814/1221/132 815/1220/132 818/1231/132 +f 814/1232/125 813/1230/125 821/1233/125 816/1234/125 +f 813/1230/136 820/1229/136 822/1235/136 821/1233/136 +f 820/1229/124 815/1220/124 817/1223/124 822/1235/124 +f 660/1236/124 661/1237/124 659/1238/124 658/1239/124 +f 1052/1240/183 1053/1241/183 1054/1242/183 1055/1243/183 +f 1056/1244/183 1057/1245/183 1058/1246/183 1059/1247/183 +f 1060/1248/183 1061/1249/183 1062/1250/183 1063/1251/183 +f 1061/1249/183 1064/1252/183 1065/1253/183 1062/1250/183 +f 1066/1254/183 1052/1240/183 1055/1243/183 1067/1255/183 +f 1053/1241/183 1056/1244/183 1059/1247/183 1054/1242/183 +f 1057/1245/183 1060/1248/183 1063/1251/183 1058/1246/183 +f 1064/1252/183 1066/1256/183 1067/1257/183 1065/1253/183 +f 1068/1258/183 1069/1259/183 1070/1260/183 1071/1261/183 1072/1262/183 1073/1263/183 1074/1264/183 1075/1265/183 +f 1076/1266/183 1077/1267/183 1078/1268/183 1079/1269/183 +f 1077/1267/183 1080/1270/183 1081/1271/183 1078/1268/183 +f 1080/1270/184 1082/1272/184 1083/1273/184 1081/1271/184 +f 1082/1274/184 1084/1275/184 1085/1276/184 1083/1277/184 +f 1084/1275/183 1086/1278/183 1087/1279/183 1085/1276/183 +f 1086/1278/184 1088/1280/184 1089/1281/184 1087/1279/184 +f 1088/1280/184 1090/1282/184 1091/1283/184 1089/1281/184 +f 1090/1282/184 1076/1266/184 1079/1269/184 1091/1283/184 +f 1140/1284/185 1141/1285/185 1142/1286/185 1143/1287/185 +f 1144/1288/185 1145/1289/185 1146/1290/185 1147/1291/185 +f 1148/1292/185 1149/1293/185 1150/1294/185 1151/1295/185 +f 1149/1293/185 1152/1296/185 1153/1297/185 1150/1294/185 +f 1154/1298/185 1140/1284/185 1143/1287/185 1155/1299/185 +f 1141/1285/185 1144/1288/185 1147/1291/185 1142/1286/185 +f 1145/1289/185 1148/1292/185 1151/1295/185 1146/1290/185 +f 1152/1296/185 1154/1300/185 1155/1301/185 1153/1297/185 +f 1156/1302/185 1157/1303/185 1158/1304/185 1159/1305/185 1160/1306/185 1161/1307/185 1162/1308/185 1163/1309/185 +f 1164/1310/185 1165/1311/185 1166/1312/185 1167/1313/185 +f 1165/1311/185 1168/1314/185 1169/1315/185 1166/1312/185 +f 1168/1314/186 1170/1316/186 1171/1317/186 1169/1315/186 +f 1170/1318/186 1172/1319/186 1173/1320/186 1171/1321/186 +f 1172/1319/185 1174/1322/185 1175/1323/185 1173/1320/185 +f 1174/1322/185 1176/1324/185 1177/1325/185 1175/1323/185 +f 1176/1324/186 1178/1326/186 1179/1327/186 1177/1325/186 +f 1178/1326/185 1164/1310/185 1167/1313/185 1179/1327/185 +f 1228/1328/187 1229/1329/187 1230/1330/187 1231/1331/187 +f 1232/1332/187 1233/1333/187 1234/1334/187 1235/1335/187 +f 1236/1336/187 1237/1337/187 1238/1338/187 1239/1339/187 +f 1237/1337/187 1240/1340/187 1241/1341/187 1238/1338/187 +f 1242/1342/187 1228/1328/187 1231/1331/187 1243/1343/187 +f 1229/1329/187 1232/1332/187 1235/1335/187 1230/1330/187 +f 1233/1333/187 1236/1336/187 1239/1339/187 1234/1334/187 +f 1240/1340/187 1242/1344/187 1243/1345/187 1241/1341/187 +f 1244/1346/187 1245/1347/187 1246/1348/187 1247/1349/187 1248/1350/187 1249/1351/187 1250/1352/187 1251/1353/187 +f 1252/1354/187 1253/1355/187 1254/1356/187 1255/1357/187 +f 1253/1355/187 1256/1358/187 1257/1359/187 1254/1356/187 +f 1256/1358/188 1258/1360/188 1259/1361/188 1257/1359/188 +f 1258/1362/188 1260/1363/188 1261/1364/188 1259/1365/188 +f 1260/1363/188 1262/1366/188 1263/1367/188 1261/1364/188 +f 1262/1366/188 1264/1368/188 1265/1369/188 1263/1367/188 +f 1264/1368/188 1266/1370/188 1267/1371/188 1265/1369/188 +f 1266/1370/187 1252/1354/187 1255/1357/187 1267/1371/187 +f 1316/1372/189 1317/1373/189 1318/1374/189 1319/1375/189 +f 1320/1376/189 1321/1377/189 1322/1378/189 1323/1379/189 +f 1324/1380/190 1325/1381/190 1326/1382/190 1327/1383/190 +f 1325/1381/189 1328/1384/189 1329/1385/189 1326/1382/189 +f 1330/1386/189 1316/1372/189 1319/1375/189 1331/1387/189 +f 1317/1373/189 1320/1376/189 1323/1379/189 1318/1374/189 +f 1321/1377/189 1324/1380/189 1327/1383/189 1322/1378/189 +f 1328/1384/189 1330/1388/189 1331/1389/189 1329/1385/189 +f 1332/1390/189 1333/1391/189 1334/1392/189 1335/1393/189 1336/1394/189 1337/1395/189 1338/1396/189 1339/1397/189 +f 1340/1398/190 1341/1399/190 1342/1400/190 1343/1401/190 +f 1341/1399/190 1344/1402/190 1345/1403/190 1342/1400/190 +f 1344/1402/190 1346/1404/190 1347/1405/190 1345/1403/190 +f 1346/1406/190 1348/1407/190 1349/1408/190 1347/1409/190 +f 1348/1407/189 1350/1410/189 1351/1411/189 1349/1408/189 +f 1350/1410/190 1352/1412/190 1353/1413/190 1351/1411/190 +f 1352/1412/190 1354/1414/190 1355/1415/190 1353/1413/190 +f 1354/1414/189 1340/1398/189 1343/1401/189 1355/1415/189 +f 1404/1416/191 1405/1417/191 1406/1418/191 1407/1419/191 +f 1408/1420/191 1409/1421/191 1410/1422/191 1411/1423/191 +f 1412/1424/192 1413/1425/192 1414/1426/192 1415/1427/192 +f 1413/1425/191 1416/1428/191 1417/1429/191 1414/1426/191 +f 1418/1430/191 1404/1416/191 1407/1419/191 1419/1431/191 +f 1405/1417/191 1408/1420/191 1411/1423/191 1406/1418/191 +f 1409/1421/191 1412/1424/191 1415/1427/191 1410/1422/191 +f 1416/1428/191 1418/1432/191 1419/1433/191 1417/1429/191 +f 1420/1434/191 1421/1435/191 1422/1436/191 1423/1437/191 1424/1438/191 1425/1439/191 1426/1440/191 1427/1441/191 +f 1428/1442/192 1429/1443/192 1430/1444/192 1431/1445/192 +f 1429/1443/192 1432/1446/192 1433/1447/192 1430/1444/192 +f 1432/1446/192 1434/1448/192 1435/1449/192 1433/1447/192 +f 1434/1450/192 1436/1451/192 1437/1452/192 1435/1453/192 +f 1436/1451/191 1438/1454/191 1439/1455/191 1437/1452/191 +f 1438/1454/192 1440/1456/192 1441/1457/192 1439/1455/192 +f 1440/1456/192 1442/1458/192 1443/1459/192 1441/1457/192 +f 1442/1458/191 1428/1442/191 1431/1445/191 1443/1459/191 +f 1492/1460/193 1493/1461/193 1494/1462/193 1495/1463/193 +f 1496/1464/193 1497/1465/193 1498/1466/193 1499/1467/193 +f 1500/1468/194 1501/1469/194 1502/1470/194 1503/1471/194 +f 1501/1469/193 1504/1472/193 1505/1473/193 1502/1470/193 +f 1506/1474/193 1492/1460/193 1495/1463/193 1507/1475/193 +f 1493/1461/193 1496/1464/193 1499/1467/193 1494/1462/193 +f 1497/1465/193 1500/1468/193 1503/1471/193 1498/1466/193 +f 1504/1472/193 1506/1476/193 1507/1477/193 1505/1473/193 +f 1508/1478/193 1509/1479/193 1510/1480/193 1511/1481/193 1512/1482/193 1513/1483/193 1514/1484/193 1515/1485/193 +f 1516/1486/194 1517/1487/194 1518/1488/194 1519/1489/194 +f 1517/1487/194 1520/1490/194 1521/1491/194 1518/1488/194 +f 1520/1490/194 1522/1492/194 1523/1493/194 1521/1491/194 +f 1522/1494/194 1524/1495/194 1525/1496/194 1523/1497/194 +f 1524/1495/193 1526/1498/193 1527/1499/193 1525/1496/193 +f 1526/1498/194 1528/1500/194 1529/1501/194 1527/1499/194 +f 1528/1500/194 1530/1502/194 1531/1503/194 1529/1501/194 +f 1530/1502/194 1516/1486/194 1519/1489/194 1531/1503/194 +f 1580/1504/195 1581/1505/195 1582/1506/195 1583/1507/195 +f 1584/1508/195 1585/1509/195 1586/1510/195 1587/1511/195 +f 1588/1512/195 1589/1513/195 1590/1514/195 1591/1515/195 +f 1589/1513/195 1592/1516/195 1593/1517/195 1590/1514/195 +f 1594/1518/195 1580/1504/195 1583/1507/195 1595/1519/195 +f 1581/1505/195 1584/1508/195 1587/1511/195 1582/1506/195 +f 1585/1509/195 1588/1512/195 1591/1515/195 1586/1510/195 +f 1592/1516/195 1594/1520/195 1595/1521/195 1593/1517/195 +f 1596/1522/195 1597/1523/195 1598/1524/195 1599/1525/195 1600/1526/195 1601/1527/195 1602/1528/195 1603/1529/195 +f 1604/1530/196 1605/1531/196 1606/1532/196 1607/1533/196 +f 1605/1531/196 1608/1534/196 1609/1535/196 1606/1532/196 +f 1608/1534/196 1610/1536/196 1611/1537/196 1609/1535/196 +f 1610/1538/196 1612/1539/196 1613/1540/196 1611/1541/196 +f 1612/1539/195 1614/1542/195 1615/1543/195 1613/1540/195 +f 1614/1542/196 1616/1544/196 1617/1545/196 1615/1543/196 +f 1616/1544/196 1618/1546/196 1619/1547/196 1617/1545/196 +f 1618/1546/195 1604/1530/195 1607/1533/195 1619/1547/195 +f 1668/1548/197 1669/1549/197 1670/1550/197 1671/1551/197 +f 1672/1552/198 1673/1553/198 1671/1551/198 1670/1550/198 +f 1674/1554/199 1672/1555/199 1670/1550/199 1669/1549/199 +f 1675/1556/200 1674/1557/200 1669/1549/200 1668/1548/200 +f 1673/1558/201 1675/1559/201 1668/1548/201 1671/1551/201 +f 1676/1560/202 1677/1561/202 1678/1562/202 1679/1563/202 +f 1680/1564/203 1681/1565/203 1679/1563/203 1678/1562/203 +f 1682/1566/204 1680/1567/204 1678/1562/204 1677/1561/204 +f 1683/1568/205 1682/1569/205 1677/1561/205 1676/1560/205 +f 1681/1570/206 1683/1571/206 1676/1560/206 1679/1563/206 +f 1684/1572/207 1685/1573/207 1686/1574/207 1687/1575/207 +f 1688/1576/208 1689/1577/208 1687/1575/208 1686/1574/208 +f 1690/1578/209 1688/1579/209 1686/1574/209 1685/1573/209 +f 1691/1580/210 1690/1581/210 1685/1573/210 1684/1572/210 +f 1689/1582/211 1691/1583/211 1684/1572/211 1687/1575/211 +f 1692/1584/212 1693/1585/212 1694/1586/212 1695/1587/212 +f 1696/1588/213 1697/1589/213 1695/1587/213 1694/1586/213 +f 1698/1590/214 1696/1591/214 1694/1586/214 1693/1585/214 +f 1699/1592/215 1698/1593/215 1693/1585/215 1692/1584/215 +f 1697/1594/216 1699/1595/216 1692/1584/216 1695/1587/216 +f 1700/1596/217 1701/1597/217 1702/1598/217 1703/1599/217 +f 1704/1600/218 1705/1601/218 1703/1599/218 1702/1598/218 +f 1706/1602/219 1704/1603/219 1702/1598/219 1701/1597/219 +f 1707/1604/220 1706/1605/220 1701/1597/220 1700/1596/220 +f 1705/1606/221 1707/1607/221 1700/1596/221 1703/1599/221 +f 1708/1608/222 1709/1609/222 1710/1610/222 1711/1611/222 +f 1712/1612/223 1713/1613/223 1711/1611/223 1710/1610/223 +f 1714/1614/224 1712/1615/224 1710/1610/224 1709/1609/224 +f 1715/1616/225 1714/1617/225 1709/1609/225 1708/1608/225 +f 1713/1618/226 1715/1619/226 1708/1608/226 1711/1611/226 +f 1716/1620/227 1717/1621/227 1718/1622/227 1719/1623/227 +f 1720/1624/228 1721/1625/228 1719/1623/228 1718/1622/228 +f 1722/1626/229 1720/1627/229 1718/1622/229 1717/1621/229 +f 1723/1628/230 1722/1629/230 1717/1621/230 1716/1620/230 +f 1721/1630/231 1723/1631/231 1716/1620/231 1719/1623/231 +f 1724/1632/232 1725/1633/232 1726/1634/232 1727/1635/232 +f 1728/1636/233 1729/1637/233 1727/1635/233 1726/1634/233 +f 1730/1638/234 1728/1639/234 1726/1634/234 1725/1633/234 +f 1731/1640/235 1730/1641/235 1725/1633/235 1724/1632/235 +f 1729/1642/236 1731/1643/236 1724/1632/236 1727/1635/236 +f 1732/1644/237 1733/1645/237 1734/1646/237 1735/1647/237 +f 1736/1648/238 1737/1649/238 1735/1647/238 1734/1646/238 +f 1738/1650/239 1736/1651/239 1734/1646/239 1733/1645/239 +f 1739/1652/240 1738/1653/240 1733/1645/240 1732/1644/240 +f 1737/1654/241 1739/1655/241 1732/1644/241 1735/1647/241 +f 1740/1656/242 1741/1657/242 1742/1658/242 1743/1659/242 +f 1744/1660/243 1745/1661/243 1743/1659/243 1742/1658/243 +f 1746/1662/244 1744/1663/244 1742/1658/244 1741/1657/244 +f 1747/1664/245 1746/1665/245 1741/1657/245 1740/1656/245 +f 1745/1666/246 1747/1667/246 1740/1656/246 1743/1659/246 +f 1748/1668/247 1749/1669/247 1750/1670/247 1751/1671/247 +f 1752/1672/248 1753/1673/248 1751/1671/248 1750/1670/248 +f 1754/1674/249 1752/1675/249 1750/1670/249 1749/1669/249 +f 1755/1676/250 1754/1677/250 1749/1669/250 1748/1668/250 +f 1753/1678/251 1755/1679/251 1748/1668/251 1751/1671/251 +f 1756/1680/252 1757/1681/252 1758/1682/252 1759/1683/252 +f 1760/1684/253 1761/1685/253 1759/1683/253 1758/1682/253 +f 1762/1686/254 1760/1687/254 1758/1682/254 1757/1681/254 +f 1763/1688/255 1762/1689/255 1757/1681/255 1756/1680/255 +f 1761/1690/256 1763/1691/256 1756/1680/256 1759/1683/256 +f 1764/1692/257 1765/1693/257 1766/1694/257 1767/1695/257 +f 1768/1696/258 1769/1697/258 1767/1695/258 1766/1694/258 +f 1770/1698/259 1768/1699/259 1766/1694/259 1765/1693/259 +f 1771/1700/260 1770/1701/260 1765/1693/260 1764/1692/260 +f 1769/1702/261 1771/1703/261 1764/1692/261 1767/1695/261 +f 1772/1704/262 1773/1705/262 1774/1706/262 1775/1707/262 +f 1776/1708/263 1777/1709/263 1775/1707/263 1774/1706/263 +f 1778/1710/264 1776/1711/264 1774/1706/264 1773/1705/264 +f 1779/1712/265 1778/1713/265 1773/1705/265 1772/1704/265 +f 1777/1714/266 1779/1715/266 1772/1704/266 1775/1707/266 +f 1780/1716/267 1781/1717/267 1782/1718/267 1783/1719/267 +f 1784/1720/268 1785/1721/268 1783/1719/268 1782/1718/268 +f 1786/1722/269 1784/1723/269 1782/1718/269 1781/1717/269 +f 1787/1724/270 1786/1725/270 1781/1717/270 1780/1716/270 +f 1785/1726/271 1787/1727/271 1780/1716/271 1783/1719/271 s 1 -f 23//64 22//65 608//65 609//64 -f 20//66 23//64 609//64 610//66 -f 21//67 20//66 610//66 611//67 -f 17//68 21//67 611//67 612//68 -f 18//69 17//68 612//68 613//69 -f 19//70 18//69 613//69 614//70 -f 32//71 19//70 614//70 615//71 -f 30//72 32//71 615//71 616//72 -f 31//73 30//72 616//72 617//73 -f 28//74 31//73 617//73 618//74 -f 29//75 28//74 618//74 619//75 -f 26//76 29//75 619//75 620//76 -f 27//77 26//76 620//76 621//77 -f 24//78 27//77 621//77 622//78 -f 25//79 24//78 622//78 623//79 -f 22//65 25//79 623//79 608//65 -f 609//1 608//80 624//80 625//1 -f 610//81 609//1 625//1 626//81 -f 617//2 616//82 627//82 628//2 -f 608//80 623//6 629//6 624//80 -f 616//82 615//8 630//8 627//82 -f 623//6 622//83 631//83 629//6 -f 615//8 614//84 632//84 630//8 -f 622//83 621//4 633//4 631//83 -f 614//84 613//3 634//3 632//84 -f 621//4 620//85 635//85 633//4 -f 613//3 612//86 636//86 634//3 -f 620//85 619//5 637//5 635//85 -f 612//86 611//7 638//7 636//86 -f 619//5 618//87 639//87 637//5 -f 611//7 610//81 626//81 638//7 -f 618//87 617//2 628//2 639//87 -f 640//88 641//89 642//90 643//91 -f 644//92 645//28 646//93 647//94 -f 648//95 649//96 650//97 651//98 -f 649//96 652//99 653//100 650//97 -f 654//26 640//88 643//91 655//101 -f 641//89 644//92 647//94 642//90 -f 645//28 648//95 651//98 646//93 -f 652//99 654//26 655//101 653//100 -f 651//98 650//97 656//102 657//103 -f 647//94 646//93 658//104 659//105 -f 643//91 642//90 660//106 661//107 -f 653//100 655//101 662//23 663//108 -f 646//93 651//98 657//103 658//104 -f 642//90 647//94 659//105 660//106 -f 655//101 643//91 661//107 662//23 -f 650//97 653//100 663//108 656//102 -f 662//23 661//107 664//109 665//13 -f 656//102 663//108 666//110 667//111 -f 657//103 656//102 667//111 668//112 -f 659//105 658//104 669//9 670//113 -f 661//107 660//106 671//114 664//109 -f 663//108 662//23 665//13 666//110 -f 658//104 657//103 668//112 669//9 -f 660//106 659//105 670//113 671//114 -f 669//9 668//112 672//115 673//116 -f 671//114 670//113 674//117 675//118 -f 665//13 664//109 676//119 677//120 -f 667//111 666//110 678//121 679//122 -f 668//112 667//111 679//122 672//115 -f 670//113 669//9 673//116 674//117 -f 664//109 671//114 675//118 676//119 -f 666//110 665//13 677//120 678//121 -f 680//83 681//123 119//123 116//83 -f 682//124 683//125 107//125 121//124 -f 684//84 685//126 111//126 108//84 -f 686//127 687//128 115//128 112//127 -f 681//123 682//124 121//124 119//123 -f 683//125 684//84 108//84 107//125 -f 685//126 686//127 112//127 111//126 -f 687//128 680//83 116//83 115//128 -f 124//126 123//84 133//84 136//126 -f 118//128 117//83 132//83 131//128 -f 125//127 124//126 136//126 138//127 -f 117//83 120//123 135//123 132//83 -f 126//128 125//127 138//127 140//128 -f 120//123 122//124 137//124 135//123 -f 127//83 126//128 140//128 142//83 -f 122//124 110//125 139//125 137//124 -f 113//127 118//128 131//128 145//127 -f 123//84 130//125 134//125 133//84 -f 114//126 113//127 145//127 143//126 -f 130//125 129//124 146//124 134//125 -f 109//84 114//126 143//126 141//84 -f 129//124 128//123 144//123 146//124 -f 110//125 109//84 141//84 139//125 -f 128//123 127//83 142//83 144//123 -f 630//129 632//130 205//130 204//129 -f 631//131 633//132 198//132 197//131 -f 632//130 634//133 206//133 205//130 -f 633//132 635//134 199//134 198//132 -f 634//133 636//135 207//135 206//133 -f 635//134 637//136 200//136 199//134 -f 636//135 638//137 208//137 207//135 -f 637//136 639//138 201//138 200//136 -f 638//137 626//139 209//139 208//137 -f 639//138 628//140 202//140 201//138 -f 625//141 624//142 195//142 210//141 -f 626//139 625//141 210//141 209//139 -f 628//140 627//143 203//143 202//140 -f 624//142 629//144 196//144 195//142 -f 627//143 630//129 204//129 203//143 -f 629//144 631//131 197//131 196//144 -f 688//85 689//87 156//87 155//85 -f 690//80 691//83 167//83 169//80 -f 692//86 693//81 171//81 173//86 -f 694//82 695//84 175//84 177//82 -f 691//83 688//85 155//85 167//83 -f 693//81 690//80 169//80 171//81 -f 695//84 692//86 173//86 175//84 -f 689//87 694//82 177//82 156//87 -f 158//85 157//87 181//87 180//85 -f 159//80 166//81 182//81 193//80 -f 166//81 165//86 179//86 182//81 -f 168//83 158//85 180//85 184//83 -f 165//86 164//84 183//84 179//86 -f 170//80 168//83 184//83 186//80 -f 164//84 163//82 185//82 183//84 -f 172//81 170//80 186//80 188//81 -f 157//87 178//82 194//82 181//87 -f 160//83 159//80 193//80 191//83 -f 178//82 176//84 192//84 194//82 -f 161//85 160//83 191//83 189//85 -f 176//84 174//86 190//86 192//84 -f 162//87 161//85 189//85 187//87 -f 174//86 172//81 188//81 190//86 -f 163//82 162//87 187//87 185//82 -f 219//1 218//81 239//81 238//1 -f 224//82 226//2 230//2 229//82 -f 226//2 213//87 231//87 230//2 -f 216//80 219//1 238//1 237//80 -f 225//8 224//82 229//82 244//8 -f 217//6 216//80 237//80 236//6 -f 222//84 225//8 244//8 243//84 -f 214//83 217//6 236//6 235//83 -f 223//3 222//84 243//84 242//3 -f 215//4 214//83 235//83 234//4 -f 220//86 223//3 242//3 241//86 -f 211//85 215//4 234//4 233//85 -f 221//7 220//86 241//86 240//7 -f 212//5 211//85 233//85 232//5 -f 218//81 221//7 240//7 239//81 -f 213//87 212//5 232//5 231//87 -f 696//145 697//50 465//50 464//145 -f 698//3 699//146 468//146 467//3 -f 471//147 470//147 479//148 477//148 -f 700//149 696//145 464//145 463//149 -f 701//150 698//3 467//3 466//150 -f 477//148 479//148 478//151 476//151 -f 702//152 469//153 458//153 457//152 -f 473//154 700//149 463//149 462//154 -f 697//50 701//150 466//150 465//50 -f 476//151 478//151 703//4 475//4 -f 699//146 702//152 457//152 468//146 -f 472//155 474//155 475//4 703//4 -f 704//32 705//148 486//148 485//32 -f 706//3 707//146 483//146 482//3 -f 708//156 709//149 490//149 489//156 -f 710//145 711//50 480//50 491//145 -f 705//148 712//151 487//151 486//148 -f 707//146 713//152 484//152 483//146 -f 709//149 710//145 491//145 490//149 -f 711//50 714//150 481//150 480//50 -f 712//151 715//4 488//4 487//151 -f 713//152 704//32 485//32 484//152 -f 714//150 706//3 482//3 481//150 -f 715//4 708//156 489//156 488//4 -f 716//157 717//158 718//159 719//160 -f 720//161 721//162 722//163 723//164 -f 724//165 725//166 726//167 727//168 -f 728//169 729//170 730//171 731//172 -f 731//172 730//171 725//166 724//165 -f 732//173 733//174 729//170 728//169 -f 730//171 734//175 735//176 725//166 -f 733//174 736//177 737//178 729//170 -f 725//166 735//176 738//179 726//167 -f 729//170 737//178 734//175 730//171 -f 739//165 740//166 741//167 742//168 -f 743//169 744//170 745//171 746//172 -f 746//172 745//171 740//166 739//165 -f 747//173 748//174 744//170 743//169 -f 745//171 749//175 750//176 740//166 -f 748//174 751//177 752//178 744//170 -f 740//166 750//176 753//179 741//167 -f 744//170 752//178 749//175 745//171 -f 754//165 755//166 756//167 757//168 -f 758//169 759//180 760//171 761//172 -f 761//172 760//171 755//166 754//165 -f 762//173 763//174 759//180 758//169 -f 760//171 764//175 765//176 755//166 -f 763//174 766//177 767//178 759//180 -f 755//166 765//176 768//179 756//167 -f 759//180 767//178 764//175 760//171 -f 724//165 727//168 769//87 770//2 -f 739//165 742//168 771//87 772//2 -f 731//172 724//165 770//2 773//8 -f 728//169 731//172 773//8 774//3 -f 754//165 757//168 775//87 776//2 -f 746//172 739//165 772//2 777//8 -f 732//173 728//169 774//3 778//86 -f 743//169 746//172 777//8 779//3 -f 761//172 754//165 776//2 780//8 -f 758//169 761//172 780//8 781//3 -f 747//173 743//169 779//3 782//86 -f 762//173 758//169 781//3 783//86 -f 717//158 720//161 723//164 718//159 -f 784//181 716//157 719//160 785//182 -f 718//159 723//164 786//183 787//184 -f 785//182 719//160 788//185 789//186 -f 723//164 722//163 790//187 786//183 -f 719//160 718//159 787//184 788//185 -f 791//161 792//162 793//163 794//188 -f 795//157 796//158 797//159 798//160 -f 796//158 791//161 794//188 797//159 -f 799//181 795//157 798//160 800//182 -f 797//159 794//188 801//183 802//184 -f 800//182 798//160 803//185 804//186 -f 794//188 793//163 805//187 801//183 -f 798//160 797//159 802//184 803//185 -f 806//161 807//162 808//163 809//164 -f 810//157 811//158 812//159 813//189 -f 811//158 806//161 809//164 812//159 -f 814//181 810//157 813//189 815//182 -f 812//159 809//164 816//183 817//184 -f 815//182 813//189 818//185 819//186 -f 809//164 808//163 820//187 816//183 -f 813//189 812//159 817//184 818//185 -f 720//161 821//2 822//82 721//162 -f 791//161 823//2 824//82 792//162 -f 717//158 825//5 821//2 720//161 -f 716//157 826//4 825//5 717//158 -f 806//161 827//2 828//82 807//162 -f 796//158 829//5 823//2 791//161 -f 784//181 830//83 826//4 716//157 -f 795//157 831//4 829//5 796//158 -f 811//158 832//5 827//2 806//161 -f 810//157 833//4 832//5 811//158 -f 799//181 834//83 831//4 795//157 -f 814//181 835//83 833//4 810//157 +f 249/1728/272 248/1729/273 823/1730/273 824/1731/272 +f 246/1732/274 249/1728/272 824/1731/272 825/1733/274 +f 247/1734/275 246/1732/274 825/1733/274 826/1735/275 +f 243/1736/276 247/1734/275 826/1735/275 827/1737/276 +f 244/1738/277 243/1736/276 827/1737/276 828/1739/277 +f 245/1740/278 244/1738/277 828/1739/277 829/1741/278 +f 258/1742/279 245/1740/278 829/1741/278 830/1743/279 +f 256/1744/280 258/1742/279 830/1743/279 831/1745/280 +f 257/1746/281 256/1744/280 831/1745/280 832/1747/281 +f 254/1748/282 257/1749/281 832/1750/281 833/1751/282 +f 255/1752/283 254/1748/282 833/1751/282 834/1753/283 +f 252/1754/284 255/1752/283 834/1753/283 835/1755/284 +f 253/1756/285 252/1754/284 835/1755/284 836/1757/285 +f 250/1758/286 253/1756/285 836/1757/285 837/1759/286 +f 251/1760/287 250/1758/286 837/1759/286 838/1761/287 +f 248/1729/273 251/1760/287 838/1761/287 823/1730/273 +f 824/1731/124 823/1730/288 839/1762/288 840/1763/124 +f 825/1733/289 824/1731/124 840/1763/124 841/1764/289 +f 832/1747/125 831/1745/290 842/1765/290 843/1766/125 +f 823/1730/288 838/1761/129 844/1767/129 839/1762/288 +f 831/1745/290 830/1743/131 845/1768/131 842/1765/290 +f 838/1761/129 837/1759/291 846/1769/291 844/1767/129 +f 830/1743/131 829/1741/292 847/1770/292 845/1768/131 +f 837/1759/291 836/1757/127 848/1771/127 846/1769/291 +f 829/1741/292 828/1739/126 849/1772/126 847/1770/292 +f 836/1757/127 835/1755/293 850/1773/293 848/1771/127 +f 828/1739/126 827/1737/294 851/1774/294 849/1772/126 +f 835/1755/293 834/1753/128 852/1775/128 850/1773/293 +f 827/1737/294 826/1735/130 853/1776/130 851/1774/294 +f 834/1753/128 833/1751/295 854/1777/295 852/1775/128 +f 826/1735/130 825/1733/289 841/1764/289 853/1776/130 +f 833/1751/295 832/1750/125 843/1778/125 854/1777/295 +f 855/1779/296 856/1780/297 857/1781/298 858/1782/299 +f 859/1783/300 860/1784/151 861/1785/301 862/1786/302 +f 863/1787/303 864/1788/304 865/1789/305 866/1790/306 +f 864/1788/304 867/1791/307 868/1792/308 865/1789/305 +f 869/1793/149 855/1779/296 858/1782/299 870/1794/309 +f 856/1780/297 859/1783/300 862/1786/302 857/1781/298 +f 860/1784/151 863/1787/303 866/1790/306 861/1785/301 +f 867/1791/307 869/1795/149 870/1796/309 868/1792/308 +f 866/1790/306 865/1789/305 871/1797/310 872/1798/311 +f 862/1786/302 861/1785/301 873/1799/312 874/1800/313 +f 858/1782/299 857/1781/298 875/1801/314 876/1802/315 +f 868/1792/308 870/1796/309 877/1803/146 878/1804/316 +f 861/1785/301 866/1790/306 872/1798/311 873/1799/312 +f 857/1781/298 862/1786/302 874/1800/313 875/1801/314 +f 870/1794/309 858/1782/299 876/1802/315 877/1805/146 +f 865/1789/305 868/1792/308 878/1804/316 871/1797/310 +f 877/1805/146 876/1802/315 879/1806/317 880/1807/136 +f 871/1797/310 878/1804/316 881/1808/318 882/1809/319 +f 872/1798/311 871/1797/310 882/1809/319 883/1810/320 +f 874/1800/313 873/1799/312 884/1811/132 885/1812/321 +f 876/1802/315 875/1801/314 886/1813/322 879/1806/317 +f 878/1804/316 877/1803/146 880/1814/136 881/1808/318 +f 873/1799/312 872/1798/311 883/1810/320 884/1811/132 +f 875/1801/314 874/1800/313 885/1812/321 886/1813/322 +f 884/1811/132 883/1810/320 887/1815/323 888/1816/324 +f 886/1813/322 885/1812/321 889/1817/325 890/1818/326 +f 880/1807/136 879/1806/317 891/1819/327 892/1820/328 +f 882/1809/319 881/1808/318 893/1821/329 894/1822/330 +f 883/1810/320 882/1809/319 894/1822/330 887/1815/323 +f 885/1812/321 884/1811/132 888/1816/324 889/1817/325 +f 879/1806/317 886/1813/322 890/1818/326 891/1819/327 +f 881/1808/318 880/1814/136 892/1823/328 893/1821/329 +f 895/1824/291 896/1825/331 345/500/331 342/497/291 +f 897/1826/332 898/1827/333 333/488/333 347/502/332 +f 899/1828/292 900/1829/334 337/492/334 334/489/292 +f 901/1830/335 902/1831/336 341/496/336 338/493/335 +f 896/1825/331 897/1832/332 347/504/332 345/500/331 +f 898/1827/333 899/1828/292 334/489/292 333/488/333 +f 900/1829/334 901/1830/335 338/493/335 337/492/334 +f 902/1831/336 895/1824/291 342/497/291 341/496/336 +f 350/1833/334 349/1834/292 359/516/292 362/519/334 +f 344/499/336 343/498/291 358/515/291 357/514/336 +f 351/1835/335 350/1833/334 362/519/334 364/521/335 +f 343/498/291 346/501/331 361/518/331 358/515/291 +f 352/1836/336 351/1837/335 364/525/335 366/524/336 +f 346/501/331 348/505/332 363/520/332 361/518/331 +f 353/1838/291 352/1836/336 366/524/336 368/527/291 +f 348/503/332 336/491/333 365/523/333 363/522/332 +f 339/494/335 344/499/336 357/514/336 371/530/335 +f 349/1834/292 356/1839/333 360/517/333 359/516/292 +f 340/495/334 339/494/335 371/530/335 369/528/334 +f 356/1839/333 355/1840/332 372/531/332 360/517/333 +f 335/490/292 340/495/334 369/528/334 367/526/292 +f 355/1840/332 354/1841/331 370/529/331 372/531/332 +f 336/491/333 335/490/292 367/526/292 365/523/333 +f 354/1841/331 353/1838/291 368/527/291 370/529/331 +f 845/1768/337 847/1770/338 431/1842/338 430/1843/337 +f 846/1769/339 848/1771/340 424/1844/340 423/1845/339 +f 847/1770/338 849/1772/341 432/1846/341 431/1847/338 +f 848/1771/340 850/1773/342 425/1848/342 424/1849/340 +f 849/1772/341 851/1774/343 433/1850/343 432/1851/341 +f 850/1773/342 852/1775/344 426/1852/344 425/1853/342 +f 851/1774/343 853/1776/345 434/1854/345 433/1855/343 +f 852/1775/344 854/1777/346 427/1856/346 426/1857/344 +f 853/1776/345 841/1764/347 435/1858/347 434/1859/345 +f 854/1777/346 843/1778/348 428/1860/348 427/1861/346 +f 840/1763/349 839/1762/350 421/1862/350 436/1863/349 +f 841/1764/347 840/1763/349 436/1864/349 435/1865/347 +f 843/1766/348 842/1765/351 429/1866/351 428/1867/348 +f 839/1762/350 844/1767/352 422/1868/352 421/1869/350 +f 842/1765/351 845/1768/337 430/1870/337 429/1871/351 +f 844/1767/352 846/1769/339 423/1872/339 422/1873/352 +f 903/1874/293 904/1875/295 382/545/295 381/544/293 +f 905/1876/288 906/1877/291 393/556/291 395/559/288 +f 907/1878/294 908/1879/289 397/566/289 399/565/294 +f 909/1880/290 910/1881/292 401/569/292 403/572/290 +f 906/1877/291 903/1874/293 381/544/293 393/556/291 +f 908/1882/289 905/1876/288 395/559/288 397/562/289 +f 910/1881/292 907/1878/294 399/565/294 401/569/292 +f 904/1875/295 909/1880/290 403/572/290 382/545/295 +f 384/547/293 383/546/295 407/579/295 406/578/293 +f 385/1883/288 392/1884/289 408/605/289 419/608/288 +f 392/1885/289 391/1886/294 405/577/294 408/580/289 +f 394/558/291 384/557/293 406/583/293 410/582/291 +f 391/1887/294 390/1888/292 409/581/292 405/584/294 +f 396/561/288 394/560/291 410/587/291 412/586/288 +f 390/1889/292 389/1890/290 411/585/290 409/588/292 +f 398/564/289 396/563/288 412/591/288 414/590/289 +f 383/576/295 404/575/290 420/607/290 407/606/295 +f 386/1891/291 385/1892/288 419/601/288 417/604/291 +f 404/574/290 402/573/292 418/603/292 420/602/290 +f 387/1893/293 386/1894/291 417/597/291 415/600/293 +f 402/571/292 400/570/294 416/599/294 418/598/292 +f 388/1895/295 387/1896/293 415/593/293 413/596/295 +f 400/568/294 398/567/289 414/595/289 416/594/294 +f 389/1897/290 388/1898/295 413/589/295 411/592/290 +f 445/1899/124 444/1900/289 465/1901/289 464/1902/124 +f 450/1903/290 452/1904/125 456/1905/125 455/1906/290 +f 452/1904/125 439/1907/295 457/1908/295 456/1905/125 +f 442/1909/288 445/1910/124 464/1911/124 463/1912/288 +f 451/1913/131 450/1903/290 455/1906/290 470/1914/131 +f 443/1915/129 442/1909/288 463/1912/288 462/1916/129 +f 448/1917/292 451/1913/131 470/1914/131 469/1918/292 +f 440/1919/291 443/1915/129 462/1916/129 461/1920/291 +f 449/1921/126 448/1917/292 469/1918/292 468/1922/126 +f 441/1923/127 440/1919/291 461/1920/291 460/1924/127 +f 446/1925/294 449/1921/126 468/1922/126 467/1926/294 +f 437/1927/293 441/1923/127 460/1924/127 459/1928/293 +f 447/1929/130 446/1925/294 467/1926/294 466/1930/130 +f 438/1931/128 437/1927/293 459/1928/293 458/1932/128 +f 444/1900/289 447/1929/130 466/1930/130 465/1901/289 +f 439/1907/295 438/1931/128 458/1932/128 457/1908/295 +f 911/1933/353 912/1934/173 688/1935/173 687/1936/353 +f 913/1937/126 914/1938/354 691/1939/354 690/1940/126 +f 694/1034/355 693/1033/355 702/1041/356 700/1941/356 +f 915/1942/357 911/1933/353 687/1936/353 686/1943/357 +f 916/1944/358 913/1937/126 690/1940/126 689/1945/358 +f 700/1941/356 702/1041/356 701/1946/359 699/1947/359 +f 917/1948/360 692/1949/361 684/1950/361 683/1951/360 +f 696/1952/362 915/1942/357 686/1943/357 685/1953/362 +f 912/1934/173 916/1944/358 689/1945/358 688/1935/173 +f 699/1947/359 701/1946/359 918/1954/127 698/1955/127 +f 914/1938/354 917/1948/360 683/1951/360 691/1939/354 +f 695/1035/363 697/1038/363 698/1955/127 918/1954/127 +f 919/1956/155 920/1957/356 709/1958/356 708/1959/155 +f 921/1960/126 922/1961/354 706/1962/354 705/1963/126 +f 923/1964/364 924/1965/357 713/1966/357 712/1967/364 +f 925/1968/353 926/1969/173 703/1970/173 714/1971/353 +f 920/1957/356 927/1972/359 710/1973/359 709/1958/356 +f 922/1961/354 928/1974/360 707/1975/360 706/1962/354 +f 924/1965/357 925/1976/353 714/1977/353 713/1966/357 +f 926/1969/173 929/1978/358 704/1979/358 703/1970/173 +f 927/1972/359 930/1980/127 711/1981/127 710/1973/359 +f 928/1974/360 919/1956/155 708/1959/155 707/1975/360 +f 929/1978/358 921/1960/126 705/1963/126 704/1979/358 +f 930/1980/127 923/1964/364 712/1967/364 711/1981/127 +f 931/1982/365 932/1983/366 933/1984/367 934/1985/368 +f 935/1986/369 936/1987/370 937/1988/371 938/1989/372 +f 939/1990/373 940/1991/374 941/1992/375 942/1993/376 +f 943/1994/377 944/1995/378 945/1996/379 946/1997/380 +f 946/1997/380 945/1996/379 940/1991/374 939/1990/373 +f 947/1998/381 948/1999/382 944/1995/378 943/1994/377 +f 945/1996/379 949/2000/383 950/2001/384 940/1991/374 +f 948/1999/382 951/2002/385 952/2003/386 944/1995/378 +f 940/1991/374 950/2001/384 953/2004/387 941/1992/375 +f 944/1995/378 952/2003/386 949/2000/383 945/1996/379 +f 954/2005/373 955/2006/374 956/2007/375 957/2008/376 +f 958/2009/377 959/2010/378 960/2011/379 961/2012/380 +f 961/2012/380 960/2011/379 955/2006/374 954/2005/373 +f 962/2013/381 963/2014/382 959/2010/378 958/2009/377 +f 960/2011/379 964/2015/383 965/2016/384 955/2006/374 +f 963/2014/382 966/2017/385 967/2018/386 959/2010/378 +f 955/2006/374 965/2016/384 968/2019/387 956/2007/375 +f 959/2010/378 967/2018/386 964/2015/383 960/2011/379 +f 969/2020/373 970/2021/374 971/2022/375 972/2023/376 +f 973/2024/377 974/2025/388 975/2026/379 976/2027/380 +f 976/2027/380 975/2026/379 970/2021/374 969/2020/373 +f 977/2028/381 978/2029/382 974/2025/388 973/2024/377 +f 975/2026/379 979/2030/383 980/2031/384 970/2021/374 +f 978/2029/382 981/2032/385 982/2033/386 974/2025/388 +f 970/2021/374 980/2031/384 983/2034/387 971/2022/375 +f 974/2025/388 982/2033/386 979/2030/383 975/2026/379 +f 939/1990/373 942/1993/376 984/2035/295 985/2036/125 +f 954/2005/373 957/2008/376 986/2037/295 987/2038/125 +f 946/1997/380 939/1990/373 985/2036/125 988/2039/131 +f 943/1994/377 946/1997/380 988/2039/131 989/2040/126 +f 969/2020/373 972/2023/376 990/2041/295 991/2042/125 +f 961/2012/380 954/2005/373 987/2038/125 992/2043/131 +f 947/1998/381 943/1994/377 989/2040/126 993/2044/294 +f 958/2009/377 961/2012/380 992/2043/131 994/2045/126 +f 976/2027/380 969/2020/373 991/2042/125 995/2046/131 +f 973/2024/377 976/2027/380 995/2046/131 996/2047/126 +f 962/2013/381 958/2009/377 994/2045/126 997/2048/294 +f 977/2028/381 973/2024/377 996/2047/126 998/2049/294 +f 932/1983/366 935/1986/369 938/1989/372 933/1984/367 +f 999/2050/389 931/1982/365 934/1985/368 1000/2051/390 +f 933/1984/367 938/1989/372 1001/2052/391 1002/2053/392 +f 1000/2051/390 934/1985/368 1003/2054/393 1004/2055/394 +f 938/1989/372 937/1988/371 1005/2056/395 1001/2052/391 +f 934/1985/368 933/1984/367 1002/2053/392 1003/2054/393 +f 1006/2057/369 1007/2058/370 1008/2059/371 1009/2060/396 +f 1010/2061/365 1011/2062/366 1012/2063/367 1013/2064/368 +f 1011/2062/366 1006/2057/369 1009/2060/396 1012/2063/367 +f 1014/2065/389 1010/2061/365 1013/2064/368 1015/2066/390 +f 1012/2063/367 1009/2060/396 1016/2067/391 1017/2068/392 +f 1015/2066/390 1013/2064/368 1018/2069/393 1019/2070/394 +f 1009/2060/396 1008/2059/371 1020/2071/395 1016/2067/391 +f 1013/2064/368 1012/2063/367 1017/2068/392 1018/2069/393 +f 1021/2072/369 1022/2073/370 1023/2074/371 1024/2075/372 +f 1025/2076/365 1026/2077/366 1027/2078/367 1028/2079/397 +f 1026/2077/366 1021/2072/369 1024/2075/372 1027/2078/367 +f 1029/2080/389 1025/2076/365 1028/2079/397 1030/2081/390 +f 1027/2078/367 1024/2075/372 1031/2082/391 1032/2083/392 +f 1030/2081/390 1028/2079/397 1033/2084/393 1034/2085/394 +f 1024/2075/372 1023/2074/371 1035/2086/395 1031/2082/391 +f 1028/2079/397 1027/2078/367 1032/2083/392 1033/2084/393 +f 935/1986/369 1036/2087/125 1037/2088/290 936/1987/370 +f 1006/2057/369 1038/2089/125 1039/2090/290 1007/2058/370 +f 932/1983/366 1040/2091/128 1036/2087/125 935/1986/369 +f 931/1982/365 1041/2092/127 1040/2091/128 932/1983/366 +f 1021/2072/369 1042/2093/125 1043/2094/290 1022/2073/370 +f 1011/2062/366 1044/2095/128 1038/2089/125 1006/2057/369 +f 999/2050/389 1045/2096/291 1041/2092/127 931/1982/365 +f 1010/2061/365 1046/2097/127 1044/2095/128 1011/2062/366 +f 1026/2077/366 1047/2098/128 1042/2093/125 1021/2072/369 +f 1025/2076/365 1048/2099/127 1047/2098/128 1026/2077/366 +f 1014/2065/389 1049/2100/291 1046/2097/127 1010/2061/365 +f 1029/2080/389 1050/2101/291 1048/2099/127 1025/2076/365 +f 1092/2102/398 1093/2103/399 1094/2104/400 1095/2105/401 +f 1096/2106/402 1097/2107/147 1098/2108/403 1099/2109/404 +f 1100/2110/405 1101/2111/406 1102/2112/407 1103/2113/408 +f 1101/2111/406 1104/2114/409 1105/2115/410 1102/2112/407 +f 1106/2116/148 1092/2102/398 1095/2105/401 1107/2117/411 +f 1093/2103/399 1096/2106/402 1099/2109/404 1094/2104/400 +f 1097/2107/147 1100/2110/405 1103/2113/408 1098/2108/403 +f 1104/2114/409 1106/2118/148 1107/2119/411 1105/2115/410 +f 1103/2113/408 1102/2112/407 1108/2120/412 1109/2121/413 +f 1099/2109/404 1098/2108/403 1110/2122/150 1111/2123/414 +f 1095/2105/401 1094/2104/400 1112/2124/415 1113/2125/416 +f 1105/2115/410 1107/2119/411 1114/2126/152 1115/2127/417 +f 1098/2108/403 1103/2113/408 1109/2121/413 1110/2122/150 +f 1094/2104/400 1099/2109/404 1111/2123/414 1112/2124/415 +f 1107/2117/411 1095/2105/401 1113/2125/416 1114/2128/152 +f 1102/2112/407 1105/2115/410 1115/2127/417 1108/2120/412 +f 1114/2128/152 1113/2125/416 1116/2129/318 1117/2130/136 +f 1108/2120/412 1115/2127/417 1118/2131/317 1119/2132/322 +f 1109/2121/413 1108/2120/412 1119/2132/322 1120/2133/418 +f 1111/2123/414 1110/2122/150 1121/2134/132 1122/2135/419 +f 1113/2125/416 1112/2124/415 1123/2136/319 1116/2129/318 +f 1115/2127/417 1114/2126/152 1117/2137/136 1118/2131/317 +f 1110/2122/150 1109/2121/413 1120/2133/418 1121/2134/132 +f 1112/2124/415 1111/2123/414 1122/2135/419 1123/2136/319 +f 1121/2134/132 1120/2133/418 1124/2138/420 1125/2139/421 +f 1123/2136/319 1122/2135/419 1126/2140/422 1127/2141/423 +f 1117/2130/136 1116/2129/318 1128/2142/424 1129/2143/425 +f 1119/2132/322 1118/2131/317 1130/2144/426 1131/2145/427 +f 1120/2133/418 1119/2132/322 1131/2145/427 1124/2138/420 +f 1122/2135/419 1121/2134/132 1125/2139/421 1126/2140/422 +f 1116/2129/318 1123/2136/319 1127/2141/423 1128/2142/424 +f 1118/2131/317 1117/2137/136 1129/2146/425 1130/2144/426 +f 1132/2147/292 1133/2148/428 1064/1252/428 1061/1249/292 +f 1134/2149/429 1135/2150/430 1052/1240/430 1066/1254/429 +f 1136/2151/291 1137/2152/431 1056/1244/431 1053/1241/291 +f 1138/2153/432 1139/2154/433 1060/1248/433 1057/1245/432 +f 1133/2148/428 1134/2155/429 1066/1256/429 1064/1252/428 +f 1135/2150/430 1136/2151/291 1053/1241/291 1052/1240/430 +f 1137/2152/431 1138/2153/432 1057/1245/432 1056/1244/431 +f 1139/2154/433 1132/2147/292 1061/1249/292 1060/1248/433 +f 1069/2156/431 1068/2157/291 1078/1268/291 1081/1271/431 +f 1063/1251/433 1062/1250/292 1077/1267/292 1076/1266/433 +f 1070/2158/432 1069/2156/431 1081/1271/431 1083/1273/432 +f 1062/1250/292 1065/1253/428 1080/1270/428 1077/1267/292 +f 1071/2159/433 1070/2160/432 1083/1277/432 1085/1276/433 +f 1065/1253/428 1067/1257/429 1082/1272/429 1080/1270/428 +f 1072/2161/292 1071/2159/433 1085/1276/433 1087/1279/292 +f 1067/1255/429 1055/1243/430 1084/1275/430 1082/1274/429 +f 1058/1246/432 1063/1251/433 1076/1266/433 1090/1282/432 +f 1068/2157/291 1075/2162/430 1079/1269/430 1078/1268/291 +f 1059/1247/431 1058/1246/432 1090/1282/432 1088/1280/431 +f 1075/2162/430 1074/2163/429 1091/1283/429 1079/1269/430 +f 1054/1242/291 1059/1247/431 1088/1280/431 1086/1278/291 +f 1074/2163/429 1073/2164/428 1089/1281/428 1091/1283/429 +f 1055/1243/430 1054/1242/291 1086/1278/291 1084/1275/430 +f 1073/2164/428 1072/2161/292 1087/1279/292 1089/1281/428 +f 1180/2165/434 1181/2166/435 1182/2167/436 1183/2168/437 +f 1184/2169/438 1185/2170/439 1186/2171/440 1187/2172/441 +f 1188/2173/442 1189/2174/443 1190/2175/444 1191/2176/445 +f 1189/2174/443 1192/2177/446 1193/2178/447 1190/2175/444 +f 1194/2179/448 1180/2165/434 1183/2168/437 1195/2180/449 +f 1181/2166/435 1184/2169/438 1187/2172/441 1182/2167/436 +f 1185/2170/439 1188/2173/442 1191/2176/445 1186/2171/440 +f 1192/2177/446 1194/2181/448 1195/2182/449 1193/2178/447 +f 1191/2176/445 1190/2175/444 1196/2183/450 1197/2184/451 +f 1187/2172/441 1186/2171/440 1198/2185/452 1199/2186/453 +f 1183/2168/437 1182/2167/436 1200/2187/454 1201/2188/455 +f 1193/2178/447 1195/2182/449 1202/2189/456 1203/2190/457 +f 1186/2171/440 1191/2176/445 1197/2184/451 1198/2185/452 +f 1182/2167/436 1187/2172/441 1199/2186/453 1200/2187/454 +f 1195/2180/449 1183/2168/437 1201/2188/455 1202/2191/456 +f 1190/2175/444 1193/2178/447 1203/2190/457 1196/2183/450 +f 1202/2191/456 1201/2188/455 1204/2192/458 1205/2193/136 +f 1196/2183/450 1203/2190/457 1206/2194/459 1207/2195/460 +f 1197/2184/451 1196/2183/450 1207/2195/460 1208/2196/461 +f 1199/2186/453 1198/2185/452 1209/2197/132 1210/2198/462 +f 1201/2188/455 1200/2187/454 1211/2199/463 1204/2192/458 +f 1203/2190/457 1202/2189/456 1205/2200/136 1206/2194/459 +f 1198/2185/452 1197/2184/451 1208/2196/461 1209/2197/132 +f 1200/2187/454 1199/2186/453 1210/2198/462 1211/2199/463 +f 1209/2197/132 1208/2196/461 1212/2201/464 1213/2202/465 +f 1211/2199/463 1210/2198/462 1214/2203/466 1215/2204/467 +f 1205/2193/136 1204/2192/458 1216/2205/468 1217/2206/469 +f 1207/2195/460 1206/2194/459 1218/2207/470 1219/2208/471 +f 1208/2196/461 1207/2195/460 1219/2208/471 1212/2201/464 +f 1210/2198/462 1209/2197/132 1213/2202/465 1214/2203/466 +f 1204/2192/458 1211/2199/463 1215/2204/467 1216/2205/468 +f 1206/2194/459 1205/2200/136 1217/2209/469 1218/2207/470 +f 1220/2210/289 1221/2211/472 1152/1296/472 1149/1293/289 +f 1222/2212/473 1223/2213/474 1140/1284/474 1154/1298/473 +f 1224/2214/295 1225/2215/475 1144/1288/475 1141/1285/295 +f 1226/2216/476 1227/2217/477 1148/1292/477 1145/1289/476 +f 1221/2211/472 1222/2218/473 1154/1300/473 1152/1296/472 +f 1223/2213/474 1224/2214/295 1141/1285/295 1140/1284/474 +f 1225/2215/475 1226/2216/476 1145/1289/476 1144/1288/475 +f 1227/2217/477 1220/2210/289 1149/1293/289 1148/1292/477 +f 1157/2219/475 1156/2220/295 1166/1312/295 1169/1315/475 +f 1151/1295/477 1150/1294/289 1165/1311/289 1164/1310/477 +f 1158/2221/476 1157/2219/475 1169/1315/475 1171/1317/476 +f 1150/1294/289 1153/1297/472 1168/1314/472 1165/1311/289 +f 1159/2222/477 1158/2223/476 1171/1321/476 1173/1320/477 +f 1153/1297/472 1155/1301/473 1170/1316/473 1168/1314/472 +f 1160/2224/289 1159/2222/477 1173/1320/477 1175/1323/289 +f 1155/1299/473 1143/1287/474 1172/1319/474 1170/1318/473 +f 1146/1290/476 1151/1295/477 1164/1310/477 1178/1326/476 +f 1156/2220/295 1163/2225/474 1167/1313/474 1166/1312/295 +f 1147/1291/475 1146/1290/476 1178/1326/476 1176/1324/475 +f 1163/2225/474 1162/2226/473 1179/1327/473 1167/1313/474 +f 1142/1286/295 1147/1291/475 1176/1324/475 1174/1322/295 +f 1162/2226/473 1161/2227/472 1177/1325/472 1179/1327/473 +f 1143/1287/474 1142/1286/295 1174/1322/295 1172/1319/474 +f 1161/2227/472 1160/2224/289 1175/1323/289 1177/1325/472 +f 1268/2228/478 1269/2229/479 1270/2230/480 1271/2231/481 +f 1272/2232/482 1273/2233/483 1274/2234/484 1275/2235/485 +f 1276/2236/486 1277/2237/487 1278/2238/488 1279/2239/489 +f 1277/2237/487 1280/2240/490 1281/2241/491 1278/2238/488 +f 1282/2242/492 1268/2228/478 1271/2231/481 1283/2243/493 +f 1269/2229/479 1272/2232/482 1275/2235/485 1270/2230/480 +f 1273/2233/483 1276/2236/486 1279/2239/489 1274/2234/484 +f 1280/2240/490 1282/2244/492 1283/2245/493 1281/2241/491 +f 1279/2239/489 1278/2238/488 1284/2246/494 1285/2247/495 +f 1275/2235/485 1274/2234/484 1286/2248/496 1287/2249/497 +f 1271/2231/481 1270/2230/480 1288/2250/498 1289/2251/499 +f 1281/2241/491 1283/2245/493 1290/2252/500 1291/2253/501 +f 1274/2234/484 1279/2239/489 1285/2247/495 1286/2248/496 +f 1270/2230/480 1275/2235/485 1287/2249/497 1288/2250/498 +f 1283/2243/493 1271/2231/481 1289/2251/499 1290/2254/500 +f 1278/2238/488 1281/2241/491 1291/2253/501 1284/2246/494 +f 1290/2254/500 1289/2251/499 1292/2255/459 1293/2256/136 +f 1284/2246/494 1291/2253/501 1294/2257/458 1295/2258/463 +f 1285/2247/495 1284/2246/494 1295/2258/463 1296/2259/502 +f 1287/2249/497 1286/2248/496 1297/2260/132 1298/2261/503 +f 1289/2251/499 1288/2250/498 1299/2262/460 1292/2255/459 +f 1291/2253/501 1290/2252/500 1293/2263/136 1294/2257/458 +f 1286/2248/496 1285/2247/495 1296/2259/502 1297/2260/132 +f 1288/2250/498 1287/2249/497 1298/2261/503 1299/2262/460 +f 1297/2260/132 1296/2259/502 1300/2264/504 1301/2265/505 +f 1299/2262/460 1298/2261/503 1302/2266/506 1303/2267/507 +f 1293/2256/136 1292/2255/459 1304/2268/508 1305/2269/509 +f 1295/2258/463 1294/2257/458 1306/2270/510 1307/2271/511 +f 1296/2259/502 1295/2258/463 1307/2271/511 1300/2264/504 +f 1298/2261/503 1297/2260/132 1301/2265/505 1302/2266/506 +f 1292/2255/459 1299/2262/460 1303/2267/507 1304/2268/508 +f 1294/2257/458 1293/2263/136 1305/2272/509 1306/2270/510 +f 1308/2273/295 1309/2274/512 1240/1340/512 1237/1337/295 +f 1310/2275/513 1311/2276/514 1228/1328/514 1242/1342/513 +f 1312/2277/289 1313/2278/515 1232/1332/515 1229/1329/289 +f 1314/2279/516 1315/2280/517 1236/1336/517 1233/1333/516 +f 1309/2274/512 1310/2281/513 1242/1344/513 1240/1340/512 +f 1311/2276/514 1312/2277/289 1229/1329/289 1228/1328/514 +f 1313/2278/515 1314/2279/516 1233/1333/516 1232/1332/515 +f 1315/2280/517 1308/2273/295 1237/1337/295 1236/1336/517 +f 1245/2282/515 1244/2283/289 1254/1356/289 1257/1359/515 +f 1239/1339/517 1238/1338/295 1253/1355/295 1252/1354/517 +f 1246/2284/516 1245/2282/515 1257/1359/515 1259/1361/516 +f 1238/1338/295 1241/1341/512 1256/1358/512 1253/1355/295 +f 1247/2285/517 1246/2286/516 1259/1365/516 1261/1364/517 +f 1241/1341/512 1243/1345/513 1258/1360/513 1256/1358/512 +f 1248/2287/295 1247/2285/517 1261/1364/517 1263/1367/295 +f 1243/1343/513 1231/1331/514 1260/1363/514 1258/1362/513 +f 1234/1334/516 1239/1339/517 1252/1354/517 1266/1370/516 +f 1244/2283/289 1251/2288/514 1255/1357/514 1254/1356/289 +f 1235/1335/515 1234/1334/516 1266/1370/516 1264/1368/515 +f 1251/2288/514 1250/2289/513 1267/1371/513 1255/1357/514 +f 1230/1330/289 1235/1335/515 1264/1368/515 1262/1366/289 +f 1250/2289/513 1249/2290/512 1265/1369/512 1267/1371/513 +f 1231/1331/514 1230/1330/289 1262/1366/289 1260/1363/514 +f 1249/2290/512 1248/2287/295 1263/1367/295 1265/1369/512 +f 1356/2291/518 1357/2292/519 1358/2293/520 1359/2294/521 +f 1360/2295/522 1361/2296/523 1362/2297/524 1363/2298/525 +f 1364/2299/526 1365/2300/527 1366/2301/528 1367/2302/529 +f 1365/2300/527 1368/2303/530 1369/2304/531 1366/2301/528 +f 1370/2305/532 1356/2291/518 1359/2294/521 1371/2306/533 +f 1357/2292/519 1360/2295/522 1363/2298/525 1358/2293/520 +f 1361/2296/523 1364/2299/526 1367/2302/529 1362/2297/524 +f 1368/2303/530 1370/2307/532 1371/2308/533 1369/2304/531 +f 1367/2302/529 1366/2301/528 1372/2309/534 1373/2310/535 +f 1363/2298/525 1362/2297/524 1374/2311/392 1375/2312/536 +f 1359/2294/521 1358/2293/520 1376/2313/537 1377/2314/538 +f 1369/2304/531 1371/2308/533 1378/2315/539 1379/2316/540 +f 1362/2297/524 1367/2302/529 1373/2310/535 1374/2311/392 +f 1358/2293/520 1363/2298/525 1375/2312/536 1376/2313/537 +f 1371/2306/533 1359/2294/521 1377/2314/538 1378/2317/539 +f 1366/2301/528 1369/2304/531 1379/2316/540 1372/2309/534 +f 1378/2317/539 1377/2314/538 1380/2318/541 1381/2319/136 +f 1372/2309/534 1379/2316/540 1382/2320/542 1383/2321/543 +f 1373/2310/535 1372/2309/534 1383/2321/543 1384/2322/544 +f 1375/2312/536 1374/2311/392 1385/2323/132 1386/2324/545 +f 1377/2314/538 1376/2313/537 1387/2325/546 1380/2318/541 +f 1379/2316/540 1378/2315/539 1381/2326/136 1382/2320/542 +f 1374/2311/392 1373/2310/535 1384/2322/544 1385/2323/132 +f 1376/2313/537 1375/2312/536 1386/2324/545 1387/2325/546 +f 1385/2323/132 1384/2322/544 1388/2327/547 1389/2328/548 +f 1387/2325/546 1386/2324/545 1390/2329/549 1391/2330/550 +f 1381/2319/136 1380/2318/541 1392/2331/551 1393/2332/552 +f 1383/2321/543 1382/2320/542 1394/2333/553 1395/2334/554 +f 1384/2322/544 1383/2321/543 1395/2334/554 1388/2327/547 +f 1386/2324/545 1385/2323/132 1389/2328/548 1390/2329/549 +f 1380/2318/541 1387/2325/546 1391/2330/550 1392/2331/551 +f 1382/2320/542 1381/2326/136 1393/2335/552 1394/2333/553 +f 1396/2336/288 1397/2337/555 1328/1384/555 1325/1381/288 +f 1398/2338/556 1399/2339/557 1316/1372/557 1330/1386/556 +f 1400/2340/290 1401/2341/558 1320/1376/558 1317/1373/290 +f 1402/2342/559 1403/2343/560 1324/1380/560 1321/1377/559 +f 1397/2337/555 1398/2344/556 1330/1388/556 1328/1384/555 +f 1399/2339/557 1400/2340/290 1317/1373/290 1316/1372/557 +f 1401/2341/558 1402/2342/559 1321/1377/559 1320/1376/558 +f 1403/2343/560 1396/2336/288 1325/1381/288 1324/1380/560 +f 1333/2345/558 1332/2346/290 1342/1400/290 1345/1403/558 +f 1327/1383/560 1326/1382/288 1341/1399/288 1340/1398/560 +f 1334/2347/559 1333/2345/558 1345/1403/558 1347/1405/559 +f 1326/1382/288 1329/1385/555 1344/1402/555 1341/1399/288 +f 1335/2348/560 1334/2349/559 1347/1409/559 1349/1408/560 +f 1329/1385/555 1331/1389/556 1346/1404/556 1344/1402/555 +f 1336/2350/288 1335/2348/560 1349/1408/560 1351/1411/288 +f 1331/1387/556 1319/1375/557 1348/1407/557 1346/1406/556 +f 1322/1378/559 1327/1383/560 1340/1398/560 1354/1414/559 +f 1332/2346/290 1339/2351/557 1343/1401/557 1342/1400/290 +f 1323/1379/558 1322/1378/559 1354/1414/559 1352/1412/558 +f 1339/2351/557 1338/2352/556 1355/1415/556 1343/1401/557 +f 1318/1374/290 1323/1379/558 1352/1412/558 1350/1410/290 +f 1338/2352/556 1337/2353/555 1353/1413/555 1355/1415/556 +f 1319/1375/557 1318/1374/290 1350/1410/290 1348/1407/557 +f 1337/2353/555 1336/2350/288 1351/1411/288 1353/1413/555 +f 1444/2354/561 1445/2355/562 1446/2356/563 1447/2357/564 +f 1448/2358/565 1449/2359/566 1450/2360/567 1451/2361/568 +f 1452/2362/569 1453/2363/570 1454/2364/571 1455/2365/572 +f 1453/2363/570 1456/2366/573 1457/2367/574 1454/2364/571 +f 1458/2368/575 1444/2354/561 1447/2357/564 1459/2369/576 +f 1445/2355/562 1448/2358/565 1451/2361/568 1446/2356/563 +f 1449/2359/566 1452/2362/569 1455/2365/572 1450/2360/567 +f 1456/2366/573 1458/2370/575 1459/2371/576 1457/2367/574 +f 1455/2365/572 1454/2364/571 1460/2372/577 1461/2373/578 +f 1451/2361/568 1450/2360/567 1462/2374/579 1463/2375/580 +f 1447/2357/564 1446/2356/563 1464/2376/581 1465/2377/582 +f 1457/2367/574 1459/2371/576 1466/2378/583 1467/2379/584 +f 1450/2360/567 1455/2365/572 1461/2373/578 1462/2374/579 +f 1446/2356/563 1451/2361/568 1463/2375/580 1464/2376/581 +f 1459/2369/576 1447/2357/564 1465/2377/582 1466/2380/583 +f 1454/2364/571 1457/2367/574 1467/2379/584 1460/2372/577 +f 1466/2380/583 1465/2377/582 1468/2381/542 1469/2382/136 +f 1460/2372/577 1467/2379/584 1470/2383/541 1471/2384/546 +f 1461/2373/578 1460/2372/577 1471/2384/546 1472/2385/545 +f 1463/2375/580 1462/2374/579 1473/2386/132 1474/2387/544 +f 1465/2377/582 1464/2376/581 1475/2388/543 1468/2381/542 +f 1467/2379/584 1466/2378/583 1469/2389/136 1470/2383/541 +f 1462/2374/579 1461/2373/578 1472/2385/545 1473/2386/132 +f 1464/2376/581 1463/2375/580 1474/2387/544 1475/2388/543 +f 1473/2386/132 1472/2385/545 1476/2390/585 1477/2391/586 +f 1475/2388/543 1474/2387/544 1478/2392/587 1479/2393/588 +f 1469/2382/136 1468/2381/542 1480/2394/589 1481/2395/590 +f 1471/2384/546 1470/2383/541 1482/2396/591 1483/2397/592 +f 1472/2385/545 1471/2384/546 1483/2397/592 1476/2390/585 +f 1474/2387/544 1473/2386/132 1477/2391/586 1478/2392/587 +f 1468/2381/542 1475/2388/543 1479/2393/588 1480/2394/589 +f 1470/2383/541 1469/2389/136 1481/2398/590 1482/2396/591 +f 1484/2399/290 1485/2400/593 1416/1428/593 1413/1425/290 +f 1486/2401/594 1487/2402/595 1404/1416/595 1418/1430/594 +f 1488/2403/288 1489/2404/596 1408/1420/596 1405/1417/288 +f 1490/2405/597 1491/2406/598 1412/1424/598 1409/1421/597 +f 1485/2400/593 1486/2407/594 1418/1432/594 1416/1428/593 +f 1487/2402/595 1488/2403/288 1405/1417/288 1404/1416/595 +f 1489/2404/596 1490/2405/597 1409/1421/597 1408/1420/596 +f 1491/2406/598 1484/2399/290 1413/1425/290 1412/1424/598 +f 1421/2408/596 1420/2409/288 1430/1444/288 1433/1447/596 +f 1415/1427/598 1414/1426/290 1429/1443/290 1428/1442/598 +f 1422/2410/597 1421/2408/596 1433/1447/596 1435/1449/597 +f 1414/1426/290 1417/1429/593 1432/1446/593 1429/1443/290 +f 1423/2411/598 1422/2412/597 1435/1453/597 1437/1452/598 +f 1417/1429/593 1419/1433/594 1434/1448/594 1432/1446/593 +f 1424/2413/290 1423/2411/598 1437/1452/598 1439/1455/290 +f 1419/1431/594 1407/1419/595 1436/1451/595 1434/1450/594 +f 1410/1422/597 1415/1427/598 1428/1442/598 1442/1458/597 +f 1420/2409/288 1427/2414/595 1431/1445/595 1430/1444/288 +f 1411/1423/596 1410/1422/597 1442/1458/597 1440/1456/596 +f 1427/2414/595 1426/2415/594 1443/1459/594 1431/1445/595 +f 1406/1418/288 1411/1423/596 1440/1456/596 1438/1454/288 +f 1426/2415/594 1425/2416/593 1441/1457/593 1443/1459/594 +f 1407/1419/595 1406/1418/288 1438/1454/288 1436/1451/595 +f 1425/2416/593 1424/2413/290 1439/1455/290 1441/1457/593 +f 1532/2417/599 1533/2418/600 1534/2419/601 1535/2420/602 +f 1536/2421/603 1537/2422/604 1538/2423/605 1539/2424/606 +f 1540/2425/607 1541/2426/608 1542/2427/609 1543/2428/610 +f 1541/2426/608 1544/2429/611 1545/2430/612 1542/2427/609 +f 1546/2431/613 1532/2417/599 1535/2420/602 1547/2432/614 +f 1533/2418/600 1536/2421/603 1539/2424/606 1534/2419/601 +f 1537/2422/604 1540/2425/607 1543/2428/610 1538/2423/605 +f 1544/2429/611 1546/2433/613 1547/2434/614 1545/2430/612 +f 1543/2428/610 1542/2427/609 1548/2435/615 1549/2436/616 +f 1539/2424/606 1538/2423/605 1550/2437/617 1551/2438/618 +f 1535/2420/602 1534/2419/601 1552/2439/619 1553/2440/620 +f 1545/2430/612 1547/2434/614 1554/2441/621 1555/2442/622 +f 1538/2423/605 1543/2428/610 1549/2436/616 1550/2437/617 +f 1534/2419/601 1539/2424/606 1551/2438/618 1552/2439/619 +f 1547/2432/614 1535/2420/602 1553/2440/620 1554/2443/621 +f 1542/2427/609 1545/2430/612 1555/2442/622 1548/2435/615 +f 1554/2443/621 1553/2440/620 1556/2444/623 1557/2445/136 +f 1548/2435/615 1555/2442/622 1558/2446/624 1559/2447/625 +f 1549/2436/616 1548/2435/615 1559/2447/625 1560/2448/626 +f 1551/2438/618 1550/2437/617 1561/2449/132 1562/2450/627 +f 1553/2440/620 1552/2439/619 1563/2451/628 1556/2444/623 +f 1555/2442/622 1554/2441/621 1557/2452/136 1558/2446/624 +f 1550/2437/617 1549/2436/616 1560/2448/626 1561/2449/132 +f 1552/2439/619 1551/2438/618 1562/2450/627 1563/2451/628 +f 1561/2449/132 1560/2448/626 1564/2453/629 1565/2454/630 +f 1563/2451/628 1562/2450/627 1566/2455/631 1567/2456/632 +f 1557/2445/136 1556/2444/623 1568/2457/633 1569/2458/634 +f 1559/2447/625 1558/2446/624 1570/2459/635 1571/2460/636 +f 1560/2448/626 1559/2447/625 1571/2460/636 1564/2453/629 +f 1562/2450/627 1561/2449/132 1565/2454/630 1566/2455/631 +f 1556/2444/623 1563/2451/628 1567/2456/632 1568/2457/633 +f 1558/2446/624 1557/2452/136 1569/2461/634 1570/2459/635 +f 1572/2462/294 1573/2463/637 1504/1472/637 1501/1469/294 +f 1574/2464/638 1575/2465/639 1492/1460/639 1506/1474/638 +f 1576/2466/293 1577/2467/640 1496/1464/640 1493/1461/293 +f 1578/2468/641 1579/2469/642 1500/1468/642 1497/1465/641 +f 1573/2463/637 1574/2470/638 1506/1476/638 1504/1472/637 +f 1575/2465/639 1576/2466/293 1493/1461/293 1492/1460/639 +f 1577/2467/640 1578/2468/641 1497/1465/641 1496/1464/640 +f 1579/2469/642 1572/2462/294 1501/1469/294 1500/1468/642 +f 1509/2471/640 1508/2472/293 1518/1488/293 1521/1491/640 +f 1503/1471/642 1502/1470/294 1517/1487/294 1516/1486/642 +f 1510/2473/641 1509/2471/640 1521/1491/640 1523/1493/641 +f 1502/1470/294 1505/1473/637 1520/1490/637 1517/1487/294 +f 1511/2474/642 1510/2475/641 1523/1497/641 1525/1496/642 +f 1505/1473/637 1507/1477/638 1522/1492/638 1520/1490/637 +f 1512/2476/294 1511/2474/642 1525/1496/642 1527/1499/294 +f 1507/1475/638 1495/1463/639 1524/1495/639 1522/1494/638 +f 1498/1466/641 1503/1471/642 1516/1486/642 1530/1502/641 +f 1508/2472/293 1515/2477/639 1519/1489/639 1518/1488/293 +f 1499/1467/640 1498/1466/641 1530/1502/641 1528/1500/640 +f 1515/2477/639 1514/2478/638 1531/1503/638 1519/1489/639 +f 1494/1462/293 1499/1467/640 1528/1500/640 1526/1498/293 +f 1514/2478/638 1513/2479/637 1529/1501/637 1531/1503/638 +f 1495/1463/639 1494/1462/293 1526/1498/293 1524/1495/639 +f 1513/2479/637 1512/2476/294 1527/1499/294 1529/1501/637 +f 1620/2480/643 1621/2481/644 1622/2482/645 1623/2483/646 +f 1624/2484/647 1625/2485/648 1626/2486/649 1627/2487/650 +f 1628/2488/651 1629/2489/652 1630/2490/653 1631/2491/654 +f 1629/2489/652 1632/2492/655 1633/2493/656 1630/2490/653 +f 1634/2494/657 1620/2480/643 1623/2483/646 1635/2495/658 +f 1621/2481/644 1624/2484/647 1627/2487/650 1622/2482/645 +f 1625/2485/648 1628/2488/651 1631/2491/654 1626/2486/649 +f 1632/2492/655 1634/2496/657 1635/2497/658 1633/2493/656 +f 1631/2491/654 1630/2490/653 1636/2498/659 1637/2499/660 +f 1627/2487/650 1626/2486/649 1638/2500/383 1639/2501/661 +f 1623/2483/646 1622/2482/645 1640/2502/662 1641/2503/663 +f 1633/2493/656 1635/2497/658 1642/2504/664 1643/2505/665 +f 1626/2486/649 1631/2491/654 1637/2499/660 1638/2500/383 +f 1622/2482/645 1627/2487/650 1639/2501/661 1640/2502/662 +f 1635/2495/658 1623/2483/646 1641/2503/663 1642/2506/664 +f 1630/2490/653 1633/2493/656 1643/2505/665 1636/2498/659 +f 1642/2506/664 1641/2503/663 1644/2507/624 1645/2508/136 +f 1636/2498/659 1643/2505/665 1646/2509/623 1647/2510/628 +f 1637/2499/660 1636/2498/659 1647/2510/628 1648/2511/627 +f 1639/2501/661 1638/2500/383 1649/2512/132 1650/2513/626 +f 1641/2503/663 1640/2502/662 1651/2514/625 1644/2507/624 +f 1643/2505/665 1642/2504/664 1645/2515/136 1646/2509/623 +f 1638/2500/383 1637/2499/660 1648/2511/627 1649/2512/132 +f 1640/2502/662 1639/2501/661 1650/2513/626 1651/2514/625 +f 1649/2512/132 1648/2511/627 1652/2516/666 1653/2517/667 +f 1651/2514/625 1650/2513/626 1654/2518/668 1655/2519/669 +f 1645/2508/136 1644/2507/624 1656/2520/670 1657/2521/671 +f 1647/2510/628 1646/2509/623 1658/2522/672 1659/2523/673 +f 1648/2511/627 1647/2510/628 1659/2523/673 1652/2516/666 +f 1650/2513/626 1649/2512/132 1653/2517/667 1654/2518/668 +f 1644/2507/624 1651/2514/625 1655/2519/669 1656/2520/670 +f 1646/2509/623 1645/2515/136 1657/2524/671 1658/2522/672 +f 1660/2525/293 1661/2526/674 1592/1516/674 1589/1513/293 +f 1662/2527/675 1663/2528/676 1580/1504/676 1594/1518/675 +f 1664/2529/294 1665/2530/677 1584/1508/677 1581/1505/294 +f 1666/2531/678 1667/2532/679 1588/1512/679 1585/1509/678 +f 1661/2526/674 1662/2533/675 1594/1520/675 1592/1516/674 +f 1663/2528/676 1664/2529/294 1581/1505/294 1580/1504/676 +f 1665/2530/677 1666/2531/678 1585/1509/678 1584/1508/677 +f 1667/2532/679 1660/2525/293 1589/1513/293 1588/1512/679 +f 1597/2534/677 1596/2535/294 1606/1532/294 1609/1535/677 +f 1591/1515/679 1590/1514/293 1605/1531/293 1604/1530/679 +f 1598/2536/678 1597/2534/677 1609/1535/677 1611/1537/678 +f 1590/1514/293 1593/1517/674 1608/1534/674 1605/1531/293 +f 1599/2537/679 1598/2538/678 1611/1541/678 1613/1540/679 +f 1593/1517/674 1595/1521/675 1610/1536/675 1608/1534/674 +f 1600/2539/293 1599/2537/679 1613/1540/679 1615/1543/293 +f 1595/1519/675 1583/1507/676 1612/1539/676 1610/1538/675 +f 1586/1510/678 1591/1515/679 1604/1530/679 1618/1546/678 +f 1596/2535/294 1603/2540/676 1607/1533/676 1606/1532/294 +f 1587/1511/677 1586/1510/678 1618/1546/678 1616/1544/677 +f 1603/2540/676 1602/2541/675 1619/1547/675 1607/1533/676 +f 1582/1506/294 1587/1511/677 1616/1544/677 1614/1542/294 +f 1602/2541/675 1601/2542/674 1617/1545/674 1619/1547/675 +f 1583/1507/676 1582/1506/294 1614/1542/294 1612/1539/676 +f 1601/2542/674 1600/2539/293 1615/1543/293 1617/1545/674 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon.png index 8a5fb8d117c6e8e91287724f110a2b25ac19f5ac..c581b38ae7e1baf8c6690090441fec5da627a8f7 100644 GIT binary patch delta 2128 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 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_0.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_0.png new file mode 100644 index 0000000000000000000000000000000000000000..f495fbdfa2ddb8c5d7cf021218d9d9222e543607 GIT binary patch literal 144 zcmeAS@N?(olHy`uVBq!ia0vp^EI=&4!3HD^x83^;5-4`^4B-HR8jh3>Am827#W6%; zYVx1@=7;voLJ3I;KyalYVFyDSSIU7iANm(Qe2}T}UfwXufJI`#yC3Hd9Qg46KX2Rr mlo^g~))5jw@M^OF6NC3N;kOJEDlLFUGI+ZBxvXAm7{5#W6%; zYVx1@=7;voLJ3I;KyalYVFyDSSIU7iANm(Qe2}T}UfwXufJI`#yC3Hd9Qg46KX2Rr slo^g|tpELQPhewXJN8Q_FVdQ&MBb@0G)X>y#N3J literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_10.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_10.png new file mode 100644 index 0000000000000000000000000000000000000000..0f3ba18831ed0f93773737e02e70f038ce8fdc05 GIT binary patch literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^EI=&4!3HD^x83^;5-4`^4B-HR8jh3>AV0v<#W6%; zYH$BR-UbB$7WUj@w=$TbKj$)s9R9%|df3_Q=JB{P^_>ZBR=Ny{tLylj7hm^Ev_CiP y)ZGiOG}+QzTumSUPf1zw!zgG@VvETB_wkwAl@`Q(mk0-%&EVAm7>3#W6%; z>fHW=oCgeejy&Am7!~#W6%; z>fHW=oDB{F%;{^7-P+cfTfAFRo_(H@dWORM2`wr)PnviYz8ws%u(;sZ;N{}F_K52f n-vjexzwPgPZ@uVK-G2s;vl{Vy4Am7E)#W6%; z>fHW=oCgeen9t8$wz-mX{ma~S{SLD(xqGtyl5z4#RPN?$uxM9zXjhL2?Od^9>JP6P m<~O?!|GU0%zp~c+@A^HR8u8baZn6T+WAJqKb6Mw<&;$UM)GmVn literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_14.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_14.png new file mode 100644 index 0000000000000000000000000000000000000000..4270afad14bbb04ca0fbba70a4f6808dedb4b028 GIT binary patch literal 138 zcmeAS@N?(olHy`uVBq!ia0vp^EI=&4!3HD^x83^;5-4`^4B-HR8jh3>Am7o`#W6%; z>fHW~yax<;4!^LQeE(0&{V(QkX0S*$g)LSP47zb*5xYX$kpe0Aq+r!Wi^3l5Ei!s@ ja>IYaeeXL?{r$)NNL?+yqdEF2&@cv1S3j3^P6Am7W=#W6%; zYVx1@=7;voLJ3I;KyalYVFyDSSIU7iANm(Qe2}T}UfwXufJI`#yC3Hd9Qg46KX2Rr rlo^eOW&i(oHZare`5L+69ybP0l+XkKZ!9#F literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_3.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_3.png new file mode 100644 index 0000000000000000000000000000000000000000..cae11f3fb152454a78b08191d164c0cfff8fdb7d GIT binary patch literal 152 zcmeAS@N?(olHy`uVBq!ia0vp^EI=&4!3HD^x83^;5-4`^4B-HR8jh3>Am889#W6%; z>fHW~ybT6CEczRGHm7oKmNMl|nI*#-C^ALuk*avzUjKh7j%>LMFDsTy2Pa+ed%EY{ ywyRSopIq=)aRKXp10`jxtS6#wU4Pd8XIN$;wW8qVnomHZ89ZJ6T-G@yGywqbiZS5; literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_4.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_4.png new file mode 100644 index 0000000000000000000000000000000000000000..44bc064316438e9dbcc2018b53d25de35e86547e GIT binary patch literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^EI=&4!3HD^x83^;5-4`^4B-HR8jh3>AV0v<#W6%; zYH$BW-UA8(%9m2=g`UkZRu;bH-xjo%6Rt z?{@02)wVZ?-FbV#tznLUsOj>#eJ5W2|Hpn^P;SZYJF=EQvl%>H{an^LB{Ts5)#Wro literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_5.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_5.png new file mode 100644 index 0000000000000000000000000000000000000000..900289ac16c1eb1907cbc71ae35c354a3c39cd52 GIT binary patch literal 156 zcmeAS@N?(olHy`uVBq!ia0vp^EI=&4!3HD^x83^;5-4`^4B-HR8jh3>AV1jC#W6%; zYH$BR-UbB$7WUj@w=$TbKj$)s9RATDz%$9>q+MR|?w#CeDGAIR?xE((dMD03RCza7 zt6pic<8EgMV?Cv)uQw+uEn2i}#~TR_&3*Ul8KmyWEeYPAV1jC#W6%; zYH$BR-UbB`XZc+{n>Vtodv=p`M%!~n0|_DL$#Qj<&Hf(j;km(ZDDWrOzJ`%7rqHjAO4ZoZ8waA}DHl^xj8tPR+Xe^$c+{Am7i^#W6%; z>fHW~ybT5d%T`Q|7{y#%w?2?}^V3&eF6s8<%iMa#MImxarhVD#4>Xy<)78&qol`;+0Dbl@yZ`_I literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_8.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_8.png new file mode 100644 index 0000000000000000000000000000000000000000..53cf4aa43211e1a7990f456eb5322ce1ff947572 GIT binary patch literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^EI=&4!3HD^x83^;5-4`^4B-HR8jh3>AV0v<#W6%; zYH$BR-Ub7nBQX(eH#fON_L_62%$nscDDrXT(&{HuBD@SIHnJ|rvGxCWTOu;^&GAbA z+-FO~Z!sq*X|3wq+&58b{o-Rii?96HSI_v!Kxx5@K%<91vl%>H{an^LB{Ts56JRv@ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_9.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_9.png new file mode 100644 index 0000000000000000000000000000000000000000..db86ae0595776556476698dc557593e4cd263957 GIT binary patch literal 154 zcmeAS@N?(olHy`uVBq!ia0vp^EI=&4!3HD^x83^;5-4`^4B-HR8jh3>AV1L4#W6%; zYH$BR-UbB$7WUj@w=$TbKj$)s9RAUu!Pc9%sekvKbI+P2Uz#wsEd3S3Bfd9{>-Dzn zEBCl<`PJDd85nr>N369`&>jiRe~B$3@88R-{#IJ>_J)rt&~OG%S3j3^P65> literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_0.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_0.png new file mode 100644 index 0000000000000000000000000000000000000000..ac7bde5d9eb10ed229aedd20ab56eb3928442905 GIT binary patch literal 220 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfVZG1wLN(;dT*RWgWi!zRf(x8Fzoh`uzB*{ok=sow-F{(R;DZ RHK6ktJYD@<);T3K0RRQqRMP+e literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_1.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_1.png new file mode 100644 index 0000000000000000000000000000000000000000..572ed079928896004e4a0db7df5bd56cc8e21f9b GIT binary patch literal 225 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfw7caMZFnfrnB;!(9nOR5z%?!R%bv}|&KxE6bX zl@puAd8v&j3eK6|RsWz?cIeitlUJk=wynxNIvlK-!=u5R05qfG?| z{M-*PJm1@rR#+$XW;2_10ke;)-0X^t0q-3)fAI-+7O3^rf5_M~wIxF3%(1_>yl+ff z5$TcU=XRQ>!1LLs`@0Wig)L)JII#Ao)OClaTNk*nO4&Gs&Uvr$=I*ap-yc7<|2sCT Y-+y5sS{5vO7U)U_Pgg&ebxsLQ0AH(I!TGIWp&tb z28y!pI4Ts*-M_-uE{$7KKrm#h{@bJ-#}@l$b*TMitcv^G6#vM!Z}%VV|BlW2cW#)4 TdtW;Zax;UctDnm{r-UW|aN|)= literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_3.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_3.png new file mode 100644 index 0000000000000000000000000000000000000000..71aec62b02cf1c83d6b10b23a22ec6835b0d4824 GIT binary patch literal 219 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfaSXBO zy*ue3FO#BxtNgLWwKF1)1~k+P@J-viQF{h1RH6U? literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_5.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_5.png new file mode 100644 index 0000000000000000000000000000000000000000..c83bb391302ceb7241e8754f28a40edd96ca7e9e GIT binary patch literal 208 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf{~)BCOV6tfq%kkqPdMP`S3 z^9>hQ6wmlE_kg3wp;^Dzy?DN;n9WRzRe^uWT7v?q;PeMy)viev&OiQ(ODSQoV?x-I zOOgz22eR({;X2DClr;69?^KJe2ZeufInS?uD$nso_L#xH&F<}KKqoPHy85}Sb4q9e E0M6h{T>t<8 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_6.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_6.png new file mode 100644 index 0000000000000000000000000000000000000000..d4ffd98e2384976b4afefecf5e8a2b0b374aec82 GIT binary patch literal 204 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf33s79-SmT_)hi@2z|S=?p%~G0t)!Hq5>_yabJxZ;Ex^$!@j%qK9O5t#RvJ>ZFEA8QwH w1G|#ji^mKvUIoNBco>_R_At+z(%#6(U?*;vlYHf7B+xkwp00i_>zopr0A%bz+5i9m literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_7.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_7.png new file mode 100644 index 0000000000000000000000000000000000000000..2b2d05ff59bb24ce931a26565b2fcc60fa207baf GIT binary patch literal 222 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfvJw#&xYXmz`?x{ N@O1TaS?83{1OQVzO9%h} literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_8.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_8.png new file mode 100644 index 0000000000000000000000000000000000000000..1c00d206e3fb0a64e4817dd4ddbc414ec2a5604c GIT binary patch literal 213 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf)8nsR*!8Jg;L+j2nD*ICrC$~baY^`A%&3rey1jcFd)n-c3mId%B^iG0 zZsA?@uI`C-W48q7Y02`)KP{fN8yrvhd0#v5a#m5R=z%$F9`rS^(M6hNUPyL~ z0_Q|!vx-$UpS5kcmfX$mP!oH1UtxW)u+7A5(`TR8|6y*FEqiIE=hn~k66h`lPgg&e IbxsLQ0JLvToB#j- literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_9.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_9.png new file mode 100644 index 0000000000000000000000000000000000000000..73745acb05e60ea1129f78cfb73fc4c01ad85d9c GIT binary patch literal 227 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf06M5lfc}a#S6QieNl5wRM8-o{r}kx>E#d zgB9M)R4Q7J^=O#J6vcVe#^B{({Us2*kr zc+RDk@$H+eZS)3yIcB|Qxs&=Ao|BrfKy{KggUY91~tGzWc+vUblRv$_u66HC}GyE{ePVb;bGppZLYrw4T?EJyrCA73eMoPgg&e IbxsLQ07@QB{r~^~ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_0.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_0.png new file mode 100644 index 0000000000000000000000000000000000000000..0dcb3691aab717842198054621bb62ecb0fff467 GIT binary patch literal 235 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfUs*oe*kF75F1|B7#MKHNVGDIoqT))c&~>(6tPnu6{1-oD!M<;1E@b literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_1.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_1.png new file mode 100644 index 0000000000000000000000000000000000000000..a463074ae0c1b4a3625a791d6f53aa63db0e2d16 GIT binary patch literal 242 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf#(=nrs34<>$=G85ZB&oV8$8z*SbC zqft8=J}`7}xTGk=<=kTwlx5$-sIfF><8L;@W0f)4ttWObop^K0rf8>gH)mN^@5=qt oYVezXCHIU;dyZ%xx?lg8+i{7N6R&GV0npJ5p00i_>zopr0QFs4+W-In literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_2.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_2.png new file mode 100644 index 0000000000000000000000000000000000000000..cbeba973020a461702cf478ff3445fe29acac35f GIT binary patch literal 247 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfQ-Z^UN?LWlNxn6nMuv}f>>2pSKxtQt#q+~P3GQ8I2%5-VIh$Imfz_pF*H!41M*eT>1qE|9G4*FN^bQaXg&59QKC$IA0lE)*b zJL?)4-)(KPsh#%vaGf&421omr%_5zC@dw$Cvi&W(R`THfDnmDhLz@oFnZMG?z&NQ# zx?*+qyG0%k)L#6yTU{C(E@Cyukz*lO+bNz)9C=&}74K&=T~&P7xT=eJkH@xC&%{DZ wPYWxg%f4}5@@K*<7VQ-*F^B*DHQ&b&{M@qq{`?R7fNp2-boFyt=akR{0Oo^ZE&u=k literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_6.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_6.png new file mode 100644 index 0000000000000000000000000000000000000000..8f5eaa8d429138e89203b8e92117f8012bf9365f GIT binary patch literal 247 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf_>-=KL2FoBz=?H5B)|>5G${U((m_na@VDmdzIH%d5KqOH8A$K=fMoK+_vw9r97Gc59M(<-q_ twkIo^?+a{{4+>3a(<$Kl{{8+BR`qJLdB;~5o&ma?!PC{xWt~$(69C|XU-SR~ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_7.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_7.png new file mode 100644 index 0000000000000000000000000000000000000000..b0fc60ea39927c65700937d416ee32d63db6f191 GIT binary patch literal 243 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfV! p6khrNu=A;9vkXuF`D=cUvGtfWUX9pE?0MZ!S{`0&J1Pg7VbdNSR$0!wRv*Iqw>0idHg}tZsfEuvR}vc!H~G fV&8}F_kXZSoHvx!X|HhvI+nrH)z4*}Q$iB}1-n^M literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_empty.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_empty.png new file mode 100644 index 0000000000000000000000000000000000000000..61183254ec1050227ae17ea7159208630d77a6ff GIT binary patch literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfft~yVwc=-6yAHgy?XSQ7?lQIJCC$UMa zGfUyT85RFcn&H5rcLyT77TgZsup;70@TRP$4fA#_o!MYHf9Ko-iOVXxo{7n^1pEz= za@nM{T6f3EsSK89LKyE0Y1%K*I^e6ic=hk!`8CYCbJQy$-WSUO9mL@2>gTe~DWM4f Df{;(D literal 0 HcmV?d00001 From e269653c69638e8bd41c016e196aa5251fb2c279 Mon Sep 17 00:00:00 2001 From: Bob Date: Mon, 22 May 2023 18:59:22 +0200 Subject: [PATCH 055/432] fixed none keybind --- gradle.properties | 2 +- src/main/java/com/hbm/lib/RefStrings.java | 2 +- src/main/java/com/hbm/main/ModEventHandlerClient.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/gradle.properties b/gradle.properties index c7f807b69..b9eb6b50b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4606 +mod_build_number=4607 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models, porting),\ diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 7f4e466a7..f3cc40fb2 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4606)"; + public static final String VERSION = "1.0.27 BETA (4607)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 0b0967b59..68e243c6e 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -996,7 +996,7 @@ public class ModEventHandlerClient { for(Object o : KeyBinding.keybindArray) { KeyBinding key = (KeyBinding) o; - if(key.getKeyCode() == keyCode && KeyBinding.hash.lookup(key.getKeyCode()) != key) { + if(keyCode != 0 && key.getKeyCode() == keyCode && KeyBinding.hash.lookup(key.getKeyCode()) != key) { key.pressed = state; if(state) { From 7d49108c95506fce810423274bfff723710a18e5 Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 23 May 2023 16:33:16 +0200 Subject: [PATCH 056/432] some model garbage --- .../assets/hbm/models/weapons/cryo_cannon.obj | 2267 ++--- .../hbm/models/weapons/cryo_cannon_alt.obj | 8217 +++++++++++++++++ .../hbm/textures/models/tank/tank_IONGEL.png | Bin 0 -> 1172 bytes .../textures/models/weapons/cryo_cannon.png | Bin 2242 -> 2283 bytes 4 files changed, 9453 insertions(+), 1031 deletions(-) create mode 100644 src/main/resources/assets/hbm/models/weapons/cryo_cannon_alt.obj create mode 100644 src/main/resources/assets/hbm/textures/models/tank/tank_IONGEL.png diff --git a/src/main/resources/assets/hbm/models/weapons/cryo_cannon.obj b/src/main/resources/assets/hbm/models/weapons/cryo_cannon.obj index 32b7cee31..32f6af5ba 100644 --- a/src/main/resources/assets/hbm/models/weapons/cryo_cannon.obj +++ b/src/main/resources/assets/hbm/models/weapons/cryo_cannon.obj @@ -2367,6 +2367,74 @@ v 0.360260 0.313847 -0.109375 v 0.025412 0.247242 -0.109375 v 0.402115 0.212799 0.109375 v 0.025412 0.137868 0.109375 +v 0.375000 2.500000 -1.875000 +v 0.375000 2.500000 -0.875000 +v -0.375000 2.500000 -1.875000 +v -0.375000 2.500000 -0.875000 +v 0.375000 2.250000 -1.875000 +v 0.375000 2.250000 -0.875000 +v -0.375000 2.250000 -1.875000 +v -0.375000 2.250000 -0.875000 +v 0.000000 2.500000 -1.875000 +v -0.088388 2.463388 -1.875000 +v -0.125000 2.375000 -1.875000 +v 0.125000 2.375000 -1.875000 +v 0.088388 2.463388 -1.875000 +v 0.000000 2.500000 -1.125000 +v -0.088388 2.463388 -1.125000 +v -0.125000 2.375000 -1.125000 +v 0.125000 2.375000 -1.125000 +v 0.088388 2.463388 -1.125000 +v 0.000000 2.426777 -0.948223 +v -0.088388 2.400888 -0.974111 +v -0.125000 2.338388 -1.036612 +v 0.125000 2.338388 -1.036612 +v 0.088388 2.400888 -0.974111 +v 0.000000 2.250000 -0.875000 +v -0.088388 2.250000 -0.911611 +v -0.125000 2.250000 -1.000000 +v 0.125000 2.250000 -1.000000 +v 0.088388 2.250000 -0.911611 +v 0.250000 2.500000 -1.875000 +v 0.161612 2.463388 -1.875000 +v 0.125000 2.375000 -1.875000 +v 0.375000 2.375000 -1.875000 +v 0.338388 2.463388 -1.875000 +v 0.250000 2.500000 -1.125000 +v 0.161612 2.463388 -1.125000 +v 0.125000 2.375000 -1.125000 +v 0.375000 2.375000 -1.125000 +v 0.338388 2.463388 -1.125000 +v 0.250000 2.426777 -0.948223 +v 0.161612 2.400888 -0.974111 +v 0.125000 2.338388 -1.036612 +v 0.375000 2.338388 -1.036612 +v 0.338388 2.400888 -0.974111 +v 0.250000 2.250000 -0.875000 +v 0.161612 2.250000 -0.911611 +v 0.125000 2.250000 -1.000000 +v 0.375000 2.250000 -1.000000 +v 0.338388 2.250000 -0.911611 +v -0.250000 2.500000 -1.875000 +v -0.338388 2.463388 -1.875000 +v -0.375000 2.375000 -1.875000 +v -0.125000 2.375000 -1.875000 +v -0.161612 2.463388 -1.875000 +v -0.250000 2.500000 -1.125000 +v -0.338388 2.463388 -1.125000 +v -0.375000 2.375000 -1.125000 +v -0.125000 2.375000 -1.125000 +v -0.161612 2.463388 -1.125000 +v -0.250000 2.426777 -0.948223 +v -0.338388 2.400888 -0.974111 +v -0.375000 2.338388 -1.036612 +v -0.125000 2.338388 -1.036612 +v -0.161612 2.400888 -0.974111 +v -0.250000 2.250000 -0.875000 +v -0.338388 2.250000 -0.911611 +v -0.375000 2.250000 -1.000000 +v -0.125000 2.250000 -1.000000 +v -0.161612 2.250000 -0.911611 vt 0.227586 -0.000000 vt 0.255172 -0.000000 vt 0.255172 0.125000 @@ -2827,20 +2895,16 @@ vt 0.351724 0.140625 vt 0.324138 0.187500 vt 0.324138 0.093750 vt 0.344828 0.093750 -vt 0.000000 0.000000 -vt 1.000000 0.000000 -vt 1.000000 1.000000 -vt 0.000000 1.000000 -vt 0.000000 0.000000 -vt 1.000000 0.000000 -vt 1.000000 1.000000 -vt 0.000000 1.000000 -vt 0.000000 0.000000 -vt 1.000000 0.000000 -vt 1.000000 1.000000 -vt 0.000000 1.000000 -vt 0.000000 0.000000 -vt 1.000000 0.000000 +vt 0.696552 0.687500 +vt 0.696552 0.625000 +vt 0.703448 0.625000 +vt 0.703448 0.687500 +vt 0.696552 0.500000 +vt 0.696552 0.437500 +vt 0.703448 0.437500 +vt 0.703448 0.500000 +vt 0.731034 0.437500 +vt 0.731034 0.687500 vt 0.413793 0.914062 vt 0.413793 0.859375 vt 0.420690 0.859375 @@ -3086,8 +3150,9 @@ vt 0.986207 0.531250 vt 0.972414 0.593750 vt 0.972414 0.562500 vt 0.979310 0.578125 -vt 0.551724 0.500000 vt 0.551724 0.625000 +vt 0.565517 0.609375 +vt 0.620690 0.609375 vt 0.620690 0.734375 vt 0.606897 0.734375 vt 0.620690 0.640625 @@ -3098,6 +3163,7 @@ vt 0.662069 0.734375 vt 0.648276 0.640625 vt 0.565517 0.390625 vt 0.565517 0.484375 +vt 0.551724 0.500000 vt 0.662069 0.375000 vt 0.606897 0.390625 vt 0.620690 0.484375 @@ -3772,6 +3838,28 @@ vt 0.096552 0.281250 vt 0.117241 0.281250 vt 0.089655 0.328125 vt 0.089655 0.296875 +vt 0.455172 0.531250 +vt 0.510345 0.531250 +vt 0.510345 0.562500 +vt 0.455172 0.562500 +vt 0.620690 0.515625 +vt 0.565517 0.515625 +vt 0.565517 0.515625 +vt 0.620690 0.515625 +vt 0.620690 0.609375 +vt 0.565517 0.609375 +vt 0.441379 0.609375 +vt 0.441379 0.515625 +vt 0.455172 0.515625 +vt 0.455172 0.609375 +vt 0.524138 0.515625 +vt 0.524138 0.609375 +vt 0.510345 0.609375 +vt 0.510345 0.515625 +vt 0.510345 0.593750 +vt 0.455172 0.593750 +vt 0.455172 0.562500 +vt 0.510345 0.562500 vt 0.089655 0.375000 vt 0.089655 0.421875 vt 0.075862 0.421875 @@ -4587,6 +4675,66 @@ vt 0.158621 0.109375 vt 0.179310 0.109375 vt 0.172414 0.109375 vt 0.165517 0.109375 +vt 0.255172 0.234375 +vt 0.255172 0.218750 +vt 0.296552 0.218750 +vt 0.296552 0.234375 +vt 0.255172 0.203125 +vt 0.255172 0.187500 +vt 0.296552 0.187500 +vt 0.296552 0.203125 +vt 0.255172 0.250000 +vt 0.296552 0.250000 +vt 0.310345 0.187500 +vt 0.310345 0.203125 +vt 0.310345 0.234375 +vt 0.310345 0.250000 +vt 0.310345 0.218750 +vt 0.324138 0.218750 +vt 0.324138 0.234375 +vt 0.324138 0.187500 +vt 0.324138 0.203125 +vt 0.324138 0.250000 +vt 0.255172 0.234375 +vt 0.255172 0.218750 +vt 0.296552 0.218750 +vt 0.296552 0.234375 +vt 0.255172 0.203125 +vt 0.255172 0.187500 +vt 0.296552 0.187500 +vt 0.296552 0.203125 +vt 0.255172 0.250000 +vt 0.296552 0.250000 +vt 0.310345 0.187500 +vt 0.310345 0.203125 +vt 0.310345 0.234375 +vt 0.310345 0.250000 +vt 0.310345 0.218750 +vt 0.324138 0.218750 +vt 0.324138 0.234375 +vt 0.324138 0.187500 +vt 0.324138 0.203125 +vt 0.324138 0.250000 +vt 0.255172 0.234375 +vt 0.255172 0.218750 +vt 0.296552 0.218750 +vt 0.296552 0.234375 +vt 0.255172 0.203125 +vt 0.255172 0.187500 +vt 0.296552 0.187500 +vt 0.296552 0.203125 +vt 0.255172 0.250000 +vt 0.296552 0.250000 +vt 0.310345 0.187500 +vt 0.310345 0.203125 +vt 0.310345 0.234375 +vt 0.310345 0.250000 +vt 0.310345 0.218750 +vt 0.324138 0.218750 +vt 0.324138 0.234375 +vt 0.324138 0.187500 +vt 0.324138 0.203125 +vt 0.324138 0.250000 vn 0.0000 -1.0000 -0.0000 vn 0.0000 1.0000 0.0000 vn -1.0000 0.0000 0.0000 @@ -5143,6 +5291,19 @@ vn -0.8985 0.3215 -0.2988 vn -0.4080 -0.8627 0.2988 vn 0.3468 -0.8373 0.4226 vn 0.8985 -0.3215 0.2988 +vn -0.0000 0.9824 0.1866 +vn 0.6794 0.7194 0.1448 +vn -0.9204 0.3812 0.0866 +vn -0.6794 0.7194 0.1448 +vn 0.9204 0.3812 0.0866 +vn -0.9239 0.2706 0.2706 +vn -0.6630 0.5294 0.5294 +vn 0.6630 0.5294 0.5294 +vn 0.9239 0.2706 0.2706 +vn 0.6333 0.2962 0.7150 +vn -0.9125 0.1566 0.3780 +vn -0.6333 0.2962 0.7150 +vn 0.9125 0.1566 0.3780 s off f 227/323/124 228/324/124 229/325/124 230/326/124 f 231/327/125 232/328/125 233/329/125 234/330/125 @@ -5308,1036 +5469,1080 @@ f 526/772/128 525/771/128 529/779/128 528/774/128 f 524/777/130 523/781/130 527/782/130 530/778/130 f 328/783/129 332/784/129 531/785/129 532/786/129 f 331/787/130 279/788/130 533/789/130 534/790/130 -f 332/791/124 331/792/124 534/793/124 531/794/124 -f 531/795/138 534/796/138 533/789/138 532/786/138 -f 535/797/127 536/798/127 537/799/127 538/800/127 -f 539/801/126 540/802/126 541/803/126 542/804/126 -f 538/800/154 537/799/154 540/802/154 539/801/154 543/805/154 544/806/154 -f 544/806/155 543/805/155 545/807/155 546/808/155 -f 539/809/156 542/810/156 545/807/156 543/805/156 -f 535/811/157 538/812/157 544/806/157 546/808/157 -f 265/390/124 277/389/124 276/813/124 1051/814/124 -f 547/815/158 548/816/158 549/817/158 550/818/158 -f 551/819/127 552/820/127 553/821/127 549/822/127 548/823/127 554/824/127 -f 550/818/148 549/817/148 553/825/148 555/826/148 -f 555/826/159 553/825/159 552/827/159 556/828/159 -f 556/829/126 557/830/126 558/831/126 547/832/126 550/833/126 555/834/126 -f 559/835/124 560/836/124 561/837/124 562/838/124 -f 561/837/127 560/836/127 563/839/127 564/840/127 -f 559/835/126 562/838/126 565/841/126 566/842/126 -f 567/843/136 568/844/136 569/845/136 570/846/136 -f 571/847/127 572/848/127 570/846/127 569/845/127 -f 573/849/126 574/850/126 568/844/126 567/843/126 -f 574/851/125 571/852/125 569/845/125 568/844/125 -f 572/853/124 573/854/124 567/843/124 570/846/124 -f 575/855/136 576/856/136 577/857/136 578/858/136 -f 579/859/124 580/860/124 578/858/124 577/857/124 -f 581/861/125 582/862/125 576/856/125 575/855/125 -f 582/863/127 579/864/127 577/857/127 576/856/127 -f 580/865/126 581/866/126 575/855/126 578/858/126 -f 583/867/124 584/868/124 585/869/124 586/870/124 -f 587/871/160 588/872/160 589/873/160 590/874/160 -f 591/875/161 592/876/161 593/877/161 594/878/161 -f 586/870/162 585/869/162 592/876/162 591/875/162 -f 590/874/163 589/873/163 584/879/163 583/880/163 -f 594/878/125 593/877/125 588/872/125 587/871/125 -f 594/881/127 587/882/127 590/883/127 583/884/127 586/885/127 591/886/127 -f 595/887/125 596/888/125 597/889/125 598/890/125 -f 599/891/124 600/892/124 601/893/124 602/894/124 -f 596/895/160 603/896/160 604/897/160 597/898/160 -f 605/899/161 595/900/161 598/901/161 606/902/161 -f 600/903/162 605/904/162 606/905/162 601/906/162 -f 603/907/163 599/908/163 602/909/163 604/910/163 -f 602/894/126 601/893/126 607/911/126 608/912/126 -f 597/898/126 604/897/126 609/913/126 610/914/126 -f 606/902/126 598/901/126 611/915/126 612/916/126 -f 601/906/126 606/905/126 612/916/126 607/911/126 -f 604/910/126 602/909/126 608/917/126 609/913/126 -f 598/890/126 597/889/126 610/914/126 611/915/126 -f 607/911/162 612/916/162 613/918/162 614/919/162 -f 609/913/163 608/917/163 615/920/163 616/921/163 -f 611/915/125 610/914/125 617/922/125 618/923/125 -f 608/912/124 607/911/124 614/919/124 615/924/124 -f 610/914/160 609/913/160 616/921/160 617/922/160 -f 612/916/161 611/915/161 618/923/161 613/918/161 -f 617/922/127 616/921/127 619/925/127 620/926/127 -f 618/923/127 617/922/127 620/927/127 621/928/127 -f 613/918/127 618/923/127 621/929/127 622/930/127 -f 614/919/127 613/918/127 622/931/127 623/932/127 -f 615/924/127 614/919/127 623/933/127 624/934/127 -f 616/921/127 615/920/127 624/935/127 619/936/127 -f 619/936/163 624/935/163 625/937/163 626/938/163 -f 621/928/125 620/927/125 627/939/125 628/940/125 -f 624/934/124 623/933/124 629/941/124 625/942/124 -f 620/926/160 619/925/160 626/943/160 627/944/160 -f 622/930/161 621/929/161 628/945/161 630/946/161 -f 623/932/162 622/931/162 630/947/162 629/948/162 -f 627/944/126 626/943/126 631/949/126 632/950/126 -f 628/940/126 627/939/126 632/950/126 633/951/126 -f 630/946/126 628/945/126 633/951/126 634/952/126 -f 629/948/126 630/947/126 634/952/126 635/953/126 -f 625/942/126 629/941/126 635/953/126 636/954/126 -f 626/938/126 625/937/126 636/955/126 631/949/126 -f 633/951/125 632/950/125 637/956/125 638/957/125 -f 636/954/124 635/953/124 639/958/124 640/959/124 -f 632/950/160 631/949/160 641/960/160 637/956/160 -f 634/952/161 633/951/161 638/957/161 642/961/161 -f 635/953/162 634/952/162 642/961/162 639/958/162 -f 631/949/163 636/955/163 640/962/163 641/960/163 -f 642/961/164 638/957/164 643/963/164 644/964/164 -f 639/958/165 642/961/165 644/965/165 645/966/165 -f 641/960/166 640/962/166 646/967/166 647/968/166 -f 638/957/167 637/956/167 648/969/167 643/970/167 -f 640/959/168 639/958/168 645/971/168 646/972/168 -f 637/956/169 641/960/169 647/973/169 648/974/169 -f 643/975/127 648/976/127 647/977/127 646/978/127 645/979/127 644/980/127 -f 649/981/125 650/982/125 651/983/125 652/984/125 -f 653/985/126 654/986/126 655/987/126 656/988/126 657/989/126 -f 652/984/136 651/983/136 658/990/136 659/991/136 -f 651/983/127 650/982/127 660/992/127 658/993/127 -f 649/981/126 652/984/126 659/994/126 661/995/126 -f 662/996/170 663/997/170 664/998/170 665/999/170 -f 666/1000/126 662/1001/126 665/1002/126 667/1003/126 -f 668/1004/134 666/1000/134 667/1003/134 669/1005/134 -f 663/997/127 668/1004/127 669/1005/127 664/998/127 -f 654/986/171 653/985/171 670/1006/171 671/1007/171 -f 657/1008/136 656/1009/136 672/1010/136 673/1011/136 -f 671/1007/127 670/1006/127 673/1012/127 672/1010/127 674/1013/127 -f 654/986/170 671/1007/170 674/1014/170 655/1015/170 -f 655/1016/172 674/1013/172 672/1010/172 656/1009/172 -f 670/1006/134 653/985/134 657/1017/134 673/1018/134 -f 675/1019/170 676/1020/170 677/1021/170 678/1022/170 -f 679/1023/127 680/1024/127 677/1025/127 676/1026/127 -f 681/1027/126 682/1028/126 675/1019/126 678/1022/126 -f 680/1024/172 681/1027/172 678/1022/172 677/1025/172 -f 682/1029/171 679/1023/171 676/1026/171 675/1030/171 -f 684/1031/126 692/1032/126 693/1033/126 694/1034/126 -f 695/1035/173 696/1036/173 685/1037/173 697/1038/173 -f 692/1039/174 701/1040/174 702/1041/174 693/1033/174 -f 453/1042/125 330/481/125 329/480/125 454/1043/125 -f 715/1044/131 716/1045/131 717/1046/131 718/1047/131 -f 259/365/131 454/1043/131 719/1048/131 720/1049/131 -f 329/480/131 260/366/131 721/1050/131 722/1051/131 -f 259/365/131 720/1049/131 716/1045/131 715/1044/131 721/1050/131 260/366/131 -f 454/1043/131 329/480/131 722/1051/131 718/1047/131 717/1046/131 719/1048/131 -f 271/378/128 723/1052/128 724/1053/128 453/1042/128 -f 270/1054/128 725/1055/128 723/1052/128 271/378/128 -f 270/1054/128 330/481/128 726/1056/128 725/1055/128 -f 453/1042/128 724/1053/128 726/1056/128 330/481/128 -f 725/1057/175 726/1058/175 727/1059/175 728/1060/175 -f 721/1061/128 715/1062/128 729/1063/128 730/1064/128 -f 716/1065/176 731/1066/176 732/1067/176 717/1068/176 -f 733/1069/131 730/1064/131 729/1063/131 734/1070/131 -f 719/1071/136 735/1072/136 736/1073/136 720/1074/136 -f 737/1075/128 728/1076/128 727/1059/128 738/1077/128 -f 715/1078/177 718/1079/177 734/1070/177 729/1080/177 -f 720/1081/128 736/1073/128 731/1082/128 716/1083/128 -f 722/1084/178 721/1085/178 730/1086/178 733/1069/178 -f 718/1079/130 722/1084/130 733/1069/130 734/1070/130 -f 738/1077/129 727/1059/129 726/1058/129 724/1087/129 -f 728/1076/131 737/1075/131 723/1088/131 725/1089/131 -f 739/1090/126 740/1091/126 741/1092/126 742/1093/126 -f 740/1094/179 743/1095/179 744/1096/179 741/1097/179 -f 745/1098/127 746/1099/127 747/1100/127 748/1101/127 -f 749/1102/180 739/1090/180 742/1093/180 750/1103/180 -f 748/1101/127 747/1100/127 751/1104/127 752/1105/127 -f 741/1097/181 744/1096/181 753/1106/181 754/1107/181 -f 749/1108/127 743/1109/127 755/1110/127 -f 755/1110/172 756/1111/172 739/1090/172 749/1102/172 -f 756/1111/126 740/1112/126 739/1113/126 -f 746/1114/127 745/1115/127 757/1116/127 -f 757/1116/172 758/1117/172 759/1118/172 746/1099/172 -f 758/1117/126 760/1119/126 759/1120/126 -f 761/1121/136 762/1122/136 756/1111/136 755/1110/136 -f 763/1123/132 764/1124/132 743/1109/132 740/1125/132 -f 765/1126/127 766/1127/127 757/1116/127 745/1115/127 -f 767/1128/126 768/1129/126 760/1119/126 758/1117/126 -f 762/1122/126 763/1130/126 740/1112/126 756/1111/126 -f 766/1127/136 767/1128/136 758/1117/136 757/1116/136 -f 768/1131/132 765/1126/132 745/1115/132 760/1132/132 -f 764/1124/127 761/1121/127 755/1110/127 743/1109/127 -f 760/1133/179 745/1098/179 748/1101/179 769/1134/179 -f 743/1095/127 749/1102/127 750/1103/127 744/1096/127 -f 770/1135/125 771/1136/125 772/1137/125 773/1138/125 -f 732/1067/131 731/1082/131 736/1073/131 735/1072/131 -f 717/1068/130 732/1067/130 735/1072/130 719/1139/130 -f 737/1075/136 738/1077/136 724/1140/136 723/1141/136 -f 747/1100/182 774/1142/182 775/1143/182 751/1104/182 -f 774/1142/126 769/1144/126 776/1145/126 775/1143/126 -f 742/1093/126 741/1092/126 754/1146/126 777/1147/126 -f 769/1134/181 748/1101/181 752/1105/181 776/1148/181 -f 744/1096/127 750/1103/127 778/1149/127 753/1106/127 -f 750/1103/182 742/1093/182 777/1147/182 778/1149/182 -f 759/1118/126 760/1150/126 769/1144/126 774/1142/126 -f 746/1099/180 759/1118/180 774/1142/180 747/1100/180 -f 779/1151/162 780/1152/162 781/1153/162 782/1154/162 -f 771/1136/132 783/1155/132 784/1156/132 772/1137/132 -f 782/1154/124 781/1153/124 785/1157/124 786/1158/124 -f 783/1155/124 787/1159/124 788/1160/124 784/1156/124 -f 786/1161/163 785/1162/163 789/1163/163 790/1164/163 -f 787/1159/136 770/1165/136 773/1166/136 788/1160/136 -f 790/1164/160 789/1163/160 791/1167/160 792/1168/160 -f 781/1169/127 780/1170/127 793/1171/127 791/1172/127 789/1173/127 785/1174/127 -f 792/1168/125 791/1167/125 793/1175/125 794/1176/125 -f 794/1176/161 793/1175/161 780/1152/161 779/1151/161 -f 779/1177/126 782/1178/126 786/1179/126 790/1180/126 792/1181/126 794/1182/126 -f 784/1156/129 788/1160/129 795/1183/129 796/1184/129 -f 784/1185/132 796/1184/132 772/1186/132 -f 773/1187/136 795/1183/136 788/1188/136 -f 795/1183/136 773/1187/136 797/1189/136 798/1190/136 -f 798/1191/124 797/1192/124 799/1193/124 800/1194/124 -f 796/1184/127 795/1183/127 798/1190/127 801/1195/127 -f 772/1186/132 796/1184/132 801/1195/132 802/1196/132 -f 773/1197/126 772/1186/126 802/1196/126 797/1198/126 -f 798/1191/127 803/1199/127 801/1200/127 -f 802/1201/126 804/1202/126 797/1203/126 -f 801/1195/170 803/1199/170 804/1202/170 802/1196/170 -f 805/1204/180 806/1205/180 807/1206/180 808/1207/180 -f 803/1199/127 798/1191/127 800/1194/127 806/1205/127 -f 804/1202/125 803/1199/125 806/1205/125 805/1204/125 -f 797/1203/126 804/1202/126 805/1204/126 799/1208/126 -f 809/1209/127 810/1210/127 807/1211/127 -f 799/1208/126 805/1204/126 808/1207/126 811/1212/126 -f 800/1194/179 799/1193/179 811/1213/179 809/1214/179 -f 806/1205/127 800/1194/127 809/1214/127 807/1206/127 -f 807/1206/172 810/1210/172 812/1215/172 808/1207/172 -f 811/1216/126 812/1215/126 813/1217/126 814/1218/126 -f 811/1216/126 808/1219/126 812/1215/126 -f 815/1220/132 814/1221/132 816/1222/132 817/1223/132 -f 809/1209/132 811/1224/132 814/1225/132 818/1226/132 -f 810/1210/127 809/1209/127 818/1226/127 819/1227/127 -f 812/1215/136 810/1210/136 819/1227/136 813/1217/136 -f 819/1228/136 820/1229/136 813/1230/136 -f 818/1226/129 815/1220/129 820/1229/129 819/1227/129 -f 814/1221/132 815/1220/132 818/1231/132 -f 814/1232/125 813/1230/125 821/1233/125 816/1234/125 -f 813/1230/136 820/1229/136 822/1235/136 821/1233/136 -f 820/1229/124 815/1220/124 817/1223/124 822/1235/124 -f 660/1236/124 661/1237/124 659/1238/124 658/1239/124 -f 1052/1240/183 1053/1241/183 1054/1242/183 1055/1243/183 -f 1056/1244/183 1057/1245/183 1058/1246/183 1059/1247/183 -f 1060/1248/183 1061/1249/183 1062/1250/183 1063/1251/183 -f 1061/1249/183 1064/1252/183 1065/1253/183 1062/1250/183 -f 1066/1254/183 1052/1240/183 1055/1243/183 1067/1255/183 -f 1053/1241/183 1056/1244/183 1059/1247/183 1054/1242/183 -f 1057/1245/183 1060/1248/183 1063/1251/183 1058/1246/183 -f 1064/1252/183 1066/1256/183 1067/1257/183 1065/1253/183 -f 1068/1258/183 1069/1259/183 1070/1260/183 1071/1261/183 1072/1262/183 1073/1263/183 1074/1264/183 1075/1265/183 -f 1076/1266/183 1077/1267/183 1078/1268/183 1079/1269/183 -f 1077/1267/183 1080/1270/183 1081/1271/183 1078/1268/183 -f 1080/1270/184 1082/1272/184 1083/1273/184 1081/1271/184 -f 1082/1274/184 1084/1275/184 1085/1276/184 1083/1277/184 -f 1084/1275/183 1086/1278/183 1087/1279/183 1085/1276/183 -f 1086/1278/184 1088/1280/184 1089/1281/184 1087/1279/184 -f 1088/1280/184 1090/1282/184 1091/1283/184 1089/1281/184 -f 1090/1282/184 1076/1266/184 1079/1269/184 1091/1283/184 -f 1140/1284/185 1141/1285/185 1142/1286/185 1143/1287/185 -f 1144/1288/185 1145/1289/185 1146/1290/185 1147/1291/185 -f 1148/1292/185 1149/1293/185 1150/1294/185 1151/1295/185 -f 1149/1293/185 1152/1296/185 1153/1297/185 1150/1294/185 -f 1154/1298/185 1140/1284/185 1143/1287/185 1155/1299/185 -f 1141/1285/185 1144/1288/185 1147/1291/185 1142/1286/185 -f 1145/1289/185 1148/1292/185 1151/1295/185 1146/1290/185 -f 1152/1296/185 1154/1300/185 1155/1301/185 1153/1297/185 -f 1156/1302/185 1157/1303/185 1158/1304/185 1159/1305/185 1160/1306/185 1161/1307/185 1162/1308/185 1163/1309/185 -f 1164/1310/185 1165/1311/185 1166/1312/185 1167/1313/185 -f 1165/1311/185 1168/1314/185 1169/1315/185 1166/1312/185 -f 1168/1314/186 1170/1316/186 1171/1317/186 1169/1315/186 -f 1170/1318/186 1172/1319/186 1173/1320/186 1171/1321/186 -f 1172/1319/185 1174/1322/185 1175/1323/185 1173/1320/185 -f 1174/1322/185 1176/1324/185 1177/1325/185 1175/1323/185 -f 1176/1324/186 1178/1326/186 1179/1327/186 1177/1325/186 -f 1178/1326/185 1164/1310/185 1167/1313/185 1179/1327/185 -f 1228/1328/187 1229/1329/187 1230/1330/187 1231/1331/187 -f 1232/1332/187 1233/1333/187 1234/1334/187 1235/1335/187 -f 1236/1336/187 1237/1337/187 1238/1338/187 1239/1339/187 -f 1237/1337/187 1240/1340/187 1241/1341/187 1238/1338/187 -f 1242/1342/187 1228/1328/187 1231/1331/187 1243/1343/187 -f 1229/1329/187 1232/1332/187 1235/1335/187 1230/1330/187 -f 1233/1333/187 1236/1336/187 1239/1339/187 1234/1334/187 -f 1240/1340/187 1242/1344/187 1243/1345/187 1241/1341/187 -f 1244/1346/187 1245/1347/187 1246/1348/187 1247/1349/187 1248/1350/187 1249/1351/187 1250/1352/187 1251/1353/187 -f 1252/1354/187 1253/1355/187 1254/1356/187 1255/1357/187 -f 1253/1355/187 1256/1358/187 1257/1359/187 1254/1356/187 -f 1256/1358/188 1258/1360/188 1259/1361/188 1257/1359/188 -f 1258/1362/188 1260/1363/188 1261/1364/188 1259/1365/188 -f 1260/1363/188 1262/1366/188 1263/1367/188 1261/1364/188 -f 1262/1366/188 1264/1368/188 1265/1369/188 1263/1367/188 -f 1264/1368/188 1266/1370/188 1267/1371/188 1265/1369/188 -f 1266/1370/187 1252/1354/187 1255/1357/187 1267/1371/187 -f 1316/1372/189 1317/1373/189 1318/1374/189 1319/1375/189 -f 1320/1376/189 1321/1377/189 1322/1378/189 1323/1379/189 -f 1324/1380/190 1325/1381/190 1326/1382/190 1327/1383/190 -f 1325/1381/189 1328/1384/189 1329/1385/189 1326/1382/189 -f 1330/1386/189 1316/1372/189 1319/1375/189 1331/1387/189 -f 1317/1373/189 1320/1376/189 1323/1379/189 1318/1374/189 -f 1321/1377/189 1324/1380/189 1327/1383/189 1322/1378/189 -f 1328/1384/189 1330/1388/189 1331/1389/189 1329/1385/189 -f 1332/1390/189 1333/1391/189 1334/1392/189 1335/1393/189 1336/1394/189 1337/1395/189 1338/1396/189 1339/1397/189 -f 1340/1398/190 1341/1399/190 1342/1400/190 1343/1401/190 -f 1341/1399/190 1344/1402/190 1345/1403/190 1342/1400/190 -f 1344/1402/190 1346/1404/190 1347/1405/190 1345/1403/190 -f 1346/1406/190 1348/1407/190 1349/1408/190 1347/1409/190 -f 1348/1407/189 1350/1410/189 1351/1411/189 1349/1408/189 -f 1350/1410/190 1352/1412/190 1353/1413/190 1351/1411/190 -f 1352/1412/190 1354/1414/190 1355/1415/190 1353/1413/190 -f 1354/1414/189 1340/1398/189 1343/1401/189 1355/1415/189 -f 1404/1416/191 1405/1417/191 1406/1418/191 1407/1419/191 -f 1408/1420/191 1409/1421/191 1410/1422/191 1411/1423/191 -f 1412/1424/192 1413/1425/192 1414/1426/192 1415/1427/192 -f 1413/1425/191 1416/1428/191 1417/1429/191 1414/1426/191 -f 1418/1430/191 1404/1416/191 1407/1419/191 1419/1431/191 -f 1405/1417/191 1408/1420/191 1411/1423/191 1406/1418/191 -f 1409/1421/191 1412/1424/191 1415/1427/191 1410/1422/191 -f 1416/1428/191 1418/1432/191 1419/1433/191 1417/1429/191 -f 1420/1434/191 1421/1435/191 1422/1436/191 1423/1437/191 1424/1438/191 1425/1439/191 1426/1440/191 1427/1441/191 -f 1428/1442/192 1429/1443/192 1430/1444/192 1431/1445/192 -f 1429/1443/192 1432/1446/192 1433/1447/192 1430/1444/192 -f 1432/1446/192 1434/1448/192 1435/1449/192 1433/1447/192 -f 1434/1450/192 1436/1451/192 1437/1452/192 1435/1453/192 -f 1436/1451/191 1438/1454/191 1439/1455/191 1437/1452/191 -f 1438/1454/192 1440/1456/192 1441/1457/192 1439/1455/192 -f 1440/1456/192 1442/1458/192 1443/1459/192 1441/1457/192 -f 1442/1458/191 1428/1442/191 1431/1445/191 1443/1459/191 -f 1492/1460/193 1493/1461/193 1494/1462/193 1495/1463/193 -f 1496/1464/193 1497/1465/193 1498/1466/193 1499/1467/193 -f 1500/1468/194 1501/1469/194 1502/1470/194 1503/1471/194 -f 1501/1469/193 1504/1472/193 1505/1473/193 1502/1470/193 -f 1506/1474/193 1492/1460/193 1495/1463/193 1507/1475/193 -f 1493/1461/193 1496/1464/193 1499/1467/193 1494/1462/193 -f 1497/1465/193 1500/1468/193 1503/1471/193 1498/1466/193 -f 1504/1472/193 1506/1476/193 1507/1477/193 1505/1473/193 -f 1508/1478/193 1509/1479/193 1510/1480/193 1511/1481/193 1512/1482/193 1513/1483/193 1514/1484/193 1515/1485/193 -f 1516/1486/194 1517/1487/194 1518/1488/194 1519/1489/194 -f 1517/1487/194 1520/1490/194 1521/1491/194 1518/1488/194 -f 1520/1490/194 1522/1492/194 1523/1493/194 1521/1491/194 -f 1522/1494/194 1524/1495/194 1525/1496/194 1523/1497/194 -f 1524/1495/193 1526/1498/193 1527/1499/193 1525/1496/193 -f 1526/1498/194 1528/1500/194 1529/1501/194 1527/1499/194 -f 1528/1500/194 1530/1502/194 1531/1503/194 1529/1501/194 -f 1530/1502/194 1516/1486/194 1519/1489/194 1531/1503/194 -f 1580/1504/195 1581/1505/195 1582/1506/195 1583/1507/195 -f 1584/1508/195 1585/1509/195 1586/1510/195 1587/1511/195 -f 1588/1512/195 1589/1513/195 1590/1514/195 1591/1515/195 -f 1589/1513/195 1592/1516/195 1593/1517/195 1590/1514/195 -f 1594/1518/195 1580/1504/195 1583/1507/195 1595/1519/195 -f 1581/1505/195 1584/1508/195 1587/1511/195 1582/1506/195 -f 1585/1509/195 1588/1512/195 1591/1515/195 1586/1510/195 -f 1592/1516/195 1594/1520/195 1595/1521/195 1593/1517/195 -f 1596/1522/195 1597/1523/195 1598/1524/195 1599/1525/195 1600/1526/195 1601/1527/195 1602/1528/195 1603/1529/195 -f 1604/1530/196 1605/1531/196 1606/1532/196 1607/1533/196 -f 1605/1531/196 1608/1534/196 1609/1535/196 1606/1532/196 -f 1608/1534/196 1610/1536/196 1611/1537/196 1609/1535/196 -f 1610/1538/196 1612/1539/196 1613/1540/196 1611/1541/196 -f 1612/1539/195 1614/1542/195 1615/1543/195 1613/1540/195 -f 1614/1542/196 1616/1544/196 1617/1545/196 1615/1543/196 -f 1616/1544/196 1618/1546/196 1619/1547/196 1617/1545/196 -f 1618/1546/195 1604/1530/195 1607/1533/195 1619/1547/195 -f 1668/1548/197 1669/1549/197 1670/1550/197 1671/1551/197 -f 1672/1552/198 1673/1553/198 1671/1551/198 1670/1550/198 -f 1674/1554/199 1672/1555/199 1670/1550/199 1669/1549/199 -f 1675/1556/200 1674/1557/200 1669/1549/200 1668/1548/200 -f 1673/1558/201 1675/1559/201 1668/1548/201 1671/1551/201 -f 1676/1560/202 1677/1561/202 1678/1562/202 1679/1563/202 -f 1680/1564/203 1681/1565/203 1679/1563/203 1678/1562/203 -f 1682/1566/204 1680/1567/204 1678/1562/204 1677/1561/204 -f 1683/1568/205 1682/1569/205 1677/1561/205 1676/1560/205 -f 1681/1570/206 1683/1571/206 1676/1560/206 1679/1563/206 -f 1684/1572/207 1685/1573/207 1686/1574/207 1687/1575/207 -f 1688/1576/208 1689/1577/208 1687/1575/208 1686/1574/208 -f 1690/1578/209 1688/1579/209 1686/1574/209 1685/1573/209 -f 1691/1580/210 1690/1581/210 1685/1573/210 1684/1572/210 -f 1689/1582/211 1691/1583/211 1684/1572/211 1687/1575/211 -f 1692/1584/212 1693/1585/212 1694/1586/212 1695/1587/212 -f 1696/1588/213 1697/1589/213 1695/1587/213 1694/1586/213 -f 1698/1590/214 1696/1591/214 1694/1586/214 1693/1585/214 -f 1699/1592/215 1698/1593/215 1693/1585/215 1692/1584/215 -f 1697/1594/216 1699/1595/216 1692/1584/216 1695/1587/216 -f 1700/1596/217 1701/1597/217 1702/1598/217 1703/1599/217 -f 1704/1600/218 1705/1601/218 1703/1599/218 1702/1598/218 -f 1706/1602/219 1704/1603/219 1702/1598/219 1701/1597/219 -f 1707/1604/220 1706/1605/220 1701/1597/220 1700/1596/220 -f 1705/1606/221 1707/1607/221 1700/1596/221 1703/1599/221 -f 1708/1608/222 1709/1609/222 1710/1610/222 1711/1611/222 -f 1712/1612/223 1713/1613/223 1711/1611/223 1710/1610/223 -f 1714/1614/224 1712/1615/224 1710/1610/224 1709/1609/224 -f 1715/1616/225 1714/1617/225 1709/1609/225 1708/1608/225 -f 1713/1618/226 1715/1619/226 1708/1608/226 1711/1611/226 -f 1716/1620/227 1717/1621/227 1718/1622/227 1719/1623/227 -f 1720/1624/228 1721/1625/228 1719/1623/228 1718/1622/228 -f 1722/1626/229 1720/1627/229 1718/1622/229 1717/1621/229 -f 1723/1628/230 1722/1629/230 1717/1621/230 1716/1620/230 -f 1721/1630/231 1723/1631/231 1716/1620/231 1719/1623/231 -f 1724/1632/232 1725/1633/232 1726/1634/232 1727/1635/232 -f 1728/1636/233 1729/1637/233 1727/1635/233 1726/1634/233 -f 1730/1638/234 1728/1639/234 1726/1634/234 1725/1633/234 -f 1731/1640/235 1730/1641/235 1725/1633/235 1724/1632/235 -f 1729/1642/236 1731/1643/236 1724/1632/236 1727/1635/236 -f 1732/1644/237 1733/1645/237 1734/1646/237 1735/1647/237 -f 1736/1648/238 1737/1649/238 1735/1647/238 1734/1646/238 -f 1738/1650/239 1736/1651/239 1734/1646/239 1733/1645/239 -f 1739/1652/240 1738/1653/240 1733/1645/240 1732/1644/240 -f 1737/1654/241 1739/1655/241 1732/1644/241 1735/1647/241 -f 1740/1656/242 1741/1657/242 1742/1658/242 1743/1659/242 -f 1744/1660/243 1745/1661/243 1743/1659/243 1742/1658/243 -f 1746/1662/244 1744/1663/244 1742/1658/244 1741/1657/244 -f 1747/1664/245 1746/1665/245 1741/1657/245 1740/1656/245 -f 1745/1666/246 1747/1667/246 1740/1656/246 1743/1659/246 -f 1748/1668/247 1749/1669/247 1750/1670/247 1751/1671/247 -f 1752/1672/248 1753/1673/248 1751/1671/248 1750/1670/248 -f 1754/1674/249 1752/1675/249 1750/1670/249 1749/1669/249 -f 1755/1676/250 1754/1677/250 1749/1669/250 1748/1668/250 -f 1753/1678/251 1755/1679/251 1748/1668/251 1751/1671/251 -f 1756/1680/252 1757/1681/252 1758/1682/252 1759/1683/252 -f 1760/1684/253 1761/1685/253 1759/1683/253 1758/1682/253 -f 1762/1686/254 1760/1687/254 1758/1682/254 1757/1681/254 -f 1763/1688/255 1762/1689/255 1757/1681/255 1756/1680/255 -f 1761/1690/256 1763/1691/256 1756/1680/256 1759/1683/256 -f 1764/1692/257 1765/1693/257 1766/1694/257 1767/1695/257 -f 1768/1696/258 1769/1697/258 1767/1695/258 1766/1694/258 -f 1770/1698/259 1768/1699/259 1766/1694/259 1765/1693/259 -f 1771/1700/260 1770/1701/260 1765/1693/260 1764/1692/260 -f 1769/1702/261 1771/1703/261 1764/1692/261 1767/1695/261 -f 1772/1704/262 1773/1705/262 1774/1706/262 1775/1707/262 -f 1776/1708/263 1777/1709/263 1775/1707/263 1774/1706/263 -f 1778/1710/264 1776/1711/264 1774/1706/264 1773/1705/264 -f 1779/1712/265 1778/1713/265 1773/1705/265 1772/1704/265 -f 1777/1714/266 1779/1715/266 1772/1704/266 1775/1707/266 -f 1780/1716/267 1781/1717/267 1782/1718/267 1783/1719/267 -f 1784/1720/268 1785/1721/268 1783/1719/268 1782/1718/268 -f 1786/1722/269 1784/1723/269 1782/1718/269 1781/1717/269 -f 1787/1724/270 1786/1725/270 1781/1717/270 1780/1716/270 -f 1785/1726/271 1787/1727/271 1780/1716/271 1783/1719/271 +f 332/784/124 331/787/124 534/790/124 531/785/124 +f 531/785/138 534/790/138 533/791/138 532/792/138 +f 535/793/127 536/794/127 537/795/127 538/796/127 +f 539/797/126 540/798/126 541/799/126 542/800/126 +f 538/796/154 537/795/154 540/798/154 539/797/154 543/801/154 544/802/154 +f 544/802/155 543/801/155 545/803/155 546/804/155 +f 539/805/156 542/806/156 545/803/156 543/801/156 +f 535/807/157 538/808/157 544/802/157 546/804/157 +f 265/390/124 277/389/124 276/809/124 1051/810/124 +f 547/811/158 548/812/158 549/813/158 550/814/158 +f 551/815/127 552/816/127 553/817/127 549/818/127 548/819/127 554/820/127 +f 550/814/148 549/813/148 553/821/148 555/822/148 +f 555/822/159 553/821/159 552/823/159 556/824/159 +f 556/825/126 557/826/126 558/827/126 547/828/126 550/829/126 555/830/126 +f 559/831/124 560/832/124 561/833/124 562/834/124 +f 561/833/127 560/832/127 563/835/127 564/836/127 +f 559/831/126 562/834/126 565/837/126 566/838/126 +f 567/839/136 568/840/136 569/841/136 570/842/136 +f 571/843/127 572/844/127 570/842/127 569/841/127 +f 573/845/126 574/846/126 568/840/126 567/839/126 +f 574/847/125 571/848/125 569/841/125 568/840/125 +f 572/849/124 573/850/124 567/839/124 570/842/124 +f 575/851/136 576/852/136 577/853/136 578/854/136 +f 579/855/124 580/856/124 578/854/124 577/853/124 +f 581/857/125 582/858/125 576/852/125 575/851/125 +f 582/859/127 579/860/127 577/853/127 576/852/127 +f 580/861/126 581/862/126 575/851/126 578/854/126 +f 583/863/124 584/864/124 585/865/124 586/866/124 +f 587/867/160 588/868/160 589/869/160 590/870/160 +f 591/871/161 592/872/161 593/873/161 594/874/161 +f 586/866/162 585/865/162 592/872/162 591/871/162 +f 590/870/163 589/869/163 584/875/163 583/876/163 +f 594/874/125 593/873/125 588/868/125 587/867/125 +f 594/877/127 587/878/127 590/879/127 583/880/127 586/881/127 591/882/127 +f 595/883/125 596/884/125 597/885/125 598/886/125 +f 599/887/124 600/888/124 601/889/124 602/890/124 +f 596/891/160 603/892/160 604/893/160 597/894/160 +f 605/895/161 595/896/161 598/897/161 606/898/161 +f 600/899/162 605/900/162 606/901/162 601/902/162 +f 603/903/163 599/904/163 602/905/163 604/906/163 +f 602/890/126 601/889/126 607/907/126 608/908/126 +f 597/894/126 604/893/126 609/909/126 610/910/126 +f 606/898/126 598/897/126 611/911/126 612/912/126 +f 601/902/126 606/901/126 612/912/126 607/907/126 +f 604/906/126 602/905/126 608/913/126 609/909/126 +f 598/886/126 597/885/126 610/910/126 611/911/126 +f 607/907/162 612/912/162 613/914/162 614/915/162 +f 609/909/163 608/913/163 615/916/163 616/917/163 +f 611/911/125 610/910/125 617/918/125 618/919/125 +f 608/908/124 607/907/124 614/915/124 615/920/124 +f 610/910/160 609/909/160 616/917/160 617/918/160 +f 612/912/161 611/911/161 618/919/161 613/914/161 +f 617/918/127 616/917/127 619/921/127 620/922/127 +f 618/919/127 617/918/127 620/923/127 621/924/127 +f 613/914/127 618/919/127 621/925/127 622/926/127 +f 614/915/127 613/914/127 622/927/127 623/928/127 +f 615/920/127 614/915/127 623/929/127 624/930/127 +f 616/917/127 615/916/127 624/931/127 619/932/127 +f 619/932/163 624/931/163 625/933/163 626/934/163 +f 621/924/125 620/923/125 627/935/125 628/936/125 +f 624/930/124 623/929/124 629/937/124 625/938/124 +f 620/922/160 619/921/160 626/939/160 627/940/160 +f 622/926/161 621/925/161 628/941/161 630/942/161 +f 623/928/162 622/927/162 630/943/162 629/944/162 +f 627/940/126 626/939/126 631/945/126 632/946/126 +f 628/936/126 627/935/126 632/946/126 633/947/126 +f 630/942/126 628/941/126 633/947/126 634/948/126 +f 629/944/126 630/943/126 634/948/126 635/949/126 +f 625/938/126 629/937/126 635/949/126 636/950/126 +f 626/934/126 625/933/126 636/951/126 631/945/126 +f 633/947/125 632/946/125 637/952/125 638/953/125 +f 636/950/124 635/949/124 639/954/124 640/955/124 +f 632/946/160 631/945/160 641/956/160 637/952/160 +f 634/948/161 633/947/161 638/953/161 642/957/161 +f 635/949/162 634/948/162 642/957/162 639/954/162 +f 631/945/163 636/951/163 640/958/163 641/956/163 +f 642/957/164 638/953/164 643/959/164 644/960/164 +f 639/954/165 642/957/165 644/961/165 645/962/165 +f 641/956/166 640/958/166 646/963/166 647/964/166 +f 638/953/167 637/952/167 648/965/167 643/966/167 +f 640/955/168 639/954/168 645/967/168 646/968/168 +f 637/952/169 641/956/169 647/969/169 648/970/169 +f 643/971/127 648/972/127 647/973/127 646/974/127 645/975/127 644/976/127 +f 649/977/125 650/978/125 651/979/125 652/980/125 +f 653/981/126 654/982/126 655/983/126 656/984/126 657/985/126 +f 652/980/136 651/979/136 658/986/136 659/987/136 +f 651/979/127 650/978/127 660/988/127 658/989/127 +f 649/977/126 652/980/126 659/990/126 661/991/126 +f 662/992/170 663/993/170 664/994/170 665/995/170 +f 666/996/126 662/997/126 665/998/126 667/999/126 +f 668/1000/134 666/996/134 667/999/134 669/1001/134 +f 663/993/127 668/1000/127 669/1001/127 664/994/127 +f 654/982/171 653/981/171 670/1002/171 671/1003/171 +f 657/1004/136 656/1005/136 672/1006/136 673/1007/136 +f 671/1003/127 670/1002/127 673/1008/127 672/1006/127 674/1009/127 +f 654/982/170 671/1003/170 674/1010/170 655/1011/170 +f 655/1012/172 674/1009/172 672/1006/172 656/1005/172 +f 670/1002/134 653/981/134 657/1013/134 673/1014/134 +f 675/1015/170 676/1016/170 677/1017/170 678/1018/170 +f 679/1019/127 680/1020/127 677/1021/127 676/1022/127 +f 681/1023/126 682/1024/126 675/1015/126 678/1018/126 +f 680/1020/172 681/1023/172 678/1018/172 677/1021/172 +f 682/1025/171 679/1019/171 676/1022/171 675/1026/171 +f 684/1027/126 692/1028/126 693/1029/126 694/1030/126 +f 695/1031/173 696/1032/173 685/1033/173 697/1034/173 +f 692/1035/174 701/1036/174 702/1037/174 693/1029/174 +f 329/480/125 454/1038/125 1791/1039/125 1790/1040/125 +f 715/1041/131 716/1042/131 717/1043/131 718/1044/131 +f 259/365/131 454/1038/131 719/1045/131 720/1046/131 +f 329/480/131 260/366/131 721/1047/131 722/1048/131 +f 259/365/131 720/1046/131 716/1042/131 715/1041/131 721/1047/131 260/366/131 +f 454/1038/131 329/480/131 722/1048/131 718/1044/131 717/1043/131 719/1045/131 +f 271/378/128 723/1049/128 724/1050/128 453/1051/128 +f 270/1052/128 725/1053/128 723/1049/128 271/378/128 +f 270/1052/128 330/481/128 726/1054/128 725/1053/128 +f 453/1051/128 724/1050/128 726/1054/128 330/481/128 +f 725/1055/175 726/1056/175 727/1057/175 728/1058/175 +f 721/1059/128 715/1060/128 729/1061/128 730/1062/128 +f 716/1063/176 731/1064/176 732/1065/176 717/1066/176 +f 733/1067/131 730/1062/131 729/1061/131 734/1068/131 +f 719/1069/136 735/1070/136 736/1071/136 720/1072/136 +f 737/1073/128 728/1074/128 727/1057/128 738/1075/128 +f 715/1076/177 718/1077/177 734/1068/177 729/1078/177 +f 720/1079/128 736/1071/128 731/1080/128 716/1081/128 +f 722/1082/178 721/1083/178 730/1084/178 733/1067/178 +f 718/1077/130 722/1082/130 733/1067/130 734/1068/130 +f 738/1075/129 727/1057/129 726/1056/129 724/1085/129 +f 728/1074/131 737/1073/131 723/1086/131 725/1087/131 +f 739/1088/126 740/1089/126 741/1090/126 742/1091/126 +f 740/1092/179 743/1093/179 744/1094/179 741/1095/179 +f 745/1096/127 746/1097/127 747/1098/127 748/1099/127 +f 749/1100/180 739/1088/180 742/1091/180 750/1101/180 +f 748/1099/127 747/1098/127 751/1102/127 752/1103/127 +f 741/1095/181 744/1094/181 753/1104/181 754/1105/181 +f 749/1106/127 743/1107/127 755/1108/127 +f 755/1108/172 756/1109/172 739/1088/172 749/1100/172 +f 756/1109/126 740/1110/126 739/1111/126 +f 746/1112/127 745/1113/127 757/1114/127 +f 757/1114/172 758/1115/172 759/1116/172 746/1097/172 +f 758/1115/126 760/1117/126 759/1118/126 +f 761/1119/136 762/1120/136 756/1109/136 755/1108/136 +f 763/1121/132 764/1122/132 743/1107/132 740/1123/132 +f 765/1124/127 766/1125/127 757/1114/127 745/1113/127 +f 767/1126/126 768/1127/126 760/1117/126 758/1115/126 +f 762/1120/126 763/1128/126 740/1110/126 756/1109/126 +f 766/1125/136 767/1126/136 758/1115/136 757/1114/136 +f 768/1129/132 765/1124/132 745/1113/132 760/1130/132 +f 764/1122/127 761/1119/127 755/1108/127 743/1107/127 +f 760/1131/179 745/1096/179 748/1099/179 769/1132/179 +f 743/1093/127 749/1100/127 750/1101/127 744/1094/127 +f 770/1133/125 771/1134/125 772/1135/125 773/1136/125 +f 732/1065/131 731/1080/131 736/1071/131 735/1070/131 +f 717/1066/130 732/1065/130 735/1070/130 719/1137/130 +f 737/1073/136 738/1075/136 724/1138/136 723/1139/136 +f 747/1098/182 774/1140/182 775/1141/182 751/1102/182 +f 774/1140/126 769/1142/126 776/1143/126 775/1141/126 +f 742/1091/126 741/1090/126 754/1144/126 777/1145/126 +f 769/1132/181 748/1099/181 752/1103/181 776/1146/181 +f 744/1094/127 750/1101/127 778/1147/127 753/1104/127 +f 750/1101/182 742/1091/182 777/1145/182 778/1147/182 +f 759/1116/126 760/1148/126 769/1142/126 774/1140/126 +f 746/1097/180 759/1116/180 774/1140/180 747/1098/180 +f 779/1149/162 780/1150/162 781/1151/162 782/1152/162 +f 771/1134/132 783/1153/132 784/1154/132 772/1135/132 +f 782/1152/124 781/1151/124 785/1155/124 786/1156/124 +f 783/1153/124 787/1157/124 788/1158/124 784/1154/124 +f 786/1159/163 785/1160/163 789/1161/163 790/1162/163 +f 787/1157/136 770/1163/136 773/1164/136 788/1158/136 +f 790/1162/160 789/1161/160 791/1165/160 792/1166/160 +f 781/1167/127 780/1168/127 793/1169/127 791/1170/127 789/1171/127 785/1172/127 +f 792/1166/125 791/1165/125 793/1173/125 794/1174/125 +f 794/1174/161 793/1173/161 780/1150/161 779/1149/161 +f 779/1175/126 782/1176/126 786/1177/126 790/1178/126 792/1179/126 794/1180/126 +f 784/1154/129 788/1158/129 795/1181/129 796/1182/129 +f 784/1183/132 796/1182/132 772/1184/132 +f 773/1185/136 795/1181/136 788/1186/136 +f 795/1181/136 773/1185/136 797/1187/136 798/1188/136 +f 798/1189/124 797/1190/124 799/1191/124 800/1192/124 +f 796/1182/127 795/1181/127 798/1188/127 801/1193/127 +f 772/1184/132 796/1182/132 801/1193/132 802/1194/132 +f 773/1195/126 772/1184/126 802/1194/126 797/1196/126 +f 798/1189/127 803/1197/127 801/1198/127 +f 802/1199/126 804/1200/126 797/1201/126 +f 801/1193/170 803/1197/170 804/1200/170 802/1194/170 +f 805/1202/180 806/1203/180 807/1204/180 808/1205/180 +f 803/1197/127 798/1189/127 800/1192/127 806/1203/127 +f 804/1200/125 803/1197/125 806/1203/125 805/1202/125 +f 797/1201/126 804/1200/126 805/1202/126 799/1206/126 +f 809/1207/127 810/1208/127 807/1209/127 +f 799/1206/126 805/1202/126 808/1205/126 811/1210/126 +f 800/1192/179 799/1191/179 811/1211/179 809/1212/179 +f 806/1203/127 800/1192/127 809/1212/127 807/1204/127 +f 807/1204/172 810/1208/172 812/1213/172 808/1205/172 +f 811/1214/126 812/1213/126 813/1215/126 814/1216/126 +f 811/1214/126 808/1217/126 812/1213/126 +f 815/1218/132 814/1219/132 816/1220/132 817/1221/132 +f 809/1207/132 811/1222/132 814/1223/132 818/1224/132 +f 810/1208/127 809/1207/127 818/1224/127 819/1225/127 +f 812/1213/136 810/1208/136 819/1225/136 813/1215/136 +f 819/1226/136 820/1227/136 813/1228/136 +f 818/1224/129 815/1218/129 820/1227/129 819/1225/129 +f 814/1219/132 815/1218/132 818/1229/132 +f 814/1230/125 813/1228/125 821/1231/125 816/1232/125 +f 813/1228/136 820/1227/136 822/1233/136 821/1231/136 +f 820/1227/124 815/1218/124 817/1221/124 822/1233/124 +f 660/1234/124 661/1235/124 659/1236/124 658/1237/124 +f 1052/1238/183 1053/1239/183 1054/1240/183 1055/1241/183 +f 1056/1242/183 1057/1243/183 1058/1244/183 1059/1245/183 +f 1060/1246/183 1061/1247/183 1062/1248/183 1063/1249/183 +f 1061/1247/183 1064/1250/183 1065/1251/183 1062/1248/183 +f 1066/1252/183 1052/1238/183 1055/1241/183 1067/1253/183 +f 1053/1239/183 1056/1242/183 1059/1245/183 1054/1240/183 +f 1057/1243/183 1060/1246/183 1063/1249/183 1058/1244/183 +f 1064/1250/183 1066/1254/183 1067/1255/183 1065/1251/183 +f 1068/1256/183 1069/1257/183 1070/1258/183 1071/1259/183 1072/1260/183 1073/1261/183 1074/1262/183 1075/1263/183 +f 1076/1264/183 1077/1265/183 1078/1266/183 1079/1267/183 +f 1077/1265/183 1080/1268/183 1081/1269/183 1078/1266/183 +f 1080/1268/184 1082/1270/184 1083/1271/184 1081/1269/184 +f 1082/1272/184 1084/1273/184 1085/1274/184 1083/1275/184 +f 1084/1273/183 1086/1276/183 1087/1277/183 1085/1274/183 +f 1086/1276/184 1088/1278/184 1089/1279/184 1087/1277/184 +f 1088/1278/184 1090/1280/184 1091/1281/184 1089/1279/184 +f 1090/1280/184 1076/1264/184 1079/1267/184 1091/1281/184 +f 1140/1282/185 1141/1283/185 1142/1284/185 1143/1285/185 +f 1144/1286/185 1145/1287/185 1146/1288/185 1147/1289/185 +f 1148/1290/185 1149/1291/185 1150/1292/185 1151/1293/185 +f 1149/1291/185 1152/1294/185 1153/1295/185 1150/1292/185 +f 1154/1296/185 1140/1282/185 1143/1285/185 1155/1297/185 +f 1141/1283/185 1144/1286/185 1147/1289/185 1142/1284/185 +f 1145/1287/185 1148/1290/185 1151/1293/185 1146/1288/185 +f 1152/1294/185 1154/1298/185 1155/1299/185 1153/1295/185 +f 1156/1300/185 1157/1301/185 1158/1302/185 1159/1303/185 1160/1304/185 1161/1305/185 1162/1306/185 1163/1307/185 +f 1164/1308/185 1165/1309/185 1166/1310/185 1167/1311/185 +f 1165/1309/185 1168/1312/185 1169/1313/185 1166/1310/185 +f 1168/1312/186 1170/1314/186 1171/1315/186 1169/1313/186 +f 1170/1316/186 1172/1317/186 1173/1318/186 1171/1319/186 +f 1172/1317/185 1174/1320/185 1175/1321/185 1173/1318/185 +f 1174/1320/185 1176/1322/185 1177/1323/185 1175/1321/185 +f 1176/1322/186 1178/1324/186 1179/1325/186 1177/1323/186 +f 1178/1324/185 1164/1308/185 1167/1311/185 1179/1325/185 +f 1228/1326/187 1229/1327/187 1230/1328/187 1231/1329/187 +f 1232/1330/187 1233/1331/187 1234/1332/187 1235/1333/187 +f 1236/1334/187 1237/1335/187 1238/1336/187 1239/1337/187 +f 1237/1335/187 1240/1338/187 1241/1339/187 1238/1336/187 +f 1242/1340/187 1228/1326/187 1231/1329/187 1243/1341/187 +f 1229/1327/187 1232/1330/187 1235/1333/187 1230/1328/187 +f 1233/1331/187 1236/1334/187 1239/1337/187 1234/1332/187 +f 1240/1338/187 1242/1342/187 1243/1343/187 1241/1339/187 +f 1244/1344/187 1245/1345/187 1246/1346/187 1247/1347/187 1248/1348/187 1249/1349/187 1250/1350/187 1251/1351/187 +f 1252/1352/187 1253/1353/187 1254/1354/187 1255/1355/187 +f 1253/1353/187 1256/1356/187 1257/1357/187 1254/1354/187 +f 1256/1356/188 1258/1358/188 1259/1359/188 1257/1357/188 +f 1258/1360/188 1260/1361/188 1261/1362/188 1259/1363/188 +f 1260/1361/188 1262/1364/188 1263/1365/188 1261/1362/188 +f 1262/1364/188 1264/1366/188 1265/1367/188 1263/1365/188 +f 1264/1366/188 1266/1368/188 1267/1369/188 1265/1367/188 +f 1266/1368/187 1252/1352/187 1255/1355/187 1267/1369/187 +f 1316/1370/189 1317/1371/189 1318/1372/189 1319/1373/189 +f 1320/1374/189 1321/1375/189 1322/1376/189 1323/1377/189 +f 1324/1378/190 1325/1379/190 1326/1380/190 1327/1381/190 +f 1325/1379/189 1328/1382/189 1329/1383/189 1326/1380/189 +f 1330/1384/189 1316/1370/189 1319/1373/189 1331/1385/189 +f 1317/1371/189 1320/1374/189 1323/1377/189 1318/1372/189 +f 1321/1375/189 1324/1378/189 1327/1381/189 1322/1376/189 +f 1328/1382/189 1330/1386/189 1331/1387/189 1329/1383/189 +f 1332/1388/189 1333/1389/189 1334/1390/189 1335/1391/189 1336/1392/189 1337/1393/189 1338/1394/189 1339/1395/189 +f 1340/1396/190 1341/1397/190 1342/1398/190 1343/1399/190 +f 1341/1397/190 1344/1400/190 1345/1401/190 1342/1398/190 +f 1344/1400/190 1346/1402/190 1347/1403/190 1345/1401/190 +f 1346/1404/190 1348/1405/190 1349/1406/190 1347/1407/190 +f 1348/1405/189 1350/1408/189 1351/1409/189 1349/1406/189 +f 1350/1408/190 1352/1410/190 1353/1411/190 1351/1409/190 +f 1352/1410/190 1354/1412/190 1355/1413/190 1353/1411/190 +f 1354/1412/189 1340/1396/189 1343/1399/189 1355/1413/189 +f 1404/1414/191 1405/1415/191 1406/1416/191 1407/1417/191 +f 1408/1418/191 1409/1419/191 1410/1420/191 1411/1421/191 +f 1412/1422/192 1413/1423/192 1414/1424/192 1415/1425/192 +f 1413/1423/191 1416/1426/191 1417/1427/191 1414/1424/191 +f 1418/1428/191 1404/1414/191 1407/1417/191 1419/1429/191 +f 1405/1415/191 1408/1418/191 1411/1421/191 1406/1416/191 +f 1409/1419/191 1412/1422/191 1415/1425/191 1410/1420/191 +f 1416/1426/191 1418/1430/191 1419/1431/191 1417/1427/191 +f 1420/1432/191 1421/1433/191 1422/1434/191 1423/1435/191 1424/1436/191 1425/1437/191 1426/1438/191 1427/1439/191 +f 1428/1440/192 1429/1441/192 1430/1442/192 1431/1443/192 +f 1429/1441/192 1432/1444/192 1433/1445/192 1430/1442/192 +f 1432/1444/192 1434/1446/192 1435/1447/192 1433/1445/192 +f 1434/1448/192 1436/1449/192 1437/1450/192 1435/1451/192 +f 1436/1449/191 1438/1452/191 1439/1453/191 1437/1450/191 +f 1438/1452/192 1440/1454/192 1441/1455/192 1439/1453/192 +f 1440/1454/192 1442/1456/192 1443/1457/192 1441/1455/192 +f 1442/1456/191 1428/1440/191 1431/1443/191 1443/1457/191 +f 1492/1458/193 1493/1459/193 1494/1460/193 1495/1461/193 +f 1496/1462/193 1497/1463/193 1498/1464/193 1499/1465/193 +f 1500/1466/194 1501/1467/194 1502/1468/194 1503/1469/194 +f 1501/1467/193 1504/1470/193 1505/1471/193 1502/1468/193 +f 1506/1472/193 1492/1458/193 1495/1461/193 1507/1473/193 +f 1493/1459/193 1496/1462/193 1499/1465/193 1494/1460/193 +f 1497/1463/193 1500/1466/193 1503/1469/193 1498/1464/193 +f 1504/1470/193 1506/1474/193 1507/1475/193 1505/1471/193 +f 1508/1476/193 1509/1477/193 1510/1478/193 1511/1479/193 1512/1480/193 1513/1481/193 1514/1482/193 1515/1483/193 +f 1516/1484/194 1517/1485/194 1518/1486/194 1519/1487/194 +f 1517/1485/194 1520/1488/194 1521/1489/194 1518/1486/194 +f 1520/1488/194 1522/1490/194 1523/1491/194 1521/1489/194 +f 1522/1492/194 1524/1493/194 1525/1494/194 1523/1495/194 +f 1524/1493/193 1526/1496/193 1527/1497/193 1525/1494/193 +f 1526/1496/194 1528/1498/194 1529/1499/194 1527/1497/194 +f 1528/1498/194 1530/1500/194 1531/1501/194 1529/1499/194 +f 1530/1500/194 1516/1484/194 1519/1487/194 1531/1501/194 +f 1580/1502/195 1581/1503/195 1582/1504/195 1583/1505/195 +f 1584/1506/195 1585/1507/195 1586/1508/195 1587/1509/195 +f 1588/1510/195 1589/1511/195 1590/1512/195 1591/1513/195 +f 1589/1511/195 1592/1514/195 1593/1515/195 1590/1512/195 +f 1594/1516/195 1580/1502/195 1583/1505/195 1595/1517/195 +f 1581/1503/195 1584/1506/195 1587/1509/195 1582/1504/195 +f 1585/1507/195 1588/1510/195 1591/1513/195 1586/1508/195 +f 1592/1514/195 1594/1518/195 1595/1519/195 1593/1515/195 +f 1596/1520/195 1597/1521/195 1598/1522/195 1599/1523/195 1600/1524/195 1601/1525/195 1602/1526/195 1603/1527/195 +f 1604/1528/196 1605/1529/196 1606/1530/196 1607/1531/196 +f 1605/1529/196 1608/1532/196 1609/1533/196 1606/1530/196 +f 1608/1532/196 1610/1534/196 1611/1535/196 1609/1533/196 +f 1610/1536/196 1612/1537/196 1613/1538/196 1611/1539/196 +f 1612/1537/195 1614/1540/195 1615/1541/195 1613/1538/195 +f 1614/1540/196 1616/1542/196 1617/1543/196 1615/1541/196 +f 1616/1542/196 1618/1544/196 1619/1545/196 1617/1543/196 +f 1618/1544/195 1604/1528/195 1607/1531/195 1619/1545/195 +f 1668/1546/197 1669/1547/197 1670/1548/197 1671/1549/197 +f 1672/1550/198 1673/1551/198 1671/1549/198 1670/1548/198 +f 1674/1552/199 1672/1553/199 1670/1548/199 1669/1547/199 +f 1675/1554/200 1674/1555/200 1669/1547/200 1668/1546/200 +f 1673/1556/201 1675/1557/201 1668/1546/201 1671/1549/201 +f 1676/1558/202 1677/1559/202 1678/1560/202 1679/1561/202 +f 1680/1562/203 1681/1563/203 1679/1561/203 1678/1560/203 +f 1682/1564/204 1680/1565/204 1678/1560/204 1677/1559/204 +f 1683/1566/205 1682/1567/205 1677/1559/205 1676/1558/205 +f 1681/1568/206 1683/1569/206 1676/1558/206 1679/1561/206 +f 1684/1570/207 1685/1571/207 1686/1572/207 1687/1573/207 +f 1688/1574/208 1689/1575/208 1687/1573/208 1686/1572/208 +f 1690/1576/209 1688/1577/209 1686/1572/209 1685/1571/209 +f 1691/1578/210 1690/1579/210 1685/1571/210 1684/1570/210 +f 1689/1580/211 1691/1581/211 1684/1570/211 1687/1573/211 +f 1692/1582/212 1693/1583/212 1694/1584/212 1695/1585/212 +f 1696/1586/213 1697/1587/213 1695/1585/213 1694/1584/213 +f 1698/1588/214 1696/1589/214 1694/1584/214 1693/1583/214 +f 1699/1590/215 1698/1591/215 1693/1583/215 1692/1582/215 +f 1697/1592/216 1699/1593/216 1692/1582/216 1695/1585/216 +f 1700/1594/217 1701/1595/217 1702/1596/217 1703/1597/217 +f 1704/1598/218 1705/1599/218 1703/1597/218 1702/1596/218 +f 1706/1600/219 1704/1601/219 1702/1596/219 1701/1595/219 +f 1707/1602/220 1706/1603/220 1701/1595/220 1700/1594/220 +f 1705/1604/221 1707/1605/221 1700/1594/221 1703/1597/221 +f 1708/1606/222 1709/1607/222 1710/1608/222 1711/1609/222 +f 1712/1610/223 1713/1611/223 1711/1609/223 1710/1608/223 +f 1714/1612/224 1712/1613/224 1710/1608/224 1709/1607/224 +f 1715/1614/225 1714/1615/225 1709/1607/225 1708/1606/225 +f 1713/1616/226 1715/1617/226 1708/1606/226 1711/1609/226 +f 1716/1618/227 1717/1619/227 1718/1620/227 1719/1621/227 +f 1720/1622/228 1721/1623/228 1719/1621/228 1718/1620/228 +f 1722/1624/229 1720/1625/229 1718/1620/229 1717/1619/229 +f 1723/1626/230 1722/1627/230 1717/1619/230 1716/1618/230 +f 1721/1628/231 1723/1629/231 1716/1618/231 1719/1621/231 +f 1724/1630/232 1725/1631/232 1726/1632/232 1727/1633/232 +f 1728/1634/233 1729/1635/233 1727/1633/233 1726/1632/233 +f 1730/1636/234 1728/1637/234 1726/1632/234 1725/1631/234 +f 1731/1638/235 1730/1639/235 1725/1631/235 1724/1630/235 +f 1729/1640/236 1731/1641/236 1724/1630/236 1727/1633/236 +f 1732/1642/237 1733/1643/237 1734/1644/237 1735/1645/237 +f 1736/1646/238 1737/1647/238 1735/1645/238 1734/1644/238 +f 1738/1648/239 1736/1649/239 1734/1644/239 1733/1643/239 +f 1739/1650/240 1738/1651/240 1733/1643/240 1732/1642/240 +f 1737/1652/241 1739/1653/241 1732/1642/241 1735/1645/241 +f 1740/1654/242 1741/1655/242 1742/1656/242 1743/1657/242 +f 1744/1658/243 1745/1659/243 1743/1657/243 1742/1656/243 +f 1746/1660/244 1744/1661/244 1742/1656/244 1741/1655/244 +f 1747/1662/245 1746/1663/245 1741/1655/245 1740/1654/245 +f 1745/1664/246 1747/1665/246 1740/1654/246 1743/1657/246 +f 1748/1666/247 1749/1667/247 1750/1668/247 1751/1669/247 +f 1752/1670/248 1753/1671/248 1751/1669/248 1750/1668/248 +f 1754/1672/249 1752/1673/249 1750/1668/249 1749/1667/249 +f 1755/1674/250 1754/1675/250 1749/1667/250 1748/1666/250 +f 1753/1676/251 1755/1677/251 1748/1666/251 1751/1669/251 +f 1756/1678/252 1757/1679/252 1758/1680/252 1759/1681/252 +f 1760/1682/253 1761/1683/253 1759/1681/253 1758/1680/253 +f 1762/1684/254 1760/1685/254 1758/1680/254 1757/1679/254 +f 1763/1686/255 1762/1687/255 1757/1679/255 1756/1678/255 +f 1761/1688/256 1763/1689/256 1756/1678/256 1759/1681/256 +f 1764/1690/257 1765/1691/257 1766/1692/257 1767/1693/257 +f 1768/1694/258 1769/1695/258 1767/1693/258 1766/1692/258 +f 1770/1696/259 1768/1697/259 1766/1692/259 1765/1691/259 +f 1771/1698/260 1770/1699/260 1765/1691/260 1764/1690/260 +f 1769/1700/261 1771/1701/261 1764/1690/261 1767/1693/261 +f 1772/1702/262 1773/1703/262 1774/1704/262 1775/1705/262 +f 1776/1706/263 1777/1707/263 1775/1705/263 1774/1704/263 +f 1778/1708/264 1776/1709/264 1774/1704/264 1773/1703/264 +f 1779/1710/265 1778/1711/265 1773/1703/265 1772/1702/265 +f 1777/1712/266 1779/1713/266 1772/1702/266 1775/1705/266 +f 1780/1714/267 1781/1715/267 1782/1716/267 1783/1717/267 +f 1784/1718/268 1785/1719/268 1783/1717/268 1782/1716/268 +f 1786/1720/269 1784/1721/269 1782/1716/269 1781/1715/269 +f 1787/1722/270 1786/1723/270 1781/1715/270 1780/1714/270 +f 1785/1724/271 1787/1725/271 1780/1714/271 1783/1717/271 +f 1789/1726/126 1788/1727/126 1792/1728/126 1793/1729/126 +f 330/481/125 329/480/125 1790/1040/125 1788/1730/125 +f 453/1051/125 330/481/125 1788/1730/125 1789/1731/125 +f 454/1038/125 453/1051/125 1789/1731/125 1791/1039/125 +f 1793/1732/125 1792/1733/125 1794/1734/125 1795/1735/125 +f 1791/1736/136 1789/1737/136 1793/1738/136 1795/1739/136 +f 1788/1740/132 1790/1741/132 1794/1742/132 1792/1743/132 +f 1790/1744/127 1791/1745/127 1795/1746/127 1794/1747/127 s 1 -f 249/1728/272 248/1729/273 823/1730/273 824/1731/272 -f 246/1732/274 249/1728/272 824/1731/272 825/1733/274 -f 247/1734/275 246/1732/274 825/1733/274 826/1735/275 -f 243/1736/276 247/1734/275 826/1735/275 827/1737/276 -f 244/1738/277 243/1736/276 827/1737/276 828/1739/277 -f 245/1740/278 244/1738/277 828/1739/277 829/1741/278 -f 258/1742/279 245/1740/278 829/1741/278 830/1743/279 -f 256/1744/280 258/1742/279 830/1743/279 831/1745/280 -f 257/1746/281 256/1744/280 831/1745/280 832/1747/281 -f 254/1748/282 257/1749/281 832/1750/281 833/1751/282 -f 255/1752/283 254/1748/282 833/1751/282 834/1753/283 -f 252/1754/284 255/1752/283 834/1753/283 835/1755/284 -f 253/1756/285 252/1754/284 835/1755/284 836/1757/285 -f 250/1758/286 253/1756/285 836/1757/285 837/1759/286 -f 251/1760/287 250/1758/286 837/1759/286 838/1761/287 -f 248/1729/273 251/1760/287 838/1761/287 823/1730/273 -f 824/1731/124 823/1730/288 839/1762/288 840/1763/124 -f 825/1733/289 824/1731/124 840/1763/124 841/1764/289 -f 832/1747/125 831/1745/290 842/1765/290 843/1766/125 -f 823/1730/288 838/1761/129 844/1767/129 839/1762/288 -f 831/1745/290 830/1743/131 845/1768/131 842/1765/290 -f 838/1761/129 837/1759/291 846/1769/291 844/1767/129 -f 830/1743/131 829/1741/292 847/1770/292 845/1768/131 -f 837/1759/291 836/1757/127 848/1771/127 846/1769/291 -f 829/1741/292 828/1739/126 849/1772/126 847/1770/292 -f 836/1757/127 835/1755/293 850/1773/293 848/1771/127 -f 828/1739/126 827/1737/294 851/1774/294 849/1772/126 -f 835/1755/293 834/1753/128 852/1775/128 850/1773/293 -f 827/1737/294 826/1735/130 853/1776/130 851/1774/294 -f 834/1753/128 833/1751/295 854/1777/295 852/1775/128 -f 826/1735/130 825/1733/289 841/1764/289 853/1776/130 -f 833/1751/295 832/1750/125 843/1778/125 854/1777/295 -f 855/1779/296 856/1780/297 857/1781/298 858/1782/299 -f 859/1783/300 860/1784/151 861/1785/301 862/1786/302 -f 863/1787/303 864/1788/304 865/1789/305 866/1790/306 -f 864/1788/304 867/1791/307 868/1792/308 865/1789/305 -f 869/1793/149 855/1779/296 858/1782/299 870/1794/309 -f 856/1780/297 859/1783/300 862/1786/302 857/1781/298 -f 860/1784/151 863/1787/303 866/1790/306 861/1785/301 -f 867/1791/307 869/1795/149 870/1796/309 868/1792/308 -f 866/1790/306 865/1789/305 871/1797/310 872/1798/311 -f 862/1786/302 861/1785/301 873/1799/312 874/1800/313 -f 858/1782/299 857/1781/298 875/1801/314 876/1802/315 -f 868/1792/308 870/1796/309 877/1803/146 878/1804/316 -f 861/1785/301 866/1790/306 872/1798/311 873/1799/312 -f 857/1781/298 862/1786/302 874/1800/313 875/1801/314 -f 870/1794/309 858/1782/299 876/1802/315 877/1805/146 -f 865/1789/305 868/1792/308 878/1804/316 871/1797/310 -f 877/1805/146 876/1802/315 879/1806/317 880/1807/136 -f 871/1797/310 878/1804/316 881/1808/318 882/1809/319 -f 872/1798/311 871/1797/310 882/1809/319 883/1810/320 -f 874/1800/313 873/1799/312 884/1811/132 885/1812/321 -f 876/1802/315 875/1801/314 886/1813/322 879/1806/317 -f 878/1804/316 877/1803/146 880/1814/136 881/1808/318 -f 873/1799/312 872/1798/311 883/1810/320 884/1811/132 -f 875/1801/314 874/1800/313 885/1812/321 886/1813/322 -f 884/1811/132 883/1810/320 887/1815/323 888/1816/324 -f 886/1813/322 885/1812/321 889/1817/325 890/1818/326 -f 880/1807/136 879/1806/317 891/1819/327 892/1820/328 -f 882/1809/319 881/1808/318 893/1821/329 894/1822/330 -f 883/1810/320 882/1809/319 894/1822/330 887/1815/323 -f 885/1812/321 884/1811/132 888/1816/324 889/1817/325 -f 879/1806/317 886/1813/322 890/1818/326 891/1819/327 -f 881/1808/318 880/1814/136 892/1823/328 893/1821/329 -f 895/1824/291 896/1825/331 345/500/331 342/497/291 -f 897/1826/332 898/1827/333 333/488/333 347/502/332 -f 899/1828/292 900/1829/334 337/492/334 334/489/292 -f 901/1830/335 902/1831/336 341/496/336 338/493/335 -f 896/1825/331 897/1832/332 347/504/332 345/500/331 -f 898/1827/333 899/1828/292 334/489/292 333/488/333 -f 900/1829/334 901/1830/335 338/493/335 337/492/334 -f 902/1831/336 895/1824/291 342/497/291 341/496/336 -f 350/1833/334 349/1834/292 359/516/292 362/519/334 +f 249/1748/272 248/1749/273 823/1750/273 824/1751/272 +f 246/1752/274 249/1748/272 824/1751/272 825/1753/274 +f 247/1754/275 246/1752/274 825/1753/274 826/1755/275 +f 243/1756/276 247/1754/275 826/1755/275 827/1757/276 +f 244/1758/277 243/1756/276 827/1757/276 828/1759/277 +f 245/1760/278 244/1758/277 828/1759/277 829/1761/278 +f 258/1762/279 245/1760/278 829/1761/278 830/1763/279 +f 256/1764/280 258/1762/279 830/1763/279 831/1765/280 +f 257/1766/281 256/1764/280 831/1765/280 832/1767/281 +f 254/1768/282 257/1769/281 832/1770/281 833/1771/282 +f 255/1772/283 254/1768/282 833/1771/282 834/1773/283 +f 252/1774/284 255/1772/283 834/1773/283 835/1775/284 +f 253/1776/285 252/1774/284 835/1775/284 836/1777/285 +f 250/1778/286 253/1776/285 836/1777/285 837/1779/286 +f 251/1780/287 250/1778/286 837/1779/286 838/1781/287 +f 248/1749/273 251/1780/287 838/1781/287 823/1750/273 +f 824/1751/124 823/1750/288 839/1782/288 840/1783/124 +f 825/1753/289 824/1751/124 840/1783/124 841/1784/289 +f 832/1767/125 831/1765/290 842/1785/290 843/1786/125 +f 823/1750/288 838/1781/129 844/1787/129 839/1782/288 +f 831/1765/290 830/1763/131 845/1788/131 842/1785/290 +f 838/1781/129 837/1779/291 846/1789/291 844/1787/129 +f 830/1763/131 829/1761/292 847/1790/292 845/1788/131 +f 837/1779/291 836/1777/127 848/1791/127 846/1789/291 +f 829/1761/292 828/1759/126 849/1792/126 847/1790/292 +f 836/1777/127 835/1775/293 850/1793/293 848/1791/127 +f 828/1759/126 827/1757/294 851/1794/294 849/1792/126 +f 835/1775/293 834/1773/128 852/1795/128 850/1793/293 +f 827/1757/294 826/1755/130 853/1796/130 851/1794/294 +f 834/1773/128 833/1771/295 854/1797/295 852/1795/128 +f 826/1755/130 825/1753/289 841/1784/289 853/1796/130 +f 833/1771/295 832/1770/125 843/1798/125 854/1797/295 +f 855/1799/296 856/1800/297 857/1801/298 858/1802/299 +f 859/1803/300 860/1804/151 861/1805/301 862/1806/302 +f 863/1807/303 864/1808/304 865/1809/305 866/1810/306 +f 864/1808/304 867/1811/307 868/1812/308 865/1809/305 +f 869/1813/149 855/1799/296 858/1802/299 870/1814/309 +f 856/1800/297 859/1803/300 862/1806/302 857/1801/298 +f 860/1804/151 863/1807/303 866/1810/306 861/1805/301 +f 867/1811/307 869/1815/149 870/1816/309 868/1812/308 +f 866/1810/306 865/1809/305 871/1817/310 872/1818/311 +f 862/1806/302 861/1805/301 873/1819/312 874/1820/313 +f 858/1802/299 857/1801/298 875/1821/314 876/1822/315 +f 868/1812/308 870/1816/309 877/1823/146 878/1824/316 +f 861/1805/301 866/1810/306 872/1818/311 873/1819/312 +f 857/1801/298 862/1806/302 874/1820/313 875/1821/314 +f 870/1814/309 858/1802/299 876/1822/315 877/1825/146 +f 865/1809/305 868/1812/308 878/1824/316 871/1817/310 +f 877/1825/146 876/1822/315 879/1826/317 880/1827/136 +f 871/1817/310 878/1824/316 881/1828/318 882/1829/319 +f 872/1818/311 871/1817/310 882/1829/319 883/1830/320 +f 874/1820/313 873/1819/312 884/1831/132 885/1832/321 +f 876/1822/315 875/1821/314 886/1833/322 879/1826/317 +f 878/1824/316 877/1823/146 880/1834/136 881/1828/318 +f 873/1819/312 872/1818/311 883/1830/320 884/1831/132 +f 875/1821/314 874/1820/313 885/1832/321 886/1833/322 +f 884/1831/132 883/1830/320 887/1835/323 888/1836/324 +f 886/1833/322 885/1832/321 889/1837/325 890/1838/326 +f 880/1827/136 879/1826/317 891/1839/327 892/1840/328 +f 882/1829/319 881/1828/318 893/1841/329 894/1842/330 +f 883/1830/320 882/1829/319 894/1842/330 887/1835/323 +f 885/1832/321 884/1831/132 888/1836/324 889/1837/325 +f 879/1826/317 886/1833/322 890/1838/326 891/1839/327 +f 881/1828/318 880/1834/136 892/1843/328 893/1841/329 +f 895/1844/291 896/1845/331 345/500/331 342/497/291 +f 897/1846/332 898/1847/333 333/488/333 347/502/332 +f 899/1848/292 900/1849/334 337/492/334 334/489/292 +f 901/1850/335 902/1851/336 341/496/336 338/493/335 +f 896/1845/331 897/1852/332 347/504/332 345/500/331 +f 898/1847/333 899/1848/292 334/489/292 333/488/333 +f 900/1849/334 901/1850/335 338/493/335 337/492/334 +f 902/1851/336 895/1844/291 342/497/291 341/496/336 +f 350/1853/334 349/1854/292 359/516/292 362/519/334 f 344/499/336 343/498/291 358/515/291 357/514/336 -f 351/1835/335 350/1833/334 362/519/334 364/521/335 +f 351/1855/335 350/1853/334 362/519/334 364/521/335 f 343/498/291 346/501/331 361/518/331 358/515/291 -f 352/1836/336 351/1837/335 364/525/335 366/524/336 +f 352/1856/336 351/1857/335 364/525/335 366/524/336 f 346/501/331 348/505/332 363/520/332 361/518/331 -f 353/1838/291 352/1836/336 366/524/336 368/527/291 +f 353/1858/291 352/1856/336 366/524/336 368/527/291 f 348/503/332 336/491/333 365/523/333 363/522/332 f 339/494/335 344/499/336 357/514/336 371/530/335 -f 349/1834/292 356/1839/333 360/517/333 359/516/292 +f 349/1854/292 356/1859/333 360/517/333 359/516/292 f 340/495/334 339/494/335 371/530/335 369/528/334 -f 356/1839/333 355/1840/332 372/531/332 360/517/333 +f 356/1859/333 355/1860/332 372/531/332 360/517/333 f 335/490/292 340/495/334 369/528/334 367/526/292 -f 355/1840/332 354/1841/331 370/529/331 372/531/332 +f 355/1860/332 354/1861/331 370/529/331 372/531/332 f 336/491/333 335/490/292 367/526/292 365/523/333 -f 354/1841/331 353/1838/291 368/527/291 370/529/331 -f 845/1768/337 847/1770/338 431/1842/338 430/1843/337 -f 846/1769/339 848/1771/340 424/1844/340 423/1845/339 -f 847/1770/338 849/1772/341 432/1846/341 431/1847/338 -f 848/1771/340 850/1773/342 425/1848/342 424/1849/340 -f 849/1772/341 851/1774/343 433/1850/343 432/1851/341 -f 850/1773/342 852/1775/344 426/1852/344 425/1853/342 -f 851/1774/343 853/1776/345 434/1854/345 433/1855/343 -f 852/1775/344 854/1777/346 427/1856/346 426/1857/344 -f 853/1776/345 841/1764/347 435/1858/347 434/1859/345 -f 854/1777/346 843/1778/348 428/1860/348 427/1861/346 -f 840/1763/349 839/1762/350 421/1862/350 436/1863/349 -f 841/1764/347 840/1763/349 436/1864/349 435/1865/347 -f 843/1766/348 842/1765/351 429/1866/351 428/1867/348 -f 839/1762/350 844/1767/352 422/1868/352 421/1869/350 -f 842/1765/351 845/1768/337 430/1870/337 429/1871/351 -f 844/1767/352 846/1769/339 423/1872/339 422/1873/352 -f 903/1874/293 904/1875/295 382/545/295 381/544/293 -f 905/1876/288 906/1877/291 393/556/291 395/559/288 -f 907/1878/294 908/1879/289 397/566/289 399/565/294 -f 909/1880/290 910/1881/292 401/569/292 403/572/290 -f 906/1877/291 903/1874/293 381/544/293 393/556/291 -f 908/1882/289 905/1876/288 395/559/288 397/562/289 -f 910/1881/292 907/1878/294 399/565/294 401/569/292 -f 904/1875/295 909/1880/290 403/572/290 382/545/295 +f 354/1861/331 353/1858/291 368/527/291 370/529/331 +f 845/1788/337 847/1790/338 431/1862/338 430/1863/337 +f 846/1789/339 848/1791/340 424/1864/340 423/1865/339 +f 847/1790/338 849/1792/341 432/1866/341 431/1867/338 +f 848/1791/340 850/1793/342 425/1868/342 424/1869/340 +f 849/1792/341 851/1794/343 433/1870/343 432/1871/341 +f 850/1793/342 852/1795/344 426/1872/344 425/1873/342 +f 851/1794/343 853/1796/345 434/1874/345 433/1875/343 +f 852/1795/344 854/1797/346 427/1876/346 426/1877/344 +f 853/1796/345 841/1784/347 435/1878/347 434/1879/345 +f 854/1797/346 843/1798/348 428/1880/348 427/1881/346 +f 840/1783/349 839/1782/350 421/1882/350 436/1883/349 +f 841/1784/347 840/1783/349 436/1884/349 435/1885/347 +f 843/1786/348 842/1785/351 429/1886/351 428/1887/348 +f 839/1782/350 844/1787/352 422/1888/352 421/1889/350 +f 842/1785/351 845/1788/337 430/1890/337 429/1891/351 +f 844/1787/352 846/1789/339 423/1892/339 422/1893/352 +f 903/1894/293 904/1895/295 382/545/295 381/544/293 +f 905/1896/288 906/1897/291 393/556/291 395/559/288 +f 907/1898/294 908/1899/289 397/566/289 399/565/294 +f 909/1900/290 910/1901/292 401/569/292 403/572/290 +f 906/1897/291 903/1894/293 381/544/293 393/556/291 +f 908/1902/289 905/1896/288 395/559/288 397/562/289 +f 910/1901/292 907/1898/294 399/565/294 401/569/292 +f 904/1895/295 909/1900/290 403/572/290 382/545/295 f 384/547/293 383/546/295 407/579/295 406/578/293 -f 385/1883/288 392/1884/289 408/605/289 419/608/288 -f 392/1885/289 391/1886/294 405/577/294 408/580/289 +f 385/1903/288 392/1904/289 408/605/289 419/608/288 +f 392/1905/289 391/1906/294 405/577/294 408/580/289 f 394/558/291 384/557/293 406/583/293 410/582/291 -f 391/1887/294 390/1888/292 409/581/292 405/584/294 +f 391/1907/294 390/1908/292 409/581/292 405/584/294 f 396/561/288 394/560/291 410/587/291 412/586/288 -f 390/1889/292 389/1890/290 411/585/290 409/588/292 +f 390/1909/292 389/1910/290 411/585/290 409/588/292 f 398/564/289 396/563/288 412/591/288 414/590/289 f 383/576/295 404/575/290 420/607/290 407/606/295 -f 386/1891/291 385/1892/288 419/601/288 417/604/291 +f 386/1911/291 385/1912/288 419/601/288 417/604/291 f 404/574/290 402/573/292 418/603/292 420/602/290 -f 387/1893/293 386/1894/291 417/597/291 415/600/293 +f 387/1913/293 386/1914/291 417/597/291 415/600/293 f 402/571/292 400/570/294 416/599/294 418/598/292 -f 388/1895/295 387/1896/293 415/593/293 413/596/295 +f 388/1915/295 387/1916/293 415/593/293 413/596/295 f 400/568/294 398/567/289 414/595/289 416/594/294 -f 389/1897/290 388/1898/295 413/589/295 411/592/290 -f 445/1899/124 444/1900/289 465/1901/289 464/1902/124 -f 450/1903/290 452/1904/125 456/1905/125 455/1906/290 -f 452/1904/125 439/1907/295 457/1908/295 456/1905/125 -f 442/1909/288 445/1910/124 464/1911/124 463/1912/288 -f 451/1913/131 450/1903/290 455/1906/290 470/1914/131 -f 443/1915/129 442/1909/288 463/1912/288 462/1916/129 -f 448/1917/292 451/1913/131 470/1914/131 469/1918/292 -f 440/1919/291 443/1915/129 462/1916/129 461/1920/291 -f 449/1921/126 448/1917/292 469/1918/292 468/1922/126 -f 441/1923/127 440/1919/291 461/1920/291 460/1924/127 -f 446/1925/294 449/1921/126 468/1922/126 467/1926/294 -f 437/1927/293 441/1923/127 460/1924/127 459/1928/293 -f 447/1929/130 446/1925/294 467/1926/294 466/1930/130 -f 438/1931/128 437/1927/293 459/1928/293 458/1932/128 -f 444/1900/289 447/1929/130 466/1930/130 465/1901/289 -f 439/1907/295 438/1931/128 458/1932/128 457/1908/295 -f 911/1933/353 912/1934/173 688/1935/173 687/1936/353 -f 913/1937/126 914/1938/354 691/1939/354 690/1940/126 -f 694/1034/355 693/1033/355 702/1041/356 700/1941/356 -f 915/1942/357 911/1933/353 687/1936/353 686/1943/357 -f 916/1944/358 913/1937/126 690/1940/126 689/1945/358 -f 700/1941/356 702/1041/356 701/1946/359 699/1947/359 -f 917/1948/360 692/1949/361 684/1950/361 683/1951/360 -f 696/1952/362 915/1942/357 686/1943/357 685/1953/362 -f 912/1934/173 916/1944/358 689/1945/358 688/1935/173 -f 699/1947/359 701/1946/359 918/1954/127 698/1955/127 -f 914/1938/354 917/1948/360 683/1951/360 691/1939/354 -f 695/1035/363 697/1038/363 698/1955/127 918/1954/127 -f 919/1956/155 920/1957/356 709/1958/356 708/1959/155 -f 921/1960/126 922/1961/354 706/1962/354 705/1963/126 -f 923/1964/364 924/1965/357 713/1966/357 712/1967/364 -f 925/1968/353 926/1969/173 703/1970/173 714/1971/353 -f 920/1957/356 927/1972/359 710/1973/359 709/1958/356 -f 922/1961/354 928/1974/360 707/1975/360 706/1962/354 -f 924/1965/357 925/1976/353 714/1977/353 713/1966/357 -f 926/1969/173 929/1978/358 704/1979/358 703/1970/173 -f 927/1972/359 930/1980/127 711/1981/127 710/1973/359 -f 928/1974/360 919/1956/155 708/1959/155 707/1975/360 -f 929/1978/358 921/1960/126 705/1963/126 704/1979/358 -f 930/1980/127 923/1964/364 712/1967/364 711/1981/127 -f 931/1982/365 932/1983/366 933/1984/367 934/1985/368 -f 935/1986/369 936/1987/370 937/1988/371 938/1989/372 -f 939/1990/373 940/1991/374 941/1992/375 942/1993/376 -f 943/1994/377 944/1995/378 945/1996/379 946/1997/380 -f 946/1997/380 945/1996/379 940/1991/374 939/1990/373 -f 947/1998/381 948/1999/382 944/1995/378 943/1994/377 -f 945/1996/379 949/2000/383 950/2001/384 940/1991/374 -f 948/1999/382 951/2002/385 952/2003/386 944/1995/378 -f 940/1991/374 950/2001/384 953/2004/387 941/1992/375 -f 944/1995/378 952/2003/386 949/2000/383 945/1996/379 -f 954/2005/373 955/2006/374 956/2007/375 957/2008/376 -f 958/2009/377 959/2010/378 960/2011/379 961/2012/380 -f 961/2012/380 960/2011/379 955/2006/374 954/2005/373 -f 962/2013/381 963/2014/382 959/2010/378 958/2009/377 -f 960/2011/379 964/2015/383 965/2016/384 955/2006/374 -f 963/2014/382 966/2017/385 967/2018/386 959/2010/378 -f 955/2006/374 965/2016/384 968/2019/387 956/2007/375 -f 959/2010/378 967/2018/386 964/2015/383 960/2011/379 -f 969/2020/373 970/2021/374 971/2022/375 972/2023/376 -f 973/2024/377 974/2025/388 975/2026/379 976/2027/380 -f 976/2027/380 975/2026/379 970/2021/374 969/2020/373 -f 977/2028/381 978/2029/382 974/2025/388 973/2024/377 -f 975/2026/379 979/2030/383 980/2031/384 970/2021/374 -f 978/2029/382 981/2032/385 982/2033/386 974/2025/388 -f 970/2021/374 980/2031/384 983/2034/387 971/2022/375 -f 974/2025/388 982/2033/386 979/2030/383 975/2026/379 -f 939/1990/373 942/1993/376 984/2035/295 985/2036/125 -f 954/2005/373 957/2008/376 986/2037/295 987/2038/125 -f 946/1997/380 939/1990/373 985/2036/125 988/2039/131 -f 943/1994/377 946/1997/380 988/2039/131 989/2040/126 -f 969/2020/373 972/2023/376 990/2041/295 991/2042/125 -f 961/2012/380 954/2005/373 987/2038/125 992/2043/131 -f 947/1998/381 943/1994/377 989/2040/126 993/2044/294 -f 958/2009/377 961/2012/380 992/2043/131 994/2045/126 -f 976/2027/380 969/2020/373 991/2042/125 995/2046/131 -f 973/2024/377 976/2027/380 995/2046/131 996/2047/126 -f 962/2013/381 958/2009/377 994/2045/126 997/2048/294 -f 977/2028/381 973/2024/377 996/2047/126 998/2049/294 -f 932/1983/366 935/1986/369 938/1989/372 933/1984/367 -f 999/2050/389 931/1982/365 934/1985/368 1000/2051/390 -f 933/1984/367 938/1989/372 1001/2052/391 1002/2053/392 -f 1000/2051/390 934/1985/368 1003/2054/393 1004/2055/394 -f 938/1989/372 937/1988/371 1005/2056/395 1001/2052/391 -f 934/1985/368 933/1984/367 1002/2053/392 1003/2054/393 -f 1006/2057/369 1007/2058/370 1008/2059/371 1009/2060/396 -f 1010/2061/365 1011/2062/366 1012/2063/367 1013/2064/368 -f 1011/2062/366 1006/2057/369 1009/2060/396 1012/2063/367 -f 1014/2065/389 1010/2061/365 1013/2064/368 1015/2066/390 -f 1012/2063/367 1009/2060/396 1016/2067/391 1017/2068/392 -f 1015/2066/390 1013/2064/368 1018/2069/393 1019/2070/394 -f 1009/2060/396 1008/2059/371 1020/2071/395 1016/2067/391 -f 1013/2064/368 1012/2063/367 1017/2068/392 1018/2069/393 -f 1021/2072/369 1022/2073/370 1023/2074/371 1024/2075/372 -f 1025/2076/365 1026/2077/366 1027/2078/367 1028/2079/397 -f 1026/2077/366 1021/2072/369 1024/2075/372 1027/2078/367 -f 1029/2080/389 1025/2076/365 1028/2079/397 1030/2081/390 -f 1027/2078/367 1024/2075/372 1031/2082/391 1032/2083/392 -f 1030/2081/390 1028/2079/397 1033/2084/393 1034/2085/394 -f 1024/2075/372 1023/2074/371 1035/2086/395 1031/2082/391 -f 1028/2079/397 1027/2078/367 1032/2083/392 1033/2084/393 -f 935/1986/369 1036/2087/125 1037/2088/290 936/1987/370 -f 1006/2057/369 1038/2089/125 1039/2090/290 1007/2058/370 -f 932/1983/366 1040/2091/128 1036/2087/125 935/1986/369 -f 931/1982/365 1041/2092/127 1040/2091/128 932/1983/366 -f 1021/2072/369 1042/2093/125 1043/2094/290 1022/2073/370 -f 1011/2062/366 1044/2095/128 1038/2089/125 1006/2057/369 -f 999/2050/389 1045/2096/291 1041/2092/127 931/1982/365 -f 1010/2061/365 1046/2097/127 1044/2095/128 1011/2062/366 -f 1026/2077/366 1047/2098/128 1042/2093/125 1021/2072/369 -f 1025/2076/365 1048/2099/127 1047/2098/128 1026/2077/366 -f 1014/2065/389 1049/2100/291 1046/2097/127 1010/2061/365 -f 1029/2080/389 1050/2101/291 1048/2099/127 1025/2076/365 -f 1092/2102/398 1093/2103/399 1094/2104/400 1095/2105/401 -f 1096/2106/402 1097/2107/147 1098/2108/403 1099/2109/404 -f 1100/2110/405 1101/2111/406 1102/2112/407 1103/2113/408 -f 1101/2111/406 1104/2114/409 1105/2115/410 1102/2112/407 -f 1106/2116/148 1092/2102/398 1095/2105/401 1107/2117/411 -f 1093/2103/399 1096/2106/402 1099/2109/404 1094/2104/400 -f 1097/2107/147 1100/2110/405 1103/2113/408 1098/2108/403 -f 1104/2114/409 1106/2118/148 1107/2119/411 1105/2115/410 -f 1103/2113/408 1102/2112/407 1108/2120/412 1109/2121/413 -f 1099/2109/404 1098/2108/403 1110/2122/150 1111/2123/414 -f 1095/2105/401 1094/2104/400 1112/2124/415 1113/2125/416 -f 1105/2115/410 1107/2119/411 1114/2126/152 1115/2127/417 -f 1098/2108/403 1103/2113/408 1109/2121/413 1110/2122/150 -f 1094/2104/400 1099/2109/404 1111/2123/414 1112/2124/415 -f 1107/2117/411 1095/2105/401 1113/2125/416 1114/2128/152 -f 1102/2112/407 1105/2115/410 1115/2127/417 1108/2120/412 -f 1114/2128/152 1113/2125/416 1116/2129/318 1117/2130/136 -f 1108/2120/412 1115/2127/417 1118/2131/317 1119/2132/322 -f 1109/2121/413 1108/2120/412 1119/2132/322 1120/2133/418 -f 1111/2123/414 1110/2122/150 1121/2134/132 1122/2135/419 -f 1113/2125/416 1112/2124/415 1123/2136/319 1116/2129/318 -f 1115/2127/417 1114/2126/152 1117/2137/136 1118/2131/317 -f 1110/2122/150 1109/2121/413 1120/2133/418 1121/2134/132 -f 1112/2124/415 1111/2123/414 1122/2135/419 1123/2136/319 -f 1121/2134/132 1120/2133/418 1124/2138/420 1125/2139/421 -f 1123/2136/319 1122/2135/419 1126/2140/422 1127/2141/423 -f 1117/2130/136 1116/2129/318 1128/2142/424 1129/2143/425 -f 1119/2132/322 1118/2131/317 1130/2144/426 1131/2145/427 -f 1120/2133/418 1119/2132/322 1131/2145/427 1124/2138/420 -f 1122/2135/419 1121/2134/132 1125/2139/421 1126/2140/422 -f 1116/2129/318 1123/2136/319 1127/2141/423 1128/2142/424 -f 1118/2131/317 1117/2137/136 1129/2146/425 1130/2144/426 -f 1132/2147/292 1133/2148/428 1064/1252/428 1061/1249/292 -f 1134/2149/429 1135/2150/430 1052/1240/430 1066/1254/429 -f 1136/2151/291 1137/2152/431 1056/1244/431 1053/1241/291 -f 1138/2153/432 1139/2154/433 1060/1248/433 1057/1245/432 -f 1133/2148/428 1134/2155/429 1066/1256/429 1064/1252/428 -f 1135/2150/430 1136/2151/291 1053/1241/291 1052/1240/430 -f 1137/2152/431 1138/2153/432 1057/1245/432 1056/1244/431 -f 1139/2154/433 1132/2147/292 1061/1249/292 1060/1248/433 -f 1069/2156/431 1068/2157/291 1078/1268/291 1081/1271/431 -f 1063/1251/433 1062/1250/292 1077/1267/292 1076/1266/433 -f 1070/2158/432 1069/2156/431 1081/1271/431 1083/1273/432 -f 1062/1250/292 1065/1253/428 1080/1270/428 1077/1267/292 -f 1071/2159/433 1070/2160/432 1083/1277/432 1085/1276/433 -f 1065/1253/428 1067/1257/429 1082/1272/429 1080/1270/428 -f 1072/2161/292 1071/2159/433 1085/1276/433 1087/1279/292 -f 1067/1255/429 1055/1243/430 1084/1275/430 1082/1274/429 -f 1058/1246/432 1063/1251/433 1076/1266/433 1090/1282/432 -f 1068/2157/291 1075/2162/430 1079/1269/430 1078/1268/291 -f 1059/1247/431 1058/1246/432 1090/1282/432 1088/1280/431 -f 1075/2162/430 1074/2163/429 1091/1283/429 1079/1269/430 -f 1054/1242/291 1059/1247/431 1088/1280/431 1086/1278/291 -f 1074/2163/429 1073/2164/428 1089/1281/428 1091/1283/429 -f 1055/1243/430 1054/1242/291 1086/1278/291 1084/1275/430 -f 1073/2164/428 1072/2161/292 1087/1279/292 1089/1281/428 -f 1180/2165/434 1181/2166/435 1182/2167/436 1183/2168/437 -f 1184/2169/438 1185/2170/439 1186/2171/440 1187/2172/441 -f 1188/2173/442 1189/2174/443 1190/2175/444 1191/2176/445 -f 1189/2174/443 1192/2177/446 1193/2178/447 1190/2175/444 -f 1194/2179/448 1180/2165/434 1183/2168/437 1195/2180/449 -f 1181/2166/435 1184/2169/438 1187/2172/441 1182/2167/436 -f 1185/2170/439 1188/2173/442 1191/2176/445 1186/2171/440 -f 1192/2177/446 1194/2181/448 1195/2182/449 1193/2178/447 -f 1191/2176/445 1190/2175/444 1196/2183/450 1197/2184/451 -f 1187/2172/441 1186/2171/440 1198/2185/452 1199/2186/453 -f 1183/2168/437 1182/2167/436 1200/2187/454 1201/2188/455 -f 1193/2178/447 1195/2182/449 1202/2189/456 1203/2190/457 -f 1186/2171/440 1191/2176/445 1197/2184/451 1198/2185/452 -f 1182/2167/436 1187/2172/441 1199/2186/453 1200/2187/454 -f 1195/2180/449 1183/2168/437 1201/2188/455 1202/2191/456 -f 1190/2175/444 1193/2178/447 1203/2190/457 1196/2183/450 -f 1202/2191/456 1201/2188/455 1204/2192/458 1205/2193/136 -f 1196/2183/450 1203/2190/457 1206/2194/459 1207/2195/460 -f 1197/2184/451 1196/2183/450 1207/2195/460 1208/2196/461 -f 1199/2186/453 1198/2185/452 1209/2197/132 1210/2198/462 -f 1201/2188/455 1200/2187/454 1211/2199/463 1204/2192/458 -f 1203/2190/457 1202/2189/456 1205/2200/136 1206/2194/459 -f 1198/2185/452 1197/2184/451 1208/2196/461 1209/2197/132 -f 1200/2187/454 1199/2186/453 1210/2198/462 1211/2199/463 -f 1209/2197/132 1208/2196/461 1212/2201/464 1213/2202/465 -f 1211/2199/463 1210/2198/462 1214/2203/466 1215/2204/467 -f 1205/2193/136 1204/2192/458 1216/2205/468 1217/2206/469 -f 1207/2195/460 1206/2194/459 1218/2207/470 1219/2208/471 -f 1208/2196/461 1207/2195/460 1219/2208/471 1212/2201/464 -f 1210/2198/462 1209/2197/132 1213/2202/465 1214/2203/466 -f 1204/2192/458 1211/2199/463 1215/2204/467 1216/2205/468 -f 1206/2194/459 1205/2200/136 1217/2209/469 1218/2207/470 -f 1220/2210/289 1221/2211/472 1152/1296/472 1149/1293/289 -f 1222/2212/473 1223/2213/474 1140/1284/474 1154/1298/473 -f 1224/2214/295 1225/2215/475 1144/1288/475 1141/1285/295 -f 1226/2216/476 1227/2217/477 1148/1292/477 1145/1289/476 -f 1221/2211/472 1222/2218/473 1154/1300/473 1152/1296/472 -f 1223/2213/474 1224/2214/295 1141/1285/295 1140/1284/474 -f 1225/2215/475 1226/2216/476 1145/1289/476 1144/1288/475 -f 1227/2217/477 1220/2210/289 1149/1293/289 1148/1292/477 -f 1157/2219/475 1156/2220/295 1166/1312/295 1169/1315/475 -f 1151/1295/477 1150/1294/289 1165/1311/289 1164/1310/477 -f 1158/2221/476 1157/2219/475 1169/1315/475 1171/1317/476 -f 1150/1294/289 1153/1297/472 1168/1314/472 1165/1311/289 -f 1159/2222/477 1158/2223/476 1171/1321/476 1173/1320/477 -f 1153/1297/472 1155/1301/473 1170/1316/473 1168/1314/472 -f 1160/2224/289 1159/2222/477 1173/1320/477 1175/1323/289 -f 1155/1299/473 1143/1287/474 1172/1319/474 1170/1318/473 -f 1146/1290/476 1151/1295/477 1164/1310/477 1178/1326/476 -f 1156/2220/295 1163/2225/474 1167/1313/474 1166/1312/295 -f 1147/1291/475 1146/1290/476 1178/1326/476 1176/1324/475 -f 1163/2225/474 1162/2226/473 1179/1327/473 1167/1313/474 -f 1142/1286/295 1147/1291/475 1176/1324/475 1174/1322/295 -f 1162/2226/473 1161/2227/472 1177/1325/472 1179/1327/473 -f 1143/1287/474 1142/1286/295 1174/1322/295 1172/1319/474 -f 1161/2227/472 1160/2224/289 1175/1323/289 1177/1325/472 -f 1268/2228/478 1269/2229/479 1270/2230/480 1271/2231/481 -f 1272/2232/482 1273/2233/483 1274/2234/484 1275/2235/485 -f 1276/2236/486 1277/2237/487 1278/2238/488 1279/2239/489 -f 1277/2237/487 1280/2240/490 1281/2241/491 1278/2238/488 -f 1282/2242/492 1268/2228/478 1271/2231/481 1283/2243/493 -f 1269/2229/479 1272/2232/482 1275/2235/485 1270/2230/480 -f 1273/2233/483 1276/2236/486 1279/2239/489 1274/2234/484 -f 1280/2240/490 1282/2244/492 1283/2245/493 1281/2241/491 -f 1279/2239/489 1278/2238/488 1284/2246/494 1285/2247/495 -f 1275/2235/485 1274/2234/484 1286/2248/496 1287/2249/497 -f 1271/2231/481 1270/2230/480 1288/2250/498 1289/2251/499 -f 1281/2241/491 1283/2245/493 1290/2252/500 1291/2253/501 -f 1274/2234/484 1279/2239/489 1285/2247/495 1286/2248/496 -f 1270/2230/480 1275/2235/485 1287/2249/497 1288/2250/498 -f 1283/2243/493 1271/2231/481 1289/2251/499 1290/2254/500 -f 1278/2238/488 1281/2241/491 1291/2253/501 1284/2246/494 -f 1290/2254/500 1289/2251/499 1292/2255/459 1293/2256/136 -f 1284/2246/494 1291/2253/501 1294/2257/458 1295/2258/463 -f 1285/2247/495 1284/2246/494 1295/2258/463 1296/2259/502 -f 1287/2249/497 1286/2248/496 1297/2260/132 1298/2261/503 -f 1289/2251/499 1288/2250/498 1299/2262/460 1292/2255/459 -f 1291/2253/501 1290/2252/500 1293/2263/136 1294/2257/458 -f 1286/2248/496 1285/2247/495 1296/2259/502 1297/2260/132 -f 1288/2250/498 1287/2249/497 1298/2261/503 1299/2262/460 -f 1297/2260/132 1296/2259/502 1300/2264/504 1301/2265/505 -f 1299/2262/460 1298/2261/503 1302/2266/506 1303/2267/507 -f 1293/2256/136 1292/2255/459 1304/2268/508 1305/2269/509 -f 1295/2258/463 1294/2257/458 1306/2270/510 1307/2271/511 -f 1296/2259/502 1295/2258/463 1307/2271/511 1300/2264/504 -f 1298/2261/503 1297/2260/132 1301/2265/505 1302/2266/506 -f 1292/2255/459 1299/2262/460 1303/2267/507 1304/2268/508 -f 1294/2257/458 1293/2263/136 1305/2272/509 1306/2270/510 -f 1308/2273/295 1309/2274/512 1240/1340/512 1237/1337/295 -f 1310/2275/513 1311/2276/514 1228/1328/514 1242/1342/513 -f 1312/2277/289 1313/2278/515 1232/1332/515 1229/1329/289 -f 1314/2279/516 1315/2280/517 1236/1336/517 1233/1333/516 -f 1309/2274/512 1310/2281/513 1242/1344/513 1240/1340/512 -f 1311/2276/514 1312/2277/289 1229/1329/289 1228/1328/514 -f 1313/2278/515 1314/2279/516 1233/1333/516 1232/1332/515 -f 1315/2280/517 1308/2273/295 1237/1337/295 1236/1336/517 -f 1245/2282/515 1244/2283/289 1254/1356/289 1257/1359/515 -f 1239/1339/517 1238/1338/295 1253/1355/295 1252/1354/517 -f 1246/2284/516 1245/2282/515 1257/1359/515 1259/1361/516 -f 1238/1338/295 1241/1341/512 1256/1358/512 1253/1355/295 -f 1247/2285/517 1246/2286/516 1259/1365/516 1261/1364/517 -f 1241/1341/512 1243/1345/513 1258/1360/513 1256/1358/512 -f 1248/2287/295 1247/2285/517 1261/1364/517 1263/1367/295 -f 1243/1343/513 1231/1331/514 1260/1363/514 1258/1362/513 -f 1234/1334/516 1239/1339/517 1252/1354/517 1266/1370/516 -f 1244/2283/289 1251/2288/514 1255/1357/514 1254/1356/289 -f 1235/1335/515 1234/1334/516 1266/1370/516 1264/1368/515 -f 1251/2288/514 1250/2289/513 1267/1371/513 1255/1357/514 -f 1230/1330/289 1235/1335/515 1264/1368/515 1262/1366/289 -f 1250/2289/513 1249/2290/512 1265/1369/512 1267/1371/513 -f 1231/1331/514 1230/1330/289 1262/1366/289 1260/1363/514 -f 1249/2290/512 1248/2287/295 1263/1367/295 1265/1369/512 -f 1356/2291/518 1357/2292/519 1358/2293/520 1359/2294/521 -f 1360/2295/522 1361/2296/523 1362/2297/524 1363/2298/525 -f 1364/2299/526 1365/2300/527 1366/2301/528 1367/2302/529 -f 1365/2300/527 1368/2303/530 1369/2304/531 1366/2301/528 -f 1370/2305/532 1356/2291/518 1359/2294/521 1371/2306/533 -f 1357/2292/519 1360/2295/522 1363/2298/525 1358/2293/520 -f 1361/2296/523 1364/2299/526 1367/2302/529 1362/2297/524 -f 1368/2303/530 1370/2307/532 1371/2308/533 1369/2304/531 -f 1367/2302/529 1366/2301/528 1372/2309/534 1373/2310/535 -f 1363/2298/525 1362/2297/524 1374/2311/392 1375/2312/536 -f 1359/2294/521 1358/2293/520 1376/2313/537 1377/2314/538 -f 1369/2304/531 1371/2308/533 1378/2315/539 1379/2316/540 -f 1362/2297/524 1367/2302/529 1373/2310/535 1374/2311/392 -f 1358/2293/520 1363/2298/525 1375/2312/536 1376/2313/537 -f 1371/2306/533 1359/2294/521 1377/2314/538 1378/2317/539 -f 1366/2301/528 1369/2304/531 1379/2316/540 1372/2309/534 -f 1378/2317/539 1377/2314/538 1380/2318/541 1381/2319/136 -f 1372/2309/534 1379/2316/540 1382/2320/542 1383/2321/543 -f 1373/2310/535 1372/2309/534 1383/2321/543 1384/2322/544 -f 1375/2312/536 1374/2311/392 1385/2323/132 1386/2324/545 -f 1377/2314/538 1376/2313/537 1387/2325/546 1380/2318/541 -f 1379/2316/540 1378/2315/539 1381/2326/136 1382/2320/542 -f 1374/2311/392 1373/2310/535 1384/2322/544 1385/2323/132 -f 1376/2313/537 1375/2312/536 1386/2324/545 1387/2325/546 -f 1385/2323/132 1384/2322/544 1388/2327/547 1389/2328/548 -f 1387/2325/546 1386/2324/545 1390/2329/549 1391/2330/550 -f 1381/2319/136 1380/2318/541 1392/2331/551 1393/2332/552 -f 1383/2321/543 1382/2320/542 1394/2333/553 1395/2334/554 -f 1384/2322/544 1383/2321/543 1395/2334/554 1388/2327/547 -f 1386/2324/545 1385/2323/132 1389/2328/548 1390/2329/549 -f 1380/2318/541 1387/2325/546 1391/2330/550 1392/2331/551 -f 1382/2320/542 1381/2326/136 1393/2335/552 1394/2333/553 -f 1396/2336/288 1397/2337/555 1328/1384/555 1325/1381/288 -f 1398/2338/556 1399/2339/557 1316/1372/557 1330/1386/556 -f 1400/2340/290 1401/2341/558 1320/1376/558 1317/1373/290 -f 1402/2342/559 1403/2343/560 1324/1380/560 1321/1377/559 -f 1397/2337/555 1398/2344/556 1330/1388/556 1328/1384/555 -f 1399/2339/557 1400/2340/290 1317/1373/290 1316/1372/557 -f 1401/2341/558 1402/2342/559 1321/1377/559 1320/1376/558 -f 1403/2343/560 1396/2336/288 1325/1381/288 1324/1380/560 -f 1333/2345/558 1332/2346/290 1342/1400/290 1345/1403/558 -f 1327/1383/560 1326/1382/288 1341/1399/288 1340/1398/560 -f 1334/2347/559 1333/2345/558 1345/1403/558 1347/1405/559 -f 1326/1382/288 1329/1385/555 1344/1402/555 1341/1399/288 -f 1335/2348/560 1334/2349/559 1347/1409/559 1349/1408/560 -f 1329/1385/555 1331/1389/556 1346/1404/556 1344/1402/555 -f 1336/2350/288 1335/2348/560 1349/1408/560 1351/1411/288 -f 1331/1387/556 1319/1375/557 1348/1407/557 1346/1406/556 -f 1322/1378/559 1327/1383/560 1340/1398/560 1354/1414/559 -f 1332/2346/290 1339/2351/557 1343/1401/557 1342/1400/290 -f 1323/1379/558 1322/1378/559 1354/1414/559 1352/1412/558 -f 1339/2351/557 1338/2352/556 1355/1415/556 1343/1401/557 -f 1318/1374/290 1323/1379/558 1352/1412/558 1350/1410/290 -f 1338/2352/556 1337/2353/555 1353/1413/555 1355/1415/556 -f 1319/1375/557 1318/1374/290 1350/1410/290 1348/1407/557 -f 1337/2353/555 1336/2350/288 1351/1411/288 1353/1413/555 -f 1444/2354/561 1445/2355/562 1446/2356/563 1447/2357/564 -f 1448/2358/565 1449/2359/566 1450/2360/567 1451/2361/568 -f 1452/2362/569 1453/2363/570 1454/2364/571 1455/2365/572 -f 1453/2363/570 1456/2366/573 1457/2367/574 1454/2364/571 -f 1458/2368/575 1444/2354/561 1447/2357/564 1459/2369/576 -f 1445/2355/562 1448/2358/565 1451/2361/568 1446/2356/563 -f 1449/2359/566 1452/2362/569 1455/2365/572 1450/2360/567 -f 1456/2366/573 1458/2370/575 1459/2371/576 1457/2367/574 -f 1455/2365/572 1454/2364/571 1460/2372/577 1461/2373/578 -f 1451/2361/568 1450/2360/567 1462/2374/579 1463/2375/580 -f 1447/2357/564 1446/2356/563 1464/2376/581 1465/2377/582 -f 1457/2367/574 1459/2371/576 1466/2378/583 1467/2379/584 -f 1450/2360/567 1455/2365/572 1461/2373/578 1462/2374/579 -f 1446/2356/563 1451/2361/568 1463/2375/580 1464/2376/581 -f 1459/2369/576 1447/2357/564 1465/2377/582 1466/2380/583 -f 1454/2364/571 1457/2367/574 1467/2379/584 1460/2372/577 -f 1466/2380/583 1465/2377/582 1468/2381/542 1469/2382/136 -f 1460/2372/577 1467/2379/584 1470/2383/541 1471/2384/546 -f 1461/2373/578 1460/2372/577 1471/2384/546 1472/2385/545 -f 1463/2375/580 1462/2374/579 1473/2386/132 1474/2387/544 -f 1465/2377/582 1464/2376/581 1475/2388/543 1468/2381/542 -f 1467/2379/584 1466/2378/583 1469/2389/136 1470/2383/541 -f 1462/2374/579 1461/2373/578 1472/2385/545 1473/2386/132 -f 1464/2376/581 1463/2375/580 1474/2387/544 1475/2388/543 -f 1473/2386/132 1472/2385/545 1476/2390/585 1477/2391/586 -f 1475/2388/543 1474/2387/544 1478/2392/587 1479/2393/588 -f 1469/2382/136 1468/2381/542 1480/2394/589 1481/2395/590 -f 1471/2384/546 1470/2383/541 1482/2396/591 1483/2397/592 -f 1472/2385/545 1471/2384/546 1483/2397/592 1476/2390/585 -f 1474/2387/544 1473/2386/132 1477/2391/586 1478/2392/587 -f 1468/2381/542 1475/2388/543 1479/2393/588 1480/2394/589 -f 1470/2383/541 1469/2389/136 1481/2398/590 1482/2396/591 -f 1484/2399/290 1485/2400/593 1416/1428/593 1413/1425/290 -f 1486/2401/594 1487/2402/595 1404/1416/595 1418/1430/594 -f 1488/2403/288 1489/2404/596 1408/1420/596 1405/1417/288 -f 1490/2405/597 1491/2406/598 1412/1424/598 1409/1421/597 -f 1485/2400/593 1486/2407/594 1418/1432/594 1416/1428/593 -f 1487/2402/595 1488/2403/288 1405/1417/288 1404/1416/595 -f 1489/2404/596 1490/2405/597 1409/1421/597 1408/1420/596 -f 1491/2406/598 1484/2399/290 1413/1425/290 1412/1424/598 -f 1421/2408/596 1420/2409/288 1430/1444/288 1433/1447/596 -f 1415/1427/598 1414/1426/290 1429/1443/290 1428/1442/598 -f 1422/2410/597 1421/2408/596 1433/1447/596 1435/1449/597 -f 1414/1426/290 1417/1429/593 1432/1446/593 1429/1443/290 -f 1423/2411/598 1422/2412/597 1435/1453/597 1437/1452/598 -f 1417/1429/593 1419/1433/594 1434/1448/594 1432/1446/593 -f 1424/2413/290 1423/2411/598 1437/1452/598 1439/1455/290 -f 1419/1431/594 1407/1419/595 1436/1451/595 1434/1450/594 -f 1410/1422/597 1415/1427/598 1428/1442/598 1442/1458/597 -f 1420/2409/288 1427/2414/595 1431/1445/595 1430/1444/288 -f 1411/1423/596 1410/1422/597 1442/1458/597 1440/1456/596 -f 1427/2414/595 1426/2415/594 1443/1459/594 1431/1445/595 -f 1406/1418/288 1411/1423/596 1440/1456/596 1438/1454/288 -f 1426/2415/594 1425/2416/593 1441/1457/593 1443/1459/594 -f 1407/1419/595 1406/1418/288 1438/1454/288 1436/1451/595 -f 1425/2416/593 1424/2413/290 1439/1455/290 1441/1457/593 -f 1532/2417/599 1533/2418/600 1534/2419/601 1535/2420/602 -f 1536/2421/603 1537/2422/604 1538/2423/605 1539/2424/606 -f 1540/2425/607 1541/2426/608 1542/2427/609 1543/2428/610 -f 1541/2426/608 1544/2429/611 1545/2430/612 1542/2427/609 -f 1546/2431/613 1532/2417/599 1535/2420/602 1547/2432/614 -f 1533/2418/600 1536/2421/603 1539/2424/606 1534/2419/601 -f 1537/2422/604 1540/2425/607 1543/2428/610 1538/2423/605 -f 1544/2429/611 1546/2433/613 1547/2434/614 1545/2430/612 -f 1543/2428/610 1542/2427/609 1548/2435/615 1549/2436/616 -f 1539/2424/606 1538/2423/605 1550/2437/617 1551/2438/618 -f 1535/2420/602 1534/2419/601 1552/2439/619 1553/2440/620 -f 1545/2430/612 1547/2434/614 1554/2441/621 1555/2442/622 -f 1538/2423/605 1543/2428/610 1549/2436/616 1550/2437/617 -f 1534/2419/601 1539/2424/606 1551/2438/618 1552/2439/619 -f 1547/2432/614 1535/2420/602 1553/2440/620 1554/2443/621 -f 1542/2427/609 1545/2430/612 1555/2442/622 1548/2435/615 -f 1554/2443/621 1553/2440/620 1556/2444/623 1557/2445/136 -f 1548/2435/615 1555/2442/622 1558/2446/624 1559/2447/625 -f 1549/2436/616 1548/2435/615 1559/2447/625 1560/2448/626 -f 1551/2438/618 1550/2437/617 1561/2449/132 1562/2450/627 -f 1553/2440/620 1552/2439/619 1563/2451/628 1556/2444/623 -f 1555/2442/622 1554/2441/621 1557/2452/136 1558/2446/624 -f 1550/2437/617 1549/2436/616 1560/2448/626 1561/2449/132 -f 1552/2439/619 1551/2438/618 1562/2450/627 1563/2451/628 -f 1561/2449/132 1560/2448/626 1564/2453/629 1565/2454/630 -f 1563/2451/628 1562/2450/627 1566/2455/631 1567/2456/632 -f 1557/2445/136 1556/2444/623 1568/2457/633 1569/2458/634 -f 1559/2447/625 1558/2446/624 1570/2459/635 1571/2460/636 -f 1560/2448/626 1559/2447/625 1571/2460/636 1564/2453/629 -f 1562/2450/627 1561/2449/132 1565/2454/630 1566/2455/631 -f 1556/2444/623 1563/2451/628 1567/2456/632 1568/2457/633 -f 1558/2446/624 1557/2452/136 1569/2461/634 1570/2459/635 -f 1572/2462/294 1573/2463/637 1504/1472/637 1501/1469/294 -f 1574/2464/638 1575/2465/639 1492/1460/639 1506/1474/638 -f 1576/2466/293 1577/2467/640 1496/1464/640 1493/1461/293 -f 1578/2468/641 1579/2469/642 1500/1468/642 1497/1465/641 -f 1573/2463/637 1574/2470/638 1506/1476/638 1504/1472/637 -f 1575/2465/639 1576/2466/293 1493/1461/293 1492/1460/639 -f 1577/2467/640 1578/2468/641 1497/1465/641 1496/1464/640 -f 1579/2469/642 1572/2462/294 1501/1469/294 1500/1468/642 -f 1509/2471/640 1508/2472/293 1518/1488/293 1521/1491/640 -f 1503/1471/642 1502/1470/294 1517/1487/294 1516/1486/642 -f 1510/2473/641 1509/2471/640 1521/1491/640 1523/1493/641 -f 1502/1470/294 1505/1473/637 1520/1490/637 1517/1487/294 -f 1511/2474/642 1510/2475/641 1523/1497/641 1525/1496/642 -f 1505/1473/637 1507/1477/638 1522/1492/638 1520/1490/637 -f 1512/2476/294 1511/2474/642 1525/1496/642 1527/1499/294 -f 1507/1475/638 1495/1463/639 1524/1495/639 1522/1494/638 -f 1498/1466/641 1503/1471/642 1516/1486/642 1530/1502/641 -f 1508/2472/293 1515/2477/639 1519/1489/639 1518/1488/293 -f 1499/1467/640 1498/1466/641 1530/1502/641 1528/1500/640 -f 1515/2477/639 1514/2478/638 1531/1503/638 1519/1489/639 -f 1494/1462/293 1499/1467/640 1528/1500/640 1526/1498/293 -f 1514/2478/638 1513/2479/637 1529/1501/637 1531/1503/638 -f 1495/1463/639 1494/1462/293 1526/1498/293 1524/1495/639 -f 1513/2479/637 1512/2476/294 1527/1499/294 1529/1501/637 -f 1620/2480/643 1621/2481/644 1622/2482/645 1623/2483/646 -f 1624/2484/647 1625/2485/648 1626/2486/649 1627/2487/650 -f 1628/2488/651 1629/2489/652 1630/2490/653 1631/2491/654 -f 1629/2489/652 1632/2492/655 1633/2493/656 1630/2490/653 -f 1634/2494/657 1620/2480/643 1623/2483/646 1635/2495/658 -f 1621/2481/644 1624/2484/647 1627/2487/650 1622/2482/645 -f 1625/2485/648 1628/2488/651 1631/2491/654 1626/2486/649 -f 1632/2492/655 1634/2496/657 1635/2497/658 1633/2493/656 -f 1631/2491/654 1630/2490/653 1636/2498/659 1637/2499/660 -f 1627/2487/650 1626/2486/649 1638/2500/383 1639/2501/661 -f 1623/2483/646 1622/2482/645 1640/2502/662 1641/2503/663 -f 1633/2493/656 1635/2497/658 1642/2504/664 1643/2505/665 -f 1626/2486/649 1631/2491/654 1637/2499/660 1638/2500/383 -f 1622/2482/645 1627/2487/650 1639/2501/661 1640/2502/662 -f 1635/2495/658 1623/2483/646 1641/2503/663 1642/2506/664 -f 1630/2490/653 1633/2493/656 1643/2505/665 1636/2498/659 -f 1642/2506/664 1641/2503/663 1644/2507/624 1645/2508/136 -f 1636/2498/659 1643/2505/665 1646/2509/623 1647/2510/628 -f 1637/2499/660 1636/2498/659 1647/2510/628 1648/2511/627 -f 1639/2501/661 1638/2500/383 1649/2512/132 1650/2513/626 -f 1641/2503/663 1640/2502/662 1651/2514/625 1644/2507/624 -f 1643/2505/665 1642/2504/664 1645/2515/136 1646/2509/623 -f 1638/2500/383 1637/2499/660 1648/2511/627 1649/2512/132 -f 1640/2502/662 1639/2501/661 1650/2513/626 1651/2514/625 -f 1649/2512/132 1648/2511/627 1652/2516/666 1653/2517/667 -f 1651/2514/625 1650/2513/626 1654/2518/668 1655/2519/669 -f 1645/2508/136 1644/2507/624 1656/2520/670 1657/2521/671 -f 1647/2510/628 1646/2509/623 1658/2522/672 1659/2523/673 -f 1648/2511/627 1647/2510/628 1659/2523/673 1652/2516/666 -f 1650/2513/626 1649/2512/132 1653/2517/667 1654/2518/668 -f 1644/2507/624 1651/2514/625 1655/2519/669 1656/2520/670 -f 1646/2509/623 1645/2515/136 1657/2524/671 1658/2522/672 -f 1660/2525/293 1661/2526/674 1592/1516/674 1589/1513/293 -f 1662/2527/675 1663/2528/676 1580/1504/676 1594/1518/675 -f 1664/2529/294 1665/2530/677 1584/1508/677 1581/1505/294 -f 1666/2531/678 1667/2532/679 1588/1512/679 1585/1509/678 -f 1661/2526/674 1662/2533/675 1594/1520/675 1592/1516/674 -f 1663/2528/676 1664/2529/294 1581/1505/294 1580/1504/676 -f 1665/2530/677 1666/2531/678 1585/1509/678 1584/1508/677 -f 1667/2532/679 1660/2525/293 1589/1513/293 1588/1512/679 -f 1597/2534/677 1596/2535/294 1606/1532/294 1609/1535/677 -f 1591/1515/679 1590/1514/293 1605/1531/293 1604/1530/679 -f 1598/2536/678 1597/2534/677 1609/1535/677 1611/1537/678 -f 1590/1514/293 1593/1517/674 1608/1534/674 1605/1531/293 -f 1599/2537/679 1598/2538/678 1611/1541/678 1613/1540/679 -f 1593/1517/674 1595/1521/675 1610/1536/675 1608/1534/674 -f 1600/2539/293 1599/2537/679 1613/1540/679 1615/1543/293 -f 1595/1519/675 1583/1507/676 1612/1539/676 1610/1538/675 -f 1586/1510/678 1591/1515/679 1604/1530/679 1618/1546/678 -f 1596/2535/294 1603/2540/676 1607/1533/676 1606/1532/294 -f 1587/1511/677 1586/1510/678 1618/1546/678 1616/1544/677 -f 1603/2540/676 1602/2541/675 1619/1547/675 1607/1533/676 -f 1582/1506/294 1587/1511/677 1616/1544/677 1614/1542/294 -f 1602/2541/675 1601/2542/674 1617/1545/674 1619/1547/675 -f 1583/1507/676 1582/1506/294 1614/1542/294 1612/1539/676 -f 1601/2542/674 1600/2539/293 1615/1543/293 1617/1545/674 +f 389/1917/290 388/1918/295 413/589/295 411/592/290 +f 445/1919/124 444/1920/289 465/1921/289 464/1922/124 +f 450/1923/290 452/1924/125 456/1925/125 455/1926/290 +f 452/1924/125 439/1927/295 457/1928/295 456/1925/125 +f 442/1929/288 445/1930/124 464/1931/124 463/1932/288 +f 451/1933/131 450/1923/290 455/1926/290 470/1934/131 +f 443/1935/129 442/1929/288 463/1932/288 462/1936/129 +f 448/1937/292 451/1933/131 470/1934/131 469/1938/292 +f 440/1939/291 443/1935/129 462/1936/129 461/1940/291 +f 449/1941/126 448/1937/292 469/1938/292 468/1942/126 +f 441/1943/127 440/1939/291 461/1940/291 460/1944/127 +f 446/1945/294 449/1941/126 468/1942/126 467/1946/294 +f 437/1947/293 441/1943/127 460/1944/127 459/1948/293 +f 447/1949/130 446/1945/294 467/1946/294 466/1950/130 +f 438/1951/128 437/1947/293 459/1948/293 458/1952/128 +f 444/1920/289 447/1949/130 466/1950/130 465/1921/289 +f 439/1927/295 438/1951/128 458/1952/128 457/1928/295 +f 911/1953/353 912/1954/173 688/1955/173 687/1956/353 +f 913/1957/126 914/1958/354 691/1959/354 690/1960/126 +f 694/1030/355 693/1029/355 702/1037/356 700/1961/356 +f 915/1962/357 911/1953/353 687/1956/353 686/1963/357 +f 916/1964/358 913/1957/126 690/1960/126 689/1965/358 +f 700/1961/356 702/1037/356 701/1966/359 699/1967/359 +f 917/1968/360 692/1969/361 684/1970/361 683/1971/360 +f 696/1972/362 915/1962/357 686/1963/357 685/1973/362 +f 912/1954/173 916/1964/358 689/1965/358 688/1955/173 +f 699/1967/359 701/1966/359 918/1974/127 698/1975/127 +f 914/1958/354 917/1968/360 683/1971/360 691/1959/354 +f 695/1031/363 697/1034/363 698/1975/127 918/1974/127 +f 919/1976/155 920/1977/356 709/1978/356 708/1979/155 +f 921/1980/126 922/1981/354 706/1982/354 705/1983/126 +f 923/1984/364 924/1985/357 713/1986/357 712/1987/364 +f 925/1988/353 926/1989/173 703/1990/173 714/1991/353 +f 920/1977/356 927/1992/359 710/1993/359 709/1978/356 +f 922/1981/354 928/1994/360 707/1995/360 706/1982/354 +f 924/1985/357 925/1996/353 714/1997/353 713/1986/357 +f 926/1989/173 929/1998/358 704/1999/358 703/1990/173 +f 927/1992/359 930/2000/127 711/2001/127 710/1993/359 +f 928/1994/360 919/1976/155 708/1979/155 707/1995/360 +f 929/1998/358 921/1980/126 705/1983/126 704/1999/358 +f 930/2000/127 923/1984/364 712/1987/364 711/2001/127 +f 931/2002/365 932/2003/366 933/2004/367 934/2005/368 +f 935/2006/369 936/2007/370 937/2008/371 938/2009/372 +f 939/2010/373 940/2011/374 941/2012/375 942/2013/376 +f 943/2014/377 944/2015/378 945/2016/379 946/2017/380 +f 946/2017/380 945/2016/379 940/2011/374 939/2010/373 +f 947/2018/381 948/2019/382 944/2015/378 943/2014/377 +f 945/2016/379 949/2020/383 950/2021/384 940/2011/374 +f 948/2019/382 951/2022/385 952/2023/386 944/2015/378 +f 940/2011/374 950/2021/384 953/2024/387 941/2012/375 +f 944/2015/378 952/2023/386 949/2020/383 945/2016/379 +f 954/2025/373 955/2026/374 956/2027/375 957/2028/376 +f 958/2029/377 959/2030/378 960/2031/379 961/2032/380 +f 961/2032/380 960/2031/379 955/2026/374 954/2025/373 +f 962/2033/381 963/2034/382 959/2030/378 958/2029/377 +f 960/2031/379 964/2035/383 965/2036/384 955/2026/374 +f 963/2034/382 966/2037/385 967/2038/386 959/2030/378 +f 955/2026/374 965/2036/384 968/2039/387 956/2027/375 +f 959/2030/378 967/2038/386 964/2035/383 960/2031/379 +f 969/2040/373 970/2041/374 971/2042/375 972/2043/376 +f 973/2044/377 974/2045/388 975/2046/379 976/2047/380 +f 976/2047/380 975/2046/379 970/2041/374 969/2040/373 +f 977/2048/381 978/2049/382 974/2045/388 973/2044/377 +f 975/2046/379 979/2050/383 980/2051/384 970/2041/374 +f 978/2049/382 981/2052/385 982/2053/386 974/2045/388 +f 970/2041/374 980/2051/384 983/2054/387 971/2042/375 +f 974/2045/388 982/2053/386 979/2050/383 975/2046/379 +f 939/2010/373 942/2013/376 984/2055/295 985/2056/125 +f 954/2025/373 957/2028/376 986/2057/295 987/2058/125 +f 946/2017/380 939/2010/373 985/2056/125 988/2059/131 +f 943/2014/377 946/2017/380 988/2059/131 989/2060/126 +f 969/2040/373 972/2043/376 990/2061/295 991/2062/125 +f 961/2032/380 954/2025/373 987/2058/125 992/2063/131 +f 947/2018/381 943/2014/377 989/2060/126 993/2064/294 +f 958/2029/377 961/2032/380 992/2063/131 994/2065/126 +f 976/2047/380 969/2040/373 991/2062/125 995/2066/131 +f 973/2044/377 976/2047/380 995/2066/131 996/2067/126 +f 962/2033/381 958/2029/377 994/2065/126 997/2068/294 +f 977/2048/381 973/2044/377 996/2067/126 998/2069/294 +f 932/2003/366 935/2006/369 938/2009/372 933/2004/367 +f 999/2070/389 931/2002/365 934/2005/368 1000/2071/390 +f 933/2004/367 938/2009/372 1001/2072/391 1002/2073/392 +f 1000/2071/390 934/2005/368 1003/2074/393 1004/2075/394 +f 938/2009/372 937/2008/371 1005/2076/395 1001/2072/391 +f 934/2005/368 933/2004/367 1002/2073/392 1003/2074/393 +f 1006/2077/369 1007/2078/370 1008/2079/371 1009/2080/396 +f 1010/2081/365 1011/2082/366 1012/2083/367 1013/2084/368 +f 1011/2082/366 1006/2077/369 1009/2080/396 1012/2083/367 +f 1014/2085/389 1010/2081/365 1013/2084/368 1015/2086/390 +f 1012/2083/367 1009/2080/396 1016/2087/391 1017/2088/392 +f 1015/2086/390 1013/2084/368 1018/2089/393 1019/2090/394 +f 1009/2080/396 1008/2079/371 1020/2091/395 1016/2087/391 +f 1013/2084/368 1012/2083/367 1017/2088/392 1018/2089/393 +f 1021/2092/369 1022/2093/370 1023/2094/371 1024/2095/372 +f 1025/2096/365 1026/2097/366 1027/2098/367 1028/2099/397 +f 1026/2097/366 1021/2092/369 1024/2095/372 1027/2098/367 +f 1029/2100/389 1025/2096/365 1028/2099/397 1030/2101/390 +f 1027/2098/367 1024/2095/372 1031/2102/391 1032/2103/392 +f 1030/2101/390 1028/2099/397 1033/2104/393 1034/2105/394 +f 1024/2095/372 1023/2094/371 1035/2106/395 1031/2102/391 +f 1028/2099/397 1027/2098/367 1032/2103/392 1033/2104/393 +f 935/2006/369 1036/2107/125 1037/2108/290 936/2007/370 +f 1006/2077/369 1038/2109/125 1039/2110/290 1007/2078/370 +f 932/2003/366 1040/2111/128 1036/2107/125 935/2006/369 +f 931/2002/365 1041/2112/127 1040/2111/128 932/2003/366 +f 1021/2092/369 1042/2113/125 1043/2114/290 1022/2093/370 +f 1011/2082/366 1044/2115/128 1038/2109/125 1006/2077/369 +f 999/2070/389 1045/2116/291 1041/2112/127 931/2002/365 +f 1010/2081/365 1046/2117/127 1044/2115/128 1011/2082/366 +f 1026/2097/366 1047/2118/128 1042/2113/125 1021/2092/369 +f 1025/2096/365 1048/2119/127 1047/2118/128 1026/2097/366 +f 1014/2085/389 1049/2120/291 1046/2117/127 1010/2081/365 +f 1029/2100/389 1050/2121/291 1048/2119/127 1025/2096/365 +f 1092/2122/398 1093/2123/399 1094/2124/400 1095/2125/401 +f 1096/2126/402 1097/2127/147 1098/2128/403 1099/2129/404 +f 1100/2130/405 1101/2131/406 1102/2132/407 1103/2133/408 +f 1101/2131/406 1104/2134/409 1105/2135/410 1102/2132/407 +f 1106/2136/148 1092/2122/398 1095/2125/401 1107/2137/411 +f 1093/2123/399 1096/2126/402 1099/2129/404 1094/2124/400 +f 1097/2127/147 1100/2130/405 1103/2133/408 1098/2128/403 +f 1104/2134/409 1106/2138/148 1107/2139/411 1105/2135/410 +f 1103/2133/408 1102/2132/407 1108/2140/412 1109/2141/413 +f 1099/2129/404 1098/2128/403 1110/2142/150 1111/2143/414 +f 1095/2125/401 1094/2124/400 1112/2144/415 1113/2145/416 +f 1105/2135/410 1107/2139/411 1114/2146/152 1115/2147/417 +f 1098/2128/403 1103/2133/408 1109/2141/413 1110/2142/150 +f 1094/2124/400 1099/2129/404 1111/2143/414 1112/2144/415 +f 1107/2137/411 1095/2125/401 1113/2145/416 1114/2148/152 +f 1102/2132/407 1105/2135/410 1115/2147/417 1108/2140/412 +f 1114/2148/152 1113/2145/416 1116/2149/318 1117/2150/136 +f 1108/2140/412 1115/2147/417 1118/2151/317 1119/2152/322 +f 1109/2141/413 1108/2140/412 1119/2152/322 1120/2153/418 +f 1111/2143/414 1110/2142/150 1121/2154/132 1122/2155/419 +f 1113/2145/416 1112/2144/415 1123/2156/319 1116/2149/318 +f 1115/2147/417 1114/2146/152 1117/2157/136 1118/2151/317 +f 1110/2142/150 1109/2141/413 1120/2153/418 1121/2154/132 +f 1112/2144/415 1111/2143/414 1122/2155/419 1123/2156/319 +f 1121/2154/132 1120/2153/418 1124/2158/420 1125/2159/421 +f 1123/2156/319 1122/2155/419 1126/2160/422 1127/2161/423 +f 1117/2150/136 1116/2149/318 1128/2162/424 1129/2163/425 +f 1119/2152/322 1118/2151/317 1130/2164/426 1131/2165/427 +f 1120/2153/418 1119/2152/322 1131/2165/427 1124/2158/420 +f 1122/2155/419 1121/2154/132 1125/2159/421 1126/2160/422 +f 1116/2149/318 1123/2156/319 1127/2161/423 1128/2162/424 +f 1118/2151/317 1117/2157/136 1129/2166/425 1130/2164/426 +f 1132/2167/292 1133/2168/428 1064/1250/428 1061/1247/292 +f 1134/2169/429 1135/2170/430 1052/1238/430 1066/1252/429 +f 1136/2171/291 1137/2172/431 1056/1242/431 1053/1239/291 +f 1138/2173/432 1139/2174/433 1060/1246/433 1057/1243/432 +f 1133/2168/428 1134/2175/429 1066/1254/429 1064/1250/428 +f 1135/2170/430 1136/2171/291 1053/1239/291 1052/1238/430 +f 1137/2172/431 1138/2173/432 1057/1243/432 1056/1242/431 +f 1139/2174/433 1132/2167/292 1061/1247/292 1060/1246/433 +f 1069/2176/431 1068/2177/291 1078/1266/291 1081/1269/431 +f 1063/1249/433 1062/1248/292 1077/1265/292 1076/1264/433 +f 1070/2178/432 1069/2176/431 1081/1269/431 1083/1271/432 +f 1062/1248/292 1065/1251/428 1080/1268/428 1077/1265/292 +f 1071/2179/433 1070/2180/432 1083/1275/432 1085/1274/433 +f 1065/1251/428 1067/1255/429 1082/1270/429 1080/1268/428 +f 1072/2181/292 1071/2179/433 1085/1274/433 1087/1277/292 +f 1067/1253/429 1055/1241/430 1084/1273/430 1082/1272/429 +f 1058/1244/432 1063/1249/433 1076/1264/433 1090/1280/432 +f 1068/2177/291 1075/2182/430 1079/1267/430 1078/1266/291 +f 1059/1245/431 1058/1244/432 1090/1280/432 1088/1278/431 +f 1075/2182/430 1074/2183/429 1091/1281/429 1079/1267/430 +f 1054/1240/291 1059/1245/431 1088/1278/431 1086/1276/291 +f 1074/2183/429 1073/2184/428 1089/1279/428 1091/1281/429 +f 1055/1241/430 1054/1240/291 1086/1276/291 1084/1273/430 +f 1073/2184/428 1072/2181/292 1087/1277/292 1089/1279/428 +f 1180/2185/434 1181/2186/435 1182/2187/436 1183/2188/437 +f 1184/2189/438 1185/2190/439 1186/2191/440 1187/2192/441 +f 1188/2193/442 1189/2194/443 1190/2195/444 1191/2196/445 +f 1189/2194/443 1192/2197/446 1193/2198/447 1190/2195/444 +f 1194/2199/448 1180/2185/434 1183/2188/437 1195/2200/449 +f 1181/2186/435 1184/2189/438 1187/2192/441 1182/2187/436 +f 1185/2190/439 1188/2193/442 1191/2196/445 1186/2191/440 +f 1192/2197/446 1194/2201/448 1195/2202/449 1193/2198/447 +f 1191/2196/445 1190/2195/444 1196/2203/450 1197/2204/451 +f 1187/2192/441 1186/2191/440 1198/2205/452 1199/2206/453 +f 1183/2188/437 1182/2187/436 1200/2207/454 1201/2208/455 +f 1193/2198/447 1195/2202/449 1202/2209/456 1203/2210/457 +f 1186/2191/440 1191/2196/445 1197/2204/451 1198/2205/452 +f 1182/2187/436 1187/2192/441 1199/2206/453 1200/2207/454 +f 1195/2200/449 1183/2188/437 1201/2208/455 1202/2211/456 +f 1190/2195/444 1193/2198/447 1203/2210/457 1196/2203/450 +f 1202/2211/456 1201/2208/455 1204/2212/458 1205/2213/136 +f 1196/2203/450 1203/2210/457 1206/2214/459 1207/2215/460 +f 1197/2204/451 1196/2203/450 1207/2215/460 1208/2216/461 +f 1199/2206/453 1198/2205/452 1209/2217/132 1210/2218/462 +f 1201/2208/455 1200/2207/454 1211/2219/463 1204/2212/458 +f 1203/2210/457 1202/2209/456 1205/2220/136 1206/2214/459 +f 1198/2205/452 1197/2204/451 1208/2216/461 1209/2217/132 +f 1200/2207/454 1199/2206/453 1210/2218/462 1211/2219/463 +f 1209/2217/132 1208/2216/461 1212/2221/464 1213/2222/465 +f 1211/2219/463 1210/2218/462 1214/2223/466 1215/2224/467 +f 1205/2213/136 1204/2212/458 1216/2225/468 1217/2226/469 +f 1207/2215/460 1206/2214/459 1218/2227/470 1219/2228/471 +f 1208/2216/461 1207/2215/460 1219/2228/471 1212/2221/464 +f 1210/2218/462 1209/2217/132 1213/2222/465 1214/2223/466 +f 1204/2212/458 1211/2219/463 1215/2224/467 1216/2225/468 +f 1206/2214/459 1205/2220/136 1217/2229/469 1218/2227/470 +f 1220/2230/289 1221/2231/472 1152/1294/472 1149/1291/289 +f 1222/2232/473 1223/2233/474 1140/1282/474 1154/1296/473 +f 1224/2234/295 1225/2235/475 1144/1286/475 1141/1283/295 +f 1226/2236/476 1227/2237/477 1148/1290/477 1145/1287/476 +f 1221/2231/472 1222/2238/473 1154/1298/473 1152/1294/472 +f 1223/2233/474 1224/2234/295 1141/1283/295 1140/1282/474 +f 1225/2235/475 1226/2236/476 1145/1287/476 1144/1286/475 +f 1227/2237/477 1220/2230/289 1149/1291/289 1148/1290/477 +f 1157/2239/475 1156/2240/295 1166/1310/295 1169/1313/475 +f 1151/1293/477 1150/1292/289 1165/1309/289 1164/1308/477 +f 1158/2241/476 1157/2239/475 1169/1313/475 1171/1315/476 +f 1150/1292/289 1153/1295/472 1168/1312/472 1165/1309/289 +f 1159/2242/477 1158/2243/476 1171/1319/476 1173/1318/477 +f 1153/1295/472 1155/1299/473 1170/1314/473 1168/1312/472 +f 1160/2244/289 1159/2242/477 1173/1318/477 1175/1321/289 +f 1155/1297/473 1143/1285/474 1172/1317/474 1170/1316/473 +f 1146/1288/476 1151/1293/477 1164/1308/477 1178/1324/476 +f 1156/2240/295 1163/2245/474 1167/1311/474 1166/1310/295 +f 1147/1289/475 1146/1288/476 1178/1324/476 1176/1322/475 +f 1163/2245/474 1162/2246/473 1179/1325/473 1167/1311/474 +f 1142/1284/295 1147/1289/475 1176/1322/475 1174/1320/295 +f 1162/2246/473 1161/2247/472 1177/1323/472 1179/1325/473 +f 1143/1285/474 1142/1284/295 1174/1320/295 1172/1317/474 +f 1161/2247/472 1160/2244/289 1175/1321/289 1177/1323/472 +f 1268/2248/478 1269/2249/479 1270/2250/480 1271/2251/481 +f 1272/2252/482 1273/2253/483 1274/2254/484 1275/2255/485 +f 1276/2256/486 1277/2257/487 1278/2258/488 1279/2259/489 +f 1277/2257/487 1280/2260/490 1281/2261/491 1278/2258/488 +f 1282/2262/492 1268/2248/478 1271/2251/481 1283/2263/493 +f 1269/2249/479 1272/2252/482 1275/2255/485 1270/2250/480 +f 1273/2253/483 1276/2256/486 1279/2259/489 1274/2254/484 +f 1280/2260/490 1282/2264/492 1283/2265/493 1281/2261/491 +f 1279/2259/489 1278/2258/488 1284/2266/494 1285/2267/495 +f 1275/2255/485 1274/2254/484 1286/2268/496 1287/2269/497 +f 1271/2251/481 1270/2250/480 1288/2270/498 1289/2271/499 +f 1281/2261/491 1283/2265/493 1290/2272/500 1291/2273/501 +f 1274/2254/484 1279/2259/489 1285/2267/495 1286/2268/496 +f 1270/2250/480 1275/2255/485 1287/2269/497 1288/2270/498 +f 1283/2263/493 1271/2251/481 1289/2271/499 1290/2274/500 +f 1278/2258/488 1281/2261/491 1291/2273/501 1284/2266/494 +f 1290/2274/500 1289/2271/499 1292/2275/459 1293/2276/136 +f 1284/2266/494 1291/2273/501 1294/2277/458 1295/2278/463 +f 1285/2267/495 1284/2266/494 1295/2278/463 1296/2279/502 +f 1287/2269/497 1286/2268/496 1297/2280/132 1298/2281/503 +f 1289/2271/499 1288/2270/498 1299/2282/460 1292/2275/459 +f 1291/2273/501 1290/2272/500 1293/2283/136 1294/2277/458 +f 1286/2268/496 1285/2267/495 1296/2279/502 1297/2280/132 +f 1288/2270/498 1287/2269/497 1298/2281/503 1299/2282/460 +f 1297/2280/132 1296/2279/502 1300/2284/504 1301/2285/505 +f 1299/2282/460 1298/2281/503 1302/2286/506 1303/2287/507 +f 1293/2276/136 1292/2275/459 1304/2288/508 1305/2289/509 +f 1295/2278/463 1294/2277/458 1306/2290/510 1307/2291/511 +f 1296/2279/502 1295/2278/463 1307/2291/511 1300/2284/504 +f 1298/2281/503 1297/2280/132 1301/2285/505 1302/2286/506 +f 1292/2275/459 1299/2282/460 1303/2287/507 1304/2288/508 +f 1294/2277/458 1293/2283/136 1305/2292/509 1306/2290/510 +f 1308/2293/295 1309/2294/512 1240/1338/512 1237/1335/295 +f 1310/2295/513 1311/2296/514 1228/1326/514 1242/1340/513 +f 1312/2297/289 1313/2298/515 1232/1330/515 1229/1327/289 +f 1314/2299/516 1315/2300/517 1236/1334/517 1233/1331/516 +f 1309/2294/512 1310/2301/513 1242/1342/513 1240/1338/512 +f 1311/2296/514 1312/2297/289 1229/1327/289 1228/1326/514 +f 1313/2298/515 1314/2299/516 1233/1331/516 1232/1330/515 +f 1315/2300/517 1308/2293/295 1237/1335/295 1236/1334/517 +f 1245/2302/515 1244/2303/289 1254/1354/289 1257/1357/515 +f 1239/1337/517 1238/1336/295 1253/1353/295 1252/1352/517 +f 1246/2304/516 1245/2302/515 1257/1357/515 1259/1359/516 +f 1238/1336/295 1241/1339/512 1256/1356/512 1253/1353/295 +f 1247/2305/517 1246/2306/516 1259/1363/516 1261/1362/517 +f 1241/1339/512 1243/1343/513 1258/1358/513 1256/1356/512 +f 1248/2307/295 1247/2305/517 1261/1362/517 1263/1365/295 +f 1243/1341/513 1231/1329/514 1260/1361/514 1258/1360/513 +f 1234/1332/516 1239/1337/517 1252/1352/517 1266/1368/516 +f 1244/2303/289 1251/2308/514 1255/1355/514 1254/1354/289 +f 1235/1333/515 1234/1332/516 1266/1368/516 1264/1366/515 +f 1251/2308/514 1250/2309/513 1267/1369/513 1255/1355/514 +f 1230/1328/289 1235/1333/515 1264/1366/515 1262/1364/289 +f 1250/2309/513 1249/2310/512 1265/1367/512 1267/1369/513 +f 1231/1329/514 1230/1328/289 1262/1364/289 1260/1361/514 +f 1249/2310/512 1248/2307/295 1263/1365/295 1265/1367/512 +f 1356/2311/518 1357/2312/519 1358/2313/520 1359/2314/521 +f 1360/2315/522 1361/2316/523 1362/2317/524 1363/2318/525 +f 1364/2319/526 1365/2320/527 1366/2321/528 1367/2322/529 +f 1365/2320/527 1368/2323/530 1369/2324/531 1366/2321/528 +f 1370/2325/532 1356/2311/518 1359/2314/521 1371/2326/533 +f 1357/2312/519 1360/2315/522 1363/2318/525 1358/2313/520 +f 1361/2316/523 1364/2319/526 1367/2322/529 1362/2317/524 +f 1368/2323/530 1370/2327/532 1371/2328/533 1369/2324/531 +f 1367/2322/529 1366/2321/528 1372/2329/534 1373/2330/535 +f 1363/2318/525 1362/2317/524 1374/2331/392 1375/2332/536 +f 1359/2314/521 1358/2313/520 1376/2333/537 1377/2334/538 +f 1369/2324/531 1371/2328/533 1378/2335/539 1379/2336/540 +f 1362/2317/524 1367/2322/529 1373/2330/535 1374/2331/392 +f 1358/2313/520 1363/2318/525 1375/2332/536 1376/2333/537 +f 1371/2326/533 1359/2314/521 1377/2334/538 1378/2337/539 +f 1366/2321/528 1369/2324/531 1379/2336/540 1372/2329/534 +f 1378/2337/539 1377/2334/538 1380/2338/541 1381/2339/136 +f 1372/2329/534 1379/2336/540 1382/2340/542 1383/2341/543 +f 1373/2330/535 1372/2329/534 1383/2341/543 1384/2342/544 +f 1375/2332/536 1374/2331/392 1385/2343/132 1386/2344/545 +f 1377/2334/538 1376/2333/537 1387/2345/546 1380/2338/541 +f 1379/2336/540 1378/2335/539 1381/2346/136 1382/2340/542 +f 1374/2331/392 1373/2330/535 1384/2342/544 1385/2343/132 +f 1376/2333/537 1375/2332/536 1386/2344/545 1387/2345/546 +f 1385/2343/132 1384/2342/544 1388/2347/547 1389/2348/548 +f 1387/2345/546 1386/2344/545 1390/2349/549 1391/2350/550 +f 1381/2339/136 1380/2338/541 1392/2351/551 1393/2352/552 +f 1383/2341/543 1382/2340/542 1394/2353/553 1395/2354/554 +f 1384/2342/544 1383/2341/543 1395/2354/554 1388/2347/547 +f 1386/2344/545 1385/2343/132 1389/2348/548 1390/2349/549 +f 1380/2338/541 1387/2345/546 1391/2350/550 1392/2351/551 +f 1382/2340/542 1381/2346/136 1393/2355/552 1394/2353/553 +f 1396/2356/288 1397/2357/555 1328/1382/555 1325/1379/288 +f 1398/2358/556 1399/2359/557 1316/1370/557 1330/1384/556 +f 1400/2360/290 1401/2361/558 1320/1374/558 1317/1371/290 +f 1402/2362/559 1403/2363/560 1324/1378/560 1321/1375/559 +f 1397/2357/555 1398/2364/556 1330/1386/556 1328/1382/555 +f 1399/2359/557 1400/2360/290 1317/1371/290 1316/1370/557 +f 1401/2361/558 1402/2362/559 1321/1375/559 1320/1374/558 +f 1403/2363/560 1396/2356/288 1325/1379/288 1324/1378/560 +f 1333/2365/558 1332/2366/290 1342/1398/290 1345/1401/558 +f 1327/1381/560 1326/1380/288 1341/1397/288 1340/1396/560 +f 1334/2367/559 1333/2365/558 1345/1401/558 1347/1403/559 +f 1326/1380/288 1329/1383/555 1344/1400/555 1341/1397/288 +f 1335/2368/560 1334/2369/559 1347/1407/559 1349/1406/560 +f 1329/1383/555 1331/1387/556 1346/1402/556 1344/1400/555 +f 1336/2370/288 1335/2368/560 1349/1406/560 1351/1409/288 +f 1331/1385/556 1319/1373/557 1348/1405/557 1346/1404/556 +f 1322/1376/559 1327/1381/560 1340/1396/560 1354/1412/559 +f 1332/2366/290 1339/2371/557 1343/1399/557 1342/1398/290 +f 1323/1377/558 1322/1376/559 1354/1412/559 1352/1410/558 +f 1339/2371/557 1338/2372/556 1355/1413/556 1343/1399/557 +f 1318/1372/290 1323/1377/558 1352/1410/558 1350/1408/290 +f 1338/2372/556 1337/2373/555 1353/1411/555 1355/1413/556 +f 1319/1373/557 1318/1372/290 1350/1408/290 1348/1405/557 +f 1337/2373/555 1336/2370/288 1351/1409/288 1353/1411/555 +f 1444/2374/561 1445/2375/562 1446/2376/563 1447/2377/564 +f 1448/2378/565 1449/2379/566 1450/2380/567 1451/2381/568 +f 1452/2382/569 1453/2383/570 1454/2384/571 1455/2385/572 +f 1453/2383/570 1456/2386/573 1457/2387/574 1454/2384/571 +f 1458/2388/575 1444/2374/561 1447/2377/564 1459/2389/576 +f 1445/2375/562 1448/2378/565 1451/2381/568 1446/2376/563 +f 1449/2379/566 1452/2382/569 1455/2385/572 1450/2380/567 +f 1456/2386/573 1458/2390/575 1459/2391/576 1457/2387/574 +f 1455/2385/572 1454/2384/571 1460/2392/577 1461/2393/578 +f 1451/2381/568 1450/2380/567 1462/2394/579 1463/2395/580 +f 1447/2377/564 1446/2376/563 1464/2396/581 1465/2397/582 +f 1457/2387/574 1459/2391/576 1466/2398/583 1467/2399/584 +f 1450/2380/567 1455/2385/572 1461/2393/578 1462/2394/579 +f 1446/2376/563 1451/2381/568 1463/2395/580 1464/2396/581 +f 1459/2389/576 1447/2377/564 1465/2397/582 1466/2400/583 +f 1454/2384/571 1457/2387/574 1467/2399/584 1460/2392/577 +f 1466/2400/583 1465/2397/582 1468/2401/542 1469/2402/136 +f 1460/2392/577 1467/2399/584 1470/2403/541 1471/2404/546 +f 1461/2393/578 1460/2392/577 1471/2404/546 1472/2405/545 +f 1463/2395/580 1462/2394/579 1473/2406/132 1474/2407/544 +f 1465/2397/582 1464/2396/581 1475/2408/543 1468/2401/542 +f 1467/2399/584 1466/2398/583 1469/2409/136 1470/2403/541 +f 1462/2394/579 1461/2393/578 1472/2405/545 1473/2406/132 +f 1464/2396/581 1463/2395/580 1474/2407/544 1475/2408/543 +f 1473/2406/132 1472/2405/545 1476/2410/585 1477/2411/586 +f 1475/2408/543 1474/2407/544 1478/2412/587 1479/2413/588 +f 1469/2402/136 1468/2401/542 1480/2414/589 1481/2415/590 +f 1471/2404/546 1470/2403/541 1482/2416/591 1483/2417/592 +f 1472/2405/545 1471/2404/546 1483/2417/592 1476/2410/585 +f 1474/2407/544 1473/2406/132 1477/2411/586 1478/2412/587 +f 1468/2401/542 1475/2408/543 1479/2413/588 1480/2414/589 +f 1470/2403/541 1469/2409/136 1481/2418/590 1482/2416/591 +f 1484/2419/290 1485/2420/593 1416/1426/593 1413/1423/290 +f 1486/2421/594 1487/2422/595 1404/1414/595 1418/1428/594 +f 1488/2423/288 1489/2424/596 1408/1418/596 1405/1415/288 +f 1490/2425/597 1491/2426/598 1412/1422/598 1409/1419/597 +f 1485/2420/593 1486/2427/594 1418/1430/594 1416/1426/593 +f 1487/2422/595 1488/2423/288 1405/1415/288 1404/1414/595 +f 1489/2424/596 1490/2425/597 1409/1419/597 1408/1418/596 +f 1491/2426/598 1484/2419/290 1413/1423/290 1412/1422/598 +f 1421/2428/596 1420/2429/288 1430/1442/288 1433/1445/596 +f 1415/1425/598 1414/1424/290 1429/1441/290 1428/1440/598 +f 1422/2430/597 1421/2428/596 1433/1445/596 1435/1447/597 +f 1414/1424/290 1417/1427/593 1432/1444/593 1429/1441/290 +f 1423/2431/598 1422/2432/597 1435/1451/597 1437/1450/598 +f 1417/1427/593 1419/1431/594 1434/1446/594 1432/1444/593 +f 1424/2433/290 1423/2431/598 1437/1450/598 1439/1453/290 +f 1419/1429/594 1407/1417/595 1436/1449/595 1434/1448/594 +f 1410/1420/597 1415/1425/598 1428/1440/598 1442/1456/597 +f 1420/2429/288 1427/2434/595 1431/1443/595 1430/1442/288 +f 1411/1421/596 1410/1420/597 1442/1456/597 1440/1454/596 +f 1427/2434/595 1426/2435/594 1443/1457/594 1431/1443/595 +f 1406/1416/288 1411/1421/596 1440/1454/596 1438/1452/288 +f 1426/2435/594 1425/2436/593 1441/1455/593 1443/1457/594 +f 1407/1417/595 1406/1416/288 1438/1452/288 1436/1449/595 +f 1425/2436/593 1424/2433/290 1439/1453/290 1441/1455/593 +f 1532/2437/599 1533/2438/600 1534/2439/601 1535/2440/602 +f 1536/2441/603 1537/2442/604 1538/2443/605 1539/2444/606 +f 1540/2445/607 1541/2446/608 1542/2447/609 1543/2448/610 +f 1541/2446/608 1544/2449/611 1545/2450/612 1542/2447/609 +f 1546/2451/613 1532/2437/599 1535/2440/602 1547/2452/614 +f 1533/2438/600 1536/2441/603 1539/2444/606 1534/2439/601 +f 1537/2442/604 1540/2445/607 1543/2448/610 1538/2443/605 +f 1544/2449/611 1546/2453/613 1547/2454/614 1545/2450/612 +f 1543/2448/610 1542/2447/609 1548/2455/615 1549/2456/616 +f 1539/2444/606 1538/2443/605 1550/2457/617 1551/2458/618 +f 1535/2440/602 1534/2439/601 1552/2459/619 1553/2460/620 +f 1545/2450/612 1547/2454/614 1554/2461/621 1555/2462/622 +f 1538/2443/605 1543/2448/610 1549/2456/616 1550/2457/617 +f 1534/2439/601 1539/2444/606 1551/2458/618 1552/2459/619 +f 1547/2452/614 1535/2440/602 1553/2460/620 1554/2463/621 +f 1542/2447/609 1545/2450/612 1555/2462/622 1548/2455/615 +f 1554/2463/621 1553/2460/620 1556/2464/623 1557/2465/136 +f 1548/2455/615 1555/2462/622 1558/2466/624 1559/2467/625 +f 1549/2456/616 1548/2455/615 1559/2467/625 1560/2468/626 +f 1551/2458/618 1550/2457/617 1561/2469/132 1562/2470/627 +f 1553/2460/620 1552/2459/619 1563/2471/628 1556/2464/623 +f 1555/2462/622 1554/2461/621 1557/2472/136 1558/2466/624 +f 1550/2457/617 1549/2456/616 1560/2468/626 1561/2469/132 +f 1552/2459/619 1551/2458/618 1562/2470/627 1563/2471/628 +f 1561/2469/132 1560/2468/626 1564/2473/629 1565/2474/630 +f 1563/2471/628 1562/2470/627 1566/2475/631 1567/2476/632 +f 1557/2465/136 1556/2464/623 1568/2477/633 1569/2478/634 +f 1559/2467/625 1558/2466/624 1570/2479/635 1571/2480/636 +f 1560/2468/626 1559/2467/625 1571/2480/636 1564/2473/629 +f 1562/2470/627 1561/2469/132 1565/2474/630 1566/2475/631 +f 1556/2464/623 1563/2471/628 1567/2476/632 1568/2477/633 +f 1558/2466/624 1557/2472/136 1569/2481/634 1570/2479/635 +f 1572/2482/294 1573/2483/637 1504/1470/637 1501/1467/294 +f 1574/2484/638 1575/2485/639 1492/1458/639 1506/1472/638 +f 1576/2486/293 1577/2487/640 1496/1462/640 1493/1459/293 +f 1578/2488/641 1579/2489/642 1500/1466/642 1497/1463/641 +f 1573/2483/637 1574/2490/638 1506/1474/638 1504/1470/637 +f 1575/2485/639 1576/2486/293 1493/1459/293 1492/1458/639 +f 1577/2487/640 1578/2488/641 1497/1463/641 1496/1462/640 +f 1579/2489/642 1572/2482/294 1501/1467/294 1500/1466/642 +f 1509/2491/640 1508/2492/293 1518/1486/293 1521/1489/640 +f 1503/1469/642 1502/1468/294 1517/1485/294 1516/1484/642 +f 1510/2493/641 1509/2491/640 1521/1489/640 1523/1491/641 +f 1502/1468/294 1505/1471/637 1520/1488/637 1517/1485/294 +f 1511/2494/642 1510/2495/641 1523/1495/641 1525/1494/642 +f 1505/1471/637 1507/1475/638 1522/1490/638 1520/1488/637 +f 1512/2496/294 1511/2494/642 1525/1494/642 1527/1497/294 +f 1507/1473/638 1495/1461/639 1524/1493/639 1522/1492/638 +f 1498/1464/641 1503/1469/642 1516/1484/642 1530/1500/641 +f 1508/2492/293 1515/2497/639 1519/1487/639 1518/1486/293 +f 1499/1465/640 1498/1464/641 1530/1500/641 1528/1498/640 +f 1515/2497/639 1514/2498/638 1531/1501/638 1519/1487/639 +f 1494/1460/293 1499/1465/640 1528/1498/640 1526/1496/293 +f 1514/2498/638 1513/2499/637 1529/1499/637 1531/1501/638 +f 1495/1461/639 1494/1460/293 1526/1496/293 1524/1493/639 +f 1513/2499/637 1512/2496/294 1527/1497/294 1529/1499/637 +f 1620/2500/643 1621/2501/644 1622/2502/645 1623/2503/646 +f 1624/2504/647 1625/2505/648 1626/2506/649 1627/2507/650 +f 1628/2508/651 1629/2509/652 1630/2510/653 1631/2511/654 +f 1629/2509/652 1632/2512/655 1633/2513/656 1630/2510/653 +f 1634/2514/657 1620/2500/643 1623/2503/646 1635/2515/658 +f 1621/2501/644 1624/2504/647 1627/2507/650 1622/2502/645 +f 1625/2505/648 1628/2508/651 1631/2511/654 1626/2506/649 +f 1632/2512/655 1634/2516/657 1635/2517/658 1633/2513/656 +f 1631/2511/654 1630/2510/653 1636/2518/659 1637/2519/660 +f 1627/2507/650 1626/2506/649 1638/2520/383 1639/2521/661 +f 1623/2503/646 1622/2502/645 1640/2522/662 1641/2523/663 +f 1633/2513/656 1635/2517/658 1642/2524/664 1643/2525/665 +f 1626/2506/649 1631/2511/654 1637/2519/660 1638/2520/383 +f 1622/2502/645 1627/2507/650 1639/2521/661 1640/2522/662 +f 1635/2515/658 1623/2503/646 1641/2523/663 1642/2526/664 +f 1630/2510/653 1633/2513/656 1643/2525/665 1636/2518/659 +f 1642/2526/664 1641/2523/663 1644/2527/624 1645/2528/136 +f 1636/2518/659 1643/2525/665 1646/2529/623 1647/2530/628 +f 1637/2519/660 1636/2518/659 1647/2530/628 1648/2531/627 +f 1639/2521/661 1638/2520/383 1649/2532/132 1650/2533/626 +f 1641/2523/663 1640/2522/662 1651/2534/625 1644/2527/624 +f 1643/2525/665 1642/2524/664 1645/2535/136 1646/2529/623 +f 1638/2520/383 1637/2519/660 1648/2531/627 1649/2532/132 +f 1640/2522/662 1639/2521/661 1650/2533/626 1651/2534/625 +f 1649/2532/132 1648/2531/627 1652/2536/666 1653/2537/667 +f 1651/2534/625 1650/2533/626 1654/2538/668 1655/2539/669 +f 1645/2528/136 1644/2527/624 1656/2540/670 1657/2541/671 +f 1647/2530/628 1646/2529/623 1658/2542/672 1659/2543/673 +f 1648/2531/627 1647/2530/628 1659/2543/673 1652/2536/666 +f 1650/2533/626 1649/2532/132 1653/2537/667 1654/2538/668 +f 1644/2527/624 1651/2534/625 1655/2539/669 1656/2540/670 +f 1646/2529/623 1645/2535/136 1657/2544/671 1658/2542/672 +f 1660/2545/293 1661/2546/674 1592/1514/674 1589/1511/293 +f 1662/2547/675 1663/2548/676 1580/1502/676 1594/1516/675 +f 1664/2549/294 1665/2550/677 1584/1506/677 1581/1503/294 +f 1666/2551/678 1667/2552/679 1588/1510/679 1585/1507/678 +f 1661/2546/674 1662/2553/675 1594/1518/675 1592/1514/674 +f 1663/2548/676 1664/2549/294 1581/1503/294 1580/1502/676 +f 1665/2550/677 1666/2551/678 1585/1507/678 1584/1506/677 +f 1667/2552/679 1660/2545/293 1589/1511/293 1588/1510/679 +f 1597/2554/677 1596/2555/294 1606/1530/294 1609/1533/677 +f 1591/1513/679 1590/1512/293 1605/1529/293 1604/1528/679 +f 1598/2556/678 1597/2554/677 1609/1533/677 1611/1535/678 +f 1590/1512/293 1593/1515/674 1608/1532/674 1605/1529/293 +f 1599/2557/679 1598/2558/678 1611/1539/678 1613/1538/679 +f 1593/1515/674 1595/1519/675 1610/1534/675 1608/1532/674 +f 1600/2559/293 1599/2557/679 1613/1538/679 1615/1541/293 +f 1595/1517/675 1583/1505/676 1612/1537/676 1610/1536/675 +f 1586/1508/678 1591/1513/679 1604/1528/679 1618/1544/678 +f 1596/2555/294 1603/2560/676 1607/1531/676 1606/1530/294 +f 1587/1509/677 1586/1508/678 1618/1544/678 1616/1542/677 +f 1603/2560/676 1602/2561/675 1619/1545/675 1607/1531/676 +f 1582/1504/294 1587/1509/677 1616/1542/677 1614/1540/294 +f 1602/2561/675 1601/2562/674 1617/1543/674 1619/1545/675 +f 1583/1505/676 1582/1504/294 1614/1540/294 1612/1537/676 +f 1601/2562/674 1600/2559/293 1615/1541/293 1617/1543/674 +f 1800/2563/128 1796/2564/125 1801/2565/680 1805/2566/681 +f 1797/2567/131 1798/2568/292 1803/2569/682 1802/2570/683 +f 1799/2571/293 1800/2563/128 1805/2566/681 1804/2572/684 +f 1796/2564/125 1797/2567/131 1802/2570/683 1801/2565/680 +f 1802/2570/683 1803/2569/682 1808/2573/685 1807/2574/686 +f 1804/2572/684 1805/2566/681 1810/2575/687 1809/2576/688 +f 1801/2565/680 1802/2570/683 1807/2574/686 1806/2577/170 +f 1805/2566/681 1801/2565/680 1806/2577/170 1810/2575/687 +f 1810/2575/687 1806/2577/170 1811/2578/312 1815/2579/689 +f 1807/2574/686 1808/2573/685 1813/2580/690 1812/2581/691 +f 1809/2576/688 1810/2575/687 1815/2579/689 1814/2582/692 +f 1806/2577/170 1807/2574/686 1812/2581/691 1811/2578/312 +f 1820/2583/128 1816/2584/125 1821/2585/680 1825/2586/681 +f 1817/2587/131 1818/2588/292 1823/2589/682 1822/2590/683 +f 1819/2591/293 1820/2583/128 1825/2586/681 1824/2592/684 +f 1816/2584/125 1817/2587/131 1822/2590/683 1821/2585/680 +f 1822/2590/683 1823/2589/682 1828/2593/685 1827/2594/686 +f 1824/2592/684 1825/2586/681 1830/2595/687 1829/2596/688 +f 1821/2585/680 1822/2590/683 1827/2594/686 1826/2597/170 +f 1825/2586/681 1821/2585/680 1826/2597/170 1830/2595/687 +f 1830/2595/687 1826/2597/170 1831/2598/312 1835/2599/689 +f 1827/2594/686 1828/2593/685 1833/2600/690 1832/2601/691 +f 1829/2596/688 1830/2595/687 1835/2599/689 1834/2602/692 +f 1826/2597/170 1827/2594/686 1832/2601/691 1831/2598/312 +f 1840/2603/128 1836/2604/125 1841/2605/680 1845/2606/681 +f 1837/2607/131 1838/2608/292 1843/2609/682 1842/2610/683 +f 1839/2611/293 1840/2603/128 1845/2606/681 1844/2612/684 +f 1836/2604/125 1837/2607/131 1842/2610/683 1841/2605/680 +f 1842/2610/683 1843/2609/682 1848/2613/685 1847/2614/686 +f 1844/2612/684 1845/2606/681 1850/2615/687 1849/2616/688 +f 1841/2605/680 1842/2610/683 1847/2614/686 1846/2617/170 +f 1845/2606/681 1841/2605/680 1846/2617/170 1850/2615/687 +f 1850/2615/687 1846/2617/170 1851/2618/312 1855/2619/689 +f 1847/2614/686 1848/2613/685 1853/2620/690 1852/2621/691 +f 1849/2616/688 1850/2615/687 1855/2619/689 1854/2622/692 +f 1846/2617/170 1847/2614/686 1852/2621/691 1851/2618/312 diff --git a/src/main/resources/assets/hbm/models/weapons/cryo_cannon_alt.obj b/src/main/resources/assets/hbm/models/weapons/cryo_cannon_alt.obj new file mode 100644 index 000000000..9276f71a0 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/cryo_cannon_alt.obj @@ -0,0 +1,8217 @@ +# Blender v2.79 (sub 0) OBJ File: 'cryo_cannon_alt.blend' +# www.blender.org +o Plane.004 +v -0.437500 2.102596 -3.042822 +v -0.483253 2.144063 -3.023486 +v -0.500000 2.200707 -2.997072 +v -0.483253 2.257351 -2.970659 +v -0.437500 2.298818 -2.951323 +v -0.375000 2.313995 -2.944245 +v -0.312500 2.298818 -2.951323 +v -0.266747 2.257351 -2.970659 +v -0.250000 2.200707 -2.997072 +v -0.266747 2.144063 -3.023486 +v -0.312500 2.102596 -3.042822 +v -0.375000 2.087419 -3.049900 +vt 0.500000 0.000000 +vt 0.066987 0.250000 +vt 0.500000 1.000000 +vt 0.750000 0.933013 +vt 0.933013 0.750000 +vt 1.000000 0.500000 +vt 0.933013 0.250000 +vt 0.750000 0.066987 +vt 0.250000 0.066987 +vt 0.000000 0.500000 +vt 0.066987 0.750000 +vt 0.250000 0.933013 +vn -0.0000 0.4226 -0.9063 +s off +f 6/1/1 8/2/1 12/3/1 +f 12/3/1 1/4/1 2/5/1 +f 2/5/1 3/6/1 12/3/1 +f 3/6/1 4/7/1 12/3/1 +f 4/7/1 5/8/1 6/1/1 +f 6/1/1 7/9/1 8/2/1 +f 8/2/1 9/10/1 12/3/1 +f 9/10/1 10/11/1 12/3/1 +f 10/11/1 11/12/1 12/3/1 +f 4/7/1 6/1/1 12/3/1 +o Plane.003 +v -0.216506 2.340409 -3.000889 +v -0.250000 2.227120 -3.053716 +v -0.216506 2.113832 -3.106544 +v -0.125000 2.030899 -3.145216 +v 0.000000 2.000544 -3.159371 +v 0.125000 2.030899 -3.145216 +v 0.216506 2.113832 -3.106544 +v 0.250000 2.227120 -3.053716 +v 0.216506 2.340409 -3.000889 +v 0.125000 2.423342 -2.962217 +v 0.000000 2.453697 -2.948062 +v -0.125000 2.423342 -2.962217 +vt 0.500000 0.000000 +vt 0.066987 0.250000 +vt 0.066987 0.750000 +vt 0.250000 0.933013 +vt 0.500000 1.000000 +vt 0.750000 0.933013 +vt 0.933013 0.750000 +vt 1.000000 0.500000 +vt 0.933013 0.250000 +vt 0.750000 0.066987 +vt 0.250000 0.066987 +vt 0.000000 0.500000 +vn 0.0000 0.4226 -0.9063 +s off +f 17/13/2 15/14/2 13/15/2 +f 13/15/2 24/16/2 23/17/2 +f 23/17/2 22/18/2 21/19/2 +f 21/19/2 20/20/2 19/21/2 +f 19/21/2 18/22/2 17/13/2 +f 17/13/2 16/23/2 15/14/2 +f 15/14/2 14/24/2 13/15/2 +f 13/15/2 23/17/2 17/13/2 +f 23/17/2 21/19/2 17/13/2 +f 21/19/2 19/21/2 17/13/2 +o Plane.002 +v -0.109472 2.437500 -0.413125 +v 0.003817 2.437500 -0.360298 +v 0.109472 2.437500 -0.586875 +v -0.003817 2.437500 -0.639702 +v 0.109472 2.312500 -0.586875 +v -0.003817 2.312500 -0.639702 +v -0.109472 2.312500 -0.413125 +v 0.003817 2.312500 -0.360298 +v 0.109472 0.062500 -0.413125 +v -0.003817 0.062500 -0.360298 +v -0.109472 0.062500 -0.586875 +v 0.003816 0.062500 -0.639702 +v -0.109472 0.187500 -0.586875 +v 0.003816 0.187500 -0.639702 +v 0.109472 0.187500 -0.413125 +v -0.003817 0.187500 -0.360298 +v 1.187500 1.359472 -0.413125 +v 1.187500 1.246183 -0.360298 +v 1.187500 1.140528 -0.586875 +v 1.187500 1.253817 -0.639702 +v 1.062500 1.140528 -0.586875 +v 1.062500 1.253817 -0.639702 +v 1.062500 1.359472 -0.413125 +v 1.062500 1.246183 -0.360298 +v -1.187500 1.140528 -0.413125 +v -1.187500 1.253817 -0.360298 +v -1.187500 1.359473 -0.586875 +v -1.187500 1.246184 -0.639702 +v -1.062500 1.359473 -0.586875 +v -1.062500 1.246184 -0.639702 +v -1.062500 1.140528 -0.413125 +v -1.062500 1.253817 -0.360298 +v 0.762281 2.167098 -0.413125 +v 0.842388 2.086991 -0.360298 +v 0.917098 2.012281 -0.586875 +v 0.836990 2.092388 -0.639702 +v 0.828709 1.923892 -0.586875 +v 0.748602 2.004000 -0.639702 +v 0.673892 2.078710 -0.413125 +v 0.754000 1.998602 -0.360298 +v -0.762281 0.332902 -0.413125 +v -0.842388 0.413010 -0.360298 +v -0.917098 0.487720 -0.586875 +v -0.836991 0.407612 -0.639702 +v -0.828710 0.576108 -0.586875 +v -0.748602 0.496001 -0.639702 +v -0.673892 0.421291 -0.413125 +v -0.754000 0.501398 -0.360298 +v 0.917098 0.487720 -0.413125 +v 0.836990 0.407612 -0.360298 +v 0.762280 0.332902 -0.586875 +v 0.842388 0.413010 -0.639702 +v 0.673892 0.421291 -0.586875 +v 0.753999 0.501398 -0.639702 +v 0.828709 0.576108 -0.413125 +v 0.748602 0.496001 -0.360298 +v -0.917098 2.012281 -0.413125 +v -0.836990 2.092388 -0.360298 +v -0.762281 2.167098 -0.586875 +v -0.842388 2.086991 -0.639702 +v -0.673892 2.078710 -0.586875 +v -0.754000 1.998602 -0.639702 +v -0.828709 1.923893 -0.413125 +v -0.748602 2.004000 -0.360298 +v 1.083141 0.751056 -0.413125 +v 1.026497 0.652945 -0.360298 +v 0.973669 0.561444 -0.586875 +v 1.030313 0.659555 -0.639702 +v 0.865416 0.623944 -0.586875 +v 0.922060 0.722055 -0.639702 +v 0.974888 0.813556 -0.413125 +v 0.918243 0.715445 -0.360298 +v -1.083141 1.748945 -0.413125 +v -1.026497 1.847056 -0.360298 +v -0.973669 1.938556 -0.586875 +v -1.030313 1.840445 -0.639702 +v -0.865416 1.876056 -0.586875 +v -0.922060 1.777945 -0.639702 +v -0.974888 1.686445 -0.413125 +v -0.918244 1.784556 -0.360298 +v -0.498944 0.166859 -0.413125 +v -0.597055 0.223504 -0.360298 +v -0.688556 0.276331 -0.586875 +v -0.590445 0.219687 -0.639702 +v -0.626056 0.384585 -0.586875 +v -0.527945 0.327940 -0.639702 +v -0.436444 0.275112 -0.413125 +v -0.534555 0.331757 -0.360298 +v 0.498944 2.333141 -0.413125 +v 0.597055 2.276497 -0.360298 +v 0.688556 2.223669 -0.586875 +v 0.590445 2.280313 -0.639702 +v 0.626056 2.115416 -0.586875 +v 0.527945 2.172060 -0.639702 +v 0.436444 2.224888 -0.413125 +v 0.534555 2.168244 -0.360298 +v 0.413089 0.131297 -0.413125 +v 0.303661 0.101975 -0.360298 +v 0.201605 0.074630 -0.586875 +v 0.311034 0.103951 -0.639702 +v 0.169253 0.195371 -0.586875 +v 0.278682 0.224692 -0.639702 +v 0.380737 0.252038 -0.413125 +v 0.271308 0.222716 -0.360298 +v -0.413090 2.368703 -0.413125 +v -0.303661 2.398025 -0.360298 +v -0.201605 2.425371 -0.586875 +v -0.311034 2.396049 -0.639702 +v -0.169253 2.304630 -0.586875 +v -0.278682 2.275309 -0.639702 +v -0.380737 2.247963 -0.413125 +v -0.271308 2.277284 -0.360298 +v -1.118703 0.836911 -0.413125 +v -1.148025 0.946339 -0.360298 +v -1.175370 1.048395 -0.586875 +v -1.146049 0.938966 -0.639702 +v -1.054630 1.080747 -0.586875 +v -1.025308 0.971319 -0.639702 +v -0.997963 0.869263 -0.413125 +v -1.027284 0.978692 -0.360298 +v 1.118703 1.663090 -0.413125 +v 1.148025 1.553661 -0.360298 +v 1.175370 1.451605 -0.586875 +v 1.146049 1.561034 -0.639702 +v 1.054630 1.419253 -0.586875 +v 1.025308 1.528682 -0.639702 +v 0.997963 1.630737 -0.413125 +v 1.027284 1.521308 -0.360298 +v -0.973669 0.561445 -0.413125 +v -1.030313 0.659556 -0.360298 +v -1.083141 0.751056 -0.586875 +v -1.026497 0.652945 -0.639702 +v -0.974888 0.813556 -0.586875 +v -0.918244 0.715445 -0.639702 +v -0.865416 0.623945 -0.413125 +v -0.922060 0.722056 -0.360298 +v 0.973669 1.938556 -0.413125 +v 1.030313 1.840445 -0.360298 +v 1.083141 1.748944 -0.586875 +v 1.026497 1.847055 -0.639702 +v 0.974888 1.686444 -0.586875 +v 0.918244 1.784555 -0.639702 +v 0.865416 1.876056 -0.413125 +v 0.922060 1.777945 -0.360298 +v -0.688556 2.223669 -0.413125 +v -0.590444 2.280313 -0.360298 +v -0.498944 2.333141 -0.586875 +v -0.597055 2.276497 -0.639702 +v -0.436444 2.224888 -0.586875 +v -0.534555 2.168244 -0.639702 +v -0.626056 2.115416 -0.413125 +v -0.527944 2.172060 -0.360298 +v 0.688555 0.276331 -0.413125 +v 0.590444 0.219687 -0.360298 +v 0.498944 0.166859 -0.586875 +v 0.597055 0.223503 -0.639702 +v 0.436444 0.275112 -0.586875 +v 0.534555 0.331756 -0.639702 +v 0.626055 0.384584 -0.413125 +v 0.527944 0.327940 -0.360298 +v -1.175370 1.451606 -0.413125 +v -1.146049 1.561034 -0.360298 +v -1.118703 1.663090 -0.586875 +v -1.148025 1.553661 -0.639702 +v -0.997963 1.630738 -0.586875 +v -1.027284 1.521309 -0.639702 +v -1.054630 1.419253 -0.413125 +v -1.025308 1.528682 -0.360298 +v 1.175370 1.048394 -0.413125 +v 1.146049 0.938966 -0.360298 +v 1.118703 0.836910 -0.586875 +v 1.148024 0.946339 -0.639702 +v 0.997963 0.869263 -0.586875 +v 1.027284 0.978691 -0.639702 +v 1.054630 1.080747 -0.413125 +v 1.025308 0.971318 -0.360298 +v 0.201606 2.425370 -0.413125 +v 0.311034 2.396049 -0.360298 +v 0.413090 2.368703 -0.586875 +v 0.303661 2.398025 -0.639702 +v 0.380738 2.247962 -0.586875 +v 0.271309 2.277284 -0.639702 +v 0.169253 2.304630 -0.413125 +v 0.278682 2.275308 -0.360298 +v -0.201606 0.074630 -0.413125 +v -0.311035 0.103951 -0.360298 +v -0.413090 0.131297 -0.586875 +v -0.303662 0.101975 -0.639702 +v -0.380738 0.252038 -0.586875 +v -0.271309 0.222716 -0.639702 +v -0.169254 0.195371 -0.413125 +v -0.278682 0.224692 -0.360298 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.140625 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.140625 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.140625 +vt 0.303448 0.125000 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.140625 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.140625 +vt 0.303448 0.125000 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.140625 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.140625 +vt 0.303448 0.125000 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.140625 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.140625 +vt 0.303448 0.125000 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.140625 +vt 0.303448 0.125000 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.140625 +vt 0.303448 0.125000 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.140625 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.140625 +vt 0.303448 0.125000 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.140625 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.093750 +vt 0.296552 0.125000 +vt 0.324138 0.109375 +vt 0.317241 0.140625 +vt 0.303448 0.093750 +vt 0.296552 0.125000 +vt 0.324138 0.109375 +vt 0.303448 0.093750 +vt 0.296552 0.125000 +vt 0.324138 0.109375 +vt 0.317241 0.140625 +vt 0.303448 0.093750 +vt 0.324138 0.109375 +vt 0.317241 0.140625 +vt 0.303448 0.093750 +vt 0.296552 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.140625 +vt 0.303448 0.093750 +vt 0.296552 0.125000 +vt 0.324138 0.109375 +vt 0.303448 0.093750 +vt 0.324138 0.109375 +vt 0.303448 0.093750 +vt 0.296552 0.125000 +vt 0.324138 0.109375 +vt 0.317241 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.140625 +vt 0.303448 0.093750 +vt 0.296552 0.125000 +vt 0.324138 0.109375 +vt 0.317241 0.140625 +vt 0.303448 0.093750 +vt 0.296552 0.125000 +vt 0.303448 0.093750 +vt 0.296552 0.125000 +vt 0.324138 0.109375 +vt 0.324138 0.109375 +vt 0.317241 0.140625 +vt 0.303448 0.093750 +vt 0.324138 0.109375 +vt 0.317241 0.140625 +vt 0.303448 0.093750 +vt 0.296552 0.125000 +vt 0.324138 0.109375 +vt 0.303448 0.093750 +vt 0.324138 0.109375 +vt 0.317241 0.140625 +vt 0.303448 0.093750 +vt 0.324138 0.109375 +vt 0.303448 0.093750 +vt 0.296552 0.125000 +vt 0.324138 0.109375 +vt 0.317241 0.140625 +vt 0.303448 0.093750 +vt 0.296552 0.125000 +vt 0.303448 0.093750 +vt 0.296552 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.093750 +vt 0.296552 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.093750 +vt 0.296552 0.125000 +vn 0.0000 1.0000 0.0000 +vn 0.4226 0.0000 -0.9063 +vn -0.4226 -0.0000 0.9063 +vn 0.9063 0.0000 0.4226 +vn -0.9063 0.0000 -0.4226 +vn -0.0000 -1.0000 -0.0000 +vn -0.4226 -0.0000 -0.9063 +vn 0.4226 -0.0000 0.9063 +vn -0.9063 0.0000 0.4226 +vn 0.9063 -0.0000 -0.4226 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -0.4226 -0.9063 +vn 0.0000 0.4226 0.9063 +vn 0.0000 -0.9063 0.4226 +vn 0.0000 0.9063 -0.4226 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.4226 -0.9063 +vn 0.0000 -0.4226 0.9063 +vn 0.0000 0.9063 0.4226 +vn 0.0000 -0.9063 -0.4226 +vn 0.7071 0.7071 0.0000 +vn 0.2988 -0.2988 -0.9063 +vn -0.2988 0.2988 0.9063 +vn 0.6409 -0.6409 0.4226 +vn -0.6409 0.6409 -0.4226 +vn -0.7071 -0.7071 0.0000 +vn -0.2988 0.2988 -0.9063 +vn 0.2988 -0.2988 0.9063 +vn -0.6409 0.6409 0.4226 +vn 0.6409 -0.6409 -0.4226 +vn 0.7071 -0.7071 0.0000 +vn -0.2988 -0.2988 -0.9063 +vn 0.2988 0.2988 0.9063 +vn -0.6409 -0.6409 0.4226 +vn 0.6409 0.6409 -0.4226 +vn -0.7071 0.7071 -0.0000 +vn 0.2988 0.2988 -0.9063 +vn -0.2988 -0.2988 0.9063 +vn 0.6409 0.6409 0.4226 +vn -0.6409 -0.6409 -0.4226 +vn 0.8660 -0.5000 0.0000 +vn -0.2113 -0.3660 -0.9063 +vn 0.2113 0.3660 0.9063 +vn -0.4532 -0.7849 0.4226 +vn 0.4532 0.7849 -0.4226 +vn -0.8660 0.5000 -0.0000 +vn 0.2113 0.3660 -0.9063 +vn -0.2113 -0.3660 0.9063 +vn 0.4532 0.7849 0.4226 +vn -0.4532 -0.7849 -0.4226 +vn -0.5000 -0.8660 0.0000 +vn -0.3660 0.2113 -0.9063 +vn 0.3660 -0.2113 0.9063 +vn -0.7849 0.4532 0.4226 +vn 0.7849 -0.4532 -0.4226 +vn 0.5000 0.8660 -0.0000 +vn 0.3660 -0.2113 -0.9063 +vn -0.3660 0.2113 0.9063 +vn 0.7849 -0.4532 0.4226 +vn -0.7849 0.4532 -0.4226 +vn 0.2588 -0.9659 -0.0000 +vn -0.4082 -0.1094 -0.9063 +vn 0.4082 0.1094 0.9063 +vn -0.8754 -0.2346 0.4226 +vn 0.8754 0.2346 -0.4226 +vn -0.2588 0.9659 -0.0000 +vn 0.4082 0.1094 -0.9063 +vn -0.4082 -0.1094 0.9063 +vn 0.8754 0.2346 0.4226 +vn -0.8754 -0.2346 -0.4226 +vn -0.9659 -0.2588 0.0000 +vn -0.1094 0.4082 -0.9063 +vn 0.1094 -0.4082 0.9063 +vn -0.2346 0.8754 0.4226 +vn 0.2346 -0.8754 -0.4226 +vn 0.9659 0.2588 0.0000 +vn 0.1094 -0.4082 -0.9063 +vn -0.1094 0.4082 0.9063 +vn 0.2346 -0.8754 0.4226 +vn -0.2346 0.8754 -0.4226 +vn -0.8660 -0.5000 0.0000 +vn -0.2113 0.3660 -0.9063 +vn 0.2113 -0.3660 0.9063 +vn -0.4532 0.7849 0.4226 +vn 0.4532 -0.7849 -0.4226 +vn 0.8660 0.5000 0.0000 +vn 0.2113 -0.3660 -0.9063 +vn -0.2113 0.3660 0.9063 +vn 0.4532 -0.7849 0.4226 +vn -0.4532 0.7849 -0.4226 +vn -0.5000 0.8660 0.0000 +vn 0.3660 0.2113 -0.9063 +vn -0.3660 -0.2113 0.9063 +vn 0.7849 0.4532 0.4226 +vn -0.7849 -0.4532 -0.4226 +vn 0.5000 -0.8660 -0.0000 +vn -0.3660 -0.2113 -0.9063 +vn 0.3660 0.2113 0.9063 +vn -0.7849 -0.4532 0.4226 +vn 0.7849 0.4532 -0.4226 +vn -0.9659 0.2588 0.0000 +vn 0.1094 0.4082 -0.9063 +vn -0.1094 -0.4082 0.9063 +vn 0.2346 0.8754 0.4226 +vn -0.2346 -0.8754 -0.4226 +vn 0.9659 -0.2588 -0.0000 +vn -0.1094 -0.4082 -0.9063 +vn 0.1094 0.4082 0.9063 +vn -0.2346 -0.8754 0.4226 +vn 0.2346 0.8754 -0.4226 +vn 0.2588 0.9659 -0.0000 +vn 0.4082 -0.1094 -0.9063 +vn -0.4082 0.1094 0.9063 +vn 0.8754 -0.2346 0.4226 +vn -0.8754 0.2346 -0.4226 +vn -0.2588 -0.9659 0.0000 +vn -0.4082 0.1094 -0.9063 +vn 0.4082 -0.1094 0.9063 +vn -0.8754 0.2346 0.4226 +vn 0.8754 -0.2346 -0.4226 +s off +f 26/25/3 28/26/3 25/27/3 +f 27/28/4 30/29/4 28/26/4 +f 25/27/5 32/30/5 26/25/5 +f 26/25/6 29/31/6 27/28/6 +f 28/26/7 31/32/7 25/27/7 +f 34/33/8 36/34/8 33/35/8 +f 35/36/9 38/37/9 36/34/9 +f 33/35/10 40/38/10 34/33/10 +f 35/36/11 40/39/11 37/40/11 +f 36/34/12 39/41/12 33/35/12 +f 42/42/13 44/43/13 41/44/13 +f 43/45/14 46/46/14 44/43/14 +f 41/44/15 48/47/15 42/42/15 +f 42/42/16 45/48/16 43/45/16 +f 44/43/17 47/49/17 41/44/17 +f 50/50/18 52/51/18 49/52/18 +f 52/51/19 53/53/19 54/54/19 +f 49/52/20 56/55/20 50/50/20 +f 50/50/21 53/56/21 51/57/21 +f 52/51/22 55/58/22 49/52/22 +f 58/59/23 60/60/23 57/61/23 +f 59/62/24 62/63/24 60/60/24 +f 58/59/25 63/64/25 64/65/25 +f 58/59/26 61/66/26 59/62/26 +f 60/60/27 63/67/27 57/61/27 +f 66/68/28 68/69/28 65/70/28 +f 68/69/29 69/71/29 70/72/29 +f 66/68/30 71/73/30 72/74/30 +f 66/68/31 69/75/31 67/76/31 +f 68/69/32 71/77/32 65/70/32 +f 74/78/33 76/79/33 73/80/33 +f 75/81/34 78/82/34 76/79/34 +f 73/80/35 80/83/35 74/78/35 +f 75/81/36 80/84/36 77/85/36 +f 76/79/37 79/86/37 73/80/37 +f 82/87/38 84/88/38 81/89/38 +f 84/88/39 85/90/39 86/91/39 +f 81/89/40 88/92/40 82/87/40 +f 83/93/41 88/94/41 85/95/41 +f 84/88/42 87/96/42 81/89/42 +f 90/97/43 92/98/43 89/99/43 +f 91/100/44 94/101/44 92/98/44 +f 89/99/45 96/102/45 90/97/45 +f 90/97/46 93/103/46 91/100/46 +f 92/98/47 95/104/47 89/99/47 +f 98/105/48 100/106/48 97/107/48 +f 100/106/49 101/108/49 102/109/49 +f 98/105/50 103/110/50 104/111/50 +f 98/105/51 101/112/51 99/113/51 +f 100/106/52 103/114/52 97/107/52 +f 106/115/53 108/116/53 105/117/53 +f 107/118/54 110/119/54 108/116/54 +f 105/117/55 112/120/55 106/115/55 +f 106/115/56 109/121/56 107/118/56 +f 108/116/57 111/122/57 105/117/57 +f 114/123/58 116/124/58 113/125/58 +f 115/126/59 118/127/59 116/124/59 +f 114/123/60 119/128/60 120/129/60 +f 115/126/61 120/130/61 117/131/61 +f 116/124/62 119/132/62 113/125/62 +f 122/133/63 124/134/63 121/135/63 +f 123/136/64 126/137/64 124/134/64 +f 121/135/65 128/138/65 122/133/65 +f 123/136/66 128/139/66 125/140/66 +f 121/135/67 126/141/67 127/142/67 +f 130/143/68 132/144/68 129/145/68 +f 132/144/69 133/146/69 134/147/69 +f 129/145/70 136/148/70 130/143/70 +f 130/143/71 133/149/71 131/150/71 +f 132/144/72 135/151/72 129/145/72 +f 138/152/73 140/153/73 137/154/73 +f 140/153/74 141/155/74 142/156/74 +f 137/154/75 144/157/75 138/152/75 +f 138/152/76 141/158/76 139/159/76 +f 140/153/77 143/160/77 137/154/77 +f 146/161/78 148/162/78 145/163/78 +f 147/164/79 150/165/79 148/162/79 +f 145/163/80 152/166/80 146/161/80 +f 147/164/81 152/167/81 149/168/81 +f 148/162/82 151/169/82 145/163/82 +f 154/170/83 156/171/83 153/172/83 +f 156/171/84 157/173/84 158/174/84 +f 153/172/85 160/175/85 154/170/85 +f 154/170/86 157/176/86 155/177/86 +f 156/171/87 159/178/87 153/172/87 +f 162/179/88 164/180/88 161/181/88 +f 164/180/89 165/182/89 166/183/89 +f 161/181/90 168/184/90 162/179/90 +f 163/185/91 168/186/91 165/187/91 +f 164/180/92 167/188/92 161/181/92 +f 170/189/93 172/190/93 169/191/93 +f 171/192/94 174/193/94 172/190/94 +f 169/191/95 176/194/95 170/189/95 +f 170/189/96 173/195/96 171/192/96 +f 172/190/97 175/196/97 169/191/97 +f 178/197/98 180/198/98 177/199/98 +f 179/200/99 182/201/99 180/198/99 +f 178/197/100 183/202/100 184/203/100 +f 179/200/101 184/204/101 181/205/101 +f 180/198/102 183/206/102 177/199/102 +f 186/207/103 188/208/103 185/209/103 +f 187/210/104 190/211/104 188/208/104 +f 186/207/105 191/212/105 192/213/105 +f 187/210/106 192/214/106 189/215/106 +f 185/209/107 190/216/107 191/217/107 +f 194/218/108 196/219/108 193/220/108 +f 196/219/109 197/221/109 198/222/109 +f 194/218/110 199/223/110 200/224/110 +f 194/218/111 197/225/111 195/226/111 +f 196/219/112 199/227/112 193/220/112 +f 202/228/113 204/229/113 201/230/113 +f 203/231/114 206/232/114 204/229/114 +f 202/228/115 207/233/115 208/234/115 +f 202/228/116 205/235/116 203/231/116 +f 204/229/117 207/236/117 201/230/117 +f 210/237/118 212/238/118 209/239/118 +f 211/240/119 214/241/119 212/238/119 +f 210/237/120 215/242/120 216/243/120 +f 211/240/121 216/244/121 213/245/121 +f 209/239/122 214/246/122 215/247/122 +f 26/25/3 27/28/3 28/26/3 +f 27/28/4 29/248/4 30/29/4 +f 25/27/5 31/249/5 32/30/5 +f 26/25/6 32/250/6 29/31/6 +f 28/26/7 30/251/7 31/32/7 +f 34/33/8 35/36/8 36/34/8 +f 35/36/9 37/252/9 38/37/9 +f 33/35/10 39/253/10 40/38/10 +f 35/36/11 34/33/11 40/39/11 +f 36/34/12 38/254/12 39/41/12 +f 42/42/13 43/45/13 44/43/13 +f 43/45/14 45/255/14 46/46/14 +f 41/44/15 47/256/15 48/47/15 +f 42/42/16 48/257/16 45/48/16 +f 44/43/17 46/258/17 47/49/17 +f 50/50/18 51/57/18 52/51/18 +f 52/51/19 51/57/19 53/53/19 +f 49/52/20 55/259/20 56/55/20 +f 50/50/21 56/260/21 53/56/21 +f 52/51/22 54/261/22 55/58/22 +f 58/59/23 59/62/23 60/60/23 +f 59/62/24 61/262/24 62/63/24 +f 58/59/25 57/61/25 63/64/25 +f 58/59/26 64/263/26 61/66/26 +f 60/60/27 62/264/27 63/67/27 +f 66/68/28 67/76/28 68/69/28 +f 68/69/29 67/76/29 69/71/29 +f 66/68/30 65/70/30 71/73/30 +f 66/68/31 72/265/31 69/75/31 +f 68/69/32 70/266/32 71/77/32 +f 74/78/33 75/81/33 76/79/33 +f 75/81/34 77/267/34 78/82/34 +f 73/80/35 79/268/35 80/83/35 +f 75/81/36 74/78/36 80/84/36 +f 76/79/37 78/269/37 79/86/37 +f 82/87/38 83/93/38 84/88/38 +f 84/88/39 83/93/39 85/90/39 +f 81/89/40 87/270/40 88/92/40 +f 83/93/41 82/87/41 88/94/41 +f 84/88/42 86/271/42 87/96/42 +f 90/97/43 91/100/43 92/98/43 +f 91/100/44 93/272/44 94/101/44 +f 89/99/45 95/273/45 96/102/45 +f 90/97/46 96/274/46 93/103/46 +f 92/98/47 94/275/47 95/104/47 +f 98/105/48 99/113/48 100/106/48 +f 100/106/49 99/113/49 101/108/49 +f 98/105/50 97/107/50 103/110/50 +f 98/105/51 104/276/51 101/112/51 +f 100/106/52 102/277/52 103/114/52 +f 106/115/53 107/118/53 108/116/53 +f 107/118/54 109/278/54 110/119/54 +f 105/117/55 111/279/55 112/120/55 +f 106/115/56 112/280/56 109/121/56 +f 108/116/57 110/281/57 111/122/57 +f 114/123/58 115/126/58 116/124/58 +f 115/126/59 117/282/59 118/127/59 +f 114/123/60 113/125/60 119/128/60 +f 115/126/61 114/123/61 120/130/61 +f 116/124/62 118/283/62 119/132/62 +f 122/133/63 123/136/63 124/134/63 +f 123/136/64 125/284/64 126/137/64 +f 121/135/65 127/285/65 128/138/65 +f 123/136/66 122/133/66 128/139/66 +f 121/135/67 124/134/67 126/141/67 +f 130/143/68 131/150/68 132/144/68 +f 132/144/69 131/150/69 133/146/69 +f 129/145/70 135/286/70 136/148/70 +f 130/143/71 136/287/71 133/149/71 +f 132/144/72 134/288/72 135/151/72 +f 138/152/73 139/159/73 140/153/73 +f 140/153/74 139/159/74 141/155/74 +f 137/154/75 143/289/75 144/157/75 +f 138/152/76 144/290/76 141/158/76 +f 140/153/77 142/291/77 143/160/77 +f 146/161/78 147/164/78 148/162/78 +f 147/164/79 149/292/79 150/165/79 +f 145/163/80 151/293/80 152/166/80 +f 147/164/81 146/161/81 152/167/81 +f 148/162/82 150/294/82 151/169/82 +f 154/170/83 155/177/83 156/171/83 +f 156/171/84 155/177/84 157/173/84 +f 153/172/85 159/295/85 160/175/85 +f 154/170/86 160/296/86 157/176/86 +f 156/171/87 158/297/87 159/178/87 +f 162/179/88 163/185/88 164/180/88 +f 164/180/89 163/185/89 165/182/89 +f 161/181/90 167/298/90 168/184/90 +f 163/185/91 162/179/91 168/186/91 +f 164/180/92 166/299/92 167/188/92 +f 170/189/93 171/192/93 172/190/93 +f 171/192/94 173/300/94 174/193/94 +f 169/191/95 175/301/95 176/194/95 +f 170/189/96 176/302/96 173/195/96 +f 172/190/97 174/303/97 175/196/97 +f 178/197/98 179/200/98 180/198/98 +f 179/200/99 181/304/99 182/201/99 +f 178/197/100 177/199/100 183/202/100 +f 179/200/101 178/197/101 184/204/101 +f 180/198/102 182/305/102 183/206/102 +f 186/207/103 187/210/103 188/208/103 +f 187/210/104 189/306/104 190/211/104 +f 186/207/105 185/209/105 191/212/105 +f 187/210/106 186/207/106 192/214/106 +f 185/209/107 188/208/107 190/216/107 +f 194/218/108 195/226/108 196/219/108 +f 196/219/109 195/226/109 197/221/109 +f 194/218/110 193/220/110 199/223/110 +f 194/218/111 200/307/111 197/225/111 +f 196/219/112 198/308/112 199/227/112 +f 202/228/113 203/231/113 204/229/113 +f 203/231/114 205/309/114 206/232/114 +f 202/228/115 201/230/115 207/233/115 +f 202/228/116 208/310/116 205/235/116 +f 204/229/117 206/311/117 207/236/117 +f 210/237/118 211/240/118 212/238/118 +f 211/240/119 213/312/119 214/241/119 +f 210/237/120 209/239/120 215/242/120 +f 211/240/121 210/237/121 216/244/121 +f 209/239/122 212/238/122 214/246/122 +o Plane.001 +v 0.000000 2.453697 -2.948062 +v 0.125000 2.423342 -2.962217 +v 0.216506 2.340409 -3.000889 +v 0.250000 2.227120 -3.053716 +v 0.216506 2.113832 -3.106544 +v 0.000000 2.566986 -2.895234 +v 0.324759 2.057188 -3.132957 +v 0.375000 2.227120 -3.053716 +v 0.324760 2.397053 -2.974475 +v 0.187500 2.521452 -2.916467 +vt 1.000000 0.250000 +vt -0.000000 -0.000000 +vt 1.000000 0.000000 +vt -0.000000 0.500000 +vt 0.000000 0.250000 +vt 1.000000 0.500000 +vt -0.000000 0.750000 +vt 0.000000 1.000000 +vt 1.000000 0.750000 +vt 1.000000 1.000000 +vn 0.0000 0.4226 -0.9063 +s off +f 220/313/123 223/314/123 221/315/123 +f 220/313/123 225/316/123 224/317/123 +f 219/318/123 226/319/123 225/316/123 +f 222/320/123 218/321/123 217/322/123 +f 220/313/123 224/317/123 223/314/123 +f 220/313/123 219/318/123 225/316/123 +f 219/318/123 218/321/123 226/319/123 +f 222/320/123 226/319/123 218/321/123 +o Plane +v -1.250000 1.750000 -0.625000 +v -1.250000 1.750000 -3.000000 +v -1.250000 1.376000 -2.625000 +v -1.250000 0.751000 -2.625000 +v -1.250000 0.750000 -0.625000 +v 0.500000 0.000000 -1.625000 +v 1.000000 0.500000 -2.125000 +v 1.000000 0.500000 -3.750000 +v 1.250000 0.750000 -3.750000 +v 1.250000 0.750000 -0.625000 +v 0.500000 0.000000 -0.625000 +v 1.250000 1.750000 -3.000000 +v 1.250000 1.750000 -0.625000 +v 1.250000 1.625000 -3.750000 +v 1.250000 1.750000 -3.375000 +v -0.500000 0.000000 -0.625000 +v -0.500000 0.000000 -1.625000 +v -1.000000 0.500000 -2.625000 +v -1.000000 0.500000 -2.125000 +v 1.000000 1.750000 -3.375000 +v 1.000000 1.750000 -3.000000 +v -1.250000 0.750000 -3.750000 +v -1.250000 0.751000 -3.625000 +v -1.250000 1.376000 -3.625000 +v -1.250000 1.625000 -3.750000 +v -1.250000 1.750000 -3.375000 +v -1.000000 0.500000 -3.750000 +v -1.000000 0.501000 -3.625000 +v -1.312500 0.501000 -3.500000 +v -1.312500 0.501000 -2.750000 +v -1.312500 0.626000 -2.750000 +v -1.312500 0.626000 -3.500000 +v -1.312500 0.751000 -3.500000 +v -1.312500 0.751000 -2.750000 +v -1.312500 0.876000 -2.750000 +v -1.312500 0.876000 -3.500000 +v -1.312500 1.001000 -3.500000 +v -1.312500 1.001000 -2.750000 +v -1.312500 1.126000 -2.750000 +v -1.312500 1.126000 -3.500000 +v -1.312500 1.376000 -3.625000 +v -1.312500 1.251000 -3.500000 +v -1.312500 1.251000 -2.750000 +v -1.312500 1.376000 -2.625000 +v -1.312500 0.251000 -3.625000 +v -1.312500 0.251000 -2.625000 +v -1.312500 0.376000 -2.750000 +v -1.312500 0.376000 -3.500000 +v -1.187500 1.001000 -3.500000 +v -1.187500 1.001000 -2.750000 +v -1.187500 0.876000 -3.500000 +v -1.187500 0.626000 -2.750000 +v -1.187500 0.626000 -3.500000 +v -1.187500 0.751000 -3.500000 +v -1.187500 1.251000 -3.500000 +v -1.187500 1.126000 -3.500000 +v -1.187500 1.126000 -2.750000 +v -1.187500 1.251000 -2.750000 +v -1.187500 0.876000 -2.750000 +v -1.187500 0.751000 -2.750000 +v -1.187500 0.376000 -3.500000 +v -1.187500 0.376000 -2.750000 +v -1.187500 0.501000 -2.750000 +v -1.187500 0.501000 -3.500000 +v 1.000000 0.750000 -3.750000 +v 1.000000 1.625000 -3.750000 +v -1.000000 1.625000 -3.750000 +v -1.000000 0.750000 -3.750000 +v -1.000000 1.750000 -3.375000 +v -1.000000 1.750000 -3.000000 +v -0.500000 2.500000 -2.625000 +v 0.500000 2.500000 -2.625000 +v 0.500000 2.250000 -2.750000 +v -0.500000 2.250000 -2.750000 +v -0.344030 0.708152 -0.175597 +v -0.424630 0.633153 -0.128904 +v -0.388541 0.618205 -0.128904 +v -0.328091 0.674453 -0.163924 +v -0.420670 0.523129 -0.082211 +v -0.334466 0.442528 -0.062870 +v -0.320918 0.475236 -0.079378 +v -0.385571 0.535686 -0.093884 +v -0.216518 0.438567 -0.082211 +v -0.135918 0.513565 -0.128904 +v -0.172007 0.528513 -0.128904 +v -0.232457 0.472265 -0.093884 +v -0.139879 0.623590 -0.175597 +v -0.174978 0.611032 -0.163924 +v -0.226082 0.704190 -0.194938 +v -0.239630 0.671482 -0.178429 +v -0.208096 0.543462 -0.128904 +v -0.210077 0.598474 -0.152250 +v -0.253178 0.638775 -0.161921 +v -0.312152 0.640755 -0.152250 +v -0.352451 0.603256 -0.128904 +v -0.350471 0.548244 -0.105557 +v -0.307370 0.507944 -0.095887 +v -0.248396 0.505963 -0.105557 +v -0.222349 0.496668 -0.037240 +v -0.161900 0.552916 -0.072260 +v -0.197989 0.567865 -0.072260 +v -0.238288 0.530366 -0.048913 +v -0.164869 0.635435 -0.107280 +v -0.199968 0.622877 -0.095606 +v -0.229523 0.695885 -0.121785 +v -0.243071 0.663178 -0.105277 +v -0.317984 0.698857 -0.107280 +v -0.302044 0.665158 -0.095606 +v -0.378433 0.642608 -0.072260 +v -0.342344 0.627659 -0.072260 +v -0.375462 0.560089 -0.037240 +v -0.340364 0.572647 -0.048913 +v -0.310810 0.499639 -0.022734 +v -0.297262 0.532347 -0.039243 +v -0.391169 0.267836 0.136894 +v -0.014465 0.192905 0.136894 +v -0.014465 0.302280 -0.081856 +v -0.349313 0.368885 -0.081856 +v -0.025414 0.247242 -0.109375 +v -0.360261 0.313848 -0.109375 +v -0.025414 0.137868 0.109375 +v -0.402117 0.212799 0.109375 +v 0.230970 1.345671 -0.500000 +v 0.095671 1.480970 -0.500000 +v 0.071753 1.423227 -0.500000 +v 0.173227 1.321753 -0.500000 +v -0.047836 1.365485 -0.500000 +v -0.115485 1.297835 -0.500000 +v -0.115485 1.202165 -0.500000 +v -0.047836 1.134515 -0.500000 +v 0.047834 1.134515 -0.500000 +v 0.115485 1.202165 -0.500000 +v 0.115485 1.297835 -0.500000 +v 0.047834 1.365485 -0.500000 +v 0.230970 1.154329 -0.500000 +v 0.173227 1.178247 -0.500000 +v 0.095671 1.019030 -0.500000 +v 0.071753 1.076773 -0.500000 +v -0.095671 1.019030 -0.500000 +v -0.071753 1.076773 -0.500000 +v -0.230970 1.154329 -0.500000 +v -0.173227 1.178247 -0.500000 +v -0.230970 1.345671 -0.500000 +v -0.173227 1.321753 -0.500000 +v -0.095671 1.480970 -0.500000 +v -0.071753 1.423227 -0.500000 +v 0.115485 1.297835 -0.375000 +v 0.173227 1.321753 -0.375000 +v 0.071753 1.423227 -0.375000 +v 0.047834 1.365485 -0.375000 +v 0.115485 1.202165 -0.375000 +v 0.173227 1.178247 -0.375000 +v 0.047834 1.134515 -0.375000 +v 0.071753 1.076773 -0.375000 +v -0.047836 1.134515 -0.375000 +v -0.071753 1.076773 -0.375000 +v -0.115485 1.202165 -0.375000 +v -0.173227 1.178247 -0.375000 +v -0.115485 1.297835 -0.375000 +v -0.173227 1.321753 -0.375000 +v -0.047836 1.365485 -0.375000 +v -0.071753 1.423227 -0.375000 +v 0.500000 2.500000 -0.625000 +v -0.500000 2.500000 -0.625000 +v 1.039364 1.680519 -0.625000 +v 1.125000 1.250000 -0.625000 +v 1.039364 0.819481 -0.625000 +v 0.795495 0.454505 -0.625000 +v 0.430519 0.210635 -0.625000 +v 0.000000 0.125000 -0.625000 +v -0.430519 0.210636 -0.625000 +v -0.795495 0.454505 -0.625000 +v -1.039364 0.819481 -0.625000 +v -1.125000 1.250000 -0.625000 +v -1.039364 1.680519 -0.625000 +v -1.000000 1.645607 -3.832107 +v -1.000000 0.938500 -4.125000 +v -1.000000 0.231393 -3.832107 +v -1.000000 -0.061500 -3.125000 +v -1.000000 0.231393 -2.417893 +v -1.000000 0.938500 -2.125000 +v -1.000000 1.645607 -2.417893 +v -1.000000 1.938500 -3.125000 +v -1.000000 0.251000 -2.625000 +v -1.000000 1.376000 -2.625000 +v -1.000000 0.251000 -3.625000 +v -1.000000 1.376000 -3.625000 +v 1.000000 1.645607 -3.832107 +v 1.000000 1.938500 -3.125000 +v 1.000000 1.645607 -2.417893 +v 1.000000 0.938500 -2.125000 +v 1.000000 0.231393 -2.417893 +v 1.000000 -0.061500 -3.125000 +v 1.000000 0.231393 -3.832107 +v 1.000000 0.938500 -4.125000 +v 0.554916 2.356694 0.187500 +v 0.731694 2.179917 0.187500 +v 0.820084 2.268306 0.187500 +v 0.643306 2.445082 0.187500 +v 0.554916 2.356694 -0.312500 +v 0.643306 2.445082 -0.312500 +v 0.820084 2.268306 -0.312500 +v 0.731694 2.179917 -0.312500 +v -0.929916 0.518306 0.187500 +v -1.106694 0.695083 0.187500 +v -1.195084 0.606694 0.187500 +v -1.018306 0.429918 0.187500 +v -0.929916 0.518306 -0.312500 +v -1.018306 0.429918 -0.312500 +v -1.195084 0.606694 -0.312500 +v -1.106694 0.695083 -0.312500 +v 1.106694 0.695082 0.187500 +v 0.929916 0.518306 0.187500 +v 1.018306 0.429917 0.187500 +v 1.195082 0.606694 0.187500 +v 1.106694 0.695082 -0.312500 +v 1.195082 0.606694 -0.312500 +v 1.018306 0.429917 -0.312500 +v 0.929916 0.518306 -0.312500 +v -0.731694 2.179918 0.187500 +v -0.554916 2.356694 0.187500 +v -0.643306 2.445083 0.187500 +v -0.820082 2.268306 0.187500 +v -0.731694 2.179918 -0.312500 +v -0.820082 2.268306 -0.312500 +v -0.643306 2.445083 -0.312500 +v -0.554916 2.356694 -0.312500 +v 0.554916 2.356694 -2.375000 +v 0.731694 2.179917 -2.375000 +v 0.820084 2.268306 -2.375000 +v 0.643306 2.445082 -2.375000 +v 0.554916 2.356694 -2.750000 +v 0.643306 2.445082 -2.750000 +v 0.820084 2.268306 -2.875000 +v 0.731694 2.179917 -2.875000 +v -0.500000 2.250000 -2.625000 +v -1.000000 1.750000 -2.875000 +v 1.000000 1.750000 -2.875000 +v 0.500000 2.250000 -2.625000 +v 0.500000 2.215740 -2.715952 +v 0.500000 1.819230 -2.900848 +v 0.500000 1.872057 -3.014137 +v 0.500000 2.268567 -2.829241 +v -0.500000 2.268567 -2.829241 +v -0.500000 1.872057 -3.014137 +v -0.500000 1.819230 -2.900848 +v -0.500000 2.215740 -2.715952 +v -0.312500 2.438500 -2.750000 +v 0.312500 2.438500 -2.750000 +v -0.312500 2.385673 -2.636712 +v 0.312500 2.385673 -2.636712 +v -0.750000 1.887724 -3.247583 +v 0.750000 1.887724 -3.247583 +v 0.750000 2.039915 -3.445922 +v -0.750000 2.039915 -3.445922 +v 0.750000 1.544192 -3.511185 +v 0.750000 1.696383 -3.709523 +v 0.750000 1.944244 -3.676892 +v 0.750000 1.639863 -3.280215 +v -0.750000 1.944244 -3.676892 +v -0.750000 1.696383 -3.709523 +v -0.750000 1.544192 -3.511185 +v -0.750000 1.639863 -3.280215 +v -0.500000 0.125000 -2.750000 +v 0.500000 0.125000 -2.750000 +v 0.500000 0.125000 -1.750000 +v -0.500000 0.125000 -1.750000 +v 0.500000 0.500000 -2.750000 +v 0.500000 0.500000 -1.750000 +v -0.500000 0.500000 -1.750000 +v -0.500000 0.500000 -2.750000 +v -0.625000 0.187500 -4.125000 +v -0.625000 1.687500 -4.125000 +v 0.625000 1.687500 -4.125000 +v 0.625000 0.187500 -4.125000 +v 0.625000 1.687500 -3.625000 +v 0.625000 0.187500 -3.625000 +v -0.625000 0.187500 -3.625000 +v -0.625000 1.687500 -3.625000 +v -0.500000 1.562500 -4.875000 +v 0.500000 1.562500 -4.875000 +v 0.500000 0.312500 -4.875000 +v -0.500000 0.312500 -4.875000 +v 0.500000 0.312500 -4.125000 +v -0.500000 0.312500 -4.125000 +v -0.500000 1.562500 -4.125000 +v 0.500000 1.562500 -4.125000 +v 1.375000 1.658494 -2.187500 +v 0.875000 1.658494 -2.187500 +v 0.875000 1.658494 -2.437500 +v 1.375000 1.658494 -2.437500 +v 1.375000 2.091506 -2.187500 +v 0.875000 2.091506 -2.187500 +v 0.875000 1.875000 -2.062500 +v 1.375000 1.875000 -2.062500 +v 1.375000 1.875000 -2.562500 +v 0.875000 1.875000 -2.562500 +v 0.875000 2.091506 -2.437500 +v 1.375000 2.091506 -2.437500 +v 1.375000 1.983253 -2.375000 +v 1.375000 1.983253 -2.250000 +v 1.562500 1.983253 -2.250000 +v 1.562500 1.983253 -2.375000 +v 1.375000 1.766747 -2.250000 +v 1.375000 1.766747 -2.375000 +v 1.562500 1.766747 -2.375000 +v 1.562500 1.766747 -2.250000 +v 1.375000 1.875000 -2.187500 +v 1.562500 1.875000 -2.187500 +v 1.375000 1.875000 -2.437500 +v 1.562500 1.875000 -2.437500 +v 1.562500 1.712620 -2.406250 +v 1.562500 1.712620 -2.218750 +v 1.562500 1.875000 -2.125000 +v 1.562500 2.037380 -2.218750 +v 1.562500 2.037380 -2.406250 +v 1.562500 1.875000 -2.500000 +v 2.312500 1.875000 -2.500000 +v 2.312500 1.712620 -2.406250 +v 2.312500 1.712620 -2.218750 +v 2.312500 1.875000 -2.125000 +v 2.312500 2.037380 -2.218750 +v 2.312500 2.037380 -2.406250 +v 2.312500 1.875000 -2.187500 +v 2.312500 1.983253 -2.250000 +v 2.312500 1.983253 -2.375000 +v 2.312500 1.875000 -2.437500 +v 2.312500 1.766747 -2.375000 +v 2.312500 1.766747 -2.250000 +v 2.500000 1.766747 -2.250000 +v 2.500000 1.875000 -2.187500 +v 2.500000 1.983253 -2.250000 +v 2.500000 1.983253 -2.375000 +v 2.500000 1.766747 -2.375000 +v 2.500000 1.875000 -2.437500 +v 2.500000 1.875000 -2.062500 +v 2.500000 2.091506 -2.187500 +v 2.500000 2.091506 -2.437500 +v 2.500000 1.875000 -2.562500 +v 2.500000 1.658494 -2.437500 +v 2.500000 1.658494 -2.187500 +v 2.625000 2.091506 -2.187500 +v 2.625000 2.091506 -2.437500 +v 2.625000 1.658494 -2.437500 +v 2.625000 1.658494 -2.187500 +v 2.625000 1.875000 -2.062500 +v 2.625000 1.875000 -2.562500 +v 2.750000 1.983253 -2.375000 +v 2.750000 1.875000 -2.437500 +v 2.750000 1.766747 -2.375000 +v 2.750000 1.766747 -2.250000 +v 2.750000 1.875000 -2.187500 +v 2.750000 1.983253 -2.250000 +v -0.187500 1.625000 -4.125000 +v 0.187500 1.625000 -4.125000 +v 0.187500 1.625000 -5.000000 +v -0.187500 1.625000 -5.000000 +v -0.187500 1.669194 -5.397748 +v -0.187500 2.022748 -5.044194 +v -0.187500 2.287913 -5.309359 +v -0.187500 2.022748 -5.574524 +v -0.187500 1.845971 -5.574524 +v 0.187500 1.250000 -5.000000 +v -0.187500 1.250000 -5.000000 +v 0.187500 1.250000 -4.125000 +v -0.187500 1.250000 -4.125000 +v -0.125000 1.625000 -4.734835 +v 0.125000 1.625000 -4.734835 +v 0.125000 1.978553 -5.088388 +v -0.125000 1.978553 -5.088388 +v -0.125000 1.359835 -5.000000 +v -0.125000 1.713388 -5.353553 +v 0.125000 1.359835 -5.000000 +v 0.125000 1.713388 -5.353553 +v 0.187500 1.669194 -5.397748 +v 0.187500 2.022748 -5.044194 +v 0.187500 2.022748 -5.574524 +v 0.187500 1.845971 -5.574524 +v 0.187500 2.287913 -5.309359 +v -0.062500 2.597272 -4.558058 +v 0.062500 2.597272 -4.558058 +v 0.062500 2.774049 -4.734835 +v -0.062500 2.774049 -4.734835 +v 0.062500 2.066942 -5.088388 +v 0.062500 2.243718 -5.265165 +v -0.062500 2.243718 -5.265165 +v -0.062500 2.066942 -5.088388 +v -0.125000 2.423342 -2.962217 +v 0.000000 2.453697 -2.948062 +v 0.216506 2.113832 -3.106544 +v 0.125000 2.030899 -3.145216 +v 0.000000 2.000544 -3.159371 +v -0.125000 2.030899 -3.145216 +v -0.216506 2.113832 -3.106544 +v -0.250000 2.227120 -3.053716 +v -0.216506 2.340409 -3.000889 +v 0.000000 2.374456 -2.778129 +v 0.000000 2.487745 -2.725302 +v 0.000000 2.566986 -2.895234 +v 0.324759 1.977947 -2.963025 +v 0.216506 2.034591 -2.936611 +v 0.324759 2.057188 -3.132957 +v 0.375000 2.227120 -3.053716 +v 0.324760 2.397053 -2.974475 +v 0.187500 2.521452 -2.916467 +v 0.324760 2.317812 -2.804543 +v 0.187500 2.442212 -2.746534 +v -0.437500 2.102596 -3.042822 +v -0.483253 2.144063 -3.023486 +v -0.500000 2.200707 -2.997072 +v -0.483253 2.257351 -2.970659 +v -0.437500 2.298818 -2.951323 +v -0.375000 2.313995 -2.944245 +v -0.312500 2.298818 -2.951323 +v -0.266747 2.257351 -2.970659 +v -0.250000 2.200707 -2.997072 +v -0.266747 2.144063 -3.023486 +v -0.312500 2.102596 -3.042822 +v -0.375000 2.087419 -3.049900 +v -1.125000 1.875000 -1.875000 +v -1.125000 1.875000 -1.625000 +v -0.625000 2.375000 -1.875000 +v -0.625000 2.375000 -2.125000 +v -0.625000 2.375000 -0.875000 +v -1.125000 1.875000 -0.875000 +v -1.125000 1.875000 -2.625000 +v -0.625000 2.375000 -2.375000 +v 1.125000 1.875000 -0.875000 +v 0.625000 2.375000 -0.875000 +v 1.125000 1.875000 -1.625000 +v 0.625000 2.375000 -1.875000 +v 0.448223 2.198223 -1.875000 +v 0.948223 1.698223 -1.625000 +v -1.036612 1.786612 -1.875000 +v -1.036612 1.786612 -2.625000 +v -0.948223 1.698223 -1.625000 +v -0.448223 2.198223 -1.875000 +v -0.536612 2.286612 -2.375000 +v -0.536612 2.286612 -2.125000 +v -0.448223 2.198223 -0.875000 +v -0.948223 1.698223 -0.875000 +v 0.948223 1.698223 -0.875000 +v 0.448223 2.198223 -0.875000 +v -0.137500 2.062500 -3.749900 +v -0.137500 1.937500 -3.749900 +v -0.137500 2.062500 -3.437400 +v -0.137500 2.187500 -3.437400 +v -0.012500 1.937500 -3.749900 +v -0.012500 2.062500 -3.437400 +v 0.137500 1.937500 -3.749900 +v 0.137500 2.062500 -3.749900 +v 0.137500 2.187500 -3.437400 +v 0.137500 2.062500 -3.437400 +v -0.012500 2.062500 -3.749900 +v -0.012500 2.187500 -3.437400 +v 0.137500 2.134191 -3.062400 +v 0.137500 2.009191 -3.062400 +v -0.012500 2.009191 -3.062400 +v -0.137500 2.009191 -3.062400 +v -0.012500 1.937500 -3.874900 +v -0.137500 1.937500 -3.874900 +v 0.137500 1.937500 -3.874900 +v 0.012500 1.937500 -3.874900 +v 0.012500 2.062500 -3.749900 +v 0.012500 1.937500 -3.749900 +v -0.012500 1.687500 -3.874900 +v -0.137500 1.687500 -3.874900 +v -0.137500 1.687500 -3.749900 +v -0.012500 1.687500 -3.749900 +v 0.137500 1.687500 -3.749900 +v 0.137500 1.687500 -3.874900 +v 0.012500 1.687500 -3.874900 +v 0.012500 1.687500 -3.749900 +v 0.012500 2.062500 -3.437400 +v 0.625000 2.001000 -3.187500 +v 0.625000 2.001000 -3.062500 +v 0.875000 2.001000 -3.062500 +v 0.875000 2.001000 -3.187500 +v 0.012500 2.187500 -3.437400 +v 0.012500 2.134191 -3.062400 +v 0.012500 2.009191 -3.062400 +v -0.137500 2.134191 -3.062400 +v -0.012500 2.134191 -3.062400 +v -0.625000 1.938500 -3.250000 +v 0.625000 1.938500 -3.250000 +v 0.625000 1.830247 -3.187500 +v -0.625000 1.830247 -3.187500 +v 0.625000 1.876000 -3.062500 +v 0.875000 1.876000 -3.062500 +v 0.625000 1.830247 -3.062500 +v -0.625000 1.830247 -3.062500 +v 0.625000 1.876000 -3.187500 +v 0.875000 1.876000 -3.187500 +v 0.625000 1.938500 -3.000000 +v -0.625000 1.938500 -3.000000 +v 0.625000 2.046753 -3.062500 +v -0.625000 2.046753 -3.062500 +v 0.625000 2.046753 -3.187500 +v -0.625000 2.046753 -3.187500 +v 1.000000 2.001000 -3.187500 +v 1.000000 2.001000 -3.062500 +v 0.875000 2.126000 -3.187500 +v 1.000000 2.126000 -3.187500 +v 0.875000 2.126000 -3.312500 +v 1.000000 2.126000 -3.312500 +v 1.000000 2.126000 -3.062500 +v 0.875000 2.126000 -3.062500 +v 1.000000 2.251000 -3.187500 +v 0.875000 2.251000 -3.187500 +v 0.875000 2.251000 -3.312500 +v 1.000000 2.251000 -3.312500 +v 1.000000 2.001000 -3.937500 +v 0.875000 2.001000 -3.937500 +v 1.000000 1.876000 -3.937500 +v 1.000000 1.876000 -4.062500 +v 0.875000 1.876000 -3.937500 +v 0.875000 1.876000 -4.062500 +v 0.875000 1.626000 -4.062500 +v 0.875000 1.626000 -3.937500 +v 0.875000 1.501000 -3.937500 +v 0.625000 1.626000 -3.937500 +v 0.625000 1.501000 -3.937500 +v 1.000000 1.626000 -3.937500 +v 1.000000 1.626000 -4.062500 +v 0.875000 1.501000 -4.062500 +v 0.625000 1.626000 -4.062500 +v 0.625000 1.501000 -4.062500 +v 0.110485 0.764515 -0.750000 +v 0.156250 0.875000 -0.750000 +v 0.156250 0.737706 -0.418544 +v 0.110485 0.659581 -0.496669 +v 0.110485 0.985485 -0.750000 +v 0.000000 1.031250 -0.750000 +v 0.000000 0.848192 -0.308058 +v 0.110485 0.815831 -0.340419 +v -0.110486 0.985485 -0.750000 +v -0.156250 0.875000 -0.750000 +v -0.156250 0.737706 -0.418544 +v -0.110486 0.815831 -0.340419 +v -0.110486 0.764515 -0.750000 +v -0.110486 0.659581 -0.496669 +v 0.000000 0.718750 -0.750000 +v 0.000000 0.627221 -0.529029 +v -0.156250 0.585633 -0.316931 +v -0.110486 0.627914 -0.214856 +v 0.000000 0.645427 -0.172575 +v 0.110485 0.627914 -0.214856 +v 0.156250 0.585633 -0.316931 +v 0.110485 0.543352 -0.419007 +v 0.000000 0.525838 -0.461288 +v -0.110486 0.543352 -0.419007 +v 0.110485 0.406250 -0.391735 +v 0.000000 0.406250 -0.437500 +v -0.110486 0.406250 -0.391735 +v -0.156250 0.406250 -0.281250 +v -0.110486 0.406250 -0.170765 +v 0.000000 0.406250 -0.125000 +v 0.110485 0.406250 -0.170765 +v 0.156250 0.406250 -0.281250 +v -0.110486 0.184586 -0.214856 +v 0.000000 0.167073 -0.172575 +v 0.110485 0.184586 -0.214856 +v 0.156250 0.226867 -0.316932 +v 0.110485 0.269148 -0.419007 +v 0.000000 0.286661 -0.461288 +v -0.110486 0.269148 -0.419007 +v -0.156250 0.226867 -0.316932 +v -0.196566 0.367147 -0.468769 +v -0.200528 0.477172 -0.515462 +v -0.286731 0.557772 -0.534803 +v -0.404678 0.561734 -0.515462 +v -0.485279 0.486735 -0.468769 +v -0.481318 0.376710 -0.422076 +v -0.395115 0.296110 -0.402735 +v -0.277166 0.292148 -0.422076 +v 0.230970 1.345671 -0.750000 +v 0.095671 1.480970 -0.750000 +v 0.095671 1.019030 -0.750000 +v 0.230970 1.154329 -0.750000 +v -0.230970 1.154329 -0.750000 +v -0.095671 1.019030 -0.750000 +v -0.095671 1.480970 -0.750000 +v -0.230970 1.345671 -0.750000 +v 0.000000 1.921303 -2.989438 +v -0.125000 1.951658 -2.975283 +v -0.250000 2.147880 -2.883784 +v -0.216506 2.261168 -2.830956 +v 0.125000 1.951658 -2.975283 +v -0.216506 2.034591 -2.936611 +v -0.125000 2.344101 -2.792284 +v 0.375000 2.147880 -2.883783 +v -0.375000 2.261168 -2.830956 +v -0.312500 2.245990 -2.838034 +v -0.500000 2.147880 -2.883784 +v -0.483253 2.204524 -2.857370 +v -0.266747 2.091235 -2.910197 +v -0.312500 2.049769 -2.929533 +v -0.375000 2.034591 -2.936611 +v -0.437500 2.049769 -2.929533 +v -0.266747 2.204524 -2.857370 +v -0.437500 2.245990 -2.838034 +v -0.483253 2.091235 -2.910197 +v -0.250000 2.147880 -2.883784 +v 0.911612 2.036612 -1.125000 +v 0.875000 2.125000 -1.125000 +v 0.823223 2.073223 -0.948223 +v 0.867418 1.992418 -0.974112 +v 0.786612 2.161612 -1.125000 +v 0.698223 2.125000 -1.125000 +v 0.672335 2.099112 -1.036612 +v 0.742418 2.117417 -0.974112 +v -0.786612 2.161612 -1.125000 +v -0.742418 2.117417 -0.974112 +v -0.672335 2.099112 -1.036612 +v -0.698223 2.125000 -1.125000 +v -0.911612 2.036612 -1.125000 +v -0.867418 1.992418 -0.974112 +v -0.823223 2.073223 -0.948223 +v -0.875000 2.125000 -1.125000 +v -0.875000 1.948223 -1.125000 +v -0.849112 1.922335 -1.036612 +v -0.698223 1.948223 -0.875000 +v -0.635723 2.010723 -0.911612 +v -0.786612 1.859835 -1.000000 +v -0.760723 1.885723 -0.911612 +v -0.609835 2.036612 -1.000000 +v -0.609835 2.338388 -1.125000 +v -0.565641 2.294194 -0.974112 +v -0.495558 2.275888 -1.036612 +v -0.521447 2.301777 -1.125000 +v -0.734835 2.213388 -1.125000 +v -0.690641 2.169194 -0.974112 +v -0.646447 2.250000 -0.948223 +v -0.698223 2.301777 -1.125000 +v -0.698223 2.125000 -1.125000 +v -0.672335 2.099112 -1.036612 +v -0.521447 2.125000 -0.875000 +v -0.458947 2.187500 -0.911612 +v -0.609835 2.036612 -1.000000 +v -0.583947 2.062500 -0.911612 +v -0.433058 2.213388 -1.000000 +v -0.963388 1.984835 -1.125000 +v -0.919194 1.940641 -0.974112 +v -0.849112 1.922335 -1.036612 +v -0.875000 1.948223 -1.125000 +v -1.088388 1.859835 -1.125000 +v -1.044194 1.815641 -0.974112 +v -1.000000 1.896446 -0.948223 +v -1.051777 1.948223 -1.125000 +v -1.051777 1.771446 -1.125000 +v -1.025888 1.745558 -1.036612 +v -0.875000 1.771446 -0.875000 +v -0.812500 1.833946 -0.911612 +v -0.963388 1.683058 -1.000000 +v -0.937500 1.708946 -0.911612 +v -0.786612 1.859835 -1.000000 +v -0.698223 2.125000 -1.812500 +v -0.786612 2.161612 -1.812500 +v -0.521447 2.301777 -1.875000 +v -0.609835 2.338388 -1.875000 +v -0.875000 2.125000 -1.812500 +v -0.911612 2.036612 -1.812500 +v -0.875000 1.948223 -1.750000 +v -0.963388 1.984835 -1.750000 +v -0.698223 2.301777 -1.875000 +v -0.875000 1.948223 -1.812500 +v -0.734835 2.213388 -1.875000 +v -1.051777 1.948223 -1.750000 +v -1.088388 1.859835 -1.750000 +v -0.698223 2.125000 -1.875000 +v -1.051777 1.771446 -1.750000 +v 0.875000 1.948223 -1.125000 +v 0.849112 1.922335 -1.036612 +v 0.635723 2.010723 -0.911612 +v 0.698223 1.948223 -0.875000 +v 0.760723 1.885723 -0.911612 +v 0.786612 1.859835 -1.000000 +v 0.609835 2.036612 -1.000000 +v 0.609835 2.338388 -1.125000 +v 0.521447 2.301777 -1.125000 +v 0.495558 2.275888 -1.036612 +v 0.565641 2.294194 -0.974112 +v 0.734835 2.213388 -1.125000 +v 0.698223 2.301777 -1.125000 +v 0.646447 2.250000 -0.948223 +v 0.690641 2.169194 -0.974112 +v 0.698223 2.125000 -1.125000 +v 0.672335 2.099112 -1.036612 +v 0.458947 2.187500 -0.911612 +v 0.521447 2.125000 -0.875000 +v 0.583947 2.062500 -0.911612 +v 0.609835 2.036612 -1.000000 +v 0.433058 2.213388 -1.000000 +v 0.963388 1.984835 -1.125000 +v 0.875000 1.948223 -1.125000 +v 0.849112 1.922335 -1.036612 +v 0.919194 1.940641 -0.974112 +v 1.088388 1.859835 -1.125000 +v 1.051777 1.948223 -1.125000 +v 1.000000 1.896446 -0.948223 +v 1.044194 1.815641 -0.974112 +v 1.051777 1.771446 -1.125000 +v 1.025888 1.745558 -1.036612 +v 0.812500 1.833946 -0.911612 +v 0.875000 1.771446 -0.875000 +v 0.937500 1.708946 -0.911612 +v 0.963388 1.683058 -1.000000 +v 0.786612 1.859835 -1.000000 +v 0.786612 2.161612 -1.812500 +v 0.698223 2.125000 -1.812500 +v 0.609835 2.338388 -1.875000 +v 0.521447 2.301777 -1.875000 +v 0.875000 2.125000 -1.812500 +v 0.911612 2.036612 -1.812500 +v 0.963388 1.984835 -1.750000 +v 0.875000 1.948223 -1.750000 +v 0.698223 2.301777 -1.875000 +v 0.875000 1.948223 -1.812500 +v 0.734835 2.213388 -1.875000 +v 1.051777 1.948223 -1.750000 +v 1.088388 1.859835 -1.750000 +v 0.698223 2.125000 -1.875000 +v 1.051777 1.771446 -1.750000 +v 1.000000 0.500000 -2.625000 +v 0.344030 1.791848 -0.175597 +v 0.424630 1.866847 -0.128904 +v 0.388541 1.881795 -0.128904 +v 0.328091 1.825547 -0.163924 +v 0.420670 1.976871 -0.082211 +v 0.334466 2.057472 -0.062870 +v 0.320918 2.024764 -0.079378 +v 0.385571 1.964314 -0.093884 +v 0.216518 2.061433 -0.082211 +v 0.135918 1.986435 -0.128904 +v 0.172007 1.971487 -0.128904 +v 0.232457 2.027735 -0.093884 +v 0.139879 1.876410 -0.175597 +v 0.174978 1.888968 -0.163924 +v 0.226082 1.795810 -0.194938 +v 0.239630 1.828518 -0.178429 +v 0.208096 1.956538 -0.128904 +v 0.210077 1.901526 -0.152250 +v 0.253178 1.861225 -0.161921 +v 0.312152 1.859245 -0.152250 +v 0.352451 1.896744 -0.128904 +v 0.350472 1.951756 -0.105557 +v 0.307370 1.992056 -0.095887 +v 0.248396 1.994037 -0.105557 +v 0.222349 2.003332 -0.037240 +v 0.161900 1.947084 -0.072260 +v 0.197989 1.932135 -0.072260 +v 0.238288 1.969634 -0.048913 +v 0.164869 1.864565 -0.107280 +v 0.199968 1.877123 -0.095606 +v 0.229523 1.804115 -0.121785 +v 0.243071 1.836822 -0.105277 +v 0.317984 1.801143 -0.107280 +v 0.302044 1.834842 -0.095606 +v 0.378433 1.857392 -0.072260 +v 0.342344 1.872341 -0.072260 +v 0.375462 1.939911 -0.037240 +v 0.340365 1.927353 -0.048913 +v 0.310810 2.000361 -0.022734 +v 0.297262 1.967653 -0.039243 +v -0.110485 1.735485 -0.750000 +v -0.156250 1.625000 -0.750000 +v -0.156250 1.762294 -0.418544 +v -0.110485 1.840419 -0.496669 +v -0.110485 1.514515 -0.750000 +v 0.000000 1.468750 -0.750000 +v 0.000000 1.651808 -0.308058 +v -0.110485 1.684169 -0.340419 +v 0.110486 1.514515 -0.750000 +v 0.156250 1.625000 -0.750000 +v 0.156250 1.762294 -0.418544 +v 0.110486 1.684169 -0.340419 +v 0.110486 1.735485 -0.750000 +v 0.110486 1.840419 -0.496669 +v 0.000000 1.781250 -0.750000 +v 0.000000 1.872779 -0.529029 +v 0.156250 1.914367 -0.316931 +v 0.110486 1.872086 -0.214856 +v 0.000000 1.854573 -0.172575 +v -0.110485 1.872086 -0.214856 +v -0.156250 1.914367 -0.316931 +v -0.110485 1.956648 -0.419007 +v 0.000000 1.974162 -0.461288 +v 0.110486 1.956648 -0.419007 +v -0.110485 2.093750 -0.391735 +v 0.000000 2.093750 -0.437500 +v 0.110486 2.093750 -0.391735 +v 0.156250 2.093750 -0.281250 +v 0.110486 2.093750 -0.170765 +v 0.000000 2.093750 -0.125000 +v -0.110485 2.093750 -0.170765 +v -0.156250 2.093750 -0.281250 +v 0.110486 2.315414 -0.214856 +v 0.000000 2.332927 -0.172575 +v -0.110485 2.315414 -0.214856 +v -0.156250 2.273133 -0.316932 +v -0.110485 2.230852 -0.419007 +v 0.000000 2.213339 -0.461288 +v 0.110486 2.230852 -0.419007 +v 0.156250 2.273133 -0.316932 +v 0.196566 2.132853 -0.468769 +v 0.200528 2.022828 -0.515462 +v 0.286731 1.942228 -0.534803 +v 0.404678 1.938266 -0.515462 +v 0.485279 2.013265 -0.468769 +v 0.481318 2.123290 -0.422076 +v 0.395115 2.203890 -0.402735 +v 0.277166 2.207852 -0.422076 +v -0.541848 1.594031 -0.175597 +v -0.616847 1.674630 -0.128904 +v -0.631795 1.638541 -0.128904 +v -0.575547 1.578091 -0.163924 +v -0.726871 1.670670 -0.082211 +v -0.807472 1.584466 -0.062870 +v -0.774764 1.570918 -0.079378 +v -0.714314 1.635571 -0.093884 +v -0.811433 1.466519 -0.082211 +v -0.736435 1.385918 -0.128904 +v -0.721487 1.422007 -0.128904 +v -0.777735 1.482457 -0.093884 +v -0.626410 1.389879 -0.175597 +v -0.638968 1.424978 -0.163924 +v -0.545810 1.476082 -0.194938 +v -0.578518 1.489630 -0.178429 +v -0.706538 1.458096 -0.128904 +v -0.651526 1.460078 -0.152250 +v -0.611225 1.503178 -0.161921 +v -0.609245 1.562152 -0.152250 +v -0.646744 1.602452 -0.128904 +v -0.701756 1.600472 -0.105557 +v -0.742056 1.557370 -0.095887 +v -0.744037 1.498396 -0.105557 +v -0.753332 1.472349 -0.037240 +v -0.697084 1.411900 -0.072260 +v -0.682135 1.447989 -0.072260 +v -0.719634 1.488288 -0.048913 +v -0.614565 1.414870 -0.107280 +v -0.627123 1.449969 -0.095606 +v -0.554115 1.479523 -0.121785 +v -0.586822 1.493071 -0.105277 +v -0.551143 1.567984 -0.107280 +v -0.584842 1.552044 -0.095606 +v -0.607392 1.628433 -0.072260 +v -0.622341 1.592345 -0.072260 +v -0.689911 1.625462 -0.037240 +v -0.677353 1.590365 -0.048913 +v -0.750361 1.560810 -0.022734 +v -0.717653 1.547262 -0.039243 +v -0.485485 1.139515 -0.750000 +v -0.375000 1.093750 -0.750000 +v -0.512294 1.093750 -0.418544 +v -0.590419 1.139515 -0.496669 +v -0.264515 1.139515 -0.750000 +v -0.218750 1.250000 -0.750000 +v -0.401808 1.250000 -0.308058 +v -0.434169 1.139515 -0.340419 +v -0.264515 1.360486 -0.750000 +v -0.375000 1.406250 -0.750000 +v -0.512294 1.406250 -0.418544 +v -0.434169 1.360486 -0.340419 +v -0.485485 1.360486 -0.750000 +v -0.590419 1.360486 -0.496669 +v -0.531250 1.250000 -0.750000 +v -0.622779 1.250000 -0.529029 +v -0.664367 1.406250 -0.316931 +v -0.622086 1.360486 -0.214856 +v -0.604573 1.250000 -0.172575 +v -0.622086 1.139515 -0.214856 +v -0.664367 1.093750 -0.316931 +v -0.706648 1.139515 -0.419007 +v -0.724162 1.250000 -0.461288 +v -0.706648 1.360486 -0.419007 +v -0.843750 1.139515 -0.391735 +v -0.843750 1.250000 -0.437500 +v -0.843750 1.360486 -0.391735 +v -0.843750 1.406250 -0.281250 +v -0.843750 1.360486 -0.170765 +v -0.843750 1.250000 -0.125000 +v -0.843750 1.139515 -0.170765 +v -0.843750 1.093750 -0.281250 +v -1.065414 1.360486 -0.214856 +v -1.082927 1.250000 -0.172575 +v -1.065414 1.139515 -0.214856 +v -1.023133 1.093750 -0.316932 +v -0.980852 1.139515 -0.419007 +v -0.963339 1.250000 -0.461288 +v -0.980852 1.360486 -0.419007 +v -1.023133 1.406250 -0.316932 +v -0.882853 1.446566 -0.468769 +v -0.772828 1.450528 -0.515462 +v -0.692228 1.536731 -0.534803 +v -0.688266 1.654678 -0.515462 +v -0.763265 1.735279 -0.468769 +v -0.873290 1.731318 -0.422076 +v -0.953890 1.645115 -0.402735 +v -0.957852 1.527166 -0.422076 +v 0.541848 0.905970 -0.175597 +v 0.616847 0.825370 -0.128904 +v 0.631795 0.861459 -0.128904 +v 0.575547 0.921909 -0.163924 +v 0.726871 0.829330 -0.082211 +v 0.807472 0.915534 -0.062870 +v 0.774764 0.929082 -0.079378 +v 0.714314 0.864429 -0.093884 +v 0.811433 1.033482 -0.082211 +v 0.736435 1.114082 -0.128904 +v 0.721487 1.077993 -0.128904 +v 0.777735 1.017543 -0.093884 +v 0.626410 1.110121 -0.175597 +v 0.638968 1.075022 -0.163924 +v 0.545810 1.023918 -0.194938 +v 0.578518 1.010370 -0.178429 +v 0.706538 1.041904 -0.128904 +v 0.651526 1.039923 -0.152250 +v 0.611225 0.996822 -0.161921 +v 0.609245 0.937848 -0.152250 +v 0.646744 0.897549 -0.128904 +v 0.701756 0.899529 -0.105557 +v 0.742056 0.942630 -0.095887 +v 0.744037 1.001604 -0.105557 +v 0.753332 1.027651 -0.037240 +v 0.697084 1.088100 -0.072260 +v 0.682135 1.052011 -0.072260 +v 0.719634 1.011712 -0.048913 +v 0.614565 1.085131 -0.107280 +v 0.627123 1.050032 -0.095606 +v 0.554115 1.020477 -0.121785 +v 0.586822 1.006929 -0.105277 +v 0.551143 0.932016 -0.107280 +v 0.584842 0.947956 -0.095606 +v 0.607392 0.871567 -0.072260 +v 0.622341 0.907656 -0.072260 +v 0.689911 0.874539 -0.037240 +v 0.677353 0.909636 -0.048913 +v 0.750361 0.939190 -0.022734 +v 0.717653 0.952738 -0.039243 +v 0.485485 1.360485 -0.750000 +v 0.375000 1.406250 -0.750000 +v 0.512294 1.406250 -0.418544 +v 0.590419 1.360485 -0.496669 +v 0.264515 1.360485 -0.750000 +v 0.218750 1.250000 -0.750000 +v 0.401808 1.250000 -0.308058 +v 0.434169 1.360485 -0.340419 +v 0.264515 1.139514 -0.750000 +v 0.375000 1.093750 -0.750000 +v 0.512294 1.093750 -0.418544 +v 0.434169 1.139514 -0.340419 +v 0.485485 1.139514 -0.750000 +v 0.590419 1.139514 -0.496669 +v 0.531250 1.250000 -0.750000 +v 0.622779 1.250000 -0.529029 +v 0.664367 1.093750 -0.316931 +v 0.622086 1.139514 -0.214856 +v 0.604573 1.250000 -0.172575 +v 0.622086 1.360485 -0.214856 +v 0.664367 1.406250 -0.316931 +v 0.706648 1.360485 -0.419007 +v 0.724162 1.250000 -0.461288 +v 0.706648 1.139514 -0.419007 +v 0.843750 1.360485 -0.391735 +v 0.843750 1.250000 -0.437500 +v 0.843750 1.139514 -0.391735 +v 0.843750 1.093750 -0.281250 +v 0.843750 1.139514 -0.170765 +v 0.843750 1.250000 -0.125000 +v 0.843750 1.360485 -0.170765 +v 0.843750 1.406250 -0.281250 +v 1.065414 1.139514 -0.214856 +v 1.082927 1.250000 -0.172575 +v 1.065414 1.360485 -0.214856 +v 1.023133 1.406250 -0.316932 +v 0.980852 1.360485 -0.419007 +v 0.963339 1.250000 -0.461288 +v 0.980852 1.139514 -0.419007 +v 1.023133 1.093750 -0.316932 +v 0.882853 1.053434 -0.468769 +v 0.772828 1.049472 -0.515462 +v 0.692228 0.963269 -0.534803 +v 0.688266 0.845322 -0.515462 +v 0.763265 0.764721 -0.468769 +v 0.873290 0.768682 -0.422076 +v 0.953890 0.854885 -0.402735 +v 0.957852 0.972834 -0.422076 +v -0.626411 1.110122 -0.175597 +v -0.736436 1.114082 -0.128904 +v -0.721487 1.077994 -0.128904 +v -0.638968 1.075022 -0.163924 +v -0.811434 1.033483 -0.082211 +v -0.807472 0.915534 -0.062870 +v -0.774764 0.929083 -0.079378 +v -0.777736 1.017543 -0.093884 +v -0.726871 0.829332 -0.082211 +v -0.616847 0.825370 -0.128904 +v -0.631795 0.861459 -0.128904 +v -0.714314 0.864430 -0.093884 +v -0.541848 0.905971 -0.175597 +v -0.575547 0.921910 -0.163924 +v -0.545810 1.023918 -0.194938 +v -0.578518 1.010370 -0.178429 +v -0.646744 0.897548 -0.128904 +v -0.609246 0.937849 -0.152250 +v -0.611225 0.996822 -0.161921 +v -0.651526 1.039924 -0.152250 +v -0.706538 1.041904 -0.128904 +v -0.744037 1.001604 -0.105557 +v -0.742056 0.942631 -0.095887 +v -0.701756 0.899529 -0.105557 +v -0.689911 0.874538 -0.037240 +v -0.607393 0.871567 -0.072260 +v -0.622341 0.907657 -0.072260 +v -0.677353 0.909637 -0.048913 +v -0.551143 0.932017 -0.107280 +v -0.584842 0.947956 -0.095606 +v -0.554116 1.020479 -0.121785 +v -0.586823 1.006931 -0.105277 +v -0.614565 1.085132 -0.107280 +v -0.627123 1.050032 -0.095606 +v -0.697084 1.088102 -0.072260 +v -0.682136 1.052012 -0.072260 +v -0.753332 1.027651 -0.037240 +v -0.719635 1.011713 -0.048913 +v -0.750361 0.939191 -0.022734 +v -0.717654 0.952739 -0.039243 +v -0.265165 0.828586 -0.750000 +v -0.154680 0.874350 -0.750000 +v -0.251761 0.777268 -0.418544 +v -0.339365 0.754386 -0.496669 +v -0.108916 0.984835 -0.750000 +v -0.154680 1.095320 -0.750000 +v -0.284121 0.965879 -0.308058 +v -0.228879 0.864871 -0.340419 +v -0.265166 1.141085 -0.750000 +v -0.375651 1.095320 -0.750000 +v -0.472732 0.998239 -0.418544 +v -0.385129 1.021122 -0.340419 +v -0.421415 0.984836 -0.750000 +v -0.495615 0.910636 -0.496669 +v -0.375651 0.874350 -0.750000 +v -0.440371 0.809629 -0.529029 +v -0.580264 0.890707 -0.316931 +v -0.518007 0.888244 -0.214856 +v -0.427498 0.822502 -0.172575 +v -0.361757 0.731994 -0.214856 +v -0.359293 0.669736 -0.316931 +v -0.421551 0.672200 -0.419007 +v -0.512060 0.737940 -0.461288 +v -0.577801 0.828450 -0.419007 +v -0.518497 0.575254 -0.391735 +v -0.596621 0.653379 -0.437500 +v -0.674747 0.731504 -0.391735 +v -0.707107 0.763864 -0.281250 +v -0.674747 0.731504 -0.170765 +v -0.596621 0.653379 -0.125000 +v -0.518497 0.575254 -0.170765 +v -0.486136 0.542893 -0.281250 +v -0.831487 0.574764 -0.214856 +v -0.765745 0.484255 -0.172575 +v -0.675237 0.418514 -0.214856 +v -0.612979 0.416050 -0.316932 +v -0.615442 0.478308 -0.419007 +v -0.681184 0.568817 -0.461288 +v -0.771693 0.634558 -0.419007 +v -0.833950 0.637021 -0.316932 +v -0.763264 0.764722 -0.468769 +v -0.688267 0.845323 -0.515462 +v -0.692228 0.963270 -0.534803 +v -0.772828 1.049473 -0.515462 +v -0.882854 1.053434 -0.468769 +v -0.957852 0.972834 -0.422076 +v -0.953891 0.854886 -0.402735 +v -0.873290 0.768683 -0.422076 +v 0.626411 1.389878 -0.175597 +v 0.736436 1.385918 -0.128904 +v 0.721487 1.422006 -0.128904 +v 0.638968 1.424978 -0.163924 +v 0.811434 1.466517 -0.082211 +v 0.807472 1.584466 -0.062870 +v 0.774764 1.570918 -0.079378 +v 0.777736 1.482457 -0.093884 +v 0.726872 1.670668 -0.082211 +v 0.616847 1.674630 -0.128904 +v 0.631796 1.638541 -0.128904 +v 0.714314 1.635570 -0.093884 +v 0.541848 1.594029 -0.175597 +v 0.575547 1.578090 -0.163924 +v 0.545810 1.476082 -0.194938 +v 0.578518 1.489630 -0.178429 +v 0.646744 1.602452 -0.128904 +v 0.609246 1.562152 -0.152250 +v 0.611225 1.503178 -0.161921 +v 0.651526 1.460077 -0.152250 +v 0.706538 1.458097 -0.128904 +v 0.744037 1.498396 -0.105557 +v 0.742057 1.557369 -0.095887 +v 0.701756 1.600471 -0.105557 +v 0.689911 1.625462 -0.037240 +v 0.607393 1.628433 -0.072260 +v 0.622342 1.592343 -0.072260 +v 0.677353 1.590363 -0.048913 +v 0.551144 1.567983 -0.107280 +v 0.584842 1.552044 -0.095606 +v 0.554116 1.479522 -0.121785 +v 0.586823 1.493069 -0.105277 +v 0.614566 1.414869 -0.107280 +v 0.627123 1.449969 -0.095606 +v 0.697084 1.411898 -0.072260 +v 0.682136 1.447988 -0.072260 +v 0.753332 1.472350 -0.037240 +v 0.719635 1.488287 -0.048913 +v 0.750361 1.560810 -0.022734 +v 0.717654 1.547261 -0.039243 +v 0.265165 1.671415 -0.750000 +v 0.154680 1.625651 -0.750000 +v 0.251761 1.722732 -0.418544 +v 0.339365 1.745614 -0.496669 +v 0.108916 1.515165 -0.750000 +v 0.154680 1.404680 -0.750000 +v 0.284121 1.534121 -0.308058 +v 0.228879 1.635129 -0.340419 +v 0.265166 1.358915 -0.750000 +v 0.375651 1.404680 -0.750000 +v 0.472732 1.501761 -0.418544 +v 0.385129 1.478879 -0.340419 +v 0.421415 1.515165 -0.750000 +v 0.495615 1.589364 -0.496669 +v 0.375651 1.625651 -0.750000 +v 0.440371 1.690371 -0.529029 +v 0.580264 1.609293 -0.316931 +v 0.518007 1.611756 -0.214856 +v 0.427498 1.677498 -0.172575 +v 0.361757 1.768006 -0.214856 +v 0.359293 1.830264 -0.316931 +v 0.421551 1.827801 -0.419007 +v 0.512060 1.762060 -0.461288 +v 0.577801 1.671550 -0.419007 +v 0.518497 1.924746 -0.391735 +v 0.596621 1.846622 -0.437500 +v 0.674747 1.768496 -0.391735 +v 0.707107 1.736136 -0.281250 +v 0.674747 1.768496 -0.170765 +v 0.596621 1.846622 -0.125000 +v 0.518497 1.924746 -0.170765 +v 0.486136 1.957107 -0.281250 +v 0.831487 1.925236 -0.214856 +v 0.765745 2.015745 -0.172575 +v 0.675237 2.081486 -0.214856 +v 0.612979 2.083950 -0.316932 +v 0.615442 2.021692 -0.419007 +v 0.681184 1.931184 -0.461288 +v 0.771693 1.865442 -0.419007 +v 0.833950 1.862979 -0.316932 +v 0.763264 1.735279 -0.468769 +v 0.688267 1.654677 -0.515462 +v 0.692229 1.536730 -0.534803 +v 0.772828 1.450527 -0.515462 +v 0.882854 1.446566 -0.468769 +v 0.957852 1.527166 -0.422076 +v 0.953891 1.645114 -0.402735 +v 0.873290 1.731318 -0.422076 +v -0.139878 1.876411 -0.175597 +v -0.135918 1.986436 -0.128904 +v -0.172006 1.971487 -0.128904 +v -0.174978 1.888969 -0.163924 +v -0.216517 2.061434 -0.082211 +v -0.334466 2.057472 -0.062870 +v -0.320918 2.024765 -0.079378 +v -0.232457 2.027736 -0.093884 +v -0.420668 1.976872 -0.082211 +v -0.424630 1.866847 -0.128904 +v -0.388541 1.881796 -0.128904 +v -0.385570 1.964314 -0.093884 +v -0.344029 1.791849 -0.175597 +v -0.328090 1.825547 -0.163924 +v -0.226082 1.795810 -0.194938 +v -0.239630 1.828518 -0.178429 +v -0.352452 1.896744 -0.128904 +v -0.312151 1.859246 -0.152250 +v -0.253178 1.861225 -0.161921 +v -0.210077 1.901526 -0.152250 +v -0.208096 1.956538 -0.128904 +v -0.248396 1.994038 -0.105557 +v -0.307369 1.992057 -0.095887 +v -0.350471 1.951756 -0.105557 +v -0.375462 1.939911 -0.037240 +v -0.378433 1.857393 -0.072260 +v -0.342343 1.872342 -0.072260 +v -0.340363 1.927353 -0.048913 +v -0.317983 1.801144 -0.107280 +v -0.302044 1.834842 -0.095606 +v -0.229521 1.804116 -0.121785 +v -0.243069 1.836823 -0.105277 +v -0.164869 1.864566 -0.107280 +v -0.199968 1.877123 -0.095606 +v -0.161898 1.947084 -0.072260 +v -0.197988 1.932136 -0.072260 +v -0.222349 2.003333 -0.037240 +v -0.238287 1.969635 -0.048913 +v -0.310809 2.000361 -0.022734 +v -0.297261 1.967654 -0.039243 +v -0.421415 1.515165 -0.750000 +v -0.375651 1.404680 -0.750000 +v -0.472732 1.501761 -0.418544 +v -0.495614 1.589365 -0.496669 +v -0.265165 1.358916 -0.750000 +v -0.154680 1.404680 -0.750000 +v -0.284121 1.534121 -0.308058 +v -0.385129 1.478879 -0.340419 +v -0.108915 1.515166 -0.750000 +v -0.154680 1.625651 -0.750000 +v -0.251761 1.722732 -0.418544 +v -0.228879 1.635129 -0.340419 +v -0.265164 1.671415 -0.750000 +v -0.339364 1.745615 -0.496669 +v -0.375651 1.625651 -0.750000 +v -0.440371 1.690372 -0.529029 +v -0.359293 1.830264 -0.316931 +v -0.361756 1.768007 -0.214856 +v -0.427498 1.677498 -0.172575 +v -0.518006 1.611757 -0.214856 +v -0.580264 1.609293 -0.316931 +v -0.577800 1.671551 -0.419007 +v -0.512060 1.762060 -0.461288 +v -0.421550 1.827801 -0.419007 +v -0.674746 1.768497 -0.391735 +v -0.596621 1.846622 -0.437500 +v -0.518496 1.924747 -0.391735 +v -0.486136 1.957107 -0.281250 +v -0.518496 1.924747 -0.170765 +v -0.596621 1.846622 -0.125000 +v -0.674746 1.768497 -0.170765 +v -0.707107 1.736136 -0.281250 +v -0.675236 2.081487 -0.214856 +v -0.765745 2.015745 -0.172575 +v -0.831486 1.925237 -0.214856 +v -0.833950 1.862979 -0.316932 +v -0.771692 1.865443 -0.419007 +v -0.681184 1.931184 -0.461288 +v -0.615442 2.021693 -0.419007 +v -0.612979 2.083950 -0.316932 +v -0.485278 2.013265 -0.468769 +v -0.404677 1.938267 -0.515462 +v -0.286730 1.942229 -0.534803 +v -0.200527 2.022829 -0.515462 +v -0.196566 2.132854 -0.468769 +v -0.277167 2.207852 -0.422076 +v -0.395114 2.203891 -0.402735 +v -0.481318 2.123290 -0.422076 +v 0.139878 0.623589 -0.175597 +v 0.135918 0.513564 -0.128904 +v 0.172006 0.528513 -0.128904 +v 0.174978 0.611032 -0.163924 +v 0.216517 0.438566 -0.082211 +v 0.334466 0.442528 -0.062870 +v 0.320918 0.475236 -0.079378 +v 0.232457 0.472264 -0.093884 +v 0.420668 0.523129 -0.082211 +v 0.424630 0.633153 -0.128904 +v 0.388541 0.618205 -0.128904 +v 0.385570 0.535686 -0.093884 +v 0.344029 0.708152 -0.175597 +v 0.328090 0.674453 -0.163924 +v 0.226082 0.704190 -0.194938 +v 0.239630 0.671482 -0.178429 +v 0.352452 0.603256 -0.128904 +v 0.312151 0.640754 -0.152250 +v 0.253178 0.638775 -0.161921 +v 0.210077 0.598474 -0.152250 +v 0.208096 0.543462 -0.128904 +v 0.248396 0.505963 -0.105557 +v 0.307369 0.507944 -0.095887 +v 0.350471 0.548244 -0.105557 +v 0.375462 0.560089 -0.037240 +v 0.378433 0.642607 -0.072260 +v 0.342343 0.627659 -0.072260 +v 0.340363 0.572647 -0.048913 +v 0.317983 0.698857 -0.107280 +v 0.302044 0.665158 -0.095606 +v 0.229521 0.695884 -0.121785 +v 0.243069 0.663177 -0.105277 +v 0.164869 0.635435 -0.107280 +v 0.199969 0.622877 -0.095606 +v 0.161898 0.552916 -0.072260 +v 0.197988 0.567865 -0.072260 +v 0.222349 0.496668 -0.037240 +v 0.238287 0.530365 -0.048913 +v 0.310809 0.499639 -0.022734 +v 0.297261 0.532347 -0.039243 +v 0.421415 0.984835 -0.750000 +v 0.375651 1.095320 -0.750000 +v 0.472732 0.998239 -0.418544 +v 0.495614 0.910635 -0.496669 +v 0.265165 1.141084 -0.750000 +v 0.154680 1.095320 -0.750000 +v 0.284121 0.965879 -0.308058 +v 0.385129 1.021121 -0.340419 +v 0.108915 0.984834 -0.750000 +v 0.154680 0.874350 -0.750000 +v 0.251761 0.777268 -0.418544 +v 0.228879 0.864871 -0.340419 +v 0.265164 0.828585 -0.750000 +v 0.339364 0.754385 -0.496669 +v 0.375650 0.874350 -0.750000 +v 0.440371 0.809629 -0.529029 +v 0.359293 0.669736 -0.316931 +v 0.361756 0.731993 -0.214856 +v 0.427498 0.822502 -0.172575 +v 0.518006 0.888243 -0.214856 +v 0.580264 0.890707 -0.316931 +v 0.577800 0.828449 -0.419007 +v 0.512060 0.737940 -0.461288 +v 0.421550 0.672199 -0.419007 +v 0.674746 0.731503 -0.391735 +v 0.596621 0.653379 -0.437500 +v 0.518496 0.575253 -0.391735 +v 0.486136 0.542893 -0.281250 +v 0.518496 0.575253 -0.170765 +v 0.596621 0.653379 -0.125000 +v 0.674746 0.731503 -0.170765 +v 0.707107 0.763864 -0.281250 +v 0.675236 0.418513 -0.214856 +v 0.765745 0.484255 -0.172575 +v 0.831486 0.574763 -0.214856 +v 0.833950 0.637021 -0.316932 +v 0.771692 0.634558 -0.419007 +v 0.681184 0.568816 -0.461288 +v 0.615442 0.478308 -0.419007 +v 0.612979 0.416050 -0.316932 +v 0.485278 0.486736 -0.468769 +v 0.404677 0.561733 -0.515462 +v 0.286730 0.557772 -0.534803 +v 0.200527 0.477172 -0.515462 +v 0.196566 0.367146 -0.468769 +v 0.277166 0.292148 -0.422076 +v 0.395114 0.296109 -0.402735 +v 0.481317 0.376710 -0.422076 +v 0.391169 2.232164 0.136894 +v 0.014465 2.307096 0.136894 +v 0.014465 2.197720 -0.081856 +v 0.349313 2.131115 -0.081856 +v 0.025414 2.252758 -0.109375 +v 0.360261 2.186152 -0.109375 +v 0.025414 2.362132 0.109375 +v 0.402117 2.287201 0.109375 +v -0.982164 1.641169 0.136894 +v -1.057095 1.264466 0.136894 +v -0.947720 1.264466 -0.081856 +v -0.881115 1.599313 -0.081856 +v -1.002758 1.275414 -0.109375 +v -0.936152 1.610261 -0.109375 +v -1.112132 1.275414 0.109375 +v -1.037201 1.652117 0.109375 +v 0.982164 0.858831 0.136894 +v 1.057095 1.235535 0.136894 +v 0.947720 1.235535 -0.081856 +v 0.881115 0.900687 -0.081856 +v 1.002758 1.224586 -0.109375 +v 0.936152 0.889739 -0.109375 +v 1.112132 1.224586 0.109375 +v 1.037201 0.847883 0.109375 +v -0.971093 0.832103 0.136894 +v -0.757708 0.512749 0.136894 +v -0.680368 0.590089 -0.081856 +v -0.870044 0.873959 -0.081856 +v -0.727027 0.558913 -0.109375 +v -0.916702 0.842784 -0.109375 +v -0.804366 0.481574 0.109375 +v -1.017751 0.800928 0.109375 +v 0.971093 1.667897 0.136894 +v 0.757708 1.987251 0.136894 +v 0.680368 1.909911 -0.081856 +v 0.870044 1.626041 -0.081856 +v 0.727027 1.941087 -0.109375 +v 0.916703 1.657217 -0.109375 +v 0.804366 2.018426 0.109375 +v 1.017752 1.699073 0.109375 +v -0.417897 2.221093 0.136894 +v -0.737251 2.007708 0.136894 +v -0.659911 1.930368 -0.081856 +v -0.376041 2.120044 -0.081856 +v -0.691087 1.977027 -0.109375 +v -0.407216 2.166703 -0.109375 +v -0.768426 2.054366 0.109375 +v -0.449072 2.267752 0.109375 +v 0.417897 0.278907 0.136894 +v 0.737251 0.492292 0.136894 +v 0.659911 0.569632 -0.081856 +v 0.376041 0.379956 -0.081856 +v 0.691087 0.522973 -0.109375 +v 0.407216 0.333298 -0.109375 +v 0.768426 0.445634 0.109375 +v 0.449072 0.232249 0.109375 +v -0.737251 0.492293 0.136894 +v -0.417897 0.278907 0.136894 +v -0.376041 0.379957 -0.081856 +v -0.659911 0.569632 -0.081856 +v -0.407218 0.333298 -0.109375 +v -0.691088 0.522974 -0.109375 +v -0.449074 0.232249 0.109375 +v -0.768427 0.445635 0.109375 +v 0.737251 2.007708 0.136894 +v 0.417897 2.221093 0.136894 +v 0.376041 2.120044 -0.081856 +v 0.659911 1.930368 -0.081856 +v 0.407218 2.166703 -0.109375 +v 0.691088 1.977026 -0.109375 +v 0.449074 2.267751 0.109375 +v 0.768427 2.054366 0.109375 +v -0.757708 1.987251 0.136894 +v -0.971093 1.667897 0.136894 +v -0.870044 1.626041 -0.081856 +v -0.680368 1.909911 -0.081856 +v -0.916702 1.657218 -0.109375 +v -0.727026 1.941088 -0.109375 +v -1.017751 1.699074 0.109375 +v -0.804365 2.018427 0.109375 +v 0.757708 0.512749 0.136894 +v 0.971093 0.832103 0.136894 +v 0.870044 0.873959 -0.081856 +v 0.680368 0.590089 -0.081856 +v 0.916702 0.842782 -0.109375 +v 0.727026 0.558912 -0.109375 +v 1.017751 0.800926 0.109375 +v 0.804366 0.481573 0.109375 +v -1.057095 1.235535 0.136894 +v -0.982164 0.858832 0.136894 +v -0.881115 0.900688 -0.081856 +v -0.947720 1.235535 -0.081856 +v -0.936153 0.889740 -0.109375 +v -1.002758 1.224588 -0.109375 +v -1.037201 0.847885 0.109375 +v -1.112132 1.224588 0.109375 +v 1.057095 1.264465 0.136894 +v 0.982164 1.641169 0.136894 +v 0.881115 1.599313 -0.081856 +v 0.947720 1.264465 -0.081856 +v 0.936153 1.610260 -0.109375 +v 1.002758 1.275412 -0.109375 +v 1.037202 1.652116 0.109375 +v 1.112132 1.275412 0.109375 +v -0.014465 2.307096 0.136894 +v -0.391168 2.232164 0.136894 +v -0.349312 2.131115 -0.081856 +v -0.014465 2.197721 -0.081856 +v -0.360260 2.186153 -0.109375 +v -0.025412 2.252758 -0.109375 +v -0.402115 2.287201 0.109375 +v -0.025412 2.362133 0.109375 +v 0.014465 0.192905 0.136894 +v 0.391169 0.267836 0.136894 +v 0.349312 0.368885 -0.081856 +v 0.014465 0.302280 -0.081856 +v 0.360260 0.313847 -0.109375 +v 0.025412 0.247242 -0.109375 +v 0.402115 0.212799 0.109375 +v 0.025412 0.137868 0.109375 +v 0.375000 2.500000 -1.875000 +v 0.375000 2.500000 -0.875000 +v -0.375000 2.500000 -1.875000 +v -0.375000 2.500000 -0.875000 +v 0.375000 2.250000 -1.875000 +v 0.375000 2.250000 -0.875000 +v -0.375000 2.250000 -1.875000 +v -0.375000 2.250000 -0.875000 +v 0.000000 2.500000 -1.875000 +v -0.088388 2.463388 -1.875000 +v -0.125000 2.375000 -1.875000 +v 0.125000 2.375000 -1.875000 +v 0.088388 2.463388 -1.875000 +v 0.000000 2.500000 -1.125000 +v -0.088388 2.463388 -1.125000 +v -0.125000 2.375000 -1.125000 +v 0.125000 2.375000 -1.125000 +v 0.088388 2.463388 -1.125000 +v 0.000000 2.426777 -0.948223 +v -0.088388 2.400888 -0.974111 +v -0.125000 2.338388 -1.036612 +v 0.125000 2.338388 -1.036612 +v 0.088388 2.400888 -0.974111 +v 0.000000 2.250000 -0.875000 +v -0.088388 2.250000 -0.911611 +v -0.125000 2.250000 -1.000000 +v 0.125000 2.250000 -1.000000 +v 0.088388 2.250000 -0.911611 +v 0.250000 2.500000 -1.875000 +v 0.161612 2.463388 -1.875000 +v 0.125000 2.375000 -1.875000 +v 0.375000 2.375000 -1.875000 +v 0.338388 2.463388 -1.875000 +v 0.250000 2.500000 -1.125000 +v 0.161612 2.463388 -1.125000 +v 0.125000 2.375000 -1.125000 +v 0.375000 2.375000 -1.125000 +v 0.338388 2.463388 -1.125000 +v 0.250000 2.426777 -0.948223 +v 0.161612 2.400888 -0.974111 +v 0.125000 2.338388 -1.036612 +v 0.375000 2.338388 -1.036612 +v 0.338388 2.400888 -0.974111 +v 0.250000 2.250000 -0.875000 +v 0.161612 2.250000 -0.911611 +v 0.125000 2.250000 -1.000000 +v 0.375000 2.250000 -1.000000 +v 0.338388 2.250000 -0.911611 +v -0.250000 2.500000 -1.875000 +v -0.338388 2.463388 -1.875000 +v -0.375000 2.375000 -1.875000 +v -0.125000 2.375000 -1.875000 +v -0.161612 2.463388 -1.875000 +v -0.250000 2.500000 -1.125000 +v -0.338388 2.463388 -1.125000 +v -0.375000 2.375000 -1.125000 +v -0.125000 2.375000 -1.125000 +v -0.161612 2.463388 -1.125000 +v -0.250000 2.426777 -0.948223 +v -0.338388 2.400888 -0.974111 +v -0.375000 2.338388 -1.036612 +v -0.125000 2.338388 -1.036612 +v -0.161612 2.400888 -0.974111 +v -0.250000 2.250000 -0.875000 +v -0.338388 2.250000 -0.911611 +v -0.375000 2.250000 -1.000000 +v -0.125000 2.250000 -1.000000 +v -0.161612 2.250000 -0.911611 +v -0.536612 2.286612 -0.875000 +v -1.036612 1.786612 -0.875000 +v 0.375000 2.375000 -0.875000 +v -0.375000 2.375000 -0.875000 +v 0.536612 2.286612 -0.875000 +v 1.036612 1.786612 -0.875000 +v -0.625000 2.375000 -0.625000 +v -1.125000 1.875000 -0.625000 +v 1.125000 1.875000 -0.625000 +v 0.625000 2.375000 -0.625000 +v 0.375000 2.500000 -0.625000 +v -0.375000 2.500000 -0.625000 +v -0.536612 2.286612 -0.625000 +v -1.036612 1.786612 -0.625000 +v 0.375000 2.375000 -0.625000 +v -0.375000 2.375000 -0.625000 +v 0.536612 2.286612 -0.625000 +v 1.036612 1.786612 -0.625000 +v 1.125000 1.875000 -0.875000 +v 0.625000 2.375000 -0.875000 +v 1.125000 1.875000 -0.625000 +v 0.625000 2.375000 -0.625000 +v 0.375000 2.500000 -0.875000 +v -0.375000 2.500000 -0.875000 +v 0.375000 2.500000 -0.625000 +v -0.375000 2.500000 -0.625000 +v -0.625000 2.375000 -0.875000 +v -1.125000 1.875000 -0.875000 +v -0.625000 2.375000 -0.625000 +v -1.125000 1.875000 -0.625000 +v -0.430519 2.289364 -0.625000 +v 0.430518 2.289365 -0.625000 +v -0.500000 -0.000000 0.125000 +v -0.500000 0.000000 -0.375000 +v 0.500000 0.000000 -0.375000 +v 0.500000 -0.000000 0.125000 +v -0.500000 2.500000 0.125000 +v 0.500000 2.500000 0.125000 +v 0.500000 2.500000 -0.375000 +v -0.500000 2.500000 -0.375000 +v -1.250000 1.750000 0.125000 +v -1.250000 1.750000 -0.375000 +v -1.250000 0.750000 -0.375000 +v -1.250000 0.750000 0.125000 +v 1.250000 1.750000 0.125000 +v 1.250000 0.750000 0.125000 +v 1.250000 0.750000 -0.375000 +v 1.250000 1.750000 -0.375000 +v 1.039364 1.680519 0.125000 +v 1.125000 1.250000 0.125000 +v 1.039364 0.819481 0.125000 +v 0.430518 2.289365 0.125000 +v 0.795495 2.045496 0.125000 +v -0.430519 2.289364 0.125000 +v 0.000000 2.375000 0.125000 +v -1.039364 1.680519 0.125000 +v -0.795495 2.045495 0.125000 +v -1.039364 0.819481 0.125000 +v -1.125000 1.250000 0.125000 +v -0.430519 0.210636 0.125000 +v -0.795495 0.454505 0.125000 +v 0.430519 0.210635 0.125000 +v 0.000000 0.125000 0.125000 +v 0.795495 0.454505 0.125000 +v -0.191341 1.711940 -0.750000 +v -0.353553 1.603553 -0.750000 +v -0.461940 1.441342 -0.750000 +v -0.500000 1.250000 -0.750000 +v -0.461940 1.058658 -0.750000 +v -0.353553 0.896447 -0.750000 +v -0.191341 0.788060 -0.750000 +v 0.000000 0.750000 -0.750000 +v 0.191341 0.788060 -0.750000 +v 0.353553 0.896446 -0.750000 +v 0.461940 1.058658 -0.750000 +v 0.500000 1.250000 -0.750000 +v 0.461940 1.441342 -0.750000 +v 0.353553 1.603554 -0.750000 +v 0.191341 1.711940 -0.750000 +v 0.000000 1.750000 -0.750000 +v 1.039364 1.680519 -0.375000 +v 0.795495 2.045496 -0.375000 +v 0.430518 2.289365 -0.375000 +v 1.039364 0.819481 -0.375000 +v 1.125000 1.250000 -0.375000 +v 0.430519 0.210635 -0.375000 +v 0.795495 0.454505 -0.375000 +v -0.430519 0.210636 -0.375000 +v 0.000000 0.125000 -0.375000 +v -1.039364 0.819481 -0.375000 +v -0.795495 0.454505 -0.375000 +v -1.039364 1.680519 -0.375000 +v -1.125000 1.250000 -0.375000 +v -0.430519 2.289364 -0.375000 +v -0.795495 2.045495 -0.375000 +v 0.000000 2.375000 -0.375000 +v -0.430519 2.289364 -0.625000 +v 0.000000 2.375000 -0.625000 +v 0.430518 2.289365 -0.625000 +v 0.795495 2.045496 -0.625000 +v 1.039364 1.680519 -0.625000 +v 1.125000 1.250000 -0.625000 +v 1.039364 0.819481 -0.625000 +v 0.795495 0.454505 -0.625000 +v 0.430519 0.210635 -0.625000 +v 0.000000 0.125000 -0.625000 +v -0.430519 0.210636 -0.625000 +v -0.795495 0.454505 -0.625000 +v -1.039364 0.819481 -0.625000 +v -1.125000 1.250000 -0.625000 +v -1.039364 1.680519 -0.625000 +v -0.795495 2.045495 -0.625000 +v -0.382683 2.173880 -0.125000 +v 0.000000 2.250000 -0.125000 +v 0.382683 2.173880 -0.125000 +v 0.707106 1.957107 -0.125000 +v 0.923880 1.632684 -0.125000 +v 1.000000 1.250000 -0.125000 +v 0.923880 0.867316 -0.125000 +v 0.707106 0.542893 -0.125000 +v 0.382683 0.326120 -0.125000 +v 0.000000 0.250000 -0.125000 +v -0.382684 0.326120 -0.125000 +v -0.707108 0.542893 -0.125000 +v -0.923880 0.867316 -0.125000 +v -1.000000 1.250000 -0.125000 +v -0.923880 1.632683 -0.125000 +v -0.707108 1.957107 -0.125000 +v -0.382683 2.173880 -0.500000 +v 0.000000 2.250000 -0.500000 +v 0.382683 2.173880 -0.500000 +v 0.382683 0.326120 -0.500000 +v 0.000000 0.250000 -0.500000 +v -0.707108 1.957107 -0.500000 +v 0.707106 0.542893 -0.500000 +v -0.923880 1.632683 -0.500000 +v 0.923880 0.867316 -0.500000 +v -1.000000 1.250000 -0.500000 +v 1.000000 1.250000 -0.500000 +v -0.923880 0.867316 -0.500000 +v 0.923880 1.632684 -0.500000 +v -0.707108 0.542893 -0.500000 +v 0.707106 1.957107 -0.500000 +v -0.382684 0.326120 -0.500000 +vt 0.662069 0.796875 +vt 0.662069 0.875000 +vt 0.551724 0.875000 +vt 0.634483 0.218750 +vt 0.724138 0.250000 +vt 0.551724 0.250000 +vt 0.724138 0.359375 +vt 0.703448 0.375000 +vt 0.606897 -0.000000 +vt 0.551724 0.125000 +vt 0.551724 -0.000000 +vt 0.634483 0.906250 +vt 0.606897 1.000000 +vt 0.413793 0.062500 +vt 0.441379 0.250000 +vt 0.413793 0.187500 +vt 0.682759 0.406250 +vt 0.703448 0.406250 +vt 0.724138 0.875000 +vt 0.717241 0.796875 +vt 0.724138 0.765625 +vt 0.682759 0.750000 +vt 0.717241 0.906250 +vt 0.717241 0.875000 +vt 0.324138 0.796875 +vt 0.282759 0.812500 +vt 0.282759 0.796875 +vt 0.324138 0.828125 +vt 0.282759 0.843750 +vt 0.282759 0.828125 +vt 0.324138 0.859375 +vt 0.282759 0.875000 +vt 0.282759 0.859375 +vt 0.282759 0.890625 +vt 0.331034 0.906250 +vt 0.275862 0.906250 +vt 0.331034 0.765625 +vt 0.282759 0.781250 +vt 0.275862 0.765625 +vt 0.324138 0.812500 +vt 0.282759 1.000000 +vt 0.324138 0.984375 +vt 0.324138 1.000000 +vt 0.275862 0.968750 +vt 0.282759 0.984375 +vt 0.275862 0.984375 +vt 0.324138 0.953125 +vt 0.282759 0.968750 +vt 0.282759 0.953125 +vt 0.275862 0.968750 +vt 0.282759 0.984375 +vt 0.275862 0.984375 +vt 0.282759 0.968750 +vt 0.324138 0.984375 +vt 0.282759 0.984375 +vt 0.324138 0.968750 +vt 0.282759 0.968750 +vt 0.324138 0.984375 +vt 0.324138 0.968750 +vt 0.282759 0.984375 +vt 0.282759 0.968750 +vt 0.275862 0.968750 +vt 0.275862 0.984375 +vt 0.324138 0.953125 +vt 0.282759 0.953125 +vt 0.331034 0.984375 +vt 0.324138 0.968750 +vt 0.331034 0.968750 +vt 0.282759 1.000000 +vt 0.324138 1.000000 +vt 0.331034 0.984375 +vt 0.331034 0.968750 +vt 0.324138 0.953125 +vt 0.282759 0.953125 +vt 0.331034 0.984375 +vt 0.324138 0.968750 +vt 0.331034 0.968750 +vt 0.282759 1.000000 +vt 0.324138 1.000000 +vt 0.331034 0.984375 +vt 0.331034 0.968750 +vt 0.324138 0.953125 +vt 0.282759 0.953125 +vt 0.275862 0.968750 +vt 0.275862 0.984375 +vt 0.282759 1.000000 +vt 0.324138 0.984375 +vt 0.324138 1.000000 +vt 0.737931 0.359375 +vt 0.737931 0.218750 +vt 0.737931 0.250000 +vt 0.737931 0.875000 +vt 0.737931 0.906250 +vt 0.724138 0.375000 +vt 0.724138 0.718750 +vt 0.703448 0.750000 +vt 0.703448 0.718750 +vt 0.682759 0.718750 +vt 0.662069 0.500000 +vt 0.675862 0.625000 +vt 0.662069 0.625000 +vt 0.696552 0.421875 +vt 0.675862 0.500000 +vt 0.696552 0.703125 +vt 0.151724 0.046875 +vt 0.158621 0.062500 +vt 0.151724 0.062500 +vt 0.172414 0.046875 +vt 0.165517 0.062500 +vt 0.165517 0.046875 +vt 0.179310 0.046875 +vt 0.186207 0.062500 +vt 0.179310 0.062500 +vt 0.186207 0.046875 +vt 0.193103 0.062500 +vt 0.144828 0.046875 +vt 0.144828 0.062500 +vt 0.158621 0.046875 +vt 0.172414 0.062500 +vt 0.193103 0.046875 +vt 0.200000 0.062500 +vt 0.170248 0.114281 +vt 0.170248 0.135718 +vt 0.160786 0.135718 +vt 0.186207 0.078125 +vt 0.179310 0.093750 +vt 0.179310 0.078125 +vt 0.193103 0.093750 +vt 0.186207 0.093750 +vt 0.200000 0.078125 +vt 0.193103 0.078125 +vt 0.151724 0.078125 +vt 0.144828 0.093750 +vt 0.144828 0.078125 +vt 0.158621 0.078125 +vt 0.151724 0.093750 +vt 0.165517 0.093750 +vt 0.158621 0.093750 +vt 0.165517 0.078125 +vt 0.172414 0.093750 +vt 0.172414 0.078125 +vt 0.117241 0.296875 +vt 0.096552 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.343750 +vt 0.117241 0.328125 +vt 0.124138 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.310345 0.031250 +vt 0.296552 0.046875 +vt 0.296552 0.031250 +vt 0.268584 0.103261 +vt 0.268584 0.115489 +vt 0.264768 0.124136 +vt 0.282759 0.046875 +vt 0.282759 0.031250 +vt 0.268966 0.031250 +vt 0.275862 0.046875 +vt 0.268966 0.046875 +vt 0.255172 0.046875 +vt 0.255172 0.031250 +vt 0.365517 0.031250 +vt 0.351724 0.046875 +vt 0.351724 0.031250 +vt 0.337931 0.046875 +vt 0.337931 0.031250 +vt 0.324138 0.031250 +vt 0.331034 0.046875 +vt 0.324138 0.046875 +vt 0.310345 0.046875 +vt 0.296552 0.078125 +vt 0.303448 0.062500 +vt 0.303448 0.078125 +vt 0.282759 0.078125 +vt 0.289655 0.062500 +vt 0.289655 0.078125 +vt 0.268966 0.062500 +vt 0.275862 0.078125 +vt 0.268966 0.078125 +vt 0.255172 0.062500 +vt 0.262069 0.078125 +vt 0.255172 0.078125 +vt 0.351724 0.062500 +vt 0.358621 0.078125 +vt 0.351724 0.078125 +vt 0.337931 0.078125 +vt 0.344828 0.062500 +vt 0.344828 0.078125 +vt 0.324138 0.078125 +vt 0.331034 0.062500 +vt 0.331034 0.078125 +vt 0.310345 0.078125 +vt 0.317241 0.062500 +vt 0.317241 0.078125 +vt 0.020690 0.781250 +vt 0.013793 0.875000 +vt 0.013793 0.781250 +vt 0.213793 0.781250 +vt 0.227586 0.875000 +vt 0.213793 0.875000 +vt 0.510209 0.406422 +vt 0.506394 0.432721 +vt 0.482676 0.422118 +vt 0.455123 0.406613 +vt 0.458988 0.432863 +vt 0.438078 0.465736 +vt 0.414116 0.500678 +vt 0.425220 0.509148 +vt 0.420595 0.561221 +vt 0.413934 0.622365 +vt 0.425067 0.614088 +vt 0.437826 0.657998 +vt 0.454859 0.718112 +vt 0.458836 0.691761 +vt 0.482625 0.702699 +vt 0.455172 0.609375 +vt 0.441379 0.515625 +vt 0.455172 0.515625 +vt 0.848515 0.125000 +vt 0.903448 0.000542 +vt 0.958382 0.125000 +vt 0.351724 0.906250 +vt 0.331034 0.718750 +vt 0.255172 0.765625 +vt 0.275862 0.953125 +vt 0.848515 0.375000 +vt 0.903448 0.250541 +vt 0.958382 0.375000 +vt 0.737931 0.375000 +vt 0.848276 0.281250 +vt 0.848276 0.375000 +vt 0.737931 0.187500 +vt 0.848276 0.093750 +vt 0.848276 0.187500 +vt 0.737931 0.562500 +vt 0.848276 0.468750 +vt 0.848276 0.562500 +vt 0.737931 0.281250 +vt 0.737931 0.093750 +vt 0.848276 -0.000000 +vt 0.737931 0.656250 +vt 0.848276 0.656250 +vt 0.737931 0.468750 +vt 0.262069 0.140625 +vt 0.268966 0.171875 +vt 0.262069 0.171875 +vt 0.296552 0.171875 +vt 0.303448 0.140625 +vt 0.303448 0.171875 +vt 0.268966 0.125000 +vt 0.296552 0.140625 +vt 0.268966 0.140625 +vt 0.296552 0.187500 +vt 0.268966 0.187500 +vt 0.268966 0.093750 +vt 0.296552 0.125000 +vt 0.303448 0.171875 +vt 0.296552 0.140625 +vt 0.303448 0.140625 +vt 0.268966 0.140625 +vt 0.262069 0.171875 +vt 0.262069 0.140625 +vt 0.296552 0.187500 +vt 0.268966 0.171875 +vt 0.296552 0.171875 +vt 0.268966 0.125000 +vt 0.296552 0.125000 +vt 0.268966 0.093750 +vt 0.296552 0.093750 +vt 0.262069 0.171875 +vt 0.268966 0.140625 +vt 0.268966 0.171875 +vt 0.303448 0.171875 +vt 0.296552 0.140625 +vt 0.303448 0.140625 +vt 0.268966 0.125000 +vt 0.296552 0.187500 +vt 0.268966 0.187500 +vt 0.296552 0.171875 +vt 0.268966 0.093750 +vt 0.296552 0.125000 +vt 0.303448 0.140625 +vt 0.296552 0.171875 +vt 0.296552 0.140625 +vt 0.262069 0.140625 +vt 0.268966 0.171875 +vt 0.262069 0.171875 +vt 0.296552 0.187500 +vt 0.268966 0.125000 +vt 0.296552 0.125000 +vt 0.268966 0.140625 +vt 0.268966 0.093750 +vt 0.296552 0.093750 +vt 0.317241 0.140625 +vt 0.324138 0.171875 +vt 0.317241 0.171875 +vt 0.344828 0.171875 +vt 0.358621 0.187500 +vt 0.344828 0.187500 +vt 0.324138 0.125000 +vt 0.351724 0.140625 +vt 0.324138 0.140625 +vt 0.324138 0.187500 +vt 0.344828 0.093750 +vt 0.351724 0.125000 +vt 0.696552 0.625000 +vt 0.703448 0.687500 +vt 0.696552 0.687500 +vt 0.696552 0.500000 +vt 0.703448 0.437500 +vt 0.703448 0.500000 +vt 0.703448 0.625000 +vt 0.731034 0.687500 +vt 0.413793 0.859375 +vt 0.420690 0.914062 +vt 0.413793 0.914062 +vt 0.475862 0.914062 +vt 0.482759 0.859375 +vt 0.482759 0.914062 +vt 0.431034 0.937500 +vt 0.475862 0.859375 +vt 0.465517 0.937500 +vt 0.431034 0.953125 +vt 0.479310 0.937500 +vt 0.465517 0.953125 +vt 0.417241 0.937500 +vt 0.417241 0.953125 +vt 0.441379 -0.000000 +vt 0.468966 0.250000 +vt 0.255172 0.343750 +vt 0.337931 0.312500 +vt 0.337931 0.343750 +vt 0.363190 0.328752 +vt 0.351724 0.373746 +vt 0.340258 0.328752 +vt 0.255172 0.312500 +vt 0.337931 0.281250 +vt 0.255172 0.281250 +vt 0.337931 0.250000 +vt 0.363190 0.296248 +vt 0.351724 0.311246 +vt 0.340258 0.296248 +vt 0.868966 0.625000 +vt 0.924138 0.500000 +vt 0.924138 0.625000 +vt 0.848276 0.500000 +vt 0.868966 0.500000 +vt 0.944828 0.625000 +vt 0.834483 0.906250 +vt 0.765517 0.718750 +vt 0.834483 0.718750 +vt 0.737931 0.718750 +vt 0.765517 0.906250 +vt 0.737931 0.906250 +vt 0.862069 0.906250 +vt 0.862069 0.718750 +vt 0.765517 0.968750 +vt 0.834483 0.968750 +vt 0.834483 0.656250 +vt 0.765517 0.656250 +vt 0.903448 0.875000 +vt 0.958621 0.718750 +vt 0.958621 0.875000 +vt 0.958621 0.625000 +vt 0.903448 0.718750 +vt 0.903448 0.625000 +vt 0.903448 0.968750 +vt 0.958621 0.968750 +vt 0.862069 0.718750 +vt 0.862069 0.875000 +vt 1.000000 0.875000 +vt 1.000000 0.718750 +vt 0.958621 0.187500 +vt 0.986207 0.156250 +vt 0.986207 0.187500 +vt 0.958621 0.062500 +vt 0.986207 0.031250 +vt 0.986207 0.062500 +vt 0.958621 0.125000 +vt 0.986207 0.093750 +vt 0.986207 0.125000 +vt 0.958621 0.156250 +vt 0.958621 0.031250 +vt 0.986207 0.000000 +vt 0.958621 0.093750 +vt 0.965937 0.193335 +vt 0.978890 0.193335 +vt 0.985367 0.218750 +vt 0.737931 0.109375 +vt 0.724138 0.093750 +vt 0.737931 0.093750 +vt 0.737931 0.015625 +vt 0.724138 0.000000 +vt 0.737931 0.000000 +vt 0.737931 0.140625 +vt 0.724138 0.125000 +vt 0.737931 0.125000 +vt 0.737931 0.078125 +vt 0.724138 0.062500 +vt 0.737931 0.062500 +vt 0.737931 0.046875 +vt 0.724138 0.031250 +vt 0.737931 0.031250 +vt 0.737931 0.171875 +vt 0.724138 0.156250 +vt 0.737931 0.156250 +vt 0.724138 0.015625 +vt 0.717241 0.000000 +vt 0.717241 0.156250 +vt 0.717241 0.125000 +vt 0.724138 0.078125 +vt 0.717241 0.062500 +vt 0.717241 0.031250 +vt 0.724138 0.171875 +vt 0.724138 0.109375 +vt 0.717241 0.093750 +vt 0.675862 0.031250 +vt 0.717241 0.187500 +vt 0.675862 0.156250 +vt 0.675862 0.093750 +vt 0.675862 0.000000 +vt 0.675862 0.125000 +vt 0.675862 0.062500 +vt 0.668966 0.125000 +vt 0.668966 0.093750 +vt 0.668966 0.078125 +vt 0.668966 0.062500 +vt 0.668966 0.031250 +vt 0.668966 0.000000 +vt 0.668966 0.171875 +vt 0.668966 0.156250 +vt 0.655172 0.156250 +vt 0.668966 0.109375 +vt 0.655172 0.093750 +vt 0.668966 0.015625 +vt 0.655172 0.000000 +vt 0.668966 0.140625 +vt 0.655172 0.125000 +vt 0.655172 0.062500 +vt 0.668966 0.046875 +vt 0.655172 0.031250 +vt 0.655172 0.140625 +vt 0.648276 0.125000 +vt 0.655172 0.109375 +vt 0.648276 0.093750 +vt 0.648276 0.062500 +vt 0.655172 0.046875 +vt 0.648276 0.031250 +vt 0.655172 0.015625 +vt 0.648276 0.000000 +vt 0.648276 0.187500 +vt 0.648276 0.156250 +vt 0.641379 0.093750 +vt 0.641379 -0.000000 +vt 0.641379 0.125000 +vt 0.641379 0.062500 +vt 0.641379 0.031250 +vt 0.641379 0.156250 +vt 0.634483 0.062500 +vt 0.634483 0.031250 +vt 0.634483 0.171875 +vt 0.634483 0.156250 +vt 0.634483 0.093750 +vt 0.634483 0.000000 +vt 0.634483 0.140625 +vt 0.634483 0.125000 +vt 0.624290 0.002689 +vt 0.630883 0.002689 +vt 0.634179 0.015625 +vt 0.489655 0.156250 +vt 0.510345 0.046875 +vt 0.510345 0.156250 +vt 0.434483 0.812500 +vt 0.413793 0.765625 +vt 0.420690 0.750000 +vt 0.489655 0.046875 +vt 0.510345 0.000000 +vt 0.468966 0.046875 +vt 0.531034 0.156250 +vt 0.496552 0.187500 +vt 0.468966 0.156250 +vt 0.496552 0.156250 +vt 0.496552 0.312500 +vt 0.468966 0.265625 +vt 0.496552 0.265625 +vt 0.468966 0.234375 +vt 0.496552 0.234375 +vt 0.468966 0.187500 +vt 0.434483 0.750000 +vt 0.455172 0.812500 +vt 0.496552 0.765625 +vt 0.475862 0.750000 +vt 0.496552 0.750000 +vt 0.455172 0.750000 +vt 0.468966 0.750000 +vt 0.475862 0.765625 +vt 0.434483 0.859375 +vt 0.475862 0.812500 +vt 0.496552 0.812500 +vt 0.455172 0.718750 +vt 0.537931 0.828125 +vt 0.524138 0.812500 +vt 0.537931 0.812500 +vt 0.503448 0.718750 +vt 0.517241 0.812500 +vt 0.503448 0.812500 +vt 0.537931 0.718750 +vt 0.524138 0.718750 +vt 0.517241 0.718750 +vt 0.496552 0.812500 +vt 0.496552 0.718750 +vt 0.986207 0.609375 +vt 0.979310 0.593750 +vt 0.986207 0.593750 +vt 0.979310 0.531250 +vt 0.986207 0.515625 +vt 0.986207 0.531250 +vt 0.972414 0.593750 +vt 0.979310 0.578125 +vt 0.551724 0.625000 +vt 0.620690 0.609375 +vt 0.620690 0.734375 +vt 0.620690 0.640625 +vt 0.634483 0.640625 +vt 0.020690 0.875000 +vt 0.006897 0.781250 +vt 0.020690 0.781250 +vt 0.662069 0.734375 +vt 0.648276 0.640625 +vt 0.565517 0.640625 +vt 0.551724 0.625000 +vt 0.565517 0.625000 +vt 0.606897 0.390625 +vt 0.551724 0.375000 +vt 0.662069 0.375000 +vt 0.620690 0.484375 +vt 0.551724 0.500000 +vt 0.117241 0.906250 +vt 0.075862 0.875000 +vt 0.117241 0.875000 +vt 0.158621 0.125000 +vt 0.117241 0.156250 +vt 0.117241 0.125000 +vt 0.117241 0.906250 +vt 0.158621 0.875000 +vt 0.158621 0.906250 +vt 0.144828 0.250000 +vt 0.131034 0.250000 +vt 0.213793 0.875000 +vt 0.220690 0.781250 +vt 0.220690 0.875000 +vt 0.062069 0.781250 +vt 0.020690 0.875000 +vt 0.144828 0.281250 +vt 0.186207 0.250000 +vt 0.186207 0.281250 +vt 0.213793 0.765625 +vt 0.172414 0.781250 +vt 0.172414 0.750000 +vt 0.131034 0.281250 +vt 0.089655 0.250000 +vt 0.075862 0.906250 +vt 0.020690 0.906250 +vt 0.020690 0.890625 +vt 0.020690 0.765625 +vt 0.020690 0.750000 +vt 0.062069 0.750000 +vt 0.544828 0.203125 +vt 0.551724 0.250000 +vt 0.544828 0.250000 +vt 0.531034 0.203125 +vt 0.524138 0.250000 +vt 0.524138 0.203125 +vt 0.510345 0.203125 +vt 0.503448 0.250000 +vt 0.503448 0.203125 +vt 0.537931 0.250000 +vt 0.537931 0.203125 +vt 0.510345 0.296875 +vt 0.503448 0.296875 +vt 0.531034 0.250000 +vt 0.524138 0.296875 +vt 0.531034 0.203125 +vt 0.531034 0.187500 +vt 0.537931 0.187500 +vt 0.544828 0.187500 +vt 0.551724 0.187500 +vt 0.551724 0.203125 +vt 0.503448 0.203125 +vt 0.503448 0.187500 +vt 0.510345 0.187500 +vt 0.517241 0.187500 +vt 0.524138 0.187500 +vt 0.524138 0.203125 +vt 0.544828 0.156250 +vt 0.537931 0.156250 +vt 0.531034 0.156250 +vt 0.524138 0.187500 +vt 0.524138 0.156250 +vt 0.510345 0.156250 +vt 0.503448 0.156250 +vt 0.524138 0.156250 +vt 0.517241 0.156250 +vt 0.551724 0.156250 +vt 0.496552 0.187500 +vt 0.496552 0.156250 +vt 0.496552 0.250000 +vt 0.496552 0.203125 +vt 0.979310 0.515625 +vt 0.986207 0.484375 +vt 0.986207 0.515625 +vt 0.213793 0.890625 +vt 0.565517 0.515625 +vt 0.551724 0.500000 +vt 0.565517 0.500000 +vt 0.517241 0.250000 +vt 0.510345 0.250000 +vt 0.524138 0.250000 +vt 0.517241 0.296875 +vt 0.544828 0.296875 +vt 0.496552 0.296875 +vt 0.537931 0.296875 +vt 0.531034 0.296875 +vt 0.517241 0.203125 +vt 0.213793 0.109375 +vt 0.220690 0.265625 +vt 0.213793 0.265625 +vt 0.972414 0.515625 +vt 0.979310 0.484375 +vt 0.220690 0.109375 +vt 0.227586 0.265625 +vt 0.965517 0.515625 +vt 0.972414 0.484375 +vt 0.186207 0.109375 +vt 0.193103 0.265625 +vt 0.186207 0.265625 +vt 0.958621 0.515625 +vt 0.965517 0.484375 +vt 0.193103 0.109375 +vt 0.200000 0.265625 +vt 0.198836 0.288749 +vt 0.193103 0.296248 +vt 0.187370 0.288749 +vt 0.200000 0.109375 +vt 0.206897 0.265625 +vt 0.206897 0.109375 +vt 0.201164 0.288749 +vt 0.201164 0.273751 +vt 0.212630 0.273751 +vt 0.972414 0.468750 +vt 0.979310 0.484375 +vt 0.979310 0.468750 +vt 0.958621 0.468750 +vt 0.965517 0.468750 +vt 0.958621 0.484375 +vt 0.965517 0.453125 +vt 0.958621 0.437500 +vt 0.965517 0.421875 +vt 0.965517 0.437500 +vt 0.972414 0.453125 +vt 0.979310 0.453125 +vt 0.986207 0.453125 +vt 0.986207 0.468750 +vt 0.972414 0.437500 +vt 0.965517 0.453125 +vt 0.986207 0.453125 +vt 0.979310 0.437500 +vt 0.986207 0.437500 +vt 0.972414 0.421875 +vt 0.979310 0.343750 +vt 0.979310 0.421875 +vt 0.986207 0.421875 +vt 0.965517 0.328125 +vt 0.972414 0.328125 +vt 0.965517 0.343750 +vt 0.986207 0.343750 +vt 0.958621 0.421875 +vt 0.965517 0.343750 +vt 0.972414 0.343750 +vt 0.979310 0.328125 +vt 0.986207 0.296875 +vt 0.986207 0.328125 +vt 0.986207 0.343750 +vt 0.958621 0.281250 +vt 0.965517 0.250000 +vt 0.965517 0.281250 +vt 0.958621 0.328125 +vt 0.965517 0.296875 +vt 0.972414 0.296875 +vt 0.979310 0.296875 +vt 0.979310 0.296875 +vt 0.972414 0.281250 +vt 0.979310 0.281250 +vt 0.958621 0.296875 +vt 0.986207 0.250000 +vt 0.986207 0.281250 +vt 0.979310 0.250000 +vt 0.972414 0.250000 +vt 0.539805 0.495450 +vt 0.539959 0.508696 +vt 0.506403 0.692192 +vt 0.539824 0.629444 +vt 0.512254 0.691859 +vt 0.544674 0.484410 +vt 0.551565 0.500009 +vt 0.544695 0.609268 +vt 0.539977 0.616199 +vt 0.489655 0.156250 +vt 0.510345 0.046875 +vt 0.510345 0.156250 +vt 0.151724 0.046875 +vt 0.158621 0.062500 +vt 0.151724 0.062500 +vt 0.172414 0.046875 +vt 0.165517 0.062500 +vt 0.165517 0.046875 +vt 0.179310 0.046875 +vt 0.186207 0.062500 +vt 0.179310 0.062500 +vt 0.186207 0.046875 +vt 0.193103 0.062500 +vt 0.144828 0.046875 +vt 0.144828 0.062500 +vt 0.158621 0.046875 +vt 0.172414 0.062500 +vt 0.193103 0.046875 +vt 0.200000 0.062500 +vt 0.170248 0.114281 +vt 0.170248 0.135718 +vt 0.160786 0.135718 +vt 0.186207 0.078125 +vt 0.179310 0.093750 +vt 0.179310 0.078125 +vt 0.193103 0.093750 +vt 0.186207 0.093750 +vt 0.200000 0.078125 +vt 0.193103 0.078125 +vt 0.151724 0.078125 +vt 0.144828 0.093750 +vt 0.144828 0.078125 +vt 0.158621 0.093750 +vt 0.151724 0.093750 +vt 0.158621 0.078125 +vt 0.165517 0.093750 +vt 0.165517 0.078125 +vt 0.172414 0.093750 +vt 0.172414 0.078125 +vt 0.151724 0.046875 +vt 0.158621 0.062500 +vt 0.151724 0.062500 +vt 0.172414 0.046875 +vt 0.165517 0.062500 +vt 0.165517 0.046875 +vt 0.179310 0.046875 +vt 0.186207 0.062500 +vt 0.179310 0.062500 +vt 0.186207 0.046875 +vt 0.193103 0.062500 +vt 0.144828 0.046875 +vt 0.144828 0.062500 +vt 0.158621 0.046875 +vt 0.172414 0.062500 +vt 0.193103 0.046875 +vt 0.200000 0.062500 +vt 0.170248 0.114281 +vt 0.170248 0.135718 +vt 0.160786 0.135718 +vt 0.186207 0.078125 +vt 0.179310 0.093750 +vt 0.179310 0.078125 +vt 0.193103 0.093750 +vt 0.186207 0.093750 +vt 0.200000 0.078125 +vt 0.193103 0.078125 +vt 0.151724 0.078125 +vt 0.144828 0.093750 +vt 0.144828 0.078125 +vt 0.158621 0.078125 +vt 0.151724 0.093750 +vt 0.165517 0.093750 +vt 0.158621 0.093750 +vt 0.165517 0.078125 +vt 0.172414 0.093750 +vt 0.172414 0.078125 +vt 0.151724 0.046875 +vt 0.158621 0.062500 +vt 0.151724 0.062500 +vt 0.172414 0.046875 +vt 0.165517 0.062500 +vt 0.165517 0.046875 +vt 0.179310 0.046875 +vt 0.186207 0.062500 +vt 0.179310 0.062500 +vt 0.186207 0.046875 +vt 0.193103 0.062500 +vt 0.144828 0.046875 +vt 0.144828 0.062500 +vt 0.158621 0.046875 +vt 0.172414 0.062500 +vt 0.193103 0.046875 +vt 0.200000 0.062500 +vt 0.170248 0.114281 +vt 0.170248 0.135718 +vt 0.160786 0.135718 +vt 0.186207 0.078125 +vt 0.179310 0.093750 +vt 0.179310 0.078125 +vt 0.193103 0.093750 +vt 0.186207 0.093750 +vt 0.200000 0.078125 +vt 0.193103 0.078125 +vt 0.151724 0.078125 +vt 0.144828 0.093750 +vt 0.144828 0.078125 +vt 0.158621 0.078125 +vt 0.151724 0.093750 +vt 0.165517 0.093750 +vt 0.158621 0.093750 +vt 0.165517 0.078125 +vt 0.172414 0.093750 +vt 0.172414 0.078125 +vt 0.151724 0.046875 +vt 0.158621 0.062500 +vt 0.151724 0.062500 +vt 0.172414 0.046875 +vt 0.165517 0.062500 +vt 0.165517 0.046875 +vt 0.179310 0.046875 +vt 0.186207 0.062500 +vt 0.179310 0.062500 +vt 0.186207 0.046875 +vt 0.193103 0.062500 +vt 0.144828 0.046875 +vt 0.144828 0.062500 +vt 0.158621 0.046875 +vt 0.172414 0.062500 +vt 0.193103 0.046875 +vt 0.200000 0.062500 +vt 0.170248 0.114281 +vt 0.170248 0.135718 +vt 0.160786 0.135718 +vt 0.186207 0.078125 +vt 0.179310 0.093750 +vt 0.179310 0.078125 +vt 0.193103 0.093750 +vt 0.186207 0.093750 +vt 0.200000 0.078125 +vt 0.193103 0.078125 +vt 0.151724 0.078125 +vt 0.144828 0.093750 +vt 0.144828 0.078125 +vt 0.158621 0.078125 +vt 0.151724 0.093750 +vt 0.165517 0.093750 +vt 0.158621 0.093750 +vt 0.165517 0.078125 +vt 0.172414 0.093750 +vt 0.172414 0.078125 +vt 0.151724 0.046875 +vt 0.158621 0.062500 +vt 0.151724 0.062500 +vt 0.172414 0.046875 +vt 0.165517 0.062500 +vt 0.165517 0.046875 +vt 0.179310 0.046875 +vt 0.186207 0.062500 +vt 0.179310 0.062500 +vt 0.186207 0.046875 +vt 0.193103 0.062500 +vt 0.144828 0.046875 +vt 0.144828 0.062500 +vt 0.158621 0.046875 +vt 0.172414 0.062500 +vt 0.193103 0.046875 +vt 0.200000 0.062500 +vt 0.170248 0.114281 +vt 0.170248 0.135718 +vt 0.160786 0.135718 +vt 0.186207 0.078125 +vt 0.179310 0.093750 +vt 0.179310 0.078125 +vt 0.193103 0.093750 +vt 0.186207 0.093750 +vt 0.200000 0.078125 +vt 0.193103 0.078125 +vt 0.151724 0.078125 +vt 0.144828 0.093750 +vt 0.144828 0.078125 +vt 0.158621 0.078125 +vt 0.151724 0.093750 +vt 0.165517 0.093750 +vt 0.158621 0.093750 +vt 0.165517 0.078125 +vt 0.172414 0.093750 +vt 0.172414 0.078125 +vt 0.151724 0.046875 +vt 0.158621 0.062500 +vt 0.151724 0.062500 +vt 0.172414 0.046875 +vt 0.165517 0.062500 +vt 0.165517 0.046875 +vt 0.179310 0.046875 +vt 0.186207 0.062500 +vt 0.179310 0.062500 +vt 0.186207 0.046875 +vt 0.193103 0.062500 +vt 0.144828 0.046875 +vt 0.144828 0.062500 +vt 0.158621 0.046875 +vt 0.172414 0.062500 +vt 0.193103 0.046875 +vt 0.200000 0.062500 +vt 0.170248 0.114281 +vt 0.170248 0.135718 +vt 0.160786 0.135718 +vt 0.186207 0.078125 +vt 0.179310 0.093750 +vt 0.179310 0.078125 +vt 0.193103 0.093750 +vt 0.186207 0.093750 +vt 0.200000 0.078125 +vt 0.193103 0.078125 +vt 0.151724 0.078125 +vt 0.144828 0.093750 +vt 0.144828 0.078125 +vt 0.158621 0.078125 +vt 0.151724 0.093750 +vt 0.165517 0.093750 +vt 0.158621 0.093750 +vt 0.165517 0.078125 +vt 0.172414 0.093750 +vt 0.172414 0.078125 +vt 0.151724 0.046875 +vt 0.158621 0.062500 +vt 0.151724 0.062500 +vt 0.172414 0.046875 +vt 0.165517 0.062500 +vt 0.165517 0.046875 +vt 0.179310 0.046875 +vt 0.186207 0.062500 +vt 0.179310 0.062500 +vt 0.193103 0.046875 +vt 0.186207 0.046875 +vt 0.144828 0.046875 +vt 0.144828 0.062500 +vt 0.158621 0.046875 +vt 0.172414 0.062500 +vt 0.200000 0.062500 +vt 0.193103 0.062500 +vt 0.170248 0.114281 +vt 0.170248 0.135718 +vt 0.160786 0.135718 +vt 0.186207 0.078125 +vt 0.179310 0.093750 +vt 0.179310 0.078125 +vt 0.193103 0.093750 +vt 0.186207 0.093750 +vt 0.200000 0.078125 +vt 0.193103 0.078125 +vt 0.151724 0.078125 +vt 0.144828 0.093750 +vt 0.144828 0.078125 +vt 0.158621 0.078125 +vt 0.151724 0.093750 +vt 0.165517 0.093750 +vt 0.158621 0.093750 +vt 0.165517 0.078125 +vt 0.172414 0.093750 +vt 0.172414 0.078125 +vt 0.096552 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.124138 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.117241 0.296875 +vt 0.096552 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.343750 +vt 0.117241 0.328125 +vt 0.124138 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.124138 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.124138 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.124138 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.117241 0.296875 +vt 0.096552 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.343750 +vt 0.117241 0.328125 +vt 0.124138 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.124138 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.117241 0.296875 +vt 0.096552 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.343750 +vt 0.117241 0.328125 +vt 0.124138 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.124138 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.124138 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.124138 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.124138 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.124138 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.117241 0.296875 +vt 0.096552 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.343750 +vt 0.117241 0.328125 +vt 0.124138 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.124138 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.510345 0.562500 +vt 0.455172 0.562500 +vt 0.455172 0.546875 +vt 0.620690 0.515625 +vt 0.565517 0.515625 +vt 0.565517 0.750000 +vt 0.551724 0.734375 +vt 0.565517 0.734375 +vt 0.620690 0.515625 +vt 0.565517 0.609375 +vt 0.565517 0.515625 +vt 0.448276 0.515625 +vt 0.455172 0.609375 +vt 0.448276 0.609375 +vt 0.524138 0.609375 +vt 0.510345 0.515625 +vt 0.524138 0.515625 +vt 0.455172 0.578125 +vt 0.455172 0.562500 +vt 0.510345 0.562500 +vt 0.565517 0.625000 +vt 0.551724 0.609375 +vt 0.565517 0.609375 +vt 0.565517 0.500000 +vt 0.551724 0.484375 +vt 0.565517 0.484375 +vt 0.565517 0.390625 +vt 0.551724 0.375000 +vt 0.565517 0.375000 +vt 0.565517 0.484375 +vt 0.551724 0.484375 +vt 0.551724 0.515625 +vt 0.565517 0.609375 +vt 0.551724 0.609375 +vt 0.565517 0.640625 +vt 0.551724 0.640625 +vt 0.565517 0.390625 +vt 0.551724 0.390625 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.565517 0.734375 +vt 0.551724 0.750000 +vt 0.551724 0.734375 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.551583 0.624874 +vt 0.510212 0.718578 +vt 0.512238 0.433055 +vt 0.255172 -0.000000 +vt 0.227586 0.125000 +vt 0.227586 -0.000000 +vt 0.227586 0.500000 +vt 0.255172 0.625000 +vt 0.227586 0.625000 +vt 0.255172 0.750000 +vt 0.227586 0.875000 +vt 0.227586 0.750000 +vt 0.227586 0.250000 +vt 0.255172 0.375000 +vt 0.227586 0.375000 +vt 0.255172 0.500000 +vt 0.255172 0.250000 +vt 0.255172 0.125000 +vt 0.227586 1.000000 +vt 0.255172 0.875000 +vt 0.255172 1.000000 +vt 0.185647 0.407982 +vt 0.181809 0.433762 +vt 0.158206 0.423338 +vt 0.227246 0.501121 +vt 0.215680 0.509781 +vt 0.201106 0.462288 +vt 0.226770 0.624909 +vt 0.215543 0.616068 +vt 0.220300 0.563004 +vt 0.185661 0.717018 +vt 0.181941 0.690910 +vt 0.202736 0.659045 +vt 0.131028 0.716313 +vt 0.134829 0.690268 +vt 0.158386 0.701199 +vt 0.089995 0.623885 +vt 0.101155 0.615205 +vt 0.113984 0.658150 +vt 0.089997 0.501305 +vt 0.101178 0.509856 +vt 0.096611 0.562314 +vt 0.130816 0.408077 +vt 0.134644 0.434152 +vt 0.113890 0.466628 +vt 0.117241 0.000640 +vt 0.144545 0.062500 +vt 0.117241 0.124360 +vt 0.282000 0.461238 +vt 0.267164 0.508207 +vt 0.255663 0.499249 +vt 0.324503 0.423194 +vt 0.301337 0.432859 +vt 0.297766 0.407469 +vt 0.368692 0.466561 +vt 0.347882 0.434234 +vt 0.351705 0.408442 +vt 0.386036 0.561123 +vt 0.381418 0.509360 +vt 0.392481 0.500826 +vt 0.368830 0.657546 +vt 0.381587 0.613816 +vt 0.392687 0.622102 +vt 0.324106 0.701882 +vt 0.347834 0.691162 +vt 0.351758 0.717531 +vt 0.279544 0.658120 +vt 0.300333 0.691179 +vt 0.296432 0.717486 +vt 0.262317 0.561201 +vt 0.266830 0.614350 +vt 0.255589 0.622775 +vt 0.606897 0.125000 +vt 0.662069 0.218750 +vt 0.724138 0.218750 +vt 0.682759 0.375000 +vt 0.551724 1.000000 +vt 0.662069 0.906250 +vt 0.724138 0.906250 +vt 0.324138 0.843750 +vt 0.324138 0.875000 +vt 0.324138 0.890625 +vt 0.324138 0.781250 +vt 0.737931 0.765625 +vt 0.724138 0.406250 +vt 0.724138 0.750000 +vt 0.696552 0.453125 +vt 0.696552 0.671875 +vt 0.200000 0.046875 +vt 0.172208 0.125000 +vt 0.165517 0.140158 +vt 0.158827 0.125000 +vt 0.160786 0.114281 +vt 0.165517 0.109842 +vt 0.200000 0.093750 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.303448 0.046875 +vt 0.259370 0.124136 +vt 0.255554 0.115489 +vt 0.255554 0.103261 +vt 0.259370 0.094614 +vt 0.264768 0.094614 +vt 0.289655 0.046875 +vt 0.262069 0.046875 +vt 0.358621 0.046875 +vt 0.344828 0.046875 +vt 0.317241 0.046875 +vt 0.296552 0.062500 +vt 0.282759 0.062500 +vt 0.275862 0.062500 +vt 0.262069 0.062500 +vt 0.358621 0.062500 +vt 0.337931 0.062500 +vt 0.324138 0.062500 +vt 0.310345 0.062500 +vt 0.227586 0.781250 +vt 0.441379 0.609375 +vt 0.903448 0.249458 +vt 0.864604 0.213006 +vt 0.864604 0.036995 +vt 0.942292 0.036994 +vt 0.942292 0.213005 +vt 0.351724 0.765625 +vt 0.275862 0.718750 +vt 0.255172 0.906250 +vt 0.331034 0.953125 +vt 0.942292 0.463005 +vt 0.903448 0.499458 +vt 0.864604 0.463005 +vt 0.864604 0.286994 +vt 0.942292 0.286994 +vt 0.737931 -0.000000 +vt 0.296552 0.093750 +vt 0.268966 0.187500 +vt 0.262069 0.140625 +vt 0.296552 0.093750 +vt 0.303448 0.171875 +vt 0.268966 0.187500 +vt 0.358621 0.171875 +vt 0.324138 0.093750 +vt 0.696552 0.437500 +vt 0.731034 0.437500 +vt 0.420690 0.859375 +vt 0.479310 0.953125 +vt 0.468966 -0.000000 +vt 0.351724 0.313754 +vt 0.363190 0.358748 +vt 0.340258 0.358748 +vt 0.255172 0.250000 +vt 0.340258 0.266252 +vt 0.351724 0.251254 +vt 0.363190 0.266252 +vt 0.848276 0.625000 +vt 0.944828 0.500000 +vt 0.958621 0.000000 +vt 0.978890 0.244165 +vt 0.965937 0.244165 +vt 0.959461 0.218750 +vt 0.724138 0.140625 +vt 0.724138 0.046875 +vt 0.675862 0.187500 +vt 0.655172 0.171875 +vt 0.655172 0.078125 +vt 0.641379 0.187500 +vt 0.634483 0.078125 +vt 0.634483 0.046875 +vt 0.634483 0.109375 +vt 0.634483 0.015625 +vt 0.630883 0.028561 +vt 0.624290 0.028561 +vt 0.620993 0.015625 +vt 0.413793 0.812500 +vt 0.489655 0.000000 +vt 0.468966 0.156250 +vt 0.531034 0.046875 +vt 0.468966 0.312500 +vt 0.455172 0.859375 +vt 0.434483 0.718750 +vt 0.524138 0.828125 +vt 0.979310 0.609375 +vt 0.979310 0.515625 +vt 0.972414 0.562500 +vt 0.606897 0.734375 +vt 0.006897 0.875000 +vt 0.551724 0.640625 +vt 0.158621 0.156250 +vt 0.117241 0.875000 +vt 0.213793 0.781250 +vt 0.213793 0.750000 +vt 0.089655 0.281250 +vt 0.551724 0.203125 +vt 0.213793 0.906250 +vt 0.551724 0.515625 +vt 0.524138 0.296875 +vt 0.551724 0.296875 +vt 0.524138 0.203125 +vt 0.227586 0.109375 +vt 0.958621 0.484375 +vt 0.187370 0.273751 +vt 0.193103 0.266252 +vt 0.198836 0.273751 +vt 0.206897 0.266252 +vt 0.212630 0.288749 +vt 0.206897 0.296248 +vt 0.958621 0.453125 +vt 0.958621 0.343750 +vt 0.958621 0.250000 +vt 0.958621 0.296875 +vt 0.551568 0.515616 +vt 0.544680 0.515623 +vt 0.489655 0.046875 +vt 0.200000 0.046875 +vt 0.172208 0.125000 +vt 0.165517 0.140158 +vt 0.158827 0.125000 +vt 0.160786 0.114281 +vt 0.165517 0.109842 +vt 0.200000 0.093750 +vt 0.200000 0.046875 +vt 0.172208 0.125000 +vt 0.165517 0.140158 +vt 0.158827 0.125000 +vt 0.160786 0.114281 +vt 0.165517 0.109842 +vt 0.200000 0.093750 +vt 0.200000 0.046875 +vt 0.172208 0.125000 +vt 0.165517 0.140158 +vt 0.158827 0.125000 +vt 0.160786 0.114281 +vt 0.165517 0.109842 +vt 0.200000 0.093750 +vt 0.200000 0.046875 +vt 0.172208 0.125000 +vt 0.165517 0.140158 +vt 0.158827 0.125000 +vt 0.160786 0.114281 +vt 0.165517 0.109842 +vt 0.200000 0.093750 +vt 0.200000 0.046875 +vt 0.172208 0.125000 +vt 0.165517 0.140158 +vt 0.158827 0.125000 +vt 0.160786 0.114281 +vt 0.165517 0.109842 +vt 0.200000 0.093750 +vt 0.200000 0.046875 +vt 0.172208 0.125000 +vt 0.165517 0.140158 +vt 0.158827 0.125000 +vt 0.160786 0.114281 +vt 0.165517 0.109842 +vt 0.200000 0.093750 +vt 0.200000 0.046875 +vt 0.172208 0.125000 +vt 0.165517 0.140158 +vt 0.158827 0.125000 +vt 0.160786 0.114281 +vt 0.165517 0.109842 +vt 0.200000 0.093750 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.455172 0.531250 +vt 0.510345 0.531250 +vt 0.551724 0.750000 +vt 0.620690 0.609375 +vt 0.455172 0.515625 +vt 0.510345 0.609375 +vt 0.510345 0.593750 +vt 0.455172 0.593750 +vt 0.551724 0.625000 +vt 0.551724 0.500000 +vt 0.551724 0.390625 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.551583 0.609269 +vt 0.544695 0.640480 +vt 0.517133 0.702938 +vt 0.517104 0.422013 +vt 0.106793 0.119651 +vt 0.097935 0.106242 +vt 0.092016 0.086173 +vt 0.089938 0.062500 +vt 0.092016 0.038827 +vt 0.097935 0.018758 +vt 0.106793 0.005349 +vt 0.127690 0.005349 +vt 0.136548 0.018758 +vt 0.142467 0.038827 +vt 0.142467 0.086173 +vt 0.136548 0.106242 +vt 0.127690 0.119651 +vt 0.124138 0.390625 +vt 0.144828 0.375000 +vt 0.144828 0.390625 +vt 0.124138 0.343750 +vt 0.144828 0.359375 +vt 0.124138 0.359375 +vt 0.124138 0.312500 +vt 0.144828 0.328125 +vt 0.124138 0.328125 +vt 0.124138 0.296875 +vt 0.144828 0.312500 +vt 0.124138 0.406250 +vt 0.144828 0.406250 +vt 0.124138 0.375000 +vt 0.144828 0.343750 +vt 0.124138 0.281250 +vt 0.144828 0.296875 +vt 0.158621 0.312500 +vt 0.158621 0.328125 +vt 0.158621 0.359375 +vt 0.158621 0.390625 +vt 0.144828 0.281250 +vt 0.158621 0.296875 +vt 0.158621 0.343750 +vt 0.158621 0.375000 +vt 0.158621 0.406250 +vt 0.172414 0.390625 +vt 0.172414 0.406250 +vt 0.172414 0.296875 +vt 0.172414 0.312500 +vt 0.172414 0.328125 +vt 0.172414 0.359375 +vt 0.158621 0.281250 +vt 0.172414 0.343750 +vt 0.172414 0.375000 +vt 0.186207 0.343750 +vt 0.186207 0.359375 +vt 0.186207 0.375000 +vt 0.186207 0.390625 +vt 0.186207 0.406250 +vt 0.186207 0.312500 +vt 0.186207 0.328125 +vt 0.172414 0.281250 +vt 0.186207 0.296875 +vt 0.193103 -0.000000 +vt 0.186207 -0.000000 +vt 0.151724 -0.000000 +vt 0.144828 -0.000000 +vt 0.158621 -0.000000 +vt 0.179310 -0.000000 +vt 0.172414 -0.000000 +vt 0.165517 -0.000000 +vt 0.193103 0.109375 +vt 0.200000 0.109375 +vt 0.151724 0.109375 +vt 0.158621 0.109375 +vt 0.179310 0.109375 +vt 0.186207 0.109375 +vt 0.165517 0.109375 +vt 0.172414 0.109375 +vt 0.310345 0.000000 +vt 0.296552 0.000000 +vt 0.282759 0.000000 +vt 0.268966 0.000000 +vt 0.365517 0.000000 +vt 0.351724 0.000000 +vt 0.337931 0.000000 +vt 0.324138 0.000000 +vt 0.255172 0.000000 +vt 0.310345 0.093750 +vt 0.317241 0.093750 +vt 0.296552 0.093750 +vt 0.303448 0.093750 +vt 0.282759 0.093750 +vt 0.289655 0.093750 +vt 0.268966 0.093750 +vt 0.275862 0.093750 +vt 0.324138 0.093750 +vt 0.331034 0.093750 +vt 0.337931 0.093750 +vt 0.344828 0.093750 +vt 0.351724 0.093750 +vt 0.358621 0.093750 +vt 0.255172 0.093750 +vt 0.262069 0.093750 +vt 0.958621 0.609375 +vt 0.965517 0.593750 +vt 0.965517 0.609375 +vt 0.958621 0.562500 +vt 0.965517 0.546875 +vt 0.965517 0.562500 +vt 0.986207 0.578125 +vt 0.965517 0.625000 +vt 0.958621 0.625000 +vt 0.958621 0.578125 +vt 0.965517 0.578125 +vt 0.986207 0.562500 +vt 0.958621 0.531250 +vt 0.965517 0.515625 +vt 0.965517 0.531250 +vt 0.958621 0.640625 +vt 0.965517 0.640625 +vt 0.958621 0.593750 +vt 0.979310 0.562500 +vt 0.986207 0.546875 +vt 0.958621 0.546875 +vt 0.979310 0.546875 +vt 0.965517 0.593750 +vt 0.972414 0.609375 +vt 0.965517 0.609375 +vt 0.965517 0.656250 +vt 0.972414 0.640625 +vt 0.972414 0.656250 +vt 0.965517 0.546875 +vt 0.972414 0.531250 +vt 0.972414 0.546875 +vt 0.965517 0.703125 +vt 0.972414 0.687500 +vt 0.972414 0.703125 +vt 0.972414 0.578125 +vt 0.972414 0.593750 +vt 0.965517 0.625000 +vt 0.965517 0.640625 +vt 0.965517 0.515625 +vt 0.965517 0.531250 +vt 0.965517 0.671875 +vt 0.965517 0.687500 +vt 0.965517 0.562500 +vt 0.965517 0.578125 +vt 0.972414 0.625000 +vt 0.972414 0.671875 +vt 0.972414 0.562500 +vt 0.296552 0.218750 +vt 0.310345 0.234375 +vt 0.296552 0.234375 +vt 0.296552 0.187500 +vt 0.310345 0.203125 +vt 0.296552 0.203125 +vt 0.310345 0.234375 +vt 0.296552 0.250000 +vt 0.296552 0.234375 +vt 0.310345 0.203125 +vt 0.296552 0.218750 +vt 0.296552 0.203125 +vt 0.296552 0.187500 +vt 0.310345 0.218750 +vt 0.324138 0.234375 +vt 0.310345 0.187500 +vt 0.324138 0.203125 +vt 0.324138 0.250000 +vt 0.310345 0.250000 +vt 0.310345 0.234375 +vt 0.296552 0.250000 +vt 0.296552 0.234375 +vt 0.310345 0.203125 +vt 0.296552 0.218750 +vt 0.296552 0.203125 +vt 0.310345 0.187500 +vt 0.296552 0.187500 +vt 0.310345 0.218750 +vt 0.324138 0.234375 +vt 0.324138 0.203125 +vt 0.310345 0.250000 +vt 0.310345 0.234375 +vt 0.296552 0.250000 +vt 0.296552 0.234375 +vt 0.310345 0.203125 +vt 0.296552 0.218750 +vt 0.296552 0.203125 +vt 0.310345 0.187500 +vt 0.296552 0.187500 +vt 0.310345 0.218750 +vt 0.324138 0.234375 +vt 0.324138 0.187500 +vt 0.324138 0.250000 +vt 0.310345 0.250000 +vt 0.324138 0.203125 +vt 0.255172 0.234375 +vt 0.255172 0.234375 +vt 0.255172 0.218750 +vt 0.255172 0.203125 +vt 0.255172 0.234375 +vt 0.255172 0.218750 +vt 0.255172 0.187500 +vt 0.255172 0.203125 +vt 0.255172 0.218750 +vt 0.255172 0.203125 +vt 0.255172 0.187500 +vt 0.255172 0.187500 +vt 0.310345 0.218750 +vt 0.296552 0.250000 +vt 0.310345 0.250000 +vt 0.324138 0.203125 +vt 0.324138 0.218750 +vt 0.324138 0.234375 +vt 0.324138 0.250000 +vt 0.324138 0.187500 +vt 0.296552 0.187500 +vt 0.310345 0.203125 +vt 0.296552 0.203125 +vt 0.296552 0.218750 +vt 0.310345 0.234375 +vt 0.296552 0.234375 +vt 0.310345 0.218750 +vt 0.310345 0.250000 +vt 0.296552 0.250000 +vt 0.324138 0.203125 +vt 0.324138 0.218750 +vt 0.324138 0.234375 +vt 0.324138 0.250000 +vt 0.310345 0.187500 +vt 0.296552 0.187500 +vt 0.310345 0.203125 +vt 0.296552 0.203125 +vt 0.296552 0.218750 +vt 0.310345 0.234375 +vt 0.296552 0.234375 +vt 0.310345 0.218750 +vt 0.310345 0.250000 +vt 0.296552 0.250000 +vt 0.324138 0.203125 +vt 0.324138 0.218750 +vt 0.324138 0.250000 +vt 0.324138 0.187500 +vt 0.324138 0.234375 +vt 0.255172 0.203125 +vt 0.255172 0.203125 +vt 0.255172 0.218750 +vt 0.255172 0.234375 +vt 0.255172 0.203125 +vt 0.255172 0.218750 +vt 0.255172 0.250000 +vt 0.255172 0.234375 +vt 0.255172 0.218750 +vt 0.255172 0.234375 +vt 0.255172 0.250000 +vt 0.255172 0.250000 +vt 0.124138 0.390625 +vt 0.144828 0.375000 +vt 0.144828 0.390625 +vt 0.124138 0.343750 +vt 0.144828 0.359375 +vt 0.124138 0.359375 +vt 0.124138 0.312500 +vt 0.144828 0.328125 +vt 0.124138 0.328125 +vt 0.124138 0.296875 +vt 0.144828 0.312500 +vt 0.124138 0.406250 +vt 0.144828 0.406250 +vt 0.124138 0.375000 +vt 0.144828 0.343750 +vt 0.124138 0.281250 +vt 0.144828 0.296875 +vt 0.158621 0.312500 +vt 0.158621 0.328125 +vt 0.158621 0.359375 +vt 0.158621 0.390625 +vt 0.144828 0.281250 +vt 0.158621 0.296875 +vt 0.158621 0.343750 +vt 0.158621 0.375000 +vt 0.158621 0.406250 +vt 0.172414 0.390625 +vt 0.172414 0.406250 +vt 0.172414 0.296875 +vt 0.172414 0.312500 +vt 0.172414 0.328125 +vt 0.172414 0.359375 +vt 0.158621 0.281250 +vt 0.172414 0.343750 +vt 0.172414 0.375000 +vt 0.186207 0.343750 +vt 0.186207 0.359375 +vt 0.186207 0.375000 +vt 0.186207 0.390625 +vt 0.186207 0.406250 +vt 0.186207 0.312500 +vt 0.186207 0.328125 +vt 0.172414 0.281250 +vt 0.186207 0.296875 +vt 0.193103 -0.000000 +vt 0.186207 -0.000000 +vt 0.151724 -0.000000 +vt 0.144828 -0.000000 +vt 0.158621 -0.000000 +vt 0.179310 -0.000000 +vt 0.172414 -0.000000 +vt 0.165517 -0.000000 +vt 0.193103 0.109375 +vt 0.200000 0.109375 +vt 0.151724 0.109375 +vt 0.158621 0.109375 +vt 0.179310 0.109375 +vt 0.186207 0.109375 +vt 0.165517 0.109375 +vt 0.172414 0.109375 +vt 0.124138 0.390625 +vt 0.144828 0.375000 +vt 0.144828 0.390625 +vt 0.124138 0.343750 +vt 0.144828 0.359375 +vt 0.124138 0.359375 +vt 0.124138 0.312500 +vt 0.144828 0.328125 +vt 0.124138 0.328125 +vt 0.124138 0.296875 +vt 0.144828 0.312500 +vt 0.124138 0.406250 +vt 0.144828 0.406250 +vt 0.124138 0.375000 +vt 0.144828 0.343750 +vt 0.124138 0.281250 +vt 0.144828 0.296875 +vt 0.158621 0.312500 +vt 0.158621 0.328125 +vt 0.158621 0.359375 +vt 0.158621 0.390625 +vt 0.144828 0.281250 +vt 0.158621 0.296875 +vt 0.158621 0.343750 +vt 0.158621 0.375000 +vt 0.158621 0.406250 +vt 0.172414 0.390625 +vt 0.172414 0.406250 +vt 0.172414 0.296875 +vt 0.172414 0.312500 +vt 0.172414 0.328125 +vt 0.172414 0.359375 +vt 0.158621 0.281250 +vt 0.172414 0.343750 +vt 0.172414 0.375000 +vt 0.186207 0.343750 +vt 0.186207 0.359375 +vt 0.186207 0.375000 +vt 0.186207 0.390625 +vt 0.186207 0.406250 +vt 0.186207 0.312500 +vt 0.186207 0.328125 +vt 0.172414 0.281250 +vt 0.186207 0.296875 +vt 0.193103 -0.000000 +vt 0.186207 -0.000000 +vt 0.151724 -0.000000 +vt 0.144828 -0.000000 +vt 0.158621 -0.000000 +vt 0.179310 -0.000000 +vt 0.172414 -0.000000 +vt 0.165517 -0.000000 +vt 0.193103 0.109375 +vt 0.200000 0.109375 +vt 0.151724 0.109375 +vt 0.158621 0.109375 +vt 0.179310 0.109375 +vt 0.186207 0.109375 +vt 0.165517 0.109375 +vt 0.172414 0.109375 +vt 0.124138 0.390625 +vt 0.144828 0.375000 +vt 0.144828 0.390625 +vt 0.124138 0.343750 +vt 0.144828 0.359375 +vt 0.124138 0.359375 +vt 0.124138 0.312500 +vt 0.144828 0.328125 +vt 0.124138 0.328125 +vt 0.124138 0.296875 +vt 0.144828 0.312500 +vt 0.124138 0.406250 +vt 0.144828 0.406250 +vt 0.124138 0.375000 +vt 0.144828 0.343750 +vt 0.124138 0.281250 +vt 0.144828 0.296875 +vt 0.158621 0.312500 +vt 0.158621 0.328125 +vt 0.158621 0.359375 +vt 0.158621 0.390625 +vt 0.144828 0.281250 +vt 0.158621 0.296875 +vt 0.158621 0.343750 +vt 0.158621 0.375000 +vt 0.158621 0.406250 +vt 0.172414 0.390625 +vt 0.172414 0.406250 +vt 0.172414 0.296875 +vt 0.172414 0.312500 +vt 0.172414 0.328125 +vt 0.172414 0.359375 +vt 0.158621 0.281250 +vt 0.172414 0.343750 +vt 0.172414 0.375000 +vt 0.186207 0.343750 +vt 0.186207 0.359375 +vt 0.186207 0.375000 +vt 0.186207 0.390625 +vt 0.186207 0.406250 +vt 0.186207 0.312500 +vt 0.186207 0.328125 +vt 0.172414 0.281250 +vt 0.186207 0.296875 +vt 0.193103 -0.000000 +vt 0.186207 -0.000000 +vt 0.151724 -0.000000 +vt 0.144828 -0.000000 +vt 0.158621 -0.000000 +vt 0.172414 -0.000000 +vt 0.165517 -0.000000 +vt 0.179310 -0.000000 +vt 0.193103 0.109375 +vt 0.200000 0.109375 +vt 0.151724 0.109375 +vt 0.158621 0.109375 +vt 0.179310 0.109375 +vt 0.186207 0.109375 +vt 0.165517 0.109375 +vt 0.172414 0.109375 +vt 0.124138 0.390625 +vt 0.144828 0.375000 +vt 0.144828 0.390625 +vt 0.124138 0.343750 +vt 0.144828 0.359375 +vt 0.124138 0.359375 +vt 0.124138 0.312500 +vt 0.144828 0.328125 +vt 0.124138 0.328125 +vt 0.124138 0.296875 +vt 0.144828 0.312500 +vt 0.124138 0.406250 +vt 0.144828 0.406250 +vt 0.124138 0.375000 +vt 0.144828 0.343750 +vt 0.124138 0.281250 +vt 0.144828 0.296875 +vt 0.158621 0.312500 +vt 0.158621 0.328125 +vt 0.158621 0.359375 +vt 0.158621 0.390625 +vt 0.144828 0.281250 +vt 0.158621 0.296875 +vt 0.158621 0.343750 +vt 0.158621 0.375000 +vt 0.158621 0.406250 +vt 0.172414 0.390625 +vt 0.172414 0.406250 +vt 0.172414 0.296875 +vt 0.172414 0.312500 +vt 0.172414 0.328125 +vt 0.172414 0.359375 +vt 0.158621 0.281250 +vt 0.172414 0.343750 +vt 0.172414 0.375000 +vt 0.186207 0.343750 +vt 0.186207 0.359375 +vt 0.186207 0.375000 +vt 0.186207 0.390625 +vt 0.186207 0.406250 +vt 0.186207 0.312500 +vt 0.186207 0.328125 +vt 0.172414 0.281250 +vt 0.186207 0.296875 +vt 0.193103 -0.000000 +vt 0.186207 -0.000000 +vt 0.151724 -0.000000 +vt 0.144828 -0.000000 +vt 0.158621 -0.000000 +vt 0.179310 -0.000000 +vt 0.172414 -0.000000 +vt 0.165517 -0.000000 +vt 0.193103 0.109375 +vt 0.200000 0.109375 +vt 0.151724 0.109375 +vt 0.158621 0.109375 +vt 0.179310 0.109375 +vt 0.186207 0.109375 +vt 0.165517 0.109375 +vt 0.172414 0.109375 +vt 0.124138 0.390625 +vt 0.144828 0.375000 +vt 0.144828 0.390625 +vt 0.124138 0.343750 +vt 0.144828 0.359375 +vt 0.124138 0.359375 +vt 0.124138 0.312500 +vt 0.144828 0.328125 +vt 0.124138 0.328125 +vt 0.124138 0.296875 +vt 0.144828 0.312500 +vt 0.124138 0.406250 +vt 0.144828 0.406250 +vt 0.124138 0.375000 +vt 0.144828 0.343750 +vt 0.124138 0.281250 +vt 0.144828 0.296875 +vt 0.158621 0.312500 +vt 0.158621 0.328125 +vt 0.158621 0.359375 +vt 0.158621 0.390625 +vt 0.144828 0.281250 +vt 0.158621 0.296875 +vt 0.158621 0.343750 +vt 0.158621 0.375000 +vt 0.158621 0.406250 +vt 0.172414 0.406250 +vt 0.172414 0.296875 +vt 0.172414 0.312500 +vt 0.172414 0.328125 +vt 0.172414 0.359375 +vt 0.172414 0.390625 +vt 0.158621 0.281250 +vt 0.172414 0.343750 +vt 0.172414 0.375000 +vt 0.186207 0.343750 +vt 0.186207 0.359375 +vt 0.186207 0.375000 +vt 0.186207 0.390625 +vt 0.186207 0.406250 +vt 0.186207 0.312500 +vt 0.186207 0.328125 +vt 0.172414 0.281250 +vt 0.186207 0.296875 +vt 0.193103 -0.000000 +vt 0.186207 -0.000000 +vt 0.151724 -0.000000 +vt 0.144828 -0.000000 +vt 0.158621 -0.000000 +vt 0.179310 -0.000000 +vt 0.172414 -0.000000 +vt 0.165517 -0.000000 +vt 0.193103 0.109375 +vt 0.200000 0.109375 +vt 0.151724 0.109375 +vt 0.158621 0.109375 +vt 0.179310 0.109375 +vt 0.186207 0.109375 +vt 0.165517 0.109375 +vt 0.172414 0.109375 +vt 0.124138 0.390625 +vt 0.144828 0.375000 +vt 0.144828 0.390625 +vt 0.124138 0.343750 +vt 0.144828 0.359375 +vt 0.124138 0.359375 +vt 0.124138 0.312500 +vt 0.144828 0.328125 +vt 0.124138 0.328125 +vt 0.124138 0.296875 +vt 0.144828 0.312500 +vt 0.124138 0.406250 +vt 0.144828 0.406250 +vt 0.124138 0.375000 +vt 0.144828 0.343750 +vt 0.124138 0.281250 +vt 0.144828 0.296875 +vt 0.158621 0.312500 +vt 0.158621 0.328125 +vt 0.158621 0.359375 +vt 0.158621 0.390625 +vt 0.144828 0.281250 +vt 0.158621 0.296875 +vt 0.158621 0.343750 +vt 0.158621 0.375000 +vt 0.158621 0.406250 +vt 0.172414 0.390625 +vt 0.172414 0.406250 +vt 0.172414 0.296875 +vt 0.172414 0.312500 +vt 0.172414 0.328125 +vt 0.172414 0.359375 +vt 0.158621 0.281250 +vt 0.172414 0.343750 +vt 0.172414 0.375000 +vt 0.186207 0.343750 +vt 0.186207 0.359375 +vt 0.186207 0.375000 +vt 0.186207 0.390625 +vt 0.186207 0.406250 +vt 0.186207 0.312500 +vt 0.186207 0.328125 +vt 0.172414 0.281250 +vt 0.186207 0.296875 +vt 0.193103 -0.000000 +vt 0.186207 -0.000000 +vt 0.151724 -0.000000 +vt 0.144828 -0.000000 +vt 0.158621 -0.000000 +vt 0.179310 -0.000000 +vt 0.172414 -0.000000 +vt 0.165517 -0.000000 +vt 0.193103 0.109375 +vt 0.200000 0.109375 +vt 0.151724 0.109375 +vt 0.158621 0.109375 +vt 0.179310 0.109375 +vt 0.186207 0.109375 +vt 0.165517 0.109375 +vt 0.172414 0.109375 +vt 0.124138 0.390625 +vt 0.144828 0.375000 +vt 0.144828 0.390625 +vt 0.124138 0.343750 +vt 0.144828 0.359375 +vt 0.124138 0.359375 +vt 0.124138 0.312500 +vt 0.144828 0.328125 +vt 0.124138 0.328125 +vt 0.124138 0.296875 +vt 0.144828 0.312500 +vt 0.124138 0.406250 +vt 0.144828 0.406250 +vt 0.124138 0.375000 +vt 0.144828 0.343750 +vt 0.124138 0.281250 +vt 0.144828 0.296875 +vt 0.158621 0.312500 +vt 0.158621 0.328125 +vt 0.158621 0.359375 +vt 0.158621 0.390625 +vt 0.144828 0.281250 +vt 0.158621 0.296875 +vt 0.158621 0.343750 +vt 0.158621 0.375000 +vt 0.158621 0.406250 +vt 0.172414 0.390625 +vt 0.172414 0.406250 +vt 0.172414 0.296875 +vt 0.172414 0.312500 +vt 0.172414 0.328125 +vt 0.172414 0.359375 +vt 0.158621 0.281250 +vt 0.172414 0.343750 +vt 0.172414 0.375000 +vt 0.186207 0.343750 +vt 0.186207 0.359375 +vt 0.186207 0.375000 +vt 0.186207 0.390625 +vt 0.186207 0.406250 +vt 0.186207 0.312500 +vt 0.186207 0.328125 +vt 0.172414 0.281250 +vt 0.186207 0.296875 +vt 0.193103 -0.000000 +vt 0.186207 -0.000000 +vt 0.151724 -0.000000 +vt 0.144828 -0.000000 +vt 0.158621 -0.000000 +vt 0.172414 -0.000000 +vt 0.165517 -0.000000 +vt 0.179310 -0.000000 +vt 0.193103 0.109375 +vt 0.200000 0.109375 +vt 0.151724 0.109375 +vt 0.158621 0.109375 +vt 0.179310 0.109375 +vt 0.186207 0.109375 +vt 0.165517 0.109375 +vt 0.172414 0.109375 +vt 0.255172 0.218750 +vt 0.296552 0.234375 +vt 0.255172 0.234375 +vt 0.255172 0.187500 +vt 0.296552 0.203125 +vt 0.255172 0.203125 +vt 0.296552 0.250000 +vt 0.255172 0.250000 +vt 0.296552 0.218750 +vt 0.310345 0.187500 +vt 0.310345 0.203125 +vt 0.310345 0.250000 +vt 0.310345 0.218750 +vt 0.310345 0.234375 +vt 0.324138 0.234375 +vt 0.324138 0.187500 +vt 0.324138 0.203125 +vt 0.324138 0.250000 +vt 0.324138 0.218750 +vt 0.255172 0.218750 +vt 0.296552 0.234375 +vt 0.255172 0.234375 +vt 0.255172 0.187500 +vt 0.296552 0.203125 +vt 0.255172 0.203125 +vt 0.296552 0.250000 +vt 0.255172 0.250000 +vt 0.296552 0.218750 +vt 0.310345 0.187500 +vt 0.310345 0.203125 +vt 0.310345 0.250000 +vt 0.310345 0.218750 +vt 0.310345 0.234375 +vt 0.324138 0.234375 +vt 0.324138 0.187500 +vt 0.324138 0.203125 +vt 0.324138 0.250000 +vt 0.324138 0.218750 +vt 0.255172 0.218750 +vt 0.296552 0.234375 +vt 0.255172 0.234375 +vt 0.255172 0.187500 +vt 0.296552 0.203125 +vt 0.255172 0.203125 +vt 0.296552 0.250000 +vt 0.255172 0.250000 +vt 0.296552 0.218750 +vt 0.310345 0.187500 +vt 0.310345 0.203125 +vt 0.310345 0.250000 +vt 0.310345 0.218750 +vt 0.310345 0.234375 +vt 0.324138 0.234375 +vt 0.324138 0.187500 +vt 0.324138 0.203125 +vt 0.324138 0.250000 +vt 0.324138 0.218750 +vt 0.089655 0.375000 +vt 0.075862 0.421875 +vt 0.075862 0.375000 +vt 0.075862 0.328125 +vt 0.089655 0.328125 +vt 0.075862 0.281250 +vt 0.089655 0.281250 +vt 0.075862 0.234375 +vt 0.089655 0.234375 +vt 0.075862 0.187500 +vt 0.089655 0.187500 +vt 0.089655 0.140625 +vt 0.075862 0.140625 +vt 0.089655 0.093750 +vt 0.075862 0.093750 +vt 0.089655 0.046875 +vt 0.075862 0.046875 +vt 0.089655 -0.000000 +vt 0.075862 0.000000 +vt 0.089655 0.750000 +vt 0.075862 0.703125 +vt 0.089655 0.703125 +vt 0.075862 0.656250 +vt 0.089655 0.656250 +vt 0.089655 0.609375 +vt 0.075862 0.609375 +vt 0.075862 0.562500 +vt 0.089655 0.562500 +vt 0.075862 0.515625 +vt 0.089655 0.515625 +vt 0.075862 0.468750 +vt 0.089655 0.468750 +vt 0.089655 0.421875 +vt 0.055172 0.375000 +vt 0.055172 0.328125 +vt 0.055172 -0.000000 +vt 0.055172 0.421875 +vt 0.055172 0.046875 +vt 0.055172 0.468750 +vt 0.055172 0.093750 +vt 0.055172 0.515625 +vt 0.055172 0.140625 +vt 0.055172 0.562500 +vt 0.055172 0.187500 +vt 0.055172 0.609375 +vt 0.055172 0.234375 +vt 0.055172 0.656250 +vt 0.055172 0.281250 +vt 0.075862 0.750000 +vt 0.055172 0.703125 +vt 0.000000 0.125000 +vt 0.000000 0.093750 +vt -0.000000 0.546875 +vt 0.000000 0.515625 +vt -0.000000 0.140625 +vt -0.000000 0.593750 +vt -0.000000 0.562500 +vt 0.000000 0.218750 +vt 0.000000 0.187500 +vt 0.000000 0.609375 +vt -0.000000 0.234375 +vt 0.000000 0.687500 +vt 0.000000 0.656250 +vt -0.000000 0.281250 +vt 0.055172 0.750000 +vt 0.000000 0.703125 +vt -0.000000 0.406250 +vt -0.000000 0.375000 +vt 0.000000 0.328125 +vt 0.000000 0.031250 +vt -0.000000 0.000000 +vt 0.000000 0.421875 +vt -0.000000 0.046875 +vt -0.000000 0.500000 +vt 0.000000 0.468750 +vt 0.393103 0.937500 +vt 0.413793 1.000000 +vt 0.393103 1.000000 +vt 0.393103 0.500000 +vt 0.413793 0.562500 +vt 0.393103 0.562500 +vt 0.393103 0.437500 +vt 0.413793 0.500000 +vt 0.393103 -0.000000 +vt 0.413793 0.062500 +vt 0.393103 0.062500 +vt 0.413793 0.625000 +vt 0.393103 0.625000 +vt 0.413793 0.125000 +vt 0.393103 0.125000 +vt 0.413793 0.687500 +vt 0.393103 0.687500 +vt 0.413793 0.187500 +vt 0.393103 0.187500 +vt 0.413793 0.750000 +vt 0.393103 0.750000 +vt 0.413793 0.250000 +vt 0.393103 0.250000 +vt 0.413793 0.812500 +vt 0.393103 0.812500 +vt 0.413793 0.312500 +vt 0.393103 0.312500 +vt 0.413793 0.875000 +vt 0.393103 0.875000 +vt 0.413793 0.375000 +vt 0.393103 0.375000 +vt 0.413793 0.937500 +vt 0.413793 0.437500 +vt 0.186207 0.281250 +vt 0.200000 -0.000000 +vt 0.144828 0.109375 +vt 0.958621 0.515625 +vt 0.972414 0.515625 +vt 0.310345 0.187500 +vt 0.324138 0.218750 +vt 0.324138 0.187500 +vt 0.324138 0.218750 +vt 0.324138 0.187500 +vt 0.324138 0.250000 +vt 0.324138 0.218750 +vt 0.255172 0.250000 +vt 0.255172 0.250000 +vt 0.255172 0.250000 +vt 0.324138 0.187500 +vt 0.310345 0.187500 +vt 0.255172 0.187500 +vt 0.255172 0.187500 +vt 0.255172 0.187500 +vt 0.186207 0.281250 +vt 0.200000 -0.000000 +vt 0.144828 0.109375 +vt 0.186207 0.281250 +vt 0.200000 -0.000000 +vt 0.144828 0.109375 +vt 0.186207 0.281250 +vt 0.200000 -0.000000 +vt 0.144828 0.109375 +vt 0.186207 0.281250 +vt 0.200000 -0.000000 +vt 0.144828 0.109375 +vt 0.186207 0.281250 +vt 0.200000 -0.000000 +vt 0.144828 0.109375 +vt 0.186207 0.281250 +vt 0.200000 -0.000000 +vt 0.144828 0.109375 +vt 0.186207 0.281250 +vt 0.200000 -0.000000 +vt 0.144828 0.109375 +vt 0.296552 0.187500 +vt 0.296552 0.187500 +vt 0.296552 0.187500 +vt -0.000000 0.171875 +vt 0.000000 0.640625 +vt -0.000000 0.265625 +vt -0.000000 0.312500 +vt -0.000000 0.734375 +vt 0.000000 0.359375 +vt -0.000000 0.453125 +vt -0.000000 0.078125 +vt 0.413793 -0.000000 +vn -1.0000 0.0000 0.0000 +vn 0.7071 -0.7071 -0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 -0.0000 +vn -0.7071 -0.7071 -0.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 1.0000 0.0000 +vn -0.7071 -0.7071 0.0057 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.9487 -0.3162 +vn 0.0000 0.4472 -0.8944 +vn 0.1617 0.3904 0.9063 +vn 0.1617 0.3905 0.9063 +vn 0.1752 0.8806 0.4403 +vn 0.0859 0.4318 -0.8979 +vn 0.9845 -0.1567 -0.0783 +vn -0.0859 -0.4318 0.8978 +vn -0.9695 0.2320 -0.0783 +vn -0.7071 0.7071 0.0000 +vn 0.0000 -0.3827 -0.9239 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 0.9239 -0.3827 +vn 0.0000 -0.9239 -0.3827 +vn 0.0000 -0.3827 0.9239 +vn 0.0000 0.9239 0.3827 +vn 0.0000 0.3827 -0.9239 +vn 0.7071 0.7071 0.0000 +vn -0.3162 0.3162 -0.8944 +vn 0.0000 0.4226 -0.9063 +vn 0.0000 0.9063 0.4226 +vn -0.7071 0.6409 0.2988 +vn 0.7071 0.6409 0.2988 +vn 0.0000 0.7934 0.6088 +vn 0.0000 0.1305 -0.9914 +vn 0.0000 0.5000 0.8660 +vn 0.0000 0.5000 -0.8660 +vn 0.0000 -0.5000 -0.8660 +vn 0.0000 -0.5000 0.8660 +vn 0.6547 0.3780 -0.6547 +vn 0.6547 -0.3780 -0.6547 +vn 0.6547 -0.3780 0.6547 +vn 0.6547 0.7559 0.0000 +vn 0.6547 -0.7559 0.0000 +vn 0.6547 0.3780 0.6547 +vn 0.0000 0.7071 0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.7071 -0.7071 +vn -0.5000 -0.7849 -0.3660 +vn -0.0000 -0.4226 0.9063 +vn -0.2357 0.2357 0.9428 +vn 0.2357 0.2357 0.9428 +vn -0.2357 -0.2357 -0.9428 +vn -0.2357 -0.2357 0.9428 +vn 0.0000 -0.9285 0.3714 +vn 0.0000 0.9285 -0.3714 +vn 0.0000 -0.9900 -0.1407 +vn 0.0000 0.9900 0.1407 +vn -0.1617 -0.3904 0.9063 +vn -0.1617 -0.3905 0.9063 +vn 0.3904 -0.1617 0.9063 +vn 0.3905 -0.1617 0.9063 +vn -0.3904 0.1617 0.9063 +vn -0.3905 0.1617 0.9063 +vn 0.3905 0.1617 0.9063 +vn 0.3904 0.1617 0.9063 +vn -0.3905 -0.1617 0.9063 +vn -0.3904 -0.1617 0.9063 +vn 0.1617 -0.3905 0.9063 +vn 0.1617 -0.3904 0.9063 +vn -0.1617 0.3905 0.9063 +vn -0.1617 0.3904 0.9063 +vn -0.1752 -0.8806 0.4403 +vn -0.0859 -0.4318 -0.8979 +vn -0.9845 0.1567 -0.0783 +vn 0.0859 0.4318 0.8978 +vn 0.9695 -0.2320 -0.0783 +vn 0.8806 -0.1752 0.4403 +vn 0.4318 -0.0859 -0.8979 +vn -0.1567 -0.9845 -0.0783 +vn -0.4318 0.0859 0.8978 +vn 0.2320 0.9695 -0.0783 +vn -0.8806 0.1752 0.4403 +vn -0.4318 0.0859 -0.8979 +vn 0.1567 0.9845 -0.0783 +vn 0.4318 -0.0859 0.8978 +vn -0.2320 -0.9695 -0.0783 +vn 0.7465 0.4988 0.4403 +vn 0.3661 0.2446 -0.8979 +vn 0.5854 -0.8070 -0.0783 +vn -0.3661 -0.2446 0.8978 +vn -0.5215 0.8496 -0.0783 +vn -0.7465 -0.4988 0.4403 +vn -0.3661 -0.2446 -0.8979 +vn -0.5854 0.8070 -0.0783 +vn 0.3661 0.2446 0.8978 +vn 0.5215 -0.8496 -0.0783 +vn 0.4988 -0.7465 0.4403 +vn 0.2446 -0.3661 -0.8979 +vn -0.8070 -0.5854 -0.0783 +vn -0.2446 0.3661 0.8978 +vn 0.8496 0.5215 -0.0783 +vn -0.4988 0.7465 0.4403 +vn -0.2446 0.3661 -0.8979 +vn 0.8070 0.5854 -0.0783 +vn 0.2446 -0.3661 0.8978 +vn -0.8496 -0.5215 -0.0783 +vn 0.4988 0.7465 0.4403 +vn 0.2446 0.3661 -0.8979 +vn 0.8496 -0.5215 -0.0783 +vn -0.2446 -0.3661 0.8978 +vn -0.8070 0.5854 -0.0783 +vn -0.4988 -0.7465 0.4403 +vn -0.2446 -0.3661 -0.8979 +vn -0.8496 0.5215 -0.0783 +vn 0.2446 0.3661 0.8978 +vn 0.8070 -0.5854 -0.0783 +vn 0.7465 -0.4988 0.4403 +vn 0.3661 -0.2446 -0.8979 +vn -0.5215 -0.8496 -0.0783 +vn -0.3661 0.2446 0.8978 +vn 0.5854 0.8070 -0.0783 +vn -0.7465 0.4988 0.4403 +vn -0.3661 0.2446 -0.8979 +vn 0.5215 0.8496 -0.0783 +vn 0.3661 -0.2446 0.8978 +vn -0.5854 -0.8070 -0.0783 +vn 0.8806 0.1752 0.4403 +vn 0.4318 0.0859 -0.8979 +vn 0.2320 -0.9696 -0.0783 +vn -0.4318 -0.0859 0.8978 +vn -0.1567 0.9845 -0.0783 +vn -0.8806 -0.1752 0.4403 +vn -0.4318 -0.0859 -0.8979 +vn -0.2320 0.9696 -0.0783 +vn 0.4318 0.0859 0.8978 +vn 0.1567 -0.9845 -0.0783 +vn 0.1752 -0.8806 0.4403 +vn 0.0859 -0.4318 -0.8979 +vn -0.9696 -0.2320 -0.0783 +vn -0.0859 0.4318 0.8978 +vn 0.9845 0.1567 -0.0783 +vn -0.1752 0.8806 0.4403 +vn -0.0859 0.4318 -0.8979 +vn 0.9696 0.2320 -0.0783 +vn 0.0859 -0.4318 0.8978 +vn -0.9845 -0.1567 -0.0783 +vn -0.7082 -0.7060 -0.0004 +vn -0.7085 -0.7057 0.0000 +vn 0.0859 0.4318 -0.8978 +vn -0.0859 -0.4318 -0.8978 +vn 0.4318 -0.0859 -0.8978 +vn -0.4318 0.0859 -0.8978 +vn 0.3661 0.2446 -0.8978 +vn -0.3661 -0.2446 -0.8978 +vn 0.2446 -0.3661 -0.8978 +vn -0.2446 0.3661 -0.8978 +vn 0.2446 0.3661 -0.8978 +vn -0.2446 -0.3661 -0.8978 +vn 0.3661 -0.2446 -0.8978 +vn -0.3661 0.2446 -0.8978 +vn 0.4318 0.0859 -0.8978 +vn -0.4318 -0.0859 -0.8978 +vn 0.0859 -0.4318 -0.8978 +vn -0.0859 0.4318 -0.8978 +vn 0.7311 -0.6303 -0.2611 +vn 0.9973 0.0609 0.0399 +vn 0.7430 -0.5190 -0.4226 +vn 0.6721 0.5735 0.4683 +vn 0.6333 0.7150 0.2962 +vn -0.9947 0.0948 0.0393 +vn -0.6721 0.5735 0.4683 +vn -0.6333 0.7150 0.2962 +vn -0.7311 -0.6303 -0.2611 +vn -0.9973 0.0609 0.0399 +vn 0.0000 -0.7779 -0.6284 +vn 0.9947 0.0948 0.0393 +vn 0.0000 0.7690 0.6392 +vn -0.7430 -0.5190 -0.4226 +vn -0.9989 0.0183 0.0441 +vn -0.6840 0.2791 0.6739 +vn 0.6840 0.2791 0.6739 +vn 0.7317 -0.2608 -0.6297 +vn -0.7317 -0.2608 -0.6297 +vn 0.0000 0.3827 0.9239 +vn 0.9989 0.0183 0.0441 +vn 0.7317 0.0000 -0.6816 +vn -0.7317 0.0000 -0.6816 +vn -0.9989 0.0000 0.0477 +vn -0.6841 -0.0000 0.7294 +vn 0.6840 -0.0000 0.7294 +vn 0.9989 0.0000 0.0477 +vn 0.0000 -0.1951 0.9808 +vn 0.6770 -0.1436 0.7219 +vn 0.9988 -0.0095 0.0477 +vn 0.7251 0.1344 -0.6754 +vn 0.0000 0.1951 -0.9808 +vn -0.9988 -0.0095 0.0477 +vn -0.6770 -0.1436 0.7219 +vn -0.7251 0.1344 -0.6754 +vn 0.8985 0.3215 -0.2988 +vn 0.9239 -0.3827 -0.0000 +vn -0.4080 0.8627 -0.2988 +vn 0.3468 0.8373 -0.4226 +vn -0.9239 0.3827 0.0000 +vn -0.8985 -0.3215 0.2988 +vn 0.4080 -0.8627 0.2988 +vn -0.3468 -0.8373 0.4226 +vn -0.4080 0.8627 -0.2989 +vn 0.3827 0.9239 0.0000 +vn 0.9239 0.3827 0.0000 +vn 0.3827 -0.9239 0.0000 +vn -0.3827 -0.9239 0.0000 +vn -0.9239 -0.3827 0.0000 +vn -0.3827 0.9239 0.0000 +vn 0.0000 -0.9063 -0.4226 +vn -0.8660 0.4532 0.2113 +vn 0.2588 0.8754 0.4082 +vn 0.5000 0.7849 0.3660 +vn 0.5000 -0.7849 -0.3660 +vn -0.8660 -0.4532 -0.2113 +vn 0.8660 0.4532 0.2113 +vn -0.5000 0.7849 0.3660 +vn -0.2588 0.8754 0.4082 +vn 0.7071 -0.6409 -0.2988 +vn 0.9659 -0.2346 -0.1094 +vn 0.8660 -0.4532 -0.2113 +vn 0.6947 0.6947 0.1866 +vn 0.8431 -0.0945 0.5293 +vn 0.9891 0.0283 0.1448 +vn -0.3812 0.9204 0.0866 +vn -0.0945 0.8431 0.5294 +vn 0.0283 0.9891 0.1448 +vn 0.0945 0.8431 0.5294 +vn 0.3812 0.9204 0.0866 +vn -0.0283 0.9891 0.1448 +vn -0.8431 -0.0945 0.5293 +vn -0.6947 0.6947 0.1866 +vn -0.9891 0.0283 0.1448 +vn -0.9204 -0.3812 0.0866 +vn -0.5000 0.5000 0.7071 +vn 0.2384 0.6572 0.7150 +vn -0.8446 -0.4619 0.2706 +vn -0.6572 -0.2384 0.7150 +vn 0.5345 0.7559 0.3780 +vn 0.4619 0.8446 0.2706 +vn -0.8431 -0.0945 0.5294 +vn -0.7559 -0.5345 0.3780 +vn 0.5000 0.5000 0.7071 +vn 0.9204 -0.3812 0.0866 +vn 0.8446 -0.4619 0.2706 +vn -0.2384 0.6572 0.7150 +vn 0.2706 0.2706 0.9239 +vn 0.6572 -0.2384 0.7150 +vn 0.7559 -0.5345 0.3780 +vn -0.5345 0.7559 0.3780 +vn -0.4619 0.8446 0.2706 +vn 0.8431 -0.0945 0.5294 +vn -0.7311 0.6303 -0.2611 +vn -0.9973 -0.0609 0.0399 +vn -0.7430 0.5190 -0.4226 +vn -0.6721 -0.5735 0.4683 +vn -0.6333 -0.7150 0.2962 +vn 0.9947 -0.0948 0.0393 +vn 0.6721 -0.5735 0.4683 +vn 0.6333 -0.7150 0.2962 +vn 0.7311 0.6303 -0.2611 +vn 0.9973 -0.0609 0.0399 +vn -0.0000 0.7779 -0.6284 +vn -0.9947 -0.0948 0.0393 +vn -0.0000 -0.7690 0.6392 +vn 0.7430 0.5190 -0.4226 +vn 0.9989 -0.0183 0.0441 +vn 0.6841 -0.2791 0.6739 +vn -0.6840 -0.2791 0.6739 +vn -0.7317 0.2608 -0.6297 +vn 0.7317 0.2608 -0.6297 +vn -0.9989 -0.0183 0.0441 +vn 0.6841 -0.0000 0.7294 +vn -0.6840 0.0000 0.7294 +vn -0.0000 0.1951 0.9808 +vn -0.6770 0.1436 0.7219 +vn -0.9988 0.0095 0.0477 +vn -0.7251 -0.1344 -0.6754 +vn -0.0000 -0.1951 -0.9808 +vn 0.9988 0.0095 0.0477 +vn 0.6770 0.1436 0.7219 +vn 0.7251 -0.1344 -0.6754 +vn -0.8985 -0.3215 -0.2988 +vn 0.4080 -0.8627 -0.2988 +vn -0.3468 -0.8373 -0.4226 +vn 0.8985 0.3215 0.2988 +vn -0.4080 0.8627 0.2988 +vn 0.3468 0.8373 0.4226 +vn 0.4080 -0.8627 -0.2989 +vn -0.6303 -0.7311 -0.2611 +vn 0.0609 -0.9973 0.0399 +vn -0.5190 -0.7430 -0.4226 +vn 0.9239 -0.0000 0.3827 +vn 0.5735 -0.6721 0.4683 +vn 0.7150 -0.6333 0.2962 +vn 0.0948 0.9947 0.0393 +vn 0.5735 0.6721 0.4683 +vn 0.7150 0.6333 0.2962 +vn -0.6303 0.7311 -0.2611 +vn 0.0609 0.9973 0.0399 +vn -0.9239 -0.0000 -0.3827 +vn -0.7779 -0.0000 -0.6284 +vn 0.0948 -0.9947 0.0393 +vn 0.7690 -0.0000 0.6392 +vn -0.5190 0.7430 -0.4226 +vn 0.0183 0.9989 0.0441 +vn 0.2791 0.6841 0.6739 +vn 0.2791 -0.6840 0.6739 +vn -0.2608 -0.7317 -0.6297 +vn -0.2608 0.7317 -0.6297 +vn 0.3827 -0.0000 0.9239 +vn 0.0183 -0.9989 0.0441 +vn -0.3827 -0.0000 -0.9239 +vn 0.0000 -0.7317 -0.6816 +vn 0.0000 0.7317 -0.6816 +vn 0.0000 0.9989 0.0477 +vn 0.0000 0.6841 0.7294 +vn -0.0000 -0.6840 0.7294 +vn 0.0000 -0.9989 0.0477 +vn -0.1951 -0.0000 0.9808 +vn -0.1436 -0.6770 0.7219 +vn -0.0095 -0.9988 0.0477 +vn 0.1344 -0.7251 -0.6754 +vn 0.1951 -0.0000 -0.9808 +vn -0.0095 0.9988 0.0477 +vn -0.1436 0.6770 0.7219 +vn 0.1344 0.7251 -0.6754 +vn 0.3215 -0.8985 -0.2988 +vn 0.8627 0.4080 -0.2988 +vn 0.8373 -0.3468 -0.4226 +vn -0.3215 0.8985 0.2988 +vn -0.8627 -0.4080 0.2988 +vn -0.8373 0.3468 0.4226 +vn 0.8627 0.4080 -0.2989 +vn 0.6303 0.7311 -0.2611 +vn -0.0609 0.9973 0.0399 +vn 0.5190 0.7430 -0.4226 +vn -0.9239 0.0000 0.3827 +vn -0.5735 0.6721 0.4683 +vn -0.7150 0.6333 0.2962 +vn -0.0948 -0.9947 0.0393 +vn -0.5735 -0.6721 0.4683 +vn -0.7150 -0.6333 0.2962 +vn 0.6303 -0.7311 -0.2611 +vn -0.0609 -0.9973 0.0399 +vn 0.9239 0.0000 -0.3827 +vn 0.7779 0.0000 -0.6284 +vn -0.0948 0.9947 0.0393 +vn -0.7690 0.0000 0.6392 +vn 0.5190 -0.7430 -0.4226 +vn -0.0183 -0.9989 0.0441 +vn -0.2791 -0.6840 0.6739 +vn -0.2791 0.6840 0.6739 +vn 0.2608 0.7317 -0.6297 +vn 0.2608 -0.7317 -0.6297 +vn -0.3827 0.0000 0.9239 +vn -0.0183 0.9989 0.0441 +vn 0.3827 0.0000 -0.9239 +vn -0.0000 -0.6841 0.7294 +vn 0.0000 0.6840 0.7294 +vn 0.1951 0.0000 0.9808 +vn 0.1436 0.6770 0.7219 +vn 0.0095 0.9988 0.0477 +vn -0.1344 0.7251 -0.6754 +vn -0.1951 0.0000 -0.9808 +vn 0.0095 -0.9988 0.0477 +vn 0.1436 -0.6770 0.7219 +vn -0.1344 -0.7251 -0.6754 +vn -0.3215 0.8985 -0.2988 +vn -0.8627 -0.4080 -0.2988 +vn -0.8373 0.3468 -0.4226 +vn 0.3215 -0.8985 0.2988 +vn 0.8373 -0.3468 0.4226 +vn 0.8627 0.4080 0.2988 +vn -0.8627 -0.4080 -0.2989 +vn 0.3215 -0.8985 0.2989 +vn 0.0712 -0.9627 -0.2611 +vn 0.7483 -0.6622 0.0399 +vn 0.1584 -0.8924 -0.4226 +vn 0.6533 0.6533 0.3827 +vn 0.8808 -0.0697 0.4683 +vn 0.9534 0.0578 0.2962 +vn -0.6364 0.7704 0.0393 +vn -0.0697 0.8808 0.4683 +vn 0.0578 0.9534 0.2962 +vn -0.9627 0.0712 -0.2611 +vn -0.6622 0.7483 0.0399 +vn -0.6533 -0.6533 -0.3827 +vn -0.5501 -0.5501 -0.6284 +vn 0.7704 -0.6363 0.0393 +vn 0.5438 0.5438 0.6392 +vn -0.8924 0.1584 -0.4226 +vn -0.6934 0.7192 0.0441 +vn -0.2863 0.6811 0.6739 +vn 0.6811 -0.2863 0.6739 +vn 0.3330 -0.7018 -0.6297 +vn -0.7018 0.3330 -0.6297 +vn 0.7192 -0.6934 0.0441 +vn -0.2706 -0.2706 -0.9239 +vn 0.5174 -0.5174 -0.6816 +vn -0.5174 0.5174 -0.6816 +vn -0.7063 0.7063 0.0477 +vn -0.4837 0.4837 0.7294 +vn 0.4837 -0.4837 0.7294 +vn 0.7063 -0.7063 0.0477 +vn -0.1379 -0.1379 0.9808 +vn 0.3772 -0.5802 0.7219 +vn 0.6996 -0.7130 0.0477 +vn 0.6077 -0.4177 -0.6754 +vn 0.1380 0.1379 -0.9808 +vn -0.7130 0.6996 0.0477 +vn -0.5802 0.3772 0.7219 +vn -0.4177 0.6077 -0.6754 +vn 0.8627 -0.4080 -0.2988 +vn 0.3215 0.8985 -0.2988 +vn 0.8373 0.3468 -0.4226 +vn -0.8627 0.4080 0.2988 +vn -0.3215 -0.8985 0.2988 +vn -0.8373 -0.3468 0.4226 +vn 0.3215 0.8985 -0.2989 +vn -0.0712 0.9627 -0.2611 +vn -0.7483 0.6622 0.0399 +vn -0.1584 0.8924 -0.4226 +vn -0.6533 -0.6533 0.3827 +vn -0.8808 0.0697 0.4683 +vn -0.9534 -0.0578 0.2962 +vn 0.6364 -0.7704 0.0393 +vn 0.0697 -0.8808 0.4683 +vn -0.0578 -0.9534 0.2962 +vn 0.9627 -0.0712 -0.2611 +vn 0.6622 -0.7483 0.0399 +vn 0.6533 0.6533 -0.3827 +vn 0.5501 0.5501 -0.6284 +vn -0.7704 0.6363 0.0393 +vn -0.5438 -0.5438 0.6392 +vn 0.8924 -0.1584 -0.4226 +vn 0.6934 -0.7192 0.0441 +vn 0.2863 -0.6811 0.6739 +vn -0.6811 0.2863 0.6739 +vn -0.3330 0.7018 -0.6297 +vn 0.7018 -0.3330 -0.6297 +vn -0.2706 -0.2706 0.9239 +vn -0.7192 0.6934 0.0441 +vn 0.2706 0.2706 -0.9239 +vn 0.1379 0.1379 0.9808 +vn -0.3772 0.5802 0.7219 +vn -0.6996 0.7130 0.0477 +vn -0.6077 0.4177 -0.6754 +vn -0.1380 -0.1380 -0.9808 +vn 0.7130 -0.6996 0.0477 +vn 0.5802 -0.3772 0.7219 +vn 0.4177 -0.6077 -0.6754 +vn -0.8627 0.4080 -0.2988 +vn -0.3215 -0.8985 -0.2988 +vn -0.8373 -0.3468 -0.4226 +vn 0.8627 -0.4080 0.2988 +vn 0.3215 0.8985 0.2988 +vn 0.8373 0.3468 0.4226 +vn -0.8627 0.4080 -0.2989 +vn -0.3215 -0.8985 -0.2989 +vn 0.8627 -0.4080 0.2989 +vn -0.9627 -0.0712 -0.2611 +vn -0.6622 -0.7483 0.0399 +vn -0.8924 -0.1584 -0.4226 +vn 0.6533 -0.6533 0.3827 +vn -0.0697 -0.8808 0.4683 +vn 0.0578 -0.9534 0.2962 +vn 0.7704 0.6364 0.0393 +vn 0.8808 0.0697 0.4683 +vn 0.9534 -0.0578 0.2962 +vn 0.0712 0.9627 -0.2611 +vn 0.7483 0.6622 0.0399 +vn -0.6533 0.6533 -0.3827 +vn -0.5501 0.5501 -0.6284 +vn -0.6363 -0.7704 0.0393 +vn 0.5438 -0.5438 0.6392 +vn 0.1584 0.8924 -0.4226 +vn 0.7192 0.6934 0.0441 +vn 0.6811 0.2863 0.6739 +vn -0.2863 -0.6811 0.6739 +vn -0.7018 -0.3330 -0.6297 +vn 0.3330 0.7018 -0.6297 +vn 0.2706 -0.2706 0.9239 +vn -0.6934 -0.7192 0.0441 +vn -0.2706 0.2706 -0.9239 +vn -0.5174 -0.5174 -0.6816 +vn 0.5174 0.5174 -0.6816 +vn 0.7063 0.7063 0.0477 +vn 0.4837 0.4837 0.7294 +vn -0.4837 -0.4837 0.7294 +vn -0.7063 -0.7063 0.0477 +vn -0.1379 0.1379 0.9808 +vn -0.5802 -0.3772 0.7219 +vn -0.7130 -0.6996 0.0477 +vn -0.4177 -0.6077 -0.6754 +vn 0.1379 -0.1380 -0.9808 +vn 0.6996 0.7130 0.0477 +vn 0.3772 0.5802 0.7219 +vn 0.6077 0.4177 -0.6754 +vn -0.4080 -0.8627 -0.2988 +vn 0.8985 -0.3215 -0.2988 +vn 0.3468 -0.8373 -0.4226 +vn 0.4080 0.8627 0.2988 +vn -0.8985 0.3215 0.2988 +vn -0.3468 0.8373 0.4226 +vn 0.8985 -0.3215 -0.2989 +vn 0.9627 0.0712 -0.2611 +vn 0.6622 0.7483 0.0399 +vn 0.8924 0.1584 -0.4226 +vn -0.6533 0.6533 0.3827 +vn 0.0697 0.8808 0.4683 +vn -0.0578 0.9534 0.2962 +vn -0.7704 -0.6363 0.0393 +vn -0.8808 -0.0697 0.4683 +vn -0.9534 0.0578 0.2962 +vn -0.0713 -0.9627 -0.2611 +vn -0.7483 -0.6622 0.0399 +vn 0.6533 -0.6533 -0.3827 +vn 0.5501 -0.5501 -0.6284 +vn 0.6363 0.7704 0.0393 +vn -0.5438 0.5438 0.6392 +vn -0.1584 -0.8924 -0.4226 +vn -0.7192 -0.6934 0.0441 +vn -0.6811 -0.2863 0.6739 +vn 0.2863 0.6811 0.6739 +vn 0.7018 0.3330 -0.6297 +vn -0.3330 -0.7018 -0.6297 +vn -0.2706 0.2706 0.9239 +vn 0.6934 0.7192 0.0441 +vn 0.2706 -0.2706 -0.9239 +vn 0.1379 -0.1379 0.9808 +vn 0.5802 0.3772 0.7219 +vn 0.7130 0.6996 0.0477 +vn 0.4177 0.6077 -0.6754 +vn -0.1379 0.1380 -0.9808 +vn -0.6996 -0.7130 0.0477 +vn -0.3772 -0.5802 0.7219 +vn -0.6077 -0.4177 -0.6754 +vn 0.4080 0.8627 -0.2988 +vn -0.8985 0.3215 -0.2988 +vn -0.3468 0.8373 -0.4226 +vn -0.4080 -0.8627 0.2988 +vn 0.3468 -0.8373 0.4226 +vn 0.8985 -0.3215 0.2988 +vn 0.4080 0.8627 -0.2989 +vn -0.8985 0.3215 -0.2989 +vn -0.4080 -0.8627 0.2989 +vn 0.6794 0.7194 0.1448 +vn -0.6794 0.7194 0.1448 +vn 0.9204 0.3812 0.0866 +vn -0.0000 0.9824 0.1866 +vn -0.9239 0.2706 0.2706 +vn -0.6630 0.5294 0.5294 +vn 0.9239 0.2706 0.2706 +vn 0.6630 0.5294 0.5294 +vn 0.6333 0.2962 0.7150 +vn -0.9125 0.1566 0.3780 +vn -0.6333 0.2962 0.7150 +vn 0.9125 0.1566 0.3780 +vn 0.0000 -0.8944 0.4472 +vn 0.3423 -0.8263 0.4472 +vn -0.3423 -0.8263 0.4472 +vn -0.6325 -0.6325 0.4472 +vn -0.8263 -0.3423 0.4472 +vn -0.8944 -0.0000 0.4472 +vn -0.8263 0.3423 0.4472 +vn -0.6325 0.6325 0.4472 +vn -0.3423 0.8263 0.4472 +vn 0.0000 0.8944 0.4472 +vn 0.3423 0.8263 0.4472 +vn 0.6325 0.6325 0.4472 +vn 0.8263 0.3423 0.4472 +vn 0.8944 0.0000 0.4472 +vn 0.8263 -0.3423 0.4472 +vn 0.6325 -0.6325 0.4472 +vn -0.3162 0.3162 0.8944 +vn -0.4132 0.1711 0.8944 +vn 0.4132 -0.1711 0.8944 +vn 0.4472 -0.0000 0.8944 +vn -0.4472 -0.0000 0.8944 +vn 0.4132 0.1711 0.8944 +vn -0.4132 -0.1711 0.8944 +vn 0.3162 0.3162 0.8944 +vn -0.3162 -0.3162 0.8944 +vn 0.1711 0.4132 0.8944 +vn -0.1711 -0.4132 0.8944 +vn -0.0000 0.4472 0.8944 +vn 0.0000 -0.4472 0.8944 +vn 0.1711 -0.4132 0.8944 +vn -0.1711 0.4132 0.8944 +vn 0.3162 -0.3162 0.8944 +vn -0.9204 0.3812 0.0866 +s off +f 229/323/124 230/324/124 231/325/124 +f 233/326/125 235/327/125 236/328/125 +f 235/327/126 240/329/126 241/330/126 +f 243/331/127 237/332/127 242/333/127 +f 245/334/128 243/335/128 231/325/128 +f 243/336/129 233/337/129 232/338/129 +f 247/339/130 241/330/130 246/340/130 +f 248/341/124 250/342/124 251/343/124 +f 250/342/124 229/323/124 228/344/124 +f 248/341/131 254/345/131 249/346/131 +f 256/347/124 258/348/124 255/349/124 +f 260/350/124 262/351/124 259/352/124 +f 264/353/124 266/354/124 263/355/124 +f 268/356/124 270/357/124 267/358/124 +f 272/359/124 274/360/124 271/361/124 +f 263/355/124 267/358/124 262/351/124 +f 257/362/124 256/347/124 272/359/124 +f 263/363/127 276/364/127 264/365/127 +f 262/366/132 275/367/132 263/368/132 +f 257/369/130 279/370/130 258/371/130 +f 258/372/132 280/373/132 259/374/132 +f 282/375/124 284/376/124 281/377/124 +f 285/378/124 275/367/124 277/379/124 +f 279/370/124 286/380/124 280/373/124 +f 288/381/124 290/382/124 287/383/124 +f 266/384/132 281/377/132 268/385/132 +f 265/386/130 282/375/130 266/387/130 +f 269/388/133 283/389/133 265/390/133 +f 259/391/127 286/380/127 260/392/127 +f 264/393/133 285/378/133 261/394/133 +f 261/395/130 277/379/130 262/396/130 +f 260/397/133 278/398/133 257/399/133 +f 268/400/127 284/376/127 269/401/127 +f 256/402/133 288/381/133 273/403/133 +f 273/404/130 287/383/130 274/405/130 +f 274/406/132 290/382/132 255/407/132 +f 255/408/127 289/409/127 256/410/127 +f 235/327/133 292/411/133 240/329/133 +f 235/327/133 234/412/133 291/413/133 +f 251/343/133 294/414/133 248/341/133 +f 248/341/133 294/414/133 253/415/133 +f 240/416/134 246/340/134 241/330/134 +f 293/417/134 252/418/134 295/419/134 +f 295/419/130 228/344/130 296/420/130 +f 298/421/135 300/422/135 297/423/135 +f 238/424/135 299/425/135 298/421/135 +f 300/422/135 228/426/135 297/423/135 +f 301/427/136 303/428/136 304/429/136 +f 306/430/136 308/431/136 305/432/136 +f 309/433/136 311/434/136 312/435/136 +f 310/436/136 314/437/136 311/434/136 +f 315/438/137 304/429/137 316/439/137 +f 302/440/136 308/431/136 303/428/136 +f 309/433/136 307/441/136 306/430/136 +f 313/442/136 316/443/136 314/437/136 +f 324/444/136 318/445/136 320/446/136 +f 326/447/136 328/448/136 325/449/136 +f 326/447/136 330/450/136 327/451/136 +f 331/452/137 330/450/137 329/453/137 +f 333/454/136 332/455/136 331/456/136 +f 335/457/137 334/458/137 333/454/137 +f 335/457/137 338/459/137 336/460/137 +f 337/461/136 340/462/136 338/459/136 +f 339/463/137 328/448/137 340/462/137 +f 342/464/138 344/465/138 341/466/138 +f 345/467/139 344/465/139 343/468/139 +f 347/469/140 343/468/140 342/464/140 +f 347/470/141 341/466/141 348/471/141 +f 348/472/142 344/465/142 346/473/142 +f 350/474/132 352/475/132 349/476/132 +f 358/477/132 359/478/132 360/479/132 +f 349/476/132 362/480/132 361/481/132 +f 363/482/132 362/483/132 364/484/132 +f 363/482/132 366/485/132 365/486/132 +f 365/487/132 368/488/132 367/489/132 +f 367/489/132 370/490/132 369/491/132 +f 371/492/132 370/493/132 372/494/132 +f 371/492/132 351/495/132 350/474/132 +f 373/496/132 375/497/132 376/498/132 +f 377/499/132 374/500/132 373/501/132 +f 380/502/132 377/503/132 379/504/132 +f 382/505/132 379/506/132 381/507/132 +f 384/508/132 381/509/132 383/510/132 +f 385/511/132 384/512/132 383/513/132 +f 387/514/132 386/515/132 385/516/132 +f 376/517/132 388/518/132 387/519/132 +f 668/520/133 1759/521/133 1760/522/133 +f 1756/523/143 1767/524/143 1755/525/143 +f 239/526/132 391/527/132 392/528/132 +f 236/529/132 393/530/132 394/531/132 +f 237/532/132 395/533/132 396/534/132 +f 242/535/132 397/536/132 398/537/132 +f 231/538/132 399/539/132 400/540/132 +f 1758/541/130 1769/542/130 1757/543/130 +f 403/544/124 405/545/124 407/546/124 +f 272/359/132 411/547/132 270/357/132 +f 271/361/127 410/548/127 272/359/127 +f 267/358/133 412/549/133 271/361/133 +f 270/357/130 413/550/130 267/358/130 +f 417/551/126 419/552/126 421/553/126 +f 421/554/144 404/555/144 403/556/144 +f 419/557/145 406/558/145 405/559/145 +f 415/560/146 402/561/146 409/562/146 +f 420/563/147 405/559/147 404/555/147 +f 418/564/148 407/565/148 406/558/148 +f 416/566/149 409/562/149 408/567/149 +f 414/568/150 403/556/150 402/561/150 +f 423/569/132 425/570/132 422/571/132 +f 427/572/133 429/573/133 426/574/133 +f 423/575/125 428/576/125 424/577/125 +f 425/570/143 426/578/143 422/579/143 +f 424/577/151 427/572/151 425/570/151 +f 422/580/128 429/581/128 423/575/128 +f 431/582/132 433/583/132 430/584/132 +f 435/585/133 437/586/133 434/587/133 +f 431/588/143 436/589/143 432/590/143 +f 433/583/125 434/591/125 430/592/125 +f 432/590/128 435/585/128 433/583/128 +f 430/592/151 437/593/151 431/594/151 +f 438/595/132 440/596/132 441/597/132 +f 442/598/133 444/599/133 445/600/133 +f 439/601/128 444/599/128 440/596/128 +f 441/597/151 442/602/151 438/603/151 +f 440/596/125 443/604/125 441/597/125 +f 438/605/143 445/606/143 439/601/143 +f 446/607/132 448/608/132 449/609/132 +f 450/610/133 452/611/133 453/612/133 +f 447/613/151 452/611/151 448/608/151 +f 449/609/128 450/614/128 446/615/128 +f 448/608/143 451/616/143 449/609/143 +f 446/615/125 453/617/125 447/618/125 +f 455/619/132 457/620/132 454/621/132 +f 459/622/152 461/623/152 458/624/152 +f 455/625/125 460/626/125 456/627/125 +f 457/620/143 458/624/143 454/628/143 +f 456/627/151 459/622/151 457/620/151 +f 455/625/128 458/629/128 461/630/128 +f 300/631/125 463/632/125 296/633/125 +f 299/634/128 464/635/128 465/636/128 +f 299/634/127 462/637/127 300/631/127 +f 465/636/135 463/638/135 462/637/135 +f 467/639/126 469/640/126 466/641/126 +f 470/642/124 472/643/124 473/644/124 +f 475/645/153 471/646/153 474/647/153 +f 474/647/154 477/648/154 475/645/154 +f 470/649/155 476/650/155 474/647/155 +f 469/651/156 477/648/156 466/652/156 +f 245/653/127 950/654/127 233/337/127 +f 479/655/157 481/656/157 478/657/157 +f 483/658/126 480/659/126 485/660/126 +f 480/661/146 486/662/146 481/656/146 +f 484/663/158 487/664/158 486/662/158 +f 478/665/124 481/666/124 486/667/124 +f 491/668/127 493/669/127 490/670/127 +f 491/668/126 495/671/126 492/672/126 +f 493/669/124 497/673/124 490/670/124 +f 499/674/133 501/675/133 498/676/133 +f 503/677/126 500/678/126 502/679/126 +f 505/680/124 498/676/124 504/681/124 +f 502/682/130 499/674/130 505/683/130 +f 504/684/127 501/675/127 503/685/127 +f 507/686/133 509/687/133 506/688/133 +f 511/689/127 508/690/127 510/691/127 +f 513/692/130 506/688/130 512/693/130 +f 510/694/126 507/686/126 513/695/126 +f 512/696/124 509/687/124 511/697/124 +f 515/698/127 517/699/127 514/700/127 +f 519/701/159 521/702/159 518/703/159 +f 523/704/160 525/705/160 522/706/160 +f 516/707/161 522/706/161 517/699/161 +f 520/708/162 514/709/162 521/702/162 +f 524/710/130 518/703/130 525/705/130 +f 514/711/126 517/712/126 522/713/126 +f 527/714/130 529/715/130 526/716/130 +f 531/717/127 533/718/127 530/719/127 +f 534/720/159 528/721/159 527/722/159 +f 526/723/160 537/724/160 536/725/160 +f 536/726/161 532/727/161 531/728/161 +f 530/729/162 535/730/162 534/731/162 +f 532/732/124 539/733/124 533/718/124 +f 528/721/124 540/734/124 541/735/124 +f 529/736/124 543/737/124 537/724/124 +f 532/727/124 543/737/124 538/738/124 +f 533/739/124 540/734/124 535/730/124 +f 528/740/124 542/741/124 529/715/124 +f 543/737/161 545/742/161 538/738/161 +f 539/743/162 547/744/162 540/734/162 +f 541/735/130 549/745/130 542/741/130 +f 538/738/127 546/746/127 539/733/127 +f 540/734/159 548/747/159 541/735/159 +f 542/741/160 544/748/160 543/737/160 +f 547/744/126 551/749/126 548/747/126 +f 548/747/126 552/750/126 549/745/126 +f 544/748/126 552/751/126 553/752/126 +f 544/748/126 554/753/126 545/742/126 +f 545/742/126 555/754/126 546/746/126 +f 547/744/126 555/755/126 550/756/126 +f 555/755/162 557/757/162 550/756/162 +f 551/758/130 559/759/130 552/750/130 +f 554/760/127 556/761/127 555/754/127 +f 550/762/159 558/763/159 551/749/159 +f 552/751/160 561/764/160 553/752/160 +f 553/765/161 560/766/161 554/753/161 +f 557/767/124 563/768/124 558/763/124 +f 558/769/124 564/770/124 559/759/124 +f 561/764/124 564/770/124 565/771/124 +f 561/772/124 566/773/124 560/766/124 +f 560/774/124 567/775/124 556/761/124 +f 557/757/124 567/776/124 562/777/124 +f 563/768/130 569/778/130 564/770/130 +f 566/773/127 571/779/127 567/775/127 +f 562/777/159 568/780/159 563/768/159 +f 564/770/160 573/781/160 565/771/160 +f 565/771/161 570/782/161 566/773/161 +f 567/776/162 572/783/162 562/777/162 +f 569/778/163 575/784/163 573/781/163 +f 573/781/164 576/785/164 570/782/164 +f 572/783/165 577/786/165 578/787/165 +f 568/780/166 574/788/166 569/778/166 +f 570/782/167 577/789/167 571/779/167 +f 568/780/168 578/790/168 579/791/168 +f 577/792/126 576/793/126 575/794/126 +f 581/795/130 583/796/130 580/797/130 +f 585/798/124 587/799/124 588/800/124 +f 582/801/133 590/802/133 583/796/133 +f 581/795/126 589/803/126 582/801/126 +f 583/796/124 592/804/124 580/797/124 +f 594/805/169 596/806/169 593/807/169 +f 593/808/124 598/809/124 597/810/124 +f 597/810/129 600/811/129 599/812/129 +f 594/805/126 600/811/126 595/813/126 +f 584/814/170 602/815/170 585/798/170 +f 587/816/133 604/817/133 588/818/133 +f 601/819/126 604/820/126 603/821/126 +f 602/815/169 586/822/169 585/798/169 +f 605/823/171 587/816/171 586/824/171 +f 584/814/129 604/825/129 601/819/129 +f 607/826/169 609/827/169 606/828/169 +f 610/829/126 608/830/126 607/831/126 +f 613/832/124 609/827/124 612/833/124 +f 612/833/171 608/830/171 611/834/171 +f 610/829/170 606/835/170 613/836/170 +f 615/837/124 624/838/124 625/839/124 +f 626/840/172 616/841/172 628/842/172 +f 623/843/173 633/844/173 624/838/173 +f 390/845/130 1689/846/130 297/423/130 +f 646/847/143 648/848/143 649/849/143 +f 1759/850/151 1772/851/151 1760/852/151 +f 297/423/143 652/853/143 653/854/143 +f 646/847/143 652/853/143 228/344/143 +f 297/423/143 649/849/143 648/848/143 +f 1755/855/128 1761/856/128 650/857/128 +f 656/858/151 239/859/151 238/860/151 +f 238/860/151 657/861/151 656/858/151 +f 389/862/151 657/861/151 298/421/151 +f 656/863/174 658/864/174 659/865/174 +f 646/866/151 661/867/151 652/868/151 +f 647/869/175 663/870/175 648/871/175 +f 661/867/143 665/872/143 664/873/143 +f 666/874/133 1756/875/133 1755/876/133 +f 659/877/151 669/878/151 668/520/151 +f 649/879/176 660/880/176 646/881/176 +f 1756/882/151 662/883/151 647/884/151 +f 653/885/177 661/886/177 664/873/177 +f 653/885/128 665/872/128 649/879/128 +f 657/887/125 655/888/125 1759/889/125 +f 1760/890/143 654/891/143 656/892/143 +f 670/893/124 672/894/124 673/895/124 +f 674/896/178 672/897/178 671/898/178 +f 677/899/126 679/900/126 676/901/126 +f 670/893/179 681/902/179 680/903/179 +f 679/900/126 682/904/126 683/905/126 +f 675/906/180 685/907/180 672/897/180 +f 680/908/126 674/909/126 686/910/126 +f 687/911/171 680/903/171 686/910/171 +f 687/911/124 671/912/124 670/913/124 +f 677/914/126 676/915/126 688/916/126 +f 689/917/171 677/899/171 688/916/171 +f 689/917/124 691/918/124 690/919/124 +f 693/920/133 686/910/133 692/921/133 +f 695/922/132 671/923/132 694/924/132 +f 697/925/126 676/915/126 696/926/126 +f 699/927/124 689/917/124 698/928/124 +f 694/929/124 687/911/124 693/920/124 +f 698/928/133 688/916/133 697/925/133 +f 696/926/132 691/930/132 699/931/132 +f 692/921/126 674/909/126 695/922/126 +f 676/901/178 700/932/178 691/933/178 +f 680/903/126 675/906/126 674/896/126 +f 702/934/130 704/935/130 701/936/130 +f 662/883/143 666/874/143 663/870/143 +f 663/870/128 666/874/128 1755/937/128 +f 1757/938/124 1765/939/124 1688/940/124 +f 705/941/181 682/904/181 678/942/181 +f 700/943/124 706/944/124 705/941/124 +f 672/894/124 708/945/124 673/895/124 +f 679/900/180 707/946/180 700/932/180 +f 675/906/126 709/947/126 684/948/126 +f 673/895/181 709/947/181 681/902/181 +f 690/949/124 700/943/124 705/941/124 +f 690/949/179 678/942/179 677/899/179 +f 711/950/161 713/951/161 710/952/161 +f 714/953/132 703/954/132 702/934/132 +f 712/955/127 717/956/127 713/951/127 +f 718/957/127 715/958/127 714/953/127 +f 716/959/162 721/960/162 717/961/162 +f 701/962/133 719/963/133 718/957/133 +f 720/964/159 723/965/159 721/960/159 +f 722/966/126 720/967/126 716/968/126 +f 722/969/130 725/970/130 723/965/130 +f 724/971/160 710/952/160 725/970/160 +f 723/972/124 725/973/124 713/974/124 +f 719/963/125 727/975/125 715/958/125 +f 715/976/132 727/975/132 703/977/132 +f 704/978/133 726/979/133 719/980/133 +f 704/978/133 729/981/133 726/979/133 +f 728/982/127 731/983/127 729/984/127 +f 726/979/126 732/985/126 727/975/126 +f 727/975/132 733/986/132 703/977/132 +f 703/977/124 728/987/124 704/988/124 +f 729/984/126 734/989/126 732/990/126 +f 733/991/124 735/992/124 728/993/124 +f 734/989/169 733/986/169 732/985/169 +f 737/994/179 739/995/179 736/996/179 +f 729/984/126 737/994/126 734/989/126 +f 734/989/130 736/996/130 735/992/130 +f 735/992/124 730/997/124 728/993/124 +f 740/998/126 741/999/126 738/1000/126 +f 730/997/124 739/995/124 742/1001/124 +f 730/1002/178 740/1003/178 731/983/178 +f 731/983/126 738/1004/126 737/994/126 +f 741/999/171 739/995/171 738/1004/171 +f 743/1005/124 745/1006/124 742/1007/124 +f 742/1007/124 739/1008/124 743/1005/124 +f 745/1009/132 748/1010/132 746/1011/132 +f 742/1012/132 749/1013/132 740/998/132 +f 740/998/126 750/1014/126 741/999/126 +f 741/999/133 744/1015/133 743/1005/133 +f 750/1016/133 751/1017/133 744/1018/133 +f 746/1011/125 750/1014/125 749/1013/125 +f 745/1009/132 746/1011/132 749/1019/132 +f 744/1018/130 747/1020/130 745/1021/130 +f 751/1017/133 752/1022/133 744/1018/133 +f 746/1011/127 753/1023/127 751/1017/127 +f 391/527/132 1771/1024/132 1786/1025/132 +f 401/1026/132 1767/1027/132 1768/1028/132 +f 1771/1024/132 1764/1029/132 389/1030/132 +f 1786/1025/132 1770/1031/132 1785/1032/132 +f 592/1033/127 589/1034/127 591/1035/127 +f 951/1036/182 953/1037/182 954/1038/182 +f 956/1039/182 958/1040/182 955/1041/182 +f 959/1042/182 961/1043/182 962/1044/182 +f 960/1045/182 964/1046/182 961/1043/182 +f 965/1047/183 954/1038/183 966/1048/183 +f 952/1049/182 958/1040/182 953/1037/182 +f 956/1039/182 962/1044/182 957/1050/182 +f 963/1051/182 966/1052/182 964/1046/182 +f 974/1053/182 968/1054/182 970/1055/182 +f 976/1056/182 978/1057/182 975/1058/182 +f 976/1056/182 980/1059/182 977/1060/182 +f 981/1061/183 980/1059/183 979/1062/183 +f 983/1063/182 982/1064/182 981/1065/182 +f 983/1063/183 986/1066/183 984/1067/183 +f 985/1068/183 988/1069/183 986/1066/183 +f 987/1070/182 990/1071/182 988/1069/182 +f 989/1072/183 978/1057/183 990/1071/183 +f 1039/1073/184 1041/1074/184 1042/1075/184 +f 1044/1076/184 1046/1077/184 1043/1078/184 +f 1047/1079/184 1049/1080/184 1050/1081/184 +f 1048/1082/184 1052/1083/184 1049/1080/184 +f 1053/1084/185 1042/1075/185 1054/1085/185 +f 1040/1086/184 1046/1077/184 1041/1074/184 +f 1047/1079/184 1045/1087/184 1044/1076/184 +f 1051/1088/184 1054/1089/184 1052/1083/184 +f 1062/1090/184 1056/1091/184 1058/1092/184 +f 1064/1093/184 1066/1094/184 1063/1095/184 +f 1064/1093/184 1068/1096/184 1065/1097/184 +f 1069/1098/185 1068/1096/185 1067/1099/185 +f 1071/1100/184 1070/1101/184 1069/1102/184 +f 1073/1103/185 1072/1104/185 1071/1100/185 +f 1073/1103/185 1076/1105/185 1074/1106/185 +f 1075/1107/184 1078/1108/184 1076/1105/184 +f 1077/1109/185 1066/1094/185 1078/1108/185 +f 1127/1110/186 1129/1111/186 1130/1112/186 +f 1132/1113/186 1134/1114/186 1131/1115/186 +f 1135/1116/186 1137/1117/186 1138/1118/186 +f 1136/1119/186 1140/1120/186 1137/1117/186 +f 1141/1121/187 1130/1112/187 1142/1122/187 +f 1128/1123/186 1134/1114/186 1129/1111/186 +f 1135/1116/186 1133/1124/186 1132/1113/186 +f 1139/1125/186 1142/1126/186 1140/1120/186 +f 1150/1127/186 1144/1128/186 1146/1129/186 +f 1152/1130/186 1154/1131/186 1151/1132/186 +f 1152/1130/186 1156/1133/186 1153/1134/186 +f 1157/1135/187 1156/1133/187 1155/1136/187 +f 1159/1137/186 1158/1138/186 1157/1139/186 +f 1161/1140/187 1160/1141/187 1159/1137/187 +f 1161/1140/187 1164/1142/187 1162/1143/187 +f 1163/1144/186 1166/1145/186 1164/1142/186 +f 1165/1146/187 1154/1131/187 1166/1145/187 +f 1215/1147/188 1217/1148/188 1218/1149/188 +f 1220/1150/189 1222/1151/189 1219/1152/189 +f 1223/1153/188 1225/1154/188 1226/1155/188 +f 1224/1156/189 1228/1157/189 1225/1154/189 +f 1229/1158/188 1218/1149/188 1230/1159/188 +f 1216/1160/189 1222/1151/189 1217/1148/189 +f 1223/1153/189 1221/1161/189 1220/1150/189 +f 1227/1162/189 1230/1163/189 1228/1157/189 +f 1238/1164/188 1232/1165/188 1234/1166/188 +f 1240/1167/188 1242/1168/188 1239/1169/188 +f 1240/1167/189 1244/1170/189 1241/1171/189 +f 1245/1172/188 1244/1170/188 1243/1173/188 +f 1247/1174/189 1246/1175/189 1245/1176/189 +f 1249/1177/189 1248/1178/189 1247/1174/189 +f 1249/1177/188 1252/1179/188 1250/1180/188 +f 1251/1181/189 1254/1182/189 1252/1179/189 +f 1253/1183/188 1242/1168/188 1254/1182/188 +f 1303/1184/190 1305/1185/190 1306/1186/190 +f 1308/1187/191 1310/1188/191 1307/1189/191 +f 1311/1190/190 1313/1191/190 1314/1192/190 +f 1312/1193/191 1316/1194/191 1313/1191/191 +f 1317/1195/190 1306/1186/190 1318/1196/190 +f 1304/1197/191 1310/1188/191 1305/1185/191 +f 1311/1190/191 1309/1198/191 1308/1187/191 +f 1315/1199/191 1318/1200/191 1316/1194/191 +f 1326/1201/191 1320/1202/191 1322/1203/191 +f 1328/1204/190 1330/1205/190 1327/1206/190 +f 1328/1204/191 1332/1207/191 1329/1208/191 +f 1333/1209/190 1332/1207/190 1331/1210/190 +f 1335/1211/191 1334/1212/191 1333/1213/191 +f 1337/1214/190 1336/1215/190 1335/1211/190 +f 1337/1214/190 1340/1216/190 1338/1217/190 +f 1339/1218/191 1342/1219/191 1340/1216/191 +f 1341/1220/190 1330/1205/190 1342/1219/190 +f 1391/1221/192 1393/1222/192 1394/1223/192 +f 1396/1224/192 1398/1225/192 1395/1226/192 +f 1399/1227/192 1401/1228/192 1402/1229/192 +f 1400/1230/193 1404/1231/193 1401/1228/193 +f 1405/1232/193 1394/1223/193 1406/1233/193 +f 1392/1234/193 1398/1225/193 1393/1222/193 +f 1396/1224/193 1402/1229/193 1397/1235/193 +f 1403/1236/193 1406/1237/193 1404/1231/193 +f 1414/1238/192 1408/1239/192 1410/1240/192 +f 1416/1241/192 1418/1242/192 1415/1243/192 +f 1416/1241/193 1420/1244/193 1417/1245/193 +f 1421/1246/192 1420/1244/192 1419/1247/192 +f 1423/1248/193 1422/1249/193 1421/1250/193 +f 1425/1251/193 1424/1252/193 1423/1248/193 +f 1425/1251/192 1428/1253/192 1426/1254/192 +f 1427/1255/193 1430/1256/193 1428/1253/193 +f 1429/1257/192 1418/1242/192 1430/1256/192 +f 1479/1258/194 1481/1259/194 1482/1260/194 +f 1484/1261/195 1486/1262/195 1483/1263/195 +f 1487/1264/194 1489/1265/194 1490/1266/194 +f 1491/1267/195 1489/1265/195 1488/1268/195 +f 1493/1269/194 1482/1260/194 1494/1270/194 +f 1480/1271/195 1486/1262/195 1481/1259/195 +f 1487/1264/195 1485/1272/195 1484/1261/195 +f 1491/1267/195 1494/1273/195 1492/1274/195 +f 1502/1275/195 1496/1276/195 1498/1277/195 +f 1504/1278/194 1506/1279/194 1503/1280/194 +f 1504/1278/195 1508/1281/195 1505/1282/195 +f 1509/1283/194 1508/1281/194 1507/1284/194 +f 1511/1285/195 1510/1286/195 1509/1287/195 +f 1513/1288/194 1512/1289/194 1511/1285/194 +f 1513/1288/194 1516/1290/194 1514/1291/194 +f 1515/1292/195 1518/1293/195 1516/1290/195 +f 1517/1294/194 1506/1279/194 1518/1293/194 +f 1567/1295/196 1569/1296/196 1570/1297/196 +f 1571/1298/197 1570/1297/197 1569/1296/197 +f 1573/1299/198 1569/1296/198 1568/1300/198 +f 1573/1301/199 1567/1295/199 1574/1302/199 +f 1574/1303/200 1570/1297/200 1572/1304/200 +f 1576/1305/201 1578/1306/201 1575/1307/201 +f 1579/1308/202 1578/1306/202 1577/1309/202 +f 1581/1310/203 1577/1309/203 1576/1305/203 +f 1581/1311/204 1575/1307/204 1582/1312/204 +f 1582/1313/205 1578/1306/205 1580/1314/205 +f 1583/1315/206 1585/1316/206 1586/1317/206 +f 1587/1318/207 1586/1317/207 1585/1316/207 +f 1589/1319/208 1585/1316/208 1584/1320/208 +f 1589/1321/209 1583/1315/209 1590/1322/209 +f 1590/1323/210 1586/1317/210 1588/1324/210 +f 1591/1325/211 1593/1326/211 1594/1327/211 +f 1595/1328/212 1594/1327/212 1593/1326/212 +f 1597/1329/213 1593/1326/213 1592/1330/213 +f 1597/1331/214 1591/1325/214 1598/1332/214 +f 1598/1333/215 1594/1327/215 1596/1334/215 +f 1599/1335/216 1601/1336/216 1602/1337/216 +f 1603/1338/217 1602/1337/217 1601/1336/217 +f 1605/1339/218 1601/1336/218 1600/1340/218 +f 1605/1341/219 1599/1335/219 1606/1342/219 +f 1606/1343/220 1602/1337/220 1604/1344/220 +f 1608/1345/221 1610/1346/221 1607/1347/221 +f 1611/1348/222 1610/1346/222 1609/1349/222 +f 1613/1350/223 1609/1349/223 1608/1345/223 +f 1613/1351/224 1607/1347/224 1614/1352/224 +f 1614/1353/225 1610/1346/225 1612/1354/225 +f 1615/1355/226 1617/1356/226 1618/1357/226 +f 1619/1358/227 1618/1357/227 1617/1356/227 +f 1621/1359/228 1617/1356/228 1616/1360/228 +f 1621/1361/229 1615/1355/229 1622/1362/229 +f 1622/1363/230 1618/1357/230 1620/1364/230 +f 1624/1365/231 1626/1366/231 1623/1367/231 +f 1627/1368/232 1626/1366/232 1625/1369/232 +f 1629/1370/233 1625/1369/233 1624/1365/233 +f 1629/1371/234 1623/1367/234 1630/1372/234 +f 1630/1373/235 1626/1366/235 1628/1374/235 +f 1631/1375/236 1633/1376/236 1634/1377/236 +f 1635/1378/237 1634/1377/237 1633/1376/237 +f 1637/1379/238 1633/1376/238 1632/1380/238 +f 1637/1381/239 1631/1375/239 1638/1382/239 +f 1638/1383/240 1634/1377/240 1636/1384/240 +f 1639/1385/241 1641/1386/241 1642/1387/241 +f 1643/1388/242 1642/1387/242 1641/1386/242 +f 1645/1389/243 1641/1386/243 1640/1390/243 +f 1645/1391/244 1639/1385/244 1646/1392/244 +f 1646/1393/245 1642/1387/245 1644/1394/245 +f 1647/1395/246 1649/1396/246 1650/1397/246 +f 1651/1398/247 1650/1397/247 1649/1396/247 +f 1653/1399/248 1649/1396/248 1648/1400/248 +f 1653/1401/249 1647/1395/249 1654/1402/249 +f 1654/1403/250 1650/1397/250 1652/1404/250 +f 1655/1405/251 1657/1406/251 1658/1407/251 +f 1659/1408/252 1658/1407/252 1657/1406/252 +f 1661/1409/253 1657/1406/253 1656/1410/253 +f 1661/1411/254 1655/1405/254 1662/1412/254 +f 1662/1413/255 1658/1407/255 1660/1414/255 +f 1663/1415/256 1665/1416/256 1666/1417/256 +f 1667/1418/257 1666/1417/257 1665/1416/257 +f 1669/1419/258 1665/1416/258 1664/1420/258 +f 1669/1421/259 1663/1415/259 1670/1422/259 +f 1670/1423/260 1666/1417/260 1668/1424/260 +f 1672/1425/261 1674/1426/261 1671/1427/261 +f 1675/1428/262 1674/1426/262 1673/1429/262 +f 1677/1430/263 1673/1429/263 1672/1425/263 +f 1677/1431/264 1671/1427/264 1678/1432/264 +f 1678/1433/265 1674/1426/265 1676/1434/265 +f 1679/1435/266 1681/1436/266 1682/1437/266 +f 1683/1438/267 1682/1437/267 1681/1436/267 +f 1685/1439/268 1681/1436/268 1680/1440/268 +f 1685/1441/269 1679/1435/269 1686/1442/269 +f 1686/1443/270 1682/1437/270 1684/1444/270 +f 1691/1445/124 1692/1446/124 1757/1447/124 +f 297/423/130 1687/1448/130 298/421/130 +f 389/862/130 1687/1448/130 1688/1449/130 +f 651/1450/151 1768/1451/151 1756/1452/151 +f 1691/1453/130 1694/1454/130 1692/1455/130 +f 1757/1456/133 1694/1457/133 1758/1458/133 +f 1689/1459/132 1691/1460/132 1687/1461/132 +f 1758/1462/126 1694/1463/126 1693/1464/126 +f 1690/1465/126 1770/1466/126 1758/1467/126 +f 655/1468/125 1771/1469/125 1759/1470/125 +f 1760/1471/143 1763/1472/143 654/1473/143 +f 655/1474/151 389/862/151 1764/1475/151 +f 1688/1449/130 1765/1476/130 389/862/130 +f 1690/1477/130 390/845/130 1766/1478/130 +f 650/1479/143 1761/1480/143 390/845/143 +f 654/1481/151 1763/1482/151 239/859/151 +f 1775/1483/151 1774/1484/151 1776/1485/151 +f 1778/1486/130 1779/1487/130 1777/1488/130 +f 651/1489/143 227/1490/143 1762/1491/143 +f 1783/1492/143 1782/1493/143 1784/1494/143 +f 390/1495/132 1767/1027/132 1770/1031/132 +f 1768/1028/132 227/1496/132 401/1026/132 +f 239/526/132 1772/1497/132 391/527/132 +f 1788/1498/127 1790/1499/127 1787/1500/127 +f 1792/1501/130 1794/1502/130 1791/1503/130 +f 1796/1504/124 1798/1505/124 1795/1506/124 +f 1800/1507/126 1802/1508/126 1799/1509/126 +f 1799/1509/151 1793/1510/151 1792/1501/151 +f 1801/1511/125 1790/1499/125 1789/1512/125 +f 1787/1513/128 1797/1514/128 1788/1515/128 +f 1794/1502/143 1795/1506/143 1791/1503/143 +f 1799/1516/132 1803/1517/132 1804/1518/132 +f 1792/1519/132 1806/1520/132 1807/1521/132 +f 1791/1522/132 1808/1523/132 1809/1524/132 +f 1795/1525/132 1810/1526/132 1811/1527/132 +f 1798/1528/132 1812/1529/132 1813/1530/132 +f 1787/1531/132 1814/1532/132 1815/1533/132 +f 1790/1534/132 1816/1535/132 1817/1536/132 +f 1800/1537/132 1805/1538/132 1818/1539/132 +f 1826/1540/132 1830/1541/132 1834/1542/132 +f 1836/1543/133 1837/1544/133 1793/1545/133 +f 1839/1546/133 1835/1547/133 1802/1548/133 +f 1841/1549/133 1838/1550/133 1801/1551/133 +f 1843/1552/133 1840/1553/133 1789/1554/133 +f 1845/1555/133 1842/1556/133 1788/1557/133 +f 1847/1558/133 1844/1559/133 1797/1560/133 +f 1849/1561/133 1846/1562/133 1796/1563/133 +f 1850/1564/133 1848/1565/133 1794/1566/133 +f 231/325/124 227/1490/124 229/323/124 +f 227/1490/124 228/344/124 229/323/124 +f 237/332/125 232/1567/125 236/328/125 +f 232/1567/125 233/326/125 236/328/125 +f 950/1568/125 234/1569/125 235/327/125 +f 233/326/125 950/1568/125 235/327/125 +f 241/330/126 238/1570/126 235/327/126 +f 238/1570/126 239/859/126 236/328/126 +f 235/327/126 238/1570/126 236/328/126 +f 243/331/127 232/1567/127 237/332/127 +f 242/1571/128 231/325/128 243/335/128 +f 231/325/271 230/324/271 245/334/271 +f 230/324/272 244/1572/272 245/334/272 +f 243/336/129 245/653/129 233/337/129 +f 247/339/130 238/1570/130 241/330/130 +f 248/341/124 249/346/124 250/342/124 +f 228/344/124 252/418/124 250/342/124 +f 252/418/124 251/343/124 250/342/124 +f 248/341/131 253/1573/131 254/345/131 +f 256/347/124 257/362/124 258/348/124 +f 260/350/124 261/1574/124 262/351/124 +f 264/353/124 265/1575/124 266/354/124 +f 268/356/124 269/1576/124 270/357/124 +f 272/359/124 273/1577/124 274/360/124 +f 268/356/124 267/358/124 266/354/124 +f 267/358/124 271/361/124 262/351/124 +f 266/354/124 267/358/124 263/355/124 +f 271/361/124 274/360/124 255/349/124 +f 258/348/124 259/352/124 271/361/124 +f 259/352/124 262/351/124 271/361/124 +f 271/361/124 255/349/124 258/348/124 +f 272/359/124 270/357/124 261/1574/124 +f 270/357/124 269/1576/124 265/1575/124 +f 265/1575/124 264/353/124 270/357/124 +f 264/353/124 261/1574/124 270/357/124 +f 256/347/124 273/1577/124 272/359/124 +f 261/1574/124 260/350/124 272/359/124 +f 260/350/124 257/362/124 272/359/124 +f 263/363/127 275/367/127 276/364/127 +f 262/366/132 277/379/132 275/367/132 +f 257/369/130 278/398/130 279/370/130 +f 258/372/132 279/370/132 280/373/132 +f 282/375/124 283/389/124 284/376/124 +f 285/378/124 276/364/124 275/367/124 +f 279/370/124 278/398/124 286/380/124 +f 288/381/124 289/409/124 290/382/124 +f 266/384/132 282/375/132 281/377/132 +f 265/386/130 283/389/130 282/375/130 +f 269/388/133 284/376/133 283/389/133 +f 259/391/127 280/373/127 286/380/127 +f 264/393/133 276/364/133 285/378/133 +f 261/395/130 285/378/130 277/379/130 +f 260/397/133 286/380/133 278/398/133 +f 268/400/127 281/377/127 284/376/127 +f 256/402/133 289/409/133 288/381/133 +f 273/404/130 288/381/130 287/383/130 +f 274/406/132 287/383/132 290/382/132 +f 255/408/127 290/382/127 289/409/127 +f 235/327/133 291/413/133 292/411/133 +f 251/343/133 293/1578/133 294/414/133 +f 240/416/134 292/1579/134 246/340/134 +f 293/417/134 251/1580/134 252/418/134 +f 295/419/130 252/418/130 228/344/130 +f 298/421/135 299/425/135 300/422/135 +f 238/424/135 247/1581/135 299/425/135 +f 300/422/135 296/1582/135 228/426/135 +f 301/427/137 302/440/137 303/428/137 +f 306/430/136 307/441/136 308/431/136 +f 309/433/137 310/436/137 311/434/137 +f 310/436/136 313/442/136 314/437/136 +f 315/438/136 301/427/136 304/429/136 +f 302/440/136 305/432/136 308/431/136 +f 309/433/136 312/435/136 307/441/136 +f 313/442/137 315/1583/137 316/443/137 +f 324/444/136 317/1584/136 318/445/136 +f 318/445/136 319/1585/136 320/446/136 +f 320/446/136 321/1586/136 324/444/136 +f 321/1586/137 322/1587/137 324/444/137 +f 322/1587/136 323/1588/136 324/444/136 +f 326/447/137 327/451/137 328/448/137 +f 326/447/136 329/453/136 330/450/136 +f 331/452/136 332/1589/136 330/450/136 +f 333/454/137 334/458/137 332/455/137 +f 335/457/136 336/460/136 334/458/136 +f 335/457/136 337/461/136 338/459/136 +f 337/461/137 339/463/137 340/462/137 +f 339/463/136 325/449/136 328/448/136 +f 342/464/138 343/468/138 344/465/138 +f 345/467/273 346/1590/273 344/465/273 +f 347/469/140 345/1591/140 343/468/140 +f 347/470/141 342/464/141 341/466/141 +f 348/472/142 341/466/142 344/465/142 +f 350/474/132 351/1592/132 352/475/132 +f 360/479/132 353/1593/132 354/1594/132 +f 354/1594/132 355/1595/132 360/479/132 +f 355/1595/132 356/1596/132 360/479/132 +f 356/1596/132 357/1597/132 360/479/132 +f 357/1597/132 358/477/132 360/479/132 +f 349/476/132 352/1598/132 362/480/132 +f 363/482/132 361/481/132 362/483/132 +f 363/482/132 364/1599/132 366/485/132 +f 365/487/132 366/1600/132 368/488/132 +f 367/489/132 368/1601/132 370/490/132 +f 371/492/132 369/491/132 370/493/132 +f 371/492/132 372/1602/132 351/495/132 +f 373/496/132 374/1603/132 375/497/132 +f 377/499/132 378/1604/132 374/500/132 +f 380/502/132 378/1605/132 377/503/132 +f 382/505/132 380/1606/132 379/506/132 +f 384/508/132 382/1607/132 381/509/132 +f 385/511/132 386/1608/132 384/512/132 +f 387/514/132 388/1609/132 386/515/132 +f 376/517/132 375/1610/132 388/518/132 +f 668/520/133 669/878/133 1759/521/133 +f 1756/523/143 1768/1611/143 1767/524/143 +f 393/530/132 236/529/132 392/528/132 +f 236/529/132 239/526/132 392/528/132 +f 395/533/132 237/532/132 394/531/132 +f 237/532/132 236/529/132 394/531/132 +f 397/536/132 242/535/132 396/534/132 +f 242/535/132 237/532/132 396/534/132 +f 399/539/132 231/538/132 398/537/132 +f 231/538/132 242/535/132 398/537/132 +f 401/1026/132 227/1496/132 400/540/132 +f 227/1496/132 231/538/132 400/540/132 +f 1758/541/130 1770/1612/130 1769/542/130 +f 409/1613/124 402/1614/124 403/544/124 +f 403/544/124 404/1615/124 405/545/124 +f 405/545/124 406/1616/124 407/546/124 +f 407/546/124 408/1617/124 409/1613/124 +f 409/1613/124 403/544/124 407/546/124 +f 272/359/132 410/1618/132 411/547/132 +f 271/361/127 412/1619/127 410/548/127 +f 267/358/133 413/1620/133 412/549/133 +f 270/357/130 411/1621/130 413/550/130 +f 421/553/126 414/1622/126 415/1623/126 +f 415/1623/126 416/1624/126 417/551/126 +f 417/551/126 418/1625/126 419/552/126 +f 419/552/126 420/1626/126 421/553/126 +f 421/553/126 415/1623/126 417/551/126 +f 421/554/144 420/563/144 404/555/144 +f 419/557/145 418/564/145 406/558/145 +f 415/560/146 414/568/146 402/561/146 +f 420/563/147 419/557/147 405/559/147 +f 418/564/148 417/1627/148 407/565/148 +f 416/566/149 415/560/149 409/562/149 +f 414/568/150 421/554/150 403/556/150 +f 423/569/132 424/577/132 425/570/132 +f 427/572/133 428/576/133 429/573/133 +f 423/575/125 429/581/125 428/576/125 +f 425/570/143 427/572/143 426/578/143 +f 424/577/151 428/576/151 427/572/151 +f 422/580/128 426/1628/128 429/581/128 +f 431/582/132 432/590/132 433/583/132 +f 435/585/133 436/589/133 437/586/133 +f 431/588/143 437/1629/143 436/589/143 +f 433/583/125 435/585/125 434/591/125 +f 432/590/128 436/589/128 435/585/128 +f 430/592/151 434/591/151 437/593/151 +f 438/595/132 439/1630/132 440/596/132 +f 442/598/133 443/604/133 444/599/133 +f 439/601/128 445/606/128 444/599/128 +f 441/597/151 443/604/151 442/602/151 +f 440/596/125 444/599/125 443/604/125 +f 438/605/143 442/1631/143 445/606/143 +f 446/607/132 447/1632/132 448/608/132 +f 450/610/133 451/616/133 452/611/133 +f 447/613/151 453/1633/151 452/611/151 +f 449/609/128 451/616/128 450/614/128 +f 448/608/143 452/611/143 451/616/143 +f 446/615/125 450/614/125 453/617/125 +f 455/619/132 456/627/132 457/620/132 +f 459/622/152 460/1634/152 461/623/152 +f 455/625/125 461/630/125 460/626/125 +f 457/620/143 459/622/143 458/624/143 +f 456/627/151 460/626/151 459/622/151 +f 455/625/128 454/1635/128 458/629/128 +f 300/631/125 462/637/125 463/632/125 +f 299/634/128 247/1636/128 464/635/128 +f 299/634/127 465/636/127 462/637/127 +f 465/636/135 464/1637/135 463/638/135 +f 467/639/126 468/1638/126 469/640/126 +f 470/642/124 471/646/124 472/643/124 +f 475/645/153 469/640/153 468/1638/153 +f 468/1638/153 471/646/153 475/645/153 +f 471/646/153 470/642/153 474/647/153 +f 474/647/154 476/650/154 477/648/154 +f 470/649/155 473/1639/155 476/650/155 +f 469/651/156 475/645/156 477/648/156 +f 245/653/127 244/1640/127 950/654/127 +f 479/655/157 480/661/157 481/656/157 +f 485/660/126 482/1641/126 483/658/126 +f 483/658/126 484/1642/126 480/659/126 +f 480/659/126 479/1643/126 485/660/126 +f 480/661/146 484/663/146 486/662/146 +f 484/663/158 483/1644/158 487/664/158 +f 486/667/124 487/1645/124 478/665/124 +f 487/1645/124 488/1646/124 478/665/124 +f 488/1646/124 489/1647/124 478/665/124 +f 491/668/127 492/672/127 493/669/127 +f 491/668/126 494/1648/126 495/671/126 +f 493/669/124 496/1649/124 497/673/124 +f 499/674/133 500/678/133 501/675/133 +f 503/677/126 501/675/126 500/678/126 +f 505/680/124 499/674/124 498/676/124 +f 502/682/130 500/678/130 499/674/130 +f 504/684/127 498/676/127 501/675/127 +f 507/686/133 508/690/133 509/687/133 +f 511/689/127 509/687/127 508/690/127 +f 513/692/130 507/686/130 506/688/130 +f 510/694/126 508/690/126 507/686/126 +f 512/696/124 506/688/124 509/687/124 +f 515/698/127 516/707/127 517/699/127 +f 519/701/159 520/708/159 521/702/159 +f 523/704/160 524/710/160 525/705/160 +f 516/707/161 523/704/161 522/706/161 +f 520/708/162 515/1650/162 514/709/162 +f 524/710/130 519/701/130 518/703/130 +f 522/713/126 525/1651/126 514/711/126 +f 525/1651/126 518/1652/126 514/711/126 +f 518/1652/126 521/1653/126 514/711/126 +f 527/714/130 528/740/130 529/715/130 +f 531/717/127 532/732/127 533/718/127 +f 534/720/159 535/1654/159 528/721/159 +f 526/723/160 529/736/160 537/724/160 +f 536/726/161 537/1655/161 532/727/161 +f 530/729/162 533/739/162 535/730/162 +f 532/732/124 538/738/124 539/733/124 +f 528/721/124 535/1654/124 540/734/124 +f 529/736/124 542/741/124 543/737/124 +f 532/727/124 537/1655/124 543/737/124 +f 533/739/124 539/743/124 540/734/124 +f 528/740/124 541/735/124 542/741/124 +f 543/737/161 544/748/161 545/742/161 +f 539/743/162 546/1656/162 547/744/162 +f 541/735/130 548/747/130 549/745/130 +f 538/738/127 545/742/127 546/746/127 +f 540/734/159 547/744/159 548/747/159 +f 542/741/160 549/745/160 544/748/160 +f 547/744/126 550/762/126 551/749/126 +f 548/747/126 551/758/126 552/750/126 +f 544/748/126 549/745/126 552/751/126 +f 544/748/126 553/765/126 554/753/126 +f 545/742/126 554/760/126 555/754/126 +f 547/744/126 546/1656/126 555/755/126 +f 555/755/162 556/1657/162 557/757/162 +f 551/758/130 558/769/130 559/759/130 +f 554/760/127 560/774/127 556/761/127 +f 550/762/159 557/767/159 558/763/159 +f 552/751/160 559/1658/160 561/764/160 +f 553/765/161 561/772/161 560/766/161 +f 557/767/124 562/777/124 563/768/124 +f 558/769/124 563/768/124 564/770/124 +f 561/764/124 559/1658/124 564/770/124 +f 561/772/124 565/771/124 566/773/124 +f 560/774/124 566/773/124 567/775/124 +f 557/757/124 556/1657/124 567/776/124 +f 563/768/130 568/780/130 569/778/130 +f 566/773/127 570/782/127 571/779/127 +f 562/777/159 572/783/159 568/780/159 +f 564/770/160 569/778/160 573/781/160 +f 565/771/161 573/781/161 570/782/161 +f 567/776/162 571/1659/162 572/783/162 +f 569/778/163 574/1660/163 575/784/163 +f 573/781/164 575/1661/164 576/785/164 +f 572/783/165 571/1659/165 577/786/165 +f 568/780/166 579/1662/166 574/788/166 +f 570/782/167 576/1663/167 577/789/167 +f 568/780/168 572/783/168 578/790/168 +f 575/794/126 574/1664/126 577/792/126 +f 574/1664/126 579/1665/126 577/792/126 +f 579/1665/126 578/1666/126 577/792/126 +f 581/795/130 582/801/130 583/796/130 +f 588/800/124 584/814/124 585/798/124 +f 585/798/124 586/1667/124 587/799/124 +f 582/801/133 589/1668/133 590/802/133 +f 581/795/126 591/1669/126 589/803/126 +f 583/796/124 590/1670/124 592/804/124 +f 594/805/169 595/813/169 596/806/169 +f 593/808/124 596/1671/124 598/809/124 +f 597/810/129 598/809/129 600/811/129 +f 594/805/126 599/812/126 600/811/126 +f 584/814/170 601/819/170 602/815/170 +f 587/816/133 603/821/133 604/817/133 +f 605/823/126 602/815/126 603/821/126 +f 602/815/126 601/819/126 603/821/126 +f 602/815/169 605/1672/169 586/822/169 +f 605/823/171 603/821/171 587/816/171 +f 584/814/129 588/1673/129 604/825/129 +f 607/826/169 608/1674/169 609/827/169 +f 610/829/126 611/834/126 608/830/126 +f 613/832/124 606/828/124 609/827/124 +f 612/833/171 609/827/171 608/830/171 +f 610/829/170 607/831/170 606/835/170 +f 615/837/124 623/1675/124 624/838/124 +f 626/840/172 627/1676/172 616/841/172 +f 623/843/173 632/1677/173 633/844/173 +f 390/845/130 1690/1477/130 1689/846/130 +f 646/847/143 647/1678/143 648/848/143 +f 1759/850/151 1771/1679/151 1772/851/151 +f 297/423/143 228/344/143 652/853/143 +f 228/344/143 227/1490/143 646/847/143 +f 227/1490/143 651/1489/143 647/1678/143 +f 647/1678/143 646/847/143 227/1490/143 +f 650/1479/143 390/845/143 648/848/143 +f 390/845/143 297/423/143 648/848/143 +f 297/423/143 653/854/143 649/849/143 +f 1755/855/128 1767/1680/128 1761/856/128 +f 656/858/151 654/1481/151 239/859/151 +f 238/860/151 298/421/151 657/861/151 +f 389/862/151 655/1474/151 657/861/151 +f 656/863/174 657/887/174 658/864/174 +f 646/866/151 660/1681/151 661/867/151 +f 647/869/175 662/1682/175 663/870/175 +f 661/867/143 660/1681/143 665/872/143 +f 666/874/133 667/1683/133 1756/875/133 +f 659/877/151 658/864/151 669/878/151 +f 649/879/176 665/872/176 660/880/176 +f 647/884/151 651/1684/151 1756/882/151 +f 1756/882/151 667/1683/151 662/883/151 +f 653/885/177 652/1685/177 661/886/177 +f 653/885/128 664/873/128 665/872/128 +f 1759/889/125 669/878/125 658/864/125 +f 658/864/125 657/887/125 1759/889/125 +f 656/892/143 659/877/143 1760/890/143 +f 659/877/143 668/520/143 1760/890/143 +f 670/893/124 671/1686/124 672/894/124 +f 674/896/178 675/906/178 672/897/178 +f 677/899/126 678/942/126 679/900/126 +f 670/893/179 673/895/179 681/902/179 +f 679/900/126 678/942/126 682/904/126 +f 675/906/180 684/948/180 685/907/180 +f 687/911/171 670/893/171 680/903/171 +f 689/917/171 690/949/171 677/899/171 +f 693/920/133 687/911/133 686/910/133 +f 695/922/132 674/909/132 671/923/132 +f 697/925/126 688/916/126 676/915/126 +f 699/927/124 691/918/124 689/917/124 +f 694/929/124 671/912/124 687/911/124 +f 698/928/133 689/917/133 688/916/133 +f 696/926/132 676/915/132 691/930/132 +f 692/921/126 686/910/126 674/909/126 +f 676/901/178 679/900/178 700/932/178 +f 680/903/126 681/902/126 675/906/126 +f 702/934/130 703/954/130 704/935/130 +f 662/883/143 667/1683/143 666/874/143 +f 650/1687/128 648/871/128 1755/937/128 +f 648/871/128 663/870/128 1755/937/128 +f 1757/938/124 1769/1688/124 1765/939/124 +f 705/941/181 706/944/181 682/904/181 +f 700/943/124 707/1689/124 706/944/124 +f 672/894/124 685/1690/124 708/945/124 +f 679/900/180 683/905/180 707/946/180 +f 675/906/126 681/902/126 709/947/126 +f 673/895/181 708/945/181 709/947/181 +f 690/949/124 691/1691/124 700/943/124 +f 690/949/179 705/941/179 678/942/179 +f 711/950/161 712/955/161 713/951/161 +f 714/953/132 715/958/132 703/954/132 +f 712/955/127 716/1692/127 717/956/127 +f 718/957/127 719/963/127 715/958/127 +f 716/959/162 720/964/162 721/960/162 +f 701/962/133 704/1693/133 719/963/133 +f 720/964/159 722/969/159 723/965/159 +f 716/968/126 712/1694/126 711/1695/126 +f 711/1695/126 724/1696/126 716/968/126 +f 724/1696/126 722/966/126 716/968/126 +f 722/969/130 724/971/130 725/970/130 +f 724/971/160 711/950/160 710/952/160 +f 725/973/124 710/1697/124 713/974/124 +f 713/974/124 717/1698/124 721/1699/124 +f 721/1699/124 723/972/124 713/974/124 +f 719/963/125 726/979/125 727/975/125 +f 704/978/133 728/1700/133 729/981/133 +f 728/982/127 730/1002/127 731/983/127 +f 726/979/126 729/981/126 732/985/126 +f 727/975/132 732/985/132 733/986/132 +f 703/977/124 733/986/124 728/987/124 +f 734/989/169 735/992/169 733/986/169 +f 737/994/179 738/1004/179 739/995/179 +f 729/984/126 731/983/126 737/994/126 +f 734/989/130 737/994/130 736/996/130 +f 735/992/124 736/996/124 730/997/124 +f 730/997/124 736/996/124 739/995/124 +f 730/1002/178 742/1701/178 740/1003/178 +f 731/983/126 740/1003/126 738/1004/126 +f 741/999/171 743/1005/171 739/995/171 +f 743/1005/124 744/1015/124 745/1006/124 +f 745/1009/132 747/1702/132 748/1010/132 +f 742/1012/132 745/1703/132 749/1013/132 +f 740/998/126 749/1013/126 750/1014/126 +f 741/999/133 750/1014/133 744/1015/133 +f 746/1011/125 751/1017/125 750/1014/125 +f 744/1018/130 752/1022/130 747/1020/130 +f 751/1017/133 753/1023/133 752/1022/133 +f 746/1011/127 748/1010/127 753/1023/127 +f 391/527/132 1772/1497/132 1771/1024/132 +f 401/1026/132 1785/1032/132 1767/1027/132 +f 1765/1704/132 1769/1705/132 389/1030/132 +f 1769/1705/132 1786/1025/132 1771/1024/132 +f 389/1030/132 1769/1705/132 1771/1024/132 +f 1786/1025/132 1769/1705/132 1770/1031/132 +f 592/1033/127 590/1706/127 589/1034/127 +f 951/1036/183 952/1049/183 953/1037/183 +f 956/1039/182 957/1050/182 958/1040/182 +f 959/1042/182 960/1045/182 961/1043/182 +f 960/1045/182 963/1051/182 964/1046/182 +f 965/1047/182 951/1036/182 954/1038/182 +f 952/1049/182 955/1041/182 958/1040/182 +f 956/1039/182 959/1042/182 962/1044/182 +f 963/1051/183 965/1707/183 966/1052/183 +f 974/1053/182 967/1708/182 968/1054/182 +f 968/1054/183 969/1709/183 970/1055/183 +f 970/1055/183 971/1710/183 972/1711/183 +f 972/1711/182 973/1712/182 970/1055/182 +f 973/1712/182 974/1053/182 970/1055/182 +f 976/1056/183 977/1060/183 978/1057/183 +f 976/1056/182 979/1062/182 980/1059/182 +f 981/1061/182 982/1713/182 980/1059/182 +f 983/1063/183 984/1067/183 982/1064/183 +f 983/1063/182 985/1068/182 986/1066/182 +f 985/1068/183 987/1070/183 988/1069/183 +f 987/1070/183 989/1072/183 990/1071/183 +f 989/1072/182 975/1058/182 978/1057/182 +f 1039/1073/184 1040/1086/184 1041/1074/184 +f 1044/1076/184 1045/1087/184 1046/1077/184 +f 1047/1079/185 1048/1082/185 1049/1080/185 +f 1048/1082/184 1051/1088/184 1052/1083/184 +f 1053/1084/184 1039/1073/184 1042/1075/184 +f 1040/1086/184 1043/1078/184 1046/1077/184 +f 1047/1079/184 1050/1081/184 1045/1087/184 +f 1051/1088/185 1053/1714/185 1054/1089/185 +f 1062/1090/184 1055/1715/184 1056/1091/184 +f 1056/1091/185 1057/1716/185 1058/1092/185 +f 1058/1092/184 1059/1717/184 1062/1090/184 +f 1059/1717/185 1060/1718/185 1062/1090/185 +f 1060/1718/184 1061/1719/184 1062/1090/184 +f 1064/1093/185 1065/1097/185 1066/1094/185 +f 1064/1093/184 1067/1099/184 1068/1096/184 +f 1069/1098/184 1070/1720/184 1068/1096/184 +f 1071/1100/185 1072/1104/185 1070/1101/185 +f 1073/1103/184 1074/1106/184 1072/1104/184 +f 1073/1103/184 1075/1107/184 1076/1105/184 +f 1075/1107/185 1077/1109/185 1078/1108/185 +f 1077/1109/184 1063/1095/184 1066/1094/184 +f 1127/1110/187 1128/1123/187 1129/1111/187 +f 1132/1113/186 1133/1124/186 1134/1114/186 +f 1135/1116/187 1136/1119/187 1137/1117/187 +f 1136/1119/186 1139/1125/186 1140/1120/186 +f 1141/1121/186 1127/1110/186 1130/1112/186 +f 1128/1123/186 1131/1115/186 1134/1114/186 +f 1135/1116/186 1138/1118/186 1133/1124/186 +f 1139/1125/187 1141/1721/187 1142/1126/187 +f 1150/1127/186 1143/1722/186 1144/1128/186 +f 1144/1128/187 1145/1723/187 1146/1129/187 +f 1146/1129/186 1147/1724/186 1150/1127/186 +f 1147/1724/187 1148/1725/187 1150/1127/187 +f 1148/1725/186 1149/1726/186 1150/1127/186 +f 1152/1130/187 1153/1134/187 1154/1131/187 +f 1152/1130/186 1155/1136/186 1156/1133/186 +f 1157/1135/186 1158/1727/186 1156/1133/186 +f 1159/1137/187 1160/1141/187 1158/1138/187 +f 1161/1140/186 1162/1143/186 1160/1141/186 +f 1161/1140/187 1163/1144/187 1164/1142/187 +f 1163/1144/187 1165/1146/187 1166/1145/187 +f 1165/1146/186 1151/1132/186 1154/1131/186 +f 1215/1147/189 1216/1160/189 1217/1148/189 +f 1220/1150/189 1221/1161/189 1222/1151/189 +f 1223/1153/189 1224/1156/189 1225/1154/189 +f 1224/1156/189 1227/1162/189 1228/1157/189 +f 1229/1158/189 1215/1147/189 1218/1149/189 +f 1216/1160/189 1219/1152/189 1222/1151/189 +f 1223/1153/189 1226/1155/189 1221/1161/189 +f 1227/1162/188 1229/1728/188 1230/1163/188 +f 1238/1164/188 1231/1729/188 1232/1165/188 +f 1232/1165/188 1233/1730/188 1234/1166/188 +f 1234/1166/189 1235/1731/189 1238/1164/189 +f 1235/1731/188 1236/1732/188 1238/1164/188 +f 1236/1732/189 1237/1733/189 1238/1164/189 +f 1240/1167/188 1241/1171/188 1242/1168/188 +f 1240/1167/188 1243/1173/188 1244/1170/188 +f 1245/1172/189 1246/1734/189 1244/1170/189 +f 1247/1174/188 1248/1178/188 1246/1175/188 +f 1249/1177/189 1250/1180/189 1248/1178/189 +f 1249/1177/189 1251/1181/189 1252/1179/189 +f 1251/1181/188 1253/1183/188 1254/1182/188 +f 1253/1183/189 1239/1169/189 1242/1168/189 +f 1303/1184/191 1304/1197/191 1305/1185/191 +f 1308/1187/191 1309/1198/191 1310/1188/191 +f 1311/1190/191 1312/1193/191 1313/1191/191 +f 1312/1193/191 1315/1199/191 1316/1194/191 +f 1317/1195/191 1303/1184/191 1306/1186/191 +f 1304/1197/191 1307/1189/191 1310/1188/191 +f 1311/1190/191 1314/1192/191 1309/1198/191 +f 1315/1199/190 1317/1735/190 1318/1200/190 +f 1326/1201/190 1319/1736/190 1320/1202/190 +f 1320/1202/190 1321/1737/190 1322/1203/190 +f 1322/1203/191 1323/1738/191 1326/1201/191 +f 1323/1738/190 1324/1739/190 1326/1201/190 +f 1324/1739/191 1325/1740/191 1326/1201/191 +f 1328/1204/190 1329/1208/190 1330/1205/190 +f 1328/1204/190 1331/1210/190 1332/1207/190 +f 1333/1209/191 1334/1741/191 1332/1207/191 +f 1335/1211/190 1336/1215/190 1334/1212/190 +f 1337/1214/191 1338/1217/191 1336/1215/191 +f 1337/1214/191 1339/1218/191 1340/1216/191 +f 1339/1218/190 1341/1220/190 1342/1219/190 +f 1341/1220/191 1327/1206/191 1330/1205/191 +f 1391/1221/193 1392/1234/193 1393/1222/193 +f 1396/1224/193 1397/1235/193 1398/1225/193 +f 1399/1227/193 1400/1230/193 1401/1228/193 +f 1400/1230/193 1403/1236/193 1404/1231/193 +f 1405/1232/193 1391/1221/193 1394/1223/193 +f 1392/1234/193 1395/1226/193 1398/1225/193 +f 1396/1224/193 1399/1227/193 1402/1229/193 +f 1403/1236/192 1405/1742/192 1406/1237/192 +f 1414/1238/192 1407/1743/192 1408/1239/192 +f 1408/1239/192 1409/1744/192 1410/1240/192 +f 1410/1240/193 1411/1745/193 1412/1746/193 +f 1412/1746/192 1413/1747/192 1410/1240/192 +f 1413/1747/193 1414/1238/193 1410/1240/193 +f 1416/1241/192 1417/1245/192 1418/1242/192 +f 1416/1241/192 1419/1247/192 1420/1244/192 +f 1421/1246/193 1422/1748/193 1420/1244/193 +f 1423/1248/192 1424/1252/192 1422/1249/192 +f 1425/1251/193 1426/1254/193 1424/1252/193 +f 1425/1251/193 1427/1255/193 1428/1253/193 +f 1427/1255/192 1429/1257/192 1430/1256/192 +f 1429/1257/193 1415/1243/193 1418/1242/193 +f 1479/1258/195 1480/1271/195 1481/1259/195 +f 1484/1261/195 1485/1272/195 1486/1262/195 +f 1487/1264/195 1488/1268/195 1489/1265/195 +f 1491/1267/195 1492/1274/195 1489/1265/195 +f 1493/1269/195 1479/1258/195 1482/1260/195 +f 1480/1271/195 1483/1263/195 1486/1262/195 +f 1487/1264/195 1490/1266/195 1485/1272/195 +f 1491/1267/194 1493/1749/194 1494/1273/194 +f 1502/1275/194 1495/1750/194 1496/1276/194 +f 1496/1276/194 1497/1751/194 1498/1277/194 +f 1498/1277/195 1499/1752/195 1502/1275/195 +f 1499/1752/194 1500/1753/194 1502/1275/194 +f 1500/1753/195 1501/1754/195 1502/1275/195 +f 1504/1278/194 1505/1282/194 1506/1279/194 +f 1504/1278/194 1507/1284/194 1508/1281/194 +f 1509/1283/195 1510/1755/195 1508/1281/195 +f 1511/1285/194 1512/1289/194 1510/1286/194 +f 1513/1288/195 1514/1291/195 1512/1289/195 +f 1513/1288/195 1515/1292/195 1516/1290/195 +f 1515/1292/194 1517/1294/194 1518/1293/194 +f 1517/1294/195 1503/1280/195 1506/1279/195 +f 1567/1295/196 1568/1300/196 1569/1296/196 +f 1571/1298/274 1572/1756/274 1570/1297/274 +f 1573/1299/198 1571/1757/198 1569/1296/198 +f 1573/1301/199 1568/1300/199 1567/1295/199 +f 1574/1303/200 1567/1295/200 1570/1297/200 +f 1576/1305/201 1577/1309/201 1578/1306/201 +f 1579/1308/275 1580/1758/275 1578/1306/275 +f 1581/1310/203 1579/1759/203 1577/1309/203 +f 1581/1311/204 1576/1305/204 1575/1307/204 +f 1582/1313/205 1575/1307/205 1578/1306/205 +f 1583/1315/206 1584/1320/206 1585/1316/206 +f 1587/1318/276 1588/1760/276 1586/1317/276 +f 1589/1319/208 1587/1761/208 1585/1316/208 +f 1589/1321/209 1584/1320/209 1583/1315/209 +f 1590/1323/210 1583/1315/210 1586/1317/210 +f 1591/1325/211 1592/1330/211 1593/1326/211 +f 1595/1328/277 1596/1762/277 1594/1327/277 +f 1597/1329/213 1595/1763/213 1593/1326/213 +f 1597/1331/214 1592/1330/214 1591/1325/214 +f 1598/1333/215 1591/1325/215 1594/1327/215 +f 1599/1335/216 1600/1340/216 1601/1336/216 +f 1603/1338/278 1604/1764/278 1602/1337/278 +f 1605/1339/218 1603/1765/218 1601/1336/218 +f 1605/1341/219 1600/1340/219 1599/1335/219 +f 1606/1343/220 1599/1335/220 1602/1337/220 +f 1608/1345/221 1609/1349/221 1610/1346/221 +f 1611/1348/279 1612/1766/279 1610/1346/279 +f 1613/1350/223 1611/1767/223 1609/1349/223 +f 1613/1351/224 1608/1345/224 1607/1347/224 +f 1614/1353/225 1607/1347/225 1610/1346/225 +f 1615/1355/226 1616/1360/226 1617/1356/226 +f 1619/1358/280 1620/1768/280 1618/1357/280 +f 1621/1359/228 1619/1769/228 1617/1356/228 +f 1621/1361/229 1616/1360/229 1615/1355/229 +f 1622/1363/230 1615/1355/230 1618/1357/230 +f 1624/1365/231 1625/1369/231 1626/1366/231 +f 1627/1368/281 1628/1770/281 1626/1366/281 +f 1629/1370/233 1627/1771/233 1625/1369/233 +f 1629/1371/234 1624/1365/234 1623/1367/234 +f 1630/1373/235 1623/1367/235 1626/1366/235 +f 1631/1375/236 1632/1380/236 1633/1376/236 +f 1635/1378/282 1636/1772/282 1634/1377/282 +f 1637/1379/238 1635/1773/238 1633/1376/238 +f 1637/1381/239 1632/1380/239 1631/1375/239 +f 1638/1383/240 1631/1375/240 1634/1377/240 +f 1639/1385/241 1640/1390/241 1641/1386/241 +f 1643/1388/283 1644/1774/283 1642/1387/283 +f 1645/1389/243 1643/1775/243 1641/1386/243 +f 1645/1391/244 1640/1390/244 1639/1385/244 +f 1646/1393/245 1639/1385/245 1642/1387/245 +f 1647/1395/246 1648/1400/246 1649/1396/246 +f 1651/1398/284 1652/1776/284 1650/1397/284 +f 1653/1399/248 1651/1777/248 1649/1396/248 +f 1653/1401/249 1648/1400/249 1647/1395/249 +f 1654/1403/250 1647/1395/250 1650/1397/250 +f 1655/1405/251 1656/1410/251 1657/1406/251 +f 1659/1408/285 1660/1778/285 1658/1407/285 +f 1661/1409/253 1659/1779/253 1657/1406/253 +f 1661/1411/254 1656/1410/254 1655/1405/254 +f 1662/1413/255 1655/1405/255 1658/1407/255 +f 1663/1415/256 1664/1420/256 1665/1416/256 +f 1667/1418/286 1668/1780/286 1666/1417/286 +f 1669/1419/258 1667/1781/258 1665/1416/258 +f 1669/1421/259 1664/1420/259 1663/1415/259 +f 1670/1423/260 1663/1415/260 1666/1417/260 +f 1672/1425/261 1673/1429/261 1674/1426/261 +f 1675/1428/287 1676/1782/287 1674/1426/287 +f 1677/1430/263 1675/1783/263 1673/1429/263 +f 1677/1431/264 1672/1425/264 1671/1427/264 +f 1678/1433/265 1671/1427/265 1674/1426/265 +f 1679/1435/266 1680/1440/266 1681/1436/266 +f 1683/1438/288 1684/1784/288 1682/1437/288 +f 1685/1439/268 1683/1785/268 1681/1436/268 +f 1685/1441/269 1680/1440/269 1679/1435/269 +f 1686/1443/270 1679/1435/270 1682/1437/270 +f 1757/1447/124 1688/1786/124 1687/1787/124 +f 1687/1787/124 1691/1445/124 1757/1447/124 +f 297/423/130 1689/846/130 1687/1448/130 +f 389/862/130 298/421/130 1687/1448/130 +f 651/1450/151 1762/1788/151 1768/1451/151 +f 1691/1453/130 1693/1789/130 1694/1454/130 +f 1757/1456/133 1692/1790/133 1694/1457/133 +f 1689/1459/132 1693/1791/132 1691/1460/132 +f 1693/1464/126 1689/1792/126 1758/1462/126 +f 1689/1792/126 1690/1793/126 1758/1462/126 +f 1690/1465/126 1766/1794/126 1770/1466/126 +f 655/1468/125 1764/1795/125 1771/1469/125 +f 1760/1471/143 1772/1796/143 1763/1472/143 +f 1775/1483/151 1773/1797/151 1774/1484/151 +f 1778/1486/130 1780/1798/130 1779/1487/130 +f 1783/1492/143 1781/1799/143 1782/1493/143 +f 1785/1032/132 1770/1031/132 1767/1027/132 +f 1770/1031/132 1766/1800/132 390/1495/132 +f 390/1495/132 1761/1801/132 1767/1027/132 +f 1768/1028/132 1762/1802/132 227/1496/132 +f 239/526/132 1763/1803/132 1772/1497/132 +f 1788/1498/127 1789/1512/127 1790/1499/127 +f 1792/1501/130 1793/1510/130 1794/1502/130 +f 1796/1504/124 1797/1514/124 1798/1505/124 +f 1800/1507/126 1801/1511/126 1802/1508/126 +f 1799/1509/151 1802/1508/151 1793/1510/151 +f 1801/1511/125 1800/1507/125 1790/1499/125 +f 1787/1513/128 1798/1505/128 1797/1514/128 +f 1794/1502/143 1796/1504/143 1795/1506/143 +f 1805/1538/132 1800/1537/132 1804/1518/132 +f 1800/1537/132 1799/1516/132 1804/1518/132 +f 1803/1517/132 1799/1516/132 1807/1521/132 +f 1799/1516/132 1792/1519/132 1807/1521/132 +f 1806/1520/132 1792/1519/132 1809/1524/132 +f 1792/1519/132 1791/1522/132 1809/1524/132 +f 1808/1523/132 1791/1522/132 1811/1527/132 +f 1791/1522/132 1795/1525/132 1811/1527/132 +f 1810/1526/132 1795/1525/132 1813/1530/132 +f 1795/1525/132 1798/1528/132 1813/1530/132 +f 1812/1529/132 1798/1528/132 1815/1533/132 +f 1798/1528/132 1787/1531/132 1815/1533/132 +f 1814/1532/132 1787/1531/132 1817/1536/132 +f 1787/1531/132 1790/1534/132 1817/1536/132 +f 1816/1535/132 1790/1534/132 1818/1539/132 +f 1790/1534/132 1800/1537/132 1818/1539/132 +f 1834/1542/132 1819/1804/132 1820/1805/132 +f 1820/1805/132 1821/1806/132 1822/1807/132 +f 1822/1807/132 1823/1808/132 1824/1809/132 +f 1824/1809/132 1825/1810/132 1826/1540/132 +f 1826/1540/132 1827/1811/132 1828/1812/132 +f 1828/1812/132 1829/1813/132 1830/1541/132 +f 1830/1541/132 1831/1814/132 1832/1815/132 +f 1832/1815/132 1833/1816/132 1834/1542/132 +f 1834/1542/132 1820/1805/132 1826/1540/132 +f 1820/1805/132 1822/1807/132 1826/1540/132 +f 1822/1807/132 1824/1809/132 1826/1540/132 +f 1826/1540/132 1828/1812/132 1830/1541/132 +f 1830/1541/132 1832/1815/132 1834/1542/132 +f 1793/1545/133 1802/1548/133 1836/1543/133 +f 1802/1548/133 1835/1547/133 1836/1543/133 +f 1802/1548/133 1801/1551/133 1839/1546/133 +f 1801/1551/133 1838/1550/133 1839/1546/133 +f 1801/1551/133 1789/1554/133 1841/1549/133 +f 1789/1554/133 1840/1553/133 1841/1549/133 +f 1789/1554/133 1788/1557/133 1843/1552/133 +f 1788/1557/133 1842/1556/133 1843/1552/133 +f 1788/1557/133 1797/1560/133 1845/1555/133 +f 1797/1560/133 1844/1559/133 1845/1555/133 +f 1797/1560/133 1796/1563/133 1847/1558/133 +f 1796/1563/133 1846/1562/133 1847/1558/133 +f 1796/1563/133 1794/1566/133 1849/1561/133 +f 1794/1566/133 1848/1565/133 1849/1561/133 +f 1794/1566/133 1793/1545/133 1850/1564/133 +f 1793/1545/133 1837/1544/133 1850/1564/133 +s 1 +f 754/1817/289 756/1818/290 757/1819/291 +f 759/1820/149 761/1821/292 758/1822/293 +f 763/1823/294 765/1824/295 762/1825/296 +f 766/1826/297 764/1827/298 763/1823/294 +f 768/1828/147 757/1819/291 769/1829/299 +f 755/1830/300 761/1821/292 756/1818/290 +f 759/1820/149 765/1824/295 760/1831/301 +f 768/1832/147 767/1833/302 766/1826/297 +f 765/1824/295 770/1834/303 771/1835/304 +f 760/1831/301 773/1836/305 761/1821/292 +f 756/1818/290 775/1837/306 757/1819/291 +f 769/1838/299 777/1839/307 767/1833/302 +f 760/1831/301 771/1835/304 772/1840/308 +f 761/1821/292 774/1841/309 756/1818/290 +f 769/1829/299 775/1837/306 776/1842/144 +f 764/1827/298 777/1839/307 770/1834/303 +f 776/1842/144 778/1843/310 779/1844/133 +f 770/1834/303 780/1845/311 781/1846/312 +f 770/1834/303 782/1847/313 771/1835/304 +f 772/1840/308 784/1848/314 773/1836/305 +f 774/1841/309 778/1843/310 775/1837/306 +f 776/1849/144 780/1845/311 777/1839/307 +f 772/1840/308 782/1847/313 783/1850/132 +f 774/1841/309 784/1848/314 785/1851/315 +f 782/1847/313 787/1852/316 783/1850/132 +f 785/1851/315 788/1853/317 789/1854/318 +f 779/1844/133 790/1855/319 791/1856/320 +f 780/1845/311 793/1857/321 781/1846/312 +f 781/1846/312 786/1858/322 782/1847/313 +f 784/1848/314 787/1852/316 788/1853/317 +f 778/1843/310 789/1854/318 790/1855/319 +f 779/1859/133 792/1860/323 780/1845/311 +f 795/1861/324 310/436/325 794/1862/325 +f 797/1863/326 315/438/327 796/1864/327 +f 798/1865/328 305/432/329 302/440/328 +f 801/1866/330 306/430/331 800/1867/331 +f 795/1861/324 315/1583/327 313/442/324 +f 797/1863/326 302/440/328 301/427/326 +f 800/1867/331 305/432/329 799/1868/329 +f 794/1862/325 309/433/330 801/1866/330 +f 318/1869/329 327/451/328 330/450/329 +f 312/435/330 326/447/325 325/449/330 +f 318/1869/329 332/1589/331 319/1870/331 +f 314/437/324 326/447/325 311/434/325 +f 320/1871/330 332/455/331 334/458/330 +f 316/443/327 329/453/324 314/437/324 +f 320/1871/330 336/460/325 321/1872/325 +f 304/429/332 331/456/327 316/439/327 +f 307/441/331 325/449/330 339/463/331 +f 324/1873/326 327/451/328 317/1874/328 +f 307/441/331 337/461/329 308/431/329 +f 324/1873/326 340/462/327 328/448/326 +f 303/428/328 337/461/329 335/457/328 +f 322/1875/324 340/462/327 323/1876/327 +f 303/428/328 333/454/332 304/429/332 +f 322/1875/324 336/460/325 338/459/324 +f 803/1877/333 349/476/334 802/1878/334 +f 805/1879/325 363/482/335 804/1880/335 +f 807/1881/336 367/489/337 806/1882/337 +f 809/1883/328 371/492/338 808/1884/338 +f 802/1878/334 361/481/325 805/1879/325 +f 804/1880/335 365/486/336 807/1885/336 +f 806/1882/337 369/491/328 809/1883/328 +f 808/1884/338 350/474/333 803/1877/333 +f 351/1592/333 374/1603/334 352/475/334 +f 360/1886/336 387/519/335 353/1887/335 +f 359/1888/337 376/498/336 360/1889/336 +f 352/1598/334 378/1604/325 362/480/325 +f 358/1890/328 373/501/337 359/1891/337 +f 362/483/325 380/502/335 364/484/335 +f 357/1892/338 377/503/328 358/1893/328 +f 364/1599/335 382/505/336 366/485/336 +f 372/1602/338 375/1610/333 351/495/333 +f 353/1894/335 385/516/325 354/1895/325 +f 370/493/328 388/1609/338 372/494/338 +f 354/1896/325 383/513/334 355/1897/334 +f 368/1601/337 386/1608/328 370/490/328 +f 355/1898/334 381/509/333 356/1899/333 +f 366/1600/336 384/508/337 368/488/337 +f 356/1900/333 379/506/338 357/1901/338 +f 810/1902/339 619/1903/172 618/1904/339 +f 812/1905/124 622/1906/340 621/1907/124 +f 624/838/341 631/1908/342 625/839/341 +f 810/1902/339 617/1909/343 814/1910/343 +f 815/1911/344 621/1907/124 620/1912/344 +f 633/844/342 630/1913/345 631/1908/342 +f 816/1914/346 615/1915/347 614/1916/346 +f 627/1917/348 617/1909/343 616/1918/348 +f 815/1911/344 619/1903/172 811/1919/172 +f 632/1920/345 629/1921/126 630/1913/345 +f 816/1914/346 622/1906/340 813/1922/340 +f 626/840/349 629/1921/126 817/1923/126 +f 819/1924/342 639/1925/154 818/1926/154 +f 820/1927/124 637/1928/340 636/1929/124 +f 822/1930/350 644/1931/343 643/1932/350 +f 824/1933/339 634/1934/172 645/1935/339 +f 819/1924/342 641/1936/345 640/1937/342 +f 827/1938/346 637/1928/340 821/1939/340 +f 824/1940/339 644/1931/343 823/1941/343 +f 828/1942/344 634/1934/172 825/1943/172 +f 829/1944/126 641/1936/345 826/1945/345 +f 827/1938/346 639/1925/154 638/1946/346 +f 820/1927/124 635/1947/344 828/1942/344 +f 829/1944/126 643/1932/350 642/1948/126 +f 831/1949/351 833/1950/352 830/1951/353 +f 835/1952/354 837/1953/355 834/1954/356 +f 839/1955/357 841/1956/358 838/1957/359 +f 843/1958/360 845/1959/361 842/1960/362 +f 845/1959/361 839/1955/357 838/1957/359 +f 846/1961/363 843/1958/360 842/1960/362 +f 844/1962/364 849/1963/365 839/1955/357 +f 847/1964/366 851/1965/367 843/1958/360 +f 839/1955/357 852/1966/368 840/1967/369 +f 851/1965/367 844/1962/364 843/1958/360 +f 854/1968/357 856/1969/358 853/1970/359 +f 858/1971/360 860/1972/361 857/1973/362 +f 860/1972/361 854/1968/357 853/1970/359 +f 862/1974/366 857/1973/362 861/1975/363 +f 859/1976/364 864/1977/365 854/1968/357 +f 862/1974/366 866/1978/367 858/1971/360 +f 864/1977/365 855/1979/369 854/1968/357 +f 866/1978/367 859/1976/364 858/1971/360 +f 869/1980/357 871/1981/358 868/1982/359 +f 873/1983/370 875/1984/361 872/1985/362 +f 875/1984/361 869/1980/357 868/1982/359 +f 877/1986/366 872/1985/362 876/1987/363 +f 874/1988/364 879/1989/365 869/1980/357 +f 880/1990/371 873/1983/370 877/1986/366 +f 869/1980/357 882/1991/368 870/1992/369 +f 881/1993/367 874/1988/364 873/1983/370 +f 841/1956/358 884/1994/130 838/1957/359 +f 856/1969/358 886/1995/130 853/1970/359 +f 838/1957/359 887/1996/143 845/1959/361 +f 845/1959/361 888/1997/124 842/1960/362 +f 871/1981/358 890/1998/130 868/1982/359 +f 853/1970/359 891/1999/143 860/1972/361 +f 842/1960/362 892/2000/337 846/1961/363 +f 860/1972/361 893/2001/124 857/1973/362 +f 868/1982/359 894/2002/143 875/1984/361 +f 875/1984/361 895/2003/124 872/1985/362 +f 857/1973/362 896/2004/337 861/1975/363 +f 872/1985/362 897/2005/337 876/1987/363 +f 831/1949/351 837/1953/355 832/2006/372 +f 898/2007/373 833/1950/352 899/2008/374 +f 832/2006/372 900/2009/375 901/2010/376 +f 899/2008/374 902/2011/377 903/2012/378 +f 837/1953/355 904/2013/379 900/2009/375 +f 832/2006/372 902/2011/377 833/1950/352 +f 906/2014/354 908/2015/355 905/2016/356 +f 910/2017/351 912/2018/352 909/2019/353 +f 910/2017/351 908/2015/355 911/2020/372 +f 909/2019/353 914/2021/374 913/2022/373 +f 911/2020/372 915/2023/375 916/2024/376 +f 914/2021/374 917/2025/377 918/2026/378 +f 907/2027/380 915/2023/375 908/2015/355 +f 911/2020/372 917/2025/377 912/2018/352 +f 921/2028/354 923/2029/355 920/2030/356 +f 925/2031/351 927/2032/381 924/2033/353 +f 925/2031/351 923/2029/355 926/2034/372 +f 924/2033/353 929/2035/374 928/2036/373 +f 926/2034/372 930/2037/375 931/2038/376 +f 927/2032/381 933/2039/378 929/2035/374 +f 923/2029/355 934/2040/379 930/2037/375 +f 926/2034/372 932/2041/377 927/2032/381 +f 935/2042/130 835/1952/354 834/1954/356 +f 937/2043/130 906/2014/354 905/2016/356 +f 939/2044/151 834/1954/356 831/1949/351 +f 940/2045/126 831/1949/351 830/1951/353 +f 941/2046/130 921/2028/354 920/2030/356 +f 943/2047/151 905/2016/356 910/2017/351 +f 944/2048/325 830/1951/353 898/2007/373 +f 945/2049/126 910/2017/351 909/2019/353 +f 946/2050/151 920/2030/356 925/2031/351 +f 947/2051/126 925/2031/351 924/2033/353 +f 948/2052/325 909/2019/353 913/2022/373 +f 949/2053/325 924/2033/353 928/2036/373 +f 991/2054/382 993/2055/383 994/2056/384 +f 996/2057/145 998/2058/385 995/2059/386 +f 1000/2060/387 1002/2061/388 999/2062/389 +f 1003/2063/390 1001/2064/391 1000/2060/387 +f 1005/2065/146 994/2056/384 1006/2066/392 +f 995/2059/386 993/2055/383 992/2067/393 +f 996/2057/145 1002/2061/388 997/2068/394 +f 1005/2069/146 1004/2070/395 1003/2063/390 +f 1002/2061/388 1007/2071/396 1008/2072/397 +f 997/2068/394 1010/2073/398 998/2058/385 +f 993/2055/383 1012/2074/399 994/2056/384 +f 1006/2075/392 1014/2076/400 1004/2070/395 +f 997/2068/394 1008/2072/397 1009/2077/148 +f 998/2058/385 1011/2078/401 993/2055/383 +f 1006/2066/392 1012/2074/399 1013/2079/150 +f 1001/2064/391 1014/2076/400 1007/2071/396 +f 1013/2079/150 1015/2080/311 1016/2081/133 +f 1007/2071/396 1017/2082/310 1018/2083/315 +f 1007/2071/396 1019/2084/402 1008/2072/397 +f 1009/2077/148 1021/2085/403 1010/2073/398 +f 1011/2078/401 1015/2080/311 1012/2074/399 +f 1013/2086/150 1017/2082/310 1014/2076/400 +f 1009/2077/148 1019/2084/402 1020/2087/132 +f 1011/2078/401 1021/2085/403 1022/2088/312 +f 1019/2084/402 1024/2089/404 1020/2087/132 +f 1022/2088/312 1025/2090/405 1026/2091/406 +f 1016/2081/133 1027/2092/407 1028/2093/408 +f 1017/2082/310 1030/2094/409 1018/2083/315 +f 1018/2083/315 1023/2095/410 1019/2084/402 +f 1021/2085/403 1024/2089/404 1025/2090/405 +f 1015/2080/311 1026/2091/406 1027/2092/407 +f 1016/2096/133 1029/2097/411 1017/2082/310 +f 1032/2098/412 960/1045/328 1031/2099/328 +f 1034/2100/413 965/1047/414 1033/2101/414 +f 1035/2102/325 955/1041/415 952/1049/325 +f 1038/2103/416 956/1039/417 1037/2104/417 +f 1032/2098/412 965/1707/414 963/1051/412 +f 1034/2100/413 952/1049/325 951/1036/413 +f 1037/2104/417 955/1041/415 1036/2105/415 +f 1031/2099/328 959/1042/416 1038/2103/416 +f 968/2106/415 977/1060/325 980/1059/415 +f 962/1044/416 976/1056/328 975/1058/416 +f 968/2106/415 982/1713/417 969/2107/417 +f 964/1046/412 976/1056/328 961/1043/328 +f 970/2108/416 982/1064/417 984/1067/416 +f 966/1052/414 979/1062/412 964/1046/412 +f 970/2108/416 986/1066/328 971/2109/328 +f 954/1038/418 981/1065/414 966/1048/414 +f 957/1050/417 975/1058/416 989/1072/417 +f 974/2110/413 977/1060/325 967/2111/325 +f 957/1050/417 987/1070/415 958/1040/415 +f 974/2110/413 990/1071/414 978/1057/413 +f 953/1037/325 987/1070/415 985/1068/325 +f 972/2112/412 990/1071/414 973/2113/414 +f 953/1037/325 983/1063/418 954/1038/418 +f 972/2112/412 986/1066/328 988/1069/412 +f 1079/2114/419 1081/2115/420 1082/2116/421 +f 1084/2117/422 1086/2118/423 1083/2119/424 +f 1088/2120/425 1090/2121/426 1087/2122/427 +f 1091/2123/428 1089/2124/429 1088/2120/425 +f 1093/2125/430 1082/2116/421 1094/2126/431 +f 1083/2119/424 1081/2115/420 1080/2127/432 +f 1084/2117/422 1090/2121/426 1085/2128/433 +f 1093/2129/430 1092/2130/434 1091/2123/428 +f 1090/2121/426 1095/2131/435 1096/2132/436 +f 1085/2128/433 1098/2133/437 1086/2118/423 +f 1081/2115/420 1100/2134/438 1082/2116/421 +f 1094/2135/431 1102/2136/439 1092/2130/434 +f 1085/2128/433 1096/2132/436 1097/2137/440 +f 1086/2118/423 1099/2138/441 1081/2115/420 +f 1094/2126/431 1100/2134/438 1101/2139/442 +f 1089/2124/429 1102/2136/439 1095/2131/435 +f 1101/2139/442 1103/2140/443 1104/2141/133 +f 1095/2131/435 1105/2142/444 1106/2143/445 +f 1095/2131/435 1107/2144/446 1096/2132/436 +f 1097/2137/440 1109/2145/447 1098/2133/437 +f 1099/2138/441 1103/2140/443 1100/2134/438 +f 1101/2146/442 1105/2142/444 1102/2136/439 +f 1097/2137/440 1107/2144/446 1108/2147/132 +f 1099/2138/441 1109/2145/447 1110/2148/448 +f 1107/2144/446 1112/2149/449 1108/2147/132 +f 1110/2148/448 1113/2150/450 1114/2151/451 +f 1104/2141/133 1115/2152/452 1116/2153/453 +f 1105/2142/444 1118/2154/454 1106/2143/445 +f 1106/2143/445 1111/2155/455 1107/2144/446 +f 1109/2145/447 1112/2149/449 1113/2150/450 +f 1103/2140/443 1114/2151/451 1115/2152/452 +f 1104/2156/133 1117/2157/456 1105/2142/444 +f 1120/2158/457 1048/1082/336 1119/2159/336 +f 1122/2160/458 1053/1084/459 1121/2161/459 +f 1123/2162/333 1043/1078/460 1040/1086/333 +f 1126/2163/461 1044/1076/462 1125/2164/462 +f 1120/2158/457 1053/1714/459 1051/1088/457 +f 1122/2160/458 1040/1086/333 1039/1073/458 +f 1124/2165/460 1044/1076/462 1043/1078/460 +f 1119/2159/336 1047/1079/461 1126/2163/461 +f 1056/2166/460 1065/1097/333 1068/1096/460 +f 1050/1081/461 1064/1093/336 1063/1095/461 +f 1056/2166/460 1070/1720/462 1057/2167/462 +f 1052/1083/457 1064/1093/336 1049/1080/336 +f 1058/2168/461 1070/1101/462 1072/1104/461 +f 1054/1089/459 1067/1099/457 1052/1083/457 +f 1058/2168/461 1074/1106/336 1059/2169/336 +f 1042/1075/463 1069/1102/459 1054/1085/459 +f 1045/1087/462 1063/1095/461 1077/1109/462 +f 1062/2170/458 1065/1097/333 1055/2171/333 +f 1045/1087/462 1075/1107/460 1046/1077/460 +f 1062/2170/458 1078/1108/459 1066/1094/458 +f 1046/1077/460 1073/1103/333 1041/1074/333 +f 1060/2172/457 1078/1108/459 1061/2173/459 +f 1041/1074/333 1071/1100/463 1042/1075/463 +f 1060/2172/457 1074/1106/336 1076/1105/457 +f 1167/2174/464 1169/2175/465 1170/2176/466 +f 1172/2177/467 1174/2178/468 1171/2179/469 +f 1176/2180/470 1178/2181/471 1175/2182/472 +f 1179/2183/473 1177/2184/474 1176/2180/470 +f 1181/2185/475 1170/2176/466 1182/2186/476 +f 1168/2187/477 1174/2178/468 1169/2175/465 +f 1172/2177/467 1178/2181/471 1173/2188/478 +f 1181/2189/475 1180/2190/479 1179/2183/473 +f 1178/2181/471 1183/2191/480 1184/2192/481 +f 1173/2188/478 1186/2193/482 1174/2178/468 +f 1169/2175/465 1188/2194/483 1170/2176/466 +f 1182/2195/476 1190/2196/484 1180/2190/479 +f 1173/2188/478 1184/2192/481 1185/2197/485 +f 1174/2178/468 1187/2198/486 1169/2175/465 +f 1182/2186/476 1188/2194/483 1189/2199/487 +f 1177/2184/474 1190/2196/484 1183/2191/480 +f 1189/2199/487 1191/2200/444 1192/2201/133 +f 1183/2191/480 1193/2202/443 1194/2203/448 +f 1183/2191/480 1195/2204/488 1184/2192/481 +f 1185/2197/485 1197/2205/489 1186/2193/482 +f 1187/2198/486 1191/2200/444 1188/2194/483 +f 1189/2206/487 1193/2202/443 1190/2196/484 +f 1185/2197/485 1195/2204/488 1196/2207/132 +f 1187/2198/486 1197/2205/489 1198/2208/445 +f 1195/2204/488 1200/2209/490 1196/2207/132 +f 1198/2208/445 1201/2210/491 1202/2211/492 +f 1192/2201/133 1203/2212/493 1204/2213/494 +f 1193/2202/443 1206/2214/495 1194/2203/448 +f 1194/2203/448 1199/2215/496 1195/2204/488 +f 1197/2205/489 1200/2209/490 1201/2210/491 +f 1191/2200/444 1202/2211/492 1203/2212/493 +f 1192/2216/133 1205/2217/497 1193/2202/443 +f 1208/2218/498 1136/1119/333 1207/2219/333 +f 1210/2220/499 1141/1121/500 1209/2221/500 +f 1211/2222/336 1131/1115/501 1128/1123/336 +f 1213/2223/502 1135/1116/503 1132/1113/502 +f 1208/2218/498 1141/1721/500 1139/1125/498 +f 1210/2220/499 1128/1123/336 1127/1110/499 +f 1213/2223/502 1131/1115/501 1212/2224/501 +f 1207/2219/333 1135/1116/503 1214/2225/503 +f 1144/2226/501 1153/1134/336 1156/1133/501 +f 1138/1118/503 1152/1130/333 1151/1132/503 +f 1144/2226/501 1158/1727/502 1145/2227/502 +f 1140/1120/498 1152/1130/333 1137/1117/333 +f 1146/2228/503 1158/1138/502 1160/1141/503 +f 1142/1126/500 1155/1136/498 1140/1120/498 +f 1146/2228/503 1162/1143/333 1147/2229/333 +f 1130/1112/504 1157/1139/500 1142/1122/500 +f 1133/1124/502 1151/1132/503 1165/1146/502 +f 1150/2230/499 1153/1134/336 1143/2231/336 +f 1133/1124/502 1163/1144/505 1134/1114/501 +f 1150/2230/499 1166/1145/500 1154/1131/499 +f 1134/1114/501 1161/1140/336 1129/1111/336 +f 1148/2232/498 1166/1145/500 1149/2233/500 +f 1129/1111/336 1159/1137/504 1130/1112/504 +f 1148/2232/498 1162/1143/333 1164/1142/498 +f 1255/2234/506 1257/2235/507 1258/2236/508 +f 1260/2237/509 1262/2238/510 1259/2239/511 +f 1264/2240/512 1266/2241/513 1263/2242/514 +f 1267/2243/515 1265/2244/516 1264/2240/512 +f 1269/2245/517 1258/2236/508 1270/2246/518 +f 1256/2247/519 1262/2238/510 1257/2235/507 +f 1260/2237/509 1266/2241/513 1261/2248/520 +f 1269/2249/517 1268/2250/521 1267/2243/515 +f 1266/2241/513 1271/2251/522 1272/2252/523 +f 1261/2248/520 1274/2253/524 1262/2238/510 +f 1257/2235/507 1276/2254/525 1258/2236/508 +f 1270/2255/518 1278/2256/526 1268/2250/521 +f 1261/2248/520 1272/2252/523 1273/2257/376 +f 1262/2238/510 1275/2258/527 1257/2235/507 +f 1270/2246/518 1276/2254/525 1277/2259/528 +f 1265/2244/516 1278/2256/526 1271/2251/522 +f 1277/2259/528 1279/2260/529 1280/2261/133 +f 1271/2251/522 1281/2262/530 1282/2263/531 +f 1271/2251/522 1283/2264/532 1272/2252/523 +f 1273/2257/376 1285/2265/533 1274/2253/524 +f 1275/2258/527 1279/2260/529 1276/2254/525 +f 1277/2266/528 1281/2262/530 1278/2256/526 +f 1273/2257/376 1283/2264/532 1284/2267/132 +f 1275/2258/527 1285/2265/533 1286/2268/534 +f 1283/2264/532 1288/2269/535 1284/2267/132 +f 1286/2268/534 1289/2270/536 1290/2271/537 +f 1280/2261/133 1291/2272/538 1292/2273/539 +f 1281/2262/530 1294/2274/540 1282/2263/531 +f 1282/2263/531 1287/2275/541 1283/2264/532 +f 1285/2265/533 1288/2269/535 1289/2270/536 +f 1279/2260/529 1290/2271/537 1291/2272/538 +f 1280/2276/133 1293/2277/542 1281/2262/530 +f 1296/2278/543 1224/1156/335 1295/2279/335 +f 1298/2280/544 1229/1158/545 1297/2281/545 +f 1299/2282/338 1219/1152/546 1216/1160/338 +f 1302/2283/547 1220/1150/548 1301/2284/548 +f 1296/2278/543 1229/1728/545 1227/1162/543 +f 1298/2280/544 1216/1160/338 1215/1147/544 +f 1300/2285/546 1220/1150/548 1219/1152/546 +f 1295/2279/335 1223/1153/547 1302/2283/547 +f 1232/2286/546 1241/1171/338 1244/1170/546 +f 1226/1155/547 1240/1167/335 1239/1169/547 +f 1232/2286/546 1246/1734/548 1233/2287/548 +f 1228/1157/543 1240/1167/335 1225/1154/335 +f 1234/2288/547 1246/1175/548 1248/1178/547 +f 1230/1163/545 1243/1173/543 1228/1157/543 +f 1234/2288/547 1250/1180/335 1235/2289/335 +f 1218/1149/549 1245/1176/545 1230/1159/545 +f 1221/1161/548 1239/1169/547 1253/1183/548 +f 1238/2290/544 1241/1171/338 1231/2291/338 +f 1221/1161/548 1251/1181/546 1222/1151/546 +f 1238/2290/544 1254/1182/545 1242/1168/544 +f 1222/1151/546 1249/1177/338 1217/1148/338 +f 1236/2292/543 1254/1182/545 1237/2293/545 +f 1217/1148/338 1247/1174/549 1218/1149/549 +f 1236/2292/543 1250/1180/335 1252/1179/543 +f 1343/2294/550 1345/2295/551 1346/2296/552 +f 1348/2297/553 1350/2298/554 1347/2299/555 +f 1352/2300/556 1354/2301/557 1351/2302/558 +f 1355/2303/559 1353/2304/560 1352/2300/556 +f 1357/2305/561 1346/2296/552 1358/2306/562 +f 1344/2307/563 1350/2298/554 1345/2295/551 +f 1351/2302/558 1349/2308/564 1348/2297/553 +f 1357/2309/561 1356/2310/565 1355/2303/559 +f 1354/2301/557 1359/2311/566 1360/2312/567 +f 1349/2308/564 1362/2313/568 1350/2298/554 +f 1345/2295/551 1364/2314/569 1346/2296/552 +f 1358/2315/562 1366/2316/570 1356/2310/565 +f 1349/2308/564 1360/2312/567 1361/2317/571 +f 1350/2298/554 1363/2318/572 1345/2295/551 +f 1358/2306/562 1364/2314/569 1365/2319/573 +f 1353/2304/560 1366/2316/570 1359/2311/566 +f 1364/2314/569 1368/2320/133 1365/2319/573 +f 1359/2311/566 1369/2321/529 1370/2322/534 +f 1359/2311/566 1371/2323/533 1360/2312/567 +f 1361/2317/571 1373/2324/532 1362/2313/568 +f 1363/2318/572 1367/2325/530 1364/2314/569 +f 1365/2326/573 1369/2321/529 1366/2316/570 +f 1361/2317/571 1371/2323/533 1372/2327/132 +f 1363/2318/572 1373/2324/532 1374/2328/531 +f 1371/2323/533 1376/2329/574 1372/2327/132 +f 1374/2328/531 1377/2330/575 1378/2331/576 +f 1368/2320/133 1379/2332/577 1380/2333/578 +f 1369/2321/529 1382/2334/579 1370/2322/534 +f 1370/2322/534 1375/2335/580 1371/2323/533 +f 1373/2324/532 1376/2329/574 1377/2330/575 +f 1367/2325/530 1378/2331/576 1379/2332/577 +f 1368/2336/133 1381/2337/581 1369/2321/529 +f 1384/2338/582 1312/1193/338 1383/2339/338 +f 1386/2340/583 1317/1195/584 1385/2341/584 +f 1387/2342/335 1307/1189/585 1304/1197/335 +f 1390/2343/586 1308/1187/587 1389/2344/587 +f 1384/2338/582 1317/1735/584 1315/1199/582 +f 1386/2340/583 1304/1197/335 1303/1184/583 +f 1389/2344/587 1307/1189/585 1388/2345/585 +f 1383/2339/338 1311/1190/586 1390/2343/586 +f 1320/2346/585 1329/1208/335 1332/1207/585 +f 1314/1192/586 1328/1204/338 1327/1206/586 +f 1320/2346/585 1334/1741/587 1321/2347/587 +f 1313/1191/338 1331/1210/582 1328/1204/338 +f 1322/2348/586 1334/1212/587 1336/1215/586 +f 1318/1200/584 1331/1210/582 1316/1194/588 +f 1322/2348/586 1338/1217/338 1323/2349/338 +f 1306/1186/589 1333/1213/584 1318/1196/584 +f 1309/1198/587 1327/1206/586 1341/1220/587 +f 1326/2350/583 1329/1208/335 1319/2351/335 +f 1309/1198/587 1339/1218/590 1310/1188/585 +f 1326/2350/583 1342/1219/584 1330/1205/583 +f 1310/1188/585 1337/1214/335 1305/1185/335 +f 1324/2352/582 1342/1219/584 1325/2353/584 +f 1305/1185/335 1335/1211/589 1306/1186/589 +f 1324/2352/582 1338/1217/338 1340/1216/582 +f 1431/2354/591 1433/2355/592 1434/2356/593 +f 1436/2357/594 1438/2358/595 1435/2359/596 +f 1440/2360/597 1442/2361/598 1439/2362/599 +f 1443/2363/600 1441/2364/601 1440/2360/597 +f 1445/2365/602 1434/2356/593 1446/2366/603 +f 1435/2359/596 1433/2355/592 1432/2367/604 +f 1436/2357/594 1442/2361/598 1437/2368/605 +f 1445/2369/602 1444/2370/606 1443/2363/600 +f 1442/2361/598 1447/2371/607 1448/2372/608 +f 1437/2368/605 1450/2373/609 1438/2358/595 +f 1433/2355/592 1452/2374/610 1434/2356/593 +f 1446/2375/603 1454/2376/611 1444/2370/606 +f 1437/2368/605 1448/2372/608 1449/2377/612 +f 1438/2358/595 1451/2378/613 1433/2355/592 +f 1446/2366/603 1452/2374/610 1453/2379/614 +f 1441/2364/601 1454/2376/611 1447/2371/607 +f 1453/2379/614 1455/2380/615 1456/2381/133 +f 1447/2371/607 1457/2382/616 1458/2383/617 +f 1447/2371/607 1459/2384/618 1448/2372/608 +f 1449/2377/612 1461/2385/619 1450/2373/609 +f 1451/2378/613 1455/2380/615 1452/2374/610 +f 1453/2386/614 1457/2382/616 1454/2376/611 +f 1449/2377/612 1459/2384/618 1460/2387/132 +f 1451/2378/613 1461/2385/619 1462/2388/620 +f 1459/2384/618 1464/2389/621 1460/2387/132 +f 1462/2388/620 1465/2390/622 1466/2391/623 +f 1456/2381/133 1467/2392/624 1468/2393/625 +f 1457/2382/616 1470/2394/626 1458/2383/617 +f 1458/2383/617 1463/2395/627 1459/2384/618 +f 1461/2385/619 1464/2389/621 1465/2390/622 +f 1455/2380/615 1466/2391/623 1467/2392/624 +f 1456/2396/133 1469/2397/628 1457/2382/616 +f 1472/2398/629 1400/1230/337 1471/2399/337 +f 1474/2400/630 1405/1232/631 1473/2401/631 +f 1475/2402/334 1395/1226/632 1392/1234/334 +f 1478/2403/633 1396/1224/634 1477/2404/634 +f 1472/2398/629 1405/1742/631 1403/1236/629 +f 1474/2400/630 1392/1234/334 1391/1221/630 +f 1477/2404/634 1395/1226/632 1476/2405/632 +f 1471/2399/337 1399/1227/633 1478/2403/633 +f 1408/2406/632 1417/1245/334 1420/1244/632 +f 1402/1229/633 1416/1241/337 1415/1243/633 +f 1408/2406/632 1422/1748/634 1409/2407/634 +f 1404/1231/629 1416/1241/337 1401/1228/337 +f 1410/2408/633 1422/1249/634 1424/1252/633 +f 1406/1237/631 1419/1247/629 1404/1231/629 +f 1410/2408/633 1426/1254/337 1411/2409/337 +f 1394/1223/635 1421/1250/631 1406/1233/631 +f 1397/1235/634 1415/1243/633 1429/1257/634 +f 1414/2410/630 1417/1245/334 1407/2411/334 +f 1397/1235/634 1427/1255/632 1398/1225/632 +f 1414/2410/630 1430/1256/631 1418/1242/630 +f 1398/1225/632 1425/1251/334 1393/1222/334 +f 1412/2412/629 1430/1256/631 1413/2413/631 +f 1393/1222/334 1423/1248/635 1394/1223/635 +f 1412/2412/629 1426/1254/337 1428/1253/629 +f 1519/2414/636 1521/2415/637 1522/2416/638 +f 1524/2417/639 1526/2418/640 1523/2419/641 +f 1528/2420/642 1530/2421/643 1527/2422/644 +f 1531/2423/645 1529/2424/646 1528/2420/642 +f 1533/2425/647 1522/2416/638 1534/2426/648 +f 1520/2427/649 1526/2418/640 1521/2415/637 +f 1524/2417/639 1530/2421/643 1525/2428/650 +f 1533/2429/647 1532/2430/651 1531/2423/645 +f 1530/2421/643 1535/2431/652 1536/2432/653 +f 1525/2428/650 1538/2433/654 1526/2418/640 +f 1521/2415/637 1540/2434/655 1522/2416/638 +f 1534/2435/648 1542/2436/656 1532/2430/651 +f 1530/2421/643 1537/2437/657 1525/2428/650 +f 1526/2418/640 1539/2438/658 1521/2415/637 +f 1534/2426/648 1540/2434/655 1541/2439/659 +f 1529/2424/646 1542/2436/656 1535/2431/652 +f 1541/2439/659 1543/2440/616 1544/2441/133 +f 1535/2431/652 1545/2442/615 1546/2443/620 +f 1535/2431/652 1547/2444/619 1536/2432/653 +f 1537/2437/657 1549/2445/618 1538/2433/654 +f 1539/2438/658 1543/2440/616 1540/2434/655 +f 1541/2446/659 1545/2442/615 1542/2436/656 +f 1537/2437/657 1547/2444/619 1548/2447/132 +f 1539/2438/658 1549/2445/618 1550/2448/617 +f 1547/2444/619 1552/2449/660 1548/2447/132 +f 1550/2448/617 1553/2450/661 1554/2451/662 +f 1544/2441/133 1555/2452/663 1556/2453/664 +f 1545/2442/615 1558/2454/665 1546/2443/620 +f 1546/2443/620 1551/2455/666 1547/2444/619 +f 1549/2445/618 1552/2449/660 1553/2450/661 +f 1543/2440/616 1554/2451/662 1555/2452/663 +f 1544/2456/133 1557/2457/667 1545/2442/615 +f 1560/2458/668 1488/1268/334 1559/2459/334 +f 1562/2460/669 1493/1269/670 1561/2461/670 +f 1563/2462/337 1483/1263/671 1480/1271/337 +f 1565/2463/672 1487/1264/673 1484/1261/672 +f 1560/2458/668 1493/1749/670 1491/1267/668 +f 1562/2460/669 1480/1271/337 1479/1258/669 +f 1564/2464/671 1484/1261/672 1483/1263/671 +f 1559/2459/334 1487/1264/673 1566/2465/673 +f 1496/2466/671 1505/1282/337 1508/1281/671 +f 1490/1266/673 1504/1278/334 1503/1280/673 +f 1496/2466/671 1510/1755/672 1497/2467/672 +f 1489/1265/334 1507/1284/668 1504/1278/334 +f 1498/2468/673 1510/1286/672 1512/1289/673 +f 1494/1273/670 1507/1284/668 1492/1274/674 +f 1498/2468/673 1514/1291/334 1499/2469/334 +f 1482/1260/675 1509/1287/670 1494/1270/670 +f 1485/1272/672 1503/1280/673 1517/1294/672 +f 1502/2470/669 1505/1282/337 1495/2471/337 +f 1485/1272/672 1515/1292/676 1486/1262/671 +f 1502/2470/669 1518/1293/670 1506/1279/669 +f 1486/1262/671 1513/1288/337 1481/1259/337 +f 1500/2472/668 1518/1293/670 1501/2473/670 +f 1481/1259/337 1511/1285/675 1482/1260/675 +f 1500/2472/668 1514/1291/334 1516/1290/668 +f 1695/2474/130 1704/2475/677 1699/2476/151 +f 1697/2477/328 1701/2478/678 1696/2479/143 +f 1699/2476/151 1703/2480/679 1698/2481/334 +f 1696/2479/143 1700/2482/680 1695/2474/130 +f 1701/2478/678 1707/2483/681 1706/2484/682 +f 1704/2475/677 1708/2485/683 1703/2480/679 +f 1701/2478/678 1705/2486/169 1700/2482/680 +f 1704/2475/677 1705/2486/169 1709/2487/684 +f 1705/2486/169 1714/2488/685 1709/2487/684 +f 1706/2484/682 1712/2489/686 1711/2490/687 +f 1709/2487/684 1713/2491/688 1708/2485/683 +f 1705/2486/169 1711/2490/687 1710/2492/308 +f 1715/2493/130 1724/2494/677 1719/2495/151 +f 1717/2496/328 1721/2497/678 1716/2498/143 +f 1719/2495/151 1723/2499/679 1718/2500/334 +f 1716/2498/143 1720/2501/680 1715/2493/130 +f 1721/2497/678 1727/2502/681 1726/2503/682 +f 1724/2494/677 1728/2504/683 1723/2499/679 +f 1721/2497/678 1725/2505/169 1720/2501/680 +f 1724/2494/677 1725/2505/169 1729/2506/684 +f 1725/2505/169 1734/2507/685 1729/2506/684 +f 1726/2503/682 1732/2508/686 1731/2509/687 +f 1729/2506/684 1733/2510/688 1728/2504/683 +f 1726/2503/682 1730/2511/308 1725/2505/169 +f 1735/2512/130 1744/2513/677 1739/2514/151 +f 1737/2515/328 1741/2516/678 1736/2517/143 +f 1739/2514/151 1743/2518/679 1738/2519/334 +f 1736/2517/143 1740/2520/680 1735/2512/130 +f 1741/2516/678 1747/2521/681 1746/2522/682 +f 1744/2513/677 1748/2523/683 1743/2518/679 +f 1741/2516/678 1745/2524/169 1740/2520/680 +f 1744/2513/677 1745/2524/169 1749/2525/684 +f 1745/2524/169 1754/2526/685 1749/2525/684 +f 1746/2522/682 1752/2527/686 1751/2528/687 +f 1749/2525/684 1753/2529/688 1748/2523/683 +f 1746/2522/682 1750/2530/308 1745/2524/169 +f 1809/2531/689 1867/2532/690 1868/2533/689 +f 1809/2531/689 1869/2534/691 1806/2535/691 +f 1806/2535/691 1870/2536/692 1807/2537/692 +f 1807/2537/692 1871/2538/693 1803/2539/693 +f 1803/2539/693 1872/2540/694 1804/2541/694 +f 1805/2542/695 1872/2540/694 1873/2543/695 +f 1818/2544/696 1873/2543/695 1874/2545/696 +f 1816/2546/697 1874/2545/696 1875/2547/697 +f 1817/2548/698 1875/2547/697 1876/2549/698 +f 1817/2550/698 1877/2551/699 1814/2552/699 +f 1814/2552/699 1878/2553/700 1815/2554/700 +f 1812/2555/701 1878/2553/700 1879/2556/701 +f 1812/2555/701 1880/2557/702 1813/2558/702 +f 1813/2558/702 1881/2559/703 1810/2560/703 +f 1810/2560/703 1882/2561/704 1811/2562/704 +f 1808/2563/690 1882/2561/704 1867/2532/690 +f 1867/2532/335 1884/2564/127 1868/2533/127 +f 1868/2533/127 1885/2565/336 1869/2534/336 +f 1875/2547/338 1887/2566/130 1876/2549/130 +f 1882/2561/125 1883/2567/335 1867/2532/335 +f 1874/2545/143 1886/2568/338 1875/2547/338 +f 1881/2559/325 1888/2569/125 1882/2561/125 +f 1873/2543/328 1889/2570/143 1874/2545/143 +f 1880/2557/126 1890/2571/325 1881/2559/325 +f 1872/2540/124 1891/2572/328 1873/2543/328 +f 1879/2556/334 1892/2573/126 1880/2557/126 +f 1871/2538/337 1893/2574/124 1872/2540/124 +f 1878/2553/151 1894/2575/334 1879/2556/334 +f 1870/2536/128 1895/2576/337 1871/2538/337 +f 1877/2551/333 1896/2577/151 1878/2553/151 +f 1869/2534/336 1897/2578/128 1870/2536/128 +f 1876/2579/130 1898/2580/333 1877/2551/333 +f 1889/2570/705 1829/2581/706 1828/2582/705 +f 1890/2571/707 1822/2583/708 1821/2584/707 +f 1893/2574/709 1829/2585/706 1891/2572/706 +f 1892/2573/708 1823/2586/710 1822/2587/708 +f 1893/2574/709 1831/2588/711 1830/2589/709 +f 1896/2577/712 1823/2590/710 1894/2575/710 +f 1897/2578/713 1831/2591/711 1895/2576/711 +f 1896/2577/712 1825/2592/714 1824/2593/712 +f 1885/2565/715 1832/2594/713 1897/2578/713 +f 1887/2595/716 1825/2596/714 1898/2580/714 +f 1884/2564/717 1819/2597/718 1834/2598/717 +f 1884/2564/717 1833/2599/715 1885/2565/715 +f 1887/2566/716 1827/2600/719 1826/2601/716 +f 1888/2569/720 1819/2602/718 1883/2567/718 +f 1889/2570/705 1827/2603/719 1886/2568/719 +f 1888/2569/720 1821/2604/707 1820/2605/720 +f 1842/2606/336 1860/2607/127 1843/2608/127 +f 1850/2609/130 1851/2610/338 1848/2611/338 +f 1837/2612/333 1852/2613/130 1850/2609/130 +f 1843/2614/127 1859/2615/335 1840/2616/335 +f 1848/2611/338 1866/2617/143 1849/2618/143 +f 1840/2616/335 1858/2619/125 1841/2620/125 +f 1849/2618/143 1865/2621/328 1846/2622/328 +f 1841/2620/125 1857/2623/325 1838/2624/325 +f 1846/2622/328 1864/2625/124 1847/2626/124 +f 1838/2624/325 1856/2627/126 1839/2628/126 +f 1847/2626/124 1863/2629/337 1844/2630/337 +f 1839/2628/126 1855/2631/334 1835/2632/334 +f 1844/2630/337 1862/2633/128 1845/2634/128 +f 1835/2632/334 1854/2635/151 1836/2636/151 +f 1845/2634/128 1861/2637/336 1842/2606/336 +f 1836/2636/151 1853/2638/333 1837/2612/333 +f 754/1817/289 755/1830/300 756/1818/290 +f 759/1820/149 760/1831/301 761/1821/292 +f 763/1823/294 764/1827/298 765/1824/295 +f 766/1826/297 767/1833/302 764/1827/298 +f 768/1828/147 754/1817/289 757/1819/291 +f 755/1830/300 758/1822/293 761/1821/292 +f 759/1820/149 762/1825/296 765/1824/295 +f 768/1832/147 769/1838/299 767/1833/302 +f 765/1824/295 764/1827/298 770/1834/303 +f 760/1831/301 772/1840/308 773/1836/305 +f 756/1818/290 774/1841/309 775/1837/306 +f 769/1838/299 776/1849/144 777/1839/307 +f 760/1831/301 765/1824/295 771/1835/304 +f 761/1821/292 773/1836/305 774/1841/309 +f 769/1829/299 757/1819/291 775/1837/306 +f 764/1827/298 767/1833/302 777/1839/307 +f 776/1842/144 775/1837/306 778/1843/310 +f 770/1834/303 777/1839/307 780/1845/311 +f 770/1834/303 781/1846/312 782/1847/313 +f 772/1840/308 783/1850/132 784/1848/314 +f 774/1841/309 785/1851/315 778/1843/310 +f 776/1849/144 779/1859/133 780/1845/311 +f 772/1840/308 771/1835/304 782/1847/313 +f 774/1841/309 773/1836/305 784/1848/314 +f 782/1847/313 786/1858/322 787/1852/316 +f 785/1851/315 784/1848/314 788/1853/317 +f 779/1844/133 778/1843/310 790/1855/319 +f 780/1845/311 792/1860/323 793/1857/321 +f 781/1846/312 793/1857/321 786/1858/322 +f 784/1848/314 783/1850/132 787/1852/316 +f 778/1843/310 785/1851/315 789/1854/318 +f 779/1859/133 791/2639/320 792/1860/323 +f 795/1861/324 313/442/324 310/436/325 +f 797/1863/326 301/427/326 315/438/327 +f 798/1865/328 799/1868/329 305/432/329 +f 801/1866/330 309/433/330 306/430/331 +f 795/1861/324 796/2640/327 315/1583/327 +f 797/1863/326 798/1865/328 302/440/328 +f 800/1867/331 306/430/331 305/432/329 +f 794/1862/325 310/436/325 309/433/330 +f 318/1869/329 317/1874/328 327/451/328 +f 312/435/330 311/434/325 326/447/325 +f 318/1869/329 330/450/329 332/1589/331 +f 314/437/324 329/453/324 326/447/325 +f 320/1871/330 319/2641/331 332/455/331 +f 316/443/327 331/452/327 329/453/324 +f 320/1871/330 334/458/330 336/460/325 +f 304/429/332 333/454/332 331/456/327 +f 307/441/331 312/435/330 325/449/330 +f 324/1873/326 328/448/326 327/451/328 +f 307/441/331 339/463/331 337/461/329 +f 324/1873/326 323/1876/327 340/462/327 +f 303/428/328 308/431/329 337/461/329 +f 322/1875/324 338/459/324 340/462/327 +f 303/428/328 335/457/328 333/454/332 +f 322/1875/324 321/1872/325 336/460/325 +f 803/1877/333 350/474/333 349/476/334 +f 805/1879/325 361/481/325 363/482/335 +f 807/1881/336 365/487/336 367/489/337 +f 809/1883/328 369/491/328 371/492/338 +f 802/1878/334 349/476/334 361/481/325 +f 804/1880/335 363/482/335 365/486/336 +f 806/1882/337 367/489/337 369/491/328 +f 808/1884/338 371/492/338 350/474/333 +f 351/1592/333 375/497/333 374/1603/334 +f 360/1886/336 376/517/336 387/519/335 +f 359/1888/337 373/496/337 376/498/336 +f 352/1598/334 374/500/334 378/1604/325 +f 358/1890/328 377/499/328 373/501/337 +f 362/483/325 378/1605/325 380/502/335 +f 357/1892/338 379/504/338 377/503/328 +f 364/1599/335 380/1606/335 382/505/336 +f 372/1602/338 388/518/338 375/1610/333 +f 353/1894/335 387/514/335 385/516/325 +f 370/493/328 386/515/328 388/1609/338 +f 354/1896/325 385/511/325 383/513/334 +f 368/1601/337 384/512/337 386/1608/328 +f 355/1898/334 383/510/334 381/509/333 +f 366/1600/336 382/1607/336 384/508/337 +f 356/1900/333 381/507/333 379/506/338 +f 810/1902/339 811/1919/172 619/1903/172 +f 812/1905/124 813/1922/340 622/1906/340 +f 624/838/341 633/844/342 631/1908/342 +f 810/1902/339 618/1904/339 617/1909/343 +f 815/1911/344 812/1905/124 621/1907/124 +f 633/844/342 632/1920/345 630/1913/345 +f 816/1914/346 623/2642/347 615/1915/347 +f 627/1917/348 814/1910/343 617/1909/343 +f 815/1911/344 620/1912/344 619/1903/172 +f 632/1920/345 817/1923/126 629/1921/126 +f 816/1914/346 614/1916/346 622/1906/340 +f 626/840/349 628/842/349 629/1921/126 +f 819/1924/342 640/1937/342 639/1925/154 +f 820/1927/124 821/1939/340 637/1928/340 +f 822/1930/350 823/1941/343 644/1931/343 +f 824/1933/339 825/1943/172 634/1934/172 +f 819/1924/342 826/1945/345 641/1936/345 +f 827/1938/346 638/1946/346 637/1928/340 +f 824/1940/339 645/2643/339 644/1931/343 +f 828/1942/344 635/1947/344 634/1934/172 +f 829/1944/126 642/1948/126 641/1936/345 +f 827/1938/346 818/1926/154 639/1925/154 +f 820/1927/124 636/1929/124 635/1947/344 +f 829/1944/126 822/1930/350 643/1932/350 +f 831/1949/351 832/2006/372 833/1950/352 +f 835/1952/354 836/2644/380 837/1953/355 +f 839/1955/357 840/1967/369 841/1956/358 +f 843/1958/360 844/1962/364 845/1959/361 +f 845/1959/361 844/1962/364 839/1955/357 +f 846/1961/363 847/1964/366 843/1958/360 +f 844/1962/364 848/2645/657 849/1963/365 +f 847/1964/366 850/2646/371 851/1965/367 +f 839/1955/357 849/1963/365 852/1966/368 +f 851/1965/367 848/2645/657 844/1962/364 +f 854/1968/357 855/1979/369 856/1969/358 +f 858/1971/360 859/1976/364 860/1972/361 +f 860/1972/361 859/1976/364 854/1968/357 +f 862/1974/366 858/1971/360 857/1973/362 +f 859/1976/364 863/2647/657 864/1977/365 +f 862/1974/366 865/2648/371 866/1978/367 +f 864/1977/365 867/2649/368 855/1979/369 +f 866/1978/367 863/2647/657 859/1976/364 +f 869/1980/357 870/1992/369 871/1981/358 +f 873/1983/370 874/1988/364 875/1984/361 +f 875/1984/361 874/1988/364 869/1980/357 +f 877/1986/366 873/1983/370 872/1985/362 +f 874/1988/364 878/2650/657 879/1989/365 +f 880/1990/371 881/1993/367 873/1983/370 +f 869/1980/357 879/1989/365 882/1991/368 +f 881/1993/367 878/2650/657 874/1988/364 +f 841/1956/358 883/2651/333 884/1994/130 +f 856/1969/358 885/2652/333 886/1995/130 +f 838/1957/359 884/1994/130 887/1996/143 +f 845/1959/361 887/1996/143 888/1997/124 +f 871/1981/358 889/2653/333 890/1998/130 +f 853/1970/359 886/1995/130 891/1999/143 +f 842/1960/362 888/1997/124 892/2000/337 +f 860/1972/361 891/1999/143 893/2001/124 +f 868/1982/359 890/1998/130 894/2002/143 +f 875/1984/361 894/2002/143 895/2003/124 +f 857/1973/362 893/2001/124 896/2004/337 +f 872/1985/362 895/2003/124 897/2005/337 +f 831/1949/351 834/1954/356 837/1953/355 +f 898/2007/373 830/1951/353 833/1950/352 +f 832/2006/372 837/1953/355 900/2009/375 +f 899/2008/374 833/1950/352 902/2011/377 +f 837/1953/355 836/2644/380 904/2013/379 +f 832/2006/372 901/2010/376 902/2011/377 +f 906/2014/354 907/2027/380 908/2015/355 +f 910/2017/351 911/2020/372 912/2018/352 +f 910/2017/351 905/2016/356 908/2015/355 +f 909/2019/353 912/2018/352 914/2021/374 +f 911/2020/372 908/2015/355 915/2023/375 +f 914/2021/374 912/2018/352 917/2025/377 +f 907/2027/380 919/2654/379 915/2023/375 +f 911/2020/372 916/2024/376 917/2025/377 +f 921/2028/354 922/2655/380 923/2029/355 +f 925/2031/351 926/2034/372 927/2032/381 +f 925/2031/351 920/2030/356 923/2029/355 +f 924/2033/353 927/2032/381 929/2035/374 +f 926/2034/372 923/2029/355 930/2037/375 +f 927/2032/381 932/2041/377 933/2039/378 +f 923/2029/355 922/2655/380 934/2040/379 +f 926/2034/372 931/2038/376 932/2041/377 +f 935/2042/130 936/2656/338 835/1952/354 +f 937/2043/130 938/2657/338 906/2014/354 +f 939/2044/151 935/2042/130 834/1954/356 +f 940/2045/126 939/2044/151 831/1949/351 +f 941/2046/130 942/2658/338 921/2028/354 +f 943/2047/151 937/2043/130 905/2016/356 +f 944/2048/325 940/2045/126 830/1951/353 +f 945/2049/126 943/2047/151 910/2017/351 +f 946/2050/151 941/2046/130 920/2030/356 +f 947/2051/126 946/2050/151 925/2031/351 +f 948/2052/325 945/2049/126 909/2019/353 +f 949/2053/325 947/2051/126 924/2033/353 +f 991/2054/382 992/2067/393 993/2055/383 +f 996/2057/145 997/2068/394 998/2058/385 +f 1000/2060/387 1001/2064/391 1002/2061/388 +f 1003/2063/390 1004/2070/395 1001/2064/391 +f 1005/2065/146 991/2054/382 994/2056/384 +f 995/2059/386 998/2058/385 993/2055/383 +f 996/2057/145 999/2062/389 1002/2061/388 +f 1005/2069/146 1006/2075/392 1004/2070/395 +f 1002/2061/388 1001/2064/391 1007/2071/396 +f 997/2068/394 1009/2077/148 1010/2073/398 +f 993/2055/383 1011/2078/401 1012/2074/399 +f 1006/2075/392 1013/2086/150 1014/2076/400 +f 997/2068/394 1002/2061/388 1008/2072/397 +f 998/2058/385 1010/2073/398 1011/2078/401 +f 1006/2066/392 994/2056/384 1012/2074/399 +f 1001/2064/391 1004/2070/395 1014/2076/400 +f 1013/2079/150 1012/2074/399 1015/2080/311 +f 1007/2071/396 1014/2076/400 1017/2082/310 +f 1007/2071/396 1018/2083/315 1019/2084/402 +f 1009/2077/148 1020/2087/132 1021/2085/403 +f 1011/2078/401 1022/2088/312 1015/2080/311 +f 1013/2086/150 1016/2096/133 1017/2082/310 +f 1009/2077/148 1008/2072/397 1019/2084/402 +f 1011/2078/401 1010/2073/398 1021/2085/403 +f 1019/2084/402 1023/2095/410 1024/2089/404 +f 1022/2088/312 1021/2085/403 1025/2090/405 +f 1016/2081/133 1015/2080/311 1027/2092/407 +f 1017/2082/310 1029/2097/411 1030/2094/409 +f 1018/2083/315 1030/2094/409 1023/2095/410 +f 1021/2085/403 1020/2087/132 1024/2089/404 +f 1015/2080/311 1022/2088/312 1026/2091/406 +f 1016/2096/133 1028/2659/408 1029/2097/411 +f 1032/2098/412 963/1051/412 960/1045/328 +f 1034/2100/413 951/1036/413 965/1047/414 +f 1035/2102/325 1036/2105/415 955/1041/415 +f 1038/2103/416 959/1042/416 956/1039/417 +f 1032/2098/412 1033/2660/414 965/1707/414 +f 1034/2100/413 1035/2102/325 952/1049/325 +f 1037/2104/417 956/1039/417 955/1041/415 +f 1031/2099/328 960/1045/328 959/1042/416 +f 968/2106/415 967/2111/325 977/1060/325 +f 962/1044/416 961/1043/328 976/1056/328 +f 968/2106/415 980/1059/415 982/1713/417 +f 964/1046/412 979/1062/412 976/1056/328 +f 970/2108/416 969/2661/417 982/1064/417 +f 966/1052/414 981/1061/414 979/1062/412 +f 970/2108/416 984/1067/416 986/1066/328 +f 954/1038/418 983/1063/418 981/1065/414 +f 957/1050/417 962/1044/416 975/1058/416 +f 974/2110/413 978/1057/413 977/1060/325 +f 957/1050/417 989/1072/417 987/1070/415 +f 974/2110/413 973/2113/414 990/1071/414 +f 953/1037/325 958/1040/415 987/1070/415 +f 972/2112/412 988/1069/412 990/1071/414 +f 953/1037/325 985/1068/325 983/1063/418 +f 972/2112/412 971/2109/328 986/1066/328 +f 1079/2114/419 1080/2127/432 1081/2115/420 +f 1084/2117/422 1085/2128/433 1086/2118/423 +f 1088/2120/425 1089/2124/429 1090/2121/426 +f 1091/2123/428 1092/2130/434 1089/2124/429 +f 1093/2125/430 1079/2114/419 1082/2116/421 +f 1083/2119/424 1086/2118/423 1081/2115/420 +f 1084/2117/422 1087/2122/427 1090/2121/426 +f 1093/2129/430 1094/2135/431 1092/2130/434 +f 1090/2121/426 1089/2124/429 1095/2131/435 +f 1085/2128/433 1097/2137/440 1098/2133/437 +f 1081/2115/420 1099/2138/441 1100/2134/438 +f 1094/2135/431 1101/2146/442 1102/2136/439 +f 1085/2128/433 1090/2121/426 1096/2132/436 +f 1086/2118/423 1098/2133/437 1099/2138/441 +f 1094/2126/431 1082/2116/421 1100/2134/438 +f 1089/2124/429 1092/2130/434 1102/2136/439 +f 1101/2139/442 1100/2134/438 1103/2140/443 +f 1095/2131/435 1102/2136/439 1105/2142/444 +f 1095/2131/435 1106/2143/445 1107/2144/446 +f 1097/2137/440 1108/2147/132 1109/2145/447 +f 1099/2138/441 1110/2148/448 1103/2140/443 +f 1101/2146/442 1104/2156/133 1105/2142/444 +f 1097/2137/440 1096/2132/436 1107/2144/446 +f 1099/2138/441 1098/2133/437 1109/2145/447 +f 1107/2144/446 1111/2155/455 1112/2149/449 +f 1110/2148/448 1109/2145/447 1113/2150/450 +f 1104/2141/133 1103/2140/443 1115/2152/452 +f 1105/2142/444 1117/2157/456 1118/2154/454 +f 1106/2143/445 1118/2154/454 1111/2155/455 +f 1109/2145/447 1108/2147/132 1112/2149/449 +f 1103/2140/443 1110/2148/448 1114/2151/451 +f 1104/2156/133 1116/2662/453 1117/2157/456 +f 1120/2158/457 1051/1088/457 1048/1082/336 +f 1122/2160/458 1039/1073/458 1053/1084/459 +f 1123/2162/333 1124/2165/460 1043/1078/460 +f 1126/2163/461 1047/1079/461 1044/1076/462 +f 1120/2158/457 1121/2663/459 1053/1714/459 +f 1122/2160/458 1123/2162/333 1040/1086/333 +f 1124/2165/460 1125/2164/462 1044/1076/462 +f 1119/2159/336 1048/1082/336 1047/1079/461 +f 1056/2166/460 1055/2171/333 1065/1097/333 +f 1050/1081/461 1049/1080/336 1064/1093/336 +f 1056/2166/460 1068/1096/460 1070/1720/462 +f 1052/1083/457 1067/1099/457 1064/1093/336 +f 1058/2168/461 1057/2664/462 1070/1101/462 +f 1054/1089/459 1069/1098/459 1067/1099/457 +f 1058/2168/461 1072/1104/461 1074/1106/336 +f 1042/1075/463 1071/1100/463 1069/1102/459 +f 1045/1087/462 1050/1081/461 1063/1095/461 +f 1062/2170/458 1066/1094/458 1065/1097/333 +f 1045/1087/462 1077/1109/462 1075/1107/460 +f 1062/2170/458 1061/2173/459 1078/1108/459 +f 1046/1077/460 1075/1107/460 1073/1103/333 +f 1060/2172/457 1076/1105/457 1078/1108/459 +f 1041/1074/333 1073/1103/333 1071/1100/463 +f 1060/2172/457 1059/2169/336 1074/1106/336 +f 1167/2174/464 1168/2187/477 1169/2175/465 +f 1172/2177/467 1173/2188/478 1174/2178/468 +f 1176/2180/470 1177/2184/474 1178/2181/471 +f 1179/2183/473 1180/2190/479 1177/2184/474 +f 1181/2185/475 1167/2174/464 1170/2176/466 +f 1168/2187/477 1171/2179/469 1174/2178/468 +f 1172/2177/467 1175/2182/472 1178/2181/471 +f 1181/2189/475 1182/2195/476 1180/2190/479 +f 1178/2181/471 1177/2184/474 1183/2191/480 +f 1173/2188/478 1185/2197/485 1186/2193/482 +f 1169/2175/465 1187/2198/486 1188/2194/483 +f 1182/2195/476 1189/2206/487 1190/2196/484 +f 1173/2188/478 1178/2181/471 1184/2192/481 +f 1174/2178/468 1186/2193/482 1187/2198/486 +f 1182/2186/476 1170/2176/466 1188/2194/483 +f 1177/2184/474 1180/2190/479 1190/2196/484 +f 1189/2199/487 1188/2194/483 1191/2200/444 +f 1183/2191/480 1190/2196/484 1193/2202/443 +f 1183/2191/480 1194/2203/448 1195/2204/488 +f 1185/2197/485 1196/2207/132 1197/2205/489 +f 1187/2198/486 1198/2208/445 1191/2200/444 +f 1189/2206/487 1192/2216/133 1193/2202/443 +f 1185/2197/485 1184/2192/481 1195/2204/488 +f 1187/2198/486 1186/2193/482 1197/2205/489 +f 1195/2204/488 1199/2215/496 1200/2209/490 +f 1198/2208/445 1197/2205/489 1201/2210/491 +f 1192/2201/133 1191/2200/444 1203/2212/493 +f 1193/2202/443 1205/2217/497 1206/2214/495 +f 1194/2203/448 1206/2214/495 1199/2215/496 +f 1197/2205/489 1196/2207/132 1200/2209/490 +f 1191/2200/444 1198/2208/445 1202/2211/492 +f 1192/2216/133 1204/2665/494 1205/2217/497 +f 1208/2218/498 1139/1125/498 1136/1119/333 +f 1210/2220/499 1127/1110/499 1141/1121/500 +f 1211/2222/336 1212/2224/501 1131/1115/501 +f 1213/2223/502 1214/2225/503 1135/1116/503 +f 1208/2218/498 1209/2666/500 1141/1721/500 +f 1210/2220/499 1211/2222/336 1128/1123/336 +f 1213/2223/502 1132/1113/502 1131/1115/501 +f 1207/2219/333 1136/1119/333 1135/1116/503 +f 1144/2226/501 1143/2231/336 1153/1134/336 +f 1138/1118/503 1137/1117/333 1152/1130/333 +f 1144/2226/501 1156/1133/501 1158/1727/502 +f 1140/1120/498 1155/1136/498 1152/1130/333 +f 1146/2228/503 1145/2667/502 1158/1138/502 +f 1142/1126/500 1157/1135/500 1155/1136/498 +f 1146/2228/503 1160/1141/503 1162/1143/333 +f 1130/1112/504 1159/1137/504 1157/1139/500 +f 1133/1124/502 1138/1118/503 1151/1132/503 +f 1150/2230/499 1154/1131/499 1153/1134/336 +f 1133/1124/502 1165/1146/502 1163/1144/505 +f 1150/2230/499 1149/2233/500 1166/1145/500 +f 1134/1114/501 1163/1144/505 1161/1140/336 +f 1148/2232/498 1164/1142/498 1166/1145/500 +f 1129/1111/336 1161/1140/336 1159/1137/504 +f 1148/2232/498 1147/2229/333 1162/1143/333 +f 1255/2234/506 1256/2247/519 1257/2235/507 +f 1260/2237/509 1261/2248/520 1262/2238/510 +f 1264/2240/512 1265/2244/516 1266/2241/513 +f 1267/2243/515 1268/2250/521 1265/2244/516 +f 1269/2245/517 1255/2234/506 1258/2236/508 +f 1256/2247/519 1259/2239/511 1262/2238/510 +f 1260/2237/509 1263/2242/514 1266/2241/513 +f 1269/2249/517 1270/2255/518 1268/2250/521 +f 1266/2241/513 1265/2244/516 1271/2251/522 +f 1261/2248/520 1273/2257/376 1274/2253/524 +f 1257/2235/507 1275/2258/527 1276/2254/525 +f 1270/2255/518 1277/2266/528 1278/2256/526 +f 1261/2248/520 1266/2241/513 1272/2252/523 +f 1262/2238/510 1274/2253/524 1275/2258/527 +f 1270/2246/518 1258/2236/508 1276/2254/525 +f 1265/2244/516 1268/2250/521 1278/2256/526 +f 1277/2259/528 1276/2254/525 1279/2260/529 +f 1271/2251/522 1278/2256/526 1281/2262/530 +f 1271/2251/522 1282/2263/531 1283/2264/532 +f 1273/2257/376 1284/2267/132 1285/2265/533 +f 1275/2258/527 1286/2268/534 1279/2260/529 +f 1277/2266/528 1280/2276/133 1281/2262/530 +f 1273/2257/376 1272/2252/523 1283/2264/532 +f 1275/2258/527 1274/2253/524 1285/2265/533 +f 1283/2264/532 1287/2275/541 1288/2269/535 +f 1286/2268/534 1285/2265/533 1289/2270/536 +f 1280/2261/133 1279/2260/529 1291/2272/538 +f 1281/2262/530 1293/2277/542 1294/2274/540 +f 1282/2263/531 1294/2274/540 1287/2275/541 +f 1285/2265/533 1284/2267/132 1288/2269/535 +f 1279/2260/529 1286/2268/534 1290/2271/537 +f 1280/2276/133 1292/2668/539 1293/2277/542 +f 1296/2278/543 1227/1162/543 1224/1156/335 +f 1298/2280/544 1215/1147/544 1229/1158/545 +f 1299/2282/338 1300/2285/546 1219/1152/546 +f 1302/2283/547 1223/1153/547 1220/1150/548 +f 1296/2278/543 1297/2669/545 1229/1728/545 +f 1298/2280/544 1299/2282/338 1216/1160/338 +f 1300/2285/546 1301/2284/548 1220/1150/548 +f 1295/2279/335 1224/1156/335 1223/1153/547 +f 1232/2286/546 1231/2291/338 1241/1171/338 +f 1226/1155/547 1225/1154/335 1240/1167/335 +f 1232/2286/546 1244/1170/546 1246/1734/548 +f 1228/1157/543 1243/1173/543 1240/1167/335 +f 1234/2288/547 1233/2670/548 1246/1175/548 +f 1230/1163/545 1245/1172/545 1243/1173/543 +f 1234/2288/547 1248/1178/547 1250/1180/335 +f 1218/1149/549 1247/1174/549 1245/1176/545 +f 1221/1161/548 1226/1155/547 1239/1169/547 +f 1238/2290/544 1242/1168/544 1241/1171/338 +f 1221/1161/548 1253/1183/548 1251/1181/546 +f 1238/2290/544 1237/2293/545 1254/1182/545 +f 1222/1151/546 1251/1181/546 1249/1177/338 +f 1236/2292/543 1252/1179/543 1254/1182/545 +f 1217/1148/338 1249/1177/338 1247/1174/549 +f 1236/2292/543 1235/2289/335 1250/1180/335 +f 1343/2294/550 1344/2307/563 1345/2295/551 +f 1348/2297/553 1349/2308/564 1350/2298/554 +f 1352/2300/556 1353/2304/560 1354/2301/557 +f 1355/2303/559 1356/2310/565 1353/2304/560 +f 1357/2305/561 1343/2294/550 1346/2296/552 +f 1344/2307/563 1347/2299/555 1350/2298/554 +f 1351/2302/558 1354/2301/557 1349/2308/564 +f 1357/2309/561 1358/2315/562 1356/2310/565 +f 1354/2301/557 1353/2304/560 1359/2311/566 +f 1349/2308/564 1361/2317/571 1362/2313/568 +f 1345/2295/551 1363/2318/572 1364/2314/569 +f 1358/2315/562 1365/2326/573 1366/2316/570 +f 1349/2308/564 1354/2301/557 1360/2312/567 +f 1350/2298/554 1362/2313/568 1363/2318/572 +f 1358/2306/562 1346/2296/552 1364/2314/569 +f 1353/2304/560 1356/2310/565 1366/2316/570 +f 1364/2314/569 1367/2325/530 1368/2320/133 +f 1359/2311/566 1366/2316/570 1369/2321/529 +f 1359/2311/566 1370/2322/534 1371/2323/533 +f 1361/2317/571 1372/2327/132 1373/2324/532 +f 1363/2318/572 1374/2328/531 1367/2325/530 +f 1365/2326/573 1368/2336/133 1369/2321/529 +f 1361/2317/571 1360/2312/567 1371/2323/533 +f 1363/2318/572 1362/2313/568 1373/2324/532 +f 1371/2323/533 1375/2335/580 1376/2329/574 +f 1374/2328/531 1373/2324/532 1377/2330/575 +f 1368/2320/133 1367/2325/530 1379/2332/577 +f 1369/2321/529 1381/2337/581 1382/2334/579 +f 1370/2322/534 1382/2334/579 1375/2335/580 +f 1373/2324/532 1372/2327/132 1376/2329/574 +f 1367/2325/530 1374/2328/531 1378/2331/576 +f 1368/2336/133 1380/2671/578 1381/2337/581 +f 1384/2338/582 1315/1199/582 1312/1193/338 +f 1386/2340/583 1303/1184/583 1317/1195/584 +f 1387/2342/335 1388/2345/585 1307/1189/585 +f 1390/2343/586 1311/1190/586 1308/1187/587 +f 1384/2338/582 1385/2672/584 1317/1735/584 +f 1386/2340/583 1387/2342/335 1304/1197/335 +f 1389/2344/587 1308/1187/587 1307/1189/585 +f 1383/2339/338 1312/1193/338 1311/1190/586 +f 1320/2346/585 1319/2351/335 1329/1208/335 +f 1314/1192/586 1313/1191/338 1328/1204/338 +f 1320/2346/585 1332/1207/585 1334/1741/587 +f 1313/1191/338 1316/1194/588 1331/1210/582 +f 1322/2348/586 1321/2673/587 1334/1212/587 +f 1318/1200/584 1333/1209/584 1331/1210/582 +f 1322/2348/586 1336/1215/586 1338/1217/338 +f 1306/1186/589 1335/1211/589 1333/1213/584 +f 1309/1198/587 1314/1192/586 1327/1206/586 +f 1326/2350/583 1330/1205/583 1329/1208/335 +f 1309/1198/587 1341/1220/587 1339/1218/590 +f 1326/2350/583 1325/2353/584 1342/1219/584 +f 1310/1188/585 1339/1218/590 1337/1214/335 +f 1324/2352/582 1340/1216/582 1342/1219/584 +f 1305/1185/335 1337/1214/335 1335/1211/589 +f 1324/2352/582 1323/2349/338 1338/1217/338 +f 1431/2354/591 1432/2367/604 1433/2355/592 +f 1436/2357/594 1437/2368/605 1438/2358/595 +f 1440/2360/597 1441/2364/601 1442/2361/598 +f 1443/2363/600 1444/2370/606 1441/2364/601 +f 1445/2365/602 1431/2354/591 1434/2356/593 +f 1435/2359/596 1438/2358/595 1433/2355/592 +f 1436/2357/594 1439/2362/599 1442/2361/598 +f 1445/2369/602 1446/2375/603 1444/2370/606 +f 1442/2361/598 1441/2364/601 1447/2371/607 +f 1437/2368/605 1449/2377/612 1450/2373/609 +f 1433/2355/592 1451/2378/613 1452/2374/610 +f 1446/2375/603 1453/2386/614 1454/2376/611 +f 1437/2368/605 1442/2361/598 1448/2372/608 +f 1438/2358/595 1450/2373/609 1451/2378/613 +f 1446/2366/603 1434/2356/593 1452/2374/610 +f 1441/2364/601 1444/2370/606 1454/2376/611 +f 1453/2379/614 1452/2374/610 1455/2380/615 +f 1447/2371/607 1454/2376/611 1457/2382/616 +f 1447/2371/607 1458/2383/617 1459/2384/618 +f 1449/2377/612 1460/2387/132 1461/2385/619 +f 1451/2378/613 1462/2388/620 1455/2380/615 +f 1453/2386/614 1456/2396/133 1457/2382/616 +f 1449/2377/612 1448/2372/608 1459/2384/618 +f 1451/2378/613 1450/2373/609 1461/2385/619 +f 1459/2384/618 1463/2395/627 1464/2389/621 +f 1462/2388/620 1461/2385/619 1465/2390/622 +f 1456/2381/133 1455/2380/615 1467/2392/624 +f 1457/2382/616 1469/2397/628 1470/2394/626 +f 1458/2383/617 1470/2394/626 1463/2395/627 +f 1461/2385/619 1460/2387/132 1464/2389/621 +f 1455/2380/615 1462/2388/620 1466/2391/623 +f 1456/2396/133 1468/2674/625 1469/2397/628 +f 1472/2398/629 1403/1236/629 1400/1230/337 +f 1474/2400/630 1391/1221/630 1405/1232/631 +f 1475/2402/334 1476/2405/632 1395/1226/632 +f 1478/2403/633 1399/1227/633 1396/1224/634 +f 1472/2398/629 1473/2675/631 1405/1742/631 +f 1474/2400/630 1475/2402/334 1392/1234/334 +f 1477/2404/634 1396/1224/634 1395/1226/632 +f 1471/2399/337 1400/1230/337 1399/1227/633 +f 1408/2406/632 1407/2411/334 1417/1245/334 +f 1402/1229/633 1401/1228/337 1416/1241/337 +f 1408/2406/632 1420/1244/632 1422/1748/634 +f 1404/1231/629 1419/1247/629 1416/1241/337 +f 1410/2408/633 1409/2676/634 1422/1249/634 +f 1406/1237/631 1421/1246/631 1419/1247/629 +f 1410/2408/633 1424/1252/633 1426/1254/337 +f 1394/1223/635 1423/1248/635 1421/1250/631 +f 1397/1235/634 1402/1229/633 1415/1243/633 +f 1414/2410/630 1418/1242/630 1417/1245/334 +f 1397/1235/634 1429/1257/634 1427/1255/632 +f 1414/2410/630 1413/2413/631 1430/1256/631 +f 1398/1225/632 1427/1255/632 1425/1251/334 +f 1412/2412/629 1428/1253/629 1430/1256/631 +f 1393/1222/334 1425/1251/334 1423/1248/635 +f 1412/2412/629 1411/2409/337 1426/1254/337 +f 1519/2414/636 1520/2427/649 1521/2415/637 +f 1524/2417/639 1525/2428/650 1526/2418/640 +f 1528/2420/642 1529/2424/646 1530/2421/643 +f 1531/2423/645 1532/2430/651 1529/2424/646 +f 1533/2425/647 1519/2414/636 1522/2416/638 +f 1520/2427/649 1523/2419/641 1526/2418/640 +f 1524/2417/639 1527/2422/644 1530/2421/643 +f 1533/2429/647 1534/2435/648 1532/2430/651 +f 1530/2421/643 1529/2424/646 1535/2431/652 +f 1525/2428/650 1537/2437/657 1538/2433/654 +f 1521/2415/637 1539/2438/658 1540/2434/655 +f 1534/2435/648 1541/2446/659 1542/2436/656 +f 1530/2421/643 1536/2432/653 1537/2437/657 +f 1526/2418/640 1538/2433/654 1539/2438/658 +f 1534/2426/648 1522/2416/638 1540/2434/655 +f 1529/2424/646 1532/2430/651 1542/2436/656 +f 1541/2439/659 1540/2434/655 1543/2440/616 +f 1535/2431/652 1542/2436/656 1545/2442/615 +f 1535/2431/652 1546/2443/620 1547/2444/619 +f 1537/2437/657 1548/2447/132 1549/2445/618 +f 1539/2438/658 1550/2448/617 1543/2440/616 +f 1541/2446/659 1544/2456/133 1545/2442/615 +f 1537/2437/657 1536/2432/653 1547/2444/619 +f 1539/2438/658 1538/2433/654 1549/2445/618 +f 1547/2444/619 1551/2455/666 1552/2449/660 +f 1550/2448/617 1549/2445/618 1553/2450/661 +f 1544/2441/133 1543/2440/616 1555/2452/663 +f 1545/2442/615 1557/2457/667 1558/2454/665 +f 1546/2443/620 1558/2454/665 1551/2455/666 +f 1549/2445/618 1548/2447/132 1552/2449/660 +f 1543/2440/616 1550/2448/617 1554/2451/662 +f 1544/2456/133 1556/2677/664 1557/2457/667 +f 1560/2458/668 1491/1267/668 1488/1268/334 +f 1562/2460/669 1479/1258/669 1493/1269/670 +f 1563/2462/337 1564/2464/671 1483/1263/671 +f 1565/2463/672 1566/2465/673 1487/1264/673 +f 1560/2458/668 1561/2678/670 1493/1749/670 +f 1562/2460/669 1563/2462/337 1480/1271/337 +f 1564/2464/671 1565/2463/672 1484/1261/672 +f 1559/2459/334 1488/1268/334 1487/1264/673 +f 1496/2466/671 1495/2471/337 1505/1282/337 +f 1490/1266/673 1489/1265/334 1504/1278/334 +f 1496/2466/671 1508/1281/671 1510/1755/672 +f 1489/1265/334 1492/1274/674 1507/1284/668 +f 1498/2468/673 1497/2679/672 1510/1286/672 +f 1494/1273/670 1509/1283/670 1507/1284/668 +f 1498/2468/673 1512/1289/673 1514/1291/334 +f 1482/1260/675 1511/1285/675 1509/1287/670 +f 1485/1272/672 1490/1266/673 1503/1280/673 +f 1502/2470/669 1506/1279/669 1505/1282/337 +f 1485/1272/672 1517/1294/672 1515/1292/676 +f 1502/2470/669 1501/2473/670 1518/1293/670 +f 1486/1262/671 1515/1292/676 1513/1288/337 +f 1500/2472/668 1516/1290/668 1518/1293/670 +f 1481/1259/337 1513/1288/337 1511/1285/675 +f 1500/2472/668 1499/2469/334 1514/1291/334 +f 1695/2474/130 1700/2482/680 1704/2475/677 +f 1697/2477/328 1702/2680/721 1701/2478/678 +f 1699/2476/151 1704/2475/677 1703/2480/679 +f 1696/2479/143 1701/2478/678 1700/2482/680 +f 1701/2478/678 1702/2680/721 1707/2483/681 +f 1704/2475/677 1709/2487/684 1708/2485/683 +f 1701/2478/678 1706/2484/682 1705/2486/169 +f 1704/2475/677 1700/2482/680 1705/2486/169 +f 1705/2486/169 1710/2492/308 1714/2488/685 +f 1706/2484/682 1707/2483/681 1712/2489/686 +f 1709/2487/684 1714/2488/685 1713/2491/688 +f 1705/2486/169 1706/2484/682 1711/2490/687 +f 1715/2493/130 1720/2501/680 1724/2494/677 +f 1717/2496/328 1722/2681/721 1721/2497/678 +f 1719/2495/151 1724/2494/677 1723/2499/679 +f 1716/2498/143 1721/2497/678 1720/2501/680 +f 1721/2497/678 1722/2681/721 1727/2502/681 +f 1724/2494/677 1729/2506/684 1728/2504/683 +f 1721/2497/678 1726/2503/682 1725/2505/169 +f 1724/2494/677 1720/2501/680 1725/2505/169 +f 1725/2505/169 1730/2511/308 1734/2507/685 +f 1726/2503/682 1727/2502/681 1732/2508/686 +f 1729/2506/684 1734/2507/685 1733/2510/688 +f 1726/2503/682 1731/2509/687 1730/2511/308 +f 1735/2512/130 1740/2520/680 1744/2513/677 +f 1737/2515/328 1742/2682/721 1741/2516/678 +f 1739/2514/151 1744/2513/677 1743/2518/679 +f 1736/2517/143 1741/2516/678 1740/2520/680 +f 1741/2516/678 1742/2682/721 1747/2521/681 +f 1744/2513/677 1749/2525/684 1748/2523/683 +f 1741/2516/678 1746/2522/682 1745/2524/169 +f 1744/2513/677 1740/2520/680 1745/2524/169 +f 1745/2524/169 1750/2530/308 1754/2526/685 +f 1746/2522/682 1747/2521/681 1752/2527/686 +f 1749/2525/684 1754/2526/685 1753/2529/688 +f 1746/2522/682 1751/2528/687 1750/2530/308 +f 1809/2531/689 1808/2563/690 1867/2532/690 +f 1809/2531/689 1868/2533/689 1869/2534/691 +f 1806/2535/691 1869/2534/691 1870/2536/692 +f 1807/2537/692 1870/2536/692 1871/2538/693 +f 1803/2539/693 1871/2538/693 1872/2540/694 +f 1805/2542/695 1804/2541/694 1872/2540/694 +f 1818/2544/696 1805/2542/695 1873/2543/695 +f 1816/2546/697 1818/2544/696 1874/2545/696 +f 1817/2548/698 1816/2546/697 1875/2547/697 +f 1817/2550/698 1876/2579/698 1877/2551/699 +f 1814/2552/699 1877/2551/699 1878/2553/700 +f 1812/2555/701 1815/2554/700 1878/2553/700 +f 1812/2555/701 1879/2556/701 1880/2557/702 +f 1813/2558/702 1880/2557/702 1881/2559/703 +f 1810/2560/703 1881/2559/703 1882/2561/704 +f 1808/2563/690 1811/2562/704 1882/2561/704 +f 1867/2532/335 1883/2567/335 1884/2564/127 +f 1868/2533/127 1884/2564/127 1885/2565/336 +f 1875/2547/338 1886/2568/338 1887/2566/130 +f 1882/2561/125 1888/2569/125 1883/2567/335 +f 1874/2545/143 1889/2570/143 1886/2568/338 +f 1881/2559/325 1890/2571/325 1888/2569/125 +f 1873/2543/328 1891/2572/328 1889/2570/143 +f 1880/2557/126 1892/2573/126 1890/2571/325 +f 1872/2540/124 1893/2574/124 1891/2572/328 +f 1879/2556/334 1894/2575/334 1892/2573/126 +f 1871/2538/337 1895/2576/337 1893/2574/124 +f 1878/2553/151 1896/2577/151 1894/2575/334 +f 1870/2536/128 1897/2578/128 1895/2576/337 +f 1877/2551/333 1898/2580/333 1896/2577/151 +f 1869/2534/336 1885/2565/336 1897/2578/128 +f 1876/2579/130 1887/2595/130 1898/2580/333 +f 1889/2570/705 1891/2572/706 1829/2581/706 +f 1890/2571/707 1892/2573/708 1822/2583/708 +f 1893/2574/709 1830/2683/709 1829/2585/706 +f 1892/2573/708 1894/2575/710 1823/2586/710 +f 1893/2574/709 1895/2576/711 1831/2588/711 +f 1896/2577/712 1824/2684/712 1823/2590/710 +f 1897/2578/713 1832/2685/713 1831/2591/711 +f 1896/2577/712 1898/2580/714 1825/2592/714 +f 1885/2565/715 1833/2686/715 1832/2594/713 +f 1887/2595/716 1826/2687/716 1825/2596/714 +f 1884/2564/717 1883/2567/718 1819/2597/718 +f 1884/2564/717 1834/2688/717 1833/2599/715 +f 1887/2566/716 1886/2568/719 1827/2600/719 +f 1888/2569/720 1820/2689/720 1819/2602/718 +f 1889/2570/705 1828/2690/705 1827/2603/719 +f 1888/2569/720 1890/2571/707 1821/2604/707 +f 1842/2606/336 1861/2637/336 1860/2607/127 +f 1850/2609/130 1852/2613/130 1851/2610/338 +f 1837/2612/333 1853/2638/333 1852/2613/130 +f 1843/2614/127 1860/2691/127 1859/2615/335 +f 1848/2611/338 1851/2610/338 1866/2617/143 +f 1840/2616/335 1859/2615/335 1858/2619/125 +f 1849/2618/143 1866/2617/143 1865/2621/328 +f 1841/2620/125 1858/2619/125 1857/2623/325 +f 1846/2622/328 1865/2621/328 1864/2625/124 +f 1838/2624/325 1857/2623/325 1856/2627/126 +f 1847/2626/124 1864/2625/124 1863/2629/337 +f 1839/2628/126 1856/2627/126 1855/2631/334 +f 1844/2630/337 1863/2629/337 1862/2633/128 +f 1835/2632/334 1855/2631/334 1854/2635/151 +f 1845/2634/128 1862/2633/128 1861/2637/336 +f 1836/2636/151 1854/2635/151 1853/2638/333 diff --git a/src/main/resources/assets/hbm/textures/models/tank/tank_IONGEL.png b/src/main/resources/assets/hbm/textures/models/tank/tank_IONGEL.png new file mode 100644 index 0000000000000000000000000000000000000000..174c13aaabe9467dfd30673a6e2af8587757e01a GIT binary patch literal 1172 zcmeAS@N?(olHy`uVBq!ia0vp^RY2Us!3HEZPulwcNU;<Eakt zG3V`F`@Gu*BF77NozN_5JahA|o@C5|W^2(CoV%8;zRi7Pv)_e_Cq(#pA1Ma!NjF+eY?pLtp%wP|;i{_C}d$7alr zxA*IN`+LXz_p9H=2F~c7J^OH3UroJtm+Hku!kad;CG1{g zP=9Yxn0QBcQ%Cp*rMQKrTx(fc!E5i;!euop9^PKt*EPubh@164=A(uT(;W>M_UM}toZ~E004s_Dz)z4}>!Z|zV z?&W&5c=0~v?r+!To!dJkOuD-rJ*K+@_ zYdiQqYAJ5~xN5r0T<<*+#=kOT0$vDmRIS~eyXTT!K=!L$KnoOWO?0h*inLyA&3iOe zMvt!rX#Fcycj5JI?(%C{ET!1bAen#U*y;s8GagNyv+q%;{`H=P);hV3ZZXEoSiZ+; z9^4zw{Msn4Rc19O&_v&luL}3y-z~rW`}y|s$EB1%dI^ZLAM*b6$ieTf@_{97LQgVO zcYM!ExKqulKW*Cy5%1^&-bI<*AjuWcoN4Q)Bz((Ch>_vY*W)`Q0@is?8!8!R5V&ai zQr&?5rMeG}UJ{%6=#fK(>fR!Sw&1y~^)@y#viuj^wH+5uRfyx9)D;eloz%#ASNbn6 z5*CtLpCmS087yqLTG8N@ABT7J0@J9HXHNMOmb+>@?h#TET%WXPs^OLwOInVszEQdd z7z-+oLf>S}IT+!j@>sO>9Ls5cMGkP}u2|pA?0jL7@S)pW>0RIVHi>Tz&**i6SZtY= zKi^zdrn_S5ipaBN@g3o|A4JR2Zf(tZ6q@u#DSyuMTVlUOj%YjXQ`&vodCsxj*LJx+ zuZfC}xO?@|FH5n{DXZANDP^AjOSPO3$80&SllUo>tj==5HMi{ z$*+H4eyU>W!HmbEw-Uc`tqsgj1!gs1$Q;qG5L|EMx~EC}BSBHkqpSDFuQ55TziRG9 QU@^ns>FVdQ&MBb@06%;_iU0rr literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon.png index c581b38ae7e1baf8c6690090441fec5da627a8f7..93e7958ea079061f61a8271916cacd7c2472ee19 100644 GIT binary patch delta 2157 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 Date: Tue, 23 May 2023 21:54:10 +0200 Subject: [PATCH 057/432] fish oil, some experimental mixer stuff --- .../java/com/hbm/inventory/fluid/Fluids.java | 10 +++- .../hbm/inventory/recipes/CokerRecipes.java | 2 + .../inventory/recipes/CrucibleRecipes.java | 4 +- .../recipes/CrystallizerRecipes.java | 1 + .../recipes/LiquefactionRecipes.java | 8 +++ .../hbm/inventory/recipes/MixerRecipes.java | 46 ++++++++++++++++++ src/main/resources/assets/hbm/lang/de_DE.lang | 2 + src/main/resources/assets/hbm/lang/en_US.lang | 2 + .../hbm/textures/gui/fluids/fishoil.png | Bin 0 -> 489 bytes .../hbm/textures/gui/fluids/sunfloweroil.png | Bin 0 -> 490 bytes .../hbm/textures/gui/processing/gui_mixer.png | Bin 3119 -> 3122 bytes .../gui/processing/gui_mixer_experimental.png | Bin 0 -> 3194 bytes .../hbm/textures/models/tank/tank_FISHOIL.png | Bin 0 -> 1350 bytes .../models/tank/tank_SUNFLOWEROIL.png | Bin 0 -> 1075 bytes 14 files changed, 72 insertions(+), 3 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/fishoil.png create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/sunfloweroil.png create mode 100644 src/main/resources/assets/hbm/textures/gui/processing/gui_mixer_experimental.png create mode 100644 src/main/resources/assets/hbm/textures/models/tank/tank_FISHOIL.png create mode 100644 src/main/resources/assets/hbm/textures/models/tank/tank_SUNFLOWEROIL.png diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index bf2ce2575..9b0c6f33a 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -130,6 +130,8 @@ public class Fluids { public static FluidType EGG; public static FluidType CHOLESTEROL; public static FluidType ESTRADIOL; + public static FluidType FISHOIL; + public static FluidType SUNFLOWEROIL; private static final HashMap idMapping = new HashMap(); private static final HashMap nameMapping = new HashMap(); @@ -270,7 +272,9 @@ public class Fluids { GAS_COKER = new FluidType("GAS_COKER", 0xDEF4CA, 1, 4, 0, EnumSymbol.NONE).addTraits(GASEOUS); EGG = new FluidType("EGG", 0xD2C273, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID); CHOLESTEROL = new FluidType("CHOLESTEROL", 0xD6D2BD, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID); - ESTRADIOL = new FluidType(109, "ESTRADIOL", 0xCDD5D8, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID); + ESTRADIOL = new FluidType("ESTRADIOL", 0xCDD5D8, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID); + FISHOIL = new FluidType("FISHOIL", 0x4B4A45, 0, 1, 0, EnumSymbol.NONE).addTraits(LIQUID); + SUNFLOWEROIL = new FluidType(111, "SUNFLOWEROIL", 0xCBAD45, 0, 1, 0, EnumSymbol.NONE).addTraits(LIQUID); // ^ ^ ^ ^ ^ ^ ^ ^ //ADD NEW FLUIDS HERE @@ -357,6 +361,8 @@ public class Fluids { metaOrder.add(BIOGAS); metaOrder.add(BIOFUEL); metaOrder.add(ETHANOL); + metaOrder.add(FISHOIL); + metaOrder.add(SUNFLOWEROIL); metaOrder.add(NITAN); metaOrder.add(BALEFIRE); //processing fluids @@ -523,6 +529,8 @@ public class Fluids { registerCalculatedFuel(WOODOIL, 110_000 /* 20_000 TU per 250mB + a bonus */, 0, null); registerCalculatedFuel(COALCREOSOTE, 250_000 /* 20_000 TU per 100mB + a bonus */, 0, null); + registerCalculatedFuel(FISHOIL, 75_000, 0, null); + registerCalculatedFuel(SUNFLOWEROIL, 50_000, 0, null); registerCalculatedFuel(SOLVENT, 100_000, 0, null); // flammable, sure, but not combustable registerCalculatedFuel(RADIOSOLVENT, 150_000, 0, null); diff --git a/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java b/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java index 1c74b406c..e87da47ca 100644 --- a/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java @@ -50,6 +50,8 @@ public class CokerRecipes extends SerializableRecipe { registerAuto(AROMATICS, GAS_COKER); registerAuto(REFORMATE, GAS_COKER); registerAuto(XYLENE, GAS_COKER); + registerAuto(FISHOIL, NAPHTHA_COKER); + registerAuto(SUNFLOWEROIL, GAS_COKER); registerSFAuto(WOODOIL, 340_000L, new ItemStack(Items.coal, 1, 1), GAS_COKER); diff --git a/src/main/java/com/hbm/inventory/recipes/CrucibleRecipes.java b/src/main/java/com/hbm/inventory/recipes/CrucibleRecipes.java index 9fa52a29e..1c87197ba 100644 --- a/src/main/java/com/hbm/inventory/recipes/CrucibleRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CrucibleRecipes.java @@ -186,11 +186,11 @@ public class CrucibleRecipes extends SerializableRecipe { input[i] = new MaterialStack(Mats.matByName.get(matname), amount); } MaterialStack[] output = new MaterialStack[obj.get("output").getAsJsonArray().size()]; - for(int i = 0; i < input.length; i++) { + for(int i = 0; i < output.length; i++) { JsonArray entry = obj.get("output").getAsJsonArray().get(i).getAsJsonArray(); String matname = entry.get(0).getAsString(); int amount = entry.get(1).getAsInt(); - input[i] = new MaterialStack(Mats.matByName.get(matname), amount); + output[i] = new MaterialStack(Mats.matByName.get(matname), amount); } recipes.add(new CrucibleRecipe(id, name, freq, icon).inputs(input).outputs(output)); } diff --git a/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java b/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java index 933a7c970..3eee4adf6 100644 --- a/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java @@ -102,6 +102,7 @@ public class CrystallizerRecipes extends SerializableRecipe { registerRecipe(new ComparableStack(ModItems.powder_semtex_mix), new CrystallizerRecipe(ModItems.ingot_semtex, baseTime)); registerRecipe(new ComparableStack(ModItems.powder_desh_ready), new CrystallizerRecipe(ModItems.ingot_desh, baseTime)); registerRecipe(new ComparableStack(ModItems.powder_meteorite), new CrystallizerRecipe(ModItems.fragment_meteorite, utilityTime)); + registerRecipe(CD.dust(), new CrystallizerRecipe(ModItems.ingot_rubber, baseTime), new FluidStack(Fluids.FISHOIL, 250)); registerRecipe(new ComparableStack(ModItems.meteorite_sword_treated), new CrystallizerRecipe(ModItems.meteorite_sword_etched, baseTime)); registerRecipe(new ComparableStack(ModItems.powder_impure_osmiridium), new CrystallizerRecipe(ModItems.crystal_osmiridium, baseTime), new FluidStack(Fluids.SCHRABIDIC, 1_000)); diff --git a/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java b/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java index bd6698749..7a663f90d 100644 --- a/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java @@ -23,6 +23,7 @@ import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemFood; import net.minecraft.item.ItemStack; +import net.minecraftforge.oredict.OreDictionary; public class LiquefactionRecipes extends SerializableRecipe { @@ -56,6 +57,8 @@ public class LiquefactionRecipes extends SerializableRecipe { recipes.put(new ComparableStack(ModBlocks.plant_flower, 1, 3), new FluidStack(150, Fluids.ETHANOL)); recipes.put(new ComparableStack(ModBlocks.plant_flower, 1, 4), new FluidStack(50, Fluids.ETHANOL)); recipes.put(new ComparableStack(ModItems.biomass), new FluidStack(125, Fluids.BIOGAS)); + recipes.put(new ComparableStack(Items.fish, 1, OreDictionary.WILDCARD_VALUE), new FluidStack(100, Fluids.FISHOIL)); + recipes.put(new ComparableStack(Blocks.double_plant, 1, 0), new FluidStack(100, Fluids.SUNFLOWEROIL)); recipes.put(new ComparableStack(Items.wheat_seeds), new FluidStack(50, Fluids.SEEDSLURRY)); recipes.put(new ComparableStack(Blocks.tallgrass, 1, 1), new FluidStack(100, Fluids.SEEDSLURRY)); @@ -74,6 +77,11 @@ public class LiquefactionRecipes extends SerializableRecipe { ComparableStack comp = new ComparableStack(stack.getItem(), 1, stack.getItemDamage()); + if(recipes.containsKey(comp)) + return recipes.get(comp); + + comp = new ComparableStack(stack.getItem(), 1, OreDictionary.WILDCARD_VALUE); + if(recipes.containsKey(comp)) return recipes.get(comp); diff --git a/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java b/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java index 9e79c597a..421453a5d 100644 --- a/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java @@ -21,12 +21,16 @@ import com.hbm.inventory.recipes.loader.SerializableRecipe; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemFluidIcon; +import net.minecraft.init.Blocks; import net.minecraft.init.Items; +import net.minecraftforge.oredict.OreDictionary; public class MixerRecipes extends SerializableRecipe { public static HashMap recipes = new HashMap(); + public static HashMap recipes_experimental = new HashMap(); + @Override public void registerDefaults() { recipes.put(Fluids.COOLANT, new MixerRecipe(2_000, 50).setStack1(new FluidStack(Fluids.WATER, 1_800)).setSolid(new OreDictStack(KNO.dust()))); @@ -40,6 +44,8 @@ public class MixerRecipes extends SerializableRecipe { recipes.put(Fluids.MUSTARDGAS, new MixerRecipe(1000, 20).setStack1(new FluidStack(Fluids.REFORMGAS, 750)).setStack2(new FluidStack(Fluids.CHLORINE, 250)).setSolid(new OreDictStack(S.dust()))); recipes.put(Fluids.IONGEL, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.WATER, 1000)).setStack2(new FluidStack(Fluids.HYDROGEN, 200)).setSolid(new ComparableStack(ModItems.pellet_charged))); recipes.put(Fluids.EGG, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.RADIOSOLVENT, 500)).setSolid(new ComparableStack(Items.egg))); + recipes.put(Fluids.FISHOIL, new MixerRecipe(100, 50).setSolid(new ComparableStack(Items.fish, 1, OreDictionary.WILDCARD_VALUE))); + recipes.put(Fluids.SUNFLOWEROIL, new MixerRecipe(100, 50).setSolid(new ComparableStack(Blocks.double_plant, 1, 0))); recipes.put(Fluids.SOLVENT, new MixerRecipe(1000, 50).setStack1(new FluidStack(Fluids.NAPHTHA, 500)).setStack2(new FluidStack(Fluids.AROMATICS, 500))); recipes.put(Fluids.SULFURIC_ACID, new MixerRecipe(500, 50).setStack1(new FluidStack(Fluids.ACID, 800)).setSolid(new OreDictStack(S.dust()))); @@ -62,6 +68,22 @@ public class MixerRecipes extends SerializableRecipe { recipes.put(Fluids.KEROSENE_REFORM, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.KEROSENE, 900)).setStack2(new FluidStack(Fluids.REFORMATE, 100))); } + public static void registerExperimental(FluidType type, MixerRecipe... recipes) { + recipes_experimental.put(type, recipes); + } + + public static MixerRecipe[] getOutputExperimental(FluidType type) { + return recipes_experimental.get(type); + } + + public static MixerRecipe getOutputExperimental(FluidType type, int index) { + MixerRecipe[] recs = recipes_experimental.get(type); + + if(recs == null) return null; + + return recs[index % recs.length]; + } + public static MixerRecipe getOutput(FluidType type) { return recipes.get(type); } @@ -130,6 +152,30 @@ public class MixerRecipes extends SerializableRecipe { return recipes; } + + public static HashMap getRecipesExperimental() { + + HashMap recipes = new HashMap(); + + for(Entry entry : MixerRecipes.recipes_experimental.entrySet()) { + + FluidType type = entry.getKey(); + MixerRecipe[] recs = entry.getValue(); + + for(MixerRecipe recipe : recs) { + FluidStack output = new FluidStack(type, recipe.output); + + List objects = new ArrayList(); + if(recipe.input1 != null) objects.add(ItemFluidIcon.make(recipe.input1)); + if(recipe.input2 != null) objects.add(ItemFluidIcon.make(recipe.input2)); + if(recipe.solidInput != null) objects.add(recipe.solidInput); + + recipes.put(objects.toArray(), ItemFluidIcon.make(output)); + } + } + + return recipes; + } public static class MixerRecipe { public FluidStack input1; diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 4a9c5faf2..8f2c19202 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -625,6 +625,7 @@ hbmfluid.egg=Gelöstes Ei hbmfluid.estradiol=Estradiollösung hbmfluid.ethanol=Ethanol hbmfluid.enderjuice=Endersaft +hbmfluid.fishoil=Fischöl hbmfluid.fracksol=Frackinglösung hbmfluid.gas=Erdgas hbmfluid.gas_coker=Koker-Gas @@ -689,6 +690,7 @@ hbmfluid.sourgas=Saures Gas hbmfluid.spentsteam=Niedrigdruckdampf hbmfluid.steam=Dampf hbmfluid.sulfuric_acid=Schwefelsäure +hbmfluid.sunfloweroil=Sonnenblumenkernöl hbmfluid.superhotsteam=Superverdichteter Dampf hbmfluid.syngas=Synthesegas hbmfluid.tritium=Tritium diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index b179aee53..9ba04761b 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1197,6 +1197,7 @@ hbmfluid.egg=Dissolved Egg hbmfluid.estradiol=Estradiol Solution hbmfluid.ethanol=Ethanol hbmfluid.enderjuice=Ender Juice +hbmfluid.fishoil=Fish Oil hbmfluid.fracksol=Fracking Solution hbmfluid.gas=Natural Gas hbmfluid.gas_coker=Coker Gas @@ -1261,6 +1262,7 @@ hbmfluid.sourgas=Sour Gas hbmfluid.spentsteam=Low-Pressure Steam hbmfluid.steam=Steam hbmfluid.sulfuric_acid=Sulfuric Acid +hbmfluid.sunfloweroil=Sunflower Seed Oil hbmfluid.superhotsteam=Super Dense Steam hbmfluid.syngas=Syngas hbmfluid.tritium=Tritium diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/fishoil.png b/src/main/resources/assets/hbm/textures/gui/fluids/fishoil.png new file mode 100644 index 0000000000000000000000000000000000000000..59a2057bdb491f1ecf6cfd833124cf81499a9f27 GIT binary patch literal 489 zcmV@o%48uU%w%BnTQA&|gLMesT8m%=cB~nVI zp@^{WJKlTddFJ(cky64MV^B&VBIQ8-R!U*5MJYwwwq-K!{r~>}F~(9b#^9VI##nC8 zb*(k)x|Tepgw6PjF=d_SnUqpFtdzogf8a(bMT`-fZw3kktu<}ivhRCo(lia*wjm;j zNP%IUbL{($h#VSi+g3&e$Vv^vP>BBd`N8&m&-Hrc{eCk|Q^DQ$Jt2ewC9mT+VvM2d zy05H#-?JZmoYNvyfjS|cKa5WYUh zrm0!Z>eP-j#uPQ0runK+Z>*K5^SYKN3L$(ss7K2i>ZtSD;whysZ}nrzo3nhirJJU~ z7{jtG2bc#4H4k}2tu$qO8hzPgajmP6rd}5oXp>1122mo|l$K`S%#>nUMA;yUJ gp6By<@I^M*KYijnZ0#n!+W-In07*qoM6N<$f;^7o1ONa4 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_mixer.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_mixer.png index dae11341596fb9f50342357f592ecdd19a724971..1bb5e85f15bff9b71477d24b72c32ca467896ce5 100644 GIT binary patch delta 2725 zcmYLJdpwkB8-Cu`n1e%%3XK?}Eee?$QaMc_*^=3rXmDDiBoY|Tijl*oQU}NH4+cDWjmyY5ht5#8-`Ibi*`TQaV{sZdxrj3u4 z%!<4)QP5RaTSH?fJ@K^BM8rjFot(dK^@#1n{sL}O5o0QN&GXdpoAb_Ri@p;Vg^{rR019qsg zl3@gxZ(Y9d&VL<$hUW#HOGX{E`PbfNec*zek0NMz1H9y9bL>d zp(q~oBWxH&qKX-}YOx6e{W(#*j9)qB(ULC>pa3~Z~6hlj}>i!Jp<+0Pn0AL+`A z|Ky-A@PaF&KlcR)QSnIpS_k=Hfhm7}%y^~4*yjFnRUA>Etmk{W57Fd=X?rHILjKj(0BHJ%D zv^qUmEYgA|T*gLrZArtQZxlzndvkaF7g|F&{pD zGPYN)x@HHN($x(O-pQSa)TD0E7&|mu@Vv}EVf@1NO6hxKy;QoK12<=PgEQgnpx1kA zgPIcGykl{q<(^TLd8O2&rvMz;NO%~dLMN7{YFUA$n%;s-J9@Y!&pI>N$d$!NTb8kMc|5`%9f6)VH2~Gd-fo_1=D>$Zn5%>Wa;zV>;8bX2x{HmbpjVB8g$$( zkQpYSSib47XM^Qq&d}pE`;&xFFDo+xp{b#zH<9QPZd6u!%+ln-uq-I`OLwbvK4++U zjnHS&(te1p{|E}*8=_{X_K*%8+^%&&xz?tlSJjw!4s2OORejLMTZfDp09$T-H zaFY4;N-^Z{H2|!%fr)TJp$0pL7SB?RzrVW-8}o_pJy=JGB`aycCm*P@wXE2pHfh~u zdNGL;e6ulQQd#$&&Ncmbe0)HN68Cp>T%e!mZY<@JyL2|~9Cj_jfelf|;ESM?CzUMK zh;VJi6lm7eov#I+O4s3P^5$jIMy;#`;Vr_s5!_^Jt6@MS@2-NQ&1Lk!yVeILLf;$MMWaP!H}IaydTaXktDP%O z=jP4<6MrQW%DXt|+^F%x0#wB=4aMO5m?;UuGOlz3lk-Cs2QU#uIpnD%L`< z!Z8eY=inpVWD?u%lM?skES!HA8N3Kl$={_BtQNXQq7wT4xpdBl(3mONh}KYQ%&--K zu>)ic7+|}aTm+D-3iqN{%w#aS<$nw^J?e#t3Hjf;>zq%S>mM~Nu+rK>tLXgNl+tqGL5EI zZOJ5b@!R!0O|$?>5~DD5SDC3=@aX6l;U4Trx*h19c{|}Y99L|I3Gcn3_bB!{C3&G7 zOGi5B9a?brV`%~TslfY5pb$~2wx)Op%NJIyI@J_M5Y8O$SIRH%r z{EO-|vj^OIyX8f2yD|)no*&Eb#IT9}oI1f4m{Fg_WFZ2YjPm>-<6M>!=LG-sAtml# zo82n5lfCfIz29sH`E9IKpmZ5yXyhdFHS^sKI+sJ;R}MO>ShP>#(`7x`rgMZNpEnsY zbRnR-3xF#`VDdrSRq}@hq~(S2i;=(K{pIb_`mGgn%h&1WBNco;Id7FuL`;mC)^KbR zA(*wW;h;@v;xi2ZQqvve!6Xgys#8fXSpy*z!3&OwuYxH%@lI3eR9RlLL04BMp4M)n z{XtnUKRfx_K%FXh`}StiXJWA0LkuSEtm=xi2^G?oQSnMyU!S2&d1hv2U|`@<4- z8x69(S}1P3Jyf-h$J6-=CnhF_hllU9c}#nvAL`+rxF@Yo#d^o6Sc4H3=DtirBOwsw z;aI*&jUg4jSCjmDqT}`Be=fKZnPmg(>+4@lYMh!XYh04N$VgJ0&qa0;P4q)RS_#1- zO+dh{slP#g>=A3TJMsU~NX*^bPdz~{+=xO*q0_%ujI|B?cAs?IF!#NFJeyRuX1}c; ztcbINFo59`MojgOKcTp|23}(jseB*Jk+(H>+3o-Fal7h^1^>OvKR$0+4czczE%>(` z^p)0fm(|uzN6UQ7yqHX8#70I+He^=G<0Tv5saR#f)-3(14dE*U(Q0vNZ&h8=`c$zx a$Hx#K)f(}5+js#$m#gzWr{bNAU;Y7kr~79B delta 2717 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 RuYzyjAl>yqm4pBJ{{f-52?YQE diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_mixer_experimental.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_mixer_experimental.png new file mode 100644 index 0000000000000000000000000000000000000000..a04e3e7a7aa6e466705f4cae7b27c2ba3b8cc458 GIT binary patch literal 3194 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 Qmm8?o7WU*~Gs=~}1EiZ{`v3p{ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/tank/tank_FISHOIL.png b/src/main/resources/assets/hbm/textures/models/tank/tank_FISHOIL.png new file mode 100644 index 0000000000000000000000000000000000000000..5b9c063b537df683600ebde779e4e786bd64a2ee GIT binary patch literal 1350 zcmV-M1-bf(P)*xP zba%7tXP=qpv-8ZPAqUH^y!^oBb{Mw)^=4z#ZQ`%((xnw`e6u$AI*KA49_)?fxiknd z9Ib`LL9nfbMMY7hna2IGJT^faF*EHafXN_eBM91vk+VXHS$9!+XWc$Aq64yYX=Ui^ z*23c09-CQrK&V$JjZL=^1Z@OC8$rGDhtyeC$n`N~6llQfa?`xwddRVXA?l!w~+MA3TXvX7=-c{Hhd<mCIvgVKNqwtP8WdydkpQ4Ad)+SR9B{EDl5_4r&-dk2ZpHucnN1uaJsMTT~R6 zwm>Q_ZGlY8x{cuIl@T1hnlcs#A{C1RD=MVLfsE*YaPAc{G3z#hO}7zT+G5JMv;|Ue zX^VjOc*4)~o)EJP+!XN51M+k*gt4 zuL8oQEl?UGy5d|mXdF7*C6`hSU84HNddPUF` zQTFmv?4yk!Xd|ds9))z}Kt^;x__M+l71H0mV%8lHj$WZOf;NJnji6q|tgUZIl2(?N zBuQ_*e_226ey{H~t`vGa>Q#XHAt%3!Bp+ zpFi^-9?TK7o!uwNTR9`i8!`aU9_1AHJ>mm!4Pi>=_;X-czsB)#HCZ zq9@O{BuNLJgXZX!C-IQ4cdreF+&p_mot<4B{CHD8Y~PS1J^Rf0X+GUj%A{gFZKA3KK6tpsoid$`WjE_wKX}S`#m`s^48|6wl-IFbN^e-HRsj6{qu?Y zh)J8>BMGxXMIz1&3Wx_-x>s6B;+D|)+>`Ey6>|$-wP&WsrZ!x zU6`&{?|kuzB&pZwsJ{?g+$)qu&_)on5!5S>s8>iuy{ahc6;e^J zP#QrSLC{7}uRNk&Arc#16vpxAA~)!o1LOedlF3UuWlHx3bd0PMWCc7nNK45{=dlyWZBRQDSi^g>_p+ukB|Q}+u^MbpMUSBw&@<* z$Cq2Vx%_o{9YT=%{d1DbuTq{)NP3tosq|v+c&Qd$E#%fCSDmLUSV}~-A+(wCn&TN#4AI@D?|~m3Prqv ziLp}!U3UdET|9-ZKnP)S8wy>4uV4O7ZbQ5>w06AW99@W|@k+BD@ygIz@k+BD@v0(p z-JsAlAV)i)$@oMs6yo)(s1h%@xy5B#mZ&7OgAn3X)pt;sf zp`D=66;NI4&S?T$ZPq%roTCe~G+t@W(Znl5Ob$d+ZI0&3Sml^A<^(w!C)~XgIrCI=!Zx^5>JbvwarN+(#_Vq+|Afhd-?C=`xPJM!K8TF2jpqdP7tpQS;VV; zw4y~9NE5G?L@N>El_`sOwIo`J5U+}-?YbFt7vkLIr#MGDL7|->UKz@1*~F`i zbc@^;Huk%%(RH6;sG!}~TXo~9xh?ciOO6f5YACkLLQi$qH5QwtEew78{$4~xnx+{% z#%mp0mn}NhQe)@na|dNj)9l8I+-DiDT#vfP3c1C|ySqfi;dmt>gwy&Y=Z?Bv7g~gP zQmm7$#C)qlj`xeAre$zcEh002ovPDHLkV1iDi{v`ka literal 0 HcmV?d00001 From 305b7232f23ad4f1d26e55cea170179c95fe6b35 Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 24 May 2023 14:35:43 +0200 Subject: [PATCH 058/432] Blast fishing, fish bombing, dynamite fishing or grenade fishing is a de structive fishing practice using explosives to stun or kill schools of fish for easy collection. --- .../java/com/hbm/crafting/WeaponRecipes.java | 1 + .../grenade/EntityGrenadeBouncyGeneric.java | 2 +- .../grenade/EntityGrenadeImpactGeneric.java | 2 +- .../entity/projectile/EntityRBMKDebris.java | 48 +++--- .../java/com/hbm/inventory/fluid/Fluids.java | 5 +- .../java/com/hbm/inventory/gui/GUIMixer.java | 38 +++++ .../hbm/inventory/recipes/CokerRecipes.java | 2 +- .../recipes/CrystallizerRecipes.java | 16 +- .../hbm/inventory/recipes/MixerRecipes.java | 160 +++++++++--------- src/main/java/com/hbm/items/ModItems.java | 2 + .../hbm/items/weapon/ItemGenericGrenade.java | 4 +- .../hbm/items/weapon/ItemGrenadeFishing.java | 59 +++++++ .../machine/TileEntityMachineMixer.java | 41 ++++- src/main/resources/assets/hbm/lang/de_DE.lang | 2 + src/main/resources/assets/hbm/lang/en_US.lang | 2 + .../hbm/textures/gui/processing/gui_mixer.png | Bin 3122 -> 3194 bytes .../gui/processing/gui_mixer_experimental.png | Bin 3194 -> 0 bytes .../textures/items/stick_dynamite_fishing.png | Bin 0 -> 215 bytes 18 files changed, 263 insertions(+), 121 deletions(-) create mode 100644 src/main/java/com/hbm/items/weapon/ItemGrenadeFishing.java delete mode 100644 src/main/resources/assets/hbm/textures/gui/processing/gui_mixer_experimental.png create mode 100644 src/main/resources/assets/hbm/textures/items/stick_dynamite_fishing.png diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index 72585ccb7..87da12304 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -348,6 +348,7 @@ public class WeaponRecipes { //Sticks of explosives CraftingManager.addRecipeAuto(new ItemStack(ModItems.stick_dynamite, 4), new Object[] { " S ", "PDP", "PDP", 'S', ModItems.safety_fuse, 'P', Items.paper, 'D', ModItems.ball_dynamite }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.stick_dynamite_fishing, 1), new Object[] { ModItems.stick_dynamite, ModItems.stick_dynamite, ModItems.stick_dynamite, Items.paper, ANY_TAR.any() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.stick_tnt, 4), new Object[] { " S ", "PDP", "PDP", 'S', ModBlocks.det_cord, 'P', Items.paper, 'D', ModItems.ball_tnt }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.stick_semtex, 4), new Object[] { " S ", "PDP", "PDP", 'S', ModBlocks.det_cord, 'P', Items.paper, 'D', ModItems.ingot_semtex }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.stick_c4, 4), new Object[] { " S ", "PDP", "PDP", 'S', ModBlocks.det_cord, 'P', Items.paper, 'D', ModItems.ingot_c4 }); diff --git a/src/main/java/com/hbm/entity/grenade/EntityGrenadeBouncyGeneric.java b/src/main/java/com/hbm/entity/grenade/EntityGrenadeBouncyGeneric.java index cc440ec35..05f5326dd 100644 --- a/src/main/java/com/hbm/entity/grenade/EntityGrenadeBouncyGeneric.java +++ b/src/main/java/com/hbm/entity/grenade/EntityGrenadeBouncyGeneric.java @@ -40,7 +40,7 @@ public class EntityGrenadeBouncyGeneric extends EntityGrenadeBouncyBase implemen @Override public void explode() { - getGrenade().explode(worldObj, posX, posY, posZ); + getGrenade().explode(this, this.getThrower(), worldObj, posX, posY, posZ); this.setDead(); } diff --git a/src/main/java/com/hbm/entity/grenade/EntityGrenadeImpactGeneric.java b/src/main/java/com/hbm/entity/grenade/EntityGrenadeImpactGeneric.java index febe81373..82d4e89ca 100644 --- a/src/main/java/com/hbm/entity/grenade/EntityGrenadeImpactGeneric.java +++ b/src/main/java/com/hbm/entity/grenade/EntityGrenadeImpactGeneric.java @@ -42,7 +42,7 @@ public class EntityGrenadeImpactGeneric extends EntityGrenadeBase implements IGe public void explode() { if(!this.worldObj.isRemote && getGrenade() != null) { - getGrenade().explode(worldObj, posX, posY, posZ); + getGrenade().explode(this, this.getThrower(), worldObj, posX, posY, posZ); this.setDead(); } } diff --git a/src/main/java/com/hbm/entity/projectile/EntityRBMKDebris.java b/src/main/java/com/hbm/entity/projectile/EntityRBMKDebris.java index c92fb2ae6..0bc62c9e3 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityRBMKDebris.java +++ b/src/main/java/com/hbm/entity/projectile/EntityRBMKDebris.java @@ -68,30 +68,6 @@ public class EntityRBMKDebris extends EntityDebrisBase { hasSizeSet = true; } - this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; - - this.motionY -= 0.04D; - this.moveEntity(this.motionX, this.motionY, this.motionZ); - - this.lastRot = this.rot; - - if(this.onGround) { - this.motionX *= 0.85D; - this.motionZ *= 0.85D; - this.motionY *= -0.5D; - - } else { - - this.rot += 10F; - - if(rot >= 360F) { - this.rot -= 360F; - this.lastRot -= 360F; - } - } - if(!worldObj.isRemote) { if(this.getType() == DebrisType.LID && motionY > 0) { @@ -133,6 +109,30 @@ public class EntityRBMKDebris extends EntityDebrisBase { if(!RBMKDials.getPermaScrap(worldObj) && this.ticksExisted > getLifetime() + this.getEntityId() % 50) this.setDead(); } + + this.prevPosX = this.posX; + this.prevPosY = this.posY; + this.prevPosZ = this.posZ; + + this.motionY -= 0.04D; + this.moveEntity(this.motionX, this.motionY, this.motionZ); + + this.lastRot = this.rot; + + if(this.onGround) { + this.motionX *= 0.85D; + this.motionZ *= 0.85D; + this.motionY *= -0.5D; + + } else { + + this.rot += 10F; + + if(rot >= 360F) { + this.rot -= 360F; + this.lastRot -= 360F; + } + } } @Override diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index 9b0c6f33a..b7c73b12e 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -132,6 +132,7 @@ public class Fluids { public static FluidType ESTRADIOL; public static FluidType FISHOIL; public static FluidType SUNFLOWEROIL; + public static FluidType NITROGLYCERIN; private static final HashMap idMapping = new HashMap(); private static final HashMap nameMapping = new HashMap(); @@ -274,7 +275,8 @@ public class Fluids { CHOLESTEROL = new FluidType("CHOLESTEROL", 0xD6D2BD, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID); ESTRADIOL = new FluidType("ESTRADIOL", 0xCDD5D8, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID); FISHOIL = new FluidType("FISHOIL", 0x4B4A45, 0, 1, 0, EnumSymbol.NONE).addTraits(LIQUID); - SUNFLOWEROIL = new FluidType(111, "SUNFLOWEROIL", 0xCBAD45, 0, 1, 0, EnumSymbol.NONE).addTraits(LIQUID); + SUNFLOWEROIL = new FluidType("SUNFLOWEROIL", 0xCBAD45, 0, 1, 0, EnumSymbol.NONE).addTraits(LIQUID); + NITROGLYCERIN = new FluidType(112, "SUNFLOWEROIL", 0xCBAD45, 0, 4, 0, EnumSymbol.NONE).addTraits(LIQUID); // ^ ^ ^ ^ ^ ^ ^ ^ //ADD NEW FLUIDS HERE @@ -390,6 +392,7 @@ public class Fluids { metaOrder.add(PHOSGENE); metaOrder.add(MUSTARDGAS); metaOrder.add(ESTRADIOL); + metaOrder.add(NITROGLYCERIN); //antimatter metaOrder.add(AMAT); metaOrder.add(ASCHRAB); diff --git a/src/main/java/com/hbm/inventory/gui/GUIMixer.java b/src/main/java/com/hbm/inventory/gui/GUIMixer.java index ae109391e..9d082bbfe 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMixer.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMixer.java @@ -1,14 +1,26 @@ package com.hbm.inventory.gui; +import java.util.ArrayList; +import java.util.List; + import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerMixer; +import com.hbm.inventory.recipes.MixerRecipes; +import com.hbm.inventory.recipes.MixerRecipes.MixerRecipe; import com.hbm.lib.RefStrings; +import com.hbm.packet.AuxButtonPacket; +import com.hbm.packet.NBTControlPacket; +import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.machine.TileEntityMachineMixer; +import com.hbm.util.I18nUtil; import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.ResourceLocation; public class GUIMixer extends GuiInfoContainer { @@ -29,12 +41,38 @@ public class GUIMixer extends GuiInfoContainer { super.drawScreen(x, y, interp); this.drawElectricityInfo(this, x, y, guiLeft + 23, guiTop + 23, 16, 52, mixer.getPower(), mixer.getMaxPower()); + + MixerRecipe[] recipes = MixerRecipes.getOutput(mixer.tanks[2].getTankType()); + + if(recipes != null && recipes.length > 1) { + List label = new ArrayList(); + label.add(EnumChatFormatting.YELLOW + "Current recipe (" + (mixer.recipeIndex + 1) + "/" + recipes.length + "):"); + MixerRecipe recipe = recipes[mixer.recipeIndex % recipes.length]; + if(recipe.input1 != null) label.add("-" + I18nUtil.resolveKey(recipe.input1.type.getUnlocalizedName())); + if(recipe.input2 != null) label.add("-" + I18nUtil.resolveKey(recipe.input2.type.getUnlocalizedName())); + if(recipe.solidInput != null) label.add("-" + recipe.solidInput.extractForCyclingDisplay(20).getDisplayName()); + label.add(EnumChatFormatting.RED + "Click to change!"); + this.drawCustomInfoStat(x, y, guiLeft + 62, guiTop + 22, 12, 12, x, y, label); + } mixer.tanks[0].renderTankInfo(this, x, y, guiLeft + 43, guiTop + 23, 7, 52); mixer.tanks[1].renderTankInfo(this, x, y, guiLeft + 52, guiTop + 23, 7, 52); mixer.tanks[2].renderTankInfo(this, x, y, guiLeft + 117, guiTop + 23, 16, 52); } + @Override + protected void mouseClicked(int x, int y, int i) { + super.mouseClicked(x, y, i); + + if(guiLeft + 62 <= x && guiLeft + 62 + 12 > x && guiTop + 22 < y && guiTop + 22 + 12 >= y) { + + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + data.setBoolean("toggle", true); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, mixer.xCoord, mixer.yCoord, mixer.zCoord)); + } + } + @Override protected void drawGuiContainerForegroundLayer( int i, int j) { diff --git a/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java b/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java index e87da47ca..01dfe8dd6 100644 --- a/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java @@ -50,7 +50,7 @@ public class CokerRecipes extends SerializableRecipe { registerAuto(AROMATICS, GAS_COKER); registerAuto(REFORMATE, GAS_COKER); registerAuto(XYLENE, GAS_COKER); - registerAuto(FISHOIL, NAPHTHA_COKER); + registerAuto(FISHOIL, MERCURY); registerAuto(SUNFLOWEROIL, GAS_COKER); registerSFAuto(WOODOIL, 340_000L, new ItemStack(Items.coal, 1, 1), GAS_COKER); diff --git a/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java b/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java index 3eee4adf6..7b73f053f 100644 --- a/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java @@ -127,13 +127,15 @@ public class CrystallizerRecipes extends SerializableRecipe { registerRecipe(new ComparableStack(ModItems.ore_nitrocrystalline, 1, i), new CrystallizerRecipe(new ItemStack(ModItems.ore_seared, 1, i), oreTime), hiperf); } - FluidStack woodOil = new FluidStack(Fluids.WOODOIL, 100); - registerRecipe(COAL.dust(), new CrystallizerRecipe(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.BLACK, 4), 20), woodOil); - registerRecipe(TI.dust(), new CrystallizerRecipe(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.WHITE, 4), 20), woodOil); - registerRecipe(IRON.dust(), new CrystallizerRecipe(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.RED, 4), 20), woodOil); - registerRecipe(W.dust(), new CrystallizerRecipe(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.YELLOW, 4), 20), woodOil); - registerRecipe(CU.dust(), new CrystallizerRecipe(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.GREEN, 4), 20), woodOil); - registerRecipe(CO.dust(), new CrystallizerRecipe(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.BLUE, 4), 20), woodOil); + FluidStack[] dyes = new FluidStack[] {new FluidStack(Fluids.WOODOIL, 100), new FluidStack(Fluids.FISHOIL, 100)}; + for(FluidStack dye : dyes) { + registerRecipe(COAL.dust(), new CrystallizerRecipe(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.BLACK, 4), 20), dye); + registerRecipe(TI.dust(), new CrystallizerRecipe(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.WHITE, 4), 20), dye); + registerRecipe(IRON.dust(), new CrystallizerRecipe(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.RED, 4), 20), dye); + registerRecipe(W.dust(), new CrystallizerRecipe(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.YELLOW, 4), 20), dye); + registerRecipe(CU.dust(), new CrystallizerRecipe(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.GREEN, 4), 20), dye); + registerRecipe(CO.dust(), new CrystallizerRecipe(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.BLUE, 4), 20), dye); + } registerRecipe(new ComparableStack(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRUDE)), new CrystallizerRecipe(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.WAX), 20), new FluidStack(Fluids.CHLORINE, 250)); registerRecipe(new ComparableStack(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRACK)), new CrystallizerRecipe(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.WAX), 20), new FluidStack(Fluids.CHLORINE, 100)); diff --git a/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java b/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java index 421453a5d..d1a12d6f2 100644 --- a/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java @@ -8,6 +8,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map.Entry; +import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; @@ -27,67 +28,72 @@ import net.minecraftforge.oredict.OreDictionary; public class MixerRecipes extends SerializableRecipe { - public static HashMap recipes = new HashMap(); - - public static HashMap recipes_experimental = new HashMap(); + public static HashMap recipes = new HashMap(); @Override public void registerDefaults() { - recipes.put(Fluids.COOLANT, new MixerRecipe(2_000, 50).setStack1(new FluidStack(Fluids.WATER, 1_800)).setSolid(new OreDictStack(KNO.dust()))); - recipes.put(Fluids.CRYOGEL, new MixerRecipe(2_000, 50).setStack1(new FluidStack(Fluids.COOLANT, 1_800)).setSolid(new ComparableStack(ModItems.powder_ice))); - recipes.put(Fluids.NITAN, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.KEROSENE, 600)).setStack2(new FluidStack(Fluids.MERCURY, 200)).setSolid(new ComparableStack(ModItems.powder_nitan_mix))); - recipes.put(Fluids.FRACKSOL, new MixerRecipe(1_000, 20).setStack1(new FluidStack(Fluids.SULFURIC_ACID, 900)).setStack2(new FluidStack(Fluids.PETROLEUM, 100))); - recipes.put(Fluids.ENDERJUICE, new MixerRecipe(100, 100).setStack1(new FluidStack(Fluids.XPJUICE, 500)).setSolid(new OreDictStack(DIAMOND.dust()))); - recipes.put(Fluids.SALIENT, new MixerRecipe(1000, 20).setStack1(new FluidStack(Fluids.SEEDSLURRY, 500)).setStack2(new FluidStack(Fluids.BLOOD, 500))); - recipes.put(Fluids.COLLOID, new MixerRecipe(500, 20).setStack1(new FluidStack(Fluids.WATER, 500)).setSolid(new ComparableStack(ModItems.dust))); - recipes.put(Fluids.PHOSGENE, new MixerRecipe(1000, 20).setStack1(new FluidStack(Fluids.UNSATURATEDS, 500)).setStack2(new FluidStack(Fluids.CHLORINE, 500))); - recipes.put(Fluids.MUSTARDGAS, new MixerRecipe(1000, 20).setStack1(new FluidStack(Fluids.REFORMGAS, 750)).setStack2(new FluidStack(Fluids.CHLORINE, 250)).setSolid(new OreDictStack(S.dust()))); - recipes.put(Fluids.IONGEL, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.WATER, 1000)).setStack2(new FluidStack(Fluids.HYDROGEN, 200)).setSolid(new ComparableStack(ModItems.pellet_charged))); - recipes.put(Fluids.EGG, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.RADIOSOLVENT, 500)).setSolid(new ComparableStack(Items.egg))); - recipes.put(Fluids.FISHOIL, new MixerRecipe(100, 50).setSolid(new ComparableStack(Items.fish, 1, OreDictionary.WILDCARD_VALUE))); - recipes.put(Fluids.SUNFLOWEROIL, new MixerRecipe(100, 50).setSolid(new ComparableStack(Blocks.double_plant, 1, 0))); + register(Fluids.COOLANT, new MixerRecipe(2_000, 50).setStack1(new FluidStack(Fluids.WATER, 1_800)).setSolid(new OreDictStack(KNO.dust()))); + register(Fluids.CRYOGEL, new MixerRecipe(2_000, 50).setStack1(new FluidStack(Fluids.COOLANT, 1_800)).setSolid(new ComparableStack(ModItems.powder_ice))); + register(Fluids.NITAN, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.KEROSENE, 600)).setStack2(new FluidStack(Fluids.MERCURY, 200)).setSolid(new ComparableStack(ModItems.powder_nitan_mix))); + register(Fluids.FRACKSOL, + new MixerRecipe(1_000, 20).setStack1(new FluidStack(Fluids.SULFURIC_ACID, 900)).setStack2(new FluidStack(Fluids.PETROLEUM, 100)), + new MixerRecipe(1_000, 20).setStack1(new FluidStack(Fluids.WATER, 1000)).setStack2(new FluidStack(Fluids.PETROLEUM, 100)).setSolid(new OreDictStack(S.dust()))); + register(Fluids.ENDERJUICE, new MixerRecipe(100, 100).setStack1(new FluidStack(Fluids.XPJUICE, 500)).setSolid(new OreDictStack(DIAMOND.dust()))); + register(Fluids.SALIENT, new MixerRecipe(1000, 20).setStack1(new FluidStack(Fluids.SEEDSLURRY, 500)).setStack2(new FluidStack(Fluids.BLOOD, 500))); + register(Fluids.COLLOID, new MixerRecipe(500, 20).setStack1(new FluidStack(Fluids.WATER, 500)).setSolid(new ComparableStack(ModItems.dust))); + register(Fluids.PHOSGENE, new MixerRecipe(1000, 20).setStack1(new FluidStack(Fluids.UNSATURATEDS, 500)).setStack2(new FluidStack(Fluids.CHLORINE, 500))); + register(Fluids.MUSTARDGAS, new MixerRecipe(1000, 20).setStack1(new FluidStack(Fluids.REFORMGAS, 750)).setStack2(new FluidStack(Fluids.CHLORINE, 250)).setSolid(new OreDictStack(S.dust()))); + register(Fluids.IONGEL, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.WATER, 1000)).setStack2(new FluidStack(Fluids.HYDROGEN, 200)).setSolid(new ComparableStack(ModItems.pellet_charged))); + register(Fluids.EGG, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.RADIOSOLVENT, 500)).setSolid(new ComparableStack(Items.egg))); + register(Fluids.FISHOIL, new MixerRecipe(100, 50).setSolid(new ComparableStack(Items.fish, 1, OreDictionary.WILDCARD_VALUE))); + register(Fluids.SUNFLOWEROIL, new MixerRecipe(100, 50).setSolid(new ComparableStack(Blocks.double_plant, 1, 0))); - recipes.put(Fluids.SOLVENT, new MixerRecipe(1000, 50).setStack1(new FluidStack(Fluids.NAPHTHA, 500)).setStack2(new FluidStack(Fluids.AROMATICS, 500))); - recipes.put(Fluids.SULFURIC_ACID, new MixerRecipe(500, 50).setStack1(new FluidStack(Fluids.ACID, 800)).setSolid(new OreDictStack(S.dust()))); - recipes.put(Fluids.NITRIC_ACID, new MixerRecipe(500, 50).setStack1(new FluidStack(Fluids.SULFURIC_ACID, 500)).setSolid(new OreDictStack(KNO.dust()))); - recipes.put(Fluids.RADIOSOLVENT, new MixerRecipe(1000, 50).setStack1(new FluidStack(Fluids.REFORMGAS, 750)).setStack2(new FluidStack(Fluids.CHLORINE, 250))); - recipes.put(Fluids.SCHRABIDIC, new MixerRecipe(16_000, 100).setStack1(new FluidStack(Fluids.SAS3, 8_000)).setStack2(new FluidStack(Fluids.ACID, 6_000)).setSolid(new ComparableStack(ModItems.pellet_charged))); + register(Fluids.SOLVENT, new MixerRecipe(1000, 50).setStack1(new FluidStack(Fluids.NAPHTHA, 500)).setStack2(new FluidStack(Fluids.AROMATICS, 500))); + register(Fluids.SULFURIC_ACID, new MixerRecipe(500, 50).setStack1(new FluidStack(Fluids.ACID, 800)).setSolid(new OreDictStack(S.dust()))); + register(Fluids.NITRIC_ACID, new MixerRecipe(500, 50).setStack1(new FluidStack(Fluids.SULFURIC_ACID, 500)).setSolid(new OreDictStack(KNO.dust()))); + register(Fluids.RADIOSOLVENT, new MixerRecipe(1000, 50).setStack1(new FluidStack(Fluids.REFORMGAS, 750)).setStack2(new FluidStack(Fluids.CHLORINE, 250))); + register(Fluids.SCHRABIDIC, new MixerRecipe(16_000, 100).setStack1(new FluidStack(Fluids.SAS3, 8_000)).setStack2(new FluidStack(Fluids.ACID, 6_000)).setSolid(new ComparableStack(ModItems.pellet_charged))); - recipes.put(Fluids.LUBRICANT, new MixerRecipe(1_000, 20).setStack1(new FluidStack(Fluids.HEATINGOIL, 500)).setStack2(new FluidStack(Fluids.UNSATURATEDS, 500))); - recipes.put(Fluids.PETROIL, new MixerRecipe(1_000, 30).setStack1(new FluidStack(Fluids.RECLAIMED, 800)).setStack2(new FluidStack(Fluids.LUBRICANT, 200))); + register(Fluids.PETROIL, new MixerRecipe(1_000, 30).setStack1(new FluidStack(Fluids.RECLAIMED, 800)).setStack2(new FluidStack(Fluids.LUBRICANT, 200))); + register(Fluids.LUBRICANT, + new MixerRecipe(1_000, 20).setStack1(new FluidStack(Fluids.HEATINGOIL, 500)).setStack2(new FluidStack(Fluids.UNSATURATEDS, 500)), + new MixerRecipe(1_000, 20).setStack1(new FluidStack(Fluids.FISHOIL, 800)).setStack2(new FluidStack(Fluids.ETHANOL, 200)), + new MixerRecipe(1_000, 20).setStack1(new FluidStack(Fluids.SUNFLOWEROIL, 800)).setStack2(new FluidStack(Fluids.ETHANOL, 200))); + register(Fluids.BIOFUEL, + new MixerRecipe(250, 20).setStack1(new FluidStack(Fluids.FISHOIL, 500)).setStack2(new FluidStack(Fluids.WOODOIL, 500)), + new MixerRecipe(200, 20).setStack1(new FluidStack(Fluids.SUNFLOWEROIL, 500)).setStack2(new FluidStack(Fluids.WOODOIL, 500))); + register(Fluids.NITROGLYCERIN, + new MixerRecipe(1000, 20).setStack1(new FluidStack(Fluids.PETROLEUM, 1_000)).setStack2(new FluidStack(Fluids.NITRIC_ACID, 1_000)), + new MixerRecipe(1000, 20).setStack1(new FluidStack(Fluids.FISHOIL, 500)).setStack2(new FluidStack(Fluids.NITRIC_ACID, 500))); - recipes.put(Fluids.SYNGAS, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.COALOIL, 500)).setStack2(new FluidStack(Fluids.STEAM, 500))); - recipes.put(Fluids.OXYHYDROGEN, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.HYDROGEN, 500)).setStack2(new FluidStack(Fluids.OXYGEN, 500))); + register(Fluids.SYNGAS, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.COALOIL, 500)).setStack2(new FluidStack(Fluids.STEAM, 500))); + register(Fluids.OXYHYDROGEN, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.HYDROGEN, 500)).setStack2(new FluidStack(Fluids.OXYGEN, 500))); - recipes.put(Fluids.PETROIL_LEADED, new MixerRecipe(12_000, 40).setStack1(new FluidStack(Fluids.PETROIL, 10_000)).setSolid(new ComparableStack(ModItems.antiknock))); - recipes.put(Fluids.GASOLINE_LEADED, new MixerRecipe(12_000, 40).setStack1(new FluidStack(Fluids.GASOLINE, 10_000)).setSolid(new ComparableStack(ModItems.antiknock))); - recipes.put(Fluids.COALGAS_LEADED, new MixerRecipe(12_000, 40).setStack1(new FluidStack(Fluids.COALGAS, 10_000)).setSolid(new ComparableStack(ModItems.antiknock))); + register(Fluids.PETROIL_LEADED, new MixerRecipe(12_000, 40).setStack1(new FluidStack(Fluids.PETROIL, 10_000)).setSolid(new ComparableStack(ModItems.antiknock))); + register(Fluids.GASOLINE_LEADED, new MixerRecipe(12_000, 40).setStack1(new FluidStack(Fluids.GASOLINE, 10_000)).setSolid(new ComparableStack(ModItems.antiknock))); + register(Fluids.COALGAS_LEADED, new MixerRecipe(12_000, 40).setStack1(new FluidStack(Fluids.COALGAS, 10_000)).setSolid(new ComparableStack(ModItems.antiknock))); - recipes.put(Fluids.DIESEL_REFORM, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.DIESEL, 900)).setStack2(new FluidStack(Fluids.REFORMATE, 100))); - recipes.put(Fluids.DIESEL_CRACK_REFORM, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.DIESEL_CRACK, 900)).setStack2(new FluidStack(Fluids.REFORMATE, 100))); - recipes.put(Fluids.KEROSENE_REFORM, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.KEROSENE, 900)).setStack2(new FluidStack(Fluids.REFORMATE, 100))); + register(Fluids.DIESEL_REFORM, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.DIESEL, 900)).setStack2(new FluidStack(Fluids.REFORMATE, 100))); + register(Fluids.DIESEL_CRACK_REFORM, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.DIESEL_CRACK, 900)).setStack2(new FluidStack(Fluids.REFORMATE, 100))); + register(Fluids.KEROSENE_REFORM, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.KEROSENE, 900)).setStack2(new FluidStack(Fluids.REFORMATE, 100))); } - public static void registerExperimental(FluidType type, MixerRecipe... recipes) { - recipes_experimental.put(type, recipes); + public static void register(FluidType type, MixerRecipe... rec) { + recipes.put(type, rec); } - public static MixerRecipe[] getOutputExperimental(FluidType type) { - return recipes_experimental.get(type); + public static MixerRecipe[] getOutput(FluidType type) { + return recipes.get(type); } - public static MixerRecipe getOutputExperimental(FluidType type, int index) { - MixerRecipe[] recs = recipes_experimental.get(type); + public static MixerRecipe getOutput(FluidType type, int index) { + MixerRecipe[] recs = recipes.get(type); if(recs == null) return null; return recs[index % recs.length]; } - public static MixerRecipe getOutput(FluidType type) { - return recipes.get(type); - } - @Override public String getFileName() { return "hbmMixer.json"; @@ -107,57 +113,53 @@ public class MixerRecipes extends SerializableRecipe { public void readRecipe(JsonElement recipe) { JsonObject obj = (JsonObject) recipe; - FluidStack output = this.readFluidStack(obj.get("output").getAsJsonArray()); - MixerRecipe mix = new MixerRecipe(output.fill, obj.get("duration").getAsInt()); - - if(obj.has("input1")) mix.setStack1(this.readFluidStack(obj.get("input1").getAsJsonArray())); - if(obj.has("input2")) mix.setStack2(this.readFluidStack(obj.get("input2").getAsJsonArray())); - if(obj.has("solidInput")) mix.setSolid(this.readAStack(obj.get("solidInput").getAsJsonArray())); + FluidType outputType = Fluids.fromName(obj.get("outputType").getAsString()); + JsonArray recipeArray = obj.get("recipes").getAsJsonArray(); + MixerRecipe[] array = new MixerRecipe[recipeArray.size()]; - recipes.put(output.type, mix); + for(int i = 0; i < recipeArray.size(); i++) { + JsonObject sub = recipeArray.get(i).getAsJsonObject(); + MixerRecipe mix = new MixerRecipe(sub.get("outputAmount").getAsInt(), sub.get("duration").getAsInt()); + + if(sub.has("input1")) mix.setStack1(this.readFluidStack(sub.get("input1").getAsJsonArray())); + if(sub.has("input2")) mix.setStack2(this.readFluidStack(sub.get("input2").getAsJsonArray())); + if(sub.has("solidInput")) mix.setSolid(this.readAStack(sub.get("solidInput").getAsJsonArray())); + + array[i] = mix; + + } + + recipes.put(outputType, array); } @Override public void writeRecipe(Object recipe, JsonWriter writer) throws IOException { - Entry rec = (Entry) recipe; - MixerRecipe mix = rec.getValue(); - FluidStack output = new FluidStack(rec.getKey(), mix.output); + Entry rec = (Entry) recipe; + MixerRecipe[] recipes = rec.getValue(); - writer.name("duration").value(mix.processTime); - writer.name("output"); - this.writeFluidStack(output, writer); + writer.name("outputType").value(rec.getKey().getName()); + writer.name("recipes").beginArray(); - if(mix.input1 != null) { writer.name("input1"); this.writeFluidStack(mix.input1, writer); } - if(mix.input2 != null) { writer.name("input2"); this.writeFluidStack(mix.input2, writer); } - if(mix.solidInput != null) { writer.name("solidInput"); this.writeAStack(mix.solidInput, writer); } + for(MixerRecipe mix : recipes) { + writer.beginObject(); + FluidStack output = new FluidStack(rec.getKey(), mix.output); + + writer.name("duration").value(mix.processTime); + writer.name("outputAmount").value(mix.output); + + if(mix.input1 != null) { writer.name("input1"); this.writeFluidStack(mix.input1, writer); } + if(mix.input2 != null) { writer.name("input2"); this.writeFluidStack(mix.input2, writer); } + if(mix.solidInput != null) { writer.name("solidInput"); this.writeAStack(mix.solidInput, writer); } + writer.endObject(); + } + writer.endArray(); } public static HashMap getRecipes() { HashMap recipes = new HashMap(); - for(Entry entry : MixerRecipes.recipes.entrySet()) { - - FluidType type = entry.getKey(); - MixerRecipe recipe = entry.getValue(); - FluidStack output = new FluidStack(type, recipe.output); - - List objects = new ArrayList(); - if(recipe.input1 != null) objects.add(ItemFluidIcon.make(recipe.input1)); - if(recipe.input2 != null) objects.add(ItemFluidIcon.make(recipe.input2)); - if(recipe.solidInput != null) objects.add(recipe.solidInput); - - recipes.put(objects.toArray(), ItemFluidIcon.make(output)); - } - - return recipes; - } - - public static HashMap getRecipesExperimental() { - - HashMap recipes = new HashMap(); - - for(Entry entry : MixerRecipes.recipes_experimental.entrySet()) { + for(Entry entry : MixerRecipes.recipes.entrySet()) { FluidType type = entry.getKey(); MixerRecipe[] recs = entry.getValue(); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 8fc513266..5bce97c3c 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1613,6 +1613,7 @@ public class ModItems { public static Item crucible; public static Item stick_dynamite; + public static Item stick_dynamite_fishing; public static Item stick_tnt; public static Item stick_semtex; public static Item stick_c4; @@ -4220,6 +4221,7 @@ public class ModItems { crucible = new ItemCrucible(5000, 1F, matCrucible).setUnlocalizedName("crucible").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":crucible"); stick_dynamite = new ItemGrenade(3).setUnlocalizedName("stick_dynamite").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":stick_dynamite"); + stick_dynamite_fishing = new ItemGrenadeFishing(3).setUnlocalizedName("stick_dynamite_fishing").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":stick_dynamite_fishing"); stick_tnt = new Item().setUnlocalizedName("stick_tnt").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":stick_tnt"); stick_semtex = new Item().setUnlocalizedName("stick_semtex").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":stick_semtex"); stick_c4 = new Item().setUnlocalizedName("stick_c4").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":stick_c4"); diff --git a/src/main/java/com/hbm/items/weapon/ItemGenericGrenade.java b/src/main/java/com/hbm/items/weapon/ItemGenericGrenade.java index e7f417999..c300075f8 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGenericGrenade.java +++ b/src/main/java/com/hbm/items/weapon/ItemGenericGrenade.java @@ -3,6 +3,8 @@ package com.hbm.items.weapon; import com.hbm.entity.grenade.EntityGrenadeBouncyGeneric; import com.hbm.entity.grenade.EntityGrenadeImpactGeneric; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.world.World; @@ -33,7 +35,7 @@ public class ItemGenericGrenade extends ItemGrenade { return stack; } - public void explode(World world, double x, double y, double z) { } + public void explode(Entity grenade, EntityLivingBase thrower, World world, double x, double y, double z) { } public int getMaxTimer() { return this.fuse * 20; diff --git a/src/main/java/com/hbm/items/weapon/ItemGrenadeFishing.java b/src/main/java/com/hbm/items/weapon/ItemGrenadeFishing.java new file mode 100644 index 000000000..f61e6a274 --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/ItemGrenadeFishing.java @@ -0,0 +1,59 @@ +package com.hbm.items.weapon; + +import java.util.Random; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class ItemGrenadeFishing extends ItemGenericGrenade { + + public ItemGrenadeFishing(int fuse) { + super(fuse); + } + + @Override + public void explode(Entity grenade, EntityLivingBase thrower, World world, double x, double y, double z) { + world.newExplosion(null, x, y + 0.25D, z, 3F, false, false); + + int iX = (int) Math.floor(x); + int iY = (int) Math.floor(y); + int iZ = (int) Math.floor(z); + + for(int i = 0; i < 15; i++) { + + int rX = iX + world.rand.nextInt(15) - 7; + int rY = iY + world.rand.nextInt(15) - 7; + int rZ = iZ + world.rand.nextInt(15) - 7; + + if(world.getBlock(rX, rY, rZ).getMaterial() == Material.water) { + ItemStack loot = this.getRandomLoot(world.rand); + if(loot != null) { + EntityItem item = new EntityItem(world, rX + 0.5, rY + 0.5, rZ + 0.5, loot.copy()); + item.motionY = 3; + world.spawnEntityInWorld(item); + } + } + } + } + + public static ItemStack getRandomLoot(Random rand) { + float chance = rand.nextFloat(); + int luck = 0; + int speed = 100; //reduces both the junk and treasure chance to near zero + return net.minecraftforge.common.FishingHooks.getRandomFishable(rand, chance, luck, speed); + } + + @Override + public int getMaxTimer() { + return 60; + } + + @Override + public double getBounceMod() { + return 0.5D; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMixer.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMixer.java index 37333a316..4f62b9aa8 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMixer.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMixer.java @@ -1,5 +1,6 @@ package com.hbm.tileentity.machine; +import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerMixer; import com.hbm.inventory.fluid.Fluids; @@ -26,12 +27,13 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; -public class TileEntityMachineMixer extends TileEntityMachineBase implements INBTPacketReceiver, IGUIProvider, IEnergyUser, IFluidStandardTransceiver { +public class TileEntityMachineMixer extends TileEntityMachineBase implements INBTPacketReceiver, IControlReceiver, IGUIProvider, IEnergyUser, IFluidStandardTransceiver { public long power; public static final long maxPower = 10_000; public int progress; public int processTime; + public int recipeIndex; public float rotation; public float prevRotation; @@ -107,6 +109,7 @@ public class TileEntityMachineMixer extends TileEntityMachineBase implements INB data.setLong("power", power); data.setInteger("processTime", processTime); data.setInteger("progress", progress); + data.setInteger("recipe", recipeIndex); data.setBoolean("wasOn", wasOn); for(int i = 0; i < 3; i++) { tanks[i].writeToNBT(data, i + ""); @@ -133,6 +136,7 @@ public class TileEntityMachineMixer extends TileEntityMachineBase implements INB this.power = nbt.getLong("power"); this.processTime = nbt.getInteger("processTime"); this.progress = nbt.getInteger("progress"); + this.recipeIndex = nbt.getInteger("recipe"); this.wasOn = nbt.getBoolean("wasOn"); for(int i = 0; i < 3; i++) { tanks[i].readFromNBT(nbt, i + ""); @@ -140,10 +144,19 @@ public class TileEntityMachineMixer extends TileEntityMachineBase implements INB } public boolean canProcess() { + + MixerRecipe[] recipes = MixerRecipes.getOutput(tanks[2].getTankType()); + if(recipes == null || recipes.length <= 0) { + this.recipeIndex = 0; + return false; + } - MixerRecipe recipe = MixerRecipes.getOutput(tanks[2].getTankType()); - - if(recipe == null) return false; + this.recipeIndex = this.recipeIndex % recipes.length; + MixerRecipe recipe = recipes[this.recipeIndex]; + if(recipe == null) { + this.recipeIndex = 0; + return false; + } tanks[0].setTankType(recipe.input1 != null ? recipe.input1.type : Fluids.NONE); tanks[1].setTankType(recipe.input2 != null ? recipe.input2.type : Fluids.NONE); @@ -169,7 +182,8 @@ public class TileEntityMachineMixer extends TileEntityMachineBase implements INB protected void process() { - MixerRecipe recipe = MixerRecipes.getOutput(tanks[2].getTankType()); + MixerRecipe[] recipes = MixerRecipes.getOutput(tanks[2].getTankType()); + MixerRecipe recipe = recipes[this.recipeIndex % recipes.length]; if(recipe.input1 != null) tanks[0].setFill(tanks[0].getFill() - recipe.input1.fill); if(recipe.input2 != null) tanks[1].setFill(tanks[1].getFill() - recipe.input2.fill); @@ -199,8 +213,10 @@ public class TileEntityMachineMixer extends TileEntityMachineBase implements INB @Override public boolean isItemValidForSlot(int i, ItemStack itemStack) { - MixerRecipe recipe = MixerRecipes.getOutput(tanks[2].getTankType()); + MixerRecipe[] recipes = MixerRecipes.getOutput(tanks[2].getTankType()); + if(recipes == null || recipes.length <= 0) return false; + MixerRecipe recipe = recipes[this.recipeIndex % recipes.length]; if(recipe == null || recipe.solidInput == null) return false; return recipe.solidInput.matchesRecipe(itemStack, true); @@ -213,6 +229,7 @@ public class TileEntityMachineMixer extends TileEntityMachineBase implements INB this.power = nbt.getLong("power"); this.progress = nbt.getInteger("progress"); this.processTime = nbt.getInteger("processTime"); + this.recipeIndex = nbt.getInteger("recipe"); for(int i = 0; i < 3; i++) this.tanks[i].readFromNBT(nbt, i + ""); } @@ -223,6 +240,7 @@ public class TileEntityMachineMixer extends TileEntityMachineBase implements INB nbt.setLong("power", power); nbt.setInteger("progress", progress); nbt.setInteger("processTime", processTime); + nbt.setInteger("recipe", recipeIndex); for(int i = 0; i < 3; i++) this.tanks[i].writeToNBT(nbt, i + ""); } @@ -284,4 +302,15 @@ public class TileEntityMachineMixer extends TileEntityMachineBase implements INB public double getMaxRenderDistanceSquared() { return 65536.0D; } + + @Override + public boolean hasPermission(EntityPlayer player) { + return player.getDistance(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5) <= 16; + } + + @Override + public void receiveControl(NBTTagCompound data) { + + if(data.hasKey("toggle")) this.recipeIndex++; + } } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 8f2c19202..4e2684089 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -659,6 +659,7 @@ hbmfluid.naphtha_coker=Koker-Naphtha hbmfluid.naphtha_crack=Crack-Mitteldestillat hbmfluid.nitan=NITAN© 100 Oktan Supertreibstoff hbmfluid.nitric_acid=Salpetersäure +hbmfluid.nitroglycerin=Nitroglycerin hbmfluid.none=Nichts hbmfluid.oil=Rohöl hbmfluid.oil_coker=Koker-Öl @@ -3097,6 +3098,7 @@ item.steel_shovel.name=Stahlschaufel item.steel_sword.name=Stahlschwert item.stick_c4.name=Stange C4 item.stick_dynamite.name=Stange Dynamit +item.stick_dynamite_fishing.name=Stange Fischerei-Dynamit item.stick_semtex.name=Stange Semtex item.stick_tnt.name=Stange TNT item.stopsign.name=Stopschild-Streitaxt diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 9ba04761b..3758781ef 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1231,6 +1231,7 @@ hbmfluid.naphtha_coker=Coker Naphtha hbmfluid.naphtha_crack=Cracked Naphtha hbmfluid.nitan=NITAN© 100 Octane Super Fuel hbmfluid.nitric_acid=Nitric Acid +hbmfluid.nitroglycerin=Nitroglycerin hbmfluid.none=None hbmfluid.oil=Crude Oil hbmfluid.oil_coker=Coker Oil @@ -3882,6 +3883,7 @@ item.steel_shovel.name=Steel Shovel item.steel_sword.name=Steel Sword item.stick_c4.name=Stick of C-4 item.stick_dynamite.name=Stick of Dynamite +item.stick_dynamite_fishing.name=Stick of Fishing Dynamite item.stick_semtex.name=Stick of Semtex item.stick_tnt.name=Stick of TNT item.stopsign.name=Stop Sign Battle Axe diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_mixer.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_mixer.png index 1bb5e85f15bff9b71477d24b72c32ca467896ce5..a04e3e7a7aa6e466705f4cae7b27c2ba3b8cc458 100644 GIT binary patch literal 3194 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 Qmm8?o7WU*~Gs=~}1EiZ{`v3p{ literal 3122 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 diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_mixer_experimental.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_mixer_experimental.png deleted file mode 100644 index a04e3e7a7aa6e466705f4cae7b27c2ba3b8cc458..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3194 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 Qmm8?o7WU*~Gs=~}1EiZ{`v3p{ diff --git a/src/main/resources/assets/hbm/textures/items/stick_dynamite_fishing.png b/src/main/resources/assets/hbm/textures/items/stick_dynamite_fishing.png new file mode 100644 index 0000000000000000000000000000000000000000..973506281c341fe739640eab0ef3e0a6354a8341 GIT binary patch literal 215 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfb2yQDN_uVe3WLmdZysH zGV|fN{5-tRIG0$?e)#S8f1ca&f6`~vJhXQ{=*aV&pYN=X#H@*b&J=tHDrBj4tNEtL zqY!9(# Date: Wed, 24 May 2023 16:13:14 +0200 Subject: [PATCH 059/432] buoyant items, press fix --- .../java/com/hbm/entity/EntityMappings.java | 3 +++ .../hbm/entity/item/EntityItemBuoyant.java | 27 +++++++++++++++++++ src/main/java/com/hbm/items/ModItems.java | 1 + .../hbm/items/weapon/ItemGrenadeFishing.java | 7 ++--- src/main/java/com/hbm/main/MainRegistry.java | 13 +++++++++ .../machine/TileEntityMachineEPress.java | 4 +-- .../machine/TileEntityMachinePress.java | 4 +-- 7 files changed, 52 insertions(+), 7 deletions(-) create mode 100644 src/main/java/com/hbm/entity/item/EntityItemBuoyant.java diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index f5457e462..8d388474a 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -212,6 +212,9 @@ public class EntityMappings { addEntity(EntityChemical.class, "entity_chemthrower_splash", 1000); addEntity(EntityMist.class, "entity_mist", 1000); + addEntity(EntityItemWaste.class, "entity_item_waste", 100); + addEntity(EntityItemBuoyant.class, "entity_item_buoyant", 100); + addEntity(SeatDummyEntity.class, "entity_ntm_seat_dummy", 250, false); addEntity(BoundingBoxDummyEntity.class, "entity_ntm_bounding_dummy", 250, false); addEntity(TrainCargoTram.class, "entity_ntm_cargo_tram", 250, false); diff --git a/src/main/java/com/hbm/entity/item/EntityItemBuoyant.java b/src/main/java/com/hbm/entity/item/EntityItemBuoyant.java new file mode 100644 index 000000000..9a19b7490 --- /dev/null +++ b/src/main/java/com/hbm/entity/item/EntityItemBuoyant.java @@ -0,0 +1,27 @@ +package com.hbm.entity.item; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class EntityItemBuoyant extends EntityItem { + + public EntityItemBuoyant(World world) { + super(world); + } + + public EntityItemBuoyant(World world, double x, double y, double z, ItemStack stack) { + super(world, x, y, z, stack); + } + + @Override + public void onUpdate() { + + if(worldObj.getBlock((int) Math.floor(posX), (int) Math.floor(posY - 0.0625), (int) Math.floor(posZ)).getMaterial() == Material.water) { + this.motionY += 0.045D; + } + + super.onUpdate(); + } +} diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 5bce97c3c..68ae2a5a4 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -7262,6 +7262,7 @@ public class ModItems { //Grenades GameRegistry.registerItem(stick_dynamite, stick_dynamite.getUnlocalizedName()); //heave-ho! + GameRegistry.registerItem(stick_dynamite_fishing, stick_dynamite_fishing.getUnlocalizedName()); GameRegistry.registerItem(stick_tnt, stick_tnt.getUnlocalizedName()); GameRegistry.registerItem(stick_semtex, stick_semtex.getUnlocalizedName()); GameRegistry.registerItem(stick_c4, stick_c4.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/weapon/ItemGrenadeFishing.java b/src/main/java/com/hbm/items/weapon/ItemGrenadeFishing.java index f61e6a274..a04d29f7e 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGrenadeFishing.java +++ b/src/main/java/com/hbm/items/weapon/ItemGrenadeFishing.java @@ -2,10 +2,11 @@ package com.hbm.items.weapon; import java.util.Random; +import com.hbm.entity.item.EntityItemBuoyant; + import net.minecraft.block.material.Material; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.item.EntityItem; import net.minecraft.item.ItemStack; import net.minecraft.world.World; @@ -32,8 +33,8 @@ public class ItemGrenadeFishing extends ItemGenericGrenade { if(world.getBlock(rX, rY, rZ).getMaterial() == Material.water) { ItemStack loot = this.getRandomLoot(world.rand); if(loot != null) { - EntityItem item = new EntityItem(world, rX + 0.5, rY + 0.5, rZ + 0.5, loot.copy()); - item.motionY = 3; + EntityItemBuoyant item = new EntityItemBuoyant(world, rX + 0.5, rY + 0.5, rZ + 0.5, loot.copy()); + item.motionY = 1; world.spawnEntityInWorld(item); } } diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index acaadd51d..e58761275 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -67,6 +67,7 @@ import com.hbm.inventory.recipes.anvil.AnvilRecipes; import com.hbm.inventory.recipes.loader.SerializableRecipe; import com.hbm.items.ModItems; import com.hbm.items.tool.ItemFertilizer; +import com.hbm.items.weapon.ItemGenericGrenade; import com.hbm.items.ItemAmmoEnums.Ammo4Gauge; import com.hbm.lib.HbmWorld; import com.hbm.lib.Library; @@ -613,6 +614,18 @@ public class MainRegistry { return new EntityGrenadeDynamite(world, position.getX(), position.getY(), position.getZ()); } }); + BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenade_kyiv, new BehaviorProjectileDispense() { + + protected IProjectile getProjectileEntity(World world, IPosition position) { + return new EntityGrenadeImpactGeneric(world, position.getX(), position.getY(), position.getZ()).setType((ItemGenericGrenade) ModItems.grenade_kyiv); + } + }); + BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.stick_dynamite_fishing, new BehaviorProjectileDispense() { + + protected IProjectile getProjectileEntity(World world, IPosition position) { + return new EntityGrenadeImpactGeneric(world, position.getX(), position.getY(), position.getZ()).setType((ItemGenericGrenade) ModItems.stick_dynamite_fishing); + } + }); BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.powder_fertilizer, new BehaviorDefaultDispenseItem() { private boolean dispenseSound = true; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineEPress.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineEPress.java index c99db935b..01ba0af31 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineEPress.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineEPress.java @@ -171,8 +171,8 @@ public class TileEntityMachineEPress extends TileEntityMachineBase implements IE @Override public boolean isItemValidForSlot(int i, ItemStack stack) { - if(stack.getItem() instanceof ItemStamp && i == 1) - return true; + if(stack.getItem() instanceof ItemStamp) + return i == 1; return i == 2; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePress.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePress.java index 1de7e31a5..c049d696e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePress.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePress.java @@ -191,8 +191,8 @@ public class TileEntityMachinePress extends TileEntityMachineBase implements IGU @Override public boolean isItemValidForSlot(int i, ItemStack stack) { - if(stack.getItem() instanceof ItemStamp && i == 1) - return true; + if(stack.getItem() instanceof ItemStamp) + return i == 1; if(TileEntityFurnace.getItemBurnTime(stack) > 0 && i == 0) return true; From 9a1d7c76e8febf16249414b485b329ab283edc93 Mon Sep 17 00:00:00 2001 From: Bob Date: Wed, 24 May 2023 21:46:26 +0200 Subject: [PATCH 060/432] some fixes, tram flatbed wagon --- .../blocks/machine/pile/BlockGraphite.java | 2 +- .../java/com/hbm/entity/EntityMappings.java | 3 +- .../entity/train/TrainCargoTramTrailer.java | 54 ++ .../java/com/hbm/inventory/fluid/Fluids.java | 2 +- .../recipes/CrystallizerRecipes.java | 2 + .../hbm/inventory/recipes/MixerRecipes.java | 2 - .../java/com/hbm/items/special/ItemTrain.java | 16 +- src/main/java/com/hbm/main/ClientProxy.java | 1 + .../java/com/hbm/main/CraftingManager.java | 2 +- .../java/com/hbm/main/ResourceManager.java | 2 + .../item/RenderTrainCargoTramTrailer.java | 41 ++ .../machine/TileEntityCoreEmitter.java | 4 +- .../hbm/models/vehicles/tram_trailer.obj | 561 ++++++++++++++++++ .../hbm/textures/gui/fluids/nitroglycerin.png | Bin 0 -> 717 bytes .../items/train.cargo_tram_trailer.png | Bin 0 -> 164 bytes .../models/tank/tank_NITROGLYCERIN.png | Bin 0 -> 1270 bytes .../textures/models/trains/tram_trailer.png | Bin 0 -> 3204 bytes 17 files changed, 677 insertions(+), 15 deletions(-) create mode 100644 src/main/java/com/hbm/entity/train/TrainCargoTramTrailer.java create mode 100644 src/main/java/com/hbm/render/entity/item/RenderTrainCargoTramTrailer.java create mode 100644 src/main/resources/assets/hbm/models/vehicles/tram_trailer.obj create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/nitroglycerin.png create mode 100644 src/main/resources/assets/hbm/textures/items/train.cargo_tram_trailer.png create mode 100644 src/main/resources/assets/hbm/textures/models/tank/tank_NITROGLYCERIN.png create mode 100644 src/main/resources/assets/hbm/textures/models/trains/tram_trailer.png diff --git a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphite.java b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphite.java index 45ceb6d10..c5018700a 100644 --- a/src/main/java/com/hbm/blocks/machine/pile/BlockGraphite.java +++ b/src/main/java/com/hbm/blocks/machine/pile/BlockGraphite.java @@ -32,7 +32,7 @@ public class BlockGraphite extends BlockFlammable implements IToolable { PacketDispatcher.wrapper.sendToAllAround(new ParticleBurstPacket(x, y, z, Block.getIdFromBlock(this), 0), new TargetPoint(world.provider.dimensionId, x, y, z, 50)); world.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, this.stepSound.func_150496_b(), (this.stepSound.getVolume() + 1.0F) / 2.0F, this.stepSound.getPitch() * 0.8F); - BlockGraphiteRod.ejectItem(world, x, y, z, ForgeDirection.getOrientation(side), new ItemStack(ModItems.powder_coal)); + BlockGraphiteRod.ejectItem(world, x, y, z, ForgeDirection.getOrientation(side), new ItemStack(ModItems.ingot_graphite)); } return true; diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index 8d388474a..fee770026 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -16,7 +16,7 @@ import com.hbm.entity.particle.*; import com.hbm.entity.projectile.*; import com.hbm.entity.train.EntityRailCarBase.BoundingBoxDummyEntity; import com.hbm.entity.train.EntityRailCarRidable.SeatDummyEntity; -import com.hbm.entity.train.TrainCargoTram; +import com.hbm.entity.train.*; import com.hbm.main.MainRegistry; import com.hbm.util.Tuple.Quartet; @@ -218,6 +218,7 @@ public class EntityMappings { addEntity(SeatDummyEntity.class, "entity_ntm_seat_dummy", 250, false); addEntity(BoundingBoxDummyEntity.class, "entity_ntm_bounding_dummy", 250, false); addEntity(TrainCargoTram.class, "entity_ntm_cargo_tram", 250, false); + addEntity(TrainCargoTramTrailer.class, "entity_ntm_cargo_tram_trailer", 250, false); addMob(EntityCreeperNuclear.class, "entity_mob_nuclear_creeper", 0x204131, 0x75CE00); addMob(EntityCreeperTainted.class, "entity_mob_tainted_creeper", 0x813b9b, 0xd71fdd); diff --git a/src/main/java/com/hbm/entity/train/TrainCargoTramTrailer.java b/src/main/java/com/hbm/entity/train/TrainCargoTramTrailer.java new file mode 100644 index 000000000..8ff36ead4 --- /dev/null +++ b/src/main/java/com/hbm/entity/train/TrainCargoTramTrailer.java @@ -0,0 +1,54 @@ +package com.hbm.entity.train; + +import com.hbm.blocks.rail.IRailNTM.TrackGauge; + +import net.minecraft.util.DamageSource; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public class TrainCargoTramTrailer extends EntityRailCarCargo { + + /* + * + * <-- + * + * _O\____________________________________________/O_ + * |____| |____| + * \__________________________________________/ + * '( + )' '( + )' + * + */ + + public TrainCargoTramTrailer(World world) { + super(world); + this.setSize(5F, 2F); + } + + @Override public TrackGauge getGauge() { return TrackGauge.STANDARD; } + @Override public double getLengthSpan() { return 1.5; } + @Override public int getSizeInventory() { return 29; } + @Override public String getInventoryName() { return this.hasCustomInventoryName() ? this.getEntityName() : "container.trainTramTrailer"; } + + @Override + public double getCurrentSpeed() { + return 0; //we'll figure out how linked carts work later on - i hope + } + + @Override + public DummyConfig[] getDummies() { + return new DummyConfig[] { + new DummyConfig(2F, 1F, Vec3.createVectorHelper(0, 0, 1.5)), + new DummyConfig(2F, 1F, Vec3.createVectorHelper(0, 0, 0)), + new DummyConfig(2F, 1F, Vec3.createVectorHelper(0, 0, -1.5)) + }; + } + + @Override + public boolean attackEntityFrom(DamageSource source, float amount) { + if(!this.worldObj.isRemote && !this.isDead) { + this.setDead(); + } + + return true; + } +} diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index b7c73b12e..b39ac64ad 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -276,7 +276,7 @@ public class Fluids { ESTRADIOL = new FluidType("ESTRADIOL", 0xCDD5D8, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID); FISHOIL = new FluidType("FISHOIL", 0x4B4A45, 0, 1, 0, EnumSymbol.NONE).addTraits(LIQUID); SUNFLOWEROIL = new FluidType("SUNFLOWEROIL", 0xCBAD45, 0, 1, 0, EnumSymbol.NONE).addTraits(LIQUID); - NITROGLYCERIN = new FluidType(112, "SUNFLOWEROIL", 0xCBAD45, 0, 4, 0, EnumSymbol.NONE).addTraits(LIQUID); + NITROGLYCERIN = new FluidType(112, "NITROGLYCERIN", 0x92ACA6, 0, 4, 0, EnumSymbol.NONE).addTraits(LIQUID); // ^ ^ ^ ^ ^ ^ ^ ^ //ADD NEW FLUIDS HERE diff --git a/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java b/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java index 7b73f053f..b47ad8804 100644 --- a/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java @@ -143,6 +143,8 @@ public class CrystallizerRecipes extends SerializableRecipe { registerRecipe(new ComparableStack(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.PARAFFIN)), new CrystallizerRecipe(new ItemStack(ModItems.pill_red), 200), new FluidStack(Fluids.ESTRADIOL, 250)); registerRecipe(KEY_SAND, new CrystallizerRecipe(Blocks.clay, 20), new FluidStack(Fluids.COLLOID, 1_000)); + registerRecipe(new ComparableStack(ModBlocks.sand_quartz), new CrystallizerRecipe(new ItemStack(ModItems.ball_dynamite, 16), 20), new FluidStack(Fluids.NITROGLYCERIN, 1_000)); + registerRecipe(NETHERQUARTZ.dust(), new CrystallizerRecipe(new ItemStack(ModItems.ball_dynamite, 4), 20), new FluidStack(Fluids.NITROGLYCERIN, 250)); /// COMPAT CERTUS QUARTZ /// List quartz = OreDictionary.getOres("crystalCertusQuartz"); diff --git a/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java b/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java index d1a12d6f2..e9bcf6ffc 100644 --- a/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java @@ -142,8 +142,6 @@ public class MixerRecipes extends SerializableRecipe { for(MixerRecipe mix : recipes) { writer.beginObject(); - FluidStack output = new FluidStack(rec.getKey(), mix.output); - writer.name("duration").value(mix.processTime); writer.name("outputAmount").value(mix.output); diff --git a/src/main/java/com/hbm/items/special/ItemTrain.java b/src/main/java/com/hbm/items/special/ItemTrain.java index 1a2648d38..05f55231d 100644 --- a/src/main/java/com/hbm/items/special/ItemTrain.java +++ b/src/main/java/com/hbm/items/special/ItemTrain.java @@ -5,6 +5,7 @@ import java.util.List; import com.hbm.blocks.rail.IRailNTM; import com.hbm.entity.train.EntityRailCarBase; import com.hbm.entity.train.TrainCargoTram; +import com.hbm.entity.train.TrainCargoTramTrailer; import com.hbm.items.ItemEnumMulti; import com.hbm.util.EnumUtil; @@ -27,18 +28,19 @@ public class ItemTrain extends ItemEnumMulti { public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { EnumTrainType train = EnumUtil.grabEnumSafely(this.theEnum, stack.getItemDamage()); - list.add(EnumChatFormatting.GREEN + "Engine: " + EnumChatFormatting.RESET + train.engine); + if(train.engine != null) list.add(EnumChatFormatting.GREEN + "Engine: " + EnumChatFormatting.RESET + train.engine); list.add(EnumChatFormatting.GREEN + "Gauge: " + EnumChatFormatting.RESET + train.gauge); - list.add(EnumChatFormatting.GREEN + "Max Speed: " + EnumChatFormatting.RESET + train.maxSpeed); - list.add(EnumChatFormatting.GREEN + "Acceleration: " + EnumChatFormatting.RESET + train.acceleration); - list.add(EnumChatFormatting.GREEN + "Engine Brake Threshold: " + EnumChatFormatting.RESET + train.brakeThreshold); - list.add(EnumChatFormatting.GREEN + "Parking Brake: " + EnumChatFormatting.RESET + train.parkingBrake); + if(train.maxSpeed != null) list.add(EnumChatFormatting.GREEN + "Max Speed: " + EnumChatFormatting.RESET + train.maxSpeed); + if(train.acceleration != null) list.add(EnumChatFormatting.GREEN + "Acceleration: " + EnumChatFormatting.RESET + train.acceleration); + if(train.brakeThreshold != null) list.add(EnumChatFormatting.GREEN + "Engine Brake Threshold: " + EnumChatFormatting.RESET + train.brakeThreshold); + if(train.parkingBrake != null) list.add(EnumChatFormatting.GREEN + "Parking Brake: " + EnumChatFormatting.RESET + train.parkingBrake); } public static enum EnumTrainType { - // Engine Gauge Max Speed Accel. Eng. Brake Parking Brake - CARGO_TRAM(TrainCargoTram.class, "Electric", "Standard Gauge", "10m/s", "0.2m/s", "<1m/s", "Yes"); + // Engine Gauge Max Speed Accel. Eng. Brake Parking Brake + CARGO_TRAM(TrainCargoTram.class, "Electric", "Standard Gauge", "10m/s", "0.2m/s", "<1m/s", "Yes"), + CARGO_TRAM_TRAILER(TrainCargoTramTrailer.class, null, "Standard Gauge", "Yes", null, null, "No"); public Class train; public String engine; diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index c47b1b9e1..a757432e5 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -691,6 +691,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(SeatDummyEntity.class, new RenderEmpty()); RenderingRegistry.registerEntityRenderingHandler(BoundingBoxDummyEntity.class, new RenderEmpty()); RenderingRegistry.registerEntityRenderingHandler(TrainCargoTram.class, new RenderTrainCargoTram()); + RenderingRegistry.registerEntityRenderingHandler(TrainCargoTramTrailer.class, new RenderTrainCargoTramTrailer()); //items RenderingRegistry.registerEntityRenderingHandler(EntityMovingItem.class, new RenderMovingItem()); RenderingRegistry.registerEntityRenderingHandler(EntityMovingPackage.class, new RenderMovingPackage()); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 02ce53a80..7fda63959 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -578,7 +578,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.gun_kit_2, 1), new Object[] { "III", "GLG", "PPP", 'I', ModItems.plate_polymer, 'L', ModItems.ducttape, 'G', ModItems.gun_kit_1, 'P', IRON.plate() }); addRecipeAuto(new ItemStack(ModItems.igniter, 1), new Object[] { " W", "SC", "CE", 'S', STEEL.plate(), 'W', ModItems.wire_schrabidium, 'C', ModItems.circuit_schrabidium, 'E', EUPH.ingot() }); - addRecipeAuto(new ItemStack(ModItems.watch, 1), new Object[] { "LEL", "EWE", "LEL", 'E', EUPH.ingot(), 'L', KEY_BLUE, 'W', Items.clock }); + addRecipeAuto(new ItemStack(ModItems.watch, 1), new Object[] { "LYL", "EWE", "LYL", 'E', EUPH.ingot(), 'L', KEY_BLUE, 'W', Items.clock, 'Y', ModItems.billet_yharonite }); addRecipeAuto(new ItemStack(ModItems.key, 1), new Object[] { " B", " B ", "P ", 'P', STEEL.plate(), 'B', ModItems.bolt_tungsten }); addRecipeAuto(new ItemStack(ModItems.key_kit, 1), new Object[] { "PKP", "DTD", "PKP", 'P', GOLD.plate(), 'K', ModItems.key, 'D', DESH.dust(), 'T', KEY_TOOL_SCREWDRIVER }); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index c947a97be..30f1e2c2e 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -1014,6 +1014,7 @@ public class ResourceManager { public static final IModelCustom cart_destroyer = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vehicles/cart_destroyer.obj")); public static final IModelCustom cart_powder = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vehicles/cart_powder.obj")); public static final IModelCustom train_cargo_tram = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vehicles/tram.obj")); + public static final IModelCustom train_cargo_tram_trailer = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vehicles/tram_trailer.obj")); ////Texture Entities @@ -1288,6 +1289,7 @@ public class ResourceManager { public static final ResourceLocation cart_semtex_side = new ResourceLocation(RefStrings.MODID, "textures/blocks/semtex_side.png"); public static final ResourceLocation cart_semtex_top = new ResourceLocation(RefStrings.MODID, "textures/blocks/semtex_bottom.png"); public static final ResourceLocation train_tram = new ResourceLocation(RefStrings.MODID, "textures/models/trains/tram.png"); + public static final ResourceLocation tram_trailer = new ResourceLocation(RefStrings.MODID, "textures/models/trains/tram_trailer.png"); //ISBRHs public static final IModelCustom scaffold = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/scaffold.obj")); diff --git a/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTramTrailer.java b/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTramTrailer.java new file mode 100644 index 000000000..e0166ac4a --- /dev/null +++ b/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTramTrailer.java @@ -0,0 +1,41 @@ +package com.hbm.render.entity.item; + +import org.lwjgl.opengl.GL11; + +import com.hbm.main.ResourceManager; + +import net.minecraft.client.renderer.entity.Render; +import net.minecraft.entity.Entity; +import net.minecraft.util.ResourceLocation; + +public class RenderTrainCargoTramTrailer extends Render { + + @Override + public void doRender(Entity entity, double x, double y, double z, float swing, float interp) { + GL11.glPushMatrix(); + GL11.glTranslated(x, y, z); + + float yaw = entity.rotationYaw; + float prevYaw = entity.prevRotationYaw; + + if(yaw - prevYaw > 180) yaw -= 360; + if(prevYaw - yaw > 180) prevYaw -= 360; + + float yawInterp = prevYaw + (yaw - prevYaw) * interp - 720; + + GL11.glRotated(-yawInterp, 0, 1, 0); + GL11.glRotated(-entity.rotationPitch, 0, 0, 1); + + GL11.glDisable(GL11.GL_CULL_FACE); + bindTexture(ResourceManager.tram_trailer); + ResourceManager.train_cargo_tram_trailer.renderAll(); + GL11.glEnable(GL11.GL_CULL_FACE); + + GL11.glPopMatrix(); + } + + @Override + protected ResourceLocation getEntityTexture(Entity entity) { + return ResourceManager.tram_trailer; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java index ec4354528..218168090 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java @@ -66,8 +66,6 @@ public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEne watts = MathHelper.clamp_int(watts, 1, 100); long demand = maxPower * watts / 2000; - - tank.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); beam = 0; @@ -175,6 +173,7 @@ public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEne data.setLong("prev", prev); data.setInteger("beam", beam); data.setBoolean("isOn", isOn); + tank.writeToNBT(data, "tank"); this.networkPack(data, 250); } } @@ -186,6 +185,7 @@ public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEne prev = data.getLong("prev"); beam = data.getInteger("beam"); isOn = data.getBoolean("isOn"); + tank.readFromNBT(data, "tank"); } public long getPowerScaled(long i) { diff --git a/src/main/resources/assets/hbm/models/vehicles/tram_trailer.obj b/src/main/resources/assets/hbm/models/vehicles/tram_trailer.obj new file mode 100644 index 000000000..270cdde15 --- /dev/null +++ b/src/main/resources/assets/hbm/models/vehicles/tram_trailer.obj @@ -0,0 +1,561 @@ +# Blender v2.79 (sub 0) OBJ File: 'tram_trailer.blend' +# www.blender.org +o Plane +v -1.000000 0.250000 2.500000 +v 1.000000 0.250000 2.500000 +v -1.000000 0.250000 -2.500000 +v 1.000000 0.250000 -2.500000 +v -1.000000 0.750000 -2.500000 +v -1.000000 0.750000 2.500000 +v 1.000000 0.750000 2.500000 +v 1.000000 0.750000 -2.500000 +v 0.562500 0.375000 2.562500 +v 0.562500 0.875000 2.562500 +v 0.562500 0.375000 2.062500 +v 0.562500 0.875000 2.062500 +v 1.062500 0.375000 2.562500 +v 1.062500 0.875000 2.562500 +v 1.062500 0.375000 2.062500 +v 1.062500 0.875000 2.062500 +v -1.062500 0.375000 2.562500 +v -1.062500 0.875000 2.562500 +v -1.062500 0.375000 2.062500 +v -1.062500 0.875000 2.062500 +v -0.562500 0.375000 2.562500 +v -0.562500 0.875000 2.562500 +v -0.562500 0.375000 2.062500 +v -0.562500 0.875000 2.062500 +v 0.562500 0.375000 -1.812500 +v 0.562500 0.875000 -1.812500 +v 0.562500 0.375000 -2.562500 +v 0.562500 0.875000 -2.562500 +v 1.062500 0.375000 -1.812500 +v 1.062500 0.875000 -1.812500 +v 1.062500 0.375000 -2.562500 +v 1.062500 0.875000 -2.562500 +v -1.062500 0.375000 -1.812500 +v -1.062500 0.875000 -1.812500 +v -1.062500 0.375000 -2.562500 +v -1.062500 0.875000 -2.562500 +v -0.562500 0.375000 -1.812500 +v -0.562500 0.875000 -1.812500 +v -0.562500 0.375000 -2.562500 +v -0.562500 0.875000 -2.562500 +v 0.875000 0.250000 -1.625000 +v 0.750000 0.250000 1.750000 +v 0.750000 0.073223 -1.676777 +v 0.875000 0.250000 -1.250000 +v 0.875000 0.250000 1.750000 +v 0.750000 0.073223 1.323223 +v 0.750000 0.000000 1.500000 +v 0.750000 0.073223 1.676777 +v 0.750000 0.250000 -1.250000 +v 0.750000 0.250000 1.250000 +v 0.875000 0.250000 -1.375000 +v 0.875000 0.073223 -1.323223 +v 0.875000 0.250000 1.250000 +v 0.875000 0.073223 1.323223 +v 0.875000 0.000000 1.500000 +v 0.875000 0.073223 1.676777 +v 0.875000 0.250000 1.625000 +v 0.875000 0.000000 -1.500000 +v 0.875000 0.073223 -1.676777 +v 0.875000 0.250000 -1.750000 +v 0.875000 0.250000 1.375000 +v 0.875000 0.161612 1.411612 +v 0.875000 0.125000 1.500000 +v 0.875000 0.161612 1.588388 +v 0.937500 0.250000 1.625000 +v 0.750000 0.250000 -1.750000 +v 0.750000 0.073223 -1.323223 +v 0.750000 0.000000 -1.500000 +v 0.937500 0.250000 1.375000 +v 0.937500 0.161612 1.411612 +v 0.937500 0.125000 1.500000 +v 0.937500 0.161612 1.588388 +v 0.875000 0.161612 -1.588388 +v 0.875000 0.125000 -1.500000 +v 0.875000 0.161612 -1.411612 +v 0.937500 0.250000 -1.375000 +v 0.937500 0.250000 -1.625000 +v 0.937500 0.161612 -1.588388 +v 0.937500 0.125000 -1.500000 +v 0.937500 0.161612 -1.411612 +v -0.750000 0.250000 2.000000 +v 0.750000 0.250000 2.000000 +v -0.750000 0.250000 -2.000000 +v 0.750000 0.250000 -2.000000 +v -0.750000 0.125000 -1.875000 +v -0.750000 0.125000 1.875000 +v 0.750000 0.125000 1.875000 +v 0.750000 0.125000 -1.875000 +v -0.875000 0.250000 1.625000 +v -0.750000 0.250000 -1.750000 +v -0.750000 0.073223 1.676777 +v -0.875000 0.250000 1.250000 +v -0.875000 0.250000 -1.750000 +v -0.750000 0.073223 -1.323223 +v -0.750000 0.000000 -1.500000 +v -0.750000 0.073223 -1.676777 +v -0.750000 0.250000 1.250000 +v -0.750000 0.250000 -1.250000 +v -0.875000 0.250000 1.375000 +v -0.875000 0.073223 1.323223 +v -0.875000 0.250000 -1.250000 +v -0.875000 0.073223 -1.323223 +v -0.875000 0.000000 -1.500000 +v -0.875000 0.073223 -1.676777 +v -0.875000 0.250000 -1.625000 +v -0.875000 0.000000 1.500000 +v -0.875000 0.073223 1.676777 +v -0.875000 0.250000 1.750000 +v -0.875000 0.250000 -1.375000 +v -0.875000 0.161612 -1.411611 +v -0.875000 0.125000 -1.500000 +v -0.875000 0.161612 -1.588388 +v -0.937500 0.250000 -1.625000 +v -0.750000 0.250000 1.750000 +v -0.750000 0.073223 1.323223 +v -0.750000 0.000000 1.500000 +v -0.937500 0.250000 -1.375000 +v -0.937500 0.161612 -1.411611 +v -0.937500 0.125000 -1.500000 +v -0.937500 0.161612 -1.588388 +v -0.875000 0.161612 1.588389 +v -0.875000 0.125000 1.500000 +v -0.875000 0.161612 1.411612 +v -0.937500 0.250000 1.375000 +v -0.937500 0.250000 1.625000 +v -0.937500 0.161612 1.588389 +v -0.937500 0.125000 1.500000 +v -0.937500 0.161612 1.411612 +vt 0.543210 0.090909 +vt 0.049383 0.454545 +vt 0.049383 0.090909 +vt 0.049383 0.090909 +vt 0.543210 0.454545 +vt 0.049383 0.454545 +vt 0.543210 0.000000 +vt 0.049383 0.000000 +vt 0.049383 0.545455 +vt 0.543210 0.545455 +vt 0.592593 0.454545 +vt 0.543210 0.090909 +vt 0.592593 0.090909 +vt -0.000000 0.090909 +vt -0.000000 0.454545 +vt 0.049383 0.727273 +vt -0.000000 0.636364 +vt 0.049383 0.636364 +vt 0.049383 0.818182 +vt 0.098765 0.909091 +vt 0.049383 0.909091 +vt 0.148148 0.727273 +vt 0.098765 0.636364 +vt 0.148148 0.636364 +vt 0.098765 0.727273 +vt 0.098765 0.545455 +vt 0.049383 0.545455 +vt 0.098765 0.818182 +vt 0.049383 0.727273 +vt -0.000000 0.636364 +vt 0.049383 0.636364 +vt 0.049383 0.818182 +vt 0.098765 0.909091 +vt 0.049383 0.909091 +vt 0.148148 0.727273 +vt 0.098765 0.636364 +vt 0.148148 0.636364 +vt 0.098765 0.727273 +vt 0.098765 0.545455 +vt 0.049383 0.545455 +vt 0.098765 0.818182 +vt 0.345679 0.772727 +vt 0.271605 0.681818 +vt 0.345679 0.681818 +vt 0.271605 0.772727 +vt 0.222222 0.681818 +vt 0.222222 0.772727 +vt 0.148148 0.681818 +vt 0.222222 0.909091 +vt 0.271605 1.000000 +vt 0.222222 1.000000 +vt 0.271605 0.545455 +vt 0.345679 0.772727 +vt 0.271605 0.681818 +vt 0.345679 0.681818 +vt 0.271605 0.772727 +vt 0.222222 0.681818 +vt 0.222222 0.772727 +vt 0.148148 0.681818 +vt 0.222222 0.909091 +vt 0.271605 1.000000 +vt 0.222222 1.000000 +vt 0.271605 0.545455 +vt 0.456790 0.568182 +vt 0.438272 0.590909 +vt 0.438272 0.568182 +vt 0.456790 0.568182 +vt 0.438272 0.590909 +vt 0.438272 0.568182 +vt 0.419210 0.590495 +vt 0.377874 0.558974 +vt 0.394996 0.545918 +vt 0.493827 0.568182 +vt 0.475309 0.590909 +vt 0.475309 0.568182 +vt 0.349457 0.574879 +vt 0.358021 0.568349 +vt 0.366584 0.574879 +vt 0.469136 0.590909 +vt 0.456790 0.590909 +vt 0.419753 0.568182 +vt 0.432099 0.590909 +vt 0.419753 0.590909 +vt 0.469136 0.590909 +vt 0.456790 0.590909 +vt 0.419753 0.568182 +vt 0.432099 0.590909 +vt 0.419753 0.590909 +vt 0.493827 0.568182 +vt 0.475309 0.590909 +vt 0.475309 0.568182 +vt 0.349457 0.574879 +vt 0.358021 0.568349 +vt 0.366584 0.574879 +vt 0.377874 0.558974 +vt 0.394996 0.545918 +vt 0.412118 0.558974 +vt 0.975309 0.022727 +vt 0.604938 0.295455 +vt 0.604938 0.022727 +vt 0.987654 0.295455 +vt 0.987654 0.022727 +vt 0.592593 0.022727 +vt 0.592593 0.295455 +vt 0.592593 0.318182 +vt 0.975309 0.295455 +vt 0.987654 0.318182 +vt 0.987654 0.000000 +vt 0.592593 0.000000 +vt 0.456790 0.568182 +vt 0.438272 0.590909 +vt 0.438272 0.568182 +vt 0.456790 0.568182 +vt 0.438272 0.590909 +vt 0.438272 0.568182 +vt 0.419210 0.590495 +vt 0.377874 0.558974 +vt 0.394996 0.545918 +vt 0.493827 0.568182 +vt 0.475309 0.590909 +vt 0.475309 0.568182 +vt 0.358021 0.568349 +vt 0.366584 0.574879 +vt 0.370132 0.590644 +vt 0.475309 0.568182 +vt 0.456790 0.590909 +vt 0.419753 0.590909 +vt 0.419753 0.568182 +vt 0.456790 0.590909 +vt 0.419753 0.590909 +vt 0.419753 0.568182 +vt 0.493827 0.568182 +vt 0.475309 0.590909 +vt 0.358021 0.568349 +vt 0.366584 0.574879 +vt 0.370132 0.590644 +vt 0.377874 0.558974 +vt 0.394996 0.545918 +vt 0.412118 0.558974 +vt 0.543210 0.454545 +vt -0.000000 0.727273 +vt -0.000000 0.727273 +vt 0.148148 0.772727 +vt 0.271605 0.909091 +vt 0.222222 0.545455 +vt 0.148148 0.772727 +vt 0.271605 0.909091 +vt 0.222222 0.545455 +vt 0.450617 0.590909 +vt 0.450617 0.590909 +vt 0.412118 0.558974 +vt 0.370781 0.590495 +vt 0.487654 0.590909 +vt 0.370132 0.590644 +vt 0.345910 0.590644 +vt 0.487654 0.590909 +vt 0.370132 0.590644 +vt 0.345910 0.590644 +vt 0.419210 0.590495 +vt 0.370781 0.590495 +vt 0.450617 0.590909 +vt 0.450617 0.590909 +vt 0.412118 0.558974 +vt 0.370781 0.590495 +vt 0.487654 0.590909 +vt 0.345910 0.590644 +vt 0.349457 0.574879 +vt 0.469136 0.590909 +vt 0.432099 0.590909 +vt 0.469136 0.590909 +vt 0.432099 0.590909 +vt 0.487654 0.590909 +vt 0.345910 0.590644 +vt 0.349457 0.574879 +vt 0.419210 0.590495 +vt 0.370781 0.590495 +vt 0.475309 0.545455 +vt 0.456790 0.545455 +vt 0.456790 0.602273 +vt 0.438272 0.545455 +vt 0.493827 0.545455 +vt 0.419753 0.602273 +vt 0.475309 0.602273 +vt 0.419753 0.545455 +vt 0.438272 0.602273 +vt 0.438272 0.545455 +vt 0.419753 0.545455 +vt 0.438272 0.602273 +vt 0.475309 0.602273 +vt 0.493827 0.545455 +vt 0.475309 0.545455 +vt 0.456790 0.545455 +vt 0.419753 0.602273 +vt 0.456790 0.602273 +vt 0.475309 0.545455 +vt 0.456790 0.545455 +vt 0.456790 0.602273 +vt 0.438272 0.545455 +vt 0.493827 0.545455 +vt 0.419753 0.602273 +vt 0.475309 0.602273 +vt 0.419753 0.545455 +vt 0.438272 0.602273 +vt 0.438272 0.545455 +vt 0.419753 0.545455 +vt 0.438272 0.602273 +vt 0.475309 0.602273 +vt 0.475309 0.545455 +vt 0.456790 0.545455 +vt 0.419753 0.602273 +vt 0.456790 0.602273 +vt 0.469136 0.602273 +vt 0.432099 0.602273 +vt 0.487654 0.602273 +vt 0.450617 0.602273 +vt 0.450617 0.602273 +vt 0.487654 0.602273 +vt 0.432099 0.602273 +vt 0.469136 0.602273 +vt 0.469136 0.602273 +vt 0.432099 0.602273 +vt 0.487654 0.602273 +vt 0.450617 0.602273 +vt 0.450617 0.602273 +vt 0.487654 0.602273 +vt 0.493827 0.545455 +vt 0.432099 0.602273 +vt 0.469136 0.602273 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 -0.3827 -0.9239 +vn 0.0000 -0.3827 0.9239 +s off +f 3/1/1 2/2/1 1/3/1 +f 7/4/2 5/5/2 6/6/2 +f 4/7/3 7/4/3 2/8/3 +f 1/9/4 5/5/4 3/10/4 +f 3/11/5 8/12/5 4/13/5 +f 2/14/6 6/6/6 1/15/6 +f 10/16/4 11/17/4 9/18/4 +f 12/19/5 15/20/5 11/21/5 +f 16/22/3 13/23/3 15/24/3 +f 14/25/6 9/18/6 13/23/6 +f 15/26/1 9/18/1 11/27/1 +f 12/19/2 14/25/2 16/28/2 +f 18/29/4 19/30/4 17/31/4 +f 20/32/5 23/33/5 19/34/5 +f 24/35/3 21/36/3 23/37/3 +f 22/38/6 17/31/6 21/36/6 +f 23/39/1 17/31/1 19/40/1 +f 20/32/2 22/38/2 24/41/2 +f 26/42/4 27/43/4 25/44/4 +f 28/45/5 31/46/5 27/43/5 +f 32/47/3 29/48/3 31/46/3 +f 30/49/6 25/50/6 29/51/6 +f 31/46/1 25/52/1 27/43/1 +f 28/45/2 30/49/2 32/47/2 +f 34/53/4 35/54/4 33/55/4 +f 36/56/5 39/57/5 35/54/5 +f 40/58/3 37/59/3 39/57/3 +f 38/60/6 33/61/6 37/62/6 +f 39/57/1 33/63/1 35/54/1 +f 36/56/2 38/60/2 40/58/2 +f 58/64/3 75/65/3 52/66/3 +f 55/67/3 64/68/3 56/69/3 +f 49/70/4 43/71/4 68/72/4 +f 53/73/3 62/74/3 54/75/3 +f 80/76/3 79/77/3 78/78/3 +f 58/64/3 73/79/3 74/80/3 +f 45/81/3 64/82/3 57/83/3 +f 55/67/3 62/84/3 63/85/3 +f 44/86/3 75/87/3 51/88/3 +f 60/89/3 73/90/3 59/91/3 +f 72/92/3 71/93/3 70/94/3 +f 46/95/4 47/96/4 48/97/4 +f 85/98/1 87/99/1 86/100/1 +f 84/101/7 85/98/7 83/102/7 +f 81/103/8 87/99/8 82/104/8 +f 82/105/3 88/106/3 84/107/3 +f 83/108/4 86/100/4 81/109/4 +f 106/110/4 123/111/4 100/112/4 +f 103/113/4 112/114/4 104/115/4 +f 97/116/3 91/117/3 116/118/3 +f 101/119/4 110/120/4 102/121/4 +f 127/122/4 126/123/4 125/124/4 +f 107/125/4 122/126/4 106/110/4 +f 104/115/4 105/127/4 93/128/4 +f 102/121/4 111/129/4 103/113/4 +f 100/112/4 99/130/4 92/131/4 +f 108/132/4 121/133/4 107/125/4 +f 119/134/4 118/135/4 117/136/4 +f 94/137/3 95/138/3 96/139/3 +f 3/1/1 4/140/1 2/2/1 +f 7/4/2 8/12/2 5/5/2 +f 4/7/3 8/12/3 7/4/3 +f 1/9/4 6/6/4 5/5/4 +f 3/11/5 5/5/5 8/12/5 +f 2/14/6 7/4/6 6/6/6 +f 10/16/4 12/141/4 11/17/4 +f 12/19/5 16/28/5 15/20/5 +f 16/22/3 14/25/3 13/23/3 +f 14/25/6 10/16/6 9/18/6 +f 15/26/1 13/23/1 9/18/1 +f 12/19/2 10/16/2 14/25/2 +f 18/29/4 20/142/4 19/30/4 +f 20/32/5 24/41/5 23/33/5 +f 24/35/3 22/38/3 21/36/3 +f 22/38/6 18/29/6 17/31/6 +f 23/39/1 21/36/1 17/31/1 +f 20/32/2 18/29/2 22/38/2 +f 26/42/4 28/45/4 27/43/4 +f 28/45/5 32/47/5 31/46/5 +f 32/47/3 30/143/3 29/48/3 +f 30/49/6 26/144/6 25/50/6 +f 31/46/1 29/145/1 25/52/1 +f 28/45/2 26/144/2 30/49/2 +f 34/53/4 36/56/4 35/54/4 +f 36/56/5 40/58/5 39/57/5 +f 40/58/3 38/146/3 37/59/3 +f 38/60/6 34/147/6 33/61/6 +f 39/57/1 37/148/1 33/63/1 +f 36/56/2 34/147/2 38/60/2 +f 58/64/3 74/149/3 75/65/3 +f 55/67/3 63/150/3 64/68/3 +f 68/72/4 67/151/4 49/70/4 +f 49/70/4 66/152/4 43/71/4 +f 53/73/3 61/153/3 62/74/3 +f 77/154/3 76/155/3 78/78/3 +f 76/155/3 80/76/3 78/78/3 +f 58/64/3 59/91/3 73/79/3 +f 45/81/3 56/69/3 64/82/3 +f 55/67/3 54/75/3 62/84/3 +f 44/86/3 52/66/3 75/87/3 +f 60/89/3 41/156/3 73/90/3 +f 69/157/3 65/158/3 70/94/3 +f 65/158/3 72/92/3 70/94/3 +f 42/159/4 50/160/4 48/97/4 +f 50/160/4 46/95/4 48/97/4 +f 85/98/1 88/106/1 87/99/1 +f 84/101/7 88/106/7 85/98/7 +f 81/103/8 86/100/8 87/99/8 +f 82/105/3 87/99/3 88/106/3 +f 83/108/4 85/98/4 86/100/4 +f 106/110/4 122/161/4 123/111/4 +f 103/113/4 111/162/4 112/114/4 +f 116/118/3 115/163/3 97/116/3 +f 97/116/3 114/164/3 91/117/3 +f 101/119/4 109/165/4 110/120/4 +f 125/124/4 124/166/4 128/167/4 +f 128/167/4 127/122/4 125/124/4 +f 107/125/4 121/168/4 122/126/4 +f 104/115/4 112/169/4 105/127/4 +f 102/121/4 110/170/4 111/129/4 +f 100/112/4 123/171/4 99/130/4 +f 108/132/4 89/172/4 121/133/4 +f 117/136/4 113/173/4 120/174/4 +f 120/174/4 119/134/4 117/136/4 +f 90/175/3 98/176/3 96/139/3 +f 98/176/3 94/137/3 96/139/3 +s 1 +f 46/177/7 55/67/1 47/178/1 +f 73/79/7 79/179/1 74/80/1 +f 47/178/1 56/69/8 48/180/8 +f 50/181/9 54/75/7 46/177/7 +f 75/87/8 76/182/10 51/88/10 +f 41/156/9 78/183/7 73/90/7 +f 48/180/8 45/81/10 42/184/10 +f 74/149/1 80/185/8 75/65/8 +f 67/186/8 44/86/10 49/187/10 +f 63/150/1 72/188/8 64/68/8 +f 61/153/9 70/189/7 62/74/7 +f 66/190/9 59/91/7 43/191/7 +f 68/192/1 52/66/8 67/186/8 +f 64/82/8 65/193/10 57/83/10 +f 62/84/7 71/194/1 63/85/1 +f 43/191/7 58/64/1 68/192/1 +f 94/195/8 103/113/1 95/196/1 +f 121/168/8 127/197/1 122/126/1 +f 95/196/1 104/115/7 96/198/7 +f 98/199/10 102/121/8 94/195/8 +f 123/171/7 124/200/9 99/130/9 +f 89/172/10 126/201/8 121/133/8 +f 90/202/9 104/115/7 93/128/9 +f 122/161/1 128/203/7 123/111/7 +f 115/204/7 92/131/9 97/205/9 +f 111/162/1 120/206/7 112/114/7 +f 109/165/10 118/207/8 110/120/8 +f 91/208/8 108/132/10 107/125/8 +f 116/209/1 100/112/7 115/204/7 +f 112/169/7 113/210/9 105/127/9 +f 110/170/8 119/211/1 111/129/1 +f 91/208/8 106/110/1 116/209/1 +f 46/177/7 54/75/7 55/67/1 +f 73/79/7 78/212/7 79/179/1 +f 47/178/1 55/67/1 56/69/8 +f 50/181/9 53/73/9 54/75/7 +f 75/87/8 80/213/8 76/182/10 +f 41/156/9 77/214/9 78/183/7 +f 48/180/8 56/69/8 45/81/10 +f 74/149/1 79/215/1 80/185/8 +f 67/186/8 52/66/8 44/86/10 +f 63/150/1 71/216/1 72/188/8 +f 61/153/9 69/217/9 70/189/7 +f 66/190/9 60/89/9 59/91/7 +f 68/192/1 58/64/1 52/66/8 +f 64/82/8 72/218/8 65/193/10 +f 62/84/7 70/219/7 71/194/1 +f 43/191/7 59/91/7 58/64/1 +f 94/195/8 102/121/8 103/113/1 +f 121/168/8 126/220/8 127/197/1 +f 95/196/1 103/113/1 104/115/7 +f 98/199/10 101/119/10 102/121/8 +f 123/171/7 128/221/7 124/200/9 +f 89/172/10 125/222/10 126/201/8 +f 90/202/9 96/198/7 104/115/7 +f 122/161/1 127/223/1 128/203/7 +f 115/204/7 100/112/7 92/131/9 +f 111/162/1 119/224/1 120/206/7 +f 109/165/10 117/225/10 118/207/8 +f 91/208/8 114/226/10 108/132/10 +f 116/209/1 106/110/1 100/112/7 +f 112/169/7 120/227/7 113/210/9 +f 110/170/8 118/228/8 119/211/1 +f 91/208/8 107/125/8 106/110/1 diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/nitroglycerin.png b/src/main/resources/assets/hbm/textures/gui/fluids/nitroglycerin.png new file mode 100644 index 0000000000000000000000000000000000000000..7ce1380945b234ae9af1f9acb4a81298cd95d063 GIT binary patch literal 717 zcmV;;0y6!HP)4c`%e2l`x4vit89}d zRhqX)&T5BF3A2G&|BnhJHI-GN? zRx7mD>~=enBq2!>q?9P726uH`vtF+O=(>&&0#Q{}gM&DZ5km0!`AJa}G);pLf+&gr zXqsk-m!>HIkq`o<6kXS`-EJ9=$K2iBQI;jwc*Yon5C9lsI2;aWt*NRCF_}!zS~HnU zhGXD=F|sV9ZCjL5IOj;y6k`lpYlIMjzVA^=vDs`0At0rsX&Rh!%;$525R_$!b8dL< zRYg%0#Bn@Srj#O0Qx=N_Wm)p_^1^<<$9vE5c*J{;a}FWIFSXY4@$o^^G_-At_a194 zbzPI^IYJ2D-rhK$&rGLNk|aTE4Zw1_Bs!f=NGWm7adUHna}Mu4Ns@3notRFi)OF3% z(-Viof$#5coO4JiIh{_(-~Rah&kzE$*^JR>L=;8L=X2V&C4|6uJSI(3&gV0;*^Kdc zjFgfniun2YL5xNtmdho5-(!s7_VyNludgriJO{v9JM8xR{m{U4IwiWlzb8o&oO2uw z2e#WS>-Czh>)7pfWLY*qV~nBeI=uH(RrRZdrfKlrbBz&25zo)hR8>WmWms#GQX-|K z>pF^}Kq*C*WkgX#6vr`b+oH9mZCe(L1=d<7lL^+^fdQoyMNtf>XIVxF0TDvLT8q}2 z5CQ;so>SNLl{5e@mkY12ue`s%18_VZ5kl}E(CR*J=~&V!00000NkvXXu0mjfFx|?tEx|@A24sW_!&ieBS=&U42)Fq~Pc4zbBsCf0OZ*k345khgbm68U{~S KKbLh*2~7YrGdzm` literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/tank/tank_NITROGLYCERIN.png b/src/main/resources/assets/hbm/textures/models/tank/tank_NITROGLYCERIN.png new file mode 100644 index 0000000000000000000000000000000000000000..afc63209a6ca3629de1519efb4050906a259f768 GIT binary patch literal 1270 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 qEUm`HGQHo-@|rip Date: Thu, 25 May 2023 16:01:00 +0200 Subject: [PATCH 061/432] preparation for train coupling --- .../hbm/entity/train/EntityRailCarBase.java | 62 +++++++++++++++---- .../entity/train/EntityRailCarRidable.java | 22 +++---- .../entity/item/RenderTrainCargoTram.java | 13 ++++ 3 files changed, 73 insertions(+), 24 deletions(-) diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java index 008ed2e78..f816f07bd 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java @@ -20,6 +20,7 @@ public abstract class EntityRailCarBase extends Entity { public boolean isOnRail = true; private int turnProgress; + /* Clientside position that should be approached with smooth interpolation */ private double trainX; private double trainY; private double trainZ; @@ -29,6 +30,16 @@ public abstract class EntityRailCarBase extends Entity { @SideOnly(Side.CLIENT) private double velocityX; @SideOnly(Side.CLIENT) private double velocityY; @SideOnly(Side.CLIENT) private double velocityZ; + /* "Actual" position with offset directly between the front and back pos, won't match the standard position on curves */ + public double lastRenderX; + public double lastRenderY; + public double lastRenderZ; + public double renderX; + public double renderY; + public double renderZ; + + public EntityRailCarBase coupledFront; + public EntityRailCarBase coupledBack; public boolean initDummies = false; public BoundingBoxDummyEntity[] dummies = new BoundingBoxDummyEntity[0]; @@ -40,21 +51,15 @@ public abstract class EntityRailCarBase extends Entity { @Override protected void entityInit() { } @Override protected void readEntityFromNBT(NBTTagCompound nbt) { } @Override protected void writeEntityToNBT(NBTTagCompound nbt) { } - - /*@Override - public boolean canBePushed() { - return true; - } - - @Override - public boolean canBeCollidedWith() { - return !this.isDead; - }*/ @Override public void onUpdate() { if(this.worldObj.isRemote) { + + this.prevPosX = this.posX; + this.prevPosY = this.posY; + this.prevPosZ = this.posZ; if(this.turnProgress > 0) { this.prevRotationYaw = this.rotationYaw; @@ -71,6 +76,21 @@ public abstract class EntityRailCarBase extends Entity { this.setPosition(this.posX, this.posY, this.posZ); this.setRotation(this.rotationYaw, this.rotationPitch); } + + BlockPos anchor = this.getCurentAnchorPos(); + Vec3 frontPos = getRelPosAlongRail(anchor, this.getLengthSpan()); + Vec3 backPos = getRelPosAlongRail(anchor, -this.getLengthSpan()); + + this.lastRenderX = this.renderX; + this.lastRenderY = this.renderY; + this.lastRenderZ = this.renderZ; + + if(frontPos != null && backPos != null) { + this.renderX = (frontPos.xCoord + backPos.xCoord) / 2D; + this.renderY = (frontPos.yCoord + backPos.yCoord) / 2D; + this.renderZ = (frontPos.zCoord + backPos.zCoord) / 2D; + } + } else { DummyConfig[] definitions = this.getDummies(); @@ -109,6 +129,9 @@ public abstract class EntityRailCarBase extends Entity { this.derail(); return; } else { + this.renderX = (frontPos.xCoord + backPos.xCoord) / 2D; + this.renderY = (frontPos.yCoord + backPos.yCoord) / 2D; + this.renderZ = (frontPos.zCoord + backPos.zCoord) / 2D; this.prevRotationYaw = this.rotationYaw; this.rotationYaw = this.movementYaw = generateYaw(frontPos, backPos); this.motionX = this.rotationYaw / 360D; // hijacking this crap for easy syncing @@ -121,9 +144,9 @@ public abstract class EntityRailCarBase extends Entity { BoundingBoxDummyEntity dummy = dummies[i]; Vec3 rot = Vec3.createVectorHelper(def.offset.xCoord, def.offset.yCoord, def.offset.zCoord); rot.rotateAroundY((float) (-this.rotationYaw * Math.PI / 180)); - double x = posX + rot.xCoord; - double y = posY + rot.yCoord; - double z = posZ + rot.zCoord; + double x = renderX + rot.xCoord; + double y = renderY + rot.yCoord; + double z = renderZ + rot.zCoord; dummy.setSize(def.width, def.height); // TEMP dummy.setPosition(x, y, z); } @@ -319,4 +342,17 @@ public abstract class EntityRailCarBase extends Entity { this.offset = offset; } } + + public static enum TrainCoupling { + FRONT, + BACK + } + + public Vec3 getCouplingPos(TrainCoupling coupling) { + return null; + } + + public EntityRailCarBase getCoupledTo(TrainCoupling coupling) { + return coupling == TrainCoupling.FRONT ? this.coupledFront : coupling == TrainCoupling.BACK ? this.coupledBack : null; + } } diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java b/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java index f49a95c45..272fa431b 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java @@ -90,8 +90,8 @@ public abstract class EntityRailCarRidable extends EntityRailCarCargo { if(passengerSeats[i] != null) continue; seat.rotateAroundY((float) (-this.rotationYaw * Math.PI / 180)); - double x = posX + seat.xCoord; - double z = posZ + seat.zCoord; + double x = renderX + seat.xCoord; + double z = renderZ + seat.zCoord; double deltaX = player.posX - x; double deltaZ = player.posZ - z; @@ -108,8 +108,8 @@ public abstract class EntityRailCarRidable extends EntityRailCarCargo { if(this.riddenByEntity == null) { Vec3 seat = getRiderSeatPosition(); seat.rotateAroundY((float) (-this.rotationYaw * Math.PI / 180)); - double x = posX + seat.xCoord; - double z = posZ + seat.zCoord; + double x = renderX + seat.xCoord; + double z = renderZ + seat.zCoord; double deltaX = player.posX - x; double deltaZ = player.posZ - z; @@ -131,9 +131,9 @@ public abstract class EntityRailCarRidable extends EntityRailCarCargo { SeatDummyEntity dummySeat = new SeatDummyEntity(worldObj, this); Vec3 passengerSeat = this.getPassengerSeats()[nearestSeat]; passengerSeat.rotateAroundY((float) (-this.rotationYaw * Math.PI / 180)); - double x = posX + passengerSeat.xCoord; - double y = posY + passengerSeat.yCoord; - double z = posZ + passengerSeat.zCoord; + double x = renderX + passengerSeat.xCoord; + double y = renderY + passengerSeat.yCoord; + double z = renderZ + passengerSeat.zCoord; dummySeat.setPosition(x, y - 1, z); passengerSeats[nearestSeat] = dummySeat; worldObj.spawnEntityInWorld(dummySeat); @@ -160,9 +160,9 @@ public abstract class EntityRailCarRidable extends EntityRailCarCargo { } else { Vec3 rot = seats[i]; rot.rotateAroundY((float) (-this.rotationYaw * Math.PI / 180)); - double x = posX + rot.xCoord; - double y = posY + rot.yCoord; - double z = posZ + rot.zCoord; + double x = renderX + rot.xCoord; + double y = renderY + rot.yCoord; + double z = renderZ + rot.zCoord; seat.setPosition(x, y - 1, z); } } @@ -177,7 +177,7 @@ public abstract class EntityRailCarRidable extends EntityRailCarCargo { offset.rotateAroundY((float) (-this.rotationYaw * Math.PI / 180)); if(this.riddenByEntity != null) { - this.riddenByEntity.setPosition(this.posX + offset.xCoord, this.posY + offset.yCoord, this.posZ + offset.zCoord); + this.riddenByEntity.setPosition(this.renderX + offset.xCoord, this.renderY + offset.yCoord, this.renderZ + offset.zCoord); } } diff --git a/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTram.java b/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTram.java index 8e097ac2b..7f50e2bef 100644 --- a/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTram.java +++ b/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTram.java @@ -2,6 +2,7 @@ package com.hbm.render.entity.item; import org.lwjgl.opengl.GL11; +import com.hbm.entity.train.EntityRailCarBase; import com.hbm.main.ResourceManager; import net.minecraft.client.renderer.entity.Render; @@ -13,6 +14,18 @@ public class RenderTrainCargoTram extends Render { @Override public void doRender(Entity entity, double x, double y, double z, float swing, float interp) { GL11.glPushMatrix(); + + EntityRailCarBase train = (EntityRailCarBase) entity; + double iX = train.prevPosX + (train.posX - train.prevPosX) * interp; + double iY = train.prevPosY + (train.posY - train.prevPosY) * interp; + double iZ = train.prevPosZ + (train.posZ - train.prevPosZ) * interp; + double rX = train.lastRenderX + (train.renderX - train.lastRenderX) * interp; + double rY = train.lastRenderY + (train.renderY - train.lastRenderY) * interp; + double rZ = train.lastRenderZ + (train.renderZ - train.lastRenderZ) * interp; + x -= iX - rX; + y -= iY - rY; + z -= iZ - rZ; + GL11.glTranslated(x, y, z); float yaw = entity.rotationYaw; From 2512ed91511485ad56fec156daf7b543410a284d Mon Sep 17 00:00:00 2001 From: burningwater202 Date: Thu, 25 May 2023 21:37:41 -0400 Subject: [PATCH 062/432] Laminate Glass (real) At long last. Adds: Laminate Glass Recipe is 250mb BTX + 250mb Phosgene + 4 Tungsten Bolts + 1 Reinforced Glass Will add later: -Laminate Panes -3 to 4 cracked laminate types (meta) --- src/main/java/com/hbm/blocks/ModBlocks.java | 5 +- .../inventory/recipes/ChemplantRecipes.java | 10 + src/main/resources/assets/hbm/lang/en_US.lang | 316 +++++++++--------- .../blocks/glass/reinforced_glass.png | Bin 0 -> 206 bytes .../blocks/glass/reinforced_glass_ct.png | Bin 0 -> 192 bytes .../textures/blocks/reinforced_laminate.png | Bin 0 -> 206 bytes .../blocks/reinforced_laminate_ct.png | Bin 0 -> 192 bytes .../hbm/textures/items/chem_icon_LAMINATE.png | Bin 0 -> 367 bytes 8 files changed, 173 insertions(+), 158 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/blocks/glass/reinforced_glass.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/glass/reinforced_glass_ct.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/reinforced_laminate.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/reinforced_laminate_ct.png create mode 100644 src/main/resources/assets/hbm/textures/items/chem_icon_LAMINATE.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 0397a6f6e..3b3611da3 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -315,6 +315,7 @@ public class ModBlocks { public static Block reinforced_sand; public static Block reinforced_lamp_off; public static Block reinforced_lamp_on; + public static Block reinforced_laminate; public static Block lamp_tritium_green_off; public static Block lamp_tritium_green_on; @@ -1492,7 +1493,8 @@ public class ModBlocks { reinforced_sand = new BlockGeneric(Material.rock).setBlockName("reinforced_sand").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(400.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_sand"); reinforced_lamp_off = new ReinforcedLamp(Material.rock, false).setBlockName("reinforced_lamp_off").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(300.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_lamp_off"); reinforced_lamp_on = new ReinforcedLamp(Material.rock, true).setBlockName("reinforced_lamp_on").setHardness(15.0F).setResistance(300.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_lamp_on"); - + reinforced_laminate = new BlockNTMGlassCT(1, RefStrings.MODID + ":reinforced_laminate", Material.rock).setBlockName("reinforced_laminate").setCreativeTab(MainRegistry.blockTab).setLightOpacity(0).setHardness(15.0F).setResistance(1000.0F); + lamp_tritium_green_off = new ReinforcedLamp(Material.redstoneLight, false).setBlockName("lamp_tritium_green_off").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":lamp_tritium_green_off"); lamp_tritium_green_on = new ReinforcedLamp(Material.redstoneLight, true).setBlockName("lamp_tritium_green_on").setStepSound(Block.soundTypeGlass).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":lamp_tritium_green_on"); lamp_tritium_blue_off = new ReinforcedLamp(Material.redstoneLight, false).setBlockName("lamp_tritium_blue_off").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":lamp_tritium_blue_off"); @@ -2629,6 +2631,7 @@ public class ModBlocks { GameRegistry.registerBlock(reinforced_sand, ItemBlockBlastInfo.class, reinforced_sand.getUnlocalizedName()); GameRegistry.registerBlock(reinforced_lamp_off, ItemBlockBlastInfo.class, reinforced_lamp_off.getUnlocalizedName()); GameRegistry.registerBlock(reinforced_lamp_on, ItemBlockBlastInfo.class, reinforced_lamp_on.getUnlocalizedName()); + GameRegistry.registerBlock(reinforced_laminate, ItemBlockBlastInfo.class, reinforced_laminate.getUnlocalizedName()); //Bricks GameRegistry.registerBlock(reinforced_stone, ItemBlockBlastInfo.class, reinforced_stone.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java index 57bad806d..a84dc1bf6 100644 --- a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java @@ -114,6 +114,16 @@ public class ChemplantRecipes extends SerializableRecipe { new FluidStack(Fluids.XYLENE, 500), new FluidStack(Fluids.OXYGEN, 100)) .outputItems(new ItemStack(ModItems.ingot_pet)));*/ + + //Laminate Glass going here + recipes.add(new ChemRecipe(97, "LAMINATE", 100) + .inputFluids( + new FluidStack(Fluids.XYLENE, 250), + new FluidStack(Fluids.PHOSGENE, 250)) + .inputItems( + new ComparableStack(com.hbm.blocks.ModBlocks.reinforced_glass), + new ComparableStack(com.hbm.items.ModItems.bolt_tungsten, 4)) + .outputItems(new ItemStack(com.hbm.blocks.ModBlocks.reinforced_laminate))); recipes.add(new ChemRecipe(94, "PC", 100) .inputFluids( new FluidStack(Fluids.XYLENE, 500), diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index e2b518d48..96fc869ad 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -120,7 +120,7 @@ achievement.technetium.desc=It's medicinal, it's medicinal! achievement.technetium=Big Man, Pig Man achievement.watzBoom.desc=Drain your septic tank next time. achievement.watzBoom=Disgusting -achievement.watz.desc=Fólkvangr fields possibly included. +achievement.watz.desc=Fólkvangr fields possibly included. achievement.watz=The Power of Element-126 achievement.witchtaunter.desc=Those wacky creatures got nothing on you! achievement.witchtaunter=Witch Taunter @@ -194,129 +194,129 @@ book.test.page1=Test Page 1 book.error.cover=Hadron Collider:$Troubleshooting book.error.title1=Error 0x01 [NC] -book.error.page1=§lName:§r "ERROR_NO_CHARGE" §lDescription:§r The particle has reached a segment with insufficient charge. §lPotential fix:§r Either replace one of the plugs that the particle successfully passes with higher-tier ones or add another plug slightly before the segment where the particle expires. +book.error.page1=§lName:§r "ERROR_NO_CHARGE" §lDescription:§r The particle has reached a segment with insufficient charge. §lPotential fix:§r Either replace one of the plugs that the particle successfully passes with higher-tier ones or add another plug slightly before the segment where the particle expires. book.error.title2=Error 0x02 [NA] -book.error.page2=§lName:§r "ERROR_NO_ANALYSIS" §lDescription:§r The particle has reached the core, despite not passing an analysis chamber. §lPotential fix:§r Make sure that your accelerator has an analysis chamber and double-check the operating mode (linear/circular). +book.error.page2=§lName:§r "ERROR_NO_ANALYSIS" §lDescription:§r The particle has reached the core, despite not passing an analysis chamber. §lPotential fix:§r Make sure that your accelerator has an analysis chamber and double-check the operating mode (linear/circular). book.error.title3=Error 0x03 [OC] -book.error.page3=§lName:§r "ERROR_OBSTRUCTED_CHANNEL" §lDescription:§r The particle has collided with a block inside the collider's channel. §lPotential fix:§r Make sure that the inside of your particle collider is free of any obstructions, except for particle diodes and core blocks. +book.error.page3=§lName:§r "ERROR_OBSTRUCTED_CHANNEL" §lDescription:§r The particle has collided with a block inside the collider's channel. §lPotential fix:§r Make sure that the inside of your particle collider is free of any obstructions, except for particle diodes and core blocks. book.error.title4=Error 0x04 [EC] -book.error.page4=§lName:§r "ERROR_EXPECTED_COIL" §lDescription:§r The particle has passed a segment that lacks one or multiple coils. §lPotential fix:§r Remove the plating of the collider in the offending area and check if all the coils are there. This error will also happen at T-crossings that are built without diodes. +book.error.page4=§lName:§r "ERROR_EXPECTED_COIL" §lDescription:§r The particle has passed a segment that lacks one or multiple coils. §lPotential fix:§r Remove the plating of the collider in the offending area and check if all the coils are there. This error will also happen at T-crossings that are built without diodes. book.error.title5=Error 0x05 [MS] -book.error.page5=§lName:§r "ERROR_MALFORMED_SEGMENT" §lDescription:§r The particle has passed a segment that was built incorrectly (but neither obstructed nor missing coils). §lPotential fix:§r Make sure that the offending segment has platings in all the required spaces, leaving no coils exposed. +book.error.page5=§lName:§r "ERROR_MALFORMED_SEGMENT" §lDescription:§r The particle has passed a segment that was built incorrectly (but neither obstructed nor missing coils). §lPotential fix:§r Make sure that the offending segment has platings in all the required spaces, leaving no coils exposed. book.error.title6=Error 0x06 [ATL] -book.error.page6=§lName:§r "ERROR_ANALYSIS_TOO_LONG" §lDescription:§r The particle has passed more than the three required valid analysis chamber segments. §lPotential fix:§r Make sure that the analysis chamber is exactly 3 blocks long for circular accelerator and at least 2 blocks long for linear ones. Also check if the particle doesn't pass multiple analysis chambers in a branching and/or looped accelerator. +book.error.page6=§lName:§r "ERROR_ANALYSIS_TOO_LONG" §lDescription:§r The particle has passed more than the three required valid analysis chamber segments. §lPotential fix:§r Make sure that the analysis chamber is exactly 3 blocks long for circular accelerator and at least 2 blocks long for linear ones. Also check if the particle doesn't pass multiple analysis chambers in a branching and/or looped accelerator. book.error.title7=Error 0x07 [ATS] -book.error.page7=§lName:§r "ERROR_ANALYSIS_TOO_SHORT" §lDescription:§r The particle has left the analysis chamber, despite not meeting the length requirement. §lPotential fix:§r Make sure that the analysis chamber on your circular accelerator is exactly 3 blocks long. Valid analysis segments have no coils and the plating is entirely composed of analysis chamber walls/windows. Analysis chambers with coils in them count as regular segments. +book.error.page7=§lName:§r "ERROR_ANALYSIS_TOO_SHORT" §lDescription:§r The particle has left the analysis chamber, despite not meeting the length requirement. §lPotential fix:§r Make sure that the analysis chamber on your circular accelerator is exactly 3 blocks long. Valid analysis segments have no coils and the plating is entirely composed of analysis chamber walls/windows. Analysis chambers with coils in them count as regular segments. book.error.title8=Error 0x08 [DC] -book.error.page8=§lName:§r "ERROR_DIODE_COLLISION" §lDescription:§r The particle collided with a non-input side of a schottky particle diode. §lPotential fix:§r Check if your diodes are configured correctly. Particles can only enter the diode from sides with green inward-pointing arrows. +book.error.page8=§lName:§r "ERROR_DIODE_COLLISION" §lDescription:§r The particle collided with a non-input side of a schottky particle diode. §lPotential fix:§r Check if your diodes are configured correctly. Particles can only enter the diode from sides with green inward-pointing arrows. book.error.title9=Error 0x09 [BT] -book.error.page9=§lName:§r "ERROR_BRANCHING_TURN" §lDescription:§r The particle has reached a turn with multiple exits. §lPotential fix:§r If your turn is a normal one, check if all the required coils are present (i.e. no holes in the coil layer). If the turn is intended to be branched, it requires a schottky particle diode that is correctly configured. +book.error.page9=§lName:§r "ERROR_BRANCHING_TURN" §lDescription:§r The particle has reached a turn with multiple exits. §lPotential fix:§r If your turn is a normal one, check if all the required coils are present (i.e. no holes in the coil layer). If the turn is intended to be branched, it requires a schottky particle diode that is correctly configured. book.rbmk.cover=My first RBMK:$Basics of$building a$reactor book.rbmk.title1=Introduction -book.rbmk.page1=§lRBMK§r is fully modular nuclear reactor. Unlike most other reactors, there is no "core" and no size restrictions, rather behavior and efficiency of reactor depends on how it is built and how various parts interact with each other. +book.rbmk.page1=§lRBMK§r is fully modular nuclear reactor. Unlike most other reactors, there is no "core" and no size restrictions, rather behavior and efficiency of reactor depends on how it is built and how various parts interact with each other. book.rbmk.title2=Heat -book.rbmk.page2=As reactor runs, it will generate §lheat§r. Heat will spread between parts, slowly decreasing in the process. The goal is to generate as much heat as possible without melting the reactor, and to transfer heat into steam passages that cool reactor and produce steam. +book.rbmk.page2=As reactor runs, it will generate §lheat§r. Heat will spread between parts, slowly decreasing in the process. The goal is to generate as much heat as possible without melting the reactor, and to transfer heat into steam passages that cool reactor and produce steam. book.rbmk.title3=Fuel Rod -book.rbmk.page3=The §lfuel rod§r will capture neutron flux, causing fuel inside the rod to react, releasing neutrons in the process. Neutrons are released in all four main directions with a maximum range of 5 blocks. The amount of released neutrons depends on fuel used. +book.rbmk.page3=The §lfuel rod§r will capture neutron flux, causing fuel inside the rod to react, releasing neutrons in the process. Neutrons are released in all four main directions with a maximum range of 5 blocks. The amount of released neutrons depends on fuel used. book.rbmk.title4=Regulating Rod -book.rbmk.page4=The §lcontrol rod§r will reduce number of neutrons passing through. Fully inserted, it will block all neutrons; when inserted halfway, it will only block half. Control rods are used to regulate activity of the reactor and shut it down. +book.rbmk.page4=The §lcontrol rod§r will reduce number of neutrons passing through. Fully inserted, it will block all neutrons; when inserted halfway, it will only block half. Control rods are used to regulate activity of the reactor and shut it down. book.rbmk.title5=Regulating Rods - Usage book.rbmk.title5.scale=0.9 -book.rbmk.page5=The current bar insertion will be displayed in the center of GUI. The colored buttons on left will add the control bar to the color group, which is useful for quickly selecting grouped bars on §lRBMK§r console. The buttons on right allow you to manually insert in 25%% increments. +book.rbmk.page5=The current bar insertion will be displayed in the center of GUI. The colored buttons on left will add the control bar to the color group, which is useful for quickly selecting grouped bars on §lRBMK§r console. The buttons on right allow you to manually insert in 25%% increments. book.rbmk.title6=Automatic Control Rods -book.rbmk.page6=§LAutomatic control rods§r are almost identical to regular control rods, but they cannot be manually adjusted, instead they will adjust position of the rod based on current temperature. Which function to use and how deep to insert and at what temperature must be determined first. +book.rbmk.page6=§LAutomatic control rods§r are almost identical to regular control rods, but they cannot be manually adjusted, instead they will adjust position of the rod based on current temperature. Which function to use and how deep to insert and at what temperature must be determined first. book.rbmk.title7=Steam Channel -book.rbmk.page7=The §lsteam channel§r is only part that will actively reduce reactor heat level. If a component is above the boiling point of a given type of steam, it will try to consume as much water and produce as much steam as needed to cool below boiling point. +book.rbmk.page7=The §lsteam channel§r is only part that will actively reduce reactor heat level. If a component is above the boiling point of a given type of steam, it will try to consume as much water and produce as much steam as needed to cool below boiling point. book.rbmk.title8=Neutron Reflector -book.rbmk.page8=The §lneutron reflector§r will block passage of neutrons, instead neutrons will be reflected back onto the fuel rod they came from. This is useful for using neutrons that would otherwise be wasted simply by leaving reactor. +book.rbmk.page8=The §lneutron reflector§r will block passage of neutrons, instead neutrons will be reflected back onto the fuel rod they came from. This is useful for using neutrons that would otherwise be wasted simply by leaving reactor. book.rbmk.title9=Neutron Absorber -book.rbmk.page9=§lNeutron absorber§r simply blocks neutrons. The absorbed neutrons will not generate heat and will be effectively destroyed. This is useful for preventing fuel rods from reacting that would otherwise be within reach. +book.rbmk.page9=§lNeutron absorber§r simply blocks neutrons. The absorbed neutrons will not generate heat and will be effectively destroyed. This is useful for preventing fuel rods from reacting that would otherwise be within reach. book.rbmk.title10=Graphite Retarder -book.rbmk.page10=§lGraphite moderator§r converts fast neutrons passing through it into slow neutrons. Most fuels are split into fast neutrons, while slow neutrons are required for fission, so use of moderators is highly recommended. +book.rbmk.page10=§lGraphite moderator§r converts fast neutrons passing through it into slow neutrons. Most fuels are split into fast neutrons, while slow neutrons are required for fission, so use of moderators is highly recommended. book.rbmk.title11=Structural Column -book.rbmk.page11=§lStructural column§r does not affect neutrons in any way and has no special application. It is recommended to fill the reactor with structured pillars where there are no other parts, since the structured pillars are capable of transferring heat. +book.rbmk.page11=§lStructural column§r does not affect neutrons in any way and has no special application. It is recommended to fill the reactor with structured pillars where there are no other parts, since the structured pillars are capable of transferring heat. book.rbmk.title12=Console -book.rbmk.page12=§lRBMK console§r allows you to control the reactor from afar. Using the §ldevice to connect the console RBMK§r on the RBMK part and then on the console will connect the reactor and the console. The console can only control 15x15 parts, for large reactors you can use multiple consoles. +book.rbmk.page12=§lRBMK console§r allows you to control the reactor from afar. Using the §ldevice to connect the console RBMK§r on the RBMK part and then on the console will connect the reactor and the console. The console can only control 15x15 parts, for large reactors you can use multiple consoles. book.rbmk.title13=Using the console book.rbmk.page13=Clicking on parts will select and deselect them. With the colored buttons, you can quickly select all the control rods in that color group. Button "A" will select all control rods, "X" will deselect all. book.rbmk.page14=Entering a number between 0 and 100 in green box and then pressing button next to it will set all selected control rods to that position. Button "AZ-5" will lead to full insertion of all control rods. book.rbmk.title15=Fuel -book.rbmk.page15=The §lfuel§r response depends on many factors. The main ones are §lfortification§r, §lxenon poisoning§r and number of incoming §lneutrons§r. Xenon builds up when fuel is low in neutrons and burns out during normal operation. The efficiency of neutrons depends on the type, most fuels §lare best split by§r §lslow neutrons§r. +book.rbmk.page15=The §lfuel§r response depends on many factors. The main ones are §lfortification§r, §lxenon poisoning§r and number of incoming §lneutrons§r. Xenon builds up when fuel is low in neutrons and burns out during normal operation. The efficiency of neutrons depends on the type, most fuels §lare best split by§r §lslow neutrons§r. book.rbmk.title16=Melting -book.rbmk.page16=§4§lAVOID. +book.rbmk.page16=§4§lAVOID. book.starter.cover=An Industrialist's$Guide to Rebuilding$Society book.starter.title1=Introduction book.starter.page1=If you're reading this, it's highly likely that society, in one way or another, has collapsed entirely. Governments, countries, and authority are a concept of the past - along with all of the amenities of civilized life. As such, this guide will inform you how to change that by recreating the industry and technology of the past for the improvement of your own life. book.starter.title2=Coal & Mustard Gas -book.starter.page2=Whilst it is impossible to predict the actual state of the world in a post-apocalyptic time, it's not unlikely that war and industry in its current form may not have ended. To protect your own lungs, an effective and cheap way is to urinate on some §lcloth§r to make a §ltrench mask§r, to protect you from coal dust or mustard gas, if you ever encounter either. +book.starter.page2=Whilst it is impossible to predict the actual state of the world in a post-apocalyptic time, it's not unlikely that war and industry in its current form may not have ended. To protect your own lungs, an effective and cheap way is to urinate on some §lcloth§r to make a §ltrench mask§r, to protect you from coal dust or mustard gas, if you ever encounter either. book.starter.title3=Anvils & Presses -book.starter.page3=The quintessentials to beginning your industrial revitalization is an §lanvil§r and a §lburner press§r. The anvil will allow you to manually craft together early machinery such as the Assembler, whilst the burner press will let you make plates, wires, and circuits that you cannot hammer together with an anvil. +book.starter.page3=The quintessentials to beginning your industrial revitalization is an §lanvil§r and a §lburner press§r. The anvil will allow you to manually craft together early machinery such as the Assembler, whilst the burner press will let you make plates, wires, and circuits that you cannot hammer together with an anvil. book.starter.title4=Templates -book.starter.page4=In order to stamp metal into useful shapes, assemble machinery, and perform chemical reactions, you will need to create a §lMachine Template Folder§r to create the various stamps and templates shown to the right. +book.starter.page4=In order to stamp metal into useful shapes, assemble machinery, and perform chemical reactions, you will need to create a §lMachine Template Folder§r to create the various stamps and templates shown to the right. book.starter.title5=Scavenging book.starter.page5=Depending on how bad the initial apocalyptic event was to the preexisting structures of the world, there's a likely chance that many useful materials and machines can be salvaged from them directly. Metallic alloys like steel, parts like circuitry, and even fissile material from a nuclear power plant might be awaiting you. Beware certain ruins, however, as there may be an excess of danger lurking there like a snake in the grass; waiting to strike you down with radiation, traps, or indescribable horrors... book.starter.title6=Early Machinery -book.starter.page6a=Two of the first machines you should assemble are the §lBlast Furnace§r and the §lAssembly Machine§r. The former will allow you to create alloys such as §lsteel§r, §lminecraft-grade copper§r, and §ladvanced alloy§r; you will need to use these metals for the bodies of machines, the wiring of circuits, advanced electromagnets, and more. -book.starter.page6b=The assembler will be used to create practically every other machine described in this guide. You will need a power source, such as a §lCombustion§r §lGenerator§r or §lSolar Boiler§r. -book.starter.page7a=The §lShredder§r, along with a pair of shredder blades, will be very useful for doubling the output of most ores, via shredding into smeltable powders. These powders are also crucial to begin making circuitry for various machines, such as §lEnhanced§r and §lOverclocked§r circuits. -book.starter.page7b=Using your new machinery, you can create the §lChemical Plant§r, used for the synthesis of better circuits, concrete, the processing of petrochemicals, and more. +book.starter.page6a=Two of the first machines you should assemble are the §lBlast Furnace§r and the §lAssembly Machine§r. The former will allow you to create alloys such as §lsteel§r, §lminecraft-grade copper§r, and §ladvanced alloy§r; you will need to use these metals for the bodies of machines, the wiring of circuits, advanced electromagnets, and more. +book.starter.page6b=The assembler will be used to create practically every other machine described in this guide. You will need a power source, such as a §lCombustion§r §lGenerator§r or §lSolar Boiler§r. +book.starter.page7a=The §lShredder§r, along with a pair of shredder blades, will be very useful for doubling the output of most ores, via shredding into smeltable powders. These powders are also crucial to begin making circuitry for various machines, such as §lEnhanced§r and §lOverclocked§r circuits. +book.starter.page7b=Using your new machinery, you can create the §lChemical Plant§r, used for the synthesis of better circuits, concrete, the processing of petrochemicals, and more. book.starter.title8=Black Gold -book.starter.page8a=Using an §lOil §lReservoir§r §lDetector§r, you can find underground oil deposits to place a §lPumpjack§r or §lDerrick§r over via surveying an area. Remember that oil deposits will run out over time. -book.starter.page8b=Before the oil can be refined and separated into its constituent parts in an §lOil Refinery§r, you must heat the oil to 300°C in a §lBoiler§r. +book.starter.page8a=Using an §lOil §lReservoir§r §lDetector§r, you can find underground oil deposits to place a §lPumpjack§r or §lDerrick§r over via surveying an area. Remember that oil deposits will run out over time. +book.starter.page8b=Before the oil can be refined and separated into its constituent parts in an §lOil Refinery§r, you must heat the oil to 300°C in a §lBoiler§r. book.starter.title9=Petrochemicals -book.starter.page9=Using §lChemical Plants§r, §lFractioning§r §lTowers§r, and §lCatalytic Cracking§r §lTowers§r, you can transform the separated oil into a variety of useful products. For example: §lPolymer§r or §lBakelite§r, durable and flexible plastics; §lDesh§r, an extremely durable and heat-resistant rare earth metal alloy; §lSolid Fuel§r, which can be burnt for energy; or even §lLiquid Fuels§r, such as §lGasoline§r, §lDiesel§r, §lKerosene§r, and more. +book.starter.page9=Using §lChemical Plants§r, §lFractioning§r §lTowers§r, and §lCatalytic Cracking§r §lTowers§r, you can transform the separated oil into a variety of useful products. For example: §lPolymer§r or §lBakelite§r, durable and flexible plastics; §lDesh§r, an extremely durable and heat-resistant rare earth metal alloy; §lSolid Fuel§r, which can be burnt for energy; or even §lLiquid Fuels§r, such as §lGasoline§r, §lDiesel§r, §lKerosene§r, and more. book.starter.title10=Advanced Machinery -book.starter.page10=With oil processing under your belt, you can create the §lCentrifuge§r, which will triple ore outputs; the §lOre §lAcidizer§r, which will crystallize ores, increasing the yield; and the §lSILEX + §lFEL§r, two marvels of modern engineering which can separate the isotopes of materials with ease. You will require significantly more energy to power these; which can be obtained with sources such as a §lDiesel Generator§r, an §lIndustrial Generator§r, or even a nuclear reactor. +book.starter.page10=With oil processing under your belt, you can create the §lCentrifuge§r, which will triple ore outputs; the §lOre §lAcidizer§r, which will crystallize ores, increasing the yield; and the §lSILEX + §lFEL§r, two marvels of modern engineering which can separate the isotopes of materials with ease. You will require significantly more energy to power these; which can be obtained with sources such as a §lDiesel Generator§r, an §lIndustrial Generator§r, or even a nuclear reactor. book.starter.title11=Strata -book.starter.page11=Underneath the ground you walk, there is several naturally-occurring §lStrata§r, or special mineral layers and formations. §lSchist Strata§r are blue, lithium-containing layers filled with uranium, iron, copper, asbestos, and other ores for your own use. §lDepth Rock§r contains large quantities of rarer minerals, such as §lZirconium§r and §lBoron§r, but requires explosives to properly harvest. +book.starter.page11=Underneath the ground you walk, there is several naturally-occurring §lStrata§r, or special mineral layers and formations. §lSchist Strata§r are blue, lithium-containing layers filled with uranium, iron, copper, asbestos, and other ores for your own use. §lDepth Rock§r contains large quantities of rarer minerals, such as §lZirconium§r and §lBoron§r, but requires explosives to properly harvest. book.starter.title12=Radiation -book.starter.page12a=§oThe rest of this book will deal with matters that involve §oradiation. For the safety of you and others, I will give §oadvice on how to mitigate and deal with exposure to it. -book.starter.page12b=Enough exposure to radiation can and will cause bodily harm. The first step is prevention; be sure to limit your exposure, and wear protective gear, such as a §lHazmat Suit§r, or apply §lCladding§r to your clothing or armor; you can also take §lRad-X§r to limit your intake. Thanks to modern medicine, the second step can be removal if necessary; for example, a §lPlayer §lDecontaminator§r will slowly reduce the radiation absorbed by your body. §lRad-Away§r can also be used as a post-exposure prophylaxis, quickly and effectively reversing damage caused to your body by ionizing radiation. +book.starter.page12a=§oThe rest of this book will deal with matters that involve §oradiation. For the safety of you and others, I will give §oadvice on how to mitigate and deal with exposure to it. +book.starter.page12b=Enough exposure to radiation can and will cause bodily harm. The first step is prevention; be sure to limit your exposure, and wear protective gear, such as a §lHazmat Suit§r, or apply §lCladding§r to your clothing or armor; you can also take §lRad-X§r to limit your intake. Thanks to modern medicine, the second step can be removal if necessary; for example, a §lPlayer §lDecontaminator§r will slowly reduce the radiation absorbed by your body. §lRad-Away§r can also be used as a post-exposure prophylaxis, quickly and effectively reversing damage caused to your body by ionizing radiation. book.starter.title13=Uranium Enrichment -book.starter.page13=There are a few, easy options for fuels to use for a nuclear reactor; for instance, §lNatural Uranium§r or §lThorium Fuel§r. However, if you're looking for something more powerful, you can set up an enrichment cascade of two §lGas Centrifuges§r to produce §lUranium Fuel§r with leftover §lUranium-238§r. You will have to transmute the natural uranium into §lYellowcake§r, then §lUranium §lHexafluoride§r to do so. +book.starter.page13=There are a few, easy options for fuels to use for a nuclear reactor; for instance, §lNatural Uranium§r or §lThorium Fuel§r. However, if you're looking for something more powerful, you can set up an enrichment cascade of two §lGas Centrifuges§r to produce §lUranium Fuel§r with leftover §lUranium-238§r. You will have to transmute the natural uranium into §lYellowcake§r, then §lUranium §lHexafluoride§r to do so. book.starter.title14=The Chicago Pile -book.starter.page14=Alternatively, you can breed §lReactor-Grade Plutonium§r, a more powerful fuel, from Natural Uranium using the §lChicago Pile§r. By stacking graphite blocks and drilling into them, you can insert fuel rods to breed into plutonium and neutron source rods, such as §lRadium-Beryllium§r, to begin the reaction. Make sure to test your designs; spacing out or limiting the amount of blocks may be necessary to prevent overheating. +book.starter.page14=Alternatively, you can breed §lReactor-Grade Plutonium§r, a more powerful fuel, from Natural Uranium using the §lChicago Pile§r. By stacking graphite blocks and drilling into them, you can insert fuel rods to breed into plutonium and neutron source rods, such as §lRadium-Beryllium§r, to begin the reaction. Make sure to test your designs; spacing out or limiting the amount of blocks may be necessary to prevent overheating. book.starter.title15=ZIRNOX GCR -book.starter.page15=Finally, you can create your first §oreal§r source of energy: the §lZIRNOX§r Nuclear Reactor. Nuclear reactors require more setup then other power sources; first, you will want to have a good source of water, such as the §lHeavy §lInfinite Water Tank§r. To remove heat from the reactor core and boil the water into steam, you will need a sufficient amount of §lCarbon Dioxide§r. You want just enough pressure, but not §otoo§r much. You will also need three steam turbines to utilize the created steam to make energy; the §lSteam §lTurbine§r or §lIndustrial Steam §lTurbine§r will be optimal. Finally, a §lCondensor§r or §lAuxilary Cooling Tower§r is needed to condense the leftover steam into water, where it can be voided or recycled in a cooling loop. +book.starter.page15=Finally, you can create your first §oreal§r source of energy: the §lZIRNOX§r Nuclear Reactor. Nuclear reactors require more setup then other power sources; first, you will want to have a good source of water, such as the §lHeavy §lInfinite Water Tank§r. To remove heat from the reactor core and boil the water into steam, you will need a sufficient amount of §lCarbon Dioxide§r. You want just enough pressure, but not §otoo§r much. You will also need three steam turbines to utilize the created steam to make energy; the §lSteam §lTurbine§r or §lIndustrial Steam §lTurbine§r will be optimal. Finally, a §lCondensor§r or §lAuxilary Cooling Tower§r is needed to condense the leftover steam into water, where it can be voided or recycled in a cooling loop. book.starter.title16=Conclusion -book.starter.page16=If you've reached this far, you're on track to helping rebuild civilization. You've successfully recreated the advanced machinery of the pre-apocalypse - with nuclear power, petrochemicals, and more. I cannot know §ohow§r you will use these new-found advantages, but it's my personal hope you use them for the good of yourself and others - or at the very least, in self-defense. Au revoir! +book.starter.page16=If you've reached this far, you're on track to helping rebuild civilization. You've successfully recreated the advanced machinery of the pre-apocalypse - with nuclear power, petrochemicals, and more. I cannot know §ohow§r you will use these new-found advantages, but it's my personal hope you use them for the good of yourself and others - or at the very least, in self-defense. Au revoir! book.starter.title18=About the Author -book.starter.page18=vær is just a guy who has been trapped in the grey void featured in the Talking Head's §oOnce In A Lifetime§r for too long. He once found a studio door, but to his dismay found out it was a cardboard cut-out. +book.starter.page18=vær is just a guy who has been trapped in the grey void featured in the Talking Head's §oOnce In A Lifetime§r for too long. He once found a studio door, but to his dismay found out it was a cardboard cut-out. #book.rbmk.cover=HOW 2 RBMK:$The Basics$of Reactor$Construction #book.rbmk.title1=Introduction -#book.rbmk.page1=The §lRBMK§r is a fully modular nuclear reactor. Unlike most other reactors, there is no "core", and no size limitations, rather, the behavior and efficiency of the reactor comes from how it is built and how the different pieces interact with each other. +#book.rbmk.page1=The §lRBMK§r is a fully modular nuclear reactor. Unlike most other reactors, there is no "core", and no size limitations, rather, the behavior and efficiency of the reactor comes from how it is built and how the different pieces interact with each other. #book.rbmk.title2=Heat -#book.rbmk.page2=As the reactor operates, it will generate §lheat§r. Heat will spread between parts, slowly decreasing in the process. The goal is to produce as much heat as possible without melting the reactor, and to move that heat to a §lsteam channel§r which cools the reactor and produces steam. +#book.rbmk.page2=As the reactor operates, it will generate §lheat§r. Heat will spread between parts, slowly decreasing in the process. The goal is to produce as much heat as possible without melting the reactor, and to move that heat to a §lsteam channel§r which cools the reactor and produces steam. #book.rbmk.title3=Fuel Rod -#book.rbmk.page3=The §lfuel rod§r will capture neutron flux, causing the fuel inside the fuel rod to react, giving off neutrons in the process. Neutrons are released in all four cardinal directions with a maximum range of 5 blocks. The amount of neutrons released depends on the §lfuel§r used. +#book.rbmk.page3=The §lfuel rod§r will capture neutron flux, causing the fuel inside the fuel rod to react, giving off neutrons in the process. Neutrons are released in all four cardinal directions with a maximum range of 5 blocks. The amount of neutrons released depends on the §lfuel§r used. #book.rbmk.title4=Control Rod -#book.rbmk.page4=The §lcontrol rod§r will decrease the amount of neutrons passing though it. Fully inserted, it will block all neutrons, at half insertion, it will only block half. Control rods are used to regulate the reactor's activity and to turn it off. +#book.rbmk.page4=The §lcontrol rod§r will decrease the amount of neutrons passing though it. Fully inserted, it will block all neutrons, at half insertion, it will only block half. Control rods are used to regulate the reactor's activity and to turn it off. #book.rbmk.title5=Control Rod - Usage -#book.rbmk.page5=The center of the GUI will display the current rod insertion. The colored buttons on the left will add a control rod to a color group, which is useful to quickly select grouped rods from the §lRBMK console§r. The buttons on the right allow for manual insertion in increments of 25%%. +#book.rbmk.page5=The center of the GUI will display the current rod insertion. The colored buttons on the left will add a control rod to a color group, which is useful to quickly select grouped rods from the §lRBMK console§r. The buttons on the right allow for manual insertion in increments of 25%%. #book.rbmk.title6=Automatic Control Rod -#book.rbmk.page6=§lAutomatic control rods§r function nearly identical to regular control rods, but they cannot be configured manually, instead they will adjust the rod position based on the current temperature. What function to use and how deep to insert at what temperature has to be defined first. +#book.rbmk.page6=§lAutomatic control rods§r function nearly identical to regular control rods, but they cannot be configured manually, instead they will adjust the rod position based on the current temperature. What function to use and how deep to insert at what temperature has to be defined first. #book.rbmk.title7=Steam Channel -#book.rbmk.page7=The §lsteam channel§r is the only part that will actively reduce the reactor's heat level. If the component's temperature exceeds the boiling point of the set steam type, it will try to consume as much water and produce as much steam as needed to cool back below the boiling point. +#book.rbmk.page7=The §lsteam channel§r is the only part that will actively reduce the reactor's heat level. If the component's temperature exceeds the boiling point of the set steam type, it will try to consume as much water and produce as much steam as needed to cool back below the boiling point. #book.rbmk.title8=Neutron Reflector -#book.rbmk.page8=The §lneutron reflector§r will block neutrons from passing it, instead the neutrons will be reflected back at the fuel rod they came from. This is useful for utilizing neutrons that would otherwise be wasted by simply exiting the reactor. +#book.rbmk.page8=The §lneutron reflector§r will block neutrons from passing it, instead the neutrons will be reflected back at the fuel rod they came from. This is useful for utilizing neutrons that would otherwise be wasted by simply exiting the reactor. #book.rbmk.title9=Neutron Absorber -#book.rbmk.page9=The §lneutron absorber§r will simply block neutrons. Neutrons absorbed will not generate heat and be effectively voided. This is useful to prevent fuel rods from reacting that would otherwise be in range. +#book.rbmk.page9=The §lneutron absorber§r will simply block neutrons. Neutrons absorbed will not generate heat and be effectively voided. This is useful to prevent fuel rods from reacting that would otherwise be in range. #book.rbmk.title10=Graphite Moderator -#book.rbmk.page10=The §lgraphite moderator§r will convert fast neutrons passing through it into slow neutrons. Most fuels fission into fast neutrons while needing slow neutrons to split, so using moderators is strongly recommended. +#book.rbmk.page10=The §lgraphite moderator§r will convert fast neutrons passing through it into slow neutrons. Most fuels fission into fast neutrons while needing slow neutrons to split, so using moderators is strongly recommended. #book.rbmk.title11=Structural Column -#book.rbmk.page11=The §lstructural column§r will not interfere with neutrons, nor does it have special uses. It is recommended to fill the reactor with structural columns where no other parts will be, because structural columns are capable of transporting heat. +#book.rbmk.page11=The §lstructural column§r will not interfere with neutrons, nor does it have special uses. It is recommended to fill the reactor with structural columns where no other parts will be, because structural columns are capable of transporting heat. #book.rbmk.title12=Console -#book.rbmk.page12=The §lRBMK console§r lets you control the reactor from afar. Using the §lRBMK§r §lconsole linking device§r on an RBMK part and then the console will link the reactor to the console. The console can only manage 15x15 parts, for larger reactors you might want to use multiple consoles. +#book.rbmk.page12=The §lRBMK console§r lets you control the reactor from afar. Using the §lRBMK§r §lconsole linking device§r on an RBMK part and then the console will link the reactor to the console. The console can only manage 15x15 parts, for larger reactors you might want to use multiple consoles. #book.rbmk.title13=Console Usage #book.rbmk.page13=Clicking on the parts will select and deselect them. Using the colored buttons, you can quickly select all control rods of that color group. Button 'A' will select all control rods, 'X' will deselect all. #book.rbmk.page14=Entering a number 0-100 in the green box and then hitting the button next to it will set all selected control rods to this position. Button 'AZ-5' will cause all control rods to fully insert. #book.rbmk.title15=Fuel -#book.rbmk.page15=The §lfuel§r's reactivity is based on multiple factors. The main ones are the §lenrichment§r, §lxenon poison§r and the amount of incoming §lneutrons§r. Xenon builds up when the fuel receives few neutrons and burns away during normal operation. The effectivity of neutrons depends on the type, most fuels §lsplit best with slow neutrons§r. +#book.rbmk.page15=The §lfuel§r's reactivity is based on multiple factors. The main ones are the §lenrichment§r, §lxenon poison§r and the amount of incoming §lneutrons§r. Xenon builds up when the fuel receives few neutrons and burns away during normal operation. The effectivity of neutrons depends on the type, most fuels §lsplit best with slow neutrons§r. #book.rbmk.title16=Meltdown -#book.rbmk.page16=§4§lAvoid. +#book.rbmk.page16=§4§lAvoid. book_lore.author=By %s book_lore.test.name=Test @@ -399,10 +399,10 @@ cannery.crucible.0=The crucible is used to smelt ores, ingots or other metallic cannery.crucible.1=It requires an external heat source connected to the bottom, like a firebox. cannery.crucible.2=Once heated up, the crucible can be used in two ways, with or without a recipe template. cannery.crucible.3=The crucible has two storage buffers for material: -cannery.crucible.4=The buffer to the left is for §abyproducts§r, all material smelted without a recipe template will land here. +cannery.crucible.4=The buffer to the left is for §abyproducts§r, all material smelted without a recipe template will land here. cannery.crucible.5=If a recipe is installed, materials that do not match the recipe will also be stored here. cannery.crucible.6=Materials in this buffer will not react with each other, they can only be output from the green outlet for casting. -cannery.crucible.7=The buffer to the right is for §crecipes§r, if a recipe is installed and that particular material is relevant to that recipe, it will land here. +cannery.crucible.7=The buffer to the right is for §crecipes§r, if a recipe is installed and that particular material is relevant to that recipe, it will land here. cannery.crucible.8=The materials will slowly combine into the output material which is automatically output from the red outlet. cannery.crucible.9=Note that only this buffer handles recipes. If a template is installed retroactively, materials in the byproduct buffer will not combine, nor transfer to the recipe buffer. cannery.crucible.10=The outlet will output material automatically, if the target is valid, for example a foundry channel or a mold. @@ -553,6 +553,7 @@ chem.VIT_LIQUID=Liquid Nuclear Waste Vitrification chem.XENON=Linde Xenon Cycle chem.XENON_OXY=Boosted Linde Xenon Cycle chem.YELLOWCAKE=Yellowcake Production +chem.LAMINATE=Reinforced Glass Lamination container.amsBase=AMS Base (Deco) container.amsEmitter=AMS Emitter (Deco) @@ -648,7 +649,7 @@ container.nukeFurnace=Nuclear Powered Furnace container.nukeGadget=The Gadget container.nukeMan=Fat Man container.nukeMike=Ivy Mike -container.nukeN2=N² Mine +container.nukeN2=N² Mine container.nukeN45=N45 Naval Mine container.nukePrototype=The Prototype container.nukeSolinium=The Blue Rinse @@ -779,35 +780,35 @@ death.attack.tau=%1$s was riddeled by %2$s using negatively charged tauons. death.attack.tauBlast=%1$s charged the XVL1456 for too long and was blown into pieces. death.attack.teleporter=%1$s was teleported into nothingness. -desc.gui.assembler.warning=§cError:§r This machine requires an assembly template! -desc.gui.chemplant.warning=§cError:§r This machine requires an chemistry template! -desc.gui.gasCent.enrichment=§2Enrichment§r$Uranium enrichment requires cascades.$Two-centrifuge cascades will give$uranium fuel, four-centrifuge cascades$will give total separation. -desc.gui.gasCent.output=§6Fluid Transfer§r$Fluid can be transferred to another centrifuge$via the output port for further processing. -desc.gui.nukeBoy.desc=§1Requires:§r$ * Neutron Shielding$ * U235 Projectile$ * Subcritical U235 Target$ * Propellant$ * Bomb Igniter -desc.gui.nukeGadget.desc=§1Requires:§r$ * 4 Arrays of First-Generation$ High-Explosive Lenses$ * Heavy Plutonium Core$ * Wiring -desc.gui.nukeMan.desc=§1Requires:§r$ * 4 Arrays of First-Generation$ High-Explosive Lenses$ * Plutonium Core$ * Bomb Firing Unit -desc.gui.nukeMike.desc=§1Requires:§r$ * 4 Arrays of High-Explosive Lenses$ * Plutonium Core$ * Deuterium Cooling Unit$ * Uranium Coated Deuterium Tank$ * Deuterium Tank -desc.gui.nukeTsar.desc=§1Requires:§r$ * 4 Arrays of High-Explosive Lenses$ * Plutonium Core$§9Optional:§r$ * Tsar Bomba Core -desc.gui.radiolysis.desc=§9Description§r$This RTG is more efficient then others, and$comes equipped with a radiolysis chamber for$cracking and sterilization. +desc.gui.assembler.warning=§cError:§r This machine requires an assembly template! +desc.gui.chemplant.warning=§cError:§r This machine requires an chemistry template! +desc.gui.gasCent.enrichment=§2Enrichment§r$Uranium enrichment requires cascades.$Two-centrifuge cascades will give$uranium fuel, four-centrifuge cascades$will give total separation. +desc.gui.gasCent.output=§6Fluid Transfer§r$Fluid can be transferred to another centrifuge$via the output port for further processing. +desc.gui.nukeBoy.desc=§1Requires:§r$ * Neutron Shielding$ * U235 Projectile$ * Subcritical U235 Target$ * Propellant$ * Bomb Igniter +desc.gui.nukeGadget.desc=§1Requires:§r$ * 4 Arrays of First-Generation$ High-Explosive Lenses$ * Heavy Plutonium Core$ * Wiring +desc.gui.nukeMan.desc=§1Requires:§r$ * 4 Arrays of First-Generation$ High-Explosive Lenses$ * Plutonium Core$ * Bomb Firing Unit +desc.gui.nukeMike.desc=§1Requires:§r$ * 4 Arrays of High-Explosive Lenses$ * Plutonium Core$ * Deuterium Cooling Unit$ * Uranium Coated Deuterium Tank$ * Deuterium Tank +desc.gui.nukeTsar.desc=§1Requires:§r$ * 4 Arrays of High-Explosive Lenses$ * Plutonium Core$§9Optional:§r$ * Tsar Bomba Core +desc.gui.radiolysis.desc=§9Description§r$This RTG is more efficient then others, and$comes equipped with a radiolysis chamber for$cracking and sterilization. desc.gui.rtgBFurnace.desc=Requires at least 15 heat to process$The more heat on top of that, the faster it runs$Heat going over maximum speed will have no effect$Short-lived pellets may decay -desc.gui.rtg.heat=§eCurrent heat level: %s +desc.gui.rtg.heat=§eCurrent heat level: %s desc.gui.rtg.pellets=Accepted Pellets: desc.gui.rtg.pelletHeat=%s (%s heat) desc.gui.rtg.pelletPower=%s (%s HE/tick) -desc.gui.template=§9Templates§r$Templates can be made by$using the Machine Template Folder. -desc.gui.turbinegas.automode=§2Automatic Turbine Throttling Mode§r$By clicking the "AUTO" button, the turbine$will automatically adjust the power production$based on the power required from the network -desc.gui.turbinegas.fuels=§6Accepted fuels:§r -desc.gui.turbinegas.warning=§cFuel or lubricant level low!§r -desc.gui.upgrade=§lAcceptable Upgrades:§r -desc.gui.upgrade.afterburner= * §dAfterburner§r: Stacks to level 3 -desc.gui.upgrade.effectiveness= * §aEffectiveness§r: Stacks to level 3 -desc.gui.upgrade.overdrive= * §7Overdrive§r: Stacks to level 3 -desc.gui.upgrade.power= * §1Power-Saving§r: Stacks to level 3 -desc.gui.upgrade.speed= * §4Speed§r: Stacks to level 3 -desc.gui.zirnox.coolant=§3Coolant§r$CO2 transfers heat from the core to the water.$This will boil it into super dense steam.$The efficiency of cooling and steam production$is based on pressure. -desc.gui.zirnox.pressure=§6Pressure§r$Pressure can be reduced by venting CO2.$However, too low a pressure, and cooling$efficiency and steam production will be reduced.$Look out for meltdowns! -desc.gui.zirnox.warning1=§cError:§r Water is required for$the reactor to function properly! -desc.gui.zirnox.warning2=§cError:§r CO2 is required for$the reactor to function properly! +desc.gui.template=§9Templates§r$Templates can be made by$using the Machine Template Folder. +desc.gui.turbinegas.automode=§2Automatic Turbine Throttling Mode§r$By clicking the "AUTO" button, the turbine$will automatically adjust the power production$based on the power required from the network +desc.gui.turbinegas.fuels=§6Accepted fuels:§r +desc.gui.turbinegas.warning=§cFuel or lubricant level low!§r +desc.gui.upgrade=§lAcceptable Upgrades:§r +desc.gui.upgrade.afterburner= * §dAfterburner§r: Stacks to level 3 +desc.gui.upgrade.effectiveness= * §aEffectiveness§r: Stacks to level 3 +desc.gui.upgrade.overdrive= * §7Overdrive§r: Stacks to level 3 +desc.gui.upgrade.power= * §1Power-Saving§r: Stacks to level 3 +desc.gui.upgrade.speed= * §4Speed§r: Stacks to level 3 +desc.gui.zirnox.coolant=§3Coolant§r$CO2 transfers heat from the core to the water.$This will boil it into super dense steam.$The efficiency of cooling and steam production$is based on pressure. +desc.gui.zirnox.pressure=§6Pressure§r$Pressure can be reduced by venting CO2.$However, too low a pressure, and cooling$efficiency and steam production will be reduced.$Look out for meltdowns! +desc.gui.zirnox.warning1=§cError:§r Water is required for$the reactor to function properly! +desc.gui.zirnox.warning2=§cError:§r CO2 is required for$the reactor to function properly! desc.item.ammo.con_accuracy2=- Highly decreased accuracy desc.item.ammo.con_damage=- Highly decreased damage desc.item.ammo.con_heavy_wear=- Highly increased wear @@ -915,7 +916,7 @@ desc.item.kitArmor=Armor will be displaced by new set. desc.item.kitHaz=Armor will be displaced by hazmat suit. desc.item.kitPack=What a bargain! desc.item.kitPool=Please empty inventory before opening! -desc.item.pileRod=§eUse on drilled graphite to insert$§eUse screwdriver to extract$ +desc.item.pileRod=§eUse on drilled graphite to insert$§eUse screwdriver to extract$ desc.item.rtgDecay=Decays to: %s desc.item.rtgHeat=Power Level: %s desc.item.storage.capacity=Capacity %s%%s @@ -923,19 +924,19 @@ desc.item.storage.proscons=to view pros cons list desc.misc.357=.357 Magnum desc.misc.556=.223 Remington desc.misc.762=.308 Winchester -desc.misc.func=§n-- Function -- +desc.misc.func=§n-- Function -- desc.misc.lanthanum="Lanthanum" -desc.misc.lctrl=§8Hold <§e§oLCTRL§8§o> %s -desc.misc.lore=§n-- Lore -- -desc.misc.lshift=§8Hold <§e§oLSHIFT§8§o> %s -desc.misc.luna=§o20x155mm Lunatic -desc.misc.meltPoint=Melting point: §c%s +desc.misc.lctrl=§8Hold <§e§oLCTRL§8§o> %s +desc.misc.lore=§n-- Lore -- +desc.misc.lshift=§8Hold <§e§oLSHIFT§8§o> %s +desc.misc.luna=§o20x155mm Lunatic +desc.misc.meltPoint=Melting point: §c%s desc.misc.noPos=No position set! desc.misc.pos=Set pos to: %s, %s, %s desc.misc.posSet=Position set! desc.item.wasteCooling=Cool in a Spent Fuel Pool Drum -desc.item.zirnoxBreedingRod=§2[ZIRNOX Breeding Rod]$§ePlace next to fuel rods to breed$§eLasts %d ticks -desc.item.zirnoxRod=§a[ZIRNOX Fuel Rod]$§eGenerates %1$d heat per tick$§eLasts %2$d ticks +desc.item.zirnoxBreedingRod=§2[ZIRNOX Breeding Rod]$§ePlace next to fuel rods to breed$§eLasts %d ticks +desc.item.zirnoxRod=§a[ZIRNOX Fuel Rod]$§eGenerates %1$d heat per tick$§eLasts %2$d ticks digamma.playerDigamma=Digamma exposure: digamma.playerHealth=Digamma influence: @@ -1059,15 +1060,15 @@ gun.name.ifPit=IF-18 Horseshoe Bottomless Pit gun.name.ifScope=IF-18 Horseshoe Scoped gun.name.ifStorm=IF-18 Horseshoe Silver Storm gun.name.ifVanity=IF-18 Horseshoe Vanity -gun.name.karl=M1 Karl-Gerät +gun.name.karl=M1 Karl-Gerät gun.name.ks23=KS-23 gun.name.lacunae=Auntie Lacunae gun.name.lasetDet=Hopeville Laser Detonator gun.name.lunaAR=1986 Bishamonten type Assault Rifle -gun.name.lunaGun=1978 Rāhula type Standard Issue Sidearm (Revision 2) +gun.name.lunaGun=1978 RÄ�hula type Standard Issue Sidearm (Revision 2) gun.name.lunaHLR=1944 Chang'e type Light Machine Gun gun.name.lunaShotty=1978 Guan Yu type Scattergun (Revision 1) -gun.name.lunaSMG=1956 Ānanda type Submachine Gun +gun.name.lunaSMG=1956 Ä€nanda type Submachine Gun gun.name.lunaSniper=1915 Hou Yi type Anti-Material Rifle gun.name.lunaTWR=Time Warp Rifle gun.name.m2=Browning machine gun, cal. .50, M2, HB @@ -1080,7 +1081,7 @@ gun.name.mg3=Universal-Maschinengewehr Modell 3 gun.name.mp40=Maschinenpistole 40 gun.name.nerf=NERF blaster of unknown design gun.name.osipr=Overwatch Standard Issue Pulse Rifle -gun.name.panz=Raketenpanzerbüchse 54 +gun.name.panz=Raketenpanzerbüchse 54 gun.name.quadro=OpenQuadro Guided Man-Portable Missile Launcher gun.name.remington870=Remington 870 gun.name.revolverCursed=Britannia Standard Issue Motorized Handgun @@ -1123,11 +1124,11 @@ hadron.error_analysis_too_long=Error 0x06 [ATL] hadron.error_analysis_too_short=Error 0x07 [ATS] hadron.error_diode_collision=Error 0x08 [DC] hadron.error_branching_turn=Error 0x09 [BT] -hadron.hopper0=§eNormal Mode:$All items will be used. -hadron.hopper1=§eHopper Mode:$One item will always remain. +hadron.hopper0=§eNormal Mode:$All items will be used. +hadron.hopper1=§eHopper Mode:$One item will always remain. hadron.idle=Idle -hadron.modeCircular=§eCircular Accelerator Mode:$Magnets must loop back into core.$Unlocks more recipes. -hadron.modeLine=§eLinear Accelerator Mode:$Accelerator ends with analysis chamber.$Fewer Recipes. +hadron.modeCircular=§eCircular Accelerator Mode:$Magnets must loop back into core.$Unlocks more recipes. +hadron.modeLine=§eLinear Accelerator Mode:$Accelerator ends with analysis chamber.$Fewer Recipes. hadron.noresult=No Result. hadron.noresult_too_slow=Insuff. momentum! hadron.noresult_wrong_ingredient=Invalid recipe! @@ -1227,7 +1228,7 @@ hbmfluid.mustardgas=Mustard Gas hbmfluid.naphtha=Naphtha hbmfluid.naphtha_coker=Coker Naphtha hbmfluid.naphtha_crack=Cracked Naphtha -hbmfluid.nitan=NITAN© 100 Octane Super Fuel +hbmfluid.nitan=NITAN© 100 Octane Super Fuel hbmfluid.nitric_acid=Nitric Acid hbmfluid.none=None hbmfluid.oil=Crude Oil @@ -1545,7 +1546,7 @@ item.ammo_grenade_finned.name=40mm Grenade (Finned) item.ammo_grenade_he.name=40mm Grenade (HE) item.ammo_grenade_incendiary.name=40mm Grenade (Incendiary) item.ammo_grenade_kampf.name=40mm Rocket -item.ammo_grenade_nuclear.name=40mm Grenade (Привет) +item.ammo_grenade_nuclear.name=40mm Grenade (Привет) item.ammo_grenade_phosphorus.name=40mm Grenade (WP) item.ammo_grenade_sleek.name=40mm Grenade (IF-R&D) item.ammo_grenade_toxic.name=40mm Grenade (Chemical) @@ -1579,7 +1580,7 @@ item.ammo_rocket_emp.name=84mm Rocket (Pulse) item.ammo_rocket_glare.name=84mm Rocket (Red Glare) item.ammo_rocket_he.name=84mm Rocket (HE) item.ammo_rocket_incendiary.name=84mm Rocket (Incendiary) -item.ammo_rocket_nuclear.name=84mm Rocket (Привет) +item.ammo_rocket_nuclear.name=84mm Rocket (Привет) item.ammo_rocket_phosphorus.name=84mm Rocket (WP) item.ammo_rocket_rpc.name=84mm Rocket Propelled Chainsaw item.ammo_rocket_shrapnel.name=84mm Rocket (Shrapnel) @@ -1593,7 +1594,7 @@ item.ammo_shell_w9.name=240mm W9 Nuclear Shell item.ammo_stinger_rocket.name=Stinger Rocket item.ammo_stinger_rocket_he.name=Stinger Rocket (HE) item.ammo_stinger_rocket_incendiary.name=Stinger Rocket (Incendiary) -item.ammo_stinger_rocket_nuclear.name=Stinger Rocket (Привет) +item.ammo_stinger_rocket_nuclear.name=Stinger Rocket (Привет) item.ammo_stinger_rocket_bones.name=Stinger Rocket (Bone-Seeking) item.ams_catalyst_aluminium.name=Aluminium Reaction Catalyst item.ams_catalyst_beryllium.name=Beryllium Reaction Catalyst @@ -1632,7 +1633,7 @@ item.apple_schrabidium.name=Schrabidium Apple item.arc_electrode.name=Graphite Electrode item.arc_electrode_burnt.name=Molten Electrode item.arc_electrode_desh.name=Desh Electrode -item.armor_polish.name=ShiningArmor™ Armor Polish +item.armor_polish.name=ShiningArmorâ„¢ Armor Polish item.asbestos_boots.name=Fire Proximity Boots item.asbestos_cloth.name=Fire Proximity Cloth item.asbestos_helmet.name=Fire Proximity Helmet @@ -1853,7 +1854,7 @@ item.can_mug.name=MUG Root Beer item.can_overcharge.name=Overcharge Delirium XT item.can_redbomb.name='Red Bomb' Energy Drink item.can_smart.name='Smart' Energy Drink -item.canister_NITAN.name=NITAN© 100 Octane Super Fuel (LEGACY) +item.canister_NITAN.name=NITAN© 100 Octane Super Fuel (LEGACY) item.canister_biofuel.name=Biofuel Canister (LEGACY) item.canister_bitumen.name=Bitumen Canister (LEGACY) item.canister_canola.name=Engine Lubricant (LEGACY) @@ -1897,7 +1898,7 @@ item.canned_fried.name=Canned Fried Chicken item.canned_fried.desc=Even the can is deep fried! item.canned_hotdogs.name=Canned Hotdogs item.canned_hotdogs.desc=Not to be confused with cool cats. -item.canned_jizz.name=FlimFlam Industries Canned Stallion Milk™ +item.canned_jizz.name=FlimFlam Industries Canned Stallion Milkâ„¢ item.canned_jizz.desc=Wait wh- item.canned_kerosene.name=Canned Kerosene item.canned_kerosene.desc=Just imagine a witty line here. @@ -1911,14 +1912,14 @@ item.canned_napalm.name=Canned Napalm item.canned_napalm.desc=I love the smell of old memes in the morning! item.canned_oil.name=Canned Engine Oil item.canned_oil.desc=It makes motors go, so why not humans? -item.canned_pashtet.name=Паштет -item.canned_pashtet.desc=услуги перевода недоступны! +item.canned_pashtet.name=Паштет +item.canned_pashtet.desc=уÑ�луги перевода недоÑ�тупны! item.canned_pizza.name=Canned Pepperoni Pizza item.canned_pizza.desc=A crime against humanity. item.canned_recursion.name=Canned Recursion item.canned_recursion.desc=Canned Recursion item.canned_spam.name=Canned Spam -item.canned_spam.desc=The three-and-a-half-minute sketch is set in the fictional Green Midget Cafe in Bromley.$An argument develops between the waitress, who recites a menu in which nearly$every dish contains Spam, and Mrs. Bun, who does not like Spam. She asks for a$dish without Spam, much to the amazement of her Spam-loving husband. The waitress$responds to this request with disgust. Mr. Bun offers to take her Spam instead,$and asks for a dish containing a lot of Spam and baked beans. The waitress says$no since they are out of baked beans; when Mr. Bun asks for a substitution of Spam,$the waitress again responds with disgust. At several points, a group of Vikings in$the restaurant interrupts conversation by loudly singing about Spam.$The irate waitress orders them to shut up, but they resume singing more loudly.$A Hungarian tourist comes to the counter, trying to order by using a wholly$inaccurate Hungarian/English phrasebook (a reference to a previous sketch).$He is rapidly escorted away by a police constable. The sketch abruptly cuts to a$historian in a television studio talking about the origin of the Vikings in the café.$As he goes on, he begins to increasingly insert the word \"Spam\" into every$sentence, and the backdrop is raised to reveal the restaurant set behind.$The historian joins the Vikings in their song, and Mr. and Mrs. Bun are lifted by$wires out of the scene while the singing continues. In the original televised performance,$the closing credits begin to scroll with the singing still audible in the background. +item.canned_spam.desc=The three-and-a-half-minute sketch is set in the fictional Green Midget Cafe in Bromley.$An argument develops between the waitress, who recites a menu in which nearly$every dish contains Spam, and Mrs. Bun, who does not like Spam. She asks for a$dish without Spam, much to the amazement of her Spam-loving husband. The waitress$responds to this request with disgust. Mr. Bun offers to take her Spam instead,$and asks for a dish containing a lot of Spam and baked beans. The waitress says$no since they are out of baked beans; when Mr. Bun asks for a substitution of Spam,$the waitress again responds with disgust. At several points, a group of Vikings in$the restaurant interrupts conversation by loudly singing about Spam.$The irate waitress orders them to shut up, but they resume singing more loudly.$A Hungarian tourist comes to the counter, trying to order by using a wholly$inaccurate Hungarian/English phrasebook (a reference to a previous sketch).$He is rapidly escorted away by a police constable. The sketch abruptly cuts to a$historian in a television studio talking about the origin of the Vikings in the café.$As he goes on, he begins to increasingly insert the word \"Spam\" into every$sentence, and the backdrop is raised to reveal the restaurant set behind.$The historian joins the Vikings in their song, and Mr. and Mrs. Bun are lifted by$wires out of the scene while the singing continues. In the original televised performance,$the closing credits begin to scroll with the singing still audible in the background. item.canned_stew.name=Canned "Mushroom Stew" item.canned_stew.desc=... item.canned_tomato.name=Canned Tomato Soup @@ -2455,9 +2456,9 @@ item.grenade_tau.name=Tau Grenade item.grenade_zomg.name=Negative Energy Pair Annihilation Grenade item.gun_ar15.name=Josh item.gun_avenger.name=CZ57 Avenger Minigun -item.gun_b92.name=§9B92 Energy Pistol§r -item.gun_b92_ammo.name=§9B92 Energy Cell§r -item.gun_b93.name=§cB93 Energy Mod§r +item.gun_b92.name=§9B92 Energy Pistol§r +item.gun_b92_ammo.name=§9B92 Energy Cell§r +item.gun_b93.name=§cB93 Energy Mod§r item.gun_bf.name=BEL item.gun_bf_ammo.name=Balefire Shell item.gun_bio_revolver.name=Atlas @@ -2507,7 +2508,7 @@ item.gun_lever_action.name=Mare's Leg (Original) item.gun_lever_action_ammo.name=12x74 Buckshot (LEGACY) item.gun_lever_action_dark.name=Mare's Leg (Dark) item.gun_lever_action_sonata.name=Flipped Mare's Leg -item.gun_lever_action_sonata_2.name=§cSonata's Microphone§r +item.gun_lever_action_sonata_2.name=§cSonata's Microphone§r item.gun_lunatic_marksman.name=Lunatic Sniper Rifle item.gun_m2.name=Ma Deuce item.gun_minigun.name=CZ53 Personal Minigun @@ -2525,7 +2526,7 @@ item.gun_osipr_ammo2.name=Combine Ball item.gun_panzerschreck.name=Panzerschreck item.gun_proto.name=M42 Nuclear Catapult "Proto MIRV" item.gun_quadro.name=Quattro Formaggi -item.gun_remington.name=バイデン ブラスト [BIDEN BLAST] +item.gun_remington.name=ãƒ�イデン ブラスト [BIDEN BLAST] item.gun_revolver.name=Enhanced Revolver item.gun_revolver_ammo.name=Lead Bullet item.gun_revolver_blackjack.name=Blackjack Five-Shooter @@ -2637,7 +2638,7 @@ item.ingot_am242.name=Americium-242 Ingot item.ingot_americium_fuel.name=Ingot of Americium Fuel item.ingot_arsenic.name=Arsenic Ingot item.ingot_asbestos.name=Asbestos Sheet -item.ingot_asbestos.desc=§o"Filled with life, self-doubt and asbestos. That comes with the air."§r +item.ingot_asbestos.desc=§o"Filled with life, self-doubt and asbestos. That comes with the air."§r item.ingot_au198.name=Gold-198 Ingot item.ingot_australium.name=Australium Ingot item.ingot_bakelite.name=Bakelite Bar @@ -2713,7 +2714,7 @@ item.ingot_semtex.name=Bar of Semtex item.ingot_smore.name=S'more Ingot item.ingot_solinium.name=Solinium Ingot item.ingot_sr90.name=Strontium-90 Ingot -item.ingot_starmetal.name=§9Starmetal Ingot§r +item.ingot_starmetal.name=§9Starmetal Ingot§r item.ingot_steel.name=Steel Ingot item.ingot_steel_dusted.name=Dusted Steel Ingot item.ingot_tantalium.name=Tantalium Ingot @@ -2737,7 +2738,7 @@ item.ingot_weidanium.name=Weidanium Ingot item.ingot_zirconium.name=Zirconium Cube item.injector_5htp.name=5-HTP Autoinjector item.injector_knife.name=8 Inch Blade Autoinjector -item.ink.name=林 Ink +item.ink.name=æž— Ink item.insert_doxium.name=Astolfium-Doped Doxium Insert item.insert_du.name=DU Insert item.insert_era.name=Explosive Reactive Armor Insert @@ -2768,7 +2769,7 @@ item.key_fake.name=Counterfeit Key item.key_kit.name=Key Imitation Kit item.key_red.name=Red Key item.key_red.desc=Explore the other side. -item.key_red.desc.P11=§4e§r +item.key_red.desc.P11=§4e§r item.kit_toolbox.name=Toolbox item.kit_toolbox_empty.name=Empty Toolbox item.laser_crystal_bismuth.desc=Bismuth-Samarium-Uranium-Thorium crystal matrix @@ -2794,7 +2795,7 @@ item.liquidator_plate.name=Liquidator Suit Chestplate item.lithium.name=Lithium Cube item.lodestone.name=Lodestone item.loop_stew.name=IT Breakfast -item.loops.name=Lööps +item.loops.name=Lööps item.loot_10.name=Size 10 Missile Loot Crate item.loot_15.name=Size 15 Missile Loot Crate item.loot_misc.name=General Missile Loot Crate @@ -2825,7 +2826,7 @@ item.med_ptsd.name=PTSD Medication item.med_schiziphrenia.name=Schizophrenia Medication item.medal_liquidator.name=Liquidator Medal item.meltdown_tool.name=Dyatlov Instant Meltdown Applicator -item.memespoon.name=§eMarket Gardener +item.memespoon.name=§eMarket Gardener item.memory.name=item.null.name item.mese_gavel.name=Mese Gavel item.mese_pickaxe.name=Mese Pickaxe @@ -2892,7 +2893,7 @@ item.missile_skin_orange_insulation.desc=Not an orange juice bottle;$do not atte item.missile_skin_sleek.name=Missile Skin: IF-R&D item.missile_skin_sleek.desc=Chevrons are cool! item.missile_skin_soviet_glory.name=Missile Skin: Soviet Glory -item.missile_skin_soviet_glory.desc=услуга перевода недоступна +item.missile_skin_soviet_glory.desc=уÑ�луга перевода недоÑ�тупна item.missile_skin_soviet_stank.name=Missile Skin: Soviet Stank item.missile_skin_soviet_stank.desc=This one's got the real 60's stank to it. item.missile_soyuz.name=Soyuz-FG @@ -3023,7 +3024,7 @@ item.mp_warhead_15_balefire.name=Size 15 BF Warhead item.mp_warhead_15_boxcar.name=Size 15 Boxcar? item.mp_warhead_15_he.name=Size 15 HE Warhead item.mp_warhead_15_incendiary.name=Size 15 Incendiary Warhead -item.mp_warhead_15_n2.name=Size 15 N² Mine +item.mp_warhead_15_n2.name=Size 15 N² Mine item.mp_warhead_15_nuclear.name=Size 15 Nuclear Warhead item.mp_warhead_15_nuclear_mimi.name=Size 15 Mimi-chan's Head item.mp_warhead_15_nuclear_shark.name=Size 15 Nuclear Warhead @@ -3089,7 +3090,7 @@ item.nugget_les.name=Low Enriched Schrabidium Fuel Nugget item.nugget_mercury_tiny.name=Tiny Drop of Mercury item.nugget_mercury.name=Drop of Mercury item.nugget_mox_fuel.name=Nugget of MOX Fuel -item.nugget_mox_fuel.desc=Moxie says: §lTAX EVASION.§r +item.nugget_mox_fuel.desc=Moxie says: §lTAX EVASION.§r item.nugget_neptunium.name=Neptunium Nugget item.nugget_neptunium_fuel.name=Neptunium Fuel Nugget item.nugget_osmiridium.name=Osmiridium Nugget @@ -3197,7 +3198,7 @@ item.particle_aproton.name=Antiproton Capsule item.particle_aschrab.name=Antischrabidium Capsule item.particle_copper.name=Copper Ion Capsule item.particle_dark.name=Dark Matter Capsule -item.particle_digamma.name=§cThe Digamma Particle§r +item.particle_digamma.name=§cThe Digamma Particle§r item.particle_empty.name=Empty Particle Capsule item.particle_higgs.name=Higgs Boson Capsule item.particle_hydrogen.name=Hydrogen Ion Capsule @@ -3263,19 +3264,19 @@ item.pellet_rtg_weak.desc=Cheaper and weaker pellet, now with more U238! item.pellet_schrabidium.name=Pure Schrabidium Watz Pellet item.photo_panel.name=Photovoltaic Panel item.pile_rod_boron.name=Chicago Pile Control Rod -item.pile_rod_boron.desc=§9[Neutron Absorber]$§eClick to toggle +item.pile_rod_boron.desc=§9[Neutron Absorber]$§eClick to toggle item.pile_rod_detector.name=Chicago Pile Control & Detector Rod -item.pile_rod_detector.desc=§9[Neutron Detector/Absorber]$§eUse defuser to increase/decrease neutron limit$§eUse screwdriver w/o sneaking to inspect flux +item.pile_rod_detector.desc=§9[Neutron Detector/Absorber]$§eUse defuser to increase/decrease neutron limit$§eUse screwdriver w/o sneaking to inspect flux item.pile_rod_lithium.name=Chicago Pile Lithium Cell -item.pile_rod_lithium.desc=§a[Breedable Fuel]$§eUse hand drill to inspect core +item.pile_rod_lithium.desc=§a[Breedable Fuel]$§eUse hand drill to inspect core item.pile_rod_plutonium.name=Chicago Pile Plutonium Rod -item.pile_rod_plutonium.desc=§d[Neutron Source] +item.pile_rod_plutonium.desc=§d[Neutron Source] item.pile_rod_pu239.name=Chicago Pile Bred Uranium Rod -item.pile_rod_pu239.desc=§a[Reactive Fuel]$§eRich in Plutonium-239. +item.pile_rod_pu239.desc=§a[Reactive Fuel]$§eRich in Plutonium-239. item.pile_rod_source.name=Chicago Pile Ra226Be Neutron Source -item.pile_rod_source.desc=§d[Neutron Source] +item.pile_rod_source.desc=§d[Neutron Source] item.pile_rod_uranium.name=Chicago Pile Uranium Rod -item.pile_rod_uranium.desc=§a[Reactive Fuel]$§eUse hand drill to take core sample +item.pile_rod_uranium.desc=§a[Reactive Fuel]$§eUse hand drill to take core sample item.pill_iodine.name=Iodine Pill item.pill_iodine.desc=Removes negative effects item.pill_herbal.name=Herbal Paste @@ -3336,7 +3337,7 @@ item.powder_actinium_tiny.name=Tiny Pile of Actinium Powder item.powder_advanced_alloy.name=Advanced Alloy Powder item.powder_aluminium.name=Aluminium Powder item.powder_asbestos.name=Asbestos Powder -item.powder_asbestos.desc=§o\"Sniffffffff- MHHHHHHMHHHHHHHHH\"§r +item.powder_asbestos.desc=§o\"Sniffffffff- MHHHHHHMHHHHHHHHH\"§r item.powder_astatine.name=Astatine Powder item.powder_at209.name=Astatine-209 Powder item.powder_au198.name=Gold-198 Powder @@ -3370,7 +3371,7 @@ item.powder_cs137_tiny.name=Tiny Pile of Caesium-137 Powder item.powder_daffergon.name=Daffergon Powder item.powder_desh.name=Desh Powder item.powder_desh_mix.name=Desh Blend -item.powder_desh_ready.name=DeshReady™ Blend +item.powder_desh_ready.name=DeshReadyâ„¢ Blend item.powder_diamond.name=Diamond Powder item.powder_dineutronium.name=Dineutronium Powder item.powder_dura_steel.name=High-Speed Steel Powder @@ -3465,7 +3466,7 @@ item.rag_damp.name=Damp Cloth item.rag_piss.name=Piss-Soaked Rag item.rbmk_fuel_balefire.name=Balefire RBMK Fuel Rod item.rbmk_fuel_balefire_gold.name=Flashgold RBMK Fuel Rod -item.rbmk_fuel_drx.name=§cDigamma RBMK Fuel Rod§r +item.rbmk_fuel_drx.name=§cDigamma RBMK Fuel Rod§r item.rbmk_fuel_empty.name=Empty RBMK Fuel Rod item.rbmk_fuel_flashlead.name=Flashlead RBMK Fuel Rod item.rbmk_fuel_hea241.name=HEA-241 RBMK Fuel Rod @@ -3499,7 +3500,7 @@ item.rbmk_lid.name=RBMK Cover Panel item.rbmk_lid_glass.name=RBMK Glass Cover Panel item.rbmk_pellet_balefire.name=Balefire Fuel Pellet item.rbmk_pellet_balefire_gold.name=Flashgold Fuel Pellet -item.rbmk_pellet_drx.name=§cDigamma Fuel Pellet§r +item.rbmk_pellet_drx.name=§cDigamma Fuel Pellet§r item.rbmk_pellet_flashlead.name=Flashlead Fuel Pellet item.rbmk_pellet_hea241.name=HEA-241 Fuel Pellet item.rbmk_pellet_hea242.name=HEA-242 Fuel Pellet @@ -3545,7 +3546,7 @@ item.redstone_sword.name=Redstone Sword item.reer_graar.name=The Reer Graar item.remote.name=Broken Remote item.ring_pull.name=Ring Pull -item.ring_starmetal.name=§9Starmetal Ring§r +item.ring_starmetal.name=§9Starmetal Ring§r item.robes_boots.name=Field Boots item.robes_helmet.name=Casual Hoodie item.robes_legs.name=Casual Pants @@ -4063,12 +4064,12 @@ item.watz_pellet_depleted.nqr.name=Naquadria Watz Pellet (Depleted) item.watz_pellet_depleted.hen.name=HEN Watz Pellet (Depleted) item.watz_pellet_depleted.schrabidium.name=Schrabidium Watz Pellet (Depleted) item.weapon_bat.name=Richard's Default -item.weapon_bat_nail.name=The Cliché +item.weapon_bat_nail.name=The Cliché item.weapon_golf_club.name=Russian Mobster's Club item.weapon_pipe_lead.name=The Manual Override item.weapon_pipe_rusty.name=The Attitude Adjuster item.weapon_saw.name=Doctor Assisted Homicide -item.weaponized_starblaster_cell.name=§cRigged Star Blaster Energy Cell§r +item.weaponized_starblaster_cell.name=§cRigged Star Blaster Energy Cell§r item.wd40.name=VT-40 item.wild_p.name=Wild Pegasus Dry Whiskey item.wings_limp.name=Limp Wings @@ -4131,11 +4132,11 @@ rbmk.console.fuel_depletion=Monitor average fuel depletion rbmk.console.fuel_poison=Monitor average xenon poisoning rbmk.console.fuel_temp=Monitor average fuel temperature rbmk.control.level=%s -rbmk.control.red=§cRed Group -rbmk.control.yellow=§eYellow Group -rbmk.control.green=§aGreen Group -rbmk.control.blue=§1Blue Group -rbmk.control.purple=§5Purple Group +rbmk.control.red=§cRed Group +rbmk.control.yellow=§eYellow Group +rbmk.control.green=§aGreen Group +rbmk.control.blue=§1Blue Group +rbmk.control.purple=§5Purple Group rbmk.moderated=Moderated rbmk.rod.depletion=Depletion: %s rbmk.rod.xenon=Xenon poison: %s @@ -4198,7 +4199,7 @@ tile.barbed_wire_wither.name=Withered Barbed Wire tile.barrel_antimatter.name=Magnetic Antimatter Container tile.barrel_corroded.name=Corroded Barrel tile.barrel_iron.name=Iron Barrel -tile.barrel_plastic.name=Safe Barrel™ +tile.barrel_plastic.name=Safe Barrelâ„¢ tile.barrel_steel.name=Steel Barrel tile.barrel_tcalloy.name=Technetium Steel Barrel tile.barricade.name=Sand Bags @@ -4297,7 +4298,7 @@ tile.block_semtex.name=Block of Semtex tile.block_slag.name=Block of Slag tile.block_smore.name=Block of S'more tile.block_solinium.name=Block of Solinium -tile.block_starmetal.name=§9Block of Starmetal§r +tile.block_starmetal.name=§9Block of Starmetal§r tile.block_steel.name=Block of Steel tile.block_sulfur.name=Block of Sulfur tile.block_tantalium.name=Block of Tantalium @@ -4425,7 +4426,7 @@ tile.concrete_slab.ducrete_smooth.name=Ducrete Slab tile.concrete_smooth.name=Concrete tile.concrete_smooth_stairs.name=Concrete Stairs tile.concrete_stairs.name=Concrete Tile Stairs -tile.concrete_super.name=Über Concrete +tile.concrete_super.name=Über Concrete tile.concrete_super_broken.name=Moldy Debris tile.conveyor.name=Conveyor Belt tile.conveyor_chute.name=Conveyor Chute @@ -4565,11 +4566,11 @@ tile.frozen_grass.name=Frozen Grass tile.frozen_log.name=Frozen Log tile.frozen_planks.name=Frozen Planks tile.furnace_combination.name=Combination Oven -tile.furnace_combination.desc=A large furnace that can produce charcoal and coal coke.$Produces fluid byproducts.$Heat transfer rate: ΔT*0.25 TU/t +tile.furnace_combination.desc=A large furnace that can produce charcoal and coal coke.$Produces fluid byproducts.$Heat transfer rate: ΔT*0.25 TU/t tile.furnace_iron.name=Iron Furnace tile.furnace_iron.desc=Larger and more efficient furnace,$does not waste fuel when idle. tile.furnace_steel.name=Steel Furnace -tile.furnace_steel.desc=Very large furnace that can provide bonus items$when smelting ores. Requires external heat source.$Heat transfer rate: ΔT*0.05 TU/t$(Δ means difference and T means temperature) +tile.furnace_steel.desc=Very large furnace that can provide bonus items$when smelting ores. Requires external heat source.$Heat transfer rate: ΔT*0.05 TU/t$(Δ means difference and T means temperature) tile.fusion_center.name=Central Magnet Piece tile.fusion_conductor.name=Superconducting Magnet tile.fusion_core.name=Fusion Reactor Control @@ -4679,7 +4680,7 @@ tile.machine_bat9000.name=Big-Ass Tank 9000 tile.machine_battery.name=Energy Storage Block tile.machine_battery_potato.name=Potato Battery Block tile.machine_boiler.name=Boiler -tile.machine_boiler.desc=Large boiler that can boil water or heat up oil.$Requires external heat source.$Heat transfer rate: ΔT*0.01 TU/t +tile.machine_boiler.desc=Large boiler that can boil water or heat up oil.$Requires external heat source.$Heat transfer rate: ΔT*0.01 TU/t tile.machine_boiler_electric_off.name=Electric Oil Heater tile.machine_boiler_electric_on.name=Electric Oil Heater tile.machine_boiler_off.name=Oil Heater @@ -4694,7 +4695,7 @@ tile.machine_chungus.desc=Efficiency: 85%% tile.machine_coal_off.name=Combustion Generator tile.machine_coal_on.name=Combustion Generator tile.machine_coker.name=Coker Unit -tile.machine_coker.desc=Cokes oil, creating fluid byproducts.$Requires external heat source.$Heat transfer rate: ΔT*0.025 TU/t +tile.machine_coker.desc=Cokes oil, creating fluid byproducts.$Requires external heat source.$Heat transfer rate: ΔT*0.025 TU/t tile.machine_combine_factory.name=CMB Steel Furnace tile.machine_combustion_engine.name=Industrial Combustion Engine tile.machine_condenser.name=Steam Condenser @@ -4830,7 +4831,7 @@ tile.nuke_fstbmb.name=Balefire Bomb tile.nuke_gadget.name=The Gadget tile.nuke_man.name=Fat Man tile.nuke_mike.name=Ivy Mike -tile.nuke_n2.name=N² Mine +tile.nuke_n2.name=N² Mine tile.nuke_n45.name=N45 Naval Mine tile.nuke_prototype.name=The Prototype tile.nuke_solinium.name=The Blue Rinse @@ -4987,6 +4988,7 @@ tile.reinforced_brick.name=Reinforced Stone tile.reinforced_brick_stairs.name=Reinforced Stone Stairs tile.reinforced_ducrete.name=Reinforced Ducrete tile.reinforced_glass.name=Reinforced Glass +tile.reinforced_laminate.name=Laminate Glass tile.reinforced_lamp_off.name=Reinforced Lamp tile.reinforced_lamp_on.name=Reinforced Lamp tile.reinforced_light.name=Reinforced Glowstone @@ -5195,9 +5197,9 @@ tool.ability.silktouch=Silk Touch tool.ability.smelter=Auto-Smelter turret.animals=Target Passive: %s -turret.arty.artillery=§eArtillery Mode$Grace: 250m$Range: 3,000m -turret.arty.cannon=§eCannon Mode$Grace: 32m$Range: 250m -turret.arty.manual=§eManual Mode$Range: 3,000m +turret.arty.artillery=§eArtillery Mode$Grace: 250m$Range: 3,000m +turret.arty.cannon=§eCannon Mode$Grace: 32m$Range: 250m +turret.arty.manual=§eManual Mode$Range: 3,000m turret.machines=Target Machines: %s turret.mobs=Target Mobs: %s turret.none=None diff --git a/src/main/resources/assets/hbm/textures/blocks/glass/reinforced_glass.png b/src/main/resources/assets/hbm/textures/blocks/glass/reinforced_glass.png new file mode 100644 index 0000000000000000000000000000000000000000..d003abb6cb903b9698ecda6dd5605b8183fa8da7 GIT binary patch literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1quc!DLSt#}Etu9pEh}C`hmmdKI;Vst0A*c2!vFvP literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/glass/reinforced_glass_ct.png b/src/main/resources/assets/hbm/textures/blocks/glass/reinforced_glass_ct.png new file mode 100644 index 0000000000000000000000000000000000000000..2105d94d494a4afb95240fa981c83a4f9d800413 GIT binary patch literal 192 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=DjSL74G){)!Z!V5p~yV@QO1@|U}t&E_^5C2${USM-_Gs4G0h zFd^Xz<6=IE(gQ1)-DC}3H3YIZ++y}#kW<9CGndg|fm?HnlEExCs8o*?P&M9pEh}C`hmmdKI;Vst0A*c2!vFvP literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/reinforced_laminate_ct.png b/src/main/resources/assets/hbm/textures/blocks/reinforced_laminate_ct.png new file mode 100644 index 0000000000000000000000000000000000000000..2105d94d494a4afb95240fa981c83a4f9d800413 GIT binary patch literal 192 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=DjSL74G){)!Z!V5p~yV@QO1@|U}t&E_^5C2${USM-_Gs4G0h zFd^Xz<6=IE(gQ1)-DC}3H3YIZ++y}#kW<9CGndg|fm?HnlEExCs8o*?P&M#gAj`g}MR_>}C35&hQqSGH67cP0Q6grgmbv z)B~v+jinEm*k(`o!@K@mIole+;{8nbB@?9YfB$`9r*w+)5$T+`YWtPa=QDwU#Ng@b K=d#Wzp$Py=Zi=@6 literal 0 HcmV?d00001 From 3085b3c7dcf82d2362094e31259c3b29388e7b63 Mon Sep 17 00:00:00 2001 From: burningwater202 Date: Thu, 25 May 2023 21:38:49 -0400 Subject: [PATCH 063/432] Fork me in the glass I have no idea what I'm doing --- .../com/example/examplemod/ExampleMod.java | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 src/main/java/com/example/examplemod/ExampleMod.java diff --git a/src/main/java/com/example/examplemod/ExampleMod.java b/src/main/java/com/example/examplemod/ExampleMod.java new file mode 100644 index 000000000..4245c7e92 --- /dev/null +++ b/src/main/java/com/example/examplemod/ExampleMod.java @@ -0,0 +1,20 @@ +package com.example.examplemod; + +import net.minecraft.init.Blocks; +import cpw.mods.fml.common.Mod; +import cpw.mods.fml.common.Mod.EventHandler; +import cpw.mods.fml.common.event.FMLInitializationEvent; + +@Mod(modid = ExampleMod.MODID, version = ExampleMod.VERSION) +public class ExampleMod +{ + public static final String MODID = "examplemod"; + public static final String VERSION = "1.0"; + + @EventHandler + public void init(FMLInitializationEvent event) + { + // some example code + System.out.println("DIRT BLOCK >> "+Blocks.dirt.getUnlocalizedName()); + } +} From 85ce4008a14255a2c26506ba675cc74d6e453cce Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 26 May 2023 14:54:57 +0200 Subject: [PATCH 064/432] train coupling (physics pending) --- .../java/com/hbm/crafting/WeaponRecipes.java | 10 +-- .../hbm/entity/train/EntityRailCarBase.java | 80 +++++++++++++++++- .../entity/train/EntityRailCarRidable.java | 1 + .../com/hbm/entity/train/TrainCargoTram.java | 2 + src/main/java/com/hbm/items/ModItems.java | 3 + .../com/hbm/items/tool/ItemCouplingTool.java | 5 ++ .../java/com/hbm/main/CraftingManager.java | 2 +- .../hbm/textures/items/coupling_tool.png | Bin 0 -> 183 bytes 8 files changed, 96 insertions(+), 7 deletions(-) create mode 100644 src/main/java/com/hbm/items/tool/ItemCouplingTool.java create mode 100644 src/main/resources/assets/hbm/textures/items/coupling_tool.png diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index 87da12304..a85f8ca36 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -188,11 +188,11 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_12gauge, 12), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_buckshot, 'G', ModItems.ballistite, 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', ModItems.plate_polymer }); CraftingManager.addRecipeAuto(ModItems.ammo_12gauge.stackFromEnum(12, Ammo12Gauge.PERCUSSION), new Object[] { "G", "C", "P", 'G', ModItems.ballistite, 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_4gauge, 12), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_buckshot, 'G', ModItems.cordite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(12, Ammo4Gauge.SLUG), new Object[] { " I ", "GCL", " P ", 'I', PB.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(12, Ammo4Gauge.FLECHETTE), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_flechette, 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(4, Ammo4Gauge.EXPLOSIVE), new Object[] { " I ", "GCL", " P ", 'I', ModBlocks.tnt, 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(6, Ammo4Gauge.EXPLOSIVE), new Object[] { " I ", "GCL", " P ", 'I', ANY_PLASTICEXPLOSIVE.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(4, Ammo4Gauge.MINING), new Object[] { " I ", "GCL", " P ", 'I', ModBlocks.det_miner, 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(12, Ammo4Gauge.SLUG), new Object[] { " I ", "GCL", " P ", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(12, Ammo4Gauge.FLECHETTE), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_flechette, 'G', ModItems.cordite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(4, Ammo4Gauge.EXPLOSIVE), new Object[] { " I ", "GCL", " P ", 'I', ModBlocks.tnt, 'G', ModItems.cordite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(6, Ammo4Gauge.EXPLOSIVE), new Object[] { " I ", "GCL", " P ", 'I', ANY_PLASTICEXPLOSIVE.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(4, Ammo4Gauge.MINING), new Object[] { " I ", "GCL", " P ", 'I', ModBlocks.det_miner, 'G', ModItems.cordite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); CraftingManager.addShapelessAuto(ModItems.ammo_4gauge.stackFromEnum(Ammo4Gauge.QUACK), new Object[] { ModItems.ammo_4gauge, ModItems.nugget_bismuth, ModItems.nugget_tantalium, ModItems.ball_dynamite }); CraftingManager.addRecipeAuto(ModItems.ammo_20gauge.stackFromEnum(12, Ammo20Gauge.STOCK), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_buckshot, 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', CU.plate() }); CraftingManager.addRecipeAuto(ModItems.ammo_20gauge.stackFromEnum(12, Ammo20Gauge.SLUG), new Object[] { " I ", "GCL", " P ", 'I', PB.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', CU.plate() }); diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java index f816f07bd..c63fca7cf 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java @@ -1,8 +1,11 @@ package com.hbm.entity.train; +import java.util.List; + import com.hbm.blocks.rail.IRailNTM; import com.hbm.blocks.rail.IRailNTM.RailContext; import com.hbm.blocks.rail.IRailNTM.TrackGauge; +import com.hbm.items.ModItems; import com.hbm.util.fauxpointtwelve.BlockPos; import cpw.mods.fml.relauncher.Side; @@ -11,6 +14,7 @@ import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.DamageSource; import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; @@ -51,6 +55,51 @@ public abstract class EntityRailCarBase extends Entity { @Override protected void entityInit() { } @Override protected void readEntityFromNBT(NBTTagCompound nbt) { } @Override protected void writeEntityToNBT(NBTTagCompound nbt) { } + + @Override + public boolean interactFirst(EntityPlayer player) { + + if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.coupling_tool) { + + List intersecting = worldObj.getEntitiesWithinAABB(EntityRailCarBase.class, this.boundingBox.expand(2D, 0D, 2D)); + + for(EntityRailCarBase neighbor : intersecting) { + if(neighbor == this) continue; + if(neighbor.getGauge() != this.getGauge()) continue; + + TrainCoupling closestOwnCoupling = null; + TrainCoupling closestNeighborCoupling = null; + double closestDist = Double.POSITIVE_INFINITY; + + for(TrainCoupling ownCoupling : TrainCoupling.values()) { + for(TrainCoupling neighborCoupling : TrainCoupling.values()) { + Vec3 ownPos = this.getCouplingPos(ownCoupling); + Vec3 neighborPos = neighbor.getCouplingPos(neighborCoupling); + if(ownPos != null && neighborPos != null) { + Vec3 delta = Vec3.createVectorHelper(ownPos.xCoord - neighborPos.xCoord, ownPos.yCoord - neighborPos.yCoord, ownPos.zCoord - neighborPos.zCoord); + double length = delta.lengthVector(); + + if(length < 1 && length < closestDist) { + closestDist = length; + closestOwnCoupling = ownCoupling; + closestNeighborCoupling = neighborCoupling; + } + } + } + } + + if(closestOwnCoupling != null && closestNeighborCoupling != null) { + if(this.getCoupledTo(closestOwnCoupling) != null) continue; + if(neighbor.getCoupledTo(closestNeighborCoupling) != null) continue; + this.couple(closestOwnCoupling, neighbor); + neighbor.couple(closestNeighborCoupling, this); + return true; + } + } + } + + return false; + } @Override public void onUpdate() { @@ -77,6 +126,13 @@ public abstract class EntityRailCarBase extends Entity { this.setRotation(this.rotationYaw, this.rotationPitch); } + /* + * TODO: move movement into the world tick event handler. + * step 1: detect linked trains, move linked units (LTUs) as one later + * step 2: move LTUs together using coupling rules (important to happen first, consistency has to be achieved before major movement) + * step 3: move LTUs based on their engine and gravity speed + * step 4: move LTUs based on collisions between LTUs (important to happen last, collision is most important) + */ BlockPos anchor = this.getCurentAnchorPos(); Vec3 frontPos = getRelPosAlongRail(anchor, this.getLengthSpan()); Vec3 backPos = getRelPosAlongRail(anchor, -this.getLengthSpan()); @@ -226,6 +282,10 @@ public abstract class EntityRailCarBase extends Entity { public abstract TrackGauge getGauge(); /** Returns the length between the core and one of the bogies */ public abstract double getLengthSpan(); + /* Returns a collision box, usually smaller than the entity's AABB for rendering, which is used for colliding trains */ + public AxisAlignedBB getCollisionBox() { + return this.boundingBox; + } /** Returns the "true" position of the train, i.e. the block it wants to snap to */ public BlockPos getCurentAnchorPos() { @@ -348,11 +408,29 @@ public abstract class EntityRailCarBase extends Entity { BACK } + public double getCouplingDist(TrainCoupling coupling) { + return 0D; + } + public Vec3 getCouplingPos(TrainCoupling coupling) { - return null; + double dist = this.getCouplingDist(coupling); + + if(dist <= 0) return null; + + Vec3 rot = Vec3.createVectorHelper(0, 0, dist); + rot.rotateAroundY((float) (-this.rotationYaw * Math.PI / 180D)); + rot.xCoord += this.renderX; + rot.yCoord += this.renderY; + rot.zCoord += this.renderZ; + return rot; } public EntityRailCarBase getCoupledTo(TrainCoupling coupling) { return coupling == TrainCoupling.FRONT ? this.coupledFront : coupling == TrainCoupling.BACK ? this.coupledBack : null; } + + public void couple(TrainCoupling coupling, EntityRailCarBase to) { + if(coupling == TrainCoupling.FRONT) this.coupledFront = to; + if(coupling == TrainCoupling.BACK) this.coupledBack = to; + } } diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java b/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java index 272fa431b..7cd217354 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java @@ -77,6 +77,7 @@ public abstract class EntityRailCarRidable extends EntityRailCarCargo { @Override public boolean interactFirst(EntityPlayer player) { + if(super.interactFirst(player)) return true; if(worldObj.isRemote) return true; double nearestDist = Double.POSITIVE_INFINITY; diff --git a/src/main/java/com/hbm/entity/train/TrainCargoTram.java b/src/main/java/com/hbm/entity/train/TrainCargoTram.java index e0d1aaa2a..602efd8cc 100644 --- a/src/main/java/com/hbm/entity/train/TrainCargoTram.java +++ b/src/main/java/com/hbm/entity/train/TrainCargoTram.java @@ -18,6 +18,7 @@ import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; +import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.DamageSource; import net.minecraft.util.ResourceLocation; import net.minecraft.util.Vec3; @@ -54,6 +55,7 @@ public class TrainCargoTram extends EntityRailCarElectric implements IGUIProvide @Override public boolean shouldRiderSit() { return false; } @Override public int getSizeInventory() { return 29; } @Override public String getInventoryName() { return this.hasCustomInventoryName() ? this.getEntityName() : "container.trainTram"; } + @Override public AxisAlignedBB getCollisionBox() { return AxisAlignedBB.getBoundingBox(renderX, renderY, renderZ, renderX, renderY + 1, renderZ).expand(4, 0, 4); } @Override public int getMaxPower() { return this.getPowerConsumption() * 100; } @Override public int getPowerConsumption() { return 10; } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 68ae2a5a4..c87bb3a60 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1252,6 +1252,7 @@ public class ModItems { public static Item rbmk_tool; public static Item coltan_tool; public static Item power_net_tool; + public static Item coupling_tool; public static Item template_folder; public static Item journal_pip; @@ -4580,6 +4581,7 @@ public class ModItems { rbmk_tool = new ItemRBMKTool().setUnlocalizedName("rbmk_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":rbmk_tool"); coltan_tool = new ItemColtanCompass().setUnlocalizedName("coltan_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":coltass"); power_net_tool = new ItemPowerNetTool().setUnlocalizedName("power_net_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":power_net_tool"); + coupling_tool = new ItemCouplingTool().setUnlocalizedName("coupling_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":coupling_tool"); key = new ItemKey().setUnlocalizedName("key").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":key"); key_red = new ItemCustomLore().setUnlocalizedName("key_red").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":key_red"); @@ -6722,6 +6724,7 @@ public class ModItems { GameRegistry.registerItem(rbmk_tool, rbmk_tool.getUnlocalizedName()); GameRegistry.registerItem(coltan_tool, coltan_tool.getUnlocalizedName()); GameRegistry.registerItem(power_net_tool, power_net_tool.getUnlocalizedName()); + GameRegistry.registerItem(coupling_tool, coupling_tool.getUnlocalizedName()); GameRegistry.registerItem(dosimeter, dosimeter.getUnlocalizedName()); GameRegistry.registerItem(geiger_counter, geiger_counter.getUnlocalizedName()); GameRegistry.registerItem(digamma_diagnostic, digamma_diagnostic.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/tool/ItemCouplingTool.java b/src/main/java/com/hbm/items/tool/ItemCouplingTool.java new file mode 100644 index 000000000..c6295697d --- /dev/null +++ b/src/main/java/com/hbm/items/tool/ItemCouplingTool.java @@ -0,0 +1,5 @@ +package com.hbm.items.tool; + +import net.minecraft.item.Item; + +public class ItemCouplingTool extends Item { } diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 7fda63959..0b25b3eb3 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -909,7 +909,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(Items.lead, 4), new Object[] { "RSR", 'R', DictFrame.fromOne(ModItems.plant_item, EnumPlantType.ROPE), 'S', KEY_SLIME }); addRecipeAuto(new ItemStack(ModItems.rag, 4), new Object[] { "SW", "WS", 'S', Items.string, 'W', Blocks.wool }); - addShapelessAuto(new ItemStack(ModItems.solid_fuel, 2), new Object[] { Fluids.HEATINGOIL.getDict(1000), KEY_TOOL_CHEMISTRYSET }); + addShapelessAuto(new ItemStack(ModItems.solid_fuel, 3), new Object[] { Fluids.HEATINGOIL.getDict(16000), KEY_TOOL_CHEMISTRYSET }); addShapelessAuto(new ItemStack(ModItems.canister_full, 2, Fluids.LUBRICANT.getID()), new Object[] { Fluids.HEATINGOIL.getDict(1000), Fluids.UNSATURATEDS.getDict(1000), ModItems.canister_empty, ModItems.canister_empty, KEY_TOOL_CHEMISTRYSET }); addRecipeAuto(new ItemStack(ModBlocks.machine_condenser), new Object[] { "SIS", "ICI", "SIS", 'S', STEEL.ingot(), 'I', IRON.plate(), 'C', ModItems.board_copper }); diff --git a/src/main/resources/assets/hbm/textures/items/coupling_tool.png b/src/main/resources/assets/hbm/textures/items/coupling_tool.png new file mode 100644 index 0000000000000000000000000000000000000000..e09856ebcd4ec617b96bfe0b59822f598d444e14 GIT binary patch literal 183 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfug4{y~o d<8Q<(sS7^0tNXpyaSqUC22WQ%mvv4FO#qb{KmGs! literal 0 HcmV?d00001 From 68354bd6f3d5500dd953d20682763c789cba9db6 Mon Sep 17 00:00:00 2001 From: Toshayo Date: Fri, 26 May 2023 18:15:13 +0200 Subject: [PATCH 065/432] Added CurseForge task configuration --- .gitignore | 6 ++++++ build.gradle | 38 +++++++++++++++++++++++++++++++++++ changelog | 0 curseforge.properties.example | 5 +++++ 4 files changed, 49 insertions(+) create mode 100644 changelog create mode 100644 curseforge.properties.example diff --git a/.gitignore b/.gitignore index 231f1afed..2b15b7112 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,9 @@ build # other run + +# CurseForge configuration +/curseforge.properties + +# Changelog backup +/changelog.bak \ No newline at end of file diff --git a/build.gradle b/build.gradle index 2817f3c3c..9a1ea516d 100644 --- a/build.gradle +++ b/build.gradle @@ -1,3 +1,6 @@ +import java.nio.file.Files +import java.nio.file.Paths + buildscript { repositories { maven { url = 'https://maven.minecraftforge.net/' } @@ -10,6 +13,14 @@ buildscript { } apply plugin: 'forge' +apply plugin: 'curseforge' + + +if(Files.exists(Paths.get("curseforge.properties"))) { + // Load CurseForge configuration + ext.cfprops = parseConfig(file("curseforge.properties")) +} + def version_name = version = mod_version if(!mod_build_number.isEmpty()) { version_name = mod_version + "_X" + mod_build_number @@ -114,3 +125,30 @@ task version { println project.version } } + +if(Files.exists(Paths.get("curseforge.properties"))) { + curse { + apiKey = cfprops.api_key + projectId = cfprops.project_id + releaseType = "release" + + if (Files.exists(Paths.get("changelog"))) { + changelog = String.join("\r\n", Files.readAllLines(Paths.get("changelog"))) + + // Perform a backup of the changelog and create a new file for next changes + doLast { + Files.move(Paths.get("changelog"), Paths.get("changelog.bak")) + Files.createFile(Paths.get("changelog")) + } + } + } +} + +// Properties file parsing helper +static def parseConfig(File config) { + config.withReader { + def prop = new Properties() + prop.load(it) + return (new ConfigSlurper().parse(prop)) + } +} diff --git a/changelog b/changelog new file mode 100644 index 000000000..e69de29bb diff --git a/curseforge.properties.example b/curseforge.properties.example new file mode 100644 index 000000000..002b2b4f5 --- /dev/null +++ b/curseforge.properties.example @@ -0,0 +1,5 @@ +# CurseForge API token (obtainable from https://legacy.curseforge.com/account/api-tokens) +api_key= + +# CurseForge project ID +project_id= From e20c4f16118a0b48f0e68bef3e4bbf72d89f0c54 Mon Sep 17 00:00:00 2001 From: Toshayo <67237514+Toshayo@users.noreply.github.com> Date: Fri, 26 May 2023 18:26:43 +0200 Subject: [PATCH 066/432] Update .gitignore Newlines are good --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 2b15b7112..22222fc39 100644 --- a/.gitignore +++ b/.gitignore @@ -25,4 +25,4 @@ run /curseforge.properties # Changelog backup -/changelog.bak \ No newline at end of file +/changelog.bak From e12065440381d6a4cd05bd52d96c6c6a69297368 Mon Sep 17 00:00:00 2001 From: Bob Date: Sat, 27 May 2023 23:38:15 +0200 Subject: [PATCH 067/432] more train coupling stuff --- .../hbm/entity/train/EntityRailCarBase.java | 17 +++++++++- .../entity/train/EntityRailCarRidable.java | 34 ++++++++++++++++--- .../com/hbm/entity/train/TrainCargoTram.java | 3 +- .../entity/train/TrainCargoTramTrailer.java | 3 ++ .../java/com/hbm/items/special/ItemTrain.java | 8 +++++ 5 files changed, 58 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java index c63fca7cf..e33f02380 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java @@ -1,5 +1,6 @@ package com.hbm.entity.train; +import java.util.ArrayList; import java.util.List; import com.hbm.blocks.rail.IRailNTM; @@ -93,6 +94,7 @@ public abstract class EntityRailCarBase extends Entity { if(neighbor.getCoupledTo(closestNeighborCoupling) != null) continue; this.couple(closestOwnCoupling, neighbor); neighbor.couple(closestNeighborCoupling, this); + player.swingItem(); return true; } } @@ -282,10 +284,14 @@ public abstract class EntityRailCarBase extends Entity { public abstract TrackGauge getGauge(); /** Returns the length between the core and one of the bogies */ public abstract double getLengthSpan(); - /* Returns a collision box, usually smaller than the entity's AABB for rendering, which is used for colliding trains */ + /** Returns a collision box, usually smaller than the entity's AABB for rendering, which is used for colliding trains */ public AxisAlignedBB getCollisionBox() { return this.boundingBox; } + /** Returns a collision box used for block collisions when derailed */ + @Override public AxisAlignedBB getBoundingBox() { + return this.boundingBox; + } /** Returns the "true" position of the train, i.e. the block it wants to snap to */ public BlockPos getCurentAnchorPos() { @@ -417,6 +423,8 @@ public abstract class EntityRailCarBase extends Entity { if(dist <= 0) return null; + if(coupling == TrainCoupling.BACK) dist *= -1; + Vec3 rot = Vec3.createVectorHelper(0, 0, dist); rot.rotateAroundY((float) (-this.rotationYaw * Math.PI / 180D)); rot.xCoord += this.renderX; @@ -433,4 +441,11 @@ public abstract class EntityRailCarBase extends Entity { if(coupling == TrainCoupling.FRONT) this.coupledFront = to; if(coupling == TrainCoupling.BACK) this.coupledBack = to; } + + public static class LogicalTrainUnit { + + List trains = new ArrayList(); + + //TBI + } } diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java b/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java index 7cd217354..42aaa0248 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java @@ -129,7 +129,7 @@ public abstract class EntityRailCarRidable extends EntityRailCarCargo { if(nearestSeat == -1) { player.mountEntity(this); } else { - SeatDummyEntity dummySeat = new SeatDummyEntity(worldObj, this); + SeatDummyEntity dummySeat = new SeatDummyEntity(worldObj, this, nearestSeat); Vec3 passengerSeat = this.getPassengerSeats()[nearestSeat]; passengerSeat.rotateAroundY((float) (-this.rotationYaw * Math.PI / 180)); double x = renderX + passengerSeat.xCoord; @@ -194,16 +194,17 @@ public abstract class EntityRailCarRidable extends EntityRailCarCargo { private double trainX; private double trainY; private double trainZ; - public EntityRailCarBase train; + public EntityRailCarRidable train; public SeatDummyEntity(World world) { super(world); this.setSize(0.5F, 0.1F);} - public SeatDummyEntity(World world, EntityRailCarBase train) { + public SeatDummyEntity(World world, EntityRailCarRidable train, int index) { this(world); this.train = train; if(train != null) this.dataWatcher.updateObject(3, train.getEntityId()); + this.dataWatcher.updateObject(4, index); } - @Override protected void entityInit() { this.dataWatcher.addObject(3, new Integer(0)); } + @Override protected void entityInit() { this.dataWatcher.addObject(3, new Integer(0)); this.dataWatcher.addObject(4, new Integer(0)); } @Override protected void writeEntityToNBT(NBTTagCompound nbt) { } @Override public boolean writeToNBTOptional(NBTTagCompound nbt) { return false; } @Override public void readEntityFromNBT(NBTTagCompound nbt) { this.setDead(); } @@ -238,7 +239,30 @@ public abstract class EntityRailCarRidable extends EntityRailCarCargo { @Override public void updateRiderPosition() { if(this.riddenByEntity != null) { - this.riddenByEntity.setPosition(this.posX, this.posY + 1, this.posZ); + + if(train == null) { + int eid = this.dataWatcher.getWatchableObjectInt(3); + Entity entity = worldObj.getEntityByID(eid); + if(entity instanceof EntityRailCarRidable) { + train = (EntityRailCarRidable) entity; + } + } + + //fallback for when train is null + if(train == null) { + this.riddenByEntity.setPosition(posX, posY + 1, posZ); + return; + } + + //doing it like this instead of with the position directly removes any discrepancies caused by entity tick order + //mmhmhmhm silky smooth + int index = this.dataWatcher.getWatchableObjectInt(4); + Vec3 rot = this.train.getPassengerSeats()[index]; + rot.rotateAroundY((float) (-train.rotationYaw * Math.PI / 180)); + double x = train.renderX + rot.xCoord; + double y = train.renderY + rot.yCoord; + double z = train.renderZ + rot.zCoord; + this.riddenByEntity.setPosition(x, y, z); } } } diff --git a/src/main/java/com/hbm/entity/train/TrainCargoTram.java b/src/main/java/com/hbm/entity/train/TrainCargoTram.java index 602efd8cc..abb278066 100644 --- a/src/main/java/com/hbm/entity/train/TrainCargoTram.java +++ b/src/main/java/com/hbm/entity/train/TrainCargoTram.java @@ -51,11 +51,12 @@ public class TrainCargoTram extends EntityRailCarElectric implements IGUIProvide @Override public TrackGauge getGauge() { return TrackGauge.STANDARD; } @Override public double getLengthSpan() { return 1.5; } - @Override public Vec3 getRiderSeatPosition() { return Vec3.createVectorHelper(0.375, 2.25, 0.5); } + @Override public Vec3 getRiderSeatPosition() { return Vec3.createVectorHelper(0.375, 2.375, 0.5); } @Override public boolean shouldRiderSit() { return false; } @Override public int getSizeInventory() { return 29; } @Override public String getInventoryName() { return this.hasCustomInventoryName() ? this.getEntityName() : "container.trainTram"; } @Override public AxisAlignedBB getCollisionBox() { return AxisAlignedBB.getBoundingBox(renderX, renderY, renderZ, renderX, renderY + 1, renderZ).expand(4, 0, 4); } + @Override public double getCouplingDist(TrainCoupling coupling) { return coupling != null ? 2.75 : 0; } @Override public int getMaxPower() { return this.getPowerConsumption() * 100; } @Override public int getPowerConsumption() { return 10; } diff --git a/src/main/java/com/hbm/entity/train/TrainCargoTramTrailer.java b/src/main/java/com/hbm/entity/train/TrainCargoTramTrailer.java index 8ff36ead4..6e771e40a 100644 --- a/src/main/java/com/hbm/entity/train/TrainCargoTramTrailer.java +++ b/src/main/java/com/hbm/entity/train/TrainCargoTramTrailer.java @@ -2,6 +2,7 @@ package com.hbm.entity.train; import com.hbm.blocks.rail.IRailNTM.TrackGauge; +import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.DamageSource; import net.minecraft.util.Vec3; import net.minecraft.world.World; @@ -28,6 +29,8 @@ public class TrainCargoTramTrailer extends EntityRailCarCargo { @Override public double getLengthSpan() { return 1.5; } @Override public int getSizeInventory() { return 29; } @Override public String getInventoryName() { return this.hasCustomInventoryName() ? this.getEntityName() : "container.trainTramTrailer"; } + @Override public AxisAlignedBB getCollisionBox() { return AxisAlignedBB.getBoundingBox(renderX, renderY, renderZ, renderX, renderY + 1, renderZ).expand(4, 0, 4); } + @Override public double getCouplingDist(TrainCoupling coupling) { return coupling != null ? 2.75 : 0; } @Override public double getCurrentSpeed() { diff --git a/src/main/java/com/hbm/items/special/ItemTrain.java b/src/main/java/com/hbm/items/special/ItemTrain.java index 05f55231d..d8353bcd2 100644 --- a/src/main/java/com/hbm/items/special/ItemTrain.java +++ b/src/main/java/com/hbm/items/special/ItemTrain.java @@ -8,12 +8,14 @@ import com.hbm.entity.train.TrainCargoTram; import com.hbm.entity.train.TrainCargoTramTrailer; import com.hbm.items.ItemEnumMulti; import com.hbm.util.EnumUtil; +import com.hbm.util.fauxpointtwelve.BlockPos; import net.minecraft.block.Block; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.Vec3; import net.minecraft.world.World; public class ItemTrain extends ItemEnumMulti { @@ -74,7 +76,13 @@ public class ItemTrain extends ItemEnumMulti { if(train != null && train.getGauge() == ((IRailNTM) b).getGauge(world, x, y, z)) { if(!world.isRemote) { train.setPosition(x + fx, y + fy, z + fz); + BlockPos anchor = train.getCurentAnchorPos(); train.rotationYaw = entity.rotationYaw; + Vec3 corePos = train.getRelPosAlongRail(anchor, 0); + train.setPosition(corePos.xCoord, corePos.yCoord, corePos.zCoord); + Vec3 frontPos = train.getRelPosAlongRail(anchor, train.getLengthSpan()); + Vec3 backPos = train.getRelPosAlongRail(anchor, -train.getLengthSpan()); + train.rotationYaw = train.generateYaw(frontPos, backPos); world.spawnEntityInWorld(train); } From 727a158ed1094571946922aa668db4908caa0274 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 28 May 2023 21:53:58 +0200 Subject: [PATCH 068/432] bauxite, achievement stuff, fixes --- gradle.properties | 2 +- src/main/java/com/hbm/blocks/BlockEnums.java | 3 +- src/main/java/com/hbm/config/WorldConfig.java | 42 +++++++---- .../java/com/hbm/crafting/MineralRecipes.java | 4 ++ .../hbm/handler/guncfg/Gun20GaugeFactory.java | 4 ++ .../com/hbm/inventory/SlotCraftingOutput.java | 36 +--------- .../java/com/hbm/inventory/fluid/Fluids.java | 6 +- .../hbm/inventory/recipes/CokerRecipes.java | 1 + .../inventory/recipes/CombinationRecipes.java | 3 + .../recipes/SolidificationRecipes.java | 1 + src/main/java/com/hbm/items/ItemEnums.java | 12 ++++ src/main/java/com/hbm/items/ModItems.java | 19 +---- .../com/hbm/items/special/ItemBedrockOre.java | 4 +- .../com/hbm/items/special/ItemByproduct.java | 6 +- .../java/com/hbm/items/tool/ItemBoltgun.java | 4 ++ .../com/hbm/items/tool/ItemToolAbility.java | 17 ++--- src/main/java/com/hbm/lib/HbmWorldGen.java | 22 +++--- src/main/java/com/hbm/lib/RefStrings.java | 2 +- src/main/java/com/hbm/main/MainRegistry.java | 30 +++++--- .../java/com/hbm/main/ModEventHandler.java | 24 +------ src/main/java/com/hbm/main/ServerProxy.java | 5 +- .../java/com/hbm/packet/AnvilCraftPacket.java | 16 +---- .../weapon/ItemRenderWeaponFFMaresLeg.java | 3 + .../machine/TileEntityMachineTurbineGas.java | 6 +- .../storage/TileEntityMachineFENSU.java | 39 +++++++++- .../java/com/hbm/util/AchievementHandler.java | 67 ++++++++++++++++++ src/main/java/com/hbm/util/ChatBuilder.java | 23 ++++++ .../com/hbm/util/WeightedRandomGeneric.java | 17 +++++ .../com/hbm/world/feature/BedrockOre.java | 63 ++++++++++++++++ .../java/com/hbm/world/feature/OilSpot.java | 2 +- .../com/hbm/world/feature/OreLayer3D.java | 24 +++++-- .../hbm/world/generator/DungeonToolbox.java | 26 ------- src/main/resources/assets/hbm/lang/de_DE.lang | 28 +++++--- src/main/resources/assets/hbm/lang/en_US.lang | 26 ++++--- .../blocks/stone_resource.bauxite.png | Bin 0 -> 811 bytes .../assets/hbm/textures/gui/fluids/redmud.png | Bin 0 -> 624 bytes .../textures/items/achievement_icon.acid.png | Bin 0 -> 29485 bytes .../textures/items/achievement_icon.balls.png | Bin 0 -> 31217 bytes ...l.png => achievement_icon.digammafeel.png} | Bin .../achievement_icon.digammaforourright.png | Bin 0 -> 208 bytes ... => achievement_icon.digammakauaimoho.png} | Bin ...w.png => achievement_icon.digammaknow.png} | Bin ...ee.png => achievement_icon.digammasee.png} | Bin ....png => achievement_icon.digammaunity.png} | Bin ...ng => achievement_icon.digammaupontop.png} | Bin .../items/achievement_icon.gofish.png | Bin 0 -> 174 bytes .../hbm/textures/items/digamma_128kbps.png | Bin 200 -> 0 bytes .../textures/items/digamma_event_horizon.png | Bin 169 -> 0 bytes 48 files changed, 398 insertions(+), 189 deletions(-) create mode 100644 src/main/java/com/hbm/util/AchievementHandler.java create mode 100644 src/main/java/com/hbm/util/WeightedRandomGeneric.java create mode 100644 src/main/resources/assets/hbm/textures/blocks/stone_resource.bauxite.png create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/redmud.png create mode 100644 src/main/resources/assets/hbm/textures/items/achievement_icon.acid.png create mode 100644 src/main/resources/assets/hbm/textures/items/achievement_icon.balls.png rename src/main/resources/assets/hbm/textures/items/{digamma_feel.png => achievement_icon.digammafeel.png} (100%) create mode 100644 src/main/resources/assets/hbm/textures/items/achievement_icon.digammaforourright.png rename src/main/resources/assets/hbm/textures/items/{digamma_kauai_moho.png => achievement_icon.digammakauaimoho.png} (100%) rename src/main/resources/assets/hbm/textures/items/{digamma_know.png => achievement_icon.digammaknow.png} (100%) rename src/main/resources/assets/hbm/textures/items/{digamma_see.png => achievement_icon.digammasee.png} (100%) rename src/main/resources/assets/hbm/textures/items/{digamma_unity.png => achievement_icon.digammaunity.png} (100%) rename src/main/resources/assets/hbm/textures/items/{digamma_up_on_top.png => achievement_icon.digammaupontop.png} (100%) create mode 100644 src/main/resources/assets/hbm/textures/items/achievement_icon.gofish.png delete mode 100644 src/main/resources/assets/hbm/textures/items/digamma_128kbps.png delete mode 100644 src/main/resources/assets/hbm/textures/items/digamma_event_horizon.png diff --git a/gradle.properties b/gradle.properties index b9eb6b50b..17db097d2 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4607 +mod_build_number=4613 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models, porting),\ diff --git a/src/main/java/com/hbm/blocks/BlockEnums.java b/src/main/java/com/hbm/blocks/BlockEnums.java index 5a8e89122..717ac2639 100644 --- a/src/main/java/com/hbm/blocks/BlockEnums.java +++ b/src/main/java/com/hbm/blocks/BlockEnums.java @@ -7,7 +7,8 @@ public class BlockEnums { ASBESTOS, HEMATITE, MALACHITE, - LIMESTONE + LIMESTONE, + BAUXITE } public static enum EnumBiomeType { diff --git a/src/main/java/com/hbm/config/WorldConfig.java b/src/main/java/com/hbm/config/WorldConfig.java index 9f560b536..62d951918 100644 --- a/src/main/java/com/hbm/config/WorldConfig.java +++ b/src/main/java/com/hbm/config/WorldConfig.java @@ -33,14 +33,20 @@ public class WorldConfig { public static int bedrockOilSpawn = 200; public static int meteoriteSpawn = 500; - public static int bedrockIronSpawn = 200; + public static int bedrockIronSpawn = 100; public static int bedrockCopperSpawn = 200; - public static int bedrockBoraxSpawn = 300; - public static int bedrockAsbestosSpawn = 300; - public static int bedrockNiobiumSpawn = 300; - public static int bedrockTitaniumSpawn = 400; - public static int bedrockTungstenSpawn = 300; - public static int bedrockGoldSpawn = 500; + public static int bedrockBoraxSpawn = 50; + public static int bedrockAsbestosSpawn = 50; + public static int bedrockNiobiumSpawn = 50; + public static int bedrockTitaniumSpawn = 100; + public static int bedrockTungstenSpawn = 100; + public static int bedrockGoldSpawn = 50; + public static int bedrockUraniumSpawn = 35; + public static int bedrockThoriumSpawn = 50; + public static int bedrockCoalSpawn = 200; + public static int bedrockNiterSpawn = 50; + public static int bedrockFluoriteSpawn = 50; + public static int bedrockRedstoneSpawn = 50; public static int ironClusterSpawn = 4; public static int titaniumClusterSpawn = 2; @@ -133,14 +139,20 @@ public class WorldConfig { bedrockOilSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.22_bedrockOilSpawnRate", "Spawns a bedrock oil node every nTH chunk", 200); meteoriteSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.23_meteoriteSpawnRate", "Spawns a fallen meteorite every nTH chunk", 200); - bedrockIronSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B00_bedrockIronSpawn", "Spawns a bedrock iron deposit every nTH chunk", 200); - bedrockCopperSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B01_bedrockCopperSpawn", "Spawns a bedrock copper deposit every nTH chunk", 200); - bedrockBoraxSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B02_bedrockBoraxSpawn", "Spawns a bedrock borax deposit every nTH chunk", 300); - bedrockAsbestosSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B03_bedrockAsbestosSpawn", "Spawns a bedrock asbestos deposit every nTH chunk", 300); - bedrockNiobiumSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B04_bedrockNiobiumSpawn", "Spawns a bedrock niobium deposit every nTH chunk", 300); - bedrockTitaniumSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B05_bedrockTitaniumSpawn", "Spawns a bedrock titanium deposit every nTH chunk", 500); - bedrockTungstenSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B06_bedrockTungstenSpawn", "Spawns a bedrock tungsten deposit every nTH chunk", 300); - bedrockGoldSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B07_bedrockGoldSpawn", "Spawns a bedrock gold deposit every nTH chunk", 500); + bedrockIronSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B00_bedrockIronWeight", "Spawn weight for iron bedrock ore", 100); + bedrockCopperSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B01_bedrockCopperWeight", "Spawn weight for copper bedrock ore", 200); + bedrockBoraxSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B02_bedrockBoraxWeight", "Spawn weight for borax bedrock ore", 50); + bedrockAsbestosSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B03_bedrockAsbestosWeight", "Spawn weight for asbestos bedrock ore", 50); + bedrockNiobiumSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B04_bedrockNiobiumWeight", "Spawn weight for niobium bedrock ore", 50); + bedrockTitaniumSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B05_bedrockTitaniumWeight", "Spawn weight for titanium bedrock ore", 100); + bedrockTungstenSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B06_bedrockTungstenWeight", "Spawn weight for tungsten bedrock ore", 100); + bedrockGoldSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B07_bedrockGoldWeight", "Spawn weight for gold bedrock ore", 50); + bedrockUraniumSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B08_bedrockUraniumWeight", "Spawn weight for uranium bedrock ore", 35); + bedrockThoriumSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B09_bedrockThoriumWeight", "Spawn weight for thorium bedrock ore", 50); + bedrockCoalSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B10_bedrockCoalWeight", "Spawn weight for coal bedrock ore", 200); + bedrockNiterSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B11_bedrockNiterWeight", "Spawn weight for niter bedrock ore", 50); + bedrockFluoriteSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B12_bedrockFluoriteWeight", "Spawn weight for fluorite bedrock ore", 50); + bedrockRedstoneSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B13_bedrockRedstoneWeight", "Spawn weight for redstone bedrock ore", 50); ironClusterSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.C00_ironClusterSpawn", "Amount of iron cluster veins per chunk", 4); titaniumClusterSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.C01_titaniumClusterSpawn", "Amount of titanium cluster veins per chunk", 2); diff --git a/src/main/java/com/hbm/crafting/MineralRecipes.java b/src/main/java/com/hbm/crafting/MineralRecipes.java index 0f440dbe3..039775e82 100644 --- a/src/main/java/com/hbm/crafting/MineralRecipes.java +++ b/src/main/java/com/hbm/crafting/MineralRecipes.java @@ -454,6 +454,10 @@ public class MineralRecipes { add9To1(DictFrame.fromOne(ModItems.ore_byproduct, EnumByproduct.B_SULFUR), new ItemStack(ModItems.sulfur)); add9To1(DictFrame.fromOne(ModItems.ore_byproduct, EnumByproduct.B_CALCIUM), new ItemStack(ModItems.powder_calcium)); add9To1(DictFrame.fromOne(ModItems.ore_byproduct, EnumByproduct.B_BISMUTH), new ItemStack(ModItems.powder_bismuth)); + add9To1(DictFrame.fromOne(ModItems.ore_byproduct, EnumByproduct.B_RADIUM), new ItemStack(ModItems.powder_ra226)); + add9To1(DictFrame.fromOne(ModItems.ore_byproduct, EnumByproduct.B_TECHNETIUM), new ItemStack(ModItems.billet_technetium)); + add9To1(DictFrame.fromOne(ModItems.ore_byproduct, EnumByproduct.B_POLONIUM), new ItemStack(ModItems.billet_polonium)); + add9To1(DictFrame.fromOne(ModItems.ore_byproduct, EnumByproduct.B_URANIUM), new ItemStack(ModItems.powder_uranium)); } //Bundled 1/9 recipes diff --git a/src/main/java/com/hbm/handler/guncfg/Gun20GaugeFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun20GaugeFactory.java index b99da2c21..80f96b057 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun20GaugeFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun20GaugeFactory.java @@ -78,6 +78,8 @@ public class Gun20GaugeFactory { config.reloadSound = GunConfiguration.RSOUND_SHOTGUN; config.firingSound = "hbm:weapon.revolverShootAlt"; config.firingPitch = 0.75F; + config.hasSights = true; + config.zoomFOV = 0.75F; config.name = "win1887"; config.manufacturer = EnumGunManufacturer.WINCHESTER; @@ -95,6 +97,8 @@ public class Gun20GaugeFactory { config.reloadSound = GunConfiguration.RSOUND_SHOTGUN; config.firingSound = "hbm:weapon.revolverShootAlt"; config.firingPitch = 0.75F; + config.hasSights = true; + config.zoomFOV = 0.75F; config.name = "win1887Inox"; config.manufacturer = EnumGunManufacturer.WINCHESTER; diff --git a/src/main/java/com/hbm/inventory/SlotCraftingOutput.java b/src/main/java/com/hbm/inventory/SlotCraftingOutput.java index 7b8a1c86a..5095f2b7e 100644 --- a/src/main/java/com/hbm/inventory/SlotCraftingOutput.java +++ b/src/main/java/com/hbm/inventory/SlotCraftingOutput.java @@ -3,6 +3,7 @@ package com.hbm.inventory; import com.hbm.blocks.ModBlocks; import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; +import com.hbm.util.AchievementHandler; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; @@ -27,40 +28,7 @@ public class SlotCraftingOutput extends Slot { //ugly but nothing to be done public static void checkAchievements(EntityPlayer player, ItemStack stack) { - Item item = stack.getItem(); - - if(item == Item.getItemFromBlock(ModBlocks.machine_chemplant)) - player.triggerAchievement(MainRegistry.achChemplant); - if(item == Item.getItemFromBlock(ModBlocks.concrete_smooth) || item == Item.getItemFromBlock(ModBlocks.concrete_asbestos)) - player.triggerAchievement(MainRegistry.achConcrete); - if(item == ModItems.ingot_polymer) - player.triggerAchievement(MainRegistry.achPolymer); - if(item == ModItems.ingot_desh) - player.triggerAchievement(MainRegistry.achDesh); - if(item == ModItems.gem_tantalium) - player.triggerAchievement(MainRegistry.achTantalum); - if(item == Item.getItemFromBlock(ModBlocks.machine_gascent)) - player.triggerAchievement(MainRegistry.achGasCent); - if(item == Item.getItemFromBlock(ModBlocks.machine_centrifuge)) - player.triggerAchievement(MainRegistry.achCentrifuge); - if(item == ModItems.ingot_schrabidium || item == ModItems.nugget_schrabidium) - player.triggerAchievement(MainRegistry.achSchrab); - if(item == Item.getItemFromBlock(ModBlocks.machine_crystallizer)) - player.triggerAchievement(MainRegistry.achAcidizer); - if(item == Item.getItemFromBlock(ModBlocks.machine_silex)) - player.triggerAchievement(MainRegistry.achSILEX); - if(item == ModItems.nugget_technetium) - player.triggerAchievement(MainRegistry.achTechnetium); - if(item == Item.getItemFromBlock(ModBlocks.watz_core)) - player.triggerAchievement(MainRegistry.achWatz); - if(item == ModItems.nugget_bismuth) - player.triggerAchievement(MainRegistry.achBismuth); - if(item == ModItems.nugget_am241 || item == ModItems.nugget_am242) - player.triggerAchievement(MainRegistry.achBreeding); - if(item == ModItems.missile_nuclear || item == ModItems.missile_nuclear_cluster || item == ModItems.missile_doomsday || item == ModItems.mp_warhead_10_nuclear || item == ModItems.mp_warhead_10_nuclear_large || item == ModItems.mp_warhead_15_nuclear || item == ModItems.mp_warhead_15_nuclear_shark || item == ModItems.mp_warhead_15_boxcar) - player.triggerAchievement(MainRegistry.achRedBalloons); - if(item == Item.getItemFromBlock(ModBlocks.struct_iter_core)) - player.triggerAchievement(MainRegistry.achFusion); + AchievementHandler.fire(player, stack); } @Override diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index b39ac64ad..b1b4a9ad4 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -133,6 +133,7 @@ public class Fluids { public static FluidType FISHOIL; public static FluidType SUNFLOWEROIL; public static FluidType NITROGLYCERIN; + public static FluidType REDMUD; private static final HashMap idMapping = new HashMap(); private static final HashMap nameMapping = new HashMap(); @@ -276,7 +277,8 @@ public class Fluids { ESTRADIOL = new FluidType("ESTRADIOL", 0xCDD5D8, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID); FISHOIL = new FluidType("FISHOIL", 0x4B4A45, 0, 1, 0, EnumSymbol.NONE).addTraits(LIQUID); SUNFLOWEROIL = new FluidType("SUNFLOWEROIL", 0xCBAD45, 0, 1, 0, EnumSymbol.NONE).addTraits(LIQUID); - NITROGLYCERIN = new FluidType(112, "NITROGLYCERIN", 0x92ACA6, 0, 4, 0, EnumSymbol.NONE).addTraits(LIQUID); + NITROGLYCERIN = new FluidType("NITROGLYCERIN", 0x92ACA6, 0, 4, 0, EnumSymbol.NONE).addTraits(LIQUID); + REDMUD = new FluidType(113, "REDMUD", 0xD85638, 3, 0, 4, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS, LEADCON, new FT_Corrosive(60), new FT_Flammable(1_000)); // ^ ^ ^ ^ ^ ^ ^ ^ //ADD NEW FLUIDS HERE @@ -384,6 +386,7 @@ public class Fluids { metaOrder.add(PAIN); metaOrder.add(DEATH); metaOrder.add(WATZ); + metaOrder.add(REDMUD); metaOrder.add(EGG); metaOrder.add(CHOLESTEROL); //solutions and working fluids @@ -415,6 +418,7 @@ public class Fluids { MUSTARDGAS.addTraits(new FT_Toxin().addEntry(new ToxinDirectDamage(ModDamageSource.cloud, 4F, 10, HazardClass.GAS_CORROSIVE, false)) .addEntry(new ToxinEffects(HazardClass.GAS_CORROSIVE, true).add(new PotionEffect(Potion.wither.id, 100, 1), new PotionEffect(Potion.confusion.id, 100, 0)))); ESTRADIOL.addTraits(new FT_Toxin().addEntry(new ToxinEffects(HazardClass.PARTICLE_FINE, false).add(new PotionEffect(HbmPotion.death.id, 60 * 60 * 20, 0)))); + REDMUD.addTraits(new FT_Toxin().addEntry(new ToxinEffects(HazardClass.GAS_CORROSIVE, false).add(new PotionEffect(Potion.wither.id, 30 * 20, 2)))); double eff_steam_boil = 1.0D; double eff_steam_heatex = 0.25D; diff --git a/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java b/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java index 01dfe8dd6..7dad7530d 100644 --- a/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java @@ -56,6 +56,7 @@ public class CokerRecipes extends SerializableRecipe { registerSFAuto(WOODOIL, 340_000L, new ItemStack(Items.coal, 1, 1), GAS_COKER); registerRecipe(WATZ, 4_000, new ItemStack(ModItems.ingot_mud, 4), null); + registerRecipe(REDMUD, 1_000, new ItemStack(Items.iron_ingot, 2), new FluidStack(MERCURY, 50)); registerRecipe(BITUMEN, 16_000, DictFrame.fromOne(ModItems.coke, EnumCokeType.PETROLEUM), new FluidStack(OIL_COKER, 1_600)); registerRecipe(LUBRICANT, 12_000, DictFrame.fromOne(ModItems.coke, EnumCokeType.PETROLEUM), new FluidStack(OIL_COKER, 1_200)); } diff --git a/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java b/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java index fa3b7ffaa..022068894 100644 --- a/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java @@ -9,6 +9,8 @@ import static com.hbm.inventory.OreDictManager.*; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; +import com.hbm.blocks.BlockEnums.EnumStoneType; +import com.hbm.blocks.ModBlocks; import com.hbm.inventory.FluidStack; import com.hbm.inventory.OreDictManager.DictFrame; import com.hbm.inventory.RecipesCommon.AStack; @@ -43,6 +45,7 @@ public class CombinationRecipes extends SerializableRecipe { recipes.put(CINNABAR.crystal(), new Pair(new ItemStack(ModItems.sulfur), new FluidStack(Fluids.MERCURY, 100))); recipes.put(new ComparableStack(Items.glowstone_dust), new Pair(new ItemStack(ModItems.sulfur), new FluidStack(Fluids.CHLORINE, 50))); + recipes.put(new ComparableStack(DictFrame.fromOne(ModBlocks.stone_resource, EnumStoneType.BAUXITE)), new Pair(new ItemStack(ModItems.ingot_aluminium, 2), new FluidStack(Fluids.REDMUD, 250))); recipes.put(KEY_LOG, new Pair(new ItemStack(Items.coal, 1 ,1), new FluidStack(Fluids.WOODOIL, 250))); recipes.put(KEY_SAPLING, new Pair(null, new FluidStack(Fluids.WOODOIL, 50))); diff --git a/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java b/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java index 38f618aea..2612ba3c3 100644 --- a/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java @@ -67,6 +67,7 @@ public class SolidificationRecipes extends SerializableRecipe { registerRecipe(SALIENT, 1280, new ItemStack(ModItems.bio_wafer, 8)); //4 (food val) * 2 (sat mod) * 2 (constant) * 10 (quanta) * 8 (batch size) registerRecipe(ENDERJUICE, 100, Items.ender_pearl); registerRecipe(WATZ, 1000, ModItems.ingot_mud); + registerRecipe(REDMUD, 1000, Items.iron_ingot); registerRecipe(OIL, SF_OIL, DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRUDE)); registerRecipe(CRACKOIL, SF_CRACK, DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRACK)); diff --git a/src/main/java/com/hbm/items/ItemEnums.java b/src/main/java/com/hbm/items/ItemEnums.java index a15664ddb..c1424f43f 100644 --- a/src/main/java/com/hbm/items/ItemEnums.java +++ b/src/main/java/com/hbm/items/ItemEnums.java @@ -40,4 +40,16 @@ public class ItemEnums { ROPE, MUSTARDWILLOW } + + public static enum EnumAchievementType { + GOFISH, + ACID, + BALLS, + DIGAMMASEE, + DIGAMMAFEEL, + DIGAMMAKNOW, + DIGAMMAKAUAIMOHO, + DIGAMMAUPONTOP, + DIGAMMAFOROURRIGHT + } } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index c87bb3a60..791bcf915 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -2436,18 +2436,13 @@ public class ModItems { public static Item nothing; public static Item void_anim; + public static Item achievement_icon; public static Item bob_metalworks; public static Item bob_assembly; public static Item bob_chemistry; public static Item bob_oil; public static Item bob_nuclear; - public static Item digamma_see; - public static Item digamma_feel; - public static Item digamma_know; - public static Item digamma_kauai_moho; - public static Item digamma_up_on_top; - public static Item mysteryshovel; public static Item memory; @@ -5452,16 +5447,12 @@ public class ModItems { void_anim = new Item().setUnlocalizedName("void_anim").setTextureName(RefStrings.MODID + ":void_anim"); + achievement_icon = new ItemEnumMulti(ItemEnums.EnumAchievementType.class, true, true).setUnlocalizedName("achievement_icon"); bob_metalworks = new Item().setUnlocalizedName("bob_metalworks").setTextureName(RefStrings.MODID + ":bob_metalworks"); bob_assembly = new Item().setUnlocalizedName("bob_assembly").setTextureName(RefStrings.MODID + ":bob_assembly"); bob_chemistry = new Item().setUnlocalizedName("bob_chemistry").setTextureName(RefStrings.MODID + ":bob_chemistry"); bob_oil = new Item().setUnlocalizedName("bob_oil").setTextureName(RefStrings.MODID + ":bob_oil"); bob_nuclear = new Item().setUnlocalizedName("bob_nuclear").setTextureName(RefStrings.MODID + ":bob_nuclear"); - digamma_see = new Item().setUnlocalizedName("digamma_see").setTextureName(RefStrings.MODID + ":digamma_see"); - digamma_feel = new Item().setUnlocalizedName("digamma_feel").setTextureName(RefStrings.MODID + ":digamma_feel"); - digamma_know = new Item().setUnlocalizedName("digamma_know").setTextureName(RefStrings.MODID + ":digamma_know"); - digamma_kauai_moho = new Item().setUnlocalizedName("digamma_kauai_moho").setTextureName(RefStrings.MODID + ":digamma_kauai_moho"); - digamma_up_on_top = new Item().setUnlocalizedName("digamma_up_on_top").setTextureName(RefStrings.MODID + ":digamma_up_on_top"); mysteryshovel = new ItemMS().setUnlocalizedName("mysteryshovel").setFull3D().setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cursed_shovel"); memory = new ItemBattery(Long.MAX_VALUE / 100L, 100000000000000L, 100000000000000L).setUnlocalizedName("memory").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":mo8_anim"); @@ -8055,16 +8046,12 @@ public class ModItems { GameRegistry.registerItem(ln2_10, ln2_10.getUnlocalizedName()); GameRegistry.registerItem(nothing, nothing.getUnlocalizedName()); GameRegistry.registerItem(void_anim, void_anim.getUnlocalizedName()); + GameRegistry.registerItem(achievement_icon, achievement_icon.getUnlocalizedName()); GameRegistry.registerItem(bob_metalworks, bob_metalworks.getUnlocalizedName()); GameRegistry.registerItem(bob_assembly, bob_assembly.getUnlocalizedName()); GameRegistry.registerItem(bob_chemistry, bob_chemistry.getUnlocalizedName()); GameRegistry.registerItem(bob_oil, bob_oil.getUnlocalizedName()); GameRegistry.registerItem(bob_nuclear, bob_nuclear.getUnlocalizedName()); - GameRegistry.registerItem(digamma_see, digamma_see.getUnlocalizedName()); - GameRegistry.registerItem(digamma_feel, digamma_feel.getUnlocalizedName()); - GameRegistry.registerItem(digamma_know, digamma_know.getUnlocalizedName()); - GameRegistry.registerItem(digamma_kauai_moho, digamma_kauai_moho.getUnlocalizedName()); - GameRegistry.registerItem(digamma_up_on_top, digamma_up_on_top.getUnlocalizedName()); GameRegistry.registerItem(mysteryshovel, mysteryshovel.getUnlocalizedName()); GameRegistry.registerItem(memory, memory.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/special/ItemBedrockOre.java b/src/main/java/com/hbm/items/special/ItemBedrockOre.java index 55539aa79..6dc73e9fc 100644 --- a/src/main/java/com/hbm/items/special/ItemBedrockOre.java +++ b/src/main/java/com/hbm/items/special/ItemBedrockOre.java @@ -92,7 +92,9 @@ public class ItemBedrockOre extends ItemEnumMulti { NIOBIUM("Niobium", 0xAF58D8, B_IRON, B_IRON, B_IRON), //iron in columbite, often found along tantalite TITANIUM("Titanium", 0xF2EFE2, B_SILICON, B_CALCIUM, B_ALUMINIUM), //titanite is titanium + calcium + silicon with traces of iron and aluminium TUNGSTEN("Tungsten", 0x2C293C, B_LEAD, B_IRON, B_BISMUTH), //ferberite has iron, raspite has lead, russelite is bismuth tungsten - GOLD("Gold", 0xF9D738, B_LEAD, B_COPPER, B_BISMUTH); //occurs with copper, lead and rare bismuthide + GOLD("Gold", 0xF9D738, B_LEAD, B_COPPER, B_BISMUTH), //occurs with copper, lead and rare bismuthide + URANIUM("Uranium", 0x868D82, B_LEAD, B_RADIUM, B_POLONIUM), //uranium and its decay products + THORIUM("Thorium", 0x7D401D, B_SILICON, B_URANIUM, B_TECHNETIUM); //thorium occours with uraninite and decay products public String oreName; public int color; diff --git a/src/main/java/com/hbm/items/special/ItemByproduct.java b/src/main/java/com/hbm/items/special/ItemByproduct.java index 049c8f20e..6b513884f 100644 --- a/src/main/java/com/hbm/items/special/ItemByproduct.java +++ b/src/main/java/com/hbm/items/special/ItemByproduct.java @@ -31,7 +31,11 @@ public class ItemByproduct extends ItemEnumMulti { B_ALUMINIUM(0xE8F2F9), B_SULFUR(0xEAD377), B_CALCIUM(0xCFCFA6), - B_BISMUTH(0x8D8577); + B_BISMUTH(0x8D8577), + B_RADIUM(0xE9FAF6), + B_TECHNETIUM(0xCADFDF), + B_POLONIUM(0xCADFDF), + B_URANIUM(0x868D82); public int color; diff --git a/src/main/java/com/hbm/items/tool/ItemBoltgun.java b/src/main/java/com/hbm/items/tool/ItemBoltgun.java index a4ef287f3..34440b70a 100644 --- a/src/main/java/com/hbm/items/tool/ItemBoltgun.java +++ b/src/main/java/com/hbm/items/tool/ItemBoltgun.java @@ -63,6 +63,10 @@ public class ItemBoltgun extends Item implements IAnimatedItem { player.inventory.decrStackSize(i, 1); player.inventoryContainer.detectAndSendChanges(); EntityDamageUtil.attackEntityFromIgnoreIFrame(entity, DamageSource.causePlayerDamage(player).setDamageBypassesArmor(), 10F); + + if(!entity.isEntityAlive() && entity instanceof EntityPlayer) { + ((EntityPlayer) entity).triggerAchievement(MainRegistry.achGoFish); + } NBTTagCompound data = new NBTTagCompound(); data.setString("type", "vanillaExt"); diff --git a/src/main/java/com/hbm/items/tool/ItemToolAbility.java b/src/main/java/com/hbm/items/tool/ItemToolAbility.java index 85e0694d0..f0c4496ad 100644 --- a/src/main/java/com/hbm/items/tool/ItemToolAbility.java +++ b/src/main/java/com/hbm/items/tool/ItemToolAbility.java @@ -11,6 +11,10 @@ import com.google.common.collect.Multimap; import com.google.common.collect.Sets; import com.hbm.handler.ToolAbility; import com.hbm.handler.ToolAbility.*; +import com.hbm.main.MainRegistry; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.PlayerInformPacket; +import com.hbm.util.ChatBuilder; import com.hbm.handler.WeaponAbility; import api.hbm.item.IDepthRockTool; @@ -22,14 +26,12 @@ import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.ai.attributes.AttributeModifier; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.init.Blocks; import net.minecraft.item.EnumRarity; import net.minecraft.item.ItemStack; import net.minecraft.item.ItemTool; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.ChatComponentTranslation; -import net.minecraft.util.ChatStyle; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; @@ -239,18 +241,17 @@ public class ItemToolAbility extends ItemTool implements IItemAbility, IDepthRoc while(getCurrentAbility(stack) != null && !getCurrentAbility(stack).isAllowed()) { - player.addChatComponentMessage(new ChatComponentText("[Ability ").appendSibling(new ChatComponentTranslation(getCurrentAbility(stack).getName(), new Object[0])) - .appendSibling(new ChatComponentText(getCurrentAbility(stack).getExtension() + " is blacklisted!]")).setChatStyle(new ChatStyle().setColor(EnumChatFormatting.RED))); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("[Ability ").nextTranslation(getCurrentAbility(stack).getName()).next(getCurrentAbility(stack).getExtension() + " is blacklisted!]").colorAll(EnumChatFormatting.RED).flush(), MainRegistry.proxy.ID_TOOLABILITY), (EntityPlayerMP) player); + i++; setAbility(stack, i % this.breakAbility.size()); } if(getCurrentAbility(stack) != null) { - player.addChatComponentMessage(new ChatComponentText("[Enabled ").appendSibling(new ChatComponentTranslation(getCurrentAbility(stack).getName(), new Object[0])) - .appendSibling(new ChatComponentText(getCurrentAbility(stack).getExtension() + "]")).setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW))); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("[Enabled ").nextTranslation(getCurrentAbility(stack).getName()).next(getCurrentAbility(stack).getExtension() + "]").colorAll(EnumChatFormatting.YELLOW).flush(), MainRegistry.proxy.ID_TOOLABILITY), (EntityPlayerMP) player); } else { - player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.GOLD + "[Tool ability deactivated]")); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("[Tool ability deactivated]").color(EnumChatFormatting.GOLD).flush(), MainRegistry.proxy.ID_TOOLABILITY), (EntityPlayerMP) player); } world.playSoundAtEntity(player, "random.orb", 0.25F, getCurrentAbility(stack) == null ? 0.75F : 1.25F); diff --git a/src/main/java/com/hbm/lib/HbmWorldGen.java b/src/main/java/com/hbm/lib/HbmWorldGen.java index 58f772881..dac6fed84 100644 --- a/src/main/java/com/hbm/lib/HbmWorldGen.java +++ b/src/main/java/com/hbm/lib/HbmWorldGen.java @@ -8,14 +8,12 @@ import com.hbm.blocks.generic.BlockMotherOfAllOres; import com.hbm.blocks.generic.BlockNTMFlower.EnumFlowerType; import com.hbm.config.GeneralConfig; import com.hbm.config.WorldConfig; -import com.hbm.inventory.FluidStack; -import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; -import com.hbm.items.special.ItemBedrockOre.EnumBedrockOre; import com.hbm.main.MainRegistry; import com.hbm.saveddata.TomSaveData; import com.hbm.tileentity.machine.storage.TileEntitySafe; import com.hbm.tileentity.machine.storage.TileEntitySoyuzCapsule; +import com.hbm.util.WeightedRandomGeneric; import com.hbm.world.dungeon.AncientTomb; import com.hbm.world.dungeon.Antenna; import com.hbm.world.dungeon.ArcticVault; @@ -32,6 +30,7 @@ import com.hbm.world.dungeon.Silo; import com.hbm.world.dungeon.Spaceship; import com.hbm.world.dungeon.Vertibird; import com.hbm.world.feature.BedrockOre; +import com.hbm.world.feature.BedrockOre.BedrockOreDefinition; import com.hbm.world.feature.DepthDeposit; import com.hbm.world.feature.Dud; import com.hbm.world.feature.Geyser; @@ -49,6 +48,7 @@ import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntityChest; import net.minecraft.tileentity.TileEntitySkull; +import net.minecraft.util.WeightedRandom; import net.minecraft.util.WeightedRandomChestContent; import net.minecraft.world.World; import net.minecraft.world.biome.BiomeGenBase; @@ -154,18 +154,16 @@ public class HbmWorldGen implements IWorldGenerator { DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.aluminiumClusterSpawn, 6, 15, 35, ModBlocks.cluster_aluminium); DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.copperClusterSpawn, 6, 15, 20, ModBlocks.cluster_copper); - //DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.hematiteSpawn, 10, 4, 80, ModBlocks.stone_resource, EnumStoneType.HEMATITE.ordinal()); DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.malachiteSpawn, 10, 6, 40, ModBlocks.stone_resource, EnumStoneType.MALACHITE.ordinal()); DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.limestoneSpawn, 12, 25, 30, ModBlocks.stone_resource, EnumStoneType.LIMESTONE.ordinal()); - DungeonToolbox.generateBedrockOreWithChance(world, rand, i, j, EnumBedrockOre.IRON, 1, WorldConfig.bedrockIronSpawn); - DungeonToolbox.generateBedrockOreWithChance(world, rand, i, j, EnumBedrockOre.COPPER, 1, WorldConfig.bedrockCopperSpawn); - DungeonToolbox.generateBedrockOreWithChance(world, rand, i, j, EnumBedrockOre.BORAX, new FluidStack(Fluids.SULFURIC_ACID, 500), 3, WorldConfig.bedrockBoraxSpawn); - DungeonToolbox.generateBedrockOreWithChance(world, rand, i, j, EnumBedrockOre.ASBESTOS, 2, WorldConfig.bedrockAsbestosSpawn); - DungeonToolbox.generateBedrockOreWithChance(world, rand, i, j, EnumBedrockOre.NIOBIUM, new FluidStack(Fluids.ACID, 1_000), 2, WorldConfig.bedrockNiobiumSpawn); - DungeonToolbox.generateBedrockOreWithChance(world, rand, i, j, EnumBedrockOre.TITANIUM, new FluidStack(Fluids.SULFURIC_ACID, 500), 2, WorldConfig.bedrockTitaniumSpawn); - DungeonToolbox.generateBedrockOreWithChance(world, rand, i, j, EnumBedrockOre.TUNGSTEN, new FluidStack(Fluids.ACID, 1_000), 2, WorldConfig.bedrockTungstenSpawn); - DungeonToolbox.generateBedrockOreWithChance(world, rand, i, j, EnumBedrockOre.GOLD, 1, WorldConfig.bedrockGoldSpawn); + if(rand.nextInt(3) == 0) { + WeightedRandomGeneric item = (WeightedRandomGeneric) WeightedRandom.getRandomItem(rand, BedrockOre.weightedOres); + BedrockOreDefinition def = item.get(); + int randPosX = i + rand.nextInt(2) + 8; + int randPosZ = j + rand.nextInt(2) + 8; + BedrockOre.generate(world, randPosX, randPosZ, def.stack, def.acid, def.color, def.tier); + } for(int k = 0; k < WorldConfig.randomSpawn; k++) { BlockMotherOfAllOres.shuffleOverride(rand); diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index f3cc40fb2..5416fa4d3 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4607)"; + public static final String VERSION = "1.0.27 BETA (4613)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index e58761275..99df0747c 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -61,6 +61,7 @@ import com.hbm.handler.imc.*; import com.hbm.handler.radiation.ChunkRadiationManager; import com.hbm.hazard.HazardRegistry; import com.hbm.inventory.*; +import com.hbm.inventory.OreDictManager.DictFrame; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.recipes.*; import com.hbm.inventory.recipes.anvil.AnvilRecipes; @@ -69,6 +70,7 @@ import com.hbm.items.ModItems; import com.hbm.items.tool.ItemFertilizer; import com.hbm.items.weapon.ItemGenericGrenade; import com.hbm.items.ItemAmmoEnums.Ammo4Gauge; +import com.hbm.items.ItemEnums.EnumAchievementType; import com.hbm.lib.HbmWorld; import com.hbm.lib.Library; import com.hbm.lib.RefStrings; @@ -79,6 +81,7 @@ import com.hbm.tileentity.TileMappings; import com.hbm.tileentity.bomb.TileEntityNukeCustom; import com.hbm.tileentity.machine.*; import com.hbm.tileentity.machine.rbmk.RBMKDials; +import com.hbm.util.AchievementHandler; import com.hbm.util.ArmorUtil; import com.hbm.util.Compat; import com.hbm.util.StatHelper; @@ -187,6 +190,7 @@ public class MainRegistry { public static Achievement achSlimeball; public static Achievement achSulfuric; public static Achievement achWitchtaunter; + public static Achievement achGoFish; public static Achievement achNo9; public static Achievement achInferno; public static Achievement bobHidden; @@ -657,6 +661,7 @@ public class MainRegistry { achSacrifice = new Achievement("achievement.sacrifice", "sacrifice", -3, 1, ModItems.burnt_bark, null).initIndependentStat().setSpecial().registerStat(); achImpossible = new Achievement("achievement.impossible", "impossible", 18, 10, ModItems.nothing, null).initIndependentStat().setSpecial().registerStat(); achTOB = new Achievement("achievement.tasteofblood", "tasteofblood", 3, 10, new ItemStack(ModItems.fluid_icon, 1, Fluids.ASCHRAB.getID()), null).initIndependentStat().setSpecial().registerStat(); + achGoFish = new Achievement("achievement.goFish", "goFish", 5, 10, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.GOFISH), null).initIndependentStat().setSpecial().registerStat(); achFreytag = new Achievement("achievement.freytag", "freytag", 0, -4, ModItems.gun_mp40, null).initIndependentStat().setSpecial().registerStat(); achPotato = new Achievement("achievement.potato", "potato", -2, -2, ModItems.battery_potatos, null).initIndependentStat().setSpecial().registerStat(); achC44 = new Achievement("achievement.c44", "c44", 2, -4, ModItems.gun_revolver_pip, null).initIndependentStat().setSpecial().registerStat(); @@ -668,8 +673,8 @@ public class MainRegistry { achWitchtaunter = new Achievement("achievement.witchtaunter", "witchtaunter", -8, 7, ModItems.ammo_4gauge.stackFromEnum(Ammo4Gauge.VAMPIRE), null).initIndependentStat().setSpecial().registerStat(); achNo9 = new Achievement("achievement.no9", "no9", -8, 12, ModItems.no9, null).initIndependentStat().registerStat(); - achSlimeball = new Achievement("achievement.slimeball", "slimeball", -10, 6, Items.slime_ball, null).initIndependentStat().registerStat(); - achSulfuric = new Achievement("achievement.sulfuric", "sulfuric", -10, 8, ModItems.bucket_sulfuric_acid, achSlimeball).initIndependentStat().setSpecial().registerStat(); + achSlimeball = new Achievement("achievement.slimeball", "slimeball", -10, 6, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.ACID), null).initIndependentStat().registerStat(); + achSulfuric = new Achievement("achievement.sulfuric", "sulfuric", -10, 8, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.BALLS), achSlimeball).initIndependentStat().setSpecial().registerStat(); achInferno = new Achievement("achievement.inferno", "inferno", -8, 10, ModItems.canister_napalm, null).initIndependentStat().setSpecial().registerStat(); bobHidden = new Achievement("achievement.hidden", "hidden", 15, -4, ModItems.gun_dampfmaschine, null).initIndependentStat().registerStat(); @@ -689,11 +694,11 @@ public class MainRegistry { achSomeWounds = new Achievement("achievement.someWounds", "someWounds", -2, 10, ModItems.injector_knife, null).initIndependentStat().registerStat(); - digammaSee = new Achievement("achievement.digammaSee", "digammaSee", -1, 8, ModItems.digamma_see, null).initIndependentStat().registerStat(); - digammaFeel = new Achievement("achievement.digammaFeel", "digammaFeel", 1, 8, ModItems.digamma_feel, digammaSee).initIndependentStat().registerStat(); - digammaKnow = new Achievement("achievement.digammaKnow", "digammaKnow", 3, 8, ModItems.digamma_know, digammaFeel).initIndependentStat().registerStat().setSpecial(); - digammaKauaiMoho = new Achievement("achievement.digammaKauaiMoho", "digammaKauaiMoho", 5, 8, ModItems.digamma_kauai_moho, digammaKnow).initIndependentStat().registerStat().setSpecial(); - digammaUpOnTop = new Achievement("achievement.digammaUpOnTop", "digammaUpOnTop", 7, 8, ModItems.digamma_up_on_top, digammaKauaiMoho).initIndependentStat().registerStat().setSpecial(); + digammaSee = new Achievement("achievement.digammaSee", "digammaSee", -1, 8, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.DIGAMMASEE), null).initIndependentStat().registerStat(); + digammaFeel = new Achievement("achievement.digammaFeel", "digammaFeel", 1, 8, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.DIGAMMAFEEL), digammaSee).initIndependentStat().registerStat(); + digammaKnow = new Achievement("achievement.digammaKnow", "digammaKnow", 3, 8, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.DIGAMMAKNOW), digammaFeel).initIndependentStat().registerStat().setSpecial(); + digammaKauaiMoho = new Achievement("achievement.digammaKauaiMoho", "digammaKauaiMoho", 5, 8, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.DIGAMMAKAUAIMOHO), digammaKnow).initIndependentStat().registerStat().setSpecial(); + digammaUpOnTop = new Achievement("achievement.digammaUpOnTop", "digammaUpOnTop", 7, 8, DictFrame.fromOne(ModItems.achievement_icon, EnumAchievementType.DIGAMMAUPONTOP), digammaKauaiMoho).initIndependentStat().registerStat().setSpecial(); //progression achieves achBurnerPress = new Achievement("achievement.burnerPress", "burnerPress", 0, 0, new ItemStack(ModBlocks.machine_press), null).initIndependentStat().registerStat(); @@ -732,6 +737,7 @@ public class MainRegistry { achSacrifice, achImpossible, achTOB, + achGoFish, achFreytag, achPotato, achC44, @@ -847,6 +853,7 @@ public class MainRegistry { FluidContainerRegistry.register(); TileEntityMachineReactorLarge.registerAll(); BlockToolConversion.registerRecipes(); + AchievementHandler.register(); proxy.registerMissileItems(); @@ -860,9 +867,11 @@ public class MainRegistry { new OreCave(ModBlocks.stone_resource, 0).setThreshold(1.5D).setRangeMult(20).setYLevel(30).setMaxRange(20).withFluid(ModBlocks.sulfuric_acid_block); //sulfur new OreCave(ModBlocks.stone_resource, 1).setThreshold(1.75D).setRangeMult(20).setYLevel(25).setMaxRange(20); //asbestos - new OreLayer3D(ModBlocks.stone_resource, EnumStoneType.HEMATITE.ordinal()); + new OreLayer3D(ModBlocks.stone_resource, EnumStoneType.HEMATITE.ordinal()).setScaleH(0.04D).setScaleV(0.25D).setThreshold(230); + new OreLayer3D(ModBlocks.stone_resource, EnumStoneType.BAUXITE.ordinal()).setScaleH(0.03D).setScaleV(0.15D).setThreshold(300); //new BiomeCave().setThreshold(1.5D).setRangeMult(20).setYLevel(40).setMaxRange(20); //new OreLayer(Blocks.coal_ore, 0.2F).setThreshold(4).setRangeMult(3).setYLevel(70); + BedrockOre.init(); Compat.handleRailcraftNonsense(); SuicideThreadDump.register(); @@ -1104,6 +1113,11 @@ public class MainRegistry { ignoreMappings.add("hbm:item.gun_revolver_lead_ammo"); ignoreMappings.add("hbm:item.gun_revolver_schrabidium_ammo"); ignoreMappings.add("hbm:item.tank_waste"); + ignoreMappings.add("hbm:item.digamma_see"); + ignoreMappings.add("hbm:item.digamma_feel"); + ignoreMappings.add("hbm:item.digamma_know"); + ignoreMappings.add("hbm:item.digamma_kauai_moho"); + ignoreMappings.add("hbm:item.digamma_up_on_top"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index 949a92461..00d3a9f64 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -63,6 +63,7 @@ import com.hbm.packet.PlayerInformPacket; import com.hbm.potion.HbmPotion; import com.hbm.saveddata.AuxSavedData; import com.hbm.tileentity.network.RTTYSystem; +import com.hbm.util.AchievementHandler; import com.hbm.util.ArmorUtil; import com.hbm.util.ContaminationUtil; import com.hbm.util.EnchantmentUtil; @@ -1111,31 +1112,12 @@ public class ModEventHandler { @SubscribeEvent public void itemCrafted(PlayerEvent.ItemCraftedEvent e) { - - Item item = e.crafting.getItem(); - - if(item == ModItems.gun_mp40) { - e.player.addStat(MainRegistry.achFreytag, 1); - } - if(item == ModItems.piston_selenium || item == ModItems.gun_b92) { - e.player.addStat(MainRegistry.achSelenium, 1); - } - if(item == ModItems.battery_potatos) { - e.player.addStat(MainRegistry.achPotato, 1); - } - if(item == ModItems.gun_revolver_pip) { - e.player.addStat(MainRegistry.achC44, 1); - } - if(item == Item.getItemFromBlock(ModBlocks.machine_press)) { - e.player.triggerAchievement(MainRegistry.achBurnerPress); - } - if(item == ModItems.rbmk_fuel_empty) { - e.player.triggerAchievement(MainRegistry.achRBMK); - } + AchievementHandler.fire(e.player, e.crafting); } @SubscribeEvent public void itemSmelted(PlayerEvent.ItemSmeltedEvent e) { + AchievementHandler.fire(e.player, e.smelting); if(!e.player.worldObj.isRemote && e.smelting.getItem() == Items.iron_ingot && e.player.getRNG().nextInt(64) == 0) { diff --git a/src/main/java/com/hbm/main/ServerProxy.java b/src/main/java/com/hbm/main/ServerProxy.java index d296c9ab3..ac286d931 100644 --- a/src/main/java/com/hbm/main/ServerProxy.java +++ b/src/main/java/com/hbm/main/ServerProxy.java @@ -24,8 +24,9 @@ public class ServerProxy { public static final int ID_HUD = 5; public static final int ID_DETONATOR = 6; public static final int ID_FLUID_ID = 7; - public static final int ID_GUN_MODE = 8; - public static final int ID_GAS_HAZARD = 9; + public static final int ID_TOOLABILITY = 8; + public static final int ID_GUN_MODE = 9; + public static final int ID_GAS_HAZARD = 10; public void registerRenderInfo() { } public void registerTileEntitySpecialRenderer() { } diff --git a/src/main/java/com/hbm/packet/AnvilCraftPacket.java b/src/main/java/com/hbm/packet/AnvilCraftPacket.java index bc1719702..d8b1049a4 100644 --- a/src/main/java/com/hbm/packet/AnvilCraftPacket.java +++ b/src/main/java/com/hbm/packet/AnvilCraftPacket.java @@ -1,12 +1,9 @@ package com.hbm.packet; -import com.hbm.blocks.ModBlocks; import com.hbm.inventory.container.ContainerAnvil; import com.hbm.inventory.recipes.anvil.AnvilRecipes; import com.hbm.inventory.recipes.anvil.AnvilRecipes.AnvilConstructionRecipe; -import com.hbm.items.ItemAmmoEnums; -import com.hbm.items.ModItems; -import com.hbm.main.MainRegistry; +import com.hbm.util.AchievementHandler; import com.hbm.util.InventoryUtil; import cpw.mods.fml.common.network.simpleimpl.IMessage; @@ -14,7 +11,6 @@ import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; import cpw.mods.fml.common.network.simpleimpl.MessageContext; import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; public class AnvilCraftPacket implements IMessage { @@ -65,15 +61,7 @@ public class AnvilCraftPacket implements IMessage { if(InventoryUtil.doesPlayerHaveAStacks(p, recipe.input, true)) { InventoryUtil.giveChanceStacksToPlayer(p, recipe.output); - - if(recipe.output.get(0).stack.getItem() == Item.getItemFromBlock(ModBlocks.machine_difurnace_off)) - p.triggerAchievement(MainRegistry.achBlastFurnace); - if(recipe.output.get(0).stack.getItem() == Item.getItemFromBlock(ModBlocks.machine_assembler)) - p.triggerAchievement(MainRegistry.achAssembly); - if(recipe.output.get(0).stack.getItem() == ModItems.billet_pu_mix) - p.triggerAchievement(MainRegistry.achChicagoPile); - if(recipe.output.get(0).stack.getItem() == ModItems.ammo_4gauge && recipe.output.get(0).stack.getItemDamage() == ItemAmmoEnums.Ammo4Gauge.VAMPIRE.ordinal()) - p.triggerAchievement(MainRegistry.achWitchtaunter); + AchievementHandler.fire(p, recipe.output.get(0).stack); } else { break; diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFMaresLeg.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFMaresLeg.java index b95260b35..f63f1d68e 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFMaresLeg.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFMaresLeg.java @@ -67,6 +67,9 @@ public class ItemRenderWeaponFFMaresLeg implements IItemRenderer { GL11.glTranslated(-0.71, 0.375, 0); GL11.glRotated(25, 1, 0, 0); GL11.glRotated(1, 0, 1, 0); + GL11.glRotated(-3, 0, 0, 1); + GL11.glRotated(0.2, 0, 1, 0); + GL11.glTranslated(-0.006, -0.005, 0.4); } double[] recoil = HbmAnimations.getRelevantTransformation("LEVER_RECOIL"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java index 419664383..f00709901 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java @@ -60,6 +60,7 @@ public class TileEntityMachineTurbineGas extends TileEntityMachineBase implement fuelMaxCons.put(Fluids.GAS, 50D); // natgas doesn't burn well so it burns faster to compensate fuelMaxCons.put(Fluids.SYNGAS, 10D); // syngas just fucks fuelMaxCons.put(Fluids.OXYHYDROGEN, 100D); // oxyhydrogen is terrible so it needs to burn a ton for the bare minimum + fuelMaxCons.put(Fluids.REFORMGAS, 2.5D); // halved because it's too powerful // default to 5 if not in list } @@ -121,7 +122,7 @@ public class TileEntityMachineTurbineGas extends TileEntityMachineBase implement ForgeDirection rot = dir.getRotation(ForgeDirection.UP); NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", this.power); //set first to get an unmodified view of how much power was generated before deductions from the net + data.setLong("power", Math.min(this.power, this.maxPower)); //set first to get an unmodified view of how much power was generated before deductions from the net //do net/battery deductions first... power = Library.chargeItemsFromTE(slots, 0, power, maxPower); @@ -141,9 +142,6 @@ public class TileEntityMachineTurbineGas extends TileEntityMachineBase implement //steam this.sendFluid(tanks[3], worldObj, xCoord + dir.offsetZ * 6, yCoord + 1, zCoord - dir.offsetX * 6, rot.getOpposite()); - //if(audio != null) // audio shouldn't even exist serverside - // audio.updatePitch((float) (0.45 + 0.05 * rpm / 10)); - data.setInteger("rpm", this.rpm); data.setInteger("temp", this.temp); data.setInteger("state", this.state); diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFENSU.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFENSU.java index 46770f2a6..b936d41b8 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFENSU.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFENSU.java @@ -1,9 +1,12 @@ package com.hbm.tileentity.machine.storage; +import com.hbm.lib.Library; + import api.hbm.energy.IEnergyConductor; import api.hbm.energy.IEnergyConnector; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.util.ForgeDirection; @@ -17,7 +20,41 @@ public class TileEntityMachineFENSU extends TileEntityMachineBattery { @Override public void updateEntity() { - super.updateEntity(); + + if(!worldObj.isRemote) { + + long prevPower = this.power; + + power = Library.chargeItemsFromTE(slots, 1, power, getMaxPower()); + + ////////////////////////////////////////////////////////////////////// + this.transmitPowerFairly(); + ////////////////////////////////////////////////////////////////////// + + byte comp = this.getComparatorPower(); + if(comp != this.lastRedstone) + this.markDirty(); + this.lastRedstone = comp; + + power = Library.chargeTEFromItems(slots, 0, power, getMaxPower()); + + long avg = (power / 2 + prevPower / 2); + this.delta = avg - this.log[0]; + + for(int i = 1; i < this.log.length; i++) { + this.log[i - 1] = this.log[i]; + } + + this.log[19] = avg; + + NBTTagCompound nbt = new NBTTagCompound(); + nbt.setLong("power", avg); + nbt.setLong("delta", delta); + nbt.setShort("redLow", redLow); + nbt.setShort("redHigh", redHigh); + nbt.setByte("priority", (byte) this.priority.ordinal()); + this.networkPack(nbt, 20); + } if(worldObj.isRemote) { this.prevRotation = this.rotation; diff --git a/src/main/java/com/hbm/util/AchievementHandler.java b/src/main/java/com/hbm/util/AchievementHandler.java new file mode 100644 index 000000000..3d395a43e --- /dev/null +++ b/src/main/java/com/hbm/util/AchievementHandler.java @@ -0,0 +1,67 @@ +package com.hbm.util; + +import java.util.HashMap; + +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.items.ItemAmmoEnums; +import com.hbm.items.ModItems; +import com.hbm.main.MainRegistry; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.stats.Achievement; + +public class AchievementHandler { + + public static HashMap craftingAchievements = new HashMap(); + + public static void register() { + craftingAchievements.put(new ComparableStack(ModItems.gun_mp40), MainRegistry.achFreytag); + craftingAchievements.put(new ComparableStack(ModItems.piston_selenium), MainRegistry.achSelenium); + craftingAchievements.put(new ComparableStack(ModItems.gun_b92), MainRegistry.achSelenium); + craftingAchievements.put(new ComparableStack(ModItems.battery_potatos), MainRegistry.achPotato); + craftingAchievements.put(new ComparableStack(ModItems.gun_revolver_pip), MainRegistry.achC44); + craftingAchievements.put(new ComparableStack(ModBlocks.machine_press), MainRegistry.achBurnerPress); + craftingAchievements.put(new ComparableStack(ModItems.rbmk_fuel_empty), MainRegistry.achRBMK); + craftingAchievements.put(new ComparableStack(ModBlocks.machine_chemplant), MainRegistry.achChemplant); + craftingAchievements.put(new ComparableStack(ModBlocks.concrete_smooth), MainRegistry.achConcrete); + craftingAchievements.put(new ComparableStack(ModBlocks.concrete_asbestos), MainRegistry.achConcrete); + craftingAchievements.put(new ComparableStack(ModItems.ingot_polymer), MainRegistry.achPolymer); + craftingAchievements.put(new ComparableStack(ModItems.ingot_desh), MainRegistry.achDesh); + craftingAchievements.put(new ComparableStack(ModItems.gem_tantalium), MainRegistry.achTantalum); + craftingAchievements.put(new ComparableStack(ModBlocks.machine_gascent), MainRegistry.achGasCent); + craftingAchievements.put(new ComparableStack(ModBlocks.machine_centrifuge), MainRegistry.achCentrifuge); + craftingAchievements.put(new ComparableStack(ModItems.ingot_schrabidium), MainRegistry.achSchrab); + craftingAchievements.put(new ComparableStack(ModItems.nugget_schrabidium), MainRegistry.achSchrab); + craftingAchievements.put(new ComparableStack(ModBlocks.machine_crystallizer), MainRegistry.achAcidizer); + craftingAchievements.put(new ComparableStack(ModBlocks.machine_silex), MainRegistry.achSILEX); + craftingAchievements.put(new ComparableStack(ModItems.nugget_technetium), MainRegistry.achTechnetium); + craftingAchievements.put(new ComparableStack(ModBlocks.struct_watz_core), MainRegistry.achWatz); + craftingAchievements.put(new ComparableStack(ModItems.nugget_bismuth), MainRegistry.achBismuth); + craftingAchievements.put(new ComparableStack(ModItems.nugget_am241), MainRegistry.achBreeding); + craftingAchievements.put(new ComparableStack(ModItems.nugget_am242), MainRegistry.achBreeding); + craftingAchievements.put(new ComparableStack(ModItems.missile_nuclear), MainRegistry.achRedBalloons); + craftingAchievements.put(new ComparableStack(ModItems.missile_nuclear_cluster), MainRegistry.achRedBalloons); + craftingAchievements.put(new ComparableStack(ModItems.missile_doomsday), MainRegistry.achRedBalloons); + craftingAchievements.put(new ComparableStack(ModItems.mp_warhead_10_nuclear), MainRegistry.achRedBalloons); + craftingAchievements.put(new ComparableStack(ModItems.mp_warhead_10_nuclear_large), MainRegistry.achRedBalloons); + craftingAchievements.put(new ComparableStack(ModItems.mp_warhead_15_nuclear), MainRegistry.achRedBalloons); + craftingAchievements.put(new ComparableStack(ModItems.mp_warhead_15_nuclear_shark), MainRegistry.achRedBalloons); + craftingAchievements.put(new ComparableStack(ModItems.mp_warhead_15_boxcar), MainRegistry.achRedBalloons); + craftingAchievements.put(new ComparableStack(ModBlocks.struct_iter_core), MainRegistry.achFusion); + craftingAchievements.put(new ComparableStack(ModBlocks.machine_difurnace_off), MainRegistry.achBlastFurnace); + craftingAchievements.put(new ComparableStack(ModBlocks.machine_assembler), MainRegistry.achAssembly); + craftingAchievements.put(new ComparableStack(ModItems.billet_pu_mix), MainRegistry.achChicagoPile); + craftingAchievements.put(new ComparableStack(ModItems.ammo_4gauge, 1, ItemAmmoEnums.Ammo4Gauge.VAMPIRE.ordinal()), MainRegistry.achWitchtaunter); + } + + public static void fire(EntityPlayer player, ItemStack stack) { + if(player.worldObj.isRemote) return; + ComparableStack comp = new ComparableStack(stack).makeSingular(); + Achievement achievement = craftingAchievements.get(comp); + if(achievement != null) { + player.triggerAchievement(achievement); + } + } +} diff --git a/src/main/java/com/hbm/util/ChatBuilder.java b/src/main/java/com/hbm/util/ChatBuilder.java index 0140af364..9fc0c6169 100644 --- a/src/main/java/com/hbm/util/ChatBuilder.java +++ b/src/main/java/com/hbm/util/ChatBuilder.java @@ -1,10 +1,15 @@ package com.hbm.util; +import java.util.ArrayList; +import java.util.List; +import java.util.ListIterator; + import net.minecraft.util.ChatComponentStyle; import net.minecraft.util.ChatComponentText; import net.minecraft.util.ChatComponentTranslation; import net.minecraft.util.ChatStyle; import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.IChatComponent; public class ChatBuilder { @@ -46,6 +51,24 @@ public class ChatBuilder { return this; } + /** Will recursively go over all IChatComponents added to the root and then set the style */ + public ChatBuilder colorAll(EnumChatFormatting format) { + + List list = new ArrayList(); + list.add(text); + + ListIterator it = list.listIterator(); + + while(it.hasNext()) { + Object o = it.next(); + IChatComponent component = (IChatComponent) o; + component.getChatStyle().setColor(format); + for(Object s : component.getSiblings()) it.add(s); + } + + return this; + } + public ChatComponentText flush() { return this.text; } diff --git a/src/main/java/com/hbm/util/WeightedRandomGeneric.java b/src/main/java/com/hbm/util/WeightedRandomGeneric.java new file mode 100644 index 000000000..e72a7e6e8 --- /dev/null +++ b/src/main/java/com/hbm/util/WeightedRandomGeneric.java @@ -0,0 +1,17 @@ +package com.hbm.util; + +import net.minecraft.util.WeightedRandom; + +public class WeightedRandomGeneric extends WeightedRandom.Item { + + T item; + + public WeightedRandomGeneric(T o, int weight) { + super(weight); + item = o; + } + + public T get() { + return item; + } +} diff --git a/src/main/java/com/hbm/world/feature/BedrockOre.java b/src/main/java/com/hbm/world/feature/BedrockOre.java index 71cd87a12..6d054e206 100644 --- a/src/main/java/com/hbm/world/feature/BedrockOre.java +++ b/src/main/java/com/hbm/world/feature/BedrockOre.java @@ -1,15 +1,49 @@ package com.hbm.world.feature; +import java.util.ArrayList; +import java.util.List; + import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockBedrockOreTE.TileEntityBedrockOre; +import com.hbm.config.WorldConfig; import com.hbm.inventory.FluidStack; +import com.hbm.inventory.OreDictManager.DictFrame; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.items.ModItems; +import com.hbm.items.special.ItemBedrockOre.EnumBedrockOre; +import com.hbm.util.WeightedRandomGeneric; import net.minecraft.block.Block; import net.minecraft.init.Blocks; +import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import net.minecraft.world.World; public class BedrockOre { + + public static List> weightedOres = new ArrayList(); + + public static void init() { + registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.IRON, 1), WorldConfig.bedrockIronSpawn); + registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.COPPER, 1), WorldConfig.bedrockCopperSpawn); + registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.BORAX, 3, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockBoraxSpawn); + registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.ASBESTOS, 2), WorldConfig.bedrockAsbestosSpawn); + registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.NIOBIUM, 2, new FluidStack(Fluids.ACID, 500)), WorldConfig.bedrockNiobiumSpawn); + registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.TITANIUM, 2, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockTitaniumSpawn); + registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.TUNGSTEN, 2, new FluidStack(Fluids.ACID, 500)), WorldConfig.bedrockTungstenSpawn); + registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.GOLD, 1), WorldConfig.bedrockGoldSpawn); + registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.URANIUM, 4, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockUraniumSpawn); + registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.THORIUM, 4, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockThoriumSpawn); + registerBedrockOre(new BedrockOreDefinition(new ItemStack(Items.coal, 4), 1, 0x202020), WorldConfig.bedrockCoalSpawn); + registerBedrockOre(new BedrockOreDefinition(new ItemStack(ModItems.niter, 4), 2, 0x808080, new FluidStack(Fluids.ACID, 500)), WorldConfig.bedrockNiterSpawn); + registerBedrockOre(new BedrockOreDefinition(new ItemStack(ModItems.fluorite, 4), 1, 0xd0d0d0), WorldConfig.bedrockFluoriteSpawn); + registerBedrockOre(new BedrockOreDefinition(new ItemStack(Items.redstone, 4), 1, 0xd01010), WorldConfig.bedrockRedstoneSpawn); + } + + public static void registerBedrockOre(BedrockOreDefinition def, int weight) { + WeightedRandomGeneric weighted = new WeightedRandomGeneric(def, weight); + weightedOres.add(weighted); + } public static void generate(World world, int x, int z, ItemStack stack, FluidStack acid, int color, int tier) { @@ -49,4 +83,33 @@ public class BedrockOre { } } } + + public static class BedrockOreDefinition { + public ItemStack stack; + public FluidStack acid; + public int tier; + public int color; + + public BedrockOreDefinition(ItemStack stack, int tier, int color) { + this(stack, tier, color, null); + } + + public BedrockOreDefinition(ItemStack stack, int tier, int color, FluidStack acid) { + this.stack = stack; + this.tier = tier; + this.color = color; + this.acid = acid; + } + + public BedrockOreDefinition(EnumBedrockOre type, int tier) { + this(type, tier, null); + } + + public BedrockOreDefinition(EnumBedrockOre type, int tier, FluidStack acid) { + this.stack = DictFrame.fromOne(ModItems.ore_bedrock, type); + this.color = type.color; + this.tier = tier; + this.acid = acid; + } + } } diff --git a/src/main/java/com/hbm/world/feature/OilSpot.java b/src/main/java/com/hbm/world/feature/OilSpot.java index bcd746638..7b02e5263 100644 --- a/src/main/java/com/hbm/world/feature/OilSpot.java +++ b/src/main/java/com/hbm/world/feature/OilSpot.java @@ -80,7 +80,7 @@ public class OilSpot { world.setBlock(rX, y, rZ, ModBlocks.stone_cracked); break; - } else if(ground.getMaterial() == Material.leaves) { + } else if(ground.getMaterial() == Material.leaves && (meta & 8) != 0 && (meta & 4) == 0) { world.setBlockToAir(rX, y, rZ); break; } diff --git a/src/main/java/com/hbm/world/feature/OreLayer3D.java b/src/main/java/com/hbm/world/feature/OreLayer3D.java index 67fecb388..aee3cf43d 100644 --- a/src/main/java/com/hbm/world/feature/OreLayer3D.java +++ b/src/main/java/com/hbm/world/feature/OreLayer3D.java @@ -16,6 +16,10 @@ public class OreLayer3D { NoiseGeneratorPerlin noiseY; NoiseGeneratorPerlin noiseZ; + double scaleH; + double scaleV; + double threshold; + Block block; int meta; int dim = 0; @@ -30,6 +34,21 @@ public class OreLayer3D { this.dim = dim; return this; } + + public OreLayer3D setScaleH(double scale) { + this.scaleH = scale; + return this; + } + + public OreLayer3D setScaleV(double scale) { + this.scaleV = scale; + return this; + } + + public OreLayer3D setThreshold(double threshold) { + this.threshold = threshold; + return this; + } @SubscribeEvent public void onDecorate(DecorateBiomeEvent.Pre event) { @@ -44,9 +63,6 @@ public class OreLayer3D { int cX = event.chunkX; int cZ = event.chunkZ; - - double scaleH = 0.04D; - double scaleV = 0.25D; for(int x = cX + 8; x < cX + 24; x++) { for(int z = cZ + 8; z < cZ + 24; z++) { @@ -55,7 +71,7 @@ public class OreLayer3D { double nY = this.noiseY.func_151601_a(x * scaleH, z * scaleH); double nZ = this.noiseZ.func_151601_a(x * scaleH, y * scaleV); - if(nX * nY * nZ > 220) { + if(nX * nY * nZ > threshold) { Block target = world.getBlock(x, y, z); if(target.isNormalCube() && target.getMaterial() == Material.rock) { diff --git a/src/main/java/com/hbm/world/generator/DungeonToolbox.java b/src/main/java/com/hbm/world/generator/DungeonToolbox.java index f8a739378..7e0a899f9 100644 --- a/src/main/java/com/hbm/world/generator/DungeonToolbox.java +++ b/src/main/java/com/hbm/world/generator/DungeonToolbox.java @@ -3,15 +3,10 @@ package com.hbm.world.generator; import java.util.List; import java.util.Random; -import com.hbm.inventory.FluidStack; import com.hbm.inventory.RecipesCommon.MetaBlock; -import com.hbm.items.ModItems; -import com.hbm.items.special.ItemBedrockOre.EnumBedrockOre; -import com.hbm.world.feature.BedrockOre; import net.minecraft.block.Block; import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraft.world.gen.feature.WorldGenFlowers; @@ -25,11 +20,8 @@ public class DungeonToolbox { return; for(int i = x; i < x + sx; i++) { - for(int j = y; j < y + sy; j++) { - for(int k = z; k < z + sz; k++) { - MetaBlock b = getRandom(blocks, world.rand); world.setBlock(i, j, k, b.block, b.meta, 2); } @@ -93,24 +85,6 @@ public class DungeonToolbox { (new WorldGenMinable(ore, meta, amount, target)).generate(world, rand, x, y, z); } } - - public static void generateBedrockOreWithChance(World world, Random rand, int chunkX, int chunkZ, EnumBedrockOre ore, int tier, int chance) { - if(chance > 0 && rand.nextInt(chance) == 0) generateBedrockOre(world, rand, chunkX, chunkZ, ore, null, tier); - } - - public static void generateBedrockOreWithChance(World world, Random rand, int chunkX, int chunkZ, EnumBedrockOre ore, FluidStack stack, int tier, int chance) { - if(chance > 0 && rand.nextInt(chance) == 0) generateBedrockOre(world, rand, chunkX, chunkZ, ore, stack, tier); - } - - public static void generateBedrockOre(World world, Random rand, int chunkX, int chunkZ, EnumBedrockOre ore, int tier) { - generateBedrockOre(world, rand, chunkX, chunkZ, ore, null, tier); - } - - public static void generateBedrockOre(World world, Random rand, int chunkX, int chunkZ, EnumBedrockOre ore, FluidStack stack, int tier) { - int randPosX = chunkX + rand.nextInt(16) + 8; - int randPosZ = chunkZ + rand.nextInt(16) + 8; - BedrockOre.generate(world, randPosX, randPosZ, new ItemStack(ModItems.ore_bedrock, 1, ore.ordinal()), stack, ore.color, tier); - } private static WorldGenFlowers genFlowers = new WorldGenFlowers(null); public static void generateFlowers(World world, Random rand, int chunkX, int chunkZ, Block flower, int meta) { diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 4e2684089..f17622a7a 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -18,22 +18,24 @@ achievement.c44.desc=Galvanisch verzinkt! ...das macht in der Übersetzung sowas achievement.c44=Kapitel 44 achievement.chemistry.desc=Bobmazon Level 3 (Betonziegel) achievement.chemistry=Chemie -achievement.digammaFeel.desc=the hollow within. -achievement.digammaFeel=The Terror of Feeling +achievement.digammaFeel.desc=Meine Augen bluten +achievement.digammaFeel=SEWAGE-INFUSED GARBAGE WORLD achievement.digammaKauaiMoho.desc=Alles ist schrecklich, hier ist etwas heiße Schoki. -achievement.digammaKauaiMoho=Sing, sing mir das Lied der Kauai Moho +achievement.digammaKauaiMoho=SING, SING ME THE SONG OF THE KAUAI MOHO achievement.digammaKnow.desc=what this world is about. -achievement.digammaKnow=The Terror of Knowing -achievement.digammaSee.desc=into the abyss. -achievement.digammaSee=The Terror of Seeing -achievement.digammaUpOnTop.desc=Bewundere meinen Sohn, er ist mein Klon. -achievement.digammaUpOnTop=Bewundere mich, bewundere mein Heim +achievement.digammaKnow=THE TERROR OF KNOWING +achievement.digammaSee.desc=Es ist Dunkel, bring eine Taschenlampe. +achievement.digammaSee=ENTER THE ABYSS +achievement.digammaUpOnTop.desc=Admire my son, he's my clone. +achievement.digammaUpOnTop=ADMIRE ME, ADMIRE MY HOME achievement.fiend.desc=Sei gemein. achievement.fiend2.desc=Sei gemeiner. achievement.fiend2=Unhold 2: Noch unholdiger achievement.fiend=Unhold achievement.freytag.desc=Leibgarde Herold achievement.freytag=Freytag +achievement.goFish.desc=Kreuzigung auf See +achievement.goFish=Go Fish achievement.hidden.desc=Töte einen Enderman mit einem fallenden Güterwagon wärend du brennst und mehr als 250 RADs hast. achievement.hidden=Versteckter Katalog achievement.horizonsBonus.desc=junge was ist denn mit dir verkehrt @@ -679,6 +681,7 @@ hbmfluid.plasma_xm=Xenon-Quecksilber-Plasma hbmfluid.puf6=Plutoniumhexafluorid hbmfluid.radiosolvent=Hochleistungs-Lösungsmittel hbmfluid.reclaimed=Wiederaufbetreitetes Industrieöl +hbmfluid.redmud=Rotschlamm hbmfluid.reformate=Reformat hbmfluid.reformgas=Reformatgas hbmfluid.salient=Saftiges Grün @@ -2473,6 +2476,8 @@ item.ore.iron=Eisen item.ore.niobium=Niob item.ore.titanium=Titan item.ore.tungsten=Wolfram +item.ore.thorium=Thorium +item.ore.uranium=Uran item.ore_bedrock.name=Bedrock-%serz item.ore_byproduct.b_aluminium.name=Kristallines Aluminiumfragment item.ore_byproduct.b_bismuth.name=Kristallines Bismutfragment @@ -2481,9 +2486,13 @@ item.ore_byproduct.b_copper.name=Kristallines Kupferfragment item.ore_byproduct.b_iron.name=Kristallines Eisenfragment item.ore_byproduct.b_lead.name=Kristallines Bleifragment item.ore_byproduct.b_lithium.name=Kristallines Lithiumfragment +item.ore_byproduct.b_polonium.name=Kristallines Poloniumfragment +item.ore_byproduct.b_radium.name=Kristallines Radiumfragment item.ore_byproduct.b_silicon.name=Kristallines Siliziumfragment item.ore_byproduct.b_sulfur.name=Kristallines Schwefelfragment +item.ore_byproduct.b_technetium.name=Kristallines Technetiumfragment item.ore_byproduct.b_titanium.name=Kristallines Titanfragment +item.ore_byproduct.b_uranium.name=Kristallines Uranfragment item.ore_centrifuged.name=Zentrifugiertes %serz item.ore_cleaned.name=Gereinigtes %serz item.ore_deepcleaned.name=Tiefengereinigtes %serz @@ -2491,7 +2500,7 @@ item.ore_enriched.name=Reiches %serz item.ore_nitrated.name=Nitriertes %serz item.ore_nitrocrystalline.name=Nitrokristallines %serz item.ore_purified.name=Pures %serz -item.ore_radcleaaned.name=Strahlengereinigtes %serz +item.ore_radcleaned.name=Strahlengereinigtes %serz item.ore_seared.name=Geätztes %serz item.ore_separated.name=Separiertes %serz item.overfuse.name=Singularitätsschraubenzieher @@ -4242,6 +4251,7 @@ tile.stone_depth_nether.name=Nether-Tiefenfels tile.stone_gneiss.name=Graphitschiefer tile.stone_porous.name=Poröser Stein tile.stone_resource.asbestos.name=Chrysotil +tile.stone_resource.bauxite.name=Bauxit tile.stone_resource.hematite.name=Hämatit tile.stone_resource.limestone.name=Kalkstein tile.stone_resource.malachite.name=Malachit diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 3758781ef..5a20f09a4 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -36,16 +36,16 @@ achievement.concrete.desc=A Bolshevik's favorite. achievement.concrete=Old Reliable achievement.desh.desc="Come on then, you lot. Places to go!" achievement.desh=Le Verrier -achievement.digammaFeel.desc=the hollow within. -achievement.digammaFeel=The Terror of Feeling +achievement.digammaFeel.desc=My eyes are bleeding +achievement.digammaFeel=SEWAGE-INFUSED GARBAGE WORLD achievement.digammaKauaiMoho.desc=Everything is awful, here's some hot choccy. -achievement.digammaKauaiMoho=Sing, sing me the song of the Kauai Moho +achievement.digammaKauaiMoho=SING, SING ME THE SONG OF THE KAUAI MOHO achievement.digammaKnow.desc=what this world is about. -achievement.digammaKnow=The Terror of Knowing -achievement.digammaSee.desc=into the abyss. -achievement.digammaSee=The Terror of Seeing +achievement.digammaKnow=THE TERROR OF KNOWING +achievement.digammaSee.desc=It's a bit dark, bring a flashlight. +achievement.digammaSee=ENTER THE ABYSS achievement.digammaUpOnTop.desc=Admire my son, he's my clone. -achievement.digammaUpOnTop=Admire Me, Admire my Home +achievement.digammaUpOnTop=ADMIRE ME, ADMIRE MY HOME achievement.fiend.desc=Be mean. achievement.fiend2.desc=Be meaner. achievement.fiend2=Delinquent 2: Delinquent Harder @@ -56,6 +56,8 @@ achievement.fusion.desc=A dance of deuterons, tritons, and energy. achievement.fusion=Fusion achievement.gasCent.desc=Unenriched Uranium hates him! achievement.gasCent=The Zippe Style +achievement.goFish.desc=Nautical Crucifixion +achievement.goFish=Go Fish achievement.hidden.desc=Kill a tainted creeper with a falling boxcar. achievement.hidden=Hidden Catalog achievement.horizonsBonus.desc=honest to god what the hell is wrong with you @@ -1251,6 +1253,7 @@ hbmfluid.plasma_xm=Xenon-Mercury Plasma hbmfluid.puf6=Plutonium Hexafluoride hbmfluid.radiosolvent=High-Performance Solvent hbmfluid.reclaimed=Reclaimed Industrial Oil +hbmfluid.redmud=Red Mud hbmfluid.reformate=Reformate hbmfluid.reformgas=Reformate Gas hbmfluid.salient=Salient Green @@ -3152,6 +3155,8 @@ item.ore.iron=Iron item.ore.niobium=Niobium item.ore.titanium=Titanium item.ore.tungsten=Tungsten +item.ore.thorium=Thorium +item.ore.uranium=Uranium item.ore_bedrock.name=%s Bedrock Ore item.ore_byproduct.b_aluminium.name=Crystalline Aluminium Fragment item.ore_byproduct.b_bismuth.name=Crystalline Bismuth Fragment @@ -3160,9 +3165,13 @@ item.ore_byproduct.b_copper.name=Crystalline Copper Fragment item.ore_byproduct.b_iron.name=Crystalline Iron Fragment item.ore_byproduct.b_lead.name=Crystalline Lead Fragment item.ore_byproduct.b_lithium.name=Crystalline Lithium Fragment +item.ore_byproduct.b_polonium.name=Crystalline Polonium Fragment +item.ore_byproduct.b_radium.name=Crystalline Radium Fragment item.ore_byproduct.b_silicon.name=Crystalline Silicon Fragment item.ore_byproduct.b_sulfur.name=Crystalline Sulfur Fragment +item.ore_byproduct.b_technetium.name=Crystalline Technetium Fragment item.ore_byproduct.b_titanium.name=Crystalline Titanium Fragment +item.ore_byproduct.b_uranium.name=Crystalline Uranium Fragment item.ore_centrifuged.name=Centrifuged %s Ore item.ore_cleaned.name=Cleaned %s Ore item.ore_deepcleaned.name=Deep Cleaned %s Ore @@ -3170,7 +3179,7 @@ item.ore_enriched.name=Enriched %s Ore item.ore_nitrated.name=Nitrated %s Ore item.ore_nitrocrystalline.name=Nitrocrystalline %s Ore item.ore_purified.name=Purified %s Ore -item.ore_raadcleaned.name=Radiation-Cleaned %s Ore +item.ore_radcleaned.name=Radiation-Cleaned %s Ore item.ore_seared.name=Seared %s Ore item.ore_separated.name=Separated %s Ore item.overfuse.name=Singularity Screwdriver @@ -5062,6 +5071,7 @@ tile.stone_depth_nether.name=Nether Depth Rock tile.stone_gneiss.name=Graphitic Schist tile.stone_porous.name=Porous Stone tile.stone_resource.asbestos.name=Chrysotile +tile.stone_resource.bauxite.name=Bauxite tile.stone_resource.hematite.name=Hematite tile.stone_resource.limestone.name=Limestone tile.stone_resource.malachite.name=Malachite diff --git a/src/main/resources/assets/hbm/textures/blocks/stone_resource.bauxite.png b/src/main/resources/assets/hbm/textures/blocks/stone_resource.bauxite.png new file mode 100644 index 0000000000000000000000000000000000000000..d2b38295d37df0c3d1b261659d4d5d34904bfe07 GIT binary patch literal 811 zcmV+`1JwM9P)A8_g4 z;a}37OIPk(*@UEGnxbi}HJG*vNS!h*L0~?Z;r+UE?{)FU#It)AC(m=vc}{TtWz~zD z8i44)@E^ASOu4sE;OhGdBv2N}nWK_gnuYwF8yZ=WSmSZOjp)6x zWE1%AhXiGuXQiPCmvR~I)UvWFSsvvx#v#i&S+{2R`P(5{z`d5@c;Ha=sv^85A$G_Q zLS#!o;^;mcvao&y6o}?50_c7HI`=B`M2Y8g;n@op3zxw3jt#fqQ3o-m#d8XXCRn zY7l!aQ%kcZDAfdED5?Hq*|=LkE{0TW#P3Hb2ah6VLdjf3u(lxSU3iEcYVEd0OiM@{ z&z@(TT*TC?3LydpKVI;nn@2W3rC3|l2pw?p*93sA?HJWNu@naufc3itqPLPK`x$$$ z3}++9{FGqvjz-^a12pb-%+V6Ds=^|GU4WXR7!%~w}!=quW;j=stLjB=5nCuH{Z$B7*?yJ!zWP;?+CLF!gLS6^j4CJUpV? zcbJK%IVb53Es24Gf}#%40=k0<_czOkDap>G7-ioioc)nuw?>={9a=!@p;F4f?UUPz pB+D0s*CfqjfzScbf#Ji3tu+Ap@$m+&HPbY) zEDJG4)^#O>z}wp!ecv;VBiHMdrfIlbE-0l)DRI4CvCq%XG)=>Pzvp;7qLiYpYm6~` ze0(sDBhERjwKPpb+qTT}j8Y2kJ$6|ZthE5#+}zN09q02IV+;=u4^&l!bB^6^$Jf^v zcXxLT!vKIW2D`3n0asOph~T~F_VyNluIuRgp7Z&Ph_EaRbzRf8Ep=UE4~GMFUE{qc z=Zv+Mr>7^3F;rDWjFFr(IcJ7ppzAtB1OV?nI;HeO#ad#Fgb)fFW6Vz%Yw7#Gd@3R+ zrC62)t+hreMb4SJu4$SEYb{DC=6MDv%(kvuPDHT#{hkm)DKN$$BE{z|9%IB9Q$}6a zm6Q?|Kq-ZY5JDh?Kvh-6PJnGpr4%tnzQ4aq-fkVe_q1&bfO8HJA;$P0t4$N{J;2W* z0fqGrQf6VHk>V z8&E`wolVmaLMS?H+Gt}8#+d)CTGzE)X9%HO-*(n9Mx1jv=lBPrP*Hz^9#>=l0000< KMNUMnLSTZp`4Dda literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/achievement_icon.acid.png b/src/main/resources/assets/hbm/textures/items/achievement_icon.acid.png new file mode 100644 index 0000000000000000000000000000000000000000..e83e786e34c2210894a3abb121a747fc55ef8382 GIT binary patch literal 29485 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
VScbgJ`YgLIpgd+r$^nSZ#*eh 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 g=chg{<{9 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/digamma_feel.png b/src/main/resources/assets/hbm/textures/items/achievement_icon.digammafeel.png similarity index 100% rename from src/main/resources/assets/hbm/textures/items/digamma_feel.png rename to src/main/resources/assets/hbm/textures/items/achievement_icon.digammafeel.png diff --git a/src/main/resources/assets/hbm/textures/items/achievement_icon.digammaforourright.png b/src/main/resources/assets/hbm/textures/items/achievement_icon.digammaforourright.png new file mode 100644 index 0000000000000000000000000000000000000000..bccb7255a1ec255c5cde816dbe617aaba996c12e GIT binary patch literal 208 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf(WAr;|p$=_#7*cuF42y$$E0FTv6)Bryq>#IxjC<{o(^_mAduQV_NI*Gy4)z4*}Q$iB} DfK5wg literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/digamma_kauai_moho.png b/src/main/resources/assets/hbm/textures/items/achievement_icon.digammakauaimoho.png similarity index 100% rename from src/main/resources/assets/hbm/textures/items/digamma_kauai_moho.png rename to src/main/resources/assets/hbm/textures/items/achievement_icon.digammakauaimoho.png diff --git a/src/main/resources/assets/hbm/textures/items/digamma_know.png b/src/main/resources/assets/hbm/textures/items/achievement_icon.digammaknow.png similarity index 100% rename from src/main/resources/assets/hbm/textures/items/digamma_know.png rename to src/main/resources/assets/hbm/textures/items/achievement_icon.digammaknow.png diff --git a/src/main/resources/assets/hbm/textures/items/digamma_see.png b/src/main/resources/assets/hbm/textures/items/achievement_icon.digammasee.png similarity index 100% rename from src/main/resources/assets/hbm/textures/items/digamma_see.png rename to src/main/resources/assets/hbm/textures/items/achievement_icon.digammasee.png diff --git a/src/main/resources/assets/hbm/textures/items/digamma_unity.png b/src/main/resources/assets/hbm/textures/items/achievement_icon.digammaunity.png similarity index 100% rename from src/main/resources/assets/hbm/textures/items/digamma_unity.png rename to src/main/resources/assets/hbm/textures/items/achievement_icon.digammaunity.png diff --git a/src/main/resources/assets/hbm/textures/items/digamma_up_on_top.png b/src/main/resources/assets/hbm/textures/items/achievement_icon.digammaupontop.png similarity index 100% rename from src/main/resources/assets/hbm/textures/items/digamma_up_on_top.png rename to src/main/resources/assets/hbm/textures/items/achievement_icon.digammaupontop.png diff --git a/src/main/resources/assets/hbm/textures/items/achievement_icon.gofish.png b/src/main/resources/assets/hbm/textures/items/achievement_icon.gofish.png new file mode 100644 index 0000000000000000000000000000000000000000..f6622381a37c2ecd55082cf5e39a6b9db205040e GIT binary patch literal 174 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VflSbB4w;YfOjn;>WldDMcQO6w z^*0Qf&t7g_qoKUvv&_^Doxe*QPq-GZ_}lx5x57AOmXOPhaL!e4CoQ<8$GPtX!{l78 VUsZkyd%?BKXO4CmzRQ4p7ZPafP(m~7boXDJ$Z}S>szv*q{t2y uIVbLkA^QKrxf}L|SUpo^I_;(}&mdR5-MW#zb(b5^DGZ*jelF{r5}E*HP(=p- diff --git a/src/main/resources/assets/hbm/textures/items/digamma_event_horizon.png b/src/main/resources/assets/hbm/textures/items/digamma_event_horizon.png deleted file mode 100644 index 11a7ae960ee5c735cc5b401373fff85021f8f8cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfb-;kbIr!#5n_cG7`?;bGoVOpk7jNhpyn^{aC%;VAgLm7DU6$-R$a~{N!GzK? zGml+aAe9sqc6itJ;%-~sfBXUSpL9OG`Mt%jd-b&|3zFC-#YXIjTc#(xFGOBi(N3!f PXcvR0tDnm{r-UW|70o=( From 87a87738ba2fdcfd4bd8002155668c474608d8fb Mon Sep 17 00:00:00 2001 From: Bob Date: Mon, 29 May 2023 16:50:51 +0200 Subject: [PATCH 069/432] train coupling, pulling physics --- .../java/com/hbm/crafting/PowderRecipes.java | 6 +- .../hbm/entity/train/EntityRailCarBase.java | 248 ++++++++++++++---- .../com/hbm/entity/train/TrainCargoTram.java | 1 + .../entity/train/TrainCargoTramTrailer.java | 1 + .../inventory/recipes/AssemblerRecipes.java | 22 +- .../recipes/CrystallizerRecipes.java | 1 + .../java/com/hbm/main/CraftingManager.java | 16 +- .../java/com/hbm/main/ModEventHandler.java | 6 + .../items/battery_schrabidium_cell.png | Bin 182 -> 168 bytes .../items/battery_schrabidium_cell_2.png | Bin 213 -> 202 bytes .../items/battery_schrabidium_cell_4.png | Bin 288 -> 312 bytes .../items/battery_schrabidium_new.png | Bin 319 -> 287 bytes 12 files changed, 245 insertions(+), 56 deletions(-) diff --git a/src/main/java/com/hbm/crafting/PowderRecipes.java b/src/main/java/com/hbm/crafting/PowderRecipes.java index 6c6845ed9..22200d0ef 100644 --- a/src/main/java/com/hbm/crafting/PowderRecipes.java +++ b/src/main/java/com/hbm/crafting/PowderRecipes.java @@ -41,11 +41,11 @@ public class PowderRecipes { CraftingManager.addShapelessAuto(new ItemStack(Items.gunpowder, 3), new Object[] { S.dust(), KNO.dust(), new ItemStack(Items.coal, 1, 1) }); //Blends - CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_power, 5), new Object[] { REDSTONE.dust(), "dustGlowstone", DIAMOND.dust(), NP237.dust(), MAGTUNG.dust() }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_power, 3), new Object[] { "dustGlowstone", DIAMOND.dust(), MAGTUNG.dust() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_nitan_mix, 6), new Object[] { NP237.dust(), I.dust(), TH232.dust(), AT.dust(), ND.dust(), CS.dust() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_nitan_mix, 6), new Object[] { ST.dust(), CO.dust(), BR.dust(), TS.dust(), NB.dust(), CE.dust() }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_spark_mix, 5), new Object[] { DESH.dust(), EUPH.dust(), ModItems.powder_meteorite, ModItems.powder_power, ModItems.powder_nitan_mix }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_meteorite, 5), new Object[] { IRON.dust(), CU.dust(), LI.dust(), W.dust(), U.dust() }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_spark_mix, 3), new Object[] { DESH.dust(), EUPH.dust(), ModItems.powder_power }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_meteorite, 4), new Object[] { IRON.dust(), CU.dust(), LI.dust(), NETHERQUARTZ.dust() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_thermite, 4), new Object[] { IRON.dust(), IRON.dust(), IRON.dust(), AL.dust() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_desh_mix, 1), new Object[] { B.dustTiny(), B.dustTiny(), LA.dustTiny(), LA.dustTiny(), CE.dustTiny(), CO.dustTiny(), LI.dustTiny(), ND.dustTiny(), NB.dustTiny() }); diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java index e33f02380..163adc596 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java @@ -1,14 +1,19 @@ package com.hbm.entity.train; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Set; import com.hbm.blocks.rail.IRailNTM; import com.hbm.blocks.rail.IRailNTM.RailContext; import com.hbm.blocks.rail.IRailNTM.TrackGauge; import com.hbm.items.ModItems; +import com.hbm.packet.AuxParticlePacketNT; +import com.hbm.packet.PacketDispatcher; import com.hbm.util.fauxpointtwelve.BlockPos; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; @@ -23,6 +28,7 @@ import net.minecraft.world.World; public abstract class EntityRailCarBase extends Entity { + public LogicalTrainUnit ltu; public boolean isOnRail = true; private int turnProgress; /* Clientside position that should be approached with smooth interpolation */ @@ -94,12 +100,29 @@ public abstract class EntityRailCarBase extends Entity { if(neighbor.getCoupledTo(closestNeighborCoupling) != null) continue; this.couple(closestOwnCoupling, neighbor); neighbor.couple(closestNeighborCoupling, this); + if(this.ltu != null) this.ltu.dissolve(); + if(neighbor.ltu != null) neighbor.ltu.dissolve(); player.swingItem(); return true; } } } + if(this.ltu != null) { + + String id = Integer.toHexString(ltu.hashCode()); + + for(EntityRailCarBase train : ltu.trains) { + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "debug"); + data.setInteger("color", 0x0000ff); + data.setFloat("scale", 1.5F); + data.setString("text", id); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, train.posX, train.posY + 1, train.posZ), new TargetPoint(this.dimension, train.posX, train.posY + 1, train.posZ, 50)); + } + } + return false; } @@ -127,14 +150,7 @@ public abstract class EntityRailCarBase extends Entity { this.setPosition(this.posX, this.posY, this.posZ); this.setRotation(this.rotationYaw, this.rotationPitch); } - - /* - * TODO: move movement into the world tick event handler. - * step 1: detect linked trains, move linked units (LTUs) as one later - * step 2: move LTUs together using coupling rules (important to happen first, consistency has to be achieved before major movement) - * step 3: move LTUs based on their engine and gravity speed - * step 4: move LTUs based on collisions between LTUs (important to happen last, collision is most important) - */ + BlockPos anchor = this.getCurentAnchorPos(); Vec3 frontPos = getRelPosAlongRail(anchor, this.getLengthSpan()); Vec3 backPos = getRelPosAlongRail(anchor, -this.getLengthSpan()); @@ -150,6 +166,19 @@ public abstract class EntityRailCarBase extends Entity { } } else { + + if(this.coupledFront != null && this.coupledFront.isDead) { + this.coupledFront = null; + if(this.ltu != null) this.ltu.dissolve(); + } + if(this.coupledBack != null && this.coupledBack.isDead) { + this.coupledBack = null; + if(this.ltu != null) this.ltu.dissolve(); + } + + if(this.ltu == null && (this.coupledFront == null || this.coupledBack == null)) { + LogicalTrainUnit.generate(this); + } DummyConfig[] definitions = this.getDummies(); @@ -172,31 +201,6 @@ public abstract class EntityRailCarBase extends Entity { this.initDummies = true; } - BlockPos anchor = this.getCurentAnchorPos(); - Vec3 corePos = getRelPosAlongRail(anchor, this.getCurrentSpeed()); - - if(corePos == null) { - this.derail(); - } else { - this.setPosition(corePos.xCoord, corePos.yCoord, corePos.zCoord); - anchor = this.getCurentAnchorPos(); //reset origin to new position - Vec3 frontPos = getRelPosAlongRail(anchor, this.getLengthSpan()); - Vec3 backPos = getRelPosAlongRail(anchor, -this.getLengthSpan()); - - if(frontPos == null || backPos == null) { - this.derail(); - return; - } else { - this.renderX = (frontPos.xCoord + backPos.xCoord) / 2D; - this.renderY = (frontPos.yCoord + backPos.yCoord) / 2D; - this.renderZ = (frontPos.zCoord + backPos.zCoord) / 2D; - this.prevRotationYaw = this.rotationYaw; - this.rotationYaw = this.movementYaw = generateYaw(frontPos, backPos); - this.motionX = this.rotationYaw / 360D; // hijacking this crap for easy syncing - this.velocityChanged = true; - } - } - for(int i = 0; i < definitions.length; i++) { DummyConfig def = definitions[i]; BoundingBoxDummyEntity dummy = dummies[i]; @@ -212,15 +216,16 @@ public abstract class EntityRailCarBase extends Entity { } public Vec3 getRelPosAlongRail(BlockPos anchor, double distanceToCover) { - - float yaw = this.rotationYaw; + return getRelPosAlongRail(anchor, distanceToCover, this.getGauge(), this.worldObj, Vec3.createVectorHelper(posX, posY, posZ), this.rotationYaw); + } + + public static Vec3 getRelPosAlongRail(BlockPos anchor, double distanceToCover, TrackGauge gauge, World worldObj, Vec3 next, float yaw) { if(distanceToCover < 0) { distanceToCover *= -1; yaw += 180; } - Vec3 next = Vec3.createVectorHelper(posX, posY, posZ); int it = 0; do { @@ -228,8 +233,6 @@ public abstract class EntityRailCarBase extends Entity { it++; if(it > 30) { - worldObj.createExplosion(this, posX, posY, posZ, 5F, false); - this.derail(); return null; } @@ -250,7 +253,7 @@ public abstract class EntityRailCarBase extends Entity { boolean flip = distanceToCover < 0; - if(rail.getGauge(worldObj, x, y, z) == this.getGauge()) { + if(rail.getGauge(worldObj, x, y, z) == gauge) { RailContext info = new RailContext(); Vec3 prev = next; next = rail.getTravelLocation(worldObj, x, y, z, prev.xCoord, prev.yCoord, prev.zCoord, rot.xCoord, rot.yCoord, rot.zCoord, distanceToCover, info); @@ -271,15 +274,34 @@ public abstract class EntityRailCarBase extends Entity { return next; } - public float generateYaw(Vec3 front, Vec3 back) { + public static float generateYaw(Vec3 front, Vec3 back) { double deltaX = front.xCoord - back.xCoord; double deltaZ = front.zCoord - back.zCoord; double radians = -Math.atan2(deltaX, deltaZ); return (float) MathHelper.wrapAngleTo180_double(radians * 180D / Math.PI); } + + public static void updateMotion(World world) { + Set ltus = new HashSet(); + + /* gather all LTUs */ + for(Object o : world.loadedEntityList) { + if(o instanceof EntityRailCarBase) { + EntityRailCarBase train = (EntityRailCarBase) o; + if(train.ltu != null) ltus.add(train.ltu); + } + } + + /* Move carts together with links */ + for(LogicalTrainUnit ltu : ltus) ltu.combineLinks(); + + /* Move carts with unified speed */ + for(LogicalTrainUnit ltu : ltus) ltu.moveLinks(); + } /** Returns the amount of blocks that the train should move per tick */ public abstract double getCurrentSpeed(); + public abstract double getMaxRailSpeed(); /** Returns the gauge of this train */ public abstract TrackGauge getGauge(); /** Returns the length between the core and one of the bogies */ @@ -289,9 +311,9 @@ public abstract class EntityRailCarBase extends Entity { return this.boundingBox; } /** Returns a collision box used for block collisions when derailed */ - @Override public AxisAlignedBB getBoundingBox() { + /*@Override public AxisAlignedBB getBoundingBox() { return this.boundingBox; - } + }*/ /** Returns the "true" position of the train, i.e. the block it wants to snap to */ public BlockPos getCurentAnchorPos() { @@ -437,6 +459,10 @@ public abstract class EntityRailCarBase extends Entity { return coupling == TrainCoupling.FRONT ? this.coupledFront : coupling == TrainCoupling.BACK ? this.coupledBack : null; } + public TrainCoupling getCouplingFrom(EntityRailCarBase coupledTo) { + return coupledTo == this.coupledFront ? TrainCoupling.FRONT : coupledTo == this.coupledBack ? TrainCoupling.BACK : null; + } + public void couple(TrainCoupling coupling, EntityRailCarBase to) { if(coupling == TrainCoupling.FRONT) this.coupledFront = to; if(coupling == TrainCoupling.BACK) this.coupledBack = to; @@ -444,8 +470,142 @@ public abstract class EntityRailCarBase extends Entity { public static class LogicalTrainUnit { - List trains = new ArrayList(); + protected EntityRailCarBase trains[]; - //TBI + /** Assumes that the train is an endpoint, i.e. that only one coupling is in use */ + public static LogicalTrainUnit generate(EntityRailCarBase train) { + List links = new ArrayList(); + Set brake = new HashSet(); + links.add(train); + brake.add(train); + LogicalTrainUnit ltu = new LogicalTrainUnit(); + + if(train.coupledFront == null && train.coupledFront == null) { + ltu.trains = new EntityRailCarBase[] {train}; + train.ltu = ltu; + return ltu; + } + + EntityRailCarBase prevCar = train; + EntityRailCarBase nextCar = train.coupledBack == null ? train.coupledFront : train.coupledBack; + + while(nextCar != null) { + links.add(nextCar); + brake.add(nextCar); + + EntityRailCarBase currentCar = nextCar; + nextCar = nextCar.coupledBack == prevCar ? nextCar.coupledFront : nextCar.coupledBack; + prevCar = currentCar; + + if(brake.contains(nextCar)) { + break; + } + } + + ltu.trains = new EntityRailCarBase[links.size()]; + + for(int i = 0; i < ltu.trains.length; i++) { + ltu.trains[i] = links.get(i); + ltu.trains[i].ltu = ltu; + } + + return ltu; + } + + public void dissolve() { + for(EntityRailCarBase train : trains) { + train.ltu = null; + } + } + + public void combineLinks() { + + if(trains.length <= 1) return; + + boolean odd = trains.length % 2 == 1; + int centerIndex = odd ? trains.length / 2 : trains.length / 2 - 1; + EntityRailCarBase center = trains[centerIndex]; + EntityRailCarBase prev = center; + + for(int i = centerIndex - 1; i >= 0; i--) { + EntityRailCarBase next = trains[i]; + moveTo(prev, next); + prev = next; + } + + prev = center; + for(int i = centerIndex + 1; i < trains.length; i++) { + EntityRailCarBase next = trains[i]; + moveTo(prev, next); + prev = next; + } + } + + public static void moveTo(EntityRailCarBase prev, EntityRailCarBase next) { + TrainCoupling prevCouple = prev.getCouplingFrom(next); + TrainCoupling nextCouple = next.getCouplingFrom(prev); + Vec3 prevLoc = prev.getCouplingPos(prevCouple); + Vec3 nextLoc = next.getCouplingPos(nextCouple); + Vec3 delta = Vec3.createVectorHelper(prevLoc.xCoord - nextLoc.xCoord, 0, prevLoc.zCoord - nextLoc.zCoord); + double len = delta.lengthVector(); + len *= 0.25D; //suspension, causes movements to be less rigid + BlockPos anchor = new BlockPos(next.posX, next.posY, next.posZ); + Vec3 trainPos = Vec3.createVectorHelper(next.posX, next.posY, next.posZ); + float yaw = EntityRailCarBase.generateYaw(prevLoc, nextLoc); + Vec3 newPos = EntityRailCarBase.getRelPosAlongRail(anchor, len, next.getGauge(), next.worldObj, trainPos, yaw); + next.setPosition(newPos.xCoord, newPos.yCoord, newPos.zCoord); + } + + public void moveLinks() { + + EntityRailCarBase prev = trains[0]; + TrainCoupling dir = prev.getCouplingFrom(null); + double totalSpeed = 0; + double maxSpeed = Double.POSITIVE_INFINITY; + + for(EntityRailCarBase train : this.trains) { + boolean con = train.getCouplingFrom(prev) == dir; + double speed = train.getCurrentSpeed(); + if(!con) speed *= -1; + totalSpeed += speed; + maxSpeed = Math.min(maxSpeed, train.getMaxRailSpeed()); + prev = train; + } + + if(Math.abs(totalSpeed) > maxSpeed) { + totalSpeed = maxSpeed * Math.signum(totalSpeed); + } + + for(EntityRailCarBase train : this.trains) { + + BlockPos anchor = train.getCurentAnchorPos(); + Vec3 corePos = train.getRelPosAlongRail(anchor, totalSpeed); + + if(corePos == null) { + train.derail(); + this.dissolve(); + return; + } else { + train.setPosition(corePos.xCoord, corePos.yCoord, corePos.zCoord); + anchor = train.getCurentAnchorPos(); //reset origin to new position + Vec3 frontPos = train.getRelPosAlongRail(anchor, train.getLengthSpan()); + Vec3 backPos = train.getRelPosAlongRail(anchor, -train.getLengthSpan()); + + if(frontPos == null || backPos == null) { + train.derail(); + this.dissolve(); + return; + } else { + train.renderX = (frontPos.xCoord + backPos.xCoord) / 2D; + train.renderY = (frontPos.yCoord + backPos.yCoord) / 2D; + train.renderZ = (frontPos.zCoord + backPos.zCoord) / 2D; + train.prevRotationYaw = train.rotationYaw; + train.rotationYaw = train.movementYaw = generateYaw(frontPos, backPos); + train.motionX = train.rotationYaw / 360D; // hijacking this crap for easy syncing + train.velocityChanged = true; + } + } + } + } } } diff --git a/src/main/java/com/hbm/entity/train/TrainCargoTram.java b/src/main/java/com/hbm/entity/train/TrainCargoTram.java index abb278066..af8bbe587 100644 --- a/src/main/java/com/hbm/entity/train/TrainCargoTram.java +++ b/src/main/java/com/hbm/entity/train/TrainCargoTram.java @@ -48,6 +48,7 @@ public class TrainCargoTram extends EntityRailCarElectric implements IGUIProvide @Override public double getPassivBrake() { return 0.95; } @Override public boolean shouldUseEngineBrake(EntityPlayer player) { return Math.abs(this.engineSpeed) < 0.1; } @Override public double getMaxPoweredSpeed() { return 0.5; } + @Override public double getMaxRailSpeed() { return 1; } @Override public TrackGauge getGauge() { return TrackGauge.STANDARD; } @Override public double getLengthSpan() { return 1.5; } diff --git a/src/main/java/com/hbm/entity/train/TrainCargoTramTrailer.java b/src/main/java/com/hbm/entity/train/TrainCargoTramTrailer.java index 6e771e40a..e077a14da 100644 --- a/src/main/java/com/hbm/entity/train/TrainCargoTramTrailer.java +++ b/src/main/java/com/hbm/entity/train/TrainCargoTramTrailer.java @@ -25,6 +25,7 @@ public class TrainCargoTramTrailer extends EntityRailCarCargo { this.setSize(5F, 2F); } + @Override public double getMaxRailSpeed() { return 1; } @Override public TrackGauge getGauge() { return TrackGauge.STANDARD; } @Override public double getLengthSpan() { return 1.5; } @Override public int getSizeInventory() { return 29; } diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 5464b4581..f93ba08bc 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -529,6 +529,26 @@ public class AssemblerRecipes { new OreDictStack(DIAMOND.dust(), 32) }, 100); + makeRecipe(new ComparableStack(ModItems.drillbit, 1, EnumDrillType.TCALLOY.ordinal()), new AStack[] { + new OreDictStack(ANY_RESISTANTALLOY.ingot(), 20), + new OreDictStack(DESH.ingot(), 12), + new OreDictStack(RUBBER.ingot(), 8) + }, 200); + makeRecipe(new ComparableStack(ModItems.drillbit, 1, EnumDrillType.TCALLOY_DIAMOND.ordinal()), new AStack[] { + new ComparableStack(ModItems.drillbit, 1, EnumDrillType.TCALLOY.ordinal()), + new OreDictStack(DIAMOND.dust(), 48) + }, 100); + + makeRecipe(new ComparableStack(ModItems.drillbit, 1, EnumDrillType.FERRO.ordinal()), new AStack[] { + new OreDictStack(FERRO.ingot(), 24), + new OreDictStack(ANY_RESISTANTALLOY.ingot(), 12), + new OreDictStack(BI.ingot(), 4), + }, 200); + makeRecipe(new ComparableStack(ModItems.drillbit, 1, EnumDrillType.FERRO_DIAMOND.ordinal()), new AStack[] { + new ComparableStack(ModItems.drillbit, 1, EnumDrillType.FERRO.ordinal()), + new OreDictStack(DIAMOND.dust(), 56) + }, 100); + makeRecipe(new ComparableStack(ModBlocks.machine_large_turbine, 1), new AStack[] { new OreDictStack(STEEL.plate528(), 12), new OreDictStack(RUBBER.ingot(), 4), @@ -953,7 +973,7 @@ public class AssemblerRecipes { new ComparableStack(ModItems.sphere_steel, 1), new ComparableStack(ModItems.pipes_steel, 1), new ComparableStack(ModItems.motor_desh, 3), - new ComparableStack(ModItems.circuit_gold, 1) + new OreDictStack(KEY_CIRCUIT_BISMUTH, 1) }, 200); makeRecipe(new ComparableStack(ModBlocks.machine_catalytic_reformer, 1), new AStack[] { new OreDictStack(STEEL.plateCast(), 12), diff --git a/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java b/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java index b47ad8804..69c7652e1 100644 --- a/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java @@ -139,6 +139,7 @@ public class CrystallizerRecipes extends SerializableRecipe { registerRecipe(new ComparableStack(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRUDE)), new CrystallizerRecipe(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.WAX), 20), new FluidStack(Fluids.CHLORINE, 250)); registerRecipe(new ComparableStack(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRACK)), new CrystallizerRecipe(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.WAX), 20), new FluidStack(Fluids.CHLORINE, 100)); + registerRecipe(new ComparableStack(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.PARAFFIN)), new CrystallizerRecipe(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.WAX), 20), new FluidStack(Fluids.CHLORINE, 100)); registerRecipe(new ComparableStack(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.WAX)), new CrystallizerRecipe(new ItemStack(ModItems.pellet_charged), 200), new FluidStack(Fluids.IONGEL, 500)); registerRecipe(new ComparableStack(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.PARAFFIN)), new CrystallizerRecipe(new ItemStack(ModItems.pill_red), 200), new FluidStack(Fluids.ESTRADIOL, 250)); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 0b25b3eb3..1b8d0b48a 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -522,7 +522,7 @@ public class CraftingManager { addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_lithium), new Object[] { "A A", "PLP", "PSP", 'A', ModItems.wire_gold, 'P', TI.plate(), 'S', LI.dust(), 'L', CO.dust() }); addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_schrabidium), new Object[] { " A ", "PNP", "PSP", 'A', ModItems.wire_schrabidium, 'P', SA326.plate(), 'S', SA326.dust(), 'N', NP237.dust() }); addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_schrabidium), new Object[] { " A ", "PSP", "PNP", 'A', ModItems.wire_schrabidium, 'P', SA326.plate(), 'S', SA326.dust(), 'N', NP237.dust() }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark), new Object[] { " A ", "PSP", "PSP", 'A', ModItems.wire_magnetized_tungsten, 'P', ModItems.plate_dineutronium, 'S', ModItems.powder_spark_mix }); + addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark), new Object[] { "P", "S", "S", 'P', ModItems.plate_dineutronium, 'S', ModItems.powder_spark_mix }); addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_trixite), new Object[] { " A ", "PSP", "PTP", 'A', ModItems.wire_aluminium, 'P', AL.plate(), 'S', ModItems.powder_power, 'T', ModItems.crystal_trixite }); addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_trixite), new Object[] { " A ", "PTP", "PSP", 'A', ModItems.wire_aluminium, 'P', AL.plate(), 'S', ModItems.powder_power, 'T', ModItems.crystal_trixite }); addRecipeAuto(ItemBattery.getFullBattery(ModItems.energy_core), new Object[] { "PCW", "TRD", "PCW", 'P', ALLOY.plate(), 'C', ModItems.coil_advanced_alloy, 'W', ModItems.wire_advanced_alloy, 'R', ModItems.cell_tritium, 'D', ModItems.cell_deuterium, 'T', W.ingot() }); @@ -544,13 +544,13 @@ public class CraftingManager { addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_advanced_cell_12), new Object[] { "WPW", "BBB", "WPW", 'W', ModItems.wire_red_copper, 'P', CU.plate(), 'B', ItemBattery.getEmptyBattery(ModItems.battery_advanced_cell_4) }); addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_lithium_cell_6), new Object[] { "WPW", "BWB", "WPW", 'W', ModItems.wire_gold, 'P', TI.plate(), 'B', ItemBattery.getEmptyBattery(ModItems.battery_lithium_cell_3) }); addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_schrabidium_cell_4), new Object[] { "WPW", "BWB", "WPW", 'W', ModItems.wire_schrabidium, 'P', SA326.plate(), 'B', ItemBattery.getEmptyBattery(ModItems.battery_schrabidium_cell_2) }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_6), new Object[] { "BBW", "BBP", "BBW", 'W', ModItems.wire_magnetized_tungsten, 'P', ModItems.plate_dineutronium, 'B', ItemBattery.getEmptyBattery(ModItems.battery_spark) }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_25), new Object[] { " WW", "PCC", "BCC", 'W', ModItems.wire_magnetized_tungsten, 'P', ModItems.plate_dineutronium, 'B', ItemBattery.getEmptyBattery(ModItems.battery_spark), 'C', ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_6) }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_100), new Object[] { "W W", "BPB", "BPB", 'W', ModItems.wire_magnetized_tungsten, 'P', ModItems.plate_dineutronium, 'B', ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_25) }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_1000), new Object[] { "CCC", "CSC", "CCC", 'S', ModItems.singularity_spark, 'C', ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_100) }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_2500), new Object[] { "CVC", "PSP", "CVC", 'S', ModItems.singularity_spark, 'C', ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_100), 'V', ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_1000), 'P', ModItems.plate_dineutronium }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_10000), new Object[] { "PVP", "VSV", "PVP", 'S', ModItems.singularity_spark, 'V', ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_2500), 'P', ModItems.plate_dineutronium }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_power), new Object[] { "CCC", "CSC", "CCC", 'S', ModItems.singularity_spark, 'C', ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_10000) }); + addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_6), new Object[] { "BW", "PW", "BW", 'W', ModItems.wire_magnetized_tungsten, 'P', ModItems.powder_spark_mix, 'B', ItemBattery.getEmptyBattery(ModItems.battery_spark) }); + addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_25), new Object[] { "W W", "SCS", "PSP", 'W', ModItems.wire_magnetized_tungsten, 'P', ModItems.plate_dineutronium, 'S', ModItems.powder_spark_mix, 'C', ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_6) }); + addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_100), new Object[] { "W W", "BPB", "SSS", 'W', ModItems.wire_magnetized_tungsten, 'P', ModItems.plate_dineutronium, 'S', ModItems.powder_spark_mix, 'B', ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_25) }); + addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_1000), new Object[] { "PCP", "CSC", "PCP", 'S', ModItems.singularity_spark, 'P', ModItems.powder_spark_mix, 'C', ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_100) }); + addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_2500), new Object[] { "SCS", "CVC", "SCS", 'C', ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_100), 'V', ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_1000), 'S', ModItems.powder_spark_mix }); + addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_10000), new Object[] { "OSO", "SVS", "OSO", 'S', ModItems.singularity_spark, 'V', ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_2500), 'O', ModItems.ingot_osmiridium }); + addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_power), new Object[] { "YSY", "SCS", "YSY", 'S', ModItems.singularity_spark, 'C', ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_10000), 'Y', ModItems.billet_yharonite }); addRecipeAuto(ItemBattery.getFullBattery(ModItems.battery_su), new Object[] { "P", "R", "C", 'P', Items.paper, 'R', REDSTONE.dust(), 'C', COAL.dust() }); addRecipeAuto(ItemBattery.getFullBattery(ModItems.battery_su), new Object[] { "P", "C", "R", 'P', Items.paper, 'R', REDSTONE.dust(), 'C', COAL.dust() }); diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index 00d3a9f64..c7554d48d 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -28,6 +28,7 @@ import com.hbm.entity.mob.EntityQuackos; import com.hbm.entity.mob.EntityCreeperTainted; import com.hbm.entity.projectile.EntityBulletBase; import com.hbm.entity.projectile.EntityBurningFOEQ; +import com.hbm.entity.train.EntityRailCarBase; import com.hbm.extprop.HbmLivingProps; import com.hbm.extprop.HbmPlayerProps; import com.hbm.handler.ArmorModHandler; @@ -692,6 +693,11 @@ public class ModEventHandler { */ } /// RADIATION STUFF END /// + + + if(event.phase == Phase.END) { + EntityRailCarBase.updateMotion(event.world); + } } if(event.phase == Phase.START) { diff --git a/src/main/resources/assets/hbm/textures/items/battery_schrabidium_cell.png b/src/main/resources/assets/hbm/textures/items/battery_schrabidium_cell.png index d9e92ed00771268b01586299c63e9a19addd6e41..96af24f72ea2ec62560df404deba642d855d6b94 100644 GIT binary patch delta 123 zcmV->0EGXx0jL3xG<07{L_t(Ijm?w64Ztu61Fdf08Q6dkG6$=Y5xSE5>Nknt6MvCU zwuFJ}Wo9ayNy;UWEJ7lLOd+BMASp9zBmjPMy@E^23eS%5&bhpA0X{|#aDRfOND7&) dKj>}YL?5-iDHZ!5UR?kH002ovPDHLkV1j>MGGqV% delta 138 zcmV;50CoSU0k#24S+BV1P{b0Opp;Who{IOlx*XSKtatePmh!Y zl7?$s*gn~k4ZmjxbvGwakd(S5X2M;V6$Mjkf)%)ctx&tv1m`1u$4o)0t}wS8N6yuJ sQxIYt6a0UIDhY)9z$G&H3vajqf}MzHRI34YT;%Cikqf~};4^`jUe zi4i|Kzky>}jyvG9n3-DMgruA#k}7%5SPDqqBgF`K4**KQ>GRyzz|1ZUa_`|7R>f}! zK~54vP|-7nTE-e<({BUZG&TKC4fe&=8WbTZEX(B%a_{2RFBd#v1I*-7$zID*6#xJL M07*qoM6N<$g1P=gzyJUM delta 169 zcmV;a09OCX0o4JJG=GdqL_t(Ijn$K}4TCTcMIRBPFo8#4j%!%KgQQGL!x}IG1vR_; zG(<7zuoKZFud$xx`#M>7@UuKXInNS7K~mg`j-FDv31*_}pzq&zFCT_ojT;a_4X^@t zsE(e#t-XMyaF#Jskc63BPq>|B%+r+hVnArytp8I7+sB=C;35)1jN@(+Q~!udyYLN9 XXgN&^&4nQd00000NkvXXu0mjf-DXPl diff --git a/src/main/resources/assets/hbm/textures/items/battery_schrabidium_cell_4.png b/src/main/resources/assets/hbm/textures/items/battery_schrabidium_cell_4.png index b35ac68822dc4421f01f6cfcdb2896a9c66d8bc3..fe84f7e26e8eb81ae6d33a4fa0254261d9b9d7f8 100644 GIT binary patch delta 269 zcmV+o0rLK!0=NQ@G=J|&L_t(Ijm49(Zo)7WMGvJLLwVUy2Snb+g4Fzhzl{D8QbyQW zio(P|GL|i7L1N-{XoG@dl}c6BJNekx*YC+T{DoB2zT>-_HP1~|Ez2?sIrKk<6Xkde zMS;{cPy0P}lHgk`Nn+mnUgPhF0dhRfpLaXno#QYZaz35V#ed?4*=}DOe=iIGOhf=k z)0C>Jt_uyfE9lBO(>%AYAOkwwws%@!GMW3q07fIG>ote6#9uBq+-~6^R)o%G0KBbM zQEn?5P!K`% TH$V{p0000|%0c?LS4)t%EM*C@1##J}AG;5GrD(Kf z3hYFf!V4EeX;P3Jge()PO31Pf+w~*YU=9)i5ikSJz}4Z6^=+>+!bvGiSz?~W20CnO z(wQNOR<|JF5{BHh=Fl|U+V+JpX8kq+K%6819P8T4w!8+7)&MM&^75d;e-oru7q_D? ufmb<50YX(t@mwsMKXU=x-S^$X*Lnb_Hh-EkmJ?0@0000prVdP zNOgU-K;D26(o!dH5+440~p5<0HTl})@D*ld3^PGo?)#GdX7>oB0|@7 zUM$*zT@CGs&MZq^_PKJTc%#5aCXe~bF=w}KVsw(c?qX(XzQ(pi~YqbCX002ov JPDHLkV1n11)~B!2;OQb$4nuFf3k00004XF*Lt006O%3;baP00009a7bBm000id z000id0mpBsWB>pF)Ja4^R5(w?lCcfKFc3wLER)g_5*si>ipU#;8JGY%Mo58c+H8=* zNk`a%364AKoIq>`1O-nz-M8fbeU=V>WhFge3xFaW&BEOPHh*JL-~kcWR9B^N9+s?D`(=)Z2Go@e^==t~1q!O0JDWC*arfJa^||7@(uqZ=^3& z^9eHPBTZF_n#`V7Yf%$H08@6IsENHXqF#vxFh??QP-(5J6v=>3`F}v1s&Z@0Tgcl8 q#vo`NUFGyv%^eMOy}W_n0q_7Rg=2W?_clTR0000 Date: Mon, 29 May 2023 20:37:34 -0700 Subject: [PATCH 070/432] Preliminary BunkerComponents --- .../java/com/hbm/items/tool/ItemWandD.java | 41 +- src/main/java/com/hbm/lib/HbmWorld.java | 18 +- .../{worldgen => gen}/MapGenNTMFeatures.java | 14 +- .../com/hbm/world/gen/NTMWorldGenerator.java | 126 ++++ .../world/gen/ProceduralStructureStart.java | 247 ++++++++ .../world/gen/component/BunkerComponents.java | 547 ++++++++++++++++++ .../component}/CivilianFeatures.java | 2 +- .../component}/Component.java | 76 ++- .../component}/OfficeFeatures.java | 28 +- .../component}/RuinFeatures.java | 2 +- .../hbm/world/worldgen/NTMWorldGenerator.java | 53 -- .../components/ProceduralComponents.java | 240 -------- 12 files changed, 1012 insertions(+), 382 deletions(-) rename src/main/java/com/hbm/world/{worldgen => gen}/MapGenNTMFeatures.java (93%) create mode 100644 src/main/java/com/hbm/world/gen/NTMWorldGenerator.java create mode 100644 src/main/java/com/hbm/world/gen/ProceduralStructureStart.java create mode 100644 src/main/java/com/hbm/world/gen/component/BunkerComponents.java rename src/main/java/com/hbm/world/{worldgen/components => gen/component}/CivilianFeatures.java (99%) rename src/main/java/com/hbm/world/{worldgen/components => gen/component}/Component.java (94%) rename src/main/java/com/hbm/world/{worldgen/components => gen/component}/OfficeFeatures.java (96%) rename src/main/java/com/hbm/world/{worldgen/components => gen/component}/RuinFeatures.java (99%) delete mode 100644 src/main/java/com/hbm/world/worldgen/NTMWorldGenerator.java delete mode 100644 src/main/java/com/hbm/world/worldgen/components/ProceduralComponents.java diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index 7ea8ad8b7..a9c9a49ae 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -2,34 +2,15 @@ package com.hbm.items.tool; import java.util.List; -import com.hbm.blocks.ModBlocks; -import com.hbm.blocks.rail.IRailNTM; -import com.hbm.blocks.rail.IRailNTM.RailContext; -import com.hbm.explosion.vanillant.ExplosionVNT; -import com.hbm.explosion.vanillant.standard.BlockAllocatorBulkie; -import com.hbm.explosion.vanillant.standard.BlockMutatorBulkie; -import com.hbm.explosion.vanillant.standard.BlockProcessorStandard; -import com.hbm.explosion.vanillant.standard.EntityProcessorStandard; -import com.hbm.explosion.vanillant.standard.ExplosionEffectStandard; -import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; import com.hbm.lib.Library; -import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.PlayerInformPacket; -import com.hbm.util.ParticleUtil; -import com.hbm.util.fauxpointtwelve.BlockPos; -import com.hbm.world.feature.OilSpot; +import com.hbm.world.gen.component.BunkerComponents; -import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Blocks; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MathHelper; import net.minecraft.util.MovingObjectPosition; -import net.minecraft.util.Vec3; import net.minecraft.world.World; +import net.minecraft.world.gen.structure.StructureBoundingBox; public class ItemWandD extends Item { @@ -43,13 +24,13 @@ public class ItemWandD extends Item { if(pos != null) { - ExplosionVNT vnt = new ExplosionVNT(world, pos.hitVec.xCoord, pos.hitVec.yCoord, pos.hitVec.zCoord, 7); + /*ExplosionVNT vnt = new ExplosionVNT(world, pos.hitVec.xCoord, pos.hitVec.yCoord, pos.hitVec.zCoord, 7); vnt.setBlockAllocator(new BlockAllocatorBulkie(60)); vnt.setBlockProcessor(new BlockProcessorStandard().withBlockEffect(new BlockMutatorBulkie(ModBlocks.block_slag)).setNoDrop()); vnt.setEntityProcessor(new EntityProcessorStandard()); vnt.setPlayerProcessor(new PlayerProcessorStandard()); vnt.setSFX(new ExplosionEffectStandard()); - vnt.explode(); + vnt.explode();*/ /*TimeAnalyzer.startCount("setBlock"); world.setBlock(pos.blockX, pos.blockY, pos.blockZ, Blocks.dirt); @@ -71,20 +52,12 @@ public class ItemWandD extends Item { tom.destructionRange = 600; world.spawnEntityInWorld(tom);*/ - /*ItemStack itemStack = new ItemStack(ModItems.book_lore); - BookLoreType.setTypeForStack(itemStack, BookLoreType.BOOK_IODINE); - - player.inventory.addItemStackToInventory(itemStack); - player.inventoryContainer.detectAndSendChanges();*/ - //use sparingly - /*int k = ((pos.blockX >> 4) << 4) + 8; + int k = ((pos.blockX >> 4) << 4) + 8; int l = ((pos.blockZ >> 4) << 4) + 8; - MapGenBunker.Start start = new MapGenBunker.Start(world, world.rand, pos.blockX >> 4, pos.blockZ >> 4); - start.generateStructure(world, world.rand, new StructureBoundingBox(k - 124, l - 124, k + 15 + 124, l + 15 + 124));*/ - //MapGenStronghold.Start startS = new MapGenStronghold.Start(world, world.rand, pos.blockX >> 4, pos.blockZ >> 4); - //startS.generateStructure(world, world.rand, new StructureBoundingBox(k - 124, l - 124, k + 15 + 124, l + 15 + 124)); + BunkerComponents.BunkerStart start = new BunkerComponents.BunkerStart(world, world.rand, pos.blockX >> 4, pos.blockZ >> 4); + start.generateStructure(world, world.rand, new StructureBoundingBox(k - 124, l - 124, k + 15 + 124, l + 15 + 124)); /*EntityNukeTorex torex = new EntityNukeTorex(world); torex.setPositionAndRotation(pos.blockX, pos.blockY + 1, pos.blockZ, 0, 0); diff --git a/src/main/java/com/hbm/lib/HbmWorld.java b/src/main/java/com/hbm/lib/HbmWorld.java index 44bea3667..c12dd3f6c 100644 --- a/src/main/java/com/hbm/lib/HbmWorld.java +++ b/src/main/java/com/hbm/lib/HbmWorld.java @@ -1,14 +1,16 @@ package com.hbm.lib; -import com.hbm.world.worldgen.MapGenNTMFeatures; -import com.hbm.world.worldgen.NTMWorldGenerator; -import com.hbm.world.worldgen.components.CivilianFeatures; -import com.hbm.world.worldgen.components.OfficeFeatures; -import com.hbm.world.worldgen.components.RuinFeatures; +import com.hbm.world.gen.MapGenNTMFeatures; +import com.hbm.world.gen.NTMWorldGenerator; +import com.hbm.world.gen.component.BunkerComponents; +import com.hbm.world.gen.component.CivilianFeatures; +import com.hbm.world.gen.component.OfficeFeatures; +import com.hbm.world.gen.component.RuinFeatures; import cpw.mods.fml.common.IWorldGenerator; import cpw.mods.fml.common.registry.GameRegistry; import net.minecraft.world.gen.structure.MapGenStructureIO; +import net.minecraftforge.common.MinecraftForge; public class HbmWorld { @@ -24,7 +26,10 @@ public class HbmWorld { registerNTMFeatures(); registerWorldGen(new HbmWorldGen(), 1); - registerWorldGen(new NTMWorldGenerator(), 1); //Ideally, move everything over from HbmWorldGen to NTMWorldGenerator + + NTMWorldGenerator worldGenerator = new NTMWorldGenerator(); + registerWorldGen(worldGenerator, 1); //Ideally, move everything over from HbmWorldGen to NTMWorldGenerator + MinecraftForge.EVENT_BUS.register(worldGenerator); //registerWorldGen(new WorldGenTest(), 1); } @@ -37,5 +42,6 @@ public class HbmWorld { CivilianFeatures.registerComponents(); OfficeFeatures.registerComponents(); RuinFeatures.registerComponents(); + BunkerComponents.registerComponents(); } } diff --git a/src/main/java/com/hbm/world/worldgen/MapGenNTMFeatures.java b/src/main/java/com/hbm/world/gen/MapGenNTMFeatures.java similarity index 93% rename from src/main/java/com/hbm/world/worldgen/MapGenNTMFeatures.java rename to src/main/java/com/hbm/world/gen/MapGenNTMFeatures.java index 4bb3ea17b..9c1a55339 100644 --- a/src/main/java/com/hbm/world/worldgen/MapGenNTMFeatures.java +++ b/src/main/java/com/hbm/world/gen/MapGenNTMFeatures.java @@ -1,4 +1,4 @@ -package com.hbm.world.worldgen; +package com.hbm.world.gen; import java.util.Arrays; import java.util.Iterator; @@ -7,9 +7,9 @@ import java.util.Random; import com.hbm.config.GeneralConfig; import com.hbm.config.StructureConfig; -import com.hbm.world.worldgen.components.CivilianFeatures.*; -import com.hbm.world.worldgen.components.OfficeFeatures.*; -import com.hbm.world.worldgen.components.RuinFeatures.*; +import com.hbm.world.gen.component.CivilianFeatures.*; +import com.hbm.world.gen.component.OfficeFeatures.*; +import com.hbm.world.gen.component.RuinFeatures.*; import net.minecraft.world.World; import net.minecraft.world.biome.BiomeGenBase; @@ -99,10 +99,8 @@ public class MapGenNTMFeatures extends MapGenStructure { public Start(World world, Random rand, int chunkX, int chunkZ) { super(chunkX, chunkZ); - BiomeGenBase biome = world.getBiomeGenForCoords(chunkX * 16 + 8, chunkZ * 16 + 8); - int posY = world.getHeightValue(chunkX * 16 + 8, chunkZ * 16 + 8); - if(posY == 0) - posY = world.getTopSolidOrLiquidBlock(chunkX * 16 + 8, chunkZ * 16 + 8); + BiomeGenBase biome = world.getBiomeGenForCoords(chunkX * 16 + 8, chunkZ * 16 + 8); //Only gets the biome in the corner of the chunk. + final int posY = 64; // Terrain *does not exist* at this stage - at least, for vanilla. Here it has to be called after, but better safe than sorry. /* * Probably want to use nextInt() to increase the structures of rarity here. As a fallback, you could have generic stone brick/useless block ruins that will always be chosen if the diff --git a/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java b/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java new file mode 100644 index 000000000..0337af69a --- /dev/null +++ b/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java @@ -0,0 +1,126 @@ +package com.hbm.world.gen; + +import java.util.Random; + +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.generic.BlockNTMFlower.EnumFlowerType; +import com.hbm.config.StructureConfig; + +import cpw.mods.fml.common.IWorldGenerator; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.chunk.IChunkProvider; +import static net.minecraftforge.common.BiomeDictionary.*; +import net.minecraftforge.event.terraingen.DecorateBiomeEvent.Decorate; +import net.minecraftforge.event.terraingen.InitMapGenEvent.EventType; +import net.minecraftforge.event.terraingen.PopulateChunkEvent; +import static net.minecraftforge.event.terraingen.TerrainGen.*; +import net.minecraftforge.event.world.WorldEvent; + +public class NTMWorldGenerator implements IWorldGenerator { + + private MapGenNTMFeatures scatteredFeatureGenerator = new MapGenNTMFeatures(); + + private final Random rand = new Random(); //A central random, used to cleanly generate our stuff without affecting vanilla or modded seeds. + + /** Inits all MapGen upon the loading of a new world. Hopefully clears out structureMaps and structureData when a different world is loaded. */ + @SubscribeEvent + public void onLoad(WorldEvent.Load event) { + scatteredFeatureGenerator = (MapGenNTMFeatures) getModdedMapGen(new MapGenNTMFeatures(), EventType.CUSTOM); + hasPopulationEvent = false; + } + + /** Called upon the initial population of a chunk. Called in the pre-population event first; called again if pre-population didn't occur (flatland) */ + private void setRandomSeed(World world, int chunkX, int chunkZ) { + rand.setSeed(world.getSeed()); + final long i = rand.nextLong() / 2L * 2L + 1L; + final long j = rand.nextLong() / 2L * 2L + 1L; + rand.setSeed((long)chunkX * i + (long)chunkZ * j ^ world.getSeed()); + } + + /* + * Pre-population Events / Structure Generation + * Used to generate structures without unnecessary intrusion by biome decoration, like trees. + */ + + private boolean hasPopulationEvent = false; // Does the given chunkGenerator have a population event? If not (flatlands), default to using generate. + + @SubscribeEvent + public void generateStructures(PopulateChunkEvent.Pre event) { + setRandomSeed(event.world, event.chunkX, event.chunkZ); //Set random for population down the line. + hasPopulationEvent = true; + + if(!StructureConfig.enableStructures) return; + + switch (event.world.provider.dimensionId) { + case -1: + break; + case 0: + generateOverworldStructures(event.world, event.chunkProvider, event.chunkX, event.chunkZ); + break; + case 1: + break; + } + } + + protected void generateOverworldStructures(World world, IChunkProvider chunkProvider, int chunkX, int chunkZ) { + Block[] ablock = new Block[65536]; //ablock isn't actually used for anything in MapGenStructure + + this.scatteredFeatureGenerator.func_151539_a(chunkProvider, world, chunkX, chunkZ, ablock); + this.scatteredFeatureGenerator.generateStructuresInChunk(world, rand, chunkX, chunkZ); + } + + /* + * Post-Vanilla / Modded Generation + * Used to generate features that don't care about intrusions (ores, craters, caves, etc.) + */ + + @Override + public void generate(Random rand, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider) { + + switch (world.provider.dimensionId) { + case -1: + generateNether(world, rand, chunkGenerator, chunkX, chunkZ); break; + case 0: + generateSurface(world, rand, chunkGenerator, chunkProvider, chunkX, chunkZ); break; + case 1: + generateEnd(world, rand, chunkGenerator, chunkX, chunkZ); break; + } + } + + private void generateNether(World world, Random rand, IChunkProvider chunkGenerator, int chunkX, int chunkZ) { } + + /* Overworld Generation */ + + private void generateSurface(World world, Random rand, IChunkProvider chunkGenerator, IChunkProvider chunkProvider, int chunkX, int chunkZ) { + if(!hasPopulationEvent) { //If we've failed to generate any structures (flatlands) + setRandomSeed(world, chunkX, chunkZ); //Reset the random seed to compensate + if(StructureConfig.enableStructures) generateOverworldStructures(world, chunkGenerator, chunkX, chunkZ); //Do it through the post-population generation directly + } + + final int posX = (chunkX << 4) + 8; + final int posZ = (chunkZ << 4) + 8; + BiomeGenBase biome = world.getBiomeGenForCoords(posX, posZ); + + /* biome dictionary my beloved <3 + * no check for tom here because the event handler already checks for decoration events, + this way they won't become permanently extinct. + */ + + /* Biome check, followed by chance, followed by event (for compat, both intra- and inter- (in the case of Tom). */ + + + } + + private void generateEnd(World world, Random rand, IChunkProvider chunkGenerator, int chunkX, int chunkZ) { } + + /** Utility method for biome checking multiple types exclusively. Not sure why it wasn't already present. */ + public static boolean isBiomeOfTypes(BiomeGenBase biome, Type... types) { //If new biomes are implemented, move this to any biome-related utility class. + for(Type type : types) { + if(!isBiomeOfType(biome, type)) return false; + } + + return true; + } +} \ No newline at end of file diff --git a/src/main/java/com/hbm/world/gen/ProceduralStructureStart.java b/src/main/java/com/hbm/world/gen/ProceduralStructureStart.java new file mode 100644 index 000000000..f5dcc1446 --- /dev/null +++ b/src/main/java/com/hbm/world/gen/ProceduralStructureStart.java @@ -0,0 +1,247 @@ +package com.hbm.world.gen; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Random; + +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; +import net.minecraft.world.gen.structure.StructureBoundingBox; +import net.minecraft.world.gen.structure.StructureComponent; +import net.minecraft.world.gen.structure.StructureStart; + +/** This makes so much more sense! OOP wasn't confusing sometimes, you were just retarded! */ +public class ProceduralStructureStart extends StructureStart { + /** List of queued components to call buildComponent on randomly. Iterated over until hard limits reached. */ + public List queuedComponents = new ArrayList(); + /** List of the component weights for this particular structure -- weights removed as components are 'used up.' */ + protected List componentWeightList; //Make sure to initialize the array list to the weight array size, since might as well + + public ProceduralStructureStart() { } + + public ProceduralStructureStart(int chunkX, int chunkZ) { + super(chunkX, chunkZ); + } + + /** 'starter' is just the starting component, so like a village well. meant to be nice and convenient and not needing a super necessarily. */ + public ProceduralStructureStart buildStart(World world, Random rand, StructureComponent starter, Weight...weights) { + prepareWeights(weights); + + components.add(starter); + queuedComponents.add(starter); + while(!queuedComponents.isEmpty()) { + final int i = rand.nextInt(queuedComponents.size()); + StructureComponent component = queuedComponents.remove(i); + if(component instanceof ProceduralComponent) + ((ProceduralComponent) component).buildComponent(this, rand); //additional components are added to the list; the 'last component' is the caller already. + } + + this.updateBoundingBox(); + return this; + } + + public void prepareWeights(Weight...weights) { + componentWeightList = new ArrayList(weights.length); + + for(int i = 0; i < weights.length; i++) { + weights[i].instancesSpawned = 0; + componentWeightList.add(weights[i]); + } + } + + /** Reads from NBT. */ + @Override + public void func_143017_b(NBTTagCompound nbt) { + + } + + /** Writes to NBT. */ + @Override + public void func_143022_a(NBTTagCompound nbt) { + + } + + protected int getTotalWeight() { + boolean flag = false; + int totalWeight = 0; + Weight weight; + + for(Iterator iterator = componentWeightList.iterator(); iterator.hasNext(); totalWeight += weight.weight) { //Iterates over the entire list to find the total weight + weight = (Weight) iterator.next(); + + if(weight.instanceLimit >= 0 && weight.instancesSpawned < weight.instanceLimit) //can more structure pieces be added, in general? + flag = true; + } + + return flag ? totalWeight : -1; + } + + protected StructureComponent getWeightedComponent(StructureComponent last, Random rand, int minX, int minY, int minZ, int coordMode, int componentType) { + int totalWeight = getTotalWeight(); + + if(totalWeight < 0) + return null; + + for(int i = 0; i < 5; i++) { + int value = rand.nextInt(totalWeight); //Pick a random value, based on how many parts there are already + Iterator iterator = componentWeightList.iterator(); + + while(iterator.hasNext()) { + Weight weight = (Weight)iterator.next(); + value -= weight.weight; //Iterate over the list until the value is less than 0 + + if(value < 0) { + if(!weight.canSpawnStructure(componentType, coordMode, last)) //Additional checks based on game state info preventing spawn? start from beginning + break; + + StructureComponent component = weight.lambda.findValidPlacement(components, rand, minX, minY, minZ, coordMode, componentType); //Construct the chosen component + + if(component != null) { //If it has been constructed, add it + weight.instancesSpawned++; + + if(!weight.canSpawnMoreStructures()) //Structure can no longer be spawned regardless of game state? remove as an option + componentWeightList.remove(weight); + + return component; + } + + } + } + } + + return null; + } + + //might remove these, add hard limits so subclasses can create their own implementations + protected int sizeLimit = 50; + protected int distanceLimit = 64; + + /** Gets the next valid component based on the structure start's members */ + protected StructureComponent getNextValidComponent(StructureComponent last, Random rand, int minX, int minY, int minZ, int coordMode, int componentType) { + + if(components.size() > sizeLimit) //Hard limit on amount of components + return null; + + if(Math.abs(minX - (func_143019_e() * 16 + 8)) <= distanceLimit && Math.abs(minZ - (func_143018_f() * 16 + 8)) <= distanceLimit) { //Hard limit on spread of structure + + StructureComponent structure = getWeightedComponent(last, rand, minX, minY, minZ, coordMode, componentType + 1); //Returns null if all checks fail + + if(structure != null) { + this.components.add(structure); //Adds component to structure start list + this.queuedComponents.add(structure); //Add it to the list of queued components waiting to be built + } + + return structure; + } + + return null; + } + + /** Useful utility method to automatically construct the appropriate structure bounding box; based on the getNextComponents below!
+ * posX, posY, posZ represent the original anchor point of the structurecomponent (minX, minY, minZ).
+ * offsetX, offsetY, offsetZ all add onto that point, meaning that offsets will always move that anchor towards +x, +y, +z (in terms of south).
+ * maxX, maxY, maxZ additionally are added to get the maximum x, y, z (obviously) in terms of south. An offset of 1 is subtracted, so these do not start at 0, and + * refer to the ACTUAL dimensions of the component.
+ * The initial anchor point is kind of arbitrary based on where it is in the door, so what really matters is keeping it consistent. + */ + public static StructureBoundingBox getComponentToAddBoundingBox(int posX, int posY, int posZ, int offsetX, int offsetY, int offsetZ, int maxX, int maxY, int maxZ, int coordMode) { + switch(coordMode) { + default: + case 0: return new StructureBoundingBox(posX + offsetX, posY + offsetY, posZ + offsetZ, posX + maxX - 1 + offsetX, posY + maxY - 1 + offsetY, posZ + maxZ - 1 + offsetZ); //South + case 1: return new StructureBoundingBox(posX - maxZ + 1 - offsetZ, posY + offsetY, posZ + offsetX, posX - offsetZ, posY + maxY - 1 + offsetY, posZ + maxX - 1 + offsetX); //West + case 2: return new StructureBoundingBox(posX - maxX + 1 - offsetX, posY + offsetY, posZ - maxZ + 1 - offsetZ, posX - offsetX, posY + maxY - 1 + offsetY, posZ + offsetZ); //North + case 3: return new StructureBoundingBox(posX + offsetZ, posY + offsetY, posZ - maxX + 1 - offsetX, posX + maxZ - 1 + offsetZ, posY + maxY - 1 + offsetY, posZ - offsetX); //East + } + } + + /** no class-based multiple inheritance? */ + public static interface ProceduralComponent { + + public default void buildComponent(ProceduralStructureStart start, Random rand) { } //no class-based multiple inheritance? + + /** Gets next component in the direction this component is facing.
'original' refers to the initial starting component (hard distance limits), 'components' refers to the StructureStart list.
+ * offset and offsetY are added to the anchor point of the new component
, referring to the minX and minY respectively (in terms of south).
+ * An offset of 1 is added to the minZ anchor point, relative to south. + */ + public default StructureComponent getNextComponentNormal(ProceduralStructureStart start, StructureComponent caller, int coordMode, Random rand, int offset, int offsetY) { + StructureBoundingBox box = caller.getBoundingBox(); + switch(coordMode) { + case 0: return start.getNextValidComponent(caller, rand, box.minX + offset, box.minY + offsetY, box.maxZ + 1, coordMode, caller.getComponentType()); //South + case 1: return start.getNextValidComponent(caller, rand, box.minX - 1, box.minY + offsetY, box.minZ + offset, coordMode, caller.getComponentType()); //West + case 2: return start.getNextValidComponent(caller, rand, box.maxX - offset, box.minY + offsetY, box.minZ - 1, coordMode, caller.getComponentType()); //North + case 3: return start.getNextValidComponent(caller, rand, box.maxX + 1, box.minY + offsetY, box.maxZ - offset, coordMode, caller.getComponentType()); //East + default: return null; + } + } + + /** Gets next component in the opposite direction this component is facing. */ + public default StructureComponent getNextComponentAntiNormal(ProceduralStructureStart start, StructureComponent caller, int coordMode, Random rand, int offset, int offsetY) { + StructureBoundingBox box = caller.getBoundingBox(); + switch(coordMode) { + case 0: return start.getNextValidComponent(caller, rand, box.maxX - offset, box.minY + offsetY, box.minZ - 1, 2, caller.getComponentType()); //South + case 1: return start.getNextValidComponent(caller, rand, box.maxX + 1, box.minY + offsetY, box.maxZ - offset, 3, caller.getComponentType()); //West + case 2: return start.getNextValidComponent(caller, rand, box.minX + offset, box.minY + offsetY, box.maxZ + 1, 0, caller.getComponentType()); //North + case 3: return start.getNextValidComponent(caller, rand, box.minX - 1, box.minY + offsetY, box.minZ + offset, 1, caller.getComponentType()); //East + default: return null; + } + } + + //Keep in mind for these methods: a given room would have its *actual entrance* opposite the side it is facing. + /** Gets next component, to the West (-X) relative to this component. */ + public default StructureComponent getNextComponentWest(ProceduralStructureStart start, StructureComponent caller, int coordMode, Random rand, int offset, int offsetY) { + StructureBoundingBox box = caller.getBoundingBox(); + switch(coordMode) { + case 0: return start.getNextValidComponent(caller, rand, box.minX - 1, box.minY + offsetY, box.minZ + offset, 1, caller.getComponentType()); //South + case 1: return start.getNextValidComponent(caller, rand, box.maxX - offset, box.minY + offsetY, box.minZ - 1, 2, caller.getComponentType()); //West + case 2: return start.getNextValidComponent(caller, rand, box.maxX + 1, box.minY + offsetY, box.maxZ - offset, 3, caller.getComponentType()); //North + case 3: return start.getNextValidComponent(caller, rand, box.minX + offset, box.minY + offsetY, box.maxZ + 1, 0, caller.getComponentType()); //East + default: return null; + } + } + + /** Gets next component, to the East (+X) relative to this component. */ + public default StructureComponent getNextComponentEast(ProceduralStructureStart start, StructureComponent caller, int coordMode, Random rand, int offset, int offsetY) { + StructureBoundingBox box = caller.getBoundingBox(); + switch(coordMode) { + case 0: return start.getNextValidComponent(caller, rand, box.maxX + 1, box.minY + offsetY, box.maxZ - offset, 3, caller.getComponentType()); //South + case 1: return start.getNextValidComponent(caller, rand, box.minX + offset, box.minY + offsetY, box.maxZ + 1, 0, caller.getComponentType()); //West + case 2: return start.getNextValidComponent(caller, rand, box.minX - 1, box.minY + offsetY, box.minZ + offset, 1, caller.getComponentType()); //North + case 3: return start.getNextValidComponent(caller, rand, box.maxX - offset, box.minY + offsetY, box.minZ - 1, 2, caller.getComponentType()); //East + default: return null; + } + } + } + + /** Returns a new instance of this structureComponent, or null if not able to be placed.
Based on bounding box checks. Please use a method reference in the component. */ + @FunctionalInterface + protected static interface instantiateStructure { + StructureComponent findValidPlacement(List components, Random rand, int minX, int minY, int minZ, int coordMode, int componentType); + } + + protected static class Weight { + + public final instantiateStructure lambda; //Read above + + public final int weight; //Weight of this component + public int instancesSpawned; //How many components spawned? + public int instanceLimit; //Limit on amount of components: -1 for no limit + + public Weight(int weight, int limit, instantiateStructure lambda) { + this.weight = weight; + this.instanceLimit = limit; + this.lambda = lambda; + } + + //Checks if another structure can be spawned based on input data + public boolean canSpawnStructure(int componentAmount, int coordMode, StructureComponent component) { + return this.instanceLimit < 0 || this.instancesSpawned < this.instanceLimit; + } + + //Checks if another structure can be spawned at all (used to flag for removal from the list) + public boolean canSpawnMoreStructures() { + return this.instanceLimit < 0 || this.instancesSpawned < this.instanceLimit; + } + + } +} \ No newline at end of file diff --git a/src/main/java/com/hbm/world/gen/component/BunkerComponents.java b/src/main/java/com/hbm/world/gen/component/BunkerComponents.java new file mode 100644 index 000000000..b132b862d --- /dev/null +++ b/src/main/java/com/hbm/world/gen/component/BunkerComponents.java @@ -0,0 +1,547 @@ +package com.hbm.world.gen.component; + +import java.util.List; +import java.util.Random; + +import com.hbm.blocks.ModBlocks; +import com.hbm.lib.HbmChestContents; +import com.hbm.world.gen.ProceduralStructureStart; +import com.hbm.world.gen.ProceduralStructureStart.ProceduralComponent; +import com.hbm.world.gen.component.Component.ConcreteBricks; + +import net.minecraft.init.Blocks; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; +import net.minecraft.world.gen.structure.MapGenStructureIO; +import net.minecraft.world.gen.structure.StructureBoundingBox; +import net.minecraft.world.gen.structure.StructureComponent; + +public class BunkerComponents { + + public static class BunkerStart extends ProceduralStructureStart { + + public BunkerStart(World world, Random rand, int chunkX, int chunkZ) { + super(chunkX, chunkZ); + + this.sizeLimit = 7 + rand.nextInt(6); + this.distanceLimit = 40; + + final int x = chunkX * 16 + 8; + final int z = chunkZ * 16 + 8; + + Weight[] weights = new Weight[] { + new Weight(6, 3, Corridor::findValidPlacement), + new Weight(7, 4, BedroomL::findValidPlacement), + new Weight(10, 3, FunJunction::findValidPlacement), + new Weight(5, 2, BathroomL::findValidPlacement), + }; + + StructureComponent starter = new StartingHub(rand, x, z); + + buildStart(world, rand, starter, weights); + + this.markAvailableHeight(world, rand, 20); + } + + } + + public static void registerComponents() { + MapGenStructureIO.func_143031_a(StartingHub.class, "NTMBStartingHub"); + MapGenStructureIO.func_143031_a(Corridor.class, "NTMBCorridor"); + MapGenStructureIO.func_143031_a(BedroomL.class, "NTMBBedroomL"); + MapGenStructureIO.func_143031_a(FunJunction.class, "NTMBFunJunction"); + MapGenStructureIO.func_143031_a(BathroomL.class, "NTMBBathroomL"); + //TODO more rooms for more variety + } + + //why are we still doing this? + private static ConcreteBricks ConcreteBricks = new ConcreteBricks(); + + public static class StartingHub extends Component implements ProceduralComponent { + + private boolean[] paths = new boolean[3]; + + public StartingHub() { } + + public StartingHub(Random rand, int x, int z) { + super(rand, x, 64, z, 7, 5, 7); + } + + public StartingHub(int componentType, StructureBoundingBox box, int coordMode) { + super(componentType); + this.boundingBox = box; + this.coordBaseMode = coordMode; + } + + /** write to nbt */ + @Override + protected void func_143012_a(NBTTagCompound nbt) { + super.func_143012_a(nbt); + for(int i = 0; i < paths.length; i++) + nbt.setBoolean("p" + i, paths[i]); + } + + /** read from nbt */ + @Override + protected void func_143011_b(NBTTagCompound nbt) { + super.func_143011_b(nbt); + for(int i = 0; i < paths.length; i++) + paths[i] = nbt.getBoolean("p" + i); + } + + @Override + public void buildComponent(ProceduralStructureStart start, Random rand) { + paths[0] = this.getNextComponentEast(start, this, coordBaseMode, rand, 5, 1) != null; + paths[1] = this.getNextComponentAntiNormal(start, this, coordBaseMode, rand, 4, 1) != null; + paths[2] = this.getNextComponentWest(start, this, coordBaseMode, rand, 3, 1) != null; + } + + @Override + public boolean addComponentParts(World world, Random rand, StructureBoundingBox box) { + + fillWithAir(world, box, 1, 1, 1, 6, 3, 6); + //floor + fillWithMetadataBlocks(world, box, 1, 0, 1, 6, 0, 6, ModBlocks.vinyl_tile, 1); + //ceiling + fillWithBlocks(world, box, 1, 4, 1, 6, 4, 6, ModBlocks.vinyl_tile); + //upper shield + fillWithBlocks(world, box, 1, 4, 4, 3, 4, 6, ModBlocks.reinforced_stone); + fillWithBlocks(world, box, 0, 5, 0, 7, 5, 7, ModBlocks.reinforced_stone); + //walls + fillWithRandomizedBlocks(world, box, 0, 0, 0, 0, 4, 7, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 1, 0, 7, 6, 4, 7, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 7, 0, 0, 7, 4, 7, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 1, 0, 0, 6, 4, 0, rand, ConcreteBricks); + //meh, fix the area later + final int hpos = Component.getAverageHeight(world, boundingBox, box, componentType - boundingBox.minY); + //top hatch + placeBlockAtCurrentPosition(world, ModBlocks.concrete_slab, 1, 0, hpos, 5, box); + fillWithMetadataBlocks(world, box, 1, hpos, 4, 1, hpos, 6, ModBlocks.concrete_smooth_stairs, getStairMeta(0)); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_slab, 1, 2, hpos, 3, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, getStairMeta(2), 2, hpos, 4, box); + placeBlockAtCurrentPosition(world, Blocks.trapdoor, getDecoModelMeta(8) >> 2, 2, hpos, 5, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, getStairMeta(3), 2, hpos, 6, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_slab, 1, 2, hpos, 7, box); + fillWithMetadataBlocks(world, box, 3, hpos, 4, 3, hpos, 6, ModBlocks.concrete_smooth_stairs, getStairMeta(1)); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_slab, 1, 4, hpos, 5, box); + //tunnel downwards + fillWithBlocks(world, box, 1, 6, 4, 1, hpos - 1, 6, ModBlocks.reinforced_stone); + fillWithBlocks(world, box, 2, 1, 6, 2, hpos - 1, 6, ModBlocks.reinforced_stone); + fillWithBlocks(world, box, 3, 6, 4, 3, hpos - 1, 6, ModBlocks.reinforced_stone); + fillWithBlocks(world, box, 2, 6, 4, 2, hpos - 1, 4, ModBlocks.reinforced_stone); + fillWithMetadataBlocks(world, box, 2, 1, 5, 2, hpos - 1, 5, ModBlocks.ladder_sturdy, getDecoMeta(2)); //double check meta + + /* DECO */ + //lamps + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_lamp_off, 0, 2, 5, 2, box); + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_lamp_off, 0, 5, 5, 2, box); + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_lamp_off, 0, 5, 5, 5, box); + placeBlockAtCurrentPosition(world, ModBlocks.fan, 0, 2, 4, 2, box); + placeBlockAtCurrentPosition(world, ModBlocks.fan, 0, 5, 4, 2, box); + placeBlockAtCurrentPosition(world, ModBlocks.fan, 0, 5, 4, 5, box); + //machine + placeBlockAtCurrentPosition(world, ModBlocks.deco_tungsten, 0, 3, 1, 6, box); + generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(2), 4, 1, 6, HbmChestContents.antenna/*TODO change */, 5); + placeBlockAtCurrentPosition(world, ModBlocks.deco_tungsten, 0, 5, 1, 6, box); + fillWithMetadataBlocks(world, box, 3, 2, 6, 5, 2, 6, ModBlocks.concrete_smooth_stairs, getStairMeta(2) | 4); + fillWithMetadataBlocks(world, box, 3, 3, 6, 5, 3, 6, ModBlocks.tape_recorder, getDecoMeta(2)); + //desk + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, getStairMeta(1) | 4, 3, 1, 4, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, getStairMeta(3) | 4, 4, 1, 4, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, getStairMeta(0) | 4, 5, 1, 4, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(0), 4, 2, 4, box); + //clear out entryways based on path + if(paths[0]) fillWithAir(world, box, 7, 1, 2, 7, 2, 3); + if(paths[1]) fillWithAir(world, box, 3, 1, 0, 4, 2, 0); + if(paths[2]) fillWithAir(world, box, 0, 1, 2, 0, 2, 3); + + return true; + } + } + + public static class Corridor extends Component implements ProceduralComponent { + + private boolean path; + + public Corridor() { } + + public Corridor(int componentType, StructureBoundingBox box, int coordMode) { + super(componentType); + this.boundingBox = box; + this.coordBaseMode = coordMode; + } + + /** write to nbt */ + @Override + protected void func_143012_a(NBTTagCompound nbt) { + super.func_143012_a(nbt); + nbt.setBoolean("p", path); + } + + /** read from nbt */ + @Override + protected void func_143011_b(NBTTagCompound nbt) { + super.func_143011_b(nbt); + path = nbt.getBoolean("p"); + } + + @Override + public void buildComponent(ProceduralStructureStart start, Random rand) { + path = this.getNextComponentNormal(start, this, coordBaseMode, rand, 3, 1) != null; + } + + @Override + public boolean addComponentParts(World world, Random rand, StructureBoundingBox box) { + + fillWithAir(world, box, 1, 1, 1, 4, 3, 5); + //floor + fillWithMetadataBlocks(world, box, 1, 0, 1, 4, 0, 5, ModBlocks.vinyl_tile, 1); + //ceiling + fillWithBlocks(world, box, 1, 4, 1, 4, 4, 5, ModBlocks.vinyl_tile); + //upper shield + fillWithBlocks(world, box, 0, 5, 0, 5, 5, 6, ModBlocks.reinforced_stone); + //walls + fillWithRandomizedBlocks(world, box, 0, 0, 0, 0, 4, 6, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 1, 0, 6, 4, 4, 6, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 5, 0, 0, 5, 4, 6, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 1, 0, 0, 4, 4, 0, rand, ConcreteBricks); + + //TODO different deco types? maybe plants or vending machines? + //save it to nbt either way + /* DECO */ + //lamps + fillWithBlocks(world, box, 2, 5, 3, 3, 5, 3, ModBlocks.reinforced_lamp_off); + fillWithBlocks(world, box, 2, 4, 3, 3, 4, 3, ModBlocks.fan); + //table w/ chairs + final int stairMetaS = getStairMeta(3); + final int stairMetaN = getStairMeta(2); + + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaS, 1, 1, 2, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaN, 1, 1, 4, box); + placeBlockAtCurrentPosition(world, Blocks.fence, 0, 1, 1, 3, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_pressure_plate, 1, 1, 2, 3, box); + //desk w/ computer + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaS | 4, 4, 1, 2, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaN, 4, 1, 4, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(1), 4, 2, 2, box); + //doors + placeDoor(world, box, ModBlocks.door_bunker, 1, true, rand.nextBoolean(), 2, 1, 0); + placeDoor(world, box, ModBlocks.door_bunker, 1, false, rand.nextBoolean(), 3, 1, 0); + if(path) fillWithAir(world, box, 2, 1, 6, 3, 2, 6); + + return true; + } + + public static StructureComponent findValidPlacement(List components, Random rand, int x, int y, int z, int coordMode, int type) { + StructureBoundingBox box = ProceduralStructureStart.getComponentToAddBoundingBox(x, y, z, -3, -1, 0, 6, 6, 7, coordMode); + return box.minY > 10 && StructureComponent.findIntersecting(components, box) == null ? new Corridor(type, box, coordMode) : null; + } + } + + public static class BedroomL extends Component implements ProceduralComponent { + + private boolean path; + + public BedroomL() { } + + public BedroomL(int componentType, StructureBoundingBox box, int coordMode) { + super(componentType); + this.boundingBox = box; + this.coordBaseMode = coordMode; + } + + /** write to nbt */ + @Override + protected void func_143012_a(NBTTagCompound nbt) { + super.func_143012_a(nbt); + nbt.setBoolean("p", path); + } + + /** read from nbt */ + @Override + protected void func_143011_b(NBTTagCompound nbt) { + super.func_143011_b(nbt); + path = nbt.getBoolean("p"); + } + + @Override + public void buildComponent(ProceduralStructureStart start, Random rand) { + path = this.getNextComponentWest(start, this, coordBaseMode, rand, 9, 1) != null; + } + + @Override + public boolean addComponentParts(World world, Random rand, StructureBoundingBox box) { + + fillWithAir(world, box, 4, 1, 1, 8, 3, 4); + fillWithAir(world, box, 1, 1, 5, 8, 3, 9); + //floor + fillWithMetadataBlocks(world, box, 4, 0, 1, 8, 0, 4, ModBlocks.vinyl_tile, 1); + fillWithMetadataBlocks(world, box, 1, 0, 5, 8, 0, 9, ModBlocks.vinyl_tile, 1); + //ceiling + fillWithBlocks(world, box, 4, 4, 1, 8, 4, 4, ModBlocks.vinyl_tile); + fillWithBlocks(world, box, 1, 4, 5, 8, 4, 9, ModBlocks.vinyl_tile); + //upper shield + fillWithBlocks(world, box, 3, 5, 0, 9, 5, 3, ModBlocks.reinforced_stone); + fillWithBlocks(world, box, 0, 5, 4, 9, 5, 10, ModBlocks.reinforced_stone); + //walls + fillWithRandomizedBlocks(world, box, 0, 0, 4, 0, 4, 10, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 1, 0, 10, 8, 4, 10, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 9, 0, 0, 9, 4, 10, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 4, 0, 0, 8, 4, 0, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 3, 0, 0, 3, 4, 4, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 1, 0, 4, 2, 4, 4, rand, ConcreteBricks); + + /* DECO */ + //lamps + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_lamp_off, 0, 3, 5, 7, box); + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_lamp_off, 0, 6, 5, 7, box); + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_lamp_off, 0, 6, 5, 3, box); + placeBlockAtCurrentPosition(world, ModBlocks.fan, 0, 3, 4, 7, box); + placeBlockAtCurrentPosition(world, ModBlocks.fan, 0, 6, 4, 7, box); + placeBlockAtCurrentPosition(world, ModBlocks.fan, 0, 6, 4, 3, box); + //Beds w/ table + final int stairMetaW = getStairMeta(0); + final int stairMetaE = getStairMeta(1); + final int stairMetaN = getStairMeta(2); + final int stairMetaS = getStairMeta(3); + placeBed(world, box, 1, 5, 1, 1); + placeBed(world, box, 1, 5, 1, 3); + placeBed(world, box, 2, 3, 1, 6); + placeBed(world, box, 2, 1, 1, 6); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaE | 4, 4, 1, 2, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaE | 4, 4, 1, 4, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaS | 4, 4, 1, 5, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaS | 4, 2, 1, 5, box); + placeBlockAtCurrentPosition(world, ModBlocks.radiorec, getDecoMeta(4), 4, 2, 4, box); + //table w/ microwave + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaS | 4, 8, 1, 3, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaN | 4, 8, 1, 4, box); + placeBlockAtCurrentPosition(world, Blocks.noteblock, 0, 8, 1, 5, box); + placeBlockAtCurrentPosition(world, ModBlocks.machine_microwave, getDecoMeta(4), 8, 2, 4, box); + //desk w/ computer + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaW | 4, 6, 1, 9, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaN | 4, 5, 1, 9, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaE | 4, 4, 1, 9, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaS, 5, 1, 8, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(0), 5, 2, 9, box); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 3, 1, 9, HbmChestContents.antenna/*TODO change */, 5); + //lockers + generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 8, 1, 7, HbmChestContents.antenna/*TODO change */, 3); + generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 8, 2, 7, HbmChestContents.antenna/*TODO change */, 3); + fillWithBlocks(world, box, 8, 1, 8, 8, 2, 8, ModBlocks.deco_tungsten); + generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 8, 1, 9, HbmChestContents.antenna/*TODO change */, 3); + generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 8, 2, 9, HbmChestContents.antenna/*TODO change */, 3); + fillWithMetadataBlocks(world, box, 8, 3, 7, 8, 3, 9, Blocks.trapdoor, getDecoModelMeta(2) >> 2); + //doors + placeDoor(world, box, ModBlocks.door_bunker, 1, true, rand.nextBoolean(), 7, 1, 0); + placeDoor(world, box, ModBlocks.door_bunker, 1, false, rand.nextBoolean(), 8, 1, 0); + if(path) fillWithAir(world, box, 0, 1, 8, 0, 2, 9); + + return true; + } + + public static StructureComponent findValidPlacement(List components, Random rand, int x, int y, int z, int coordMode, int type) { + StructureBoundingBox box = ProceduralStructureStart.getComponentToAddBoundingBox(x, y, z, -8, -1, 0, 10, 6, 11, coordMode); + return box.minY > 10 && StructureComponent.findIntersecting(components, box) == null ? new BedroomL(type, box, coordMode) : null; + } + } + + public static class FunJunction extends Component implements ProceduralComponent { + + private boolean[] paths = new boolean[2]; + + public FunJunction() { } + + public FunJunction(int componentType, StructureBoundingBox box, int coordMode) { + super(componentType); + this.boundingBox = box; + this.coordBaseMode = coordMode; + } + + /** write to nbt */ + @Override + protected void func_143012_a(NBTTagCompound nbt) { + super.func_143012_a(nbt); + for(int i = 0; i < paths.length; i++) + nbt.setBoolean("p" + i, paths[i]); + } + + /** read from nbt */ + @Override + protected void func_143011_b(NBTTagCompound nbt) { + super.func_143011_b(nbt); + for(int i = 0; i < paths.length; i++) + paths[i] = nbt.getBoolean("p" + i); + } + + @Override + public void buildComponent(ProceduralStructureStart start, Random rand) { + paths[0] = this.getNextComponentEast(start, this, coordBaseMode, rand, 6, 1) != null; + paths[1] = this.getNextComponentNormal(start, this, coordBaseMode, rand, 5, 1) != null; + } + + @Override + public boolean addComponentParts(World world, Random rand, StructureBoundingBox box) { + + fillWithAir(world, box, 1, 1, 1, 6, 3, 10); + //floor + fillWithMetadataBlocks(world, box, 1, 0, 1, 6, 0, 10, ModBlocks.vinyl_tile, 1); + //ceiling + fillWithBlocks(world, box, 1, 4, 1, 6, 4, 10, ModBlocks.vinyl_tile); + //upper shield + fillWithBlocks(world, box, 0, 5, 0, 7, 5, 11, ModBlocks.reinforced_stone); + //walls + fillWithRandomizedBlocks(world, box, 0, 0, 0, 0, 4, 11, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 1, 0, 11, 6, 4, 11, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 7, 0, 0, 7, 4, 11, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 1, 0, 0, 6, 4, 0, rand, ConcreteBricks); + + /* DECO */ + //lamps + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_lamp_off, 0, 2, 5, 3, box); + fillWithBlocks(world, box, 5, 5, 5, 5, 5, 6, ModBlocks.reinforced_lamp_off); + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_lamp_off, 0, 2, 5, 8, box); + placeBlockAtCurrentPosition(world, ModBlocks.fan, 0, 2, 4, 3, box); + fillWithBlocks(world, box, 5, 4, 5, 5, 4, 6, ModBlocks.fan); + placeBlockAtCurrentPosition(world, ModBlocks.fan, 0, 2, 4, 8, box); + //couches w/ tables + final int stairMetaW = getStairMeta(0); + final int stairMetaE = getStairMeta(1); + final int stairMetaN = getStairMeta(2); + final int stairMetaS = getStairMeta(3); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaE, 1, 1, 1, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaS, 2, 1, 1, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaW, 3, 1, 1, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaS, 1, 1, 4, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaE, 1, 1, 5, box); + fillWithMetadataBlocks(world, box, 1, 1, 6, 2, 1, 6, Blocks.oak_stairs, stairMetaN); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaW, 3, 1, 6, box); + placeBlockAtCurrentPosition(world, Blocks.fence, 0, 1, 1, 3, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_pressure_plate, 0, 1, 2, 3, box); + placeBlockAtCurrentPosition(world, Blocks.fence, 0, 3, 1, 4, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_pressure_plate, 0, 3, 2, 4, box); + //table & chest + placeBlockAtCurrentPosition(world, Blocks.fence, 0, 6, 1, 2, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_pressure_plate, 0, 6, 2, 2, box); + generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 6, 1, 3, HbmChestContents.antenna/*TODO change */, 7); + //desk w/ computer + bobblehead + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaS | 4, 1, 1, 8, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaE | 4, 1, 1, 9, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaN | 4, 1, 1, 10, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaS, 2, 1, 8, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(3), 1, 2, 9, box); + if(rand.nextBoolean()) placeRandomBobble(world, box, rand, 1, 2, 8); + //jukebox + fillWithBlocks(world, box, 6, 1, 8, 6, 2, 8, Blocks.noteblock); + placeBlockAtCurrentPosition(world, ModBlocks.deco_tungsten, 0, 6, 1, 9, box); + placeBlockAtCurrentPosition(world, ModBlocks.tape_recorder, getDecoMeta(4), 6, 2, 9, box); + fillWithBlocks(world, box, 6, 3, 8, 6, 3, 9, ModBlocks.concrete_slab); + placeBlockAtCurrentPosition(world, Blocks.lever, getDecoMeta(2), 5, 1, 9, box); //double-check meta + //doors + placeDoor(world, box, ModBlocks.door_bunker, 1, true, rand.nextBoolean(), 4, 1, 0); + placeDoor(world, box, ModBlocks.door_bunker, 1, false, rand.nextBoolean(), 5, 1, 0); + if(paths[0]) fillWithAir(world, box, 7, 1, 5, 7, 2, 6); + if(paths[1]) fillWithAir(world, box, 4, 1, 11, 5, 2, 11); + + return true; + } + + public static StructureComponent findValidPlacement(List components, Random rand, int x, int y, int z, int coordMode, int type) { + StructureBoundingBox box = ProceduralStructureStart.getComponentToAddBoundingBox(x, y, z, -5, -1, 0, 8, 6, 12, coordMode); + return box.minY > 10 && StructureComponent.findIntersecting(components, box) == null ? new FunJunction(type, box, coordMode) : null; + } + } + + public static class BathroomL extends Component implements ProceduralComponent { + + private boolean path; + + public BathroomL() { } + + public BathroomL(int componentType, StructureBoundingBox box, int coordMode) { + super(componentType); + this.boundingBox = box; + this.coordBaseMode = coordMode; + } + + /** write to nbt */ + @Override + protected void func_143012_a(NBTTagCompound nbt) { + super.func_143012_a(nbt); + nbt.setBoolean("p", path); + } + + /** read from nbt */ + @Override + protected void func_143011_b(NBTTagCompound nbt) { + super.func_143011_b(nbt); + path = nbt.getBoolean("p"); + } + + @Override + public void buildComponent(ProceduralStructureStart start, Random rand) { + path = this.getNextComponentEast(start, this, coordBaseMode, rand, 3, 1) != null; + } + + @Override + public boolean addComponentParts(World world, Random rand, StructureBoundingBox box) { + + fillWithAir(world, box, 1, 1, 1, 7, 3, 9); + //floor + fillWithMetadataBlocks(world, box, 1, 0, 1, 7, 0, 9, ModBlocks.vinyl_tile, 1); + //ceiling + fillWithBlocks(world, box, 1, 4, 1, 7, 4, 9, ModBlocks.vinyl_tile); + //upper shield + fillWithBlocks(world, box, 0, 5, 0, 8, 5, 10, ModBlocks.reinforced_stone); + //walls + fillWithRandomizedBlocks(world, box, 0, 0, 0, 0, 4, 10, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 1, 0, 10, 7, 4, 10, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 8, 0, 0, 8, 4, 10, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 1, 0, 0, 7, 4, 0, rand, ConcreteBricks); + + /* DECO */ + //lamps + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_lamp_off, 0, 2, 5, 3, box); + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_lamp_off, 0, 2, 5, 7, box); + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_lamp_off, 0, 5, 5, 7, box); + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_lamp_off, 0, 5, 5, 3, box); + placeBlockAtCurrentPosition(world, ModBlocks.fan, 0, 2, 4, 3, box); + placeBlockAtCurrentPosition(world, ModBlocks.fan, 0, 2, 4, 7, box); + placeBlockAtCurrentPosition(world, ModBlocks.fan, 0, 5, 4, 7, box); + placeBlockAtCurrentPosition(world, ModBlocks.fan, 0, 5, 4, 3, box); + //sinks + for(int i = 2; i <= 8; i += 2) { + placeBlockAtCurrentPosition(world, Blocks.cauldron, rand.nextInt(4), 1, 1, i, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_slab, 8, 1, 1, i + 1, box); + placeBlockAtCurrentPosition(world, Blocks.tripwire_hook, getTripwireMeta(3), 1, 2, i, box); + } + //hand-dryers (industrial-strength) + placeBlockAtCurrentPosition(world, ModBlocks.steel_beam, 3, 4, 1, 9, box); + placeBlockAtCurrentPosition(world, ModBlocks.fan, getDecoMeta(2), 4, 2, 9, box); + placeBlockAtCurrentPosition(world, Blocks.stone_button, 2, 3, 2, 9, box); //TODO button meta + placeBlockAtCurrentPosition(world, ModBlocks.steel_beam, 3, 6, 1, 9, box); + placeBlockAtCurrentPosition(world, ModBlocks.fan, getDecoMeta(2), 6, 2, 9, box); + placeBlockAtCurrentPosition(world, Blocks.stone_button, 1, 7, 2, 9, box); + //stalls w/ toilets + for(int i = 1; i <= 5; i += 2) { + placeBlockAtCurrentPosition(world, ModBlocks.door_metal, 0, 5, 1, i, box); + placeDoor(world, box, ModBlocks.door_metal, 0, false, rand.nextBoolean(), 5, 1, i); + fillWithMetadataBlocks(world, box, 5, 1, i + 1, 5, 2, i + 1, ModBlocks.steel_corner, getDecoMeta(2)); + fillWithMetadataBlocks(world, box, 6, 1, i + 1, 7, 2, i + 1, ModBlocks.steel_wall, getDecoMeta(2)); + placeBlockAtCurrentPosition(world, ModBlocks.deco_pipe_rim, 0, 7, 1, i, box); + placeBlockAtCurrentPosition(world, Blocks.trapdoor, getDecoModelMeta(2) >> 2, 7, 2, i, box); + } + //doors + placeDoor(world, box, ModBlocks.door_bunker, 1, true, rand.nextBoolean(), 2, 1, 0); + placeDoor(world, box, ModBlocks.door_bunker, 1, false, rand.nextBoolean(), 3, 1, 0); + if(path) fillWithAir(world, box, 8, 1, 7, 8, 2, 8); + + return true; + } + + public static StructureComponent findValidPlacement(List components, Random rand, int x, int y, int z, int coordMode, int type) { + StructureBoundingBox box = ProceduralStructureStart.getComponentToAddBoundingBox(x, y, z, -3, -1, 0, 9, 6, 11, coordMode); + return box.minY > 10 && StructureComponent.findIntersecting(components, box) == null ? new BathroomL(type, box, coordMode) : null; + } + } +} diff --git a/src/main/java/com/hbm/world/worldgen/components/CivilianFeatures.java b/src/main/java/com/hbm/world/gen/component/CivilianFeatures.java similarity index 99% rename from src/main/java/com/hbm/world/worldgen/components/CivilianFeatures.java rename to src/main/java/com/hbm/world/gen/component/CivilianFeatures.java index 958313bd7..60190d1c0 100644 --- a/src/main/java/com/hbm/world/worldgen/components/CivilianFeatures.java +++ b/src/main/java/com/hbm/world/gen/component/CivilianFeatures.java @@ -1,4 +1,4 @@ -package com.hbm.world.worldgen.components; +package com.hbm.world.gen.component; import java.util.Random; diff --git a/src/main/java/com/hbm/world/worldgen/components/Component.java b/src/main/java/com/hbm/world/gen/component/Component.java similarity index 94% rename from src/main/java/com/hbm/world/worldgen/components/Component.java rename to src/main/java/com/hbm/world/gen/component/Component.java index 9c6c8e527..effd0c592 100644 --- a/src/main/java/com/hbm/world/worldgen/components/Component.java +++ b/src/main/java/com/hbm/world/gen/component/Component.java @@ -1,4 +1,4 @@ -package com.hbm.world.worldgen.components; +package com.hbm.world.gen.component; import java.util.Random; @@ -108,6 +108,26 @@ abstract public class Component extends StructureComponent { return true; } + protected static int getAverageHeight(World world, StructureBoundingBox area, StructureBoundingBox box, int y) { + + int total = 0; + int iterations = 0; + + for(int z = area.minZ; z <= area.maxZ; z++) { + for(int x = area.minX; x <= area.maxX; x++) { + if(box.isVecInside(x, y, z)) { + total += Math.max(world.getTopSolidOrLiquidBlock(x, z), world.provider.getAverageGroundLevel()); + iterations++; + } + } + } + + if(iterations == 0) + return -1; + + return total / iterations; + } + public int getCoordMode() { return this.coordBaseMode; } @@ -224,35 +244,41 @@ abstract public class Component extends StructureComponent { return metadata; } - /* For Later: - * 0/S: S->S; W->W; N->N; E->E - * 1/W: S->W; W->N; N->E; E->S - * 2/N: S->N; W->E; N->S; E->W - * 3/E: S->E; W->S; N->W; E->N - * 0/b00/W, 1/b01/N, 2/b10/E, 3/b11/S - */ - /** - * Places door at specified location with orientation-adjusted meta - * 0 = West, 1 = North, 2 = East, 3 = South + /* + * Assuming door is on opposite side of block from direction: East: 0, South: 1, West: 2, North: 3
+ * Doors cleverly take advantage of the use of two blocks to get around the 16 value limit on metadata, with the top and bottom blocks essentially relying on eachother for everything.
+ *
  • The 4th bit (0b1000 or 8) indicates whether it is the top block: on for yes, off for no. + *
  • When the 4th bit is on, the 1st bit indicates whether the door opens to the right or not: on (0b1001) for yes, off (0b1000) for no. + *
  • The bits 1 & 2 (0b0011 or 3) indicate the direction the door is facing. + *
  • When the 4th bit is off, the 3rd bit (0b0100 or 4) indicates whether the door is open or not: on for yes, off for no. Used for doors' interactions with redstone power. + *
  • */ - protected void placeDoor(World world, StructureBoundingBox box, Block door, int meta, int featureX, int featureY, int featureZ) { - switch(this.coordBaseMode) { - default: - break; - case 1: - meta = (meta + 1) % 4; break; - case 2: - meta = meta ^ 2; break; //Flip second bit - case 3: - meta = (meta - 1) % 4; break; - } - + protected void placeDoor(World world, StructureBoundingBox box, Block door, int dirMeta, boolean opensRight, boolean isOpen, int featureX, int featureY, int featureZ) { //isOpen for randomly opened doors int posX = this.getXWithOffset(featureX, featureZ); int posY = this.getYWithOffset(featureY); int posZ = this.getZWithOffset(featureX, featureZ); - this.placeBlockAtCurrentPosition(world, door, meta, featureX, featureY, featureZ, box); - ItemDoor.placeDoorBlock(world, posX, posY, posZ, meta, door); + if(!box.isVecInside(posX, posY, posZ)) return; + + switch(this.coordBaseMode) { + default: + break; + case 1: + dirMeta = (dirMeta + 1) % 4; break; + case 2: + dirMeta ^= 2; break; //Flip second bit + case 3: + dirMeta = (dirMeta - 1) % 4; break; + } + + //hee hoo + int metaTop = opensRight ? 0b1001 : 0b1000; + int metaBottom = dirMeta | (isOpen ? 0b100 : 0); + + if(world.doesBlockHaveSolidTopSurface(world, posX, posY - 1, posZ)) { + world.setBlock(posX, posY, posZ, door, metaBottom, 2); + world.setBlock(posX, posY + 1, posZ, door, metaTop, 2); + } } /**N:0 W:1 S:2 E:3 */ diff --git a/src/main/java/com/hbm/world/worldgen/components/OfficeFeatures.java b/src/main/java/com/hbm/world/gen/component/OfficeFeatures.java similarity index 96% rename from src/main/java/com/hbm/world/worldgen/components/OfficeFeatures.java rename to src/main/java/com/hbm/world/gen/component/OfficeFeatures.java index 22ad5fead..3a3549106 100644 --- a/src/main/java/com/hbm/world/worldgen/components/OfficeFeatures.java +++ b/src/main/java/com/hbm/world/gen/component/OfficeFeatures.java @@ -1,4 +1,4 @@ -package com.hbm.world.worldgen.components; +package com.hbm.world.gen.component; import java.util.Random; @@ -200,9 +200,9 @@ public class OfficeFeatures { randomlyFillWithBlocks(world, box, rand, 0.25F, 6, 3, 1, sizeX - 1, 3, 6, Blocks.web); randomlyFillWithBlocks(world, box, rand, 0.25F, 10, 3, 7, sizeX - 1, 3, sizeZ - 1, Blocks.web); //Doors - placeDoor(world, box, ModBlocks.door_office, 3, 2, 1, 7); - placeDoor(world, box, ModBlocks.door_office, 3, 3, 1, 7); - placeDoor(world, box, ModBlocks.door_office, 0, 5, 1, 6); + placeDoor(world, box, ModBlocks.door_office, 3, false, rand.nextBoolean(), 2, 1, 7); + placeDoor(world, box, ModBlocks.door_office, 3, false, rand.nextBoolean(), 3, 1, 7); + placeDoor(world, box, ModBlocks.door_office, 0, false, rand.nextBoolean(), 5, 1, 6); //Woot if(!this.hasPlacedLoot[0]) @@ -427,16 +427,16 @@ public class OfficeFeatures { fillWithRandomizedBlocks(world, box, 2, 11, 10, 3, 11, 10, rand, ConcreteBricks); fillWithRandomizedBlocks(world, box, 2, 9, 10, 2, 10, 10, rand, ConcreteBricks); //Doors - placeDoor(world, box, Blocks.wooden_door, 3, 1, 1, 14); - placeDoor(world, box, Blocks.wooden_door, 3, 2, 1, 14); - placeDoor(world, box, Blocks.wooden_door, 0, 0, 1, 12); - placeDoor(world, box, Blocks.wooden_door, 0, 0, 1, 13); - placeDoor(world, box, ModBlocks.door_office, 0, 6, 1, 3); - placeDoor(world, box, ModBlocks.door_office, 0, 5, 5, 3); - placeDoor(world, box, ModBlocks.door_office, 2, 4, 5, 11); - placeDoor(world, box, ModBlocks.door_office, 0, 10, 9, 3); - placeDoor(world, box, ModBlocks.door_office, 1, 3, 9, 10); - placeDoor(world, box, ModBlocks.door_metal, 0, 5, 13, 3); + placeDoor(world, box, Blocks.wooden_door, 3, false, rand.nextBoolean(), 1, 1, 14); + placeDoor(world, box, Blocks.wooden_door, 3, true, rand.nextBoolean(), 2, 1, 14); + placeDoor(world, box, Blocks.wooden_door, 0, false, rand.nextBoolean(), 0, 1, 12); + placeDoor(world, box, Blocks.wooden_door, 0, true, rand.nextBoolean(), 0, 1, 13); + placeDoor(world, box, ModBlocks.door_office, 0, false, rand.nextBoolean(), 6, 1, 3); + placeDoor(world, box, ModBlocks.door_office, 0, false, rand.nextBoolean(), 5, 5, 3); + placeDoor(world, box, ModBlocks.door_office, 2, false, rand.nextBoolean(), 4, 5, 11); + placeDoor(world, box, ModBlocks.door_office, 0, false, rand.nextBoolean(), 10, 9, 3); + placeDoor(world, box, ModBlocks.door_office, 1, false, rand.nextBoolean(), 3, 9, 10); + placeDoor(world, box, ModBlocks.door_metal, 0, false, rand.nextBoolean(), 5, 13, 3); //Furniture //Floor 1 int NorthStairMeta = getStairMeta(2); diff --git a/src/main/java/com/hbm/world/worldgen/components/RuinFeatures.java b/src/main/java/com/hbm/world/gen/component/RuinFeatures.java similarity index 99% rename from src/main/java/com/hbm/world/worldgen/components/RuinFeatures.java rename to src/main/java/com/hbm/world/gen/component/RuinFeatures.java index a04e2ca2c..b5f5d141d 100644 --- a/src/main/java/com/hbm/world/worldgen/components/RuinFeatures.java +++ b/src/main/java/com/hbm/world/gen/component/RuinFeatures.java @@ -1,4 +1,4 @@ -package com.hbm.world.worldgen.components; +package com.hbm.world.gen.component; import java.util.Random; diff --git a/src/main/java/com/hbm/world/worldgen/NTMWorldGenerator.java b/src/main/java/com/hbm/world/worldgen/NTMWorldGenerator.java deleted file mode 100644 index 01c7b7acc..000000000 --- a/src/main/java/com/hbm/world/worldgen/NTMWorldGenerator.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.hbm.world.worldgen; - -import java.util.Random; - -import com.hbm.config.StructureConfig; - -import cpw.mods.fml.common.IWorldGenerator; -import net.minecraft.block.Block; -import net.minecraft.world.World; -import net.minecraft.world.chunk.IChunkProvider; -import net.minecraftforge.event.terraingen.InitMapGenEvent.EventType; -import net.minecraftforge.event.terraingen.TerrainGen; - -public class NTMWorldGenerator implements IWorldGenerator { - - private MapGenNTMFeatures NTMFeatureGenerator = new MapGenNTMFeatures(); - - { - NTMFeatureGenerator = (MapGenNTMFeatures) TerrainGen.getModdedMapGen(NTMFeatureGenerator, EventType.CUSTOM); - } - - @Override - public void generate(Random rand, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider) { - - switch (world.provider.dimensionId) { - case -1: - generateNether(world, rand, chunkGenerator, chunkX, chunkZ); break; - case 0: - generateSurface(world, rand, chunkGenerator, chunkX, chunkZ); break; - case 1: - generateEnd(world, rand, chunkGenerator, chunkX, chunkZ); break; - } - } - - private void generateNether(World world, Random rand, IChunkProvider chunkGenerator, int chunkX, int chunkZ) { } - - private void generateSurface(World world, Random rand, IChunkProvider chunkGenerator, int chunkX, int chunkZ) { - Block[] ablock = new Block[65536]; - - //WorldConfig.enableStructures - /** Spawns structure starts. Utilizes canSpawnStructureAtCoords() + if else checks in Start constructor */ - if(StructureConfig.enableStructures) { - this.NTMFeatureGenerator.func_151539_a(chunkGenerator, world, chunkX, chunkZ, ablock); - } - - /** Actually generates structures in a given chunk. */ - if(StructureConfig.enableStructures) { - this.NTMFeatureGenerator.generateStructuresInChunk(world, rand, chunkX, chunkZ); - } - } - - private void generateEnd(World world, Random rand, IChunkProvider chunkGenerator, int chunkX, int chunkZ) { } -} diff --git a/src/main/java/com/hbm/world/worldgen/components/ProceduralComponents.java b/src/main/java/com/hbm/world/worldgen/components/ProceduralComponents.java deleted file mode 100644 index 4bf1f4801..000000000 --- a/src/main/java/com/hbm/world/worldgen/components/ProceduralComponents.java +++ /dev/null @@ -1,240 +0,0 @@ -package com.hbm.world.worldgen.components; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Random; - -import net.minecraft.world.gen.structure.StructureBoundingBox; - -public abstract class ProceduralComponents { - - protected List componentWeightList; - - protected static Weight[] weightArray = new Weight[] { }; - - public void prepareComponents() { - componentWeightList = new ArrayList(); - - for(int i = 0; i < weightArray.length; i++) { - weightArray[i].instancesSpawned = 0; - componentWeightList.add(weightArray[i]); - } - } - - protected int getTotalWeight() { - boolean flag = false; - int totalWeight = 0; - Weight weight; - - for(Iterator iterator = componentWeightList.iterator(); iterator.hasNext(); totalWeight += weight.weight) { //Iterates over the entire list to find the total weight - weight = (Weight) iterator.next(); - - if(weight.instanceLimit >= 0 && weight.instancesSpawned < weight.instanceLimit) //can more structure pieces be added, in general? - flag = true; - } - - return flag ? totalWeight : -1; - } - - protected ProceduralComponent getWeightedComponent(ControlComponent original, List components, Random rand, int minX, int minY, int minZ, int coordMode, int componentType) { - int totalWeight = getTotalWeight(); - - if(totalWeight < 0) - return null; - - for(int i = 0; i < 5; i++) { - int value = rand.nextInt(totalWeight); //Pick a random value, based on how many parts there are already - Iterator iterator = componentWeightList.iterator(); - - while(iterator.hasNext()) { - Weight weight = (Weight)iterator.next(); - value -= weight.weight; //Iterate over the list until the value is less than 0 - - if(value < 0) { - if(!weight.canSpawnStructure(componentType, coordMode, original.lastComponent)) //Additional checks based on game state info preventing spawn? start from beginning - break; - - ProceduralComponent component = (ProceduralComponent) weight.lambda.findValidPlacement(components, rand, minX, minY, minZ, coordMode, componentType); //Construct the chosen component - - if(component != null) { //If it has been constructed, add it - weight.instancesSpawned++; - - if(!weight.canSpawnMoreStructures()) //Structure can no longer be spawned regardless of game state? remove as an option - componentWeightList.remove(weight); - - return component; - } - - } - } - } - - return null; - } - - protected int sizeLimit = 50; - protected int distanceLimit = 64; - - protected ProceduralComponent getNextValidComponent(ControlComponent original, List components, Random rand, int minX, int minY, int minZ, int coordMode, int componentType) { - - if(components.size() > sizeLimit) //Hard limit on amount of components - return null; - - if(Math.abs(minX - original.getBoundingBox().minX) <= distanceLimit && Math.abs(minZ - original.getBoundingBox().minZ) <= distanceLimit) { //Hard limit on spread of structure - - ProceduralComponent structure = getWeightedComponent(original, components, rand, minX, minY, minZ, coordMode, componentType + 1); //Returns null if all checks fail - - if(structure != null) { - components.add(structure); //Adds component to structure start list - original.queuedComponents.add(structure); //Add it to the list of queued components waiting to be built - } - - return structure; - } - - return null; - } - - public static StructureBoundingBox getComponentToAddBoundingBox(int posX, int posY, int posZ, int offsetX, int offsetY, int offsetZ, int maxX, int maxY, int maxZ, int coordMode) { - switch(coordMode) { - case 0: //South - return new StructureBoundingBox(posX + offsetX, posY + offsetY, posZ + offsetZ, posX + maxX - 1 + offsetX, posY + maxY - 1 + offsetY, posZ + maxZ - 1 + offsetZ); - case 1: //West - return new StructureBoundingBox(posX - maxZ + 1 - offsetZ, posY + offsetY, posZ + offsetX, posX - offsetZ, posY + maxY - 1 + offsetY, posZ + maxX - 1 + offsetX); - case 2: //North - return new StructureBoundingBox(posX - maxX + 1 - offsetX, posY + offsetY, posZ - maxZ + 1 - offsetZ, posX - offsetX, posY + maxY - 1 + offsetY, posZ + offsetZ); - case 3: //East - return new StructureBoundingBox(posX + offsetZ, posY + offsetY, posZ - maxX + 1 - offsetX, posX + maxZ - 1 + offsetZ, posY + maxY - 1 + offsetY, posZ - offsetX); - default: - return new StructureBoundingBox(posX + offsetX, posY + offsetY, posZ + offsetZ, posX + maxX - 1 + offsetX, posY + maxY - 1 + offsetY, posZ + maxZ - 1 + offsetZ); - } - } - - /** StructureComponent that supports procedural generation */ - public abstract static class ProceduralComponent extends Component { - - public ProceduralComponent() { } - - public ProceduralComponent(int componentType) { - super(componentType); //Important to carry over. - } - - public void buildComponent(ProceduralComponents instance, ControlComponent original, List components, Random rand) { } - - /** Gets next component in the direction this component is facing.
    'original' refers to the initial starting component (hard distance limits), 'components' refers to the StructureStart list. */ - protected ProceduralComponent getNextComponentNormal(ProceduralComponents instance, ControlComponent original, List components, Random rand, int offset, int offsetY) { - switch(this.coordBaseMode) { - case 0: //South - return instance.getNextValidComponent(original, components, rand, this.boundingBox.minX + offset, this.boundingBox.minY + offsetY, this.boundingBox.maxZ + 1, this.coordBaseMode, this.getComponentType()); - case 1: //West - return instance.getNextValidComponent(original, components, rand, this.boundingBox.minX - 1, this.boundingBox.minY + offsetY, this.boundingBox.minZ + offset, this.coordBaseMode, this.getComponentType()); - case 2: //North - return instance.getNextValidComponent(original, components, rand, this.boundingBox.maxX - offset, this.boundingBox.minY + offsetY, this.boundingBox.minZ - 1, this.coordBaseMode, this.getComponentType()); - case 3: //East - return instance.getNextValidComponent(original, components, rand, this.boundingBox.maxX + 1, this.boundingBox.minY + offsetY, this.boundingBox.maxZ - offset, this.coordBaseMode, this.getComponentType()); - default: - return null; - } - } - - /** Gets next component in the opposite direction this component is facing. */ - protected ProceduralComponent getNextComponentAntiNormal(ProceduralComponents instance, ControlComponent original, List components, Random rand, int offset, int offsetY) { - switch(this.coordBaseMode) { - case 0: //South - return instance.getNextValidComponent(original, components, rand, this.boundingBox.maxX - offset, this.boundingBox.minY + offsetY, this.boundingBox.minZ - 1, 2, this.getComponentType()); - case 1: //West - return instance.getNextValidComponent(original, components, rand, this.boundingBox.maxX + 1, this.boundingBox.minY + offsetY, this.boundingBox.maxZ - offset, 3, this.getComponentType()); - case 2: //North - return instance.getNextValidComponent(original, components, rand, this.boundingBox.minX + offset, this.boundingBox.minY + offsetY, this.boundingBox.maxZ + 1, 0, this.getComponentType()); - case 3: //East - return instance.getNextValidComponent(original, components, rand, this.boundingBox.minX - 1, this.boundingBox.minY + offsetY, this.boundingBox.minZ + offset, 1, this.getComponentType()); - default: - return null; - } - } - - //Keep in mind for these methods: a given room would have its *actual entrance* opposite the side it is facing. - /** Gets next component, to the West (-X) relative to this component. */ - protected ProceduralComponent getNextComponentNX(ProceduralComponents instance, ControlComponent original, List components, Random rand, int offset, int offsetY) { - switch(this.coordBaseMode) { - case 0: //South - return instance.getNextValidComponent(original, components, rand, this.boundingBox.minX - 1, this.boundingBox.minY + offsetY, this.boundingBox.minZ + offset, 1, this.getComponentType()); - case 1: //West - return instance.getNextValidComponent(original, components, rand, this.boundingBox.maxX - offset, this.boundingBox.minY + offsetY, this.boundingBox.minZ - 1, 2, this.getComponentType()); - case 2: //North - return instance.getNextValidComponent(original, components, rand, this.boundingBox.maxX + 1, this.boundingBox.minY + offsetY, this.boundingBox.maxZ - offset, 3, this.getComponentType()); - case 3: //East - return instance.getNextValidComponent(original, components, rand, this.boundingBox.minX + offset, this.boundingBox.minY + offsetY, this.boundingBox.maxZ + 1, 0, this.getComponentType()); - default: - return null; - } - } - - /** Gets next component, to the East (+X) relative to this component. */ - protected ProceduralComponent getNextComponentPX(ProceduralComponents instance, ControlComponent original, List components, Random rand, int offset, int offsetY) { - switch(this.coordBaseMode) { - case 0: //South - return instance.getNextValidComponent(original, components, rand, this.boundingBox.maxX + 1, this.boundingBox.minY + offsetY, this.boundingBox.maxZ - offset, 3, this.getComponentType() + 1); - case 1: //West - return instance.getNextValidComponent(original, components, rand, this.boundingBox.minX + offset, this.boundingBox.minY + offsetY, this.boundingBox.maxZ + 1, 0, this.getComponentType() + 1); - case 2: //North - return instance.getNextValidComponent(original, components, rand, this.boundingBox.minX - 1, this.boundingBox.minY + offsetY, this.boundingBox.minZ + offset, 1, this.getComponentType() + 1); - case 3: //East - return instance.getNextValidComponent(original, components, rand, this.boundingBox.maxX - offset, this.boundingBox.minY + offsetY, this.boundingBox.minZ - 1, 2, this.getComponentType() + 1); - default: - return null; - } - } - - /** Finds valid placement, using input information. Should be passed as a method reference to its respective Weight. */ - //Static so no override (cringe!) - //public static ProceduralComponent findValidPlacement(List components, Random rand, int minX, int minY, int minZ, int coordMode, int componentType) { return null; } - } - - /** ProceduralComponent that can serve as a master "control component" for procedural generation and building of components. */ - public abstract static class ControlComponent extends ProceduralComponent { - - public List queuedComponents = new ArrayList(); //List of all queued ProceduralComponents waiting to be built. Randomly iterated over until limits like component amt or dist are reached. - public ProceduralComponent lastComponent = this; //Last component to be built. Used as input for the random selection's checks for specific components. - - public ControlComponent() { } - - public ControlComponent(int componentType) { - super(componentType); - } - } - - /** Returns a new instance of this structureComponent, or null if not able to be placed.
    Based on bounding box checks. */ - @FunctionalInterface - interface instantiateStructure { - ProceduralComponent findValidPlacement(List components, Random rand, int minX, int minY, int minZ, int coordMode, int componentType); - } - - protected static class Weight { - - public final instantiateStructure lambda; //Read above - - public final int weight; //Weight of this component - public int instancesSpawned; //How many components spawned? - public int instanceLimit; //Limit on amount of components: -1 for no limit - - public Weight(int weight, int limit, instantiateStructure lambda) { - this.weight = weight; - this.instanceLimit = limit; - this.lambda = lambda; - } - - //Checks if another structure can be spawned based on input data - public boolean canSpawnStructure(int componentAmount, int coordMode, ProceduralComponent component) { - return this.instanceLimit < 0 || this.instancesSpawned < this.instanceLimit; - } - - //Checks if another structure can be spawned at all (used to flag for removal from the list) - public boolean canSpawnMoreStructures() { - return this.instanceLimit < 0 || this.instancesSpawned < this.instanceLimit; - } - - } - -} From 404aacc32befcd5d58511b03d050e42cd1cd682f Mon Sep 17 00:00:00 2001 From: HbmMods Date: Tue, 30 May 2023 14:39:24 +0200 Subject: [PATCH 071/432] Delete ExampleMod.java --- .../com/example/examplemod/ExampleMod.java | 20 ------------------- 1 file changed, 20 deletions(-) delete mode 100644 src/main/java/com/example/examplemod/ExampleMod.java diff --git a/src/main/java/com/example/examplemod/ExampleMod.java b/src/main/java/com/example/examplemod/ExampleMod.java deleted file mode 100644 index 4245c7e92..000000000 --- a/src/main/java/com/example/examplemod/ExampleMod.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.example.examplemod; - -import net.minecraft.init.Blocks; -import cpw.mods.fml.common.Mod; -import cpw.mods.fml.common.Mod.EventHandler; -import cpw.mods.fml.common.event.FMLInitializationEvent; - -@Mod(modid = ExampleMod.MODID, version = ExampleMod.VERSION) -public class ExampleMod -{ - public static final String MODID = "examplemod"; - public static final String VERSION = "1.0"; - - @EventHandler - public void init(FMLInitializationEvent event) - { - // some example code - System.out.println("DIRT BLOCK >> "+Blocks.dirt.getUnlocalizedName()); - } -} From d50506ce1380b1b7e30ffb042dea04eb417f2e5c Mon Sep 17 00:00:00 2001 From: HbmMods Date: Tue, 30 May 2023 14:40:48 +0200 Subject: [PATCH 072/432] Update en_US.lang --- src/main/resources/assets/hbm/lang/en_US.lang | 358 ++++++++++-------- 1 file changed, 190 insertions(+), 168 deletions(-) diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 96fc869ad..5091ddb4b 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -36,16 +36,16 @@ achievement.concrete.desc=A Bolshevik's favorite. achievement.concrete=Old Reliable achievement.desh.desc="Come on then, you lot. Places to go!" achievement.desh=Le Verrier -achievement.digammaFeel.desc=the hollow within. -achievement.digammaFeel=The Terror of Feeling +achievement.digammaFeel.desc=My eyes are bleeding +achievement.digammaFeel=SEWAGE-INFUSED GARBAGE WORLD achievement.digammaKauaiMoho.desc=Everything is awful, here's some hot choccy. -achievement.digammaKauaiMoho=Sing, sing me the song of the Kauai Moho +achievement.digammaKauaiMoho=SING, SING ME THE SONG OF THE KAUAI MOHO achievement.digammaKnow.desc=what this world is about. -achievement.digammaKnow=The Terror of Knowing -achievement.digammaSee.desc=into the abyss. -achievement.digammaSee=The Terror of Seeing +achievement.digammaKnow=THE TERROR OF KNOWING +achievement.digammaSee.desc=It's a bit dark, bring a flashlight. +achievement.digammaSee=ENTER THE ABYSS achievement.digammaUpOnTop.desc=Admire my son, he's my clone. -achievement.digammaUpOnTop=Admire Me, Admire my Home +achievement.digammaUpOnTop=ADMIRE ME, ADMIRE MY HOME achievement.fiend.desc=Be mean. achievement.fiend2.desc=Be meaner. achievement.fiend2=Delinquent 2: Delinquent Harder @@ -56,6 +56,8 @@ achievement.fusion.desc=A dance of deuterons, tritons, and energy. achievement.fusion=Fusion achievement.gasCent.desc=Unenriched Uranium hates him! achievement.gasCent=The Zippe Style +achievement.goFish.desc=Nautical Crucifixion +achievement.goFish=Go Fish achievement.hidden.desc=Kill a tainted creeper with a falling boxcar. achievement.hidden=Hidden Catalog achievement.horizonsBonus.desc=honest to god what the hell is wrong with you @@ -120,7 +122,7 @@ achievement.technetium.desc=It's medicinal, it's medicinal! achievement.technetium=Big Man, Pig Man achievement.watzBoom.desc=Drain your septic tank next time. achievement.watzBoom=Disgusting -achievement.watz.desc=Fólkvangr fields possibly included. +achievement.watz.desc=Fólkvangr fields possibly included. achievement.watz=The Power of Element-126 achievement.witchtaunter.desc=Those wacky creatures got nothing on you! achievement.witchtaunter=Witch Taunter @@ -194,129 +196,129 @@ book.test.page1=Test Page 1 book.error.cover=Hadron Collider:$Troubleshooting book.error.title1=Error 0x01 [NC] -book.error.page1=§lName:§r "ERROR_NO_CHARGE" §lDescription:§r The particle has reached a segment with insufficient charge. §lPotential fix:§r Either replace one of the plugs that the particle successfully passes with higher-tier ones or add another plug slightly before the segment where the particle expires. +book.error.page1=§lName:§r "ERROR_NO_CHARGE" §lDescription:§r The particle has reached a segment with insufficient charge. §lPotential fix:§r Either replace one of the plugs that the particle successfully passes with higher-tier ones or add another plug slightly before the segment where the particle expires. book.error.title2=Error 0x02 [NA] -book.error.page2=§lName:§r "ERROR_NO_ANALYSIS" §lDescription:§r The particle has reached the core, despite not passing an analysis chamber. §lPotential fix:§r Make sure that your accelerator has an analysis chamber and double-check the operating mode (linear/circular). +book.error.page2=§lName:§r "ERROR_NO_ANALYSIS" §lDescription:§r The particle has reached the core, despite not passing an analysis chamber. §lPotential fix:§r Make sure that your accelerator has an analysis chamber and double-check the operating mode (linear/circular). book.error.title3=Error 0x03 [OC] -book.error.page3=§lName:§r "ERROR_OBSTRUCTED_CHANNEL" §lDescription:§r The particle has collided with a block inside the collider's channel. §lPotential fix:§r Make sure that the inside of your particle collider is free of any obstructions, except for particle diodes and core blocks. +book.error.page3=§lName:§r "ERROR_OBSTRUCTED_CHANNEL" §lDescription:§r The particle has collided with a block inside the collider's channel. §lPotential fix:§r Make sure that the inside of your particle collider is free of any obstructions, except for particle diodes and core blocks. book.error.title4=Error 0x04 [EC] -book.error.page4=§lName:§r "ERROR_EXPECTED_COIL" §lDescription:§r The particle has passed a segment that lacks one or multiple coils. §lPotential fix:§r Remove the plating of the collider in the offending area and check if all the coils are there. This error will also happen at T-crossings that are built without diodes. +book.error.page4=§lName:§r "ERROR_EXPECTED_COIL" §lDescription:§r The particle has passed a segment that lacks one or multiple coils. §lPotential fix:§r Remove the plating of the collider in the offending area and check if all the coils are there. This error will also happen at T-crossings that are built without diodes. book.error.title5=Error 0x05 [MS] -book.error.page5=§lName:§r "ERROR_MALFORMED_SEGMENT" §lDescription:§r The particle has passed a segment that was built incorrectly (but neither obstructed nor missing coils). §lPotential fix:§r Make sure that the offending segment has platings in all the required spaces, leaving no coils exposed. +book.error.page5=§lName:§r "ERROR_MALFORMED_SEGMENT" §lDescription:§r The particle has passed a segment that was built incorrectly (but neither obstructed nor missing coils). §lPotential fix:§r Make sure that the offending segment has platings in all the required spaces, leaving no coils exposed. book.error.title6=Error 0x06 [ATL] -book.error.page6=§lName:§r "ERROR_ANALYSIS_TOO_LONG" §lDescription:§r The particle has passed more than the three required valid analysis chamber segments. §lPotential fix:§r Make sure that the analysis chamber is exactly 3 blocks long for circular accelerator and at least 2 blocks long for linear ones. Also check if the particle doesn't pass multiple analysis chambers in a branching and/or looped accelerator. +book.error.page6=§lName:§r "ERROR_ANALYSIS_TOO_LONG" §lDescription:§r The particle has passed more than the three required valid analysis chamber segments. §lPotential fix:§r Make sure that the analysis chamber is exactly 3 blocks long for circular accelerator and at least 2 blocks long for linear ones. Also check if the particle doesn't pass multiple analysis chambers in a branching and/or looped accelerator. book.error.title7=Error 0x07 [ATS] -book.error.page7=§lName:§r "ERROR_ANALYSIS_TOO_SHORT" §lDescription:§r The particle has left the analysis chamber, despite not meeting the length requirement. §lPotential fix:§r Make sure that the analysis chamber on your circular accelerator is exactly 3 blocks long. Valid analysis segments have no coils and the plating is entirely composed of analysis chamber walls/windows. Analysis chambers with coils in them count as regular segments. +book.error.page7=§lName:§r "ERROR_ANALYSIS_TOO_SHORT" §lDescription:§r The particle has left the analysis chamber, despite not meeting the length requirement. §lPotential fix:§r Make sure that the analysis chamber on your circular accelerator is exactly 3 blocks long. Valid analysis segments have no coils and the plating is entirely composed of analysis chamber walls/windows. Analysis chambers with coils in them count as regular segments. book.error.title8=Error 0x08 [DC] -book.error.page8=§lName:§r "ERROR_DIODE_COLLISION" §lDescription:§r The particle collided with a non-input side of a schottky particle diode. §lPotential fix:§r Check if your diodes are configured correctly. Particles can only enter the diode from sides with green inward-pointing arrows. +book.error.page8=§lName:§r "ERROR_DIODE_COLLISION" §lDescription:§r The particle collided with a non-input side of a schottky particle diode. §lPotential fix:§r Check if your diodes are configured correctly. Particles can only enter the diode from sides with green inward-pointing arrows. book.error.title9=Error 0x09 [BT] -book.error.page9=§lName:§r "ERROR_BRANCHING_TURN" §lDescription:§r The particle has reached a turn with multiple exits. §lPotential fix:§r If your turn is a normal one, check if all the required coils are present (i.e. no holes in the coil layer). If the turn is intended to be branched, it requires a schottky particle diode that is correctly configured. +book.error.page9=§lName:§r "ERROR_BRANCHING_TURN" §lDescription:§r The particle has reached a turn with multiple exits. §lPotential fix:§r If your turn is a normal one, check if all the required coils are present (i.e. no holes in the coil layer). If the turn is intended to be branched, it requires a schottky particle diode that is correctly configured. book.rbmk.cover=My first RBMK:$Basics of$building a$reactor book.rbmk.title1=Introduction -book.rbmk.page1=§lRBMK§r is fully modular nuclear reactor. Unlike most other reactors, there is no "core" and no size restrictions, rather behavior and efficiency of reactor depends on how it is built and how various parts interact with each other. +book.rbmk.page1=§lRBMK§r is fully modular nuclear reactor. Unlike most other reactors, there is no "core" and no size restrictions, rather behavior and efficiency of reactor depends on how it is built and how various parts interact with each other. book.rbmk.title2=Heat -book.rbmk.page2=As reactor runs, it will generate §lheat§r. Heat will spread between parts, slowly decreasing in the process. The goal is to generate as much heat as possible without melting the reactor, and to transfer heat into steam passages that cool reactor and produce steam. +book.rbmk.page2=As reactor runs, it will generate §lheat§r. Heat will spread between parts, slowly decreasing in the process. The goal is to generate as much heat as possible without melting the reactor, and to transfer heat into steam passages that cool reactor and produce steam. book.rbmk.title3=Fuel Rod -book.rbmk.page3=The §lfuel rod§r will capture neutron flux, causing fuel inside the rod to react, releasing neutrons in the process. Neutrons are released in all four main directions with a maximum range of 5 blocks. The amount of released neutrons depends on fuel used. +book.rbmk.page3=The §lfuel rod§r will capture neutron flux, causing fuel inside the rod to react, releasing neutrons in the process. Neutrons are released in all four main directions with a maximum range of 5 blocks. The amount of released neutrons depends on fuel used. book.rbmk.title4=Regulating Rod -book.rbmk.page4=The §lcontrol rod§r will reduce number of neutrons passing through. Fully inserted, it will block all neutrons; when inserted halfway, it will only block half. Control rods are used to regulate activity of the reactor and shut it down. +book.rbmk.page4=The §lcontrol rod§r will reduce number of neutrons passing through. Fully inserted, it will block all neutrons; when inserted halfway, it will only block half. Control rods are used to regulate activity of the reactor and shut it down. book.rbmk.title5=Regulating Rods - Usage book.rbmk.title5.scale=0.9 -book.rbmk.page5=The current bar insertion will be displayed in the center of GUI. The colored buttons on left will add the control bar to the color group, which is useful for quickly selecting grouped bars on §lRBMK§r console. The buttons on right allow you to manually insert in 25%% increments. +book.rbmk.page5=The current bar insertion will be displayed in the center of GUI. The colored buttons on left will add the control bar to the color group, which is useful for quickly selecting grouped bars on §lRBMK§r console. The buttons on right allow you to manually insert in 25%% increments. book.rbmk.title6=Automatic Control Rods -book.rbmk.page6=§LAutomatic control rods§r are almost identical to regular control rods, but they cannot be manually adjusted, instead they will adjust position of the rod based on current temperature. Which function to use and how deep to insert and at what temperature must be determined first. +book.rbmk.page6=§LAutomatic control rods§r are almost identical to regular control rods, but they cannot be manually adjusted, instead they will adjust position of the rod based on current temperature. Which function to use and how deep to insert and at what temperature must be determined first. book.rbmk.title7=Steam Channel -book.rbmk.page7=The §lsteam channel§r is only part that will actively reduce reactor heat level. If a component is above the boiling point of a given type of steam, it will try to consume as much water and produce as much steam as needed to cool below boiling point. +book.rbmk.page7=The §lsteam channel§r is only part that will actively reduce reactor heat level. If a component is above the boiling point of a given type of steam, it will try to consume as much water and produce as much steam as needed to cool below boiling point. book.rbmk.title8=Neutron Reflector -book.rbmk.page8=The §lneutron reflector§r will block passage of neutrons, instead neutrons will be reflected back onto the fuel rod they came from. This is useful for using neutrons that would otherwise be wasted simply by leaving reactor. +book.rbmk.page8=The §lneutron reflector§r will block passage of neutrons, instead neutrons will be reflected back onto the fuel rod they came from. This is useful for using neutrons that would otherwise be wasted simply by leaving reactor. book.rbmk.title9=Neutron Absorber -book.rbmk.page9=§lNeutron absorber§r simply blocks neutrons. The absorbed neutrons will not generate heat and will be effectively destroyed. This is useful for preventing fuel rods from reacting that would otherwise be within reach. +book.rbmk.page9=§lNeutron absorber§r simply blocks neutrons. The absorbed neutrons will not generate heat and will be effectively destroyed. This is useful for preventing fuel rods from reacting that would otherwise be within reach. book.rbmk.title10=Graphite Retarder -book.rbmk.page10=§lGraphite moderator§r converts fast neutrons passing through it into slow neutrons. Most fuels are split into fast neutrons, while slow neutrons are required for fission, so use of moderators is highly recommended. +book.rbmk.page10=§lGraphite moderator§r converts fast neutrons passing through it into slow neutrons. Most fuels are split into fast neutrons, while slow neutrons are required for fission, so use of moderators is highly recommended. book.rbmk.title11=Structural Column -book.rbmk.page11=§lStructural column§r does not affect neutrons in any way and has no special application. It is recommended to fill the reactor with structured pillars where there are no other parts, since the structured pillars are capable of transferring heat. +book.rbmk.page11=§lStructural column§r does not affect neutrons in any way and has no special application. It is recommended to fill the reactor with structured pillars where there are no other parts, since the structured pillars are capable of transferring heat. book.rbmk.title12=Console -book.rbmk.page12=§lRBMK console§r allows you to control the reactor from afar. Using the §ldevice to connect the console RBMK§r on the RBMK part and then on the console will connect the reactor and the console. The console can only control 15x15 parts, for large reactors you can use multiple consoles. +book.rbmk.page12=§lRBMK console§r allows you to control the reactor from afar. Using the §ldevice to connect the console RBMK§r on the RBMK part and then on the console will connect the reactor and the console. The console can only control 15x15 parts, for large reactors you can use multiple consoles. book.rbmk.title13=Using the console book.rbmk.page13=Clicking on parts will select and deselect them. With the colored buttons, you can quickly select all the control rods in that color group. Button "A" will select all control rods, "X" will deselect all. book.rbmk.page14=Entering a number between 0 and 100 in green box and then pressing button next to it will set all selected control rods to that position. Button "AZ-5" will lead to full insertion of all control rods. book.rbmk.title15=Fuel -book.rbmk.page15=The §lfuel§r response depends on many factors. The main ones are §lfortification§r, §lxenon poisoning§r and number of incoming §lneutrons§r. Xenon builds up when fuel is low in neutrons and burns out during normal operation. The efficiency of neutrons depends on the type, most fuels §lare best split by§r §lslow neutrons§r. +book.rbmk.page15=The §lfuel§r response depends on many factors. The main ones are §lfortification§r, §lxenon poisoning§r and number of incoming §lneutrons§r. Xenon builds up when fuel is low in neutrons and burns out during normal operation. The efficiency of neutrons depends on the type, most fuels §lare best split by§r §lslow neutrons§r. book.rbmk.title16=Melting -book.rbmk.page16=§4§lAVOID. +book.rbmk.page16=§4§lAVOID. book.starter.cover=An Industrialist's$Guide to Rebuilding$Society book.starter.title1=Introduction book.starter.page1=If you're reading this, it's highly likely that society, in one way or another, has collapsed entirely. Governments, countries, and authority are a concept of the past - along with all of the amenities of civilized life. As such, this guide will inform you how to change that by recreating the industry and technology of the past for the improvement of your own life. book.starter.title2=Coal & Mustard Gas -book.starter.page2=Whilst it is impossible to predict the actual state of the world in a post-apocalyptic time, it's not unlikely that war and industry in its current form may not have ended. To protect your own lungs, an effective and cheap way is to urinate on some §lcloth§r to make a §ltrench mask§r, to protect you from coal dust or mustard gas, if you ever encounter either. +book.starter.page2=Whilst it is impossible to predict the actual state of the world in a post-apocalyptic time, it's not unlikely that war and industry in its current form may not have ended. To protect your own lungs, an effective and cheap way is to urinate on some §lcloth§r to make a §ltrench mask§r, to protect you from coal dust or mustard gas, if you ever encounter either. book.starter.title3=Anvils & Presses -book.starter.page3=The quintessentials to beginning your industrial revitalization is an §lanvil§r and a §lburner press§r. The anvil will allow you to manually craft together early machinery such as the Assembler, whilst the burner press will let you make plates, wires, and circuits that you cannot hammer together with an anvil. +book.starter.page3=The quintessentials to beginning your industrial revitalization is an §lanvil§r and a §lburner press§r. The anvil will allow you to manually craft together early machinery such as the Assembler, whilst the burner press will let you make plates, wires, and circuits that you cannot hammer together with an anvil. book.starter.title4=Templates -book.starter.page4=In order to stamp metal into useful shapes, assemble machinery, and perform chemical reactions, you will need to create a §lMachine Template Folder§r to create the various stamps and templates shown to the right. +book.starter.page4=In order to stamp metal into useful shapes, assemble machinery, and perform chemical reactions, you will need to create a §lMachine Template Folder§r to create the various stamps and templates shown to the right. book.starter.title5=Scavenging book.starter.page5=Depending on how bad the initial apocalyptic event was to the preexisting structures of the world, there's a likely chance that many useful materials and machines can be salvaged from them directly. Metallic alloys like steel, parts like circuitry, and even fissile material from a nuclear power plant might be awaiting you. Beware certain ruins, however, as there may be an excess of danger lurking there like a snake in the grass; waiting to strike you down with radiation, traps, or indescribable horrors... book.starter.title6=Early Machinery -book.starter.page6a=Two of the first machines you should assemble are the §lBlast Furnace§r and the §lAssembly Machine§r. The former will allow you to create alloys such as §lsteel§r, §lminecraft-grade copper§r, and §ladvanced alloy§r; you will need to use these metals for the bodies of machines, the wiring of circuits, advanced electromagnets, and more. -book.starter.page6b=The assembler will be used to create practically every other machine described in this guide. You will need a power source, such as a §lCombustion§r §lGenerator§r or §lSolar Boiler§r. -book.starter.page7a=The §lShredder§r, along with a pair of shredder blades, will be very useful for doubling the output of most ores, via shredding into smeltable powders. These powders are also crucial to begin making circuitry for various machines, such as §lEnhanced§r and §lOverclocked§r circuits. -book.starter.page7b=Using your new machinery, you can create the §lChemical Plant§r, used for the synthesis of better circuits, concrete, the processing of petrochemicals, and more. +book.starter.page6a=Two of the first machines you should assemble are the §lBlast Furnace§r and the §lAssembly Machine§r. The former will allow you to create alloys such as §lsteel§r, §lminecraft-grade copper§r, and §ladvanced alloy§r; you will need to use these metals for the bodies of machines, the wiring of circuits, advanced electromagnets, and more. +book.starter.page6b=The assembler will be used to create practically every other machine described in this guide. You will need a power source, such as a §lCombustion§r §lGenerator§r or §lSolar Boiler§r. +book.starter.page7a=The §lShredder§r, along with a pair of shredder blades, will be very useful for doubling the output of most ores, via shredding into smeltable powders. These powders are also crucial to begin making circuitry for various machines, such as §lEnhanced§r and §lOverclocked§r circuits. +book.starter.page7b=Using your new machinery, you can create the §lChemical Plant§r, used for the synthesis of better circuits, concrete, the processing of petrochemicals, and more. book.starter.title8=Black Gold -book.starter.page8a=Using an §lOil §lReservoir§r §lDetector§r, you can find underground oil deposits to place a §lPumpjack§r or §lDerrick§r over via surveying an area. Remember that oil deposits will run out over time. -book.starter.page8b=Before the oil can be refined and separated into its constituent parts in an §lOil Refinery§r, you must heat the oil to 300°C in a §lBoiler§r. +book.starter.page8a=Using an §lOil §lReservoir§r §lDetector§r, you can find underground oil deposits to place a §lPumpjack§r or §lDerrick§r over via surveying an area. Remember that oil deposits will run out over time. +book.starter.page8b=Before the oil can be refined and separated into its constituent parts in an §lOil Refinery§r, you must heat the oil to 300°C in a §lBoiler§r. book.starter.title9=Petrochemicals -book.starter.page9=Using §lChemical Plants§r, §lFractioning§r §lTowers§r, and §lCatalytic Cracking§r §lTowers§r, you can transform the separated oil into a variety of useful products. For example: §lPolymer§r or §lBakelite§r, durable and flexible plastics; §lDesh§r, an extremely durable and heat-resistant rare earth metal alloy; §lSolid Fuel§r, which can be burnt for energy; or even §lLiquid Fuels§r, such as §lGasoline§r, §lDiesel§r, §lKerosene§r, and more. +book.starter.page9=Using §lChemical Plants§r, §lFractioning§r §lTowers§r, and §lCatalytic Cracking§r §lTowers§r, you can transform the separated oil into a variety of useful products. For example: §lPolymer§r or §lBakelite§r, durable and flexible plastics; §lDesh§r, an extremely durable and heat-resistant rare earth metal alloy; §lSolid Fuel§r, which can be burnt for energy; or even §lLiquid Fuels§r, such as §lGasoline§r, §lDiesel§r, §lKerosene§r, and more. book.starter.title10=Advanced Machinery -book.starter.page10=With oil processing under your belt, you can create the §lCentrifuge§r, which will triple ore outputs; the §lOre §lAcidizer§r, which will crystallize ores, increasing the yield; and the §lSILEX + §lFEL§r, two marvels of modern engineering which can separate the isotopes of materials with ease. You will require significantly more energy to power these; which can be obtained with sources such as a §lDiesel Generator§r, an §lIndustrial Generator§r, or even a nuclear reactor. +book.starter.page10=With oil processing under your belt, you can create the §lCentrifuge§r, which will triple ore outputs; the §lOre §lAcidizer§r, which will crystallize ores, increasing the yield; and the §lSILEX + §lFEL§r, two marvels of modern engineering which can separate the isotopes of materials with ease. You will require significantly more energy to power these; which can be obtained with sources such as a §lDiesel Generator§r, an §lIndustrial Generator§r, or even a nuclear reactor. book.starter.title11=Strata -book.starter.page11=Underneath the ground you walk, there is several naturally-occurring §lStrata§r, or special mineral layers and formations. §lSchist Strata§r are blue, lithium-containing layers filled with uranium, iron, copper, asbestos, and other ores for your own use. §lDepth Rock§r contains large quantities of rarer minerals, such as §lZirconium§r and §lBoron§r, but requires explosives to properly harvest. +book.starter.page11=Underneath the ground you walk, there is several naturally-occurring §lStrata§r, or special mineral layers and formations. §lSchist Strata§r are blue, lithium-containing layers filled with uranium, iron, copper, asbestos, and other ores for your own use. §lDepth Rock§r contains large quantities of rarer minerals, such as §lZirconium§r and §lBoron§r, but requires explosives to properly harvest. book.starter.title12=Radiation -book.starter.page12a=§oThe rest of this book will deal with matters that involve §oradiation. For the safety of you and others, I will give §oadvice on how to mitigate and deal with exposure to it. -book.starter.page12b=Enough exposure to radiation can and will cause bodily harm. The first step is prevention; be sure to limit your exposure, and wear protective gear, such as a §lHazmat Suit§r, or apply §lCladding§r to your clothing or armor; you can also take §lRad-X§r to limit your intake. Thanks to modern medicine, the second step can be removal if necessary; for example, a §lPlayer §lDecontaminator§r will slowly reduce the radiation absorbed by your body. §lRad-Away§r can also be used as a post-exposure prophylaxis, quickly and effectively reversing damage caused to your body by ionizing radiation. +book.starter.page12a=§oThe rest of this book will deal with matters that involve §oradiation. For the safety of you and others, I will give §oadvice on how to mitigate and deal with exposure to it. +book.starter.page12b=Enough exposure to radiation can and will cause bodily harm. The first step is prevention; be sure to limit your exposure, and wear protective gear, such as a §lHazmat Suit§r, or apply §lCladding§r to your clothing or armor; you can also take §lRad-X§r to limit your intake. Thanks to modern medicine, the second step can be removal if necessary; for example, a §lPlayer §lDecontaminator§r will slowly reduce the radiation absorbed by your body. §lRad-Away§r can also be used as a post-exposure prophylaxis, quickly and effectively reversing damage caused to your body by ionizing radiation. book.starter.title13=Uranium Enrichment -book.starter.page13=There are a few, easy options for fuels to use for a nuclear reactor; for instance, §lNatural Uranium§r or §lThorium Fuel§r. However, if you're looking for something more powerful, you can set up an enrichment cascade of two §lGas Centrifuges§r to produce §lUranium Fuel§r with leftover §lUranium-238§r. You will have to transmute the natural uranium into §lYellowcake§r, then §lUranium §lHexafluoride§r to do so. +book.starter.page13=There are a few, easy options for fuels to use for a nuclear reactor; for instance, §lNatural Uranium§r or §lThorium Fuel§r. However, if you're looking for something more powerful, you can set up an enrichment cascade of two §lGas Centrifuges§r to produce §lUranium Fuel§r with leftover §lUranium-238§r. You will have to transmute the natural uranium into §lYellowcake§r, then §lUranium §lHexafluoride§r to do so. book.starter.title14=The Chicago Pile -book.starter.page14=Alternatively, you can breed §lReactor-Grade Plutonium§r, a more powerful fuel, from Natural Uranium using the §lChicago Pile§r. By stacking graphite blocks and drilling into them, you can insert fuel rods to breed into plutonium and neutron source rods, such as §lRadium-Beryllium§r, to begin the reaction. Make sure to test your designs; spacing out or limiting the amount of blocks may be necessary to prevent overheating. +book.starter.page14=Alternatively, you can breed §lReactor-Grade Plutonium§r, a more powerful fuel, from Natural Uranium using the §lChicago Pile§r. By stacking graphite blocks and drilling into them, you can insert fuel rods to breed into plutonium and neutron source rods, such as §lRadium-Beryllium§r, to begin the reaction. Make sure to test your designs; spacing out or limiting the amount of blocks may be necessary to prevent overheating. book.starter.title15=ZIRNOX GCR -book.starter.page15=Finally, you can create your first §oreal§r source of energy: the §lZIRNOX§r Nuclear Reactor. Nuclear reactors require more setup then other power sources; first, you will want to have a good source of water, such as the §lHeavy §lInfinite Water Tank§r. To remove heat from the reactor core and boil the water into steam, you will need a sufficient amount of §lCarbon Dioxide§r. You want just enough pressure, but not §otoo§r much. You will also need three steam turbines to utilize the created steam to make energy; the §lSteam §lTurbine§r or §lIndustrial Steam §lTurbine§r will be optimal. Finally, a §lCondensor§r or §lAuxilary Cooling Tower§r is needed to condense the leftover steam into water, where it can be voided or recycled in a cooling loop. +book.starter.page15=Finally, you can create your first §oreal§r source of energy: the §lZIRNOX§r Nuclear Reactor. Nuclear reactors require more setup then other power sources; first, you will want to have a good source of water, such as the §lHeavy §lInfinite Water Tank§r. To remove heat from the reactor core and boil the water into steam, you will need a sufficient amount of §lCarbon Dioxide§r. You want just enough pressure, but not §otoo§r much. You will also need three steam turbines to utilize the created steam to make energy; the §lSteam §lTurbine§r or §lIndustrial Steam §lTurbine§r will be optimal. Finally, a §lCondensor§r or §lAuxilary Cooling Tower§r is needed to condense the leftover steam into water, where it can be voided or recycled in a cooling loop. book.starter.title16=Conclusion -book.starter.page16=If you've reached this far, you're on track to helping rebuild civilization. You've successfully recreated the advanced machinery of the pre-apocalypse - with nuclear power, petrochemicals, and more. I cannot know §ohow§r you will use these new-found advantages, but it's my personal hope you use them for the good of yourself and others - or at the very least, in self-defense. Au revoir! +book.starter.page16=If you've reached this far, you're on track to helping rebuild civilization. You've successfully recreated the advanced machinery of the pre-apocalypse - with nuclear power, petrochemicals, and more. I cannot know §ohow§r you will use these new-found advantages, but it's my personal hope you use them for the good of yourself and others - or at the very least, in self-defense. Au revoir! book.starter.title18=About the Author -book.starter.page18=vær is just a guy who has been trapped in the grey void featured in the Talking Head's §oOnce In A Lifetime§r for too long. He once found a studio door, but to his dismay found out it was a cardboard cut-out. +book.starter.page18=vær is just a guy who has been trapped in the grey void featured in the Talking Head's §oOnce In A Lifetime§r for too long. He once found a studio door, but to his dismay found out it was a cardboard cut-out. #book.rbmk.cover=HOW 2 RBMK:$The Basics$of Reactor$Construction #book.rbmk.title1=Introduction -#book.rbmk.page1=The §lRBMK§r is a fully modular nuclear reactor. Unlike most other reactors, there is no "core", and no size limitations, rather, the behavior and efficiency of the reactor comes from how it is built and how the different pieces interact with each other. +#book.rbmk.page1=The §lRBMK§r is a fully modular nuclear reactor. Unlike most other reactors, there is no "core", and no size limitations, rather, the behavior and efficiency of the reactor comes from how it is built and how the different pieces interact with each other. #book.rbmk.title2=Heat -#book.rbmk.page2=As the reactor operates, it will generate §lheat§r. Heat will spread between parts, slowly decreasing in the process. The goal is to produce as much heat as possible without melting the reactor, and to move that heat to a §lsteam channel§r which cools the reactor and produces steam. +#book.rbmk.page2=As the reactor operates, it will generate §lheat§r. Heat will spread between parts, slowly decreasing in the process. The goal is to produce as much heat as possible without melting the reactor, and to move that heat to a §lsteam channel§r which cools the reactor and produces steam. #book.rbmk.title3=Fuel Rod -#book.rbmk.page3=The §lfuel rod§r will capture neutron flux, causing the fuel inside the fuel rod to react, giving off neutrons in the process. Neutrons are released in all four cardinal directions with a maximum range of 5 blocks. The amount of neutrons released depends on the §lfuel§r used. +#book.rbmk.page3=The §lfuel rod§r will capture neutron flux, causing the fuel inside the fuel rod to react, giving off neutrons in the process. Neutrons are released in all four cardinal directions with a maximum range of 5 blocks. The amount of neutrons released depends on the §lfuel§r used. #book.rbmk.title4=Control Rod -#book.rbmk.page4=The §lcontrol rod§r will decrease the amount of neutrons passing though it. Fully inserted, it will block all neutrons, at half insertion, it will only block half. Control rods are used to regulate the reactor's activity and to turn it off. +#book.rbmk.page4=The §lcontrol rod§r will decrease the amount of neutrons passing though it. Fully inserted, it will block all neutrons, at half insertion, it will only block half. Control rods are used to regulate the reactor's activity and to turn it off. #book.rbmk.title5=Control Rod - Usage -#book.rbmk.page5=The center of the GUI will display the current rod insertion. The colored buttons on the left will add a control rod to a color group, which is useful to quickly select grouped rods from the §lRBMK console§r. The buttons on the right allow for manual insertion in increments of 25%%. +#book.rbmk.page5=The center of the GUI will display the current rod insertion. The colored buttons on the left will add a control rod to a color group, which is useful to quickly select grouped rods from the §lRBMK console§r. The buttons on the right allow for manual insertion in increments of 25%%. #book.rbmk.title6=Automatic Control Rod -#book.rbmk.page6=§lAutomatic control rods§r function nearly identical to regular control rods, but they cannot be configured manually, instead they will adjust the rod position based on the current temperature. What function to use and how deep to insert at what temperature has to be defined first. +#book.rbmk.page6=§lAutomatic control rods§r function nearly identical to regular control rods, but they cannot be configured manually, instead they will adjust the rod position based on the current temperature. What function to use and how deep to insert at what temperature has to be defined first. #book.rbmk.title7=Steam Channel -#book.rbmk.page7=The §lsteam channel§r is the only part that will actively reduce the reactor's heat level. If the component's temperature exceeds the boiling point of the set steam type, it will try to consume as much water and produce as much steam as needed to cool back below the boiling point. +#book.rbmk.page7=The §lsteam channel§r is the only part that will actively reduce the reactor's heat level. If the component's temperature exceeds the boiling point of the set steam type, it will try to consume as much water and produce as much steam as needed to cool back below the boiling point. #book.rbmk.title8=Neutron Reflector -#book.rbmk.page8=The §lneutron reflector§r will block neutrons from passing it, instead the neutrons will be reflected back at the fuel rod they came from. This is useful for utilizing neutrons that would otherwise be wasted by simply exiting the reactor. +#book.rbmk.page8=The §lneutron reflector§r will block neutrons from passing it, instead the neutrons will be reflected back at the fuel rod they came from. This is useful for utilizing neutrons that would otherwise be wasted by simply exiting the reactor. #book.rbmk.title9=Neutron Absorber -#book.rbmk.page9=The §lneutron absorber§r will simply block neutrons. Neutrons absorbed will not generate heat and be effectively voided. This is useful to prevent fuel rods from reacting that would otherwise be in range. +#book.rbmk.page9=The §lneutron absorber§r will simply block neutrons. Neutrons absorbed will not generate heat and be effectively voided. This is useful to prevent fuel rods from reacting that would otherwise be in range. #book.rbmk.title10=Graphite Moderator -#book.rbmk.page10=The §lgraphite moderator§r will convert fast neutrons passing through it into slow neutrons. Most fuels fission into fast neutrons while needing slow neutrons to split, so using moderators is strongly recommended. +#book.rbmk.page10=The §lgraphite moderator§r will convert fast neutrons passing through it into slow neutrons. Most fuels fission into fast neutrons while needing slow neutrons to split, so using moderators is strongly recommended. #book.rbmk.title11=Structural Column -#book.rbmk.page11=The §lstructural column§r will not interfere with neutrons, nor does it have special uses. It is recommended to fill the reactor with structural columns where no other parts will be, because structural columns are capable of transporting heat. +#book.rbmk.page11=The §lstructural column§r will not interfere with neutrons, nor does it have special uses. It is recommended to fill the reactor with structural columns where no other parts will be, because structural columns are capable of transporting heat. #book.rbmk.title12=Console -#book.rbmk.page12=The §lRBMK console§r lets you control the reactor from afar. Using the §lRBMK§r §lconsole linking device§r on an RBMK part and then the console will link the reactor to the console. The console can only manage 15x15 parts, for larger reactors you might want to use multiple consoles. +#book.rbmk.page12=The §lRBMK console§r lets you control the reactor from afar. Using the §lRBMK§r §lconsole linking device§r on an RBMK part and then the console will link the reactor to the console. The console can only manage 15x15 parts, for larger reactors you might want to use multiple consoles. #book.rbmk.title13=Console Usage #book.rbmk.page13=Clicking on the parts will select and deselect them. Using the colored buttons, you can quickly select all control rods of that color group. Button 'A' will select all control rods, 'X' will deselect all. #book.rbmk.page14=Entering a number 0-100 in the green box and then hitting the button next to it will set all selected control rods to this position. Button 'AZ-5' will cause all control rods to fully insert. #book.rbmk.title15=Fuel -#book.rbmk.page15=The §lfuel§r's reactivity is based on multiple factors. The main ones are the §lenrichment§r, §lxenon poison§r and the amount of incoming §lneutrons§r. Xenon builds up when the fuel receives few neutrons and burns away during normal operation. The effectivity of neutrons depends on the type, most fuels §lsplit best with slow neutrons§r. +#book.rbmk.page15=The §lfuel§r's reactivity is based on multiple factors. The main ones are the §lenrichment§r, §lxenon poison§r and the amount of incoming §lneutrons§r. Xenon builds up when the fuel receives few neutrons and burns away during normal operation. The effectivity of neutrons depends on the type, most fuels §lsplit best with slow neutrons§r. #book.rbmk.title16=Meltdown -#book.rbmk.page16=§4§lAvoid. +#book.rbmk.page16=§4§lAvoid. book_lore.author=By %s book_lore.test.name=Test @@ -399,10 +401,10 @@ cannery.crucible.0=The crucible is used to smelt ores, ingots or other metallic cannery.crucible.1=It requires an external heat source connected to the bottom, like a firebox. cannery.crucible.2=Once heated up, the crucible can be used in two ways, with or without a recipe template. cannery.crucible.3=The crucible has two storage buffers for material: -cannery.crucible.4=The buffer to the left is for §abyproducts§r, all material smelted without a recipe template will land here. +cannery.crucible.4=The buffer to the left is for §abyproducts§r, all material smelted without a recipe template will land here. cannery.crucible.5=If a recipe is installed, materials that do not match the recipe will also be stored here. cannery.crucible.6=Materials in this buffer will not react with each other, they can only be output from the green outlet for casting. -cannery.crucible.7=The buffer to the right is for §crecipes§r, if a recipe is installed and that particular material is relevant to that recipe, it will land here. +cannery.crucible.7=The buffer to the right is for §crecipes§r, if a recipe is installed and that particular material is relevant to that recipe, it will land here. cannery.crucible.8=The materials will slowly combine into the output material which is automatically output from the red outlet. cannery.crucible.9=Note that only this buffer handles recipes. If a template is installed retroactively, materials in the byproduct buffer will not combine, nor transfer to the recipe buffer. cannery.crucible.10=The outlet will output material automatically, if the target is valid, for example a foundry channel or a mold. @@ -553,7 +555,6 @@ chem.VIT_LIQUID=Liquid Nuclear Waste Vitrification chem.XENON=Linde Xenon Cycle chem.XENON_OXY=Boosted Linde Xenon Cycle chem.YELLOWCAKE=Yellowcake Production -chem.LAMINATE=Reinforced Glass Lamination container.amsBase=AMS Base (Deco) container.amsEmitter=AMS Emitter (Deco) @@ -649,7 +650,7 @@ container.nukeFurnace=Nuclear Powered Furnace container.nukeGadget=The Gadget container.nukeMan=Fat Man container.nukeMike=Ivy Mike -container.nukeN2=N² Mine +container.nukeN2=N² Mine container.nukeN45=N45 Naval Mine container.nukePrototype=The Prototype container.nukeSolinium=The Blue Rinse @@ -691,6 +692,7 @@ container.soyuzLauncher=Soyuz Launch Platform container.storageDrum=Nuclear Waste Disposal Drum container.teleLinker=TelLink Device container.teleporter=Teleporter +container.trainTram=Electric Flat Bed Tram container.turbinegas=Combined Cycle Gas Turbine container.turretArty=Greg container.turretChekhov=Chekhov's Gun @@ -780,35 +782,35 @@ death.attack.tau=%1$s was riddeled by %2$s using negatively charged tauons. death.attack.tauBlast=%1$s charged the XVL1456 for too long and was blown into pieces. death.attack.teleporter=%1$s was teleported into nothingness. -desc.gui.assembler.warning=§cError:§r This machine requires an assembly template! -desc.gui.chemplant.warning=§cError:§r This machine requires an chemistry template! -desc.gui.gasCent.enrichment=§2Enrichment§r$Uranium enrichment requires cascades.$Two-centrifuge cascades will give$uranium fuel, four-centrifuge cascades$will give total separation. -desc.gui.gasCent.output=§6Fluid Transfer§r$Fluid can be transferred to another centrifuge$via the output port for further processing. -desc.gui.nukeBoy.desc=§1Requires:§r$ * Neutron Shielding$ * U235 Projectile$ * Subcritical U235 Target$ * Propellant$ * Bomb Igniter -desc.gui.nukeGadget.desc=§1Requires:§r$ * 4 Arrays of First-Generation$ High-Explosive Lenses$ * Heavy Plutonium Core$ * Wiring -desc.gui.nukeMan.desc=§1Requires:§r$ * 4 Arrays of First-Generation$ High-Explosive Lenses$ * Plutonium Core$ * Bomb Firing Unit -desc.gui.nukeMike.desc=§1Requires:§r$ * 4 Arrays of High-Explosive Lenses$ * Plutonium Core$ * Deuterium Cooling Unit$ * Uranium Coated Deuterium Tank$ * Deuterium Tank -desc.gui.nukeTsar.desc=§1Requires:§r$ * 4 Arrays of High-Explosive Lenses$ * Plutonium Core$§9Optional:§r$ * Tsar Bomba Core -desc.gui.radiolysis.desc=§9Description§r$This RTG is more efficient then others, and$comes equipped with a radiolysis chamber for$cracking and sterilization. +desc.gui.assembler.warning=§cError:§r This machine requires an assembly template! +desc.gui.chemplant.warning=§cError:§r This machine requires an chemistry template! +desc.gui.gasCent.enrichment=§2Enrichment§r$Uranium enrichment requires cascades.$Two-centrifuge cascades will give$uranium fuel, four-centrifuge cascades$will give total separation. +desc.gui.gasCent.output=§6Fluid Transfer§r$Fluid can be transferred to another centrifuge$via the output port for further processing. +desc.gui.nukeBoy.desc=§1Requires:§r$ * Neutron Shielding$ * U235 Projectile$ * Subcritical U235 Target$ * Propellant$ * Bomb Igniter +desc.gui.nukeGadget.desc=§1Requires:§r$ * 4 Arrays of First-Generation$ High-Explosive Lenses$ * Heavy Plutonium Core$ * Wiring +desc.gui.nukeMan.desc=§1Requires:§r$ * 4 Arrays of First-Generation$ High-Explosive Lenses$ * Plutonium Core$ * Bomb Firing Unit +desc.gui.nukeMike.desc=§1Requires:§r$ * 4 Arrays of High-Explosive Lenses$ * Plutonium Core$ * Deuterium Cooling Unit$ * Uranium Coated Deuterium Tank$ * Deuterium Tank +desc.gui.nukeTsar.desc=§1Requires:§r$ * 4 Arrays of High-Explosive Lenses$ * Plutonium Core$§9Optional:§r$ * Tsar Bomba Core +desc.gui.radiolysis.desc=§9Description§r$This RTG is more efficient then others, and$comes equipped with a radiolysis chamber for$cracking and sterilization. desc.gui.rtgBFurnace.desc=Requires at least 15 heat to process$The more heat on top of that, the faster it runs$Heat going over maximum speed will have no effect$Short-lived pellets may decay -desc.gui.rtg.heat=§eCurrent heat level: %s +desc.gui.rtg.heat=§eCurrent heat level: %s desc.gui.rtg.pellets=Accepted Pellets: desc.gui.rtg.pelletHeat=%s (%s heat) desc.gui.rtg.pelletPower=%s (%s HE/tick) -desc.gui.template=§9Templates§r$Templates can be made by$using the Machine Template Folder. -desc.gui.turbinegas.automode=§2Automatic Turbine Throttling Mode§r$By clicking the "AUTO" button, the turbine$will automatically adjust the power production$based on the power required from the network -desc.gui.turbinegas.fuels=§6Accepted fuels:§r -desc.gui.turbinegas.warning=§cFuel or lubricant level low!§r -desc.gui.upgrade=§lAcceptable Upgrades:§r -desc.gui.upgrade.afterburner= * §dAfterburner§r: Stacks to level 3 -desc.gui.upgrade.effectiveness= * §aEffectiveness§r: Stacks to level 3 -desc.gui.upgrade.overdrive= * §7Overdrive§r: Stacks to level 3 -desc.gui.upgrade.power= * §1Power-Saving§r: Stacks to level 3 -desc.gui.upgrade.speed= * §4Speed§r: Stacks to level 3 -desc.gui.zirnox.coolant=§3Coolant§r$CO2 transfers heat from the core to the water.$This will boil it into super dense steam.$The efficiency of cooling and steam production$is based on pressure. -desc.gui.zirnox.pressure=§6Pressure§r$Pressure can be reduced by venting CO2.$However, too low a pressure, and cooling$efficiency and steam production will be reduced.$Look out for meltdowns! -desc.gui.zirnox.warning1=§cError:§r Water is required for$the reactor to function properly! -desc.gui.zirnox.warning2=§cError:§r CO2 is required for$the reactor to function properly! +desc.gui.template=§9Templates§r$Templates can be made by$using the Machine Template Folder. +desc.gui.turbinegas.automode=§2Automatic Turbine Throttling Mode§r$By clicking the "AUTO" button, the turbine$will automatically adjust the power production$based on the power required from the network +desc.gui.turbinegas.fuels=§6Accepted fuels:§r +desc.gui.turbinegas.warning=§cFuel or lubricant level low!§r +desc.gui.upgrade=§lAcceptable Upgrades:§r +desc.gui.upgrade.afterburner= * §dAfterburner§r: Stacks to level 3 +desc.gui.upgrade.effectiveness= * §aEffectiveness§r: Stacks to level 3 +desc.gui.upgrade.overdrive= * §7Overdrive§r: Stacks to level 3 +desc.gui.upgrade.power= * §1Power-Saving§r: Stacks to level 3 +desc.gui.upgrade.speed= * §4Speed§r: Stacks to level 3 +desc.gui.zirnox.coolant=§3Coolant§r$CO2 transfers heat from the core to the water.$This will boil it into super dense steam.$The efficiency of cooling and steam production$is based on pressure. +desc.gui.zirnox.pressure=§6Pressure§r$Pressure can be reduced by venting CO2.$However, too low a pressure, and cooling$efficiency and steam production will be reduced.$Look out for meltdowns! +desc.gui.zirnox.warning1=§cError:§r Water is required for$the reactor to function properly! +desc.gui.zirnox.warning2=§cError:§r CO2 is required for$the reactor to function properly! desc.item.ammo.con_accuracy2=- Highly decreased accuracy desc.item.ammo.con_damage=- Highly decreased damage desc.item.ammo.con_heavy_wear=- Highly increased wear @@ -916,7 +918,7 @@ desc.item.kitArmor=Armor will be displaced by new set. desc.item.kitHaz=Armor will be displaced by hazmat suit. desc.item.kitPack=What a bargain! desc.item.kitPool=Please empty inventory before opening! -desc.item.pileRod=§eUse on drilled graphite to insert$§eUse screwdriver to extract$ +desc.item.pileRod=§eUse on drilled graphite to insert$§eUse screwdriver to extract$ desc.item.rtgDecay=Decays to: %s desc.item.rtgHeat=Power Level: %s desc.item.storage.capacity=Capacity %s%%s @@ -924,19 +926,19 @@ desc.item.storage.proscons=to view pros cons list desc.misc.357=.357 Magnum desc.misc.556=.223 Remington desc.misc.762=.308 Winchester -desc.misc.func=§n-- Function -- +desc.misc.func=§n-- Function -- desc.misc.lanthanum="Lanthanum" -desc.misc.lctrl=§8Hold <§e§oLCTRL§8§o> %s -desc.misc.lore=§n-- Lore -- -desc.misc.lshift=§8Hold <§e§oLSHIFT§8§o> %s -desc.misc.luna=§o20x155mm Lunatic -desc.misc.meltPoint=Melting point: §c%s +desc.misc.lctrl=§8Hold <§e§oLCTRL§8§o> %s +desc.misc.lore=§n-- Lore -- +desc.misc.lshift=§8Hold <§e§oLSHIFT§8§o> %s +desc.misc.luna=§o20x155mm Lunatic +desc.misc.meltPoint=Melting point: §c%s desc.misc.noPos=No position set! desc.misc.pos=Set pos to: %s, %s, %s desc.misc.posSet=Position set! desc.item.wasteCooling=Cool in a Spent Fuel Pool Drum -desc.item.zirnoxBreedingRod=§2[ZIRNOX Breeding Rod]$§ePlace next to fuel rods to breed$§eLasts %d ticks -desc.item.zirnoxRod=§a[ZIRNOX Fuel Rod]$§eGenerates %1$d heat per tick$§eLasts %2$d ticks +desc.item.zirnoxBreedingRod=§2[ZIRNOX Breeding Rod]$§ePlace next to fuel rods to breed$§eLasts %d ticks +desc.item.zirnoxRod=§a[ZIRNOX Fuel Rod]$§eGenerates %1$d heat per tick$§eLasts %2$d ticks digamma.playerDigamma=Digamma exposure: digamma.playerHealth=Digamma influence: @@ -1060,15 +1062,15 @@ gun.name.ifPit=IF-18 Horseshoe Bottomless Pit gun.name.ifScope=IF-18 Horseshoe Scoped gun.name.ifStorm=IF-18 Horseshoe Silver Storm gun.name.ifVanity=IF-18 Horseshoe Vanity -gun.name.karl=M1 Karl-Gerät +gun.name.karl=M1 Karl-Gerät gun.name.ks23=KS-23 gun.name.lacunae=Auntie Lacunae gun.name.lasetDet=Hopeville Laser Detonator gun.name.lunaAR=1986 Bishamonten type Assault Rifle -gun.name.lunaGun=1978 RÄ�hula type Standard Issue Sidearm (Revision 2) +gun.name.lunaGun=1978 Rāhula type Standard Issue Sidearm (Revision 2) gun.name.lunaHLR=1944 Chang'e type Light Machine Gun gun.name.lunaShotty=1978 Guan Yu type Scattergun (Revision 1) -gun.name.lunaSMG=1956 Ä€nanda type Submachine Gun +gun.name.lunaSMG=1956 Ānanda type Submachine Gun gun.name.lunaSniper=1915 Hou Yi type Anti-Material Rifle gun.name.lunaTWR=Time Warp Rifle gun.name.m2=Browning machine gun, cal. .50, M2, HB @@ -1081,7 +1083,7 @@ gun.name.mg3=Universal-Maschinengewehr Modell 3 gun.name.mp40=Maschinenpistole 40 gun.name.nerf=NERF blaster of unknown design gun.name.osipr=Overwatch Standard Issue Pulse Rifle -gun.name.panz=Raketenpanzerbüchse 54 +gun.name.panz=Raketenpanzerbüchse 54 gun.name.quadro=OpenQuadro Guided Man-Portable Missile Launcher gun.name.remington870=Remington 870 gun.name.revolverCursed=Britannia Standard Issue Motorized Handgun @@ -1124,11 +1126,11 @@ hadron.error_analysis_too_long=Error 0x06 [ATL] hadron.error_analysis_too_short=Error 0x07 [ATS] hadron.error_diode_collision=Error 0x08 [DC] hadron.error_branching_turn=Error 0x09 [BT] -hadron.hopper0=§eNormal Mode:$All items will be used. -hadron.hopper1=§eHopper Mode:$One item will always remain. +hadron.hopper0=§eNormal Mode:$All items will be used. +hadron.hopper1=§eHopper Mode:$One item will always remain. hadron.idle=Idle -hadron.modeCircular=§eCircular Accelerator Mode:$Magnets must loop back into core.$Unlocks more recipes. -hadron.modeLine=§eLinear Accelerator Mode:$Accelerator ends with analysis chamber.$Fewer Recipes. +hadron.modeCircular=§eCircular Accelerator Mode:$Magnets must loop back into core.$Unlocks more recipes. +hadron.modeLine=§eLinear Accelerator Mode:$Accelerator ends with analysis chamber.$Fewer Recipes. hadron.noresult=No Result. hadron.noresult_too_slow=Insuff. momentum! hadron.noresult_wrong_ingredient=Invalid recipe! @@ -1197,6 +1199,7 @@ hbmfluid.egg=Dissolved Egg hbmfluid.estradiol=Estradiol Solution hbmfluid.ethanol=Ethanol hbmfluid.enderjuice=Ender Juice +hbmfluid.fishoil=Fish Oil hbmfluid.fracksol=Fracking Solution hbmfluid.gas=Natural Gas hbmfluid.gas_coker=Coker Gas @@ -1228,8 +1231,9 @@ hbmfluid.mustardgas=Mustard Gas hbmfluid.naphtha=Naphtha hbmfluid.naphtha_coker=Coker Naphtha hbmfluid.naphtha_crack=Cracked Naphtha -hbmfluid.nitan=NITAN© 100 Octane Super Fuel +hbmfluid.nitan=NITAN© 100 Octane Super Fuel hbmfluid.nitric_acid=Nitric Acid +hbmfluid.nitroglycerin=Nitroglycerin hbmfluid.none=None hbmfluid.oil=Crude Oil hbmfluid.oil_coker=Coker Oil @@ -1249,6 +1253,7 @@ hbmfluid.plasma_xm=Xenon-Mercury Plasma hbmfluid.puf6=Plutonium Hexafluoride hbmfluid.radiosolvent=High-Performance Solvent hbmfluid.reclaimed=Reclaimed Industrial Oil +hbmfluid.redmud=Red Mud hbmfluid.reformate=Reformate hbmfluid.reformgas=Reformate Gas hbmfluid.salient=Salient Green @@ -1261,6 +1266,7 @@ hbmfluid.sourgas=Sour Gas hbmfluid.spentsteam=Low-Pressure Steam hbmfluid.steam=Steam hbmfluid.sulfuric_acid=Sulfuric Acid +hbmfluid.sunfloweroil=Sunflower Seed Oil hbmfluid.superhotsteam=Super Dense Steam hbmfluid.syngas=Syngas hbmfluid.tritium=Tritium @@ -1546,7 +1552,7 @@ item.ammo_grenade_finned.name=40mm Grenade (Finned) item.ammo_grenade_he.name=40mm Grenade (HE) item.ammo_grenade_incendiary.name=40mm Grenade (Incendiary) item.ammo_grenade_kampf.name=40mm Rocket -item.ammo_grenade_nuclear.name=40mm Grenade (Привет) +item.ammo_grenade_nuclear.name=40mm Grenade (Привет) item.ammo_grenade_phosphorus.name=40mm Grenade (WP) item.ammo_grenade_sleek.name=40mm Grenade (IF-R&D) item.ammo_grenade_toxic.name=40mm Grenade (Chemical) @@ -1580,7 +1586,7 @@ item.ammo_rocket_emp.name=84mm Rocket (Pulse) item.ammo_rocket_glare.name=84mm Rocket (Red Glare) item.ammo_rocket_he.name=84mm Rocket (HE) item.ammo_rocket_incendiary.name=84mm Rocket (Incendiary) -item.ammo_rocket_nuclear.name=84mm Rocket (Привет) +item.ammo_rocket_nuclear.name=84mm Rocket (Привет) item.ammo_rocket_phosphorus.name=84mm Rocket (WP) item.ammo_rocket_rpc.name=84mm Rocket Propelled Chainsaw item.ammo_rocket_shrapnel.name=84mm Rocket (Shrapnel) @@ -1594,7 +1600,7 @@ item.ammo_shell_w9.name=240mm W9 Nuclear Shell item.ammo_stinger_rocket.name=Stinger Rocket item.ammo_stinger_rocket_he.name=Stinger Rocket (HE) item.ammo_stinger_rocket_incendiary.name=Stinger Rocket (Incendiary) -item.ammo_stinger_rocket_nuclear.name=Stinger Rocket (Привет) +item.ammo_stinger_rocket_nuclear.name=Stinger Rocket (Привет) item.ammo_stinger_rocket_bones.name=Stinger Rocket (Bone-Seeking) item.ams_catalyst_aluminium.name=Aluminium Reaction Catalyst item.ams_catalyst_beryllium.name=Beryllium Reaction Catalyst @@ -1633,7 +1639,7 @@ item.apple_schrabidium.name=Schrabidium Apple item.arc_electrode.name=Graphite Electrode item.arc_electrode_burnt.name=Molten Electrode item.arc_electrode_desh.name=Desh Electrode -item.armor_polish.name=ShiningArmorâ„¢ Armor Polish +item.armor_polish.name=ShiningArmor™ Armor Polish item.asbestos_boots.name=Fire Proximity Boots item.asbestos_cloth.name=Fire Proximity Cloth item.asbestos_helmet.name=Fire Proximity Helmet @@ -1854,7 +1860,7 @@ item.can_mug.name=MUG Root Beer item.can_overcharge.name=Overcharge Delirium XT item.can_redbomb.name='Red Bomb' Energy Drink item.can_smart.name='Smart' Energy Drink -item.canister_NITAN.name=NITAN© 100 Octane Super Fuel (LEGACY) +item.canister_NITAN.name=NITAN© 100 Octane Super Fuel (LEGACY) item.canister_biofuel.name=Biofuel Canister (LEGACY) item.canister_bitumen.name=Bitumen Canister (LEGACY) item.canister_canola.name=Engine Lubricant (LEGACY) @@ -1898,7 +1904,7 @@ item.canned_fried.name=Canned Fried Chicken item.canned_fried.desc=Even the can is deep fried! item.canned_hotdogs.name=Canned Hotdogs item.canned_hotdogs.desc=Not to be confused with cool cats. -item.canned_jizz.name=FlimFlam Industries Canned Stallion Milkâ„¢ +item.canned_jizz.name=FlimFlam Industries Canned Stallion Milk™ item.canned_jizz.desc=Wait wh- item.canned_kerosene.name=Canned Kerosene item.canned_kerosene.desc=Just imagine a witty line here. @@ -1912,14 +1918,14 @@ item.canned_napalm.name=Canned Napalm item.canned_napalm.desc=I love the smell of old memes in the morning! item.canned_oil.name=Canned Engine Oil item.canned_oil.desc=It makes motors go, so why not humans? -item.canned_pashtet.name=Паштет -item.canned_pashtet.desc=уÑ�луги перевода недоÑ�тупны! +item.canned_pashtet.name=Паштет +item.canned_pashtet.desc=услуги перевода недоступны! item.canned_pizza.name=Canned Pepperoni Pizza item.canned_pizza.desc=A crime against humanity. item.canned_recursion.name=Canned Recursion item.canned_recursion.desc=Canned Recursion item.canned_spam.name=Canned Spam -item.canned_spam.desc=The three-and-a-half-minute sketch is set in the fictional Green Midget Cafe in Bromley.$An argument develops between the waitress, who recites a menu in which nearly$every dish contains Spam, and Mrs. Bun, who does not like Spam. She asks for a$dish without Spam, much to the amazement of her Spam-loving husband. The waitress$responds to this request with disgust. Mr. Bun offers to take her Spam instead,$and asks for a dish containing a lot of Spam and baked beans. The waitress says$no since they are out of baked beans; when Mr. Bun asks for a substitution of Spam,$the waitress again responds with disgust. At several points, a group of Vikings in$the restaurant interrupts conversation by loudly singing about Spam.$The irate waitress orders them to shut up, but they resume singing more loudly.$A Hungarian tourist comes to the counter, trying to order by using a wholly$inaccurate Hungarian/English phrasebook (a reference to a previous sketch).$He is rapidly escorted away by a police constable. The sketch abruptly cuts to a$historian in a television studio talking about the origin of the Vikings in the café.$As he goes on, he begins to increasingly insert the word \"Spam\" into every$sentence, and the backdrop is raised to reveal the restaurant set behind.$The historian joins the Vikings in their song, and Mr. and Mrs. Bun are lifted by$wires out of the scene while the singing continues. In the original televised performance,$the closing credits begin to scroll with the singing still audible in the background. +item.canned_spam.desc=The three-and-a-half-minute sketch is set in the fictional Green Midget Cafe in Bromley.$An argument develops between the waitress, who recites a menu in which nearly$every dish contains Spam, and Mrs. Bun, who does not like Spam. She asks for a$dish without Spam, much to the amazement of her Spam-loving husband. The waitress$responds to this request with disgust. Mr. Bun offers to take her Spam instead,$and asks for a dish containing a lot of Spam and baked beans. The waitress says$no since they are out of baked beans; when Mr. Bun asks for a substitution of Spam,$the waitress again responds with disgust. At several points, a group of Vikings in$the restaurant interrupts conversation by loudly singing about Spam.$The irate waitress orders them to shut up, but they resume singing more loudly.$A Hungarian tourist comes to the counter, trying to order by using a wholly$inaccurate Hungarian/English phrasebook (a reference to a previous sketch).$He is rapidly escorted away by a police constable. The sketch abruptly cuts to a$historian in a television studio talking about the origin of the Vikings in the café.$As he goes on, he begins to increasingly insert the word \"Spam\" into every$sentence, and the backdrop is raised to reveal the restaurant set behind.$The historian joins the Vikings in their song, and Mr. and Mrs. Bun are lifted by$wires out of the scene while the singing continues. In the original televised performance,$the closing credits begin to scroll with the singing still audible in the background. item.canned_stew.name=Canned "Mushroom Stew" item.canned_stew.desc=... item.canned_tomato.name=Canned Tomato Soup @@ -2456,9 +2462,9 @@ item.grenade_tau.name=Tau Grenade item.grenade_zomg.name=Negative Energy Pair Annihilation Grenade item.gun_ar15.name=Josh item.gun_avenger.name=CZ57 Avenger Minigun -item.gun_b92.name=§9B92 Energy Pistol§r -item.gun_b92_ammo.name=§9B92 Energy Cell§r -item.gun_b93.name=§cB93 Energy Mod§r +item.gun_b92.name=§9B92 Energy Pistol§r +item.gun_b92_ammo.name=§9B92 Energy Cell§r +item.gun_b93.name=§cB93 Energy Mod§r item.gun_bf.name=BEL item.gun_bf_ammo.name=Balefire Shell item.gun_bio_revolver.name=Atlas @@ -2508,7 +2514,7 @@ item.gun_lever_action.name=Mare's Leg (Original) item.gun_lever_action_ammo.name=12x74 Buckshot (LEGACY) item.gun_lever_action_dark.name=Mare's Leg (Dark) item.gun_lever_action_sonata.name=Flipped Mare's Leg -item.gun_lever_action_sonata_2.name=§cSonata's Microphone§r +item.gun_lever_action_sonata_2.name=§cSonata's Microphone§r item.gun_lunatic_marksman.name=Lunatic Sniper Rifle item.gun_m2.name=Ma Deuce item.gun_minigun.name=CZ53 Personal Minigun @@ -2526,7 +2532,7 @@ item.gun_osipr_ammo2.name=Combine Ball item.gun_panzerschreck.name=Panzerschreck item.gun_proto.name=M42 Nuclear Catapult "Proto MIRV" item.gun_quadro.name=Quattro Formaggi -item.gun_remington.name=ãƒ�イデン ブラスト [BIDEN BLAST] +item.gun_remington.name=バイデン ブラスト [BIDEN BLAST] item.gun_revolver.name=Enhanced Revolver item.gun_revolver_ammo.name=Lead Bullet item.gun_revolver_blackjack.name=Blackjack Five-Shooter @@ -2638,7 +2644,7 @@ item.ingot_am242.name=Americium-242 Ingot item.ingot_americium_fuel.name=Ingot of Americium Fuel item.ingot_arsenic.name=Arsenic Ingot item.ingot_asbestos.name=Asbestos Sheet -item.ingot_asbestos.desc=§o"Filled with life, self-doubt and asbestos. That comes with the air."§r +item.ingot_asbestos.desc=§o"Filled with life, self-doubt and asbestos. That comes with the air."§r item.ingot_au198.name=Gold-198 Ingot item.ingot_australium.name=Australium Ingot item.ingot_bakelite.name=Bakelite Bar @@ -2714,7 +2720,7 @@ item.ingot_semtex.name=Bar of Semtex item.ingot_smore.name=S'more Ingot item.ingot_solinium.name=Solinium Ingot item.ingot_sr90.name=Strontium-90 Ingot -item.ingot_starmetal.name=§9Starmetal Ingot§r +item.ingot_starmetal.name=§9Starmetal Ingot§r item.ingot_steel.name=Steel Ingot item.ingot_steel_dusted.name=Dusted Steel Ingot item.ingot_tantalium.name=Tantalium Ingot @@ -2738,7 +2744,7 @@ item.ingot_weidanium.name=Weidanium Ingot item.ingot_zirconium.name=Zirconium Cube item.injector_5htp.name=5-HTP Autoinjector item.injector_knife.name=8 Inch Blade Autoinjector -item.ink.name=æž— Ink +item.ink.name=林 Ink item.insert_doxium.name=Astolfium-Doped Doxium Insert item.insert_du.name=DU Insert item.insert_era.name=Explosive Reactive Armor Insert @@ -2769,7 +2775,7 @@ item.key_fake.name=Counterfeit Key item.key_kit.name=Key Imitation Kit item.key_red.name=Red Key item.key_red.desc=Explore the other side. -item.key_red.desc.P11=§4e§r +item.key_red.desc.P11=§4e§r item.kit_toolbox.name=Toolbox item.kit_toolbox_empty.name=Empty Toolbox item.laser_crystal_bismuth.desc=Bismuth-Samarium-Uranium-Thorium crystal matrix @@ -2795,7 +2801,7 @@ item.liquidator_plate.name=Liquidator Suit Chestplate item.lithium.name=Lithium Cube item.lodestone.name=Lodestone item.loop_stew.name=IT Breakfast -item.loops.name=Lööps +item.loops.name=Lööps item.loot_10.name=Size 10 Missile Loot Crate item.loot_15.name=Size 15 Missile Loot Crate item.loot_misc.name=General Missile Loot Crate @@ -2826,7 +2832,7 @@ item.med_ptsd.name=PTSD Medication item.med_schiziphrenia.name=Schizophrenia Medication item.medal_liquidator.name=Liquidator Medal item.meltdown_tool.name=Dyatlov Instant Meltdown Applicator -item.memespoon.name=§eMarket Gardener +item.memespoon.name=§eMarket Gardener item.memory.name=item.null.name item.mese_gavel.name=Mese Gavel item.mese_pickaxe.name=Mese Pickaxe @@ -2893,7 +2899,7 @@ item.missile_skin_orange_insulation.desc=Not an orange juice bottle;$do not atte item.missile_skin_sleek.name=Missile Skin: IF-R&D item.missile_skin_sleek.desc=Chevrons are cool! item.missile_skin_soviet_glory.name=Missile Skin: Soviet Glory -item.missile_skin_soviet_glory.desc=уÑ�луга перевода недоÑ�тупна +item.missile_skin_soviet_glory.desc=услуга перевода недоступна item.missile_skin_soviet_stank.name=Missile Skin: Soviet Stank item.missile_skin_soviet_stank.desc=This one's got the real 60's stank to it. item.missile_soyuz.name=Soyuz-FG @@ -3024,7 +3030,7 @@ item.mp_warhead_15_balefire.name=Size 15 BF Warhead item.mp_warhead_15_boxcar.name=Size 15 Boxcar? item.mp_warhead_15_he.name=Size 15 HE Warhead item.mp_warhead_15_incendiary.name=Size 15 Incendiary Warhead -item.mp_warhead_15_n2.name=Size 15 N² Mine +item.mp_warhead_15_n2.name=Size 15 N² Mine item.mp_warhead_15_nuclear.name=Size 15 Nuclear Warhead item.mp_warhead_15_nuclear_mimi.name=Size 15 Mimi-chan's Head item.mp_warhead_15_nuclear_shark.name=Size 15 Nuclear Warhead @@ -3090,7 +3096,7 @@ item.nugget_les.name=Low Enriched Schrabidium Fuel Nugget item.nugget_mercury_tiny.name=Tiny Drop of Mercury item.nugget_mercury.name=Drop of Mercury item.nugget_mox_fuel.name=Nugget of MOX Fuel -item.nugget_mox_fuel.desc=Moxie says: §lTAX EVASION.§r +item.nugget_mox_fuel.desc=Moxie says: §lTAX EVASION.§r item.nugget_neptunium.name=Neptunium Nugget item.nugget_neptunium_fuel.name=Neptunium Fuel Nugget item.nugget_osmiridium.name=Osmiridium Nugget @@ -3149,6 +3155,8 @@ item.ore.iron=Iron item.ore.niobium=Niobium item.ore.titanium=Titanium item.ore.tungsten=Tungsten +item.ore.thorium=Thorium +item.ore.uranium=Uranium item.ore_bedrock.name=%s Bedrock Ore item.ore_byproduct.b_aluminium.name=Crystalline Aluminium Fragment item.ore_byproduct.b_bismuth.name=Crystalline Bismuth Fragment @@ -3157,9 +3165,13 @@ item.ore_byproduct.b_copper.name=Crystalline Copper Fragment item.ore_byproduct.b_iron.name=Crystalline Iron Fragment item.ore_byproduct.b_lead.name=Crystalline Lead Fragment item.ore_byproduct.b_lithium.name=Crystalline Lithium Fragment +item.ore_byproduct.b_polonium.name=Crystalline Polonium Fragment +item.ore_byproduct.b_radium.name=Crystalline Radium Fragment item.ore_byproduct.b_silicon.name=Crystalline Silicon Fragment item.ore_byproduct.b_sulfur.name=Crystalline Sulfur Fragment +item.ore_byproduct.b_technetium.name=Crystalline Technetium Fragment item.ore_byproduct.b_titanium.name=Crystalline Titanium Fragment +item.ore_byproduct.b_uranium.name=Crystalline Uranium Fragment item.ore_centrifuged.name=Centrifuged %s Ore item.ore_cleaned.name=Cleaned %s Ore item.ore_deepcleaned.name=Deep Cleaned %s Ore @@ -3167,7 +3179,7 @@ item.ore_enriched.name=Enriched %s Ore item.ore_nitrated.name=Nitrated %s Ore item.ore_nitrocrystalline.name=Nitrocrystalline %s Ore item.ore_purified.name=Purified %s Ore -item.ore_raadcleaned.name=Radiation-Cleaned %s Ore +item.ore_radcleaned.name=Radiation-Cleaned %s Ore item.ore_seared.name=Seared %s Ore item.ore_separated.name=Separated %s Ore item.overfuse.name=Singularity Screwdriver @@ -3198,7 +3210,7 @@ item.particle_aproton.name=Antiproton Capsule item.particle_aschrab.name=Antischrabidium Capsule item.particle_copper.name=Copper Ion Capsule item.particle_dark.name=Dark Matter Capsule -item.particle_digamma.name=§cThe Digamma Particle§r +item.particle_digamma.name=§cThe Digamma Particle§r item.particle_empty.name=Empty Particle Capsule item.particle_higgs.name=Higgs Boson Capsule item.particle_hydrogen.name=Hydrogen Ion Capsule @@ -3264,19 +3276,19 @@ item.pellet_rtg_weak.desc=Cheaper and weaker pellet, now with more U238! item.pellet_schrabidium.name=Pure Schrabidium Watz Pellet item.photo_panel.name=Photovoltaic Panel item.pile_rod_boron.name=Chicago Pile Control Rod -item.pile_rod_boron.desc=§9[Neutron Absorber]$§eClick to toggle +item.pile_rod_boron.desc=§9[Neutron Absorber]$§eClick to toggle item.pile_rod_detector.name=Chicago Pile Control & Detector Rod -item.pile_rod_detector.desc=§9[Neutron Detector/Absorber]$§eUse defuser to increase/decrease neutron limit$§eUse screwdriver w/o sneaking to inspect flux +item.pile_rod_detector.desc=§9[Neutron Detector/Absorber]$§eUse defuser to increase/decrease neutron limit$§eUse screwdriver w/o sneaking to inspect flux item.pile_rod_lithium.name=Chicago Pile Lithium Cell -item.pile_rod_lithium.desc=§a[Breedable Fuel]$§eUse hand drill to inspect core +item.pile_rod_lithium.desc=§a[Breedable Fuel]$§eUse hand drill to inspect core item.pile_rod_plutonium.name=Chicago Pile Plutonium Rod -item.pile_rod_plutonium.desc=§d[Neutron Source] +item.pile_rod_plutonium.desc=§d[Neutron Source] item.pile_rod_pu239.name=Chicago Pile Bred Uranium Rod -item.pile_rod_pu239.desc=§a[Reactive Fuel]$§eRich in Plutonium-239. +item.pile_rod_pu239.desc=§a[Reactive Fuel]$§eRich in Plutonium-239. item.pile_rod_source.name=Chicago Pile Ra226Be Neutron Source -item.pile_rod_source.desc=§d[Neutron Source] +item.pile_rod_source.desc=§d[Neutron Source] item.pile_rod_uranium.name=Chicago Pile Uranium Rod -item.pile_rod_uranium.desc=§a[Reactive Fuel]$§eUse hand drill to take core sample +item.pile_rod_uranium.desc=§a[Reactive Fuel]$§eUse hand drill to take core sample item.pill_iodine.name=Iodine Pill item.pill_iodine.desc=Removes negative effects item.pill_herbal.name=Herbal Paste @@ -3337,7 +3349,7 @@ item.powder_actinium_tiny.name=Tiny Pile of Actinium Powder item.powder_advanced_alloy.name=Advanced Alloy Powder item.powder_aluminium.name=Aluminium Powder item.powder_asbestos.name=Asbestos Powder -item.powder_asbestos.desc=§o\"Sniffffffff- MHHHHHHMHHHHHHHHH\"§r +item.powder_asbestos.desc=§o\"Sniffffffff- MHHHHHHMHHHHHHHHH\"§r item.powder_astatine.name=Astatine Powder item.powder_at209.name=Astatine-209 Powder item.powder_au198.name=Gold-198 Powder @@ -3371,7 +3383,7 @@ item.powder_cs137_tiny.name=Tiny Pile of Caesium-137 Powder item.powder_daffergon.name=Daffergon Powder item.powder_desh.name=Desh Powder item.powder_desh_mix.name=Desh Blend -item.powder_desh_ready.name=DeshReadyâ„¢ Blend +item.powder_desh_ready.name=DeshReady™ Blend item.powder_diamond.name=Diamond Powder item.powder_dineutronium.name=Dineutronium Powder item.powder_dura_steel.name=High-Speed Steel Powder @@ -3466,7 +3478,7 @@ item.rag_damp.name=Damp Cloth item.rag_piss.name=Piss-Soaked Rag item.rbmk_fuel_balefire.name=Balefire RBMK Fuel Rod item.rbmk_fuel_balefire_gold.name=Flashgold RBMK Fuel Rod -item.rbmk_fuel_drx.name=§cDigamma RBMK Fuel Rod§r +item.rbmk_fuel_drx.name=§cDigamma RBMK Fuel Rod§r item.rbmk_fuel_empty.name=Empty RBMK Fuel Rod item.rbmk_fuel_flashlead.name=Flashlead RBMK Fuel Rod item.rbmk_fuel_hea241.name=HEA-241 RBMK Fuel Rod @@ -3500,7 +3512,7 @@ item.rbmk_lid.name=RBMK Cover Panel item.rbmk_lid_glass.name=RBMK Glass Cover Panel item.rbmk_pellet_balefire.name=Balefire Fuel Pellet item.rbmk_pellet_balefire_gold.name=Flashgold Fuel Pellet -item.rbmk_pellet_drx.name=§cDigamma Fuel Pellet§r +item.rbmk_pellet_drx.name=§cDigamma Fuel Pellet§r item.rbmk_pellet_flashlead.name=Flashlead Fuel Pellet item.rbmk_pellet_hea241.name=HEA-241 Fuel Pellet item.rbmk_pellet_hea242.name=HEA-242 Fuel Pellet @@ -3546,7 +3558,7 @@ item.redstone_sword.name=Redstone Sword item.reer_graar.name=The Reer Graar item.remote.name=Broken Remote item.ring_pull.name=Ring Pull -item.ring_starmetal.name=§9Starmetal Ring§r +item.ring_starmetal.name=§9Starmetal Ring§r item.robes_boots.name=Field Boots item.robes_helmet.name=Casual Hoodie item.robes_legs.name=Casual Pants @@ -3880,6 +3892,7 @@ item.steel_shovel.name=Steel Shovel item.steel_sword.name=Steel Sword item.stick_c4.name=Stick of C-4 item.stick_dynamite.name=Stick of Dynamite +item.stick_dynamite_fishing.name=Stick of Fishing Dynamite item.stick_semtex.name=Stick of Semtex item.stick_tnt.name=Stick of TNT item.stopsign.name=Stop Sign Battle Axe @@ -3942,6 +3955,7 @@ item.titanium_plate.name=Titanium Chestplate item.titanium_shovel.name=Titanium Shovel item.titanium_sword.name=Titanium Sword item.toothpicks.name=Toothpicks +item.train.cargo_tram.name=Electric Flat Bed Tram item.trinitite.name=Trinitite item.tritium_deuterium_cake.name=Tritium-Deuterium-Cake item.tritium_deuterium_cake.desc=Not actual cake, but great$universal fusion fuel! @@ -4064,12 +4078,12 @@ item.watz_pellet_depleted.nqr.name=Naquadria Watz Pellet (Depleted) item.watz_pellet_depleted.hen.name=HEN Watz Pellet (Depleted) item.watz_pellet_depleted.schrabidium.name=Schrabidium Watz Pellet (Depleted) item.weapon_bat.name=Richard's Default -item.weapon_bat_nail.name=The Cliché +item.weapon_bat_nail.name=The Cliché item.weapon_golf_club.name=Russian Mobster's Club item.weapon_pipe_lead.name=The Manual Override item.weapon_pipe_rusty.name=The Attitude Adjuster item.weapon_saw.name=Doctor Assisted Homicide -item.weaponized_starblaster_cell.name=§cRigged Star Blaster Energy Cell§r +item.weaponized_starblaster_cell.name=§cRigged Star Blaster Energy Cell§r item.wd40.name=VT-40 item.wild_p.name=Wild Pegasus Dry Whiskey item.wings_limp.name=Limp Wings @@ -4132,11 +4146,11 @@ rbmk.console.fuel_depletion=Monitor average fuel depletion rbmk.console.fuel_poison=Monitor average xenon poisoning rbmk.console.fuel_temp=Monitor average fuel temperature rbmk.control.level=%s -rbmk.control.red=§cRed Group -rbmk.control.yellow=§eYellow Group -rbmk.control.green=§aGreen Group -rbmk.control.blue=§1Blue Group -rbmk.control.purple=§5Purple Group +rbmk.control.red=§cRed Group +rbmk.control.yellow=§eYellow Group +rbmk.control.green=§aGreen Group +rbmk.control.blue=§1Blue Group +rbmk.control.purple=§5Purple Group rbmk.moderated=Moderated rbmk.rod.depletion=Depletion: %s rbmk.rod.xenon=Xenon poison: %s @@ -4199,7 +4213,7 @@ tile.barbed_wire_wither.name=Withered Barbed Wire tile.barrel_antimatter.name=Magnetic Antimatter Container tile.barrel_corroded.name=Corroded Barrel tile.barrel_iron.name=Iron Barrel -tile.barrel_plastic.name=Safe Barrelâ„¢ +tile.barrel_plastic.name=Safe Barrel™ tile.barrel_steel.name=Steel Barrel tile.barrel_tcalloy.name=Technetium Steel Barrel tile.barricade.name=Sand Bags @@ -4298,7 +4312,7 @@ tile.block_semtex.name=Block of Semtex tile.block_slag.name=Block of Slag tile.block_smore.name=Block of S'more tile.block_solinium.name=Block of Solinium -tile.block_starmetal.name=§9Block of Starmetal§r +tile.block_starmetal.name=§9Block of Starmetal§r tile.block_steel.name=Block of Steel tile.block_sulfur.name=Block of Sulfur tile.block_tantalium.name=Block of Tantalium @@ -4417,6 +4431,12 @@ tile.concrete_colored.red.name=Red Concrete tile.concrete_colored.silver.name=Light Gray Concrete tile.concrete_colored.white.name=White Concrete tile.concrete_colored.yellow.name=Yellow Concrete +tile.concrete_colored_ext.hazard.name=Builder's Choice Concrete - Hazard Stripe +tile.concrete_colored_ext.indigo.name=Builder's Choice Concrete - Deep Indigo +tile.concrete_colored_ext.machine.name=Builder's Choice Concrete - Industrial Tinge +tile.concrete_colored_ext.machine_stripe.name=Builder's Choice Concrete - Industrial Stripe +tile.concrete_colored_ext.pink.name=Builder's Choice Concrete - Manly Pink +tile.concrete_colored_ext.purple.name=Builder's Choice Concrete - Mysterious Purple tile.concrete_pillar.name=Rebar Reinforced Concrete Pillar tile.concrete_slab.concrete.name=Concrete Tile Slab tile.concrete_slab.concrete_asbestos.name=Asbestos Concrete Slab @@ -4426,7 +4446,7 @@ tile.concrete_slab.ducrete_smooth.name=Ducrete Slab tile.concrete_smooth.name=Concrete tile.concrete_smooth_stairs.name=Concrete Stairs tile.concrete_stairs.name=Concrete Tile Stairs -tile.concrete_super.name=Über Concrete +tile.concrete_super.name=Über Concrete tile.concrete_super_broken.name=Moldy Debris tile.conveyor.name=Conveyor Belt tile.conveyor_chute.name=Conveyor Chute @@ -4463,6 +4483,7 @@ tile.deco_beryllium.name=Beryllium Deco Block tile.deco_computer.ibm_300pl.name=IBM Personal Computer 300PL tile.deco_emitter.name=Deco Light Emitter tile.part_emitter.name=Deco Particle Emitter +tile.piston_inserter.name=Inserter tile.deco_lead.name=Lead Deco Block tile.deco_rbmk.name=RBMK Deco Block tile.deco_rbmk_smooth.name=Smooth RBMK Deco Block @@ -4560,17 +4581,18 @@ tile.foundry_channel.name=Foundry Channel tile.foundry_tank.name=Foundry Storage Basin tile.foundry_mold.name=Shallow Foundry Basin tile.foundry_outlet.name=Foundry Outlet +tile.foundry_slagtap.name=Foundry Slag Outlet tile.fraction_spacer.name=Fractioning Tower Separator tile.frozen_dirt.name=Frozen Dirt tile.frozen_grass.name=Frozen Grass tile.frozen_log.name=Frozen Log tile.frozen_planks.name=Frozen Planks tile.furnace_combination.name=Combination Oven -tile.furnace_combination.desc=A large furnace that can produce charcoal and coal coke.$Produces fluid byproducts.$Heat transfer rate: ΔT*0.25 TU/t +tile.furnace_combination.desc=A large furnace that can produce charcoal and coal coke.$Produces fluid byproducts.$Heat transfer rate: ΔT*0.25 TU/t tile.furnace_iron.name=Iron Furnace tile.furnace_iron.desc=Larger and more efficient furnace,$does not waste fuel when idle. tile.furnace_steel.name=Steel Furnace -tile.furnace_steel.desc=Very large furnace that can provide bonus items$when smelting ores. Requires external heat source.$Heat transfer rate: ΔT*0.05 TU/t$(Δ means difference and T means temperature) +tile.furnace_steel.desc=Very large furnace that can provide bonus items$when smelting ores. Requires external heat source.$Heat transfer rate: ΔT*0.05 TU/t$(Δ means difference and T means temperature) tile.fusion_center.name=Central Magnet Piece tile.fusion_conductor.name=Superconducting Magnet tile.fusion_core.name=Fusion Reactor Control @@ -4680,7 +4702,7 @@ tile.machine_bat9000.name=Big-Ass Tank 9000 tile.machine_battery.name=Energy Storage Block tile.machine_battery_potato.name=Potato Battery Block tile.machine_boiler.name=Boiler -tile.machine_boiler.desc=Large boiler that can boil water or heat up oil.$Requires external heat source.$Heat transfer rate: ΔT*0.01 TU/t +tile.machine_boiler.desc=Large boiler that can boil water or heat up oil.$Requires external heat source.$Heat transfer rate: ΔT*0.01 TU/t tile.machine_boiler_electric_off.name=Electric Oil Heater tile.machine_boiler_electric_on.name=Electric Oil Heater tile.machine_boiler_off.name=Oil Heater @@ -4695,7 +4717,7 @@ tile.machine_chungus.desc=Efficiency: 85%% tile.machine_coal_off.name=Combustion Generator tile.machine_coal_on.name=Combustion Generator tile.machine_coker.name=Coker Unit -tile.machine_coker.desc=Cokes oil, creating fluid byproducts.$Requires external heat source.$Heat transfer rate: ΔT*0.025 TU/t +tile.machine_coker.desc=Cokes oil, creating fluid byproducts.$Requires external heat source.$Heat transfer rate: ΔT*0.025 TU/t tile.machine_combine_factory.name=CMB Steel Furnace tile.machine_combustion_engine.name=Industrial Combustion Engine tile.machine_condenser.name=Steam Condenser @@ -4831,7 +4853,7 @@ tile.nuke_fstbmb.name=Balefire Bomb tile.nuke_gadget.name=The Gadget tile.nuke_man.name=Fat Man tile.nuke_mike.name=Ivy Mike -tile.nuke_n2.name=N² Mine +tile.nuke_n2.name=N² Mine tile.nuke_n45.name=N45 Naval Mine tile.nuke_prototype.name=The Prototype tile.nuke_solinium.name=The Blue Rinse @@ -4988,7 +5010,6 @@ tile.reinforced_brick.name=Reinforced Stone tile.reinforced_brick_stairs.name=Reinforced Stone Stairs tile.reinforced_ducrete.name=Reinforced Ducrete tile.reinforced_glass.name=Reinforced Glass -tile.reinforced_laminate.name=Laminate Glass tile.reinforced_lamp_off.name=Reinforced Lamp tile.reinforced_lamp_on.name=Reinforced Lamp tile.reinforced_light.name=Reinforced Glowstone @@ -5050,6 +5071,7 @@ tile.stone_depth_nether.name=Nether Depth Rock tile.stone_gneiss.name=Graphitic Schist tile.stone_porous.name=Porous Stone tile.stone_resource.asbestos.name=Chrysotile +tile.stone_resource.bauxite.name=Bauxite tile.stone_resource.hematite.name=Hematite tile.stone_resource.limestone.name=Limestone tile.stone_resource.malachite.name=Malachite @@ -5197,9 +5219,9 @@ tool.ability.silktouch=Silk Touch tool.ability.smelter=Auto-Smelter turret.animals=Target Passive: %s -turret.arty.artillery=§eArtillery Mode$Grace: 250m$Range: 3,000m -turret.arty.cannon=§eCannon Mode$Grace: 32m$Range: 250m -turret.arty.manual=§eManual Mode$Range: 3,000m +turret.arty.artillery=§eArtillery Mode$Grace: 250m$Range: 3,000m +turret.arty.cannon=§eCannon Mode$Grace: 32m$Range: 250m +turret.arty.manual=§eManual Mode$Range: 3,000m turret.machines=Target Machines: %s turret.mobs=Target Mobs: %s turret.none=None @@ -5234,4 +5256,4 @@ weapon.elecGun.glass_cannon.ir=Infrared weapon.elecGun.glass_cannon.visible=Visible Light weapon.elecGun.glass_cannon.uv=Ultraviolet Light weapon.elecGun.glass_cannon.xray=X-rays -weapon.elecGun.glass_cannon.gamma=Gamma rays \ No newline at end of file +weapon.elecGun.glass_cannon.gamma=Gamma rays From a9af4fa277622dd3caef2132a9256cbef2294328 Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 30 May 2023 14:56:10 +0200 Subject: [PATCH 073/432] changelog --- changelog | 14 ++++++++++++++ curseforge.properties.example | 5 ----- gradle.properties | 21 ++++++++++++--------- 3 files changed, 26 insertions(+), 14 deletions(-) delete mode 100644 curseforge.properties.example diff --git a/changelog b/changelog index e69de29bb..9e3e29f28 100644 --- a/changelog +++ b/changelog @@ -0,0 +1,14 @@ +## Added +* Laminate glass + * A new variant of refinroced glass with higher blast resistance + +## Changed +* Updated russian localization +* Rebalanced some powder recipes like meteorite powder, spark blend and energy powder +* Changed spark battery recipes, the total cost and crafting steps for higher tier batteries should no longer be as insane as before +* Technetium steel and ferrouranium drillbits are now craftable +* The vacuum refinery now requires a bismuth chipset +* Paraffin wax can now also be used to make chlorated petroleum wax +* Retextured schrabidium batteries, the cap is now black instead of red + +## Fixed \ No newline at end of file diff --git a/curseforge.properties.example b/curseforge.properties.example deleted file mode 100644 index 002b2b4f5..000000000 --- a/curseforge.properties.example +++ /dev/null @@ -1,5 +0,0 @@ -# CurseForge API token (obtainable from https://legacy.curseforge.com/account/api-tokens) -api_key= - -# CurseForge project ID -project_id= diff --git a/gradle.properties b/gradle.properties index 17db097d2..a7d9d6e1a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,12 +3,15 @@ mod_version=1.0.27 mod_build_number=4613 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ - \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models, porting),\ - \ UFFR (RTGs, guns, casings), Pu-238 (Tom impact effects), Bismarck (chinese localization),\ - \ Frooz (models), Minecreep (models), VT-6/24 (models, textures), Pheo (textures, various machines, models, weapons), Vr (gas centrifuges,\ - \ better worldgen, ZIRNOX, CP-1 parts, starter guide), Adam29 (liquid petroleum, ethanol, electric furnace),\ - \ Pashtet (russian localization), MartinTheDragon (calculator, chunk-based fallout), haru315 (spiral point algorithm),\ - \ Sten89 (models), Pixelguru26 (textures), TheBlueHat (textures), Alcater (GUI textures, porting), impbk2002 (project settings),\ - \ OvermindDL1 (project settings), TehTemmie (reacher radiation function), Toshayo (satellite loot system, project settings), Silly541 (config for safe ME drives),\ - \ Voxelstice (OpenComputers integration, turbine spinup), BallOfEnergy1 (OpenComputers integration), martemen (project settings),\ - \ Pvndols (thorium fuel recipe, gas turbine), JamesH2 (blood mechanics, nitric acid), sdddddf80 (recipe configs), SuperCraftAlex (tooltips) + \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ + \ porting), UFFR (RTGs, guns, casings), Pu-238 (Tom impact effects), Bismarck (chinese localization),\ + \ Frooz (models), Minecreep (models), VT-6/24 (models, textures), Pheo (textures, various machines,\ + \ models, weapons), Vr (gas centrifuges, better worldgen, ZIRNOX, CP-1 parts, starter guide), Adam29\ + \ (liquid petroleum, ethanol, electric furnace), Pashtet (russian localization), MartinTheDragon\ + \ (calculator, chunk-based fallout), haru315 (spiral point algorithm), Sten89 (models), Pixelguru26\ + \ (textures), TheBlueHat (textures), Alcater (GUI textures, porting), impbk2002 (project settings),\ + \ Burningwater202 (laminate glass), OvermindDL1 (project settings), TehTemmie (reacher radiation function),\ + \ Toshayo (satellite loot system, project settings, gradle curse task), Silly541 (config for safe ME drives),\ + \ Voxelstice (OpenComputers integration, turbine spinup), BallOfEnergy1 (OpenComputers integration), martemen\ + \ (project settings), Pvndols (thorium fuel recipe, gas turbine), JamesH2 (blood mechanics, nitric acid,\ + \ particle emitter), sdddddf80 (recipe configs, chinese localization), SuperCraftAlex (tooltips) From f4d67be51eef1b4e03748223d8ebe4e8ec133432 Mon Sep 17 00:00:00 2001 From: Vaern Date: Tue, 30 May 2023 20:04:55 -0700 Subject: [PATCH 074/432] deco --- .../world/gen/component/BunkerComponents.java | 73 +++++++++++++++---- 1 file changed, 59 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/hbm/world/gen/component/BunkerComponents.java b/src/main/java/com/hbm/world/gen/component/BunkerComponents.java index b132b862d..3efd261fd 100644 --- a/src/main/java/com/hbm/world/gen/component/BunkerComponents.java +++ b/src/main/java/com/hbm/world/gen/component/BunkerComponents.java @@ -141,7 +141,7 @@ public class BunkerComponents { placeBlockAtCurrentPosition(world, ModBlocks.fan, 0, 5, 4, 5, box); //machine placeBlockAtCurrentPosition(world, ModBlocks.deco_tungsten, 0, 3, 1, 6, box); - generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(2), 4, 1, 6, HbmChestContents.antenna/*TODO change */, 5); + generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(3), 4, 1, 6, HbmChestContents.antenna/*TODO change */, 5); placeBlockAtCurrentPosition(world, ModBlocks.deco_tungsten, 0, 5, 1, 6, box); fillWithMetadataBlocks(world, box, 3, 2, 6, 5, 2, 6, ModBlocks.concrete_smooth_stairs, getStairMeta(2) | 4); fillWithMetadataBlocks(world, box, 3, 3, 6, 5, 3, 6, ModBlocks.tape_recorder, getDecoMeta(2)); @@ -149,7 +149,7 @@ public class BunkerComponents { placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, getStairMeta(1) | 4, 3, 1, 4, box); placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, getStairMeta(3) | 4, 4, 1, 4, box); placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, getStairMeta(0) | 4, 5, 1, 4, box); - placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(0), 4, 2, 4, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(1), 4, 2, 4, box); //clear out entryways based on path if(paths[0]) fillWithAir(world, box, 7, 1, 2, 7, 2, 3); if(paths[1]) fillWithAir(world, box, 3, 1, 0, 4, 2, 0); @@ -162,13 +162,17 @@ public class BunkerComponents { public static class Corridor extends Component implements ProceduralComponent { private boolean path; + private int[] decorations = new int[2]; public Corridor() { } - public Corridor(int componentType, StructureBoundingBox box, int coordMode) { + public Corridor(int componentType, StructureBoundingBox box, int coordMode, Random rand) { super(componentType); this.boundingBox = box; this.coordBaseMode = coordMode; + + decorations[0] = rand.nextInt(6); + decorations[1] = rand.nextInt(6); } /** write to nbt */ @@ -176,6 +180,7 @@ public class BunkerComponents { protected void func_143012_a(NBTTagCompound nbt) { super.func_143012_a(nbt); nbt.setBoolean("p", path); + nbt.setIntArray("d", decorations); } /** read from nbt */ @@ -183,6 +188,7 @@ public class BunkerComponents { protected void func_143011_b(NBTTagCompound nbt) { super.func_143011_b(nbt); path = nbt.getBoolean("p"); + decorations = nbt.getIntArray("d"); } @Override @@ -212,18 +218,57 @@ public class BunkerComponents { //lamps fillWithBlocks(world, box, 2, 5, 3, 3, 5, 3, ModBlocks.reinforced_lamp_off); fillWithBlocks(world, box, 2, 4, 3, 3, 4, 3, ModBlocks.fan); - //table w/ chairs - final int stairMetaS = getStairMeta(3); + //deco misc + final int stairMetaW = getStairMeta(0); + final int stairMetaE = getStairMeta(1); final int stairMetaN = getStairMeta(2); + final int stairMetaS = getStairMeta(3); + final int decoMetaE = getDecoMeta(4); + final int decoMetaW = getDecoMeta(5); - placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaS, 1, 1, 2, box); - placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaN, 1, 1, 4, box); - placeBlockAtCurrentPosition(world, Blocks.fence, 0, 1, 1, 3, box); - placeBlockAtCurrentPosition(world, Blocks.wooden_pressure_plate, 1, 1, 2, 3, box); - //desk w/ computer - placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaS | 4, 4, 1, 2, box); - placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaN, 4, 1, 4, box); - placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(1), 4, 2, 2, box); + for(int i = 0; i <= 1; i++) { + final int x = 1 + i * 3; + switch (decorations[i]) { + default: //table w/ chairs + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaS, x, 1, 2, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaN, x, 1, 4, box); + placeBlockAtCurrentPosition(world, Blocks.fence, 0, x, 1, 3, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_pressure_plate, 1, x, 2, 3, box); + break; + case 1://desk w/ computer + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaS | 4, x, 1, 2, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaN, x, 1, 4, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(1), x, 2, 2, box); + break; + case 2: //couch + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaS, x, 1, 2, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, i < 1 ? stairMetaE : stairMetaW, x, 1, 3, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaN, x, 1, 4, box); + break; + case 3: + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaS | 4, x, 1, 2, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, (i < 1 ? stairMetaE : stairMetaW) | 4, x, 1, 3, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaN | 4, x, 1, 4, box); + placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, x, 2, 2, box); + break; + case 4: + fillWithBlocks(world, box, x, 1, 1, x, 3, 1, ModBlocks.deco_tungsten); + placeBlockAtCurrentPosition(world, ModBlocks.deco_tungsten, 0, x, 1, 3, box); + fillWithMetadataBlocks(world, box, x, 3, 2, x, 3, 4, ModBlocks.concrete_smooth_stairs, i < 1 ? stairMetaE : stairMetaW); + fillWithBlocks(world, box, x, 1, 5, x, 3, 5, ModBlocks.deco_tungsten); + fillWithMetadataBlocks(world, box, x, 1, 2, x, 2, 2, ModBlocks.tape_recorder, i < 1 ? decoMetaW : decoMetaE); //don't ask me + fillWithMetadataBlocks(world, box, x, 1, 4, x, 2, 4, ModBlocks.tape_recorder, i < 1 ? decoMetaW : decoMetaE); + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, i < 1 ? getDecoModelMeta(3) : getDecoModelMeta(2), x, 2, 3, box); + break; + case 5: + placeBlockAtCurrentPosition(world, Blocks.fence, 0, x, 1, 1, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_pressure_plate, 0, x, 2, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaS | 4, x, 1, 3, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaN | 4, x, 1, 4, box); + placeBlockAtCurrentPosition(world, ModBlocks.radiorec, i < 1 ? decoMetaE : decoMetaW, x, 2, 3, box); + break; + } + } //doors placeDoor(world, box, ModBlocks.door_bunker, 1, true, rand.nextBoolean(), 2, 1, 0); placeDoor(world, box, ModBlocks.door_bunker, 1, false, rand.nextBoolean(), 3, 1, 0); @@ -234,7 +279,7 @@ public class BunkerComponents { public static StructureComponent findValidPlacement(List components, Random rand, int x, int y, int z, int coordMode, int type) { StructureBoundingBox box = ProceduralStructureStart.getComponentToAddBoundingBox(x, y, z, -3, -1, 0, 6, 6, 7, coordMode); - return box.minY > 10 && StructureComponent.findIntersecting(components, box) == null ? new Corridor(type, box, coordMode) : null; + return box.minY > 10 && StructureComponent.findIntersecting(components, box) == null ? new Corridor(type, box, coordMode, rand) : null; } } From af695359b325c1c1d0ac957504dc30d47d3ff75f Mon Sep 17 00:00:00 2001 From: Vaern Date: Tue, 30 May 2023 20:52:47 -0700 Subject: [PATCH 075/432] small fix --- src/main/java/com/hbm/world/gen/component/BunkerComponents.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/world/gen/component/BunkerComponents.java b/src/main/java/com/hbm/world/gen/component/BunkerComponents.java index 3efd261fd..9937ac15f 100644 --- a/src/main/java/com/hbm/world/gen/component/BunkerComponents.java +++ b/src/main/java/com/hbm/world/gen/component/BunkerComponents.java @@ -113,7 +113,7 @@ public class BunkerComponents { fillWithRandomizedBlocks(world, box, 7, 0, 0, 7, 4, 7, rand, ConcreteBricks); fillWithRandomizedBlocks(world, box, 1, 0, 0, 6, 4, 0, rand, ConcreteBricks); //meh, fix the area later - final int hpos = Component.getAverageHeight(world, boundingBox, box, componentType - boundingBox.minY); + final int hpos = Component.getAverageHeight(world, boundingBox, box, boundingBox.maxY) - boundingBox.minY; //top hatch placeBlockAtCurrentPosition(world, ModBlocks.concrete_slab, 1, 0, hpos, 5, box); fillWithMetadataBlocks(world, box, 1, hpos, 4, 1, hpos, 6, ModBlocks.concrete_smooth_stairs, getStairMeta(0)); From ccce86a41c716c3d549325abc52e81e5188b1a08 Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 31 May 2023 15:18:16 +0200 Subject: [PATCH 076/432] usable tram trailer --- changelog | 2 +- .../entity/train/TrainCargoTramTrailer.java | 141 +++++++++++++++++- .../hbm/inventory/FluidContainerRegistry.java | 1 + .../gui/vehicles/gui_cargo_tram_trailer.png | Bin 0 -> 1382 bytes 4 files changed, 135 insertions(+), 9 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/gui/vehicles/gui_cargo_tram_trailer.png diff --git a/changelog b/changelog index 9e3e29f28..68bff38a5 100644 --- a/changelog +++ b/changelog @@ -1,6 +1,6 @@ ## Added * Laminate glass - * A new variant of refinroced glass with higher blast resistance + * A new variant of reinforced glass with higher blast resistance ## Changed * Updated russian localization diff --git a/src/main/java/com/hbm/entity/train/TrainCargoTramTrailer.java b/src/main/java/com/hbm/entity/train/TrainCargoTramTrailer.java index e077a14da..05d465476 100644 --- a/src/main/java/com/hbm/entity/train/TrainCargoTramTrailer.java +++ b/src/main/java/com/hbm/entity/train/TrainCargoTramTrailer.java @@ -1,13 +1,31 @@ package com.hbm.entity.train; -import com.hbm.blocks.rail.IRailNTM.TrackGauge; +import org.lwjgl.opengl.GL11; +import com.hbm.blocks.rail.IRailNTM.TrackGauge; +import com.hbm.inventory.gui.GuiInfoContainer; +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.IGUIProvider; + +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.DamageSource; +import net.minecraft.util.ResourceLocation; import net.minecraft.util.Vec3; import net.minecraft.world.World; -public class TrainCargoTramTrailer extends EntityRailCarCargo { +public class TrainCargoTramTrailer extends EntityRailCarCargo implements IGUIProvider { /* * @@ -28,15 +46,11 @@ public class TrainCargoTramTrailer extends EntityRailCarCargo { @Override public double getMaxRailSpeed() { return 1; } @Override public TrackGauge getGauge() { return TrackGauge.STANDARD; } @Override public double getLengthSpan() { return 1.5; } - @Override public int getSizeInventory() { return 29; } + @Override public int getSizeInventory() { return 45; } @Override public String getInventoryName() { return this.hasCustomInventoryName() ? this.getEntityName() : "container.trainTramTrailer"; } @Override public AxisAlignedBB getCollisionBox() { return AxisAlignedBB.getBoundingBox(renderX, renderY, renderZ, renderX, renderY + 1, renderZ).expand(4, 0, 4); } @Override public double getCouplingDist(TrainCoupling coupling) { return coupling != null ? 2.75 : 0; } - - @Override - public double getCurrentSpeed() { - return 0; //we'll figure out how linked carts work later on - i hope - } + @Override public double getCurrentSpeed() { return 0; } @Override public DummyConfig[] getDummies() { @@ -55,4 +69,115 @@ public class TrainCargoTramTrailer extends EntityRailCarCargo { return true; } + + @Override + public boolean interactFirst(EntityPlayer player) { + if(super.interactFirst(player)) return false; + + if(!this.worldObj.isRemote) { + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, worldObj, this.getEntityId(), 0, 0); + } + + return true; + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerTrainCargoTramTrailer(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUITrainCargoTramTrailer(player.inventory, this); + } + + /* + * ##### ##### # # ##### ##### ### # # ##### #### + * # # # ## # # # # # ## # # # # + * # # # # # # # ##### # # # # ### #### + * # # # # ## # # # # # ## # # # + * ##### ##### # # # # # ### # # ##### # # + */ + public static class ContainerTrainCargoTramTrailer extends Container { + private TrainCargoTramTrailer train; + public ContainerTrainCargoTramTrailer(InventoryPlayer invPlayer, TrainCargoTramTrailer train) { + this.train = train; + for(int i = 0; i < 5; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(train, i * 7 + j, 8 + j * 18, 18 + i * 18)); + } + } + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 140 + i * 18)); + } + } + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 198)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int slotIndex) { + ItemStack stackCopy = null; + Slot slot = (Slot) this.inventorySlots.get(slotIndex); + if(slot != null && slot.getHasStack()) { + ItemStack stack = slot.getStack(); + stackCopy = stack.copy(); + if(slotIndex < train.getSizeInventory()) { + if(!this.mergeItemStack(stack, train.getSizeInventory(), this.inventorySlots.size(), true)) { + return null; + } + } else + if(!this.mergeItemStack(stack, 0, 45, false)) { + return null; + } + if(stack.stackSize == 0) { + slot.putStack((ItemStack) null); + } else { + slot.onSlotChanged(); + } + } + return stackCopy; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return train.isUseableByPlayer(player); + } + } + + /* + * ##### # # ### + * # # # # + * # ## # # # + * # # # # # + * ##### ##### ### + */ + @SideOnly(Side.CLIENT) + public static class GUITrainCargoTramTrailer extends GuiInfoContainer { + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/vehicles/gui_cargo_tram_trailer.png"); + private TrainCargoTramTrailer train; + public GUITrainCargoTramTrailer(InventoryPlayer invPlayer, TrainCargoTramTrailer train) { + super(new ContainerTrainCargoTramTrailer(invPlayer, train)); + this.train = train; + this.xSize = 176; + this.ySize = 222; + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.train.hasCustomInventoryName() ? this.train.getInventoryName() : I18n.format(this.train.getInventoryName()); + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 0xffffff); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float intero, int x, int y) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + } + } } diff --git a/src/main/java/com/hbm/inventory/FluidContainerRegistry.java b/src/main/java/com/hbm/inventory/FluidContainerRegistry.java index aacd3c2f2..4ad6a1b50 100644 --- a/src/main/java/com/hbm/inventory/FluidContainerRegistry.java +++ b/src/main/java/com/hbm/inventory/FluidContainerRegistry.java @@ -22,6 +22,7 @@ public class FluidContainerRegistry { public static void register() { FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(Items.water_bucket), new ItemStack(Items.bucket), Fluids.WATER, 1000)); + FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(Items.potionitem), new ItemStack(Items.glass_bottle), Fluids.WATER, 250)); FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(Items.lava_bucket), new ItemStack(Items.bucket), Fluids.LAVA, 1000)); FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.bucket_mud), new ItemStack(Items.bucket), Fluids.WATZ, 1000)); FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.bucket_schrabidic_acid), new ItemStack(Items.bucket), Fluids.SCHRABIDIC, 1000)); diff --git a/src/main/resources/assets/hbm/textures/gui/vehicles/gui_cargo_tram_trailer.png b/src/main/resources/assets/hbm/textures/gui/vehicles/gui_cargo_tram_trailer.png new file mode 100644 index 0000000000000000000000000000000000000000..5e7ed276200f0d92e544acb4593b6c7f1a9ee672 GIT binary patch literal 1382 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K5893O0R7}x|G$6%N?Bp530R%N1DIE+9tg@ai zjv*Cu-rhCLyIm%6>|uXf`<(^OZp$6l2UNe9wzIjY^$lAI|J%JyCSSNBmuR#2@}_uf zS54Dr4nb6F* zLGZ*Jv1f1cS%exs-rz{_`&^vEGOI5gtMk#Vg8OST(2!@(Z*Z8%N;jU#tn2G_xV#ZA zbRIJta2f=ZNK>9*dG`E9!3--irkR)j$VfLXONI;0V?+&5d@vQmD$`?v< zSd5ncv@~P#Jq{PLVMdA>0tSKNve)66iT!c61utcI7`AvY9D59l7{62RKFu$D^KSmH zv$MJN_0*3VH#~f|uj22gM^7*EvCKPk(!TGn_y+q^fd?*I{sg6U5O}xa`|JjHYpx2Z z{VXPv>hE)3_yGi6y?h|0Fzz>2NR)02lQH5-HYz)*RMD4KbT{-`f65cpXK>^#igaDNQv(A&plzQ zr&>O33WgPb$U|R($W6XPiwloqwLaUby(oLSJAati2z8^>9D?c3Ap~f;oQM z|Mp5XcslvWLt65NBnqS?0Z%25B}sELBuV%@f8eH&F|pU-aUnM>|62bLxDb|595rL} ze$g2pZ*b)RbA`>Ed418i@->za0hRL5fb$Fm@!yt3~ANLLUry37l&iMmLEO^KRF8>&{U#1>)SsVKoq|DRR&t;uc GLK6U;S>omZ literal 0 HcmV?d00001 From 36d4a4c4e0f84c5795f842e1dc0726429da6c946 Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 31 May 2023 16:31:54 +0200 Subject: [PATCH 077/432] some more train stuff --- .../hbm/entity/train/EntityRailCarBase.java | 64 ++++++++++++------- .../entity/train/EntityRailCarRidable.java | 60 +++++++++++------ .../com/hbm/main/ModEventHandlerClient.java | 20 ++++-- 3 files changed, 99 insertions(+), 45 deletions(-) diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java index 163adc596..bfab8bcc1 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java @@ -5,15 +5,13 @@ import java.util.HashSet; import java.util.List; import java.util.Set; +import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.rail.IRailNTM; import com.hbm.blocks.rail.IRailNTM.RailContext; import com.hbm.blocks.rail.IRailNTM.TrackGauge; import com.hbm.items.ModItems; -import com.hbm.packet.AuxParticlePacketNT; -import com.hbm.packet.PacketDispatcher; import com.hbm.util.fauxpointtwelve.BlockPos; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; @@ -25,8 +23,9 @@ import net.minecraft.util.DamageSource; import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent; -public abstract class EntityRailCarBase extends Entity { +public abstract class EntityRailCarBase extends Entity implements ILookOverlay { public LogicalTrainUnit ltu; public boolean isOnRail = true; @@ -100,15 +99,16 @@ public abstract class EntityRailCarBase extends Entity { if(neighbor.getCoupledTo(closestNeighborCoupling) != null) continue; this.couple(closestOwnCoupling, neighbor); neighbor.couple(closestNeighborCoupling, this); - if(this.ltu != null) this.ltu.dissolve(); - if(neighbor.ltu != null) neighbor.ltu.dissolve(); + if(this.ltu != null) this.ltu.dissolveTrain(); + if(neighbor.ltu != null) neighbor.ltu.dissolveTrain(); player.swingItem(); return true; } } } - if(this.ltu != null) { + //DEBUG + /*if(this.ltu != null) { String id = Integer.toHexString(ltu.hashCode()); @@ -121,7 +121,7 @@ public abstract class EntityRailCarBase extends Entity { data.setString("text", id); PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, train.posX, train.posY + 1, train.posZ), new TargetPoint(this.dimension, train.posX, train.posY + 1, train.posZ, 50)); } - } + }*/ return false; } @@ -169,15 +169,15 @@ public abstract class EntityRailCarBase extends Entity { if(this.coupledFront != null && this.coupledFront.isDead) { this.coupledFront = null; - if(this.ltu != null) this.ltu.dissolve(); + if(this.ltu != null) this.ltu.dissolveTrain(); } if(this.coupledBack != null && this.coupledBack.isDead) { this.coupledBack = null; - if(this.ltu != null) this.ltu.dissolve(); + if(this.ltu != null) this.ltu.dissolveTrain(); } if(this.ltu == null && (this.coupledFront == null || this.coupledBack == null)) { - LogicalTrainUnit.generate(this); + LogicalTrainUnit.generateTrain(this); } DummyConfig[] definitions = this.getDummies(); @@ -293,10 +293,10 @@ public abstract class EntityRailCarBase extends Entity { } /* Move carts together with links */ - for(LogicalTrainUnit ltu : ltus) ltu.combineLinks(); + for(LogicalTrainUnit ltu : ltus) ltu.combineWagons(); /* Move carts with unified speed */ - for(LogicalTrainUnit ltu : ltus) ltu.moveLinks(); + for(LogicalTrainUnit ltu : ltus) ltu.moveTrain(); } /** Returns the amount of blocks that the train should move per tick */ @@ -473,7 +473,7 @@ public abstract class EntityRailCarBase extends Entity { protected EntityRailCarBase trains[]; /** Assumes that the train is an endpoint, i.e. that only one coupling is in use */ - public static LogicalTrainUnit generate(EntityRailCarBase train) { + public static LogicalTrainUnit generateTrain(EntityRailCarBase train) { List links = new ArrayList(); Set brake = new HashSet(); links.add(train); @@ -512,13 +512,15 @@ public abstract class EntityRailCarBase extends Entity { return ltu; } - public void dissolve() { + /** Removes the LTU from all wagons */ + public void dissolveTrain() { for(EntityRailCarBase train : trains) { train.ltu = null; } } - public void combineLinks() { + /** Find the center fo the train, then moves all wagons towards that center until the coupling points roughly touch */ + public void combineWagons() { if(trains.length <= 1) return; @@ -529,19 +531,20 @@ public abstract class EntityRailCarBase extends Entity { for(int i = centerIndex - 1; i >= 0; i--) { EntityRailCarBase next = trains[i]; - moveTo(prev, next); + moveWagonTo(prev, next); prev = next; } prev = center; for(int i = centerIndex + 1; i < trains.length; i++) { EntityRailCarBase next = trains[i]; - moveTo(prev, next); + moveWagonTo(prev, next); prev = next; } } - public static void moveTo(EntityRailCarBase prev, EntityRailCarBase next) { + /** Moves one wagon to ne next until the coupling points roughly touch */ + public static void moveWagonTo(EntityRailCarBase prev, EntityRailCarBase next) { TrainCoupling prevCouple = prev.getCouplingFrom(next); TrainCoupling nextCouple = next.getCouplingFrom(prev); Vec3 prevLoc = prev.getCouplingPos(prevCouple); @@ -556,7 +559,8 @@ public abstract class EntityRailCarBase extends Entity { next.setPosition(newPos.xCoord, newPos.yCoord, newPos.zCoord); } - public void moveLinks() { + /** Generates the speed of the train, then moves the rain along the rail */ + public void moveTrain() { EntityRailCarBase prev = trains[0]; TrainCoupling dir = prev.getCouplingFrom(null); @@ -576,6 +580,12 @@ public abstract class EntityRailCarBase extends Entity { totalSpeed = maxSpeed * Math.signum(totalSpeed); } + this.moveTrainBy(totalSpeed); + } + + /** Moves the entire train along the rail by a certain speed */ + public void moveTrainBy(double totalSpeed) { + for(EntityRailCarBase train : this.trains) { BlockPos anchor = train.getCurentAnchorPos(); @@ -583,7 +593,7 @@ public abstract class EntityRailCarBase extends Entity { if(corePos == null) { train.derail(); - this.dissolve(); + this.dissolveTrain(); return; } else { train.setPosition(corePos.xCoord, corePos.yCoord, corePos.zCoord); @@ -593,7 +603,7 @@ public abstract class EntityRailCarBase extends Entity { if(frontPos == null || backPos == null) { train.derail(); - this.dissolve(); + this.dissolveTrain(); return; } else { train.renderX = (frontPos.xCoord + backPos.xCoord) / 2D; @@ -608,4 +618,14 @@ public abstract class EntityRailCarBase extends Entity { } } } + + @Override + @SideOnly(Side.CLIENT) + public void printHook(RenderGameOverlayEvent.Pre event, World world, int x, int y, int z) { + /*List text = new ArrayList(); + text.add("LTU: " + this.ltu); + text.add("Front: " + this.coupledFront); + text.add("Back: " + this.coupledBack); + ILookOverlay.printGeneric(event, this.toString(), 0xffff00, 0x404000, text);*/ //none of this shit is going to work anyway + } } diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java b/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java index 42aaa0248..79fd80a13 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java @@ -1,5 +1,10 @@ package com.hbm.entity.train; +import java.util.ArrayList; +import java.util.List; + +import com.hbm.blocks.ILookOverlay; +import com.hbm.main.MainRegistry; import com.hbm.util.BobMathUtil; import cpw.mods.fml.relauncher.Side; @@ -10,6 +15,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent; public abstract class EntityRailCarRidable extends EntityRailCarCargo { @@ -80,8 +86,30 @@ public abstract class EntityRailCarRidable extends EntityRailCarCargo { if(super.interactFirst(player)) return true; if(worldObj.isRemote) return true; + int nearestSeat = this.getNearestSeat(player); + + if(nearestSeat == -1) { + player.mountEntity(this); + } else if(nearestSeat >= 0) { + SeatDummyEntity dummySeat = new SeatDummyEntity(worldObj, this, nearestSeat); + Vec3 passengerSeat = this.getPassengerSeats()[nearestSeat]; + passengerSeat.rotateAroundY((float) (-this.rotationYaw * Math.PI / 180)); + double x = renderX + passengerSeat.xCoord; + double y = renderY + passengerSeat.yCoord; + double z = renderZ + passengerSeat.zCoord; + dummySeat.setPosition(x, y - 1, z); + passengerSeats[nearestSeat] = dummySeat; + worldObj.spawnEntityInWorld(dummySeat); + player.mountEntity(dummySeat); + } + + return true; + } + + public int getNearestSeat(EntityPlayer player) { + double nearestDist = Double.POSITIVE_INFINITY; - int nearestSeat = -1; + int nearestSeat = -2; Vec3[] seats = getPassengerSeats(); for(int i = 0; i < seats.length; i++) { @@ -124,24 +152,9 @@ public abstract class EntityRailCarRidable extends EntityRailCarCargo { } } - if(nearestDist > 180) return true; + if(nearestDist > 180) return -2; - if(nearestSeat == -1) { - player.mountEntity(this); - } else { - SeatDummyEntity dummySeat = new SeatDummyEntity(worldObj, this, nearestSeat); - Vec3 passengerSeat = this.getPassengerSeats()[nearestSeat]; - passengerSeat.rotateAroundY((float) (-this.rotationYaw * Math.PI / 180)); - double x = renderX + passengerSeat.xCoord; - double y = renderY + passengerSeat.yCoord; - double z = renderZ + passengerSeat.zCoord; - dummySeat.setPosition(x, y - 1, z); - passengerSeats[nearestSeat] = dummySeat; - worldObj.spawnEntityInWorld(dummySeat); - player.mountEntity(dummySeat); - } - - return true; + return nearestSeat; } @Override @@ -266,4 +279,15 @@ public abstract class EntityRailCarRidable extends EntityRailCarCargo { } } } + + @Override + @SideOnly(Side.CLIENT) + public void printHook(RenderGameOverlayEvent.Pre event, World world, int x, int y, int z) { + List text = new ArrayList(); + /*text.add("LTU: " + this.ltu); + text.add("Front: " + this.coupledFront); + text.add("Back: " + this.coupledBack);*/ + text.add("Nearest seat: " + this.getNearestSeat(MainRegistry.proxy.me())); + ILookOverlay.printGeneric(event, this.toString(), 0xffff00, 0x404000, text); + } } diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 68e243c6e..31a779355 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -104,6 +104,7 @@ import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.entity.RenderPlayer; import net.minecraft.client.settings.KeyBinding; +import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Items; import net.minecraft.inventory.Slot; @@ -171,13 +172,22 @@ public class ModEventHandlerClient { World world = mc.theWorld; MovingObjectPosition mop = mc.objectMouseOver; - if(mop != null && mop.typeOfHit == mop.typeOfHit.BLOCK ) { + if(mop != null) { - if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof ILookOverlay) { - ((ILookOverlay) player.getHeldItem().getItem()).printHook(event, world, mop.blockX, mop.blockY, mop.blockZ); + if(mop.typeOfHit == mop.typeOfHit.BLOCK) { - } else if(world.getBlock(mop.blockX, mop.blockY, mop.blockZ) instanceof ILookOverlay) { - ((ILookOverlay) world.getBlock(mop.blockX, mop.blockY, mop.blockZ)).printHook(event, world, mop.blockX, mop.blockY, mop.blockZ); + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof ILookOverlay) { + ((ILookOverlay) player.getHeldItem().getItem()).printHook(event, world, mop.blockX, mop.blockY, mop.blockZ); + + } else if(world.getBlock(mop.blockX, mop.blockY, mop.blockZ) instanceof ILookOverlay) { + ((ILookOverlay) world.getBlock(mop.blockX, mop.blockY, mop.blockZ)).printHook(event, world, mop.blockX, mop.blockY, mop.blockZ); + } + } else if(mop.typeOfHit == mop.typeOfHit.ENTITY) { + Entity entity = mop.entityHit; + + if(entity instanceof ILookOverlay) { + ((ILookOverlay) entity).printHook(event, world, 0, 0, 0); + } } } From 46da9272d1a2734687b4c86552adb717fc3b4e57 Mon Sep 17 00:00:00 2001 From: Bob Date: Wed, 31 May 2023 22:10:51 +0200 Subject: [PATCH 078/432] assets --- .../hbm/models/machines/steamhammer.obj | 2331 +++++++++++++++++ .../textures/models/machines/steamhammer.png | Bin 0 -> 1907 bytes 2 files changed, 2331 insertions(+) create mode 100644 src/main/resources/assets/hbm/models/machines/steamhammer.obj create mode 100644 src/main/resources/assets/hbm/textures/models/machines/steamhammer.png diff --git a/src/main/resources/assets/hbm/models/machines/steamhammer.obj b/src/main/resources/assets/hbm/models/machines/steamhammer.obj new file mode 100644 index 000000000..5960e6fea --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/steamhammer.obj @@ -0,0 +1,2331 @@ +# Blender v2.79 (sub 0) OBJ File: 'steamhammer.blend' +# www.blender.org +o Piston2 +v -0.562750 2.000000 -0.687500 +v -0.187750 2.000000 -0.687500 +v -0.562750 2.000000 -1.062500 +v -0.187750 2.000000 -1.062500 +v -0.562750 2.250000 -1.062500 +v -0.562750 2.250000 -0.687500 +v -0.187750 2.250000 -0.687500 +v -0.187750 2.250000 -1.062500 +vt 0.771739 0.206349 +vt 0.804348 0.158730 +vt 0.804348 0.206349 +vt 0.771739 0.126984 +vt 0.739130 0.158730 +vt 0.739130 0.126984 +vt 0.836957 0.126984 +vt 0.804348 0.126984 +vt 0.771739 0.158730 +vt 0.869565 0.126984 +vt 0.836957 0.158730 +vt 0.869565 0.158730 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +s off +f 7/1/1 5/2/1 6/3/1 +f 4/4/2 7/5/2 2/6/2 +f 1/7/3 5/2/3 3/8/3 +f 3/8/4 8/9/4 4/4/4 +f 2/10/5 6/11/5 1/7/5 +f 7/1/1 8/9/1 5/2/1 +f 4/4/2 8/9/2 7/5/2 +f 1/7/3 6/11/3 5/2/3 +f 3/8/4 5/2/4 8/9/4 +f 2/10/5 7/12/5 6/11/5 +o Piston1 +v 0.187250 2.000000 -0.687500 +v 0.562250 2.000000 -0.687500 +v 0.187250 2.000000 -1.062500 +v 0.562250 2.000000 -1.062500 +v 0.187250 2.250000 -1.062500 +v 0.187250 2.250000 -0.687500 +v 0.562250 2.250000 -0.687500 +v 0.562250 2.250000 -1.062500 +vt 0.771739 0.206349 +vt 0.804348 0.158730 +vt 0.804348 0.206349 +vt 0.869565 0.126984 +vt 0.836957 0.158730 +vt 0.836957 0.126984 +vt 0.771739 0.126984 +vt 0.739130 0.158730 +vt 0.739130 0.126984 +vt 0.804348 0.126984 +vt 0.771739 0.158730 +vt 0.869565 0.158730 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +s off +f 15/13/6 13/14/6 14/15/6 +f 10/16/7 14/17/7 9/18/7 +f 12/19/8 15/20/8 10/21/8 +f 9/18/9 13/14/9 11/22/9 +f 11/22/10 16/23/10 12/19/10 +f 15/13/6 16/23/6 13/14/6 +f 10/16/7 15/24/7 14/17/7 +f 12/19/8 16/23/8 15/20/8 +f 9/18/9 14/17/9 13/14/9 +f 11/22/10 13/14/10 16/23/10 +o HammerRight_HammerRicht +v 1.875000 0.687500 -0.125000 +v 2.125000 0.687500 -0.125000 +v 1.875000 0.687500 -0.375000 +v 2.125000 0.687500 -0.375000 +v 1.875000 0.812500 -0.375000 +v 1.875000 0.812500 -0.125000 +v 2.125000 0.812500 -0.125000 +v 2.125000 0.812500 -0.375000 +v 1.906250 0.812500 -0.156250 +v 2.093750 0.812500 -0.156250 +v 1.906250 0.812500 -0.343750 +v 2.093750 0.812500 -0.343750 +v 1.906250 1.812500 -0.343750 +v 1.906250 1.812500 -0.156250 +v 2.093750 1.812500 -0.156250 +v 2.093750 1.812500 -0.343750 +vt 0.695652 0.507937 +vt 0.673913 0.539683 +vt 0.673913 0.507937 +vt 0.690217 0.563492 +vt 0.673913 0.555556 +vt 0.695652 0.555556 +vt 0.717391 0.539683 +vt 0.695652 0.539683 +vt 0.652174 0.555556 +vt 0.652174 0.539683 +vt 0.739130 0.539683 +vt 0.717391 0.555556 +vt 0.684783 0.587302 +vt 0.668478 0.714286 +vt 0.668478 0.587302 +vt 0.690217 0.579365 +vt 0.695652 0.587302 +vt 0.679348 0.579365 +vt 0.673913 0.587302 +vt 0.679348 0.563492 +vt 0.717391 0.587302 +vt 0.701087 0.714286 +vt 0.701087 0.587302 +vt 0.684783 0.714286 +vt 0.652174 0.714286 +vt 0.652174 0.587302 +vt 0.739130 0.555556 +vt 0.717391 0.714286 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +s off +f 19/25/11 18/26/11 17/27/11 +f 28/28/12 23/29/12 24/30/12 +f 19/31/13 24/30/13 20/32/13 +f 18/26/14 22/33/14 17/34/14 +f 20/32/15 23/29/15 18/26/15 +f 17/35/16 21/36/16 19/31/16 +f 28/37/15 31/38/15 26/39/15 +f 27/40/12 24/30/12 21/41/12 +f 25/42/12 21/41/12 22/43/12 +f 26/44/12 22/43/12 23/29/12 +f 25/45/16 29/46/16 27/47/16 +f 27/47/13 32/48/13 28/37/13 +f 26/39/14 30/49/14 25/50/14 +f 19/25/11 20/32/11 18/26/11 +f 28/28/12 26/44/12 23/29/12 +f 19/31/13 21/36/13 24/30/13 +f 18/26/14 23/29/14 22/33/14 +f 20/32/15 24/30/15 23/29/15 +f 17/35/16 22/51/16 21/36/16 +f 28/37/15 32/48/15 31/38/15 +f 27/40/12 28/28/12 24/30/12 +f 25/42/12 27/40/12 21/41/12 +f 26/44/12 25/42/12 22/43/12 +f 25/45/16 30/52/16 29/46/16 +f 27/47/13 29/46/13 32/48/13 +f 26/39/14 31/38/14 30/49/14 +o HammerLeft +v 1.875000 0.687500 0.375000 +v 2.125000 0.687500 0.375000 +v 1.875000 0.687500 0.125000 +v 2.125000 0.687500 0.125000 +v 1.875000 0.812500 0.125000 +v 1.875000 0.812500 0.375000 +v 2.125000 0.812500 0.375000 +v 2.125000 0.812500 0.125000 +v 1.906250 0.812500 0.343750 +v 2.093750 0.812500 0.343750 +v 1.906250 0.812500 0.156250 +v 2.093750 0.812500 0.156250 +v 1.906250 1.812500 0.156250 +v 1.906250 1.812500 0.343750 +v 2.093750 1.812500 0.343750 +v 2.093750 1.812500 0.156250 +vt 0.695652 0.507937 +vt 0.673913 0.539683 +vt 0.673913 0.507937 +vt 0.690217 0.563492 +vt 0.673913 0.555556 +vt 0.695652 0.555556 +vt 0.717391 0.539683 +vt 0.695652 0.539683 +vt 0.652174 0.555556 +vt 0.652174 0.539683 +vt 0.739130 0.539683 +vt 0.717391 0.555556 +vt 0.684783 0.587302 +vt 0.668478 0.714286 +vt 0.668478 0.587302 +vt 0.690217 0.579365 +vt 0.695652 0.587302 +vt 0.679348 0.579365 +vt 0.673913 0.587302 +vt 0.679348 0.563492 +vt 0.717391 0.587302 +vt 0.701087 0.714286 +vt 0.701087 0.587302 +vt 0.684783 0.714286 +vt 0.652174 0.714286 +vt 0.652174 0.587302 +vt 0.739130 0.555556 +vt 0.717391 0.714286 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +s off +f 35/53/17 34/54/17 33/55/17 +f 44/56/18 39/57/18 40/58/18 +f 35/59/19 40/58/19 36/60/19 +f 34/54/20 38/61/20 33/62/20 +f 36/60/21 39/57/21 34/54/21 +f 33/63/22 37/64/22 35/59/22 +f 44/65/21 47/66/21 42/67/21 +f 43/68/18 40/58/18 37/69/18 +f 41/70/18 37/69/18 38/71/18 +f 42/72/18 38/71/18 39/57/18 +f 41/73/22 45/74/22 43/75/22 +f 43/75/19 48/76/19 44/65/19 +f 42/67/20 46/77/20 41/78/20 +f 35/53/17 36/60/17 34/54/17 +f 44/56/18 42/72/18 39/57/18 +f 35/59/19 37/64/19 40/58/19 +f 34/54/20 39/57/20 38/61/20 +f 36/60/21 40/58/21 39/57/21 +f 33/63/22 38/79/22 37/64/22 +f 44/65/21 48/76/21 47/66/21 +f 43/68/18 44/56/18 40/58/18 +f 41/70/18 43/68/18 37/69/18 +f 42/72/18 41/70/18 38/71/18 +f 41/73/22 46/80/22 45/74/22 +f 43/75/19 45/74/19 48/76/19 +f 42/67/20 47/66/20 46/77/20 +o Main +v -1.500000 0.000000 1.500000 +v 1.500000 0.000000 1.500000 +v -1.500000 0.000000 -1.500000 +v 1.500000 0.000000 -1.500000 +v -0.500000 0.500000 1.500000 +v 0.500000 0.500000 1.500000 +v -0.500000 1.000000 1.500000 +v 0.500000 1.000000 1.500000 +v -0.500000 0.500000 -1.500000 +v 0.500000 0.500000 -1.500000 +v -0.500000 1.000000 -1.500000 +v 0.500000 1.000000 -1.500000 +v -1.187500 0.500000 -1.500000 +v -0.812500 0.500000 -1.500000 +v -1.187500 0.687500 -1.500000 +v -0.812500 0.687500 -1.500000 +v -1.187500 0.500000 1.500000 +v -0.812500 0.500000 1.500000 +v -1.187500 0.687500 1.500000 +v -0.812500 0.687500 1.500000 +v -0.500000 0.500000 -1.250000 +v 0.500000 0.500000 -1.250000 +v -0.500000 1.000000 -1.250000 +v 0.500000 1.000000 -1.250000 +v -1.187500 0.500000 -1.250000 +v -0.812500 0.500000 -1.250000 +v -1.187500 0.687500 -1.250000 +v -0.812500 0.687500 -1.250000 +v -0.500000 0.500000 1.250000 +v 0.500000 0.500000 1.250000 +v -0.500000 1.000000 1.250000 +v 0.500000 1.000000 1.250000 +v -1.187500 0.500000 1.250000 +v -0.812500 0.500000 1.250000 +v -1.187500 0.687500 1.250000 +v -0.812500 0.687500 1.250000 +v -1.500000 0.500000 1.500000 +v 1.500000 0.500000 1.500000 +v -1.500000 0.500000 -1.500000 +v 1.500000 0.500000 -1.500000 +v 1.249500 0.500000 -1.250000 +v 1.249500 0.500000 1.250000 +v -1.250000 0.500000 -1.250000 +v -1.250000 0.500000 1.250000 +v 1.249500 1.500000 -1.250000 +v 1.249500 1.500000 1.250000 +v -1.250000 1.500000 -1.250000 +v -1.250000 1.500000 1.250000 +v 1.249500 2.000000 -0.500000 +v 1.249500 2.000000 0.500000 +v -1.250000 2.000000 -0.500000 +v -1.250000 2.000000 0.500000 +v 1.750000 1.875000 0.500000 +v 2.250000 1.875000 0.500000 +v 1.750000 1.875000 -0.500000 +v 2.250000 1.875000 -0.500000 +v 1.750000 3.375000 -0.500000 +v 1.750000 3.375000 0.500000 +v 2.250000 3.375000 0.500000 +v 2.250000 3.375000 -0.500000 +v 0.250000 2.000000 0.375000 +v 0.250000 2.000000 -0.375000 +v 1.000000 2.000000 -0.375000 +v 1.000000 2.000000 0.375000 +v 1.250000 2.250000 0.375000 +v 1.000000 2.750000 0.375000 +v 1.250000 2.250000 -0.375000 +v 1.000000 2.750000 -0.375000 +v 1.750000 2.750000 -0.375000 +v 1.750000 2.250000 -0.375000 +v 1.750000 2.750000 0.375000 +v 1.750000 2.250000 0.375000 +v 1.812500 1.875000 -0.437500 +v 1.812500 1.875000 0.437500 +v 2.187500 1.875000 0.437500 +v 2.187500 1.875000 -0.437500 +v 1.812500 1.812500 -0.437500 +v 1.812500 1.812500 0.437500 +v 2.187500 1.812500 0.437500 +v 2.187500 1.812500 -0.437500 +v 1.875000 3.500000 -0.375000 +v 1.875000 3.500000 0.375000 +v 2.125000 3.500000 0.375000 +v 2.125000 3.500000 -0.375000 +v 1.875000 3.250000 -0.500000 +v 1.786612 3.213388 -0.500000 +v 1.750000 3.125000 -0.500000 +v 1.786612 3.036612 -0.500000 +v 1.875000 3.000000 -0.500000 +v 1.963388 3.036612 -0.500000 +v 2.000000 3.125000 -0.500000 +v 1.963388 3.213388 -0.500000 +v 1.875000 3.176777 -0.676777 +v 1.786612 3.150888 -0.650888 +v 1.750000 3.088388 -0.588388 +v 1.786612 3.025888 -0.525888 +v 1.963388 3.025888 -0.525888 +v 2.000000 3.088388 -0.588388 +v 1.963388 3.150888 -0.650888 +v 1.875000 3.000000 -0.750000 +v 1.786612 3.000000 -0.713388 +v 1.750000 3.000000 -0.625000 +v 1.786612 3.000000 -0.536612 +v 1.963388 3.000000 -0.536612 +v 2.000000 3.000000 -0.625000 +v 1.963388 3.000000 -0.713388 +v 1.875000 1.875000 -0.500000 +v 1.875000 1.875000 -0.750000 +v 1.786612 1.875000 -0.713388 +v 1.750000 1.875000 -0.625000 +v 1.786612 1.875000 -0.536612 +v 1.963388 1.875000 -0.536612 +v 2.000000 1.875000 -0.625000 +v 1.963388 1.875000 -0.713388 +v 1.838388 1.786612 -0.500000 +v 1.838388 1.786612 -0.750000 +v 1.775888 1.849112 -0.713388 +v 1.775888 1.849112 -0.536612 +v 1.900888 1.724112 -0.536612 +v 1.926777 1.698223 -0.625000 +v 1.900888 1.724112 -0.713388 +v 1.750000 1.750000 -0.500000 +v 1.750000 1.750000 -0.750000 +v 1.750000 1.838388 -0.713388 +v 1.750000 1.838388 -0.536612 +v 1.750000 1.661612 -0.536612 +v 1.750000 1.625000 -0.625000 +v 1.750000 1.661612 -0.713388 +v 1.250000 1.875000 -0.625000 +v 1.250000 1.750000 -0.500000 +v 1.250000 1.750000 -0.750000 +v 1.250000 1.838388 -0.713388 +v 1.250000 1.838388 -0.536612 +v 1.250000 1.661612 -0.536612 +v 1.250000 1.625000 -0.625000 +v 1.250000 1.661612 -0.713388 +v 2.000000 3.500000 0.125000 +v 1.911612 3.500000 0.161612 +v 1.875000 3.500000 0.250000 +v 1.911612 3.500000 0.338388 +v 2.000000 3.500000 0.375000 +v 2.088388 3.500000 0.338388 +v 2.125000 3.500000 0.250000 +v 2.088388 3.500000 0.161612 +v 1.963388 3.588388 0.125000 +v 1.900888 3.525888 0.161612 +v 1.900888 3.525888 0.338388 +v 1.963388 3.588388 0.375000 +v 2.025888 3.650888 0.338388 +v 2.051777 3.676777 0.250000 +v 2.025888 3.650888 0.161612 +v 1.875000 3.625000 0.125000 +v 1.875000 3.536612 0.161612 +v 1.875000 3.536612 0.338388 +v 1.875000 3.625000 0.375000 +v 1.875000 3.713388 0.338388 +v 1.875000 3.750000 0.250000 +v 1.875000 3.713388 0.161612 +v 1.625000 3.500000 0.250000 +v 1.625000 3.625000 0.125000 +v 1.625000 3.536612 0.161612 +v 1.625000 3.536612 0.338388 +v 1.625000 3.625000 0.375000 +v 1.625000 3.713388 0.338388 +v 1.625000 3.750000 0.250000 +v 1.625000 3.713388 0.161612 +v 1.536612 3.588388 0.125000 +v 1.599111 3.525888 0.161612 +v 1.599111 3.525888 0.338388 +v 1.536612 3.588388 0.375000 +v 1.474112 3.650888 0.338388 +v 1.448223 3.676777 0.250000 +v 1.474112 3.650888 0.161612 +v 1.500000 3.500000 0.125000 +v 1.588388 3.500000 0.161612 +v 1.588388 3.500000 0.338388 +v 1.500000 3.500000 0.375000 +v 1.411612 3.500000 0.338388 +v 1.375000 3.500000 0.250000 +v 1.411612 3.500000 0.161612 +v 1.625000 3.000000 0.250000 +v 1.500000 3.000000 0.125000 +v 1.588388 3.000000 0.161612 +v 1.588388 3.000000 0.338388 +v 1.500000 3.000000 0.375000 +v 1.411612 3.000000 0.338388 +v 1.375000 3.000000 0.250000 +v 1.411612 3.000000 0.161612 +v 1.551777 2.823223 0.250000 +v 1.463388 2.911612 0.125000 +v 1.525888 2.849112 0.161612 +v 1.525888 2.849112 0.338388 +v 1.463388 2.911612 0.375000 +v 1.400888 2.974112 0.338388 +v 1.400888 2.974112 0.161612 +v 1.375000 2.750000 0.250000 +v 1.375000 2.875000 0.125000 +v 1.375000 2.786612 0.161612 +v 1.375000 2.786612 0.338388 +v 1.375000 2.875000 0.375000 +v 1.375000 2.963388 0.338388 +v 1.375000 2.963388 0.161612 +v 0.250000 3.000000 0.250000 +v 0.250000 2.750000 0.250000 +v 0.250000 2.875000 0.125000 +v 0.250000 2.786612 0.161612 +v 0.250000 2.786612 0.338388 +v 0.250000 2.875000 0.375000 +v 0.250000 2.963388 0.338388 +v 0.250000 2.963388 0.161612 +v 0.073223 2.926777 0.250000 +v 0.161612 2.838388 0.125000 +v 0.224112 2.775889 0.161612 +v 0.224112 2.775889 0.338388 +v 0.161612 2.838388 0.375000 +v 0.099112 2.900888 0.338388 +v 0.099112 2.900888 0.161612 +v 0.000000 2.750000 0.250000 +v 0.125000 2.750000 0.125000 +v 0.213388 2.750000 0.161612 +v 0.213388 2.750000 0.338388 +v 0.125000 2.750000 0.375000 +v 0.036612 2.750000 0.338388 +v 0.036612 2.750000 0.161612 +v 0.250000 2.000000 0.250000 +v 0.000000 2.000000 0.250000 +v 0.125000 2.000000 0.125000 +v 0.213388 2.000000 0.161612 +v 0.213388 2.000000 0.338388 +v 0.125000 2.000000 0.375000 +v 0.036612 2.000000 0.338388 +v 0.036612 2.000000 0.161612 +v 1.812500 1.812500 0.062500 +v 2.187500 1.812500 0.062500 +v 1.812500 1.812500 -0.062500 +v 2.187500 1.812500 -0.062500 +v 2.187500 1.875000 -0.062500 +v 1.812500 1.875000 -0.062500 +v 1.812500 1.875000 0.062500 +v 2.187500 1.875000 0.062500 +v 0.124750 2.000000 -0.625000 +v 0.624750 2.000000 -0.625000 +v 0.124750 2.000000 -1.125000 +v 0.624750 2.000000 -1.125000 +v 0.124750 1.500000 -1.125000 +v 0.124750 1.500000 -0.625000 +v 0.624750 1.500000 -0.625000 +v 0.624750 1.500000 -1.125000 +v -0.625250 2.000000 -0.625000 +v -0.125250 2.000000 -0.625000 +v -0.625250 2.000000 -1.125000 +v -0.125250 2.000000 -1.125000 +v -0.625250 1.500000 -1.125000 +v -0.625250 1.500000 -0.625000 +v -0.125250 1.500000 -0.625000 +v -0.125250 1.500000 -1.125000 +v 2.125000 3.250000 -0.500000 +v 2.036612 3.213388 -0.500000 +v 2.000000 3.125000 -0.500000 +v 2.036612 3.036612 -0.500000 +v 2.125000 3.000000 -0.500000 +v 2.213388 3.036612 -0.500000 +v 2.250000 3.125000 -0.500000 +v 2.213388 3.213388 -0.500000 +v 2.125000 3.176777 -0.676777 +v 2.036612 3.150888 -0.650888 +v 2.000000 3.088388 -0.588388 +v 2.036612 3.025888 -0.525888 +v 2.213388 3.025888 -0.525888 +v 2.250000 3.088388 -0.588388 +v 2.213388 3.150888 -0.650888 +v 2.125000 3.000000 -0.750000 +v 2.036612 3.000000 -0.713388 +v 2.000000 3.000000 -0.625000 +v 2.036612 3.000000 -0.536612 +v 2.213388 3.000000 -0.536612 +v 2.250000 3.000000 -0.625000 +v 2.213388 3.000000 -0.713388 +v 2.125000 1.625000 -0.500000 +v 2.125000 1.625000 -0.750000 +v 2.036612 1.625000 -0.713388 +v 2.000000 1.625000 -0.625000 +v 2.036612 1.625000 -0.536612 +v 2.213388 1.625000 -0.536612 +v 2.250000 1.625000 -0.625000 +v 2.213388 1.625000 -0.713388 +v 2.088388 1.536612 -0.500000 +v 2.088388 1.536612 -0.750000 +v 2.025888 1.599112 -0.713388 +v 2.025888 1.599112 -0.536612 +v 2.150888 1.474112 -0.536612 +v 2.176777 1.448223 -0.625000 +v 2.150888 1.474112 -0.713388 +v 2.000000 1.500000 -0.500000 +v 2.000000 1.500000 -0.750000 +v 2.000000 1.588388 -0.713388 +v 2.000000 1.588388 -0.536612 +v 2.000000 1.411612 -0.536612 +v 2.000000 1.375000 -0.625000 +v 2.000000 1.411612 -0.713388 +v 1.250000 1.625000 -0.625000 +v 1.250000 1.500000 -0.500000 +v 1.250000 1.500000 -0.750000 +v 1.250000 1.588388 -0.713388 +v 1.250000 1.588388 -0.536612 +v 1.250000 1.411612 -0.536612 +v 1.250000 1.375000 -0.625000 +v 1.250000 1.411612 -0.713388 +v 0.124750 2.000000 1.125000 +v 0.624750 2.000000 1.125000 +v 0.124750 2.000000 0.625000 +v 0.624750 2.000000 0.625000 +v 0.124750 1.500000 0.625000 +v 0.124750 1.500000 1.125000 +v 0.624750 1.500000 1.125000 +v 0.624750 1.500000 0.625000 +v -0.625250 2.000000 1.125000 +v -0.125250 2.000000 1.125000 +v -0.625250 2.000000 0.625000 +v -0.125250 2.000000 0.625000 +v -0.625250 1.500000 0.625000 +v -0.625250 1.500000 1.125000 +v -0.125250 1.500000 1.125000 +v -0.125250 1.500000 0.625000 +v -0.562750 2.000000 1.062500 +v -0.187750 2.000000 1.062500 +v -0.562750 2.000000 0.687500 +v -0.187750 2.000000 0.687500 +v -0.500250 2.000000 1.000000 +v -0.250250 2.000000 1.000000 +v -0.500250 2.000000 0.750000 +v -0.250250 2.000000 0.750000 +v -0.562750 2.125000 0.687500 +v -0.562750 2.125000 1.062500 +v -0.187750 2.125000 1.062500 +v -0.187750 2.125000 0.687500 +v -0.500250 2.125000 0.750000 +v -0.500250 2.125000 1.000000 +v -0.250250 2.125000 1.000000 +v -0.250250 2.125000 0.750000 +v -0.406500 2.062500 1.000000 +v -0.406500 2.062500 0.750000 +v -0.469000 2.062500 1.000000 +v -0.469000 2.062500 0.750000 +v -0.281500 2.062500 1.000000 +v -0.281500 2.062500 0.750000 +v -0.344000 2.062500 1.000000 +v -0.344000 2.062500 0.750000 +v 0.187250 2.000000 1.062500 +v 0.562250 2.000000 1.062500 +v 0.187250 2.000000 0.687500 +v 0.562250 2.000000 0.687500 +v 0.249750 2.000000 1.000000 +v 0.499750 2.000000 1.000000 +v 0.249750 2.000000 0.750000 +v 0.499750 2.000000 0.750000 +v 0.187250 2.125000 0.687500 +v 0.187250 2.125000 1.062500 +v 0.562250 2.125000 1.062500 +v 0.562250 2.125000 0.687500 +v 0.249750 2.125000 0.750000 +v 0.249750 2.125000 1.000000 +v 0.499750 2.125000 1.000000 +v 0.499750 2.125000 0.750000 +v 0.343500 2.062500 1.000000 +v 0.343500 2.062500 0.750000 +v 0.281000 2.062500 1.000000 +v 0.281000 2.062500 0.750000 +v 0.468500 2.062500 1.000000 +v 0.468500 2.062500 0.750000 +v 0.406000 2.062500 1.000000 +v 0.406000 2.062500 0.750000 +v 2.000000 3.500000 -0.375000 +v 1.911612 3.500000 -0.338388 +v 1.875000 3.500000 -0.250000 +v 1.911612 3.500000 -0.161612 +v 2.000000 3.500000 -0.125000 +v 2.088388 3.500000 -0.161612 +v 2.125000 3.500000 -0.250000 +v 2.088388 3.500000 -0.338388 +v 1.963388 3.588388 -0.375000 +v 1.900888 3.525888 -0.338388 +v 1.900888 3.525888 -0.161612 +v 1.963388 3.588388 -0.125000 +v 2.025888 3.650888 -0.161612 +v 2.051777 3.676777 -0.250000 +v 2.025888 3.650888 -0.338388 +v 1.875000 3.625000 -0.375000 +v 1.875000 3.536612 -0.338388 +v 1.875000 3.536612 -0.161612 +v 1.875000 3.625000 -0.125000 +v 1.875000 3.713388 -0.161612 +v 1.875000 3.750000 -0.250000 +v 1.875000 3.713388 -0.338388 +v 1.625000 3.500000 -0.250000 +v 1.625000 3.625000 -0.375000 +v 1.625000 3.536612 -0.338388 +v 1.625000 3.536612 -0.161612 +v 1.625000 3.625000 -0.125000 +v 1.625000 3.713388 -0.161612 +v 1.625000 3.750000 -0.250000 +v 1.625000 3.713388 -0.338388 +v 1.536612 3.588388 -0.375000 +v 1.599111 3.525888 -0.338388 +v 1.599111 3.525888 -0.161612 +v 1.536612 3.588388 -0.125000 +v 1.474112 3.650888 -0.161612 +v 1.448223 3.676777 -0.250000 +v 1.474112 3.650888 -0.338388 +v 1.500000 3.500000 -0.375000 +v 1.588388 3.500000 -0.338388 +v 1.588388 3.500000 -0.161612 +v 1.500000 3.500000 -0.125000 +v 1.411612 3.500000 -0.161612 +v 1.375000 3.500000 -0.250000 +v 1.411612 3.500000 -0.338388 +v 1.625000 3.000000 -0.250000 +v 1.500000 3.000000 -0.375000 +v 1.588388 3.000000 -0.338388 +v 1.588388 3.000000 -0.161612 +v 1.500000 3.000000 -0.125000 +v 1.411612 3.000000 -0.161612 +v 1.375000 3.000000 -0.250000 +v 1.411612 3.000000 -0.338388 +v 1.551777 2.823223 -0.250000 +v 1.463388 2.911612 -0.375000 +v 1.525888 2.849112 -0.338388 +v 1.525888 2.849112 -0.161612 +v 1.463388 2.911612 -0.125000 +v 1.400888 2.974112 -0.161612 +v 1.400888 2.974112 -0.338388 +v 1.375000 2.750000 -0.250000 +v 1.375000 2.875000 -0.375000 +v 1.375000 2.786612 -0.338388 +v 1.375000 2.786612 -0.161612 +v 1.375000 2.875000 -0.125000 +v 1.375000 2.963388 -0.161612 +v 1.375000 2.963388 -0.338388 +v 0.250000 3.000000 -0.250000 +v 0.250000 2.750000 -0.250000 +v 0.250000 2.875000 -0.375000 +v 0.250000 2.786612 -0.338388 +v 0.250000 2.786612 -0.161612 +v 0.250000 2.875000 -0.125000 +v 0.250000 2.963388 -0.161612 +v 0.250000 2.963388 -0.338388 +v 0.073223 2.926777 -0.250000 +v 0.161612 2.838388 -0.375000 +v 0.224112 2.775889 -0.338388 +v 0.224112 2.775889 -0.161612 +v 0.161612 2.838388 -0.125000 +v 0.099112 2.900888 -0.161612 +v 0.099112 2.900888 -0.338388 +v 0.000000 2.750000 -0.250000 +v 0.125000 2.750000 -0.375000 +v 0.213388 2.750000 -0.338388 +v 0.213388 2.750000 -0.161612 +v 0.125000 2.750000 -0.125000 +v 0.036612 2.750000 -0.161612 +v 0.036612 2.750000 -0.338388 +v 0.250000 2.000000 -0.250000 +v 0.000000 2.000000 -0.250000 +v 0.125000 2.000000 -0.375000 +v 0.213388 2.000000 -0.338388 +v 0.213388 2.000000 -0.161612 +v 0.125000 2.000000 -0.125000 +v 0.036612 2.000000 -0.161612 +v 0.036612 2.000000 -0.338388 +vt 0.304348 -0.000000 +vt 0.043478 0.380952 +vt 0.043478 -0.000000 +vt 0.282609 0.730159 +vt 0.239130 0.698413 +vt 0.282609 0.698413 +vt 0.239130 0.539683 +vt 0.282609 0.571429 +vt 0.239130 0.571429 +vt 0.217391 0.690476 +vt 0.201087 0.658730 +vt 0.217391 0.658730 +vt 0.201087 0.579365 +vt 0.217391 0.611111 +vt 0.201087 0.611111 +vt 0.179348 0.658730 +vt 0.217391 0.698413 +vt 0.146739 0.658730 +vt 0.130435 0.690476 +vt 0.130435 0.658730 +vt 0.146739 0.611111 +vt 0.168478 0.658730 +vt 0.065217 0.571429 +vt 0.108696 0.539683 +vt 0.108696 0.571429 +vt 0.108696 0.698413 +vt 0.065217 0.730159 +vt 0.065217 0.698413 +vt 0.130435 0.611111 +vt 0.146739 0.579365 +vt 0.130435 0.698413 +vt 0.304348 0.444444 +vt 0.304348 0.380952 +vt 0.043478 0.825397 +vt 0.304348 0.888889 +vt 0.043478 0.888889 +vt -0.000000 0.444444 +vt 0.043478 0.571429 +vt 0.043478 0.698413 +vt 0.304348 0.698413 +vt 0.304348 0.571429 +vt 0.347826 0.444444 +vt 0.065217 0.476190 +vt 0.043478 0.444444 +vt 0.065217 0.571429 +vt 0.282609 0.476190 +vt 0.282609 0.571429 +vt 0.282609 0.738095 +vt 0.304348 0.738095 +vt 0.065217 0.738095 +vt 0.065217 0.698413 +vt 0.065217 0.793651 +vt 0.304348 0.825397 +vt 0.304348 0.785714 +vt 0.282609 0.793651 +vt 0.282609 0.785714 +vt 0.043478 0.785714 +vt 0.065217 0.785714 +vt 0.652174 0.698413 +vt 0.434783 0.698413 +vt 0.500000 0.507937 +vt 0.652174 0.507937 +vt 0.695652 0.412698 +vt 0.722826 0.452381 +vt 0.391304 0.412698 +vt 0.434783 0.507937 +vt 0.364130 0.452381 +vt 0.586957 0.190476 +vt 0.652174 0.190476 +vt 0.434783 0.190476 +vt 0.500000 0.190476 +vt 0.586957 0.507937 +vt 0.434783 -0.000000 +vt 0.652174 0.000000 +vt 0.353261 0.753968 +vt 0.347826 0.706349 +vt 0.353261 0.706349 +vt 0.521739 0.952381 +vt 0.489130 0.968254 +vt 0.478261 0.952381 +vt 0.478261 0.761905 +vt 0.391304 0.952381 +vt 0.391304 0.761905 +vt 0.608696 0.761905 +vt 0.521739 0.761905 +vt 0.347826 0.952381 +vt 0.347826 0.761905 +vt 0.391304 0.753968 +vt 0.385870 0.706349 +vt 0.391304 0.706349 +vt 0.891304 0.206349 +vt 0.847826 0.301587 +vt 0.847826 0.206349 +vt 0.782609 0.206349 +vt 0.739130 0.269841 +vt 0.739130 0.206349 +vt 0.934783 0.269841 +vt 0.891304 0.301587 +vt 0.804348 0.269841 +vt 0.804348 0.206349 +vt 0.782609 0.269841 +vt 0.739130 0.301587 +vt 0.353261 0.706349 +vt 0.385870 0.753968 +vt 0.353261 0.753968 +vt 0.782609 0.301587 +vt 0.782609 0.396825 +vt 0.956522 0.301587 +vt 0.847826 0.396825 +vt 0.891304 0.396825 +vt 0.385870 0.761905 +vt 0.385870 0.753968 +vt 0.472826 0.706349 +vt 0.478261 0.698413 +vt 0.391304 0.698413 +vt 0.396739 0.753968 +vt 0.429348 0.753968 +vt 0.440217 0.706349 +vt 0.440217 0.753968 +vt 0.347826 0.706349 +vt 0.347826 0.753968 +vt 0.385870 0.706349 +vt 0.391304 0.753968 +vt 0.402174 0.968254 +vt 0.467391 1.000000 +vt 0.402174 1.000000 +vt 0.358696 0.968254 +vt 0.608696 0.952381 +vt 0.532609 0.968254 +vt 0.385870 0.761905 +vt 0.385870 0.698413 +vt 0.385870 0.698413 +vt 0.472826 0.753968 +vt 0.429348 0.706349 +vt 0.869565 0.126984 +vt 0.913043 0.063492 +vt 0.913043 0.126984 +vt 0.869565 0.126984 +vt 0.913043 0.063492 +vt 0.913043 0.126984 +vt 0.869565 0.063492 +vt 0.913043 -0.000000 +vt 0.956522 0.063492 +vt 1.000000 -0.000000 +vt 1.000000 0.063492 +vt 0.826087 0.063492 +vt 0.869565 -0.000000 +vt 0.956522 -0.000000 +vt 0.869565 0.063492 +vt 0.913043 -0.000000 +vt 0.956522 0.063492 +vt 1.000000 -0.000000 +vt 1.000000 0.063492 +vt 0.826087 0.063492 +vt 0.869565 -0.000000 +vt 0.956522 -0.000000 +vt 0.739130 0.063492 +vt 0.695652 0.126984 +vt 0.695652 0.063492 +vt 0.739130 0.063492 +vt 0.695652 0.126984 +vt 0.695652 0.063492 +vt 0.782609 0.063492 +vt 0.826087 0.000000 +vt 0.826087 0.063492 +vt 0.739130 0.000000 +vt 0.782609 0.000000 +vt 0.652174 0.063492 +vt 0.695652 0.000000 +vt 0.782609 0.063492 +vt 0.826087 0.000000 +vt 0.826087 0.063492 +vt 0.739130 0.000000 +vt 0.782609 0.000000 +vt 0.652174 0.063492 +vt 0.695652 0.000000 +vt 0.673913 0.071429 +vt 0.652174 0.079365 +vt 0.652174 0.071429 +vt 0.673913 0.063492 +vt 0.652174 0.071429 +vt 0.652174 0.063492 +vt 0.673913 0.063492 +vt 0.652174 0.071429 +vt 0.652174 0.063492 +vt 0.673913 0.071429 +vt 0.652174 0.079365 +vt 0.652174 0.071429 +vt 0.798913 0.095238 +vt 0.771739 0.079365 +vt 0.804348 0.079365 +vt 0.766304 0.095238 +vt 0.739130 0.079365 +vt 0.831522 0.095238 +vt 0.836957 0.079365 +vt 0.864130 0.095238 +vt 0.869565 0.079365 +vt 0.842391 0.111111 +vt 0.864130 0.111111 +vt 0.777174 0.111111 +vt 0.798913 0.111111 +vt 0.869565 0.063492 +vt 0.836957 0.063492 +vt 0.804348 0.063492 +vt 0.771739 0.063492 +vt 0.809783 0.111111 +vt 0.831522 0.111111 +vt 0.744565 0.111111 +vt 0.766304 0.111111 +vt 0.739130 0.063492 +vt 0.798913 0.095238 +vt 0.771739 0.079365 +vt 0.804348 0.079365 +vt 0.766304 0.095238 +vt 0.739130 0.079365 +vt 0.831522 0.095238 +vt 0.836957 0.079365 +vt 0.864130 0.095238 +vt 0.869565 0.079365 +vt 0.842391 0.111111 +vt 0.864130 0.111111 +vt 0.777174 0.111111 +vt 0.798913 0.111111 +vt 0.869565 0.063492 +vt 0.836957 0.063492 +vt 0.804348 0.063492 +vt 0.771739 0.063492 +vt 0.809783 0.111111 +vt 0.831522 0.111111 +vt 0.744565 0.111111 +vt 0.766304 0.111111 +vt 0.739130 0.063492 +vt 0.239130 0.730159 +vt 0.282609 0.539683 +vt 0.201087 0.690476 +vt 0.217391 0.579365 +vt 0.179348 0.611111 +vt 0.217391 0.571429 +vt 0.146739 0.690476 +vt 0.168478 0.611111 +vt 0.065217 0.539683 +vt 0.108696 0.730159 +vt 0.130435 0.579365 +vt 0.130435 0.571429 +vt -0.000000 0.825397 +vt 0.043478 0.738095 +vt 0.347826 0.825397 +vt 0.282609 0.698413 +vt 0.434783 0.571429 +vt 0.652174 0.571429 +vt 0.722826 0.500000 +vt 0.739130 0.500000 +vt 0.739130 0.507937 +vt 0.739130 0.190476 +vt 0.695652 0.285714 +vt 0.739130 0.285714 +vt 0.739130 0.412698 +vt 0.739130 0.452381 +vt 0.391304 0.285714 +vt 0.347826 0.285714 +vt 0.347826 0.190476 +vt 0.347826 0.507937 +vt 0.364130 0.500000 +vt 0.347826 0.500000 +vt 0.347826 0.452381 +vt 0.347826 0.412698 +vt 0.652174 0.126984 +vt 0.434783 0.126984 +vt 0.347826 0.753968 +vt 0.510870 0.968254 +vt 0.934783 0.206349 +vt 0.956522 0.396825 +vt 0.353261 0.761905 +vt 0.396739 0.706349 +vt 0.391304 0.706349 +vt 0.467391 0.968254 +vt 0.380435 0.968254 +vt 0.597826 0.968254 +vt 0.353261 0.761905 +vt 0.353261 0.698413 +vt 0.353261 0.698413 +vt 0.826087 -0.000000 +vt 0.826087 -0.000000 +vt 0.739130 0.126984 +vt 0.739130 0.126984 +vt 0.652174 0.000000 +vt 0.652174 0.000000 +vt 0.673913 0.079365 +vt 0.673913 0.071429 +vt 0.673913 0.071429 +vt 0.673913 0.079365 +vt 0.777174 0.095238 +vt 0.744565 0.095238 +vt 0.809783 0.095238 +vt 0.842391 0.095238 +vt 0.777174 0.095238 +vt 0.744565 0.095238 +vt 0.809783 0.095238 +vt 0.842391 0.095238 +vt 0.978261 0.698413 +vt 0.967391 0.674603 +vt 0.978261 0.674603 +vt 0.945652 0.682540 +vt 0.956522 0.674603 +vt 0.956522 0.690476 +vt 0.989130 0.698413 +vt 1.000000 0.674603 +vt 1.000000 0.690476 +vt 0.967391 0.698413 +vt 0.923913 0.682540 +vt 0.913043 0.674603 +vt 0.923913 0.674603 +vt 0.989130 0.674603 +vt 0.967391 0.650794 +vt 0.913043 0.658730 +vt 0.923913 0.666667 +vt 0.989130 0.650794 +vt 0.978261 0.650794 +vt 0.945652 0.674603 +vt 0.956522 0.658730 +vt 1.000000 0.658730 +vt 0.934783 0.674603 +vt 0.945652 0.666667 +vt 0.923913 0.650794 +vt 0.934783 0.507937 +vt 0.934783 0.650794 +vt 0.956522 0.650794 +vt 0.967391 0.507937 +vt 0.913043 0.650794 +vt 0.923913 0.507937 +vt 0.989130 0.507937 +vt 0.945652 0.507937 +vt 0.945652 0.650794 +vt 0.978261 0.507937 +vt 0.956522 0.507937 +vt 1.000000 0.507937 +vt 1.000000 0.650794 +vt 0.989130 0.492063 +vt 0.978261 0.484127 +vt 0.989130 0.484127 +vt 0.934783 0.500000 +vt 0.945652 0.484127 +vt 0.978261 0.500000 +vt 0.956522 0.484127 +vt 0.923913 0.484127 +vt 0.934783 0.484127 +vt 0.967391 0.484127 +vt 0.934783 0.468254 +vt 0.967391 0.460317 +vt 0.978261 0.468254 +vt 0.989130 0.476190 +vt 0.945652 0.460317 +vt 0.956522 0.460317 +vt 1.000000 0.484127 +vt 0.913043 0.484127 +vt 0.923913 0.492063 +vt 0.923913 0.476190 +vt 0.923913 0.460317 +vt 0.934783 0.396825 +vt 0.934783 0.460317 +vt 0.967391 0.396825 +vt 0.978261 0.460317 +vt 0.989130 0.396825 +vt 0.989130 0.460317 +vt 0.913043 0.460317 +vt 0.923913 0.396825 +vt 0.945652 0.396825 +vt 1.000000 0.396825 +vt 1.000000 0.460317 +vt 0.978261 0.396825 +vt 0.956522 0.396825 +vt 0.771739 0.920635 +vt 0.782609 0.896825 +vt 0.782609 0.920635 +vt 0.793478 0.920635 +vt 0.804348 0.896825 +vt 0.804348 0.912698 +vt 0.750000 0.896825 +vt 0.760870 0.912698 +vt 0.750000 0.904762 +vt 0.771739 0.896825 +vt 0.815217 0.904762 +vt 0.771739 0.873016 +vt 0.793478 0.873016 +vt 0.793478 0.896825 +vt 0.750000 0.888889 +vt 0.760870 0.896825 +vt 0.782609 0.873016 +vt 0.815217 0.888889 +vt 0.815217 0.896825 +vt 0.739130 0.896825 +vt 0.826087 0.896825 +vt 0.804348 0.873016 +vt 0.793478 0.841270 +vt 0.804348 0.841270 +vt 0.750000 0.873016 +vt 0.760870 0.841270 +vt 0.760870 0.873016 +vt 0.739130 0.841270 +vt 0.750000 0.841270 +vt 0.771739 0.841270 +vt 0.815217 0.841270 +vt 0.815217 0.873016 +vt 0.826087 0.841270 +vt 0.826087 0.873016 +vt 0.782609 0.841270 +vt 0.760870 0.833333 +vt 0.771739 0.817460 +vt 0.782609 0.817460 +vt 0.793478 0.817460 +vt 0.815217 0.825397 +vt 0.804348 0.817460 +vt 0.815217 0.817460 +vt 0.804348 0.833333 +vt 0.750000 0.825397 +vt 0.760870 0.817460 +vt 0.793478 0.793651 +vt 0.804348 0.801587 +vt 0.750000 0.809524 +vt 0.760870 0.801587 +vt 0.771739 0.793651 +vt 0.815217 0.809524 +vt 0.782609 0.793651 +vt 0.739130 0.817460 +vt 0.750000 0.817460 +vt 0.826087 0.817460 +vt 0.760870 0.793651 +vt 0.750000 0.730159 +vt 0.760870 0.730159 +vt 0.815217 0.793651 +vt 0.826087 0.730159 +vt 0.826087 0.793651 +vt 0.771739 0.730159 +vt 0.739130 0.793651 +vt 0.750000 0.793651 +vt 0.793478 0.730159 +vt 0.804348 0.793651 +vt 0.815217 0.730159 +vt 0.782609 0.730159 +vt 0.804348 0.730159 +vt 0.760870 0.722222 +vt 0.771739 0.706349 +vt 0.771739 0.714286 +vt 0.804348 0.722222 +vt 0.815217 0.706349 +vt 0.739130 0.706349 +vt 0.750000 0.706349 +vt 0.793478 0.706349 +vt 0.804348 0.706349 +vt 0.760870 0.706349 +vt 0.826087 0.706349 +vt 0.750000 0.682540 +vt 0.760870 0.690476 +vt 0.826087 0.682540 +vt 0.771739 0.698413 +vt 0.815217 0.682540 +vt 0.793478 0.698413 +vt 0.804348 0.690476 +vt 0.782609 0.706349 +vt 0.793478 0.714286 +vt 0.782609 0.682540 +vt 0.793478 0.539683 +vt 0.793478 0.682540 +vt 0.815217 0.539683 +vt 0.826087 0.539683 +vt 0.771739 0.682540 +vt 0.782609 0.539683 +vt 0.760870 0.682540 +vt 0.771739 0.539683 +vt 0.804348 0.682540 +vt 0.739130 0.682540 +vt 0.750000 0.539683 +vt 0.804348 0.539683 +vt 0.760870 0.539683 +vt 0.760870 0.531746 +vt 0.771739 0.515873 +vt 0.804348 0.531746 +vt 0.815217 0.515873 +vt 0.815217 0.523810 +vt 0.782609 0.515873 +vt 0.793478 0.515873 +vt 0.804348 0.515873 +vt 0.750000 0.523810 +vt 0.760870 0.515873 +vt 0.793478 0.492063 +vt 0.771739 0.492063 +vt 0.815217 0.507937 +vt 0.782609 0.492063 +vt 0.804348 0.500000 +vt 0.750000 0.507937 +vt 0.760870 0.500000 +vt 0.739130 0.515873 +vt 0.750000 0.515873 +vt 0.826087 0.515873 +vt 0.815217 0.492063 +vt 0.826087 0.396825 +vt 0.826087 0.492063 +vt 0.793478 0.396825 +vt 0.739130 0.492063 +vt 0.750000 0.396825 +vt 0.750000 0.492063 +vt 0.760870 0.492063 +vt 0.771739 0.396825 +vt 0.804348 0.492063 +vt 0.815217 0.396825 +vt 0.782609 0.396825 +vt 0.804348 0.396825 +vt 0.760870 0.396825 +vt 0.858696 0.746032 +vt 0.869565 0.738095 +vt 0.869565 0.753968 +vt 0.891304 0.761905 +vt 0.880435 0.738095 +vt 0.891304 0.738095 +vt 0.913043 0.753968 +vt 0.902174 0.738095 +vt 0.913043 0.738095 +vt 0.880435 0.761905 +vt 0.836957 0.746032 +vt 0.826087 0.738095 +vt 0.836957 0.738095 +vt 0.902174 0.761905 +vt 0.880435 0.714286 +vt 0.826087 0.722222 +vt 0.836957 0.730159 +vt 0.902174 0.714286 +vt 0.891304 0.714286 +vt 0.858696 0.738095 +vt 0.869565 0.722222 +vt 0.913043 0.722222 +vt 0.847826 0.738095 +vt 0.858696 0.730159 +vt 0.836957 0.714286 +vt 0.847826 0.539683 +vt 0.847826 0.714286 +vt 0.869565 0.714286 +vt 0.880435 0.539683 +vt 0.826087 0.714286 +vt 0.836957 0.539683 +vt 0.902174 0.539683 +vt 0.858696 0.539683 +vt 0.858696 0.714286 +vt 0.891304 0.539683 +vt 0.869565 0.539683 +vt 0.913043 0.539683 +vt 0.913043 0.714286 +vt 0.891304 0.531746 +vt 0.902174 0.515873 +vt 0.902174 0.523810 +vt 0.847826 0.515873 +vt 0.858696 0.515873 +vt 0.891304 0.515873 +vt 0.869565 0.515873 +vt 0.847826 0.531746 +vt 0.836957 0.515873 +vt 0.880435 0.515873 +vt 0.847826 0.500000 +vt 0.880435 0.492063 +vt 0.891304 0.500000 +vt 0.902174 0.507937 +vt 0.858696 0.492063 +vt 0.869565 0.492063 +vt 0.913043 0.515873 +vt 0.826087 0.515873 +vt 0.836957 0.523810 +vt 0.836957 0.507937 +vt 0.836957 0.492063 +vt 0.847826 0.396825 +vt 0.847826 0.492063 +vt 0.880435 0.396825 +vt 0.891304 0.492063 +vt 0.902174 0.396825 +vt 0.902174 0.492063 +vt 0.826087 0.492063 +vt 0.836957 0.396825 +vt 0.858696 0.396825 +vt 0.913043 0.396825 +vt 0.913043 0.492063 +vt 0.891304 0.396825 +vt 0.869565 0.396825 +vt 0.771739 0.920635 +vt 0.782609 0.896825 +vt 0.782609 0.920635 +vt 0.793478 0.896825 +vt 0.804348 0.912698 +vt 0.793478 0.920635 +vt 0.750000 0.896825 +vt 0.760870 0.912698 +vt 0.750000 0.904762 +vt 0.760870 0.896825 +vt 0.804348 0.896825 +vt 0.815217 0.904762 +vt 0.771739 0.896825 +vt 0.782609 0.873016 +vt 0.793478 0.873016 +vt 0.750000 0.888889 +vt 0.771739 0.873016 +vt 0.815217 0.888889 +vt 0.815217 0.896825 +vt 0.739130 0.896825 +vt 0.826087 0.896825 +vt 0.804348 0.873016 +vt 0.793478 0.841270 +vt 0.804348 0.841270 +vt 0.750000 0.873016 +vt 0.760870 0.841270 +vt 0.760870 0.873016 +vt 0.739130 0.841270 +vt 0.750000 0.841270 +vt 0.771739 0.841270 +vt 0.815217 0.841270 +vt 0.815217 0.873016 +vt 0.826087 0.841270 +vt 0.826087 0.873016 +vt 0.782609 0.841270 +vt 0.760870 0.833333 +vt 0.771739 0.817460 +vt 0.793478 0.817460 +vt 0.815217 0.825397 +vt 0.804348 0.817460 +vt 0.815217 0.817460 +vt 0.782609 0.817460 +vt 0.804348 0.833333 +vt 0.750000 0.825397 +vt 0.760870 0.817460 +vt 0.793478 0.793651 +vt 0.804348 0.801587 +vt 0.750000 0.809524 +vt 0.760870 0.801587 +vt 0.771739 0.793651 +vt 0.815217 0.809524 +vt 0.782609 0.793651 +vt 0.739130 0.817460 +vt 0.750000 0.817460 +vt 0.826087 0.817460 +vt 0.760870 0.793651 +vt 0.750000 0.730159 +vt 0.760870 0.730159 +vt 0.815217 0.793651 +vt 0.826087 0.730159 +vt 0.826087 0.793651 +vt 0.771739 0.730159 +vt 0.739130 0.793651 +vt 0.750000 0.793651 +vt 0.793478 0.730159 +vt 0.804348 0.793651 +vt 0.815217 0.730159 +vt 0.782609 0.730159 +vt 0.804348 0.730159 +vt 0.760870 0.722222 +vt 0.771739 0.706349 +vt 0.771739 0.714286 +vt 0.804348 0.722222 +vt 0.815217 0.706349 +vt 0.739130 0.730159 +vt 0.750000 0.706349 +vt 0.793478 0.706349 +vt 0.804348 0.706349 +vt 0.760870 0.706349 +vt 0.826087 0.706349 +vt 0.750000 0.682540 +vt 0.760870 0.690476 +vt 0.815217 0.682540 +vt 0.826087 0.682540 +vt 0.771739 0.698413 +vt 0.739130 0.706349 +vt 0.793478 0.698413 +vt 0.804348 0.690476 +vt 0.782609 0.706349 +vt 0.793478 0.714286 +vt 0.782609 0.682540 +vt 0.793478 0.539683 +vt 0.793478 0.682540 +vt 0.815217 0.539683 +vt 0.826087 0.539683 +vt 0.771739 0.682540 +vt 0.782609 0.539683 +vt 0.760870 0.682540 +vt 0.771739 0.539683 +vt 0.804348 0.682540 +vt 0.739130 0.682540 +vt 0.750000 0.539683 +vt 0.804348 0.539683 +vt 0.760870 0.539683 +vt 0.760870 0.531746 +vt 0.771739 0.515873 +vt 0.815217 0.523810 +vt 0.804348 0.515873 +vt 0.815217 0.515873 +vt 0.782609 0.515873 +vt 0.804348 0.531746 +vt 0.793478 0.515873 +vt 0.750000 0.515873 +vt 0.760870 0.515873 +vt 0.793478 0.492063 +vt 0.771739 0.492063 +vt 0.815217 0.507937 +vt 0.782609 0.492063 +vt 0.804348 0.500000 +vt 0.750000 0.507937 +vt 0.760870 0.500000 +vt 0.739130 0.515873 +vt 0.750000 0.523810 +vt 0.826087 0.515873 +vt 0.815217 0.492063 +vt 0.826087 0.396825 +vt 0.826087 0.492063 +vt 0.793478 0.396825 +vt 0.739130 0.492063 +vt 0.750000 0.396825 +vt 0.750000 0.492063 +vt 0.760870 0.492063 +vt 0.771739 0.396825 +vt 0.804348 0.492063 +vt 0.815217 0.396825 +vt 0.782609 0.396825 +vt 0.804348 0.396825 +vt 0.760870 0.396825 +vt 0.913043 0.690476 +vt 0.913043 0.507937 +vt 0.913043 0.396825 +vt 0.804348 0.880952 +vt 0.760870 0.880952 +vt 0.739130 0.873016 +vt 0.739130 0.730159 +vt 0.739130 0.539683 +vt 0.739130 0.396825 +vt 0.826087 0.753968 +vt 0.826087 0.539683 +vt 0.826087 0.396825 +vt 0.804348 0.880952 +vt 0.760870 0.880952 +vt 0.739130 0.873016 +vt 0.739130 0.539683 +vt 0.739130 0.396825 +vn 0.0000 -1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.8321 -0.5547 +vn 0.0000 0.8321 0.5547 +vn 0.0000 0.7071 -0.7071 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.0000 0.7071 0.7071 +vn 0.7071 0.7071 0.0000 +vn 0.0000 0.9239 -0.3827 +vn 0.6630 0.5293 -0.5293 +vn 0.7311 -0.6303 0.2611 +vn 0.9955 0.0670 -0.0670 +vn 0.9947 0.0948 -0.0392 +vn -0.6332 0.7150 -0.2962 +vn -0.9955 0.0670 -0.0670 +vn -0.9947 0.0948 -0.0392 +vn 0.6332 0.7150 -0.2962 +vn -0.7311 -0.6303 0.2611 +vn -0.7573 -0.4617 0.4617 +vn -0.6630 0.5293 -0.5293 +vn 0.6794 0.1447 -0.7194 +vn -0.9987 0.0196 -0.0473 +vn -0.7263 -0.1363 0.6737 +vn -0.6794 0.1447 -0.7194 +vn 0.0000 0.1866 -0.9824 +vn 0.7573 -0.4617 0.4617 +vn 0.9987 0.0196 -0.0473 +vn 0.0000 -0.1944 0.9809 +vn 0.7263 -0.1363 0.6737 +vn 0.0473 -0.0196 0.9987 +vn 0.7194 -0.1447 -0.6794 +vn -0.6737 0.1363 0.7263 +vn -0.6737 0.1363 -0.7263 +vn 0.7194 -0.1447 0.6794 +vn 0.0473 -0.0196 -0.9987 +vn 0.9824 -0.1866 0.0000 +vn 0.0670 -0.0670 -0.9955 +vn -0.4617 0.4617 -0.7573 +vn 0.5293 -0.5293 0.6630 +vn -0.4617 0.4617 0.7573 +vn 0.0670 -0.0670 0.9955 +vn 0.5293 -0.5293 -0.6630 +vn 0.0196 -0.0473 0.9987 +vn 0.1447 -0.7194 -0.6794 +vn 0.0196 -0.0473 -0.9987 +vn -0.1363 0.6737 -0.7263 +vn 0.1447 -0.7194 0.6794 +vn 0.1866 -0.9824 0.0000 +vn -0.1363 0.6737 0.7263 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.7150 0.2962 -0.6332 +vn 0.9239 0.3827 0.0000 +vn 0.7150 0.2962 0.6332 +vn 0.0670 0.0670 0.9955 +vn 0.0948 0.0392 0.9947 +vn -0.4617 -0.4617 -0.7573 +vn 0.0948 0.0392 -0.9947 +vn -0.6303 -0.2611 -0.7311 +vn 0.5293 0.5293 -0.6630 +vn -0.6303 -0.2611 0.7311 +vn 0.1447 0.7194 -0.6794 +vn 0.1447 0.7194 0.6794 +vn 0.5293 0.5293 0.6630 +vn -0.1363 -0.6737 -0.7263 +vn 0.0670 0.0670 -0.9955 +vn 0.1866 0.9824 0.0000 +vn -0.1363 -0.6737 0.7263 +vn -0.4617 -0.4617 0.7573 +vn -0.1944 -0.9809 0.0000 +vn 0.0196 0.0473 0.9987 +vn -0.1447 0.7194 0.6794 +vn -0.0196 0.0473 0.9987 +vn -0.0196 0.0473 -0.9987 +vn 0.0196 0.0473 -0.9987 +vn 0.1363 -0.6737 -0.7263 +vn -0.1447 0.7194 -0.6794 +vn 0.1363 -0.6737 0.7263 +vn -0.1866 0.9824 0.0000 +vn -0.5293 0.5293 -0.6630 +vn -0.5293 0.5293 0.6630 +vn -0.0670 0.0670 0.9955 +vn 0.4617 -0.4617 0.7573 +vn -0.0670 0.0670 -0.9955 +vn -0.7194 0.1447 0.6794 +vn -0.0473 0.0196 0.9987 +vn 0.6737 -0.1363 -0.7263 +vn -0.0473 0.0196 -0.9987 +vn -0.7194 0.1447 -0.6794 +vn 0.6737 -0.1363 0.7263 +vn -0.9824 0.1866 0.0000 +vn 0.4617 -0.4617 -0.7573 +vn -0.7071 0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +s off +f 51/81/23 50/82/23 49/83/23 +f 69/84/24 59/85/24 57/86/24 +f 72/87/25 58/88/25 60/89/25 +f 73/90/24 63/91/24 61/92/24 +f 76/93/25 62/94/25 64/95/25 +f 75/96/26 64/95/26 63/91/26 +f 71/97/26 60/89/26 59/85/26 +f 67/98/24 81/99/24 65/100/24 +f 68/101/26 83/102/26 67/98/26 +f 54/103/25 80/104/25 56/105/25 +f 55/106/24 77/107/24 53/108/24 +f 66/109/25 84/110/25 68/101/25 +f 56/105/26 79/111/26 55/106/26 +f 88/112/25 50/82/25 52/113/25 +f 85/114/24 51/115/24 49/116/24 +f 60/89/27 57/86/27 59/85/27 +f 64/95/27 61/92/27 63/91/27 +f 53/108/28 56/105/28 55/106/28 +f 65/100/28 68/101/28 67/98/28 +f 50/117/28 54/118/28 53/119/28 +f 57/120/27 58/121/27 52/122/27 +f 88/112/26 90/123/26 86/124/26 +f 54/118/26 90/123/26 78/125/26 +f 89/126/26 58/121/26 70/127/26 +f 74/128/26 57/120/26 62/129/26 +f 82/130/26 53/119/26 77/131/26 +f 92/132/26 87/133/26 85/114/26 +f 61/134/26 91/135/26 73/136/26 +f 92/132/26 65/137/26 81/138/26 +f 91/139/24 92/140/24 100/141/24 +f 95/142/27 71/143/27 76/144/27 +f 79/145/28 96/146/28 84/147/28 +f 95/142/29 97/148/29 93/149/29 +f 94/150/30 100/141/30 96/146/30 +f 98/151/26 99/152/26 100/141/26 +f 90/153/25 89/154/25 97/148/25 +f 284/155/28 286/156/28 283/157/28 +f 105/158/31 132/159/31 108/160/31 +f 104/161/25 107/162/25 102/163/25 +f 101/164/24 105/158/24 103/165/24 +f 103/165/27 108/160/27 104/161/27 +f 102/163/28 106/166/28 101/167/28 +f 124/168/27 125/169/27 121/170/27 +f 117/171/26 114/172/26 119/173/26 +f 120/174/23 115/175/23 118/176/23 +f 117/171/27 115/177/27 116/178/27 +f 119/173/28 113/179/28 120/180/28 +f 113/181/32 111/182/32 115/175/32 +f 126/183/23 282/184/23 127/185/23 +f 112/186/28 114/172/28 109/187/28 +f 111/188/27 116/178/27 115/177/27 +f 109/189/33 116/178/33 110/190/33 +f 124/191/25 284/155/25 128/192/25 +f 104/161/23 121/193/23 103/194/23 +f 101/195/23 123/196/23 102/163/23 +f 288/197/23 286/198/23 285/199/23 +f 122/200/28 127/185/28 123/201/28 +f 281/202/27 288/203/27 282/184/27 +f 128/192/23 283/157/23 125/169/23 +f 131/204/26 129/205/26 130/206/26 +f 107/162/34 130/207/34 106/166/34 +f 108/160/35 131/204/35 107/162/35 +f 106/208/33 129/209/33 105/158/33 +f 288/210/25 127/185/25 282/184/25 +f 126/183/24 287/211/24 281/202/24 +f 283/157/24 121/212/24 125/169/24 +f 285/199/23 124/213/23 104/161/23 +f 103/194/23 286/198/23 287/214/23 +f 290/215/26 291/216/26 289/217/26 +f 298/218/26 299/219/26 297/220/26 +f 292/221/27 293/222/27 291/216/27 +f 289/223/28 295/224/28 290/225/28 +f 290/226/25 296/227/25 292/221/25 +f 291/216/24 294/228/24 289/223/24 +f 300/229/27 301/230/27 299/219/27 +f 297/231/28 303/232/28 298/233/28 +f 298/234/25 304/235/25 300/229/25 +f 299/219/24 302/236/24 297/231/24 +f 358/237/26 359/238/26 357/239/26 +f 366/240/26 367/241/26 365/242/26 +f 360/243/27 361/244/27 359/245/27 +f 357/239/28 363/246/28 358/237/28 +f 358/237/25 364/247/25 360/243/25 +f 359/248/24 362/249/24 357/239/24 +f 368/250/27 369/251/27 367/252/27 +f 365/242/28 371/253/28 366/240/28 +f 366/240/25 372/254/25 368/250/25 +f 367/255/24 370/256/24 365/242/24 +f 414/257/26 415/258/26 413/259/26 +f 418/260/26 419/261/26 417/262/26 +f 394/263/26 395/264/26 393/265/26 +f 390/266/26 391/267/26 389/268/26 +f 387/269/26 382/270/26 383/271/26 +f 386/272/26 381/273/26 382/270/26 +f 388/274/26 383/271/26 384/275/26 +f 385/276/26 384/275/26 381/277/26 +f 380/278/28 385/276/28 379/279/28 +f 377/280/27 387/269/27 378/281/27 +f 375/282/27 384/275/27 376/283/27 +f 374/284/28 382/270/28 373/285/28 +f 378/286/24 388/274/24 380/287/24 +f 379/288/25 386/272/25 377/289/25 +f 376/283/25 383/271/25 374/284/25 +f 373/285/24 381/273/24 375/290/24 +f 411/291/26 406/292/26 407/293/26 +f 410/294/26 405/295/26 406/292/26 +f 412/296/26 407/293/26 408/297/26 +f 409/298/26 408/297/26 405/299/26 +f 404/300/28 409/298/28 403/301/28 +f 401/302/27 411/291/27 402/303/27 +f 399/304/27 408/297/27 400/305/27 +f 398/306/28 406/292/28 397/307/28 +f 402/308/24 412/296/24 404/309/24 +f 403/310/25 410/294/25 401/311/25 +f 400/305/25 407/293/25 398/306/25 +f 397/307/24 405/295/24 399/312/24 +f 51/81/23 52/113/23 50/82/23 +f 69/84/24 71/313/24 59/85/24 +f 72/87/25 70/314/25 58/88/25 +f 73/90/24 75/315/24 63/91/24 +f 76/93/25 74/316/25 62/94/25 +f 75/96/26 76/317/26 64/95/26 +f 71/97/26 72/318/26 60/89/26 +f 67/98/24 83/319/24 81/99/24 +f 68/101/26 84/320/26 83/102/26 +f 54/103/25 78/321/25 80/104/25 +f 55/106/24 79/322/24 77/107/24 +f 66/109/25 82/323/25 84/110/25 +f 56/105/26 80/324/26 79/111/26 +f 88/112/25 86/124/25 50/82/25 +f 85/114/24 87/133/24 51/115/24 +f 60/89/27 58/88/27 57/86/27 +f 64/95/27 62/94/27 61/92/27 +f 53/108/28 54/103/28 56/105/28 +f 65/100/28 66/109/28 68/101/28 +f 85/114/28 49/325/28 65/137/28 +f 49/325/28 50/117/28 53/119/28 +f 65/137/28 49/325/28 66/326/28 +f 50/117/28 86/124/28 54/118/28 +f 53/119/28 66/326/28 49/325/28 +f 52/122/27 51/327/27 57/120/27 +f 51/327/27 87/133/27 61/134/27 +f 61/134/27 62/129/27 51/327/27 +f 62/129/27 57/120/27 51/327/27 +f 58/121/27 88/112/27 52/122/27 +f 88/112/26 89/126/26 90/123/26 +f 54/118/26 86/124/26 90/123/26 +f 89/126/26 88/112/26 58/121/26 +f 74/128/26 69/328/26 57/120/26 +f 82/130/26 66/326/26 53/119/26 +f 92/132/26 91/135/26 87/133/26 +f 61/134/26 87/133/26 91/135/26 +f 92/132/26 85/114/26 65/137/26 +f 92/140/24 96/329/24 100/141/24 +f 100/141/24 99/152/24 91/139/24 +f 99/152/24 95/330/24 91/139/24 +f 75/331/27 73/332/27 91/333/27 +f 93/149/27 89/334/27 72/335/27 +f 89/334/27 70/336/27 72/335/27 +f 75/331/27 91/333/27 95/142/27 +f 69/337/27 74/338/27 76/144/27 +f 76/144/27 75/331/27 95/142/27 +f 95/142/27 93/149/27 71/143/27 +f 93/149/27 72/335/27 71/143/27 +f 71/143/27 69/337/27 76/144/27 +f 80/339/28 78/340/28 90/341/28 +f 96/146/28 92/342/28 83/343/28 +f 92/342/28 81/344/28 83/343/28 +f 80/339/28 90/341/28 94/150/28 +f 82/345/28 77/346/28 84/147/28 +f 77/346/28 79/145/28 84/147/28 +f 79/145/28 80/339/28 94/150/28 +f 96/146/28 83/343/28 84/147/28 +f 79/145/28 94/150/28 96/146/28 +f 95/142/29 99/152/29 97/148/29 +f 94/150/30 98/151/30 100/141/30 +f 98/151/26 97/148/26 99/152/26 +f 89/154/25 93/347/25 97/148/25 +f 97/148/25 98/151/25 90/153/25 +f 98/151/25 94/348/25 90/153/25 +f 284/155/28 285/349/28 286/156/28 +f 105/158/31 129/350/31 132/159/31 +f 104/161/25 108/160/25 107/162/25 +f 101/164/24 106/208/24 105/158/24 +f 103/165/27 105/158/27 108/160/27 +f 102/163/28 107/162/28 106/166/28 +f 124/168/27 128/192/27 125/169/27 +f 117/171/26 116/178/26 114/172/26 +f 120/174/23 113/181/23 115/175/23 +f 117/171/27 118/351/27 115/177/27 +f 119/173/28 114/172/28 113/179/28 +f 113/181/32 112/186/32 111/182/32 +f 126/183/23 281/202/23 282/184/23 +f 112/186/28 113/179/28 114/172/28 +f 111/188/27 110/352/27 116/178/27 +f 109/189/33 114/172/33 116/178/33 +f 124/191/25 285/353/25 284/155/25 +f 104/161/23 124/213/23 121/193/23 +f 101/195/23 122/354/23 123/196/23 +f 288/197/23 287/214/23 286/198/23 +f 122/200/28 126/183/28 127/185/28 +f 281/202/27 287/355/27 288/203/27 +f 128/192/23 284/155/23 283/157/23 +f 131/204/26 132/356/26 129/205/26 +f 107/162/34 131/357/34 130/207/34 +f 108/160/35 132/356/35 131/204/35 +f 106/208/33 130/358/33 129/209/33 +f 288/210/25 123/359/25 127/185/25 +f 126/183/24 122/360/24 287/211/24 +f 283/157/24 286/361/24 121/212/24 +f 104/161/23 102/163/23 288/197/23 +f 102/163/23 123/196/23 288/197/23 +f 288/197/23 285/199/23 104/161/23 +f 122/354/23 101/195/23 287/214/23 +f 101/195/23 103/194/23 287/214/23 +f 103/194/23 121/193/23 286/198/23 +f 290/215/26 292/221/26 291/216/26 +f 298/218/26 300/229/26 299/219/26 +f 292/221/27 296/227/27 293/222/27 +f 289/223/28 294/228/28 295/224/28 +f 290/226/25 295/362/25 296/227/25 +f 291/216/24 293/222/24 294/228/24 +f 300/229/27 304/235/27 301/230/27 +f 297/231/28 302/236/28 303/232/28 +f 298/234/25 303/363/25 304/235/25 +f 299/219/24 301/230/24 302/236/24 +f 358/237/26 360/364/26 359/238/26 +f 366/240/26 368/365/26 367/241/26 +f 360/243/27 364/247/27 361/244/27 +f 357/239/28 362/249/28 363/246/28 +f 358/237/25 363/246/25 364/247/25 +f 359/248/24 361/366/24 362/249/24 +f 368/250/27 372/254/27 369/251/27 +f 365/242/28 370/256/28 371/253/28 +f 366/240/25 371/253/25 372/254/25 +f 367/255/24 369/367/24 370/256/24 +f 414/257/26 416/368/26 415/258/26 +f 418/260/26 420/369/26 419/261/26 +f 394/263/26 396/370/26 395/264/26 +f 390/266/26 392/371/26 391/267/26 +f 387/269/26 386/372/26 382/270/26 +f 386/272/26 385/373/26 381/273/26 +f 388/274/26 387/374/26 383/271/26 +f 385/276/26 388/375/26 384/275/26 +f 380/278/28 388/375/28 385/276/28 +f 377/280/27 386/372/27 387/269/27 +f 375/282/27 381/277/27 384/275/27 +f 374/284/28 383/271/28 382/270/28 +f 378/286/24 387/374/24 388/274/24 +f 379/288/25 385/373/25 386/272/25 +f 376/283/25 384/275/25 383/271/25 +f 373/285/24 382/270/24 381/273/24 +f 411/291/26 410/376/26 406/292/26 +f 410/294/26 409/377/26 405/295/26 +f 412/296/26 411/378/26 407/293/26 +f 409/298/26 412/379/26 408/297/26 +f 404/300/28 412/379/28 409/298/28 +f 401/302/27 410/376/27 411/291/27 +f 399/304/27 405/299/27 408/297/27 +f 398/306/28 407/293/28 406/292/28 +f 402/308/24 411/378/24 412/296/24 +f 403/310/25 409/377/25 410/294/25 +f 400/305/25 408/297/25 407/293/25 +f 397/307/24 406/292/24 405/295/24 +s 1 +f 133/380/36 147/381/37 141/382/31 +f 138/383/38 146/384/39 139/385/40 +f 134/386/41 143/387/42 135/388/43 +f 139/385/40 147/381/37 140/389/44 +f 136/390/45 143/391/42 144/392/46 +f 133/380/36 142/393/47 134/386/41 +f 146/384/39 154/394/48 147/381/37 +f 144/392/46 150/395/49 151/396/50 +f 141/382/31 149/397/51 142/393/47 +f 147/381/37 148/398/52 141/382/31 +f 145/399/53 153/400/54 146/384/39 +f 143/387/42 149/397/51 150/401/49 +f 137/402/55 145/399/53 138/383/38 +f 136/390/45 144/392/46 137/402/55 +f 144/392/46 151/396/50 137/402/55 +f 145/399/53 137/402/55 152/403/56 +f 151/404/50 155/405/57 137/406/55 +f 153/407/54 162/408/58 154/394/48 +f 150/409/49 159/410/59 151/404/50 +f 148/398/52 157/411/60 149/397/51 +f 137/406/55 160/412/61 152/413/56 +f 154/394/48 156/414/62 148/398/52 +f 152/413/56 161/415/63 153/407/54 +f 149/397/51 158/416/33 150/417/49 +f 157/418/60 164/419/64 165/420/65 +f 155/421/57 167/422/66 160/412/61 +f 162/408/58 164/419/64 156/423/62 +f 160/412/61 168/424/32 161/415/63 +f 155/421/57 166/425/67 163/426/68 +f 162/408/58 168/424/32 169/427/69 +f 166/425/67 170/428/70 163/426/68 +f 168/424/32 176/429/71 169/427/69 +f 165/420/65 171/430/72 172/431/73 +f 163/426/68 174/432/74 167/422/66 +f 164/419/64 176/429/71 171/430/72 +f 167/422/66 175/433/75 168/424/32 +f 157/418/60 165/420/65 158/434/33 +f 165/420/65 172/431/73 158/434/33 +f 158/435/33 166/425/67 159/436/59 +f 166/425/67 158/435/33 173/437/76 +f 173/438/76 178/439/28 170/440/70 +f 175/433/75 184/441/77 176/429/71 +f 171/442/72 180/443/31 172/444/73 +f 158/445/33 181/446/34 173/438/76 +f 170/440/70 182/447/78 174/432/74 +f 172/444/73 177/448/26 158/449/33 +f 176/429/71 179/450/27 171/442/72 +f 174/432/74 183/451/23 175/433/75 +f 192/452/79 198/453/35 191/454/80 +f 190/455/81 196/456/82 189/457/83 +f 194/458/84 185/459/85 186/460/86 +f 185/459/85 199/461/87 192/452/79 +f 198/453/35 190/455/81 191/454/80 +f 196/456/82 188/462/88 189/457/83 +f 206/463/89 198/453/35 199/461/87 +f 204/464/90 196/456/82 197/465/91 +f 201/466/92 193/467/93 194/458/84 +f 193/467/93 206/463/89 199/461/87 +f 205/468/94 197/465/91 198/453/35 +f 196/456/82 202/469/95 195/470/96 +f 186/460/86 187/471/97 194/458/84 +f 187/472/97 188/462/88 195/470/96 +f 195/470/96 202/469/95 187/472/97 +f 194/458/84 187/471/97 201/466/92 +f 203/473/98 212/474/99 211/475/100 +f 201/476/92 208/477/101 200/478/102 +f 201/476/92 207/479/32 209/480/103 +f 200/478/102 214/481/104 206/463/89 +f 205/468/94 212/474/99 204/464/90 +f 203/473/98 210/482/105 202/483/95 +f 202/483/95 207/484/32 187/485/97 +f 206/463/89 213/486/106 205/468/94 +f 208/487/101 221/488/107 214/481/104 +f 212/474/99 220/489/33 219/490/108 +f 210/491/105 218/492/109 217/493/110 +f 213/486/106 221/488/107 220/489/33 +f 211/494/100 219/490/108 218/492/109 +f 209/495/103 215/496/111 208/487/101 +f 218/492/109 226/497/112 225/498/113 +f 215/496/111 223/499/114 222/500/115 +f 215/496/111 228/501/116 221/488/107 +f 220/489/33 226/497/112 219/490/108 +f 218/492/109 224/502/117 217/493/110 +f 220/489/33 228/501/116 227/503/118 +f 207/504/32 216/505/119 209/495/103 +f 216/505/119 207/504/32 223/499/114 +f 210/491/105 217/493/110 207/506/32 +f 217/493/110 224/502/117 207/506/32 +f 222/507/115 231/508/58 230/509/62 +f 224/510/117 229/511/63 207/512/32 +f 222/507/115 236/513/60 228/501/116 +f 207/514/32 231/508/58 223/515/114 +f 227/503/118 234/516/59 226/497/112 +f 225/517/113 232/518/61 224/510/117 +f 228/501/116 235/519/33 227/503/118 +f 225/517/113 234/516/59 233/520/57 +f 230/521/62 243/522/65 236/523/60 +f 233/524/57 240/525/66 232/518/61 +f 231/508/58 237/526/32 239/527/69 +f 233/524/57 242/528/67 241/529/68 +f 230/521/62 239/527/69 238/530/64 +f 232/518/61 237/531/32 229/511/63 +f 238/530/64 246/532/71 245/533/72 +f 240/525/66 244/534/75 237/531/32 +f 238/530/64 250/535/73 243/522/65 +f 241/529/68 247/536/74 240/525/66 +f 237/526/32 246/532/71 239/527/69 +f 241/529/68 249/537/76 248/538/70 +f 236/523/60 243/522/65 235/539/33 +f 243/522/65 250/535/73 235/539/33 +f 234/540/59 235/539/33 242/528/67 +f 242/528/67 235/539/33 249/537/76 +f 235/541/33 257/542/99 249/543/76 +f 244/534/75 255/544/105 252/545/32 +f 250/546/73 251/547/106 235/541/33 +f 245/548/72 258/549/104 250/546/73 +f 248/550/70 255/544/105 247/536/74 +f 244/551/75 254/552/103 246/532/71 +f 248/550/70 257/542/99 256/553/100 +f 245/548/72 254/552/103 253/554/101 +f 253/555/101 265/556/107 258/549/104 +f 256/557/100 262/558/110 255/559/105 +f 251/547/106 265/556/107 259/560/33 +f 256/557/100 264/561/108 263/562/109 +f 254/563/103 260/564/111 253/555/101 +f 251/547/106 264/561/108 257/542/99 +f 259/560/33 271/565/112 264/561/108 +f 260/564/111 272/566/116 265/556/107 +f 263/562/109 269/567/117 262/558/110 +f 265/556/107 266/568/118 259/560/33 +f 263/562/109 271/565/112 270/569/113 +f 260/564/111 268/570/114 267/571/115 +f 252/572/32 261/573/119 254/563/103 +f 261/573/119 252/572/32 268/570/114 +f 255/559/105 262/558/110 252/574/32 +f 262/558/110 269/567/117 252/574/32 +f 269/575/117 273/576/25 252/577/32 +f 266/568/118 279/578/120 271/565/112 +f 252/579/32 276/580/121 268/581/114 +f 267/582/115 280/583/122 272/566/116 +f 270/584/113 277/585/123 269/575/117 +f 272/566/116 274/586/24 266/568/118 +f 270/584/113 279/578/120 278/587/28 +f 267/582/115 276/580/121 275/588/27 +f 310/589/38 318/590/39 311/591/40 +f 305/592/36 319/593/37 313/594/31 +f 307/595/43 314/596/47 315/597/42 +f 311/591/40 319/593/37 312/598/44 +f 308/599/45 315/600/42 316/601/46 +f 306/602/41 313/594/31 314/596/47 +f 318/590/39 326/603/48 319/593/37 +f 316/601/46 322/604/49 323/605/50 +f 313/594/31 321/606/51 314/596/47 +f 313/594/31 326/603/48 320/607/52 +f 317/608/53 325/609/54 318/590/39 +f 315/597/42 321/606/51 322/610/49 +f 309/611/55 317/608/53 310/589/38 +f 308/599/45 316/601/46 309/611/55 +f 316/601/46 323/605/50 309/611/55 +f 317/608/53 309/611/55 324/612/56 +f 323/613/50 327/614/57 309/615/55 +f 325/616/54 334/617/58 326/603/48 +f 322/618/49 331/619/59 323/613/50 +f 320/607/52 329/620/60 321/606/51 +f 309/615/55 332/621/61 324/622/56 +f 326/603/48 328/623/62 320/607/52 +f 324/622/56 333/624/63 325/616/54 +f 321/606/51 330/625/33 322/626/49 +f 328/627/62 337/628/65 329/629/60 +f 332/621/61 335/630/68 339/631/66 +f 334/617/58 336/632/64 328/627/62 +f 332/621/61 340/633/32 333/624/63 +f 327/634/57 338/635/67 335/630/68 +f 333/624/63 341/636/69 334/617/58 +f 338/635/67 342/637/70 335/630/68 +f 340/633/32 348/638/71 341/636/69 +f 337/628/65 343/639/72 344/640/73 +f 339/631/66 342/637/70 346/641/74 +f 341/636/69 343/639/72 336/632/64 +f 339/631/66 347/642/75 340/633/32 +f 329/629/60 337/628/65 330/643/33 +f 337/628/65 344/640/73 330/643/33 +f 330/644/33 338/635/67 331/645/59 +f 338/635/67 330/644/33 345/646/76 +f 345/647/76 350/648/28 342/649/70 +f 347/642/75 356/650/77 348/638/71 +f 343/651/72 352/652/31 344/653/73 +f 330/654/33 353/655/34 345/647/76 +f 342/649/70 354/656/78 346/641/74 +f 344/653/73 349/657/26 330/658/33 +f 348/638/71 351/659/27 343/651/72 +f 346/641/74 355/660/23 347/642/75 +f 428/661/79 434/662/35 427/663/80 +f 433/664/91 425/665/83 426/666/81 +f 430/667/84 421/668/85 422/669/86 +f 429/670/93 428/661/79 421/668/85 +f 434/662/35 426/666/81 427/663/80 +f 432/671/82 424/672/88 425/665/83 +f 435/673/87 441/674/94 434/662/35 +f 440/675/90 432/671/82 433/664/91 +f 437/676/92 429/670/93 430/667/84 +f 429/670/93 442/677/89 435/673/87 +f 434/662/35 440/675/90 433/664/91 +f 432/671/82 438/678/95 431/679/96 +f 422/669/86 423/680/97 430/667/84 +f 423/681/97 424/672/88 431/679/96 +f 431/679/96 438/678/95 423/681/97 +f 430/667/84 423/680/97 437/676/92 +f 439/682/98 448/683/99 447/684/100 +f 437/685/92 444/686/101 436/687/102 +f 437/685/92 443/688/32 445/689/103 +f 436/687/102 450/690/104 442/677/89 +f 441/674/94 448/683/99 440/675/90 +f 439/682/98 446/691/105 438/692/95 +f 438/692/95 443/693/32 423/694/97 +f 442/677/89 449/695/106 441/674/94 +f 444/696/101 457/697/107 450/690/104 +f 449/695/106 455/698/108 448/683/99 +f 446/699/105 454/700/109 453/701/110 +f 450/690/104 456/702/33 449/695/106 +f 447/703/100 455/698/108 454/700/109 +f 445/704/103 451/705/111 444/696/101 +f 454/700/109 462/706/112 461/707/113 +f 451/705/111 459/708/114 458/709/115 +f 451/705/111 464/710/116 457/697/107 +f 456/702/33 462/706/112 455/698/108 +f 454/700/109 460/711/117 453/701/110 +f 457/697/107 463/712/118 456/702/33 +f 443/713/32 452/714/119 445/704/103 +f 452/714/119 443/713/32 459/708/114 +f 446/699/105 453/701/110 443/715/32 +f 453/701/110 460/711/117 443/715/32 +f 458/716/115 467/717/58 466/718/62 +f 460/719/117 465/720/63 443/721/32 +f 458/716/115 472/722/60 464/710/116 +f 443/723/32 467/717/58 459/724/114 +f 463/712/118 470/725/59 462/706/112 +f 461/726/113 468/727/61 460/719/117 +f 464/710/116 471/728/33 463/712/118 +f 461/726/113 470/725/59 469/729/57 +f 466/730/62 479/731/65 472/732/60 +f 469/733/57 476/734/66 468/727/61 +f 465/735/63 475/736/69 467/717/58 +f 469/733/57 478/737/67 477/738/68 +f 466/730/62 475/736/69 474/739/64 +f 468/727/61 473/740/32 465/720/63 +f 474/739/64 482/741/71 481/742/72 +f 473/740/32 483/743/74 480/744/75 +f 474/739/64 486/745/73 479/731/65 +f 477/738/68 483/743/74 476/734/66 +f 473/746/32 482/741/71 475/736/69 +f 477/738/68 485/747/76 484/748/70 +f 472/732/60 479/731/65 471/749/33 +f 479/731/65 486/745/73 471/749/33 +f 470/750/59 471/749/33 478/737/67 +f 478/737/67 471/749/33 485/747/76 +f 471/751/33 493/752/99 485/753/76 +f 480/744/75 491/754/105 488/755/32 +f 486/756/73 487/757/106 471/751/33 +f 481/758/72 494/759/104 486/756/73 +f 484/760/70 491/754/105 483/743/74 +f 480/761/75 490/762/103 482/741/71 +f 484/760/70 493/752/99 492/763/100 +f 481/758/72 490/762/103 489/764/101 +f 489/765/101 501/766/107 494/759/104 +f 491/767/105 499/768/109 498/769/110 +f 487/757/106 501/766/107 495/770/33 +f 492/771/100 500/772/108 499/768/109 +f 489/765/101 497/773/119 496/774/111 +f 487/757/106 500/772/108 493/752/99 +f 495/770/33 507/775/112 500/772/108 +f 496/774/111 508/776/116 501/766/107 +f 499/768/109 505/777/117 498/769/110 +f 495/770/33 508/776/116 502/778/118 +f 499/768/109 507/775/112 506/779/113 +f 496/774/111 504/780/114 503/781/115 +f 488/782/32 497/773/119 490/783/103 +f 497/773/119 488/782/32 504/780/114 +f 491/767/105 498/769/110 488/784/32 +f 498/769/110 505/777/117 488/784/32 +f 505/785/117 509/786/25 488/787/32 +f 502/778/118 515/788/120 507/775/112 +f 488/789/32 512/790/121 504/791/114 +f 503/792/115 516/793/122 508/776/116 +f 506/794/113 513/795/123 505/785/117 +f 508/776/116 510/796/24 502/778/118 +f 506/794/113 515/788/120 514/797/28 +f 503/792/115 512/790/121 511/798/27 +f 133/380/36 140/389/44 147/381/37 +f 138/383/38 145/399/53 146/384/39 +f 134/386/41 142/393/47 143/387/42 +f 139/385/40 146/384/39 147/381/37 +f 136/390/45 135/799/43 143/391/42 +f 133/380/36 141/382/31 142/393/47 +f 146/384/39 153/400/54 154/394/48 +f 144/392/46 143/391/42 150/395/49 +f 141/382/31 148/398/52 149/397/51 +f 147/381/37 154/394/48 148/398/52 +f 145/399/53 152/403/56 153/400/54 +f 143/387/42 142/393/47 149/397/51 +f 151/404/50 159/410/59 155/405/57 +f 153/407/54 161/415/63 162/408/58 +f 150/409/49 158/800/33 159/410/59 +f 148/398/52 156/414/62 157/411/60 +f 137/406/55 155/405/57 160/412/61 +f 154/394/48 162/408/58 156/414/62 +f 152/413/56 160/412/61 161/415/63 +f 149/397/51 157/411/60 158/416/33 +f 157/418/60 156/423/62 164/419/64 +f 155/421/57 163/426/68 167/422/66 +f 162/408/58 169/427/69 164/419/64 +f 160/412/61 167/422/66 168/424/32 +f 155/421/57 159/436/59 166/425/67 +f 162/408/58 161/415/63 168/424/32 +f 166/425/67 173/437/76 170/428/70 +f 168/424/32 175/433/75 176/429/71 +f 165/420/65 164/419/64 171/430/72 +f 163/426/68 170/428/70 174/432/74 +f 164/419/64 169/427/69 176/429/71 +f 167/422/66 174/432/74 175/433/75 +f 173/438/76 181/446/34 178/439/28 +f 175/433/75 183/451/23 184/441/77 +f 171/442/72 179/450/27 180/443/31 +f 158/445/33 177/801/26 181/446/34 +f 170/440/70 178/439/28 182/447/78 +f 172/444/73 180/443/31 177/448/26 +f 176/429/71 184/441/77 179/450/27 +f 174/432/74 182/447/78 183/451/23 +f 192/452/79 199/461/87 198/453/35 +f 190/455/81 197/465/91 196/456/82 +f 194/458/84 193/467/93 185/459/85 +f 185/459/85 193/467/93 199/461/87 +f 198/453/35 197/465/91 190/455/81 +f 196/456/82 195/470/96 188/462/88 +f 206/463/89 205/468/94 198/453/35 +f 204/464/90 203/802/98 196/456/82 +f 201/466/92 200/803/102 193/467/93 +f 193/467/93 200/803/102 206/463/89 +f 205/468/94 204/464/90 197/465/91 +f 196/456/82 203/802/98 202/469/95 +f 203/473/98 204/464/90 212/474/99 +f 201/476/92 209/480/103 208/477/101 +f 201/476/92 187/804/97 207/479/32 +f 200/478/102 208/477/101 214/481/104 +f 205/468/94 213/486/106 212/474/99 +f 203/473/98 211/475/100 210/482/105 +f 202/483/95 210/482/105 207/484/32 +f 206/463/89 214/481/104 213/486/106 +f 208/487/101 215/496/111 221/488/107 +f 212/474/99 213/486/106 220/489/33 +f 210/491/105 211/494/100 218/492/109 +f 213/486/106 214/481/104 221/488/107 +f 211/494/100 212/474/99 219/490/108 +f 209/495/103 216/505/119 215/496/111 +f 218/492/109 219/490/108 226/497/112 +f 215/496/111 216/505/119 223/499/114 +f 215/496/111 222/500/115 228/501/116 +f 220/489/33 227/503/118 226/497/112 +f 218/492/109 225/498/113 224/502/117 +f 220/489/33 221/488/107 228/501/116 +f 222/507/115 223/515/114 231/508/58 +f 224/510/117 232/518/61 229/511/63 +f 222/507/115 230/509/62 236/513/60 +f 207/514/32 229/805/63 231/508/58 +f 227/503/118 235/519/33 234/516/59 +f 225/517/113 233/520/57 232/518/61 +f 228/501/116 236/513/60 235/519/33 +f 225/517/113 226/497/112 234/516/59 +f 230/521/62 238/530/64 243/522/65 +f 233/524/57 241/529/68 240/525/66 +f 231/508/58 229/805/63 237/526/32 +f 233/524/57 234/540/59 242/528/67 +f 230/521/62 231/508/58 239/527/69 +f 232/518/61 240/525/66 237/531/32 +f 238/530/64 239/527/69 246/532/71 +f 240/525/66 247/536/74 244/534/75 +f 238/530/64 245/533/72 250/535/73 +f 241/529/68 248/538/70 247/536/74 +f 237/526/32 244/551/75 246/532/71 +f 241/529/68 242/528/67 249/537/76 +f 235/541/33 251/547/106 257/542/99 +f 244/534/75 247/536/74 255/544/105 +f 250/546/73 258/549/104 251/547/106 +f 245/548/72 253/554/101 258/549/104 +f 248/550/70 256/553/100 255/544/105 +f 244/551/75 252/806/32 254/552/103 +f 248/550/70 249/543/76 257/542/99 +f 245/548/72 246/532/71 254/552/103 +f 253/555/101 260/564/111 265/556/107 +f 256/557/100 263/562/109 262/558/110 +f 251/547/106 258/549/104 265/556/107 +f 256/557/100 257/542/99 264/561/108 +f 254/563/103 261/573/119 260/564/111 +f 251/547/106 259/560/33 264/561/108 +f 259/560/33 266/568/118 271/565/112 +f 260/564/111 267/571/115 272/566/116 +f 263/562/109 270/569/113 269/567/117 +f 265/556/107 272/566/116 266/568/118 +f 263/562/109 264/561/108 271/565/112 +f 260/564/111 261/573/119 268/570/114 +f 269/575/117 277/585/123 273/576/25 +f 266/568/118 274/586/24 279/578/120 +f 252/579/32 273/807/25 276/580/121 +f 267/582/115 275/588/27 280/583/122 +f 270/584/113 278/587/28 277/585/123 +f 272/566/116 280/583/122 274/586/24 +f 270/584/113 271/565/112 279/578/120 +f 267/582/115 268/581/114 276/580/121 +f 310/589/38 317/608/53 318/590/39 +f 305/592/36 312/598/44 319/593/37 +f 307/595/43 306/602/41 314/596/47 +f 311/591/40 318/590/39 319/593/37 +f 308/599/45 307/808/43 315/600/42 +f 306/602/41 305/592/36 313/594/31 +f 318/590/39 325/609/54 326/603/48 +f 316/601/46 315/600/42 322/604/49 +f 313/594/31 320/607/52 321/606/51 +f 313/594/31 319/593/37 326/603/48 +f 317/608/53 324/612/56 325/609/54 +f 315/597/42 314/596/47 321/606/51 +f 323/613/50 331/619/59 327/614/57 +f 325/616/54 333/624/63 334/617/58 +f 322/618/49 330/809/33 331/619/59 +f 320/607/52 328/623/62 329/620/60 +f 309/615/55 327/614/57 332/621/61 +f 326/603/48 334/617/58 328/623/62 +f 324/622/56 332/621/61 333/624/63 +f 321/606/51 329/620/60 330/625/33 +f 328/627/62 336/632/64 337/628/65 +f 332/621/61 327/634/57 335/630/68 +f 334/617/58 341/636/69 336/632/64 +f 332/621/61 339/631/66 340/633/32 +f 327/634/57 331/645/59 338/635/67 +f 333/624/63 340/633/32 341/636/69 +f 338/635/67 345/646/76 342/637/70 +f 340/633/32 347/642/75 348/638/71 +f 337/628/65 336/632/64 343/639/72 +f 339/631/66 335/630/68 342/637/70 +f 341/636/69 348/638/71 343/639/72 +f 339/631/66 346/641/74 347/642/75 +f 345/647/76 353/655/34 350/648/28 +f 347/642/75 355/660/23 356/650/77 +f 343/651/72 351/659/27 352/652/31 +f 330/654/33 349/810/26 353/655/34 +f 342/649/70 350/648/28 354/656/78 +f 344/653/73 352/652/31 349/657/26 +f 348/638/71 356/650/77 351/659/27 +f 346/641/74 354/656/78 355/660/23 +f 428/661/79 435/673/87 434/662/35 +f 433/664/91 432/671/82 425/665/83 +f 430/667/84 429/670/93 421/668/85 +f 429/670/93 435/673/87 428/661/79 +f 434/662/35 433/664/91 426/666/81 +f 432/671/82 431/679/96 424/672/88 +f 435/673/87 442/677/89 441/674/94 +f 440/675/90 439/811/98 432/671/82 +f 437/676/92 436/812/102 429/670/93 +f 429/670/93 436/812/102 442/677/89 +f 434/662/35 441/674/94 440/675/90 +f 432/671/82 439/811/98 438/678/95 +f 439/682/98 440/675/90 448/683/99 +f 437/685/92 445/689/103 444/686/101 +f 437/685/92 423/813/97 443/688/32 +f 436/687/102 444/686/101 450/690/104 +f 441/674/94 449/695/106 448/683/99 +f 439/682/98 447/684/100 446/691/105 +f 438/692/95 446/691/105 443/693/32 +f 442/677/89 450/690/104 449/695/106 +f 444/696/101 451/705/111 457/697/107 +f 449/695/106 456/702/33 455/698/108 +f 446/699/105 447/703/100 454/700/109 +f 450/690/104 457/697/107 456/702/33 +f 447/703/100 448/683/99 455/698/108 +f 445/704/103 452/714/119 451/705/111 +f 454/700/109 455/698/108 462/706/112 +f 451/705/111 452/714/119 459/708/114 +f 451/705/111 458/709/115 464/710/116 +f 456/702/33 463/712/118 462/706/112 +f 454/700/109 461/707/113 460/711/117 +f 457/697/107 464/710/116 463/712/118 +f 458/716/115 459/724/114 467/717/58 +f 460/719/117 468/727/61 465/720/63 +f 458/716/115 466/718/62 472/722/60 +f 443/723/32 465/735/63 467/717/58 +f 463/712/118 471/728/33 470/725/59 +f 461/726/113 469/729/57 468/727/61 +f 464/710/116 472/722/60 471/728/33 +f 461/726/113 462/706/112 470/725/59 +f 466/730/62 474/739/64 479/731/65 +f 469/733/57 477/738/68 476/734/66 +f 465/735/63 473/746/32 475/736/69 +f 469/733/57 470/750/59 478/737/67 +f 466/730/62 467/717/58 475/736/69 +f 468/727/61 476/734/66 473/740/32 +f 474/739/64 475/736/69 482/741/71 +f 473/740/32 476/734/66 483/743/74 +f 474/739/64 481/742/72 486/745/73 +f 477/738/68 484/748/70 483/743/74 +f 473/746/32 480/761/75 482/741/71 +f 477/738/68 478/737/67 485/747/76 +f 471/751/33 487/757/106 493/752/99 +f 480/744/75 483/743/74 491/754/105 +f 486/756/73 494/759/104 487/757/106 +f 481/758/72 489/764/101 494/759/104 +f 484/760/70 492/763/100 491/754/105 +f 480/761/75 488/814/32 490/762/103 +f 484/760/70 485/753/76 493/752/99 +f 481/758/72 482/741/71 490/762/103 +f 489/765/101 496/774/111 501/766/107 +f 491/767/105 492/771/100 499/768/109 +f 487/757/106 494/759/104 501/766/107 +f 492/771/100 493/752/99 500/772/108 +f 489/765/101 490/783/103 497/773/119 +f 487/757/106 495/770/33 500/772/108 +f 495/770/33 502/778/118 507/775/112 +f 496/774/111 503/781/115 508/776/116 +f 499/768/109 506/779/113 505/777/117 +f 495/770/33 501/766/107 508/776/116 +f 499/768/109 500/772/108 507/775/112 +f 496/774/111 497/773/119 504/780/114 +f 505/785/117 513/795/123 509/786/25 +f 502/778/118 510/796/24 515/788/120 +f 488/789/32 509/815/25 512/790/121 +f 503/792/115 511/798/27 516/793/122 +f 506/794/113 514/797/28 513/795/123 +f 508/776/116 516/793/122 510/796/24 +f 506/794/113 507/775/112 515/788/120 +f 503/792/115 504/791/114 512/790/121 diff --git a/src/main/resources/assets/hbm/textures/models/machines/steamhammer.png b/src/main/resources/assets/hbm/textures/models/machines/steamhammer.png new file mode 100644 index 0000000000000000000000000000000000000000..ce0ae052e1ce70e45abd8cfddafdd752559148c8 GIT binary patch literal 1907 zcmV-(2aNcMP)KW^kU6voNG2XPTB25GnO9gM8209&|mZ7in91w>sSK#Yak zOtZzd$zt!Yh115^CO$y!pcER~BUV;$=8GJ+&%J+OXY(hBYCOJCar^&H zY#+OSh}_Lt?F!U}5*Q`W+WQA?;K2cFAaKAM2pq6x^Bx?8G2D)ga`kOoRu{+5<8uGd zR-+dJ2VQh<{Zg6w0+9D@2ptv$I2mrmphX)(_f`zP7e!7G!GRN-74co}AM)4H1u5`B z)V~U2ka(CCh4$3yB1{LZSQJEX;Dr_}WjoNw1gnC|nwZPx`n3g*MkZhl1P)jOfdkgS zg99fs*^tp=TfBHH*%J*SIPk*vfln(Bcr<5Jo?8{FNG_=3dsnI=D`lxzTX|#;ivpZ1 zeS)c%YXgA;C%zAOOls%9H4r%P!uOGVZA)SjEbzYZz8&4l`_8n6j@-W1L>O6?+JYwq z-nyVo%=#(_e$yaL2v`Gw1J-Q5k@-amIXuqW7`YR2>8Mku`;Xb4JNn$KyK!0VkDtfo zKGMT)Uf{!{81%`U`|X{ui&TrB`hCl20n6R=9CZs`gIfYD3MfK%D~9e?48!C2uT;5Y z1UJ)et!Gt`CTt6v_3&Np@8il3wkXuCCDt>=mMId38O&g_=p4_~Jsl9E@5%bomJQ|&*KRkuXV;>F& z=l*{=)D{1~H-Bf@@2m41IBrTRsJH&JNAOc`=G%p`r8h#r6x-i$X}4O6P|t6&d5Z$v zP~)DERwYqAd_BJj1P+=ewhaJ*gH^E9^Jf>h(VCt%Kp*CP+vzqcSH-|8i1qx4;Gk)O zJ-@Mx&Q^dm5IA5B1P)jOfdkg$&!U_pqR!V1l3n0S24OtirmNHqlQkdYcz&P7&X?eqj;S{-QooZq zvp?q_rSwb3Pft%l>z|*W7cFn=z=KDklxlXA0c+hp4#O6rw-E5)Nzg)4N;M&xiLgx} ze^t|!sozDPu3{BH1W!l{(Y%E^v_$y$;FZUFrpm89@K3F1ZWXp}P-@JGZT@aB^JCB~ zYyHl$z2$BCSL3Hd4l98Oo{5r?v_x64v#j|J*`|khTUt*Oc<_wmj^-tV9XrdKT3GJ$ z#SodIhrkPc`xwvy(n&D`A~c9u0QSZdHs+aOG@2KBU{FGOA6 z%?lj3iJfIl9l!LoCc@0JTraD)z91lQ&@{1afbj9bF~B@1NbF3@h~QuqENufo;Gk(@ z+W?yvI5H=%IXx%CU#enF;yIJVq*BAmJvViHYURfV+@LQCU=0KgSOb9r)}WC|bXwxx z2&ImH?bFF1f&K^^};9;fF@NcpEIJ0*(m zg@p(Xl29^|hm^JX2oBs(p83=RUkNF5ceo0@kPyKEYanpI8VDS)1_B4HfxrQ4AaKAM z2pq5md2rywmUq@qK$Vz2>ZHb5q56)b1`!;vX7dre*o3Obh!;9Cm5Cmys^nDRYX%X# z0698zZM~D2FPo3xIms=;XCI7cZUqrM6D1=oqPZRN%3u4un0@5vvZ16Njn*XhXt6W< zn>`-eaoFl-TmR9>-d$}9G4_!Yeh~R)V$b(06 zI2@WjKV+Vn@ZiI5^S%Gn-TeA$Z~5M`zWC-U9UdG2C-C6RiS@myBDHn>>yX-n1A#Ng zY7I651kRlPshfUrX|$;>m3#ZImhXSHZ2!}AvHN4ZVb~(Ix^NaR1knbhwuc7?tbxD* tYanpI8VDS)1_B4HfxrQ4AaKB%{{hic2yuHKt;hfX002ovPDHLkV1iK5jRgPz literal 0 HcmV?d00001 From 7ed32a6c7f99d8e4794d39c3a8d3b971e01a6a7e Mon Sep 17 00:00:00 2001 From: Vaern Date: Wed, 31 May 2023 20:08:36 -0700 Subject: [PATCH 079/432] a --- .../world/gen/component/BunkerComponents.java | 130 +++++++++++++++++- .../hbm/world/gen/component/Component.java | 18 ++- 2 files changed, 142 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/hbm/world/gen/component/BunkerComponents.java b/src/main/java/com/hbm/world/gen/component/BunkerComponents.java index 9937ac15f..2f14105b6 100644 --- a/src/main/java/com/hbm/world/gen/component/BunkerComponents.java +++ b/src/main/java/com/hbm/world/gen/component/BunkerComponents.java @@ -31,9 +31,10 @@ public class BunkerComponents { Weight[] weights = new Weight[] { new Weight(6, 3, Corridor::findValidPlacement), - new Weight(7, 4, BedroomL::findValidPlacement), + new Weight(5, 4, BedroomL::findValidPlacement), new Weight(10, 3, FunJunction::findValidPlacement), new Weight(5, 2, BathroomL::findValidPlacement), + new Weight(7, 2, Laboratory::findValidPlacement), }; StructureComponent starter = new StartingHub(rand, x, z); @@ -51,6 +52,7 @@ public class BunkerComponents { MapGenStructureIO.func_143031_a(BedroomL.class, "NTMBBedroomL"); MapGenStructureIO.func_143031_a(FunJunction.class, "NTMBFunJunction"); MapGenStructureIO.func_143031_a(BathroomL.class, "NTMBBathroomL"); + MapGenStructureIO.func_143031_a(Laboratory.class, "NTMBLaboratory"); //TODO more rooms for more variety } @@ -569,7 +571,6 @@ public class BunkerComponents { placeBlockAtCurrentPosition(world, Blocks.stone_button, 1, 7, 2, 9, box); //stalls w/ toilets for(int i = 1; i <= 5; i += 2) { - placeBlockAtCurrentPosition(world, ModBlocks.door_metal, 0, 5, 1, i, box); placeDoor(world, box, ModBlocks.door_metal, 0, false, rand.nextBoolean(), 5, 1, i); fillWithMetadataBlocks(world, box, 5, 1, i + 1, 5, 2, i + 1, ModBlocks.steel_corner, getDecoMeta(2)); fillWithMetadataBlocks(world, box, 6, 1, i + 1, 7, 2, i + 1, ModBlocks.steel_wall, getDecoMeta(2)); @@ -589,4 +590,129 @@ public class BunkerComponents { return box.minY > 10 && StructureComponent.findIntersecting(components, box) == null ? new BathroomL(type, box, coordMode) : null; } } + + public static class Laboratory extends Component implements ProceduralComponent { + + private boolean[] paths = new boolean[2]; + + public Laboratory() { } + + public Laboratory(int componentType, StructureBoundingBox box, int coordMode) { + super(componentType); + this.boundingBox = box; + this.coordBaseMode = coordMode; + } + + /** write to nbt */ + @Override + protected void func_143012_a(NBTTagCompound nbt) { + super.func_143012_a(nbt); + for(int i = 0; i < paths.length; i++) + nbt.setBoolean("p" + i, paths[i]); + } + + /** read from nbt */ + @Override + protected void func_143011_b(NBTTagCompound nbt) { + super.func_143011_b(nbt); + for(int i = 0; i < paths.length; i++) + paths[i] = nbt.getBoolean("p" + i); + } + + @Override + public void buildComponent(ProceduralStructureStart start, Random rand) { + paths[0] = this.getNextComponentWest(start, this, coordBaseMode, rand, 3, 1) != null; + paths[1] = this.getNextComponentNormal(start, this, coordBaseMode, rand, 6, 1) != null; + } + + @Override + public boolean addComponentParts(World world, Random rand, StructureBoundingBox box) { + + fillWithAir(world, box, 1, 1, 1, 7, 3, 11); + //floor + fillWithMetadataBlocks(world, box, 1, 0, 1, 7, 0, 11, ModBlocks.vinyl_tile, 1); + //ceiling + fillWithBlocks(world, box, 1, 4, 1, 7, 4, 11, ModBlocks.vinyl_tile); + //upper shield + fillWithBlocks(world, box, 0, 5, 0, 8, 5, 12, ModBlocks.reinforced_stone); + //walls + fillWithBlocks(world, box, 0, 0, 0, 0, 4, 12, ModBlocks.brick_concrete); + fillWithBlocks(world, box, 1, 0, 12, 7, 4, 12, ModBlocks.brick_concrete); + fillWithBlocks(world, box, 8, 0, 0, 8, 4, 12, ModBlocks.brick_concrete); + fillWithBlocks(world, box, 1, 0, 0, 7, 4, 0, ModBlocks.brick_concrete); + + /* DECO */ + //lamps + for(int x = 3; x <= 5; x += 2) { + for(int z = 3; z <= 9; z += 3) { + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_lamp_off, 0, x, 5, z, box); + placeBlockAtCurrentPosition(world, ModBlocks.fan, 0, x, 4, z, box); + } + } + //couch w/ table + final int stairMetaW = getStairMeta(0); + final int stairMetaE = getStairMeta(1); + final int stairMetaN = getStairMeta(2); + final int stairMetaS = getStairMeta(3); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaE, 1, 1, 1, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaS, 2, 1, 1, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaW, 3, 1, 1, box); + placeBlockAtCurrentPosition(world, Blocks.fence, 0, 4, 1, 1, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_pressure_plate, 0, 4, 2, 1, box); + //big ole wall machine + final int decoMetaE = getDecoMeta(4); + final int decoMetaW = getDecoMeta(5); + final int decoModelMetaW = getDecoModelMeta(2); + final int decoModelMetaE = getDecoModelMeta(3); + fillWithBlocks(world, box, 1, 1, 5, 1, 3, 5, ModBlocks.deco_tungsten); + placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 1, 1, 6, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, decoModelMetaE, 1, 2, 6, box); + placeBlockAtCurrentPosition(world, ModBlocks.tape_recorder, decoMetaW, 1, 3, 6, box); + fillWithMetadataBlocks(world, box, 1, 1, 7, 1, 3, 7, ModBlocks.tape_recorder, decoMetaW); + fillWithBlocks(world, box, 1, 1, 8, 1, 3, 8, ModBlocks.deco_tungsten); + fillWithMetadataBlocks(world, box, 1, 1, 9, 1, 1, 10, ModBlocks.tape_recorder, decoMetaW); + fillWithMetadataBlocks(world, box, 1, 2, 9, 1, 2, 10, ModBlocks.concrete_smooth_stairs, stairMetaE | 4); + fillWithMetadataBlocks(world, box, 1, 3, 9, 1, 3, 10, ModBlocks.tape_recorder, decoMetaW); + fillWithBlocks(world, box, 1, 1, 11, 1, 3, 11, ModBlocks.deco_tungsten); + //desks w/ computers + generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(2), 3, 1, 4, HbmChestContents.antenna, 4); //wip + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaS | 4, 3, 1, 5, box); + fillWithMetadataBlocks(world, box, 4, 1, 5, 4, 1, 7, ModBlocks.concrete_smooth_stairs, stairMetaW | 4); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaN, 3, 1, 7, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaS | 4, 3, 1, 9, box); + fillWithMetadataBlocks(world, box, 4, 1, 9, 4, 1, 11, ModBlocks.concrete_smooth_stairs, 4); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaN, 3, 1, 11, box); + placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, 3, 2, 5, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, decoModelMetaW, 4, 2, 6, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, decoModelMetaW, 4, 2, 10, box); + //lever wall machine + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaW | 4, 7, 1, 3, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_red_copper, 0, 7, 2, 3, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaW, 7, 3, 3, box); + placeBlockAtCurrentPosition(world, Blocks.lever, 2, 6, 2, 3, box); //TODO lever meta + fillWithMetadataBlocks(world, box, 7, 1, 4, 7, 2, 4, ModBlocks.steel_poles, decoMetaE); + placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 7, 3, 4, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_tungsten, 0, 7, 1, 5, box); + placeBlockAtCurrentPosition(world, ModBlocks.tape_recorder, decoMetaE, 7, 1, 6, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_tungsten, 0, 7, 1, 7, box); + fillWithMetadataBlocks(world, box, 7, 2, 5, 7, 2, 7, ModBlocks.concrete_smooth_stairs, stairMetaW | 4); + fillWithMetadataBlocks(world, box, 7, 3, 5, 7, 3, 7, ModBlocks.tape_recorder, decoMetaE); + //table w/ chest + placeBlockAtCurrentPosition(world, Blocks.fence, 0, 7, 1, 9, box); + placeBlockAtCurrentPosition(world, Blocks.wooden_pressure_plate, 0, 7, 2, 9, box); + generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 7, 1, 10, HbmChestContents.antenna, 4); //wip + //doors + placeDoor(world, box, ModBlocks.door_bunker, 1, true, rand.nextBoolean(), 5, 1, 0); + placeDoor(world, box, ModBlocks.door_bunker, 1, false, rand.nextBoolean(), 6, 1, 0); + if(paths[0]) fillWithAir(world, box, 0, 1, 2, 0, 2, 3); + if(paths[1]) fillWithAir(world, box, 5, 1, 12, 6, 2, 12); + + return true; + } + + public static StructureComponent findValidPlacement(List components, Random rand, int x, int y, int z, int coordMode, int type) { + StructureBoundingBox box = ProceduralStructureStart.getComponentToAddBoundingBox(x, y, z, -6, -1, 0, 9, 6, 12, coordMode); + return box.minY > 10 && StructureComponent.findIntersecting(components, box) == null ? new Laboratory(type, box, coordMode) : null; + } + } } diff --git a/src/main/java/com/hbm/world/gen/component/Component.java b/src/main/java/com/hbm/world/gen/component/Component.java index effd0c592..eb42dc9b7 100644 --- a/src/main/java/com/hbm/world/gen/component/Component.java +++ b/src/main/java/com/hbm/world/gen/component/Component.java @@ -261,13 +261,13 @@ abstract public class Component extends StructureComponent { if(!box.isVecInside(posX, posY, posZ)) return; switch(this.coordBaseMode) { - default: + default: //South break; - case 1: + case 1: //West dirMeta = (dirMeta + 1) % 4; break; - case 2: + case 2: //North dirMeta ^= 2; break; //Flip second bit - case 3: + case 3: //East dirMeta = (dirMeta - 1) % 4; break; } @@ -281,6 +281,16 @@ abstract public class Component extends StructureComponent { } } + protected void placeLever(World world, StructureBoundingBox box, int dirMeta, boolean on, int featureX, int featureY, int featureZ) { + int posX = this.getXWithOffset(featureX, featureZ); + int posY = this.getYWithOffset(featureY); + int posZ = this.getZWithOffset(featureX, featureZ); + + if(!box.isVecInside(posX, posY, posZ)) return; + + //levers suck ass + } + /**N:0 W:1 S:2 E:3 */ protected void placeBed(World world, StructureBoundingBox box, int meta, int featureX, int featureY, int featureZ) { int xOffset = 0; From de10c15ea6e9d546b2fc73c6d03cae9a9e214218 Mon Sep 17 00:00:00 2001 From: Boblet Date: Thu, 1 Jun 2023 16:19:33 +0200 Subject: [PATCH 080/432] more rail logic, straight standard gauge model --- src/main/java/com/hbm/blocks/ModBlocks.java | 4 + .../java/com/hbm/blocks/rail/IRailNTM.java | 20 +- .../com/hbm/blocks/rail/RailNarrowCurve.java | 2 +- .../hbm/blocks/rail/RailNarrowStraight.java | 2 +- .../hbm/blocks/rail/RailStandardBuffer.java | 57 ++ .../hbm/blocks/rail/RailStandardCurve.java | 2 +- .../hbm/blocks/rail/RailStandardStraight.java | 7 +- .../hbm/entity/train/EntityRailCarBase.java | 43 +- .../com/hbm/entity/train/TrainCargoTram.java | 4 +- .../entity/train/TrainCargoTramTrailer.java | 4 +- src/main/java/com/hbm/items/ModItems.java | 3 + .../java/com/hbm/items/special/ItemTrain.java | 8 +- src/main/java/com/hbm/main/ClientProxy.java | 1 + .../java/com/hbm/main/CraftingManager.java | 1 + .../java/com/hbm/main/ResourceManager.java | 1 + .../block/RenderStandardStraightRail.java | 65 ++ src/main/resources/assets/hbm/lang/de_DE.lang | 1 + src/main/resources/assets/hbm/lang/en_US.lang | 1 + .../hbm/models/blocks/rail_standard.obj | 698 ++++++++++++++++++ .../hbm/textures/items/motor_bismuth.png | Bin 0 -> 537 bytes 20 files changed, 897 insertions(+), 27 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/rail/RailStandardBuffer.java create mode 100644 src/main/java/com/hbm/render/block/RenderStandardStraightRail.java create mode 100644 src/main/resources/assets/hbm/models/blocks/rail_standard.obj create mode 100644 src/main/resources/assets/hbm/textures/items/motor_bismuth.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index c006878ad..a4d55f383 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -13,6 +13,7 @@ import com.hbm.blocks.machine.rbmk.*; import com.hbm.blocks.network.*; import com.hbm.blocks.rail.RailNarrowCurve; import com.hbm.blocks.rail.RailNarrowStraight; +import com.hbm.blocks.rail.RailStandardBuffer; import com.hbm.blocks.rail.RailStandardCurve; import com.hbm.blocks.rail.RailStandardStraight; import com.hbm.blocks.siege.*; @@ -1100,6 +1101,7 @@ public class ModBlocks { public static Block rail_narrow_curve; public static Block rail_large_straight; public static Block rail_large_curve; + public static Block rail_large_buffer; public static Block statue_elb; public static Block statue_elb_g; @@ -2129,6 +2131,7 @@ public class ModBlocks { rail_narrow_curve = new RailNarrowCurve().setBlockName("rail_narrow_curve").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_narrow_neo"); rail_large_straight = new RailStandardStraight().setBlockName("rail_large_straight").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":block_steel"); rail_large_curve = new RailStandardCurve().setBlockName("rail_large_curve").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":block_steel"); + rail_large_buffer = new RailStandardBuffer().setBlockName("rail_large_buffer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":block_steel"); crate = new BlockCrate(Material.wood).setBlockName("crate").setStepSound(Block.soundTypeWood).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.consumableTab).setBlockTextureName(RefStrings.MODID + ":crate"); crate_weapon = new BlockCrate(Material.wood).setBlockName("crate_weapon").setStepSound(Block.soundTypeWood).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.consumableTab).setBlockTextureName(RefStrings.MODID + ":crate_weapon"); @@ -3359,6 +3362,7 @@ public class ModBlocks { register(rail_narrow_curve); register(rail_large_straight); register(rail_large_curve); + register(rail_large_buffer); //Crate GameRegistry.registerBlock(crate, crate.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/rail/IRailNTM.java b/src/main/java/com/hbm/blocks/rail/IRailNTM.java index 4fd66886a..782dc15e6 100644 --- a/src/main/java/com/hbm/blocks/rail/IRailNTM.java +++ b/src/main/java/com/hbm/blocks/rail/IRailNTM.java @@ -19,7 +19,7 @@ public interface IRailNTM { * Motion ends up being *-1 if the train is going in reverse, still pointing forwards despite the speed being negative. * Also features a double[] wrapper with size 1 which holds the speed value that overshoots the rail. * */ - public Vec3 getTravelLocation(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info); + public Vec3 getTravelLocation(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info, MoveContext context); /** Returns that rail's gauge. Trains will derail if the gauge does not match. */ public TrackGauge getGauge(World world, int x, int y, int z); @@ -41,4 +41,22 @@ public interface IRailNTM { public RailContext dist(double d) { this.overshoot = d; return this; } public RailContext pos(BlockPos d) { this.pos = d; return this; } } + + /** A wrapper for additional information like stopping on rails and what type of check we're doing */ + public static class MoveContext { + public RailCheckType type; + public boolean collision = false; //if a buffer stop or similar applies + public double overshoot; //how much of the travel distance was cut shor + + public MoveContext(RailCheckType type) { + this.type = type; + } + } + + public static enum RailCheckType { + CORE, + FRONT, + BACK, + OTHER + } } diff --git a/src/main/java/com/hbm/blocks/rail/RailNarrowCurve.java b/src/main/java/com/hbm/blocks/rail/RailNarrowCurve.java index 1fc4c01ae..ac317b65d 100644 --- a/src/main/java/com/hbm/blocks/rail/RailNarrowCurve.java +++ b/src/main/java/com/hbm/blocks/rail/RailNarrowCurve.java @@ -38,7 +38,7 @@ public class RailNarrowCurve extends BlockDummyable implements IRailNTM { } @Override - public Vec3 getTravelLocation(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info) { + public Vec3 getTravelLocation(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info, MoveContext context) { return snapAndMove(world, x, y, z, trainX, trainY, trainZ, motionX, motionY, motionZ, speed, info); } diff --git a/src/main/java/com/hbm/blocks/rail/RailNarrowStraight.java b/src/main/java/com/hbm/blocks/rail/RailNarrowStraight.java index 4d51dfe07..624087974 100644 --- a/src/main/java/com/hbm/blocks/rail/RailNarrowStraight.java +++ b/src/main/java/com/hbm/blocks/rail/RailNarrowStraight.java @@ -59,7 +59,7 @@ public class RailNarrowStraight extends BlockDummyable implements IRailNTM { } @Override - public Vec3 getTravelLocation(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info) { + public Vec3 getTravelLocation(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info, MoveContext context) { return snapAndMove(world, x, y, z, trainX, trainY, trainZ, motionX, motionY, motionZ, speed, info); } diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardBuffer.java b/src/main/java/com/hbm/blocks/rail/RailStandardBuffer.java new file mode 100644 index 000000000..52bee4310 --- /dev/null +++ b/src/main/java/com/hbm/blocks/rail/RailStandardBuffer.java @@ -0,0 +1,57 @@ +package com.hbm.blocks.rail; + +import com.hbm.blocks.BlockDummyable; + +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Vec3; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class RailStandardBuffer extends BlockDummyable implements IRailNTM { + + public RailStandardBuffer() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return null; + } + + @Override + public int getRenderType() { + return 0; + } + + @Override + public int[] getDimensions() { + return new int[] {0, 0, 2, 2, 1, 0}; + } + + @Override + public int getOffset() { + return 2; + } + + @Override + public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { + this.setBlockBounds(0F, 0F, 0F, 1F, 0.125F, 1F); + } + + // TBI + @Override + public Vec3 getSnappingPos(World world, int x, int y, int z, double trainX, double trainY, double trainZ) { + return null; + } + + @Override + public Vec3 getTravelLocation(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info, MoveContext context) { + return null; + } + + @Override + public TrackGauge getGauge(World world, int x, int y, int z) { + return TrackGauge.STANDARD; + } +} diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java b/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java index 7028571ce..712b395bf 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java @@ -35,7 +35,7 @@ public class RailStandardCurve extends BlockDummyable implements IRailNTM { } @Override - public Vec3 getTravelLocation(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info) { + public Vec3 getTravelLocation(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info, MoveContext context) { return snapAndMove(world, x, y, z, trainX, trainY, trainZ, motionX, motionY, motionZ, speed, info); } diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java b/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java index 903e01e1b..72c4be7b5 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java @@ -4,6 +4,7 @@ import com.hbm.blocks.BlockDummyable; import com.hbm.lib.Library; import com.hbm.util.fauxpointtwelve.BlockPos; +import cpw.mods.fml.client.registry.RenderingRegistry; import net.minecraft.block.material.Material; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; @@ -24,9 +25,11 @@ public class RailStandardStraight extends BlockDummyable implements IRailNTM { return null; } + public static int renderID = RenderingRegistry.getNextAvailableRenderId(); + @Override public int getRenderType() { - return 0; + return renderID; } @Override @@ -56,7 +59,7 @@ public class RailStandardStraight extends BlockDummyable implements IRailNTM { } @Override - public Vec3 getTravelLocation(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info) { + public Vec3 getTravelLocation(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info, MoveContext context) { return snapAndMove(world, x, y, z, trainX, trainY, trainZ, motionX, motionY, motionZ, speed, info); } diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java index bfab8bcc1..885532850 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java @@ -7,6 +7,8 @@ import java.util.Set; import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.rail.IRailNTM; +import com.hbm.blocks.rail.IRailNTM.MoveContext; +import com.hbm.blocks.rail.IRailNTM.RailCheckType; import com.hbm.blocks.rail.IRailNTM.RailContext; import com.hbm.blocks.rail.IRailNTM.TrackGauge; import com.hbm.items.ModItems; @@ -18,7 +20,6 @@ import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.DamageSource; import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; @@ -152,8 +153,8 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { } BlockPos anchor = this.getCurentAnchorPos(); - Vec3 frontPos = getRelPosAlongRail(anchor, this.getLengthSpan()); - Vec3 backPos = getRelPosAlongRail(anchor, -this.getLengthSpan()); + Vec3 frontPos = getRelPosAlongRail(anchor, this.getLengthSpan(), new MoveContext(RailCheckType.FRONT)); + Vec3 backPos = getRelPosAlongRail(anchor, -this.getLengthSpan(), new MoveContext(RailCheckType.BACK)); this.lastRenderX = this.renderX; this.lastRenderY = this.renderY; @@ -215,11 +216,11 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { } } - public Vec3 getRelPosAlongRail(BlockPos anchor, double distanceToCover) { - return getRelPosAlongRail(anchor, distanceToCover, this.getGauge(), this.worldObj, Vec3.createVectorHelper(posX, posY, posZ), this.rotationYaw); + public Vec3 getRelPosAlongRail(BlockPos anchor, double distanceToCover, MoveContext context) { + return getRelPosAlongRail(anchor, distanceToCover, this.getGauge(), this.worldObj, Vec3.createVectorHelper(posX, posY, posZ), this.rotationYaw, context); } - public static Vec3 getRelPosAlongRail(BlockPos anchor, double distanceToCover, TrackGauge gauge, World worldObj, Vec3 next, float yaw) { + public static Vec3 getRelPosAlongRail(BlockPos anchor, double distanceToCover, TrackGauge gauge, World worldObj, Vec3 next, float yaw, MoveContext context) { if(distanceToCover < 0) { distanceToCover *= -1; @@ -248,7 +249,7 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { IRailNTM rail = (IRailNTM) block; if(it == 1) { - next = rail.getTravelLocation(worldObj, x, y, z, next.xCoord, next.yCoord, next.zCoord, rot.xCoord, rot.yCoord, rot.zCoord, 0, new RailContext()); + next = rail.getTravelLocation(worldObj, x, y, z, next.xCoord, next.yCoord, next.zCoord, rot.xCoord, rot.yCoord, rot.zCoord, 0, new RailContext(), context); } boolean flip = distanceToCover < 0; @@ -256,7 +257,7 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { if(rail.getGauge(worldObj, x, y, z) == gauge) { RailContext info = new RailContext(); Vec3 prev = next; - next = rail.getTravelLocation(worldObj, x, y, z, prev.xCoord, prev.yCoord, prev.zCoord, rot.xCoord, rot.yCoord, rot.zCoord, distanceToCover, info); + next = rail.getTravelLocation(worldObj, x, y, z, prev.xCoord, prev.yCoord, prev.zCoord, rot.xCoord, rot.yCoord, rot.zCoord, distanceToCover, info, context); distanceToCover = info.overshoot; anchor = info.pos; @@ -292,6 +293,18 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { } } + //TODO: rethink this entire concept + /* + * first, figure out which train is the "front" when moving + * if the train is not in motion, reuse the contract ("combine") function we have now + * move the first wagon until either it finishes or bumps into a buffer + * if it derails, continue using the velocity + * then take the second wagon and move it towards the first wagon's collision point, assuming it didn't derail + * continue with all further wagons + * + * step 3 may also do collision checks for other trains, which is good because that's an issue we would have to solve sooner or later + */ + /* Move carts together with links */ for(LogicalTrainUnit ltu : ltus) ltu.combineWagons(); @@ -306,10 +319,12 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { public abstract TrackGauge getGauge(); /** Returns the length between the core and one of the bogies */ public abstract double getLengthSpan(); + /** Returns the length between the core and the collision points */ + public abstract double getCollisionSpan(); /** Returns a collision box, usually smaller than the entity's AABB for rendering, which is used for colliding trains */ - public AxisAlignedBB getCollisionBox() { + /*public AxisAlignedBB getCollisionBox() { return this.boundingBox; - } + }*/ /** Returns a collision box used for block collisions when derailed */ /*@Override public AxisAlignedBB getBoundingBox() { return this.boundingBox; @@ -555,7 +570,7 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { BlockPos anchor = new BlockPos(next.posX, next.posY, next.posZ); Vec3 trainPos = Vec3.createVectorHelper(next.posX, next.posY, next.posZ); float yaw = EntityRailCarBase.generateYaw(prevLoc, nextLoc); - Vec3 newPos = EntityRailCarBase.getRelPosAlongRail(anchor, len, next.getGauge(), next.worldObj, trainPos, yaw); + Vec3 newPos = EntityRailCarBase.getRelPosAlongRail(anchor, len, next.getGauge(), next.worldObj, trainPos, yaw, new MoveContext(RailCheckType.CORE)); next.setPosition(newPos.xCoord, newPos.yCoord, newPos.zCoord); } @@ -589,7 +604,7 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { for(EntityRailCarBase train : this.trains) { BlockPos anchor = train.getCurentAnchorPos(); - Vec3 corePos = train.getRelPosAlongRail(anchor, totalSpeed); + Vec3 corePos = train.getRelPosAlongRail(anchor, totalSpeed, new MoveContext(RailCheckType.CORE)); if(corePos == null) { train.derail(); @@ -598,8 +613,8 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { } else { train.setPosition(corePos.xCoord, corePos.yCoord, corePos.zCoord); anchor = train.getCurentAnchorPos(); //reset origin to new position - Vec3 frontPos = train.getRelPosAlongRail(anchor, train.getLengthSpan()); - Vec3 backPos = train.getRelPosAlongRail(anchor, -train.getLengthSpan()); + Vec3 frontPos = train.getRelPosAlongRail(anchor, train.getLengthSpan(), new MoveContext(RailCheckType.FRONT)); + Vec3 backPos = train.getRelPosAlongRail(anchor, -train.getLengthSpan(), new MoveContext(RailCheckType.BACK)); if(frontPos == null || backPos == null) { train.derail(); diff --git a/src/main/java/com/hbm/entity/train/TrainCargoTram.java b/src/main/java/com/hbm/entity/train/TrainCargoTram.java index af8bbe587..3b64d7679 100644 --- a/src/main/java/com/hbm/entity/train/TrainCargoTram.java +++ b/src/main/java/com/hbm/entity/train/TrainCargoTram.java @@ -18,7 +18,6 @@ import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; -import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.DamageSource; import net.minecraft.util.ResourceLocation; import net.minecraft.util.Vec3; @@ -52,11 +51,12 @@ public class TrainCargoTram extends EntityRailCarElectric implements IGUIProvide @Override public TrackGauge getGauge() { return TrackGauge.STANDARD; } @Override public double getLengthSpan() { return 1.5; } + @Override public double getCollisionSpan() { return 2.5; } @Override public Vec3 getRiderSeatPosition() { return Vec3.createVectorHelper(0.375, 2.375, 0.5); } @Override public boolean shouldRiderSit() { return false; } @Override public int getSizeInventory() { return 29; } @Override public String getInventoryName() { return this.hasCustomInventoryName() ? this.getEntityName() : "container.trainTram"; } - @Override public AxisAlignedBB getCollisionBox() { return AxisAlignedBB.getBoundingBox(renderX, renderY, renderZ, renderX, renderY + 1, renderZ).expand(4, 0, 4); } + //@Override public AxisAlignedBB getCollisionBox() { return AxisAlignedBB.getBoundingBox(renderX, renderY, renderZ, renderX, renderY + 1, renderZ).expand(4, 0, 4); } @Override public double getCouplingDist(TrainCoupling coupling) { return coupling != null ? 2.75 : 0; } @Override public int getMaxPower() { return this.getPowerConsumption() * 100; } diff --git a/src/main/java/com/hbm/entity/train/TrainCargoTramTrailer.java b/src/main/java/com/hbm/entity/train/TrainCargoTramTrailer.java index 05d465476..ffeea5245 100644 --- a/src/main/java/com/hbm/entity/train/TrainCargoTramTrailer.java +++ b/src/main/java/com/hbm/entity/train/TrainCargoTramTrailer.java @@ -19,7 +19,6 @@ import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; -import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.DamageSource; import net.minecraft.util.ResourceLocation; import net.minecraft.util.Vec3; @@ -46,9 +45,10 @@ public class TrainCargoTramTrailer extends EntityRailCarCargo implements IGUIPro @Override public double getMaxRailSpeed() { return 1; } @Override public TrackGauge getGauge() { return TrackGauge.STANDARD; } @Override public double getLengthSpan() { return 1.5; } + @Override public double getCollisionSpan() { return 2.5; } @Override public int getSizeInventory() { return 45; } @Override public String getInventoryName() { return this.hasCustomInventoryName() ? this.getEntityName() : "container.trainTramTrailer"; } - @Override public AxisAlignedBB getCollisionBox() { return AxisAlignedBB.getBoundingBox(renderX, renderY, renderZ, renderX, renderY + 1, renderZ).expand(4, 0, 4); } + //@Override public AxisAlignedBB getCollisionBox() { return AxisAlignedBB.getBoundingBox(renderX, renderY, renderZ, renderX, renderY + 1, renderZ).expand(4, 0, 4); } @Override public double getCouplingDist(TrainCoupling coupling) { return coupling != null ? 2.75 : 0; } @Override public double getCurrentSpeed() { return 0; } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 791bcf915..317ecb9e8 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -552,6 +552,7 @@ public class ModItems { public static Item tank_steel; public static Item motor; public static Item motor_desh; + public static Item motor_bismuth; public static Item centrifuge_element; //public static Item centrifuge_tower; public static Item reactor_core; @@ -2928,6 +2929,7 @@ public class ModItems { tank_steel = new Item().setUnlocalizedName("tank_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":tank_steel"); motor = new Item().setUnlocalizedName("motor").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":motor"); motor_desh = new Item().setUnlocalizedName("motor_desh").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":motor_desh"); + motor_bismuth = new Item().setUnlocalizedName("motor_bismuth").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":motor_bismuth"); centrifuge_element = new Item().setUnlocalizedName("centrifuge_element").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":centrifuge_element"); //centrifuge_tower = new Item().setUnlocalizedName("centrifuge_tower").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":centrifuge_tower"); reactor_core = new Item().setUnlocalizedName("reactor_core").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":reactor_core"); @@ -5985,6 +5987,7 @@ public class ModItems { GameRegistry.registerItem(tank_steel, tank_steel.getUnlocalizedName()); GameRegistry.registerItem(motor, motor.getUnlocalizedName()); GameRegistry.registerItem(motor_desh, motor_desh.getUnlocalizedName()); + GameRegistry.registerItem(motor_bismuth, motor_bismuth.getUnlocalizedName()); GameRegistry.registerItem(centrifuge_element, centrifuge_element.getUnlocalizedName()); //GameRegistry.registerItem(centrifuge_tower, centrifuge_tower.getUnlocalizedName()); //GameRegistry.registerItem(magnet_dee, magnet_dee.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/special/ItemTrain.java b/src/main/java/com/hbm/items/special/ItemTrain.java index d8353bcd2..62695488a 100644 --- a/src/main/java/com/hbm/items/special/ItemTrain.java +++ b/src/main/java/com/hbm/items/special/ItemTrain.java @@ -3,6 +3,8 @@ package com.hbm.items.special; import java.util.List; import com.hbm.blocks.rail.IRailNTM; +import com.hbm.blocks.rail.IRailNTM.MoveContext; +import com.hbm.blocks.rail.IRailNTM.RailCheckType; import com.hbm.entity.train.EntityRailCarBase; import com.hbm.entity.train.TrainCargoTram; import com.hbm.entity.train.TrainCargoTramTrailer; @@ -78,10 +80,10 @@ public class ItemTrain extends ItemEnumMulti { train.setPosition(x + fx, y + fy, z + fz); BlockPos anchor = train.getCurentAnchorPos(); train.rotationYaw = entity.rotationYaw; - Vec3 corePos = train.getRelPosAlongRail(anchor, 0); + Vec3 corePos = train.getRelPosAlongRail(anchor, 0, new MoveContext(RailCheckType.CORE)); train.setPosition(corePos.xCoord, corePos.yCoord, corePos.zCoord); - Vec3 frontPos = train.getRelPosAlongRail(anchor, train.getLengthSpan()); - Vec3 backPos = train.getRelPosAlongRail(anchor, -train.getLengthSpan()); + Vec3 frontPos = train.getRelPosAlongRail(anchor, train.getLengthSpan(), new MoveContext(RailCheckType.FRONT)); + Vec3 backPos = train.getRelPosAlongRail(anchor, -train.getLengthSpan(), new MoveContext(RailCheckType.BACK)); train.rotationYaw = train.generateYaw(frontPos, backPos); world.spawnEntityInWorld(train); } diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index a757432e5..bd9794aed 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -786,6 +786,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerBlockHandler(new RenderNarrowStraightRail()); RenderingRegistry.registerBlockHandler(new RenderNarrowCurveRail()); + RenderingRegistry.registerBlockHandler(new RenderStandardStraightRail()); RenderingRegistry.registerBlockHandler(new RenderBlockRotated(ModBlocks.charge_dynamite.getRenderType(), ResourceManager.charge_dynamite)); RenderingRegistry.registerBlockHandler(new RenderBlockRotated(ModBlocks.charge_c4.getRenderType(), ResourceManager.charge_c4)); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 1b8d0b48a..3fb520d1a 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -189,6 +189,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.motor, 2), new Object[] { " R ", "ICI", "ITI", 'R', ModItems.wire_red_copper, 'T', ModItems.coil_copper_torus, 'I', IRON.plate(), 'C', ModItems.coil_copper }); addRecipeAuto(new ItemStack(ModItems.motor, 2), new Object[] { " R ", "ICI", " T ", 'R', ModItems.wire_red_copper, 'T', ModItems.coil_copper_torus, 'I', STEEL.plate(), 'C', ModItems.coil_copper }); addRecipeAuto(new ItemStack(ModItems.motor_desh, 1), new Object[] { "PCP", "DMD", "PCP", 'P', ANY_PLASTIC.ingot(), 'C', ModItems.coil_gold_torus, 'D', DESH.ingot(), 'M', ModItems.motor }); + addRecipeAuto(new ItemStack(ModItems.motor_bismuth, 1), new Object[] { "BCB", "SBS", "BCB", 'B', BI.nugget(), 'C', ModBlocks.hadron_coil_alloy, 'S', STEEL.plateCast(), 'B', DURA.ingot() }); //addRecipeAuto(new ItemStack(ModItems.centrifuge_element, 1), new Object[] { " T ", "WTW", "RMR", 'R', ModItems.wire_red_copper, 'T', ModItems.tank_steel, 'M', ModItems.motor, 'W', ModItems.coil_tungsten }); //addRecipeAuto(new ItemStack(ModItems.centrifuge_tower, 1), new Object[] { "LL", "EE", "EE", 'E', ModItems.centrifuge_element, 'L', KEY_BLUE }); //addRecipeAuto(new ItemStack(ModItems.reactor_core, 1), new Object[] { "LNL", "N N", "LNL", 'N', getReflector(), 'L', PB.plate() }); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 30f1e2c2e..44716fec9 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -1331,6 +1331,7 @@ public class ResourceManager { public static final IModelCustom splitter = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/splitter.obj")); public static final IModelCustom rail_narrow_straight = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_narrow.obj")); public static final IModelCustom rail_narrow_curve = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_narrow_bend.obj")); + public static final IModelCustom rail_standard_straight = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard.obj")); public static final IModelCustom charge_dynamite = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/charge_dynamite.obj")); public static final IModelCustom charge_c4 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/charge_c4.obj")); diff --git a/src/main/java/com/hbm/render/block/RenderStandardStraightRail.java b/src/main/java/com/hbm/render/block/RenderStandardStraightRail.java new file mode 100644 index 000000000..1343795ca --- /dev/null +++ b/src/main/java/com/hbm/render/block/RenderStandardStraightRail.java @@ -0,0 +1,65 @@ +package com.hbm.render.block; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.rail.RailStandardStraight; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; + +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.world.IBlockAccess; +import net.minecraftforge.client.model.obj.WavefrontObject; + +public class RenderStandardStraightRail implements ISimpleBlockRenderingHandler { + + @Override + public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { + + GL11.glPushMatrix(); + Tessellator tessellator = Tessellator.instance; + + GL11.glTranslated(0, -0.0625, 0); + tessellator.startDrawingQuads(); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_straight, block.getIcon(1, 0), tessellator, 0, false); + tessellator.draw(); + + GL11.glPopMatrix(); + } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { + + int meta = world.getBlockMetadata(x, y, z); + if(meta < 12) return true; + + Tessellator tessellator = Tessellator.instance; + + tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); + tessellator.setColorOpaque_F(1, 1, 1); + + float rotation = 0; + + if(meta == 12) rotation = 90F / 180F * (float) Math.PI; + if(meta == 14) rotation = 180F / 180F * (float) Math.PI; + if(meta == 13) rotation = 270F / 180F * (float) Math.PI; + + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_straight, block.getIcon(1, 0), tessellator, rotation, true); + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + + return true; + } + + @Override + public boolean shouldRender3DInInventory(int modelId) { + return true; + } + + @Override + public int getRenderId() { + return RailStandardStraight.renderID; + } +} diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index f17622a7a..7a5a8049b 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -2242,6 +2242,7 @@ item.mold_base.name=Blanke Gussform item.mold.name=Gussform item.morning_glory.name=Zaunwinde item.motor.name=Motor +item.motor_bismuth.name=Bismuth-Motor item.motor_desh.name=Desh-Motor item.mp_c_1.name=Stufe 1 Zielsucher-Schaltkreis item.mp_c_2.name=Stufe 2 Zielsucher-Schaltkreis diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 5091ddb4b..94cfb0809 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -2913,6 +2913,7 @@ item.mold_base.name=Blank Foundry Mold item.mold.name=Foundry Mold item.morning_glory.name=Morning Glory item.motor.name=Motor +item.motor_bismuth.name=Bismuth Motor item.motor_desh.name=Desh Motor item.mp_c_1.name=Tier 1 Missile Targeting Circuit item.mp_c_2.name=Tier 2 Missile Targeting Circuit diff --git a/src/main/resources/assets/hbm/models/blocks/rail_standard.obj b/src/main/resources/assets/hbm/models/blocks/rail_standard.obj new file mode 100644 index 000000000..292011e56 --- /dev/null +++ b/src/main/resources/assets/hbm/models/blocks/rail_standard.obj @@ -0,0 +1,698 @@ +# Blender v2.79 (sub 0) OBJ File: 'rail_standard.blend' +# www.blender.org +o Plane +v 0.750000 0.062500 2.500000 +v 0.750000 0.062500 -2.500000 +v -0.750000 0.062500 2.500000 +v -0.750000 0.062500 -2.500000 +v 0.750000 0.187500 2.500000 +v 0.750000 0.187500 -2.500000 +v -0.750000 0.187500 2.500000 +v -0.750000 0.187500 -2.500000 +v 0.812500 0.062500 2.500000 +v 0.812500 0.062500 -2.500000 +v 0.812500 0.187500 2.500000 +v 0.812500 0.187500 -2.500000 +v -0.812500 0.062500 2.500000 +v -0.812500 0.062500 -2.500000 +v -0.812500 0.187500 2.500000 +v -0.812500 0.187500 -2.500000 +v -1.000000 0.000000 -0.250000 +v 1.000000 0.000000 -0.250000 +v -1.000000 0.000000 0.250000 +v 1.000000 0.000000 0.250000 +v 1.000000 0.062500 -0.250000 +v -1.000000 0.062500 -0.250000 +v 1.000000 0.062500 0.250000 +v -1.000000 0.062500 0.250000 +v -1.000000 0.000000 2.250000 +v 1.000000 0.000000 2.250000 +v -1.000000 0.000000 2.500000 +v 1.000000 0.000000 2.500000 +v 1.000000 0.062500 2.250000 +v -1.000000 0.062500 2.250000 +v 1.000000 0.062500 2.500000 +v -1.000000 0.062500 2.500000 +v -1.000000 0.000000 1.000000 +v 1.000000 0.000000 1.000000 +v -1.000000 0.000000 1.500000 +v 1.000000 0.000000 1.500000 +v 1.000000 0.062500 1.000000 +v -1.000000 0.062500 1.000000 +v 1.000000 0.062500 1.500000 +v -1.000000 0.062500 1.500000 +v -1.000000 0.000000 -2.500000 +v 1.000000 0.000000 -2.500000 +v -1.000000 0.000000 -2.250000 +v 1.000000 0.000000 -2.250000 +v 1.000000 0.062500 -2.500000 +v -1.000000 0.062500 -2.500000 +v 1.000000 0.062500 -2.250000 +v -1.000000 0.062500 -2.250000 +v -1.000000 0.000000 -1.500000 +v 1.000000 0.000000 -1.500000 +v -1.000000 0.000000 -1.000000 +v 1.000000 0.000000 -1.000000 +v 1.000000 0.062500 -1.500000 +v -1.000000 0.062500 -1.500000 +v 1.000000 0.062500 -1.000000 +v -1.000000 0.062500 -1.000000 +v 0.625000 0.062500 0.062500 +v 0.937500 0.062500 0.062500 +v 0.625000 0.062500 -0.062500 +v 0.937500 0.062500 -0.062500 +v 0.625000 0.125000 -0.062500 +v 0.625000 0.125000 0.062500 +v 0.937500 0.125000 0.062500 +v 0.937500 0.125000 -0.062500 +v -0.937500 0.062500 0.062500 +v -0.625000 0.062500 0.062500 +v -0.937500 0.062500 -0.062500 +v -0.625000 0.062500 -0.062500 +v -0.937500 0.125000 -0.062500 +v -0.937500 0.125000 0.062500 +v -0.625000 0.125000 0.062500 +v -0.625000 0.125000 -0.062500 +v 0.625000 0.062500 -1.187500 +v 0.937500 0.062500 -1.187500 +v 0.625000 0.062500 -1.312500 +v 0.937500 0.062500 -1.312500 +v 0.625000 0.125000 -1.312500 +v 0.625000 0.125000 -1.187500 +v 0.937500 0.125000 -1.187500 +v 0.937500 0.125000 -1.312500 +v -0.937500 0.062500 -1.187500 +v -0.625000 0.062500 -1.187500 +v -0.937500 0.062500 -1.312500 +v -0.625000 0.062500 -1.312500 +v -0.937500 0.125000 -1.312500 +v -0.937500 0.125000 -1.187500 +v -0.625000 0.125000 -1.187500 +v -0.625000 0.125000 -1.312500 +v 0.625000 0.062500 2.500000 +v 0.937500 0.062500 2.500000 +v 0.625000 0.062500 2.437500 +v 0.937500 0.062500 2.437500 +v 0.625000 0.125000 2.437500 +v 0.625000 0.125000 2.500000 +v 0.937500 0.125000 2.500000 +v 0.937500 0.125000 2.437500 +v -0.937500 0.062500 2.500000 +v -0.625000 0.062500 2.500000 +v -0.937500 0.062500 2.437500 +v -0.625000 0.062500 2.437500 +v -0.937500 0.125000 2.437500 +v -0.937500 0.125000 2.500000 +v -0.625000 0.125000 2.500000 +v -0.625000 0.125000 2.437500 +v 0.625000 0.062500 1.312500 +v 0.937500 0.062500 1.312500 +v 0.625000 0.062500 1.187500 +v 0.937500 0.062500 1.187500 +v 0.625000 0.125000 1.187500 +v 0.625000 0.125000 1.312500 +v 0.937500 0.125000 1.312500 +v 0.937500 0.125000 1.187500 +v -0.937500 0.062500 1.312500 +v -0.625000 0.062500 1.312500 +v -0.937500 0.062500 1.187500 +v -0.625000 0.062500 1.187500 +v -0.937500 0.125000 1.187500 +v -0.937500 0.125000 1.312500 +v -0.625000 0.125000 1.312500 +v -0.625000 0.125000 1.187500 +v 0.625000 0.062500 -2.437500 +v 0.937500 0.062500 -2.437500 +v 0.625000 0.062500 -2.500000 +v 0.937500 0.062500 -2.500000 +v 0.625000 0.125000 -2.500000 +v 0.625000 0.125000 -2.437500 +v 0.937500 0.125000 -2.437500 +v 0.937500 0.125000 -2.500000 +v -0.937500 0.062500 -2.437500 +v -0.625000 0.062500 -2.437500 +v -0.937500 0.062500 -2.500000 +v -0.625000 0.062500 -2.500000 +v -0.937500 0.125000 -2.500000 +v -0.937500 0.125000 -2.437500 +v -0.625000 0.125000 -2.437500 +v -0.625000 0.125000 -2.500000 +vt 0.750000 1.000000 +vt 0.781249 0.000000 +vt 0.781250 1.000000 +vt 0.875000 1.000000 +vt 0.843750 0.000000 +vt 0.875000 0.000000 +vt 0.781250 1.000000 +vt 0.812499 0.000000 +vt 0.812500 1.000000 +vt 0.468750 0.550000 +vt 0.453125 0.575000 +vt 0.453125 0.550000 +vt 0.968750 0.000000 +vt 0.953125 1.000000 +vt 0.953125 0.000000 +vt 1.000000 0.000000 +vt 0.984375 1.000000 +vt 0.984375 0.000000 +vt 0.531250 0.575000 +vt 0.546875 0.550000 +vt 0.546875 0.575000 +vt 0.843750 1.000000 +vt 0.812500 0.000000 +vt 0.843750 0.000000 +vt 0.656249 0.550000 +vt 0.640624 0.525000 +vt 0.656249 0.525000 +vt 0.656249 0.550000 +vt 0.671874 0.575000 +vt 0.656249 0.575000 +vt 0.953125 1.000000 +vt 0.937500 0.000000 +vt 0.953125 0.000000 +vt 0.984375 1.000000 +vt 0.968750 0.000000 +vt 0.984375 0.000000 +vt 0.375000 0.000000 +vt 0.499999 0.400000 +vt 0.375000 0.400000 +vt 0.250000 0.400000 +vt 0.375000 0.000000 +vt 0.375000 0.400000 +vt 0.593749 0.500000 +vt 0.609374 0.400000 +vt 0.609374 0.500000 +vt 0.359375 0.800000 +vt 0.375000 0.400000 +vt 0.375000 0.800000 +vt 0.562499 0.500000 +vt 0.578124 0.400000 +vt 0.578124 0.500000 +vt 0.312500 0.400000 +vt 0.296875 0.800000 +vt 0.296875 0.400000 +vt 0.187500 0.800000 +vt 0.125000 0.400000 +vt 0.187500 0.400000 +vt 0.062500 0.400000 +vt 0.000000 0.800000 +vt 0.000000 0.400000 +vt 0.406250 0.575000 +vt 0.421875 0.525000 +vt 0.421875 0.575000 +vt 0.390625 0.400000 +vt 0.375000 0.800000 +vt 0.375000 0.400000 +vt 0.421875 0.575000 +vt 0.437500 0.525000 +vt 0.437500 0.575000 +vt 0.218750 0.400000 +vt 0.203125 0.800000 +vt 0.203125 0.400000 +vt 0.125000 0.000000 +vt 0.250000 0.400000 +vt 0.125000 0.400000 +vt 0.624999 0.000000 +vt 0.500000 0.400000 +vt 0.499999 0.000000 +vt 0.609374 0.500000 +vt 0.624999 0.400000 +vt 0.624999 0.500000 +vt 0.250000 0.800000 +vt 0.265625 0.400000 +vt 0.265625 0.800000 +vt 0.578124 0.500000 +vt 0.593749 0.400000 +vt 0.593749 0.500000 +vt 0.281250 0.400000 +vt 0.265625 0.800000 +vt 0.265625 0.400000 +vt 0.125000 0.800000 +vt 0.062500 0.400000 +vt 0.125000 0.400000 +vt 0.937500 0.000000 +vt 0.875000 0.400000 +vt 0.875000 0.000000 +vt 0.390625 0.575000 +vt 0.406250 0.525000 +vt 0.406250 0.575000 +vt 0.203125 0.400000 +vt 0.187500 0.800000 +vt 0.187500 0.400000 +vt 0.437500 0.575000 +vt 0.453125 0.525000 +vt 0.453125 0.575000 +vt 0.359374 0.400000 +vt 0.343750 0.800000 +vt 0.343749 0.400000 +vt 0.749999 0.400000 +vt 0.624999 0.000000 +vt 0.749999 0.000000 +vt 0.000000 0.400000 +vt 0.125000 0.000000 +vt 0.125000 0.400000 +vt 0.624999 0.500000 +vt 0.640624 0.400000 +vt 0.640624 0.500000 +vt 0.250000 0.400000 +vt 0.234375 0.800000 +vt 0.234375 0.400000 +vt 0.312500 0.500000 +vt 0.328125 0.400000 +vt 0.328125 0.500000 +vt 0.296875 0.400000 +vt 0.281250 0.800000 +vt 0.281250 0.400000 +vt 0.453125 0.462500 +vt 0.484375 0.525000 +vt 0.453125 0.525000 +vt 0.468750 0.550000 +vt 0.453125 0.525000 +vt 0.468750 0.525000 +vt 0.703124 0.550000 +vt 0.687499 0.525000 +vt 0.703124 0.525000 +vt 0.531249 0.462500 +vt 0.515625 0.400000 +vt 0.531249 0.400000 +vt 0.640624 0.400000 +vt 0.656249 0.462500 +vt 0.640624 0.462500 +vt 0.421875 0.462500 +vt 0.453125 0.525000 +vt 0.421875 0.525000 +vt 0.687499 0.550000 +vt 0.671874 0.525000 +vt 0.687499 0.525000 +vt 0.484375 0.550000 +vt 0.468750 0.525000 +vt 0.484375 0.525000 +vt 0.515625 0.525000 +vt 0.500000 0.462500 +vt 0.515625 0.462500 +vt 0.546874 0.400000 +vt 0.562499 0.462500 +vt 0.546874 0.462500 +vt 0.421875 0.525000 +vt 0.390625 0.462500 +vt 0.421875 0.462500 +vt 0.484375 0.575000 +vt 0.468750 0.550000 +vt 0.484375 0.550000 +vt 0.531250 0.575000 +vt 0.515625 0.550000 +vt 0.531250 0.550000 +vt 0.656249 0.400000 +vt 0.671874 0.462500 +vt 0.656249 0.462500 +vt 0.531249 0.462500 +vt 0.546874 0.525000 +vt 0.531249 0.525000 +vt 0.484375 0.462500 +vt 0.453125 0.400000 +vt 0.484375 0.400000 +vt 0.671874 0.550000 +vt 0.656249 0.525000 +vt 0.671874 0.525000 +vt 0.546874 0.550000 +vt 0.531249 0.525000 +vt 0.546874 0.525000 +vt 0.593749 0.500000 +vt 0.609374 0.562500 +vt 0.593749 0.562500 +vt 0.546874 0.462500 +vt 0.562499 0.525000 +vt 0.546874 0.525000 +vt 0.624999 0.562500 +vt 0.609374 0.500000 +vt 0.624999 0.500000 +vt 0.578124 0.575000 +vt 0.562499 0.562500 +vt 0.578124 0.562500 +vt 0.624999 0.575000 +vt 0.609374 0.562500 +vt 0.624999 0.562500 +vt 0.531249 0.400000 +vt 0.546874 0.462500 +vt 0.531249 0.462500 +vt 0.703124 0.400000 +vt 0.718749 0.462500 +vt 0.703124 0.462500 +vt 0.640624 0.562500 +vt 0.624999 0.500000 +vt 0.640624 0.500000 +vt 0.328125 0.575000 +vt 0.312500 0.562500 +vt 0.328125 0.562500 +vt 0.656249 0.562500 +vt 0.640624 0.550000 +vt 0.656249 0.550000 +vt 0.671874 0.400000 +vt 0.687499 0.462500 +vt 0.671874 0.462500 +vt 0.687499 0.462500 +vt 0.703124 0.525000 +vt 0.687499 0.525000 +vt 0.453125 0.462500 +vt 0.421875 0.400000 +vt 0.453125 0.400000 +vt 0.500000 0.575000 +vt 0.484375 0.550000 +vt 0.500000 0.550000 +vt 0.515625 0.575000 +vt 0.500000 0.550000 +vt 0.515625 0.550000 +vt 0.640624 0.462500 +vt 0.656249 0.525000 +vt 0.640624 0.525000 +vt 0.312500 0.500000 +vt 0.328125 0.562500 +vt 0.312500 0.562500 +vt 0.421875 0.462500 +vt 0.390625 0.400000 +vt 0.421875 0.400000 +vt 0.687499 0.575000 +vt 0.671874 0.550000 +vt 0.687499 0.550000 +vt 0.515625 0.550000 +vt 0.500000 0.525000 +vt 0.515625 0.525000 +vt 0.656249 0.462500 +vt 0.671874 0.525000 +vt 0.656249 0.525000 +vt 0.671874 0.462500 +vt 0.687499 0.525000 +vt 0.671874 0.525000 +vt 0.578124 0.562500 +vt 0.562499 0.500000 +vt 0.578124 0.500000 +vt 0.609374 0.575000 +vt 0.593749 0.562500 +vt 0.609374 0.562500 +vt 0.640624 0.575000 +vt 0.624999 0.562500 +vt 0.640624 0.562500 +vt 0.703124 0.462500 +vt 0.718749 0.525000 +vt 0.703124 0.525000 +vt 0.515625 0.462500 +vt 0.531249 0.525000 +vt 0.515625 0.525000 +vt 0.593749 0.562500 +vt 0.578124 0.500000 +vt 0.593749 0.500000 +vt 0.593749 0.575000 +vt 0.578124 0.562500 +vt 0.593749 0.562500 +vt 0.703124 0.562500 +vt 0.687499 0.550000 +vt 0.703124 0.550000 +vt 0.687499 0.400000 +vt 0.703124 0.462500 +vt 0.687499 0.462500 +vt 0.500000 0.400000 +vt 0.515625 0.462500 +vt 0.500000 0.462500 +vt 0.749999 0.000000 +vt 0.843750 1.000000 +vt 0.781250 0.000000 +vt 0.468750 0.575000 +vt 0.968750 1.000000 +vt 1.000000 1.000000 +vt 0.531250 0.550000 +vt 0.812500 1.000000 +vt 0.640624 0.550000 +vt 0.671874 0.550000 +vt 0.937500 1.000000 +vt 0.968750 1.000000 +vt 0.499999 0.000000 +vt 0.250000 0.000000 +vt 0.593749 0.400000 +vt 0.359375 0.400000 +vt 0.562499 0.400000 +vt 0.312500 0.800000 +vt 0.125000 0.800000 +vt 0.062500 0.800000 +vt 0.406250 0.525000 +vt 0.390625 0.800000 +vt 0.421875 0.525000 +vt 0.218750 0.800000 +vt 0.250000 0.000000 +vt 0.624999 0.400000 +vt 0.609374 0.400000 +vt 0.250000 0.400000 +vt 0.578124 0.400000 +vt 0.281250 0.800000 +vt 0.062500 0.800000 +vt 0.937500 0.400000 +vt 0.390625 0.525000 +vt 0.203125 0.800000 +vt 0.437500 0.525000 +vt 0.359375 0.800000 +vt 0.624999 0.400000 +vt 0.000000 0.000000 +vt 0.624999 0.400000 +vt 0.250000 0.800000 +vt 0.312500 0.400000 +vt 0.296875 0.800000 +vt 0.484375 0.462500 +vt 0.453125 0.550000 +vt 0.687499 0.550000 +vt 0.515625 0.462500 +vt 0.656249 0.400000 +vt 0.453125 0.462500 +vt 0.671874 0.550000 +vt 0.468750 0.550000 +vt 0.500000 0.525000 +vt 0.562499 0.400000 +vt 0.390625 0.525000 +vt 0.468750 0.575000 +vt 0.515625 0.575000 +vt 0.671874 0.400000 +vt 0.546874 0.462500 +vt 0.453125 0.462500 +vt 0.656249 0.550000 +vt 0.531249 0.550000 +vt 0.609374 0.500000 +vt 0.562499 0.462500 +vt 0.609374 0.562500 +vt 0.562499 0.575000 +vt 0.609374 0.575000 +vt 0.546874 0.400000 +vt 0.718749 0.400000 +vt 0.624999 0.562500 +vt 0.312500 0.575000 +vt 0.640624 0.562500 +vt 0.687499 0.400000 +vt 0.703124 0.462500 +vt 0.421875 0.462500 +vt 0.484375 0.575000 +vt 0.500000 0.575000 +vt 0.656249 0.462500 +vt 0.328125 0.500000 +vt 0.390625 0.462500 +vt 0.671874 0.575000 +vt 0.500000 0.550000 +vt 0.671874 0.462500 +vt 0.687499 0.462500 +vt 0.562499 0.562500 +vt 0.593749 0.575000 +vt 0.624999 0.575000 +vt 0.718749 0.462500 +vt 0.531249 0.462500 +vt 0.578124 0.562500 +vt 0.578124 0.575000 +vt 0.687499 0.562500 +vt 0.703124 0.400000 +vt 0.515625 0.400000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.0000 1.0000 +s off +f 8/1/1 3/2/1 4/3/1 +f 1/4/2 6/5/2 2/6/2 +f 12/7/1 9/8/1 10/9/1 +f 12/10/3 2/11/3 6/12/3 +f 11/13/4 6/14/4 5/15/4 +f 10/16/5 1/17/5 2/18/5 +f 9/19/6 5/20/6 1/21/6 +f 13/22/2 16/23/2 14/24/2 +f 4/25/3 16/26/3 8/27/3 +f 7/28/6 13/29/6 3/30/6 +f 8/31/4 15/32/4 7/33/4 +f 3/34/5 14/35/5 4/36/5 +f 18/37/5 19/38/5 17/39/5 +f 24/40/4 21/41/4 22/42/4 +f 24/43/2 17/44/2 19/45/2 +f 22/46/3 18/47/3 17/48/3 +f 21/49/1 20/50/1 18/51/1 +f 23/52/6 19/53/6 20/54/6 +f 26/55/5 27/56/5 25/57/5 +f 32/58/4 29/59/4 30/60/4 +f 32/61/2 25/62/2 27/63/2 +f 30/64/3 26/65/3 25/66/3 +f 29/67/1 28/68/1 26/69/1 +f 31/70/6 27/71/6 28/72/6 +f 34/73/5 35/74/5 33/75/5 +f 40/76/4 37/77/4 38/78/4 +f 40/79/2 33/80/2 35/81/2 +f 38/82/3 34/83/3 33/84/3 +f 37/85/1 36/86/1 34/87/1 +f 39/88/6 35/89/6 36/90/6 +f 42/91/5 43/92/5 41/93/5 +f 48/94/4 45/95/4 46/96/4 +f 48/97/2 41/98/2 43/99/2 +f 46/100/3 42/101/3 41/102/3 +f 45/103/1 44/104/1 42/105/1 +f 47/106/6 43/107/6 44/108/6 +f 50/109/5 51/110/5 49/111/5 +f 56/112/4 53/113/4 54/114/4 +f 56/115/2 49/116/2 51/117/2 +f 54/118/3 50/119/3 49/120/3 +f 53/121/1 52/122/1 50/123/1 +f 55/124/6 51/125/6 52/126/6 +f 63/127/4 61/128/4 62/129/4 +f 60/130/1 63/131/1 58/132/1 +f 57/133/2 61/134/2 59/135/2 +f 59/136/3 64/137/3 60/138/3 +f 58/139/6 62/140/6 57/141/6 +f 71/142/4 69/143/4 70/144/4 +f 68/145/1 71/146/1 66/147/1 +f 65/148/2 69/149/2 67/150/2 +f 67/151/3 72/152/3 68/153/3 +f 66/154/6 70/155/6 65/156/6 +f 79/157/4 77/158/4 78/159/4 +f 76/160/1 79/161/1 74/162/1 +f 73/163/2 77/164/2 75/165/2 +f 75/166/3 80/167/3 76/168/3 +f 74/169/6 78/170/6 73/171/6 +f 87/172/4 85/173/4 86/174/4 +f 84/175/1 87/176/1 82/177/1 +f 81/178/2 85/179/2 83/180/2 +f 83/181/3 88/182/3 84/183/3 +f 82/184/6 86/185/6 81/186/6 +f 95/187/4 93/188/4 94/189/4 +f 92/190/1 95/191/1 90/192/1 +f 89/193/2 93/194/2 91/195/2 +f 91/196/3 96/197/3 92/198/3 +f 90/199/6 94/200/6 89/201/6 +f 103/202/4 101/203/4 102/204/4 +f 100/205/1 103/206/1 98/207/1 +f 97/208/2 101/209/2 99/210/2 +f 99/211/3 104/212/3 100/213/3 +f 98/214/6 102/215/6 97/216/6 +f 111/217/4 109/218/4 110/219/4 +f 108/220/1 111/221/1 106/222/1 +f 105/223/2 109/224/2 107/225/2 +f 107/226/3 112/227/3 108/228/3 +f 106/229/6 110/230/6 105/231/6 +f 119/232/4 117/233/4 118/234/4 +f 116/235/1 119/236/1 114/237/1 +f 113/238/2 117/239/2 115/240/2 +f 115/241/3 120/242/3 116/243/3 +f 114/244/6 118/245/6 113/246/6 +f 127/247/4 125/248/4 126/249/4 +f 124/250/1 127/251/1 122/252/1 +f 121/253/2 125/254/2 123/255/2 +f 123/256/3 128/257/3 124/258/3 +f 122/259/6 126/260/6 121/261/6 +f 135/262/4 133/263/4 134/264/4 +f 132/265/1 135/266/1 130/267/1 +f 129/268/2 133/269/2 131/270/2 +f 131/271/3 136/272/3 132/273/3 +f 130/274/6 134/275/6 129/276/6 +f 8/1/1 7/277/1 3/2/1 +f 1/4/2 5/278/2 6/5/2 +f 12/7/1 11/279/1 9/8/1 +f 12/10/3 10/280/3 2/11/3 +f 11/13/4 12/281/4 6/14/4 +f 10/16/5 9/282/5 1/17/5 +f 9/19/6 11/283/6 5/20/6 +f 13/22/2 15/284/2 16/23/2 +f 4/25/3 14/285/3 16/26/3 +f 7/28/6 15/286/6 13/29/6 +f 8/31/4 16/287/4 15/32/4 +f 3/34/5 13/288/5 14/35/5 +f 18/37/5 20/289/5 19/38/5 +f 24/40/4 23/290/4 21/41/4 +f 24/43/2 22/291/2 17/44/2 +f 22/46/3 21/292/3 18/47/3 +f 21/49/1 23/293/1 20/50/1 +f 23/52/6 24/294/6 19/53/6 +f 26/55/5 28/295/5 27/56/5 +f 32/58/4 31/296/4 29/59/4 +f 32/61/2 30/297/2 25/62/2 +f 30/64/3 29/298/3 26/65/3 +f 29/67/1 31/299/1 28/68/1 +f 31/70/6 32/300/6 27/71/6 +f 34/73/5 36/301/5 35/74/5 +f 40/76/4 39/302/4 37/77/4 +f 40/79/2 38/303/2 33/80/2 +f 38/82/3 37/304/3 34/83/3 +f 37/85/1 39/305/1 36/86/1 +f 39/88/6 40/306/6 35/89/6 +f 42/91/5 44/307/5 43/92/5 +f 48/94/4 47/308/4 45/95/4 +f 48/97/2 46/309/2 41/98/2 +f 46/100/3 45/310/3 42/101/3 +f 45/103/1 47/311/1 44/104/1 +f 47/106/6 48/312/6 43/107/6 +f 50/109/5 52/313/5 51/110/5 +f 56/112/4 55/314/4 53/113/4 +f 56/115/2 54/315/2 49/116/2 +f 54/118/3 53/316/3 50/119/3 +f 53/121/1 55/317/1 52/122/1 +f 55/124/6 56/318/6 51/125/6 +f 63/127/4 64/319/4 61/128/4 +f 60/130/1 64/320/1 63/131/1 +f 57/133/2 62/321/2 61/134/2 +f 59/136/3 61/322/3 64/137/3 +f 58/139/6 63/323/6 62/140/6 +f 71/142/4 72/324/4 69/143/4 +f 68/145/1 72/325/1 71/146/1 +f 65/148/2 70/326/2 69/149/2 +f 67/151/3 69/327/3 72/152/3 +f 66/154/6 71/328/6 70/155/6 +f 79/157/4 80/329/4 77/158/4 +f 76/160/1 80/330/1 79/161/1 +f 73/163/2 78/331/2 77/164/2 +f 75/166/3 77/332/3 80/167/3 +f 74/169/6 79/333/6 78/170/6 +f 87/172/4 88/334/4 85/173/4 +f 84/175/1 88/335/1 87/176/1 +f 81/178/2 86/336/2 85/179/2 +f 83/181/3 85/337/3 88/182/3 +f 82/184/6 87/338/6 86/185/6 +f 95/187/4 96/339/4 93/188/4 +f 92/190/1 96/340/1 95/191/1 +f 89/193/2 94/341/2 93/194/2 +f 91/196/3 93/342/3 96/197/3 +f 90/199/6 95/343/6 94/200/6 +f 103/202/4 104/344/4 101/203/4 +f 100/205/1 104/345/1 103/206/1 +f 97/208/2 102/346/2 101/209/2 +f 99/211/3 101/347/3 104/212/3 +f 98/214/6 103/348/6 102/215/6 +f 111/217/4 112/349/4 109/218/4 +f 108/220/1 112/350/1 111/221/1 +f 105/223/2 110/351/2 109/224/2 +f 107/226/3 109/352/3 112/227/3 +f 106/229/6 111/353/6 110/230/6 +f 119/232/4 120/354/4 117/233/4 +f 116/235/1 120/355/1 119/236/1 +f 113/238/2 118/356/2 117/239/2 +f 115/241/3 117/357/3 120/242/3 +f 114/244/6 119/358/6 118/245/6 +f 127/247/4 128/359/4 125/248/4 +f 124/250/1 128/360/1 127/251/1 +f 121/253/2 126/361/2 125/254/2 +f 123/256/3 125/362/3 128/257/3 +f 122/259/6 127/363/6 126/260/6 +f 135/262/4 136/364/4 133/263/4 +f 132/265/1 136/365/1 135/266/1 +f 129/268/2 134/366/2 133/269/2 +f 131/271/3 133/367/3 136/272/3 +f 130/274/6 135/368/6 134/275/6 diff --git a/src/main/resources/assets/hbm/textures/items/motor_bismuth.png b/src/main/resources/assets/hbm/textures/items/motor_bismuth.png new file mode 100644 index 0000000000000000000000000000000000000000..404e935e17f208634e405b4c06717643da7a8580 GIT binary patch literal 537 zcmV+!0_OdRP)a*+z8^t1>=X=>i95)a*=_{ zmkxy}jmg-gamF&Fbq!qsMx1gt}=;f7D07 zeFmsfDWm~V$A_^wY&>QMbjl-RBuWxwfU5 zYCDuPjkVRaKedM*2*BOgsC@bKm6*DBO>WyQxcd6|WSr*1dYR1pTuX0L1@BMDKy>oR b|I$)>=+~{*{fM#V00000NkvXXu0mjfgXad_ literal 0 HcmV?d00001 From b9d159bffe86b3814a2f2c734846d44bc6f91030 Mon Sep 17 00:00:00 2001 From: Bob Date: Thu, 1 Jun 2023 19:07:21 +0200 Subject: [PATCH 081/432] chlorocalcite --- changelog | 2 ++ src/main/java/com/hbm/config/WorldConfig.java | 2 ++ .../com/hbm/inventory/OreDictManager.java | 2 ++ .../inventory/recipes/CombinationRecipes.java | 3 ++- src/main/java/com/hbm/items/ModItems.java | 3 +++ .../com/hbm/items/special/ItemBedrockOre.java | 23 +++++++++--------- .../block/RenderStandardStraightRail.java | 14 ++++++++--- .../com/hbm/world/feature/BedrockOre.java | 1 + src/main/resources/assets/hbm/lang/de_DE.lang | 2 ++ src/main/resources/assets/hbm/lang/en_US.lang | 2 ++ .../textures/items/powder_chlorocalcite.png | Bin 0 -> 482 bytes 11 files changed, 39 insertions(+), 15 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/items/powder_chlorocalcite.png diff --git a/changelog b/changelog index 68bff38a5..5dade27bb 100644 --- a/changelog +++ b/changelog @@ -1,6 +1,8 @@ ## Added * Laminate glass * A new variant of reinforced glass with higher blast resistance +* Chlorocalcite + * A new bedrock ore, the powder can be heated in the combination furnace to make calcium and chlorine ## Changed * Updated russian localization diff --git a/src/main/java/com/hbm/config/WorldConfig.java b/src/main/java/com/hbm/config/WorldConfig.java index 62d951918..faedff279 100644 --- a/src/main/java/com/hbm/config/WorldConfig.java +++ b/src/main/java/com/hbm/config/WorldConfig.java @@ -36,6 +36,7 @@ public class WorldConfig { public static int bedrockIronSpawn = 100; public static int bedrockCopperSpawn = 200; public static int bedrockBoraxSpawn = 50; + public static int bedrockChlorocalciteSpawn = 35; public static int bedrockAsbestosSpawn = 50; public static int bedrockNiobiumSpawn = 50; public static int bedrockTitaniumSpawn = 100; @@ -153,6 +154,7 @@ public class WorldConfig { bedrockNiterSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B11_bedrockNiterWeight", "Spawn weight for niter bedrock ore", 50); bedrockFluoriteSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B12_bedrockFluoriteWeight", "Spawn weight for fluorite bedrock ore", 50); bedrockRedstoneSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B13_bedrockRedstoneWeight", "Spawn weight for redstone bedrock ore", 50); + bedrockChlorocalciteSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B14_bedrockbChlorocalciteWeight", "Spawn weight for chlorocalcite bedrock ore", 35); ironClusterSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.C00_ironClusterSpawn", "Amount of iron cluster veins per chunk", 4); titaniumClusterSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.C01_titaniumClusterSpawn", "Amount of titanium cluster veins per chunk", 2); diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index f85df1900..0f1db9e1a 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -209,6 +209,7 @@ public class OreDictManager { public static final DictFrame LIGCOKE = new DictFrame("LigniteCoke"); public static final DictFrame CINNABAR = new DictFrame("Cinnabar"); public static final DictFrame BORAX = new DictFrame("Borax"); + public static final DictFrame CHLOROCALCITE = new DictFrame("Chlorocalcite"); public static final DictFrame VOLCANIC = new DictFrame("Volcanic"); public static final DictFrame HEMATITE = new DictFrame("Hematite"); public static final DictFrame MALACHITE = new DictFrame("Malachite"); @@ -390,6 +391,7 @@ public class OreDictManager { LIGCOKE .gem(fromOne(coke, EnumCokeType.LIGNITE)) .block(fromOne(block_coke, EnumCokeType.LIGNITE)); CINNABAR .crystal(cinnebar) .gem(cinnebar) .ore(ore_cinnebar, ore_depth_cinnebar); BORAX .dust(powder_borax) .ore(ore_depth_borax); + CHLOROCALCITE .dust(powder_chlorocalcite); VOLCANIC .gem(gem_volcanic) .ore(basalt_gem); HEMATITE .ore(fromOne(stone_resource, EnumStoneType.HEMATITE)); MALACHITE .ore(fromOne(stone_resource, EnumStoneType.MALACHITE)); diff --git a/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java b/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java index 022068894..3442fcee4 100644 --- a/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java @@ -42,8 +42,9 @@ public class CombinationRecipes extends SerializableRecipe { recipes.put(LIGNITE.gem(), new Pair(DictFrame.fromOne(ModItems.coke, EnumCokeType.LIGNITE), new FluidStack(Fluids.COALCREOSOTE, 50))); recipes.put(LIGNITE.dust(), new Pair(DictFrame.fromOne(ModItems.coke, EnumCokeType.LIGNITE), new FluidStack(Fluids.COALCREOSOTE, 50))); recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.briquette, EnumBriquetteType.LIGNITE)), new Pair(DictFrame.fromOne(ModItems.coke, EnumCokeType.LIGNITE), new FluidStack(Fluids.COALCREOSOTE, 100))); - + recipes.put(CINNABAR.crystal(), new Pair(new ItemStack(ModItems.sulfur), new FluidStack(Fluids.MERCURY, 100))); + recipes.put(CHLOROCALCITE.dust(), new Pair(new ItemStack(ModItems.powder_calcium), new FluidStack(Fluids.CHLORINE, 250))); recipes.put(new ComparableStack(Items.glowstone_dust), new Pair(new ItemStack(ModItems.sulfur), new FluidStack(Fluids.CHLORINE, 50))); recipes.put(new ComparableStack(DictFrame.fromOne(ModBlocks.stone_resource, EnumStoneType.BAUXITE)), new Pair(new ItemStack(ModItems.ingot_aluminium, 2), new FluidStack(Fluids.REDMUD, 250))); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 317ecb9e8..5b97238fc 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -513,6 +513,7 @@ public class ModItems { public static Item powder_paleogenite_tiny; public static Item powder_impure_osmiridium; public static Item powder_borax; + public static Item powder_chlorocalcite; public static Item powder_lanthanium; public static Item powder_actinium; @@ -2907,6 +2908,7 @@ public class ModItems { powder_paleogenite_tiny = new Item().setUnlocalizedName("powder_paleogenite_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_paleogenite_tiny"); powder_impure_osmiridium = new Item().setUnlocalizedName("powder_impure_osmiridium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_impure_osmiridium"); powder_borax = new Item().setUnlocalizedName("powder_borax").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_borax"); + powder_chlorocalcite = new Item().setUnlocalizedName("powder_chlorocalcite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_chlorocalcite"); fragment_neodymium = new Item().setUnlocalizedName("fragment_neodymium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fragment_neodymium"); fragment_cobalt = new Item().setUnlocalizedName("fragment_cobalt").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fragment_cobalt"); @@ -5716,6 +5718,7 @@ public class ModItems { GameRegistry.registerItem(powder_paleogenite_tiny, powder_paleogenite_tiny.getUnlocalizedName()); GameRegistry.registerItem(powder_impure_osmiridium, powder_impure_osmiridium.getUnlocalizedName()); GameRegistry.registerItem(powder_borax, powder_borax.getUnlocalizedName()); + GameRegistry.registerItem(powder_chlorocalcite, powder_chlorocalcite.getUnlocalizedName()); GameRegistry.registerItem(powder_yellowcake, powder_yellowcake.getUnlocalizedName()); GameRegistry.registerItem(powder_beryllium, powder_beryllium.getUnlocalizedName()); GameRegistry.registerItem(powder_dura_steel, powder_dura_steel.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/special/ItemBedrockOre.java b/src/main/java/com/hbm/items/special/ItemBedrockOre.java index 6dc73e9fc..9d12bade0 100644 --- a/src/main/java/com/hbm/items/special/ItemBedrockOre.java +++ b/src/main/java/com/hbm/items/special/ItemBedrockOre.java @@ -84,17 +84,18 @@ public class ItemBedrockOre extends ItemEnumMulti { */ public static enum EnumBedrockOre { - //Ore Byproduct 1, 2, 3 - IRON("Iron", 0xE2C0AA, B_SULFUR, B_TITANIUM, B_TITANIUM), //titanium, sulfur from pyrite - COPPER("Copper", 0xEC9A63, B_SULFUR, B_SULFUR, B_SULFUR), //sulfur sulfur sulfur sulfur - BORAX("Borax", 0xE4BE74, B_LITHIUM, B_CALCIUM, B_CALCIUM), //calcium from ulexite, uhhh lithium? - ASBESTOS("Asbestos", 0xBFBFB9, B_SILICON, B_SILICON, B_SILICON), //quartz i guess? - NIOBIUM("Niobium", 0xAF58D8, B_IRON, B_IRON, B_IRON), //iron in columbite, often found along tantalite - TITANIUM("Titanium", 0xF2EFE2, B_SILICON, B_CALCIUM, B_ALUMINIUM), //titanite is titanium + calcium + silicon with traces of iron and aluminium - TUNGSTEN("Tungsten", 0x2C293C, B_LEAD, B_IRON, B_BISMUTH), //ferberite has iron, raspite has lead, russelite is bismuth tungsten - GOLD("Gold", 0xF9D738, B_LEAD, B_COPPER, B_BISMUTH), //occurs with copper, lead and rare bismuthide - URANIUM("Uranium", 0x868D82, B_LEAD, B_RADIUM, B_POLONIUM), //uranium and its decay products - THORIUM("Thorium", 0x7D401D, B_SILICON, B_URANIUM, B_TECHNETIUM); //thorium occours with uraninite and decay products + //Ore Byproduct 1, 2, 3 + IRON("Iron", 0xE2C0AA, B_SULFUR, B_TITANIUM, B_TITANIUM), //titanium, sulfur from pyrite + COPPER("Copper", 0xEC9A63, B_SULFUR, B_SULFUR, B_SULFUR), //sulfur sulfur sulfur sulfur + BORAX("Borax", 0xE4BE74, B_LITHIUM, B_CALCIUM, B_CALCIUM), //calcium from ulexite, uhhh lithium? + ASBESTOS("Asbestos", 0xBFBFB9, B_SILICON, B_SILICON, B_SILICON), //quartz i guess? + NIOBIUM("Niobium", 0xAF58D8, B_IRON, B_IRON, B_IRON), //iron in columbite, often found along tantalite + TITANIUM("Titanium", 0xF2EFE2, B_SILICON, B_CALCIUM, B_ALUMINIUM), //titanite is titanium + calcium + silicon with traces of iron and aluminium + TUNGSTEN("Tungsten", 0x2C293C, B_LEAD, B_IRON, B_BISMUTH), //ferberite has iron, raspite has lead, russelite is bismuth tungsten + GOLD("Gold", 0xF9D738, B_LEAD, B_COPPER, B_BISMUTH), //occurs with copper, lead and rare bismuthide + URANIUM("Uranium", 0x868D82, B_LEAD, B_RADIUM, B_POLONIUM), //uranium and its decay products + THORIUM("Thorium", 0x7D401D, B_SILICON, B_URANIUM, B_TECHNETIUM), //thorium occours with uraninite and decay products + CHLOROCALCITE("Chlorocalcite", 0xCDE036, B_LITHIUM, B_SILICON, B_SILICON); //i guess? public String oreName; public int color; diff --git a/src/main/java/com/hbm/render/block/RenderStandardStraightRail.java b/src/main/java/com/hbm/render/block/RenderStandardStraightRail.java index 1343795ca..1dafab520 100644 --- a/src/main/java/com/hbm/render/block/RenderStandardStraightRail.java +++ b/src/main/java/com/hbm/render/block/RenderStandardStraightRail.java @@ -42,14 +42,22 @@ public class RenderStandardStraightRail implements ISimpleBlockRenderingHandler float rotation = 0; - if(meta == 12) rotation = 90F / 180F * (float) Math.PI; - if(meta == 14) rotation = 180F / 180F * (float) Math.PI; - if(meta == 13) rotation = 270F / 180F * (float) Math.PI; + if(meta == 14 || meta == 15) rotation = 90F / 180F * (float) Math.PI; + + if(meta == 12) tessellator.addTranslation(0.5F, 0F, 0F); + if(meta == 13) tessellator.addTranslation(-0.5F, 0F, 0F); + if(meta == 14) tessellator.addTranslation(0F, 0F, -0.5F); + if(meta == 15) tessellator.addTranslation(0F, 0F, 0.5F); tessellator.addTranslation(x + 0.5F, y, z + 0.5F); ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_straight, block.getIcon(1, 0), tessellator, rotation, true); tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + if(meta == 12) tessellator.addTranslation(-0.5F, 0F, 0F); + if(meta == 13) tessellator.addTranslation(0.5F, 0F, 0F); + if(meta == 14) tessellator.addTranslation(0F, 0F, 0.5F); + if(meta == 15) tessellator.addTranslation(0F, 0F, -0.5F); + return true; } diff --git a/src/main/java/com/hbm/world/feature/BedrockOre.java b/src/main/java/com/hbm/world/feature/BedrockOre.java index 6d054e206..cce83e8ec 100644 --- a/src/main/java/com/hbm/world/feature/BedrockOre.java +++ b/src/main/java/com/hbm/world/feature/BedrockOre.java @@ -27,6 +27,7 @@ public class BedrockOre { registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.IRON, 1), WorldConfig.bedrockIronSpawn); registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.COPPER, 1), WorldConfig.bedrockCopperSpawn); registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.BORAX, 3, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockBoraxSpawn); + registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.CHLOROCALCITE, 3, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockChlorocalciteSpawn); registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.ASBESTOS, 2), WorldConfig.bedrockAsbestosSpawn); registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.NIOBIUM, 2, new FluidStack(Fluids.ACID, 500)), WorldConfig.bedrockNiobiumSpawn); registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.TITANIUM, 2, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockTitaniumSpawn); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 7a5a8049b..f31fb87d5 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -2471,6 +2471,7 @@ item.oil_tar.wax.name=Chloriertes Petroleumwachs item.oil_tar.wood.name=Holzteer item.ore.asbestos=Asbest item.ore.borax=Borax +item.ore.chlorocalcite=Chlorokalzit item.ore.copper=Kupfer item.ore.gold=Gold item.ore.iron=Eisen @@ -2643,6 +2644,7 @@ item.powder_caesium.name=Caesiumstaub item.powder_calcium.name=Kalziumstaub item.powder_cerium.name=Cerstaub item.powder_cerium_tiny.name=Kleiner Haufen Cerstaub +item.powder_chlorocalcite.name=Chlorokalzit item.powder_chlorophyte.name=Grünalgenstaub item.powder_cloud.name=Wolkenrückstände item.powder_co60.name=Kobalt-60-Staub diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 94cfb0809..6ec00e3fb 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -3150,6 +3150,7 @@ item.oil_tar.wax.name=Chlorinated Petroleum Wax item.oil_tar.wood.name=Wood Tar item.ore.asbestos=Asbestos item.ore.borax=Borax +item.ore.chlorocalcite=Chlorocalcite item.ore.copper=Copper item.ore.gold=Gold item.ore.iron=Iron @@ -3368,6 +3369,7 @@ item.powder_caesium.name=Caesium Powder item.powder_calcium.name=Calcium Powder item.powder_cerium.name=Cerium Powder item.powder_cerium_tiny.name=Tiny Pile of Cerium Powder +item.powder_chlorocalcite.name=Chlorocalcite item.powder_chlorophyte.name=Chlorophyte Powder item.powder_cloud.name=Cloud Residue item.powder_co60.name=Cobalt-60 Powder diff --git a/src/main/resources/assets/hbm/textures/items/powder_chlorocalcite.png b/src/main/resources/assets/hbm/textures/items/powder_chlorocalcite.png new file mode 100644 index 0000000000000000000000000000000000000000..901a98e2db7438e9848c46d6c6e21343433e7ea2 GIT binary patch literal 482 zcmV<80UiE{P)~tkBq4v?j!B8YmY8aqtrB;vZ6oqE6DG zLOT?9ojN>ukK+a9XPobTpB@`WiU z`3pWQ860G)=J%^R3_OqHDJ1u;q%{SMB~4jbG&n8l^bKvWvu@#*eGCl6X$|_31|jMq z=o;h;I;SVqE5BR%Nk^w5*yg9`xIF4;;c=wCiyB}oY0B%_7;on`h<5qd{$gQS0X}_J z6dadQ@r*YM2CwE5v|oex07jCg3?`y%Zv9|wIYIb|V(+U?Cg)LbTzdNhTzX*Vb1S$e@&2%Sfk2L<707Sa~vw1^* Y02JP%M6~2V!Z literal 0 HcmV?d00001 From b6212b6110d6f54ffac7506af0a01fb60f27c0d5 Mon Sep 17 00:00:00 2001 From: burningwater202 Date: Thu, 1 Jun 2023 21:51:09 -0400 Subject: [PATCH 082/432] god I wish it were me Glass panes (I'm in pane) --- .gitignore | 6 +++ src/main/java/com/hbm/blocks/ModBlocks.java | 4 ++ .../hbm/blocks/generic/BlockNTMGlassPane.java | 43 ++++++++++++++++++ .../blocks/generic/BlockNTMGlassPaneRot.java | 28 ++++++++++++ .../blocks/reinforced_laminate_pane.png | Bin 0 -> 206 bytes 5 files changed, 81 insertions(+) create mode 100644 src/main/java/com/hbm/blocks/generic/BlockNTMGlassPane.java create mode 100644 src/main/java/com/hbm/blocks/generic/BlockNTMGlassPaneRot.java create mode 100644 src/main/resources/assets/hbm/textures/blocks/reinforced_laminate_pane.png diff --git a/.gitignore b/.gitignore index 22222fc39..ab2c2acdb 100644 --- a/.gitignore +++ b/.gitignore @@ -26,3 +26,9 @@ run # Changelog backup /changelog.bak +CREDITS-fml.txt +forge-1.7.10-10.13.4.1614-1.7.10-changelog.txt +LICENSE-fml.txt +MinecraftForge-Credits.txt +MinecraftForge-License.txt +README.txt diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index c006878ad..c406c9868 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -30,6 +30,7 @@ import com.hbm.tileentity.machine.storage.TileEntityFileCabinet; import cpw.mods.fml.common.registry.GameRegistry; import net.minecraft.block.Block; import net.minecraft.block.BlockFalling; +import net.minecraft.block.BlockPane; import net.minecraft.block.material.*; import net.minecraft.creativetab.CreativeTabs; import net.minecraftforge.fluids.Fluid; @@ -318,6 +319,7 @@ public class ModBlocks { public static Block reinforced_lamp_off; public static Block reinforced_lamp_on; public static Block reinforced_laminate; + public static Block reinforced_laminate_pane; public static Block lamp_tritium_green_off; public static Block lamp_tritium_green_on; @@ -1503,6 +1505,7 @@ public class ModBlocks { reinforced_lamp_off = new ReinforcedLamp(Material.rock, false).setBlockName("reinforced_lamp_off").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(300.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_lamp_off"); reinforced_lamp_on = new ReinforcedLamp(Material.rock, true).setBlockName("reinforced_lamp_on").setHardness(15.0F).setResistance(300.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_lamp_on"); reinforced_laminate = new BlockNTMGlassCT(1, RefStrings.MODID + ":reinforced_laminate", Material.rock).setBlockName("reinforced_laminate").setCreativeTab(MainRegistry.blockTab).setLightOpacity(0).setHardness(15.0F).setResistance(1000.0F); + reinforced_laminate_pane = new BlockNTMGlassPaneRot(1, RefStrings.MODID + ":reinforced_laminate_pane",RefStrings.MODID + ":reinforced_laminate_pane_edge", Material.rock, false).setBlockName("reinforced_laminate_pane").setCreativeTab(MainRegistry.blockTab).setLightOpacity(0).setHardness(15.0F).setResistance(1000.0F); lamp_tritium_green_off = new ReinforcedLamp(Material.redstoneLight, false).setBlockName("lamp_tritium_green_off").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":lamp_tritium_green_off"); lamp_tritium_green_on = new ReinforcedLamp(Material.redstoneLight, true).setBlockName("lamp_tritium_green_on").setStepSound(Block.soundTypeGlass).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":lamp_tritium_green_on"); @@ -2648,6 +2651,7 @@ public class ModBlocks { GameRegistry.registerBlock(reinforced_lamp_off, ItemBlockBlastInfo.class, reinforced_lamp_off.getUnlocalizedName()); GameRegistry.registerBlock(reinforced_lamp_on, ItemBlockBlastInfo.class, reinforced_lamp_on.getUnlocalizedName()); GameRegistry.registerBlock(reinforced_laminate, ItemBlockBlastInfo.class, reinforced_laminate.getUnlocalizedName()); + GameRegistry.registerBlock(reinforced_laminate_pane,ItemBlockBlastInfo.class, reinforced_laminate_pane.getUnlocalizedName()); //Bricks GameRegistry.registerBlock(reinforced_stone, ItemBlockBlastInfo.class, reinforced_stone.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/generic/BlockNTMGlassPane.java b/src/main/java/com/hbm/blocks/generic/BlockNTMGlassPane.java new file mode 100644 index 000000000..c18e300a9 --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockNTMGlassPane.java @@ -0,0 +1,43 @@ +package com.hbm.blocks.generic; + +import java.util.Random; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.BlockBreakable; +import net.minecraft.block.BlockPane; +import net.minecraft.block.material.Material; + +public class BlockNTMGlassPane extends BlockBreakable { + + int renderLayer; + boolean doesDrop = false; + + public BlockNTMGlassPane(int layer, String name, Material material) { + this(layer, name, material, false); + } + + public BlockNTMGlassPane(int layer, String name, Material material, boolean doesDrop) { + super(name, material, false); + this.renderLayer = layer; + this.doesDrop = doesDrop; + } + + public int quantityDropped(Random rand) { + return doesDrop ? 1 : 0; + } + + @SideOnly(Side.CLIENT) + public int getRenderBlockPass() { + return renderLayer; + } + + public boolean renderAsNormalBlock() { + return false; + } + + protected boolean canSilkHarvest() { + return true; + } + +} diff --git a/src/main/java/com/hbm/blocks/generic/BlockNTMGlassPaneRot.java b/src/main/java/com/hbm/blocks/generic/BlockNTMGlassPaneRot.java new file mode 100644 index 000000000..feead29cb --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockNTMGlassPaneRot.java @@ -0,0 +1,28 @@ +package com.hbm.blocks.generic; + +import net.minecraft.block.BlockPane; +import net.minecraft.block.material.Material; + +public class BlockNTMGlassPaneRot extends BlockPane +{ + int renderLayer; + boolean doesDrop = false; + + //NOTE when you have eclipse make the constructor for you it *WILL BE 'protected'* so make sure to make this public like below. + public BlockNTMGlassPaneRot(String flatFaceTextureName, String rimTextureName, + Material mat, boolean bool) { + super(flatFaceTextureName, rimTextureName, mat, bool); + // TODO Auto-generated constructor stub + + this.opaque = true; + } + + public BlockNTMGlassPaneRot(int layer, String name, String rimTextureName, Material material, boolean doesDrop) { + super(name, rimTextureName, material, false); + this.renderLayer = layer; + this.doesDrop = doesDrop; + this.opaque = true; + this.setLightOpacity(1); + } + +} diff --git a/src/main/resources/assets/hbm/textures/blocks/reinforced_laminate_pane.png b/src/main/resources/assets/hbm/textures/blocks/reinforced_laminate_pane.png new file mode 100644 index 0000000000000000000000000000000000000000..d003abb6cb903b9698ecda6dd5605b8183fa8da7 GIT binary patch literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1quc!DLSt#}Etu9pEh}C`hmmdKI;Vst0A*c2!vFvP literal 0 HcmV?d00001 From 2d3217c96bba16ec111c2f21691358ecc555ed1a Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 2 Jun 2023 14:22:29 +0200 Subject: [PATCH 083/432] block remapping, steel alloy blocks, osmiridium cast plates --- changelog | 1 + src/main/java/com/hbm/blocks/BlockRemap.java | 41 ++++++++++++++++++ src/main/java/com/hbm/blocks/ModBlocks.java | 19 +++++++- .../java/com/hbm/crafting/MineralRecipes.java | 3 ++ .../standard/BlockMutatorDebris.java | 36 +++++++++++++++ .../com/hbm/inventory/OreDictManager.java | 2 +- .../java/com/hbm/inventory/material/Mats.java | 3 +- src/main/java/com/hbm/items/ModItems.java | 4 -- .../com/hbm/items/block/ItemBlockRemap.java | 34 +++++++++++++++ .../java/com/hbm/main/CraftingManager.java | 8 ++-- .../block/RenderStandardStraightRail.java | 2 + src/main/resources/assets/hbm/lang/de_DE.lang | 3 ++ src/main/resources/assets/hbm/lang/en_US.lang | 3 ++ .../hbm/textures/blocks/block_cdalloy.png | Bin 0 -> 288 bytes .../hbm/textures/blocks/block_tcalloy.png | Bin 0 -> 265 bytes 15 files changed, 147 insertions(+), 12 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/BlockRemap.java create mode 100644 src/main/java/com/hbm/explosion/vanillant/standard/BlockMutatorDebris.java create mode 100644 src/main/java/com/hbm/items/block/ItemBlockRemap.java create mode 100644 src/main/resources/assets/hbm/textures/blocks/block_cdalloy.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/block_tcalloy.png diff --git a/changelog b/changelog index 5dade27bb..494b463ba 100644 --- a/changelog +++ b/changelog @@ -3,6 +3,7 @@ * A new variant of reinforced glass with higher blast resistance * Chlorocalcite * A new bedrock ore, the powder can be heated in the combination furnace to make calcium and chlorine +* Blocks for cadmium, TC and CD alloy ## Changed * Updated russian localization diff --git a/src/main/java/com/hbm/blocks/BlockRemap.java b/src/main/java/com/hbm/blocks/BlockRemap.java new file mode 100644 index 000000000..c9d66894f --- /dev/null +++ b/src/main/java/com/hbm/blocks/BlockRemap.java @@ -0,0 +1,41 @@ +package com.hbm.blocks; + +import java.util.ArrayList; +import java.util.Random; + +import com.hbm.lib.RefStrings; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; + +public class BlockRemap extends Block implements ILookOverlay { + + public Block remapBlock; + public int remapMeta; + + protected BlockRemap(Block block, int meta) { + super(Material.tnt); + this.remapBlock = block; + this.remapMeta = meta; + this.setTickRandomly(true); + } + + @Override + public Block setBlockName(String name) { + super.setBlockName(name); + this.setBlockTextureName(RefStrings.MODID + ":" + name); + return this; + } + + @Override + public void updateTick(World world, int x, int y, int z, Random rand) { + world.setBlock(x, y, z, this.remapBlock, this.remapMeta, 2); + } + + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + ILookOverlay.printGeneric(event, "Compatibility block, will convert on update tick.", 0xffff00, 0x404000, new ArrayList()); + } +} diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index a4d55f383..c296c8153 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -33,6 +33,7 @@ import net.minecraft.block.Block; import net.minecraft.block.BlockFalling; import net.minecraft.block.material.*; import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.ItemBlock; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidRegistry; @@ -207,8 +208,11 @@ public class ModBlocks { public static Block block_aluminium; public static Block block_fluorite; public static Block block_steel; + public static Block block_tcalloy; + public static Block block_cdalloy; public static Block block_lead; public static Block block_bismuth; + public static Block block_cadmium; public static Block block_coltan; public static Block block_tantalium; public static Block block_niobium; @@ -1395,8 +1399,11 @@ public class ModBlocks { block_aluminium = new BlockBeaconable(Material.iron).setBlockName("block_aluminium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_aluminium"); block_fluorite = new BlockBeaconable(Material.iron).setBlockName("block_fluorite").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_fluorite"); block_steel = new BlockBeaconable(Material.iron).setBlockName("block_steel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); + block_tcalloy = new BlockBeaconable(Material.iron).setBlockName("block_tcalloy").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_tcalloy"); + block_cdalloy = new BlockBeaconable(Material.iron).setBlockName("block_cdalloy").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_cdalloy"); block_lead = new BlockBeaconable(Material.iron).setBlockName("block_lead").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(30.0F).setBlockTextureName(RefStrings.MODID + ":block_lead"); block_bismuth = new BlockBeaconable(Material.iron).setBlockName("block_bismuth").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(30.0F).setBlockTextureName(RefStrings.MODID + ":block_bismuth"); + block_cadmium = new BlockBeaconable(Material.iron).setBlockName("block_cadmium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(30.0F).setBlockTextureName(RefStrings.MODID + ":block_cadmium"); block_coltan = new BlockBeaconable(Material.iron).setBlockName("block_coltan").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(30.0F).setBlockTextureName(RefStrings.MODID + ":block_coltan"); block_tantalium = new BlockBeaconable(Material.iron).setBlockName("block_tantalium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(30.0F).setBlockTextureName(RefStrings.MODID + ":block_tantalium"); block_niobium = new BlockBeaconable(Material.iron).setBlockName("block_niobium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(30.0F); @@ -2533,8 +2540,11 @@ public class ModBlocks { GameRegistry.registerBlock(block_beryllium, block_beryllium.getUnlocalizedName()); GameRegistry.registerBlock(block_cobalt, block_cobalt.getUnlocalizedName()); GameRegistry.registerBlock(block_steel, block_steel.getUnlocalizedName()); + GameRegistry.registerBlock(block_tcalloy, block_tcalloy.getUnlocalizedName()); + GameRegistry.registerBlock(block_cdalloy, block_cdalloy.getUnlocalizedName()); GameRegistry.registerBlock(block_lead, block_lead.getUnlocalizedName()); GameRegistry.registerBlock(block_bismuth, block_bismuth.getUnlocalizedName()); + GameRegistry.registerBlock(block_cadmium, block_cadmium.getUnlocalizedName()); GameRegistry.registerBlock(block_coltan, block_coltan.getUnlocalizedName()); GameRegistry.registerBlock(block_tantalium, block_tantalium.getUnlocalizedName()); GameRegistry.registerBlock(block_niobium, block_niobium.getUnlocalizedName()); @@ -3451,7 +3461,12 @@ public class ModBlocks { GameRegistry.registerBlock(b, ItemBlockBase.class, b.getUnlocalizedName()); } - /*private static void register(Block b, Class clazz) { + private static void register(Block b, Class clazz) { GameRegistry.registerBlock(b, clazz, b.getUnlocalizedName()); - }*/ + } + + public static void addRemap(String unloc, Block block, int meta) { + Block remap = new BlockRemap(block, meta).setBlockName(unloc); + register(remap, ItemBlockRemap.class); + } } diff --git a/src/main/java/com/hbm/crafting/MineralRecipes.java b/src/main/java/com/hbm/crafting/MineralRecipes.java index 039775e82..039644891 100644 --- a/src/main/java/com/hbm/crafting/MineralRecipes.java +++ b/src/main/java/com/hbm/crafting/MineralRecipes.java @@ -51,6 +51,9 @@ public class MineralRecipes { add1To9Pair(ModBlocks.block_polymer, ModItems.ingot_polymer); add1To9Pair(ModBlocks.block_bakelite, ModItems.ingot_bakelite); add1To9Pair(ModBlocks.block_rubber, ModItems.ingot_rubber); + add1To9Pair(ModBlocks.block_cadmium, ModItems.ingot_cadmium); + add1To9Pair(ModBlocks.block_tcalloy, ModItems.ingot_tcalloy); + add1To9Pair(ModBlocks.block_cdalloy, ModItems.ingot_cdalloy); for(int i = 0; i < EnumCokeType.values().length; i++) { add1To9PairSameMeta(Item.getItemFromBlock(ModBlocks.block_coke), ModItems.coke, i); diff --git a/src/main/java/com/hbm/explosion/vanillant/standard/BlockMutatorDebris.java b/src/main/java/com/hbm/explosion/vanillant/standard/BlockMutatorDebris.java new file mode 100644 index 000000000..3210eff6e --- /dev/null +++ b/src/main/java/com/hbm/explosion/vanillant/standard/BlockMutatorDebris.java @@ -0,0 +1,36 @@ +package com.hbm.explosion.vanillant.standard; + +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.explosion.vanillant.interfaces.IBlockMutator; +import com.hbm.inventory.RecipesCommon.MetaBlock; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class BlockMutatorDebris implements IBlockMutator { + + protected MetaBlock metaBlock; + + public BlockMutatorDebris(Block block) { + this(block, 0); + } + + public BlockMutatorDebris(Block block, int meta) { + this.metaBlock = new MetaBlock(block, meta); + } + + @Override public void mutatePre(ExplosionVNT explosion, Block block, int meta, int x, int y, int z) { } + + @Override public void mutatePost(ExplosionVNT explosion, int x, int y, int z) { + + World world = explosion.world; + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { + Block b = world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ); + if(b.isNormalCube()) { + world.setBlock(x, y, z, metaBlock.block, metaBlock.meta, 3); + return; + } + } + } +} diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index 0f1db9e1a..53138c7ee 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -352,7 +352,7 @@ public class OreDictManager { BI .nugget(nugget_bismuth) .ingot(ingot_bismuth) .dust(powder_bismuth); AS .nugget(nugget_arsenic) .ingot(ingot_arsenic); CA .ingot(ingot_calcium) .dust(powder_calcium); - CD .ingot(ingot_cadmium) .dust(powder_cadmium); + CD .ingot(ingot_cadmium) .dust(powder_cadmium) .block(block_cadmium); TA .nugget(nugget_tantalium) .gem(gem_tantalium) .ingot(ingot_tantalium) .dust(powder_tantalium) .block(block_tantalium); COLTAN .ingot(fragment_coltan) .dust(powder_coltan_ore) .block(block_coltan) .ore(ore_coltan); NB .nugget(fragment_niobium) .ingot(ingot_niobium) .dustSmall(powder_niobium_tiny) .dust(powder_niobium) .block(block_niobium); diff --git a/src/main/java/com/hbm/inventory/material/Mats.java b/src/main/java/com/hbm/inventory/material/Mats.java index ffb7d3516..58ccaad64 100644 --- a/src/main/java/com/hbm/inventory/material/Mats.java +++ b/src/main/java/com/hbm/inventory/material/Mats.java @@ -99,7 +99,7 @@ public class Mats { public static final NTMMaterial MAT_TUNGSTEN = makeSmeltable(7400, W, 0x868686, 0x000000, 0x977474).setShapes(WIRE, INGOT, DUST, BLOCK); public static final NTMMaterial MAT_ALUMINIUM = makeSmeltable(1300, AL, 0xFFFFFF, 0x344550, 0xD0B8EB).setShapes(WIRE, INGOT, DUST, PLATE, CASTPLATE, BLOCK); public static final NTMMaterial MAT_LEAD = makeSmeltable(8200, PB, 0xA6A6B2, 0x03030F, 0x646470).setShapes(NUGGET, INGOT, DUST, PLATE, CASTPLATE, BLOCK); - public static final NTMMaterial MAT_BISMUTH = makeSmeltable(8300, df("Bismuth"), 0xB200FF).setShapes(NUGGET, BILLET, INGOT, DUST, BLOCK); + public static final NTMMaterial MAT_BISMUTH = makeSmeltable(8300, BI, 0xB200FF).setShapes(NUGGET, BILLET, INGOT, DUST, BLOCK); public static final NTMMaterial MAT_ARSENIC = makeSmeltable(3300, AS, 0x6CBABA, 0x242525, 0x558080).setShapes(NUGGET, INGOT); public static final NTMMaterial MAT_TANTALIUM = makeSmeltable(7300, TA, 0xFFFFFF, 0x1D1D36, 0xA89B74).setShapes(NUGGET, INGOT, DUST, BLOCK); public static final NTMMaterial MAT_NIOBIUM = makeSmeltable(4100, NB, 0xB76EC9, 0x2F2D42, 0xD576B1).setShapes(NUGGET, DUSTTINY, INGOT, DUST, BLOCK); @@ -107,6 +107,7 @@ public class Mats { public static final NTMMaterial MAT_COBALT = makeSmeltable(2700, CO, 0xC2D1EE, 0x353554, 0x8F72AE).setShapes(NUGGET, DUSTTINY, BILLET, INGOT, DUST, BLOCK); public static final NTMMaterial MAT_BORON = makeSmeltable(500, B, 0xBDC8D2, 0x29343E, 0xAD72AE).setShapes(DUSTTINY, INGOT, DUST, BLOCK); public static final NTMMaterial MAT_CADMIUM = makeSmeltable(4800, CD, 0xFFFADE, 0x350000, 0xA85600).setShapes(INGOT, DUST); + public static final NTMMaterial MAT_OSMIRIDIUM = makeSmeltable(7699, OSMIRIDIUM, 0xDBE3EF, 0x7891BE, 0xACBDD9).setShapes(NUGGET, INGOT, CASTPLATE); //Alloys public static final NTMMaterial MAT_STEEL = makeSmeltable(_AS + 0, STEEL, 0xAFAFAF, 0x0F0F0F, 0x4A4A4A).setShapes(DUSTTINY, INGOT, DUST, PLATE, CASTPLATE, BLOCK); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 5b97238fc..fc5d18874 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -8107,10 +8107,6 @@ public class ModItems { addRemap("gas_lpg", gas_full, Fluids.LPG.getID()); } - public static void addRemap(String unloc, int removoingTheseWouldTakeForever, Item item, Enum sub) { - addRemap(unloc, item, sub.ordinal()); - } - public static void addRemap(String unloc, Item item, Enum sub) { addRemap(unloc, item, sub.ordinal()); } diff --git a/src/main/java/com/hbm/items/block/ItemBlockRemap.java b/src/main/java/com/hbm/items/block/ItemBlockRemap.java new file mode 100644 index 000000000..bda77f379 --- /dev/null +++ b/src/main/java/com/hbm/items/block/ItemBlockRemap.java @@ -0,0 +1,34 @@ +package com.hbm.items.block; + +import java.util.List; + +import com.hbm.blocks.BlockRemap; + +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; + +public class ItemBlockRemap extends ItemBlockBase { + + public ItemBlockRemap(Block block) { + super(block); + } + + @Override + public void onUpdate(ItemStack stack, World world, Entity entity, int slot, boolean held) { + + if(!(entity instanceof EntityPlayer) || !(this.field_150939_a instanceof BlockRemap)) return; + + EntityPlayer player = (EntityPlayer) entity; + BlockRemap remap = (BlockRemap) this.field_150939_a; + player.inventory.setInventorySlotContents(slot, new ItemStack(remap.remapBlock, stack.stackSize, remap.remapMeta)); + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + list.add(EnumChatFormatting.RED + "Compatibility item, hold in inventory to convert!"); + } +} diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 3fb520d1a..a37150a43 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -764,10 +764,10 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModItems.ams_catalyst_schrabidium, 1), new Object[] { ModItems.ams_catalyst_blank, ModItems.rune_dagaz, ModItems.rune_hagalaz, ModItems.rune_thurisaz, ModItems.rune_thurisaz, SA326.dust(), SA326.dust(), SA326.dust(), SA326.dust() }); addShapelessAuto(new ItemStack(ModItems.ams_catalyst_dineutronium, 1), new Object[] { ModItems.ams_catalyst_blank, ModItems.rune_hagalaz, ModItems.rune_hagalaz, ModItems.rune_thurisaz, ModItems.rune_thurisaz, DNT.dust(), DNT.dust(), DNT.dust(), DNT.dust() }); addRecipeAuto(new ItemStack(ModBlocks.dfc_core, 1), new Object[] { "DLD", "LML", "DLD", 'D', ModItems.ingot_bismuth, 'L', DNT.block(), 'M', KEY_CIRCUIT_BISMUTH }); - addRecipeAuto(new ItemStack(ModBlocks.dfc_emitter, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.ingot(), 'D', ModItems.plate_desh, 'T', ModBlocks.machine_transformer_dnt, 'X', ModItems.crystal_xen, 'L', ModItems.sat_head_laser }); - addRecipeAuto(new ItemStack(ModBlocks.dfc_receiver, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.ingot(), 'D', ModItems.plate_desh, 'T', ModBlocks.machine_transformer_dnt, 'X', new ItemStack(ModBlocks.sellafield, 1, 5), 'L', ModItems.hull_small_steel }); - addRecipeAuto(new ItemStack(ModBlocks.dfc_injector, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.ingot(), 'D', CMB.plate(), 'T', ModBlocks.machine_fluidtank, 'X', ModItems.motor, 'L', ModItems.pipes_steel }); - addRecipeAuto(new ItemStack(ModBlocks.dfc_stabilizer, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.ingot(), 'D', ModItems.plate_desh, 'T', ModItems.singularity_spark, 'X', ModItems.magnet_circular, 'L', ModItems.crystal_xen }); + addRecipeAuto(new ItemStack(ModBlocks.dfc_emitter, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateCast(), 'D', ModItems.plate_desh, 'T', ModBlocks.machine_transformer_dnt, 'X', ModItems.crystal_xen, 'L', ModItems.sat_head_laser }); + addRecipeAuto(new ItemStack(ModBlocks.dfc_receiver, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateCast(), 'D', ModItems.plate_desh, 'T', ModBlocks.machine_transformer_dnt, 'X', new ItemStack(ModBlocks.sellafield, 1, 5), 'L', ModItems.hull_small_steel }); + addRecipeAuto(new ItemStack(ModBlocks.dfc_injector, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateCast(), 'D', CMB.plate(), 'T', ModBlocks.machine_fluidtank, 'X', ModItems.motor, 'L', ModItems.pipes_steel }); + addRecipeAuto(new ItemStack(ModBlocks.dfc_stabilizer, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateCast(), 'D', ModItems.plate_desh, 'T', ModItems.singularity_spark, 'X', ModItems.magnet_circular, 'L', ModItems.crystal_xen }); addRecipeAuto(new ItemStack(ModBlocks.barrel_plastic, 1), new Object[] { "IPI", "I I", "IPI", 'I', ModItems.plate_polymer, 'P', AL.plate() }); addRecipeAuto(new ItemStack(ModBlocks.barrel_iron, 1), new Object[] { "IPI", "I I", "IPI", 'I', IRON.plate(), 'P', IRON.ingot() }); addShapelessAuto(new ItemStack(ModBlocks.barrel_iron, 1), new Object[] { ModBlocks.barrel_corroded, ANY_TAR.any() }); diff --git a/src/main/java/com/hbm/render/block/RenderStandardStraightRail.java b/src/main/java/com/hbm/render/block/RenderStandardStraightRail.java index 1dafab520..5108aaea2 100644 --- a/src/main/java/com/hbm/render/block/RenderStandardStraightRail.java +++ b/src/main/java/com/hbm/render/block/RenderStandardStraightRail.java @@ -22,6 +22,8 @@ public class RenderStandardStraightRail implements ISimpleBlockRenderingHandler Tessellator tessellator = Tessellator.instance; GL11.glTranslated(0, -0.0625, 0); + GL11.glRotated(90, 0, 1, 0); + GL11.glScaled(0.3, 0.3, 0.3); tessellator.startDrawingQuads(); ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_straight, block.getIcon(1, 0), tessellator, 0, false); tessellator.draw(); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index f31fb87d5..3667c7753 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -3432,6 +3432,7 @@ tile.block_beryllium.name=Berylliumblock tile.block_bismuth.name=Bismutblock tile.block_boron.name=Borblock tile.block_c4.name=C4-Block +tile.block_cadmium.name=Cadmiumblock tile.block_cap_fritz.name=Fritz-Kola Kronkorkenblock tile.block_cap_korl.name=Korl Kronkorkenblock tile.block_cap_nuka.name=Nuka Kronkorkenblock @@ -3440,6 +3441,7 @@ tile.block_cap_rad.name=S~Cola RAD Kronkorkenblock tile.block_cap_sparkle.name=S~Cola Kronkorkenblock tile.block_cap_star.name=Sunset Sarsaparilla Kronkorkenblock tile.block_cap_sunset.name=Sunset Sarsaparilla Sternkronkorkenblock +tile.block_cdalloy.name=Cadmiumstahlblock tile.block_cobalt.name=Kobaltblock tile.block_coke.coal.name=Kohlekoksblock tile.block_coke.lignite.name=Braunkohlekoksblock @@ -3507,6 +3509,7 @@ tile.block_starmetal.name=§9Sternenmetallblock§r tile.block_steel.name=Stahlblock tile.block_sulfur.name=Schwefelblock tile.block_tantalium.name=Tantalblock +tile.block_tcalloy.name=Technetiumstahlblock tile.block_thorium.name=Thorium-232-Block tile.block_thorium_fuel.name=Thoriumkernbrennstoffblock tile.block_titanium.name=Titanblock diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 6ec00e3fb..39d246706 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -4240,6 +4240,7 @@ tile.block_beryllium.name=Block of Beryllium tile.block_bismuth.name=Block of Bismuth tile.block_boron.name=Block of Boron tile.block_c4.name=Block of C-4 +tile.block_cadmium.name=Block of Cadmium tile.block_cap_fritz.name=Block of Fritz Cola Bottle Caps tile.block_cap_korl.name=Block of Korl Bottle Caps tile.block_cap_nuka.name=Block of Nuka Cola Bottle Caps @@ -4248,6 +4249,7 @@ tile.block_cap_rad.name=Block of S~Cola RAD Bottle Caps tile.block_cap_sparkle.name=Block of S~Cola Bottle Caps tile.block_cap_star.name=Block of Sunset Sarsaparilla Star Caps tile.block_cap_sunset.name=Block of Sunset Sarsaparilla Bottle Caps +tile.block_cdalloy.name=Block of Cadmium Steel tile.block_cobalt.name=Block of Cobalt tile.block_coke.coal.name=Block of Coal Coke tile.block_coke.lignite.name=Block of Lignite Coke @@ -4319,6 +4321,7 @@ tile.block_starmetal.name=§9Block of Starmetal§r tile.block_steel.name=Block of Steel tile.block_sulfur.name=Block of Sulfur tile.block_tantalium.name=Block of Tantalium +tile.block_tcalloy.name=Block of Technetium Steel tile.block_thorium.name=Block of Thorium-232 tile.block_thorium_fuel.name=Block of Thorium Fuel tile.block_titanium.name=Block of Titanium diff --git a/src/main/resources/assets/hbm/textures/blocks/block_cdalloy.png b/src/main/resources/assets/hbm/textures/blocks/block_cdalloy.png new file mode 100644 index 0000000000000000000000000000000000000000..4b93264c69ece20788d3cf6aa2f3f4fade29aabe GIT binary patch literal 288 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfWD za@+56*B|>_$I1}#IDq|tRQuVovz9Jh(T{hOS;+->`tCnroB3|#rDs2Mp3XCgy1J2r z+hcOD%>*NM@7(RHm?yF`2vqXa{jrL0dgtl9lFdcV%k&c;)61fJ-Q|2w9;9qy&P?)Q zGf>>zV7hL{(~6=u4XlUOYu)tC6)!g^zaEsI}LW!!UnA0K+) i&T}u#cmAxN{fz0xoF%pMf*u0B$l&Sf=d#Wzp$Pyv8EOOo literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/block_tcalloy.png b/src/main/resources/assets/hbm/textures/blocks/block_tcalloy.png new file mode 100644 index 0000000000000000000000000000000000000000..22fc05fa5155bb986e9ae4b83d59aa3dfd3421eb GIT binary patch literal 265 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfKaSXBO zof_oGcUXbv^Qt&6m$dp|i*T2BYarK*v)iUZo z1P+QFa(Cpe5Iw zT~$Hp^{B8Wu??a6A~B7{%-!J|=B;4!TdcmaSC=J6QN(#;`cdijDco=GZfG_I`h~&M L)z4*}Q$iB}y>n*5 literal 0 HcmV?d00001 From df830d9612592a2248a608d4ed02ba92680d2b05 Mon Sep 17 00:00:00 2001 From: burningwater202 Date: Sat, 3 Jun 2023 13:19:50 -0400 Subject: [PATCH 084/432] :letsfuckingGOOOOO: Y'know I'm a bit of a pane in the glass --- src/main/java/com/hbm/blocks/ModBlocks.java | 5 +- .../hbm/blocks/generic/BlockNTMGlassPane.java | 62 +++++++++--------- .../blocks/generic/BlockNTMGlassPaneRot.java | 28 -------- .../java/com/hbm/main/CraftingManager.java | 2 + src/main/resources/assets/hbm/lang/en_US.lang | 3 + .../textures/blocks/reinforced_glass_pane.png | Bin 0 -> 236 bytes .../blocks/reinforced_glass_pane_edge.png | Bin 0 -> 146 bytes .../blocks/reinforced_laminate_pane_edge.png | Bin 0 -> 140 bytes 8 files changed, 41 insertions(+), 59 deletions(-) delete mode 100644 src/main/java/com/hbm/blocks/generic/BlockNTMGlassPaneRot.java create mode 100644 src/main/resources/assets/hbm/textures/blocks/reinforced_glass_pane.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/reinforced_glass_pane_edge.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/reinforced_laminate_pane_edge.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index c406c9868..32b852431 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -314,6 +314,7 @@ public class ModBlocks { public static Block reinforced_brick; public static Block reinforced_ducrete; public static Block reinforced_glass; + public static Block reinforced_glass_pane; public static Block reinforced_light; public static Block reinforced_sand; public static Block reinforced_lamp_off; @@ -1500,12 +1501,13 @@ public class ModBlocks { reinforced_brick = new BlockGeneric(Material.rock).setBlockName("reinforced_brick").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(8000.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_brick"); reinforced_glass = new BlockNTMGlassCT(0, RefStrings.MODID + ":reinforced_glass", Material.rock).setBlockName("reinforced_glass").setCreativeTab(MainRegistry.blockTab).setLightOpacity(0).setHardness(15.0F).setResistance(200.0F); + reinforced_glass_pane = new BlockNTMGlassPane(1, RefStrings.MODID + ":reinforced_glass_pane",RefStrings.MODID + ":reinforced_glass_pane_edge", Material.rock, false).setBlockName("reinforced_glass_pane").setCreativeTab(MainRegistry.blockTab).setLightOpacity(1).setHardness(15.0F).setResistance(200.0F); reinforced_light = new BlockGeneric(Material.rock).setBlockName("reinforced_light").setCreativeTab(MainRegistry.blockTab).setLightLevel(1.0F).setHardness(15.0F).setResistance(300.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_light"); reinforced_sand = new BlockGeneric(Material.rock).setBlockName("reinforced_sand").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(400.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_sand"); reinforced_lamp_off = new ReinforcedLamp(Material.rock, false).setBlockName("reinforced_lamp_off").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(300.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_lamp_off"); reinforced_lamp_on = new ReinforcedLamp(Material.rock, true).setBlockName("reinforced_lamp_on").setHardness(15.0F).setResistance(300.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_lamp_on"); reinforced_laminate = new BlockNTMGlassCT(1, RefStrings.MODID + ":reinforced_laminate", Material.rock).setBlockName("reinforced_laminate").setCreativeTab(MainRegistry.blockTab).setLightOpacity(0).setHardness(15.0F).setResistance(1000.0F); - reinforced_laminate_pane = new BlockNTMGlassPaneRot(1, RefStrings.MODID + ":reinforced_laminate_pane",RefStrings.MODID + ":reinforced_laminate_pane_edge", Material.rock, false).setBlockName("reinforced_laminate_pane").setCreativeTab(MainRegistry.blockTab).setLightOpacity(0).setHardness(15.0F).setResistance(1000.0F); + reinforced_laminate_pane = new BlockNTMGlassPane(1, RefStrings.MODID + ":reinforced_laminate_pane",RefStrings.MODID + ":reinforced_laminate_pane_edge", Material.rock, false).setBlockName("reinforced_laminate_pane").setCreativeTab(MainRegistry.blockTab).setLightOpacity(1).setHardness(15.0F).setResistance(1000.0F); lamp_tritium_green_off = new ReinforcedLamp(Material.redstoneLight, false).setBlockName("lamp_tritium_green_off").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":lamp_tritium_green_off"); lamp_tritium_green_on = new ReinforcedLamp(Material.redstoneLight, true).setBlockName("lamp_tritium_green_on").setStepSound(Block.soundTypeGlass).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":lamp_tritium_green_on"); @@ -2646,6 +2648,7 @@ public class ModBlocks { GameRegistry.registerBlock(asphalt_light, ItemBlockBlastInfo.class, asphalt_light.getUnlocalizedName()); GameRegistry.registerBlock(reinforced_brick, ItemBlockBlastInfo.class, reinforced_brick.getUnlocalizedName()); GameRegistry.registerBlock(reinforced_glass, ItemBlockBlastInfo.class, reinforced_glass.getUnlocalizedName()); + GameRegistry.registerBlock(reinforced_glass_pane, ItemBlockBlastInfo.class, reinforced_glass_pane.getUnlocalizedName()); GameRegistry.registerBlock(reinforced_light, ItemBlockBlastInfo.class, reinforced_light.getUnlocalizedName()); GameRegistry.registerBlock(reinforced_sand, ItemBlockBlastInfo.class, reinforced_sand.getUnlocalizedName()); GameRegistry.registerBlock(reinforced_lamp_off, ItemBlockBlastInfo.class, reinforced_lamp_off.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/generic/BlockNTMGlassPane.java b/src/main/java/com/hbm/blocks/generic/BlockNTMGlassPane.java index c18e300a9..7246191aa 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockNTMGlassPane.java +++ b/src/main/java/com/hbm/blocks/generic/BlockNTMGlassPane.java @@ -1,43 +1,45 @@ package com.hbm.blocks.generic; -import java.util.Random; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.BlockBreakable; import net.minecraft.block.BlockPane; import net.minecraft.block.material.Material; +import net.minecraft.world.IBlockAccess; +import net.minecraftforge.common.util.ForgeDirection; -public class BlockNTMGlassPane extends BlockBreakable { - +public class BlockNTMGlassPane extends BlockPane +{ int renderLayer; boolean doesDrop = false; - public BlockNTMGlassPane(int layer, String name, Material material) { - this(layer, name, material, false); - } - - public BlockNTMGlassPane(int layer, String name, Material material, boolean doesDrop) { - super(name, material, false); + //NOTE when you have eclipse make the constructor for you it *WILL BE 'protected'* so make sure to make this public like below. + /*public BlockNTMGlassPane(String flatFaceTextureName, String rimTextureName, + Material mat, boolean bool) { + super(flatFaceTextureName, rimTextureName, mat, bool); + // TODO Auto-generated constructor stub + this.setLightOpacity(1); + this.opaque = true; + }*/ + + public BlockNTMGlassPane(int layer, String name, String rimTextureName, Material material, boolean doesDrop) { + super(name, rimTextureName, material, false); this.renderLayer = layer; this.doesDrop = doesDrop; + this.opaque = true; + this.setLightOpacity(1); + + } - - public int quantityDropped(Random rand) { - return doesDrop ? 1 : 0; - } - - @SideOnly(Side.CLIENT) - public int getRenderBlockPass() { - return renderLayer; - } - - public boolean renderAsNormalBlock() { - return false; - } - - protected boolean canSilkHarvest() { - return true; - } + + public boolean canPaneConnectTo(IBlockAccess world, int x, int y, int z, ForgeDirection dir) + { + + if (getIdFromBlock(world.getBlock(x,y,z)) == 0) + return false; + else + return true; + + /*return canPaneConnectToBlock(world.getBlock(x, y, z)) || + world.isSideSolid(x, y, z, dir.getOpposite(), false);*/ + + } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockNTMGlassPaneRot.java b/src/main/java/com/hbm/blocks/generic/BlockNTMGlassPaneRot.java deleted file mode 100644 index feead29cb..000000000 --- a/src/main/java/com/hbm/blocks/generic/BlockNTMGlassPaneRot.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.hbm.blocks.generic; - -import net.minecraft.block.BlockPane; -import net.minecraft.block.material.Material; - -public class BlockNTMGlassPaneRot extends BlockPane -{ - int renderLayer; - boolean doesDrop = false; - - //NOTE when you have eclipse make the constructor for you it *WILL BE 'protected'* so make sure to make this public like below. - public BlockNTMGlassPaneRot(String flatFaceTextureName, String rimTextureName, - Material mat, boolean bool) { - super(flatFaceTextureName, rimTextureName, mat, bool); - // TODO Auto-generated constructor stub - - this.opaque = true; - } - - public BlockNTMGlassPaneRot(int layer, String name, String rimTextureName, Material material, boolean doesDrop) { - super(name, rimTextureName, material, false); - this.renderLayer = layer; - this.doesDrop = doesDrop; - this.opaque = true; - this.setLightOpacity(1); - } - -} diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 1b8d0b48a..407b6574d 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -433,6 +433,8 @@ public class CraftingManager { addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.reinforced_brick), 4), new Object[] { "FBF", "BFB", "FBF", 'F', Blocks.iron_bars, 'B', ModBlocks.brick_concrete }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.brick_compound), 4), new Object[] { "FBF", "BTB", "FBF", 'F', ModItems.bolt_tungsten, 'B', ModBlocks.reinforced_brick, 'T', ANY_TAR.any() }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.reinforced_glass), 4), new Object[] { "FBF", "BFB", "FBF", 'F', Blocks.iron_bars, 'B', Blocks.glass }); + addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.reinforced_glass_pane), 16), new Object[] { " ", "GGG", "GGG", 'G', ModBlocks.reinforced_glass}); + addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.reinforced_laminate_pane), 16), new Object[] { " ", "LLL", "LLL", 'L', ModBlocks.reinforced_laminate}); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.reinforced_light), 1), new Object[] { "FFF", "FBF", "FFF", 'F', Blocks.iron_bars, 'B', Blocks.glowstone }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.reinforced_lamp_off), 1), new Object[] { "FFF", "FBF", "FFF", 'F', Blocks.iron_bars, 'B', Blocks.redstone_lamp }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.reinforced_sand), 4), new Object[] { "FBF", "BFB", "FBF", 'F', Blocks.iron_bars, 'B', Blocks.sandstone }); diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 5091ddb4b..c484480eb 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -5010,12 +5010,15 @@ tile.reinforced_brick.name=Reinforced Stone tile.reinforced_brick_stairs.name=Reinforced Stone Stairs tile.reinforced_ducrete.name=Reinforced Ducrete tile.reinforced_glass.name=Reinforced Glass +tile.reinforced_glass_pane.name=Reinforced Glass Pane tile.reinforced_lamp_off.name=Reinforced Lamp tile.reinforced_lamp_on.name=Reinforced Lamp tile.reinforced_light.name=Reinforced Glowstone tile.reinforced_sand.name=Reinforced Sandstone tile.reinforced_stone.name=Dense Stone tile.reinforced_stone_stairs.name=Dense Stone Stairs +tile.reinforced_laminate.name=Reinforced Laminate +tile.reinforced_laminate_pane.name=Reinforced Laminate Pane tile.rejuvinator.name=Rejuvination Device tile.residue.name=Cloud Residue tile.safe.name=Safe diff --git a/src/main/resources/assets/hbm/textures/blocks/reinforced_glass_pane.png b/src/main/resources/assets/hbm/textures/blocks/reinforced_glass_pane.png new file mode 100644 index 0000000000000000000000000000000000000000..157496351ace151f26f32c8a5a1d50b4da1b63cb GIT binary patch literal 236 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5he4R}c>anMpx``D z7sn8b)2+eLTn7|*KJSn_!2B-gcj;kAuUSi@1g^Q?GC6mxy1w9;#5ZX>zT?u9&fb`F z`Pg(;z6a~2ZZ2ej$;4hW2Fxor2nX${?e$u+h5^t`Axvk(8^nc*> hB%z?{l2r14Rt`~#bs8c}hCr7xc)I$ztaD0e0swQ3T8{t# literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/reinforced_glass_pane_edge.png b/src/main/resources/assets/hbm/textures/blocks/reinforced_glass_pane_edge.png new file mode 100644 index 0000000000000000000000000000000000000000..9c2ff4dd15f23ec7af588f8b1b5e063d45570c96 GIT binary patch literal 146 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFGn5)5Z Date: Sun, 4 Jun 2023 17:08:11 +0200 Subject: [PATCH 085/432] redid most train physics, pollution handling stuff --- src/main/java/com/hbm/blocks/ModBlocks.java | 4 +- .../hbm/blocks/rail/RailStandardCurve.java | 5 +- .../hbm/entity/train/EntityRailCarBase.java | 261 ++- .../hbm/entity/train/EntityRailCarCargo.java | 22 + .../entity/train/EntityRailCarElectric.java | 6 +- .../entity/train/EntityRailCarRidable.java | 26 +- .../entity/train/TrainCargoTramTrailer.java | 2 +- .../handler/pollution/PollutionHandler.java | 139 ++ .../java/com/hbm/items/special/ItemTrain.java | 2 +- src/main/java/com/hbm/main/ClientProxy.java | 1 + src/main/java/com/hbm/main/MainRegistry.java | 5 + .../com/hbm/main/ModEventHandlerClient.java | 4 +- .../java/com/hbm/main/ResourceManager.java | 1 + .../render/block/RenderStandardCurveRail.java | 70 + .../item/RenderTrainCargoTramTrailer.java | 75 + .../hbm/models/blocks/rail_standard.obj | 1407 +++++++++-------- .../hbm/models/blocks/rail_standard_bend.obj | 982 ++++++++++++ .../blocks/rail_standard_straight.png | Bin 0 -> 467 bytes .../hbm/textures/items/coupling_tool.png | Bin 183 -> 204 bytes 19 files changed, 2262 insertions(+), 750 deletions(-) create mode 100644 src/main/java/com/hbm/handler/pollution/PollutionHandler.java create mode 100644 src/main/java/com/hbm/render/block/RenderStandardCurveRail.java create mode 100644 src/main/resources/assets/hbm/models/blocks/rail_standard_bend.obj create mode 100644 src/main/resources/assets/hbm/textures/blocks/rail_standard_straight.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index c296c8153..b3d95c9c2 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -2136,8 +2136,8 @@ public class ModBlocks { rail_booster = new RailBooster().setBlockName("rail_booster").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_booster"); rail_narrow_straight = new RailNarrowStraight().setBlockName("rail_narrow_straight").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_narrow_neo"); rail_narrow_curve = new RailNarrowCurve().setBlockName("rail_narrow_curve").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_narrow_neo"); - rail_large_straight = new RailStandardStraight().setBlockName("rail_large_straight").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":block_steel"); - rail_large_curve = new RailStandardCurve().setBlockName("rail_large_curve").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":block_steel"); + rail_large_straight = new RailStandardStraight().setBlockName("rail_large_straight").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); + rail_large_curve = new RailStandardCurve().setBlockName("rail_large_curve").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); rail_large_buffer = new RailStandardBuffer().setBlockName("rail_large_buffer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":block_steel"); crate = new BlockCrate(Material.wood).setBlockName("crate").setStepSound(Block.soundTypeWood).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.consumableTab).setBlockTextureName(RefStrings.MODID + ":crate"); diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java b/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java index 712b395bf..49394f6a8 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java @@ -4,6 +4,7 @@ import com.hbm.blocks.BlockDummyable; import com.hbm.lib.Library; import com.hbm.util.fauxpointtwelve.BlockPos; +import cpw.mods.fml.client.registry.RenderingRegistry; import net.minecraft.block.material.Material; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; @@ -24,9 +25,11 @@ public class RailStandardCurve extends BlockDummyable implements IRailNTM { return null; } + public static int renderID = RenderingRegistry.getNextAvailableRenderId(); + @Override public int getRenderType() { - return 0; + return renderID; } @Override diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java index 885532850..e5e21d817 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java @@ -12,23 +12,32 @@ import com.hbm.blocks.rail.IRailNTM.RailCheckType; import com.hbm.blocks.rail.IRailNTM.RailContext; import com.hbm.blocks.rail.IRailNTM.TrackGauge; import com.hbm.items.ModItems; +import com.hbm.packet.AuxParticlePacketNT; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.PlayerInformPacket; +import com.hbm.util.ChatBuilder; import com.hbm.util.fauxpointtwelve.BlockPos; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ChatComponentText; import net.minecraft.util.DamageSource; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; public abstract class EntityRailCarBase extends Entity implements ILookOverlay { public LogicalTrainUnit ltu; + public int ltuIndex = 0; public boolean isOnRail = true; private int turnProgress; /* Clientside position that should be approached with smooth interpolation */ @@ -103,13 +112,16 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { if(this.ltu != null) this.ltu.dissolveTrain(); if(neighbor.ltu != null) neighbor.ltu.dissolveTrain(); player.swingItem(); + + player.addChatComponentMessage(new ChatComponentText("Coupled " + this.hashCode() + " (" + closestOwnCoupling.name() + ") to " + neighbor.hashCode() + " (" + closestNeighborCoupling.name() + ")")); + return true; } } } //DEBUG - /*if(this.ltu != null) { + if(this.ltu != null) { String id = Integer.toHexString(ltu.hashCode()); @@ -122,7 +134,7 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { data.setString("text", id); PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, train.posX, train.posY + 1, train.posZ), new TargetPoint(this.dimension, train.posX, train.posY + 1, train.posZ, 50)); } - }*/ + } return false; } @@ -152,7 +164,7 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { this.setRotation(this.rotationYaw, this.rotationPitch); } - BlockPos anchor = this.getCurentAnchorPos(); + BlockPos anchor = this.getCurrentAnchorPos(); Vec3 frontPos = getRelPosAlongRail(anchor, this.getLengthSpan(), new MoveContext(RailCheckType.FRONT)); Vec3 backPos = getRelPosAlongRail(anchor, -this.getLengthSpan(), new MoveContext(RailCheckType.BACK)); @@ -293,23 +305,51 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { } } - //TODO: rethink this entire concept - /* - * first, figure out which train is the "front" when moving - * if the train is not in motion, reuse the contract ("combine") function we have now - * move the first wagon until either it finishes or bumps into a buffer - * if it derails, continue using the velocity - * then take the second wagon and move it towards the first wagon's collision point, assuming it didn't derail - * continue with all further wagons - * - * step 3 may also do collision checks for other trains, which is good because that's an issue we would have to solve sooner or later - */ - /* Move carts together with links */ - for(LogicalTrainUnit ltu : ltus) ltu.combineWagons(); + //for(LogicalTrainUnit ltu : ltus) ltu.combineWagons(); /* Move carts with unified speed */ - for(LogicalTrainUnit ltu : ltus) ltu.moveTrain(); + //for(LogicalTrainUnit ltu : ltus) ltu.moveTrain(); + + for(LogicalTrainUnit ltu : ltus) { + + double speed = ltu.getTotalSpeed(); + + if(Math.abs(speed) < 0.001) speed = 0; + + if(ltu.trains.length == 1) { + + EntityRailCarBase train = ltu.trains[0]; + + BlockPos anchor = new BlockPos(train.posX, train.posY, train.posZ); + Vec3 newPos = train.getRelPosAlongRail(anchor, speed, new MoveContext(RailCheckType.CORE)); + if(newPos == null) { + train.derail(); + ltu.dissolveTrain(); + continue; + } + train.setPosition(newPos.xCoord, newPos.yCoord, newPos.zCoord); + anchor = train.getCurrentAnchorPos(); + Vec3 frontPos = train.getRelPosAlongRail(anchor, train.getLengthSpan(), new MoveContext(RailCheckType.FRONT)); + Vec3 backPos = train.getRelPosAlongRail(anchor, -train.getLengthSpan(), new MoveContext(RailCheckType.BACK)); + + if(frontPos == null || backPos == null) { + train.derail(); + ltu.dissolveTrain(); + continue; + } else { + ltu.setRenderPos(train, frontPos, backPos); + } + + continue; + } + + if(speed == 0) { + ltu.combineWagons(); + } else { + ltu.moveTrainByApproach(speed); + } + } } /** Returns the amount of blocks that the train should move per tick */ @@ -331,7 +371,7 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { }*/ /** Returns the "true" position of the train, i.e. the block it wants to snap to */ - public BlockPos getCurentAnchorPos() { + public BlockPos getCurrentAnchorPos() { return new BlockPos(posX, posY, posZ); } @@ -363,7 +403,7 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { } /** Invisible entities that make up the dynamic bounding structure of the train, moving as the train rotates. */ - public static class BoundingBoxDummyEntity extends Entity { + public static class BoundingBoxDummyEntity extends Entity implements ILookOverlay { private int turnProgress; private double trainX; @@ -428,6 +468,13 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { this.trainZ = posZ; this.turnProgress = turnProg + 2; } + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + Entity e = worldObj.getEntityByID(this.dataWatcher.getWatchableObjectInt(3)); + if(e instanceof EntityRailCarBase) { + ((EntityRailCarBase) e).printHook(event, world, x, y, z); + } + } } public DummyConfig[] getDummies() { @@ -491,37 +538,36 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { public static LogicalTrainUnit generateTrain(EntityRailCarBase train) { List links = new ArrayList(); Set brake = new HashSet(); - links.add(train); - brake.add(train); LogicalTrainUnit ltu = new LogicalTrainUnit(); - if(train.coupledFront == null && train.coupledFront == null) { + if(train.coupledFront == null && train.coupledBack == null) { ltu.trains = new EntityRailCarBase[] {train}; train.ltu = ltu; + train.ltuIndex = 0; return ltu; } - EntityRailCarBase prevCar = train; - EntityRailCarBase nextCar = train.coupledBack == null ? train.coupledFront : train.coupledBack; + EntityRailCarBase current = train; + EntityRailCarBase next = null; - while(nextCar != null) { - links.add(nextCar); - brake.add(nextCar); + do { + next = null; + + if(current.coupledFront != null && !brake.contains(current.coupledFront)) next = current.coupledFront; + if(current.coupledBack != null && !brake.contains(current.coupledBack)) next = current.coupledBack; - EntityRailCarBase currentCar = nextCar; - nextCar = nextCar.coupledBack == prevCar ? nextCar.coupledFront : nextCar.coupledBack; - prevCar = currentCar; + links.add(current); + brake.add(current); - if(brake.contains(nextCar)) { - break; - } - } + current = next; + + } while(next != null); ltu.trains = new EntityRailCarBase[links.size()]; - for(int i = 0; i < ltu.trains.length; i++) { ltu.trains[i] = links.get(i); ltu.trains[i].ltu = ltu; + ltu.trains[i].ltuIndex = i; } return ltu; @@ -531,6 +577,7 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { public void dissolveTrain() { for(EntityRailCarBase train : trains) { train.ltu = null; + train.ltuIndex = 0; } } @@ -559,23 +606,34 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { } /** Moves one wagon to ne next until the coupling points roughly touch */ - public static void moveWagonTo(EntityRailCarBase prev, EntityRailCarBase next) { - TrainCoupling prevCouple = prev.getCouplingFrom(next); - TrainCoupling nextCouple = next.getCouplingFrom(prev); - Vec3 prevLoc = prev.getCouplingPos(prevCouple); - Vec3 nextLoc = next.getCouplingPos(nextCouple); + public void moveWagonTo(EntityRailCarBase moveTo, EntityRailCarBase moving) { + TrainCoupling prevCouple = moveTo.getCouplingFrom(moving); + TrainCoupling nextCouple = moving.getCouplingFrom(moveTo); + Vec3 prevLoc = moveTo.getCouplingPos(prevCouple); + Vec3 nextLoc = moving.getCouplingPos(nextCouple); Vec3 delta = Vec3.createVectorHelper(prevLoc.xCoord - nextLoc.xCoord, 0, prevLoc.zCoord - nextLoc.zCoord); double len = delta.lengthVector(); - len *= 0.25D; //suspension, causes movements to be less rigid - BlockPos anchor = new BlockPos(next.posX, next.posY, next.posZ); - Vec3 trainPos = Vec3.createVectorHelper(next.posX, next.posY, next.posZ); + len *= 0.75; //suspension, causes movements to be less rigid + BlockPos anchor = new BlockPos(moving.posX, moving.posY, moving.posZ); + Vec3 trainPos = Vec3.createVectorHelper(moving.posX, moving.posY, moving.posZ); float yaw = EntityRailCarBase.generateYaw(prevLoc, nextLoc); - Vec3 newPos = EntityRailCarBase.getRelPosAlongRail(anchor, len, next.getGauge(), next.worldObj, trainPos, yaw, new MoveContext(RailCheckType.CORE)); - next.setPosition(newPos.xCoord, newPos.yCoord, newPos.zCoord); + Vec3 newPos = EntityRailCarBase.getRelPosAlongRail(anchor, len, moving.getGauge(), moving.worldObj, trainPos, yaw, new MoveContext(RailCheckType.CORE)); + moving.setPosition(newPos.xCoord, newPos.yCoord, newPos.zCoord); + anchor = moving.getCurrentAnchorPos(); //reset origin to new position + Vec3 frontPos = moving.getRelPosAlongRail(anchor, moving.getLengthSpan(), new MoveContext(RailCheckType.FRONT)); + Vec3 backPos = moving.getRelPosAlongRail(anchor, -moving.getLengthSpan(), new MoveContext(RailCheckType.BACK)); + + if(frontPos == null || backPos == null) { + moving.derail(); + this.dissolveTrain(); + return; + } else { + setRenderPos(moving, frontPos, backPos); + } } /** Generates the speed of the train, then moves the rain along the rail */ - public void moveTrain() { + @Deprecated public void moveTrain() { EntityRailCarBase prev = trains[0]; TrainCoupling dir = prev.getCouplingFrom(null); @@ -599,11 +657,11 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { } /** Moves the entire train along the rail by a certain speed */ - public void moveTrainBy(double totalSpeed) { + @Deprecated public void moveTrainBy(double totalSpeed) { for(EntityRailCarBase train : this.trains) { - BlockPos anchor = train.getCurentAnchorPos(); + BlockPos anchor = train.getCurrentAnchorPos(); Vec3 corePos = train.getRelPosAlongRail(anchor, totalSpeed, new MoveContext(RailCheckType.CORE)); if(corePos == null) { @@ -612,7 +670,7 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { return; } else { train.setPosition(corePos.xCoord, corePos.yCoord, corePos.zCoord); - anchor = train.getCurentAnchorPos(); //reset origin to new position + anchor = train.getCurrentAnchorPos(); //reset origin to new position Vec3 frontPos = train.getRelPosAlongRail(anchor, train.getLengthSpan(), new MoveContext(RailCheckType.FRONT)); Vec3 backPos = train.getRelPosAlongRail(anchor, -train.getLengthSpan(), new MoveContext(RailCheckType.BACK)); @@ -632,15 +690,110 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { } } } + + /** Returns the total speed of the LTU, negative if it is backwards compared to the arbitrary "front" wagon */ + public double getTotalSpeed() { + + EntityRailCarBase prev = trains[0]; + double totalSpeed = 0; + double maxSpeed = Double.POSITIVE_INFINITY; + //if the first car is in reverse, flip all subsequent cars as well + boolean reverseTheReverse = prev.getCouplingFrom(null) == TrainCoupling.BACK; + + if(trains.length == 1) { + return prev.getCurrentSpeed(); + } + + for(EntityRailCarBase train : this.trains) { + //if the car's linked indices are the wrong way, it is in reverse and speed applies negatively + boolean reverse = false; + + EntityRailCarBase conFront = train.getCoupledTo(TrainCoupling.FRONT); + EntityRailCarBase conBack = train.getCoupledTo(TrainCoupling.BACK); + + if(conFront != null && conFront.ltuIndex > train.ltuIndex) reverse = true; + if(conBack != null && conBack.ltuIndex < train.ltuIndex) reverse = true; + + reverse ^= reverseTheReverse; + + double speed = train.getCurrentSpeed(); + if(reverse) speed *= -1; + totalSpeed += speed; + maxSpeed = Math.min(maxSpeed, train.getMaxRailSpeed()); + prev = train; + } + + if(Math.abs(totalSpeed) > maxSpeed) { + totalSpeed = maxSpeed * Math.signum(totalSpeed); + } + + return totalSpeed; + } + + /** Determines the "front" wagon based on the movement and moves it, then moves all other wagons towards that */ + public void moveTrainByApproach(double speed) { + boolean forward = speed < 0; + double origSpeed = speed; + speed = Math.abs(speed); + EntityRailCarBase previous = null; + + EntityRailCarBase first = this.trains[0]; + + for(int i = forward ? 0 : this.trains.length - 1; forward ? i < this.trains.length : i >= 0; i += forward ? 1 : -1) { + EntityRailCarBase current = this.trains[i]; + + if(previous == null) { + PacketDispatcher.wrapper.sendToAllAround(new PlayerInformPacket(ChatBuilder.start("" + current.getClass() + " " + origSpeed).color(EnumChatFormatting.RED).flush(), 1), + new TargetPoint(current.dimension, current.posX, current.posY + 1, current.posZ, 50)); + + boolean inReverse = first.getCouplingFrom(null) == current.getCouplingFrom(null); + int sigNum = inReverse ? -1 : 1; + BlockPos anchor = current.getCurrentAnchorPos(); + Vec3 corePos = current.getRelPosAlongRail(anchor, speed * sigNum, new MoveContext(RailCheckType.CORE)); + + if(corePos == null) { + current.derail(); + this.dissolveTrain(); + return; + } else { + current.setPosition(corePos.xCoord, corePos.yCoord, corePos.zCoord); + anchor = current.getCurrentAnchorPos(); //reset origin to new position + Vec3 frontPos = current.getRelPosAlongRail(anchor, current.getLengthSpan(), new MoveContext(RailCheckType.FRONT)); + Vec3 backPos = current.getRelPosAlongRail(anchor, -current.getLengthSpan(), new MoveContext(RailCheckType.BACK)); + + if(frontPos == null || backPos == null) { + current.derail(); + this.dissolveTrain(); + return; + } else { + setRenderPos(current, frontPos, backPos); + } + } + + } else { + this.moveWagonTo(previous, current); + } + + previous = current; + } + } + + /** Uses the front and back bogey positions to set the render pos and angles of a wagon */ + public void setRenderPos(EntityRailCarBase current, Vec3 frontPos, Vec3 backPos) { + current.renderX = (frontPos.xCoord + backPos.xCoord) / 2D; + current.renderY = (frontPos.yCoord + backPos.yCoord) / 2D; + current.renderZ = (frontPos.zCoord + backPos.zCoord) / 2D; + current.prevRotationYaw = current.rotationYaw; + current.rotationYaw = current.movementYaw = generateYaw(frontPos, backPos); + current.motionX = current.rotationYaw / 360D; // hijacking this crap for easy syncing + current.velocityChanged = true; + } } @Override @SideOnly(Side.CLIENT) public void printHook(RenderGameOverlayEvent.Pre event, World world, int x, int y, int z) { - /*List text = new ArrayList(); - text.add("LTU: " + this.ltu); - text.add("Front: " + this.coupledFront); - text.add("Back: " + this.coupledBack); - ILookOverlay.printGeneric(event, this.toString(), 0xffff00, 0x404000, text);*/ //none of this shit is going to work anyway + List text = new ArrayList(); + ILookOverlay.printGeneric(event, this.getClass().getSimpleName() + " " + this.hashCode(), 0xffff00, 0x404000, text); //none of this shit is going to work anyway } } diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarCargo.java b/src/main/java/com/hbm/entity/train/EntityRailCarCargo.java index 2e41f6d4d..31823285b 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarCargo.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarCargo.java @@ -15,6 +15,22 @@ public abstract class EntityRailCarCargo extends EntityRailCarBase implements II public EntityRailCarCargo(World world) { super(world); } + + @Override + protected void entityInit() { + super.entityInit(); + this.dataWatcher.addObject(10, new Integer(0)); + } + + public int countVacantSlots() { + int slots = 0; + + for(int i = 0; i < this.getSizeInventory(); i++) { + if(this.getStackInSlot(i) != null) slots++; + } + + return slots; + } @Override public ItemStack getStackInSlot(int slot) { @@ -37,9 +53,11 @@ public abstract class EntityRailCarCargo extends EntityRailCarBase implements II this.slots[slot] = null; } + if(!this.worldObj.isRemote) this.dataWatcher.updateObject(10, this.countVacantSlots()); return itemstack; } } else { + if(!this.worldObj.isRemote) this.dataWatcher.updateObject(10, this.countVacantSlots()); return null; } } @@ -49,8 +67,10 @@ public abstract class EntityRailCarCargo extends EntityRailCarBase implements II if(this.slots[slot] != null) { ItemStack itemstack = this.slots[slot]; this.slots[slot] = null; + if(!this.worldObj.isRemote) this.dataWatcher.updateObject(10, this.countVacantSlots()); return itemstack; } else { + if(!this.worldObj.isRemote) this.dataWatcher.updateObject(10, this.countVacantSlots()); return null; } } @@ -119,6 +139,8 @@ public abstract class EntityRailCarCargo extends EntityRailCarBase implements II this.slots[j] = ItemStack.loadItemStackFromNBT(nbttagcompound1); } } + + this.dataWatcher.updateObject(10, this.countVacantSlots()); } @Override diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarElectric.java b/src/main/java/com/hbm/entity/train/EntityRailCarElectric.java index 4a6b0bdff..46643b029 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarElectric.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarElectric.java @@ -19,15 +19,17 @@ public abstract class EntityRailCarElectric extends EntityRailCarRidable { public int getChargeSlot() { return 0; } @Override protected void entityInit() { + super.entityInit(); this.dataWatcher.addObject(3, new Integer(0)); } @Override public boolean canAccelerate() { - return this.getPower() >= this.getPowerConsumption(); + return true; + //return this.getPower() >= this.getPowerConsumption(); } @Override public void consumeFuel() { - this.setPower(this.getPower() - this.getPowerConsumption()); + //this.setPower(this.getPower() - this.getPowerConsumption()); } public void setPower(int power) { diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java b/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java index 79fd80a13..b7ae2784a 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java @@ -5,7 +5,6 @@ import java.util.List; import com.hbm.blocks.ILookOverlay; import com.hbm.main.MainRegistry; -import com.hbm.util.BobMathUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -109,9 +108,14 @@ public abstract class EntityRailCarRidable extends EntityRailCarCargo { public int getNearestSeat(EntityPlayer player) { double nearestDist = Double.POSITIVE_INFINITY; - int nearestSeat = -2; + int nearestSeat = -3; Vec3[] seats = getPassengerSeats(); + Vec3 look = player.getLook(2); + look.xCoord += player.posX; + look.yCoord += player.posY + player.eyeHeight - player.yOffset; + look.zCoord += player.posZ; + for(int i = 0; i < seats.length; i++) { Vec3 seat = seats[i]; @@ -120,13 +124,11 @@ public abstract class EntityRailCarRidable extends EntityRailCarCargo { seat.rotateAroundY((float) (-this.rotationYaw * Math.PI / 180)); double x = renderX + seat.xCoord; + double y = renderY + seat.yCoord; double z = renderZ + seat.zCoord; - double deltaX = player.posX - x; - double deltaZ = player.posZ - z; - double radians = -Math.atan2(deltaX, deltaZ); - double degrees = MathHelper.wrapAngleTo180_double(radians * 180D / Math.PI - 90); - double dist = Math.abs(BobMathUtil.angularDifference(degrees, player.rotationYaw)); + Vec3 delta = Vec3.createVectorHelper(look.xCoord - x, look.yCoord - y, look.zCoord - z); + double dist = delta.lengthVector(); if(dist < nearestDist) { nearestDist = dist; @@ -138,13 +140,11 @@ public abstract class EntityRailCarRidable extends EntityRailCarCargo { Vec3 seat = getRiderSeatPosition(); seat.rotateAroundY((float) (-this.rotationYaw * Math.PI / 180)); double x = renderX + seat.xCoord; + double y = renderY + seat.yCoord; double z = renderZ + seat.zCoord; - double deltaX = player.posX - x; - double deltaZ = player.posZ - z; - double radians = -Math.atan2(deltaX, deltaZ); - double degrees = MathHelper.wrapAngleTo180_double(radians * 180D / Math.PI - 90); - double dist = Math.abs(BobMathUtil.angularDifference(degrees, player.rotationYaw)); + Vec3 delta = Vec3.createVectorHelper(look.xCoord - x, look.yCoord - y, look.zCoord - z); + double dist = delta.lengthVector(); if(dist < nearestDist) { nearestDist = dist; @@ -288,6 +288,6 @@ public abstract class EntityRailCarRidable extends EntityRailCarCargo { text.add("Front: " + this.coupledFront); text.add("Back: " + this.coupledBack);*/ text.add("Nearest seat: " + this.getNearestSeat(MainRegistry.proxy.me())); - ILookOverlay.printGeneric(event, this.toString(), 0xffff00, 0x404000, text); + ILookOverlay.printGeneric(event, this.getClass().getSimpleName() + " " + this.hashCode(), 0xffff00, 0x404000, text); } } diff --git a/src/main/java/com/hbm/entity/train/TrainCargoTramTrailer.java b/src/main/java/com/hbm/entity/train/TrainCargoTramTrailer.java index ffeea5245..afefb1d9a 100644 --- a/src/main/java/com/hbm/entity/train/TrainCargoTramTrailer.java +++ b/src/main/java/com/hbm/entity/train/TrainCargoTramTrailer.java @@ -105,7 +105,7 @@ public class TrainCargoTramTrailer extends EntityRailCarCargo implements IGUIPro this.train = train; for(int i = 0; i < 5; i++) { for(int j = 0; j < 9; j++) { - this.addSlotToContainer(new Slot(train, i * 7 + j, 8 + j * 18, 18 + i * 18)); + this.addSlotToContainer(new Slot(train, i * 9 + j, 8 + j * 18, 18 + i * 18)); } } for(int i = 0; i < 3; i++) { diff --git a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java new file mode 100644 index 000000000..692ba83a2 --- /dev/null +++ b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java @@ -0,0 +1,139 @@ +package com.hbm.handler.pollution; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.util.HashMap; +import java.util.Map.Entry; + +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import net.minecraft.nbt.CompressedStreamTools; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.world.ChunkCoordIntPair; +import net.minecraft.world.World; +import net.minecraft.world.WorldServer; +import net.minecraftforge.event.world.WorldEvent; + +public class PollutionHandler { + + public static final String fileName = "hbmpollution.dat"; + public static HashMap perWorld = new HashMap(); + + @SubscribeEvent + public void onWorldLoad(WorldEvent.Load event) { + if(!event.world.isRemote) { + WorldServer world = (WorldServer) event.world; + String dirPath = getDataDir(world); + + try { + File pollutionFile = new File(dirPath, fileName); + + if(pollutionFile != null) { + + if(pollutionFile.exists()) { + FileInputStream io = new FileInputStream(pollutionFile); + NBTTagCompound data = CompressedStreamTools.readCompressed(io); + io.close(); + perWorld.put(event.world, new PollutionPerWorld(data)); + } else { + perWorld.put(event.world, new PollutionPerWorld()); + } + } + } catch(Exception ex) { + ex.printStackTrace(); + } + } + } + + @SubscribeEvent + public void onWorldUnload(WorldEvent.Unload event) { + if(!event.world.isRemote) perWorld.remove(event.world); + } + + @SubscribeEvent + public void onWorldSave(WorldEvent.Save event) { + if(!event.world.isRemote) { + WorldServer world = (WorldServer) event.world; + String dirPath = getDataDir(world); + + try { + File pollutionFile = new File(dirPath, fileName); + if(!pollutionFile.exists()) pollutionFile.createNewFile(); + NBTTagCompound data = perWorld.get(world).writeToNBT(); + CompressedStreamTools.writeCompressed(data, new FileOutputStream(pollutionFile)); + } catch(Exception ex) { + ex.printStackTrace(); + } + } + } + + public String getDataDir(WorldServer world) { + String dir = world.getSaveHandler().getWorldDirectory().getAbsolutePath(); + + if(world.provider.dimensionId != 0) { + dir += File.separator + "DIM" + world.provider.dimensionId; + } + + dir += File.separator + "data"; + + return dir; + } + + public static class PollutionPerWorld { + public HashMap pollution = new HashMap(); + + public PollutionPerWorld() { } + + public PollutionPerWorld(NBTTagCompound data) { + + NBTTagList list = data.getTagList("entries", 10); + + for(int i = 0; i < list.tagCount(); i++) { + NBTTagCompound nbt = list.getCompoundTagAt(i); + int chunkX = nbt.getInteger("chunkX"); + int chunkZ = nbt.getInteger("chunkZ"); + pollution.put(new ChunkCoordIntPair(chunkX, chunkZ), PollutionData.fromNBT(nbt)); + } + } + + public NBTTagCompound writeToNBT() { + + NBTTagCompound data = new NBTTagCompound(); + + NBTTagList list = new NBTTagList(); + + for(Entry entry : pollution.entrySet()) { + NBTTagCompound nbt = new NBTTagCompound(); + nbt.setInteger("chunkX", entry.getKey().chunkXPos); + nbt.setInteger("chunkZ", entry.getKey().chunkZPos); + entry.getValue().toNBT(nbt); + list.appendTag(nbt); + } + + data.setTag("entries", list); + + return data; + } + } + + public static class PollutionData { + float soot; + float poison; + float heavyMetal; + + public static PollutionData fromNBT(NBTTagCompound nbt) { + PollutionData data = new PollutionData(); + data.soot = nbt.getFloat("soot"); + data.poison = nbt.getFloat("poison"); + data.heavyMetal = nbt.getFloat("heavyMetal"); + return data; + } + + public void toNBT(NBTTagCompound nbt) { + nbt.setFloat("soot", soot); + nbt.setFloat("poison", poison); + nbt.setFloat("heavyMetal", heavyMetal); + } + } +} diff --git a/src/main/java/com/hbm/items/special/ItemTrain.java b/src/main/java/com/hbm/items/special/ItemTrain.java index 62695488a..25dc46ccf 100644 --- a/src/main/java/com/hbm/items/special/ItemTrain.java +++ b/src/main/java/com/hbm/items/special/ItemTrain.java @@ -78,7 +78,7 @@ public class ItemTrain extends ItemEnumMulti { if(train != null && train.getGauge() == ((IRailNTM) b).getGauge(world, x, y, z)) { if(!world.isRemote) { train.setPosition(x + fx, y + fy, z + fz); - BlockPos anchor = train.getCurentAnchorPos(); + BlockPos anchor = train.getCurrentAnchorPos(); train.rotationYaw = entity.rotationYaw; Vec3 corePos = train.getRelPosAlongRail(anchor, 0, new MoveContext(RailCheckType.CORE)); train.setPosition(corePos.xCoord, corePos.yCoord, corePos.zCoord); diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index bd9794aed..3cd7392bc 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -787,6 +787,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerBlockHandler(new RenderNarrowStraightRail()); RenderingRegistry.registerBlockHandler(new RenderNarrowCurveRail()); RenderingRegistry.registerBlockHandler(new RenderStandardStraightRail()); + RenderingRegistry.registerBlockHandler(new RenderStandardCurveRail()); RenderingRegistry.registerBlockHandler(new RenderBlockRotated(ModBlocks.charge_dynamite.getRenderType(), ResourceManager.charge_dynamite)); RenderingRegistry.registerBlockHandler(new RenderBlockRotated(ModBlocks.charge_c4.getRenderType(), ResourceManager.charge_c4)); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 99df0747c..19c93acf9 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -58,6 +58,7 @@ import com.hbm.entity.logic.*; import com.hbm.entity.mob.siege.*; import com.hbm.handler.*; import com.hbm.handler.imc.*; +import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.radiation.ChunkRadiationManager; import com.hbm.hazard.HazardRegistry; import com.hbm.inventory.*; @@ -903,6 +904,10 @@ public class MainRegistry { ChunkRadiationManager radiationSystem = new ChunkRadiationManager(); MinecraftForge.EVENT_BUS.register(radiationSystem); FMLCommonHandler.instance().bus().register(radiationSystem); + + PollutionHandler pollution = new PollutionHandler(); + MinecraftForge.EVENT_BUS.register(pollution); + FMLCommonHandler.instance().bus().register(pollution); if(event.getSide() == Side.CLIENT) { HbmKeybinds.register(); diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 31a779355..4a7bbe41f 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -259,12 +259,12 @@ public class ModEventHandlerClient { boolean flip = distanceToCover < 0; if(it == 1) { - Vec3 snap = next = rail.getTravelLocation(world, x, y, z, next.xCoord, next.yCoord, next.zCoord, rot.xCoord, rot.yCoord, rot.zCoord, 0, info); + Vec3 snap = next = rail.getTravelLocation(world, x, y, z, next.xCoord, next.yCoord, next.zCoord, rot.xCoord, rot.yCoord, rot.zCoord, 0, info, new MoveContext(RailCheckType.CORE)); if(i == 0) world.spawnParticle("reddust", snap.xCoord, snap.yCoord + 0.25, snap.zCoord, 0.1, 1, 0.1); } Vec3 prev = next; - next = rail.getTravelLocation(world, x, y, z, prev.xCoord, prev.yCoord, prev.zCoord, rot.xCoord, rot.yCoord, rot.zCoord, distanceToCover, info); + next = rail.getTravelLocation(world, x, y, z, prev.xCoord, prev.yCoord, prev.zCoord, rot.xCoord, rot.yCoord, rot.zCoord, distanceToCover, info, new MoveContext(i == 0 ? RailCheckType.FRONT : RailCheckType.BACK)); distanceToCover = info.overshoot; anchor = info.pos; if(i == 0) world.spawnParticle("reddust", next.xCoord, next.yCoord + 0.25, next.zCoord, 0, distanceToCover != 0 ? 0.5 : 0, 0); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 44716fec9..1bd34ccdb 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -1332,6 +1332,7 @@ public class ResourceManager { public static final IModelCustom rail_narrow_straight = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_narrow.obj")); public static final IModelCustom rail_narrow_curve = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_narrow_bend.obj")); public static final IModelCustom rail_standard_straight = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard.obj")); + public static final IModelCustom rail_standard_curve = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_bend.obj")); public static final IModelCustom charge_dynamite = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/charge_dynamite.obj")); public static final IModelCustom charge_c4 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/charge_c4.obj")); diff --git a/src/main/java/com/hbm/render/block/RenderStandardCurveRail.java b/src/main/java/com/hbm/render/block/RenderStandardCurveRail.java new file mode 100644 index 000000000..a238d461d --- /dev/null +++ b/src/main/java/com/hbm/render/block/RenderStandardCurveRail.java @@ -0,0 +1,70 @@ +package com.hbm.render.block; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.rail.RailStandardCurve; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; + +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.world.IBlockAccess; +import net.minecraftforge.client.model.obj.WavefrontObject; + +public class RenderStandardCurveRail implements ISimpleBlockRenderingHandler { + + @Override + public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { + + GL11.glPushMatrix(); + Tessellator tessellator = Tessellator.instance; + + GL11.glScaled(0.2, 0.2, 0.2); + GL11.glTranslated(2.5, -0.0625, -1.5); + GL11.glRotated(90, 0, 1, 0); + tessellator.startDrawingQuads(); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_curve, block.getIcon(1, 0), tessellator, 0, false); + tessellator.draw(); + + GL11.glPopMatrix(); + } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { + + int meta = world.getBlockMetadata(x, y, z); + if(meta < 12) return true; + + Tessellator tessellator = Tessellator.instance; + + tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); + tessellator.setColorOpaque_F(1, 1, 1); + + float rotation = 0; + + if(meta == 15) + rotation = 90F / 180F * (float) Math.PI; + if(meta == 12) + rotation = 180F / 180F * (float) Math.PI; + if(meta == 14) + rotation = 270F / 180F * (float) Math.PI; + + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_curve, block.getIcon(1, 0), tessellator, rotation, true); + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + + return true; + } + + @Override + public boolean shouldRender3DInInventory(int modelId) { + return true; + } + + @Override + public int getRenderId() { + return RailStandardCurve.renderID; + } +} diff --git a/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTramTrailer.java b/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTramTrailer.java index e0166ac4a..58d150ea8 100644 --- a/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTramTrailer.java +++ b/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTramTrailer.java @@ -2,10 +2,15 @@ package com.hbm.render.entity.item; import org.lwjgl.opengl.GL11; +import com.hbm.blocks.ModBlocks; import com.hbm.main.ResourceManager; import net.minecraft.client.renderer.entity.Render; +import net.minecraft.client.renderer.entity.RenderItem; +import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.entity.Entity; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; public class RenderTrainCargoTramTrailer extends Render { @@ -31,6 +36,76 @@ public class RenderTrainCargoTramTrailer extends Render { ResourceManager.train_cargo_tram_trailer.renderAll(); GL11.glEnable(GL11.GL_CULL_FACE); + int slots = entity.getDataWatcher().getWatchableObjectInt(10); + + if(slots > 0) { + + EntityItem dummy = new EntityItem(entity.worldObj, 0, 0, 0, new ItemStack(ModBlocks.crate)); + dummy.hoverStart = 0.0F; + + RenderItem.renderInFrame = true; + double scale = 2; + GL11.glScaled(scale, scale, scale); + + if(slots <= 5) { + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.0D, 0.375D, 0.0D, 0.0F, 0.0F); + } else if(slots <= 10) { + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.1D, 0.375D, 0.25D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, -0.1D, 0.375D, -0.25D, 0.0F, 0.0F); + } else if(slots <= 15) { + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.1D, 0.375D, 0.0D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, -0.1D, 0.375D, 0.375D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, -0.1D, 0.375D, -0.375D, 0.0F, 0.0F); + } else if(slots <= 20) { + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.2D, 0.375D, 0.3D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.2D, 0.375D, -0.2D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, -0.2D, 0.375D, 0.2D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, -0.2D, 0.375D, -0.3D, 0.0F, 0.0F); + } else if(slots <= 25) { + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.2D, 0.375D, 0.6D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.2D, 0.375D, 0.0D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.2D, 0.375D, -0.5D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, -0.2D, 0.375D, 0.2D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, -0.2D, 0.375D, -0.3D, 0.0F, 0.0F); + } else if(slots <= 30) { + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.2D, 0.375D, 0.6D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.2D, 0.375D, 0.0D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.2D, 0.375D, -0.5D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, -0.2D, 0.375D, 0.5D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, -0.2D, 0.375D, -0.1D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, -0.2D, 0.375D, -0.6D, 0.0F, 0.0F); + } else if(slots <= 35) { + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.2D, 0.375D, 0.4D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.2D, 0.375D, 0.0D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.2D, 0.375D, -0.4D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, -0.2D, 0.375D, 0.3D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, -0.2D, 0.375D, -0.1D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, -0.2D, 0.375D, -0.5D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.0D, 0.6875D, -0.25D, 0.0F, 0.0F); + } else if(slots <= 40) { + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.2D, 0.375D, 0.4D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.2D, 0.375D, 0.0D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.2D, 0.375D, -0.4D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, -0.2D, 0.375D, 0.3D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, -0.2D, 0.375D, -0.1D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, -0.2D, 0.375D, -0.5D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.0D, 0.6875D, -0.25D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.0D, 0.6875D, 0.15D, 0.0F, 0.0F); + } else { + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.2D, 0.375D, 0.4D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.2D, 0.375D, 0.0D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.2D, 0.375D, -0.4D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, -0.2D, 0.375D, 0.3D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, -0.2D, 0.375D, -0.1D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, -0.2D, 0.375D, -0.5D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.0D, 0.6875D, -0.25D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.0D, 0.6875D, 0.15D, 0.0F, 0.0F); + RenderManager.instance.renderEntityWithPosYaw(dummy, -0.1D, 0.375D, 0.8D, 0.0F, 0.0F); + } + + RenderItem.renderInFrame = false; + } + GL11.glPopMatrix(); } diff --git a/src/main/resources/assets/hbm/models/blocks/rail_standard.obj b/src/main/resources/assets/hbm/models/blocks/rail_standard.obj index 292011e56..0323332c5 100644 --- a/src/main/resources/assets/hbm/models/blocks/rail_standard.obj +++ b/src/main/resources/assets/hbm/models/blocks/rail_standard.obj @@ -1,698 +1,757 @@ -# Blender v2.79 (sub 0) OBJ File: 'rail_standard.blend' +# Blender v2.79 (sub 0) OBJ File: 'rail_standard_straight.blend' # www.blender.org -o Plane +o Plane.001 +v 1.000000 0.062500 -0.187500 +v 1.000000 0.062500 0.187500 +v -1.000000 0.062500 0.187500 +v -1.000000 0.062500 -0.187500 +v -1.000000 0.000000 0.187500 +v 1.000000 0.000000 0.187500 +v -1.000000 0.000000 -0.187500 +v 1.000000 0.000000 -0.187500 +v -1.000000 0.000000 -0.812500 +v 1.000000 0.000000 -0.812500 +v -1.000000 0.000000 -1.187500 +v 1.000000 0.000000 -1.187500 +v -1.000000 0.000000 -1.812500 +v 1.000000 0.000000 -1.812500 +v -1.000000 0.000000 -2.187500 +v 1.000000 0.000000 -2.187500 +v -1.000000 0.000000 2.187500 +v 1.000000 0.000000 2.187500 +v -1.000000 0.000000 1.812500 +v 1.000000 0.000000 1.812500 +v -1.000000 0.000000 1.187500 +v 1.000000 0.000000 1.187500 +v -1.000000 0.000000 0.812500 +v 1.000000 0.000000 0.812500 +v -1.000000 0.062500 -1.187500 +v -1.000000 0.062500 -0.812500 +v 1.000000 0.062500 -0.812500 +v 1.000000 0.062500 -1.187500 +v -1.000000 0.062500 -2.187500 +v -1.000000 0.062500 -1.812500 +v 1.000000 0.062500 -1.812500 +v 1.000000 0.062500 -2.187500 +v -1.000000 0.062500 1.812500 +v -1.000000 0.062500 2.187500 +v 1.000000 0.062500 2.187500 +v 1.000000 0.062500 1.812500 +v -1.000000 0.062500 0.812500 +v -1.000000 0.062500 1.187500 +v 1.000000 0.062500 1.187500 +v 1.000000 0.062500 0.812500 +v -0.812500 0.062500 2.500000 +v 0.812500 0.062500 2.500000 +v -0.812500 0.062500 -2.500000 +v 0.812500 0.062500 -2.500000 +v -0.812500 0.187500 2.500000 +v 0.812500 0.187500 2.500000 +v -0.812500 0.187500 -2.500000 +v 0.812500 0.187500 -2.500000 v 0.750000 0.062500 2.500000 v 0.750000 0.062500 -2.500000 -v -0.750000 0.062500 2.500000 -v -0.750000 0.062500 -2.500000 v 0.750000 0.187500 2.500000 v 0.750000 0.187500 -2.500000 -v -0.750000 0.187500 2.500000 +v -0.750000 0.062500 -2.500000 +v -0.750000 0.062500 2.500000 v -0.750000 0.187500 -2.500000 -v 0.812500 0.062500 2.500000 -v 0.812500 0.062500 -2.500000 -v 0.812500 0.187500 2.500000 -v 0.812500 0.187500 -2.500000 -v -0.812500 0.062500 2.500000 -v -0.812500 0.062500 -2.500000 -v -0.812500 0.187500 2.500000 -v -0.812500 0.187500 -2.500000 -v -1.000000 0.000000 -0.250000 -v 1.000000 0.000000 -0.250000 -v -1.000000 0.000000 0.250000 -v 1.000000 0.000000 0.250000 -v 1.000000 0.062500 -0.250000 -v -1.000000 0.062500 -0.250000 -v 1.000000 0.062500 0.250000 -v -1.000000 0.062500 0.250000 -v -1.000000 0.000000 2.250000 -v 1.000000 0.000000 2.250000 -v -1.000000 0.000000 2.500000 -v 1.000000 0.000000 2.500000 -v 1.000000 0.062500 2.250000 -v -1.000000 0.062500 2.250000 -v 1.000000 0.062500 2.500000 -v -1.000000 0.062500 2.500000 -v -1.000000 0.000000 1.000000 -v 1.000000 0.000000 1.000000 -v -1.000000 0.000000 1.500000 -v 1.000000 0.000000 1.500000 -v 1.000000 0.062500 1.000000 -v -1.000000 0.062500 1.000000 -v 1.000000 0.062500 1.500000 -v -1.000000 0.062500 1.500000 -v -1.000000 0.000000 -2.500000 -v 1.000000 0.000000 -2.500000 -v -1.000000 0.000000 -2.250000 -v 1.000000 0.000000 -2.250000 -v 1.000000 0.062500 -2.500000 -v -1.000000 0.062500 -2.500000 -v 1.000000 0.062500 -2.250000 -v -1.000000 0.062500 -2.250000 -v -1.000000 0.000000 -1.500000 -v 1.000000 0.000000 -1.500000 -v -1.000000 0.000000 -1.000000 -v 1.000000 0.000000 -1.000000 -v 1.000000 0.062500 -1.500000 -v -1.000000 0.062500 -1.500000 -v 1.000000 0.062500 -1.000000 -v -1.000000 0.062500 -1.000000 +v -0.750000 0.187500 2.500000 +v 0.625000 0.062500 2.062500 +v 0.937500 0.062500 2.062500 +v 0.625000 0.062500 1.937500 +v 0.937500 0.062500 1.937500 +v 0.625000 0.125000 2.062500 +v 0.937500 0.125000 2.062500 +v 0.625000 0.125000 1.937500 +v 0.937500 0.125000 1.937500 +v -0.937500 0.062500 2.062500 +v -0.625000 0.062500 2.062500 +v -0.937500 0.062500 1.937500 +v -0.625000 0.062500 1.937500 +v -0.937500 0.125000 2.062500 +v -0.625000 0.125000 2.062500 +v -0.937500 0.125000 1.937500 +v -0.625000 0.125000 1.937500 +v 0.625000 0.062500 1.062500 +v 0.937500 0.062500 1.062500 +v 0.625000 0.062500 0.937500 +v 0.937500 0.062500 0.937500 +v 0.625000 0.125000 1.062500 +v 0.937500 0.125000 1.062500 +v 0.625000 0.125000 0.937500 +v 0.937500 0.125000 0.937500 +v -0.937500 0.062500 1.062500 +v -0.625000 0.062500 1.062500 +v -0.937500 0.062500 0.937500 +v -0.625000 0.062500 0.937500 +v -0.937500 0.125000 1.062500 +v -0.625000 0.125000 1.062500 +v -0.937500 0.125000 0.937500 +v -0.625000 0.125000 0.937500 v 0.625000 0.062500 0.062500 v 0.937500 0.062500 0.062500 v 0.625000 0.062500 -0.062500 v 0.937500 0.062500 -0.062500 -v 0.625000 0.125000 -0.062500 v 0.625000 0.125000 0.062500 v 0.937500 0.125000 0.062500 +v 0.625000 0.125000 -0.062500 v 0.937500 0.125000 -0.062500 v -0.937500 0.062500 0.062500 v -0.625000 0.062500 0.062500 v -0.937500 0.062500 -0.062500 v -0.625000 0.062500 -0.062500 -v -0.937500 0.125000 -0.062500 v -0.937500 0.125000 0.062500 v -0.625000 0.125000 0.062500 +v -0.937500 0.125000 -0.062500 v -0.625000 0.125000 -0.062500 -v 0.625000 0.062500 -1.187500 -v 0.937500 0.062500 -1.187500 -v 0.625000 0.062500 -1.312500 -v 0.937500 0.062500 -1.312500 -v 0.625000 0.125000 -1.312500 -v 0.625000 0.125000 -1.187500 -v 0.937500 0.125000 -1.187500 -v 0.937500 0.125000 -1.312500 -v -0.937500 0.062500 -1.187500 -v -0.625000 0.062500 -1.187500 -v -0.937500 0.062500 -1.312500 -v -0.625000 0.062500 -1.312500 -v -0.937500 0.125000 -1.312500 -v -0.937500 0.125000 -1.187500 -v -0.625000 0.125000 -1.187500 -v -0.625000 0.125000 -1.312500 -v 0.625000 0.062500 2.500000 -v 0.937500 0.062500 2.500000 -v 0.625000 0.062500 2.437500 -v 0.937500 0.062500 2.437500 -v 0.625000 0.125000 2.437500 -v 0.625000 0.125000 2.500000 -v 0.937500 0.125000 2.500000 -v 0.937500 0.125000 2.437500 -v -0.937500 0.062500 2.500000 -v -0.625000 0.062500 2.500000 -v -0.937500 0.062500 2.437500 -v -0.625000 0.062500 2.437500 -v -0.937500 0.125000 2.437500 -v -0.937500 0.125000 2.500000 -v -0.625000 0.125000 2.500000 -v -0.625000 0.125000 2.437500 -v 0.625000 0.062500 1.312500 -v 0.937500 0.062500 1.312500 -v 0.625000 0.062500 1.187500 -v 0.937500 0.062500 1.187500 -v 0.625000 0.125000 1.187500 -v 0.625000 0.125000 1.312500 -v 0.937500 0.125000 1.312500 -v 0.937500 0.125000 1.187500 -v -0.937500 0.062500 1.312500 -v -0.625000 0.062500 1.312500 -v -0.937500 0.062500 1.187500 -v -0.625000 0.062500 1.187500 -v -0.937500 0.125000 1.187500 -v -0.937500 0.125000 1.312500 -v -0.625000 0.125000 1.312500 -v -0.625000 0.125000 1.187500 -v 0.625000 0.062500 -2.437500 -v 0.937500 0.062500 -2.437500 -v 0.625000 0.062500 -2.500000 -v 0.937500 0.062500 -2.500000 -v 0.625000 0.125000 -2.500000 -v 0.625000 0.125000 -2.437500 -v 0.937500 0.125000 -2.437500 -v 0.937500 0.125000 -2.500000 -v -0.937500 0.062500 -2.437500 -v -0.625000 0.062500 -2.437500 -v -0.937500 0.062500 -2.500000 -v -0.625000 0.062500 -2.500000 -v -0.937500 0.125000 -2.500000 -v -0.937500 0.125000 -2.437500 -v -0.625000 0.125000 -2.437500 -v -0.625000 0.125000 -2.500000 -vt 0.750000 1.000000 -vt 0.781249 0.000000 -vt 0.781250 1.000000 -vt 0.875000 1.000000 -vt 0.843750 0.000000 -vt 0.875000 0.000000 -vt 0.781250 1.000000 -vt 0.812499 0.000000 -vt 0.812500 1.000000 -vt 0.468750 0.550000 -vt 0.453125 0.575000 -vt 0.453125 0.550000 -vt 0.968750 0.000000 -vt 0.953125 1.000000 -vt 0.953125 0.000000 -vt 1.000000 0.000000 -vt 0.984375 1.000000 -vt 0.984375 0.000000 -vt 0.531250 0.575000 -vt 0.546875 0.550000 -vt 0.546875 0.575000 -vt 0.843750 1.000000 -vt 0.812500 0.000000 -vt 0.843750 0.000000 -vt 0.656249 0.550000 -vt 0.640624 0.525000 -vt 0.656249 0.525000 -vt 0.656249 0.550000 -vt 0.671874 0.575000 -vt 0.656249 0.575000 -vt 0.953125 1.000000 -vt 0.937500 0.000000 -vt 0.953125 0.000000 -vt 0.984375 1.000000 -vt 0.968750 0.000000 -vt 0.984375 0.000000 -vt 0.375000 0.000000 -vt 0.499999 0.400000 -vt 0.375000 0.400000 -vt 0.250000 0.400000 -vt 0.375000 0.000000 -vt 0.375000 0.400000 -vt 0.593749 0.500000 -vt 0.609374 0.400000 -vt 0.609374 0.500000 -vt 0.359375 0.800000 -vt 0.375000 0.400000 -vt 0.375000 0.800000 -vt 0.562499 0.500000 -vt 0.578124 0.400000 -vt 0.578124 0.500000 -vt 0.312500 0.400000 -vt 0.296875 0.800000 -vt 0.296875 0.400000 -vt 0.187500 0.800000 -vt 0.125000 0.400000 -vt 0.187500 0.400000 -vt 0.062500 0.400000 -vt 0.000000 0.800000 -vt 0.000000 0.400000 -vt 0.406250 0.575000 -vt 0.421875 0.525000 -vt 0.421875 0.575000 -vt 0.390625 0.400000 -vt 0.375000 0.800000 -vt 0.375000 0.400000 -vt 0.421875 0.575000 -vt 0.437500 0.525000 -vt 0.437500 0.575000 -vt 0.218750 0.400000 -vt 0.203125 0.800000 -vt 0.203125 0.400000 -vt 0.125000 0.000000 -vt 0.250000 0.400000 -vt 0.125000 0.400000 -vt 0.624999 0.000000 -vt 0.500000 0.400000 -vt 0.499999 0.000000 -vt 0.609374 0.500000 -vt 0.624999 0.400000 -vt 0.624999 0.500000 -vt 0.250000 0.800000 -vt 0.265625 0.400000 -vt 0.265625 0.800000 -vt 0.578124 0.500000 -vt 0.593749 0.400000 -vt 0.593749 0.500000 -vt 0.281250 0.400000 -vt 0.265625 0.800000 -vt 0.265625 0.400000 -vt 0.125000 0.800000 -vt 0.062500 0.400000 -vt 0.125000 0.400000 -vt 0.937500 0.000000 -vt 0.875000 0.400000 -vt 0.875000 0.000000 -vt 0.390625 0.575000 -vt 0.406250 0.525000 -vt 0.406250 0.575000 -vt 0.203125 0.400000 -vt 0.187500 0.800000 -vt 0.187500 0.400000 -vt 0.437500 0.575000 -vt 0.453125 0.525000 -vt 0.453125 0.575000 -vt 0.359374 0.400000 -vt 0.343750 0.800000 -vt 0.343749 0.400000 -vt 0.749999 0.400000 -vt 0.624999 0.000000 -vt 0.749999 0.000000 -vt 0.000000 0.400000 -vt 0.125000 0.000000 -vt 0.125000 0.400000 -vt 0.624999 0.500000 -vt 0.640624 0.400000 -vt 0.640624 0.500000 -vt 0.250000 0.400000 -vt 0.234375 0.800000 -vt 0.234375 0.400000 -vt 0.312500 0.500000 -vt 0.328125 0.400000 -vt 0.328125 0.500000 -vt 0.296875 0.400000 -vt 0.281250 0.800000 -vt 0.281250 0.400000 -vt 0.453125 0.462500 -vt 0.484375 0.525000 -vt 0.453125 0.525000 -vt 0.468750 0.550000 -vt 0.453125 0.525000 -vt 0.468750 0.525000 -vt 0.703124 0.550000 -vt 0.687499 0.525000 -vt 0.703124 0.525000 -vt 0.531249 0.462500 -vt 0.515625 0.400000 -vt 0.531249 0.400000 -vt 0.640624 0.400000 -vt 0.656249 0.462500 -vt 0.640624 0.462500 -vt 0.421875 0.462500 -vt 0.453125 0.525000 -vt 0.421875 0.525000 -vt 0.687499 0.550000 -vt 0.671874 0.525000 -vt 0.687499 0.525000 -vt 0.484375 0.550000 -vt 0.468750 0.525000 -vt 0.484375 0.525000 -vt 0.515625 0.525000 -vt 0.500000 0.462500 -vt 0.515625 0.462500 -vt 0.546874 0.400000 -vt 0.562499 0.462500 -vt 0.546874 0.462500 -vt 0.421875 0.525000 -vt 0.390625 0.462500 -vt 0.421875 0.462500 -vt 0.484375 0.575000 -vt 0.468750 0.550000 -vt 0.484375 0.550000 -vt 0.531250 0.575000 -vt 0.515625 0.550000 -vt 0.531250 0.550000 -vt 0.656249 0.400000 -vt 0.671874 0.462500 -vt 0.656249 0.462500 -vt 0.531249 0.462500 -vt 0.546874 0.525000 -vt 0.531249 0.525000 -vt 0.484375 0.462500 -vt 0.453125 0.400000 -vt 0.484375 0.400000 -vt 0.671874 0.550000 -vt 0.656249 0.525000 -vt 0.671874 0.525000 -vt 0.546874 0.550000 -vt 0.531249 0.525000 -vt 0.546874 0.525000 -vt 0.593749 0.500000 -vt 0.609374 0.562500 -vt 0.593749 0.562500 -vt 0.546874 0.462500 -vt 0.562499 0.525000 -vt 0.546874 0.525000 -vt 0.624999 0.562500 -vt 0.609374 0.500000 -vt 0.624999 0.500000 -vt 0.578124 0.575000 -vt 0.562499 0.562500 -vt 0.578124 0.562500 -vt 0.624999 0.575000 -vt 0.609374 0.562500 -vt 0.624999 0.562500 -vt 0.531249 0.400000 -vt 0.546874 0.462500 -vt 0.531249 0.462500 -vt 0.703124 0.400000 -vt 0.718749 0.462500 -vt 0.703124 0.462500 -vt 0.640624 0.562500 -vt 0.624999 0.500000 -vt 0.640624 0.500000 -vt 0.328125 0.575000 -vt 0.312500 0.562500 -vt 0.328125 0.562500 -vt 0.656249 0.562500 -vt 0.640624 0.550000 -vt 0.656249 0.550000 -vt 0.671874 0.400000 -vt 0.687499 0.462500 -vt 0.671874 0.462500 -vt 0.687499 0.462500 -vt 0.703124 0.525000 -vt 0.687499 0.525000 -vt 0.453125 0.462500 -vt 0.421875 0.400000 -vt 0.453125 0.400000 -vt 0.500000 0.575000 -vt 0.484375 0.550000 -vt 0.500000 0.550000 -vt 0.515625 0.575000 -vt 0.500000 0.550000 -vt 0.515625 0.550000 -vt 0.640624 0.462500 -vt 0.656249 0.525000 -vt 0.640624 0.525000 -vt 0.312500 0.500000 -vt 0.328125 0.562500 -vt 0.312500 0.562500 -vt 0.421875 0.462500 -vt 0.390625 0.400000 -vt 0.421875 0.400000 -vt 0.687499 0.575000 -vt 0.671874 0.550000 -vt 0.687499 0.550000 -vt 0.515625 0.550000 -vt 0.500000 0.525000 -vt 0.515625 0.525000 -vt 0.656249 0.462500 -vt 0.671874 0.525000 -vt 0.656249 0.525000 -vt 0.671874 0.462500 -vt 0.687499 0.525000 -vt 0.671874 0.525000 -vt 0.578124 0.562500 -vt 0.562499 0.500000 -vt 0.578124 0.500000 -vt 0.609374 0.575000 -vt 0.593749 0.562500 -vt 0.609374 0.562500 -vt 0.640624 0.575000 -vt 0.624999 0.562500 -vt 0.640624 0.562500 -vt 0.703124 0.462500 -vt 0.718749 0.525000 -vt 0.703124 0.525000 -vt 0.515625 0.462500 -vt 0.531249 0.525000 -vt 0.515625 0.525000 -vt 0.593749 0.562500 -vt 0.578124 0.500000 -vt 0.593749 0.500000 -vt 0.593749 0.575000 -vt 0.578124 0.562500 -vt 0.593749 0.562500 -vt 0.703124 0.562500 -vt 0.687499 0.550000 -vt 0.703124 0.550000 -vt 0.687499 0.400000 -vt 0.703124 0.462500 -vt 0.687499 0.462500 -vt 0.500000 0.400000 -vt 0.515625 0.462500 -vt 0.500000 0.462500 -vt 0.749999 0.000000 -vt 0.843750 1.000000 -vt 0.781250 0.000000 -vt 0.468750 0.575000 -vt 0.968750 1.000000 -vt 1.000000 1.000000 -vt 0.531250 0.550000 -vt 0.812500 1.000000 -vt 0.640624 0.550000 -vt 0.671874 0.550000 -vt 0.937500 1.000000 -vt 0.968750 1.000000 -vt 0.499999 0.000000 -vt 0.250000 0.000000 -vt 0.593749 0.400000 -vt 0.359375 0.400000 -vt 0.562499 0.400000 -vt 0.312500 0.800000 -vt 0.125000 0.800000 -vt 0.062500 0.800000 -vt 0.406250 0.525000 -vt 0.390625 0.800000 -vt 0.421875 0.525000 -vt 0.218750 0.800000 -vt 0.250000 0.000000 -vt 0.624999 0.400000 -vt 0.609374 0.400000 -vt 0.250000 0.400000 -vt 0.578124 0.400000 -vt 0.281250 0.800000 -vt 0.062500 0.800000 -vt 0.937500 0.400000 -vt 0.390625 0.525000 -vt 0.203125 0.800000 -vt 0.437500 0.525000 -vt 0.359375 0.800000 -vt 0.624999 0.400000 -vt 0.000000 0.000000 -vt 0.624999 0.400000 -vt 0.250000 0.800000 -vt 0.312500 0.400000 -vt 0.296875 0.800000 -vt 0.484375 0.462500 -vt 0.453125 0.550000 -vt 0.687499 0.550000 -vt 0.515625 0.462500 -vt 0.656249 0.400000 -vt 0.453125 0.462500 -vt 0.671874 0.550000 -vt 0.468750 0.550000 -vt 0.500000 0.525000 -vt 0.562499 0.400000 -vt 0.390625 0.525000 -vt 0.468750 0.575000 -vt 0.515625 0.575000 -vt 0.671874 0.400000 -vt 0.546874 0.462500 -vt 0.453125 0.462500 -vt 0.656249 0.550000 -vt 0.531249 0.550000 -vt 0.609374 0.500000 -vt 0.562499 0.462500 -vt 0.609374 0.562500 -vt 0.562499 0.575000 -vt 0.609374 0.575000 -vt 0.546874 0.400000 -vt 0.718749 0.400000 -vt 0.624999 0.562500 -vt 0.312500 0.575000 -vt 0.640624 0.562500 -vt 0.687499 0.400000 -vt 0.703124 0.462500 -vt 0.421875 0.462500 -vt 0.484375 0.575000 -vt 0.500000 0.575000 -vt 0.656249 0.462500 -vt 0.328125 0.500000 -vt 0.390625 0.462500 -vt 0.671874 0.575000 -vt 0.500000 0.550000 -vt 0.671874 0.462500 -vt 0.687499 0.462500 -vt 0.562499 0.562500 -vt 0.593749 0.575000 -vt 0.624999 0.575000 -vt 0.718749 0.462500 -vt 0.531249 0.462500 -vt 0.578124 0.562500 -vt 0.578124 0.575000 -vt 0.687499 0.562500 -vt 0.703124 0.400000 -vt 0.515625 0.400000 -vn 1.0000 0.0000 0.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 +v 0.625000 0.062500 -0.937500 +v 0.937500 0.062500 -0.937500 +v 0.625000 0.062500 -1.062500 +v 0.937500 0.062500 -1.062500 +v 0.625000 0.125000 -0.937500 +v 0.937500 0.125000 -0.937500 +v 0.625000 0.125000 -1.062500 +v 0.937500 0.125000 -1.062500 +v -0.937500 0.062500 -0.937500 +v -0.625000 0.062500 -0.937500 +v -0.937500 0.062500 -1.062500 +v -0.625000 0.062500 -1.062500 +v -0.937500 0.125000 -0.937500 +v -0.625000 0.125000 -0.937500 +v -0.937500 0.125000 -1.062500 +v -0.625000 0.125000 -1.062500 +v 0.625000 0.062500 -1.937500 +v 0.937500 0.062500 -1.937500 +v 0.625000 0.062500 -2.062500 +v 0.937500 0.062500 -2.062500 +v 0.625000 0.125000 -1.937500 +v 0.937500 0.125000 -1.937500 +v 0.625000 0.125000 -2.062500 +v 0.937500 0.125000 -2.062500 +v -0.937500 0.062500 -1.937500 +v -0.625000 0.062500 -1.937500 +v -0.937500 0.062500 -2.062500 +v -0.625000 0.062500 -2.062500 +v -0.937500 0.125000 -1.937500 +v -0.625000 0.125000 -1.937500 +v -0.937500 0.125000 -2.062500 +v -0.625000 0.125000 -2.062500 +v -0.812500 0.062500 -1.500000 +v -0.812500 0.062500 -0.500000 +v -0.812500 0.062500 0.500000 +v -0.812500 0.062500 1.500000 +v 0.812500 0.062500 1.500000 +v 0.812500 0.062500 0.500000 +v 0.812500 0.062500 -0.500000 +v 0.812500 0.062500 -1.500000 +v -0.812500 0.187500 -1.500000 +v -0.812500 0.187500 -0.500000 +v -0.812500 0.187500 0.500000 +v -0.812500 0.187500 1.500000 +v 0.812500 0.187500 1.500000 +v 0.812500 0.187500 0.500000 +v 0.812500 0.187500 -0.500000 +v 0.812500 0.187500 -1.500000 +v 0.750000 0.062500 1.500000 +v 0.750000 0.062500 0.500000 +v 0.750000 0.062500 -0.500000 +v 0.750000 0.062500 -1.500000 +v 0.750000 0.187500 1.500000 +v 0.750000 0.187500 0.500000 +v 0.750000 0.187500 -0.500000 +v 0.750000 0.187500 -1.500000 +v -0.750000 0.062500 -1.500000 +v -0.750000 0.062500 -0.500000 +v -0.750000 0.062500 0.500000 +v -0.750000 0.062500 1.500000 +v -0.750000 0.187500 -1.500000 +v -0.750000 0.187500 -0.500000 +v -0.750000 0.187500 0.500000 +v -0.750000 0.187500 1.500000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.500000 0.156250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.531250 0.718750 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.406250 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.718750 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.718750 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.500000 0.718750 +vt 0.406250 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.718750 +vt 0.531250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 vn 0.0000 1.0000 0.0000 vn 0.0000 -1.0000 0.0000 +vn -1.0000 0.0000 0.0000 vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 s off -f 8/1/1 3/2/1 4/3/1 -f 1/4/2 6/5/2 2/6/2 -f 12/7/1 9/8/1 10/9/1 -f 12/10/3 2/11/3 6/12/3 -f 11/13/4 6/14/4 5/15/4 -f 10/16/5 1/17/5 2/18/5 -f 9/19/6 5/20/6 1/21/6 -f 13/22/2 16/23/2 14/24/2 -f 4/25/3 16/26/3 8/27/3 -f 7/28/6 13/29/6 3/30/6 -f 8/31/4 15/32/4 7/33/4 -f 3/34/5 14/35/5 4/36/5 -f 18/37/5 19/38/5 17/39/5 -f 24/40/4 21/41/4 22/42/4 -f 24/43/2 17/44/2 19/45/2 -f 22/46/3 18/47/3 17/48/3 -f 21/49/1 20/50/1 18/51/1 -f 23/52/6 19/53/6 20/54/6 -f 26/55/5 27/56/5 25/57/5 -f 32/58/4 29/59/4 30/60/4 -f 32/61/2 25/62/2 27/63/2 -f 30/64/3 26/65/3 25/66/3 -f 29/67/1 28/68/1 26/69/1 -f 31/70/6 27/71/6 28/72/6 -f 34/73/5 35/74/5 33/75/5 -f 40/76/4 37/77/4 38/78/4 -f 40/79/2 33/80/2 35/81/2 -f 38/82/3 34/83/3 33/84/3 -f 37/85/1 36/86/1 34/87/1 -f 39/88/6 35/89/6 36/90/6 -f 42/91/5 43/92/5 41/93/5 -f 48/94/4 45/95/4 46/96/4 -f 48/97/2 41/98/2 43/99/2 -f 46/100/3 42/101/3 41/102/3 -f 45/103/1 44/104/1 42/105/1 -f 47/106/6 43/107/6 44/108/6 -f 50/109/5 51/110/5 49/111/5 -f 56/112/4 53/113/4 54/114/4 -f 56/115/2 49/116/2 51/117/2 -f 54/118/3 50/119/3 49/120/3 -f 53/121/1 52/122/1 50/123/1 -f 55/124/6 51/125/6 52/126/6 -f 63/127/4 61/128/4 62/129/4 -f 60/130/1 63/131/1 58/132/1 -f 57/133/2 61/134/2 59/135/2 -f 59/136/3 64/137/3 60/138/3 -f 58/139/6 62/140/6 57/141/6 -f 71/142/4 69/143/4 70/144/4 -f 68/145/1 71/146/1 66/147/1 -f 65/148/2 69/149/2 67/150/2 -f 67/151/3 72/152/3 68/153/3 -f 66/154/6 70/155/6 65/156/6 -f 79/157/4 77/158/4 78/159/4 -f 76/160/1 79/161/1 74/162/1 -f 73/163/2 77/164/2 75/165/2 -f 75/166/3 80/167/3 76/168/3 -f 74/169/6 78/170/6 73/171/6 -f 87/172/4 85/173/4 86/174/4 -f 84/175/1 87/176/1 82/177/1 -f 81/178/2 85/179/2 83/180/2 -f 83/181/3 88/182/3 84/183/3 -f 82/184/6 86/185/6 81/186/6 -f 95/187/4 93/188/4 94/189/4 -f 92/190/1 95/191/1 90/192/1 -f 89/193/2 93/194/2 91/195/2 -f 91/196/3 96/197/3 92/198/3 -f 90/199/6 94/200/6 89/201/6 -f 103/202/4 101/203/4 102/204/4 -f 100/205/1 103/206/1 98/207/1 -f 97/208/2 101/209/2 99/210/2 -f 99/211/3 104/212/3 100/213/3 -f 98/214/6 102/215/6 97/216/6 -f 111/217/4 109/218/4 110/219/4 -f 108/220/1 111/221/1 106/222/1 -f 105/223/2 109/224/2 107/225/2 -f 107/226/3 112/227/3 108/228/3 -f 106/229/6 110/230/6 105/231/6 -f 119/232/4 117/233/4 118/234/4 -f 116/235/1 119/236/1 114/237/1 -f 113/238/2 117/239/2 115/240/2 -f 115/241/3 120/242/3 116/243/3 -f 114/244/6 118/245/6 113/246/6 -f 127/247/4 125/248/4 126/249/4 -f 124/250/1 127/251/1 122/252/1 -f 121/253/2 125/254/2 123/255/2 -f 123/256/3 128/257/3 124/258/3 -f 122/259/6 126/260/6 121/261/6 -f 135/262/4 133/263/4 134/264/4 -f 132/265/1 135/266/1 130/267/1 -f 129/268/2 133/269/2 131/270/2 -f 131/271/3 136/272/3 132/273/3 -f 130/274/6 134/275/6 129/276/6 -f 8/1/1 7/277/1 3/2/1 -f 1/4/2 5/278/2 6/5/2 -f 12/7/1 11/279/1 9/8/1 -f 12/10/3 10/280/3 2/11/3 -f 11/13/4 12/281/4 6/14/4 -f 10/16/5 9/282/5 1/17/5 -f 9/19/6 11/283/6 5/20/6 -f 13/22/2 15/284/2 16/23/2 -f 4/25/3 14/285/3 16/26/3 -f 7/28/6 15/286/6 13/29/6 -f 8/31/4 16/287/4 15/32/4 -f 3/34/5 13/288/5 14/35/5 -f 18/37/5 20/289/5 19/38/5 -f 24/40/4 23/290/4 21/41/4 -f 24/43/2 22/291/2 17/44/2 -f 22/46/3 21/292/3 18/47/3 -f 21/49/1 23/293/1 20/50/1 -f 23/52/6 24/294/6 19/53/6 -f 26/55/5 28/295/5 27/56/5 -f 32/58/4 31/296/4 29/59/4 -f 32/61/2 30/297/2 25/62/2 -f 30/64/3 29/298/3 26/65/3 -f 29/67/1 31/299/1 28/68/1 -f 31/70/6 32/300/6 27/71/6 -f 34/73/5 36/301/5 35/74/5 -f 40/76/4 39/302/4 37/77/4 -f 40/79/2 38/303/2 33/80/2 -f 38/82/3 37/304/3 34/83/3 -f 37/85/1 39/305/1 36/86/1 -f 39/88/6 40/306/6 35/89/6 -f 42/91/5 44/307/5 43/92/5 -f 48/94/4 47/308/4 45/95/4 -f 48/97/2 46/309/2 41/98/2 -f 46/100/3 45/310/3 42/101/3 -f 45/103/1 47/311/1 44/104/1 -f 47/106/6 48/312/6 43/107/6 -f 50/109/5 52/313/5 51/110/5 -f 56/112/4 55/314/4 53/113/4 -f 56/115/2 54/315/2 49/116/2 -f 54/118/3 53/316/3 50/119/3 -f 53/121/1 55/317/1 52/122/1 -f 55/124/6 56/318/6 51/125/6 -f 63/127/4 64/319/4 61/128/4 -f 60/130/1 64/320/1 63/131/1 -f 57/133/2 62/321/2 61/134/2 -f 59/136/3 61/322/3 64/137/3 -f 58/139/6 63/323/6 62/140/6 -f 71/142/4 72/324/4 69/143/4 -f 68/145/1 72/325/1 71/146/1 -f 65/148/2 70/326/2 69/149/2 -f 67/151/3 69/327/3 72/152/3 -f 66/154/6 71/328/6 70/155/6 -f 79/157/4 80/329/4 77/158/4 -f 76/160/1 80/330/1 79/161/1 -f 73/163/2 78/331/2 77/164/2 -f 75/166/3 77/332/3 80/167/3 -f 74/169/6 79/333/6 78/170/6 -f 87/172/4 88/334/4 85/173/4 -f 84/175/1 88/335/1 87/176/1 -f 81/178/2 86/336/2 85/179/2 -f 83/181/3 85/337/3 88/182/3 -f 82/184/6 87/338/6 86/185/6 -f 95/187/4 96/339/4 93/188/4 -f 92/190/1 96/340/1 95/191/1 -f 89/193/2 94/341/2 93/194/2 -f 91/196/3 93/342/3 96/197/3 -f 90/199/6 95/343/6 94/200/6 -f 103/202/4 104/344/4 101/203/4 -f 100/205/1 104/345/1 103/206/1 -f 97/208/2 102/346/2 101/209/2 -f 99/211/3 101/347/3 104/212/3 -f 98/214/6 103/348/6 102/215/6 -f 111/217/4 112/349/4 109/218/4 -f 108/220/1 112/350/1 111/221/1 -f 105/223/2 110/351/2 109/224/2 -f 107/226/3 109/352/3 112/227/3 -f 106/229/6 111/353/6 110/230/6 -f 119/232/4 120/354/4 117/233/4 -f 116/235/1 120/355/1 119/236/1 -f 113/238/2 118/356/2 117/239/2 -f 115/241/3 117/357/3 120/242/3 -f 114/244/6 119/358/6 118/245/6 -f 127/247/4 128/359/4 125/248/4 -f 124/250/1 128/360/1 127/251/1 -f 121/253/2 126/361/2 125/254/2 -f 123/256/3 125/362/3 128/257/3 -f 122/259/6 127/363/6 126/260/6 -f 135/262/4 136/364/4 133/263/4 -f 132/265/1 136/365/1 135/266/1 -f 129/268/2 134/366/2 133/269/2 -f 131/271/3 133/367/3 136/272/3 -f 130/274/6 135/368/6 134/275/6 +f 2/1/1 4/2/1 3/3/1 +f 7/4/2 6/5/2 5/6/2 +f 11/7/2 10/8/2 9/9/2 +f 15/10/2 14/11/2 13/12/2 +f 19/13/2 18/14/2 17/15/2 +f 23/16/2 22/17/2 21/18/2 +f 27/19/1 25/20/1 26/21/1 +f 31/22/1 29/23/1 30/24/1 +f 35/25/1 33/26/1 34/27/1 +f 39/28/1 37/29/1 38/30/1 +f 17/31/3 33/32/3 19/33/3 +f 10/34/4 26/35/4 9/36/4 +f 18/37/4 34/38/4 17/39/4 +f 12/40/5 27/41/5 10/8/5 +f 20/42/5 35/43/5 18/14/5 +f 11/7/6 28/44/6 12/45/6 +f 5/46/3 4/47/3 7/48/3 +f 19/13/6 36/49/6 20/50/6 +f 13/51/3 29/52/3 15/53/3 +f 6/54/4 3/55/4 5/56/4 +f 21/57/3 37/58/3 23/59/3 +f 14/60/4 30/61/4 13/62/4 +f 8/63/5 2/64/5 6/5/5 +f 22/65/4 38/66/4 21/67/4 +f 16/68/5 31/69/5 14/11/5 +f 7/4/6 1/70/6 8/71/6 +f 24/72/5 39/73/5 22/17/5 +f 15/10/6 32/74/6 16/75/6 +f 9/76/3 25/77/3 11/78/3 +f 23/16/6 40/79/6 24/80/6 +f 149/81/5 42/82/5 141/83/5 +f 145/84/3 43/85/3 137/86/3 +f 49/87/3 157/88/3 153/89/3 +f 46/90/4 49/91/4 42/92/4 +f 48/93/1 160/94/1 152/95/1 +f 42/82/2 153/96/2 141/83/2 +f 44/97/6 52/98/6 48/99/6 +f 53/100/5 165/101/5 161/102/5 +f 45/103/1 168/104/1 148/105/1 +f 43/106/2 161/102/2 137/107/2 +f 47/108/6 53/109/6 43/110/6 +f 41/111/4 56/112/4 45/113/4 +f 61/114/3 59/115/3 57/116/3 +f 63/117/6 60/118/6 59/119/6 +f 62/120/4 57/121/4 58/122/4 +f 64/123/5 58/124/5 60/125/5 +f 61/114/1 64/123/1 63/117/1 +f 69/126/3 67/127/3 65/128/3 +f 71/129/6 68/130/6 67/131/6 +f 70/132/4 65/133/4 66/134/4 +f 72/135/5 66/136/5 68/137/5 +f 69/126/1 72/135/1 71/129/1 +f 77/138/3 75/139/3 73/140/3 +f 79/141/6 76/142/6 75/143/6 +f 78/144/4 73/145/4 74/146/4 +f 80/147/5 74/148/5 76/149/5 +f 77/138/1 80/147/1 79/141/1 +f 85/150/3 83/151/3 81/152/3 +f 87/153/6 84/154/6 83/155/6 +f 86/156/4 81/157/4 82/158/4 +f 88/159/5 82/160/5 84/161/5 +f 85/150/1 88/159/1 87/153/1 +f 93/162/3 91/163/3 89/164/3 +f 95/165/6 92/166/6 91/167/6 +f 94/168/4 89/169/4 90/170/4 +f 96/171/5 90/172/5 92/173/5 +f 93/162/1 96/171/1 95/165/1 +f 101/174/3 99/175/3 97/176/3 +f 103/177/6 100/178/6 99/179/6 +f 102/180/4 97/181/4 98/182/4 +f 104/183/5 98/184/5 100/185/5 +f 101/174/1 104/183/1 103/177/1 +f 109/186/3 107/187/3 105/188/3 +f 111/189/6 108/190/6 107/191/6 +f 110/192/4 105/193/4 106/194/4 +f 112/195/5 106/196/5 108/197/5 +f 109/186/1 112/195/1 111/189/1 +f 117/198/3 115/199/3 113/200/3 +f 119/201/6 116/202/6 115/203/6 +f 118/204/4 113/205/4 114/206/4 +f 120/207/5 114/208/5 116/209/5 +f 117/198/1 120/207/1 119/201/1 +f 125/210/3 123/211/3 121/212/3 +f 127/213/6 124/214/6 123/215/6 +f 126/216/4 121/217/4 122/218/4 +f 128/219/5 122/220/5 124/221/5 +f 125/210/1 128/219/1 127/213/1 +f 133/222/3 131/223/3 129/224/3 +f 135/225/6 132/226/6 131/227/6 +f 134/228/4 129/229/4 130/230/4 +f 136/231/5 130/232/5 132/233/5 +f 133/222/1 136/231/1 135/225/1 +f 140/234/2 54/235/2 41/236/2 +f 139/237/2 164/238/2 140/239/2 +f 138/240/2 163/241/2 139/242/2 +f 137/243/2 162/244/2 138/245/2 +f 145/84/1 55/246/1 47/247/1 +f 146/248/1 165/249/1 145/250/1 +f 147/251/1 166/252/1 146/253/1 +f 148/254/1 167/255/1 147/256/1 +f 164/257/5 56/258/5 54/235/5 +f 163/259/5 168/260/5 164/238/5 +f 162/261/5 167/262/5 163/241/5 +f 161/263/5 166/264/5 162/244/5 +f 144/265/2 50/266/2 44/267/2 +f 143/268/2 156/269/2 144/270/2 +f 142/271/2 155/272/2 143/273/2 +f 141/274/2 154/275/2 142/276/2 +f 149/81/1 51/277/1 46/278/1 +f 150/279/1 157/280/1 149/281/1 +f 151/282/1 158/283/1 150/284/1 +f 152/285/1 159/286/1 151/287/1 +f 156/288/3 52/289/3 50/290/3 +f 155/291/3 160/292/3 156/293/3 +f 154/294/3 159/295/3 155/296/3 +f 153/297/3 158/298/3 154/299/3 +f 45/103/3 140/300/3 41/301/3 +f 148/254/3 139/302/3 140/303/3 +f 147/251/3 138/304/3 139/305/3 +f 146/248/3 137/306/3 138/307/3 +f 48/93/5 144/265/5 44/267/5 +f 152/285/5 143/268/5 144/270/5 +f 151/282/5 142/271/5 143/273/5 +f 150/279/5 141/274/5 142/276/5 +f 2/1/1 1/70/1 4/2/1 +f 7/4/2 8/71/2 6/5/2 +f 11/7/2 12/45/2 10/8/2 +f 15/10/2 16/75/2 14/11/2 +f 19/13/2 20/50/2 18/14/2 +f 23/16/2 24/80/2 22/17/2 +f 27/19/1 28/44/1 25/20/1 +f 31/22/1 32/74/1 29/23/1 +f 35/25/1 36/49/1 33/26/1 +f 39/28/1 40/79/1 37/29/1 +f 17/31/3 34/308/3 33/32/3 +f 10/34/4 27/309/4 26/35/4 +f 18/37/4 35/310/4 34/38/4 +f 12/40/5 28/311/5 27/41/5 +f 20/42/5 36/312/5 35/43/5 +f 11/7/6 25/20/6 28/44/6 +f 5/46/3 3/313/3 4/47/3 +f 19/13/6 33/26/6 36/49/6 +f 13/51/3 30/314/3 29/52/3 +f 6/54/4 2/315/4 3/55/4 +f 21/57/3 38/316/3 37/58/3 +f 14/60/4 31/317/4 30/61/4 +f 8/63/5 1/318/5 2/64/5 +f 22/65/4 39/319/4 38/66/4 +f 16/68/5 32/320/5 31/69/5 +f 7/4/6 4/2/6 1/70/6 +f 24/72/5 40/321/5 39/73/5 +f 15/10/6 29/23/6 32/74/6 +f 9/76/3 26/322/3 25/77/3 +f 23/16/6 37/29/6 40/79/6 +f 149/81/5 46/278/5 42/82/5 +f 145/84/3 47/247/3 43/85/3 +f 49/87/3 51/277/3 157/88/3 +f 46/90/4 51/323/4 49/91/4 +f 48/93/1 52/289/1 160/94/1 +f 42/82/2 49/324/2 153/96/2 +f 44/97/6 50/325/6 52/98/6 +f 53/100/5 55/246/5 165/101/5 +f 45/103/1 56/258/1 168/104/1 +f 43/106/2 53/100/2 161/102/2 +f 47/108/6 55/326/6 53/109/6 +f 41/111/4 54/327/4 56/112/4 +f 61/114/3 63/117/3 59/115/3 +f 63/117/6 64/123/6 60/118/6 +f 62/120/4 61/114/4 57/121/4 +f 64/123/5 62/120/5 58/124/5 +f 61/114/1 62/120/1 64/123/1 +f 69/126/3 71/129/3 67/127/3 +f 71/129/6 72/135/6 68/130/6 +f 70/132/4 69/126/4 65/133/4 +f 72/135/5 70/132/5 66/136/5 +f 69/126/1 70/132/1 72/135/1 +f 77/138/3 79/141/3 75/139/3 +f 79/141/6 80/147/6 76/142/6 +f 78/144/4 77/138/4 73/145/4 +f 80/147/5 78/144/5 74/148/5 +f 77/138/1 78/144/1 80/147/1 +f 85/150/3 87/153/3 83/151/3 +f 87/153/6 88/159/6 84/154/6 +f 86/156/4 85/150/4 81/157/4 +f 88/159/5 86/156/5 82/160/5 +f 85/150/1 86/156/1 88/159/1 +f 93/162/3 95/165/3 91/163/3 +f 95/165/6 96/171/6 92/166/6 +f 94/168/4 93/162/4 89/169/4 +f 96/171/5 94/168/5 90/172/5 +f 93/162/1 94/168/1 96/171/1 +f 101/174/3 103/177/3 99/175/3 +f 103/177/6 104/183/6 100/178/6 +f 102/180/4 101/174/4 97/181/4 +f 104/183/5 102/180/5 98/184/5 +f 101/174/1 102/180/1 104/183/1 +f 109/186/3 111/189/3 107/187/3 +f 111/189/6 112/195/6 108/190/6 +f 110/192/4 109/186/4 105/193/4 +f 112/195/5 110/192/5 106/196/5 +f 109/186/1 110/192/1 112/195/1 +f 117/198/3 119/201/3 115/199/3 +f 119/201/6 120/207/6 116/202/6 +f 118/204/4 117/198/4 113/205/4 +f 120/207/5 118/204/5 114/208/5 +f 117/198/1 118/204/1 120/207/1 +f 125/210/3 127/213/3 123/211/3 +f 127/213/6 128/219/6 124/214/6 +f 126/216/4 125/210/4 121/217/4 +f 128/219/5 126/216/5 122/220/5 +f 125/210/1 126/216/1 128/219/1 +f 133/222/3 135/225/3 131/223/3 +f 135/225/6 136/231/6 132/226/6 +f 134/228/4 133/222/4 129/229/4 +f 136/231/5 134/228/5 130/232/5 +f 133/222/1 134/228/1 136/231/1 +f 140/234/2 164/257/2 54/235/2 +f 139/237/2 163/259/2 164/238/2 +f 138/240/2 162/261/2 163/241/2 +f 137/243/2 161/263/2 162/244/2 +f 145/84/1 165/101/1 55/246/1 +f 146/248/1 166/264/1 165/249/1 +f 147/251/1 167/262/1 166/252/1 +f 148/254/1 168/260/1 167/255/1 +f 164/257/5 168/104/5 56/258/5 +f 163/259/5 167/255/5 168/260/5 +f 162/261/5 166/252/5 167/262/5 +f 161/263/5 165/249/5 166/264/5 +f 144/265/2 156/328/2 50/266/2 +f 143/268/2 155/329/2 156/269/2 +f 142/271/2 154/330/2 155/272/2 +f 141/274/2 153/331/2 154/275/2 +f 149/81/1 157/88/1 51/277/1 +f 150/279/1 158/298/1 157/280/1 +f 151/282/1 159/295/1 158/283/1 +f 152/285/1 160/292/1 159/286/1 +f 156/288/3 160/94/3 52/289/3 +f 155/291/3 159/286/3 160/292/3 +f 154/294/3 158/283/3 159/295/3 +f 153/297/3 157/280/3 158/298/3 +f 45/103/3 148/105/3 140/300/3 +f 148/254/3 147/256/3 139/302/3 +f 147/251/3 146/253/3 138/304/3 +f 146/248/3 145/250/3 137/306/3 +f 48/93/5 152/95/5 144/265/5 +f 152/285/5 151/287/5 143/268/5 +f 151/282/5 150/284/5 142/271/5 +f 150/279/5 149/281/5 141/274/5 diff --git a/src/main/resources/assets/hbm/models/blocks/rail_standard_bend.obj b/src/main/resources/assets/hbm/models/blocks/rail_standard_bend.obj new file mode 100644 index 000000000..23702e62b --- /dev/null +++ b/src/main/resources/assets/hbm/models/blocks/rail_standard_bend.obj @@ -0,0 +1,982 @@ +# Blender v2.79 (sub 0) OBJ File: 'rail_standard_curve.blend' +# www.blender.org +o Plane.001 +v -1.312500 0.062500 0.500000 +v -1.141243 0.062500 -2.858757 +v -1.312500 0.187500 0.500000 +v -1.141243 0.187500 -2.858757 +v -1.097049 0.062500 -2.902951 +v -1.097049 0.187500 -2.902951 +v -1.250000 0.062500 0.500000 +v -1.250000 0.187500 0.500000 +v -4.500000 0.062500 -2.687500 +v -4.500000 0.062500 -4.312500 +v -4.500000 0.187500 -2.687500 +v -4.500000 0.187500 -4.312500 +v -4.500000 0.062500 -4.250000 +v -4.500000 0.187500 -4.250000 +v -4.500000 0.062500 -2.750000 +v -4.500000 0.187500 -2.750000 +v -2.246097 0.062500 -1.753903 +v -0.550519 0.187500 -2.138958 +v -2.246097 0.187500 -1.753903 +v -0.498553 0.187500 -2.173681 +v -0.498553 0.062500 -2.173681 +v -0.550519 0.062500 -2.138958 +v -2.201903 0.062500 -1.798097 +v -2.201903 0.187500 -1.798097 +v -3.675014 0.062500 -2.578888 +v -3.675014 0.187500 -2.578888 +v -3.658838 0.062500 -2.639259 +v -3.658838 0.187500 -2.639259 +v -2.906250 0.062500 -2.260456 +v -2.906250 0.187500 -2.260456 +v -2.875000 0.062500 -2.314582 +v -2.875000 0.187500 -2.314582 +v -1.739544 0.062500 -1.093750 +v -1.739544 0.187500 -1.093750 +v -1.685418 0.062500 -1.125000 +v -1.685418 0.187500 -1.125000 +v -1.421111 0.062500 -0.324986 +v -1.421111 0.187500 -0.324986 +v -1.360741 0.062500 -0.341162 +v -1.360741 0.187500 -0.341162 +v -3.561128 0.187500 -4.220029 +v -3.561128 0.062500 -4.220029 +v -3.573321 0.187500 -4.158730 +v -3.573321 0.062500 -4.158730 +v -2.658336 0.187500 -3.946170 +v -2.658336 0.062500 -3.946170 +v -2.682254 0.187500 -3.888428 +v -2.682254 0.062500 -3.888428 +v -1.826319 0.187500 -3.501447 +v -1.826319 0.062500 -3.501447 +v -1.861041 0.187500 -3.449481 +v -1.861041 0.062500 -3.449481 +v -0.111573 0.062500 -1.317746 +v -0.053831 0.062500 -1.341664 +v -0.053831 0.187500 -1.341664 +v -0.111573 0.187500 -1.317746 +v 0.158730 0.062500 -0.426678 +v 0.220028 0.062500 -0.438872 +v 0.220028 0.187500 -0.438872 +v 0.158730 0.187500 -0.426678 +v 0.250000 0.062500 0.500000 +v 0.312499 0.062500 0.500000 +v 0.312499 0.187500 0.500000 +v 0.250000 0.187500 0.500000 +v -1.501192 0.000000 0.294317 +v 0.481698 0.000000 0.033265 +v -1.550139 0.000000 -0.077475 +v 0.432751 0.000000 -0.338527 +v -1.550139 0.062500 -0.077475 +v -1.501192 0.062500 0.294317 +v 0.481698 0.062500 0.033265 +v 0.432751 0.062500 -0.338527 +v -1.656608 0.000000 -0.474823 +v 0.191151 0.000000 -1.240190 +v -1.800115 0.000000 -0.821278 +v 0.047645 0.000000 -1.586645 +v -1.800115 0.062500 -0.821278 +v -1.656608 0.062500 -0.474823 +v 0.191151 0.062500 -1.240190 +v 0.047645 0.062500 -1.586645 +v -2.005797 0.000000 -1.177531 +v -0.419090 0.000000 -2.395053 +v -2.234083 0.000000 -1.475038 +v -0.647376 0.000000 -2.692561 +v -2.234083 0.062500 -1.475038 +v -2.005797 0.062500 -1.177531 +v -0.419090 0.062500 -2.395053 +v -0.647376 0.062500 -2.692561 +v -2.524962 0.000000 -1.765917 +v -1.307439 0.000000 -3.352624 +v -2.822469 0.000000 -1.994203 +v -1.604947 0.000000 -3.580910 +v -2.822469 0.062500 -1.994203 +v -2.524962 0.062500 -1.765917 +v -1.307439 0.062500 -3.352624 +v -1.604947 0.062500 -3.580910 +v -3.178722 0.000000 -2.199886 +v -2.413356 0.000000 -4.047645 +v -3.525177 0.000000 -2.343392 +v -2.759810 0.000000 -4.191151 +v -3.525177 0.062500 -2.343392 +v -3.178722 0.062500 -2.199886 +v -2.413356 0.062500 -4.047645 +v -2.759810 0.062500 -4.191151 +v -3.922526 0.000000 -2.449861 +v -3.661473 0.000000 -4.432751 +v -4.294317 0.000000 -2.498808 +v -4.033265 0.000000 -4.481698 +v -4.294317 0.062500 -2.498808 +v -3.922526 0.062500 -2.449861 +v -3.661473 0.062500 -4.432751 +v -4.033265 0.062500 -4.481698 +v 0.387101 0.125000 -0.206438 +v 0.077275 0.125000 -0.165649 +v 0.403417 0.125000 -0.082508 +v 0.093590 0.125000 -0.041718 +v 0.387101 0.062500 -0.206438 +v 0.077275 0.062500 -0.165649 +v 0.403417 0.062500 -0.082508 +v 0.093590 0.062500 -0.041718 +v -1.455542 0.062500 0.162229 +v -1.145715 0.062500 0.121439 +v -1.471858 0.062500 0.038298 +v -1.162031 0.062500 -0.002491 +v -1.455542 0.125000 0.162229 +v -1.145715 0.125000 0.121439 +v -1.471858 0.125000 0.038298 +v -1.162031 0.125000 -0.002491 +v 0.037737 0.125000 -1.447242 +v -0.250975 0.125000 -1.327653 +v 0.085573 0.125000 -1.331757 +v -0.203139 0.125000 -1.212168 +v 0.037737 0.062500 -1.447242 +v -0.250975 0.062500 -1.327653 +v 0.085573 0.062500 -1.331757 +v -0.203139 0.062500 -1.212168 +v -1.646701 0.062500 -0.614226 +v -1.357989 0.062500 -0.733814 +v -1.694537 0.062500 -0.729711 +v -1.405824 0.062500 -0.849299 +v -1.646701 0.125000 -0.614226 +v -1.357989 0.125000 -0.733814 +v -1.694537 0.125000 -0.729711 +v -1.405824 0.125000 -0.849299 +v -0.620866 0.125000 -2.555344 +v -0.868788 0.125000 -2.365106 +v -0.544770 0.125000 -2.456175 +v -0.792693 0.125000 -2.265937 +v -0.620866 0.062500 -2.555344 +v -0.868788 0.062500 -2.365106 +v -0.544770 0.062500 -2.456175 +v -0.792693 0.062500 -2.265937 +v -2.032308 0.062500 -1.314747 +v -1.784385 0.062500 -1.504985 +v -2.108403 0.062500 -1.413917 +v -1.860480 0.062500 -1.604154 +v -2.032308 0.125000 -1.314747 +v -1.784385 0.125000 -1.504985 +v -2.108403 0.125000 -1.413917 +v -1.860480 0.125000 -1.604154 +v -1.543825 0.125000 -3.455230 +v -1.734063 0.125000 -3.207307 +v -1.444656 0.125000 -3.379134 +v -1.634893 0.125000 -3.131212 +v -1.543825 0.062500 -3.455230 +v -1.734063 0.062500 -3.207307 +v -1.444656 0.062500 -3.379134 +v -1.634893 0.062500 -3.131212 +v -2.586083 0.062500 -1.891597 +v -2.395845 0.062500 -2.139520 +v -2.685253 0.062500 -1.967692 +v -2.495015 0.062500 -2.215615 +v -2.586083 0.125000 -1.891597 +v -2.395845 0.125000 -2.139520 +v -2.685253 0.125000 -1.967692 +v -2.495015 0.125000 -2.215615 +v -2.668243 0.125000 -4.085573 +v -2.787832 0.125000 -3.796861 +v -2.552758 0.125000 -4.037737 +v -2.672346 0.125000 -3.749025 +v -2.668243 0.062500 -4.085573 +v -2.787832 0.062500 -3.796861 +v -2.552758 0.062500 -4.037737 +v -2.672346 0.062500 -3.749025 +v -3.270289 0.062500 -2.305463 +v -3.150701 0.062500 -2.594176 +v -3.385775 0.062500 -2.353299 +v -3.266186 0.062500 -2.642011 +v -3.270289 0.125000 -2.305463 +v -3.150701 0.125000 -2.594176 +v -3.385775 0.125000 -2.353299 +v -3.266186 0.125000 -2.642011 +v -3.917492 0.125000 -4.403417 +v -3.958282 0.125000 -4.093591 +v -3.793562 0.125000 -4.387100 +v -3.834351 0.125000 -4.077275 +v -3.917492 0.062500 -4.403417 +v -3.958282 0.062500 -4.093591 +v -3.793562 0.062500 -4.387100 +v -3.834351 0.062500 -4.077275 +v -4.038298 0.062500 -2.528142 +v -3.997509 0.062500 -2.837969 +v -4.162229 0.062500 -2.544458 +v -4.121440 0.062500 -2.854284 +v -4.038298 0.125000 -2.528142 +v -3.997509 0.125000 -2.837969 +v -4.162229 0.125000 -2.544458 +v -4.121440 0.125000 -2.854284 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.718750 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.718750 +vt 0.531250 0.718750 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.656250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.656250 +vt 0.437500 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.656250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.656250 +vt 0.437500 0.656250 +vt 0.437500 0.156250 +vt 0.406250 0.656250 +vt 0.437500 0.656250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.656250 +vt 0.437500 0.656250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.656250 +vt 0.593750 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.531250 0.156250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.531250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.156250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.531250 0.718750 +vt 0.500000 0.656250 +vt 0.500000 0.718750 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 1.000000 +vt 0.218750 0.000000 +vt 0.406250 0.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.218750 1.000000 +vt 0.187500 0.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 1.000000 +vt 0.218750 0.000000 +vt 0.406250 0.000000 +vt -0.000000 1.000000 +vt 0.187500 0.000000 +vt 0.187500 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.218750 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.062500 +vt 0.593750 0.125000 +vt 0.437500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.062500 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.500000 0.718750 +vt 0.531250 0.656250 +vt 0.500000 0.718750 +vt 0.406250 0.156250 +vt 0.406250 0.156250 +vt 0.531250 0.156250 +vt 0.406250 0.156250 +vt 0.406250 0.156250 +vt 0.593750 0.656250 +vt 0.406250 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.156250 +vt 0.593750 0.656250 +vt 0.406250 0.656250 +vt 0.531250 0.656250 +vt 0.531250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.531250 0.656250 +vt 0.531250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.531250 0.656250 +vt 0.406250 0.656250 +vt 0.531250 0.656250 +vt 0.531250 0.656250 +vt 0.531250 0.656250 +vt 0.406250 0.656250 +vt 0.531250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt -0.000000 0.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vn 0.7730 0.0000 -0.6344 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.6344 0.0000 -0.7730 +vn 0.0000 -1.0000 0.0000 +vn -0.1305 0.0000 0.9914 +vn 0.0000 1.0000 0.0000 +vn 0.1305 0.0000 -0.9914 +vn 0.3827 0.0000 -0.9239 +vn -0.3827 0.0000 0.9239 +vn 0.6088 0.0000 -0.7934 +vn -0.6088 0.0000 0.7934 +vn 0.7934 0.0000 -0.6088 +vn -0.7934 0.0000 0.6088 +vn 0.9914 0.0000 -0.1305 +vn 0.9239 0.0000 -0.3827 +vn -0.9239 0.0000 0.3827 +vn -0.9914 0.0000 0.1305 +vn -0.0980 0.0000 0.9952 +vn 0.0980 0.0000 -0.9952 +vn 0.2903 0.0000 -0.9569 +vn -0.2903 0.0000 0.9569 +vn -0.4714 0.0000 0.8819 +vn 0.4714 0.0000 -0.8819 +vn -0.6344 0.0000 0.7730 +vn -0.7730 0.0000 0.6344 +vn 0.9569 0.0000 -0.2903 +vn 0.8819 0.0000 -0.4714 +vn -0.8819 0.0000 0.4714 +vn -0.9952 0.0000 0.0980 +vn -0.9569 0.0000 0.2903 +vn 0.9952 0.0000 -0.0980 +vn 0.1305 0.0000 0.9914 +vn -0.1305 0.0000 -0.9914 +vn 0.3827 0.0000 0.9239 +vn -0.3827 0.0000 -0.9239 +vn 0.6088 0.0000 0.7934 +vn -0.6088 0.0000 -0.7934 +vn 0.7934 0.0000 0.6088 +vn -0.7934 0.0000 -0.6088 +vn 0.9239 0.0000 0.3827 +vn -0.9239 0.0000 -0.3827 +vn 0.9914 0.0000 0.1305 +vn -0.9914 0.0000 -0.1305 +s off +f 20/1/1 5/2/1 6/3/1 +f 7/4/2 3/5/2 1/6/2 +f 10/7/3 14/8/3 12/9/3 +f 11/10/3 15/11/3 9/12/3 +f 6/13/4 50/14/4 49/15/4 +f 35/16/5 17/17/5 23/18/5 +f 31/19/5 25/20/5 27/21/5 +f 25/22/6 11/23/6 9/24/6 +f 11/23/7 28/25/7 16/26/7 +f 27/27/5 9/28/5 15/29/5 +f 28/25/8 15/29/8 16/26/8 +f 23/30/5 29/31/5 31/32/5 +f 32/33/9 27/21/9 28/34/9 +f 30/35/7 28/34/7 26/36/7 +f 29/37/10 26/36/10 25/38/10 +f 23/30/11 32/39/11 24/40/11 +f 24/40/7 30/41/7 19/42/7 +f 30/41/12 17/43/12 19/42/12 +f 39/44/5 33/45/5 35/46/5 +f 36/47/13 23/18/13 24/48/13 +f 33/49/14 19/50/14 17/51/14 +f 19/50/7 36/47/7 24/48/7 +f 7/52/15 40/53/15 8/54/15 +f 40/55/16 35/46/16 36/56/16 +f 34/57/7 40/55/7 36/56/7 +f 37/58/17 34/57/17 33/59/17 +f 8/54/7 38/60/7 3/61/7 +f 38/60/18 1/62/18 3/61/18 +f 1/63/5 39/64/5 7/52/5 +f 43/65/7 45/66/7 41/67/7 +f 14/68/7 41/69/7 12/70/7 +f 42/71/5 13/72/5 10/73/5 +f 44/74/19 14/68/19 13/75/19 +f 41/69/20 10/73/20 12/70/20 +f 50/76/5 48/77/5 46/78/5 +f 45/66/21 42/79/21 41/67/21 +f 46/80/5 44/81/5 42/79/5 +f 48/82/22 43/65/22 44/83/22 +f 51/84/7 6/13/7 49/15/7 +f 52/85/23 47/86/23 48/87/23 +f 47/86/7 49/88/7 45/89/7 +f 49/88/24 46/78/24 45/89/24 +f 5/90/5 52/91/5 50/14/5 +f 2/92/25 51/84/25 52/93/25 +f 54/94/5 22/95/5 21/96/5 +f 4/97/7 20/1/7 6/3/7 +f 21/98/5 2/99/5 5/2/5 +f 22/100/26 4/97/26 2/101/26 +f 59/102/27 54/103/27 55/104/27 +f 55/105/28 21/96/28 20/106/28 +f 18/107/7 55/105/7 20/106/7 +f 53/108/29 18/107/29 22/109/29 +f 61/110/30 60/111/30 57/112/30 +f 56/113/7 59/102/7 55/104/7 +f 57/114/31 56/113/31 53/115/31 +f 58/116/5 53/117/5 54/103/5 +f 64/118/2 62/119/2 63/120/2 +f 62/121/5 57/122/5 58/123/5 +f 63/124/32 58/123/32 59/125/32 +f 60/111/7 63/124/7 59/125/7 +f 67/126/5 66/127/5 65/128/5 +f 71/129/7 69/130/7 70/131/7 +f 65/132/18 69/133/18 67/134/18 +f 66/135/33 70/136/33 65/137/33 +f 68/138/15 71/139/15 66/127/15 +f 67/126/34 72/140/34 68/141/34 +f 75/142/5 74/143/5 73/144/5 +f 79/145/7 77/146/7 78/147/7 +f 73/148/17 77/149/17 75/150/17 +f 74/151/35 78/152/35 73/153/35 +f 76/154/16 79/155/16 74/143/16 +f 75/142/36 80/156/36 76/157/36 +f 81/158/5 84/159/5 82/160/5 +f 87/161/7 85/162/7 86/163/7 +f 81/164/14 85/165/14 83/166/14 +f 82/167/37 86/168/37 81/169/37 +f 84/170/13 87/171/13 82/160/13 +f 83/172/38 88/173/38 84/159/38 +f 91/174/5 90/175/5 89/176/5 +f 95/177/7 93/178/7 94/179/7 +f 89/180/12 93/181/12 91/182/12 +f 90/183/39 94/184/39 89/185/39 +f 92/186/11 95/187/11 90/175/11 +f 91/174/40 96/188/40 92/189/40 +f 97/190/5 100/191/5 98/192/5 +f 102/193/7 104/194/7 101/195/7 +f 97/196/10 101/197/10 99/198/10 +f 98/199/41 102/200/41 97/201/41 +f 100/202/9 103/203/9 98/192/9 +f 99/204/42 104/194/42 100/191/42 +f 107/205/5 106/206/5 105/207/5 +f 111/208/7 109/209/7 110/210/7 +f 105/211/6 109/212/6 107/213/6 +f 106/214/43 110/215/43 105/216/43 +f 108/217/8 111/218/8 106/206/8 +f 107/205/44 112/219/44 108/220/44 +f 125/221/18 123/222/18 121/223/18 +f 114/224/7 115/225/7 113/226/7 +f 113/226/15 119/227/15 117/228/15 +f 115/225/33 120/229/33 119/230/33 +f 114/224/34 117/231/34 118/232/34 +f 116/233/18 118/234/18 120/235/18 +f 127/236/34 124/237/34 123/238/34 +f 126/239/33 121/240/33 122/241/33 +f 128/242/15 122/243/15 124/244/15 +f 125/221/7 128/242/7 127/236/7 +f 141/245/17 139/246/17 137/247/17 +f 130/248/7 131/249/7 129/250/7 +f 129/250/16 135/251/16 133/252/16 +f 131/249/35 136/253/35 135/254/35 +f 130/248/36 133/255/36 134/256/36 +f 132/257/17 134/258/17 136/259/17 +f 143/260/36 140/261/36 139/262/36 +f 142/263/35 137/264/35 138/265/35 +f 144/266/16 138/267/16 140/268/16 +f 141/245/7 144/266/7 143/260/7 +f 157/269/14 155/270/14 153/271/14 +f 148/272/7 145/273/7 146/274/7 +f 145/273/13 151/275/13 149/276/13 +f 147/277/37 152/278/37 151/279/37 +f 146/274/38 149/280/38 150/281/38 +f 148/272/14 150/282/14 152/283/14 +f 159/284/38 156/285/38 155/286/38 +f 158/287/37 153/288/37 154/289/37 +f 160/290/13 154/291/13 156/292/13 +f 157/269/7 160/290/7 159/284/7 +f 173/293/12 171/294/12 169/295/12 +f 162/296/7 163/297/7 161/298/7 +f 161/298/11 167/299/11 165/300/11 +f 163/297/39 168/301/39 167/302/39 +f 162/296/40 165/303/40 166/304/40 +f 164/305/12 166/306/12 168/307/12 +f 175/308/40 172/309/40 171/310/40 +f 174/311/39 169/312/39 170/313/39 +f 176/314/11 170/315/11 172/316/11 +f 173/293/7 176/314/7 175/308/7 +f 189/317/10 187/318/10 185/319/10 +f 178/320/7 179/321/7 177/322/7 +f 177/322/9 183/323/9 181/324/9 +f 179/321/41 184/325/41 183/326/41 +f 178/320/42 181/327/42 182/328/42 +f 180/329/10 182/330/10 184/331/10 +f 191/332/42 188/333/42 187/334/42 +f 190/335/41 185/336/41 186/337/41 +f 192/338/9 186/339/9 188/340/9 +f 191/332/7 190/335/7 192/338/7 +f 205/341/6 203/342/6 201/343/6 +f 194/344/7 195/345/7 193/346/7 +f 193/346/8 199/347/8 197/348/8 +f 195/345/43 200/349/43 199/350/43 +f 194/344/44 197/351/44 198/352/44 +f 196/353/6 198/354/6 200/355/6 +f 207/356/44 204/357/44 203/358/44 +f 206/359/43 201/360/43 202/361/43 +f 208/362/8 202/363/8 204/364/8 +f 207/356/7 206/359/7 208/362/7 +f 20/1/1 21/98/1 5/2/1 +f 7/4/2 8/365/2 3/5/2 +f 10/7/3 13/366/3 14/8/3 +f 11/10/3 16/367/3 15/11/3 +f 6/13/4 5/90/4 50/14/4 +f 35/16/5 33/368/5 17/17/5 +f 31/19/5 29/369/5 25/20/5 +f 25/22/6 26/370/6 11/23/6 +f 11/23/7 26/370/7 28/25/7 +f 27/27/5 25/371/5 9/28/5 +f 28/25/8 27/27/8 15/29/8 +f 23/30/5 17/372/5 29/31/5 +f 32/33/9 31/19/9 27/21/9 +f 30/35/7 32/33/7 28/34/7 +f 29/37/10 30/35/10 26/36/10 +f 23/30/11 31/32/11 32/39/11 +f 24/40/7 32/39/7 30/41/7 +f 30/41/12 29/373/12 17/43/12 +f 39/44/5 37/374/5 33/45/5 +f 36/47/13 35/16/13 23/18/13 +f 33/49/14 34/375/14 19/50/14 +f 19/50/7 34/375/7 36/47/7 +f 7/52/15 39/64/15 40/53/15 +f 40/55/16 39/44/16 35/46/16 +f 34/57/7 38/376/7 40/55/7 +f 37/58/17 38/376/17 34/57/17 +f 8/54/7 40/53/7 38/60/7 +f 38/60/18 37/377/18 1/62/18 +f 1/63/5 37/378/5 39/64/5 +f 43/65/7 47/379/7 45/66/7 +f 14/68/7 43/380/7 41/69/7 +f 42/71/5 44/381/5 13/72/5 +f 44/74/19 43/380/19 14/68/19 +f 41/69/20 42/71/20 10/73/20 +f 50/76/5 52/382/5 48/77/5 +f 45/66/21 46/80/21 42/79/21 +f 46/80/5 48/383/5 44/81/5 +f 48/82/22 47/379/22 43/65/22 +f 51/84/7 4/384/7 6/13/7 +f 52/85/23 51/385/23 47/86/23 +f 47/86/7 51/385/7 49/88/7 +f 49/88/24 50/76/24 46/78/24 +f 5/90/5 2/386/5 52/91/5 +f 2/92/25 4/384/25 51/84/25 +f 54/94/5 53/387/5 22/95/5 +f 4/97/7 18/388/7 20/1/7 +f 21/98/5 22/389/5 2/99/5 +f 22/100/26 18/388/26 4/97/26 +f 59/102/27 58/116/27 54/103/27 +f 55/105/28 54/94/28 21/96/28 +f 18/107/7 56/390/7 55/105/7 +f 53/108/29 56/390/29 18/107/29 +f 61/110/30 64/391/30 60/111/30 +f 56/113/7 60/392/7 59/102/7 +f 57/114/31 60/392/31 56/113/31 +f 58/116/5 57/393/5 53/117/5 +f 64/118/2 61/394/2 62/119/2 +f 62/121/5 61/395/5 57/122/5 +f 63/124/32 62/121/32 58/123/32 +f 60/111/7 64/391/7 63/124/7 +f 67/126/5 68/141/5 66/127/5 +f 71/129/7 72/140/7 69/130/7 +f 65/132/18 70/396/18 69/133/18 +f 66/135/33 71/397/33 70/136/33 +f 68/138/15 72/398/15 71/139/15 +f 67/126/34 69/130/34 72/140/34 +f 75/142/5 76/157/5 74/143/5 +f 79/145/7 80/156/7 77/146/7 +f 73/148/17 78/399/17 77/149/17 +f 74/151/35 79/400/35 78/152/35 +f 76/154/16 80/401/16 79/155/16 +f 75/142/36 77/146/36 80/156/36 +f 81/158/5 83/172/5 84/159/5 +f 87/161/7 88/173/7 85/162/7 +f 81/164/14 86/402/14 85/165/14 +f 82/167/37 87/403/37 86/168/37 +f 84/170/13 88/404/13 87/171/13 +f 83/172/38 85/162/38 88/173/38 +f 91/174/5 92/189/5 90/175/5 +f 95/177/7 96/188/7 93/178/7 +f 89/180/12 94/405/12 93/181/12 +f 90/183/39 95/406/39 94/184/39 +f 92/186/11 96/407/11 95/187/11 +f 91/174/40 93/178/40 96/188/40 +f 97/190/5 99/204/5 100/191/5 +f 102/193/7 103/408/7 104/194/7 +f 97/196/10 102/409/10 101/197/10 +f 98/199/41 103/410/41 102/200/41 +f 100/202/9 104/411/9 103/203/9 +f 99/204/42 101/195/42 104/194/42 +f 107/205/5 108/220/5 106/206/5 +f 111/208/7 112/219/7 109/209/7 +f 105/211/6 110/412/6 109/212/6 +f 106/214/43 111/413/43 110/215/43 +f 108/217/8 112/414/8 111/218/8 +f 107/205/44 109/209/44 112/219/44 +f 125/221/18 127/236/18 123/222/18 +f 114/224/7 116/233/7 115/225/7 +f 113/226/15 115/225/15 119/227/15 +f 115/225/33 116/233/33 120/229/33 +f 114/224/34 113/226/34 117/231/34 +f 116/233/18 114/224/18 118/234/18 +f 127/236/34 128/242/34 124/237/34 +f 126/239/33 125/221/33 121/240/33 +f 128/242/15 126/239/15 122/243/15 +f 125/221/7 126/239/7 128/242/7 +f 141/245/17 143/260/17 139/246/17 +f 130/248/7 132/257/7 131/249/7 +f 129/250/16 131/249/16 135/251/16 +f 131/249/35 132/257/35 136/253/35 +f 130/248/36 129/250/36 133/255/36 +f 132/257/17 130/248/17 134/258/17 +f 143/260/36 144/266/36 140/261/36 +f 142/263/35 141/245/35 137/264/35 +f 144/266/16 142/263/16 138/267/16 +f 141/245/7 142/263/7 144/266/7 +f 157/269/14 159/284/14 155/270/14 +f 148/272/7 147/277/7 145/273/7 +f 145/273/13 147/277/13 151/275/13 +f 147/277/37 148/272/37 152/278/37 +f 146/274/38 145/273/38 149/280/38 +f 148/272/14 146/274/14 150/282/14 +f 159/284/38 160/290/38 156/285/38 +f 158/287/37 157/269/37 153/288/37 +f 160/290/13 158/287/13 154/291/13 +f 157/269/7 158/287/7 160/290/7 +f 173/293/12 175/308/12 171/294/12 +f 162/296/7 164/305/7 163/297/7 +f 161/298/11 163/297/11 167/299/11 +f 163/297/39 164/305/39 168/301/39 +f 162/296/40 161/298/40 165/303/40 +f 164/305/12 162/296/12 166/306/12 +f 175/308/40 176/314/40 172/309/40 +f 174/311/39 173/293/39 169/312/39 +f 176/314/11 174/311/11 170/315/11 +f 173/293/7 174/311/7 176/314/7 +f 189/317/10 191/332/10 187/318/10 +f 178/320/7 180/329/7 179/321/7 +f 177/322/9 179/321/9 183/323/9 +f 179/321/41 180/329/41 184/325/41 +f 178/320/42 177/322/42 181/327/42 +f 180/329/10 178/320/10 182/330/10 +f 191/332/42 192/338/42 188/333/42 +f 190/335/41 189/317/41 185/336/41 +f 192/338/9 190/335/9 186/339/9 +f 191/332/7 189/317/7 190/335/7 +f 205/341/6 207/356/6 203/342/6 +f 194/344/7 196/353/7 195/345/7 +f 193/346/8 195/345/8 199/347/8 +f 195/345/43 196/353/43 200/349/43 +f 194/344/44 193/346/44 197/351/44 +f 196/353/6 194/344/6 198/354/6 +f 207/356/44 208/362/44 204/357/44 +f 206/359/43 205/341/43 201/360/43 +f 208/362/8 206/359/8 202/363/8 +f 207/356/7 205/341/7 206/359/7 diff --git a/src/main/resources/assets/hbm/textures/blocks/rail_standard_straight.png b/src/main/resources/assets/hbm/textures/blocks/rail_standard_straight.png new file mode 100644 index 0000000000000000000000000000000000000000..649fbd388e9de62f307e51c25836daf08e0caa40 GIT binary patch literal 467 zcmV;^0WAKBP)U5Jf*I1wu)OOC&C|S3ufZP^=Ke7TjVbuCT}83Upht zog?HfDIyzihFJjl`_mA&j?K?{f0U%8j(nJ9O)cG=-z%elc zKfk>jh@xmVfn#C@thfkY5xp~zCJM%wS%h{$iisNlfc~msj3Fm+OvJ$S$NhykCT0M5 zq`JRqauUbH3>+nAVET9S#j&cYRyVRI1Gd7cRC7#1Cx0MK)MCVz6-9B2;~2v*Aj>lM zT$bhP7Cozht=q6iE(5mVP~zBLJ)H%0VeuIr%dI%uuYwk@>Q=(=v70bst*e!8bD&vWt` zwlw~yfg_J&cN*Gi_b(n4Ynq03BWK2L}Mqq5ggqS9K{Xnmmw9}YEwb*=bd`! z7|md2?=p`f#}@%Jn<7+&0L-qcN_mnpyw+{FEl`1PJy`b>5dz?``)dRYz$43JXJ=c7 tvju0M3SZ30#+5q*@a-pQU)WzFClTj9e*3LKoB#j-07*qoL Date: Mon, 5 Jun 2023 16:39:05 +0200 Subject: [PATCH 086/432] fixes, some more pollution stuff --- changelog | 3 +- .../handler/pollution/PollutionHandler.java | 101 +++++++++++++++--- .../hazard/type/HazardTypeHydroactive.java | 3 +- src/main/java/com/hbm/items/ModItems.java | 3 + .../hbm/items/tool/ItemPollutionDetector.java | 32 ++++++ .../java/com/hbm/items/tool/ItemWandD.java | 8 +- .../hbm/textures/items/pollution_detector.png | Bin 0 -> 241 bytes 7 files changed, 133 insertions(+), 17 deletions(-) create mode 100644 src/main/java/com/hbm/items/tool/ItemPollutionDetector.java create mode 100644 src/main/resources/assets/hbm/textures/items/pollution_detector.png diff --git a/changelog b/changelog index 494b463ba..f875507b2 100644 --- a/changelog +++ b/changelog @@ -14,4 +14,5 @@ * Paraffin wax can now also be used to make chlorated petroleum wax * Retextured schrabidium batteries, the cap is now black instead of red -## Fixed \ No newline at end of file +## Fixed +* Fixed hydroreactive stat not applying when an item is dropped in the rain diff --git a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java index 692ba83a2..fff803ed6 100644 --- a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java +++ b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java @@ -4,12 +4,17 @@ import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.HashMap; +import java.util.Locale; import java.util.Map.Entry; import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import cpw.mods.fml.common.gameevent.TickEvent; +import cpw.mods.fml.common.gameevent.TickEvent.Phase; +import cpw.mods.fml.relauncher.Side; import net.minecraft.nbt.CompressedStreamTools; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; +import net.minecraft.util.MathHelper; import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.world.World; import net.minecraft.world.WorldServer; @@ -19,7 +24,58 @@ public class PollutionHandler { public static final String fileName = "hbmpollution.dat"; public static HashMap perWorld = new HashMap(); + + /////////////////////// + /// UTILITY METHODS /// + /////////////////////// + public static void incrementPollution(World world, int x, int y, int z, PollutionType type, float amount) { + PollutionPerWorld ppw = perWorld.get(world); + if(ppw == null) return; + ChunkCoordIntPair pos = new ChunkCoordIntPair(x >> 6, z >> 6); + PollutionData data = ppw.pollution.get(pos); + if(data == null) { + data = new PollutionData(); + ppw.pollution.put(pos, data); + } + data.pollution[type.ordinal()] = MathHelper.clamp_float(data.pollution[type.ordinal()] + amount, 0F, 10_000F); + } + + public static void decrementPollution(World world, int x, int y, int z, PollutionType type, float amount) { + incrementPollution(world, x, y, z, type, -amount); + } + + public static void setPollution(World world, int x, int y, int z, PollutionType type, float amount) { + PollutionPerWorld ppw = perWorld.get(world); + if(ppw == null) return; + ChunkCoordIntPair pos = new ChunkCoordIntPair(x >> 6, z >> 6); + PollutionData data = ppw.pollution.get(pos); + if(data == null) { + data = new PollutionData(); + ppw.pollution.put(pos, data); + } + data.pollution[type.ordinal()] = amount; + } + + public static float getPollution(World world, int x, int y, int z, PollutionType type) { + PollutionPerWorld ppw = perWorld.get(world); + if(ppw == null) return 0F; + ChunkCoordIntPair pos = new ChunkCoordIntPair(x >> 6, z >> 6); + PollutionData data = ppw.pollution.get(pos); + if(data == null) return 0F; + return data.pollution[type.ordinal()]; + } + + public static PollutionData getPollutionData(World world, int x, int y, int z) { + PollutionPerWorld ppw = perWorld.get(world); + if(ppw == null) return null; + ChunkCoordIntPair pos = new ChunkCoordIntPair(x >> 6, z >> 6); + PollutionData data = ppw.pollution.get(pos); + return data; + } + ////////////////////// + /// EVENT HANDLING /// + ////////////////////// @SubscribeEvent public void onWorldLoad(WorldEvent.Load event) { if(!event.world.isRemote) { @@ -70,16 +126,33 @@ public class PollutionHandler { public String getDataDir(WorldServer world) { String dir = world.getSaveHandler().getWorldDirectory().getAbsolutePath(); - if(world.provider.dimensionId != 0) { dir += File.separator + "DIM" + world.provider.dimensionId; } - dir += File.separator + "data"; - return dir; } + + ////////////////////////// + /// SYSTEM UPDATE LOOP /// + ////////////////////////// + int eggTimer = 0; + @SubscribeEvent + public void updateSystem(TickEvent.ServerTickEvent event) { + + if(event.side == Side.SERVER && event.phase == Phase.END) { + + eggTimer++; + if(eggTimer < 60) return; + eggTimer = 0; + + // TBI + } + } + ////////////////////// + /// DATA STRUCTURE /// + ////////////////////// public static class PollutionPerWorld { public HashMap pollution = new HashMap(); @@ -118,22 +191,26 @@ public class PollutionHandler { } public static class PollutionData { - float soot; - float poison; - float heavyMetal; + public float[] pollution = new float[PollutionType.values().length]; public static PollutionData fromNBT(NBTTagCompound nbt) { PollutionData data = new PollutionData(); - data.soot = nbt.getFloat("soot"); - data.poison = nbt.getFloat("poison"); - data.heavyMetal = nbt.getFloat("heavyMetal"); + + for(int i = 0; i < PollutionType.values().length; i++) { + data.pollution[i] = nbt.getFloat(PollutionType.values()[i].name().toLowerCase(Locale.US)); + } + return data; } public void toNBT(NBTTagCompound nbt) { - nbt.setFloat("soot", soot); - nbt.setFloat("poison", poison); - nbt.setFloat("heavyMetal", heavyMetal); + for(int i = 0; i < PollutionType.values().length; i++) { + nbt.setFloat(PollutionType.values()[i].name().toLowerCase(Locale.US), pollution[i]); + } } } + + public static enum PollutionType { + SOOT, POISON, HEAVYMETAL, FALLOUT; + } } diff --git a/src/main/java/com/hbm/hazard/type/HazardTypeHydroactive.java b/src/main/java/com/hbm/hazard/type/HazardTypeHydroactive.java index 2a2dbb9e5..f7d6a3c49 100644 --- a/src/main/java/com/hbm/hazard/type/HazardTypeHydroactive.java +++ b/src/main/java/com/hbm/hazard/type/HazardTypeHydroactive.java @@ -6,7 +6,6 @@ import com.hbm.config.RadiationConfig; import com.hbm.hazard.modifier.HazardModifier; import com.hbm.util.I18nUtil; -import net.minecraft.block.material.Material; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; @@ -33,7 +32,7 @@ public class HazardTypeHydroactive extends HazardTypeBase { if(RadiationConfig.disableHydro) return; - if(item.worldObj.getBlock((int)Math.floor(item.posX), (int)Math.floor(item.posY), (int)Math.floor(item.posZ)).getMaterial() == Material.water) { + if(item.isWet()) { item.setDead(); item.worldObj.newExplosion(null, item.posX, item.posY + item.height * 0.5, item.posZ, level, false, true); } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index fc5d18874..816ecdfe4 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1249,6 +1249,7 @@ public class ModItems { public static Item dosimeter; public static Item geiger_counter; public static Item digamma_diagnostic; + public static Item pollution_detector; public static Item survey_scanner; public static Item mirror_tool; public static Item rbmk_tool; @@ -4575,6 +4576,7 @@ public class ModItems { dosimeter = new ItemDosimeter().setUnlocalizedName("dosimeter").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":dosimeter"); geiger_counter = new ItemGeigerCounter().setUnlocalizedName("geiger_counter").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":geiger_counter"); digamma_diagnostic = new ItemDigammaDiagnostic().setUnlocalizedName("digamma_diagnostic").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":digamma_diagnostic"); + pollution_detector = new ItemPollutionDetector().setUnlocalizedName("pollution_detector").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":pollution_detector"); survey_scanner = new ItemSurveyScanner().setUnlocalizedName("survey_scanner").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":survey_scanner"); mirror_tool = new ItemMirrorTool().setUnlocalizedName("mirror_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":mirror_tool"); rbmk_tool = new ItemRBMKTool().setUnlocalizedName("rbmk_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":rbmk_tool"); @@ -6725,6 +6727,7 @@ public class ModItems { GameRegistry.registerItem(dosimeter, dosimeter.getUnlocalizedName()); GameRegistry.registerItem(geiger_counter, geiger_counter.getUnlocalizedName()); GameRegistry.registerItem(digamma_diagnostic, digamma_diagnostic.getUnlocalizedName()); + GameRegistry.registerItem(pollution_detector, pollution_detector.getUnlocalizedName()); GameRegistry.registerItem(containment_box, containment_box.getUnlocalizedName()); //Keys and Locks diff --git a/src/main/java/com/hbm/items/tool/ItemPollutionDetector.java b/src/main/java/com/hbm/items/tool/ItemPollutionDetector.java new file mode 100644 index 000000000..ef45af10d --- /dev/null +++ b/src/main/java/com/hbm/items/tool/ItemPollutionDetector.java @@ -0,0 +1,32 @@ +package com.hbm.items.tool; + +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionData; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.PlayerInformPacket; +import com.hbm.util.ChatBuilder; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; + +public class ItemPollutionDetector extends Item { + + @Override + public void onUpdate(ItemStack stack, World world, Entity entity, int i, boolean bool) { + + if(!(entity instanceof EntityPlayerMP) || world.getTotalWorldTime() % 10 != 0) return; + + PollutionData data = PollutionHandler.getPollutionData(world, (int) Math.floor(entity.posX), (int) Math.floor(entity.posY), (int) Math.floor(entity.posZ)); + if(data == null) data = new PollutionData(); + + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Soot: " + data.pollution[PollutionType.SOOT.ordinal()]).color(EnumChatFormatting.RED).flush(), 100), (EntityPlayerMP) entity); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Poison: " + data.pollution[PollutionType.POISON.ordinal()]).color(EnumChatFormatting.RED).flush(), 101), (EntityPlayerMP) entity); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Heavy metal: " + data.pollution[PollutionType.HEAVYMETAL.ordinal()]).color(EnumChatFormatting.RED).flush(), 102), (EntityPlayerMP) entity); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Fallout: " + data.pollution[PollutionType.FALLOUT.ordinal()]).color(EnumChatFormatting.RED).flush(), 103), (EntityPlayerMP) entity); + } +} diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index 7ea8ad8b7..b165bae10 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -12,6 +12,8 @@ import com.hbm.explosion.vanillant.standard.BlockProcessorStandard; import com.hbm.explosion.vanillant.standard.EntityProcessorStandard; import com.hbm.explosion.vanillant.standard.ExplosionEffectStandard; import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.lib.Library; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.PlayerInformPacket; @@ -43,13 +45,15 @@ public class ItemWandD extends Item { if(pos != null) { - ExplosionVNT vnt = new ExplosionVNT(world, pos.hitVec.xCoord, pos.hitVec.yCoord, pos.hitVec.zCoord, 7); + /*ExplosionVNT vnt = new ExplosionVNT(world, pos.hitVec.xCoord, pos.hitVec.yCoord, pos.hitVec.zCoord, 7); vnt.setBlockAllocator(new BlockAllocatorBulkie(60)); vnt.setBlockProcessor(new BlockProcessorStandard().withBlockEffect(new BlockMutatorBulkie(ModBlocks.block_slag)).setNoDrop()); vnt.setEntityProcessor(new EntityProcessorStandard()); vnt.setPlayerProcessor(new PlayerProcessorStandard()); vnt.setSFX(new ExplosionEffectStandard()); - vnt.explode(); + vnt.explode();*/ + + PollutionHandler.incrementPollution(world, pos.blockX, pos.blockY, pos.blockZ, PollutionType.SOOT, 15); /*TimeAnalyzer.startCount("setBlock"); world.setBlock(pos.blockX, pos.blockY, pos.blockZ, Blocks.dirt); diff --git a/src/main/resources/assets/hbm/textures/items/pollution_detector.png b/src/main/resources/assets/hbm/textures/items/pollution_detector.png new file mode 100644 index 0000000000000000000000000000000000000000..b926f8086389a911a67c40c5028aa3f7c47a2d86 GIT binary patch literal 241 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf Date: Mon, 5 Jun 2023 21:50:33 +0200 Subject: [PATCH 087/432] Update .gitignore --- .gitignore | 6 ------ 1 file changed, 6 deletions(-) diff --git a/.gitignore b/.gitignore index ab2c2acdb..22222fc39 100644 --- a/.gitignore +++ b/.gitignore @@ -26,9 +26,3 @@ run # Changelog backup /changelog.bak -CREDITS-fml.txt -forge-1.7.10-10.13.4.1614-1.7.10-changelog.txt -LICENSE-fml.txt -MinecraftForge-Credits.txt -MinecraftForge-License.txt -README.txt From 41444173d23a805d16853b35ce83a0e87e82a3ce Mon Sep 17 00:00:00 2001 From: Bob Date: Mon, 5 Jun 2023 21:50:45 +0200 Subject: [PATCH 088/432] fixed liquefactor being stupid --- changelog | 1 + gradle.properties | 2 +- src/main/java/com/hbm/blocks/ModBlocks.java | 10 +++++----- src/main/java/com/hbm/inventory/RecipesCommon.java | 1 - .../com/hbm/inventory/recipes/LiquefactionRecipes.java | 3 +-- src/main/java/com/hbm/lib/RefStrings.java | 2 +- .../machine/oil/TileEntityMachineLiquefactor.java | 2 +- 7 files changed, 10 insertions(+), 11 deletions(-) diff --git a/changelog b/changelog index f875507b2..9712e87f7 100644 --- a/changelog +++ b/changelog @@ -16,3 +16,4 @@ ## Fixed * Fixed hydroreactive stat not applying when an item is dropped in the rain +* Fixed the liquefactor not working with ore dictionary recipes diff --git a/gradle.properties b/gradle.properties index a7d9d6e1a..c314b14dd 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4613 +mod_build_number=4621 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index b3d95c9c2..c6b28f2b5 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -2134,11 +2134,11 @@ public class ModBlocks { rail_narrow = new RailGeneric().setBlockName("rail_narrow").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_narrow"); rail_highspeed = new RailGeneric().setMaxSpeed(1F).setFlexible(false).setBlockName("rail_highspeed").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_highspeed"); rail_booster = new RailBooster().setBlockName("rail_booster").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_booster"); - rail_narrow_straight = new RailNarrowStraight().setBlockName("rail_narrow_straight").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_narrow_neo"); - rail_narrow_curve = new RailNarrowCurve().setBlockName("rail_narrow_curve").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_narrow_neo"); - rail_large_straight = new RailStandardStraight().setBlockName("rail_large_straight").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); - rail_large_curve = new RailStandardCurve().setBlockName("rail_large_curve").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); - rail_large_buffer = new RailStandardBuffer().setBlockName("rail_large_buffer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(CreativeTabs.tabTransport).setBlockTextureName(RefStrings.MODID + ":block_steel"); + rail_narrow_straight = new RailNarrowStraight().setBlockName("rail_narrow_straight").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_narrow_neo"); + rail_narrow_curve = new RailNarrowCurve().setBlockName("rail_narrow_curve").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_narrow_neo"); + rail_large_straight = new RailStandardStraight().setBlockName("rail_large_straight").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); + rail_large_curve = new RailStandardCurve().setBlockName("rail_large_curve").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); + rail_large_buffer = new RailStandardBuffer().setBlockName("rail_large_buffer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); crate = new BlockCrate(Material.wood).setBlockName("crate").setStepSound(Block.soundTypeWood).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.consumableTab).setBlockTextureName(RefStrings.MODID + ":crate"); crate_weapon = new BlockCrate(Material.wood).setBlockName("crate_weapon").setStepSound(Block.soundTypeWood).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.consumableTab).setBlockTextureName(RefStrings.MODID + ":crate_weapon"); diff --git a/src/main/java/com/hbm/inventory/RecipesCommon.java b/src/main/java/com/hbm/inventory/RecipesCommon.java index 2b1191f55..9e963743b 100644 --- a/src/main/java/com/hbm/inventory/RecipesCommon.java +++ b/src/main/java/com/hbm/inventory/RecipesCommon.java @@ -169,7 +169,6 @@ public class RecipesCommon { String[] entries = new String[ids.length]; for(int i = 0; i < ids.length; i++) { - entries[i] = OreDictionary.getOreName(ids[i]); } diff --git a/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java b/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java index 7a663f90d..43ee798ca 100644 --- a/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java @@ -80,13 +80,12 @@ public class LiquefactionRecipes extends SerializableRecipe { if(recipes.containsKey(comp)) return recipes.get(comp); + String[] dictKeys = comp.getDictKeys(); comp = new ComparableStack(stack.getItem(), 1, OreDictionary.WILDCARD_VALUE); if(recipes.containsKey(comp)) return recipes.get(comp); - String[] dictKeys = comp.getDictKeys(); - for(String key : dictKeys) { if(recipes.containsKey(key)) diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 5416fa4d3..3d65e0ba6 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4613)"; + public static final String VERSION = "1.0.27 BETA (4621)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java index 99f9d8bf0..edfeeff30 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java @@ -67,7 +67,7 @@ public class TileEntityMachineLiquefactor extends TileEntityMachineBase implemen int power = Math.min(UpgradeManager.getLevel(UpgradeType.POWER), 3); this.processTime = processTimeBase - (processTimeBase / 4) * speed; - this.usage = (usageBase + (usageBase * speed)) / (power + 1); + this.usage = (usageBase + (usageBase * speed)) / (power + 1); if(this.canProcess()) this.process(); From 72078d6b032ec014ba43303076e8f57e97fd6bf6 Mon Sep 17 00:00:00 2001 From: Bob Date: Mon, 5 Jun 2023 21:58:16 +0200 Subject: [PATCH 089/432] better safe than sorry --- changelog | 2 ++ src/main/java/com/hbm/main/MainRegistry.java | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/changelog b/changelog index 9712e87f7..2fdd4c818 100644 --- a/changelog +++ b/changelog @@ -1,6 +1,8 @@ ## Added * Laminate glass * A new variant of reinforced glass with higher blast resistance + * Also comes in pane shape +* Reinforced glass panes * Chlorocalcite * A new bedrock ore, the powder can be heated in the combination furnace to make calcium and chlorine * Blocks for cadmium, TC and CD alloy diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 19c93acf9..2f1baa02a 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -905,9 +905,9 @@ public class MainRegistry { MinecraftForge.EVENT_BUS.register(radiationSystem); FMLCommonHandler.instance().bus().register(radiationSystem); - PollutionHandler pollution = new PollutionHandler(); + /*PollutionHandler pollution = new PollutionHandler(); MinecraftForge.EVENT_BUS.register(pollution); - FMLCommonHandler.instance().bus().register(pollution); + FMLCommonHandler.instance().bus().register(pollution);*/ if(event.getSide() == Side.CLIENT) { HbmKeybinds.register(); From 32ae24823a8d55837a4bfcf97c0893efda0294e0 Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 6 Jun 2023 15:26:36 +0200 Subject: [PATCH 090/432] soot fog, hostile mob buffs, tiny mass storage, comparator output --- src/main/java/com/hbm/blocks/ModBlocks.java | 7 +- .../com/hbm/blocks/generic/BlockNTMGlass.java | 4 + .../hbm/blocks/generic/BlockNTMGlassPane.java | 37 +++++---- .../hbm/blocks/machine/BlockMassStorage.java | 25 ++++-- .../handler/pollution/PollutionHandler.java | 78 +++++++++++++++++- .../java/com/hbm/main/CraftingManager.java | 1 + src/main/java/com/hbm/main/MainRegistry.java | 4 +- .../com/hbm/main/ModEventHandlerRenderer.java | 32 +++++++ .../java/com/hbm/packet/PermaSyncHandler.java | 18 ++++ .../machine/TileEntityFurnaceCombination.java | 4 + .../machine/TileEntityFurnaceIron.java | 3 + .../machine/TileEntityFurnaceSteel.java | 3 + .../machine/oil/TileEntityMachineCoker.java | 4 + .../oil/TileEntityMachineGasFlare.java | 4 + .../oil/TileEntityMachineRefinery.java | 4 + .../storage/TileEntityMassStorage.java | 10 +++ .../blocks/mass_storage_side_wood.png | Bin 0 -> 526 bytes .../textures/blocks/mass_storage_top_wood.png | Bin 0 -> 545 bytes 18 files changed, 210 insertions(+), 28 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/blocks/mass_storage_side_wood.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/mass_storage_top_wood.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index b93a0a4ec..006621f66 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -31,7 +31,6 @@ import com.hbm.tileentity.machine.storage.TileEntityFileCabinet; import cpw.mods.fml.common.registry.GameRegistry; import net.minecraft.block.Block; import net.minecraft.block.BlockFalling; -import net.minecraft.block.BlockPane; import net.minecraft.block.material.*; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.ItemBlock; @@ -1510,13 +1509,13 @@ public class ModBlocks { reinforced_brick = new BlockGeneric(Material.rock).setBlockName("reinforced_brick").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(8000.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_brick"); reinforced_glass = new BlockNTMGlassCT(0, RefStrings.MODID + ":reinforced_glass", Material.rock).setBlockName("reinforced_glass").setCreativeTab(MainRegistry.blockTab).setLightOpacity(0).setHardness(15.0F).setResistance(200.0F); - reinforced_glass_pane = new BlockNTMGlassPane(1, RefStrings.MODID + ":reinforced_glass_pane",RefStrings.MODID + ":reinforced_glass_pane_edge", Material.rock, false).setBlockName("reinforced_glass_pane").setCreativeTab(MainRegistry.blockTab).setLightOpacity(1).setHardness(15.0F).setResistance(200.0F); + reinforced_glass_pane = new BlockNTMGlassPane(0, RefStrings.MODID + ":reinforced_glass_pane", RefStrings.MODID + ":reinforced_glass_pane_edge", Material.rock, false).setBlockName("reinforced_glass_pane").setCreativeTab(MainRegistry.blockTab).setLightOpacity(1).setHardness(15.0F).setResistance(200.0F); reinforced_light = new BlockGeneric(Material.rock).setBlockName("reinforced_light").setCreativeTab(MainRegistry.blockTab).setLightLevel(1.0F).setHardness(15.0F).setResistance(300.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_light"); reinforced_sand = new BlockGeneric(Material.rock).setBlockName("reinforced_sand").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(400.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_sand"); reinforced_lamp_off = new ReinforcedLamp(Material.rock, false).setBlockName("reinforced_lamp_off").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(300.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_lamp_off"); reinforced_lamp_on = new ReinforcedLamp(Material.rock, true).setBlockName("reinforced_lamp_on").setHardness(15.0F).setResistance(300.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_lamp_on"); - reinforced_laminate = new BlockNTMGlassCT(1, RefStrings.MODID + ":reinforced_laminate", Material.rock).setBlockName("reinforced_laminate").setCreativeTab(MainRegistry.blockTab).setLightOpacity(0).setHardness(15.0F).setResistance(1000.0F); - reinforced_laminate_pane = new BlockNTMGlassPane(1, RefStrings.MODID + ":reinforced_laminate_pane",RefStrings.MODID + ":reinforced_laminate_pane_edge", Material.rock, false).setBlockName("reinforced_laminate_pane").setCreativeTab(MainRegistry.blockTab).setLightOpacity(1).setHardness(15.0F).setResistance(1000.0F); + reinforced_laminate = new BlockNTMGlassCT(1, RefStrings.MODID + ":reinforced_laminate", Material.rock, true).setBlockName("reinforced_laminate").setCreativeTab(MainRegistry.blockTab).setLightOpacity(0).setHardness(15.0F).setResistance(1000.0F); + reinforced_laminate_pane = new BlockNTMGlassPane(1, RefStrings.MODID + ":reinforced_laminate_pane", RefStrings.MODID + ":reinforced_laminate_pane_edge", Material.rock, true).setBlockName("reinforced_laminate_pane").setCreativeTab(MainRegistry.blockTab).setLightOpacity(1).setHardness(15.0F).setResistance(1000.0F); lamp_tritium_green_off = new ReinforcedLamp(Material.redstoneLight, false).setBlockName("lamp_tritium_green_off").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":lamp_tritium_green_off"); lamp_tritium_green_on = new ReinforcedLamp(Material.redstoneLight, true).setBlockName("lamp_tritium_green_on").setStepSound(Block.soundTypeGlass).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":lamp_tritium_green_on"); diff --git a/src/main/java/com/hbm/blocks/generic/BlockNTMGlass.java b/src/main/java/com/hbm/blocks/generic/BlockNTMGlass.java index 440352102..acfdc1521 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockNTMGlass.java +++ b/src/main/java/com/hbm/blocks/generic/BlockNTMGlass.java @@ -22,19 +22,23 @@ public class BlockNTMGlass extends BlockBreakable { this.doesDrop = doesDrop; } + @Override public int quantityDropped(Random rand) { return doesDrop ? 1 : 0; } + @Override @SideOnly(Side.CLIENT) public int getRenderBlockPass() { return renderLayer; } + @Override public boolean renderAsNormalBlock() { return false; } + @Override protected boolean canSilkHarvest() { return true; } diff --git a/src/main/java/com/hbm/blocks/generic/BlockNTMGlassPane.java b/src/main/java/com/hbm/blocks/generic/BlockNTMGlassPane.java index 7246191aa..204064e52 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockNTMGlassPane.java +++ b/src/main/java/com/hbm/blocks/generic/BlockNTMGlassPane.java @@ -1,5 +1,10 @@ package com.hbm.blocks.generic; +import java.util.Random; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; import net.minecraft.block.BlockPane; import net.minecraft.block.material.Material; import net.minecraft.world.IBlockAccess; @@ -25,21 +30,23 @@ public class BlockNTMGlassPane extends BlockPane this.doesDrop = doesDrop; this.opaque = true; this.setLightOpacity(1); - - } - - public boolean canPaneConnectTo(IBlockAccess world, int x, int y, int z, ForgeDirection dir) - { - - if (getIdFromBlock(world.getBlock(x,y,z)) == 0) - return false; - else - return true; - - /*return canPaneConnectToBlock(world.getBlock(x, y, z)) || - world.isSideSolid(x, y, z, dir.getOpposite(), false);*/ - - } + + @Override + public boolean canPaneConnectTo(IBlockAccess world, int x, int y, int z, ForgeDirection dir) { + Block b = world.getBlock(x, y, z); + return super.canPaneConnectTo(world, x, y, z, dir) || b instanceof BlockNTMGlass; + } + + @Override + @SideOnly(Side.CLIENT) + public int getRenderBlockPass() { + return renderLayer; + } + + @Override + public int quantityDropped(Random rand) { + return doesDrop ? 1 : 0; + } } diff --git a/src/main/java/com/hbm/blocks/machine/BlockMassStorage.java b/src/main/java/com/hbm/blocks/machine/BlockMassStorage.java index 519011857..a86b9a8db 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockMassStorage.java +++ b/src/main/java/com/hbm/blocks/machine/BlockMassStorage.java @@ -47,8 +47,8 @@ public class BlockMassStorage extends BlockContainer implements IBlockMulti, ILo @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconRegister) { - this.iconTop = new IIcon[3]; - this.iconSide = new IIcon[3]; + this.iconTop = new IIcon[4]; + this.iconSide = new IIcon[4]; this.iconTop[0] = iconRegister.registerIcon(RefStrings.MODID + ":mass_storage_top_iron"); this.iconSide[0] = iconRegister.registerIcon(RefStrings.MODID + ":mass_storage_side_iron"); @@ -56,14 +56,17 @@ public class BlockMassStorage extends BlockContainer implements IBlockMulti, ILo this.iconSide[1] = iconRegister.registerIcon(RefStrings.MODID + ":mass_storage_side_desh"); this.iconTop[2] = iconRegister.registerIcon(RefStrings.MODID + ":mass_storage_top"); this.iconSide[2] = iconRegister.registerIcon(RefStrings.MODID + ":mass_storage_side"); + this.iconTop[2] = iconRegister.registerIcon(RefStrings.MODID + ":mass_storage_top_wood"); + this.iconSide[2] = iconRegister.registerIcon(RefStrings.MODID + ":mass_storage_side_wood"); } @Override @SideOnly(Side.CLIENT) public void getSubBlocks(Item item, CreativeTabs tab, List list) { - for(int i = 0; i < getSubCount(); ++i) { - list.add(new ItemStack(item, 1, i)); - } + list.add(new ItemStack(item, 1, 3)); + list.add(new ItemStack(item, 1, 0)); + list.add(new ItemStack(item, 1, 1)); + list.add(new ItemStack(item, 1, 2)); } @Override @@ -84,7 +87,7 @@ public class BlockMassStorage extends BlockContainer implements IBlockMulti, ILo } public int getCapacity(int meta) { - return meta == 0 ? 10_000 : meta == 1 ? 100_000 : meta == 2 ? 1_000_000 : 0; + return meta == 3 ? 100 : meta == 0 ? 10_000 : meta == 1 ? 100_000 : meta == 2 ? 1_000_000 : 0; } @Override @@ -286,4 +289,14 @@ public class BlockMassStorage extends BlockContainer implements IBlockMulti, ILo list.add(String.format("%,d", stack.stackTagCompound.getInteger("stack")) + " / " + String.format("%,d", getCapacity(stack.getItemDamage()))); } } + + @Override + public boolean hasComparatorInputOverride() { + return true; + } + + @Override + public int getComparatorInputOverride(World world, int x, int y, int z, int side) { + return ((TileEntityMassStorage) world.getTileEntity(x, y, z)).redstone; + } } diff --git a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java index fff803ed6..1881e1019 100644 --- a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java +++ b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java @@ -11,6 +11,10 @@ import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.TickEvent; import cpw.mods.fml.common.gameevent.TickEvent.Phase; import cpw.mods.fml.relauncher.Side; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.attributes.AttributeModifier; +import net.minecraft.entity.monster.IMob; import net.minecraft.nbt.CompressedStreamTools; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; @@ -18,6 +22,7 @@ import net.minecraft.util.MathHelper; import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.world.World; import net.minecraft.world.WorldServer; +import net.minecraftforge.event.entity.living.LivingSpawnEvent; import net.minecraftforge.event.world.WorldEvent; public class PollutionHandler { @@ -25,6 +30,9 @@ public class PollutionHandler { public static final String fileName = "hbmpollution.dat"; public static HashMap perWorld = new HashMap(); + /** Baserate of soot generation for a furnace-equivalent machine per second */ + public static final float SOOT_PER_SECOND = 1F / 25F; + /////////////////////// /// UTILITY METHODS /// /////////////////////// @@ -145,8 +153,52 @@ public class PollutionHandler { eggTimer++; if(eggTimer < 60) return; eggTimer = 0; + - // TBI + for(Entry entry : perWorld.entrySet()) { + HashMap newPollution = new HashMap(); + + for(Entry chunk : entry.getValue().pollution.entrySet()) { + int x = chunk.getKey().chunkXPos; + int z = chunk.getKey().chunkZPos; + PollutionData data = chunk.getValue(); + + float[] pollutionForNeightbors = new float[PollutionType.values().length]; + int S = PollutionType.SOOT.ordinal(); + int H = PollutionType.HEAVYMETAL.ordinal(); + + /* CALCULATION */ + if(data.pollution[S] > 15) { + pollutionForNeightbors[S] = data.pollution[S] * 0.05F; + data.pollution[S] *= 0.8F; + } else { + data.pollution[S] *= 0.99F; + } + + data.pollution[H] *= 0.999F; + + /* SPREADING */ + //apply new data to self + PollutionData newData = newPollution.get(chunk.getKey()); + if(newData == null) newData = new PollutionData(); + + for(int i = 0; i < newData.pollution.length; i++) newData.pollution[i] += data.pollution[i]; + newPollution.put(chunk.getKey(), newData); + + //apply neighbor data to neighboring chunks + int[][] offsets = new int[][] {{1, 0}, {-1, 0}, {0, 1}, {0, -1}}; + for(int[] offset : offsets) { + ChunkCoordIntPair offPos = new ChunkCoordIntPair(x + offset[0], z + offset[1]); + PollutionData offsetData = newPollution.get(offPos); + if(offsetData == null) offsetData = new PollutionData(); + + for(int i = 0; i < offsetData.pollution.length; i++) offsetData.pollution[i] += pollutionForNeightbors[i]; + newPollution.put(offPos, offsetData); + } + } + + entry.getValue().pollution = newPollution; + } } } @@ -213,4 +265,28 @@ public class PollutionHandler { public static enum PollutionType { SOOT, POISON, HEAVYMETAL, FALLOUT; } + + /////////////////// + /// MOB EFFECTS /// + /////////////////// + + + @SubscribeEvent + public void decorateMob(LivingSpawnEvent event) { + + World world = event.world; + if(world.isRemote) return; + EntityLivingBase living = event.entityLiving; + + PollutionData data = getPollutionData(world, (int) Math.floor(event.x), (int) Math.floor(event.y), (int) Math.floor(event.z)); + if(data == null) return; + + if(living instanceof IMob) { + + if(data.pollution[PollutionType.SOOT.ordinal()] > 15) { + if(living.getEntityAttribute(SharedMonsterAttributes.maxHealth) != null) living.getEntityAttribute(SharedMonsterAttributes.maxHealth).applyModifier(new AttributeModifier("Soot Anger Health Increase", 2D, 1)); + if(living.getEntityAttribute(SharedMonsterAttributes.attackDamage) != null) living.getEntityAttribute(SharedMonsterAttributes.attackDamage).applyModifier(new AttributeModifier("Soot Anger Damage Increase", 1.5D, 1)); + } + } + } } diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 09b4a3f1e..319bf0e9d 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -295,6 +295,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.mass_storage, 1, 0), new Object[] { "ICI", "CLC", "ICI", 'I', TI.ingot(), 'C', ModBlocks.crate_steel, 'L', ModItems.circuit_copper }); addRecipeAuto(new ItemStack(ModBlocks.mass_storage, 1, 1), new Object[] { "PCP", "PMP", "PPP", 'P', DESH.ingot(), 'C', ModItems.circuit_red_copper, 'M', new ItemStack(ModBlocks.mass_storage, 1, 0) }); addRecipeAuto(new ItemStack(ModBlocks.mass_storage, 1, 2), new Object[] { "PCP", "PMP", "PPP", 'P', ANY_RESISTANTALLOY.ingot(), 'C', ModItems.circuit_gold, 'M', new ItemStack(ModBlocks.mass_storage, 1, 1) }); + addRecipeAuto(new ItemStack(ModBlocks.mass_storage, 1, 2), new Object[] { "PPP", "PIP", "PPP", 'P', KEY_PLANKS, 'I', IRON.plate() }); addRecipeAuto(new ItemStack(ModBlocks.machine_autocrafter, 1), new Object[] { "SCS", "MWM", "SCS", 'S', STEEL.plate(), 'C', ModItems.circuit_copper, 'M', ModItems.motor, 'W', Blocks.crafting_table }); addRecipeAuto(new ItemStack(ModBlocks.machine_waste_drum, 1), new Object[] { "LRL", "BRB", "LRL", 'L', PB.ingot(), 'B', Blocks.iron_bars, 'R', ModItems.rod_quad_empty }); addRecipeAuto(new ItemStack(ModBlocks.machine_press, 1), new Object[] { "IRI", "IPI", "IBI", 'I', IRON.ingot(), 'R', Blocks.furnace, 'B', IRON.block(), 'P', Blocks.piston }); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 2f1baa02a..19c93acf9 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -905,9 +905,9 @@ public class MainRegistry { MinecraftForge.EVENT_BUS.register(radiationSystem); FMLCommonHandler.instance().bus().register(radiationSystem); - /*PollutionHandler pollution = new PollutionHandler(); + PollutionHandler pollution = new PollutionHandler(); MinecraftForge.EVENT_BUS.register(pollution); - FMLCommonHandler.instance().bus().register(pollution);*/ + FMLCommonHandler.instance().bus().register(pollution); if(event.getSide() == Side.CLIENT) { HbmKeybinds.register(); diff --git a/src/main/java/com/hbm/main/ModEventHandlerRenderer.java b/src/main/java/com/hbm/main/ModEventHandlerRenderer.java index 1c629ee3f..85e7544e4 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerRenderer.java +++ b/src/main/java/com/hbm/main/ModEventHandlerRenderer.java @@ -3,14 +3,17 @@ package com.hbm.main; import org.lwjgl.opengl.GL11; import com.hbm.blocks.ICustomBlockHighlight; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.items.armor.IArmorDisableModel; import com.hbm.items.armor.IArmorDisableModel.EnumPlayerPart; import com.hbm.packet.PermaSyncHandler; import com.hbm.render.model.ModelMan; +import cpw.mods.fml.common.eventhandler.Event.Result; import cpw.mods.fml.common.eventhandler.EventPriority; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import net.minecraft.block.Block; +import net.minecraft.client.Minecraft; import net.minecraft.client.model.ModelRenderer; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.entity.RenderManager; @@ -23,6 +26,9 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.MathHelper; import net.minecraft.util.MovingObjectPosition; import net.minecraftforge.client.event.DrawBlockHighlightEvent; +import net.minecraftforge.client.event.EntityViewRenderEvent.FogColors; +import net.minecraftforge.client.event.EntityViewRenderEvent.FogDensity; +import net.minecraftforge.client.event.EntityViewRenderEvent.RenderFogEvent; import net.minecraftforge.client.event.RenderPlayerEvent; public class ModEventHandlerRenderer { @@ -318,4 +324,30 @@ public class ModEventHandlerRenderer { GL11.glPopMatrix(); } }*/ + + @SubscribeEvent + public void setupFog(RenderFogEvent event) { + } + + @SubscribeEvent(priority = EventPriority.LOW) + public void thickenFog(FogDensity event) { + float soot = PermaSyncHandler.pollution[PollutionType.SOOT.ordinal()]; + if(soot > 10) { + //event.density = Math.min((soot - 5) * 0.01F, 0.5F); + GL11.glFogf(GL11.GL_FOG_START, 0.0F); + float farPlaneDistance = (float) (Minecraft.getMinecraft().gameSettings.renderDistanceChunks * 16); + GL11.glFogf(GL11.GL_FOG_END, Math.max(farPlaneDistance * 0.8F / (soot * 0.05F), 5F)); + event.setCanceled(true); + } + } + + @SubscribeEvent(priority = EventPriority.LOW) + public void tintFog(FogColors event) { + float soot = PermaSyncHandler.pollution[PollutionType.SOOT.ordinal()]; + if(soot > 10) { + event.red = 0.15F; + event.green = 0.15F; + event.blue = 0.15F; + } + } } diff --git a/src/main/java/com/hbm/packet/PermaSyncHandler.java b/src/main/java/com/hbm/packet/PermaSyncHandler.java index 6d15243be..bcd566e72 100644 --- a/src/main/java/com/hbm/packet/PermaSyncHandler.java +++ b/src/main/java/com/hbm/packet/PermaSyncHandler.java @@ -5,6 +5,9 @@ import java.util.HashSet; import java.util.List; import com.hbm.handler.ImpactWorldHandler; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionData; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.potion.HbmPotion; import com.hbm.saveddata.TomSaveData; @@ -21,6 +24,7 @@ import net.minecraft.world.World; public class PermaSyncHandler { public static HashSet boykissers = new HashSet(); + public static float[] pollution = new float[PollutionType.values().length]; public static void writePacket(ByteBuf buf, World world, EntityPlayerMP player) { @@ -42,6 +46,14 @@ public class PermaSyncHandler { buf.writeShort((short) ids.size()); for(Integer i : ids) buf.writeInt(i); /// SHITTY MEMES /// + + /// POLLUTION /// + PollutionData pollution = PollutionHandler.getPollutionData(world, (int) Math.floor(player.posX), (int) Math.floor(player.posY), (int) Math.floor(player.posZ)); + if(pollution == null) pollution = new PollutionData(); + for(int i = 0; i < PollutionType.values().length; i++) { + buf.writeFloat(pollution.pollution[i]); + } + /// POLLUTION /// } public static void readPacket(ByteBuf buf, World world, EntityPlayer player) { @@ -58,5 +70,11 @@ public class PermaSyncHandler { int ids = buf.readShort(); for(int i = 0; i < ids; i++) boykissers.add(buf.readInt()); /// SHITTY MEMES /// + + /// POLLUTION /// + for(int i = 0; i < PollutionType.values().length; i++) { + pollution[i] = buf.readFloat(); + } + /// POLLUTION /// } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceCombination.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceCombination.java index a35eaa70d..aeb9e670c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceCombination.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceCombination.java @@ -2,6 +2,8 @@ package com.hbm.tileentity.machine; import java.util.List; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.inventory.FluidStack; import com.hbm.inventory.container.ContainerFurnaceCombo; import com.hbm.inventory.fluid.Fluids; @@ -119,6 +121,8 @@ public class TileEntityFurnaceCombination extends TileEntityMachineBase implemen if(worldObj.getTotalWorldTime() % 10 == 0) this.worldObj.playSoundEffect(this.xCoord, this.yCoord + 1, this.zCoord, "hbm:weapon.flamethrowerShoot", 0.25F, 0.5F); } + + if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * 3); } else { this.progress = 0; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java index 2fde9b86e..0a5dfbd92 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java @@ -1,5 +1,7 @@ package com.hbm.tileentity.machine; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerFurnaceIron; import com.hbm.inventory.gui.GUIFurnaceIron; @@ -104,6 +106,7 @@ public class TileEntityFurnaceIron extends TileEntityMachineBase implements IGUI this.progress = 0; this.markDirty(); } + if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND); } else { this.progress = 0; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceSteel.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceSteel.java index ff6bffa73..77d212d9e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceSteel.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceSteel.java @@ -2,6 +2,8 @@ package com.hbm.tileentity.machine; import java.util.List; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.inventory.container.ContainerFurnaceSteel; import com.hbm.inventory.gui.GUIFurnaceSteel; import com.hbm.tileentity.IGUIProvider; @@ -67,6 +69,7 @@ public class TileEntityFurnaceSteel extends TileEntityMachineBase implements IGU progress[i] += burn; this.heat -= burn; this.wasOn = true; + if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * 2); } lastItems[i] = slots[i]; diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCoker.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCoker.java index 65db88540..f2adcb771 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCoker.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCoker.java @@ -1,5 +1,7 @@ package com.hbm.tileentity.machine.oil; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.inventory.FluidStack; import com.hbm.inventory.container.ContainerMachineCoker; import com.hbm.inventory.fluid.Fluids; @@ -98,6 +100,8 @@ public class TileEntityMachineCoker extends TileEntityMachineBase implements IFl tanks[0].setFill(tanks[0].getFill() - fillReq); } } + + if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * 20); } for(DirPos pos : getConPos()) { diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java index e340df841..d305dc9b9 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java @@ -2,6 +2,8 @@ package com.hbm.tileentity.machine.oil; import java.util.List; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.interfaces.IControlReceiver; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; @@ -157,6 +159,8 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements if(worldObj.getTotalWorldTime() % 3 == 0) this.worldObj.playSoundEffect(this.xCoord, this.yCoord + 11, this.zCoord, "hbm:weapon.flamethrowerShoot", 1.5F, 0.75F); + + if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * 5); } } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java index ee2d7b79a..d36a3370d 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java @@ -7,6 +7,8 @@ import java.util.Random; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; import com.hbm.handler.MultiblockHandlerXR; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.interfaces.IControlReceiver; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; @@ -319,6 +321,8 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements this.markDirty(); } + + if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * 5); this.power -= 5; } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMassStorage.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMassStorage.java index 2b38ee9a0..61af46838 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMassStorage.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMassStorage.java @@ -21,6 +21,7 @@ public class TileEntityMassStorage extends TileEntityCrateBase implements INBTPa private int stack = 0; public boolean output = false; private int capacity; + public int redstone = 0; @SideOnly(Side.CLIENT) public ItemStack type; @@ -43,6 +44,13 @@ public class TileEntityMassStorage extends TileEntityCrateBase implements INBTPa if(!worldObj.isRemote) { + int newRed = this.getStockpile() * 15 / this.capacity; + + if(newRed != this.redstone) { + this.redstone = newRed; + this.markDirty(); + } + if(slots[0] != null && slots[0].getItem() == ModItems.fluid_barrel_infinite) { this.stack = this.getCapacity(); } @@ -132,6 +140,7 @@ public class TileEntityMassStorage extends TileEntityCrateBase implements INBTPa this.stack = nbt.getInteger("stack"); this.output = nbt.getBoolean("output"); this.capacity = nbt.getInteger("capacity"); + this.redstone = nbt.getByte("redstone"); if(this.capacity <= 0) { this.capacity = 10_000; @@ -144,6 +153,7 @@ public class TileEntityMassStorage extends TileEntityCrateBase implements INBTPa nbt.setInteger("stack", stack); nbt.setBoolean("output", output); nbt.setInteger("capacity", capacity); + nbt.setByte("redstone", (byte) redstone); } @Override diff --git a/src/main/resources/assets/hbm/textures/blocks/mass_storage_side_wood.png b/src/main/resources/assets/hbm/textures/blocks/mass_storage_side_wood.png new file mode 100644 index 0000000000000000000000000000000000000000..d71ef7d610b6ae2c8afbaff54700d92b6ba38866 GIT binary patch literal 526 zcmV+p0`dKcP)FnlHvx!;Nv^=R9pYhvZ#$T#$;;P2G6I18AjGn+u^)s0 zl&vKIJ_TJis;dBq{wdX4D*y!T7=Xgg_U6nXi)nL;!b)Kdv0LFB}ll#jw!&AB+#rX)W@F!40N|`GHP)Y&d*(Ks(f*6kg zGJ=Zdvr&cJdW7q`x$bjh(+L&NXEX$eGJ>}szS8apz|{(*lo*CFN1~L%vrFv0J4B8Z zaOT0|dus&k_(}z)X~J~ER&8D5ivY*Hm}nq$=f(LKJ-CQ3LUtg+Qh>TtfhL_!=I}*; zy~dHA=`s&4D%firanc_FZbq zz_;)Pd;=d~+zoC7DU^{}C^I0K>7v$5Ei~yg*YuAeo4N?OZHb`xtuB}EoP6hZPYU~c zyL0|iQ52y8yr`FmtULgId(k& zO6D2>pWHt8w{8LujxN}`vjKqH4FD+Y@9oYlJp9p=(J%Y2u`SDD!LY|Wb|f%0gOzH6r!(mZJcs5c(Skm&? Date: Tue, 6 Jun 2023 23:01:51 +0200 Subject: [PATCH 091/432] minor fixes --- src/main/java/com/hbm/blocks/machine/BlockMassStorage.java | 6 +++--- src/main/java/com/hbm/inventory/OreDictManager.java | 4 ++-- src/main/java/com/hbm/main/CraftingManager.java | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/hbm/blocks/machine/BlockMassStorage.java b/src/main/java/com/hbm/blocks/machine/BlockMassStorage.java index a86b9a8db..d8e2f6773 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockMassStorage.java +++ b/src/main/java/com/hbm/blocks/machine/BlockMassStorage.java @@ -56,8 +56,8 @@ public class BlockMassStorage extends BlockContainer implements IBlockMulti, ILo this.iconSide[1] = iconRegister.registerIcon(RefStrings.MODID + ":mass_storage_side_desh"); this.iconTop[2] = iconRegister.registerIcon(RefStrings.MODID + ":mass_storage_top"); this.iconSide[2] = iconRegister.registerIcon(RefStrings.MODID + ":mass_storage_side"); - this.iconTop[2] = iconRegister.registerIcon(RefStrings.MODID + ":mass_storage_top_wood"); - this.iconSide[2] = iconRegister.registerIcon(RefStrings.MODID + ":mass_storage_side_wood"); + this.iconTop[3] = iconRegister.registerIcon(RefStrings.MODID + ":mass_storage_top_wood"); + this.iconSide[3] = iconRegister.registerIcon(RefStrings.MODID + ":mass_storage_side_wood"); } @Override @@ -245,7 +245,7 @@ public class BlockMassStorage extends BlockContainer implements IBlockMulti, ILo @Override public int getSubCount() { - return 3; + return 4; } @Override diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index 53138c7ee..c6d7d5e5a 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -346,8 +346,8 @@ public class OreDictManager { W .ingot(ingot_tungsten) .dust(powder_tungsten) .block(block_tungsten) .ore(ore_tungsten, ore_nether_tungsten, ore_meteor_tungsten) .oreNether(ore_nether_tungsten); AL .ingot(ingot_aluminium) .dust(powder_aluminium) .plate(plate_aluminium) .block(block_aluminium) .ore(ore_aluminium, ore_meteor_aluminium); STEEL .ingot(ingot_steel) .dustSmall(powder_steel_tiny) .dust(powder_steel) .plate(plate_steel) .block(block_steel); - TCALLOY .ingot(ingot_tcalloy) .dust(powder_tcalloy); - CDALLOY .ingot(ingot_cdalloy); + TCALLOY .ingot(ingot_tcalloy) .dust(powder_tcalloy) .block(block_tcalloy); + CDALLOY .ingot(ingot_cdalloy) .block(block_cdalloy); PB .nugget(nugget_lead) .ingot(ingot_lead) .dust(powder_lead) .plate(plate_lead) .block(block_lead) .ore(ore_lead, ore_meteor_lead); BI .nugget(nugget_bismuth) .ingot(ingot_bismuth) .dust(powder_bismuth); AS .nugget(nugget_arsenic) .ingot(ingot_arsenic); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 319bf0e9d..4a3b9778d 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -295,7 +295,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.mass_storage, 1, 0), new Object[] { "ICI", "CLC", "ICI", 'I', TI.ingot(), 'C', ModBlocks.crate_steel, 'L', ModItems.circuit_copper }); addRecipeAuto(new ItemStack(ModBlocks.mass_storage, 1, 1), new Object[] { "PCP", "PMP", "PPP", 'P', DESH.ingot(), 'C', ModItems.circuit_red_copper, 'M', new ItemStack(ModBlocks.mass_storage, 1, 0) }); addRecipeAuto(new ItemStack(ModBlocks.mass_storage, 1, 2), new Object[] { "PCP", "PMP", "PPP", 'P', ANY_RESISTANTALLOY.ingot(), 'C', ModItems.circuit_gold, 'M', new ItemStack(ModBlocks.mass_storage, 1, 1) }); - addRecipeAuto(new ItemStack(ModBlocks.mass_storage, 1, 2), new Object[] { "PPP", "PIP", "PPP", 'P', KEY_PLANKS, 'I', IRON.plate() }); + addRecipeAuto(new ItemStack(ModBlocks.mass_storage, 1, 3), new Object[] { "PPP", "PIP", "PPP", 'P', KEY_PLANKS, 'I', IRON.plate() }); addRecipeAuto(new ItemStack(ModBlocks.machine_autocrafter, 1), new Object[] { "SCS", "MWM", "SCS", 'S', STEEL.plate(), 'C', ModItems.circuit_copper, 'M', ModItems.motor, 'W', Blocks.crafting_table }); addRecipeAuto(new ItemStack(ModBlocks.machine_waste_drum, 1), new Object[] { "LRL", "BRB", "LRL", 'L', PB.ingot(), 'B', Blocks.iron_bars, 'R', ModItems.rod_quad_empty }); addRecipeAuto(new ItemStack(ModBlocks.machine_press, 1), new Object[] { "IRI", "IPI", "IBI", 'I', IRON.ingot(), 'R', Blocks.furnace, 'B', IRON.block(), 'P', Blocks.piston }); From 1a9da01d74f897fbe450c2c508338d98d1aa3802 Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 7 Jun 2023 16:36:26 +0200 Subject: [PATCH 092/432] pollution stuff --- changelog | 1 + .../java/com/hbm/handler/pollution/PollutionHandler.java | 3 ++- .../java/com/hbm/tileentity/machine/TileEntityCrucible.java | 6 ++++++ .../com/hbm/tileentity/machine/TileEntityDiFurnace.java | 4 ++++ .../com/hbm/tileentity/machine/TileEntityFireboxBase.java | 3 +++ .../hbm/tileentity/machine/TileEntityHeaterOilburner.java | 4 ++++ .../com/hbm/tileentity/machine/TileEntityMachineCoal.java | 4 ++++ .../machine/TileEntityMachineCombustionEngine.java | 4 ++++ 8 files changed, 28 insertions(+), 1 deletion(-) diff --git a/changelog b/changelog index 2fdd4c818..f3f78f256 100644 --- a/changelog +++ b/changelog @@ -6,6 +6,7 @@ * Chlorocalcite * A new bedrock ore, the powder can be heated in the combination furnace to make calcium and chlorine * Blocks for cadmium, TC and CD alloy +* Machines now emit soot. Soot collects in units of 4x4 chunks, and spreads into neighboring regions. High levels of soot cause visible smog. ## Changed * Updated russian localization diff --git a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java index 1881e1019..e1bdbf7cd 100644 --- a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java +++ b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java @@ -197,7 +197,8 @@ public class PollutionHandler { } } - entry.getValue().pollution = newPollution; + entry.getValue().pollution.clear(); + entry.getValue().pollution.putAll(newPollution); } } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCrucible.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCrucible.java index 3581d35b4..a6ee9501c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCrucible.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCrucible.java @@ -7,6 +7,8 @@ import java.util.List; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; import com.hbm.blocks.BlockDummyable; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.inventory.container.ContainerCrucible; import com.hbm.inventory.gui.GUICrucible; import com.hbm.inventory.material.MaterialShapes; @@ -169,6 +171,8 @@ public class TileEntityCrucible extends TileEntityMachineBase implements IGUIPro PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, xCoord + 0.5D + dir.offsetX * 1.875D, yCoord, zCoord + 0.5D + dir.offsetZ * 1.875D), new TargetPoint(worldObj.provider.dimensionId, xCoord + 0.5, yCoord + 1, zCoord + 0.5, 50)); } + + PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND / 2F); } /* pour recipe stack */ @@ -207,6 +211,8 @@ public class TileEntityCrucible extends TileEntityMachineBase implements IGUIPro PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, xCoord + 0.5D + dir.offsetX * 1.875D, yCoord, zCoord + 0.5D + dir.offsetZ * 1.875D), new TargetPoint(worldObj.provider.dimensionId, xCoord + 0.5, yCoord + 1, zCoord + 0.5, 50)); } + + PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND / 2F); } /* clean up stacks */ diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnace.java b/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnace.java index a2da04057..57aa32c9c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnace.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnace.java @@ -2,6 +2,8 @@ package com.hbm.tileentity.machine; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.machine.MachineDiFurnace; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.inventory.container.ContainerDiFurnace; import com.hbm.inventory.gui.GUIDiFurnace; import com.hbm.inventory.recipes.BlastFurnaceRecipes; @@ -211,6 +213,8 @@ public class TileEntityDiFurnace extends TileEntityMachineBase implements IGUIPr if(fuel < 0) { fuel = 0; } + + if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * (extension ? 3 : 1)); } else { progress = 0; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFireboxBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFireboxBase.java index 9fb40234e..b4d5a109c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFireboxBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFireboxBase.java @@ -1,6 +1,8 @@ package com.hbm.tileentity.machine; import com.hbm.blocks.BlockDummyable; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.module.ModuleBurnTime; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; @@ -74,6 +76,7 @@ public abstract class TileEntityFireboxBase extends TileEntityMachineBase implem if(this.heatEnergy < getMaxHeat()) { burnTime--; + if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * 3); } this.wasOn = true; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOilburner.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOilburner.java index 535d5939b..a4ba8adab 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOilburner.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOilburner.java @@ -1,5 +1,7 @@ package com.hbm.tileentity.machine; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.interfaces.IControlReceiver; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.inventory.container.ContainerOilburner; @@ -70,6 +72,8 @@ public class TileEntityHeaterOilburner extends TileEntityMachineBase implements int heat = (int)(type.getHeatEnergy() / 1000); this.heatEnergy += heat * toBurn; + + if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * burnRate * 0.5F); shouldCool = false; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCoal.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCoal.java index 3abf74d1f..449e3aea4 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCoal.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCoal.java @@ -5,6 +5,8 @@ import java.io.IOException; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; import com.hbm.blocks.machine.MachineCoal; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.FluidContainerRegistry; @@ -290,6 +292,8 @@ public class TileEntityMachineCoal extends TileEntityLoadedBase implements ISide if(burnTime > 0) { burnTime--; + if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND); + if(tank.getFill() > 0) { tank.setFill(tank.getFill() - 1); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java index 18d48904a..64ea819ff 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java @@ -1,6 +1,8 @@ package com.hbm.tileentity.machine; import com.hbm.blocks.BlockDummyable; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.container.ContainerCombustionEngine; import com.hbm.inventory.fluid.FluidType; @@ -84,6 +86,8 @@ public class TileEntityMachineCombustionEngine extends TileEntityMachineBase imp this.power += toBurn * (trait.getCombustionEnergy() / 10_000D) * eff; fill -= toBurn; + if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * setting * 0.1F); + if(toBurn > 0) { wasOn = true; } From 1c27afbd739b8038075e22ad07f4b1cce1210c5a Mon Sep 17 00:00:00 2001 From: UFFR Date: Wed, 7 Jun 2023 18:10:01 -0400 Subject: [PATCH 093/432] Euphemium capacitor lmao Finally added it as it's own thing. Hopefully has a reasonable recipe. --- .gitignore | 18 ++++++++++++++++++ .../inventory/recipes/AssemblerRecipes.java | 9 +++++++++ src/main/java/com/hbm/items/ModItems.java | 3 +++ ...leEntityMachineSchrabidiumTransmutator.java | 12 +++++++----- src/main/resources/assets/hbm/lang/en_US.lang | 2 ++ 5 files changed, 39 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 22222fc39..776998c18 100644 --- a/.gitignore +++ b/.gitignore @@ -26,3 +26,21 @@ run # Changelog backup /changelog.bak + +screenshots/ + +saves/ + +usernamecache.json + +options.txt + +logs/ + +doc/ + +crash-reports/ + +config/ + +asm/ diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index f93ba08bc..818f2b000 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -985,6 +985,15 @@ public class AssemblerRecipes { new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.circuit_red_copper, 3) }, 200); + + makeRecipe(new ComparableStack(ModItems.euphemium_capacitor, 1), new AStack[] + { + new OreDictStack(NB.ingot(), 4), + new ComparableStack(ModItems.redcoil_capacitor, 1), + new ComparableStack(ModItems.ingot_euphemium, 4), + new ComparableStack(ModItems.circuit_tantalium, 6), + new ComparableStack(ModItems.powder_nitan_mix, 18), + }, 600); makeRecipe(new ComparableStack(ModBlocks.block_cap_nuka, 1), new AStack[] { new ComparableStack(ModItems.cap_nuka, 128) }, 10); makeRecipe(new ComparableStack(ModBlocks.block_cap_quantum, 1), new AStack[] { new ComparableStack(ModItems.cap_quantum, 128) }, 10); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 816ecdfe4..e4b0ec747 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1799,6 +1799,7 @@ public class ModItems { public static Item energy_core; public static Item fuse; public static Item redcoil_capacitor; + public static Item euphemium_capacitor; public static Item titanium_filter; //by using these in crafting table recipes, i'm running the risk of making my recipes too greg-ian (which i don't like) //in the event that i forget about the meaning of the word "sparingly", please throw a brick at my head @@ -4410,6 +4411,7 @@ public class ModItems { energy_core = new ItemBattery(10000000, 0, 1000).setUnlocalizedName("energy_core").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":energy_core"); fuse = new ItemCustomLore().setUnlocalizedName("fuse").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fuse"); redcoil_capacitor = new ItemCapacitor(10).setUnlocalizedName("redcoil_capacitor").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":redcoil_capacitor"); + euphemium_capacitor = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("euphemium_capacitor").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":redcoil_capacitor_euphemium"); titanium_filter = new ItemCapacitor(6 * 60 * 60 * 20).setUnlocalizedName("titanium_filter").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":titanium_filter"); screwdriver = new ItemTooling(ToolType.SCREWDRIVER, 100).setUnlocalizedName("screwdriver"); screwdriver_desh = new ItemTooling(ToolType.SCREWDRIVER, 0).setUnlocalizedName("screwdriver_desh"); @@ -6437,6 +6439,7 @@ public class ModItems { //Machine Items GameRegistry.registerItem(fuse, fuse.getUnlocalizedName()); GameRegistry.registerItem(redcoil_capacitor, redcoil_capacitor.getUnlocalizedName()); + GameRegistry.registerItem(euphemium_capacitor, euphemium_capacitor.getUnlocalizedName()); GameRegistry.registerItem(titanium_filter, titanium_filter.getUnlocalizedName()); GameRegistry.registerItem(screwdriver, screwdriver.getUnlocalizedName()); GameRegistry.registerItem(screwdriver_desh, screwdriver_desh.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java index 12bdd43ec..ba08db645 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java @@ -55,7 +55,7 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntityMachineB return true; break; case 2: - if (stack.getItem() == ModItems.redcoil_capacitor) + if (stack.getItem() == ModItems.redcoil_capacitor || stack.getItem() == ModItems.euphemium_capacitor) return true; break; case 3: @@ -89,7 +89,7 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntityMachineB @Override public boolean canExtractItem(int i, ItemStack stack, int j) { - if (i == 2 && stack.getItem() != null && stack.getItem() == ModItems.redcoil_capacitor && ItemCapacitor.getDura(stack) <= 0) { + if (i == 2 && stack.getItem() != null && (stack.getItem() == ModItems.redcoil_capacitor && ItemCapacitor.getDura(stack) <= 0) || stack.getItem() == ModItems.euphemium_capacitor) { return true; } @@ -115,8 +115,7 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntityMachineB public boolean canProcess() { if (power >= 4990000 && slots[0] != null && MachineRecipes.mODE(slots[0], OreDictManager.U.ingot()) && slots[2] != null - && slots[2].getItem() == ModItems.redcoil_capacitor - && ItemCapacitor.getDura(slots[2]) > 0 + && (slots[2].getItem() == ModItems.redcoil_capacitor && ItemCapacitor.getDura(slots[2]) > 0 || slots[2].getItem() == ModItems.euphemium_capacitor) && (slots[1] == null || (slots[1] != null && slots[1].getItem() == VersatileConfig.getTransmutatorItem() && slots[1].stackSize < slots[1].getMaxStackSize()))) { return true; @@ -146,7 +145,7 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntityMachineB } else { slots[1].stackSize++; } - if (slots[2] != null) { + if (slots[2] != null && slots[2].getItem() == ModItems.redcoil_capacitor) { ItemCapacitor.setDura(slots[2], ItemCapacitor.getDura(slots[2]) - 1); } @@ -195,6 +194,7 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntityMachineB } } + @Override public AudioWrapper createAudioLoop() { return MainRegistry.proxy.getLoopedSound("hbm:weapon.tauChargeLoop", xCoord, yCoord, zCoord, 1.0F, 10F, 1.0F); } @@ -205,6 +205,7 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntityMachineB this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); } + @Override public void onChunkUnload() { if(audio != null) { @@ -213,6 +214,7 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntityMachineB } } + @Override public void invalidate() { super.invalidate(); diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index c5d2f90be..7a80609d0 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -2305,6 +2305,8 @@ item.energy_core.name=Makeshift Energy Core item.entanglement_kit.name=Entanglement Kit item.entanglement_kit.desc=Teleporter crafting item.$Enables dimension-shifting via a$beryllium-enhanced resource scanner. item.euphemium_boots.name=Euphemium Boots +item.euphemium_capacitor.name=Euphemium Capacitor +item.euphemium_capacitor.desc=Permits passive dispersion of accumulated positive energy. item.euphemium_helmet.name=Euphemium Helmet item.euphemium_kit.name=Euphemium Kit item.euphemium_legs.name=Euphemium Leggings From 447cb061f294f98d530eb13a0856b28ead903f77 Mon Sep 17 00:00:00 2001 From: Bob Date: Thu, 8 Jun 2023 16:51:54 +0200 Subject: [PATCH 094/432] artillery gas shells --- changelog | 24 ++---- .../java/com/hbm/crafting/ArmorRecipes.java | 14 ++-- .../java/com/hbm/entity/EntityMappings.java | 2 +- .../com/hbm/entity/effect/EntityMist.java | 27 ++++++- .../standard/BlockMutatorDebris.java | 2 +- .../standard/BlockProcessorStandard.java | 2 + .../com/hbm/inventory/SlotCraftingOutput.java | 4 - .../java/com/hbm/inventory/fluid/Fluids.java | 2 +- .../hbm/inventory/fluid/trait/FT_Toxin.java | 2 + .../java/com/hbm/inventory/gui/GUIMixer.java | 1 - .../inventory/recipes/ChemplantRecipes.java | 18 +++++ .../java/com/hbm/items/tool/ItemWandD.java | 21 ------ .../com/hbm/items/weapon/ItemAmmoArty.java | 69 +++++++++++++++++- .../com/hbm/items/weapon/ItemAmmoHIMARS.java | 4 +- .../java/com/hbm/main/CraftingManager.java | 2 +- .../com/hbm/main/ModEventHandlerRenderer.java | 50 ++++++++++--- .../render/tileentity/RendererObjTester.java | 2 - .../TileEntityMachineChemplantBase.java | 2 - .../machine/pile/TileEntityPileBase.java | 2 - .../java/com/hbm/world/feature/BiomeCave.java | 2 - src/main/resources/assets/hbm/lang/de_DE.lang | 3 + src/main/resources/assets/hbm/lang/en_US.lang | 3 + .../items/chem_icon_SHELL_CHLORINE.png | Bin 0 -> 523 bytes .../items/chem_icon_SHELL_MUSTARD.png | Bin 0 -> 494 bytes .../items/chem_icon_SHELL_PHOSGENE.png | Bin 0 -> 491 bytes 25 files changed, 178 insertions(+), 80 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/items/chem_icon_SHELL_CHLORINE.png create mode 100644 src/main/resources/assets/hbm/textures/items/chem_icon_SHELL_MUSTARD.png create mode 100644 src/main/resources/assets/hbm/textures/items/chem_icon_SHELL_PHOSGENE.png diff --git a/changelog b/changelog index f3f78f256..d773337ea 100644 --- a/changelog +++ b/changelog @@ -1,22 +1,14 @@ ## Added -* Laminate glass - * A new variant of reinforced glass with higher blast resistance - * Also comes in pane shape -* Reinforced glass panes -* Chlorocalcite - * A new bedrock ore, the powder can be heated in the combination furnace to make calcium and chlorine -* Blocks for cadmium, TC and CD alloy * Machines now emit soot. Soot collects in units of 4x4 chunks, and spreads into neighboring regions. High levels of soot cause visible smog. +* Gas artillery shells + * Chlorine + * Phosgene + * Mustard gas ## Changed -* Updated russian localization -* Rebalanced some powder recipes like meteorite powder, spark blend and energy powder -* Changed spark battery recipes, the total cost and crafting steps for higher tier batteries should no longer be as insane as before -* Technetium steel and ferrouranium drillbits are now craftable -* The vacuum refinery now requires a bismuth chipset -* Paraffin wax can now also be used to make chlorated petroleum wax -* Retextured schrabidium batteries, the cap is now black instead of red +* Mist now spawns cloud particles with the correct color instead of standard white +* HE artillery shells and rockets now turn blocks into slag ## Fixed -* Fixed hydroreactive stat not applying when an item is dropped in the rain -* Fixed the liquefactor not working with ore dictionary recipes +* Fixed the TOXIC trait not respecting protection when applying potion effects +* Fixed some armor recipes only accepting polymer and not bakelite \ No newline at end of file diff --git a/src/main/java/com/hbm/crafting/ArmorRecipes.java b/src/main/java/com/hbm/crafting/ArmorRecipes.java index 40a284856..96b9543b8 100644 --- a/src/main/java/com/hbm/crafting/ArmorRecipes.java +++ b/src/main/java/com/hbm/crafting/ArmorRecipes.java @@ -54,8 +54,8 @@ public class ArmorRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.robes_boots, 1), new Object[] { "R R", "P P", 'R', ModItems.rag, 'P', ModItems.plate_polymer }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.security_helmet, 1), new Object[] { "SSS", "IGI", 'S', STEEL.plate(), 'I', ModItems.plate_polymer, 'G', KEY_ANYPANE }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.security_plate, 1), new Object[] { "KWK", "IKI", "WKW", 'K', ModItems.plate_kevlar, 'I', POLYMER.ingot(), 'W', new ItemStack(Blocks.wool, 1, OreDictionary.WILDCARD_VALUE) }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.security_legs, 1), new Object[] { "IWI", "K K", "W W", 'K', ModItems.plate_kevlar, 'I', POLYMER.ingot(), 'W', new ItemStack(Blocks.wool, 1, OreDictionary.WILDCARD_VALUE) }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.security_plate, 1), new Object[] { "KWK", "IKI", "WKW", 'K', ModItems.plate_kevlar, 'I', ANY_PLASTIC.ingot(), 'W', new ItemStack(Blocks.wool, 1, OreDictionary.WILDCARD_VALUE) }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.security_legs, 1), new Object[] { "IWI", "K K", "W W", 'K', ModItems.plate_kevlar, 'I', ANY_PLASTIC.ingot(), 'W', new ItemStack(Blocks.wool, 1, OreDictionary.WILDCARD_VALUE) }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.security_boots, 1), new Object[] { "P P", "I I", 'P', STEEL.plate(), 'I', ModItems.plate_polymer }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.dnt_helmet, 1), new Object[] { "EEE", "EE ", 'E', DNT.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.dnt_plate, 1), new Object[] { "EE ", "EEE", "EEE", 'E', DNT.ingot() }); @@ -68,7 +68,7 @@ public class ArmorRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.t45_plate, 1), new Object[] { "MPM", "TBT", "PPP", 'M', ModItems.motor, 'P', ModItems.plate_armor_titanium, 'T', ModItems.gas_empty, 'B', ModItems.titanium_plate }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.t45_legs, 1), new Object[] { "MPM", "PBP", "P P", 'M', ModItems.motor, 'P', ModItems.plate_armor_titanium, 'B', ModItems.titanium_legs }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.t45_boots, 1), new Object[] { "P P", "PBP", 'P', ModItems.plate_armor_titanium, 'B', ModItems.titanium_boots }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ajr_helmet, 1), new Object[] { "PPC", "PBP", "IXI", 'P', ModItems.plate_armor_ajr, 'C', ModItems.circuit_targeting_tier4, 'I', POLYMER.ingot(), 'X', ModItems.gas_mask_m65, 'B', ModItems.alloy_helmet }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ajr_helmet, 1), new Object[] { "PPC", "PBP", "IXI", 'P', ModItems.plate_armor_ajr, 'C', ModItems.circuit_targeting_tier4, 'I', ANY_PLASTIC.ingot(), 'X', ModItems.gas_mask_m65, 'B', ModItems.alloy_helmet }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ajr_plate, 1), new Object[] { "MPM", "TBT", "PPP", 'M', ModItems.motor_desh, 'P', ModItems.plate_armor_ajr, 'T', ModItems.gas_empty, 'B', ModItems.alloy_plate }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ajr_legs, 1), new Object[] { "MPM", "PBP", "P P", 'M', ModItems.motor_desh, 'P', ModItems.plate_armor_ajr, 'B', ModItems.alloy_legs }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ajr_boots, 1), new Object[] { "P P", "PBP", 'P', ModItems.plate_armor_ajr, 'B', ModItems.alloy_boots }); @@ -81,9 +81,9 @@ public class ArmorRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.bj_plate_jetpack, 1), new Object[] { "NFN", "TPT", "ICI", 'N', ModItems.plate_armor_lunar, 'F', ModItems.fins_quad_titanium, 'T', new ItemStack(ModItems.fluid_tank_full, 1, Fluids.XENON.getID()), 'P', ModItems.bj_plate, 'I', ModItems.mp_thruster_10_xenon, 'C', ModItems.crystal_phosphorus }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.bj_legs, 1), new Object[] { "MBM", "NSN", "N N", 'N', ModItems.plate_armor_lunar, 'M', ModItems.motor_desh, 'S', ModItems.starmetal_legs, 'B', ModBlocks.block_starmetal }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.bj_boots, 1), new Object[] { "N N", "BSB", 'N', ModItems.plate_armor_lunar, 'S', ModItems.starmetal_boots, 'B', ModBlocks.block_starmetal }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.hev_helmet, 1), new Object[] { "PPC", "PBP", "IFI", 'P', ModItems.plate_armor_hev, 'C', ModItems.circuit_targeting_tier4, 'B', ModItems.titanium_helmet, 'I', ModItems.plate_polymer, 'F', ModItems.gas_mask_filter }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.hev_plate, 1), new Object[] { "MPM", "IBI", "PPP", 'P', ModItems.plate_armor_hev, 'B', ModItems.titanium_plate, 'I', POLYMER.ingot(), 'M', ModItems.motor_desh }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.hev_legs, 1), new Object[] { "MPM", "IBI", "P P", 'P', ModItems.plate_armor_hev, 'B', ModItems.titanium_legs, 'I', POLYMER.ingot(), 'M', ModItems.motor_desh }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.hev_helmet, 1), new Object[] { "PPC", "PBP", "IFI", 'P', ModItems.plate_armor_hev, 'C', ModItems.circuit_targeting_tier4, 'B', ModItems.titanium_helmet, 'I', ANY_PLASTIC.ingot(), 'F', ModItems.gas_mask_filter }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.hev_plate, 1), new Object[] { "MPM", "IBI", "PPP", 'P', ModItems.plate_armor_hev, 'B', ModItems.titanium_plate, 'I', ANY_PLASTIC.ingot(), 'M', ModItems.motor_desh }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.hev_legs, 1), new Object[] { "MPM", "IBI", "P P", 'P', ModItems.plate_armor_hev, 'B', ModItems.titanium_legs, 'I', ANY_PLASTIC.ingot(), 'M', ModItems.motor_desh }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.hev_boots, 1), new Object[] { "P P", "PBP", 'P', ModItems.plate_armor_hev, 'B', ModItems.titanium_boots }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.fau_helmet, 1), new Object[] { "PWP", "PBP", "FSF", 'P', ModItems.plate_armor_fau, 'W', new ItemStack(Blocks.wool, 1, 14), 'B', ModItems.starmetal_helmet, 'F', ModItems.gas_mask_filter, 'S', ModItems.pipes_steel }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.fau_plate, 1), new Object[] { "MCM", "PBP", "PSP", 'M', ModItems.motor_desh, 'C', ModItems.demon_core_closed, 'P', ModItems.plate_armor_fau, 'B', ModItems.starmetal_plate, 'S', ModBlocks.ancient_scrap }); @@ -162,7 +162,7 @@ public class ArmorRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.gas_mask_olde, 1), new Object[] { "PPP", "GPG", " F ", 'G', KEY_ANYPANE, 'P', Items.leather, 'F', IRON.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gas_mask_mono, 1), new Object[] { " P ", "PPP", " F ", 'P', ModItems.plate_polymer, 'F', IRON.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.mask_of_infamy, 1), new Object[] { "III", "III", " I ", 'I', IRON.plate() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ashglasses, 1), new Object[] { "I I", "GPG", 'I', ModItems.plate_polymer, 'G', ModBlocks.glass_ash, 'P', POLYMER.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ashglasses, 1), new Object[] { "I I", "GPG", 'I', ModItems.plate_polymer, 'G', ModBlocks.glass_ash, 'P', ANY_PLASTIC.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.mask_rag, 1), new Object[] { "RRR", 'R', ModItems.rag_damp }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.mask_piss, 1), new Object[] { "RRR", 'R', ModItems.rag_piss }); diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index fee770026..797097dfc 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -210,7 +210,7 @@ public class EntityMappings { addEntity(EntityCog.class, "entity_stray_cog", 1000); addEntity(EntitySawblade.class, "entity_stray_saw", 1000); addEntity(EntityChemical.class, "entity_chemthrower_splash", 1000); - addEntity(EntityMist.class, "entity_mist", 1000); + addEntity(EntityMist.class, "entity_mist", 250, false); addEntity(EntityItemWaste.class, "entity_item_waste", 100); addEntity(EntityItemBuoyant.class, "entity_item_buoyant", 100); diff --git a/src/main/java/com/hbm/entity/effect/EntityMist.java b/src/main/java/com/hbm/entity/effect/EntityMist.java index 4150a436b..ceb2dc014 100644 --- a/src/main/java/com/hbm/entity/effect/EntityMist.java +++ b/src/main/java/com/hbm/entity/effect/EntityMist.java @@ -16,6 +16,7 @@ import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Gaseous_ART; import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Liquid; import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Viscous; import com.hbm.lib.ModDamageSource; +import com.hbm.main.MainRegistry; import com.hbm.util.ArmorUtil; import com.hbm.util.ContaminationUtil; import com.hbm.util.EntityDamageUtil; @@ -101,10 +102,21 @@ public class EntityMist extends Entity { } else { for(int i = 0; i < 2; i++) { - double x = this.boundingBox.minX + rand.nextDouble() * (this.boundingBox.maxX - this.boundingBox.minX); + double x = this.boundingBox.minX + (rand.nextDouble() - 0.5) * (this.boundingBox.maxX - this.boundingBox.minX); double y = this.boundingBox.minY + rand.nextDouble() * (this.boundingBox.maxY - this.boundingBox.minY); - double z = this.boundingBox.minZ + rand.nextDouble() * (this.boundingBox.maxZ - this.boundingBox.minZ); - worldObj.spawnParticle("cloud", x, y, z, 0, 0, 0); + double z = this.boundingBox.minZ + (rand.nextDouble() - 0.5) * (this.boundingBox.maxZ - this.boundingBox.minZ); + + NBTTagCompound fx = new NBTTagCompound(); + fx.setString("type", "tower"); + fx.setFloat("lift", 0.5F); + fx.setFloat("base", 0.75F); + fx.setFloat("max", 2F); + fx.setInteger("life", 50 + worldObj.rand.nextInt(10)); + fx.setInteger("color",this.getType().getColor()); + fx.setDouble("posX", x); + fx.setDouble("posY", y); + fx.setDouble("posZ", z); + MainRegistry.proxy.effectNT(fx); } } } @@ -192,11 +204,14 @@ public class EntityMist extends Entity { @Override protected void readEntityFromNBT(NBTTagCompound nbt) { this.setType(Fluids.fromID(nbt.getInteger("type"))); + this.setArea(nbt.getFloat("width"), nbt.getFloat("height")); } @Override protected void writeEntityToNBT(NBTTagCompound nbt) { nbt.setInteger("type", this.getType().getID()); + nbt.setFloat("width", this.dataWatcher.getWatchableObjectFloat(11)); + nbt.setFloat("height", this.dataWatcher.getWatchableObjectFloat(12)); } @Override @@ -204,6 +219,12 @@ public class EntityMist extends Entity { public boolean canRenderOnFire() { return false; } + + @Override public void moveEntity(double x, double y, double z) { } + @Override public void addVelocity(double x, double y, double z) { } + @Override public void setPosition(double x, double y, double z) { + if(this.ticksExisted == 0) super.setPosition(x, y, z); //honest to fucking god mojang suck my fucking nuts + } public static SprayStyle getStyleFromType(FluidType type) { diff --git a/src/main/java/com/hbm/explosion/vanillant/standard/BlockMutatorDebris.java b/src/main/java/com/hbm/explosion/vanillant/standard/BlockMutatorDebris.java index 3210eff6e..9feb9a918 100644 --- a/src/main/java/com/hbm/explosion/vanillant/standard/BlockMutatorDebris.java +++ b/src/main/java/com/hbm/explosion/vanillant/standard/BlockMutatorDebris.java @@ -27,7 +27,7 @@ public class BlockMutatorDebris implements IBlockMutator { World world = explosion.world; for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { Block b = world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ); - if(b.isNormalCube()) { + if(b.isNormalCube() && (b != metaBlock.block || world.getBlockMetadata(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ) != metaBlock.meta)) { world.setBlock(x, y, z, metaBlock.block, metaBlock.meta, 3); return; } diff --git a/src/main/java/com/hbm/explosion/vanillant/standard/BlockProcessorStandard.java b/src/main/java/com/hbm/explosion/vanillant/standard/BlockProcessorStandard.java index a6da1e153..8d76b9d9a 100644 --- a/src/main/java/com/hbm/explosion/vanillant/standard/BlockProcessorStandard.java +++ b/src/main/java/com/hbm/explosion/vanillant/standard/BlockProcessorStandard.java @@ -64,6 +64,8 @@ public class BlockProcessorStandard implements IBlockProcessor { block.onBlockExploded(world, blockX, blockY, blockZ, explosion.compat); if(this.convert != null) this.convert.mutatePre(explosion, block, world.getBlockMetadata(blockX, blockY, blockZ), blockX, blockY, blockZ); + } else { + iterator.remove(); } } diff --git a/src/main/java/com/hbm/inventory/SlotCraftingOutput.java b/src/main/java/com/hbm/inventory/SlotCraftingOutput.java index 5095f2b7e..46770d660 100644 --- a/src/main/java/com/hbm/inventory/SlotCraftingOutput.java +++ b/src/main/java/com/hbm/inventory/SlotCraftingOutput.java @@ -1,14 +1,10 @@ package com.hbm.inventory; -import com.hbm.blocks.ModBlocks; -import com.hbm.items.ModItems; -import com.hbm.main.MainRegistry; import com.hbm.util.AchievementHandler; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.Slot; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; public class SlotCraftingOutput extends Slot { diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index b1b4a9ad4..c62591afc 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -254,7 +254,7 @@ public class Fluids { SYNGAS = new FluidType("SYNGAS", 0x131313, 1, 4, 2, EnumSymbol.NONE).addContainers(new CD_Gastank(0xFFFFFF, 0x131313)).addTraits(GASEOUS); OXYHYDROGEN = new FluidType("OXYHYDROGEN", 0x483FC1, 0, 4, 2, EnumSymbol.NONE).addTraits(GASEOUS); RADIOSOLVENT = new FluidType("RADIOSOLVENT", 0xA4D7DD, 3, 3, 0, EnumSymbol.NONE).addTraits(LIQUID, LEADCON, new FT_Corrosive(50), new FT_VentRadiation(0.01F)); - CHLORINE = new FluidType("CHLORINE", 0xBAB572, 3, 0, 0, EnumSymbol.OXIDIZER).addContainers(new CD_Gastank(0xBAB572, 0x887B34)).addTraits(GASEOUS, new FT_Corrosive(25), new FT_Poison(true, 1)); + CHLORINE = new FluidType("CHLORINE", 0xBAB572, 3, 0, 0, EnumSymbol.OXIDIZER).addContainers(new CD_Gastank(0xBAB572, 0x887B34)).addTraits(GASEOUS, new FT_Corrosive(25)); HEAVYOIL_VACUUM = new FluidType("HEAVYOIL_VACUUM", 0x131214, 2, 1, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS).addContainers(new CD_Canister(0x513F39)); REFORMATE = new FluidType("REFORMATE", 0x835472, 2, 2, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS).addContainers(new CD_Canister(0xD180D6)); LIGHTOIL_VACUUM = new FluidType("LIGHTOIL_VACUUM", 0x8C8851, 1, 2, 0, EnumSymbol.NONE).addTraits(LIQUID).addContainers(new CD_Canister(0xB46B52)); diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Toxin.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Toxin.java index 456b8e0a8..fc759219b 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Toxin.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Toxin.java @@ -116,6 +116,8 @@ public class FT_Toxin extends FluidTrait { @Override public void poison(EntityLivingBase entity, double intensity) { + if(isProtected(entity)) return; + for(PotionEffect eff : effects) { entity.addPotionEffect(new PotionEffect(eff.getPotionID(), (int) (eff.getDuration() * intensity), eff.getAmplifier())); } diff --git a/src/main/java/com/hbm/inventory/gui/GUIMixer.java b/src/main/java/com/hbm/inventory/gui/GUIMixer.java index 9d082bbfe..15dd31b72 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMixer.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMixer.java @@ -9,7 +9,6 @@ import com.hbm.inventory.container.ContainerMixer; import com.hbm.inventory.recipes.MixerRecipes; import com.hbm.inventory.recipes.MixerRecipes.MixerRecipe; import com.hbm.lib.RefStrings; -import com.hbm.packet.AuxButtonPacket; import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.machine.TileEntityMachineMixer; diff --git a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java index f482f0a3c..f05689475 100644 --- a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java @@ -380,6 +380,24 @@ public class ChemplantRecipes extends SerializableRecipe { .inputItems(new OreDictStack(DIAMOND.dust(), 1)) .inputFluids(new FluidStack(Fluids.XPJUICE, 500)) .outputFluids(new FluidStack(Fluids.ENDERJUICE, 100))); + recipes.add(new ChemRecipe(98, "SHELL_CHLORINE", 100) + .inputItems( + new ComparableStack(ModItems.ammo_arty, 1, 0), + new OreDictStack(ANY_PLASTIC.ingot(), 1)) + .inputFluids(new FluidStack(Fluids.CHLORINE, 4000)) + .outputItems(new ItemStack(ModItems.ammo_arty, 1, 9))); + recipes.add(new ChemRecipe(99, "SHELL_PHOSGENE", 100) + .inputItems( + new ComparableStack(ModItems.ammo_arty, 1, 0), + new OreDictStack(ANY_PLASTIC.ingot(), 1)) + .inputFluids(new FluidStack(Fluids.PHOSGENE, 4000)) + .outputItems(new ItemStack(ModItems.ammo_arty, 1, 10))); + recipes.add(new ChemRecipe(100, "SHELL_MUSTARD", 100) + .inputItems( + new ComparableStack(ModItems.ammo_arty, 1, 0), + new OreDictStack(ANY_PLASTIC.ingot(), 1)) + .inputFluids(new FluidStack(Fluids.MUSTARDGAS, 4000)) + .outputItems(new ItemStack(ModItems.ammo_arty, 1, 11))); } public static void registerFuelProcessing() { diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index b165bae10..06b5fe384 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -2,35 +2,14 @@ package com.hbm.items.tool; import java.util.List; -import com.hbm.blocks.ModBlocks; -import com.hbm.blocks.rail.IRailNTM; -import com.hbm.blocks.rail.IRailNTM.RailContext; -import com.hbm.explosion.vanillant.ExplosionVNT; -import com.hbm.explosion.vanillant.standard.BlockAllocatorBulkie; -import com.hbm.explosion.vanillant.standard.BlockMutatorBulkie; -import com.hbm.explosion.vanillant.standard.BlockProcessorStandard; -import com.hbm.explosion.vanillant.standard.EntityProcessorStandard; -import com.hbm.explosion.vanillant.standard.ExplosionEffectStandard; -import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.lib.Library; -import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.PlayerInformPacket; -import com.hbm.util.ParticleUtil; -import com.hbm.util.fauxpointtwelve.BlockPos; -import com.hbm.world.feature.OilSpot; -import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Blocks; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MathHelper; import net.minecraft.util.MovingObjectPosition; -import net.minecraft.util.Vec3; import net.minecraft.world.World; public class ItemWandD extends Item { diff --git a/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java b/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java index 8a96ce169..40efef4ce 100644 --- a/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java +++ b/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java @@ -3,7 +3,9 @@ package com.hbm.items.weapon; import java.util.List; import java.util.Random; +import com.hbm.blocks.ModBlocks; import com.hbm.config.BombConfig; +import com.hbm.entity.effect.EntityMist; import com.hbm.entity.effect.EntityNukeCloudSmall; import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.entity.projectile.EntityArtilleryShell; @@ -12,10 +14,12 @@ import com.hbm.explosion.ExplosionLarge; import com.hbm.explosion.ExplosionNukeSmall; import com.hbm.explosion.vanillant.ExplosionVNT; import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard; +import com.hbm.explosion.vanillant.standard.BlockMutatorDebris; import com.hbm.explosion.vanillant.standard.BlockProcessorStandard; import com.hbm.explosion.vanillant.standard.EntityProcessorCross; import com.hbm.explosion.vanillant.standard.ExplosionEffectStandard; import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; +import com.hbm.inventory.fluid.Fluids; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.packet.AuxParticlePacketNT; @@ -46,8 +50,7 @@ import net.minecraft.util.MovingObjectPosition.MovingObjectType; public class ItemAmmoArty extends Item { public static Random rand = new Random(); - public static ArtilleryShell[] itemTypes = new ArtilleryShell[ /* >>> */ 9 /* <<< */ ]; - //public static ArtilleryShell[] shellTypes = new ArtilleryShell[ /* >>> */ 8 /* <<< */ ]; + public static ArtilleryShell[] itemTypes = new ArtilleryShell[ /* >>> */ 12 /* <<< */ ]; /* item types */ public final int NORMAL = 0; public final int CLASSIC = 1; @@ -58,6 +61,9 @@ public class ItemAmmoArty extends Item { public final int MINI_NUKE_MULTI = 6; public final int PHOSPHORUS_MULTI = 7; public final int CARGO = 8; + public final int CHLORINE = 9; + public final int PHOSGENE = 10; + public final int MUSTARD = 11; /* non-item shell types */ public ItemAmmoArty() { @@ -78,6 +84,9 @@ public class ItemAmmoArty extends Item { list.add(new ItemStack(item, 1, MINI_NUKE_MULTI)); list.add(new ItemStack(item, 1, NUKE)); list.add(new ItemStack(item, 1, CARGO)); + list.add(new ItemStack(item, 1, CHLORINE)); + list.add(new ItemStack(item, 1, PHOSGENE)); + list.add(new ItemStack(item, 1, MUSTARD)); } @Override @@ -195,7 +204,7 @@ public class ItemAmmoArty extends Item { ExplosionVNT xnt = new ExplosionVNT(shell.worldObj, mop.hitVec.xCoord - vec.xCoord, mop.hitVec.yCoord - vec.yCoord, mop.hitVec.zCoord - vec.zCoord, size); if(breaksBlocks) { xnt.setBlockAllocator(new BlockAllocatorStandard(48)); - xnt.setBlockProcessor(new BlockProcessorStandard().setNoDrop()); + xnt.setBlockProcessor(new BlockProcessorStandard().setNoDrop().withBlockEffect(new BlockMutatorDebris(ModBlocks.block_slag, 1))); } xnt.setEntityProcessor(new EntityProcessorCross(7.5D).withRangeMod(rangeMod)); xnt.setPlayerProcessor(new PlayerProcessorStandard()); @@ -298,6 +307,60 @@ public class ItemAmmoArty extends Item { } }}; + /* GAS */ + this.itemTypes[CHLORINE] = new ArtilleryShell("ammo_arty_chlorine", SpentCasing.COLOR_CASE_16INCH) { + public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { + shell.killAndClear(); + Vec3 vec = Vec3.createVectorHelper(shell.motionX, shell.motionY, shell.motionZ).normalize(); + shell.worldObj.createExplosion(shell, mop.hitVec.xCoord - vec.xCoord, mop.hitVec.yCoord - vec.yCoord, mop.hitVec.zCoord - vec.zCoord, 5F, false); + EntityMist mist = new EntityMist(shell.worldObj); + mist.setType(Fluids.CHLORINE); + mist.setPosition(mop.hitVec.xCoord - vec.xCoord, mop.hitVec.yCoord - vec.yCoord - 3, mop.hitVec.zCoord - vec.zCoord); + mist.setArea(15, 7.5F); + shell.worldObj.spawnEntityInWorld(mist); + } + }; + this.itemTypes[PHOSGENE] = new ArtilleryShell("ammo_arty_phosgene", SpentCasing.COLOR_CASE_16INCH_NUKE) { + public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { + shell.killAndClear(); + Vec3 vec = Vec3.createVectorHelper(shell.motionX, shell.motionY, shell.motionZ).normalize(); + shell.worldObj.createExplosion(shell, mop.hitVec.xCoord - vec.xCoord, mop.hitVec.yCoord - vec.yCoord, mop.hitVec.zCoord - vec.zCoord, 5F, false); + for(int i = 0; i < 3; i++) { + EntityMist mist = new EntityMist(shell.worldObj); + mist.setType(Fluids.PHOSGENE); + double x = mop.hitVec.xCoord - vec.xCoord; + double z = mop.hitVec.zCoord - vec.zCoord; + if(i > 0) { + x += rand.nextGaussian() * 15; + z += rand.nextGaussian() * 15; + } + mist.setPosition(x, mop.hitVec.yCoord - vec.yCoord - 5, z); + mist.setArea(15, 10); + shell.worldObj.spawnEntityInWorld(mist); + } + } + }; + this.itemTypes[MUSTARD] = new ArtilleryShell("ammo_arty_mustard_gas", SpentCasing.COLOR_CASE_16INCH_NUKE) { + public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { + shell.killAndClear(); + Vec3 vec = Vec3.createVectorHelper(shell.motionX, shell.motionY, shell.motionZ).normalize(); + shell.worldObj.createExplosion(shell, mop.hitVec.xCoord - vec.xCoord, mop.hitVec.yCoord - vec.yCoord, mop.hitVec.zCoord - vec.zCoord, 5F, false); + for(int i = 0; i < 5; i++) { + EntityMist mist = new EntityMist(shell.worldObj); + mist.setType(Fluids.MUSTARDGAS); + double x = mop.hitVec.xCoord - vec.xCoord; + double z = mop.hitVec.zCoord - vec.zCoord; + if(i > 0) { + x += rand.nextGaussian() * 25; + z += rand.nextGaussian() * 25; + } + mist.setPosition(x, mop.hitVec.yCoord - vec.yCoord - 5, z); + mist.setArea(20, 10); + shell.worldObj.spawnEntityInWorld(mist); + } + } + }; + /* CLUSTER SHELLS */ this.itemTypes[PHOSPHORUS_MULTI] = new ArtilleryShell("ammo_arty_phosphorus_multi", SpentCasing.COLOR_CASE_16INCH_PHOS) { public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { ItemAmmoArty.this.itemTypes[PHOSPHORUS].onImpact(shell, mop); } diff --git a/src/main/java/com/hbm/items/weapon/ItemAmmoHIMARS.java b/src/main/java/com/hbm/items/weapon/ItemAmmoHIMARS.java index 9d2b1dba1..b3d26faf8 100644 --- a/src/main/java/com/hbm/items/weapon/ItemAmmoHIMARS.java +++ b/src/main/java/com/hbm/items/weapon/ItemAmmoHIMARS.java @@ -2,12 +2,14 @@ package com.hbm.items.weapon; import java.util.List; +import com.hbm.blocks.ModBlocks; import com.hbm.entity.projectile.EntityArtilleryRocket; import com.hbm.explosion.ExplosionChaos; import com.hbm.explosion.ExplosionLarge; import com.hbm.explosion.ExplosionNukeSmall; import com.hbm.explosion.vanillant.ExplosionVNT; import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard; +import com.hbm.explosion.vanillant.standard.BlockMutatorDebris; import com.hbm.explosion.vanillant.standard.BlockProcessorStandard; import com.hbm.explosion.vanillant.standard.EntityProcessorCross; import com.hbm.explosion.vanillant.standard.ExplosionEffectStandard; @@ -143,7 +145,7 @@ public class ItemAmmoHIMARS extends Item { ExplosionVNT xnt = new ExplosionVNT(rocket.worldObj, mop.hitVec.xCoord - vec.xCoord, mop.hitVec.yCoord - vec.yCoord, mop.hitVec.zCoord - vec.zCoord, size); if(breaksBlocks) { xnt.setBlockAllocator(new BlockAllocatorStandard(48)); - xnt.setBlockProcessor(new BlockProcessorStandard().setNoDrop()); + xnt.setBlockProcessor(new BlockProcessorStandard().setNoDrop().withBlockEffect(new BlockMutatorDebris(ModBlocks.block_slag, 1))); } xnt.setEntityProcessor(new EntityProcessorCross(7.5).withRangeMod(rangeMod)); xnt.setPlayerProcessor(new PlayerProcessorStandard()); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 4a3b9778d..99ca2d9be 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -189,7 +189,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.motor, 2), new Object[] { " R ", "ICI", "ITI", 'R', ModItems.wire_red_copper, 'T', ModItems.coil_copper_torus, 'I', IRON.plate(), 'C', ModItems.coil_copper }); addRecipeAuto(new ItemStack(ModItems.motor, 2), new Object[] { " R ", "ICI", " T ", 'R', ModItems.wire_red_copper, 'T', ModItems.coil_copper_torus, 'I', STEEL.plate(), 'C', ModItems.coil_copper }); addRecipeAuto(new ItemStack(ModItems.motor_desh, 1), new Object[] { "PCP", "DMD", "PCP", 'P', ANY_PLASTIC.ingot(), 'C', ModItems.coil_gold_torus, 'D', DESH.ingot(), 'M', ModItems.motor }); - addRecipeAuto(new ItemStack(ModItems.motor_bismuth, 1), new Object[] { "BCB", "SBS", "BCB", 'B', BI.nugget(), 'C', ModBlocks.hadron_coil_alloy, 'S', STEEL.plateCast(), 'B', DURA.ingot() }); + addRecipeAuto(new ItemStack(ModItems.motor_bismuth, 1), new Object[] { "BCB", "SDS", "BCB", 'B', BI.nugget(), 'C', ModBlocks.hadron_coil_alloy, 'S', STEEL.plateCast(), 'D', DURA.ingot() }); //addRecipeAuto(new ItemStack(ModItems.centrifuge_element, 1), new Object[] { " T ", "WTW", "RMR", 'R', ModItems.wire_red_copper, 'T', ModItems.tank_steel, 'M', ModItems.motor, 'W', ModItems.coil_tungsten }); //addRecipeAuto(new ItemStack(ModItems.centrifuge_tower, 1), new Object[] { "LL", "EE", "EE", 'E', ModItems.centrifuge_element, 'L', KEY_BLUE }); //addRecipeAuto(new ItemStack(ModItems.reactor_core, 1), new Object[] { "LNL", "N N", "LNL", 'N', getReflector(), 'L', PB.plate() }); diff --git a/src/main/java/com/hbm/main/ModEventHandlerRenderer.java b/src/main/java/com/hbm/main/ModEventHandlerRenderer.java index 85e7544e4..e01007977 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerRenderer.java +++ b/src/main/java/com/hbm/main/ModEventHandlerRenderer.java @@ -1,6 +1,7 @@ package com.hbm.main; import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GLContext; import com.hbm.blocks.ICustomBlockHighlight; import com.hbm.handler.pollution.PollutionHandler.PollutionType; @@ -9,9 +10,9 @@ import com.hbm.items.armor.IArmorDisableModel.EnumPlayerPart; import com.hbm.packet.PermaSyncHandler; import com.hbm.render.model.ModelMan; -import cpw.mods.fml.common.eventhandler.Event.Result; import cpw.mods.fml.common.eventhandler.EventPriority; import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import cpw.mods.fml.common.gameevent.TickEvent.WorldTickEvent; import net.minecraft.block.Block; import net.minecraft.client.Minecraft; import net.minecraft.client.model.ModelRenderer; @@ -28,7 +29,6 @@ import net.minecraft.util.MovingObjectPosition; import net.minecraftforge.client.event.DrawBlockHighlightEvent; import net.minecraftforge.client.event.EntityViewRenderEvent.FogColors; import net.minecraftforge.client.event.EntityViewRenderEvent.FogDensity; -import net.minecraftforge.client.event.EntityViewRenderEvent.RenderFogEvent; import net.minecraftforge.client.event.RenderPlayerEvent; public class ModEventHandlerRenderer { @@ -325,29 +325,55 @@ public class ModEventHandlerRenderer { } }*/ + float renderSoot = 0; + @SubscribeEvent - public void setupFog(RenderFogEvent event) { + public void worldTick(WorldTickEvent event) { + + if(event.phase == event.phase.START) { + + float step = 0.05F; + float soot = PermaSyncHandler.pollution[PollutionType.SOOT.ordinal()]; + + if(Math.abs(renderSoot - soot) < step) { + renderSoot = soot; + } else if(renderSoot < soot) { + renderSoot += step; + } else if(renderSoot > soot) { + renderSoot -= step; + } + } } @SubscribeEvent(priority = EventPriority.LOW) public void thickenFog(FogDensity event) { - float soot = PermaSyncHandler.pollution[PollutionType.SOOT.ordinal()]; - if(soot > 10) { + float soot = renderSoot - 35; + if(soot > 0) { //event.density = Math.min((soot - 5) * 0.01F, 0.5F); - GL11.glFogf(GL11.GL_FOG_START, 0.0F); float farPlaneDistance = (float) (Minecraft.getMinecraft().gameSettings.renderDistanceChunks * 16); - GL11.glFogf(GL11.GL_FOG_END, Math.max(farPlaneDistance * 0.8F / (soot * 0.05F), 5F)); + float fogDist = farPlaneDistance / (1 + soot * 0.05F); + GL11.glFogf(GL11.GL_FOG_START, 0); + GL11.glFogf(GL11.GL_FOG_END, fogDist); + + if(GLContext.getCapabilities().GL_NV_fog_distance) { + GL11.glFogi(34138, 34139); + } + //GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); + //GL11.glFogf(GL11.GL_FOG_DENSITY, 2F); event.setCanceled(true); } } @SubscribeEvent(priority = EventPriority.LOW) public void tintFog(FogColors event) { - float soot = PermaSyncHandler.pollution[PollutionType.SOOT.ordinal()]; - if(soot > 10) { - event.red = 0.15F; - event.green = 0.15F; - event.blue = 0.15F; + float soot = renderSoot - 35; + float sootColor = 0.15F; + float sootReq = 100F; + if(soot > 0) { + float interp = Math.min(soot / sootReq, 1F); + event.red = event.red * (1 - interp) + sootColor * interp; + event.green = event.green * (1 - interp) + sootColor * interp; + event.blue = event.blue * (1 - interp) + sootColor * interp; } } } diff --git a/src/main/java/com/hbm/render/tileentity/RendererObjTester.java b/src/main/java/com/hbm/render/tileentity/RendererObjTester.java index 49ef618d6..7c8eebb57 100644 --- a/src/main/java/com/hbm/render/tileentity/RendererObjTester.java +++ b/src/main/java/com/hbm/render/tileentity/RendererObjTester.java @@ -20,8 +20,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.model.AdvancedModelLoader; -import net.minecraftforge.client.model.IModelCustom; public class RendererObjTester extends TileEntitySpecialRenderer { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java index 9956e1810..6d2501a7e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java @@ -3,8 +3,6 @@ package com.hbm.tileentity.machine; import java.util.ArrayList; import java.util.List; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; diff --git a/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileBase.java b/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileBase.java index 30d6c3552..8c06fd658 100644 --- a/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileBase.java +++ b/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileBase.java @@ -4,7 +4,6 @@ import java.util.List; import java.util.Random; import com.hbm.blocks.ModBlocks; -import com.hbm.main.MainRegistry; import com.hbm.util.ContaminationUtil; import com.hbm.util.ContaminationUtil.ContaminationType; import com.hbm.util.ContaminationUtil.HazardType; @@ -12,7 +11,6 @@ import com.hbm.util.ContaminationUtil.HazardType; import api.hbm.block.IPileNeutronReceiver; import net.minecraft.block.Block; import net.minecraft.entity.EntityLivingBase; -import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.Vec3; diff --git a/src/main/java/com/hbm/world/feature/BiomeCave.java b/src/main/java/com/hbm/world/feature/BiomeCave.java index 9d297778e..0add71808 100644 --- a/src/main/java/com/hbm/world/feature/BiomeCave.java +++ b/src/main/java/com/hbm/world/feature/BiomeCave.java @@ -4,11 +4,9 @@ import java.util.Random; import com.hbm.blocks.BlockEnums.EnumBiomeType; import com.hbm.blocks.ModBlocks; -import com.hbm.blocks.generic.BlockStalagmite; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import net.minecraft.block.Block; -import net.minecraft.block.material.Material; import net.minecraft.world.World; import net.minecraft.world.biome.BiomeGenBase; import net.minecraft.world.biome.BiomeGenBase.TempCategory; diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 3667c7753..6d02868f9 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -942,11 +942,14 @@ item.ammo_9mm_du.name=9mm Patrone (DU) item.ammo_9mm_rocket.name=9mm Rakete item.ammo_arty.name=16" Artilleriegranate item.ammo_arty_cargo.name=16" Artilleriegranate (Expresslieferung) +item.ammo_arty_chlorine.name=16" Artilleriegranate (Chlorgas) item.ammo_arty_classic.name=16" Artilleriegranate (Das Factorio-Spezial) item.ammo_arty_he.name=16" Artilleriegranate (HE) item.ammo_arty_mini_nuke.name=16" Mikroatomgranate item.ammo_arty_mini_nuke_multi.name=16" Mehrfach-Mikroatomgranate +item.ammo_arty_mustard_gas.name=16" Artilleriegranate (Senfgas) item.ammo_arty_nuke.name=16" Atomare Artilleriegranate +item.ammo_arty_phosgene.name=16" Artilleriegranate (Phosgen) item.ammo_arty_phosphorus.name=16" Phosphor-Artilleriegranate item.ammo_arty_phosphorus_multi.name=16" Mehrfach-Phosphor-Artilleriegranate item.ammo_cell.name=Energiezelle diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index c5d2f90be..94ee5060f 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1522,11 +1522,14 @@ item.ammo_9mm_du.name=9mm Round (DU) item.ammo_9mm_rocket.name=9mm Rocket item.ammo_arty.name=16" Artillery Shell item.ammo_arty_cargo.name=16" Express Delivery Artillery Shell +item.ammo_arty_chlorine.name=16" Chlorine Gas Artillery Shell item.ammo_arty_classic.name=16" Artillery Shell (The Factorio Special) item.ammo_arty_he.name=16" High Explosive Artillery Shell item.ammo_arty_mini_nuke.name=16" Micro Nuclear Artillery Shell item.ammo_arty_mini_nuke_multi.name=16" Multi Micro Nuclear Artillery Shell +item.ammo_arty_mustard_gas.name=16" Mustard Gas Artillery Shell item.ammo_arty_nuke.name=16" Nuclear Artillery Shell +item.ammo_arty_phosgene.name=16" Phosgene Artillery Shell item.ammo_arty_phosphorus.name=16" Phosphorus Shell item.ammo_arty_phosphorus_multi.name=16" Multi Phosphorus Shell item.ammo_cell.name=Energy Cell diff --git a/src/main/resources/assets/hbm/textures/items/chem_icon_SHELL_CHLORINE.png b/src/main/resources/assets/hbm/textures/items/chem_icon_SHELL_CHLORINE.png new file mode 100644 index 0000000000000000000000000000000000000000..21ce59d8289dcd9319cd9e135aa4682680053c06 GIT binary patch literal 523 zcmV+m0`&cfP)t<6rmzgi^K>S2*O1K4}w9a z7DWWDf;J^MI@%_%jS$iwD8iK>ErKD45L!tDMYSFVT?Fz>WVr8Tdfha4eDj=`v%2uz z^PS&!E?4lcE_+!GFgNp;bb3k9Vp+ArZ-0Y8g-Cgb;gKO-sa({p7#!$3e_8{~Ot+Cr zwc+JAaohw_+6<2jX@HOKJ~bt>>XQ}MZd3tyGiNh;`wxzr0N`$Zpec=5Sm@HJl*9Eq z+q`<(4#0z{gQgjvH|f*g5t5tu86&YgZ$;E5OR2c`aGO8{1S&L_9D9e1)Xa~ciIG^f z{Ex=A@ba5RsF|EQzDDk3NO8GyUlW6rKGmTC9M|De-%)cR*P|#dck<-IDgb^cC|8Av zW6@B73V8o*ox$#a!R~-^RYc-6l0=qrHG9n9<$4rbN4kvm>~j*wO+-lMzq`b?`uOHy zy|<}w#Wh++YLbci3SRzj;}PyZ-!P`P&iWMIDx;OF0za(JbnKlt!G0tesUvYRQd6qf zOwN84|NS(LCQIulj5hoFivXGvG&3nxY+fv`nZB03?cUc}{O~K%vkR6OskNzo?c)Fd N002ovPDHLkV1kGj?eqWu literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/chem_icon_SHELL_MUSTARD.png b/src/main/resources/assets/hbm/textures/items/chem_icon_SHELL_MUSTARD.png new file mode 100644 index 0000000000000000000000000000000000000000..dd8ee6c2a0fb3243e7e5d4c20a29501c136139cb GIT binary patch literal 494 zcmV9oCiUT2NDzQDV5tB~R zg_Nmdd#zY1Hi2zZssuzqB}IyGLO?w55|uMK4%yi|Wzu9v*Y(6#&G2~N```O#4F1Pl z`LzOAtK3j5el>Vz^u&k1S50IX;W#;F=BHJy_DVem&^u8YQvj8f48EVCywpP2Ssce= zW`0@$?0nhns;K9#bI8KmYXCOaEEbpB2s;bF#LMxnYK$NlR=zKI^X``Q)dBz?Kbg81 z;PQ6^)9Ph^`zWQv04RH zB-`}$yKMR=lz$GTAo@@o9aOrrX={jA$PUdi+biS~<9r@F$1%->lE%dqsjbGN#6=%klZl-?bSE`J z?f935E>s7oxZjfFg^|8nSu3sJF(twlkGiwBbznUCX&yrEyYv0$N_@$pWzO?8#U)mhYEzu_$=?>M!r#765qtCS!^L zeqFZ7*l7+weM=~@0Lt@oS~vo~=~COW0T7Nbkk0QeSz)6Bm4H|PzF*Q&XD{!Wq;LeG z>N7p-ve&SwY;+S4b12WxY12957>HNM<2PN_YkdGz5XK Date: Thu, 8 Jun 2023 21:58:09 +0200 Subject: [PATCH 095/432] rail ramps, some performance stuff, fixes --- changelog | 3 + gradle.properties | 8 +- src/main/java/com/hbm/blocks/ModBlocks.java | 4 + .../com/hbm/blocks/rail/RailStandardRamp.java | 133 +++ .../hbm/entity/train/EntityRailCarBase.java | 5 +- .../com/hbm/handler/EntityEffectHandler.java | 10 +- .../handler/pollution/PollutionHandler.java | 17 +- src/main/java/com/hbm/main/ClientProxy.java | 1 + .../java/com/hbm/main/ModEventHandler.java | 6 +- .../com/hbm/main/ModEventHandlerClient.java | 5 + .../java/com/hbm/main/ResourceManager.java | 1 + .../render/block/RenderStandardRampRail.java | 80 ++ .../TileEntityMachineElectricFurnace.java | 2 +- src/main/resources/META-INF/HBM_at.cfg | 3 + .../hbm/models/blocks/rail_standard_ramp.obj | 759 ++++++++++++++++++ 15 files changed, 1017 insertions(+), 20 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/rail/RailStandardRamp.java create mode 100644 src/main/java/com/hbm/render/block/RenderStandardRampRail.java create mode 100644 src/main/resources/assets/hbm/models/blocks/rail_standard_ramp.obj diff --git a/changelog b/changelog index d773337ea..5060b78ac 100644 --- a/changelog +++ b/changelog @@ -4,8 +4,11 @@ * Chlorine * Phosgene * Mustard gas +* Euphemium capacitor + * Used for schrabidium transmutation, has infinite durability ## Changed +* Updated russian localization * Mist now spawns cloud particles with the correct color instead of standard white * HE artillery shells and rockets now turn blocks into slag diff --git a/gradle.properties b/gradle.properties index c314b14dd..4c35fac9e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,10 +4,10 @@ mod_build_number=4621 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ - \ porting), UFFR (RTGs, guns, casings), Pu-238 (Tom impact effects), Bismarck (chinese localization),\ - \ Frooz (models), Minecreep (models), VT-6/24 (models, textures), Pheo (textures, various machines,\ - \ models, weapons), Vr (gas centrifuges, better worldgen, ZIRNOX, CP-1 parts, starter guide), Adam29\ - \ (liquid petroleum, ethanol, electric furnace), Pashtet (russian localization), MartinTheDragon\ + \ porting), UFFR (RTGs, guns, casings, euphemium capacitor), Pu-238 (Tom impact effects), Bismarck\ + \ (chinese localization), Frooz (models), Minecreep (models), VT-6/24 (models, textures), Pheo (textures,\ + \ various machines, models, weapons), Vr (gas centrifuges, better worldgen, ZIRNOX, CP-1 parts, starter guide),\ + \ Adam29 (liquid petroleum, ethanol, electric furnace), Pashtet (russian localization), MartinTheDragon\ \ (calculator, chunk-based fallout), haru315 (spiral point algorithm), Sten89 (models), Pixelguru26\ \ (textures), TheBlueHat (textures), Alcater (GUI textures, porting), impbk2002 (project settings),\ \ Burningwater202 (laminate glass), OvermindDL1 (project settings), TehTemmie (reacher radiation function),\ diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 006621f66..75e59d0a7 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -15,6 +15,7 @@ import com.hbm.blocks.rail.RailNarrowCurve; import com.hbm.blocks.rail.RailNarrowStraight; import com.hbm.blocks.rail.RailStandardBuffer; import com.hbm.blocks.rail.RailStandardCurve; +import com.hbm.blocks.rail.RailStandardRamp; import com.hbm.blocks.rail.RailStandardStraight; import com.hbm.blocks.siege.*; import com.hbm.blocks.test.*; @@ -1107,6 +1108,7 @@ public class ModBlocks { public static Block rail_narrow_curve; public static Block rail_large_straight; public static Block rail_large_curve; + public static Block rail_large_ramp; public static Block rail_large_buffer; public static Block statue_elb; @@ -2142,6 +2144,7 @@ public class ModBlocks { rail_narrow_curve = new RailNarrowCurve().setBlockName("rail_narrow_curve").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_narrow_neo"); rail_large_straight = new RailStandardStraight().setBlockName("rail_large_straight").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); rail_large_curve = new RailStandardCurve().setBlockName("rail_large_curve").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); + rail_large_ramp = new RailStandardRamp().setBlockName("rail_large_ramp").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); rail_large_buffer = new RailStandardBuffer().setBlockName("rail_large_buffer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); crate = new BlockCrate(Material.wood).setBlockName("crate").setStepSound(Block.soundTypeWood).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.consumableTab).setBlockTextureName(RefStrings.MODID + ":crate"); @@ -3378,6 +3381,7 @@ public class ModBlocks { register(rail_narrow_curve); register(rail_large_straight); register(rail_large_curve); + register(rail_large_ramp); register(rail_large_buffer); //Crate diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardRamp.java b/src/main/java/com/hbm/blocks/rail/RailStandardRamp.java new file mode 100644 index 000000000..d8cd3fdff --- /dev/null +++ b/src/main/java/com/hbm/blocks/rail/RailStandardRamp.java @@ -0,0 +1,133 @@ +package com.hbm.blocks.rail; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.handler.MultiblockHandlerXR; +import com.hbm.lib.Library; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import cpw.mods.fml.client.registry.RenderingRegistry; +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class RailStandardRamp extends BlockDummyable implements IRailNTM { + + public RailStandardRamp() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return null; + } + + public static int renderID = RenderingRegistry.getNextAvailableRenderId(); + + @Override + public int getRenderType() { + return renderID; + } + + @Override + public int[] getDimensions() { + return new int[] {0, 0, 2, 2, 1, 0}; + } + + @Override + public int getOffset() { + return 2; + } + + @Override + public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { + this.setBlockBounds(0F, 0F, 0F, 1F, 0.125F, 1F); + } + + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + this.setBlockBounds(0F, 0F, 0F, 1F, 0.125F, 1F); + return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); + } + + @Override + public Vec3 getSnappingPos(World world, int x, int y, int z, double trainX, double trainY, double trainZ) { + return snapAndMove(world, x, y, z, trainX, trainY, trainZ, 0, 0, 0, 0, new RailContext()); + } + + @Override + public Vec3 getTravelLocation(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info, MoveContext context) { + return snapAndMove(world, x, y, z, trainX, trainY, trainZ, motionX, motionY, motionZ, speed, info); + } + + /* Very simple function determining the snapping position and adding the motion value to it, if desired. */ + public Vec3 snapAndMove(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info) { + int[] pos = this.findCore(world, x, y, z); + if(pos == null) return Vec3.createVectorHelper(trainX, trainY, trainZ); + int cX = pos[0]; + int cY = pos[1]; + int cZ = pos[2]; + int meta = world.getBlockMetadata(cX, cY, cZ) - this.offset; + ForgeDirection dir = ForgeDirection.getOrientation(meta); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + Vec3 vec = Vec3.createVectorHelper(trainX, trainY, trainZ); + + if(speed == 0) { + //return vec; + } + + if(dir == Library.POS_X || dir == Library.NEG_X) { + double targetX = trainX; + if(motionX > 0) { + targetX += speed; + info.yaw(-90F); + } else { + targetX -= speed; + info.yaw(90F); + } + double dist = (cX + 0.5 - targetX + 2.5) / 5; + vec.xCoord = MathHelper.clamp_double(targetX, cX - 2, cX + 3); + vec.yCoord = MathHelper.clamp_double(dir == Library.POS_X ? cY + dist : cY + 1 - dist, cY, cY + 1); + vec.zCoord = cZ + 0.5 + rot.offsetZ * 0.5; + info.dist(Math.abs(targetX - vec.xCoord) * Math.signum(speed)); + info.pos(new BlockPos(cX + (motionX * speed > 0 ? 3 : -3), cY + (motionX * speed > 0 ^ dir == Library.POS_X ? 1 : 0), cZ)); + } else { + double targetZ = trainZ; + if(motionZ > 0) { + targetZ += speed; + info.yaw(0F); + } else { + targetZ -= speed; + info.yaw(180F); + } + double dist = (cZ + 0.5 - targetZ + 2.5) / 5; + vec.xCoord = cX + 0.5 + rot.offsetX * 0.5; + vec.yCoord = MathHelper.clamp_double(dir == Library.POS_Z ? cY + dist : cY + 1 - dist, cY, cY + 1); + vec.zCoord = MathHelper.clamp_double(targetZ, cZ - 2,cZ + 3); + info.dist(Math.abs(targetZ - vec.zCoord) * Math.signum(speed)); + info.pos(new BlockPos(cX, cY + (motionZ * speed > 0 ^ dir == Library.POS_Z ? 1 : 0), cZ + (motionZ * speed > 0 ? 3 : -3))); + } + + return vec; + } + + @Override + public TrackGauge getGauge(World world, int x, int y, int z) { + return TrackGauge.STANDARD; + } + + protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) { + return MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, getDimensions(), x, y, z, dir) && + MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {1, -1, 2, 2, 1, 0}, x, y, z, dir); + } + + protected void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, getDimensions(), this, dir); + MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {1, -1, 2, 2, 1, 0}, this, dir); + } +} diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java index e5e21d817..7b39c014b 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java @@ -207,6 +207,8 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { double y = posY + rot.yCoord; double z = posZ + rot.zCoord; dummy.setPosition(x, y, z); + dummy.setSize(def.width, def.height); + dummy.velocityChanged = true; worldObj.spawnEntityInWorld(dummy); this.dummies[i] = dummy; } @@ -222,7 +224,6 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { double x = renderX + rot.xCoord; double y = renderY + rot.yCoord; double z = renderZ + rot.zCoord; - dummy.setSize(def.width, def.height); // TEMP dummy.setPosition(x, y, z); } } @@ -372,7 +373,7 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { /** Returns the "true" position of the train, i.e. the block it wants to snap to */ public BlockPos getCurrentAnchorPos() { - return new BlockPos(posX, posY, posZ); + return new BlockPos(posX, posY + 0.25, posZ); } public void derail() { diff --git a/src/main/java/com/hbm/handler/EntityEffectHandler.java b/src/main/java/com/hbm/handler/EntityEffectHandler.java index 2ccce3b4a..6d6f29d5c 100644 --- a/src/main/java/com/hbm/handler/EntityEffectHandler.java +++ b/src/main/java/com/hbm/handler/EntityEffectHandler.java @@ -122,13 +122,13 @@ public class EntityEffectHandler { private static void handleRadiation(EntityLivingBase entity) { - if(ContaminationUtil.isRadImmune(entity)) - return; - World world = entity.worldObj; if(!world.isRemote) { + if(ContaminationUtil.isRadImmune(entity)) + return; + int ix = (int)MathHelper.floor_double(entity.posX); int iy = (int)MathHelper.floor_double(entity.posY); int iz = (int)MathHelper.floor_double(entity.posZ); @@ -416,6 +416,10 @@ public class EntityEffectHandler { } private static void handleOil(EntityLivingBase entity) { + + if(entity.worldObj.isRemote) + return; + int oil = HbmLivingProps.getOil(entity); if(oil > 0) { diff --git a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java index e1bdbf7cd..16d91da8d 100644 --- a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java +++ b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java @@ -153,7 +153,6 @@ public class PollutionHandler { eggTimer++; if(eggTimer < 60) return; eggTimer = 0; - for(Entry entry : perWorld.entrySet()) { HashMap newPollution = new HashMap(); @@ -182,8 +181,12 @@ public class PollutionHandler { PollutionData newData = newPollution.get(chunk.getKey()); if(newData == null) newData = new PollutionData(); - for(int i = 0; i < newData.pollution.length; i++) newData.pollution[i] += data.pollution[i]; - newPollution.put(chunk.getKey(), newData); + boolean shouldPut = false; + for(int i = 0; i < newData.pollution.length; i++) { + newData.pollution[i] += data.pollution[i]; + if(newData.pollution[i] > 0) shouldPut = true; + } + if(shouldPut) newPollution.put(chunk.getKey(), newData); //apply neighbor data to neighboring chunks int[][] offsets = new int[][] {{1, 0}, {-1, 0}, {0, 1}, {0, -1}}; @@ -192,8 +195,12 @@ public class PollutionHandler { PollutionData offsetData = newPollution.get(offPos); if(offsetData == null) offsetData = new PollutionData(); - for(int i = 0; i < offsetData.pollution.length; i++) offsetData.pollution[i] += pollutionForNeightbors[i]; - newPollution.put(offPos, offsetData); + shouldPut = false; + for(int i = 0; i < offsetData.pollution.length; i++) { + offsetData.pollution[i] += pollutionForNeightbors[i]; + if(offsetData.pollution[i] > 0) shouldPut = true; + } + if(shouldPut) newPollution.put(offPos, offsetData); } } diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 3cd7392bc..64ad4bffe 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -788,6 +788,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerBlockHandler(new RenderNarrowCurveRail()); RenderingRegistry.registerBlockHandler(new RenderStandardStraightRail()); RenderingRegistry.registerBlockHandler(new RenderStandardCurveRail()); + RenderingRegistry.registerBlockHandler(new RenderStandardRampRail()); RenderingRegistry.registerBlockHandler(new RenderBlockRotated(ModBlocks.charge_dynamite.getRenderType(), ResourceManager.charge_dynamite)); RenderingRegistry.registerBlockHandler(new RenderBlockRotated(ModBlocks.charge_c4.getRenderType(), ResourceManager.charge_c4)); diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index c7554d48d..69a28216f 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -478,11 +478,7 @@ public class ModEventHandler { @SubscribeEvent public void onLivingUpdate(LivingUpdateEvent event) { - ItemStack[] prevArmor = null; - - try { - prevArmor = (ItemStack[]) ReflectionHelper.findField(EntityLivingBase.class, "field_82180_bT", "previousEquipment").get(event.entityLiving); - } catch(Exception e) { } + ItemStack[] prevArmor = event.entityLiving.previousEquipment; if(event.entityLiving instanceof EntityPlayer && prevArmor != null && event.entityLiving.getHeldItem() != null && (prevArmor[0] == null || prevArmor[0].getItem() != event.entityLiving.getHeldItem().getItem()) diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 4a7bbe41f..31ef5a08e 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -13,6 +13,10 @@ import org.lwjgl.opengl.GL11; import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockAshes; +import com.hbm.blocks.rail.IRailNTM; +import com.hbm.blocks.rail.IRailNTM.MoveContext; +import com.hbm.blocks.rail.IRailNTM.RailCheckType; +import com.hbm.blocks.rail.IRailNTM.RailContext; import com.hbm.config.GeneralConfig; import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.mob.EntityHunterChopper; @@ -66,6 +70,7 @@ import com.hbm.tileentity.machine.TileEntityNukeFurnace; import com.hbm.util.I18nUtil; import com.hbm.util.ItemStackUtil; import com.hbm.util.LoggingUtil; +import com.hbm.util.fauxpointtwelve.BlockPos; import com.hbm.wiaj.GuiWorldInAJar; import com.hbm.wiaj.cannery.CanneryBase; import com.hbm.wiaj.cannery.Jars; diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 1bd34ccdb..c573f1b49 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -1333,6 +1333,7 @@ public class ResourceManager { public static final IModelCustom rail_narrow_curve = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_narrow_bend.obj")); public static final IModelCustom rail_standard_straight = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard.obj")); public static final IModelCustom rail_standard_curve = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_bend.obj")); + public static final IModelCustom rail_standard_ramp = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_ramp.obj")); public static final IModelCustom charge_dynamite = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/charge_dynamite.obj")); public static final IModelCustom charge_c4 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/charge_c4.obj")); diff --git a/src/main/java/com/hbm/render/block/RenderStandardRampRail.java b/src/main/java/com/hbm/render/block/RenderStandardRampRail.java new file mode 100644 index 000000000..eb1e245fd --- /dev/null +++ b/src/main/java/com/hbm/render/block/RenderStandardRampRail.java @@ -0,0 +1,80 @@ +package com.hbm.render.block; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.rail.RailStandardRamp; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; + +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.world.IBlockAccess; +import net.minecraftforge.client.model.obj.WavefrontObject; + +public class RenderStandardRampRail implements ISimpleBlockRenderingHandler { + + @Override + public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { + + GL11.glPushMatrix(); + Tessellator tessellator = Tessellator.instance; + + GL11.glTranslated(0, -0.0625, 0); + GL11.glRotated(90, 0, 1, 0); + GL11.glScaled(0.3, 0.3, 0.3); + tessellator.startDrawingQuads(); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_ramp, block.getIcon(1, 0), tessellator, 0, false); + tessellator.draw(); + + GL11.glPopMatrix(); + } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { + + int meta = world.getBlockMetadata(x, y, z); + if(meta < 12) return true; + + Tessellator tessellator = Tessellator.instance; + + tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); + tessellator.setColorOpaque_F(1, 1, 1); + + float rotation = 0; + + if(meta == 15) + rotation = 90F / 180F * (float) Math.PI; + if(meta == 12) + rotation = 180F / 180F * (float) Math.PI; + if(meta == 14) + rotation = 270F / 180F * (float) Math.PI; + + if(meta == 12) tessellator.addTranslation(0.5F, 0F, 0F); + if(meta == 13) tessellator.addTranslation(-0.5F, 0F, 0F); + if(meta == 14) tessellator.addTranslation(0F, 0F, -0.5F); + if(meta == 15) tessellator.addTranslation(0F, 0F, 0.5F); + + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_ramp, block.getIcon(1, 0), tessellator, rotation, true); + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + + if(meta == 12) tessellator.addTranslation(-0.5F, 0F, 0F); + if(meta == 13) tessellator.addTranslation(0.5F, 0F, 0F); + if(meta == 14) tessellator.addTranslation(0F, 0F, 0.5F); + if(meta == 15) tessellator.addTranslation(0F, 0F, -0.5F); + + return true; + } + + @Override + public boolean shouldRender3DInInventory(int modelId) { + return true; + } + + @Override + public int getRenderId() { + return RailStandardRamp.renderID; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java index 3a51328b0..53e8c3f74 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java @@ -166,7 +166,7 @@ public class TileEntityMachineElectricFurnace extends TileEntityMachineBase impl power = Library.chargeTEFromItems(slots, 0, power, maxPower); - this.updateConnections(); + if(worldObj.getTotalWorldTime() % 40 == 0) this.updateConnections(); this.consumption = 50; this.maxProgress = 100; diff --git a/src/main/resources/META-INF/HBM_at.cfg b/src/main/resources/META-INF/HBM_at.cfg index ab5149f2d..7fa1a50fe 100644 --- a/src/main/resources/META-INF/HBM_at.cfg +++ b/src/main/resources/META-INF/HBM_at.cfg @@ -18,3 +18,6 @@ public net.minecraft.client.settings.KeyBinding field_151474_i # pr # GuiMainMenu public net.minecraft.client.gui.GuiMainMenu field_73975_c # splashText + +# EntityLivingBase +public net.minecraft.entity.EntityLivingBase field_82180_bT # previousEquipment diff --git a/src/main/resources/assets/hbm/models/blocks/rail_standard_ramp.obj b/src/main/resources/assets/hbm/models/blocks/rail_standard_ramp.obj new file mode 100644 index 000000000..2dec4fc8c --- /dev/null +++ b/src/main/resources/assets/hbm/models/blocks/rail_standard_ramp.obj @@ -0,0 +1,759 @@ +# Blender v2.79 (sub 0) OBJ File: 'rail_standard_ramp.blend' +# www.blender.org +o Plane.001 +v 1.000000 0.562500 -0.187500 +v 1.000000 0.562500 0.187500 +v -1.000000 0.562500 0.187500 +v -1.000000 0.562500 -0.187500 +v -1.000000 0.500000 0.187500 +v 1.000000 0.500000 0.187500 +v -1.000000 0.500000 -0.187500 +v 1.000000 0.500000 -0.187500 +v -1.000000 0.700000 -0.812500 +v 1.000000 0.700000 -0.812500 +v -1.000000 0.700000 -1.187500 +v 1.000000 0.700000 -1.187500 +v -1.000000 0.800000 -1.812500 +v 1.000000 0.800000 -1.812500 +v -1.000000 0.800000 -2.187500 +v 1.000000 0.800000 -2.187500 +v -1.000000 0.100000 2.187500 +v 1.000000 0.100000 2.187500 +v -1.000000 0.100000 1.812500 +v 1.000000 0.100000 1.812500 +v -1.000000 0.300000 1.187500 +v 1.000000 0.300000 1.187500 +v -1.000000 0.300000 0.812500 +v 1.000000 0.300000 0.812500 +v -1.000000 0.762500 -1.187500 +v -1.000000 0.762500 -0.812500 +v 1.000000 0.762500 -0.812500 +v 1.000000 0.762500 -1.187500 +v -1.000000 0.862500 -2.187500 +v -1.000000 0.862500 -1.812500 +v 1.000000 0.862500 -1.812500 +v 1.000000 0.862500 -2.187500 +v -1.000000 0.162500 1.812500 +v -1.000000 0.162500 2.187500 +v 1.000000 0.162500 2.187500 +v 1.000000 0.162500 1.812500 +v -1.000000 0.362500 0.812500 +v -1.000000 0.362500 1.187500 +v 1.000000 0.362500 1.187500 +v 1.000000 0.362500 0.812500 +v -0.812500 0.062500 2.500000 +v 0.812500 0.062500 2.500000 +v -0.812500 1.062500 -2.500000 +v 0.812500 1.062500 -2.500000 +v -0.812500 0.187500 2.500000 +v 0.812500 0.187500 2.500000 +v -0.812500 1.187500 -2.500000 +v 0.812500 1.187500 -2.500000 +v 0.750000 0.062500 2.500000 +v 0.750000 1.062500 -2.500000 +v 0.750000 0.187500 2.500000 +v 0.750000 1.187500 -2.500000 +v -0.750000 1.062500 -2.500000 +v -0.750000 0.062500 2.500000 +v -0.750000 1.187500 -2.500000 +v -0.750000 0.187500 2.500000 +v 0.625000 0.162500 2.062500 +v 0.937500 0.162500 2.062500 +v 0.625000 0.162500 1.937500 +v 0.937500 0.162500 1.937500 +v 0.625000 0.225000 2.062500 +v 0.937500 0.225000 2.062500 +v 0.625000 0.225000 1.937500 +v 0.937500 0.225000 1.937500 +v -0.937500 0.162500 2.062500 +v -0.625000 0.162500 2.062500 +v -0.937500 0.162500 1.937500 +v -0.625000 0.162500 1.937500 +v -0.937500 0.225000 2.062500 +v -0.625000 0.225000 2.062500 +v -0.937500 0.225000 1.937500 +v -0.625000 0.225000 1.937500 +v 0.625000 0.362500 1.062500 +v 0.937500 0.362500 1.062500 +v 0.625000 0.362500 0.937500 +v 0.937500 0.362500 0.937500 +v 0.625000 0.425000 1.062500 +v 0.937500 0.425000 1.062500 +v 0.625000 0.425000 0.937500 +v 0.937500 0.425000 0.937500 +v -0.937500 0.362500 1.062500 +v -0.625000 0.362500 1.062500 +v -0.937500 0.362500 0.937500 +v -0.625000 0.362500 0.937500 +v -0.937500 0.425000 1.062500 +v -0.625000 0.425000 1.062500 +v -0.937500 0.425000 0.937500 +v -0.625000 0.425000 0.937500 +v 0.625000 0.562500 0.062500 +v 0.937500 0.562500 0.062500 +v 0.625000 0.562500 -0.062500 +v 0.937500 0.562500 -0.062500 +v 0.625000 0.625000 0.062500 +v 0.937500 0.625000 0.062500 +v 0.625000 0.625000 -0.062500 +v 0.937500 0.625000 -0.062500 +v -0.937500 0.562500 0.062500 +v -0.625000 0.562500 0.062500 +v -0.937500 0.562500 -0.062500 +v -0.625000 0.562500 -0.062500 +v -0.937500 0.625000 0.062500 +v -0.625000 0.625000 0.062500 +v -0.937500 0.625000 -0.062500 +v -0.625000 0.625000 -0.062500 +v 0.625000 0.762500 -0.937500 +v 0.937500 0.762500 -0.937500 +v 0.625000 0.762500 -1.062500 +v 0.937500 0.762500 -1.062500 +v 0.625000 0.825000 -0.937500 +v 0.937500 0.825000 -0.937500 +v 0.625000 0.825000 -1.062500 +v 0.937500 0.825000 -1.062500 +v -0.937500 0.762500 -0.937500 +v -0.625000 0.762500 -0.937500 +v -0.937500 0.762500 -1.062500 +v -0.625000 0.762500 -1.062500 +v -0.937500 0.825000 -0.937500 +v -0.625000 0.825000 -0.937500 +v -0.937500 0.825000 -1.062500 +v -0.625000 0.825000 -1.062500 +v 0.625000 0.862500 -1.937500 +v 0.937500 0.862500 -1.937500 +v 0.625000 0.862500 -2.062500 +v 0.937500 0.862500 -2.062500 +v 0.625000 0.925000 -1.937500 +v 0.937500 0.925000 -1.937500 +v 0.625000 0.925000 -2.062500 +v 0.937500 0.925000 -2.062500 +v -0.937500 0.862500 -1.937500 +v -0.625000 0.862500 -1.937500 +v -0.937500 0.862500 -2.062500 +v -0.625000 0.862500 -2.062500 +v -0.937500 0.925000 -1.937500 +v -0.625000 0.925000 -1.937500 +v -0.937500 0.925000 -2.062500 +v -0.625000 0.925000 -2.062500 +v -0.812500 0.862500 -1.500000 +v -0.812500 0.662500 -0.500000 +v -0.812500 0.462500 0.500000 +v -0.812500 0.262500 1.500000 +v 0.812500 0.262500 1.500000 +v 0.812500 0.462500 0.500000 +v 0.812500 0.662500 -0.500000 +v 0.812500 0.862500 -1.500000 +v -0.812500 0.987500 -1.500000 +v -0.812500 0.787500 -0.500000 +v -0.812500 0.587500 0.500000 +v -0.812500 0.387500 1.500000 +v 0.812500 0.387500 1.500000 +v 0.812500 0.587500 0.500000 +v 0.812500 0.787500 -0.500000 +v 0.812500 0.987500 -1.500000 +v 0.750000 0.262500 1.500000 +v 0.750000 0.462500 0.500000 +v 0.750000 0.662500 -0.500000 +v 0.750000 0.862500 -1.500000 +v 0.750000 0.387500 1.500000 +v 0.750000 0.587500 0.500000 +v 0.750000 0.787500 -0.500000 +v 0.750000 0.987500 -1.500000 +v -0.750000 0.862500 -1.500000 +v -0.750000 0.662500 -0.500000 +v -0.750000 0.462500 0.500000 +v -0.750000 0.262500 1.500000 +v -0.750000 0.987500 -1.500000 +v -0.750000 0.787500 -0.500000 +v -0.750000 0.587500 0.500000 +v -0.750000 0.387500 1.500000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt 0.218750 1.000000 +vt 0.406250 0.000000 +vt 0.406250 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.000000 +vt 0.187500 1.000000 +vt -0.000000 1.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.218750 1.000000 +vt 0.187500 -0.000000 +vt 0.218750 -0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.593750 -0.000000 +vt 0.406250 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.406250 0.031250 +vt 0.593750 -0.000000 +vt 0.593750 0.031250 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.531250 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.656250 +vt 0.531250 0.156250 +vt 0.531250 0.718750 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.406250 0.156250 +vt 0.500000 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.718750 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.406250 0.156250 +vt 0.406250 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.531250 0.718750 +vt 0.500000 0.718750 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.437500 0.062500 +vt 0.406250 0.125000 +vt 0.406250 0.062500 +vt 0.437500 0.125000 +vt 0.593750 0.156250 +vt 0.437500 0.156250 +vt 0.593750 0.062500 +vt 0.437500 0.031250 +vt 0.593750 0.031250 +vt 0.593750 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.156250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.156250 +vt 0.500000 0.656250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.437500 0.656250 +vt 0.406250 0.156250 +vt 0.437500 0.156250 +vt 0.500000 0.156250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.500000 0.156250 +vt 0.531250 0.656250 +vt 0.500000 0.656250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.531250 0.156250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.593750 0.156250 +vt 0.593750 0.656250 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.406250 -0.000000 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.187500 1.000000 +vt 0.593750 0.031250 +vt 0.593750 0.031250 +vt 0.406250 -0.000000 +vt 0.593750 0.656250 +vt 0.500000 0.718750 +vt 0.406250 0.656250 +vt 0.531250 0.656250 +vt 0.500000 0.718750 +vt 0.531250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.406250 0.656250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vt 0.593750 0.656250 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.9806 0.1961 +vn 0.0000 -0.9806 -0.1961 +s off +f 2/1/1 4/2/1 3/3/1 +f 7/4/2 6/5/2 5/6/2 +f 11/7/2 10/8/2 9/9/2 +f 15/10/2 14/11/2 13/12/2 +f 19/13/2 18/14/2 17/15/2 +f 23/16/2 22/17/2 21/18/2 +f 27/19/1 25/20/1 26/21/1 +f 31/22/1 29/23/1 30/24/1 +f 35/25/1 33/26/1 34/27/1 +f 39/28/1 37/29/1 38/30/1 +f 17/31/3 33/32/3 19/33/3 +f 10/34/4 26/35/4 9/36/4 +f 18/37/4 34/38/4 17/39/4 +f 12/40/5 27/41/5 10/8/5 +f 20/42/5 35/43/5 18/14/5 +f 11/7/6 28/44/6 12/45/6 +f 5/46/3 4/47/3 7/48/3 +f 19/13/6 36/49/6 20/50/6 +f 13/51/3 29/52/3 15/53/3 +f 6/54/4 3/55/4 5/56/4 +f 21/57/3 37/58/3 23/59/3 +f 14/60/4 30/61/4 13/62/4 +f 8/63/5 2/64/5 6/5/5 +f 22/65/4 38/66/4 21/67/4 +f 16/68/5 31/69/5 14/11/5 +f 7/4/6 1/70/6 8/71/6 +f 24/72/5 39/73/5 22/17/5 +f 15/10/6 32/74/6 16/75/6 +f 9/76/3 25/77/3 11/78/3 +f 23/16/6 40/79/6 24/80/6 +f 141/81/5 46/82/5 42/83/5 +f 145/84/3 43/85/3 137/86/3 +f 153/87/3 51/88/3 157/89/3 +f 46/90/4 49/91/4 42/92/4 +f 48/93/7 160/94/7 152/95/7 +f 42/83/8 153/96/8 141/81/8 +f 44/97/6 52/98/6 48/99/6 +f 53/100/5 165/101/5 161/102/5 +f 45/103/7 168/104/7 148/105/7 +f 43/106/8 161/102/8 137/107/8 +f 47/108/6 53/109/6 43/110/6 +f 41/111/4 56/112/4 45/113/4 +f 61/114/3 59/115/3 57/116/3 +f 63/117/6 60/118/6 59/119/6 +f 62/120/4 57/121/4 58/122/4 +f 64/123/5 58/124/5 60/125/5 +f 61/114/1 64/123/1 63/117/1 +f 69/126/3 67/127/3 65/128/3 +f 71/129/6 68/130/6 67/131/6 +f 70/132/4 65/133/4 66/134/4 +f 72/135/5 66/136/5 68/137/5 +f 69/126/1 72/135/1 71/129/1 +f 77/138/3 75/139/3 73/140/3 +f 79/141/6 76/142/6 75/143/6 +f 78/144/4 73/145/4 74/146/4 +f 80/147/5 74/148/5 76/149/5 +f 77/138/1 80/147/1 79/141/1 +f 85/150/3 83/151/3 81/152/3 +f 87/153/6 84/154/6 83/155/6 +f 86/156/4 81/157/4 82/158/4 +f 88/159/5 82/160/5 84/161/5 +f 85/150/1 88/159/1 87/153/1 +f 93/162/3 91/163/3 89/164/3 +f 95/165/6 92/166/6 91/167/6 +f 94/168/4 89/169/4 90/170/4 +f 96/171/5 90/172/5 92/173/5 +f 93/162/1 96/171/1 95/165/1 +f 101/174/3 99/175/3 97/176/3 +f 103/177/6 100/178/6 99/179/6 +f 102/180/4 97/181/4 98/182/4 +f 104/183/5 98/184/5 100/185/5 +f 101/174/1 104/183/1 103/177/1 +f 109/186/3 107/187/3 105/188/3 +f 111/189/6 108/190/6 107/191/6 +f 110/192/4 105/193/4 106/194/4 +f 112/195/5 106/196/5 108/197/5 +f 109/186/1 112/195/1 111/189/1 +f 117/198/3 115/199/3 113/200/3 +f 119/201/6 116/202/6 115/203/6 +f 118/204/4 113/205/4 114/206/4 +f 120/207/5 114/208/5 116/209/5 +f 117/198/1 120/207/1 119/201/1 +f 125/210/3 123/211/3 121/212/3 +f 127/213/6 124/214/6 123/215/6 +f 126/216/4 121/217/4 122/218/4 +f 128/219/5 122/220/5 124/221/5 +f 125/210/1 128/219/1 127/213/1 +f 133/222/3 131/223/3 129/224/3 +f 135/225/6 132/226/6 131/227/6 +f 134/228/4 129/229/4 130/230/4 +f 136/231/5 130/232/5 132/233/5 +f 133/222/1 136/231/1 135/225/1 +f 140/234/8 54/235/8 41/236/8 +f 139/237/8 164/238/8 140/239/8 +f 138/240/8 163/241/8 139/242/8 +f 137/243/8 162/244/8 138/245/8 +f 145/84/7 55/246/7 47/247/7 +f 146/248/7 165/249/7 145/250/7 +f 147/251/7 166/252/7 146/253/7 +f 148/254/7 167/255/7 147/256/7 +f 164/257/5 56/258/5 54/235/5 +f 163/259/5 168/260/5 164/238/5 +f 162/261/5 167/262/5 163/241/5 +f 161/263/5 166/264/5 162/244/5 +f 144/265/8 50/266/8 44/267/8 +f 143/268/8 156/269/8 144/270/8 +f 142/271/8 155/272/8 143/273/8 +f 141/274/8 154/275/8 142/276/8 +f 149/277/7 51/88/7 46/82/7 +f 150/278/7 157/279/7 149/280/7 +f 151/281/7 158/282/7 150/283/7 +f 152/284/7 159/285/7 151/286/7 +f 50/287/3 160/94/3 52/288/3 +f 156/289/3 159/285/3 160/290/3 +f 155/291/3 158/282/3 159/292/3 +f 154/293/3 157/279/3 158/294/3 +f 45/103/3 140/295/3 41/296/3 +f 148/254/3 139/297/3 140/298/3 +f 147/251/3 138/299/3 139/300/3 +f 146/248/3 137/301/3 138/302/3 +f 44/267/5 152/95/5 144/265/5 +f 144/270/5 151/286/5 143/268/5 +f 143/273/5 150/283/5 142/271/5 +f 142/276/5 149/280/5 141/274/5 +f 2/1/1 1/70/1 4/2/1 +f 7/4/2 8/71/2 6/5/2 +f 11/7/2 12/45/2 10/8/2 +f 15/10/2 16/75/2 14/11/2 +f 19/13/2 20/50/2 18/14/2 +f 23/16/2 24/80/2 22/17/2 +f 27/19/1 28/44/1 25/20/1 +f 31/22/1 32/74/1 29/23/1 +f 35/25/1 36/49/1 33/26/1 +f 39/28/1 40/79/1 37/29/1 +f 17/31/3 34/303/3 33/32/3 +f 10/34/4 27/304/4 26/35/4 +f 18/37/4 35/305/4 34/38/4 +f 12/40/5 28/306/5 27/41/5 +f 20/42/5 36/307/5 35/43/5 +f 11/7/6 25/20/6 28/44/6 +f 5/46/3 3/308/3 4/47/3 +f 19/13/6 33/26/6 36/49/6 +f 13/51/3 30/309/3 29/52/3 +f 6/54/4 2/310/4 3/55/4 +f 21/57/3 38/311/3 37/58/3 +f 14/60/4 31/312/4 30/61/4 +f 8/63/5 1/313/5 2/64/5 +f 22/65/4 39/314/4 38/66/4 +f 16/68/5 32/315/5 31/69/5 +f 7/4/6 4/2/6 1/70/6 +f 24/72/5 40/316/5 39/73/5 +f 15/10/6 29/23/6 32/74/6 +f 9/76/3 26/317/3 25/77/3 +f 23/16/6 37/29/6 40/79/6 +f 141/81/5 149/277/5 46/82/5 +f 145/84/3 47/247/3 43/85/3 +f 153/87/3 49/318/3 51/88/3 +f 46/90/4 51/319/4 49/91/4 +f 48/93/7 52/288/7 160/94/7 +f 42/83/8 49/320/8 153/96/8 +f 44/97/6 50/321/6 52/98/6 +f 53/100/5 55/246/5 165/101/5 +f 45/103/7 56/258/7 168/104/7 +f 43/106/8 53/100/8 161/102/8 +f 47/108/6 55/322/6 53/109/6 +f 41/111/4 54/323/4 56/112/4 +f 61/114/3 63/117/3 59/115/3 +f 63/117/6 64/123/6 60/118/6 +f 62/120/4 61/114/4 57/121/4 +f 64/123/5 62/120/5 58/124/5 +f 61/114/1 62/120/1 64/123/1 +f 69/126/3 71/129/3 67/127/3 +f 71/129/6 72/135/6 68/130/6 +f 70/132/4 69/126/4 65/133/4 +f 72/135/5 70/132/5 66/136/5 +f 69/126/1 70/132/1 72/135/1 +f 77/138/3 79/141/3 75/139/3 +f 79/141/6 80/147/6 76/142/6 +f 78/144/4 77/138/4 73/145/4 +f 80/147/5 78/144/5 74/148/5 +f 77/138/1 78/144/1 80/147/1 +f 85/150/3 87/153/3 83/151/3 +f 87/153/6 88/159/6 84/154/6 +f 86/156/4 85/150/4 81/157/4 +f 88/159/5 86/156/5 82/160/5 +f 85/150/1 86/156/1 88/159/1 +f 93/162/3 95/165/3 91/163/3 +f 95/165/6 96/171/6 92/166/6 +f 94/168/4 93/162/4 89/169/4 +f 96/171/5 94/168/5 90/172/5 +f 93/162/1 94/168/1 96/171/1 +f 101/174/3 103/177/3 99/175/3 +f 103/177/6 104/183/6 100/178/6 +f 102/180/4 101/174/4 97/181/4 +f 104/183/5 102/180/5 98/184/5 +f 101/174/1 102/180/1 104/183/1 +f 109/186/3 111/189/3 107/187/3 +f 111/189/6 112/195/6 108/190/6 +f 110/192/4 109/186/4 105/193/4 +f 112/195/5 110/192/5 106/196/5 +f 109/186/1 110/192/1 112/195/1 +f 117/198/3 119/201/3 115/199/3 +f 119/201/6 120/207/6 116/202/6 +f 118/204/4 117/198/4 113/205/4 +f 120/207/5 118/204/5 114/208/5 +f 117/198/1 118/204/1 120/207/1 +f 125/210/3 127/213/3 123/211/3 +f 127/213/6 128/219/6 124/214/6 +f 126/216/4 125/210/4 121/217/4 +f 128/219/5 126/216/5 122/220/5 +f 125/210/1 126/216/1 128/219/1 +f 133/222/3 135/225/3 131/223/3 +f 135/225/6 136/231/6 132/226/6 +f 134/228/4 133/222/4 129/229/4 +f 136/231/5 134/228/5 130/232/5 +f 133/222/1 134/228/1 136/231/1 +f 140/234/8 164/257/8 54/235/8 +f 139/237/8 163/259/8 164/238/8 +f 138/240/8 162/261/8 163/241/8 +f 137/243/8 161/263/8 162/244/8 +f 145/84/7 165/101/7 55/246/7 +f 146/248/7 166/264/7 165/249/7 +f 147/251/7 167/262/7 166/252/7 +f 148/254/7 168/260/7 167/255/7 +f 164/257/5 168/104/5 56/258/5 +f 163/259/5 167/255/5 168/260/5 +f 162/261/5 166/252/5 167/262/5 +f 161/263/5 165/249/5 166/264/5 +f 144/265/8 156/324/8 50/266/8 +f 143/268/8 155/325/8 156/269/8 +f 142/271/8 154/326/8 155/272/8 +f 141/274/8 153/327/8 154/275/8 +f 149/277/7 157/89/7 51/88/7 +f 150/278/7 158/294/7 157/279/7 +f 151/281/7 159/292/7 158/282/7 +f 152/284/7 160/290/7 159/285/7 +f 50/287/3 156/328/3 160/94/3 +f 156/289/3 155/329/3 159/285/3 +f 155/291/3 154/330/3 158/282/3 +f 154/293/3 153/331/3 157/279/3 +f 45/103/3 148/105/3 140/295/3 +f 148/254/3 147/256/3 139/297/3 +f 147/251/3 146/253/3 138/299/3 +f 146/248/3 145/250/3 137/301/3 +f 44/267/5 48/93/5 152/95/5 +f 144/270/5 152/284/5 151/286/5 +f 143/273/5 151/281/5 150/283/5 +f 142/276/5 150/278/5 149/280/5 From 4846313b06855d0710d30153f9b1c006961bb5eb Mon Sep 17 00:00:00 2001 From: Bob Date: Thu, 8 Jun 2023 22:32:27 +0200 Subject: [PATCH 096/432] can't forget this thing --- .../assets/hbm/models/weapons/coilgun.obj | 5594 +++++++++-------- 1 file changed, 2910 insertions(+), 2684 deletions(-) diff --git a/src/main/resources/assets/hbm/models/weapons/coilgun.obj b/src/main/resources/assets/hbm/models/weapons/coilgun.obj index 2bf0c74b4..50e810e4b 100644 --- a/src/main/resources/assets/hbm/models/weapons/coilgun.obj +++ b/src/main/resources/assets/hbm/models/weapons/coilgun.obj @@ -1,256 +1,256 @@ # Blender v2.79 (sub 0) OBJ File: 'coilgun.blend' # www.blender.org o Coils_Cylinder.012 -v -0.463562 0.524760 -0.428106 -v -0.237813 0.524760 -0.428106 -v -0.237813 0.222044 -0.302716 -v -0.463562 0.222044 -0.302716 -v -0.237813 0.096655 0.000000 -v -0.463562 0.096655 0.000000 -v -0.237813 0.222044 0.302716 -v -0.463562 0.222044 0.302716 -v -0.237813 0.524760 0.428106 -v -0.463562 0.524760 0.428106 -v -0.237813 0.827477 0.302716 -v -0.463562 0.827477 0.302716 -v -0.237813 0.952866 0.000000 -v -0.463562 0.952866 0.000000 -v -0.237813 0.827477 -0.302716 -v -0.463562 0.827477 -0.302716 -v -0.170088 0.524760 -0.428106 -v 0.055660 0.524760 -0.428106 -v 0.055660 0.222044 -0.302716 -v -0.170088 0.222044 -0.302716 -v 0.055660 0.096655 0.000000 -v -0.170088 0.096655 0.000000 -v 0.055660 0.222044 0.302716 -v -0.170088 0.222044 0.302716 -v 0.055660 0.524760 0.428106 -v -0.170088 0.524760 0.428106 -v 0.055660 0.827477 0.302716 -v -0.170088 0.827477 0.302716 -v 0.055660 0.952866 0.000000 -v -0.170088 0.952866 0.000000 -v 0.055660 0.827477 -0.302716 -v -0.170088 0.827477 -0.302716 -v 0.123385 0.524760 -0.428106 -v 0.349134 0.524760 -0.428106 -v 0.349134 0.222044 -0.302716 -v 0.123385 0.222044 -0.302716 -v 0.349134 0.096655 0.000000 -v 0.123385 0.096655 0.000000 -v 0.349134 0.222044 0.302716 -v 0.123385 0.222044 0.302716 -v 0.349134 0.524760 0.428106 -v 0.123385 0.524760 0.428106 -v 0.349134 0.827477 0.302716 -v 0.123385 0.827477 0.302716 -v 0.349134 0.952866 0.000000 -v 0.123385 0.952866 0.000000 -v 0.349134 0.827477 -0.302716 -v 0.123385 0.827477 -0.302716 -v 0.416858 0.524760 -0.428106 -v 0.642607 0.524760 -0.428106 -v 0.642607 0.222044 -0.302716 -v 0.416858 0.222044 -0.302716 -v 0.642607 0.096655 0.000000 -v 0.416858 0.096655 0.000000 -v 0.642607 0.222044 0.302716 -v 0.416858 0.222044 0.302716 -v 0.642607 0.524760 0.428106 -v 0.416858 0.524760 0.428106 -v 0.642607 0.827477 0.302716 -v 0.416858 0.827477 0.302716 -v 0.642607 0.952866 0.000000 -v 0.416858 0.952866 0.000000 -v 0.642607 0.827477 -0.302716 -v 0.416858 0.827477 -0.302716 -v 0.710331 0.524760 -0.428106 -v 0.936080 0.524760 -0.428106 -v 0.936080 0.222044 -0.302716 -v 0.710331 0.222044 -0.302716 -v 0.936080 0.096655 0.000000 -v 0.710331 0.096655 0.000000 -v 0.936080 0.222044 0.302716 -v 0.710331 0.222044 0.302716 -v 0.936080 0.524760 0.428106 -v 0.710331 0.524760 0.428106 -v 0.936080 0.827477 0.302716 -v 0.710331 0.827477 0.302716 -v 0.936080 0.952866 0.000000 -v 0.710331 0.952866 0.000000 -v 0.936080 0.827477 -0.302716 -v 0.710331 0.827477 -0.302716 -vt 1.000000 0.500000 -vt 1.000000 1.000000 -vt 0.875000 1.000000 -vt 0.875000 0.500000 -vt 0.750000 1.000000 -vt 0.750000 0.500000 -vt 0.625000 1.000000 -vt 0.625000 0.500000 -vt 0.500000 1.000000 -vt 0.500000 0.500000 -vt 0.375000 1.000000 -vt 0.375000 0.500000 -vt 0.250000 1.000000 -vt 0.250000 0.500000 -vt 0.419706 0.419706 -vt 0.250000 0.490000 -vt 0.080294 0.419706 -vt 0.010000 0.250000 -vt 0.080294 0.080294 -vt 0.250000 0.010000 -vt 0.419706 0.080294 -vt 0.490000 0.250000 -vt 0.125000 1.000000 -vt 0.125000 0.500000 -vt 0.000000 1.000000 -vt 0.000000 0.500000 -vt 0.750000 0.490000 -vt 0.919706 0.419706 -vt 0.990000 0.250000 -vt 0.919706 0.080294 -vt 0.750000 0.010000 -vt 0.580294 0.080294 -vt 0.510000 0.250000 -vt 0.580294 0.419706 -vt 1.000000 0.500000 -vt 1.000000 1.000000 -vt 0.875000 1.000000 -vt 0.875000 0.500000 -vt 0.750000 1.000000 -vt 0.750000 0.500000 -vt 0.625000 1.000000 -vt 0.625000 0.500000 -vt 0.500000 1.000000 -vt 0.500000 0.500000 -vt 0.375000 1.000000 -vt 0.375000 0.500000 -vt 0.250000 1.000000 -vt 0.250000 0.500000 -vt 0.419706 0.419706 -vt 0.250000 0.490000 -vt 0.080294 0.419706 -vt 0.010000 0.250000 -vt 0.080294 0.080294 -vt 0.250000 0.010000 -vt 0.419706 0.080294 -vt 0.490000 0.250000 -vt 0.125000 1.000000 -vt 0.125000 0.500000 -vt 0.000000 1.000000 -vt 0.000000 0.500000 -vt 0.750000 0.490000 -vt 0.919706 0.419706 -vt 0.990000 0.250000 -vt 0.919706 0.080294 -vt 0.750000 0.010000 -vt 0.580294 0.080294 -vt 0.510000 0.250000 -vt 0.580294 0.419706 -vt 1.000000 0.500000 -vt 1.000000 1.000000 -vt 0.875000 1.000000 -vt 0.875000 0.500000 -vt 0.750000 1.000000 -vt 0.750000 0.500000 -vt 0.625000 1.000000 -vt 0.625000 0.500000 -vt 0.500000 1.000000 -vt 0.500000 0.500000 -vt 0.375000 1.000000 -vt 0.375000 0.500000 -vt 0.250000 1.000000 -vt 0.250000 0.500000 -vt 0.419706 0.419706 -vt 0.250000 0.490000 -vt 0.080294 0.419706 -vt 0.010000 0.250000 -vt 0.080294 0.080294 -vt 0.250000 0.010000 -vt 0.419706 0.080294 -vt 0.490000 0.250000 -vt 0.125000 1.000000 -vt 0.125000 0.500000 -vt 0.000000 1.000000 -vt 0.000000 0.500000 -vt 0.750000 0.490000 -vt 0.919706 0.419706 -vt 0.990000 0.250000 -vt 0.919706 0.080294 -vt 0.750000 0.010000 -vt 0.580294 0.080294 -vt 0.510000 0.250000 -vt 0.580294 0.419706 -vt 1.000000 0.500000 -vt 1.000000 1.000000 -vt 0.875000 1.000000 -vt 0.875000 0.500000 -vt 0.750000 1.000000 -vt 0.750000 0.500000 -vt 0.625000 1.000000 -vt 0.625000 0.500000 -vt 0.500000 1.000000 -vt 0.500000 0.500000 -vt 0.375000 1.000000 -vt 0.375000 0.500000 -vt 0.250000 1.000000 -vt 0.250000 0.500000 -vt 0.419706 0.419706 -vt 0.250000 0.490000 -vt 0.080294 0.419706 -vt 0.010000 0.250000 -vt 0.080294 0.080294 -vt 0.250000 0.010000 -vt 0.419706 0.080294 -vt 0.490000 0.250000 -vt 0.125000 1.000000 -vt 0.125000 0.500000 -vt 0.000000 1.000000 -vt 0.000000 0.500000 -vt 0.750000 0.490000 -vt 0.919706 0.419706 -vt 0.990000 0.250000 -vt 0.919706 0.080294 -vt 0.750000 0.010000 -vt 0.580294 0.080294 -vt 0.510000 0.250000 -vt 0.580294 0.419706 -vt 1.000000 0.500000 -vt 1.000000 1.000000 -vt 0.875000 1.000000 -vt 0.875000 0.500000 -vt 0.750000 1.000000 -vt 0.750000 0.500000 -vt 0.625000 1.000000 -vt 0.625000 0.500000 -vt 0.500000 1.000000 -vt 0.500000 0.500000 -vt 0.375000 1.000000 -vt 0.375000 0.500000 -vt 0.250000 1.000000 -vt 0.250000 0.500000 -vt 0.419706 0.419706 -vt 0.250000 0.490000 -vt 0.080294 0.419706 -vt 0.010000 0.250000 -vt 0.080294 0.080294 -vt 0.250000 0.010000 -vt 0.419706 0.080294 -vt 0.490000 0.250000 -vt 0.125000 1.000000 -vt 0.125000 0.500000 -vt 0.000000 1.000000 -vt 0.000000 0.500000 -vt 0.750000 0.490000 -vt 0.919706 0.419706 -vt 0.990000 0.250000 -vt 0.919706 0.080294 -vt 0.750000 0.010000 -vt 0.580294 0.080294 -vt 0.510000 0.250000 -vt 0.580294 0.419706 +v -0.463562 0.524760 2.571894 +v -0.237813 0.524760 2.571894 +v -0.237813 0.222044 2.697284 +v -0.463562 0.222044 2.697284 +v -0.237813 0.096655 3.000000 +v -0.463562 0.096655 3.000000 +v -0.237813 0.222044 3.302716 +v -0.463562 0.222044 3.302716 +v -0.237813 0.524760 3.428106 +v -0.463562 0.524760 3.428106 +v -0.237813 0.827477 3.302716 +v -0.463562 0.827477 3.302716 +v -0.237813 0.952866 3.000000 +v -0.463562 0.952866 3.000000 +v -0.237813 0.827477 2.697284 +v -0.463562 0.827477 2.697284 +v -0.170088 0.524760 2.571894 +v 0.055660 0.524760 2.571894 +v 0.055660 0.222044 2.697284 +v -0.170088 0.222044 2.697284 +v 0.055660 0.096655 3.000000 +v -0.170088 0.096655 3.000000 +v 0.055660 0.222044 3.302716 +v -0.170088 0.222044 3.302716 +v 0.055660 0.524760 3.428106 +v -0.170088 0.524760 3.428106 +v 0.055660 0.827477 3.302716 +v -0.170088 0.827477 3.302716 +v 0.055660 0.952866 3.000000 +v -0.170088 0.952866 3.000000 +v 0.055660 0.827477 2.697284 +v -0.170088 0.827477 2.697284 +v 0.123385 0.524760 2.571894 +v 0.349134 0.524760 2.571894 +v 0.349134 0.222044 2.697284 +v 0.123385 0.222044 2.697284 +v 0.349134 0.096655 3.000000 +v 0.123385 0.096655 3.000000 +v 0.349134 0.222044 3.302716 +v 0.123385 0.222044 3.302716 +v 0.349134 0.524760 3.428106 +v 0.123385 0.524760 3.428106 +v 0.349134 0.827477 3.302716 +v 0.123385 0.827477 3.302716 +v 0.349134 0.952866 3.000000 +v 0.123385 0.952866 3.000000 +v 0.349134 0.827477 2.697284 +v 0.123385 0.827477 2.697284 +v 0.416858 0.524760 2.571894 +v 0.642607 0.524760 2.571894 +v 0.642607 0.222044 2.697284 +v 0.416858 0.222044 2.697284 +v 0.642607 0.096655 3.000000 +v 0.416858 0.096655 3.000000 +v 0.642607 0.222044 3.302716 +v 0.416858 0.222044 3.302716 +v 0.642607 0.524760 3.428106 +v 0.416858 0.524760 3.428106 +v 0.642607 0.827477 3.302716 +v 0.416858 0.827477 3.302716 +v 0.642607 0.952866 3.000000 +v 0.416858 0.952866 3.000000 +v 0.642607 0.827477 2.697284 +v 0.416858 0.827477 2.697284 +v 0.710331 0.524760 2.571894 +v 0.936080 0.524760 2.571894 +v 0.936080 0.222044 2.697284 +v 0.710331 0.222044 2.697284 +v 0.936080 0.096655 3.000000 +v 0.710331 0.096655 3.000000 +v 0.936080 0.222044 3.302716 +v 0.710331 0.222044 3.302716 +v 0.936080 0.524760 3.428106 +v 0.710331 0.524760 3.428106 +v 0.936080 0.827477 3.302716 +v 0.710331 0.827477 3.302716 +v 0.936080 0.952866 3.000000 +v 0.710331 0.952866 3.000000 +v 0.936080 0.827477 2.697284 +v 0.710331 0.827477 2.697284 +vt 0.781097 0.399443 +vt 0.718903 0.399443 +vt 0.718903 0.309173 +vt 0.781097 0.309173 +vt 0.718903 0.218903 +vt 0.781097 0.218903 +vt 0.781097 0.941064 +vt 0.718903 0.941064 +vt 0.718903 0.850794 +vt 0.781097 0.850794 +vt 0.718903 0.760524 +vt 0.781097 0.760524 +vt 0.718903 0.670254 +vt 0.781097 0.670254 +vt 0.718903 0.579984 +vt 0.781097 0.579984 +vt 0.218903 0.282734 +vt 0.282733 0.218903 +vt 0.373004 0.218903 +vt 0.436834 0.282734 +vt 0.436834 0.373004 +vt 0.373003 0.436835 +vt 0.282733 0.436834 +vt 0.218903 0.373004 +vt 0.718903 0.489714 +vt 0.781097 0.489714 +vt 0.064155 0.437482 +vt 0.154425 0.437483 +vt 0.218255 0.501313 +vt 0.218255 0.591583 +vt 0.154425 0.655414 +vt 0.064154 0.655414 +vt 0.000324 0.591583 +vt 0.000324 0.501313 +vt 0.999676 0.180864 +vt 0.937482 0.180864 +vt 0.937482 0.090594 +vt 0.999676 0.090594 +vt 0.937482 0.000324 +vt 0.999676 0.000324 +vt 0.999676 0.722485 +vt 0.937482 0.722485 +vt 0.937482 0.632215 +vt 0.999676 0.632215 +vt 0.937482 0.541944 +vt 0.999676 0.541944 +vt 0.937482 0.451674 +vt 0.999676 0.451674 +vt 0.937482 0.361404 +vt 0.999676 0.361404 +vt 0.000324 0.282734 +vt 0.064154 0.218903 +vt 0.154425 0.218903 +vt 0.218255 0.282734 +vt 0.218255 0.373004 +vt 0.154424 0.436835 +vt 0.064154 0.436834 +vt 0.000324 0.373004 +vt 0.937482 0.271134 +vt 0.999676 0.271134 +vt 0.501313 0.218903 +vt 0.591583 0.218903 +vt 0.655413 0.282734 +vt 0.655413 0.373004 +vt 0.591583 0.436835 +vt 0.501313 0.436834 +vt 0.437482 0.373004 +vt 0.437482 0.282734 +vt 0.718255 0.399443 +vt 0.656061 0.399443 +vt 0.656061 0.309173 +vt 0.718255 0.309173 +vt 0.656061 0.218903 +vt 0.718255 0.218903 +vt 0.718255 0.941064 +vt 0.656061 0.941064 +vt 0.656061 0.850794 +vt 0.718255 0.850794 +vt 0.656061 0.760524 +vt 0.718255 0.760524 +vt 0.656061 0.670254 +vt 0.718255 0.670254 +vt 0.656061 0.579984 +vt 0.718255 0.579984 +vt 0.218903 0.501313 +vt 0.282733 0.437482 +vt 0.373004 0.437483 +vt 0.436834 0.501313 +vt 0.436834 0.591583 +vt 0.373003 0.655414 +vt 0.282733 0.655414 +vt 0.218903 0.591583 +vt 0.656061 0.489714 +vt 0.718255 0.489714 +vt 0.501313 0.437482 +vt 0.591583 0.437483 +vt 0.655413 0.501313 +vt 0.655413 0.591583 +vt 0.591583 0.655414 +vt 0.501313 0.655414 +vt 0.437482 0.591583 +vt 0.437482 0.501313 +vt 0.936834 0.180864 +vt 0.874640 0.180864 +vt 0.874640 0.090594 +vt 0.936834 0.090594 +vt 0.874640 0.000324 +vt 0.936834 0.000324 +vt 0.936834 0.722484 +vt 0.874640 0.722484 +vt 0.874640 0.632214 +vt 0.936834 0.632214 +vt 0.874640 0.541944 +vt 0.936834 0.541944 +vt 0.874640 0.451674 +vt 0.936834 0.451674 +vt 0.874640 0.361404 +vt 0.936834 0.361404 +vt 0.656061 0.064155 +vt 0.719891 0.000324 +vt 0.810162 0.000324 +vt 0.873992 0.064155 +vt 0.873992 0.154425 +vt 0.810162 0.218255 +vt 0.719891 0.218255 +vt 0.656061 0.154425 +vt 0.874640 0.271134 +vt 0.936834 0.271134 +vt 0.501313 0.000324 +vt 0.591583 0.000324 +vt 0.655413 0.064155 +vt 0.655413 0.154425 +vt 0.591583 0.218255 +vt 0.501313 0.218255 +vt 0.437482 0.154425 +vt 0.437482 0.064155 +vt 0.873992 0.399443 +vt 0.811798 0.399443 +vt 0.811798 0.309173 +vt 0.873992 0.309173 +vt 0.811798 0.218903 +vt 0.873992 0.218903 +vt 0.873992 0.941064 +vt 0.811798 0.941064 +vt 0.811798 0.850794 +vt 0.873992 0.850794 +vt 0.811798 0.760524 +vt 0.873992 0.760524 +vt 0.811798 0.670253 +vt 0.873992 0.670253 +vt 0.811798 0.579983 +vt 0.873992 0.579983 +vt 0.218903 0.064155 +vt 0.282733 0.000324 +vt 0.373004 0.000324 +vt 0.436834 0.064155 +vt 0.436834 0.154425 +vt 0.373003 0.218255 +vt 0.282733 0.218255 +vt 0.218903 0.154425 +vt 0.811798 0.489713 +vt 0.873992 0.489713 +vt 0.064155 0.000324 +vt 0.154425 0.000324 +vt 0.218255 0.064155 +vt 0.218255 0.154425 +vt 0.154425 0.218255 +vt 0.064154 0.218255 +vt 0.000324 0.154425 +vt 0.000324 0.064155 vn 0.0000 -0.3827 -0.9239 vn 0.0000 -0.9239 -0.3827 vn 0.0000 -0.9239 0.3827 @@ -261,56 +261,56 @@ vn 1.0000 0.0000 0.0000 vn 0.0000 0.9239 -0.3827 vn 0.0000 0.3827 -0.9239 vn -1.0000 0.0000 0.0000 -s 1 +s off f 1/1/1 2/2/1 3/3/1 4/4/1 f 4/4/2 3/3/2 5/5/2 6/6/2 -f 6/6/3 5/5/3 7/7/3 8/8/3 -f 8/8/4 7/7/4 9/9/4 10/10/4 -f 10/10/5 9/9/5 11/11/5 12/12/5 -f 12/12/6 11/11/6 13/13/6 14/14/6 -f 3/15/7 2/16/7 15/17/7 13/18/7 11/19/7 9/20/7 7/21/7 5/22/7 -f 14/14/8 13/13/8 15/23/8 16/24/8 -f 16/24/9 15/23/9 2/25/9 1/26/9 +f 6/7/3 5/8/3 7/9/3 8/10/3 +f 8/10/4 7/9/4 9/11/4 10/12/4 +f 10/12/5 9/11/5 11/13/5 12/14/5 +f 12/14/6 11/13/6 13/15/6 14/16/6 +f 3/17/7 2/18/7 15/19/7 13/20/7 11/21/7 9/22/7 7/23/7 5/24/7 +f 14/16/8 13/15/8 15/25/8 16/26/8 +f 16/26/9 15/25/9 2/2/9 1/1/9 f 1/27/10 4/28/10 6/29/10 8/30/10 10/31/10 12/32/10 14/33/10 16/34/10 f 17/35/1 18/36/1 19/37/1 20/38/1 f 20/38/2 19/37/2 21/39/2 22/40/2 -f 22/40/3 21/39/3 23/41/3 24/42/3 -f 24/42/4 23/41/4 25/43/4 26/44/4 -f 26/44/5 25/43/5 27/45/5 28/46/5 -f 28/46/6 27/45/6 29/47/6 30/48/6 -f 19/49/7 18/50/7 31/51/7 29/52/7 27/53/7 25/54/7 23/55/7 21/56/7 -f 30/48/8 29/47/8 31/57/8 32/58/8 -f 32/58/9 31/57/9 18/59/9 17/60/9 +f 22/41/3 21/42/3 23/43/3 24/44/3 +f 24/44/4 23/43/4 25/45/4 26/46/4 +f 26/46/5 25/45/5 27/47/5 28/48/5 +f 28/48/6 27/47/6 29/49/6 30/50/6 +f 19/51/7 18/52/7 31/53/7 29/54/7 27/55/7 25/56/7 23/57/7 21/58/7 +f 30/50/8 29/49/8 31/59/8 32/60/8 +f 32/60/9 31/59/9 18/36/9 17/35/9 f 17/61/10 20/62/10 22/63/10 24/64/10 26/65/10 28/66/10 30/67/10 32/68/10 f 33/69/1 34/70/1 35/71/1 36/72/1 f 36/72/2 35/71/2 37/73/2 38/74/2 -f 38/74/3 37/73/3 39/75/3 40/76/3 -f 40/76/4 39/75/4 41/77/4 42/78/4 -f 42/78/5 41/77/5 43/79/5 44/80/5 -f 44/80/6 43/79/6 45/81/6 46/82/6 -f 35/83/7 34/84/7 47/85/7 45/86/7 43/87/7 41/88/7 39/89/7 37/90/7 -f 46/82/8 45/81/8 47/91/8 48/92/8 -f 48/92/9 47/91/9 34/93/9 33/94/9 +f 38/75/3 37/76/3 39/77/3 40/78/3 +f 40/78/4 39/77/4 41/79/4 42/80/4 +f 42/80/5 41/79/5 43/81/5 44/82/5 +f 44/82/6 43/81/6 45/83/6 46/84/6 +f 35/85/7 34/86/7 47/87/7 45/88/7 43/89/7 41/90/7 39/91/7 37/92/7 +f 46/84/8 45/83/8 47/93/8 48/94/8 +f 48/94/9 47/93/9 34/70/9 33/69/9 f 33/95/10 36/96/10 38/97/10 40/98/10 42/99/10 44/100/10 46/101/10 48/102/10 f 49/103/1 50/104/1 51/105/1 52/106/1 f 52/106/2 51/105/2 53/107/2 54/108/2 -f 54/108/3 53/107/3 55/109/3 56/110/3 -f 56/110/4 55/109/4 57/111/4 58/112/4 -f 58/112/5 57/111/5 59/113/5 60/114/5 -f 60/114/6 59/113/6 61/115/6 62/116/6 -f 51/117/7 50/118/7 63/119/7 61/120/7 59/121/7 57/122/7 55/123/7 53/124/7 -f 62/116/8 61/115/8 63/125/8 64/126/8 -f 64/126/9 63/125/9 50/127/9 49/128/9 +f 54/109/3 53/110/3 55/111/3 56/112/3 +f 56/112/4 55/111/4 57/113/4 58/114/4 +f 58/114/5 57/113/5 59/115/5 60/116/5 +f 60/116/6 59/115/6 61/117/6 62/118/6 +f 51/119/7 50/120/7 63/121/7 61/122/7 59/123/7 57/124/7 55/125/7 53/126/7 +f 62/118/8 61/117/8 63/127/8 64/128/8 +f 64/128/9 63/127/9 50/104/9 49/103/9 f 49/129/10 52/130/10 54/131/10 56/132/10 58/133/10 60/134/10 62/135/10 64/136/10 f 65/137/1 66/138/1 67/139/1 68/140/1 f 68/140/2 67/139/2 69/141/2 70/142/2 -f 70/142/3 69/141/3 71/143/3 72/144/3 -f 72/144/4 71/143/4 73/145/4 74/146/4 -f 74/146/5 73/145/5 75/147/5 76/148/5 -f 76/148/6 75/147/6 77/149/6 78/150/6 -f 67/151/7 66/152/7 79/153/7 77/154/7 75/155/7 73/156/7 71/157/7 69/158/7 -f 78/150/8 77/149/8 79/159/8 80/160/8 -f 80/160/9 79/159/9 66/161/9 65/162/9 +f 70/143/3 69/144/3 71/145/3 72/146/3 +f 72/146/4 71/145/4 73/147/4 74/148/4 +f 74/148/5 73/147/5 75/149/5 76/150/5 +f 76/150/6 75/149/6 77/151/6 78/152/6 +f 67/153/7 66/154/7 79/155/7 77/156/7 75/157/7 73/158/7 71/159/7 69/160/7 +f 78/152/8 77/151/8 79/161/8 80/162/8 +f 80/162/9 79/161/9 66/138/9 65/137/9 f 65/163/10 68/164/10 70/165/10 72/166/10 74/167/10 76/168/10 78/169/10 80/170/10 o Tech_thingy_Cylinder.011 v -1.457017 0.997796 0.139627 @@ -3054,420 +3054,533 @@ f 700/1212/367 693/1203/400 695/1205/400 701/1213/368 f 691/1201/364 697/1207/364 723/1237/401 698/1208/401 f 716/1228/396 717/1229/402 730/1254/402 729/1253/397 o AmmunitionCan_Cylinder.007 -v -1.114931 0.645018 -0.394257 -v -0.705608 0.645018 -0.392564 -v -0.705608 0.367434 -0.277584 -v -1.115595 0.367434 -0.277584 -v -0.705608 0.252454 0.000000 -v -1.115595 0.252454 0.000000 -v -0.705608 0.367434 0.277584 -v -1.115595 0.367434 0.277584 -v -0.705608 0.645018 0.392564 -v -1.115595 0.645018 0.392564 -v -0.705608 0.922602 0.277584 -v -1.115595 0.922602 0.277584 -v -0.705608 1.037581 0.000000 -v -1.115595 1.037581 0.000000 -v -0.705608 0.922602 -0.277584 -v -1.115595 0.922602 -0.277584 -v -1.680468 0.367434 -0.277584 -v -1.680468 0.252454 0.000000 -v -1.696762 0.326183 0.000000 -v -1.696762 0.419567 -0.225451 -v -1.696762 0.645018 0.318835 -v -1.696762 0.870468 0.225451 -v -1.717499 0.922175 0.277157 -v -1.717499 0.645018 0.391959 -v -1.680468 0.645018 0.392564 -v -1.680468 0.922602 0.277584 -v -1.680468 0.922602 -0.277584 -v -1.680468 0.645018 -0.392564 -v -1.696762 0.645018 -0.318835 -v -1.696762 0.870469 -0.225450 -v -1.680468 0.367434 0.277584 -v -1.696762 0.419567 0.225451 -v -1.680468 1.037582 0.000000 -v -1.696762 0.963853 0.000000 -v -1.717499 1.036977 0.000000 -v -1.717499 0.922175 -0.277157 -v -1.807855 0.922175 -0.277157 -v -1.807855 1.036977 0.000000 -v -1.717499 0.367861 0.277157 -v -1.717499 0.253059 0.000000 -v -1.717499 0.367861 -0.277157 -v -1.717499 0.645018 -0.391959 -v -1.807855 0.922175 0.277157 -v -1.827112 0.964049 0.000000 -v -1.827112 0.870607 0.225589 -v -1.807856 0.645018 0.391959 -v -1.807856 0.367861 0.277157 -v -1.807856 0.253059 0.000000 -v -1.807856 0.367861 -0.277157 -v -1.807856 0.645018 -0.391959 -v -1.827112 0.645018 -0.319031 -v -1.827112 0.419429 -0.225589 -v -1.850272 0.367220 -0.277798 -v -1.850272 0.645018 -0.392866 -v -1.827112 0.645018 0.319031 -v -1.827112 0.419429 0.225589 -v -1.827112 0.325987 0.000000 -v -1.827112 0.870607 -0.225589 -v -1.850272 1.037884 0.000000 -v -1.850272 0.922816 -0.277798 -v -1.929992 0.922816 -0.277798 -v -1.929992 1.037884 0.000000 -v -1.850272 0.922816 0.277798 -v -1.850272 0.645018 0.392866 -v -1.850272 0.367220 0.277798 -v -1.850272 0.252152 0.000000 -v -1.929992 0.367220 -0.277798 -v -1.929992 0.252152 0.000000 -v -2.043752 0.321683 0.000000 -v -2.043752 0.416385 -0.228633 -v -1.929992 0.922816 0.277798 -v -1.929992 0.645018 0.392866 -v -1.929992 0.367220 0.277798 -v -1.929992 0.645018 -0.392866 -v -2.043752 0.873651 -0.228633 -v -2.043752 0.645018 -0.323335 -v -2.121962 0.645018 -0.225354 -v -2.121962 0.804367 -0.159349 -v -2.043752 0.968353 0.000000 -v -2.043752 0.873651 0.228633 -v -2.043752 0.645018 0.323335 -v -2.043752 0.416385 0.228633 -v -2.121962 0.870372 0.000000 -v -2.179800 0.787147 -0.142129 -v -2.179800 0.846019 0.000000 -v -2.121962 0.804367 0.159349 -v -2.121962 0.645018 0.225354 -v -2.121962 0.485669 0.159349 -v -2.121962 0.419664 0.000000 -v -2.121962 0.485669 -0.159349 -v -2.179800 0.787147 0.142129 -v -2.179800 0.817735 0.000000 -v -2.179800 0.767148 0.122130 -v -2.179800 0.645018 0.201001 -v -2.179800 0.502889 0.142129 -v -2.179800 0.444017 0.000000 -v -2.179800 0.502889 -0.142129 -v -2.179800 0.645018 -0.201001 -v -2.179800 0.645018 -0.172717 -v -2.179800 0.522888 -0.122130 -v -2.139229 0.522888 -0.122130 -v -2.139229 0.645018 -0.172717 -v -2.179800 0.645018 0.172717 -v -2.179800 0.522888 0.122130 -v -2.179800 0.472301 0.000000 -v -2.179800 0.767148 -0.122130 -v -2.139229 0.472301 0.000000 -v -2.139229 0.522888 0.122130 -v -2.139229 0.645018 0.172717 -v -2.139229 0.767148 0.122130 -v -2.139229 0.817735 0.000000 -v -2.139229 0.767148 -0.122130 -v -1.416219 0.923800 -0.278782 -v -1.416219 0.645018 -0.394257 -v -1.415588 1.037581 0.000000 -v -1.416219 0.923800 0.278782 -v -1.416219 0.645018 0.394257 -v -1.416219 0.366236 0.278782 -v -1.415589 0.252454 0.000000 -v -1.416219 0.366236 -0.278782 -v -1.161507 0.923800 -0.278782 -v -1.161507 0.645018 -0.394257 -v -1.161507 1.039275 0.000000 -v -1.161507 0.923800 0.278782 -v -1.161507 0.645018 0.394257 -v -1.161507 0.366236 0.278782 -v -1.161507 0.250761 0.000000 -v -1.161507 0.366236 -0.278782 -v -1.379544 0.645018 -0.394257 -v -1.379545 0.366236 -0.278782 -v -1.379545 1.039275 0.000000 -v -1.379545 0.923800 0.278782 -v -1.382795 0.953877 0.308859 -v -1.382795 1.081811 0.000000 -v -1.319287 0.645018 -0.409318 -v -1.221764 0.645018 -0.409318 -v -1.221764 0.355586 -0.289432 -v -1.319287 0.355586 -0.289432 -v -1.158621 0.950501 -0.305483 -v -1.158621 1.077036 0.000000 -v -1.379545 0.250761 0.000000 -v -1.319287 0.235700 0.000000 -v -1.316037 0.208225 0.000000 -v -1.316037 0.336159 -0.308859 -v -1.221764 0.235700 0.000000 -v -1.158621 0.950501 0.305483 -v -1.158621 0.645018 0.432019 -v -1.379545 0.366236 0.278782 -v -1.379545 0.645018 0.394257 -v -1.382795 0.336159 0.308859 -v -1.382795 0.645018 0.436793 -v -1.221764 0.355586 0.289432 -v -1.319287 0.355586 0.289432 -v -1.221764 0.934450 -0.289432 -v -1.221764 1.054336 0.000000 -v -1.224650 1.077036 0.000000 -v -1.224650 0.950501 -0.305483 -v -1.382795 0.336159 -0.308859 -v -1.382795 0.208225 0.000000 -v -1.221764 0.645018 0.409318 -v -1.319287 0.645018 0.409318 -v -1.158621 0.339535 0.305483 -v -1.158621 0.212999 0.000000 -v -1.319287 1.054336 0.000000 -v -1.319287 0.934450 -0.289432 -v -1.316037 0.953877 -0.308859 -v -1.316037 1.081811 0.000000 -v -1.221764 0.934450 0.289432 -v -1.319287 0.934450 0.289432 -v -1.224650 0.645018 0.432019 -v -1.224650 0.950501 0.305483 -v -1.316037 0.953877 0.308859 -v -1.316037 0.645018 0.436793 -v -1.158621 0.339535 -0.305483 -v -1.158621 0.645018 -0.432019 -v -1.379545 0.923800 -0.278782 -v -1.382795 0.953877 -0.308859 -v -1.224650 0.212999 0.000000 -v -1.224650 0.339535 0.305483 -v -1.316037 0.336159 0.308859 -v -1.224650 0.645018 -0.432019 -v -1.224650 0.339535 -0.305483 -v -1.382795 0.645018 -0.436793 -v -1.316036 0.645018 -0.436793 -vt 1.000000 0.825168 -vt 1.000000 1.000000 -vt 0.875000 1.000000 -vt 0.875000 0.825168 -vt 0.750000 1.000000 -vt 0.750000 0.825168 -vt 0.625000 1.000000 -vt 0.625000 0.825168 -vt 0.500000 1.000000 -vt 0.500000 0.825168 -vt 0.375000 1.000000 -vt 0.375000 0.825168 -vt 0.250000 1.000000 -vt 0.250000 0.825168 -vt 0.419706 0.419706 -vt 0.250000 0.490000 -vt 0.080294 0.419706 -vt 0.010000 0.250000 -vt 0.080294 0.080294 -vt 0.250000 0.010000 -vt 0.419706 0.080294 -vt 0.490000 0.250000 -vt 0.125000 1.000000 -vt 0.125000 0.825168 -vt 0.000000 1.000000 -vt 0.000000 0.825168 -vt 0.875000 0.500000 -vt 0.750000 0.500000 -vt 0.750000 0.500000 -vt 0.875000 0.500000 -vt 0.500000 0.500000 -vt 0.375000 0.500000 -vt 0.375000 0.500000 -vt 0.500000 0.500000 -vt 0.500000 0.500000 -vt 0.375000 0.500000 -vt 0.125000 0.500000 -vt 0.000000 0.500000 -vt 0.000000 0.500000 -vt 0.125000 0.500000 -vt 1.000000 0.500000 -vt 1.000000 0.500000 -vt 0.625000 0.500000 -vt 0.625000 0.500000 -vt 0.250000 0.500000 -vt 0.250000 0.500000 -vt 0.250000 0.500000 -vt 0.125000 0.500000 -vt 0.125000 0.500000 -vt 0.250000 0.500000 -vt 0.625000 0.500000 -vt 0.750000 0.500000 -vt 0.875000 0.500000 -vt 1.000000 0.500000 -vt 0.000000 0.500000 -vt 0.375000 0.500000 -vt 0.250000 0.500000 -vt 0.375000 0.500000 -vt 0.500000 0.500000 -vt 0.625000 0.500000 -vt 0.750000 0.500000 -vt 0.875000 0.500000 -vt 1.000000 0.500000 -vt 0.000000 0.500000 -vt 1.000000 0.500000 -vt 0.875000 0.500000 -vt 0.875000 0.500000 -vt 1.000000 0.500000 -vt 0.500000 0.500000 -vt 0.625000 0.500000 -vt 0.750000 0.500000 -vt 0.125000 0.500000 -vt 0.000000 0.500000 -vt 0.250000 0.500000 -vt 0.125000 0.500000 -vt 0.125000 0.500000 -vt 0.250000 0.500000 -vt 0.000000 0.500000 -vt 0.375000 0.500000 -vt 0.500000 0.500000 -vt 0.625000 0.500000 -vt 0.750000 0.500000 -vt 0.875000 0.500000 -vt 0.750000 0.500000 -vt 0.750000 0.500000 -vt 0.875000 0.500000 -vt 0.375000 0.500000 -vt 0.500000 0.500000 -vt 0.625000 0.500000 -vt 1.000000 0.500000 -vt 0.000000 0.500000 -vt 0.125000 0.500000 -vt 0.000000 0.500000 -vt 0.000000 0.500000 -vt 0.125000 0.500000 -vt 0.250000 0.500000 -vt 0.375000 0.500000 -vt 0.500000 0.500000 -vt 0.625000 0.500000 -vt 1.000000 0.500000 -vt 0.250000 0.500000 -vt 0.125000 0.500000 -vt 0.250000 0.500000 -vt 0.375000 0.500000 -vt 0.500000 0.500000 -vt 0.625000 0.500000 -vt 0.750000 0.500000 -vt 0.875000 0.500000 -vt 1.000000 0.500000 -vt 0.375000 0.500000 -vt 0.250000 0.500000 -vt 0.375000 0.500000 -vt 0.500000 0.500000 -vt 0.625000 0.500000 -vt 0.750000 0.500000 -vt 0.875000 0.500000 -vt 1.000000 0.500000 -vt 0.000000 0.500000 -vt 1.000000 0.500000 -vt 0.875000 0.500000 -vt 0.875000 0.500000 -vt 1.000000 0.500000 -vt 0.500000 0.500000 -vt 0.625000 0.500000 -vt 0.750000 0.500000 -vt 0.125000 0.500000 -vt 0.000000 0.500000 -vt 0.750000 0.490000 -vt 0.919706 0.419706 -vt 0.990000 0.250000 -vt 0.919706 0.080294 -vt 0.750000 0.010000 -vt 0.580294 0.080294 -vt 0.510000 0.250000 -vt 0.580294 0.419706 -vt 0.000000 0.500000 -vt 0.125000 0.500000 -vt 0.250000 0.500000 -vt 0.375000 0.500000 -vt 0.500000 0.500000 -vt 0.625000 0.500000 -vt 0.750000 0.500000 -vt 0.125000 0.658502 -vt 0.000000 0.658502 -vt 0.250000 0.658502 -vt 0.375000 0.658502 -vt 0.500000 0.658502 -vt 0.625000 0.658502 -vt 0.750000 0.658502 -vt 0.875000 0.658502 -vt 1.000000 0.658502 -vt 0.125000 0.790724 -vt 0.000000 0.790724 -vt 0.250000 0.790724 -vt 0.375000 0.790724 -vt 0.500000 0.790724 -vt 0.625000 0.790724 -vt 0.750000 0.790724 -vt 0.875000 0.790724 -vt 1.000000 0.790724 -vt 1.000000 0.690724 -vt 0.875000 0.690724 -vt 0.250000 0.690724 -vt 0.375000 0.690724 -vt 0.375000 0.690724 -vt 0.250000 0.690724 -vt 1.000000 0.724057 -vt 1.000000 0.757391 -vt 0.875000 0.757391 -vt 0.875000 0.724057 -vt 0.125000 0.790724 -vt 0.250000 0.790724 -vt 0.750000 0.690724 -vt 0.750000 0.724057 -vt 0.750000 0.724057 -vt 0.875000 0.724057 -vt 0.750000 0.757391 -vt 0.375000 0.790724 -vt 0.500000 0.790724 -vt 0.625000 0.690724 -vt 0.500000 0.690724 -vt 0.625000 0.690724 -vt 0.500000 0.690724 -vt 0.625000 0.757391 -vt 0.625000 0.724057 -vt 0.125000 0.757391 -vt 0.250000 0.757391 -vt 0.250000 0.757391 -vt 0.125000 0.757391 -vt 0.875000 0.690724 -vt 0.750000 0.690724 -vt 0.500000 0.757391 -vt 0.500000 0.724057 -vt 0.625000 0.790724 -vt 0.750000 0.790724 -vt 0.250000 0.724057 -vt 0.125000 0.724057 -vt 0.125000 0.724057 -vt 0.250000 0.724057 -vt 0.375000 0.757391 -vt 0.375000 0.724057 -vt 0.500000 0.757391 -vt 0.375000 0.757391 -vt 0.375000 0.724057 -vt 0.500000 0.724057 -vt 0.875000 0.790724 -vt 1.000000 0.790724 -vt 0.125000 0.690724 -vt 0.125000 0.690724 -vt 0.750000 0.757391 -vt 0.625000 0.757391 -vt 0.000000 0.690724 -vt 0.625000 0.724057 -vt 0.000000 0.757391 -vt 0.000000 0.724057 -vt 1.000000 0.757391 -vt 0.875000 0.757391 -vt 0.000000 0.790724 -vt 0.000000 0.757391 -vt 1.000000 0.690724 -vt 1.000000 0.724057 -vt 0.000000 0.724057 -vt 0.000000 0.690724 +v -1.114931 0.645018 2.605743 +v -0.705608 0.645018 2.607436 +v -0.705608 0.367434 2.722416 +v -1.115595 0.367434 2.722416 +v -0.705608 0.252454 3.000000 +v -1.115595 0.252454 3.000000 +v -0.705608 0.367434 3.277584 +v -1.115595 0.367434 3.277584 +v -0.705608 0.645018 3.392564 +v -1.115595 0.645018 3.392564 +v -0.705608 0.922602 3.277584 +v -1.115595 0.922602 3.277584 +v -0.705608 1.037581 3.000000 +v -1.115595 1.037581 3.000000 +v -0.705608 0.922602 2.722416 +v -1.115595 0.922602 2.722416 +v -1.680468 0.367434 2.722416 +v -1.680468 0.252454 3.000000 +v -1.696762 0.326183 3.000000 +v -1.696762 0.419567 2.774549 +v -1.696762 0.645018 3.318835 +v -1.696762 0.870468 3.225451 +v -1.717499 0.922175 3.277157 +v -1.717499 0.645018 3.391959 +v -1.680468 0.645018 3.392564 +v -1.680468 0.922602 3.277584 +v -1.680468 0.922602 2.722416 +v -1.680468 0.645018 2.607436 +v -1.696762 0.645018 2.681165 +v -1.696762 0.870469 2.774550 +v -1.680468 0.367434 3.277584 +v -1.696762 0.419567 3.225451 +v -1.680468 1.037582 3.000000 +v -1.696762 0.963853 3.000000 +v -1.717499 1.036977 3.000000 +v -1.717499 0.922175 2.722843 +v -1.807855 0.922175 2.722843 +v -1.807855 1.036977 3.000000 +v -1.717499 0.367861 3.277157 +v -1.717499 0.253059 3.000000 +v -1.717499 0.367861 2.722843 +v -1.717499 0.645018 2.608041 +v -1.807855 0.922175 3.277157 +v -1.827112 0.964049 3.000000 +v -1.827112 0.870607 3.225589 +v -1.807856 0.645018 3.391959 +v -1.807856 0.367861 3.277157 +v -1.807856 0.253059 3.000000 +v -1.807856 0.367861 2.722843 +v -1.807856 0.645018 2.608041 +v -1.827112 0.645018 2.680969 +v -1.827112 0.419429 2.774411 +v -1.850272 0.367220 2.722202 +v -1.850272 0.645018 2.607134 +v -1.827112 0.645018 3.319031 +v -1.827112 0.419429 3.225589 +v -1.827112 0.325987 3.000000 +v -1.827112 0.870607 2.774411 +v -1.850272 1.037884 3.000000 +v -1.850272 0.922816 2.722202 +v -1.929992 0.922816 2.722202 +v -1.929992 1.037884 3.000000 +v -1.850272 0.922816 3.277798 +v -1.850272 0.645018 3.392866 +v -1.850272 0.367220 3.277798 +v -1.850272 0.252152 3.000000 +v -1.929992 0.367220 2.722202 +v -1.929992 0.252152 3.000000 +v -2.043752 0.321683 3.000000 +v -2.043752 0.416385 2.771367 +v -1.929992 0.922816 3.277798 +v -1.929992 0.645018 3.392866 +v -1.929992 0.367220 3.277798 +v -1.929992 0.645018 2.607134 +v -2.043752 0.873651 2.771367 +v -2.043752 0.645018 2.676665 +v -2.121962 0.645018 2.774646 +v -2.121962 0.804367 2.840651 +v -2.043752 0.968353 3.000000 +v -2.043752 0.873651 3.228633 +v -2.043752 0.645018 3.323335 +v -2.043752 0.416385 3.228633 +v -2.121962 0.870372 3.000000 +v -2.179800 0.787147 2.857871 +v -2.179800 0.846019 3.000000 +v -2.121962 0.804367 3.159349 +v -2.121962 0.645018 3.225354 +v -2.121962 0.485669 3.159349 +v -2.121962 0.419664 3.000000 +v -2.121962 0.485669 2.840651 +v -2.179800 0.787147 3.142129 +v -2.179800 0.817735 3.000000 +v -2.179800 0.767148 3.122130 +v -2.179800 0.645018 3.201001 +v -2.179800 0.502889 3.142129 +v -2.179800 0.444017 3.000000 +v -2.179800 0.502889 2.857871 +v -2.179800 0.645018 2.798999 +v -2.179800 0.645018 2.827283 +v -2.179800 0.522888 2.877870 +v -2.139229 0.522888 2.877870 +v -2.139229 0.645018 2.827283 +v -2.179800 0.645018 3.172717 +v -2.179800 0.522888 3.122130 +v -2.179800 0.472301 3.000000 +v -2.179800 0.767148 2.877870 +v -2.139229 0.472301 3.000000 +v -2.139229 0.522888 3.122130 +v -2.139229 0.645018 3.172717 +v -2.139229 0.767148 3.122130 +v -2.139229 0.817735 3.000000 +v -2.139229 0.767148 2.877870 +v -1.416219 0.923800 2.721218 +v -1.416219 0.645018 2.605743 +v -1.415588 1.037581 3.000000 +v -1.416219 0.923800 3.278782 +v -1.416219 0.645018 3.394257 +v -1.416219 0.366236 3.278782 +v -1.415589 0.252454 3.000000 +v -1.416219 0.366236 2.721218 +v -1.161507 0.923800 2.721218 +v -1.161507 0.645018 2.605743 +v -1.161507 1.039275 3.000000 +v -1.161507 0.923800 3.278782 +v -1.161507 0.645018 3.394257 +v -1.161507 0.366236 3.278782 +v -1.161507 0.250761 3.000000 +v -1.161507 0.366236 2.721218 +v -1.379544 0.645018 2.605743 +v -1.379545 0.366236 2.721218 +v -1.379545 1.039275 3.000000 +v -1.379545 0.923800 3.278782 +v -1.382795 0.953877 3.308859 +v -1.382795 1.081811 3.000000 +v -1.319287 0.645018 2.590682 +v -1.221764 0.645018 2.590682 +v -1.221764 0.355586 2.710568 +v -1.319287 0.355586 2.710568 +v -1.158621 0.950501 2.694517 +v -1.158621 1.077036 3.000000 +v -1.379545 0.250761 3.000000 +v -1.319287 0.235700 3.000000 +v -1.316037 0.208225 3.000000 +v -1.316037 0.336159 2.691141 +v -1.221764 0.235700 3.000000 +v -1.158621 0.950501 3.305483 +v -1.158621 0.645018 3.432019 +v -1.379545 0.366236 3.278782 +v -1.379545 0.645018 3.394257 +v -1.382795 0.336159 3.308859 +v -1.382795 0.645018 3.436793 +v -1.221764 0.355586 3.289432 +v -1.319287 0.355586 3.289432 +v -1.221764 0.934450 2.710568 +v -1.221764 1.054336 3.000000 +v -1.224650 1.077036 3.000000 +v -1.224650 0.950501 2.694517 +v -1.382795 0.336159 2.691141 +v -1.382795 0.208225 3.000000 +v -1.221764 0.645018 3.409318 +v -1.319287 0.645018 3.409318 +v -1.158621 0.339535 3.305483 +v -1.158621 0.212999 3.000000 +v -1.319287 1.054336 3.000000 +v -1.319287 0.934450 2.710568 +v -1.316037 0.953877 2.691141 +v -1.316037 1.081811 3.000000 +v -1.221764 0.934450 3.289432 +v -1.319287 0.934450 3.289432 +v -1.224650 0.645018 3.432019 +v -1.224650 0.950501 3.305483 +v -1.316037 0.953877 3.308859 +v -1.316037 0.645018 3.436793 +v -1.158621 0.339535 2.694517 +v -1.158621 0.645018 2.567981 +v -1.379545 0.923800 2.721218 +v -1.382795 0.953877 2.691141 +v -1.224650 0.212999 3.000000 +v -1.224650 0.339535 3.305483 +v -1.316037 0.336159 3.308859 +v -1.224650 0.645018 2.567981 +v -1.224650 0.339535 2.694517 +v -1.382795 0.645018 2.563207 +v -1.316036 0.645018 2.563207 +vt 0.333771 0.122601 +vt 0.250827 0.123696 +vt 0.249913 0.062860 +vt 0.333162 0.061441 +vt 0.248762 0.002028 +vt 0.331770 0.000458 +vt 0.331178 0.489363 +vt 0.248762 0.487236 +vt 0.250204 0.426885 +vt 0.333040 0.428574 +vt 0.251228 0.366447 +vt 0.334273 0.367529 +vt 0.251779 0.305898 +vt 0.334946 0.306336 +vt 0.251870 0.245242 +vt 0.335158 0.245008 +vt 0.387778 0.000111 +vt 0.448672 0.000111 +vt 0.491729 0.043169 +vt 0.491729 0.104062 +vt 0.448671 0.147120 +vt 0.387778 0.147120 +vt 0.344720 0.104062 +vt 0.344720 0.043169 +vt 0.251510 0.184543 +vt 0.334843 0.183746 +vt 0.184792 0.411952 +vt 0.180019 0.475285 +vt 0.164389 0.467565 +vt 0.169068 0.411085 +vt 0.171376 0.116511 +vt 0.173907 0.173123 +vt 0.158223 0.172770 +vt 0.156306 0.116051 +vt 0.187710 0.116136 +vt 0.188188 0.173263 +vt 0.187862 0.290744 +vt 0.187045 0.350935 +vt 0.169556 0.350164 +vt 0.173074 0.290555 +vt 0.169093 0.410760 +vt 0.169539 0.350497 +vt 0.182936 0.002420 +vt 0.185636 0.059963 +vt 0.171429 0.060361 +vt 0.168682 0.009053 +vt 0.188834 0.231566 +vt 0.171901 0.231236 +vt 0.173902 0.173419 +vt 0.171377 0.116200 +vt 0.171433 0.060647 +vt 0.173086 0.290248 +vt 0.171893 0.231559 +vt 0.156248 0.230716 +vt 0.156867 0.289505 +vt 0.136903 0.289718 +vt 0.137407 0.231137 +vt 0.156897 0.060302 +vt 0.156891 0.004402 +vt 0.151894 0.409417 +vt 0.153421 0.349240 +vt 0.147572 0.472946 +vt 0.138952 0.173384 +vt 0.121938 0.230032 +vt 0.123479 0.172751 +vt 0.138214 0.116866 +vt 0.138770 0.061156 +vt 0.138353 0.003891 +vt 0.132267 0.409089 +vt 0.134072 0.349295 +vt 0.126815 0.471069 +vt 0.118159 0.348200 +vt 0.116549 0.407518 +vt 0.099353 0.406365 +vt 0.101957 0.346731 +vt 0.123291 0.116133 +vt 0.123243 0.060809 +vt 0.114079 0.464786 +vt 0.116522 0.407844 +vt 0.120912 0.288422 +vt 0.121921 0.230342 +vt 0.123493 0.172442 +vt 0.123281 0.116431 +vt 0.123249 0.060512 +vt 0.123844 0.009530 +vt 0.118183 0.347881 +vt 0.120892 0.288742 +vt 0.106188 0.229161 +vt 0.104711 0.287384 +vt 0.088322 0.287014 +vt 0.090113 0.228932 +vt 0.107837 0.171744 +vt 0.108130 0.115645 +vt 0.108841 0.060451 +vt 0.096873 0.470749 +vt 0.108910 0.003319 +vt 0.083013 0.405933 +vt 0.079907 0.469925 +vt 0.052378 0.462912 +vt 0.054935 0.410246 +vt 0.092029 0.171671 +vt 0.092656 0.115769 +vt 0.093106 0.060660 +vt 0.092149 0.003387 +vt 0.085408 0.346282 +vt 0.062313 0.290993 +vt 0.059914 0.339771 +vt 0.036698 0.331221 +vt 0.038369 0.297224 +vt 0.063245 0.281096 +vt 0.064719 0.233294 +vt 0.067796 0.166452 +vt 0.068312 0.120444 +vt 0.068137 0.056008 +vt 0.067350 0.008871 +vt 0.057308 0.399614 +vt 0.059278 0.350520 +vt 0.065403 0.223033 +vt 0.066980 0.175906 +vt 0.068752 0.110697 +vt 0.069122 0.065341 +vt 0.041387 0.239824 +vt 0.040360 0.273141 +vt 0.028428 0.270971 +vt 0.029344 0.241254 +vt 0.042861 0.215130 +vt 0.043960 0.182284 +vt 0.046882 0.103646 +vt 0.047140 0.072034 +vt 0.027306 0.453697 +vt 0.029088 0.416990 +vt 0.045633 0.159231 +vt 0.045993 0.127165 +vt 0.045231 0.049246 +vt 0.044683 0.016394 +vt 0.033874 0.391223 +vt 0.035247 0.357006 +vt 0.032082 0.183664 +vt 0.031102 0.212960 +vt 0.026194 0.210732 +vt 0.027037 0.185558 +vt 0.034115 0.157369 +vt 0.034435 0.128769 +vt 0.033381 0.047668 +vt 0.032891 0.018366 +vt 0.021636 0.388880 +vt 0.022861 0.358361 +vt 0.024556 0.328782 +vt 0.026047 0.298459 +vt 0.035522 0.101845 +vt 0.035752 0.073650 +vt 0.014195 0.451072 +vt 0.015784 0.418332 +vt 0.017591 0.360300 +vt 0.016539 0.386525 +vt 0.008490 0.386202 +vt 0.009543 0.359977 +vt 0.030749 0.099822 +vt 0.030947 0.075594 +vt 0.008745 0.448499 +vt 0.010111 0.420366 +vt 0.023445 0.268724 +vt 0.024232 0.243190 +vt 0.029279 0.155303 +vt 0.029555 0.130726 +vt 0.028369 0.045690 +vt 0.027949 0.020511 +vt 0.019510 0.326396 +vt 0.020791 0.300340 +vt 0.363665 0.147342 +vt 0.390456 0.147342 +vt 0.409400 0.166287 +vt 0.409400 0.193078 +vt 0.390456 0.212022 +vt 0.363664 0.212022 +vt 0.344720 0.193078 +vt 0.344720 0.166286 +vt 0.011513 0.326003 +vt 0.012794 0.299946 +vt 0.018468 0.210474 +vt 0.019311 0.185300 +vt 0.023313 0.099761 +vt 0.023511 0.075533 +vt 0.000111 0.448080 +vt 0.001477 0.419947 +vt 0.015608 0.268483 +vt 0.016395 0.242948 +vt 0.021737 0.155218 +vt 0.022012 0.130642 +vt 0.020642 0.045819 +vt 0.020221 0.020640 +vt 0.241179 0.291205 +vt 0.241048 0.352210 +vt 0.241424 0.231328 +vt 0.239656 0.172428 +vt 0.238302 0.114877 +vt 0.236112 0.057792 +vt 0.234041 0.000494 +vt 0.239378 0.414394 +vt 0.236869 0.477863 +vt 0.344164 0.183645 +vt 0.343181 0.122473 +vt 0.344498 0.244994 +vt 0.344304 0.306406 +vt 0.343563 0.367674 +vt 0.342352 0.428813 +vt 0.340421 0.489783 +vt 0.342493 0.061278 +vt 0.341044 0.000111 +vt 0.248540 0.352310 +vt 0.247025 0.414653 +vt 0.518660 0.274425 +vt 0.518660 0.335581 +vt 0.510669 0.338880 +vt 0.510669 0.271126 +vt 0.618935 0.542365 +vt 0.618935 0.562130 +vt 0.555443 0.562130 +vt 0.555443 0.542365 +vt 0.518975 0.265234 +vt 0.518996 0.204078 +vt 0.526092 0.201151 +vt 0.526069 0.268165 +vt 0.244474 0.478305 +vt 0.491952 0.065734 +vt 0.491951 0.002242 +vt 0.497138 0.000111 +vt 0.497138 0.067865 +vt 0.491951 0.562130 +vt 0.491951 0.542365 +vt 0.518929 0.399261 +vt 0.518950 0.338104 +vt 0.526046 0.335178 +vt 0.526022 0.402192 +vt 0.240901 0.000111 +vt 0.243075 0.057522 +vt 0.518660 0.409933 +vt 0.518660 0.471090 +vt 0.510668 0.474388 +vt 0.510668 0.406634 +vt 0.999889 0.542365 +vt 0.999889 0.562130 +vt 0.936397 0.562130 +vt 0.936397 0.542365 +vt 0.543764 0.202918 +vt 0.543742 0.266410 +vt 0.539451 0.268169 +vt 0.539474 0.201156 +vt 0.245271 0.114659 +vt 0.518659 0.003410 +vt 0.518659 0.064565 +vt 0.510668 0.067865 +vt 0.510667 0.000111 +vt 0.872904 0.562130 +vt 0.872904 0.542365 +vt 0.518882 0.533287 +vt 0.518903 0.472131 +vt 0.525999 0.469205 +vt 0.525976 0.536218 +vt 0.246721 0.172240 +vt 0.491952 0.268995 +vt 0.491952 0.205503 +vt 0.497139 0.203372 +vt 0.497139 0.271126 +vt 0.809412 0.562130 +vt 0.809412 0.542365 +vt 0.543718 0.336945 +vt 0.543696 0.400437 +vt 0.539405 0.402196 +vt 0.539428 0.335183 +vt 0.248540 0.231225 +vt 0.491952 0.404503 +vt 0.491952 0.341011 +vt 0.497139 0.338880 +vt 0.497138 0.406634 +vt 0.745919 0.562130 +vt 0.745919 0.542365 +vt 0.519021 0.131207 +vt 0.519042 0.070051 +vt 0.526138 0.067125 +vt 0.526115 0.134138 +vt 0.248518 0.291219 +vt 0.518660 0.206671 +vt 0.518660 0.267827 +vt 0.510668 0.203372 +vt 0.682427 0.562130 +vt 0.682427 0.542365 +vt 0.543671 0.470972 +vt 0.543649 0.534464 +vt 0.539358 0.536223 +vt 0.539381 0.469210 +vt 0.491951 0.540012 +vt 0.491952 0.476519 +vt 0.497138 0.474388 +vt 0.497138 0.542143 +vt 0.543810 0.068891 +vt 0.543788 0.132383 +vt 0.539497 0.134142 +vt 0.539520 0.067129 +vt 0.526161 0.000111 +vt 0.539543 0.000116 +vt 0.543833 0.001878 +vt 0.543811 0.065370 +vt 0.543695 0.403959 +vt 0.543672 0.467451 +vt 0.519044 0.064193 +vt 0.519065 0.003037 +vt 0.543741 0.269931 +vt 0.543719 0.333424 +vt 0.518906 0.466274 +vt 0.518927 0.405118 +vt 0.543787 0.135905 +vt 0.543765 0.199397 +vt 0.518952 0.332247 +vt 0.518973 0.271091 +vt 0.518998 0.198220 +vt 0.519019 0.137064 +vt 0.510668 0.135618 +vt 0.497138 0.135618 +vt 0.510668 0.542143 +vt 0.491952 0.472258 +vt 0.491952 0.408765 +vt 0.518660 0.138917 +vt 0.518660 0.200073 +vt 0.491952 0.336749 +vt 0.491952 0.273257 +vt 0.491952 0.201241 +vt 0.491952 0.137749 +vt 0.518660 0.071163 +vt 0.518660 0.132319 +vt 0.518660 0.477687 +vt 0.518660 0.538844 +vt 0.491952 0.133487 +vt 0.491952 0.069996 +vt 0.518660 0.342179 +vt 0.518660 0.403335 vn 0.0019 -0.3851 -0.9229 vn 0.0000 -0.9239 -0.3827 vn 0.0000 -0.9239 0.3827 vn 0.0000 -0.3827 0.9239 vn 0.0000 0.3827 0.9239 vn 0.0000 0.9239 0.3827 -vn 1.0000 -0.0000 0.0000 +vn 1.0000 0.0000 0.0000 vn 0.0000 0.9239 -0.3827 vn 0.0019 0.3851 -0.9229 vn -0.9726 -0.2149 -0.0890 @@ -3530,17 +3643,13 @@ vn -0.3625 0.8610 0.3567 vn -0.3625 -0.3567 0.8610 vn -0.3625 -0.8610 -0.3567 vn -0.0059 0.3827 -0.9239 -vn -0.0030 0.3827 -0.9239 vn -0.0030 0.9249 -0.3803 vn -0.0030 0.9249 0.3803 vn -0.0059 0.3827 0.9239 -vn -0.0030 0.3827 0.9239 vn -0.0059 -0.3827 0.9239 -vn -0.0030 -0.3827 0.9239 vn -0.0030 -0.9249 0.3803 vn -0.0030 -0.9249 -0.3803 vn -0.0059 -0.3827 -0.9239 -vn -0.0030 -0.3827 -0.9239 vn 0.0169 0.3850 -0.9227 vn 0.0341 0.9233 -0.3825 vn 0.0341 0.9233 0.3825 @@ -3560,20 +3669,20 @@ vn -0.9907 -0.1260 0.0522 vn -0.9966 0.0761 0.0315 vn 0.9966 0.0762 -0.0316 vn 0.9919 -0.1173 0.0486 -vn -0.9907 -0.0522 -0.1260 +vn -0.9907 -0.0522 -0.1259 vn -0.0215 0.9247 0.3802 vn 0.9919 -0.0486 -0.1173 -vn 0.9966 0.0315 0.0762 +vn 0.9966 0.0316 0.0762 vn -0.0215 0.9247 -0.3802 vn -0.9966 -0.0761 0.0315 vn -0.9907 0.1260 -0.0522 vn 0.9919 0.1173 -0.0486 vn -0.9907 0.0522 0.1260 -vn -0.9907 0.1259 0.0522 +vn -0.9907 0.1260 0.0522 vn -0.9907 0.0522 -0.1260 vn 0.9966 0.0762 0.0316 vn -0.9907 -0.1260 -0.0522 -vn 0.9966 0.0315 -0.0762 +vn 0.9966 0.0316 -0.0762 vn -0.9907 -0.0522 0.1260 vn 0.9966 -0.0762 -0.0316 vn 0.9966 -0.0316 0.0762 @@ -3585,422 +3694,464 @@ vn -0.9966 0.0315 0.0762 vn -0.9966 0.0761 -0.0315 vn 0.9919 0.0486 0.1173 vn -0.9966 -0.0315 -0.0761 -s 1 +s off f 733/1257/403 734/1258/403 735/1259/403 736/1260/403 f 736/1260/404 735/1259/404 737/1261/404 738/1262/404 -f 738/1262/405 737/1261/405 739/1263/405 740/1264/405 -f 740/1264/406 739/1263/406 741/1265/406 742/1266/406 -f 742/1266/407 741/1265/407 743/1267/407 744/1268/407 -f 744/1268/408 743/1267/408 745/1269/408 746/1270/408 -f 735/1271/409 734/1272/409 747/1273/409 745/1274/409 743/1275/409 741/1276/409 739/1277/409 737/1278/409 -f 746/1270/410 745/1269/410 747/1279/410 748/1280/410 -f 748/1280/411 747/1279/411 734/1281/411 733/1282/411 +f 738/1263/405 737/1264/405 739/1265/405 740/1266/405 +f 740/1266/406 739/1265/406 741/1267/406 742/1268/406 +f 742/1268/407 741/1267/407 743/1269/407 744/1270/407 +f 744/1270/408 743/1269/408 745/1271/408 746/1272/408 +f 735/1273/409 734/1274/409 747/1275/409 745/1276/409 743/1277/409 741/1278/409 739/1279/409 737/1280/409 +f 746/1272/410 745/1271/410 747/1281/410 748/1282/410 +f 748/1282/411 747/1281/411 734/1258/411 733/1257/411 f 749/1283/412 750/1284/412 751/1285/412 752/1286/412 f 753/1287/413 754/1288/413 755/1289/413 756/1290/413 f 757/1291/414 758/1292/414 754/1288/414 753/1287/414 f 759/1293/415 760/1294/415 761/1295/415 762/1296/415 -f 760/1297/416 749/1283/416 752/1286/416 761/1298/416 -f 750/1284/417 763/1299/417 764/1300/417 751/1285/417 -f 758/1292/418 765/1301/418 766/1302/418 754/1288/418 -f 763/1299/419 757/1291/419 753/1287/419 764/1300/419 -f 765/1301/420 759/1293/420 762/1296/420 766/1302/420 -f 767/1303/410 768/1304/410 769/1305/410 770/1306/410 -f 751/1285/421 764/1300/421 771/1307/421 772/1308/421 -f 761/1298/422 752/1286/422 773/1309/422 774/1310/422 -f 762/1296/423 761/1295/423 774/1311/423 768/1304/423 -f 754/1288/424 766/1302/424 767/1303/424 755/1289/424 -f 764/1300/425 753/1287/425 756/1290/425 771/1307/425 -f 752/1286/426 751/1285/426 772/1308/426 773/1309/426 -f 766/1302/427 762/1296/427 768/1304/427 767/1303/427 -f 775/1312/428 770/1306/428 776/1313/428 777/1314/428 -f 756/1290/407 755/1289/407 775/1312/407 778/1315/407 -f 772/1308/405 771/1307/405 779/1316/405 780/1317/405 -f 774/1310/429 773/1309/429 781/1318/429 782/1319/429 -f 768/1304/430 774/1311/430 782/1320/430 769/1305/430 -f 755/1289/408 767/1303/408 770/1306/408 775/1312/408 -f 771/1307/406 756/1290/406 778/1315/406 779/1316/406 -f 773/1309/404 772/1308/404 780/1317/404 781/1318/404 -f 783/1321/431 784/1322/431 785/1323/431 786/1324/431 -f 779/1316/432 778/1315/432 787/1325/432 788/1326/432 -f 781/1318/433 780/1317/433 789/1327/433 784/1322/433 -f 770/1306/434 769/1305/434 790/1328/434 776/1313/434 -f 778/1315/435 775/1312/435 777/1314/435 787/1325/435 -f 780/1317/436 779/1316/436 788/1326/436 789/1327/436 -f 782/1319/437 781/1318/437 784/1322/437 783/1321/437 -f 769/1305/438 782/1320/438 783/1329/438 790/1328/438 -f 791/1330/410 792/1331/410 793/1332/410 794/1333/410 -f 790/1328/439 783/1329/439 786/1334/439 792/1331/439 -f 777/1314/440 776/1313/440 791/1330/440 795/1335/440 -f 788/1326/441 787/1325/441 796/1336/441 797/1337/441 -f 784/1322/442 789/1327/442 798/1338/442 785/1323/442 -f 776/1313/443 790/1328/443 792/1331/443 791/1330/443 -f 787/1325/444 777/1314/444 795/1335/444 796/1336/444 -f 789/1327/445 788/1326/445 797/1337/445 798/1338/445 -f 799/1339/446 800/1340/446 801/1341/446 802/1342/446 -f 796/1336/407 795/1335/407 803/1343/407 804/1344/407 -f 798/1338/405 797/1337/405 805/1345/405 800/1340/405 -f 786/1324/429 785/1323/429 799/1339/429 806/1346/429 -f 792/1331/430 786/1334/430 806/1347/430 793/1332/430 -f 795/1335/408 791/1330/408 794/1333/408 803/1343/408 -f 797/1337/406 796/1336/406 804/1344/406 805/1345/406 -f 785/1323/404 798/1338/404 800/1340/404 799/1339/404 -f 807/1348/447 808/1349/447 809/1350/447 810/1351/447 -f 794/1333/448 793/1332/448 807/1348/448 811/1352/448 -f 804/1344/449 803/1343/449 812/1353/449 813/1354/449 -f 800/1340/450 805/1345/450 814/1355/450 801/1341/450 -f 806/1346/451 799/1339/451 802/1342/451 808/1356/451 -f 793/1332/452 806/1347/452 808/1349/452 807/1348/452 -f 803/1343/453 794/1333/453 811/1352/453 812/1353/453 -f 805/1345/454 804/1344/454 813/1354/454 814/1355/454 -f 815/1357/455 810/1351/455 816/1358/455 817/1359/455 -f 812/1353/456 811/1352/456 815/1357/456 818/1360/456 -f 814/1355/457 813/1354/457 819/1361/457 820/1362/457 -f 802/1342/458 801/1341/458 821/1363/458 822/1364/458 -f 811/1352/459 807/1348/459 810/1351/459 815/1357/459 -f 813/1354/460 812/1353/460 818/1360/460 819/1361/460 -f 801/1341/461 814/1355/461 820/1362/461 821/1363/461 -f 808/1356/462 802/1342/462 822/1364/462 809/1365/462 -f 823/1366/463 817/1359/463 824/1367/463 825/1368/463 -f 819/1361/464 818/1360/464 823/1366/464 826/1369/464 -f 821/1363/465 820/1362/465 827/1370/465 828/1371/465 -f 809/1365/466 822/1364/466 829/1372/466 830/1373/466 -f 810/1351/467 809/1350/467 830/1374/467 816/1358/467 -f 818/1360/468 815/1357/468 817/1359/468 823/1366/468 -f 820/1362/469 819/1361/469 826/1369/469 827/1370/469 -f 822/1364/470 821/1363/470 828/1371/470 829/1372/470 -f 831/1375/407 832/1376/407 833/1377/407 834/1378/407 -f 827/1370/463 826/1369/463 835/1379/463 836/1380/463 -f 829/1372/463 828/1371/463 837/1381/463 832/1376/463 -f 817/1359/463 816/1358/463 838/1382/463 824/1367/463 -f 826/1369/463 823/1366/463 825/1368/463 835/1379/463 -f 828/1371/463 827/1370/463 836/1380/463 837/1381/463 -f 830/1373/463 829/1372/463 832/1376/463 831/1375/463 -f 816/1358/463 830/1374/463 831/1383/463 838/1382/463 -f 834/1384/463 833/1385/463 839/1386/463 840/1387/463 841/1388/463 842/1389/463 843/1390/463 844/1391/463 -f 838/1382/406 831/1383/406 834/1392/406 844/1393/406 -f 825/1368/404 824/1367/404 843/1394/404 842/1395/404 -f 836/1380/430 835/1379/430 841/1396/430 840/1397/430 -f 832/1376/408 837/1381/408 839/1398/408 833/1377/408 -f 824/1367/405 838/1382/405 844/1393/405 843/1394/405 -f 835/1379/429 825/1368/429 842/1395/429 841/1396/429 -f 837/1381/410 836/1380/410 840/1397/410 839/1398/410 -f 759/1293/471 845/1399/472 846/1400/472 760/1294/471 -f 765/1301/473 847/1401/473 845/1399/473 759/1293/473 -f 758/1292/474 848/1402/474 847/1401/474 765/1301/474 -f 757/1291/475 849/1403/476 848/1402/476 758/1292/475 -f 763/1299/477 850/1404/478 849/1403/478 757/1291/477 -f 750/1284/479 851/1405/479 850/1404/479 763/1299/479 -f 749/1283/480 852/1406/480 851/1405/480 750/1284/480 -f 760/1297/481 846/1407/482 852/1406/482 749/1283/481 -f 853/1408/483 748/1280/483 733/1282/483 854/1409/483 -f 855/1410/484 746/1270/484 748/1280/484 853/1408/484 -f 856/1411/485 744/1268/485 746/1270/485 855/1410/485 -f 857/1412/486 742/1266/486 744/1268/486 856/1411/486 -f 858/1413/487 740/1264/487 742/1266/487 857/1412/487 -f 859/1414/488 738/1262/488 740/1264/488 858/1413/488 -f 860/1415/489 736/1260/489 738/1262/489 859/1414/489 -f 854/1416/490 733/1257/490 736/1260/490 860/1415/490 -f 846/1407/482 861/1417/429 862/1418/429 852/1406/482 -f 863/1419/491 864/1420/491 865/1421/491 866/1422/491 -f 867/1423/429 868/1424/429 869/1425/429 870/1426/429 -f 855/1410/492 853/1408/492 871/1427/492 872/1428/492 -f 852/1406/493 862/1418/493 873/1429/493 851/1405/493 -f 870/1426/494 874/1430/494 875/1431/494 876/1432/494 -f 870/1426/404 869/1425/404 877/1433/404 874/1430/404 -f 857/1412/495 856/1411/495 878/1434/495 879/1435/495 -f 851/1405/496 873/1429/496 880/1436/496 850/1404/496 -f 881/1437/497 880/1436/497 882/1438/497 883/1439/497 -f 874/1430/405 877/1433/405 884/1440/405 885/1441/405 -f 886/1442/498 887/1443/498 888/1444/498 889/1445/498 -f 850/1404/478 880/1436/406 881/1437/406 849/1403/478 -f 873/1429/499 862/1418/499 890/1446/499 891/1447/499 -f 885/1441/406 884/1440/406 892/1448/406 893/1449/406 -f 859/1414/500 858/1413/500 894/1450/500 895/1451/500 -f 849/1403/476 881/1437/407 864/1420/407 848/1402/476 -f 896/1452/501 897/1453/501 898/1454/501 899/1455/501 -f 893/1449/407 892/1448/407 900/1456/407 901/1457/407 -f 900/1456/502 892/1448/502 902/1458/502 903/1459/502 -f 848/1402/503 864/1420/503 863/1419/503 847/1401/503 -f 893/1449/504 901/1457/504 904/1460/504 905/1461/504 -f 901/1457/408 900/1456/408 887/1443/408 896/1452/408 -f 854/1416/505 860/1415/505 906/1462/505 907/1463/505 -f 847/1401/506 863/1419/506 908/1464/506 845/1399/506 -f 908/1464/507 863/1419/507 866/1422/507 909/1465/507 -f 896/1452/410 887/1443/410 886/1442/410 897/1453/410 -f 884/1440/508 877/1433/508 910/1466/508 911/1467/508 -f 845/1399/472 908/1464/430 861/1468/430 846/1400/472 -f 874/1430/509 885/1441/509 912/1469/509 875/1431/509 -f 897/1453/430 886/1442/430 868/1470/430 867/1471/430 -f 869/1425/510 868/1424/510 913/1472/510 914/1473/510 -f 913/1472/429 907/1463/429 906/1462/429 914/1473/429 -f 914/1473/404 906/1462/404 895/1451/404 910/1466/404 -f 910/1466/405 895/1451/405 894/1450/405 911/1467/405 -f 911/1467/406 894/1450/406 879/1435/406 902/1458/406 -f 902/1458/407 879/1435/407 878/1434/407 903/1459/407 -f 903/1459/408 878/1434/408 872/1428/408 888/1444/408 -f 888/1444/410 872/1428/410 871/1427/410 889/1445/410 -f 889/1445/430 871/1427/430 907/1474/430 913/1475/430 -f 877/1433/511 869/1425/511 914/1473/511 910/1466/511 -f 892/1448/512 884/1440/512 911/1467/512 902/1458/512 -f 860/1415/513 859/1414/513 895/1451/513 906/1462/513 -f 887/1443/514 900/1456/514 903/1459/514 888/1444/514 -f 858/1413/515 857/1412/515 879/1435/515 894/1450/515 -f 868/1470/516 886/1442/516 889/1445/516 913/1475/516 -f 856/1411/517 855/1410/517 872/1428/517 878/1434/517 -f 853/1408/518 854/1409/518 907/1474/518 871/1427/518 -f 915/1476/429 916/1477/429 876/1432/429 890/1446/429 -f 890/1446/404 876/1432/404 875/1431/404 891/1447/404 -f 891/1447/405 875/1431/405 912/1469/405 882/1438/405 -f 882/1438/406 912/1469/406 905/1461/406 883/1439/406 -f 883/1439/407 905/1461/407 904/1460/407 865/1421/407 -f 865/1421/408 904/1460/408 899/1455/408 866/1422/408 -f 866/1422/410 899/1455/410 898/1454/410 909/1465/410 -f 909/1465/430 898/1454/430 916/1478/430 915/1479/430 -f 885/1441/519 893/1449/519 905/1461/519 912/1469/519 -f 861/1468/520 908/1464/520 909/1465/520 915/1479/520 -f 901/1457/521 896/1452/521 899/1455/521 904/1460/521 -f 897/1453/522 867/1471/522 916/1478/522 898/1454/522 -f 862/1418/523 861/1417/523 915/1476/523 890/1446/523 -f 880/1436/524 873/1429/524 891/1447/524 882/1438/524 -f 867/1423/525 870/1426/525 876/1432/525 916/1477/525 -f 864/1420/526 881/1437/526 883/1439/526 865/1421/526 +f 760/1294/416 749/1283/416 752/1297/416 761/1298/416 +f 750/1299/417 763/1300/417 764/1301/417 751/1302/417 +f 758/1292/418 765/1303/418 766/1304/418 754/1305/418 +f 763/1300/419 757/1291/419 753/1306/419 764/1307/419 +f 765/1303/420 759/1293/420 762/1308/420 766/1309/420 +f 767/1310/410 768/1311/410 769/1312/410 770/1313/410 +f 751/1302/421 764/1301/421 771/1314/421 772/1315/421 +f 761/1298/422 752/1297/422 773/1316/422 774/1317/422 +f 762/1296/423 761/1295/423 774/1317/423 768/1311/423 +f 754/1305/424 766/1304/424 767/1310/424 755/1289/424 +f 764/1307/425 753/1306/425 756/1290/425 771/1314/425 +f 752/1286/426 751/1285/426 772/1318/426 773/1316/426 +f 766/1309/427 762/1308/427 768/1311/427 767/1310/427 +f 775/1319/428 770/1313/428 776/1320/428 777/1321/428 +f 756/1290/407 755/1289/407 775/1319/407 778/1322/407 +f 772/1315/405 771/1314/405 779/1323/405 780/1324/405 +f 774/1317/429 773/1316/429 781/1325/429 782/1326/429 +f 768/1311/430 774/1317/430 782/1326/430 769/1312/430 +f 755/1289/408 767/1310/408 770/1313/408 775/1319/408 +f 771/1314/406 756/1290/406 778/1322/406 779/1323/406 +f 773/1316/404 772/1318/404 780/1327/404 781/1325/404 +f 783/1328/431 784/1329/431 785/1330/431 786/1331/431 +f 779/1323/432 778/1322/432 787/1332/432 788/1333/432 +f 781/1325/433 780/1327/433 789/1334/433 784/1335/433 +f 770/1313/434 769/1312/434 790/1336/434 776/1337/434 +f 778/1322/435 775/1319/435 777/1338/435 787/1339/435 +f 780/1324/436 779/1323/436 788/1340/436 789/1341/436 +f 782/1326/437 781/1325/437 784/1329/437 783/1328/437 +f 769/1312/438 782/1326/438 783/1342/438 790/1343/438 +f 791/1344/410 792/1345/410 793/1346/410 794/1347/410 +f 790/1343/439 783/1342/439 786/1331/439 792/1345/439 +f 777/1321/440 776/1320/440 791/1344/440 795/1348/440 +f 788/1333/441 787/1332/441 796/1349/441 797/1350/441 +f 784/1335/442 789/1334/442 798/1351/442 785/1330/442 +f 776/1337/443 790/1336/443 792/1345/443 791/1344/443 +f 787/1339/444 777/1338/444 795/1348/444 796/1349/444 +f 789/1341/445 788/1340/445 797/1350/445 798/1352/445 +f 799/1353/446 800/1354/446 801/1355/446 802/1356/446 +f 796/1349/407 795/1348/407 803/1357/407 804/1358/407 +f 798/1352/405 797/1350/405 805/1359/405 800/1360/405 +f 786/1331/429 785/1330/429 799/1353/429 806/1361/429 +f 792/1345/430 786/1331/430 806/1361/430 793/1346/430 +f 795/1348/408 791/1344/408 794/1347/408 803/1357/408 +f 797/1350/406 796/1349/406 804/1358/406 805/1359/406 +f 785/1330/404 798/1351/404 800/1354/404 799/1353/404 +f 807/1362/447 808/1363/447 809/1364/447 810/1365/447 +f 794/1347/448 793/1346/448 807/1366/448 811/1367/448 +f 804/1358/449 803/1357/449 812/1368/449 813/1369/449 +f 800/1360/450 805/1359/450 814/1370/450 801/1371/450 +f 806/1361/451 799/1353/451 802/1372/451 808/1373/451 +f 793/1346/452 806/1361/452 808/1363/452 807/1362/452 +f 803/1357/453 794/1347/453 811/1374/453 812/1375/453 +f 805/1359/454 804/1358/454 813/1376/454 814/1377/454 +f 815/1378/455 810/1379/455 816/1380/455 817/1381/455 +f 812/1375/456 811/1374/456 815/1382/456 818/1383/456 +f 814/1377/457 813/1376/457 819/1384/457 820/1385/457 +f 802/1356/458 801/1355/458 821/1386/458 822/1387/458 +f 811/1367/459 807/1366/459 810/1379/459 815/1378/459 +f 813/1369/460 812/1368/460 818/1388/460 819/1389/460 +f 801/1371/461 814/1370/461 820/1390/461 821/1391/461 +f 808/1373/462 802/1372/462 822/1392/462 809/1393/462 +f 823/1394/463 817/1395/463 824/1396/463 825/1397/463 +f 819/1389/464 818/1388/464 823/1398/464 826/1399/464 +f 821/1391/465 820/1390/465 827/1400/465 828/1401/465 +f 809/1393/466 822/1392/466 829/1402/466 830/1403/466 +f 810/1365/467 809/1364/467 830/1404/467 816/1405/467 +f 818/1383/468 815/1382/468 817/1395/468 823/1394/468 +f 820/1385/469 819/1384/469 826/1406/469 827/1407/469 +f 822/1387/470 821/1386/470 828/1408/470 829/1409/470 +f 831/1410/407 832/1411/407 833/1412/407 834/1413/407 +f 827/1407/463 826/1406/463 835/1414/463 836/1415/463 +f 829/1409/463 828/1408/463 837/1416/463 832/1417/463 +f 817/1381/463 816/1380/463 838/1418/463 824/1419/463 +f 826/1399/463 823/1398/463 825/1420/463 835/1421/463 +f 828/1401/463 827/1400/463 836/1422/463 837/1423/463 +f 830/1403/463 829/1402/463 832/1411/463 831/1410/463 +f 816/1405/463 830/1404/463 831/1424/463 838/1425/463 +f 834/1426/463 833/1427/463 839/1428/463 840/1429/463 841/1430/463 842/1431/463 843/1432/463 844/1433/463 +f 838/1425/406 831/1424/406 834/1434/406 844/1435/406 +f 825/1397/404 824/1396/404 843/1436/404 842/1437/404 +f 836/1415/430 835/1414/430 841/1438/430 840/1439/430 +f 832/1417/408 837/1416/408 839/1440/408 833/1441/408 +f 824/1419/405 838/1418/405 844/1442/405 843/1443/405 +f 835/1421/429 825/1420/429 842/1444/429 841/1445/429 +f 837/1423/410 836/1422/410 840/1446/410 839/1447/410 +f 759/1293/471 845/1448/471 846/1449/471 760/1294/471 +f 765/1303/472 847/1450/472 845/1448/472 759/1293/472 +f 758/1292/473 848/1451/473 847/1450/473 765/1303/473 +f 757/1291/474 849/1452/474 848/1451/474 758/1292/474 +f 763/1300/475 850/1453/475 849/1452/475 757/1291/475 +f 750/1299/476 851/1454/476 850/1453/476 763/1300/476 +f 749/1283/477 852/1455/477 851/1456/477 750/1284/477 +f 760/1294/478 846/1449/478 852/1455/478 749/1283/478 +f 853/1457/479 748/1282/479 733/1257/479 854/1458/479 +f 855/1459/480 746/1272/480 748/1282/480 853/1457/480 +f 856/1460/481 744/1270/481 746/1272/481 855/1459/481 +f 857/1461/482 742/1268/482 744/1270/482 856/1460/482 +f 858/1462/483 740/1266/483 742/1268/483 857/1461/483 +f 859/1463/484 738/1263/484 740/1266/484 858/1462/484 +f 860/1464/485 736/1260/485 738/1262/485 859/1465/485 +f 854/1458/486 733/1257/486 736/1260/486 860/1464/486 +f 846/1449/429 861/1466/429 862/1467/429 852/1455/429 +f 863/1468/487 864/1469/487 865/1470/487 866/1471/487 +f 867/1472/429 868/1473/429 869/1474/429 870/1475/429 +f 855/1476/488 853/1477/488 871/1478/488 872/1479/488 +f 852/1455/489 862/1467/489 873/1480/489 851/1456/489 +f 870/1481/490 874/1482/490 875/1483/490 876/1484/490 +f 870/1475/404 869/1474/404 877/1485/404 874/1486/404 +f 857/1487/491 856/1488/491 878/1489/491 879/1490/491 +f 851/1454/492 873/1491/492 880/1492/492 850/1453/492 +f 881/1493/493 880/1494/493 882/1495/493 883/1496/493 +f 874/1497/405 877/1498/405 884/1499/405 885/1500/405 +f 886/1501/494 887/1502/494 888/1503/494 889/1504/494 +f 850/1453/406 880/1492/406 881/1505/406 849/1452/406 +f 873/1506/495 862/1507/495 890/1508/495 891/1509/495 +f 885/1500/406 884/1499/406 892/1510/406 893/1511/406 +f 859/1512/496 858/1513/496 894/1514/496 895/1515/496 +f 849/1452/407 881/1505/407 864/1516/407 848/1451/407 +f 896/1517/497 897/1518/497 898/1519/497 899/1520/497 +f 893/1511/407 892/1510/407 900/1521/407 901/1522/407 +f 900/1523/498 892/1524/498 902/1525/498 903/1526/498 +f 848/1451/499 864/1516/499 863/1527/499 847/1450/499 +f 893/1528/500 901/1529/500 904/1530/500 905/1531/500 +f 901/1522/408 900/1521/408 887/1532/408 896/1533/408 +f 854/1534/501 860/1535/501 906/1536/501 907/1537/501 +f 847/1450/502 863/1527/502 908/1538/502 845/1448/502 +f 908/1539/503 863/1540/503 866/1471/503 909/1541/503 +f 896/1533/410 887/1532/410 886/1542/410 897/1543/410 +f 884/1544/504 877/1545/504 910/1546/504 911/1547/504 +f 845/1448/430 908/1538/430 861/1466/430 846/1449/430 +f 874/1548/505 885/1549/505 912/1550/505 875/1551/505 +f 897/1543/430 886/1542/430 868/1473/430 867/1472/430 +f 869/1552/506 868/1553/506 913/1554/506 914/1555/506 +f 913/1554/429 907/1537/429 906/1536/429 914/1555/429 +f 914/1555/404 906/1536/404 895/1556/404 910/1557/404 +f 910/1546/405 895/1515/405 894/1514/405 911/1547/405 +f 911/1547/406 894/1514/406 879/1490/406 902/1525/406 +f 902/1525/407 879/1490/407 878/1489/407 903/1526/407 +f 903/1526/408 878/1489/408 872/1479/408 888/1503/408 +f 888/1503/410 872/1479/410 871/1478/410 889/1504/410 +f 889/1504/430 871/1478/430 907/1537/430 913/1554/430 +f 877/1558/507 869/1559/507 914/1555/507 910/1557/507 +f 892/1560/508 884/1561/508 911/1547/508 902/1525/508 +f 860/1562/509 859/1563/509 895/1556/509 906/1536/509 +f 887/1564/510 900/1565/510 903/1526/510 888/1503/510 +f 858/1566/511 857/1567/511 879/1490/511 894/1514/511 +f 868/1568/512 886/1569/512 889/1504/512 913/1554/512 +f 856/1570/513 855/1571/513 872/1479/513 878/1489/513 +f 853/1572/514 854/1573/514 907/1537/514 871/1478/514 +f 915/1574/429 916/1575/429 876/1484/429 890/1508/429 +f 890/1508/404 876/1484/404 875/1483/404 891/1509/404 +f 891/1576/405 875/1551/405 912/1550/405 882/1495/405 +f 882/1495/406 912/1550/406 905/1531/406 883/1496/406 +f 883/1496/407 905/1531/407 904/1530/407 865/1470/407 +f 865/1470/408 904/1530/408 899/1520/408 866/1471/408 +f 866/1471/410 899/1520/410 898/1519/410 909/1541/410 +f 909/1541/430 898/1519/430 916/1575/430 915/1574/430 +f 885/1577/515 893/1578/515 905/1531/515 912/1550/515 +f 861/1579/516 908/1580/516 909/1541/516 915/1574/516 +f 901/1581/517 896/1582/517 899/1520/517 904/1530/517 +f 897/1583/518 867/1584/518 916/1575/518 898/1519/518 +f 862/1585/519 861/1586/519 915/1574/519 890/1508/519 +f 880/1587/520 873/1588/520 891/1576/520 882/1495/520 +f 867/1589/521 870/1590/521 876/1484/521 916/1575/521 +f 864/1591/522 881/1592/522 883/1496/522 865/1470/522 o SideScrews_Cylinder.005 -v -0.436383 0.265019 0.509254 -v 1.004741 0.265019 0.509254 -v 1.004741 0.179718 0.544586 -v -0.436383 0.179718 0.544586 -v 1.004741 0.144386 0.629887 -v -0.436383 0.144385 0.629887 -v 1.004741 0.179718 0.715187 -v -0.436383 0.179718 0.715187 -v 1.004741 0.265019 0.750520 -v -0.436383 0.265019 0.750520 -v 1.004741 0.350319 0.715187 -v -0.436383 0.350319 0.715187 -v 1.004741 0.385652 0.629887 -v -0.436383 0.385652 0.629887 -v 1.088061 0.265019 0.750520 -v 1.088061 0.350319 0.715187 -v 1.004741 0.350319 0.544586 -v -0.436383 0.350319 0.544586 -v -0.513171 0.364069 0.629887 -v -0.513171 0.335058 0.699926 -v -0.513171 0.265019 0.530836 -v -0.513171 0.194979 0.559848 -v -0.513171 0.165968 0.629887 -v -0.513171 0.194979 0.699926 -v -0.513171 0.265019 0.728937 -v -0.513171 0.335058 0.559848 -v 1.088061 0.265019 0.509254 -v 1.088061 0.350319 0.544586 -v 1.100404 0.336110 0.558795 -v 1.100404 0.265019 0.529348 -v 1.088061 0.179718 0.544586 -v 1.088061 0.144386 0.629887 -v 1.088061 0.179718 0.715187 -v 1.088061 0.385652 0.629887 -v 1.100404 0.336110 0.700979 -v 1.100404 0.365558 0.629887 -v 1.100404 0.193927 0.700979 -v 1.100404 0.265019 0.730426 -v 1.100404 0.193927 0.558795 -v 1.100404 0.164480 0.629887 -v 1.127149 0.181939 0.629887 -v 1.127149 0.206273 0.688633 -v 1.127149 0.206273 0.571141 -v 1.127149 0.265019 0.546807 -v 1.127149 0.323765 0.571141 -v 1.127149 0.348098 0.629887 -v 1.127149 0.323765 0.688633 -v 1.127149 0.265019 0.712966 -v -0.436384 0.265019 -0.509254 -v -0.436384 0.179718 -0.544586 -v 1.004741 0.179718 -0.544586 -v 1.004741 0.265019 -0.509254 -v -0.436384 0.144385 -0.629887 -v 1.004741 0.144386 -0.629887 -v -0.436384 0.179718 -0.715187 -v 1.004741 0.179718 -0.715187 -v -0.436384 0.265019 -0.750520 -v 1.004741 0.265019 -0.750520 -v -0.436384 0.350319 -0.715187 -v 1.004741 0.350319 -0.715187 -v -0.436384 0.385652 -0.629887 -v 1.004741 0.385652 -0.629887 -v 1.088061 0.350319 -0.715187 -v 1.088061 0.265019 -0.750520 -v -0.436384 0.350319 -0.544586 -v 1.004741 0.350319 -0.544586 -v -0.513171 0.335058 -0.699926 -v -0.513171 0.364069 -0.629887 -v -0.513171 0.265019 -0.530836 -v -0.513171 0.335058 -0.559848 -v -0.513171 0.265019 -0.728937 -v -0.513171 0.194979 -0.699926 -v -0.513171 0.165968 -0.629887 -v -0.513171 0.194979 -0.559848 -v 1.088061 0.265019 -0.509254 -v 1.100404 0.265019 -0.529348 -v 1.100404 0.336111 -0.558795 -v 1.088061 0.350319 -0.544586 -v 1.088061 0.179718 -0.544586 -v 1.088061 0.179718 -0.715187 -v 1.088061 0.144386 -0.629887 -v 1.088061 0.385652 -0.629887 -v 1.100404 0.365558 -0.629887 -v 1.100404 0.336110 -0.700979 -v 1.100404 0.265019 -0.730426 -v 1.100404 0.193927 -0.700979 -v 1.100404 0.164480 -0.629887 -v 1.100404 0.193927 -0.558795 -v 1.127149 0.206273 -0.688633 -v 1.127149 0.181939 -0.629887 -v 1.127149 0.206273 -0.571141 -v 1.127149 0.265019 -0.712966 -v 1.127149 0.323765 -0.688633 -v 1.127149 0.348098 -0.629887 -v 1.127149 0.323765 -0.571141 -v 1.127149 0.265019 -0.546807 -vt 1.000000 0.500000 -vt 1.000000 1.000000 -vt 0.875000 1.000000 -vt 0.875000 0.500000 -vt 0.750000 1.000000 -vt 0.750000 0.500000 -vt 0.625000 1.000000 -vt 0.625000 0.500000 -vt 0.500000 1.000000 -vt 0.500000 0.500000 -vt 0.375000 1.000000 -vt 0.375000 0.500000 -vt 0.250000 1.000000 -vt 0.250000 0.500000 -vt 0.500000 1.000000 -vt 0.375000 1.000000 -vt 0.125000 1.000000 -vt 0.125000 0.500000 -vt 0.000000 1.000000 -vt 0.000000 0.500000 -vt 0.250000 0.500000 -vt 0.375000 0.500000 -vt 0.750000 0.490000 -vt 0.919706 0.419706 -vt 0.990000 0.250000 -vt 0.919706 0.080294 -vt 0.750000 0.010000 -vt 0.580294 0.080294 -vt 0.510000 0.250000 -vt 0.580294 0.419706 -vt 0.500000 0.500000 -vt 0.625000 0.500000 -vt 0.125000 0.500000 -vt 0.750000 0.500000 -vt 0.875000 0.500000 -vt 0.000000 0.500000 -vt 1.000000 0.500000 -vt 0.000000 1.000000 -vt 0.125000 1.000000 -vt 0.125000 1.000000 -vt 0.000000 1.000000 -vt 1.000000 1.000000 -vt 0.875000 1.000000 -vt 0.750000 1.000000 -vt 0.625000 1.000000 -vt 0.250000 1.000000 -vt 0.375000 1.000000 -vt 0.250000 1.000000 -vt 0.625000 1.000000 -vt 0.500000 1.000000 -vt 0.875000 1.000000 -vt 0.750000 1.000000 -vt 1.000000 1.000000 -vt 0.750000 1.000000 -vt 0.625000 1.000000 -vt 0.419706 0.419706 -vt 0.250000 0.490000 -vt 0.080294 0.419706 -vt 0.010000 0.250000 -vt 0.080294 0.080294 -vt 0.250000 0.010000 -vt 0.419706 0.080294 -vt 0.490000 0.250000 -vt 1.000000 1.000000 -vt 0.875000 1.000000 -vt 0.125000 1.000000 -vt 0.000000 1.000000 -vt 0.375000 1.000000 -vt 0.250000 1.000000 -vt 0.500000 1.000000 -vt 1.000000 0.500000 -vt 0.875000 0.500000 -vt 0.875000 1.000000 -vt 1.000000 1.000000 -vt 0.750000 0.500000 -vt 0.750000 1.000000 -vt 0.625000 0.500000 -vt 0.625000 1.000000 -vt 0.500000 0.500000 -vt 0.500000 1.000000 -vt 0.375000 0.500000 -vt 0.375000 1.000000 -vt 0.250000 0.500000 -vt 0.250000 1.000000 -vt 0.375000 1.000000 -vt 0.500000 1.000000 -vt 0.125000 0.500000 -vt 0.125000 1.000000 -vt 0.000000 0.500000 -vt 0.000000 1.000000 -vt 0.375000 0.500000 -vt 0.250000 0.500000 -vt 0.750000 0.490000 -vt 0.580294 0.419706 -vt 0.510000 0.250000 -vt 0.580294 0.080294 -vt 0.750000 0.010000 -vt 0.919706 0.080294 -vt 0.990000 0.250000 -vt 0.919706 0.419706 -vt 0.625000 0.500000 -vt 0.500000 0.500000 -vt 0.125000 0.500000 -vt 0.875000 0.500000 -vt 0.750000 0.500000 -vt 0.000000 0.500000 -vt 1.000000 0.500000 -vt 0.000000 1.000000 -vt 0.000000 1.000000 -vt 0.125000 1.000000 -vt 0.125000 1.000000 -vt 0.875000 1.000000 -vt 1.000000 1.000000 -vt 0.625000 1.000000 -vt 0.750000 1.000000 -vt 0.250000 1.000000 -vt 0.250000 1.000000 -vt 0.375000 1.000000 -vt 0.500000 1.000000 -vt 0.625000 1.000000 -vt 0.750000 1.000000 -vt 0.875000 1.000000 -vt 1.000000 1.000000 -vt 0.625000 1.000000 -vt 0.750000 1.000000 -vt 0.419706 0.419706 -vt 0.490000 0.250000 -vt 0.419706 0.080294 -vt 0.250000 0.010000 -vt 0.080294 0.080294 -vt 0.010000 0.250000 -vt 0.080294 0.419706 -vt 0.250000 0.490000 -vt 0.875000 1.000000 -vt 1.000000 1.000000 -vt 0.000000 1.000000 -vt 0.125000 1.000000 -vt 0.250000 1.000000 -vt 0.375000 1.000000 -vt 0.500000 1.000000 +v -0.436383 0.265019 3.509254 +v 1.004741 0.265019 3.509254 +v 1.004741 0.179718 3.544586 +v -0.436383 0.179718 3.544586 +v 1.004741 0.144386 3.629887 +v -0.436383 0.144385 3.629887 +v 1.004741 0.179718 3.715187 +v -0.436383 0.179718 3.715187 +v 1.004741 0.265019 3.750520 +v -0.436383 0.265019 3.750520 +v 1.004741 0.350319 3.715187 +v -0.436383 0.350319 3.715187 +v 1.004741 0.385652 3.629887 +v -0.436383 0.385652 3.629887 +v 1.088061 0.265019 3.750520 +v 1.088061 0.350319 3.715187 +v 1.004741 0.350319 3.544586 +v -0.436383 0.350319 3.544586 +v -0.513171 0.364069 3.629887 +v -0.513171 0.335058 3.699926 +v -0.513171 0.265019 3.530836 +v -0.513171 0.194979 3.559848 +v -0.513171 0.165968 3.629887 +v -0.513171 0.194979 3.699926 +v -0.513171 0.265019 3.728937 +v -0.513171 0.335058 3.559848 +v 1.088061 0.265019 3.509254 +v 1.088061 0.350319 3.544586 +v 1.100404 0.336110 3.558795 +v 1.100404 0.265019 3.529348 +v 1.088061 0.179718 3.544586 +v 1.088061 0.144386 3.629887 +v 1.088061 0.179718 3.715187 +v 1.088061 0.385652 3.629887 +v 1.100404 0.336110 3.700979 +v 1.100404 0.365558 3.629887 +v 1.100404 0.193927 3.700979 +v 1.100404 0.265019 3.730426 +v 1.100404 0.193927 3.558795 +v 1.100404 0.164480 3.629887 +v 1.127149 0.181939 3.629887 +v 1.127149 0.206273 3.688633 +v 1.127149 0.206273 3.571141 +v 1.127149 0.265019 3.546807 +v 1.127149 0.323765 3.571141 +v 1.127149 0.348098 3.629887 +v 1.127149 0.323765 3.688633 +v 1.127149 0.265019 3.712966 +v -0.436384 0.265019 2.490746 +v -0.436384 0.179718 2.455414 +v 1.004741 0.179718 2.455414 +v 1.004741 0.265019 2.490746 +v -0.436384 0.144385 2.370113 +v 1.004741 0.144386 2.370113 +v -0.436384 0.179718 2.284813 +v 1.004741 0.179718 2.284813 +v -0.436384 0.265019 2.249480 +v 1.004741 0.265019 2.249480 +v -0.436384 0.350319 2.284813 +v 1.004741 0.350319 2.284813 +v -0.436384 0.385652 2.370113 +v 1.004741 0.385652 2.370113 +v 1.088061 0.350319 2.284813 +v 1.088061 0.265019 2.249480 +v -0.436384 0.350319 2.455414 +v 1.004741 0.350319 2.455414 +v -0.513171 0.335058 2.300074 +v -0.513171 0.364069 2.370113 +v -0.513171 0.265019 2.469164 +v -0.513171 0.335058 2.440152 +v -0.513171 0.265019 2.271063 +v -0.513171 0.194979 2.300074 +v -0.513171 0.165968 2.370113 +v -0.513171 0.194979 2.440152 +v 1.088061 0.265019 2.490746 +v 1.100404 0.265019 2.470652 +v 1.100404 0.336111 2.441205 +v 1.088061 0.350319 2.455414 +v 1.088061 0.179718 2.455414 +v 1.088061 0.179718 2.284813 +v 1.088061 0.144386 2.370113 +v 1.088061 0.385652 2.370113 +v 1.100404 0.365558 2.370113 +v 1.100404 0.336110 2.299021 +v 1.100404 0.265019 2.269574 +v 1.100404 0.193927 2.299021 +v 1.100404 0.164480 2.370113 +v 1.100404 0.193927 2.441205 +v 1.127149 0.206273 2.311367 +v 1.127149 0.181939 2.370113 +v 1.127149 0.206273 2.428859 +v 1.127149 0.265019 2.287034 +v 1.127149 0.323765 2.311367 +v 1.127149 0.348098 2.370113 +v 1.127149 0.323765 2.428859 +v 1.127149 0.265019 2.453193 +vt 0.047908 0.778254 +vt 0.915002 0.778254 +vt 0.915002 0.833806 +vt 0.047908 0.833806 +vt 0.915002 0.889359 +vt 0.047908 0.889358 +vt 0.047908 0.444941 +vt 0.915002 0.444941 +vt 0.915002 0.500493 +vt 0.047908 0.500493 +vt 0.915002 0.556045 +vt 0.047908 0.556045 +vt 0.915002 0.611597 +vt 0.047908 0.611598 +vt 0.915002 0.667149 +vt 0.047908 0.667150 +vt 0.965134 0.556045 +vt 0.965134 0.611597 +vt 0.915002 0.722702 +vt 0.047908 0.722702 +vt 0.000174 0.662180 +vt 0.000174 0.616567 +vt 0.188508 0.999826 +vt 0.142894 0.999826 +vt 0.110641 0.967572 +vt 0.110641 0.921959 +vt 0.142895 0.889706 +vt 0.188508 0.889706 +vt 0.220761 0.921959 +vt 0.220761 0.967572 +vt 0.000174 0.551076 +vt 0.000174 0.505463 +vt 0.000174 0.717732 +vt 0.000174 0.672119 +vt 0.000174 0.884388 +vt 0.000174 0.838776 +vt 0.000174 0.606628 +vt 0.000174 0.561015 +vt 0.000174 0.773284 +vt 0.000174 0.727671 +vt 0.000174 0.828837 +vt 0.000174 0.783223 +vt 0.000174 0.495524 +vt 0.000174 0.449911 +vt 0.965134 0.778254 +vt 0.965134 0.722702 +vt 0.978548 0.727329 +vt 0.978548 0.773627 +vt 0.965134 0.833806 +vt 0.965134 0.444941 +vt 0.965134 0.500493 +vt 0.965134 0.667149 +vt 0.965134 0.889359 +vt 0.978548 0.616224 +vt 0.978548 0.662523 +vt 0.978548 0.505120 +vt 0.978548 0.551419 +vt 0.978548 0.838433 +vt 0.978548 0.884732 +vt 0.978548 0.671776 +vt 0.978548 0.718075 +vt 0.978548 0.560672 +vt 0.978548 0.606970 +vt 0.978548 0.449567 +vt 0.978548 0.495866 +vt 0.978548 0.782880 +vt 0.978548 0.829179 +vt 0.997340 0.453587 +vt 0.997340 0.491846 +vt 0.313821 0.916759 +vt 0.340874 0.889706 +vt 0.379132 0.889706 +vt 0.406185 0.916760 +vt 0.406185 0.955018 +vt 0.379132 0.982071 +vt 0.340873 0.982071 +vt 0.313820 0.955018 +vt 0.997340 0.786900 +vt 0.997340 0.825159 +vt 0.997340 0.731349 +vt 0.997339 0.769607 +vt 0.997340 0.620244 +vt 0.997340 0.658502 +vt 0.997340 0.509140 +vt 0.997340 0.547398 +vt 0.997340 0.842454 +vt 0.997340 0.880712 +vt 0.997340 0.675796 +vt 0.997340 0.714055 +vt 0.997340 0.564692 +vt 0.997340 0.602951 +vt 0.047908 0.111279 +vt 0.047908 0.055726 +vt 0.915003 0.055729 +vt 0.915003 0.111281 +vt 0.047908 0.000174 +vt 0.915003 0.000177 +vt 0.047907 0.444592 +vt 0.047907 0.389040 +vt 0.915002 0.389041 +vt 0.915002 0.444593 +vt 0.047907 0.333487 +vt 0.915002 0.333489 +vt 0.047907 0.277935 +vt 0.915002 0.277937 +vt 0.047908 0.222383 +vt 0.915002 0.222385 +vt 0.965134 0.277937 +vt 0.965134 0.333489 +vt 0.047908 0.166830 +vt 0.915003 0.166833 +vt 0.000174 0.272966 +vt 0.000174 0.227352 +vt 0.032427 0.889706 +vt 0.078041 0.889706 +vt 0.110294 0.921960 +vt 0.110294 0.967573 +vt 0.078041 0.999826 +vt 0.032427 0.999826 +vt 0.000174 0.967573 +vt 0.000174 0.921960 +vt 0.000174 0.384070 +vt 0.000174 0.338457 +vt 0.000174 0.217413 +vt 0.000174 0.171800 +vt 0.000175 0.050756 +vt 0.000175 0.005143 +vt 0.000174 0.328517 +vt 0.000174 0.282904 +vt 0.000174 0.161861 +vt 0.000175 0.116248 +vt 0.000175 0.106309 +vt 0.000175 0.060695 +vt 0.000174 0.439622 +vt 0.000174 0.394009 +vt 0.965135 0.111281 +vt 0.978548 0.115908 +vt 0.978548 0.162207 +vt 0.965135 0.166833 +vt 0.965135 0.055729 +vt 0.965134 0.389041 +vt 0.965134 0.444593 +vt 0.965134 0.222385 +vt 0.965135 0.000177 +vt 0.978548 0.227012 +vt 0.978548 0.273311 +vt 0.978547 0.338116 +vt 0.978547 0.384414 +vt 0.978548 0.004803 +vt 0.978548 0.051102 +vt 0.978547 0.171460 +vt 0.978547 0.217759 +vt 0.978547 0.282564 +vt 0.978547 0.328863 +vt 0.978548 0.393668 +vt 0.978548 0.439967 +vt 0.978548 0.060356 +vt 0.978548 0.106654 +vt 0.997340 0.397688 +vt 0.997340 0.435947 +vt 0.248162 0.982070 +vt 0.221109 0.955017 +vt 0.221109 0.916758 +vt 0.248162 0.889706 +vt 0.286421 0.889706 +vt 0.313473 0.916759 +vt 0.313473 0.955017 +vt 0.286420 0.982071 +vt 0.997340 0.064376 +vt 0.997340 0.102635 +vt 0.997340 0.119928 +vt 0.997341 0.158187 +vt 0.997340 0.231032 +vt 0.997340 0.269291 +vt 0.997339 0.342136 +vt 0.997339 0.380394 +vt 0.997340 0.008823 +vt 0.997340 0.047082 +vt 0.997339 0.175480 +vt 0.997339 0.213738 +vt 0.997340 0.286584 +vt 0.997340 0.324842 vn 0.0000 -0.3827 -0.9239 vn 0.0000 -0.9239 -0.3827 vn 0.0000 -0.9239 0.3827 @@ -4027,7 +4178,7 @@ vn 0.8327 0.2119 0.5115 vn 0.8327 -0.5115 0.2119 vn 0.8327 -0.2119 -0.5115 vn 0.5165 -0.7911 0.3277 -vn 1.0000 -0.0000 0.0000 +vn 1.0000 0.0000 0.0000 vn 0.5165 -0.3277 -0.7911 vn 0.5165 0.3277 -0.7911 vn 0.5165 0.7911 0.3277 @@ -4035,91 +4186,91 @@ vn 0.5165 -0.3277 0.7911 vn 0.5165 -0.7911 -0.3277 vn 0.5165 0.7911 -0.3277 vn 0.5165 0.3277 0.7911 -s 1 -f 917/1480/527 918/1481/527 919/1482/527 920/1483/527 -f 920/1483/528 919/1482/528 921/1484/528 922/1485/528 -f 922/1485/529 921/1484/529 923/1486/529 924/1487/529 -f 924/1487/530 923/1486/530 925/1488/530 926/1489/530 -f 926/1489/531 925/1488/531 927/1490/531 928/1491/531 -f 928/1491/532 927/1490/532 929/1492/532 930/1493/532 -f 927/1490/531 925/1488/531 931/1494/531 932/1495/531 -f 930/1493/533 929/1492/533 933/1496/533 934/1497/533 -f 934/1497/534 933/1496/534 918/1498/534 917/1499/534 -f 928/1491/535 930/1493/535 935/1500/535 936/1501/535 -f 937/1502/536 938/1503/536 939/1504/536 940/1505/536 941/1506/536 936/1507/536 935/1508/536 942/1509/536 -f 924/1487/537 926/1489/537 941/1510/537 940/1511/537 -f 930/1493/538 934/1497/538 942/1512/538 935/1500/538 -f 920/1483/539 922/1485/539 939/1513/539 938/1514/539 -f 926/1489/540 928/1491/540 936/1501/540 941/1510/540 -f 934/1497/541 917/1499/541 937/1515/541 942/1512/541 -f 917/1480/542 920/1483/542 938/1514/542 937/1516/542 -f 922/1485/543 924/1487/543 940/1511/543 939/1513/543 -f 943/1517/544 944/1518/544 945/1519/544 946/1520/544 -f 918/1498/534 933/1496/534 944/1518/534 943/1517/534 -f 919/1482/527 918/1481/527 943/1521/527 947/1522/527 -f 923/1486/529 921/1484/529 948/1523/529 949/1524/529 -f 929/1492/532 927/1490/532 932/1495/532 950/1525/532 -f 925/1488/530 923/1486/530 949/1524/530 931/1494/530 -f 933/1496/533 929/1492/533 950/1525/533 944/1518/533 -f 921/1484/528 919/1482/528 947/1522/528 948/1523/528 -f 950/1525/545 932/1495/545 951/1526/545 952/1527/545 -f 931/1494/546 949/1524/546 953/1528/546 954/1529/546 -f 948/1523/547 947/1522/547 955/1530/547 956/1531/547 -f 944/1518/548 950/1525/548 952/1527/548 945/1519/548 -f 932/1495/549 931/1494/549 954/1529/549 951/1526/549 -f 949/1524/550 948/1523/550 956/1531/550 953/1528/550 -f 947/1522/551 943/1521/551 946/1532/551 955/1530/551 -f 953/1528/552 956/1531/552 957/1533/552 958/1534/552 -f 959/1535/553 960/1536/553 961/1537/553 962/1538/553 963/1539/553 964/1540/553 958/1541/553 957/1542/553 -f 955/1530/554 946/1532/554 960/1543/554 959/1544/554 -f 946/1520/555 945/1519/555 961/1545/555 960/1546/555 -f 952/1527/556 951/1526/556 963/1547/556 962/1548/556 -f 954/1529/557 953/1528/557 958/1534/557 964/1549/557 -f 956/1531/558 955/1530/558 959/1544/558 957/1533/558 -f 945/1519/559 952/1527/559 962/1548/559 961/1545/559 -f 951/1526/560 954/1529/560 964/1549/560 963/1547/560 -f 965/1550/530 966/1551/530 967/1552/530 968/1553/530 -f 966/1551/529 969/1554/529 970/1555/529 967/1552/529 -f 969/1554/528 971/1556/528 972/1557/528 970/1555/528 -f 971/1556/527 973/1558/527 974/1559/527 972/1557/527 -f 973/1558/534 975/1560/534 976/1561/534 974/1559/534 -f 975/1560/533 977/1562/533 978/1563/533 976/1561/533 -f 976/1561/534 979/1564/534 980/1565/534 974/1559/534 -f 977/1562/532 981/1566/532 982/1567/532 978/1563/532 -f 981/1566/531 965/1568/531 968/1569/531 982/1567/531 -f 975/1560/538 983/1570/538 984/1571/538 977/1562/538 -f 985/1572/536 986/1573/536 984/1574/536 983/1575/536 987/1576/536 988/1577/536 989/1578/536 990/1579/536 -f 971/1556/542 988/1580/542 987/1581/542 973/1558/542 -f 977/1562/535 984/1571/535 986/1582/535 981/1566/535 -f 966/1551/543 990/1583/543 989/1584/543 969/1554/543 -f 973/1558/541 987/1581/541 983/1570/541 975/1560/541 -f 981/1566/540 986/1582/540 985/1585/540 965/1568/540 -f 965/1550/537 985/1586/537 990/1583/537 966/1551/537 -f 969/1554/539 989/1584/539 988/1580/539 971/1556/539 -f 991/1587/549 992/1588/549 993/1589/549 994/1590/549 -f 968/1569/531 991/1587/531 994/1590/531 982/1567/531 -f 967/1552/530 995/1591/530 991/1592/530 968/1553/530 -f 972/1557/528 996/1593/528 997/1594/528 970/1555/528 -f 978/1563/533 998/1595/533 979/1564/533 976/1561/533 -f 974/1559/527 980/1565/527 996/1593/527 972/1557/527 -f 982/1567/532 994/1590/532 998/1595/532 978/1563/532 -f 970/1555/529 997/1594/529 995/1591/529 967/1552/529 -f 998/1595/548 999/1596/548 1000/1597/548 979/1564/548 -f 980/1565/551 1001/1598/551 1002/1599/551 996/1593/551 -f 997/1594/550 1003/1600/550 1004/1601/550 995/1591/550 -f 994/1590/545 993/1589/545 999/1596/545 998/1595/545 -f 979/1564/544 1000/1597/544 1001/1598/544 980/1565/544 -f 996/1593/547 1002/1599/547 1003/1600/547 997/1594/547 -f 995/1591/546 1004/1601/546 992/1602/546 991/1592/546 -f 1002/1599/558 1005/1603/558 1006/1604/558 1003/1600/558 -f 1007/1605/553 1006/1606/553 1005/1607/553 1008/1608/553 1009/1609/553 1010/1610/553 1011/1611/553 1012/1612/553 -f 1004/1601/557 1007/1613/557 1012/1614/557 992/1602/557 -f 992/1588/560 1012/1615/560 1011/1616/560 993/1589/560 -f 999/1596/559 1010/1617/559 1009/1618/559 1000/1597/559 -f 1001/1598/554 1008/1619/554 1005/1603/554 1002/1599/554 -f 1003/1600/552 1006/1604/552 1007/1613/552 1004/1601/552 -f 993/1589/556 1011/1616/556 1010/1617/556 999/1596/556 -f 1000/1597/555 1009/1618/555 1008/1619/555 1001/1598/555 +s off +f 917/1593/523 918/1594/523 919/1595/523 920/1596/523 +f 920/1596/524 919/1595/524 921/1597/524 922/1598/524 +f 922/1599/525 921/1600/525 923/1601/525 924/1602/525 +f 924/1602/526 923/1601/526 925/1603/526 926/1604/526 +f 926/1604/527 925/1603/527 927/1605/527 928/1606/527 +f 928/1606/528 927/1605/528 929/1607/528 930/1608/528 +f 927/1605/527 925/1603/527 931/1609/527 932/1610/527 +f 930/1608/529 929/1607/529 933/1611/529 934/1612/529 +f 934/1612/530 933/1611/530 918/1594/530 917/1593/530 +f 928/1606/531 930/1608/531 935/1613/531 936/1614/531 +f 937/1615/532 938/1616/532 939/1617/532 940/1618/532 941/1619/532 936/1620/532 935/1621/532 942/1622/532 +f 924/1602/533 926/1604/533 941/1623/533 940/1624/533 +f 930/1608/534 934/1612/534 942/1625/534 935/1626/534 +f 920/1596/535 922/1598/535 939/1627/535 938/1628/535 +f 926/1604/536 928/1606/536 936/1629/536 941/1630/536 +f 934/1612/537 917/1593/537 937/1631/537 942/1632/537 +f 917/1593/538 920/1596/538 938/1633/538 937/1634/538 +f 922/1599/539 924/1602/539 940/1635/539 939/1636/539 +f 943/1637/540 944/1638/540 945/1639/540 946/1640/540 +f 918/1594/530 933/1611/530 944/1638/530 943/1637/530 +f 919/1595/523 918/1594/523 943/1637/523 947/1641/523 +f 923/1601/525 921/1600/525 948/1642/525 949/1643/525 +f 929/1607/528 927/1605/528 932/1610/528 950/1644/528 +f 925/1603/526 923/1601/526 949/1643/526 931/1609/526 +f 933/1611/529 929/1607/529 950/1644/529 944/1638/529 +f 921/1597/524 919/1595/524 947/1641/524 948/1645/524 +f 950/1644/541 932/1610/541 951/1646/541 952/1647/541 +f 931/1609/542 949/1643/542 953/1648/542 954/1649/542 +f 948/1645/543 947/1641/543 955/1650/543 956/1651/543 +f 944/1638/544 950/1644/544 952/1652/544 945/1653/544 +f 932/1610/545 931/1609/545 954/1654/545 951/1655/545 +f 949/1643/546 948/1642/546 956/1656/546 953/1657/546 +f 947/1641/547 943/1637/547 946/1658/547 955/1659/547 +f 953/1657/548 956/1656/548 957/1660/548 958/1661/548 +f 959/1662/549 960/1663/549 961/1664/549 962/1665/549 963/1666/549 964/1667/549 958/1668/549 957/1669/549 +f 955/1659/550 946/1658/550 960/1670/550 959/1671/550 +f 946/1640/551 945/1639/551 961/1672/551 960/1673/551 +f 952/1647/552 951/1646/552 963/1674/552 962/1675/552 +f 954/1649/553 953/1648/553 958/1676/553 964/1677/553 +f 956/1651/554 955/1650/554 959/1678/554 957/1679/554 +f 945/1653/555 952/1652/555 962/1680/555 961/1681/555 +f 951/1655/556 954/1654/556 964/1682/556 963/1683/556 +f 965/1684/526 966/1685/526 967/1686/526 968/1687/526 +f 966/1685/525 969/1688/525 970/1689/525 967/1686/525 +f 969/1690/524 971/1691/524 972/1692/524 970/1693/524 +f 971/1691/523 973/1694/523 974/1695/523 972/1692/523 +f 973/1694/530 975/1696/530 976/1697/530 974/1695/530 +f 975/1696/529 977/1698/529 978/1699/529 976/1697/529 +f 976/1697/530 979/1700/530 980/1701/530 974/1695/530 +f 977/1698/528 981/1702/528 982/1703/528 978/1699/528 +f 981/1702/527 965/1684/527 968/1687/527 982/1703/527 +f 975/1696/534 983/1704/534 984/1705/534 977/1698/534 +f 985/1706/532 986/1707/532 984/1708/532 983/1709/532 987/1710/532 988/1711/532 989/1712/532 990/1713/532 +f 971/1691/538 988/1714/538 987/1715/538 973/1694/538 +f 977/1698/531 984/1716/531 986/1717/531 981/1702/531 +f 966/1685/539 990/1718/539 989/1719/539 969/1688/539 +f 973/1694/537 987/1720/537 983/1721/537 975/1696/537 +f 981/1702/536 986/1722/536 985/1723/536 965/1684/536 +f 965/1684/533 985/1724/533 990/1725/533 966/1685/533 +f 969/1690/535 989/1726/535 988/1727/535 971/1691/535 +f 991/1728/545 992/1729/545 993/1730/545 994/1731/545 +f 968/1687/527 991/1728/527 994/1731/527 982/1703/527 +f 967/1686/526 995/1732/526 991/1728/526 968/1687/526 +f 972/1692/524 996/1733/524 997/1734/524 970/1693/524 +f 978/1699/529 998/1735/529 979/1700/529 976/1697/529 +f 974/1695/523 980/1701/523 996/1733/523 972/1692/523 +f 982/1703/528 994/1731/528 998/1735/528 978/1699/528 +f 970/1689/525 997/1736/525 995/1732/525 967/1686/525 +f 998/1735/544 999/1737/544 1000/1738/544 979/1700/544 +f 980/1701/547 1001/1739/547 1002/1740/547 996/1733/547 +f 997/1736/546 1003/1741/546 1004/1742/546 995/1732/546 +f 994/1731/541 993/1743/541 999/1744/541 998/1735/541 +f 979/1700/540 1000/1745/540 1001/1746/540 980/1701/540 +f 996/1733/543 1002/1747/543 1003/1748/543 997/1734/543 +f 995/1732/542 1004/1749/542 992/1750/542 991/1728/542 +f 1002/1747/554 1005/1751/554 1006/1752/554 1003/1748/554 +f 1007/1753/549 1006/1754/549 1005/1755/549 1008/1756/549 1009/1757/549 1010/1758/549 1011/1759/549 1012/1760/549 +f 1004/1749/553 1007/1761/553 1012/1762/553 992/1750/553 +f 992/1729/556 1012/1763/556 1011/1764/556 993/1730/556 +f 999/1737/555 1010/1765/555 1009/1766/555 1000/1738/555 +f 1001/1739/550 1008/1767/550 1005/1768/550 1002/1740/550 +f 1003/1741/548 1006/1769/548 1007/1770/548 1004/1742/548 +f 993/1743/552 1011/1771/552 1010/1772/552 999/1744/552 +f 1000/1745/551 1009/1773/551 1008/1774/551 1001/1746/551 o CoiCanon_Cylinder.004 v -0.419369 0.526526 -0.206986 v 0.947632 0.526526 -0.206986 @@ -4182,16 +4333,16 @@ vn 0.0000 0.9239 -0.3827 vn 0.0000 0.3827 -0.9239 vn -1.0000 0.0000 0.0000 s 1 -f 1013/1620/561 1014/1621/561 1015/1622/561 1016/1623/561 -f 1016/1623/562 1015/1622/562 1017/1624/562 1018/1625/562 -f 1018/1625/563 1017/1624/563 1019/1626/563 1020/1627/563 -f 1020/1627/564 1019/1626/564 1021/1628/564 1022/1629/564 -f 1022/1629/565 1021/1628/565 1023/1630/565 1024/1631/565 -f 1024/1631/566 1023/1630/566 1025/1632/566 1026/1633/566 -f 1015/1634/567 1014/1635/567 1027/1636/567 1025/1637/567 1023/1638/567 1021/1639/567 1019/1640/567 1017/1641/567 -f 1026/1633/568 1025/1632/568 1027/1642/568 1028/1643/568 -f 1028/1643/569 1027/1642/569 1014/1644/569 1013/1645/569 -f 1013/1646/570 1016/1647/570 1018/1648/570 1020/1649/570 1022/1650/570 1024/1651/570 1026/1652/570 1028/1653/570 +f 1013/1775/557 1014/1776/557 1015/1777/557 1016/1778/557 +f 1016/1778/558 1015/1777/558 1017/1779/558 1018/1780/558 +f 1018/1780/559 1017/1779/559 1019/1781/559 1020/1782/559 +f 1020/1782/560 1019/1781/560 1021/1783/560 1022/1784/560 +f 1022/1784/561 1021/1783/561 1023/1785/561 1024/1786/561 +f 1024/1786/562 1023/1785/562 1025/1787/562 1026/1788/562 +f 1015/1789/563 1014/1790/563 1027/1791/563 1025/1792/563 1023/1793/563 1021/1794/563 1019/1795/563 1017/1796/563 +f 1026/1788/564 1025/1787/564 1027/1797/564 1028/1798/564 +f 1028/1798/565 1027/1797/565 1014/1799/565 1013/1800/565 +f 1013/1801/566 1016/1802/566 1018/1803/566 1020/1804/566 1022/1805/566 1024/1806/566 1026/1807/566 1028/1808/566 o SideHolders_Cube.003 v 1.384588 0.551670 0.654257 v 1.384588 0.551670 0.449972 @@ -4292,34 +4443,34 @@ vn -0.3634 0.0000 0.9316 vn 0.4890 0.0000 -0.8723 vn -0.3635 0.0000 -0.9316 s 1 -f 1029/1654/571 1030/1655/571 1031/1656/571 1032/1657/571 -f 1033/1658/572 1030/1659/572 1034/1660/572 1035/1661/572 -f 1034/1660/573 1036/1662/573 1037/1663/573 1038/1664/573 -f 1039/1665/574 1036/1662/574 1029/1666/574 1040/1667/574 -f 1033/1668/575 1035/1661/575 1039/1665/575 1040/1669/575 -f 1034/1660/576 1030/1655/576 1029/1654/576 1036/1662/576 -f 1041/1670/577 1038/1664/577 1037/1663/577 1042/1671/577 -f 1035/1661/572 1034/1660/572 1038/1664/572 1041/1670/572 -f 1036/1662/578 1039/1665/578 1042/1671/578 1037/1663/578 -f 1039/1665/579 1035/1661/579 1041/1670/579 1042/1671/579 -f 1043/1672/580 1032/1673/580 1031/1674/580 1044/1675/580 -f 1033/1668/581 1040/1669/581 1043/1676/581 1044/1677/581 -f 1030/1659/572 1033/1658/572 1044/1675/572 1031/1674/572 -f 1040/1667/582 1029/1666/582 1032/1678/582 1043/1679/582 -f 1045/1680/571 1046/1681/571 1047/1682/571 1048/1683/571 -f 1049/1684/574 1050/1685/574 1051/1686/574 1048/1687/574 -f 1051/1686/573 1052/1688/573 1053/1689/573 1054/1690/573 -f 1055/1691/572 1056/1692/572 1045/1693/572 1054/1690/572 -f 1049/1694/575 1056/1695/575 1055/1691/575 1050/1685/575 -f 1051/1686/576 1054/1690/576 1045/1680/576 1048/1683/576 -f 1057/1696/577 1058/1697/577 1053/1689/577 1052/1688/577 -f 1050/1685/574 1057/1696/574 1052/1688/574 1051/1686/574 -f 1054/1690/583 1053/1689/583 1058/1697/583 1055/1691/583 -f 1055/1691/579 1058/1697/579 1057/1696/579 1050/1685/579 -f 1059/1698/580 1060/1699/580 1047/1700/580 1046/1701/580 -f 1049/1694/581 1060/1702/581 1059/1703/581 1056/1695/581 -f 1048/1687/574 1047/1700/574 1060/1699/574 1049/1684/574 -f 1056/1692/584 1059/1704/584 1046/1705/584 1045/1693/584 +f 1029/1809/567 1030/1810/567 1031/1811/567 1032/1812/567 +f 1033/1813/568 1030/1814/568 1034/1815/568 1035/1816/568 +f 1034/1815/569 1036/1817/569 1037/1818/569 1038/1819/569 +f 1039/1820/570 1036/1817/570 1029/1821/570 1040/1822/570 +f 1033/1823/571 1035/1816/571 1039/1820/571 1040/1824/571 +f 1034/1815/572 1030/1810/572 1029/1809/572 1036/1817/572 +f 1041/1825/573 1038/1819/573 1037/1818/573 1042/1826/573 +f 1035/1816/568 1034/1815/568 1038/1819/568 1041/1825/568 +f 1036/1817/574 1039/1820/574 1042/1826/574 1037/1818/574 +f 1039/1820/575 1035/1816/575 1041/1825/575 1042/1826/575 +f 1043/1827/576 1032/1828/576 1031/1829/576 1044/1830/576 +f 1033/1823/577 1040/1824/577 1043/1831/577 1044/1832/577 +f 1030/1814/568 1033/1813/568 1044/1830/568 1031/1829/568 +f 1040/1822/578 1029/1821/578 1032/1833/578 1043/1834/578 +f 1045/1835/567 1046/1836/567 1047/1837/567 1048/1838/567 +f 1049/1839/570 1050/1840/570 1051/1841/570 1048/1842/570 +f 1051/1841/569 1052/1843/569 1053/1844/569 1054/1845/569 +f 1055/1846/568 1056/1847/568 1045/1848/568 1054/1845/568 +f 1049/1849/571 1056/1850/571 1055/1846/571 1050/1840/571 +f 1051/1841/572 1054/1845/572 1045/1835/572 1048/1838/572 +f 1057/1851/573 1058/1852/573 1053/1844/573 1052/1843/573 +f 1050/1840/570 1057/1851/570 1052/1843/570 1051/1841/570 +f 1054/1845/579 1053/1844/579 1058/1852/579 1055/1846/579 +f 1055/1846/575 1058/1852/575 1057/1851/575 1050/1840/575 +f 1059/1853/576 1060/1854/576 1047/1855/576 1046/1856/576 +f 1049/1849/577 1060/1857/577 1059/1858/577 1056/1850/577 +f 1048/1842/570 1047/1855/570 1060/1854/570 1049/1839/570 +f 1056/1847/580 1059/1859/580 1046/1860/580 1045/1848/580 o Rail_Cube v -1.606489 0.994589 0.070837 v -1.606489 1.084445 0.070837 @@ -4572,1029 +4723,1097 @@ vn -0.0000 0.4280 -0.9038 vn 0.7944 -0.6074 0.0000 vn -0.7944 -0.6074 0.0000 s 1 -f 1061/1706/585 1062/1707/585 1063/1708/585 1064/1709/585 -f 1064/1709/586 1063/1708/586 1065/1710/586 1066/1711/586 1067/1712/586 1068/1713/586 -f 1069/1714/587 1070/1715/587 1071/1716/587 1072/1717/587 -f 1073/1718/588 1074/1719/588 1075/1720/588 1076/1721/588 1077/1722/588 1078/1723/588 -f 1079/1724/589 1080/1725/589 1081/1726/589 1082/1727/589 -f 1083/1728/589 1084/1729/589 1085/1730/589 1086/1731/589 -f 1087/1732/589 1088/1733/589 1073/1718/589 1078/1734/589 -f 1061/1735/589 1064/1736/589 1068/1737/589 1089/1738/589 -f 1090/1739/590 1091/1740/590 1092/1741/590 1093/1742/590 -f 1069/1714/591 1094/1743/591 1095/1744/591 1070/1715/591 -f 1096/1745/592 1097/1746/592 1088/1733/592 1098/1747/592 1090/1739/592 -f 1074/1719/593 1073/1718/593 1094/1743/593 1069/1714/593 1093/1742/593 -f 1073/1718/594 1088/1733/594 1097/1746/594 1094/1743/594 -f 1093/1742/595 1069/1714/595 1072/1717/595 1099/1748/595 -f 1094/1743/589 1097/1746/589 1100/1749/589 1095/1744/589 -f 1101/1750/596 1096/1745/596 1102/1751/596 1103/1752/596 -f 1097/1746/597 1096/1745/597 1101/1750/597 1100/1749/597 -f 1104/1753/598 1105/1754/598 1106/1755/598 1107/1756/598 -f 1100/1749/599 1101/1750/599 1105/1754/599 1104/1753/599 -f 1070/1715/600 1095/1744/600 1107/1756/600 1106/1755/600 -f 1095/1744/601 1100/1749/601 1104/1753/601 1107/1756/601 -f 1108/1757/602 1099/1748/602 1072/1717/602 1102/1751/602 -f 1103/1752/603 1071/1716/603 1109/1758/603 1110/1759/603 -f 1102/1751/590 1072/1717/590 1071/1716/590 1103/1752/590 -f 1070/1715/604 1106/1755/604 1109/1758/604 1071/1716/604 -f 1106/1755/605 1105/1754/605 1110/1759/605 1109/1758/605 -f 1090/1739/606 1093/1742/606 1099/1748/606 1108/1757/606 -f 1096/1745/607 1090/1739/607 1108/1757/607 1102/1751/607 -f 1105/1754/608 1101/1750/608 1103/1752/608 1110/1759/608 -f 1062/1760/609 1111/1761/609 1112/1762/609 1113/1763/609 1114/1764/609 1115/1765/609 1075/1720/609 1074/1719/609 1093/1742/609 1092/1766/609 -f 1063/1708/610 1062/1707/610 1092/1767/610 1091/1768/610 -f 1098/1747/611 1116/1769/611 1117/1770/611 1118/1771/611 1119/1772/611 1120/1773/611 1065/1710/611 1063/1708/611 1091/1768/611 1090/1739/611 -f 1066/1774/589 1121/1775/589 1122/1776/589 1123/1777/589 -f 1082/1778/585 1124/1779/585 1125/1780/585 1079/1781/585 -f 1068/1782/598 1067/1783/598 1126/1784/598 1089/1785/598 -f 1067/1786/612 1066/1774/612 1123/1777/612 1126/1787/612 -f 1122/1776/613 1121/1775/613 1125/1780/613 1124/1779/613 -f 1127/1788/589 1128/1789/589 1129/1790/589 1130/1791/589 -f 1086/1792/585 1131/1793/585 1132/1794/585 1083/1795/585 -f 1080/1796/598 1133/1797/598 1134/1798/598 1081/1799/598 -f 1133/1800/612 1127/1788/612 1130/1791/612 1134/1801/612 -f 1132/1794/613 1131/1793/613 1129/1790/613 1128/1789/613 -f 1135/1802/589 1136/1803/589 1076/1804/589 1137/1805/589 -f 1077/1806/585 1138/1807/585 1087/1808/585 1078/1809/585 -f 1084/1810/598 1139/1811/598 1140/1812/598 1085/1813/598 -f 1140/1814/612 1139/1815/612 1135/1802/612 1137/1805/612 -f 1076/1804/613 1136/1803/613 1138/1807/613 1077/1806/613 -f 1129/1816/588 1114/1764/588 1113/1763/588 1130/1817/588 -f 1137/1818/588 1115/1765/588 1114/1764/588 1129/1816/588 1131/1819/588 1086/1820/588 1085/1821/588 1140/1822/588 -f 1076/1721/588 1075/1720/588 1115/1765/588 1137/1818/588 -f 1130/1817/588 1113/1763/588 1112/1762/588 1122/1823/588 1124/1824/588 1082/1825/588 1081/1826/588 1134/1827/588 -f 1122/1823/588 1112/1762/588 1111/1761/588 1123/1828/588 -f 1123/1828/588 1111/1761/588 1062/1760/588 1061/1829/588 1089/1830/588 1126/1831/588 -f 1136/1832/586 1116/1769/586 1098/1747/586 1088/1733/586 1087/1833/586 1138/1834/586 -f 1135/1835/586 1117/1770/586 1116/1769/586 1136/1832/586 -f 1128/1836/586 1118/1771/586 1117/1770/586 1135/1835/586 1139/1837/586 1084/1838/586 1083/1839/586 1132/1840/586 -f 1127/1841/586 1119/1772/586 1118/1771/586 1128/1836/586 -f 1121/1842/586 1120/1773/586 1119/1772/586 1127/1841/586 1133/1843/586 1080/1844/586 1079/1845/586 1125/1846/586 -f 1066/1711/586 1065/1710/586 1120/1773/586 1121/1842/586 +f 1061/1861/581 1062/1862/581 1063/1863/581 1064/1864/581 +f 1064/1864/582 1063/1863/582 1065/1865/582 1066/1866/582 1067/1867/582 1068/1868/582 +f 1069/1869/583 1070/1870/583 1071/1871/583 1072/1872/583 +f 1073/1873/584 1074/1874/584 1075/1875/584 1076/1876/584 1077/1877/584 1078/1878/584 +f 1079/1879/585 1080/1880/585 1081/1881/585 1082/1882/585 +f 1083/1883/585 1084/1884/585 1085/1885/585 1086/1886/585 +f 1087/1887/585 1088/1888/585 1073/1873/585 1078/1889/585 +f 1061/1890/585 1064/1891/585 1068/1892/585 1089/1893/585 +f 1090/1894/586 1091/1895/586 1092/1896/586 1093/1897/586 +f 1069/1869/587 1094/1898/587 1095/1899/587 1070/1870/587 +f 1096/1900/588 1097/1901/588 1088/1888/588 1098/1902/588 1090/1894/588 +f 1074/1874/589 1073/1873/589 1094/1898/589 1069/1869/589 1093/1897/589 +f 1073/1873/590 1088/1888/590 1097/1901/590 1094/1898/590 +f 1093/1897/591 1069/1869/591 1072/1872/591 1099/1903/591 +f 1094/1898/585 1097/1901/585 1100/1904/585 1095/1899/585 +f 1101/1905/592 1096/1900/592 1102/1906/592 1103/1907/592 +f 1097/1901/593 1096/1900/593 1101/1905/593 1100/1904/593 +f 1104/1908/594 1105/1909/594 1106/1910/594 1107/1911/594 +f 1100/1904/595 1101/1905/595 1105/1909/595 1104/1908/595 +f 1070/1870/596 1095/1899/596 1107/1911/596 1106/1910/596 +f 1095/1899/597 1100/1904/597 1104/1908/597 1107/1911/597 +f 1108/1912/598 1099/1903/598 1072/1872/598 1102/1906/598 +f 1103/1907/599 1071/1871/599 1109/1913/599 1110/1914/599 +f 1102/1906/586 1072/1872/586 1071/1871/586 1103/1907/586 +f 1070/1870/600 1106/1910/600 1109/1913/600 1071/1871/600 +f 1106/1910/601 1105/1909/601 1110/1914/601 1109/1913/601 +f 1090/1894/602 1093/1897/602 1099/1903/602 1108/1912/602 +f 1096/1900/603 1090/1894/603 1108/1912/603 1102/1906/603 +f 1105/1909/604 1101/1905/604 1103/1907/604 1110/1914/604 +f 1062/1915/605 1111/1916/605 1112/1917/605 1113/1918/605 1114/1919/605 1115/1920/605 1075/1875/605 1074/1874/605 1093/1897/605 1092/1921/605 +f 1063/1863/606 1062/1862/606 1092/1922/606 1091/1923/606 +f 1098/1902/607 1116/1924/607 1117/1925/607 1118/1926/607 1119/1927/607 1120/1928/607 1065/1865/607 1063/1863/607 1091/1923/607 1090/1894/607 +f 1066/1929/585 1121/1930/585 1122/1931/585 1123/1932/585 +f 1082/1933/581 1124/1934/581 1125/1935/581 1079/1936/581 +f 1068/1937/594 1067/1938/594 1126/1939/594 1089/1940/594 +f 1067/1941/608 1066/1929/608 1123/1932/608 1126/1942/608 +f 1122/1931/609 1121/1930/609 1125/1935/609 1124/1934/609 +f 1127/1943/585 1128/1944/585 1129/1945/585 1130/1946/585 +f 1086/1947/581 1131/1948/581 1132/1949/581 1083/1950/581 +f 1080/1951/594 1133/1952/594 1134/1953/594 1081/1954/594 +f 1133/1955/608 1127/1943/608 1130/1946/608 1134/1956/608 +f 1132/1949/609 1131/1948/609 1129/1945/609 1128/1944/609 +f 1135/1957/585 1136/1958/585 1076/1959/585 1137/1960/585 +f 1077/1961/581 1138/1962/581 1087/1963/581 1078/1964/581 +f 1084/1965/594 1139/1966/594 1140/1967/594 1085/1968/594 +f 1140/1969/608 1139/1970/608 1135/1957/608 1137/1960/608 +f 1076/1959/609 1136/1958/609 1138/1962/609 1077/1961/609 +f 1129/1971/584 1114/1919/584 1113/1918/584 1130/1972/584 +f 1137/1973/584 1115/1920/584 1114/1919/584 1129/1971/584 1131/1974/584 1086/1975/584 1085/1976/584 1140/1977/584 +f 1076/1876/584 1075/1875/584 1115/1920/584 1137/1973/584 +f 1130/1972/584 1113/1918/584 1112/1917/584 1122/1978/584 1124/1979/584 1082/1980/584 1081/1981/584 1134/1982/584 +f 1122/1978/584 1112/1917/584 1111/1916/584 1123/1983/584 +f 1123/1983/584 1111/1916/584 1062/1915/584 1061/1984/584 1089/1985/584 1126/1986/584 +f 1136/1987/582 1116/1924/582 1098/1902/582 1088/1888/582 1087/1988/582 1138/1989/582 +f 1135/1990/582 1117/1925/582 1116/1924/582 1136/1987/582 +f 1128/1991/582 1118/1926/582 1117/1925/582 1135/1990/582 1139/1992/582 1084/1993/582 1083/1994/582 1132/1995/582 +f 1127/1996/582 1119/1927/582 1118/1926/582 1128/1991/582 +f 1121/1997/582 1120/1928/582 1119/1927/582 1127/1996/582 1133/1998/582 1080/1999/582 1079/2000/582 1125/2001/582 +f 1066/1866/582 1065/1865/582 1120/1928/582 1121/1997/582 o CanonBody_Cylinder.002 -v 1.103664 0.525584 -0.500000 -v 1.292985 0.525584 -0.500000 -v 1.292985 0.172030 -0.353553 -v 1.103664 0.172030 -0.353553 -v 1.103664 0.525584 0.500000 -v 1.292985 0.525584 0.500000 -v 1.292985 0.879137 0.353553 -v 1.103664 0.879137 0.353553 -v 1.292985 1.025584 0.000000 -v 1.103664 1.025584 0.000000 -v 1.503651 1.012795 0.000000 -v 1.503651 0.870094 -0.344510 -v 1.509822 0.895986 -0.370402 -v 1.509822 1.049411 0.000000 -v 1.080568 0.851567 0.325983 -v 1.080568 0.525584 0.461010 -v 1.292985 0.879137 -0.353553 -v 1.286814 0.905708 -0.380125 -v 1.286814 0.525584 -0.537577 -v 1.286814 0.525584 0.537577 -v 1.286814 0.905708 0.380125 -v 1.503651 0.038372 0.000000 -v 1.503651 0.181073 0.344510 -v 1.509822 0.155181 0.370402 -v 1.509822 0.001756 0.000000 -v 1.503651 0.870094 0.344510 -v 1.509822 0.895986 0.370402 -v 1.503651 0.525584 0.487211 -v 1.669294 0.525584 0.401911 -v 1.669294 0.809777 0.284194 -v 1.503651 0.181073 -0.344510 -v 1.503651 0.525584 -0.487211 -v 1.669294 0.525584 -0.401911 -v 1.669294 0.241390 -0.284194 -v 1.669294 0.809777 -0.284194 -v 1.669294 0.927494 0.000000 -v 1.669294 0.241390 0.284194 -v -0.603601 0.525584 -0.500000 -v 1.044523 0.525584 -0.500000 -v 1.044523 0.172030 -0.353553 -v -0.603601 0.172030 -0.353553 -v -0.603601 0.025584 0.000000 -v 1.044523 0.025584 0.000000 -v 1.044523 0.172030 0.353553 -v -0.603601 0.172030 0.353553 -v 0.951045 0.197436 0.364077 -v -0.460212 0.197436 0.364077 -v 1.044523 0.879137 0.353553 -v 0.899442 0.953734 0.173461 -v 0.899442 0.879137 0.353553 -v 1.044523 0.525584 0.500000 -v 1.068921 0.199748 0.325836 -v 1.068921 0.525584 0.460801 -v 1.044523 0.879137 -0.353553 -v 0.899442 0.735289 -0.413137 -v 0.899442 0.879137 -0.353553 -v 1.068921 0.986385 0.000000 -v 1.068921 0.851420 -0.325836 -v 1.044523 0.998052 -0.066468 -v 1.044523 1.025584 0.000000 -v 0.985768 0.843292 0.316901 -v 0.899442 0.843292 0.316901 -v 0.899442 0.918248 0.161081 -v 0.968182 0.918248 0.161081 -v 1.068921 0.525584 -0.460801 -v 1.044523 0.655732 -0.446091 -v 1.068921 0.199748 -0.325836 -v 1.068921 0.851420 0.325836 -v 1.044523 0.998052 0.066468 -v 1.080568 0.851567 -0.325983 -v 1.080568 0.525584 -0.461010 -v 1.080568 0.199600 -0.325983 -v 1.080568 0.064574 0.000000 -v 1.080568 0.199600 0.325983 -v 1.080568 0.986594 0.000000 -v 1.103664 0.172030 0.353553 -v 1.068921 0.064782 0.000000 -v -0.603601 0.997972 -0.066659 -v -0.603601 1.025584 0.000000 -v 0.810528 0.997935 -0.101577 -v -0.388078 0.997935 -0.101577 -v 0.810528 0.952228 0.101577 -v 0.969099 0.952228 0.101577 -v 0.988155 0.719760 0.368080 -v 0.899442 0.719760 0.368080 -v 0.810528 0.997935 0.101577 -v -0.603601 0.997968 0.066670 -v -0.388078 0.997935 0.101577 -v 0.810528 0.655494 -0.446189 -v 1.286814 1.063161 0.000000 -v 1.320923 0.951339 0.425755 -v 1.320923 1.127692 0.000000 -v 1.286814 0.145459 -0.380125 -v 1.320923 0.525584 -0.602109 -v 1.320923 0.099829 -0.425755 -v 1.509822 0.525584 -0.523828 -v 1.475712 0.525584 -0.586708 -v 1.475712 0.940449 -0.414865 -v 1.286814 -0.011994 -0.000000 -v 1.320923 -0.076525 -0.000000 -v 1.509822 0.525584 0.523828 -v 1.475712 0.940449 0.414865 -v 1.475712 0.525584 0.586708 -v 1.509822 0.155181 -0.370402 -v 1.320923 0.525584 0.602109 -v 1.320923 0.951339 -0.425755 -v 1.475712 0.110718 -0.414866 -v 1.475712 1.112292 0.000000 -v 1.475712 0.110718 0.414866 -v 1.669294 0.271118 -0.254466 -v 1.669294 0.525584 -0.359869 -v 1.423236 0.525584 -0.300328 -v 1.423236 0.313220 -0.212364 -v 1.669294 0.780049 -0.254466 -v 1.669294 0.885452 0.000000 -v 1.669294 0.525584 0.359869 -v 1.669294 0.780049 0.254466 -v 1.669294 0.271118 0.254466 -v 1.423236 0.737947 -0.212364 -v 1.423236 0.825911 0.000000 -v 1.657500 0.838523 0.000000 -v 1.657500 0.746865 -0.221281 -v 1.423236 0.525584 0.300328 -v 1.423236 0.737947 0.212364 -v 1.657500 0.746865 0.221281 -v 1.657500 0.525584 0.312939 -v 1.657500 0.525584 0.252281 -v 1.657500 0.703973 0.178389 -v 1.657500 0.525584 -0.312939 -v 1.657500 0.304302 -0.221282 -v 1.423236 0.313220 0.212364 -v 1.657500 0.304302 0.221282 -v 1.657500 0.703973 -0.178389 -v 1.657500 0.525584 -0.252281 -v 1.657500 0.347194 -0.178389 -v 1.657500 0.347194 0.178389 -v 1.432520 0.525584 -0.169385 -v 1.432520 0.645357 -0.119773 -v 1.651829 0.645357 -0.119773 -v 1.651829 0.525584 -0.169385 -v 1.657500 0.777864 0.000000 -v 1.432520 0.645357 0.119773 -v 1.432520 0.694968 0.000000 -v 1.432520 0.405810 -0.119773 -v 1.432520 0.405810 0.119773 -v 1.432520 0.525584 0.169385 -v 1.657500 0.273303 0.000000 -v 1.432520 0.356199 0.000000 -v 1.651829 0.431184 0.000000 -v 1.651829 0.356199 0.000000 -v 1.651829 0.405810 -0.119773 -v 1.651829 0.525394 -0.094211 -v 1.651829 0.458777 -0.066617 -v 1.651829 0.405810 0.119773 -v 1.651829 0.525584 0.169385 -v 1.651829 0.645357 0.119773 -v 1.127542 0.525394 -0.094211 -v 1.127542 0.458777 -0.066617 -v 1.127542 0.431184 0.000000 -v 1.127542 0.525394 0.094211 -v 1.127542 0.592011 0.066617 -v 1.651829 0.592011 0.066617 -v 1.651829 0.525394 0.094211 -v 1.651829 0.619605 0.000000 -v 1.127542 0.619605 0.000000 -v 1.127542 0.592011 -0.066617 -v 1.651829 0.592011 -0.066617 -v 1.127542 0.458777 0.066617 -v -0.476991 0.837264 -0.291860 -v -0.476991 0.714942 -0.357372 -v -0.476991 0.735289 -0.413137 -v -0.476991 0.879137 -0.353553 -v -0.476991 0.879137 0.353553 -v -0.476991 0.953734 0.173461 -v -0.603601 0.879137 0.353553 -v 0.899442 0.735289 0.413137 -v -0.603601 0.879137 -0.353553 -v -0.724548 0.869896 -0.337068 -v 1.044523 0.655732 0.446091 -v -0.476991 0.953734 -0.173461 -v -0.476991 0.735289 0.413137 -v -0.388078 0.655494 0.446189 -v -0.603601 0.655322 0.446261 -v -0.388078 0.655494 -0.446189 -v -0.603601 0.658327 -0.445016 -v 0.810528 0.655494 0.446189 -v -0.603601 0.525584 0.500000 -v 1.651829 0.458777 0.066617 -v -0.388078 0.633076 0.392654 -v -0.476991 0.714942 0.357372 -v -0.476991 0.837264 0.291860 -v -0.388078 0.944133 0.101577 -v -0.388078 0.944133 -0.101577 -v 0.810528 0.952228 -0.101577 -v 1.657500 0.212644 0.000000 -v 1.651829 0.694968 0.000000 -v -0.476991 0.926475 0.173461 -v 0.899442 0.843292 -0.316901 -v 0.899442 0.918248 -0.161081 -v 0.899442 0.953734 -0.173461 -v 0.899442 0.719760 -0.368080 -v 0.810528 0.655494 -0.378684 -v 0.810528 0.655494 0.378684 -v -0.388078 0.633076 -0.392654 -v 1.669294 0.123673 0.000000 -v 1.669294 0.165715 0.000000 -v 0.985768 0.843292 -0.316901 -v 0.968182 0.918248 -0.161081 -v 0.969099 0.952228 -0.101577 -v 0.988155 0.719760 -0.368080 -v 1.475712 -0.061125 -0.000000 -v 1.423236 0.225256 0.000000 -v 0.984259 0.655494 -0.391440 -v 0.984259 0.528318 -0.436781 -v 0.984259 0.228435 -0.325032 -v 0.984259 0.095638 0.005025 -v 0.984259 0.228435 0.325032 -v 0.984259 0.528318 0.436781 -v 0.984259 0.655494 0.391440 -v 1.103664 0.025584 0.000000 -v -0.534084 0.903408 0.173461 -v -0.534084 0.903408 -0.173461 -v -0.476991 0.926475 -0.173461 -v -0.548068 0.837264 0.291860 -v -0.551352 0.714942 0.357372 -v -0.550334 0.633076 0.392654 -v -0.548068 0.837264 -0.291860 -v -0.551352 0.714942 -0.357372 -v -0.550334 0.633076 -0.392654 -v 1.292985 0.025584 0.000000 -v -0.550334 0.529772 0.433593 -v -0.550334 0.236472 0.339820 -v -0.550334 0.062663 0.005342 -v -0.550334 0.236472 -0.339820 -v -0.550334 0.529772 -0.433593 -v -0.388078 0.540720 0.422003 -v -0.388078 0.540720 -0.422003 -v 0.810528 0.526819 -0.419828 -v 0.810528 0.526819 0.419828 -v -0.388078 0.088709 0.007100 -v -0.388078 0.229035 -0.323350 -v -0.388078 0.229035 0.323350 -v 0.810528 0.240010 -0.300109 -v 0.810528 0.100279 0.006216 -v 0.810528 0.240010 0.300109 -v -0.460212 0.500178 0.489476 -v -0.460212 0.155552 0.465195 -v -0.460212 0.458293 0.590595 -v 0.641563 0.500178 0.489476 -v 0.674042 0.500178 0.489476 -v 0.951045 0.500178 0.489476 -v 0.951045 0.458293 0.590595 -v 0.674638 0.458293 0.590595 -v 0.676644 0.321964 0.818654 -v 0.948697 0.323297 0.818799 -v 0.951045 0.155552 0.465195 -v 0.678557 0.155552 0.465195 -v 0.649846 0.155552 0.465195 -v -0.059018 0.088623 0.724480 -v -0.004002 0.088898 0.724510 -v -0.004015 0.318594 0.818287 -v -0.060217 0.318313 0.818256 -v 0.645678 0.092117 0.724860 -v 0.346592 0.090651 0.724701 -v 0.275455 0.090295 0.724662 -v 0.190590 0.089871 0.724616 -v 0.128016 0.089558 0.724582 -v 0.053442 0.089185 0.724541 -v 0.949896 0.093608 0.725023 -v 0.051715 0.318872 0.818317 -v 0.044163 0.311789 0.796066 -v 0.045414 0.108104 0.712906 -v 0.127999 0.319254 0.818359 -v 0.188876 0.319558 0.818392 -v 0.137105 0.309206 0.794886 -v 0.180025 0.309468 0.794915 -v 0.273733 0.319982 0.818438 -v 0.346589 0.320346 0.818478 -v 0.285150 0.311362 0.795548 -v 0.335438 0.311680 0.795582 -v 0.643209 0.321800 0.818636 -v 0.137117 0.111516 0.714176 -v 0.181234 0.111785 0.714205 -v 0.286340 0.110829 0.713675 -v 0.335441 0.111139 0.713708 -v 0.003776 0.311542 0.796039 -v 0.003785 0.107850 0.712878 -v 0.671568 0.425284 0.596467 -v 0.673140 0.318430 0.775219 -v 0.641987 0.458293 0.590595 -v 0.648869 0.138277 0.701704 -v 0.646934 0.318302 0.775205 -v 0.678212 0.092276 0.724878 -v 0.674369 0.138402 0.701718 -v 0.645976 0.425284 0.596467 -v 0.645644 0.458113 0.517211 -v 0.671101 0.458113 0.517211 -v 0.652136 0.187997 0.498180 -v 0.674639 0.187997 0.498180 -v 1.292985 0.172030 0.353553 -v 1.103664 0.879137 -0.353553 -v -0.460212 0.197436 -0.364077 -v 0.951045 0.197436 -0.364077 -v 1.286814 0.145459 0.380125 -v 1.320923 0.099829 0.425755 -v -0.460212 0.500178 -0.489476 -v -0.460212 0.458293 -0.590595 -v -0.460212 0.155552 -0.465195 -v 0.951045 0.500178 -0.489476 -v 0.674042 0.500178 -0.489476 -v 0.641563 0.500178 -0.489476 -v 0.951045 0.458293 -0.590595 -v 0.948697 0.323297 -0.818799 -v 0.676644 0.321964 -0.818654 -v 0.674638 0.458293 -0.590595 -v 0.951045 0.155552 -0.465195 -v 0.649846 0.155552 -0.465195 -v 0.678557 0.155552 -0.465195 -v -0.059018 0.088623 -0.724480 -v -0.060217 0.318313 -0.818256 -v -0.004015 0.318594 -0.818287 -v -0.004002 0.088898 -0.724510 -v 0.053442 0.089185 -0.724541 -v 0.128016 0.089558 -0.724582 -v 0.190590 0.089871 -0.724616 -v 0.275455 0.090295 -0.724662 -v 0.346592 0.090651 -0.724701 -v 0.645678 0.092117 -0.724860 -v 0.949896 0.093608 -0.725023 -v 0.045414 0.108104 -0.712906 -v 0.044163 0.311789 -0.796066 -v 0.051715 0.318872 -0.818317 -v 0.127999 0.319254 -0.818359 -v 0.188876 0.319558 -0.818392 -v 0.180025 0.309468 -0.794915 -v 0.137105 0.309206 -0.794886 -v 0.273733 0.319982 -0.818438 -v 0.346589 0.320346 -0.818478 -v 0.335438 0.311680 -0.795582 -v 0.285150 0.311362 -0.795548 -v 0.643209 0.321800 -0.818636 -v 0.181234 0.111785 -0.714205 -v 0.137117 0.111516 -0.714176 -v 0.335441 0.111139 -0.713708 -v 0.286340 0.110829 -0.713675 -v 0.003776 0.311542 -0.796039 -v 0.003785 0.107850 -0.712878 -v 0.673140 0.318430 -0.775219 -v 0.671568 0.425284 -0.596467 -v 0.641987 0.458293 -0.590595 -v 0.646934 0.318302 -0.775205 -v 0.648869 0.138277 -0.701704 -v 0.678212 0.092276 -0.724878 -v 0.674369 0.138402 -0.701718 -v 0.645644 0.458113 -0.517211 -v 0.645976 0.425284 -0.596467 -v 0.671101 0.458113 -0.517211 -v 0.674639 0.187997 -0.498180 -v 0.652136 0.187997 -0.498180 -v -0.724548 0.532825 -0.476687 -v -0.724548 0.195753 -0.337068 -v -0.724548 0.056134 0.000004 -v -0.724548 0.195753 0.337075 -v -0.724548 0.532825 0.476694 -v -0.724548 0.869896 0.337075 -v -0.724548 1.009515 0.000004 -vt 1.000000 0.500000 -vt 1.000000 1.000000 -vt 0.875000 1.000000 -vt 0.875000 0.500000 -vt 0.500000 0.500000 -vt 0.500000 1.000000 -vt 0.375000 1.000000 -vt 0.375000 0.500000 -vt 0.250000 1.000000 -vt 0.250000 0.500000 -vt 0.250000 1.000000 -vt 0.125000 1.000000 -vt 0.125000 1.000000 -vt 0.250000 1.000000 -vt 0.375000 0.500000 -vt 0.500000 0.500000 -vt 0.000000 1.000000 -vt 0.125000 1.000000 -vt 0.125000 1.000000 -vt 0.000000 1.000000 -vt 0.500000 1.000000 -vt 0.375000 1.000000 -vt 0.750000 1.000000 -vt 0.625000 1.000000 -vt 0.625000 1.000000 -vt 0.750000 1.000000 -vt 0.375000 1.000000 -vt 0.375000 1.000000 -vt 0.500000 1.000000 -vt 0.500000 1.000000 -vt 0.375000 1.000000 -vt 0.875000 1.000000 -vt 1.000000 1.000000 -vt 1.000000 1.000000 -vt 0.875000 1.000000 -vt 0.000000 1.000000 -vt 0.125000 1.000000 -vt 0.000000 1.000000 -vt 0.250000 1.000000 -vt 0.625000 1.000000 -vt 1.000000 0.500000 -vt 1.000000 1.000000 -vt 0.875000 1.000000 -vt 0.875000 0.500000 -vt 0.750000 0.500000 -vt 0.750000 1.000000 -vt 0.625000 1.000000 -vt 0.625000 0.500000 -vt 0.625000 1.000000 -vt 0.625000 0.500000 -vt 0.311328 0.973144 -vt 0.273600 0.943506 -vt 0.273532 1.000000 -vt 0.375000 1.000000 -vt 0.375000 0.973144 -vt 0.500000 1.000000 -vt 0.625000 1.000000 -vt 0.500000 1.000000 -vt 0.074142 0.973144 -vt 0.045930 0.943506 -vt 0.045816 1.000000 -vt 0.125000 1.000000 -vt 0.125000 0.973144 -vt 0.250000 1.000000 -vt 0.125000 1.000000 -vt 0.125000 1.000000 -vt 0.226500 1.000000 -vt 0.250000 1.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 1.000000 -vt 0.000000 1.000000 -vt 0.045816 1.000000 -vt 1.000000 1.000000 -vt 0.875000 1.000000 -vt 0.375000 1.000000 -vt 0.273532 1.000000 -vt 0.375000 1.000000 -vt 0.580294 0.419706 -vt 0.750000 0.490000 -vt 0.919706 0.419706 -vt 0.990000 0.250000 -vt 0.919706 0.080294 -vt 0.750000 0.010000 -vt 0.580294 0.080294 -vt 0.510000 0.250000 -vt 0.625000 0.500000 -vt 0.625000 0.500000 -vt 0.419706 0.419706 -vt 0.250000 0.490000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.226429 0.500000 -vt 0.250000 0.500000 -vt 0.226400 0.943506 -vt 0.226400 0.560020 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.273568 0.500000 -vt 0.273600 0.560020 -vt 0.273600 0.943506 -vt 0.250000 1.000000 -vt 0.375000 1.000000 -vt 0.250000 1.000000 -vt 0.875000 1.000000 -vt 1.000000 1.000000 -vt 1.000000 1.000000 -vt 0.875000 1.000000 -vt 0.000000 1.000000 -vt 0.000000 1.000000 -vt 0.125000 1.000000 -vt 0.750000 1.000000 -vt 0.750000 1.000000 -vt 0.500000 1.000000 -vt 0.375000 1.000000 -vt 0.500000 1.000000 -vt 0.875000 1.000000 -vt 1.000000 1.000000 -vt 0.500000 1.000000 -vt 0.000000 1.000000 -vt 0.125000 1.000000 -vt 1.000000 1.000000 -vt 0.875000 1.000000 -vt 0.250000 1.000000 -vt 0.625000 1.000000 -vt 0.875000 1.000000 -vt 1.000000 1.000000 -vt 1.000000 1.000000 -vt 0.875000 1.000000 -vt 0.125000 1.000000 -vt 0.000000 1.000000 -vt 0.250000 1.000000 -vt 0.500000 1.000000 -vt 0.375000 1.000000 -vt 0.625000 1.000000 -vt 0.125000 1.000000 -vt 0.250000 1.000000 -vt 0.250000 1.000000 -vt 0.125000 1.000000 -vt 0.500000 1.000000 -vt 0.375000 1.000000 -vt 0.000000 1.000000 -vt 0.375000 1.000000 -vt 0.500000 1.000000 -vt 0.500000 1.000000 -vt 0.375000 1.000000 -vt 0.000000 1.000000 -vt 1.000000 1.000000 -vt 0.875000 1.000000 -vt 0.625000 1.000000 -vt 0.625000 1.000000 -vt 0.125000 1.000000 -vt 0.000000 1.000000 -vt 1.000000 1.000000 -vt 0.875000 1.000000 -vt 0.625000 1.000000 -vt 0.000000 1.000000 -vt 0.125000 1.000000 -vt 0.125000 1.000000 -vt 0.000000 1.000000 -vt 0.250000 1.000000 -vt 0.375000 1.000000 -vt 0.250000 1.000000 -vt 1.000000 1.000000 -vt 0.875000 1.000000 -vt 0.625000 1.000000 -vt 0.500000 1.000000 -vt 0.750000 1.000000 -vt 0.750000 1.000000 -vt 1.000000 1.000000 -vt 0.875000 1.000000 -vt 0.625000 1.000000 -vt 0.500000 1.000000 -vt 0.375000 1.000000 -vt 1.000000 0.728416 -vt 1.000000 0.500000 -vt 0.875000 0.500000 -vt 0.875000 0.728416 -vt 0.750000 0.500000 -vt 0.750000 0.728416 -vt 0.500000 0.500000 -vt 0.375000 0.500000 -vt 0.375000 0.728416 -vt 0.500000 0.728416 -vt 0.250000 0.728416 -vt 0.250000 0.500000 -vt 0.125000 0.500000 -vt 0.125000 0.728416 -vt 0.000000 0.500000 -vt 0.000000 0.728416 -vt 0.990000 0.250000 -vt 0.919706 0.419706 -vt 0.750000 0.490000 -vt 0.580294 0.419706 -vt 0.510000 0.250000 -vt 0.580294 0.080294 -vt 0.750000 0.010000 -vt 0.919706 0.080294 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.074142 0.530382 -vt 0.125000 0.530382 -vt 0.454131 0.500000 -vt 0.125000 0.500000 -vt 0.425858 0.530382 -vt 0.454070 0.560020 -vt 0.311328 0.973144 -vt 0.375000 0.973144 -vt 0.125000 0.500000 -vt 0.125000 0.500000 -vt 0.000000 0.500000 -vt 0.000000 0.500000 -vt 0.046932 0.500000 -vt 0.125000 1.000000 -vt 0.000000 1.000000 -vt 0.000000 1.000000 -vt 0.273568 0.500000 -vt 0.375000 0.500000 -vt 0.375000 0.500000 -vt 0.250000 0.500000 -vt 0.454070 0.943506 -vt 0.453986 1.000000 -vt 0.500000 1.000000 -vt 0.500000 0.500000 -vt 0.045930 0.560020 -vt 0.344657 0.155611 -vt 0.383755 0.250000 -vt 0.490000 0.250000 -vt 0.419706 0.080294 -vt 1.000000 0.728416 -vt 0.875000 0.728416 -vt 0.875000 0.500000 -vt 1.000000 0.500000 -vt 0.074142 0.530382 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.125000 0.530382 -vt 0.226400 0.560020 -vt 0.000000 0.000000 -vt 0.226400 0.943506 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.750000 1.000000 -vt 0.875000 1.000000 -vt 0.875000 1.000000 -vt 0.125000 1.000000 -vt 0.125000 1.000000 -vt 0.250000 1.000000 -vt 0.188672 0.530382 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.074142 0.973144 -vt 0.000000 0.000000 -vt 0.750000 1.000000 -vt 0.045930 0.943506 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.045930 0.560020 -vt 0.000000 0.000000 -vt 0.750000 1.000000 -vt 0.750000 1.000000 -vt 0.875000 1.000000 -vt 0.875000 1.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.625000 1.000000 -vt 0.625000 1.000000 -vt 0.750000 1.000000 -vt 0.625000 1.000000 -vt 0.625000 1.000000 -vt 0.750000 1.000000 -vt 0.375000 1.000000 -vt 0.375000 1.000000 -vt 0.500000 1.000000 -vt 0.500000 1.000000 -vt 0.875000 1.000000 -vt 0.875000 1.000000 -vt 0.000000 0.000000 -vt 0.625000 1.000000 -vt 0.625000 1.000000 -vt 0.625000 1.000000 -vt 0.750000 0.490000 -vt 0.250000 0.490000 -vt 0.419706 0.419706 -vt 0.919706 0.419706 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.875000 1.000000 -vt 1.000000 1.000000 -vt 1.000000 1.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.875000 0.500000 -vt 0.875000 0.500000 -vt 0.750000 0.500000 -vt 0.750000 0.500000 -vt 0.125000 1.000000 -vt 0.125000 1.000000 -vt 0.250000 0.500000 -vt 0.125000 0.500000 -vt 0.125000 0.500000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.750000 1.000000 -vt 0.125000 1.000000 -vt 0.125000 1.000000 -vt 0.625000 1.000000 -vt 0.625000 1.000000 -vt 0.750000 1.000000 -vt 0.344657 0.155611 -vt 0.419706 0.080294 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.750000 0.490000 -vt 0.919706 0.419706 -vt 0.919706 0.419706 -vt 0.750000 0.490000 -vt 0.000000 0.500000 -vt 0.000000 0.890352 -vt 0.000000 0.901860 -vt 0.000000 1.000000 -vt 0.500000 1.000000 -vt 0.750000 0.490000 -vt 0.919706 0.419706 -vt 0.000000 1.000000 -vt 0.000000 0.902071 -vt 0.000000 0.866263 -vt 0.000000 1.000000 -vt 0.625000 1.000000 -vt 0.625000 0.903459 -vt 0.625000 0.893287 -vt 0.625000 0.500000 -vt 0.625000 0.500000 -vt 0.625000 0.527590 -vt 0.500000 0.528185 -vt 0.500000 0.500000 -vt 0.625000 0.850445 -vt 0.625000 0.703414 -vt 0.625000 0.667738 -vt 0.625000 0.625178 -vt 0.625000 0.593798 -vt 0.625000 0.556398 -vt 0.919706 0.419706 -vt 0.750000 0.490000 -vt 0.500000 0.556134 -vt 0.500000 0.556134 -vt 0.625000 0.556398 -vt 0.500000 0.594391 -vt 0.000000 0.624920 -vt 0.000000 0.594391 -vt 0.000000 0.594391 -vt 0.000000 0.624920 -vt 0.500000 0.624920 -vt 0.500000 0.667476 -vt 0.000000 0.704013 -vt 0.000000 0.667476 -vt 0.000000 0.667476 -vt 0.000000 0.704013 -vt 0.500000 0.704013 -vt 0.500000 0.849827 -vt 0.500000 0.594391 -vt 0.625000 0.593798 -vt 0.625000 0.625178 -vt 0.500000 0.624920 -vt 0.500000 0.667476 -vt 0.625000 0.667738 -vt 0.625000 0.703414 -vt 0.500000 0.704013 -vt 0.500000 0.528185 -vt 0.625000 0.527590 -vt 0.000000 0.556134 -vt 0.000000 0.528185 -vt 0.000000 0.528185 -vt 0.000000 0.556134 -vt 0.000000 0.902071 -vt 0.000000 0.866263 -vt 0.000000 0.849827 -vt 0.000000 0.890503 -vt 0.000000 0.500000 -vt 0.000000 0.500000 -vt 0.625000 0.850445 -vt 0.500000 0.849827 -vt 0.625000 0.866439 -vt 0.500000 0.866263 -vt 0.500000 0.866263 -vt 0.625000 0.866439 -vt 0.625000 1.000000 -vt 0.500000 1.000000 -vt 0.000000 0.890503 -vt 0.000000 0.890352 -vt 0.000000 0.849827 -vt 0.000000 0.901860 -vt 0.625000 0.893287 -vt 0.625000 0.903459 -vt 1.000000 0.500000 -vt 0.875000 1.000000 -vt 1.000000 1.000000 -vt 0.500000 0.500000 -vt 0.375000 0.500000 -vt 0.375000 1.000000 -vt 0.500000 1.000000 -vt 0.500000 0.500000 -vt 0.375000 0.500000 -vt 1.000000 0.500000 -vt 0.875000 0.500000 -vt 0.875000 1.000000 -vt 1.000000 1.000000 -vt 0.625000 0.500000 -vt 0.625000 0.500000 -vt 0.625000 1.000000 -vt 0.625000 1.000000 -vt 0.625000 1.000000 -vt 0.500000 1.000000 -vt 0.500000 1.000000 -vt 0.500000 1.000000 -vt 0.625000 0.500000 -vt 0.625000 0.500000 -vt 0.875000 1.000000 -vt 0.875000 1.000000 -vt 1.000000 1.000000 -vt 1.000000 1.000000 -vt 0.875000 1.000000 -vt 1.000000 1.000000 -vt 0.125000 1.000000 -vt 0.125000 1.000000 -vt 0.125000 1.000000 -vt 0.125000 0.728416 -vt 0.125000 0.500000 -vt 0.188672 0.530382 -vt 0.625000 1.000000 -vt 0.875000 0.500000 -vt 0.125000 0.500000 -vt 0.125000 0.500000 -vt 0.750000 0.490000 -vt 0.750000 0.490000 -vt 0.919706 0.419706 -vt 0.919706 0.419706 -vt 0.000000 1.000000 -vt 0.000000 0.901860 -vt 0.000000 0.890352 -vt 0.000000 0.500000 -vt 0.000000 0.500000 -vt 0.750000 0.490000 -vt 0.919706 0.419706 -vt 0.000000 1.000000 -vt 0.000000 1.000000 -vt 0.000000 0.866263 -vt 0.000000 0.902071 -vt 0.500000 1.000000 -vt 0.625000 0.500000 -vt 0.625000 0.893287 -vt 0.625000 0.903459 -vt 0.625000 0.500000 -vt 0.500000 0.500000 -vt 0.500000 0.528185 -vt 0.625000 0.527590 -vt 0.625000 0.556398 -vt 0.625000 0.593798 -vt 0.625000 0.625178 -vt 0.625000 0.667738 -vt 0.625000 0.703414 -vt 0.625000 0.850445 -vt 0.750000 0.490000 -vt 0.919706 0.419706 -vt 0.625000 0.556398 -vt 0.500000 0.556134 -vt 0.500000 0.556134 -vt 0.500000 0.594391 -vt 0.000000 0.624920 -vt 0.000000 0.624920 -vt 0.000000 0.594391 -vt 0.000000 0.594391 -vt 0.500000 0.624920 -vt 0.500000 0.667476 -vt 0.000000 0.704013 -vt 0.000000 0.704013 -vt 0.000000 0.667476 -vt 0.000000 0.667476 -vt 0.500000 0.704013 -vt 0.500000 0.849827 -vt 0.500000 0.594391 -vt 0.500000 0.624920 -vt 0.625000 0.625178 -vt 0.625000 0.593798 -vt 0.500000 0.667476 -vt 0.500000 0.704013 -vt 0.625000 0.703414 -vt 0.625000 0.667738 -vt 0.500000 0.528185 -vt 0.625000 0.527590 -vt 0.000000 0.556134 -vt 0.000000 0.556134 -vt 0.000000 0.528185 -vt 0.000000 0.528185 -vt 0.000000 0.866263 -vt 0.000000 0.902071 -vt 0.000000 0.849827 -vt 0.000000 0.500000 -vt 0.000000 0.500000 -vt 0.000000 0.890503 -vt 0.500000 0.849827 -vt 0.625000 0.850445 -vt 0.625000 0.866439 -vt 0.625000 0.866439 -vt 0.500000 0.866263 -vt 0.500000 0.866263 -vt 0.000000 0.890352 -vt 0.000000 0.890503 -vt 0.000000 0.849827 -vt 0.000000 0.901860 -vt 0.625000 0.903459 -vt 0.625000 0.893287 -vt 0.580294 0.080294 -vt 0.750000 0.010000 -vt 0.919706 0.080294 -vt 0.990000 0.250000 -vt 0.919706 0.419706 -vt 0.750000 0.490000 -vt 0.580294 0.419706 -vt 0.510000 0.250000 -vt 0.750000 0.500000 -vt 0.625000 0.500000 -vt 0.226429 0.500000 -vt 0.273600 0.560020 -vt 0.311328 0.530382 -vt 0.375000 0.530382 -vt 0.625000 0.500000 -vt 0.875000 0.500000 -vt 1.000000 0.500000 -vt 0.500000 0.500000 -vt 0.125000 0.500000 -vt 0.125000 0.973144 -vt 0.116782 0.250000 -vt 0.010000 0.250000 -vt 0.080294 0.080294 -vt 0.155879 0.155611 -vt 0.155879 0.155611 -vt 0.080294 0.080294 -vt 0.250268 0.116514 -vt 0.250000 0.010000 -vt 0.250268 0.116514 -vt 0.250000 0.010000 -vt 0.250000 0.490000 -vt 0.250268 0.383486 -vt 0.155879 0.344389 -vt 0.080294 0.419706 +v 1.103664 0.525584 2.500000 +v 1.292985 0.525584 2.500000 +v 1.292985 0.172030 2.646447 +v 1.103664 0.172030 2.646447 +v 1.103664 0.525584 3.500000 +v 1.292985 0.525584 3.500000 +v 1.292985 0.879137 3.353553 +v 1.103664 0.879137 3.353553 +v 1.292985 1.025584 3.000000 +v 1.103664 1.025584 3.000000 +v 1.503651 1.012795 3.000000 +v 1.503651 0.870094 2.655490 +v 1.509822 0.895986 2.629598 +v 1.509822 1.049411 3.000000 +v 1.080568 0.851567 3.325983 +v 1.080568 0.525584 3.461010 +v 1.292985 0.879137 2.646447 +v 1.286814 0.905708 2.619875 +v 1.286814 0.525584 2.462423 +v 1.286814 0.525584 3.537577 +v 1.286814 0.905708 3.380125 +v 1.503651 0.038372 3.000000 +v 1.503651 0.181073 3.344510 +v 1.509822 0.155181 3.370402 +v 1.509822 0.001756 3.000000 +v 1.503651 0.870094 3.344510 +v 1.509822 0.895986 3.370402 +v 1.503651 0.525584 3.487211 +v 1.669294 0.525584 3.401911 +v 1.669294 0.809777 3.284194 +v 1.503651 0.181073 2.655490 +v 1.503651 0.525584 2.512789 +v 1.669294 0.525584 2.598089 +v 1.669294 0.241390 2.715806 +v 1.669294 0.809777 2.715806 +v 1.669294 0.927494 3.000000 +v 1.669294 0.241390 3.284194 +v -0.603601 0.525584 2.500000 +v 1.044523 0.525584 2.500000 +v 1.044523 0.172030 2.646447 +v -0.603601 0.172030 2.646447 +v -0.603601 0.025584 3.000000 +v 1.044523 0.025584 3.000000 +v 1.044523 0.172030 3.353553 +v -0.603601 0.172030 3.353553 +v 0.951045 0.197436 3.364077 +v -0.460212 0.197436 3.364077 +v 1.044523 0.879137 3.353553 +v 0.899442 0.953734 3.173461 +v 0.899442 0.879137 3.353553 +v 1.044523 0.525584 3.500000 +v 1.068921 0.199748 3.325836 +v 1.068921 0.525584 3.460801 +v 1.044523 0.879137 2.646447 +v 0.899442 0.735289 2.586863 +v 0.899442 0.879137 2.646447 +v 1.068921 0.986385 3.000000 +v 1.068921 0.851420 2.674164 +v 1.044523 1.025584 3.000000 +v 0.985768 0.843292 3.316901 +v 0.899442 0.843292 3.316901 +v 0.899442 0.918248 3.161081 +v 1.068921 0.525584 2.539199 +v 1.068921 0.199748 2.674164 +v 1.068921 0.851420 3.325836 +v 1.080568 0.851567 2.674017 +v 1.080568 0.525584 2.538990 +v 1.080568 0.199600 2.674017 +v 1.080568 0.064574 3.000000 +v 1.080568 0.199600 3.325983 +v 1.080568 0.986594 3.000000 +v 1.103664 0.172030 3.353553 +v 1.068921 0.064782 3.000000 +v -0.603601 1.025584 3.000000 +v 0.810528 0.997935 2.898423 +v -0.388078 0.997935 2.898423 +v 0.810528 0.952228 3.101577 +v 0.969099 0.952228 3.101577 +v 0.899442 0.719760 3.368080 +v 0.810528 0.997935 3.101577 +v -0.388078 0.997935 3.101577 +v 0.810528 0.655494 2.553811 +v 1.286814 1.063161 3.000000 +v 1.320923 0.951339 3.425755 +v 1.320923 1.127692 3.000000 +v 1.286814 0.145459 2.619875 +v 1.320923 0.525584 2.397891 +v 1.320923 0.099829 2.574245 +v 1.509822 0.525584 2.476172 +v 1.475712 0.525584 2.413292 +v 1.475712 0.940449 2.585135 +v 1.286814 -0.011994 3.000000 +v 1.320923 -0.076525 3.000000 +v 1.509822 0.525584 3.523828 +v 1.475712 0.940449 3.414865 +v 1.475712 0.525584 3.586708 +v 1.509822 0.155181 2.629598 +v 1.320923 0.525584 3.602109 +v 1.320923 0.951339 2.574245 +v 1.475712 0.110718 2.585134 +v 1.475712 1.112292 3.000000 +v 1.475712 0.110718 3.414866 +v 1.669294 0.271118 2.745534 +v 1.669294 0.525584 2.640131 +v 1.423236 0.525584 2.699672 +v 1.423236 0.313220 2.787636 +v 1.669294 0.780049 2.745534 +v 1.669294 0.885452 3.000000 +v 1.669294 0.525584 3.359869 +v 1.669294 0.780049 3.254466 +v 1.669294 0.271118 3.254466 +v 1.423236 0.737947 2.787636 +v 1.423236 0.825911 3.000000 +v 1.657500 0.838523 3.000000 +v 1.657500 0.746865 2.778719 +v 1.423236 0.525584 3.300328 +v 1.423236 0.737947 3.212364 +v 1.657500 0.746865 3.221281 +v 1.657500 0.525584 3.312939 +v 1.657500 0.525584 3.252281 +v 1.657500 0.703973 3.178389 +v 1.657500 0.525584 2.687061 +v 1.657500 0.304302 2.778718 +v 1.423236 0.313220 3.212364 +v 1.657500 0.304302 3.221282 +v 1.657500 0.703973 2.821611 +v 1.657500 0.525584 2.747719 +v 1.657500 0.347194 2.821611 +v 1.657500 0.347194 3.178389 +v 1.432520 0.525584 2.830615 +v 1.432520 0.645357 2.880227 +v 1.651829 0.645357 2.880227 +v 1.651829 0.525584 2.830615 +v 1.657500 0.777864 3.000000 +v 1.432520 0.645357 3.119773 +v 1.432520 0.694968 3.000000 +v 1.432520 0.405810 2.880227 +v 1.432520 0.405810 3.119773 +v 1.432520 0.525584 3.169385 +v 1.657500 0.273303 3.000000 +v 1.432520 0.356199 3.000000 +v 1.651829 0.431184 3.000000 +v 1.651829 0.356199 3.000000 +v 1.651829 0.405810 2.880227 +v 1.651829 0.525394 2.905789 +v 1.651829 0.458777 2.933383 +v 1.651829 0.405810 3.119773 +v 1.651829 0.525584 3.169385 +v 1.651829 0.645357 3.119773 +v 1.127542 0.525394 2.905789 +v 1.127542 0.458777 2.933383 +v 1.127542 0.431184 3.000000 +v 1.127542 0.525394 3.094211 +v 1.127542 0.592011 3.066617 +v 1.651829 0.592011 3.066617 +v 1.651829 0.525394 3.094211 +v 1.651829 0.619605 3.000000 +v 1.127542 0.619605 3.000000 +v 1.127542 0.592011 2.933383 +v 1.651829 0.592011 2.933383 +v 1.127542 0.458777 3.066617 +v -0.476991 0.837264 2.708140 +v -0.476991 0.714942 2.642628 +v -0.476991 0.735289 2.586863 +v -0.476991 0.879137 2.646447 +v -0.476991 0.879137 3.353553 +v -0.476991 0.953734 3.173461 +v -0.603601 0.879137 3.353553 +v 0.899442 0.735289 3.413137 +v -0.603601 0.879137 2.646447 +v -0.724548 0.869896 2.662932 +v -0.476991 0.953734 2.826539 +v -0.476991 0.735289 3.413137 +v -0.388078 0.655494 3.446189 +v -0.388078 0.655494 2.553811 +v 0.810528 0.655494 3.446189 +v -0.603601 0.525584 3.500000 +v 1.651829 0.458777 3.066617 +v -0.388078 0.633076 3.392654 +v -0.476991 0.714942 3.357372 +v -0.476991 0.837264 3.291860 +v -0.388078 0.944133 3.101577 +v -0.388078 0.944133 2.898423 +v 0.810528 0.952228 2.898423 +v 1.657500 0.212644 3.000000 +v 1.651829 0.694968 3.000000 +v -0.476991 0.926475 3.173461 +v 0.899442 0.843292 2.683099 +v 0.899442 0.918248 2.838919 +v 0.899442 0.953734 2.826539 +v 0.899442 0.719760 2.631920 +v 0.810528 0.655494 2.621316 +v 0.810528 0.655494 3.378684 +v -0.388078 0.633076 2.607346 +v 1.669294 0.123673 3.000000 +v 1.669294 0.165715 3.000000 +v 0.985768 0.843292 2.683099 +v 0.969099 0.952228 2.898423 +v 1.475712 -0.061125 3.000000 +v 1.423236 0.225256 3.000000 +v 0.984259 0.528318 2.563219 +v 0.984259 0.228435 2.674968 +v 0.984259 0.095638 3.005025 +v 0.984259 0.228435 3.325032 +v 0.984259 0.528318 3.436781 +v 1.103664 0.025584 3.000000 +v -0.534084 0.903408 3.173461 +v -0.534084 0.903408 2.826539 +v -0.476991 0.926475 2.826539 +v -0.548068 0.837264 3.291860 +v -0.548068 0.837264 2.708140 +v 1.292985 0.025584 3.000000 +v -0.550334 0.529772 3.433593 +v -0.550334 0.236472 3.339820 +v -0.550334 0.062663 3.005342 +v -0.550334 0.236472 2.660180 +v -0.550334 0.529772 2.566407 +v -0.388078 0.540720 3.422003 +v -0.388078 0.540720 2.577997 +v 0.810528 0.526819 2.580172 +v 0.810528 0.526819 3.419828 +v -0.388078 0.088709 3.007100 +v -0.388078 0.229035 2.676650 +v -0.388078 0.229035 3.323350 +v 0.810528 0.240010 2.699891 +v 0.810528 0.100279 3.006216 +v 0.810528 0.240010 3.300109 +v -0.460212 0.500178 3.489476 +v 0.678212 0.092276 2.275122 +v 0.648869 0.138277 2.298296 +v 0.951045 0.500178 3.489476 +v 0.646934 0.318302 2.224795 +v 0.641987 0.458293 2.409405 +v 0.671568 0.425284 2.403533 +v 0.673140 0.318430 2.224781 +v 0.003785 0.107850 2.287122 +v 0.003776 0.311542 2.203961 +v 0.286340 0.110829 2.286325 +v 0.335441 0.111139 2.286292 +v 0.137117 0.111516 2.285824 +v 0.181234 0.111785 2.285795 +v 0.643209 0.321800 2.181364 +v 0.285150 0.311362 2.204452 +v 0.335438 0.311680 2.204418 +v 0.346589 0.320346 2.181522 +v 0.273733 0.319982 2.181562 +v 0.137105 0.309206 2.205114 +v 0.180025 0.309468 2.205085 +v 0.188876 0.319558 2.181608 +v 0.127999 0.319254 2.181641 +v 0.051715 0.318872 2.181683 +v 0.044163 0.311789 2.203934 +v 0.045414 0.108104 2.287094 +v 0.949896 0.093608 2.274977 +v 0.645678 0.092117 2.275140 +v 0.346592 0.090651 2.275299 +v 0.275455 0.090295 2.275338 +v 0.190590 0.089871 2.275384 +v 0.128016 0.089558 2.275418 +v 0.053442 0.089185 2.275459 +v -0.004002 0.088898 2.275490 +v -0.004015 0.318594 2.181713 +v -0.060217 0.318313 2.181744 +v -0.059018 0.088623 2.275520 +v 0.678557 0.155552 2.534805 +v 0.649846 0.155552 2.534805 +v 0.951045 0.155552 2.534805 +v 0.674638 0.458293 2.409405 +v 0.676644 0.321964 2.181346 +v 0.948697 0.323297 2.181201 +v 0.951045 0.458293 2.409405 +v 0.641563 0.500178 2.510524 +v 0.674042 0.500178 2.510524 +v 0.951045 0.500178 2.510524 +v -0.460212 0.155552 2.534805 +v -0.460212 0.458293 2.409405 +v -0.460212 0.500178 2.510524 +v 0.951045 0.197436 2.635923 +v -0.460212 0.197436 2.635923 +v 1.292985 0.172030 3.353553 +v 1.103664 0.879137 2.646447 +v -0.460212 0.197436 2.635923 +v 0.951045 0.197436 2.635923 +v 1.286814 0.145459 3.380125 +v 1.320923 0.099829 3.425755 +v -0.460212 0.500178 2.510524 +v 0.951045 0.500178 2.510524 +v -0.724548 0.532825 2.523313 +v -0.724548 0.195753 2.662932 +v -0.724548 0.056134 3.000004 +v -0.724548 0.195753 3.337075 +v -0.724548 0.532825 3.476694 +v -0.724548 0.869896 3.337075 +v -0.724548 1.009515 3.000004 +v 0.951045 0.197436 3.364077 +v -0.460212 0.197436 3.364077 +v -0.460212 0.500178 3.489476 +v -0.460212 0.155552 3.465195 +v -0.460212 0.458293 3.590595 +v 0.641563 0.500178 3.489476 +v 0.674042 0.500178 3.489476 +v 0.951045 0.500178 3.489476 +v 0.951045 0.458293 3.590595 +v 0.674638 0.458293 3.590595 +v 0.676644 0.321964 3.818654 +v 0.948697 0.323297 3.818799 +v 0.951045 0.155552 3.465195 +v 0.678557 0.155552 3.465195 +v 0.649846 0.155552 3.465195 +v -0.059018 0.088623 3.724480 +v -0.004002 0.088898 3.724510 +v -0.004015 0.318594 3.818287 +v -0.060217 0.318313 3.818256 +v 0.645678 0.092117 3.724860 +v 0.346592 0.090651 3.724701 +v 0.275455 0.090295 3.724662 +v 0.190590 0.089871 3.724616 +v 0.128016 0.089558 3.724582 +v 0.053442 0.089185 3.724541 +v 0.949896 0.093608 3.725023 +v 0.051715 0.318872 3.818317 +v 0.044163 0.311789 3.796066 +v 0.045414 0.108104 3.712906 +v 0.127999 0.319254 3.818359 +v 0.188876 0.319558 3.818392 +v 0.137105 0.309206 3.794886 +v 0.180025 0.309468 3.794915 +v 0.273733 0.319982 3.818438 +v 0.346589 0.320346 3.818478 +v 0.285150 0.311362 3.795548 +v 0.335438 0.311680 3.795582 +v 0.643209 0.321800 3.818636 +v 0.137117 0.111516 3.714176 +v 0.181234 0.111785 3.714205 +v 0.286340 0.110829 3.713675 +v 0.335441 0.111139 3.713708 +v 0.003776 0.311542 3.796039 +v 0.003785 0.107850 3.712878 +v 0.671568 0.425284 3.596467 +v 0.673140 0.318430 3.775219 +v 0.641987 0.458293 3.590595 +v 0.648869 0.138277 3.701704 +v 0.646934 0.318302 3.775205 +v 0.678212 0.092276 3.724878 +v 0.674369 0.138402 3.701718 +v 0.645976 0.425284 3.596467 +v 0.645644 0.458113 3.517211 +v 0.671101 0.458113 3.517211 +v 0.652136 0.187997 3.498180 +v 0.674639 0.187997 3.498180 +v 0.674369 0.138402 2.298282 +v 0.645644 0.458113 2.482789 +v 0.645976 0.425284 2.403533 +v 0.671101 0.458113 2.482789 +v 0.674639 0.187997 2.501820 +v 0.652136 0.187997 2.501820 +vt 0.444444 0.967260 +vt 0.444444 0.999701 +vt 0.378868 0.999701 +vt 0.378868 0.967260 +vt 0.706744 0.967259 +vt 0.706744 0.999701 +vt 0.641169 0.999701 +vt 0.641169 0.967260 +vt 0.575594 0.999701 +vt 0.575594 0.967260 +vt 0.250824 0.305563 +vt 0.248404 0.241712 +vt 0.254201 0.239089 +vt 0.256804 0.307740 +vt 0.643725 0.959927 +vt 0.704187 0.959927 +vt 0.301657 0.158688 +vt 0.309096 0.223840 +vt 0.303372 0.226973 +vt 0.295374 0.156925 +vt 0.309096 0.399006 +vt 0.301657 0.464157 +vt 0.295374 0.465920 +vt 0.303372 0.395872 +vt 0.207069 0.603722 +vt 0.223821 0.542059 +vt 0.230137 0.541287 +vt 0.212125 0.607583 +vt 0.248403 0.381134 +vt 0.250824 0.317282 +vt 0.256804 0.315106 +vt 0.254201 0.383756 +vt 0.247516 0.392819 +vt 0.240267 0.456304 +vt 0.209672 0.447180 +vt 0.215652 0.394810 +vt 0.226462 0.092204 +vt 0.238498 0.154958 +vt 0.206574 0.155385 +vt 0.196646 0.103618 +vt 0.240267 0.166542 +vt 0.247516 0.230027 +vt 0.215652 0.228035 +vt 0.209672 0.175665 +vt 0.217205 0.374353 +vt 0.219202 0.321681 +vt 0.238498 0.467888 +vt 0.226462 0.530642 +vt 0.196646 0.519228 +vt 0.206574 0.467461 +vt 0.313293 0.285661 +vt 0.315256 0.001710 +vt 0.381187 0.002166 +vt 0.379225 0.286117 +vt 0.385814 0.018304 +vt 0.384134 0.261443 +vt 0.541993 0.266641 +vt 0.555933 0.251561 +vt 0.573731 0.287890 +vt 0.706744 0.950449 +vt 0.772319 0.950449 +vt 0.769748 0.957931 +vt 0.709314 0.957931 +vt 0.675439 0.043014 +vt 0.700338 0.002620 +vt 0.702300 0.286572 +vt 0.678306 0.250613 +vt 0.573023 0.957932 +vt 0.512589 0.957931 +vt 0.510019 0.950449 +vt 0.575594 0.950449 +vt 0.579242 0.518640 +vt 0.567657 0.507006 +vt 0.582693 0.478078 +vt 0.507448 0.957932 +vt 0.447014 0.957931 +vt 0.444444 0.950449 +vt 0.378868 0.950449 +vt 0.441873 0.957932 +vt 0.381439 0.957932 +vt 0.638598 0.957931 +vt 0.578164 0.957931 +vt 0.641169 0.950449 +vt 0.772319 0.967259 +vt 0.709300 0.959927 +vt 0.769762 0.959927 +vt 0.441887 0.959927 +vt 0.381425 0.959928 +vt 0.447000 0.959927 +vt 0.507462 0.959927 +vt 0.643739 0.957931 +vt 0.704173 0.957931 +vt 0.315850 0.959928 +vt 0.315864 0.957932 +vt 0.376298 0.957932 +vt 0.376312 0.959928 +vt 0.662036 0.025151 +vt 0.553298 0.626937 +vt 0.568495 0.615996 +vt 0.583228 0.650081 +vt 0.568261 0.593570 +vt 0.582779 0.593348 +vt 0.637541 0.000299 +vt 0.638364 0.022418 +vt 0.306751 0.316097 +vt 0.304080 0.386550 +vt 0.292159 0.390332 +vt 0.295150 0.311423 +vt 0.280683 0.078442 +vt 0.293963 0.147683 +vt 0.283200 0.154056 +vt 0.268327 0.076503 +vt 0.253643 0.231744 +vt 0.245850 0.163488 +vt 0.256851 0.158081 +vt 0.265580 0.234531 +vt 0.260091 0.001297 +vt 0.278575 0.069334 +vt 0.247624 0.000299 +vt 0.245850 0.459358 +vt 0.253643 0.391101 +vt 0.265580 0.388314 +vt 0.256851 0.464764 +vt 0.231797 0.088736 +vt 0.244737 0.156206 +vt 0.312696 0.318788 +vt 0.310212 0.384316 +vt 0.244737 0.466639 +vt 0.231797 0.534110 +vt 0.287081 0.079724 +vt 0.299432 0.144125 +vt 0.283200 0.468789 +vt 0.292159 0.232513 +vt 0.242358 0.082512 +vt 0.268495 0.311423 +vt 0.242358 0.540334 +vt 0.190629 0.107579 +vt 0.199519 0.153931 +vt 0.156352 0.158234 +vt 0.148933 0.119551 +vt 0.208727 0.226051 +vt 0.203372 0.179159 +vt 0.217205 0.248492 +vt 0.219202 0.301165 +vt 0.212447 0.298662 +vt 0.210659 0.251499 +vt 0.203372 0.443686 +vt 0.208727 0.396794 +vt 0.190629 0.515267 +vt 0.199518 0.468915 +vt 0.167634 0.257037 +vt 0.169126 0.296397 +vt 0.128994 0.298746 +vt 0.127439 0.257734 +vt 0.160890 0.434906 +vt 0.165358 0.395772 +vt 0.212447 0.324183 +vt 0.210659 0.371346 +vt 0.167634 0.365808 +vt 0.169126 0.326448 +vt 0.165358 0.227073 +vt 0.160890 0.187940 +vt 0.125520 0.390391 +vt 0.120864 0.431168 +vt 0.111774 0.426126 +vt 0.115527 0.393253 +vt 0.127439 0.365112 +vt 0.128994 0.324099 +vt 0.125519 0.232455 +vt 0.120864 0.191677 +vt 0.117035 0.166617 +vt 0.109305 0.126309 +vt 0.156352 0.464612 +vt 0.148933 0.503295 +vt 0.109305 0.496537 +vt 0.117035 0.456229 +vt 0.115527 0.229592 +vt 0.111774 0.196719 +vt 0.106855 0.164519 +vt 0.100623 0.132025 +vt 0.100623 0.490821 +vt 0.106855 0.458327 +vt 0.071929 0.206740 +vt 0.074449 0.228811 +vt 0.037112 0.233074 +vt 0.034592 0.211003 +vt 0.119247 0.327710 +vt 0.117994 0.360773 +vt 0.077505 0.353798 +vt 0.078346 0.331599 +vt 0.065836 0.166851 +vt 0.061652 0.145034 +vt 0.061651 0.477812 +vt 0.065836 0.455995 +vt 0.093280 0.522558 +vt 0.084605 0.554487 +vt 0.046731 0.538565 +vt 0.052555 0.517127 +vt 0.071929 0.416106 +vt 0.074449 0.394034 +vt 0.028929 0.173930 +vt 0.024744 0.152113 +vt 0.024744 0.470733 +vt 0.028928 0.448916 +vt 0.034592 0.411843 +vt 0.037112 0.389771 +vt 0.673665 0.673462 +vt 0.583825 0.673463 +vt 0.583825 0.661107 +vt 0.673665 0.661107 +vt 0.583825 0.648751 +vt 0.673665 0.648751 +vt 0.583825 0.722886 +vt 0.583825 0.710530 +vt 0.673665 0.710530 +vt 0.673665 0.722885 +vt 0.673665 0.698174 +vt 0.583825 0.698174 +vt 0.583825 0.685818 +vt 0.673665 0.685818 +vt 0.674263 0.657488 +vt 0.683000 0.648751 +vt 0.695355 0.648751 +vt 0.704092 0.657488 +vt 0.704092 0.669844 +vt 0.695355 0.678581 +vt 0.682999 0.678581 +vt 0.674263 0.669844 +vt 0.003304 0.848715 +vt 0.026872 0.851863 +vt 0.026964 0.862035 +vt 0.000299 0.861133 +vt 0.591528 0.251561 +vt 0.573730 0.006258 +vt 0.592097 0.045324 +vt 0.447123 0.002620 +vt 0.509921 0.000299 +vt 0.509097 0.022418 +vt 0.485425 0.025151 +vt 0.509283 0.287766 +vt 0.508527 0.308267 +vt 0.447395 0.307129 +vt 0.445161 0.286572 +vt 0.638178 0.287766 +vt 0.636248 0.308292 +vt 0.574805 0.308410 +vt 0.664090 0.265938 +vt 0.605468 0.266641 +vt 0.637900 0.266577 +vt 0.003538 0.113914 +vt 0.000299 0.101991 +vt 0.010465 0.094133 +vt 0.016290 0.115571 +vt 0.673665 0.735241 +vt 0.583825 0.735241 +vt 0.026978 0.828506 +vt 0.048218 0.828557 +vt 0.048221 0.838503 +vt 0.026647 0.838672 +vt 0.003011 0.841266 +vt 0.000299 0.828780 +vt 0.051046 0.800371 +vt 0.050910 0.791153 +vt 0.256297 0.789503 +vt 0.256413 0.797334 +vt 0.552466 0.552854 +vt 0.344608 0.554207 +vt 0.343802 0.517193 +vt 0.552492 0.518459 +vt 0.092829 0.560843 +vt 0.103590 0.521237 +vt 0.039952 0.352375 +vt 0.040793 0.330176 +vt 0.031344 0.793088 +vt 0.031275 0.788417 +vt 0.307992 0.821098 +vt 0.302442 0.827908 +vt 0.274466 0.818149 +vt 0.275890 0.811868 +vt 0.512575 0.959927 +vt 0.573037 0.959927 +vt 0.300046 0.855841 +vt 0.274150 0.862262 +vt 0.272670 0.854230 +vt 0.294909 0.848715 +vt 0.304080 0.236296 +vt 0.306751 0.306748 +vt 0.046731 0.084281 +vt 0.052555 0.105719 +vt 0.253531 0.867360 +vt 0.253849 0.855797 +vt 0.256296 0.811837 +vt 0.256412 0.804005 +vt 0.274467 0.783191 +vt 0.275891 0.789471 +vt 0.302443 0.773432 +vt 0.307993 0.780242 +vt 0.272433 0.842081 +vt 0.274101 0.834087 +vt 0.299839 0.841114 +vt 0.294536 0.848117 +vt 0.253607 0.828505 +vt 0.253654 0.840073 +vt 0.048200 0.862482 +vt 0.048437 0.852539 +vt 0.178202 0.590083 +vt 0.172502 0.585678 +vt 0.184876 0.540132 +vt 0.192021 0.539216 +vt 0.553418 0.650133 +vt 0.568459 0.455510 +vt 0.553313 0.444607 +vt 0.583141 0.421546 +vt 0.222184 0.008257 +vt 0.184876 0.082714 +vt 0.142159 0.090273 +vt 0.131832 0.052263 +vt 0.172502 0.037168 +vt 0.010465 0.528712 +vt 0.016290 0.507275 +vt 0.553438 0.421486 +vt 0.579294 0.552649 +vt 0.207069 0.019124 +vt 0.212125 0.015262 +vt 0.230137 0.081559 +vt 0.223821 0.080787 +vt 0.192021 0.083630 +vt 0.178202 0.032763 +vt 0.835337 0.959927 +vt 0.774876 0.959927 +vt 0.774889 0.957931 +vt 0.835324 0.957931 +vt 0.119247 0.295135 +vt 0.117994 0.262072 +vt 0.073156 0.623144 +vt 0.124543 0.642293 +vt 0.147298 0.698850 +vt 0.124543 0.753685 +vt 0.073156 0.772834 +vt 0.019183 0.752292 +vt 0.000299 0.715395 +vt 0.000299 0.680584 +vt 0.019183 0.643686 +vt 0.837894 0.967259 +vt 0.131833 0.570583 +vt 0.142159 0.532572 +vt 0.578150 0.959927 +vt 0.638612 0.959927 +vt 0.316588 0.566360 +vt 0.316135 0.505151 +vt 0.327032 0.505997 +vt 0.327205 0.565445 +vt 0.325199 0.589422 +vt 0.313422 0.589890 +vt 0.325128 0.481936 +vt 0.313293 0.481323 +vt 0.328396 0.458075 +vt 0.318149 0.422764 +vt 0.344931 0.443095 +vt 0.317500 0.648537 +vt 0.328166 0.613272 +vt 0.313293 0.999701 +vt 0.313293 0.967260 +vt 0.266568 0.002090 +vt 0.283760 0.065372 +vt 0.222185 0.614589 +vt 0.103590 0.101609 +vt 0.092829 0.062002 +vt 0.093280 0.100288 +vt 0.084605 0.068358 +vt 0.313293 0.950449 +vt 0.310212 0.238529 +vt 0.312696 0.304057 +vt 0.003538 0.508931 +vt 0.000299 0.520855 +vt 0.280629 0.647431 +vt 0.292214 0.667720 +vt 0.292214 0.727167 +vt 0.280630 0.747455 +vt 0.227938 0.771742 +vt 0.177679 0.755673 +vt 0.147896 0.698358 +vt 0.177679 0.639213 +vt 0.227938 0.623144 +vt 0.344518 0.628436 +vt 0.344864 0.645367 +vt 0.567679 0.564328 +vt 0.345386 0.426160 +vt 0.321379 0.309007 +vt 0.348181 0.311072 +vt 0.346814 0.370598 +vt 0.319918 0.372352 +vt 0.319035 0.699253 +vt 0.346062 0.701099 +vt 0.578629 0.309007 +vt 0.582482 0.368090 +vt 0.552730 0.367902 +vt 0.550048 0.310686 +vt 0.578748 0.761487 +vt 0.550076 0.759426 +vt 0.552676 0.703908 +vt 0.582541 0.703747 +vt 0.347270 0.758738 +vt 0.558065 0.928960 +vt 0.550687 0.924347 +vt 0.550930 0.885091 +vt 0.558374 0.878875 +vt 0.442273 0.018695 +vt 0.440594 0.261833 +vt 0.719990 0.753760 +vt 0.711362 0.753164 +vt 0.711409 0.748802 +vt 0.720050 0.748194 +vt 0.558809 0.782594 +vt 0.553466 0.785950 +vt 0.553542 0.769874 +vt 0.558906 0.762085 +vt 0.523071 0.801651 +vt 0.527269 0.805192 +vt 0.527585 0.839077 +vt 0.523474 0.844882 +vt 0.583864 0.748194 +vt 0.591789 0.748650 +vt 0.591759 0.752506 +vt 0.583825 0.753114 +vt 0.523958 0.885237 +vt 0.530497 0.890536 +vt 0.531283 0.924612 +vt 0.524961 0.928713 +vt 0.627693 0.748375 +vt 0.627655 0.752744 +vt 0.696662 0.753087 +vt 0.696709 0.748702 +vt 0.660976 0.752977 +vt 0.661014 0.748487 +vt 0.522918 0.783847 +vt 0.527615 0.790596 +vt 0.527735 0.804551 +vt 0.609284 0.879288 +vt 0.609125 0.929342 +vt 0.558678 0.832385 +vt 0.609657 0.832799 +vt 0.551099 0.872461 +vt 0.551338 0.836023 +vt 0.529863 0.848009 +vt 0.530243 0.879639 +vt 0.343779 0.802494 +vt 0.343695 0.784690 +vt 0.475224 0.845209 +vt 0.463372 0.845290 +vt 0.449569 0.845385 +vt 0.439666 0.845452 +vt 0.427257 0.845537 +vt 0.418192 0.845599 +vt 0.409050 0.845661 +vt 0.553912 0.825721 +vt 0.554015 0.786696 +vt 0.748183 0.664506 +vt 0.743885 0.667670 +vt 0.709471 0.667342 +vt 0.704690 0.663671 +vt 0.748230 0.677708 +vt 0.743428 0.674541 +vt 0.708946 0.674384 +vt 0.704690 0.677993 +vt 0.674263 0.679178 +vt 0.678954 0.683000 +vt 0.678513 0.691305 +vt 0.674263 0.695158 +vt 0.713191 0.691406 +vt 0.717948 0.694885 +vt 0.717906 0.679285 +vt 0.713573 0.682833 +vt 0.674263 0.712333 +vt 0.679256 0.716024 +vt 0.678779 0.723450 +vt 0.674263 0.727142 +vt 0.712677 0.723401 +vt 0.717760 0.726648 +vt 0.717703 0.712821 +vt 0.713087 0.716118 +vt 0.475305 0.885568 +vt 0.463733 0.885647 +vt 0.449929 0.885741 +vt 0.439749 0.885811 +vt 0.427618 0.885894 +vt 0.331098 0.838796 +vt 0.409325 0.886018 +vt 0.331097 0.892100 +vt 0.344391 0.930068 +vt 0.418274 0.885957 +vt 0.568226 0.477860 +vt 0.610810 0.762612 +vt 0.610602 0.783121 +vt 0.313294 0.838795 +vt 0.313293 0.892100 +vt 0.772319 0.999701 +vt 0.510019 0.967260 +vt 0.510019 0.999701 +vt 0.834166 0.285661 +vt 0.768234 0.286116 +vt 0.766275 0.002164 +vt 0.832207 0.001709 +vt 0.763326 0.261444 +vt 0.761647 0.018304 +vt 0.280683 0.544403 +vt 0.268327 0.546342 +vt 0.293963 0.475162 +vt 0.260091 0.621549 +vt 0.247624 0.622547 +vt 0.278575 0.553512 +vt 0.287081 0.543122 +vt 0.299432 0.478720 +vt 0.078346 0.291246 +vt 0.077505 0.269047 +vt 0.673665 0.747597 +vt 0.583825 0.747597 +vt 0.000299 0.780763 +vt 0.010763 0.773432 +vt 0.031275 0.812923 +vt 0.010763 0.827908 +vt 0.000299 0.820577 +vt 0.031344 0.808252 +vt 0.051046 0.800969 +vt 0.050910 0.810187 +vt 0.040794 0.292669 +vt 0.039952 0.270471 +vt 0.837894 0.999701 +vt 0.266568 0.620755 +vt 0.283760 0.557474 +vt 0.837894 0.950449 +vt 0.320375 0.761358 +vt 0.705187 0.018693 +vt 0.706867 0.261833 +vt 0.658686 0.887344 +vt 0.658868 0.825939 +vt 0.679378 0.826000 +vt 0.679195 0.887405 +vt 0.690550 0.648153 +vt 0.628032 0.648153 +vt 0.583825 0.603947 +vt 0.583825 0.541429 +vt 0.628032 0.497222 +vt 0.690550 0.497222 +vt 0.734757 0.541428 +vt 0.734757 0.603946 +vt 0.832300 0.307073 +vt 0.769442 0.307507 +vt 0.606368 0.029512 +vt 0.378018 0.307507 +vt 0.315160 0.307073 +vt 0.572655 0.308410 +vt 0.511212 0.308292 +vt 0.765692 0.307390 +vt 0.702831 0.307825 +vt 0.444631 0.307825 +vt 0.381768 0.307391 +vt 0.700066 0.307129 +vt 0.638933 0.308268 +vt 0.028684 0.334662 +vt 0.028216 0.347009 +vt 0.028684 0.288183 +vt 0.028216 0.275836 +vt 0.024713 0.229498 +vt 0.023312 0.217222 +vt 0.016319 0.171298 +vt 0.013991 0.159164 +vt 0.016318 0.451548 +vt 0.013991 0.463682 +vt 0.023312 0.405623 +vt 0.024713 0.393347 +vt 0.929360 0.371663 +vt 0.949870 0.371663 +vt 0.949869 0.433068 +vt 0.929359 0.433068 +vt 0.541093 0.029512 +vt 0.555364 0.045324 +vt 0.472022 0.043014 +vt 0.469155 0.250613 +vt 0.483371 0.265938 +vt 0.509562 0.266577 +vt 0.583825 0.419180 +vt 0.583984 0.365876 +vt 0.601788 0.365929 +vt 0.601629 0.419233 +vt 0.880965 0.475742 +vt 0.829171 0.476114 +vt 0.829189 0.426323 +vt 0.880169 0.426061 +vt 0.881113 0.496251 +vt 0.829206 0.496624 +vt 0.615382 0.310197 +vt 0.879832 0.309007 +vt 0.879925 0.329517 +vt 0.828864 0.329746 +vt 0.795759 0.329895 +vt 0.615195 0.328000 +vt 0.679997 0.372243 +vt 0.688946 0.372331 +vt 0.688744 0.412689 +vt 0.679601 0.412599 +vt 0.794627 0.373366 +vt 0.745976 0.372890 +vt 0.734404 0.372777 +vt 0.720600 0.372642 +vt 0.710421 0.372542 +vt 0.698290 0.372423 +vt 0.704690 0.648751 +vt 0.748230 0.649035 +vt 0.743428 0.652203 +vt 0.708946 0.652359 +vt 0.697809 0.412778 +vt 0.710217 0.412900 +vt 0.717760 0.728233 +vt 0.717703 0.742060 +vt 0.713086 0.738763 +vt 0.712677 0.731480 +vt 0.720120 0.412997 +vt 0.733923 0.413133 +vt 0.717948 0.696029 +vt 0.717906 0.711629 +vt 0.713573 0.708081 +vt 0.713190 0.699508 +vt 0.745774 0.413249 +vt 0.794023 0.413720 +vt 0.679256 0.738857 +vt 0.678779 0.731431 +vt 0.674263 0.742548 +vt 0.674263 0.727739 +vt 0.678954 0.707914 +vt 0.678513 0.699609 +vt 0.674263 0.711736 +vt 0.674263 0.695756 +vt 0.743885 0.659074 +vt 0.709471 0.659401 +vt 0.704690 0.663073 +vt 0.748183 0.662238 +vt 0.824389 0.471998 +vt 0.824403 0.432972 +vt 0.793491 0.456950 +vt 0.614203 0.455572 +vt 0.793285 0.474753 +vt 0.614066 0.473375 +vt 0.800895 0.378983 +vt 0.800421 0.410612 +vt 0.829024 0.379832 +vt 0.821859 0.422664 +vt 0.821730 0.386224 +vt 0.879935 0.379571 +vt 0.798164 0.454064 +vt 0.798002 0.468018 +vt 0.660993 0.759351 +vt 0.627670 0.759305 +vt 0.627654 0.754935 +vt 0.660975 0.754860 +vt 0.696662 0.754919 +vt 0.696688 0.759304 +vt 0.711362 0.754912 +vt 0.711388 0.759274 +vt 0.591768 0.758859 +vt 0.591756 0.755003 +vt 0.802069 0.334014 +vt 0.801182 0.368087 +vt 0.583841 0.759277 +vt 0.583825 0.754357 +vt 0.798116 0.419538 +vt 0.797699 0.453421 +vt 0.823866 0.488818 +vt 0.823838 0.472743 +vt 0.719993 0.754357 +vt 0.720026 0.759923 +vt 0.821598 0.373594 +vt 0.821472 0.334337 +vt 0.608971 0.949851 +vt 0.344525 0.947871 vn 0.0000 -0.3827 -0.9239 vn 0.0000 0.3827 0.9239 vn 0.0000 0.9239 0.3827 @@ -5611,22 +5830,21 @@ vn 0.4296 0.8343 0.3456 vn 0.4296 -0.3456 0.8343 vn 0.0000 -0.9239 0.3827 vn 0.0000 -0.3827 0.9239 -vn 0.0161 0.9158 -0.4012 +vn -0.0913 0.8947 0.4372 vn 0.8293 -0.2138 0.5162 +vn 0.0000 0.3827 -0.9239 vn 0.8293 0.5162 -0.2138 -vn 0.0000 -0.9012 -0.4335 +vn 0.0464 -0.8899 0.4538 vn 0.8293 0.2138 -0.5162 vn 0.8293 -0.2138 -0.5162 vn 0.8293 0.5162 0.2138 -vn -1.0000 0.0000 0.0000 vn -0.8418 -0.2066 0.4987 -vn -0.0165 -0.3826 -0.9238 +vn -0.0166 -0.3826 -0.9238 vn -0.0165 0.3826 -0.9238 vn -0.0165 0.3826 0.9238 vn -0.0165 -0.9238 -0.3826 -vn -0.0000 0.9616 -0.2745 -vn 0.0000 -0.8684 -0.4959 -vn -0.0000 0.9616 0.2745 +vn 0.1008 -0.2962 -0.9498 +vn 0.0000 -0.3828 -0.9239 vn -0.8680 0.4588 0.1900 vn -0.8680 -0.1900 -0.4588 vn 0.8623 0.1938 -0.4678 @@ -5658,20 +5876,21 @@ vn -0.0497 0.3822 -0.9227 vn -0.0497 -0.3822 -0.9227 vn -0.0497 -0.3822 0.9227 vn -0.0497 0.3822 0.9227 -vn 0.0000 0.3827 -0.9239 vn 0.3223 -0.8746 -0.3623 vn 0.3223 0.3623 0.8746 vn 0.3223 0.3623 -0.8746 vn 0.3223 0.8746 -0.3623 vn 0.3223 -0.3623 -0.8746 -vn 0.0161 0.9158 0.4012 +vn 0.0000 0.9649 -0.2626 vn -0.1533 0.3782 0.9130 vn 0.8293 0.2138 0.5162 vn -0.1218 0.9170 -0.3798 +vn -0.0000 0.9239 -0.3827 vn 0.7023 0.6629 -0.2594 vn 0.0000 0.0000 1.0000 vn 0.0068 -1.0000 0.0000 vn 0.6287 0.0000 0.7776 +vn -1.0000 0.0000 0.0000 vn -0.0165 0.9238 -0.3826 vn -0.8680 0.4588 -0.1900 vn 0.0000 -0.9239 -0.3827 @@ -5681,33 +5900,34 @@ vn -0.6231 -0.1179 0.7732 vn -0.6414 0.7600 -0.1048 vn -0.0103 0.9832 -0.1821 vn -0.0103 0.9832 0.1821 -vn 0.0000 -0.9012 0.4335 -vn 0.0000 -0.8684 0.4959 +vn -0.0453 -0.3552 -0.9337 +vn 0.0951 -0.3032 -0.9482 +vn 0.1008 -0.2962 0.9498 vn 0.0915 -0.9200 -0.3811 vn 0.2182 0.9016 0.3735 vn 0.3223 -0.3623 0.8746 -vn 0.0465 -0.2865 0.9570 +vn 0.0951 -0.3032 0.9482 vn 0.0000 -1.0000 0.0000 vn 0.9838 0.1658 0.0687 vn 0.4296 -0.8343 -0.3456 -vn -0.0166 -0.3826 0.9238 +vn -0.0165 -0.3826 0.9238 vn -0.0165 -0.9238 0.3826 vn 0.8623 -0.4678 -0.1938 vn 0.2182 0.3735 -0.9016 vn 0.7023 0.6629 0.2594 -vn -0.9999 -0.0123 -0.0000 +vn -0.9999 -0.0105 0.0000 vn 0.0915 0.9200 -0.3811 -vn 0.0465 -0.2865 -0.9570 +vn -0.0453 -0.3552 0.9337 vn -0.8418 -0.4987 0.2066 vn -0.0497 -0.9227 0.3822 vn -0.8418 0.4987 0.2066 vn 0.3746 -0.9272 0.0000 vn 0.1495 -0.8307 -0.5362 -vn 0.0000 -0.4721 -0.8815 -vn 0.0000 -0.3958 -0.9183 -vn 0.1495 -0.8307 0.5362 vn 0.0000 -0.4721 0.8815 -vn 0.0000 -0.3958 0.9183 +vn 0.0120 -0.3847 0.9230 +vn 0.1495 -0.8307 0.5362 +vn 0.1144 -0.4166 0.9019 +vn 0.1144 -0.4166 -0.9019 vn -0.9846 0.1617 0.0670 vn 0.4296 -0.8343 0.3456 vn 0.0915 0.9200 0.3811 @@ -5717,11 +5937,11 @@ vn -0.0497 -0.9227 -0.3822 vn 0.3223 0.8746 0.3623 vn 0.8293 -0.5162 -0.2138 vn -0.9846 -0.1617 0.0670 -vn 0.9999 -0.0145 -0.0000 -vn -0.0222 -0.3380 -0.9409 -vn -0.0222 -0.3380 0.9409 -vn 0.0821 -0.3191 0.9441 -vn 0.0821 -0.3191 -0.9441 +vn 0.9999 -0.0151 0.0000 +vn -0.0476 -0.3025 -0.9520 +vn 0.0120 -0.3847 -0.9230 +vn 0.0000 -0.9012 -0.4335 +vn 0.0000 -0.8684 0.4959 vn -0.0053 -0.3038 0.9527 vn -0.0053 -0.3038 -0.9527 vn -0.0755 0.9042 0.4204 @@ -5734,10 +5954,71 @@ vn -0.0095 0.3428 -0.9394 vn -0.0127 0.9088 -0.4171 vn -0.0124 0.9153 0.4026 vn -0.0095 0.3428 0.9394 -vn -0.0039 0.8598 0.5107 +vn -0.9952 -0.0952 0.0245 +vn 0.0000 0.5505 -0.8349 +vn -0.9938 0.1009 -0.0476 +vn 0.9884 0.1326 -0.0741 +vn 0.0000 -0.7129 -0.7012 +vn 0.9976 -0.0694 0.0010 +vn 0.0026 -0.9715 0.2370 +vn -0.0023 0.8582 -0.5133 +vn 0.0014 -0.3780 -0.9258 +vn 0.9905 0.1284 -0.0490 +vn 0.0024 -0.9722 0.2343 +vn -0.9957 -0.0410 -0.0837 +vn 0.9959 -0.0250 -0.0874 +vn -0.0018 0.8543 -0.5198 +vn -0.9919 0.1050 -0.0715 +vn 0.9172 -0.1505 -0.3689 +vn 0.0050 -0.9531 -0.3028 +vn -0.0034 0.5235 -0.8520 +vn 0.0017 -0.3780 -0.9258 +vn -0.0031 0.4723 -0.8815 +vn -0.8491 -0.1997 -0.4891 +vn 0.8493 -0.1946 -0.4907 +vn 0.0018 -0.3780 -0.9258 +vn -0.0029 0.4287 -0.9035 +vn -0.8914 -0.1765 -0.4174 +vn 0.8917 -0.1710 -0.4191 +vn 0.0050 -0.9355 -0.3532 +vn 0.0048 -0.9190 -0.3942 +vn -0.9170 -0.1562 -0.3671 +vn -0.5510 -0.3187 -0.7712 +vn 0.0019 -0.9695 0.2450 +vn 0.0000 -0.9012 0.4335 +vn -0.0022 0.8595 -0.5111 +vn -0.8418 0.2066 -0.4987 +vn -0.8418 -0.2066 -0.4987 +vn -0.8680 -0.1900 0.4588 +vn -0.8680 -0.4588 0.1900 +vn -0.9846 0.0670 -0.1617 +vn 0.0915 -0.3811 0.9200 +vn 0.8623 0.4678 0.1938 +vn 0.3223 -0.8746 0.3623 +vn -0.0000 0.0000 -1.0000 +vn 0.6287 0.0000 -0.7776 +vn -0.0165 0.9238 0.3826 +vn 0.0915 -0.9200 0.3811 +vn 0.2182 0.9016 -0.3735 +vn 0.1948 -0.9808 0.0000 +vn -0.8418 -0.4987 -0.2066 +vn -0.8418 0.4987 -0.2066 +vn -0.9846 0.1617 -0.0670 +vn 0.8293 -0.5162 0.2138 +vn -0.0712 0.8983 -0.4336 +vn 0.1218 0.3643 0.9233 +vn -0.2273 -0.8997 -0.3727 +vn -0.0913 0.8947 -0.4372 +vn 0.0864 0.8928 -0.4421 +vn -0.2272 -0.8997 0.3727 +vn -0.1218 0.9170 0.3798 +vn -0.1970 -0.3752 -0.9058 +vn -0.1970 -0.3752 0.9058 +vn -0.1533 0.3782 -0.9130 +vn 1.0000 -0.0006 -0.0069 +vn 0.0864 0.8928 0.4421 +vn 0.0000 0.9649 0.2626 vn -0.0022 0.8595 0.5111 -vn 0.0005 0.9245 0.3812 -vn -0.0013 -0.9234 -0.3838 vn 0.0014 -0.3780 0.9258 vn 0.0019 -0.9695 -0.2450 vn -0.5510 -0.3187 0.7712 @@ -5751,7 +6032,7 @@ vn -0.0029 0.4287 0.9035 vn 0.0018 -0.3780 0.9258 vn 0.8493 -0.1946 0.4907 vn -0.8491 -0.1997 0.4891 -vn -0.0031 0.4723 0.8814 +vn -0.0031 0.4723 0.8815 vn -0.0034 0.5235 0.8520 vn 0.0050 -0.9531 0.3028 vn 0.9172 -0.1505 0.3689 @@ -5760,411 +6041,356 @@ vn -0.0018 0.8543 0.5198 vn 0.9959 -0.0250 0.0874 vn -0.9957 -0.0410 0.0837 vn 0.0024 -0.9722 -0.2343 -vn 0.0013 -0.9725 -0.2331 vn 0.9905 0.1284 0.0490 -vn 0.0013 -0.3780 0.9258 vn -0.0023 0.8582 0.5133 vn 0.0026 -0.9715 -0.2370 vn 0.9976 -0.0694 -0.0010 vn 0.0000 -0.7129 0.7012 vn 0.9884 0.1326 0.0741 -vn -0.9938 0.1009 0.0477 +vn -0.9938 0.1009 0.0476 vn 0.0000 0.5505 0.8349 vn -0.9952 -0.0952 -0.0245 -vn 0.0000 0.9239 -0.3827 -vn -0.8418 0.2066 -0.4987 -vn 1.0000 -0.0007 -0.0064 -vn 1.0000 -0.0004 -0.0047 -vn 1.0000 0.0013 -0.0051 -vn -0.8418 -0.2066 -0.4987 -vn -0.8680 -0.1900 0.4588 -vn -0.8680 -0.4588 0.1900 -vn -0.9846 0.0670 -0.1617 -vn 0.0915 -0.3811 0.9200 -vn 0.8623 0.4678 0.1938 -vn 0.3223 -0.8746 0.3623 -vn 0.0000 0.0000 -1.0000 -vn 0.6287 0.0000 -0.7776 -vn -0.0165 0.9238 0.3826 -vn 0.0915 -0.9200 0.3811 -vn 0.2182 0.9016 -0.3735 -vn 0.1948 -0.9808 0.0000 -vn -0.8418 -0.4987 -0.2066 -vn -0.8418 0.4987 -0.2066 -vn -0.9846 0.1617 -0.0670 -vn 0.8293 -0.5162 0.2138 -vn -0.0712 0.8983 -0.4336 -vn 0.1218 0.3643 0.9233 -vn -0.0007 0.8599 -0.5105 -vn -0.0022 0.8595 -0.5111 -vn 1.0000 -0.0009 0.0063 -vn 1.0000 -0.0004 0.0047 -vn 1.0000 0.0013 0.0051 -vn 0.0008 0.9233 -0.3841 -vn -0.0001 -0.9232 0.3843 -vn 0.0014 -0.3780 -0.9258 -vn 0.0019 -0.9695 0.2450 -vn -0.5510 -0.3187 -0.7712 -vn -0.9170 -0.1562 -0.3671 -vn 0.0048 -0.9190 -0.3942 -vn 0.0050 -0.9355 -0.3532 -vn 0.0017 -0.3780 -0.9258 -vn 0.8917 -0.1710 -0.4191 -vn -0.8914 -0.1765 -0.4174 -vn -0.0029 0.4287 -0.9035 -vn 0.0018 -0.3780 -0.9258 -vn 0.8493 -0.1946 -0.4907 -vn -0.8491 -0.1997 -0.4891 -vn -0.0031 0.4723 -0.8814 -vn -0.0034 0.5235 -0.8520 -vn 0.0050 -0.9531 -0.3028 -vn 0.9172 -0.1505 -0.3689 -vn -0.9919 0.1050 -0.0715 -vn -0.0018 0.8543 -0.5198 -vn 0.9959 -0.0250 -0.0874 -vn -0.9957 -0.0410 -0.0837 -vn 0.0024 -0.9722 0.2343 -vn 0.0007 -0.9722 0.2343 -vn 0.9905 0.1284 -0.0490 -vn -0.0023 0.8582 -0.5133 -vn 0.0026 -0.9715 0.2370 -vn 0.9976 -0.0694 0.0010 -vn 0.0000 -0.7129 -0.7012 -vn 0.9884 0.1326 -0.0741 -vn -0.9938 0.1009 -0.0476 -vn 0.0000 0.5505 -0.8349 -vn -0.9952 -0.0952 0.0245 -vn -0.2273 -0.8997 -0.3727 -vn -0.0182 0.9159 0.4009 -vn -0.0182 0.9159 -0.4009 -vn -0.2272 -0.8997 0.3727 -vn -0.1218 0.9170 0.3798 -vn -0.1970 -0.3752 -0.9058 -vn -0.1970 -0.3752 0.9058 -vn -0.1533 0.3782 -0.9130 +vn 1.0000 -0.0006 0.0069 +vn 0.0464 -0.8899 -0.4538 +vn 0.0000 -0.8684 -0.4959 +vn -0.0476 -0.3025 0.9520 +vn 0.0000 -0.4721 -0.8815 s off -f 1141/1847/614 1142/1848/614 1143/1849/614 1144/1850/614 -f 1145/1851/615 1146/1852/615 1147/1853/615 1148/1854/615 -f 1148/1854/616 1147/1853/616 1149/1855/616 1150/1856/616 -f 1151/1857/617 1152/1858/617 1153/1859/617 1154/1860/617 -f 1145/1851/618 1148/1854/618 1155/1861/618 1156/1862/618 -f 1142/1863/619 1157/1864/619 1158/1865/619 1159/1866/619 -f 1147/1853/620 1146/1852/620 1160/1867/620 1161/1868/620 -f 1162/1869/621 1163/1870/621 1164/1871/621 1165/1872/621 -f 1166/1873/622 1151/1857/622 1154/1860/622 1167/1874/622 -f 1166/1873/623 1168/1875/623 1169/1876/623 1170/1877/623 -f 1171/1878/624 1172/1879/624 1173/1880/624 1174/1881/624 -f 1172/1882/625 1152/1858/625 1175/1883/625 1173/1884/625 -f 1151/1857/626 1166/1873/626 1170/1877/626 1176/1885/626 -f 1168/1875/627 1163/1870/627 1177/1886/627 1169/1876/627 -f 1178/1887/614 1179/1888/614 1180/1889/614 1181/1890/614 -f 1182/1891/628 1183/1892/628 1184/1893/628 1185/1894/628 -f 1185/1894/629 1184/1893/629 1186/1895/629 1187/1896/629 -f 1340/1897/630 1220/1898/630 1199/1899/630 1194/1900/630 1196/1901/630 -f 1191/1902/631 1184/1893/631 1192/1903/631 1193/1904/631 -f 1316/1905/615 1326/1906/615 1319/1907/615 1188/1908/615 1190/1909/615 -f 1197/1910/632 1198/1911/632 1194/1912/632 1199/1913/632 1200/1914/632 -f 1201/1915/633 1202/1916/633 1203/1917/633 1204/1918/633 -f 1198/1911/634 1205/1919/634 1179/1920/634 1206/1921/634 1194/1912/634 -f 1180/1889/635 1179/1888/635 1205/1922/635 1207/1923/635 -f 1208/1924/636 1197/1910/636 1200/1914/636 1209/1925/636 1188/1926/636 -f 1210/1927/637 1211/1928/637 1212/1929/637 1213/1930/637 1214/1931/637 1156/1932/637 1155/1933/637 1215/1934/637 -f 1216/1935/638 1145/1851/638 1156/1862/638 1214/1936/638 -f 1211/1928/639 1212/1929/639 1207/1937/639 1205/1938/639 -f 1211/1939/640 1205/1940/640 1198/1941/640 1210/1942/640 -f 1155/1943/641 1208/1944/641 1193/1945/641 1156/1946/641 -f 1213/1947/642 1217/1948/642 1207/1949/642 1212/1950/642 -f 1218/1951/643 1219/1952/643 1200/1914/643 1199/1913/643 1220/1953/643 1221/1954/643 -f 1204/1918/644 1203/1917/644 1222/1955/644 1223/1956/644 -f 1201/1915/614 1224/1957/614 1225/1958/614 1202/1916/614 -f 1200/1914/645 1219/1952/645 1227/1959/645 1228/1960/645 1226/1961/645 1209/1925/645 -f 1230/1962/646 1161/1868/646 1231/1963/646 1232/1964/646 -f 1233/1965/647 1159/1966/647 1234/1967/647 1235/1968/647 -f 1153/1859/648 1236/1969/648 1237/1970/648 1238/1971/648 -f 1239/1972/649 1233/1965/649 1235/1968/649 1240/1973/649 -f 1241/1974/650 1167/1874/650 1242/1975/650 1243/1976/650 -f 1172/1879/651 1171/1878/651 1244/1977/651 1236/1978/651 -f 1149/1855/652 1147/1853/652 1161/1868/652 1230/1962/652 -f 1168/1875/653 1166/1873/653 1167/1874/653 1241/1974/653 -f 1152/1858/654 1172/1882/654 1236/1969/654 1153/1859/654 -f 1163/1870/655 1168/1875/655 1241/1974/655 1164/1871/655 -f 1143/1849/656 1142/1848/656 1159/1966/656 1233/1965/656 -f 1231/1963/657 1245/1979/657 1243/1976/657 1242/1975/657 -f 1234/1980/658 1246/1981/658 1238/1971/658 1237/1970/658 -f 1235/1968/659 1234/1967/659 1237/1982/659 1247/1983/659 -f 1159/1866/660 1158/1865/660 1246/1981/660 1234/1980/660 -f 1161/1868/661 1160/1867/661 1245/1979/661 1231/1963/661 -f 1154/1860/662 1153/1859/662 1238/1971/662 1248/1984/662 -f 1164/1871/663 1241/1974/663 1243/1976/663 1249/1985/663 -f 1236/1978/664 1244/1977/664 1247/1983/664 1237/1982/664 -f 1250/1986/665 1251/1987/665 1252/1988/665 1253/1989/665 -f 1173/1884/666 1175/1883/666 1254/1990/666 1251/1991/666 -f 1174/1881/666 1173/1880/666 1251/1987/666 1250/1986/666 -f 1175/1883/666 1176/1885/666 1255/1992/666 1254/1990/666 -f 1170/1877/666 1169/1876/666 1256/1993/666 1257/1994/666 -f 1169/1876/666 1177/1886/666 1258/1995/666 1256/1993/666 -f 1259/1996/667 1260/1997/667 1261/1998/667 1262/1999/667 -f 1257/1994/668 1256/1993/668 1263/2000/668 1264/2001/668 -f 1254/1990/669 1255/1992/669 1260/1997/669 1259/1996/669 -f 1255/1992/670 1257/1994/670 1264/2001/670 1260/1997/670 -f 1251/1991/671 1254/1990/671 1259/1996/671 1252/2002/671 -f 1265/2003/666 1266/2004/666 1267/2005/666 1268/2006/666 -f 1260/1997/672 1264/2001/672 1265/2003/672 1261/1998/672 -f 1252/2002/673 1259/1996/673 1262/1999/673 1269/2007/673 -f 1253/1989/674 1252/1988/674 1269/2008/674 1270/2009/674 -f 1263/2000/675 1271/2010/675 1272/2011/675 1266/2004/675 -f 1264/2001/676 1263/2000/676 1266/2004/676 1265/2003/676 -f 1269/2007/666 1262/1999/666 1273/2012/666 1274/2013/666 -f 1270/2009/666 1269/2008/666 1274/2014/666 1275/2015/666 -f 1266/2004/666 1272/2011/666 1276/2016/666 1267/2005/666 -f 1277/2017/677 1278/2018/677 1279/2019/677 1280/2020/677 -f 1281/2021/678 1268/2006/678 1282/2022/678 1283/2023/678 -f 1275/2015/679 1274/2014/679 1277/2024/679 1284/2025/679 -f 1267/2005/680 1276/2016/680 1285/2026/680 1286/2027/680 -f 1276/2016/681 1287/2028/681 1288/2029/681 1285/2026/681 -f 1268/2006/682 1267/2005/682 1286/2027/682 1282/2022/682 -f 1284/2025/614 1277/2024/614 1280/2030/614 1291/2031/614 -f 1286/2027/629 1285/2026/629 1294/2032/629 1295/2033/629 -f 1282/2022/615 1286/2027/615 1295/2033/615 1296/2034/615 -f 1292/2035/615 1297/2036/615 1298/2037/615 1293/2038/615 -f 1298/2037/616 1299/2039/616 1289/2040/616 1293/2038/616 -f 1300/2041/614 1301/2042/614 1302/2043/614 1303/2044/614 -f 1304/2045/628 1305/2046/628 1306/2047/628 1307/2048/628 -f 1307/2048/629 1306/2047/629 1297/2049/629 1292/2050/629 -f 1299/2051/666 1298/2052/666 1297/2053/666 1306/2054/666 1305/2055/666 1301/2056/666 1300/2057/666 1308/2058/666 -f 1309/2059/666 1310/2060/666 1311/2061/666 1312/2062/666 -f 1325/2063/677 1317/2064/677 1312/2062/677 1311/2065/677 1324/2066/677 -f 1188/1926/683 1209/1925/683 1226/1961/683 1189/2067/683 1190/2068/683 -f 1315/2069/684 1505/2070/684 1504/2071/684 1327/2072/684 1323/2073/684 -f 1208/2074/685 1188/1908/685 1319/1907/685 1191/2075/685 1193/2076/685 -f 1218/2077/686 1317/2078/686 1318/2079/686 1506/2080/686 1219/1952/686 -f 1325/2063/677 1324/2066/677 1229/2081/677 1206/2082/677 1179/2083/677 1178/2084/677 -f 1191/2075/615 1319/1907/615 1326/1906/615 1322/2085/615 1323/2073/615 1327/2072/615 -f 1293/2086/666 1289/2087/666 1290/2088/666 1291/2089/666 -f 1303/2090/677 1328/2091/677 1308/2092/677 1300/2093/677 -f 1321/2094/687 1322/2085/687 1329/2095/687 1330/2096/687 -f 1331/2097/666 1313/2098/666 1321/2094/666 1330/2096/666 -f 1228/2099/688 1332/2100/688 1222/1955/688 1226/2101/688 -f 1222/1955/689 1332/2100/689 1333/2102/689 1334/2103/689 -f 1335/2104/666 1287/2028/666 1276/2105/666 1272/2106/666 -f 1282/2107/616 1296/2108/616 1336/2109/616 1283/2023/616 -f 1228/2099/690 1314/2110/690 1337/2111/690 1332/2100/690 -f 1196/2112/637 1338/2113/637 1339/2114/637 1340/2115/637 -f 1210/1942/691 1198/1941/691 1197/2116/691 1215/2117/691 -f 1196/2112/637 1195/2118/637 1341/2119/637 1338/2113/637 -f 1158/1865/692 1230/1962/692 1232/1964/692 1246/1981/692 -f 1288/2029/693 1284/2025/693 1291/2031/693 1290/2120/693 -f 1229/2121/694 1342/2122/694 1341/2119/694 1195/2118/694 -f 1334/2103/695 1220/2123/695 1340/2115/695 1339/2114/695 -f 1203/1917/696 1189/2124/696 1226/1961/696 1222/1955/696 -f 1203/1917/637 1202/1916/637 1190/2068/637 1189/2124/637 -f 1225/1958/637 1316/2125/637 1190/2126/637 1202/1916/637 -f 1326/2127/697 1316/2125/697 1225/1958/697 1343/2128/697 -f 1329/2095/698 1322/2085/698 1326/2127/698 1343/2128/698 -f 1229/2121/699 1324/2129/699 1344/2130/699 1342/2122/699 -f 1345/2131/666 1346/2132/666 1258/2133/666 1177/2134/666 -f 1347/2135/700 1348/2136/700 1339/2114/700 1338/2113/700 -f 1348/2136/701 1349/2137/701 1334/2103/701 1339/2114/701 -f 1347/2135/629 1338/2113/629 1341/2119/629 1350/2138/629 -f 1235/2139/702 1247/2140/702 1351/2141/702 1240/1973/702 -f 1250/2142/703 1253/2143/703 1352/2144/703 1346/2132/703 -f 1273/2145/704 1278/2146/704 1277/2147/704 1274/2148/704 -f 1288/2029/628 1290/2120/628 1294/2149/628 1285/2150/628 -f 1353/2151/705 1350/2138/705 1341/2119/705 1342/2122/705 -f 1334/2103/706 1349/2137/706 1223/1956/706 1222/1955/706 -f 1162/1869/707 1165/1872/707 1244/2152/707 1171/2153/707 -f 1171/2153/708 1174/2154/708 1345/2131/708 1162/1869/708 -f 1156/2155/709 1193/2156/709 1192/2157/709 1214/2158/709 -f 1213/1947/710 1214/2159/710 1192/2160/710 1217/1948/710 -f 1165/1872/711 1351/2141/711 1247/2140/711 1244/2152/711 -f 1258/2133/712 1271/2161/712 1263/2162/712 1256/2163/712 -f 1262/1999/666 1261/1998/666 1281/2021/666 1273/2012/666 -f 1311/2061/713 1310/2060/713 1344/2130/713 1324/2129/713 -f 1354/2164/714 1355/2165/714 1356/2166/714 1357/2167/714 1358/2168/714 1359/2169/714 1224/1957/714 1201/1915/714 1204/1918/714 1223/1956/714 1349/2137/714 1348/2136/714 1347/2135/714 1350/2138/714 1353/2151/714 -f 1345/2131/666 1174/1881/666 1250/1986/666 1346/2132/666 -f 1246/1981/715 1232/1964/715 1248/1984/715 1238/1971/715 -f 1359/2169/716 1343/2128/716 1225/1958/716 1224/1957/716 -f 1216/2170/717 1214/2171/717 1213/2172/717 1360/2173/717 -f 1352/2144/718 1335/2104/718 1272/2106/718 1271/2161/718 -f 1265/2174/666 1268/2175/666 1281/2021/666 1261/1998/666 -f 1150/1856/719 1215/2176/719 1155/2177/719 1148/2178/719 -f 1361/2179/720 1362/2180/720 1363/2181/720 1337/2111/720 -f 1361/2179/721 1337/2111/721 1331/2097/721 1364/2182/721 -f 1364/2182/722 1331/2097/722 1330/2096/722 1365/2183/722 -f 1366/2184/723 1365/2183/723 1330/2096/723 1329/2095/723 -f 1363/2181/724 1362/2180/724 1367/2185/724 1309/2059/724 -f 1309/2059/725 1367/2185/725 1368/2186/725 1310/2060/725 -f 1310/2060/726 1368/2186/726 1369/2187/726 1344/2130/726 -f 1144/1850/693 1143/1849/693 1370/2188/693 1360/2173/693 -f 1370/2188/727 1143/1849/727 1233/1965/727 1239/1972/727 -f 1163/1870/728 1162/1869/728 1345/2131/728 1177/1886/728 -f 1231/2189/729 1242/2190/729 1248/1984/729 1232/1964/729 -f 1152/1858/730 1151/1857/730 1176/1885/730 1175/1883/730 -f 1165/1872/731 1164/1871/731 1249/1985/731 1351/2141/731 -f 1352/2144/732 1253/1989/732 1270/2009/732 1335/2104/732 -f 1335/2104/666 1270/2009/666 1275/2015/666 1287/2028/666 -f 1287/2028/733 1275/2015/733 1284/2025/733 1288/2029/733 -f 1180/2191/734 1207/2192/734 1217/2193/734 1183/1892/734 -f 1157/1864/735 1149/1855/735 1230/1962/735 1158/1865/735 -f 1328/2194/666 1294/2195/666 1290/2088/666 1289/2087/666 -f 1367/2185/736 1362/2180/736 1361/2179/736 1364/2182/736 1365/2183/736 1366/2184/736 1371/2196/736 1372/2197/736 1373/2198/736 1374/2199/736 1375/2200/736 1369/2187/736 1368/2186/736 -f 1376/2201/737 1371/2196/737 1366/2184/737 1329/2095/737 -f 1377/2202/738 1344/2130/738 1369/2187/738 1375/2200/738 -f 1354/2164/739 1353/2151/739 1342/2122/739 1378/2203/739 -f 1358/2168/740 1379/2204/740 1343/2128/740 1359/2169/740 -f 1342/2122/741 1344/2130/741 1377/2202/741 1378/2203/741 -f 1343/2128/742 1379/2204/742 1376/2201/742 1329/2095/742 -f 1373/2198/743 1380/2205/743 1381/2206/743 1374/2199/743 -f 1374/2199/744 1381/2206/744 1377/2202/744 1375/2200/744 -f 1372/2197/745 1371/2196/745 1376/2201/745 1382/2207/745 -f 1356/2166/746 1355/2165/746 1383/2208/746 1384/2209/746 -f 1356/2166/747 1384/2209/747 1385/2210/747 1357/2167/747 -f 1357/2167/748 1385/2210/748 1379/2204/748 1358/2168/748 -f 1379/2204/749 1385/2210/749 1382/2207/749 1376/2201/749 -f 1380/2205/750 1382/2207/750 1385/2210/750 1384/2209/750 -f 1380/2205/751 1384/2209/751 1383/2208/751 1381/2206/751 -f 1378/2203/752 1377/2202/752 1381/2206/752 1383/2208/752 -f 1386/2211/637 1187/2212/637 1387/2213/637 1388/2214/637 -f 1191/2075/629 1327/2072/629 1386/2215/629 1389/2216/629 1390/2217/629 1391/2218/629 -f 1184/1893/629 1191/1902/629 1391/2219/629 1186/1895/629 -f 1327/2220/629 1185/2221/629 1187/2212/629 1386/2211/629 -f 1392/2222/753 1393/2223/754 1394/2224/754 1395/2225/754 -f 1391/2218/616 1390/2217/616 1393/2223/616 1392/2222/755 -f 1187/1896/693 1186/1895/693 1396/2226/756 1397/2227/693 1398/2228/693 1387/2229/693 -f 1399/2230/757 1400/2231/757 1401/2232/757 1402/2233/757 -f 1387/2229/758 1398/2228/758 1403/2234/758 1404/2235/758 1405/2236/758 1406/2237/758 1407/2238/758 1408/2239/758 1400/2231/758 1399/2230/758 -f 1388/2214/759 1387/2213/759 1399/2240/759 1402/2241/759 -f 1408/2239/760 1410/2242/760 1411/2243/760 1412/2244/760 -f 1410/2242/757 1408/2239/757 1407/2238/757 1413/2245/757 -f 1414/2246/761 1413/2247/761 1415/2248/761 1416/2249/761 -f 1414/2250/757 1406/2237/757 1405/2236/757 1417/2251/757 -f 1418/2252/762 1417/2253/762 1419/2254/762 1420/2255/762 -f 1418/2256/757 1404/2235/757 1403/2234/757 1421/2257/757 -f 1415/2258/763 1422/2259/763 1423/2260/763 1416/2261/763 -f 1413/2245/764 1407/2238/764 1422/2259/764 1415/2258/764 -f 1406/2237/765 1414/2250/765 1416/2261/765 1423/2260/765 -f 1407/2238/766 1406/2237/766 1423/2260/766 1422/2259/766 -f 1419/2262/767 1424/2263/767 1425/2264/767 1420/2265/767 -f 1417/2251/768 1405/2236/768 1424/2263/768 1419/2262/768 -f 1404/2235/769 1418/2256/769 1420/2265/769 1425/2264/769 -f 1405/2236/770 1404/2235/770 1425/2264/770 1424/2263/770 -f 1426/2266/763 1427/2267/763 1412/2244/763 1411/2243/763 -f 1400/2231/771 1408/2239/771 1412/2244/771 1427/2267/771 -f 1410/2268/772 1401/2269/772 1426/2270/772 1411/2271/772 -f 1401/2232/773 1400/2231/773 1427/2267/773 1426/2266/773 -f 1394/2224/774 1393/2223/774 1428/2272/774 1429/2273/774 -f 1421/2274/775 1430/2275/775 1388/2276/775 1402/2277/775 1401/2269/775 1410/2268/775 1413/2247/775 1414/2246/775 1417/2253/775 1418/2252/775 -f 1430/2275/616 1389/2216/616 1386/2215/616 1388/2276/616 -f 1421/2257/776 1403/2234/776 1431/2278/776 1432/2279/776 -f 1433/2280/777 1394/2281/777 1429/2282/777 1434/2283/777 -f 1394/2281/757 1433/2280/757 1409/2284/757 1395/2285/757 -f 1433/2280/778 1397/2227/778 1396/2226/779 1409/2284/778 -f 1389/2216/780 1430/2275/780 1435/2286/780 1436/2287/780 -f 1432/2279/781 1431/2278/781 1434/2283/781 1429/2282/781 -f 1429/2273/782 1428/2272/782 1435/2286/782 1432/2288/782 -f 1428/2272/616 1437/2289/616 1436/2287/616 1435/2286/616 -f 1431/2278/783 1438/2290/783 1439/2291/783 1434/2283/783 -f 1403/2234/784 1398/2228/784 1438/2290/784 1431/2278/784 -f 1398/2228/785 1397/2227/785 1439/2291/785 1438/2290/785 -f 1430/2275/786 1421/2274/786 1432/2288/786 1435/2286/786 -f 1393/2223/787 1390/2217/787 1437/2289/787 1428/2272/787 -f 1390/2217/788 1389/2216/788 1436/2287/788 1437/2289/788 -f 1397/2227/789 1433/2280/789 1434/2283/789 1439/2291/789 -f 1145/2292/629 1216/2170/629 1440/2293/629 1146/2294/629 -f 1141/2295/677 1441/2296/677 1157/2297/677 1142/2298/677 -f 1441/2296/790 1150/1856/790 1149/1855/790 1157/2297/790 -f 1141/2295/791 1211/2299/791 1210/2300/791 1441/2296/791 -f 1327/2301/629 1185/2302/629 1184/2303/629 1191/2304/629 -f 1182/1891/693 1181/2305/693 1180/2191/693 1183/1892/693 -f 1181/2305/614 1442/2306/614 1443/2307/614 1180/2191/614 -f 1456/2308/792 1469/2309/793 1453/2310/793 1452/2311/794 1449/2312/793 1443/2307/793 -f 1144/2313/795 1212/2314/795 1211/2299/795 1141/2295/795 -f 1444/2315/796 1445/2316/796 1245/2317/796 1160/2318/796 -f 1239/1972/797 1240/1973/797 1445/2316/797 1444/2315/797 -f 1440/2293/798 1444/2315/798 1160/2318/798 1146/2294/798 -f 1445/2316/799 1249/2319/799 1243/2320/799 1245/2317/799 -f 1154/1860/800 1248/1984/800 1242/2190/800 1167/2321/800 -f 1170/2322/666 1257/2323/666 1255/1992/666 1176/1885/666 -f 1281/2021/801 1283/2023/801 1278/2146/801 1273/2145/801 -f 1308/2092/790 1328/2091/790 1289/2040/790 1299/2039/790 -f 1304/2045/693 1302/2324/693 1301/2325/693 1305/2046/693 -f 1337/2111/666 1314/2110/666 1313/2098/666 1331/2097/666 -f 1363/2181/666 1309/2059/666 1312/2062/666 1320/2326/666 -f 1221/1954/802 1220/1953/802 1334/2103/802 1333/2102/802 -f 1278/2018/790 1283/2023/790 1336/2109/790 1279/2019/790 -f 1221/1954/803 1333/2102/803 1363/2181/803 1320/2326/803 -f 1155/1943/804 1215/2117/804 1197/2116/804 1208/1944/804 -f 1445/2327/805 1240/1973/805 1351/2141/805 1249/1985/805 -f 1258/1995/806 1346/2132/806 1352/2144/806 1271/2010/806 -f 1333/2102/807 1332/2100/807 1337/2111/807 1363/2181/807 -f 1144/1850/808 1360/2173/808 1213/2172/808 1212/2328/808 -f 1150/1856/809 1441/2329/809 1210/2330/809 1215/2176/809 -f 1216/2170/628 1360/2173/628 1370/2188/628 1440/2293/628 -f 1370/2188/810 1239/1972/810 1444/2315/810 1440/2293/810 -f 1184/1893/811 1183/1892/811 1217/2193/811 1192/1903/811 -f 1373/2198/812 1372/2197/812 1382/2207/812 1380/2205/812 -f 1355/2165/813 1354/2164/813 1378/2203/813 1383/2208/813 -f 1446/2331/637 1447/2332/637 1448/2333/637 1442/2334/637 -f 1179/1920/614 1449/2335/614 1450/2336/614 1451/2337/614 1446/2338/614 1178/2339/614 -f 1180/2191/614 1443/2307/614 1449/2312/614 1179/2083/614 -f 1178/2340/614 1446/2331/614 1442/2334/614 1181/2341/614 -f 1452/2342/814 1453/2343/815 1454/2344/815 1455/2345/815 -f 1392/2346/816 1395/2285/817 1409/2284/817 1396/2226/818 1186/1895/817 1391/2219/817 -f 1449/2335/790 1452/2342/819 1455/2345/790 1450/2336/790 -f 1442/2306/628 1448/2347/628 1457/2348/628 1458/2349/628 1456/2308/820 1443/2307/628 -f 1459/2350/821 1460/2351/821 1461/2352/821 1462/2353/821 -f 1448/2347/822 1459/2350/822 1462/2353/822 1463/2354/822 1464/2355/822 1465/2356/822 1466/2357/822 1467/2358/822 1468/2359/822 1457/2348/822 -f 1447/2332/823 1460/2360/823 1459/2361/823 1448/2333/823 -f 1463/2354/824 1470/2362/824 1471/2363/824 1472/2364/824 -f 1472/2364/821 1473/2365/821 1464/2355/821 1463/2354/821 -f 1474/2366/825 1475/2367/825 1476/2368/825 1473/2369/825 -f 1474/2370/821 1477/2371/821 1466/2357/821 1465/2356/821 -f 1478/2372/826 1479/2373/826 1480/2374/826 1477/2375/826 -f 1478/2376/821 1481/2377/821 1468/2359/821 1467/2358/821 -f 1476/2378/827 1475/2379/827 1482/2380/827 1483/2381/827 -f 1473/2365/828 1476/2378/828 1483/2381/828 1464/2355/828 -f 1465/2356/829 1482/2380/829 1475/2379/829 1474/2370/829 -f 1464/2355/830 1483/2381/830 1482/2380/830 1465/2356/830 -f 1480/2382/831 1479/2383/831 1484/2384/831 1485/2385/831 -f 1477/2371/832 1480/2382/832 1485/2385/832 1466/2357/832 -f 1467/2358/833 1484/2384/833 1479/2383/833 1478/2376/833 -f 1466/2357/834 1485/2385/834 1484/2384/834 1467/2358/834 -f 1486/2386/827 1471/2363/827 1470/2362/827 1487/2387/827 -f 1462/2353/835 1487/2387/835 1470/2362/835 1463/2354/835 -f 1472/2388/836 1471/2389/836 1486/2390/836 1461/2391/836 -f 1461/2352/837 1486/2386/837 1487/2387/837 1462/2353/837 -f 1454/2344/838 1488/2392/838 1489/2393/838 1455/2345/838 -f 1481/2394/839 1478/2372/839 1477/2375/839 1474/2366/839 1473/2369/839 1472/2388/839 1461/2391/839 1460/2395/839 1447/2396/839 1490/2397/839 -f 1490/2397/790 1447/2396/790 1446/2338/790 1451/2337/790 -f 1481/2377/840 1491/2398/840 1492/2399/840 1468/2359/840 -f 1493/2400/841 1494/2401/841 1488/2402/841 1454/2403/841 -f 1454/2403/821 1453/2310/821 1469/2309/821 1493/2400/821 -f 1493/2400/842 1469/2309/842 1456/2308/843 1458/2349/842 -f 1451/2337/844 1495/2404/844 1496/2405/844 1490/2397/844 -f 1491/2398/821 1488/2402/821 1494/2401/821 1492/2399/821 -f 1488/2392/845 1491/2406/845 1496/2405/845 1489/2393/845 -f 1489/2393/790 1496/2405/790 1495/2404/790 1497/2407/790 -f 1492/2399/846 1494/2401/846 1498/2408/846 1499/2409/846 -f 1468/2359/847 1492/2399/847 1499/2409/847 1457/2348/847 -f 1457/2348/848 1499/2409/848 1498/2408/848 1458/2349/848 -f 1490/2397/849 1496/2405/849 1491/2406/849 1481/2394/849 -f 1455/2345/850 1489/2393/850 1497/2407/850 1450/2336/850 -f 1450/2336/851 1497/2407/851 1495/2404/851 1451/2337/851 -f 1458/2349/852 1498/2408/852 1494/2401/852 1493/2400/852 -f 1318/2410/637 1500/2411/637 1501/2412/637 1502/2413/637 1503/2414/637 1504/2415/637 1505/2416/637 1506/2417/637 -f 1181/2305/853 1182/1891/853 1502/2418/853 1501/2419/853 -f 1314/2110/854 1228/2099/854 1227/2420/854 1315/2069/854 1313/2098/854 -f 1221/2421/855 1320/2422/855 1312/2423/855 1317/2078/855 1218/2077/855 -f 1182/1891/856 1185/1894/856 1503/2424/856 1502/2418/856 -f 1315/2069/857 1227/1959/857 1219/1952/857 1506/2080/857 1505/2070/857 -f 1178/1887/858 1181/1890/858 1501/2425/858 1500/2426/858 -f 1185/2221/859 1327/2220/859 1504/2415/859 1503/2414/859 -f 1325/2063/860 1178/2084/860 1500/2427/860 1318/2428/860 1317/2064/860 -f 1194/1912/677 1206/1921/677 1229/2121/677 1195/2118/677 1196/2429/677 -f 1304/2430/666 1336/2431/666 1296/2432/666 1302/2433/666 -f 1336/2431/666 1304/2430/666 1307/2434/666 1279/2435/666 -f 1279/2435/666 1307/2434/666 1292/2436/666 1280/2437/666 -f 1280/2437/666 1292/2436/666 1293/2086/666 1291/2089/666 -f 1303/2438/666 1295/2439/666 1294/2195/666 1328/2194/666 -f 1295/2440/666 1303/2441/666 1302/2442/666 1296/2443/666 -f 1322/2085/615 1321/2094/615 1313/2098/615 1315/2069/615 1323/2073/615 +f 1141/2002/610 1142/2003/610 1143/2004/610 1144/2005/610 +f 1145/2006/611 1146/2007/611 1147/2008/611 1148/2009/611 +f 1148/2009/612 1147/2008/612 1149/2010/612 1150/2011/612 +f 1151/2012/613 1152/2013/613 1153/2014/613 1154/2015/613 +f 1145/2006/614 1148/2009/614 1155/2016/614 1156/2017/614 +f 1142/2018/615 1157/2019/615 1158/2020/615 1159/2021/615 +f 1147/2022/616 1146/2023/616 1160/2024/616 1161/2025/616 +f 1162/2026/617 1163/2027/617 1164/2028/617 1165/2029/617 +f 1166/2030/618 1151/2031/618 1154/2032/618 1167/2033/618 +f 1166/2034/619 1168/2035/619 1169/2036/619 1170/2037/619 +f 1171/2038/620 1172/2039/620 1173/2040/620 1174/2041/620 +f 1172/2042/621 1152/2043/621 1175/2044/621 1173/2045/621 +f 1151/2031/622 1166/2030/622 1170/2046/622 1176/2047/622 +f 1168/2048/623 1163/2049/623 1177/2050/623 1169/2051/623 +f 1182/2052/624 1183/2053/624 1184/2054/624 1185/2055/624 +f 1185/2055/625 1184/2054/625 1186/2056/625 1187/2057/625 +f 1307/2058/626 1221/2059/626 1214/2060/626 +f 1191/2061/627 1184/2062/627 1192/2063/627 1193/2064/627 +f 1222/2065/628 1179/2066/628 1178/2067/628 1315/2068/628 +f 1197/2069/629 1198/2070/629 1194/2071/629 1199/2072/629 +f 1338/2073/630 1329/2074/630 1337/2075/630 +f 1198/2076/631 1203/2077/631 1179/2078/631 1194/2071/631 +f 1180/2079/632 1179/2078/632 1203/2080/632 1204/2081/632 +f 1205/2082/633 1197/2083/633 1199/2072/633 1188/2084/633 +f 1212/2085/634 1145/2006/634 1156/2086/634 1210/2087/634 +f 1207/2088/635 1208/2089/635 1204/2081/635 1203/2080/635 +f 1207/2090/636 1203/2077/636 1198/2076/636 1206/2091/636 +f 1155/2016/637 1205/2092/637 1193/2093/637 1156/2017/637 +f 1209/2094/638 1213/2095/638 1204/2096/638 1208/2097/638 +f 1195/2098/628 1179/2066/628 1222/2065/628 +f 1333/2099/639 1219/2100/639 1345/2101/639 +f 1219/2100/640 1201/2102/640 1200/2103/640 +f 1194/2104/628 1179/2066/628 1195/2098/628 1196/2105/628 +f 1223/2106/641 1161/2107/641 1224/2108/641 1225/2109/641 +f 1226/2110/642 1159/2111/642 1227/2112/642 1228/2113/642 +f 1153/2114/643 1229/2115/643 1230/2116/643 1231/2117/643 +f 1232/2118/644 1226/2119/644 1228/2113/644 1233/2120/644 +f 1234/2121/645 1167/2122/645 1235/2123/645 1236/2124/645 +f 1172/2039/646 1171/2038/646 1237/2125/646 1229/2126/646 +f 1149/2127/647 1147/2128/647 1161/2107/647 1223/2106/647 +f 1168/2035/648 1166/2034/648 1167/2122/648 1234/2121/648 +f 1152/2043/649 1172/2042/649 1229/2115/649 1153/2114/649 +f 1163/2049/650 1168/2048/650 1234/2129/650 1164/2130/650 +f 1143/2131/651 1142/2132/651 1159/2111/651 1226/2110/651 +f 1224/2108/652 1238/2133/652 1236/2124/652 1235/2123/652 +f 1227/2112/653 1239/2134/653 1231/2117/653 1230/2116/653 +f 1228/2113/654 1227/2112/654 1230/2116/654 1240/2135/654 +f 1159/2021/655 1158/2020/655 1239/2134/655 1227/2112/655 +f 1161/2025/656 1160/2024/656 1238/2133/656 1224/2108/656 +f 1154/2015/657 1153/2014/657 1231/2117/657 1241/2136/657 +f 1164/2130/658 1234/2129/658 1236/2124/658 1242/2137/658 +f 1229/2126/659 1237/2125/659 1240/2135/659 1230/2116/659 +f 1243/2138/660 1244/2139/660 1245/2140/660 1246/2141/660 +f 1173/2045/661 1175/2044/661 1247/2142/661 1244/2143/661 +f 1174/2041/661 1173/2040/661 1244/2139/661 1243/2138/661 +f 1175/2144/661 1176/2145/661 1248/2146/661 1247/2147/661 +f 1170/2037/661 1169/2036/661 1249/2148/661 1250/2149/661 +f 1169/2051/661 1177/2050/661 1251/2150/661 1249/2151/661 +f 1252/2152/662 1253/2153/662 1254/2154/662 1255/2155/662 +f 1250/2149/663 1249/2148/663 1256/2156/663 1257/2157/663 +f 1247/2147/664 1248/2146/664 1253/2153/664 1252/2152/664 +f 1248/2158/665 1250/2159/665 1257/2160/665 1253/2161/665 +f 1244/2143/666 1247/2142/666 1252/2162/666 1245/2163/666 +f 1258/2164/661 1259/2165/661 1260/2166/661 1261/2167/661 +f 1253/2161/667 1257/2160/667 1258/2168/667 1254/2169/667 +f 1245/2163/668 1252/2162/668 1255/2170/668 1262/2171/668 +f 1246/2141/669 1245/2140/669 1262/2172/669 1263/2173/669 +f 1256/2174/670 1264/2175/670 1265/2176/670 1259/2177/670 +f 1257/2157/671 1256/2156/671 1259/2165/671 1258/2164/671 +f 1262/2171/661 1255/2170/661 1266/2178/661 1267/2179/661 +f 1263/2173/661 1262/2172/661 1267/2180/661 1268/2181/661 +f 1259/2177/661 1265/2176/661 1269/2182/661 1260/2183/661 +f 1270/2184/628 1271/2185/628 1272/2186/628 1273/2187/628 +f 1274/2188/672 1261/2189/672 1275/2190/672 1276/2191/672 +f 1268/2181/673 1267/2180/673 1270/2192/673 1277/2193/673 +f 1260/2183/674 1269/2182/674 1278/2194/674 1279/2195/674 +f 1269/2196/675 1280/2197/675 1281/2198/675 1278/2199/675 +f 1261/2167/676 1260/2166/676 1279/2200/676 1275/2201/676 +f 1277/2193/610 1270/2192/610 1273/2202/610 1284/2203/610 +f 1279/2195/625 1278/2194/625 1287/2204/625 1288/2205/625 +f 1275/2201/611 1279/2200/611 1288/2206/611 1289/2207/611 +f 1285/2208/611 1290/2209/611 1291/2210/611 1286/2211/611 +f 1291/2210/612 1292/2212/612 1282/2213/612 1286/2211/612 +f 1293/2214/610 1294/2215/610 1295/2216/610 1296/2217/610 +f 1297/2218/624 1298/2219/624 1299/2220/624 1300/2221/624 +f 1300/2221/625 1299/2220/625 1290/2209/625 1285/2208/625 +f 1292/2222/661 1291/2223/661 1290/2224/661 1299/2225/661 1298/2226/661 1294/2227/661 1293/2228/661 1301/2229/661 +f 1302/2230/661 1303/2231/661 1304/2232/661 1305/2233/661 +f 1216/2234/677 1214/2060/677 1199/2235/677 1215/2236/677 +f 1191/2237/611 1188/2238/611 1190/2239/611 1309/2240/611 +f 1308/2241/678 1433/2242/678 1432/2243/678 1317/2244/678 +f 1205/2092/679 1188/2084/679 1191/2061/679 1193/2093/679 +f 1214/2060/680 1310/2245/680 1311/2246/680 1434/2247/680 +f 1315/2068/628 1178/2067/628 1304/2248/628 +f 1312/2249/681 1305/2250/681 1310/2245/681 1214/2060/681 +f 1286/2251/661 1282/2252/661 1283/2253/661 1284/2254/661 +f 1296/2217/628 1318/2255/628 1301/2256/628 1293/2214/628 +f 1313/2257/682 1314/2258/682 1319/2259/682 1320/2260/682 +f 1321/2261/661 1306/2262/661 1313/2257/661 1320/2260/661 +f 1221/2263/683 1322/2264/683 1217/2265/683 1220/2266/683 +f 1217/2267/684 1322/2268/684 1323/2269/684 1324/2270/684 +f 1325/2271/661 1280/2197/661 1269/2196/661 1265/2272/661 +f 1275/2190/612 1289/2273/612 1326/2274/612 1276/2191/612 +f 1221/2263/685 1307/2275/685 1327/2276/685 1322/2264/685 +f 1196/2277/686 1328/2278/686 1329/2279/686 1330/2280/686 +f 1206/2281/687 1198/2070/687 1197/2069/687 1211/2282/687 +f 1196/2283/686 1195/2284/686 1331/2285/686 1328/2286/686 +f 1158/2287/688 1223/2288/688 1225/2109/688 1239/2134/688 +f 1281/2289/689 1277/2290/689 1284/2254/689 1283/2253/689 +f 1222/2291/690 1332/2292/690 1331/2285/690 1195/2284/690 +f 1324/2293/691 1215/2294/691 1330/2280/691 1329/2279/691 +f 1202/2295/692 1189/2296/692 1220/2266/692 1217/2265/692 +f 1202/2295/686 1201/2297/686 1190/2298/686 1189/2296/686 +f 1219/2299/686 1309/2300/686 1190/2301/686 1201/2302/686 +f 1316/2303/693 1309/2300/693 1219/2299/693 1333/2304/693 +f 1319/2259/694 1314/2258/694 1316/2303/694 1333/2304/694 +f 1222/2291/695 1315/2305/695 1334/2306/695 1332/2292/695 +f 1335/2307/661 1336/2308/661 1251/2309/661 1177/2310/661 +f 1200/2103/696 1345/2101/696 1219/2100/696 +f 1361/2311/697 1333/2099/697 1345/2101/697 +f 1331/2312/698 1332/2313/698 1341/2314/698 +f 1228/2113/699 1240/2135/699 1339/2315/699 1233/2120/699 +f 1243/2316/700 1246/2317/700 1340/2318/700 1336/2319/700 +f 1266/2178/701 1271/2185/701 1270/2184/701 1267/2179/701 +f 1281/2198/624 1283/2320/624 1287/2321/624 1278/2199/624 +f 1360/2322/702 1341/2314/702 1332/2313/702 +f 1324/2270/703 1338/2073/703 1218/2323/703 1217/2267/703 +f 1162/2324/704 1165/2325/704 1237/2326/704 1171/2327/704 +f 1171/2327/705 1174/2328/705 1335/2329/705 1162/2324/705 +f 1156/2086/706 1193/2064/706 1192/2063/706 1210/2087/706 +f 1209/2330/707 1210/2331/707 1192/2332/707 1213/2333/707 +f 1165/2325/708 1339/2315/708 1240/2135/708 1237/2326/708 +f 1251/2150/709 1264/2175/709 1256/2174/709 1249/2151/709 +f 1255/2155/661 1254/2154/661 1274/2334/661 1266/2335/661 +f 1304/2232/710 1303/2231/710 1334/2306/710 1315/2305/710 +f 1341/2336/711 1342/2337/711 1343/2338/711 1344/2339/711 1345/2340/711 1200/2341/711 1218/2342/711 1338/2343/711 1337/2344/711 +f 1335/2329/661 1174/2328/661 1243/2316/661 1336/2319/661 +f 1239/2134/712 1225/2109/712 1241/2136/712 1231/2117/712 +f 1341/2314/713 1337/2075/713 1331/2312/713 +f 1212/2085/714 1210/2331/714 1209/2330/714 1346/2345/714 +f 1340/2346/715 1325/2271/715 1265/2272/715 1264/2347/715 +f 1258/2168/661 1261/2189/661 1274/2188/661 1254/2169/661 +f 1150/2011/716 1211/2348/716 1155/2349/716 1148/2009/716 +f 1347/2350/717 1348/2351/717 1349/2352/717 1327/2353/717 +f 1347/2350/718 1327/2353/718 1321/2354/718 1350/2355/718 +f 1302/2356/719 1351/2357/719 1303/2358/719 +f 1357/2359/720 1334/2360/720 1303/2358/720 +f 1349/2352/721 1348/2351/721 1351/2357/721 1302/2356/721 +f 1351/2357/722 1357/2359/722 1303/2358/722 +f 1353/2361/723 1350/2355/723 1320/2362/723 +f 1144/2005/689 1143/2004/689 1352/2363/689 1346/2364/689 +f 1352/2365/724 1143/2366/724 1226/2119/724 1232/2118/724 +f 1163/2027/725 1162/2026/725 1335/2307/725 1177/2310/725 +f 1224/2108/726 1235/2123/726 1241/2136/726 1225/2109/726 +f 1152/2013/727 1151/2012/727 1176/2145/727 1175/2144/727 +f 1165/2029/728 1164/2028/728 1242/2137/728 1339/2367/728 +f 1340/2318/729 1246/2317/729 1263/2368/729 1325/2369/729 +f 1325/2369/661 1263/2368/661 1268/2370/661 1280/2371/661 +f 1280/2371/730 1268/2370/730 1277/2290/730 1281/2289/730 +f 1180/2079/731 1204/2096/731 1213/2095/731 1183/2372/731 +f 1157/2373/732 1149/2374/732 1223/2288/732 1158/2287/732 +f 1318/2375/661 1287/2321/661 1283/2320/661 1282/2376/661 +f 1351/2377/733 1348/2378/733 1347/2379/733 1350/2380/733 1353/2381/733 1354/2382/733 1355/2383/733 1356/2384/733 1357/2385/733 +f 1319/2386/734 1358/2387/734 1353/2361/734 +f 1320/2362/735 1319/2386/735 1353/2361/735 +f 1200/2103/736 1201/2102/736 1202/2388/736 +f 1338/2073/737 1324/2270/737 1329/2074/737 +f 1332/2313/738 1334/2360/738 1359/2389/738 1360/2322/738 +f 1333/2099/739 1361/2311/739 1358/2387/739 1319/2386/739 +f 1355/2390/740 1362/2391/740 1363/2392/740 1356/2393/740 +f 1356/2393/741 1363/2392/741 1359/2389/741 1357/2359/741 +f 1354/2394/742 1353/2361/742 1358/2387/742 1364/2395/742 +f 1343/2396/743 1342/2397/743 1365/2398/743 1366/2399/743 +f 1343/2400/744 1366/2401/744 1367/2402/744 1344/2403/744 +f 1344/2403/745 1367/2402/745 1361/2311/745 1345/2101/745 +f 1361/2311/746 1367/2402/746 1364/2395/746 1358/2387/746 +f 1362/2404/747 1364/2395/747 1367/2402/747 1366/2401/747 +f 1362/2391/748 1366/2399/748 1365/2398/748 1363/2392/748 +f 1360/2322/749 1359/2389/749 1363/2392/749 1365/2398/749 +f 1405/2405/750 1495/2406/750 1491/2407/750 1369/2408/750 +f 1184/2054/625 1191/2237/625 1371/2409/625 1186/2056/625 +f 1317/2244/625 1185/2055/625 1187/2057/625 1368/2410/625 +f 1413/2411/751 1494/2412/751 1492/2413/751 1412/2414/751 +f 1408/2415/752 1374/2416/752 1494/2417/752 1413/2418/752 +f 1373/2419/753 1493/2420/753 1372/2421/753 1382/2422/753 +f 1406/2423/754 1496/2424/754 1495/2425/754 1405/2426/754 +f 1395/2427/755 1370/2428/755 1496/2429/755 1406/2430/755 +f 1370/2431/756 1491/2432/756 1495/2425/756 1496/2424/756 +f 1374/2433/681 1493/2434/681 1492/2413/681 1494/2412/681 +f 1375/2435/757 1372/2436/757 1493/2434/757 1374/2433/757 +f 1372/2436/758 1375/2435/758 1491/2432/758 1370/2431/758 +f 1412/2437/759 1492/2438/759 1493/2439/759 1373/2419/759 +f 1369/2408/760 1394/2440/760 1407/2441/760 1405/2405/760 +f 1409/2442/758 1410/2443/758 1394/2440/758 1369/2408/758 +f 1369/2408/761 1491/2444/761 1375/2445/761 1409/2442/761 +f 1382/2422/762 1372/2446/762 1370/2447/762 1395/2427/762 +f 1373/2419/681 1416/2448/681 1417/2449/681 1412/2437/681 +f 1382/2422/763 1385/2450/763 1386/2451/763 1389/2452/763 1390/2453/763 1391/2454/763 1402/2455/763 1403/2456/763 1416/2448/763 1373/2419/763 +f 1409/2442/764 1375/2457/764 1374/2458/764 1408/2415/764 +f 1402/2459/765 1377/2460/765 1376/2461/765 1401/2462/765 +f 1391/2463/766 1392/2464/766 1377/2460/766 1402/2459/766 +f 1401/2462/767 1376/2461/767 1393/2465/767 1400/2466/767 +f 1377/2460/768 1392/2464/768 1393/2465/768 1376/2461/768 +f 1397/2467/769 1378/2468/769 1379/2469/769 1396/2470/769 +f 1396/2470/770 1379/2469/770 1384/2471/770 1385/2472/770 +f 1386/2473/771 1383/2474/771 1378/2468/771 1397/2467/771 +f 1383/2474/772 1384/2471/772 1379/2469/772 1378/2468/772 +f 1399/2475/773 1380/2476/773 1381/2477/773 1398/2478/773 +f 1398/2478/774 1381/2477/774 1388/2479/774 1389/2480/774 +f 1390/2481/775 1387/2482/775 1380/2476/775 1399/2475/775 +f 1387/2482/768 1388/2479/768 1381/2477/768 1380/2476/768 +f 1385/2450/758 1382/2422/758 1395/2427/758 1396/2483/758 +f 1385/2472/776 1384/2471/776 1383/2474/776 1386/2473/776 +f 1389/2452/758 1386/2451/758 1397/2484/758 1398/2485/758 +f 1389/2480/777 1388/2479/777 1387/2482/777 1390/2481/777 +f 1391/2454/758 1390/2453/758 1399/2486/758 1400/2487/758 +f 1400/2466/778 1393/2465/778 1392/2464/778 1391/2463/778 +f 1416/2488/779 1403/2456/779 1404/2489/779 1415/2490/779 +f 1415/2491/780 1404/2489/780 1401/2492/780 1400/2487/780 1399/2486/780 1398/2485/780 1397/2484/780 1396/2483/780 1395/2427/780 1406/2430/780 +f 1404/2489/758 1403/2456/758 1402/2455/758 1401/2492/758 +f 1329/2074/781 1328/2493/781 1337/2075/781 +f 1414/2494/681 1411/2495/681 1408/2415/681 1413/2418/681 +f 1411/2495/782 1410/2443/782 1409/2442/782 1408/2415/782 +f 1417/2496/686 1416/2488/686 1415/2490/686 1419/2497/686 +f 1145/2006/625 1212/2085/625 1420/2498/625 1146/2007/625 +f 1141/2002/628 1421/2499/628 1157/2500/628 1142/2003/628 +f 1421/2499/681 1150/2011/681 1149/2010/681 1157/2500/681 +f 1141/2002/783 1207/2090/783 1206/2091/783 1421/2499/783 +f 1182/2501/689 1181/2502/689 1180/2503/689 1183/2504/689 +f 1181/2502/610 1422/2505/610 1423/2506/610 1180/2503/610 +f 1144/2005/784 1208/2089/784 1207/2088/784 1141/2002/784 +f 1424/2507/785 1425/2508/785 1238/2133/785 1160/2509/785 +f 1232/2510/786 1233/2511/786 1425/2508/786 1424/2512/786 +f 1420/2513/787 1424/2507/787 1160/2509/787 1146/2514/787 +f 1425/2508/788 1242/2137/788 1236/2124/788 1238/2133/788 +f 1154/2032/789 1241/2136/789 1235/2123/789 1167/2033/789 +f 1170/2046/661 1250/2159/661 1248/2158/661 1176/2047/661 +f 1274/2334/790 1276/2515/790 1271/2516/790 1266/2335/790 +f 1301/2256/681 1318/2255/681 1282/2517/681 1292/2518/681 +f 1297/2218/689 1295/2216/689 1294/2215/689 1298/2219/689 +f 1327/2276/661 1307/2275/661 1306/2519/661 1321/2520/661 +f 1349/2521/661 1302/2522/661 1305/2523/661 1312/2524/661 +f 1216/2525/791 1215/2294/791 1324/2293/791 1323/2526/791 +f 1271/2516/681 1276/2515/681 1326/2527/681 1272/2528/681 +f 1216/2525/792 1323/2526/792 1349/2521/792 1312/2524/792 +f 1155/2349/793 1211/2348/793 1197/2083/793 1205/2082/793 +f 1425/2508/794 1233/2511/794 1339/2367/794 1242/2137/794 +f 1251/2309/795 1336/2308/795 1340/2346/795 1264/2347/795 +f 1323/2269/796 1322/2268/796 1327/2353/796 1349/2352/796 +f 1144/2005/797 1346/2364/797 1209/2094/797 1208/2097/797 +f 1150/2011/798 1421/2499/798 1206/2281/798 1211/2282/798 +f 1212/2085/624 1346/2345/624 1352/2529/624 1420/2498/624 +f 1352/2530/799 1232/2510/799 1424/2512/799 1420/2531/799 +f 1184/2062/800 1183/2532/800 1213/2333/800 1192/2332/800 +f 1355/2533/801 1354/2394/801 1364/2395/801 1362/2404/801 +f 1342/2397/802 1341/2314/802 1360/2322/802 1365/2398/802 +f 1179/2066/610 1427/2534/610 1426/2535/610 1178/2067/610 +f 1180/2503/610 1423/2506/610 1427/2534/610 1179/2066/610 +f 1178/2067/610 1426/2535/610 1422/2505/610 1181/2502/610 +f 1407/2536/661 1411/2537/661 1414/2538/661 1418/2539/661 +f 1311/2540/686 1428/2541/686 1429/2542/686 1430/2543/686 1431/2544/686 1432/2545/686 1433/2546/686 1434/2547/686 +f 1181/2502/803 1182/2501/803 1430/2548/803 1429/2549/803 +f 1214/2060/804 1216/2234/804 1312/2249/804 +f 1215/2236/805 1199/2235/805 1330/2550/805 +f 1182/2052/806 1185/2055/806 1431/2551/806 1430/2552/806 +f 1308/2241/807 1214/2060/807 1434/2553/807 1433/2554/807 +f 1178/2067/808 1181/2502/808 1429/2555/808 1428/2556/808 +f 1185/2055/809 1317/2244/809 1432/2557/809 1431/2558/809 +f 1178/2067/810 1428/2559/810 1311/2560/810 1310/2245/810 +f 1330/2550/681 1199/2235/681 1194/2104/681 1196/2105/681 +f 1297/2561/661 1326/2274/661 1289/2273/661 1295/2562/661 +f 1326/2527/661 1297/2563/661 1300/2564/661 1272/2528/661 +f 1272/2186/661 1300/2565/661 1285/2566/661 1273/2187/661 +f 1273/2202/661 1285/2567/661 1286/2568/661 1284/2203/661 +f 1296/2569/661 1288/2205/661 1287/2204/661 1318/2570/661 +f 1288/2206/661 1296/2571/661 1295/2572/661 1289/2207/661 +f 1447/2573/661 1435/2574/661 1442/2575/661 1443/2576/661 +f 1411/2537/811 1407/2536/811 1394/2440/811 1410/2443/811 +f 1304/2248/628 1178/2067/628 1310/2245/628 1305/2250/628 +f 1199/2235/612 1189/2577/612 1190/2239/612 1188/2238/612 +f 1189/2577/812 1199/2235/812 1220/2578/812 +f 1309/2240/611 1316/2579/611 1191/2237/611 +f 1316/2579/611 1314/2580/611 1317/2244/611 1191/2237/611 +f 1317/2244/611 1314/2580/611 1313/2581/611 +f 1313/2581/611 1306/2582/611 1308/2241/611 1317/2244/611 +f 1214/2060/813 1221/2059/813 1220/2578/813 1199/2235/813 +f 1214/2060/612 1308/2241/612 1306/2582/612 1307/2058/612 +f 1368/2410/625 1371/2409/625 1191/2237/625 1317/2244/625 +f 1437/2583/686 1436/2584/686 1438/2585/686 1439/2586/686 +f 1443/2587/814 1444/2588/814 1445/2589/814 1446/2590/814 +f 1442/2591/612 1441/2592/612 1444/2588/612 1443/2587/612 +f 1436/2593/689 1435/2594/689 1447/2595/689 1448/2596/689 1449/2597/689 1438/2598/689 +f 1450/2599/815 1451/2600/815 1452/2601/815 1453/2602/815 +f 1438/2598/816 1449/2597/816 1454/2603/816 1455/2604/816 1456/2605/816 1457/2606/816 1458/2607/816 1459/2608/816 1451/2600/816 1450/2599/816 +f 1439/2586/817 1438/2585/817 1450/2599/817 1453/2602/817 +f 1459/2609/818 1461/2610/818 1462/2611/818 1463/2612/818 +f 1461/2613/815 1459/2608/815 1458/2607/815 1464/2614/815 +f 1465/2615/819 1464/2616/819 1466/2617/819 1467/2618/819 +f 1465/2619/815 1457/2606/815 1456/2605/815 1468/2620/815 +f 1469/2621/820 1468/2622/820 1470/2623/820 1471/2624/820 +f 1469/2625/815 1455/2604/815 1454/2603/815 1472/2626/815 +f 1466/2617/821 1473/2627/821 1474/2628/821 1467/2618/821 +f 1464/2616/822 1458/2629/822 1473/2627/822 1466/2617/822 +f 1457/2630/823 1465/2615/823 1467/2618/823 1474/2628/823 +f 1458/2629/824 1457/2630/824 1474/2628/824 1473/2627/824 +f 1470/2623/825 1475/2631/825 1476/2632/825 1471/2624/825 +f 1468/2622/826 1456/2633/826 1475/2631/826 1470/2623/826 +f 1455/2634/827 1469/2621/827 1471/2624/827 1476/2632/827 +f 1456/2633/828 1455/2634/828 1476/2632/828 1475/2631/828 +f 1477/2635/821 1478/2636/821 1463/2612/821 1462/2611/821 +f 1451/2637/829 1459/2609/829 1463/2612/829 1478/2636/829 +f 1461/2610/830 1452/2638/830 1477/2635/830 1462/2611/830 +f 1452/2638/831 1451/2637/831 1478/2636/831 1477/2635/831 +f 1445/2589/832 1444/2588/832 1479/2639/832 1480/2640/832 +f 1472/2626/833 1481/2641/833 1439/2642/833 1453/2602/833 1452/2601/833 1461/2613/833 1464/2614/833 1465/2619/833 1468/2620/833 1469/2625/833 +f 1481/2641/612 1440/2643/612 1437/2644/612 1439/2642/612 +f 1472/2626/834 1454/2603/834 1482/2645/834 1483/2646/834 +f 1484/2647/835 1445/2589/835 1480/2648/835 1485/2649/835 +f 1445/2589/815 1484/2647/815 1460/2650/815 1446/2590/815 +f 1484/2647/836 1448/2596/836 1447/2595/836 1460/2650/836 +f 1440/2643/837 1481/2641/837 1486/2651/837 1487/2652/837 +f 1483/2653/815 1482/2654/815 1485/2655/815 1480/2656/815 +f 1480/2656/838 1479/2657/838 1486/2658/838 1483/2653/838 +f 1479/2657/612 1488/2659/612 1487/2660/612 1486/2658/612 +f 1482/2654/839 1489/2661/839 1490/2662/839 1485/2655/839 +f 1454/2603/840 1449/2597/840 1489/2663/840 1482/2664/840 +f 1449/2665/841 1448/2666/841 1490/2662/841 1489/2661/841 +f 1481/2641/842 1472/2626/842 1483/2667/842 1486/2668/842 +f 1444/2588/843 1441/2592/843 1488/2669/843 1479/2670/843 +f 1441/2671/844 1440/2672/844 1487/2660/844 1488/2659/844 +f 1448/2596/845 1484/2647/845 1485/2673/845 1490/2674/845 +f 1443/2576/846 1446/2590/846 1460/2650/846 1447/2573/846 +f 1337/2075/625 1328/2493/625 1331/2312/625 +f 1406/2430/624 1405/2405/624 1407/2441/624 1418/2675/624 1419/2676/624 1415/2491/624 +f 1218/2323/847 1200/2103/847 1202/2388/847 +f 1202/2388/848 1217/2267/848 1218/2323/848 +f 1357/2359/849 1359/2389/849 1334/2360/849 +f 1350/2355/850 1321/2354/850 1320/2362/850 From 30dee77dae28f82f798db5e59ee3b498f61ee5c1 Mon Sep 17 00:00:00 2001 From: UFFR Date: Thu, 8 Jun 2023 20:08:15 -0400 Subject: [PATCH 097/432] =?UTF-8?q?=F0=9F=85=B1=EF=B8=8Fesh=20gaming?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The ultimate alloy --- src/main/java/com/hbm/items/ModItems.java | 15 +++++++++++++++ src/main/java/com/hbm/main/CraftingManager.java | 5 +++++ src/main/resources/assets/hbm/lang/en_US.lang | 4 ++++ 3 files changed, 24 insertions(+) diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index e4b0ec747..35b9cb0d5 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -765,6 +765,11 @@ public class ModItems { public static Item stamp_9; public static Item stamp_50; + public static Item stamp_desh_357; + public static Item stamp_desh_44; + public static Item stamp_desh_9; + public static Item stamp_desh_50; + public static Item blades_steel; public static Item blades_titanium; public static Item blades_advanced_alloy; @@ -3224,6 +3229,11 @@ public class ModItems { stamp_9 = new ItemStamp(1000, StampType.C9).setUnlocalizedName("stamp_9").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_9"); stamp_50 = new ItemStamp(1000, StampType.C50).setUnlocalizedName("stamp_50").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_50"); + stamp_desh_357 = new ItemStamp(0, StampType.C357).setUnlocalizedName("stamp_desh_357").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_357_desh"); + stamp_desh_44 = new ItemStamp(0, StampType.C44).setUnlocalizedName("stamp_desh_44").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_44_desh"); + stamp_desh_9 = new ItemStamp(0, StampType.C9).setUnlocalizedName("stamp_desh_9").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_9_desh"); + stamp_desh_50 = new ItemStamp(0, StampType.C50).setUnlocalizedName("stamp_desh_50").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_50_desh"); + blades_steel = new ItemBlades(200).setUnlocalizedName("blades_steel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":blades_steel"); blades_titanium = new ItemBlades(350).setUnlocalizedName("blades_titanium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":blades_titanium"); blades_advanced_alloy = new ItemBlades(700).setUnlocalizedName("blades_advanced_alloy").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":blades_advanced_alloy"); @@ -6386,6 +6396,11 @@ public class ModItems { GameRegistry.registerItem(stamp_44, stamp_44.getUnlocalizedName()); GameRegistry.registerItem(stamp_9, stamp_9.getUnlocalizedName()); GameRegistry.registerItem(stamp_50, stamp_50.getUnlocalizedName()); + + GameRegistry.registerItem(stamp_desh_357, stamp_desh_357.getUnlocalizedName()); + GameRegistry.registerItem(stamp_desh_44, stamp_desh_44.getUnlocalizedName()); + GameRegistry.registerItem(stamp_desh_9, stamp_desh_9.getUnlocalizedName()); + GameRegistry.registerItem(stamp_desh_50, stamp_desh_50.getUnlocalizedName()); //Molds GameRegistry.registerItem(mold_base, mold_base.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 99ca2d9be..0e1c20035 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -482,6 +482,11 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.stamp_9, 1), new Object[] { "RSR", "III", " C ", 'R', REDSTONE.dust(), 'S', ModItems.stamp_iron_flat, 'I', ModItems.plate_polymer, 'C', ModItems.casing_9 }); addRecipeAuto(new ItemStack(ModItems.stamp_50, 1), new Object[] { "RSR", "III", " C ", 'R', REDSTONE.dust(), 'S', ModItems.stamp_iron_flat, 'I', ModItems.plate_polymer, 'C', ModItems.casing_50 }); + addRecipeAuto(new ItemStack(ModItems.stamp_desh_357, 1), new Object[] { "RSR", "III", " C ", 'R', ModItems.ingot_dura_steel, 'S', ModItems.stamp_desh_flat, 'I', ModItems.ingot_saturnite, 'C', ModItems.casing_357 }); + addRecipeAuto(new ItemStack(ModItems.stamp_desh_44, 1), new Object[] { "RSR", "III", " C ", 'R', ModItems.ingot_dura_steel, 'S', ModItems.stamp_desh_flat, 'I', ModItems.ingot_saturnite, 'C', ModItems.casing_44 }); + addRecipeAuto(new ItemStack(ModItems.stamp_desh_9, 1), new Object[] { "RSR", "III", " C ", 'R', ModItems.ingot_dura_steel, 'S', ModItems.stamp_desh_flat, 'I', ModItems.ingot_saturnite, 'C', ModItems.casing_9 }); + addRecipeAuto(new ItemStack(ModItems.stamp_desh_50, 1), new Object[] { "RSR", "III", " C ", 'R', ModItems.ingot_dura_steel, 'S', ModItems.stamp_desh_flat, 'I', ModItems.ingot_saturnite, 'C', ModItems.casing_50 }); + addRecipeAuto(new ItemStack(ModBlocks.sat_dock, 1), new Object[] { "SSS", "PCP", 'S', STEEL.ingot(), 'P', ANY_PLASTIC.ingot(), 'C', ModBlocks.crate_iron }); addRecipeAuto(new ItemStack(ModBlocks.book_guide, 1), new Object[] { "IBI", "LBL", "IBI", 'B', Items.book, 'I', KEY_BLACK, 'L', KEY_BLUE }); diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 40758ba0d..a0519159d 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -3854,6 +3854,10 @@ item.stamp_desh_circuit.name=Circuit Stamp (Desh) item.stamp_desh_flat.name=Flat Stamp (Desh) item.stamp_desh_plate.name=Plate Stamp (Desh) item.stamp_desh_wire.name=Wire Stamp (Desh) +item.stamp_desh_357.name=.357 Magnum Stamp (Desh) +item.stamp_desh_44.name=.44 Magnum Stamp (Desh) +item.stamp_desh_50.name=Large Caliber Stamp (Desh) +item.stamp_desh_9.name=Small Caliber Stamp (Desh) item.stamp_iron_circuit.name=Circuit Stamp (Iron) item.stamp_iron_flat.name=Flat Stamp (Iron) item.stamp_iron_plate.name=Plate Stamp (Iron) From 3ecc74f6db1b9aa17cf94d65f00af468059d4a16 Mon Sep 17 00:00:00 2001 From: Vaern Date: Thu, 8 Jun 2023 23:29:25 -0700 Subject: [PATCH 098/432] reactor room, meta pain --- .../world/gen/component/BunkerComponents.java | 212 +++++++++++++++++- .../hbm/world/gen/component/Component.java | 38 +++- 2 files changed, 243 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/hbm/world/gen/component/BunkerComponents.java b/src/main/java/com/hbm/world/gen/component/BunkerComponents.java index 2f14105b6..d23b1f733 100644 --- a/src/main/java/com/hbm/world/gen/component/BunkerComponents.java +++ b/src/main/java/com/hbm/world/gen/component/BunkerComponents.java @@ -35,6 +35,7 @@ public class BunkerComponents { new Weight(10, 3, FunJunction::findValidPlacement), new Weight(5, 2, BathroomL::findValidPlacement), new Weight(7, 2, Laboratory::findValidPlacement), + new Weight(5, 1, PowerRoom::findValidPlacement), }; StructureComponent starter = new StartingHub(rand, x, z); @@ -53,6 +54,7 @@ public class BunkerComponents { MapGenStructureIO.func_143031_a(FunJunction.class, "NTMBFunJunction"); MapGenStructureIO.func_143031_a(BathroomL.class, "NTMBBathroomL"); MapGenStructureIO.func_143031_a(Laboratory.class, "NTMBLaboratory"); + MapGenStructureIO.func_143031_a(PowerRoom.class, "NTMBPowerRoom"); //TODO more rooms for more variety } @@ -483,7 +485,7 @@ public class BunkerComponents { placeBlockAtCurrentPosition(world, ModBlocks.deco_tungsten, 0, 6, 1, 9, box); placeBlockAtCurrentPosition(world, ModBlocks.tape_recorder, getDecoMeta(4), 6, 2, 9, box); fillWithBlocks(world, box, 6, 3, 8, 6, 3, 9, ModBlocks.concrete_slab); - placeBlockAtCurrentPosition(world, Blocks.lever, getDecoMeta(2), 5, 1, 9, box); //double-check meta + placeLever(world, box, 2, rand.nextBoolean(), 5, 1, 9); //doors placeDoor(world, box, ModBlocks.door_bunker, 1, true, rand.nextBoolean(), 4, 1, 0); placeDoor(world, box, ModBlocks.door_bunker, 1, false, rand.nextBoolean(), 5, 1, 0); @@ -565,10 +567,10 @@ public class BunkerComponents { //hand-dryers (industrial-strength) placeBlockAtCurrentPosition(world, ModBlocks.steel_beam, 3, 4, 1, 9, box); placeBlockAtCurrentPosition(world, ModBlocks.fan, getDecoMeta(2), 4, 2, 9, box); - placeBlockAtCurrentPosition(world, Blocks.stone_button, 2, 3, 2, 9, box); //TODO button meta + placeBlockAtCurrentPosition(world, Blocks.stone_button, getButtonMeta(2), 3, 2, 9, box); //TODO button meta placeBlockAtCurrentPosition(world, ModBlocks.steel_beam, 3, 6, 1, 9, box); placeBlockAtCurrentPosition(world, ModBlocks.fan, getDecoMeta(2), 6, 2, 9, box); - placeBlockAtCurrentPosition(world, Blocks.stone_button, 1, 7, 2, 9, box); + placeBlockAtCurrentPosition(world, Blocks.stone_button, getButtonMeta(1), 7, 2, 9, box); //stalls w/ toilets for(int i = 1; i <= 5; i += 2) { placeDoor(world, box, ModBlocks.door_metal, 0, false, rand.nextBoolean(), 5, 1, i); @@ -689,7 +691,7 @@ public class BunkerComponents { placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaW | 4, 7, 1, 3, box); placeBlockAtCurrentPosition(world, ModBlocks.deco_red_copper, 0, 7, 2, 3, box); placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaW, 7, 3, 3, box); - placeBlockAtCurrentPosition(world, Blocks.lever, 2, 6, 2, 3, box); //TODO lever meta + placeLever(world, box, 2, rand.nextBoolean(), 6, 2, 3); fillWithMetadataBlocks(world, box, 7, 1, 4, 7, 2, 4, ModBlocks.steel_poles, decoMetaE); placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 7, 3, 4, box); placeBlockAtCurrentPosition(world, ModBlocks.deco_tungsten, 0, 7, 1, 5, box); @@ -715,4 +717,206 @@ public class BunkerComponents { return box.minY > 10 && StructureComponent.findIntersecting(components, box) == null ? new Laboratory(type, box, coordMode) : null; } } + + public static class PowerRoom extends Component implements ProceduralComponent { + + private boolean path; + + private int powerType; + + public PowerRoom() { } + + public PowerRoom(int componentType, StructureBoundingBox box, int coordMode, Random rand) { + super(componentType); + this.boundingBox = box; + this.coordBaseMode = coordMode; + + float chance = rand.nextFloat(); + powerType = chance < 0.2 ? 2 : chance < 0.6 ? 1 : 0; + } + + /** write to nbt */ + @Override + protected void func_143012_a(NBTTagCompound nbt) { + super.func_143012_a(nbt); + nbt.setBoolean("p", path); + } + + /** read from nbt */ + @Override + protected void func_143011_b(NBTTagCompound nbt) { + super.func_143011_b(nbt); + path = nbt.getBoolean("p"); + } + + @Override + public void buildComponent(ProceduralStructureStart start, Random rand) { + path = this.getNextComponentEast(start, this, coordBaseMode, rand, 4, 1) != null; + } + + @Override + public boolean addComponentParts(World world, Random rand, StructureBoundingBox box) { + + fillWithAir(world, box, 1, 1, 1, 10, 3, 10); + //floor + fillWithMetadataBlocks(world, box, 1, 0, 1, 10, 0, 10, ModBlocks.vinyl_tile, 1); + //ceiling + fillWithBlocks(world, box, 1, 4, 1, 10, 4, 10, ModBlocks.vinyl_tile); + //upper shield + fillWithBlocks(world, box, 0, 5, 0, 11, 5, 11, ModBlocks.reinforced_stone); + //walls + fillWithRandomizedBlocks(world, box, 0, 0, 0, 11, 4, 0, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 0, 0, 1, 0, 4, 10, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 0, 0, 11, 11, 4, 11, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 11, 0, 1, 11, 4, 10, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 5, 1, 1, 5, 3, 6, rand, ConcreteBricks); + fillWithRandomizedBlocks(world, box, 6, 1, 6, 10, 3, 6, rand, ConcreteBricks); + + /* DECO */ + //lamps + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_lamp_off, 0, 3, 5, 2, box); + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_lamp_off, 0, 3, 5, 5, box); + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_lamp_off, 0, 3, 5, 8, box); + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_lamp_off, 0, 6, 5, 8, box); + placeBlockAtCurrentPosition(world, ModBlocks.reinforced_lamp_off, 0, 9, 5, 8, box); + placeBlockAtCurrentPosition(world, ModBlocks.fan, 0, 3, 4, 2, box); + placeBlockAtCurrentPosition(world, ModBlocks.fan, 0, 3, 4, 5, box); + placeBlockAtCurrentPosition(world, ModBlocks.fan, 0, 3, 4, 8, box); + placeBlockAtCurrentPosition(world, ModBlocks.fan, 0, 6, 4, 8, box); + placeBlockAtCurrentPosition(world, ModBlocks.fan, 0, 9, 4, 8, box); + //power room stuff + fillWithBlocks(world, box, 7, 2, 6, 9, 2, 6, ModBlocks.reinforced_glass); + int decoMetaE = getDecoMeta(5); + int decoMetaW = getDecoMeta(4); + int decoMetaN = getDecoMeta(3); + int decoMetaS = getDecoMeta(2); + + int stairMetaS = getStairMeta(3); + int stairMetaN = getStairMeta(2); + int stairMetaW = getStairMeta(1); + int stairMetaE = getStairMeta(0); + + switch(this.powerType) { + default: + fillWithBlocks(world, box, 6, 1, 1, 6, 3, 1, ModBlocks.deco_pipe_framed_rusted); + for(int i = 7; i <= 9; i += 2) { + placeBlockAtCurrentPosition(world, ModBlocks.machine_coal_off, decoMetaN, i, 1, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.steel_beam, 2, i, 2, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.machine_coal_off, decoMetaN, i, 3, 1, box); + } + placeBlockAtCurrentPosition(world, ModBlocks.deco_red_copper, 0, 8, 1, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 5, 8, 2, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_red_copper, 0, 8, 3, 1, box); + placeLever(world, box, 3, rand.nextBoolean(), 8, 2, 2); + for(int i = 1; i <= 3; i += 2) { + placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 10, i, 1, box); + fillWithMetadataBlocks(world, box, 10, i, 2, 10, i, 4, ModBlocks.deco_pipe_quad_rusted, getPillarMeta(8)); + placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 10, i, 5, box); + } + placeBlockAtCurrentPosition(world, ModBlocks.deco_pipe_framed_rusted, 0, 10, 2, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.fluid_duct_gauge, decoMetaW, 10, 2, 5, box); + placeBlockAtCurrentPosition(world, ModBlocks.barrel_plastic, 0, 6, 1, 5, box); + //chests + generateInvContents(world, box, rand, Blocks.chest, decoMetaS, 7, 1, 5, HbmChestContents.antenna, 4); //WIP + generateInvContents(world, box, rand, Blocks.chest, decoMetaS, 9, 1, 5, HbmChestContents.antenna, 4); + break; + case 1: + placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 5, 6, 1, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.cable_detector, 0, 6, 2, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 5, 6, 3, 1, box); + placeLever(world, box, 3, false, 6, 2, 2); + for(int i = 7; i <= 9; i += 2) { + placeBlockAtCurrentPosition(world, ModBlocks.steel_scaffold, 8, i, 1, 1, box); //i'm not making another fucking meta method + placeBlockAtCurrentPosition(world, ModBlocks.machine_diesel, decoMetaE, i, 2, 1, box); + } + placeBlockAtCurrentPosition(world, ModBlocks.deco_pipe_rim_rusted, getPillarMeta(4), 8, 2, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_pipe_rim_rusted, getPillarMeta(4), 8, 2, 1, box); + fillWithMetadataBlocks(world, box, 7, 3, 1, 9, 3, 1, ModBlocks.concrete_smooth_stairs, stairMetaS); + fillWithBlocks(world, box, 10, 1, 1, 10, 1, 3, ModBlocks.deco_steel); + placeBlockAtCurrentPosition(world, ModBlocks.deco_red_copper, 0, 10, 2, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 10, 3, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.steel_grate, 7, 10, 2, 2, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(2), 10, 3, 2, box); + fillWithMetadataBlocks(world, box, 10, 2, 3, 10, 3, 3, ModBlocks.tape_recorder, decoMetaW); + fillWithMetadataBlocks(world, box, 9, 1, 2, 9, 1, 3, ModBlocks.steel_grate, 7); + fillWithBlocks(world, box, 9, 1, 5, 10, 1, 5, ModBlocks.barrel_iron); + placeBlockAtCurrentPosition(world, ModBlocks.barrel_iron, 0, 10, 2, 5, box); + fillWithBlocks(world, box, 6, 1, 5, 6, 2, 5, ModBlocks.barrel_iron); + placeBlockAtCurrentPosition(world, ModBlocks.barrel_iron, 0, 6, 1, 2, box); + break; + case 2: + for(int i = 7; i <= 9; i += 2) { + fillWithBlocks(world, box, i, 1, 2, i, 1, 4, ModBlocks.deco_lead); + fillWithBlocks(world, box, i, 2, 2, i, 2, 4, ModBlocks.block_lead); + fillWithBlocks(world, box, i, 3, 2, i, 3, 4, ModBlocks.deco_lead); + } + placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 5, 8, 1, 4, box); + placeBlockAtCurrentPosition(world, ModBlocks.reactor_computer, 0, 8, 2, 4, box); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 5, 8, 3, 4, box); + placeLever(world, box, 3, rand.nextBoolean(), 8, 2, 5); + placeBlockAtCurrentPosition(world, ModBlocks.reactor_element, 0, 8, 1, 3, box); + placeBlockAtCurrentPosition(world, ModBlocks.reactor_control, 0, 8, 2, 3, box); + placeBlockAtCurrentPosition(world, ModBlocks.reactor_element, 0, 8, 3, 3, box); + placeBlockAtCurrentPosition(world, ModBlocks.block_copper, 0, 8, 1, 2, box); + placeBlockAtCurrentPosition(world, ModBlocks.block_lead, 0, 8, 2, 2, box); + placeBlockAtCurrentPosition(world, ModBlocks.block_copper, 0, 8, 3, 2, box); + placeBlockAtCurrentPosition(world, ModBlocks.reactor_conductor, 0, 8, 1, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.machine_turbine, 0, 8, 2, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.reactor_conductor, 0, 8, 3, 1, box); + fillWithBlocks(world, box, 9, 1, 1, 9, 3, 1, ModBlocks.deco_steel); + placeBlockAtCurrentPosition(world, ModBlocks.steel_grate, 7, 10, 1, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(1), 10, 2, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.tape_recorder, decoMetaN, 10, 3, 1, box); + fillWithMetadataBlocks(world, box, 6, 1, 1, 7, 1, 1, ModBlocks.deco_pipe_quad_rusted, getPillarMeta(4)); + placeBlockAtCurrentPosition(world, ModBlocks.deco_pipe_quad_rusted, getPillarMeta(4), 7, 3, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.fluid_duct_gauge, decoMetaN, 6, 3, 1, box); + //chest + generateInvContents(world, box, rand, Blocks.chest, decoMetaN, 6, 1, 2, HbmChestContents.antenna, 4); //WIP + break; + } + //transformer + fillWithMetadataBlocks(world, box, 1, 1, 1, 1, 1, 5, ModBlocks.concrete_smooth_stairs, stairMetaW | 4); + fillWithBlocks(world, box, 1, 1, 6, 1, 3, 6, ModBlocks.concrete_pillar); + fillWithMetadataBlocks(world, box, 1, 3, 1, 1, 3, 5, ModBlocks.concrete_smooth_stairs, stairMetaW); + placeBlockAtCurrentPosition(world, ModBlocks.machine_transformer_20, 0, 1, 2, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.cable_diode, decoMetaN, 1, 2, 2, box); + placeBlockAtCurrentPosition(world, ModBlocks.machine_battery, decoMetaE, 1, 2, 3, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_red_copper, 0, 1, 2, 4, box); + placeBlockAtCurrentPosition(world, ModBlocks.cable_switch, 0, 1, 2, 5, box); + //machine + for(int i = 1; i <= 5; i += 4) { + placeBlockAtCurrentPosition(world, ModBlocks.deco_beryllium, 0, i, 1, 10, box); + placeBlockAtCurrentPosition(world, ModBlocks.steel_scaffold, 0, i, 2, 10, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_beryllium, 0, i, 3, 10, box); + } + placeBlockAtCurrentPosition(world, ModBlocks.steel_scaffold, 0, 2, 1, 10, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_tungsten, 0, 3, 1, 10, box); + placeBlockAtCurrentPosition(world, ModBlocks.steel_scaffold, 0, 4, 1, 10, box); + placeBlockAtCurrentPosition(world, ModBlocks.tape_recorder, decoMetaS, 2, 2, 10, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(0), 3, 2, 10, box); + placeBlockAtCurrentPosition(world, ModBlocks.tape_recorder, decoMetaS, 4, 2, 10, box); + fillWithMetadataBlocks(world, box, 2, 3, 10, 4, 3, 10, ModBlocks.tape_recorder, decoMetaS); + //desk + fillWithMetadataBlocks(world, box, 8, 1, 10, 10, 1, 10, ModBlocks.concrete_smooth_stairs, stairMetaN | 4); + placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaE | 4, 10, 1, 9, box); + placeBlockAtCurrentPosition(world, Blocks.oak_stairs,stairMetaS, 9, 1, 9, box); + placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, 8, 2, 10, box); + placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(0), 9, 2, 10, box); + //loot + generateInvContents(world, box, rand, Blocks.chest, decoMetaE, 1, 1, 7, HbmChestContents.antenna, 4); //WIP + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 7, 1, 10, HbmChestContents.antenna, 4); + //doors + placeDoor(world, box, ModBlocks.door_bunker, 1, true, rand.nextBoolean(), 3, 1, 0); + placeDoor(world, box, ModBlocks.door_bunker, 1, false, rand.nextBoolean(), 4, 1, 0); + placeDoor(world, box, ModBlocks.door_bunker, 0, false, false, 5, 1, 3); + if(path) fillWithAir(world, box, 11, 1, 7, 11, 2, 8); + + return true; + } + + public static StructureComponent findValidPlacement(List components, Random rand, int x, int y, int z, int coordMode, int type) { + StructureBoundingBox box = ProceduralStructureStart.getComponentToAddBoundingBox(x, y, z, -4, -1, 0, 12, 6, 12, coordMode); + return box.minY > 10 && StructureComponent.findIntersecting(components, box) == null ? new PowerRoom(type, box, coordMode, rand) : null; + } + } } diff --git a/src/main/java/com/hbm/world/gen/component/Component.java b/src/main/java/com/hbm/world/gen/component/Component.java index eb42dc9b7..73a1ce5f8 100644 --- a/src/main/java/com/hbm/world/gen/component/Component.java +++ b/src/main/java/com/hbm/world/gen/component/Component.java @@ -268,7 +268,7 @@ abstract public class Component extends StructureComponent { case 2: //North dirMeta ^= 2; break; //Flip second bit case 3: //East - dirMeta = (dirMeta - 1) % 4; break; + dirMeta = Math.abs(dirMeta - 1) % 4; break; //fuck you modulo } //hee hoo @@ -280,7 +280,7 @@ abstract public class Component extends StructureComponent { world.setBlock(posX, posY + 1, posZ, door, metaTop, 2); } } - + /** 1 for west face, 2 for east face, 3 for north, 4 for south*/ protected void placeLever(World world, StructureBoundingBox box, int dirMeta, boolean on, int featureX, int featureY, int featureZ) { int posX = this.getXWithOffset(featureX, featureZ); int posY = this.getYWithOffset(featureY); @@ -288,7 +288,39 @@ abstract public class Component extends StructureComponent { if(!box.isVecInside(posX, posY, posZ)) return; - //levers suck ass + if(dirMeta <= 0 || dirMeta >= 7) { //levers suck ass + switch(this.coordBaseMode) { + case 1: case 3: //west / east + dirMeta ^= 0b111; + } + } else if(dirMeta >= 5) { + switch(this.coordBaseMode) { + case 1: case 3: //west / east + dirMeta = (dirMeta + 1) % 2 + 5; + } + } else { + dirMeta = getButtonMeta(dirMeta); + } + + world.setBlock(posX, posY, posZ, Blocks.lever, on ? dirMeta | 8 : dirMeta, 2); + } + + /** pain. works for side-facing levers as well */ + protected int getButtonMeta(int dirMeta) { + switch(this.coordBaseMode) { //are you ready for the pain? + case 1: //West + if(dirMeta <= 2) return dirMeta + 2; + else if(dirMeta < 4) return dirMeta - 1; + else return dirMeta - 3;// this shit sucks ass + case 2: //North + return dirMeta + (dirMeta % 2 == 0 ? -1 : 1); + case 3: //East + if(dirMeta <= 1) return dirMeta + 3; + else if(dirMeta <= 2) return dirMeta + 1; + else return dirMeta - 2; + default: //South + return dirMeta; + } } /**N:0 W:1 S:2 E:3 */ From 31e5caa2dbffffba491049181f3ad2fe4f6e2a77 Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 9 Jun 2023 11:35:02 +0200 Subject: [PATCH 099/432] capacitor blocks --- src/main/java/com/hbm/blocks/ModBlocks.java | 18 +- .../hbm/blocks/machine/MachineCapacitor.java | 233 ++++++++++++++++++ .../blocks/machine/MachineCapacitorBus.java | 50 ++++ src/main/java/com/hbm/main/ClientProxy.java | 1 + .../java/com/hbm/main/ResourceManager.java | 1 + .../com/hbm/render/block/RenderCapacitor.java | 89 +++++++ .../assets/hbm/models/blocks/capacitor.obj | 128 ++++++++++ .../hbm/textures/blocks/capacitor_bus_out.png | Bin 0 -> 195 bytes .../textures/blocks/capacitor_bus_side.png | Bin 0 -> 187 bytes .../blocks/capacitor_copper_bottom.png | Bin 0 -> 612 bytes .../blocks/capacitor_copper_inner_side.png | Bin 0 -> 177 bytes .../blocks/capacitor_copper_inner_top.png | Bin 0 -> 276 bytes .../textures/blocks/capacitor_copper_side.png | Bin 0 -> 379 bytes .../textures/blocks/capacitor_copper_top.png | Bin 0 -> 228 bytes 14 files changed, 515 insertions(+), 5 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/machine/MachineCapacitor.java create mode 100644 src/main/java/com/hbm/blocks/machine/MachineCapacitorBus.java create mode 100644 src/main/java/com/hbm/render/block/RenderCapacitor.java create mode 100644 src/main/resources/assets/hbm/models/blocks/capacitor.obj create mode 100644 src/main/resources/assets/hbm/textures/blocks/capacitor_bus_out.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/capacitor_bus_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/capacitor_copper_bottom.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/capacitor_copper_inner_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/capacitor_copper_inner_top.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/capacitor_copper_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/capacitor_copper_top.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 75e59d0a7..0d2b78975 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -756,6 +756,9 @@ public class ModBlocks { public static Block machine_dineutronium_battery; public static Block machine_fensu; public static final int guiID_machine_fensu = 99; + + public static Block capacitor_bus; + public static Block capacitor_copper; public static Block machine_coal_off; public static Block machine_coal_on; @@ -1872,13 +1875,16 @@ public class ModBlocks { //machine_deuterium = new MachineDeuterium(Material.iron).setBlockName("machine_deuterium").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - machine_battery_potato = new MachineBattery(Material.iron, 10000).setBlockName("machine_battery_potato").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - machine_battery = new MachineBattery(Material.iron, 1000000).setBlockName("machine_battery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - machine_lithium_battery = new MachineBattery(Material.iron, 50000000).setBlockName("machine_lithium_battery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - machine_schrabidium_battery = new MachineBattery(Material.iron, 25000000000L).setBlockName("machine_schrabidium_battery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - machine_dineutronium_battery = new MachineBattery(Material.iron, 1000000000000L).setBlockName("machine_dineutronium_battery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + machine_battery_potato = new MachineBattery(Material.iron, 10_000).setBlockName("machine_battery_potato").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + machine_battery = new MachineBattery(Material.iron, 1_000_000).setBlockName("machine_battery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + machine_lithium_battery = new MachineBattery(Material.iron, 50_000_000).setBlockName("machine_lithium_battery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + machine_schrabidium_battery = new MachineBattery(Material.iron, 25_000_000_000L).setBlockName("machine_schrabidium_battery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + machine_dineutronium_battery = new MachineBattery(Material.iron, 1_000_000_000_000L).setBlockName("machine_dineutronium_battery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); machine_fensu = new MachineFENSU(Material.iron).setBlockName("machine_fensu").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_fensu"); + capacitor_bus = new MachineCapacitorBus(Material.iron).setBlockName("capacitor_bus").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + capacitor_copper = new MachineCapacitor(Material.iron, 1_000_000L).setBlockName("capacitor_copper").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_copper"); + machine_coal_off = new MachineCoal(false).setBlockName("machine_coal_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); machine_coal_on = new MachineCoal(true).setBlockName("machine_coal_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F); @@ -3192,6 +3198,8 @@ public class ModBlocks { register(machine_schrabidium_battery); register(machine_dineutronium_battery); register(machine_fensu); + register(capacitor_bus); + register(capacitor_copper); GameRegistry.registerBlock(machine_transformer, machine_transformer.getUnlocalizedName()); GameRegistry.registerBlock(machine_transformer_20, machine_transformer_20.getUnlocalizedName()); GameRegistry.registerBlock(machine_transformer_dnt, machine_transformer_dnt.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/machine/MachineCapacitor.java b/src/main/java/com/hbm/blocks/machine/MachineCapacitor.java new file mode 100644 index 000000000..ad9effd70 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineCapacitor.java @@ -0,0 +1,233 @@ +package com.hbm.blocks.machine; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.blocks.ILookOverlay; +import com.hbm.blocks.IPersistentInfoProvider; +import com.hbm.blocks.ModBlocks; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.INBTPacketReceiver; +import com.hbm.tileentity.IPersistentNBT; +import com.hbm.tileentity.TileEntityLoadedBase; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import api.hbm.energy.IEnergyUser; +import cpw.mods.fml.client.registry.RenderingRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.stats.StatList; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; +import net.minecraftforge.common.util.ForgeDirection; + +public class MachineCapacitor extends BlockContainer implements ILookOverlay, IPersistentInfoProvider { + + @SideOnly(Side.CLIENT) public IIcon iconTop; + @SideOnly(Side.CLIENT) public IIcon iconSide; + @SideOnly(Side.CLIENT) public IIcon iconBottom; + @SideOnly(Side.CLIENT) public IIcon iconInnerTop; + @SideOnly(Side.CLIENT) public IIcon iconInnerSide; + + protected long power; + + public MachineCapacitor(Material mat, long power) { + super(mat); + this.power = power; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + super.registerBlockIcons(iconRegister); + this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":capacitor_copper_top"); + this.iconSide = iconRegister.registerIcon(RefStrings.MODID + ":capacitor_copper_side"); + this.iconBottom = iconRegister.registerIcon(RefStrings.MODID + ":capacitor_copper_bottom"); + this.iconInnerTop = iconRegister.registerIcon(RefStrings.MODID + ":capacitor_copper_inner_top"); + this.iconInnerSide = iconRegister.registerIcon(RefStrings.MODID + ":capacitor_copper_inner_side"); + } + + public static int renderID = RenderingRegistry.getNextAvailableRenderId(); + + @Override public int getRenderType() { return renderID; } + @Override public boolean isOpaqueCube() { return false; } + @Override public boolean renderAsNormalBlock() { return false; } + + @Override + public int onBlockPlaced(World world, int x, int y, int z, int side, float fX, float fY, float fZ, int meta) { + return side; + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityCapacitor(this.power); + } + + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + + TileEntity te = world.getTileEntity(x, y, z); + + if(!(te instanceof TileEntityCapacitor)) + return; + + TileEntityCapacitor battery = (TileEntityCapacitor) te; + List text = new ArrayList(); + text.add(BobMathUtil.getShortNumber(battery.getPower()) + " / " + BobMathUtil.getShortNumber(battery.getMaxPower()) + "HE"); + + double percent = (double) battery.getPower() / (double) battery.getMaxPower(); + int charge = (int) Math.floor(percent * 10_000D); + int color = ((int) (0xFF - 0xFF * percent)) << 16 | ((int)(0xFF * percent) << 8); + text.add("&[" + color + "&]" + (charge / 100D) + "%"); + + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } + + @Override + public void addInformation(ItemStack stack, NBTTagCompound persistentTag, EntityPlayer player, List list, boolean ext) { + list.add(EnumChatFormatting.YELLOW + "" + BobMathUtil.getShortNumber(persistentTag.getLong("power")) + "/" + BobMathUtil.getShortNumber(persistentTag.getLong("maxPower")) + "HE"); + } + + @Override + public ArrayList getDrops(World world, int x, int y, int z, int metadata, int fortune) { + return IPersistentNBT.getDrops(world, x, y, z, this); + } + + @Override + public void onBlockHarvested(World world, int x, int y, int z, int meta, EntityPlayer player) { + + if(!player.capabilities.isCreativeMode) { + harvesters.set(player); + this.dropBlockAsItem(world, x, y, z, meta, 0); + harvesters.set(null); + } + } + + @Override + public void harvestBlock(World world, EntityPlayer player, int x, int y, int z, int meta) { + player.addStat(StatList.mineBlockStatArray[getIdFromBlock(this)], 1); + player.addExhaustion(0.025F); + } + + public static class TileEntityCapacitor extends TileEntityLoadedBase implements IEnergyUser, INBTPacketReceiver, IPersistentNBT { + + public long power; + protected long maxPower; + + public TileEntityCapacitor() { } + + public TileEntityCapacitor(long maxPower) { + this.maxPower = maxPower; + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + ForgeDirection opp = ForgeDirection.getOrientation(this.getBlockMetadata()); + ForgeDirection dir = opp.getOpposite(); + + BlockPos pos = new BlockPos(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ); + + boolean didStep = false; + ForgeDirection last = null; + + while(worldObj.getBlock(pos.getX(), pos.getY(), pos.getZ()) == ModBlocks.capacitor_bus) { + ForgeDirection current = ForgeDirection.getOrientation(worldObj.getBlockMetadata(pos.getX(), pos.getY(), pos.getZ())); + if(!didStep) last = current; + didStep = true; + + if(last != current) { + pos = null; + break; + } + + pos = pos.offset(current); + } + + if(pos != null && last != null) { + this.tryUnsubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ()); + this.sendPower(worldObj, pos.getX(), pos.getY(), pos.getZ(), last); + } + + this.trySubscribe(worldObj, xCoord + opp.offsetX, yCoord+ opp.offsetY, zCoord + opp.offsetZ, opp); + + NBTTagCompound data = new NBTTagCompound(); + data.setLong("power", power); + data.setLong("maxPower", maxPower); + INBTPacketReceiver.networkPack(this, data, 15); + } + } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + this.power = nbt.getLong("power"); + } + + @Override + public long getPower() { + return power; + } + + @Override + public long getMaxPower() { + return maxPower; + } + + @Override + public ConnectionPriority getPriority() { + return ConnectionPriority.LOW; + } + + @Override + public void setPower(long power) { + this.power = power; + } + + @Override + public boolean canConnect(ForgeDirection dir) { + return dir == ForgeDirection.getOrientation(this.getBlockMetadata()); + } + + @Override + public void writeNBT(NBTTagCompound nbt) { + NBTTagCompound data = new NBTTagCompound(); + data.setLong("power", power); + data.setLong("maxPower", maxPower); + nbt.setTag(NBT_PERSISTENT_KEY, data); + } + + @Override + public void readNBT(NBTTagCompound nbt) { + NBTTagCompound data = nbt.getCompoundTag(NBT_PERSISTENT_KEY); + this.power = data.getLong("power"); + this.maxPower = data.getLong("maxPower"); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.power = nbt.getLong("power"); + this.maxPower = nbt.getLong("maxPower"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setLong("power", power); + nbt.setLong("maxPower", maxPower); + } + } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachineCapacitorBus.java b/src/main/java/com/hbm/blocks/machine/MachineCapacitorBus.java new file mode 100644 index 000000000..8ed5b2ed1 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineCapacitorBus.java @@ -0,0 +1,50 @@ +package com.hbm.blocks.machine; + +import com.hbm.lib.RefStrings; + +import api.hbm.energy.IEnergyConnectorBlock; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.BlockPistonBase; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class MachineCapacitorBus extends Block implements IEnergyConnectorBlock { + + @SideOnly(Side.CLIENT) private IIcon topIcon; + + public MachineCapacitorBus(Material mat) { + super(mat); + } + + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister p_149651_1_) { + this.blockIcon = p_149651_1_.registerIcon(RefStrings.MODID + ":capacitor_bus_side"); + this.topIcon = p_149651_1_.registerIcon(RefStrings.MODID + ":capacitor_bus_out"); + } + + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta) { + return side == meta ? topIcon : blockIcon; + } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack) { + int l = BlockPistonBase.determineOrientation(world, x, y, z, player); + world.setBlockMetadataWithNotify(x, y, z, l, 2); + } + + @Override + public boolean canConnect(IBlockAccess world, int x, int y, int z, ForgeDirection dir) { + int meta = world.getBlockMetadata(x, y, z); + ForgeDirection busDir = ForgeDirection.getOrientation(meta); + return dir == busDir; + } +} diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 64ad4bffe..492673357 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -777,6 +777,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerBlockHandler(new RenderRTTY()); RenderingRegistry.registerBlockHandler(new RenderDiFurnaceExtension()); RenderingRegistry.registerBlockHandler(new RenderSplitter()); + RenderingRegistry.registerBlockHandler(new RenderCapacitor()); RenderingRegistry.registerBlockHandler(new RenderFoundryBasin()); RenderingRegistry.registerBlockHandler(new RenderFoundryMold()); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index c573f1b49..3dfe7107b 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -1334,6 +1334,7 @@ public class ResourceManager { public static final IModelCustom rail_standard_straight = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard.obj")); public static final IModelCustom rail_standard_curve = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_bend.obj")); public static final IModelCustom rail_standard_ramp = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_ramp.obj")); + public static final IModelCustom capacitor = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/capacitor.obj")); public static final IModelCustom charge_dynamite = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/charge_dynamite.obj")); public static final IModelCustom charge_c4 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/charge_c4.obj")); diff --git a/src/main/java/com/hbm/render/block/RenderCapacitor.java b/src/main/java/com/hbm/render/block/RenderCapacitor.java new file mode 100644 index 000000000..227bf140c --- /dev/null +++ b/src/main/java/com/hbm/render/block/RenderCapacitor.java @@ -0,0 +1,89 @@ +package com.hbm.render.block; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.machine.MachineCapacitor; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; + +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.world.IBlockAccess; +import net.minecraftforge.client.model.obj.WavefrontObject; + +public class RenderCapacitor implements ISimpleBlockRenderingHandler { + + @Override + public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { + + GL11.glPushMatrix(); + Tessellator tessellator = Tessellator.instance; + tessellator.setColorOpaque_F(1, 1, 1); + + MachineCapacitor capacitor = (MachineCapacitor) block; + + tessellator.startDrawingQuads(); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.capacitor, "Top", capacitor.iconTop, tessellator, 0, false); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.capacitor, "Side", capacitor.iconSide, tessellator, 0, false); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.capacitor, "Bottom", capacitor.iconBottom, tessellator, 0, false); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.capacitor, "InnerTop", capacitor.iconInnerTop, tessellator, 0, false); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.capacitor, "InnerSide", capacitor.iconInnerSide, tessellator, 0, false); + tessellator.draw(); + + GL11.glPopMatrix(); + } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { + + Tessellator tessellator = Tessellator.instance; + MachineCapacitor capacitor = (MachineCapacitor) block; + + tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); + tessellator.setColorOpaque_F(1, 1, 1); + + float flip = 0; + float rotation = 0; + + int meta = world.getBlockMetadata(x, y, z); + + if(meta == 0) + flip = (float)Math.PI; + + if(meta == 2) + rotation = 90F / 180F * (float) Math.PI; + + if(meta == 3) + rotation = 270F / 180F * (float) Math.PI; + + if(meta == 4) + rotation = 180F / 180F * (float)Math.PI; + + if(rotation != 0F || meta == 5) + flip = (float)Math.PI * 0.5F; + + tessellator.addTranslation(x + 0.5F, y + 0.5F, z + 0.5F); + + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.capacitor, "Top", capacitor.iconTop, tessellator, rotation, flip, true); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.capacitor, "Side", capacitor.iconSide, tessellator, rotation, flip, true); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.capacitor, "Bottom", capacitor.iconBottom, tessellator, rotation, flip, true); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.capacitor, "InnerTop", capacitor.iconInnerTop, tessellator, rotation, flip, true); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.capacitor, "InnerSide", capacitor.iconInnerSide, tessellator, rotation, flip, true); + + tessellator.addTranslation(-x - 0.5F, -y - 0.5F, -z - 0.5F); + + return true; + } + + @Override + public boolean shouldRender3DInInventory(int modelId) { + return true; + } + + @Override + public int getRenderId() { + return MachineCapacitor.renderID; + } +} diff --git a/src/main/resources/assets/hbm/models/blocks/capacitor.obj b/src/main/resources/assets/hbm/models/blocks/capacitor.obj new file mode 100644 index 000000000..81f79da44 --- /dev/null +++ b/src/main/resources/assets/hbm/models/blocks/capacitor.obj @@ -0,0 +1,128 @@ +# Blender v2.79 (sub 0) OBJ File: 'capacitor.blend' +# www.blender.org +o InnerSide +v -0.437500 -0.250000 0.437500 +v -0.437500 -0.250000 -0.437500 +v 0.437500 -0.250000 0.437500 +v 0.437500 -0.250000 -0.437500 +v -0.437500 0.437500 0.437500 +v -0.437500 0.437500 -0.437500 +v 0.437500 0.437500 -0.437500 +v 0.437500 0.437500 0.437500 +vt 0.937500 0.250000 +vt 0.062500 0.937500 +vt 0.062500 0.250000 +vt 0.062500 0.937500 +vt 0.937500 0.250000 +vt 0.937500 0.937500 +vt 0.937500 0.250000 +vt 0.062500 0.937500 +vt 0.062500 0.250000 +vt 0.062500 0.937500 +vt 0.937500 0.250000 +vt 0.937500 0.937500 +vt 0.937500 0.937500 +vt 0.062500 0.250000 +vt 0.937500 0.937500 +vt 0.062500 0.250000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +s off +f 3/1/1 5/2/1 1/3/1 +f 2/4/2 7/5/2 4/6/2 +f 4/7/3 8/8/3 3/9/3 +f 1/10/4 6/11/4 2/12/4 +f 3/1/1 8/13/1 5/2/1 +f 2/4/2 6/14/2 7/5/2 +f 4/7/3 7/15/3 8/8/3 +f 1/10/4 5/16/4 6/11/4 +o InnerTop +v -0.437500 0.437500 0.437500 +v -0.437500 0.437500 -0.437500 +v 0.437500 0.437500 -0.437500 +v 0.437500 0.437500 0.437500 +vt 0.937500 0.937500 +vt 0.062500 0.062500 +vt 0.937500 0.062500 +vt 0.062500 0.937500 +vn 0.0000 1.0000 0.0000 +s off +f 10/17/5 12/18/5 11/19/5 +f 10/17/5 9/20/5 12/18/5 +o Side +v -0.500000 -0.500000 0.500000 +v -0.500000 0.500000 0.500000 +v -0.500000 -0.500000 -0.500000 +v -0.500000 0.500000 -0.500000 +v 0.500000 -0.500000 0.500000 +v 0.500000 0.500000 0.500000 +v 0.500000 -0.500000 -0.500000 +v 0.500000 0.500000 -0.500000 +vt 1.000000 1.000000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 0.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 1.000000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +s off +f 14/21/6 15/22/6 13/23/6 +f 16/24/7 19/25/7 15/26/7 +f 20/27/8 17/28/8 19/29/8 +f 18/30/9 13/31/9 17/32/9 +f 14/21/6 16/33/6 15/22/6 +f 16/24/7 20/34/7 19/25/7 +f 20/27/8 18/35/8 17/28/8 +f 18/30/9 14/36/9 13/31/9 +o Top +v -0.500000 0.500000 0.500000 +v -0.500000 0.500000 -0.500000 +v 0.500000 0.500000 0.500000 +v 0.500000 0.500000 -0.500000 +vt 1.000000 1.000000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 0.000000 1.000000 +vn 0.0000 1.0000 0.0000 +s off +f 22/37/10 23/38/10 24/39/10 +f 22/37/10 21/40/10 23/38/10 +o Bottom +v -0.500000 -0.500000 0.500000 +v -0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 0.500000 +v 0.500000 -0.500000 -0.500000 +v -0.500000 -0.250000 0.500000 +v -0.500000 -0.250000 -0.500000 +v 0.500000 -0.250000 0.500000 +v 0.500000 -0.250000 -0.500000 +vt 1.000000 1.000000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 0.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 1.000000 +vt 1.000000 0.000000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +s off +f 28/41/11 25/42/11 26/43/11 +f 30/44/12 31/45/12 32/46/12 +f 28/41/11 27/47/11 25/42/11 +f 30/44/12 29/48/12 31/45/12 diff --git a/src/main/resources/assets/hbm/textures/blocks/capacitor_bus_out.png b/src/main/resources/assets/hbm/textures/blocks/capacitor_bus_out.png new file mode 100644 index 0000000000000000000000000000000000000000..c9a207e23aea062507bc44b8c20b64fa7bdda6c9 GIT binary patch literal 195 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf=FKK#%|c literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/capacitor_bus_side.png b/src/main/resources/assets/hbm/textures/blocks/capacitor_bus_side.png new file mode 100644 index 0000000000000000000000000000000000000000..ae4dbc27800f8f32b39db0885b05d1266c03f65e GIT binary patch literal 187 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf~nvU!I+n-gC}vdV95_gF}O(vorH@x0p{lC+3Lj$3568JKLsB+=G=l|3HS-0w*h= f(GI){L5vJjI-KSgN!)4&+RotV>gTe~DWM4f9#}gk literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/capacitor_copper_bottom.png b/src/main/resources/assets/hbm/textures/blocks/capacitor_copper_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..32987415c75d9d064248e0f6ba19756b7fdf6d51 GIT binary patch literal 612 zcmV-q0-ODbP)MBP~i%Kz1+qOyUZ7fd;hQ@-CCY`=^yIrHv)s4IBU(t4k zh^?n<FFtdFd7ezSQCkkD3+-Uw%dmx=wxEuxd zGiX`oEESeHJgsBSrKmMJY?ktJ6ID%d)U-Hmb`W7Wrt8?e|M82rulIoKj})Kdcs;jA z&+SofNBP5Wj1VG;J(%!h#pL7nLjdN@8~|sQ%LBy%pzGM^nod$tm^X8gyGTY1Vz=bX y3`0KvKuf6%{QxB?q~ISvg7MfELK@is0000UQk literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/capacitor_copper_inner_side.png b/src/main/resources/assets/hbm/textures/blocks/capacitor_copper_inner_side.png new file mode 100644 index 0000000000000000000000000000000000000000..554d60816ff52c64b04384a25e3a35a4aa0ba5f4 GIT binary patch literal 177 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf-A`$s96Yt^22EJ~agaT^|!-ZA6q`dfS7?TVSFbuK_g)cx@8 z`SPYWvxH1Lb?fVW-)y`0vHfA5hpnEoQH<>*!NLg}=i7GNIQb`U_VS5p8BJ780avHS+=>gaORZewpJ}ZwzMc5Y z{PepLv(-nNrzxho@gJDoGuvF9Yvw9(27%)n3pWQ@dOfq)_Lr66&&+faOJ9+PFPQ>Z z81ljcZ6lv~%zU`(oq9ME!?NOd>&RtYkL`4xY-Ko5RjogV`SqCu6P>G}Obme{j0!Cc zsqxX5*E0Jo`o`uIVxOT~a6^_;M{9j7_Y1jG50fhdEP)7xV6oo&79Y`R-2)eXYr4AkXC$V)+-<(It6Lf4l1Yw~- zAt2HrH8l`Yq29^4_W69ybwnJ;1^*}sV2n9isI|rzQv%#3z<4|sRU+%wy|7^yNsrNRbsd7>)0~JAn(H!gg&q;yP?mcekh`_$7h-nv=r}?jLSh6$O-%m zDb?<*+-%k?z7}k^1usu`KkN$tJdtyIeZ@M@0hrBayW8JB41pgYrBp;=k6~9ZnWg{? z`olfz%JY~^Q=(3U@;m_2tQ>`SeZJWZMKznumt~YryTyFD!c)ILYrftv&6f1L?b4x= Zd;=o0r-(xk=!yUU002ovPDHLkV1hf;oGt(W literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/capacitor_copper_top.png b/src/main/resources/assets/hbm/textures/blocks/capacitor_copper_top.png new file mode 100644 index 0000000000000000000000000000000000000000..42a14038a4c78297d7feaeb38df310f23324ca9f GIT binary patch literal 228 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfs@^tNt_I0~)f87p<8VZ*cr;AQ7dhU$uYBOUs>0y_AeT7^bz&x8K8S%zQw# zgL`lJssmd;3cgN}HnK3=$GXaEs>-2NUi^-#HxD|@aGbK`8k@2IB%V5xj!8fEHE(Y+ z_hkKeCavwO#nJ@X8~bltYTdZ5&DnY4!z@Xe$J-wpZr Date: Fri, 9 Jun 2023 14:11:06 +0200 Subject: [PATCH 100/432] liquefied pain --- .../assets/hbm/models/weapons/coilgun.obj | 10556 ++++++++-------- 1 file changed, 5328 insertions(+), 5228 deletions(-) diff --git a/src/main/resources/assets/hbm/models/weapons/coilgun.obj b/src/main/resources/assets/hbm/models/weapons/coilgun.obj index 50e810e4b..b24831496 100644 --- a/src/main/resources/assets/hbm/models/weapons/coilgun.obj +++ b/src/main/resources/assets/hbm/models/weapons/coilgun.obj @@ -1,4787 +1,5 @@ # Blender v2.79 (sub 0) OBJ File: 'coilgun.blend' # www.blender.org -o Coils_Cylinder.012 -v -0.463562 0.524760 2.571894 -v -0.237813 0.524760 2.571894 -v -0.237813 0.222044 2.697284 -v -0.463562 0.222044 2.697284 -v -0.237813 0.096655 3.000000 -v -0.463562 0.096655 3.000000 -v -0.237813 0.222044 3.302716 -v -0.463562 0.222044 3.302716 -v -0.237813 0.524760 3.428106 -v -0.463562 0.524760 3.428106 -v -0.237813 0.827477 3.302716 -v -0.463562 0.827477 3.302716 -v -0.237813 0.952866 3.000000 -v -0.463562 0.952866 3.000000 -v -0.237813 0.827477 2.697284 -v -0.463562 0.827477 2.697284 -v -0.170088 0.524760 2.571894 -v 0.055660 0.524760 2.571894 -v 0.055660 0.222044 2.697284 -v -0.170088 0.222044 2.697284 -v 0.055660 0.096655 3.000000 -v -0.170088 0.096655 3.000000 -v 0.055660 0.222044 3.302716 -v -0.170088 0.222044 3.302716 -v 0.055660 0.524760 3.428106 -v -0.170088 0.524760 3.428106 -v 0.055660 0.827477 3.302716 -v -0.170088 0.827477 3.302716 -v 0.055660 0.952866 3.000000 -v -0.170088 0.952866 3.000000 -v 0.055660 0.827477 2.697284 -v -0.170088 0.827477 2.697284 -v 0.123385 0.524760 2.571894 -v 0.349134 0.524760 2.571894 -v 0.349134 0.222044 2.697284 -v 0.123385 0.222044 2.697284 -v 0.349134 0.096655 3.000000 -v 0.123385 0.096655 3.000000 -v 0.349134 0.222044 3.302716 -v 0.123385 0.222044 3.302716 -v 0.349134 0.524760 3.428106 -v 0.123385 0.524760 3.428106 -v 0.349134 0.827477 3.302716 -v 0.123385 0.827477 3.302716 -v 0.349134 0.952866 3.000000 -v 0.123385 0.952866 3.000000 -v 0.349134 0.827477 2.697284 -v 0.123385 0.827477 2.697284 -v 0.416858 0.524760 2.571894 -v 0.642607 0.524760 2.571894 -v 0.642607 0.222044 2.697284 -v 0.416858 0.222044 2.697284 -v 0.642607 0.096655 3.000000 -v 0.416858 0.096655 3.000000 -v 0.642607 0.222044 3.302716 -v 0.416858 0.222044 3.302716 -v 0.642607 0.524760 3.428106 -v 0.416858 0.524760 3.428106 -v 0.642607 0.827477 3.302716 -v 0.416858 0.827477 3.302716 -v 0.642607 0.952866 3.000000 -v 0.416858 0.952866 3.000000 -v 0.642607 0.827477 2.697284 -v 0.416858 0.827477 2.697284 -v 0.710331 0.524760 2.571894 -v 0.936080 0.524760 2.571894 -v 0.936080 0.222044 2.697284 -v 0.710331 0.222044 2.697284 -v 0.936080 0.096655 3.000000 -v 0.710331 0.096655 3.000000 -v 0.936080 0.222044 3.302716 -v 0.710331 0.222044 3.302716 -v 0.936080 0.524760 3.428106 -v 0.710331 0.524760 3.428106 -v 0.936080 0.827477 3.302716 -v 0.710331 0.827477 3.302716 -v 0.936080 0.952866 3.000000 -v 0.710331 0.952866 3.000000 -v 0.936080 0.827477 2.697284 -v 0.710331 0.827477 2.697284 -vt 0.781097 0.399443 -vt 0.718903 0.399443 -vt 0.718903 0.309173 -vt 0.781097 0.309173 -vt 0.718903 0.218903 -vt 0.781097 0.218903 -vt 0.781097 0.941064 -vt 0.718903 0.941064 -vt 0.718903 0.850794 -vt 0.781097 0.850794 -vt 0.718903 0.760524 -vt 0.781097 0.760524 -vt 0.718903 0.670254 -vt 0.781097 0.670254 -vt 0.718903 0.579984 -vt 0.781097 0.579984 -vt 0.218903 0.282734 -vt 0.282733 0.218903 -vt 0.373004 0.218903 -vt 0.436834 0.282734 -vt 0.436834 0.373004 -vt 0.373003 0.436835 -vt 0.282733 0.436834 -vt 0.218903 0.373004 -vt 0.718903 0.489714 -vt 0.781097 0.489714 -vt 0.064155 0.437482 -vt 0.154425 0.437483 -vt 0.218255 0.501313 -vt 0.218255 0.591583 -vt 0.154425 0.655414 -vt 0.064154 0.655414 -vt 0.000324 0.591583 -vt 0.000324 0.501313 -vt 0.999676 0.180864 -vt 0.937482 0.180864 -vt 0.937482 0.090594 -vt 0.999676 0.090594 -vt 0.937482 0.000324 -vt 0.999676 0.000324 -vt 0.999676 0.722485 -vt 0.937482 0.722485 -vt 0.937482 0.632215 -vt 0.999676 0.632215 -vt 0.937482 0.541944 -vt 0.999676 0.541944 -vt 0.937482 0.451674 -vt 0.999676 0.451674 -vt 0.937482 0.361404 -vt 0.999676 0.361404 -vt 0.000324 0.282734 -vt 0.064154 0.218903 -vt 0.154425 0.218903 -vt 0.218255 0.282734 -vt 0.218255 0.373004 -vt 0.154424 0.436835 -vt 0.064154 0.436834 -vt 0.000324 0.373004 -vt 0.937482 0.271134 -vt 0.999676 0.271134 -vt 0.501313 0.218903 -vt 0.591583 0.218903 -vt 0.655413 0.282734 -vt 0.655413 0.373004 -vt 0.591583 0.436835 -vt 0.501313 0.436834 -vt 0.437482 0.373004 -vt 0.437482 0.282734 -vt 0.718255 0.399443 -vt 0.656061 0.399443 -vt 0.656061 0.309173 -vt 0.718255 0.309173 -vt 0.656061 0.218903 -vt 0.718255 0.218903 -vt 0.718255 0.941064 -vt 0.656061 0.941064 -vt 0.656061 0.850794 -vt 0.718255 0.850794 -vt 0.656061 0.760524 -vt 0.718255 0.760524 -vt 0.656061 0.670254 -vt 0.718255 0.670254 -vt 0.656061 0.579984 -vt 0.718255 0.579984 -vt 0.218903 0.501313 -vt 0.282733 0.437482 -vt 0.373004 0.437483 -vt 0.436834 0.501313 -vt 0.436834 0.591583 -vt 0.373003 0.655414 -vt 0.282733 0.655414 -vt 0.218903 0.591583 -vt 0.656061 0.489714 -vt 0.718255 0.489714 -vt 0.501313 0.437482 -vt 0.591583 0.437483 -vt 0.655413 0.501313 -vt 0.655413 0.591583 -vt 0.591583 0.655414 -vt 0.501313 0.655414 -vt 0.437482 0.591583 -vt 0.437482 0.501313 -vt 0.936834 0.180864 -vt 0.874640 0.180864 -vt 0.874640 0.090594 -vt 0.936834 0.090594 -vt 0.874640 0.000324 -vt 0.936834 0.000324 -vt 0.936834 0.722484 -vt 0.874640 0.722484 -vt 0.874640 0.632214 -vt 0.936834 0.632214 -vt 0.874640 0.541944 -vt 0.936834 0.541944 -vt 0.874640 0.451674 -vt 0.936834 0.451674 -vt 0.874640 0.361404 -vt 0.936834 0.361404 -vt 0.656061 0.064155 -vt 0.719891 0.000324 -vt 0.810162 0.000324 -vt 0.873992 0.064155 -vt 0.873992 0.154425 -vt 0.810162 0.218255 -vt 0.719891 0.218255 -vt 0.656061 0.154425 -vt 0.874640 0.271134 -vt 0.936834 0.271134 -vt 0.501313 0.000324 -vt 0.591583 0.000324 -vt 0.655413 0.064155 -vt 0.655413 0.154425 -vt 0.591583 0.218255 -vt 0.501313 0.218255 -vt 0.437482 0.154425 -vt 0.437482 0.064155 -vt 0.873992 0.399443 -vt 0.811798 0.399443 -vt 0.811798 0.309173 -vt 0.873992 0.309173 -vt 0.811798 0.218903 -vt 0.873992 0.218903 -vt 0.873992 0.941064 -vt 0.811798 0.941064 -vt 0.811798 0.850794 -vt 0.873992 0.850794 -vt 0.811798 0.760524 -vt 0.873992 0.760524 -vt 0.811798 0.670253 -vt 0.873992 0.670253 -vt 0.811798 0.579983 -vt 0.873992 0.579983 -vt 0.218903 0.064155 -vt 0.282733 0.000324 -vt 0.373004 0.000324 -vt 0.436834 0.064155 -vt 0.436834 0.154425 -vt 0.373003 0.218255 -vt 0.282733 0.218255 -vt 0.218903 0.154425 -vt 0.811798 0.489713 -vt 0.873992 0.489713 -vt 0.064155 0.000324 -vt 0.154425 0.000324 -vt 0.218255 0.064155 -vt 0.218255 0.154425 -vt 0.154425 0.218255 -vt 0.064154 0.218255 -vt 0.000324 0.154425 -vt 0.000324 0.064155 -vn 0.0000 -0.3827 -0.9239 -vn 0.0000 -0.9239 -0.3827 -vn 0.0000 -0.9239 0.3827 -vn 0.0000 -0.3827 0.9239 -vn 0.0000 0.3827 0.9239 -vn 0.0000 0.9239 0.3827 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.9239 -0.3827 -vn 0.0000 0.3827 -0.9239 -vn -1.0000 0.0000 0.0000 -s off -f 1/1/1 2/2/1 3/3/1 4/4/1 -f 4/4/2 3/3/2 5/5/2 6/6/2 -f 6/7/3 5/8/3 7/9/3 8/10/3 -f 8/10/4 7/9/4 9/11/4 10/12/4 -f 10/12/5 9/11/5 11/13/5 12/14/5 -f 12/14/6 11/13/6 13/15/6 14/16/6 -f 3/17/7 2/18/7 15/19/7 13/20/7 11/21/7 9/22/7 7/23/7 5/24/7 -f 14/16/8 13/15/8 15/25/8 16/26/8 -f 16/26/9 15/25/9 2/2/9 1/1/9 -f 1/27/10 4/28/10 6/29/10 8/30/10 10/31/10 12/32/10 14/33/10 16/34/10 -f 17/35/1 18/36/1 19/37/1 20/38/1 -f 20/38/2 19/37/2 21/39/2 22/40/2 -f 22/41/3 21/42/3 23/43/3 24/44/3 -f 24/44/4 23/43/4 25/45/4 26/46/4 -f 26/46/5 25/45/5 27/47/5 28/48/5 -f 28/48/6 27/47/6 29/49/6 30/50/6 -f 19/51/7 18/52/7 31/53/7 29/54/7 27/55/7 25/56/7 23/57/7 21/58/7 -f 30/50/8 29/49/8 31/59/8 32/60/8 -f 32/60/9 31/59/9 18/36/9 17/35/9 -f 17/61/10 20/62/10 22/63/10 24/64/10 26/65/10 28/66/10 30/67/10 32/68/10 -f 33/69/1 34/70/1 35/71/1 36/72/1 -f 36/72/2 35/71/2 37/73/2 38/74/2 -f 38/75/3 37/76/3 39/77/3 40/78/3 -f 40/78/4 39/77/4 41/79/4 42/80/4 -f 42/80/5 41/79/5 43/81/5 44/82/5 -f 44/82/6 43/81/6 45/83/6 46/84/6 -f 35/85/7 34/86/7 47/87/7 45/88/7 43/89/7 41/90/7 39/91/7 37/92/7 -f 46/84/8 45/83/8 47/93/8 48/94/8 -f 48/94/9 47/93/9 34/70/9 33/69/9 -f 33/95/10 36/96/10 38/97/10 40/98/10 42/99/10 44/100/10 46/101/10 48/102/10 -f 49/103/1 50/104/1 51/105/1 52/106/1 -f 52/106/2 51/105/2 53/107/2 54/108/2 -f 54/109/3 53/110/3 55/111/3 56/112/3 -f 56/112/4 55/111/4 57/113/4 58/114/4 -f 58/114/5 57/113/5 59/115/5 60/116/5 -f 60/116/6 59/115/6 61/117/6 62/118/6 -f 51/119/7 50/120/7 63/121/7 61/122/7 59/123/7 57/124/7 55/125/7 53/126/7 -f 62/118/8 61/117/8 63/127/8 64/128/8 -f 64/128/9 63/127/9 50/104/9 49/103/9 -f 49/129/10 52/130/10 54/131/10 56/132/10 58/133/10 60/134/10 62/135/10 64/136/10 -f 65/137/1 66/138/1 67/139/1 68/140/1 -f 68/140/2 67/139/2 69/141/2 70/142/2 -f 70/143/3 69/144/3 71/145/3 72/146/3 -f 72/146/4 71/145/4 73/147/4 74/148/4 -f 74/148/5 73/147/5 75/149/5 76/150/5 -f 76/150/6 75/149/6 77/151/6 78/152/6 -f 67/153/7 66/154/7 79/155/7 77/156/7 75/157/7 73/158/7 71/159/7 69/160/7 -f 78/152/8 77/151/8 79/161/8 80/162/8 -f 80/162/9 79/161/9 66/138/9 65/137/9 -f 65/163/10 68/164/10 70/165/10 72/166/10 74/167/10 76/168/10 78/169/10 80/170/10 -o Tech_thingy_Cylinder.011 -v -1.457017 0.997796 0.139627 -v -1.457017 1.110929 0.189700 -v -1.405270 1.098405 0.216824 -v -1.405270 0.985272 0.166751 -v -1.405270 1.073357 0.271072 -v -1.405270 0.960224 0.220999 -v -1.457017 1.060833 0.298196 -v -1.457017 0.947700 0.248123 -v -1.508763 1.073357 0.271072 -v -1.508763 0.960224 0.220999 -v -1.508763 1.098405 0.216824 -v -1.508763 0.985272 0.166751 -v -1.322476 0.997796 0.139627 -v -1.322476 1.110929 0.189700 -v -1.270730 1.098405 0.216824 -v -1.270730 0.985272 0.166751 -v -1.270730 1.073357 0.271072 -v -1.270730 0.960224 0.220999 -v -1.322476 1.060833 0.298196 -v -1.322476 0.947700 0.248123 -v -1.374223 1.073357 0.271072 -v -1.374223 0.960224 0.220999 -v -1.374223 1.098405 0.216824 -v -1.374223 0.985272 0.166751 -v -1.187935 0.997796 0.139627 -v -1.187935 1.110929 0.189700 -v -1.136189 1.098405 0.216824 -v -1.136189 0.985272 0.166751 -v -1.136189 1.073357 0.271072 -v -1.136189 0.960224 0.220999 -v -1.187935 1.060833 0.298196 -v -1.187935 0.947700 0.248123 -v -1.239682 1.073357 0.271072 -v -1.239682 0.960224 0.220999 -v -1.239682 1.098405 0.216824 -v -1.239682 0.985272 0.166751 -v -1.551588 0.824089 0.270719 -v -1.551588 0.906574 0.321562 -v -1.551588 1.018668 0.066710 -v -1.551588 0.936183 0.015867 -v -1.097206 1.018668 0.066710 -v -1.097206 0.936183 0.015867 -v -1.097206 0.906574 0.321562 -v -1.097206 0.824089 0.270719 -v -1.521210 0.950031 0.320343 -v -1.521210 1.047137 0.099566 -v -1.127583 1.047137 0.099566 -v -1.127583 0.950031 0.320343 -v -1.457017 0.997796 -0.139627 -v -1.405271 0.985272 -0.166751 -v -1.405271 1.098405 -0.216824 -v -1.457017 1.110929 -0.189700 -v -1.405271 0.960224 -0.220999 -v -1.405271 1.073357 -0.271072 -v -1.457017 0.947700 -0.248123 -v -1.457017 1.060833 -0.298196 -v -1.508764 0.960224 -0.220999 -v -1.508764 1.073357 -0.271072 -v -1.508764 1.098405 -0.216824 -v -1.508764 0.985272 -0.166751 -v -1.322476 0.997796 -0.139627 -v -1.270730 0.985272 -0.166751 -v -1.270730 1.098405 -0.216824 -v -1.322476 1.110929 -0.189700 -v -1.270730 0.960224 -0.220999 -v -1.270730 1.073357 -0.271072 -v -1.322476 0.947700 -0.248123 -v -1.322476 1.060833 -0.298196 -v -1.374223 0.960224 -0.220999 -v -1.374223 1.073357 -0.271072 -v -1.374223 1.098405 -0.216824 -v -1.374223 0.985272 -0.166751 -v -1.187936 0.997796 -0.139627 -v -1.136189 0.985272 -0.166751 -v -1.136189 1.098405 -0.216824 -v -1.187936 1.110929 -0.189700 -v -1.136189 0.960224 -0.220999 -v -1.136189 1.073357 -0.271072 -v -1.187936 0.947700 -0.248123 -v -1.187936 1.060833 -0.298196 -v -1.239682 0.960224 -0.220999 -v -1.239682 1.073357 -0.271072 -v -1.239682 1.098405 -0.216824 -v -1.239682 0.985272 -0.166751 -v -1.551588 0.824089 -0.270719 -v -1.551588 0.936183 -0.015867 -v -1.551588 1.018668 -0.066710 -v -1.551588 0.906574 -0.321562 -v -1.097206 0.936183 -0.015867 -v -1.097206 1.018668 -0.066710 -v -1.097206 0.824089 -0.270719 -v -1.097206 0.906574 -0.321562 -v -1.521211 1.047137 -0.099566 -v -1.521211 0.950031 -0.320343 -v -1.127584 1.047137 -0.099566 -v -1.127584 0.950031 -0.320343 -vt 1.000000 0.500000 -vt 1.000000 1.000000 -vt 0.833333 1.000000 -vt 0.833333 0.500000 -vt 0.666667 1.000000 -vt 0.666667 0.500000 -vt 0.500000 1.000000 -vt 0.500000 0.500000 -vt 0.333333 1.000000 -vt 0.333333 0.500000 -vt 0.457846 0.370000 -vt 0.250000 0.490000 -vt 0.042154 0.370000 -vt 0.042154 0.130000 -vt 0.250000 0.010000 -vt 0.457846 0.130000 -vt 0.166667 1.000000 -vt 0.166667 0.500000 -vt -0.000000 1.000000 -vt -0.000000 0.500000 -vt 0.750000 0.490000 -vt 0.957846 0.370000 -vt 0.957846 0.130000 -vt 0.750000 0.010000 -vt 0.542154 0.130000 -vt 0.542154 0.370000 -vt 1.000000 0.500000 -vt 1.000000 1.000000 -vt 0.833333 1.000000 -vt 0.833333 0.500000 -vt 0.666667 1.000000 -vt 0.666667 0.500000 -vt 0.500000 1.000000 -vt 0.500000 0.500000 -vt 0.333333 1.000000 -vt 0.333333 0.500000 -vt 0.457846 0.370000 -vt 0.250000 0.490000 -vt 0.042154 0.370000 -vt 0.042154 0.130000 -vt 0.250000 0.010000 -vt 0.457846 0.130000 -vt 0.166667 1.000000 -vt 0.166667 0.500000 -vt -0.000000 1.000000 -vt -0.000000 0.500000 -vt 0.750000 0.490000 -vt 0.957846 0.370000 -vt 0.957846 0.130000 -vt 0.750000 0.010000 -vt 0.542154 0.130000 -vt 0.542154 0.370000 -vt 1.000000 0.500000 -vt 1.000000 1.000000 -vt 0.833333 1.000000 -vt 0.833333 0.500000 -vt 0.666667 1.000000 -vt 0.666667 0.500000 -vt 0.500000 1.000000 -vt 0.500000 0.500000 -vt 0.333333 1.000000 -vt 0.333333 0.500000 -vt 0.457846 0.370000 -vt 0.250000 0.490000 -vt 0.042154 0.370000 -vt 0.042154 0.130000 -vt 0.250000 0.010000 -vt 0.457846 0.130000 -vt 0.166667 1.000000 -vt 0.166667 0.500000 -vt -0.000000 1.000000 -vt -0.000000 0.500000 -vt 0.750000 0.490000 -vt 0.957846 0.370000 -vt 0.957846 0.130000 -vt 0.750000 0.010000 -vt 0.542154 0.130000 -vt 0.542154 0.370000 -vt 0.375000 0.000000 -vt 0.625000 0.000000 -vt 0.625000 0.250000 -vt 0.375000 0.250000 -vt 0.625000 0.500000 -vt 0.375000 0.500000 -vt 0.625000 0.750000 -vt 0.375000 0.750000 -vt 0.625000 1.000000 -vt 0.375000 1.000000 -vt 0.125000 0.500000 -vt 0.125000 0.750000 -vt 0.625000 0.000000 -vt 0.625000 0.250000 -vt 0.625000 0.500000 -vt 0.875000 0.500000 -vt 0.875000 0.750000 -vt 0.625000 0.750000 -vt 0.625000 1.000000 -vt 1.000000 0.500000 -vt 0.833333 0.500000 -vt 0.833333 1.000000 -vt 1.000000 1.000000 -vt 0.666667 0.500000 -vt 0.666667 1.000000 -vt 0.500000 0.500000 -vt 0.500000 1.000000 -vt 0.333333 0.500000 -vt 0.333333 1.000000 -vt 0.457846 0.370000 -vt 0.457846 0.130000 -vt 0.250000 0.010000 -vt 0.042154 0.130000 -vt 0.042154 0.370000 -vt 0.250000 0.490000 -vt 0.166667 0.500000 -vt 0.166667 1.000000 -vt -0.000000 0.500000 -vt -0.000000 1.000000 -vt 0.750000 0.490000 -vt 0.542154 0.370000 -vt 0.542154 0.130000 -vt 0.750000 0.010000 -vt 0.957846 0.130000 -vt 0.957846 0.370000 -vt 1.000000 0.500000 -vt 0.833333 0.500000 -vt 0.833333 1.000000 -vt 1.000000 1.000000 -vt 0.666667 0.500000 -vt 0.666667 1.000000 -vt 0.500000 0.500000 -vt 0.500000 1.000000 -vt 0.333333 0.500000 -vt 0.333333 1.000000 -vt 0.457846 0.370000 -vt 0.457846 0.130000 -vt 0.250000 0.010000 -vt 0.042154 0.130000 -vt 0.042154 0.370000 -vt 0.250000 0.490000 -vt 0.166667 0.500000 -vt 0.166667 1.000000 -vt -0.000000 0.500000 -vt -0.000000 1.000000 -vt 0.750000 0.490000 -vt 0.542154 0.370000 -vt 0.542154 0.130000 -vt 0.750000 0.010000 -vt 0.957846 0.130000 -vt 0.957846 0.370000 -vt 1.000000 0.500000 -vt 0.833333 0.500000 -vt 0.833333 1.000000 -vt 1.000000 1.000000 -vt 0.666667 0.500000 -vt 0.666667 1.000000 -vt 0.500000 0.500000 -vt 0.500000 1.000000 -vt 0.333333 0.500000 -vt 0.333333 1.000000 -vt 0.457846 0.370000 -vt 0.457846 0.130000 -vt 0.250000 0.010000 -vt 0.042154 0.130000 -vt 0.042154 0.370000 -vt 0.250000 0.490000 -vt 0.166667 0.500000 -vt 0.166667 1.000000 -vt -0.000000 0.500000 -vt -0.000000 1.000000 -vt 0.750000 0.490000 -vt 0.542154 0.370000 -vt 0.542154 0.130000 -vt 0.750000 0.010000 -vt 0.957846 0.130000 -vt 0.957846 0.370000 -vt 0.375000 0.000000 -vt 0.375000 0.250000 -vt 0.625000 0.250000 -vt 0.625000 0.000000 -vt 0.375000 0.500000 -vt 0.625000 0.500000 -vt 0.375000 0.750000 -vt 0.625000 0.750000 -vt 0.375000 1.000000 -vt 0.625000 1.000000 -vt 0.125000 0.500000 -vt 0.125000 0.750000 -vt 0.625000 0.250000 -vt 0.625000 0.000000 -vt 0.625000 0.500000 -vt 0.625000 0.750000 -vt 0.875000 0.750000 -vt 0.875000 0.500000 -vt 0.625000 1.000000 -vn 0.4999 0.3505 -0.7920 -vn 1.0000 -0.0000 0.0000 -vn 0.4999 -0.3505 0.7920 -vn -0.5000 -0.3505 0.7919 -vn 0.0000 0.9079 0.4192 -vn -1.0000 0.0000 0.0000 -vn -0.5000 0.3505 -0.7919 -vn 0.0000 -0.9079 -0.4192 -vn 0.5000 0.3505 -0.7919 -vn 0.5000 -0.3505 0.7919 -vn -0.4999 -0.3505 0.7920 -vn -0.4999 0.3505 -0.7920 -vn 0.0000 0.5247 -0.8513 -vn 0.0000 -0.5247 0.8513 -vn 0.0000 -0.9154 -0.4026 -vn -0.7911 0.5599 0.2463 -vn 0.0000 0.9154 0.4026 -vn 0.0000 0.0280 0.9996 -vn 0.0000 0.7558 -0.6548 -vn 0.7911 0.5599 0.2463 -vn 0.5000 0.3505 0.7919 -vn 0.5000 -0.3505 -0.7919 -vn -0.4999 -0.3505 -0.7920 -vn 0.0000 0.9079 -0.4192 -vn -0.4999 0.3505 0.7920 -vn 0.0000 -0.9079 0.4192 -vn 0.4999 0.3505 0.7920 -vn 0.4999 -0.3505 -0.7920 -vn -0.5000 -0.3505 -0.7919 -vn -0.5000 0.3505 0.7919 -vn 0.0000 0.5247 0.8513 -vn 0.0000 -0.5247 -0.8513 -vn 0.0000 -0.9154 0.4026 -vn -0.7911 0.5599 -0.2463 -vn 0.0000 0.9154 -0.4026 -vn 0.0000 0.0280 -0.9996 -vn 0.0000 0.7558 0.6548 -vn 0.7911 0.5599 -0.2463 -s 1 -f 81/171/11 82/172/11 83/173/11 84/174/11 -f 84/174/12 83/173/12 85/175/12 86/176/12 -f 86/176/13 85/175/13 87/177/13 88/178/13 -f 88/178/14 87/177/14 89/179/14 90/180/14 -f 83/181/15 82/182/15 91/183/15 89/184/15 87/185/15 85/186/15 -f 90/180/16 89/179/16 91/187/16 92/188/16 -f 92/188/17 91/187/17 82/189/17 81/190/17 -f 81/191/18 84/192/18 86/193/18 88/194/18 90/195/18 92/196/18 -f 93/197/19 94/198/19 95/199/19 96/200/19 -f 96/200/12 95/199/12 97/201/12 98/202/12 -f 98/202/20 97/201/20 99/203/20 100/204/20 -f 100/204/21 99/203/21 101/205/21 102/206/21 -f 95/207/15 94/208/15 103/209/15 101/210/15 99/211/15 97/212/15 -f 102/206/16 101/205/16 103/213/16 104/214/16 -f 104/214/22 103/213/22 94/215/22 93/216/22 -f 93/217/18 96/218/18 98/219/18 100/220/18 102/221/18 104/222/18 -f 105/223/19 106/224/19 107/225/19 108/226/19 -f 108/226/12 107/225/12 109/227/12 110/228/12 -f 110/228/20 109/227/20 111/229/20 112/230/20 -f 112/230/21 111/229/21 113/231/21 114/232/21 -f 107/233/15 106/234/15 115/235/15 113/236/15 111/237/15 109/238/15 -f 114/232/16 113/231/16 115/239/16 116/240/16 -f 116/240/22 115/239/22 106/241/22 105/242/22 -f 105/243/18 108/244/18 110/245/18 112/246/18 114/247/18 116/248/18 -f 117/249/16 118/250/16 119/251/16 120/252/16 -f 120/252/23 119/251/23 121/253/23 122/254/23 -f 122/254/12 121/253/12 123/255/12 124/256/12 -f 124/256/24 123/255/24 118/257/24 117/258/24 -f 120/259/25 122/254/25 124/256/25 117/260/25 -f 119/251/26 118/250/26 125/261/26 126/262/26 -f 127/263/27 126/264/27 125/265/27 128/266/27 -f 118/257/28 123/255/28 128/266/28 125/267/28 -f 121/253/29 119/251/29 126/262/29 127/263/29 -f 123/255/30 121/253/30 127/263/30 128/266/30 -f 129/268/31 130/269/31 131/270/31 132/271/31 -f 130/269/12 133/272/12 134/273/12 131/270/12 -f 133/272/32 135/274/32 136/275/32 134/273/32 -f 135/274/33 137/276/33 138/277/33 136/275/33 -f 131/278/34 134/279/34 136/280/34 138/281/34 139/282/34 132/283/34 -f 137/276/16 140/284/16 139/285/16 138/277/16 -f 140/284/35 129/286/35 132/287/35 139/285/35 -f 129/288/36 140/289/36 137/290/36 135/291/36 133/292/36 130/293/36 -f 141/294/31 142/295/31 143/296/31 144/297/31 -f 142/295/12 145/298/12 146/299/12 143/296/12 -f 145/298/32 147/300/32 148/301/32 146/299/32 -f 147/300/33 149/302/33 150/303/33 148/301/33 -f 143/304/34 146/305/34 148/306/34 150/307/34 151/308/34 144/309/34 -f 149/302/16 152/310/16 151/311/16 150/303/16 -f 152/310/35 141/312/35 144/313/35 151/311/35 -f 141/314/36 152/315/36 149/316/36 147/317/36 145/318/36 142/319/36 -f 153/320/37 154/321/37 155/322/37 156/323/37 -f 154/321/12 157/324/12 158/325/12 155/322/12 -f 157/324/38 159/326/38 160/327/38 158/325/38 -f 159/326/39 161/328/39 162/329/39 160/327/39 -f 155/330/34 158/331/34 160/332/34 162/333/34 163/334/34 156/335/34 -f 161/328/16 164/336/16 163/337/16 162/329/16 -f 164/336/40 153/338/40 156/339/40 163/337/40 -f 153/340/36 164/341/36 161/342/36 159/343/36 157/344/36 154/345/36 -f 165/346/16 166/347/16 167/348/16 168/349/16 -f 166/347/41 169/350/41 170/351/41 167/348/41 -f 169/350/12 171/352/12 172/353/12 170/351/12 -f 171/352/42 165/354/42 168/355/42 172/353/42 -f 166/356/43 165/357/43 171/352/43 169/350/43 -f 167/348/44 173/358/44 174/359/44 168/349/44 -f 175/360/45 176/361/45 174/362/45 173/363/45 -f 168/355/46 174/364/46 176/361/46 172/353/46 -f 170/351/47 175/360/47 173/358/47 167/348/47 -f 172/353/48 176/361/48 175/360/48 170/351/48 -o SideThingy_Cube.009 -v -1.552216 0.766425 0.449060 -v -1.552216 0.766425 0.324053 -v -1.613245 0.699098 0.324053 -v -1.613245 0.699098 0.449060 -v -1.552216 0.456014 0.324053 -v -1.052377 0.766425 0.324053 -v -1.052377 0.456014 0.324053 -v -1.052377 0.766425 0.449060 -v -1.048308 0.766425 0.449060 -v -1.048308 0.766425 0.324053 -v -1.052377 0.456014 0.449060 -v -1.552216 0.456014 0.449060 -v -1.048308 0.456014 0.324053 -v -1.041527 0.788142 0.315308 -v -1.041527 0.434297 0.315308 -v -1.048308 0.456014 0.449060 -v -1.041527 0.788142 0.457806 -v -1.041527 0.434297 0.457806 -v -0.900483 0.434297 0.457806 -v -0.900483 0.788142 0.457806 -v -0.900483 0.788142 0.315308 -v -0.896414 0.768510 0.449899 -v -0.896414 0.768510 0.323214 -v -0.900483 0.434297 0.315308 -v -0.896414 0.453929 0.449899 -v -0.817755 0.457256 0.449106 -v -0.817755 0.767895 0.449106 -v -0.896414 0.453929 0.323214 -v -0.817755 0.457256 0.324007 -v -0.817755 0.767895 0.324007 -v -1.613245 0.523341 0.449060 -v -1.613245 0.523341 0.324053 -v -1.552216 0.766425 -0.449060 -v -1.613245 0.699098 -0.449060 -v -1.613245 0.699098 -0.324053 -v -1.552216 0.766425 -0.324053 -v -1.552216 0.456014 -0.324053 -v -1.052377 0.456014 -0.324053 -v -1.052377 0.766425 -0.324053 -v -1.048308 0.766425 -0.324053 -v -1.048308 0.766425 -0.449060 -v -1.052377 0.766425 -0.449060 -v -1.052377 0.456014 -0.449060 -v -1.552216 0.456014 -0.449060 -v -1.048308 0.456014 -0.324053 -v -1.041528 0.434297 -0.315308 -v -1.041528 0.788142 -0.315308 -v -1.048308 0.456014 -0.449060 -v -1.041528 0.788142 -0.457806 -v -0.900483 0.788142 -0.457806 -v -0.900483 0.434297 -0.457806 -v -1.041528 0.434297 -0.457806 -v -0.900483 0.788142 -0.315308 -v -0.896414 0.768510 -0.323214 -v -0.896414 0.768510 -0.449899 -v -0.900483 0.434297 -0.315308 -v -0.817755 0.767895 -0.449106 -v -0.817755 0.457256 -0.449106 -v -0.896414 0.453929 -0.449899 -v -0.896414 0.453929 -0.323214 -v -0.817755 0.457256 -0.324007 -v -0.817755 0.767895 -0.324007 -v -1.613245 0.523341 -0.449060 -v -1.613245 0.523341 -0.324053 -vt 0.875000 0.750000 -vt 0.875000 0.500000 -vt 0.875000 0.500000 -vt 0.875000 0.750000 -vt 0.375000 0.250000 -vt 0.625000 0.250000 -vt 0.625000 0.500000 -vt 0.375000 0.500000 -vt 0.625000 0.750000 -vt 0.625000 0.750000 -vt 0.625000 0.500000 -vt 0.375000 0.750000 -vt 0.625000 1.000000 -vt 0.375000 1.000000 -vt 0.125000 0.500000 -vt 0.125000 0.750000 -vt 0.375000 0.500000 -vt 0.625000 0.500000 -vt 0.375000 0.500000 -vt 0.375000 0.750000 -vt 0.625000 0.750000 -vt 0.375000 0.750000 -vt 0.375000 0.750000 -vt 0.625000 0.750000 -vt 0.625000 0.500000 -vt 0.625000 0.750000 -vt 0.625000 0.500000 -vt 0.375000 0.500000 -vt 0.375000 0.750000 -vt 0.375000 0.750000 -vt 0.625000 0.750000 -vt 0.375000 0.500000 -vt 0.375000 0.500000 -vt 0.625000 0.500000 -vt 0.375000 0.000000 -vt 0.625000 0.000000 -vt 0.625000 0.250000 -vt 0.375000 0.250000 -vt 0.125000 0.750000 -vt 0.125000 0.500000 -vt 0.625000 1.000000 -vt 0.375000 1.000000 -vt 0.875000 0.750000 -vt 0.875000 0.750000 -vt 0.875000 0.500000 -vt 0.875000 0.500000 -vt 0.375000 0.250000 -vt 0.375000 0.500000 -vt 0.625000 0.500000 -vt 0.625000 0.250000 -vt 0.625000 0.500000 -vt 0.625000 0.750000 -vt 0.625000 0.750000 -vt 0.375000 0.750000 -vt 0.375000 1.000000 -vt 0.625000 1.000000 -vt 0.125000 0.500000 -vt 0.125000 0.750000 -vt 0.375000 0.500000 -vt 0.375000 0.500000 -vt 0.625000 0.500000 -vt 0.375000 0.750000 -vt 0.625000 0.750000 -vt 0.625000 0.750000 -vt 0.375000 0.750000 -vt 0.375000 0.750000 -vt 0.625000 0.500000 -vt 0.625000 0.500000 -vt 0.625000 0.750000 -vt 0.375000 0.500000 -vt 0.625000 0.750000 -vt 0.375000 0.750000 -vt 0.375000 0.750000 -vt 0.375000 0.500000 -vt 0.375000 0.500000 -vt 0.625000 0.500000 -vt 0.375000 0.000000 -vt 0.375000 0.250000 -vt 0.625000 0.250000 -vt 0.625000 0.000000 -vt 0.125000 0.500000 -vt 0.125000 0.750000 -vt 0.375000 1.000000 -vt 0.625000 1.000000 -vn -0.7409 0.6716 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 1.0000 0.0000 -vn 0.0000 0.0000 1.0000 -vn 0.0000 -1.0000 -0.0000 -vn -0.7903 0.0000 -0.6128 -vn -0.7903 0.0000 0.6127 -vn -0.9545 -0.2981 -0.0000 -vn -0.9545 0.2981 0.0000 -vn 0.9792 0.2030 0.0000 -vn 0.0101 0.0000 0.9999 -vn 0.8891 0.0000 -0.4576 -vn 0.8892 0.0000 0.4576 -vn 0.9792 -0.2030 -0.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0423 -0.9991 -0.0000 -vn 0.0078 1.0000 0.0000 -vn 0.0101 0.0000 -0.9999 -vn -1.0000 0.0000 0.0000 -vn -0.7409 -0.6716 0.0000 -vn -0.7903 0.0000 -0.6127 -vn -0.9546 -0.2980 -0.0000 -vn -0.9546 0.2980 0.0000 -vn 0.8891 0.0000 0.4576 -vn 0.8892 0.0000 -0.4576 -s 1 -f 177/365/49 178/366/49 179/367/49 180/368/49 -f 181/369/50 178/370/50 182/371/50 183/372/50 -f 182/371/51 184/373/51 185/374/51 186/375/51 -f 187/376/52 184/373/52 177/377/52 188/378/52 -f 181/379/53 183/372/53 187/376/53 188/380/53 -f 182/371/51 178/366/51 177/365/51 184/373/51 -f 189/381/54 186/375/54 190/382/54 191/383/54 -f 183/372/50 182/371/50 186/375/50 189/381/50 -f 184/373/52 187/376/52 192/384/52 185/374/52 -f 187/376/53 183/372/53 189/381/53 192/384/53 -f 193/385/52 194/386/52 195/387/52 196/388/52 -f 185/374/55 192/384/55 194/386/55 193/385/55 -f 192/384/56 189/381/56 191/383/56 194/386/56 -f 186/375/57 185/374/57 193/385/57 190/382/57 -f 197/389/58 196/388/58 198/390/58 199/391/58 -f 194/386/53 191/383/53 200/392/53 195/387/53 -f 190/382/51 193/385/51 196/388/51 197/389/51 -f 191/383/50 190/382/50 197/389/50 200/392/50 -f 198/390/59 201/393/59 202/394/59 203/395/59 -f 200/392/60 197/389/60 199/391/60 204/396/60 -f 196/388/61 195/387/61 201/393/61 198/390/61 -f 195/387/62 200/392/62 204/396/62 201/393/62 -f 205/397/63 206/398/63 203/395/63 202/394/63 -f 201/393/64 204/396/64 205/397/64 202/394/64 -f 199/391/65 198/390/65 203/395/65 206/398/65 -f 204/396/66 199/391/66 206/398/66 205/397/66 -f 207/399/67 180/400/67 179/401/67 208/402/67 -f 181/379/68 188/380/68 207/403/68 208/404/68 -f 178/370/50 181/369/50 208/402/50 179/401/50 -f 188/378/52 177/377/52 180/405/52 207/406/52 -f 209/407/49 210/408/49 211/409/49 212/410/49 -f 213/411/52 214/412/52 215/413/52 212/414/52 -f 215/413/51 216/415/51 217/416/51 218/417/51 -f 219/418/50 220/419/50 209/420/50 218/417/50 -f 213/421/53 220/422/53 219/418/53 214/412/53 -f 215/413/51 218/417/51 209/407/51 212/410/51 -f 221/423/55 222/424/55 223/425/55 216/415/55 -f 214/412/52 221/423/52 216/415/52 215/413/52 -f 218/417/50 217/416/50 224/426/50 219/418/50 -f 219/418/53 224/426/53 221/423/53 214/412/53 -f 225/427/50 226/428/50 227/429/50 228/430/50 -f 217/416/69 225/427/69 228/430/69 224/426/69 -f 224/426/70 228/430/70 222/424/70 221/423/70 -f 216/415/71 223/425/71 225/427/71 217/416/71 -f 229/431/58 230/432/58 231/433/58 226/428/58 -f 228/430/53 227/429/53 232/434/53 222/424/53 -f 223/425/51 229/431/51 226/428/51 225/427/51 -f 222/424/52 232/434/52 229/431/52 223/425/52 -f 231/433/66 233/435/66 234/436/66 235/437/66 -f 232/434/72 236/438/72 230/432/72 229/431/72 -f 226/428/73 231/433/73 235/437/73 227/429/73 -f 227/429/62 235/437/62 236/438/62 232/434/62 -f 237/439/63 234/436/63 233/435/63 238/440/63 -f 235/437/64 234/436/64 237/439/64 236/438/64 -f 230/432/65 238/440/65 233/435/65 231/433/65 -f 236/438/59 237/439/59 238/440/59 230/432/59 -f 239/441/67 240/442/67 211/443/67 210/444/67 -f 213/421/68 240/445/68 239/446/68 220/422/68 -f 212/414/52 211/443/52 240/442/52 213/411/52 -f 220/419/50 239/447/50 210/448/50 209/420/50 -o AmmoVice_Cylinder.010 -v -2.170566 0.644712 -0.108739 -v -2.102717 0.644712 -0.108739 -v -2.102717 0.567822 -0.076890 -v -2.170566 0.567822 -0.076890 -v -2.102717 0.535974 0.000000 -v -2.170566 0.535974 0.000000 -v -2.102717 0.567822 0.076890 -v -2.170566 0.567822 0.076890 -v -2.102717 0.644712 0.108739 -v -2.170566 0.644712 0.108739 -v -2.102717 0.721602 0.076890 -v -2.170566 0.721602 0.076890 -v -2.102717 0.753451 0.000000 -v -2.170566 0.753451 0.000000 -v -2.102717 0.721602 -0.076890 -v -2.170566 0.721602 -0.076890 -v -2.209619 0.644712 0.088337 -v -2.209619 0.582248 0.062464 -v -2.209619 0.644712 -0.088337 -v -2.209619 0.582248 -0.062464 -v -2.209619 0.556375 0.000000 -v -2.209619 0.707176 0.062464 -v -2.209619 0.733049 0.000000 -v -2.209619 0.707176 -0.062464 -vt 1.000000 0.500000 -vt 1.000000 1.000000 -vt 0.875000 1.000000 -vt 0.875000 0.500000 -vt 0.750000 1.000000 -vt 0.750000 0.500000 -vt 0.625000 1.000000 -vt 0.625000 0.500000 -vt 0.500000 1.000000 -vt 0.500000 0.500000 -vt 0.375000 1.000000 -vt 0.375000 0.500000 -vt 0.250000 1.000000 -vt 0.250000 0.500000 -vt 0.419706 0.419706 -vt 0.250000 0.490000 -vt 0.080294 0.419706 -vt 0.010000 0.250000 -vt 0.080294 0.080294 -vt 0.250000 0.010000 -vt 0.419706 0.080294 -vt 0.490000 0.250000 -vt 0.125000 1.000000 -vt 0.125000 0.500000 -vt 0.000000 1.000000 -vt 0.000000 0.500000 -vt 0.500000 0.500000 -vt 0.625000 0.500000 -vt 0.750000 0.490000 -vt 0.919706 0.419706 -vt 0.990000 0.250000 -vt 0.919706 0.080294 -vt 0.750000 0.010000 -vt 0.580294 0.080294 -vt 0.510000 0.250000 -vt 0.580294 0.419706 -vt 0.125000 0.500000 -vt 0.250000 0.500000 -vt 0.750000 0.500000 -vt 0.875000 0.500000 -vt 0.375000 0.500000 -vt 0.000000 0.500000 -vt 1.000000 0.500000 -vn 0.0000 -0.3827 -0.9239 -vn 0.0000 -0.9239 -0.3827 -vn 0.0000 -0.9239 0.3827 -vn 0.0000 -0.3827 0.9239 -vn 0.0000 0.3827 0.9239 -vn 0.0000 0.9239 0.3827 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.9239 -0.3827 -vn 0.0000 0.3827 -0.9239 -vn -0.4347 -0.3446 0.8320 -vn -1.0000 0.0000 0.0000 -vn -0.4347 0.8320 -0.3446 -vn -0.4347 -0.8320 -0.3446 -vn -0.4347 0.3446 0.8320 -vn -0.4347 0.3446 -0.8320 -vn -0.4347 -0.3446 -0.8320 -vn -0.4347 -0.8320 0.3446 -vn -0.4347 0.8320 0.3446 -s 1 -f 241/449/74 242/450/74 243/451/74 244/452/74 -f 244/452/75 243/451/75 245/453/75 246/454/75 -f 246/454/76 245/453/76 247/455/76 248/456/76 -f 248/456/77 247/455/77 249/457/77 250/458/77 -f 250/458/78 249/457/78 251/459/78 252/460/78 -f 252/460/79 251/459/79 253/461/79 254/462/79 -f 243/463/80 242/464/80 255/465/80 253/466/80 251/467/80 249/468/80 247/469/80 245/470/80 -f 254/462/81 253/461/81 255/471/81 256/472/81 -f 256/472/82 255/471/82 242/473/82 241/474/82 -f 248/456/83 250/458/83 257/475/83 258/476/83 -f 259/477/84 260/478/84 261/479/84 258/480/84 257/481/84 262/482/84 263/483/84 264/484/84 -f 254/462/85 256/472/85 264/485/85 263/486/85 -f 244/452/86 246/454/86 261/487/86 260/488/86 -f 250/458/87 252/460/87 262/489/87 257/475/87 -f 256/472/88 241/474/88 259/490/88 264/485/88 -f 241/449/89 244/452/89 260/488/89 259/491/89 -f 246/454/90 248/456/90 258/476/90 261/487/90 -f 252/460/91 254/462/91 263/486/91 262/489/91 -o UnderailBit_Cylinder.006 -v -0.166791 0.038391 -0.117032 -v -0.166791 0.038391 0.117032 -v -0.118438 0.018363 0.117032 -v -0.118438 0.018363 -0.117032 -v -0.098409 -0.029991 0.117032 -v -0.098409 -0.029991 -0.117032 -v -0.118438 -0.078344 0.117032 -v -0.118438 -0.078344 -0.117032 -v -0.166791 -0.098373 0.117032 -v -0.166791 -0.098373 -0.117032 -v -0.215145 -0.078344 0.117032 -v -0.215145 -0.078344 -0.117032 -v -0.235173 -0.029991 0.117032 -v -0.235173 -0.029991 -0.117032 -v -0.215145 0.018363 0.117032 -v -0.215145 0.018363 -0.117032 -vt 1.000000 0.500000 -vt 1.000000 1.000000 -vt 0.875000 1.000000 -vt 0.875000 0.500000 -vt 0.750000 1.000000 -vt 0.750000 0.500000 -vt 0.625000 1.000000 -vt 0.625000 0.500000 -vt 0.500000 1.000000 -vt 0.500000 0.500000 -vt 0.375000 1.000000 -vt 0.375000 0.500000 -vt 0.250000 1.000000 -vt 0.250000 0.500000 -vt 0.419706 0.419706 -vt 0.250000 0.490000 -vt 0.080294 0.419706 -vt 0.010000 0.250000 -vt 0.080294 0.080294 -vt 0.250000 0.010000 -vt 0.419706 0.080294 -vt 0.490000 0.250000 -vt 0.125000 1.000000 -vt 0.125000 0.500000 -vt 0.000000 1.000000 -vt 0.000000 0.500000 -vt 0.750000 0.490000 -vt 0.919706 0.419706 -vt 0.990000 0.250000 -vt 0.919706 0.080294 -vt 0.750000 0.010000 -vt 0.580294 0.080294 -vt 0.510000 0.250000 -vt 0.580294 0.419706 -vn 0.3827 0.9239 0.0000 -vn 0.9239 0.3827 0.0000 -vn 0.9239 -0.3827 -0.0000 -vn 0.3827 -0.9239 -0.0000 -vn -0.3827 -0.9239 -0.0000 -vn -0.9239 -0.3827 -0.0000 -vn 0.0000 -0.0000 1.0000 -vn -0.9239 0.3827 0.0000 -vn -0.3827 0.9239 0.0000 -vn -0.0000 0.0000 -1.0000 -s 1 -f 265/492/92 266/493/92 267/494/92 268/495/92 -f 268/495/93 267/494/93 269/496/93 270/497/93 -f 270/497/94 269/496/94 271/498/94 272/499/94 -f 272/499/95 271/498/95 273/500/95 274/501/95 -f 274/501/96 273/500/96 275/502/96 276/503/96 -f 276/503/97 275/502/97 277/504/97 278/505/97 -f 267/506/98 266/507/98 279/508/98 277/509/98 275/510/98 273/511/98 271/512/98 269/513/98 -f 278/505/99 277/504/99 279/514/99 280/515/99 -f 280/515/100 279/514/100 266/516/100 265/517/100 -f 265/518/101 268/519/101 270/520/101 272/521/101 274/522/101 276/523/101 278/524/101 280/525/101 -o Underail_Cube.004 -v -0.033837 0.094104 -0.072767 -v -0.033837 -0.016338 -0.072767 -v -0.115306 -0.142061 -0.072767 -v -0.115306 0.094104 -0.072767 -v 0.797049 0.094104 -0.072767 -v 0.797049 -0.016338 -0.072767 -v 0.796577 -0.079782 0.048582 -v 0.796577 -0.079782 -0.048582 -v 0.886076 -0.258069 -0.048582 -v 0.886076 -0.258069 0.048582 -v 0.797049 -0.016338 0.072767 -v 0.797049 0.094104 0.072767 -v -0.033837 0.094104 0.072767 -v -0.033837 -0.016338 0.072767 -v -0.026079 -0.079782 -0.048582 -v -0.115306 0.094104 0.072767 -v -0.272459 0.094104 -0.072767 -v -0.272459 0.094104 0.072767 -v -0.115306 -0.142061 0.072767 -v -0.272459 -0.098487 0.072767 -v -0.264701 -0.161930 0.048582 -v -0.107548 -0.205505 0.048582 -v -0.272459 -0.098487 -0.072767 -v -0.026079 -0.079782 0.048582 -v -0.107548 -0.205505 -0.048582 -v -0.264701 -0.161930 -0.048582 -v 0.886547 0.093771 0.072767 -v 0.886547 0.093771 -0.072767 -v 0.886547 -0.194626 0.072767 -v 0.888072 -0.069961 0.072767 -v 0.917361 0.000750 0.072767 -v 0.988072 0.030039 0.072767 -v 1.058783 0.000750 0.072767 -v 1.088072 -0.069961 0.072767 -v 1.088250 -0.195375 0.072767 -v 1.088250 0.093022 0.072767 -v 0.886547 -0.194626 -0.072767 -v 1.088250 -0.195375 -0.072767 -v 1.087778 -0.258818 -0.048582 -v 1.087778 -0.258818 0.048582 -v 1.152616 -0.153109 -0.048582 -v 1.152616 -0.153109 0.048582 -v 1.153087 -0.089666 0.072767 -v 1.088250 0.093022 -0.072767 -v 0.888072 -0.069961 -0.072767 -v 0.917362 -0.140671 -0.072767 -v 0.988072 -0.169961 -0.072767 -v 1.058783 -0.140671 -0.072767 -v 1.088072 -0.069961 -0.072767 -v 1.153087 -0.089666 -0.072767 -v 1.153087 0.092782 -0.072767 -v 1.153087 0.092782 0.072767 -v 0.917361 0.000750 -0.072767 -v 1.058783 0.000750 -0.072767 -v 1.058783 -0.140671 0.072767 -v 0.988072 -0.169961 0.072767 -v 0.917362 -0.140671 0.072767 -v 0.988072 0.030039 -0.072767 -vt 0.625000 0.250000 -vt 0.375000 0.250000 -vt 0.375000 0.250000 -vt 0.625000 0.250000 -vt 0.625000 0.500000 -vt 0.375000 0.500000 -vt 0.375000 0.750000 -vt 0.375000 0.500000 -vt 0.375000 0.500000 -vt 0.375000 0.750000 -vt 0.375000 0.750000 -vt 0.625000 0.750000 -vt 0.625000 1.000000 -vt 0.375000 1.000000 -vt 0.375000 0.250000 -vt 0.875000 0.500000 -vt 0.875000 0.750000 -vt 0.875000 0.750000 -vt 0.875000 0.500000 -vt 0.875000 0.500000 -vt 0.875000 0.750000 -vt 0.625000 1.000000 -vt 0.375000 1.000000 -vt 0.375000 1.000000 -vt 0.375000 1.000000 -vt 0.375000 1.000000 -vt 0.375000 0.000000 -vt 0.625000 0.000000 -vt 0.625000 0.250000 -vt 0.375000 0.250000 -vt 0.375000 1.000000 -vt 0.625000 1.000000 -vt 0.125000 0.500000 -vt 0.125000 0.750000 -vt 0.125000 0.750000 -vt 0.125000 0.500000 -vt 0.125000 0.750000 -vt 0.125000 0.500000 -vt 0.375000 0.250000 -vt 0.375000 0.000000 -vt 0.625000 0.750000 -vt 0.625000 0.500000 -vt 0.375000 0.250000 -vt 0.375000 0.750000 -vt 0.483072 0.750000 -vt 0.544463 0.750000 -vt 0.570080 0.750000 -vt 0.544918 0.750000 -vt 0.483716 0.750000 -vt 0.375000 0.750000 -vt 0.625000 0.750000 -vt 0.375000 0.500000 -vt 0.375000 0.500000 -vt 0.375000 0.500000 -vt 0.375000 0.750000 -vt 0.375000 0.500000 -vt 0.375000 0.750000 -vt 0.375000 0.750000 -vt 0.625000 0.500000 -vt 0.483072 0.500000 -vt 0.421870 0.500000 -vt 0.396708 0.500000 -vt 0.422325 0.500000 -vt 0.483716 0.500000 -vt 0.375000 0.500000 -vt 0.625000 0.500000 -vt 0.625000 0.750000 -vt 0.125000 0.688522 -vt 0.125000 0.811478 -vt 0.250000 0.811478 -vt 0.250000 0.688522 -vt 0.750000 0.688522 -vt 0.750000 0.811478 -vt 0.875000 0.811478 -vt 0.875000 0.688522 -vt 0.422325 0.750000 -vt 0.396708 0.750000 -vt 0.421870 0.750000 -vt 0.375000 0.811478 -vt 0.375000 0.688522 -vt 0.625000 0.688522 -vt 0.625000 0.811478 -vt 0.500000 0.688522 -vt 0.500000 0.811478 -vt 0.000000 0.688522 -vt 0.000000 0.811478 -vt 1.000000 0.811478 -vt 1.000000 0.688522 -vt 0.544918 0.500000 -vt 0.570080 0.500000 -vt 0.544463 0.500000 -vn 0.0000 0.0000 -1.0000 -vn -0.8937 -0.4486 0.0000 -vn 0.0000 -0.0000 1.0000 -vn 0.0000 -0.3562 -0.9344 -vn 0.0019 1.0000 0.0000 -vn 0.0000 1.0000 0.0000 -vn -0.1012 -0.3652 0.9254 -vn -1.0000 -0.0000 0.0000 -vn 0.4263 -0.2762 0.8614 -vn 0.0000 -1.0000 0.0000 -vn 0.8392 -0.5438 0.0000 -vn -0.2672 -0.9636 0.0000 -vn -0.9926 -0.1214 0.0000 -vn 0.0037 1.0000 0.0000 -vn -0.1012 -0.3652 -0.9254 -vn 0.4263 -0.2762 -0.8614 -vn 0.0000 -0.3562 0.9344 -vn -0.0013 -0.3562 -0.9344 -vn -0.5737 -0.2880 -0.7667 -vn -0.5737 -0.2880 0.7667 -vn 0.8524 -0.5228 0.0000 -vn 0.5062 -0.3105 0.8046 -vn -0.0013 -0.3562 0.9344 -vn -0.0037 -1.0000 0.0000 -vn 1.0000 -0.0069 -0.0000 -vn 1.0000 0.0000 0.0000 -vn 1.0000 -0.0074 0.0000 -vn 0.5062 -0.3105 -0.8046 -vn 0.9239 -0.3827 -0.0000 -vn -0.9239 -0.3827 -0.0000 -vn 0.9239 0.3827 0.0000 -vn -0.9239 0.3827 0.0000 -vn -0.3827 0.9239 0.0000 -vn 0.3827 -0.9239 -0.0000 -vn -0.3827 -0.9239 -0.0000 -vn 0.3827 0.9239 0.0000 -s 1 -f 281/526/102 282/527/102 283/528/102 284/529/102 -f 282/527/102 281/526/102 285/530/102 286/531/102 -f 287/532/103 288/533/103 289/534/103 290/535/103 -f 291/536/104 292/537/104 293/538/104 294/539/104 -f 282/527/105 286/531/105 288/533/105 295/540/105 -f 285/530/106 281/541/107 293/542/107 292/537/106 -f 296/543/107 284/544/107 297/545/107 298/546/107 -f 294/539/104 293/538/104 296/547/104 299/548/104 -f 293/542/107 281/541/107 284/544/107 296/543/107 -f 299/548/108 300/549/108 301/550/108 302/551/108 -f 300/552/109 298/553/109 297/554/109 303/555/109 -f 294/539/110 299/548/110 302/551/110 304/556/110 -f 284/529/102 283/528/102 303/555/102 297/554/102 -f 299/548/104 296/547/104 298/557/104 300/549/104 -f 295/558/111 288/533/111 287/532/111 304/559/111 -f 295/558/112 304/559/112 302/560/112 305/561/112 -f 305/561/113 302/560/113 301/562/113 306/563/113 -f 300/552/114 303/555/114 306/564/114 301/565/114 -f 285/530/106 292/537/106 307/566/115 308/567/115 -f 303/555/116 283/528/116 305/568/116 306/564/116 -f 283/528/117 282/527/117 295/540/117 305/568/117 -f 291/536/118 294/539/118 304/556/118 287/532/118 -f 307/566/104 309/569/104 310/570/104 311/571/104 312/572/104 313/573/104 314/574/104 315/575/104 316/576/104 -f 289/534/119 317/577/119 318/578/119 319/579/119 -f 288/533/120 286/531/120 317/577/120 289/534/120 -f 286/531/102 285/530/102 308/567/102 317/577/102 -f 291/536/121 287/532/121 290/535/121 309/569/121 -f 292/537/104 291/536/104 309/569/104 307/566/104 -f 320/580/122 319/579/122 321/581/122 322/582/122 -f 315/575/123 320/580/123 322/582/123 323/583/123 -f 309/569/124 290/535/124 320/580/124 315/575/124 -f 290/535/125 289/534/125 319/579/125 320/580/125 -f 308/567/115 307/566/115 316/576/115 324/584/115 -f 317/577/102 325/585/102 326/586/102 327/587/102 328/588/102 329/589/102 318/578/102 -f 330/590/126 331/591/127 332/592/127 323/583/126 -f 330/590/126 323/583/126 322/582/128 321/581/128 -f 324/584/115 316/576/115 332/592/115 331/591/115 -f 318/578/102 324/584/102 331/591/102 330/590/102 -f 319/579/129 318/578/129 330/590/129 321/581/129 -f 316/576/104 315/575/104 323/583/104 332/592/104 -f 333/593/130 311/594/130 310/595/130 325/596/130 -f 329/597/131 314/598/131 313/599/131 334/600/131 -f 315/575/104 314/574/104 335/601/104 336/602/104 337/603/104 310/570/104 309/569/104 -f 325/596/132 310/595/132 337/604/132 326/605/132 -f 328/606/133 335/607/133 314/598/133 329/597/133 -f 327/608/134 336/609/134 335/607/134 328/606/134 -f 338/610/135 312/611/135 311/594/135 333/593/135 -f 334/600/136 313/599/136 312/612/136 338/613/136 -f 326/605/137 337/604/137 336/609/137 327/608/137 -f 318/578/102 329/589/102 334/614/102 338/615/102 333/616/102 325/585/102 317/577/102 308/567/102 324/584/102 -o UndeRail_Cube.005 -v -1.185225 0.299229 -0.228225 -v -1.185225 0.078919 -0.228225 -v -1.579320 0.146982 -0.228225 -v -1.579320 0.299229 -0.228225 -v -0.726389 0.070637 -0.201417 -v -0.726389 0.299229 -0.201417 -v -0.726389 0.299229 0.201417 -v -0.726389 0.070637 0.201417 -v -0.770558 0.343398 -0.201417 -v -1.096886 0.343398 -0.201417 -v -1.096886 0.343398 0.201417 -v -0.770558 0.343398 0.201417 -v -1.185225 0.078919 0.228225 -v -1.185225 0.299229 0.228225 -v -1.579320 0.299229 0.228225 -v -1.579320 0.146982 0.228225 -v -1.185225 0.343398 0.201417 -v -1.185225 0.343398 -0.201417 -v -1.579320 0.343398 -0.201417 -v -1.579320 0.343398 0.201417 -v -1.096886 0.026467 -0.201417 -v -0.770558 0.026467 -0.201417 -v -0.770558 0.026467 0.201417 -v -1.096886 0.026467 0.201417 -v -1.096886 0.070637 -0.228225 -v -1.096886 0.299229 -0.228225 -v -0.770558 0.299229 -0.228225 -v -0.770558 0.070637 -0.228225 -v -0.770558 0.070637 0.228225 -v -0.770558 0.299229 0.228225 -v -1.096886 0.299229 0.228225 -v -1.096886 0.070637 0.228225 -v -1.690351 0.200246 0.201417 -v -1.690351 0.287913 0.201417 -v -1.690351 0.287913 -0.201417 -v -1.690351 0.200246 -0.201417 -v -1.184581 0.033984 0.201417 -v -1.184581 0.033984 -0.201417 -v -1.659805 0.134929 0.201417 -v -1.579964 0.102270 0.201417 -v -1.667659 0.194088 0.228225 -v -1.667659 0.291126 0.228225 -v -1.646801 0.339453 0.201417 -v -1.659805 0.134929 -0.201417 -v -1.667659 0.194088 -0.228225 -v -1.579964 0.102270 -0.201417 -v -1.667040 0.336028 -0.201417 -v -1.667659 0.291126 -0.228225 -vt 0.588425 0.250000 -vt 0.411758 0.250000 -vt 0.420274 0.250000 -vt 0.579929 0.250000 -vt 0.409842 0.514683 -vt 0.590158 0.514683 -vt 0.590158 0.735317 -vt 0.409842 0.735317 -vt 0.651630 0.514683 -vt 0.848370 0.514683 -vt 0.848370 0.735317 -vt 0.651630 0.735317 -vt 0.411758 1.000000 -vt 0.588425 1.000000 -vt 0.579929 1.000000 -vt 0.420274 1.000000 -vt 0.875000 0.735317 -vt 0.875000 0.514683 -vt 0.875000 0.514683 -vt 0.875000 0.735317 -vt 0.151630 0.514683 -vt 0.348370 0.514683 -vt 0.348370 0.735317 -vt 0.151630 0.735317 -vt 0.409842 0.276630 -vt 0.590158 0.276630 -vt 0.590158 0.473370 -vt 0.409842 0.473370 -vt 0.409842 0.776629 -vt 0.590158 0.776630 -vt 0.590158 0.973370 -vt 0.409842 0.973370 -vt 0.437738 0.014683 -vt 0.562262 0.014683 -vt 0.562262 0.235317 -vt 0.437738 0.235317 -vt 0.098759 0.735317 -vt 0.125000 0.735317 -vt 0.151630 0.750000 -vt 0.125000 0.750000 -vt 0.590158 1.000000 -vt 0.625000 1.000000 -vt 0.625000 1.000000 -vt 0.098759 0.514683 -vt 0.125000 0.500000 -vt 0.151630 0.500000 -vt 0.125000 0.514683 -vt 0.625000 0.250000 -vt 0.625000 0.250000 -vt 0.590158 0.250000 -vt 0.625000 0.250000 -vt 0.375000 0.735317 -vt 0.348370 0.750000 -vt 0.625000 0.776630 -vt 0.625000 0.776630 -vt 0.590158 0.750000 -vt 0.348370 0.500000 -vt 0.375000 0.514683 -vt 0.625000 0.514683 -vt 0.625000 0.514683 -vt 0.590158 0.500000 -vt 0.125000 0.735317 -vt 0.125000 0.735317 -vt 0.125000 0.750000 -vt 0.125000 0.750000 -vt 0.565038 1.000000 -vt 0.577732 1.000000 -vt 0.625000 1.000000 -vt 0.617113 1.000000 -vt 0.125000 0.514683 -vt 0.125000 0.500000 -vt 0.125000 0.500000 -vt 0.125000 0.514683 -vt 0.611973 0.250000 -vt 0.625000 0.250000 -vt 0.625000 0.250000 -vt 0.569060 0.250000 -vt 0.125000 0.735317 -vt 0.572214 1.000000 -vt 0.625000 1.000000 -vt 0.562262 1.000000 -vt 0.125000 0.514683 -vt 0.625000 0.250000 -vt 0.625000 0.250000 -vt 0.562262 0.250000 -vt 0.125000 0.735317 -vt 0.125000 0.514683 -vt 0.625000 0.276630 -vt 0.625000 0.473370 -vt 0.625000 0.973370 -vt 0.567775 1.000000 -vt 0.441517 1.000000 -vt 0.875000 0.514683 -vt 0.875000 0.735317 -vt 0.441517 0.250000 -vt 0.567775 0.250000 -vt 0.436229 1.000000 -vt 0.437738 1.000000 -vt 0.625000 0.014683 -vt 0.625000 0.235317 -vt 0.572214 0.250000 -vt 0.436229 0.250000 -vn 0.0000 0.0000 -1.0000 -vn 1.0000 -0.0000 0.0000 -vn 0.0000 1.0000 0.0000 -vn -0.0000 -0.0000 1.0000 -vn 0.0000 -1.0000 -0.0000 -vn -1.0000 0.0000 0.0000 -vn -0.0462 -0.5153 0.8558 -vn 0.0000 0.5189 0.8549 -vn -0.0462 -0.5153 -0.8558 -vn 0.0000 0.5189 -0.8549 -vn 0.4606 -0.4605 0.7588 -vn 0.4606 0.4606 0.7588 -vn 0.4606 -0.4605 -0.7588 -vn 0.4606 0.4606 -0.7588 -vn -0.2180 -0.4596 0.8610 -vn -0.0393 0.5077 0.8606 -vn -0.2180 -0.4596 -0.8610 -vn -0.0453 0.5154 -0.8557 -vn -0.7527 -0.3520 0.5563 -vn -0.6638 0.5609 0.4947 -vn -0.7527 -0.3520 -0.5563 -vn -0.7340 0.3556 -0.5787 -vn -0.0854 -0.9963 -0.0000 -vn 0.0000 -0.5188 -0.8549 -vn 0.5189 0.0000 -0.8549 -vn 0.7071 -0.7071 -0.0000 -vn 0.7071 0.7071 0.0000 -vn 0.5189 -0.0000 0.8549 -vn 0.0000 -0.5188 0.8549 -vn -0.3786 -0.9256 -0.0000 -vn -0.0727 0.9974 -0.0024 -vn -0.0883 -0.5113 0.8549 -vn -0.0883 -0.5113 -0.8549 -vn -0.9058 -0.4236 -0.0000 -vn -0.7633 0.0000 0.6461 -vn -0.8303 0.5571 0.0185 -vn -0.7633 0.0000 -0.6461 -vn -0.1702 -0.9854 -0.0000 -s 1 -f 339/617/138 340/618/138 341/619/138 342/620/138 -f 343/621/139 344/622/139 345/623/139 346/624/139 -f 347/625/140 348/626/140 349/627/140 350/628/140 -f 351/629/141 352/630/141 353/631/141 354/632/141 -f 355/633/140 356/634/140 357/635/140 358/636/140 -f 359/637/142 360/638/142 361/639/142 362/640/142 -f 363/641/138 364/642/138 365/643/138 366/644/138 -f 367/645/141 368/646/141 369/647/141 370/648/141 -f 371/649/143 372/650/143 373/651/143 374/652/143 -f 375/653/144 362/654/144 370/655/144 351/656/144 -f 352/630/145 369/657/145 349/658/145 355/659/145 -f 376/660/146 340/661/146 363/662/146 359/663/146 -f 356/664/147 348/665/147 364/666/147 339/667/147 -f 361/639/148 346/668/148 367/669/148 -f 350/670/149 368/671/149 345/672/149 -f 360/638/150 366/673/150 343/674/150 -f 347/675/151 344/676/151 365/677/151 -f 377/678/152 378/679/152 354/680/152 379/681/152 -f 380/682/153 353/683/153 358/684/153 381/685/153 -f 382/686/154 383/687/154 341/688/154 384/689/154 -f 385/690/155 357/691/155 342/692/155 386/693/155 -f 377/678/156 379/681/156 371/694/156 -f 380/695/157 381/696/157 372/697/157 -f 382/686/158 374/698/158 383/687/158 -f 385/699/159 386/700/159 373/701/159 -f 359/637/160 362/640/160 375/702/160 376/703/160 -f 370/648/141 369/647/141 352/630/141 351/629/141 -f 349/627/140 348/626/140 356/634/140 355/633/140 -f 364/642/138 363/641/138 340/618/138 339/617/138 -f 360/638/161 359/637/161 363/662/161 366/673/161 -f 348/704/147 347/705/147 365/643/147 364/642/147 -f 344/622/162 343/621/162 366/644/162 365/643/162 -f 361/639/163 360/638/163 343/621/163 346/624/163 -f 347/625/164 350/628/164 345/623/164 344/622/164 -f 368/646/165 367/645/165 346/624/165 345/623/165 -f 362/640/166 361/639/166 367/669/166 370/655/166 -f 350/670/145 349/706/145 369/647/145 368/646/145 -f 384/689/167 378/679/167 377/678/167 382/686/167 -f 354/632/141 353/631/141 380/707/141 379/708/141 -f 358/636/168 357/635/168 385/709/168 381/710/168 -f 342/620/138 341/619/138 383/711/138 386/712/138 -f 339/617/147 342/620/147 357/691/147 356/664/147 -f 353/631/145 352/630/145 355/659/145 358/684/145 -f 351/656/169 354/680/169 378/679/169 375/702/169 -f 341/688/170 340/661/170 376/703/170 384/689/170 -f 382/686/171 377/678/171 371/694/171 374/698/171 -f 379/713/172 380/695/172 372/697/172 371/714/172 -f 381/715/173 385/716/173 373/651/173 372/650/173 -f 386/717/174 383/718/174 374/652/174 373/651/174 -f 376/703/175 375/702/175 378/679/175 384/689/175 -o TriggerGuard_Cube.007 -v -0.991593 0.009137 0.090896 -v -0.991593 0.050129 0.090896 -v -0.991593 0.050129 -0.090896 -v -0.991593 0.009137 -0.090896 -v -0.359255 0.050129 -0.090896 -v -0.359255 0.009137 -0.090896 -v -0.359255 0.050129 0.090896 -v -0.359255 0.009137 0.090896 -v -0.952793 -0.032302 0.079741 -v -0.475801 -0.032302 0.079741 -v -0.398056 -0.032302 0.079741 -v -0.952793 -0.032302 -0.079741 -v -0.477062 -0.032302 -0.079741 -v -0.398056 -0.032302 -0.079741 -v -0.547697 -0.243266 -0.079741 -v -0.468691 -0.243266 -0.079741 -v -0.417833 -0.308250 -0.079741 -v -0.496840 -0.308250 -0.079741 -v -0.468691 -0.243266 0.079741 -v -0.546437 -0.243266 0.079741 -v -0.495579 -0.308250 0.079741 -v -0.884730 -0.317360 -0.073714 -v -0.883469 -0.317360 0.085769 -v -0.417833 -0.308250 0.079741 -v -0.548320 -0.390292 0.079741 -v -0.549581 -0.390292 -0.079741 -v -0.470574 -0.390292 -0.079741 -v -0.470574 -0.390292 0.079741 -v -0.933383 -0.398929 -0.073714 -v -0.932122 -0.398929 0.085769 -v -1.071287 -0.315922 0.087949 -v -1.072548 -0.315922 -0.071533 -v -1.022634 -0.234353 0.087949 -v -1.023895 -0.234353 -0.071533 -vt 0.375000 0.000000 -vt 0.625000 0.000000 -vt 0.625000 0.250000 -vt 0.375000 0.250000 -vt 0.625000 0.500000 -vt 0.375000 0.500000 -vt 0.625000 0.750000 -vt 0.375000 0.750000 -vt 0.625000 1.000000 -vt 0.375000 1.000000 -vt 0.375000 1.000000 -vt 0.375000 0.806259 -vt 0.375000 0.750000 -vt 0.875000 0.500000 -vt 0.875000 0.750000 -vt 0.125000 0.500000 -vt 0.318173 0.500000 -vt 0.318741 0.750000 -vt 0.125000 0.750000 -vt 0.375000 0.500000 -vt 0.375000 0.443173 -vt 0.375000 0.250000 -vt 0.375000 0.000000 -vt 0.375000 0.443173 -vt 0.375000 0.500000 -vt 0.375000 0.500000 -vt 0.375000 0.443173 -vt 0.375000 0.750000 -vt 0.375000 0.806259 -vt 0.318173 0.500000 -vt 0.318741 0.750000 -vt 0.318741 0.750000 -vt 0.318173 0.500000 -vt 0.318173 0.500000 -vt 0.318741 0.750000 -vt 0.375000 0.750000 -vt 0.375000 0.806259 -vt 0.318741 0.750000 -vt 0.318173 0.500000 -vt 0.375000 0.500000 -vt 0.375000 0.750000 -vt 0.375000 0.806259 -vt 0.375000 0.443173 -vt 0.318173 0.500000 -vt 0.318741 0.750000 -vt 0.318741 0.750000 -vt 0.318173 0.500000 -vt 0.375000 0.443173 -vt 0.375000 0.443173 -vt 0.375000 0.806259 -vt 0.375000 0.806259 -vt 0.318741 0.750000 -vt 0.318173 0.500000 -vt 0.375000 0.443173 -vt 0.375000 0.443173 -vt 0.375000 0.806259 -vt 0.375000 0.806259 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.0000 1.0000 -vn 0.0000 -0.2599 0.9656 -vn 0.0000 1.0000 0.0000 -vn 0.0000 -1.0000 -0.0000 -vn 0.0000 -0.2599 -0.9656 -vn -0.7300 -0.6835 -0.0000 -vn 0.7300 -0.6835 -0.0000 -vn 0.9483 -0.3175 0.0000 -vn -0.9482 0.3175 0.0075 -vn -0.0235 0.9997 0.0002 -vn 0.7875 0.6163 0.0000 -vn -0.7875 -0.6163 0.0062 -vn 0.8412 -0.5408 0.0000 -vn -0.5122 -0.8589 0.0040 -vn -0.0158 0.0098 -0.9998 -vn -0.0154 0.0095 -0.9998 -vn -0.0119 0.0071 -0.9999 -vn 0.0158 -0.0098 0.9998 -vn 0.0119 -0.0071 0.9999 -vn 0.0154 -0.0095 0.9998 -vn 0.0225 -0.9997 -0.0002 -vn -0.8588 0.5123 0.0068 -vn -0.0116 0.0069 -0.9999 -vn 0.5122 0.8589 -0.0040 -vn 0.0116 -0.0069 0.9999 -s 1 -f 387/719/176 388/720/176 389/721/176 390/722/176 -f 390/722/177 389/721/177 391/723/177 392/724/177 -f 392/724/178 391/723/178 393/725/178 394/726/178 -f 394/726/179 393/725/179 388/727/179 387/728/179 -f 394/726/180 387/728/180 395/729/180 396/730/180 397/731/180 -f 391/723/181 389/732/181 388/733/181 393/725/181 -f 398/734/182 399/735/182 396/736/182 395/737/182 -f 390/722/183 392/724/183 400/738/183 399/739/183 398/740/183 -f 387/719/184 390/722/184 398/740/184 395/741/184 -f 392/724/185 394/726/185 397/731/185 400/738/185 -f 401/742/177 402/743/177 403/744/177 404/745/177 -f 400/738/186 397/731/186 405/746/186 402/743/186 -f 397/731/179 396/730/179 406/747/179 405/746/179 -f 396/736/187 399/735/187 401/748/187 406/749/187 -f 399/739/177 400/738/177 402/743/177 401/742/177 -f 407/750/188 404/751/188 408/752/188 409/753/188 -f 402/743/189 405/746/189 410/754/189 403/744/189 -f 406/749/190 401/748/190 404/751/190 407/750/190 -f 405/746/179 406/747/179 407/755/179 410/754/179 -f 411/756/182 412/757/182 413/758/182 414/759/182 -f 410/754/179 407/755/179 411/760/179 414/759/179 -f 404/745/177 403/744/177 413/758/177 412/761/177 -f 403/744/191 410/754/191 414/759/191 413/758/191 -f 415/762/192 416/763/192 417/764/192 418/765/192 -f 404/745/193 412/761/193 415/766/194 408/767/195 -f 411/760/196 407/755/196 409/768/197 416/769/198 -f 412/757/199 411/756/199 416/763/199 415/762/199 -f 419/770/200 420/771/200 418/765/200 417/764/200 -f 408/767/195 415/766/194 418/772/201 420/773/201 -f 409/753/202 408/752/202 420/771/202 419/770/202 -f 416/769/198 409/768/197 419/774/203 417/775/203 -o Trigger_Cube.008 -v -0.906556 -0.031746 0.035327 -v -0.906556 -0.031746 -0.035327 -v -0.906556 -0.054594 -0.035327 -v -0.906556 -0.054594 0.035327 -v -0.750972 -0.031746 -0.035327 -v -0.757513 -0.054594 -0.035327 -v -0.750972 -0.031746 0.035327 -v -0.757513 -0.054594 0.035327 -v -0.891840 -0.172320 -0.035327 -v -0.891840 -0.172320 0.035327 -v -0.858049 -0.254618 0.035327 -v -0.773318 -0.237178 0.035327 -v -0.781494 -0.172320 0.035327 -v -0.781494 -0.172320 -0.035327 -v -0.752234 -0.268743 0.035327 -v -0.752234 -0.268743 -0.035327 -v -0.773318 -0.237178 -0.035327 -v -0.858049 -0.254618 -0.035327 -v -0.786277 -0.298175 0.035327 -v -0.786277 -0.298175 -0.035327 -vt 0.375000 0.000000 -vt 0.375000 0.250000 -vt 0.625000 0.250000 -vt 0.625000 0.000000 -vt 0.375000 0.500000 -vt 0.625000 0.500000 -vt 0.375000 0.750000 -vt 0.625000 0.750000 -vt 0.375000 1.000000 -vt 0.625000 1.000000 -vt 0.125000 0.500000 -vt 0.125000 0.750000 -vt 0.625000 0.250000 -vt 0.625000 0.000000 -vt 0.625000 1.000000 -vt 0.625000 1.000000 -vt 0.625000 0.750000 -vt 0.625000 0.750000 -vt 0.625000 0.500000 -vt 0.625000 0.750000 -vt 0.625000 0.500000 -vt 0.625000 0.500000 -vt 0.625000 0.250000 -vt 0.625000 0.000000 -vt 0.875000 0.750000 -vt 0.875000 0.500000 -vt 0.625000 0.250000 -vt 0.625000 0.000000 -vt 0.625000 1.000000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.9614 -0.2752 0.0000 -vn 0.0000 -0.0000 1.0000 -vn 0.0000 1.0000 0.0000 -vn -0.9923 -0.1240 0.0000 -vn 0.9799 -0.1996 0.0000 -vn 0.8316 0.5554 0.0000 -vn 0.9921 0.1251 0.0000 -vn -0.9251 -0.3798 0.0000 -vn 0.6540 -0.7565 0.0000 -vn -0.5188 -0.8549 0.0000 -s 1 -f 421/776/204 422/777/204 423/778/204 424/779/204 -f 422/777/205 425/780/205 426/781/205 423/778/205 -f 425/780/206 427/782/206 428/783/206 426/781/206 -f 427/782/207 421/784/207 424/785/207 428/783/207 -f 422/786/208 421/787/208 427/782/208 425/780/208 -f 423/778/209 429/788/209 430/789/209 424/779/209 -f 430/790/207 431/791/207 432/792/207 433/793/207 -f 424/785/207 430/790/207 433/793/207 428/783/207 -f 426/781/205 434/794/205 429/788/205 423/778/205 -f 428/783/210 433/793/210 434/794/210 426/781/210 -f 432/792/211 435/795/211 436/796/211 437/797/211 -f 434/794/205 437/797/205 438/798/205 429/788/205 -f 433/793/212 432/792/212 437/797/212 434/794/212 -f 429/788/213 438/798/213 431/799/213 430/789/213 -f 436/796/214 435/795/214 439/800/214 440/801/214 -f 438/798/215 440/802/215 439/803/215 431/799/215 -f 431/791/207 439/804/207 435/795/207 432/792/207 -f 437/797/205 436/796/205 440/802/205 438/798/205 -o SideHolders.001_Cube.002 -v 1.310526 -0.082794 0.073582 -v 1.384588 0.101767 0.073582 -v 1.139921 0.101767 0.053905 -v 1.144858 -0.044123 0.053905 -v 1.384588 0.101767 -0.069977 -v 1.504148 0.101767 0.073582 -v 1.504148 0.101767 -0.069977 -v 1.430086 -0.082794 0.073582 -v 1.608182 -0.022025 0.051795 -v 1.577323 0.101767 0.051795 -v 1.430086 -0.082794 -0.069977 -v 1.310526 -0.082794 -0.069977 -v 1.577323 0.101767 -0.048191 -v 1.608182 -0.022025 -0.048191 -v 1.144858 -0.044123 -0.050301 -v 1.139921 0.101767 -0.050301 -vt 0.875000 0.750000 -vt 0.875000 0.500000 -vt 0.875000 0.500000 -vt 0.875000 0.750000 -vt 0.375000 0.250000 -vt 0.625000 0.250000 -vt 0.625000 0.500000 -vt 0.375000 0.500000 -vt 0.625000 0.750000 -vt 0.625000 0.750000 -vt 0.625000 0.500000 -vt 0.375000 0.750000 -vt 0.625000 1.000000 -vt 0.375000 1.000000 -vt 0.125000 0.500000 -vt 0.125000 0.750000 -vt 0.375000 0.500000 -vt 0.375000 0.750000 -vt 0.375000 0.000000 -vt 0.625000 0.000000 -vt 0.625000 0.250000 -vt 0.375000 0.250000 -vt 0.125000 0.750000 -vt 0.125000 0.500000 -vt 0.625000 1.000000 -vt 0.375000 1.000000 -vn -0.0936 0.0196 0.9954 -vn 0.0000 1.0000 0.0000 -vn 0.1766 -0.0247 0.9840 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 -0.0000 1.0000 -vn 0.9703 0.2419 0.0000 -vn 0.3229 -0.9464 -0.0000 -vn 0.1766 -0.0247 -0.9840 -vn -0.9994 -0.0338 -0.0000 -vn -0.0936 0.0196 -0.9954 -vn -0.2273 -0.9738 0.0000 -s 1 -f 441/805/216 442/806/216 443/807/216 444/808/216 -f 445/809/217 442/810/217 446/811/217 447/812/217 -f 446/811/218 448/813/218 449/814/218 450/815/218 -f 451/816/219 448/813/219 441/817/219 452/818/219 -f 445/819/220 447/812/220 451/816/220 452/820/220 -f 446/811/221 442/806/221 441/805/221 448/813/221 -f 453/821/222 450/815/222 449/814/222 454/822/222 -f 447/812/217 446/811/217 450/815/217 453/821/217 -f 448/813/223 451/816/223 454/822/223 449/814/223 -f 451/816/224 447/812/224 453/821/224 454/822/224 -f 455/823/225 444/824/225 443/825/225 456/826/225 -f 445/819/226 452/820/226 455/827/226 456/828/226 -f 442/810/217 445/809/217 456/826/217 443/825/217 -f 452/818/227 441/817/227 444/829/227 455/830/227 -o Roundthing_Cylinder.008 -v -0.745839 1.097427 -0.260529 -v -0.745839 1.097427 0.260529 -v -0.654718 0.939467 0.260529 -v -0.654718 0.939467 -0.260529 -v -0.745955 0.781575 0.260529 -v -0.745955 0.781575 -0.260529 -v -0.928312 0.781642 0.260529 -v -0.928312 0.781642 -0.260529 -v -1.019432 0.939601 0.260529 -v -1.019432 0.939601 -0.260529 -v -0.654718 0.939467 0.338343 -v -0.745955 0.781575 0.338343 -v -0.928196 1.097493 0.260529 -v -0.928196 1.097493 -0.260529 -v -0.745839 1.097427 0.338343 -v -0.757348 1.077508 0.380293 -v -0.677723 0.939476 0.380293 -v -1.019432 0.939601 0.338343 -v -0.928196 1.097493 0.338343 -v -0.928312 0.781642 0.338343 -v -0.916701 1.077567 0.380293 -v -0.996428 0.939592 0.380293 -v -0.949024 0.939575 0.380293 -v -0.893014 1.036505 0.380293 -v -0.916802 0.801560 0.380293 -v -0.757450 0.801501 0.380293 -v -0.781065 1.036464 0.380293 -v -0.884357 1.021497 0.419074 -v -0.789734 1.021463 0.419074 -v -0.781137 0.842563 0.380293 -v -0.893085 0.842604 0.380293 -v -0.725127 0.939493 0.380293 -v -0.931698 0.939569 0.419074 -v -0.877029 0.939549 0.419074 -v -0.857040 0.974142 0.419074 -v -0.884417 0.857606 0.419074 -v -0.742452 0.939499 0.419074 -v -0.789794 0.857571 0.419074 -v -0.817086 0.974128 0.419074 -v -0.857040 0.974142 0.317496 -v -0.817086 0.974128 0.317496 -v -0.817111 0.904926 0.419074 -v -0.857065 0.904940 0.419074 -v -0.797122 0.939519 0.419074 -v -0.797122 0.939519 0.317496 -v -0.877029 0.939549 0.317496 -v -0.857065 0.904940 0.317496 -v -0.817111 0.904926 0.317496 -v -0.745955 0.781575 -0.338343 -v -0.654718 0.939467 -0.338343 -v -0.677723 0.939476 -0.380293 -v -0.757348 1.077508 -0.380293 -v -0.745839 1.097427 -0.338343 -v -0.928196 1.097493 -0.338343 -v -1.019432 0.939601 -0.338343 -v -0.928312 0.781642 -0.338343 -v -0.916701 1.077567 -0.380293 -v -0.893014 1.036505 -0.380293 -v -0.949024 0.939575 -0.380293 -v -0.996428 0.939593 -0.380293 -v -0.916802 0.801560 -0.380293 -v -0.757450 0.801502 -0.380293 -v -0.781065 1.036464 -0.380293 -v -0.789734 1.021463 -0.419074 -v -0.884357 1.021497 -0.419074 -v -0.893085 0.842604 -0.380293 -v -0.781137 0.842563 -0.380293 -v -0.725127 0.939493 -0.380293 -v -0.857040 0.974142 -0.419074 -v -0.877029 0.939549 -0.419074 -v -0.931698 0.939569 -0.419074 -v -0.884417 0.857606 -0.419074 -v -0.789794 0.857571 -0.419074 -v -0.742452 0.939499 -0.419074 -v -0.817086 0.974128 -0.419074 -v -0.817086 0.974128 -0.317496 -v -0.857040 0.974142 -0.317496 -v -0.857065 0.904940 -0.419074 -v -0.817111 0.904926 -0.419074 -v -0.797122 0.939519 -0.419074 -v -0.797122 0.939519 -0.317496 -v -0.817111 0.904926 -0.317496 -v -0.857065 0.904940 -0.317496 -v -0.877029 0.939549 -0.317496 -vt 1.000000 0.500000 -vt 1.000000 1.000000 -vt 0.833333 1.000000 -vt 0.833333 0.500000 -vt 0.666667 1.000000 -vt 0.666667 0.500000 -vt 0.500000 1.000000 -vt 0.500000 0.500000 -vt 0.333333 1.000000 -vt 0.333333 0.500000 -vt 0.833333 1.000000 -vt 0.666667 1.000000 -vt 0.166667 1.000000 -vt 0.166667 0.500000 -vt -0.000000 1.000000 -vt -0.000000 0.500000 -vt 0.750000 0.490000 -vt 0.957846 0.370000 -vt 0.957846 0.130000 -vt 0.750000 0.010000 -vt 0.542154 0.130000 -vt 0.542154 0.370000 -vt 1.000000 1.000000 -vt 1.000000 1.000000 -vt 0.833333 1.000000 -vt 0.333333 1.000000 -vt 0.166667 1.000000 -vt 0.500000 1.000000 -vt -0.000000 1.000000 -vt 0.166667 1.000000 -vt 0.333333 1.000000 -vt 0.333333 1.000000 -vt 0.166667 1.000000 -vt -0.000000 1.000000 -vt 0.500000 1.000000 -vt 0.666667 1.000000 -vt -0.000000 1.000000 -vt 0.166667 1.000000 -vt -0.000000 1.000000 -vt 0.666667 1.000000 -vt 0.500000 1.000000 -vt 1.000000 1.000000 -vt 0.833333 1.000000 -vt 0.333333 1.000000 -vt 0.333333 1.000000 -vt 0.166667 1.000000 -vt 0.500000 1.000000 -vt 0.833333 1.000000 -vt 0.666667 1.000000 -vt 1.000000 1.000000 -vt -0.000000 1.000000 -vt 0.166667 1.000000 -vt -0.000000 1.000000 -vt 0.666667 1.000000 -vt 0.500000 1.000000 -vt 1.000000 1.000000 -vt 0.833333 1.000000 -vt 0.457846 0.370000 -vt 0.250000 0.490000 -vt 0.042154 0.370000 -vt 0.042154 0.130000 -vt 0.250000 0.010000 -vt 0.457846 0.130000 -vt 0.500000 1.000000 -vt 0.333333 1.000000 -vt 0.833333 1.000000 -vt 0.666667 1.000000 -vt 1.000000 1.000000 -vt 0.666667 1.000000 -vt 0.666667 1.000000 -vt 0.833333 1.000000 -vt 0.833333 1.000000 -vt 0.750000 0.490000 -vt 0.542154 0.370000 -vt 0.542154 0.130000 -vt 0.750000 0.010000 -vt 0.957846 0.130000 -vt 0.957846 0.370000 -vt 0.833333 1.000000 -vt 1.000000 1.000000 -vt 1.000000 1.000000 -vt 0.166667 1.000000 -vt 0.166667 1.000000 -vt 0.333333 1.000000 -vt 0.333333 1.000000 -vt 1.000000 1.000000 -vt 0.500000 1.000000 -vt 0.500000 1.000000 -vt -0.000000 1.000000 -vt -0.000000 1.000000 -vt 0.166667 1.000000 -vt 0.166667 1.000000 -vt 0.333333 1.000000 -vt 0.333333 1.000000 -vt -0.000000 1.000000 -vt 0.500000 1.000000 -vt 0.666667 1.000000 -vt -0.000000 1.000000 -vt -0.000000 1.000000 -vt 0.166667 1.000000 -vt 0.500000 1.000000 -vt 0.666667 1.000000 -vt 0.833333 1.000000 -vt 1.000000 1.000000 -vt 0.166667 1.000000 -vt 0.333333 1.000000 -vt 0.333333 1.000000 -vt 0.500000 1.000000 -vt 0.666667 1.000000 -vt 0.833333 1.000000 -vt 1.000000 1.000000 -vt -0.000000 1.000000 -vt -0.000000 1.000000 -vt 0.166667 1.000000 -vt 0.500000 1.000000 -vt 0.666667 1.000000 -vt 0.833333 1.000000 -vt 1.000000 1.000000 -vt 0.457846 0.370000 -vt 0.457846 0.130000 -vt 0.250000 0.010000 -vt 0.042154 0.130000 -vt 0.042154 0.370000 -vt 0.250000 0.490000 -vt 0.333333 1.000000 -vt 0.500000 1.000000 -vt 0.666667 1.000000 -vt 0.833333 1.000000 -vt 1.000000 1.000000 -vn 0.8662 0.4997 0.0000 -vn 0.8658 -0.5003 0.0000 -vn -0.0004 -1.0000 0.0000 -vn -0.8662 -0.4997 0.0000 -vn -0.8658 0.5003 0.0000 -vn 0.0004 1.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.7825 0.4514 0.4290 -vn -0.0000 -0.0000 1.0000 -vn 0.0003 0.9033 0.4290 -vn -0.7825 -0.4514 0.4290 -vn 0.7821 -0.4519 0.4290 -vn -0.7821 0.4519 0.4290 -vn -0.0003 -0.9033 0.4290 -vn 0.0003 0.9326 0.3608 -vn -0.8079 -0.4660 0.3608 -vn 0.8075 -0.4666 0.3608 -vn -0.8075 0.4666 0.3608 -vn -0.0003 -0.9326 0.3608 -vn 0.8079 0.4660 0.3608 -vn 0.7825 0.4514 -0.4290 -vn 0.0003 0.9033 -0.4290 -vn -0.7825 -0.4514 -0.4290 -vn 0.7821 -0.4519 -0.4290 -vn -0.7821 0.4519 -0.4290 -vn -0.0003 -0.9033 -0.4290 -vn 0.0003 0.9326 -0.3608 -vn -0.8079 -0.4660 -0.3608 -vn 0.8075 -0.4666 -0.3608 -vn -0.8075 0.4666 -0.3608 -vn -0.0003 -0.9326 -0.3608 -vn 0.8079 0.4660 -0.3608 -s 1 -f 457/831/228 458/832/228 459/833/228 460/834/228 -f 460/834/229 459/833/229 461/835/229 462/836/229 -f 462/836/230 461/835/230 463/837/230 464/838/230 -f 464/838/231 463/837/231 465/839/231 466/840/231 -f 461/835/229 459/833/229 467/841/229 468/842/229 -f 466/840/232 465/839/232 469/843/232 470/844/232 -f 470/844/233 469/843/233 458/845/233 457/846/233 -f 457/847/234 460/848/234 462/849/234 464/850/234 466/851/234 470/852/234 -f 467/841/235 471/853/235 472/854/235 473/855/235 -f 469/843/232 465/839/232 474/856/232 475/857/232 -f 459/833/228 458/832/228 471/853/228 467/841/228 -f 463/837/230 461/835/230 468/842/230 476/858/230 -f 458/845/233 469/843/233 475/857/233 471/859/233 -f 465/839/231 463/837/231 476/858/231 474/856/231 -f 477/860/236 478/861/236 479/862/236 480/863/236 -f 471/859/237 475/857/237 477/860/237 472/864/237 -f 474/856/238 476/858/238 481/865/238 478/861/238 -f 468/842/239 467/841/239 473/855/239 482/866/239 -f 475/857/240 474/856/240 478/861/240 477/860/240 -f 476/858/241 468/842/241 482/866/241 481/865/241 -f 483/867/242 480/863/242 484/868/242 485/869/242 -f 481/865/236 482/866/236 486/870/236 487/871/236 -f 473/855/236 472/854/236 483/872/236 488/873/236 -f 472/864/236 477/860/236 480/863/236 483/867/236 -f 478/861/236 481/865/236 487/871/236 479/862/236 -f 482/866/236 473/855/236 488/873/236 486/870/236 -f 484/868/236 489/874/236 490/875/236 491/876/236 -f 479/862/243 487/871/243 492/877/243 489/874/243 -f 486/870/244 488/873/244 493/878/244 494/879/244 -f 480/863/245 479/862/245 489/874/245 484/868/245 -f 487/871/246 486/870/246 494/879/246 492/877/246 -f 488/873/247 483/872/247 485/880/247 493/878/247 -f 495/881/230 491/876/230 496/882/230 497/883/230 -f 492/877/236 494/879/236 498/884/236 499/885/236 -f 493/878/236 485/880/236 495/886/236 500/887/236 -f 485/869/236 484/868/236 491/876/236 495/881/236 -f 489/874/236 492/877/236 499/885/236 490/875/236 -f 494/879/236 493/878/236 500/887/236 498/884/236 -f 501/888/236 497/889/236 496/890/236 502/891/236 503/892/236 504/893/236 -f 490/875/228 499/885/228 503/894/228 502/895/228 -f 498/884/232 500/887/232 501/896/232 504/897/232 -f 491/876/229 490/875/229 502/895/229 496/882/229 -f 499/885/233 498/884/233 504/897/233 503/894/233 -f 500/887/231 495/886/231 497/898/231 501/896/231 -f 462/899/229 505/900/229 506/901/229 460/902/229 -f 458/903/236 469/904/236 465/905/236 463/906/236 461/907/236 459/908/236 -f 506/901/248 507/909/248 508/910/248 509/911/248 -f 470/912/232 510/913/232 511/914/232 466/915/232 -f 460/902/228 506/901/228 509/911/228 457/916/228 -f 464/917/230 512/918/230 505/900/230 462/899/230 -f 457/919/233 509/920/233 510/913/233 470/912/233 -f 466/915/231 511/914/231 512/918/231 464/917/231 -f 513/921/234 514/922/234 515/923/234 516/924/234 -f 509/920/249 508/925/249 513/921/249 510/913/249 -f 511/914/250 516/924/250 517/926/250 512/918/250 -f 505/900/251 518/927/251 507/909/251 506/901/251 -f 510/913/252 513/921/252 516/924/252 511/914/252 -f 512/918/253 517/926/253 518/927/253 505/900/253 -f 519/928/254 520/929/254 521/930/254 514/922/254 -f 517/926/234 522/931/234 523/932/234 518/927/234 -f 507/909/234 524/933/234 519/934/234 508/910/234 -f 508/925/234 519/928/234 514/922/234 513/921/234 -f 516/924/234 515/923/234 522/931/234 517/926/234 -f 518/927/234 523/932/234 524/933/234 507/909/234 -f 521/930/234 525/935/234 526/936/234 527/937/234 -f 515/923/255 527/937/255 528/938/255 522/931/255 -f 523/932/256 529/939/256 530/940/256 524/933/256 -f 514/922/257 521/930/257 527/937/257 515/923/257 -f 522/931/258 528/938/258 529/939/258 523/932/258 -f 524/933/259 530/940/259 520/941/259 519/934/259 -f 531/942/230 532/943/230 533/944/230 525/935/230 -f 528/938/234 534/945/234 535/946/234 529/939/234 -f 530/940/234 536/947/234 531/948/234 520/941/234 -f 520/929/234 531/942/234 525/935/234 521/930/234 -f 527/937/234 526/936/234 534/945/234 528/938/234 -f 529/939/234 535/946/234 536/947/234 530/940/234 -f 537/949/234 538/950/234 539/951/234 540/952/234 533/953/234 532/954/234 -f 526/936/228 540/955/228 539/956/228 534/945/228 -f 535/946/232 538/957/232 537/958/232 536/947/232 -f 525/935/229 533/944/229 540/955/229 526/936/229 -f 534/945/233 539/956/233 538/957/233 535/946/233 -f 536/947/231 537/958/231 532/959/231 531/948/231 -o ring_Torus -v 0.990151 -0.648179 -0.190841 -v 0.990151 -0.321606 -0.374799 -v 1.068843 -0.322088 -0.329369 -v 1.068843 -0.609076 -0.167709 -v 1.068843 -0.323051 -0.238509 -v 1.068843 -0.530870 -0.121444 -v 0.990151 -0.323533 -0.193078 -v 0.990151 -0.491768 -0.098312 -v 0.911459 -0.323051 -0.238509 -v 0.911459 -0.530870 -0.121444 -v 0.911459 -0.322088 -0.329369 -v 0.911459 -0.609076 -0.167709 -v 0.990151 0.000993 -0.183958 -v 1.068843 -0.038592 -0.161660 -v 1.068843 -0.117761 -0.117064 -v 0.990151 -0.157346 -0.094766 -v 0.911459 -0.117761 -0.117064 -v 0.911459 -0.038592 -0.161660 -v 0.990151 -0.002981 0.190841 -v 1.068843 -0.042084 0.167709 -v 1.068843 -0.120290 0.121444 -v 0.990151 -0.159393 0.098312 -v 0.911459 -0.120290 0.121444 -v 0.911459 -0.042084 0.167709 -v 0.990151 -0.329554 0.374799 -v 1.068843 -0.329073 0.329369 -v 1.068843 -0.328109 0.238509 -v 0.990151 -0.327627 0.193079 -v 0.911459 -0.328109 0.238509 -v 0.911459 -0.329073 0.329369 -v 0.990151 -0.652153 0.183958 -v 1.068843 -0.612568 0.161660 -v 1.068843 -0.533399 0.117064 -v 0.990151 -0.493815 0.094766 -v 0.911459 -0.533399 0.117064 -v 0.911459 -0.612568 0.161660 -vt 0.500000 0.500000 -vt 0.666667 0.500000 -vt 0.666667 0.666667 -vt 0.500000 0.666667 -vt 0.666667 0.833333 -vt 0.500000 0.833333 -vt 0.666667 1.000000 -vt 0.500000 1.000000 -vt 0.500000 -0.000000 -vt 0.666667 -0.000000 -vt 0.666667 0.166667 -vt 0.500000 0.166667 -vt 0.666667 0.333333 -vt 0.500000 0.333333 -vt 0.833333 0.500000 -vt 0.833333 0.666667 -vt 0.833333 0.833333 -vt 0.833333 1.000000 -vt 0.833333 -0.000000 -vt 0.833333 0.166667 -vt 0.833333 0.333333 -vt 1.000000 0.500000 -vt 1.000000 0.666667 -vt 1.000000 0.833333 -vt 1.000000 1.000000 -vt 1.000000 -0.000000 -vt 1.000000 0.166667 -vt 1.000000 0.333333 -vt -0.000000 0.500000 -vt 0.166667 0.500000 -vt 0.166667 0.666667 -vt -0.000000 0.666667 -vt 0.166667 0.833333 -vt -0.000000 0.833333 -vt 0.166667 1.000000 -vt -0.000000 1.000000 -vt -0.000000 -0.000000 -vt 0.166667 -0.000000 -vt 0.166667 0.166667 -vt -0.000000 0.166667 -vt 0.166667 0.333333 -vt -0.000000 0.333333 -vt 0.333333 0.500000 -vt 0.333333 0.666667 -vt 0.333333 0.833333 -vt 0.333333 1.000000 -vt 0.333333 -0.000000 -vt 0.333333 0.166667 -vt 0.333333 0.333333 -vn 0.4472 -0.4390 -0.7793 -vn 1.0000 0.0000 0.0000 -vn 0.4472 0.4390 0.7793 -vn -0.4472 0.4390 0.7793 -vn -1.0000 -0.0000 0.0000 -vn -0.4472 -0.4390 -0.7793 -vn 0.4472 0.4554 -0.7698 -vn 0.4472 -0.4554 0.7698 -vn -0.4472 -0.4554 0.7698 -vn -0.4472 0.4554 -0.7698 -vn 0.4472 0.8944 0.0095 -vn 0.4472 -0.8944 -0.0095 -vn -0.4472 -0.8944 -0.0095 -vn -0.4472 0.8944 0.0095 -s 1 -f 541/960/260 542/961/260 543/962/260 544/963/260 -f 544/963/261 543/962/261 545/964/261 546/965/261 -f 546/965/262 545/964/262 547/966/262 548/967/262 -f 548/968/263 547/969/263 549/970/263 550/971/263 -f 550/971/264 549/970/264 551/972/264 552/973/264 -f 552/973/265 551/972/265 542/961/265 541/960/265 -f 542/961/266 553/974/266 554/975/266 543/962/266 -f 543/962/261 554/975/261 555/976/261 545/964/261 -f 545/964/267 555/976/267 556/977/267 547/966/267 -f 547/969/268 556/978/268 557/979/268 549/970/268 -f 549/970/264 557/979/264 558/980/264 551/972/264 -f 551/972/269 558/980/269 553/974/269 542/961/269 -f 553/974/270 559/981/270 560/982/270 554/975/270 -f 554/975/261 560/982/261 561/983/261 555/976/261 -f 555/976/271 561/983/271 562/984/271 556/977/271 -f 556/978/272 562/985/272 563/986/272 557/979/272 -f 557/979/264 563/986/264 564/987/264 558/980/264 -f 558/980/273 564/987/273 559/981/273 553/974/273 -f 559/988/262 565/989/262 566/990/262 560/991/262 -f 560/991/261 566/990/261 567/992/261 561/993/261 -f 561/993/260 567/992/260 568/994/260 562/995/260 -f 562/996/265 568/997/265 569/998/265 563/999/265 -f 563/999/264 569/998/264 570/1000/264 564/1001/264 -f 564/1001/263 570/1000/263 565/989/263 559/988/263 -f 565/989/267 571/1002/267 572/1003/267 566/990/267 -f 566/990/261 572/1003/261 573/1004/261 567/992/261 -f 567/992/266 573/1004/266 574/1005/266 568/994/266 -f 568/997/269 574/1006/269 575/1007/269 569/998/269 -f 569/998/264 575/1007/264 576/1008/264 570/1000/264 -f 570/1000/268 576/1008/268 571/1002/268 565/989/268 -f 571/1002/271 541/960/271 544/963/271 572/1003/271 -f 572/1003/261 544/963/261 546/965/261 573/1004/261 -f 573/1004/270 546/965/270 548/967/270 574/1005/270 -f 574/1006/273 548/968/273 550/971/273 575/1007/273 -f 575/1007/264 550/971/264 552/973/264 576/1008/264 -f 576/1008/272 552/973/272 541/960/272 571/1002/272 -o HolographicHolder_Cylinder.009 -v -0.972691 1.166717 0.278124 -v -0.972691 1.166717 -0.278124 -v -0.987438 1.166717 -0.260322 -v -0.987438 1.166717 0.260322 -v -0.934937 1.102284 0.278124 -v -0.934937 1.102284 -0.278124 -v -0.971860 1.037372 0.278124 -v -0.971860 1.037372 -0.278124 -v -1.046537 1.036892 0.278124 -v -1.046537 1.036892 -0.278124 -v -1.047369 1.166237 0.278124 -v -1.084291 1.101324 0.278124 -v -1.084291 1.101324 -0.278124 -v -1.047368 1.166237 -0.278124 -v -1.032621 1.166237 -0.260322 -v -1.032621 1.166237 0.260322 -v -1.033084 1.202181 0.260322 -v -1.033084 1.202181 -0.260322 -v -0.987902 1.202661 0.260322 -v -0.987902 1.202661 -0.260322 -vt 0.833333 1.000000 -vt 0.833333 0.500000 -vt 0.833333 0.500000 -vt 0.833333 1.000000 -vt 0.666667 1.000000 -vt 0.666667 0.500000 -vt 0.500000 1.000000 -vt 0.500000 0.500000 -vt 0.333333 1.000000 -vt 0.333333 0.500000 -vt 0.457846 0.370000 -vt 0.250000 0.490000 -vt 0.042154 0.370000 -vt 0.042154 0.130000 -vt 0.250000 0.010000 -vt 0.457846 0.130000 -vt 0.166667 1.000000 -vt 0.166667 0.500000 -vt -0.000000 1.000000 -vt -0.000000 0.500000 -vt 0.750000 0.490000 -vt 0.957846 0.370000 -vt 0.957846 0.130000 -vt 0.750000 0.010000 -vt 0.542154 0.130000 -vt 0.542154 0.370000 -vt -0.000000 0.500000 -vt -0.000000 1.000000 -vt -0.000000 1.000000 -vt -0.000000 0.500000 -vt 0.457846 0.370000 -vt 0.250000 0.490000 -vt 0.750000 0.490000 -vt 0.957846 0.370000 -vt 1.000000 0.500000 -vt 1.000000 1.000000 -vt 0.833333 1.000000 -vt 0.833333 0.500000 -vt 0.750000 0.490000 -vt 0.957846 0.370000 -vt 0.457846 0.370000 -vt 0.250000 0.490000 -vn -0.0005 1.0000 -0.0000 -vn -0.0078 1.0000 0.0000 -vn 0.8628 0.5055 0.0000 -vn 0.8692 -0.4944 0.0000 -vn 0.0064 -1.0000 0.0000 -vn -0.0000 0.0000 1.0000 -vn -0.8628 -0.5056 0.0000 -vn -0.8692 0.4944 -0.0000 -vn -0.0000 0.0000 -1.0000 -vn -0.9999 -0.0129 0.0000 -vn -0.0079 1.0000 -0.0000 -vn -0.0106 0.9999 0.0000 -vn 0.9999 0.0129 0.0000 -s 1 -f 577/1009/274 578/1010/274 579/1011/275 580/1012/275 -f 578/1010/276 577/1009/276 581/1013/276 582/1014/276 -f 582/1014/277 581/1013/277 583/1015/277 584/1016/277 -f 584/1016/278 583/1015/278 585/1017/278 586/1018/278 -f 577/1019/279 587/1020/279 588/1021/279 585/1022/279 583/1023/279 581/1024/279 -f 586/1018/280 585/1017/280 588/1025/280 589/1026/280 -f 589/1026/281 588/1025/281 587/1027/281 590/1028/281 -f 590/1029/282 578/1030/282 582/1031/282 584/1032/282 586/1033/282 589/1034/282 -f 591/1035/283 592/1036/283 593/1037/283 594/1038/283 -f 587/1020/274 577/1019/274 580/1039/275 592/1040/284 -f 590/1028/274 587/1027/274 592/1036/284 591/1035/284 -f 578/1030/274 590/1029/274 591/1041/284 579/1042/275 -f 594/1043/285 593/1044/285 595/1045/285 596/1046/285 -f 579/1042/282 591/1041/282 594/1047/282 596/1048/282 -f 580/1012/286 579/1011/286 596/1046/286 595/1045/286 -f 592/1040/279 580/1039/279 595/1049/279 593/1050/279 -o HandleHilt_Cylinder.003 -v -1.464091 -0.996279 -0.140051 -v -1.457375 -0.967729 -0.140051 -v -1.339310 -0.995504 -0.070026 -v -1.346026 -1.024054 -0.070026 -v -1.339310 -0.995504 0.070026 -v -1.346026 -1.024054 0.070026 -v -1.457375 -0.967729 0.140051 -v -1.464091 -0.996279 0.140051 -v -1.575440 -0.939954 0.070026 -v -1.582156 -0.968503 0.070026 -v -1.343945 -0.917630 -0.057125 -v -1.343945 -0.917630 0.057125 -v -1.575440 -0.939954 -0.070026 -v -1.582156 -0.968503 -0.070026 -v -1.482215 -1.073316 0.113549 -v -1.386492 -1.095835 0.056774 -v -1.440258 -0.894971 -0.114249 -v -1.536572 -0.872313 -0.057125 -v -1.536572 -0.872313 0.057125 -v -1.440258 -0.894971 0.114249 -v -1.577937 -1.050797 0.056774 -v -1.577937 -1.050797 -0.056774 -v -1.539716 -1.059789 -0.034105 -v -1.539716 -1.059789 0.034105 -v -1.482215 -1.073316 -0.113549 -v -1.386492 -1.095835 -0.056774 -v -1.482215 -1.073316 -0.068210 -v -1.487302 -1.094942 -0.059778 -v -1.537696 -1.083087 -0.029889 -v -1.482215 -1.073316 0.068210 -v -1.424713 -1.086844 0.034105 -v -1.424713 -1.086844 -0.034105 -v -1.436908 -1.106798 -0.029889 -v -1.436908 -1.106798 0.029889 -v -1.487302 -1.094942 0.059778 -v -1.537696 -1.083087 0.029889 -vt 1.000000 0.500000 -vt 1.000000 1.000000 -vt 0.833333 1.000000 -vt 0.833333 0.500000 -vt 0.666667 1.000000 -vt 0.666667 0.500000 -vt 0.500000 1.000000 -vt 0.500000 0.500000 -vt 0.333333 1.000000 -vt 0.333333 0.500000 -vt 0.833333 1.000000 -vt 0.666667 1.000000 -vt 0.166667 1.000000 -vt 0.166667 0.500000 -vt -0.000000 1.000000 -vt -0.000000 0.500000 -vt 0.500000 0.500000 -vt 0.666667 0.500000 -vt 0.457846 0.370000 -vt 0.250000 0.490000 -vt 0.042154 0.370000 -vt 0.042154 0.130000 -vt 0.250000 0.010000 -vt 0.457846 0.130000 -vt 0.333333 1.000000 -vt 0.166667 1.000000 -vt 1.000000 1.000000 -vt 0.500000 1.000000 -vt -0.000000 1.000000 -vt 0.333333 0.500000 -vt 0.166667 0.500000 -vt 0.166667 0.500000 -vt 0.333333 0.500000 -vt -0.000000 0.500000 -vt 0.833333 0.500000 -vt 1.000000 0.500000 -vt -0.000000 0.500000 -vt -0.000000 0.500000 -vt 0.166667 0.500000 -vt 0.500000 0.500000 -vt 0.666667 0.500000 -vt 0.833333 0.500000 -vt 1.000000 0.500000 -vt 0.750000 0.490000 -vt 0.957846 0.370000 -vt 0.957846 0.130000 -vt 0.750000 0.010000 -vt 0.542154 0.130000 -vt 0.542154 0.370000 -vt 0.333333 0.500000 -vt 0.500000 0.500000 -vt 0.666667 0.500000 -vt 0.833333 0.500000 -vt 1.000000 0.500000 -vn 0.4867 -0.1145 -0.8660 -vn 0.9734 -0.2290 0.0000 -vn 0.4867 -0.1145 0.8660 -vn -0.4867 0.1145 0.8660 -vn 0.9982 0.0594 0.0000 -vn -0.9734 0.2290 0.0000 -vn -0.4867 0.1145 -0.8660 -vn 0.4037 -0.3811 0.8318 -vn 0.2290 0.9734 -0.0000 -vn -0.8670 0.4982 0.0000 -vn 0.5319 0.1691 -0.8297 -vn 0.5319 0.1691 0.8297 -vn -0.4007 0.3885 -0.8297 -vn -0.4007 0.3885 0.8297 -vn -0.2290 -0.9734 0.0000 -vn -0.5312 -0.1612 -0.8318 -vn -0.5312 -0.1612 0.8318 -vn 0.8711 -0.4911 0.0000 -vn -0.9987 -0.0512 0.0000 -vn 0.4037 -0.3811 -0.8318 -vn -0.5339 -0.1952 -0.8227 -vn -0.5339 -0.1952 0.8227 -vn 0.8533 -0.5215 0.0000 -vn -0.9963 -0.0864 0.0000 -vn 0.3909 -0.4127 0.8227 -vn 0.3909 -0.4127 -0.8227 -s 1 -f 597/1051/287 598/1052/287 599/1053/287 600/1054/287 -f 600/1054/288 599/1053/288 601/1055/288 602/1056/288 -f 602/1056/289 601/1055/289 603/1057/289 604/1058/289 -f 604/1058/290 603/1057/290 605/1059/290 606/1060/290 -f 601/1055/291 599/1053/291 607/1061/291 608/1062/291 -f 606/1060/292 605/1059/292 609/1063/292 610/1064/292 -f 610/1064/293 609/1063/293 598/1065/293 597/1066/293 -f 602/1056/294 604/1058/294 611/1067/294 612/1068/294 -f 607/1069/295 613/1070/295 614/1071/295 615/1072/295 616/1073/295 608/1074/295 -f 609/1063/296 605/1059/296 615/1075/296 614/1076/296 -f 599/1053/297 598/1052/297 613/1077/297 607/1061/297 -f 603/1057/298 601/1055/298 608/1062/298 616/1078/298 -f 598/1065/299 609/1063/299 614/1076/299 613/1079/299 -f 605/1059/300 603/1057/300 616/1078/300 615/1075/300 -f 617/1080/301 618/1081/301 619/1082/301 620/1083/301 -f 610/1064/302 597/1066/302 621/1084/302 618/1081/302 -f 604/1058/303 606/1060/303 617/1080/303 611/1067/303 -f 600/1054/304 602/1056/304 612/1068/304 622/1085/304 -f 606/1060/305 610/1064/305 618/1081/305 617/1080/305 -f 597/1051/306 600/1054/306 622/1085/306 621/1086/306 -f 619/1082/307 623/1087/307 624/1088/307 625/1089/307 -f 612/1068/301 611/1067/301 626/1090/301 627/1091/301 -f 621/1086/301 622/1085/301 628/1092/301 623/1093/301 -f 618/1081/301 621/1084/301 623/1087/301 619/1082/301 -f 611/1067/301 617/1080/301 620/1083/301 626/1090/301 -f 622/1085/301 612/1068/301 627/1091/301 628/1092/301 -f 624/1094/301 629/1095/301 630/1096/301 631/1097/301 632/1098/301 625/1099/301 -f 626/1090/308 620/1083/308 632/1100/308 631/1101/308 -f 628/1092/309 627/1091/309 630/1102/309 629/1103/309 -f 620/1083/310 619/1082/310 625/1089/310 632/1100/310 -f 627/1091/311 626/1090/311 631/1101/311 630/1102/311 -f 623/1093/312 628/1092/312 629/1103/312 624/1104/312 -o HandleComfortThing_Cube.006 -v -1.508359 -0.214874 0.108693 -v -1.504838 -0.215309 -0.106817 -v -1.564296 -0.274102 -0.089219 -v -1.567402 -0.273718 0.089973 -v -1.348484 -0.928894 -0.174279 -v -1.331423 -0.813343 -0.174279 -v -1.263873 -0.855085 -0.182453 -v -1.262042 -0.949106 -0.182453 -v -1.263873 -0.855085 0.182453 -v -1.207149 -0.865197 0.174081 -v -1.207149 -0.865197 -0.174081 -v -1.570189 -0.877055 0.143835 -v -1.435938 -0.379825 0.163084 -v -1.622805 -0.828855 0.096503 -v -1.262042 -0.949106 0.182453 -v -1.348484 -0.928894 0.174279 -v -1.435938 -0.379825 -0.163084 -v -1.112852 -0.829663 0.130793 -v -1.112852 -0.829663 -0.130793 -v -1.205319 -0.959218 -0.174081 -v -1.205319 -0.959218 0.174081 -v -1.111021 -0.923684 0.130793 -v -1.072210 -0.848373 0.087270 -v -1.073111 -0.802094 0.087270 -v -1.111021 -0.923684 -0.130793 -v -1.072210 -0.848373 -0.087270 -v -1.073111 -0.802094 -0.087270 -v -1.681696 -0.766817 -0.072169 -v -1.689936 -0.702839 -0.059605 -v -1.640119 -0.414721 -0.072179 -v -1.619700 -0.829239 -0.095954 -v -1.684682 -0.766448 0.071709 -v -1.643105 -0.414353 0.071698 -v -1.666879 -0.498637 -0.059615 -v -1.669865 -0.498268 0.058900 -v -1.692922 -0.702470 0.058910 -v -1.690559 -0.607421 0.054481 -v -1.687573 -0.607789 -0.055307 -v -1.331423 -0.813343 0.174279 -v -1.416650 -0.767127 -0.178303 -v -1.416650 -0.767127 0.178303 -v -1.469005 -0.685482 -0.171908 -v -1.469005 -0.685482 0.171908 -v -1.542909 -0.883434 -0.161182 -v -1.516768 -0.889546 -0.174389 -v -1.516768 -0.889546 0.174389 -v -1.542909 -0.883434 0.161182 -v -1.432626 -0.909220 -0.178303 -v -1.432626 -0.909220 0.178303 -v -1.484962 -0.656299 -0.158888 -v -1.570189 -0.877055 -0.143835 -v -1.484962 -0.656299 0.158888 -vt 0.875000 0.750000 -vt 0.875000 0.500000 -vt 0.875000 0.500000 -vt 0.875000 0.750000 -vt 0.375000 0.435792 -vt 0.625000 0.435792 -vt 0.625000 0.500000 -vt 0.375000 0.500000 -vt 0.625000 0.750000 -vt 0.625000 0.750000 -vt 0.625000 0.500000 -vt 0.375000 0.978890 -vt 0.625000 0.978890 -vt 0.625000 1.000000 -vt 0.375000 1.000000 -vt 0.310792 0.500000 -vt 0.375000 0.750000 -vt 0.310792 0.750000 -vt 0.853890 0.500000 -vt 0.853890 0.750000 -vt 0.625000 0.750000 -vt 0.625000 0.500000 -vt 0.375000 0.500000 -vt 0.375000 0.750000 -vt 0.375000 0.750000 -vt 0.375000 0.750000 -vt 0.625000 0.750000 -vt 0.375000 0.500000 -vt 0.375000 0.500000 -vt 0.625000 0.500000 -vt 0.625000 0.250000 -vt 0.375000 0.250000 -vt 0.375000 0.250000 -vt 0.625000 0.250000 -vt 0.125000 0.500000 -vt 0.125000 0.750000 -vt 0.125000 0.750000 -vt 0.125000 0.500000 -vt 0.625000 0.250000 -vt 0.375000 0.250000 -vt 0.625000 1.000000 -vt 0.375000 1.000000 -vt 0.875000 0.750000 -vt 0.875000 0.500000 -vt 0.875000 0.500000 -vt 0.875000 0.750000 -vt 0.625000 1.000000 -vt 0.375000 1.000000 -vt 0.125000 0.750000 -vt 0.125000 0.500000 -vt 0.375000 0.000000 -vt 0.625000 0.000000 -vt 0.625000 0.250000 -vt 0.375000 0.250000 -vt 0.125000 0.750000 -vt 0.125000 0.500000 -vt 0.625000 1.000000 -vt 0.375000 1.000000 -vt 0.689208 0.500000 -vt 0.689208 0.750000 -vt 0.751708 0.500000 -vt 0.751708 0.750000 -vt 0.814208 0.500000 -vt 0.814208 0.750000 -vt 0.166374 0.500000 -vt 0.185792 0.500000 -vt 0.185792 0.750000 -vt 0.166374 0.750000 -vt 0.248292 0.500000 -vt 0.248292 0.750000 -vt 0.625000 0.814208 -vt 0.375000 0.814208 -vt 0.625000 0.876708 -vt 0.375000 0.876708 -vt 0.625000 0.939208 -vt 0.375000 0.939208 -vt 0.375000 0.291374 -vt 0.625000 0.291374 -vt 0.625000 0.310792 -vt 0.375000 0.310792 -vt 0.625000 0.373292 -vt 0.375000 0.373292 -vt 0.625000 0.271110 -vt 0.375000 0.271110 -vt 0.146110 0.500000 -vt 0.146110 0.750000 -vt 0.833626 0.500000 -vt 0.833626 0.750000 -vt 0.625000 0.958626 -vt 0.375000 0.958626 -vn -0.7044 0.7097 -0.0133 -vn -0.1026 0.0075 -0.9947 -vn 0.1755 0.9845 0.0000 -vn -0.5269 0.0940 0.8447 -vn -0.2277 -0.9737 0.0000 -vn 0.9190 0.3942 0.0057 -vn -0.3526 0.9358 0.0000 -vn 0.1465 0.0029 -0.9892 -vn 0.1465 0.0029 0.9892 -vn -0.1755 -0.9845 0.0000 -vn 0.7339 0.0143 0.6791 -vn 0.4147 0.0081 -0.9099 -vn 0.4147 0.0081 0.9099 -vn 0.3526 -0.9358 0.0000 -vn 0.9998 0.0195 0.0000 -vn 0.8889 -0.4581 0.0000 -vn -0.5700 0.8216 0.0000 -vn 0.7339 0.0143 -0.6791 -vn -0.3667 0.0433 -0.9293 -vn -0.7097 -0.7044 -0.0113 -vn -0.3211 0.0435 -0.9461 -vn -0.3371 0.0447 0.9404 -vn -0.9525 0.3038 -0.0225 -vn -0.3829 0.0452 0.9227 -vn -0.8802 0.4743 -0.0177 -vn -0.9916 -0.1277 -0.0222 -vn -0.9822 0.1862 -0.0263 -vn -0.9993 0.0248 -0.0262 -vn -0.5482 0.0619 -0.8340 -vn -0.5564 0.0629 0.8286 -vn 0.5257 0.8507 0.0000 -vn 0.4767 0.8791 0.0000 -vn 0.8418 0.5398 0.0000 -vn -0.1026 0.0075 0.9947 -vn 0.0452 -0.0058 0.9990 -vn -0.0616 0.0185 0.9979 -vn -0.4504 0.1202 -0.8847 -vn -0.0616 0.0185 -0.9979 -vn 0.0452 -0.0058 -0.9990 -vn -0.5492 0.1006 -0.8296 -vn -0.3469 0.0702 -0.9353 -vn -0.6850 -0.7286 -0.0038 -vn 0.8774 0.4798 0.0000 -vn 0.9846 -0.1746 0.0000 -vn -0.4504 0.1202 0.8847 -vn -0.3469 0.0702 0.9353 -s 1 -f 633/1105/313 634/1106/313 635/1107/313 636/1108/313 -f 637/1109/314 638/1110/314 639/1111/314 640/1112/314 -f 639/1111/315 641/1113/315 642/1114/315 643/1115/315 -f 644/1116/316 645/1117/316 633/1118/316 646/1119/316 -f 637/1120/317 640/1112/317 647/1121/317 648/1122/317 -f 649/1123/318 634/1106/318 633/1105/318 645/1124/318 -f 643/1115/319 642/1114/319 650/1125/319 651/1126/319 -f 640/1112/320 639/1111/320 643/1115/320 652/1127/320 -f 641/1113/321 647/1121/321 653/1128/321 642/1114/321 -f 647/1121/322 640/1112/322 652/1127/322 653/1128/322 -f 650/1125/323 654/1129/323 655/1130/323 656/1131/323 -f 652/1127/324 643/1115/324 651/1126/324 657/1132/324 -f 642/1114/325 653/1128/325 654/1129/325 650/1125/325 -f 653/1128/326 652/1127/326 657/1132/326 654/1129/326 -f 658/1133/327 659/1134/327 656/1131/327 655/1130/327 -f 654/1129/328 657/1132/328 658/1133/328 655/1130/328 -f 651/1126/329 650/1125/329 656/1131/329 659/1134/329 -f 657/1132/330 651/1126/330 659/1134/330 658/1133/330 -f 635/1135/331 660/1136/331 661/1137/331 662/1138/331 -f 663/1139/332 646/1140/332 664/1141/332 660/1142/332 -f 634/1143/333 663/1144/333 660/1136/333 635/1135/333 -f 646/1119/334 633/1118/334 636/1145/334 664/1146/334 -f 665/1147/335 662/1148/335 666/1149/335 667/1150/335 -f 664/1146/336 636/1145/336 665/1151/336 668/1152/336 -f 636/1108/337 635/1107/337 662/1148/337 665/1147/337 -f 660/1142/338 664/1141/338 668/1153/338 661/1154/338 -f 669/1155/339 667/1156/339 666/1157/339 670/1158/339 -f 661/1154/340 668/1153/340 669/1159/340 670/1160/340 -f 662/1138/341 661/1137/341 670/1158/341 666/1157/341 -f 668/1152/342 665/1151/342 667/1161/342 669/1162/342 -f 639/1111/343 638/1163/343 671/1164/343 641/1113/343 -f 638/1163/344 672/1165/344 673/1166/344 671/1164/344 -f 672/1165/345 674/1167/345 675/1168/345 673/1166/345 -f 676/1169/317 677/1170/317 678/1171/317 679/1172/317 -f 677/1170/317 680/1173/317 681/1174/317 678/1171/317 -f 680/1173/317 637/1120/317 648/1122/317 681/1174/317 -f 647/1121/346 641/1113/346 671/1175/346 648/1176/346 -f 648/1176/347 671/1175/347 673/1177/347 681/1178/347 -f 681/1178/348 673/1177/348 675/1179/348 678/1180/348 -f 676/1181/349 682/1182/349 674/1183/349 677/1184/349 -f 677/1184/350 674/1183/350 672/1185/350 680/1186/350 -f 680/1186/351 672/1185/351 638/1110/351 637/1109/351 -f 663/1144/352 634/1143/352 649/1187/352 683/1188/352 -f 683/1188/353 649/1187/353 682/1182/353 676/1181/353 -f 663/1139/354 683/1189/354 644/1190/354 646/1140/354 -f 683/1189/317 676/1169/317 679/1172/317 644/1190/317 -f 674/1167/355 682/1191/355 684/1192/355 675/1168/355 -f 682/1191/356 649/1123/356 645/1124/356 684/1192/356 -f 678/1180/357 675/1179/357 684/1193/357 679/1194/357 -f 679/1194/358 684/1193/358 645/1117/358 644/1116/358 -o Grip_Cube.001 -v -1.325666 -0.019640 0.170554 -v -1.325666 0.137146 0.170554 -v -1.472478 0.148884 0.071087 -v -1.472478 -0.007902 0.071087 -v -1.325666 -0.019640 -0.170554 -v -1.325666 0.137146 -0.170554 -v -1.062875 0.137146 -0.170554 -v -1.062875 -0.019640 -0.170554 -v -1.130714 -0.142396 -0.170554 -v -0.914155 -0.020276 -0.107189 -v -0.981994 -0.143031 -0.107189 -v -1.062875 -0.019640 0.170554 -v -1.062875 0.137146 0.170554 -v -0.914155 0.136510 -0.107189 -v -1.259746 -0.728734 -0.170554 -v -1.147611 -0.221161 -0.170554 -v -0.998891 -0.221796 -0.107189 -v -1.111026 -0.729370 -0.107189 -v -1.346664 -0.179545 0.170554 -v -1.130714 -0.142396 0.170554 -v -1.346664 -0.179545 -0.170554 -v -1.447785 -0.735647 0.170554 -v -1.363562 -0.258310 0.170554 -v -1.510373 -0.246572 0.071087 -v -1.594597 -0.723909 0.071087 -v -0.981994 -0.143031 0.107189 -v -0.914155 -0.020276 0.107189 -v -1.363562 -0.258310 -0.170554 -v -1.447785 -0.735647 -0.170554 -v -1.594597 -0.723909 -0.071087 -v -1.510373 -0.246572 -0.071087 -v -1.147611 -0.221161 0.170554 -v -1.259746 -0.728734 0.170554 -v -1.483874 -0.874924 0.170554 -v -1.219691 -0.868011 0.170554 -v -1.493475 -0.167807 0.071087 -v -1.483874 -0.751872 -0.170554 -v -1.219691 -0.868011 -0.170554 -v -0.914155 0.136510 0.107189 -v -1.472478 -0.007902 -0.071087 -v -1.472478 0.148884 -0.071087 -v -1.493475 -0.167807 -0.071087 -v -1.630686 -0.740134 -0.071087 -v -1.630686 -0.740134 0.071087 -v -0.998891 -0.221796 0.107189 -v -1.111026 -0.729370 0.107189 -v -1.100054 -0.868647 0.107189 -v -1.100054 -0.868647 -0.107189 -vt 0.375000 1.000000 -vt 0.625000 1.000000 -vt 0.625000 1.000000 -vt 0.375000 1.000000 -vt 0.375000 0.250000 -vt 0.625000 0.250000 -vt 0.625000 0.500000 -vt 0.375000 0.500000 -vt 0.375000 0.500000 -vt 0.375000 0.500000 -vt 0.375000 0.500000 -vt 0.375000 0.750000 -vt 0.625000 0.750000 -vt 0.625000 0.500000 -vt 0.875000 0.500000 -vt 0.875000 0.750000 -vt 0.375000 0.500000 -vt 0.375000 0.500000 -vt 0.375000 0.500000 -vt 0.375000 0.500000 -vt 0.375000 1.000000 -vt 0.375000 0.750000 -vt 0.375000 0.250000 -vt 0.375000 1.000000 -vt 0.375000 1.000000 -vt 0.375000 1.000000 -vt 0.375000 1.000000 -vt 0.375000 0.750000 -vt 0.375000 0.750000 -vt 0.375000 0.250000 -vt 0.375000 0.250000 -vt 0.375000 0.250000 -vt 0.375000 0.250000 -vt 0.375000 0.750000 -vt 0.375000 0.750000 -vt 0.375000 1.000000 -vt 0.375000 0.750000 -vt 0.375000 1.000000 -vt 0.125000 0.500000 -vt 0.375000 0.500000 -vt 0.125000 0.750000 -vt 0.375000 0.250000 -vt 0.625000 0.750000 -vt 0.375000 0.250000 -vt 0.625000 0.250000 -vt 0.375000 0.000000 -vt 0.625000 0.000000 -vt 0.375000 0.250000 -vt 0.375000 0.000000 -vt 0.375000 0.000000 -vt 0.375000 0.000000 -vt 0.375000 0.250000 -vt 0.375000 0.000000 -vt 0.125000 0.750000 -vt 0.125000 0.500000 -vt 0.875000 0.500000 -vt 0.875000 0.750000 -vt 0.375000 1.000000 -vt 0.375000 0.750000 -vt 0.375000 0.750000 -vt 0.375000 0.750000 -vt 0.375000 0.500000 -vn -0.5609 0.0000 0.8279 -vn 0.0000 0.0000 -1.0000 -vn 0.3824 -0.2113 -0.8995 -vn -0.0000 -0.0000 1.0000 -vn 0.3920 0.0000 -0.9200 -vn 0.0039 1.0000 0.0000 -vn 0.0000 1.0000 0.0000 -vn 0.3902 -0.0862 -0.9167 -vn 0.3902 -0.0839 -0.9169 -vn 0.3901 -0.0861 -0.9167 -vn -0.5529 0.0976 0.8275 -vn 0.3824 -0.2113 0.8995 -vn -0.5529 0.0976 -0.8275 -vn -0.5505 0.1181 0.8264 -vn -0.1994 -0.9644 -0.1739 -vn 0.3920 -0.0000 0.9200 -vn -0.5609 -0.0000 -0.8279 -vn -1.0000 0.0000 0.0000 -vn -0.9915 0.1302 0.0000 -vn -0.9778 0.2098 0.0000 -vn -0.9848 0.1738 0.0000 -vn -0.4100 0.9121 0.0000 -vn -0.5554 0.0729 0.8284 -vn -0.4354 -0.8724 -0.2221 -vn 0.0797 0.9968 0.0000 -vn -0.5554 0.0729 -0.8284 -vn -0.3339 0.7427 -0.5805 -vn -0.5505 0.1181 -0.8264 -vn -0.4704 0.2183 0.8550 -vn 1.0000 -0.0000 0.0000 -vn 0.8752 -0.4837 -0.0000 -vn 0.9778 -0.2098 0.0000 -vn 0.9771 -0.2127 0.0000 -vn 0.9765 -0.2157 0.0000 -vn 0.9969 0.0785 0.0000 -vn 0.4260 0.0780 0.9013 -vn 0.3903 -0.0837 0.9169 -vn 0.3902 -0.0839 0.9169 -vn 0.3901 -0.0861 0.9167 -vn -0.0053 -1.0000 0.0000 -vn 0.4260 0.0780 -0.9013 -vn 0.3903 -0.0837 -0.9169 -vn 0.0043 1.0000 0.0000 -vn 0.3902 -0.0862 0.9167 -s 1 -f 685/1195/359 686/1196/359 687/1197/359 688/1198/359 -f 689/1199/360 690/1200/360 691/1201/360 692/1202/360 -f 693/1203/361 692/1202/361 694/1204/361 695/1205/361 -f 696/1206/362 697/1207/362 686/1196/362 685/1195/362 -f 692/1202/363 691/1201/363 698/1208/363 694/1204/363 -f 691/1201/364 690/1209/365 686/1210/365 697/1207/364 -f 699/1211/366 700/1212/367 701/1213/368 702/1214/366 -f 696/1206/362 685/1195/362 703/1215/362 704/1216/362 -f 689/1199/360 692/1202/360 693/1203/360 705/1217/360 -f 706/1218/369 707/1219/369 708/1220/369 709/1221/369 -f 696/1206/370 704/1216/370 710/1222/370 711/1223/370 -f 712/1224/371 713/1225/371 714/1226/371 715/1227/371 -f 704/1216/362 703/1215/362 707/1219/362 716/1228/362 -f 705/1217/360 693/1203/360 700/1212/360 712/1224/360 -f 717/1229/362 706/1218/362 718/1230/362 719/1231/362 -f 707/1219/372 703/1215/372 720/1232/372 708/1220/372 -f 716/1228/362 707/1219/362 706/1218/362 717/1229/362 -f 712/1224/360 700/1212/360 699/1211/360 713/1225/360 -f 721/1233/373 722/1234/373 719/1231/373 718/1235/373 -f 713/1225/360 699/1211/360 722/1234/360 721/1236/360 -f 697/1207/374 696/1206/374 711/1223/374 723/1237/374 -f 690/1200/375 689/1199/375 724/1238/375 725/1239/375 -f 688/1240/376 687/1241/376 725/1239/376 724/1238/376 -f 688/1240/377 724/1238/377 726/1242/377 720/1243/377 -f 720/1243/378 726/1242/378 715/1227/378 708/1244/378 -f 708/1244/379 715/1227/379 714/1226/379 709/1245/379 -f 709/1245/380 714/1226/380 727/1246/380 728/1247/380 -f 703/1215/381 685/1195/381 688/1198/381 720/1232/381 -f 721/1233/382 718/1235/382 728/1248/382 727/1249/382 -f 686/1210/383 690/1209/383 725/1250/383 687/1251/383 -f 689/1199/384 705/1217/384 726/1242/384 724/1238/384 -f 713/1225/385 721/1236/385 727/1246/385 714/1226/385 -f 705/1217/386 712/1224/386 715/1227/386 726/1242/386 -f 718/1230/387 706/1218/387 709/1221/387 728/1252/387 -f 694/1204/388 698/1208/388 723/1237/388 711/1223/388 -f 694/1204/389 711/1223/389 710/1222/389 695/1205/389 -f 695/1205/390 710/1222/390 729/1253/391 701/1213/391 -f 701/1213/391 729/1253/391 730/1254/392 702/1214/392 -f 702/1214/393 730/1254/393 731/1255/393 732/1256/393 -f 717/1229/394 719/1231/394 731/1255/394 730/1254/394 -f 704/1216/395 716/1228/396 729/1253/397 710/1222/395 -f 719/1231/398 722/1234/398 732/1256/398 731/1255/398 -f 722/1234/399 699/1211/399 702/1214/399 732/1256/399 -f 700/1212/367 693/1203/400 695/1205/400 701/1213/368 -f 691/1201/364 697/1207/364 723/1237/401 698/1208/401 -f 716/1228/396 717/1229/402 730/1254/402 729/1253/397 -o AmmunitionCan_Cylinder.007 -v -1.114931 0.645018 2.605743 -v -0.705608 0.645018 2.607436 -v -0.705608 0.367434 2.722416 -v -1.115595 0.367434 2.722416 -v -0.705608 0.252454 3.000000 -v -1.115595 0.252454 3.000000 -v -0.705608 0.367434 3.277584 -v -1.115595 0.367434 3.277584 -v -0.705608 0.645018 3.392564 -v -1.115595 0.645018 3.392564 -v -0.705608 0.922602 3.277584 -v -1.115595 0.922602 3.277584 -v -0.705608 1.037581 3.000000 -v -1.115595 1.037581 3.000000 -v -0.705608 0.922602 2.722416 -v -1.115595 0.922602 2.722416 -v -1.680468 0.367434 2.722416 -v -1.680468 0.252454 3.000000 -v -1.696762 0.326183 3.000000 -v -1.696762 0.419567 2.774549 -v -1.696762 0.645018 3.318835 -v -1.696762 0.870468 3.225451 -v -1.717499 0.922175 3.277157 -v -1.717499 0.645018 3.391959 -v -1.680468 0.645018 3.392564 -v -1.680468 0.922602 3.277584 -v -1.680468 0.922602 2.722416 -v -1.680468 0.645018 2.607436 -v -1.696762 0.645018 2.681165 -v -1.696762 0.870469 2.774550 -v -1.680468 0.367434 3.277584 -v -1.696762 0.419567 3.225451 -v -1.680468 1.037582 3.000000 -v -1.696762 0.963853 3.000000 -v -1.717499 1.036977 3.000000 -v -1.717499 0.922175 2.722843 -v -1.807855 0.922175 2.722843 -v -1.807855 1.036977 3.000000 -v -1.717499 0.367861 3.277157 -v -1.717499 0.253059 3.000000 -v -1.717499 0.367861 2.722843 -v -1.717499 0.645018 2.608041 -v -1.807855 0.922175 3.277157 -v -1.827112 0.964049 3.000000 -v -1.827112 0.870607 3.225589 -v -1.807856 0.645018 3.391959 -v -1.807856 0.367861 3.277157 -v -1.807856 0.253059 3.000000 -v -1.807856 0.367861 2.722843 -v -1.807856 0.645018 2.608041 -v -1.827112 0.645018 2.680969 -v -1.827112 0.419429 2.774411 -v -1.850272 0.367220 2.722202 -v -1.850272 0.645018 2.607134 -v -1.827112 0.645018 3.319031 -v -1.827112 0.419429 3.225589 -v -1.827112 0.325987 3.000000 -v -1.827112 0.870607 2.774411 -v -1.850272 1.037884 3.000000 -v -1.850272 0.922816 2.722202 -v -1.929992 0.922816 2.722202 -v -1.929992 1.037884 3.000000 -v -1.850272 0.922816 3.277798 -v -1.850272 0.645018 3.392866 -v -1.850272 0.367220 3.277798 -v -1.850272 0.252152 3.000000 -v -1.929992 0.367220 2.722202 -v -1.929992 0.252152 3.000000 -v -2.043752 0.321683 3.000000 -v -2.043752 0.416385 2.771367 -v -1.929992 0.922816 3.277798 -v -1.929992 0.645018 3.392866 -v -1.929992 0.367220 3.277798 -v -1.929992 0.645018 2.607134 -v -2.043752 0.873651 2.771367 -v -2.043752 0.645018 2.676665 -v -2.121962 0.645018 2.774646 -v -2.121962 0.804367 2.840651 -v -2.043752 0.968353 3.000000 -v -2.043752 0.873651 3.228633 -v -2.043752 0.645018 3.323335 -v -2.043752 0.416385 3.228633 -v -2.121962 0.870372 3.000000 -v -2.179800 0.787147 2.857871 -v -2.179800 0.846019 3.000000 -v -2.121962 0.804367 3.159349 -v -2.121962 0.645018 3.225354 -v -2.121962 0.485669 3.159349 -v -2.121962 0.419664 3.000000 -v -2.121962 0.485669 2.840651 -v -2.179800 0.787147 3.142129 -v -2.179800 0.817735 3.000000 -v -2.179800 0.767148 3.122130 -v -2.179800 0.645018 3.201001 -v -2.179800 0.502889 3.142129 -v -2.179800 0.444017 3.000000 -v -2.179800 0.502889 2.857871 -v -2.179800 0.645018 2.798999 -v -2.179800 0.645018 2.827283 -v -2.179800 0.522888 2.877870 -v -2.139229 0.522888 2.877870 -v -2.139229 0.645018 2.827283 -v -2.179800 0.645018 3.172717 -v -2.179800 0.522888 3.122130 -v -2.179800 0.472301 3.000000 -v -2.179800 0.767148 2.877870 -v -2.139229 0.472301 3.000000 -v -2.139229 0.522888 3.122130 -v -2.139229 0.645018 3.172717 -v -2.139229 0.767148 3.122130 -v -2.139229 0.817735 3.000000 -v -2.139229 0.767148 2.877870 -v -1.416219 0.923800 2.721218 -v -1.416219 0.645018 2.605743 -v -1.415588 1.037581 3.000000 -v -1.416219 0.923800 3.278782 -v -1.416219 0.645018 3.394257 -v -1.416219 0.366236 3.278782 -v -1.415589 0.252454 3.000000 -v -1.416219 0.366236 2.721218 -v -1.161507 0.923800 2.721218 -v -1.161507 0.645018 2.605743 -v -1.161507 1.039275 3.000000 -v -1.161507 0.923800 3.278782 -v -1.161507 0.645018 3.394257 -v -1.161507 0.366236 3.278782 -v -1.161507 0.250761 3.000000 -v -1.161507 0.366236 2.721218 -v -1.379544 0.645018 2.605743 -v -1.379545 0.366236 2.721218 -v -1.379545 1.039275 3.000000 -v -1.379545 0.923800 3.278782 -v -1.382795 0.953877 3.308859 -v -1.382795 1.081811 3.000000 -v -1.319287 0.645018 2.590682 -v -1.221764 0.645018 2.590682 -v -1.221764 0.355586 2.710568 -v -1.319287 0.355586 2.710568 -v -1.158621 0.950501 2.694517 -v -1.158621 1.077036 3.000000 -v -1.379545 0.250761 3.000000 -v -1.319287 0.235700 3.000000 -v -1.316037 0.208225 3.000000 -v -1.316037 0.336159 2.691141 -v -1.221764 0.235700 3.000000 -v -1.158621 0.950501 3.305483 -v -1.158621 0.645018 3.432019 -v -1.379545 0.366236 3.278782 -v -1.379545 0.645018 3.394257 -v -1.382795 0.336159 3.308859 -v -1.382795 0.645018 3.436793 -v -1.221764 0.355586 3.289432 -v -1.319287 0.355586 3.289432 -v -1.221764 0.934450 2.710568 -v -1.221764 1.054336 3.000000 -v -1.224650 1.077036 3.000000 -v -1.224650 0.950501 2.694517 -v -1.382795 0.336159 2.691141 -v -1.382795 0.208225 3.000000 -v -1.221764 0.645018 3.409318 -v -1.319287 0.645018 3.409318 -v -1.158621 0.339535 3.305483 -v -1.158621 0.212999 3.000000 -v -1.319287 1.054336 3.000000 -v -1.319287 0.934450 2.710568 -v -1.316037 0.953877 2.691141 -v -1.316037 1.081811 3.000000 -v -1.221764 0.934450 3.289432 -v -1.319287 0.934450 3.289432 -v -1.224650 0.645018 3.432019 -v -1.224650 0.950501 3.305483 -v -1.316037 0.953877 3.308859 -v -1.316037 0.645018 3.436793 -v -1.158621 0.339535 2.694517 -v -1.158621 0.645018 2.567981 -v -1.379545 0.923800 2.721218 -v -1.382795 0.953877 2.691141 -v -1.224650 0.212999 3.000000 -v -1.224650 0.339535 3.305483 -v -1.316037 0.336159 3.308859 -v -1.224650 0.645018 2.567981 -v -1.224650 0.339535 2.694517 -v -1.382795 0.645018 2.563207 -v -1.316036 0.645018 2.563207 -vt 0.333771 0.122601 -vt 0.250827 0.123696 -vt 0.249913 0.062860 -vt 0.333162 0.061441 -vt 0.248762 0.002028 -vt 0.331770 0.000458 -vt 0.331178 0.489363 -vt 0.248762 0.487236 -vt 0.250204 0.426885 -vt 0.333040 0.428574 -vt 0.251228 0.366447 -vt 0.334273 0.367529 -vt 0.251779 0.305898 -vt 0.334946 0.306336 -vt 0.251870 0.245242 -vt 0.335158 0.245008 -vt 0.387778 0.000111 -vt 0.448672 0.000111 -vt 0.491729 0.043169 -vt 0.491729 0.104062 -vt 0.448671 0.147120 -vt 0.387778 0.147120 -vt 0.344720 0.104062 -vt 0.344720 0.043169 -vt 0.251510 0.184543 -vt 0.334843 0.183746 -vt 0.184792 0.411952 -vt 0.180019 0.475285 -vt 0.164389 0.467565 -vt 0.169068 0.411085 -vt 0.171376 0.116511 -vt 0.173907 0.173123 -vt 0.158223 0.172770 -vt 0.156306 0.116051 -vt 0.187710 0.116136 -vt 0.188188 0.173263 -vt 0.187862 0.290744 -vt 0.187045 0.350935 -vt 0.169556 0.350164 -vt 0.173074 0.290555 -vt 0.169093 0.410760 -vt 0.169539 0.350497 -vt 0.182936 0.002420 -vt 0.185636 0.059963 -vt 0.171429 0.060361 -vt 0.168682 0.009053 -vt 0.188834 0.231566 -vt 0.171901 0.231236 -vt 0.173902 0.173419 -vt 0.171377 0.116200 -vt 0.171433 0.060647 -vt 0.173086 0.290248 -vt 0.171893 0.231559 -vt 0.156248 0.230716 -vt 0.156867 0.289505 -vt 0.136903 0.289718 -vt 0.137407 0.231137 -vt 0.156897 0.060302 -vt 0.156891 0.004402 -vt 0.151894 0.409417 -vt 0.153421 0.349240 -vt 0.147572 0.472946 -vt 0.138952 0.173384 -vt 0.121938 0.230032 -vt 0.123479 0.172751 -vt 0.138214 0.116866 -vt 0.138770 0.061156 -vt 0.138353 0.003891 -vt 0.132267 0.409089 -vt 0.134072 0.349295 -vt 0.126815 0.471069 -vt 0.118159 0.348200 -vt 0.116549 0.407518 -vt 0.099353 0.406365 -vt 0.101957 0.346731 -vt 0.123291 0.116133 -vt 0.123243 0.060809 -vt 0.114079 0.464786 -vt 0.116522 0.407844 -vt 0.120912 0.288422 -vt 0.121921 0.230342 -vt 0.123493 0.172442 -vt 0.123281 0.116431 -vt 0.123249 0.060512 -vt 0.123844 0.009530 -vt 0.118183 0.347881 -vt 0.120892 0.288742 -vt 0.106188 0.229161 -vt 0.104711 0.287384 -vt 0.088322 0.287014 -vt 0.090113 0.228932 -vt 0.107837 0.171744 -vt 0.108130 0.115645 -vt 0.108841 0.060451 -vt 0.096873 0.470749 -vt 0.108910 0.003319 -vt 0.083013 0.405933 -vt 0.079907 0.469925 -vt 0.052378 0.462912 -vt 0.054935 0.410246 -vt 0.092029 0.171671 -vt 0.092656 0.115769 -vt 0.093106 0.060660 -vt 0.092149 0.003387 -vt 0.085408 0.346282 -vt 0.062313 0.290993 -vt 0.059914 0.339771 -vt 0.036698 0.331221 -vt 0.038369 0.297224 -vt 0.063245 0.281096 -vt 0.064719 0.233294 -vt 0.067796 0.166452 -vt 0.068312 0.120444 -vt 0.068137 0.056008 -vt 0.067350 0.008871 -vt 0.057308 0.399614 -vt 0.059278 0.350520 -vt 0.065403 0.223033 -vt 0.066980 0.175906 -vt 0.068752 0.110697 -vt 0.069122 0.065341 -vt 0.041387 0.239824 -vt 0.040360 0.273141 -vt 0.028428 0.270971 -vt 0.029344 0.241254 -vt 0.042861 0.215130 -vt 0.043960 0.182284 -vt 0.046882 0.103646 -vt 0.047140 0.072034 -vt 0.027306 0.453697 -vt 0.029088 0.416990 -vt 0.045633 0.159231 -vt 0.045993 0.127165 -vt 0.045231 0.049246 -vt 0.044683 0.016394 -vt 0.033874 0.391223 -vt 0.035247 0.357006 -vt 0.032082 0.183664 -vt 0.031102 0.212960 -vt 0.026194 0.210732 -vt 0.027037 0.185558 -vt 0.034115 0.157369 -vt 0.034435 0.128769 -vt 0.033381 0.047668 -vt 0.032891 0.018366 -vt 0.021636 0.388880 -vt 0.022861 0.358361 -vt 0.024556 0.328782 -vt 0.026047 0.298459 -vt 0.035522 0.101845 -vt 0.035752 0.073650 -vt 0.014195 0.451072 -vt 0.015784 0.418332 -vt 0.017591 0.360300 -vt 0.016539 0.386525 -vt 0.008490 0.386202 -vt 0.009543 0.359977 -vt 0.030749 0.099822 -vt 0.030947 0.075594 -vt 0.008745 0.448499 -vt 0.010111 0.420366 -vt 0.023445 0.268724 -vt 0.024232 0.243190 -vt 0.029279 0.155303 -vt 0.029555 0.130726 -vt 0.028369 0.045690 -vt 0.027949 0.020511 -vt 0.019510 0.326396 -vt 0.020791 0.300340 -vt 0.363665 0.147342 -vt 0.390456 0.147342 -vt 0.409400 0.166287 -vt 0.409400 0.193078 -vt 0.390456 0.212022 -vt 0.363664 0.212022 -vt 0.344720 0.193078 -vt 0.344720 0.166286 -vt 0.011513 0.326003 -vt 0.012794 0.299946 -vt 0.018468 0.210474 -vt 0.019311 0.185300 -vt 0.023313 0.099761 -vt 0.023511 0.075533 -vt 0.000111 0.448080 -vt 0.001477 0.419947 -vt 0.015608 0.268483 -vt 0.016395 0.242948 -vt 0.021737 0.155218 -vt 0.022012 0.130642 -vt 0.020642 0.045819 -vt 0.020221 0.020640 -vt 0.241179 0.291205 -vt 0.241048 0.352210 -vt 0.241424 0.231328 -vt 0.239656 0.172428 -vt 0.238302 0.114877 -vt 0.236112 0.057792 -vt 0.234041 0.000494 -vt 0.239378 0.414394 -vt 0.236869 0.477863 -vt 0.344164 0.183645 -vt 0.343181 0.122473 -vt 0.344498 0.244994 -vt 0.344304 0.306406 -vt 0.343563 0.367674 -vt 0.342352 0.428813 -vt 0.340421 0.489783 -vt 0.342493 0.061278 -vt 0.341044 0.000111 -vt 0.248540 0.352310 -vt 0.247025 0.414653 -vt 0.518660 0.274425 -vt 0.518660 0.335581 -vt 0.510669 0.338880 -vt 0.510669 0.271126 -vt 0.618935 0.542365 -vt 0.618935 0.562130 -vt 0.555443 0.562130 -vt 0.555443 0.542365 -vt 0.518975 0.265234 -vt 0.518996 0.204078 -vt 0.526092 0.201151 -vt 0.526069 0.268165 -vt 0.244474 0.478305 -vt 0.491952 0.065734 -vt 0.491951 0.002242 -vt 0.497138 0.000111 -vt 0.497138 0.067865 -vt 0.491951 0.562130 -vt 0.491951 0.542365 -vt 0.518929 0.399261 -vt 0.518950 0.338104 -vt 0.526046 0.335178 -vt 0.526022 0.402192 -vt 0.240901 0.000111 -vt 0.243075 0.057522 -vt 0.518660 0.409933 -vt 0.518660 0.471090 -vt 0.510668 0.474388 -vt 0.510668 0.406634 -vt 0.999889 0.542365 -vt 0.999889 0.562130 -vt 0.936397 0.562130 -vt 0.936397 0.542365 -vt 0.543764 0.202918 -vt 0.543742 0.266410 -vt 0.539451 0.268169 -vt 0.539474 0.201156 -vt 0.245271 0.114659 -vt 0.518659 0.003410 -vt 0.518659 0.064565 -vt 0.510668 0.067865 -vt 0.510667 0.000111 -vt 0.872904 0.562130 -vt 0.872904 0.542365 -vt 0.518882 0.533287 -vt 0.518903 0.472131 -vt 0.525999 0.469205 -vt 0.525976 0.536218 -vt 0.246721 0.172240 -vt 0.491952 0.268995 -vt 0.491952 0.205503 -vt 0.497139 0.203372 -vt 0.497139 0.271126 -vt 0.809412 0.562130 -vt 0.809412 0.542365 -vt 0.543718 0.336945 -vt 0.543696 0.400437 -vt 0.539405 0.402196 -vt 0.539428 0.335183 -vt 0.248540 0.231225 -vt 0.491952 0.404503 -vt 0.491952 0.341011 -vt 0.497139 0.338880 -vt 0.497138 0.406634 -vt 0.745919 0.562130 -vt 0.745919 0.542365 -vt 0.519021 0.131207 -vt 0.519042 0.070051 -vt 0.526138 0.067125 -vt 0.526115 0.134138 -vt 0.248518 0.291219 -vt 0.518660 0.206671 -vt 0.518660 0.267827 -vt 0.510668 0.203372 -vt 0.682427 0.562130 -vt 0.682427 0.542365 -vt 0.543671 0.470972 -vt 0.543649 0.534464 -vt 0.539358 0.536223 -vt 0.539381 0.469210 -vt 0.491951 0.540012 -vt 0.491952 0.476519 -vt 0.497138 0.474388 -vt 0.497138 0.542143 -vt 0.543810 0.068891 -vt 0.543788 0.132383 -vt 0.539497 0.134142 -vt 0.539520 0.067129 -vt 0.526161 0.000111 -vt 0.539543 0.000116 -vt 0.543833 0.001878 -vt 0.543811 0.065370 -vt 0.543695 0.403959 -vt 0.543672 0.467451 -vt 0.519044 0.064193 -vt 0.519065 0.003037 -vt 0.543741 0.269931 -vt 0.543719 0.333424 -vt 0.518906 0.466274 -vt 0.518927 0.405118 -vt 0.543787 0.135905 -vt 0.543765 0.199397 -vt 0.518952 0.332247 -vt 0.518973 0.271091 -vt 0.518998 0.198220 -vt 0.519019 0.137064 -vt 0.510668 0.135618 -vt 0.497138 0.135618 -vt 0.510668 0.542143 -vt 0.491952 0.472258 -vt 0.491952 0.408765 -vt 0.518660 0.138917 -vt 0.518660 0.200073 -vt 0.491952 0.336749 -vt 0.491952 0.273257 -vt 0.491952 0.201241 -vt 0.491952 0.137749 -vt 0.518660 0.071163 -vt 0.518660 0.132319 -vt 0.518660 0.477687 -vt 0.518660 0.538844 -vt 0.491952 0.133487 -vt 0.491952 0.069996 -vt 0.518660 0.342179 -vt 0.518660 0.403335 -vn 0.0019 -0.3851 -0.9229 -vn 0.0000 -0.9239 -0.3827 -vn 0.0000 -0.9239 0.3827 -vn 0.0000 -0.3827 0.9239 -vn 0.0000 0.3827 0.9239 -vn 0.0000 0.9239 0.3827 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.9239 -0.3827 -vn 0.0019 0.3851 -0.9229 -vn -0.9726 -0.2149 -0.0890 -vn 0.9560 0.1123 0.2711 -vn -0.9726 0.0890 0.2149 -vn -0.9726 0.0890 -0.2149 -vn -0.9726 -0.0890 -0.2149 -vn -0.9726 -0.2149 0.0890 -vn -0.9726 0.2149 0.0890 -vn -0.9726 -0.0890 0.2149 -vn -0.9726 0.2149 -0.0890 -vn 0.9560 -0.2711 0.1123 -vn 0.9560 -0.1123 -0.2711 -vn 0.9560 0.1123 -0.2711 -vn 0.9560 0.2711 0.1123 -vn 0.9560 -0.1123 0.2711 -vn 0.9560 -0.2711 -0.1123 -vn 0.9560 0.2711 -0.1123 -vn -0.9615 0.2539 0.1052 -vn 0.0000 -0.3827 -0.9239 -vn 0.0000 0.3827 -0.9239 -vn 0.9469 -0.1230 -0.2970 -vn -0.9615 -0.1052 0.2539 -vn -0.9615 -0.2539 -0.1052 -vn -0.9615 0.2539 -0.1052 -vn -0.9615 0.1052 0.2539 -vn -0.9615 -0.2539 0.1052 -vn -0.9615 -0.1052 -0.2539 -vn -0.9615 0.1052 -0.2539 -vn 0.9469 0.1230 -0.2970 -vn 0.9469 0.2970 0.1230 -vn 0.9469 -0.1230 0.2970 -vn 0.9469 -0.2970 -0.1230 -vn 0.9469 0.2970 -0.1230 -vn 0.9469 0.1230 0.2970 -vn 0.9469 -0.2970 0.1230 -vn -0.4917 -0.8045 -0.3332 -vn -0.7567 0.2502 -0.6040 -vn -0.4917 0.8045 -0.3332 -vn -0.4917 0.3332 0.8045 -vn -0.4917 -0.8045 0.3332 -vn -0.4917 -0.3332 -0.8045 -vn -0.4917 0.3332 -0.8045 -vn -0.4917 0.8045 0.3332 -vn -0.4917 -0.3332 0.8045 -vn -0.3625 0.8610 -0.3567 -vn -0.7567 0.6040 0.2502 -vn -0.7567 -0.2502 0.6040 -vn -0.7567 -0.6040 -0.2502 -vn -0.7567 0.6040 -0.2502 -vn -0.7567 0.2502 0.6040 -vn -0.7567 -0.6040 0.2502 -vn -0.7567 -0.2502 -0.6040 -vn -1.0000 0.0000 0.0000 -vn -0.3625 0.3567 0.8610 -vn -0.3625 -0.8610 0.3567 -vn -0.3625 -0.3567 -0.8610 -vn -0.3625 0.3567 -0.8610 -vn -0.3625 0.8610 0.3567 -vn -0.3625 -0.3567 0.8610 -vn -0.3625 -0.8610 -0.3567 -vn -0.0059 0.3827 -0.9239 -vn -0.0030 0.9249 -0.3803 -vn -0.0030 0.9249 0.3803 -vn -0.0059 0.3827 0.9239 -vn -0.0059 -0.3827 0.9239 -vn -0.0030 -0.9249 0.3803 -vn -0.0030 -0.9249 -0.3803 -vn -0.0059 -0.3827 -0.9239 -vn 0.0169 0.3850 -0.9227 -vn 0.0341 0.9233 -0.3825 -vn 0.0341 0.9233 0.3825 -vn 0.0341 0.3825 0.9233 -vn 0.0341 -0.3825 0.9233 -vn 0.0341 -0.9233 0.3825 -vn 0.0341 -0.9233 -0.3825 -vn 0.0169 -0.3850 -0.9227 -vn -0.9966 -0.0761 -0.0315 -vn 0.9966 -0.0762 0.0316 -vn -0.0215 -0.9247 -0.3802 -vn 0.9919 0.1173 0.0486 -vn 0.9966 -0.0316 -0.0762 -vn -0.0215 -0.9247 0.3802 -vn -0.9966 0.0315 -0.0761 -vn -0.9907 -0.1260 0.0522 -vn -0.9966 0.0761 0.0315 -vn 0.9966 0.0762 -0.0316 -vn 0.9919 -0.1173 0.0486 -vn -0.9907 -0.0522 -0.1259 -vn -0.0215 0.9247 0.3802 -vn 0.9919 -0.0486 -0.1173 -vn 0.9966 0.0316 0.0762 -vn -0.0215 0.9247 -0.3802 -vn -0.9966 -0.0761 0.0315 -vn -0.9907 0.1260 -0.0522 -vn 0.9919 0.1173 -0.0486 -vn -0.9907 0.0522 0.1260 -vn -0.9907 0.1260 0.0522 -vn -0.9907 0.0522 -0.1260 -vn 0.9966 0.0762 0.0316 -vn -0.9907 -0.1260 -0.0522 -vn 0.9966 0.0316 -0.0762 -vn -0.9907 -0.0522 0.1260 -vn 0.9966 -0.0762 -0.0316 -vn 0.9966 -0.0316 0.0762 -vn 0.9919 0.0486 -0.1173 -vn -0.9966 -0.0315 0.0762 -vn 0.9919 -0.1173 -0.0486 -vn 0.9919 -0.0486 0.1173 -vn -0.9966 0.0315 0.0762 -vn -0.9966 0.0761 -0.0315 -vn 0.9919 0.0486 0.1173 -vn -0.9966 -0.0315 -0.0761 -s off -f 733/1257/403 734/1258/403 735/1259/403 736/1260/403 -f 736/1260/404 735/1259/404 737/1261/404 738/1262/404 -f 738/1263/405 737/1264/405 739/1265/405 740/1266/405 -f 740/1266/406 739/1265/406 741/1267/406 742/1268/406 -f 742/1268/407 741/1267/407 743/1269/407 744/1270/407 -f 744/1270/408 743/1269/408 745/1271/408 746/1272/408 -f 735/1273/409 734/1274/409 747/1275/409 745/1276/409 743/1277/409 741/1278/409 739/1279/409 737/1280/409 -f 746/1272/410 745/1271/410 747/1281/410 748/1282/410 -f 748/1282/411 747/1281/411 734/1258/411 733/1257/411 -f 749/1283/412 750/1284/412 751/1285/412 752/1286/412 -f 753/1287/413 754/1288/413 755/1289/413 756/1290/413 -f 757/1291/414 758/1292/414 754/1288/414 753/1287/414 -f 759/1293/415 760/1294/415 761/1295/415 762/1296/415 -f 760/1294/416 749/1283/416 752/1297/416 761/1298/416 -f 750/1299/417 763/1300/417 764/1301/417 751/1302/417 -f 758/1292/418 765/1303/418 766/1304/418 754/1305/418 -f 763/1300/419 757/1291/419 753/1306/419 764/1307/419 -f 765/1303/420 759/1293/420 762/1308/420 766/1309/420 -f 767/1310/410 768/1311/410 769/1312/410 770/1313/410 -f 751/1302/421 764/1301/421 771/1314/421 772/1315/421 -f 761/1298/422 752/1297/422 773/1316/422 774/1317/422 -f 762/1296/423 761/1295/423 774/1317/423 768/1311/423 -f 754/1305/424 766/1304/424 767/1310/424 755/1289/424 -f 764/1307/425 753/1306/425 756/1290/425 771/1314/425 -f 752/1286/426 751/1285/426 772/1318/426 773/1316/426 -f 766/1309/427 762/1308/427 768/1311/427 767/1310/427 -f 775/1319/428 770/1313/428 776/1320/428 777/1321/428 -f 756/1290/407 755/1289/407 775/1319/407 778/1322/407 -f 772/1315/405 771/1314/405 779/1323/405 780/1324/405 -f 774/1317/429 773/1316/429 781/1325/429 782/1326/429 -f 768/1311/430 774/1317/430 782/1326/430 769/1312/430 -f 755/1289/408 767/1310/408 770/1313/408 775/1319/408 -f 771/1314/406 756/1290/406 778/1322/406 779/1323/406 -f 773/1316/404 772/1318/404 780/1327/404 781/1325/404 -f 783/1328/431 784/1329/431 785/1330/431 786/1331/431 -f 779/1323/432 778/1322/432 787/1332/432 788/1333/432 -f 781/1325/433 780/1327/433 789/1334/433 784/1335/433 -f 770/1313/434 769/1312/434 790/1336/434 776/1337/434 -f 778/1322/435 775/1319/435 777/1338/435 787/1339/435 -f 780/1324/436 779/1323/436 788/1340/436 789/1341/436 -f 782/1326/437 781/1325/437 784/1329/437 783/1328/437 -f 769/1312/438 782/1326/438 783/1342/438 790/1343/438 -f 791/1344/410 792/1345/410 793/1346/410 794/1347/410 -f 790/1343/439 783/1342/439 786/1331/439 792/1345/439 -f 777/1321/440 776/1320/440 791/1344/440 795/1348/440 -f 788/1333/441 787/1332/441 796/1349/441 797/1350/441 -f 784/1335/442 789/1334/442 798/1351/442 785/1330/442 -f 776/1337/443 790/1336/443 792/1345/443 791/1344/443 -f 787/1339/444 777/1338/444 795/1348/444 796/1349/444 -f 789/1341/445 788/1340/445 797/1350/445 798/1352/445 -f 799/1353/446 800/1354/446 801/1355/446 802/1356/446 -f 796/1349/407 795/1348/407 803/1357/407 804/1358/407 -f 798/1352/405 797/1350/405 805/1359/405 800/1360/405 -f 786/1331/429 785/1330/429 799/1353/429 806/1361/429 -f 792/1345/430 786/1331/430 806/1361/430 793/1346/430 -f 795/1348/408 791/1344/408 794/1347/408 803/1357/408 -f 797/1350/406 796/1349/406 804/1358/406 805/1359/406 -f 785/1330/404 798/1351/404 800/1354/404 799/1353/404 -f 807/1362/447 808/1363/447 809/1364/447 810/1365/447 -f 794/1347/448 793/1346/448 807/1366/448 811/1367/448 -f 804/1358/449 803/1357/449 812/1368/449 813/1369/449 -f 800/1360/450 805/1359/450 814/1370/450 801/1371/450 -f 806/1361/451 799/1353/451 802/1372/451 808/1373/451 -f 793/1346/452 806/1361/452 808/1363/452 807/1362/452 -f 803/1357/453 794/1347/453 811/1374/453 812/1375/453 -f 805/1359/454 804/1358/454 813/1376/454 814/1377/454 -f 815/1378/455 810/1379/455 816/1380/455 817/1381/455 -f 812/1375/456 811/1374/456 815/1382/456 818/1383/456 -f 814/1377/457 813/1376/457 819/1384/457 820/1385/457 -f 802/1356/458 801/1355/458 821/1386/458 822/1387/458 -f 811/1367/459 807/1366/459 810/1379/459 815/1378/459 -f 813/1369/460 812/1368/460 818/1388/460 819/1389/460 -f 801/1371/461 814/1370/461 820/1390/461 821/1391/461 -f 808/1373/462 802/1372/462 822/1392/462 809/1393/462 -f 823/1394/463 817/1395/463 824/1396/463 825/1397/463 -f 819/1389/464 818/1388/464 823/1398/464 826/1399/464 -f 821/1391/465 820/1390/465 827/1400/465 828/1401/465 -f 809/1393/466 822/1392/466 829/1402/466 830/1403/466 -f 810/1365/467 809/1364/467 830/1404/467 816/1405/467 -f 818/1383/468 815/1382/468 817/1395/468 823/1394/468 -f 820/1385/469 819/1384/469 826/1406/469 827/1407/469 -f 822/1387/470 821/1386/470 828/1408/470 829/1409/470 -f 831/1410/407 832/1411/407 833/1412/407 834/1413/407 -f 827/1407/463 826/1406/463 835/1414/463 836/1415/463 -f 829/1409/463 828/1408/463 837/1416/463 832/1417/463 -f 817/1381/463 816/1380/463 838/1418/463 824/1419/463 -f 826/1399/463 823/1398/463 825/1420/463 835/1421/463 -f 828/1401/463 827/1400/463 836/1422/463 837/1423/463 -f 830/1403/463 829/1402/463 832/1411/463 831/1410/463 -f 816/1405/463 830/1404/463 831/1424/463 838/1425/463 -f 834/1426/463 833/1427/463 839/1428/463 840/1429/463 841/1430/463 842/1431/463 843/1432/463 844/1433/463 -f 838/1425/406 831/1424/406 834/1434/406 844/1435/406 -f 825/1397/404 824/1396/404 843/1436/404 842/1437/404 -f 836/1415/430 835/1414/430 841/1438/430 840/1439/430 -f 832/1417/408 837/1416/408 839/1440/408 833/1441/408 -f 824/1419/405 838/1418/405 844/1442/405 843/1443/405 -f 835/1421/429 825/1420/429 842/1444/429 841/1445/429 -f 837/1423/410 836/1422/410 840/1446/410 839/1447/410 -f 759/1293/471 845/1448/471 846/1449/471 760/1294/471 -f 765/1303/472 847/1450/472 845/1448/472 759/1293/472 -f 758/1292/473 848/1451/473 847/1450/473 765/1303/473 -f 757/1291/474 849/1452/474 848/1451/474 758/1292/474 -f 763/1300/475 850/1453/475 849/1452/475 757/1291/475 -f 750/1299/476 851/1454/476 850/1453/476 763/1300/476 -f 749/1283/477 852/1455/477 851/1456/477 750/1284/477 -f 760/1294/478 846/1449/478 852/1455/478 749/1283/478 -f 853/1457/479 748/1282/479 733/1257/479 854/1458/479 -f 855/1459/480 746/1272/480 748/1282/480 853/1457/480 -f 856/1460/481 744/1270/481 746/1272/481 855/1459/481 -f 857/1461/482 742/1268/482 744/1270/482 856/1460/482 -f 858/1462/483 740/1266/483 742/1268/483 857/1461/483 -f 859/1463/484 738/1263/484 740/1266/484 858/1462/484 -f 860/1464/485 736/1260/485 738/1262/485 859/1465/485 -f 854/1458/486 733/1257/486 736/1260/486 860/1464/486 -f 846/1449/429 861/1466/429 862/1467/429 852/1455/429 -f 863/1468/487 864/1469/487 865/1470/487 866/1471/487 -f 867/1472/429 868/1473/429 869/1474/429 870/1475/429 -f 855/1476/488 853/1477/488 871/1478/488 872/1479/488 -f 852/1455/489 862/1467/489 873/1480/489 851/1456/489 -f 870/1481/490 874/1482/490 875/1483/490 876/1484/490 -f 870/1475/404 869/1474/404 877/1485/404 874/1486/404 -f 857/1487/491 856/1488/491 878/1489/491 879/1490/491 -f 851/1454/492 873/1491/492 880/1492/492 850/1453/492 -f 881/1493/493 880/1494/493 882/1495/493 883/1496/493 -f 874/1497/405 877/1498/405 884/1499/405 885/1500/405 -f 886/1501/494 887/1502/494 888/1503/494 889/1504/494 -f 850/1453/406 880/1492/406 881/1505/406 849/1452/406 -f 873/1506/495 862/1507/495 890/1508/495 891/1509/495 -f 885/1500/406 884/1499/406 892/1510/406 893/1511/406 -f 859/1512/496 858/1513/496 894/1514/496 895/1515/496 -f 849/1452/407 881/1505/407 864/1516/407 848/1451/407 -f 896/1517/497 897/1518/497 898/1519/497 899/1520/497 -f 893/1511/407 892/1510/407 900/1521/407 901/1522/407 -f 900/1523/498 892/1524/498 902/1525/498 903/1526/498 -f 848/1451/499 864/1516/499 863/1527/499 847/1450/499 -f 893/1528/500 901/1529/500 904/1530/500 905/1531/500 -f 901/1522/408 900/1521/408 887/1532/408 896/1533/408 -f 854/1534/501 860/1535/501 906/1536/501 907/1537/501 -f 847/1450/502 863/1527/502 908/1538/502 845/1448/502 -f 908/1539/503 863/1540/503 866/1471/503 909/1541/503 -f 896/1533/410 887/1532/410 886/1542/410 897/1543/410 -f 884/1544/504 877/1545/504 910/1546/504 911/1547/504 -f 845/1448/430 908/1538/430 861/1466/430 846/1449/430 -f 874/1548/505 885/1549/505 912/1550/505 875/1551/505 -f 897/1543/430 886/1542/430 868/1473/430 867/1472/430 -f 869/1552/506 868/1553/506 913/1554/506 914/1555/506 -f 913/1554/429 907/1537/429 906/1536/429 914/1555/429 -f 914/1555/404 906/1536/404 895/1556/404 910/1557/404 -f 910/1546/405 895/1515/405 894/1514/405 911/1547/405 -f 911/1547/406 894/1514/406 879/1490/406 902/1525/406 -f 902/1525/407 879/1490/407 878/1489/407 903/1526/407 -f 903/1526/408 878/1489/408 872/1479/408 888/1503/408 -f 888/1503/410 872/1479/410 871/1478/410 889/1504/410 -f 889/1504/430 871/1478/430 907/1537/430 913/1554/430 -f 877/1558/507 869/1559/507 914/1555/507 910/1557/507 -f 892/1560/508 884/1561/508 911/1547/508 902/1525/508 -f 860/1562/509 859/1563/509 895/1556/509 906/1536/509 -f 887/1564/510 900/1565/510 903/1526/510 888/1503/510 -f 858/1566/511 857/1567/511 879/1490/511 894/1514/511 -f 868/1568/512 886/1569/512 889/1504/512 913/1554/512 -f 856/1570/513 855/1571/513 872/1479/513 878/1489/513 -f 853/1572/514 854/1573/514 907/1537/514 871/1478/514 -f 915/1574/429 916/1575/429 876/1484/429 890/1508/429 -f 890/1508/404 876/1484/404 875/1483/404 891/1509/404 -f 891/1576/405 875/1551/405 912/1550/405 882/1495/405 -f 882/1495/406 912/1550/406 905/1531/406 883/1496/406 -f 883/1496/407 905/1531/407 904/1530/407 865/1470/407 -f 865/1470/408 904/1530/408 899/1520/408 866/1471/408 -f 866/1471/410 899/1520/410 898/1519/410 909/1541/410 -f 909/1541/430 898/1519/430 916/1575/430 915/1574/430 -f 885/1577/515 893/1578/515 905/1531/515 912/1550/515 -f 861/1579/516 908/1580/516 909/1541/516 915/1574/516 -f 901/1581/517 896/1582/517 899/1520/517 904/1530/517 -f 897/1583/518 867/1584/518 916/1575/518 898/1519/518 -f 862/1585/519 861/1586/519 915/1574/519 890/1508/519 -f 880/1587/520 873/1588/520 891/1576/520 882/1495/520 -f 867/1589/521 870/1590/521 876/1484/521 916/1575/521 -f 864/1591/522 881/1592/522 883/1496/522 865/1470/522 -o SideScrews_Cylinder.005 -v -0.436383 0.265019 3.509254 -v 1.004741 0.265019 3.509254 -v 1.004741 0.179718 3.544586 -v -0.436383 0.179718 3.544586 -v 1.004741 0.144386 3.629887 -v -0.436383 0.144385 3.629887 -v 1.004741 0.179718 3.715187 -v -0.436383 0.179718 3.715187 -v 1.004741 0.265019 3.750520 -v -0.436383 0.265019 3.750520 -v 1.004741 0.350319 3.715187 -v -0.436383 0.350319 3.715187 -v 1.004741 0.385652 3.629887 -v -0.436383 0.385652 3.629887 -v 1.088061 0.265019 3.750520 -v 1.088061 0.350319 3.715187 -v 1.004741 0.350319 3.544586 -v -0.436383 0.350319 3.544586 -v -0.513171 0.364069 3.629887 -v -0.513171 0.335058 3.699926 -v -0.513171 0.265019 3.530836 -v -0.513171 0.194979 3.559848 -v -0.513171 0.165968 3.629887 -v -0.513171 0.194979 3.699926 -v -0.513171 0.265019 3.728937 -v -0.513171 0.335058 3.559848 -v 1.088061 0.265019 3.509254 -v 1.088061 0.350319 3.544586 -v 1.100404 0.336110 3.558795 -v 1.100404 0.265019 3.529348 -v 1.088061 0.179718 3.544586 -v 1.088061 0.144386 3.629887 -v 1.088061 0.179718 3.715187 -v 1.088061 0.385652 3.629887 -v 1.100404 0.336110 3.700979 -v 1.100404 0.365558 3.629887 -v 1.100404 0.193927 3.700979 -v 1.100404 0.265019 3.730426 -v 1.100404 0.193927 3.558795 -v 1.100404 0.164480 3.629887 -v 1.127149 0.181939 3.629887 -v 1.127149 0.206273 3.688633 -v 1.127149 0.206273 3.571141 -v 1.127149 0.265019 3.546807 -v 1.127149 0.323765 3.571141 -v 1.127149 0.348098 3.629887 -v 1.127149 0.323765 3.688633 -v 1.127149 0.265019 3.712966 -v -0.436384 0.265019 2.490746 -v -0.436384 0.179718 2.455414 -v 1.004741 0.179718 2.455414 -v 1.004741 0.265019 2.490746 -v -0.436384 0.144385 2.370113 -v 1.004741 0.144386 2.370113 -v -0.436384 0.179718 2.284813 -v 1.004741 0.179718 2.284813 -v -0.436384 0.265019 2.249480 -v 1.004741 0.265019 2.249480 -v -0.436384 0.350319 2.284813 -v 1.004741 0.350319 2.284813 -v -0.436384 0.385652 2.370113 -v 1.004741 0.385652 2.370113 -v 1.088061 0.350319 2.284813 -v 1.088061 0.265019 2.249480 -v -0.436384 0.350319 2.455414 -v 1.004741 0.350319 2.455414 -v -0.513171 0.335058 2.300074 -v -0.513171 0.364069 2.370113 -v -0.513171 0.265019 2.469164 -v -0.513171 0.335058 2.440152 -v -0.513171 0.265019 2.271063 -v -0.513171 0.194979 2.300074 -v -0.513171 0.165968 2.370113 -v -0.513171 0.194979 2.440152 -v 1.088061 0.265019 2.490746 -v 1.100404 0.265019 2.470652 -v 1.100404 0.336111 2.441205 -v 1.088061 0.350319 2.455414 -v 1.088061 0.179718 2.455414 -v 1.088061 0.179718 2.284813 -v 1.088061 0.144386 2.370113 -v 1.088061 0.385652 2.370113 -v 1.100404 0.365558 2.370113 -v 1.100404 0.336110 2.299021 -v 1.100404 0.265019 2.269574 -v 1.100404 0.193927 2.299021 -v 1.100404 0.164480 2.370113 -v 1.100404 0.193927 2.441205 -v 1.127149 0.206273 2.311367 -v 1.127149 0.181939 2.370113 -v 1.127149 0.206273 2.428859 -v 1.127149 0.265019 2.287034 -v 1.127149 0.323765 2.311367 -v 1.127149 0.348098 2.370113 -v 1.127149 0.323765 2.428859 -v 1.127149 0.265019 2.453193 -vt 0.047908 0.778254 -vt 0.915002 0.778254 -vt 0.915002 0.833806 -vt 0.047908 0.833806 -vt 0.915002 0.889359 -vt 0.047908 0.889358 -vt 0.047908 0.444941 -vt 0.915002 0.444941 -vt 0.915002 0.500493 -vt 0.047908 0.500493 -vt 0.915002 0.556045 -vt 0.047908 0.556045 -vt 0.915002 0.611597 -vt 0.047908 0.611598 -vt 0.915002 0.667149 -vt 0.047908 0.667150 -vt 0.965134 0.556045 -vt 0.965134 0.611597 -vt 0.915002 0.722702 -vt 0.047908 0.722702 -vt 0.000174 0.662180 -vt 0.000174 0.616567 -vt 0.188508 0.999826 -vt 0.142894 0.999826 -vt 0.110641 0.967572 -vt 0.110641 0.921959 -vt 0.142895 0.889706 -vt 0.188508 0.889706 -vt 0.220761 0.921959 -vt 0.220761 0.967572 -vt 0.000174 0.551076 -vt 0.000174 0.505463 -vt 0.000174 0.717732 -vt 0.000174 0.672119 -vt 0.000174 0.884388 -vt 0.000174 0.838776 -vt 0.000174 0.606628 -vt 0.000174 0.561015 -vt 0.000174 0.773284 -vt 0.000174 0.727671 -vt 0.000174 0.828837 -vt 0.000174 0.783223 -vt 0.000174 0.495524 -vt 0.000174 0.449911 -vt 0.965134 0.778254 -vt 0.965134 0.722702 -vt 0.978548 0.727329 -vt 0.978548 0.773627 -vt 0.965134 0.833806 -vt 0.965134 0.444941 -vt 0.965134 0.500493 -vt 0.965134 0.667149 -vt 0.965134 0.889359 -vt 0.978548 0.616224 -vt 0.978548 0.662523 -vt 0.978548 0.505120 -vt 0.978548 0.551419 -vt 0.978548 0.838433 -vt 0.978548 0.884732 -vt 0.978548 0.671776 -vt 0.978548 0.718075 -vt 0.978548 0.560672 -vt 0.978548 0.606970 -vt 0.978548 0.449567 -vt 0.978548 0.495866 -vt 0.978548 0.782880 -vt 0.978548 0.829179 -vt 0.997340 0.453587 -vt 0.997340 0.491846 -vt 0.313821 0.916759 -vt 0.340874 0.889706 -vt 0.379132 0.889706 -vt 0.406185 0.916760 -vt 0.406185 0.955018 -vt 0.379132 0.982071 -vt 0.340873 0.982071 -vt 0.313820 0.955018 -vt 0.997340 0.786900 -vt 0.997340 0.825159 -vt 0.997340 0.731349 -vt 0.997339 0.769607 -vt 0.997340 0.620244 -vt 0.997340 0.658502 -vt 0.997340 0.509140 -vt 0.997340 0.547398 -vt 0.997340 0.842454 -vt 0.997340 0.880712 -vt 0.997340 0.675796 -vt 0.997340 0.714055 -vt 0.997340 0.564692 -vt 0.997340 0.602951 -vt 0.047908 0.111279 -vt 0.047908 0.055726 -vt 0.915003 0.055729 -vt 0.915003 0.111281 -vt 0.047908 0.000174 -vt 0.915003 0.000177 -vt 0.047907 0.444592 -vt 0.047907 0.389040 -vt 0.915002 0.389041 -vt 0.915002 0.444593 -vt 0.047907 0.333487 -vt 0.915002 0.333489 -vt 0.047907 0.277935 -vt 0.915002 0.277937 -vt 0.047908 0.222383 -vt 0.915002 0.222385 -vt 0.965134 0.277937 -vt 0.965134 0.333489 -vt 0.047908 0.166830 -vt 0.915003 0.166833 -vt 0.000174 0.272966 -vt 0.000174 0.227352 -vt 0.032427 0.889706 -vt 0.078041 0.889706 -vt 0.110294 0.921960 -vt 0.110294 0.967573 -vt 0.078041 0.999826 -vt 0.032427 0.999826 -vt 0.000174 0.967573 -vt 0.000174 0.921960 -vt 0.000174 0.384070 -vt 0.000174 0.338457 -vt 0.000174 0.217413 -vt 0.000174 0.171800 -vt 0.000175 0.050756 -vt 0.000175 0.005143 -vt 0.000174 0.328517 -vt 0.000174 0.282904 -vt 0.000174 0.161861 -vt 0.000175 0.116248 -vt 0.000175 0.106309 -vt 0.000175 0.060695 -vt 0.000174 0.439622 -vt 0.000174 0.394009 -vt 0.965135 0.111281 -vt 0.978548 0.115908 -vt 0.978548 0.162207 -vt 0.965135 0.166833 -vt 0.965135 0.055729 -vt 0.965134 0.389041 -vt 0.965134 0.444593 -vt 0.965134 0.222385 -vt 0.965135 0.000177 -vt 0.978548 0.227012 -vt 0.978548 0.273311 -vt 0.978547 0.338116 -vt 0.978547 0.384414 -vt 0.978548 0.004803 -vt 0.978548 0.051102 -vt 0.978547 0.171460 -vt 0.978547 0.217759 -vt 0.978547 0.282564 -vt 0.978547 0.328863 -vt 0.978548 0.393668 -vt 0.978548 0.439967 -vt 0.978548 0.060356 -vt 0.978548 0.106654 -vt 0.997340 0.397688 -vt 0.997340 0.435947 -vt 0.248162 0.982070 -vt 0.221109 0.955017 -vt 0.221109 0.916758 -vt 0.248162 0.889706 -vt 0.286421 0.889706 -vt 0.313473 0.916759 -vt 0.313473 0.955017 -vt 0.286420 0.982071 -vt 0.997340 0.064376 -vt 0.997340 0.102635 -vt 0.997340 0.119928 -vt 0.997341 0.158187 -vt 0.997340 0.231032 -vt 0.997340 0.269291 -vt 0.997339 0.342136 -vt 0.997339 0.380394 -vt 0.997340 0.008823 -vt 0.997340 0.047082 -vt 0.997339 0.175480 -vt 0.997339 0.213738 -vt 0.997340 0.286584 -vt 0.997340 0.324842 -vn 0.0000 -0.3827 -0.9239 -vn 0.0000 -0.9239 -0.3827 -vn 0.0000 -0.9239 0.3827 -vn 0.0000 -0.3827 0.9239 -vn 0.0000 0.3827 0.9239 -vn 0.0000 0.9239 0.3827 -vn 0.0000 0.9239 -0.3827 -vn 0.0000 0.3827 -0.9239 -vn -0.2513 0.8942 0.3704 -vn -1.0000 0.0000 0.0000 -vn -0.2513 -0.3704 0.8942 -vn -0.2513 0.8942 -0.3704 -vn -0.2513 -0.8942 -0.3704 -vn -0.2513 0.3704 0.8942 -vn -0.2513 0.3704 -0.8942 -vn -0.2513 -0.3704 -0.8942 -vn -0.2513 -0.8942 0.3704 -vn 0.8327 0.2119 -0.5115 -vn 0.8327 0.5115 0.2119 -vn 0.8327 -0.2119 0.5115 -vn 0.8327 -0.5115 -0.2119 -vn 0.8327 0.5115 -0.2119 -vn 0.8327 0.2119 0.5115 -vn 0.8327 -0.5115 0.2119 -vn 0.8327 -0.2119 -0.5115 -vn 0.5165 -0.7911 0.3277 -vn 1.0000 0.0000 0.0000 -vn 0.5165 -0.3277 -0.7911 -vn 0.5165 0.3277 -0.7911 -vn 0.5165 0.7911 0.3277 -vn 0.5165 -0.3277 0.7911 -vn 0.5165 -0.7911 -0.3277 -vn 0.5165 0.7911 -0.3277 -vn 0.5165 0.3277 0.7911 -s off -f 917/1593/523 918/1594/523 919/1595/523 920/1596/523 -f 920/1596/524 919/1595/524 921/1597/524 922/1598/524 -f 922/1599/525 921/1600/525 923/1601/525 924/1602/525 -f 924/1602/526 923/1601/526 925/1603/526 926/1604/526 -f 926/1604/527 925/1603/527 927/1605/527 928/1606/527 -f 928/1606/528 927/1605/528 929/1607/528 930/1608/528 -f 927/1605/527 925/1603/527 931/1609/527 932/1610/527 -f 930/1608/529 929/1607/529 933/1611/529 934/1612/529 -f 934/1612/530 933/1611/530 918/1594/530 917/1593/530 -f 928/1606/531 930/1608/531 935/1613/531 936/1614/531 -f 937/1615/532 938/1616/532 939/1617/532 940/1618/532 941/1619/532 936/1620/532 935/1621/532 942/1622/532 -f 924/1602/533 926/1604/533 941/1623/533 940/1624/533 -f 930/1608/534 934/1612/534 942/1625/534 935/1626/534 -f 920/1596/535 922/1598/535 939/1627/535 938/1628/535 -f 926/1604/536 928/1606/536 936/1629/536 941/1630/536 -f 934/1612/537 917/1593/537 937/1631/537 942/1632/537 -f 917/1593/538 920/1596/538 938/1633/538 937/1634/538 -f 922/1599/539 924/1602/539 940/1635/539 939/1636/539 -f 943/1637/540 944/1638/540 945/1639/540 946/1640/540 -f 918/1594/530 933/1611/530 944/1638/530 943/1637/530 -f 919/1595/523 918/1594/523 943/1637/523 947/1641/523 -f 923/1601/525 921/1600/525 948/1642/525 949/1643/525 -f 929/1607/528 927/1605/528 932/1610/528 950/1644/528 -f 925/1603/526 923/1601/526 949/1643/526 931/1609/526 -f 933/1611/529 929/1607/529 950/1644/529 944/1638/529 -f 921/1597/524 919/1595/524 947/1641/524 948/1645/524 -f 950/1644/541 932/1610/541 951/1646/541 952/1647/541 -f 931/1609/542 949/1643/542 953/1648/542 954/1649/542 -f 948/1645/543 947/1641/543 955/1650/543 956/1651/543 -f 944/1638/544 950/1644/544 952/1652/544 945/1653/544 -f 932/1610/545 931/1609/545 954/1654/545 951/1655/545 -f 949/1643/546 948/1642/546 956/1656/546 953/1657/546 -f 947/1641/547 943/1637/547 946/1658/547 955/1659/547 -f 953/1657/548 956/1656/548 957/1660/548 958/1661/548 -f 959/1662/549 960/1663/549 961/1664/549 962/1665/549 963/1666/549 964/1667/549 958/1668/549 957/1669/549 -f 955/1659/550 946/1658/550 960/1670/550 959/1671/550 -f 946/1640/551 945/1639/551 961/1672/551 960/1673/551 -f 952/1647/552 951/1646/552 963/1674/552 962/1675/552 -f 954/1649/553 953/1648/553 958/1676/553 964/1677/553 -f 956/1651/554 955/1650/554 959/1678/554 957/1679/554 -f 945/1653/555 952/1652/555 962/1680/555 961/1681/555 -f 951/1655/556 954/1654/556 964/1682/556 963/1683/556 -f 965/1684/526 966/1685/526 967/1686/526 968/1687/526 -f 966/1685/525 969/1688/525 970/1689/525 967/1686/525 -f 969/1690/524 971/1691/524 972/1692/524 970/1693/524 -f 971/1691/523 973/1694/523 974/1695/523 972/1692/523 -f 973/1694/530 975/1696/530 976/1697/530 974/1695/530 -f 975/1696/529 977/1698/529 978/1699/529 976/1697/529 -f 976/1697/530 979/1700/530 980/1701/530 974/1695/530 -f 977/1698/528 981/1702/528 982/1703/528 978/1699/528 -f 981/1702/527 965/1684/527 968/1687/527 982/1703/527 -f 975/1696/534 983/1704/534 984/1705/534 977/1698/534 -f 985/1706/532 986/1707/532 984/1708/532 983/1709/532 987/1710/532 988/1711/532 989/1712/532 990/1713/532 -f 971/1691/538 988/1714/538 987/1715/538 973/1694/538 -f 977/1698/531 984/1716/531 986/1717/531 981/1702/531 -f 966/1685/539 990/1718/539 989/1719/539 969/1688/539 -f 973/1694/537 987/1720/537 983/1721/537 975/1696/537 -f 981/1702/536 986/1722/536 985/1723/536 965/1684/536 -f 965/1684/533 985/1724/533 990/1725/533 966/1685/533 -f 969/1690/535 989/1726/535 988/1727/535 971/1691/535 -f 991/1728/545 992/1729/545 993/1730/545 994/1731/545 -f 968/1687/527 991/1728/527 994/1731/527 982/1703/527 -f 967/1686/526 995/1732/526 991/1728/526 968/1687/526 -f 972/1692/524 996/1733/524 997/1734/524 970/1693/524 -f 978/1699/529 998/1735/529 979/1700/529 976/1697/529 -f 974/1695/523 980/1701/523 996/1733/523 972/1692/523 -f 982/1703/528 994/1731/528 998/1735/528 978/1699/528 -f 970/1689/525 997/1736/525 995/1732/525 967/1686/525 -f 998/1735/544 999/1737/544 1000/1738/544 979/1700/544 -f 980/1701/547 1001/1739/547 1002/1740/547 996/1733/547 -f 997/1736/546 1003/1741/546 1004/1742/546 995/1732/546 -f 994/1731/541 993/1743/541 999/1744/541 998/1735/541 -f 979/1700/540 1000/1745/540 1001/1746/540 980/1701/540 -f 996/1733/543 1002/1747/543 1003/1748/543 997/1734/543 -f 995/1732/542 1004/1749/542 992/1750/542 991/1728/542 -f 1002/1747/554 1005/1751/554 1006/1752/554 1003/1748/554 -f 1007/1753/549 1006/1754/549 1005/1755/549 1008/1756/549 1009/1757/549 1010/1758/549 1011/1759/549 1012/1760/549 -f 1004/1749/553 1007/1761/553 1012/1762/553 992/1750/553 -f 992/1729/556 1012/1763/556 1011/1764/556 993/1730/556 -f 999/1737/555 1010/1765/555 1009/1766/555 1000/1738/555 -f 1001/1739/550 1008/1767/550 1005/1768/550 1002/1740/550 -f 1003/1741/548 1006/1769/548 1007/1770/548 1004/1742/548 -f 993/1743/552 1011/1771/552 1010/1772/552 999/1744/552 -f 1000/1745/551 1009/1773/551 1008/1774/551 1001/1746/551 -o CoiCanon_Cylinder.004 -v -0.419369 0.526526 -0.206986 -v 0.947632 0.526526 -0.206986 -v 0.947632 0.380164 -0.146361 -v -0.419369 0.380164 -0.146361 -v 0.947632 0.319540 0.000000 -v -0.419369 0.319540 0.000000 -v 0.947632 0.380164 0.146361 -v -0.419369 0.380164 0.146361 -v 0.947632 0.526526 0.206986 -v -0.419369 0.526526 0.206986 -v 0.947632 0.672887 0.146361 -v -0.419369 0.672887 0.146361 -v 0.947632 0.733512 0.000000 -v -0.419369 0.733512 0.000000 -v 0.947632 0.672887 -0.146361 -v -0.419369 0.672887 -0.146361 -vt 1.000000 0.500000 -vt 1.000000 1.000000 -vt 0.875000 1.000000 -vt 0.875000 0.500000 -vt 0.750000 1.000000 -vt 0.750000 0.500000 -vt 0.625000 1.000000 -vt 0.625000 0.500000 -vt 0.500000 1.000000 -vt 0.500000 0.500000 -vt 0.375000 1.000000 -vt 0.375000 0.500000 -vt 0.250000 1.000000 -vt 0.250000 0.500000 -vt 0.419706 0.419706 -vt 0.250000 0.490000 -vt 0.080294 0.419706 -vt 0.010000 0.250000 -vt 0.080294 0.080294 -vt 0.250000 0.010000 -vt 0.419706 0.080294 -vt 0.490000 0.250000 -vt 0.125000 1.000000 -vt 0.125000 0.500000 -vt 0.000000 1.000000 -vt 0.000000 0.500000 -vt 0.750000 0.490000 -vt 0.919706 0.419706 -vt 0.990000 0.250000 -vt 0.919706 0.080294 -vt 0.750000 0.010000 -vt 0.580294 0.080294 -vt 0.510000 0.250000 -vt 0.580294 0.419706 -vn 0.0000 -0.3827 -0.9239 -vn 0.0000 -0.9239 -0.3827 -vn 0.0000 -0.9239 0.3827 -vn 0.0000 -0.3827 0.9239 -vn 0.0000 0.3827 0.9239 -vn 0.0000 0.9239 0.3827 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.9239 -0.3827 -vn 0.0000 0.3827 -0.9239 -vn -1.0000 0.0000 0.0000 -s 1 -f 1013/1775/557 1014/1776/557 1015/1777/557 1016/1778/557 -f 1016/1778/558 1015/1777/558 1017/1779/558 1018/1780/558 -f 1018/1780/559 1017/1779/559 1019/1781/559 1020/1782/559 -f 1020/1782/560 1019/1781/560 1021/1783/560 1022/1784/560 -f 1022/1784/561 1021/1783/561 1023/1785/561 1024/1786/561 -f 1024/1786/562 1023/1785/562 1025/1787/562 1026/1788/562 -f 1015/1789/563 1014/1790/563 1027/1791/563 1025/1792/563 1023/1793/563 1021/1794/563 1019/1795/563 1017/1796/563 -f 1026/1788/564 1025/1787/564 1027/1797/564 1028/1798/564 -f 1028/1798/565 1027/1797/565 1014/1799/565 1013/1800/565 -f 1013/1801/566 1016/1802/566 1018/1803/566 1020/1804/566 1022/1805/566 1024/1806/566 1026/1807/566 1028/1808/566 -o SideHolders_Cube.003 -v 1.384588 0.551670 0.654257 -v 1.384588 0.551670 0.449972 -v 1.139921 0.531994 0.449972 -v 1.139921 0.531994 0.558806 -v 1.384588 0.408111 0.449972 -v 1.504148 0.551670 0.449972 -v 1.504148 0.408111 0.449972 -v 1.504148 0.551670 0.654257 -v 1.577323 0.529883 0.613238 -v 1.577323 0.529883 0.449972 -v 1.504148 0.408111 0.654257 -v 1.384588 0.408111 0.654257 -v 1.577323 0.429898 0.449972 -v 1.577323 0.429898 0.613238 -v 1.139921 0.427787 0.558806 -v 1.139921 0.427787 0.449972 -v 1.384588 0.551670 -0.654257 -v 1.139921 0.531994 -0.558805 -v 1.139921 0.531994 -0.449972 -v 1.384588 0.551670 -0.449972 -v 1.384588 0.408111 -0.449972 -v 1.504148 0.408111 -0.449972 -v 1.504148 0.551670 -0.449972 -v 1.577323 0.529883 -0.449972 -v 1.577323 0.529883 -0.613238 -v 1.504148 0.551670 -0.654257 -v 1.504148 0.408111 -0.654257 -v 1.384588 0.408111 -0.654257 -v 1.577323 0.429898 -0.449972 -v 1.577323 0.429898 -0.613238 -v 1.139921 0.427787 -0.558805 -v 1.139921 0.427787 -0.449972 -vt 0.875000 0.750000 -vt 0.875000 0.500000 -vt 0.875000 0.500000 -vt 0.875000 0.750000 -vt 0.375000 0.250000 -vt 0.625000 0.250000 -vt 0.625000 0.500000 -vt 0.375000 0.500000 -vt 0.625000 0.750000 -vt 0.625000 0.750000 -vt 0.625000 0.500000 -vt 0.375000 0.750000 -vt 0.625000 1.000000 -vt 0.375000 1.000000 -vt 0.125000 0.500000 -vt 0.125000 0.750000 -vt 0.375000 0.500000 -vt 0.375000 0.750000 -vt 0.375000 0.000000 -vt 0.625000 0.000000 -vt 0.625000 0.250000 -vt 0.375000 0.250000 -vt 0.125000 0.750000 -vt 0.125000 0.500000 -vt 0.625000 1.000000 -vt 0.375000 1.000000 -vt 0.875000 0.750000 -vt 0.875000 0.750000 -vt 0.875000 0.500000 -vt 0.875000 0.500000 -vt 0.375000 0.250000 -vt 0.375000 0.500000 -vt 0.625000 0.500000 -vt 0.625000 0.250000 -vt 0.625000 0.500000 -vt 0.625000 0.750000 -vt 0.625000 0.750000 -vt 0.375000 0.750000 -vt 0.375000 1.000000 -vt 0.625000 1.000000 -vt 0.125000 0.500000 -vt 0.125000 0.750000 -vt 0.375000 0.500000 -vt 0.375000 0.750000 -vt 0.375000 0.000000 -vt 0.375000 0.250000 -vt 0.625000 0.250000 -vt 0.625000 0.000000 -vt 0.125000 0.500000 -vt 0.125000 0.750000 -vt 0.375000 1.000000 -vt 0.625000 1.000000 -vn -0.0802 0.9968 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.2854 0.9584 0.0000 -vn 0.0000 0.0000 1.0000 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 1.0000 0.0000 -vn 1.0000 0.0000 0.0000 -vn 0.4890 0.0000 0.8723 -vn 0.2854 -0.9584 0.0000 -vn -1.0000 0.0000 0.0000 -vn -0.0802 -0.9968 0.0000 -vn -0.3634 0.0000 0.9316 -vn 0.4890 0.0000 -0.8723 -vn -0.3635 0.0000 -0.9316 -s 1 -f 1029/1809/567 1030/1810/567 1031/1811/567 1032/1812/567 -f 1033/1813/568 1030/1814/568 1034/1815/568 1035/1816/568 -f 1034/1815/569 1036/1817/569 1037/1818/569 1038/1819/569 -f 1039/1820/570 1036/1817/570 1029/1821/570 1040/1822/570 -f 1033/1823/571 1035/1816/571 1039/1820/571 1040/1824/571 -f 1034/1815/572 1030/1810/572 1029/1809/572 1036/1817/572 -f 1041/1825/573 1038/1819/573 1037/1818/573 1042/1826/573 -f 1035/1816/568 1034/1815/568 1038/1819/568 1041/1825/568 -f 1036/1817/574 1039/1820/574 1042/1826/574 1037/1818/574 -f 1039/1820/575 1035/1816/575 1041/1825/575 1042/1826/575 -f 1043/1827/576 1032/1828/576 1031/1829/576 1044/1830/576 -f 1033/1823/577 1040/1824/577 1043/1831/577 1044/1832/577 -f 1030/1814/568 1033/1813/568 1044/1830/568 1031/1829/568 -f 1040/1822/578 1029/1821/578 1032/1833/578 1043/1834/578 -f 1045/1835/567 1046/1836/567 1047/1837/567 1048/1838/567 -f 1049/1839/570 1050/1840/570 1051/1841/570 1048/1842/570 -f 1051/1841/569 1052/1843/569 1053/1844/569 1054/1845/569 -f 1055/1846/568 1056/1847/568 1045/1848/568 1054/1845/568 -f 1049/1849/571 1056/1850/571 1055/1846/571 1050/1840/571 -f 1051/1841/572 1054/1845/572 1045/1835/572 1048/1838/572 -f 1057/1851/573 1058/1852/573 1053/1844/573 1052/1843/573 -f 1050/1840/570 1057/1851/570 1052/1843/570 1051/1841/570 -f 1054/1845/579 1053/1844/579 1058/1852/579 1055/1846/579 -f 1055/1846/575 1058/1852/575 1057/1851/575 1050/1840/575 -f 1059/1853/576 1060/1854/576 1047/1855/576 1046/1856/576 -f 1049/1849/577 1060/1857/577 1059/1858/577 1056/1850/577 -f 1048/1842/570 1047/1855/570 1060/1854/570 1049/1839/570 -f 1056/1847/580 1059/1859/580 1046/1860/580 1045/1848/580 -o Rail_Cube -v -1.606489 0.994589 0.070837 -v -1.606489 1.084445 0.070837 -v -1.606489 1.084277 -0.070837 -v -1.606489 0.994589 -0.070837 -v -0.511384 1.084480 -0.070837 -v -0.514357 1.052983 -0.070837 -v -0.549767 1.006668 -0.070837 -v -0.549767 0.994589 -0.070837 -v 1.313063 1.160981 0.058974 -v 1.498769 1.160981 0.058974 -v 1.498532 1.230366 0.031927 -v 1.312826 1.230366 0.031927 -v 1.225298 0.994589 0.070837 -v 1.225298 1.084445 0.070837 -v 0.962233 1.084445 0.070837 -v 0.964610 1.052983 0.070837 -v 1.000021 1.006668 0.070837 -v 1.000021 0.994589 0.070837 -v -0.197543 0.994589 -0.070837 -v 0.049014 0.994589 -0.070837 -v 0.049014 0.994589 0.070837 -v -0.197543 0.994589 0.070837 -v 0.401239 0.994589 -0.070837 -v 0.647796 0.994589 -0.070837 -v 0.647796 0.994589 0.070837 -v 0.401239 0.994589 0.070837 -v 1.000021 0.994589 -0.070837 -v 1.225298 0.994589 -0.070837 -v -0.549767 0.994589 0.070837 -v 1.225298 1.143051 -0.043128 -v -1.531817 1.143051 -0.043128 -v -1.531817 1.143051 0.043128 -v 1.225298 1.143051 0.043128 -v 1.313063 0.996053 0.070837 -v 1.498769 0.996053 0.070837 -v 1.313063 1.160981 -0.058974 -v 1.313063 0.996053 -0.070837 -v 1.225298 1.084802 -0.070837 -v 1.269521 1.219445 0.031927 -v 1.498769 0.996053 -0.070837 -v 1.498769 1.160981 -0.058974 -v 1.312826 1.230366 -0.031927 -v 1.498532 1.230366 -0.031927 -v 1.575087 0.954078 -0.070837 -v 1.575087 1.119006 -0.070837 -v 1.575087 1.119006 0.070837 -v 1.575087 0.954078 0.070837 -v 1.269521 1.219445 -0.031927 -v 1.554546 1.188392 0.031927 -v 1.554546 1.188392 -0.031927 -v -0.514597 1.084445 0.070837 -v -0.234129 1.084445 0.070837 -v 0.083877 1.084445 0.070837 -v 0.364860 1.084445 0.070837 -v 0.682044 1.084445 0.070837 -v 0.964998 1.084754 -0.070837 -v 0.683980 1.084702 -0.070837 -v 0.366670 1.084643 -0.070837 -v 0.084942 1.084590 -0.070837 -v -0.230760 1.084532 -0.070837 -v -0.232953 1.052983 -0.070837 -v -0.232953 1.052983 0.070837 -v -0.514357 1.052983 0.070837 -v -0.197543 1.006668 0.070837 -v -0.197543 1.006668 -0.070837 -v -0.549767 1.006668 0.070837 -v 0.084425 1.052983 -0.070837 -v 0.365828 1.052983 -0.070837 -v 0.365828 1.052983 0.070837 -v 0.084425 1.052983 0.070837 -v 0.401239 1.006668 0.070837 -v 0.401239 1.006668 -0.070837 -v 0.049014 1.006668 -0.070837 -v 0.049014 1.006668 0.070837 -v 0.683207 1.052983 -0.070837 -v 0.964610 1.052983 -0.070837 -v 0.683207 1.052983 0.070837 -v 1.000021 1.006668 -0.070837 -v 0.647796 1.006668 -0.070837 -v 0.647796 1.006668 0.070837 -vt 0.375000 0.000000 -vt 0.499342 0.000000 -vt 0.499091 0.250000 -vt 0.375000 0.250000 -vt 0.499394 0.346680 -vt 0.462188 0.264617 -vt 0.393035 0.259826 -vt 0.375000 0.259826 -vt 0.625000 0.750000 -vt 0.625000 0.750000 -vt 0.625000 0.750000 -vt 0.625000 0.750000 -vt 0.375000 0.750000 -vt 0.499342 0.750000 -vt 0.499342 0.773224 -vt 0.462188 0.785272 -vt 0.393035 0.780481 -vt 0.375000 0.780481 -vt 0.182484 0.500000 -vt 0.215844 0.500000 -vt 0.215844 0.750000 -vt 0.182484 0.750000 -vt 0.263501 0.500000 -vt 0.296862 0.500000 -vt 0.296862 0.750000 -vt 0.263501 0.750000 -vt 0.344519 0.500000 -vt 0.375000 0.500000 -vt 0.344519 0.750000 -vt 0.125000 0.750000 -vt 0.125000 0.500000 -vt 0.134826 0.500000 -vt 0.134826 0.750000 -vt 0.625000 0.500000 -vt 0.875000 0.500000 -vt 0.875000 0.750000 -vt 0.625000 0.750000 -vt 0.375000 0.750000 -vt 0.375000 0.750000 -vt 0.625000 0.500000 -vt 0.375000 0.500000 -vt 0.499875 0.500000 -vt 0.625000 0.750000 -vt 0.375000 0.500000 -vt 0.625000 0.500000 -vt 0.625000 0.500000 -vt 0.625000 0.500000 -vt 0.375000 0.500000 -vt 0.625000 0.500000 -vt 0.625000 0.750000 -vt 0.375000 0.750000 -vt 0.625000 0.500000 -vt 0.625000 0.750000 -vt 0.625000 0.500000 -vt 0.499342 1.000000 -vt 0.499342 0.903604 -vt 0.499342 0.878843 -vt 0.499342 0.850769 -vt 0.499342 0.825962 -vt 0.499342 0.797960 -vt 0.625000 1.000000 -vt 0.625000 0.000000 -vt 0.625000 0.250000 -vt 0.499803 0.477020 -vt 0.499725 0.452211 -vt 0.499637 0.424197 -vt 0.499559 0.399325 -vt 0.499472 0.371454 -vt 0.849867 0.594807 -vt 0.650133 0.594807 -vt 0.650133 0.655193 -vt 0.849867 0.655193 -vt 0.549693 0.655193 -vt 0.599866 0.655193 -vt 0.599866 0.594807 -vt 0.549693 0.594807 -vt 0.549693 0.155193 -vt 0.599866 0.155193 -vt 0.599866 0.094807 -vt 0.549693 0.094807 -vt 0.875000 0.594807 -vt 0.875000 0.655193 -vt 0.849867 0.594807 -vt 0.650133 0.594807 -vt 0.650133 0.655193 -vt 0.849867 0.655193 -vt 0.549693 0.655193 -vt 0.599866 0.655193 -vt 0.599866 0.594807 -vt 0.549693 0.594807 -vt 0.549693 0.155193 -vt 0.599866 0.155193 -vt 0.599866 0.094807 -vt 0.549693 0.094807 -vt 0.875000 0.594807 -vt 0.875000 0.655193 -vt 0.849867 0.594807 -vt 0.650133 0.594807 -vt 0.650133 0.655193 -vt 0.849867 0.655193 -vt 0.599866 0.655193 -vt 0.599866 0.594807 -vt 0.549693 0.594807 -vt 0.549693 0.655193 -vt 0.549693 0.155193 -vt 0.599866 0.155193 -vt 0.599866 0.094807 -vt 0.549693 0.094807 -vt 0.875000 0.655193 -vt 0.875000 0.594807 -vt 0.462188 0.866290 -vt 0.462188 0.904365 -vt 0.462188 0.823347 -vt 0.393035 0.861499 -vt 0.375000 0.861499 -vt 0.375000 0.828138 -vt 0.393035 0.828138 -vt 0.462188 0.947308 -vt 0.393035 0.942516 -vt 0.375000 0.942516 -vt 0.375000 0.909156 -vt 0.393035 0.909156 -vt 0.462188 0.985383 -vt 0.375000 1.000000 -vt 0.375000 0.990174 -vt 0.393035 0.990174 -vt 0.462188 0.464728 -vt 0.375000 0.469519 -vt 0.393035 0.469519 -vt 0.462188 0.426653 -vt 0.462188 0.383710 -vt 0.393035 0.421861 -vt 0.375000 0.421862 -vt 0.375000 0.388501 -vt 0.393035 0.388501 -vt 0.462188 0.345635 -vt 0.462188 0.302692 -vt 0.393035 0.340844 -vt 0.375000 0.340844 -vt 0.375000 0.307483 -vt 0.393035 0.307484 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 0.3632 0.9317 -vn -0.0000 0.0000 1.0000 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 1.0000 0.0000 -vn 0.0000 0.0717 0.9974 -vn -0.0132 0.1253 -0.9920 -vn -0.0136 0.1253 0.9920 -vn 0.0167 -0.9999 0.0000 -vn -0.1793 0.2999 0.9370 -vn 0.0000 0.3632 -0.9317 -vn 0.0000 0.0717 -0.9974 -vn 1.0000 -0.0000 0.0000 -vn -0.0578 0.0359 -0.9977 -vn -0.0578 0.0359 0.9977 -vn -0.4819 -0.8762 0.0000 -vn -0.2445 0.9696 0.0000 -vn 0.5997 0.8003 0.0000 -vn 0.2041 0.4450 0.8720 -vn 0.9589 0.2839 0.0000 -vn -0.8655 0.5010 0.0000 -vn -0.1793 0.2999 -0.9370 -vn 0.2041 0.4450 -0.8720 -vn 0.0000 0.4274 0.9040 -vn -0.6179 0.7862 -0.0006 -vn -0.0000 0.4280 -0.9038 -vn 0.7944 -0.6074 0.0000 -vn -0.7944 -0.6074 0.0000 -s 1 -f 1061/1861/581 1062/1862/581 1063/1863/581 1064/1864/581 -f 1064/1864/582 1063/1863/582 1065/1865/582 1066/1866/582 1067/1867/582 1068/1868/582 -f 1069/1869/583 1070/1870/583 1071/1871/583 1072/1872/583 -f 1073/1873/584 1074/1874/584 1075/1875/584 1076/1876/584 1077/1877/584 1078/1878/584 -f 1079/1879/585 1080/1880/585 1081/1881/585 1082/1882/585 -f 1083/1883/585 1084/1884/585 1085/1885/585 1086/1886/585 -f 1087/1887/585 1088/1888/585 1073/1873/585 1078/1889/585 -f 1061/1890/585 1064/1891/585 1068/1892/585 1089/1893/585 -f 1090/1894/586 1091/1895/586 1092/1896/586 1093/1897/586 -f 1069/1869/587 1094/1898/587 1095/1899/587 1070/1870/587 -f 1096/1900/588 1097/1901/588 1088/1888/588 1098/1902/588 1090/1894/588 -f 1074/1874/589 1073/1873/589 1094/1898/589 1069/1869/589 1093/1897/589 -f 1073/1873/590 1088/1888/590 1097/1901/590 1094/1898/590 -f 1093/1897/591 1069/1869/591 1072/1872/591 1099/1903/591 -f 1094/1898/585 1097/1901/585 1100/1904/585 1095/1899/585 -f 1101/1905/592 1096/1900/592 1102/1906/592 1103/1907/592 -f 1097/1901/593 1096/1900/593 1101/1905/593 1100/1904/593 -f 1104/1908/594 1105/1909/594 1106/1910/594 1107/1911/594 -f 1100/1904/595 1101/1905/595 1105/1909/595 1104/1908/595 -f 1070/1870/596 1095/1899/596 1107/1911/596 1106/1910/596 -f 1095/1899/597 1100/1904/597 1104/1908/597 1107/1911/597 -f 1108/1912/598 1099/1903/598 1072/1872/598 1102/1906/598 -f 1103/1907/599 1071/1871/599 1109/1913/599 1110/1914/599 -f 1102/1906/586 1072/1872/586 1071/1871/586 1103/1907/586 -f 1070/1870/600 1106/1910/600 1109/1913/600 1071/1871/600 -f 1106/1910/601 1105/1909/601 1110/1914/601 1109/1913/601 -f 1090/1894/602 1093/1897/602 1099/1903/602 1108/1912/602 -f 1096/1900/603 1090/1894/603 1108/1912/603 1102/1906/603 -f 1105/1909/604 1101/1905/604 1103/1907/604 1110/1914/604 -f 1062/1915/605 1111/1916/605 1112/1917/605 1113/1918/605 1114/1919/605 1115/1920/605 1075/1875/605 1074/1874/605 1093/1897/605 1092/1921/605 -f 1063/1863/606 1062/1862/606 1092/1922/606 1091/1923/606 -f 1098/1902/607 1116/1924/607 1117/1925/607 1118/1926/607 1119/1927/607 1120/1928/607 1065/1865/607 1063/1863/607 1091/1923/607 1090/1894/607 -f 1066/1929/585 1121/1930/585 1122/1931/585 1123/1932/585 -f 1082/1933/581 1124/1934/581 1125/1935/581 1079/1936/581 -f 1068/1937/594 1067/1938/594 1126/1939/594 1089/1940/594 -f 1067/1941/608 1066/1929/608 1123/1932/608 1126/1942/608 -f 1122/1931/609 1121/1930/609 1125/1935/609 1124/1934/609 -f 1127/1943/585 1128/1944/585 1129/1945/585 1130/1946/585 -f 1086/1947/581 1131/1948/581 1132/1949/581 1083/1950/581 -f 1080/1951/594 1133/1952/594 1134/1953/594 1081/1954/594 -f 1133/1955/608 1127/1943/608 1130/1946/608 1134/1956/608 -f 1132/1949/609 1131/1948/609 1129/1945/609 1128/1944/609 -f 1135/1957/585 1136/1958/585 1076/1959/585 1137/1960/585 -f 1077/1961/581 1138/1962/581 1087/1963/581 1078/1964/581 -f 1084/1965/594 1139/1966/594 1140/1967/594 1085/1968/594 -f 1140/1969/608 1139/1970/608 1135/1957/608 1137/1960/608 -f 1076/1959/609 1136/1958/609 1138/1962/609 1077/1961/609 -f 1129/1971/584 1114/1919/584 1113/1918/584 1130/1972/584 -f 1137/1973/584 1115/1920/584 1114/1919/584 1129/1971/584 1131/1974/584 1086/1975/584 1085/1976/584 1140/1977/584 -f 1076/1876/584 1075/1875/584 1115/1920/584 1137/1973/584 -f 1130/1972/584 1113/1918/584 1112/1917/584 1122/1978/584 1124/1979/584 1082/1980/584 1081/1981/584 1134/1982/584 -f 1122/1978/584 1112/1917/584 1111/1916/584 1123/1983/584 -f 1123/1983/584 1111/1916/584 1062/1915/584 1061/1984/584 1089/1985/584 1126/1986/584 -f 1136/1987/582 1116/1924/582 1098/1902/582 1088/1888/582 1087/1988/582 1138/1989/582 -f 1135/1990/582 1117/1925/582 1116/1924/582 1136/1987/582 -f 1128/1991/582 1118/1926/582 1117/1925/582 1135/1990/582 1139/1992/582 1084/1993/582 1083/1994/582 1132/1995/582 -f 1127/1996/582 1119/1927/582 1118/1926/582 1128/1991/582 -f 1121/1997/582 1120/1928/582 1119/1927/582 1127/1996/582 1133/1998/582 1080/1999/582 1079/2000/582 1125/2001/582 -f 1066/1866/582 1065/1865/582 1120/1928/582 1121/1997/582 o CanonBody_Cylinder.002 v 1.103664 0.525584 2.500000 v 1.292985 0.525584 2.500000 @@ -4820,51 +38,48 @@ v 1.669294 0.241390 2.715806 v 1.669294 0.809777 2.715806 v 1.669294 0.927494 3.000000 v 1.669294 0.241390 3.284194 -v -0.603601 0.525584 2.500000 -v 1.044523 0.525584 2.500000 -v 1.044523 0.172030 2.646447 -v -0.603601 0.172030 2.646447 v -0.603601 0.025584 3.000000 v 1.044523 0.025584 3.000000 v 1.044523 0.172030 3.353553 v -0.603601 0.172030 3.353553 v 0.951045 0.197436 3.364077 v -0.460212 0.197436 3.364077 -v 1.044523 0.879137 3.353553 -v 0.899442 0.953734 3.173461 -v 0.899442 0.879137 3.353553 +v -0.476991 0.953734 3.173461 +v -0.388078 0.997935 3.101577 +v -0.603601 1.025584 3.000000 v 1.044523 0.525584 3.500000 v 1.068921 0.199748 3.325836 v 1.068921 0.525584 3.460801 -v 1.044523 0.879137 2.646447 -v 0.899442 0.735289 2.586863 -v 0.899442 0.879137 2.646447 +v 0.810528 0.655494 2.553811 +v 1.044523 0.525584 2.500000 +v -0.603601 0.525584 2.500000 +v -0.388078 0.655494 2.553811 v 1.068921 0.986385 3.000000 v 1.068921 0.851420 2.674164 +v 1.044523 0.879137 2.646447 v 1.044523 1.025584 3.000000 -v 0.985768 0.843292 3.316901 -v 0.899442 0.843292 3.316901 -v 0.899442 0.918248 3.161081 +v 0.969099 0.952228 2.898423 +v 0.899442 0.918248 2.838919 +v 0.985768 0.843292 2.683099 v 1.068921 0.525584 2.539199 +v 1.044523 0.172030 2.646447 v 1.068921 0.199748 2.674164 v 1.068921 0.851420 3.325836 -v 1.080568 0.851567 2.674017 +v 1.044523 0.879137 3.353553 +v 1.103664 0.172030 3.353553 +v 1.080568 0.199600 3.325983 v 1.080568 0.525584 2.538990 v 1.080568 0.199600 2.674017 +v 1.080568 0.851567 2.674017 v 1.080568 0.064574 3.000000 -v 1.080568 0.199600 3.325983 -v 1.080568 0.986594 3.000000 -v 1.103664 0.172030 3.353553 v 1.068921 0.064782 3.000000 -v -0.603601 1.025584 3.000000 -v 0.810528 0.997935 2.898423 -v -0.388078 0.997935 2.898423 -v 0.810528 0.952228 3.101577 -v 0.969099 0.952228 3.101577 +v 0.899442 0.735289 2.586863 +v 0.810528 0.655494 3.378684 v 0.899442 0.719760 3.368080 -v 0.810528 0.997935 3.101577 -v -0.388078 0.997935 3.101577 -v 0.810528 0.655494 2.553811 +v 0.984259 0.528318 3.436781 +v 0.899442 0.843292 3.316901 +v 0.985768 0.843292 3.316901 +v 0.899442 0.879137 2.646447 v 1.286814 1.063161 3.000000 v 1.320923 0.951339 3.425755 v 1.320923 1.127692 3.000000 @@ -4924,17 +139,16 @@ v 1.432520 0.405810 3.119773 v 1.432520 0.525584 3.169385 v 1.657500 0.273303 3.000000 v 1.432520 0.356199 3.000000 -v 1.651829 0.431184 3.000000 -v 1.651829 0.356199 3.000000 v 1.651829 0.405810 2.880227 -v 1.651829 0.525394 2.905789 -v 1.651829 0.458777 2.933383 v 1.651829 0.405810 3.119773 v 1.651829 0.525584 3.169385 v 1.651829 0.645357 3.119773 +v 1.651829 0.525394 2.905789 v 1.127542 0.525394 2.905789 v 1.127542 0.458777 2.933383 +v 1.651829 0.458777 2.933383 v 1.127542 0.431184 3.000000 +v 1.651829 0.431184 3.000000 v 1.127542 0.525394 3.094211 v 1.127542 0.592011 3.066617 v 1.651829 0.592011 3.066617 @@ -4948,148 +162,157 @@ v -0.476991 0.837264 2.708140 v -0.476991 0.714942 2.642628 v -0.476991 0.735289 2.586863 v -0.476991 0.879137 2.646447 -v -0.476991 0.879137 3.353553 -v -0.476991 0.953734 3.173461 -v -0.603601 0.879137 3.353553 +v -0.388078 0.997935 2.898423 +v 0.810528 0.997935 2.898423 +v 0.899442 0.879137 3.353553 v 0.899442 0.735289 3.413137 +v -0.603601 0.879137 3.353553 +v -0.724548 0.869896 3.337075 +v -0.724548 0.532825 3.476694 +v -0.603601 0.525584 3.500000 v -0.603601 0.879137 2.646447 v -0.724548 0.869896 2.662932 +v -0.724548 1.009515 3.000004 v -0.476991 0.953734 2.826539 +v 1.651829 0.356199 3.000000 +v 1.651829 0.458777 3.066617 v -0.476991 0.735289 3.413137 v -0.388078 0.655494 3.446189 -v -0.388078 0.655494 2.553811 -v 0.810528 0.655494 3.446189 -v -0.603601 0.525584 3.500000 -v 1.651829 0.458777 3.066617 v -0.388078 0.633076 3.392654 v -0.476991 0.714942 3.357372 v -0.476991 0.837264 3.291860 +v -0.476991 0.879137 3.353553 v -0.388078 0.944133 3.101577 +v 0.810528 0.952228 3.101577 +v 0.810528 0.997935 3.101577 v -0.388078 0.944133 2.898423 v 0.810528 0.952228 2.898423 v 1.657500 0.212644 3.000000 v 1.651829 0.694968 3.000000 v -0.476991 0.926475 3.173461 v 0.899442 0.843292 2.683099 -v 0.899442 0.918248 2.838919 v 0.899442 0.953734 2.826539 +v 1.080568 0.986594 3.000000 v 0.899442 0.719760 2.631920 v 0.810528 0.655494 2.621316 -v 0.810528 0.655494 3.378684 +v 0.899442 0.918248 3.161081 +v 0.899442 0.953734 3.173461 +v 0.810528 0.655494 3.446189 v -0.388078 0.633076 2.607346 v 1.669294 0.123673 3.000000 v 1.669294 0.165715 3.000000 -v 0.985768 0.843292 2.683099 -v 0.969099 0.952228 2.898423 +v 0.810528 0.526819 3.419828 +v 0.984259 0.528318 2.563219 v 1.475712 -0.061125 3.000000 v 1.423236 0.225256 3.000000 -v 0.984259 0.528318 2.563219 +v 0.810528 0.526819 2.580172 +v 0.969099 0.952228 3.101577 v 0.984259 0.228435 2.674968 v 0.984259 0.095638 3.005025 v 0.984259 0.228435 3.325032 -v 0.984259 0.528318 3.436781 v 1.103664 0.025584 3.000000 v -0.534084 0.903408 3.173461 v -0.534084 0.903408 2.826539 v -0.476991 0.926475 2.826539 v -0.548068 0.837264 3.291860 v -0.548068 0.837264 2.708140 -v 1.292985 0.025584 3.000000 +v -0.550334 0.529772 2.566407 v -0.550334 0.529772 3.433593 +v 1.292985 0.025584 3.000000 v -0.550334 0.236472 3.339820 v -0.550334 0.062663 3.005342 v -0.550334 0.236472 2.660180 -v -0.550334 0.529772 2.566407 v -0.388078 0.540720 3.422003 v -0.388078 0.540720 2.577997 -v 0.810528 0.526819 2.580172 -v 0.810528 0.526819 3.419828 v -0.388078 0.088709 3.007100 v -0.388078 0.229035 2.676650 v -0.388078 0.229035 3.323350 v 0.810528 0.240010 2.699891 v 0.810528 0.100279 3.006216 v 0.810528 0.240010 3.300109 -v -0.460212 0.500178 3.489476 +v 0.678557 0.155552 2.534805 +v 0.674639 0.187997 2.501820 +v 0.674369 0.138402 2.298282 v 0.678212 0.092276 2.275122 -v 0.648869 0.138277 2.298296 v 0.951045 0.500178 3.489476 -v 0.646934 0.318302 2.224795 -v 0.641987 0.458293 2.409405 +v -0.460212 0.500178 3.489476 +v 0.674042 0.500178 2.510524 +v 0.671101 0.458113 2.482789 +v 0.645644 0.458113 2.482789 +v 0.641563 0.500178 2.510524 +v 0.674638 0.458293 2.409405 v 0.671568 0.425284 2.403533 -v 0.673140 0.318430 2.224781 -v 0.003785 0.107850 2.287122 -v 0.003776 0.311542 2.203961 -v 0.286340 0.110829 2.286325 -v 0.335441 0.111139 2.286292 -v 0.137117 0.111516 2.285824 -v 0.181234 0.111785 2.285795 +v 0.641987 0.458293 2.409405 +v 0.645976 0.425284 2.403533 +v 0.646934 0.318302 2.224795 v 0.643209 0.321800 2.181364 -v 0.285150 0.311362 2.204452 -v 0.335438 0.311680 2.204418 +v 0.649846 0.155552 2.534805 +v 0.652136 0.187997 2.501820 +v 0.645678 0.092117 2.275140 +v 0.648869 0.138277 2.298296 +v 0.673140 0.318430 2.224781 +v 0.949896 0.093608 2.274977 +v 0.951045 0.155552 2.534805 +v 0.676644 0.321964 2.181346 +v 0.948697 0.323297 2.181201 +v -0.460212 0.458293 2.409405 +v -0.460212 0.500178 2.510524 v 0.346589 0.320346 2.181522 v 0.273733 0.319982 2.181562 -v 0.137105 0.309206 2.205114 -v 0.180025 0.309468 2.205085 v 0.188876 0.319558 2.181608 v 0.127999 0.319254 2.181641 v 0.051715 0.318872 2.181683 -v 0.044163 0.311789 2.203934 -v 0.045414 0.108104 2.287094 -v 0.949896 0.093608 2.274977 -v 0.645678 0.092117 2.275140 -v 0.346592 0.090651 2.275299 -v 0.275455 0.090295 2.275338 -v 0.190590 0.089871 2.275384 -v 0.128016 0.089558 2.275418 -v 0.053442 0.089185 2.275459 -v -0.004002 0.088898 2.275490 v -0.004015 0.318594 2.181713 v -0.060217 0.318313 2.181744 +v 0.003776 0.311542 2.203961 +v 0.003785 0.107850 2.287122 +v -0.004002 0.088898 2.275490 +v 0.044163 0.311789 2.203934 +v 0.045414 0.108104 2.287094 +v 0.053442 0.089185 2.275459 +v 0.275455 0.090295 2.275338 +v 0.286340 0.110829 2.286325 +v 0.335441 0.111139 2.286292 +v 0.346592 0.090651 2.275299 +v 0.335438 0.311680 2.204418 +v 0.285150 0.311362 2.204452 +v 0.128016 0.089558 2.275418 +v 0.137117 0.111516 2.285824 +v 0.181234 0.111785 2.285795 +v 0.190590 0.089871 2.275384 +v 0.180025 0.309468 2.205085 +v 0.137105 0.309206 2.205114 v -0.059018 0.088623 2.275520 -v 0.678557 0.155552 2.534805 -v 0.649846 0.155552 2.534805 -v 0.951045 0.155552 2.534805 -v 0.674638 0.458293 2.409405 -v 0.676644 0.321964 2.181346 -v 0.948697 0.323297 2.181201 -v 0.951045 0.458293 2.409405 -v 0.641563 0.500178 2.510524 -v 0.674042 0.500178 2.510524 -v 0.951045 0.500178 2.510524 v -0.460212 0.155552 2.534805 -v -0.460212 0.458293 2.409405 -v -0.460212 0.500178 2.510524 -v 0.951045 0.197436 2.635923 +v 0.951045 0.500178 2.510524 +v 0.951045 0.458293 2.409405 v -0.460212 0.197436 2.635923 v 1.292985 0.172030 3.353553 v 1.103664 0.879137 2.646447 +v -0.603601 0.172030 2.646447 v -0.460212 0.197436 2.635923 v 0.951045 0.197436 2.635923 v 1.286814 0.145459 3.380125 v 1.320923 0.099829 3.425755 -v -0.460212 0.500178 2.510524 v 0.951045 0.500178 2.510524 +v -0.460212 0.500178 2.510524 +v 0.951045 0.197436 2.635923 v -0.724548 0.532825 2.523313 v -0.724548 0.195753 2.662932 v -0.724548 0.056134 3.000004 v -0.724548 0.195753 3.337075 -v -0.724548 0.532825 3.476694 -v -0.724548 0.869896 3.337075 -v -0.724548 1.009515 3.000004 +v 0.951045 0.155552 3.465195 v 0.951045 0.197436 3.364077 -v -0.460212 0.197436 3.364077 -v -0.460212 0.500178 3.489476 -v -0.460212 0.155552 3.465195 -v -0.460212 0.458293 3.590595 -v 0.641563 0.500178 3.489476 -v 0.674042 0.500178 3.489476 v 0.951045 0.500178 3.489476 v 0.951045 0.458293 3.590595 +v -0.460212 0.500178 3.489476 +v -0.460212 0.197436 3.364077 +v -0.460212 0.155552 3.465195 +v -0.460212 0.458293 3.590595 v 0.674638 0.458293 3.590595 v 0.676644 0.321964 3.818654 v 0.948697 0.323297 3.818799 -v 0.951045 0.155552 3.465195 +v 0.674042 0.500178 3.489476 v 0.678557 0.155552 3.465195 v 0.649846 0.155552 3.465195 v -0.059018 0.088623 3.724480 @@ -5102,7 +325,6 @@ v 0.275455 0.090295 3.724662 v 0.190590 0.089871 3.724616 v 0.128016 0.089558 3.724582 v 0.053442 0.089185 3.724541 -v 0.949896 0.093608 3.725023 v 0.051715 0.318872 3.818317 v 0.044163 0.311789 3.796066 v 0.045414 0.108104 3.712906 @@ -5124,21 +346,17 @@ v 0.003785 0.107850 3.712878 v 0.671568 0.425284 3.596467 v 0.673140 0.318430 3.775219 v 0.641987 0.458293 3.590595 +v 0.641563 0.500178 3.489476 v 0.648869 0.138277 3.701704 v 0.646934 0.318302 3.775205 v 0.678212 0.092276 3.724878 v 0.674369 0.138402 3.701718 +v 0.949896 0.093608 3.725023 v 0.645976 0.425284 3.596467 v 0.645644 0.458113 3.517211 v 0.671101 0.458113 3.517211 v 0.652136 0.187997 3.498180 v 0.674639 0.187997 3.498180 -v 0.674369 0.138402 2.298282 -v 0.645644 0.458113 2.482789 -v 0.645976 0.425284 2.403533 -v 0.671101 0.458113 2.482789 -v 0.674639 0.187997 2.501820 -v 0.652136 0.187997 2.501820 vt 0.444444 0.967260 vt 0.444444 0.999701 vt 0.378868 0.999701 @@ -5844,7 +1062,6 @@ vn -0.0165 0.3826 -0.9238 vn -0.0165 0.3826 0.9238 vn -0.0165 -0.9238 -0.3826 vn 0.1008 -0.2962 -0.9498 -vn 0.0000 -0.3828 -0.9239 vn -0.8680 0.4588 0.1900 vn -0.8680 -0.1900 -0.4588 vn 0.8623 0.1938 -0.4678 @@ -5910,7 +1127,7 @@ vn 0.0951 -0.3032 0.9482 vn 0.0000 -1.0000 0.0000 vn 0.9838 0.1658 0.0687 vn 0.4296 -0.8343 -0.3456 -vn -0.0165 -0.3826 0.9238 +vn -0.0166 -0.3826 0.9238 vn -0.0165 -0.9238 0.3826 vn 0.8623 -0.4678 -0.1938 vn 0.2182 0.3735 -0.9016 @@ -5962,9 +1179,10 @@ vn 0.0000 -0.7129 -0.7012 vn 0.9976 -0.0694 0.0010 vn 0.0026 -0.9715 0.2370 vn -0.0023 0.8582 -0.5133 -vn 0.0014 -0.3780 -0.9258 +vn 0.0013 -0.3780 -0.9258 vn 0.9905 0.1284 -0.0490 vn 0.0024 -0.9722 0.2343 +vn 0.0014 -0.3780 -0.9258 vn -0.9957 -0.0410 -0.0837 vn 0.9959 -0.0250 -0.0874 vn -0.0018 0.8543 -0.5198 @@ -5973,7 +1191,7 @@ vn 0.9172 -0.1505 -0.3689 vn 0.0050 -0.9531 -0.3028 vn -0.0034 0.5235 -0.8520 vn 0.0017 -0.3780 -0.9258 -vn -0.0031 0.4723 -0.8815 +vn -0.0031 0.4723 -0.8814 vn -0.8491 -0.1997 -0.4891 vn 0.8493 -0.1946 -0.4907 vn 0.0018 -0.3780 -0.9258 @@ -6032,7 +1250,7 @@ vn -0.0029 0.4287 0.9035 vn 0.0018 -0.3780 0.9258 vn 0.8493 -0.1946 0.4907 vn -0.8491 -0.1997 0.4891 -vn -0.0031 0.4723 0.8815 +vn -0.0031 0.4723 0.8814 vn -0.0034 0.5235 0.8520 vn 0.0050 -0.9531 0.3028 vn 0.9172 -0.1505 0.3689 @@ -6042,12 +1260,13 @@ vn 0.9959 -0.0250 0.0874 vn -0.9957 -0.0410 0.0837 vn 0.0024 -0.9722 -0.2343 vn 0.9905 0.1284 0.0490 +vn 0.0013 -0.3780 0.9258 vn -0.0023 0.8582 0.5133 vn 0.0026 -0.9715 -0.2370 vn 0.9976 -0.0694 -0.0010 vn 0.0000 -0.7129 0.7012 vn 0.9884 0.1326 0.0741 -vn -0.9938 0.1009 0.0476 +vn -0.9938 0.1009 0.0477 vn 0.0000 0.5505 0.8349 vn -0.9952 -0.0952 -0.0245 vn 1.0000 -0.0006 0.0069 @@ -6056,341 +1275,5222 @@ vn 0.0000 -0.8684 -0.4959 vn -0.0476 -0.3025 0.9520 vn 0.0000 -0.4721 -0.8815 s off -f 1141/2002/610 1142/2003/610 1143/2004/610 1144/2005/610 -f 1145/2006/611 1146/2007/611 1147/2008/611 1148/2009/611 -f 1148/2009/612 1147/2008/612 1149/2010/612 1150/2011/612 -f 1151/2012/613 1152/2013/613 1153/2014/613 1154/2015/613 -f 1145/2006/614 1148/2009/614 1155/2016/614 1156/2017/614 -f 1142/2018/615 1157/2019/615 1158/2020/615 1159/2021/615 -f 1147/2022/616 1146/2023/616 1160/2024/616 1161/2025/616 -f 1162/2026/617 1163/2027/617 1164/2028/617 1165/2029/617 -f 1166/2030/618 1151/2031/618 1154/2032/618 1167/2033/618 -f 1166/2034/619 1168/2035/619 1169/2036/619 1170/2037/619 -f 1171/2038/620 1172/2039/620 1173/2040/620 1174/2041/620 -f 1172/2042/621 1152/2043/621 1175/2044/621 1173/2045/621 -f 1151/2031/622 1166/2030/622 1170/2046/622 1176/2047/622 -f 1168/2048/623 1163/2049/623 1177/2050/623 1169/2051/623 -f 1182/2052/624 1183/2053/624 1184/2054/624 1185/2055/624 -f 1185/2055/625 1184/2054/625 1186/2056/625 1187/2057/625 -f 1307/2058/626 1221/2059/626 1214/2060/626 -f 1191/2061/627 1184/2062/627 1192/2063/627 1193/2064/627 -f 1222/2065/628 1179/2066/628 1178/2067/628 1315/2068/628 -f 1197/2069/629 1198/2070/629 1194/2071/629 1199/2072/629 -f 1338/2073/630 1329/2074/630 1337/2075/630 -f 1198/2076/631 1203/2077/631 1179/2078/631 1194/2071/631 -f 1180/2079/632 1179/2078/632 1203/2080/632 1204/2081/632 -f 1205/2082/633 1197/2083/633 1199/2072/633 1188/2084/633 -f 1212/2085/634 1145/2006/634 1156/2086/634 1210/2087/634 -f 1207/2088/635 1208/2089/635 1204/2081/635 1203/2080/635 -f 1207/2090/636 1203/2077/636 1198/2076/636 1206/2091/636 -f 1155/2016/637 1205/2092/637 1193/2093/637 1156/2017/637 -f 1209/2094/638 1213/2095/638 1204/2096/638 1208/2097/638 -f 1195/2098/628 1179/2066/628 1222/2065/628 -f 1333/2099/639 1219/2100/639 1345/2101/639 -f 1219/2100/640 1201/2102/640 1200/2103/640 -f 1194/2104/628 1179/2066/628 1195/2098/628 1196/2105/628 -f 1223/2106/641 1161/2107/641 1224/2108/641 1225/2109/641 -f 1226/2110/642 1159/2111/642 1227/2112/642 1228/2113/642 -f 1153/2114/643 1229/2115/643 1230/2116/643 1231/2117/643 -f 1232/2118/644 1226/2119/644 1228/2113/644 1233/2120/644 -f 1234/2121/645 1167/2122/645 1235/2123/645 1236/2124/645 -f 1172/2039/646 1171/2038/646 1237/2125/646 1229/2126/646 -f 1149/2127/647 1147/2128/647 1161/2107/647 1223/2106/647 -f 1168/2035/648 1166/2034/648 1167/2122/648 1234/2121/648 -f 1152/2043/649 1172/2042/649 1229/2115/649 1153/2114/649 -f 1163/2049/650 1168/2048/650 1234/2129/650 1164/2130/650 -f 1143/2131/651 1142/2132/651 1159/2111/651 1226/2110/651 -f 1224/2108/652 1238/2133/652 1236/2124/652 1235/2123/652 -f 1227/2112/653 1239/2134/653 1231/2117/653 1230/2116/653 -f 1228/2113/654 1227/2112/654 1230/2116/654 1240/2135/654 -f 1159/2021/655 1158/2020/655 1239/2134/655 1227/2112/655 -f 1161/2025/656 1160/2024/656 1238/2133/656 1224/2108/656 -f 1154/2015/657 1153/2014/657 1231/2117/657 1241/2136/657 -f 1164/2130/658 1234/2129/658 1236/2124/658 1242/2137/658 -f 1229/2126/659 1237/2125/659 1240/2135/659 1230/2116/659 -f 1243/2138/660 1244/2139/660 1245/2140/660 1246/2141/660 -f 1173/2045/661 1175/2044/661 1247/2142/661 1244/2143/661 -f 1174/2041/661 1173/2040/661 1244/2139/661 1243/2138/661 -f 1175/2144/661 1176/2145/661 1248/2146/661 1247/2147/661 -f 1170/2037/661 1169/2036/661 1249/2148/661 1250/2149/661 -f 1169/2051/661 1177/2050/661 1251/2150/661 1249/2151/661 -f 1252/2152/662 1253/2153/662 1254/2154/662 1255/2155/662 -f 1250/2149/663 1249/2148/663 1256/2156/663 1257/2157/663 -f 1247/2147/664 1248/2146/664 1253/2153/664 1252/2152/664 -f 1248/2158/665 1250/2159/665 1257/2160/665 1253/2161/665 -f 1244/2143/666 1247/2142/666 1252/2162/666 1245/2163/666 -f 1258/2164/661 1259/2165/661 1260/2166/661 1261/2167/661 -f 1253/2161/667 1257/2160/667 1258/2168/667 1254/2169/667 -f 1245/2163/668 1252/2162/668 1255/2170/668 1262/2171/668 -f 1246/2141/669 1245/2140/669 1262/2172/669 1263/2173/669 -f 1256/2174/670 1264/2175/670 1265/2176/670 1259/2177/670 -f 1257/2157/671 1256/2156/671 1259/2165/671 1258/2164/671 -f 1262/2171/661 1255/2170/661 1266/2178/661 1267/2179/661 -f 1263/2173/661 1262/2172/661 1267/2180/661 1268/2181/661 -f 1259/2177/661 1265/2176/661 1269/2182/661 1260/2183/661 -f 1270/2184/628 1271/2185/628 1272/2186/628 1273/2187/628 -f 1274/2188/672 1261/2189/672 1275/2190/672 1276/2191/672 -f 1268/2181/673 1267/2180/673 1270/2192/673 1277/2193/673 -f 1260/2183/674 1269/2182/674 1278/2194/674 1279/2195/674 -f 1269/2196/675 1280/2197/675 1281/2198/675 1278/2199/675 -f 1261/2167/676 1260/2166/676 1279/2200/676 1275/2201/676 -f 1277/2193/610 1270/2192/610 1273/2202/610 1284/2203/610 -f 1279/2195/625 1278/2194/625 1287/2204/625 1288/2205/625 -f 1275/2201/611 1279/2200/611 1288/2206/611 1289/2207/611 -f 1285/2208/611 1290/2209/611 1291/2210/611 1286/2211/611 -f 1291/2210/612 1292/2212/612 1282/2213/612 1286/2211/612 -f 1293/2214/610 1294/2215/610 1295/2216/610 1296/2217/610 -f 1297/2218/624 1298/2219/624 1299/2220/624 1300/2221/624 -f 1300/2221/625 1299/2220/625 1290/2209/625 1285/2208/625 -f 1292/2222/661 1291/2223/661 1290/2224/661 1299/2225/661 1298/2226/661 1294/2227/661 1293/2228/661 1301/2229/661 -f 1302/2230/661 1303/2231/661 1304/2232/661 1305/2233/661 -f 1216/2234/677 1214/2060/677 1199/2235/677 1215/2236/677 -f 1191/2237/611 1188/2238/611 1190/2239/611 1309/2240/611 -f 1308/2241/678 1433/2242/678 1432/2243/678 1317/2244/678 -f 1205/2092/679 1188/2084/679 1191/2061/679 1193/2093/679 -f 1214/2060/680 1310/2245/680 1311/2246/680 1434/2247/680 -f 1315/2068/628 1178/2067/628 1304/2248/628 -f 1312/2249/681 1305/2250/681 1310/2245/681 1214/2060/681 -f 1286/2251/661 1282/2252/661 1283/2253/661 1284/2254/661 -f 1296/2217/628 1318/2255/628 1301/2256/628 1293/2214/628 -f 1313/2257/682 1314/2258/682 1319/2259/682 1320/2260/682 -f 1321/2261/661 1306/2262/661 1313/2257/661 1320/2260/661 -f 1221/2263/683 1322/2264/683 1217/2265/683 1220/2266/683 -f 1217/2267/684 1322/2268/684 1323/2269/684 1324/2270/684 -f 1325/2271/661 1280/2197/661 1269/2196/661 1265/2272/661 -f 1275/2190/612 1289/2273/612 1326/2274/612 1276/2191/612 -f 1221/2263/685 1307/2275/685 1327/2276/685 1322/2264/685 -f 1196/2277/686 1328/2278/686 1329/2279/686 1330/2280/686 -f 1206/2281/687 1198/2070/687 1197/2069/687 1211/2282/687 -f 1196/2283/686 1195/2284/686 1331/2285/686 1328/2286/686 -f 1158/2287/688 1223/2288/688 1225/2109/688 1239/2134/688 -f 1281/2289/689 1277/2290/689 1284/2254/689 1283/2253/689 -f 1222/2291/690 1332/2292/690 1331/2285/690 1195/2284/690 -f 1324/2293/691 1215/2294/691 1330/2280/691 1329/2279/691 -f 1202/2295/692 1189/2296/692 1220/2266/692 1217/2265/692 -f 1202/2295/686 1201/2297/686 1190/2298/686 1189/2296/686 -f 1219/2299/686 1309/2300/686 1190/2301/686 1201/2302/686 -f 1316/2303/693 1309/2300/693 1219/2299/693 1333/2304/693 -f 1319/2259/694 1314/2258/694 1316/2303/694 1333/2304/694 -f 1222/2291/695 1315/2305/695 1334/2306/695 1332/2292/695 -f 1335/2307/661 1336/2308/661 1251/2309/661 1177/2310/661 -f 1200/2103/696 1345/2101/696 1219/2100/696 -f 1361/2311/697 1333/2099/697 1345/2101/697 -f 1331/2312/698 1332/2313/698 1341/2314/698 -f 1228/2113/699 1240/2135/699 1339/2315/699 1233/2120/699 -f 1243/2316/700 1246/2317/700 1340/2318/700 1336/2319/700 -f 1266/2178/701 1271/2185/701 1270/2184/701 1267/2179/701 -f 1281/2198/624 1283/2320/624 1287/2321/624 1278/2199/624 -f 1360/2322/702 1341/2314/702 1332/2313/702 -f 1324/2270/703 1338/2073/703 1218/2323/703 1217/2267/703 -f 1162/2324/704 1165/2325/704 1237/2326/704 1171/2327/704 -f 1171/2327/705 1174/2328/705 1335/2329/705 1162/2324/705 -f 1156/2086/706 1193/2064/706 1192/2063/706 1210/2087/706 -f 1209/2330/707 1210/2331/707 1192/2332/707 1213/2333/707 -f 1165/2325/708 1339/2315/708 1240/2135/708 1237/2326/708 -f 1251/2150/709 1264/2175/709 1256/2174/709 1249/2151/709 -f 1255/2155/661 1254/2154/661 1274/2334/661 1266/2335/661 -f 1304/2232/710 1303/2231/710 1334/2306/710 1315/2305/710 -f 1341/2336/711 1342/2337/711 1343/2338/711 1344/2339/711 1345/2340/711 1200/2341/711 1218/2342/711 1338/2343/711 1337/2344/711 -f 1335/2329/661 1174/2328/661 1243/2316/661 1336/2319/661 -f 1239/2134/712 1225/2109/712 1241/2136/712 1231/2117/712 -f 1341/2314/713 1337/2075/713 1331/2312/713 -f 1212/2085/714 1210/2331/714 1209/2330/714 1346/2345/714 -f 1340/2346/715 1325/2271/715 1265/2272/715 1264/2347/715 -f 1258/2168/661 1261/2189/661 1274/2188/661 1254/2169/661 -f 1150/2011/716 1211/2348/716 1155/2349/716 1148/2009/716 -f 1347/2350/717 1348/2351/717 1349/2352/717 1327/2353/717 -f 1347/2350/718 1327/2353/718 1321/2354/718 1350/2355/718 -f 1302/2356/719 1351/2357/719 1303/2358/719 -f 1357/2359/720 1334/2360/720 1303/2358/720 -f 1349/2352/721 1348/2351/721 1351/2357/721 1302/2356/721 -f 1351/2357/722 1357/2359/722 1303/2358/722 -f 1353/2361/723 1350/2355/723 1320/2362/723 -f 1144/2005/689 1143/2004/689 1352/2363/689 1346/2364/689 -f 1352/2365/724 1143/2366/724 1226/2119/724 1232/2118/724 -f 1163/2027/725 1162/2026/725 1335/2307/725 1177/2310/725 -f 1224/2108/726 1235/2123/726 1241/2136/726 1225/2109/726 -f 1152/2013/727 1151/2012/727 1176/2145/727 1175/2144/727 -f 1165/2029/728 1164/2028/728 1242/2137/728 1339/2367/728 -f 1340/2318/729 1246/2317/729 1263/2368/729 1325/2369/729 -f 1325/2369/661 1263/2368/661 1268/2370/661 1280/2371/661 -f 1280/2371/730 1268/2370/730 1277/2290/730 1281/2289/730 -f 1180/2079/731 1204/2096/731 1213/2095/731 1183/2372/731 -f 1157/2373/732 1149/2374/732 1223/2288/732 1158/2287/732 -f 1318/2375/661 1287/2321/661 1283/2320/661 1282/2376/661 -f 1351/2377/733 1348/2378/733 1347/2379/733 1350/2380/733 1353/2381/733 1354/2382/733 1355/2383/733 1356/2384/733 1357/2385/733 -f 1319/2386/734 1358/2387/734 1353/2361/734 -f 1320/2362/735 1319/2386/735 1353/2361/735 -f 1200/2103/736 1201/2102/736 1202/2388/736 -f 1338/2073/737 1324/2270/737 1329/2074/737 -f 1332/2313/738 1334/2360/738 1359/2389/738 1360/2322/738 -f 1333/2099/739 1361/2311/739 1358/2387/739 1319/2386/739 -f 1355/2390/740 1362/2391/740 1363/2392/740 1356/2393/740 -f 1356/2393/741 1363/2392/741 1359/2389/741 1357/2359/741 -f 1354/2394/742 1353/2361/742 1358/2387/742 1364/2395/742 -f 1343/2396/743 1342/2397/743 1365/2398/743 1366/2399/743 -f 1343/2400/744 1366/2401/744 1367/2402/744 1344/2403/744 -f 1344/2403/745 1367/2402/745 1361/2311/745 1345/2101/745 -f 1361/2311/746 1367/2402/746 1364/2395/746 1358/2387/746 -f 1362/2404/747 1364/2395/747 1367/2402/747 1366/2401/747 -f 1362/2391/748 1366/2399/748 1365/2398/748 1363/2392/748 -f 1360/2322/749 1359/2389/749 1363/2392/749 1365/2398/749 -f 1405/2405/750 1495/2406/750 1491/2407/750 1369/2408/750 -f 1184/2054/625 1191/2237/625 1371/2409/625 1186/2056/625 -f 1317/2244/625 1185/2055/625 1187/2057/625 1368/2410/625 -f 1413/2411/751 1494/2412/751 1492/2413/751 1412/2414/751 -f 1408/2415/752 1374/2416/752 1494/2417/752 1413/2418/752 -f 1373/2419/753 1493/2420/753 1372/2421/753 1382/2422/753 -f 1406/2423/754 1496/2424/754 1495/2425/754 1405/2426/754 -f 1395/2427/755 1370/2428/755 1496/2429/755 1406/2430/755 -f 1370/2431/756 1491/2432/756 1495/2425/756 1496/2424/756 -f 1374/2433/681 1493/2434/681 1492/2413/681 1494/2412/681 -f 1375/2435/757 1372/2436/757 1493/2434/757 1374/2433/757 -f 1372/2436/758 1375/2435/758 1491/2432/758 1370/2431/758 -f 1412/2437/759 1492/2438/759 1493/2439/759 1373/2419/759 -f 1369/2408/760 1394/2440/760 1407/2441/760 1405/2405/760 -f 1409/2442/758 1410/2443/758 1394/2440/758 1369/2408/758 -f 1369/2408/761 1491/2444/761 1375/2445/761 1409/2442/761 -f 1382/2422/762 1372/2446/762 1370/2447/762 1395/2427/762 -f 1373/2419/681 1416/2448/681 1417/2449/681 1412/2437/681 -f 1382/2422/763 1385/2450/763 1386/2451/763 1389/2452/763 1390/2453/763 1391/2454/763 1402/2455/763 1403/2456/763 1416/2448/763 1373/2419/763 -f 1409/2442/764 1375/2457/764 1374/2458/764 1408/2415/764 -f 1402/2459/765 1377/2460/765 1376/2461/765 1401/2462/765 -f 1391/2463/766 1392/2464/766 1377/2460/766 1402/2459/766 -f 1401/2462/767 1376/2461/767 1393/2465/767 1400/2466/767 -f 1377/2460/768 1392/2464/768 1393/2465/768 1376/2461/768 -f 1397/2467/769 1378/2468/769 1379/2469/769 1396/2470/769 -f 1396/2470/770 1379/2469/770 1384/2471/770 1385/2472/770 -f 1386/2473/771 1383/2474/771 1378/2468/771 1397/2467/771 -f 1383/2474/772 1384/2471/772 1379/2469/772 1378/2468/772 -f 1399/2475/773 1380/2476/773 1381/2477/773 1398/2478/773 -f 1398/2478/774 1381/2477/774 1388/2479/774 1389/2480/774 -f 1390/2481/775 1387/2482/775 1380/2476/775 1399/2475/775 -f 1387/2482/768 1388/2479/768 1381/2477/768 1380/2476/768 -f 1385/2450/758 1382/2422/758 1395/2427/758 1396/2483/758 -f 1385/2472/776 1384/2471/776 1383/2474/776 1386/2473/776 -f 1389/2452/758 1386/2451/758 1397/2484/758 1398/2485/758 -f 1389/2480/777 1388/2479/777 1387/2482/777 1390/2481/777 -f 1391/2454/758 1390/2453/758 1399/2486/758 1400/2487/758 -f 1400/2466/778 1393/2465/778 1392/2464/778 1391/2463/778 -f 1416/2488/779 1403/2456/779 1404/2489/779 1415/2490/779 -f 1415/2491/780 1404/2489/780 1401/2492/780 1400/2487/780 1399/2486/780 1398/2485/780 1397/2484/780 1396/2483/780 1395/2427/780 1406/2430/780 -f 1404/2489/758 1403/2456/758 1402/2455/758 1401/2492/758 -f 1329/2074/781 1328/2493/781 1337/2075/781 -f 1414/2494/681 1411/2495/681 1408/2415/681 1413/2418/681 -f 1411/2495/782 1410/2443/782 1409/2442/782 1408/2415/782 -f 1417/2496/686 1416/2488/686 1415/2490/686 1419/2497/686 -f 1145/2006/625 1212/2085/625 1420/2498/625 1146/2007/625 -f 1141/2002/628 1421/2499/628 1157/2500/628 1142/2003/628 -f 1421/2499/681 1150/2011/681 1149/2010/681 1157/2500/681 -f 1141/2002/783 1207/2090/783 1206/2091/783 1421/2499/783 -f 1182/2501/689 1181/2502/689 1180/2503/689 1183/2504/689 -f 1181/2502/610 1422/2505/610 1423/2506/610 1180/2503/610 -f 1144/2005/784 1208/2089/784 1207/2088/784 1141/2002/784 -f 1424/2507/785 1425/2508/785 1238/2133/785 1160/2509/785 -f 1232/2510/786 1233/2511/786 1425/2508/786 1424/2512/786 -f 1420/2513/787 1424/2507/787 1160/2509/787 1146/2514/787 -f 1425/2508/788 1242/2137/788 1236/2124/788 1238/2133/788 -f 1154/2032/789 1241/2136/789 1235/2123/789 1167/2033/789 -f 1170/2046/661 1250/2159/661 1248/2158/661 1176/2047/661 -f 1274/2334/790 1276/2515/790 1271/2516/790 1266/2335/790 -f 1301/2256/681 1318/2255/681 1282/2517/681 1292/2518/681 -f 1297/2218/689 1295/2216/689 1294/2215/689 1298/2219/689 -f 1327/2276/661 1307/2275/661 1306/2519/661 1321/2520/661 -f 1349/2521/661 1302/2522/661 1305/2523/661 1312/2524/661 -f 1216/2525/791 1215/2294/791 1324/2293/791 1323/2526/791 -f 1271/2516/681 1276/2515/681 1326/2527/681 1272/2528/681 -f 1216/2525/792 1323/2526/792 1349/2521/792 1312/2524/792 -f 1155/2349/793 1211/2348/793 1197/2083/793 1205/2082/793 -f 1425/2508/794 1233/2511/794 1339/2367/794 1242/2137/794 -f 1251/2309/795 1336/2308/795 1340/2346/795 1264/2347/795 -f 1323/2269/796 1322/2268/796 1327/2353/796 1349/2352/796 -f 1144/2005/797 1346/2364/797 1209/2094/797 1208/2097/797 -f 1150/2011/798 1421/2499/798 1206/2281/798 1211/2282/798 -f 1212/2085/624 1346/2345/624 1352/2529/624 1420/2498/624 -f 1352/2530/799 1232/2510/799 1424/2512/799 1420/2531/799 -f 1184/2062/800 1183/2532/800 1213/2333/800 1192/2332/800 -f 1355/2533/801 1354/2394/801 1364/2395/801 1362/2404/801 -f 1342/2397/802 1341/2314/802 1360/2322/802 1365/2398/802 -f 1179/2066/610 1427/2534/610 1426/2535/610 1178/2067/610 -f 1180/2503/610 1423/2506/610 1427/2534/610 1179/2066/610 -f 1178/2067/610 1426/2535/610 1422/2505/610 1181/2502/610 -f 1407/2536/661 1411/2537/661 1414/2538/661 1418/2539/661 -f 1311/2540/686 1428/2541/686 1429/2542/686 1430/2543/686 1431/2544/686 1432/2545/686 1433/2546/686 1434/2547/686 -f 1181/2502/803 1182/2501/803 1430/2548/803 1429/2549/803 -f 1214/2060/804 1216/2234/804 1312/2249/804 -f 1215/2236/805 1199/2235/805 1330/2550/805 -f 1182/2052/806 1185/2055/806 1431/2551/806 1430/2552/806 -f 1308/2241/807 1214/2060/807 1434/2553/807 1433/2554/807 -f 1178/2067/808 1181/2502/808 1429/2555/808 1428/2556/808 -f 1185/2055/809 1317/2244/809 1432/2557/809 1431/2558/809 -f 1178/2067/810 1428/2559/810 1311/2560/810 1310/2245/810 -f 1330/2550/681 1199/2235/681 1194/2104/681 1196/2105/681 -f 1297/2561/661 1326/2274/661 1289/2273/661 1295/2562/661 -f 1326/2527/661 1297/2563/661 1300/2564/661 1272/2528/661 -f 1272/2186/661 1300/2565/661 1285/2566/661 1273/2187/661 -f 1273/2202/661 1285/2567/661 1286/2568/661 1284/2203/661 -f 1296/2569/661 1288/2205/661 1287/2204/661 1318/2570/661 -f 1288/2206/661 1296/2571/661 1295/2572/661 1289/2207/661 -f 1447/2573/661 1435/2574/661 1442/2575/661 1443/2576/661 -f 1411/2537/811 1407/2536/811 1394/2440/811 1410/2443/811 -f 1304/2248/628 1178/2067/628 1310/2245/628 1305/2250/628 -f 1199/2235/612 1189/2577/612 1190/2239/612 1188/2238/612 -f 1189/2577/812 1199/2235/812 1220/2578/812 -f 1309/2240/611 1316/2579/611 1191/2237/611 -f 1316/2579/611 1314/2580/611 1317/2244/611 1191/2237/611 -f 1317/2244/611 1314/2580/611 1313/2581/611 -f 1313/2581/611 1306/2582/611 1308/2241/611 1317/2244/611 -f 1214/2060/813 1221/2059/813 1220/2578/813 1199/2235/813 -f 1214/2060/612 1308/2241/612 1306/2582/612 1307/2058/612 -f 1368/2410/625 1371/2409/625 1191/2237/625 1317/2244/625 -f 1437/2583/686 1436/2584/686 1438/2585/686 1439/2586/686 -f 1443/2587/814 1444/2588/814 1445/2589/814 1446/2590/814 -f 1442/2591/612 1441/2592/612 1444/2588/612 1443/2587/612 -f 1436/2593/689 1435/2594/689 1447/2595/689 1448/2596/689 1449/2597/689 1438/2598/689 -f 1450/2599/815 1451/2600/815 1452/2601/815 1453/2602/815 -f 1438/2598/816 1449/2597/816 1454/2603/816 1455/2604/816 1456/2605/816 1457/2606/816 1458/2607/816 1459/2608/816 1451/2600/816 1450/2599/816 -f 1439/2586/817 1438/2585/817 1450/2599/817 1453/2602/817 -f 1459/2609/818 1461/2610/818 1462/2611/818 1463/2612/818 -f 1461/2613/815 1459/2608/815 1458/2607/815 1464/2614/815 -f 1465/2615/819 1464/2616/819 1466/2617/819 1467/2618/819 -f 1465/2619/815 1457/2606/815 1456/2605/815 1468/2620/815 -f 1469/2621/820 1468/2622/820 1470/2623/820 1471/2624/820 -f 1469/2625/815 1455/2604/815 1454/2603/815 1472/2626/815 -f 1466/2617/821 1473/2627/821 1474/2628/821 1467/2618/821 -f 1464/2616/822 1458/2629/822 1473/2627/822 1466/2617/822 -f 1457/2630/823 1465/2615/823 1467/2618/823 1474/2628/823 -f 1458/2629/824 1457/2630/824 1474/2628/824 1473/2627/824 -f 1470/2623/825 1475/2631/825 1476/2632/825 1471/2624/825 -f 1468/2622/826 1456/2633/826 1475/2631/826 1470/2623/826 -f 1455/2634/827 1469/2621/827 1471/2624/827 1476/2632/827 -f 1456/2633/828 1455/2634/828 1476/2632/828 1475/2631/828 -f 1477/2635/821 1478/2636/821 1463/2612/821 1462/2611/821 -f 1451/2637/829 1459/2609/829 1463/2612/829 1478/2636/829 -f 1461/2610/830 1452/2638/830 1477/2635/830 1462/2611/830 -f 1452/2638/831 1451/2637/831 1478/2636/831 1477/2635/831 -f 1445/2589/832 1444/2588/832 1479/2639/832 1480/2640/832 -f 1472/2626/833 1481/2641/833 1439/2642/833 1453/2602/833 1452/2601/833 1461/2613/833 1464/2614/833 1465/2619/833 1468/2620/833 1469/2625/833 -f 1481/2641/612 1440/2643/612 1437/2644/612 1439/2642/612 -f 1472/2626/834 1454/2603/834 1482/2645/834 1483/2646/834 -f 1484/2647/835 1445/2589/835 1480/2648/835 1485/2649/835 -f 1445/2589/815 1484/2647/815 1460/2650/815 1446/2590/815 -f 1484/2647/836 1448/2596/836 1447/2595/836 1460/2650/836 -f 1440/2643/837 1481/2641/837 1486/2651/837 1487/2652/837 -f 1483/2653/815 1482/2654/815 1485/2655/815 1480/2656/815 -f 1480/2656/838 1479/2657/838 1486/2658/838 1483/2653/838 -f 1479/2657/612 1488/2659/612 1487/2660/612 1486/2658/612 -f 1482/2654/839 1489/2661/839 1490/2662/839 1485/2655/839 -f 1454/2603/840 1449/2597/840 1489/2663/840 1482/2664/840 -f 1449/2665/841 1448/2666/841 1490/2662/841 1489/2661/841 -f 1481/2641/842 1472/2626/842 1483/2667/842 1486/2668/842 -f 1444/2588/843 1441/2592/843 1488/2669/843 1479/2670/843 -f 1441/2671/844 1440/2672/844 1487/2660/844 1488/2659/844 -f 1448/2596/845 1484/2647/845 1485/2673/845 1490/2674/845 -f 1443/2576/846 1446/2590/846 1460/2650/846 1447/2573/846 -f 1337/2075/625 1328/2493/625 1331/2312/625 -f 1406/2430/624 1405/2405/624 1407/2441/624 1418/2675/624 1419/2676/624 1415/2491/624 -f 1218/2323/847 1200/2103/847 1202/2388/847 -f 1202/2388/848 1217/2267/848 1218/2323/848 -f 1357/2359/849 1359/2389/849 1334/2360/849 -f 1350/2355/850 1321/2354/850 1320/2362/850 +f 1/1/1 2/2/1 3/3/1 4/4/1 +f 5/5/2 6/6/2 7/7/2 8/8/2 +f 8/8/3 7/7/3 9/9/3 10/10/3 +f 11/11/4 12/12/4 13/13/4 14/14/4 +f 5/5/5 8/8/5 15/15/5 16/16/5 +f 2/17/6 17/18/6 18/19/6 19/20/6 +f 7/21/7 6/22/7 20/23/7 21/24/7 +f 22/25/8 23/26/8 24/27/8 25/28/8 +f 26/29/9 11/30/9 14/31/9 27/32/9 +f 26/33/10 28/34/10 29/35/10 30/36/10 +f 31/37/11 32/38/11 33/39/11 34/40/11 +f 32/41/12 12/42/12 35/43/12 33/44/12 +f 11/30/13 26/29/13 30/45/13 36/46/13 +f 28/47/14 23/48/14 37/49/14 29/50/14 +f 38/51/15 39/52/15 40/53/15 41/54/15 +f 41/54/16 40/53/16 42/55/16 43/56/16 +f 44/57/17 45/58/17 46/59/17 +f 47/60/18 40/61/18 48/62/18 49/63/18 +f 50/64/19 51/65/19 52/66/19 53/67/19 +f 54/68/20 55/69/20 56/70/20 57/71/20 +f 58/72/21 59/73/21 60/74/21 +f 55/75/22 61/76/22 51/77/22 56/70/22 +f 62/78/23 51/77/23 61/79/23 63/80/23 +f 64/81/24 54/82/24 57/71/24 65/83/24 +f 66/84/25 5/5/25 16/85/25 67/86/25 +f 68/87/26 69/88/26 63/80/26 61/79/26 +f 68/89/27 61/76/27 55/75/27 70/90/27 +f 15/15/28 64/91/28 49/92/28 16/16/28 +f 71/93/29 72/94/29 63/95/29 69/96/29 +f 73/97/19 51/65/19 50/64/19 +f 74/98/30 75/99/30 76/100/30 +f 75/99/1 77/101/1 78/102/1 +f 56/103/19 51/65/19 73/97/19 79/104/19 +f 80/105/31 21/106/31 81/107/31 82/108/31 +f 83/109/32 19/110/32 84/111/32 85/112/32 +f 13/113/33 86/114/33 87/115/33 88/116/33 +f 89/117/34 83/118/34 85/112/34 90/119/34 +f 91/120/35 27/121/35 92/122/35 93/123/35 +f 32/38/36 31/37/36 94/124/36 86/125/36 +f 9/126/37 7/127/37 21/106/37 80/105/37 +f 28/34/38 26/33/38 27/121/38 91/120/38 +f 12/42/39 32/41/39 86/114/39 13/113/39 +f 23/48/40 28/47/40 91/128/40 24/129/40 +f 3/130/41 2/131/41 19/110/41 83/109/41 +f 81/107/42 95/132/42 93/123/42 92/122/42 +f 84/111/43 96/133/43 88/116/43 87/115/43 +f 85/112/44 84/111/44 87/115/44 97/134/44 +f 19/20/45 18/19/45 96/133/45 84/111/45 +f 21/24/46 20/23/46 95/132/46 81/107/46 +f 14/14/47 13/13/47 88/116/47 98/135/47 +f 24/129/48 91/128/48 93/123/48 99/136/48 +f 86/125/49 94/124/49 97/134/49 87/115/49 +f 100/137/50 101/138/50 102/139/50 103/140/50 +f 33/44/51 35/43/51 104/141/51 101/142/51 +f 34/40/51 33/39/51 101/138/51 100/137/51 +f 35/143/51 36/144/51 105/145/51 104/146/51 +f 30/36/51 29/35/51 106/147/51 107/148/51 +f 29/50/51 37/49/51 108/149/51 106/150/51 +f 109/151/52 110/152/52 111/153/52 112/154/52 +f 107/148/53 106/147/53 113/155/53 114/156/53 +f 104/146/54 105/145/54 110/152/54 109/151/54 +f 105/157/55 107/158/55 114/159/55 110/160/55 +f 101/142/56 104/141/56 109/161/56 102/162/56 +f 115/163/51 116/164/51 117/165/51 118/166/51 +f 110/160/57 114/159/57 115/167/57 111/168/57 +f 102/162/58 109/161/58 112/169/58 119/170/58 +f 103/140/59 102/139/59 119/171/59 120/172/59 +f 113/173/60 121/174/60 122/175/60 116/176/60 +f 114/156/61 113/155/61 116/164/61 115/163/61 +f 119/170/51 112/169/51 123/177/51 124/178/51 +f 120/172/51 119/171/51 124/179/51 125/180/51 +f 116/176/51 122/175/51 126/181/51 117/182/51 +f 127/183/19 128/184/19 129/185/19 130/186/19 +f 131/187/62 118/188/62 132/189/62 133/190/62 +f 125/180/63 124/179/63 127/191/63 134/192/63 +f 117/182/64 126/181/64 135/193/64 136/194/64 +f 126/195/65 137/196/65 138/197/65 135/198/65 +f 118/166/66 117/165/66 136/199/66 132/200/66 +f 134/192/1 127/191/1 130/201/1 139/202/1 +f 136/194/16 135/193/16 140/203/16 141/204/16 +f 132/200/2 136/199/2 141/205/2 142/206/2 +f 143/207/2 144/208/2 145/209/2 146/210/2 +f 145/209/3 147/211/3 148/212/3 146/210/3 +f 149/213/1 150/214/1 151/215/1 152/216/1 +f 153/217/15 154/218/15 155/219/15 156/220/15 +f 156/220/16 155/219/16 144/208/16 143/207/16 +f 147/221/51 145/222/51 144/223/51 155/224/51 154/225/51 150/226/51 149/227/51 157/228/51 +f 158/229/51 159/230/51 160/231/51 161/232/51 +f 162/233/67 46/59/67 57/234/67 163/235/67 +f 47/236/2 65/237/2 164/238/2 165/239/2 +f 166/240/68 167/241/68 168/242/68 169/243/68 +f 64/91/69 65/83/69 47/60/69 49/92/69 +f 46/59/70 170/244/70 171/245/70 172/246/70 +f 53/67/19 52/66/19 160/247/19 +f 173/248/71 161/249/71 170/244/71 46/59/71 +f 146/250/51 148/251/51 174/252/51 139/253/51 +f 152/216/19 175/254/19 157/255/19 149/213/19 +f 176/256/72 177/257/72 178/258/72 179/259/72 +f 180/260/51 181/261/51 176/256/51 179/259/51 +f 45/262/73 182/263/73 183/264/73 184/265/73 +f 183/266/74 182/267/74 185/268/74 186/269/74 +f 187/270/51 137/196/51 126/195/51 122/271/51 +f 132/189/3 142/272/3 188/273/3 133/190/3 +f 45/262/75 44/274/75 189/275/75 182/263/75 +f 79/276/76 190/277/76 59/278/76 191/279/76 +f 70/280/77 55/69/77 54/68/77 192/281/77 +f 79/282/76 73/283/76 193/284/76 190/285/76 +f 18/286/78 80/287/78 82/108/78 96/133/78 +f 138/288/79 134/289/79 139/253/79 174/252/79 +f 50/290/80 194/291/80 193/284/80 73/283/80 +f 186/292/81 163/293/81 191/279/81 59/278/81 +f 195/294/82 196/295/82 184/265/82 183/264/82 +f 195/294/76 77/296/76 164/297/76 196/295/76 +f 75/298/76 165/299/76 164/300/76 77/301/76 +f 197/302/83 165/299/83 75/298/83 74/303/83 +f 178/258/84 177/257/84 197/302/84 74/303/84 +f 50/290/85 53/304/85 198/305/85 194/291/85 +f 199/306/51 200/307/51 108/308/51 37/309/51 +f 78/102/86 76/100/86 75/99/86 +f 201/310/87 74/98/87 76/100/87 +f 193/311/88 194/312/88 202/313/88 +f 85/112/89 97/134/89 203/314/89 90/119/89 +f 100/315/90 103/316/90 204/317/90 200/318/90 +f 123/177/91 128/184/91 127/183/91 124/178/91 +f 138/197/15 174/319/15 140/320/15 135/198/15 +f 205/321/92 202/313/92 194/312/92 +f 186/269/93 58/72/93 206/322/93 183/266/93 +f 22/323/94 25/324/94 94/325/94 31/326/94 +f 31/326/95 34/327/95 199/328/95 22/323/95 +f 16/85/96 49/63/96 48/62/96 67/86/96 +f 71/329/97 67/330/97 48/331/97 72/332/97 +f 25/324/98 203/314/98 97/134/98 94/325/98 +f 108/149/99 121/174/99 113/173/99 106/150/99 +f 112/154/51 111/153/51 131/333/51 123/334/51 +f 160/231/100 159/230/100 198/305/100 53/304/100 +f 202/335/101 207/336/101 208/337/101 209/338/101 76/339/101 78/340/101 206/341/101 58/342/101 60/343/101 +f 199/328/51 34/327/51 100/315/51 200/318/51 +f 96/133/102 82/108/102 98/135/102 88/116/102 +f 202/313/103 60/74/103 193/311/103 +f 66/84/104 67/330/104 71/329/104 210/344/104 +f 204/345/105 187/270/105 122/271/105 121/346/105 +f 115/167/51 118/188/51 131/187/51 111/168/51 +f 10/10/106 192/347/106 15/348/106 8/8/106 +f 211/349/107 212/350/107 213/351/107 189/352/107 +f 211/349/108 189/352/108 180/353/108 214/354/108 +f 158/355/109 215/356/109 159/357/109 +f 216/358/110 198/359/110 159/357/110 +f 213/351/111 212/350/111 215/356/111 158/355/111 +f 215/356/112 216/358/112 159/357/112 +f 217/360/113 214/354/113 179/361/113 +f 4/4/79 3/3/79 218/362/79 210/363/79 +f 218/364/114 3/365/114 83/118/114 89/117/114 +f 23/26/115 22/25/115 199/306/115 37/309/115 +f 81/107/116 92/122/116 98/135/116 82/108/116 +f 12/12/117 11/11/117 36/144/117 35/143/117 +f 25/28/118 24/27/118 99/136/118 203/366/118 +f 204/317/119 103/316/119 120/367/119 187/368/119 +f 187/368/51 120/367/51 125/369/51 137/370/51 +f 137/370/120 125/369/120 134/289/120 138/288/120 +f 62/78/121 63/95/121 72/94/121 39/371/121 +f 17/372/122 9/373/122 80/287/122 18/286/122 +f 175/374/51 140/320/51 174/319/51 148/375/51 +f 215/376/123 212/377/123 211/378/123 214/379/123 217/380/123 219/381/123 220/382/123 221/383/123 216/384/123 +f 178/385/124 222/386/124 217/360/124 +f 179/361/125 178/385/125 217/360/125 +f 78/102/126 77/101/126 195/387/126 +f 58/72/127 186/269/127 59/73/127 +f 194/312/128 198/359/128 223/388/128 205/321/128 +f 74/98/129 201/310/129 222/386/129 178/385/129 +f 220/389/130 224/390/130 225/391/130 221/392/130 +f 221/392/131 225/391/131 223/388/131 216/358/131 +f 219/393/132 217/360/132 222/386/132 226/394/132 +f 208/395/133 207/396/133 227/397/133 228/398/133 +f 208/399/134 228/400/134 229/401/134 209/402/134 +f 209/402/135 229/401/135 201/310/135 76/100/135 +f 201/310/136 229/401/136 226/394/136 222/386/136 +f 224/403/137 226/394/137 229/401/137 228/400/137 +f 224/390/138 228/398/138 227/397/138 225/391/138 +f 205/321/139 223/388/139 225/391/139 227/397/139 +f 230/404/140 231/405/140 232/406/140 233/407/140 +f 40/53/16 47/236/16 234/408/16 42/55/16 +f 169/243/16 41/54/16 43/56/16 235/409/16 +f 236/410/141 237/411/141 238/412/141 239/413/141 +f 240/414/142 241/415/142 237/416/142 236/417/142 +f 242/418/143 243/419/143 244/420/143 245/421/143 +f 246/422/144 247/423/144 231/424/144 230/425/144 +f 248/426/145 249/427/145 247/428/145 246/429/145 +f 249/430/146 232/431/146 231/424/146 247/423/146 +f 241/432/71 243/433/71 238/412/71 237/411/71 +f 250/434/147 244/435/147 243/433/147 241/432/147 +f 244/435/148 250/434/148 232/431/148 249/430/148 +f 239/436/149 238/437/149 243/438/149 242/418/149 +f 233/407/150 251/439/150 252/440/150 230/404/150 +f 253/441/151 254/442/151 251/439/151 233/407/151 +f 233/407/152 232/443/152 250/444/152 253/441/152 +f 245/421/153 244/445/153 249/446/153 248/426/153 +f 242/418/71 255/447/71 256/448/71 239/436/71 +f 245/421/154 257/449/154 258/450/154 259/451/154 260/452/154 261/453/154 262/454/154 263/455/154 255/447/154 242/418/154 +f 253/441/155 250/456/155 241/457/155 240/414/155 +f 262/458/156 264/459/156 265/460/156 266/461/156 +f 261/462/157 267/463/157 264/459/157 262/458/157 +f 266/461/158 265/460/158 268/464/158 269/465/158 +f 264/459/159 267/463/159 268/464/159 265/460/159 +f 270/466/160 271/467/160 272/468/160 273/469/160 +f 273/469/161 272/468/161 274/470/161 257/471/161 +f 258/472/162 275/473/162 271/467/162 270/466/162 +f 275/473/163 274/470/163 272/468/163 271/467/163 +f 276/474/164 277/475/164 278/476/164 279/477/164 +f 279/477/165 278/476/165 280/478/165 259/479/165 +f 260/480/166 281/481/166 277/475/166 276/474/166 +f 281/481/159 280/478/159 278/476/159 277/475/159 +f 257/449/151 245/421/151 248/426/151 273/482/151 +f 257/471/167 274/470/167 275/473/167 258/472/167 +f 259/451/151 258/450/151 270/483/151 279/484/151 +f 259/479/168 280/478/168 281/481/168 260/480/168 +f 261/453/151 260/452/151 276/485/151 269/486/151 +f 269/465/169 268/464/169 267/463/169 261/462/169 +f 255/487/170 263/455/170 282/488/170 283/489/170 +f 283/490/171 282/488/171 266/491/171 269/486/171 276/485/171 279/484/171 270/483/171 273/482/171 248/426/171 246/429/171 +f 282/488/151 263/455/151 262/454/151 266/491/151 +f 59/73/172 190/492/172 60/74/172 +f 284/493/71 285/494/71 240/414/71 236/417/71 +f 285/494/173 254/442/173 253/441/173 240/414/173 +f 256/495/76 255/487/76 283/489/76 286/496/76 +f 5/5/16 66/84/16 287/497/16 6/6/16 +f 1/1/19 288/498/19 17/499/19 2/2/19 +f 288/498/71 10/10/71 9/9/71 17/499/71 +f 1/1/174 68/89/174 70/90/174 288/498/174 +f 38/500/79 289/501/79 62/502/79 39/503/79 +f 289/501/1 290/504/1 291/505/1 62/502/1 +f 4/4/175 69/88/175 68/87/175 1/1/175 +f 292/506/176 293/507/176 95/132/176 20/508/176 +f 89/509/177 90/510/177 293/507/177 292/511/177 +f 287/512/178 292/506/178 20/508/178 6/513/178 +f 293/507/179 99/136/179 93/123/179 95/132/179 +f 14/31/180 98/135/180 92/122/180 27/32/180 +f 30/45/51 107/158/51 105/157/51 36/46/51 +f 131/333/181 133/514/181 128/515/181 123/334/181 +f 157/255/71 175/254/71 148/516/71 147/517/71 +f 153/217/79 151/215/79 150/214/79 154/218/79 +f 189/275/51 44/274/51 181/518/51 180/519/51 +f 213/520/51 158/521/51 161/522/51 173/523/51 +f 162/524/182 163/293/182 186/292/182 185/525/182 +f 128/515/71 133/514/71 188/526/71 129/527/71 +f 162/524/183 185/525/183 213/520/183 173/523/183 +f 15/348/184 192/347/184 54/82/184 64/81/184 +f 293/507/185 90/510/185 203/366/185 99/136/185 +f 108/308/186 200/307/186 204/345/186 121/346/186 +f 185/268/187 182/267/187 189/352/187 213/351/187 +f 4/4/188 210/363/188 71/93/188 69/96/188 +f 10/10/189 288/498/189 70/280/189 192/281/189 +f 66/84/15 210/344/15 218/528/15 287/497/15 +f 218/529/190 89/509/190 292/511/190 287/530/190 +f 40/61/191 39/531/191 72/332/191 48/331/191 +f 220/532/192 219/393/192 226/394/192 224/403/192 +f 207/396/193 202/313/193 205/321/193 227/397/193 +f 51/65/1 294/533/1 295/534/1 52/66/1 +f 62/502/1 291/505/1 294/533/1 51/65/1 +f 52/66/1 295/534/1 290/504/1 289/501/1 +f 252/535/51 285/536/51 284/537/51 296/538/51 +f 171/539/76 297/540/76 298/541/76 299/542/76 300/543/76 168/544/76 167/545/76 172/546/76 +f 289/501/194 38/500/194 299/547/194 298/548/194 +f 46/59/195 162/233/195 173/248/195 +f 163/235/196 57/234/196 191/549/196 +f 38/51/197 41/54/197 300/550/197 299/551/197 +f 166/240/198 46/59/198 172/552/198 167/553/198 +f 52/66/199 289/501/199 298/554/199 297/555/199 +f 41/54/200 169/243/200 168/556/200 300/557/200 +f 52/66/201 297/558/201 171/559/201 170/244/201 +f 191/549/71 57/234/71 56/103/71 79/104/71 +f 153/560/51 188/273/51 142/272/51 151/561/51 +f 188/526/51 153/562/51 156/563/51 129/527/51 +f 129/185/51 156/564/51 143/565/51 130/186/51 +f 130/201/51 143/566/51 146/567/51 139/202/51 +f 152/568/51 141/204/51 140/203/51 175/569/51 +f 141/205/51 152/570/51 151/571/51 142/206/51 +f 301/572/51 302/573/51 303/574/51 304/575/51 +f 285/536/202 252/535/202 251/439/202 254/442/202 +f 160/247/19 52/66/19 170/244/19 161/249/19 +f 57/234/3 196/576/3 164/238/3 65/237/3 +f 196/576/203 57/234/203 184/577/203 +f 165/239/2 197/578/2 47/236/2 +f 197/578/2 177/579/2 169/243/2 47/236/2 +f 169/243/2 177/579/2 176/580/2 +f 176/580/2 181/581/2 166/240/2 169/243/2 +f 46/59/204 45/58/204 184/577/204 57/234/204 +f 46/59/3 166/240/3 181/581/3 44/57/3 +f 235/409/16 234/408/16 47/236/16 169/243/16 +f 305/582/76 306/583/76 307/584/76 308/585/76 +f 304/586/205 309/587/205 310/588/205 311/589/205 +f 303/590/3 312/591/3 309/587/3 304/586/3 +f 306/592/79 302/593/79 301/594/79 313/595/79 314/596/79 307/597/79 +f 315/598/206 316/599/206 317/600/206 318/601/206 +f 307/597/207 314/596/207 319/602/207 320/603/207 321/604/207 322/605/207 323/606/207 324/607/207 316/599/207 315/598/207 +f 308/585/208 307/584/208 315/598/208 318/601/208 +f 324/608/209 325/609/209 326/610/209 327/611/209 +f 325/612/206 324/607/206 323/606/206 328/613/206 +f 329/614/210 328/615/210 330/616/210 331/617/210 +f 329/618/206 322/605/206 321/604/206 332/619/206 +f 333/620/211 332/621/211 334/622/211 335/623/211 +f 333/624/206 320/603/206 319/602/206 336/625/206 +f 330/616/212 337/626/212 338/627/212 331/617/212 +f 328/615/213 323/628/213 337/626/213 330/616/213 +f 322/629/214 329/614/214 331/617/214 338/627/214 +f 323/628/215 322/629/215 338/627/215 337/626/215 +f 334/622/216 339/630/216 340/631/216 335/623/216 +f 332/621/217 321/632/217 339/630/217 334/622/217 +f 320/633/218 333/620/218 335/623/218 340/631/218 +f 321/632/219 320/633/219 340/631/219 339/630/219 +f 341/634/212 342/635/212 327/611/212 326/610/212 +f 316/636/220 324/608/220 327/611/220 342/635/220 +f 325/609/221 317/637/221 341/634/221 326/610/221 +f 317/637/222 316/636/222 342/635/222 341/634/222 +f 310/588/223 309/587/223 343/638/223 344/639/223 +f 336/625/224 345/640/224 308/641/224 318/601/224 317/600/224 325/612/224 328/613/224 329/618/224 332/619/224 333/624/224 +f 345/640/3 346/642/3 305/643/3 308/641/3 +f 336/625/225 319/602/225 347/644/225 348/645/225 +f 349/646/226 310/588/226 344/647/226 350/648/226 +f 310/588/206 349/646/206 351/649/206 311/589/206 +f 349/646/227 313/595/227 301/594/227 351/649/227 +f 346/642/228 345/640/228 352/650/228 353/651/228 +f 348/652/229 347/653/229 350/654/229 344/655/229 +f 344/655/230 343/656/230 352/657/230 348/652/230 +f 343/656/3 354/658/3 353/659/3 352/657/3 +f 347/653/231 355/660/231 356/661/231 350/654/231 +f 319/602/232 314/596/232 355/662/232 347/663/232 +f 314/664/233 313/665/233 356/661/233 355/660/233 +f 345/640/234 336/625/234 348/666/234 352/667/234 +f 309/587/235 312/591/235 354/668/235 343/669/235 +f 312/670/236 346/671/236 353/659/236 354/658/236 +f 313/595/237 349/646/237 350/672/237 356/673/237 +f 304/575/238 311/589/238 351/649/238 301/572/238 +f 60/74/16 190/492/16 193/311/16 +f 246/429/15 230/404/15 252/440/15 296/674/15 286/675/15 283/490/15 +f 206/322/239 78/102/239 195/387/239 +f 195/387/240 183/266/240 206/322/240 +f 216/358/241 223/388/241 198/359/241 +f 214/354/242 180/353/242 179/361/242 +o Rail_Cube +v -1.606489 0.994589 3.070837 +v -1.606489 1.084445 3.070837 +v -1.606489 1.084277 2.929163 +v -1.606489 0.994589 2.929163 +v -0.511384 1.084480 2.929163 +v -0.514357 1.052983 2.929163 +v -0.549767 1.006668 2.929163 +v -0.549767 0.994589 2.929163 +v 1.313063 1.160981 3.058974 +v 1.498769 1.160981 3.058974 +v 1.498532 1.230366 3.031927 +v 1.312826 1.230366 3.031927 +v 1.225298 0.994589 3.070837 +v 1.225298 1.084445 3.070837 +v 0.962233 1.084445 3.070837 +v 0.964610 1.052983 3.070837 +v 1.000021 1.006668 3.070837 +v 1.000021 0.994589 3.070837 +v -0.197543 0.994589 2.929163 +v 0.049014 0.994589 2.929163 +v 0.049014 0.994589 3.070837 +v -0.197543 0.994589 3.070837 +v 0.401239 0.994589 2.929163 +v 0.647796 0.994589 2.929163 +v 0.647796 0.994589 3.070837 +v 0.401239 0.994589 3.070837 +v 1.000021 0.994589 2.929163 +v 1.225298 0.994589 2.929163 +v -0.549767 0.994589 3.070837 +v 1.225298 1.143051 2.956872 +v -1.531817 1.143051 2.956872 +v -1.531817 1.143051 3.043128 +v 1.225298 1.143051 3.043128 +v 1.313063 0.996053 3.070837 +v 1.498769 0.996053 3.070837 +v 1.313063 1.160981 2.941026 +v 1.313063 0.996053 2.929163 +v 1.225298 1.084802 2.929163 +v 1.269521 1.219445 3.031927 +v 1.498769 0.996053 2.929163 +v 1.498769 1.160981 2.941026 +v 1.312826 1.230366 2.968073 +v 1.498532 1.230366 2.968073 +v 1.575087 0.954078 2.929163 +v 1.575087 1.119006 2.929163 +v 1.575087 1.119006 3.070837 +v 1.575087 0.954078 3.070837 +v 1.269521 1.219445 2.968073 +v 1.554546 1.188392 3.031927 +v 1.554546 1.188392 2.968073 +v -0.514597 1.084445 3.070837 +v -0.234129 1.084445 3.070837 +v 0.083877 1.084445 3.070837 +v 0.364860 1.084445 3.070837 +v 0.682044 1.084445 3.070837 +v 0.964998 1.084754 2.929163 +v 0.683980 1.084702 2.929163 +v 0.366670 1.084643 2.929163 +v 0.084942 1.084590 2.929163 +v -0.230760 1.084532 2.929163 +v -0.232953 1.052983 2.929163 +v -0.232953 1.052983 3.070837 +v -0.514357 1.052983 3.070837 +v -0.197543 1.006668 3.070837 +v -0.197543 1.006668 2.929163 +v -0.549767 1.006668 3.070837 +v 0.084425 1.052983 2.929163 +v 0.365828 1.052983 2.929163 +v 0.365828 1.052983 3.070837 +v 0.084425 1.052983 3.070837 +v 0.401239 1.006668 3.070837 +v 0.401239 1.006668 2.929163 +v 0.049014 1.006668 2.929163 +v 0.049014 1.006668 3.070837 +v 0.683207 1.052983 2.929163 +v 0.964610 1.052983 2.929163 +v 0.683207 1.052983 3.070837 +v 1.000021 1.006668 2.929163 +v 0.647796 1.006668 2.929163 +v 0.647796 1.006668 3.070837 +vt 0.000044 0.107430 +vt 0.024656 0.106940 +vt 0.025382 0.145745 +vt 0.000816 0.146234 +vt 0.030452 0.180549 +vt 0.030675 0.155877 +vt 0.331921 0.150233 +vt 0.331137 0.165014 +vt 0.321371 0.177755 +vt 0.321356 0.182832 +vt 0.841452 0.074598 +vt 0.898560 0.067293 +vt 0.901417 0.090204 +vt 0.844308 0.097509 +vt 0.805805 0.056957 +vt 0.805905 0.081576 +vt 0.733831 0.081869 +vt 0.734447 0.073247 +vt 0.744097 0.060518 +vt 0.744084 0.057208 +vt 0.418878 0.198936 +vt 0.488701 0.198936 +vt 0.488701 0.239057 +vt 0.418878 0.239057 +vt 0.608256 0.198936 +vt 0.678079 0.198936 +vt 0.678079 0.239057 +vt 0.608256 0.239057 +vt 0.797634 0.198936 +vt 0.861431 0.198936 +vt 0.861431 0.239057 +vt 0.797634 0.239057 +vt 0.000064 0.239057 +vt 0.000064 0.198936 +vt 0.299323 0.198936 +vt 0.299323 0.239057 +vt 0.806959 0.123674 +vt 0.051262 0.137650 +vt 0.050803 0.114024 +vt 0.805978 0.099337 +vt 0.834948 0.023749 +vt 0.892056 0.016444 +vt 0.848703 0.139669 +vt 0.848775 0.194135 +vt 0.819931 0.196127 +vt 0.818378 0.166453 +vt 0.819259 0.145224 +vt 0.808731 0.055009 +vt 0.805001 0.027402 +vt 0.832026 0.024208 +vt 0.813249 0.074592 +vt 0.886289 0.198936 +vt 0.886289 0.239057 +vt 0.830535 0.096090 +vt 0.938880 0.198936 +vt 0.938880 0.239057 +vt 0.907329 0.133247 +vt 0.846631 0.116524 +vt 0.903929 0.109840 +vt 0.854421 0.191870 +vt 0.913047 0.185448 +vt 0.999956 0.109718 +vt 0.949237 0.116206 +vt 0.943664 0.072638 +vt 0.994383 0.066151 +vt 0.916522 0.186846 +vt 0.934269 0.143004 +vt 0.943667 0.196128 +vt 0.890641 0.016645 +vt 0.911939 0.000044 +vt 0.920047 0.050529 +vt 0.963546 0.198936 +vt 0.963546 0.239057 +vt 0.833077 0.119378 +vt 0.831048 0.100155 +vt 0.922942 0.087450 +vt 0.925454 0.107087 +vt 0.917732 0.075896 +vt 0.923810 0.118972 +vt 0.030004 0.096674 +vt 0.329071 0.090840 +vt 0.405999 0.085274 +vt 0.493182 0.082863 +vt 0.570163 0.082535 +vt 0.657065 0.082182 +vt 0.807446 0.134947 +vt 0.761956 0.136920 +vt 0.712846 0.139052 +vt 0.657390 0.141473 +vt 0.607889 0.143639 +vt 0.517990 0.146718 +vt 0.319255 0.198936 +vt 0.398947 0.198936 +vt 0.398947 0.239057 +vt 0.319255 0.239057 +vt 0.415457 0.239057 +vt 0.415457 0.198936 +vt 0.302744 0.198936 +vt 0.302744 0.239057 +vt 0.508633 0.198936 +vt 0.588324 0.198936 +vt 0.588325 0.239057 +vt 0.508633 0.239057 +vt 0.604835 0.239057 +vt 0.604835 0.198936 +vt 0.492122 0.198936 +vt 0.492122 0.239057 +vt 0.698011 0.198936 +vt 0.777702 0.198936 +vt 0.777702 0.239057 +vt 0.698011 0.239057 +vt 0.794213 0.239057 +vt 0.794213 0.198936 +vt 0.681500 0.198936 +vt 0.681500 0.239057 +vt 0.570392 0.073909 +vt 0.493194 0.074229 +vt 0.657348 0.073560 +vt 0.580043 0.061180 +vt 0.580030 0.057871 +vt 0.647582 0.057600 +vt 0.647596 0.060910 +vt 0.405892 0.076638 +vt 0.415271 0.063632 +vt 0.415179 0.060309 +vt 0.483008 0.058434 +vt 0.483100 0.061757 +vt 0.328731 0.082202 +vt 0.029525 0.072069 +vt 0.318891 0.066437 +vt 0.321825 0.067919 +vt 0.762127 0.142476 +vt 0.808127 0.150713 +vt 0.768757 0.152413 +vt 0.766843 0.151519 +vt 0.712952 0.144596 +vt 0.657585 0.147020 +vt 0.707119 0.152950 +vt 0.707211 0.155057 +vt 0.664206 0.156936 +vt 0.664114 0.154829 +vt 0.608341 0.150969 +vt 0.517035 0.161727 +vt 0.599554 0.164923 +vt 0.599986 0.168387 +vt 0.529279 0.177207 +vt 0.528847 0.173743 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.3632 0.9317 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0717 0.9974 +vn -0.0132 0.1253 -0.9920 +vn -0.0136 0.1253 0.9920 +vn 0.0167 -0.9999 0.0000 +vn -0.1793 0.2999 0.9370 +vn 0.0000 0.3632 -0.9317 +vn 0.0000 0.0717 -0.9974 +vn 1.0000 0.0000 0.0000 +vn -0.0578 0.0359 -0.9977 +vn -0.0578 0.0359 0.9977 +vn -0.4819 -0.8762 0.0000 +vn -0.2445 0.9696 0.0000 +vn 0.5997 0.8003 0.0000 +vn 0.2041 0.4450 0.8720 +vn 0.9589 0.2839 0.0000 +vn -0.8655 0.5010 0.0000 +vn -0.1793 0.2999 -0.9370 +vn 0.2041 0.4450 -0.8720 +vn 0.0000 0.4274 0.9040 +vn -0.6179 0.7862 -0.0006 +vn -0.0000 0.4280 -0.9038 +vn 0.7944 -0.6074 0.0000 +vn -0.7944 -0.6074 0.0000 +s off +f 357/676/243 358/677/243 359/678/243 360/679/243 +f 360/680/244 359/681/244 361/682/244 362/683/244 363/684/244 364/685/244 +f 365/686/245 366/687/245 367/688/245 368/689/245 +f 369/690/246 370/691/246 371/692/246 372/693/246 373/694/246 374/695/246 +f 375/696/247 376/697/247 377/698/247 378/699/247 +f 379/700/247 380/701/247 381/702/247 382/703/247 +f 383/704/247 384/705/247 369/706/247 374/707/247 +f 357/708/247 360/709/247 364/710/247 385/711/247 +f 386/712/248 387/713/248 388/714/248 389/715/248 +f 365/686/249 390/716/249 391/717/249 366/687/249 +f 392/718/250 393/719/250 384/720/250 394/721/250 386/722/250 +f 370/723/251 369/724/251 390/725/251 365/686/251 389/726/251 +f 369/706/252 384/705/252 393/727/252 390/728/252 +f 389/726/253 365/686/253 368/689/253 395/729/253 +f 390/728/247 393/727/247 396/730/247 391/731/247 +f 397/732/254 392/718/254 398/733/254 399/734/254 +f 393/735/255 392/718/255 397/732/255 396/736/255 +f 400/737/256 401/738/256 402/739/256 403/740/256 +f 396/741/257 397/732/257 401/742/257 400/743/257 +f 366/687/258 391/744/258 403/745/258 402/746/258 +f 391/731/259 396/730/259 400/747/259 403/748/259 +f 404/749/260 395/750/260 368/689/260 398/733/260 +f 399/734/261 367/688/261 405/751/261 406/752/261 +f 398/733/248 368/689/248 367/688/248 399/734/248 +f 366/687/262 402/746/262 405/753/262 367/688/262 +f 402/739/263 401/738/263 406/752/263 405/751/263 +f 386/712/264 389/715/264 395/750/264 404/749/264 +f 392/718/265 386/722/265 404/749/265 398/733/265 +f 401/742/266 397/732/266 399/734/266 406/754/266 +f 358/755/267 407/756/267 408/757/267 409/758/267 410/759/267 411/760/267 371/692/267 370/691/267 389/715/267 388/714/267 +f 359/678/268 358/677/268 388/714/268 387/713/268 +f 394/761/269 412/762/269 413/763/269 414/764/269 415/765/269 416/766/269 361/682/269 359/681/269 387/713/269 386/712/269 +f 362/767/247 417/768/247 418/769/247 419/770/247 +f 378/699/243 420/771/243 421/772/243 375/696/243 +f 364/710/256 363/773/256 422/774/256 385/711/256 +f 363/773/270 362/767/270 419/770/270 422/774/270 +f 418/769/271 417/768/271 421/772/271 420/771/271 +f 423/775/247 424/776/247 425/777/247 426/778/247 +f 382/703/243 427/779/243 428/780/243 379/700/243 +f 376/697/256 429/781/256 430/782/256 377/698/256 +f 429/781/270 423/775/270 426/778/270 430/782/270 +f 428/780/271 427/779/271 425/777/271 424/776/271 +f 431/783/247 432/784/247 372/785/247 433/786/247 +f 373/787/243 434/788/243 383/704/243 374/707/243 +f 380/701/256 435/789/256 436/790/256 381/702/256 +f 436/790/270 435/789/270 431/783/270 433/786/270 +f 372/785/271 432/784/271 434/788/271 373/787/271 +f 425/791/246 410/759/246 409/758/246 426/792/246 +f 433/793/246 411/760/246 410/759/246 425/791/246 427/794/246 382/795/246 381/796/246 436/797/246 +f 372/693/246 371/692/246 411/760/246 433/793/246 +f 426/792/246 409/758/246 408/757/246 418/798/246 420/799/246 378/800/246 377/801/246 430/802/246 +f 418/798/246 408/757/246 407/756/246 419/803/246 +f 419/803/246 407/756/246 358/755/246 357/804/246 385/805/246 422/806/246 +f 432/807/244 412/762/244 394/761/244 384/808/244 383/809/244 434/810/244 +f 431/811/244 413/763/244 412/762/244 432/807/244 +f 424/812/244 414/764/244 413/763/244 431/811/244 435/813/244 380/814/244 379/815/244 428/816/244 +f 423/817/244 415/765/244 414/764/244 424/812/244 +f 417/818/244 416/766/244 415/765/244 423/817/244 429/819/244 376/820/244 375/821/244 421/822/244 +f 362/683/244 361/682/244 416/766/244 417/818/244 +o CoiCanon_Cylinder.004 +v -0.419369 0.526526 2.793014 +v 0.947632 0.526526 2.793014 +v 0.947632 0.380164 2.853639 +v -0.419369 0.380164 2.853639 +v 0.947632 0.319540 3.000000 +v -0.419369 0.319540 3.000000 +v 0.947632 0.380164 3.146361 +v -0.419369 0.380164 3.146361 +v 0.947632 0.526526 3.206986 +v -0.419369 0.526526 3.206986 +v 0.947632 0.672887 3.146361 +v -0.419369 0.672887 3.146361 +v 0.947632 0.733512 3.000000 +v -0.419369 0.733512 3.000000 +v 0.947632 0.672887 2.853639 +v -0.419369 0.672887 2.853639 +vt 0.000126 0.575971 +vt 0.828281 0.575971 +vt 0.828281 0.671946 +vt 0.000126 0.671946 +vt 0.828281 0.767920 +vt 0.000126 0.767920 +vt 0.000126 0.000126 +vt 0.828282 0.000127 +vt 0.828282 0.096101 +vt 0.000126 0.096100 +vt 0.828282 0.192075 +vt 0.000126 0.192075 +vt 0.828282 0.288049 +vt 0.000126 0.288049 +vt 0.828281 0.384023 +vt 0.000126 0.384023 +vt 0.232080 0.836036 +vt 0.299945 0.768172 +vt 0.395919 0.768172 +vt 0.463783 0.836036 +vt 0.463783 0.932010 +vt 0.395919 0.999874 +vt 0.299944 0.999874 +vt 0.232081 0.932010 +vt 0.828281 0.479997 +vt 0.000126 0.479997 +vt 0.163964 0.999874 +vt 0.067990 0.999874 +vt 0.000126 0.932010 +vt 0.000126 0.836036 +vt 0.067990 0.768172 +vt 0.163964 0.768172 +vt 0.231828 0.836036 +vt 0.231828 0.932010 +vn 0.0000 -0.3827 -0.9239 +vn 0.0000 -0.9239 -0.3827 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 -0.3827 0.9239 +vn 0.0000 0.3827 0.9239 +vn 0.0000 0.9239 0.3827 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.9239 -0.3827 +vn 0.0000 0.3827 -0.9239 +vn -1.0000 0.0000 0.0000 +s off +f 437/823/272 438/824/272 439/825/272 440/826/272 +f 440/826/273 439/825/273 441/827/273 442/828/273 +f 442/829/274 441/830/274 443/831/274 444/832/274 +f 444/832/275 443/831/275 445/833/275 446/834/275 +f 446/834/276 445/833/276 447/835/276 448/836/276 +f 448/836/277 447/835/277 449/837/277 450/838/277 +f 439/839/278 438/840/278 451/841/278 449/842/278 447/843/278 445/844/278 443/845/278 441/846/278 +f 450/838/279 449/837/279 451/847/279 452/848/279 +f 452/848/280 451/847/280 438/824/280 437/823/280 +f 437/849/281 440/850/281 442/851/281 444/852/281 446/853/281 448/854/281 450/855/281 452/856/281 +o SideScrews_Cylinder.005 +v -0.436383 0.265019 3.509254 +v 1.004741 0.265019 3.509254 +v 1.004741 0.179718 3.544586 +v -0.436383 0.179718 3.544586 +v 1.004741 0.144386 3.629887 +v -0.436383 0.144385 3.629887 +v 1.004741 0.179718 3.715187 +v -0.436383 0.179718 3.715187 +v 1.004741 0.265019 3.750520 +v -0.436383 0.265019 3.750520 +v 1.004741 0.350319 3.715187 +v -0.436383 0.350319 3.715187 +v 1.004741 0.385652 3.629887 +v -0.436383 0.385652 3.629887 +v 1.088061 0.265019 3.750520 +v 1.088061 0.350319 3.715187 +v 1.004741 0.350319 3.544586 +v -0.436383 0.350319 3.544586 +v -0.513171 0.364069 3.629887 +v -0.513171 0.335058 3.699926 +v -0.513171 0.265019 3.530836 +v -0.513171 0.194979 3.559848 +v -0.513171 0.165968 3.629887 +v -0.513171 0.194979 3.699926 +v -0.513171 0.265019 3.728937 +v -0.513171 0.335058 3.559848 +v 1.088061 0.265019 3.509254 +v 1.088061 0.350319 3.544586 +v 1.100404 0.336110 3.558795 +v 1.100404 0.265019 3.529348 +v 1.088061 0.179718 3.544586 +v 1.088061 0.144386 3.629887 +v 1.088061 0.179718 3.715187 +v 1.088061 0.385652 3.629887 +v 1.100404 0.336110 3.700979 +v 1.100404 0.365558 3.629887 +v 1.100404 0.193927 3.700979 +v 1.100404 0.265019 3.730426 +v 1.100404 0.193927 3.558795 +v 1.100404 0.164480 3.629887 +v 1.127149 0.181939 3.629887 +v 1.127149 0.206273 3.688633 +v 1.127149 0.206273 3.571141 +v 1.127149 0.265019 3.546807 +v 1.127149 0.323765 3.571141 +v 1.127149 0.348098 3.629887 +v 1.127149 0.323765 3.688633 +v 1.127149 0.265019 3.712966 +v -0.436384 0.265019 2.490746 +v -0.436384 0.179718 2.455414 +v 1.004741 0.179718 2.455414 +v 1.004741 0.265019 2.490746 +v -0.436384 0.144385 2.370113 +v 1.004741 0.144386 2.370113 +v -0.436384 0.179718 2.284813 +v 1.004741 0.179718 2.284813 +v -0.436384 0.265019 2.249480 +v 1.004741 0.265019 2.249480 +v -0.436384 0.350319 2.284813 +v 1.004741 0.350319 2.284813 +v -0.436384 0.385652 2.370113 +v 1.004741 0.385652 2.370113 +v 1.088061 0.350319 2.284813 +v 1.088061 0.265019 2.249480 +v -0.436384 0.350319 2.455414 +v 1.004741 0.350319 2.455414 +v -0.513171 0.335058 2.300074 +v -0.513171 0.364069 2.370113 +v -0.513171 0.265019 2.469164 +v -0.513171 0.335058 2.440152 +v -0.513171 0.265019 2.271063 +v -0.513171 0.194979 2.300074 +v -0.513171 0.165968 2.370113 +v -0.513171 0.194979 2.440152 +v 1.088061 0.265019 2.490746 +v 1.100404 0.265019 2.470652 +v 1.100404 0.336111 2.441205 +v 1.088061 0.350319 2.455414 +v 1.088061 0.179718 2.455414 +v 1.088061 0.179718 2.284813 +v 1.088061 0.144386 2.370113 +v 1.088061 0.385652 2.370113 +v 1.100404 0.365558 2.370113 +v 1.100404 0.336110 2.299021 +v 1.100404 0.265019 2.269574 +v 1.100404 0.193927 2.299021 +v 1.100404 0.164480 2.370113 +v 1.100404 0.193927 2.441205 +v 1.127149 0.206273 2.311367 +v 1.127149 0.181939 2.370113 +v 1.127149 0.206273 2.428859 +v 1.127149 0.265019 2.287034 +v 1.127149 0.323765 2.311367 +v 1.127149 0.348098 2.370113 +v 1.127149 0.323765 2.428859 +v 1.127149 0.265019 2.453193 +vt 0.047908 0.778254 +vt 0.915002 0.778254 +vt 0.915002 0.833806 +vt 0.047908 0.833806 +vt 0.915002 0.889359 +vt 0.047908 0.889358 +vt 0.047908 0.444941 +vt 0.915002 0.444941 +vt 0.915002 0.500493 +vt 0.047908 0.500493 +vt 0.915002 0.556045 +vt 0.047908 0.556045 +vt 0.915002 0.611597 +vt 0.047908 0.611598 +vt 0.915002 0.667149 +vt 0.047908 0.667150 +vt 0.965134 0.556045 +vt 0.965134 0.611597 +vt 0.915002 0.722702 +vt 0.047908 0.722702 +vt 0.000174 0.662180 +vt 0.000174 0.616567 +vt 0.188508 0.999826 +vt 0.142894 0.999826 +vt 0.110641 0.967572 +vt 0.110641 0.921959 +vt 0.142895 0.889706 +vt 0.188508 0.889706 +vt 0.220761 0.921959 +vt 0.220761 0.967572 +vt 0.000174 0.551076 +vt 0.000174 0.505463 +vt 0.000174 0.717732 +vt 0.000174 0.672119 +vt 0.000174 0.884388 +vt 0.000174 0.838776 +vt 0.000174 0.606628 +vt 0.000174 0.561015 +vt 0.000174 0.773284 +vt 0.000174 0.727671 +vt 0.000174 0.828837 +vt 0.000174 0.783223 +vt 0.000174 0.495524 +vt 0.000174 0.449911 +vt 0.965134 0.778254 +vt 0.965134 0.722702 +vt 0.978548 0.727329 +vt 0.978548 0.773627 +vt 0.965134 0.833806 +vt 0.965134 0.444941 +vt 0.965134 0.500493 +vt 0.965134 0.667149 +vt 0.965134 0.889359 +vt 0.978548 0.616224 +vt 0.978548 0.662523 +vt 0.978548 0.505120 +vt 0.978548 0.551419 +vt 0.978548 0.838433 +vt 0.978548 0.884732 +vt 0.978548 0.671776 +vt 0.978548 0.718075 +vt 0.978548 0.560672 +vt 0.978548 0.606970 +vt 0.978548 0.449567 +vt 0.978548 0.495866 +vt 0.978548 0.782880 +vt 0.978548 0.829179 +vt 0.997340 0.453587 +vt 0.997340 0.491846 +vt 0.313821 0.916759 +vt 0.340874 0.889706 +vt 0.379132 0.889706 +vt 0.406185 0.916760 +vt 0.406185 0.955018 +vt 0.379132 0.982071 +vt 0.340873 0.982071 +vt 0.313820 0.955018 +vt 0.997340 0.786900 +vt 0.997340 0.825159 +vt 0.997340 0.731349 +vt 0.997339 0.769607 +vt 0.997340 0.620244 +vt 0.997340 0.658502 +vt 0.997340 0.509140 +vt 0.997340 0.547398 +vt 0.997340 0.842454 +vt 0.997340 0.880712 +vt 0.997340 0.675796 +vt 0.997340 0.714055 +vt 0.997340 0.564692 +vt 0.997340 0.602951 +vt 0.047908 0.111279 +vt 0.047908 0.055726 +vt 0.915003 0.055729 +vt 0.915003 0.111281 +vt 0.047908 0.000174 +vt 0.915003 0.000177 +vt 0.047907 0.444592 +vt 0.047907 0.389040 +vt 0.915002 0.389041 +vt 0.915002 0.444593 +vt 0.047907 0.333487 +vt 0.915002 0.333489 +vt 0.047907 0.277935 +vt 0.915002 0.277937 +vt 0.047908 0.222383 +vt 0.915002 0.222385 +vt 0.965134 0.277937 +vt 0.965134 0.333489 +vt 0.047908 0.166830 +vt 0.915003 0.166833 +vt 0.000174 0.272966 +vt 0.000174 0.227352 +vt 0.032427 0.889706 +vt 0.078041 0.889706 +vt 0.110294 0.921960 +vt 0.110294 0.967573 +vt 0.078041 0.999826 +vt 0.032427 0.999826 +vt 0.000174 0.967573 +vt 0.000174 0.921960 +vt 0.000174 0.384070 +vt 0.000174 0.338457 +vt 0.000174 0.217413 +vt 0.000174 0.171800 +vt 0.000175 0.050756 +vt 0.000175 0.005143 +vt 0.000174 0.328517 +vt 0.000174 0.282904 +vt 0.000174 0.161861 +vt 0.000175 0.116248 +vt 0.000175 0.106309 +vt 0.000175 0.060695 +vt 0.000174 0.439622 +vt 0.000174 0.394009 +vt 0.965135 0.111281 +vt 0.978548 0.115908 +vt 0.978548 0.162207 +vt 0.965135 0.166833 +vt 0.965135 0.055729 +vt 0.965134 0.389041 +vt 0.965134 0.444593 +vt 0.965134 0.222385 +vt 0.965135 0.000177 +vt 0.978548 0.227012 +vt 0.978548 0.273311 +vt 0.978547 0.338116 +vt 0.978547 0.384414 +vt 0.978548 0.004803 +vt 0.978548 0.051102 +vt 0.978547 0.171460 +vt 0.978547 0.217759 +vt 0.978547 0.282564 +vt 0.978547 0.328863 +vt 0.978548 0.393668 +vt 0.978548 0.439967 +vt 0.978548 0.060356 +vt 0.978548 0.106654 +vt 0.997340 0.397688 +vt 0.997340 0.435947 +vt 0.248162 0.982070 +vt 0.221109 0.955017 +vt 0.221109 0.916758 +vt 0.248162 0.889706 +vt 0.286421 0.889706 +vt 0.313473 0.916759 +vt 0.313473 0.955017 +vt 0.286420 0.982071 +vt 0.997340 0.064376 +vt 0.997340 0.102635 +vt 0.997340 0.119928 +vt 0.997341 0.158187 +vt 0.997340 0.231032 +vt 0.997340 0.269291 +vt 0.997339 0.342136 +vt 0.997339 0.380394 +vt 0.997340 0.008823 +vt 0.997340 0.047082 +vt 0.997339 0.175480 +vt 0.997339 0.213738 +vt 0.997340 0.286584 +vt 0.997340 0.324842 +vn 0.0000 -0.3827 -0.9239 +vn 0.0000 -0.9239 -0.3827 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 -0.3827 0.9239 +vn 0.0000 0.3827 0.9239 +vn 0.0000 0.9239 0.3827 +vn 0.0000 0.9239 -0.3827 +vn 0.0000 0.3827 -0.9239 +vn -0.2513 0.8942 0.3704 +vn -1.0000 0.0000 0.0000 +vn -0.2513 -0.3704 0.8942 +vn -0.2513 0.8942 -0.3704 +vn -0.2513 -0.8942 -0.3704 +vn -0.2513 0.3704 0.8942 +vn -0.2513 0.3704 -0.8942 +vn -0.2513 -0.3704 -0.8942 +vn -0.2513 -0.8942 0.3704 +vn 0.8327 0.2119 -0.5115 +vn 0.8327 0.5115 0.2119 +vn 0.8327 -0.2119 0.5115 +vn 0.8327 -0.5115 -0.2119 +vn 0.8327 0.5115 -0.2119 +vn 0.8327 0.2119 0.5115 +vn 0.8327 -0.5115 0.2119 +vn 0.8327 -0.2119 -0.5115 +vn 0.5165 -0.7911 0.3277 +vn 1.0000 0.0000 0.0000 +vn 0.5165 -0.3277 -0.7911 +vn 0.5165 0.3277 -0.7911 +vn 0.5165 0.7911 0.3277 +vn 0.5165 -0.3277 0.7911 +vn 0.5165 -0.7911 -0.3277 +vn 0.5165 0.7911 -0.3277 +vn 0.5165 0.3277 0.7911 +s off +f 453/857/282 454/858/282 455/859/282 456/860/282 +f 456/860/283 455/859/283 457/861/283 458/862/283 +f 458/863/284 457/864/284 459/865/284 460/866/284 +f 460/866/285 459/865/285 461/867/285 462/868/285 +f 462/868/286 461/867/286 463/869/286 464/870/286 +f 464/870/287 463/869/287 465/871/287 466/872/287 +f 463/869/286 461/867/286 467/873/286 468/874/286 +f 466/872/288 465/871/288 469/875/288 470/876/288 +f 470/876/289 469/875/289 454/858/289 453/857/289 +f 464/870/290 466/872/290 471/877/290 472/878/290 +f 473/879/291 474/880/291 475/881/291 476/882/291 477/883/291 472/884/291 471/885/291 478/886/291 +f 460/866/292 462/868/292 477/887/292 476/888/292 +f 466/872/293 470/876/293 478/889/293 471/890/293 +f 456/860/294 458/862/294 475/891/294 474/892/294 +f 462/868/295 464/870/295 472/893/295 477/894/295 +f 470/876/296 453/857/296 473/895/296 478/896/296 +f 453/857/297 456/860/297 474/897/297 473/898/297 +f 458/863/298 460/866/298 476/899/298 475/900/298 +f 479/901/299 480/902/299 481/903/299 482/904/299 +f 454/858/289 469/875/289 480/902/289 479/901/289 +f 455/859/282 454/858/282 479/901/282 483/905/282 +f 459/865/284 457/864/284 484/906/284 485/907/284 +f 465/871/287 463/869/287 468/874/287 486/908/287 +f 461/867/285 459/865/285 485/907/285 467/873/285 +f 469/875/288 465/871/288 486/908/288 480/902/288 +f 457/861/283 455/859/283 483/905/283 484/909/283 +f 486/908/300 468/874/300 487/910/300 488/911/300 +f 467/873/301 485/907/301 489/912/301 490/913/301 +f 484/909/302 483/905/302 491/914/302 492/915/302 +f 480/902/303 486/908/303 488/916/303 481/917/303 +f 468/874/304 467/873/304 490/918/304 487/919/304 +f 485/907/305 484/906/305 492/920/305 489/921/305 +f 483/905/306 479/901/306 482/922/306 491/923/306 +f 489/921/307 492/920/307 493/924/307 494/925/307 +f 495/926/308 496/927/308 497/928/308 498/929/308 499/930/308 500/931/308 494/932/308 493/933/308 +f 491/923/309 482/922/309 496/934/309 495/935/309 +f 482/904/310 481/903/310 497/936/310 496/937/310 +f 488/911/311 487/910/311 499/938/311 498/939/311 +f 490/913/312 489/912/312 494/940/312 500/941/312 +f 492/915/313 491/914/313 495/942/313 493/943/313 +f 481/917/314 488/916/314 498/944/314 497/945/314 +f 487/919/315 490/918/315 500/946/315 499/947/315 +f 501/948/285 502/949/285 503/950/285 504/951/285 +f 502/949/284 505/952/284 506/953/284 503/950/284 +f 505/954/283 507/955/283 508/956/283 506/957/283 +f 507/955/282 509/958/282 510/959/282 508/956/282 +f 509/958/289 511/960/289 512/961/289 510/959/289 +f 511/960/288 513/962/288 514/963/288 512/961/288 +f 512/961/289 515/964/289 516/965/289 510/959/289 +f 513/962/287 517/966/287 518/967/287 514/963/287 +f 517/966/286 501/948/286 504/951/286 518/967/286 +f 511/960/293 519/968/293 520/969/293 513/962/293 +f 521/970/291 522/971/291 520/972/291 519/973/291 523/974/291 524/975/291 525/976/291 526/977/291 +f 507/955/297 524/978/297 523/979/297 509/958/297 +f 513/962/290 520/980/290 522/981/290 517/966/290 +f 502/949/298 526/982/298 525/983/298 505/952/298 +f 509/958/296 523/984/296 519/985/296 511/960/296 +f 517/966/295 522/986/295 521/987/295 501/948/295 +f 501/948/292 521/988/292 526/989/292 502/949/292 +f 505/954/294 525/990/294 524/991/294 507/955/294 +f 527/992/304 528/993/304 529/994/304 530/995/304 +f 504/951/286 527/992/286 530/995/286 518/967/286 +f 503/950/285 531/996/285 527/992/285 504/951/285 +f 508/956/283 532/997/283 533/998/283 506/957/283 +f 514/963/288 534/999/288 515/964/288 512/961/288 +f 510/959/282 516/965/282 532/997/282 508/956/282 +f 518/967/287 530/995/287 534/999/287 514/963/287 +f 506/953/284 533/1000/284 531/996/284 503/950/284 +f 534/999/303 535/1001/303 536/1002/303 515/964/303 +f 516/965/306 537/1003/306 538/1004/306 532/997/306 +f 533/1000/305 539/1005/305 540/1006/305 531/996/305 +f 530/995/300 529/1007/300 535/1008/300 534/999/300 +f 515/964/299 536/1009/299 537/1010/299 516/965/299 +f 532/997/302 538/1011/302 539/1012/302 533/998/302 +f 531/996/301 540/1013/301 528/1014/301 527/992/301 +f 538/1011/313 541/1015/313 542/1016/313 539/1012/313 +f 543/1017/308 542/1018/308 541/1019/308 544/1020/308 545/1021/308 546/1022/308 547/1023/308 548/1024/308 +f 540/1013/312 543/1025/312 548/1026/312 528/1014/312 +f 528/993/315 548/1027/315 547/1028/315 529/994/315 +f 535/1001/314 546/1029/314 545/1030/314 536/1002/314 +f 537/1003/309 544/1031/309 541/1032/309 538/1004/309 +f 539/1005/307 542/1033/307 543/1034/307 540/1006/307 +f 529/1007/311 547/1035/311 546/1036/311 535/1008/311 +f 536/1009/310 545/1037/310 544/1038/310 537/1010/310 +o AmmunitionCan_Cylinder.007 +v -1.114931 0.645018 2.605743 +v -0.705608 0.645018 2.607436 +v -0.705608 0.367434 2.722416 +v -1.115595 0.367434 2.722416 +v -0.705608 0.252454 3.000000 +v -1.115595 0.252454 3.000000 +v -0.705608 0.367434 3.277584 +v -1.115595 0.367434 3.277584 +v -0.705608 0.645018 3.392564 +v -1.115595 0.645018 3.392564 +v -0.705608 0.922602 3.277584 +v -1.115595 0.922602 3.277584 +v -0.705608 1.037581 3.000000 +v -1.115595 1.037581 3.000000 +v -0.705608 0.922602 2.722416 +v -1.115595 0.922602 2.722416 +v -1.680468 0.367434 2.722416 +v -1.680468 0.252454 3.000000 +v -1.696762 0.326183 3.000000 +v -1.696762 0.419567 2.774549 +v -1.696762 0.645018 3.318835 +v -1.696762 0.870468 3.225451 +v -1.717499 0.922175 3.277157 +v -1.717499 0.645018 3.391959 +v -1.680468 0.645018 3.392564 +v -1.680468 0.922602 3.277584 +v -1.680468 0.922602 2.722416 +v -1.680468 0.645018 2.607436 +v -1.696762 0.645018 2.681165 +v -1.696762 0.870469 2.774550 +v -1.680468 0.367434 3.277584 +v -1.696762 0.419567 3.225451 +v -1.680468 1.037582 3.000000 +v -1.696762 0.963853 3.000000 +v -1.717499 1.036977 3.000000 +v -1.717499 0.922175 2.722843 +v -1.807855 0.922175 2.722843 +v -1.807855 1.036977 3.000000 +v -1.717499 0.367861 3.277157 +v -1.717499 0.253059 3.000000 +v -1.717499 0.367861 2.722843 +v -1.717499 0.645018 2.608041 +v -1.807855 0.922175 3.277157 +v -1.827112 0.964049 3.000000 +v -1.827112 0.870607 3.225589 +v -1.807856 0.645018 3.391959 +v -1.807856 0.367861 3.277157 +v -1.807856 0.253059 3.000000 +v -1.807856 0.367861 2.722843 +v -1.807856 0.645018 2.608041 +v -1.827112 0.645018 2.680969 +v -1.827112 0.419429 2.774411 +v -1.850272 0.367220 2.722202 +v -1.850272 0.645018 2.607134 +v -1.827112 0.645018 3.319031 +v -1.827112 0.419429 3.225589 +v -1.827112 0.325987 3.000000 +v -1.827112 0.870607 2.774411 +v -1.850272 1.037884 3.000000 +v -1.850272 0.922816 2.722202 +v -1.929992 0.922816 2.722202 +v -1.929992 1.037884 3.000000 +v -1.850272 0.922816 3.277798 +v -1.850272 0.645018 3.392866 +v -1.850272 0.367220 3.277798 +v -1.850272 0.252152 3.000000 +v -1.929992 0.367220 2.722202 +v -1.929992 0.252152 3.000000 +v -2.043752 0.321683 3.000000 +v -2.043752 0.416385 2.771367 +v -1.929992 0.922816 3.277798 +v -1.929992 0.645018 3.392866 +v -1.929992 0.367220 3.277798 +v -1.929992 0.645018 2.607134 +v -2.043752 0.873651 2.771367 +v -2.043752 0.645018 2.676665 +v -2.121962 0.645018 2.774646 +v -2.121962 0.804367 2.840651 +v -2.043752 0.968353 3.000000 +v -2.043752 0.873651 3.228633 +v -2.043752 0.645018 3.323335 +v -2.043752 0.416385 3.228633 +v -2.121962 0.870372 3.000000 +v -2.179800 0.787147 2.857871 +v -2.179800 0.846019 3.000000 +v -2.121962 0.804367 3.159349 +v -2.121962 0.645018 3.225354 +v -2.121962 0.485669 3.159349 +v -2.121962 0.419664 3.000000 +v -2.121962 0.485669 2.840651 +v -2.179800 0.787147 3.142129 +v -2.179800 0.817735 3.000000 +v -2.179800 0.767148 3.122130 +v -2.179800 0.645018 3.201001 +v -2.179800 0.502889 3.142129 +v -2.179800 0.444017 3.000000 +v -2.179800 0.502889 2.857871 +v -2.179800 0.645018 2.798999 +v -2.179800 0.645018 2.827283 +v -2.179800 0.522888 2.877870 +v -2.139229 0.522888 2.877870 +v -2.139229 0.645018 2.827283 +v -2.179800 0.645018 3.172717 +v -2.179800 0.522888 3.122130 +v -2.179800 0.472301 3.000000 +v -2.179800 0.767148 2.877870 +v -2.139229 0.472301 3.000000 +v -2.139229 0.522888 3.122130 +v -2.139229 0.645018 3.172717 +v -2.139229 0.767148 3.122130 +v -2.139229 0.817735 3.000000 +v -2.139229 0.767148 2.877870 +v -1.416219 0.923800 2.721218 +v -1.416219 0.645018 2.605743 +v -1.415588 1.037581 3.000000 +v -1.416219 0.923800 3.278782 +v -1.416219 0.645018 3.394257 +v -1.416219 0.366236 3.278782 +v -1.415589 0.252454 3.000000 +v -1.416219 0.366236 2.721218 +v -1.161507 0.923800 2.721218 +v -1.161507 0.645018 2.605743 +v -1.161507 1.039275 3.000000 +v -1.161507 0.923800 3.278782 +v -1.161507 0.645018 3.394257 +v -1.161507 0.366236 3.278782 +v -1.161507 0.250761 3.000000 +v -1.161507 0.366236 2.721218 +v -1.379544 0.645018 2.605743 +v -1.379545 0.366236 2.721218 +v -1.379545 1.039275 3.000000 +v -1.379545 0.923800 3.278782 +v -1.382795 0.953877 3.308859 +v -1.382795 1.081811 3.000000 +v -1.319287 0.645018 2.590682 +v -1.221764 0.645018 2.590682 +v -1.221764 0.355586 2.710568 +v -1.319287 0.355586 2.710568 +v -1.158621 0.950501 2.694517 +v -1.158621 1.077036 3.000000 +v -1.379545 0.250761 3.000000 +v -1.319287 0.235700 3.000000 +v -1.316037 0.208225 3.000000 +v -1.316037 0.336159 2.691141 +v -1.221764 0.235700 3.000000 +v -1.158621 0.950501 3.305483 +v -1.158621 0.645018 3.432019 +v -1.379545 0.366236 3.278782 +v -1.379545 0.645018 3.394257 +v -1.382795 0.336159 3.308859 +v -1.382795 0.645018 3.436793 +v -1.221764 0.355586 3.289432 +v -1.319287 0.355586 3.289432 +v -1.221764 0.934450 2.710568 +v -1.221764 1.054336 3.000000 +v -1.224650 1.077036 3.000000 +v -1.224650 0.950501 2.694517 +v -1.382795 0.336159 2.691141 +v -1.382795 0.208225 3.000000 +v -1.221764 0.645018 3.409318 +v -1.319287 0.645018 3.409318 +v -1.158621 0.339535 3.305483 +v -1.158621 0.212999 3.000000 +v -1.319287 1.054336 3.000000 +v -1.319287 0.934450 2.710568 +v -1.316037 0.953877 2.691141 +v -1.316037 1.081811 3.000000 +v -1.221764 0.934450 3.289432 +v -1.319287 0.934450 3.289432 +v -1.224650 0.645018 3.432019 +v -1.224650 0.950501 3.305483 +v -1.316037 0.953877 3.308859 +v -1.316037 0.645018 3.436793 +v -1.158621 0.339535 2.694517 +v -1.158621 0.645018 2.567981 +v -1.379545 0.923800 2.721218 +v -1.382795 0.953877 2.691141 +v -1.224650 0.212999 3.000000 +v -1.224650 0.339535 3.305483 +v -1.316037 0.336159 3.308859 +v -1.224650 0.645018 2.567981 +v -1.224650 0.339535 2.694517 +v -1.382795 0.645018 2.563207 +v -1.316036 0.645018 2.563207 +vt 0.333771 0.122601 +vt 0.250827 0.123696 +vt 0.249913 0.062860 +vt 0.333162 0.061441 +vt 0.248762 0.002028 +vt 0.331770 0.000458 +vt 0.331178 0.489363 +vt 0.248762 0.487236 +vt 0.250204 0.426885 +vt 0.333040 0.428574 +vt 0.251228 0.366447 +vt 0.334273 0.367529 +vt 0.251779 0.305898 +vt 0.334946 0.306336 +vt 0.251870 0.245242 +vt 0.335158 0.245008 +vt 0.387778 0.000111 +vt 0.448672 0.000111 +vt 0.491729 0.043169 +vt 0.491729 0.104062 +vt 0.448671 0.147120 +vt 0.387778 0.147120 +vt 0.344720 0.104062 +vt 0.344720 0.043169 +vt 0.251510 0.184543 +vt 0.334843 0.183746 +vt 0.184792 0.411952 +vt 0.180019 0.475285 +vt 0.164389 0.467565 +vt 0.169068 0.411085 +vt 0.171376 0.116511 +vt 0.173907 0.173123 +vt 0.158223 0.172770 +vt 0.156306 0.116051 +vt 0.187710 0.116136 +vt 0.188188 0.173263 +vt 0.187862 0.290744 +vt 0.187045 0.350935 +vt 0.169556 0.350164 +vt 0.173074 0.290555 +vt 0.169093 0.410760 +vt 0.169539 0.350497 +vt 0.182936 0.002420 +vt 0.185636 0.059963 +vt 0.171429 0.060361 +vt 0.168682 0.009053 +vt 0.188834 0.231566 +vt 0.171901 0.231236 +vt 0.173902 0.173419 +vt 0.171377 0.116200 +vt 0.171433 0.060647 +vt 0.173086 0.290248 +vt 0.171893 0.231559 +vt 0.156248 0.230716 +vt 0.156867 0.289505 +vt 0.136903 0.289718 +vt 0.137407 0.231137 +vt 0.156897 0.060302 +vt 0.156891 0.004402 +vt 0.151894 0.409417 +vt 0.153421 0.349240 +vt 0.147572 0.472946 +vt 0.138952 0.173384 +vt 0.121938 0.230032 +vt 0.123479 0.172751 +vt 0.138214 0.116866 +vt 0.138770 0.061156 +vt 0.138353 0.003891 +vt 0.132267 0.409089 +vt 0.134072 0.349295 +vt 0.126815 0.471069 +vt 0.118159 0.348200 +vt 0.116549 0.407518 +vt 0.099353 0.406365 +vt 0.101957 0.346731 +vt 0.123291 0.116133 +vt 0.123243 0.060809 +vt 0.114079 0.464786 +vt 0.116522 0.407844 +vt 0.120912 0.288422 +vt 0.121921 0.230342 +vt 0.123493 0.172442 +vt 0.123281 0.116431 +vt 0.123249 0.060512 +vt 0.123844 0.009530 +vt 0.118183 0.347881 +vt 0.120892 0.288742 +vt 0.106188 0.229161 +vt 0.104711 0.287384 +vt 0.088322 0.287014 +vt 0.090113 0.228932 +vt 0.107837 0.171744 +vt 0.108130 0.115645 +vt 0.108841 0.060451 +vt 0.096873 0.470749 +vt 0.108910 0.003319 +vt 0.083013 0.405933 +vt 0.079907 0.469925 +vt 0.052378 0.462912 +vt 0.054935 0.410246 +vt 0.092029 0.171671 +vt 0.092656 0.115769 +vt 0.093106 0.060660 +vt 0.092149 0.003387 +vt 0.085408 0.346282 +vt 0.062313 0.290993 +vt 0.059914 0.339771 +vt 0.036698 0.331221 +vt 0.038369 0.297224 +vt 0.063245 0.281096 +vt 0.064719 0.233294 +vt 0.067796 0.166452 +vt 0.068312 0.120444 +vt 0.068137 0.056008 +vt 0.067350 0.008871 +vt 0.057308 0.399614 +vt 0.059278 0.350520 +vt 0.065403 0.223033 +vt 0.066980 0.175906 +vt 0.068752 0.110697 +vt 0.069122 0.065341 +vt 0.041387 0.239824 +vt 0.040360 0.273141 +vt 0.028428 0.270971 +vt 0.029344 0.241254 +vt 0.042861 0.215130 +vt 0.043960 0.182284 +vt 0.046882 0.103646 +vt 0.047140 0.072034 +vt 0.027306 0.453697 +vt 0.029088 0.416990 +vt 0.045633 0.159231 +vt 0.045993 0.127165 +vt 0.045231 0.049246 +vt 0.044683 0.016394 +vt 0.033874 0.391223 +vt 0.035247 0.357006 +vt 0.032082 0.183664 +vt 0.031102 0.212960 +vt 0.026194 0.210732 +vt 0.027037 0.185558 +vt 0.034115 0.157369 +vt 0.034435 0.128769 +vt 0.033381 0.047668 +vt 0.032891 0.018366 +vt 0.021636 0.388880 +vt 0.022861 0.358361 +vt 0.024556 0.328782 +vt 0.026047 0.298459 +vt 0.035522 0.101845 +vt 0.035752 0.073650 +vt 0.014195 0.451072 +vt 0.015784 0.418332 +vt 0.017591 0.360300 +vt 0.016539 0.386525 +vt 0.008490 0.386202 +vt 0.009543 0.359977 +vt 0.030749 0.099822 +vt 0.030947 0.075594 +vt 0.008745 0.448499 +vt 0.010111 0.420366 +vt 0.023445 0.268724 +vt 0.024232 0.243190 +vt 0.029279 0.155303 +vt 0.029555 0.130726 +vt 0.028369 0.045690 +vt 0.027949 0.020511 +vt 0.019510 0.326396 +vt 0.020791 0.300340 +vt 0.363665 0.147342 +vt 0.390456 0.147342 +vt 0.409400 0.166287 +vt 0.409400 0.193078 +vt 0.390456 0.212022 +vt 0.363664 0.212022 +vt 0.344720 0.193078 +vt 0.344720 0.166286 +vt 0.011513 0.326003 +vt 0.012794 0.299946 +vt 0.018468 0.210474 +vt 0.019311 0.185300 +vt 0.023313 0.099761 +vt 0.023511 0.075533 +vt 0.000111 0.448080 +vt 0.001477 0.419947 +vt 0.015608 0.268483 +vt 0.016395 0.242948 +vt 0.021737 0.155218 +vt 0.022012 0.130642 +vt 0.020642 0.045819 +vt 0.020221 0.020640 +vt 0.241179 0.291205 +vt 0.241048 0.352210 +vt 0.241424 0.231328 +vt 0.239656 0.172428 +vt 0.238302 0.114877 +vt 0.236112 0.057792 +vt 0.234041 0.000494 +vt 0.239378 0.414394 +vt 0.236869 0.477863 +vt 0.344164 0.183645 +vt 0.343181 0.122473 +vt 0.344498 0.244994 +vt 0.344304 0.306406 +vt 0.343563 0.367674 +vt 0.342352 0.428813 +vt 0.340421 0.489783 +vt 0.342493 0.061278 +vt 0.341044 0.000111 +vt 0.248540 0.352310 +vt 0.247025 0.414653 +vt 0.518660 0.274425 +vt 0.518660 0.335581 +vt 0.510669 0.338880 +vt 0.510669 0.271126 +vt 0.618935 0.542365 +vt 0.618935 0.562130 +vt 0.555443 0.562130 +vt 0.555443 0.542365 +vt 0.518975 0.265234 +vt 0.518996 0.204078 +vt 0.526092 0.201151 +vt 0.526069 0.268165 +vt 0.244474 0.478305 +vt 0.491952 0.065734 +vt 0.491951 0.002242 +vt 0.497138 0.000111 +vt 0.497138 0.067865 +vt 0.491951 0.562130 +vt 0.491951 0.542365 +vt 0.518929 0.399261 +vt 0.518950 0.338104 +vt 0.526046 0.335178 +vt 0.526022 0.402192 +vt 0.240901 0.000111 +vt 0.243075 0.057522 +vt 0.518660 0.409933 +vt 0.518660 0.471090 +vt 0.510668 0.474388 +vt 0.510668 0.406634 +vt 0.999889 0.542365 +vt 0.999889 0.562130 +vt 0.936397 0.562130 +vt 0.936397 0.542365 +vt 0.543764 0.202918 +vt 0.543742 0.266410 +vt 0.539451 0.268169 +vt 0.539474 0.201156 +vt 0.245271 0.114659 +vt 0.518659 0.003410 +vt 0.518659 0.064565 +vt 0.510668 0.067865 +vt 0.510667 0.000111 +vt 0.872904 0.562130 +vt 0.872904 0.542365 +vt 0.518882 0.533287 +vt 0.518903 0.472131 +vt 0.525999 0.469205 +vt 0.525976 0.536218 +vt 0.246721 0.172240 +vt 0.491952 0.268995 +vt 0.491952 0.205503 +vt 0.497139 0.203372 +vt 0.497139 0.271126 +vt 0.809412 0.562130 +vt 0.809412 0.542365 +vt 0.543718 0.336945 +vt 0.543696 0.400437 +vt 0.539405 0.402196 +vt 0.539428 0.335183 +vt 0.248540 0.231225 +vt 0.491952 0.404503 +vt 0.491952 0.341011 +vt 0.497139 0.338880 +vt 0.497138 0.406634 +vt 0.745919 0.562130 +vt 0.745919 0.542365 +vt 0.519021 0.131207 +vt 0.519042 0.070051 +vt 0.526138 0.067125 +vt 0.526115 0.134138 +vt 0.248518 0.291219 +vt 0.518660 0.206671 +vt 0.518660 0.267827 +vt 0.510668 0.203372 +vt 0.682427 0.562130 +vt 0.682427 0.542365 +vt 0.543671 0.470972 +vt 0.543649 0.534464 +vt 0.539358 0.536223 +vt 0.539381 0.469210 +vt 0.491951 0.540012 +vt 0.491952 0.476519 +vt 0.497138 0.474388 +vt 0.497138 0.542143 +vt 0.543810 0.068891 +vt 0.543788 0.132383 +vt 0.539497 0.134142 +vt 0.539520 0.067129 +vt 0.526161 0.000111 +vt 0.539543 0.000116 +vt 0.543833 0.001878 +vt 0.543811 0.065370 +vt 0.543695 0.403959 +vt 0.543672 0.467451 +vt 0.519044 0.064193 +vt 0.519065 0.003037 +vt 0.543741 0.269931 +vt 0.543719 0.333424 +vt 0.518906 0.466274 +vt 0.518927 0.405118 +vt 0.543787 0.135905 +vt 0.543765 0.199397 +vt 0.518952 0.332247 +vt 0.518973 0.271091 +vt 0.518998 0.198220 +vt 0.519019 0.137064 +vt 0.510668 0.135618 +vt 0.497138 0.135618 +vt 0.510668 0.542143 +vt 0.491952 0.472258 +vt 0.491952 0.408765 +vt 0.518660 0.138917 +vt 0.518660 0.200073 +vt 0.491952 0.336749 +vt 0.491952 0.273257 +vt 0.491952 0.201241 +vt 0.491952 0.137749 +vt 0.518660 0.071163 +vt 0.518660 0.132319 +vt 0.518660 0.477687 +vt 0.518660 0.538844 +vt 0.491952 0.133487 +vt 0.491952 0.069996 +vt 0.518660 0.342179 +vt 0.518660 0.403335 +vn 0.0019 -0.3851 -0.9229 +vn 0.0000 -0.9239 -0.3827 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 -0.3827 0.9239 +vn 0.0000 0.3827 0.9239 +vn 0.0000 0.9239 0.3827 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.9239 -0.3827 +vn 0.0019 0.3851 -0.9229 +vn -0.9726 -0.2149 -0.0890 +vn 0.9560 0.1123 0.2711 +vn -0.9726 0.0890 0.2149 +vn -0.9726 0.0890 -0.2149 +vn -0.9726 -0.0890 -0.2149 +vn -0.9726 -0.2149 0.0890 +vn -0.9726 0.2149 0.0890 +vn -0.9726 -0.0890 0.2149 +vn -0.9726 0.2149 -0.0890 +vn 0.9560 -0.2711 0.1123 +vn 0.9560 -0.1123 -0.2711 +vn 0.9560 0.1123 -0.2711 +vn 0.9560 0.2711 0.1123 +vn 0.9560 -0.1123 0.2711 +vn 0.9560 -0.2711 -0.1123 +vn 0.9560 0.2711 -0.1123 +vn -0.9615 0.2539 0.1052 +vn 0.0000 -0.3827 -0.9239 +vn 0.0000 0.3827 -0.9239 +vn 0.9469 -0.1230 -0.2970 +vn -0.9615 -0.1052 0.2539 +vn -0.9615 -0.2539 -0.1052 +vn -0.9615 0.2539 -0.1052 +vn -0.9615 0.1052 0.2539 +vn -0.9615 -0.2539 0.1052 +vn -0.9615 -0.1052 -0.2539 +vn -0.9615 0.1052 -0.2539 +vn 0.9469 0.1230 -0.2970 +vn 0.9469 0.2970 0.1230 +vn 0.9469 -0.1230 0.2970 +vn 0.9469 -0.2970 -0.1230 +vn 0.9469 0.2970 -0.1230 +vn 0.9469 0.1230 0.2970 +vn 0.9469 -0.2970 0.1230 +vn -0.4917 -0.8045 -0.3332 +vn -0.7567 0.2502 -0.6040 +vn -0.4917 0.8045 -0.3332 +vn -0.4917 0.3332 0.8045 +vn -0.4917 -0.8045 0.3332 +vn -0.4917 -0.3332 -0.8045 +vn -0.4917 0.3332 -0.8045 +vn -0.4917 0.8045 0.3332 +vn -0.4917 -0.3332 0.8045 +vn -0.3625 0.8610 -0.3567 +vn -0.7567 0.6040 0.2502 +vn -0.7567 -0.2502 0.6040 +vn -0.7567 -0.6040 -0.2502 +vn -0.7567 0.6040 -0.2502 +vn -0.7567 0.2502 0.6040 +vn -0.7567 -0.6040 0.2502 +vn -0.7567 -0.2502 -0.6040 +vn -1.0000 0.0000 0.0000 +vn -0.3625 0.3567 0.8610 +vn -0.3625 -0.8610 0.3567 +vn -0.3625 -0.3567 -0.8610 +vn -0.3625 0.3567 -0.8610 +vn -0.3625 0.8610 0.3567 +vn -0.3625 -0.3567 0.8610 +vn -0.3625 -0.8610 -0.3567 +vn -0.0059 0.3827 -0.9239 +vn -0.0030 0.9249 -0.3803 +vn -0.0030 0.9249 0.3803 +vn -0.0059 0.3827 0.9239 +vn -0.0059 -0.3827 0.9239 +vn -0.0030 -0.9249 0.3803 +vn -0.0030 -0.9249 -0.3803 +vn -0.0059 -0.3827 -0.9239 +vn 0.0169 0.3850 -0.9227 +vn 0.0341 0.9233 -0.3825 +vn 0.0341 0.9233 0.3825 +vn 0.0341 0.3825 0.9233 +vn 0.0341 -0.3825 0.9233 +vn 0.0341 -0.9233 0.3825 +vn 0.0341 -0.9233 -0.3825 +vn 0.0169 -0.3850 -0.9227 +vn -0.9966 -0.0761 -0.0315 +vn 0.9966 -0.0762 0.0316 +vn -0.0215 -0.9247 -0.3802 +vn 0.9919 0.1173 0.0486 +vn 0.9966 -0.0316 -0.0762 +vn -0.0215 -0.9247 0.3802 +vn -0.9966 0.0315 -0.0761 +vn -0.9907 -0.1260 0.0522 +vn -0.9966 0.0761 0.0315 +vn 0.9966 0.0762 -0.0316 +vn 0.9919 -0.1173 0.0486 +vn -0.9907 -0.0522 -0.1260 +vn -0.0215 0.9247 0.3802 +vn 0.9919 -0.0486 -0.1173 +vn 0.9966 0.0316 0.0762 +vn -0.0215 0.9247 -0.3802 +vn -0.9966 -0.0761 0.0315 +vn -0.9907 0.1260 -0.0522 +vn 0.9919 0.1173 -0.0486 +vn -0.9907 0.0522 0.1260 +vn -0.9907 0.1260 0.0522 +vn -0.9907 0.0522 -0.1260 +vn 0.9966 0.0762 0.0316 +vn -0.9907 -0.1260 -0.0522 +vn 0.9966 0.0316 -0.0762 +vn -0.9907 -0.0522 0.1260 +vn 0.9966 -0.0762 -0.0316 +vn 0.9966 -0.0316 0.0762 +vn 0.9919 0.0486 -0.1173 +vn -0.9966 -0.0315 0.0762 +vn 0.9919 -0.1173 -0.0486 +vn 0.9919 -0.0486 0.1173 +vn -0.9966 0.0315 0.0762 +vn -0.9966 0.0761 -0.0315 +vn 0.9919 0.0486 0.1173 +vn -0.9966 -0.0315 -0.0761 +s off +f 549/1039/316 550/1040/316 551/1041/316 552/1042/316 +f 552/1042/317 551/1041/317 553/1043/317 554/1044/317 +f 554/1045/318 553/1046/318 555/1047/318 556/1048/318 +f 556/1048/319 555/1047/319 557/1049/319 558/1050/319 +f 558/1050/320 557/1049/320 559/1051/320 560/1052/320 +f 560/1052/321 559/1051/321 561/1053/321 562/1054/321 +f 551/1055/322 550/1056/322 563/1057/322 561/1058/322 559/1059/322 557/1060/322 555/1061/322 553/1062/322 +f 562/1054/323 561/1053/323 563/1063/323 564/1064/323 +f 564/1064/324 563/1063/324 550/1040/324 549/1039/324 +f 565/1065/325 566/1066/325 567/1067/325 568/1068/325 +f 569/1069/326 570/1070/326 571/1071/326 572/1072/326 +f 573/1073/327 574/1074/327 570/1070/327 569/1069/327 +f 575/1075/328 576/1076/328 577/1077/328 578/1078/328 +f 576/1076/329 565/1065/329 568/1079/329 577/1080/329 +f 566/1081/330 579/1082/330 580/1083/330 567/1084/330 +f 574/1074/331 581/1085/331 582/1086/331 570/1087/331 +f 579/1082/332 573/1073/332 569/1088/332 580/1089/332 +f 581/1085/333 575/1075/333 578/1090/333 582/1091/333 +f 583/1092/323 584/1093/323 585/1094/323 586/1095/323 +f 567/1084/334 580/1083/334 587/1096/334 588/1097/334 +f 577/1080/335 568/1079/335 589/1098/335 590/1099/335 +f 578/1078/336 577/1077/336 590/1099/336 584/1093/336 +f 570/1087/337 582/1086/337 583/1092/337 571/1071/337 +f 580/1089/338 569/1088/338 572/1072/338 587/1096/338 +f 568/1068/339 567/1067/339 588/1100/339 589/1098/339 +f 582/1091/340 578/1090/340 584/1093/340 583/1092/340 +f 591/1101/341 586/1095/341 592/1102/341 593/1103/341 +f 572/1072/320 571/1071/320 591/1101/320 594/1104/320 +f 588/1097/318 587/1096/318 595/1105/318 596/1106/318 +f 590/1099/342 589/1098/342 597/1107/342 598/1108/342 +f 584/1093/343 590/1099/343 598/1108/343 585/1094/343 +f 571/1071/321 583/1092/321 586/1095/321 591/1101/321 +f 587/1096/319 572/1072/319 594/1104/319 595/1105/319 +f 589/1098/317 588/1100/317 596/1109/317 597/1107/317 +f 599/1110/344 600/1111/344 601/1112/344 602/1113/344 +f 595/1105/345 594/1104/345 603/1114/345 604/1115/345 +f 597/1107/346 596/1109/346 605/1116/346 600/1117/346 +f 586/1095/347 585/1094/347 606/1118/347 592/1119/347 +f 594/1104/348 591/1101/348 593/1120/348 603/1121/348 +f 596/1106/349 595/1105/349 604/1122/349 605/1123/349 +f 598/1108/350 597/1107/350 600/1111/350 599/1110/350 +f 585/1094/351 598/1108/351 599/1124/351 606/1125/351 +f 607/1126/323 608/1127/323 609/1128/323 610/1129/323 +f 606/1125/352 599/1124/352 602/1113/352 608/1127/352 +f 593/1103/353 592/1102/353 607/1126/353 611/1130/353 +f 604/1115/354 603/1114/354 612/1131/354 613/1132/354 +f 600/1117/355 605/1116/355 614/1133/355 601/1112/355 +f 592/1119/356 606/1118/356 608/1127/356 607/1126/356 +f 603/1121/357 593/1120/357 611/1130/357 612/1131/357 +f 605/1123/358 604/1122/358 613/1132/358 614/1134/358 +f 615/1135/359 616/1136/359 617/1137/359 618/1138/359 +f 612/1131/320 611/1130/320 619/1139/320 620/1140/320 +f 614/1134/318 613/1132/318 621/1141/318 616/1142/318 +f 602/1113/342 601/1112/342 615/1135/342 622/1143/342 +f 608/1127/343 602/1113/343 622/1143/343 609/1128/343 +f 611/1130/321 607/1126/321 610/1129/321 619/1139/321 +f 613/1132/319 612/1131/319 620/1140/319 621/1141/319 +f 601/1112/317 614/1133/317 616/1136/317 615/1135/317 +f 623/1144/360 624/1145/360 625/1146/360 626/1147/360 +f 610/1129/361 609/1128/361 623/1148/361 627/1149/361 +f 620/1140/362 619/1139/362 628/1150/362 629/1151/362 +f 616/1142/363 621/1141/363 630/1152/363 617/1153/363 +f 622/1143/364 615/1135/364 618/1154/364 624/1155/364 +f 609/1128/365 622/1143/365 624/1145/365 623/1144/365 +f 619/1139/366 610/1129/366 627/1156/366 628/1157/366 +f 621/1141/367 620/1140/367 629/1158/367 630/1159/367 +f 631/1160/368 626/1161/368 632/1162/368 633/1163/368 +f 628/1157/369 627/1156/369 631/1164/369 634/1165/369 +f 630/1159/370 629/1158/370 635/1166/370 636/1167/370 +f 618/1138/371 617/1137/371 637/1168/371 638/1169/371 +f 627/1149/372 623/1148/372 626/1161/372 631/1160/372 +f 629/1151/373 628/1150/373 634/1170/373 635/1171/373 +f 617/1153/374 630/1152/374 636/1172/374 637/1173/374 +f 624/1155/375 618/1154/375 638/1174/375 625/1175/375 +f 639/1176/376 633/1177/376 640/1178/376 641/1179/376 +f 635/1171/377 634/1170/377 639/1180/377 642/1181/377 +f 637/1173/378 636/1172/378 643/1182/378 644/1183/378 +f 625/1175/379 638/1174/379 645/1184/379 646/1185/379 +f 626/1147/380 625/1146/380 646/1186/380 632/1187/380 +f 634/1165/381 631/1164/381 633/1177/381 639/1176/381 +f 636/1167/382 635/1166/382 642/1188/382 643/1189/382 +f 638/1169/383 637/1168/383 644/1190/383 645/1191/383 +f 647/1192/320 648/1193/320 649/1194/320 650/1195/320 +f 643/1189/376 642/1188/376 651/1196/376 652/1197/376 +f 645/1191/376 644/1190/376 653/1198/376 648/1199/376 +f 633/1163/376 632/1162/376 654/1200/376 640/1201/376 +f 642/1181/376 639/1180/376 641/1202/376 651/1203/376 +f 644/1183/376 643/1182/376 652/1204/376 653/1205/376 +f 646/1185/376 645/1184/376 648/1193/376 647/1192/376 +f 632/1187/376 646/1186/376 647/1206/376 654/1207/376 +f 650/1208/376 649/1209/376 655/1210/376 656/1211/376 657/1212/376 658/1213/376 659/1214/376 660/1215/376 +f 654/1207/319 647/1206/319 650/1216/319 660/1217/319 +f 641/1179/317 640/1178/317 659/1218/317 658/1219/317 +f 652/1197/343 651/1196/343 657/1220/343 656/1221/343 +f 648/1199/321 653/1198/321 655/1222/321 649/1223/321 +f 640/1201/318 654/1200/318 660/1224/318 659/1225/318 +f 651/1203/342 641/1202/342 658/1226/342 657/1227/342 +f 653/1205/323 652/1204/323 656/1228/323 655/1229/323 +f 575/1075/384 661/1230/384 662/1231/384 576/1076/384 +f 581/1085/385 663/1232/385 661/1230/385 575/1075/385 +f 574/1074/386 664/1233/386 663/1232/386 581/1085/386 +f 573/1073/387 665/1234/387 664/1233/387 574/1074/387 +f 579/1082/388 666/1235/388 665/1234/388 573/1073/388 +f 566/1081/389 667/1236/389 666/1235/389 579/1082/389 +f 565/1065/390 668/1237/390 667/1238/390 566/1066/390 +f 576/1076/391 662/1231/391 668/1237/391 565/1065/391 +f 669/1239/392 564/1064/392 549/1039/392 670/1240/392 +f 671/1241/393 562/1054/393 564/1064/393 669/1239/393 +f 672/1242/394 560/1052/394 562/1054/394 671/1241/394 +f 673/1243/395 558/1050/395 560/1052/395 672/1242/395 +f 674/1244/396 556/1048/396 558/1050/396 673/1243/396 +f 675/1245/397 554/1045/397 556/1048/397 674/1244/397 +f 676/1246/398 552/1042/398 554/1044/398 675/1247/398 +f 670/1240/399 549/1039/399 552/1042/399 676/1246/399 +f 662/1231/342 677/1248/342 678/1249/342 668/1237/342 +f 679/1250/400 680/1251/400 681/1252/400 682/1253/400 +f 683/1254/342 684/1255/342 685/1256/342 686/1257/342 +f 671/1258/401 669/1259/401 687/1260/401 688/1261/401 +f 668/1237/402 678/1249/402 689/1262/402 667/1238/402 +f 686/1263/403 690/1264/403 691/1265/403 692/1266/403 +f 686/1257/317 685/1256/317 693/1267/317 690/1268/317 +f 673/1269/404 672/1270/404 694/1271/404 695/1272/404 +f 667/1236/405 689/1273/405 696/1274/405 666/1235/405 +f 697/1275/406 696/1276/406 698/1277/406 699/1278/406 +f 690/1279/318 693/1280/318 700/1281/318 701/1282/318 +f 702/1283/407 703/1284/407 704/1285/407 705/1286/407 +f 666/1235/319 696/1274/319 697/1287/319 665/1234/319 +f 689/1288/408 678/1289/408 706/1290/408 707/1291/408 +f 701/1282/319 700/1281/319 708/1292/319 709/1293/319 +f 675/1294/409 674/1295/409 710/1296/409 711/1297/409 +f 665/1234/320 697/1287/320 680/1298/320 664/1233/320 +f 712/1299/410 713/1300/410 714/1301/410 715/1302/410 +f 709/1293/320 708/1292/320 716/1303/320 717/1304/320 +f 716/1305/411 708/1306/411 718/1307/411 719/1308/411 +f 664/1233/412 680/1298/412 679/1309/412 663/1232/412 +f 709/1310/413 717/1311/413 720/1312/413 721/1313/413 +f 717/1304/321 716/1303/321 703/1314/321 712/1315/321 +f 670/1316/414 676/1317/414 722/1318/414 723/1319/414 +f 663/1232/415 679/1309/415 724/1320/415 661/1230/415 +f 724/1321/416 679/1322/416 682/1253/416 725/1323/416 +f 712/1315/323 703/1314/323 702/1324/323 713/1325/323 +f 700/1326/417 693/1327/417 726/1328/417 727/1329/417 +f 661/1230/343 724/1320/343 677/1248/343 662/1231/343 +f 690/1330/418 701/1331/418 728/1332/418 691/1333/418 +f 713/1325/343 702/1324/343 684/1255/343 683/1254/343 +f 685/1334/419 684/1335/419 729/1336/419 730/1337/419 +f 729/1336/342 723/1319/342 722/1318/342 730/1337/342 +f 730/1337/317 722/1318/317 711/1338/317 726/1339/317 +f 726/1328/318 711/1297/318 710/1296/318 727/1329/318 +f 727/1329/319 710/1296/319 695/1272/319 718/1307/319 +f 718/1307/320 695/1272/320 694/1271/320 719/1308/320 +f 719/1308/321 694/1271/321 688/1261/321 704/1285/321 +f 704/1285/323 688/1261/323 687/1260/323 705/1286/323 +f 705/1286/343 687/1260/343 723/1319/343 729/1336/343 +f 693/1340/420 685/1341/420 730/1337/420 726/1339/420 +f 708/1342/421 700/1343/421 727/1329/421 718/1307/421 +f 676/1344/422 675/1345/422 711/1338/422 722/1318/422 +f 703/1346/423 716/1347/423 719/1308/423 704/1285/423 +f 674/1348/424 673/1349/424 695/1272/424 710/1296/424 +f 684/1350/425 702/1351/425 705/1286/425 729/1336/425 +f 672/1352/426 671/1353/426 688/1261/426 694/1271/426 +f 669/1354/427 670/1355/427 723/1319/427 687/1260/427 +f 731/1356/342 732/1357/342 692/1266/342 706/1290/342 +f 706/1290/317 692/1266/317 691/1265/317 707/1291/317 +f 707/1358/318 691/1333/318 728/1332/318 698/1277/318 +f 698/1277/319 728/1332/319 721/1313/319 699/1278/319 +f 699/1278/320 721/1313/320 720/1312/320 681/1252/320 +f 681/1252/321 720/1312/321 715/1302/321 682/1253/321 +f 682/1253/323 715/1302/323 714/1301/323 725/1323/323 +f 725/1323/343 714/1301/343 732/1357/343 731/1356/343 +f 701/1359/428 709/1360/428 721/1313/428 728/1332/428 +f 677/1361/429 724/1362/429 725/1323/429 731/1356/429 +f 717/1363/430 712/1364/430 715/1302/430 720/1312/430 +f 713/1365/431 683/1366/431 732/1357/431 714/1301/431 +f 678/1367/432 677/1368/432 731/1356/432 706/1290/432 +f 696/1369/433 689/1370/433 707/1358/433 698/1277/433 +f 683/1371/434 686/1372/434 692/1266/434 732/1357/434 +f 680/1373/435 697/1374/435 699/1278/435 681/1252/435 +o Grip_Cube.001 +v -1.325666 -0.019640 3.170554 +v -1.325666 0.137146 3.170554 +v -1.472478 0.148884 3.071087 +v -1.472478 -0.007902 3.071087 +v -1.325666 -0.019640 2.829446 +v -1.325666 0.137146 2.829446 +v -1.062875 0.137146 2.829446 +v -1.062875 -0.019640 2.829446 +v -1.130714 -0.142396 2.829446 +v -0.914155 -0.020276 2.892811 +v -0.981994 -0.143031 2.892811 +v -1.062875 -0.019640 3.170554 +v -1.062875 0.137146 3.170554 +v -0.914155 0.136510 2.892811 +v -1.259746 -0.728734 2.829446 +v -1.147611 -0.221161 2.829446 +v -0.998891 -0.221796 2.892811 +v -1.111026 -0.729370 2.892811 +v -1.346664 -0.179545 3.170554 +v -1.130714 -0.142396 3.170554 +v -1.346664 -0.179545 2.829446 +v -1.447785 -0.735647 3.170554 +v -1.363562 -0.258310 3.170554 +v -1.510373 -0.246572 3.071087 +v -1.594597 -0.723909 3.071087 +v -0.981994 -0.143031 3.107189 +v -0.914155 -0.020276 3.107189 +v -1.363562 -0.258310 2.829446 +v -1.447785 -0.735647 2.829446 +v -1.594597 -0.723909 2.928913 +v -1.510373 -0.246572 2.928913 +v -1.147611 -0.221161 3.170554 +v -1.259746 -0.728734 3.170554 +v -1.483874 -0.749924 3.170554 +v -1.219691 -0.868011 3.170554 +v -1.493475 -0.167807 3.071087 +v -1.483874 -0.751872 2.829446 +v -1.219691 -0.868011 2.829446 +v -0.914155 0.136510 3.107189 +v -1.472478 -0.007902 2.928913 +v -1.472478 0.148884 2.928913 +v -1.493475 -0.167807 2.928913 +v -1.630686 -0.740134 2.928913 +v -1.630686 -0.740134 3.071087 +v -0.998891 -0.221796 3.107189 +v -1.111026 -0.729370 3.107189 +v -1.100054 -0.868647 3.107189 +v -1.100054 -0.868647 2.892811 +vt 0.495816 0.528592 +vt 0.444632 0.528911 +vt 0.440297 0.471397 +vt 0.491177 0.470932 +vt 0.282573 0.528234 +vt 0.333716 0.528699 +vt 0.333553 0.614149 +vt 0.282755 0.613843 +vt 0.242508 0.592317 +vt 0.281795 0.666212 +vt 0.241263 0.645226 +vt 0.495309 0.614379 +vt 0.444469 0.614360 +vt 0.332850 0.666779 +vt 0.047162 0.550460 +vt 0.216648 0.586778 +vt 0.215631 0.639752 +vt 0.048294 0.604938 +vt 0.548343 0.521923 +vt 0.535717 0.592975 +vt 0.230173 0.521390 +vt 0.738670 0.486066 +vt 0.574234 0.516502 +vt 0.568535 0.459054 +vt 0.724885 0.427074 +vt 0.536722 0.646015 +vt 0.495988 0.666825 +vt 0.204360 0.515900 +vt 0.041140 0.485235 +vt 0.054329 0.426535 +vt 0.210200 0.458565 +vt 0.561660 0.587527 +vt 0.731929 0.551750 +vt 0.744574 0.473715 +vt 0.779174 0.567328 +vt 0.542981 0.464301 +vt 0.334470 0.132827 +vt 0.334470 0.038990 +vt 0.445386 0.038990 +vt 0.445387 0.133084 +vt 0.000088 0.565542 +vt 0.034734 0.473006 +vt 0.444846 0.667087 +vt 0.287393 0.470661 +vt 0.338208 0.471269 +vt 0.412478 0.429978 +vt 0.412380 0.480959 +vt 0.366151 0.480870 +vt 0.366248 0.429890 +vt 0.366348 0.377448 +vt 0.412578 0.377536 +vt 0.366398 0.351254 +vt 0.412628 0.351342 +vt 0.366699 0.193644 +vt 0.412928 0.193732 +vt 0.366723 0.180778 +vt 0.412953 0.180866 +vt 0.235698 0.463880 +vt 0.047562 0.415228 +vt 0.731595 0.415639 +vt 0.353968 0.713528 +vt 0.354065 0.662547 +vt 0.423773 0.662680 +vt 0.423676 0.713661 +vt 0.423589 0.759266 +vt 0.353881 0.759133 +vt 0.423539 0.785460 +vt 0.353831 0.785327 +vt 0.423216 0.954484 +vt 0.353508 0.954351 +vt 0.423129 0.999912 +vt 0.353422 0.999779 +vt 0.776716 0.612484 +vt 0.730434 0.606501 +vt 0.562445 0.640646 +vt 0.355074 0.000088 +vt 0.424782 0.000088 +vt 0.002168 0.610517 +vn -0.5609 0.0000 0.8279 +vn 0.0000 0.0000 -1.0000 +vn 0.0009 0.0005 -1.0000 +vn 0.3824 -0.2113 -0.8995 +vn 0.0000 0.0000 1.0000 +vn -0.0010 0.0003 1.0000 +vn 0.3920 0.0000 -0.9200 +vn 0.3915 0.0009 -0.9202 +vn 0.0005 1.0000 -0.0009 +vn 0.0000 1.0000 0.0000 +vn 0.0003 1.0000 -0.0010 +vn 0.3902 -0.0862 -0.9167 +vn 0.3907 -0.0861 -0.9165 +vn 0.3901 -0.0868 -0.9167 +vn -0.5529 0.0976 0.8275 +vn 0.3824 -0.2113 0.8995 +vn -0.5529 0.0976 -0.8275 +vn 0.0005 -0.0003 1.0000 +vn -0.0005 -0.0002 -1.0000 +vn -0.5505 0.1181 0.8264 +vn 0.0003 0.0005 1.0000 +vn 0.0000 -0.0006 -1.0000 +vn -0.4053 -0.9142 0.0026 +vn 0.3917 -0.0010 0.9201 +vn 0.3920 0.0000 0.9200 +vn -0.5609 0.0000 -0.8279 +vn -1.0000 0.0000 0.0000 +vn -0.9915 0.1302 0.0000 +vn -0.9778 0.2098 0.0000 +vn -0.9848 0.1738 0.0000 +vn -0.4100 0.9121 0.0000 +vn -0.5554 0.0729 0.8284 +vn -0.0731 -0.9973 0.0040 +vn 0.0797 0.9968 0.0000 +vn -0.5554 0.0729 -0.8284 +vn -0.3339 0.7427 -0.5805 +vn -0.5505 0.1181 -0.8264 +vn -0.3228 0.7637 0.5590 +vn 1.0000 0.0000 0.0000 +vn 0.8752 -0.4837 -0.0000 +vn 0.9778 -0.2098 -0.0000 +vn 0.9777 -0.2102 0.0004 +vn 0.9779 -0.2092 -0.0001 +vn 0.9765 -0.2157 0.0006 +vn 0.9765 -0.2154 0.0004 +vn 0.9765 -0.2157 0.0000 +vn 0.9969 0.0785 0.0000 +vn 0.4260 0.0780 0.9013 +vn 0.3903 -0.0837 0.9169 +vn 0.3899 -0.0842 0.9170 +vn 0.3907 -0.0841 0.9167 +vn -0.0053 -1.0000 0.0000 +vn 0.4260 0.0780 -0.9013 +vn 0.3903 -0.0832 -0.9169 +vn 0.3903 -0.0837 -0.9169 +vn 0.3898 -0.0838 -0.9171 +vn 0.0035 1.0000 -0.0006 +vn 0.0053 1.0000 -0.0001 +vn 0.0043 1.0000 0.0000 +vn 0.3898 -0.0858 0.9169 +vn 0.3902 -0.0862 0.9167 +vn 0.3906 -0.0858 0.9166 +s off +f 733/1375/436 734/1376/436 735/1377/436 736/1378/436 +f 737/1379/437 738/1380/437 739/1381/438 740/1382/437 +f 741/1383/439 740/1382/439 742/1384/439 743/1385/439 +f 744/1386/440 745/1387/441 734/1376/440 733/1375/440 +f 740/1382/442 739/1381/443 746/1388/442 742/1384/442 +f 739/1381/444 738/1380/445 734/1376/445 745/1387/446 +f 747/1389/447 748/1390/448 749/1391/449 750/1392/447 +f 744/1386/440 733/1375/440 751/1393/440 752/1394/440 +f 737/1379/437 740/1382/437 741/1383/437 753/1395/437 +f 754/1396/450 755/1397/450 756/1398/450 757/1399/450 +f 744/1386/451 752/1394/451 758/1400/451 759/1401/451 +f 760/1402/452 761/1403/452 762/1404/452 763/1405/452 +f 752/1394/440 751/1393/440 755/1397/440 764/1406/453 +f 753/1395/437 741/1383/437 748/1390/454 760/1402/437 +f 765/1407/440 754/1396/440 766/1408/440 767/1409/440 +f 755/1397/455 751/1393/455 768/1410/455 756/1398/455 +f 764/1406/456 755/1397/440 754/1396/440 765/1407/440 +f 760/1402/437 748/1390/457 747/1389/437 761/1403/437 +f 769/1411/458 770/1412/458 767/1413/458 766/1414/458 +f 761/1403/437 747/1389/437 770/1415/437 769/1416/437 +f 745/1387/459 744/1386/460 759/1401/460 771/1417/460 +f 738/1380/461 737/1379/461 772/1418/461 773/1419/461 +f 736/1420/462 735/1421/462 773/1422/462 772/1423/462 +f 736/1420/463 772/1423/463 774/1424/463 768/1425/463 +f 768/1425/464 774/1424/464 763/1426/464 756/1427/464 +f 756/1427/465 763/1426/465 762/1428/465 757/1429/465 +f 757/1429/466 762/1428/466 775/1430/466 776/1431/466 +f 751/1393/467 733/1375/467 736/1378/467 768/1410/467 +f 769/1411/468 766/1414/468 776/1431/468 775/1430/468 +f 734/1376/469 738/1380/469 773/1422/469 735/1421/469 +f 737/1379/470 753/1395/470 774/1432/470 772/1418/470 +f 761/1403/471 769/1416/471 775/1433/471 762/1404/471 +f 753/1395/472 760/1402/472 763/1405/472 774/1432/472 +f 766/1408/473 754/1396/473 757/1399/473 776/1434/473 +f 742/1435/474 746/1436/474 771/1437/474 759/1438/474 +f 742/1435/475 759/1438/475 758/1439/475 743/1440/475 +f 743/1440/476 758/1439/476 777/1441/477 749/1442/478 +f 749/1442/479 777/1441/480 778/1443/481 750/1444/481 +f 750/1444/482 778/1443/482 779/1445/482 780/1446/482 +f 765/1407/483 767/1409/483 779/1447/483 778/1448/483 +f 752/1394/484 764/1406/485 777/1449/486 758/1400/484 +f 767/1413/487 770/1412/487 780/1450/487 779/1451/487 +f 770/1415/488 747/1389/488 750/1392/488 780/1452/488 +f 748/1390/489 741/1383/490 743/1385/490 749/1391/491 +f 739/1381/492 745/1387/493 771/1437/494 746/1436/494 +f 764/1406/495 765/1407/496 778/1448/496 777/1449/497 +o HandleComfortThing_Cube.006 +v -1.508359 -0.214874 3.108693 +v -1.504838 -0.215309 2.893183 +v -1.564296 -0.274102 2.910781 +v -1.567402 -0.273718 3.089973 +v -1.348484 -0.928894 2.825721 +v -1.331423 -0.813343 2.825721 +v -1.263873 -0.855085 2.817547 +v -1.262042 -0.949106 2.817547 +v -1.263873 -0.855085 3.182453 +v -1.207149 -0.865197 3.174081 +v -1.207149 -0.865197 2.825919 +v -1.570189 -0.877055 3.143835 +v -1.435938 -0.379825 3.163084 +v -1.622805 -0.828855 3.096503 +v -1.262042 -0.949106 3.182453 +v -1.348484 -0.928894 3.174279 +v -1.435938 -0.379825 2.836916 +v -1.112852 -0.829663 3.130793 +v -1.112852 -0.829663 2.869207 +v -1.205319 -0.959218 2.825919 +v -1.205319 -0.959218 3.174081 +v -1.111021 -0.923684 3.130793 +v -1.072210 -0.848373 3.087270 +v -1.073111 -0.802094 3.087270 +v -1.111021 -0.923684 2.869207 +v -1.072210 -0.848373 2.912730 +v -1.073111 -0.802094 2.912730 +v -1.681696 -0.766817 2.927831 +v -1.689936 -0.702839 2.940395 +v -1.640119 -0.414721 2.927821 +v -1.619700 -0.829239 2.904046 +v -1.684682 -0.766448 3.071709 +v -1.643105 -0.414353 3.071698 +v -1.666879 -0.498637 2.940385 +v -1.669865 -0.498268 3.058900 +v -1.692922 -0.702470 3.058910 +v -1.690559 -0.607421 3.054481 +v -1.687573 -0.607789 2.944693 +v -1.331423 -0.813343 3.174279 +v -1.416650 -0.767127 2.821697 +v -1.416650 -0.767127 3.178303 +v -1.469005 -0.685482 2.828092 +v -1.469005 -0.685482 3.171908 +v -1.542909 -0.883434 2.838818 +v -1.516768 -0.889546 2.825611 +v -1.516768 -0.889546 3.174389 +v -1.542909 -0.883434 3.161182 +v -1.432626 -0.909220 2.821697 +v -1.432626 -0.909220 3.178303 +v -1.484962 -0.656299 2.841112 +v -1.570189 -0.877055 2.856165 +v -1.484962 -0.656299 3.158888 +vt 0.766671 0.048954 +vt 0.764142 0.169699 +vt 0.717619 0.158385 +vt 0.719660 0.057986 +vt 0.042513 0.365144 +vt 0.100642 0.395217 +vt 0.066109 0.423644 +vt 0.015965 0.407457 +vt 0.569776 0.563304 +vt 0.569776 0.767768 +vt 0.537491 0.763077 +vt 0.537491 0.567995 +vt 0.727808 0.563002 +vt 0.754866 0.275487 +vt 0.833210 0.204917 +vt 0.773959 0.549883 +vt 0.212049 0.200035 +vt 0.162307 0.204615 +vt 0.162307 0.000151 +vt 0.212049 0.004731 +vt 0.898905 0.574157 +vt 0.998844 0.605685 +vt 0.999849 0.726451 +vt 0.898904 0.756916 +vt 0.481028 0.738822 +vt 0.481028 0.592250 +vt 0.050295 0.452178 +vt 0.000151 0.435991 +vt 0.567644 0.488457 +vt 0.547535 0.537161 +vt 0.515547 0.530752 +vt 0.535656 0.482048 +vt 0.130023 0.199924 +vt 0.130023 0.004842 +vt 0.488806 0.442281 +vt 0.468697 0.490984 +vt 0.453927 0.439700 +vt 0.463825 0.415727 +vt 0.050295 0.513631 +vt 0.000151 0.497444 +vt 0.073559 0.175669 +vt 0.073559 0.029097 +vt 0.026087 0.151282 +vt 0.000151 0.151282 +vt 0.000151 0.053484 +vt 0.026087 0.053484 +vt 0.453927 0.714435 +vt 0.453927 0.616637 +vt 0.054374 0.549860 +vt 0.029692 0.541893 +vt 0.434697 0.361827 +vt 0.198019 0.204917 +vt 0.234409 0.210548 +vt 0.375642 0.293880 +vt 0.378192 0.156148 +vt 0.379610 0.048306 +vt 0.428848 0.062216 +vt 0.427492 0.142839 +vt 0.453625 0.405806 +vt 0.152314 0.227692 +vt 0.854471 0.247808 +vt 0.821023 0.529815 +vt 0.629927 0.065835 +vt 0.628389 0.146455 +vt 0.579211 0.138286 +vt 0.580423 0.071870 +vt 0.868174 0.336835 +vt 0.840364 0.498449 +vt 0.464907 0.069804 +vt 0.463716 0.136221 +vt 0.518136 0.073107 +vt 0.517022 0.134636 +vt 0.284278 0.229447 +vt 0.337590 0.261673 +vt 0.868174 0.386706 +vt 0.858265 0.448212 +vt 0.614269 0.567885 +vt 0.614269 0.763188 +vt 0.668593 0.565630 +vt 0.668593 0.765443 +vt 0.722938 0.569213 +vt 0.722938 0.761860 +vt 0.323927 0.192696 +vt 0.308885 0.200096 +vt 0.308884 0.004670 +vt 0.323927 0.012070 +vt 0.260467 0.202289 +vt 0.260466 0.002476 +vt 0.611663 0.480525 +vt 0.596973 0.544303 +vt 0.665618 0.473822 +vt 0.644946 0.551228 +vt 0.709766 0.441928 +vt 0.692917 0.558152 +vt 0.103015 0.268876 +vt 0.213001 0.340681 +vt 0.193552 0.345402 +vt 0.094041 0.283036 +vt 0.140668 0.358420 +vt 0.068278 0.324089 +vt 0.349630 0.418726 +vt 0.112923 0.253297 +vt 0.339625 0.182976 +vt 0.339625 0.021790 +vt 0.741574 0.576509 +vt 0.741574 0.754564 +vt 0.725950 0.430156 +vt 0.709519 0.560474 +vn -0.7044 0.7097 -0.0133 +vn -0.1026 0.0075 -0.9947 +vn 0.1755 0.9845 0.0000 +vn -0.5269 0.0940 0.8447 +vn -0.2277 -0.9737 0.0000 +vn 0.9190 0.3942 0.0057 +vn -0.3526 0.9358 0.0000 +vn 0.1465 0.0029 -0.9892 +vn 0.1465 0.0029 0.9892 +vn -0.1755 -0.9845 0.0000 +vn 0.7339 0.0143 0.6791 +vn 0.4147 0.0081 -0.9099 +vn 0.4147 0.0081 0.9099 +vn 0.3526 -0.9358 0.0000 +vn 0.9998 0.0195 0.0000 +vn 0.8889 -0.4581 0.0000 +vn -0.5700 0.8216 0.0000 +vn 0.7339 0.0143 -0.6791 +vn -0.3667 0.0433 -0.9293 +vn -0.7097 -0.7044 -0.0113 +vn -0.3211 0.0435 -0.9461 +vn -0.3371 0.0447 0.9404 +vn -0.9525 0.3038 -0.0225 +vn -0.3829 0.0452 0.9227 +vn -0.8802 0.4743 -0.0177 +vn -0.9916 -0.1277 -0.0222 +vn -0.9822 0.1862 -0.0263 +vn -0.9993 0.0248 -0.0262 +vn -0.5482 0.0619 -0.8340 +vn -0.5564 0.0629 0.8286 +vn 0.5257 0.8507 0.0000 +vn 0.4767 0.8791 0.0000 +vn 0.8418 0.5398 0.0000 +vn -0.1026 0.0075 0.9947 +vn 0.0452 -0.0058 0.9990 +vn -0.0616 0.0185 0.9979 +vn -0.4504 0.1202 -0.8847 +vn -0.0616 0.0185 -0.9979 +vn 0.0452 -0.0058 -0.9990 +vn -0.5492 0.1006 -0.8296 +vn -0.3469 0.0702 -0.9353 +vn -0.6850 -0.7286 -0.0038 +vn 0.8774 0.4798 0.0000 +vn 0.9846 -0.1746 0.0000 +vn -0.4504 0.1202 0.8847 +vn -0.3469 0.0702 0.9353 +s off +f 781/1453/498 782/1454/498 783/1455/498 784/1456/498 +f 785/1457/499 786/1458/499 787/1459/499 788/1460/499 +f 787/1461/500 789/1462/500 790/1463/500 791/1464/500 +f 792/1465/501 793/1466/501 781/1467/501 794/1468/501 +f 785/1469/502 788/1470/502 795/1471/502 796/1472/502 +f 797/1473/503 782/1474/503 781/1475/503 793/1476/503 +f 791/1464/504 790/1463/504 798/1477/504 799/1478/504 +f 788/1460/505 787/1459/505 791/1479/505 800/1480/505 +f 789/1481/506 795/1482/506 801/1483/506 790/1484/506 +f 795/1471/507 788/1470/507 800/1485/507 801/1486/507 +f 798/1487/508 802/1488/508 803/1489/508 804/1490/508 +f 800/1480/509 791/1479/509 799/1491/509 805/1492/509 +f 790/1484/510 801/1483/510 802/1488/510 798/1487/510 +f 801/1486/511 800/1485/511 805/1493/511 802/1494/511 +f 806/1495/512 807/1496/512 804/1497/512 803/1498/512 +f 802/1494/513 805/1493/513 806/1495/513 803/1498/513 +f 799/1478/514 798/1477/514 804/1499/514 807/1500/514 +f 805/1492/515 799/1491/515 807/1501/515 806/1502/515 +f 783/1503/516 808/1504/516 809/1505/516 810/1506/516 +f 811/1507/517 794/1508/517 812/1509/517 808/1510/517 +f 782/1511/518 811/1512/518 808/1504/518 783/1503/518 +f 794/1468/519 781/1467/519 784/1513/519 812/1514/519 +f 813/1515/520 810/1516/520 814/1517/520 815/1518/520 +f 812/1514/521 784/1513/521 813/1519/521 816/1520/521 +f 784/1456/522 783/1455/522 810/1516/522 813/1515/522 +f 808/1510/523 812/1509/523 816/1521/523 809/1522/523 +f 817/1523/524 815/1518/524 814/1517/524 818/1524/524 +f 809/1522/525 816/1521/525 817/1523/525 818/1524/525 +f 810/1506/526 809/1505/526 818/1525/526 814/1526/526 +f 816/1520/527 813/1519/527 815/1527/527 817/1528/527 +f 787/1461/528 786/1529/528 819/1530/528 789/1462/528 +f 786/1529/529 820/1531/529 821/1532/529 819/1530/529 +f 820/1531/530 822/1533/530 823/1534/530 821/1532/530 +f 824/1535/502 825/1536/502 826/1537/502 827/1538/502 +f 825/1536/502 828/1539/502 829/1540/502 826/1537/502 +f 828/1539/502 785/1469/502 796/1472/502 829/1540/502 +f 795/1482/531 789/1481/531 819/1541/531 796/1542/531 +f 796/1542/532 819/1541/532 821/1543/532 829/1544/532 +f 829/1544/533 821/1543/533 823/1545/533 826/1546/533 +f 824/1547/534 830/1548/534 822/1549/534 825/1550/534 +f 825/1550/535 822/1549/535 820/1551/535 828/1552/535 +f 828/1552/536 820/1551/536 786/1458/536 785/1457/536 +f 811/1512/537 782/1511/537 797/1553/537 831/1554/537 +f 831/1554/538 797/1553/538 830/1548/538 824/1547/538 +f 811/1507/539 831/1555/539 792/1556/539 794/1508/539 +f 831/1555/502 824/1535/502 827/1538/502 792/1556/502 +f 822/1533/540 830/1557/540 832/1558/540 823/1534/540 +f 830/1557/541 797/1473/541 793/1476/541 832/1558/541 +f 826/1546/542 823/1545/542 832/1559/542 827/1560/542 +f 827/1560/543 832/1559/543 793/1466/543 792/1465/543 +o HandleHilt_Cylinder.003 +v -1.464091 -0.996279 2.859949 +v -1.457375 -0.967729 2.859949 +v -1.339310 -0.995504 2.929974 +v -1.346026 -1.024054 2.929974 +v -1.339310 -0.995504 3.070026 +v -1.346026 -1.024054 3.070026 +v -1.457375 -0.967729 3.140051 +v -1.464091 -0.996279 3.140051 +v -1.575440 -0.939954 3.070026 +v -1.582156 -0.968503 3.070026 +v -1.343945 -0.917630 2.942875 +v -1.343945 -0.917630 3.057125 +v -1.575440 -0.939954 2.929974 +v -1.582156 -0.968503 2.929974 +v -1.482215 -1.073316 3.113549 +v -1.386492 -1.095835 3.056774 +v -1.440258 -0.894971 2.885751 +v -1.536572 -0.872313 2.942875 +v -1.536572 -0.872313 3.057125 +v -1.440258 -0.894971 3.114249 +v -1.577937 -1.050797 3.056774 +v -1.577937 -1.050797 2.943226 +v -1.539716 -1.059789 2.965895 +v -1.539716 -1.059789 3.034105 +v -1.482215 -1.073316 2.886451 +v -1.386492 -1.095835 2.943226 +v -1.482215 -1.073316 2.931790 +v -1.487302 -1.094942 2.940222 +v -1.537696 -1.083087 2.970111 +v -1.482215 -1.073316 3.068210 +v -1.424713 -1.086844 3.034105 +v -1.424713 -1.086844 2.965895 +v -1.436908 -1.106798 2.970111 +v -1.436908 -1.106798 3.029889 +v -1.487302 -1.094942 3.059778 +v -1.537696 -1.083087 3.029889 +vt 0.127792 0.499999 +vt 0.092894 0.499999 +vt 0.092896 0.333355 +vt 0.127794 0.333355 +vt 0.092894 0.166709 +vt 0.127793 0.166709 +vt 0.092891 0.000065 +vt 0.127790 0.000065 +vt 0.127791 0.999935 +vt 0.092893 0.999934 +vt 0.092892 0.833290 +vt 0.127789 0.833290 +vt 0.000070 0.318005 +vt 0.000069 0.182061 +vt 0.092892 0.666644 +vt 0.127789 0.666644 +vt 0.225837 0.015830 +vt 0.225840 0.150939 +vt 0.000065 0.817939 +vt 0.000065 0.681994 +vt 0.000068 0.484647 +vt 0.000070 0.348704 +vt 0.000069 0.151360 +vt 0.000065 0.015418 +vt 0.000066 0.651291 +vt 0.000067 0.515348 +vt 0.000066 0.984585 +vt 0.000065 0.848641 +vt 0.225839 0.817521 +vt 0.225839 0.682412 +vt 0.272559 0.709386 +vt 0.272559 0.790548 +vt 0.225840 0.515768 +vt 0.225839 0.650877 +vt 0.225839 0.849057 +vt 0.225839 0.984166 +vt 0.225841 0.182477 +vt 0.225842 0.317586 +vt 0.225842 0.349124 +vt 0.225840 0.484234 +vt 0.272559 0.623904 +vt 0.272560 0.542743 +vt 0.300386 0.547759 +vt 0.300385 0.618888 +vt 0.272558 0.042803 +vt 0.272559 0.123964 +vt 0.272561 0.376098 +vt 0.272561 0.457260 +vt 0.272559 0.876030 +vt 0.272559 0.957191 +vt 0.272561 0.209449 +vt 0.272562 0.290612 +vt 0.423583 0.118945 +vt 0.361985 0.154512 +vt 0.300385 0.118949 +vt 0.300384 0.047820 +vt 0.361982 0.012254 +vt 0.423582 0.047816 +vt 0.300385 0.881046 +vt 0.300386 0.952175 +vt 0.300387 0.214466 +vt 0.300388 0.285595 +vt 0.300385 0.714402 +vt 0.300385 0.785531 +vt 0.300387 0.381113 +vt 0.300387 0.452243 +vn 0.4867 -0.1145 -0.8660 +vn 0.9734 -0.2290 0.0000 +vn 0.4867 -0.1145 0.8660 +vn -0.4867 0.1145 0.8660 +vn 0.9982 0.0594 0.0000 +vn -0.9734 0.2290 0.0000 +vn -0.4867 0.1145 -0.8660 +vn 0.4037 -0.3811 0.8318 +vn -0.8670 0.4982 0.0000 +vn 0.5319 0.1691 -0.8297 +vn 0.5319 0.1691 0.8297 +vn -0.4007 0.3885 -0.8297 +vn -0.4007 0.3885 0.8297 +vn -0.2290 -0.9734 0.0000 +vn -0.5312 -0.1612 -0.8318 +vn -0.5312 -0.1612 0.8318 +vn 0.8711 -0.4911 0.0000 +vn -0.9987 -0.0512 0.0000 +vn 0.4037 -0.3811 -0.8318 +vn -0.5339 -0.1952 -0.8227 +vn -0.5339 -0.1952 0.8227 +vn 0.8533 -0.5215 0.0000 +vn -0.9963 -0.0864 0.0000 +vn 0.3909 -0.4127 0.8227 +vn 0.3909 -0.4127 -0.8227 +s off +f 833/1561/544 834/1562/544 835/1563/544 836/1564/544 +f 836/1564/545 835/1563/545 837/1565/545 838/1566/545 +f 838/1566/546 837/1565/546 839/1567/546 840/1568/546 +f 840/1569/547 839/1570/547 841/1571/547 842/1572/547 +f 837/1565/548 835/1563/548 843/1573/548 844/1574/548 +f 842/1572/549 841/1571/549 845/1575/549 846/1576/549 +f 846/1576/550 845/1575/550 834/1562/550 833/1561/550 +f 838/1566/551 840/1568/551 847/1577/551 848/1578/551 +f 845/1575/552 841/1571/552 851/1579/552 850/1580/552 +f 835/1563/553 834/1562/553 849/1581/553 843/1582/553 +f 839/1567/554 837/1565/554 844/1583/554 852/1584/554 +f 834/1562/555 845/1575/555 850/1585/555 849/1586/555 +f 841/1571/556 839/1570/556 852/1587/556 851/1588/556 +f 853/1589/557 854/1590/557 855/1591/557 856/1592/557 +f 846/1576/558 833/1561/558 857/1593/558 854/1594/558 +f 840/1569/559 842/1572/559 853/1595/559 847/1596/559 +f 836/1564/560 838/1566/560 848/1597/560 858/1598/560 +f 842/1572/561 846/1576/561 854/1590/561 853/1589/561 +f 833/1561/562 836/1564/562 858/1599/562 857/1600/562 +f 855/1601/563 859/1602/563 860/1603/563 861/1604/563 +f 848/1578/557 847/1577/557 862/1605/557 863/1606/557 +f 857/1600/557 858/1599/557 864/1607/557 859/1608/557 +f 854/1594/557 857/1593/557 859/1602/557 855/1601/557 +f 847/1596/557 853/1595/557 856/1609/557 862/1610/557 +f 858/1598/557 848/1597/557 863/1611/557 864/1612/557 +f 860/1613/557 865/1614/557 866/1615/557 867/1616/557 868/1617/557 861/1618/557 +f 862/1610/564 856/1609/564 868/1619/564 867/1620/564 +f 864/1612/565 863/1611/565 866/1621/565 865/1622/565 +f 856/1592/566 855/1591/566 861/1623/566 868/1624/566 +f 863/1606/567 862/1605/567 867/1616/567 866/1615/567 +f 859/1608/568 864/1607/568 865/1625/568 860/1626/568 +o HolographicHolder_Cylinder.009 +v -0.972691 1.166717 3.278124 +v -0.972691 1.166717 2.721876 +v -0.987438 1.166717 2.739678 +v -0.987438 1.166717 3.260322 +v -0.934937 1.102284 3.278124 +v -0.934937 1.102284 2.721876 +v -0.971860 1.037372 3.278124 +v -0.971860 1.037372 2.721876 +v -1.046537 1.036892 3.278124 +v -1.046537 1.036892 2.721876 +v -1.047369 1.166237 3.278124 +v -1.084291 1.101324 3.278124 +v -1.084291 1.101324 2.721876 +v -1.047368 1.166237 2.721876 +v -1.032621 1.166237 2.739678 +v -1.032621 1.166237 3.260322 +v -1.033084 1.202181 3.260322 +v -1.033084 1.202181 2.739678 +v -0.987902 1.202661 3.260322 +v -0.987902 1.202661 2.739678 +vt 0.183339 0.841202 +vt 0.183342 0.158794 +vt 0.201434 0.180634 +vt 0.201432 0.819360 +vt 0.091722 0.841201 +vt 0.091726 0.158793 +vt 0.000106 0.841201 +vt 0.000110 0.158793 +vt 0.549809 0.158794 +vt 0.549809 0.841202 +vt 0.458192 0.841202 +vt 0.458193 0.158794 +vt 0.274960 0.841202 +vt 0.320769 0.920549 +vt 0.274958 0.999893 +vt 0.183338 0.999893 +vt 0.137529 0.920547 +vt 0.366577 0.841202 +vt 0.366577 0.158794 +vt 0.274960 0.158794 +vt 0.137534 0.079449 +vt 0.183344 0.000106 +vt 0.274962 0.000107 +vt 0.320770 0.079451 +vt 0.693655 0.044206 +vt 0.693655 0.682938 +vt 0.649555 0.682938 +vt 0.649555 0.044206 +vt 0.256867 0.819362 +vt 0.256868 0.180635 +vt 0.594122 0.682938 +vt 0.594122 0.044206 +vt 0.594021 0.000106 +vt 0.649455 0.000106 +vt 0.550021 0.682938 +vt 0.550021 0.044206 +vt 0.649455 0.727038 +vt 0.594021 0.727038 +vn 0.0016 1.0000 -0.0012 +vn -0.0011 1.0000 -0.0016 +vn 0.0018 1.0000 0.0007 +vn 0.0013 1.0000 0.0015 +vn 0.8618 0.5072 0.0000 +vn 0.8635 0.5043 0.0014 +vn 0.8628 0.5055 0.0000 +vn 0.8692 -0.4944 0.0000 +vn 0.0064 -1.0000 0.0000 +vn -0.0015 0.0013 1.0000 +vn -0.0010 -0.0017 1.0000 +vn 0.0000 0.0000 1.0000 +vn -0.8628 -0.5056 0.0000 +vn -0.8692 0.4944 -0.0000 +vn -0.8692 0.4944 -0.0020 +vn -0.8699 0.4932 0.0014 +vn 0.0010 -0.0017 -1.0000 +vn 0.0018 0.0007 -1.0000 +vn 0.0000 0.0000 -1.0000 +vn -0.9999 -0.0119 0.0017 +vn -0.9999 -0.0109 -0.0005 +vn -0.9999 -0.0129 0.0000 +vn -0.0060 1.0000 0.0000 +vn -0.0076 1.0000 -0.0019 +vn -0.0100 1.0000 0.0000 +vn -0.0086 1.0000 0.0019 +vn 0.0007 1.0000 0.0018 +vn 0.0013 1.0000 -0.0015 +vn -0.0008 1.0000 -0.0018 +vn -0.0020 1.0000 -0.0001 +vn -0.0062 1.0000 0.0008 +vn -0.0065 1.0000 -0.0014 +vn -0.0088 1.0000 -0.0018 +vn -0.0106 0.9999 0.0000 +vn -0.0014 0.0014 -1.0000 +vn 0.0010 0.0018 -1.0000 +vn 0.9999 0.0129 -0.0020 +vn 0.9999 0.0143 0.0014 +vn 0.9999 0.0129 0.0000 +vn 0.0019 0.0005 1.0000 +vn -0.0000 0.0020 1.0000 +s off +f 869/1627/569 870/1628/570 871/1629/571 872/1630/572 +f 870/1628/573 869/1627/574 873/1631/575 874/1632/575 +f 874/1632/576 873/1631/576 875/1633/576 876/1634/576 +f 876/1635/577 875/1636/577 877/1637/577 878/1638/577 +f 869/1627/578 879/1639/579 880/1640/580 877/1641/580 875/1642/580 873/1643/580 +f 878/1638/581 877/1637/581 880/1644/581 881/1645/581 +f 881/1645/582 880/1644/582 879/1639/583 882/1646/584 +f 882/1646/585 870/1628/586 874/1647/587 876/1648/587 878/1649/587 881/1650/587 +f 883/1651/588 884/1652/589 885/1653/590 886/1654/590 +f 879/1639/591 869/1627/592 872/1630/593 884/1655/594 +f 882/1646/595 879/1639/596 884/1655/597 883/1656/598 +f 870/1628/592 882/1646/599 883/1656/600 871/1629/601 +f 886/1654/602 885/1653/602 887/1657/602 888/1658/602 +f 871/1659/603 883/1660/604 886/1654/587 888/1658/587 +f 872/1661/605 871/1662/606 888/1658/607 887/1657/607 +f 884/1663/608 872/1664/609 887/1657/580 885/1653/580 +o ring_Torus +v 0.990151 -0.648179 2.809159 +v 0.990151 -0.321606 2.625201 +v 1.068843 -0.322088 2.670631 +v 1.068843 -0.609076 2.832291 +v 1.068843 -0.323051 2.761491 +v 1.068843 -0.530870 2.878556 +v 0.990151 -0.323533 2.806922 +v 0.990151 -0.491768 2.901688 +v 0.911459 -0.323051 2.761491 +v 0.911459 -0.530870 2.878556 +v 0.911459 -0.322088 2.670631 +v 0.911459 -0.609076 2.832291 +v 0.990151 0.000993 2.816042 +v 1.068843 -0.038592 2.838340 +v 1.068843 -0.117761 2.882936 +v 0.990151 -0.157346 2.905234 +v 0.911459 -0.117761 2.882936 +v 0.911459 -0.038592 2.838340 +v 0.990151 -0.002981 3.190841 +v 1.068843 -0.042084 3.167709 +v 1.068843 -0.120290 3.121444 +v 0.990151 -0.159393 3.098312 +v 0.911459 -0.120290 3.121444 +v 0.911459 -0.042084 3.167709 +v 0.990151 -0.329554 3.374799 +v 1.068843 -0.329073 3.329369 +v 1.068843 -0.328109 3.238509 +v 0.990151 -0.327627 3.193079 +v 0.911459 -0.328109 3.238509 +v 0.911459 -0.329073 3.329369 +v 0.990151 -0.652153 3.183958 +v 1.068843 -0.612568 3.161660 +v 1.068843 -0.533399 3.117064 +v 0.990151 -0.493815 3.094766 +v 0.911459 -0.533399 3.117064 +v 0.911459 -0.612568 3.161660 +vt 0.000208 0.606690 +vt 0.297562 0.606690 +vt 0.279540 0.676487 +vt 0.018230 0.676486 +vt 0.243498 0.738915 +vt 0.054272 0.738915 +vt 0.225476 0.808712 +vt 0.072293 0.808712 +vt 0.072294 0.404668 +vt 0.225476 0.404668 +vt 0.243498 0.474465 +vt 0.054272 0.474465 +vt 0.279540 0.536893 +vt 0.018230 0.536893 +vt 0.297978 0.202229 +vt 0.595332 0.202230 +vt 0.577310 0.272027 +vt 0.315999 0.272026 +vt 0.541267 0.334455 +vt 0.352042 0.334454 +vt 0.523245 0.404252 +vt 0.370063 0.404251 +vt 0.370064 0.000208 +vt 0.523246 0.000208 +vt 0.541268 0.070005 +vt 0.352042 0.070005 +vt 0.577310 0.132433 +vt 0.315999 0.132433 +vt 0.797770 0.000208 +vt 0.797770 0.297561 +vt 0.727973 0.279540 +vt 0.727973 0.018229 +vt 0.665545 0.243497 +vt 0.665545 0.054272 +vt 0.595748 0.225476 +vt 0.595748 0.072294 +vt 0.999792 0.072294 +vt 0.999792 0.225476 +vt 0.929995 0.243497 +vt 0.929995 0.054272 +vt 0.867567 0.279540 +vt 0.867567 0.018229 +vt 0.297562 0.202230 +vt 0.000208 0.202229 +vt 0.018229 0.132432 +vt 0.279541 0.132434 +vt 0.054273 0.070005 +vt 0.243498 0.070005 +vt 0.072294 0.000208 +vt 0.225477 0.000208 +vt 0.225475 0.404252 +vt 0.072292 0.404251 +vt 0.054271 0.334454 +vt 0.243497 0.334455 +vt 0.018228 0.272026 +vt 0.279540 0.272027 +vt 0.595332 0.606690 +vt 0.297978 0.606690 +vt 0.316000 0.536893 +vt 0.577310 0.536894 +vt 0.352043 0.474465 +vt 0.541268 0.474465 +vt 0.370064 0.404668 +vt 0.523247 0.404669 +vt 0.523246 0.808712 +vt 0.370063 0.808712 +vt 0.352042 0.738915 +vt 0.541268 0.738915 +vt 0.316000 0.676487 +vt 0.577310 0.676487 +vt 0.797769 0.595331 +vt 0.797770 0.297977 +vt 0.867567 0.315999 +vt 0.867567 0.577309 +vt 0.929995 0.352042 +vt 0.929995 0.541267 +vt 0.999791 0.370063 +vt 0.999791 0.523245 +vt 0.595748 0.523245 +vt 0.595748 0.370063 +vt 0.665544 0.352042 +vt 0.665544 0.541266 +vt 0.727973 0.315999 +vt 0.727973 0.577309 +vn 0.4472 -0.4390 -0.7793 +vn 1.0000 0.0000 0.0000 +vn 0.4472 0.4390 0.7793 +vn -0.4472 0.4390 0.7793 +vn -1.0000 0.0000 0.0000 +vn -0.4472 -0.4390 -0.7793 +vn 0.4472 0.4554 -0.7698 +vn 0.4472 -0.4554 0.7698 +vn -0.4472 -0.4554 0.7698 +vn -0.4472 0.4554 -0.7698 +vn 0.4472 0.8944 0.0095 +vn 0.4472 -0.8944 -0.0095 +vn -0.4472 -0.8944 -0.0095 +vn -0.4472 0.8944 0.0095 +s off +f 889/1665/610 890/1666/610 891/1667/610 892/1668/610 +f 892/1668/611 891/1667/611 893/1669/611 894/1670/611 +f 894/1670/612 893/1669/612 895/1671/612 896/1672/612 +f 896/1673/613 895/1674/613 897/1675/613 898/1676/613 +f 898/1676/614 897/1675/614 899/1677/614 900/1678/614 +f 900/1678/615 899/1677/615 890/1666/615 889/1665/615 +f 890/1679/616 901/1680/616 902/1681/616 891/1682/616 +f 891/1682/611 902/1681/611 903/1683/611 893/1684/611 +f 893/1684/617 903/1683/617 904/1685/617 895/1686/617 +f 895/1687/618 904/1688/618 905/1689/618 897/1690/618 +f 897/1690/614 905/1689/614 906/1691/614 899/1692/614 +f 899/1692/619 906/1691/619 901/1680/619 890/1679/619 +f 901/1693/620 907/1694/620 908/1695/620 902/1696/620 +f 902/1696/611 908/1695/611 909/1697/611 903/1698/611 +f 903/1698/621 909/1697/621 910/1699/621 904/1700/621 +f 904/1701/622 910/1702/622 911/1703/622 905/1704/622 +f 905/1704/614 911/1703/614 912/1705/614 906/1706/614 +f 906/1706/623 912/1705/623 907/1694/623 901/1693/623 +f 907/1707/612 913/1708/612 914/1709/612 908/1710/612 +f 908/1710/611 914/1709/611 915/1711/611 909/1712/611 +f 909/1712/610 915/1711/610 916/1713/610 910/1714/610 +f 910/1715/615 916/1716/615 917/1717/615 911/1718/615 +f 911/1718/614 917/1717/614 918/1719/614 912/1720/614 +f 912/1720/613 918/1719/613 913/1708/613 907/1707/613 +f 913/1721/617 919/1722/617 920/1723/617 914/1724/617 +f 914/1724/611 920/1723/611 921/1725/611 915/1726/611 +f 915/1726/616 921/1725/616 922/1727/616 916/1728/616 +f 916/1729/619 922/1730/619 923/1731/619 917/1732/619 +f 917/1732/614 923/1731/614 924/1733/614 918/1734/614 +f 918/1734/618 924/1733/618 919/1722/618 913/1721/618 +f 919/1735/621 889/1736/621 892/1737/621 920/1738/621 +f 920/1738/611 892/1737/611 894/1739/611 921/1740/611 +f 921/1740/620 894/1739/620 896/1741/620 922/1742/620 +f 922/1743/623 896/1744/623 898/1745/623 923/1746/623 +f 923/1746/614 898/1745/614 900/1747/614 924/1748/614 +f 924/1748/622 900/1747/622 889/1736/622 919/1735/622 +o Roundthing_Cylinder.008 +v -0.654718 0.939467 3.338343 +v -0.745955 0.781575 3.338343 +v -0.745839 1.097427 3.338343 +v -0.757348 1.077508 3.380293 +v -0.677723 0.939476 3.380293 +v -1.019432 0.939601 3.338343 +v -0.928196 1.097493 3.338343 +v -0.928312 0.781642 3.338343 +v -0.916701 1.077567 3.380293 +v -0.996428 0.939592 3.380293 +v -0.949024 0.939575 3.380293 +v -0.893014 1.036505 3.380293 +v -0.916802 0.801560 3.380293 +v -0.757450 0.801501 3.380293 +v -0.781065 1.036464 3.380293 +v -0.884357 1.021497 3.419074 +v -0.789734 1.021463 3.419074 +v -0.781137 0.842563 3.380293 +v -0.893085 0.842604 3.380293 +v -0.725127 0.939493 3.380293 +v -0.931698 0.939569 3.419074 +v -0.877029 0.939549 3.419074 +v -0.857040 0.974142 3.419074 +v -0.884417 0.857606 3.419074 +v -0.742452 0.939499 3.419074 +v -0.789794 0.857571 3.419074 +v -0.817086 0.974128 3.419074 +v -0.857040 0.974142 3.317496 +v -0.817086 0.974128 3.317496 +v -0.817111 0.904926 3.419074 +v -0.857065 0.904940 3.419074 +v -0.797122 0.939519 3.419074 +v -0.797122 0.939519 3.317496 +v -0.877029 0.939549 3.317496 +v -0.857065 0.904940 3.317496 +v -0.817111 0.904926 3.317496 +v -0.745955 0.781575 2.661657 +v -0.654718 0.939467 2.661657 +v -0.677723 0.939476 2.619707 +v -0.757348 1.077508 2.619707 +v -0.745839 1.097427 2.661657 +v -0.928196 1.097493 2.661657 +v -1.019432 0.939601 2.661657 +v -0.928312 0.781642 2.661657 +v -0.916701 1.077567 2.619707 +v -0.893014 1.036505 2.619707 +v -0.949024 0.939575 2.619707 +v -0.996428 0.939593 2.619707 +v -0.916802 0.801560 2.619707 +v -0.757450 0.801502 2.619707 +v -0.781065 1.036464 2.619707 +v -0.789734 1.021463 2.580926 +v -0.884357 1.021497 2.580926 +v -0.893085 0.842604 2.619707 +v -0.781137 0.842563 2.619707 +v -0.725127 0.939493 2.619707 +v -0.857040 0.974142 2.580926 +v -0.877029 0.939549 2.580926 +v -0.931698 0.939569 2.580926 +v -0.884417 0.857606 2.580926 +v -0.789794 0.857571 2.580926 +v -0.742452 0.939499 2.580926 +v -0.817086 0.974128 2.580926 +v -0.817086 0.974128 2.682504 +v -0.857040 0.974142 2.682504 +v -0.857065 0.904940 2.580926 +v -0.817111 0.904926 2.580926 +v -0.797122 0.939519 2.580926 +v -0.797122 0.939519 2.682504 +v -0.817111 0.904926 2.682504 +v -0.857065 0.904940 2.682504 +v -0.877029 0.939549 2.682504 +vt 0.295914 0.225582 +vt 0.443817 0.225582 +vt 0.443818 0.774418 +vt 0.295914 0.774418 +vt 0.148010 0.225582 +vt 0.148010 0.774418 +vt 0.286585 0.812084 +vt 0.157340 0.812084 +vt 0.591720 0.225581 +vt 0.739623 0.225582 +vt 0.739623 0.774418 +vt 0.591721 0.774418 +vt 0.887527 0.225581 +vt 0.887527 0.774418 +vt 0.453146 0.812084 +vt 0.582392 0.812084 +vt 0.563168 0.845381 +vt 0.472370 0.845381 +vt 0.434489 0.812084 +vt 0.305243 0.812085 +vt 0.730295 0.812084 +vt 0.601050 0.812084 +vt 0.000107 0.774419 +vt 0.138682 0.812085 +vt 0.009436 0.812084 +vt 0.878198 0.812084 +vt 0.748953 0.812084 +vt 0.324467 0.845381 +vt 0.415265 0.845381 +vt 0.408239 0.879107 +vt 0.331494 0.879107 +vt 0.858974 0.845380 +vt 0.768176 0.845380 +vt 0.267361 0.845381 +vt 0.176564 0.845381 +vt 0.711071 0.845381 +vt 0.620273 0.845380 +vt 0.119458 0.845381 +vt 0.028660 0.845381 +vt 0.479397 0.879107 +vt 0.556142 0.879107 +vt 0.533972 0.917507 +vt 0.501567 0.917507 +vt 0.704044 0.879107 +vt 0.627299 0.879107 +vt 0.112432 0.879107 +vt 0.035686 0.879108 +vt 0.851948 0.879107 +vt 0.775202 0.879107 +vt 0.260335 0.879107 +vt 0.183589 0.879107 +vt 0.353664 0.917507 +vt 0.386069 0.917507 +vt 0.386068 0.999893 +vt 0.353663 0.999893 +vt 0.829778 0.917507 +vt 0.797372 0.917506 +vt 0.238166 0.917507 +vt 0.205760 0.917507 +vt 0.681875 0.917506 +vt 0.649469 0.917507 +vt 0.090261 0.917507 +vt 0.057857 0.917507 +vt 0.943867 0.113737 +vt 0.915803 0.129940 +vt 0.887739 0.113737 +vt 0.887739 0.081333 +vt 0.915803 0.065129 +vt 0.943867 0.081332 +vt 0.681876 0.999892 +vt 0.649470 0.999893 +vt 0.090260 0.999894 +vt 0.057856 0.999893 +vt 0.533971 0.999893 +vt 0.501567 0.999893 +vt 0.829776 0.999893 +vt 0.797370 0.999892 +vt 0.238167 0.999893 +vt 0.205762 0.999894 +vt 0.157339 0.187916 +vt 0.286584 0.187916 +vt 0.000106 0.225582 +vt 0.453146 0.187916 +vt 0.472370 0.154619 +vt 0.563167 0.154619 +vt 0.582391 0.187916 +vt 0.305242 0.187916 +vt 0.434488 0.187916 +vt 0.601048 0.187916 +vt 0.730294 0.187915 +vt 0.009435 0.187917 +vt 0.138680 0.187916 +vt 0.748952 0.187916 +vt 0.878197 0.187915 +vt 0.324466 0.154619 +vt 0.331493 0.120893 +vt 0.408238 0.120893 +vt 0.415264 0.154619 +vt 0.768176 0.154619 +vt 0.858973 0.154619 +vt 0.176563 0.154619 +vt 0.267360 0.154619 +vt 0.620273 0.154619 +vt 0.711071 0.154619 +vt 0.028658 0.154620 +vt 0.119456 0.154619 +vt 0.479396 0.120893 +vt 0.501566 0.082493 +vt 0.533971 0.082493 +vt 0.556141 0.120893 +vt 0.627299 0.120893 +vt 0.704044 0.120893 +vt 0.035685 0.120893 +vt 0.112430 0.120893 +vt 0.775202 0.120893 +vt 0.851947 0.120893 +vt 0.183588 0.120893 +vt 0.260334 0.120893 +vt 0.353663 0.082493 +vt 0.353662 0.000107 +vt 0.386067 0.000107 +vt 0.386068 0.082493 +vt 0.797372 0.082493 +vt 0.829777 0.082493 +vt 0.205759 0.082493 +vt 0.238164 0.082493 +vt 0.649468 0.082493 +vt 0.681874 0.082493 +vt 0.057855 0.082494 +vt 0.090259 0.082493 +vt 0.943870 0.016312 +vt 0.943867 0.048716 +vt 0.915802 0.064917 +vt 0.887739 0.048711 +vt 0.887742 0.016307 +vt 0.915807 0.000106 +vt 0.649469 0.000107 +vt 0.681875 0.000107 +vt 0.057854 0.000108 +vt 0.090258 0.000107 +vt 0.501566 0.000107 +vt 0.533970 0.000107 +vt 0.797370 0.000107 +vt 0.829776 0.000106 +vt 0.205760 0.000106 +vt 0.238166 0.000107 +vn 0.0004 1.0000 0.0000 +vn 0.8662 0.4997 0.0000 +vn 0.7825 0.4514 0.4290 +vn -0.8662 -0.4997 0.0000 +vn -0.0004 -1.0000 0.0000 +vn -0.8658 0.5003 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0003 0.9033 0.4290 +vn -0.7825 -0.4514 0.4290 +vn 0.7821 -0.4519 0.4290 +vn -0.7821 0.4519 0.4290 +vn -0.0003 -0.9033 0.4290 +vn 0.0003 0.9326 0.3608 +vn -0.8079 -0.4660 0.3608 +vn 0.8075 -0.4666 0.3608 +vn -0.8075 0.4666 0.3608 +vn -0.0003 -0.9326 0.3608 +vn 0.8079 0.4660 0.3608 +vn 0.8658 -0.5003 0.0000 +vn 0.7825 0.4514 -0.4290 +vn 0.0000 0.0000 -1.0000 +vn 0.0003 0.9033 -0.4290 +vn -0.7825 -0.4514 -0.4290 +vn 0.7821 -0.4519 -0.4290 +vn -0.7821 0.4519 -0.4290 +vn -0.0003 -0.9033 -0.4290 +vn 0.0003 0.9326 -0.3608 +vn -0.8079 -0.4660 -0.3608 +vn 0.8075 -0.4666 -0.3608 +vn -0.8075 0.4666 -0.3608 +vn -0.0003 -0.9326 -0.3608 +vn 0.8079 0.4660 -0.3608 +s off +f 965/1749/624 966/1750/624 931/1751/624 927/1752/624 +f 962/1753/625 965/1749/625 927/1752/625 925/1754/625 +f 925/1754/626 927/1752/626 928/1755/626 929/1756/626 +f 967/1757/627 968/1758/627 932/1759/627 930/1760/627 +f 968/1758/628 961/1761/628 926/1762/628 932/1759/628 +f 967/1757/629 930/1760/629 931/1751/629 966/1750/629 +f 933/1763/630 934/1764/630 935/1765/630 936/1766/630 +f 927/1752/631 931/1751/631 933/1767/631 928/1768/631 +f 930/1760/632 932/1759/632 937/1769/632 934/1770/632 +f 926/1771/633 925/1754/633 929/1772/633 938/1773/633 +f 931/1751/634 930/1760/634 934/1764/634 933/1763/634 +f 932/1759/635 926/1762/635 938/1774/635 937/1775/635 +f 939/1776/636 936/1777/636 940/1778/636 941/1779/636 +f 937/1775/630 938/1774/630 942/1780/630 943/1781/630 +f 929/1756/630 928/1755/630 939/1782/630 944/1783/630 +f 928/1768/630 933/1767/630 936/1777/630 939/1776/630 +f 934/1770/630 937/1769/630 943/1784/630 935/1785/630 +f 938/1773/630 929/1772/630 944/1786/630 942/1787/630 +f 940/1788/630 945/1789/630 946/1790/630 947/1791/630 +f 935/1785/637 943/1784/637 948/1792/637 945/1793/637 +f 942/1787/638 944/1786/638 949/1794/638 950/1795/638 +f 936/1766/639 935/1765/639 945/1789/639 940/1788/639 +f 943/1781/640 942/1780/640 950/1796/640 948/1797/640 +f 944/1783/641 939/1782/641 941/1798/641 949/1799/641 +f 951/1800/628 947/1801/628 952/1802/628 953/1803/628 +f 948/1797/630 950/1796/630 954/1804/630 955/1805/630 +f 949/1799/630 941/1798/630 951/1806/630 956/1807/630 +f 941/1779/630 940/1778/630 947/1801/630 951/1800/630 +f 945/1793/630 948/1792/630 955/1808/630 946/1809/630 +f 950/1795/630 949/1794/630 956/1810/630 954/1811/630 +f 957/1812/630 953/1813/630 952/1814/630 958/1815/630 959/1816/630 960/1817/630 +f 946/1809/625 955/1808/625 959/1818/625 958/1819/625 +f 954/1811/629 956/1810/629 957/1820/629 960/1821/629 +f 947/1791/642 946/1790/642 958/1822/642 952/1823/642 +f 955/1805/624 954/1804/624 960/1824/624 959/1825/624 +f 956/1807/627 951/1806/627 953/1826/627 957/1827/627 +f 962/1753/643 963/1828/643 964/1829/643 965/1749/643 +f 961/1830/642 962/1753/642 925/1754/642 926/1771/642 +f 969/1831/644 970/1832/644 971/1833/644 972/1834/644 +f 965/1749/645 964/1835/645 969/1836/645 966/1750/645 +f 967/1757/646 972/1837/646 973/1838/646 968/1758/646 +f 961/1830/647 974/1839/647 963/1840/647 962/1753/647 +f 966/1750/648 969/1831/648 972/1834/648 967/1757/648 +f 968/1758/649 973/1841/649 974/1842/649 961/1761/649 +f 975/1843/650 976/1844/650 977/1845/650 970/1846/650 +f 973/1841/644 978/1847/644 979/1848/644 974/1842/644 +f 963/1828/644 980/1849/644 975/1850/644 964/1829/644 +f 964/1835/644 975/1843/644 970/1846/644 969/1836/644 +f 972/1837/644 971/1851/644 978/1852/644 973/1838/644 +f 974/1839/644 979/1853/644 980/1854/644 963/1840/644 +f 977/1855/644 981/1856/644 982/1857/644 983/1858/644 +f 971/1851/651 983/1859/651 984/1860/651 978/1852/651 +f 979/1853/652 985/1861/652 986/1862/652 980/1854/652 +f 970/1832/653 977/1855/653 983/1858/653 971/1833/653 +f 978/1847/654 984/1863/654 985/1864/654 979/1848/654 +f 980/1849/655 986/1865/655 976/1866/655 975/1850/655 +f 987/1867/628 988/1868/628 989/1869/628 981/1870/628 +f 984/1863/644 990/1871/644 991/1872/644 985/1864/644 +f 986/1865/644 992/1873/644 987/1874/644 976/1866/644 +f 976/1844/644 987/1867/644 981/1870/644 977/1845/644 +f 983/1859/644 982/1875/644 990/1876/644 984/1860/644 +f 985/1861/644 991/1877/644 992/1878/644 986/1862/644 +f 993/1879/644 994/1880/644 995/1881/644 996/1882/644 989/1883/644 988/1884/644 +f 982/1875/625 996/1885/625 995/1886/625 990/1876/625 +f 991/1877/629 994/1887/629 993/1888/629 992/1878/629 +f 981/1856/642 989/1889/642 996/1890/642 982/1857/642 +f 990/1871/624 995/1891/624 994/1892/624 991/1872/624 +f 992/1873/627 993/1893/627 988/1894/627 987/1874/627 +o SideHolders.001_Cube.002 +v 1.310526 -0.082794 3.073582 +v 1.384588 0.101767 3.073582 +v 1.139921 0.101767 3.053905 +v 1.144858 -0.044123 3.053905 +v 1.384588 0.101767 2.930023 +v 1.504148 0.101767 3.073582 +v 1.504148 0.101767 2.930023 +v 1.430086 -0.082794 3.073582 +v 1.608182 -0.022025 3.051795 +v 1.577323 0.101767 3.051795 +v 1.430086 -0.082794 2.930023 +v 1.310526 -0.082794 2.930023 +v 1.577323 0.101767 2.951809 +v 1.608182 -0.022025 2.951809 +v 1.144858 -0.044123 2.949699 +v 1.139921 0.101767 2.949699 +v 1.384588 0.551670 3.654257 +v 1.384588 0.551670 3.449972 +v 1.139921 0.531994 3.449972 +v 1.139921 0.531994 3.558806 +v 1.384588 0.408111 3.449972 +v 1.504148 0.551670 3.449972 +v 1.504148 0.408111 3.449972 +v 1.504148 0.551670 3.654257 +v 1.577323 0.529883 3.613238 +v 1.577323 0.529883 3.449972 +v 1.504148 0.408111 3.654257 +v 1.384588 0.408111 3.654257 +v 1.577323 0.429898 3.449972 +v 1.577323 0.429898 3.613238 +v 1.139921 0.427787 3.558806 +v 1.139921 0.427787 3.449972 +v 1.384588 0.551670 2.345743 +v 1.139921 0.531994 2.441195 +v 1.139921 0.531994 2.550028 +v 1.384588 0.551670 2.550028 +v 1.384588 0.408111 2.550028 +v 1.504148 0.408111 2.550028 +v 1.504148 0.551670 2.550028 +v 1.577323 0.529883 2.550028 +v 1.577323 0.529883 2.386762 +v 1.504148 0.551670 2.345743 +v 1.504148 0.408111 2.345743 +v 1.384588 0.408111 2.345743 +v 1.577323 0.429898 2.550028 +v 1.577323 0.429898 2.386762 +v 1.139921 0.427787 2.441195 +v 1.139921 0.427787 2.550028 +vt 0.300882 0.683064 +vt 0.346645 0.797105 +vt 0.194976 0.797301 +vt 0.197840 0.707149 +vt 0.346645 0.885811 +vt 0.420522 0.797105 +vt 0.420522 0.885811 +vt 0.374758 0.683064 +vt 0.485753 0.720233 +vt 0.467698 0.796970 +vt 0.660845 0.885811 +vt 0.660845 0.797105 +vt 0.734722 0.797105 +vt 0.734722 0.885811 +vt 0.374758 0.999852 +vt 0.300882 0.999852 +vt 0.465737 0.872350 +vt 0.465737 0.810568 +vt 0.544569 0.810568 +vt 0.544569 0.872350 +vt 0.467698 0.885946 +vt 0.485753 0.962683 +vt 0.105267 0.873653 +vt 0.105267 0.809264 +vt 0.195464 0.809264 +vt 0.195464 0.873653 +vt 0.197840 0.975767 +vt 0.194976 0.885615 +vt 0.000148 0.885811 +vt 0.000148 0.797105 +vt 0.380856 0.000148 +vt 0.380856 0.126376 +vt 0.229187 0.126376 +vt 0.229187 0.059127 +vt 0.380856 0.215082 +vt 0.454733 0.126376 +vt 0.454733 0.215082 +vt 0.454733 0.000148 +vt 0.501909 0.025494 +vt 0.501909 0.126376 +vt 0.652665 0.215082 +vt 0.652665 0.126376 +vt 0.726542 0.126376 +vt 0.726542 0.215082 +vt 0.454733 0.341311 +vt 0.380856 0.341311 +vt 0.499948 0.201620 +vt 0.499948 0.139839 +vt 0.600830 0.139839 +vt 0.600830 0.201620 +vt 0.501909 0.215082 +vt 0.501909 0.315965 +vt 0.162426 0.202924 +vt 0.162426 0.138534 +vt 0.229675 0.138534 +vt 0.229675 0.202924 +vt 0.229187 0.282331 +vt 0.229187 0.215082 +vt 0.000148 0.215082 +vt 0.000148 0.126376 +vt 0.380855 0.682769 +vt 0.229186 0.623789 +vt 0.229186 0.556540 +vt 0.380855 0.556540 +vt 0.380855 0.467835 +vt 0.454732 0.467835 +vt 0.454732 0.556540 +vt 0.501909 0.556540 +vt 0.501908 0.657423 +vt 0.454732 0.682769 +vt 0.652664 0.467835 +vt 0.726541 0.467835 +vt 0.726541 0.556540 +vt 0.652664 0.556540 +vt 0.380855 0.341606 +vt 0.454732 0.341606 +vt 0.499947 0.481297 +vt 0.600829 0.481297 +vt 0.600829 0.543078 +vt 0.499947 0.543078 +vt 0.501908 0.366952 +vt 0.501908 0.467835 +vt 0.162426 0.479993 +vt 0.229674 0.479993 +vt 0.229675 0.544383 +vt 0.162426 0.544383 +vt 0.229186 0.467835 +vt 0.229186 0.400586 +vt 0.000148 0.467835 +vt 0.000148 0.556540 +vn -0.0936 0.0196 0.9954 +vn 0.0000 1.0000 0.0000 +vn 0.1766 -0.0247 0.9840 +vn 0.0000 -1.0000 -0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.9703 0.2419 0.0000 +vn 0.3229 -0.9464 -0.0000 +vn 0.1766 -0.0247 -0.9840 +vn -0.9994 -0.0338 -0.0000 +vn -0.0936 0.0196 -0.9954 +vn -0.2273 -0.9738 0.0000 +vn -0.0802 0.9968 0.0000 +vn 0.2854 0.9584 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.4890 0.0000 0.8723 +vn 0.2854 -0.9584 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.0802 -0.9968 0.0000 +vn -0.3634 0.0000 0.9316 +vn 0.4890 0.0000 -0.8723 +vn -0.3634 0.0000 -0.9316 +s off +f 997/1895/656 998/1896/656 999/1897/656 1000/1898/656 +f 1001/1899/657 998/1896/657 1002/1900/657 1003/1901/657 +f 1002/1900/658 1004/1902/658 1005/1903/658 1006/1904/658 +f 1007/1905/659 1004/1906/659 997/1907/659 1008/1908/659 +f 1001/1899/660 1003/1901/660 1007/1909/660 1008/1910/660 +f 1002/1900/661 998/1896/661 997/1895/661 1004/1902/661 +f 1009/1911/662 1006/1912/662 1005/1913/662 1010/1914/662 +f 1003/1901/657 1002/1900/657 1006/1912/657 1009/1911/657 +f 1004/1906/663 1007/1905/663 1010/1914/663 1005/1913/663 +f 1007/1909/664 1003/1901/664 1009/1915/664 1010/1916/664 +f 1011/1917/665 1000/1918/665 999/1919/665 1012/1920/665 +f 1001/1899/666 1008/1910/666 1011/1921/666 1012/1922/666 +f 998/1896/657 1001/1899/657 1012/1920/657 999/1919/657 +f 1008/1923/667 997/1924/667 1000/1918/667 1011/1917/667 +f 1013/1925/668 1014/1926/668 1015/1927/668 1016/1928/668 +f 1017/1929/660 1014/1926/660 1018/1930/660 1019/1931/660 +f 1018/1930/669 1020/1932/669 1021/1933/669 1022/1934/669 +f 1023/1935/661 1020/1936/661 1013/1937/661 1024/1938/661 +f 1017/1929/659 1019/1931/659 1023/1939/659 1024/1940/659 +f 1018/1930/657 1014/1926/657 1013/1925/657 1020/1932/657 +f 1025/1941/670 1022/1942/670 1021/1943/670 1026/1944/670 +f 1019/1931/660 1018/1930/660 1022/1942/660 1025/1941/660 +f 1020/1936/671 1023/1935/671 1026/1944/671 1021/1943/671 +f 1023/1939/672 1019/1931/672 1025/1945/672 1026/1946/672 +f 1027/1947/673 1016/1948/673 1015/1949/673 1028/1950/673 +f 1017/1929/674 1024/1940/674 1027/1951/674 1028/1952/674 +f 1014/1926/660 1017/1929/660 1028/1950/660 1015/1949/660 +f 1024/1953/675 1013/1954/675 1016/1948/675 1027/1947/675 +f 1029/1955/668 1030/1956/668 1031/1957/668 1032/1958/668 +f 1033/1959/661 1034/1960/661 1035/1961/661 1032/1958/661 +f 1035/1961/669 1036/1962/669 1037/1963/669 1038/1964/669 +f 1039/1965/660 1040/1966/660 1029/1967/660 1038/1968/660 +f 1033/1959/659 1040/1969/659 1039/1970/659 1034/1960/659 +f 1035/1961/657 1038/1964/657 1029/1955/657 1032/1958/657 +f 1041/1971/670 1042/1972/670 1037/1973/670 1036/1974/670 +f 1034/1960/661 1041/1971/661 1036/1974/661 1035/1961/661 +f 1038/1968/676 1037/1973/676 1042/1972/676 1039/1965/676 +f 1039/1970/672 1042/1975/672 1041/1976/672 1034/1960/672 +f 1043/1977/673 1044/1978/673 1031/1979/673 1030/1980/673 +f 1033/1959/674 1044/1981/674 1043/1982/674 1040/1969/674 +f 1032/1958/661 1031/1979/661 1044/1978/661 1033/1959/661 +f 1040/1983/677 1043/1977/677 1030/1980/677 1029/1984/677 +o Trigger_Cube.008 +v -0.906556 -0.031746 3.035327 +v -0.906556 -0.031746 2.964673 +v -0.750972 -0.031746 2.964673 +v -0.750972 -0.031746 3.035327 +v -0.891840 -0.172320 2.964673 +v -0.891840 -0.172320 3.035327 +v -0.858049 -0.254618 3.035327 +v -0.773318 -0.237178 3.035327 +v -0.781494 -0.172320 3.035327 +v -0.781494 -0.172320 2.964673 +v -0.752234 -0.268743 3.035327 +v -0.752234 -0.268743 2.964673 +v -0.773318 -0.237178 2.964673 +v -0.858049 -0.254618 2.964673 +v -0.786277 -0.298175 3.035327 +v -0.786277 -0.298175 2.964673 +vt 0.732975 0.555968 +vt 0.732975 0.444032 +vt 0.960872 0.444032 +vt 0.960872 0.555968 +vt 0.629883 0.999902 +vt 0.501865 0.816180 +vt 0.634112 0.701846 +vt 0.816347 0.838695 +vt 0.816347 0.161306 +vt 0.634112 0.298154 +vt 0.501866 0.183820 +vt 0.629884 0.000098 +vt 0.457090 0.682536 +vt 0.576709 0.615643 +vt 0.629409 0.555968 +vt 0.569271 0.555968 +vt 0.569271 0.444032 +vt 0.629409 0.444032 +vt 0.576709 0.384356 +vt 0.457091 0.317464 +vt 0.224023 0.444032 +vt 0.364968 0.444032 +vt 0.364968 0.555968 +vt 0.224023 0.555967 +vt 0.497976 0.555968 +vt 0.497976 0.444032 +vt 0.000098 0.555967 +vt 0.000098 0.444032 +vn 0.9772 -0.2122 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.8316 0.5554 0.0000 +vn 0.9921 0.1251 0.0000 +vn -0.9251 -0.3798 0.0000 +vn 0.6540 -0.7565 0.0000 +vn -0.5188 -0.8549 0.0000 +vn -0.9946 -0.1041 0.0000 +s off +f 1053/1985/678 1054/1986/678 1047/1987/678 1048/1988/678 +f 1045/1989/679 1050/1990/679 1053/1991/679 1048/1992/679 +f 1047/1993/680 1054/1994/680 1049/1995/680 1046/1996/680 +f 1050/1990/679 1051/1997/679 1052/1998/679 1053/1991/679 +f 1052/1999/681 1055/2000/681 1056/2001/681 1057/2002/681 +f 1054/1994/680 1057/2003/680 1058/2004/680 1049/1995/680 +f 1053/1985/682 1052/1999/682 1057/2002/682 1054/1986/682 +f 1049/2005/683 1058/2006/683 1051/2007/683 1050/2008/683 +f 1056/2001/684 1055/2000/684 1059/2009/684 1060/2010/684 +f 1058/2006/685 1060/2010/685 1059/2009/685 1051/2007/685 +f 1051/1997/679 1059/2009/679 1055/2000/679 1052/1998/679 +f 1057/2003/680 1056/2001/680 1060/2010/680 1058/2004/680 +f 1049/2005/686 1050/2008/686 1045/2011/686 1046/2012/686 +o TriggerGuard_Cube.007 +v -0.991593 0.009137 3.090896 +v -0.991593 0.050129 3.090896 +v -0.991593 0.050129 2.909104 +v -0.991593 0.009137 2.909104 +v -0.359255 0.050129 2.909104 +v -0.359255 0.009137 2.909104 +v -0.359255 0.050129 3.090896 +v -0.359255 0.009137 3.090896 +v -0.952793 -0.032302 3.079741 +v -0.475801 -0.032302 3.079741 +v -0.398056 -0.032302 3.079741 +v -0.952793 -0.032302 2.920259 +v -0.477062 -0.032302 2.920259 +v -0.398056 -0.032302 2.920259 +v -0.547697 -0.243266 2.920259 +v -0.468691 -0.243266 2.920259 +v -0.417833 -0.308250 2.920259 +v -0.496840 -0.308250 2.920259 +v -0.468691 -0.243266 3.079741 +v -0.546437 -0.243266 3.079741 +v -0.495579 -0.308250 3.079741 +v -0.884730 -0.317360 2.926286 +v -0.883469 -0.317360 3.085769 +v -0.417833 -0.308250 3.079741 +v -0.548320 -0.390292 3.079741 +v -0.549581 -0.390292 2.920259 +v -0.470574 -0.390292 2.920259 +v -0.470574 -0.390292 3.079741 +v -0.933383 -0.398929 2.926286 +v -0.932122 -0.398929 3.085769 +v -1.071287 -0.315922 3.087949 +v -1.072548 -0.315922 2.928467 +v -1.022634 -0.234353 3.087949 +v -1.023895 -0.234353 2.928467 +vt 0.956076 0.222809 +vt 0.956106 0.245106 +vt 0.612150 0.245577 +vt 0.612119 0.223279 +vt 0.589852 0.245607 +vt 0.612285 0.344461 +vt 0.589988 0.344491 +vt 0.612315 0.366758 +vt 0.956241 0.343990 +vt 0.956272 0.366288 +vt 0.935199 0.389660 +vt 0.675742 0.390014 +vt 0.633453 0.390072 +vt 0.724411 0.676828 +vt 0.465641 0.676037 +vt 0.465221 0.589286 +vt 0.724676 0.590079 +vt 0.633193 0.199908 +vt 0.676167 0.199849 +vt 0.934939 0.199494 +vt 0.559100 0.338466 +vt 0.558982 0.251717 +vt 0.714431 0.085044 +vt 0.671457 0.085103 +vt 0.643744 0.049793 +vt 0.686720 0.049734 +vt 0.438087 0.338631 +vt 0.437968 0.251882 +vt 0.714322 0.504715 +vt 0.672032 0.504773 +vt 0.344631 0.676928 +vt 0.344210 0.590177 +vt 0.299324 0.590176 +vt 0.299745 0.676927 +vt 0.088672 0.676342 +vt 0.088251 0.589590 +vt 0.393201 0.338693 +vt 0.393082 0.251943 +vt 0.686706 0.540101 +vt 0.644417 0.540159 +vt 0.297859 0.338823 +vt 0.297055 0.252076 +vt 0.340030 0.252017 +vt 0.340149 0.338766 +vt 0.715456 0.584688 +vt 0.673166 0.584746 +vt 0.672371 0.005128 +vt 0.715347 0.005069 +vt 0.088240 0.255640 +vt 0.089045 0.342389 +vt 0.000907 0.343793 +vt 0.000102 0.257045 +vt 0.924132 0.000102 +vt 0.897728 0.044507 +vt 0.897730 0.544750 +vt 0.924255 0.589082 +vt 0.999898 0.045153 +vt 0.973494 0.089559 +vt 0.000523 0.676182 +vt 0.000102 0.589431 +vt 0.973372 0.499490 +vt 0.999898 0.543823 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -0.2599 0.9656 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 -0.0000 +vn 0.0000 -0.2599 -0.9656 +vn 0.7300 -0.6835 -0.0000 +vn 0.9483 -0.3175 0.0000 +vn -0.9482 0.3175 0.0075 +vn -0.0235 0.9997 0.0002 +vn -0.0233 0.9997 0.0014 +vn -0.0222 0.9998 0.0002 +vn 0.7875 0.6163 0.0000 +vn -0.7875 -0.6163 0.0062 +vn 0.8412 -0.5408 -0.0000 +vn -0.5122 -0.8588 0.0053 +vn -0.5132 -0.8582 0.0046 +vn -0.5122 -0.8589 0.0040 +vn -0.0158 0.0098 -0.9998 +vn -0.0152 0.0109 -0.9998 +vn -0.0146 0.0096 -0.9998 +vn 0.0158 -0.0098 0.9998 +vn 0.0151 -0.0109 0.9998 +vn 0.0170 -0.0103 0.9998 +vn 0.0225 -0.9997 -0.0002 +vn 0.0220 -0.9998 -0.0014 +vn 0.0238 -0.9997 -0.0002 +vn -0.0123 0.0059 -0.9999 +vn -0.0127 0.0076 -0.9999 +vn -0.0116 0.0069 -0.9999 +vn 0.5123 0.8588 -0.0053 +vn 0.5112 0.8595 -0.0039 +vn 0.5122 0.8589 -0.0040 +vn 0.0126 -0.0061 0.9999 +vn 0.0105 -0.0062 0.9999 +vn 0.0116 -0.0069 0.9999 +s off +f 1064/2013/687 1063/2014/687 1065/2015/687 1066/2016/687 +f 1066/2017/688 1065/2015/688 1067/2018/688 1068/2019/688 +f 1068/2020/689 1067/2018/689 1062/2021/689 1061/2022/689 +f 1068/2020/690 1061/2022/690 1069/2023/690 1070/2024/690 1071/2025/690 +f 1065/2015/691 1063/2014/691 1062/2021/691 1067/2018/691 +f 1072/2026/692 1073/2027/692 1070/2028/692 1069/2029/692 +f 1064/2013/693 1066/2016/693 1074/2030/693 1073/2031/693 1072/2032/693 +f 1066/2017/694 1068/2019/694 1071/2033/694 1074/2034/694 +f 1075/2035/687 1076/2036/687 1077/2037/687 1078/2038/687 +f 1074/2034/695 1071/2033/695 1079/2039/695 1076/2040/695 +f 1071/2025/689 1070/2024/689 1080/2041/689 1079/2042/689 +f 1070/2028/696 1073/2027/696 1075/2043/696 1080/2044/696 +f 1073/2031/687 1074/2030/687 1076/2036/687 1075/2035/687 +f 1081/2045/697 1078/2046/697 1082/2047/698 1083/2048/699 +f 1076/2040/700 1079/2039/700 1084/2049/700 1077/2050/700 +f 1080/2044/701 1075/2043/701 1078/2046/701 1081/2045/701 +f 1079/2042/689 1080/2041/689 1081/2051/689 1084/2052/689 +f 1085/2053/692 1086/2054/692 1087/2055/692 1088/2056/692 +f 1084/2052/689 1081/2051/689 1085/2057/689 1088/2058/689 +f 1078/2038/687 1077/2037/687 1087/2059/687 1086/2060/687 +f 1077/2050/702 1084/2049/702 1088/2056/702 1087/2055/702 +f 1089/2061/703 1090/2062/704 1091/2063/705 1092/2064/705 +f 1078/2038/706 1086/2060/706 1089/2065/707 1082/2066/708 +f 1085/2057/709 1081/2051/709 1083/2067/710 1090/2068/711 +f 1086/2054/712 1085/2053/712 1090/2062/713 1089/2061/714 +f 1082/2066/715 1089/2065/716 1092/2069/717 1094/2070/717 +f 1083/2048/718 1082/2047/719 1094/2071/720 1093/2072/720 +f 1090/2068/721 1083/2067/722 1093/2073/723 1091/2074/723 +o UndeRail_Cube.005 +v -1.185225 0.299229 2.771775 +v -1.185225 0.078919 2.771775 +v -1.579320 0.146982 2.771775 +v -1.579320 0.299229 2.771775 +v -0.726389 0.070637 2.798583 +v -0.726389 0.299229 2.798583 +v -0.726389 0.299229 3.201417 +v -0.726389 0.070637 3.201417 +v -0.770558 0.343398 2.798583 +v -1.096886 0.343398 2.798583 +v -1.096886 0.343398 3.201417 +v -0.770558 0.343398 3.201417 +v -1.185225 0.078919 3.228225 +v -1.185225 0.299229 3.228225 +v -1.579320 0.299229 3.228225 +v -1.579320 0.146982 3.228225 +v -1.185225 0.343398 3.201417 +v -1.185225 0.343398 2.798583 +v -1.579320 0.343398 2.798583 +v -1.579320 0.343398 3.201417 +v -1.096886 0.026467 2.798583 +v -0.770558 0.026467 2.798583 +v -0.770558 0.026467 3.201417 +v -1.096886 0.026467 3.201417 +v -1.096886 0.070637 2.771775 +v -1.096886 0.299229 2.771775 +v -0.770558 0.299229 2.771775 +v -0.770558 0.070637 2.771775 +v -0.770558 0.070637 3.228225 +v -0.770558 0.299229 3.228225 +v -1.096886 0.299229 3.228225 +v -1.096886 0.070637 3.228225 +v -1.690351 0.200246 3.201417 +v -1.690351 0.287913 3.201417 +v -1.690351 0.287913 2.798583 +v -1.690351 0.200246 2.798583 +v -1.184581 0.033984 3.201417 +v -1.184581 0.033984 2.798583 +v -1.659805 0.134929 3.201417 +v -1.579964 0.102270 3.201417 +v -1.667659 0.194088 3.228225 +v -1.667659 0.291126 3.228225 +v -1.646801 0.339453 3.201417 +v -1.659805 0.134929 2.798583 +v -1.667659 0.194088 2.771775 +v -1.579964 0.102270 2.798583 +v -1.667040 0.336028 2.798583 +v -1.667659 0.291126 2.771775 +vt 0.496907 0.334267 +vt 0.496248 0.427323 +vt 0.330718 0.396651 +vt 0.331617 0.332937 +vt 0.796702 0.313152 +vt 0.699270 0.313152 +vt 0.699270 0.141452 +vt 0.796702 0.141452 +vt 0.672646 0.313152 +vt 0.534343 0.312606 +vt 0.534099 0.142197 +vt 0.672646 0.141452 +vt 0.495875 0.027439 +vt 0.496587 0.120544 +vt 0.331121 0.122196 +vt 0.330318 0.058264 +vt 0.496747 0.142387 +vt 0.497024 0.312498 +vt 0.332011 0.311404 +vt 0.331527 0.143826 +vt 0.962417 0.313152 +vt 0.823327 0.313152 +vt 0.823327 0.141452 +vt 0.962417 0.141452 +vt 0.533520 0.431122 +vt 0.534247 0.334472 +vt 0.672551 0.335076 +vt 0.671920 0.432340 +vt 0.671602 0.022049 +vt 0.672523 0.119489 +vt 0.533976 0.120298 +vt 0.533160 0.023583 +vt 0.237618 0.142584 +vt 0.274533 0.143000 +vt 0.272621 0.312625 +vt 0.235706 0.312209 +vt 0.495520 0.005286 +vt 0.532760 0.001691 +vt 0.495918 0.449476 +vt 0.533168 0.453017 +vt 0.817912 0.125359 +vt 0.796702 0.119430 +vt 0.678060 0.125358 +vt 0.699270 0.119430 +vt 0.817912 0.329246 +vt 0.796702 0.335174 +vt 0.678060 0.329246 +vt 0.699270 0.335174 +vt 0.294957 0.050376 +vt 0.328880 0.036291 +vt 0.292958 0.078293 +vt 0.293666 0.119719 +vt 0.302947 0.143203 +vt 0.295361 0.404466 +vt 0.293427 0.376539 +vt 0.329265 0.418612 +vt 0.295134 0.312879 +vt 0.294347 0.335145 +vt 0.208418 0.134257 +vt 0.235192 0.127765 +vt 0.276053 0.128226 +vt 0.300664 0.131838 +vt 0.206326 0.319876 +vt 0.232947 0.326970 +vt 0.294189 0.319085 +vt 0.273808 0.327430 +vt 0.999933 0.141452 +vt 0.999933 0.313152 +vt 0.671720 0.454277 +vt 0.671350 0.000067 +vt 0.169020 0.311458 +vt 0.170932 0.141832 +vt 0.207256 0.142242 +vt 0.205344 0.311867 +vt 0.000067 0.309553 +vt 0.001979 0.139928 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 -0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.0462 -0.5153 0.8558 +vn 0.0000 0.5189 0.8549 +vn -0.0462 -0.5153 -0.8558 +vn 0.0000 0.5189 -0.8549 +vn 0.4606 -0.4605 0.7588 +vn 0.4605 0.4606 0.7588 +vn 0.4606 -0.4605 -0.7588 +vn 0.4605 0.4606 -0.7588 +vn -0.2180 -0.4596 0.8610 +vn -0.0393 0.5077 0.8606 +vn -0.2180 -0.4596 -0.8610 +vn -0.0453 0.5154 -0.8557 +vn -0.7527 -0.3520 0.5563 +vn -0.6638 0.5609 0.4947 +vn -0.7527 -0.3520 -0.5563 +vn -0.7340 0.3556 -0.5787 +vn -0.0854 -0.9963 -0.0000 +vn 0.0000 -0.5188 -0.8549 +vn 0.5189 0.0000 -0.8549 +vn 0.7071 -0.7071 -0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.5189 0.0000 0.8549 +vn 0.0000 -0.5188 0.8549 +vn -0.3786 -0.9256 -0.0000 +vn -0.0727 0.9974 -0.0024 +vn -0.0883 -0.5113 0.8549 +vn -0.0883 -0.5113 -0.8549 +vn -0.9058 -0.4236 -0.0000 +vn -0.7633 0.0000 0.6461 +vn -0.8303 0.5571 0.0185 +vn -0.7633 0.0000 -0.6461 +vn -0.1702 -0.9854 -0.0000 +s off +f 1095/2075/724 1096/2076/724 1097/2077/724 1098/2078/724 +f 1099/2079/725 1100/2080/725 1101/2081/725 1102/2082/725 +f 1103/2083/726 1104/2084/726 1105/2085/726 1106/2086/726 +f 1107/2087/727 1108/2088/727 1109/2089/727 1110/2090/727 +f 1111/2091/726 1112/2092/726 1113/2093/726 1114/2094/726 +f 1115/2095/728 1116/2096/728 1117/2097/728 1118/2098/728 +f 1119/2099/724 1120/2100/724 1121/2101/724 1122/2102/724 +f 1123/2103/727 1124/2104/727 1125/2105/727 1126/2106/727 +f 1127/2107/729 1128/2108/729 1129/2109/729 1130/2110/729 +f 1131/2111/730 1118/2112/730 1126/2106/730 1107/2087/730 +f 1108/2088/731 1125/2105/731 1105/2085/731 1111/2091/731 +f 1132/2113/732 1096/2076/732 1119/2099/732 1115/2114/732 +f 1112/2092/733 1104/2084/733 1120/2100/733 1095/2075/733 +f 1117/2115/734 1102/2082/734 1123/2116/734 +f 1106/2117/735 1124/2118/735 1101/2081/735 +f 1116/2119/736 1122/2120/736 1099/2079/736 +f 1103/2121/737 1100/2080/737 1121/2122/737 +f 1133/2123/738 1134/2124/738 1110/2090/738 1135/2125/738 +f 1136/2126/739 1109/2089/739 1114/2094/739 1137/2127/739 +f 1138/2128/740 1139/2129/740 1097/2077/740 1140/2130/740 +f 1141/2131/741 1113/2093/741 1098/2078/741 1142/2132/741 +f 1133/2133/742 1135/2134/742 1127/2107/742 +f 1136/2135/743 1137/2136/743 1128/2108/743 +f 1138/2137/744 1130/2110/744 1139/2138/744 +f 1141/2139/745 1142/2140/745 1129/2109/745 +f 1115/2095/746 1118/2098/746 1131/2141/746 1132/2142/746 +f 1126/2106/727 1125/2105/727 1108/2088/727 1107/2087/727 +f 1105/2085/726 1104/2084/726 1112/2092/726 1111/2091/726 +f 1120/2100/724 1119/2099/724 1096/2076/724 1095/2075/724 +f 1116/2143/747 1115/2114/747 1119/2099/747 1122/2102/747 +f 1104/2084/733 1103/2083/733 1121/2101/733 1120/2100/733 +f 1100/2080/748 1099/2079/748 1122/2120/748 1121/2122/748 +f 1117/2097/749 1116/2096/749 1099/2079/749 1102/2082/749 +f 1103/2083/750 1106/2086/750 1101/2081/750 1100/2080/750 +f 1124/2118/751 1123/2116/751 1102/2082/751 1101/2081/751 +f 1118/2112/752 1117/2144/752 1123/2103/752 1126/2106/752 +f 1106/2086/731 1105/2085/731 1125/2105/731 1124/2104/731 +f 1140/2145/753 1134/2146/753 1133/2147/753 1138/2148/753 +f 1110/2090/727 1109/2089/727 1136/2126/727 1135/2125/727 +f 1114/2094/754 1113/2093/754 1141/2131/754 1137/2127/754 +f 1098/2078/724 1097/2077/724 1139/2129/724 1142/2132/724 +f 1095/2075/733 1098/2078/733 1113/2093/733 1112/2092/733 +f 1109/2089/731 1108/2088/731 1111/2091/731 1114/2094/731 +f 1107/2087/755 1110/2090/755 1134/2124/755 1131/2111/755 +f 1097/2077/756 1096/2076/756 1132/2113/756 1140/2130/756 +f 1138/2148/757 1133/2147/757 1127/2107/757 1130/2110/757 +f 1135/2134/758 1136/2135/758 1128/2108/758 1127/2107/758 +f 1137/2127/759 1141/2131/759 1129/2109/759 1128/2108/759 +f 1142/2140/760 1139/2138/760 1130/2110/760 1129/2109/760 +f 1132/2149/761 1131/2150/761 1134/2146/761 1140/2145/761 +o Underail_Cube.004 +v -0.033837 0.094104 2.927233 +v -0.033837 -0.016338 2.927233 +v -0.115306 -0.142061 2.927233 +v -0.115306 0.094104 2.927233 +v 0.797049 0.094104 2.927233 +v 0.797049 -0.016338 2.927233 +v 0.796577 -0.079782 3.048582 +v 0.796577 -0.079782 2.951418 +v 0.886076 -0.258069 2.951418 +v 0.886076 -0.258069 3.048582 +v 0.797049 -0.016338 3.072767 +v 0.797049 0.094104 3.072767 +v -0.033837 0.094104 3.072767 +v -0.033837 -0.016338 3.072767 +v -0.026079 -0.079782 2.951418 +v -0.115306 0.094104 3.072767 +v -0.272459 0.094104 2.927233 +v -0.272459 0.094104 3.072767 +v -0.115306 -0.142061 3.072767 +v -0.272459 -0.098487 3.072767 +v -0.264701 -0.161930 3.048582 +v -0.107548 -0.205505 3.048582 +v -0.272459 -0.098487 2.927233 +v -0.026079 -0.079782 3.048582 +v -0.107548 -0.205505 2.951418 +v -0.264701 -0.161930 2.951418 +v 0.886547 0.093771 3.072767 +v 0.886547 0.093771 2.927233 +v 0.886547 -0.194626 3.072767 +v 0.888072 -0.069961 3.072767 +v 0.917361 0.000750 3.072767 +v 0.988072 0.030039 3.072767 +v 1.058783 0.000750 3.072767 +v 1.088072 -0.069961 3.072767 +v 1.088250 -0.195375 3.072767 +v 1.088250 0.093022 3.072767 +v 0.886547 -0.194626 2.927233 +v 1.088250 -0.195375 2.927233 +v 1.087778 -0.258818 2.951418 +v 1.087778 -0.258818 3.048582 +v 1.152616 -0.153109 2.951418 +v 1.152616 -0.153109 3.048582 +v 1.153087 -0.089666 3.072767 +v 1.088250 0.093022 2.927233 +v 0.888072 -0.069961 2.927233 +v 0.917362 -0.140671 2.927233 +v 0.988072 -0.169961 2.927233 +v 1.058783 -0.140671 2.927233 +v 1.088072 -0.069961 2.927233 +v 1.153087 -0.089666 2.927233 +v 1.153087 0.092782 2.927233 +v 1.153087 0.092782 3.072767 +v 0.917361 0.000750 2.927233 +v 1.058783 0.000750 2.927233 +v 1.058783 -0.140671 3.072767 +v 0.988072 -0.169961 3.072767 +v 0.917362 -0.140671 3.072767 +v 0.988072 0.030039 2.927233 +vt 0.256942 0.260185 +vt 0.256933 0.317461 +vt 0.214669 0.382666 +vt 0.214686 0.260176 +vt 0.687648 0.260227 +vt 0.687763 0.317493 +vt 0.601711 0.530833 +vt 0.601711 0.480441 +vt 0.705172 0.480441 +vt 0.705172 0.530833 +vt 0.687799 0.127573 +vt 0.687669 0.184827 +vt 0.256960 0.184694 +vt 0.256975 0.127402 +vt 0.171036 0.445226 +vt 0.601956 0.445228 +vt 0.175060 0.480439 +vt 0.214701 0.184684 +vt 0.133171 0.260163 +vt 0.133182 0.184670 +vt 0.214727 0.062176 +vt 0.084694 0.563932 +vt 0.000115 0.563931 +vt 0.012784 0.530830 +vt 0.097363 0.530831 +vt 0.033279 0.184656 +vt 0.033268 0.260149 +vt 0.221631 0.027404 +vt 0.263880 0.092631 +vt 0.133159 0.360057 +vt 0.133200 0.084764 +vt 0.175059 0.530831 +vt 0.097363 0.480439 +vt 0.012784 0.480438 +vt 0.000115 0.247598 +vt 0.000122 0.197196 +vt 0.734049 0.184804 +vt 0.734039 0.260260 +vt 0.000115 0.447338 +vt 0.084694 0.447338 +vt 0.263826 0.352230 +vt 0.221562 0.417436 +vt 0.601955 0.566046 +vt 0.171036 0.566045 +vt 0.839166 0.035177 +vt 0.787151 0.048192 +vt 0.734523 0.035224 +vt 0.705294 0.445228 +vt 0.809903 0.445228 +vt 0.809781 0.480442 +vt 0.683548 0.352473 +vt 0.734482 0.409867 +vt 0.730268 0.444846 +vt 0.872622 0.090131 +vt 0.838858 0.100240 +vt 0.823785 0.063507 +vt 0.683589 0.092599 +vt 0.730314 0.000250 +vt 0.809780 0.530834 +vt 0.874095 0.480442 +vt 0.874095 0.530834 +vt 0.842557 0.000115 +vt 0.876014 0.055069 +vt 0.705293 0.566047 +vt 0.809903 0.566047 +vt 0.838659 0.184791 +vt 0.838657 0.260295 +vt 0.966965 0.260301 +vt 0.872297 0.260301 +vt 0.872297 0.184787 +vt 0.966965 0.184787 +vt 0.999885 0.197336 +vt 0.999885 0.247752 +vt 0.735107 0.099900 +vt 0.842531 0.444996 +vt 0.839144 0.409928 +vt 0.872612 0.354969 +vt 0.876000 0.390038 +vt 0.039809 0.641755 +vt 0.039809 0.566277 +vt 0.079503 0.566277 +vt 0.079503 0.641755 +vt 0.238278 0.641755 +vt 0.238278 0.566277 +vt 0.277972 0.566277 +vt 0.277972 0.641755 +vt 0.786807 0.151937 +vt 0.119197 0.566277 +vt 0.119197 0.641755 +vt 0.198585 0.641755 +vt 0.198585 0.566277 +vt 0.158890 0.641755 +vt 0.158890 0.566277 +vt 0.000115 0.641755 +vt 0.000115 0.566277 +vt 0.317667 0.566277 +vt 0.317667 0.641755 +vt 0.823538 0.136870 +vt 0.750181 0.136623 +vt 0.750419 0.063267 +vt 0.786796 0.293143 +vt 0.823528 0.308218 +vt 0.750162 0.308451 +vt 0.838844 0.344854 +vt 0.735078 0.345179 +vt 0.823764 0.381591 +vt 0.787122 0.396904 +vt 0.750386 0.381821 +vn 0.0000 0.0000 -1.0000 +vn -0.8937 -0.4486 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -0.3562 -0.9344 +vn 0.0000 1.0000 0.0000 +vn -0.1012 -0.3652 0.9254 +vn -1.0000 0.0000 0.0000 +vn 0.4263 -0.2762 0.8614 +vn 0.0000 -1.0000 -0.0000 +vn 0.8392 -0.5438 -0.0000 +vn -0.2672 -0.9636 0.0000 +vn -0.9926 -0.1214 0.0000 +vn 0.0037 1.0000 0.0000 +vn -0.1012 -0.3652 -0.9254 +vn 0.4263 -0.2762 -0.8614 +vn 0.0000 -0.3562 0.9344 +vn -0.0013 -0.3562 -0.9344 +vn -0.5737 -0.2880 -0.7667 +vn -0.0016 0.0010 1.0000 +vn -0.5737 -0.2880 0.7667 +vn 0.8524 -0.5228 0.0000 +vn 0.5062 -0.3105 0.8046 +vn 0.5049 -0.3117 0.8049 +vn -0.0013 -0.3562 0.9344 +vn -0.0037 -1.0000 0.0000 +vn -0.0001 0.0018 1.0000 +vn 1.0000 -0.0009 -0.0016 +vn 1.0000 0.0000 0.0000 +vn 1.0000 -0.0004 -0.0018 +vn 1.0000 -0.0060 -0.0012 +vn 1.0000 -0.0092 -0.0002 +vn 1.0000 -0.0074 -0.0000 +vn 0.5062 -0.3105 -0.8046 +vn 0.5071 -0.3089 -0.8046 +vn 0.0006 0.0017 1.0000 +vn 0.9239 -0.3827 -0.0000 +vn -0.9239 -0.3827 -0.0000 +vn 0.9239 0.3827 0.0000 +vn -0.9239 0.3827 0.0000 +vn -0.3827 0.9239 0.0000 +vn 0.3827 -0.9239 -0.0000 +vn -0.3827 -0.9239 -0.0000 +vn 0.3827 0.9239 0.0000 +vn -0.0002 -0.0018 -1.0000 +vn 0.0009 -0.0016 -1.0000 +vn 0.0018 0.0002 -1.0000 +s off +f 1143/2151/762 1144/2152/762 1145/2153/762 1146/2154/762 +f 1144/2152/762 1143/2151/762 1147/2155/762 1148/2156/762 +f 1149/2157/763 1150/2158/763 1151/2159/763 1152/2160/763 +f 1153/2161/764 1154/2162/764 1155/2163/764 1156/2164/764 +f 1144/2165/765 1148/2166/765 1150/2158/765 1157/2167/765 +f 1147/2155/766 1143/2151/766 1155/2163/766 1154/2162/766 +f 1158/2168/766 1146/2154/766 1159/2169/766 1160/2170/766 +f 1156/2164/764 1155/2163/764 1158/2168/764 1161/2171/764 +f 1155/2163/766 1143/2151/766 1146/2154/766 1158/2168/766 +f 1161/2172/767 1162/2173/767 1163/2174/767 1164/2175/767 +f 1162/2176/768 1160/2170/768 1159/2169/768 1165/2177/768 +f 1156/2164/769 1161/2171/769 1164/2178/769 1166/2179/769 +f 1146/2154/762 1145/2153/762 1165/2180/762 1159/2169/762 +f 1161/2171/764 1158/2168/764 1160/2170/764 1162/2181/764 +f 1157/2167/770 1150/2158/770 1149/2157/770 1166/2182/770 +f 1157/2167/771 1166/2182/771 1164/2175/771 1167/2183/771 +f 1167/2183/772 1164/2175/772 1163/2174/772 1168/2184/772 +f 1162/2176/773 1165/2177/773 1168/2185/773 1163/2186/773 +f 1147/2155/774 1154/2162/774 1169/2187/774 1170/2188/774 +f 1165/2189/775 1145/2190/775 1167/2183/775 1168/2184/775 +f 1145/2153/776 1144/2152/776 1157/2191/776 1167/2192/776 +f 1153/2193/777 1156/2194/777 1166/2182/777 1149/2157/777 +f 1177/2195/764 1198/2196/764 1171/2197/764 +f 1151/2159/778 1179/2198/778 1180/2199/778 1181/2200/778 +f 1150/2201/779 1148/2156/779 1179/2202/779 1151/2203/779 +f 1177/2195/764 1185/2204/780 1176/2205/764 1197/2206/764 +f 1153/2161/781 1149/2207/781 1152/2208/781 1171/2197/781 +f 1154/2162/764 1153/2161/764 1169/2187/764 +f 1182/2209/782 1181/2200/782 1183/2210/782 1184/2211/782 +f 1177/2195/783 1182/2212/783 1184/2213/783 1185/2204/784 +f 1171/2214/785 1152/2160/785 1182/2209/785 1177/2215/785 +f 1152/2160/786 1151/2159/786 1181/2200/786 1182/2209/786 +f 1170/2188/774 1169/2187/774 1178/2216/774 1186/2217/774 +f 1176/2205/764 1185/2204/787 1178/2216/764 +f 1192/2218/788 1193/2219/789 1194/2220/789 1185/2221/790 +f 1192/2218/791 1185/2221/792 1184/2222/793 1183/2223/793 +f 1186/2217/774 1178/2216/774 1194/2220/774 1193/2219/774 +f 1172/2224/764 1169/2187/764 1153/2161/764 +f 1181/2225/794 1180/2226/794 1192/2227/795 1183/2228/794 +f 1178/2216/764 1185/2204/796 1194/2220/764 +f 1195/2229/797 1173/2230/797 1172/2231/797 1187/2232/797 +f 1191/2233/798 1176/2234/798 1175/2235/798 1196/2236/798 +f 1178/2216/764 1169/2187/764 1174/2237/764 +f 1187/2232/799 1172/2231/799 1199/2238/799 1188/2239/799 +f 1190/2240/800 1197/2241/800 1176/2234/800 1191/2233/800 +f 1189/2242/801 1198/2243/801 1197/2241/801 1190/2240/801 +f 1200/2244/802 1174/2245/802 1173/2230/802 1195/2229/802 +f 1196/2236/803 1175/2235/803 1174/2246/803 1200/2247/803 +f 1188/2239/804 1199/2238/804 1198/2243/804 1189/2242/804 +f 1177/2195/764 1197/2206/764 1198/2196/764 +f 1192/2227/805 1186/2217/762 1193/2219/762 +f 1170/2188/762 1148/2156/762 1147/2155/762 +f 1175/2248/764 1178/2216/764 1174/2237/764 +f 1173/2249/764 1169/2187/764 1172/2224/764 +f 1199/2250/764 1171/2197/764 1198/2196/764 +f 1171/2197/764 1199/2250/764 1172/2224/764 1153/2161/764 +f 1200/2251/762 1170/2188/762 1186/2217/762 +f 1200/2251/762 1186/2217/762 1196/2252/762 +f 1169/2187/764 1173/2249/764 1174/2237/764 +f 1178/2216/764 1175/2248/764 1176/2205/764 +f 1200/2251/762 1195/2253/762 1170/2188/762 +f 1196/2252/762 1186/2217/762 1191/2254/762 +f 1195/2253/762 1187/2255/762 1170/2188/762 +f 1170/2188/762 1187/2255/762 1148/2156/762 +f 1186/2217/762 1192/2227/806 1191/2254/762 +f 1191/2254/762 1192/2227/807 1180/2226/762 1190/2256/762 +f 1190/2256/762 1180/2226/762 1189/2257/762 +f 1179/2202/762 1148/2156/762 1187/2255/762 1188/2258/762 +f 1180/2226/762 1179/2202/762 1189/2257/762 +f 1188/2258/762 1189/2257/762 1179/2202/762 +o UnderailBit_Cylinder.006 +v -0.166791 0.038391 2.882968 +v -0.166791 0.038391 3.117032 +v -0.118438 0.018363 3.117032 +v -0.118438 0.018363 2.882968 +v -0.098409 -0.029991 3.117032 +v -0.098409 -0.029991 2.882968 +v -0.118438 -0.078344 3.117032 +v -0.118438 -0.078344 2.882968 +v -0.166791 -0.098373 3.117032 +v -0.166791 -0.098373 2.882968 +v -0.215145 -0.078344 3.117032 +v -0.215145 -0.078344 2.882968 +v -0.235173 -0.029991 3.117032 +v -0.235173 -0.029991 2.882968 +v -0.215145 0.018363 3.117032 +v -0.215145 0.018363 2.882968 +vt 0.936103 0.259604 +vt 0.936115 0.740360 +vt 0.828618 0.740362 +vt 0.828606 0.259607 +vt 0.721118 0.740365 +vt 0.721107 0.259609 +vt 0.613620 0.740368 +vt 0.613609 0.259612 +vt 0.506122 0.740370 +vt 0.506111 0.259614 +vt 0.398623 0.740373 +vt 0.398611 0.259617 +vt 0.291126 0.740375 +vt 0.291114 0.259620 +vt 0.000116 0.816392 +vt 0.076128 0.740380 +vt 0.183627 0.740378 +vt 0.259639 0.816392 +vt 0.259641 0.923889 +vt 0.183628 0.999903 +vt 0.076130 0.999903 +vt 0.000116 0.923892 +vt 0.183615 0.259622 +vt 0.076117 0.259625 +vt 0.000101 0.183616 +vt 0.000097 0.076116 +vt 0.076107 0.000102 +vt 0.183605 0.000097 +vt 0.259621 0.076108 +vt 0.259625 0.183605 +vn 0.3827 0.9239 0.0000 +vn 0.9239 0.3827 0.0000 +vn 0.9239 -0.3827 -0.0000 +vn 0.3827 -0.9239 -0.0000 +vn -0.3827 -0.9239 -0.0000 +vn -0.9239 -0.3827 -0.0000 +vn -0.0000 0.0000 1.0000 +vn -0.9239 0.3827 0.0000 +vn -0.3827 0.9239 0.0000 +vn 0.0000 0.0000 -1.0000 +s off +f 1201/2259/808 1202/2260/808 1203/2261/808 1204/2262/808 +f 1204/2262/809 1203/2261/809 1205/2263/809 1206/2264/809 +f 1206/2264/810 1205/2263/810 1207/2265/810 1208/2266/810 +f 1208/2266/811 1207/2265/811 1209/2267/811 1210/2268/811 +f 1210/2268/812 1209/2267/812 1211/2269/812 1212/2270/812 +f 1212/2270/813 1211/2269/813 1213/2271/813 1214/2272/813 +f 1203/2273/814 1202/2274/814 1215/2275/814 1213/2276/814 1211/2277/814 1209/2278/814 1207/2279/814 1205/2280/814 +f 1214/2272/815 1213/2271/815 1215/2275/815 1216/2281/815 +f 1216/2281/816 1215/2275/816 1202/2274/816 1201/2282/816 +f 1201/2282/817 1204/2283/817 1206/2284/817 1208/2285/817 1210/2286/817 1212/2287/817 1214/2288/817 1216/2281/817 +o AmmoVice_Cylinder.010 +v -2.170566 0.644712 2.891261 +v -2.102717 0.644712 2.891261 +v -2.102717 0.567822 2.923110 +v -2.170566 0.567822 2.923110 +v -2.102717 0.535974 3.000000 +v -2.170566 0.535974 3.000000 +v -2.102717 0.567822 3.076890 +v -2.170566 0.567822 3.076890 +v -2.102717 0.644712 3.108739 +v -2.170566 0.644712 3.108739 +v -2.102717 0.721602 3.076890 +v -2.170566 0.721602 3.076890 +v -2.102717 0.753451 3.000000 +v -2.170566 0.753451 3.000000 +v -2.102717 0.721602 2.923110 +v -2.170566 0.721602 2.923110 +v -2.209619 0.644712 3.088337 +v -2.209619 0.582248 3.062464 +v -2.209619 0.644712 2.911663 +v -2.209619 0.582248 2.937536 +v -2.209619 0.556375 3.000000 +v -2.209619 0.707176 3.062464 +v -2.209619 0.733049 3.000000 +v -2.209619 0.707176 2.937536 +vt 0.101983 0.250048 +vt 0.000096 0.250048 +vt 0.000097 0.125071 +vt 0.101983 0.125072 +vt 0.000097 0.000096 +vt 0.101984 0.000096 +vt 0.101984 0.999904 +vt 0.000097 0.999905 +vt 0.000097 0.874929 +vt 0.101983 0.874929 +vt 0.000096 0.749953 +vt 0.101983 0.749952 +vt 0.000096 0.624977 +vt 0.101982 0.624976 +vt 0.000096 0.500000 +vt 0.101982 0.500000 +vt 0.000096 0.375024 +vt 0.101982 0.375024 +vt 0.167101 0.761676 +vt 0.167101 0.863204 +vt 0.340610 0.547116 +vt 0.239083 0.547116 +vt 0.167292 0.475324 +vt 0.167292 0.373796 +vt 0.239084 0.302006 +vt 0.340613 0.302006 +vt 0.412403 0.373798 +vt 0.412403 0.475326 +vt 0.167100 0.386748 +vt 0.167100 0.488276 +vt 0.167101 0.011819 +vt 0.167101 0.113348 +vt 0.167100 0.636700 +vt 0.167100 0.738228 +vt 0.167101 0.261772 +vt 0.167100 0.363300 +vt 0.167101 0.136796 +vt 0.167101 0.238324 +vt 0.167101 0.886652 +vt 0.167101 0.988181 +vt 0.167100 0.511724 +vt 0.167100 0.613252 +vn 0.0000 -0.3827 -0.9239 +vn 0.0000 -0.9239 -0.3827 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 -0.3827 0.9239 +vn 0.0000 0.3827 0.9239 +vn 0.0000 0.9239 0.3827 +vn 0.0000 0.9239 -0.3827 +vn 0.0000 0.3827 -0.9239 +vn -0.4347 -0.3446 0.8320 +vn -1.0000 0.0000 0.0000 +vn -0.4347 0.8320 -0.3446 +vn -0.4347 -0.8320 -0.3446 +vn -0.4347 0.3446 0.8320 +vn -0.4347 0.3446 -0.8320 +vn -0.4347 -0.3446 -0.8320 +vn -0.4347 -0.8320 0.3446 +vn -0.4347 0.8320 0.3446 +s off +f 1217/2289/818 1218/2290/818 1219/2291/818 1220/2292/818 +f 1220/2292/819 1219/2291/819 1221/2293/819 1222/2294/819 +f 1222/2295/820 1221/2296/820 1223/2297/820 1224/2298/820 +f 1224/2298/821 1223/2297/821 1225/2299/821 1226/2300/821 +f 1226/2300/822 1225/2299/822 1227/2301/822 1228/2302/822 +f 1228/2302/823 1227/2301/823 1229/2303/823 1230/2304/823 +f 1230/2304/824 1229/2303/824 1231/2305/824 1232/2306/824 +f 1232/2306/825 1231/2305/825 1218/2290/825 1217/2289/825 +f 1224/2298/826 1226/2300/826 1233/2307/826 1234/2308/826 +f 1235/2309/827 1236/2310/827 1237/2311/827 1234/2312/827 1233/2313/827 1238/2314/827 1239/2315/827 1240/2316/827 +f 1230/2304/828 1232/2306/828 1240/2317/828 1239/2318/828 +f 1220/2292/829 1222/2294/829 1237/2319/829 1236/2320/829 +f 1226/2300/830 1228/2302/830 1238/2321/830 1233/2322/830 +f 1232/2306/831 1217/2289/831 1235/2323/831 1240/2324/831 +f 1217/2289/832 1220/2292/832 1236/2325/832 1235/2326/832 +f 1222/2295/833 1224/2298/833 1234/2327/833 1237/2328/833 +f 1228/2302/834 1230/2304/834 1239/2329/834 1238/2330/834 +o SideThingy_Cube.009 +v -1.552216 0.766425 3.449060 +v -1.552216 0.766425 3.324053 +v -1.613245 0.699098 3.324053 +v -1.613245 0.699098 3.449060 +v -1.552216 0.456014 3.324053 +v -1.048308 0.766425 3.449060 +v -1.048308 0.766425 3.324053 +v -1.552216 0.456014 3.449060 +v -1.048308 0.456014 3.324053 +v -1.041527 0.788142 3.315308 +v -1.041527 0.434297 3.315308 +v -1.048308 0.456014 3.449060 +v -1.041527 0.788142 3.457806 +v -1.041527 0.434297 3.457806 +v -0.900483 0.434297 3.457806 +v -0.900483 0.788142 3.457806 +v -0.900483 0.788142 3.315308 +v -0.896414 0.768510 3.449899 +v -0.896414 0.768510 3.323214 +v -0.900483 0.434297 3.315308 +v -0.896414 0.453929 3.449899 +v -0.817755 0.457256 3.449106 +v -0.817755 0.767895 3.449106 +v -0.896414 0.453929 3.323214 +v -0.817755 0.457256 3.324007 +v -0.817755 0.767895 3.324007 +v -1.613245 0.523341 3.449060 +v -1.613245 0.523341 3.324053 +v -1.552216 0.766425 2.550940 +v -1.613245 0.699098 2.550940 +v -1.613245 0.699098 2.675947 +v -1.552216 0.766425 2.675947 +v -1.552216 0.456014 2.675947 +v -1.048308 0.766425 2.675947 +v -1.048308 0.766425 2.550940 +v -1.552216 0.456014 2.550940 +v -1.048308 0.456014 2.675947 +v -1.041528 0.434297 2.684692 +v -1.041528 0.788142 2.684692 +v -1.048308 0.456014 2.550940 +v -1.041528 0.788142 2.542194 +v -0.900483 0.788142 2.542194 +v -0.900483 0.434297 2.542194 +v -1.041528 0.434297 2.542194 +v -0.900483 0.788142 2.684692 +v -0.896414 0.768510 2.676786 +v -0.896414 0.768510 2.550101 +v -0.900483 0.434297 2.684692 +v -0.817755 0.767895 2.550894 +v -0.817755 0.457256 2.550894 +v -0.896414 0.453929 2.550101 +v -0.896414 0.453929 2.676786 +v -0.817755 0.457256 2.675993 +v -0.817755 0.767895 2.675993 +v -1.613245 0.523341 2.550940 +v -1.613245 0.523341 2.675947 +vt 0.482699 0.832844 +vt 0.432017 0.832844 +vt 0.432017 0.796002 +vt 0.482699 0.796002 +vt 0.583806 0.442127 +vt 0.634488 0.442127 +vt 0.634488 0.646427 +vt 0.583806 0.646427 +vt 0.457956 0.646427 +vt 0.457956 0.442127 +vt 0.711742 0.646766 +vt 0.711742 0.697448 +vt 0.507442 0.697448 +vt 0.507442 0.646766 +vt 0.711742 0.873980 +vt 0.711742 0.999830 +vt 0.507442 0.999830 +vt 0.507442 0.873980 +vt 0.004929 0.552138 +vt 0.004598 0.674127 +vt 0.000170 0.683319 +vt 0.000481 0.542899 +vt 0.203708 0.542544 +vt 0.058826 0.542797 +vt 0.058726 0.485047 +vt 0.203607 0.484794 +vt 0.054086 0.674326 +vt 0.054411 0.551828 +vt 0.058514 0.683411 +vt 0.000170 0.342162 +vt 0.058508 0.341959 +vt 0.054925 0.350069 +vt 0.003806 0.350339 +vt 0.000380 0.485149 +vt 0.262053 0.542442 +vt 0.261953 0.484692 +vt 0.406935 0.542189 +vt 0.406834 0.484439 +vt 0.565390 0.229561 +vt 0.437849 0.229561 +vt 0.439198 0.197668 +vt 0.565141 0.197668 +vt 0.003970 0.476972 +vt 0.055097 0.476933 +vt 0.439198 0.146949 +vt 0.565141 0.146949 +vt 0.407279 0.197990 +vt 0.407279 0.146628 +vt 0.597033 0.146628 +vt 0.597033 0.197990 +vt 0.437849 0.115057 +vt 0.565390 0.115057 +vt 0.482699 0.724744 +vt 0.432017 0.724744 +vt 0.432017 0.687903 +vt 0.482699 0.687903 +vt 0.407274 0.823298 +vt 0.407274 0.697448 +vt 0.507442 0.823298 +vt 0.593351 0.417384 +vt 0.556510 0.417384 +vt 0.556510 0.366702 +vt 0.593352 0.366702 +vt 0.407274 0.646427 +vt 0.407274 0.442127 +vt 0.760338 0.442127 +vt 0.760338 0.646427 +vt 0.711742 0.823298 +vt 0.402178 0.210347 +vt 0.406625 0.201108 +vt 0.406939 0.341526 +vt 0.402512 0.332335 +vt 0.203400 0.200758 +vt 0.203499 0.143007 +vt 0.348380 0.143257 +vt 0.348281 0.201007 +vt 0.353025 0.332535 +vt 0.348597 0.341620 +vt 0.352696 0.210039 +vt 0.406935 0.000372 +vt 0.403298 0.008549 +vt 0.352179 0.008280 +vt 0.348596 0.000170 +vt 0.406725 0.143358 +vt 0.145054 0.200657 +vt 0.145153 0.142906 +vt 0.000170 0.200407 +vt 0.000269 0.142656 +vt 0.565419 0.000214 +vt 0.565158 0.032106 +vt 0.439216 0.032063 +vt 0.437878 0.000170 +vt 0.403136 0.135182 +vt 0.352009 0.135143 +vt 0.439198 0.082782 +vt 0.565141 0.082825 +vt 0.407296 0.031730 +vt 0.407279 0.083092 +vt 0.597033 0.083158 +vt 0.597050 0.031796 +vt 0.437838 0.114674 +vt 0.565379 0.114718 +vt 0.485252 0.417384 +vt 0.485252 0.366702 +vt 0.448411 0.366702 +vt 0.448411 0.417384 +vt 0.583806 0.341959 +vt 0.457956 0.341959 +vn -0.7409 0.6716 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -1.0000 0.0000 +vn -0.7902 0.0000 -0.6128 +vn 0.0000 0.0000 1.0000 +vn -0.7903 0.0000 0.6127 +vn -0.9545 -0.2981 0.0000 +vn -0.9545 0.2981 0.0000 +vn 0.9792 0.2030 0.0000 +vn 0.0101 0.0000 0.9999 +vn 0.8891 0.0000 -0.4576 +vn 0.8892 0.0000 0.4576 +vn 0.9792 -0.2030 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0423 -0.9991 0.0000 +vn 0.0078 1.0000 0.0000 +vn 0.0101 0.0000 -0.9999 +vn -1.0000 0.0000 0.0000 +vn -0.7409 -0.6716 -0.0000 +vn -0.7903 0.0000 -0.6127 +vn -0.9546 -0.2980 0.0000 +vn -0.9546 0.2980 0.0000 +vn 0.9792 0.2029 0.0000 +vn 0.8891 0.0000 0.4576 +vn 0.8892 0.0000 -0.4576 +s off +f 1241/2331/835 1242/2332/835 1243/2333/835 1244/2334/835 +f 1269/2335/836 1272/2336/836 1274/2337/836 1275/2338/836 +f 1269/2335/837 1275/2338/837 1280/2339/837 1276/2340/837 +f 1249/2341/838 1252/2342/838 1248/2343/838 1245/2344/838 +f 1247/2345/837 1249/2346/837 1245/2347/837 1242/2348/837 +f 1249/2349/839 1247/2350/839 1250/2351/839 1251/2352/839 +f 1253/2353/840 1254/2354/840 1255/2355/840 1256/2356/840 +f 1246/2357/841 1252/2358/841 1254/2354/841 1253/2359/841 +f 1252/2358/842 1249/2349/842 1251/2352/842 1254/2354/842 +f 1247/2350/843 1246/2357/843 1253/2359/843 1250/2351/843 +f 1257/2360/844 1256/2361/844 1258/2362/844 1259/2363/844 +f 1254/2354/838 1251/2352/838 1260/2364/838 1255/2355/838 +f 1250/2365/836 1253/2353/836 1256/2356/836 1257/2366/836 +f 1251/2367/837 1250/2365/837 1257/2366/837 1260/2368/837 +f 1258/2369/845 1261/2370/845 1262/2371/845 1263/2372/845 +f 1260/2364/846 1257/2360/846 1259/2363/846 1264/2373/846 +f 1256/2361/847 1255/2355/847 1261/2374/847 1258/2362/847 +f 1255/2355/848 1260/2364/848 1264/2373/848 1261/2374/848 +f 1265/2375/849 1266/2376/849 1263/2372/849 1262/2371/849 +f 1261/2377/850 1264/2378/850 1265/2375/850 1262/2371/850 +f 1259/2379/851 1258/2380/851 1263/2372/851 1266/2376/851 +f 1264/2381/852 1259/2382/852 1266/2376/852 1265/2375/852 +f 1267/2383/853 1244/2334/853 1243/2333/853 1268/2384/853 +f 1245/2385/854 1248/2386/854 1267/2383/854 1268/2384/854 +f 1242/2387/837 1245/2388/837 1268/2384/837 1243/2333/837 +f 1248/2343/840 1241/2389/840 1244/2334/840 1267/2383/840 +f 1269/2390/835 1270/2391/835 1271/2392/835 1272/2393/835 +f 1276/2340/838 1280/2339/838 1277/2394/838 1273/2395/838 +f 1273/2396/840 1277/2397/840 1274/2337/840 1272/2336/840 +f 1248/2343/840 1252/2342/840 1246/2398/840 1241/2389/840 +f 1277/2399/841 1278/2400/841 1279/2401/841 1274/2402/841 +f 1281/2403/837 1282/2404/837 1283/2405/837 1284/2406/837 +f 1275/2407/855 1281/2408/855 1284/2406/855 1280/2409/855 +f 1280/2409/856 1284/2406/856 1278/2400/856 1277/2399/856 +f 1274/2402/857 1279/2401/857 1281/2408/857 1275/2407/857 +f 1285/2410/858 1286/2411/858 1287/2412/858 1282/2413/858 +f 1284/2406/838 1283/2405/838 1288/2414/838 1278/2400/838 +f 1279/2415/836 1285/2416/836 1282/2404/836 1281/2403/836 +f 1278/2417/840 1288/2418/840 1285/2416/840 1279/2415/840 +f 1287/2419/852 1289/2420/852 1290/2421/852 1291/2422/852 +f 1288/2414/859 1292/2423/859 1286/2411/859 1285/2410/859 +f 1282/2413/860 1287/2412/860 1291/2424/860 1283/2405/860 +f 1283/2405/848 1291/2424/848 1292/2423/848 1288/2414/848 +f 1293/2425/849 1290/2421/849 1289/2420/849 1294/2426/849 +f 1291/2427/850 1290/2421/850 1293/2425/850 1292/2428/850 +f 1286/2429/851 1294/2426/851 1289/2420/851 1287/2430/851 +f 1292/2431/845 1293/2425/845 1294/2426/845 1286/2432/845 +f 1295/2433/853 1296/2434/853 1271/2392/853 1270/2391/853 +f 1273/2435/854 1296/2434/854 1295/2433/854 1276/2436/854 +f 1272/2437/840 1271/2392/840 1296/2434/840 1273/2438/840 +f 1276/2340/837 1295/2433/837 1270/2391/837 1269/2335/837 +f 1247/2345/836 1242/2348/836 1241/2389/836 1246/2398/836 +o Tech_thingy_Cylinder.011 +v -1.457017 0.997796 3.139627 +v -1.457017 1.110929 3.189700 +v -1.405270 1.098405 3.216824 +v -1.405270 0.985272 3.166751 +v -1.405270 1.073357 3.271072 +v -1.405270 0.960224 3.220999 +v -1.457017 1.060833 3.298196 +v -1.457017 0.947700 3.248123 +v -1.508763 1.073357 3.271072 +v -1.508763 0.960224 3.220999 +v -1.508763 1.098405 3.216824 +v -1.508763 0.985272 3.166751 +v -1.322476 0.997796 3.139627 +v -1.322476 1.110929 3.189700 +v -1.270730 1.098405 3.216824 +v -1.270730 0.985272 3.166751 +v -1.270730 1.073357 3.271072 +v -1.270730 0.960224 3.220999 +v -1.322476 1.060833 3.298196 +v -1.322476 0.947700 3.248123 +v -1.374223 1.073357 3.271072 +v -1.374223 0.960224 3.220999 +v -1.374223 1.098405 3.216824 +v -1.374223 0.985272 3.166751 +v -1.187935 0.997796 3.139627 +v -1.187935 1.110929 3.189700 +v -1.136189 1.098405 3.216824 +v -1.136189 0.985272 3.166751 +v -1.136189 1.073357 3.271072 +v -1.136189 0.960224 3.220999 +v -1.187935 1.060833 3.298196 +v -1.187935 0.947700 3.248123 +v -1.239682 1.073357 3.271072 +v -1.239682 0.960224 3.220999 +v -1.239682 1.098405 3.216824 +v -1.239682 0.985272 3.166751 +v -1.551588 0.824089 3.270719 +v -1.551588 0.906574 3.321562 +v -1.551588 1.018668 3.066710 +v -1.551588 0.936183 3.015867 +v -1.097206 1.018668 3.066710 +v -1.097206 0.936183 3.015867 +v -1.097206 0.906574 3.321562 +v -1.097206 0.824089 3.270719 +v -1.521210 0.950031 3.320343 +v -1.521210 1.047137 3.099566 +v -1.127583 1.047137 3.099566 +v -1.127583 0.950031 3.320343 +v -1.457017 0.997796 2.860373 +v -1.405271 0.985272 2.833249 +v -1.405271 1.098405 2.783176 +v -1.457017 1.110929 2.810300 +v -1.405271 0.960224 2.779001 +v -1.405271 1.073357 2.728928 +v -1.457017 0.947700 2.751877 +v -1.457017 1.060833 2.701804 +v -1.508764 0.960224 2.779001 +v -1.508764 1.073357 2.728928 +v -1.508764 1.098405 2.783176 +v -1.508764 0.985272 2.833249 +v -1.322476 0.997796 2.860373 +v -1.270730 0.985272 2.833249 +v -1.270730 1.098405 2.783176 +v -1.322476 1.110929 2.810300 +v -1.270730 0.960224 2.779001 +v -1.270730 1.073357 2.728928 +v -1.322476 0.947700 2.751877 +v -1.322476 1.060833 2.701804 +v -1.374223 0.960224 2.779001 +v -1.374223 1.073357 2.728928 +v -1.374223 1.098405 2.783176 +v -1.374223 0.985272 2.833249 +v -1.187936 0.997796 2.860373 +v -1.136189 0.985272 2.833249 +v -1.136189 1.098405 2.783176 +v -1.187936 1.110929 2.810300 +v -1.136189 0.960224 2.779001 +v -1.136189 1.073357 2.728928 +v -1.187936 0.947700 2.751877 +v -1.187936 1.060833 2.701804 +v -1.239682 0.960224 2.779001 +v -1.239682 1.073357 2.728928 +v -1.239682 1.098405 2.783176 +v -1.239682 0.985272 2.833249 +v -1.551588 0.824089 2.729281 +v -1.551588 0.936183 2.984133 +v -1.551588 1.018668 2.933290 +v -1.551588 0.906574 2.678438 +v -1.097206 0.936183 2.984133 +v -1.097206 1.018668 2.933290 +v -1.097206 0.824089 2.729281 +v -1.097206 0.906574 2.678438 +v -1.521211 1.047137 2.900434 +v -1.521211 0.950031 2.679657 +v -1.127584 1.047137 2.900434 +v -1.127584 0.950031 2.679657 +vt 0.803021 0.000268 +vt 0.908675 0.000268 +vt 0.908270 0.051294 +vt 0.802616 0.051294 +vt 0.907459 0.102314 +vt 0.801805 0.102314 +vt 0.907054 0.153340 +vt 0.801400 0.153340 +vt 0.907459 0.204365 +vt 0.801805 0.204365 +vt 0.611293 0.613624 +vt 0.662320 0.613624 +vt 0.687833 0.657815 +vt 0.662320 0.702005 +vt 0.611293 0.702005 +vt 0.585779 0.657814 +vt 0.908270 0.255385 +vt 0.802616 0.255385 +vt 0.908675 0.306410 +vt 0.803021 0.306410 +vt 0.587400 0.306946 +vt 0.693054 0.306946 +vt 0.692649 0.357971 +vt 0.586995 0.357971 +vt 0.691839 0.408991 +vt 0.586185 0.408991 +vt 0.691434 0.460016 +vt 0.585779 0.460016 +vt 0.691839 0.511042 +vt 0.586185 0.511042 +vt 0.693590 0.746948 +vt 0.737780 0.721434 +vt 0.781971 0.746948 +vt 0.781971 0.797974 +vt 0.737780 0.823488 +vt 0.693590 0.797974 +vt 0.692649 0.562062 +vt 0.586995 0.562062 +vt 0.693054 0.613088 +vt 0.587400 0.613088 +vt 0.693590 0.719278 +vt 0.693590 0.613624 +vt 0.744615 0.614029 +vt 0.744615 0.719683 +vt 0.795635 0.614839 +vt 0.795635 0.720493 +vt 0.846660 0.615245 +vt 0.846660 0.720899 +vt 0.897686 0.614839 +vt 0.897686 0.720493 +vt 0.782507 0.746948 +vt 0.826697 0.721434 +vt 0.870889 0.746948 +vt 0.870889 0.797974 +vt 0.826697 0.823488 +vt 0.782507 0.797974 +vt 0.948706 0.614029 +vt 0.948706 0.719683 +vt 0.999732 0.613624 +vt 0.999732 0.719278 +vt 0.000349 0.115597 +vt 0.082314 0.104241 +vt 0.082232 0.342003 +vt 0.000268 0.353358 +vt 0.098665 0.445986 +vt 0.098694 0.363239 +vt 0.486728 0.363373 +vt 0.486700 0.446120 +vt 0.585161 0.353560 +vt 0.503205 0.342148 +vt 0.503287 0.104387 +vt 0.585244 0.115799 +vt 0.486854 0.000402 +vt 0.486825 0.083149 +vt 0.098790 0.083015 +vt 0.098819 0.000268 +vt 0.124720 0.120150 +vt 0.124649 0.326122 +vt 0.460800 0.326238 +vt 0.460871 0.120266 +vt 0.695211 0.306410 +vt 0.694805 0.255385 +vt 0.800460 0.255385 +vt 0.800865 0.306410 +vt 0.693995 0.204365 +vt 0.799649 0.204365 +vt 0.693590 0.153340 +vt 0.799244 0.153340 +vt 0.693995 0.102314 +vt 0.799649 0.102314 +vt 0.801400 0.486076 +vt 0.801400 0.435049 +vt 0.845590 0.409535 +vt 0.889782 0.435049 +vt 0.889782 0.486076 +vt 0.845590 0.511589 +vt 0.694805 0.051294 +vt 0.800460 0.051294 +vt 0.695211 0.000268 +vt 0.800865 0.000268 +vt 0.587400 0.306410 +vt 0.586995 0.255385 +vt 0.692649 0.255385 +vt 0.693054 0.306410 +vt 0.586185 0.204365 +vt 0.691839 0.204365 +vt 0.585779 0.153340 +vt 0.691434 0.153340 +vt 0.586185 0.102314 +vt 0.691839 0.102314 +vt 0.801400 0.383486 +vt 0.801400 0.332459 +vt 0.845591 0.306946 +vt 0.889782 0.332459 +vt 0.889782 0.383486 +vt 0.845591 0.409000 +vt 0.586995 0.051294 +vt 0.692649 0.051294 +vt 0.587400 0.000268 +vt 0.693054 0.000268 +vt 0.695211 0.613088 +vt 0.694805 0.562063 +vt 0.800460 0.562062 +vt 0.800865 0.613088 +vt 0.693995 0.511042 +vt 0.799649 0.511042 +vt 0.693590 0.460016 +vt 0.799244 0.460016 +vt 0.693995 0.408991 +vt 0.799649 0.408991 +vt 0.585779 0.779081 +vt 0.585779 0.728054 +vt 0.629971 0.702541 +vt 0.674161 0.728055 +vt 0.674161 0.779081 +vt 0.629971 0.804595 +vt 0.694805 0.357971 +vt 0.800459 0.357971 +vt 0.695211 0.306946 +vt 0.800865 0.306946 +vt 0.000268 0.777012 +vt 0.000268 0.539250 +vt 0.082229 0.550634 +vt 0.082229 0.788396 +vt 0.098698 0.446656 +vt 0.486733 0.446656 +vt 0.486733 0.529404 +vt 0.098698 0.529403 +vt 0.585162 0.539250 +vt 0.585162 0.777011 +vt 0.503202 0.788396 +vt 0.503201 0.550634 +vt 0.486733 0.892375 +vt 0.098698 0.892375 +vt 0.098698 0.809627 +vt 0.486733 0.809627 +vt 0.124639 0.566530 +vt 0.124639 0.772501 +vt 0.460790 0.566530 +vt 0.460790 0.772501 +vn 0.4999 0.3505 -0.7920 +vn 1.0000 0.0000 0.0000 +vn 0.4999 -0.3505 0.7920 +vn -0.5000 -0.3505 0.7919 +vn 0.0000 0.9079 0.4192 +vn -1.0000 0.0000 0.0000 +vn -0.5000 0.3505 -0.7919 +vn 0.5000 0.3505 -0.7919 +vn 0.5000 -0.3505 0.7919 +vn -0.5000 -0.3505 0.7920 +vn -0.4999 0.3505 -0.7920 +vn 0.0000 0.5247 -0.8513 +vn 0.0000 -0.5247 0.8513 +vn -0.7911 0.5599 0.2463 +vn 0.0000 0.9154 0.4026 +vn 0.0000 0.0280 0.9996 +vn 0.0000 0.7558 -0.6548 +vn 0.7911 0.5599 0.2463 +vn 0.5000 0.3505 0.7919 +vn 0.5000 -0.3505 -0.7919 +vn -0.4999 -0.3505 -0.7920 +vn 0.0000 0.9079 -0.4192 +vn -0.4999 0.3505 0.7920 +vn 0.4999 0.3505 0.7920 +vn 0.4999 -0.3505 -0.7920 +vn -0.5000 -0.3505 -0.7919 +vn -0.5000 0.3505 0.7919 +vn 0.0000 0.5247 0.8513 +vn 0.0000 -0.5247 -0.8513 +vn -0.7911 0.5599 -0.2463 +vn 0.0000 0.9154 -0.4026 +vn 0.0000 0.0280 -0.9996 +vn 0.0000 0.7558 0.6548 +vn 0.7911 0.5599 -0.2463 +s off +f 1297/2439/861 1298/2440/861 1299/2441/861 1300/2442/861 +f 1300/2442/862 1299/2441/862 1301/2443/862 1302/2444/862 +f 1302/2444/863 1301/2443/863 1303/2445/863 1304/2446/863 +f 1304/2446/864 1303/2445/864 1305/2447/864 1306/2448/864 +f 1299/2449/865 1298/2450/865 1307/2451/865 1305/2452/865 1303/2453/865 1301/2454/865 +f 1306/2448/866 1305/2447/866 1307/2455/866 1308/2456/866 +f 1308/2456/867 1307/2455/867 1298/2457/867 1297/2458/867 +f 1309/2459/868 1310/2460/868 1311/2461/868 1312/2462/868 +f 1312/2462/862 1311/2461/862 1313/2463/862 1314/2464/862 +f 1314/2464/869 1313/2463/869 1315/2465/869 1316/2466/869 +f 1316/2466/870 1315/2465/870 1317/2467/870 1318/2468/870 +f 1311/2469/865 1310/2470/865 1319/2471/865 1317/2472/865 1315/2473/865 1313/2474/865 +f 1318/2468/866 1317/2467/866 1319/2475/866 1320/2476/866 +f 1320/2476/871 1319/2475/871 1310/2477/871 1309/2478/871 +f 1321/2479/868 1322/2480/868 1323/2481/868 1324/2482/868 +f 1324/2482/862 1323/2481/862 1325/2483/862 1326/2484/862 +f 1326/2484/869 1325/2483/869 1327/2485/869 1328/2486/869 +f 1328/2486/870 1327/2485/870 1329/2487/870 1330/2488/870 +f 1323/2489/865 1322/2490/865 1331/2491/865 1329/2492/865 1327/2493/865 1325/2494/865 +f 1330/2488/866 1329/2487/866 1331/2495/866 1332/2496/866 +f 1332/2496/871 1331/2495/871 1322/2497/871 1321/2498/871 +f 1333/2499/866 1334/2500/866 1335/2501/866 1336/2502/866 +f 1336/2503/872 1335/2504/872 1337/2505/872 1338/2506/872 +f 1338/2507/862 1337/2508/862 1339/2509/862 1340/2510/862 +f 1340/2511/873 1339/2512/873 1334/2513/873 1333/2514/873 +f 1335/2501/874 1334/2500/874 1341/2515/874 1342/2516/874 +f 1343/2517/875 1342/2516/875 1341/2515/875 1344/2518/875 +f 1334/2513/876 1339/2512/876 1344/2518/876 1341/2515/876 +f 1337/2505/877 1335/2504/877 1342/2516/877 1343/2517/877 +f 1339/2509/878 1337/2508/878 1343/2517/878 1344/2518/878 +f 1345/2519/879 1346/2520/879 1347/2521/879 1348/2522/879 +f 1346/2520/862 1349/2523/862 1350/2524/862 1347/2521/862 +f 1349/2523/880 1351/2525/880 1352/2526/880 1350/2524/880 +f 1351/2525/881 1353/2527/881 1354/2528/881 1352/2526/881 +f 1347/2529/882 1350/2530/882 1352/2531/882 1354/2532/882 1355/2533/882 1348/2534/882 +f 1353/2527/866 1356/2535/866 1355/2536/866 1354/2528/866 +f 1356/2535/883 1345/2537/883 1348/2538/883 1355/2536/883 +f 1357/2539/879 1358/2540/879 1359/2541/879 1360/2542/879 +f 1358/2540/862 1361/2543/862 1362/2544/862 1359/2541/862 +f 1361/2543/880 1363/2545/880 1364/2546/880 1362/2544/880 +f 1363/2545/881 1365/2547/881 1366/2548/881 1364/2546/881 +f 1359/2549/882 1362/2550/882 1364/2551/882 1366/2552/882 1367/2553/882 1360/2554/882 +f 1365/2547/866 1368/2555/866 1367/2556/866 1366/2548/866 +f 1368/2555/883 1357/2557/883 1360/2558/883 1367/2556/883 +f 1369/2559/884 1370/2560/884 1371/2561/884 1372/2562/884 +f 1370/2560/862 1373/2563/862 1374/2564/862 1371/2561/862 +f 1373/2563/885 1375/2565/885 1376/2566/885 1374/2564/885 +f 1375/2565/886 1377/2567/886 1378/2568/886 1376/2566/886 +f 1371/2569/882 1374/2570/882 1376/2571/882 1378/2572/882 1379/2573/882 1372/2574/882 +f 1377/2567/866 1380/2575/866 1379/2576/866 1378/2568/866 +f 1380/2575/887 1369/2577/887 1372/2578/887 1379/2576/887 +f 1381/2579/866 1382/2580/866 1383/2581/866 1384/2582/866 +f 1382/2583/888 1385/2584/888 1386/2585/888 1383/2586/888 +f 1385/2587/862 1387/2588/862 1388/2589/862 1386/2590/862 +f 1387/2591/889 1381/2592/889 1384/2593/889 1388/2594/889 +f 1383/2581/890 1389/2595/890 1390/2596/890 1384/2582/890 +f 1391/2597/891 1392/2598/891 1390/2596/891 1389/2595/891 +f 1384/2593/892 1390/2596/892 1392/2598/892 1388/2594/892 +f 1386/2585/893 1391/2597/893 1389/2595/893 1383/2586/893 +f 1388/2589/894 1392/2598/894 1391/2597/894 1386/2590/894 +o Coils_Cylinder.012 +v -0.463562 0.524760 2.571894 +v -0.237813 0.524760 2.571894 +v -0.237813 0.222044 2.697284 +v -0.463562 0.222044 2.697284 +v -0.237813 0.096655 3.000000 +v -0.463562 0.096655 3.000000 +v -0.237813 0.222044 3.302716 +v -0.463562 0.222044 3.302716 +v -0.237813 0.524760 3.428106 +v -0.463562 0.524760 3.428106 +v -0.237813 0.827477 3.302716 +v -0.463562 0.827477 3.302716 +v -0.237813 0.952866 3.000000 +v -0.463562 0.952866 3.000000 +v -0.237813 0.827477 2.697284 +v -0.463562 0.827477 2.697284 +v -0.170088 0.524760 2.571894 +v 0.055660 0.524760 2.571894 +v 0.055660 0.222044 2.697284 +v -0.170088 0.222044 2.697284 +v 0.055660 0.096655 3.000000 +v -0.170088 0.096655 3.000000 +v 0.055660 0.222044 3.302716 +v -0.170088 0.222044 3.302716 +v 0.055660 0.524760 3.428106 +v -0.170088 0.524760 3.428106 +v 0.055660 0.827477 3.302716 +v -0.170088 0.827477 3.302716 +v 0.055660 0.952866 3.000000 +v -0.170088 0.952866 3.000000 +v 0.055660 0.827477 2.697284 +v -0.170088 0.827477 2.697284 +v 0.123385 0.524760 2.571894 +v 0.349134 0.524760 2.571894 +v 0.349134 0.222044 2.697284 +v 0.123385 0.222044 2.697284 +v 0.349134 0.096655 3.000000 +v 0.123385 0.096655 3.000000 +v 0.349134 0.222044 3.302716 +v 0.123385 0.222044 3.302716 +v 0.349134 0.524760 3.428106 +v 0.123385 0.524760 3.428106 +v 0.349134 0.827477 3.302716 +v 0.123385 0.827477 3.302716 +v 0.349134 0.952866 3.000000 +v 0.123385 0.952866 3.000000 +v 0.349134 0.827477 2.697284 +v 0.123385 0.827477 2.697284 +v 0.416858 0.524760 2.571894 +v 0.642607 0.524760 2.571894 +v 0.642607 0.222044 2.697284 +v 0.416858 0.222044 2.697284 +v 0.642607 0.096655 3.000000 +v 0.416858 0.096655 3.000000 +v 0.642607 0.222044 3.302716 +v 0.416858 0.222044 3.302716 +v 0.642607 0.524760 3.428106 +v 0.416858 0.524760 3.428106 +v 0.642607 0.827477 3.302716 +v 0.416858 0.827477 3.302716 +v 0.642607 0.952866 3.000000 +v 0.416858 0.952866 3.000000 +v 0.642607 0.827477 2.697284 +v 0.416858 0.827477 2.697284 +v 0.710331 0.524760 2.571894 +v 0.936080 0.524760 2.571894 +v 0.936080 0.222044 2.697284 +v 0.710331 0.222044 2.697284 +v 0.936080 0.096655 3.000000 +v 0.710331 0.096655 3.000000 +v 0.936080 0.222044 3.302716 +v 0.710331 0.222044 3.302716 +v 0.936080 0.524760 3.428106 +v 0.710331 0.524760 3.428106 +v 0.936080 0.827477 3.302716 +v 0.710331 0.827477 3.302716 +v 0.936080 0.952866 3.000000 +v 0.710331 0.952866 3.000000 +v 0.936080 0.827477 2.697284 +v 0.710331 0.827477 2.697284 +vt 0.781097 0.399443 +vt 0.718903 0.399443 +vt 0.718903 0.309173 +vt 0.781097 0.309173 +vt 0.718903 0.218903 +vt 0.781097 0.218903 +vt 0.781097 0.941064 +vt 0.718903 0.941064 +vt 0.718903 0.850794 +vt 0.781097 0.850794 +vt 0.718903 0.760524 +vt 0.781097 0.760524 +vt 0.718903 0.670254 +vt 0.781097 0.670254 +vt 0.718903 0.579984 +vt 0.781097 0.579984 +vt 0.218903 0.282734 +vt 0.282733 0.218903 +vt 0.373004 0.218903 +vt 0.436834 0.282734 +vt 0.436834 0.373004 +vt 0.373003 0.436835 +vt 0.282733 0.436834 +vt 0.218903 0.373004 +vt 0.718903 0.489714 +vt 0.781097 0.489714 +vt 0.064155 0.437482 +vt 0.154425 0.437483 +vt 0.218255 0.501313 +vt 0.218255 0.591583 +vt 0.154425 0.655414 +vt 0.064154 0.655414 +vt 0.000324 0.591583 +vt 0.000324 0.501313 +vt 0.999676 0.180864 +vt 0.937482 0.180864 +vt 0.937482 0.090594 +vt 0.999676 0.090594 +vt 0.937482 0.000324 +vt 0.999676 0.000324 +vt 0.999676 0.722485 +vt 0.937482 0.722485 +vt 0.937482 0.632215 +vt 0.999676 0.632215 +vt 0.937482 0.541944 +vt 0.999676 0.541944 +vt 0.937482 0.451674 +vt 0.999676 0.451674 +vt 0.937482 0.361404 +vt 0.999676 0.361404 +vt 0.000324 0.282734 +vt 0.064154 0.218903 +vt 0.154425 0.218903 +vt 0.218255 0.282734 +vt 0.218255 0.373004 +vt 0.154424 0.436835 +vt 0.064154 0.436834 +vt 0.000324 0.373004 +vt 0.937482 0.271134 +vt 0.999676 0.271134 +vt 0.501313 0.218903 +vt 0.591583 0.218903 +vt 0.655413 0.282734 +vt 0.655413 0.373004 +vt 0.591583 0.436835 +vt 0.501313 0.436834 +vt 0.437482 0.373004 +vt 0.437482 0.282734 +vt 0.718255 0.399443 +vt 0.656061 0.399443 +vt 0.656061 0.309173 +vt 0.718255 0.309173 +vt 0.656061 0.218903 +vt 0.718255 0.218903 +vt 0.718255 0.941064 +vt 0.656061 0.941064 +vt 0.656061 0.850794 +vt 0.718255 0.850794 +vt 0.656061 0.760524 +vt 0.718255 0.760524 +vt 0.656061 0.670254 +vt 0.718255 0.670254 +vt 0.656061 0.579984 +vt 0.718255 0.579984 +vt 0.218903 0.501313 +vt 0.282733 0.437482 +vt 0.373004 0.437483 +vt 0.436834 0.501313 +vt 0.436834 0.591583 +vt 0.373003 0.655414 +vt 0.282733 0.655414 +vt 0.218903 0.591583 +vt 0.656061 0.489714 +vt 0.718255 0.489714 +vt 0.501313 0.437482 +vt 0.591583 0.437483 +vt 0.655413 0.501313 +vt 0.655413 0.591583 +vt 0.591583 0.655414 +vt 0.501313 0.655414 +vt 0.437482 0.591583 +vt 0.437482 0.501313 +vt 0.936834 0.180864 +vt 0.874640 0.180864 +vt 0.874640 0.090594 +vt 0.936834 0.090594 +vt 0.874640 0.000324 +vt 0.936834 0.000324 +vt 0.936834 0.722484 +vt 0.874640 0.722484 +vt 0.874640 0.632214 +vt 0.936834 0.632214 +vt 0.874640 0.541944 +vt 0.936834 0.541944 +vt 0.874640 0.451674 +vt 0.936834 0.451674 +vt 0.874640 0.361404 +vt 0.936834 0.361404 +vt 0.656061 0.064155 +vt 0.719891 0.000324 +vt 0.810162 0.000324 +vt 0.873992 0.064155 +vt 0.873992 0.154425 +vt 0.810162 0.218255 +vt 0.719891 0.218255 +vt 0.656061 0.154425 +vt 0.874640 0.271134 +vt 0.936834 0.271134 +vt 0.501313 0.000324 +vt 0.591583 0.000324 +vt 0.655413 0.064155 +vt 0.655413 0.154425 +vt 0.591583 0.218255 +vt 0.501313 0.218255 +vt 0.437482 0.154425 +vt 0.437482 0.064155 +vt 0.873992 0.399443 +vt 0.811798 0.399443 +vt 0.811798 0.309173 +vt 0.873992 0.309173 +vt 0.811798 0.218903 +vt 0.873992 0.218903 +vt 0.873992 0.941064 +vt 0.811798 0.941064 +vt 0.811798 0.850794 +vt 0.873992 0.850794 +vt 0.811798 0.760524 +vt 0.873992 0.760524 +vt 0.811798 0.670253 +vt 0.873992 0.670253 +vt 0.811798 0.579983 +vt 0.873992 0.579983 +vt 0.218903 0.064155 +vt 0.282733 0.000324 +vt 0.373004 0.000324 +vt 0.436834 0.064155 +vt 0.436834 0.154425 +vt 0.373003 0.218255 +vt 0.282733 0.218255 +vt 0.218903 0.154425 +vt 0.811798 0.489713 +vt 0.873992 0.489713 +vt 0.064155 0.000324 +vt 0.154425 0.000324 +vt 0.218255 0.064155 +vt 0.218255 0.154425 +vt 0.154425 0.218255 +vt 0.064154 0.218255 +vt 0.000324 0.154425 +vt 0.000324 0.064155 +vn 0.0000 -0.3827 -0.9239 +vn 0.0000 -0.9239 -0.3827 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 -0.3827 0.9239 +vn 0.0000 0.3827 0.9239 +vn 0.0000 0.9239 0.3827 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.9239 -0.3827 +vn 0.0000 0.3827 -0.9239 +vn -1.0000 0.0000 0.0000 +s off +f 1393/2599/895 1394/2600/895 1395/2601/895 1396/2602/895 +f 1396/2602/896 1395/2601/896 1397/2603/896 1398/2604/896 +f 1398/2605/897 1397/2606/897 1399/2607/897 1400/2608/897 +f 1400/2608/898 1399/2607/898 1401/2609/898 1402/2610/898 +f 1402/2610/899 1401/2609/899 1403/2611/899 1404/2612/899 +f 1404/2612/900 1403/2611/900 1405/2613/900 1406/2614/900 +f 1395/2615/901 1394/2616/901 1407/2617/901 1405/2618/901 1403/2619/901 1401/2620/901 1399/2621/901 1397/2622/901 +f 1406/2614/902 1405/2613/902 1407/2623/902 1408/2624/902 +f 1408/2624/903 1407/2623/903 1394/2600/903 1393/2599/903 +f 1393/2625/904 1396/2626/904 1398/2627/904 1400/2628/904 1402/2629/904 1404/2630/904 1406/2631/904 1408/2632/904 +f 1409/2633/895 1410/2634/895 1411/2635/895 1412/2636/895 +f 1412/2636/896 1411/2635/896 1413/2637/896 1414/2638/896 +f 1414/2639/897 1413/2640/897 1415/2641/897 1416/2642/897 +f 1416/2642/898 1415/2641/898 1417/2643/898 1418/2644/898 +f 1418/2644/899 1417/2643/899 1419/2645/899 1420/2646/899 +f 1420/2646/900 1419/2645/900 1421/2647/900 1422/2648/900 +f 1411/2649/901 1410/2650/901 1423/2651/901 1421/2652/901 1419/2653/901 1417/2654/901 1415/2655/901 1413/2656/901 +f 1422/2648/902 1421/2647/902 1423/2657/902 1424/2658/902 +f 1424/2658/903 1423/2657/903 1410/2634/903 1409/2633/903 +f 1409/2659/904 1412/2660/904 1414/2661/904 1416/2662/904 1418/2663/904 1420/2664/904 1422/2665/904 1424/2666/904 +f 1425/2667/895 1426/2668/895 1427/2669/895 1428/2670/895 +f 1428/2670/896 1427/2669/896 1429/2671/896 1430/2672/896 +f 1430/2673/897 1429/2674/897 1431/2675/897 1432/2676/897 +f 1432/2676/898 1431/2675/898 1433/2677/898 1434/2678/898 +f 1434/2678/899 1433/2677/899 1435/2679/899 1436/2680/899 +f 1436/2680/900 1435/2679/900 1437/2681/900 1438/2682/900 +f 1427/2683/901 1426/2684/901 1439/2685/901 1437/2686/901 1435/2687/901 1433/2688/901 1431/2689/901 1429/2690/901 +f 1438/2682/902 1437/2681/902 1439/2691/902 1440/2692/902 +f 1440/2692/903 1439/2691/903 1426/2668/903 1425/2667/903 +f 1425/2693/904 1428/2694/904 1430/2695/904 1432/2696/904 1434/2697/904 1436/2698/904 1438/2699/904 1440/2700/904 +f 1441/2701/895 1442/2702/895 1443/2703/895 1444/2704/895 +f 1444/2704/896 1443/2703/896 1445/2705/896 1446/2706/896 +f 1446/2707/897 1445/2708/897 1447/2709/897 1448/2710/897 +f 1448/2710/898 1447/2709/898 1449/2711/898 1450/2712/898 +f 1450/2712/899 1449/2711/899 1451/2713/899 1452/2714/899 +f 1452/2714/900 1451/2713/900 1453/2715/900 1454/2716/900 +f 1443/2717/901 1442/2718/901 1455/2719/901 1453/2720/901 1451/2721/901 1449/2722/901 1447/2723/901 1445/2724/901 +f 1454/2716/902 1453/2715/902 1455/2725/902 1456/2726/902 +f 1456/2726/903 1455/2725/903 1442/2702/903 1441/2701/903 +f 1441/2727/904 1444/2728/904 1446/2729/904 1448/2730/904 1450/2731/904 1452/2732/904 1454/2733/904 1456/2734/904 +f 1457/2735/895 1458/2736/895 1459/2737/895 1460/2738/895 +f 1460/2738/896 1459/2737/896 1461/2739/896 1462/2740/896 +f 1462/2741/897 1461/2742/897 1463/2743/897 1464/2744/897 +f 1464/2744/898 1463/2743/898 1465/2745/898 1466/2746/898 +f 1466/2746/899 1465/2745/899 1467/2747/899 1468/2748/899 +f 1468/2748/900 1467/2747/900 1469/2749/900 1470/2750/900 +f 1459/2751/901 1458/2752/901 1471/2753/901 1469/2754/901 1467/2755/901 1465/2756/901 1463/2757/901 1461/2758/901 +f 1470/2750/902 1469/2749/902 1471/2759/902 1472/2760/902 +f 1472/2760/903 1471/2759/903 1458/2736/903 1457/2735/903 +f 1457/2761/904 1460/2762/904 1462/2763/904 1464/2764/904 1466/2765/904 1468/2766/904 1470/2767/904 1472/2768/904 From 0239ea79682ccdbad9931af6d8cb17c4f894e1a8 Mon Sep 17 00:00:00 2001 From: Vaern Date: Fri, 9 Jun 2023 13:36:57 -0700 Subject: [PATCH 101/432] finished enough --- .../java/com/hbm/lib/HbmChestContents.java | 52 +++++++++++++++++++ src/main/java/com/hbm/lib/HbmWorld.java | 2 + .../com/hbm/world/gen/MapGenNTMFeatures.java | 4 ++ .../world/gen/component/BunkerComponents.java | 30 ++++++----- 4 files changed, 74 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/hbm/lib/HbmChestContents.java b/src/main/java/com/hbm/lib/HbmChestContents.java index 343a46e75..3cdf8a771 100644 --- a/src/main/java/com/hbm/lib/HbmChestContents.java +++ b/src/main/java/com/hbm/lib/HbmChestContents.java @@ -8,6 +8,7 @@ import com.hbm.items.ModItems; import com.hbm.items.machine.ItemBreedingRod.*; import com.hbm.items.machine.ItemZirnoxRod.EnumZirnoxType; import com.hbm.items.special.ItemBookLore.BookLoreType; +import com.hbm.items.tool.ItemBlowtorch; import net.minecraft.init.Items; import net.minecraft.item.Item; @@ -355,6 +356,57 @@ public class HbmChestContents { new WeightedRandomChestContent(ModItems.ink, 0, 1, 1, 1), //make that mf rare; 1:555 weight }; + public static WeightedRandomChestContent[] solidFuel = new WeightedRandomChestContent[] { + new WeightedRandomChestContent(ModItems.solid_fuel, 0, 1, 5, 1), + new WeightedRandomChestContent(ModItems.solid_fuel_presto, 0, 1, 2, 2), + new WeightedRandomChestContent(ModItems.ball_dynamite, 0, 1, 4, 2), + new WeightedRandomChestContent(Items.redstone, 0, 1, 3, 1), + new WeightedRandomChestContent(ModItems.niter, 0, 1, 3, 1) + }; + + public static WeightedRandomChestContent[] labVault = new WeightedRandomChestContent[] { + new WeightedRandomChestContent(ItemBlowtorch.getEmptyTool(ModItems.blowtorch), 1, 1, 4), + new WeightedRandomChestContent(ModItems.chemistry_set, 0, 1, 1, 15), + new WeightedRandomChestContent(ModItems.screwdriver, 0, 1, 1, 10), + new WeightedRandomChestContent(ModItems.nugget_mercury, 0, 1, 1, 3), + new WeightedRandomChestContent(ModItems.morning_glory, 0, 1, 1, 1), + new WeightedRandomChestContent(ModItems.filter_coal, 0, 1, 1, 5), + new WeightedRandomChestContent(ModItems.dust, 0, 1, 3, 25), + new WeightedRandomChestContent(Items.paper, 0, 1, 2, 15), + new WeightedRandomChestContent(ModItems.cell_empty, 0, 1, 1, 5), + new WeightedRandomChestContent(Items.glass_bottle, 0, 1, 1, 5), + new WeightedRandomChestContent(ModItems.powder_iodine, 0, 1, 1, 1), + new WeightedRandomChestContent(ModItems.powder_bromine, 0, 1, 1, 1), + new WeightedRandomChestContent(ModItems.powder_cobalt, 0, 1, 1, 1), + new WeightedRandomChestContent(ModItems.powder_neodymium, 0, 1, 1, 1), + new WeightedRandomChestContent(ModItems.powder_boron, 0, 1, 1, 1), + }; + + public static WeightedRandomChestContent[] lockersVault = new WeightedRandomChestContent[] { + new WeightedRandomChestContent(ModItems.robes_helmet, 0, 1, 1, 1), + new WeightedRandomChestContent(ModItems.robes_plate, 0, 1, 1, 1), + new WeightedRandomChestContent(ModItems.robes_legs, 0, 1, 1, 1), + new WeightedRandomChestContent(ModItems.robes_boots, 0, 1, 1, 1), + new WeightedRandomChestContent(ModItems.jackt, 0, 1, 1, 1), + new WeightedRandomChestContent(ModItems.jackt2, 0, 1, 1, 1), + new WeightedRandomChestContent(ModItems.gas_mask_m65, 0, 1, 1, 2), + new WeightedRandomChestContent(ModItems.gas_mask_mono, 0, 1, 1, 2), + new WeightedRandomChestContent(ModItems.goggles, 0, 1, 1, 2), + new WeightedRandomChestContent(ModItems.gas_mask_filter, 0, 1, 1, 4), + new WeightedRandomChestContent(ModItems.flame_opinion, 0, 1, 3, 5), + new WeightedRandomChestContent(ModItems.flame_conspiracy, 0, 1, 3, 5), + new WeightedRandomChestContent(ModItems.flame_politics, 0, 1, 3, 5), + new WeightedRandomChestContent(ModItems.cigarette, 0, 1, 8, 5), + new WeightedRandomChestContent(ModItems.canteen_13, 0, 1, 1, 2), + new WeightedRandomChestContent(ModItems.armor_polish, 0, 1, 1, 3), + new WeightedRandomChestContent(ModItems.gun_kit_1, 0, 1, 1, 3), + new WeightedRandomChestContent(ModItems.rag, 0, 1, 3, 5), + new WeightedRandomChestContent(Items.paper, 0, 1, 6, 7), + new WeightedRandomChestContent(Items.clock, 0, 1, 1, 3), + new WeightedRandomChestContent(Items.book, 0, 1, 5, 10), + new WeightedRandomChestContent(Items.experience_bottle, 0, 1, 3, 1), + }; + /** ITEMBOOKLORE ARRAYS */ //might make a wrapper class for this, if game-state knowledge using the nbt system becomes that relevant public final static BookLoreType[] books_office_sch = new BookLoreType[] { diff --git a/src/main/java/com/hbm/lib/HbmWorld.java b/src/main/java/com/hbm/lib/HbmWorld.java index c12dd3f6c..4a24a192f 100644 --- a/src/main/java/com/hbm/lib/HbmWorld.java +++ b/src/main/java/com/hbm/lib/HbmWorld.java @@ -6,6 +6,7 @@ import com.hbm.world.gen.component.BunkerComponents; import com.hbm.world.gen.component.CivilianFeatures; import com.hbm.world.gen.component.OfficeFeatures; import com.hbm.world.gen.component.RuinFeatures; +import com.hbm.world.gen.component.BunkerComponents.BunkerStart; import cpw.mods.fml.common.IWorldGenerator; import cpw.mods.fml.common.registry.GameRegistry; @@ -23,6 +24,7 @@ public class HbmWorld { //MapGenStructureIO.registerStructure(StructureStartTest.class, "HFR_STRUCTURE"); //MapGenStructureIO.func_143031_a(StructureComponentTest.class, "HFR_COMPONENT"); MapGenStructureIO.registerStructure(MapGenNTMFeatures.Start.class, "NTMFeatures"); + MapGenStructureIO.registerStructure(BunkerStart.class, "NTMBunker"); registerNTMFeatures(); registerWorldGen(new HbmWorldGen(), 1); diff --git a/src/main/java/com/hbm/world/gen/MapGenNTMFeatures.java b/src/main/java/com/hbm/world/gen/MapGenNTMFeatures.java index 9c1a55339..c5383cca0 100644 --- a/src/main/java/com/hbm/world/gen/MapGenNTMFeatures.java +++ b/src/main/java/com/hbm/world/gen/MapGenNTMFeatures.java @@ -7,6 +7,7 @@ import java.util.Random; import com.hbm.config.GeneralConfig; import com.hbm.config.StructureConfig; +import com.hbm.world.gen.component.BunkerComponents.BunkerStart; import com.hbm.world.gen.component.CivilianFeatures.*; import com.hbm.world.gen.component.OfficeFeatures.*; import com.hbm.world.gen.component.RuinFeatures.*; @@ -89,6 +90,9 @@ public class MapGenNTMFeatures extends MapGenStructure { /** Returns new StructureStart if structure can be spawned at coords */ @Override protected StructureStart getStructureStart(int chunkX, int chunkZ) { + if(this.rand.nextInt(15) == 0) { //eh might as well, they'll already be prettty rare anyway + return new BunkerStart(this.worldObj, this.rand, chunkX, chunkZ); + } return new MapGenNTMFeatures.Start(this.worldObj, this.rand, chunkX, chunkZ); } diff --git a/src/main/java/com/hbm/world/gen/component/BunkerComponents.java b/src/main/java/com/hbm/world/gen/component/BunkerComponents.java index d23b1f733..acb8481c3 100644 --- a/src/main/java/com/hbm/world/gen/component/BunkerComponents.java +++ b/src/main/java/com/hbm/world/gen/component/BunkerComponents.java @@ -20,6 +20,8 @@ public class BunkerComponents { public static class BunkerStart extends ProceduralStructureStart { + public BunkerStart() {} + public BunkerStart(World world, Random rand, int chunkX, int chunkZ) { super(chunkX, chunkZ); @@ -373,13 +375,13 @@ public class BunkerComponents { placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaE | 4, 4, 1, 9, box); placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaS, 5, 1, 8, box); placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(0), 5, 2, 9, box); - generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 3, 1, 9, HbmChestContents.antenna/*TODO change */, 5); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 3, 1, 9, HbmChestContents.filingCabinet, 5); //lockers - generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 8, 1, 7, HbmChestContents.antenna/*TODO change */, 3); - generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 8, 2, 7, HbmChestContents.antenna/*TODO change */, 3); + generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 8, 1, 7, HbmChestContents.lockersVault, 3); + generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 8, 2, 7, HbmChestContents.lockersVault, 5); fillWithBlocks(world, box, 8, 1, 8, 8, 2, 8, ModBlocks.deco_tungsten); - generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 8, 1, 9, HbmChestContents.antenna/*TODO change */, 3); - generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 8, 2, 9, HbmChestContents.antenna/*TODO change */, 3); + generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 8, 1, 9, HbmChestContents.lockersVault, 4); + generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 8, 2, 9, HbmChestContents.lockersVault, 5); fillWithMetadataBlocks(world, box, 8, 3, 7, 8, 3, 9, Blocks.trapdoor, getDecoModelMeta(2) >> 2); //doors placeDoor(world, box, ModBlocks.door_bunker, 1, true, rand.nextBoolean(), 7, 1, 0); @@ -472,7 +474,7 @@ public class BunkerComponents { //table & chest placeBlockAtCurrentPosition(world, Blocks.fence, 0, 6, 1, 2, box); placeBlockAtCurrentPosition(world, Blocks.wooden_pressure_plate, 0, 6, 2, 2, box); - generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 6, 1, 3, HbmChestContents.antenna/*TODO change */, 7); + generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 6, 1, 3, HbmChestContents.lockersVault, 8); //desk w/ computer + bobblehead placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaS | 4, 1, 1, 8, box); placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaE | 4, 1, 1, 9, box); @@ -677,12 +679,12 @@ public class BunkerComponents { fillWithMetadataBlocks(world, box, 1, 3, 9, 1, 3, 10, ModBlocks.tape_recorder, decoMetaW); fillWithBlocks(world, box, 1, 1, 11, 1, 3, 11, ModBlocks.deco_tungsten); //desks w/ computers - generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(2), 3, 1, 4, HbmChestContents.antenna, 4); //wip + generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(2), 3, 1, 4, HbmChestContents.machineParts, 6); placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaS | 4, 3, 1, 5, box); fillWithMetadataBlocks(world, box, 4, 1, 5, 4, 1, 7, ModBlocks.concrete_smooth_stairs, stairMetaW | 4); placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaN, 3, 1, 7, box); placeBlockAtCurrentPosition(world, ModBlocks.concrete_smooth_stairs, stairMetaS | 4, 3, 1, 9, box); - fillWithMetadataBlocks(world, box, 4, 1, 9, 4, 1, 11, ModBlocks.concrete_smooth_stairs, 4); + fillWithMetadataBlocks(world, box, 4, 1, 9, 4, 1, 11, ModBlocks.concrete_smooth_stairs, stairMetaW | 4); placeBlockAtCurrentPosition(world, Blocks.oak_stairs, stairMetaN, 3, 1, 11, box); placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, 3, 2, 5, box); placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, decoModelMetaW, 4, 2, 6, box); @@ -702,7 +704,7 @@ public class BunkerComponents { //table w/ chest placeBlockAtCurrentPosition(world, Blocks.fence, 0, 7, 1, 9, box); placeBlockAtCurrentPosition(world, Blocks.wooden_pressure_plate, 0, 7, 2, 9, box); - generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 7, 1, 10, HbmChestContents.antenna, 4); //wip + generateInvContents(world, box, rand, Blocks.chest, getDecoMeta(4), 7, 1, 10, HbmChestContents.labVault, 8); //doors placeDoor(world, box, ModBlocks.door_bunker, 1, true, rand.nextBoolean(), 5, 1, 0); placeDoor(world, box, ModBlocks.door_bunker, 1, false, rand.nextBoolean(), 6, 1, 0); @@ -817,8 +819,8 @@ public class BunkerComponents { placeBlockAtCurrentPosition(world, ModBlocks.fluid_duct_gauge, decoMetaW, 10, 2, 5, box); placeBlockAtCurrentPosition(world, ModBlocks.barrel_plastic, 0, 6, 1, 5, box); //chests - generateInvContents(world, box, rand, Blocks.chest, decoMetaS, 7, 1, 5, HbmChestContents.antenna, 4); //WIP - generateInvContents(world, box, rand, Blocks.chest, decoMetaS, 9, 1, 5, HbmChestContents.antenna, 4); + generateInvContents(world, box, rand, Blocks.chest, decoMetaS, 7, 1, 5, HbmChestContents.solidFuel, 5); + generateInvContents(world, box, rand, Blocks.chest, decoMetaS, 9, 1, 5, HbmChestContents.solidFuel, 6); break; case 1: placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 5, 6, 1, 1, box); @@ -871,7 +873,7 @@ public class BunkerComponents { placeBlockAtCurrentPosition(world, ModBlocks.deco_pipe_quad_rusted, getPillarMeta(4), 7, 3, 1, box); placeBlockAtCurrentPosition(world, ModBlocks.fluid_duct_gauge, decoMetaN, 6, 3, 1, box); //chest - generateInvContents(world, box, rand, Blocks.chest, decoMetaN, 6, 1, 2, HbmChestContents.antenna, 4); //WIP + generateInvContents(world, box, rand, Blocks.chest, decoMetaN, 6, 1, 2, HbmChestContents.nuclearFuel, 8); break; } //transformer @@ -903,8 +905,8 @@ public class BunkerComponents { placeBlockAtCurrentPosition(world, Blocks.flower_pot, 0, 8, 2, 10, box); placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(0), 9, 2, 10, box); //loot - generateInvContents(world, box, rand, Blocks.chest, decoMetaE, 1, 1, 7, HbmChestContents.antenna, 4); //WIP - generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 7, 1, 10, HbmChestContents.antenna, 4); + generateInvContents(world, box, rand, Blocks.chest, decoMetaE, 1, 1, 7, HbmChestContents.machineParts, 6); + generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 7, 1, 10, HbmChestContents.filingCabinet, 4); //doors placeDoor(world, box, ModBlocks.door_bunker, 1, true, rand.nextBoolean(), 3, 1, 0); placeDoor(world, box, ModBlocks.door_bunker, 1, false, rand.nextBoolean(), 4, 1, 0); From 5df2465a169f1db0ba70ff4ff6528f21bb50c90d Mon Sep 17 00:00:00 2001 From: Vaern Date: Fri, 9 Jun 2023 13:41:04 -0700 Subject: [PATCH 102/432] o --- src/main/java/com/hbm/items/tool/ItemWandD.java | 9 --------- 1 file changed, 9 deletions(-) diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index a9c9a49ae..1debe2a22 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -3,14 +3,12 @@ package com.hbm.items.tool; import java.util.List; import com.hbm.lib.Library; -import com.hbm.world.gen.component.BunkerComponents; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; -import net.minecraft.world.gen.structure.StructureBoundingBox; public class ItemWandD extends Item { @@ -52,13 +50,6 @@ public class ItemWandD extends Item { tom.destructionRange = 600; world.spawnEntityInWorld(tom);*/ - //use sparingly - int k = ((pos.blockX >> 4) << 4) + 8; - int l = ((pos.blockZ >> 4) << 4) + 8; - - BunkerComponents.BunkerStart start = new BunkerComponents.BunkerStart(world, world.rand, pos.blockX >> 4, pos.blockZ >> 4); - start.generateStructure(world, world.rand, new StructureBoundingBox(k - 124, l - 124, k + 15 + 124, l + 15 + 124)); - /*EntityNukeTorex torex = new EntityNukeTorex(world); torex.setPositionAndRotation(pos.blockX, pos.blockY + 1, pos.blockZ, 0, 0); torex.getDataWatcher().updateObject(10, 1.5F); From 55d2330219e606b397e0935b61cf9e1bffb3ebbe Mon Sep 17 00:00:00 2001 From: Vaern Date: Fri, 9 Jun 2023 13:50:07 -0700 Subject: [PATCH 103/432] destroy --- src/main/java/com/hbm/config/WorldConfig.java | 3 - src/main/java/com/hbm/lib/HbmWorldGen.java | 9 - .../java/com/hbm/world/dungeon/Bunker.java | 1596 ----------------- 3 files changed, 1608 deletions(-) delete mode 100644 src/main/java/com/hbm/world/dungeon/Bunker.java diff --git a/src/main/java/com/hbm/config/WorldConfig.java b/src/main/java/com/hbm/config/WorldConfig.java index faedff279..cf0f08a67 100644 --- a/src/main/java/com/hbm/config/WorldConfig.java +++ b/src/main/java/com/hbm/config/WorldConfig.java @@ -78,7 +78,6 @@ public class WorldConfig { public static int dungeonStructure = 64; public static int relayStructure = 500; public static int satelliteStructure = 500; - public static int bunkerStructure = 1000; public static int siloStructure = 1000; public static int factoryStructure = 1000; public static int dudStructure = 500; @@ -185,7 +184,6 @@ public class WorldConfig { dungeonStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.04_dungeonSpawn", "Spawn library dungeon on every nTH chunk", 64); relayStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.05_relaySpawn", "Spawn relay on every nTH chunk", 500); satelliteStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.06_satelliteSpawn", "Spawn satellite dish on every nTH chunk", 500); - bunkerStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.07_bunkerSpawn", "Spawn bunker on every nTH chunk", 1000); siloStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.08_siloSpawn", "Spawn missile silo on every nTH chunk", 1000); factoryStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.09_factorySpawn", "Spawn factory on every nTH chunk", 1000); dudStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.10_dudSpawn", "Spawn dud on every nTH chunk", 500); @@ -220,7 +218,6 @@ public class WorldConfig { dungeonStructure = CommonConfig.setDefZero(dungeonStructure, 1000); relayStructure = CommonConfig.setDefZero(relayStructure, 1000); satelliteStructure = CommonConfig.setDefZero(satelliteStructure, 1000); - bunkerStructure = CommonConfig.setDefZero(bunkerStructure, 1000); siloStructure = CommonConfig.setDefZero(siloStructure, 1000); factoryStructure = CommonConfig.setDefZero(factoryStructure, 1000); dudStructure = CommonConfig.setDefZero(dudStructure, 1000); diff --git a/src/main/java/com/hbm/lib/HbmWorldGen.java b/src/main/java/com/hbm/lib/HbmWorldGen.java index dac6fed84..2d1bd69c5 100644 --- a/src/main/java/com/hbm/lib/HbmWorldGen.java +++ b/src/main/java/com/hbm/lib/HbmWorldGen.java @@ -18,7 +18,6 @@ import com.hbm.world.dungeon.AncientTomb; import com.hbm.world.dungeon.Antenna; import com.hbm.world.dungeon.ArcticVault; import com.hbm.world.dungeon.Barrel; -import com.hbm.world.dungeon.Bunker; import com.hbm.world.dungeon.CrashedVertibird; import com.hbm.world.dungeon.DesertAtom001; import com.hbm.world.dungeon.Factory; @@ -314,14 +313,6 @@ public class HbmWorldGen implements IWorldGenerator { } } - if(WorldConfig.bunkerStructure > 0 && rand.nextInt(WorldConfig.bunkerStructure) == 0) { - int x = i + rand.nextInt(16); - int z = j + rand.nextInt(16); - int y = world.getHeightValue(x, z); - - new Bunker().generate(world, rand, x, y, z); - } - if(WorldConfig.siloStructure > 0 && rand.nextInt(WorldConfig.siloStructure) == 0) { int x = i + rand.nextInt(16); int z = j + rand.nextInt(16); diff --git a/src/main/java/com/hbm/world/dungeon/Bunker.java b/src/main/java/com/hbm/world/dungeon/Bunker.java deleted file mode 100644 index 3290d5ebd..000000000 --- a/src/main/java/com/hbm/world/dungeon/Bunker.java +++ /dev/null @@ -1,1596 +0,0 @@ -//Schematic to java Structure by jajo_11 | inspired by "MITHION'S .SCHEMATIC TO JAVA CONVERTINGTOOL" - -package com.hbm.world.dungeon; - -import java.util.Random; - -import com.hbm.blocks.ModBlocks; -import com.hbm.blocks.generic.BlockBobble.BobbleType; -import com.hbm.blocks.generic.BlockBobble.TileEntityBobble; -import com.hbm.config.GeneralConfig; -import com.hbm.lib.HbmChestContents; -import com.hbm.lib.Library; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemDoor; -import net.minecraft.tileentity.TileEntityChest; -import net.minecraft.util.WeightedRandomChestContent; -import net.minecraft.world.World; -import net.minecraft.world.gen.feature.WorldGenerator; - -public class Bunker extends WorldGenerator { - Block Block1 = ModBlocks.reinforced_brick; - Block Block3 = ModBlocks.reinforced_light; - Block Block4 = ModBlocks.deco_steel; - Block Block5 = ModBlocks.deco_tungsten; - - protected Block[] GetValidSpawnBlocks() { - return new Block[] { Blocks.grass, Blocks.dirt, Blocks.stone, Blocks.sand, Blocks.sandstone, }; - } - - @Override - public boolean generate(World world, Random rand, int x, int y, int z) { - int i = rand.nextInt(1); - - if(i == 0) { - generate_r0(world, rand, x, y, z); - } - - return true; - - } - - public boolean LocationIsValidSpawn(World world, int x, int y, int z) { - - Block checkBlock = world.getBlock(x, y - 1, z); - Block blockAbove = world.getBlock(x, y, z); - Block blockBelow = world.getBlock(x, y - 2, z); - - for(Block i : GetValidSpawnBlocks()) { - if(blockAbove != Blocks.air) { - return false; - } - if(checkBlock == i) { - return true; - } else if(checkBlock == Blocks.snow_layer && blockBelow == i) { - return true; - } else if(checkBlock.getMaterial() == Material.plants && blockBelow == i) { - return true; - } - } - return false; - } - - public boolean generate_r0(World world, Random rand, int x, int y, int z) { - y += 1; - - if(!LocationIsValidSpawn(world, x + 9, y, z + 9)) { - return false; - } - - if(!LocationIsValidSpawn(world, x, y, z)) - { - return false; - } - - for(int i = 0; i < 11; i++) { - for(int j = 0; j < 9; j++) { - for(int k = 0; k < 15; k++) { - world.setBlock(x + i, y + j - 25, z + k, Blocks.air, 0, 3); - } - } - } - - world.setBlock(x + 0, y + -25, z + 0, Block1, 0, 3); - world.setBlock(x + 1, y + -25, z + 0, Block1, 0, 3); - world.setBlock(x + 2, y + -25, z + 0, Block1, 0, 3); - world.setBlock(x + 3, y + -25, z + 0, Block1, 0, 3); - world.setBlock(x + 4, y + -25, z + 0, Block1, 0, 3); - world.setBlock(x + 5, y + -25, z + 0, Block1, 0, 3); - world.setBlock(x + 6, y + -25, z + 0, Block1, 0, 3); - world.setBlock(x + 7, y + -25, z + 0, Block1, 0, 3); - world.setBlock(x + 8, y + -25, z + 0, Block1, 0, 3); - world.setBlock(x + 9, y + -25, z + 0, Block1, 0, 3); - world.setBlock(x + 10, y + -25, z + 0, Block1, 0, 3); - world.setBlock(x + 11, y + -25, z + 0, Block1, 0, 3); - world.setBlock(x + 0, y + -25, z + 1, Block1, 0, 3); - world.setBlock(x + 1, y + -25, z + 1, Block1, 0, 3); - world.setBlock(x + 2, y + -25, z + 1, Block1, 0, 3); - world.setBlock(x + 3, y + -25, z + 1, Block1, 0, 3); - world.setBlock(x + 4, y + -25, z + 1, Block1, 0, 3); - world.setBlock(x + 5, y + -25, z + 1, Block1, 0, 3); - world.setBlock(x + 6, y + -25, z + 1, Block1, 0, 3); - world.setBlock(x + 7, y + -25, z + 1, Block1, 0, 3); - world.setBlock(x + 8, y + -25, z + 1, Block1, 0, 3); - world.setBlock(x + 9, y + -25, z + 1, Block1, 0, 3); - world.setBlock(x + 10, y + -25, z + 1, Block1, 0, 3); - world.setBlock(x + 11, y + -25, z + 1, Block1, 0, 3); - world.setBlock(x + 0, y + -25, z + 2, Block1, 0, 3); - world.setBlock(x + 1, y + -25, z + 2, Block1, 0, 3); - world.setBlock(x + 2, y + -25, z + 2, Block1, 0, 3); - world.setBlock(x + 3, y + -25, z + 2, Block1, 0, 3); - world.setBlock(x + 4, y + -25, z + 2, Block1, 0, 3); - world.setBlock(x + 5, y + -25, z + 2, Block1, 0, 3); - world.setBlock(x + 6, y + -25, z + 2, Block1, 0, 3); - world.setBlock(x + 7, y + -25, z + 2, Block1, 0, 3); - world.setBlock(x + 8, y + -25, z + 2, Block1, 0, 3); - world.setBlock(x + 9, y + -25, z + 2, Block1, 0, 3); - world.setBlock(x + 10, y + -25, z + 2, Block1, 0, 3); - world.setBlock(x + 11, y + -25, z + 2, Block1, 0, 3); - world.setBlock(x + 0, y + -25, z + 3, Block1, 0, 3); - world.setBlock(x + 1, y + -25, z + 3, Block1, 0, 3); - world.setBlock(x + 2, y + -25, z + 3, Block1, 0, 3); - world.setBlock(x + 3, y + -25, z + 3, Block1, 0, 3); - world.setBlock(x + 4, y + -25, z + 3, Block1, 0, 3); - world.setBlock(x + 5, y + -25, z + 3, Block1, 0, 3); - world.setBlock(x + 6, y + -25, z + 3, Block1, 0, 3); - world.setBlock(x + 7, y + -25, z + 3, Block1, 0, 3); - world.setBlock(x + 8, y + -25, z + 3, Block1, 0, 3); - world.setBlock(x + 9, y + -25, z + 3, Block1, 0, 3); - world.setBlock(x + 10, y + -25, z + 3, Block1, 0, 3); - world.setBlock(x + 11, y + -25, z + 3, Block1, 0, 3); - world.setBlock(x + 0, y + -25, z + 4, Block1, 0, 3); - world.setBlock(x + 1, y + -25, z + 4, Block1, 0, 3); - world.setBlock(x + 2, y + -25, z + 4, Block1, 0, 3); - world.setBlock(x + 3, y + -25, z + 4, Block1, 0, 3); - world.setBlock(x + 4, y + -25, z + 4, Block1, 0, 3); - world.setBlock(x + 5, y + -25, z + 4, Block1, 0, 3); - world.setBlock(x + 6, y + -25, z + 4, Block1, 0, 3); - world.setBlock(x + 7, y + -25, z + 4, Block1, 0, 3); - world.setBlock(x + 8, y + -25, z + 4, Block1, 0, 3); - world.setBlock(x + 9, y + -25, z + 4, Block1, 0, 3); - world.setBlock(x + 10, y + -25, z + 4, Block1, 0, 3); - world.setBlock(x + 11, y + -25, z + 4, Block1, 0, 3); - world.setBlock(x + 0, y + -25, z + 5, Block1, 0, 3); - world.setBlock(x + 1, y + -25, z + 5, Block1, 0, 3); - world.setBlock(x + 2, y + -25, z + 5, Block1, 0, 3); - world.setBlock(x + 3, y + -25, z + 5, Block1, 0, 3); - world.setBlock(x + 4, y + -25, z + 5, Block1, 0, 3); - world.setBlock(x + 5, y + -25, z + 5, Block1, 0, 3); - world.setBlock(x + 6, y + -25, z + 5, Block1, 0, 3); - world.setBlock(x + 7, y + -25, z + 5, Block1, 0, 3); - world.setBlock(x + 8, y + -25, z + 5, Block1, 0, 3); - world.setBlock(x + 9, y + -25, z + 5, Block1, 0, 3); - world.setBlock(x + 10, y + -25, z + 5, Block1, 0, 3); - world.setBlock(x + 11, y + -25, z + 5, Block1, 0, 3); - world.setBlock(x + 0, y + -25, z + 6, Block1, 0, 3); - world.setBlock(x + 1, y + -25, z + 6, Block1, 0, 3); - world.setBlock(x + 2, y + -25, z + 6, Block1, 0, 3); - world.setBlock(x + 3, y + -25, z + 6, Block1, 0, 3); - world.setBlock(x + 4, y + -25, z + 6, Block1, 0, 3); - world.setBlock(x + 5, y + -25, z + 6, Block1, 0, 3); - world.setBlock(x + 6, y + -25, z + 6, Block1, 0, 3); - world.setBlock(x + 7, y + -25, z + 6, Block1, 0, 3); - world.setBlock(x + 8, y + -25, z + 6, Block1, 0, 3); - world.setBlock(x + 9, y + -25, z + 6, Block1, 0, 3); - world.setBlock(x + 10, y + -25, z + 6, Block1, 0, 3); - world.setBlock(x + 11, y + -25, z + 6, Block1, 0, 3); - world.setBlock(x + 0, y + -25, z + 7, Block1, 0, 3); - world.setBlock(x + 1, y + -25, z + 7, Block1, 0, 3); - world.setBlock(x + 2, y + -25, z + 7, Block1, 0, 3); - world.setBlock(x + 3, y + -25, z + 7, Block1, 0, 3); - world.setBlock(x + 4, y + -25, z + 7, Block1, 0, 3); - world.setBlock(x + 5, y + -25, z + 7, Block1, 0, 3); - world.setBlock(x + 6, y + -25, z + 7, Block1, 0, 3); - world.setBlock(x + 7, y + -25, z + 7, Block1, 0, 3); - world.setBlock(x + 8, y + -25, z + 7, Block1, 0, 3); - world.setBlock(x + 9, y + -25, z + 7, Block1, 0, 3); - world.setBlock(x + 10, y + -25, z + 7, Block1, 0, 3); - world.setBlock(x + 11, y + -25, z + 7, Block1, 0, 3); - world.setBlock(x + 0, y + -25, z + 8, Block1, 0, 3); - world.setBlock(x + 1, y + -25, z + 8, Block1, 0, 3); - world.setBlock(x + 2, y + -25, z + 8, Block1, 0, 3); - world.setBlock(x + 3, y + -25, z + 8, Block1, 0, 3); - world.setBlock(x + 4, y + -25, z + 8, Block1, 0, 3); - world.setBlock(x + 5, y + -25, z + 8, Block1, 0, 3); - world.setBlock(x + 6, y + -25, z + 8, Block1, 0, 3); - world.setBlock(x + 7, y + -25, z + 8, Block1, 0, 3); - world.setBlock(x + 8, y + -25, z + 8, Block1, 0, 3); - world.setBlock(x + 9, y + -25, z + 8, Block1, 0, 3); - world.setBlock(x + 10, y + -25, z + 8, Block1, 0, 3); - world.setBlock(x + 11, y + -25, z + 8, Block1, 0, 3); - world.setBlock(x + 0, y + -25, z + 9, Block1, 0, 3); - world.setBlock(x + 1, y + -25, z + 9, Block1, 0, 3); - world.setBlock(x + 2, y + -25, z + 9, Block1, 0, 3); - world.setBlock(x + 3, y + -25, z + 9, Block1, 0, 3); - world.setBlock(x + 4, y + -25, z + 9, Block1, 0, 3); - world.setBlock(x + 5, y + -25, z + 9, Block1, 0, 3); - world.setBlock(x + 6, y + -25, z + 9, Block1, 0, 3); - world.setBlock(x + 7, y + -25, z + 9, Block1, 0, 3); - world.setBlock(x + 8, y + -25, z + 9, Block1, 0, 3); - world.setBlock(x + 9, y + -25, z + 9, Block1, 0, 3); - world.setBlock(x + 10, y + -25, z + 9, Block1, 0, 3); - world.setBlock(x + 11, y + -25, z + 9, Block1, 0, 3); - world.setBlock(x + 0, y + -25, z + 10, Block1, 0, 3); - world.setBlock(x + 1, y + -25, z + 10, Block1, 0, 3); - world.setBlock(x + 2, y + -25, z + 10, Block1, 0, 3); - world.setBlock(x + 3, y + -25, z + 10, Block1, 0, 3); - world.setBlock(x + 4, y + -25, z + 10, Block1, 0, 3); - world.setBlock(x + 5, y + -25, z + 10, Block1, 0, 3); - world.setBlock(x + 6, y + -25, z + 10, Block1, 0, 3); - world.setBlock(x + 7, y + -25, z + 10, Block1, 0, 3); - world.setBlock(x + 8, y + -25, z + 10, Block1, 0, 3); - world.setBlock(x + 9, y + -25, z + 10, Block1, 0, 3); - world.setBlock(x + 10, y + -25, z + 10, Block1, 0, 3); - world.setBlock(x + 11, y + -25, z + 10, Block1, 0, 3); - world.setBlock(x + 0, y + -25, z + 11, Block1, 0, 3); - world.setBlock(x + 1, y + -25, z + 11, Block1, 0, 3); - world.setBlock(x + 2, y + -25, z + 11, Block1, 0, 3); - world.setBlock(x + 3, y + -25, z + 11, Block1, 0, 3); - world.setBlock(x + 4, y + -25, z + 11, Block1, 0, 3); - world.setBlock(x + 5, y + -25, z + 11, Block1, 0, 3); - world.setBlock(x + 6, y + -25, z + 11, Block1, 0, 3); - world.setBlock(x + 7, y + -25, z + 11, Block1, 0, 3); - world.setBlock(x + 8, y + -25, z + 11, Block1, 0, 3); - world.setBlock(x + 9, y + -25, z + 11, Block1, 0, 3); - world.setBlock(x + 10, y + -25, z + 11, Block1, 0, 3); - world.setBlock(x + 11, y + -25, z + 11, Block1, 0, 3); - world.setBlock(x + 0, y + -25, z + 12, Block1, 0, 3); - world.setBlock(x + 1, y + -25, z + 12, Block1, 0, 3); - world.setBlock(x + 2, y + -25, z + 12, Block1, 0, 3); - world.setBlock(x + 3, y + -25, z + 12, Block1, 0, 3); - world.setBlock(x + 4, y + -25, z + 12, Block1, 0, 3); - world.setBlock(x + 5, y + -25, z + 12, Block1, 0, 3); - world.setBlock(x + 6, y + -25, z + 12, Block1, 0, 3); - world.setBlock(x + 7, y + -25, z + 12, Block1, 0, 3); - world.setBlock(x + 8, y + -25, z + 12, Block1, 0, 3); - world.setBlock(x + 9, y + -25, z + 12, Block1, 0, 3); - world.setBlock(x + 10, y + -25, z + 12, Block1, 0, 3); - world.setBlock(x + 11, y + -25, z + 12, Block1, 0, 3); - world.setBlock(x + 0, y + -25, z + 13, Block1, 0, 3); - world.setBlock(x + 1, y + -25, z + 13, Block1, 0, 3); - world.setBlock(x + 2, y + -25, z + 13, Block1, 0, 3); - world.setBlock(x + 3, y + -25, z + 13, Block1, 0, 3); - world.setBlock(x + 4, y + -25, z + 13, Block1, 0, 3); - world.setBlock(x + 5, y + -25, z + 13, Block1, 0, 3); - world.setBlock(x + 6, y + -25, z + 13, Block1, 0, 3); - world.setBlock(x + 7, y + -25, z + 13, Block1, 0, 3); - world.setBlock(x + 8, y + -25, z + 13, Block1, 0, 3); - world.setBlock(x + 9, y + -25, z + 13, Block1, 0, 3); - world.setBlock(x + 10, y + -25, z + 13, Block1, 0, 3); - world.setBlock(x + 11, y + -25, z + 13, Block1, 0, 3); - world.setBlock(x + 0, y + -25, z + 14, Block1, 0, 3); - world.setBlock(x + 1, y + -25, z + 14, Block1, 0, 3); - world.setBlock(x + 2, y + -25, z + 14, Block1, 0, 3); - world.setBlock(x + 3, y + -25, z + 14, Block1, 0, 3); - world.setBlock(x + 4, y + -25, z + 14, Block1, 0, 3); - world.setBlock(x + 5, y + -25, z + 14, Block1, 0, 3); - world.setBlock(x + 6, y + -25, z + 14, Block1, 0, 3); - world.setBlock(x + 7, y + -25, z + 14, Block1, 0, 3); - world.setBlock(x + 8, y + -25, z + 14, Block1, 0, 3); - world.setBlock(x + 9, y + -25, z + 14, Block1, 0, 3); - world.setBlock(x + 10, y + -25, z + 14, Block1, 0, 3); - world.setBlock(x + 11, y + -25, z + 14, Block1, 0, 3); - world.setBlock(x + 0, y + -24, z + 0, Block1, 0, 3); - world.setBlock(x + 1, y + -24, z + 0, Block1, 0, 3); - world.setBlock(x + 2, y + -24, z + 0, Block1, 0, 3); - world.setBlock(x + 3, y + -24, z + 0, Block1, 0, 3); - world.setBlock(x + 4, y + -24, z + 0, Block1, 0, 3); - world.setBlock(x + 5, y + -24, z + 0, Block1, 0, 3); - world.setBlock(x + 6, y + -24, z + 0, Block1, 0, 3); - world.setBlock(x + 7, y + -24, z + 0, Block1, 0, 3); - world.setBlock(x + 8, y + -24, z + 0, Block1, 0, 3); - world.setBlock(x + 9, y + -24, z + 0, Block1, 0, 3); - world.setBlock(x + 10, y + -24, z + 0, Block1, 0, 3); - world.setBlock(x + 11, y + -24, z + 0, Block1, 0, 3); - world.setBlock(x + 0, y + -24, z + 1, Block1, 0, 3); - world.setBlock(x + 1, y + -24, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -24, z + 1, Blocks.chest, 3, 3); - world.setBlockMetadataWithNotify(x + 2, y + -24, z + 1, 3, 3); - if(world.getBlock(x + 2, y + -24, z + 1) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.expensive, (TileEntityChest) world.getTileEntity(x + 2, y + -24, z + 1), rand.nextInt(2) + 6); - } - - if(world.rand.nextInt(10) > 0) { - world.setBlock(x + 2, y + -23, z + 1, ModBlocks.geiger, 2, 3); - } else { - world.setBlock(x + 2, y + -23, z + 1, ModBlocks.bobblehead, 0, 3); - TileEntityBobble bobble = (TileEntityBobble) world.getTileEntity(x + 2, y + -23, z + 1); - - if(bobble != null) { - bobble.type = BobbleType.values()[world.rand.nextInt(BobbleType.values().length - 1) + 1]; - bobble.markDirty(); - } - } - - world.setBlock(x + 3, y + -24, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + -24, z + 1, Block1, 0, 3); - world.setBlock(x + 11, y + -24, z + 1, Block1, 0, 3); - world.setBlock(x + 0, y + -24, z + 2, Block1, 0, 3); - world.setBlock(x + 1, y + -24, z + 2, Blocks.chest, 5, 3); - world.setBlockMetadataWithNotify(x + 1, y + -24, z + 5, 3, 3); - if(world.getBlock(x + 2, y + -24, z + 1) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.modGeneric, (TileEntityChest) world.getTileEntity(x + 1, y + -24, z + 2), 8); - } - world.setBlock(x + 3, y + -24, z + 2, Blocks.chest, 4, 3); - world.setBlockMetadataWithNotify(x + 3, y + -24, z + 2, 4, 3); - if(world.getBlock(x + 3, y + -24, z + 2) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.modGeneric, (TileEntityChest) world.getTileEntity(x + 3, y + -24, z + 2), 8); - } - world.setBlock(x + 4, y + -24, z + 2, Block1, 0, 3); - world.setBlock(x + 11, y + -24, z + 2, Block1, 0, 3); - world.setBlock(x + 0, y + -24, z + 3, Block1, 0, 3); - world.setBlock(x + 1, y + -24, z + 3, Blocks.chest, 5, 3); - world.setBlockMetadataWithNotify(x + 1, y + -24, z + 3, 5, 3); - if(world.getBlock(x + 1, y + -24, z + 3) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.modGeneric, (TileEntityChest) world.getTileEntity(x + 1, y + -24, z + 3), 8); - } - world.setBlock(x + 3, y + -24, z + 3, Blocks.chest, 4, 3); - world.setBlockMetadataWithNotify(x + 3, y + -24, z + 3, 5, 3); - if(world.getBlock(x + 3, y + -24, z + 3) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.modGeneric, (TileEntityChest) world.getTileEntity(x + 3, y + -24, z + 3), 8); - } - world.setBlock(x + 4, y + -24, z + 3, Block1, 0, 3); - world.setBlock(x + 7, y + -24, z + 3, Block1, 0, 3); - world.setBlock(x + 8, y + -24, z + 3, Block1, 0, 3); - world.setBlock(x + 9, y + -24, z + 3, Blocks.iron_door, 5, 3); - ItemDoor.placeDoorBlock(world, x + 9, y + -24, z + 3, 5, Blocks.iron_door); - world.setBlock(x + 10, y + -24, z + 3, Block1, 0, 3); - world.setBlock(x + 11, y + -24, z + 3, Block1, 0, 3); - world.setBlock(x + 0, y + -24, z + 4, Block1, 0, 3); - world.setBlock(x + 1, y + -24, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -24, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + -24, z + 4, Block1, 0, 3); - world.setBlock(x + 7, y + -24, z + 4, Block1, 0, 3); - world.setBlock(x + 10, y + -24, z + 4, Blocks.cauldron, 0, 3); - world.setBlock(x + 11, y + -24, z + 4, Block1, 0, 3); - world.setBlock(x + 0, y + -24, z + 5, Block1, 0, 3); - world.setBlock(x + 1, y + -24, z + 5, Block1, 0, 3); - world.setBlock(x + 2, y + -24, z + 5, Blocks.iron_door, 3, 3); - ItemDoor.placeDoorBlock(world, x + 2, y + -24, z + 5, 3, Blocks.iron_door); - world.setBlock(x + 3, y + -24, z + 5, Block1, 0, 3); - world.setBlock(x + 4, y + -24, z + 5, Block1, 0, 3); - world.setBlock(x + 7, y + -24, z + 5, Block1, 0, 3); - world.setBlock(x + 10, y + -24, z + 5, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 11, y + -24, z + 5, Block1, 0, 3); - world.setBlock(x + 0, y + -24, z + 6, Block1, 0, 3); - world.setBlock(x + 7, y + -24, z + 6, Block1, 0, 3); - world.setBlock(x + 10, y + -24, z + 6, Blocks.cauldron, 0, 3); - world.setBlock(x + 11, y + -24, z + 6, Block1, 0, 3); - world.setBlock(x + 0, y + -24, z + 7, Block1, 0, 3); - world.setBlock(x + 7, y + -24, z + 7, Block1, 0, 3); - world.setBlock(x + 10, y + -24, z + 7, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 11, y + -24, z + 7, Block1, 0, 3); - world.setBlock(x + 0, y + -24, z + 8, Block1, 0, 3); - world.setBlock(x + 3, y + -24, z + 8, Block1, 0, 3); - world.setBlock(x + 4, y + -24, z + 8, Block1, 0, 3); - world.setBlock(x + 5, y + -24, z + 8, Block1, 0, 3); - world.setBlock(x + 6, y + -24, z + 8, Block1, 0, 3); - world.setBlock(x + 7, y + -24, z + 8, Block1, 0, 3); - world.setBlock(x + 10, y + -24, z + 8, Blocks.cauldron, 0, 3); - world.setBlock(x + 11, y + -24, z + 8, Block1, 0, 3); - world.setBlock(x + 0, y + -24, z + 9, Block1, 0, 3); - world.setBlock(x + 3, y + -24, z + 9, Block1, 0, 3); - world.setBlock(x + 7, y + -24, z + 9, Blocks.iron_door, 1, 3); - ItemDoor.placeDoorBlock(world, x + 7, y + -24, z + 9, 1, Blocks.iron_door); - world.setBlock(x + 10, y + -24, z + 9, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 11, y + -24, z + 9, Block1, 0, 3); - world.setBlock(x + 0, y + -24, z + 10, Block1, 0, 3); - world.setBlock(x + 3, y + -24, z + 10, Block1, 0, 3); - world.setBlock(x + 4, y + -24, z + 10, Blocks.hopper, 4, 3); - world.setBlock(x + 6, y + -24, z + 10, Blocks.cauldron, 0, 3); - world.setBlock(x + 7, y + -24, z + 10, Block1, 0, 3); - world.setBlock(x + 10, y + -24, z + 10, Blocks.cauldron, 0, 3); - world.setBlock(x + 11, y + -24, z + 10, Block1, 0, 3); - world.setBlock(x + 0, y + -24, z + 11, Block1, 0, 3); - world.setBlock(x + 3, y + -24, z + 11, Block1, 0, 3); - world.setBlock(x + 4, y + -24, z + 11, Block1, 0, 3); - world.setBlock(x + 5, y + -24, z + 11, Block1, 0, 3); - world.setBlock(x + 6, y + -24, z + 11, Block1, 0, 3); - world.setBlock(x + 7, y + -24, z + 11, Block1, 0, 3); - world.setBlock(x + 8, y + -24, z + 11, Block1, 0, 3); - world.setBlock(x + 9, y + -24, z + 11, Block1, 0, 3); - world.setBlock(x + 10, y + -24, z + 11, Block1, 0, 3); - world.setBlock(x + 11, y + -24, z + 11, Block1, 0, 3); - world.setBlock(x + 0, y + -24, z + 12, Block1, 0, 3); - world.setBlock(x + 11, y + -24, z + 12, Block1, 0, 3); - world.setBlock(x + 0, y + -24, z + 13, Block1, 0, 3); - world.setBlock(x + 11, y + -24, z + 13, Block1, 0, 3); - world.setBlock(x + 0, y + -24, z + 14, Block1, 0, 3); - world.setBlock(x + 1, y + -24, z + 14, Block1, 0, 3); - world.setBlock(x + 2, y + -24, z + 14, Block1, 0, 3); - world.setBlock(x + 3, y + -24, z + 14, Block1, 0, 3); - world.setBlock(x + 4, y + -24, z + 14, Block1, 0, 3); - world.setBlock(x + 5, y + -24, z + 14, Block1, 0, 3); - world.setBlock(x + 6, y + -24, z + 14, Block1, 0, 3); - world.setBlock(x + 7, y + -24, z + 14, Block1, 0, 3); - world.setBlock(x + 8, y + -24, z + 14, Block1, 0, 3); - world.setBlock(x + 9, y + -24, z + 14, Block1, 0, 3); - world.setBlock(x + 10, y + -24, z + 14, Block1, 0, 3); - world.setBlock(x + 11, y + -24, z + 14, Block1, 0, 3); - world.setBlock(x + 0, y + -23, z + 0, Block1, 0, 3); - world.setBlock(x + 1, y + -23, z + 0, Block1, 0, 3); - world.setBlock(x + 2, y + -23, z + 0, Block1, 0, 3); - world.setBlock(x + 3, y + -23, z + 0, Block1, 0, 3); - world.setBlock(x + 4, y + -23, z + 0, Block1, 0, 3); - world.setBlock(x + 5, y + -23, z + 0, Block1, 0, 3); - world.setBlock(x + 6, y + -23, z + 0, Block3, 0, 3); - world.setBlock(x + 7, y + -23, z + 0, Block1, 0, 3); - world.setBlock(x + 8, y + -23, z + 0, Block1, 0, 3); - world.setBlock(x + 9, y + -23, z + 0, Block3, 0, 3); - world.setBlock(x + 10, y + -23, z + 0, Block1, 0, 3); - world.setBlock(x + 11, y + -23, z + 0, Block1, 0, 3); - world.setBlock(x + 0, y + -23, z + 1, Block1, 0, 3); - world.setBlock(x + 1, y + -23, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -23, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + -23, z + 1, Block1, 0, 3); - world.setBlock(x + 5, y + -23, z + 1, Blocks.web, 0, 3); - world.setBlock(x + 10, y + -23, z + 1, Blocks.web, 0, 3); - world.setBlock(x + 11, y + -23, z + 1, Block1, 0, 3); - world.setBlock(x + 0, y + -23, z + 2, Block1, 0, 3); - world.setBlock(x + 4, y + -23, z + 2, Block1, 0, 3); - world.setBlock(x + 11, y + -23, z + 2, Block1, 0, 3); - world.setBlock(x + 0, y + -23, z + 3, Block1, 0, 3); - world.setBlock(x + 4, y + -23, z + 3, Block1, 0, 3); - world.setBlock(x + 7, y + -23, z + 3, Block1, 0, 3); - world.setBlock(x + 8, y + -23, z + 3, Block1, 0, 3); - // world.setBlock(x + 9, y + -23, z + 3, Blocks.iron_door, 8, 3); - world.setBlock(x + 10, y + -23, z + 3, Block1, 0, 3); - world.setBlock(x + 11, y + -23, z + 3, Block1, 0, 3); - world.setBlock(x + 0, y + -23, z + 4, Block1, 0, 3); - world.setBlock(x + 1, y + -23, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -23, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + -23, z + 4, Block1, 0, 3); - world.setBlock(x + 7, y + -23, z + 4, Block1, 0, 3); - world.setBlock(x + 11, y + -23, z + 4, Block1, 0, 3); - world.setBlock(x + 0, y + -23, z + 5, Block1, 0, 3); - world.setBlock(x + 1, y + -23, z + 5, Block1, 0, 3); - // world.setBlock(x + 2, y + -23, z + 5, Blocks.iron_door, 8, 3); - world.setBlock(x + 3, y + -23, z + 5, Block1, 0, 3); - world.setBlock(x + 4, y + -23, z + 5, Block3, 0, 3); - world.setBlock(x + 7, y + -23, z + 5, Block1, 0, 3); - world.setBlock(x + 11, y + -23, z + 5, Block1, 0, 3); - world.setBlock(x + 0, y + -23, z + 6, Block1, 0, 3); - world.setBlock(x + 7, y + -23, z + 6, Block1, 0, 3); - world.setBlock(x + 11, y + -23, z + 6, Block1, 0, 3); - world.setBlock(x + 0, y + -23, z + 7, Block1, 0, 3); - world.setBlock(x + 7, y + -23, z + 7, Block1, 0, 3); - world.setBlock(x + 11, y + -23, z + 7, Block1, 0, 3); - world.setBlock(x + 0, y + -23, z + 8, Block1, 0, 3); - world.setBlock(x + 3, y + -23, z + 8, Block1, 0, 3); - world.setBlock(x + 4, y + -23, z + 8, Block1, 0, 3); - world.setBlock(x + 5, y + -23, z + 8, Block1, 0, 3); - world.setBlock(x + 6, y + -23, z + 8, Block1, 0, 3); - world.setBlock(x + 7, y + -23, z + 8, Block1, 0, 3); - world.setBlock(x + 11, y + -23, z + 8, Block1, 0, 3); - world.setBlock(x + 0, y + -23, z + 9, Block1, 0, 3); - world.setBlock(x + 1, y + -23, z + 9, Blocks.web, 0, 3); - world.setBlock(x + 3, y + -23, z + 9, Block3, 0, 3); - // world.setBlock(x + 7, y + -23, z + 9, Blocks.iron_door, 8, 3); - world.setBlock(x + 11, y + -23, z + 9, Block1, 0, 3); - world.setBlock(x + 0, y + -23, z + 10, Block1, 0, 3); - world.setBlock(x + 3, y + -23, z + 10, Block1, 0, 3); - world.setBlock(x + 4, y + -23, z + 10, Blocks.trapdoor, 7, 3); - world.setBlock(x + 7, y + -23, z + 10, Block1, 0, 3); - world.setBlock(x + 11, y + -23, z + 10, Block1, 0, 3); - world.setBlock(x + 0, y + -23, z + 11, Block1, 0, 3); - world.setBlock(x + 3, y + -23, z + 11, Block1, 0, 3); - world.setBlock(x + 4, y + -23, z + 11, Block1, 0, 3); - world.setBlock(x + 5, y + -23, z + 11, Block1, 0, 3); - world.setBlock(x + 6, y + -23, z + 11, Block1, 0, 3); - world.setBlock(x + 7, y + -23, z + 11, Block1, 0, 3); - world.setBlock(x + 8, y + -23, z + 11, Block1, 0, 3); - world.setBlock(x + 9, y + -23, z + 11, Block1, 0, 3); - world.setBlock(x + 10, y + -23, z + 11, Block1, 0, 3); - world.setBlock(x + 11, y + -23, z + 11, Block1, 0, 3); - world.setBlock(x + 0, y + -23, z + 12, Block1, 0, 3); - world.setBlock(x + 11, y + -23, z + 12, Block1, 0, 3); - world.setBlock(x + 0, y + -23, z + 13, Block1, 0, 3); - world.setBlock(x + 1, y + -23, z + 13, Blocks.web, 0, 3); - world.setBlock(x + 11, y + -23, z + 13, Block1, 0, 3); - world.setBlock(x + 0, y + -23, z + 14, Block1, 0, 3); - world.setBlock(x + 1, y + -23, z + 14, Block1, 0, 3); - // prevent geiger displacement - // world.setBlock(x + 2, y + -23, z + 14, Block1, 0, 3); - world.setBlock(x + 3, y + -23, z + 14, Block1, 0, 3); - world.setBlock(x + 4, y + -23, z + 14, Block3, 0, 3); - world.setBlock(x + 5, y + -23, z + 14, Block1, 0, 3); - world.setBlock(x + 6, y + -23, z + 14, Block1, 0, 3); - world.setBlock(x + 7, y + -23, z + 14, Block3, 0, 3); - world.setBlock(x + 8, y + -23, z + 14, Block1, 0, 3); - world.setBlock(x + 9, y + -23, z + 14, Block1, 0, 3); - world.setBlock(x + 10, y + -23, z + 14, Block1, 0, 3); - world.setBlock(x + 11, y + -23, z + 14, Block1, 0, 3); - world.setBlock(x + 0, y + -22, z + 0, Block1, 0, 3); - world.setBlock(x + 1, y + -22, z + 0, Block1, 0, 3); - world.setBlock(x + 2, y + -22, z + 0, Block1, 0, 3); - world.setBlock(x + 3, y + -22, z + 0, Block1, 0, 3); - world.setBlock(x + 4, y + -22, z + 0, Block1, 0, 3); - world.setBlock(x + 5, y + -22, z + 0, Block1, 0, 3); - world.setBlock(x + 6, y + -22, z + 0, Block1, 0, 3); - world.setBlock(x + 7, y + -22, z + 0, Block1, 0, 3); - world.setBlock(x + 8, y + -22, z + 0, Block1, 0, 3); - world.setBlock(x + 9, y + -22, z + 0, Block1, 0, 3); - world.setBlock(x + 10, y + -22, z + 0, Block1, 0, 3); - world.setBlock(x + 11, y + -22, z + 0, Block1, 0, 3); - world.setBlock(x + 0, y + -22, z + 1, Block1, 0, 3); - world.setBlock(x + 1, y + -22, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -22, z + 1, Block3, 0, 3); - world.setBlock(x + 3, y + -22, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + -22, z + 1, Block1, 0, 3); - world.setBlock(x + 5, y + -22, z + 1, Blocks.web, 0, 3); - world.setBlock(x + 6, y + -22, z + 1, Blocks.web, 0, 3); - world.setBlock(x + 9, y + -22, z + 1, Blocks.web, 0, 3); - world.setBlock(x + 11, y + -22, z + 1, Block1, 0, 3); - world.setBlock(x + 0, y + -22, z + 2, Block1, 0, 3); - world.setBlock(x + 4, y + -22, z + 2, Block1, 0, 3); - world.setBlock(x + 5, y + -22, z + 2, Blocks.web, 0, 3); - world.setBlock(x + 10, y + -22, z + 2, Blocks.web, 0, 3); - world.setBlock(x + 11, y + -22, z + 2, Block1, 0, 3); - world.setBlock(x + 0, y + -22, z + 3, Block1, 0, 3); - world.setBlock(x + 4, y + -22, z + 3, Block1, 0, 3); - world.setBlock(x + 7, y + -22, z + 3, Block1, 0, 3); - world.setBlock(x + 8, y + -22, z + 3, Block1, 0, 3); - world.setBlock(x + 9, y + -22, z + 3, Block1, 0, 3); - world.setBlock(x + 10, y + -22, z + 3, Block1, 0, 3); - world.setBlock(x + 11, y + -22, z + 3, Block1, 0, 3); - world.setBlock(x + 0, y + -22, z + 4, Block1, 0, 3); - world.setBlock(x + 1, y + -22, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -22, z + 4, Block3, 0, 3); - world.setBlock(x + 3, y + -22, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + -22, z + 4, Block1, 0, 3); - world.setBlock(x + 7, y + -22, z + 4, Block1, 0, 3); - world.setBlock(x + 8, y + -22, z + 4, Blocks.web, 0, 3); - world.setBlock(x + 10, y + -22, z + 4, Block3, 0, 3); - world.setBlock(x + 11, y + -22, z + 4, Block1, 0, 3); - world.setBlock(x + 0, y + -22, z + 5, Block1, 0, 3); - world.setBlock(x + 1, y + -22, z + 5, Block1, 0, 3); - world.setBlock(x + 2, y + -22, z + 5, Block1, 0, 3); - world.setBlock(x + 3, y + -22, z + 5, Block1, 0, 3); - world.setBlock(x + 4, y + -22, z + 5, Block1, 0, 3); - world.setBlock(x + 7, y + -22, z + 5, Block1, 0, 3); - world.setBlock(x + 11, y + -22, z + 5, Block1, 0, 3); - world.setBlock(x + 0, y + -22, z + 6, Block1, 0, 3); - world.setBlock(x + 1, y + -22, z + 6, Blocks.web, 0, 3); - world.setBlock(x + 6, y + -22, z + 6, Blocks.web, 0, 3); - world.setBlock(x + 7, y + -22, z + 6, Block1, 0, 3); - world.setBlock(x + 10, y + -22, z + 6, Block3, 0, 3); - world.setBlock(x + 11, y + -22, z + 6, Block1, 0, 3); - world.setBlock(x + 0, y + -22, z + 7, Block1, 0, 3); - world.setBlock(x + 5, y + -22, z + 7, Blocks.web, 0, 3); - world.setBlock(x + 6, y + -22, z + 7, Blocks.web, 0, 3); - world.setBlock(x + 7, y + -22, z + 7, Block1, 0, 3); - world.setBlock(x + 10, y + -22, z + 7, Blocks.web, 0, 3); - world.setBlock(x + 11, y + -22, z + 7, Block1, 0, 3); - world.setBlock(x + 0, y + -22, z + 8, Block1, 0, 3); - world.setBlock(x + 1, y + -22, z + 8, Blocks.web, 0, 3); - world.setBlock(x + 3, y + -22, z + 8, Block1, 0, 3); - world.setBlock(x + 4, y + -22, z + 8, Block1, 0, 3); - world.setBlock(x + 5, y + -22, z + 8, Block1, 0, 3); - world.setBlock(x + 6, y + -22, z + 8, Block1, 0, 3); - world.setBlock(x + 7, y + -22, z + 8, Block1, 0, 3); - world.setBlock(x + 10, y + -22, z + 8, Block3, 0, 3); - world.setBlock(x + 11, y + -22, z + 8, Block1, 0, 3); - world.setBlock(x + 0, y + -22, z + 9, Block1, 0, 3); - world.setBlock(x + 2, y + -22, z + 9, Blocks.web, 0, 3); - world.setBlock(x + 3, y + -22, z + 9, Block1, 0, 3); - world.setBlock(x + 6, y + -22, z + 9, Blocks.web, 0, 3); - world.setBlock(x + 7, y + -22, z + 9, Block1, 0, 3); - world.setBlock(x + 8, y + -22, z + 9, Blocks.web, 0, 3); - world.setBlock(x + 11, y + -22, z + 9, Block1, 0, 3); - world.setBlock(x + 0, y + -22, z + 10, Block1, 0, 3); - world.setBlock(x + 1, y + -22, z + 10, Blocks.web, 0, 3); - world.setBlock(x + 3, y + -22, z + 10, Block1, 0, 3); - world.setBlock(x + 7, y + -22, z + 10, Block1, 0, 3); - world.setBlock(x + 8, y + -22, z + 10, Blocks.web, 0, 3); - world.setBlock(x + 10, y + -22, z + 10, Block3, 0, 3); - world.setBlock(x + 11, y + -22, z + 10, Block1, 0, 3); - world.setBlock(x + 0, y + -22, z + 11, Block1, 0, 3); - world.setBlock(x + 3, y + -22, z + 11, Block1, 0, 3); - world.setBlock(x + 4, y + -22, z + 11, Block1, 0, 3); - world.setBlock(x + 5, y + -22, z + 11, Block1, 0, 3); - world.setBlock(x + 6, y + -22, z + 11, Block1, 0, 3); - world.setBlock(x + 7, y + -22, z + 11, Block1, 0, 3); - world.setBlock(x + 8, y + -22, z + 11, Block1, 0, 3); - world.setBlock(x + 9, y + -22, z + 11, Block1, 0, 3); - world.setBlock(x + 10, y + -22, z + 11, Block1, 0, 3); - world.setBlock(x + 11, y + -22, z + 11, Block1, 0, 3); - world.setBlock(x + 0, y + -22, z + 12, Block1, 0, 3); - world.setBlock(x + 1, y + -22, z + 12, Blocks.web, 0, 3); - world.setBlock(x + 5, y + -22, z + 12, Blocks.web, 0, 3); - world.setBlock(x + 11, y + -22, z + 12, Block1, 0, 3); - world.setBlock(x + 0, y + -22, z + 13, Block1, 0, 3); - world.setBlock(x + 1, y + -22, z + 13, Blocks.web, 0, 3); - world.setBlock(x + 2, y + -22, z + 13, Blocks.web, 0, 3); - world.setBlock(x + 3, y + -22, z + 13, Blocks.web, 0, 3); - world.setBlock(x + 6, y + -22, z + 13, Blocks.web, 0, 3); - world.setBlock(x + 7, y + -22, z + 13, Blocks.web, 0, 3); - world.setBlock(x + 8, y + -22, z + 13, Blocks.web, 0, 3); - world.setBlock(x + 11, y + -22, z + 13, Block1, 0, 3); - world.setBlock(x + 0, y + -22, z + 14, Block1, 0, 3); - world.setBlock(x + 1, y + -22, z + 14, Block1, 0, 3); - world.setBlock(x + 2, y + -22, z + 14, Block1, 0, 3); - world.setBlock(x + 3, y + -22, z + 14, Block1, 0, 3); - world.setBlock(x + 4, y + -22, z + 14, Block1, 0, 3); - world.setBlock(x + 5, y + -22, z + 14, Block1, 0, 3); - world.setBlock(x + 6, y + -22, z + 14, Block1, 0, 3); - world.setBlock(x + 7, y + -22, z + 14, Block1, 0, 3); - world.setBlock(x + 8, y + -22, z + 14, Block1, 0, 3); - world.setBlock(x + 9, y + -22, z + 14, Block1, 0, 3); - world.setBlock(x + 10, y + -22, z + 14, Block1, 0, 3); - world.setBlock(x + 11, y + -22, z + 14, Block1, 0, 3); - world.setBlock(x + 0, y + -21, z + 0, Block1, 0, 3); - world.setBlock(x + 1, y + -21, z + 0, Block1, 0, 3); - world.setBlock(x + 2, y + -21, z + 0, Block1, 0, 3); - world.setBlock(x + 3, y + -21, z + 0, Block1, 0, 3); - world.setBlock(x + 4, y + -21, z + 0, Block1, 0, 3); - world.setBlock(x + 5, y + -21, z + 0, Block1, 0, 3); - world.setBlock(x + 6, y + -21, z + 0, Block1, 0, 3); - world.setBlock(x + 7, y + -21, z + 0, Block1, 0, 3); - world.setBlock(x + 8, y + -21, z + 0, Block1, 0, 3); - world.setBlock(x + 9, y + -21, z + 0, Block1, 0, 3); - world.setBlock(x + 10, y + -21, z + 0, Block1, 0, 3); - world.setBlock(x + 11, y + -21, z + 0, Block1, 0, 3); - world.setBlock(x + 0, y + -21, z + 1, Block1, 0, 3); - world.setBlock(x + 1, y + -21, z + 1, Block1, 0, 3); - world.setBlock(x + 2, y + -21, z + 1, Block1, 0, 3); - world.setBlock(x + 3, y + -21, z + 1, Block1, 0, 3); - world.setBlock(x + 4, y + -21, z + 1, Block1, 0, 3); - world.setBlock(x + 5, y + -21, z + 1, Block1, 0, 3); - world.setBlock(x + 6, y + -21, z + 1, Block1, 0, 3); - world.setBlock(x + 7, y + -21, z + 1, Block1, 0, 3); - world.setBlock(x + 8, y + -21, z + 1, Block1, 0, 3); - world.setBlock(x + 9, y + -21, z + 1, Block1, 0, 3); - world.setBlock(x + 10, y + -21, z + 1, Block1, 0, 3); - world.setBlock(x + 11, y + -21, z + 1, Block1, 0, 3); - world.setBlock(x + 0, y + -21, z + 2, Block1, 0, 3); - world.setBlock(x + 1, y + -21, z + 2, Block1, 0, 3); - world.setBlock(x + 2, y + -21, z + 2, Block1, 0, 3); - world.setBlock(x + 3, y + -21, z + 2, Block1, 0, 3); - world.setBlock(x + 4, y + -21, z + 2, Block1, 0, 3); - world.setBlock(x + 5, y + -21, z + 2, Block1, 0, 3); - world.setBlock(x + 6, y + -21, z + 2, Block1, 0, 3); - world.setBlock(x + 7, y + -21, z + 2, Block1, 0, 3); - world.setBlock(x + 8, y + -21, z + 2, Block1, 0, 3); - world.setBlock(x + 9, y + -21, z + 2, Block1, 0, 3); - world.setBlock(x + 10, y + -21, z + 2, Block1, 0, 3); - world.setBlock(x + 11, y + -21, z + 2, Block1, 0, 3); - world.setBlock(x + 0, y + -21, z + 3, Block1, 0, 3); - world.setBlock(x + 1, y + -21, z + 3, Block1, 0, 3); - world.setBlock(x + 2, y + -21, z + 3, Block1, 0, 3); - world.setBlock(x + 3, y + -21, z + 3, Block1, 0, 3); - world.setBlock(x + 4, y + -21, z + 3, Block1, 0, 3); - world.setBlock(x + 5, y + -21, z + 3, Block1, 0, 3); - world.setBlock(x + 6, y + -21, z + 3, Block1, 0, 3); - world.setBlock(x + 7, y + -21, z + 3, Block1, 0, 3); - world.setBlock(x + 8, y + -21, z + 3, Block1, 0, 3); - world.setBlock(x + 9, y + -21, z + 3, Block1, 0, 3); - world.setBlock(x + 10, y + -21, z + 3, Block1, 0, 3); - world.setBlock(x + 11, y + -21, z + 3, Block1, 0, 3); - world.setBlock(x + 0, y + -21, z + 4, Block1, 0, 3); - world.setBlock(x + 1, y + -21, z + 4, Block1, 0, 3); - world.setBlock(x + 2, y + -21, z + 4, Block1, 0, 3); - world.setBlock(x + 3, y + -21, z + 4, Block1, 0, 3); - world.setBlock(x + 4, y + -21, z + 4, Block1, 0, 3); - world.setBlock(x + 5, y + -21, z + 4, Block1, 0, 3); - world.setBlock(x + 6, y + -21, z + 4, Block1, 0, 3); - world.setBlock(x + 7, y + -21, z + 4, Block1, 0, 3); - world.setBlock(x + 8, y + -21, z + 4, Block1, 0, 3); - world.setBlock(x + 9, y + -21, z + 4, Block1, 0, 3); - world.setBlock(x + 10, y + -21, z + 4, Block1, 0, 3); - world.setBlock(x + 11, y + -21, z + 4, Block1, 0, 3); - world.setBlock(x + 0, y + -21, z + 5, Block1, 0, 3); - world.setBlock(x + 1, y + -21, z + 5, Block1, 0, 3); - world.setBlock(x + 2, y + -21, z + 5, Block1, 0, 3); - world.setBlock(x + 3, y + -21, z + 5, Block1, 0, 3); - world.setBlock(x + 4, y + -21, z + 5, Block1, 0, 3); - world.setBlock(x + 5, y + -21, z + 5, Block1, 0, 3); - world.setBlock(x + 6, y + -21, z + 5, Block1, 0, 3); - world.setBlock(x + 7, y + -21, z + 5, Block1, 0, 3); - world.setBlock(x + 8, y + -21, z + 5, Block1, 0, 3); - world.setBlock(x + 9, y + -21, z + 5, Block1, 0, 3); - world.setBlock(x + 10, y + -21, z + 5, Block1, 0, 3); - world.setBlock(x + 11, y + -21, z + 5, Block1, 0, 3); - world.setBlock(x + 0, y + -21, z + 6, Block1, 0, 3); - world.setBlock(x + 1, y + -21, z + 6, Block1, 0, 3); - world.setBlock(x + 2, y + -21, z + 6, Block1, 0, 3); - world.setBlock(x + 3, y + -21, z + 6, Block1, 0, 3); - world.setBlock(x + 4, y + -21, z + 6, Block1, 0, 3); - world.setBlock(x + 5, y + -21, z + 6, Block1, 0, 3); - world.setBlock(x + 6, y + -21, z + 6, Block1, 0, 3); - world.setBlock(x + 7, y + -21, z + 6, Block1, 0, 3); - world.setBlock(x + 8, y + -21, z + 6, Block1, 0, 3); - world.setBlock(x + 9, y + -21, z + 6, Block1, 0, 3); - world.setBlock(x + 10, y + -21, z + 6, Block1, 0, 3); - world.setBlock(x + 11, y + -21, z + 6, Block1, 0, 3); - world.setBlock(x + 0, y + -21, z + 7, Block1, 0, 3); - world.setBlock(x + 1, y + -21, z + 7, Block1, 0, 3); - world.setBlock(x + 2, y + -21, z + 7, Block1, 0, 3); - world.setBlock(x + 3, y + -21, z + 7, Block1, 0, 3); - world.setBlock(x + 4, y + -21, z + 7, Block1, 0, 3); - world.setBlock(x + 5, y + -21, z + 7, Block1, 0, 3); - world.setBlock(x + 6, y + -21, z + 7, Block1, 0, 3); - world.setBlock(x + 7, y + -21, z + 7, Block1, 0, 3); - world.setBlock(x + 8, y + -21, z + 7, Block1, 0, 3); - world.setBlock(x + 9, y + -21, z + 7, Block1, 0, 3); - world.setBlock(x + 10, y + -21, z + 7, Block1, 0, 3); - world.setBlock(x + 11, y + -21, z + 7, Block1, 0, 3); - world.setBlock(x + 0, y + -21, z + 8, Block1, 0, 3); - world.setBlock(x + 1, y + -21, z + 8, Block1, 0, 3); - world.setBlock(x + 2, y + -21, z + 8, Block1, 0, 3); - world.setBlock(x + 3, y + -21, z + 8, Block1, 0, 3); - world.setBlock(x + 4, y + -21, z + 8, Block1, 0, 3); - world.setBlock(x + 5, y + -21, z + 8, Block1, 0, 3); - world.setBlock(x + 6, y + -21, z + 8, Block1, 0, 3); - world.setBlock(x + 7, y + -21, z + 8, Block1, 0, 3); - world.setBlock(x + 8, y + -21, z + 8, Block1, 0, 3); - world.setBlock(x + 9, y + -21, z + 8, Block1, 0, 3); - world.setBlock(x + 10, y + -21, z + 8, Block1, 0, 3); - world.setBlock(x + 11, y + -21, z + 8, Block1, 0, 3); - world.setBlock(x + 0, y + -21, z + 9, Block1, 0, 3); - world.setBlock(x + 1, y + -21, z + 9, Block1, 0, 3); - world.setBlock(x + 2, y + -21, z + 9, Block1, 0, 3); - world.setBlock(x + 3, y + -21, z + 9, Block1, 0, 3); - world.setBlock(x + 4, y + -21, z + 9, Block1, 0, 3); - world.setBlock(x + 5, y + -21, z + 9, Block1, 0, 3); - world.setBlock(x + 6, y + -21, z + 9, Block1, 0, 3); - world.setBlock(x + 7, y + -21, z + 9, Block1, 0, 3); - world.setBlock(x + 8, y + -21, z + 9, Block1, 0, 3); - world.setBlock(x + 9, y + -21, z + 9, Block1, 0, 3); - world.setBlock(x + 10, y + -21, z + 9, Block1, 0, 3); - world.setBlock(x + 11, y + -21, z + 9, Block1, 0, 3); - world.setBlock(x + 0, y + -21, z + 10, Block1, 0, 3); - world.setBlock(x + 1, y + -21, z + 10, Block1, 0, 3); - world.setBlock(x + 2, y + -21, z + 10, Block1, 0, 3); - world.setBlock(x + 3, y + -21, z + 10, Block1, 0, 3); - world.setBlock(x + 4, y + -21, z + 10, Block1, 0, 3); - world.setBlock(x + 5, y + -21, z + 10, Block1, 0, 3); - world.setBlock(x + 6, y + -21, z + 10, Block1, 0, 3); - world.setBlock(x + 7, y + -21, z + 10, Block1, 0, 3); - world.setBlock(x + 8, y + -21, z + 10, Block1, 0, 3); - world.setBlock(x + 9, y + -21, z + 10, Block1, 0, 3); - world.setBlock(x + 10, y + -21, z + 10, Block1, 0, 3); - world.setBlock(x + 11, y + -21, z + 10, Block1, 0, 3); - world.setBlock(x + 0, y + -21, z + 11, Block1, 0, 3); - world.setBlock(x + 1, y + -21, z + 11, Block1, 0, 3); - world.setBlock(x + 2, y + -21, z + 11, Block1, 0, 3); - world.setBlock(x + 3, y + -21, z + 11, Block1, 0, 3); - world.setBlock(x + 4, y + -21, z + 11, Block1, 0, 3); - world.setBlock(x + 5, y + -21, z + 11, Block1, 0, 3); - world.setBlock(x + 6, y + -21, z + 11, Block1, 0, 3); - world.setBlock(x + 7, y + -21, z + 11, Block1, 0, 3); - world.setBlock(x + 8, y + -21, z + 11, Block1, 0, 3); - world.setBlock(x + 9, y + -21, z + 11, Block1, 0, 3); - world.setBlock(x + 10, y + -21, z + 11, Block1, 0, 3); - world.setBlock(x + 11, y + -21, z + 11, Block1, 0, 3); - world.setBlock(x + 0, y + -21, z + 12, Block1, 0, 3); - world.setBlock(x + 1, y + -21, z + 12, Block1, 0, 3); - world.setBlock(x + 2, y + -21, z + 12, Block1, 0, 3); - world.setBlock(x + 3, y + -21, z + 12, Block1, 0, 3); - world.setBlock(x + 4, y + -21, z + 12, Block1, 0, 3); - world.setBlock(x + 5, y + -21, z + 12, Block1, 0, 3); - world.setBlock(x + 6, y + -21, z + 12, Block1, 0, 3); - world.setBlock(x + 7, y + -21, z + 12, Block1, 0, 3); - world.setBlock(x + 8, y + -21, z + 12, Block1, 0, 3); - world.setBlock(x + 9, y + -21, z + 12, Block1, 0, 3); - world.setBlock(x + 11, y + -21, z + 12, Block1, 0, 3); - world.setBlock(x + 0, y + -21, z + 13, Block1, 0, 3); - world.setBlock(x + 1, y + -21, z + 13, Block1, 0, 3); - world.setBlock(x + 2, y + -21, z + 13, Block1, 0, 3); - world.setBlock(x + 3, y + -21, z + 13, Block1, 0, 3); - world.setBlock(x + 4, y + -21, z + 13, Block1, 0, 3); - world.setBlock(x + 5, y + -21, z + 13, Block1, 0, 3); - world.setBlock(x + 6, y + -21, z + 13, Block1, 0, 3); - world.setBlock(x + 7, y + -21, z + 13, Block1, 0, 3); - world.setBlock(x + 8, y + -21, z + 13, Block1, 0, 3); - world.setBlock(x + 9, y + -21, z + 13, Block1, 0, 3); - world.setBlock(x + 11, y + -21, z + 13, Block1, 0, 3); - world.setBlock(x + 0, y + -21, z + 14, Block1, 0, 3); - world.setBlock(x + 1, y + -21, z + 14, Block1, 0, 3); - world.setBlock(x + 2, y + -21, z + 14, Block1, 0, 3); - world.setBlock(x + 3, y + -21, z + 14, Block1, 0, 3); - world.setBlock(x + 4, y + -21, z + 14, Block1, 0, 3); - world.setBlock(x + 5, y + -21, z + 14, Block1, 0, 3); - world.setBlock(x + 6, y + -21, z + 14, Block1, 0, 3); - world.setBlock(x + 7, y + -21, z + 14, Block1, 0, 3); - world.setBlock(x + 8, y + -21, z + 14, Block1, 0, 3); - world.setBlock(x + 9, y + -21, z + 14, Block1, 0, 3); - world.setBlock(x + 10, y + -21, z + 14, Block1, 0, 3); - world.setBlock(x + 11, y + -21, z + 14, Block1, 0, 3); - world.setBlock(x + 0, y + -20, z + 0, Block1, 0, 3); - world.setBlock(x + 1, y + -20, z + 0, Block1, 0, 3); - world.setBlock(x + 2, y + -20, z + 0, Block1, 0, 3); - world.setBlock(x + 3, y + -20, z + 0, Block1, 0, 3); - world.setBlock(x + 4, y + -20, z + 0, Block1, 0, 3); - world.setBlock(x + 5, y + -20, z + 0, Block1, 0, 3); - world.setBlock(x + 6, y + -20, z + 0, Block1, 0, 3); - world.setBlock(x + 7, y + -20, z + 0, Block1, 0, 3); - world.setBlock(x + 8, y + -20, z + 0, Block1, 0, 3); - world.setBlock(x + 9, y + -20, z + 0, Block1, 0, 3); - world.setBlock(x + 10, y + -20, z + 0, Block1, 0, 3); - world.setBlock(x + 11, y + -20, z + 0, Block1, 0, 3); - world.setBlock(x + 0, y + -20, z + 1, Block1, 0, 3); - world.setBlock(x + 3, y + -20, z + 1, Block1, 0, 3); - world.setBlock(x + 4, y + -20, z + 1, Blocks.chest, 5, 3); - world.setBlockMetadataWithNotify(x + 4, y + -20, z + 1, 5, 3); - if(world.getBlock(x + 4, y + -20, z + 1) == Blocks.chest) { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.modGeneric, (TileEntityChest) world.getTileEntity(x + 4, y + -20, z + 1), 12); - } - world.setBlock(x + 8, y + -20, z + 1, Block4, 0, 3); - world.setBlock(x + 9, y + -20, z + 1, Block4, 0, 3); - world.setBlock(x + 10, y + -20, z + 1, Block4, 0, 3); - world.setBlock(x + 11, y + -20, z + 1, Block1, 0, 3); - world.setBlock(x + 0, y + -20, z + 2, Block1, 0, 3); - world.setBlock(x + 3, y + -20, z + 2, Block1, 0, 3); - world.setBlock(x + 8, y + -20, z + 2, Block4, 0, 3); - world.setBlock(x + 9, y + -20, z + 2, Block4, 0, 3); - world.setBlock(x + 10, y + -20, z + 2, Block4, 0, 3); - world.setBlock(x + 11, y + -20, z + 2, Block1, 0, 3); - world.setBlock(x + 0, y + -20, z + 3, Block1, 0, 3); - world.setBlock(x + 3, y + -20, z + 3, Block1, 0, 3); - world.setBlock(x + 8, y + -20, z + 3, Block4, 0, 3); - world.setBlock(x + 9, y + -20, z + 3, Block4, 0, 3); - world.setBlock(x + 10, y + -20, z + 3, Block4, 0, 3); - world.setBlock(x + 11, y + -20, z + 3, Block1, 0, 3); - world.setBlock(x + 0, y + -20, z + 4, Block1, 0, 3); - world.setBlock(x + 3, y + -20, z + 4, Block1, 0, 3); - world.setBlock(x + 4, y + -20, z + 4, Block1, 0, 3); - world.setBlock(x + 5, y + -20, z + 4, Blocks.iron_door, 3, 3); - ItemDoor.placeDoorBlock(world, x + 5, y + -20, z + 4, 3, Blocks.iron_door); - world.setBlock(x + 6, y + -20, z + 4, Block1, 0, 3); - world.setBlock(x + 7, y + -20, z + 4, Block1, 0, 3); - world.setBlock(x + 8, y + -20, z + 4, Block1, 0, 3); - world.setBlock(x + 9, y + -20, z + 4, Block1, 0, 3); - world.setBlock(x + 10, y + -20, z + 4, Block1, 0, 3); - world.setBlock(x + 11, y + -20, z + 4, Block1, 0, 3); - world.setBlock(x + 0, y + -20, z + 5, Block1, 0, 3); - world.setBlock(x + 3, y + -20, z + 5, Block1, 0, 3); - world.setBlock(x + 11, y + -20, z + 5, Block1, 0, 3); - world.setBlock(x + 0, y + -20, z + 6, Block1, 0, 3); - world.setBlock(x + 3, y + -20, z + 6, Blocks.iron_door, 0, 3); - ItemDoor.placeDoorBlock(world, x + 3, y + -20, z + 6, 0, Blocks.iron_door); - world.setBlock(x + 11, y + -20, z + 6, Block1, 0, 3); - world.setBlock(x + 0, y + -20, z + 7, Block1, 0, 3); - world.setBlock(x + 3, y + -20, z + 7, Block1, 0, 3); - world.setBlock(x + 8, y + -20, z + 7, Blocks.iron_door, 1, 3); - ItemDoor.placeDoorBlock(world, x + 8, y + -20, z + 7, 1, Blocks.iron_door); - world.setBlock(x + 10, y + -20, z + 7, Blocks.iron_door, 1, 3); - ItemDoor.placeDoorBlock(world, x + 10, y + -20, z + 7, 1, Blocks.iron_door); - world.setBlock(x + 11, y + -20, z + 7, Block1, 0, 3); - world.setBlock(x + 0, y + -20, z + 8, Block1, 0, 3); - world.setBlock(x + 3, y + -20, z + 8, Block1, 0, 3); - world.setBlock(x + 4, y + -20, z + 8, Blocks.iron_door, 3, 3); - ItemDoor.placeDoorBlock(world, x + 4, y + -20, z + 8, 3, Blocks.iron_door); - world.setBlock(x + 6, y + -20, z + 8, Blocks.iron_door, 3, 3); - ItemDoor.placeDoorBlock(world, x + 6, y + -20, z + 8, 3, Blocks.iron_door); - world.setBlock(x + 8, y + -20, z + 8, Blocks.iron_door, 3, 3); - ItemDoor.placeDoorBlock(world, x + 8, y + -20, z + 8, 3, Blocks.iron_door); - world.setBlock(x + 10, y + -20, z + 8, Blocks.iron_door, 3, 3); - ItemDoor.placeDoorBlock(world, x + 10, y + -20, z + 8, 3, Blocks.iron_door); - world.setBlock(x + 11, y + -20, z + 8, Block1, 0, 3); - world.setBlock(x + 0, y + -20, z + 9, Block1, 0, 3); - world.setBlock(x + 3, y + -20, z + 9, Block1, 0, 3); - world.setBlock(x + 11, y + -20, z + 9, Block1, 0, 3); - world.setBlock(x + 0, y + -20, z + 10, Block1, 0, 3); - world.setBlock(x + 3, y + -20, z + 10, Block1, 0, 3); - world.setBlock(x + 11, y + -20, z + 10, Block1, 0, 3); - world.setBlock(x + 0, y + -20, z + 11, Block1, 0, 3); - world.setBlock(x + 3, y + -20, z + 11, Block1, 0, 3); - world.setBlock(x + 4, y + -20, z + 11, Block1, 0, 3); - world.setBlock(x + 5, y + -20, z + 11, Block1, 0, 3); - world.setBlock(x + 6, y + -20, z + 11, Block1, 0, 3); - world.setBlock(x + 7, y + -20, z + 11, Block1, 0, 3); - world.setBlock(x + 8, y + -20, z + 11, Block1, 0, 3); - world.setBlock(x + 9, y + -20, z + 11, Block1, 0, 3); - world.setBlock(x + 10, y + -20, z + 11, Block1, 0, 3); - world.setBlock(x + 11, y + -20, z + 11, Block1, 0, 3); - world.setBlock(x + 0, y + -20, z + 12, Block1, 0, 3); - world.setBlock(x + 11, y + -20, z + 12, Block1, 0, 3); - world.setBlock(x + 0, y + -20, z + 13, Block1, 0, 3); - world.setBlock(x + 11, y + -20, z + 13, Block1, 0, 3); - world.setBlock(x + 0, y + -20, z + 14, Block1, 0, 3); - world.setBlock(x + 1, y + -20, z + 14, Block1, 0, 3); - world.setBlock(x + 2, y + -20, z + 14, Block1, 0, 3); - world.setBlock(x + 3, y + -20, z + 14, Block1, 0, 3); - world.setBlock(x + 4, y + -20, z + 14, Block1, 0, 3); - world.setBlock(x + 5, y + -20, z + 14, Block1, 0, 3); - world.setBlock(x + 6, y + -20, z + 14, Block1, 0, 3); - world.setBlock(x + 7, y + -20, z + 14, Block1, 0, 3); - world.setBlock(x + 8, y + -20, z + 14, Block1, 0, 3); - world.setBlock(x + 9, y + -20, z + 14, Block1, 0, 3); - world.setBlock(x + 10, y + -20, z + 14, Block1, 0, 3); - world.setBlock(x + 11, y + -20, z + 14, Block1, 0, 3); - world.setBlock(x + 0, y + -19, z + 0, Block1, 0, 3); - world.setBlock(x + 1, y + -19, z + 0, Block1, 0, 3); - world.setBlock(x + 2, y + -19, z + 0, Block1, 0, 3); - world.setBlock(x + 3, y + -19, z + 0, Block1, 0, 3); - world.setBlock(x + 4, y + -19, z + 0, Block1, 0, 3); - world.setBlock(x + 5, y + -19, z + 0, Block1, 0, 3); - world.setBlock(x + 6, y + -19, z + 0, Block3, 0, 3); - world.setBlock(x + 7, y + -19, z + 0, Block1, 0, 3); - world.setBlock(x + 8, y + -19, z + 0, Block1, 0, 3); - world.setBlock(x + 9, y + -19, z + 0, Block1, 0, 3); - world.setBlock(x + 10, y + -19, z + 0, Block1, 0, 3); - world.setBlock(x + 11, y + -19, z + 0, Block1, 0, 3); - world.setBlock(x + 0, y + -19, z + 1, Block1, 0, 3); - world.setBlock(x + 1, y + -19, z + 1, Blocks.web, 0, 3); - world.setBlock(x + 3, y + -19, z + 1, Block1, 0, 3); - world.setBlock(x + 8, y + -19, z + 1, Block4, 0, 3); - world.setBlock(x + 9, y + -19, z + 1, Block4, 0, 3); - world.setBlock(x + 10, y + -19, z + 1, Block4, 0, 3); - world.setBlock(x + 11, y + -19, z + 1, Block1, 0, 3); - world.setBlock(x + 0, y + -19, z + 2, Block1, 0, 3); - world.setBlock(x + 3, y + -19, z + 2, Block1, 0, 3); - world.setBlock(x + 7, y + -19, z + 2, Block5, 0, 3); - world.setBlock(x + 8, y + -19, z + 2, Block5, 0, 3); - world.setBlock(x + 9, y + -19, z + 2, Block5, 0, 3); - world.setBlock(x + 10, y + -19, z + 2, Block5, 0, 3); - world.setBlock(x + 11, y + -19, z + 2, Block1, 0, 3); - world.setBlock(x + 0, y + -19, z + 3, Block1, 0, 3); - world.setBlock(x + 3, y + -19, z + 3, Block1, 0, 3); - world.setBlock(x + 4, y + -19, z + 3, Blocks.web, 0, 3); - world.setBlock(x + 8, y + -19, z + 3, Block4, 0, 3); - world.setBlock(x + 9, y + -19, z + 3, Block4, 0, 3); - world.setBlock(x + 10, y + -19, z + 3, Block4, 0, 3); - world.setBlock(x + 11, y + -19, z + 3, Block1, 0, 3); - world.setBlock(x + 0, y + -19, z + 4, Block1, 0, 3); - world.setBlock(x + 3, y + -19, z + 4, Block1, 0, 3); - world.setBlock(x + 4, y + -19, z + 4, Block1, 0, 3); - // world.setBlock(x + 5, y + -19, z + 4, Blocks.iron_door, 8, 3); - world.setBlock(x + 6, y + -19, z + 4, Block1, 0, 3); - world.setBlock(x + 7, y + -19, z + 4, Block1, 0, 3); - world.setBlock(x + 8, y + -19, z + 4, Block1, 0, 3); - world.setBlock(x + 9, y + -19, z + 4, Block3, 0, 3); - world.setBlock(x + 10, y + -19, z + 4, Block1, 0, 3); - world.setBlock(x + 11, y + -19, z + 4, Block1, 0, 3); - world.setBlock(x + 0, y + -19, z + 5, Block1, 0, 3); - world.setBlock(x + 3, y + -19, z + 5, Block1, 0, 3); - world.setBlock(x + 11, y + -19, z + 5, Block1, 0, 3); - world.setBlock(x + 0, y + -19, z + 6, Block1, 0, 3); - // world.setBlock(x + 3, y + -19, z + 6, Blocks.iron_door, 8, 3); - world.setBlock(x + 11, y + -19, z + 6, Block1, 0, 3); - world.setBlock(x + 0, y + -19, z + 7, Block1, 0, 3); - world.setBlock(x + 3, y + -19, z + 7, Block3, 0, 3); - // world.setBlock(x + 8, y + -19, z + 7, Blocks.iron_door, 8, 3); - // world.setBlock(x + 10, y + -19, z + 7, Blocks.iron_door, 8, 3); - world.setBlock(x + 11, y + -19, z + 7, Block1, 0, 3); - world.setBlock(x + 0, y + -19, z + 8, Block1, 0, 3); - world.setBlock(x + 3, y + -19, z + 8, Block1, 0, 3); - // world.setBlock(x + 4, y + -19, z + 8, Blocks.iron_door, 8, 3); - // world.setBlock(x + 6, y + -19, z + 8, Blocks.iron_door, 8, 3); - // world.setBlock(x + 8, y + -19, z + 8, Blocks.iron_door, 8, 3); - // world.setBlock(x + 10, y + -19, z + 8, Blocks.iron_door, 9, 3); - world.setBlock(x + 11, y + -19, z + 8, Block1, 0, 3); - world.setBlock(x + 0, y + -19, z + 9, Block1, 0, 3); - world.setBlock(x + 3, y + -19, z + 9, Block1, 0, 3); - world.setBlock(x + 11, y + -19, z + 9, Block1, 0, 3); - world.setBlock(x + 0, y + -19, z + 10, Block1, 0, 3); - world.setBlock(x + 3, y + -19, z + 10, Block1, 0, 3); - world.setBlock(x + 11, y + -19, z + 10, Block1, 0, 3); - world.setBlock(x + 0, y + -19, z + 11, Block1, 0, 3); - world.setBlock(x + 3, y + -19, z + 11, Block1, 0, 3); - world.setBlock(x + 4, y + -19, z + 11, Block1, 0, 3); - world.setBlock(x + 5, y + -19, z + 11, Block3, 0, 3); - world.setBlock(x + 6, y + -19, z + 11, Block1, 0, 3); - world.setBlock(x + 7, y + -19, z + 11, Block1, 0, 3); - world.setBlock(x + 8, y + -19, z + 11, Block1, 0, 3); - world.setBlock(x + 9, y + -19, z + 11, Block3, 0, 3); - world.setBlock(x + 10, y + -19, z + 11, Block1, 0, 3); - world.setBlock(x + 11, y + -19, z + 11, Block1, 0, 3); - world.setBlock(x + 0, y + -19, z + 12, Block1, 0, 3); - world.setBlock(x + 11, y + -19, z + 12, Block1, 0, 3); - world.setBlock(x + 0, y + -19, z + 13, Block1, 0, 3); - world.setBlock(x + 1, y + -19, z + 13, Blocks.web, 0, 3); - world.setBlock(x + 11, y + -19, z + 13, Block1, 0, 3); - world.setBlock(x + 0, y + -19, z + 14, Block1, 0, 3); - world.setBlock(x + 1, y + -19, z + 14, Block1, 0, 3); - world.setBlock(x + 2, y + -19, z + 14, Block1, 0, 3); - world.setBlock(x + 3, y + -19, z + 14, Block1, 0, 3); - world.setBlock(x + 4, y + -19, z + 14, Block1, 0, 3); - world.setBlock(x + 5, y + -19, z + 14, Block1, 0, 3); - world.setBlock(x + 6, y + -19, z + 14, Block1, 0, 3); - world.setBlock(x + 7, y + -19, z + 14, Block1, 0, 3); - world.setBlock(x + 8, y + -19, z + 14, Block1, 0, 3); - world.setBlock(x + 9, y + -19, z + 14, Block1, 0, 3); - world.setBlock(x + 10, y + -19, z + 14, Block1, 0, 3); - world.setBlock(x + 11, y + -19, z + 14, Block1, 0, 3); - world.setBlock(x + 0, y + -18, z + 0, Block1, 0, 3); - world.setBlock(x + 1, y + -18, z + 0, Block1, 0, 3); - world.setBlock(x + 2, y + -18, z + 0, Block1, 0, 3); - world.setBlock(x + 3, y + -18, z + 0, Block1, 0, 3); - world.setBlock(x + 4, y + -18, z + 0, Block1, 0, 3); - world.setBlock(x + 5, y + -18, z + 0, Block1, 0, 3); - world.setBlock(x + 6, y + -18, z + 0, Block1, 0, 3); - world.setBlock(x + 7, y + -18, z + 0, Block1, 0, 3); - world.setBlock(x + 8, y + -18, z + 0, Block1, 0, 3); - world.setBlock(x + 9, y + -18, z + 0, Block1, 0, 3); - world.setBlock(x + 10, y + -18, z + 0, Block1, 0, 3); - world.setBlock(x + 11, y + -18, z + 0, Block1, 0, 3); - world.setBlock(x + 0, y + -18, z + 1, Block1, 0, 3); - world.setBlock(x + 1, y + -18, z + 1, Blocks.web, 0, 3); - world.setBlock(x + 2, y + -18, z + 1, Blocks.web, 0, 3); - world.setBlock(x + 3, y + -18, z + 1, Block1, 0, 3); - world.setBlock(x + 9, y + -18, z + 1, Blocks.web, 0, 3); - world.setBlock(x + 10, y + -18, z + 1, Blocks.web, 0, 3); - world.setBlock(x + 11, y + -18, z + 1, Block1, 0, 3); - world.setBlock(x + 0, y + -18, z + 2, Block1, 0, 3); - world.setBlock(x + 3, y + -18, z + 2, Block1, 0, 3); - world.setBlock(x + 4, y + -18, z + 2, Blocks.web, 0, 3); - world.setBlock(x + 8, y + -18, z + 2, Block4, 0, 3); - world.setBlock(x + 9, y + -18, z + 2, Block4, 0, 3); - world.setBlock(x + 10, y + -18, z + 2, Block4, 0, 3); - world.setBlock(x + 11, y + -18, z + 2, Block1, 0, 3); - world.setBlock(x + 0, y + -18, z + 3, Block1, 0, 3); - world.setBlock(x + 3, y + -18, z + 3, Block1, 0, 3); - world.setBlock(x + 5, y + -18, z + 3, Blocks.web, 0, 3); - world.setBlock(x + 8, y + -18, z + 3, Blocks.web, 0, 3); - world.setBlock(x + 9, y + -18, z + 3, Blocks.web, 0, 3); - world.setBlock(x + 10, y + -18, z + 3, Blocks.web, 0, 3); - world.setBlock(x + 11, y + -18, z + 3, Block1, 0, 3); - world.setBlock(x + 0, y + -18, z + 4, Block1, 0, 3); - world.setBlock(x + 3, y + -18, z + 4, Block1, 0, 3); - world.setBlock(x + 4, y + -18, z + 4, Block1, 0, 3); - world.setBlock(x + 5, y + -18, z + 4, Block1, 0, 3); - world.setBlock(x + 6, y + -18, z + 4, Block1, 0, 3); - world.setBlock(x + 7, y + -18, z + 4, Block1, 0, 3); - world.setBlock(x + 8, y + -18, z + 4, Block1, 0, 3); - world.setBlock(x + 9, y + -18, z + 4, Block1, 0, 3); - world.setBlock(x + 10, y + -18, z + 4, Block1, 0, 3); - world.setBlock(x + 11, y + -18, z + 4, Block1, 0, 3); - world.setBlock(x + 0, y + -18, z + 5, Block1, 0, 3); - world.setBlock(x + 3, y + -18, z + 5, Block1, 0, 3); - world.setBlock(x + 4, y + -18, z + 5, Blocks.web, 0, 3); - world.setBlock(x + 9, y + -18, z + 5, Blocks.web, 0, 3); - world.setBlock(x + 10, y + -18, z + 5, Blocks.web, 0, 3); - world.setBlock(x + 11, y + -18, z + 5, Block1, 0, 3); - world.setBlock(x + 0, y + -18, z + 6, Block1, 0, 3); - world.setBlock(x + 3, y + -18, z + 6, Block1, 0, 3); - world.setBlock(x + 10, y + -18, z + 6, Blocks.web, 0, 3); - world.setBlock(x + 11, y + -18, z + 6, Block1, 0, 3); - world.setBlock(x + 0, y + -18, z + 7, Block1, 0, 3); - world.setBlock(x + 2, y + -18, z + 7, Blocks.web, 0, 3); - world.setBlock(x + 3, y + -18, z + 7, Block1, 0, 3); - world.setBlock(x + 11, y + -18, z + 7, Block1, 0, 3); - world.setBlock(x + 0, y + -18, z + 8, Block1, 0, 3); - world.setBlock(x + 1, y + -18, z + 8, Blocks.web, 0, 3); - world.setBlock(x + 3, y + -18, z + 8, Block1, 0, 3); - world.setBlock(x + 11, y + -18, z + 8, Block1, 0, 3); - world.setBlock(x + 0, y + -18, z + 9, Block1, 0, 3); - world.setBlock(x + 2, y + -18, z + 9, Blocks.web, 0, 3); - world.setBlock(x + 3, y + -18, z + 9, Block1, 0, 3); - world.setBlock(x + 4, y + -18, z + 9, Blocks.web, 0, 3); - world.setBlock(x + 11, y + -18, z + 9, Block1, 0, 3); - world.setBlock(x + 0, y + -18, z + 10, Block1, 0, 3); - world.setBlock(x + 3, y + -18, z + 10, Block1, 0, 3); - world.setBlock(x + 5, y + -18, z + 10, Blocks.web, 0, 3); - world.setBlock(x + 8, y + -18, z + 10, Blocks.web, 0, 3); - world.setBlock(x + 9, y + -18, z + 10, Blocks.web, 0, 3); - world.setBlock(x + 11, y + -18, z + 10, Block1, 0, 3); - world.setBlock(x + 0, y + -18, z + 11, Block1, 0, 3); - world.setBlock(x + 3, y + -18, z + 11, Block1, 0, 3); - world.setBlock(x + 4, y + -18, z + 11, Block1, 0, 3); - world.setBlock(x + 5, y + -18, z + 11, Block1, 0, 3); - world.setBlock(x + 6, y + -18, z + 11, Block1, 0, 3); - world.setBlock(x + 7, y + -18, z + 11, Block1, 0, 3); - world.setBlock(x + 8, y + -18, z + 11, Block1, 0, 3); - world.setBlock(x + 9, y + -18, z + 11, Block1, 0, 3); - world.setBlock(x + 10, y + -18, z + 11, Block1, 0, 3); - world.setBlock(x + 11, y + -18, z + 11, Block1, 0, 3); - world.setBlock(x + 0, y + -18, z + 12, Block1, 0, 3); - world.setBlock(x + 1, y + -18, z + 12, Blocks.web, 0, 3); - world.setBlock(x + 7, y + -18, z + 12, Blocks.web, 0, 3); - world.setBlock(x + 8, y + -18, z + 12, Blocks.web, 0, 3); - world.setBlock(x + 10, y + -18, z + 12, Blocks.web, 0, 3); - world.setBlock(x + 11, y + -18, z + 12, Block1, 0, 3); - world.setBlock(x + 0, y + -18, z + 13, Block1, 0, 3); - world.setBlock(x + 2, y + -18, z + 13, Blocks.web, 0, 3); - world.setBlock(x + 11, y + -18, z + 13, Block1, 0, 3); - world.setBlock(x + 0, y + -18, z + 14, Block1, 0, 3); - world.setBlock(x + 1, y + -18, z + 14, Block1, 0, 3); - world.setBlock(x + 2, y + -18, z + 14, Block1, 0, 3); - world.setBlock(x + 3, y + -18, z + 14, Block1, 0, 3); - world.setBlock(x + 4, y + -18, z + 14, Block1, 0, 3); - world.setBlock(x + 5, y + -18, z + 14, Block1, 0, 3); - world.setBlock(x + 6, y + -18, z + 14, Block1, 0, 3); - world.setBlock(x + 7, y + -18, z + 14, Block1, 0, 3); - world.setBlock(x + 8, y + -18, z + 14, Block1, 0, 3); - world.setBlock(x + 9, y + -18, z + 14, Block1, 0, 3); - world.setBlock(x + 10, y + -18, z + 14, Block1, 0, 3); - world.setBlock(x + 11, y + -18, z + 14, Block1, 0, 3); - world.setBlock(x + 0, y + -17, z + 0, Block1, 0, 3); - world.setBlock(x + 1, y + -17, z + 0, Block1, 0, 3); - world.setBlock(x + 2, y + -17, z + 0, Block1, 0, 3); - world.setBlock(x + 3, y + -17, z + 0, Block1, 0, 3); - world.setBlock(x + 4, y + -17, z + 0, Block1, 0, 3); - world.setBlock(x + 5, y + -17, z + 0, Block1, 0, 3); - world.setBlock(x + 6, y + -17, z + 0, Block1, 0, 3); - world.setBlock(x + 7, y + -17, z + 0, Block1, 0, 3); - world.setBlock(x + 8, y + -17, z + 0, Block1, 0, 3); - world.setBlock(x + 9, y + -17, z + 0, Block1, 0, 3); - world.setBlock(x + 10, y + -17, z + 0, Block1, 0, 3); - world.setBlock(x + 11, y + -17, z + 0, Block1, 0, 3); - world.setBlock(x + 0, y + -17, z + 1, Block1, 0, 3); - world.setBlock(x + 1, y + -17, z + 1, Block1, 0, 3); - world.setBlock(x + 2, y + -17, z + 1, Block1, 0, 3); - world.setBlock(x + 3, y + -17, z + 1, Block1, 0, 3); - world.setBlock(x + 4, y + -17, z + 1, Block1, 0, 3); - world.setBlock(x + 5, y + -17, z + 1, Block1, 0, 3); - world.setBlock(x + 6, y + -17, z + 1, Block1, 0, 3); - world.setBlock(x + 7, y + -17, z + 1, Block1, 0, 3); - world.setBlock(x + 8, y + -17, z + 1, Block1, 0, 3); - world.setBlock(x + 9, y + -17, z + 1, Block1, 0, 3); - world.setBlock(x + 10, y + -17, z + 1, Block1, 0, 3); - world.setBlock(x + 11, y + -17, z + 1, Block1, 0, 3); - world.setBlock(x + 0, y + -17, z + 2, Block1, 0, 3); - world.setBlock(x + 1, y + -17, z + 2, Block1, 0, 3); - world.setBlock(x + 3, y + -17, z + 2, Block1, 0, 3); - world.setBlock(x + 4, y + -17, z + 2, Block1, 0, 3); - world.setBlock(x + 5, y + -17, z + 2, Block1, 0, 3); - world.setBlock(x + 6, y + -17, z + 2, Block1, 0, 3); - world.setBlock(x + 7, y + -17, z + 2, Block1, 0, 3); - world.setBlock(x + 8, y + -17, z + 2, Block1, 0, 3); - world.setBlock(x + 9, y + -17, z + 2, Block1, 0, 3); - world.setBlock(x + 10, y + -17, z + 2, Block1, 0, 3); - world.setBlock(x + 11, y + -17, z + 2, Block1, 0, 3); - world.setBlock(x + 0, y + -17, z + 3, Block1, 0, 3); - world.setBlock(x + 1, y + -17, z + 3, Block1, 0, 3); - world.setBlock(x + 2, y + -17, z + 3, Block1, 0, 3); - world.setBlock(x + 3, y + -17, z + 3, Block1, 0, 3); - world.setBlock(x + 4, y + -17, z + 3, Block1, 0, 3); - world.setBlock(x + 5, y + -17, z + 3, Block1, 0, 3); - world.setBlock(x + 6, y + -17, z + 3, Block1, 0, 3); - world.setBlock(x + 7, y + -17, z + 3, Block1, 0, 3); - world.setBlock(x + 8, y + -17, z + 3, Block1, 0, 3); - world.setBlock(x + 9, y + -17, z + 3, Block1, 0, 3); - world.setBlock(x + 10, y + -17, z + 3, Block1, 0, 3); - world.setBlock(x + 11, y + -17, z + 3, Block1, 0, 3); - world.setBlock(x + 0, y + -17, z + 4, Block1, 0, 3); - world.setBlock(x + 1, y + -17, z + 4, Block1, 0, 3); - world.setBlock(x + 2, y + -17, z + 4, Block1, 0, 3); - world.setBlock(x + 3, y + -17, z + 4, Block1, 0, 3); - world.setBlock(x + 4, y + -17, z + 4, Block1, 0, 3); - world.setBlock(x + 5, y + -17, z + 4, Block1, 0, 3); - world.setBlock(x + 6, y + -17, z + 4, Block1, 0, 3); - world.setBlock(x + 7, y + -17, z + 4, Block1, 0, 3); - world.setBlock(x + 8, y + -17, z + 4, Block1, 0, 3); - world.setBlock(x + 9, y + -17, z + 4, Block1, 0, 3); - world.setBlock(x + 10, y + -17, z + 4, Block1, 0, 3); - world.setBlock(x + 11, y + -17, z + 4, Block1, 0, 3); - world.setBlock(x + 0, y + -17, z + 5, Block1, 0, 3); - world.setBlock(x + 1, y + -17, z + 5, Block1, 0, 3); - world.setBlock(x + 2, y + -17, z + 5, Block1, 0, 3); - world.setBlock(x + 3, y + -17, z + 5, Block1, 0, 3); - world.setBlock(x + 4, y + -17, z + 5, Block1, 0, 3); - world.setBlock(x + 5, y + -17, z + 5, Block1, 0, 3); - world.setBlock(x + 6, y + -17, z + 5, Block1, 0, 3); - world.setBlock(x + 7, y + -17, z + 5, Block1, 0, 3); - world.setBlock(x + 8, y + -17, z + 5, Block1, 0, 3); - world.setBlock(x + 9, y + -17, z + 5, Block1, 0, 3); - world.setBlock(x + 10, y + -17, z + 5, Block1, 0, 3); - world.setBlock(x + 11, y + -17, z + 5, Block1, 0, 3); - world.setBlock(x + 0, y + -17, z + 6, Block1, 0, 3); - world.setBlock(x + 1, y + -17, z + 6, Block1, 0, 3); - world.setBlock(x + 2, y + -17, z + 6, Block1, 0, 3); - world.setBlock(x + 3, y + -17, z + 6, Block1, 0, 3); - world.setBlock(x + 4, y + -17, z + 6, Block1, 0, 3); - world.setBlock(x + 5, y + -17, z + 6, Block1, 0, 3); - world.setBlock(x + 6, y + -17, z + 6, Block1, 0, 3); - world.setBlock(x + 7, y + -17, z + 6, Block1, 0, 3); - world.setBlock(x + 8, y + -17, z + 6, Block1, 0, 3); - world.setBlock(x + 9, y + -17, z + 6, Block1, 0, 3); - world.setBlock(x + 10, y + -17, z + 6, Block1, 0, 3); - world.setBlock(x + 11, y + -17, z + 6, Block1, 0, 3); - world.setBlock(x + 0, y + -17, z + 7, Block1, 0, 3); - world.setBlock(x + 1, y + -17, z + 7, Block1, 0, 3); - world.setBlock(x + 2, y + -17, z + 7, Block1, 0, 3); - world.setBlock(x + 3, y + -17, z + 7, Block1, 0, 3); - world.setBlock(x + 4, y + -17, z + 7, Block1, 0, 3); - world.setBlock(x + 5, y + -17, z + 7, Block1, 0, 3); - world.setBlock(x + 6, y + -17, z + 7, Block1, 0, 3); - world.setBlock(x + 7, y + -17, z + 7, Block1, 0, 3); - world.setBlock(x + 8, y + -17, z + 7, Block1, 0, 3); - world.setBlock(x + 9, y + -17, z + 7, Block1, 0, 3); - world.setBlock(x + 10, y + -17, z + 7, Block1, 0, 3); - world.setBlock(x + 11, y + -17, z + 7, Block1, 0, 3); - world.setBlock(x + 0, y + -17, z + 8, Block1, 0, 3); - world.setBlock(x + 1, y + -17, z + 8, Block1, 0, 3); - world.setBlock(x + 2, y + -17, z + 8, Block1, 0, 3); - world.setBlock(x + 3, y + -17, z + 8, Block1, 0, 3); - world.setBlock(x + 4, y + -17, z + 8, Block1, 0, 3); - world.setBlock(x + 5, y + -17, z + 8, Block1, 0, 3); - world.setBlock(x + 6, y + -17, z + 8, Block1, 0, 3); - world.setBlock(x + 7, y + -17, z + 8, Block1, 0, 3); - world.setBlock(x + 8, y + -17, z + 8, Block1, 0, 3); - world.setBlock(x + 9, y + -17, z + 8, Block1, 0, 3); - world.setBlock(x + 10, y + -17, z + 8, Block1, 0, 3); - world.setBlock(x + 11, y + -17, z + 8, Block1, 0, 3); - world.setBlock(x + 0, y + -17, z + 9, Block1, 0, 3); - world.setBlock(x + 1, y + -17, z + 9, Block1, 0, 3); - world.setBlock(x + 2, y + -17, z + 9, Block1, 0, 3); - world.setBlock(x + 3, y + -17, z + 9, Block1, 0, 3); - world.setBlock(x + 4, y + -17, z + 9, Block1, 0, 3); - world.setBlock(x + 5, y + -17, z + 9, Block1, 0, 3); - world.setBlock(x + 6, y + -17, z + 9, Block1, 0, 3); - world.setBlock(x + 7, y + -17, z + 9, Block1, 0, 3); - world.setBlock(x + 8, y + -17, z + 9, Block1, 0, 3); - world.setBlock(x + 9, y + -17, z + 9, Block1, 0, 3); - world.setBlock(x + 10, y + -17, z + 9, Block1, 0, 3); - world.setBlock(x + 11, y + -17, z + 9, Block1, 0, 3); - world.setBlock(x + 0, y + -17, z + 10, Block1, 0, 3); - world.setBlock(x + 1, y + -17, z + 10, Block1, 0, 3); - world.setBlock(x + 2, y + -17, z + 10, Block1, 0, 3); - world.setBlock(x + 3, y + -17, z + 10, Block1, 0, 3); - world.setBlock(x + 4, y + -17, z + 10, Block1, 0, 3); - world.setBlock(x + 5, y + -17, z + 10, Block1, 0, 3); - world.setBlock(x + 6, y + -17, z + 10, Block1, 0, 3); - world.setBlock(x + 7, y + -17, z + 10, Block1, 0, 3); - world.setBlock(x + 8, y + -17, z + 10, Block1, 0, 3); - world.setBlock(x + 9, y + -17, z + 10, Block1, 0, 3); - world.setBlock(x + 10, y + -17, z + 10, Block1, 0, 3); - world.setBlock(x + 11, y + -17, z + 10, Block1, 0, 3); - world.setBlock(x + 0, y + -17, z + 11, Block1, 0, 3); - world.setBlock(x + 1, y + -17, z + 11, Block1, 0, 3); - world.setBlock(x + 2, y + -17, z + 11, Block1, 0, 3); - world.setBlock(x + 3, y + -17, z + 11, Block1, 0, 3); - world.setBlock(x + 4, y + -17, z + 11, Block1, 0, 3); - world.setBlock(x + 5, y + -17, z + 11, Block1, 0, 3); - world.setBlock(x + 6, y + -17, z + 11, Block1, 0, 3); - world.setBlock(x + 7, y + -17, z + 11, Block1, 0, 3); - world.setBlock(x + 8, y + -17, z + 11, Block1, 0, 3); - world.setBlock(x + 9, y + -17, z + 11, Block1, 0, 3); - world.setBlock(x + 10, y + -17, z + 11, Block1, 0, 3); - world.setBlock(x + 11, y + -17, z + 11, Block1, 0, 3); - world.setBlock(x + 0, y + -17, z + 12, Block1, 0, 3); - world.setBlock(x + 1, y + -17, z + 12, Block1, 0, 3); - world.setBlock(x + 2, y + -17, z + 12, Block1, 0, 3); - world.setBlock(x + 3, y + -17, z + 12, Block1, 0, 3); - world.setBlock(x + 4, y + -17, z + 12, Block1, 0, 3); - world.setBlock(x + 5, y + -17, z + 12, Block1, 0, 3); - world.setBlock(x + 6, y + -17, z + 12, Block1, 0, 3); - world.setBlock(x + 7, y + -17, z + 12, Block1, 0, 3); - world.setBlock(x + 8, y + -17, z + 12, Block1, 0, 3); - world.setBlock(x + 9, y + -17, z + 12, Block1, 0, 3); - world.setBlock(x + 10, y + -17, z + 12, Block1, 0, 3); - world.setBlock(x + 11, y + -17, z + 12, Block1, 0, 3); - world.setBlock(x + 0, y + -17, z + 13, Block1, 0, 3); - world.setBlock(x + 1, y + -17, z + 13, Block1, 0, 3); - world.setBlock(x + 2, y + -17, z + 13, Block1, 0, 3); - world.setBlock(x + 3, y + -17, z + 13, Block1, 0, 3); - world.setBlock(x + 4, y + -17, z + 13, Block1, 0, 3); - world.setBlock(x + 5, y + -17, z + 13, Block1, 0, 3); - world.setBlock(x + 6, y + -17, z + 13, Block1, 0, 3); - world.setBlock(x + 7, y + -17, z + 13, Block1, 0, 3); - world.setBlock(x + 8, y + -17, z + 13, Block1, 0, 3); - world.setBlock(x + 9, y + -17, z + 13, Block1, 0, 3); - world.setBlock(x + 10, y + -17, z + 13, Block1, 0, 3); - world.setBlock(x + 11, y + -17, z + 13, Block1, 0, 3); - world.setBlock(x + 0, y + -17, z + 14, Block1, 0, 3); - world.setBlock(x + 1, y + -17, z + 14, Block1, 0, 3); - world.setBlock(x + 2, y + -17, z + 14, Block1, 0, 3); - world.setBlock(x + 3, y + -17, z + 14, Block1, 0, 3); - world.setBlock(x + 4, y + -17, z + 14, Block1, 0, 3); - world.setBlock(x + 5, y + -17, z + 14, Block1, 0, 3); - world.setBlock(x + 6, y + -17, z + 14, Block1, 0, 3); - world.setBlock(x + 7, y + -17, z + 14, Block1, 0, 3); - world.setBlock(x + 8, y + -17, z + 14, Block1, 0, 3); - world.setBlock(x + 9, y + -17, z + 14, Block1, 0, 3); - world.setBlock(x + 10, y + -17, z + 14, Block1, 0, 3); - world.setBlock(x + 11, y + -17, z + 14, Block1, 0, 3); - world.setBlock(x + 1, y + -16, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -16, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -16, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -16, z + 2, Block3, 0, 3); - world.setBlock(x + 3, y + -16, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -16, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -16, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -16, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -15, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -15, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -15, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -15, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -15, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -15, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -15, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -15, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -14, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -14, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -14, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -14, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -14, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -14, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -14, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -14, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -13, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -13, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -13, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -13, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -13, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -13, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -13, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -13, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -12, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -12, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -12, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -12, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -12, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -12, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -12, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -12, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -11, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -11, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -11, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -11, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -11, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -11, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -11, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -11, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -10, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -10, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -10, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -10, z + 2, Block3, 0, 3); - world.setBlock(x + 3, y + -10, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -10, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -10, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -10, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -9, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -9, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -9, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -9, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -9, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -9, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -9, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -9, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -8, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -8, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -8, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -8, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -8, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -8, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -8, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -8, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -7, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -7, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -7, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -7, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -7, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -7, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -7, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -7, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -6, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -6, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -6, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -6, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -6, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -6, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -6, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -6, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -5, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -5, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -5, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -5, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -5, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -5, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -5, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -5, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -4, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -4, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -4, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -4, z + 2, Block3, 0, 3); - world.setBlock(x + 3, y + -4, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -4, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -4, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -4, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + -3, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -3, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -3, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -3, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + -3, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + -3, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -3, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -3, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -3, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + -3, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + -3, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -3, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -3, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + -3, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + -3, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -3, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -3, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -3, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + -3, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + -3, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -3, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -3, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -3, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + -3, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -3, z + 5, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -3, z + 5, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -3, z + 5, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + -2, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -2, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -2, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -2, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + -2, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + -2, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -2, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -2, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -2, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + -2, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + -2, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -2, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -2, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + -2, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + -2, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -2, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -2, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -2, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + -2, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + -2, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -2, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -2, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -2, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + -2, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -2, z + 5, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -2, z + 5, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -2, z + 5, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + -1, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -1, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -1, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -1, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + -1, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + -1, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -1, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -1, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -1, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + -1, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + -1, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -1, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -1, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + -1, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + -1, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -1, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -1, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -1, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + -1, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + -1, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -1, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -1, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -1, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + -1, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + -1, z + 5, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + -1, z + 5, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + -1, z + 5, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + 0, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + 0, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + 0, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + 0, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + 0, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + 0, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + 0, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + 0, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + 0, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + 0, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + 0, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + 0, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + 0, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + 0, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + 0, z + 5, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + 0, z + 5, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + 0, z + 5, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + 1, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + 1, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + 1, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + 1, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + 1, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + 1, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + 1, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + 1, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + 1, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + 1, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + 1, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + 1, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + 1, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + 2, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + 2, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + 2, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + 2, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + 2, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + 2, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + 2, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + 2, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + 2, z + 1, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + 2, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + 2, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + 2, z + 2, Block3, 0, 3); - world.setBlock(x + 3, y + 2, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + 2, z + 2, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + 2, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + 2, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + 2, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + 2, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + 2, z + 3, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 0, y + 2, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + 2, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + 2, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + 2, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 4, y + 2, z + 4, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + 2, z + 5, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + 2, z + 5, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + 2, z + 5, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 1, y + 3, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + 3, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 3, y + 3, z + 0, Library.getRandomConcrete(), 0, 3); - world.setBlock(x + 2, y + 3, z + 1, Blocks.trapdoor, 1, 3); - - generate_r02_last(world, rand, x, y, z); - return true; - - } - - public boolean generate_r02_last(World world, Random rand, int x, int y, int z) { - - world.setBlock(x + 10, y + -24, z + 12, Blocks.ladder, 4, 3); - world.setBlock(x + 10, y + -24, z + 13, Blocks.ladder, 4, 3); - world.setBlock(x + 8, y + -23, z + 2, Blocks.lever, 12, 3); - world.setBlock(x + 10, y + -23, z + 4, Blocks.lever, 10, 3); - world.setBlock(x + 10, y + -23, z + 6, Blocks.lever, 10, 3); - world.setBlock(x + 10, y + -23, z + 8, Blocks.lever, 10, 3); - world.setBlock(x + 6, y + -23, z + 10, Blocks.lever, 12, 3); - world.setBlock(x + 10, y + -23, z + 10, Blocks.lever, 10, 3); - world.setBlock(x + 10, y + -23, z + 12, Blocks.ladder, 4, 3); - world.setBlock(x + 10, y + -23, z + 13, Blocks.ladder, 4, 3); - world.setBlock(x + 10, y + -22, z + 12, Blocks.ladder, 4, 3); - world.setBlock(x + 10, y + -22, z + 13, Blocks.ladder, 4, 3); - world.setBlock(x + 10, y + -21, z + 12, Blocks.ladder, 4, 3); - world.setBlock(x + 10, y + -21, z + 13, Blocks.ladder, 4, 3); - world.setBlock(x + 2, y + -20, z + 2, Blocks.ladder, 4, 3); - world.setBlock(x + 10, y + -20, z + 12, Blocks.ladder, 4, 3); - world.setBlock(x + 10, y + -20, z + 13, Blocks.ladder, 4, 3); - world.setBlock(x + 2, y + -19, z + 2, Blocks.ladder, 4, 3); - world.setBlock(x + 2, y + -19, z + 5, Blocks.lever, 2, 3); - world.setBlock(x + 5, y + -19, z + 5, Blocks.wall_sign, 3, 3); - world.setBlock(x + 2, y + -18, z + 2, Blocks.ladder, 4, 3); - world.setBlock(x + 2, y + -17, z + 2, Blocks.ladder, 4, 3); - world.setBlock(x + 2, y + -16, z + 2, Blocks.ladder, 4, 3); - world.setBlock(x + 2, y + -15, z + 2, Blocks.ladder, 4, 3); - world.setBlock(x + 2, y + -14, z + 2, Blocks.ladder, 4, 3); - world.setBlock(x + 2, y + -13, z + 2, Blocks.ladder, 4, 3); - world.setBlock(x + 2, y + -12, z + 2, Blocks.ladder, 4, 3); - world.setBlock(x + 2, y + -11, z + 2, Blocks.ladder, 4, 3); - world.setBlock(x + 2, y + -10, z + 2, Blocks.ladder, 4, 3); - world.setBlock(x + 2, y + -9, z + 2, Blocks.ladder, 4, 3); - world.setBlock(x + 2, y + -8, z + 2, Blocks.ladder, 4, 3); - world.setBlock(x + 2, y + -7, z + 2, Blocks.ladder, 4, 3); - world.setBlock(x + 2, y + -6, z + 2, Blocks.ladder, 4, 3); - world.setBlock(x + 2, y + -5, z + 2, Blocks.ladder, 4, 3); - world.setBlock(x + 2, y + -4, z + 2, Blocks.ladder, 4, 3); - world.setBlock(x + 2, y + -3, z + 2, Blocks.ladder, 4, 3); - world.setBlock(x + 2, y + -2, z + 2, Blocks.ladder, 4, 3); - world.setBlock(x + 2, y + -1, z + 2, Blocks.ladder, 4, 3); - world.setBlock(x + 2, y + 0, z + 1, Blocks.ladder, 3, 3); - world.setBlock(x + 2, y + 0, z + 2, Blocks.ladder, 4, 3); - world.setBlock(x + 2, y + 1, z + 1, Blocks.ladder, 3, 3); - world.setBlock(x + 2, y + 2, z + 1, Blocks.ladder, 3, 3); - world.setBlock(x + 8, y + -20, z + 5, Blocks.bed, 10, 3); - world.setBlock(x + 10, y + -20, z + 5, Blocks.bed, 10, 3); - world.setBlock(x + 8, y + -20, z + 6, Blocks.bed, 2, 3); - world.setBlock(x + 10, y + -20, z + 6, Blocks.bed, 2, 3); - world.setBlock(x + 4, y + -20, z + 9, Blocks.bed, 0, 3); - world.setBlock(x + 6, y + -20, z + 9, Blocks.bed, 0, 3); - world.setBlock(x + 8, y + -20, z + 9, Blocks.bed, 0, 3); - world.setBlock(x + 10, y + -20, z + 9, Blocks.bed, 0, 3); - world.setBlock(x + 4, y + -20, z + 10, Blocks.bed, 8, 3); - world.setBlock(x + 6, y + -20, z + 10, Blocks.bed, 8, 3); - world.setBlock(x + 8, y + -20, z + 10, Blocks.bed, 8, 3); - world.setBlock(x + 10, y + -20, z + 10, Blocks.bed, 8, 3); - world.setBlock(x + 8, y + -19, z + 5, Blocks.bed, 10, 3); - world.setBlock(x + 10, y + -19, z + 5, Blocks.bed, 10, 3); - world.setBlock(x + 8, y + -19, z + 6, Blocks.bed, 2, 3); - world.setBlock(x + 10, y + -19, z + 6, Blocks.bed, 2, 3); - world.setBlock(x + 4, y + -19, z + 9, Blocks.bed, 0, 3); - world.setBlock(x + 6, y + -19, z + 9, Blocks.bed, 0, 3); - world.setBlock(x + 8, y + -19, z + 9, Blocks.bed, 0, 3); - world.setBlock(x + 10, y + -19, z + 9, Blocks.bed, 0, 3); - world.setBlock(x + 4, y + -19, z + 10, Blocks.bed, 8, 3); - world.setBlock(x + 6, y + -19, z + 10, Blocks.bed, 8, 3); - world.setBlock(x + 8, y + -19, z + 10, Blocks.bed, 8, 3); - world.setBlock(x + 10, y + -19, z + 10, Blocks.bed, 8, 3); - if(GeneralConfig.enableDebugMode) - System.out.print("[Debug] Successfully spawned bunker at " + x + " " + y + " " + z + "\n"); - return true; - - } - -} \ No newline at end of file From 189c861cf09e649ea881a49494b3fe03fbcc0d9d Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Fri, 9 Jun 2023 21:19:19 -0500 Subject: [PATCH 104/432] added something to outgasser OC compat the smallest change imaginable (added a callback for checking gas type) --- .../tileentity/machine/rbmk/TileEntityRBMKOutgasser.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java index c3c2665bf..8e3f71a6a 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java @@ -237,6 +237,12 @@ public class TileEntityRBMKOutgasser extends TileEntityRBMKSlottedBase implement public Object[] getGasMax(Context context, Arguments args) { return new Object[] {gas.getMaxFill()}; } + + @Callback(direct = true, limit = 4) + @Optional.Method(modid = "OpenComputers") + public Object[] getGasType(Context context, Arguments args) { + return new Object[] {gas.getTankType().getID()}; + } @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") @@ -253,7 +259,7 @@ public class TileEntityRBMKOutgasser extends TileEntityRBMKSlottedBase implement @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { - return new Object[] {gas.getFill(), gas.getMaxFill(), progress, xCoord, yCoord, zCoord}; + return new Object[] {gas.getFill(), gas.getMaxFill(), progress, gas.getTankType().getID(), xCoord, yCoord, zCoord}; } @Override From de28eff0c792dec1224febc63e2789314bc208b4 Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Sat, 10 Jun 2023 02:04:56 -0500 Subject: [PATCH 105/432] Another small addition --- .../java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java index 7c161a15e..f02f229ca 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java @@ -450,7 +450,7 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM OC_enrich_buf = "N/A"; OC_poison_buf = "N/A"; } - return new Object[] {heat, fluxSlow, fluxFast, OC_enrich_buf, OC_poison_buf, ((RBMKRod)this.getBlockType()).moderated, xCoord, yCoord, zCoord}; + return new Object[] {heat, ItemRBMKRod.getHullHeat(slots[0]), ItemRBMKRod.getCoreHeat(slots[0]), fluxSlow, fluxFast, OC_enrich_buf, OC_poison_buf, ((RBMKRod)this.getBlockType()).moderated, xCoord, yCoord, zCoord}; } @Callback(direct = true, limit = 8) From c2f05f4d114c42bd9a9589c12e18bff15d3c8381 Mon Sep 17 00:00:00 2001 From: Bob Date: Sat, 10 Jun 2023 10:16:15 +0200 Subject: [PATCH 106/432] gold capacitor --- src/main/java/com/hbm/blocks/ModBlocks.java | 5 ++++- .../hbm/blocks/machine/MachineCapacitor.java | 20 ++++++++++++------ .../java/com/hbm/tileentity/TileMappings.java | 2 ++ .../hbm/textures/blocks/capacitor_bus_out.png | Bin 195 -> 301 bytes .../textures/blocks/capacitor_gold_bottom.png | Bin 0 -> 551 bytes .../blocks/capacitor_gold_inner_side.png | Bin 0 -> 169 bytes .../blocks/capacitor_gold_inner_top.png | Bin 0 -> 272 bytes .../textures/blocks/capacitor_gold_side.png | Bin 0 -> 357 bytes .../textures/blocks/capacitor_gold_top.png | Bin 0 -> 219 bytes 9 files changed, 20 insertions(+), 7 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/blocks/capacitor_gold_bottom.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/capacitor_gold_inner_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/capacitor_gold_inner_top.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/capacitor_gold_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/capacitor_gold_top.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 0d2b78975..da8ec07e3 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -759,6 +759,7 @@ public class ModBlocks { public static Block capacitor_bus; public static Block capacitor_copper; + public static Block capacitor_gold; public static Block machine_coal_off; public static Block machine_coal_on; @@ -1883,7 +1884,8 @@ public class ModBlocks { machine_fensu = new MachineFENSU(Material.iron).setBlockName("machine_fensu").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_fensu"); capacitor_bus = new MachineCapacitorBus(Material.iron).setBlockName("capacitor_bus").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - capacitor_copper = new MachineCapacitor(Material.iron, 1_000_000L).setBlockName("capacitor_copper").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_copper"); + capacitor_copper = new MachineCapacitor(Material.iron, 1_000_000L, "copper").setBlockName("capacitor_copper").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_copper"); + capacitor_gold = new MachineCapacitor(Material.iron, 5_000_000L, "gold").setBlockName("capacitor_gold").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName("gold_block"); machine_coal_off = new MachineCoal(false).setBlockName("machine_coal_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); machine_coal_on = new MachineCoal(true).setBlockName("machine_coal_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F); @@ -3200,6 +3202,7 @@ public class ModBlocks { register(machine_fensu); register(capacitor_bus); register(capacitor_copper); + register(capacitor_gold); GameRegistry.registerBlock(machine_transformer, machine_transformer.getUnlocalizedName()); GameRegistry.registerBlock(machine_transformer_20, machine_transformer_20.getUnlocalizedName()); GameRegistry.registerBlock(machine_transformer_dnt, machine_transformer_dnt.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/machine/MachineCapacitor.java b/src/main/java/com/hbm/blocks/machine/MachineCapacitor.java index ad9effd70..64a76e113 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineCapacitor.java +++ b/src/main/java/com/hbm/blocks/machine/MachineCapacitor.java @@ -21,6 +21,7 @@ import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -41,21 +42,23 @@ public class MachineCapacitor extends BlockContainer implements ILookOverlay, IP @SideOnly(Side.CLIENT) public IIcon iconInnerSide; protected long power; + String name; - public MachineCapacitor(Material mat, long power) { + public MachineCapacitor(Material mat, long power, String name) { super(mat); this.power = power; + this.name = name; } @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconRegister) { super.registerBlockIcons(iconRegister); - this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":capacitor_copper_top"); - this.iconSide = iconRegister.registerIcon(RefStrings.MODID + ":capacitor_copper_side"); - this.iconBottom = iconRegister.registerIcon(RefStrings.MODID + ":capacitor_copper_bottom"); - this.iconInnerTop = iconRegister.registerIcon(RefStrings.MODID + ":capacitor_copper_inner_top"); - this.iconInnerSide = iconRegister.registerIcon(RefStrings.MODID + ":capacitor_copper_inner_side"); + this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":capacitor_" + name + "_top"); + this.iconSide = iconRegister.registerIcon(RefStrings.MODID + ":capacitor_" + name + "_side"); + this.iconBottom = iconRegister.registerIcon(RefStrings.MODID + ":capacitor_" + name + "_bottom"); + this.iconInnerTop = iconRegister.registerIcon(RefStrings.MODID + ":capacitor_" + name + "_inner_top"); + this.iconInnerSide = iconRegister.registerIcon(RefStrings.MODID + ":capacitor_" + name + "_inner_side"); } public static int renderID = RenderingRegistry.getNextAvailableRenderId(); @@ -104,6 +107,11 @@ public class MachineCapacitor extends BlockContainer implements ILookOverlay, IP return IPersistentNBT.getDrops(world, x, y, z, this); } + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { + IPersistentNBT.restoreData(world, x, y, z, itemStack); + } + @Override public void onBlockHarvested(World world, int x, int y, int z, int meta, EntityPlayer player) { diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 824ecb205..f7098e052 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -13,6 +13,7 @@ import com.hbm.blocks.generic.BlockLoot.TileEntityLoot; import com.hbm.blocks.generic.BlockMotherOfAllOres.TileEntityRandomOre; import com.hbm.blocks.generic.BlockSnowglobe.TileEntitySnowglobe; import com.hbm.blocks.generic.PartEmitter.TileEntityPartEmitter; +import com.hbm.blocks.machine.MachineCapacitor.TileEntityCapacitor; import com.hbm.blocks.machine.MachineFan.TileEntityFan; import com.hbm.blocks.machine.PistonInserter.TileEntityPistonInserter; import com.hbm.blocks.machine.WatzPump.TileEntityWatzPump; @@ -61,6 +62,7 @@ public class TileMappings { put(TileEntityDecoPoleTop.class, "tileentity_poletop"); put(TileEntityDecoPoleSatelliteReceiver.class, "tileentity_satellitereceicer"); put(TileEntityMachineBattery.class, "tileentity_battery"); + put(TileEntityCapacitor.class, "tileentity_capacitor"); put(TileEntityMachineCoal.class, "tileentity_coal"); put(TileEntityRedBarrel.class, "tileentity_barrel"); put(TileEntityYellowBarrel.class, "tileentity_nukebarrel"); diff --git a/src/main/resources/assets/hbm/textures/blocks/capacitor_bus_out.png b/src/main/resources/assets/hbm/textures/blocks/capacitor_bus_out.png index c9a207e23aea062507bc44b8c20b64fa7bdda6c9..2cb5d71316a30234599dfb6a09c8febbc20eeb40 100644 GIT binary patch delta 257 zcmV+c0sj8O0j&a%G=JntL_t(Ijir;j4Z<)KMNd9-AS@~`f#f0sz!srp3?^a=Qd5K! z86u^nNGSjX3a}JAHs4dl&%XEh$}f>p>c$_W078hL#9HfzfmwXYuwfe705}u{0PEGt zs!J(png)P4)WwM1Z zOs9}#bC$~)N#Z{c52G=F+YL_t(Ijjd9#4Zt7_GZjNePRR-Ma&i(M(4ndXs168fDHE|{ zCpZx)*nkIs5W*5U=Zs@#IsjWBsUoSa3DiVO#IuJhMsqTC@J>soHpQGY0;9ZNJ^x-| zCU@WCM5OF|BzlEDD|1J8P!p_Z)WL{2bTA7KJj+S}R002ovPDHLk FV1h-rI`aSk diff --git a/src/main/resources/assets/hbm/textures/blocks/capacitor_gold_bottom.png b/src/main/resources/assets/hbm/textures/blocks/capacitor_gold_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..bac7489b5696a6071c4e64f6c43050616c9102da GIT binary patch literal 551 zcmV+?0@(eDP)+m-}(6XK-P8T^YfEZ z3IHNP&Y6@FkB^U}ln5cl)^Mkgb*6YIF6K3=(>(`^?eUO z*LA$Syzu?~jn-NtBCQ#~7(rw62-I5dsGet~ zR0Cd?g>Bo=BGL*W1cqTiMDFySbpY=@-g}&LSZmSyzPDnGk$Ik*)^q>s$F^-PYNZr< z7=}B_N-0Vy?O&WA-upZHXQVoW(A*c1|It4a*|rU!{fm9ye^bag^YHM{SX?d_o}Qin zsI_8@;q=KEb7%5@DgElP){=8(o@bO&)LI+u7-N%Xtp(sXj$a8{>z4oJa%s({7cs`h zqSi{SwV5a)h;xo{9C>|xy_>k>IN0~SO=SpyX_{Eqm3`mo`~EkHx3{{%VX0;LbY8&!uO2B+@Qzt0phd OE(T9mKbLh*2~7am={vdr literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/capacitor_gold_inner_top.png b/src/main/resources/assets/hbm/textures/blocks/capacitor_gold_inner_top.png new file mode 100644 index 0000000000000000000000000000000000000000..52ffe26c57d2f80c46e565d1f7c7555ba099fade GIT binary patch literal 272 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfyU$h+x$s-jxHO5bVLpwx^#{CiOju&X6_%^2C z+f}UZ9;$nP_Kn~34NsdBk19qmEPlDE)Z&w{l6@#c!*&~U{`OOO)|+`44Cbwuni0H6 z;b~>C)9Q+cs(xD^S_GsmpWhq9#NZ?LI&1U%4?CW*PGx8~n>WL{`rW*H3v7~f85}qm z8>Vdf<`>SM5p;{MBu)20o#msQZL%S@A;}IOyQ3KYO}*L8UB z*=#m=?`hkXG)?i|qm)7jfiZ^r{Z5i)8F`+w+wGoQhGD=tM@-VTEqR{PG!4!?j-Sr$Y3AWvlv(X@`2)X4)02y3We4W>vNW*YX>1L3h?pz_ PbRC1ItDnm{r-UW|aA!_` literal 0 HcmV?d00001 From 6710370f81d524e77e23503f258dfea62319b750 Mon Sep 17 00:00:00 2001 From: Bob Date: Sat, 10 Jun 2023 16:06:53 +0200 Subject: [PATCH 107/432] more capacitors, rail stuff --- changelog | 12 +- .../java/com/hbm/blocks/BlockDummyable.java | 12 +- src/main/java/com/hbm/blocks/ModBlocks.java | 6 + .../hbm/blocks/machine/MachineCapacitor.java | 33 +- .../blocks/machine/MachineCapacitorBus.java | 11 +- .../hbm/blocks/rail/RailStandardCurve.java | 6 +- .../com/hbm/blocks/rail/RailStandardRamp.java | 9 +- .../hbm/blocks/rail/RailStandardStraight.java | 4 +- .../hbm/entity/train/EntityRailCarBase.java | 18 +- .../entity/train/EntityRailCarRidable.java | 3 + .../java/com/hbm/main/CraftingManager.java | 5 + .../com/hbm/main/ModEventHandlerClient.java | 25 +- .../entity/item/RenderTrainCargoTram.java | 6 +- .../item/RenderTrainCargoTramTrailer.java | 19 +- .../machine/TileEntityMachineTurbofan.java | 4 +- .../hbm/world/gen/component/Component.java | 1 - src/main/resources/assets/hbm/lang/de_DE.lang | 6 + src/main/resources/assets/hbm/lang/en_US.lang | 6 + .../hbm/models/blocks/rail_standard_ramp.obj | 486 ++++++++++++++++-- .../blocks/capacitor_niobium_bottom.png | Bin 0 -> 550 bytes .../blocks/capacitor_niobium_inner_side.png | Bin 0 -> 187 bytes .../blocks/capacitor_niobium_inner_top.png | Bin 0 -> 280 bytes .../blocks/capacitor_niobium_side.png | Bin 0 -> 378 bytes .../textures/blocks/capacitor_niobium_top.png | Bin 0 -> 226 bytes .../blocks/capacitor_tantalium_bottom.png | Bin 0 -> 555 bytes .../blocks/capacitor_tantalium_inner_side.png | Bin 0 -> 174 bytes .../blocks/capacitor_tantalium_inner_top.png | Bin 0 -> 272 bytes .../blocks/capacitor_tantalium_side.png | Bin 0 -> 327 bytes .../blocks/capacitor_tantalium_top.png | Bin 0 -> 182 bytes 29 files changed, 580 insertions(+), 92 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/blocks/capacitor_niobium_bottom.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/capacitor_niobium_inner_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/capacitor_niobium_inner_top.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/capacitor_niobium_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/capacitor_niobium_top.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/capacitor_tantalium_bottom.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/capacitor_tantalium_inner_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/capacitor_tantalium_inner_top.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/capacitor_tantalium_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/capacitor_tantalium_top.png diff --git a/changelog b/changelog index 5060b78ac..99abe8ebc 100644 --- a/changelog +++ b/changelog @@ -6,12 +6,22 @@ * Mustard gas * Euphemium capacitor * Used for schrabidium transmutation, has infinite durability +* Capacitor blocks + * Like batteries without GUIs that are constantly in input/output mode + * Input is on the top of the capacitor block, for output the capacitor has to be placed onto a capaictor bus + * Capacitor buses have one side for the output, multiple buses can be chained up given they are placed in a straight line + * Incentivizes splitting the power grid, looping the output back into the input will yield the same weirdness as combining multiple IO energy storage blocks +* Desh bullet stamps + * Like regular bullets stamps but with infinite durability ## Changed * Updated russian localization * Mist now spawns cloud particles with the correct color instead of standard white * HE artillery shells and rockets now turn blocks into slag +* The old static bunker structure has been removed and replaced with dynamically generated ones, using the same style of generation as vanilla strongholds. ## Fixed * Fixed the TOXIC trait not respecting protection when applying potion effects -* Fixed some armor recipes only accepting polymer and not bakelite \ No newline at end of file +* Fixed some armor recipes only accepting polymer and not bakelite +* Fixed turbofans not sucking in players +* Fixed NTM skybox not applying to superflat worlds \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/BlockDummyable.java b/src/main/java/com/hbm/blocks/BlockDummyable.java index 3c1869089..4d7b35b2e 100644 --- a/src/main/java/com/hbm/blocks/BlockDummyable.java +++ b/src/main/java/com/hbm/blocks/BlockDummyable.java @@ -490,12 +490,10 @@ public abstract class BlockDummyable extends BlockContainer implements ICustomBl int[] pos = this.findCore(world, x, y, z); if(pos == null) return; - TileEntity tile = world.getTileEntity(pos[0], pos[1], pos[2]); - if(tile == null) return; - x = tile.xCoord; - y = tile.yCoord; - z = tile.zCoord; + x = pos[0]; + y = pos[1]; + z = pos[2]; EntityPlayer player = event.player; float interp = event.partialTicks; @@ -503,9 +501,11 @@ public abstract class BlockDummyable extends BlockContainer implements ICustomBl double dY = player.lastTickPosY + (player.posY - player.lastTickPosY) * (double) interp; double dZ = player.lastTickPosZ + (player.posZ - player.lastTickPosZ) * (double)interp; float exp = 0.002F; + + int meta = world.getBlockMetadata(x, y, z); ICustomBlockHighlight.setup(); - for(AxisAlignedBB aabb : this.bounding) event.context.drawOutlinedBoundingBox(getAABBRotationOffset(aabb.expand(exp, exp, exp), 0, 0, 0, ForgeDirection.getOrientation(tile.getBlockMetadata() - offset).getRotation(ForgeDirection.UP)).getOffsetBoundingBox(x - dX + 0.5, y - dY, z - dZ + 0.5), -1); + for(AxisAlignedBB aabb : this.bounding) event.context.drawOutlinedBoundingBox(getAABBRotationOffset(aabb.expand(exp, exp, exp), 0, 0, 0, ForgeDirection.getOrientation(meta - offset).getRotation(ForgeDirection.UP)).getOffsetBoundingBox(x - dX + 0.5, y - dY, z - dZ + 0.5), -1); ICustomBlockHighlight.cleanup(); } } diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index da8ec07e3..1a9438c41 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -760,6 +760,8 @@ public class ModBlocks { public static Block capacitor_bus; public static Block capacitor_copper; public static Block capacitor_gold; + public static Block capacitor_niobium; + public static Block capacitor_tantalium; public static Block machine_coal_off; public static Block machine_coal_on; @@ -1886,6 +1888,8 @@ public class ModBlocks { capacitor_bus = new MachineCapacitorBus(Material.iron).setBlockName("capacitor_bus").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); capacitor_copper = new MachineCapacitor(Material.iron, 1_000_000L, "copper").setBlockName("capacitor_copper").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_copper"); capacitor_gold = new MachineCapacitor(Material.iron, 5_000_000L, "gold").setBlockName("capacitor_gold").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName("gold_block"); + capacitor_niobium = new MachineCapacitor(Material.iron, 25_000_000L, "niobium").setBlockName("capacitor_niobium").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_niobium"); + capacitor_tantalium = new MachineCapacitor(Material.iron, 100_000_000L, "tantalium").setBlockName("capacitor_tantalium").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_tantalium"); machine_coal_off = new MachineCoal(false).setBlockName("machine_coal_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); machine_coal_on = new MachineCoal(true).setBlockName("machine_coal_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F); @@ -3203,6 +3207,8 @@ public class ModBlocks { register(capacitor_bus); register(capacitor_copper); register(capacitor_gold); + register(capacitor_niobium); + register(capacitor_tantalium); GameRegistry.registerBlock(machine_transformer, machine_transformer.getUnlocalizedName()); GameRegistry.registerBlock(machine_transformer_20, machine_transformer_20.getUnlocalizedName()); GameRegistry.registerBlock(machine_transformer_dnt, machine_transformer_dnt.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/machine/MachineCapacitor.java b/src/main/java/com/hbm/blocks/machine/MachineCapacitor.java index 64a76e113..be083f6e3 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineCapacitor.java +++ b/src/main/java/com/hbm/blocks/machine/MachineCapacitor.java @@ -3,8 +3,11 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; +import org.lwjgl.input.Keyboard; + import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.IPersistentInfoProvider; +import com.hbm.blocks.ITooltipProvider; import com.hbm.blocks.ModBlocks; import com.hbm.lib.RefStrings; import com.hbm.tileentity.INBTPacketReceiver; @@ -33,7 +36,7 @@ import net.minecraft.world.World; import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; import net.minecraftforge.common.util.ForgeDirection; -public class MachineCapacitor extends BlockContainer implements ILookOverlay, IPersistentInfoProvider { +public class MachineCapacitor extends BlockContainer implements ILookOverlay, IPersistentInfoProvider, ITooltipProvider { @SideOnly(Side.CLIENT) public IIcon iconTop; @SideOnly(Side.CLIENT) public IIcon iconSide; @@ -93,6 +96,8 @@ public class MachineCapacitor extends BlockContainer implements ILookOverlay, IP int charge = (int) Math.floor(percent * 10_000D); int color = ((int) (0xFF - 0xFF * percent)) << 16 | ((int)(0xFF * percent) << 8); text.add("&[" + color + "&]" + (charge / 100D) + "%"); + text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + "+" + BobMathUtil.getShortNumber(battery.powerReceived) + "HE/t"); + text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + "-" + BobMathUtil.getShortNumber(battery.powerSent) + "HE/t"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } @@ -101,6 +106,18 @@ public class MachineCapacitor extends BlockContainer implements ILookOverlay, IP public void addInformation(ItemStack stack, NBTTagCompound persistentTag, EntityPlayer player, List list, boolean ext) { list.add(EnumChatFormatting.YELLOW + "" + BobMathUtil.getShortNumber(persistentTag.getLong("power")) + "/" + BobMathUtil.getShortNumber(persistentTag.getLong("maxPower")) + "HE"); } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + + if(Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { + for(String s : I18nUtil.resolveKeyArray("tile.capacitor.desc")) list.add(EnumChatFormatting.YELLOW + s); + } else { + list.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC +"Hold <" + + EnumChatFormatting.YELLOW + "" + EnumChatFormatting.ITALIC + "LSHIFT" + + EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC + "> to display more info"); + } + } @Override public ArrayList getDrops(World world, int x, int y, int z, int metadata, int fortune) { @@ -132,6 +149,9 @@ public class MachineCapacitor extends BlockContainer implements ILookOverlay, IP public long power; protected long maxPower; + public long prevPower; + public long powerReceived; + public long powerSent; public TileEntityCapacitor() { } @@ -143,6 +163,8 @@ public class MachineCapacitor extends BlockContainer implements ILookOverlay, IP public void updateEntity() { if(!worldObj.isRemote) { + + long gain = power - prevPower; ForgeDirection opp = ForgeDirection.getOrientation(this.getBlockMetadata()); ForgeDirection dir = opp.getOpposite(); @@ -165,23 +187,32 @@ public class MachineCapacitor extends BlockContainer implements ILookOverlay, IP pos = pos.offset(current); } + long preSend = power; if(pos != null && last != null) { this.tryUnsubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ()); this.sendPower(worldObj, pos.getX(), pos.getY(), pos.getZ(), last); } + long sent = preSend - power; this.trySubscribe(worldObj, xCoord + opp.offsetX, yCoord+ opp.offsetY, zCoord + opp.offsetZ, opp); NBTTagCompound data = new NBTTagCompound(); data.setLong("power", power); data.setLong("maxPower", maxPower); + data.setLong("rec", gain); + data.setLong("sent", sent); INBTPacketReceiver.networkPack(this, data, 15); + + this.prevPower = power; } } @Override public void networkUnpack(NBTTagCompound nbt) { this.power = nbt.getLong("power"); + this.maxPower = nbt.getLong("maxPower"); + this.powerReceived = nbt.getLong("rec"); + this.powerSent = nbt.getLong("sent"); } @Override diff --git a/src/main/java/com/hbm/blocks/machine/MachineCapacitorBus.java b/src/main/java/com/hbm/blocks/machine/MachineCapacitorBus.java index 8ed5b2ed1..fa7aa8dbe 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineCapacitorBus.java +++ b/src/main/java/com/hbm/blocks/machine/MachineCapacitorBus.java @@ -1,5 +1,8 @@ package com.hbm.blocks.machine; +import java.util.List; + +import com.hbm.blocks.ITooltipProvider; import com.hbm.lib.RefStrings; import api.hbm.energy.IEnergyConnectorBlock; @@ -10,13 +13,14 @@ import net.minecraft.block.BlockPistonBase; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class MachineCapacitorBus extends Block implements IEnergyConnectorBlock { +public class MachineCapacitorBus extends Block implements IEnergyConnectorBlock, ITooltipProvider { @SideOnly(Side.CLIENT) private IIcon topIcon; @@ -47,4 +51,9 @@ public class MachineCapacitorBus extends Block implements IEnergyConnectorBlock ForgeDirection busDir = ForgeDirection.getOrientation(meta); return dir == busDir; } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } } diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java b/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java index 49394f6a8..bc3401b04 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java @@ -100,7 +100,7 @@ public class RailStandardCurve extends BlockDummyable implements IRailNTM { moveAngle -= angleOvershoot; double lengthOvershoot = angleOvershoot * length90Deg / 90D; info.dist(lengthOvershoot * Math.signum(speed * angularChange)).pos(new BlockPos(cX - dir.offsetX * 4 + rot.offsetX * 5, y, cZ - dir.offsetZ * 4 + rot.offsetZ * 5)).yaw((float) moveAngle); - return Vec3.createVectorHelper(axisX - dir.offsetX * turnRadius, y, axisZ - dir.offsetZ * turnRadius); + return Vec3.createVectorHelper(axisX - dir.offsetX * turnRadius, y + 0.1875, axisZ - dir.offsetZ * turnRadius); } if(effAngle < 0) { @@ -108,13 +108,13 @@ public class RailStandardCurve extends BlockDummyable implements IRailNTM { moveAngle -= angleOvershoot; double lengthOvershoot = angleOvershoot * length90Deg / 90D; info.dist(-lengthOvershoot * Math.signum(speed * angularChange)).pos(new BlockPos(cX + dir.offsetX , y, cZ + dir.offsetZ)).yaw((float) moveAngle); - return Vec3.createVectorHelper(axisX - rot.offsetX * turnRadius, y, axisZ -rot.offsetZ * turnRadius); + return Vec3.createVectorHelper(axisX - rot.offsetX * turnRadius, y + 0.1875, axisZ -rot.offsetZ * turnRadius); } double radianChange = angularChange * Math.PI / 180D; dist.rotateAroundY((float) radianChange); - return Vec3.createVectorHelper(axisX + dist.xCoord, y, axisZ + dist.zCoord); + return Vec3.createVectorHelper(axisX + dist.xCoord, y + 0.1875, axisZ + dist.zCoord); } @Override diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardRamp.java b/src/main/java/com/hbm/blocks/rail/RailStandardRamp.java index d8cd3fdff..d6911418c 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardRamp.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardRamp.java @@ -19,6 +19,11 @@ public class RailStandardRamp extends BlockDummyable implements IRailNTM { public RailStandardRamp() { super(Material.iron); + this.bounding.add(AxisAlignedBB.getBoundingBox(-2.5, 0.0, -1.5, -1.5, 0.1, 0.5)); + this.bounding.add(AxisAlignedBB.getBoundingBox(-1.5, 0.0, -1.5, -0.5, 0.3, 0.5)); + this.bounding.add(AxisAlignedBB.getBoundingBox(-0.5, 0.0, -1.5, 0.5, 0.5, 0.5)); + this.bounding.add(AxisAlignedBB.getBoundingBox(0.5, 0.0, -1.5, 1.5, 0.7, 0.5)); + this.bounding.add(AxisAlignedBB.getBoundingBox(1.5, 0.0, -1.5, 2.5, 0.9, 0.5)); } @Override @@ -92,7 +97,7 @@ public class RailStandardRamp extends BlockDummyable implements IRailNTM { } double dist = (cX + 0.5 - targetX + 2.5) / 5; vec.xCoord = MathHelper.clamp_double(targetX, cX - 2, cX + 3); - vec.yCoord = MathHelper.clamp_double(dir == Library.POS_X ? cY + dist : cY + 1 - dist, cY, cY + 1); + vec.yCoord = MathHelper.clamp_double(dir == Library.POS_X ? cY + dist : cY + 1 - dist, cY, cY + 1) + 0.1875; vec.zCoord = cZ + 0.5 + rot.offsetZ * 0.5; info.dist(Math.abs(targetX - vec.xCoord) * Math.signum(speed)); info.pos(new BlockPos(cX + (motionX * speed > 0 ? 3 : -3), cY + (motionX * speed > 0 ^ dir == Library.POS_X ? 1 : 0), cZ)); @@ -107,7 +112,7 @@ public class RailStandardRamp extends BlockDummyable implements IRailNTM { } double dist = (cZ + 0.5 - targetZ + 2.5) / 5; vec.xCoord = cX + 0.5 + rot.offsetX * 0.5; - vec.yCoord = MathHelper.clamp_double(dir == Library.POS_Z ? cY + dist : cY + 1 - dist, cY, cY + 1); + vec.yCoord = MathHelper.clamp_double(dir == Library.POS_Z ? cY + dist : cY + 1 - dist, cY, cY + 1) + 0.1875; vec.zCoord = MathHelper.clamp_double(targetZ, cZ - 2,cZ + 3); info.dist(Math.abs(targetZ - vec.zCoord) * Math.signum(speed)); info.pos(new BlockPos(cX, cY + (motionZ * speed > 0 ^ dir == Library.POS_Z ? 1 : 0), cZ + (motionZ * speed > 0 ? 3 : -3))); diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java b/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java index 72c4be7b5..b68aedd68 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardStraight.java @@ -90,7 +90,7 @@ public class RailStandardStraight extends BlockDummyable implements IRailNTM { info.yaw(90F); } vec.xCoord = MathHelper.clamp_double(targetX, cX - 2, cX + 3); - vec.yCoord = y; + vec.yCoord = y + 0.1875; vec.zCoord = cZ + 0.5 + rot.offsetZ * 0.5; info.dist(Math.abs(targetX - vec.xCoord) * Math.signum(speed)); info.pos(new BlockPos(cX + (motionX * speed > 0 ? 3 : -3), y, cZ)); @@ -104,7 +104,7 @@ public class RailStandardStraight extends BlockDummyable implements IRailNTM { info.yaw(180F); } vec.xCoord = cX + 0.5 + rot.offsetX * 0.5; - vec.yCoord = y; + vec.yCoord = y + 0.1875; vec.zCoord = MathHelper.clamp_double(targetZ, cZ - 2,cZ + 3); info.dist(Math.abs(targetZ - vec.zCoord) * Math.signum(speed)); info.pos(new BlockPos(cX, y, cZ + (motionZ * speed > 0 ? 3 : -3))); diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java index 7b39c014b..2f0a97813 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java @@ -47,6 +47,7 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { private double trainYaw; private double trainPitch; private float movementYaw; + private float movementPitch; @SideOnly(Side.CLIENT) private double velocityX; @SideOnly(Side.CLIENT) private double velocityY; @SideOnly(Side.CLIENT) private double velocityZ; @@ -179,6 +180,9 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { } } else { + + PacketDispatcher.wrapper.sendToAllAround(new PlayerInformPacket(ChatBuilder.start("" + this.rotationPitch).color(EnumChatFormatting.RED).flush(), 1), + new TargetPoint(dimension, posX, posY + 1, posZ, 50)); if(this.coupledFront != null && this.coupledFront.isDead) { this.coupledFront = null; @@ -393,11 +397,13 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { this.motionY = this.velocityY; this.motionZ = this.velocityZ; this.trainYaw = this.movementYaw; + this.trainPitch = this.movementPitch; } @SideOnly(Side.CLIENT) public void setVelocity(double mX, double mY, double mZ) { this.movementYaw = (float) this.motionX * 360F; + this.movementPitch = (float) this.motionY * 360F; this.velocityX = this.motionX = mX; this.velocityY = this.motionY = mY; this.velocityZ = this.motionZ = mZ; @@ -614,7 +620,8 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { Vec3 nextLoc = moving.getCouplingPos(nextCouple); Vec3 delta = Vec3.createVectorHelper(prevLoc.xCoord - nextLoc.xCoord, 0, prevLoc.zCoord - nextLoc.zCoord); double len = delta.lengthVector(); - len *= 0.75; //suspension, causes movements to be less rigid + //len *= 0.25; //suspension, causes movements to be less rigid + len = (len / (0.5D / (len * len) + 1D)); //smart suspension BlockPos anchor = new BlockPos(moving.posX, moving.posY, moving.posZ); Vec3 trainPos = Vec3.createVectorHelper(moving.posX, moving.posY, moving.posZ); float yaw = EntityRailCarBase.generateYaw(prevLoc, nextLoc); @@ -740,15 +747,13 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { EntityRailCarBase first = this.trains[0]; - for(int i = forward ? 0 : this.trains.length - 1; forward ? i < this.trains.length : i >= 0; i += forward ? 1 : -1) { + for(int i = !forward ? 0 : this.trains.length - 1; !forward ? i < this.trains.length : i >= 0; i += !forward ? 1 : -1) { EntityRailCarBase current = this.trains[i]; if(previous == null) { - PacketDispatcher.wrapper.sendToAllAround(new PlayerInformPacket(ChatBuilder.start("" + current.getClass() + " " + origSpeed).color(EnumChatFormatting.RED).flush(), 1), - new TargetPoint(current.dimension, current.posX, current.posY + 1, current.posZ, 50)); boolean inReverse = first.getCouplingFrom(null) == current.getCouplingFrom(null); - int sigNum = inReverse ? -1 : 1; + int sigNum = inReverse ? 1 : -1; BlockPos anchor = current.getCurrentAnchorPos(); Vec3 corePos = current.getRelPosAlongRail(anchor, speed * sigNum, new MoveContext(RailCheckType.CORE)); @@ -786,7 +791,10 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { current.renderZ = (frontPos.zCoord + backPos.zCoord) / 2D; current.prevRotationYaw = current.rotationYaw; current.rotationYaw = current.movementYaw = generateYaw(frontPos, backPos); + Vec3 delta = Vec3.createVectorHelper(frontPos.xCoord - backPos.xCoord, frontPos.yCoord - backPos.yCoord, frontPos.zCoord - backPos.zCoord); + current.rotationPitch = current.movementPitch = (float) (Math.asin(delta.yCoord / delta.lengthVector()) * 180D / Math.PI); current.motionX = current.rotationYaw / 360D; // hijacking this crap for easy syncing + current.motionY = current.rotationPitch / 360D; current.velocityChanged = true; } } diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java b/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java index b7ae2784a..da9a66f4e 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarRidable.java @@ -173,6 +173,7 @@ public abstract class EntityRailCarRidable extends EntityRailCarCargo { seat.setDead(); } else { Vec3 rot = seats[i]; + rot.rotateAroundX((float) (this.rotationPitch * Math.PI / 180)); rot.rotateAroundY((float) (-this.rotationYaw * Math.PI / 180)); double x = renderX + rot.xCoord; double y = renderY + rot.yCoord; @@ -188,6 +189,7 @@ public abstract class EntityRailCarRidable extends EntityRailCarCargo { public void updateRiderPosition() { Vec3 offset = getRiderSeatPosition(); + offset.rotateAroundX((float) (this.rotationPitch * Math.PI / 180)); offset.rotateAroundY((float) (-this.rotationYaw * Math.PI / 180)); if(this.riddenByEntity != null) { @@ -271,6 +273,7 @@ public abstract class EntityRailCarRidable extends EntityRailCarCargo { //mmhmhmhm silky smooth int index = this.dataWatcher.getWatchableObjectInt(4); Vec3 rot = this.train.getPassengerSeats()[index]; + rot.rotateAroundX((float) (train.rotationPitch * Math.PI / 180)); rot.rotateAroundY((float) (-train.rotationYaw * Math.PI / 180)); double x = train.renderX + rot.xCoord; double y = train.renderY + rot.yCoord; diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 0e1c20035..29b6606ed 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -281,6 +281,11 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.red_connector, 4), new Object[] { "C", "I", "S", 'C', ModItems.coil_copper, 'I', ModItems.plate_polymer, 'S', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.red_pylon, 4), new Object[] { "CWC", "PWP", " T ", 'C', ModItems.coil_copper, 'W', KEY_PLANKS, 'P', ModItems.plate_polymer, 'T', ModBlocks.red_wire_coated }); addRecipeAuto(new ItemStack(ModBlocks.machine_battery_potato, 1), new Object[] { "PCP", "WRW", "PCP", 'P', ItemBattery.getEmptyBattery(ModItems.battery_potato), 'C', CU.ingot(), 'R', REDSTONE.block(), 'W', KEY_PLANKS }); + addRecipeAuto(new ItemStack(ModBlocks.capacitor_bus, 1), new Object[] { "PIP", "PIP", "PIP", 'P', ModItems.plate_polymer, 'I', MINGRADE.ingot() }); + addRecipeAuto(new ItemStack(ModBlocks.capacitor_copper, 1), new Object[] { "PPP", "PCP", "WWW", 'P', STEEL.plate(), 'C', CU.block(), 'W', KEY_PLANKS }); + addRecipeAuto(new ItemStack(ModBlocks.capacitor_gold, 1), new Object[] { "PPP", "ICI", "WWW", 'P', STEEL.plate(), 'I', ANY_PLASTIC.ingot(), 'C', GOLD.block(), 'W', STEEL.ingot() }); + addRecipeAuto(new ItemStack(ModBlocks.capacitor_niobium, 1), new Object[] { "PPP", "ICI", "WWW", 'P', STEEL.plate(), 'I', RUBBER.ingot(), 'C', NB.block(), 'W', STEEL.ingot() }); + addRecipeAuto(new ItemStack(ModBlocks.capacitor_tantalium, 1), new Object[] { "PPP", "ICI", "WWW", 'P', STEEL.plate(), 'I', ANY_RESISTANTALLOY.ingot(), 'C', TA.block(), 'W', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.machine_coal_off, 1), new Object[] { "STS", "SCS", "SFS", 'S', STEEL.ingot(), 'T', ModItems.tank_steel, 'C', MINGRADE.ingot(), 'F', Blocks.furnace }); addRecipeAuto(new ItemStack(ModBlocks.machine_boiler_off, 1), new Object[] { "SPS", "TFT", "SPS", 'S', STEEL.ingot(), 'P', ModItems.board_copper, 'T', ModItems.tank_steel, 'F', Blocks.furnace }); addRecipeAuto(new ItemStack(ModBlocks.machine_boiler_electric_off, 1), new Object[] { "SPS", "TFT", "SPS", 'S', DESH.ingot(), 'P', ModItems.board_copper, 'T', ModItems.tank_steel, 'F', ModBlocks.machine_electric_furnace_off }); diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 31ef5a08e..3a7624b0b 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -13,10 +13,6 @@ import org.lwjgl.opengl.GL11; import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockAshes; -import com.hbm.blocks.rail.IRailNTM; -import com.hbm.blocks.rail.IRailNTM.MoveContext; -import com.hbm.blocks.rail.IRailNTM.RailCheckType; -import com.hbm.blocks.rail.IRailNTM.RailContext; import com.hbm.config.GeneralConfig; import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.mob.EntityHunterChopper; @@ -70,7 +66,6 @@ import com.hbm.tileentity.machine.TileEntityNukeFurnace; import com.hbm.util.I18nUtil; import com.hbm.util.ItemStackUtil; import com.hbm.util.LoggingUtil; -import com.hbm.util.fauxpointtwelve.BlockPos; import com.hbm.wiaj.GuiWorldInAJar; import com.hbm.wiaj.cannery.CanneryBase; import com.hbm.wiaj.cannery.Jars; @@ -953,22 +948,26 @@ public class ModEventHandlerClient { if(event.phase == Phase.START && GeneralConfig.enableSkyboxes) { World world = Minecraft.getMinecraft().theWorld; + if(world == null) return; - if(world != null && world.provider instanceof WorldProviderSurface) { - - IRenderHandler sky = world.provider.getSkyRenderer(); + IRenderHandler sky = world.provider.getSkyRenderer(); + + if(world.provider instanceof WorldProviderSurface) { if(ImpactWorldHandler.getDustForClient(world) > 0 || ImpactWorldHandler.getFireForClient(world) > 0) { //using a chainloader isn't necessary since none of the sky effects should render anyway if(!(sky instanceof RenderNTMSkyboxImpact)) { world.provider.setSkyRenderer(new RenderNTMSkyboxImpact()); + return; } - } else { - - if(!(sky instanceof RenderNTMSkyboxChainloader)) { - world.provider.setSkyRenderer(new RenderNTMSkyboxChainloader(sky)); - } + } + } + + if(world.provider.dimensionId == 0) { + + if(!(sky instanceof RenderNTMSkyboxChainloader)) { + world.provider.setSkyRenderer(new RenderNTMSkyboxChainloader(sky)); } } } diff --git a/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTram.java b/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTram.java index 7f50e2bef..93cb9cf29 100644 --- a/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTram.java +++ b/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTram.java @@ -37,7 +37,11 @@ public class RenderTrainCargoTram extends Render { float yawInterp = prevYaw + (yaw - prevYaw) * interp - 720; GL11.glRotated(-yawInterp, 0, 1, 0); - GL11.glRotated(-entity.rotationPitch, 0, 0, 1); + + float pitch = entity.rotationPitch; + float prevPitch = entity.prevRotationPitch; + float pitchInterp = prevPitch + (pitch - prevPitch) * interp; + GL11.glRotated(-pitchInterp, 1, 0, 0); GL11.glDisable(GL11.GL_CULL_FACE); bindTexture(ResourceManager.train_tram); diff --git a/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTramTrailer.java b/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTramTrailer.java index 58d150ea8..867a396ba 100644 --- a/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTramTrailer.java +++ b/src/main/java/com/hbm/render/entity/item/RenderTrainCargoTramTrailer.java @@ -3,6 +3,7 @@ package com.hbm.render.entity.item; import org.lwjgl.opengl.GL11; import com.hbm.blocks.ModBlocks; +import com.hbm.entity.train.EntityRailCarBase; import com.hbm.main.ResourceManager; import net.minecraft.client.renderer.entity.Render; @@ -18,6 +19,18 @@ public class RenderTrainCargoTramTrailer extends Render { @Override public void doRender(Entity entity, double x, double y, double z, float swing, float interp) { GL11.glPushMatrix(); + + EntityRailCarBase train = (EntityRailCarBase) entity; + double iX = train.prevPosX + (train.posX - train.prevPosX) * interp; + double iY = train.prevPosY + (train.posY - train.prevPosY) * interp; + double iZ = train.prevPosZ + (train.posZ - train.prevPosZ) * interp; + double rX = train.lastRenderX + (train.renderX - train.lastRenderX) * interp; + double rY = train.lastRenderY + (train.renderY - train.lastRenderY) * interp; + double rZ = train.lastRenderZ + (train.renderZ - train.lastRenderZ) * interp; + x -= iX - rX; + y -= iY - rY; + z -= iZ - rZ; + GL11.glTranslated(x, y, z); float yaw = entity.rotationYaw; @@ -29,7 +42,11 @@ public class RenderTrainCargoTramTrailer extends Render { float yawInterp = prevYaw + (yaw - prevYaw) * interp - 720; GL11.glRotated(-yawInterp, 0, 1, 0); - GL11.glRotated(-entity.rotationPitch, 0, 0, 1); + + float pitch = entity.rotationPitch; + float prevPitch = entity.prevRotationPitch; + float pitchInterp = prevPitch + (pitch - prevPitch) * interp; + GL11.glRotated(-pitchInterp, 1, 0, 0); GL11.glDisable(GL11.GL_CULL_FACE); bindTexture(ResourceManager.tram_trailer); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java index 4610b5216..613032cb6 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java @@ -326,9 +326,9 @@ public class TileEntityMachineTurbofan extends TileEntityMachineBase implements * Otherwise this could lead to desync since the motion is never sent form the server */ if(tank.getFill() > 0 && !MainRegistry.proxy.me().capabilities.isCreativeMode) { - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10).getRotation(ForgeDirection.UP); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - + double minX = this.xCoord + 0.5 - dir.offsetX * 3.5 - rot.offsetX * 1.5; double maxX = this.xCoord + 0.5 - dir.offsetX * 19.5 + rot.offsetX * 1.5; double minZ = this.zCoord + 0.5 - dir.offsetZ * 3.5 - rot.offsetZ * 1.5; diff --git a/src/main/java/com/hbm/world/gen/component/Component.java b/src/main/java/com/hbm/world/gen/component/Component.java index 73a1ce5f8..9757ab534 100644 --- a/src/main/java/com/hbm/world/gen/component/Component.java +++ b/src/main/java/com/hbm/world/gen/component/Component.java @@ -16,7 +16,6 @@ import net.minecraft.block.BlockWeb; import net.minecraft.block.material.Material; import net.minecraft.init.Blocks; import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemDoor; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 6d02868f9..a717921bf 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -3586,6 +3586,12 @@ tile.c4.name=C4 tile.cable_detector.name=Redstone-Stromschalter tile.cable_diode.name=Rote Kupferdiode tile.cable_switch.name=Stromschalter +tile.capacitor_bus.name=Kondensator-Bus +tile.capacitor_bus.desc=Output für Kondensatoren$Kann in einer geraden Linie aneinandergereit werden +tile.capacitor_copper.name=Kupferkondensator +tile.capacitor_gold.name=Goldkondensator +tile.capacitor_niobium.name=Niobkondensator +tile.capacitor.desc=Input: Oben$Output: Unten, über Kondensator-Bus tile.charge_c4.name=Abrissladung tile.charge_dynamite.name=Zeitbombe tile.charge_miner.name=Bergbauladung mit Zeitzünder diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index a0519159d..f8ad73e4a 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -4404,6 +4404,12 @@ tile.c4.name=C-4 tile.cable_detector.name=Redstone Power Switch tile.cable_diode.name=Red Copper Diode tile.cable_switch.name=Power Switch +tile.capacitor_bus.name=Capacitor Bus +tile.capacitor_bus.desc=Output block for capacitors$Can be chained up in a straight line +tile.capacitor_copper.name=Copper Capacitor +tile.capacitor_gold.name=Golden Capacitor +tile.capacitor_niobium.name=Niobium Capacitor +tile.capacitor.desc=Input: Top$Output: Bottom, via Capacitor Bus tile.charge_c4.name=Demolition Charge tile.charge_dynamite.name=Time Bomb tile.charge_miner.name=Timed Mining Charge diff --git a/src/main/resources/assets/hbm/models/blocks/rail_standard_ramp.obj b/src/main/resources/assets/hbm/models/blocks/rail_standard_ramp.obj index 2dec4fc8c..f1667d19b 100644 --- a/src/main/resources/assets/hbm/models/blocks/rail_standard_ramp.obj +++ b/src/main/resources/assets/hbm/models/blocks/rail_standard_ramp.obj @@ -13,10 +13,10 @@ v -1.000000 0.700000 -0.812500 v 1.000000 0.700000 -0.812500 v -1.000000 0.700000 -1.187500 v 1.000000 0.700000 -1.187500 -v -1.000000 0.800000 -1.812500 -v 1.000000 0.800000 -1.812500 -v -1.000000 0.800000 -2.187500 -v 1.000000 0.800000 -2.187500 +v -1.000000 0.900000 -1.812500 +v 1.000000 0.900000 -1.812500 +v -1.000000 0.900000 -2.187500 +v 1.000000 0.900000 -2.187500 v -1.000000 0.100000 2.187500 v 1.000000 0.100000 2.187500 v -1.000000 0.100000 1.812500 @@ -29,10 +29,10 @@ v -1.000000 0.762500 -1.187500 v -1.000000 0.762500 -0.812500 v 1.000000 0.762500 -0.812500 v 1.000000 0.762500 -1.187500 -v -1.000000 0.862500 -2.187500 -v -1.000000 0.862500 -1.812500 -v 1.000000 0.862500 -1.812500 -v 1.000000 0.862500 -2.187500 +v -1.000000 0.962500 -2.187500 +v -1.000000 0.962500 -1.812500 +v 1.000000 0.962500 -1.812500 +v 1.000000 0.962500 -2.187500 v -1.000000 0.162500 1.812500 v -1.000000 0.162500 2.187500 v 1.000000 0.162500 2.187500 @@ -121,22 +121,22 @@ v -0.937500 0.825000 -0.937500 v -0.625000 0.825000 -0.937500 v -0.937500 0.825000 -1.062500 v -0.625000 0.825000 -1.062500 -v 0.625000 0.862500 -1.937500 -v 0.937500 0.862500 -1.937500 -v 0.625000 0.862500 -2.062500 -v 0.937500 0.862500 -2.062500 -v 0.625000 0.925000 -1.937500 -v 0.937500 0.925000 -1.937500 -v 0.625000 0.925000 -2.062500 -v 0.937500 0.925000 -2.062500 -v -0.937500 0.862500 -1.937500 -v -0.625000 0.862500 -1.937500 -v -0.937500 0.862500 -2.062500 -v -0.625000 0.862500 -2.062500 -v -0.937500 0.925000 -1.937500 -v -0.625000 0.925000 -1.937500 -v -0.937500 0.925000 -2.062500 -v -0.625000 0.925000 -2.062500 +v 0.625000 0.962500 -1.937500 +v 0.937500 0.962500 -1.937500 +v 0.625000 0.962500 -2.062500 +v 0.937500 0.962500 -2.062500 +v 0.625000 1.025000 -1.937500 +v 0.937500 1.025000 -1.937500 +v 0.625000 1.025000 -2.062500 +v 0.937500 1.025000 -2.062500 +v -0.937500 0.962500 -1.937500 +v -0.625000 0.962500 -1.937500 +v -0.937500 0.962500 -2.062500 +v -0.625000 0.962500 -2.062500 +v -0.937500 1.025000 -1.937500 +v -0.625000 1.025000 -1.937500 +v -0.937500 1.025000 -2.062500 +v -0.625000 1.025000 -2.062500 v -0.812500 0.862500 -1.500000 v -0.812500 0.662500 -0.500000 v -0.812500 0.462500 0.500000 @@ -169,6 +169,86 @@ v -0.750000 0.987500 -1.500000 v -0.750000 0.787500 -0.500000 v -0.750000 0.587500 0.500000 v -0.750000 0.387500 1.500000 +v 0.625000 0.900000 -1.875000 +v 0.875000 0.900000 -1.875000 +v 0.625000 0.900000 -2.125000 +v 0.875000 0.900000 -2.125000 +v 0.625000 -0.037500 -2.125000 +v 0.625000 -0.037500 -1.875000 +v 0.875000 -0.037500 -1.875000 +v 0.875000 -0.037500 -2.125000 +v -0.875000 0.900000 -1.875000 +v -0.625000 0.900000 -1.875000 +v -0.875000 0.900000 -2.125000 +v -0.625000 0.900000 -2.125000 +v -0.875000 -0.037500 -2.125000 +v -0.875000 -0.037500 -1.875000 +v -0.625000 -0.037500 -1.875000 +v -0.625000 -0.037500 -2.125000 +v 0.625000 0.700000 -0.875000 +v 0.875000 0.700000 -0.875000 +v 0.625000 0.700000 -1.125000 +v 0.875000 0.700000 -1.125000 +v 0.625000 -0.050000 -1.125000 +v 0.625000 -0.050000 -0.875000 +v 0.875000 -0.050000 -0.875000 +v 0.875000 -0.050000 -1.125000 +v -0.875000 0.700000 -0.875000 +v -0.625000 0.700000 -0.875000 +v -0.875000 0.700000 -1.125000 +v -0.625000 0.700000 -1.125000 +v -0.875000 -0.050000 -1.125000 +v -0.875000 -0.050000 -0.875000 +v -0.625000 -0.050000 -0.875000 +v -0.625000 -0.050000 -1.125000 +v 0.625000 0.500000 0.125000 +v 0.875000 0.500000 0.125000 +v 0.625000 0.500000 -0.125000 +v 0.875000 0.500000 -0.125000 +v 0.625000 0.000000 -0.125000 +v 0.625000 0.000000 0.125000 +v 0.875000 0.000000 0.125000 +v 0.875000 0.000000 -0.125000 +v -0.875000 0.500000 0.125000 +v -0.625000 0.500000 0.125000 +v -0.875000 0.500000 -0.125000 +v -0.625000 0.500000 -0.125000 +v -0.875000 0.000000 -0.125000 +v -0.875000 0.000000 0.125000 +v -0.625000 0.000000 0.125000 +v -0.625000 0.000000 -0.125000 +v 0.625000 0.300000 1.125000 +v 0.875000 0.300000 1.125000 +v 0.625000 0.300000 0.875000 +v 0.875000 0.300000 0.875000 +v 0.625000 -0.012500 0.875000 +v 0.625000 -0.012500 1.125000 +v 0.875000 -0.012500 1.125000 +v 0.875000 -0.012500 0.875000 +v -0.875000 0.300000 1.125000 +v -0.625000 0.300000 1.125000 +v -0.875000 0.300000 0.875000 +v -0.625000 0.300000 0.875000 +v -0.875000 -0.012500 0.875000 +v -0.875000 -0.012500 1.125000 +v -0.625000 -0.012500 1.125000 +v -0.625000 -0.012500 0.875000 +v 0.625000 0.100000 2.125000 +v 0.875000 0.100000 2.125000 +v 0.625000 0.100000 1.875000 +v 0.875000 0.100000 1.875000 +v 0.625000 -0.025000 1.875000 +v 0.625000 -0.025000 2.125000 +v 0.875000 -0.025000 2.125000 +v 0.875000 -0.025000 1.875000 +v -0.875000 0.100000 2.125000 +v -0.625000 0.100000 2.125000 +v -0.875000 0.100000 1.875000 +v -0.625000 0.100000 1.875000 +v -0.875000 -0.025000 1.875000 +v -0.875000 -0.025000 2.125000 +v -0.625000 -0.025000 2.125000 +v -0.625000 -0.025000 1.875000 vt -0.000000 0.000000 vt 0.187500 1.000000 vt -0.000000 1.000000 @@ -471,6 +551,156 @@ vt 0.593750 0.156250 vt 0.593750 0.656250 vt 0.593750 0.156250 vt 0.593750 0.656250 +vt 0.031250 0.968750 +vt 0.156250 0.843750 +vt 0.031250 0.843750 +vt 0.031250 0.968750 +vt 0.156250 0.843750 +vt 0.031250 0.843750 +vt 0.156250 0.468750 +vt 0.031250 0.968750 +vt 0.156250 0.968750 +vt 0.156250 0.468750 +vt 0.031250 0.968750 +vt 0.156250 0.968750 +vt 0.156250 0.468750 +vt 0.031250 0.968750 +vt 0.156250 0.968750 +vt 0.156250 0.468750 +vt 0.031250 0.968750 +vt 0.156250 0.968750 +vt 0.156250 0.468750 +vt 0.031250 0.968750 +vt 0.156250 0.968750 +vt 0.156250 0.468750 +vt 0.031250 0.968750 +vt 0.156250 0.968750 +vt 0.156250 0.468750 +vt 0.031250 0.968750 +vt 0.156250 0.968750 +vt 0.156250 0.468750 +vt 0.031250 0.968750 +vt 0.156250 0.968750 +vt 0.031250 0.968750 +vt 0.156250 0.843750 +vt 0.031250 0.843750 +vt 0.031250 0.968750 +vt 0.156250 0.843750 +vt 0.031250 0.843750 +vt 0.156250 0.468750 +vt 0.031250 0.843750 +vt 0.156250 0.843750 +vt 0.156250 0.468750 +vt 0.031250 0.843750 +vt 0.156250 0.843750 +vt 0.156250 0.468750 +vt 0.031250 0.843750 +vt 0.156250 0.843750 +vt 0.156250 0.468750 +vt 0.031250 0.843750 +vt 0.156250 0.843750 +vt 0.156250 0.468750 +vt 0.031250 0.843750 +vt 0.156250 0.843750 +vt 0.156250 0.468750 +vt 0.031250 0.843750 +vt 0.156250 0.843750 +vt 0.156250 0.468750 +vt 0.031250 0.843750 +vt 0.156250 0.843750 +vt 0.156250 0.468750 +vt 0.031250 0.843750 +vt 0.156250 0.843750 +vt 0.031250 0.968750 +vt 0.156250 0.843750 +vt 0.031250 0.843750 +vt 0.031250 0.968750 +vt 0.156250 0.843750 +vt 0.031250 0.843750 +vt 0.156250 0.468750 +vt 0.031250 0.718750 +vt 0.156250 0.718750 +vt 0.156250 0.468750 +vt 0.031250 0.718750 +vt 0.156250 0.718750 +vt 0.156250 0.468750 +vt 0.031250 0.718750 +vt 0.156250 0.718750 +vt 0.156250 0.468750 +vt 0.031250 0.718750 +vt 0.156250 0.718750 +vt 0.156250 0.468750 +vt 0.031250 0.718750 +vt 0.156250 0.718750 +vt 0.156250 0.468750 +vt 0.031250 0.718750 +vt 0.156250 0.718750 +vt 0.156250 0.468750 +vt 0.031250 0.718750 +vt 0.156250 0.718750 +vt 0.156250 0.468750 +vt 0.031250 0.718750 +vt 0.156250 0.718750 +vt 0.031250 0.968750 +vt 0.156250 0.843750 +vt 0.031250 0.843750 +vt 0.031250 0.968750 +vt 0.156250 0.843750 +vt 0.031250 0.843750 +vt 0.156250 0.468750 +vt 0.031250 0.625000 +vt 0.156250 0.625000 +vt 0.156250 0.468750 +vt 0.031250 0.625000 +vt 0.156250 0.625000 +vt 0.156250 0.468750 +vt 0.031250 0.625000 +vt 0.156250 0.625000 +vt 0.156250 0.468750 +vt 0.031250 0.625000 +vt 0.156250 0.625000 +vt 0.156250 0.468750 +vt 0.031250 0.625000 +vt 0.156250 0.625000 +vt 0.156250 0.468750 +vt 0.031250 0.625000 +vt 0.156250 0.625000 +vt 0.156250 0.468750 +vt 0.031250 0.625000 +vt 0.156250 0.625000 +vt 0.156250 0.468750 +vt 0.031250 0.625000 +vt 0.156250 0.625000 +vt 0.031250 0.968750 +vt 0.156250 0.843750 +vt 0.031250 0.843750 +vt 0.031250 0.968750 +vt 0.156250 0.843750 +vt 0.031250 0.843750 +vt 0.156250 0.468750 +vt 0.031250 0.531250 +vt 0.156250 0.531250 +vt 0.156250 0.468750 +vt 0.031250 0.531250 +vt 0.156250 0.531250 +vt 0.156250 0.468750 +vt 0.031250 0.531250 +vt 0.156250 0.531250 +vt 0.156250 0.468750 +vt 0.031250 0.531250 +vt 0.156250 0.531250 +vt 0.156250 0.468750 +vt 0.031250 0.531250 +vt 0.156250 0.531250 +vt 0.156250 0.468750 +vt 0.031250 0.531250 +vt 0.156250 0.531250 +vt 0.156250 0.468750 +vt 0.031250 0.531250 +vt 0.156250 0.531250 +vt 0.156250 0.468750 +vt 0.031250 0.531250 +vt 0.156250 0.531250 vt 0.406250 -0.000000 vt 0.187500 1.000000 vt 0.187500 1.000000 @@ -500,6 +730,56 @@ vt 0.593750 0.656250 vt 0.593750 0.656250 vt 0.593750 0.656250 vt 0.593750 0.656250 +vt 0.156250 0.968750 +vt 0.156250 0.968750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.156250 0.968750 +vt 0.156250 0.968750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.156250 0.968750 +vt 0.156250 0.968750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.156250 0.968750 +vt 0.156250 0.968750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.156250 0.968750 +vt 0.156250 0.968750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.468750 vn 0.0000 1.0000 0.0000 vn 0.0000 -1.0000 0.0000 vn -1.0000 0.0000 0.0000 @@ -633,6 +913,56 @@ f 44/267/5 152/95/5 144/265/5 f 144/270/5 151/286/5 143/268/5 f 143/273/5 150/283/5 142/271/5 f 142/276/5 149/280/5 141/274/5 +f 181/303/2 183/304/2 182/305/2 +f 173/306/2 175/307/2 174/308/2 +f 176/309/6 171/310/6 172/311/6 +f 174/312/4 170/313/4 169/314/4 +f 175/315/5 172/316/5 170/317/5 +f 173/318/3 169/319/3 171/320/3 +f 184/321/6 179/322/6 180/323/6 +f 182/324/4 178/325/4 177/326/4 +f 183/327/5 180/328/5 178/329/5 +f 181/330/3 177/331/3 179/332/3 +f 197/333/2 199/334/2 198/335/2 +f 189/336/2 191/337/2 190/338/2 +f 192/339/6 187/340/6 188/341/6 +f 190/342/4 186/343/4 185/344/4 +f 191/345/5 188/346/5 186/347/5 +f 189/348/3 185/349/3 187/350/3 +f 200/351/6 195/352/6 196/353/6 +f 198/354/4 194/355/4 193/356/4 +f 199/357/5 196/358/5 194/359/5 +f 197/360/3 193/361/3 195/362/3 +f 213/363/2 215/364/2 214/365/2 +f 205/366/2 207/367/2 206/368/2 +f 208/369/6 203/370/6 204/371/6 +f 206/372/4 202/373/4 201/374/4 +f 207/375/5 204/376/5 202/377/5 +f 205/378/3 201/379/3 203/380/3 +f 216/381/6 211/382/6 212/383/6 +f 214/384/4 210/385/4 209/386/4 +f 215/387/5 212/388/5 210/389/5 +f 213/390/3 209/391/3 211/392/3 +f 229/393/2 231/394/2 230/395/2 +f 221/396/2 223/397/2 222/398/2 +f 224/399/6 219/400/6 220/401/6 +f 222/402/4 218/403/4 217/404/4 +f 223/405/5 220/406/5 218/407/5 +f 221/408/3 217/409/3 219/410/3 +f 232/411/6 227/412/6 228/413/6 +f 230/414/4 226/415/4 225/416/4 +f 231/417/5 228/418/5 226/419/5 +f 229/420/3 225/421/3 227/422/3 +f 245/423/2 247/424/2 246/425/2 +f 237/426/2 239/427/2 238/428/2 +f 240/429/6 235/430/6 236/431/6 +f 238/432/4 234/433/4 233/434/4 +f 239/435/5 236/436/5 234/437/5 +f 237/438/3 233/439/3 235/440/3 +f 248/441/6 243/442/6 244/443/6 +f 246/444/4 242/445/4 241/446/4 +f 247/447/5 244/448/5 242/449/5 +f 245/450/3 241/451/3 243/452/3 f 2/1/1 1/70/1 4/2/1 f 7/4/2 8/71/2 6/5/2 f 11/7/2 12/45/2 10/8/2 @@ -643,38 +973,38 @@ f 27/19/1 28/44/1 25/20/1 f 31/22/1 32/74/1 29/23/1 f 35/25/1 36/49/1 33/26/1 f 39/28/1 40/79/1 37/29/1 -f 17/31/3 34/303/3 33/32/3 -f 10/34/4 27/304/4 26/35/4 -f 18/37/4 35/305/4 34/38/4 -f 12/40/5 28/306/5 27/41/5 -f 20/42/5 36/307/5 35/43/5 +f 17/31/3 34/453/3 33/32/3 +f 10/34/4 27/454/4 26/35/4 +f 18/37/4 35/455/4 34/38/4 +f 12/40/5 28/456/5 27/41/5 +f 20/42/5 36/457/5 35/43/5 f 11/7/6 25/20/6 28/44/6 -f 5/46/3 3/308/3 4/47/3 +f 5/46/3 3/458/3 4/47/3 f 19/13/6 33/26/6 36/49/6 -f 13/51/3 30/309/3 29/52/3 -f 6/54/4 2/310/4 3/55/4 -f 21/57/3 38/311/3 37/58/3 -f 14/60/4 31/312/4 30/61/4 -f 8/63/5 1/313/5 2/64/5 -f 22/65/4 39/314/4 38/66/4 -f 16/68/5 32/315/5 31/69/5 +f 13/51/3 30/459/3 29/52/3 +f 6/54/4 2/460/4 3/55/4 +f 21/57/3 38/461/3 37/58/3 +f 14/60/4 31/462/4 30/61/4 +f 8/63/5 1/463/5 2/64/5 +f 22/65/4 39/464/4 38/66/4 +f 16/68/5 32/465/5 31/69/5 f 7/4/6 4/2/6 1/70/6 -f 24/72/5 40/316/5 39/73/5 +f 24/72/5 40/466/5 39/73/5 f 15/10/6 29/23/6 32/74/6 -f 9/76/3 26/317/3 25/77/3 +f 9/76/3 26/467/3 25/77/3 f 23/16/6 37/29/6 40/79/6 f 141/81/5 149/277/5 46/82/5 f 145/84/3 47/247/3 43/85/3 -f 153/87/3 49/318/3 51/88/3 -f 46/90/4 51/319/4 49/91/4 +f 153/87/3 49/468/3 51/88/3 +f 46/90/4 51/469/4 49/91/4 f 48/93/7 52/288/7 160/94/7 -f 42/83/8 49/320/8 153/96/8 -f 44/97/6 50/321/6 52/98/6 +f 42/83/8 49/470/8 153/96/8 +f 44/97/6 50/471/6 52/98/6 f 53/100/5 55/246/5 165/101/5 f 45/103/7 56/258/7 168/104/7 f 43/106/8 53/100/8 161/102/8 -f 47/108/6 55/322/6 53/109/6 -f 41/111/4 54/323/4 56/112/4 +f 47/108/6 55/472/6 53/109/6 +f 41/111/4 54/473/4 56/112/4 f 61/114/3 63/117/3 59/115/3 f 63/117/6 64/123/6 60/118/6 f 62/120/4 61/114/4 57/121/4 @@ -737,18 +1067,18 @@ f 164/257/5 168/104/5 56/258/5 f 163/259/5 167/255/5 168/260/5 f 162/261/5 166/252/5 167/262/5 f 161/263/5 165/249/5 166/264/5 -f 144/265/8 156/324/8 50/266/8 -f 143/268/8 155/325/8 156/269/8 -f 142/271/8 154/326/8 155/272/8 -f 141/274/8 153/327/8 154/275/8 +f 144/265/8 156/474/8 50/266/8 +f 143/268/8 155/475/8 156/269/8 +f 142/271/8 154/476/8 155/272/8 +f 141/274/8 153/477/8 154/275/8 f 149/277/7 157/89/7 51/88/7 f 150/278/7 158/294/7 157/279/7 f 151/281/7 159/292/7 158/282/7 f 152/284/7 160/290/7 159/285/7 -f 50/287/3 156/328/3 160/94/3 -f 156/289/3 155/329/3 159/285/3 -f 155/291/3 154/330/3 158/282/3 -f 154/293/3 153/331/3 157/279/3 +f 50/287/3 156/478/3 160/94/3 +f 156/289/3 155/479/3 159/285/3 +f 155/291/3 154/480/3 158/282/3 +f 154/293/3 153/481/3 157/279/3 f 45/103/3 148/105/3 140/295/3 f 148/254/3 147/256/3 139/297/3 f 147/251/3 146/253/3 138/299/3 @@ -757,3 +1087,53 @@ f 44/267/5 48/93/5 152/95/5 f 144/270/5 152/284/5 151/286/5 f 143/273/5 151/281/5 150/283/5 f 142/276/5 150/278/5 149/280/5 +f 181/303/2 184/482/2 183/304/2 +f 173/306/2 176/483/2 175/307/2 +f 176/309/6 173/484/6 171/310/6 +f 174/312/4 175/485/4 170/313/4 +f 175/315/5 176/486/5 172/316/5 +f 173/318/3 174/487/3 169/319/3 +f 184/321/6 181/488/6 179/322/6 +f 182/324/4 183/489/4 178/325/4 +f 183/327/5 184/490/5 180/328/5 +f 181/330/3 182/491/3 177/331/3 +f 197/333/2 200/492/2 199/334/2 +f 189/336/2 192/493/2 191/337/2 +f 192/339/6 189/494/6 187/340/6 +f 190/342/4 191/495/4 186/343/4 +f 191/345/5 192/496/5 188/346/5 +f 189/348/3 190/497/3 185/349/3 +f 200/351/6 197/498/6 195/352/6 +f 198/354/4 199/499/4 194/355/4 +f 199/357/5 200/500/5 196/358/5 +f 197/360/3 198/501/3 193/361/3 +f 213/363/2 216/502/2 215/364/2 +f 205/366/2 208/503/2 207/367/2 +f 208/369/6 205/504/6 203/370/6 +f 206/372/4 207/505/4 202/373/4 +f 207/375/5 208/506/5 204/376/5 +f 205/378/3 206/507/3 201/379/3 +f 216/381/6 213/508/6 211/382/6 +f 214/384/4 215/509/4 210/385/4 +f 215/387/5 216/510/5 212/388/5 +f 213/390/3 214/511/3 209/391/3 +f 229/393/2 232/512/2 231/394/2 +f 221/396/2 224/513/2 223/397/2 +f 224/399/6 221/514/6 219/400/6 +f 222/402/4 223/515/4 218/403/4 +f 223/405/5 224/516/5 220/406/5 +f 221/408/3 222/517/3 217/409/3 +f 232/411/6 229/518/6 227/412/6 +f 230/414/4 231/519/4 226/415/4 +f 231/417/5 232/520/5 228/418/5 +f 229/420/3 230/521/3 225/421/3 +f 245/423/2 248/522/2 247/424/2 +f 237/426/2 240/523/2 239/427/2 +f 240/429/6 237/524/6 235/430/6 +f 238/432/4 239/525/4 234/433/4 +f 239/435/5 240/526/5 236/436/5 +f 237/438/3 238/527/3 233/439/3 +f 248/441/6 245/528/6 243/442/6 +f 246/444/4 247/529/4 242/445/4 +f 247/447/5 248/530/5 244/448/5 +f 245/450/3 246/531/3 241/451/3 diff --git a/src/main/resources/assets/hbm/textures/blocks/capacitor_niobium_bottom.png b/src/main/resources/assets/hbm/textures/blocks/capacitor_niobium_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..63aa941787e559b859ea4c70ff59b6bd6e232473 GIT binary patch literal 550 zcmV+>0@?kEP)+-5+5HQ$hxk4etuF) z0YF5^IkWFOkB^V+`%VY}?>+mzW35Fg#W;@KZZ||kD5Wq>6Cs2KGL9pq6uPeCTz%gI z&~+UzFE4z5f1|b5h)8P&FvbvLWZ!pUj3}jeetzcf$~gm|{~q>z2cVSF?sCpd)5P_9 zy#p5!YOQGJTtih#(RE#GE~OwMEX%^}cB9rxDFtH;-g`s@y{;?97y!m`B!ob%^^WR! zR!TMCWm(v^4J{(A5JF%W21Mje?^y@%-s8Q;Ifu0tolbLA>{O^v_6j2%)(zBLAa*CbDfCK>HUdrQZ~C&OAIkG!~c3g{P+{ z0BWrmV>o>>#@w0wUrN7vthMBvndcd$6t&hyJI2`LS!)3}j^kH?*1F|?xm;TF=|zmO zv8c6DYi%Zq2;!V$97kSXU+*UFI1W-uZ7M?uOw+`=uB4Rc`~DZ?>+6eoo_T+N$2mu> owN2eQh1OcG*DKcA_WGI5Km3a=t@U7-mH+?%07*qoM6N<$f`QTZ-v9sr literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/capacitor_niobium_inner_side.png b/src/main/resources/assets/hbm/textures/blocks/capacitor_niobium_inner_side.png new file mode 100644 index 0000000000000000000000000000000000000000..a91a791a5b60b36731df7403635d09d935e97dc3 GIT binary patch literal 187 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfyU$hYy6uPI|?1l{S+!1VjPP2-#@CnQ@v2ZLidVUliHH1h1{;ahLe_*#s2wU z7g`>D`Q#h7gIq@wn7_=rd*_+AipEzKh7QYgGxlQw9gZu1Ni!Jad^c7NS5llH>mb7* z;I{lrN~KEpsorpXMh1yewv#D>>n18%erAfw-g2#C z-t<*JxlaVG)MogxFP>+E&6+|T@$@&(*#GQWai-zwb>XK>HFbS=8rJUDPGQ?Hb(Odo b^BqR<4bEC^+3AyjUSsfd^>bP0l+XkK<;H74 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/capacitor_niobium_side.png b/src/main/resources/assets/hbm/textures/blocks/capacitor_niobium_side.png new file mode 100644 index 0000000000000000000000000000000000000000..121a437c42e24f1eb35c834631bc6270f3191a6d GIT binary patch literal 378 zcmV-=0fqjFP)wWKyM_6kI{!t3RIrp`&EK8hozksv}V67EnqL?-{l<`p4wTKU6W2NG{ zuEiT*3i3$|JdY3|>-Bml%kl{_CVoqhLel#u@khWnH3~>)cFyrS&LrUV!~WWioD#?W z6hv5ShZu8AoL1aUEax1`dyg@O^ZCqtKF1itX0sXkzDG()mSspOxn8dTbX^C4_nyPy zfNGkC-EPPIeg{A)Mb~wN5Lhf0gb--k7Gn${1hm!&Ay}E|(mSN7R15=X5%;-EPUUjA0laPSIIw&E;}IYyC(FFq_Tz Y0i-$8rr{cFB>(^b07*qoM6N<$f;rlr)Bpeg literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/capacitor_niobium_top.png b/src/main/resources/assets/hbm/textures/blocks/capacitor_niobium_top.png new file mode 100644 index 0000000000000000000000000000000000000000..1a02b2e461c01c0c573dd368e7784c992bab36f5 GIT binary patch literal 226 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfc6uZH`~noyy(vukWwrlznnn=nuNa<9F^XA)1HNdo8o_Yc-S@C{;| zfAj7}x#c2jn17dByR#mzQq5dtwJ43P_)(eCJ3I3g54L)y{Nh`c__m09-=B#L1x%5l W9sm6NqHKVUWbkzLb6Mw<&;$U+vQQ8J literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/capacitor_tantalium_bottom.png b/src/main/resources/assets/hbm/textures/blocks/capacitor_tantalium_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..c8b9428758d2d2e7627387747b4c690be36523d4 GIT binary patch literal 555 zcmV+`0@VG9P)X2M5QRUWz{Ksy-bGntnVZfL<^Xe=+#yO1;iTO**kESS zV-#!HASl)2{ZQ)H??2`H`y1yRZQC-ABi?)VeMf7Ja}KRF(=-9lbsYffy7K=1j?DAS z$HxabX8=TmloH#v@%Z@2wrzwE@ZPg+8`fHsQuKY#?RG;%gq$Mz(Du#)wji=jUgBu9Ol0`sZQWHUM(Y^)98v zFbrI;*AuviP)b2N=PIgFil%95bIutNVVWjxw;QDta?TiI@ZKXL=y{$o#sJXwJs|{2 zDJQDOSt(V4r)gqY7PN@eLI{Db>kyHX-lGoSy~lfxa}H}QdR^CAj4?8fW7T@>KmAyi zrADokLU&zvqO6o6=Uo5A0ph(s(LW;9A%yC_i2O(YNMuZ87{lR{G3I3Qzm)EJthJ<+7{?K%6s43(JH}Y$S!)5<_x&zGYhCldTrRcw z@FK=oS(H*JrBo9|1aZ#M_dTz#ucwLI_nmcJ>r{pi7>0p)o>|wGwr%eqpP!$MUHx3vIVCg!05t46eEHR1;=A=0jL)mZNr@Ag3ul2G@*D^HdoMt%j zdC%6g9HtV^$1G}_1qEc4TR7T%FKk(HuHnD_E7l*jefJu^NAfX6Y%|^=`G9lVduNAj TLM3y6USjZc^>bP0l+XkKlJ#j? literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/capacitor_tantalium_side.png b/src/main/resources/assets/hbm/textures/blocks/capacitor_tantalium_side.png new file mode 100644 index 0000000000000000000000000000000000000000..ec7eb74da7722870fffbb67a6f898aaa2c53d222 GIT binary patch literal 327 zcmV-N0l5B&P)* z<*41XO_g0|<@uK9&9`WpX6KJG#-PICQB_q1@DUJnI-LYS(=@v==35`$h;SJaA6-EP zQ`fZ!!@91;PyYE0eoOvLe{O?+{0Hjg)o{677~U*tnlg?fNs_Q_8&XQ*I7UjzJkJ1R zSq6Y}j;`xa%d*h-J?pvxpp@cvyWzbj&vU%@SZhg=1n)gsYlILS4hOE+D=Nz}%Ch8m zJbs~U+lF)Q-o#o<=76I$zgLx3oX Zcn7$F-IaVTarXcK002ovPDHLkV1hABj7|Um literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/capacitor_tantalium_top.png b/src/main/resources/assets/hbm/textures/blocks/capacitor_tantalium_top.png new file mode 100644 index 0000000000000000000000000000000000000000..50d47236507763e224cafed0c15a4f2c3a0237da GIT binary patch literal 182 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfvQHg~oS9z8;SG;x2IE$nS@y3wirZ7&&J1c%E*$xZ^h?!=h_a zNwF_B{t{|XsPvNwxe+oYXwo_LHT%wrT@JbM{N77bQIjiod!O`+PW%2Kx-~8?a>-Ni cC)tLRWxwlnsPHdL2DysC)78&qol`;+0O&qMbpQYW literal 0 HcmV?d00001 From 792a75e32416966e7990d9314df056e711715475 Mon Sep 17 00:00:00 2001 From: Bob Date: Sat, 10 Jun 2023 17:49:44 +0200 Subject: [PATCH 108/432] brick by brick, suck my di --- changelog | 4 +++- .../java/com/hbm/inventory/fluid/Fluids.java | 20 +++++++++++++++++- .../inventory/recipes/ChemplantRecipes.java | 10 +++++++++ .../hbm/inventory/recipes/CokerRecipes.java | 1 + .../inventory/recipes/CombinationRecipes.java | 2 +- .../inventory/recipes/FractionRecipes.java | 1 + .../hbm/inventory/recipes/MixerRecipes.java | 4 ++++ .../tileentity/machine/TileEntityITER.java | 2 ++ src/main/resources/assets/hbm/lang/de_DE.lang | 8 +++++++ src/main/resources/assets/hbm/lang/en_US.lang | 8 +++++++ .../textures/gui/fluids/calcium_chloride.png | Bin 0 -> 708 bytes .../gui/fluids/chlorocalcite_cleaned.png | Bin 0 -> 708 bytes .../textures/gui/fluids/chlorocalcite_mix.png | Bin 0 -> 708 bytes .../gui/fluids/chlorocalcite_solution.png | Bin 0 -> 708 bytes .../gui/fluids/potassium_chloride.png | Bin 0 -> 708 bytes .../items/chem_icon_CC_CENTRIFUGE.png | Bin 0 -> 160 bytes .../items/chem_icon_CC_ELECTROLYSIS.png | Bin 0 -> 155 bytes .../items/chem_icon_PC_ELECTROLYSIS.png | Bin 0 -> 171 bytes 18 files changed, 57 insertions(+), 3 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/calcium_chloride.png create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/chlorocalcite_cleaned.png create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/chlorocalcite_mix.png create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/chlorocalcite_solution.png create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/potassium_chloride.png create mode 100644 src/main/resources/assets/hbm/textures/items/chem_icon_CC_CENTRIFUGE.png create mode 100644 src/main/resources/assets/hbm/textures/items/chem_icon_CC_ELECTROLYSIS.png create mode 100644 src/main/resources/assets/hbm/textures/items/chem_icon_PC_ELECTROLYSIS.png diff --git a/changelog b/changelog index 99abe8ebc..697dbb496 100644 --- a/changelog +++ b/changelog @@ -19,9 +19,11 @@ * Mist now spawns cloud particles with the correct color instead of standard white * HE artillery shells and rockets now turn blocks into slag * The old static bunker structure has been removed and replaced with dynamically generated ones, using the same style of generation as vanilla strongholds. +* Changed the processing for chlorocalcite, instead of using a combination furnace it now requires a six step cleaning and electrolysis process ## Fixed * Fixed the TOXIC trait not respecting protection when applying potion effects * Fixed some armor recipes only accepting polymer and not bakelite * Fixed turbofans not sucking in players -* Fixed NTM skybox not applying to superflat worlds \ No newline at end of file +* Fixed NTM skybox not applying to superflat worlds +* Fixed breeding slot in the fusion reactor never resettingthe progress after completing an operation \ No newline at end of file diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index c62591afc..6a779d673 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -134,6 +134,12 @@ public class Fluids { public static FluidType SUNFLOWEROIL; public static FluidType NITROGLYCERIN; public static FluidType REDMUD; + public static FluidType CHLOROCALCITE_SOLUTION; + public static FluidType CHLOROCALCITE_MIX; + public static FluidType CHLOROCALCITE_CLEANED; + public static FluidType POTASSIUM_CHLORIDE; + public static FluidType CALCIUM_CHLORIDE; + public static FluidType CALCIUM_SOLUTION; private static final HashMap idMapping = new HashMap(); private static final HashMap nameMapping = new HashMap(); @@ -278,7 +284,13 @@ public class Fluids { FISHOIL = new FluidType("FISHOIL", 0x4B4A45, 0, 1, 0, EnumSymbol.NONE).addTraits(LIQUID); SUNFLOWEROIL = new FluidType("SUNFLOWEROIL", 0xCBAD45, 0, 1, 0, EnumSymbol.NONE).addTraits(LIQUID); NITROGLYCERIN = new FluidType("NITROGLYCERIN", 0x92ACA6, 0, 4, 0, EnumSymbol.NONE).addTraits(LIQUID); - REDMUD = new FluidType(113, "REDMUD", 0xD85638, 3, 0, 4, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS, LEADCON, new FT_Corrosive(60), new FT_Flammable(1_000)); + REDMUD = new FluidType("REDMUD", 0xD85638, 3, 0, 4, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS, LEADCON, new FT_Corrosive(60), new FT_Flammable(1_000)); + CHLOROCALCITE_SOLUTION = new FluidType("CHLOROCALCITE_SOLUTION", 0x808080, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, NOCON, new FT_Corrosive(60)); + CHLOROCALCITE_MIX = new FluidType("CHLOROCALCITE_MIX", 0x808080, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, NOCON, new FT_Corrosive(60)); + CHLOROCALCITE_CLEANED = new FluidType("CHLOROCALCITE_CLEANED", 0x808080, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, NOCON, new FT_Corrosive(60)); + POTASSIUM_CHLORIDE = new FluidType("POTASSIUM_CHLORIDE", 0x808080, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, NOCON, new FT_Corrosive(60)); + CALCIUM_CHLORIDE = new FluidType("CALCIUM_CHLORIDE", 0x808080, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, NOCON, new FT_Corrosive(60)); + CALCIUM_SOLUTION = new FluidType(119, "CALCIUM_SOLUTION", 0x808080, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, NOCON, new FT_Corrosive(60)); // ^ ^ ^ ^ ^ ^ ^ ^ //ADD NEW FLUIDS HERE @@ -389,6 +401,12 @@ public class Fluids { metaOrder.add(REDMUD); metaOrder.add(EGG); metaOrder.add(CHOLESTEROL); + metaOrder.add(CHLOROCALCITE_SOLUTION); + metaOrder.add(CHLOROCALCITE_MIX); + metaOrder.add(CHLOROCALCITE_CLEANED); + metaOrder.add(POTASSIUM_CHLORIDE); + metaOrder.add(CALCIUM_CHLORIDE); + metaOrder.add(CALCIUM_SOLUTION); //solutions and working fluids metaOrder.add(FRACKSOL); //the fun guys diff --git a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java index f05689475..248073743 100644 --- a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java @@ -398,6 +398,16 @@ public class ChemplantRecipes extends SerializableRecipe { new OreDictStack(ANY_PLASTIC.ingot(), 1)) .inputFluids(new FluidStack(Fluids.MUSTARDGAS, 4000)) .outputItems(new ItemStack(ModItems.ammo_arty, 1, 11))); + recipes.add(new ChemRecipe(101, "CC_CENTRIFUGE", 200) + .inputFluids(new FluidStack(Fluids.CHLOROCALCITE_CLEANED, 500), new FluidStack(Fluids.WATER, 1_000)) + .outputFluids(new FluidStack(Fluids.POTASSIUM_CHLORIDE, 250), new FluidStack(Fluids.CALCIUM_CHLORIDE, 250))); + recipes.add(new ChemRecipe(102, "PC_ELECTROLYSIS", 200) + .inputFluids(new FluidStack(Fluids.POTASSIUM_CHLORIDE, 250)) + .outputItems(new ItemStack(ModItems.dust)) + .outputFluids(new FluidStack(Fluids.CHLORINE, 125))); + recipes.add(new ChemRecipe(103, "CC_ELECTROLYSIS", 200) + .inputFluids(new FluidStack(Fluids.CALCIUM_CHLORIDE, 250)) + .outputFluids(new FluidStack(Fluids.CHLORINE, 125), new FluidStack(Fluids.CALCIUM_SOLUTION, 125))); } public static void registerFuelProcessing() { diff --git a/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java b/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java index 7dad7530d..3696d82d4 100644 --- a/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java @@ -59,6 +59,7 @@ public class CokerRecipes extends SerializableRecipe { registerRecipe(REDMUD, 1_000, new ItemStack(Items.iron_ingot, 2), new FluidStack(MERCURY, 50)); registerRecipe(BITUMEN, 16_000, DictFrame.fromOne(ModItems.coke, EnumCokeType.PETROLEUM), new FluidStack(OIL_COKER, 1_600)); registerRecipe(LUBRICANT, 12_000, DictFrame.fromOne(ModItems.coke, EnumCokeType.PETROLEUM), new FluidStack(OIL_COKER, 1_200)); + registerRecipe(CALCIUM_SOLUTION, 125, new ItemStack(ModItems.powder_calcium), new FluidStack(SPENTSTEAM, 100)); } private static void registerAuto(FluidType fluid, FluidType type) { diff --git a/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java b/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java index 3442fcee4..f1d5d7658 100644 --- a/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java @@ -44,7 +44,7 @@ public class CombinationRecipes extends SerializableRecipe { recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.briquette, EnumBriquetteType.LIGNITE)), new Pair(DictFrame.fromOne(ModItems.coke, EnumCokeType.LIGNITE), new FluidStack(Fluids.COALCREOSOTE, 100))); recipes.put(CINNABAR.crystal(), new Pair(new ItemStack(ModItems.sulfur), new FluidStack(Fluids.MERCURY, 100))); - recipes.put(CHLOROCALCITE.dust(), new Pair(new ItemStack(ModItems.powder_calcium), new FluidStack(Fluids.CHLORINE, 250))); + //recipes.put(CHLOROCALCITE.dust(), new Pair(new ItemStack(ModItems.powder_calcium), new FluidStack(Fluids.CHLORINE, 250))); recipes.put(new ComparableStack(Items.glowstone_dust), new Pair(new ItemStack(ModItems.sulfur), new FluidStack(Fluids.CHLORINE, 50))); recipes.put(new ComparableStack(DictFrame.fromOne(ModBlocks.stone_resource, EnumStoneType.BAUXITE)), new Pair(new ItemStack(ModItems.ingot_aluminium, 2), new FluidStack(Fluids.REDMUD, 250))); diff --git a/src/main/java/com/hbm/inventory/recipes/FractionRecipes.java b/src/main/java/com/hbm/inventory/recipes/FractionRecipes.java index 00f49aeae..b3b673a6a 100644 --- a/src/main/java/com/hbm/inventory/recipes/FractionRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/FractionRecipes.java @@ -63,6 +63,7 @@ public class FractionRecipes extends SerializableRecipe { fractions.put(Fluids.OIL_COKER, new Pair(new FluidStack(Fluids.CRACKOIL, 30), new FluidStack(Fluids.HEATINGOIL, 70))); fractions.put(Fluids.NAPHTHA_COKER, new Pair(new FluidStack(Fluids.NAPHTHA_CRACK, 75), new FluidStack(Fluids.LIGHTOIL_CRACK, 25))); fractions.put(Fluids.GAS_COKER, new Pair(new FluidStack(Fluids.AROMATICS, 25), new FluidStack(Fluids.CARBONDIOXIDE, 75))); + fractions.put(Fluids.CHLOROCALCITE_MIX, new Pair(new FluidStack(Fluids.CHLOROCALCITE_CLEANED, 50), new FluidStack(Fluids.COLLOID, 50))); } public static Pair getFractions(FluidType oil) { diff --git a/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java b/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java index e9bcf6ffc..0a68397d6 100644 --- a/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java @@ -76,6 +76,10 @@ public class MixerRecipes extends SerializableRecipe { register(Fluids.DIESEL_REFORM, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.DIESEL, 900)).setStack2(new FluidStack(Fluids.REFORMATE, 100))); register(Fluids.DIESEL_CRACK_REFORM, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.DIESEL_CRACK, 900)).setStack2(new FluidStack(Fluids.REFORMATE, 100))); register(Fluids.KEROSENE_REFORM, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.KEROSENE, 900)).setStack2(new FluidStack(Fluids.REFORMATE, 100))); + + + register(Fluids.CHLOROCALCITE_SOLUTION, new MixerRecipe(500, 50).setStack1(new FluidStack(Fluids.WATER, 250)).setStack2(new FluidStack(Fluids.NITRIC_ACID, 250)).setSolid(new OreDictStack(CHLOROCALCITE.dust()))); + register(Fluids.CHLOROCALCITE_MIX, new MixerRecipe(1000, 50).setStack1(new FluidStack(Fluids.CHLOROCALCITE_SOLUTION, 500)).setStack2(new FluidStack(Fluids.SULFURIC_ACID, 500))); } public static void register(FluidType type, MixerRecipe... rec) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java index 1e7d206f2..9802070ac 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java @@ -293,6 +293,8 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyUser if(progress > this.duration) { + this.progress = 0; + if(slots[2] != null) { slots[2].stackSize++; } else { diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index a717921bf..90eda0803 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -178,6 +178,8 @@ chem.BALEFIRE=BF-Raketentreibstoffherstellung chem.BP_BIOFUEL=Biodieselumesterung chem.BP_BIOGAS=Biogasherstellung chem.C4=C4-Synthese +chem.CC_CENTRIFUGE=Chlorokalzitspaltung +chem.CC_ELECTROLYSIS=Kalziumchloridelektrolyse chem.CC_HEATING=Fortgeschrittene Kohleverflüssigung chem.CC_HEAVY=Einfache Kohleverflüssigung chem.CC_I=Erweiterte Kohleverflüssigung @@ -225,6 +227,7 @@ chem.NITAN=NITAN-Supertreibstoff mischen chem.NITRIC_ACID=Salpetersäureherstellung chem.OIL_SAND=Teersand-Extraktion chem.OSMIRIDIUM_DEATH=Osmiridiumlösung-Herstellung +chem.PC_ELECTROLYSIS=Kaliumchloridelektrolyse chem.PEROXIDE=Wasserstoffperoxidherstellung chem.PET=PET-Synthese chem.PETROIL_LEADED=Bleigemisch mischen @@ -605,8 +608,12 @@ hbmfluid.biogas=Biogas hbmfluid.bitumen=Bitumen hbmfluid.blood=Blut hbmfluid.blood_hot=Heißes Blut +hbmfluid.calcium_chloride=Kalziumchlorid-Lösung hbmfluid.carbondioxide=Kohlenstoffdioxid hbmfluid.chlorine=Chlorgas +hbmfluid.chlorocalcite_cleaned=Gereinigten Chlorokalzit-Lösung +hbmfluid.chlorocalcite_mix=Gemischte Chlorokalzit-Lösung +hbmfluid.chlorocalcite_solution=Chlorokalzit-Lösung hbmfluid.cholesterol=Cholesterinlösung hbmfluid.coalcreosote=Kohleteer-Kreosot hbmfluid.coalgas=Kohlebenzin @@ -678,6 +685,7 @@ hbmfluid.plasma_dt=Deuterium-Tritium-Plasma hbmfluid.plasma_hd=Wasserstoff-Deuterium-Plasma hbmfluid.plasma_ht=Wasserstoff-Tritium-Plasma hbmfluid.plasma_xm=Xenon-Quecksilber-Plasma +hbmfluid.potassium_chloride=Kaliumchlorid-Lösung hbmfluid.puf6=Plutoniumhexafluorid hbmfluid.radiosolvent=Hochleistungs-Lösungsmittel hbmfluid.reclaimed=Wiederaufbetreitetes Industrieöl diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index f8ad73e4a..bcc027726 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -465,6 +465,8 @@ chem.BALEFIRE=BF Rocket Fuel Mixing chem.BP_BIOFUEL=Biofuel Transesterification chem.BP_BIOGAS=Biogas Production chem.C4=C-4 Synthesis +chem.CC_CENTRIFUGE=Chlorocalcite Separation +chem.CC_ELECTROLYSIS=Calcium Chloride Electrolysis chem.CC_HEATING=Advanced Coal Liquefaction chem.CC_HEAVY=Basic Coal Liquefaction chem.CC_I=Enhanced Coal Liquefaction @@ -516,6 +518,7 @@ chem.NITAN=NITAN Super Fuel Mixing chem.NITRIC_ACID=Nitric Acid Production chem.OIL_SAND=Tar Sand Extraction chem.OSMIRIDIUM_DEATH=Osmiridic Solution Production +chem.PC_ELECTROLYSIS=Potassium Chloride Electrolysis chem.PEROXIDE=Hydrogen Peroxide Production chem.PET=PET Synthesis chem.PETROIL_LEADED=Leaded Petroil Mixing @@ -1177,8 +1180,12 @@ hbmfluid.biogas=Biogas hbmfluid.bitumen=Bitumen hbmfluid.blood=Blood hbmfluid.blood_hot=Hot Blood +hbmfluid.calcium_chloride=Calciumchloride Solution hbmfluid.carbondioxide=Carbon Dioxide hbmfluid.chlorine=Chlorine Gas +hbmfluid.chlorocalcite_cleaned=Cleaned Chlorocalcite Solution +hbmfluid.chlorocalcite_mix=Mixed Chlorocalcite Solution +hbmfluid.chlorocalcite_solution=Chlorocalcite Solution hbmfluid.cholesterol=Cholesterol Solution hbmfluid.coalcreosote=Coal Tar Creosote hbmfluid.coalgas=Coal Gasoline @@ -1250,6 +1257,7 @@ hbmfluid.plasma_dt=Deuterium-Tritium Plasma hbmfluid.plasma_hd=Hydrogen-Deuterium Plasma hbmfluid.plasma_ht=Hydrogen-Tritium Plasma hbmfluid.plasma_xm=Xenon-Mercury Plasma +hbmfluid.potassium_chloride=Potassiumchloride Solution hbmfluid.puf6=Plutonium Hexafluoride hbmfluid.radiosolvent=High-Performance Solvent hbmfluid.reclaimed=Reclaimed Industrial Oil diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/calcium_chloride.png b/src/main/resources/assets/hbm/textures/gui/fluids/calcium_chloride.png new file mode 100644 index 0000000000000000000000000000000000000000..f1ebd5aba4619ce2699a1d0678639c73f5345e78 GIT binary patch literal 708 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/chem_icon_PC_ELECTROLYSIS.png b/src/main/resources/assets/hbm/textures/items/chem_icon_PC_ELECTROLYSIS.png new file mode 100644 index 0000000000000000000000000000000000000000..7d41a1928783e9374879e92835040f9c73f0e714 GIT binary patch literal 171 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfEy=Isvj^1OC)U_CG9f`{;H{Wl3TN!%+r?U_ Date: Sat, 10 Jun 2023 21:57:52 -0500 Subject: [PATCH 109/432] added some stuff, removed some useless and stupid things --- .../machine/rbmk/TileEntityRBMKAbsorber.java | 26 +------------------ .../machine/rbmk/TileEntityRBMKBoiler.java | 18 ++++++------- .../machine/rbmk/TileEntityRBMKControl.java | 12 ++++----- .../rbmk/TileEntityRBMKControlManual.java | 2 +- .../machine/rbmk/TileEntityRBMKCooler.java | 10 +++---- .../machine/rbmk/TileEntityRBMKHeater.java | 18 ++++++------- .../machine/rbmk/TileEntityRBMKOutgasser.java | 12 ++++----- .../machine/rbmk/TileEntityRBMKReflector.java | 24 +---------------- .../machine/rbmk/TileEntityRBMKRod.java | 20 +++++++------- .../machine/rbmk/TileEntityRBMKStorage.java | 8 +++--- 10 files changed, 52 insertions(+), 98 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKAbsorber.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKAbsorber.java index 69610b38f..20512c206 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKAbsorber.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKAbsorber.java @@ -2,14 +2,8 @@ package com.hbm.tileentity.machine.rbmk; import com.hbm.entity.projectile.EntityRBMKDebris.DebrisType; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole.ColumnType; -import cpw.mods.fml.common.Optional; -import li.cil.oc.api.machine.Arguments; -import li.cil.oc.api.machine.Callback; -import li.cil.oc.api.machine.Context; -import li.cil.oc.api.network.SimpleComponent; -@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityRBMKAbsorber extends TileEntityRBMKBase implements SimpleComponent { +public class TileEntityRBMKAbsorber extends TileEntityRBMKBase { @Override public void onMelt(int reduce) { @@ -23,24 +17,6 @@ public class TileEntityRBMKAbsorber extends TileEntityRBMKBase implements Simple super.onMelt(reduce); } - @Override - public String getComponentName() { - return "rbmk_absorber_rod"; - } - - @Callback(direct = true, limit = 4) - @Optional.Method(modid = "OpenComputers") - public Object[] getHeat(Context context, Arguments args) { - return new Object[] {heat}; - } - - - @Callback(direct = true, limit = 4) - @Optional.Method(modid = "OpenComputers") - public Object[] getCoordinates(Context context, Arguments args) { - return new Object[] {xCoord, yCoord, zCoord}; - } - @Override public ColumnType getConsoleType() { return ColumnType.ABSORBER; diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java index 6c1a784e6..6faf888fa 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java @@ -332,41 +332,41 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I return "rbmk_boiler"; } - @Callback(direct = true, limit = 8) + @Callback(direct = true, limit = 16) @Optional.Method(modid = "OpenComputers") public Object[] getHeat(Context context, Arguments args) { return new Object[] {heat}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true, limit = 16) @Optional.Method(modid = "OpenComputers") public Object[] getSteam(Context context, Arguments args) { return new Object[] {steam.getFill()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true, limit = 16) @Optional.Method(modid = "OpenComputers") public Object[] getSteamMax(Context context, Arguments args) { return new Object[] {steam.getMaxFill()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true, limit = 16) @Optional.Method(modid = "OpenComputers") public Object[] getWater(Context context, Arguments args) { return new Object[] {feed.getFill()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true, limit = 16) @Optional.Method(modid = "OpenComputers") public Object[] getWaterMax(Context context, Arguments args) { return new Object[] {feed.getMaxFill()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true, limit = 16) @Optional.Method(modid = "OpenComputers") public Object[] getCoordinates(Context context, Arguments args) { return new Object[] {xCoord, yCoord, zCoord}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true, limit = 16) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { FluidType type = steam.getTankType(); @@ -379,7 +379,7 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I return new Object[] {heat, steam.getFill(), steam.getMaxFill(), feed.getFill(), feed.getMaxFill(), type_1, xCoord, yCoord, zCoord}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true, limit = 16) @Optional.Method(modid = "OpenComputers") public Object[] getSteamType(Context context, Arguments args) { FluidType type = steam.getTankType(); @@ -390,7 +390,7 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I else {return new Object[] {"Unknown Error"};} } - @Callback(direct = true, limit = 8) + @Callback(direct = true, limit = 16) @Optional.Method(modid = "OpenComputers") public Object[] setSteamType(Context context, Arguments args) { int type = args.checkInteger(0); diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControl.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControl.java index 8f23e5555..945638b7e 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControl.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControl.java @@ -126,37 +126,37 @@ public abstract class TileEntityRBMKControl extends TileEntityRBMKSlottedBase im return "rbmk_control_rod"; } - @Callback(direct = true, limit = 8) + @Callback(direct = true, limit = 16) @Optional.Method(modid = "OpenComputers") public Object[] getLevel(Context context, Arguments args) { return new Object[] {getMult() * 100}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true, limit = 16) @Optional.Method(modid = "OpenComputers") public Object[] getTargetLevel(Context context, Arguments args) { return new Object[] {targetLevel * 100}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true, limit = 16) @Optional.Method(modid = "OpenComputers") public Object[] getCoordinates(Context context, Arguments args) { return new Object[] {xCoord, yCoord, zCoord}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true, limit = 16) @Optional.Method(modid = "OpenComputers") public Object[] getHeat(Context context, Arguments args) { return new Object[] {heat}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true, limit = 16) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[] {heat, getMult() * 100, targetLevel * 100, xCoord, yCoord, zCoord}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true, limit = 16) @Optional.Method(modid = "OpenComputers") public Object[] setLevel(Context context, Arguments args) { double newLevel = args.checkDouble(0)/100.0; diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlManual.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlManual.java index d9fb3bfe0..f22e00b47 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlManual.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlManual.java @@ -133,7 +133,7 @@ public class TileEntityRBMKControlManual extends TileEntityRBMKControl implement return data; } - @Callback + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getColor(Context context, Arguments args) { return new Object[] {this.color}; diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCooler.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCooler.java index b82bc546b..8c15cd8d7 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCooler.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCooler.java @@ -149,31 +149,31 @@ public class TileEntityRBMKCooler extends TileEntityRBMKBase implements IFluidAc return "rbmk_cooler"; } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getHeat(Context context, Arguments args) { return new Object[]{heat}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getCryo(Context context, Arguments args) { return new Object[]{tank.getFill()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getCryoMax(Context context, Arguments args) { return new Object[]{tank.getMaxFill()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getCoordinates(Context context, Arguments args) { return new Object[] {xCoord, yCoord, zCoord}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[]{heat, tank.getFill(), tank.getMaxFill(), xCoord, yCoord, zCoord}; diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java index 3d408086d..618f41a96 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java @@ -280,54 +280,54 @@ public class TileEntityRBMKHeater extends TileEntityRBMKSlottedBase implements I return "rbmk_heater"; } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getHeat(Context context, Arguments args) { return new Object[] {heat}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getFill(Context context, Arguments args) { return new Object[] {feed.getFill()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getFillMax(Context context, Arguments args) { return new Object[] {feed.getMaxFill()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getExport(Context context, Arguments args) { return new Object[] {steam.getFill()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getExportMax(Context context, Arguments args) { return new Object[] {steam.getMaxFill()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getFillType(Context context, Arguments args) { return new Object[] {feed.getTankType().getID()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getExportType(Context context, Arguments args) { return new Object[] {steam.getTankType().getID()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[] {heat, feed.getFill(), feed.getMaxFill(), steam.getFill(), steam.getMaxFill(), feed.getTankType().getID(), steam.getTankType().getID(), xCoord, yCoord, zCoord}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getCoordinates(Context context, Arguments args) { return new Object[] {xCoord, yCoord, zCoord}; diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java index 8e3f71a6a..8dbaa6360 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java @@ -226,37 +226,37 @@ public class TileEntityRBMKOutgasser extends TileEntityRBMKSlottedBase implement return "rbmk_outgasser"; } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getGas(Context context, Arguments args) { return new Object[] {gas.getFill()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getGasMax(Context context, Arguments args) { return new Object[] {gas.getMaxFill()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getGasType(Context context, Arguments args) { return new Object[] {gas.getTankType().getID()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getProgress(Context context, Arguments args) { return new Object[] {progress}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getCoordinates(Context context, Arguments args) { return new Object[] {xCoord, yCoord, zCoord}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[] {gas.getFill(), gas.getMaxFill(), progress, gas.getTankType().getID(), xCoord, yCoord, zCoord}; diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKReflector.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKReflector.java index 91ab94a89..ed5b1afc0 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKReflector.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKReflector.java @@ -2,14 +2,8 @@ package com.hbm.tileentity.machine.rbmk; import com.hbm.entity.projectile.EntityRBMKDebris.DebrisType; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole.ColumnType; -import cpw.mods.fml.common.Optional; -import li.cil.oc.api.machine.Arguments; -import li.cil.oc.api.machine.Callback; -import li.cil.oc.api.machine.Context; -import li.cil.oc.api.network.SimpleComponent; -@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityRBMKReflector extends TileEntityRBMKBase implements SimpleComponent { +public class TileEntityRBMKReflector extends TileEntityRBMKBase { @Override public void onMelt(int reduce) { @@ -22,22 +16,6 @@ public class TileEntityRBMKReflector extends TileEntityRBMKBase implements Simpl super.onMelt(reduce); } - @Override - public String getComponentName() { - return "rbmk_reflector_rod"; - } - - @Callback(direct = true, limit = 4) - @Optional.Method(modid = "OpenComputers") - public Object[] getHeat(Context context, Arguments args) { - return new Object[] {heat}; - } - - @Callback(direct = true, limit = 4) - @Optional.Method(modid = "OpenComputers") - public Object[] getCoordinates(Context context, Arguments args) { - return new Object[] {xCoord, yCoord, zCoord}; - } @Override public ColumnType getConsoleType() { diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java index f02f229ca..38aab6d83 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java @@ -384,25 +384,25 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM return "rbmk_fuel_rod"; } - @Callback(direct = true, limit = 8) + @Callback(direct = true, limit = 16) @Optional.Method(modid = "OpenComputers") public Object[] getHeat(Context context, Arguments args) { return new Object[] {heat}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true, limit = 16) @Optional.Method(modid = "OpenComputers") public Object[] getFluxSlow(Context context, Arguments args) { return new Object[] {fluxSlow}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true, limit = 16) @Optional.Method(modid = "OpenComputers") public Object[] getFluxFast(Context context, Arguments args) { return new Object[] {fluxFast}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true, limit = 16) @Optional.Method(modid = "OpenComputers") public Object[] getDepletion(Context context, Arguments args) { if(slots[0] != null && slots[0].getItem() instanceof ItemRBMKRod) { @@ -411,7 +411,7 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM return new Object[] {"N/A"}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true, limit = 16) @Optional.Method(modid = "OpenComputers") public Object[] getXenonPoison(Context context, Arguments args) { if(slots[0] != null && slots[0].getItem() instanceof ItemRBMKRod) { @@ -420,7 +420,7 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM return new Object[] {"N/A"}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true, limit = 16) @Optional.Method(modid = "OpenComputers") public Object[] getCoreHeat(Context context, Arguments args) { if(slots[0] != null && slots[0].getItem() instanceof ItemRBMKRod) { @@ -429,7 +429,7 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM return new Object[] {"N/A"}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true, limit = 16) @Optional.Method(modid = "OpenComputers") public Object[] getSkinHeat(Context context, Arguments args) { if(slots[0] != null && slots[0].getItem() instanceof ItemRBMKRod) { @@ -438,7 +438,7 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM return new Object[] {"N/A"}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true, limit = 16) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { Object OC_enrich_buf; @@ -453,13 +453,13 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM return new Object[] {heat, ItemRBMKRod.getHullHeat(slots[0]), ItemRBMKRod.getCoreHeat(slots[0]), fluxSlow, fluxFast, OC_enrich_buf, OC_poison_buf, ((RBMKRod)this.getBlockType()).moderated, xCoord, yCoord, zCoord}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true, limit = 16) @Optional.Method(modid = "OpenComputers") public Object[] getModerated(Context context, Arguments args) { return new Object[] {((RBMKRod)this.getBlockType()).moderated}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true, limit = 16) @Optional.Method(modid = "OpenComputers") public Object[] getCoordinates(Context context, Arguments args) { return new Object[] {xCoord, yCoord, zCoord}; diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKStorage.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKStorage.java index 11fba927a..baa22c2c3 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKStorage.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKStorage.java @@ -95,26 +95,26 @@ public class TileEntityRBMKStorage extends TileEntityRBMKSlottedBase implements public String getComponentName() { return "rbmk_storage_rod"; } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getCoordinates(Context context, Arguments args) { return new Object[] {xCoord, yCoord, zCoord}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getHeat(Context context, Arguments args) { return new Object[] {heat}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getStored(Context context, Arguments args) { return new Object[] {slots[0], slots[1], slots[2], slots[3], slots[4], slots[5], slots[6], slots[7], slots[8], slots[9], slots[10], slots[11]}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[] {heat, slots[0], slots[1], slots[2], slots[3], slots[4], slots[5], slots[6], slots[7], slots[8], slots[9], slots[10], slots[11], xCoord, yCoord, zCoord}; From c050e099af9ab701b1d106ef37f7d61b1cfa1a59 Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Sat, 10 Jun 2023 22:30:15 -0500 Subject: [PATCH 110/432] Urgent: `getInfo` function for fuel rods was fucked, and returned an unknown error when invoked. Fixed in this commit. --- .../hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java index 38aab6d83..f13f34952 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java @@ -443,14 +443,20 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM public Object[] getInfo(Context context, Arguments args) { Object OC_enrich_buf; Object OC_poison_buf; + Object OC_hull_buf; + Object OC_core_buf; if(slots[0] != null && slots[0].getItem() instanceof ItemRBMKRod) { OC_enrich_buf = ItemRBMKRod.getEnrichment(slots[0]); OC_poison_buf = ItemRBMKRod.getPoison(slots[0]); + OC_hull_buf = ItemRBMKRod.getHullHeat(slots[0]); + OC_core_buf = ItemRBMKRod.getCoreHeat(slots[0]); } else { OC_enrich_buf = "N/A"; OC_poison_buf = "N/A"; + OC_hull_buf = "N/A"; + OC_core_buf = "N/A"; } - return new Object[] {heat, ItemRBMKRod.getHullHeat(slots[0]), ItemRBMKRod.getCoreHeat(slots[0]), fluxSlow, fluxFast, OC_enrich_buf, OC_poison_buf, ((RBMKRod)this.getBlockType()).moderated, xCoord, yCoord, zCoord}; + return new Object[] {heat, OC_hull_buf, OC_core_buf, fluxSlow, fluxFast, OC_enrich_buf, OC_poison_buf, ((RBMKRod)this.getBlockType()).moderated, xCoord, yCoord, zCoord}; } @Callback(direct = true, limit = 16) From 41648d4f68a4c28e06fc41d5fcad9f7513be47a9 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 11 Jun 2023 17:01:33 +0200 Subject: [PATCH 111/432] fixes, rail stuff --- changelog | 6 +++++- .../java/com/hbm/crafting/ToolRecipes.java | 1 + .../hbm/entity/train/EntityRailCarBase.java | 1 + .../hbm/entity/train/EntityRailCarCargo.java | 2 ++ .../hbm/items/tool/ItemPollutionDetector.java | 8 ++++---- src/main/java/com/hbm/potion/HbmPotion.java | 18 +++--------------- .../machine/storage/TileEntityBarrel.java | 2 ++ src/main/resources/assets/hbm/lang/de_DE.lang | 3 +++ src/main/resources/assets/hbm/lang/en_US.lang | 3 +++ 9 files changed, 24 insertions(+), 20 deletions(-) diff --git a/changelog b/changelog index 697dbb496..dcd735e35 100644 --- a/changelog +++ b/changelog @@ -1,5 +1,6 @@ ## Added * Machines now emit soot. Soot collects in units of 4x4 chunks, and spreads into neighboring regions. High levels of soot cause visible smog. + * The system has yet to be balanced, it's possible that only a few machines cause way too much soot or barely any * Gas artillery shells * Chlorine * Phosgene @@ -26,4 +27,7 @@ * Fixed some armor recipes only accepting polymer and not bakelite * Fixed turbofans not sucking in players * Fixed NTM skybox not applying to superflat worlds -* Fixed breeding slot in the fusion reactor never resettingthe progress after completing an operation \ No newline at end of file +* Fixed breeding slot in the fusion reactor never resettingthe progress after completing an operation +* Fixed potential issue where tanks would send fluids to invalidated tile entities, voiding themselves almost instantly +* Fixed cadmium and technetium steel blocks not having ore dict names +* Fixed potential crash regarding certain potion code running clientside \ No newline at end of file diff --git a/src/main/java/com/hbm/crafting/ToolRecipes.java b/src/main/java/com/hbm/crafting/ToolRecipes.java index 91ddd5338..7577f03d9 100644 --- a/src/main/java/com/hbm/crafting/ToolRecipes.java +++ b/src/main/java/com/hbm/crafting/ToolRecipes.java @@ -119,6 +119,7 @@ public class ToolRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.dosimeter, 1), new Object[] { "WGW", "WCW", "WBW", 'W', KEY_PLANKS, 'G', KEY_ANYPANE, 'C', ModItems.circuit_aluminium, 'B', BE.ingot() }); CraftingManager.addShapelessAuto(new ItemStack(ModBlocks.geiger), new Object[] { ModItems.geiger_counter }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.digamma_diagnostic), new Object[] { ModItems.geiger_counter, PO210.billet(), ASBESTOS.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.pollution_detector, 1), new Object[] { "SFS", "SCS", " S ", 'S', STEEL.plate(), 'F', ModItems.filter_coal, 'C', ModItems.circuit_copper }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.defuser, 1), new Object[] { " PS", "P P", " P ", 'P', POLYMER.ingot(), 'S', STEEL.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.coltan_tool, 1), new Object[] { "ACA", "CXC", "ACA", 'A', ALLOY.ingot(), 'C', CINNABAR.crystal(), 'X', Items.compass }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.reacher, 1), new Object[] { "BIB", "P P", "B B", 'B', ModItems.bolt_tungsten, 'I', W.ingot(), 'P', ModItems.plate_polymer }); diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java index 2f0a97813..afd7b25ab 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java @@ -224,6 +224,7 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { DummyConfig def = definitions[i]; BoundingBoxDummyEntity dummy = dummies[i]; Vec3 rot = Vec3.createVectorHelper(def.offset.xCoord, def.offset.yCoord, def.offset.zCoord); + rot.rotateAroundX((float) (this.rotationPitch * Math.PI / 180D)); rot.rotateAroundY((float) (-this.rotationYaw * Math.PI / 180)); double x = renderX + rot.xCoord; double y = renderY + rot.yCoord; diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarCargo.java b/src/main/java/com/hbm/entity/train/EntityRailCarCargo.java index 31823285b..4bf5f2ee2 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarCargo.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarCargo.java @@ -82,6 +82,8 @@ public abstract class EntityRailCarCargo extends EntityRailCarBase implements II if(stack != null && stack.stackSize > this.getInventoryStackLimit()) { stack.stackSize = this.getInventoryStackLimit(); } + + if(!this.worldObj.isRemote) this.dataWatcher.updateObject(10, this.countVacantSlots()); } @Override diff --git a/src/main/java/com/hbm/items/tool/ItemPollutionDetector.java b/src/main/java/com/hbm/items/tool/ItemPollutionDetector.java index ef45af10d..5b0d27663 100644 --- a/src/main/java/com/hbm/items/tool/ItemPollutionDetector.java +++ b/src/main/java/com/hbm/items/tool/ItemPollutionDetector.java @@ -24,9 +24,9 @@ public class ItemPollutionDetector extends Item { PollutionData data = PollutionHandler.getPollutionData(world, (int) Math.floor(entity.posX), (int) Math.floor(entity.posY), (int) Math.floor(entity.posZ)); if(data == null) data = new PollutionData(); - PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Soot: " + data.pollution[PollutionType.SOOT.ordinal()]).color(EnumChatFormatting.RED).flush(), 100), (EntityPlayerMP) entity); - PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Poison: " + data.pollution[PollutionType.POISON.ordinal()]).color(EnumChatFormatting.RED).flush(), 101), (EntityPlayerMP) entity); - PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Heavy metal: " + data.pollution[PollutionType.HEAVYMETAL.ordinal()]).color(EnumChatFormatting.RED).flush(), 102), (EntityPlayerMP) entity); - PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Fallout: " + data.pollution[PollutionType.FALLOUT.ordinal()]).color(EnumChatFormatting.RED).flush(), 103), (EntityPlayerMP) entity); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Soot: " + data.pollution[PollutionType.SOOT.ordinal()]).color(EnumChatFormatting.YELLOW).flush(), 100, 2000), (EntityPlayerMP) entity); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Poison: " + data.pollution[PollutionType.POISON.ordinal()]).color(EnumChatFormatting.YELLOW).flush(), 101, 2000), (EntityPlayerMP) entity); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Heavy metal: " + data.pollution[PollutionType.HEAVYMETAL.ordinal()]).color(EnumChatFormatting.YELLOW).flush(), 102, 2000), (EntityPlayerMP) entity); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Fallout: " + data.pollution[PollutionType.FALLOUT.ordinal()]).color(EnumChatFormatting.YELLOW).flush(), 103, 2000), (EntityPlayerMP) entity); } } diff --git a/src/main/java/com/hbm/potion/HbmPotion.java b/src/main/java/com/hbm/potion/HbmPotion.java index 48031fddf..7d5855009 100644 --- a/src/main/java/com/hbm/potion/HbmPotion.java +++ b/src/main/java/com/hbm/potion/HbmPotion.java @@ -99,6 +99,8 @@ public class HbmPotion extends Potion { } public void performEffect(EntityLivingBase entity, int level) { + + if(entity.worldObj.isRemote) return; if(this == taint) { @@ -123,7 +125,6 @@ public class HbmPotion extends Potion { ContaminationUtil.contaminate(entity, HazardType.RADIATION, ContaminationType.CREATIVE, (float)(level + 1F) * 0.05F); } if(this == radaway) { - HbmLivingProps.incrementRadiation(entity, -(level + 1)); } @@ -145,22 +146,9 @@ public class HbmPotion extends Potion { } } if(this == lead) { - entity.attackEntityFrom(ModDamageSource.lead, (level + 1)); } - /*if(this == telekinesis) { - - int remaining = entity.getActivePotionEffect(this).getDuration(); - - if(remaining > 1) { - entity.motionY = 0.5; - } else { - entity.motionY = -2; - entity.fallDistance = 50; - } - }*/ - if(this == phosphorus && !entity.worldObj.isRemote) { - + if(this == phosphorus) { entity.setFire(1); } } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java index e8f941496..d0bb7e4f8 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java @@ -136,6 +136,8 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc if(fill > 0 && send) { List con = new ArrayList(); con.addAll(consumers); + + con.removeIf(x -> x == null || !(x instanceof TileEntity) || ((TileEntity)x).isInvalid()); if(PipeNet.trackingInstances == null) { PipeNet.trackingInstances = new ArrayList(); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 90eda0803..a92874167 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -609,6 +609,7 @@ hbmfluid.bitumen=Bitumen hbmfluid.blood=Blut hbmfluid.blood_hot=Heißes Blut hbmfluid.calcium_chloride=Kalziumchlorid-Lösung +hbmfluid.calcium_solution=Kalzium-Lösung hbmfluid.carbondioxide=Kohlenstoffdioxid hbmfluid.chlorine=Chlorgas hbmfluid.chlorocalcite_cleaned=Gereinigten Chlorokalzit-Lösung @@ -2633,6 +2634,7 @@ item.plate_schrabidium.name=Schrabidiumplatte item.plate_steel.name=Stahlplatte item.plate_titanium.name=Titanplatte item.polaroid.name=Das Polaroid +item.pollution_detector.name=Verschmutzungsdetektor item.powder_actinium.name=Actiniumstaub item.powder_actinium_tiny.name=Kleiner Haufen Actiniumstaub item.powder_advanced_alloy.name=Fortgeschrittener Legierungsstaub @@ -3599,6 +3601,7 @@ tile.capacitor_bus.desc=Output für Kondensatoren$Kann in einer geraden Linie an tile.capacitor_copper.name=Kupferkondensator tile.capacitor_gold.name=Goldkondensator tile.capacitor_niobium.name=Niobkondensator +tile.capacitor_tantalium.name=Tantalkondensator tile.capacitor.desc=Input: Oben$Output: Unten, über Kondensator-Bus tile.charge_c4.name=Abrissladung tile.charge_dynamite.name=Zeitbombe diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index bcc027726..a7feb2556 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1181,6 +1181,7 @@ hbmfluid.bitumen=Bitumen hbmfluid.blood=Blood hbmfluid.blood_hot=Hot Blood hbmfluid.calcium_chloride=Calciumchloride Solution +hbmfluid.calcium_solution=Calcium Solution hbmfluid.carbondioxide=Carbon Dioxide hbmfluid.chlorine=Chlorine Gas hbmfluid.chlorocalcite_cleaned=Cleaned Chlorocalcite Solution @@ -3359,6 +3360,7 @@ item.plate_schrabidium.name=Schrabidium Plate item.plate_steel.name=Steel Plate item.plate_titanium.name=Titanium Plate item.polaroid.name=The Polaroid +item.pollution_detector.name=Pollution Detector item.powder_actinium.name=Actinium Powder item.powder_actinium_tiny.name=Tiny Pile of Actinium Powder item.powder_advanced_alloy.name=Advanced Alloy Powder @@ -4417,6 +4419,7 @@ tile.capacitor_bus.desc=Output block for capacitors$Can be chained up in a strai tile.capacitor_copper.name=Copper Capacitor tile.capacitor_gold.name=Golden Capacitor tile.capacitor_niobium.name=Niobium Capacitor +tile.capacitor_tantalium.name=Tantalium Capacitor tile.capacitor.desc=Input: Top$Output: Bottom, via Capacitor Bus tile.charge_c4.name=Demolition Charge tile.charge_dynamite.name=Time Bomb From 692c8acc4599b70a1a63b889fd9e9314a722ec5c Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 11 Jun 2023 17:08:16 +0200 Subject: [PATCH 112/432] localization --- changelog | 2 +- gradle.properties | 2 +- src/main/java/com/hbm/lib/RefStrings.java | 2 +- src/main/resources/assets/hbm/lang/zh_CN.lang | 4986 ++++++++--------- 4 files changed, 2474 insertions(+), 2518 deletions(-) diff --git a/changelog b/changelog index dcd735e35..4af358249 100644 --- a/changelog +++ b/changelog @@ -16,7 +16,7 @@ * Like regular bullets stamps but with infinite durability ## Changed -* Updated russian localization +* Updated russian and chinese localization * Mist now spawns cloud particles with the correct color instead of standard white * HE artillery shells and rockets now turn blocks into slag * The old static bunker structure has been removed and replaced with dynamically generated ones, using the same style of generation as vanilla strongholds. diff --git a/gradle.properties b/gradle.properties index 4c35fac9e..2f43c1817 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4621 +mod_build_number=4627 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 3d65e0ba6..4e3d4bdfc 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4621)"; + public static final String VERSION = "1.0.27 BETA (4627)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/resources/assets/hbm/lang/zh_CN.lang b/src/main/resources/assets/hbm/lang/zh_CN.lang index a8de55f52..8876e8c0f 100644 --- a/src/main/resources/assets/hbm/lang/zh_CN.lang +++ b/src/main/resources/assets/hbm/lang/zh_CN.lang @@ -1,263 +1,212 @@ -achievement.acidizer.desc=嗷!我的皮肤! -achievement.acidizer=酸性的 -achievement.assembly.desc=等等,已经凌晨1点了? -achievement.assembly=科技线 第一阶段 -achievement.FOEQ.desc=向火星发射一个探测器…我是说发射到杜纳安轨道 +achievement.acidizer.desc=噢,我的皮肤 +achievement.acidizer=酸 +achievement.assembly.desc=Bobmazon 2级 (装配机) +achievement.assembly=制作 +achievement.FOEQ.desc=向火星传送信号!...其实我是说Duna achievement.FOEQ=飞马座运载火箭和发射架 -achievement.breeding.desc=谢谢你们啊,上帝保佑你们,上帝保佑美利坚合众国. -achievement.breeding=阴阳怪气 -achievement.bismuth.desc=还记得人们为此抱怨了一个月吗? 我记得. +achievement.breeding.desc=谢谢你们,上帝保佑你们,上帝保佑美利坚合众国。 +achievement.breeding=反话 +achievement.bismuth.desc=还记得有人抱怨了一个月吗?我愿意。 achievement.bismuth=铋 -achievement.blastFurnace.desc=他们为探险家1号打捞了一艘沉没的无畏舰. +achievement.blastFurnace.desc=他们为制造探险家1号去打捞了一艘沉没的无畏舰。 achievement.blastFurnace=煤和铁 -achievement.bossCreeper.desc='核爆爬行者? 那是啥玩意?!' -achievement.bossCreeper=四条腿上行走的核弹 -achievement.bossMaskman.desc=干♂爆那个大家伙. -achievement.bossMaskman=我被强制服役了6个月,到头来只得到一件糟糕的T恤 -achievement.bossMeltdown.desc=这可比预想的还要糟, 但我会尽我所能的. +achievement.bossCreeper.desc=核爆爬行者? 那是个什么玩意?! +achievement.bossCreeper=四条腿的行走核弹 +achievement.bossMaskman.desc=大男孩邦克 +achievement.bossMaskman=6个月的强制服务,我只得到一件糟糕的t恤 +achievement.bossMeltdown.desc=比伟大更可怕,但我会竭尽所能 achievement.bossMeltdown=3.6伦琴 -achievement.bossWorm.desc=用绝学法杖.我的屁股.你来算这个吧. -achievement.bossWorm=拆了 世-界-毁-灭-者 O-TRON -achievement.bossUFO.desc=哟,瞧瞧我们这儿有什么?一艘巨大的宇宙飞船正开向我们的星球? -achievement.bossUFO=Ayy Lmao -achievement.burnerPress.desc=压力压在我身上,也压在你身上 +achievement.bossWorm.desc=法布斯塔夫。我的屁股。你算算吧。 +achievement.bossWorm=拆掉机械蠕虫 +achievement.bossUFO.desc=哟,我们这儿有什么?一艘巨大的宇宙飞船正开向我们的星球? +achievement.bossUFO=呀哈哈哈,笑死我了 +achievement.burnerPress.desc=压力压在你我身上 achievement.burnerPress=压力之下 achievement.c20_5.desc=??? achievement.c20_5=第20.5章 achievement.c44.desc=镀锌!我是说,锌! achievement.c44=第四十四章 -achievement.centrifuge.desc=离心力是真的不要再@我了 -achievement.centrifuge=离心力 -achievement.chemplant.desc=现在你开始考虑化学物质了! -achievement.chemplant=科技线 第二阶段 -achievement.chicagoPile.desc="当地人怎么样?" / "非常友好." +achievement.centrifuge.desc=离心力是假的,不要再@我了 +achievement.centrifuge=向心力 +achievement.chemplant.desc=现在你在考虑化学物质! +achievement.chemplant=这家工厂正在成长。Pt.2 +achievement.chicagoPile.desc=“当地人怎么样?”“非常友好。” achievement.chicagoPile=领航员在新大陆着陆 -achievement.concrete.desc=一个布尔什维克的最爱. -achievement.concrete=老了但仍然可靠 -achievement.desh.desc="来吧,你们这群人. 有地方可去了!" -achievement.desh= 勒威耶 -achievement.digammaFeel.desc=内心的空虚. -achievement.digammaFeel=感受的恐惧 -achievement.digammaKauaiMoho.desc=这一切都糟透了不是吗,这里有些热巧克力. -achievement.digammaKauaiMoho=唱吧, 唱给我听那首最后一只奥亚吸蜜鸟之歌...... -achievement.digammaKnow.desc=这个世界的意义是什么. +achievement.concrete.desc=布尔什维克的最爱。 +achievement.concrete=老当益壮 +achievement.desh.desc=“来吧,你们这群人。有地方可去!” +achievement.desh=勒威耶 +achievement.digammaFeel.desc=内心的空虚 +achievement.digammaFeel=感觉的恐惧 +achievement.digammaKauaiMoho.desc=一切都糟透了,这里有些热巧克力 +achievement.digammaKauaiMoho=歌唱,为我歌唱《Kauai Moho》 +achievement.digammaKnow.desc=关于这个世界 achievement.digammaKnow=知晓的恐惧 -achievement.digammaSee.desc=坠入深渊. -achievement.digammaSee=直视真理的恐惧 +achievement.digammaSee.desc=坠入深渊 +achievement.digammaSee=可见的恐惧 achievement.digammaUpOnTop.desc=仰慕我的儿子,他是我的克隆人. achievement.digammaUpOnTop=仰慕我,仰慕我的家 achievement.fiend.desc=卑鄙 achievement.fiend2.desc=更卑鄙 -achievement.fiend2=残忍2:更加残忍 +achievement.fiend2=残忍2:更残忍 achievement.fiend=残忍 achievement.freytag.desc=英勇的救生员 achievement.freytag=弗雷塔格 -achievement.fusion.desc=氘核, 氚核和能量之舞. -achievement.fusion=热核聚变反应 -achievement.gasCent.desc=未浓缩的铀讨厌他! -achievement.gasCent=拉链式 -achievement.hidden.desc=使用一节坠落的车厢杀死一只污染爬行者 +achievement.fusion.desc=氘核、海卫一与能量的舞蹈。 +achievement.fusion=聚合 +achievement.gasCent.desc=贫铀讨厌他! +achievement.gasCent=链式 +achievement.goFish.desc=航海十字架 +achievement.goFish=去钓鱼 +achievement.hidden.desc=使用一节坠落的车厢杀死一只污染苦力怕 achievement.hidden=隐藏目录 -achievement.horizonsBonus.desc=噢老天爷你到底什么毛病?! +achievement.horizonsBonus.desc=说实话,你到底怎么了 achievement.horizonsBonus=地平线! -achievement.horizonsEnd.desc=送汤姆回家. -achievement.horizonsEnd=地平线. +achievement.horizonsEnd.desc=送他回家 +achievement.horizonsEnd=地平线。 achievement.horizonsStart.desc=将一个小伙子送上月球 achievement.horizonsStart=地平线? achievement.impossible.desc=你不可能取得该成就 achievement.impossible=简直不可能 -achievement.inferno.desc="把它化为灰烬! 这还不够! 投更多炸弹下去!" -achievement.inferno=食人者行动 -achievement.manhattan.desc=8:15; 八月六日, 1945 +achievement.inferno.desc=“把它变成灰烬!这还不够!投更多的炸弹!” +achievement.inferno=食人行动 +achievement.manhattan.desc=1945年8月6日 8:15 achievement.manhattan=曼哈顿计划 -achievement.meltdown.desc=你都走到了这一步,怎么还能把事情搞砸? -achievement.no9.desc="我希望我开采的铅能被用于你的绘画" -achievement.no9=老九号 -achievement.meltdown="快速"拆卸 -achievement.metalworks.desc=Bobmazon 1级 (高炉) -achievement.metalworks=金属制品 -achievement.nuclear.desc=Bobmazon 5级 (铀燃料) -achievement.nuclear=原子科学 -achievement.oil.desc=Bobmazon 4级 (电锅炉) -achievement.oil=石油 -achievement.omega12.desc=解决在这个荒凉的的星球上继续生存的问题. -achievement.omega12=欧米伽-12号粒子加速器 -achievement.polymer.desc=美味,美味的微塑料. -achievement.polymer=特氟隆 聚四氟乙烯 +achievement.meltdown.desc=你走了这么远,怎么能把事情搞砸? +achievement.meltdown=快速非计划拆卸 +achievement.no9.desc=“我希望我开采的铅能被用在你的油漆里” +achievement.no9=旧数字9 +achievement.omega12.desc=解决在这个可怜的星球上继续生存的问题 +achievement.omega12=欧米茄-12粒子加速器 +achievement.polymer.desc=美味、美味的微塑料。 +achievement.polymer=特氟隆 achievement.potato.desc=你居然捅我!你怎—喔哦哦哦哦哦! -achievement.potato=智 械 危 机(流氓AI) -achievement.radDeath.desc=居里夫人开创了放射性理论, 放射性治疗和放射性死亡。。。。 +achievement.potato=流氓AI +achievement.radDeath.desc=居里夫人开创了放射性理论、放射性治疗和放射性死亡。。。。 achievement.radDeath=噢, 辐射! achievement.radium.desc=你 因 为 往 我 的 咖 啡 里 倒 镭 而 被 解 雇 了 ! achievement.radium=不可思议先生 achievement.radPoison.desc=受辐射中毒的影响 achievement.radPoison=呀, 辐射! -achievement.RBMKBoom.desc=谎言的代价是什么? -achievement.RBMKBoom=是15000伦琴的辐射. -achievement.RBMK.desc=他有妄想症,带他去医院. -achievement.RBMK=3.6伦琴? -achievement.redBalloons.desc="这就是我们一直在等待的. 就这样, 小伙子们, 这就是战争." -achievement.redBalloons=99只红气球 -achievement.sacrifice.desc=直面火海,活下去. +achievement.RBMKBoom.desc=谎言的代价是什么? +achievement.RBMKBoom=是15000伦琴辐射 +achievement.RBMK.desc=他有妄想症,带他去医务室。 +achievement.RBMK=3.6伦琴? +achievement.redBalloons.desc=“这就是我们一直在等待的。就是这样,孩子们,这就是战争。” +achievement.redBalloons=99个红气球 +achievement.sacrifice.desc=直面火海并存活 achievement.sacrifice=牺牲 -achievement.schrab.desc=不管怎样,我不会看这玩意太久. +achievement.schrab.desc=不管怎样,我不会看太久。 achievement.schrab=稳定岛 -achievement.selenium.desc=是啊. -achievement.selenium=XVIII 号月神 -achievement.SILEX.desc=它比它听上去要更酷, 我保证. -achievement.SILEX=激光激发分离同位素 -achievement.slimeball.desc= -achievement.slimeball=我应该把我的蛋蛋浸在硫酸里. -achievement.stratum.desc=打中刹车, 手套. -achievement.stratum=发现岩层 +achievement.selenium.desc=耶! +achievement.selenium=XVIII 月亮女神 +achievement.SILEX.desc=我保证,它会比它听起来的要更酷 +achievement.SILEX=激光激发法分离同位素 +achievement.slimeball.desc=粘液球 +achievement.slimeball=我应该把蛋蛋浸在硫酸里。 +achievement.stratum.desc=快刹车, Mitts! +achievement.stratum=岩层 achievement.someWounds.desc=准备好 achievement.someWounds=有些伤口永远无法愈合 -achievement.soyuz.desc=被烤的酥脆 -achievement.soyuz=烤马铃薯 +achievement.soyuz.desc=变得松脆 +achievement.soyuz=土豆烹饪 achievement.space.desc=屡试屡败,浪费了价值9000万美元的资金 -achievement.space=最后战线-呃,算了吧 -achievement.sulfuric.desc= -achievement.sulfuric=我不该把我的蛋蛋浸在硫酸里. -achievement.tantalum.desc=一个难以捉摸但却永远需要的元素. -achievement.tantalum="钽" +achievement.space=最后战线—呃,算了吧 +achievement.sulfuric.desc=硫酸 +achievement.sulfuric=我不应该把蛋蛋浸在硫酸里的。 +achievement.tantalum.desc=一个难以捉摸但却永远需要的元素。 +achievement.tantalum=钽 achievement.tasteofblood.desc=这不是任何测试的一部分 achievement.tasteofblood=血的味道 -achievement.technetium.desc=它是药用的,它是药用的! -achievement.technetium=大个子, 猪人 -achievement.watzBoom.desc=下次记得把污物容器排干. -achievement.watzBoom=真恶心 -achievement.watz.desc=可能包含Fólkvangr弗尔克范格场. +achievement.technetium.desc=它是药用的,它是药用的! +achievement.technetium=大个子,猪人 +achievement.watzBoom.desc=下次记得把毒泥浆容器清空 +achievement.watzBoom=令人厌恶 +achievement.watz.desc=可能包括Fólkvangr弗尔克范格场 achievement.watz=126号元素的力量 -achievement.witchtaunter.desc=那些怪胎什么都没发现! -achievement.witchtaunter=女巫陶恩特 -achievement.ZIRNOXBoom.desc=处理, 遍地都是, 残骸碎片 -achievement.ZIRNOXBoom=CIRNOX - -armor.blastProtection=只受%s的爆炸伤害 -armor.cap=硬伤上限 %s -armor.damageModifier=只受%s的%s伤害 -armor.dash=提供 %s 次冲刺 -armor.electricJetpack=等离子推进器 +achievement.witchtaunter.desc=那些古怪的生物对你毫无兴趣! +achievement.witchtaunter=巫婆陶恩特 +achievement.ZIRNOXBoom.desc=处理, 看,满地是残骸碎片 +achievement.ZIRNOXBoom=锆诺克斯 +armor.blastProtection=修正 %s 的爆炸伤害 +armor.cap=伤害上限 %s +armor.damageModifier=修正 %s 对 %s 的伤害 +armor.dash=给予 %s 冲刺 +armor.electricJetpack=离子喷射背包 armor.explosionImmune=免疫除爆炸伤害外的一切伤害 armor.fastFall=快速降落 armor.fireproof=防火 -armor.fullSetBonus=完整套装增益: -armor.geigerHUD=内置盖格计数器 -armor.geigerSound=听觉式盖革计数器 -armor.glider=按下潜行以滑翔 -armor.gravity=重力效果调整为%s -armor.hardLanding=坠地AOE伤害 -armor.ignoreLimit=防御值不受防御值上限的影响 -armor.modifier=只受%s的一般伤害 -armor.nullDamage=免疫所有的%s伤害 -armor.projectileProtection=只受%s的弹射物伤害 +armor.fullSetBonus=全套效果: +armor.geigerHUD=盖革计数器HUD +armor.geigerSound=盖革计数器警报 +armor.glider=滑翔 +armor.gravity=重力修正 %s +armor.hardLanding=硬着陆 +armor.ignoreLimit=防御值不受防御上限的影响 +armor.modifier=伤害修正 %s +armor.nullDamage=免疫 %s 伤害 +armor.projectileProtection=免疫 %s 的弹射物伤害 armor.rocketBoots=火箭靴 armor.sprintBoost=冲刺辅助加速 armor.thermal=热成像 -armor.threshold=伤害阈值%s -armor.vats=敌对目标信息显示 -armor.yield=保护生效的最高伤害 :%s - -armorMod.all=任意盔甲部位 -armorMod.applicableTo=可安装于: +armor.threshold=伤害阈值 %s +armor.vats=敌对生物HUD +armor.yield=抵御低于%s的伤害 +armorMod.all=所有 +armorMod.applicableTo=适用于: armorMod.boots=靴子 armorMod.chestplates=胸甲 armorMod.helmets=头盔 -armorMod.insertHere=放入盔甲以进行改装... +armorMod.insertHere=插入装甲以改装。。。 armorMod.leggings=护腿 -armorMod.type.boots=靴子配件 -armorMod.type.chestplate=胸甲配件 +armorMod.type.boots=靴子 +armorMod.type.chestplate=胸甲 armorMod.type.cladding=覆层 -armorMod.type.helmet=头盔配件 -armorMod.type.insert=防弹插板 -armorMod.type.leggings=护腿配件 -armorMod.type.servo=伺服系统 -armorMod.type.special=特殊配件 - +armorMod.type.helmet=头盔 +armorMod.type.insert=插板 +armorMod.type.leggings=护腿 +armorMod.type.servo=伺服电机 +armorMod.type.special=特殊 battery.mode.buffer=输入/输出模式 battery.mode.input=输入模式 -battery.mode.off=OffW +battery.mode.off=关闭W battery.mode.output=输出模式 -battery.priority.high=充电优先级: 高 -battery.priority.high.desc=作为总是需要装满的$紧急缓冲电池的情况 -battery.priority.low=充电优先级: 低 -battery.priority.low.desc=在大多数$不影响机器性能的情况下$存储多余的能量使用 -battery.priority.normal=充电优先级: 中 -battery.priority.normal.desc=优先级无关紧要$的小型电网 -battery.priority.recommended=推荐用于: -battery.redstone.off=红石信号 OFF -battery.redstone.on=红石信号 ON - -bomb.detonated=成功引爆! -bomb.incompatible=目标无法被触发! -bomb.launched=成功发射! -bomb.missingComponent=组件缺失! -bomb.nobomb=链接位置不兼容或已被拆除! -bomb.triggered=成功触发! - +battery.priority.high=充电优先级:高 +battery.priority.high.desc=总是需要优先装满的紧急缓冲区 +battery.priority.low=充电优先级:低 +battery.priority.low.desc=在大多数情况下,需要在不影响机器性能的情况下$存储剩余的能量 +battery.priority.normal=充电优先级:正常 +battery.priority.normal.desc=较小的电网,其优先级无关紧要 +battery.priority.recommended=推荐用于: +battery.redstone.off=红石 关 +battery.redstone.on=红石 开 +bomb.detonated=成功引爆! +bomb.incompatible=设备无法触发! +bomb.launched=发射成功! +bomb.missingComponent=组件丢失! +bomb.nobomb=链接位置不兼容或已断开! +bomb.triggered=触发成功! book.test.cover=停车坐爱枫林晚 book.test.page1=测试页面1 - book.error.cover=粒子对撞机:$故障排除 -book.error.title1=错误 0x01 [电量不足] -book.error.page1=§l错误名称:§r "错误_电量不足" §l说明:§r 粒子到达了一个电量不足的部分. §l解决方法:§r 粒子成功通过的其中一个电源接口替换为更高级的 电源接口, 或者在粒子终止的部分之前的部分适当添加更多的 电源接口. -book.error.title2=错误 0x02 [无分析室] -book.error.page2=§l错误名称:§r "错误_无分析室" §l说明:§r 粒子没有通过分析室就已经再次到达加速器核心部件. §l解决方法:§r 确保你的加速器有一个分析室, 并仔细检查其设置的工作模式(直线型/环型). -book.error.title3=错误 0x03 [粒子通道堵塞] -book.error.page3=§l错误名称:§r "错误_粒子通道堵塞" §l说明:§r 粒子与碰撞器通道内的块碰撞. §l解决方法:§r 确保粒子对撞机内部没有任何障碍物, 肖特基粒子二极管和核心部件除外. -book.error.title4=错误 0x04 [线圈缺失] -book.error.page4=§l错误名称:§r "错误_线圈缺失" §l说明:§r 粒子通过了一个缺少一个或多个线圈的部分. §l解决方法:§r 移除冲突区域的对撞机镀层, 并检查是否所有线圈都在那里. 这种错误也会发生在没有二极管的T型交叉口上. -book.error.title5=错误 0x05 [加速器结构错误] -book.error.page5=§l错误名称:§r "错误_加速器结构错误" §l说明:§r 粒子通过了一个构建不正确的部分(但既没有阻塞也没有丢失线圈). §l解决方法:§r 确保有问题的部分在所有要求的空间中都有镀层, 没有线圈暴露在外. +book.error.title1=错误 0x01 [能量不足] +book.error.page1=§l错误类型:§r "错误_能量不足" §l描述:§r 粒子到达了能量不足的部分。 §l修复方式:§r 用更高级的电源接口替换粒子成功通过的 其中一个电源接口,或者在粒子终止的段之前额外添加多一个电源接口。 +book.error.title2=错误 0x02 [无法分析] +book.error.page2=§l错误类型:§r "错误_无法分析" §l描述:§r 尽管没有通过分析室,但粒子已经到达核心。 §l修复方式:§r 确保加速器有一个分析室,并再次检查工作模式(线性/环形)。 +book.error.title3=错误 0x03 [通道阻塞] +book.error.page3=§l错误类型:§r "错误_通道阻塞" §l描述:§r 粒子与对撞机通道内的方块碰撞。 §l修复方式:§r 确保粒子对撞机内部没有任何障碍物, 粒子二极管和核心块除外。 +book.error.title4=错误 0x04 [缺少线圈] +book.error.page4=§l错误类型:§r "错误_缺少线圈" §l描述:§r 粒子通过了缺少一个或多个线圈的段。 §l修复方式:§r 移除冲突区域的对撞机镀层,并检查线圈结构是否完整。 这种错误也会发生在没有二极管的T型交叉口上。 +book.error.title5=错误 0x05 [错误区段] +book.error.page5=§l错误类型:§r "错误_错误区段" §l描述:§r 粒子通过了一个结构不正确的段(但既没有被阻塞也没有缺少线圈)。 §l修复方式:§r 确保有问题的部分都有镀层包裹,没有线圈暴露。 book.error.title6=错误 0x06 [分析室过长] -book.error.page6=§l错误名称:§r "错误_分析室过长" §l说明:§r 粒子通过了三格以上的有效分析室. §l解决方法:§r 确保环形加速器的分析室长度正好为3格, 直线型加速器的分析室长度至少为2格. 还要检查粒子是否未通过分支或环形结构的加速器中的 多个分析室. +book.error.page6=§l错误类型:§r "错误_分析室过长" §l描述:§r 粒子已通过三个以上所需的有效分析室段。 §l修复方式:§r 确保环形加速器的分析室长度正好为3个方块, 直线加速器的分析室长度至少为2个方块。 还要检查粒子是否未通过分支或 环形加速器中的多个分析室。 book.error.title7=错误 0x07 [分析室过短] -book.error.page7=§l错误名称:§r "错误_分析室过短" §l说明:§r 粒子离开了分析室,尽管分析室不符合长度要求. §l解决方法:§r 确保环型加速器上的分析室正好有3格长. 有效的分析室部分没有线圈, 镀层完全由分析室壁/窗组成. 带有线圈的分析室会被视为普通加速部分. -book.error.title8=错误 0x08 [粒子与肖特基粒子二极管碰撞] -book.error.page8=§l错误名称:§r "错误_粒子与肖特基粒子二极管碰撞" §l说明:§r 该粒子与肖特基粒子二极管的非输入侧碰撞. §l解决方法:§r 检查二极管的方向配置是否正确. 粒子只能从带有绿色向内箭头的侧面进入二极管. -book.error.title9=错误 0x09 [转弯处分岔] -book.error.page9=§l错误名称:§r "错误_转弯处分岔" §l说明:§r 粒子已到达具有多个出口的转弯处. §l解决方法:§r 如果你的拐弯处是正常的, 检查所有需要的线圈是否都存在(即线圈层中没有孔). 如果转弯处打算进行分支, 则需要正确配置的肖特基粒子二极管. - -book.starter.cover=重建工业社会的$一本实业家$的指南 -book.starter.title1=介绍 -book.starter.page1=如果你读到这篇文章, 那么很有可能社会已经以这样或那样的方式完全崩溃了. 政府,国家和权威已经是过去的概念——以及文明生活 的所有便利设施. 因此,本指南将告诉你如何通过重新创造过去的行业和 科学技术 来改善你自己的生活. -book.starter.title2=煤尘与芥子气 -book.starter.page2=虽然不可能预测世界在后世界末日时代的实际状态, 但目前形式的战争和工业活动不太可能没有结束. 为了保护自己的肺部, 一种有效且廉价的方法是在一些 §l布料§r上小便来制作一个 §l战壕版粗制防护面罩§r, 以保护你免受煤尘或芥子气的伤害, 以防你遇到其中任何一种情况. -book.starter.title3=砧与锻压机 -book.starter.page3=开始你的工业振兴的核心是一个§lE合前期的机械, 如组装机, 而火力锻压机将允许您制作无法用砧锤击在一起的板材, 金属线和电路. -book.starter.title4=模板 -book.starter.page4=为了将金属冲压成有用的 形状,组装成机器并进行化 学反应,您需要创建一个 §l机器模板文件夹§r来制造右 侧显示的各种冲压和模板. -book.starter.title5=拾荒 -book.starter.page5=根据最初的世界末日事件对世界现有建筑的破坏程度, 你有可能直接从中回收许多有用的材料和机器. 钢铁等金属合金, 电路等零件, 甚至核电站的可裂变物质都可能在等着你. 然而, 要小心某些废墟, 因为那里可能潜伏着过度的危险, 就像草丛中的蛇一样; 等着用辐射, 陷阱或其他无法形容的恐怖袭击你... -book.starter.title6=早期机械 -book.starter.page6a=您应该首先组装的两台机器是§l高炉§r 和§l装配机§r. 前者将允许您制造合金, 如§l钢§r, §l紫铜§r, 和§l高级合金§r; 你需要将这些金属用于机器的机身, 电路的布线, 先进的电磁铁等等. -book.starter.page6b=装配机将用于制造本指南中描述的几乎所有其他机器. 您需要一个电源, 如§l火力§r§l发电机§r或§l太阳能锅炉§r. -book.starter.page7a=§l粉碎机§r以及一对粉碎机刀片将非常有用, 可以通过粉碎成可冶炼的粉末, 将大多数矿石的产量提高一倍. 这些粉末对于开始为合成各种机器而制造的电路 也至关重要,例如§l增强§r和§l超频§r电路. -book.starter.page7b=使用您的新机器, 您可以组装出§l化工装置§r, 用于合成更好的电路, 混凝土, 石化产品等. -book.starter.title8=黑金 -book.starter.page8a=使用§l石油§l储层§r§l探测仪§r, 您可以通过测量一个区域 来发现地下石油沉积物以 放置§l梁式抽油机§r或 §l石油钻井塔§r. 记住,石油储备会随着时间 的推移而耗尽. -book.starter.page8b=在§l炼油厂§r中提炼和分离石油 成分之前,你必须在§l锅炉§r中将 石油加热至300°C. -book.starter.title9=石油化工 -book.starter.page9=使用§l化工厂§r, §l分馏§r§l塔§r和§l催化裂化§r§l塔§r, 你可以将分离出的油转化为各种有用的产品. §l催化裂化§r§l塔§r, 可以将分离出的油转化为各种有用的产品. 例如:§l聚合物§r或§l电木§r, 耐用又柔性的塑料; §l德什§r, 一种非常耐用和耐热的稀土金属合金; §l固体燃料§r, 可燃烧获取能量; 甚至是§l液体燃料§r, 比如§l汽油§r, §l柴油§r, §l煤油§r等等. -book.starter.title10=高级机械 -book.starter.page10=通过一套成熟的石油加工系统,您可以制造§l离心机§r, 这将使矿石的产量增加三倍; §l矿物§l结晶机§r将 矿石结晶后,产量将进一步提高; 以及§lSILEX同位素激光分离室+§lFEL§r, 这两个现代工程的奇迹可以轻松地分离材料的同位素. 你需要更多的能量来驱动这些; 可通过§l柴油发电机§r,§l工业发电机§r, 甚至核反应堆等来源获取更多的能量. -book.starter.title11=特殊岩层 -book.starter.page11=在你行走的地面之下,有几个自 然形成的§l岩层§r,或者说特殊的矿 层和岩层. §l片岩地层§r是蓝色的含锂层,填充 有铀,铁,铜,石棉和其他矿石可供 你自己使用. §l深板岩层§r含有大量稀有矿物, 如§l锆§r和§l硼§r,但 需要炸药才能采集. -book.starter.title12=辐射 -book.starter.page12a=§o本书其余部分将讨论与§o辐射有关的问题. 为了您和其他人的安全,我将提供§o一些建议以说明如何缓解和处理暴露于此的风险.§r -book.starter.page12b=充分暴露在辐射中会导致身体伤害. 第一步是预防; 一定要限制接触,并穿戴防护装备,如§l防辐射套装§r, 或在衣服或盔甲上加装§l防辐射覆层/涂料§r; 你也可以服用§lRad-X防辐射药§r来限制你的辐射量. 多亏了现代医学,第二步可以在必要时移除; 例如,§l玩家§l去污器§r将缓慢减少身体吸收的辐射. §l消辐宁§r还可以用作暴露后预防,快速有效地逆转 电离辐射对身体造成的损害. -book.starter.title13=铀浓缩 -book.starter.page13=核反应堆的燃料有几个简单的选择; 例如,§l天然铀§r或§l钍燃料§r. 然而, 如果你寻找更强力的东西,你可以设置两台§l气体离心机§r 的浓缩级联,用剩余的§l铀-238§r生产§l铀燃料§r. 你必须将天然铀转化为§l黄饼§r,然后是§l六氟化§l铀§r. -book.starter.title14=芝加哥反应堆 -book.starter.page14=或者,您可以使用§l芝加哥反应堆§r从天然铀中增殖出 §l反应堆级钚§r,这是一种更强大的燃料. 通过堆叠石墨块并在其中钻孔,您可以将燃料棒插入钚 和中子源棒,例如§l镭226-铍中子源§r,以开始反应. 确保测试你的设计;为防止过热, 可能需要隔开或限制石墨块的数量. -book.starter.title15=ZIRNOX锆诺克斯 -book.starter.page15=最终,你可以制造你的第一个§o真正§r的能源来源: §lZIRNOX§r核反应堆. 与其他能量源相比,核反应堆需要更多的准备; 首先,你需要有一个强悍的水源,比如§l重型§l无限水罐§r. 要从反应堆堆芯中排出热量并将水煮沸成蒸汽, 你需要足够的§l二氧化碳§r. 你只需要足够的压力, 不要让压力§o太§r大! 你还需要三个蒸汽涡轮机来利用产生的蒸汽来制造能量; §l蒸汽§l轮机§r或§l大型工业§l汽轮机§r将是最佳的. 最后,需要一个§l冷凝器§r或§l冷却塔§r来将残余蒸汽冷凝成水, 在这个冷却回路中可以将其排空或回收. -book.starter.title16=结论 -book.starter.page16=如果你已经走到了这一步,你已经走在重建文明大道上了. 你已经成功地用核能, 石油化工等重新制造了世界末日前的那些先进机器. 我不知道你将如何利用这些新发现的科技, 但我个人希望你利用这些优势是为了自己和他人的利益 - 或者至少是为了自卫. 再见! -book.starter.title18=关于作者 -book.starter.page18=vær只是一个被困在"传声头像"的§o《一生一次》§r中的 灰色虚空中太久的人. 有一次, 他发现了一扇工作室的门, 但令他沮丧的是, 他发现那是一个纸板剪出来的. - - +book.error.page7=§l错误类型:§r "错误_分析室过短" §l描述:§r 粒子已离开分析室,尽管不符合长度要求。 §l修复方式:§r 确保环形加速器上的分析室正好有3个方块长。 有效的分析段没有线圈,镀层完全由分析室壁/窗组成。 带有线圈的分析室被视为规则段。 +book.error.title8=错误 0x08 [二极管方向错误] +book.error.page8=§l错误类型:§r "错误_二极管方向错误" §l描述:§r 该粒子与肖特基粒子二极管的非输入侧碰撞。§l修复方式:§r 检查二极管的配置是否正确。 粒子只能从带有绿色向内箭头的侧面进入二极管。 +book.error.title9=错误 0x09 [多处分支] +book.error.page9=§l错误类型:§r "错误_多处分支" §l描述:§r 粒子到达具有多个出口的转弯处。§l修复方式:§r 如果你的对撞机是正常的,检查所有需要的线圈是否都存在(即线圈中没有缺漏)。如果转弯处打算进行分支,则需要正确放置的肖特基粒子二极管。 book.rbmk.cover=$我的第一个$RBMK石墨式反应堆:$建造一个$反应堆$的基础知识 book.rbmk.title1=介绍 book.rbmk.page1=§lRBMK石墨式反应堆§r是一个完全模块化的核反应堆. 与大多数其他反应堆不同的是, 该反应堆没有"多方块结构核心"和尺寸上的限制, 而反应堆的性能和效率仅取决于你是如何建造它的, 以及各个组件如何相互作用. @@ -275,9 +224,9 @@ book.rbmk.page6=§L自动控制棒§r 与常规控制棒几乎相同, 但它们 book.rbmk.title7=蒸汽管道 book.rbmk.page7=反应堆中的 §l蒸汽管道§r 是唯一能有效降低反应堆热水平的组件. 如果一个蒸汽管道组件的沸点高于其设定的蒸汽类型的沸点, 那么它将试图消耗尽可能多的水 并产生尽可能多的蒸汽来冷却到沸点以下. book.rbmk.title8=碳化钨中子反射器 -book.rbmk.page8=反应堆中的 §l碳化钨中子反射器§r 将阻止中子的通过, 相反, 中子将被反射回它们来自的燃料棒上. 这对于使用中子是有用的, 否则这些中子一旦离开反应堆就会被浪费掉. +book.rbmk.page8=反应堆中的 §l碳化钨中子反射器§r 将阻止中子的通过, 相反,中子将被反射回它们来自的燃料棒上. 这对于使用中子是有用的, 否则这些中子一旦离开反应堆就会被浪费掉. book.rbmk.title9=硼中子吸收器 -book.rbmk.page9=§l硼中子吸收器§r 只是阻挡中子. 被吸收的中子不会产生热量, 会被有效地吸收. 这有助于防止燃料棒发生过度反应从而超出临界值. +book.rbmk.page9=§l硼中子吸收器§r 只是阻挡中子. 被吸收的中子不会产生热量,会被有效地吸收. 这有助于防止燃料棒发生过度反应从而超出临界值. book.rbmk.title10=石墨慢化剂 book.rbmk.page10=§l石墨慢化剂§r 把穿过它的快中子转换成慢中子. 大多数核燃料反应释放出快中子, 而引起裂变需要慢中子, 所以强烈建议使用慢化剂. book.rbmk.title11=结构柱 @@ -285,180 +234,229 @@ book.rbmk.page11=§l结构柱§r 对中子没有任何影响也没有任何特 book.rbmk.title12=控制台 book.rbmk.page12=§lRBMK石墨式反应堆控制台§r 允许你远程控制反应堆. 使用 §lRBMK石墨式反应堆连接装置记录反应堆§r 然后潜行右击控制台就能把反应堆和控制台连接起来. 一个控制台只能控制15x15个组件, 对于大型反应堆可以使用多个控制台. book.rbmk.title13=控制台的使用 -book.rbmk.page13=单击屏幕上的组件将选择或取消选择它们. 使用彩色按钮, 可以快速选择该颜色组中的所有控制棒. 按钮“A”将选择所有控制棒, “X”将取消选择所有控制棒. +book.rbmk.page13=单击屏幕上的组件将选择或取消选择它们. 使用彩色按钮,可以快速选择该颜色组中的所有控制棒. 按钮“A”将选择所有控制棒, “X”将取消选择所有控制棒. book.rbmk.page14=在绿色框中输入一个介于0和100之间的数字, 然后按下旁边的按钮, 将所有选定的控制棒拔出程度设置到该位置. 按钮“AZ-5”将使所有控制棒完全插入. book.rbmk.title15=核燃料 book.rbmk.page15= §l核燃料§r 的反应取决于许多因素. 主要是 §l核燃料强度§r, §l氙中毒程度§r 和接收到的 §l中子数量§r. 氙元素会在核燃料的中子含量较低时积聚起来, 并在正常运行时燃烧殆尽. 中子的效率取决于其类型, 大多数核燃料 §l用慢中子轰击来裂变效果最好§r. book.rbmk.title16=熔毁 book.rbmk.page16=§4§l尽量避免发生, 你不会想让这样一场核灾难发生在你的存档或服务器里的. - -book_lore.author= %s 著 +book.starter.cover=重建$社会的实业家$指南 +book.starter.title1=介绍 +book.starter.page1=如果你正在读这篇文章,很可能社会已经因这样或 那样的方式完全崩溃了。政府、国家和权威是过去的概念, 以及文明生活的所有便利设施。因此,本指南将 告诉您如何通过重新创造过去的行业和技术 来改善自己的生活,从而改变这种状况。 +book.starter.title2=煤和芥子气 +book.starter.page2=虽然无法预测世界末日后的实际状态, 但目前形式的战争和工业不太可能没有结束。 为了保护自己的肺部,一种有效且廉价的方法是 在§L布§r上小便,制作一个§L防毒面具§r, 以使你免受煤尘或芥子气的伤害. +book.starter.title3=铁砧和锻压机 +book.starter.page3=开始工业振兴的精髓是§l砧§r和§l火力锻压机§r. 铁砧将允许您手动组合早期机械,如组装机, 而火力锻压机将允许您制作 无法用铁砧制作的板材、电线和电路. +book.starter.title4=模板 +book.starter.page4=为了将金属冲压成有用的 形状、组装机械和执行 化学反应,您需要创建 一个§L机器模板文件夹§r, 以创建右侧显示的 各种锻模以及配方。 +book.starter.title5=废墟探索 +book.starter.page5=根据最初的世界末日事件对世界现有结构的影响程度, 有可能直接从中抢救出许多有用的材料和机器。 钢铁等金属合金、电路等部件,甚至核电站的 裂变材料都可能在等着你。 然而,要小心某些废墟,因为那里可能潜伏着过度的危险, 就像草丛中的蛇一样; 等待着用辐射、陷阱或无法形容的恐怖袭击你... +book.starter.title6=早期机械 +book.starter.page6a=您应首先装配的两台机器是§l高炉§r和§l装配机§r. 前者允许您制造合金,如§L钢§r、§l工业级铜§r和§l高级合金§r; 你需要将这些金属用于机器的机身、 电路的布线、高级电磁铁等. +book.starter.page6b=汇编程序将用于创建本指南中描述的几乎所有其他机器. 您需要一个电源,如§L火力§r§L发电机§r或§L太阳能锅炉§r. +book.starter.page7a=§l粉碎机§r以及一对粉碎机刀片将会非常有用, 能将大多数矿石粉碎成可熔炼的粉末,使其产量提高一倍. 这些粉末对于开始为各种机器制作电路也至关重要, 例如§l增强电路§r和§l超频电路§r。 +book.starter.page7b=使用您的新机器,您可以创建§L化工厂§r, 用于合成更好的电路、混凝土或进行石化产品加工等。 +book.starter.title8=黑金 +book.starter.page8a=使用§l石油§l储层§r§l探测仪§r, 您可以通过测量一个区域 来发现地下的油岩以 放置§l石油钻机§r或 §l钻油塔§r来开采 记住,石油储备会随着时间 的推移而耗尽 +book.starter.page8b=在§l炼油厂§r中提炼和分离石油 成分之前,你必须在§l锅炉§r中将 石油加热至300°C. +book.starter.title9=石油化工产品 +book.starter.page9=使用§l化工厂§r, §l分馏§r§l塔§r和§l催化裂化§r§l塔§r, 你可以将分离出的油转化为各种有用的产品. §l催化裂化§r§l塔§r, 可以将分离出的油转化为各种有用的产品。 例如:§l聚合物§r或§l电木§r, 耐用又柔性的塑料; §lDesh§r, 一种非常耐用和耐热的稀土金属合金; §l固体燃料§r, 可燃烧获取能量; 甚至是§l液体燃料§r, 比如§l汽油§r, §l柴油§r, §l煤油§r等等。 +book.starter.title10=先进的机械 +book.starter.page10=通过一套成熟的石油加工系统,您可以制造§l离心机§r, 这将使矿石的产量增加三倍; §l矿物§l结晶机§r将 矿石结晶后,产量将进一步提高; 以及§lSILEX同位素激光分离室+§lFEL§r, 这两个现代工程的奇迹可以轻松地分离材料的同位素. 你需要更多的能量来驱动这些; 可通过§l柴油发电机§r,§l工业发电机§r, 甚至核反应堆等来源获取更多的能量。 +book.starter.title11=特殊地层 +book.starter.page11=在你行走的地面之下,有几个 自然形成的§l岩层§r,或者说特殊的 矿层和岩层。 §l片岩地层§r是蓝色的含锂层, 其中有铀、铁、铜、石棉和其他矿石 可供你使用。 §l深板岩层§r含有大量稀有矿物, 如§l锆§r、§l硼§r和§l朱砂§r等, 但你需要炸药才能采集 +book.starter.title12=辐射 +book.starter.page12a=本书其余部分将讨论与辐射有关的问题。 为了您和他人的安全,我将提供一些建议以说明如何缓解和处理暴露于此的风险。 +book.starter.page12b=充分暴露在辐射中会导致身体伤害. 第一步是预防; 一定要限制接触,并穿戴防护装备,如§l防辐射套装§r, 或在衣服或盔甲上加装§l防辐射覆层/涂料§r; 你也可以服用§lRad-X防辐射药§r来限制你的辐射量. 多亏了现代医学,第二步可以在必要时移除; 例如,§l玩家§l去污器§r将缓慢减少身体吸收的辐射. §l消辐宁§r还可以用作暴露后预防,快速有效地逆转 电离辐射对身体造成的损害。 +book.starter.title13=铀浓缩 +book.starter.page13=核反应堆的燃料有几个简单的选择; 例如,§l天然铀§r或§l钍燃料§r。 然而, 如果你寻找更强力的东西,你可以设置两台§l气体离心机§r 的浓缩级联,用剩余的§l铀-238§r生产§l铀燃料§r. 你必须将天然铀转化为§l黄饼§r,然后是§l六氟化§l铀§r. +book.starter.title14=芝加哥反应堆 +book.starter.page14=或者,您可以使用§l芝加哥反应堆§r从天然铀中增殖出 §l反应堆级钚§r,这是一种更强大的燃料. 通过堆叠石墨块并在其中钻孔,您可以将燃料棒插入钚 和中子源棒,例如§l镭226-铍中子源§r,以开始反应. 确保测试你的设计;为防止过热, 可能需要隔开或限制石墨块的数量。 +book.starter.title15=ZIRNOX锆诺克斯 +book.starter.page15=最终,你可以制造你的第一个§o真正§r的能源来源: §lZIRNOX§r核反应堆. 与其他能量源相比,核反应堆需要更多的准备; 首先,你需要有一个强悍的水源,比如§l重型§l无限水罐§r. 要从反应堆堆芯中排出热量并将水煮沸成蒸汽, 你需要足够的§l二氧化碳§r. 你只需要足够的压力, 不要让压力§o太§r大! 你还需要三个蒸汽涡轮机来利用产生的蒸汽来制造能量; §l蒸汽§l轮机§r或§l大型工业§l汽轮机§r将是最佳的. 最后,需要一个§l冷凝器§r或§l冷却塔§r来将残余蒸汽冷凝成水, 在这个冷却回路中可以将其排空或回收。 +book.starter.title16=结论 +book.starter.page16=如果你已经走到了这一步,你已经走在重建文明大道上了. 你已经成功地用核能, 石油化工等重新制造了世界末日前的那些先进机器. 我不知道你将如何利用这些新发现的科技, 但我个人希望你利用这些优势是为了自己和他人的利益 - 或者至少是为了自卫. 再见! +book.starter.title18=关于作者 +book.starter.page18=v?r只是一个被困在"传声头像"的§o《一生一次》§r中的 灰色虚空中太久的人. 有一次, 他发现了一扇工作室的门, 但令他沮丧的是, 他发现那是一个纸板剪出来的 +#book.rbmk.cover=HOW 2 RBMK:$The Basics$of Reactor$Construction +#book.rbmk.title1=Introduction +#book.rbmk.page1=The §lRBMK§r is a fully modular nuclear reactor. Unlike most other reactors, there is no "core", and no size limitations, rather, the behavior and efficiency of the reactor comes from how it is built and how the different pieces interact with each other. +#book.rbmk.title2=Heat +#book.rbmk.page2=As the reactor operates, it will generate §lheat§r. Heat will spread between parts, slowly decreasing in the process. The goal is to produce as much heat as possible without melting the reactor, and to move that heat to a §lsteam channel§r which cools the reactor and produces steam. +#book.rbmk.title3=Fuel Rod +#book.rbmk.page3=The §lfuel rod§r will capture neutron flux, causing the fuel inside the fuel rod to react, giving off neutrons in the process. Neutrons are released in all four cardinal directions with a maximum range of 5 blocks. The amount of neutrons released depends on the §lfuel§r used. +#book.rbmk.title4=Control Rod +#book.rbmk.page4=The §lcontrol rod§r will decrease the amount of neutrons passing though it. Fully inserted, it will block all neutrons, at half insertion, it will only block half. Control rods are used to regulate the reactor's activity and to turn it off. +#book.rbmk.title5=Control Rod - Usage +#book.rbmk.page5=The center of the GUI will display the current rod insertion. The colored buttons on the left will add a control rod to a color group, which is useful to quickly select grouped rods from the §lRBMK console§r. The buttons on the right allow for manual insertion in increments of 25%%. +#book.rbmk.title6=Automatic Control Rod +#book.rbmk.page6=§lAutomatic control rods§r function nearly identical to regular control rods, but they cannot be configured manually, instead they will adjust the rod position based on the current temperature. What function to use and how deep to insert at what temperature has to be defined first. +#book.rbmk.title7=Steam Channel +#book.rbmk.page7=The §lsteam channel§r is the only part that will actively reduce the reactor's heat level. If the component's temperature exceeds the boiling point of the set steam type, it will try to consume as much water and produce as much steam as needed to cool back below the boiling point. +#book.rbmk.title8=Neutron Reflector +#book.rbmk.page8=The §lneutron reflector§r will block neutrons from passing it, instead the neutrons will be reflected back at the fuel rod they came from. This is useful for utilizing neutrons that would otherwise be wasted by simply exiting the reactor. +#book.rbmk.title9=Neutron Absorber +#book.rbmk.page9=The §lneutron absorber§r will simply block neutrons. Neutrons absorbed will not generate heat and be effectively voided. This is useful to prevent fuel rods from reacting that would otherwise be in range. +#book.rbmk.title10=Graphite Moderator +#book.rbmk.page10=The §lgraphite moderator§r will convert fast neutrons passing through it into slow neutrons. Most fuels fission into fast neutrons while needing slow neutrons to split, so using moderators is strongly recommended. +#book.rbmk.title11=Structural Column +#book.rbmk.page11=The §lstructural column§r will not interfere with neutrons, nor does it have special uses. It is recommended to fill the reactor with structural columns where no other parts will be, because structural columns are capable of transporting heat. +#book.rbmk.title12=Console +#book.rbmk.page12=The §lRBMK console§r lets you control the reactor from afar. Using the §lRBMK§r §lconsole linking device§r on an RBMK part and then the console will link the reactor to the console. The console can only manage 15x15 parts, for larger reactors you might want to use multiple consoles. +#book.rbmk.title13=Console Usage +#book.rbmk.page13=Clicking on the parts will select and deselect them. Using the colored buttons, you can quickly select all control rods of that color group. Button 'A' will select all control rods, 'X' will deselect all. +#book.rbmk.page14=Entering a number 0-100 in the green box and then hitting the button next to it will set all selected control rods to this position. Button 'AZ-5' will cause all control rods to fully insert. +#book.rbmk.title15=Fuel +#book.rbmk.page15=The §lfuel§r's reactivity is based on multiple factors. The main ones are the §lenrichment§r, §lxenon poison§r and the amount of incoming §lneutrons§r. Xenon builds up when the fuel receives few neutrons and burns away during normal operation. The effectivity of neutrons depends on the type, most fuels §lsplit best with slow neutrons§r. +#book.rbmk.title16=Meltdown +#book.rbmk.page16=§4§lAvoid. +book_lore.author=By %s book_lore.test.name=测试 book_lore.test.author=那个家伙 -book_lore.test.page.1=>在我开始之前,请允许我 澄清我不是同性恋. >做我 >今晚 >18点 >趁我的父母走了几天,和我最好 的朋友一起出去玩 >我们已经是一年的好朋友了 >喝了点酒,玩了很多电子游戏, 还点了一个比萨饼 >我们玩得很开心 >在晚上的某个时刻,比如9点 左右,他开了一个非常有趣的 玩笑,我不记得了, 但我知道这让我们都笑得很开心 > 我不假思索地用右手 -book_lore.test.page.2=拂过他半卷曲的黑发, 说他真是一个有趣的男孩 >他脸红了 >我意识到我很慌乱 >我们有点太亲近了 >突然他吻了我,出于某种原因 我回吻了他 >我们做爱了 >拥抱在一起睡着了 >半夜醒来,他的头紧贴在我的 胸口和脖子上 >这感觉很好, 但我仍是个钢铁直男 -book_lore.test.page.3=我在他在我怀里睡着的时候 写了这个. 我怎么能让我最好的 朋友失望呢? 我可不想成为一个 [弱智] /b/ +book_lore.test.page.1=>你好,在我开始之前,让我澄清我不是同性恋。>做我>今天晚上>18>和我最好的朋友和我的父母出去玩了几天>我们已经是最好的朋友一年了>喝了点酒,玩了很多电子游戏,还点了一份披萨>我们玩得很开心>在晚上的某个时候,比如9点左右,他开了一个非常有趣的玩笑,我不记得了,但我知道这让我们俩都笑得很厉害>没有我想我用右手摸了摸他那半卷曲的黑发,然后叫他一个有趣的男孩>他脸红了>我意识到我很慌张>我们有点亲密>突然他吻了我,出于某种原因我又吻了他>我们做爱>拥抱在一起睡着了>半夜醒来时,他的头贴在我的胸部和颈部>感觉很好,但我不是同性恋 +book_lore.test.page.2=他在我怀里睡着时,我正在打字。我怎么才能让我最好的朋友失望呢?我不想成为[编辑]/b/ +book_lore.test.page.3=3 book_lore.test.page.4=4 book_lore.test.page.5=5 - book_lore.book_iodine.name=笔记 book_lore.book_iodine.author=戴夫 -book_lore.book_iodine.page.1=好吧,你不会相信的, 但自从两周前离开后,这位老人终于再次出现了。更令人惊讶的是,他竟然决定把他们在峡谷里的所作所为泄露出去: -book_lore.book_iodine.page.2=显然,研发部门的白痴们发现了一种主要是无机的化合物, 很像自然界中的毒素, 但要记住:濒死的细胞会繁殖毒素并通过皮肤排出, 产生一种具有高度传染性的气溶胶. -book_lore.book_iodine.page.3=就像病毒一样, 但不是病毒. 它的成分很奇怪, 你可以把它放在任何家用瓶子里,但你必须把顺序弄对. 博士告诉我第一种成分是粉末状的碘晶体,要放进槽 %d - +book_lore.book_iodine.page.1=alright you will not believe this, but old man weathervane finally managed to show up again since he left two weeks ago and what's more surprising is the fact that he actually decided to spill the beans on what they were doing in the canyon: +book_lore.book_iodine.page.2=apparently the morons from R&D discovered a compound that is mostly inorganic, pretty much like a toxin in nature, but get this: the dying cells will reproduce said toxin and excrete it through the skin, creating an aerosol that is highly contagious. +book_lore.book_iodine.page.3=it's just like a virus, but not a virus. the composition is weird, you can mix it in any household bottle but you do have to get the order right. the doc told me that the first ingredient which is just powdered iodine crystals goes into slot %d book_lore.book_phosphorous.name=笔记 book_lore.book_phosphorous.author=戴夫 -book_lore.book_phosphorous.page.1=嘿,又是我. 我想你收到了我最后的备忘录,博士对此不太高兴. 我得动作快点, 研发部门的笨蛋们现在又在抱怨了, 可能是因为钱, 又一次. 无论如何, 风向标博士发现第二种 -book_lore.book_phosphorous.page.2=成分是红磷, 必须将其混入 %d槽中 - +book_lore.book_phosphorous.page.1=heyo, it's me again. i assume you got my last memo, the doc wasn't too happy about it. i'll have to do this quick, the dunderheads from R&D are currently moaning again, probably over money. again. anyway, doc weathervane found that the second +book_lore.book_phosphorous.page.2=ingredient is red phosphorous, whihc has to be mixed into slot %d book_lore.book_dust.name=笔记 book_lore.book_dust.author=戴夫 -book_lore.book_dust.page.1=当博士发现研发人员保留了剩下的一个样本时,他大发雷霆, 大喊大叫说这是严重的疏忽,简直是世界末日的剧本. 我告诉他冷静一分钟, 紧张起来对他的血压没有好处, 并 -book_lore.book_dust.page.2=不是说他还剩下很多血. 一个研发部的白痴在上周的通告中透露了更多信息, 他们称他们那宝贝混合物 \"MKU\" ,鬼知道这是啥意思, 它含有货真价实的家用棉绒. 你能相信吗? 这是他们 -book_lore.book_dust.page.3=最危险的发明之一而它含有灰尘. 奇怪的是,他们还提到它会进入槽 %d - +book_lore.book_dust.page.1=the doc was furious when he found out that the R&D dorks kept the one remaining sample, ranting about gross negligence this and a doomsday scenario that. i told him to chill for a minute, getting all worked up isn't good for his blood pressure, not +book_lore.book_dust.page.2=that he has much blood left to begin with. one of the R&D morons slipped some more info into last week's circular, they call their little concoction \"MKU\" whatever that means, and that it contains actual household lint. can you believe that? one of the most +book_lore.book_dust.page.3=dangerous inventions of theirs and it contains dust. strangely they also mentioned that it goes into slot %d book_lore.book_mercury.name=笔记 book_lore.book_mercury.author=戴夫 -book_lore.book_mercury.page.1=好吧,这就说得通了. 不包括呕吐的血液部分, 毒理学报告表明其主要类似于汞中毒. 为什么? 因为我们的小混合物也含有汞! 我只是想知道当这些东西 -book_lore.book_mercury.page.2=被身体复制时,它们从哪来? 不管怎样,水银要进入槽 %d - +book_lore.book_mercury.page.1=well that settles that. not counting the vomitting blood part, the toxicological report mostly resembles that of mercury poisoning. why? because our little mix also contains mercury! i just wonder where all that stuff comes from when being +book_lore.book_mercury.page.2=replicated by the body? whatever, the mercury goes into slot %d book_lore.book_flower.name=笔记 book_lore.book_flower.author=戴夫 -book_lore.book_flower.page.1=还记得我在第一份备忘录中提到的化合物大多是无机的吗? 好吧,你猜怎么着, 那个老家伙分享了第四种配料: 牵牛花, 花的一属. 就是喇叭花! 可能是因为它的硫含量低, 不管是什么情况, -book_lore.book_flower.page.2=其他花就是不起作用. 牵牛花要放入槽 %d - +book_lore.book_flower.page.1=remember when i mentioned in my first memo that the compound is mostly anorganic? well guess what, the old man shared the fourth ingredient: ipomoea nil, a genus of flower. morning glory! it might be due to its low sulfur content, whatever might be the case, +book_lore.book_flower.page.2=it does not work with other flowers. the morning glory goes into slot %d book_lore.book_syringe.name=笔记 book_lore.book_syringe.author=戴夫 -book_lore.book_syringe.page.1=我第五条留言的一个小附录, 显然你必须把这些叫MKU的东西放在一个容器里. 研发人员使用的是从医疗机构购买的普通金属注射器. 我猜是多余的, 他们有成千上万的针头. -book_lore.book_syringe.page.2=金属注射器要放入槽 %d - +book_lore.book_syringe.page.1=a little addendum to my fifth message, obviously you have to store this MKU stuff in a container. the R&D nuts used regular metal syringes that they got from medical. surplus ware i presume, they got thousands of needles just lying around. the metal +book_lore.book_syringe.page.2=syringe goes into slot %d book_lore.resignation_note.name=辞职信 book_lore.resignation_note.author=科斯马 -book_lore.resignation_note.page.1=管理层昨天又缩减了我们的 部门.那些白痴只能怪自己, 我不知道他们在那场惨败后 会还有什么期待. 到底是谁泄露了这种信息? 我们损失了数百万 -book_lore.resignation_note.page.2=现在是我失业了. 我是那个被要求辞职的人. 我希望你们这些混蛋们终于 从自己的错误中吸取教训, 把那根棍子从屁股里拿出来. -book_lore.resignation_note.page.3=我星期五不会回来的. 发工资就行了. - -book_lore.memo_stocks.name=内部备忘录 -book_lore.memo_stocks.page.1=投资者关系部 - $ $ 最新季度报告中提供的数据 存在一些明显的差异. 让财务部门进行一些调整是 谨慎的做法, 所以不用有任何顾虑. - +book_lore.resignation_note.page.1=管理层昨天又对我们的部门进行裁员了。那群白痴要怪只能怪他们自己,我都不知道他们在那场惨败后还在期待什么。到底是谁他妈泄露了那种程度的信息? +book_lore.resignation_note.page.2=我们损失了几百万,而且现在失业的还是爷。老子希望你们这帮混蛋最后能从你们的一堆问题中学到点教训然后给爷滚去自闭。 +book_lore.resignation_note.page.3=我周五不回来了。工资寄过来就行。 +book_lore.memo_stocks.name=公司内部备忘录 +book_lore.memo_stocks.page.1=投资者报告 - $$最新的季度报告中提供的数据存在一些明显的差异。财政部所作出一些调整是明智的,因此不必有任何担忧。 book_lore.memo_schrab_gsa.name=内部备忘录 -book_lore.memo_schrab_gsa.page.1=合同管理部 - $ $ 法律部与DLA取得了突破. 他们授予我们450亿GSA计划, 用于进一步采购和研究saralloy. 根据目前的估计 -book_lore.memo_schrab_gsa.page.2=相关业务的利润至少为 40%%, 更不用说未来合同的可能性了. 由于保密性质,所有财务证据 都应保密. - +book_lore.memo_schrab_gsa.page.1=合同管理记录 - 法务部在与美国国防部后勤局的谈判中取得了突破。他们批准了450亿的联邦采购服务总署投资资金用于异变金属的采购与研究。 +book_lore.memo_schrab_gsa.page.2=就目前预期来看,这将至少产生40%的利润,更不必说以后行动所产生的利润,同时这将使我们未来有机会签订更多合同。鉴于此事的保密性质,所有财政证据都将为机密级别 book_lore.memo_schrab_rd.name=内部备忘录 -book_lore.memo_schrab_rd.page.1=研究与开发部 - $ $ 我们生产saralloy的主要方法是 使用新型粒子加速器. 然而, 与产量相比,能源成本过高. -book_lore.memo_schrab_rd.page.2=然而,Schrabauer博士发现 了一种新的相互作用, 称为 "奇异轻子振荡",可以 显著降低成本. 通过一个不完 全被理解的过程, 所提供的电 子通过一种 -book_lore.memo_schrab_rd.page.3=奇特的作用被转化为极高能 量的光子. 这是许多既定粒子 转化定律的极端例外, 但初步 实验证明,这些质子转变为 上下夸克,最终形成了 saralloy. -book_lore.memo_schrab_rd.page.4=奇怪的是,原型需要钨合金 和少量的 saralloy. 此外, 需要一个特殊的电容器来 抵消剩余的正电荷. - +book_lore.memo_schrab_rd.page.1=研发 - 目前我们主要生产方法是使用新型粒子加速器。然而,与产出量相比,能源成本高得惊人。 +book_lore.memo_schrab_rd.page.2=然而,Schrabauer博士发现了一种全新的相互作用——暂称为“奇异轻子振荡”——该作用可以显著降低生产成本。通过一个目前未被完全理解的的过程,提供的电子被一种奇特的“魔力”转化为极高能量的光子。 +book_lore.memo_schrab_rd.page.3=这是许多已明确的粒子转换定律的极端例外。但初步实验证明,这些质子先转变为上下夸克,最终形成了异变金属。奇怪的是,原型机中需要钨与少量异变金属合金化所得到的合金。 +book_lore.memo_schrab_rd.page.4=除此之外,还需要一个特殊的电容器用来抵消掉多余的正电荷。 book_lore.memo_schrab_nuke.name=研究报告 book_lore.memo_schrab_nuke.author=Schrabauer博士 -book_lore.memo_schrab_nuke.page.1=我们最近的调查使我们了 解了核爆炸对材料的影响. 感谢给我们的赠款, 我们 *意外地* 测试了 我们从铀直接合成 saralloy的理论. -book_lore.memo_schrab_nuke.page.2=以前只有我们的回旋加速 器真正创造了saralloy. 然而,在我们在埃弗沃彭 的地下拍摄中,在现场的 铀矿中发现了微量的saralloy. 附近所有纯金属铀都发生了 裂变. -book_lore.memo_schrab_nuke.page.3=因此,如果有足够多的铀 矿石集中在炸药周围, 甚至可能是一枚富含可裂 变材料的脏弹,人们可以 理论上制造出足够多的 saralloy来人工收集. - -cannery.f1=[ 按下 F1 思索 ] +book_lore.memo_schrab_nuke.page.1=最近的调查使我们了解了核爆炸对材料造成的影响。多亏外界给我们的赠款,我们*意外地*测试了铀直接合成异变金属的理论。 +book_lore.memo_schrab_nuke.page.2=而此前我们只在回旋加速器中制作出异变金属。但这次,我们在对Everwerpen的地下拍摄中,在该地点的铀矿石中发现了微量的异变金属。其附近所有的纯金属铀则都发生了裂变。 +book_lore.memo_schrab_nuke.page.3=因此,如果有足够多的铀矿石集中在核弹周围,甚至可能只需要一个富含裂变物质废料的脏弹,就有可能制造出质量大到可以被直接收集的异变金属。 +cannery.f1=[按F1键获取帮助] cannery.centrifuge=气体离心机 -cannery.centrifuge.0=气体离心机可以使用常规流体管道提供流体. -cannery.centrifuge.1=大多数配方需要多台离心机. 中间产物不能通过管道运输. -cannery.centrifuge.2=这一侧充当连接器,将中间产品输出到相邻的离心机中. -cannery.centrifuge.3=六氟化铀只需两台离心机即可处理, 然而这将只能生产铀燃料和铀-238. -cannery.centrifuge.4=将其完全加工成铀-235和铀-238需要总共四台离心机. -cannery.centrifuge.5=一些配方还需要离心机超频升级. - +cannery.centrifuge.0=气体离心机可以使用通用流体管道传输流体。 +cannery.centrifuge.1=大多数配方需要多台离心机。中间产品不能通过管道运输。 +cannery.centrifuge.2=该侧用作将中间产品输出到相邻离心机的连接口。 +cannery.centrifuge.3=六氟化铀只需两台离心机即可加工,但这将只产出铀燃料和铀-238。 +cannery.centrifuge.4=将其完全加工成铀-235和铀-238总共需要四台离心机。 +cannery.centrifuge.5=一些配方还需要离心机超频升级。 cannery.crucible=坩埚 -cannery.crucible.0=坩埚用于熔炼矿石、铸锭或其他金属物品以进行合金化,并将其铸造成不同形状. -cannery.crucible.1=它需要一个连接到底部的外部热源,如燃烧室. -cannery.crucible.2=一旦加热,坩埚可以以两种方式使用,有或没有配方模板. -cannery.crucible.3=坩埚有两个材料储存缓冲区: -cannery.crucible.4=左边的缓冲区是§a副产品§r, 所有没有配方模板的熔炼材料都会储存在这里. -cannery.crucible.5=如果安装了配方,与配方不匹配的材料也将存储在这里. -cannery.crucible.6=该缓冲区中的材料不会相互反应,只能从绿色出口输出用于铸造. -cannery.crucible.7=右边的缓冲区是用于§c合金配方§r的, 如果安装了配方,并且该特定材料与该配方相关,它将储存在这里. -cannery.crucible.8=这些材料将慢慢结合成合金材料,从红色出口自动输出. -cannery.crucible.9=请注意,只有这个缓冲区处理配方. 如果先加原料后安装模板,副产品缓冲区中的材料将不会结合,也不会转移到配方缓冲区. -cannery.crucible.10=如果对着的方块正确,出口将自动输出材料,例如铸造通道或模具. -cannery.crucible.11=与所有铸造块一样,可以使用铲子从坩埚中移除所有材料. - -cannery.fensu=FEnSU飞轮储能系统 -cannery.fensu.0=FEnSU飞轮储能系统能够存储超过9EHE (即9后面接18个零)的荒谬能量. -cannery.fensu.1=只有底部有一个能量连接器. -cannery.fensu.2=这也是FEnSU唯一可以接收红石信号的地方. - +cannery.crucible.0=坩埚用于熔炼矿石、铸锭或其他金属物品以进行合金化,并将其铸造成不同形状。 +cannery.crucible.1=它需要一个外部热源连接到底部,例如燃烧室。 +cannery.crucible.2=一旦加热,坩埚可以以两种方式运行,有或没有配方模板。 +cannery.crucible.3=坩埚有两个材料储存缓冲区: +cannery.crucible.4=左边的缓冲区用于缓存§a副产品§r,所有没有配方模板的熔炼材料都将缓存在这里。 +cannery.crucible.5=如果有熔炼配方,与配方不匹配的材料也将存储在这里。 +cannery.crucible.6=该缓冲区中的材料不会相互反应,只能从绿色出口输出用于铸造。 +cannery.crucible.7=右侧的缓冲区用于放入§c配方§r,如果安装了一个配方,并且该特定材料与该配方相关,则它将储存在此处。 +cannery.crucible.8=这些材料将慢慢结合成输出材料,从红色出口自动输出。 +cannery.crucible.9=请注意,只有这个缓冲区处理配方。如果更换模板,副产品缓冲区中的材料不会结合,也不会转移到配方缓冲区。 +cannery.crucible.10=如果目标有效,例如铸造通道或模具,出口将自动输出材料。 +cannery.crucible.11=与所有铸造块一样,可以使用铲子从坩埚中移除所有材料。 +cannery.fensu=FEnSU +cannery.fensu.0=FEnSU能够存储超过9EHE(即9后18个零)的荒谬能量。 +cannery.fensu.1=只有在其底部有一个电线接口。 +cannery.fensu.2=这也是FEnSU唯一可以接收红石信号的地方。 cannery.firebox=燃烧室 -cannery.firebox.0=燃烧室燃烧易燃物品以产生热量. -cannery.firebox.1=它可以燃烧任何易燃物品, 尽管煤、焦炭和固体燃料等质量较高的燃料燃烧时间更长、温度更高. -cannery.firebox.2=燃烧室顶部的铜触点放出热量. 底部有相同铜触点的机器可以通过放置在燃烧室顶部来接收热量. -cannery.firebox.3=如果热量没有用完,并且热缓冲区已满,则火箱将关闭以防止浪费燃料. -cannery.firebox.4=斯特林发动机就是这些机器的其中之一,它将热量直接转化为能量. - -cannery.foundryChannel=浇筑道 -cannery.foundryChannel.0=浇筑道用于将熔融材料从坩埚或储罐输送到浇筑盆中. -cannery.foundryChannel.1=通道可以通过从顶部(通过浇筑口或从坩埚出口)或从其他通道的侧面倾倒来接收材料. -cannery.foundryChannel.2=运输材料时,浇筑道将优先考虑浇筑口和浅浇筑盆等块. -cannery.foundryChannel.3=当无法供应浇筑口和浇筑盆时,材料将流入相邻通道. -cannery.foundryChannel.4=剩余材料可使用铲子清除. - -cannery.silex=FEL & SILEX同位素激光分离室 -cannery.silex.0=自由电子激光器(FEL) 会利用能量和激光晶体产生一道强大的激光束. -cannery.silex.1=小心,因为激光会烧毁/熔化强度不足的方块... -cannery.silex.2=...而防爆方块则能够阻挡. -cannery.silex.3=FEL用于为激光同位素分离室(SILEX)供能. FEL和SILEX必须至少相隔两个方块. -cannery.silex.4=激光器必须从SILEX的玻璃开口进入. 瞄准了错误的地方可能会毁掉它. -cannery.silex.5=侧面的开口可用于将流体管道连接至SILEX. -cannery.silex.6=除了侧面的两个IO接口外,底部还有第三个隐藏IO接口,可以从中提取物品. -cannery.silex.7=每个配方都需要特定的激光类型. 使用比要求激光类型更强的类型将更快地处理. -cannery.silex.8=一个FEL最多可供应5个SILEX. 每个SILEX必须彼此相隔一个方块. - -cannery.stirling=斯特林发动机 -cannery.stirling.0=斯特林发动机利用外部热源产生的热能来发电. -cannery.stirling.1=它需要放置在发热机器的顶部,例如燃烧室. -cannery.stirling.2=然而,它可以利用的热量有限,超速旋转可能导致灾难性故障. -cannery.stirling.3=升级后的版本可以承受更大的热量而不损坏. - -cannery.willow=芥柳 -cannery.willow.0=芥柳是一种可以收获镉金属的植物. -cannery.willow.1=柳树可以种在泥土、草地上,甚至是荒土/油污上,但它们需要水才能生长. -cannery.willow.2=柳树可以用骨粉或工业肥料施肥. 它们不需要光就能生长. -cannery.willow.3=在第二阶段的生长之后,它们将需要上方额外的一块空间才能进一步生长. -cannery.willow.4=在生长的第四阶段之后,它们需要下面有荒土或油污. -cannery.willow.5=这可以通过在荒土/油污上手动种植柳树来实现,也可以通过在附近设置一个持续污染地面的水力压裂塔来实现. -cannery.willow.6=到达最后阶段后,柳树将清除地面上的污染物,将荒土/油污恢复为正常的泥土. -cannery.willow.7=现在柳树的叶子可以收割了。打破顶部的障碍物会掉落一株3-6片叶子的小柳树,并保持植物底部的完整. -cannery.willow.8=很快,这种植物就会重新开始生长,如果泥土被油性泥土取代,就会长出更多的叶子。叶子可以用矿物结晶机加工成镉粉. -cannery.willow.9=使用自动锯可以自动收割柳叶,它只会打碎准备收割的植物. - +cannery.firebox.0=燃烧室通过燃烧可燃物品产生热量。 +cannery.firebox.1=它可以燃烧任何可燃物品,但更高质量的燃料如煤、焦炭和固体燃料燃烧时间更长,温度更高。 +cannery.firebox.2=燃烧室顶部的铜触点可以传导热量。底部具有相同触点的机器可以通过放置在燃烧室顶部来接收热量。 +cannery.firebox.3=如果热量没有用完,且热量缓冲器变满,燃烧室将暂停运行,以防止燃料浪费。 +cannery.firebox.4=一种这样的机器是斯特林发动机,它将热量直接转化为能量。 +cannery.foundryChannel=铸造通道 +cannery.foundryChannel.0=铸造通道用于将熔融材料从坩埚或储罐输送到模具中。 +cannery.foundryChannel.1=通道可以通过从顶部(通过出口或直接连接坩埚)或从其他通道的侧面倾倒来接收材料。 +cannery.foundryChannel.2=运输材料时,渠道将优先考虑出口和浅铸造池等方块。 +cannery.foundryChannel.3=当无法供应出口或模具时,材料将流入相邻通道。 +cannery.foundryChannel.4=剩余材料可以用铲子清除。 +cannery.silex=FEL & SILEX +cannery.silex.0=自由电子激光器(FEL)利用能量和激光晶体产生强大的激光束。 +cannery.silex.1=小心,因为激光会烧毁或熔化较脆弱的方块… +cannery.silex.2=…但不是防爆的。 +cannery.silex.3=FEL用于为激光同位素分离室(SILEX)提供能量。FEL和SILEX必须至少相隔两个方块。 +cannery.silex.4=激光必须通过SILEX的玻璃开口进入。在错误的方向上入射可能会摧毁它。 +cannery.silex.5=侧面的开口可以使流体管道连接至SILEX上。 +cannery.silex.6=除了侧面的两个连接口之外,底部还有第三个隐藏连接口,可以从中抽取产品。 +cannery.silex.7=每个配方都需要特定的激光类型。使用比所需类型更强的激光将更快地处理项目。 +cannery.silex.8=一台FEL最多可以为5台SILEX供能。每个SILEX之间必须间隔一个方块。 +cannery.stirling=斯特林发电机 +cannery.stirling.0=斯特林发动机使用来自外部的热能来产生能量。 +cannery.stirling.1=它需要放置在发热机器的顶部,如燃烧室。 +cannery.stirling.2=然而,它可以利用的热量有限,过旋转可能导致灾难性故障。 +cannery.stirling.3=升级版可以在不损坏的情况下承受更多热量。 +cannery.willow=芥子柳 +cannery.willow.0=芥子柳是一种可以富集镉金属的植物。 +cannery.willow.1=芥子柳可以种植在泥土、草地上,甚至是死亡草地或油泥上,但它们需要水才能生长。 +cannery.willow.2=芥子柳可以用骨粉或工业肥料催熟。它们不需要光就可以生长。 +cannery.willow.3=在第二阶段的生长之后,它们将需要在上方有至少一个方块的空间才能进一步生长。 +cannery.willow.4=在生长的第四阶段之后,它们需要下面有死亡草地的或油泥。 +cannery.willow.5=这可以通过在死亡草地或油泥上手动种植芥子柳来实现,也可以通过在附近设置一个不断污染地面的水力压裂塔来实现。 +cannery.willow.6=到达最后阶段后,芥子柳将清除地面上的污染物,使死亡草地或油泥恢复为正常的泥土。 +cannery.willow.7=现在芥子柳的叶子可以收割了。打破顶部的块状物会掉落一株3-6片叶子的小芥子柳,并保持植物底部的完整。 +cannery.willow.8=很快,这种植物就会重新开始生长,如果泥土被油泥取代,就会长出更多的叶子。叶子可以用酸化骑加工成镉粉。 +cannery.willow.9=使用自动锯可以自动收割柳叶,它只会打碎准备收割的植物。 chem.ARSENIC=砷提取 chem.ASPHALT=沥青生产 chem.BAKELITE=电木生产 -chem.BALEFIRE=BF反物质火箭燃料混合 -chem.BP_BIOFUEL=生物燃料酯化合成 +chem.BALEFIRE=野火火箭燃料混合 +chem.BP_BIOFUEL=生物燃料酯化 chem.BP_BIOGAS=沼气生产 -chem.C4=C-4生产 -chem.CC_HEATING=民用燃油增产 -chem.CC_HEAVY=重油增产 -chem.CC_I=工业油增产 -chem.CC_NAPHTHA=石脑油增产 -chem.CC_OIL=原油增产 +chem.C4=C-4合成 +chem.CC_HEATING=高级煤液化 +chem.CC_HEAVY=初级煤液化 +chem.CC_I=强化煤液化 +chem.CC_NAPHTHA=煤液化石脑油 +chem.CC_OIL=煤液化 chem.CIRCUIT_4=超频电路生产 chem.CIRCUIT_5=高性能电路生产 chem.CO2=二氧化碳生产 -chem.COALGAS_LEADED=煤汽油铅混合 +chem.COALGAS_LEADED=含铅煤汽油混合 chem.COLTAN_CLEANING=钶钽铁矿提纯 chem.COLTAN_CRYSTAL=钽结晶 -chem.COLTAN_PAIN=潘地曼尼南(III)钽生产 +chem.COLTAN_PAIN=Pn(III)钽铁溶液生产 chem.CONCRETE=混凝土生产 chem.CONCRETE_ASBESTOS=石棉夹层混凝土生产 -chem.COOLANT=冷却液生产 +chem.COOLANT=冷却液混合 chem.CORDITE=无烟火药生产 -chem.CRYOGEL=超低温凝胶混合 -chem.DESH=德什金属锭生产 -chem.DEUTERIUM=氘提取 -chem.DUCRETE=贫化铀混凝土合成 +chem.CRYOGEL=冷凝胶混合 +chem.DESH=Desh生产 +chem.DEUTERIUM=氘萃取 +chem.DUCRETE=贫铀混凝土生产 chem.DYN_DNT=双聚中子态素合成 -chem.DYN_EUPH=Ep金属元素合成 -chem.DYN_SCHRAB=Sa326异变铀金属合成 +chem.DYN_EUPH=Ep合成 +chem.DYN_SCHRAB=Sa326合成 chem.DYNAMITE=炸药合成 chem.ELECTROLYSIS=低温电解水 chem.EPEARL=末影珍珠合成 @@ -472,98 +470,95 @@ chem.FP_HEAVYOIL=重油加工 chem.FP_LIGHTOIL=轻油加工 chem.FP_NAPHTHA=石脑油加工 chem.FP_SMEAR=工业油加工 -chem.FR_PETROIL=混机油汽油合成 -chem.FR_REOIL=再生工业油加工 -chem.FRACKSOL=压裂液合成 -chem.GASOLINE=精制汽油合成 -chem.GASOLINE_LEADED=精制汽油铅混合 -chem.HEAVY_ELECTROLYSIS=重水低温电解 -chem.HELIUM3=月壤氦-3提取 -chem.KEVLAR=凯夫拉材料生产 +chem.FR_PETROIL=汽油混合 +chem.FR_REOIL=原油再加工 +chem.FRACKSOL=压裂液生产 +chem.GASOLINE=含铅汽油生产 +chem.GASOLINE_LEADED=含铅汽油混合 +chem.HEAVY_ELECTROLYSIS=低温电解重水 +chem.HELIUM3=使用月球草皮提取氦-3 +chem.KEVLAR=凯夫拉生产 chem.LPG=石油天然气液化 -chem.LUBRICANT=混合润滑剂合成 +chem.LUBRICANT=润滑剂混合 chem.METH=甲基苯丙胺合成 -chem.NITAN=NITAN© 100 超级辛烷燃料混合 +chem.NITAN=NITAN牌超级燃料混合 chem.NITRIC_ACID=硝酸生产 chem.OIL_SAND=沥青砂提取 -chem.OSMIRIDIUM_DEATH=铱锇酸溶液生产 +chem.OSMIRIDIUM_DEATH=锇酸溶液生产 chem.PEROXIDE=过氧化氢生产 -chem.PET=PET聚酯合成 -chem.PETROIL_LEADED=混机油汽油铅混合 +chem.PET=PET合成 +chem.PETROIL_LEADED=含铅石油混合 chem.POLYMER=聚合物合成 chem.PUF6=六氟化钚生产 -chem.PC=硬质塑料棒合成 -chem.PVC=PVC聚乙烯棒合成 -chem.RUBBER=橡胶合成 -chem.SAS3=三硫化Sa326生产 +chem.RUBBER=橡胶生产 +chem.SAS3=三硫化Sa生产 chem.SATURN=土星锭生产 -chem.SCHRABIDATE=Sa326元素酸化铁生产 -chem.SCHRABIDIC=Sa326元素酸化混合 +chem.SCHRABIDATE=Sa酸铁生产 +chem.SCHRABIDIC=Sa酸合成 chem.SF_BIOFUEL=生物燃料固化 chem.SF_BIOGAS=沼气固化 chem.SF_DIESEL=柴油凝固 chem.SF_GAS=天然气固化 -chem.SF_HEATINGOIL=民用燃油固化 +chem.SF_HEATINGOIL=燃油固化 chem.SF_HEAVYOIL=重油固化 chem.SF_KEROSENE=煤油固化 chem.SF_LIGHTOIL=轻油固化 chem.SF_LUBRICANT=润滑剂固化 chem.SF_NAPHTHA=石脑油固化 chem.SF_OIL=原油固化 -chem.SF_PETROIL=混机油汽油固化 +chem.SF_PETROIL=石油固化 chem.SF_PETROLEUM=石油气固化 chem.SF_RECLAIMED=再生油固化 chem.SF_SMEAR=工业油固化 chem.SOLID_FUEL=固体火箭燃料生产 chem.SOLVENT=有机溶剂混合 -chem.STEAM=蒸汽生产 +chem.STEAM=烧水 chem.SULFURIC_ACID=硫酸生产 -chem.TATB=TATB三氨基三硝基苯合成 -chem.TEL=四乙基铅抗爆剂混合 +chem.TATB=TATB合成 +chem.TEL=四乙基铅混合 chem.TEST=测试 chem.TNT=TNT合成 chem.UF6=六氟化铀生产 chem.VIT_GAS=气态核废料玻璃化 chem.VIT_LIQUID=液态核废料玻璃化 chem.XENON=林德循环制氙 -chem.XENON_OXY=增强型林德循环制氙 +chem.XENON_OXY=增强林德循环制氙 chem.YELLOWCAKE=黄饼生产 - -container.amsBase=AMS基座 [装饰] -container.amsEmitter=AMS激发装置 [装饰] -container.amsLimiter=AMS稳定力场发生装置 [装饰] -container.anvil=%s 级砧 +container.amsBase=AMS基座(装饰) +container.amsEmitter=AMS发射极(装饰) +container.amsLimiter=AMS稳能器(装饰) +container.anvil=砧 container.arcFurnace=电弧炉 container.armorTable=装甲改装台 container.assembler=装配机 -container.autocrafter=自动化工作台 +container.autocrafter=自动工作台 container.barrel=桶 -container.bat9000="巨臀"9000号储罐 -container.battery=储能量 +container.bat9000=巨尻-9000 储罐 +container.battery=储能 container.bombMulti=多用途炸弹 -container.catalyticReformer=催化重整装置 +container.catalyticReformer=催化重整器 container.centrifuge=离心机 -container.chemplant=化工装置 +container.chemplant=化工厂 container.compactLauncher=紧凑型发射台 -container.craneBoxer=传送带打包器 -container.craneExtractor=传送带输出器 -container.craneGrabber=传送带抓取器 -container.craneInserter=传送带输入器 -container.craneRouter=传送带分流器 -container.craneUnboxer=传送带解包器 -container.crateDesh=德什制箱子 +container.craneBoxer=输送带打包机 +container.craneExtractor=输送带提取器 +container.craneGrabber=输送带抓斗 +container.craneInserter=输送带导入器 +container.craneRouter=传送路由器 +container.craneUnboxer=输送带解包机 +container.crateDesh=Desh箱 container.crateIron=铁箱 container.crateSteel=钢箱 container.crateTungsten=钨箱 -container.crystallizer=矿物结晶机 +container.crystallizer=矿物酸化器 container.cyclotron=回旋加速器 container.dfcCore=暗核聚变堆核心 -container.dfcEmitter=DFC激发装置 -container.dfcInjector=DFC燃料注入装置 -container.dfcReceiver=DFC接收装置 -container.dfcStabilizer=DFC聚变稳定器 +container.dfcEmitter=DFC发射器 +container.dfcInjector=DFC燃料喷射器 +container.dfcReceiver=DFC接收器 +container.dfcStabilizer=DFC稳定器 container.diFurnace=高炉 -container.diFurnaceRTG=核能高炉 +container.diFurnaceRTG=核高炉 container.electricFurnace=电炉 container.epress=电动锻压机 container.factoryAdvanced=高级工厂 @@ -571,623 +566,602 @@ container.factoryTitanium=工厂 container.fluidtank=储罐 container.fileCabinet=文件柜 container.forceField=力场发生器 -container.frackingTower=压裂式钻塔 -container.furnaceCombination=组合炉 -container.furnaceIron=铁制熔炉 -container.furnaceSteel=钢制熔炉 +container.frackingTower=水力压裂塔 +container.furnaceCombination=复式炼焦炉 +container.furnaceIron=铁炉 +container.furnaceSteel=钢炉 container.fusionMultiblock=大型聚变反应堆 container.fusionaryWatzPlant=Watz聚变反应堆 container.gasCentrifuge=气体离心机 -container.gasFlare=废气燃烧塔 -container.generator=核反应堆(旧) -container.hadron=粒子加速对撞分析机 +container.gasFlare=高架火炬 +container.generator=研究型反应堆 +container.hadron=粒子加速器 container.heaterFirebox=燃烧室 container.heaterHeatex=热交换器 -container.heaterOilburner=液体燃料燃烧室 +container.heaterOilburner=流体燃烧器 container.heaterOven=加热炉 container.iGenerator=工业发电机 container.keyForge=锁匠桌 container.launchPad=导弹发射台 -container.launchTable=大型导弹发射台 -container.leadBox=安全箱 -container.machineBoiler=原油加热器 +container.launchTable=大型发射台 +container.leadBox=安全盒 +container.machineBoiler=锅炉 container.machineCMB=CMB炼钢炉 container.machineCoal=火力发电机 container.machineCoker=焦化装置 container.machineCrucible=坩埚 container.machineDiesel=柴油发电机 -container.machineElectricBoiler=电力原油加热器 -container.machineFEL=FEL +container.machineElectricBoiler=电锅炉 +container.machineFEL=FEL自由电子激光器 container.machineITER=聚变反应堆 container.machineLargeTurbine=工业汽轮机 container.machineLiquefactor=液化机 -container.machineMixer=工业混合机 +container.machineMixer=工业搅拌机 container.machineRefinery=炼油厂 -container.machineSelenium=星型径向性能发电机 +container.machineSelenium=星型发动机 container.machineShredder=粉碎机 -container.machineSILEX=同位素激光分离室 +container.machineSILEX=SILEX激光同位素分离室 container.machineSolidifier=固化机 container.machineTurbine=汽轮机 -container.machineTurbofan=涡扇发电机 -container.machine_deuterium=氘提取器 -container.machine_schrabidium_transmutator=Sa326异变铀金属嬗变装置 -container.massStorage=存储器 +container.machineTurbofan=涡扇发动机 +container.machine_schrabidium_transmutator=Sa326嬗变装置 +container.massStorage=存储 container.microwave=微波炉 -container.miningDrill=采矿钻机 -container.miningLaser=自动激光采矿钻机 -container.missileAssembly=自定义导弹装配台 +container.miningDrill=自动采矿钻机 +container.miningLaser=采矿激光 +container.missileAssembly=导弹装配台 container.nukeBoy=小男孩 container.nukeCustom=自定义核弹 container.nukeFleija=F.L.E.I.J.A. -container.nukeFstbmb=BF炸弹 +container.nukeFstbmb=野火炸弹 container.nukeFurnace=核熔炉 container.nukeGadget=小玩意 container.nukeMan=胖子 container.nukeMike=常青藤迈克 -container.nukeN2=N²炸弹 +container.nukeN2=N2炸弹 container.nukeN45=N45水雷 container.nukePrototype=原型 container.nukeSolinium=蔚蓝洗礼 container.nukeTsar=沙皇炸弹 -container.oilWell=石油钻井塔 +container.oilWell=钻油塔 container.orbus=重型反物质储罐 container.plasmaHeater=等离子加热器 container.press=火力锻压机 container.puf6_tank=六氟化钚储罐 -container.pumpjack=梁式抽油机 +container.pumpjack=石油钻机 container.radGen=辐射能量发电机 container.radar=雷达 -container.radiobox=FM调频发射机 -container.radiolysis=RTG发电机与辐解室 -container.radiorec=FM调频收音机 +container.radiobox=FM发射机 +container.radiolysis=RTG辐射裂解室 +container.radiorec=FM收音机 container.rbmkBoiler=RBMK石墨式反应堆蒸汽管道 container.rbmkControl=RBMK石墨式反应堆控制棒 container.rbmkControlAuto=RBMK石墨式反应堆自动控制棒 -container.rbmkHeater=RBMK石墨式反应堆流体加热器 +container.rbmkHeater=RBMK流体加热器 container.rbmkOutgasser=RBMK石墨式反应堆辐照通道 -container.rbmkReaSim=RBMK石墨式反应堆燃料棒(雷西姆) +container.rbmkReaSim=RBMK石墨式反应堆燃料棒 (ReaSim) container.rbmkRod=RBMK石墨式反应堆燃料棒 -container.rbmkStorage=RBMK石墨式反应堆存储柱 +container.rbmkStorage=RBMK 燃料存储棒 container.reactorBreeding=增殖反应堆 -container.reactorControl=反应堆远程控模块 +container.reactorControl=反应堆遥控模块 container.reactorLarge=大型核反应堆 -container.reactorResearch=研究性核反应堆 +container.reactorResearch=研究型反应堆 container.reix=Rei-X主机 container.rtg=放射性同位素发电机 container.rtgFurnace=放射性同位素热力炉[RTG] -container.rttyReceiver=红石无线信号接收器 -container.rttySender=红石无线信号发送器 +container.rttyReceiver=无线红石接收器 +container.rttySender=无线红石发射器 container.safe=保险箱 container.satDock=卸货平台 -container.satLinker=卫星ID管理器 +container.satLinker=卫星ID管理 container.siren=警报器 container.soyuzCapsule=货物着陆舱 -container.soyuzLauncher=联盟号巨型运载火箭发射平台 +container.soyuzLauncher=联盟号发射平台 container.storageDrum=核废料处理桶 -container.teleLinker=炮塔ID管理器 +container.teleLinker=炮塔ID管理 container.teleporter=传送机 +container.trainTram=平板载货电车 container.turbinegas=联合循环燃气轮机 -container.turretArty=格雷格 -container.turretChekhov=契诃夫之枪 -container.turretFriendly=友好先生 -container.turretFritz=弗里茨 -container.turretHIMARS=亨利 -container.turretHoward=霍华德 -container.turretJeremy=杰里米 -container.turretMaxwell=麦克斯韦 -container.turretRichard=理查德 -container.turretSentry=布朗 -container.turretTauon=负陶子炮 +container.turretArty=重炮炮塔“格雷格” +container.turretChekhov=重机枪炮塔“契诃夫的枪” +container.turretFriendly=轻机枪炮塔“友好先生” +container.turretFritz=重型火焰喷射器炮塔“弗里茨” +container.turretHIMARS=火箭炮塔“亨利” +container.turretHoward=双联守门员近防系统“霍华德” +container.turretJeremy=重炮炮塔“杰里米” +container.turretMaxwell=高能微波炮塔”麦克斯韦” +container.turretRichard= 火箭炮塔“理查德” +container.turretSentry=哨兵炮塔“布朗” +container.turretTauon=陶子发射器炮塔“陶恩” container.uf6_tank=六氟化铀储罐 -container.vacuumDistill=真空精炼厂 -container.wasteDrum=乏核燃料冷却池 -container.watzPowerplant=Watz瓦茨发电塔 -container.zirnox=锆诺克斯反应堆 - +container.vacuumDistill=真空炼油厂 +container.wasteDrum=乏燃料池 +container.watzPowerplant=Watz发电厂 +container.zirnox=锆诺克斯核反应堆 crucible.aa=高级合金生产 -crucible.cdalloy=镉钢合金生产 +crucible.cdalloy=镉钢生产 crucible.cmb=CMB钢生产 crucible.ferro=铀铁合金生产 -crucible.hematite=赤铁矿->铁 生产 +crucible.hematite=赤铁矿炼铁 crucible.hss=高速钢生产 -crucible.malachite=孔雀石->铜 生产 +crucible.malachite=孔雀石炼铜 crucible.redcopper=紫铜生产 -crucible.steel=钢生产 -crucible.steelMeteoric=陨铁->钢 生产 -crucible.steelPig=生铁->钢 生产 -crucible.steelWrought=锻铁->钢 生产 -crucible.tcalloy=锝-钢合金生产 - -death.attack.acid=%1$s 掉进了酸里. -death.attack.acidPlayer=%1$s 被 %2$s 溶解了. -death.attack.ams=%1$s 沐浴在尚未被人类科学命名的致命粒子中. -death.attack.amsCore=%1$s 在高能奇点之火中蒸发. -death.attack.asbestos=%1$s 现在有权获得经济补偿. -death.attack.bang=%1$s 被炸成一口大小碎片. -death.attack.blackhole=%1$s 被黑洞拉成了意大利面. -death.attack.blender=%1$s 被切割成了很小的,以Byte计数的单位. -death.attack.boat=%1$s 被船砸扁了. -death.attack.boil=%1$s 被 %2$s 活生生煮沸了. -death.attack.boxcar=%1$s 被一节坠落的车厢砸扁了...好吧. -death.attack.broadcast=%1$s 的大脑融化了. -death.attack.building=%1$s 被从天而降的建筑砸中了. -death.attack.cheater=%1$s 的内脏变成了燕麦(???). -death.attack.chopperBullet=%1$s 被 %2$s 屠杀. -death.attack.cloud=%1$s 像在太阳下的冰棒一样融化. -death.attack.cmb=%1$s 被 %2$s 电的焦脆. -death.attack.digamma=%1$s 在追求真理时步入了深渊. -death.attack.electricity=%1$s 被电死. -death.attack.electrified=%1$s 被 %2$s 电死. -death.attack.euthanized=%1$s 被 %2$s 安乐死. -death.attack.euthanizedSelf2=%1$s 获得了达尔文奖. -death.attack.euthanizedSelf=%1$s 把自己安乐死了, 真鸡儿丢人. -death.attack.exhaust=%1$s 被火箭烤成了羊肉串. -death.attack.flamethrower=%1$s 被 %2$s 火化. -death.attack.flamethrower.item=%1$s 被 %2$s 用 %3$s火化. -death.attack.ice=%1$s 被 %2$s 冻成了冰棒. -death.attack.laser=%1$s 被 %2$s 变成了灰烬. -death.attack.laser.item=%1$s 被 %2$s 用 %3$s 变成了灰烬. -death.attack.lead=%1$s 死于铅中毒. -death.attack.lunar=%1$s 忘了给他的重要器官维持系统充电. -death.attack.meteorite=%1$s 被来自外太空的陨石击中,他可以去买彩票了. -death.attack.microwave=%1$s 被过量微波辐射而爆炸了. -death.attack.mku=%1$s 死于不知名的原因. -death.attack.monoxide=%1$s 忘了给一氧化碳探测器换电池. -death.attack.mudPoisoning=%1$s 死于毒泥浆中. -death.attack.nuclearBlast=%1$s 被核爆冲击波炸飞. -death.attack.overdose=%1$s 服药过量后窒息了. -death.attack.pc=%1$s 在粉红色的云中变成了一滩水. -death.attack.plasma=%1$s 被 %2$s 献祭了. -death.attack.radiation=%1$s 死于辐射. -death.attack.revolverBullet=%1$s 被 %2$s 爆头. -death.attack.revolverBullet.item=%1$s 被 %2$s 用 %3$s 爆头. -death.attack.rubble=%1$s 被挤压成了碎片. -death.attack.shrapnel=%1$s 被榴弹碎片炸得千疮百孔. -death.attack.spikes=%1$s 被刺了个透心凉. -death.attack.subAtomic1=%1$s 的原子被 %2$s 摧毁. -death.attack.subAtomic2=%1$s 因为被 %2$s 篡改了实际速度, 导致QPU没有对准. -death.attack.subAtomic3=由于 %2$s, 1$s 的偏差下降到1%以下. -death.attack.subAtomic4=%1$s 因为 %2$s 被零除了. -death.attack.subAtomic5=%1$s 因为 %2$s 无效了. -death.attack.suicide=%1$s 打爆了自己的头. -death.attack.taint=%1$s 死于恶性肿瘤. -death.attack.tau=%1$s 被 %2$s 用带负电荷的陶子打得千疮百孔. -death.attack.tauBlast=%1$s 对XVL1456充能时间过长, 被炸成碎片. -death.attack.teleporter=%1$s 被传送到虚空. - -desc.item.pileRod=§e用于插入钻削过的石墨$§e使用螺丝刀翘出$ -desc.item.rtgDecay=衰变为: %s -desc.item.rtgHeat=热量级别: %s -desc.item.wasteCooling=在乏燃料池中冷却 -desc.item.zirnoxBreedingRod=§2[ZIRNOX锆诺克斯反应堆增殖棒]$§e放在燃料棒旁边以增殖$§e持续 %d ticks -desc.item.zirnoxRod=§a[ZIRNOX锆诺克斯反应堆燃料棒]$§e产生 %1$d 热量每tick$§e持续 %2$d ticks -desc.gui.assembler.warning=§c错误:§r 错误:此装配机需要组装机模板! -desc.gui.chemplant.warning=§c错误:§r 此化工装置需要化学配方模板! -desc.gui.gasCent.enrichment=§2浓缩§r$铀浓缩需要多个离心机串联.$两个离心串联$将仅分离出铀238,$四个离心串联将完全分离六氟化铀. -desc.gui.gasCent.output=§6流体传输§r$液体可以通过输出端口转移到$另一台离心机进行进一步处理. -desc.gui.nukeBoy.desc=§1需要组件:§r$ * 中子屏蔽罩$ * 铀235弹头$ * 次临界铀235标靶$ * 炸药$ * 点火器 -desc.gui.nukeGadget.desc=§1需要组件:§r$ * 4 个初代高能$ 内爆炸药阵列$ * 大型钚核心$ * 线路 -desc.gui.nukeMan.desc=§1需要组件:§r$ * 4 个初代高能$ 内爆炸药阵列$ * 钚核心$ * 炸弹点火装置 -desc.gui.nukeMike.desc=§1需要组件:§r$ * 4 个高能内爆炸药阵列$ * 钚核心$ * 氘冷却装置$ * 铀涂层氘罐$ * 氘罐 -desc.gui.nukeTsar.desc=§1需要组件:§r$ * 4 个高能内爆炸药阵列$ * 钚核心$§9可选:§r$ * 沙皇炸弹核心 -desc.gui.radiolysis.desc=§9说明§r$这种RTG比其他RTG效率更高, $配有一个辐解室,$用于裂解和灭菌. -desc.gui.rtgBFurnace.desc=需要至少15级热量来进行加工$热量越多,运行速度越快$超过最大速度后多余的热量不会产生任何影响$短半衰期的靶丸可能会衰变 -desc.gui.rtg.heat=§e当前热量级别: %s -desc.gui.rtg.pellets=可接受的靶丸: +crucible.steel=钢铁生产 +crucible.steelMeteoric=陨铁炼钢 +crucible.steelPig=生铁炼钢 +crucible.steelWrought=锻铁炼钢 +crucible.tcalloy=锝钢合金生产 +death.attack.acid=%1$s 掉进了酸里 +death.attack.acidPlayer=%1$s 被 %2$s 溶解 +death.attack.ams=%1$s 沐浴在尚未被人类科学命名的致命粒子中 +death.attack.amsCore=%1$s 在奇点之火中蒸发 +death.attack.asbestos=%1$s现在有权获得经济补偿 +death.attack.bang=%1$s 被炸成小块碎片 +death.attack.blackhole=%1$s 粉身碎骨 +death.attack.blender=%1$s 被切成小块 +death.attack.boat=%1$s 被船撞了 +death.attack.boil=%1$s被%2$s活活煮沸 +death.attack.boxcar=%1$s 被一节坠落的车厢撞死了...好吧 +death.attack.broadcast=%1$s 的大脑融化了 +death.attack.building=%1$s 被从天而降的建筑砸中了 +death.attack.cheater=%1$s 的肠子变成了燕麦(???) +death.attack.chopperBullet=%1$s 被 %2$s 屠杀 +death.attack.cloud=%1$s 像冰棒一样在太阳下融化 +death.attack.cmb=%1$s 被 %2$s 搞得嘶嘶作响 +death.attack.digamma=%1$s 踏入深渊 +death.attack.electricity=%1$s 被电死 +death.attack.electrified=%1$s 被 %2$s 电死 +death.attack.euthanized=%1$s 被 %2$s 安乐死 +death.attack.euthanizedSelf2=%1$s 获得了达尔文奖 +death.attack.euthanizedSelf=%1$s 把自己安乐死了,可真傻 +death.attack.exhaust=%1$s 被火箭烤成了羊肉串 +death.attack.flamethrower=%1$s 被 %2$s 火化 +death.attack.flamethrower.item=%1$s 被 %2$s 使用 %3$s 火化 +death.attack.ice=%1$s 被 %2$s 做成了冰棒 +death.attack.laser=%1$s 被 %2$s 变成了灰烬 +death.attack.laser.item=%1$s 被 %2$s 使用 %3$s 变成灰烬 +death.attack.lead=%1$s 死于铅中毒 +death.attack.lunar=%1$s 忘记了给重要器官充电 +death.attack.meteorite=%1$s 被来自外太空的陨石击中 +death.attack.microwave=%1s 因微波辐射爆炸 +death.attack.mku=%1$s 死于不明原因 +death.attack.monoxide=%1$s忘了换一氧化碳探测器的电池 +death.attack.mudPoisoning=%1$s 死于毒泥浆中 +death.attack.nuclearBlast=%1$s 被核爆炸飞 +death.attack.overdose=%1$s 上瘾并窒息 +death.attack.pc=%1$s 在粉红色的云中变成了一个水坑 +death.attack.plasma=%1$s 被 %2$s 烧死 +death.attack.radiation=%1$s 死于辐射 +death.attack.revolverBullet=%1$s 被 %2$s 用 %3$s 击中头部 +death.attack.revolverBullet.item=%1$s 被 %2$s 使用 %3$s 爆头 +death.attack.rubble=%1$s 被碎片压扁了 +death.attack.shrapnel=%1$s 被榴弹碎片炸得千疮百孔 +death.attack.spikes=%1$s被刺穿了 +death.attack.subAtomic1=%1$s 的原子已被 %2$s 销毁. +death.attack.subAtomic2=%1$s 因为被 %2$s 篡改了实际速度,导致QPU没有对准 +death.attack.subAtomic3=由于 %2$s,1$s 的偏差下降到1%以下 +death.attack.subAtomic4=%1$s 因为 %2$s 被零除了 +death.attack.subAtomic5=%1$s 因为 %2$s 无效了 +death.attack.suicide=%1$s 打爆了自己的头 +death.attack.taint=%1$s 死于恶性肿瘤 +death.attack.tau=%1$s 被 %2$s 用带负电荷的陶子射穿 +death.attack.tauBlast=%1$s 对XVL1456充能时间过长,被炸成碎片 +death.attack.teleporter=%1$s 被传送到虚空 +desc.gui.assembler.warning=§c错误:§r此机器需要装配机模板! +desc.gui.chemplant.warning=§c错误:§r此机器需要化工厂模板! +desc.gui.gasCent.enrichment=§2浓缩§r$浓缩铀需要串联$两个离心机串联将离心出$铀燃料,四个离心机串联$将完全分离出铀235。 +desc.gui.gasCent.output=§6流体输送§r$流体可通过输出端口输送至另一台离心机$进行进一步处理。 +desc.gui.nukeBoy.desc=§1需要:§r$ * 中子屏蔽罩$ * 铀-235弹头$ * 次临界铀-235标靶$ * 炸药$ * 点火器 +desc.gui.nukeGadget.desc=§1需要:§r$ * 4个 初代$ 炸药透镜阵列$ * 钚核心$ * 线路 +desc.gui.nukeMan.desc=§1需要:§r$ * 4个 初代$ 炸药透镜阵列$ * 钚核心$ * 点火器 +desc.gui.nukeMike.desc=§1需要:§r$ * 4个 炸药透镜阵列$ * 钚核心$ * 氘冷却装置$ * 铀涂层氘罐 * 氘罐 +desc.gui.nukeTsar.desc=§1需要:§r$ * 4个 炸药透镜阵列$ * 钚核心$§9可选:§r$ * 沙皇炸弹核心 +desc.gui.radiolysis.desc=§9说明§r$该RTG比其他RTG更高效,并且$配备了一个用于$裂解和灭菌的辐解室。 +desc.gui.rtgBFurnace.desc=处理$金-198需要至少15热量。此外,热量越多,运行速度越快$金-198可能会衰变为水银 +desc.gui.rtg.heat=§e当前热等级:%s +desc.gui.rtg.pellets=接受的靶丸: desc.gui.rtg.pelletHeat=%s (%s 热量) -desc.gui.rtg.pelletPower=%s (%s HE/tick) -desc.gui.template=§9模板§r$可以使用机器模板$文件夹制作模板. -desc.gui.turbinegas.automode=§2燃汽轮机自动节流模式§r$通过点击 "AUTO" 按钮, 燃汽轮机$将根据电网所需功率$自动调整发电量 -desc.gui.turbinegas.fuels=§6可接受的燃气:§r$ -desc.gui.turbinegas.warning=§c燃油或润滑油液位低!§r -desc.gui.upgrade=§l可接受的升级:§r -desc.gui.upgrade.afterburner= * §d加力燃烧§r: 最高为3级 -desc.gui.upgrade.effectiveness= * §a效率§r: 最高为3级 -desc.gui.upgrade.overdrive= * §7超频§r: 最高为3级 -desc.gui.upgrade.power= * §1节能§r: 最高为3级 -desc.gui.upgrade.speed= * §4速度§r: 最高为3级 -desc.gui.zirnox.coolant=§3冷却§r$二氧化碳将热量从反应堆核心转移到水中.$这会把水加热成蒸汽. $冷却和蒸汽生产的$效率取决于压力大小. -desc.gui.zirnox.pressure=§6压力§r$可以通过减少反应堆中的CO2量来降低压力.$但是, 压力过低, 冷却效率和$蒸汽产量会降低.$小心熔毁! -desc.gui.zirnox.warning1=§c错误:§r 反应堆正常运行$需要水! -desc.gui.zirnox.warning2=§c错误:§r 反应堆正常运行$需要二氧化碳! - -desc.item.ammo.con_accuracy2=- 精确度大大降低 +desc.gui.rtg.pelletPower=%s (%s HE/刻) +desc.gui.template=§9模板§r$模板可由$机器模板文件夹制作。 +desc.gui.turbinegas.automode=§2自动涡轮机节流模式§r$通过单击“AUTO”按钮,涡轮机$将根据网络所需的功率自动调整发电量$ +desc.gui.turbinegas.fuels=§6可接受的燃料:§r +desc.gui.turbinegas.warning=§c燃油或润滑油液位低!§r +desc.gui.upgrade=§l可接受的升级:§r +desc.gui.upgrade.afterburner=*§d加力燃烧§r:堆叠至3级 +desc.gui.upgrade.effectiveness=*§a效率§r:堆叠至3级 +desc.gui.upgrade.overdrive=*§7超速§r:堆叠至3级 +desc.gui.upgrade.power=*§1节能§r:堆叠至3级 +desc.gui.upgrade.speed=*§4速度§r:堆叠至3级 +desc.gui.zirnox.coolant=§3冷却剂§r$CO2将热量从堆芯转移到水中$这会令它变成成超热蒸汽$冷却和蒸汽生产的效率取决于压力。 +desc.gui.zirnox.pressure=§6压力§r$排放二氧化碳可以降低压力$然而,压力过低,冷却效率和蒸汽产量将降低$小心熔毁! +desc.gui.zirnox.warning1=§c错误:§r反应堆正常运行需要水! +desc.gui.zirnox.warning2=§c错误:§r二氧化碳是反应堆正常运行所必需的! +desc.item.ammo.con_accuracy2=- 精度大幅降低 desc.item.ammo.con_damage=- 伤害大幅降低 -desc.item.ammo.con_heavy_wear=- 严重加剧枪械磨损 -desc.item.ammo.con_ling_fire=- 不会点燃方块 -desc.item.ammo.con_nn=- 甚至都不是一颗核弹 -desc.item.ammo.con_no_damage=- 无直接伤害 -desc.item.ammo.con_no_explode1=- 无爆炸 +desc.item.ammo.con_heavy_wear=- 大幅增加磨损 +desc.item.ammo.con_ling_fire=- 没有火焰 +desc.item.ammo.con_nn=- 甚至没有核爆 +desc.item.ammo.con_no_damage=- 没有伤害 +desc.item.ammo.con_no_explode1=- 非爆炸性 desc.item.ammo.con_no_explode2=- 不破坏方块 -desc.item.ammo.con_no_explode3=- 无溅射伤害 -desc.item.ammo.con_no_fire=- 无燃烧 -desc.item.ammo.con_no_mirv=- 不推荐使用分导式多弹头M24核弹发射器发射 -desc.item.ammo.con_no_projectile=- 无弹丸 -desc.item.ammo.con_penetration=- 没有穿透力 +desc.item.ammo.con_no_explode3=- 无破片伤害 +desc.item.ammo.con_no_fire=- 不能引起燃烧 +desc.item.ammo.con_no_mirv=- 不建议在原始MIRV上使用 +desc.item.ammo.con_no_projectile=- 无抛射物 +desc.item.ammo.con_penetration=- 无穿透能力 desc.item.ammo.con_radius=- 减小爆炸半径 -desc.item.ammo.con_range2=- 射程大大缩短 -desc.item.ammo.con_sing_projectile=- 弹头只有一个 -desc.item.ammo.con_speed=- 火箭弹速度减缓 -desc.item.ammo.con_super_wear=- 枪械磨损严重加剧 -desc.item.ammo.con_wear=- 加剧枪械磨损 -desc.item.ammo.neu_40mm=* 这是其实是一枚40毫米的榴弹! -desc.item.ammo.neu_blank=* 一片空白 +desc.item.ammo.con_range2=- 大幅降低射程 +desc.item.ammo.con_sing_projectile=- 单个弹头 +desc.item.ammo.con_speed=- 弹丸速度降低 +desc.item.ammo.con_super_wear=- 磨损严重增加 +desc.item.ammo.con_wear=- 加剧磨损 +desc.item.ammo.neu_40mm=* 这是一枚40毫米的榴弹,我们把它挤到枪管里! +desc.item.ammo.neu_blank=* 这是空包弹 desc.item.ammo.neu_boat=* 船 -desc.item.ammo.neu_boxcar=* 火车厢 +desc.item.ammo.neu_boxcar=* 车厢 desc.item.ammo.neu_building=* 建筑物 -desc.item.ammo.neu_chlorophyte=* 绿藻 -desc.item.ammo.neu_eraser=* 为了消除一些大麻烦 -desc.item.ammo.neu_fun=* 和你的核谐家庭一起快乐的来放烟花玩耍吧! -desc.item.ammo.neu_heavy_metal=* 含重金属 -desc.item.ammo.neu_homing=* 自动追踪目标 -desc.item.ammo.neu_jolt=* 颠簸 -desc.item.ammo.neu_less_bouncy=* 霰弹更少 -desc.item.ammo.neu_maskman_flechette=* 发射一个能召唤出一场铀涂层镖弹碎片风暴的示踪剂 -desc.item.ammo.neu_maskman_meteorite=* 发射高伤害的子弹并召唤一颗小陨石 -desc.item.ammo.neu_more_bouncy=* 更多霰弹 -desc.item.ammo.neu_no_bounce=* 非霰弹 -desc.item.ammo.neu_no_con=* 没有任何负面作用 lol -desc.item.ammo.neu_starmetal=* 含星辉金属 -desc.item.ammo.neu_tracer=* 曳光弹 -desc.item.ammo.neu_uhh=* 啊哈 -desc.item.ammo.neu_warcrime1=* 从技术上讲使用它是犯了战争罪 -desc.item.ammo.neu_warcrime2=* 一颗子弹犯下两条战争罪! -desc.item.ammo.pro_accurate1=+ 准确性提高 -desc.item.ammo.pro_accurate2=+ 近乎完美的精确度 -desc.item.ammo.pro_balefire=+ B.F.野火 -desc.item.ammo.pro_bomb_count=+ 增加炸弹数量 +desc.item.ammo.neu_chlorophyte=* 叶绿 +desc.item.ammo.neu_eraser=* 用于消除重大错误 +desc.item.ammo.neu_fun=* 全家其乐无穷! +desc.item.ammo.neu_heavy_metal=* 重金属 +desc.item.ammo.neu_homing=* 追踪 +desc.item.ammo.neu_jolt=* 震荡 +desc.item.ammo.neu_less_bouncy=* 弹性更小 +desc.item.ammo.neu_maskman_flechette=* 曳光弹,同时引发一场贫铀飞镖弹风暴 +desc.item.ammo.neu_maskman_meteorite=* 高伤害,同时召唤小陨石 +desc.item.ammo.neu_more_bouncy=* 额外弹性 +desc.item.ammo.neu_no_bounce=* 没有弹性 +desc.item.ammo.neu_no_con=* 没有缺点 +desc.item.ammo.neu_starmetal=* 星辉金属 +desc.item.ammo.neu_tracer=* 示踪剂 +desc.item.ammo.neu_uhh=* Uhhh +desc.item.ammo.neu_warcrime1=* 从技术上来讲触犯了战争罪 +desc.item.ammo.neu_warcrime2=* 一发触犯两条战争罪! +desc.item.ammo.pro_accurate1=+ 提升精度 +desc.item.ammo.pro_accurate2=+ 近乎完美的精度 +desc.item.ammo.pro_balefire=+ 野火 +desc.item.ammo.pro_bomb_count=+ 炸弹数量增加 desc.item.ammo.pro_caustic=+ 腐蚀性 desc.item.ammo.pro_chainsaw=+ 电锯 desc.item.ammo.pro_chlorine=+ 氯气 -desc.item.ammo.pro_damage=+ 伤害增加 -desc.item.ammo.pro_damage_slight=+ 高于平均水平的伤害 -desc.item.ammo.pro_emp=+ EMP电磁脉冲 +desc.item.ammo.pro_damage=+ 提升伤害 +desc.item.ammo.pro_damage_slight=+ 高于平均伤害 +desc.item.ammo.pro_emp=+ EMP desc.item.ammo.pro_explosive=+ 爆炸 -desc.item.ammo.pro_fallout=+ -desc.item.ammo.pro_fit_357=+ 适合所有.357型号的枪械 -desc.item.ammo.pro_flames=+ 火焰燃烧时间增加 -desc.item.ammo.pro_gravity=+ 弹道下坠减少 -desc.item.ammo.pro_heavy_damage=+ 大大增加伤害 -desc.item.ammo.pro_incendiary=+ 燃烧 -desc.item.ammo.pro_lunatic=+ 月都科技 -desc.item.ammo.pro_marauder=+ 瞬间让烦人和不平衡的敌人灰飞烟灭 -desc.item.ammo.pro_mining=+ 可以把所有方块炸成掉落物 -desc.item.ammo.pro_no_gravity=+ 不再受重力影响 -desc.item.ammo.pro_nuclear=+ 小型核爆 +desc.item.ammo.pro_fallout=+ 辐射尘 +desc.item.ammo.pro_fit_357=+ 适用于所有.357枪械 +desc.item.ammo.pro_flames=+ 火焰喷射量增加 +desc.item.ammo.pro_gravity=+ 下坠降低 +desc.item.ammo.pro_heavy_damage=+ 大幅增加伤害 +desc.item.ammo.pro_incendiary=+ 能引起燃烧 +desc.item.ammo.pro_lunatic=+ 疯子 +desc.item.ammo.pro_marauder=+ 立即消除烦人的和不平衡的敌人 +desc.item.ammo.pro_mining=+ 爆炸使所有方块掉落 +desc.item.ammo.pro_no_gravity=+ 不受重力影响 +desc.item.ammo.pro_nuclear=+ 核爆 desc.item.ammo.pro_penetration=+ 穿透 -desc.item.ammo.pro_percussion=+ 冲击爆破 -desc.item.ammo.pro_phosphorus=+ 引起磷烧伤 -desc.item.ammo.pro_phosphorus_splash=+ 飞溅磷烧伤 -desc.item.ammo.pro_poison_gas=+ 毒气扩散 -desc.item.ammo.pro_radius=+ 增加爆炸范围 -desc.item.ammo.pro_radius_high=+ 爆炸范围大大增加 +desc.item.ammo.pro_percussion=+ 冲击波 +desc.item.ammo.pro_phosphorus=+ 可致磷烧伤 +desc.item.ammo.pro_phosphorus_splash=+ 磷飞溅 +desc.item.ammo.pro_poison_gas=+ 毒物飞溅 +desc.item.ammo.pro_radius=+ 增加爆炸半径 +desc.item.ammo.pro_radius_high=+ 大幅增加爆炸半径 desc.item.ammo.pro_range=+ 增加射程 -desc.item.ammo.pro_rocket=+ 火箭弹 +desc.item.ammo.pro_rocket=+ 火箭 desc.item.ammo.pro_rocket_propelled=+ 火箭推进 desc.item.ammo.pro_shrapnel=+ 破片 -desc.item.ammo.pro_speed=+ 火箭弹速度提高 -desc.item.ammo.pro_stunning=+ 震撼 -desc.item.ammo.pro_toxic=+ 毒性 -desc.item.ammo.pro_wear=+ 枪械磨损减少 +desc.item.ammo.pro_speed=+ 提高弹头飞行速度 +desc.item.ammo.pro_stunning=+ 眩晕 +desc.item.ammo.pro_toxic=+ 剧毒 +desc.item.ammo.pro_wear=+ 减少磨损 desc.item.ammo.pro_withering=+ 凋零 -desc.item.armorMod.display=来显示该盔甲上所安装的配件的效果 -desc.item.battery.charge=电量: %s / %sHE -desc.item.battery.chargePerc=电量: %s%% -desc.item.battery.chargeRate=充电速率: %sHE/tick -desc.item.battery.dischargeRate=放电速率: %sHE/tick -desc.item.durability=耐久度: %s -desc.item.grenade.fuse=引爆延时: %s -desc.item.grenade.fuseImpact=接触爆炸 -desc.item.grenade.fuseInstant=即爆 -desc.item.gun.ammo=弹药量 %s -desc.item.gun.ammoBelt=自动从背包中装填 -desc.item.gun.ammoEnergy=能量; %sHE 每发 +desc.item.armorMod.display=显示已安装的装甲模块 +desc.item.battery.charge=储能: %s / %sHE +desc.item.battery.chargePerc=储能: %s%% +desc.item.battery.chargeRate=充电效率: %sHE/刻 +desc.item.battery.dischargeRate=放电效率: %sHE/刻 +desc.item.durability=耐久: %s +desc.item.grenade.fuse=引信: %s +desc.item.grenade.fuseImpact=碰炸 +desc.item.grenade.fuseInstant=瞬发 +desc.item.gun.ammo=弹药 %s +desc.item.gun.ammoBelt=从背包中使用 +desc.item.gun.ammoEnergy=能耗; %sHE 每发 desc.item.gun.ammoEnergyAlt=%sHE 每发 desc.item.gun.ammoMag=%s / %s desc.item.gun.ammoType=弹药类型: %s -desc.item.gun.ammoTypeAlt=特殊弹药: %s +desc.item.gun.ammoTypeAlt=辅助弹药: %s desc.item.gun.damage=伤害: %s - %s desc.item.gun.damageAlt=伤害: %s -desc.item.gun.lore=查看深入的传说 +desc.item.gun.lore=查看深入的知识 desc.item.gun.loreFunc=查看深入功能 desc.item.gun.manufacturer=制造商: %s -desc.item.gun.name=枪械名称: %s -desc.item.gun.pellets=弹丸: %s - %s -desc.item.gun.penetration=护甲穿透值: %s -desc.item.kitArmor=现穿的护甲将被新护甲取代. -desc.item.kitHaz=防护服将取代现穿的护甲. -desc.item.kitPack=真便宜! -desc.item.kitPool=请在打开前清空你的背包! -desc.item.pileRod=§e用于插入钻削过的石墨$§e使用螺丝刀翘出$ -desc.item.rtgDecay=衰变为: %s -desc.item.rtgHeat=功率水平: %s +desc.item.gun.name=名称: %s +desc.item.gun.pellets=弹丸数:%s-%s +desc.item.gun.penetration=装甲穿透值: %s +desc.item.kitArmor=装甲将被新的装备取代。 +desc.item.kitHaz=装甲将被防护服取代。 +desc.item.kitPack=真便宜! +desc.item.kitPool=请在打开前清空背包库存! +desc.item.pileRod=§e使用钻孔石墨插入$§E使用螺丝刀拔出$ +desc.item.rtgDecay=衰变为:%s +desc.item.rtgHeat=功率级别:%s desc.item.storage.capacity=容量 %s%%s -desc.item.storage.proscons=to view pros cons list +desc.item.storage.proscons=查看利弊列表 desc.misc.357=.357 马格南 desc.misc.556=.223 雷明顿 -desc.misc.762=.308 温切斯特 -desc.misc.func=§n-- 功能 -- +desc.misc.762=.308 温彻斯特 +desc.misc.func=§n-- 作用 -- desc.misc.lanthanum="镧" -desc.misc.lctrl=§8按住 <§e§oLCTRL§8§o> %s -desc.misc.lore=§n-- 剧情 -- -desc.misc.lshift=§8按住 <§e§oLSHIFT§8§o> %s -desc.misc.luna=§o20x155mm 月都科技 +desc.misc.lctrl=§8按住 <§e§o左CTRL§8§o> %s +desc.misc.lore=§n-- 知识 -- +desc.misc.lshift=§8按住 <§e§o左SHIFT§8§o> %s +desc.misc.luna=§o20x155mm Lunatic desc.misc.meltPoint=熔点: §c%s -desc.misc.noPos=未设置触发位置! -desc.misc.pos=设置触发位置为 : %s, %s, %s -desc.misc.posSet=触发位置已设置! -desc.item.wasteCooling=在乏燃料池罐中冷却 -desc.item.zirnoxBreedingRod=§2[ZIRNOX镁诺克斯反应堆增殖棒]$§e放在燃料棒旁边以增殖$§e持续 %d ticks -desc.item.zirnoxRod=§a[ZIRNOX镁诺克斯反应堆燃料棒]$§eGenerates %1$d 热量每tick$§e持续 %2$d ticks - -digamma.playerDigamma=玩家Ϝ迪伽马辐照水平: -digamma.playerHealth=玩家所受Ϝ迪伽马辐照影响: -digamma.playerRes=玩家Ϝ迪伽马防护水平: -digamma.title=玩家Ϝ迪伽马辐射自检器 - -entity.entity_cyber_crab.name=机械螃蟹 -entity.entity_elder_one.name=Quackos古老者 +desc.misc.noPos=未设置位置! +desc.misc.pos=将位置设置为:%s,%s,%s +desc.misc.posSet=位置已设置! +desc.item.wasteCooling=在乏燃料池中冷却 +desc.item.zirnoxBreedingRod=§2[ZIRNOX增殖棒]$§e放在燃料棒旁边增殖$§e持续 %d 刻 +desc.item.zirnoxRod=§a[ZIRNOX燃料棒]$§e每刻产生 %1$d 热量$§e持续 %2$d 刻 +digamma.playerDigamma=玩家F-迪伽马辐照水平: +digamma.playerHealth=玩家所受F-迪伽马辐照影响: +digamma.playerRes=玩家F-迪伽马防护水平: +digamma.title=玩家F-迪伽马辐射自检器 +entity.entity_cyber_crab.name=赛博螃蟹 +entity.entity_elder_one.name=上古鸭神 entity.entity_fucc_a_ducc.name=鸭子 -entity.entity_ntm_fbi.name=FBI特工(暴徒) +entity.entity_ntm_fbi.name=FBI探员 entity.entity_ntm_radiation_blaze.name=核融元素 entity.hbm.entity_ntm_ufo.name=火星入侵者飞船 entity.entity_mob_hunter_chopper.name=猎人直升机 entity.entity_mob_mask_man.name=面具人 +entity.entity_mob_gold_creeper.name=黄金爬行者 entity.entity_mob_nuclear_creeper.name=核爆爬行者 entity.entity_mob_phosgene_creeper.name=光气爬行者 entity.entity_mob_tainted_creeper.name=污染爬行者 -entity.entity_taint_crab.name=腐化机械螃蟹 -entity.entity_tesla_crab.name=磁暴机械螃蟹 -entity.hbm.entity_balls_o_tron.name=世-界-毁-灭-者 O-TRON -entity.hbm.entity_balls_o_tron_seg.name=世-界-毁-灭-者 O-TRON 躯干 +entity.entity_mob_volatile_creeper.name=不稳定爬行者 +entity.entity_taint_crab.name=污染螃蟹 +entity.entity_tesla_crab.name=磁暴螃蟹 +entity.hbm.entity_balls_o_tron.name=机械蠕虫 +entity.hbm.entity_balls_o_tron_seg.name=机械蠕虫 entity.hbm.entity_bullet.name=子弹 entity.hbm.entity_rocket.name=火箭弹 -entity.hbm.entity_schrabnel.name=弹片 - -flare.ignition=点火开关 -flare.valve=燃气阀门 - +entity.hbm.entity_schrabnel.name=Schrabnel +flare.ignition=点火装置 +flare.valve=流量阀 fluid.acid_fluid=酸 fluid.corium_fluid=堆芯熔融物 fluid.mud_fluid=毒泥 -fluid.schrabidic_fluid=Sa326元素酸液 +fluid.schrabidic_fluid=Sa酸 fluid.toxic_fluid=绿色软泥 -fluid.volcanic_lava_fluid=火山岩浆 - -foundry.filter=过滤: %s -foundry.inverted=红石控制反转 +fluid.volcanic_lava_fluid=火山熔岩 +foundry.filter=筛选器:%s +foundry.inverted=红石信号反转 foundry.invertFilter=过滤器反转 -foundry.noCast=未安装模具! - -geiger.chunkRad=当前区块辐射量: +foundry.noCast=未安装模具! +geiger.chunkRad=当前区块辐射: geiger.envRad=环境总辐射量: -geiger.playerRad=玩家辐射量: -geiger.playerRes=玩家辐射抗性: -geiger.title=盖格计数器 -geiger.title.dosimeter=放射量测定器 - -gun.make.ARMALITE=阿玛莱特 -gun.make.AUTO_ORDINANCE=AOC美国自动武器公司 -gun.make.BAE=BAE系统公司 +geiger.playerRad=玩家辐射: +geiger.playerRes=辐射抗性: +geiger.title=盖革计数器 +geiger.title.dosimeter=剂量计 +gun.make.ARMALITE=阿玛莱特公司 +gun.make.AUTO_ORDINANCE=美国自动武器公司 +gun.make.BAE=英国宇航系统公司 gun.make.BENELLI=伯奈利武器公司 gun.make.BLACK_MESA=黑山研究所 -gun.make.CERIX=塞里克斯·马格努斯铸造世界 -gun.make.COLT=柯尔特公司 -gun.make.COMBINE=多维空间联合帝国 -gun.make.CUBE=魔方2: 醋焖牛肉 -gun.make.ENZINGER=恩辛格联盟 -gun.make.EQUESTRIA=小马国导弹系统公司 -gun.make.FLIMFLAM="欺骗" 工业 -gun.make.F_STRONG=斯特朗堡 -gun.make.GLORIA=格洛里亚股份有限公司 +gun.make.CERIX=赛里克斯·马格努斯锻造世界 +gun.make.COLT=柯尔特制造公司 +gun.make.COMBINE=世界工会 +gun.make.CUBE=Cube 2: Sauerbraten +gun.make.ENZINGER=Enzinger工会 +gun.make.EQUESTRIA=小马国导弹系统 +gun.make.FLIMFLAM=FlimFlam“欺骗”工业 +gun.make.F_STRONG=史特朗堡 +gun.make.GLORIA=GLORIA公司 gun.make.HASBRO=孩之宝 -gun.make.H_AND_K=赫克勒-科赫公司 -gun.make.H_AND_R=哈灵顿·理查森公司 +gun.make.H_AND_K=黑克勒和科赫武器公司 +gun.make.H_AND_R=哈林顿-理查森武器公司 gun.make.IF=蹄铁军工 -gun.make.IMI=以色列军事工业公司 -gun.make.IMI_BIGMT=以色列军事工业公司 / 巨山研发中心 -gun.make.LANGFORD=兰福德研究实验室 +gun.make.IMI=以色列军事工业 +gun.make.IMI_BIGMT=以色列军事工业公司/大型MT +gun.make.LANGFORD=朗福德研究实验室 gun.make.LUNA=月球防御公司 -gun.make.MAGNUM_R_IMI=马格南武器研究所 / 以色列军事工业公司 -gun.make.MANN=开放曼恩公司.. -gun.make.MAXIM=海勒姆·史蒂文斯·马克沁 -gun.make.METRO=<<地铁>>中的军械工人 +gun.make.MAGNUM_R_IMI=马格南研究公司 / 以色列军事工业公司 +gun.make.MANN=Open Mann公司 +gun.make.MAXIM=海勒姆·马克沁 +gun.make.METRO=地铁枪手 gun.make.MWT=MWT原型实验室 -gun.make.NAZI=埃尔马.威客兵工厂 +gun.make.NAZI=埃尔福特机械制造厂 gun.make.NONE=- -gun.make.RAYTHEON=雷神导弹系统公司 -gun.make.REMINGTON=雷明顿武器公司 +gun.make.RAYTHEON=导弹系统公司 +gun.make.REMINGTON=雷明登武器公司 gun.make.ROCKWELL=罗克韦尔国际公司 -gun.make.ROCKWELL_U=罗克韦尔国际公司? +gun.make.ROCKWELL_U=罗克韦尔国际公司? gun.make.RYAN=莱恩工业 -gun.make.SAAB=博福斯动力公司 -gun.make.SACO=萨科防务 / 美国军械 -gun.make.TULSKY=图拉兵工厂 -gun.make.UAC=联合航天公司 +gun.make.SAAB=萨博博福斯动力公司 +gun.make.SACO=萨科防卫军械 +gun.make.TULSKY=图拉武器厂 +gun.make.UAC=联合宇宙航空公司 gun.make.UNKNOWN=??? -gun.make.WESTTEK=西部科技 -gun.make.WGW=威廉·古斯特洛夫·沃克 -gun.make.WINCHESTER=温彻斯特连发轻武器公司 -gun.make.WINCHESTER_BIGMT=温彻斯特连发轻武器公司 / 巨山研发中心 - -gun.name.ar15_50=AR-15 .50 BMG 模式 -gun.name.baeAR=不列颠标准型突击步枪 -gun.name.bel=B.F.反物质蛋弹射器 -gun.name.benelli=Benelli M4 Super 90 -gun.name.benelliDrum=Benelli M4 Super 90 (Drum Magazine Modification) +gun.make.WESTTEK=WestTek研究设施 +gun.make.WGW=威廉·古斯特洛夫·维尔克 +gun.make.WINCHESTER=温彻斯特速射武器公司 +gun.make.WINCHESTER_BIGMT=温彻斯特速射武器公司/大型MT +gun.name.ar15_50=AR-15 .50BMG型 +gun.name.baeAR=英国制式突击步枪 +gun.name.bel=野火蛋发射器 +gun.name.benelli=伯奈利M4 Super 90霰弹枪 +gun.name.benelliDrum=伯奈利M4 Super 90霰弹枪 (泵动供弹改进型) gun.name.bio=RI No. 2 Mark 1 -gun.name.bolter=曼提柯尔花纹爆弹枪 -gun.name.cPython=Colt Python -gun.name.cz53=CZ53单兵火神炮 -gun.name.cz57=CZ57复仇火神炮 -gun.name.dart=气动射针枪 -gun.name.deagle=IMI沙漠之鹰 -gun.name.emp=EMP磁暴步枪 -gun.name.extinguisher=PROTEX6kg灭火器 -gun.name.ffiV=普通左轮手枪 -gun.name.ffiVInox=强化左轮手枪 -gun.name.ffiVLead=核子左轮手枪 -gun.name.ffiVN1=梦魇左轮手枪(初代) -gun.name.ffiVN2=梦魇左轮手枪(黑暗) -gun.name.ffiVUltra=Sa326元素左轮手枪 -gun.name.ffivBling=黄金左轮手枪 -gun.name.ffivSatur=土星金属手枪 -gun.name.g36=Heckler & Koch Gewehr 36 -gun.name.gPistol=HK69榴弹手枪 -gun.name.gustav=M1卡尔·古斯塔夫无后座力步枪 -gun.name.ifHorseshoe=IF-18蹄铁军工诺华克 -gun.name.ifPit=IF-18蹄铁军工红钥匙左轮手枪 -gun.name.ifScope=小皮的IF-18蹄铁军工左轮手枪 -gun.name.ifStorm=IF-18蹄铁军工银色风暴 -gun.name.ifVanity=黑杰克的IF-18蹄铁军工五发装左轮枪 -gun.name.karl=M1卡尔火箭筒 -gun.name.ks23=萨缪尔-23大口径霰弹枪 -gun.name.lacunae=CZ33地狱火神 -gun.name.lasetDet=霍普维尔激光引爆器 -gun.name.lunaAR=1986 Bishamonten type Assault Rifle +gun.name.bolter=Manticora Pattern爆弹枪 +gun.name.cPython=柯尔特蟒蛇 +gun.name.cz53=CZ53 单兵转轮机枪 +gun.name.cz57=CZ57 复仇者机枪 +gun.name.dart=针枪 +gun.name.deagle=以色列军事工业公司沙漠之鹰 +gun.name.emp=EMP投射器 +gun.name.extinguisher=PROTEX灭火器6kg +gun.name.ffiV=FFI Viper +gun.name.ffiVInox=FFI Viper Inox +gun.name.ffiVLead=FFI Viper Lead +gun.name.ffiVN1=FFI Viper N1 +gun.name.ffiVN2=FFI Viper N2 +gun.name.ffiVUltra=FFI Viper Ultra +gun.name.ffivBling=FFI Viper Bling +gun.name.ffivSatur=FFI Viper D-25A +gun.name.g36=HK G36突击步枪 +gun.name.gPistol=HK69A1 手持单发榴弹发射器 +gun.name.gustav=卡尔·古斯塔夫M1无后坐力炮 +gun.name.ifHorseshoe=IF-18 蹄铁 +gun.name.ifPit=IF-18 蹄铁 Bottomless Pit +gun.name.ifScope=IF-18 蹄铁 Scoped +gun.name.ifStorm=IF-18 蹄铁 银色风暴 +gun.name.ifVanity=IF-18 蹄铁 Vanity +gun.name.karl=M1 卡尔·古斯塔夫 +gun.name.ks23=KS-23霰弹枪 +gun.name.lacunae=Auntie Lacunae +gun.name.lasetDet=霍普维尔激光雷管 +gun.name.lunaAR=1986 Bishamonten式突击步枪 gun.name.lunaGun=1978 Rāhula type Standard Issue Sidearm (Revision 2) -gun.name.lunaHLR=1944 Chang'e type Light Machine Gun -gun.name.lunaShotty=1978 Guan Yu type Scattergun (Revision 1) -gun.name.lunaSMG=1956 Ānanda type Submachine Gun -gun.name.lunaSniper=1915 “后羿” 型反物质来复枪 -gun.name.lunaTWR=Time Warp Rifle -gun.name.m2=.50口径勃朗宁机枪, M2, HB -gun.name.m42=M-42战术核弹射器 -gun.name.m42MIRV=M-42 核弹弹射器"试验性子母弹头 -gun.name.m60= 7.62 mm口径机枪, M60 +gun.name.lunaHLR=1944嫦娥式轻机枪 +gun.name.lunaShotty=1978年关羽式散弹枪(第1次修订) +gun.name.lunaSMG=1956 ānanda type Submachine Gun +gun.name.lunaSniper=1915后羿式反器材步枪 +gun.name.lunaTWR=时间扭曲步枪 +gun.name.m2=M2式勃朗宁大口径重机枪 +gun.name.m42=M-42战术核弹发射器 +gun.name.m42MIRV=M-42实验MIRV +gun.name.m60=7.62毫米口径M60机枪 gun.name.maxim=马克沁机枪 -gun.name.maximDouble=双管马克沁机枪 -gun.name.mg3=通用MG3机枪 - .50 模式 -gun.name.mp40=Mp40冲锋枪 -gun.name.nerf=NERF blaster of unknown design -gun.name.osipr=看守者暗能量脉冲步枪 -gun.name.panz=坦克杀手54 -gun.name.quadro=四联装制导便携式电视制导导弹发射器 +gun.name.maximDouble=双重马克沁机枪 +gun.name.mg3=MG-42通用机枪 +gun.name.mp40=MP40冲锋枪 +gun.name.nerf=某些无良记者眼中的大规模杀伤性武器 +gun.name.osipr=守望标准型脉冲步枪 +gun.name.panz=反坦克火箭来复枪 54 +gun.name.quadro=OpenQuadro便携式导弹发射器 gun.name.remington870=雷明顿870 -gun.name.revolverCursed=被诅咒的不列颠标准发行版左轮手枪 -gun.name.sauer=斯坦.索尔的萨缪尔-23霰 -gun.name.spas12= -gun.name.spiw=H&R弗莱切特镖 -gun.name.stinger=FIM-92“毒刺”便携式防空导弹 -gun.name.stingerOneSky=天马防空导弹 -gun.name.supershotty=Double-Barreled Combat Shotgun -gun.name.tau=XVL1456 负陶子加农炮原型 -gun.name.tommy9=9mm口径M1A1冲锋枪 +gun.name.revolverCursed=不列颠标准问题电动手枪 +gun.name.sauer=绍尔猎枪 +gun.name.spas12=弗兰基SPAS-12式12号霰弹枪 +gun.name.spiw=H&R SPIW +gun.name.stinger=FIM-92毒刺便携式防空系统 +gun.name.stingerOneSky=The One Sky 毒刺便携式防空系统 +gun.name.supershotty=双管战斗霰弹枪 +gun.name.tau=XVL1456 陶子加农炮 +gun.name.tommy9=M1A1冲锋枪9毫米型 gun.name.tommy=M1A1冲锋枪 -gun.name.topaz=帕托石重型火焰枪 -gun.name.uacCarbine=UAC-41 Carbine +gun.name.topaz=重型火焰燃烧器 +gun.name.uacCarbine=UAC-41卡宾枪 gun.name.uacDeagle=UAC-H54 "Martian Raptor" Automag -gun.name.uacDMR=UAC-30 Designated Marksman Rifle -gun.name.uacLMG=UAC-49 Light Machine Gun -gun.name.uacPistol=UAC-B950 .45 Standard Issue Handgun -gun.name.uacSMG=UAC-17 Compact Sub-Machine Gun -gun.name.uboinik=先进制式霰弹枪 -gun.name.uzi=IMI乌齐冲锋枪 -gun.name.uziSatur=IMI D-25A乌齐冲锋枪 -gun.name.win1887=1887温彻斯特霰弹枪(原型) -gun.name.win1887Inox=1887温彻斯特霰弹枪(黑暗) -gun.name.win20Inox=温彻斯特拉栓步枪(原型) -gun.name.win20Poly=温彻斯特拉栓步枪(绿) -gun.name.win20Satur=D-25A星辉金属温彻斯特来复枪 -gun.name.zomg=EMC101棱镜负能量加农炮 - -hadron.analysis=分析中... -hadron.buttonOn=分析室(如有)开启 +gun.name.uacDMR=UAC-30 精确射手步枪 +gun.name.uacLMG=UAC-49轻机枪 +gun.name.uacPistol=UAC-B950 .45 标准型手枪 +gun.name.uacSMG=UAC-17小型冲锋枪 +gun.name.uboinik=Uboinik转轮霰弹枪 +gun.name.uzi=IMI Uzi +gun.name.uziSatur=IMI Uzi D-25A +gun.name.win1887=温彻斯特M1887杠杆式连发霰弹枪 +gun.name.win1887Inox=温彻斯特M1887杠杆式连发霰弹枪 Inox +gun.name.win20Inox=温彻斯特20型Inox +gun.name.win20Poly=温彻斯特20型聚合物 +gun.name.win20Satur=温彻斯特20型 D-25A +gun.name.zomg=EMC101棱镜负能量炮 +hadron.analysis=正在分析... +hadron.buttonOn=分析室启动(如果存在) hadron.buttonOff=分析室关闭 hadron.error_generic=错误! -hadron.error_no_charge=错误 0x01 [电量不足] -hadron.error_no_analysis=错误 0x02 [无分析室] -hadron.error_obstructed_channel=错误 0x03 [粒子通道堵塞] -hadron.error_expected_coil=错误 0x04 [线圈缺失] -hadron.error_malformed_segment=错误 0x05 [加速器结构错误] +hadron.error_no_charge=错误 0x01 [能量不足] +hadron.error_no_analysis=错误 0x02 [无法分析] +hadron.error_obstructed_channel=错误 0x03 [通道阻塞] +hadron.error_expected_coil=错误 0x04 [缺少线圈] +hadron.error_malformed_segment=错误 0x05 [错误区段] hadron.error_analysis_too_long=错误 0x06 [分析室过长] -hadron.error_analysis_too_short=错误 0x07 [分析室过短] -hadron.error_diode_collision=错误 0x08 [粒子与肖特基粒子二极管碰撞] -hadron.error_branching_turn=错误 0x09 [转弯处分岔] -hadron.hopper0=§e普通模式:$所有物品都可用来对撞. -hadron.hopper1=§e过滤模式:$对撞机输入口将始终保留一个物品. -hadron.idle=闲置 -hadron.modeCircular=§e环形加速器模式:$磁力加速通道必须接回加速器核心.$很多制造配方所要求的模式. -hadron.modeLine=§e直线加速器模式:$加速器末端有分析室.$可用的制造配方更少. -hadron.noresult=无结果. +hadron.error_analysis_too_short=错误 0x06 [分析室过长] +hadron.error_diode_collision=错误 0x08 [二极管方向错误] +hadron.error_branching_turn=错误 0x09 [多处分支] +hadron.hopper0=§e正常模式:$将使用所有项目 +hadron.hopper1=§e料斗模式:$ 将始终保留一个项目 +hadron.idle=空闲 +hadron.modeCircular=§e环形加速器模式:$磁铁必须环绕核心$解锁更多配方 +hadron.modeLine=§e直线加速器模式:$加速器末端有分析室$更少的配方 +hadron.noresult=无结果 hadron.noresult_too_slow=推进力不足! -hadron.noresult_wrong_ingredient=无效配方! -hadron.noresult_wrong_mode=模式错误! +hadron.noresult_wrong_ingredient=无效配方! +hadron.noresult_wrong_mode=错误模式! hadron.progress=正在进行中... -hadron.stats=上次运行结果: -hadron.stats_coord=错误位置: %s / %s / %s -hadron.stats_momentum=推进力: % -hadron.success=完成! - -hazard.prot=可以提供的危害防护: -hazard.noprot=不能提供的危害防护: -hazard.bacteria=细菌 / 气溶胶 -hazard.corrosive=腐蚀性气体 -hazard.gasChlorine=化学毒气 -hazard.gasInert=惰性气体 / 窒息性气体 +hadron.stats=上一次结果: +hadron.stats_coord=错误位置:%s/%s/%s +hadron.stats_momentum=推力: %s +hadron.success=已完成! +hazard.prot=防止危险: +hazard.noprot=不能防止: +hazard.bacteria=细菌/气溶胶 +hazard.corrosive=腐蚀性烟雾 +hazard.gasChlorine=化学气体 +hazard.gasInert=惰性气体/沥青 hazard.gasMonoxide=一氧化碳 -hazard.light=闪光 +hazard.light=亮光 hazard.nerveAgent=神经毒剂 -hazard.neverProtects=绝对不会提供的危害防护: -hazard.particleCoarse=大气漂浮颗粒物 -hazard.particleFine=颗粒物 -hazard.sand=眼球刺激物 - -hbm.key=NTM 热键 +hazard.neverProtects=它永远不能防止: +hazard.particleCoarse=空气微粒 +hazard.particleFine=微粒 +hazard.sand=眼睛刺激物 +hbm.key=HBM的核科技mod 热键 hbm.key.calculator=计算器 -hbm.key.craneLoad=抽出/插入燃料棒 -hbm.key.craneMoveDown=起重机向后移动 -hbm.key.craneMoveLeft=起重机向左移动 -hbm.key.craneMoveRight=起重机向右移动 -hbm.key.craneMoveUp=起重机向前移动 +hbm.key.craneLoad=装卸起重机 +hbm.key.craneMoveDown=向后移动起重机 +hbm.key.craneMoveLeft=向左移动起重机 +hbm.key.craneMoveRight=向右移动起重机 +hbm.key.craneMoveUp=向前移动起重机 hbm.key.dash=冲刺 (在config中解绑) -hbm.key.toggleBack=喷气背包开关 -hbm.key.toggleHUD=装甲HUD显示开关 -hbm.key.reload=装填 - +hbm.key.toggleBack=开关 喷气背包 +hbm.key.toggleHUD=开关 HUD +hbm.key.reload=装弹 hbmfluid.acid=过氧化氢 hbmfluid.amat=反物质 hbmfluid.aromatics=芳香烃 -hbmfluid.aschrab=反Sa326施布拉比迪物质 -hbmfluid.balefire=BF反物质火箭燃料 +hbmfluid.aschrab=反Sa326 +hbmfluid.balefire=野火火箭燃料 hbmfluid.biofuel=生物燃料 hbmfluid.biogas=沼气 hbmfluid.bitumen=沥青 -hbmfluid.blood=血液 -hbmfluid.blood_hot=热血液 +hbmfluid.blood=血 +hbmfluid.blood_hot=热的血 hbmfluid.carbondioxide=二氧化碳 hbmfluid.chlorine=氯气 hbmfluid.cholesterol=胆固醇溶液 -hbmfluid.coalcreosote=煤焦油杂酚油 +hbmfluid.coalcreosote=煤焦杂酚油 hbmfluid.coalgas=煤汽油 hbmfluid.coalgas_leaded=含铅煤汽油 -hbmfluid.coaloil=煤焦油 +hbmfluid.coaloil=煤液化油 hbmfluid.colloid=胶体 hbmfluid.coolant=冷却液 hbmfluid.coolant_hot=热冷却液 hbmfluid.crackoil=裂化油 -hbmfluid.cryogel=超低温凝胶 -hbmfluid.death=铱锇酸溶液 +hbmfluid.cryogel=冷凝胶 +hbmfluid.death=锇酸溶液 hbmfluid.deuterium=氘 hbmfluid.diesel=柴油 -hbmfluid.diesel_crack_reform=高辛烷值裂解柴油 +hbmfluid.diesel_crack=裂化柴油 +hbmfluid.diesel_crack_reform=高辛烷值裂化柴油 hbmfluid.diesel_reform=高辛烷值柴油 hbmfluid.egg=蛋溶解液 hbmfluid.estradiol=雌二醇溶液 -hbmfluid.diesel_crack=裂化柴油 -hbmfluid.diesel_crack_reform=高辛烷值裂解柴油 -hbmfluid.diesel_reform=高辛烷值柴油 hbmfluid.ethanol=乙醇 -hbmfluid.enderjuice=末影液 +hbmfluid.enderjuice=末影果汁 +hbmfluid.fishoil=鱼油 hbmfluid.fracksol=压裂液 hbmfluid.gas=天然气 hbmfluid.gas_coker=焦化气 -hbmfluid.gasoline=精制汽油 -hbmfluid.gasoline_leaded=含铅精制汽油 -hbmfluid.heatingoil=民用燃油 -hbmfluid.heatingoil_vacuum=加热重油 +hbmfluid.gasoline=含铅汽油基油 +hbmfluid.gasoline_leaded=含铅汽油 +hbmfluid.heatingoil=燃油 +hbmfluid.heatingoil_vacuum=重质燃油 hbmfluid.heavyoil=重油 -hbmfluid.heavyoil_vacuum=真空精炼重油 +hbmfluid.heavyoil_vacuum=减压重油 hbmfluid.heavywater=重水 hbmfluid.helium3=氦-3 hbmfluid.hotcrackoil=热裂化油 @@ -1200,31 +1174,31 @@ hbmfluid.kerosene_reform=喷气燃料 hbmfluid.lava=岩浆 hbmfluid.lightoil=轻油 hbmfluid.lightoil_crack=裂化轻油 -hbmfluid.lightoil_vacuum=真空精炼轻油 -hbmfluid.lpg=LPG -hbmfluid.lubricant=发动机润滑油 +hbmfluid.lightoil_vacuum=减压轻油 +hbmfluid.lpg=液化石油气 hbmfluid.lubricant=润滑油 hbmfluid.mercury=水银 -hbmfluid.mug=杯根啤酒 -hbmfluid.mug_hot=热杯根啤酒 +hbmfluid.mug=Mug牌树根饮料 +hbmfluid.mug_hot=热的Mug牌树根饮料 hbmfluid.mustardgas=芥子气 hbmfluid.naphtha=石脑油 hbmfluid.naphtha_coker=焦化石脑油 hbmfluid.naphtha_crack=裂化石脑油 -hbmfluid.nitan=NITAN© 100号超级燃料 +hbmfluid.nitan=NITAN牌100号超级燃料 hbmfluid.nitric_acid=硝酸 +hbmfluid.nitroglycerin=硝酸甘油 hbmfluid.none=无 hbmfluid.oil=原油 hbmfluid.oil_coker=焦化油 hbmfluid.oxygen=液氧 hbmfluid.oxyhydrogen=氢氧混合气 -hbmfluid.pain=潘地曼尼南(III)钽铁矿溶液 -hbmfluid.petroil=混机油汽油 -hbmfluid.petroil_leaded=含铅混机油汽油 +hbmfluid.pain=Pn(III) 钽铁溶液 +hbmfluid.petroil=汽油 +hbmfluid.petroil_leaded=含铅石油 hbmfluid.petroleum=石油气 hbmfluid.phosgene=光气 -hbmfluid.plasma_bf=B.F.反物质等离子体 -hbmfluid.plasma_dh3=氘-氦3等离子体 +hbmfluid.plasma_bf=野火等离子体 +hbmfluid.plasma_dh3=氘-氦3 等离子体 hbmfluid.plasma_dt=氘-氚等离子体 hbmfluid.plasma_hd=氢-氘等离子体 hbmfluid.plasma_ht=氢-氚等离子体 @@ -1232,24 +1206,25 @@ hbmfluid.plasma_xm=氙-汞等离子体 hbmfluid.puf6=六氟化钚 hbmfluid.radiosolvent=高性能溶剂 hbmfluid.reclaimed=再生油 +hbmfluid.redmud=红色泥浆 hbmfluid.reformate=重整油 hbmfluid.reformgas=重整气 hbmfluid.salient=绿色液体 -hbmfluid.sas3=三硫化Sa326溶液 -hbmfluid.schrabidic=Sa326元素酸液 -hbmfluid.seedslurry=播种研磨液 +hbmfluid.sas3=三硫化Sa +hbmfluid.schrabidic=Sa酸 +hbmfluid.seedslurry=播种浆料 hbmfluid.smear=工业油 hbmfluid.solvent=有机溶剂 -hbmfluid.sourgas=含硫天然气 -hbmfluid.sodiumhydroxide=氢氧化钠 +hbmfluid.sourgas=高硫天然气 hbmfluid.spentsteam=低压蒸汽 hbmfluid.steam=蒸汽 hbmfluid.sulfuric_acid=硫酸 -hbmfluid.superhotsteam=高热浓蒸汽 +hbmfluid.sunfloweroil=葵花籽油 +hbmfluid.superhotsteam=超热蒸汽 hbmfluid.syngas=合成气 hbmfluid.tritium=氚 hbmfluid.uf6=六氟化铀 -hbmfluid.ultrahotsteam=超热浓蒸汽 +hbmfluid.ultrahotsteam=超浓密蒸汽 hbmfluid.unsaturateds=不饱和烃 hbmfluid.wastefluid=液态核废料 hbmfluid.wastegas=气态核废料 @@ -1258,16 +1233,15 @@ hbmfluid.watz=毒泥浆 hbmfluid.woodoil=木油 hbmfluid.xenon=氙气 hbmfluid.xpjuice=经验汁 -hbmfluid.xylene=BTX苯-甲苯-二甲苯混合物 +hbmfluid.xylene=轻质芳烃(BTX) hbmpseudofluid.none=空 -hbmpseudofluid.heuf6=高浓缩度六氟化铀 -hbmpseudofluid.meuf6=中浓缩度六氟化铀 -hbmpseudofluid.leuf6=低浓缩度六氟化铀 -hbmpseudofluid.nuf6=未浓缩六氟化铀 +hbmpseudofluid.heuf6=高浓缩六氟化铀 +hbmpseudofluid.meuf6=中浓缩六氟化铀 +hbmpseudofluid.leuf6=低浓缩六氟化铀 +hbmpseudofluid.nuf6=天然浓度六氟化铀 hbmpseudofluid.pf6=六氟化钚 -hbmpseudofluid.mud_heavy=有毒污泥沉淀物 -hbmpseudofluid.mud=气态有毒污泥 - +hbmpseudofluid.mud_heavy=毒泥浆重馏分 +hbmpseudofluid.mud=毒泥浆气态物 hbmmat.actinium227=锕-227 hbmmat.advancedalloy=高级合金 hbmmat.aluminum=铝 @@ -1282,47 +1256,46 @@ hbmmat.bismuth=铋 hbmmat.borax=硼砂 hbmmat.boron=硼 hbmmat.cadmium=镉 -hbmmat.cadmium=镉 hbmmat.carbon=碳 -hbmmat.cdalloy=镉钢合金 +hbmmat.cdalloy=镉钢 hbmmat.cinnabar=朱砂 hbmmat.cmbsteel=CMB钢 hbmmat.coal=煤 hbmmat.coalcoke=焦煤 hbmmat.cobalt=钴 hbmmat.cobalt60=钴-60 -hbmmat.coltan=钶钽铁 +hbmmat.coltan=钶钽铁矿 hbmmat.copper=铜 -hbmmat.desh=德什 +hbmmat.desh=Desh hbmmat.dineutronium=双聚中子态素 hbmmat.durasteel=高速钢 -hbmmat.euphemium=Ep元素 -hbmmat.ferrouranium=铀铁 +hbmmat.euphemium=Ep +hbmmat.ferrouranium=铀铁合金 hbmmat.fiberglass=玻璃纤维 hbmmat.fluorite=氟石 -hbmmat.flux=焊剂 -hbmmat.ghiorsium336=气敖-336 +hbmmat.flux=助熔剂 +hbmmat.ghiorsium336=Gh-336 hbmmat.gold=金 hbmmat.gold198=金-198 hbmmat.graphene=石墨烯 hbmmat.graphite=石墨 -hbmmat.hematite=赤铁 +hbmmat.hematite=赤铁矿 hbmmat.iron=铁 hbmmat.lapis=青金石 hbmmat.lead=铅 hbmmat.lead209=铅-209 -hbmmat.lignitecoke=褐焦煤 +hbmmat.lignitecoke=褐煤焦煤 hbmmat.lignite=褐煤 hbmmat.lithium=锂 hbmmat.magnetizedtungsten=磁化钨 hbmmat.malachite=孔雀石 hbmmat.meteoriciron=陨铁 -hbmmat.mingrade=紫铜 +hbmmat.mingrade=工业级铜 hbmmat.neptunium237=镎-237 hbmmat.niobium=铌 -hbmmat.obsidian=黑曜石 -hbmmat.osmiridium=铱锇 -hbmmat.petcoke=石油焦 +hbmmat.obsidian=黑曜岩 +hbmmat.osmiridium=铱锇合金 +hbmmat.petcoke=石油焦炭 hbmmat.pigiron=生铁 hbmmat.plutonium=钚 hbmmat.plutonium238=钚-238 @@ -1333,22 +1306,22 @@ hbmmat.plutoniumrg=反应堆级钚 hbmmat.polonium210=钋-210 hbmmat.polymer=聚合物 hbmmat.radium226=镭-226 -hbmmat.redphosphorus=紫铜 +hbmmat.redphosphorus=红磷 hbmmat.redstone=红石 hbmmat.rubber=橡胶 hbmmat.saltpeter=硝石 -hbmmat.saturnite=土星 -hbmmat.schrabidate=Sa326元素酸化铁 -hbmmat.schrabidium=Sa326异变铀金属 -hbmmat.schraranium=低丰度Sa326异变铀金属 +hbmmat.saturnite=土星锭 +hbmmat.schrabidate=Sa酸铁 +hbmmat.schrabidium=低丰度Sa326 +hbmmat.schraranium=Sa326 hbmmat.slag=炉渣 -hbmmat.solinium=Sa327索林 -hbmmat.starmetal=星辉金属 +hbmmat.solinium=Sa327 +hbmmat.starmetal=星辉 hbmmat.steel=钢 hbmmat.stone=石头 hbmmat.sulfur=硫 hbmmat.tantalum=钽 -hbmmat.tcalloy=锝-钢合金 +hbmmat.tcalloy=锝钢 hbmmat.technetium99=锝-99 hbmmat.titanium=钛 hbmmat.thorium232=钍-232 @@ -1359,9 +1332,8 @@ hbmmat.uranium235=铀-235 hbmmat.uranium238=铀-238 hbmmat.watzmud=毒泥浆 hbmmat.whitephosphorus=白磷 -hbmmat.workersalloy=德什 +hbmmat.workersalloy=Desh hbmmat.wroughtiron=锻铁 - matshape.block=%s 块 matshape.blocks=%s 块 matshape.ingot=%s 锭 @@ -1370,27 +1342,25 @@ matshape.nugget=%s 粒 matshape.nuggets=%s 粒 matshape.quantum=%s 量子 matshape.quanta=%s 量子 - -info.asbestos=这些石棉尘让我的肺像在燃烧一样. -info.coaldust=这些煤尘让我难以呼吸. -info.coil=加速线圈磁场强度 -info.templatefolder=使用 %s 制作 +info.asbestos=我感觉我的肺在燃烧。 +info.coaldust=在这里很难呼吸。 +info.coil=线圈强度 +info.templatefolder=需要使用机器模板文件夹创建 info.template_in=输入: info.template_in_p=输入: info.template_out=输出: info.template_out_p=输出: info.template_seconds=秒 -info.template_time=生产时间: - -item.acetylene_torch.name=乙炔焊枪 -item.ajr_boots.name=钢制突击队 靴子 -item.ajr_helmet.name=钢制突击队 头盔 -item.ajr_legs.name=钢制突击队 护腿 -item.ajr_plate.name=钢制突击队 胸甲 -item.ajro_boots.name=AJR动力装甲 靴子 -item.ajro_helmet.name=AJR动力装甲 头盔 -item.ajro_legs.name=AJR动力装甲 护腿 -item.ajro_plate.name=AJR动力装甲 胸甲 +info.template_time=生产耗时: +item.acetylene_torch.name=乙炔焊罐 +item.ajr_boots.name=AJR 动力装甲靴子 +item.ajr_helmet.name=AJR 动力装甲头盔 +item.ajr_legs.name=AJR 动力装甲护腿 +item.ajr_plate.name=AJR 动力装甲胸甲 +item.ajro_boots.name=AJR动力装甲靴子 +item.ajro_helmet.name=AJR 动力装甲头盔 +item.ajro_legs.name=AJR 动力装甲护腿 +item.ajro_plate.name=AJR 动力装甲胸甲 item.alloy_axe.name=高级合金斧 item.alloy_boots.name=高级合金靴子 item.alloy_helmet.name=高级合金头盔 @@ -1400,191 +1370,187 @@ item.alloy_pickaxe.name=高级合金镐 item.alloy_plate.name=高级合金胸甲 item.alloy_shovel.name=高级合金锹 item.alloy_sword.name=高级合金剑 -item.ammo_12gauge.name=12口径鹿弹 -item.ammo_12gauge_du.name=12口径鹿弹[铀涂层] -item.ammo_12gauge_incendiary.name=12口径鹿弹[燃烧] -item.ammo_12gauge_marauder.name=12口径战术反掠夺者鹿弹 -item.ammo_12gauge_percussion.name=12口径火帽 -item.ammo_12gauge_shrapnel.name=12口径鹿弹[榴霰弹] -item.ammo_12gauge_sleek.name=12口径鹿弹[IF-R&D] -item.ammo_20gauge.name=20口径鹿弹 -item.ammo_20gauge_caustic.name=20口径鹿弹[腐蚀] -item.ammo_20gauge_explosive.name=20口径鹿弹[高爆] -item.ammo_20gauge_flechette.name=20口径箭霰弹 -item.ammo_20gauge_incendiary.name=20口径鹿弹[燃烧] -item.ammo_20gauge_shock.name=20口径鹿弹[震荡] -item.ammo_20gauge_shrapnel.name=20口径鹿弹[榴霰弹] -item.ammo_20gauge_sleek.name=20口径鹿弹[IF-R&D] -item.ammo_20gauge_slug.name=20口径独头弹 -item.ammo_20gauge_wither.name=20口径鹿弹[凋零] +item.ammo_12gauge.name=12号鹿弹 +item.ammo_12gauge_du.name=12号鹿弹[铀涂层] +item.ammo_12gauge_incendiary.name=12号鹿弹[燃烧] +item.ammo_12gauge_marauder.name=12号战术反掠夺鹿弹 +item.ammo_12gauge_percussion.name=12号冲击火药帽 +item.ammo_12gauge_shrapnel.name=12号鹿弹[榴霰弹] +item.ammo_12gauge_sleek.name=12号鹿弹[IF-R&D] +item.ammo_20gauge.name=20号鹿弹 +item.ammo_20gauge_caustic.name=20号鹿弹[腐蚀] +item.ammo_20gauge_explosive.name=20号鹿弹[高爆] +item.ammo_20gauge_flechette.name=20号箭霰弹 +item.ammo_20gauge_incendiary.name=20号鹿弹[燃烧] +item.ammo_20gauge_shock.name=20号鹿弹[震荡] +item.ammo_20gauge_shrapnel.name=20号鹿弹[榴霰弹] +item.ammo_20gauge_sleek.name=20号鹿弹[IF-R&D] +item.ammo_20gauge_slug.name=20号独头弹 +item.ammo_20gauge_wither.name=20号鹿弹[凋零] item.ammo_22lr.name=.22LR子弹 -item.ammo_22lr_ap.name=.22LR子弹[穿甲弹] -item.ammo_22lr_chlorophyte.name=.22 LR弹药 [绿藻] -item.ammo_357_desh.name=.357马格南德什子弹 +item.ammo_22lr_ap.name=.22LR子弹[AP] +item.ammo_22lr_chlorophyte.name=.22LR子弹[叶绿] +item.ammo_357_desh.name=.357马格南Desh子弹 item.ammo_44.name=.44马格南子弹 -item.ammo_44_ap.name=.44马格南子弹[穿甲弹] +item.ammo_44_ap.name=.44马格南子弹[AP] item.ammo_44_bj.name=.44马格南子弹[船] -item.ammo_44_chlorophyte.name=.44通用弹药[绿藻] -item.ammo_44_du.name=.44马格南子弹[贫铀涂层] -item.ammo_44_phosphorus.name=.44马格南子弹[白磷弹] +item.ammo_44_chlorophyte.name=.44马格南子弹[叶绿] +item.ammo_44_du.name=.44马格南子弹[贫铀] +item.ammo_44_phosphorus.name=.44马格南子弹[白磷] item.ammo_44_pip.name=.44马格南子弹[车厢] item.ammo_44_rocket.name=.44马格南火箭 -item.ammo_44_silver.name=.44马格南子弹[建筑物] -item.ammo_44_star.name=.44马格南子弹[星辉金属] -item.ammo_45.name=.45 ACP子弹 -item.ammo_45_ap.name=.45 ACP子弹[穿甲弹] -item.ammo_45_du.name=.45 ACP子弹[贫铀涂层] -item.ammo_4gauge.name=四口径鹿弹 -item.ammo_4gauge_balefire.name=23mmB.F.反物质榴弹 -item.ammo_4gauge_canister.name=23mm火箭弹[榴霰弹] -item.ammo_4gauge_claw.name=4口径金属破片弹 +item.ammo_44_silver.name=.44马格南子弹[建筑] +item.ammo_44_star.name=.44马格南子弹[星辉] +item.ammo_45.name=.45 ACP 子弹 +item.ammo_45_ap.name=.45 ACP 子弹[AP] +item.ammo_45_du.name=.45 ACP 子弹[贫铀] +item.ammo_4gauge.name=四号鹿弹 +item.ammo_4gauge_balefire.name=23mm野火榴弹 +item.ammo_4gauge_canister.name=23mm 火箭弹[榴霰弹] +item.ammo_4gauge_claw.name=4号爪弹 item.ammo_4gauge_explosive.name=23mm榴弹 -item.ammo_4gauge_flechette.name=4口径箭霰弹 -item.ammo_4gauge_flechette_phosphorus.name=4口径箭霰弹[白磷弹] +item.ammo_4gauge_flechette.name=4号箭霰弹 +item.ammo_4gauge_flechette_phosphorus.name=4号箭霰弹[白磷] item.ammo_4gauge_kampf.name=23mm火箭弹 -item.ammo_4gauge_sleek.name=4口径鹿弹[IF-R&D] -item.ammo_4gauge_slug.name=四口径实心独头弹 -item.ammo_4gauge_titan.name=四口径泰坦杀手弹 -item.ammo_4gauge_semtex.name=23mm挖掘榴弹 -item.ammo_4gauge_sleek.name=4口径霰弹[IF-R&D] -item.ammo_4gauge_vampire.name=4口径反吸血鬼木桩霰弹 -item.ammo_4gauge_void.name=4口径电离子霰弹 +item.ammo_4gauge_semtex.name=23mm采矿弹药 +item.ammo_4gauge_sleek.name=4号鹿弹[IF-R&D] +item.ammo_4gauge_slug.name=四号实心独头弹 +item.ammo_4gauge_titan.name=4号Quacker鹿弹 +item.ammo_4gauge_vampire.name=4号木签弹 +item.ammo_4gauge_void.name=4号电离粒子弹 item.ammo_50ae.name=.50AE子弹 -item.ammo_50ae_ap.name=.50AE子弹[穿甲弹] -item.ammo_50ae_chlorophyte.name=.50 AE弹药绿藻] -item.ammo_50ae_du.name=.50AE子弹[贫铀涂层] -item.ammo_50ae_star.name=.50AE子弹[星辉金属] +item.ammo_50ae_ap.name=.50AE子弹[AP] +item.ammo_50ae_chlorophyte.name=.50AE子弹[叶绿] +item.ammo_50ae_du.name=.50AE子弹[贫铀] +item.ammo_50ae_star.name=.50AE子弹[星辉] item.ammo_50bmg.name=.50BMG子弹 -item.ammo_50bmg_ap.name=.50 BMG子弹[穿甲弹] -item.ammo_50bmg_chlorophyte.name=.50 BMG弹药[绿藻] -item.ammo_50bmg_du.name=.50BMG子弹[贫铀涂层] +item.ammo_50bmg_ap.name=.50BMG子弹[AP] +item.ammo_50bmg_chlorophyte.name=.50BMG子弹[叶绿] +item.ammo_50bmg_du.name=.50BMG子弹[贫铀] item.ammo_50bmg_explosive.name=.50BMG子弹[高爆] item.ammo_50bmg_flechette.name=.50 BMG镖形弹 item.ammo_50bmg_flechette_am.name=.50 BMG镖形弹[含镅] item.ammo_50bmg_flechette_po.name=.50 BMG镖形弹[含钋] item.ammo_50bmg_incendiary.name=.50BMG子弹[燃烧] -item.ammo_50bmg_phosphorus.name=.50BMG子弹[白磷弹] +item.ammo_50bmg_phosphorus.name=.50BMG子弹[白磷] item.ammo_50bmg_sleek.name=.50BMG子弹[IF-R&D] -item.ammo_50bmg_star.name=.50BMG子弹[星辉金属] +item.ammo_50bmg_star.name=.50BMG子弹[星辉] item.ammo_556.name=5.56mm子弹 -item.ammo_556_ap.name=5.56mm子弹[穿甲弹] -item.ammo_556_du.name=5.56mm子弹[贫铀涂层] -item.ammo_556_flechette.name=5.56mm镖形弹 -item.ammo_556_flechette_chlorophyte.name=5.56mm镖形弹弹药[绿藻] -item.ammo_556_flechette_du.name=5.56mm镖形弹 [贫铀涂层] -item.ammo_556_flechette_incendiary.name=5.56mm镖形弹 [燃烧] -item.ammo_556_flechette_phosphorus.name=5.56mm镖形弹 [白磷弹] -item.ammo_556_flechette_sleek.name=5.56mm镖形弹[IF-R&D] +item.ammo_556_ap.name=5.56mm子弹[AP] +item.ammo_556_chlorophyte.name=5.56mm子弹[叶绿] +item.ammo_556_du.name=5.56mm子弹[贫铀] +item.ammo_556_flechette.name=5.56mm弗莱彻子弹 +item.ammo_556_flechette_chlorophyte.name=5.56mm弗莱彻子弹[叶绿] +item.ammo_556_flechette_du.name=5.56mm弗莱彻子弹 [贫铀穿甲] +item.ammo_556_flechette_incendiary.name=5.56mm弗莱彻子弹 [燃烧] +item.ammo_556_flechette_phosphorus.name=5.56mm弗莱彻子弹 [白磷穿甲] +item.ammo_556_flechette_sleek.name=5.56mm弗莱彻子弹[IF-R&D] item.ammo_556_k.name=5.56mm空包弹 -item.ammo_556_chlorophyte.name=5.56mm弹药[绿藻] -item.ammo_556_phosphorus.name=5.56mm子弹[白磷弹] +item.ammo_556_phosphorus.name=5.56mm子弹[白磷] item.ammo_556_sleek.name=5.56mm子弹[IF-R&D] -item.ammo_556_star.name=5.56mm子弹 [星辉金属] -item.ammo_556_tracer.name=5.56mm Round[曳光弹] +item.ammo_556_star.name=5.56mm子弹 [星辉] +item.ammo_556_tracer.name=5.56mm 子弹[曳光弹] item.ammo_5mm.name=5mm子弹 -item.ammo_5mm_chlorophyte.name=5mm弹药[绿藻] -item.ammo_5mm_du.name=5mm子弹[贫铀涂层] +item.ammo_5mm_chlorophyte.name=5mm子弹[叶绿] +item.ammo_5mm_du.name=5mm子弹[贫铀] item.ammo_5mm_explosive.name=5mm子弹[高爆] -item.ammo_5mm_star.name=5mm子弹[星辉金属] -item.ammo_75bolt.name=.75爆弹枪火箭推进弹药[30发] -item.ammo_75bolt_incendiary.name=.75 爆弹枪火箭推进弹药[燃烧] -item.ammo_75bolt_he.name=.75 爆弹枪火箭推进弹药[高爆] +item.ammo_5mm_star.name=5mm子弹[星辉] +item.ammo_75bolt.name=.75弹匣(30发) +item.ammo_75bolt_incendiary.name=.75燃烧弹匣(30发) +item.ammo_75bolt_he.name=.75高爆弹匣(30发) item.ammo_762.name=7.62mm 子弹 -item.ammo_762_ap.name=7.62mm子弹[穿甲弹] -item.ammo_762_du.name=7.62mm子弹[贫铀涂层] -item.ammo_762_k.name=7.62mmK-子弹 -item.ammo_762_phosphorus.name=7.62mm子弹[白磷弹] -item.ammo_762_tracer.name=7.62mm子弹[曳光弹] +item.ammo_762_ap.name=7.62mm 子弹[AP] +item.ammo_762_du.name=7.62mm 子弹[贫铀] +item.ammo_762_k.name=7.62mm 空包弹 +item.ammo_762_phosphorus.name=7.62mm 子弹[白磷] +item.ammo_762_tracer.name=7.62mm 子弹[曳光] item.ammo_9mm.name=9mm子弹 -item.ammo_9mm_ap.name=9mm子弹[穿甲弹] -item.ammo_9mm_chlorophyte.name=9mm弹药[绿藻] -item.ammo_9mm_du.name=9mm子弹[贫铀涂层] +item.ammo_9mm_ap.name=9mm子弹[AP] +item.ammo_9mm_chlorophyte.name=9mm子弹[叶绿] +item.ammo_9mm_du.name=9mm子弹[贫铀] item.ammo_9mm_rocket.name=9mm火箭弹 -item.ammo_arty.name=16" 重炮炮弹 -item.ammo_arty_cargo.name=16" 货运炮弹 -item.ammo_arty_classic.name=16" 重炮炮弹 (异星工厂特供) -item.ammo_arty_he.name=16" 高爆重炮炮弹 -item.ammo_arty_mini_nuke.name=16" 小型重炮核炮弹 -item.ammo_arty_mini_nuke_multi.name=16" 集束小型重炮核炮弹 -item.ammo_arty_nuke.name=16" 重炮核炮弹 -item.ammo_arty_phosphorus.name=16" 白磷重炮炮弹 -item.ammo_arty_phosphorus_multi.name=16" 集束白磷重炮炮弹 -item.ammo_cell.name=能量电池 +item.ammo_arty.name=16英寸炮弹 +item.ammo_arty_cargo.name=16英寸快递炮弹 +item.ammo_arty_classic.name=16英寸炮弹 (特制) +item.ammo_arty_he.name=16英寸高爆炮弹 +item.ammo_arty_mini_nuke.name=16英寸微型核炮弹 +item.ammo_arty_mini_nuke_multi.name=16英寸多弹头微型核炮弹 +item.ammo_arty_nuke.name=16英寸核炮弹 +item.ammo_arty_phosphorus.name=16英寸磷炮弹 +item.ammo_arty_phosphorus_multi.name=16英寸多弹头磷炮弹 +item.ammo_cell.name=能量单元 item.ammo_container.name=万能弹药盒 -item.ammo_dart.name=塑料飞镖 [凋零] -item.ammo_dart_nerf.name=NERF飞镖 -item.ammo_dart_nuclear.name=塑料飞镖 [定时爆炸] -item.ammo_fireext.name=灭火器水罐 -item.ammo_fireext_foam.name=灭火器泡沫罐 -item.ammo_fireext_sand.name=灭火器硼砂罐 -item.ammo_dgk.name=200发双管近防炮"霍华德"弹药箱 +item.ammo_dart.name=塑料镖[凋零] +item.ammo_dart_nerf.name=NERF 飞镖 +item.ammo_dart_nuclear.name=塑料镖[定时炸药] +item.ammo_dgk.name=双联守门员近防系统200发弹药 +item.ammo_fireext.name=灭火器 水罐 +item.ammo_fireext_foam.name=灭火器 泡沫罐 +item.ammo_fireext_sand.name=灭火器 硼砂罐 item.ammo_folly.name=银弹 -item.ammo_folly_du.name=银弹[贫铀涂层, 无爆炸] +item.ammo_folly_du.name=银弹[贫铀, 不爆炸] item.ammo_folly_nuclear.name=银弹[核子] item.ammo_fuel.name=柴油罐 item.ammo_fuel_gas.name=毒气罐 item.ammo_fuel_napalm.name=凝固汽油罐 item.ammo_fuel_phosphorus.name=白磷罐 -item.ammo_fuel_vaporizer.name=挥发性燃料罐 - +item.ammo_fuel_vaporizer.name=汽化罐 item.ammo_grenade.name=40mm榴弹 item.ammo_grenade_concussion.name=40mm榴弹[震荡] -item.ammo_grenade_finned.name=40mm榴弹[稳定尾翼] +item.ammo_grenade_finned.name=40mm榴弹[尾翼稳定] item.ammo_grenade_he.name=40mm榴弹[HE] item.ammo_grenade_incendiary.name=40mm榴弹[燃烧] item.ammo_grenade_kampf.name=40mm战术榴弹 item.ammo_grenade_nuclear.name=40mm榴弹[核子] -item.ammo_grenade_phosphorus.name=40mm榴弹[白磷弹] +item.ammo_grenade_phosphorus.name=40mm榴弹[白磷] item.ammo_grenade_sleek.name=40mm榴弹[IF-R&D] -item.ammo_grenade_toxic.name=40mm榴弹[化学毒气] +item.ammo_grenade_toxic.name=40mm榴弹[化学] item.ammo_grenade_tracer.name=40mm训练榴弹 -item.ammo_himars_standard.name=227mm 制导火炮火箭吊舱 -item.ammo_himars_standard_he.name=227mm 制导火炮火箭吊舱(高爆弹头) -item.ammo_himars_standard_mini_nuke.name=227mm 制导火炮火箭吊舱(小型核弹头) -item.ammo_himars_standard_tb.name=227mm 制导火炮火箭吊舱(温压弹头) -item.ammo_himars_standard_wp.name=227mm 制导火炮火箭吊舱(白磷弹头) -item.ammo_himars_single.name=610mm 制导火炮火箭吊舱 -item.ammo_himars_single_tb.name=610mm制导火炮火箭吊舱(温压弹头) -item.ammo_luna.name=月都科技狙击枪弹药 -item.ammo_luna_explosive.name=月都科技狙击枪高爆弹药 -item.ammo_luna_incendiary.name=月都科技狙击枪燃烧弹药 -item.ammo_mirv.name=分导式多弹头迷你核弹 -item.ammo_mirv_high.name=分导式多弹头迷你核弹 (高辐射污染) -item.ammo_mirv_low.name=分导式多弹头迷你核弹 (低辐射污染) -item.ammo_mirv_safe.name=分导式多弹头迷你核弹 (安全) -item.ammo_mirv_special.name=迷你 MILV +item.ammo_himars_standard.name=M28制导火箭炮系统火箭弹舱 +item.ammo_himars_standard_he.name=227毫米制导火箭炮系统火箭吊舱(HE) +item.ammo_himars_standard_mini_nuke.name=227毫米制导火箭炮系统火箭吊舱(迷你核弹) +item.ammo_himars_standard_tb.name=227毫米制导火箭炮系统火箭吊舱(温压弹) +item.ammo_himars_standard_wp.name=227毫米制导火箭炮系统火箭吊舱(白磷) +item.ammo_himars_single.name=M39A1制导火箭炮系统火箭弹舱 +item.ammo_himars_single_tb.name=610毫米制导火炮火箭吊舱(温压弹) +item.ammo_luna.name=Lunatic狙击弹 +item.ammo_luna_explosive.name=Lunatic狙击爆炸弹 +item.ammo_luna_incendiary.name=Lunatic狙击燃烧弹 +item.ammo_mirv.name=迷你MIRV +item.ammo_mirv_high.name=迷你MIRV (高当量) +item.ammo_mirv_low.name=迷你MIRV (低当量) +item.ammo_mirv_safe.name=迷你MIRV (安全) +item.ammo_mirv_special.name=迷你MIRV item.ammo_nuke.name=迷你核弹 item.ammo_nuke_barrel.name=小型核废料桶 -item.ammo_nuke_high.name=迷你核弹 (高辐射污染) -item.ammo_nuke_low.name=迷你核弹 (低辐射污染) +item.ammo_nuke_high.name=迷你核弹 (高当量) +item.ammo_nuke_low.name=迷你核弹 (低当量) item.ammo_nuke_pumpkin.name=南瓜炸弹 -item.ammo_nuke_safe.name=迷你核弹 (安全) -item.ammo_nuke_tots.name=迷你核弹 (小型散射弹丸) - +item.ammo_nuke_safe.name=迷你核弹 (安全) +item.ammo_nuke_tots.name=迷你核弹 (幼体) item.ammo_rocket.name=84mm火箭弹 -item.ammo_rocket_canister.name=84mm火箭弹[榴霰弹] +item.ammo_rocket_canister.name=84mm 火箭弹[榴霰弹] item.ammo_rocket_digamma.name=§4归 零§r -item.ammo_rocket_emp.name=84mm火箭弹[EMP电磁脉冲] +item.ammo_rocket_emp.name=84mm火箭弹[EMP] item.ammo_rocket_glare.name=84mm火箭弹[红光] -item.ammo_rocket_he.name=84mm火箭弹[高爆] +item.ammo_rocket_he.name=84mm火箭弹[HE] item.ammo_rocket_incendiary.name=84mm火箭弹[燃烧] item.ammo_rocket_nuclear.name=84mm火箭弹[核子] -item.ammo_rocket_phosphorus.name=84mm火箭弹[白磷弹] +item.ammo_rocket_phosphorus.name=84mm火箭弹[白磷] item.ammo_rocket_rpc.name=84mm火箭弹[飞行电锯] item.ammo_rocket_shrapnel.name=84mm火箭弹[破片] item.ammo_rocket_sleek.name=84mm火箭弹[IF-R&D] -item.ammo_rocket_toxic.name=84mm火箭弹[化学毒气] - +item.ammo_rocket_toxic.name=84mm火箭弹[化学] item.ammo_shell.name=240mm炮弹 -item.ammo_shell_apfsds_du.name=240mm尾翼稳定脱壳贫铀穿甲炮弹 -item.ammo_shell_apfsds_t.name=240mm尾翼稳定脱壳钨心穿甲炮弹 -item.ammo_shell_explosive.name=240mm高爆炮弹 -item.ammo_shell_w9.name=240mmW9核炮弹 +item.ammo_shell_apfsds_du.name=240mm 贫铀尾翼稳定脱壳穿甲弹 +item.ammo_shell_apfsds_t.name=240mm 钨心尾翼稳定脱壳穿甲弹 +item.ammo_shell_explosive.name=240mm 高爆炮弹 +item.ammo_shell_w9.name=240mm W9核子炮弹 item.ammo_stinger_rocket.name=毒刺导弹 -item.ammo_stinger_rocket_he.name=毒刺导弹 [高爆] -item.ammo_stinger_rocket_incendiary.name=毒刺导弹 [燃烧] -item.ammo_stinger_rocket_nuclear.name=毒刺导弹 [核子] -item.ammo_stinger_rocket_bones.name=毒刺导弹 [寻骨] +item.ammo_stinger_rocket_he.name=毒刺导弹[高爆] +item.ammo_stinger_rocket_incendiary.name=毒刺导弹[燃烧] +item.ammo_stinger_rocket_nuclear.name=毒刺导弹[Привет] +item.ammo_stinger_rocket_bones.name=毒刺导弹[寻骨] item.ams_catalyst_aluminium.name=铝反应催化剂 item.ams_catalyst_beryllium.name=铍反应催化剂 item.ams_catalyst_blank.name=空白反应催化剂 @@ -1593,36 +1559,36 @@ item.ams_catalyst_cerium.name=铈反应催化剂 item.ams_catalyst_cobalt.name=钴反应催化剂 item.ams_catalyst_copper.name=铜反应催化剂 item.ams_catalyst_dineutronium.name=双聚中子态素反应催化剂 -item.ams_catalyst_euphemium.name=Ep元素反应催化剂 +item.ams_catalyst_euphemium.name=Ep反应催化剂 item.ams_catalyst_iron.name=铁反应催化剂 item.ams_catalyst_lithium.name=锂反应催化剂 item.ams_catalyst_niobium.name=铌反应催化剂 -item.ams_catalyst_schrabidium.name=Sa326异变铀金属反应催化剂 +item.ams_catalyst_schrabidium.name=Sa326反应催化剂 item.ams_catalyst_strontium.name=锶反应催化剂 item.ams_catalyst_thorium.name=钍反应催化剂 item.ams_catalyst_tungsten.name=钨反应催化剂 item.ams_core_eyeofharmony.name=和谐之眼[AMS/DFC核心] item.ams_core_sing.name=活跃奇点[AMS/DFC核心] -item.ams_core_thingy.name=暮光闪闪的皇冠[AMS/DFC核心] +item.ams_core_thingy.name=Thingy[AMS/DFC核心] item.ams_core_wormhole.name=微型虫洞[AMS/DFC核心] item.ams_focus_blank.name=空白稳定器焦点 -item.ams_focus_booster.name=增压型稳定器焦点 -item.ams_focus_booster.desc=更弱的约束场和核心能量注入:$产生更多的热量, 带来额外的能量. -item.ams_focus_limiter.name=限制型稳定器焦点 -item.ams_focus_limiter.desc=稳定力场被提高到最高性能:$只需标准的冷却,无产能增益. -item.ams_lens.name=稳定力场透镜 -item.ams_muzzle.name=激发射线发射极 -item.ams_muzzle.desc=...它会发射某种高能粒子束. +item.ams_focus_booster.name=较弱的约束场和核心能量注入:$更多的热量产生,更多的能量。 +item.ams_focus_booster.desc=较弱的约束场和核心能量注入:$更多的热量产生,更多的能量。 +item.ams_focus_limiter.name=限制稳定器焦点 +item.ams_focus_limiter.desc=限制领域的最高性能:$标准冷却,无能源加成。 +item.ams_lens.name=稳定透镜 +item.ams_muzzle.name=激活射线发射极 +item.ams_muzzle.desc=...它可以发出一束能量束。 item.analyzer.name=分析仪 -item.anchor_remote.name=召回装置 +item.anchor_remote.name=召回设备 item.antiknock.name=四乙基铅抗爆剂 -item.apple_euphemium.name=Ep元素苹果 +item.apple_euphemium.name=Ep苹果 item.apple_lead.name=铅苹果 -item.apple_schrabidium.name=Sa326异变铀金属苹果 +item.apple_schrabidium.name=Sa326苹果 item.arc_electrode.name=石墨电极 -item.arc_electrode_burnt.name=熔化的电极 -item.arc_electrode_desh.name=德什电极 -item.armor_polish.name=闪甲™ 盔甲抛光剂 +item.arc_electrode_burnt.name=熔化电极 +item.arc_electrode_desh.name=Desh电极 +item.armor_polish.name=亮甲牌装甲抛光剂 item.asbestos_boots.name=防火靴 item.asbestos_cloth.name=防火布 item.asbestos_helmet.name=防火头盔 @@ -1634,82 +1600,82 @@ item.assembly_556.name=5.56mm子弹[待装配] item.assembly_762.name=7.62mm子弹[待装配] item.assembly_actionexpress.name=.50 AE子弹[待装配] item.assembly_calamity.name=.50 BMG子弹[待装配] -item.assembly_desh.name=德什子弹[待装配] +item.assembly_desh.name=Desh子弹[待装配] item.assembly_gold.name=金子弹[待装配] item.assembly_iron.name=铁子弹[待装配] item.assembly_lacunae.name=.5mm子弹[待装配] -item.assembly_lead.name=玻璃核子子弹[待装配] -item.assembly_luna.name=月都科技狙击枪子弹[待装配] +item.assembly_lead.name=玻璃子弹[待装配] +item.assembly_luna.name=Lunatic狙击子弹[待装配] item.assembly_nightmare.name=钨子弹[待装配] -item.assembly_nopip.name=.44马格南子弹[待装配] -item.assembly_nuke.name=迷你核弹[待装配] -item.assembly_pip.name=腐化子弹[待装配] -item.assembly_schrabidium.name=Sa326异变铀金属子弹[待装配] +item.assembly_nopip.name=.44马格南[待装配] +item.assembly_nuke.name=迷你核弹外壳 +item.assembly_pip.name=污染子弹[待装配] +item.assembly_schrabidium.name=Sa326子弹[待装配] item.assembly_smg.name=9mm子弹[待装配] -item.assembly_steel.name=铅弹[待装配] +item.assembly_steel.name=铅子弹[待装配] item.assembly_template.name=装配机模板: item.assembly_uzi.name=.22 LR子弹[待装配] -item.attachment_mask.name=可接入式防毒面具 -item.attachment_mask_mono.name=可接入式防护面罩 +item.attachment_mask.name=附加型防毒面具 +item.attachment_mask_mono.name=可接入式半面罩防毒面具 item.australium_iii.name=MkIII寿命延长剂 item.australium_iv.name=MkIV寿命延长剂 item.australium_v.name=MkV寿命延长剂 item.back_tesla.name=背负式特斯拉线圈 -item.balefire_and_ham.name=火腿BF蛋 -item.balefire_and_steel.name=BF打火器 -item.balefire_scrambled.name=炒BF蛋 -item.ball_dynamite.name=炸药 +item.balefire_and_ham.name=火腿野火蛋 +item.balefire_and_steel.name=野火打火石 +item.balefire_scrambled.name=炒野火蛋 +item.ball_dynamite.name=硝糖炸药 item.ball_fireclay.name=耐火粘土 -item.ball_tatb.name=TATB三氨基三硝基苯 -item.ball_tnt.name=TNT -item.ballistic_gauntlet.name=爆破拳套 +item.ball_tatb.name=三氨基三硝基苯(TATB) +item.ball_tnt.name=TNT炸药 +item.ballistic_gauntlet.name=冲击拳套 item.ballistite.name=混合无烟火药 -item.bandaid.name=绷带 +item.bandaid.name=邦迪创可贴 item.bathwater.name=有毒肥皂水 -item.bathwater_mk2.name=有毒肥皂水 (马香味) +item.bathwater_mk2.name=有毒肥皂水(马香味) item.battery_advanced.name=高级电池 -item.battery_advanced_cell.name=高级能量电池组 -item.battery_advanced_cell_12.name=十二联高级能量电池组 -item.battery_advanced_cell_4.name=四联高级能量电池组 +item.battery_advanced_cell.name=高级电池组 +item.battery_advanced_cell_12.name=十二联高级电池组 +item.battery_advanced_cell_4.name=四联高级电池组 item.battery_creative.name=无限电池 item.battery_generic.name=电池 -item.battery_lithium.name=锂离子电池 -item.battery_lithium_cell.name=锂离子电池组 -item.battery_lithium_cell_3.name=三联锂离子电池组 -item.battery_lithium_cell_6.name=六联锂离子电池组 +item.battery_lithium.name=锂电池 +item.battery_lithium_cell.name=锂电池组 +item.battery_lithium_cell_3.name=三联锂电池组 +item.battery_lithium_cell_6.name=六联锂电池组 item.battery_potato.name=马铃薯电池 item.battery_potatos.name=马铃薯OS -item.battery_red_cell.name=红石能量电池组 -item.battery_red_cell_24.name=二十四联红石能量电池组 -item.battery_red_cell_6.name=六联红石能量电池组 -item.battery_sc_americium.name=自充电镅-241电池 -item.battery_sc_gold.name=自充电金-198电池 -item.battery_sc_lead.name=自充电铅-209电池 -item.battery_sc_plutonium.name=自充电钚-238电池 -item.battery_sc_polonium.name=自充电钋-210电池 -item.battery_sc_technetium.name=自充电锝-99电池 -item.battery_sc_uranium.name=自充电铀-238电池 -item.battery_schrabidium.name=Sa326异变铀金属电池 -item.battery_schrabidium_cell.name=Sa326异变铀金属电池组 -item.battery_schrabidium_cell_2.name=双联Sa326异变铀金属电池组 -item.battery_schrabidium_cell_4.name=四联Sa326异变铀金属电池组 -item.battery_spark.name=Spark闪闪高能电池 -item.battery_spark_cell_100.name=Spark闪闪奥术储能阵列 -item.battery_spark_cell_1000.name=Spark闪闪奥术质能转换器 -item.battery_spark_cell_10000.name=Spark闪闪奥术时空晶体 -item.battery_spark_cell_25.name=Spark闪闪神秘汽车电池 -item.battery_spark_cell_2500.name=Spark闪闪奥术狄拉克负能海连通器 -item.battery_spark_cell_6.name=Spark闪闪奥术电池组 -item.battery_spark_cell_power.name=Spark闪闪反物理储能装置 +item.battery_red_cell.name=红石电池组 +item.battery_red_cell_24.name=二十四联红石电池组 +item.battery_red_cell_6.name=六联红石电池组 +item.battery_sc_americium.name=自充电 镅-241电池 +item.battery_sc_gold.name=自充电 金-198电池 +item.battery_sc_lead.name=自充电 铅-209电池 +item.battery_sc_plutonium.name=自充电 钚-238电池 +item.battery_sc_polonium.name=自充电 钋-210电池 +item.battery_sc_technetium.name=自充电 锝-98电池 +item.battery_sc_uranium.name=自充电 铀-238电池 +item.battery_schrabidium.name=Sa326电池 +item.battery_schrabidium_cell.name=Sa326电池组 +item.battery_schrabidium_cell_2.name=双联Sa326电池组 +item.battery_schrabidium_cell_4.name=四联Sa326电池组 +item.battery_spark.name=Spark电池 +item.battery_spark_cell_100.name=Spark神秘储能电池组 +item.battery_spark_cell_1000.name=Spark神秘物质能量空间 +item.battery_spark_cell_10000.name=Spark时空晶体 +item.battery_spark_cell_25.name=Spark神秘汽车电池 +item.battery_spark_cell_2500.name=Spark神秘迪拉克之海 +item.battery_spark_cell_6.name=Spark电池组 +item.battery_spark_cell_power.name=Spark反物理储能装置 item.battery_steam.name=蒸汽动力储能罐 item.battery_steam_large.name=大型蒸汽动力储能罐 item.battery_su.name=SU-电池 item.battery_su_l.name=大型SU-电池 -item.battery_trixite.name=崔克希电池 -item.beta.name=测试版功能 +item.battery_trixite.name=杂牌Spark电池 +item.beta.name=Bata测试版功能 item.big_sword.name=大剑 item.billet_actinium.name=锕-227坯料 -item.billet_am_mix.name=反应器级镅坯料 +item.billet_am_mix.name=反应堆级镅坯料 item.billet_am241.name=镅-241坯料 item.billet_am242.name=镅-242坯料 item.billet_americium_fuel.name=镅燃料坯料 @@ -1722,20 +1688,20 @@ item.billet_beryllium.name=铍坯料 item.billet_bismuth.name=铋坯料 item.billet_co60.name=钴-60坯料 item.billet_cobalt.name=钴坯料 -item.billet_flashlead.name=激活态铅坯料 -item.billet_flashlead.desc=晶格衰变, 引起反物质湮灭反应, $导致π介子释放, $衰变为μ介子, 催化原子核聚变, $产生新的元素$请尽量跟上. -item.billet_gh336.name=气敖-336坯料 -item.billet_gh336.desc=钅喜的同事. -item.billet_hes.name=高浓缩度Sa326异变铀金属燃料坯料 -item.billet_les.name=低浓缩度Sa326异变铀金属燃料坯料 -item.billet_mox_fuel.name=MOX核燃料坯料 -item.billet_mox_fuel.desc=口袋摩西! +item.billet_flashlead.name=闪光铅坯料 +item.billet_flashlead.desc=晶格衰变,引起反物质湮灭反应,导致π介子释放,衰变为μ子,催化原子核融合,产生新的元素$请尽量跟上。 +item.billet_gh336.name=Gh336坯料 +item.billet_gh336.desc=钅喜的同事 +item.billet_hes.name=高浓缩度Sa326燃料坯料 +item.billet_les.name=低浓缩度Sa326燃料坯料 +item.billet_mox_fuel.name=MOX燃料坯料 +item.billet_mox_fuel.desc=口袋摩西! item.billet_neptunium.name=镎坯料 item.billet_neptunium_fuel.name=镎核燃料坯料 item.billet_nuclear_waste.name=核废料坯料 item.billet_pb209.name=铅-209坯料 item.billet_po210be.name=钋210-铍坯料 -item.billet_polonium.name=钋-210坯料 +item.billet_polonium.name=钋坯料 item.billet_pu_mix.name=反应堆级钚坯料 item.billet_pu238.name=钚-238坯料 item.billet_pu238be.name=钚238-铍坯料 @@ -1743,52 +1709,47 @@ item.billet_pu239.name=钚-239坯料 item.billet_pu240.name=钚-240坯料 item.billet_pu241.name=钚-241坯料 item.billet_plutonium.name=钚坯料 -item.billet_plutonium_fuel.name=钚核燃料坯料 +item.billet_plutonium_fuel.name=钚燃料坯料 item.billet_ra226.name=镭-226坯料 item.billet_ra226be.name=镭226-铍坯料 -item.billet_schrabidium.name=Sa326异变铀金属坯料 -item.billet_schrabidium_fuel.name=Sa326异变铀金属核燃料坯料 -item.billet_solinium.name=Sa327索林坯料 +item.billet_schrabidium.name=Sa326坯料 +item.billet_schrabidium_fuel.name= Sa326燃料坯料 +item.billet_solinium.name=Sa327坯料 item.billet_sr90.name=锶-90坯料 item.billet_technetium.name=锝-99坯料 item.billet_th232.name=钍-232坯料 -item.billet_thorium_fuel.name=钍核燃料坯料 +item.billet_thorium_fuel.name=钍燃料坯料 item.billet_u233.name=铀-233坯料 item.billet_u235.name=铀-235坯料 item.billet_u238.name=铀-238坯料 item.billet_uranium.name=铀坯料 -item.billet_uranium_fuel.name=铀核燃料坯料 -item.billet_yharonite.name=龙素坯料 -item.billet_zfb_am_mix.name=ZFB锆混合反应堆级镅快速增殖坯料 -item.billet_zfb_bismuth.name=ZFB锆混合铋快速增殖坯料 -item.billet_zfb_pu241.name=ZFB锆混合钚-241快速增殖坯料 +item.billet_uranium_fuel.name=铀燃料坯料 +item.billet_yharonite.name=犽戎龙素坯料 +item.billet_zfb_am_mix.name=反应器级镅 ZFB坯料 +item.billet_zfb_bismuth.name=铋 ZFB坯料 +item.billet_zfb_pu241.name=钚-241 ZFB坯料 item.billet_zirconium.name=锆坯料 -item.bio_wafer.name=藻类晶片 +item.bio_wafer.name=海藻晶片 item.biomass.name=生物质 item.biomass_compressed.name=压缩生物质 item.bismuth_boots.name=铋凉鞋 item.bismuth_helmet.name=铋头饰 item.bismuth_legs.name=铋护膝 item.bismuth_pickaxe.name=铋镐 -item.bismuth_plate.name=铋质护肩, 项链和腰带 +item.bismuth_plate.name=铋质护肩、项链和腰带 item.bismuth_tool.name=磁力提取器 -item.bj_boots.name=§b[月 神]§r 铆钉靴 -item.bj_helmet.name=敌我目标实体识别仪 -item.bj_legs.name=§b[月 神]§r 神经接入式腿部外骨骼盔甲 -item.bj_plate.name=§b[月 神]§r 神经接入式全自动动力盔甲 -item.bj_plate_jetpack.name=§b[月 神]§r 神经接入式全自动动力盔甲(带等离子推进器) -item.black_diamond.name=黑钻石 +item.bj_boots.name=§4月神§r钉靴 +item.bj_helmet.name=热传感器眼罩 +item.bj_legs.name=§4月神§r护腿 +item.bj_plate.name=§4月神§r胸甲 +item.bj_plate_jetpack.name=§4月神§r胸甲 (带翼) +item.black_diamond.name=黑色钻石 item.black_hole.name=微型黑洞 -item.blade_meteorite.name=陨石刀片 -item.blade_titanium.name=钛涡轮扇片 -item.blade_tungsten.name=钨强化涡轮扇片 +item.blade_meteorite.name=陨石刀 +item.blade_titanium.name=钛扇片 +item.blade_tungsten.name=钨强化扇片 item.blades_advanced_alloy.name=高级合金刀片 -item.blades_aluminium.name=铝制刀片 -item.blades_combine_steel.name=CMB钢刀片 -item.blades_desh.name=德什制刀片 -item.blades_gold.name=金制刀片 -item.blades_iron.name=铁制刀片 -item.blades_schrabidium.name=Sa326异变铀金属刀片 +item.blades_desh.name=Desh制刀片 item.blades_steel.name=钢制刀片 item.blades_titanium.name=钛制刀片 item.blowtorch.name=喷灯 @@ -1801,16 +1762,16 @@ item.bobmazon_weapons.name=Bobmazon: 武器和爆炸物 item.bolt_compound.name=加强涡轮机轴 item.bolt_dura_steel.name=高速钢螺栓 item.bolt_tungsten.name=钨螺栓 -item.boltgun.name=气动铆钉枪 +item.boltgun.name=气动射钉枪 item.bomb_caller.name=空袭指示器 item.bomb_waffle.name=大规模杀伤性华夫饼 -item.book_guide.name=RBMK反应堆操作指导书 +item.book_guide.name=HBM指导书 item.book_of_.name=车厢书 item.book_secret.name=3-596-50802-9 item.bottle2_empty.name=空瓶 -item.bottle2_fritz.name=Fritz弗里茨可乐 -item.bottle2_fritz_special.name=第一Fritz可乐 -item.bottle2_korl.name=库尔勒瓶盖 +item.bottle2_fritz.name=弗里茨可乐 +item.bottle2_fritz_special.name=第一弗里茨可乐 +item.bottle2_korl.name=Korl item.bottle2_korl_special.name=第一Korl item.bottle2_sunset.name=夕阳沙士 item.bottle_cherry.name=樱桃味核子可乐 @@ -1819,24 +1780,24 @@ item.bottle_mercury.name=一瓶水银 item.bottle_nuka.name=核子可乐 item.bottle_opener.name=Hbm自制开瓶器 item.bottle_quantum.name=量子核子可乐 -item.bottle_rad.name=辐射S~闪闪可乐 -item.bottle_sparkle.name=S~闪闪可乐 -item.boy_bullet.name=铀235弹头 +item.bottle_rad.name=辐射S~核子可乐 +item.bottle_sparkle.name=S~核子可乐 +item.boy_bullet.name=铀-235弹头 item.boy_igniter.name=点火器 item.boy_kit.name=小男孩 套件 item.boy_propellant.name=炸药 item.boy_shielding.name=中子屏蔽罩 -item.boy_target.name=次临界铀235标靶 +item.boy_target.name=次临界铀-235标靶 item.briquette.coal.name=煤球 -item.briquette.lignite.name=褐煤球 -item.briquette.wood.name=锯屑坯块 +item.briquette.lignite.name=褐煤煤球 +item.briquette.wood.name=木屑球 item.bucket_acid.name=一桶酸 item.bucket_mud.name=一桶毒泥 -item.bucket_schrabidic_acid.name=一桶Sa326元素酸液 +item.bucket_schrabidic_acid.name=一桶Sa酸 item.bucket_sulfuric_acid.name=一桶硫酸 item.bucket_toxic.name=一桶绿色软泥 item.burnt_bark.name=烧焦树皮 -item.burnt_bark.desc=从一棵爆炸的金橡树上剥下的树皮. +item.burnt_bark.desc=爆炸的金橡树的树皮。 item.can_bepis.name=白事 item.can_breen.name=布雷恩博士的私人珍藏 item.can_creature.name='生物'能量饮料 @@ -1844,96 +1805,95 @@ item.can_empty.name=空罐 item.can_key.name=罐头拉环 item.can_luna.name=黑梅萨露娜-黑可乐 item.can_mrsugar.name='糖博士'软饮料 -item.can_mug.name=杯根啤酒 -item.can_overcharge.name=超频'精神错乱' XT +item.can_mug.name=MUG牌树根啤酒 +item.can_overcharge.name=超频DeliriumXT item.can_redbomb.name='红色炸弹'能量饮料 item.can_smart.name="智慧"能量饮料 -item.canister_NITAN.name=NITAN© 100号超级燃料桶(旧版遗物) -item.canister_biofuel.name=生物燃料桶(旧版遗物) -item.canister_bitumen.name=沥青桶(旧版遗物) -item.canister_canola.name=润滑油桶(旧版遗物) -item.canister_empty.name=空油桶(旧版遗物) -item.canister_ethanol.name=乙醇桶(旧版遗物) -item.canister_fracksol.name=压裂液桶(旧版遗物) -item.canister_fuel.name=柴油桶(旧版遗物) -item.canister_fuel.desc=大家欢呼吧! -item.canister_full.name=桶: -item.canister_gasoline.name=精制汽油桶(旧版遗物) -item.canister_gasoline.desc=铅是你的好朋友$你应该让好朋友进入你的血液$*举枪* 现在立刻马上去做. -item.canister_heatingoil.name=燃油桶(旧版遗物) -item.canister_heavyoil.name=重油桶(旧版遗物) -item.canister_kerosene.name=煤油桶(旧版遗物) -item.canister_lightoil.name=轻油桶(旧版遗物) -item.canister_napalm.name=凝固汽油桶(旧版遗物) -item.canister_naphtha.name=石脑油桶(旧版遗物) -item.canister_oil.name=原油桶(旧版遗物) -item.canister_petroil.name=混机油汽油桶(旧版遗物) -item.canister_reoil.name=再生工业油桶(旧版遗物) -item.canister_smear.name=工业油桶(旧版遗物) +item.canister_NITAN.name=桶装NITAN 100号超级燃料 +item.canister_biofuel.name=桶装生物燃料 +item.canister_bitumen.name=桶装沥青 +item.canister_canola.name=桶装润滑油 +item.canister_empty.name=空油桶 +item.canister_ethanol.name=桶装乙醇 +item.canister_fracksol.name=桶装压裂液 +item.canister_fuel.name=桶装柴油 +item.canister_fuel.desc=大家欢呼吧! +item.canister_full.name=容器: +item.canister_gasoline.name=桶装含铅汽油 +item.canister_gasoline.desc=铅就是朋友$让朋友进入你的血液$*上膛声*现在就做 +item.canister_heatingoil.name=桶装燃油 +item.canister_heavyoil.name=桶装重油 +item.canister_kerosene.name=桶装煤油 +item.canister_lightoil.name=桶装轻油 +item.canister_napalm.name=桶装凝固汽油B +item.canister_naphtha.name=桶装石脑油 +item.canister_oil.name=桶装原油 +item.canister_petroil.name=桶装汽油 +item.canister_reoil.name=桶装再生油 +item.canister_smear.name=桶装工业油 item.canned_asbestos.name=石棉罐头 -item.canned_asbestos.desc=尝尝石棉肺! +item.canned_asbestos.desc=尝尝石棉肺! item.canned_ass.name=驴罐头 -item.canned_ass.desc=100%% 优质驴肉!* +item.canned_ass.desc=100%优质驴肉!* item.canned_bark.name=松树皮罐头 item.canned_bark.desc=更加的“松”脆! item.canned_beef.name=牛肉罐头 -item.canned_beef.desc=几个世纪前,一头牛为此而死. +item.canned_beef.desc=几个世纪前,一头牛为此而死。 item.canned_bhole.name=黑洞罐头 -item.canned_bhole.desc=奇点是我肚子里的美味! +item.canned_bhole.desc=奇点是我肚肚里的美味! item.canned_cheese.name=融化奶酪罐头 -item.canned_cheese.desc=是奶酪?还是橡胶水泥?谁知道,又有谁在乎. +item.canned_cheese.desc=是奶酪吗?是橡胶水泥吗?谁知道,谁在乎。 item.canned_chinese.name=中餐罐头 -item.canned_chinese.desc=在中国,中餐就被叫做食物. +item.canned_chinese.desc=在中国,中餐被称为饭。 item.canned_diesel.name=柴油罐头 -item.canned_diesel.desc=我渐渐地就抖不出包袱了. +item.canned_diesel.desc=我渐渐地就抖不出包袱了 item.canned_fist.name=拳头罐头 item.canned_fist.desc=给你一拳! item.canned_fried.name=炸鸡罐头 -item.canned_fried.desc=连罐头都是油炸的! +item.canned_fried.desc=甚至罐头都是油炸的! item.canned_hotdogs.name=热狗罐头 -item.canned_hotdogs.desc=不要和冷猫混淆. -item.canned_jizz.name=FlimFlam工业™ 马奶罐头 +item.canned_hotdogs.desc=不要与冷猫混淆。 +item.canned_jizz.name=FlimFlam工业牌?马奶罐头 item.canned_jizz.desc=等等什么—— item.canned_kerosene.name=煤油罐头 -item.canned_kerosene.desc=想象一下这里有句好笑的俏皮话. +item.canned_kerosene.desc=想象一下这句俏皮的台词。 item.canned_leftovers.name=剩菜罐头 item.canned_leftovers.desc=你来的太迟了 item.canned_milk.name=罐装炼乳 -item.canned_milk.desc=炼奶2:比以前更像固体了! +item.canned_milk.desc=牛奶2:比以往任何时候都更固体! item.canned_mystery.name=神秘肉类罐头 -item.canned_mystery.desc=里面是什么?只有一种方法可以找到答案! +item.canned_mystery.desc=里面是什么?只有一种方法可以找到! item.canned_napalm.name=凝固汽油罐头 item.canned_napalm.desc=我喜欢早上闻着老梗的味道! item.canned_oil.name=机油罐头 item.canned_oil.desc=它既然能让发动机运转的更流畅,那为什么不能用在人类身上? -item.canned_pashtet.name=牛排 -item.canned_pashtet.desc=翻译不可用блядь! +item.canned_pashtet.name=牛排罐头 +item.canned_pashtet.desc=翻译服务不可用блядь! item.canned_pizza.name=意大利香肠比萨罐头 -item.canned_pizza.desc=危害人类罪. +item.canned_pizza.desc=反人类罪 item.canned_recursion.name=循环罐头 -item.canned_recursion.desc=循环罐头 -item.canned_spam.name=午餐肉罐头 -item.canned_spam.desc=段三分半钟的幽默剧是以布朗利虚构的绿侏儒咖啡馆为背景$一位女服务生与不喜欢吃午餐肉的本太太之间发生了争执,$女服务生背诵了一份几乎每道菜都含有午餐肉的菜单。$本太太要了一道没有午餐肉的菜,这让她爱吃午餐肉的丈夫大吃一惊。$女服务员也对这个要求很反感。$本先生提出要替换她的午餐肉,并要了一道含有大量午餐肉和烤豆的菜。$服务员拒绝了,因为烤豆子已经吃完了;$当本先生要求替换午餐肉时,女服务员再次表示厌恶。$有几次,餐厅里的一群维京人高声歌唱午餐肉,打断了谈话。$那个愤怒的女服务员命令他们闭嘴,但他们依旧大声唱歌。$这时一名匈牙利游客来到柜台,$试图用一本完全不准确的匈牙利语/英语手册(参考之前的小品)点菜。$紧接着这名匈牙利游客就被一名警察迅速护送离开。$然后这段幽默剧突然切换镜头,$一位历史学家在电视演播室谈论维京人在咖啡馆的起源。$他继续说,并开始越来越多地在每一句话中插入“午餐肉”一词。$然后背景被抬高,露出背后的餐厅场景。$那个历史学家加入了维京人的歌曲,本夫妇通过电线离开现场,而歌声还在继续。$在最初的电视表演中,结尾的字幕开始滚动,背景中仍然可以听到歌声。 +item.canned_recursion.desc=封闭递归 +item.canned_spam.name=SPAM斯帕姆午餐肉 +item.canned_spam.desc=这段三分半钟的幽默剧是以布朗利虚构的绿侏儒咖啡馆为背景。一位女服务生与不喜欢吃午餐肉的本太太之间发生了争执,女服务生背诵了一份几乎每道菜都含有午餐肉的菜单。本太太要了一道没有午餐肉的菜,这让她爱吃午餐肉的丈夫大吃一惊。女服务员也对这个要求很反感。本先生提出要替换她的午餐肉,并要了一道含有大量午餐肉和烤豆的菜。服务员拒绝了,因为烤豆子已经吃完了;当本先生要求替换午餐肉时,女服务员再次表示厌恶。有几次,餐厅里的一群维京人高声歌唱午餐肉,打断了谈话。那个愤怒的女服务员命令他们闭嘴,但他们依旧大声唱歌。这时一名匈牙利游客来到柜台,试图用一本完全不准确的匈牙利语/英语手册(参考之前的小品)点菜。紧接着这名匈牙利游客就被一名警察迅速护送离开。然后这段幽默剧突然切换镜头,一位历史学家在电视演播室谈论维京人在咖啡馆的起源。他继续说,并开始越来越多地在每一句话中插入“午餐肉”一词。然后背景被抬高,露出背后的餐厅场景。那个历史学家加入了维京人的歌曲,本夫妇通过电线离开现场,而歌声还在继续。在最初的电视表演中,结尾的字幕开始滚动,背景中仍然可以听到歌声。 item.canned_stew.name=蘑菇煲罐头 item.canned_stew.desc=... item.canned_tomato.name=番茄汤罐头 item.canned_tomato.desc=谁要浓浓的红糊糊? item.canned_tube.name=宇航员食品管 -item.canned_tube.desc=美味的糊状物. +item.canned_tube.desc=美味的蘑菇。 item.canned_tuna.name=金枪鱼罐头 -item.canned_tuna.desc=美味的糊状物. +item.canned_tuna.desc=我不知道那是金枪鱼还是干水泥。 item.canned_yogurt.name=酸奶罐头 -item.canned_yogurt.desc=可能坏掉了,但管它呢. +item.canned_yogurt.desc=可能坏掉了,但管它呢 item.canteen_13.name=Vault13水壶 item.canteen_fab.name=极品伏特加 item.canteen_vodka.name=伏特加 -item.cap_aluminium.name=铝盖 -item.cap_fritz.name=Fritz弗里茨可乐瓶盖 +item.cap_fritz.name=弗里茨瓶盖 item.cap_korl.name=Korl瓶盖 item.cap_nuka.name=核子可乐瓶盖 -item.cap_quantum.name=樱桃味量子核子可乐瓶盖 -item.cap_rad.name=辐射S~闪闪可乐瓶盖 -item.cap_sparkle.name=S~闪闪可乐瓶盖 +item.cap_quantum.name=樱桃味核子可乐瓶盖 +item.cap_rad.name=辐射S~核子可乐瓶盖 +item.cap_sparkle.name=S~核子可乐瓶盖 item.cap_star.name=夕阳沙士星星瓶盖 item.cap_sunset.name=夕阳沙士瓶盖 item.cape_ayy.name=Ayy披风 @@ -1941,13 +1901,13 @@ item.cape_codered_.name=codered_披风 item.cape_dafnik.name=Dafnik披风 item.cape_gasmask.name=披风[防毒面具] item.cape_hbm.name=Hbm披风 -item.cape_hidden.name=隐藏披风 +item.cape_hidden.name=隐藏斗篷 item.cape_lpkukin.name=LPkukin披风 item.cape_nostalgia.name=DrNostalgia披风 item.cape_radiation.name=披风[辐射] -item.cape_schrabidium.name=披风[Sa326施布拉比迪] +item.cape_schrabidium.name=披风[Sa326] item.cape_vertice.name=Lord Vertice披风 -item.cart.crate.name=板条箱车 +item.cart.crate.name=板条箱运输车 item.cart.destroyer.name=废品销毁车 item.cart.empty.name=钢箱矿车 item.casing_357.name=.357马格南弹壳[x16] @@ -1958,7 +1918,7 @@ item.casing_buckshot.name=鹿弹弹壳[x8] item.catalyst_clay.name=黏土催化剂 item.catalytic_converter.name=催化转化器 item.cbt_device.name=CBT装置 -item.cell_anti_schrabidium.name=反Sa326异变铀金属单元 +item.cell_anti_schrabidium.name=反Sa326单元 item.cell_antimatter.name=反物质单元 item.cell_balefire.name=气态野火单元 item.cell_deuterium.name=氘单元 @@ -1972,31 +1932,31 @@ item.centrifuge_element.name=离心元件 item.centrifuge_tower.name=离心塔 item.chainsaw.name=链锯 item.cheese.name=奶酪 -item.cheese_quesadilla.name=墨西哥奶酪饼 -item.chemical_dye.black.name=化学染料 (黑色) -item.chemical_dye.blue.name=化学染料 (蓝色) -item.chemical_dye.brown.name=化学染料 (棕色) -item.chemical_dye.cyan.name=化学染料 (青色) -item.chemical_dye.gray.name=化学染料 (灰色) -item.chemical_dye.green.name=化学染料 (绿色) -item.chemical_dye.lightblue.name=化学染料 (浅蓝色) -item.chemical_dye.lime.name=化学染料 (石灰色) -item.chemical_dye.magenta.name=化学染料 (洋红色) -item.chemical_dye.orange.name=化学染料 (橙色) -item.chemical_dye.pink.name=化学染料 (粉色) -item.chemical_dye.purple.name=化学染料 (紫色) -item.chemical_dye.red.name=化学染料 (红色) -item.chemical_dye.silver.name=化学染料 (浅灰色) -item.chemical_dye.white.name=化学染料 (白色) -item.chemical_dye.yellow.name=化学染料 (黄色) -item.chemistry_set.name=化学玻璃仪器 -item.chemistry_set_boron.name=化学玻璃仪器(硼玻璃) +item.cheese_quesadilla.name=奶酪油炸玉米粉饼 +item.chemical_dye.black.name=化学染料(黑色) +item.chemical_dye.blue.name=化学染料(蓝色) +item.chemical_dye.brown.name=化学染料(棕色) +item.chemical_dye.cyan.name=化学染料(青色) +item.chemical_dye.gray.name=化学染料(灰色) +item.chemical_dye.green.name=化学染料(绿色) +item.chemical_dye.lightblue.name=化学染料(浅蓝色) +item.chemical_dye.lime.name=化学染料(石灰) +item.chemical_dye.magenta.name=化学染料(品红色) +item.chemical_dye.orange.name=化学染料(橙色) +item.chemical_dye.pink.name=化学染料(粉色) +item.chemical_dye.purple.name=化学染料(紫色) +item.chemical_dye.red.name=化学染料(红色) +item.chemical_dye.silver.name=化学染料(浅灰色) +item.chemical_dye.white.name=化学染料(白色) +item.chemical_dye.yellow.name=化学染料(黄色) +item.chemistry_set.name=实验室玻璃器皿 +item.chemistry_set_boron.name=实验室玻璃器皿(硼玻璃) item.chemistry_template.name=化工厂模板: item.chernobylsign.name=辐射警告标志战斧 item.chlorine_pinwheel.name=氯气转轮 item.chlorophyte_pickaxe.name=叶绿镐 -item.chocolate.name=伊蒂斯牌镭巧克力 -item.chocolate.desc=镭巧克力?很确定这只是冰毒. +item.chocolate.name=“我是-镭牌”巧克力 +item.chocolate.desc=镭巧克力?我很确定这是冰毒。 item.chocolate_milk.name=巧克力牛奶 item.chopper.name=猎人直升机 item.chopper_blades.name=猎人直升机旋翼 @@ -2017,47 +1977,47 @@ item.circuit_gold.name=超频电路 item.circuit_raw.name=基本电路组件 item.circuit_red_copper.name=高级电路 item.circuit_schrabidium.name=高性能电路 -item.circuit_star.name=星控 控制电路板 -item.circuit_star.desc=当前无法使用, 因为它缺少一个操作系统. -item.circuit_star_component.chipset.name=星控 - 总芯片组 -item.circuit_star_component.cpu.name=星控 - 中央处理器 -item.circuit_star_component.ram.name=星控 - 内存 -item.circuit_star_piece.board_blank.name=星控 - 印刷电路板 -item.circuit_star_piece.board_transistor.name=星控 - 晶体管 -item.circuit_star_piece.bridge_bios.name=星控- BIOS基本输入输出系统芯片 -item.circuit_star_piece.bridge_bus.name=星控 - BUS总线 -item.circuit_star_piece.bridge_chipset.name=星控 - 芯片组 -item.circuit_star_piece.bridge_cmos.name=星控 - CMOS RAM随机存取存储器 -item.circuit_star_piece.bridge_io.name=星控 - IO芯片 -item.circuit_star_piece.bridge_north.name=星控 - 北桥芯片集 -item.circuit_star_piece.bridge_south.name=星控 - 南桥芯片集 -item.circuit_star_piece.cpu_cache.name=星控 - 中央处理器缓存 -item.circuit_star_piece.cpu_clock.name=星控 - CPU时钟 -item.circuit_star_piece.cpu_ext.name=星控 - 延伸砷半导体 -item.circuit_star_piece.cpu_logic.name=星控 - 算术逻辑单元 -item.circuit_star_piece.cpu_register.name=星控 - CPU寄存器 -item.circuit_star_piece.cpu_socket.name=星控 - CPU插座 -item.circuit_star_piece.mem_socket.name=星控 - 内存插座 -item.circuit_star_piece.mem_16k_a.name=星控 - 16k内存条插槽A -item.circuit_star_piece.mem_16k_b.name=星控 - 16k内存条插槽B -item.circuit_star_piece.mem_16k_c.name=星控 - 16k内存条插槽C -item.circuit_star_piece.mem_16k_d.name=星控 - 16k内存条插槽D -item.circuit_tantalium.name=电容器板 -item.circuit_tantalium_raw.name=电容器板组件 +item.circuit_star.name=星控制 电路板 +item.circuit_star.desc=目前无效,因为它缺少操作系统。 +item.circuit_star_component.chipset.name=星控制 芯片组 +item.circuit_star_component.cpu.name=星控制 CPU +item.circuit_star_component.ram.name=星控制 RAM +item.circuit_star_piece.board_blank.name=SC-印刷电路板 +item.circuit_star_piece.board_transistor.name=SC-晶体管 +item.circuit_star_piece.bridge_bios.name=SC-BIOS芯片 +item.circuit_star_piece.bridge_bus.name=SC-总线 +item.circuit_star_piece.bridge_chipset.name=SC-芯片组 +item.circuit_star_piece.bridge_cmos.name=SC-CMOS存储器 +item.circuit_star_piece.bridge_io.name=SC-IO芯片 +item.circuit_star_piece.bridge_north.name=SC-北桥 +item.circuit_star_piece.bridge_south.name=SC-南桥 +item.circuit_star_piece.cpu_cache.name=SC-CPU缓存 +item.circuit_star_piece.cpu_clock.name=SC-CPU时钟 +item.circuit_star_piece.cpu_ext.name=SC-砷半导体外延片 +item.circuit_star_piece.cpu_logic.name=SC-算术逻辑单元 +item.circuit_star_piece.cpu_register.name=SC-CPU寄存器 +item.circuit_star_piece.cpu_socket.name=SC-CPU插槽 +item.circuit_star_piece.mem_socket.name=SC-存储插座 +item.circuit_star_piece.mem_16k_a.name=SC-16k内存条插槽 A +item.circuit_star_piece.mem_16k_b.name=SC-16k内存条插槽 B +item.circuit_star_piece.mem_16k_c.name=SC-16k内存条插槽 C +item.circuit_star_piece.mem_16k_d.name=SC-16k内存条插槽 D +item.circuit_tantalium.name=电容板 +item.circuit_tantalium_raw.name=电容板组件 item.circuit_targeting_tier1.name=军用级电路板[1级] item.circuit_targeting_tier2.name=军用级电路板[2级] item.circuit_targeting_tier3.name=军用级电路板[3级] item.circuit_targeting_tier4.name=军用级电路板[4级] item.circuit_targeting_tier5.name=军用级电路板[5级] item.circuit_targeting_tier6.name=军用级电路板[6级] -item.cladding_desh.name=德什覆层 -item.cladding_ghiorsium.name=石墨覆层 +item.cladding_desh.name=Desh覆层 +item.cladding_ghiorsium.name=Gh336覆层 item.cladding_iron.name=铁覆层 item.cladding_lead.name=铅覆层 item.cladding_obsidian.name=黑曜石覆层 item.cladding_paint.name=铅涂料 item.cladding_rubber.name=橡胶覆层 -item.clip_bf.name=两包BF-子弹 +item.clip_bf.name=两包野火子弹 item.clip_bolt_action.name=盒装12x74独头弹 item.clip_cryolator.name=急冻单元箱 item.clip_defabricator.name=毁灭者能量电池弹药带 @@ -2068,7 +2028,7 @@ item.clip_hp.name=墨水缸 item.clip_immolator.name=焚烧者燃料箱 item.clip_jack.name=盒装四联12x70鹿弹 item.clip_lever_action.name=盒装12x74鹿弹 -item.clip_mirv.name=三合一微型分导式多弹头核弹包 +item.clip_mirv.name=三合一微型MIRV包 item.clip_mp.name=小型无发射药机枪子弹盒 item.clip_mp40.name=9mm冲锋枪子弹盒 item.clip_osipr.name=AR2 弹盒 @@ -2081,7 +2041,7 @@ item.clip_revolver_nightmare.name=子弹袋 item.clip_revolver_nightmare2.name=激光弹药带 item.clip_revolver_nopip.name=盒装.44子弹 item.clip_revolver_pip.name=左轮快速装弹器 -item.clip_revolver_schrabidium.name=Sa326异变铀金属弹药盒 +item.clip_revolver_schrabidium.name=Sa326弹药盒 item.clip_rpg.name=火箭弹箱 item.clip_spark.name=大型电磁子弹 item.clip_stinger.name=包装毒刺导弹 @@ -2100,11 +2060,11 @@ item.cmb_sword.name=CMB钢剑 item.coal_infernal.name=地狱煤炭 item.cobalt_axe.name=钴斧 item.cobalt_boots.name=钴靴子 -item.cobalt_decorated_axe.name=镶钴斧 -item.cobalt_decorated_hoe.name=镶钴锄 -item.cobalt_decorated_pickaxe.name=镶钴镐 -item.cobalt_decorated_shovel.name=镶钴铲 -item.cobalt_decorated_sword.name=镶钴剑 +item.cobalt_decorated_axe.name=镶嵌钴斧 +item.cobalt_decorated_hoe.name=镶嵌钴锄 +item.cobalt_decorated_pickaxe.name=镶嵌钴镐 +item.cobalt_decorated_shovel.name=镶嵌钴锹 +item.cobalt_decorated_sword.name=镶嵌钴剑 item.cobalt_helmet.name=钴头盔 item.cobalt_hoe.name=钴锄 item.cobalt_legs.name=钴护腿 @@ -2125,45 +2085,45 @@ item.coil_tungsten.name=加热线圈 item.coin_creeper.name=核爆爬行者硬币 item.coin_maskman.name=面具硬币 item.coin_radiation.name=辐射硬币 -item.coin_siege.name=围攻硬币 +item.coin_siege.name=围城硬币 item.coin_ufo.name=UFO硬币 -item.coin_worm.name=世-界-毁-灭-者 O-TRON 硬币 -item.coke.coal.name=焦煤 -item.coke.lignite.name=褐焦煤 -item.coke.petroleum.name=石油焦 -item.coltan_tool.name=钶钽铁矿探测罗盘 +item.coin_worm.name=机械蠕虫硬币 +item.coke.coal.name=煤焦炭 +item.coke.lignite.name=褐煤焦炭 +item.coke.petroleum.name=石油焦炭 +item.coltan_tool.name=钶钽铁矿指针 item.combine_scrap.name=CMB钢废料 item.component_emitter.name=发射器组件 item.component_limiter.name=稳定器组件 -item.containment_box.name=安全箱 +item.containment_box.name=安全盒 item.cordite.name=无烟线状火药 item.cotton_candy.name=放射性棉花糖 -item.crackpipe.name=生命之管 +item.crackpipe.name=健康烟壶 item.crate_caller.name=空投召唤器 -item.crayon.black.name=黑色 蜡笔 -item.crayon.blue.name=蓝色 蜡笔 -item.crayon.brown.name=棕色 蜡笔 -item.crayon.cyan.name=青色 蜡笔 -item.crayon.gray.name=灰色 蜡笔 -item.crayon.green.name=绿色 蜡笔 -item.crayon.lightblue.name=浅蓝色 蜡笔 -item.crayon.lime.name=石灰色 蜡笔 -item.crayon.magenta.name=洋红色 蜡笔 -item.crayon.orange.name=橙色 蜡笔 -item.crayon.pink.name=粉色 蜡笔 -item.crayon.purple.name=紫色 蜡笔 -item.crayon.red.name=红色 蜡笔 -item.crayon.silver.name=浅灰色 蜡笔 -item.crayon.white.name=白色 蜡笔 -item.crayon.yellow.name=黄色 蜡笔 +item.crayon.black.name=黑色蜡笔 +item.crayon.blue.name=蓝色蜡笔 +item.crayon.brown.name=棕色蜡笔 +item.crayon.cyan.name=青色蜡笔 +item.crayon.gray.name=灰色蜡笔 +item.crayon.green.name=绿色蜡笔 +item.crayon.lightblue.name=浅蓝色蜡笔 +item.crayon.lime.name=青色蜡笔 +item.crayon.magenta.name=品红蜡笔 +item.crayon.orange.name=橙色蜡笔 +item.crayon.pink.name=粉红蜡笔 +item.crayon.purple.name=紫色蜡笔 +item.crayon.red.name=红色蜡笔 +item.crayon.silver.name=浅灰色蜡笔 +item.crayon.white.name=白色蜡笔 +item.crayon.yellow.name=黄色蜡笔 item.crowbar.name=Mk.V开箱装置"物理学圣剑" item.crucible.name=裁决剑 -item.crucible_template.name=坩埚配方: +item.crucible_template.name=坩埚模板 item.crystal_aluminium.name=铝晶体 item.crystal_beryllium.name=铍晶体 item.crystal_charred.name=烧焦的水晶 -item.crystal_charred.desc=优质硅酸盐,经过了轻度灼烧. -item.crystal_charred.desc.P11=也是一个真正的角.真奇怪,对吧? +item.crystal_charred.desc=优质硅酸盐,轻微灼烧。 +item.crystal_charred.desc.P11=也是一个真正的号角。奇怪吧? item.crystal_coal.name=煤晶体 item.crystal_cobalt.name=钴晶体 item.crystal_copper.name=铜晶体 @@ -2173,11 +2133,11 @@ item.crystal_energy.name=能量晶体 item.crystal_fluorite.name=氟晶体 item.crystal_gold.name=金晶体 item.crystal_horn.name=水晶角 -item.crystal_horn.desc=不是真正意义上的角. -item.crystal_horn.desc.P11=真正的角. +item.crystal_horn.desc=不是真正的号角。 +item.crystal_horn.desc.P11=真正的号角。 item.crystal_iron.name=铁晶体 -item.crystal_lapis.name=青金石晶体 item.crystal_lead.name=铅晶体 +item.crystal_lapis.name=青金石晶体 item.crystal_lithium.name=锂晶体 item.crystal_niter.name=硝石晶体 item.crystal_osmiridium.name=铱锇晶体 @@ -2185,9 +2145,9 @@ item.crystal_phosphorus.name=磷晶体 item.crystal_plutonium.name=钚晶体 item.crystal_rare.name=稀土晶体 item.crystal_redstone.name=红石晶体 -item.crystal_schrabidium.name=Sa326异变铀金属晶体 -item.crystal_schraranium.name=低丰度Sa326异变铀金属晶体 -item.crystal_starmetal.name=星辉金属晶体 +item.crystal_schrabidium.name=低丰度Sa326晶体 +item.crystal_schraranium.name=Sa326晶体 +item.crystal_starmetal.name=星辉晶体 item.crystal_sulfur.name=硫晶体 item.crystal_thorium.name=钍晶体 item.crystal_titanium.name=钛晶体 @@ -2196,36 +2156,36 @@ item.crystal_tungsten.name=钨晶体 item.crystal_uranium.name=铀晶体 item.crystal_xen.name=人造X晶体 item.crt_display.name=阴极射线管 -item.cube_power.name=超立方体 +item.cube_power.name=电子块 item.custom_amat.name=自定义核弹-反物质棒 item.custom_dirty.name=自定义核弹-核废料棒 item.custom_fall.name=自定义核弹-掉落升级 -item.custom_fall.desc=这就是你们一一一一一直在等着想要的!$使自定义核弹被激活后可坠落 +item.custom_fall.desc=这就是你一一一直在等待的$使炸弹在激活时下落 item.custom_hydro.name=自定义核弹-氢棒 item.custom_kit.name=自定义核弹 套件 item.custom_nuke.name=自定义核弹-铀棒 -item.custom_schrab.name=自定义核弹-Sa326异变铀金属棒 -item.custom_tnt.name=自定义核弹-炸药棒 +item.custom_schrab.name=自定义核弹-Sa326棒 +item.custom_tnt.name=自定义核弹-炸药 item.cyclotron_tower.name=回旋加速器塔 -item.debris_concrete.name=碎混凝土块 -item.debris_element.name=断裂的锆诺克斯反应堆燃料棒元件 -item.debris_exchanger.name=热交换器片 +item.debris_concrete.name=碎混凝土 +item.debris_element.name=断裂的锆诺克斯燃料元件 +item.debris_exchanger.name=换热器片 item.debris_fuel.name=RBMK石墨式反应堆燃料块 item.debris_graphite.name=热石墨块 item.debris_metal.name=断裂金属棒 -item.debris_shrapnel.name=崩飞的碎片 +item.debris_shrapnel.name=走道碎片 item.definitelyfood.name=完全不脏牌军粮 item.defuser.name=高科技拆弹装置 -item.defuser_gold.name=金制拆弹装置 -item.demon_core_closed.name=关闭的恶魔核心 -item.demon_core_open.name=悬浮恶魔核心 +item.defuser_gold.name=黄金剪线钳 +item.demon_core_closed.name=封闭的恶魔核心 +item.demon_core_open.name=打开的恶魔核心 item.desh_axe.name=工人合金斧 item.desh_hoe.name=工人合金锄 item.desh_pickaxe.name=工人合金镐 item.desh_shovel.name=工人合金锹 item.desh_sword.name=工人合金剑 item.designator.name=短程目标指示器 -item.designator_arty_range.name=远程重炮目标指示器 +item.designator_arty_range.name=远程火炮遥控器 item.designator_manual.name=手动目标指示器 item.designator_range.name=远程目标指示器 item.detonator.name=起爆器 @@ -2235,76 +2195,76 @@ item.detonator_laser.name=激光起爆器 item.detonator_multi.name=多发起爆器 item.deuterium_filter.name=氘过滤器 item.diamond_gavel.name=钻石槌 -item.dieselsuit_boots.name=柴油动力装甲靴 +item.dieselsuit_boots.name=柴油动力高跟鞋 item.dieselsuit_helmet.name=柴油动力头戴式环境传感器 item.dieselsuit_legs.name=柴油动力腿部伺服系统 -item.dieselsuit_plate.name=柴油动力协调控制胸甲 -item.digamma_diagnostic.name=玩家Ϝ迪伽马辐射自检器 +item.dieselsuit_plate.name=柴油动力控制器 +item.digamma_diagnostic.name=玩家F-迪伽马辐射自检器 item.dns_boots.name=DNT双聚中子态素高科技全环境作战服靴子 item.dns_legs.name=DNT双聚中子态素高科技全环境作战服护腿 item.dns_helmet.name=DNT双聚中子态素高科技全环境作战服头盔 item.dns_plate.name=DNT双聚中子态素高科技全环境作战服胸甲 -item.dnt_boots.name=聚双中子态素靴子 -item.dnt_legs.name=中子双聚态素护腿 -item.dnt_helmet.name=聚双中子态素头盔 -item.dnt_plate.name=双子聚中态素胸甲 +item.dnt_boots.name=双聚态中子素 靴子 +item.dnt_legs.name=双聚态中子素 护腿 +item.dnt_helmet.name=双聚态中子素 头盔 +item.dnt_plate.name=双聚态中子素 胸甲 item.door_bunker.name=仓门 item.door_metal.name=金属门 item.door_office.name=办公室门 -item.dosimeter.name=放射量测定器 -item.drillbit_desh.name=德什制钻头 -item.drillbit_desh_diamond.name=德什制钻头 (镶钻) -item.drillbit_ferro.name=铀铁合金制钻头 -item.drillbit_ferro_diamond.name=铀铁合金制钻头 (镶钻) -item.drillbit_hss.name=高速钢制钻头 -item.drillbit_hss_diamond.name=高速钢制钻头 (镶钻) -item.drillbit_steel.name=钢制钻头 -item.drillbit_steel_diamond.name=钢制钻头 (镶钻) -item.drillbit_tcalloy.name=锝钢合金制钻头 -item.drillbit_tcalloy_diamond.name=锝钢合金制钻头 (镶钻) +item.dosimeter.name=剂量计 +item.drillbit_desh.name=Desh钻头 +item.drillbit_desh_diamond.name=Desh钻头(镶钻) +item.drillbit_ferro.name=铀铁合金钻头 +item.drillbit_ferro_diamond.name=铀铁合金钻头(镶钻) +item.drillbit_hss.name=高速钢钻头 +item.drillbit_hss_diamond.name=高速钢钻头(镶钻) +item.drillbit_steel.name=钢钻头 +item.drillbit_steel_diamond.name=钢钻头(镶钻) +item.drillbit_tcalloy.name=锝钢钻头 +item.drillbit_tcalloy_diamond.name=锝钢钻头(镶钻) item.drill_titanium.name=钛钻头 item.drax.name=采掘钻 item.drax_mk2.name=强化型采掘钻 -item.drax_mk3.name=Sa326异变铀金属采掘钻 +item.drax_mk3.name=Sa326采掘钻 item.ducttape.name=胶带 item.dust.name=灰尘 -item.dust.desc=我讨厌灰尘! -item.dust.desc.P11=又一个家伙化作了尘埃! +item.dust.desc=我讨厌灰尘! +item.dust.desc.P11=又一小撮灰尘! item.dust_tiny.name=一小撮灰尘 item.dynosphere_base.name=空白动力球 -item.dynosphere_desh.name=德什动力球 -item.dynosphere_desh_charged.name=德什动力球[带电] +item.dynosphere_desh.name=Desh动力球 +item.dynosphere_desh_charged.name=Desh动力球[带电] item.dynosphere_dineutronium.name=双聚中子态素动力球 item.dynosphere_dineutronium_charged.name=双聚中子态素动力球[带电] -item.dynosphere_euphemium.name=Ep元素动力球 -item.dynosphere_euphemium_charged.name=Ep元素动力球[带电] -item.dynosphere_schrabidium.name=Sa326异变铀金属动力球 -item.dynosphere_schrabidium_charged.name=Sa326异变铀金属动力球[带电] +item.dynosphere_euphemium.name=Ep动力球 +item.dynosphere_euphemium_charged.name=Ep动力球[带电] +item.dynosphere_schrabidium.name=Sa326动力球 +item.dynosphere_schrabidium_charged.name=Sa326动力球[带电] item.dysfunctional_reactor.name=失控反应堆 -item.early_explosive_lenses.name=初代高能内爆炸药阵列 -item.early_explosive_lenses.desc=由8个高爆炸药装配而成,带有铝推进器、$硬铝外壳和桥丝式雷管. -item.egg_balefire.name=BF蛋 -item.egg_balefire.desc=啥样的鸟能生出这样一颗高放射性的蛋? -item.egg_balefire_shard.name=BF蛋碎片 +item.early_explosive_lenses.name=初代炸药透镜阵列 +item.early_explosive_lenses.desc=8个炸药透镜的组装,带有铝合金推进器、硬铝外壳和桥丝雷管。 +item.egg_balefire.name=野火蛋 +item.egg_balefire.desc=什么样的鸟儿才会下带有放射性的蛋? +item.egg_balefire_shard.name=野火蛋碎片 item.elec_axe.name=电锯 item.elec_pickaxe.name=冲击钻 item.elec_shovel.name=螺旋钻 item.elec_sword.name=电棍 item.energy_core.name=临时能源核心 item.entanglement_kit.name=纠缠部件 -item.entanglement_kit.desc=制造传送机所需要的关键部件.$通过铍元素增强资源扫描仪$来实现维度转换.. -item.euphemium_boots.name=Ep元素靴子 -item.euphemium_helmet.name=Ep元素头盔 -item.euphemium_kit.name=Ep元素工具箱 -item.euphemium_legs.name=Ep元素护腿 -item.euphemium_plate.name=Ep元素胸甲 -item.euphemium_stopper.name=Ep元素-阻滞者 -item.explosive_lenses.name=高能内爆炸药阵列 -item.explosive_lenses.desc=由8个PBX聚合物粘结炸药装配而成,带有一个薄型铝推进器, $硬铝外壳和小型桥丝式雷管. -item.fabsols_vodka.name=Fabsol的伏特加 +item.entanglement_kit.desc=传送机制作零件$通过$铍增强型资源扫描仪实现尺寸转换。 +item.euphemium_boots.name=Ep靴子 +item.euphemium_helmet.name=Ep头盔 +item.euphemium_kit.name=Ep工具箱 +item.euphemium_legs.name=Ep护腿 +item.euphemium_plate.name=Ep胸甲 +item.euphemium_stopper.name=Ep-阻滞者 +item.explosive_lenses.name=炸药透镜阵列 +item.explosive_lenses.desc=8个PBX炸药组装的阵列,带有一个薄的$铝推进器、硬铝外壳和$小型桥丝雷管。 +item.fabsols_vodka.name=Fabsol伏特加 item.factory_core_advanced.name=高级工厂能源组件 item.factory_core_titanium.name=工厂能源组件 -item.fallout.name=一大堆辐射尘 +item.fallout.name=一堆辐射尘 item.fau_boots.name=Fau靴子 item.fau_helmet.name=Fau头盔 item.fau_legs.name=Fau护腿 @@ -2315,51 +2275,51 @@ item.fins_flat.name=扁钢外壳 item.fins_quad_titanium.name=小型钛翼 item.fins_small_steel.name=小型钢栅格翼 item.fins_tri_steel.name=大型钢翼 -item.five_htp.name=5-羟色胺血清素药丸 -item.five_htp.desc=去除所有Ϝ迪伽马辐射, 给予10min的原子稳定性效果 +item.five_htp.name=5-羟色胺药丸 +item.five_htp.desc=移除所有迪伽马辐射,并获得10分钟稳定效果 item.flame_conspiracy.name=阴谋论 -item.flame_conspiracy.desc=钢梁不能熔化喷气燃料! +item.flame_conspiracy.desc=钢梁不能熔化喷气燃料! item.flame_opinion.name=个人观点 -item.flame_opinion.desc=好吧,我喜欢它... +item.flame_opinion.desc=呃,我喜欢... item.flame_politics.name=政治话题 -item.flame_politics.desc=唐纳德·特朗普将建一道新的"长城"! +item.flame_politics.desc=唐老鸭将会修建一堵墙! item.flame_pony.name=卡通小马画 -item.flame_pony.desc=黄色小马胜过了蓝色小马,这是不争的事实! -item.flask_infusion.shield.name=护盾灌注液 -item.fleija_core.name=F.L.E.I.J.A.铀235装药 +item.flame_pony.desc=黄马胜于蓝马,这是不争的事实! +item.flask_infusion.shield.name=护盾药水 +item.fleija_core.name=F.L.E.I.J.A.铀-235装药 item.fleija_igniter.name=脉冲点火器 item.fleija_kit.name=F.L.E.I.J.A. 套件 -item.fleija_propellant.name=Sa326异变铀金属炸药 +item.fleija_propellant.name=Sa326炸药 item.fluid_barrel_empty.name=空流体桶 item.fluid_barrel_full.name=流体桶: item.fluid_barrel_infinite.name=无限流体桶 item.fluid_duct.name=流体管道: item.fluid_identifier.name=流体识别码 -item.fluid_identifier.info=通用流体标识符, 用于: -item.fluid_identifier.usage0=在流体管道上单击鼠标右键, 为该管道指定流体类型. -item.fluid_identifier.usage1=按住Shift键并在流体管道上单击鼠标右键以指定 -item.fluid_identifier.usage2=相邻最多64个管道的流体类型. -item.fluid_identifier_multi.name=多流体标识符 -item.fluid_identifier_multi.info=一级通用流体标识符: -item.fluid_identifier_multi.info2=二级通用流体标识符: +item.fluid_identifier.info=流体标识码用于: +item.fluid_identifier.usage0=在流体管道上单击右键,为该管道指定运输的流体。 +item.fluid_identifier.usage1=按住Shift键并流体管道上单击右键以指定相邻管道 +item.fluid_identifier.usage2=最大范围为64格管道。 +item.fluid_identifier_multi.name=多类型流体识别码 +item.fluid_identifier_multi.info=通用流体识别码: +item.fluid_identifier_multi.info2=次要类型: item.fluid_tank_empty.name=空通用流体罐 item.fluid_tank_full.name=通用流体罐: -item.fluid_tank_lead_empty.name=空的危险流体罐 -item.fluid_tank_lead_full.name=危险流体罐: +item.fluid_tank_lead_empty.name=空危险品罐 +item.fluid_tank_lead_full.name=危险品罐: item.fluorite.name=氟石粉 item.flywheel_beryllium.name=铍制飞轮 -item.fmn.name=氟硝安定药片 -item.fmn.desc=移除2,000mDRX以上所有的Ϝ迪伽马辐射 -item.folly_bullet.name=12.8cm星辉金属弹头 -item.folly_bullet_du.name=12.8cm贫铀弹头 -item.folly_bullet_nuclear.name=12.8cm核弹头 +item.fmn.name=氟硝西泮片 +item.fmn.desc=移除2000mDRX以上的所有迪伽马辐射 +item.folly_bullet.name=128mm星辉弹头 +item.folly_bullet_du.name=128mm贫铀弹头 +item.folly_bullet_nuclear.name=128mm核弹头 item.folly_shell.name=银弹壳 item.fooditem.name=食物 -item.fragment_actinium.name=锕-227碎片 +item.fragment_actinium.name=锕碎片 item.fragment_boron.name=硼碎片 item.fragment_cerium.name=铈碎片 item.fragment_cobalt.name=钴碎片 -item.fragment_coltan.name=钶钽铁矿 +item.fragment_coltan.name=钶钽铁矿碎片 item.fragment_lanthanium.name=镧碎片 item.fragment_meteorite.name=陨石碎片 item.fragment_neodymium.name=钕碎片 @@ -2371,44 +2331,42 @@ item.fuse.name=保险丝 item.fusion_core.name=聚变能源核心 item.fusion_core_infinite.name=无限能源核心 item.fusion_shield_chlorophyte.name=叶绿金属聚变反应堆覆层 -item.fusion_shield_desh.name=德什聚变反应堆覆层 +item.fusion_shield_desh.name=Desh聚变反应堆覆层 item.fusion_shield_tungsten.name=钨聚变反应堆覆层 item.fusion_shield_vaporwave.name=蒸汽波反应堆覆层 - -item.gadget_core.name=大型钚核心 +item.gadget_core.name=钚核心 item.gadget_explosive.name=炸药 -item.gadget_explosive8.name=炸药束 item.gadget_kit.name=小玩意 套件 item.gadget_wireing.name=线路 item.gas_biogas.name=沼气罐 item.gas_empty.name=空气罐 -item.gas_full.name=天然气罐 -item.gas_lpg.name=LPG罐 +item.gas_full.name=气体罐 +item.gas_lpg.name=液化石油气罐 item.gas_mask.name=防毒面具 item.gas_mask_filter.name=防毒面具过滤器 -item.gas_mask_filter_combo.name=组合型防毒面具过滤器 +item.gas_mask_filter_combo.name=防毒面具组合式过滤器 item.gas_mask_filter_mono.name=催化性面罩过滤器 -item.gas_mask_filter_piss.name=高级的简易防毒面具过滤器 -item.gas_mask_filter_rag.name=简易防毒面具过滤器 +item.gas_mask_filter_piss.name=先进的简易防毒面具过滤器 +item.gas_mask_filter_rag.name=临时防毒面具过滤器 item.gas_mask_m65.name=M65-Z防毒面具 -item.gas_mask_mono.name=防护面罩 -item.gas_mask_olde.name=皮革制防毒面具 +item.gas_mask_mono.name=半面罩防毒面具 +item.gas_mask_olde.name=皮革防毒面具 item.gas_petroleum.name=石油气罐 item.gas_tester.name=气体传感器 -item.gear_large.name=大齿轮 -item.gear_large_steel.name=大型钢制齿轮 +item.gear_large.name=大型齿轮 +item.gear_large_steel.name=大型钢齿轮 item.geiger_counter.name=手持盖革计数器 -item.gem_alexandrite.name=紫翠宝石 -item.gem_tantalium.name=多晶体钽 -item.gem_tantalium.desc='钽' -item.gem_tantalium.desc.P11=又名钽. -item.gem_volcanic.name=火山晶石 +item.gem_alexandrite.name=亚历山大变石 +item.gem_tantalium.name=钽晶体 +item.gem_tantalium.desc=“钽” +item.gem_tantalium.desc.P11=又名钽。 +item.gem_volcanic.name=火山宝石 item.generator_front.name=发电机前部 item.generator_steel.name=发电机主体 item.glitch.name=故障 item.glowing_stew.name=发光真菌煲 item.goggles.name=护目镜 -item.grenade_aschrab.name=可抛反Sa326异变铀金属 +item.grenade_aschrab.name=可抛反Sa326 item.grenade_black_hole.name=黑洞手榴弹 item.grenade_breach.name=破甲手榴弹 item.grenade_burst.name=挖掘手榴弹 @@ -2437,7 +2395,7 @@ item.grenade_if_toxic.name=IF-毒物手榴弹 item.grenade_kit.name=手榴弹 套件 item.grenade_kyiv.name=基辅特供 item.grenade_lemon.name=可燃柠檬 -item.grenade_mirv.name=分导式多弹头型破片手榴弹 +item.grenade_mirv.name=MIRV型破片手榴弹 item.grenade_mk2.name=Mk2手榴弹“菠萝大使” item.grenade_nuclear.name=核子手榴弹 item.grenade_nuke.name=MkVI钻地手榴弹 @@ -2445,7 +2403,7 @@ item.grenade_pink_cloud.name=一罐粉色的云 item.grenade_plasma.name=等离子手榴弹 item.grenade_poison.name=剧毒手榴弹 item.grenade_pulse.name=脉冲手榴弹 -item.grenade_schrabidium.name=Sa326异变铀金属手榴弹 +item.grenade_schrabidium.name=Sa326手榴弹 item.grenade_shrapnel.name=榴霰弹手榴弹 item.grenade_smart.name=智能手榴弹 item.grenade_strong.name=增强型手榴弹 @@ -2457,17 +2415,17 @@ item.gun_b92.name=§9B92能量手枪§r item.gun_b92_ammo.name=§9B92能量单元§r item.gun_b93.name=§cB93能量手枪§r item.gun_bf.name=BEL -item.gun_bf_ammo.name=Mk.V小型AMAT-炮弹 -B.F.型 +item.gun_bf_ammo.name=Mk.V小型AMAT-炮弹 –野火型 item.gun_bio_revolver.name=Atlas item.gun_bolt_action.name=栓动式霰弹枪[原版] item.gun_bolt_action_ammo.name=12x74 独头弹 item.gun_bolt_action_green.name=栓动式霰弹枪[绿色] item.gun_bolt_action_saturnite.name=土星来复枪 item.gun_bolter.name=爆弹枪 -item.gun_bolter_digamma.name=Ϝ迪伽马附魔的爆弹枪 -item.gun_calamity.name=洗头佬的电锯 +item.gun_bolter_digamma.name=迪伽马爆弹枪 +item.gun_calamity.name=希特勒的电锯 item.gun_calamity_ammo.name=.50BMG子弹 -item.gun_calamity_dual.name=马克沁机枪 +item.gun_calamity_dual.name=马鞍枪 item.gun_chemthrower.name=化学喷射器 item.gun_cryolator.name=冻结者 item.gun_cryolator_ammo.name=急冻单元 @@ -2477,17 +2435,17 @@ item.gun_deagle.name=大手枪 item.gun_defabricator.name=毁灭者 item.gun_defabricator_ammo.name=毁灭者能量电池 item.gun_detonator.name=激光引爆器 -item.gun_emp.name=EMP电磁脉冲射线 +item.gun_emp.name=EMP射线 item.gun_emp_ammo.name=能量电池 item.gun_euthanasia.name=安乐死 item.gun_euthanasia_ammo.name=注射器 item.gun_fatman.name=M42核弹发射器 "胖子" -item.gun_fatman_ammo.name=迷你核弹(老版本遗留物) +item.gun_fatman_ammo.name=迷你核弹 item.gun_fireext.name=灭火器 -item.gun_flamer.name="黄玉先生" -item.gun_flechette.name=弗莱彻斯特突击步枪 +item.gun_flamer.name="黄玉先生"喷射器 +item.gun_flechette.name=弗莱彻突击步枪 item.gun_folly.name=Digamma原型"愚蠢" -item.gun_glass_cannon.name=晶体射线枪 +item.gun_glass_cannon.name=玻璃大炮 item.gun_hk69.name=榴弹手枪 item.gun_hp.name=HPP射线炮 item.gun_hp_ammo.name=墨盒 @@ -2495,39 +2453,39 @@ item.gun_immolator.name=焚烧者 item.gun_immolator_ammo.name=焚烧者燃料 item.gun_jack.name=汽锤 item.gun_jack_ammo.name=四联散弹子弹 -item.gun_karl.name=卡尔·古斯塔夫M3式84mm火箭筒 +item.gun_karl.name=卡尔-古斯塔夫M3式84mm火箭筒 item.gun_kit_1.name=枪械润滑油 item.gun_kit_2.name=枪械修理包 -item.gun_ks23.name=塞缪尔大口径霰弹枪 +item.gun_ks23.name=KS-23霰弹枪 item.gun_lacunae.name=CZ33亚巴顿 item.gun_lacunae_ammo.name=5mm子弹 item.gun_lever_action.name=马腿杠杆式霰弹枪[原版] -item.gun_m2.name=“乾妈”M2勃朗宁重机枪 item.gun_lever_action_ammo.name=12x74 鹿弹 item.gun_lever_action_dark.name=马腿杠杆式霰弹枪[黑暗] item.gun_lever_action_sonata.name=自杀霰弹 -item.gun_lever_action_sonata_2.name=§c奏鸣的麦克风§r -item.gun_lunatic_marksman.name=月都科技狙击步枪 +item.gun_lever_action_sonata_2.name=§cSonata的麦克风§r +item.gun_lunatic_marksman.name=Lunatic狙击步枪 +item.gun_m2.name=勃朗宁M2HB型重机枪 item.gun_minigun.name=CZ53机枪 -item.gun_mirv.name=M42核弹发射器 "试验型分导式多弹头核弹" -item.gun_mirv_ammo.name=八倍分导式多弹头核弹(老版本遗留物) +item.gun_mirv.name=M42核弹发射器 "试验型MIRV" +item.gun_mirv_ammo.name=八倍MIRV item.gun_moist_nugget.name=莫辛纳甘[迫真] item.gun_mp.name=和平主义的机枪 item.gun_mp40.name=MP40冲锋枪 item.gun_mp40_ammo.name=冲锋枪子弹 item.gun_pm_ammo.name=小型无发射药机枪子弹 -item.gun_mymy.name=记者眼中单位面积动能超过1.8焦的大规模杀伤性武器 +item.gun_mymy.name=Nietes软弹枪 item.gun_osipr.name=标准型脉冲机枪 item.gun_osipr_ammo.name=暗能量脉冲弹 item.gun_osipr_ammo2.name=融合球 item.gun_panzerschreck.name=战车噩梦 -item.gun_proto.name=M42核弹发射器 "分导式多弹头核弹原型" +item.gun_proto.name=M42核弹发射器 "原始MIRV" item.gun_quadro.name=四喜丸子 -item.gun_remington.name=バイデン ブラスト [拜登光线] +item.gun_remington.name=バイデン ブラスト [拜登冲击波] item.gun_revolver.name=强化左轮手枪 item.gun_revolver_ammo.name=铅左轮子弹 -item.gun_revolver_blackjack.name=黑杰克的五发装左轮枪 -item.gun_revolver_cursed.name=诅咒左轮手枪 +item.gun_revolver_blackjack.name=黑杰克五发装左轮枪 +item.gun_revolver_cursed.name=诅咒手枪 item.gun_revolver_cursed_ammo.name=钢左轮子弹 item.gun_revolver_gold.name=黄金左轮手枪 item.gun_revolver_gold_ammo.name=金左轮子弹 @@ -2540,41 +2498,40 @@ item.gun_revolver_nightmare.name=梦魇左轮手枪[原版] item.gun_revolver_nightmare2.name=梦魇左轮手枪[黑暗] item.gun_revolver_nightmare2_ammo.name=激光子弹 item.gun_revolver_nightmare_ammo.name=噩梦子弹 -item.gun_revolver_nopip.name=诺华克 +item.gun_revolver_nopip.name=Novac item.gun_revolver_nopip_ammo.name=.44马格南子弹 -item.gun_revolver_pip.name=小皮的小麦金塔 +item.gun_revolver_pip.name=小麦金塔 item.gun_revolver_pip_ammo.name=污染子弹 item.gun_revolver_red.name=红钥匙左轮手枪 item.gun_revolver_saturnite.name=土星手枪 -item.gun_revolver_schrabidium.name=Sa326异变铀金属左轮手枪 -item.gun_revolver_schrabidium_ammo.name=Sa326异变铀金属左轮子弹 +item.gun_revolver_schrabidium.name=Sa326左轮手枪 +item.gun_revolver_schrabidium_ammo.name=Sa326左轮子弹 item.gun_revolver_silver.name=银质左轮手枪 -item.gun_rpg.name=卡尔·古斯塔夫M4无后座力炮 +item.gun_rpg.name=卡尔-古斯塔夫M4无后座力炮 item.gun_rpg_ammo.name=火箭弹 -item.gun_sauer.name=斯坦·索尔的猎枪 +item.gun_sauer.name=斯坦-索尔的猎枪 item.gun_skystinger.name=毒刺-The One Sky -item.gun_spark.name=火花塞 -item.gun_spark_ammo.name=火花塞电磁炮弹 -item.gun_spas12.name=SPAS-12多功能霰弹枪 +item.gun_spark.name=Spark Plug +item.gun_spark_ammo.name=电磁弹 +item.gun_spas12.name=SPAS-12霰弹枪 item.gun_stinger.name=FIM-92毒刺导弹 item.gun_stinger_ammo.name=毒刺导弹 item.gun_super_shotgun.name="超级"猎枪 -item.gun_super_shotgun.desc=它已经严重损坏了! -item.gun_supershotgun.name=猛男快乐枪 +item.gun_super_shotgun.desc=超级烂! +item.gun_supershotgun.name=超级猎枪 item.gun_thompson.name=汤姆森冲锋枪 -item.gun_uboinik.name=先进制式霰弹枪 +item.gun_uboinik.name=Uboinik item.gun_uboinik_ammo.name=12x70 鹿弹 -item.gun_uzi.name=Uzi +item.gun_uzi.name=Uzi冲锋枪 item.gun_uzi_ammo.name=.22LR子弹 -item.gun_uzi_saturnite.name=土星金属Uzi -item.gun_uzi_saturnite_silencer.name=带消音器的土星金属Uzi -item.gun_uzi_silencer.name=带消音器的Uzi -item.gun_vortex.name=涡流能量步枪 +item.gun_uzi_saturnite.name=土星Uzi冲锋枪 +item.gun_uzi_saturnite_silencer.name=带消音器的土星Uzi冲锋枪 +item.gun_uzi_silencer.name=带消音器的Uzi冲锋枪 item.gun_xvl1456.name=XVL1456陶子加农炮原型机 item.gun_xvl1456_ammo.name=贫化铀235子弹 item.gun_zomg.name=奇点能湮灭射线“ZOMG炮” item.hand_drill.name=手钻 -item.hand_drill_desh.name=德什制手钻 +item.hand_drill_desh.name=Desh手钻 item.hazmat_boots.name=防辐射靴 item.hazmat_boots_grey.name=高性能防辐射靴 item.hazmat_boots_red.name=高级防辐射靴 @@ -2597,30 +2554,29 @@ item.hazmat_plate.name=防辐射胸甲 item.hazmat_plate_grey.name=高性能防辐射胸甲 item.hazmat_plate_red.name=高级防辐射胸甲 item.hazmat_red_kit.name=高级防护套装 -item.heart_booster.name=心脏起搏器 -item.heart_container.name=心脏容器 +item.heart_booster.name=心之增强器 +item.heart_container.name=心之容器 item.heart_fab.name=心脏抗原结合器 -item.heart_piece.name=心脏碎片 -item.hev_battery.name=盔甲充能电池 -item.hev_boots.name=Mark IV型HEV危险环境防护服靴子 -item.hev_plate.name=Mark IV型HEV危险环境防护服胸甲 -item.hev_helmet.name=Mark IV型HEV危险环境防护服头盔 -item.hev_legs.name=Mark IV型HEV危险环境防护服护腿 -item.holotape_damaged.name=损坏的全息磁带 -item.holotape_image.name=全息磁带 +item.heart_piece.name=心之碎片 +item.hev_battery.name=套装电池 +item.hev_boots.name=HEV Mk.IV 靴子 +item.hev_plate.name=HEV Mk.IV 胸甲 +item.hev_helmet.name=HEV Mk.IV 头盔 +item.hev_legs.name=HEV Mk.IV 护腿 +item.holotape_damaged.name=损坏的全息卡带 +item.holotape_image.name=全息卡带 item.horseshoe_magnet.name=马蹄形磁铁 item.hull_big_aluminium.name=大型铝壳 item.hull_big_steel.name=大型钢壳 item.hull_big_titanium.name=大型钛壳 item.hull_small_aluminium.name=小型铝壳 -item.hull_small_aluminium.desc=可以插入钻孔石墨中 +item.hull_small_aluminium.desc=可插入钻孔石墨中 item.hull_small_steel.name=小型钢壳 - item.igniter.name=点火器 -item.igniter.desc=(通过右键单击原型来将其引爆)$这是一个绿色的金属柄$带有一个鲜红色的按钮和一个小盖子.$在其底部刻有N.E. 的首字母,$我不知道这个 N.E. 是谁, 但$他对绿色一定很有鉴赏力. +item.igniter.desc=(鼠标右键点击原型)$这是一个绿色金属手柄,带有$亮红色按钮和一个小盖子$在底部,缩写N.E.刻着美元。不管N.E.是谁,他对绿色的色调很有品味。 item.industrial_magnet.name=工业磁铁 item.inf_antimatter.name=无限反物质罐 -item.inf_antischrabidium.name=无限反Sa326异变铀金属罐 +item.inf_antischrabidium.name=无限反Sa326罐 item.inf_coolant.name=无限冷却液罐 item.inf_deuterium.name=无限氘罐 item.inf_diesel.name=无限柴油罐 @@ -2628,7 +2584,7 @@ item.inf_sulfur.name=无限硫磺罐 item.inf_tritium.name=无限氚罐 item.inf_water.name=无限水罐 item.inf_water_mk2.name=重型无限水罐 -item.ingot_actinium.name=半稳定锕-227锭 +item.ingot_actinium.name=半稳定锕锭 item.ingot_advanced_alloy.name=高级合金锭 item.ingot_aluminium.name=铝锭 item.ingot_am_mix.name=反应堆级镅锭 @@ -2637,88 +2593,88 @@ item.ingot_am242.name=镅-242锭 item.ingot_americium_fuel.name=镅燃料锭 item.ingot_arsenic.name=砷锭 item.ingot_asbestos.name=石棉板 -item.ingot_asbestos.desc=§o"充满了生命,自我怀疑和石棉.那是随空气而来的."§r +item.ingot_asbestos.desc=§o\“充满了生命、自我怀疑和石棉。这是空气带来的。\”§r item.ingot_au198.name=金-198锭 item.ingot_australium.name=奥斯锭 item.ingot_bakelite.name=电木锭 item.ingot_beryllium.name=铍锭 item.ingot_bismuth.name=铋锭 item.ingot_boron.name=硼锭 -item.ingot_c4.name=合成C-4 +item.ingot_c4.name=一块C-4 item.ingot_cadmium.name=镉锭 item.ingot_calcium.name=钙锭 -item.ingot_cdalloy.name=镉钢合金锭 -item.ingot_chainsteel.name=沉重链钢 +item.ingot_cdalloy.name=镉钢锭 +item.ingot_chainsteel.name=重链钢 item.ingot_co60.name=钴-60锭 item.ingot_cobalt.name=钴锭 item.ingot_combine_steel.name=CMB钢锭 -item.ingot_combine_steel.desc=*在此处插入民防知识参考资料* +item.ingot_combine_steel.desc=*在此处插入民事保护参考* item.ingot_copper.name=工业级铜 item.ingot_daffergon.name=达夫贡锭 -item.ingot_desh.name=德什锭 +item.ingot_desh.name=Desh锭 item.ingot_dineutronium.name=双聚中子态素锭 item.ingot_dura_steel.name=高速钢锭 item.ingot_electronium.name=电素锭 -item.ingot_euphemium.name=Ep元素锭 -item.ingot_euphemium.desc=一种非常强大特殊但又很奇怪的元素. -item.ingot_ferrouranium.name=铀铁锭 +item.ingot_euphemium.name=Ep锭 +item.ingot_euphemium.desc=一个非常特殊但又奇怪的元素。 +item.ingot_ferrouranium.name=铀铁合金锭 item.ingot_fiberglass.name=玻璃纤维 -item.ingot_fiberglass.desc=富含纤维,玻璃. 具有身体所需要的一切. +item.ingot_fiberglass.desc=纤维含量高,玻璃含量高。身体需要的一切。 item.ingot_firebrick.name=耐火砖 -item.ingot_gh336.name=气敖-336锭 -item.ingot_gh336.desc=𬭳的同事. +item.ingot_gh336.name=Gh336锭 +item.ingot_gh336.desc=钅喜的同事。 item.ingot_graphite.name=石墨锭 -item.ingot_hes.name=高浓度Sa326异变铀金属燃料锭 +item.ingot_hes.name=高浓度Sa326燃料锭 item.ingot_lanthanium.name=半稳定镧锭 -item.ingot_lanthanium.desc='Lanthanum' -item.ingot_lanthanium.desc.P11=实际上是这么拼写的, 但谁在乎呢. +item.ingot_lanthanium.desc=“镧” +item.ingot_lanthanium.desc.P11=实际上就是镧,无论怎么说。 item.ingot_lead.name=铅锭 -item.ingot_les.name=低浓度Sa326异变铀金属燃料锭 +item.ingot_les.name=低浓度Sa326燃料锭 item.ingot_magnetized_tungsten.name=磁化钨锭 item.ingot_meteorite.name=陨石锭 -item.ingot_meteorite_forged.name=锻造过的陨石锭 +item.ingot_meteorite_forged.name=锻造陨石锭 item.ingot_mox_fuel.name=MOX燃料锭 -item.ingot_mud.name=固化泥砖 +item.ingot_mud.name=固化毒泥浆砖 item.ingot_neptunium.name=镎锭 -item.ingot_neptunium.desc=那是我最喜欢的! -item.ingot_neptunium.desc.P11=哇哦, 真吓人! +item.ingot_neptunium.desc=那是我最喜欢的! +item.ingot_neptunium.desc.P11=哇,吓人! item.ingot_neptunium_fuel.name=镎燃料锭 item.ingot_niobium.name=铌锭 item.ingot_osmiridium.name=铱锇锭 item.ingot_pb209.name=铅-209锭 -item.ingot_pc.name=硬质塑料棒 -item.ingot_pet.name=铝金属化PET聚酯条 +item.ingot_pc.name=硬质塑料锭 +item.ingot_pet.name=铝金属化PET锭 item.ingot_phosphorus.name=白磷锭 item.ingot_plutonium.name=钚锭 item.ingot_plutonium_fuel.name=钚燃料锭 -item.ingot_polonium.name=钋-210锭 +item.ingot_polonium.name=钋锭 item.ingot_polymer.name=聚合物锭 item.ingot_pu_mix.name=反应堆级钚锭 item.ingot_pu238.name=钚-238锭 item.ingot_pu239.name=钚-239锭 item.ingot_pu240.name=钚-240锭 item.ingot_pu241.name=钚-241锭 -item.ingot_pvc.name=PVC聚氯乙烯棒 +item.ingot_pvc.name=聚氯乙烯锭(PVC) item.ingot_ra226.name=镭-226锭 item.ingot_red_copper.name=紫铜 item.ingot_reiium.name=雷恩锭 item.ingot_rubber.name=橡胶锭 item.ingot_saturnite.name=土星锭 -item.ingot_schrabidate.name=Sa326元素酸化铁锭 -item.ingot_schrabidium.name=Sa326异变铀金属锭 -item.ingot_schrabidium_fuel.name=Sa326异变铀金属燃料锭 -item.ingot_schraranium.name=低丰度Sa326异变铀金属锭 -item.ingot_schraranium.desc=在Sa326异变铀金属嬗变器中由铀锭嬗变而来 -item.ingot_semtex.name=塞姆汀塑胶炸药 -item.ingot_smore.name=S'more饼干 -item.ingot_solinium.name=Sa327索林锭 +item.ingot_schrabidate.name=Sa酸铁锭 +item.ingot_schrabidium.name=Sa326锭 +item.ingot_schrabidium_fuel.name=Sa326燃料锭 +item.ingot_schraranium.name=低丰度Sa326锭 +item.ingot_schraranium.desc=在Sa326嬗变器中由铀制成 +item.ingot_semtex.name=塞姆汀塑胶炸药块 +item.ingot_smore.name=S'more 锭 +item.ingot_solinium.name=Sa327锭 item.ingot_sr90.name=锶-90锭 -item.ingot_starmetal.name=星辉金属锭 +item.ingot_starmetal.name=§9星辉锭§r item.ingot_steel.name=钢锭 -item.ingot_steel_dusted.name=粉状钢锭 +item.ingot_steel_dusted.name=粉末钢锭 item.ingot_tantalium.name=钽锭 -item.ingot_tantalium.desc='Tantalum' -item.ingot_tantalium.desc.P11=也写作这个. +item.ingot_tantalium.desc=“钽” +item.ingot_tantalium.desc.P11=又名钽。 item.ingot_tcalloy.name=锝-钢合金锭 item.ingot_technetium.name=锝-99锭 item.ingot_th232.name=钍-232锭 @@ -2728,58 +2684,58 @@ item.ingot_tungsten.name=钨锭 item.ingot_u233.name=铀-233锭 item.ingot_u235.name=铀-235锭 item.ingot_u238.name=铀-238锭 -item.ingot_u238m2.name=亚稳铀-238-2锭 -item.ingot_unobtainium.name=阿诺布素锭 +item.ingot_u238m2.name=亚稳铀238-2锭 +item.ingot_unobtainium.name=难得素锭 item.ingot_uranium.name=铀锭 item.ingot_uranium_fuel.name=铀燃料锭 item.ingot_verticium.name=韦德赛锭 item.ingot_weidanium.name=魏丹锭 -item.ingot_zirconium.name=锆锭 +item.ingot_zirconium.name=锆块 item.injector_5htp.name=5-HTP自动药物注射器 item.injector_knife.name=8英寸刀片自动药物注射器 item.ink.name=林 墨水 -item.insert_doxium.name=掺砷羟苯磺酸钙防弹插板 -item.insert_du.name=贫铀防弹插板 -item.insert_era.name=爆炸反应式装甲插板 -item.insert_esapi.name=ESAPI增强型轻武器防护插板 -item.insert_ghiorsium.name=𪵧制防弹插板 -item.insert_kevlar.name=凯夫拉防弹插板 -item.insert_sapi.name=SAPI插入式轻武器防护板 -item.insert_polonium.name=钋制防弹插板 -item.insert_steel.name=重型钢制防弹插板 -item.insert_xsapi.name=XSAPI下一代防弹插板 -item.insert_yharonite.name=龙素防弹插板 +item.insert_doxium.name=掺砷Doxium插板 +item.insert_du.name=贫铀插板 +item.insert_era.name=反应装甲插板 +item.insert_esapi.name=ESAPI插板 +item.insert_ghiorsium.name=Gh插板 +item.insert_kevlar.name=凯夫拉插板 +item.insert_sapi.name=SAPI插板 +item.insert_polonium.name=钋插板 +item.insert_steel.name=重型钢插板 +item.insert_xsapi.name=XSAPI插板 +item.insert_yharonite.name=犽戎龙素插板 item.iv_blood.name=血袋 -item.iv_empty.name=空的静脉输液袋 +item.iv_empty.name=静脉输液袋 item.iv_xp.name=经验包 item.iv_xp_empty.name=空的经验包 item.jackt.name=时尚防弹夹克 item.jackt2.name=时尚防弹夹克2:东京漂移 -item.jetpack_boost.name=强力喷气背包 -item.jetpack_break.name=建筑工喷气背包 +item.jetpack_boost.name=弹跳背包 +item.jetpack_break.name=缓降背包 item.jetpack_fly.name=喷气背包 item.jetpack_tank.name=喷气背包备用燃料罐 item.jetpack_vector.name=矢量喷气背包 -item.journal_bj.name=被威士忌泡湿透的笔记本 +item.journal_bj.name=被威士忌浸透的笔记本 item.journal_pip.name=生存主义者日记 -item.journal_silver.name=承包商说明 +item.journal_silver.name=承包商注释 item.key.name=钥匙 item.key_fake.name=伪造钥匙 item.key_kit.name=钥匙仿制套件 item.key_red.name=红色钥匙 -item.key_red.desc=探索一下另一面. +item.key_red.desc=探索另一边。 item.key_red.desc.P11=§4e§r item.kit_toolbox.name=工具箱 -item.kit_toolbox_empty.name=空的工具箱 +item.kit_toolbox_empty.name=空工具箱 item.laser_crystal_bismuth.desc=铋-钐-铀-钍晶体基质 -item.laser_crystal_bismuth.name=铋-钐-铀-钍晶体基质激光晶体 -item.laser_crystal_cmb.desc=悬浮在CMB-Sa326异变铀金属合金晶格中的反Sa326元素 -item.laser_crystal_cmb.name=CMB-Sa326异变铀金属合金反物质激光晶体 -item.laser_crystal_co2.desc=被包裹在结晶的德什金属中的二氧化碳 -item.laser_crystal_co2.name=CO2-德什激光晶体 -item.laser_crystal_digamma.name=Ϝ迪伽马激光晶体 -item.laser_crystal_dnt.desc=双聚中子态素-Spark闪闪魔法 费米子超晶体 -item.laser_crystal_dnt.name=Spark闪闪魔法 激光晶体 +item.laser_crystal_bismuth.name=铋-钐-铀-钍激光晶体 +item.laser_crystal_cmb.desc=反Sa326被镶嵌在CMB-Sa326合金晶格 +item.laser_crystal_cmb.name=CMB-Sa326反物质激光晶体 +item.laser_crystal_co2.desc=二氧化碳被包裹在结晶的Desh中 +item.laser_crystal_co2.name=CO2-Desh激光晶体 +item.laser_crystal_digamma.name=Digamma迪伽马激光晶体 +item.laser_crystal_dnt.desc=双聚态中子-Spark费米子超晶体 +item.laser_crystal_dnt.name=Spark激光晶体 item.lead_gavel.name=铅槌 item.lemon.name="柠檬" item.letter.name=快捷邮件 @@ -2798,21 +2754,20 @@ item.loops.name=五彩麦圈 item.loot_10.name=10号导弹战利箱 item.loot_15.name=15号导弹战利箱 item.loot_misc.name=普通导弹战利箱 - item.magnet_circular.name=扁磁铁 item.magnet_dee.name=D型磁铁 item.magnetron.name=磁控管 item.man_core.name=钚核心 item.man_explosive.name=炸药 -item.man_igniter.name=炸弹点火装置 +item.man_igniter.name=点火器 item.man_kit.name=胖子 套件 item.marshmallow.name=穿在木棍上的棉花糖 item.mask_of_infamy.name=耻辱面具 -item.mask_piss.name=战壕版粗制防护面罩 -item.mask_rag.name=粗制防护面罩 +item.mask_piss.name=战壕面具 +item.mask_rag.name=粗糙防护面罩 item.matchstick.name=火柴 -item.mech_key.name=大银钥匙 -item.mech_key.desc=它充满了力量. +item.mech_key.name=大号银钥匙 +item.mech_key.desc=它充满力量。 item.mechanism_launcher_1.name=发射机构 item.mechanism_launcher_2.name=先进发射机构 item.mechanism_revolver_1.name=转轮机构 @@ -2826,31 +2781,31 @@ item.med_ptsd.name=PTSD治疗药物 item.med_schiziphrenia.name=抗精神分裂症药物 item.medal_liquidator.name=核废土清道夫勋章 item.meltdown_tool.name=达洛夫快速熔毁装置 -item.memespoon.name=§e花园园丁 +item.memespoon.name=§ee花园园丁 item.memory.name=item.null.name -item.mese_gavel.name=月神槌 -item.mese_pickaxe.name=月神镐 +item.mese_gavel.name=Mese槌 +item.mese_pickaxe.name=Mese镐 item.meteor_charm.name=陨石项链 item.meteor_remote.name=陨石召唤器 item.meteorite_sword.name=陨石剑 -item.meteorite_sword_seared.name=陨石剑 (炽热) -item.meteorite_sword_reforged.name=陨石剑 (重铸) -item.meteorite_sword_hardened.name=陨石剑 (硬化) -item.meteorite_sword_alloyed.name=陨石剑 (合金化) -item.meteorite_sword_machined.name=陨石剑 (机械加工) -item.meteorite_sword_treated.name=陨石剑 (治疗) -item.meteorite_sword_etched.name=陨石剑 (蚀刻) -item.meteorite_sword_bred.name=陨石剑 (增殖) -item.meteorite_sword_irradiated.name=陨石剑 (辐照处理) -item.meteorite_sword_fused.name=陨石剑 (熔融) -item.meteorite_sword_baleful.name=陨石剑 (B.F野火烧炼处理) +item.meteorite_sword_seared.name=陨石剑(烧焦) +item.meteorite_sword_reforged.name=陨石剑(重铸) +item.meteorite_sword_hardened.name=陨石剑(硬化) +item.meteorite_sword_alloyed.name=陨石剑(合金) +item.meteorite_sword_machined.name=陨石剑(机械加工) +item.meteorite_sword_treated.name=陨石剑(精制) +item.meteorite_sword_etched.name=陨石剑(刻蚀) +item.meteorite_sword_bred.name=陨石剑(增殖) +item.meteorite_sword_irradiated.name=陨石剑(辐照) +item.meteorite_sword_fused.name=陨石剑(熔融) +item.meteorite_sword_baleful.name=陨石剑(凶恶) item.mike_cooling_unit.name=氘冷却装置 item.mike_core.name=铀涂层氘罐 item.mike_deut.name=氘罐 item.mike_kit.name=常青藤麦克 套件 -item.mirror_tool.name=镜面角度调整工具 -item.mirror_tool.linked=已设置要对齐的太阳能蒸发塔位置! -item.mirror_tool.desc=右键太阳能蒸发塔以记录其位置.$然后再右击阳光反射镜来让其对准太阳能蒸发塔. +item.mirror_tool.name=定日镜调整工具 +item.mirror_tool.linked=设置对齐位置! +item.mirror_tool.desc=右键单击“太阳能锅炉”以记忆位置 $再单击“定日镜”可将其转向太阳能锅炉 item.missile_anti_ballistic.name=反弹道导弹 item.missile_assembly.name=小型导弹[待装配] item.missile_bhole.name=黑洞导弹 @@ -2863,8 +2818,8 @@ item.missile_cluster_strong.name=强化型集束导弹 item.missile_custom.name=定制导弹 item.missile_doomsday.name=末日导弹 item.missile_drill.name=掩体裂解者 -item.missile_emp.name=EMP电磁脉冲导弹 -item.missile_emp_strong.name=强化型EMP电磁脉冲导弹 +item.missile_emp.name=EMP导弹 +item.missile_emp_strong.name=强化型EMP导弹 item.missile_endo.name=吸热导弹 item.missile_exo.name=放热导弹 item.missile_generic.name=高爆导弹 @@ -2876,44 +2831,45 @@ item.missile_micro.name=战术核导弹 item.missile_nuclear.name=核导弹 item.missile_nuclear_cluster.name=热核导弹 item.missile_rain.name=炸弹雨 -item.missile_schrabidium.name=Sa326异变铀金属导弹 +item.missile_schrabidium.name=Sa326导弹 item.missile_shuttle.name=万金罗宾航天飞机 item.missile_skin_camo.name=导弹外壳:迷彩 -item.missile_skin_color.desc=我甚至再也找不到我的导弹了! +item.missile_skin_color.desc=我再也找不到我的导弹了! item.missile_skin_desert.name=导弹外壳:沙漠迷彩 -item.missile_skin_desert.desc=看起来像沙子, 尝起来像金属. +item.missile_skin_desert.desc=看起来像沙子,尝起来像金属。 item.missile_skin_flames.name=导弹外壳:火焰 -item.missile_skin_flames.desc=不同凡响! -item.missile_skin_manly_pink.name=导弹外壳:猛男骚粉 -item.missile_skin_manly_pink.desc=粉色, 最能体现猛♂男气概的颜色. +item.missile_skin_flames.desc=不同凡响的! +item.missile_skin_manly_pink.name=导弹外壳:猛男粉 +item.missile_skin_manly_pink.desc=粉色,最有男子气概的颜色。 item.missile_skin_metal.name=导弹外壳:全金属外壳 -item.missile_skin_metal.desc=用金属加固的金属板和金属螺栓. +item.missile_skin_metal.desc=金属板和金属螺栓,用金属加固。 item.missile_skin_orange_insulation.name=导弹外壳:橙色绝缘 -item.missile_skin_orange_insulation.desc=不是橙汁瓶;$也不要试图喝里面的东西. +item.missile_skin_orange_insulation.desc=不是橙汁瓶$不要试图喝里面的东西。 item.missile_skin_sleek.name=导弹外壳:IF-R&D -item.missile_skin_sleek.desc=V字形很酷! -item.missile_skin_soviet_glory.name=导弹外壳:牢不可破的苏联 -item.missile_skin_soviet_glory.desc=услуга перевода недоступна(翻译服务不可用) -item.missile_skin_soviet_stank.name=导弹外壳:不攻自破的苏联 -item.missile_skin_soviet_stank.desc=这个真的有60年代的味道. +item.missile_skin_sleek.desc=V字形很酷! +item.missile_skin_soviet_glory.name=导弹外壳:苏联荣耀 +item.missile_skin_soviet_glory.desc=услуга перевода недоступна +item.missile_skin_soviet_stank.name=导弹外壳:苏维埃不朽 +item.missile_skin_soviet_stank.desc=这个真的很有60年代的味道。 item.missile_soyuz.name=联盟-FG运载火箭 item.missile_soyuz_lander.name=联盟号轨道舱 -item.missile_soyuz_lander.desc=同时也是个蹩脚的着陆器! +item.missile_soyuz_lander.desc=劣质着陆器! item.missile_strong.name=强化型高爆导弹 item.missile_taint.name=污染导弹 -item.missile_volcano.name=地壳破坏者导弹 -item.missile_volcano.desc=利用核爆炸的威力,我们可以制造一座火山! -item.mold_base.name=空白铸造模具 +item.missile_volcano.name=构造导弹 +item.missile_volcano.desc=利用核爆的威力,我们可以召唤一座火山! +item.mold_base.name=毛坯铸造模具 item.mold.name=铸造模具 item.morning_glory.name=牵牛花 item.motor.name=马达 -item.motor_desh.name=德什制马达 +item.motor_bismuth.name=铋马达 +item.motor_desh.name=Desh马达 item.mp_c_1.name=1级导弹制导芯片 item.mp_c_2.name=2级导弹制导芯片 item.mp_c_3.name=3级导弹制导芯片 item.mp_c_4.name=4级导弹制导芯片 item.mp_c_5.name=5级导弹制导芯片 -item.mp_fuselage_10_15_balefire.name=10/15号弹体[BF燃料] +item.mp_fuselage_10_15_balefire.name=10/15号弹体[野火燃料] item.mp_fuselage_10_15_hydrogen.name=10/15号弹体[液氢] item.mp_fuselage_10_15_kerosene.name=10/15号弹体[煤油] item.mp_fuselage_10_15_solid.name=10/15号弹体[固体燃料] @@ -2955,10 +2911,10 @@ item.mp_fuselage_10_solid_sleek.name=10号弹体[固体燃料] item.mp_fuselage_10_solid_soviet_glory.name=10号弹体[固体燃料] item.mp_fuselage_10_xenon.name=10号弹体[氙] item.mp_fuselage_10_xenon_bhole.name=10号弹体[氙] -item.mp_fuselage_15_20_kerosene.name=15号/20 弹体[煤油] -item.mp_fuselage_15_20_kerosene_magnusson.name=15号/20 弹体[煤油] -item.mp_fuselage_15_20_solid.name=15号/20 弹体[固体燃料] -item.mp_fuselage_15_balefire.name=15号弹体[液氢] +item.mp_fuselage_15_20_kerosene.name=15/20号弹体[煤油] +item.mp_fuselage_15_20_kerosene_magnusson.name=15/20号弹体[煤油] +item.mp_fuselage_15_20_solid.name=15/20号弹体[固体燃料] +item.mp_fuselage_15_balefire.name=15号弹体[野火燃料] item.mp_fuselage_15_hydrogen.name=15号弹体[液氢] item.mp_fuselage_15_hydrogen_cathedral.name=15号弹体[液氢] item.mp_fuselage_15_kerosene.name=15号弹体[煤油] @@ -2980,7 +2936,7 @@ item.mp_fuselage_15_solid.name=15号弹体[固体燃料] item.mp_fuselage_15_solid_desh.name=15号弹体[固体燃料] item.mp_fuselage_15_solid_faust.name=15号弹体[固体燃料] item.mp_fuselage_15_solid_insulation.name=15号弹体[固体燃料] -item.mp_fuselage_15_solid_mimi.name=15号咪咪号弹体[固体燃料] +item.mp_fuselage_15_solid_mimi.name=15号弹体[固体燃料] item.mp_fuselage_15_solid_panorama.name=15号弹体[固体燃料] item.mp_fuselage_15_solid_roses.name=15号弹体[固体燃料] item.mp_fuselage_15_solid_silvermoonlight.name=15号弹体[固体燃料] @@ -2996,10 +2952,10 @@ item.mp_stability_15_thin.name=15号薄翼 item.mp_thruster_10_kerosene.name=10号液体燃料推进器 item.mp_thruster_10_solid.name=10号固体燃料推进器 item.mp_thruster_10_xenon.name=10号离子推进器 -item.mp_thruster_15_balefire.name=15号带核预热器的BF燃料推进器 -item.mp_thruster_15_balefire_large.name=15号带核预热器的BF燃料推进器[重型喷管] -item.mp_thruster_15_balefire_large_rad.name=15号带核预热器的BF燃料推进器[重型喷管] -item.mp_thruster_15_balefire_short.name=15号带核预热器的BF燃料推进器[简称] +item.mp_thruster_15_balefire.name=15号带核预热器的野火燃料推进器 +item.mp_thruster_15_balefire_large.name=15号带核预热器的野火燃料推进器[重型喷管] +item.mp_thruster_15_balefire_large_rad.name=15号带核预热器的野火燃料推进器[重型喷管-稀有] +item.mp_thruster_15_balefire_short.name=15号带核预热器的野火燃料推进器[缩短版] item.mp_thruster_15_hydrogen.name=15号液氢推进器 item.mp_thruster_15_hydrogen_dual.name=15号双喷管氢推进器 item.mp_thruster_15_kerosene.name=15号液体燃料推进器 @@ -3020,16 +2976,16 @@ item.mp_warhead_10_incendiary.name=10号燃烧弹头 item.mp_warhead_10_nuclear.name=10号微型核弹头 item.mp_warhead_10_nuclear_large.name=10号核弹头 item.mp_warhead_10_taint.name=10号污染弹头 -item.mp_warhead_15_balefire.name=15号烈火弹头 +item.mp_warhead_15_balefire.name=15号野火弹头 item.mp_warhead_15_boxcar.name=15号 车厢? item.mp_warhead_15_he.name=15号HE弹头 item.mp_warhead_15_incendiary.name=15号燃烧弹头 -item.mp_warhead_15_n2.name=15号N²炸弹 +item.mp_warhead_15_n2.name=15号N2炸弹 item.mp_warhead_15_nuclear.name=15号核弹头 -item.mp_warhead_15_nuclear_mimi.name=15号咪咪号弹头 +item.mp_warhead_15_nuclear_mimi.name=15号核弹头 item.mp_warhead_15_nuclear_shark.name=15号核弹头 item.mp_warhead_15_turbine.name=15号喷气发动机弹头 -item.mucho_mango.name=亚利桑那牌芒果汁 +item.mucho_mango.name=亚利桑那芒果味饮料 item.multi_kit.name=多用途炸弹 套件 item.multitool_beam.name=动力拳套[热射线] item.multitool_decon.name=动力拳套[净化] @@ -3042,29 +2998,27 @@ item.multitool_miner.name=动力拳套[采矿激光] item.multitool_silk.name=动力拳套[精准采集] item.multitool_sky.name=动力拳套[划破天际] item.mysteryshovel.name=易碎锹 - item.n2_charge.name=大型炸药 -item.neutrino_lens.name=中微子透镜 +item.neutrino_lens.name=中子透镜 item.neutron_reflector.name=中子反射板 item.niter.name=硝石粉 -item.no9.name=采矿头盔 -item.nossy_hat.name=资本家之帽 +item.no9.name=矿工头盔 +item.nossy_hat.name=华丽的帽子 item.nothing.name=没有东西 item.nuclear_waste.name=核废料 item.nuclear_waste_pearl.name=放射性珍珠 item.nuclear_waste_tiny.name=小撮核废料 -item.nuclear_waste_tiny.name=一小堆核废料 item.nuclear_waste_long.name=长半衰期核废料 -item.nuclear_waste_long_tiny.name=一小堆长半衰期核废料 -item.nuclear_waste_long_depleted.name=衰变的长半衰期核废料 -item.nuclear_waste_long_depleted_tiny.name=一小堆衰变的长半衰期核废料 +item.nuclear_waste_long_tiny.name=小撮长半衰期核废料 +item.nuclear_waste_long_depleted.name=腐化的长半衰期核废料 +item.nuclear_waste_long_depleted_tiny.name=小撮腐化的长半衰期核废料 item.nuclear_waste_short.name=短半衰期核废料 -item.nuclear_waste_short_tiny.name=一小堆短半衰期核废料 -item.nuclear_waste_short_depleted.name=衰变的短半衰期核废料 -item.nuclear_waste_short_depleted_tiny.name=一小堆衰变的短半衰期核废料 +item.nuclear_waste_short_tiny.name=小撮短半衰期核废料 +item.nuclear_waste_short_depleted.name=腐化的短半衰期核废料 +item.nuclear_waste_short_depleted_tiny.name=小撮腐化的短半衰期核废料 item.nuclear_waste_vitrified.name=玻璃化核废料 -item.nuclear_waste_vitrified_tiny.name=一小堆玻璃化核废料 -item.nugget.name=炸鸡块 +item.nuclear_waste_vitrified_tiny.name=小撮玻璃化核废料 +item.nugget.name=鸡块 item.nugget_actinium.name=锕-227粒 item.nugget_am_mix.name=反应堆级镅粒 item.nugget_am241.name=镅-241粒 @@ -3072,34 +3026,34 @@ item.nugget_am242.name=镅-242粒 item.nugget_americium_fuel.name=镅燃料粒 item.nugget_arsenic.name=砷粒 item.nugget_au198.name=金-198粒 -item.nugget_australium.name=奥金粒 -item.nugget_australium_greater.name=富集奥金粒 -item.nugget_australium_lesser.name=贫化奥金粒 +item.nugget_australium.name=奥斯粒 +item.nugget_australium_greater.name=富集奥斯粒 +item.nugget_australium_lesser.name=贫化奥斯粒 item.nugget_beryllium.name=铍粒 item.nugget_bismuth.name=铋粒 item.nugget_co60.name=钴-60粒 item.nugget_cobalt.name=钴粒 item.nugget_daffergon.name=达夫贡粒 -item.nugget_desh.name=德什粒 +item.nugget_desh.name=Desh粒 item.nugget_dineutronium.name=双聚中子态素粒 -item.nugget_euphemium.name=Ep元素粒 -item.nugget_euphemium.desc=一小块粉红色的金属.$它各方面具体的性质还不清楚,$务 必 小 心 地 处 理 它. -item.nugget_gh336.name=𪵧-336粒 -item.nugget_gh336.desc=𬭳的同事. -item.nugget_hes.name=高浓度Sa326异变铀金属燃料粒 +item.nugget_euphemium.name=Ep粒 +item.nugget_euphemium.desc=一小块粉红色的金属$它的属性仍然未知,请小心处理。 +item.nugget_gh336.name=Gh336粒 +item.nugget_gh336.desc=钅喜的同事。 +item.nugget_hes.name=高浓度Sa326燃料粒 item.nugget_lead.name=铅粒 -item.nugget_les.name=低浓度Sa326异变铀金属燃料粒 +item.nugget_les.name=低浓度Sa326燃料粒 item.nugget_mercury_tiny.name=一小滴水银 item.nugget_mercury.name=一滴水银 item.nugget_mox_fuel.name=MOX燃料粒 -item.nugget_mox_fuel.desc=摩西说: §l逃税.§r +item.nugget_mox_fuel.desc=摩西说:§l逃税。§r item.nugget_neptunium.name=镎粒 item.nugget_neptunium_fuel.name=镎燃料粒 -item.nugget_osmiridium.name=锇铱粒 +item.nugget_osmiridium.name=铱锇粒 item.nugget_pb209.name=铅-209粒 item.nugget_plutonium.name=钚粒 item.nugget_plutonium_fuel.name=钚燃料粒 -item.nugget_polonium.name=钋-210粒 +item.nugget_polonium.name=钋粒 item.nugget_pu_mix.name=反应堆级钚粒 item.nugget_pu238.name=钚-238粒 item.nugget_pu239.name=钚-239粒 @@ -3107,76 +3061,81 @@ item.nugget_pu240.name=钚-240粒 item.nugget_pu241.name=钚-241粒 item.nugget_ra226.name=镭-226粒 item.nugget_reiium.name=魏丹粒 -item.nugget_schrabidium.name=Sa-326异变铀金属粒 -item.nugget_schrabidium_fuel.name=Sa-326异变铀金属燃料粒 -item.nugget_solinium.name=Sa-327索林粒 +item.nugget_schrabidium.name=Sa326粒 +item.nugget_schrabidium_fuel.name=Sa326燃料粒 +item.nugget_solinium.name=Sa327粒 item.nugget_sr90.name=锶-90粒 item.nugget_tantalium.name=钽粒 -item.nugget_tantalium.desc='Tantalum' -item.nugget_tantalium.desc.P11=也写作这个. +item.nugget_tantalium.desc=“钽” +item.nugget_tantalium.desc.P11=又名钽。 item.nugget_technetium.name=锝-99粒 -item.nugget_th232.name=钍-232粒 +item.nugget_th232.name=钍232粒 item.nugget_thorium_fuel.name=钍燃料粒 item.nugget_u233.name=铀-233粒 item.nugget_u235.name=铀-235粒 item.nugget_u238.name=铀-238粒 -item.nugget_unobtainium.name=阿诺布汀粒 +item.nugget_unobtainium.name=难得素粒 item.nugget_uranium.name=铀粒 item.nugget_uranium_fuel.name=铀燃料粒 item.nugget_verticium.name=韦德赛粒 item.nugget_weidanium.name=魏丹粒 - +item.nugget_zirconium.name=锆碎片 item.nuke_advanced_kit.name=原子学高级工具箱 item.nuke_commercially_kit.name=商用原子学工具箱 item.nuke_electric_kit.name=电子工程师工具箱 item.nuke_starter_kit.name=原子学入门工具箱 -item.nugget_zirconium.name=锆碎片 item.oil_canola.name=菜籽油 item.oil_detector.name=石油探测仪 -item.oil_detector.desc1=右击以扫描下方有无油田.. -item.oil_detector.desc2=该勘测器只能扫描到较大的油田! -item.oil_detector.bullseye=油田就在正下方! -item.oil_detector.detected=检测到油田! -item.oil_detector.noOil=未发现油田. -item.oil_tar.coal.name=煤焦油块 -item.oil_tar.crude.name=焦油块 -item.oil_tar.crack.name=裂化焦油块 +item.oil_detector.desc1=单击右键扫描地下是否存在油田 +item.oil_detector.desc2=探测仪只会发现大片油田 +item.oil_detector.bullseye=正下方发现油田! +item.oil_detector.detected=附近存在油田 +item.oil_detector.noOil=未发现油田 +item.oil_tar.coal.name=煤焦油 +item.oil_tar.crude.name=焦油 +item.oil_tar.crack.name=裂化焦油 item.oil_tar.paraffin.name=石蜡 -item.oil_tar.wax.name=氯化石油蜡 -item.oil_tar.wood.name=木焦油块 +item.oil_tar.wax.name=氯化石蜡 +item.oil_tar.wood.name=木馏油 item.ore.asbestos=石棉 item.ore.borax=硼砂 +item.ore.chlorocalcite=氯方解石 item.ore.copper=铜 item.ore.gold=金 item.ore.iron=铁 item.ore.niobium=铌 item.ore.titanium=钛 item.ore.tungsten=钨 -item.ore_bedrock.name=%s 基岩矿粉 -item.ore_byproduct.b_aluminium.name=结晶铝碎片 -item.ore_byproduct.b_bismuth.name=结晶铋碎片 -item.ore_byproduct.b_calcium.name=结晶钙碎片 -item.ore_byproduct.b_copper.name=结晶铜碎片 -item.ore_byproduct.b_iron.name=结晶铁碎片 -item.ore_byproduct.b_lead.name=结晶铅碎片 -item.ore_byproduct.b_lithium.name=结晶锂碎片 -item.ore_byproduct.b_silicon.name=结晶硅碎片 -item.ore_byproduct.b_sulfur.name=结晶硫碎片 -item.ore_byproduct.b_titanium.name=结晶钛碎片 -item.ore_centrifuged.name=离心 %s 基岩矿粉 -item.ore_cleaned.name=洗净 %s 基岩矿粉 -item.ore_deepcleaned.name=深度清洁 %s 基岩矿粉 -item.ore_enriched.name=富集 %s 基岩矿粉 -item.ore_nitrated.name=硝化 %s 基岩矿粉 -item.ore_nitrocrystalline.name=硝化结晶 %s 基岩矿粉 -item.ore_purified.name=纯化 %s 基岩矿粉 -item.ore_raadcleaned.name=辐照清洁 %s 基岩矿粉 -item.ore_seared.name=灼烧 %s 基岩矿粉 -item.ore_separated.name=分离提纯 %s 基岩矿粉 +item.ore.thorium=钍 +item.ore.uranium=铀 +item.ore_bedrock.name=基岩%s矿 +item.ore_byproduct.b_aluminium.name=铝晶体碎片 +item.ore_byproduct.b_bismuth.name=铋晶体碎片 +item.ore_byproduct.b_calcium.name=钙晶体碎片 +item.ore_byproduct.b_copper.name=铜晶体碎片 +item.ore_byproduct.b_iron.name=铁晶体碎片 +item.ore_byproduct.b_lead.name=铅晶体碎片 +item.ore_byproduct.b_lithium.name=锂晶体碎片 +item.ore_byproduct.b_polonium.name=钋晶体碎片 +item.ore_byproduct.b_radium.name=镭晶体碎片 +item.ore_byproduct.b_silicon.name=硅晶体碎片 +item.ore_byproduct.b_sulfur.name=硫晶体碎片 +item.ore_byproduct.b_technetium.name=锝晶体碎片 +item.ore_byproduct.b_titanium.name=钛晶体碎片 +item.ore_byproduct.b_uranium.name=铀晶体碎片 +item.ore_centrifuged.name=离心%s矿 +item.ore_cleaned.name=清洁%s矿 +item.ore_deepcleaned.name=深清洁%s矿 +item.ore_enriched.name=富集%s矿 +item.ore_nitrated.name=硝化%s矿 +item.ore_nitrocrystalline.name=亚硝基结晶%s矿 +item.ore_purified.name=净化%s矿 +item.ore_radcleaned.name=经辐射清洁的%s矿 +item.ore_seared.name=灼热的%s矿 +item.ore_separated.name=分离的%s矿 item.overfuse.name=奇异螺丝刀 -item.overfuse.desc=说啥? +item.overfuse.desc=说啥? item.oxy_mask.name=氧气面罩 - item.paa_boots.name=PaA "好鞋" item.paa_legs.name=PaA加固护腿 item.paa_plate.name=PaA加固护胸 @@ -3184,10 +3143,10 @@ item.padlock.name=挂锁 item.padlock_reinforced.name=加强挂锁 item.padlock_rusty.name=生锈的挂锁 item.padlock_unbreakable.name=牢不可破的挂锁 -item.pads_rubber.name=橡胶护垫 -item.pads_slime.name=粘液护垫 -item.pads_static.name=静力护垫 -item.pancake.name=用废金属, 钉子和宝石粉做成的薄饼 +item.pads_rubber.name=橡胶垫 +item.pads_slime.name=粘液垫 +item.pads_static.name=静电垫 +item.pancake.name=用废金属、螺栓和宝石粉做成的薄饼 item.part_beryllium.name=铍粉盒 item.part_carbon.name=碳粉盒 item.part_copper.name=铜粉盒 @@ -3196,135 +3155,134 @@ item.part_generic.piston_hydraulic.name=液压活塞 item.part_generic.piston_pneumatic.name=气动活塞 item.part_lithium.name=锂粉盒 item.part_plutonium.name=钚粉盒 -item.particle_aelectron.name=正电子密封胶囊 -item.particle_amat.name=反物质密封胶囊 -item.particle_aproton.name=反质子密封胶囊 -item.particle_aschrab.name=反异变铀金属粒子密封胶囊 -item.particle_copper.name=铜离子密封胶囊 -item.particle_dark.name=暗物质密封胶囊 -item.particle_digamma.name=§cϝ伽马粒子§r -item.particle_empty.name=空的粒子密封胶囊 -item.particle_higgs.name=希格斯玻色子密封胶囊 -item.particle_hydrogen.name=氢离子密封胶囊 -item.particle_lead.name=铅离子密封胶囊 -item.particle_lutece.name=镥准粒子密封胶囊 -item.particle_muon.name=μ介子密封胶囊 -item.particle_sparkticle.name=闪闪粒子密封胶囊 -item.particle_strange.name=奇异夸克密封胶囊 +item.particle_aelectron.name=正电子胶囊 +item.particle_amat.name=反物质胶囊 +item.particle_aproton.name=反质子胶囊 +item.particle_aschrab.name=反Sa326胶囊 +item.particle_copper.name=铜离子胶囊 +item.particle_dark.name=暗物质胶囊 +item.particle_digamma.name=§c迪伽马粒子胶囊§r +item.particle_empty.name=空粒子胶囊 +item.particle_higgs.name=希格斯玻色子胶囊 +item.particle_hydrogen.name=氢离子胶囊 +item.particle_lead.name=铅离子胶囊 +item.particle_lutece.name=Lutece镥准粒子胶囊 +item.particle_muon.name=μ介子胶囊 +item.particle_sparkticle.name=Spark粒子胶囊 +item.particle_strange.name=奇夸克胶囊 item.particle_tachyon.name=超光速粒子密封胶囊 -item.parts_legendary.name=传奇的零件 +item.parts_legendary.name=传奇零件 item.peas.name=豌豆 -item.pch.name=马蹄锤 item.pedestal_steel.name=钢底座 -item.pellet_advanced.name=高级Watz瓦茨发电塔性能增强剂 +item.pellet_advanced.name=高级Watz性能增强剂 item.pellet_antimatter.name=反物质团 item.pellet_beryllium.name=铍慢化靶丸 item.pellet_buckshot.name=铅弹丸 -item.pellet_canister.name=榴霰弹 +item.pellet_canister.name=榴霰弹弹丸 item.pellet_charged.name=电离粒子 -item.pellet_chlorophyte.name=绿藻颗粒 -item.pellet_claws.name=锋利的金属破片 +item.pellet_chlorophyte.name=叶绿弹丸 +item.pellet_claws.name=金属利爪 item.pellet_cluster.name=爆炸弹丸 -item.pellet_cluster.desc=用于多用途炸弹:$增加额外的爆炸威力! +item.pellet_cluster.desc=用于多用途炸弹:$增加了一些额外的爆炸力! item.pellet_coal.name=致密煤 item.pellet_coolant.name=冷却液组 item.pellet_flechette.name=箭霰弹 item.pellet_gas.name=毒气筒 -item.pellet_gas.desc=用于多用途炸弹:$*咳咳 咳* 舅...舅舅偶! -item.pellet_hes.name=HES Watz瓦茨发电塔靶丸 +item.pellet_gas.desc=用于多用途炸弹:$*咳嗽*请停止! +item.pellet_hes.name=HES Watz靶丸 item.pellet_lead.name=铅反射靶丸 -item.pellet_les.name=LES Watz瓦茨发电塔靶丸 -item.pellet_mercury.name=汞颗粒 -item.pellet_mes.name=MES Watz瓦茨发电塔靶丸 -item.pellet_meteorite.name=陨石颗粒 -item.pellet_neptunium.name=镎Watz瓦茨发电塔靶丸 -item.pellet_rtg.name=钚-238RTG放射性同位素燃料靶丸 -item.pellet_rtg.desc=可无限提供能量的RTG放射性同位素燃料靶丸!(基本上) -item.pellet_rtg_actinium.name=锕-227RTG放射性同位素燃料靶丸 -item.pellet_rtg_actinium.desc=散发着蓝色和β射线的辉光 -item.pellet_rtg_americium.name=镅-241RTG放射性同位素燃料靶丸 -item.pellet_rtg_americium.desc=稀有可靠的优质古镅! -item.pellet_rtg_berkelium.name=锫RTG放射性同位素燃料靶丸 +item.pellet_les.name=LES Watz靶丸 +item.pellet_mercury.name=水银弹丸 +item.pellet_mes.name=MES Watz靶丸 +item.pellet_meteorite.name=陨石弹丸 +item.pellet_neptunium.name=镎Watz靶丸 +item.pellet_rtg.name=钚238放射性同位素燃料靶丸 +item.pellet_rtg.desc=无限能量的RTG靶丸!(差不多) +item.pellet_rtg_actinium.name=锕放射性同位素燃料靶丸 +item.pellet_rtg_actinium.desc= +item.pellet_rtg_americium.name=镅-241放射性同位素燃料靶丸 +item.pellet_rtg_americium.desc=稀有可靠,好的老镅! +item.pellet_rtg_berkelium.name=锫放射性同位素燃料靶丸 item.pellet_rtg_berkelium.desc= -item.pellet_rtg_cobalt.name=钴-60RTG放射性同位素燃料靶丸 -item.pellet_rtg_cobalt.desc=作为RTG放射性同位素燃料靶丸不是最好的, 但是非常适合伽马辐射! -item.pellet_rtg_depleted.bismuth.name=衰竭的铋RTG放射性同位素燃料靶丸 -item.pellet_rtg_depleted.lead.name=衰竭的铅RTG放射性同位素燃料靶丸 -item.pellet_rtg_depleted.neptunium.name=衰竭的镎RTG放射性同位素燃料靶丸 -item.pellet_rtg_depleted.mercury.name=衰竭的汞RTG放射性同位素燃料靶丸 -item.pellet_rtg_depleted.nickel.name=衰竭的镍RTG放射性同位素燃料靶丸 -item.pellet_rtg_depleted.zirconium.name=衰竭的锆RTG放射性同位素燃料靶丸 -item.pellet_rtg_lead.name=铅-209RTG放射性同位素燃料靶丸 -item.pellet_rtg_lead.desc=接触会立即导致死亡. -item.pellet_rtg_gold.name=金-198RTG放射性同位素燃料靶丸 -item.pellet_rtg_gold.desc=由稀有, 高度不稳定的金同位素制成. -item.pellet_rtg_polonium.name=钋-210RTG放射性同位素燃料靶丸 -item.pellet_rtg_polonium.desc=更强力的RTG靶丸,由最优质的钋制成! -item.pellet_rtg_strontium.name=锶-90RTG放射性同位素燃料靶丸 -item.pellet_rtg_strontium.desc=为加利福尼亚州所知... -item.pellet_rtg_radium.name=镭-226RTG放射性同位素燃料靶丸 -item.pellet_rtg_radium.desc=伟大的激发式放射性同位素燃料靶丸, 来自全天然镭! -item.pellet_rtg_weak.name=贫铀RTG放射性同位素燃料靶丸 -item.pellet_rtg_weak.desc=更廉价但更弱的弹丸, 现在含有更多的 U238! -item.pellet_schrabidium.name=纯Sa326异变铀金属Watz瓦茨发电塔靶丸 +item.pellet_rtg_cobalt.name=钴-60放射性同位素燃料靶丸 +item.pellet_rtg_cobalt.desc=不是最好的RTG,但对伽马辐射很好! +item.pellet_rtg_depleted.bismuth.name=枯竭铋放射性同位素燃料靶丸 +item.pellet_rtg_depleted.lead.name=枯竭铅放射性同位素燃料靶丸 +item.pellet_rtg_depleted.neptunium.name=枯竭镎放射性同位素燃料靶丸 +item.pellet_rtg_depleted.mercury.name=枯竭汞放射性同位素燃料靶丸 +item.pellet_rtg_depleted.nickel.name=枯竭镍放射性同位素燃料靶丸 +item.pellet_rtg_depleted.zirconium.name=枯竭锆放射性同位素燃料靶丸 +item.pellet_rtg_lead.name=铅-209 放射性同位素燃料靶丸 +item.pellet_rtg_lead.desc=接触会导致立即死亡。 +item.pellet_rtg_gold.name=金-198放射性同位素燃料靶丸 +item.pellet_rtg_gold.desc=由稀有的、高度不稳定的金同位素制成。 +item.pellet_rtg_polonium.name=钋210放射性同位素燃料靶丸 +item.pellet_rtg_polonium.desc=更多粉末状RTG靶丸,由最好的钋制成! +item.pellet_rtg_strontium.name=锶-90放射性同位素燃料靶丸 +item.pellet_rtg_strontium.desc= +item.pellet_rtg_radium.name=镭-226放射性同位素燃料靶丸 +item.pellet_rtg_radium.desc=伟大的启动靶丸,来自全天然镭! +item.pellet_rtg_weak.name=贫铀放射性同位素燃料靶丸 +item.pellet_rtg_weak.desc=更便宜更弱的靶丸,含有更多的铀238! +item.pellet_schrabidium.name=纯Sa326Watz靶丸 item.photo_panel.name=光伏板 -item.pile_rod_boron.name=芝加哥反应堆控制棒 -item.pile_rod_boron.desc=§9[中子吸收棒]$§e单击以切换 +item.pile_rod_boron.name=芝加哥反应堆 控制棒 +item.pile_rod_boron.desc=§9[中子吸收器]$§E单击以切换 item.pile_rod_detector.name=芝加哥反应堆控制/探测棒 item.pile_rod_detector.desc=§9[中子探测器/吸收器]$§e使用拆弹器增加/减少中子通量限值$§e使用螺丝刀检查中子通量 item.pile_rod_lithium.name=芝加哥反应堆锂燃料棒 item.pile_rod_lithium.desc=§a[可增殖燃料棒]$§e使用手钻检查棒芯 -item.pile_rod_plutonium.name=芝加哥反应堆钚棒 +item.pile_rod_plutonium.name=芝加哥反应堆 钚棒 item.pile_rod_plutonium.desc=§d[中子源棒] item.pile_rod_pu239.name=芝加哥反应堆增殖铀棒 -item.pile_rod_pu239.desc=§a[可反应核燃料]$§e富含钚-239. -item.pile_rod_source.name=芝加哥反应堆镭226-铍中子源 +item.pile_rod_pu239.desc=§a[可反应核燃料]$§e富含钚-239 +item.pile_rod_source.name=芝加哥反应堆 镭226-铍中子源 item.pile_rod_source.desc=§d[中子源棒] -item.pile_rod_uranium.name=芝加哥反应堆铀棒 +item.pile_rod_uranium.name=芝加哥反应堆 铀棒 item.pile_rod_uranium.desc=§a[可反应核燃料]$§e使用手钻取堆芯样本 item.pill_iodine.name=碘丸 -item.pill_iodine.desc=移除身上所有的负面效果 +item.pill_iodine.desc=消除负面buff item.pill_herbal.name=草药膏 item.pill_herbal.desc=有效治疗肺部疾病和轻度辐射中毒$有副作用 -item.pill_red.name=红药丸 +item.pill_red.name=红色药丸 item.pin.name=发夹 -item.pin.desc=撬开常规锁的标准成功率约为10%%. +item.pin.desc=“*未修改*撬开标准锁的成功率约为10%。 item.pipes_steel.name=钢管 -item.pipes_steel.desc=为了逃税,所以造价如此高昂. -item.piston_selenium.name=星型内燃发电机活塞 -item.piston_set_desh.name=德什制活塞组 -item.piston_set_dura.name=高速钢制活塞组 -item.piston_set_starmetal.name=星辉金属制活塞组 -item.piston_set_steel.name=钢制活塞组 +item.pipes_steel.desc=为了避免合成冲突,所以造价如此高昂 +item.piston_selenium.name=星型发动机活塞 +item.piston_set_desh.name=Desh活塞组 +item.piston_set_dura.name=高速钢活塞组 +item.piston_set_starmetal.name=星辉活塞组 +item.piston_set_steel.name=钢活塞组 item.plan_c.name=C计划 item.plan_c.desc=致死 -item.plant_item.mustardwillow.name=芥柳叶 +item.plant_item.mustardwillow.name=芥子柳叶 item.plant_item.rope.name=麻绳 item.plant_item.tobacco.name=烟叶 item.plate_advanced_alloy.name=高级合金板 item.plate_aluminium.name=铝板 -item.plate_armor_ajr.name=§8§l§n[铁蹄]§r装甲板 +item.plate_armor_ajr.name=铁皮装甲板 item.plate_armor_dnt.name=DNT装甲板 item.plate_armor_fau.name=Fau装甲板 -item.plate_armor_hev.name=反应式装甲板 -item.plate_armor_lunar.name=§b§l§m[月 神]§r 装甲板 -item.plate_armor_titanium.name=钛制装甲板 +item.plate_armor_hev.name=反应装甲板 +item.plate_armor_lunar.name=月球镀层 +item.plate_armor_titanium.name=钛装甲板 item.plate_bismuth.name=铋复合板 -item.plate_bismuth.desc=伙计们,这是铋的炼金术符号,我发誓. -item.plate_cast.name= %s 制铸造板 +item.plate_bismuth.desc=伙计们,这是铋的炼金术符号,我发誓。 +item.plate_cast.name=铸造%s板 item.plate_combine_steel.name=CMB钢板 item.plate_copper.name=铜板 item.plate_dalekanium.name=愤怒的金属 -item.plate_desh.name=德什复合板 +item.plate_desh.name=Desh复合板 item.plate_dineutronium.name=双聚中子态素复合板 -item.plate_euphemium.name=Ep元素复合板 -item.plate_fuel_mox.name=MOX板状燃料元件 -item.plate_fuel_pu238be.name=钚238-铍板状燃料元件 -item.plate_fuel_pu239.name=高浓缩度钚-239板状燃料元件 -item.plate_fuel_ra226be.name=镭226-铍板状燃料元件 -item.plate_fuel_sa326.name=高浓缩度Sa326板状燃料元件 -item.plate_fuel_u233.name=高浓缩度铀-233板状燃料元件 -item.plate_fuel_u235.name=高浓缩度铀-235板状燃料元件 +item.plate_euphemium.name=Ep复合板 +item.plate_fuel_mox.name=MOX 板状燃料 +item.plate_fuel_pu238be.name=钚238-铍 板状燃料 +item.plate_fuel_pu239.name=高浓度钚-239 板状燃料 +item.plate_fuel_ra226be.name=镭226-铍 板状燃料 +item.plate_fuel_sa326.name=高浓度Sa326 板状燃料 +item.plate_fuel_u233.name=高浓度铀-233 板状燃料 +item.plate_fuel_u235.name=高浓度铀-235 板状燃料 item.plate_gold.name=金板 item.plate_iron.name=铁板 item.plate_kevlar.name=凯夫拉陶瓷复合材料 @@ -3333,7 +3291,7 @@ item.plate_mixed.name=合金板 item.plate_paa.name=PaA合金板 item.plate_polymer.name=绝缘体 item.plate_saturnite.name=土星板 -item.plate_schrabidium.name=Sa326异变铀金属板 +item.plate_schrabidium.name=Sa326板 item.plate_steel.name=钢板 item.plate_titanium.name=钛板 item.polaroid.name=偏光片 @@ -3342,7 +3300,7 @@ item.powder_actinium_tiny.name=小撮锕粉 item.powder_advanced_alloy.name=高级合金粉 item.powder_aluminium.name=铝粉 item.powder_asbestos.name=石棉粉 -item.powder_asbestos.desc=§o\"我就闻亿下..嗯,嗯..喔哦哦哦哦哦!\"§r +item.powder_asbestos.desc=§o\"Sniffffffff- MHHHHHHMHHHHHHHHH\"§r item.powder_astatine.name=砹粉 item.powder_at209.name=砹-209粉 item.powder_au198.name=金-198粉 @@ -3360,6 +3318,7 @@ item.powder_caesium.name=铯粉 item.powder_calcium.name=钙粉 item.powder_cerium.name=铈粉 item.powder_cerium_tiny.name=小撮铈粉 +item.powder_chlorocalcite.name=氯方解石 item.powder_chlorophyte.name=叶绿粉 item.powder_cloud.name=云粉末 item.powder_co60.name=钴-60粉 @@ -3367,30 +3326,30 @@ item.powder_coal.name=煤粉 item.powder_coal_tiny.name=小撮煤粉 item.powder_cobalt.name=钴粉 item.powder_cobalt_tiny.name=小撮钴粉 -item.powder_coltan.name=纯化钽铁矿 -item.powder_coltan_ore.name=粉碎钶钽铁矿石 +item.powder_coltan.name=纯钽铁矿 +item.powder_coltan_ore.name=粉碎的钶钽铁矿石 item.powder_combine_steel.name=CMB钢粉 item.powder_copper.name=铜粉 item.powder_cs137.name=铯-137粉 item.powder_cs137_tiny.name=小撮铯-137粉 item.powder_daffergon.name=达夫贡粉 -item.powder_desh.name=德什粉 -item.powder_desh_mix.name=德什混合物 -item.powder_desh_ready.name=德什Ready™混合物 +item.powder_desh.name=Desh粉 +item.powder_desh_mix.name=Desh混合物 +item.powder_desh_ready.name=DeshReady混合物 item.powder_diamond.name=钻石粉 item.powder_dineutronium.name=双聚中子态素粉 item.powder_dura_steel.name=高速钢粉 item.powder_emerald.name=绿宝石粉 -item.powder_euphemium.name=Ep元素粉 +item.powder_euphemium.name=Ep粉 +item.powder_euphemium.desc=粉红色$尝起来像草莓。 item.powder_fertilizer.name=工业肥料 -item.powder_euphemium.desc=粉色的粉末..$尝起来像草莓. item.powder_fire.name=火焰粉 -item.powder_fire.desc=用于多用途炸弹:$燃烧弹很有趣! -item.powder_flux.name=助焊剂 +item.powder_fire.desc=用于多用途炸弹:燃烧弹很有趣! +item.powder_flux.name=助熔剂 item.powder_gold.name=金粉 item.powder_i131.name=碘-131粉 item.powder_i131_tiny.name=小撮碘-131粉 -item.powder_ice.name=超低温粉 +item.powder_ice.name=冷冻粉 item.powder_impure_osmiridium.name=不纯铱锇粉 item.powder_iodine.name=碘粉 item.powder_iron.name=铁粉 @@ -3410,32 +3369,32 @@ item.powder_neodymium_tiny.name=小撮钕粉 item.powder_neptunium.name=镎粉 item.powder_niobium.name=铌粉 item.powder_niobium_tiny.name=小撮铌粉 -item.powder_nitan_mix.name=Nitan尼塔姆混合物 +item.powder_nitan_mix.name=Nitan混合物 item.powder_paleogenite.name=古近纪岩石粉末 item.powder_paleogenite_tiny.name=小撮古近纪岩石粉末 item.powder_plutonium.name=钚粉 item.powder_poison.name=剧毒粉 -item.powder_poison.desc=用于多用途炸弹:$警告: 化学毒性! -item.powder_polonium.name=钋-210粉 +item.powder_poison.desc=用于多用途炸弹:警告:有毒! +item.powder_polonium.name=钋粉 item.powder_polymer.name=聚合物粉 item.powder_power.name=能量粉 item.powder_quartz.name=石英粉 item.powder_ra226.name=镭-226粉 item.powder_red_copper.name=紫铜粉 item.powder_reiium.name=雷恩粉 -item.powder_sawdust.name=锯屑 -item.powder_schrabidate.name=Sa326元素酸化铁粉末 -item.powder_schrabidium.name=Sa326异变铀金属粉 +item.powder_sawdust.name=锯末 +item.powder_schrabidate.name=Sa酸铁粉 +item.powder_schrabidium.name=Sa326粉 item.powder_semtex_mix.name=塞姆汀塑胶炸药混合物 -item.powder_spark_mix.name=Spark闪闪魔法混合物 +item.powder_spark_mix.name=Spark闪闪奥术混合物 item.powder_sr90.name=锶-90粉 -item.powder_sr90_tiny.name=小撮锶-90粉 +item.powder_sr90_tiny.name=小撮锶-90粉末 item.powder_steel.name=钢粉 item.powder_steel_tiny.name=小撮钢粉 item.powder_strontium.name=锶粉 item.powder_tantalium.name=钽粉 -item.powder_tantalium.desc='Tantalum' -item.powder_tantalium.desc.P11=也写作这个. +item.powder_tantalium.desc=“钽” +item.powder_tantalium.desc.P11=又名钽。 item.powder_tcalloy.name=锝-钢粉 item.powder_tektite.name=熔融石粉 item.powder_tennessine.name=Ts粉 @@ -3443,7 +3402,7 @@ item.powder_thermite.name=铝热剂 item.powder_thorium.name=钍粉 item.powder_titanium.name=钛粉 item.powder_tungsten.name=钨粉 -item.powder_unobtainium.name=阿诺布汀粉 +item.powder_unobtainium.name=难得素粉 item.powder_uranium.name=铀粉 item.powder_verticium.name=韦德赛粉 item.powder_weidanium.name=魏丹粉 @@ -3451,7 +3410,7 @@ item.powder_xe135.name=氙-135粉 item.powder_xe135_tiny.name=小撮氙-135粉 item.powder_yellowcake.name=黄饼 item.powder_zirconium.name=锆粉 -item.power_net_tool.name=电网分析工具 +item.power_net_tool.name=电缆网络分析工具 item.primer_357.name=.357马格南底火[x24] item.primer_44.name=.44马格南底火[x24] item.primer_50.name=大口径底火[x12] @@ -3460,104 +3419,104 @@ item.primer_buckshot.name=鹿弹底火[x12] item.protection_charm.name=守护项链 item.prototype_kit.name=原型 套件 item.pudding.name=布丁 -item.quartz_plutonium.name=冥王星石英 +item.quartz_plutonium.name=深成石英 item.radaway.name=消辐宁 item.radaway_flush.name=超级消辐宁 item.radaway_strong.name=强效消辐宁 item.radx.name=防辐射药 -item.radx.desc=增加0.2(37%%)的抗辐射能力,持续3分钟 -item.rag.name=破布 -item.rag_damp.name=湿破布 -item.rag_piss.name=尿湿润的破布 -item.rbmk_fuel_balefire.name=RBMK石墨式反应堆野火燃料棒 -item.rbmk_fuel_balefire_gold.name=激活态金-198 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_drx.name=§cϜ迪伽马粒子 RBMK石墨式反应堆燃料棒§r -item.rbmk_fuel_empty.name=空 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_flashlead.name=激活态铅 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_hea241.name=HEA-241 高浓缩度镅-241 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_hea242.name=HEA-242 高浓缩度镅-242 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_heaus.name=HEAus 高浓缩度奥金 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_hen.name=HEN 高浓缩度镎-237 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_hes.name=HES 高浓缩度Sa-326 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_hep.name=HEP-239 高浓缩度钚-239 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_hep241.name=HEP-241 高浓缩度钚-241 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_heu233.name=HEU-233 高浓缩度铀-233 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_heu235.name=HEU-235 高浓缩度铀-235 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_lea.name=LEA 低浓缩度镅-242 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_leaus.name=LEAus 低浓缩度奥金 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_lep.name=LEP 低浓缩度钚-239 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_les.name=LES 低浓缩度Sa-326 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_mea.name=MEA 中浓缩度镅-242 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_men.name=MEN 中浓缩度镎-237 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_mep.name=MEP 中浓缩度钚-239 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_mes.name=MES 中浓缩度Sa-326 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_meu.name=MEU 中浓缩度铀-235 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_mox.name=MOX 钚-铀混合RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_po210be.name=钋210-铍RBMK石墨式反应堆中子源 -item.rbmk_fuel_pu238be.name=钚238-铍RBMK石墨式反应堆中子源 -item.rbmk_fuel_ra226be.name=镭226-铍RBMK石墨式反应堆中子源 -item.rbmk_fuel_thmeu.name=ThMEU 中浓缩度铀-235导向钍 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_ueu.name=NU 未浓缩铀 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_zfb_am_mix.name=ZFB 锆混合反应堆级镅快速增殖式RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_zfb_bismuth.name=ZFB 锆混合铋快速增殖式RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_zfb_pu241.name=ZFB 锆混合钚-241快速增殖式RBMK石墨式反应堆燃料棒 -item.rbmk_lid.name=RBMK石墨式反应堆覆盖层 -item.rbmk_lid_glass.name=RBMK石墨式反应堆玻璃覆盖层 +item.radx.desc=在3分钟内增加0.2(37%)的抗辐射能力 +item.rag.name=布 +item.rag_damp.name=湿布 +item.rag_piss.name=沾有尿的布 +item.rbmk_fuel_balefire.name=RBMK反应堆野火燃料棒 +item.rbmk_fuel_balefire_gold.name=RBMK反应堆激活态金-198燃料棒 +item.rbmk_fuel_drx.name=§cRBMK反应堆F迪伽马粒子燃料棒§r +item.rbmk_fuel_empty.name=空 RBMK反应堆燃料棒 +item.rbmk_fuel_flashlead.name=RBMK反应堆闪光铅燃料棒 +item.rbmk_fuel_hea241.name=HEA-241 RBMK反应堆高浓缩度镅-241燃料棒 +item.rbmk_fuel_hea242.name=HEA-242 RBMK反应堆高浓缩度镅-242燃料棒 +item.rbmk_fuel_heaus.name=HEAus RBMK反应堆高浓缩度奥斯燃料棒 +item.rbmk_fuel_hen.name=HEN RBMK反应堆高浓缩度镎燃料棒 +item.rbmk_fuel_hes.name=HES RBMK反应堆高浓缩度Sa326燃料棒 +item.rbmk_fuel_hep.name=HEP-239 RBMK反应堆高浓缩度钚-239燃料棒 +item.rbmk_fuel_hep241.name=HEP-241 RBMK反应堆高浓缩度钚-241燃料棒 +item.rbmk_fuel_heu233.name=HEU-233 RBMK反应堆高浓缩度铀-233燃料棒 +item.rbmk_fuel_heu235.name=HEU-235 RBMK反应堆高浓缩度铀-235燃料棒 +item.rbmk_fuel_lea.name=LEA RBMK反应堆低浓缩度镅-242燃料棒 +item.rbmk_fuel_leaus.name=LEAus RBMK反应堆低浓缩度奥斯燃料棒 +item.rbmk_fuel_lep.name=LEP RBMK反应堆低浓缩度钚-239燃料棒 +item.rbmk_fuel_les.name=LES RBMK反应堆低浓缩度Sa326燃料棒 +item.rbmk_fuel_mea.name=MEA RBMK反应堆中浓缩度镅-242燃料棒 +item.rbmk_fuel_men.name=MEN RBMK反应堆中浓缩度镎-237燃料棒 +item.rbmk_fuel_mep.name=MEP RBMK反应堆中浓缩度钚-239燃料棒 +item.rbmk_fuel_mes.name=MES RBMK中浓缩度Sa326燃料棒 +item.rbmk_fuel_meu.name=MEU RBMK中浓缩度铀-235燃料棒 +item.rbmk_fuel_mox.name=MOX RBMK反应堆燃料棒 +item.rbmk_fuel_po210be.name=钋210-铍 RBMK反应堆中子源 +item.rbmk_fuel_pu238be.name=钚238-铍 RBMK反应堆中子源 +item.rbmk_fuel_ra226be.name=镭226-铍 RBMK反应堆中子源 +item.rbmk_fuel_thmeu.name=ThMEU RBMK反应堆中浓缩度铀-235导向钍燃料棒 +item.rbmk_fuel_ueu.name=NU RBMK反应堆未浓缩铀燃料棒 +item.rbmk_fuel_zfb_am_mix.name=ZFB 燃料级镅RBMK反应堆燃料棒 +item.rbmk_fuel_zfb_bismuth.name=ZFB 铋RBMK反应堆燃料棒 +item.rbmk_fuel_zfb_pu241.name=ZFB 钚-241RBMK反应堆燃料棒 +item.rbmk_lid.name=RBMK反应堆覆盖层 +item.rbmk_lid_glass.name=RBMK反应堆玻璃覆盖层 item.rbmk_pellet_balefire.name=野火燃料芯块 item.rbmk_pellet_balefire_gold.name=激活态金-198燃料芯块 -item.rbmk_pellet_drx.name=§cϜ迪伽马粒子燃料芯块§r -item.rbmk_pellet_flashlead.name=激活态铅燃料芯块 -item.rbmk_pellet_hea241.name=HEA-241高浓缩度镅-241燃料芯块 -item.rbmk_pellet_hea242.name=HEA-242高浓缩度镅-242燃料芯块 -item.rbmk_pellet_heaus.name=HEAus高浓缩度奥金燃料芯块 -item.rbmk_pellet_hen.name=HEN高浓缩度镎-237燃料芯块 -item.rbmk_pellet_hep239.name=HEP-239高浓缩度钚-239燃料芯块 -item.rbmk_pellet_hep241.name=HEP-241高浓缩度钚-241燃料芯块 -item.rbmk_pellet_heu233.name=HEU-233高浓缩度铀-233燃料芯块 -item.rbmk_pellet_heu235.name=HEU-235高浓缩度铀-235燃料芯块 -item.rbmk_pellet_hes.name=HES高浓缩度Sa-326燃料芯块 -item.rbmk_pellet_lea.name=LEA低浓缩度镅-242燃料芯块 -item.rbmk_pellet_leaus.name=LEAus低浓缩度奥金燃料芯块 -item.rbmk_pellet_lep.name=LEP低浓缩度钚-239燃料芯块 -item.rbmk_pellet_les.name=LES低浓缩度Sa-326燃料芯块 -item.rbmk_pellet_mea.name=MEA中浓缩度镅-242燃料芯块 -item.rbmk_pellet_men.name=MEN中浓缩度镎-237燃料芯块 -item.rbmk_pellet_mep.name=MEP中浓缩度钚-239燃料芯块 -item.rbmk_pellet_mes.name=MES中浓缩度Sa-326燃料芯块 -item.rbmk_pellet_meu.name=MEU中浓缩度铀-235燃料芯块 +item.rbmk_pellet_drx.name=§cF迪伽马粒子燃料芯块§r +item.rbmk_pellet_flashlead.name=闪光铅燃料芯块 +item.rbmk_pellet_hea241.name=HEA-241 高浓缩度镅-241料芯块 +item.rbmk_pellet_hea242.name=HEA-242 高浓缩度镅-242燃料芯块 +item.rbmk_pellet_heaus.name=HEAus 高浓缩度奥斯燃料芯块 +item.rbmk_pellet_hen.name=HEN 高浓缩度镎燃料芯块 +item.rbmk_pellet_hep239.name=HEP-239 高浓缩度钚-239燃料芯块 +item.rbmk_pellet_hep241.name=HEP-241 高浓缩度钚-241燃料芯块 +item.rbmk_pellet_heu233.name=HEU-233 高浓缩度铀-233燃料芯块 +item.rbmk_pellet_heu235.name=HEU-235 高浓缩度铀-235燃料芯块 +item.rbmk_pellet_hes.name=HES 高浓缩度Sa-326燃料芯块 +item.rbmk_pellet_lea.name=LEA 低浓缩度镅-242燃料芯块 +item.rbmk_pellet_leaus.name=LEAus 低浓缩度奥斯燃料芯块 +item.rbmk_pellet_lep.name=LEP 低浓缩度钚-239燃料芯块 +item.rbmk_pellet_les.name=LES 低浓缩度Sa-326燃料芯块 +item.rbmk_pellet_mea.name=MEA 中浓缩度镅-242燃料芯块 +item.rbmk_pellet_men.name=MEN 中浓缩度镎-237燃料芯块 +item.rbmk_pellet_mep.name=MEP 中浓缩度钚-239燃料芯块 +item.rbmk_pellet_mes.name=MES 中浓缩度Sa-326燃料芯块 +item.rbmk_pellet_meu.name=MEU 中浓缩度铀-235燃料芯块 item.rbmk_pellet_mox.name=MOX燃料芯块 -item.rbmk_pellet_po210be.name=钋210-铍中子源芯块 -item.rbmk_pellet_pu238be.name=钚238-铍中子源芯块 -item.rbmk_pellet_ra226be.name=镭226-铍中子源芯块 -item.rbmk_pellet_thmeu.name=ThMEU浓缩度铀-235导向钍燃料芯块 +item.rbmk_pellet_po210be.name=钋210-铍 中子源芯块 +item.rbmk_pellet_pu238be.name=钚238-铍 中子源芯块 +item.rbmk_pellet_ra226be.name=镭226-铍 中子源芯块 +item.rbmk_pellet_thmeu.name=ThMEU 浓缩度铀-235导向钍燃料芯块 item.rbmk_pellet_ueu.name=未浓缩铀燃料芯块 -item.rbmk_pellet_zfb_am_mix.name=ZFB锆混合反应堆级镅快速增殖式燃料芯块 -item.rbmk_pellet_zfb_bismuth.name=ZFB锆混合铋快速增殖式燃料芯块 -item.rbmk_pellet_zfb_pu241.name=ZFB锆混合钚-241快速增殖式燃料芯块 +item.rbmk_pellet_zfb_am_mix.name=ZFB 燃料级镅燃料芯块 +item.rbmk_pellet_zfb_bismuth.name=ZFB 铋燃料芯块 +item.rbmk_pellet_zfb_pu241.name=ZFB 钚-241燃料芯块 item.rbmk_tool.name=RBMK石墨式反应堆控制台连接装置 -item.rbmk_tool.desc=潜行并右击RBMK石墨式反应堆保存其坐标,$潜入并右击控制台以连接反应堆! +item.rbmk_tool.desc=按住Shift右击RBMK石墨式反应堆保存其坐标,$按住Shift右击控制台以连接反应堆! item.rbmk_tool.linked=反应堆坐标已记录! item.rbmk_tool.set=反应堆已连接! -item.reacher.name=钨制长钳 +item.reacher.name=钨长臂夹 item.reactor_core.name=增殖反应堆核心 item.reactor_sensor.name=反应堆遥感器 item.record.glass.desc=? ? ? -item.record.lc.desc=Valve - 恶魔肾上腺素吉他/Lambda核心 -item.record.ss.desc=Valve - 扫描扇区 -item.record.vc.desc=Valve - 斗争漩涡 +item.record.lc.desc=Valve - Diabolic Adrenaline Guitar/Lambda Core +item.record.ss.desc=Valve - Sector Sweep +item.record.vc.desc=Valve - Vortal Combat item.redcoil_capacitor.name=红圈电容器 item.redstone_depleted.name=不饱和红石粉 item.redstone_sword.name=红石剑 item.reer_graar.name=The Reer Graar item.remote.name=损坏的遥控器 item.ring_pull.name=拉环 -item.ring_starmetal.name=§9星辉金属环§r +item.ring_starmetal.name=§9星辉拉环§r item.robes_boots.name=战地靴 item.robes_helmet.name=休闲兜帽 item.robes_legs.name=休闲裤 item.robes_plate.name=休闲毛衣 item.rocket_fuel.name=固体燃料[火箭推进剂] -item.rod_empty.name=空棒 +item.rod_empty.name=空燃料棒 item.rod.lithium.name=锂棒 item.rod.tritium.name=氚棒 item.rod.co.name=钴棒 @@ -3575,25 +3534,25 @@ item.rod.rgp.name=反应堆级钚棒 item.rod.waste.name=核废料棒 item.rod.lead.name=铅棒 item.rod.uranium.name=铀棒 -item.rod_dual_empty.name=空双联棒 +item.rod_dual_empty.name=空双联燃料棒 item.rod_dual.lithium.name=双联锂棒 -item.rod_dual.tritium.name=氚双联棒 +item.rod_dual.tritium.name=氚双棒 item.rod_dual.co.name=双联钴棒 item.rod_dual.co60.name=双联钴-60棒 item.rod_dual.ra226.name=双联镭-226棒 item.rod_dual.ac227.name=双联锕-227棒 item.rod_dual.th232.name=双联钍-232棒 -item.rod_dual.thf.name=钍燃料 双联棒 -item.rod_dual.u235.name=双联铀-235 棒 +item.rod_dual.thf.name=双联钍燃料棒 +item.rod_dual.u235.name=双联铀-235棒 item.rod_dual.np237.name=双联镎-237棒 item.rod_dual.u238.name=双联铀-238棒 item.rod_dual.pu238.name=双联钚-238棒 item.rod_dual.pu239.name=双联钚-239棒 -item.rod_dual.rgp.name= 双联反应堆级钚棒 +item.rod_dual.rgp.name=双联反应堆级钚棒 item.rod_dual.waste.name=双联核废料棒 item.rod_dual.lead.name=双联铅棒 -item.rod_dual.uranium.name=铀棒 -item.rod_quad_empty.name=空四联棒 +item.rod_dual.uranium.name=双联铀棒 +item.rod_quad_empty.name=空四联燃料棒 item.rod_quad.lithium.name=四联锂棒 item.rod_quad.tritium.name=四联氚棒 item.rod_quad.co.name=四联钴棒 @@ -3601,145 +3560,145 @@ item.rod_quad.co60.name=四联钴-60棒 item.rod_quad.ra226.name=四联镭-226棒 item.rod_quad.ac227.name=四联锕-227棒 item.rod_quad.th232.name=四联钍-232棒 -item.rod_quad.thf.name= 四联钍燃料棒 +item.rod_quad.thf.name=四联钍燃料棒 item.rod_quad.u235.name=四联铀-235棒 item.rod_quad.np237.name=四联镎-237棒 item.rod_quad.u238.name=四联铀-238棒 item.rod_quad.pu238.name=四联钚-238棒 item.rod_quad.pu239.name=四联钚-239棒 -item.rod_quad.rgp.name= 四联反应堆级钚棒 +item.rod_quad.rgp.name=四联反应堆级钚棒 item.rod_quad.waste.name=四联核废料棒 -item.rod_quad.lead.name=四联Lead 铅棒 +item.rod_quad.lead.name=四联铅棒 item.rod_quad.uranium.name=四联铀棒 item.rod_australium.name=奥斯棒 -item.rod_balefire.name=BF燃料棒 -item.rod_balefire_blazing.name=炽热的BF燃料棒 +item.rod_balefire.name=野火燃料棒 +item.rod_balefire_blazing.name=炽热的野火燃料棒 item.rod_coolant.name=燃料棒[冷却液] item.rod_daffergon.name=达夫贡棒 -item.rod_dual_balefire.name=双联BF燃料棒 -item.rod_dual_balefire_blazing.name=炽热的双联BF燃料棒 +item.rod_dual_balefire.name=双联野火燃料棒 +item.rod_dual_balefire_blazing.name=炽热的双联野火燃料棒 item.rod_dual_coolant.name=双联燃料棒[冷却液] item.rod_dual_lead.name=双联铅棒 item.rod_dual_lithium.name=双联锂棒 -item.rod_dual_mox_fuel.name=双联MOX燃料棒 -item.rod_dual_mox_fuel_depleted.name=枯竭MOX燃料棒 +item.rod_dual_mox_fuel.name=核反应堆 双联MOX燃料棒 +item.rod_dual_mox_fuel_depleted.name=核反应堆 枯竭MOX燃料棒 item.rod_dual_neptunium.name=双联镎燃料棒 item.rod_dual_plutonium.name=双联钚棒 -item.rod_dual_plutonium_fuel.name=双联钚燃料棒 -item.rod_dual_plutonium_fuel_depleted.name=双联枯竭钚燃料棒 -item.rod_dual_polonium.name=双联钋-210棒 -item.rod_dual_pu238.name=双联钚238燃料棒 -item.rod_dual_pu239.name=双联钚239燃料棒 -item.rod_dual_pu240.name=双联钚240燃料棒 -item.rod_dual_schrabidium.name=双联Sa326异变铀金属燃料棒 -item.rod_dual_schrabidium_fuel.name=双联Sa326异变铀金属燃料棒 -item.rod_dual_schrabidium_fuel_depleted.name=双联枯竭Sa326异变铀金属燃料棒 -item.rod_dual_solinium.name=双联Sa327索林燃料棒 -item.rod_dual_th232.name=双联钍232燃料棒 +item.rod_dual_plutonium_fuel.name=核反应堆 双联钚燃料棒 +item.rod_dual_plutonium_fuel_depleted.name=核反应堆 双联枯竭钚燃料棒 +item.rod_dual_polonium.name=双联钋棒 +item.rod_dual_pu238.name=双联钚-238燃料棒 +item.rod_dual_pu239.name=双联钚-239燃料棒 +item.rod_dual_pu240.name=双联钚-240燃料棒 +item.rod_dual_schrabidium.name=双联Sa326燃料棒 +item.rod_dual_schrabidium_fuel.name=核反应堆 双联Sa326燃料棒 +item.rod_dual_schrabidium_fuel_depleted.name=双联枯竭Sa326燃料棒 +item.rod_dual_solinium.name=双联Sa327燃料棒 +item.rod_dual_th232.name=双联钍-232燃料棒 item.rod_dual_thorium_fuel.name=双联钍燃料棒 item.rod_dual_thorium_fuel_depleted.name=双联枯竭钍燃料棒 item.rod_dual_tritium.name=双联氚燃料棒 -item.rod_dual_u233.name=双联铀233燃料棒 -item.rod_dual_u235.name=双联铀235燃料棒 -item.rod_dual_u238.name=双联铀238燃料棒 +item.rod_dual_u233.name=双联铀-233燃料棒 +item.rod_dual_u235.name=双联铀-235燃料棒 +item.rod_dual_u238.name=双联铀-238燃料棒 item.rod_dual_uranium.name=双联铀棒 -item.rod_dual_uranium_fuel.name=双联铀燃料棒 -item.rod_dual_uranium_fuel_depleted.name=双联枯竭铀燃料棒 +item.rod_dual_uranium_fuel.name=核反应堆 双联铀燃料棒 +item.rod_dual_uranium_fuel_depleted.name=核反应堆 双联枯竭铀燃料棒 item.rod_dual_waste.name=双联核废料棒 item.rod_dual_water.name=双联燃料棒[水] -item.rod_euphemium.name=Ep元素棒 +item.rod_euphemium.name=Ep棒 item.rod_lead.name=铅棒 item.rod_lithium.name=锂棒 -item.rod_mox_fuel.name=MOX燃料棒 -item.rod_mox_fuel_depleted.name=枯竭MOX燃料棒 +item.rod_mox_fuel.name=核反应堆 MOX燃料棒 +item.rod_mox_fuel_depleted.name=核反应堆 枯竭MOX燃料棒 item.rod_neptunium.name=镎燃料棒 +item.rod_of_discord.name=混沌传送杖 item.rod_plutonium.name=钚棒 -item.rod_of_discord.name=混沌传送法杖 -item.rod_plutonium_fuel.name=钚燃料棒 -item.rod_plutonium_fuel_depleted.name=枯竭钚燃料棒 -item.rod_polonium.name=钋-210棒 -item.rod_pu238.name=钚238燃料棒 -item.rod_pu239.name=钚239燃料棒 -item.rod_pu240.name=钚240燃料棒 -item.rod_quad_balefire.name=四联BF燃料棒 -item.rod_quad_balefire_blazing.name=炽热的四联BF燃料棒 +item.rod_plutonium_fuel.name=核反应堆 钚燃料棒 +item.rod_plutonium_fuel_depleted.name=核反应堆 枯竭钚燃料棒 +item.rod_polonium.name=钋棒 +item.rod_pu238.name=钚-238燃料棒 +item.rod_pu239.name=钚-239燃料棒 +item.rod_pu240.name=钚-240燃料棒 +item.rod_quad_balefire.name=四联野火燃料棒 +item.rod_quad_balefire_blazing.name=炽热的四联野火燃料棒 item.rod_quad_coolant.name=四联燃料棒[冷却液] -item.rod_quad_euphemium.name=枯竭的四联Sa326异变铀金属燃料棒 +item.rod_quad_euphemium.name=枯竭的四联Sa326燃料棒 item.rod_quad_lead.name=四联铅棒 item.rod_quad_lithium.name=四联锂棒 -item.rod_quad_mox_fuel.name=四联MOX燃料棒 -item.rod_quad_mox_fuel_depleted.name=枯竭MOX燃料棒 +item.rod_quad_mox_fuel.name=核反应堆 四联MOX燃料棒 +item.rod_quad_mox_fuel_depleted.name=核反应堆 枯竭MOX燃料棒 item.rod_quad_neptunium.name=四联镎燃料棒 -item.rod_quad_plutonium.name=四联钚燃料棒 +item.rod_quad_plutonium.name=四联钚棒 item.rod_quad_plutonium_fuel.name=四联钚燃料棒 item.rod_quad_plutonium_fuel_depleted.name=四联枯竭钚燃料棒 -item.rod_quad_polonium.name=四联钋-210棒 -item.rod_quad_pu238.name=四联钚238燃料棒 -item.rod_quad_pu239.name=四联钚239燃料棒 -item.rod_quad_pu240.name=四联钚240燃料棒 -item.rod_quad_schrabidium.name=四联Sa326异变铀金属燃料棒 -item.rod_quad_schrabidium_fuel.name=四联Sa326异变铀金属燃料棒 -item.rod_quad_schrabidium_fuel_depleted.name=四联枯竭Sa326异变铀金属燃料棒 -item.rod_quad_solinium.name=四联Sa327索林燃料棒 -item.rod_quad_th232.name=四联钍232燃料棒 -item.rod_quad_thorium_fuel.name=四联钍燃料棒 +item.rod_quad_polonium.name=四联钋棒 +item.rod_quad_pu238.name=四联钚-238燃料棒 +item.rod_quad_pu239.name=四联钚-239燃料棒 +item.rod_quad_pu240.name=四联钚-240燃料棒 +item.rod_quad_schrabidium.name=四联Sa326燃料棒 +item.rod_quad_schrabidium_fuel.name=核反应堆 四联Sa326燃料棒 +item.rod_quad_schrabidium_fuel_depleted.name=核反应堆 四联枯竭Sa326燃料棒 +item.rod_quad_solinium.name=四联Sa327燃料棒 +item.rod_quad_th232.name=四联钍-232燃料棒 +item.rod_quad_thorium_fuel.name=核反应堆 四联钍燃料棒 item.rod_quad_thorium_fuel_depleted.name=四联枯竭钍燃料棒 item.rod_quad_tritium.name=四联氚燃料棒 -item.rod_quad_u233.name=四联铀233燃料棒 -item.rod_quad_u235.name=四联铀235燃料棒 -item.rod_quad_u238.name=四联铀238燃料棒 +item.rod_quad_u233.name=四联铀-233燃料棒 +item.rod_quad_u235.name=四联铀-235燃料棒 +item.rod_quad_u238.name=四联铀-238燃料棒 item.rod_quad_uranium.name=四联铀棒 -item.rod_quad_uranium_fuel.name=四联铀燃料棒 +item.rod_quad_uranium_fuel.name=核反应堆 四联铀燃料棒 item.rod_quad_uranium_fuel_depleted.name=四联枯竭铀燃料棒 item.rod_quad_waste.name=四联核废料棒 item.rod_quad_water.name=四联燃料棒[水] item.rod_reiium.name=雷恩棒 -item.rod_schrabidium.name=Sa326异变铀金属燃料棒 -item.rod_schrabidium_fuel.name=Sa326异变铀金属燃料棒 -item.rod_schrabidium_fuel_depleted.name=枯竭Sa326异变铀金属燃料棒 -item.rod_solinium.name=Sa327索林燃料棒 -item.rod_th232.name=钍232燃料棒 +item.rod_schrabidium.name=Sa326燃料棒 +item.rod_schrabidium_fuel.name=Sa326燃料棒 +item.rod_schrabidium_fuel_depleted.name=核反应堆 枯竭Sa326燃料棒 +item.rod_solinium.name=Sa327燃料棒 +item.rod_th232.name=钍-232燃料棒 item.rod_thorium_fuel.name=钍燃料棒 -item.rod_thorium_fuel_depleted.name=枯竭钍燃料棒 +item.rod_thorium_fuel_depleted.name=核反应堆 枯竭钍燃料棒 item.rod_tritium.name=氚燃料棒 -item.rod_u233.name=铀233燃料棒 -item.rod_u235.name=铀235燃料棒 -item.rod_u238.name=铀238燃料棒 -item.rod_unobtainium.name=阿诺布汀棒 +item.rod_u233.name=铀-233燃料棒 +item.rod_u235.name=铀-235燃料棒 +item.rod_u238.name=铀-238燃料棒 +item.rod_unobtainium.name=难得素棒 item.rod_uranium.name=铀棒 -item.rod_uranium_fuel.name=铀燃料棒 -item.rod_uranium_fuel_depleted.name=枯竭铀燃料棒 +item.rod_uranium_fuel.name=核反应堆 铀燃料棒 +item.rod_uranium_fuel_depleted.name=核反应堆 枯竭铀燃料棒 item.rod_verticium.name=韦德赛棒 item.rod_waste.name=核废料棒 item.rod_water.name=燃料棒[水] item.rod_weidanium.name=魏丹棒 -item.rod_zirnox_empty.name=空的 ZIRNOX锆诺克斯反应堆燃料棒 -item.rod_zirnox_natural_uranium_fuel.name=天然铀 ZIRNOX锆诺克斯反应堆燃料棒 -item.rod_zirnox_uranium_fuel.name=铀 ZIRNOX锆诺克斯反应堆燃料棒 -item.rod_zirnox_th232.name=钍-232 ZIRNOX锆诺克斯反应堆增殖棒 -item.rod_zirnox_thorium_fuel.name=钍 ZIRNOX锆诺克斯反应堆燃料棒 -item.rod_zirnox_mox_fuel.name=MOX ZIRNOX锆诺克斯反应堆燃料棒 -item.rod_zirnox_plutonium_fuel.name=钚 ZIRNOX锆诺克斯反应堆燃料棒 -item.rod_zirnox_u233_fuel.name=铀-233 ZIRNOX锆诺克斯反应堆燃料棒 -item.rod_zirnox_u235_fuel.name=铀-235 ZIRNOX锆诺克斯反应堆燃料棒 -item.rod_zirnox_les_fuel.name=LES低浓缩度Sa-326 ZIRNOX锆诺克斯反应堆燃料棒 -item.rod_zirnox_lithium.name=锂 ZIRNOX锆诺克斯反应堆增殖棒 -item.rod_zirnox_tritium.name=氚 ZIRNOX锆诺克斯反应堆增殖棒 -item.rod_zirnox_zfb_mox.name=ZFB MOX ZIRNOX 锆诺克斯反应堆 -item.rod_zirnox_natural_uranium_fuel_depleted.name=衰竭天然铀 ZIRNOX 锆诺克斯反应堆燃料棒 -item.rod_zirnox_uranium_fuel_depleted.name=衰竭铀 ZIRNOX锆诺克斯反应堆燃料棒 -item.rod_zirnox_thorium_fuel_depleted.name=衰竭钍 ZIRNOX锆诺克斯反应堆燃料棒 -item.rod_zirnox_mox_fuel_depleted.name=衰竭MOX ZIRNOX锆诺克斯反应堆燃料棒 -item.rod_zirnox_plutonium_fuel_depleted.name=衰竭钚 ZIRNOX锆诺克斯反应堆燃料棒 -item.rod_zirnox_u233_fuel_depleted.name=衰竭铀-233 ZIRNOX锆诺克斯反应堆燃料棒 -item.rod_zirnox_u235_fuel_depleted.name=衰竭铀-235ZIRNOX锆诺克斯反应堆燃料棒 -item.rod_zirnox_les_fuel_depleted.name=衰竭LES低浓缩度Sa-326 ZIRNOX锆诺克斯反应堆燃料棒 -item.rod_zirnox_zfb_mox_depleted.name=衰竭 ZFB MOX ZIRNOX锆诺克斯反应堆燃料棒 +item.rod_zirnox_empty.name=空锆诺克斯燃料棒 +item.rod_zirnox_natural_uranium_fuel.name=锆诺克斯 天然铀燃料棒 +item.rod_zirnox_uranium_fuel.name=锆诺克斯 铀燃料棒 +item.rod_zirnox_th232.name=锆诺克斯 钍-232燃料棒 +item.rod_zirnox_thorium_fuel.name=锆诺克斯 钍燃料棒 +item.rod_zirnox_mox_fuel.name=锆诺克斯 MOX燃料棒 +item.rod_zirnox_plutonium_fuel.name=锆诺克斯 钚燃料棒 +item.rod_zirnox_u233_fuel.name=锆诺克斯 铀-233燃料棒 +item.rod_zirnox_u235_fuel.name=锆诺克斯 铀-235燃料棒 +item.rod_zirnox_les_fuel.name=锆诺克斯 LES低浓度Sa326燃料棒 +item.rod_zirnox_lithium.name=锆诺克斯 锂燃料棒 +item.rod_zirnox_tritium.name=锆诺克斯 氚燃料棒 +item.rod_zirnox_zfb_mox.name=锆诺克斯 ZFB MOX燃料棒 +item.rod_zirnox_natural_uranium_fuel_depleted.name=锆诺克斯 枯竭天然铀燃料棒 +item.rod_zirnox_uranium_fuel_depleted.name=锆诺克斯 枯竭铀燃料棒 +item.rod_zirnox_thorium_fuel_depleted.name=锆诺克斯 枯竭钍燃料棒 +item.rod_zirnox_mox_fuel_depleted.name=锆诺克斯 枯竭MOX燃料棒 +item.rod_zirnox_plutonium_fuel_depleted.name=锆诺克斯 枯竭钚燃料棒 +item.rod_zirnox_u233_fuel_depleted.name=锆诺克斯 枯竭铀-233燃料棒 +item.rod_zirnox_u235_fuel_depleted.name=锆诺克斯 枯竭铀-235燃料棒 +item.rod_zirnox_les_fuel_depleted.name=锆诺克斯 枯竭LES低浓度Sa326燃料棒 +item.rod_zirnox_zfb_mox_depleted.name=锆诺克斯 ZFB 枯竭MOX燃料棒 item.rotor_steel.name=大型钢转子 -item.rpa_boots.name=残存者动力装甲靴子 -item.rpa_helmet.name=残存者动力装甲头盔 -item.rpa_legs.name=残存者动力装甲护腿 -item.rpa_plate.name=残存者动力装甲胸甲 +item.rpa_boots.name=动力装甲 靴子 +item.rpa_helmet.name=动力装甲 头盔 +item.rpa_legs.name=动力护甲 护腿 +item.rpa_plate.name=动力装甲 胸甲 item.rtg_unit.name=放射性同位素单元 item.rubber_gloves.name=厚橡胶手套 item.rune_blank.name=空白催化剂基质 @@ -3751,9 +3710,9 @@ item.rune_thurisaz.name=添加剂催化剂基质 item.safety_fuse.name=安全保险丝 item.sat_base.name=卫星基座 item.sat_chip.name=卫星ID芯片 -item.sat_coord.name=卫星坐标指示器 -item.sat_designator.name=激光式卫星坐标指示器 -item.sat_foeq.name=PEAF-Mk.I 实验型核动力 FOEQ-杜纳探测器 +item.sat_coord.name=卫星指示器 +item.sat_designator.name=卫星激光指示器 +item.sat_foeq.name=实验型核能PEAF-Mk.I FOEQ Duna探测器 item.sat_gerald.name=Gerald建筑机器人 item.sat_head_laser.name=死光发射器 item.sat_head_mapper.name=高增益光学摄像头 @@ -3762,7 +3721,7 @@ item.sat_head_resonator.name=Xenium共振器 item.sat_head_scanner.name=M700测量扫描仪 item.sat_interface.name=卫星操作接口 item.sat_laser.name=轨道死光炮 -item.sat_lunar_miner.name=月球采矿船 +item.sat_lunar_miner.name=月球采矿飞船 item.sat_mapper.name=地表测绘卫星 item.sat_miner.name=小行星采矿飞船 item.sat_radar.name=雷达探测卫星 @@ -3770,24 +3729,24 @@ item.sat_resonator.name=X晶体共振卫星 item.sat_scanner.name=绘测和资源探测卫星 item.sawblade.name=锯片 item.schnitzel_vegan.name=“素”肉排 -item.schrabidium_axe.name=Sa326异变铀金属斧 -item.schrabidium_boots.name=Sa326异变铀金属靴子 -item.schrabidium_hammer.name=Sa326异变铀金属锤 -item.schrabidium_helmet.name=Sa326异变铀金属头盔 -item.schrabidium_hoe.name=Sa326异变铀金属锄 -item.schrabidium_legs.name=Sa326异变铀金属护腿 -item.schrabidium_pickaxe.name=Sa326异变铀金属镐 -item.schrabidium_plate.name=Sa326异变铀金属胸甲 -item.schrabidium_shovel.name=Sa326异变铀金属锹 -item.schrabidium_sword.name=Sa326异变铀金属剑 +item.schrabidium_axe.name=Sa326斧 +item.schrabidium_boots.name=Sa326靴子 +item.schrabidium_hammer.name=Sa326锤 +item.schrabidium_helmet.name=Sa326头盔 +item.schrabidium_hoe.name=Sa326锄 +item.schrabidium_legs.name=Sa326护腿 +item.schrabidium_pickaxe.name=Sa326镐 +item.schrabidium_plate.name=Sa326胸甲 +item.schrabidium_shovel.name=Sa326锹 +item.schrabidium_sword.name=Sa326剑 item.scrap.name=废料 item.scrap_nuclear.name=放射性废料 -item.scrap_oil.name=油渣 +item.scrap_oil.name=油性废料 item.scrap_plastic.name=塑料废料 item.scraps.name=铸造废料 item.screwdriver.name=螺丝刀 -item.screwdriver.desc=可以用来代替保险丝... -item.screwdriver_desh.name=德什制螺丝刀 +item.screwdriver.desc=可以用来代替保险丝…… +item.screwdriver_desh.name=Desh螺丝刀 item.scrumpy.name=一瓶烈性苹果酒 item.security_boots.name=防护靴子 item.security_helmet.name=防护头盔 @@ -3797,8 +3756,8 @@ item.seg_10.name=10号连接器 item.seg_15.name=15号连接器 item.seg_20.name=20号连接器 item.serum.name=血清 -item.servo_set.name=伺服马达组 -item.servo_set_desh.name=德什制伺服马达组 +item.servo_set.name=伺服装置 +item.servo_set_desh.name=Desh伺服装置 item.shackles.name=枷锁 item.shimmer_axe.name=闪耀斧 item.shimmer_axe_head.name=重型斧头 @@ -3808,26 +3767,26 @@ item.shimmer_sledge.name=闪耀锤 item.singularity.name=奇点 item.singularity_counter_resonant.name=可控反振谐奇点 item.singularity_micro.name=微型奇点 -item.singularity_spark.name=Spark闪闪奇点 +item.singularity_spark.name=Spark奇点 item.singularity_super_heated.name=超热共振奇点 item.siox.name=SiOX抗癌药物 -item.siox.desc=用石棉的力量来逆转胸膜间皮瘤!(以 毒 攻 毒) +item.siox.desc=使用石棉的力量逆转间皮瘤! item.siren_track.name=警报声轨 item.smashing_hammer.name=粉碎锤 item.solid_fuel.name=固体燃料 -item.solid_fuel_bf.name=固体BF野火燃料 -item.solid_fuel_presto.name=压缩固体燃料 -item.solid_fuel_presto_bf.name=压缩BF野火固体燃料 -item.solid_fuel_presto_triplet.name=增强压缩固体燃料 -item.solid_fuel_presto_triplet_bf.name=增强压缩BF野火固体燃料 -item.solinium_core.name=半稳定Sa327索林核心 -item.solinium_igniter.name=Sa327索林脉冲点火器 +item.solid_fuel_bf.name=固体燃料(野火) +item.solid_fuel_presto.name=Presto固体燃料 +item.solid_fuel_presto_bf.name=Presto固体燃料(野火) +item.solid_fuel_presto_triplet.name=增强型Presto固体燃料 +item.solid_fuel_presto_triplet_bf.name=增强型Presto固体燃料(野火) +item.solinium_core.name=半稳定Sa327核心 +item.solinium_igniter.name=Sa327脉冲点火器 item.solinium_kit.name=蔚蓝洗礼套件 -item.solinium_propellant.name=Sa327索林压缩装药 -item.sopsign.name=SOP标志战斧 +item.solinium_propellant.name=Sa327压缩装药 +item.sopsign.name=Sop标志战斧 item.spawn_duck.name=金蛋 item.spawn_ufo.name=火星入侵者飞船 -item.spawn_worm.name=世-界-毁-灭-者 O-TRON 头部 +item.spawn_worm.name=机械蠕虫 item.sphere_steel.name=钢球 item.spider_milk.name=一瓶蜘蛛奶 item.spongebob_macaroni.name=海绵宝宝通心粉 @@ -3835,10 +3794,10 @@ item.stamp_357.name=.357马格南锻模 item.stamp_44.name=.44马格南锻模 item.stamp_50.name=大口径锻模 item.stamp_9.name=小口径锻模 -item.stamp_desh_circuit.name=德什质电路板锻模 -item.stamp_desh_flat.name=德什锻模 -item.stamp_desh_plate.name=德什质板锻模 -item.stamp_desh_wire.name=德什质电线锻模 +item.stamp_desh_circuit.name=Desh电路板锻模 +item.stamp_desh_flat.name=Desh锻模 +item.stamp_desh_plate.name=Desh板锻模 +item.stamp_desh_wire.name=Desh电线锻模 item.stamp_iron_circuit.name=铁质电路板锻模 item.stamp_iron_flat.name=铁质锻模 item.stamp_iron_plate.name=铁质板锻模 @@ -3847,10 +3806,6 @@ item.stamp_obsidian_circuit.name=黑曜石电路板锻模 item.stamp_obsidian_flat.name=黑曜石锻模 item.stamp_obsidian_plate.name=黑曜石板锻模 item.stamp_obsidian_wire.name=黑曜石电线锻模 -item.stamp_schrabidium_circuit.name=Sa326异变铀金属电路板锻模 -item.stamp_schrabidium_flat.name=Sa326异变铀金属锻模 -item.stamp_schrabidium_plate.name=Sa326异变铀金属板锻模 -item.stamp_schrabidium_wire.name=Sa326异变铀金属电线锻模 item.stamp_steel_circuit.name=钢质电路板锻模 item.stamp_steel_flat.name=钢质锻模 item.stamp_steel_plate.name=钢质板锻模 @@ -3863,21 +3818,21 @@ item.stamp_titanium_circuit.name=钛质电路板锻模 item.stamp_titanium_flat.name=钛质锻模 item.stamp_titanium_plate.name=钛质板锻模 item.stamp_titanium_wire.name=钛质电线锻模 -item.starmetal_axe.name=星辉金属斧 -item.starmetal_boots.name=星辉金属靴子 -item.starmetal_helmet.name=星辉金属头盔 -item.starmetal_hoe.name=星辉金属锄 -item.starmetal_legs.name=星辉金属护腿 -item.starmetal_pickaxe.name=星辉金属镐 -item.starmetal_plate.name=星辉金属胸甲 -item.starmetal_shovel.name=星辉金属铲 -item.starmetal_sword.name=星辉金属剑 +item.starmetal_axe.name=星辉斧 +item.starmetal_boots.name=星辉靴子 +item.starmetal_helmet.name=星辉头盔 +item.starmetal_hoe.name=星辉锄 +item.starmetal_legs.name=星辉护腿 +item.starmetal_pickaxe.name=星辉镐 +item.starmetal_plate.name=星辉胸甲 +item.starmetal_shovel.name=星辉锹 +item.starmetal_sword.name=星辉剑 item.static_sandwich.name=TV三明治 -item.stealth_boy.name=隐形装置 -item.steamsuit_boots.name=蒸汽动力装甲靴子 -item.steamsuit_helmet.name=蒸汽动力装甲呼吸器头盔 -item.steamsuit_legs.name=蒸汽动力装甲护腿 -item.steamsuit_plate.name=蒸汽动力装甲胸甲 +item.stealth_boy.name=隐形小子 +item.steamsuit_boots.name=蒸汽动力靴子 +item.steamsuit_helmet.name=蒸汽动力呼吸器头盔 +item.steamsuit_legs.name=蒸汽动力护腿 +item.steamsuit_plate.name=蒸汽动力胸甲 item.steel_axe.name=钢斧 item.steel_boots.name=钢靴子 item.steel_helmet.name=钢头盔 @@ -3887,10 +3842,11 @@ item.steel_pickaxe.name=钢镐 item.steel_plate.name=钢胸甲 item.steel_shovel.name=钢锹 item.steel_sword.name=钢剑 -item.stick_c4.name=炸药C-4棒 +item.stick_c4.name=C-4炸药棒 item.stick_dynamite.name=炸药棒 +item.stick_dynamite_fishing.name=捕鱼炸药棒 item.stick_semtex.name=塞姆汀塑胶炸药棒 -item.stick_tnt.name=TNT炸药棒 +item.stick_tnt.name=TNT棒 item.stopsign.name=停车标志战斧 item.sulfur.name=硫粉 item.survey_scanner.name=勘测扫描仪 @@ -3902,10 +3858,9 @@ item.syringe_metal_medx.name=Med-X抗痛宁 item.syringe_metal_psycho.name=Psycho"捷特" item.syringe_metal_stimpak.name=治疗针 item.syringe_metal_super.name=超级治疗针 -item.syringe_mkunicorn.name=MKUNICORN独角兽 +item.syringe_mkunicorn.name=独角兽 item.syringe_poison.name=毒针 item.syringe_taint.name=污染水注射液 - item.t45_boots.name=T45动力装甲 靴子 item.t45_helmet.name=T45动力装甲 头盔 item.t45_kit.name=T45动力装甲套装 @@ -3924,7 +3879,7 @@ item.tank_waste_8.name=泥浆容器 item.telepad.name=传送部件 item.tem_flakes.name=Tem薄片 item.template_folder.name=机器模板文件夹 -item.template_folder.desc=装配机模板: 纸 + 染料$流体识别码: 铁板 + 染料$锻模: 空白锻模$警报声轨: 绝缘体 + 钢板 +item.template_folder.desc=机器模板:纸张+染料$流体识别码:铁板+染料$锻模:空白锻模 $警报声轨:绝缘体+钢板 item.test_nuke_igniter.name=点火器 item.test_nuke_propellant.name=推进剂 item.test_nuke_tier1_bullet.name=铀235弹头[1级] @@ -3939,7 +3894,7 @@ item.thermo_unit_endo.name=吸热装置 item.thermo_unit_exo.name=放热装置 item.thruster_large.name=大型推进器 item.thruster_medium.name=中型推进器 -item.thruster_nuclear.name=LV-N核动力火箭发动机 +item.thruster_nuclear.name=LV-N核能火箭发动机 item.thruster_small.name=小型推进器 item.titanium_axe.name=钛斧 item.titanium_boots.name=钛靴子 @@ -3952,9 +3907,10 @@ item.titanium_plate.name=钛胸甲 item.titanium_shovel.name=钛锹 item.titanium_sword.name=钛剑 item.toothpicks.name=牙签 +item.train.cargo_tram.name=平板载货电车 item.trinitite.name=玻璃石 item.tritium_deuterium_cake.name=氚氘饼 -item.tritium_deuterium_cake.desc=不是真正的饼, $而是很好的通用聚变燃料! +item.tritium_deuterium_cake.desc=不是真正的蛋糕,而是很棒的$聚变燃料! item.tsar_core.name=沙皇炸弹核心 item.tsar_kit.name=沙皇炸弹 套件 item.turbine_titanium.name=钛汽轮转子 @@ -3973,7 +3929,7 @@ item.turret_tau_ammo.name=陶子炮塔铀弹药 item.twinkie.name=小蛋糕 item.ullapool_caber.name=阿勒浦长木杆 item.undefined.name=形态未定义物质 -item.upgrade_5g.name=5G辐射升级 +item.upgrade_5g.name=5G辐射发射器升级 item.upgrade_afterburn_1.name=一级粉色机器升级 item.upgrade_afterburn_2.name=二级粉色机器升级 item.upgrade_afterburn_3.name=三级粉色机器升级 @@ -3982,9 +3938,9 @@ item.upgrade_crystallizer.name=采矿激光升级-自动结晶 item.upgrade_effect_1.name=一级绿色机器升级 item.upgrade_effect_2.name=二级绿色机器升级 item.upgrade_effect_3.name=三级绿色机器升级 -item.upgrade_ejector_1.name=一级弹出速度升级 Mk.I -item.upgrade_ejector_2.name=二级弹射速度升级 Mk.II -item.upgrade_ejector_3.name=三级弹射速度升级 Mk.III +item.upgrade_ejector_1.name=一级弹射速度升级 +item.upgrade_ejector_2.name=二级弹射速度升级 +item.upgrade_ejector_3.name=三级弹射速度升级 item.upgrade_fortune_1.name=一级紫色机器升级 item.upgrade_fortune_2.name=二级紫色机器升级 item.upgrade_fortune_3.name=三级紫色机器升级 @@ -4004,10 +3960,10 @@ item.upgrade_smelter.name=采矿激光升级-自动熔炼 item.upgrade_speed_1.name=一级红色机器升级 item.upgrade_speed_2.name=二级红色机器升级 item.upgrade_speed_3.name=三级红色机器升级 -item.upgrade_stack_1.name=一级单次弹出堆栈量升级 -item.upgrade_stack_2.name=二级单次弹出堆栈量升级 -item.upgrade_stack_3.name=三级单次弹出堆栈量升级 -item.upgrade_template.name=空白机器升级模板 +item.upgrade_stack_1.name=一级堆栈弹出升级 +item.upgrade_stack_2.name=二级堆栈弹出升级 +item.upgrade_stack_3.name=三级堆栈弹出升级 +item.upgrade_template.name=机器升级模板 item.v1.name=V1 item.volcanic_pickaxe.name=熔岩镐 item.wand_d.name=调试魔杖 @@ -4026,53 +3982,53 @@ item.warhead_incendiary_large.name=大型燃烧弹头 item.warhead_incendiary_medium.name=中型燃烧弹头 item.warhead_incendiary_small.name=小型燃烧弹头 item.warhead_mirv.name=热核弹头 -item.warhead_mirvlet.name=分导式多弹头核弹 +item.warhead_mirvlet.name=MIRV item.warhead_nuclear.name=核弹头 item.warhead_thermo_endo.name=吸热弹头 item.warhead_thermo_exo.name=放热弹头 -item.warhead_volcano.name=地壳破坏者弹头 +item.warhead_volcano.name=构造弹头 item.waste_mox.name=枯竭MOX燃料 item.waste_natural_uranium.name=枯竭天然铀燃料 -item.waste_plate_mox.name=枯竭MOX板状燃料元件 -item.waste_plate_pu238be.name=枯竭钚238-铍板状燃料元件 -item.waste_plate_pu239.name=枯竭高浓缩度钚-239板状燃料元件 -item.waste_plate_ra226be.name=枯竭镭226-铍板状燃料元件 -item.waste_plate_sa326.name=枯竭高浓缩度Sa326板状燃料元件 -item.waste_plate_u233.name=枯竭高浓缩度铀-233板状燃料元件 -item.waste_plate_u235.name=枯竭高浓缩度铀-235板状燃料元件 +item.waste_plate_mox.name=枯竭MOX 板状燃料 +item.waste_plate_pu238be.name=枯竭钚238-铍 板状燃料 +item.waste_plate_pu239.name=枯竭高浓度钚-239 板状燃料 +item.waste_plate_ra226be.name=枯竭镭226-铍 板状燃料 +item.waste_plate_sa326.name=枯竭高浓度Sa326 板状燃料 +item.waste_plate_u233.name=枯竭高浓度铀-233 板状燃料 +item.waste_plate_u235.name=枯竭高浓度铀-235 板状燃料 item.waste_plutonium.name=枯竭钚燃料 -item.waste_schrabidium.name=枯竭Sa326异变铀金属燃料 +item.waste_schrabidium.name=枯竭Sa326燃料 item.waste_thorium.name=枯竭钍燃料 item.waste_u235.name=枯竭铀-235燃料 item.waste_u233.name=枯竭铀-233燃料 item.waste_uranium.name=枯竭铀燃料 -item.waste_zfb_mox.name=枯竭ZFB MOX燃料 -item.watch.name=破怀表 -item.watch.desc=一个蓝色小怀表.$它的玻璃上有一些裂缝,$还有一些玻璃碎片不见了.$它的指针停在了 2:34. -item.watz_pellet.boron.name=硼吸收剂靶丸 -item.watz_pellet.du.name=铀吸收剂靶丸 -item.watz_pellet.hes.name=HES高浓缩度Sa-326 Watz瓦茨电厂靶丸 -item.watz_pellet.lead.name=铅吸收剂靶丸 -item.watz_pellet.les.name=LES低浓缩度Sa-326 Watz瓦茨电厂靶丸 -item.watz_pellet.mes.name=MES中浓缩度Sa-326 Watz瓦茨电厂靶丸 -item.watz_pellet.mep.name=MEP中浓缩度钚-239 Watz瓦茨电厂靶丸 -item.watz_pellet.meu.name=MEU中浓缩度铀-235 Watz瓦茨电厂靶丸 -item.watz_pellet.nqd.name=浓缩硅岩金属 Watz瓦茨电厂靶丸 -item.watz_pellet.nqr.name=硅岩金属 Watz瓦茨电厂靶丸 -item.watz_pellet.hen.name=HEN高浓缩度镎-237 Watz瓦茨电厂靶丸 -item.watz_pellet.schrabidium.name=Sa326异变铀金属 Watz瓦茨电厂靶丸 -item.watz_pellet_depleted.boron.name=硼吸收剂靶丸 (衰竭) -item.watz_pellet_depleted.du.name=铀吸收剂靶丸 (衰竭) -item.watz_pellet_depleted.hes.name=HES高浓缩度Sa-326 Watz瓦茨电厂靶丸 (衰竭) -item.watz_pellet_depleted.lead.name=铅吸收剂靶丸 (衰竭) -item.watz_pellet_depleted.les.name=LES低浓缩度Sa-326 Watz瓦茨电厂靶丸 (衰竭) -item.watz_pellet_depleted.mes.name=MES中浓缩度Sa-326 Watz瓦茨电厂靶丸 (衰竭) -item.watz_pellet_depleted.mep.name=MEP中浓缩度钚-239 Watz瓦茨电厂靶丸 (衰竭) -item.watz_pellet_depleted.meu.name=MEU中浓缩度铀-235 Watz瓦茨电厂靶丸 (衰竭) -item.watz_pellet_depleted.nqd.name=浓缩硅岩金属 Watz瓦茨电厂靶丸 (衰竭) -item.watz_pellet_depleted.nqr.name=硅岩金属 Watz瓦茨电厂靶丸 (衰竭) -item.watz_pellet_depleted.hen.name=HEN高浓缩度镎-237 Watz瓦茨电厂靶丸 (衰竭) -item.watz_pellet_depleted.schrabidium.name=Sa326异变铀金属 Watz瓦茨电厂靶丸 (衰竭) +item.waste_zfb_mox.name=枯竭的ZFB MOX燃料 +item.watch.name=破旧怀表 +item.watch.desc=一块蓝色的小怀表$玻璃上有一些裂缝,还有一些碎片不见了$指针定格在了2点34分。 +item.watz_pellet.boron.name=硼吸收靶丸 +item.watz_pellet.du.name=贫铀吸收靶丸 +item.watz_pellet.hes.name=HES Watz靶丸 +item.watz_pellet.lead.name=铅吸收靶丸 +item.watz_pellet.les.name=LES Watz靶丸 +item.watz_pellet.mes.name=MES Watz靶丸 +item.watz_pellet.mep.name=MEP Watz靶丸 +item.watz_pellet.meu.name=MEU Watz靶丸 +item.watz_pellet.nqd.name=富集硅岩金属 Watz靶丸 +item.watz_pellet.nqr.name=硅岩金属 Watz靶丸 +item.watz_pellet.hen.name=HEN Watz靶丸 +item.watz_pellet.schrabidium.name=Sa326 Watz靶丸 +item.watz_pellet_depleted.boron.name=硼吸收靶丸(枯竭) +item.watz_pellet_depleted.du.name=贫铀吸收靶丸(枯竭) +item.watz_pellet_depleted.hes.name=HES Watz靶丸(枯竭) +item.watz_pellet_depleted.lead.name=铅吸收靶丸(枯竭) +item.watz_pellet_depleted.les.name=LES Watz靶丸(枯竭) +item.watz_pellet_depleted.mes.name=MES Watz靶丸(枯竭) +item.watz_pellet_depleted.mep.name=MEP Watz靶丸(枯竭) +item.watz_pellet_depleted.meu.name=MEU Watz靶丸(枯竭) +item.watz_pellet_depleted.nqd.name=富集硅岩金属 Watz靶丸(枯竭) +item.watz_pellet_depleted.nqr.name=硅岩金属 Watz靶丸(枯竭) +item.watz_pellet_depleted.hen.name=HEN Watz靶丸(枯竭) +item.watz_pellet_depleted.schrabidium.name=Sa326 Watz靶丸(枯竭) item.weapon_bat.name=板球棒 item.weapon_bat_nail.name=板上钉钉 item.weapon_golf_club.name=黑手党快乐杆 @@ -4081,119 +4037,112 @@ item.weapon_pipe_rusty.name=姿态调节器 item.weapon_saw.name=肢解骨锯 item.weaponized_starblaster_cell.name=§c星际爆能电池§r item.wd40.name=VT-40 -item.wild_p.name=狂野飞马干威士忌 -item.wings_limp.name=轻盈的翅膀 -item.wings_murk.name=强化的翅膀 +item.wild_p.name=野生珀伽索斯干威士忌 +item.wings_limp.name=无力之翼 +item.wings_murk.name=暗黑之翼 item.wire_advanced_alloy.name=超导体 item.wire_aluminium.name=铝线 item.wire_copper.name=铜线 item.wire_gold.name=金线 item.wire_magnetized_tungsten.name=4000K高温超导体 item.wire_red_copper.name=紫铜线 -item.wire_schrabidium.name=Sa326异变铀金属线 +item.wire_schrabidium.name=Sa326线 item.wire_tungsten.name=钨线 item.wiring_red_copper.name=电缆卷 item.wood_gavel.name=木槌 item.wrench.name=管道扳手 -item.wrench_archineer.name=Archineer的扳手 +item.wrench_archineer.name=Archineer扳手 item.wrench_flipped.name=刺刀扳手 -item.xanax.name=NAXA 抗Ϝ迪伽马辐射药物 -item.xanax.desc=移除500mDRX的Ϝ迪伽马辐射 +item.xanax.name=NAXA 抗迪伽马药物 +item.xanax.desc=移除500mDRX迪伽马辐射 item.zirconium_legs.name=锆质护腿 - -itemGroup.tabTest=HBM的核科技mod测试项[S166, Bismarck, nukesteve联合汉化] -itemGroup.tabParts=核技术资源和零件 -itemGroup.tabControl=核技术机器项目和燃料 -itemGroup.tabTemplate=核技术模板 -itemGroup.tabBlocks=核技术矿石和方块 -itemGroup.tabMachine=核技术机器 -itemGroup.tabNuke=核技术炸弹 -itemGroup.tabMissile=核技术导弹和卫星 -itemGroup.tabWeapon=核技术武器和炮塔 -itemGroup.tabConsumable=核技术食物和装备 - +itemGroup.tabBlocks=HBM 矿石和方块 +itemGroup.tabConsumable=HBM 食物和装备 +itemGroup.tabControl=HBM 机器项目和燃料 +itemGroup.tabMachine=HBM 机器 +itemGroup.tabMissile=HBM 导弹和卫星 +itemGroup.tabNuke=HBM 炸弹 +itemGroup.tabParts=HBM 资源和零件 +itemGroup.tabTemplate=HBM 模板 +itemGroup.tabTest=HBM的核科技mod测试项[S166、Bismarck、nukesteve联合汉化] +itemGroup.tabWeapon=HBM 武器和炮塔 potion.hbm_bang=! ! ! -potion.hbm_death=阿斯托尔福化突变 +potion.hbm_death=重度突变 potion.hbm_lead=铅中毒 -potion.hbm_mutation=腐化变异 +potion.hbm_mutation=变异 potion.hbm_phosphorus=磷烧伤 -potion.hbm_potionsickness=药物上瘾 -potion.hbm_radaway=辐射宁 +potion.hbm_potionsickness=药水病 +potion.hbm_radaway=消辐宁 potion.hbm_radiation=辐射 -potion.hbm_radx=辐射抗性 -potion.hbm_stability=原子稳定性 -potion.hbm_taint=腐化沾染 +potion.hbm_radx=抗辐射 +potion.hbm_stability=稳定 +potion.hbm_taint=污染 potion.hbm_telekinesis=! ! ! - radar.detectMissiles=探测导弹 radar.detectPlayers=探测玩家 radar.redMode=红石控制模式$开启: 基于导弹距离输出红石信号$关闭: 基于导弹级别输出红石信号 -radar.smartMode=智能模式$输出红石信号(忽略上升的导弹) - +radar.smartMode=智能模式$有红石信号时忽略上升段的导弹 rbmk.heat=柱体温度: %s rbmk.boiler.water=供水速率: %s / %s rbmk.boiler.steam=蒸汽产生速率: %s / %s rbmk.boiler.type=蒸汽压缩等级: %s -rbmk.console.assign=将所选柱分配到屏幕#%s -rbmk.console.none=无 -rbmk.console.col_temp=监测柱体表面平均温度 -rbmk.console.rod_extraction=监测控制棒平均抽出量 -rbmk.console.fuel_depletion=监测核燃料平均消耗 -rbmk.console.fuel_poison=监测氙堆积平均程度 -rbmk.console.fuel_temp=监测燃料棒核心平均温度 +rbmk.console.assign=将选定列分配给屏幕#%s +rbmk.console.none=Off +rbmk.console.col_temp=监测平均柱温 +rbmk.console.rod_extraction=监控平均控制棒抽出量 +rbmk.console.fuel_depletion=监测平均燃料消耗 +rbmk.console.fuel_poison=监测平均氙中毒程度 +rbmk.console.fuel_temp=监测平均燃料温度 rbmk.control.level=%s rbmk.control.red=§c红色组 rbmk.control.yellow=§e黄色组 rbmk.control.green=§a绿色组 rbmk.control.blue=§1蓝色组 rbmk.control.purple=§5紫色组 -rbmk.moderated=缓冲 +rbmk.moderated=慢化剂 rbmk.rod.depletion=燃料消耗: %s rbmk.rod.xenon=氙元素堆积程度: %s rbmk.rod.coreTemp=核心温度: %s rbmk.rod.skinTemp=表面温度: %s / %s -rbmk.screen.core=核心温度: %s +rbmk.screen.core=核心:%s rbmk.screen.depletion=消耗: %s -rbmk.screen.rod=控制棒抽出量: %s -rbmk.screen.temp=表面温度: %s -rbmk.screen.xenon=氙堆积: %s - -shape.billet=坯料 -shape.blade=扇片 -shape.blades=粉碎机刀片 -shape.block=方块 -shape.dust=粉 -shape.dusttiny=小撮粉 -shape.hull_big=大型壳 -shape.hull_small=小型壳 +rbmk.screen.rod=控制:%s +rbmk.screen.temp=温度:%s +rbmk.screen.xenon=氙:%s +shape.billet=钢坯 +shape.blade=刀身 +shape.blades=切碎机刀片 +shape.block=块 +shape.dust=粉末 +shape.dusttiny=小搓粉末 +shape.hull_big=大型外壳 +shape.hull_small=小型外壳 shape.ingot=锭 shape.nugget=粒 -shape.quantum=量 +shape.quantum=量子 shape.quart=四分之一块 -shape.plate=板 +shape.plate=板材 shape.plateTriple=铸造板 -shape.stamp=锻模 -shape.wire=线 - -soundCategory.ntmMachines=NTM核科技机器 - +shape.stamp=锻压模具 +shape.wire=线材 +soundCategory.ntmMachines=NTM机器 tile.absorber.name=辐射吸收器 tile.absorber_green.name=高级辐射吸收器 tile.absorber_pink.name=精英辐射吸收器 tile.absorber_red.name=增强型辐射吸收器 tile.acid_block.name=酸 -tile.ams_base.name=AMS基座 [装饰] -tile.ams_emitter.name=AMS发射极 [装饰] -tile.ams_limiter.name=AMS稳能器 [装饰] -tile.ancient_scrap.name=远古残骸 +tile.ams_base.name=AMS基座 [开发中] +tile.ams_emitter.name=AMS发射极 [开发中] +tile.ams_limiter.name=AMS稳能器 [开发中] +tile.ancient_scrap.name=古代废金属 tile.anvil_bismuth.name=铋砧 tile.anvil_dnt.name=双聚中子态素砧 -tile.anvil_ferrouranium.name=铀-铁合金砧 +tile.anvil_ferrouranium.name=铀铁合金砧 tile.anvil_iron.name=铁砧 tile.anvil_lead.name=铅砧 tile.anvil_meteorite.name=陨石砧 tile.anvil_murky.name=暗黑砧 -tile.anvil_osmiridium.name=铱锇砧 +tile.anvil_osmiridium.name=铱锇合金砧 tile.anvil_schrabidate.name=Sa-铁合金砧 tile.anvil_starmetal.name=星辉金属砧 tile.anvil_steel.name=钢砧 @@ -4209,7 +4158,7 @@ tile.barbed_wire_wither.name=凋零铁丝网 tile.barrel_antimatter.name=磁约束反物质容器 tile.barrel_corroded.name=被腐蚀的桶 tile.barrel_iron.name=铁桶 -tile.barrel_plastic.name=安全桶™ +tile.barrel_plastic.name=安全桶 tile.barrel_steel.name=钢桶 tile.barrel_tcalloy.name=锝-钢合金桶 tile.barricade.name=沙袋 @@ -4217,11 +4166,11 @@ tile.basalt.name=玄武岩 tile.basalt_asbestos.name=富含石棉的玄武岩 tile.basalt_brick.name=玄武岩砖 tile.basalt_fluorite.name=富含氟石的玄武岩 -tile.basalt_gem.name=富含晶石的玄武岩 -tile.basalt_polished.name=磨制玄武岩 +tile.basalt_gem.name=富含宝石的玄武岩 +tile.basalt_polished.name=抛光玄武岩 tile.basalt_smooth.name=平滑玄武岩 -tile.basalt_sulfur.name=富硫玄武岩 -tile.basalt_tiles.name=玄武岩瓦 +tile.basalt_sulfur.name=富含硫的玄武岩 +tile.basalt_tiles.name=玄武岩砖 tile.blast_door.name=防爆闸门 tile.block_actinium.name=锕块 tile.block_advanced_alloy.name=高级合金块 @@ -4232,45 +4181,47 @@ tile.block_bakelite.name=电木块 tile.block_beryllium.name=铍块 tile.block_bismuth.name=铋块 tile.block_boron.name=硼块 -tile.block_c4.name=C-4炸药块 -tile.block_cap_fritz.name=Fritz弗里茨可乐瓶盖压缩块 -tile.block_cap_korl.name=Korl库尔勒瓶盖压缩块 -tile.block_cap_nuka.name=核子可乐瓶盖压缩块 -tile.block_cap_quantum.name=樱桃味量子核子可乐瓶盖压缩块 -tile.block_cap_rad.name=辐射S~闪闪可乐瓶盖压缩块 -tile.block_cap_sparkle.name=S~闪闪可乐瓶盖压缩块 -tile.block_cap_star.name=夕阳沙士星星瓶盖压缩块 -tile.block_cap_sunset.name=夕阳沙士瓶盖压缩块 +tile.block_c4.name=C-4块 +tile.block_cadmium.name=镉块 +tile.block_cap_fritz.name=弗里茨瓶盖方块 +tile.block_cap_korl.name=Korl瓶盖方块 +tile.block_cap_nuka.name=核子可乐瓶盖方块 +tile.block_cap_quantum.name=樱桃味核子可乐瓶盖方块 +tile.block_cap_rad.name=辐射 S~核子可乐瓶盖方块 +tile.block_cap_sparkle.name=核子可乐瓶盖方块 +tile.block_cap_star.name=夕阳沙士星星瓶盖方块 +tile.block_cap_sunset.name=夕阳沙士瓶盖方块 +tile.block_cdalloy.name=镉钢块 tile.block_cobalt.name=钴块 -tile.block_coke.coal.name=焦煤块 -tile.block_coke.lignite.name=褐焦煤块 -tile.block_coke.petroleum.name=石油焦块 -tile.block_coltan.name=钶钽铁块 +tile.block_coke.coal.name=煤焦炭块 +tile.block_coke.lignite.name=褐煤焦炭块 +tile.block_coke.petroleum.name=石油焦炭块 +tile.block_coltan.name=钽块 tile.block_combine_steel.name=CMB钢块 tile.block_copper.name=铜块 tile.block_corium.name=熔融堆芯冷凝物 -tile.block_corium_cobble.name=疏松熔融堆芯冷凝物 +tile.block_corium_cobble.name= 熔融物凝固石 tile.block_daffergon.name=达夫贡块 -tile.block_desh.name=德什块 +tile.block_desh.name=Desh块 tile.block_dineutronium.name=双聚中子态素块 tile.block_dura_steel.name=强化高速钢块 tile.block_electrical_scrap.name=电子废料块 -tile.block_euphemium.name=Ep元素块 -tile.block_euphemium_cluster.name=Ep元素刻蚀Sa326异变铀金属团 +tile.block_euphemium.name=Ep块 +tile.block_euphemium_cluster.name=Ep刻蚀Sa326团 tile.block_fallout.name=辐射尘块 tile.block_fiberglass.name=玻璃纤维卷 tile.block_fluorite.name=氟石块 tile.block_foam.name=泡沫 tile.block_insulator.name=绝缘卷 tile.block_graphite.name=石墨块 -tile.block_graphite_detector.name=中子探测器石墨块 -tile.block_graphite_drilled.name=钻孔石墨块 -tile.block_graphite_fuel.name=塞进了铀棒的石墨块 -tile.block_graphite_lithium.name=塞进了锂燃料棒的石墨块 -tile.block_graphite_plutonium.name=塞进了铀棒(已增殖)的石墨块 -tile.block_graphite_rod.name=塞进了控制棒的石墨块 -tile.block_graphite_source.name=塞进了中子源棒的石墨块 -tile.block_graphite_tritium.name=塞进了锂燃料棒(已增殖)的石墨块 +tile.block_graphite_detector.name=反应堆中子探测棒 +tile.block_graphite_drilled.name=钻孔石墨 +tile.block_graphite_fuel.name=反应堆燃料 +tile.block_graphite_lithium.name=反应堆锂燃料 +tile.block_graphite_plutonium.name=反应堆燃料(增殖) +tile.block_graphite_rod.name=反应堆控制棒 +tile.block_graphite_source.name=反应堆中子源 +tile.block_graphite_tritium.name=反应堆锂燃料(增殖) tile.block_lead.name=铅块 tile.block_lanthanium.name=镧块 tile.block_lithium.name=锂块 @@ -4283,45 +4234,46 @@ tile.block_meteor_treasure.name=宝藏陨石块 tile.block_mox_fuel.name=MOX燃料块 tile.block_neptunium.name=镎块 tile.block_niter.name=硝石块 -tile.block_niter_reinforced.name=加固硝石块 +tile.block_niter_reinforced.name=硝石加固块 tile.block_niobium.name=铌块 tile.block_plutonium.name=钚块 tile.block_plutonium_fuel.name=钚燃料块 -tile.block_polonium.name=钋-210块 +tile.block_polonium.name=钋块 tile.block_polymer.name=聚合物块 tile.block_pu_mix.name=反应堆级钚块 -tile.block_pu238.name=钚238块 -tile.block_pu239.name=钚239块 -tile.block_pu240.name=钚240块 +tile.block_pu238.name=钚-238块 +tile.block_pu239.name=钚-239块 +tile.block_pu240.name=钚-240块 tile.block_ra226.name=镭-226块 tile.block_red_copper.name=紫铜块 tile.block_red_phosphorus.name=红磷块 tile.block_reiium.name=雷恩块 tile.block_rubber.name=橡胶块 -tile.block_schrabidate.name=Sa326元素酸化铁块 -tile.block_schrabidium.name=Sa326异变铀金属块 -tile.block_schrabidium_cluster.name=Sa326异变铀金属团 -tile.block_schrabidium_fuel.name=Sa326异变铀金属燃料块 -tile.block_schraranium.name=低丰度Sa326异变铀金属块 +tile.block_schrabidate.name=Sa酸铁块 +tile.block_schrabidium.name=Sa326块 +tile.block_schrabidium_cluster.name=Sa326团 +tile.block_schrabidium_fuel.name=Sa326燃料块 +tile.block_schraranium.name=低丰度Sa326块 tile.block_scrap.name=废品块 -tile.block_semtex.name=塞姆汀塑胶炸药块 -tile.block_slag.name=炉渣块 -tile.block_smore.name=S'more饼干块 -tile.block_solinium.name=Sa327索林块 -tile.block_starmetal.name=星辉金属块 +tile.block_semtex.name=塞姆汀块 +tile.block_slag.name=矿渣块 +tile.block_smore.name=S'more块 +tile.block_solinium.name=Sa327块 +tile.block_starmetal.name=星辉块 tile.block_steel.name=钢块 tile.block_sulfur.name=硫磺块 tile.block_tantalium.name=钽块 +tile.block_tcalloy.name=锝钢块 tile.block_thorium.name=钍块 tile.block_thorium_fuel.name=钍燃料块 tile.block_titanium.name=钛块 tile.block_trinitite.name=玻璃石块 tile.block_tritium.name=氚单元块 tile.block_tungsten.name=钨块 -tile.block_u233.name=铀233块 -tile.block_u235.name=铀U235块 -tile.block_u238.name=铀U238块 -tile.block_unobtainium.name=阿诺布汀块 +tile.block_u233.name=铀-233块 +tile.block_u235.name=铀-235块 +tile.block_u238.name=铀-238块 +tile.block_unobtainium.name=难得素块 tile.block_uranium.name=铀块 tile.block_uranium_fuel.name=铀燃料块 tile.block_verticium.name=韦德赛块 @@ -4333,7 +4285,7 @@ tile.block_white_phosphorus.name=白磷块 tile.block_yellowcake.name=黄饼块 tile.block_zirconium.name=锆块 tile.boat.name=船 -tile.bobblehead.name=Bob的摇头娃娃 +tile.bobblehead.name=Bob的魔法娃娃 tile.bomb_multi.name=多功能炸弹 tile.bomber.name=坠毁轰炸机 tile.book_guide.name=HBM的核科技mod手册[遗留] @@ -4341,28 +4293,28 @@ tile.boxcar.name=车厢 tile.brick_asbestos.name=石棉砖块 tile.brick_asbestos_stairs.name=石棉砖楼梯 tile.brick_compound.name=复合网格砖块 -tile.brick_compound_stairs.name=复合网格砖楼梯 +tile.brick_compound_stairs.name=复合网格楼梯 tile.brick_concrete.name=混凝土砖块 tile.brick_concrete_stairs.name=混凝土砖楼梯 -tile.brick_concrete_broken.name=破混凝土砖块 -tile.brick_concrete_broken_stairs.name=破混凝土砖楼梯 -tile.brick_concrete_cracked.name=裂混凝土砖块 -tile.brick_concrete_cracked_stairs.name=裂混凝土砖楼梯 -tile.brick_concrete_marked.name=标记过的混凝土砖块 +tile.brick_concrete_broken.name=破碎混凝土砖块 +tile.brick_concrete_broken_stairs.name=破碎的混凝土砖楼梯 +tile.brick_concrete_cracked.name=开裂混凝土砖块 +tile.brick_concrete_cracked_stairs.name=开裂混凝土砖楼梯 +tile.brick_concrete_marked.name=标记混凝土砖 tile.brick_concrete_mossy.name=苔混凝土砖块 -tile.brick_concrete_mossy_stairs.name=苔混凝土砖楼梯 -tile.brick_ducrete.name=贫铀高密度混凝土砖块 -tile.brick_ducrete_stairs.name=贫铀高密度混凝土砖楼梯 -tile.brick_dungeon.name=硒铜砖块 -tile.brick_dungeon_circle.name=硒铜圈 +tile.brick_concrete_mossy_stairs.name=苔藓混凝土砖楼梯 +tile.brick_ducrete.name=高密度贫铀混凝土砖块 +tile.brick_ducrete_stairs.name=高密度贫铀混凝土砖楼梯 +tile.brick_dungeon.name=硒铜砖 +tile.brick_dungeon_circle.name=圆环硒铜块 tile.brick_dungeon_flat.name=硒铜块 -tile.brick_dungeon_tile.name=硒铜台阶 -tile.brick_fire.name=耐火砖 +tile.brick_dungeon_tile.name=硒铜瓦 +tile.brick_fire.name=耐火砖块 tile.brick_fire_stairs.name=耐火砖楼梯 tile.brick_jungle.name=硫砷钢砖块 -tile.brick_jungle_circle.name=机械师留下的圆圈 +tile.brick_jungle_circle.name=机械师之环 tile.brick_jungle_cracked.name=开裂硫砷钢砖块 -tile.brick_jungle_fragile.name=易碎的硫砷钢砖块 +tile.brick_jungle_fragile.name=粉碎硫砷钢砖块 tile.brick_jungle_glyph.name=硫砷钢石雕砖块 tile.brick_jungle_lava.name=岩浆硫砷钢砖块 tile.brick_jungle_mystic.name=奥术硫砷钢砖块 @@ -4372,26 +4324,26 @@ tile.brick_light.name=轻质砖块 tile.brick_light_stairs.name=轻质砖楼梯 tile.brick_obsidian.name=黑曜石砖块 tile.brick_obsidian_stairs.name=黑曜石砖楼梯 -tile.brick_slab.brick_asbestos.name=石棉砖台阶 -tile.brick_slab.brick_compound.name=复合网格砖台阶 -tile.brick_slab.brick_fire.name=耐火砖台阶 -tile.brick_slab.brick_light.name=轻质砖台阶 -tile.brick_slab.brick_obsidian.name=黑曜石砖台阶 -tile.brick_slab.reinforced_brick.name=钢筋混凝土台阶 -tile.brick_slab.reinforced_stone.name=致密石头台阶 -tile.broadcaster_pc.name=腐化的广播 +tile.brick_slab.brick_asbestos.name=石棉砖板 +tile.brick_slab.brick_compound.name=复合网格板 +tile.brick_slab.brick_fire.name=耐火砖板 +tile.brick_slab.brick_light.name=轻质砖板 +tile.brick_slab.brick_obsidian.name=黑曜石砖板 +tile.brick_slab.reinforced_brick.name=钢筋石板 +tile.brick_slab.reinforced_stone.name=密实石板 +tile.broadcaster_pc.name=腐败广播 tile.burning_earth.name=燃烧草地 -tile.c4.name=C-4炸药 -tile.cable_detector.name=红石信号电源开关 +tile.c4.name=C-4 +tile.cable_detector.name=红石电源开关 tile.cable_diode.name=紫铜二极管 tile.cable_switch.name=电源开关 -tile.charge_c4.name=爆破炸药 +tile.charge_c4.name=炸药包 tile.charge_dynamite.name=定时炸弹 tile.charge_miner.name=定时采矿炸药 -tile.charge_semtex.name=塞姆汀塑胶采矿炸药 +tile.charge_semtex.name=塞姆汀采矿炸药 tile.charger.name=充电站 -tile.cheater_virus.name=冻结Ep元素 -tile.cheater_virus_seed.name=不稳定Ep元素-Sa326元素块 +tile.cheater_virus.name=冻结Ep +tile.cheater_virus_seed.name=不稳定Ep Schrabide块 tile.chlorine_gas.name=氯气 tile.cluster_aluminium.name=铝矿簇 tile.cluster_copper.name=铜矿簇 @@ -4404,13 +4356,13 @@ tile.cmb_brick.name=CMB钢瓦块 tile.cmb_brick_reinforced.name=加固CMB钢砖块 tile.compact_launcher.name=紧凑型发射台 tile.concrete.name=混凝土瓦块 -tile.concrete_asbestos.name=石棉夹层混凝土 -tile.concrete_asbestos_stairs.name=石棉夹层混凝土楼梯 -tile.concrete_brick_slab.brick_concrete.name=混凝土砖台阶 -tile.concrete_brick_slab.brick_concrete_broken.name=破碎的混凝土砖台阶 -tile.concrete_brick_slab.brick_concrete_cracked.name=开裂的混凝土砖台阶 -tile.concrete_brick_slab.brick_concrete_mossy.name=苔藓混凝土砖台阶 -tile.concrete_brick_slab.brick_ducrete.name=贫铀高密度混凝土砖台阶 +tile.concrete_asbestos.name=黑色混凝土 +tile.concrete_asbestos_stairs.name=石棉混凝土楼梯 +tile.concrete_brick_slab.brick_concrete.name=混凝土砖板 +tile.concrete_brick_slab.brick_concrete_broken.name=破碎的混凝土砖板 +tile.concrete_brick_slab.brick_concrete_cracked.name=开裂的混凝土砖板 +tile.concrete_brick_slab.brick_concrete_mossy.name=苔藓混凝土砖板 +tile.concrete_brick_slab.brick_ducrete.name=高密度贫铀混凝土砖板 tile.concrete_colored.black.name=黑色混凝土 tile.concrete_colored.blue.name=蓝色混凝土 tile.concrete_colored.brown.name=棕色混凝土 @@ -4427,35 +4379,41 @@ tile.concrete_colored.red.name=红色混凝土 tile.concrete_colored.silver.name=淡灰色混凝土 tile.concrete_colored.white.name=白色混凝土 tile.concrete_colored.yellow.name=黄色混凝土 +tile.concrete_colored_ext.hazard.name=建筑商指定混凝土-危险地带 +tile.concrete_colored_ext.indigo.name=建筑商指定混凝土-深靛蓝 +tile.concrete_colored_ext.machine.name=建筑商指定混凝土-工业风 +tile.concrete_colored_ext.machine_stripe.name=建筑商指定混凝土-工业条纹 +tile.concrete_colored_ext.pink.name=建筑商指定混凝土-猛男粉 +tile.concrete_colored_ext.purple.name=建筑商指定混凝土-神秘紫 tile.concrete_pillar.name=钢筋混凝土柱 -tile.concrete_slab.concrete.name=混凝土瓷砖台阶 -tile.concrete_slab.concrete_asbestos.name=石棉夹层混凝土台阶 -tile.concrete_slab.concrete_smooth.name=混凝土台阶 -tile.concrete_slab.ducrete.name=贫铀高密度混凝土瓦台阶 -tile.concrete_slab.ducrete_smooth.name=贫铀高密度混凝土砖台阶 -tile.concrete_smooth_stairs.name=混凝土楼梯 +tile.concrete_slab.concrete.name=混凝土瓷砖板 +tile.concrete_slab.concrete_asbestos.name=石棉混凝土板 +tile.concrete_slab.concrete_smooth.name=混凝土板 +tile.concrete_slab.ducrete.name=高密度贫铀混凝土瓷砖板 +tile.concrete_slab.ducrete_smooth.name=高密度贫铀混凝土板 tile.concrete_smooth.name=混凝土 -tile.concrete_stairs.name=混凝土瓦楼梯 -tile.concrete_super.name=Über混凝土 +tile.concrete_smooth_stairs.name=混凝土楼梯 +tile.concrete_stairs.name=混凝土瓷砖楼梯 +tile.concrete_super.name=über混凝土 tile.concrete_super_broken.name=发霉的碎片 -tile.conveyor.name=传送带 -tile.conveyor_chute.name=滑槽 -tile.conveyor_double.name=双通道传送带 -tile.conveyor_lift.name=提升式传送带 -tile.conveyor_triple.name=三通道传送带 +tile.conveyor.name=输送带 +tile.conveyor_chute.name=输送带滑槽 +tile.conveyor_double.name=双轨道输送带 +tile.conveyor_lift.name=垂直输送带 +tile.conveyor_triple.name=三轨道输送带 tile.corium_block.name=堆芯熔融物 -tile.crane_boxer.name=传送带打包器 -tile.crane_extractor.name=传送带输出器 -tile.crane_grabber.name=传送带抓取器 -tile.crane_inserter.name=传送带输入器 -tile.crane_router.name=传送带分流器 -tile.crane_splitter.name=传送带分离器 -tile.crane_unboxer.name=传送带解包器 +tile.crane_boxer.name=输送带打包机 +tile.crane_extractor.name=输送带提取器 +tile.crane_grabber.name=输送带抓斗 +tile.crane_inserter.name=输送带导入器 +tile.crane_router.name=输送带分拣机 +tile.crane_splitter.name=输送带分离器 +tile.crane_unboxer.name=输送带解包机 tile.crashed_bomb.name=哑弹 tile.crate.name=补给箱 -tile.crate_ammo.name=星辉金属补给箱 +tile.crate_ammo.name=星辉补给箱 tile.crate_can.name=罐头补给箱 -tile.crate_desh.name=德什制箱子 +tile.crate_desh.name=Desh板条箱 tile.crate_iron.name=铁箱 tile.crate_jungle.name=硫砷钢箱 tile.crate_lead.name=危险品补给箱 @@ -4471,11 +4429,12 @@ tile.deco_aluminium.name=铝装饰块 tile.deco_asbestos.name=石棉瓦 tile.deco_beryllium.name=铍装饰块 tile.deco_computer.ibm_300pl.name=IBM个人电脑300PL -tile.deco_emitter.name=装饰性激光发射器 -tile.part_emitter.name=装饰性粒子生成器 +tile.deco_emitter.name=Deco发光体 +tile.part_emitter.name=Deco粒子发射器 +tile.piston_inserter.name=插入器 tile.deco_lead.name=铅装饰块 -tile.deco_rbmk.name=RBMK石墨式反应堆装饰块 -tile.deco_rbmk_smooth.name=平滑RBMK石墨式反应堆装饰块 +tile.deco_rbmk.name=RBMK装饰块 +tile.deco_rbmk_smooth.name=平滑RBMK装饰块 tile.deco_red_copper.name=紫铜装饰块 tile.deco_pipe.name=钢制管道 tile.deco_pipe_rusted.name=生锈的钢制管道 @@ -4505,11 +4464,11 @@ tile.deco_steel.name=钢装饰块 tile.deco_titanium.name=钛装饰块 tile.deco_tungsten.name=钨装饰块 tile.decon.name=玩家去污器 -tile.depth_brick.name=深板岩砖 -tile.depth_dnt.name=双聚中子态素强化的深板岩砖 -tile.depth_nether_brick.name=下界深板岩砖 -tile.depth_nether_tiles.name=下界深板岩瓦 -tile.depth_tiles.name=深板岩瓦 +tile.depth_brick.name=深层岩石砖 +tile.depth_dnt.name=DNT加固深层岩石砖 +tile.depth_nether_brick.name=下界深层岩石砖 +tile.depth_nether_tiles.name=下界深层岩石瓷砖 +tile.depth_tiles.name=深层岩石瓷砖 tile.det_charge.name=炸药 tile.det_cord.name=炸药引信 tile.det_miner.name=采矿炸药 @@ -4519,73 +4478,73 @@ tile.dfc_emitter.name=DFC发射器 tile.dfc_injector.name=DFC燃料喷射器 tile.dfc_receiver.name=DFC接收器 tile.dfc_stabilizer.name=DFC稳定器 -tile.dirt_dead.name=荒土 -tile.dirt_oily.name=油污 +tile.dirt_dead.name=泥渣 +tile.dirt_oily.name=油泥 tile.drill_pipe.name=钻杆 tile.door_bunker.name=仓门 -tile.door_office.name=办公室门 tile.door_metal.name=金属门 -tile.ducrete.name=贫铀高密度混凝土瓦 -tile.ducrete_stairs.name=贫铀高密度混凝土瓦楼梯 -tile.ducrete_smooth.name=贫铀高密度混凝土 -tile.ducrete_smooth_stairs.name=贫铀高密度混凝土台阶 +tile.door_office.name=办公室门 +tile.ducrete.name=高密度贫铀混凝土瓷砖 +tile.ducrete_stairs.name=高密度贫铀混凝土瓷砖楼梯 +tile.ducrete_smooth.name=高密度贫铀混凝土 +tile.ducrete_smooth_stairs.name=高密度贫铀混凝土楼梯 tile.dummy_block.name=虚拟方块 tile.dummy_port.name=虚拟方块[电力接口] -tile.dungeon_chain.name=铁链 -tile.dynamite.name=甘油炸药 -tile.emp_bomb.name=EMP电磁脉冲炸弹 +tile.dungeon_chain.name=金属链 +tile.dynamite.name=炸药 +tile.emp_bomb.name=EMP炸弹 tile.factory_advanced_conductor.name=高级工厂电力端口 tile.factory_advanced_core.name=高级工厂核心组件 tile.factory_advanced_furnace.name=高级工厂端口 -tile.factory_advanced_hull.name=高级工厂方块 +tile.factory_advanced_hull.name=高级工厂外壳 tile.factory_titanium_conductor.name=工厂电力端口 tile.factory_titanium_core.name=工厂核心组件 tile.factory_titanium_furnace.name=工厂端口 -tile.factory_titanium_hull.name=工厂方块 +tile.factory_titanium_hull.name=工厂外壳 tile.fallout.name=辐射尘 tile.fan.name=风扇 tile.fence_metal.name=铁丝网围栏 tile.field_disturber.name=高能场干扰机 -tile.filing_cabinet.green.name=布满灰尘的文件柜 +tile.filing_cabinet.green.name=蒙尘的文件柜 tile.filing_cabinet.steel.name=钢制文件柜 -tile.filing_cabinet.name=文件柜 -tile.fire_digamma.name=挥之不去的迪伽玛之火 +tile.fire_digamma.name=挥之不去的迪伽马之火 tile.fire_door.name=防火门 -tile.fireworks.name=烟花 -tile.fireworks.charges=装药: %s +tile.fireworks.name=烟花箱 +tile.fireworks.charges=已充能: %s tile.fireworks.message=信息: %s tile.fireworks.color=颜色: %s -tile.fissure_bomb.name=裂变炸弹 +tile.fissure_bomb.name=裂缝炸弹 tile.flame_war.name=盒中论战 tile.float_bomb.name=悬浮炸弹 -tile.fluid_duct.name=通用流体管道 (已弃用) -tile.fluid_duct_box.name=通用流体管道(箱形管) +tile.fluid_duct.name=通用流体管道 +tile.fluid_duct_box.name=通用流体管道(方形) tile.fluid_duct_gauge.name=流量计管 -tile.fluid_duct_gauge.desc=显示每个tick在网络中$流过多少流体的管道.$由桶或罐连接的分离网络$会被视为一个共享网络. +tile.fluid_duct_gauge.desc=显示每个游戏刻在管网有多少流体移动的管道$由桶或罐连接的分离网络被视为一个共享网络。 tile.fluid_duct_neo.name=通用流体管道 tile.fluid_duct_paintable.name=可喷漆涂层通用流体导管 -tile.fluid_duct_solid.name=涂层通用流体导管(已弃用) +tile.fluid_duct_solid.name=带涂层的通用流体导管 tile.foam_layer.name=泡沫层 -tile.foundry_basin.name=浇筑盆 -tile.foundry_channel.name=浇筑道 -tile.foundry_tank.name=储液池 -tile.foundry_mold.name=浅浇筑盆 -tile.foundry_outlet.name=浇筑口 -tile.fraction_spacer.name=分馏塔分离器 +tile.foundry_basin.name=铸造盘 +tile.foundry_channel.name=铸造浇道 +tile.foundry_tank.name=铸造池 +tile.foundry_mold.name=浅铸造池 +tile.foundry_outlet.name=浇筑出口 +tile.foundry_slagtap.name=炉渣出口 +tile.fraction_spacer.name=分馏塔分隔器 tile.frozen_dirt.name=冰冻土 tile.frozen_grass.name=冰冻草 tile.frozen_log.name=冰冻原木 tile.frozen_planks.name=冰冻木板 -tile.furnace_combination.name=组合炉 -tile.furnace_combination.desc=可以生产木炭和焦煤的大熔炉.$产生流体副产品.$传热速率: ΔT*0.25 TU/t -tile.furnace_iron.name=铁制熔炉 -tile.furnace_iron.desc=更大、效率更高的熔炉,$闲置时不浪费燃料. -tile.furnace_steel.name=钢制熔炉 -tile.furnace_steel.desc=冶炼矿石时可以提供额外物品的$超大熔炉. 需要外部热源.$传热速率: ΔT*0.05 TU/t$(Δ 表示温差, T 表示温度) +tile.furnace_combination.name=复式炼焦炉 +tile.furnace_combination.desc=一种可以生产木炭和煤焦炭的大熔炉$产生流体副产品$传热速率:ΔT*0.25 TU/T +tile.furnace_iron.name=铁炉 +tile.furnace_iron.desc=更大、效率更高的炉子,在闲置时不会浪费燃料。 +tile.furnace_steel.name=钢炉 +tile.furnace_steel.desc=非常大的熔炉,冶炼矿石时可提供加成。$这需要外部热源$传热率:ΔT*0.05tu/T$(Δ表示差值,T表示温度) tile.fusion_center.name=中心磁铁 tile.fusion_conductor.name=超导磁体 tile.fusion_core.name=聚变反应堆控制器 -tile.fusion_hatch.name=风管装饰块 +tile.fusion_hatch.name=聚变反应堆端口 tile.fusion_heater.name=等离子加热器 tile.fusion_motor.name=磁体马达 tile.fwatz_computer.name=Watz聚变反应堆计算矩阵 @@ -4593,19 +4552,19 @@ tile.fwatz_conductor.name=4000K超导磁体 tile.fwatz_cooler.name=冷却液罐壳 tile.fwatz_core.name=Watz聚变反应堆控制器 tile.fwatz_hatch.name=Watz聚变反应堆端口 -tile.fwatz_plasma.name=不稳定反Sa326异变铀金属等离子体 +tile.fwatz_plasma.name=不稳定反Sa326等离子体 tile.fwatz_scaffold.name=Watz聚变反应堆结构支架 tile.fwatz_tank.name=冷却液罐 -tile.gas_asbestos.name=漂浮石棉颗粒 -tile.gas_coal.name=漂浮煤尘 +tile.gas_asbestos.name=石棉粉尘 +tile.gas_coal.name=空气中的煤尘 tile.gas_duct.name=输气管道 tile.gas_duct_solid.name=密封输气管 -tile.gas_explosive.name=易爆气体 -tile.gas_flammable.name=易燃气体 +tile.gas_explosive.name=爆炸性气体 +tile.gas_flammable.name=可燃气体 tile.gas_meltdown.name=熔毁气体 -tile.gas_monoxide.name=一氧化碳气体 -tile.gas_radon.name=放射性氡气 -tile.gas_radon_dense.name=浓密放射性氡气 +tile.gas_monoxide.name=一氧化碳 +tile.gas_radon.name=氡气 +tile.gas_radon_dense.name=高浓度氡气 tile.gas_radon_tomb.name=古墓气体 tile.geiger.name=盖革计数器 tile.glass_ash.name=灰烬玻璃 @@ -4615,50 +4574,50 @@ tile.glass_polonium.name=钋玻璃 tile.glass_quartz.name=石英玻璃 tile.glass_trinitite.name=核融玻璃 tile.glass_uranium.name=铀玻璃 -tile.gneiss_brick.name=片岩砖 -tile.gneiss_chiseled.name=錾制片岩 -tile.gneiss_tile.name=片岩瓦 +tile.gneiss_brick.name=页岩砖 +tile.gneiss_chiseled.name=錾制页岩砖 +tile.gneiss_tile.name=页岩瓷砖 tile.gravel_diamond.name=钻石砂砾 tile.gravel_obsidian.name=碎黑曜石 tile.hadron_access.name=粒子加速器接入终端 tile.hadron_analysis.name=粒子加速器分析室壁 tile.hadron_analysis_glass.name=粒子加速器分析室窗口 -tile.hadron_coil_alloy.name=致密超导加速线圈 -tile.hadron_coil_chlorophyte.name=致密绿藻制电磁加速线圈 -tile.hadron_coil_gold.name=致密金制电磁加速线圈 -tile.hadron_coil_magtung.name=致密4000K超导电磁加速线圈 -tile.hadron_coil_mese.name=致密月石制电磁加速线圈 -tile.hadron_coil_neodymium.name=致密钕制电磁加速线圈 -tile.hadron_coil_schrabidate.name=致密Sa326元素酸化铁制电磁加速线圈 -tile.hadron_coil_schrabidium.name=致密Sa326异变铀金属制电磁加速线圈 -tile.hadron_coil_starmetal.name=致密星辉金属制电磁加速线圈 -tile.hadron_core.name=粒子加速器核心部件 -tile.hadron_diode.name=肖特基粒子二极管 -tile.hadron_plating.name=粒子加速器电镀层 -tile.hadron_plating_black.name=粒子加速器电镀层 (黑色) -tile.hadron_plating_blue.name=粒子加速器电镀层 (蓝色) -tile.hadron_plating_glass.name=粒子加速器电镀层 (窗口) -tile.hadron_plating_striped.name=粒子加速器电镀层 (炫酷的警示条纹) -tile.hadron_plating_voltz.name=粒子加速器电镀层 (VOLTZ) -tile.hadron_plating_yellow.name=粒子加速器电镀层 (黄色) -tile.hadron_power.name=粒子加速器电力接口 (1MHE) -tile.hadron_power_10m.name=粒子加速器电力接口 (10MHE) -tile.hadron_power_100m.name=粒子加速器电力接口 (100MHE) -tile.hadron_power_1g.name=粒子加速器电力接口 (1GHE) -tile.hadron_power_10g.name=粒子加速器电力接口 (10GHE) +tile.hadron_coil_alloy.name=密集超导线圈 +tile.hadron_coil_chlorophyte.name=致密叶绿线圈 +tile.hadron_coil_gold.name=致密金线圈 +tile.hadron_coil_magtung.name=致密4000K超导线圈 +tile.hadron_coil_mese.name=密集Mese线圈 +tile.hadron_coil_neodymium.name=致密钕线圈 +tile.hadron_coil_schrabidate.name=致密Sa酸铁线圈 +tile.hadron_coil_schrabidium.name=密集Sa326线圈 +tile.hadron_coil_starmetal.name=密集星辉线圈 +tile.hadron_core.name=粒子加速器核心组件 +tile.hadron_diode.name=肖基特二极管 +tile.hadron_plating.name=粒子加速器镀层 +tile.hadron_plating_black.name=粒子加速器镀层 (黑) +tile.hadron_plating_blue.name=粒子加速器镀层 (蓝) +tile.hadron_plating_glass.name=粒子加速器镀层 (窗口) +tile.hadron_plating_striped.name=粒子加速器镀层(低温危险) +tile.hadron_plating_voltz.name=粒子加速器镀层 (VOLTZ) +tile.hadron_plating_yellow.name=粒子加速器镀层(Yello染料) +tile.hadron_power.name=粒子加速器电源接口 +tile.hadron_power_10m.name=粒子加速器电源接口(10MHE) +tile.hadron_power_100m.name=粒子加速器电源接口(100MHE) +tile.hadron_power_1g.name=粒子加速器电源接口(1GHE) +tile.hadron_power_10g.name=粒子加速器电源接口(10GHE) tile.hazmat.name=防辐射布块 tile.heater_electric.name=电加热器 -tile.heater_electric.desc=使用电能来产生热量.$可以85%的效率接受来自底部的热量.$可用螺丝刀配置效率. +tile.heater_electric.desc=利用电能产生热量$以85%的效率接受来自底部的热量$可使用螺丝刀进行配置。 tile.heater_firebox.name=燃烧室 -tile.heater_firebox.desc=燃烧固体燃料以产生热量. -tile.heater_heatex.name=热交换加热器 -tile.heater_heatex.desc=从热流体中产生热量. -tile.heater_oilburner.name=液体燃料燃烧室 -tile.heater_oilburner.desc=燃烧液体燃料以产生热量.$可使用螺丝刀进行配置. +tile.heater_firebox.desc=燃烧固体燃料以产生热量。 +tile.heater_heatex.name=换热加热器 +tile.heater_heatex.desc=从热流体中产生热量。 +tile.heater_oilburner.name=流体燃烧器 +tile.heater_oilburner.desc=燃烧可燃液体产生热量。 tile.heater_oven.name=加热炉 -tile.heater_oven.desc=燃烧固体燃料以产生热量.$可以85%的效率接受来自底部的热量. +tile.heater_oven.desc=燃烧固体燃料以产生热量$以50%的效率接受来自底部的热量。 tile.hev_battery.name=盔甲电池 -tile.impact_dirt.name=焦土 +tile.impact_dirt.name=烧焦的泥土 tile.iter.name=聚变反应堆 tile.ladder_aluminium.name=铝制梯子 tile.ladder_cobalt.name=钴制梯子 @@ -4684,29 +4643,29 @@ tile.machine_arc_furnace_off.name=电弧炉 tile.machine_arc_furnace_on.name=电弧炉 tile.machine_armor_table.name=装甲改装台 tile.machine_assembler.name=装配机 -tile.machine_assemfac.name=大型装配厂 -tile.machine_autocrafter.name=自动化工作台 -tile.machine_autosaw.name=自动锯 -tile.machine_bat9000.name="巨臀"9000号储罐 +tile.machine_assemfac.name=装配厂 +tile.machine_autocrafter.name=自动工作台 +tile.machine_autosaw.name=自动嗡嗡锯 +tile.machine_bat9000.name=巨尻-9000 储罐 tile.machine_battery.name=蓄电池 tile.machine_battery_potato.name=马铃薯电池组 -tile.machine_boiler.name=大锅炉 -tile.machine_boiler.desc=可以煮沸水或加热油的大型锅炉.$需要外部热源.$传热速率: ΔT*0.01 TU/t -tile.machine_boiler_electric_off.name=电力原油加热器 -tile.machine_boiler_electric_on.name=电力原油加热器 -tile.machine_boiler_off.name=原油加热器 -tile.machine_boiler_on.name=原油加热器 +tile.machine_boiler.name=大型锅炉 +tile.machine_boiler.desc=可以烧水或加热油的大型锅炉$需要外部热源$传热速率:ΔT*0.01 TU/T +tile.machine_boiler_electric_off.name=电锅炉 +tile.machine_boiler_electric_on.name=电锅炉 +tile.machine_boiler_off.name=锅炉 +tile.machine_boiler_on.name=锅炉 tile.machine_catalytic_cracker.name=催化裂化塔 -tile.machine_catalytic_reformer.name=催化重整装置 +tile.machine_catalytic_reformer.name=催化重整器 tile.machine_centrifuge.name=离心机 tile.machine_chemfac.name=大型化工厂 -tile.machine_chemplant.name=化工装置 +tile.machine_chemplant.name=化工厂 tile.machine_chungus.name=“利维坦”巨型汽轮机 tile.machine_chungus.desc=效率: 85%% tile.machine_coal_off.name=火力发电机 tile.machine_coal_on.name=火力发电机 tile.machine_coker.name=焦化装置 -tile.machine_coker.desc=焦化,同时产生流体副产品.$需要外部热源.$传热速率: ΔT*0.025 TU/t +tile.machine_coker.desc=炼焦,并产生各类流体副产品$需要外部热源$传热速率:ΔT*0.025 TU/T tile.machine_combine_factory.name=CMB炼钢炉 tile.machine_combustion_engine.name=工业内燃机 tile.machine_condenser.name=蒸汽冷凝器 @@ -4714,62 +4673,62 @@ tile.machine_controller.name=反应堆遥控模块 tile.machine_converter_he_rf.name=HE→RF转换器 tile.machine_converter_rf_he.name=RF→HE转换器 tile.machine_crucible.name=坩埚 -tile.machine_crystallizer.name=矿物结晶机 +tile.machine_crystallizer.name=矿物酸化器 tile.machine_cyclotron.name=回旋加速器 -tile.machine_detector.name=电力功率检测器 +tile.machine_detector.name=功率检测器 tile.machine_deuterium_extractor.name=氘提取器 tile.machine_deuterium_tower.name=氘萃取塔 tile.machine_diesel.name=柴油发电机 -tile.machine_difurnace_extension.name=高炉风道 +tile.machine_difurnace_extension.name=高炉烟道 tile.machine_difurnace_off.name=高炉 tile.machine_difurnace_on.name=高炉 -tile.machine_difurnace_rtg_off.name=核能高炉 -tile.machine_difurnace_rtg_on.name=核能高炉 -tile.machine_dineutronium_battery.name=Spark闪闪蓄电池 +tile.machine_difurnace_rtg_off.name=核高炉 +tile.machine_difurnace_rtg_on.name=核高炉 +tile.machine_dineutronium_battery.name=Spark蓄电池 tile.machine_drill.name=自动采矿钻机 tile.machine_electric_furnace_off.name=电炉 tile.machine_electric_furnace_on.name=电炉 tile.machine_epress.name=电动锻压机 tile.machine_excavator.name=大型采矿钻机 -tile.machine_fel.name=FEL +tile.machine_fel.name=FEL自由电子激光器 tile.machine_fensu.name=FEnSU飞轮储能系统 -tile.machine_flare.name=废气燃烧塔 +tile.machine_flare.name=高架火炬 tile.machine_fluidtank.name=储罐 tile.machine_forcefield.name=力场发生器 tile.machine_fraction_tower.name=分馏塔 -tile.machine_fracking_tower.name=压裂式钻塔 +tile.machine_fracking_tower.name=水力压裂塔 tile.machine_gascent.name=气体离心机 tile.machine_generator.name=核反应堆[旧] tile.machine_geo.name=地热发电机 tile.machine_hephaestus.name=地热换热器 tile.machine_industrial_generator.name=工业发电机 tile.machine_keyforge.name=锁匠桌 -tile.machine_large_turbine.name=大型工业汽轮机 +tile.machine_large_turbine.name=工业汽轮机 tile.machine_large_turbine.desc=效率: 100%% tile.machine_liquefactor.name=工业液化机 -tile.machine_liquefactor.desc=强大的通用型机器,可将物品转化为液体.$配有多功能催化组件,加热元件$和用于石油化工进行液化的内置水合器. +tile.machine_liquefactor.desc=强大的通用机器,可将物品转化为液体$配有多功能催化组件、加热元件和用于石化液化的内置水合器。 tile.machine_lithium_battery.name=锂蓄电池 tile.machine_microwave.name=微波炉 -tile.machine_mining_laser.name=自动激光采矿钻机 +tile.machine_mining_laser.name=采矿激光 tile.machine_minirtg.name=放射性同位素电池 tile.machine_missile_assembly.name=导弹装配台 -tile.machine_mixer.name=工业混合机 +tile.machine_mixer.name=工业搅拌机 tile.machine_nuke_furnace_off.name=核熔炉 tile.machine_nuke_furnace_on.name=核熔炉 tile.machine_orbus.name=重型磁约束储罐 tile.machine_powerrtg.name=PT同位素电池 tile.machine_press.name=火力锻压机 tile.machine_puf6_tank.name=六氟化钚储罐 -tile.machine_pumpjack.name=梁式抽油机 +tile.machine_pumpjack.name=石油钻机 tile.machine_radar.name=雷达 tile.machine_radgen.name=辐射能量发电机 -tile.machine_radiolysis.name=放射性同位素热电发生器和辐解室 +tile.machine_radiolysis.name=放射性同位素热电机和辐射裂解室 tile.machine_reactor.name=增殖反应堆 -tile.machine_reactor_small.name=研究性反应堆 +tile.machine_reactor_small.name=核反应堆 tile.machine_refinery.name=炼油厂 tile.machine_reix_mainframe.name=Rei-X主机[开发中] tile.machine_rtg_blue.name=对流发电机 -tile.machine_rtg_cyan.name=Sa326异变铀金属衰变发电机 [开发中] +tile.machine_rtg_cyan.name=Sa326衰变发电机 [开发中] tile.machine_rtg_furnace_off.name=放射性同位素热力炉[RTG] tile.machine_rtg_furnace_on.name=放射性同位素热力炉[RTG] tile.machine_rtg_green.name=韦德赛富集发电机 @@ -4779,26 +4738,26 @@ tile.machine_rtg_purple.name=反物质湮灭发发电机 tile.machine_rtg_red.name=离子发生器 tile.machine_rtg_yellow.name=奥斯超级燃料反应堆 tile.machine_satlinker.name=卫星ID管理器 -tile.machine_sawmill.name=斯特林锯木厂 -tile.machine_sawmill.desc=需要外部热源.$传热效率: T*0.1 TU/t$ 最小热量输入 : 100 TU/t, 最大热量输入: 300 TU/t -tile.machine_schrabidium_battery.name=Sa326异变铀金属蓄电池 -tile.machine_schrabidium_transmutator.name=Sa326异变铀金属嬗变装置 -tile.machine_selenium.name=星型径向性能发电机 +tile.machine_sawmill.name=斯特林锯木机 +tile.machine_sawmill.desc=需要外部热源$传热速率:T*0.1 TU/T$最小进气量:100 TU/T,最大进气量:300 TU/T +tile.machine_schrabidium_battery.name=Sa326蓄电池 +tile.machine_schrabidium_transmutator.name=Sa326嬗变装置 +tile.machine_selenium.name=星型发动机 tile.machine_shredder.name=粉碎机 -tile.machine_silex.name=同位素激光分离室(SILEX) +tile.machine_silex.name=激光同位素分离室 tile.machine_siren.name=警报器 -tile.machine_solar_boiler.name=太阳能蒸发塔 +tile.machine_solar_boiler.name=太阳能锅炉 tile.machine_solidifier.name=工业固化机 -tile.machine_solidifier.desc=配备冷却系统和其他多功能工具的通用型机器$用于通过冷冻和石化聚合等多种工艺$将液体变为固体. +tile.machine_solidifier.desc=配备冷却系统和其他多功能工具的通用机器,用于使用冷冻和石化聚合等多种工艺将流体转化为固体。 tile.machine_spp_bottom.name=ZPE电位发生器 [底部] tile.machine_spp_top.name=ZPE电位发生器 [顶部] -tile.machine_steam_engine.name=蒸汽引擎 -tile.machine_steam_engine.desc=效率: 85%% -tile.machine_stirling.name=斯特林引擎 -tile.machine_stirling.desc=将热量转化为能量. 需要外部热源.$传热速率: T*0.1 TU/t$最大吸热速率: 300 TU/t$效率: 50%% +tile.machine_steam_engine.name=蒸汽机 +tile.machine_steam_engine.desc=效率:85% +tile.machine_stirling.name=斯特林发电机 +tile.machine_stirling.desc=它将热量转化为能量。这需要外部热源$传热率:T*0.1 TU/T$最大进气量:300 TU/T$效率:50% +tile.machine_stirling_steel.name=重型斯特林发动机 +tile.machine_stirling_steel.desc=它将热量转化为能量。这需要外部热源$使用更重的齿轮来支持更高的温度$传热率:T*0.1 TU/T$最大进气量:1500 TU/T$效率:50% tile.machine_storage_drum.name=核废料处理桶 -tile.machine_stirling_steel.name=重型斯特林发电机 -tile.machine_stirling_steel.desc=将热量转化为能量. 需要外部热源.$使用更重的齿轮来支持更高的温度.$传热效率: T*0.1 TU/t$最大吸热速率: 1500 TU/t$转换效率: 50%% tile.machine_telelinker.name=炮塔ID管理器 tile.machine_teleporter.name=传送机 tile.machine_tower_large.name=冷却塔 @@ -4810,21 +4769,21 @@ tile.machine_transformer_dnt_20.name=DNT-1Hz变频器 tile.machine_turbine.name=汽轮机 tile.machine_turbine.desc=效率: 85%% tile.machine_turbinegas.name=联合循环燃气轮机 -tile.machine_turbofan.name=涡扇发电机 +tile.machine_turbofan.name=涡扇发动机 tile.machine_uf6_tank.name=六氟化铀储罐 -tile.machine_vacuum_distill.name=真空精炼厂 -tile.machine_waste_drum.name=乏核燃料冷却池 +tile.machine_vacuum_distill.name=真空炼油厂 +tile.machine_waste_drum.name=乏燃料池 tile.machine_well.name=钻油塔 -tile.machine_zirnox.name=ZIRNOX锆诺克斯反应堆 +tile.machine_zirnox.name=锆诺克斯核反应堆 tile.marker_structure.name=多方块结构信标 -tile.mass_storage.name=大容量存储单元 +tile.mass_storage.name=大规模存储单元 tile.meteor_battery.name=星辉静电发生器 tile.meteor_brick.name=陨石砖 tile.meteor_brick_chiseled.name=錾制陨石砖 tile.meteor_brick_cracked.name=裂纹陨石砖 tile.meteor_brick_mossy.name=苔藓陨石砖 tile.meteor_pillar.name=竖纹陨石砖 -tile.meteor_polished.name=磨制陨石块 +tile.meteor_polished.name=平滑陨石块 tile.meteor_spawner.name=赛博螃蟹组装机 tile.mine_ap.name=反步兵地雷 tile.mine_fat.name=核地雷 @@ -4842,7 +4801,7 @@ tile.nuke_fstbmb.name=BF炸弹 tile.nuke_gadget.name=小玩意 tile.nuke_man.name=胖子 tile.nuke_mike.name=常青藤迈克 -tile.nuke_n2.name=N²炸弹 +tile.nuke_n2.name=N2炸弹 tile.nuke_n45.name=N45水雷 tile.nuke_prototype.name=原型 tile.nuke_solinium.name=蔚蓝洗礼 @@ -4850,54 +4809,54 @@ tile.nuke_tsar.name=沙皇炸弹 tile.oil_duct.name=输油管 tile.oil_duct_solid.name=粗输油管 tile.oil_pipe.name=原油抽取管 -tile.ore_alexandrite.name=紫翠宝石矿 +tile.ore_alexandrite.name=亚历山大变石矿 tile.ore_aluminium.name=铝矿石 tile.ore_asbestos.name=石棉矿 tile.ore_australium.name=奥斯矿石 -tile.ore_bedrock.name=基岩矿床 -tile.ore_bedrock_coltan.name=基岩层钶钽铁矿 -tile.ore_bedrock_oil.name=基岩层石油矿床 +tile.ore_bedrock.name=基岩矿石 +tile.ore_bedrock_coltan.name=基岩钶钽铁矿 +tile.ore_bedrock_oil.name=基岩油层 tile.ore_beryllium.name=铍矿石 tile.ore_cinnebar.name=朱砂矿石 tile.ore_coal_oil.name=含油煤矿石 -tile.ore_coal_oil_burning.name=烧焦的含油煤矿石 +tile.ore_coal_oil_burning.name=燃烧的含油煤矿石 tile.ore_cobalt.name=钴矿石 -tile.ore_coltan.name=钶钽铁矿石 +tile.ore_coltan.name=钶钽铁矿 tile.ore_copper.name=铜矿石 tile.ore_daffergon.name=达夫贡矿石 -tile.ore_depth_borax.name=深层硼砂矿石 +tile.ore_depth_borax.name=深层硼砂矿 tile.ore_depth_cinnebar.name=深层朱砂矿石 -tile.ore_depth_nether_neodymium.name=下界深层钕矿石 +tile.ore_depth_nether_neodymium.name=深层钕矿石 tile.ore_depth_zirconium.name=深层锆矿石 tile.ore_fluorite.name=氟石矿石 -tile.ore_gneiss_asbestos.name=片岩石棉矿 -tile.ore_gneiss_copper.name=片岩铜矿石 -tile.ore_gneiss_gas.name=天然气页岩 -tile.ore_gneiss_gold.name=片岩金矿石 -tile.ore_gneiss_iron.name=片岩铁矿石 -tile.ore_gneiss_lithium.name=片岩锂矿石 -tile.ore_gneiss_rare.name=片岩稀土矿 -tile.ore_gneiss_schrabidium.name=片岩Sa326矿石 -tile.ore_gneiss_uranium.name=片岩铀矿 -tile.ore_gneiss_uranium_scorched.name=烧焦的片岩铀矿 +tile.ore_gneiss_asbestos.name=石棉矿页岩 +tile.ore_gneiss_copper.name=铜矿页岩 +tile.ore_gneiss_gas.name=气页岩 +tile.ore_gneiss_gold.name=金矿页岩 +tile.ore_gneiss_iron.name=铁矿页岩 +tile.ore_gneiss_lithium.name=锂矿页岩 +tile.ore_gneiss_rare.name=稀土矿页岩 +tile.ore_gneiss_schrabidium.name=Sa326矿页岩 +tile.ore_gneiss_uranium.name=铀矿页岩 +tile.ore_gneiss_uranium_scorched.name=烧焦的铀矿页岩 tile.ore_lead.name=铅矿石 tile.ore_lignite.name=褐煤矿石 tile.ore_meteor_aluminium.name=铝矿陨石 tile.ore_meteor_copper.name=铜矿陨石 tile.ore_meteor_lead.name=铅矿陨石 tile.ore_meteor_lithium.name=锂矿陨石 -tile.ore_meteor_starmetal.name=星辉金属矿陨石 +tile.ore_meteor_starmetal.name=星辉矿陨石 tile.ore_meteor_sulfur.name=硫磺矿陨石 tile.ore_meteor_thorium.name=钍矿陨石 tile.ore_meteor_titanium.name=钛矿陨石 tile.ore_meteor_tungsten.name=钨矿陨石 tile.ore_meteor_uranium.name=铀矿陨石 -tile.ore_nether_coal.name=燃烧的下界煤矿石 +tile.ore_nether_coal.name=燃烧下界煤矿 tile.ore_nether_cobalt.name=下界钴矿石 tile.ore_nether_fire.name=火矿石 tile.ore_nether_plutonium.name=下界钚矿石 -tile.ore_nether_schrabidium.name=下界Sa326异变铀金属矿石 -tile.ore_nether_smoldering.name=闷烧的下界石 +tile.ore_nether_schrabidium.name=下界Sa326矿石 +tile.ore_nether_smoldering.name=阴燃下界岩 tile.ore_nether_sulfur.name=下界硫磺矿石 tile.ore_nether_tungsten.name=下界钨矿石 tile.ore_nether_uranium.name=下界铀矿石 @@ -4909,77 +4868,77 @@ tile.ore_oil_sand.name=沥青砂 tile.ore_random.name=%s 矿 tile.ore_rare.name=稀土矿石 tile.ore_reiium.name=雷恩矿石 -tile.ore_schrabidium.name=Sa326异变铀金属矿石 +tile.ore_schrabidium.name=Sa326矿石 tile.ore_sulfur.name=硫磺矿石 -tile.ore_tektite_osmiridium.name=渗铱锇熔融石 +tile.ore_tektite_osmiridium.name=渗锇熔融石 tile.ore_thorium.name=钍矿石 tile.ore_tikite.name=赛瑞克矿石 tile.ore_titanium.name=钛矿石 tile.ore_tungsten.name=钨矿石 -tile.ore_unobtainium.name=阿诺布汀矿石 +tile.ore_unobtainium.name=难得素矿石 tile.ore_uranium.name=铀矿石 tile.ore_uranium_scorched.name=烧焦的铀矿石 tile.ore_verticium.name=韦德赛矿石 -tile.ore_volcano.name=地热口 +tile.ore_volcano.name=地热裂缝 tile.ore_weidanium.name=魏丹矿石 tile.pink_barrel.name=煤油桶 tile.pink_log.name=粉色原木 tile.pink_planks.name=粉色木板 tile.pink_slab.name=粉色木半砖 tile.pink_stairs.name=粉色木台阶 -tile.plant_dead.name=死亡的植物 -tile.plant_flower.cd0.name=芥柳 -tile.plant_flower.cd1.name=芥柳 +tile.plant_dead.name=死亡植物 +tile.plant_flower.cd0.name=芥子柳 +tile.plant_flower.cd1.name=芥子柳 tile.plant_flower.foxglove.name=毛地黄 tile.plant_flower.nightshade.name=颠茄 tile.plant_flower.tobacco.name=烟草 tile.plant_flower.weed.name=大麻 tile.plant_reeds.name=芦苇 -tile.plant_tall.cd2.name=芥柳 -tile.plant_tall.cd3.name=芥柳 -tile.plant_tall.cd4.name=芥柳 (成熟) +tile.plant_tall.cd2.name=芥子柳 +tile.plant_tall.cd3.name=芥子柳 +tile.plant_tall.cd4.name=芥子柳(成熟) tile.plant_tall.weed.name=大麻 tile.plasma.name=等离子 tile.plasma_heater.name=等离子加热器 tile.pole_satellite_receiver.name=卫星天线 tile.pole_top.name=天线顶部 -tile.press_preheater.name=燃烧器压力预热器 +tile.press_preheater.name=锻压机压力预热器 tile.pribris.name=RBMK石墨式反应堆残骸 -tile.pribris_burning.name=燃烧的RBMK石墨式反应堆残骸 -tile.pribris_digamma.name=发黑的RBMK石墨式反应堆残骸 -tile.pribris_radiating.name=阴燃的RBMK石墨式反应堆残骸 -tile.radio_torch_receiver.name=红石无线信号接收器 -tile.radio_torch_receiver.desc=可在平坦表面或与比较器兼容的块上放置 -tile.radio_torch_sender.name=红石无线信号发送器 -tile.radio_torch_sender.desc=可在平坦表面或与比较器兼容的块上放置$读取红石信号或比较器输入 +tile.pribris_burning.name=燃烧的RBMK反应堆残骸 +tile.pribris_digamma.name=发黑的RBMK反应堆残骸 +tile.pribris_radiating.name=阴燃的RBMK反应堆残骸 +tile.radio_torch_receiver.name=无线红石信号接收器 +tile.radio_torch_receiver.desc=可在平坦表面或与比较器兼容的方块上放置 +tile.radio_torch_sender.name=无线红石信号发射器 +tile.radio_torch_sender.desc=可在平坦表面或比较器兼容的方块上放置$读取红石信号或比较器输入 tile.radiobox.name=无线怪物清除箱 -tile.radiorec.name=FM收音机 +tile.radiorec.name=坏掉的收音机 tile.rail_booster.name=高速动力轨道 tile.rail_highspeed.name=高速轨道 -tile.rail_narrow.name=窄轨距车厢轨道 -tile.rail_wood.name=木轨 -tile.rbmk_absorber.name=RBMK石墨式反应堆硼中子吸收器 -tile.rbmk_blank.name=RBMK石墨式反应堆结构柱 -tile.rbmk_boiler.name=RBMK石墨式反应堆蒸汽管道 +tile.rail_narrow.name=窄轨距轨道 +tile.rail_wood.name=木制轨道 +tile.rbmk_absorber.name=RBMK反应堆硼中子吸收器 +tile.rbmk_blank.name=RBMK反应堆结构柱 +tile.rbmk_boiler.name=RBMK反应堆蒸汽管道 tile.rbmk_console.name=RBMK石墨式反应堆控制台 -tile.rbmk_cooler.name=RBMK石墨式反应堆冷却器 -tile.rbmk_control.name=RBMK石墨式反应堆控制棒 -tile.rbmk_control_auto.name=RBMK石墨式反应堆自动控制棒 -tile.rbmk_control_mod.name=RBMK石墨式反应堆慢化控制棒 -tile.rbmk_crane_console.name=RBMK石墨式反应堆储起重机控制台 -tile.rbmk_heater.name=RBMK石墨式反应堆流体加热器 -tile.rbmk_heatex.name=RBMK石墨式反应堆热交换器 -tile.rbmk_loader.name=RBMK石墨式反应堆蒸汽导出器 -tile.rbmk_moderator.name=RBMK石墨式反应堆石墨慢化剂 -tile.rbmk_outgasser.name=RBMK石墨式反应堆辐照通道 -tile.rbmk_reflector.name=RBMK石墨式反应堆碳化钨中子反射器 -tile.rbmk_rod.name=RBMK石墨式反应堆燃料棒 -tile.rbmk_rod_mod.name=RBMK石墨式反应堆慢化燃料棒 -tile.rbmk_rod_reasim.name=RBMK石墨式反应堆燃料棒(ReaSim) -tile.rbmk_rod_reasim_mod.name=RBMK石墨式反应堆慢化燃料棒(ReaSim) -tile.rbmk_steam_inlet.name=RBMK石墨式反应堆(ReaSim)进水口 -tile.rbmk_steam_outlet.name=RBMK石墨式反应堆(ReaSim)蒸汽出口 -tile.rbmk_storage.name=RBMK石墨式反应堆燃料棒燃料棒储存柱 +tile.rbmk_cooler.name=RBMK冷却器 +tile.rbmk_control.name=RBMK反应堆控制棒 +tile.rbmk_control_auto.name=RBMK反应堆自动控制棒 +tile.rbmk_control_mod.name= RBMK反应堆慢化控制棒 +tile.rbmk_crane_console.name=RBMK起重机控制台 +tile.rbmk_heater.name=RBMK流体加热器 +tile.rbmk_heatex.name=RBMK换热器 +tile.rbmk_loader.name=RBMK反应堆蒸汽导出器 +tile.rbmk_moderator.name=RBMK反应堆石墨慢化剂 +tile.rbmk_outgasser.name=RBMK反应堆辐照通道 +tile.rbmk_reflector.name=RBMK反应堆碳化钨中子反射器 +tile.rbmk_rod.name=RBMK反应堆燃料棒 +tile.rbmk_rod_mod.name= RBMK反应堆慢化燃料棒 +tile.rbmk_rod_reasim.name= RBMK反应堆燃料棒(ReaSim) +tile.rbmk_rod_reasim_mod.name= RBMK反应堆慢化燃料棒(ReaSim) +tile.rbmk_steam_inlet.name=RBMK ReaSim进水口 +tile.rbmk_steam_outlet.name=RBMK ReaSim蒸汽出口 +tile.rbmk_storage.name=RBMK燃料棒存储棒 tile.reactor_computer.name=反应堆控制器 tile.reactor_conductor.name=反应堆锅炉 tile.reactor_control.name=控制棒 @@ -4989,22 +4948,25 @@ tile.reactor_hatch.name=反应堆端口 tile.reactor_inserter.name=反应堆燃料插入器 tile.red_barrel.name=炸药桶 tile.red_cable.name=紫铜电线 -tile.red_cable_classic.name=紫铜电线(经典) -tile.red_cable_paintable.name=可涂漆红铜线缆块 -tile.red_connector.name=电线连接器 +tile.red_cable_classic.name=紫铜电缆(经典型) +tile.red_cable_paintable.name=可涂漆紫铜线 +tile.red_connector.name=电力连接器 tile.red_pylon.name=电线杆 tile.red_pylon_large.name=大型输电塔 tile.red_wire_coated.name=密封紫铜电缆 tile.reinforced_brick.name=强化石头 -tile.reinforced_brick_stairs.name=强化石头楼梯 -tile.reinforced_ducrete.name=强化贫铀高密度混凝土 +tile.reinforced_brick_stairs.name=钢筋石楼梯 +tile.reinforced_ducrete.name=加固高密度贫铀混凝土 tile.reinforced_glass.name=强化玻璃 +tile.reinforced_glass_pane.name=强化玻璃窗 tile.reinforced_lamp_off.name=强化红石灯 tile.reinforced_lamp_on.name=强化红石灯 tile.reinforced_light.name=强化萤石 tile.reinforced_sand.name=强化砂石 tile.reinforced_stone.name=致密石头 tile.reinforced_stone_stairs.name=致密石头楼梯 +tile.reinforced_laminate.name=强化层压板 +tile.reinforced_laminate_pane.name=强化层压板隔板 tile.rejuvinator.name=再生装置 tile.residue.name=云残留 tile.safe.name=保险箱 @@ -5014,10 +4976,10 @@ tile.sand_dirty.name=油砂 tile.sand_dirty_red.name=红色油砂 tile.sand_gold.name=金沙 tile.sand_gold198.name=金-198沙 -tile.sand_lead.name=铅砂 -tile.sand_polonium.name=钋砂 +tile.sand_lead.name=铅沙 +tile.sand_polonium.name=钋沙 tile.sand_quartz.name=石英砂 -tile.sand_uranium.name=铀砂 +tile.sand_uranium.name=铀沙 tile.sat_dock.name=卸货平台 tile.sat_foeq.name=实验型核能PEAF-Mk.I FOEQ Duna探测器[装饰块] tile.sat_laser.name=轨道死光炮[装饰块] @@ -5025,45 +4987,46 @@ tile.sat_mapper.name=地表测绘卫星[装饰块] tile.sat_radar.name=雷达探测卫星[装饰块] tile.sat_resonator.name=X晶体共振卫星[装饰块] tile.sat_scanner.name=绘测和资源探测卫星[装饰块] -tile.schrabidic_block.name=Sa326元素酸液 +tile.schrabidic_block.name=Sa酸 tile.seal_controller.name=发射井舱门开关 tile.seal_frame.name=发射井舱门框架 tile.seal_hatch.name=发射井舱门 tile.sellafield.0.name=放射性熔融凝固物 -tile.sellafield.1.name=热放射性熔融凝固物 +tile.sellafield.1.name=高温放射性熔融凝固物 tile.sellafield.2.name=沸腾的放射性熔融凝固物 tile.sellafield.3.name=灼热的放射性熔融凝固物 -tile.sellafield.4.name=地狱的放射性熔融凝固物 -tile.sellafield.5.name=高放射性堆芯熔融凝固物 -tile.sellafield_slaked.name=冷却的放射性熔融凝固物 +tile.sellafield.4.name=地狱般的放射性熔融凝固物 +tile.sellafield.5.name=放射性熔融凝固物核心 +tile.sellafield_slaked.name=消沉的放射性熔融凝固物 tile.semtex.name=塞姆汀塑胶炸药 -tile.solar_mirror.name=阳光反射镜 +tile.solar_mirror.name=定日镜 tile.soyuz_capsule.name=货物着陆舱 -tile.soyuz_launcher.name=联盟号巨型运载火箭发射平台 -tile.spikes.name=尖刺 +tile.soyuz_launcher.name=联盟号发射平台 +tile.spikes.name=地刺 tile.stalactite.asbestos.name=石棉钟乳石 tile.stalactite.sulfur.name=含硫钟乳石 tile.stalagmite.asbestos.name=石棉石笋 -tile.stalagmite.sulfur.name=硫磺石笋 +tile.stalagmite.sulfur.name=含硫石笋 tile.steel_beam.name=钢梁 tile.steel_corner.name=钢墙角 tile.steel_grate.name=钢格栅 tile.steel_grate_wide.name=物品格栅 -tile.steel_grate_wide.desc=允许掉落的物品和XP穿过 +tile.steel_grate_wide.desc=只会让物品和经验球掉落下去 tile.steel_poles.name=钢杆 tile.steel_roof.name=钢天花顶 tile.steel_scaffold.name=钢脚手架 tile.steel_wall.name=钢墙 -tile.stone_cracked.name=碎石 -tile.stone_depth.name=深板岩 -tile.stone_depth_nether.name=下界深板岩 -tile.stone_gneiss.name=石墨片岩 +tile.stone_cracked.name=破碎的石头 +tile.stone_depth.name=深层岩石 +tile.stone_depth_nether.name=下界深层岩石 +tile.stone_gneiss.name=石墨页岩 tile.stone_porous.name=多孔石 -tile.stone_resource.asbestos.name=蛇纹石石棉 +tile.stone_resource.asbestos.name=温石棉 +tile.stone_resource.bauxite.name=铝土矿 tile.stone_resource.hematite.name=赤铁矿 tile.stone_resource.limestone.name=石灰石 tile.stone_resource.malachite.name=孔雀石 -tile.stone_resource.sulfur.name=含硫岩层 +tile.stone_resource.sulfur.name=硫磺石 tile.struct_iter_core.name=聚变反应堆核心组件 tile.struct_launcher.name=发射台部件 tile.struct_launcher_core.name=紧凑型发射台核心组件 @@ -5071,14 +5034,14 @@ tile.struct_launcher_core_large.name=发射台核心组件 tile.struct_plasma_core.name=等离子加热器核心组件 tile.struct_scaffold.name=发射台骨架 tile.struct_soyuz_core.name=联盟号发射器核心组件 -tile.struct_watz_core.name=Watz瓦茨电厂核心组件 -tile.substation.name=变电器 +tile.struct_watz_core.name=Watz发电厂核心组件 +tile.substation.name=变电站 tile.sulfuric_acid_block.name=硫酸 -tile.taint.name=污点 +tile.taint.name=腐质 tile.taint_barrel.name=IMP残渣桶 tile.tape_recorder.name=录音机 tile.tektite.name=熔融石 -tile.teleanchor.name=远程传送锚 +tile.teleanchor.name=传送锚 tile.tesla.name=特斯拉线圈 tile.test_nuke.name=测试核弹 tile.therm_endo.name=吸热炸弹 @@ -5088,81 +5051,77 @@ tile.tile_lab_broken.name=破损实验室瓷砖 tile.tile_lab_cracked.name=开裂实验室瓷砖 tile.tnt_ntm.name=货真价实的TNT tile.toxic_block.name=绿色软泥 -tile.transition_seal.name=过渡仓密封门 -tile.turret_arty.name=重炮炮塔"格里格" -tile.turret_cheapo.name=奇普·加特林哨兵 -tile.turret_chekhov.name=重机枪炮台"契诃夫之枪" -tile.turret_cwis.name=MK-15“密集阵”近防系统 +tile.transition_seal.name=巨型安全门 +tile.turret_arty.name=重炮炮塔“格雷格” +tile.turret_cheapo.name=奇普-加特林哨兵 +tile.turret_chekhov.name=重机枪炮塔“契诃夫的枪” +tile.turret_cwis.name=Mk-15“密集阵”近防系统 tile.turret_flamer.name=喷火炮塔 -tile.turret_friendly.name=链式机枪炮塔"友好先生" +tile.turret_friendly.name=轻机枪炮塔“友好先生” tile.turret_fritz.name=重型火焰喷射器炮塔“弗里茨” -tile.turret_howard.name=双管近防炮"霍华德" -tile.turret_howard_damaged.name=双管近防炮 "玛土撒拉" tile.turret_heavy.name=重型机枪炮塔 -tile.turret_himars.name=远程火箭弹炮塔"亨利" -tile.turret_jeremy.name=重炮炮台"杰米里" +tile.turret_himars.name=火箭炮塔“亨利” +tile.turret_howard.name=双联守门员近防系统“霍华德” +tile.turret_howard_damaged.name=CIWS双联守门员近防系统 "玛士撒拉" +tile.turret_jeremy.name=重炮炮塔“杰里米” tile.turret_light.name=轻型机枪炮塔 tile.turret_maxwell.name=高能微波炮塔 "麦克斯韦" tile.turret_rocket.name=火箭炮塔 -tile.turret_richard.name=蜂巢火箭弹炮塔"理查德" +tile.turret_richard.name=火箭炮塔“理查德” tile.turret_spitfire.name=目前没有名字[开发中] -tile.turret_sentry.name=哨岗炮塔 "布朗" +tile.turret_sentry.name=哨兵炮塔“布朗” tile.turret_tau.name=陶子炮塔 -tile.turret_tauon.name=XVL1456原型炮塔 "负陶子发射器" +tile.turret_tauon.name=XVL1456原型陶子发射器炮塔"陶恩" tile.vacuum.name=真空 tile.vault_door.name=避难所防爆门 tile.vent_chlorine.name=氯气排气口 tile.vent_chlorine_seal.name=氯气容器 tile.vent_cloud.name=云排气口 tile.vent_pink_cloud.name=粉色云排气口 -tile.vinyl_tile.large.name=大块乙烯基瓷砖 -tile.vinyl_tile.small.name=小块乙烯基瓷砖 tile.vinyl_tile.large.name=大型乙烯基瓷砖 tile.vinyl_tile.small.name=小型乙烯基瓷砖 tile.vitrified_barrel.name=玻璃化核废料桶 -tile.volcanic_lava_block.name=火山岩浆 +tile.volcanic_lava_block.name=火山熔岩 tile.volcano_core.name=火山核心 tile.waste_earth.name=死亡草地 -tile.waste_leaves.name=死亡树叶 +tile.waste_leaves.name=枯叶 tile.waste_log.name=烧焦原木 tile.waste_mycelium.name=发光菌丝 tile.waste_planks.name=烧焦木板 tile.waste_trinitite.name=核融玻璃矿石 tile.waste_trinitite_red.name=红色核融玻璃矿石 -tile.watz.name=Watz瓦茨电厂 -tile.watz_conductor.name=Watz瓦茨发电塔电力端口 -tile.watz_control.name=Watz瓦茨发电塔加强控制棒 -tile.watz_cooler.name=Watz瓦茨电厂过冷器 -tile.watz_core.name=Watz瓦茨发电塔控制器 -tile.watz_element.name=Watz瓦茨电厂反应室 -tile.watz_end.name=Watz瓦茨电厂稳定元件 -tile.watz_end_bolted.name=Watz瓦茨电厂稳定元件(铆接) -tile.watz_hatch.name=Watz瓦茨发电塔端口 -tile.watz_pump.name=Watz电厂压力泵 +tile.watz.name=Watz发电厂 +tile.watz_conductor.name=Watz电力端口 +tile.watz_control.name=加强控制棒 +tile.watz_cooler.name=Watz反应堆过冷器 +tile.watz_core.name=Watz反应堆控制器 +tile.watz_element.name=Watz反应室 +tile.watz_end.name=Watz反应堆稳定元件 +tile.watz_end_bolted.name=Watz反应堆稳定元件(铆接) +tile.watz_hatch.name=Watz反应堆端口 +tile.watz_pump.name=Watz压力泵 tile.yellow_barrel.name=核废料桶 -tile.zirnox_destroyed.name=熔毁ZIRNOX锆诺克斯反应堆 - -trait.asbestos=石棉粉尘 -trait.blinding=致盲性 -trait.coal=煤粉尘 -trait.digamma=Ϝ迪伽马辐射 -trait.drop=掉落危险 +tile.zirnox_destroyed.name=损毁的ZINROX +trait.asbestos=石棉 +trait.blinding=致盲 +trait.coal=煤尘 +trait.digamma=迪伽马辐射 +trait.drop=掉落物危险 trait.explosive=高度易燃/易爆 -trait.furnace=在核熔炉中可熔炼%s个物品 -trait.heat=产生%s热量 +trait.furnace=可在核熔炉中工作 %s 次 +trait.heat=提供 %s 热量 trait.hlParticle=粒子半衰期: %s trait.hlPlayer=玩家半衰期: %s -trait.hot=自燃/炽热 -trait.hydro=遇水爆炸 +trait.hot=自燃/高温 +trait.hydro=与水反应 trait.radioactive=放射性 trait.radResistance=辐射抗性: %s - trait.rbmk.coreTemp=核心温度: %s trait.rbmk.depletion=燃料消耗: %s trait.rbmk.diffusion=扩散度: %s trait.rbmk.fluxFunc=中子放射函数: %s trait.rbmk.funcType=中子放射函数类型: %s -trait.rbmk.heat=每1中子通量产生的热量: %s +trait.rbmk.heat=每接受一个中子产生的热量: %s trait.rbmk.melt=熔点: %s trait.rbmk.neutron.any=所有中子 trait.rbmk.neutron.fast=快中子 @@ -5174,13 +5133,12 @@ trait.rbmk.splitsWith=裂变需要: %s trait.rbmk.xenon=氙元素堆积程度: %s trait.rbmk.xenonBurn=氙元素燃烧函数: %s trait.rbmk.xenonGen=氙元素产生函数: %s - trait.rbmx.coreTemp=核心熵: %s trait.rbmx.depletion=衰变: %s trait.rbmx.diffusion=能量潮涌: %s -trait.rbmx.fluxFunc=Ϝ迪伽马粒子放射函数: %s -trait.rbmx.funcType=Ϝ迪伽马粒子放射函数类型: %s -trait.rbmx.heat=满功率时每tick产生的热量: %s +trait.rbmx.fluxFunc=F迪伽马粒子放射函数: %s +trait.rbmx.funcType=F迪伽马粒子放射函数类型: %s +trait.rbmx.heat=满功率下每刻产生的热量: %s trait.rbmx.melt=崩溃深度: %s trait.rbmk.neutron.any.x=所有非欧几里德形时空平面 trait.rbmk.neutron.fast.x=椭圆非欧几里德形时空平面 @@ -5192,57 +5150,55 @@ trait.rbmx.splitsWith=接受: %s trait.rbmx.xenon=铅元素堆积程度: %s trait.rbmx.xenonBurn=铅元素寂灭函数: %s trait.rbmx.xenonGen=铅元素产生函数: %s - trait.tile.cluster=只有在被玩家破坏时才会掉落 trait.tile.depth=只能被爆炸破坏 - tool.ability.centrifuge=自动离心 tool.ability.crystallizer=自动结晶 tool.ability.explosion=爆破 tool.ability.hammer=范围挖掘 tool.ability.luck=时运 -tool.ability.mercury=自动汞采集 +tool.ability.mercury=水银提取 tool.ability.midas=点石成金 tool.ability.recursion=连锁挖矿 tool.ability.shredder=自动粉碎 tool.ability.silktouch=精准采集 tool.ability.smelter=自动熔炼 - -turret.animals=攻击中立生物: %s -turret.arty.artillery=§e重炮模式$宽度: 250m$范围: 3,000m -turret.arty.cannon=§e加农炮模式$宽度: 32m$范围: 250m -turret.arty.manual=§e手动模式$范围: 3,000m -turret.machines=攻击机器: %s -turret.mobs=攻击敌对生物: %s -turret.none=无白名单 -turret.off=OFF -turret.on=ON -turret.players=攻击玩家: %s - +turret.animals=被动目标:%s +turret.arty.artillery=§e火炮模式$最低射程: 250m$最大射程: 3,000m +turret.arty.cannon=§e炮塔模式$最低射程: 32m$射程: 250m +turret.arty.manual=§e手动模式$射程: 3,000m +turret.machines=以机械为目标: %s +turret.mobs=以怪物为目标: %s +turret.none=无 +turret.off=关 +turret.on=开 +turret.players=以玩家为目标:%s wavelengths.name.ir=红外线 wavelengths.name.visible=可见光 wavelengths.name.uv=紫外线 wavelengths.name.gamma=伽马射线 -wavelengths.name.drx=Ϝ迪伽马射线 +wavelengths.name.drx=迪伽玛 wavelengths.waveRange.ir=780nm-1mm wavelengths.waveRange.visible=400nm-780nm wavelengths.waveRange.uv=100nm-400nm wavelengths.waveRange.gamma=<100pm wavelengths.waveRange.drx=1916169普朗克长度 - -weapon.ability.beheader=斩首者 -weapon.ability.bobble=收藏家的运气 -weapon.ability.chainsaw=苦痛之锯 +weapon.ability.beheader=斩首 +weapon.ability.bobble=收藏家之运 +weapon.ability.chainsaw=痛苦面"锯" weapon.ability.fire=燃烧 -weapon.ability.radiation=放射性刀片 -weapon.ability.phosphorus=磷烧伤 -weapon.ability.stun=眩晕打击 +weapon.ability.radiation=辐射 +weapon.ability.phosphorus=白磷刀刃 +weapon.ability.stun=震撼 weapon.ability.vampire=吸血 -weapon.elecGun.modeChange=开火模式切换为: +weapon.elecGun.modeChange=开火模式更改为: weapon.elecGun.glass_cannon.radio=无线电波 weapon.elecGun.glass_cannon.micro=微波 weapon.elecGun.glass_cannon.ir=红外线 weapon.elecGun.glass_cannon.visible=可见光 weapon.elecGun.glass_cannon.uv=紫外线 weapon.elecGun.glass_cannon.xray=X射线 -weapon.elecGun.glass_cannon.gamma=γ射线 \ No newline at end of file +weapon.elecGun.glass_cannon.gamma=伽马射线 +hadron.error=错误! +container.reactor=增殖反应堆 +death.attack.subAtomic=%1$s 的原子被 %2$s 摧毁 \ No newline at end of file From d3907c72aa3fc0d4fcbd9c6e90337fd4d98e1c92 Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Sun, 11 Jun 2023 20:59:22 -0500 Subject: [PATCH 113/432] Minor addition in pollution code. (clamping values) --- .../com/hbm/handler/pollution/PollutionHandler.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java index 16d91da8d..1cd2250b8 100644 --- a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java +++ b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java @@ -172,10 +172,18 @@ public class PollutionHandler { data.pollution[S] *= 0.8F; } else { data.pollution[S] *= 0.99F; + /* Clamp soot pollution to 0 near low values. */ + if(data.pollution[S] < 0.0001F) { + data.pollution[S] = 0; + } } - + data.pollution[H] *= 0.999F; - + /* Clamp Heavy pollution to 0 near low values. */ + if(data.pollution[H] < 0.001F) { + data.pollution[H] = 0; + } + /* SPREADING */ //apply new data to self PollutionData newData = newPollution.get(chunk.getKey()); From b9c23718484ecabe6e0c494a6611a07a14f2a328 Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Sun, 11 Jun 2023 21:52:31 -0500 Subject: [PATCH 114/432] Small changes to Boiler callback code following the change with OC and string returns. --- .../machine/rbmk/TileEntityRBMKBoiler.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java index 6faf888fa..92dd33539 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java @@ -383,10 +383,10 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I @Optional.Method(modid = "OpenComputers") public Object[] getSteamType(Context context, Arguments args) { FluidType type = steam.getTankType(); - if(type == Fluids.STEAM) {return new Object[] {"0"};} - else if(type == Fluids.HOTSTEAM) {return new Object[] {"1"};} - else if(type == Fluids.SUPERHOTSTEAM) {return new Object[] {"2"};} - else if(type == Fluids.ULTRAHOTSTEAM) {return new Object[] {"3"};} + if(type == Fluids.STEAM) {return new Object[] {0};} + else if(type == Fluids.HOTSTEAM) {return new Object[] {1};} + else if(type == Fluids.SUPERHOTSTEAM) {return new Object[] {2};} + else if(type == Fluids.ULTRAHOTSTEAM) {return new Object[] {3};} else {return new Object[] {"Unknown Error"};} } @@ -401,16 +401,16 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I } if(type == 0) { steam.setTankType(Fluids.STEAM); - return new Object[] {"true"}; + return new Object[] {true}; } else if(type == 1) { steam.setTankType(Fluids.HOTSTEAM); - return new Object[] {"true"}; + return new Object[] {true}; } else if(type == 2) { steam.setTankType(Fluids.SUPERHOTSTEAM); - return new Object[] {"true"}; + return new Object[] {true}; } else { steam.setTankType(Fluids.ULTRAHOTSTEAM); - return new Object[] {"true"}; + return new Object[] {true}; } } From 3ab84d4f8a4f59722d85757158438b2eb8763234 Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Sun, 11 Jun 2023 22:31:53 -0500 Subject: [PATCH 115/432] Percentage my beloved --- .../com/hbm/tileentity/machine/TileEntityReactorResearch.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorResearch.java b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorResearch.java index aae6849e0..3e17bf1e0 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorResearch.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorResearch.java @@ -400,7 +400,7 @@ public class TileEntityReactorResearch extends TileEntityMachineBase implements @Callback @Optional.Method(modid = "OpenComputers") public Object[] getLevel(Context context, Arguments args) { - return new Object[] {level}; + return new Object[] {level * 100}; } @Callback From 506a70a413063c4683d31d837e75f05b78358e8a Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Sun, 11 Jun 2023 23:26:53 -0500 Subject: [PATCH 116/432] geiger counter OC compat --- .../tileentity/machine/TileEntityGeiger.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityGeiger.java b/src/main/java/com/hbm/tileentity/machine/TileEntityGeiger.java index e9b9e17db..ac7bddef0 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityGeiger.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityGeiger.java @@ -4,9 +4,15 @@ import java.util.ArrayList; import java.util.List; import com.hbm.handler.radiation.ChunkRadiationManager; +import cpw.mods.fml.common.Optional; +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; +import li.cil.oc.api.network.SimpleComponent; import net.minecraft.tileentity.TileEntity; -public class TileEntityGeiger extends TileEntity { +@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) +public class TileEntityGeiger extends TileEntity implements SimpleComponent { int timer = 0; int ticker = 0; @@ -57,5 +63,15 @@ public class TileEntityGeiger extends TileEntity { int rads = (int)Math.ceil(ChunkRadiationManager.proxy.getRadiation(worldObj, xCoord, yCoord, zCoord)); return rads; } + @Override + public String getComponentName() { + return "ntm_geiger"; + } + + @Callback + @Optional.Method(modid = "OpenComputers") + public Object[] getRads(Context context, Arguments args) { + return new Object[] {check()}; + } } From 11fc87d0ad0ad32ae57a39648bb6ddf726826851 Mon Sep 17 00:00:00 2001 From: Toshayo Date: Sat, 10 Jun 2023 15:43:05 +0200 Subject: [PATCH 117/432] Changed decimal colors to hexadecimal --- src/main/java/com/hbm/potion/HbmPotion.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/hbm/potion/HbmPotion.java b/src/main/java/com/hbm/potion/HbmPotion.java index 7d5855009..a7688f2da 100644 --- a/src/main/java/com/hbm/potion/HbmPotion.java +++ b/src/main/java/com/hbm/potion/HbmPotion.java @@ -47,10 +47,10 @@ public class HbmPotion extends Potion { } public static void init() { - taint = registerPotion(PotionConfig.taintID, true, 8388736, "potion.hbm_taint", 0, 0); - radiation = registerPotion(PotionConfig.radiationID, true, 8700200, "potion.hbm_radiation", 1, 0); - bang = registerPotion(PotionConfig.bangID, true, 1118481, "potion.hbm_bang", 3, 0); - mutation = registerPotion(PotionConfig.mutationID, false, 8388736, "potion.hbm_mutation", 2, 0); + taint = registerPotion(PotionConfig.taintID, true, 0x800080, "potion.hbm_taint", 0, 0); + radiation = registerPotion(PotionConfig.radiationID, true, 0x84C128, "potion.hbm_radiation", 1, 0); + bang = registerPotion(PotionConfig.bangID, true, 0x111111, "potion.hbm_bang", 3, 0); + mutation = registerPotion(PotionConfig.mutationID, false, 0x800080, "potion.hbm_mutation", 2, 0); radx = registerPotion(PotionConfig.radxID, false, 0xBB4B00, "potion.hbm_radx", 5, 0); lead = registerPotion(PotionConfig.leadID, true, 0x767682, "potion.hbm_lead", 6, 0); radaway = registerPotion(PotionConfig.radawayID, false, 0xBB4B00, "potion.hbm_radaway", 7, 0); @@ -58,7 +58,7 @@ public class HbmPotion extends Potion { phosphorus = registerPotion(PotionConfig.phosphorusID, true, 0xFFFF00, "potion.hbm_phosphorus", 1, 1); stability = registerPotion(PotionConfig.stabilityID, false, 0xD0D0D0, "potion.hbm_stability", 2, 1); potionsickness = registerPotion(PotionConfig.potionsicknessID, false, 0xff8080, "potion.hbm_potionsickness", 3, 1); - death = registerPotion(PotionConfig.deathID, false, 1118481, "potion.hbm_death", 4, 1); + death = registerPotion(PotionConfig.deathID, false, 0x111111, "potion.hbm_death", 4, 1); } public static HbmPotion registerPotion(int id, boolean isBad, int color, String name, int x, int y) { From d3e6e226007966c01614f5d40a8e6c2abd645e3e Mon Sep 17 00:00:00 2001 From: Toshayo Date: Mon, 12 Jun 2023 11:18:15 +0200 Subject: [PATCH 118/432] Bring back CurseForge config example file --- curseforge.properties.example | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 curseforge.properties.example diff --git a/curseforge.properties.example b/curseforge.properties.example new file mode 100644 index 000000000..002b2b4f5 --- /dev/null +++ b/curseforge.properties.example @@ -0,0 +1,5 @@ +# CurseForge API token (obtainable from https://legacy.curseforge.com/account/api-tokens) +api_key= + +# CurseForge project ID +project_id= From e94548ed0c1b30aa53ca3539149c0c9d289f81c3 Mon Sep 17 00:00:00 2001 From: Toshayo Date: Mon, 12 Jun 2023 11:58:11 +0200 Subject: [PATCH 119/432] Better CurseForge task configuration: display name, game versions and a fix for changelog backup not being replaced --- build.gradle | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index 9a1ea516d..8cd9a478d 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,8 @@ +import org.gradle.plugins.ide.eclipse.model.internal.FileReferenceFactory + import java.nio.file.Files import java.nio.file.Paths +import java.nio.file.StandardCopyOption buildscript { repositories { @@ -53,7 +56,7 @@ eclipse.classpath.file.whenMerged { cp -> } // Create file reference factory - def fileref = new org.gradle.plugins.ide.eclipse.model.internal.FileReferenceFactory() + def fileref = new FileReferenceFactory() // Find all codechicken development jars cp.entries.findAll { entry -> entry.path.contains("codechicken") && entry.path.endsWith("-dev.jar") }.forEach { entry -> @@ -132,12 +135,20 @@ if(Files.exists(Paths.get("curseforge.properties"))) { projectId = cfprops.project_id releaseType = "release" + displayName = "Hbm's Nuclear Tech Mod " + version_name.replace("_", "") + " for Minecraft 1.7.10" + + gameVersions.addAll([ + "Forge", + "Java 8", + "Client", "Server" + ]) + if (Files.exists(Paths.get("changelog"))) { changelog = String.join("\r\n", Files.readAllLines(Paths.get("changelog"))) // Perform a backup of the changelog and create a new file for next changes doLast { - Files.move(Paths.get("changelog"), Paths.get("changelog.bak")) + Files.move(Paths.get("changelog"), Paths.get("changelog.bak"), StandardCopyOption.REPLACE_EXISTING) Files.createFile(Paths.get("changelog")) } } From 2a01d7f2fb53a47eea2b681d12876e8c3afee600 Mon Sep 17 00:00:00 2001 From: Boblet Date: Mon, 12 Jun 2023 13:58:19 +0200 Subject: [PATCH 120/432] configurable fluid traits --- .../handler/pollution/PollutionHandler.java | 1 + .../com/hbm/inventory/fluid/FluidType.java | 2 +- .../java/com/hbm/inventory/fluid/Fluids.java | 79 +++++++++++++++++++ .../inventory/fluid/trait/FT_Combustible.java | 17 ++++ .../inventory/fluid/trait/FT_Coolable.java | 35 +++++++- .../inventory/fluid/trait/FT_Corrosive.java | 16 ++++ .../inventory/fluid/trait/FT_Flammable.java | 15 ++++ .../inventory/fluid/trait/FT_Heatable.java | 47 +++++++++++ .../hbm/inventory/fluid/trait/FT_Poison.java | 16 ++++ .../hbm/inventory/fluid/trait/FT_Toxin.java | 76 ++++++++++++++++++ .../fluid/trait/FT_VentRadiation.java | 15 ++++ .../hbm/inventory/fluid/trait/FluidTrait.java | 32 ++++++++ 12 files changed, 348 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java index 16d91da8d..570f91415 100644 --- a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java +++ b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java @@ -123,6 +123,7 @@ public class PollutionHandler { try { File pollutionFile = new File(dirPath, fileName); + if(!pollutionFile.getParentFile().exists()) pollutionFile.getParentFile().mkdirs(); if(!pollutionFile.exists()) pollutionFile.createNewFile(); NBTTagCompound data = perWorld.get(world).writeToNBT(); CompressedStreamTools.writeCompressed(data, new FileOutputStream(pollutionFile)); diff --git a/src/main/java/com/hbm/inventory/fluid/FluidType.java b/src/main/java/com/hbm/inventory/fluid/FluidType.java index d4dd7c272..390fcfede 100644 --- a/src/main/java/com/hbm/inventory/fluid/FluidType.java +++ b/src/main/java/com/hbm/inventory/fluid/FluidType.java @@ -48,7 +48,7 @@ public class FluidType { public double compression = DEFAULT_COMPRESSION; public HashMap containers = new HashMap(); - private HashMap, FluidTrait> traits = new HashMap(); + public HashMap, FluidTrait> traits = new HashMap(); //public List enumTraits = new ArrayList(); private ResourceLocation texture; diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index 6a779d673..f9de9f7b3 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -1,12 +1,22 @@ package com.hbm.inventory.fluid; +import java.io.File; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import java.util.Map.Entry; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; import com.hbm.inventory.fluid.trait.*; import com.hbm.inventory.fluid.trait.FluidTraitSimple.*; import com.hbm.lib.ModDamageSource; +import com.hbm.main.MainRegistry; import com.hbm.potion.HbmPotion; import com.hbm.inventory.fluid.trait.FT_Combustible.FuelGrade; import com.hbm.inventory.fluid.trait.FT_Coolable.CoolingType; @@ -20,6 +30,8 @@ import net.minecraft.potion.PotionEffect; public class Fluids { + public static final Gson gson = new Gson(); + public static FluidType NONE; public static FluidType WATER; public static FluidType STEAM; @@ -562,6 +574,73 @@ public class Fluids { registerCalculatedFuel(SYNGAS, (coalHeat * (1000 /* bucket */ / 100 /* mB per coal */) * flammabilityLow * demandLow * complexityChemplant) * 1.5, 1.25, FuelGrade.GAS); //same as coal oil, +50% bonus registerCalculatedFuel(OXYHYDROGEN, 5_000, 3, FuelGrade.GAS); // whatever + + File folder = MainRegistry.configHbmDir; + + File config = new File(folder.getAbsolutePath() + File.separatorChar + "hbmFluids.json"); + File template = new File(folder.getAbsolutePath() + File.separatorChar + "_hbmFluids.json"); + + if(!config.exists()) { + writeDefault(template); + } else { + readConfig(config); + } + } + + private static void writeDefault(File file) { + + try { + JsonWriter writer = new JsonWriter(new FileWriter(file)); + writer.setIndent(" "); + writer.beginObject(); + + for(FluidType type : metaOrder) { + writer.name(type.getUnlocalizedName()).beginObject(); + + for(Entry, FluidTrait> entry : type.traits.entrySet()) { + writer.name(FluidTrait.traitNameMap.inverse().get(entry.getKey())).beginObject(); + entry.getValue().serializeJSON(writer); + writer.endObject(); + } + + writer.endObject(); + } + + writer.endObject(); + writer.close(); + } catch(IOException e) { + e.printStackTrace(); + } + } + + private static void readConfig(File config) { + + try { + JsonObject json = gson.fromJson(new FileReader(config), JsonObject.class); + + for(FluidType type : metaOrder) { + + JsonElement element = json.get(type.getUnlocalizedName()); + if(element != null) { + type.traits.clear(); + JsonObject obj = element.getAsJsonObject(); + + for(Entry entry : obj.entrySet()) { + Class traitClass = FluidTrait.traitNameMap.get(entry.getKey()); + try { + FluidTrait trait = traitClass.newInstance(); + trait.deserializeJSON(entry.getValue().getAsJsonObject()); + type.addTraits(trait); + } catch(Exception ex) { + ex.printStackTrace(); + } + } + } + } + + } catch(Exception ex) { + ex.printStackTrace(); + } } private static void registerCalculatedFuel(FluidType type, double base, double combustMult, FuelGrade grade) { diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Combustible.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Combustible.java index a88ac2c35..a297d40ca 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Combustible.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Combustible.java @@ -1,7 +1,10 @@ package com.hbm.inventory.fluid.trait; +import java.io.IOException; import java.util.List; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; import com.hbm.util.BobMathUtil; import net.minecraft.util.EnumChatFormatting; @@ -11,6 +14,8 @@ public class FT_Combustible extends FluidTrait { protected FuelGrade fuelGrade; protected long combustionEnergy; + public FT_Combustible() { } + public FT_Combustible(FuelGrade grade, long energy) { this.fuelGrade = grade; this.combustionEnergy = energy; @@ -53,4 +58,16 @@ public class FT_Combustible extends FluidTrait { return this.grade; } } + + @Override + public void serializeJSON(JsonWriter writer) throws IOException { + writer.name("energy").value(combustionEnergy); + writer.name("grade").value(fuelGrade.name()); + } + + @Override + public void deserializeJSON(JsonObject obj) { + this.combustionEnergy = obj.get("energy").getAsLong(); + this.fuelGrade = FuelGrade.valueOf(obj.get("grade").getAsString()); + } } diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Coolable.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Coolable.java index 25bd1488d..f25e77c35 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Coolable.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Coolable.java @@ -1,9 +1,14 @@ package com.hbm.inventory.fluid.trait; +import java.io.IOException; import java.util.HashMap; import java.util.List; +import java.util.Map.Entry; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; import net.minecraft.util.EnumChatFormatting; @@ -11,10 +16,12 @@ public class FT_Coolable extends FluidTrait { protected HashMap efficiency = new HashMap(); - public final FluidType coolsTo; + public FluidType coolsTo; public int amountReq; public int amountProduced; - public final int heatEnergy; + public int heatEnergy; + + public FT_Coolable() { } public FT_Coolable(FluidType type, int req, int prod, int heat) { this.coolsTo = type; @@ -56,4 +63,28 @@ public class FT_Coolable extends FluidTrait { this.name = name; } } + + @Override + public void serializeJSON(JsonWriter writer) throws IOException { + writer.name("coolsTo").value(this.coolsTo.getUnlocalizedName()); + writer.name("amountReq").value(this.amountReq); + writer.name("amountProd").value(this.amountProduced); + writer.name("heatEnergy").value(this.heatEnergy); + + for(Entry entry : this.efficiency.entrySet()) { + writer.name(entry.getKey().name()).value(entry.getValue()); + } + } + + @Override + public void deserializeJSON(JsonObject obj) { + this.coolsTo = Fluids.fromName(obj.get("coolsTo").getAsString()); + this.amountReq = obj.get("amountReq").getAsInt(); + this.amountProduced = obj.get("amountProd").getAsInt(); + this.heatEnergy = obj.get("heatEnergy").getAsInt(); + + for(CoolingType type : CoolingType.values()) { + if(obj.has(type.name())) efficiency.put(type, obj.get(type.name()).getAsDouble()); + } + } } diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Corrosive.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Corrosive.java index 4e0354033..2a459e25c 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Corrosive.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Corrosive.java @@ -1,7 +1,11 @@ package com.hbm.inventory.fluid.trait; +import java.io.IOException; import java.util.List; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; + import net.minecraft.util.EnumChatFormatting; public class FT_Corrosive extends FluidTrait { @@ -9,6 +13,8 @@ public class FT_Corrosive extends FluidTrait { /* 0-100 */ private int rating; + public FT_Corrosive() { } + public FT_Corrosive(int rating) { this.rating = rating; } @@ -29,4 +35,14 @@ public class FT_Corrosive extends FluidTrait { else info.add(EnumChatFormatting.YELLOW + "[Corrosive]"); } + + @Override + public void serializeJSON(JsonWriter writer) throws IOException { + writer.name("rating").value(rating); + } + + @Override + public void deserializeJSON(JsonObject obj) { + this.rating = obj.get("rating").getAsInt(); + } } diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Flammable.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Flammable.java index c2b582ae5..82e309ef9 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Flammable.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Flammable.java @@ -1,7 +1,10 @@ package com.hbm.inventory.fluid.trait; +import java.io.IOException; import java.util.List; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; import com.hbm.util.BobMathUtil; import net.minecraft.util.EnumChatFormatting; @@ -11,6 +14,8 @@ public class FT_Flammable extends FluidTrait { /** How much heat energy (usually translates into HE 1:1) 1000mB hold */ private long energy; + public FT_Flammable() { } + public FT_Flammable(long energy) { this.energy = energy; } @@ -28,4 +33,14 @@ public class FT_Flammable extends FluidTrait { if(energy > 0) info.add(EnumChatFormatting.YELLOW + "Provides " + EnumChatFormatting.RED + "" + BobMathUtil.getShortNumber(energy) + "TU " + EnumChatFormatting.YELLOW + "per bucket"); } + + @Override + public void serializeJSON(JsonWriter writer) throws IOException { + writer.name("energy").value(energy); + } + + @Override + public void deserializeJSON(JsonObject obj) { + this.energy = obj.get("energy").getAsLong(); + } } diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Heatable.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Heatable.java index e01169076..310083cf3 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Heatable.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Heatable.java @@ -1,12 +1,18 @@ package com.hbm.inventory.fluid.trait; +import com.google.gson.JsonArray; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; import net.minecraft.util.EnumChatFormatting; +import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import java.util.Map.Entry; public class FT_Heatable extends FluidTrait { @@ -71,4 +77,45 @@ public class FT_Heatable extends FluidTrait { this.name = name; } } + + @Override + public void serializeJSON(JsonWriter writer) throws IOException { + + writer.name("steps").beginArray(); + + for(HeatingStep step : steps) { + writer.beginObject(); + writer.name("typeProduced").value(step.typeProduced.getUnlocalizedName()); + writer.name("amountReq").value(step.amountReq); + writer.name("amountProd").value(step.amountProduced); + writer.name("heatReq").value(step.heatReq); + writer.endObject(); + } + + writer.endArray(); + + for(Entry entry : this.efficiency.entrySet()) { + writer.name(entry.getKey().name()).value(entry.getValue()); + } + } + + @Override + public void deserializeJSON(JsonObject obj) { + + JsonArray steps = obj.get("steps").getAsJsonArray(); + + for(int i = 0; i < steps.size(); i++) { + JsonObject step = steps.get(i).getAsJsonObject(); + this.steps.add(new HeatingStep( + step.get("amountReq").getAsInt(), + step.get("heatReq").getAsInt(), + Fluids.fromName(step.get("typeProduced").getAsString()), + step.get("amountProd").getAsInt() + )); + } + + for(HeatingType type : HeatingType.values()) { + if(obj.has(type.name())) efficiency.put(type, obj.get(type.name()).getAsDouble()); + } + } } diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Poison.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Poison.java index 2c176bc3e..335c182cb 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Poison.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Poison.java @@ -1,7 +1,11 @@ package com.hbm.inventory.fluid.trait; +import java.io.IOException; import java.util.List; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; + import net.minecraft.util.EnumChatFormatting; @Deprecated //use FT_Toxin instead @@ -10,6 +14,8 @@ public class FT_Poison extends FluidTrait { protected boolean withering = false; protected int level = 0; + public FT_Poison() { } + public FT_Poison(boolean withering, int level) { this.withering = withering; this.level = level; @@ -27,4 +33,14 @@ public class FT_Poison extends FluidTrait { public void addInfoHidden(List info) { info.add(EnumChatFormatting.GREEN + "[Toxic Fumes]"); } + + @Override public void serializeJSON(JsonWriter writer) throws IOException { + writer.name("level").value(this.level); + writer.name("withering").value(this.withering); + } + + @Override public void deserializeJSON(JsonObject obj) { + this.level = obj.get("level").getAsInt(); + this.withering = obj.get("withering").getAsBoolean(); + } } diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Toxin.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Toxin.java index fc759219b..354da3175 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Toxin.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Toxin.java @@ -1,8 +1,12 @@ package com.hbm.inventory.fluid.trait; +import java.io.IOException; import java.util.ArrayList; import java.util.List; +import com.google.gson.JsonArray; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; import com.hbm.util.ArmorRegistry; import com.hbm.util.ArmorUtil; import com.hbm.util.I18nUtil; @@ -132,4 +136,76 @@ public class FT_Toxin extends FluidTrait { } } } + + @Override public void serializeJSON(JsonWriter writer) throws IOException { + + writer.name("entries").beginArray(); + + for(ToxinEntry entry : entries) { + writer.beginObject(); + + if(entry instanceof ToxinDirectDamage) { + ToxinDirectDamage e = (ToxinDirectDamage) entry; + writer.name("type").value("directdamage"); + writer.name("amount").value(e.amount); + writer.name("source").value(e.damage.damageType); + writer.name("delay").value(e.delay); + writer.name("hazmat").value(e.fullBody); + writer.name("masktype").value(e.clazz.name()); + } + if(entry instanceof ToxinEffects) { + ToxinEffects e = (ToxinEffects) entry; + writer.name("type").value("effects"); + writer.name("effects").beginArray(); + writer.setIndent(""); + for(PotionEffect effect : e.effects) { + writer.beginArray(); + writer.value(effect.getPotionID()).value(effect.getDuration()).value(effect.getAmplifier()).value(effect.getIsAmbient()); + writer.endArray(); + } + writer.endArray(); + writer.setIndent(" "); + writer.name("hazmat").value(e.fullBody); + writer.name("masktype").value(e.clazz.name()); + } + + writer.endObject(); + } + + writer.endArray(); + } + + @Override public void deserializeJSON(JsonObject obj) { + JsonArray array = obj.get("entries").getAsJsonArray(); + + for(int i = 0; i < array.size(); i++) { + JsonObject entry = array.get(i).getAsJsonObject(); + String name = entry.get("type").getAsString(); + + if(name.equals("directdamage")) { + ToxinDirectDamage e = new ToxinDirectDamage( + new DamageSource(entry.get("source").getAsString()), + entry.get("amount").getAsFloat(), + entry.get("delay").getAsInt(), + HazardClass.valueOf(entry.get("masktype").getAsString()), + entry.get("hazmat").getAsBoolean() + ); + this.entries.add(e); + } + + if(name.equals("effects")) { + ToxinEffects e = new ToxinEffects( + HazardClass.valueOf(entry.get("masktype").getAsString()), + entry.get("hazmat").getAsBoolean() + ); + JsonArray effects = entry.get("effects").getAsJsonArray(); + for(int j = 0; j < effects.size(); j++) { + JsonArray effect = effects.get(j).getAsJsonArray(); + PotionEffect potion = new PotionEffect(effect.get(0).getAsInt(), effect.get(1).getAsInt(), effect.get(2).getAsInt(), effect.get(3).getAsBoolean()); + e.effects.add(potion); + } + this.entries.add(e); + } + } + } } diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_VentRadiation.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_VentRadiation.java index de8dd7764..516ef0e81 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_VentRadiation.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_VentRadiation.java @@ -1,7 +1,10 @@ package com.hbm.inventory.fluid.trait; +import java.io.IOException; import java.util.List; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; import com.hbm.handler.radiation.ChunkRadiationManager; import com.hbm.inventory.fluid.tank.FluidTank; @@ -12,6 +15,8 @@ public class FT_VentRadiation extends FluidTrait { float radPerMB = 0; + public FT_VentRadiation() { } + public FT_VentRadiation(float rad) { this.radPerMB = rad; } @@ -29,4 +34,14 @@ public class FT_VentRadiation extends FluidTrait { public void addInfo(List info) { info.add(EnumChatFormatting.YELLOW + "[Radioactive]"); } + + @Override + public void serializeJSON(JsonWriter writer) throws IOException { + writer.name("radiation").value(radPerMB); + } + + @Override + public void deserializeJSON(JsonObject obj) { + this.radPerMB = obj.get("radiation").getAsFloat(); + } } diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FluidTrait.java b/src/main/java/com/hbm/inventory/fluid/trait/FluidTrait.java index 128e945b0..2d5bac5ab 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FluidTrait.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FluidTrait.java @@ -1,12 +1,41 @@ package com.hbm.inventory.fluid.trait; +import java.io.IOException; import java.util.List; +import com.google.common.collect.HashBiMap; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.inventory.fluid.trait.FluidTraitSimple.*; import net.minecraft.world.World; public abstract class FluidTrait { + + public static HashBiMap> traitNameMap = HashBiMap.create(); + + static { + traitNameMap.put("combustible", FT_Combustible.class); // x + traitNameMap.put("coolable", FT_Coolable.class); // x + traitNameMap.put("corrosive", FT_Corrosive.class); // x + traitNameMap.put("flammable", FT_Flammable.class); // x + traitNameMap.put("heatable", FT_Heatable.class); // x + traitNameMap.put("poison", FT_Poison.class); // x + traitNameMap.put("toxin", FT_Toxin.class); // x + traitNameMap.put("ventradiation", FT_VentRadiation.class); // x + + traitNameMap.put("gaseous", FT_Gaseous.class); + traitNameMap.put("gaseous_art", FT_Gaseous_ART.class); + traitNameMap.put("liquid", FT_Liquid.class); + traitNameMap.put("viscous", FT_Viscous.class); + traitNameMap.put("plasma", FT_Plasma.class); + traitNameMap.put("amat", FT_Amat.class); + traitNameMap.put("leadcontainer", FT_LeadContainer.class); + traitNameMap.put("delicious", FT_Delicious.class); + traitNameMap.put("noid", FT_NoID.class); + traitNameMap.put("nocontainer", FT_NoContainer.class); + } /** Important information that should always be displayed */ public void addInfo(List info) { } @@ -14,4 +43,7 @@ public abstract class FluidTrait { public void addInfoHidden(List info) { } public void onFluidRelease(World world, int x, int y, int z, FluidTank tank, int overflowAmount) { } + + public void serializeJSON(JsonWriter writer) throws IOException { } + public void deserializeJSON(JsonObject obj) { } } From 58b08ac039be659e09fc723859fbaa06a5c9599b Mon Sep 17 00:00:00 2001 From: Boblet Date: Mon, 12 Jun 2023 14:32:23 +0200 Subject: [PATCH 121/432] explosion chunk loader config --- src/main/java/com/hbm/config/BombConfig.java | 3 + .../com/hbm/entity/logic/EntityBalefire.java | 83 +++++---- .../hbm/entity/logic/EntityEnvirEffect.java | 49 ------ .../entity/logic/EntityEnvirEffectRad.java | 15 -- .../logic/EntityExplosionChunkloading.java | 51 ++++++ .../entity/logic/EntityNukeExplosionMK3.java | 89 +++++----- .../entity/logic/EntityNukeExplosionMK5.java | 10 +- .../com/hbm/entity/logic/EntityTomBlast.java | 9 +- .../missile/EntityMissileBaseAdvanced.java | 160 ++++++++---------- .../com/hbm/explosion/nt/IExplosionLogic.java | 1 + src/main/java/com/hbm/explosion/nt/Mark5.java | 1 + 11 files changed, 227 insertions(+), 244 deletions(-) delete mode 100644 src/main/java/com/hbm/entity/logic/EntityEnvirEffect.java delete mode 100644 src/main/java/com/hbm/entity/logic/EntityEnvirEffectRad.java create mode 100644 src/main/java/com/hbm/entity/logic/EntityExplosionChunkloading.java diff --git a/src/main/java/com/hbm/config/BombConfig.java b/src/main/java/com/hbm/config/BombConfig.java index df2eda4b6..8c32d0a8d 100644 --- a/src/main/java/com/hbm/config/BombConfig.java +++ b/src/main/java/com/hbm/config/BombConfig.java @@ -27,6 +27,7 @@ public class BombConfig { public static int limitExplosionLifespan = 0; public static int rain = 0; public static int cont = 0; + public static boolean chunkloading = true; public static void loadFromConfig(Configuration config) { @@ -100,5 +101,7 @@ public class BombConfig { Property rainCont = config.get(CATEGORY_NUKE, "6.06_falloutRainRadiation", 0); rainCont.comment = "Radiation in 100th RADs created by fallout rain"; cont = rainCont.getInt(); + + chunkloading = CommonConfig.createConfigBool(config, CATEGORY_NUKE, "6.XX_enableChunkLoading", "Allows all types of procedural explosions to keep the central chunk loaded.", true); } } diff --git a/src/main/java/com/hbm/entity/logic/EntityBalefire.java b/src/main/java/com/hbm/entity/logic/EntityBalefire.java index 00d0f38e9..73c8e51b2 100644 --- a/src/main/java/com/hbm/entity/logic/EntityBalefire.java +++ b/src/main/java/com/hbm/entity/logic/EntityBalefire.java @@ -7,11 +7,10 @@ import com.hbm.explosion.ExplosionBalefire; import com.hbm.explosion.ExplosionNukeGeneric; import com.hbm.main.MainRegistry; -import net.minecraft.entity.Entity; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; -public class EntityBalefire extends Entity { +public class EntityBalefire extends EntityExplosionChunkloading { public int age = 0; public int destructionRange = 0; @@ -53,48 +52,46 @@ public class EntityBalefire extends Entity { super(p_i1582_1_); } - @Override - public void onUpdate() { - super.onUpdate(); - - if(!this.did) - { - if(GeneralConfig.enableExtendedLogging && !worldObj.isRemote) - MainRegistry.logger.log(Level.INFO, "[NUKE] Initialized BF explosion at " + posX + " / " + posY + " / " + posZ + " with strength " + destructionRange + "!"); - - exp = new ExplosionBalefire((int)this.posX, (int)this.posY, (int)this.posZ, this.worldObj, this.destructionRange); - - this.did = true; - } - - speed += 1; //increase speed to keep up with expansion - - boolean flag = false; - for(int i = 0; i < this.speed; i++) - { - flag = exp.update(); - - if(flag) { - this.setDead(); - } - } - - if(!mute && rand.nextInt(5) == 0) - this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, "random.explode", 10000.0F, 0.8F + this.rand.nextFloat() * 0.2F); - - if(!flag) { - - if(!mute) - this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, "ambient.weather.thunder", 10000.0F, 0.8F + this.rand.nextFloat() * 0.2F); - - ExplosionNukeGeneric.dealDamage(this.worldObj, this.posX, this.posY, this.posZ, this.destructionRange * 2); - } - - age++; - } - @Override - protected void entityInit() { } + public void onUpdate() { + super.onUpdate(); + + if(!worldObj.isRemote) loadChunk((int) Math.floor(posX / 16D), (int) Math.floor(posZ / 16D)); + + if(!this.did) { + if(GeneralConfig.enableExtendedLogging && !worldObj.isRemote) + MainRegistry.logger.log(Level.INFO, "[NUKE] Initialized BF explosion at " + posX + " / " + posY + " / " + posZ + " with strength " + destructionRange + "!"); + + exp = new ExplosionBalefire((int) this.posX, (int) this.posY, (int) this.posZ, this.worldObj, this.destructionRange); + + this.did = true; + } + + speed += 1; // increase speed to keep up with expansion + + boolean flag = false; + for(int i = 0; i < this.speed; i++) { + flag = exp.update(); + + if(flag) { + clearChunkLoader(); + this.setDead(); + } + } + + if(!mute && rand.nextInt(5) == 0) + this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, "random.explode", 10000.0F, 0.8F + this.rand.nextFloat() * 0.2F); + + if(!flag) { + + if(!mute) + this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, "ambient.weather.thunder", 10000.0F, 0.8F + this.rand.nextFloat() * 0.2F); + + ExplosionNukeGeneric.dealDamage(this.worldObj, this.posX, this.posY, this.posZ, this.destructionRange * 2); + } + + age++; + } public EntityBalefire mute() { this.mute = true; diff --git a/src/main/java/com/hbm/entity/logic/EntityEnvirEffect.java b/src/main/java/com/hbm/entity/logic/EntityEnvirEffect.java deleted file mode 100644 index 75c912a32..000000000 --- a/src/main/java/com/hbm/entity/logic/EntityEnvirEffect.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.hbm.entity.logic; - -import net.minecraft.entity.Entity; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; - -public abstract class EntityEnvirEffect extends Entity { - - public int maxAge = 100; - public int blockRadius = 7; - public int entityRadius = 7; - public int chance = 10; - public boolean hasBlockEffect = true; - public boolean hasEntityEffect = true; - - public EntityEnvirEffect(World p_i1582_1_) { - super(p_i1582_1_); - } - - @Override - protected void entityInit() { - - } - - @Override - protected void readEntityFromNBT(NBTTagCompound nbt) { - this.ticksExisted = nbt.getInteger("lifetime"); - this.maxAge = nbt.getInteger("lifecap"); - } - - @Override - protected void writeEntityToNBT(NBTTagCompound nbt) { - nbt.setInteger("lifetime", this.ticksExisted); - nbt.setInteger("lifecap", this.maxAge); - } - - public void onUpdate() { - - if(hasBlockEffect && rand.nextInt(chance) == 0) - applyBlockEffect(); - - if(hasEntityEffect && rand.nextInt(chance) == 0) - applyEntityEffect(); - } - - private void applyBlockEffect() { }; - private void applyEntityEffect() { }; - -} diff --git a/src/main/java/com/hbm/entity/logic/EntityEnvirEffectRad.java b/src/main/java/com/hbm/entity/logic/EntityEnvirEffectRad.java deleted file mode 100644 index f67bcaf6a..000000000 --- a/src/main/java/com/hbm/entity/logic/EntityEnvirEffectRad.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.hbm.entity.logic; - -import net.minecraft.world.World; - -public class EntityEnvirEffectRad extends EntityEnvirEffect { - - public EntityEnvirEffectRad(World p_i1582_1_) { - super(p_i1582_1_); - } - - public void randomizeAge(int min, int max) { - this.maxAge = min + rand.nextInt(max - min); - } - -} diff --git a/src/main/java/com/hbm/entity/logic/EntityExplosionChunkloading.java b/src/main/java/com/hbm/entity/logic/EntityExplosionChunkloading.java new file mode 100644 index 000000000..ca2ad6f6f --- /dev/null +++ b/src/main/java/com/hbm/entity/logic/EntityExplosionChunkloading.java @@ -0,0 +1,51 @@ +package com.hbm.entity.logic; + +import com.hbm.main.MainRegistry; + +import net.minecraft.entity.Entity; +import net.minecraft.world.ChunkCoordIntPair; +import net.minecraft.world.World; +import net.minecraftforge.common.ForgeChunkManager; +import net.minecraftforge.common.ForgeChunkManager.Ticket; +import net.minecraftforge.common.ForgeChunkManager.Type; + +public abstract class EntityExplosionChunkloading extends Entity implements IChunkLoader { + + private Ticket loaderTicket; + private ChunkCoordIntPair loadedChunk; + + public EntityExplosionChunkloading(World world) { + super(world); + } + + @Override + protected void entityInit() { + init(ForgeChunkManager.requestTicket(MainRegistry.instance, worldObj, Type.ENTITY)); + } + + @Override + public void init(Ticket ticket) { + if(!worldObj.isRemote && ticket != null) { + if(loaderTicket == null) { + loaderTicket = ticket; + loaderTicket.bindEntity(this); + loaderTicket.getModData(); + } + ForgeChunkManager.forceChunk(loaderTicket, new ChunkCoordIntPair(chunkCoordX, chunkCoordZ)); + } + } + + public void loadChunk(int x, int z) { + + if(this.loadedChunk == null) { + this.loadedChunk = new ChunkCoordIntPair(x, z); + ForgeChunkManager.forceChunk(loaderTicket, loadedChunk); + } + } + + public void clearChunkLoader() { + if(!worldObj.isRemote && loaderTicket != null && loadedChunk != null) { + ForgeChunkManager.unforceChunk(loaderTicket, loadedChunk); + } + } +} diff --git a/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK3.java b/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK3.java index 93335b142..665d9550d 100644 --- a/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK3.java +++ b/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK3.java @@ -20,14 +20,13 @@ import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.Vec3; import net.minecraft.world.World; @Spaghetti("why???") -public class EntityNukeExplosionMK3 extends Entity { +public class EntityNukeExplosionMK3 extends EntityExplosionChunkloading { public int age = 0; public int destructionRange = 0; @@ -59,31 +58,32 @@ public class EntityNukeExplosionMK3 extends Entity { long time = nbt.getLong("milliTime"); - if(BombConfig.limitExplosionLifespan > 0 && System.currentTimeMillis() - time > BombConfig.limitExplosionLifespan * 1000) + if(BombConfig.limitExplosionLifespan > 0 && System.currentTimeMillis() - time > BombConfig.limitExplosionLifespan * 1000) { + this.clearChunkLoader(); this.setDead(); + } - if(this.waste) - { - exp = new ExplosionNukeAdvanced((int)this.posX, (int)this.posY, (int)this.posZ, this.worldObj, this.destructionRange, this.coefficient, 0); + if(this.waste) { + exp = new ExplosionNukeAdvanced((int) this.posX, (int) this.posY, (int) this.posZ, this.worldObj, this.destructionRange, this.coefficient, 0); exp.readFromNbt(nbt, "exp_"); - wst = new ExplosionNukeAdvanced((int)this.posX, (int)this.posY, (int)this.posZ, this.worldObj, (int)(this.destructionRange * 1.8), this.coefficient, 2); + wst = new ExplosionNukeAdvanced((int) this.posX, (int) this.posY, (int) this.posZ, this.worldObj, (int) (this.destructionRange * 1.8), this.coefficient, 2); wst.readFromNbt(nbt, "wst_"); - vap = new ExplosionNukeAdvanced((int)this.posX, (int)this.posY, (int)this.posZ, this.worldObj, (int)(this.destructionRange * 2.5), this.coefficient, 1); + vap = new ExplosionNukeAdvanced((int) this.posX, (int) this.posY, (int) this.posZ, this.worldObj, (int) (this.destructionRange * 2.5), this.coefficient, 1); vap.readFromNbt(nbt, "vap_"); - } else { + } else { - if(extType == 0) { - expl = new ExplosionFleija((int)this.posX, (int)this.posY, (int)this.posZ, this.worldObj, this.destructionRange, this.coefficient, this.coefficient2); + if(extType == 0) { + expl = new ExplosionFleija((int) this.posX, (int) this.posY, (int) this.posZ, this.worldObj, this.destructionRange, this.coefficient, this.coefficient2); expl.readFromNbt(nbt, "expl_"); - } - if(extType == 1) { - sol = new ExplosionSolinium((int)this.posX, (int)this.posY, (int)this.posZ, this.worldObj, this.destructionRange, this.coefficient, this.coefficient2); - sol.readFromNbt(nbt, "sol_"); - } - } - - this.did = true; - + } + if(extType == 1) { + sol = new ExplosionSolinium((int) this.posX, (int) this.posY, (int) this.posZ, this.worldObj, this.destructionRange, this.coefficient, this.coefficient2); + sol.readFromNbt(nbt, "sol_"); + } + } + + this.did = true; + } @Override @@ -120,6 +120,8 @@ public class EntityNukeExplosionMK3 extends Entity { @Override public void onUpdate() { super.onUpdate(); + + if(!worldObj.isRemote) loadChunk((int) Math.floor(posX / 16D), (int) Math.floor(posZ / 16D)); if(!this.did) { @@ -149,25 +151,31 @@ public class EntityNukeExplosionMK3 extends Entity { boolean flag = false; boolean flag3 = false; - for(int i = 0; i < this.speed; i++) - { - if(waste) { - flag = exp.update(); - wst.update(); - flag3 = vap.update(); - - if(flag3) { - this.setDead(); - } - } else { - if(extType == 0) - if(expl.update()) - this.setDead(); - if(extType == 1) - if(sol.update()) - this.setDead(); - } - } + for(int i = 0; i < this.speed; i++) { + if(waste) { + flag = exp.update(); + wst.update(); + flag3 = vap.update(); + + if(flag3) { + this.clearChunkLoader(); + this.setDead(); + } + } else { + if(extType == 0) { + if(expl.update()) { + this.clearChunkLoader(); + this.setDead(); + } + } + if(extType == 1) { + if(sol.update()) { + this.clearChunkLoader(); + this.setDead(); + } + } + } + } if(!flag) { @@ -196,9 +204,6 @@ public class EntityNukeExplosionMK3 extends Entity { age++; } - - @Override - protected void entityInit() { } public static HashMap at = new HashMap(); diff --git a/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK5.java b/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK5.java index e924e43da..15cb2679b 100644 --- a/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK5.java +++ b/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK5.java @@ -14,7 +14,6 @@ import com.hbm.util.ContaminationUtil; import com.hbm.util.ContaminationUtil.ContaminationType; import com.hbm.util.ContaminationUtil.HazardType; -import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; @@ -22,7 +21,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.Vec3; import net.minecraft.world.World; -public class EntityNukeExplosionMK5 extends Entity { +public class EntityNukeExplosionMK5 extends EntityExplosionChunkloading { //Strength of the blast public int strength; @@ -52,9 +51,12 @@ public class EntityNukeExplosionMK5 extends Entity { public void onUpdate() { if(strength == 0) { + this.clearChunkLoader(); this.setDead(); return; } + + if(!worldObj.isRemote) loadChunk((int) Math.floor(posX / 16D), (int) Math.floor(posZ / 16D)); for(Object player : this.worldObj.playerEntities) { ((EntityPlayer)player).triggerAchievement(MainRegistry.achManhattan); @@ -92,9 +94,11 @@ public class EntityNukeExplosionMK5 extends Entity { fallout.setScale((int)(this.length * 2.5 + falloutAdd) * BombConfig.falloutRange / 100); this.worldObj.spawnEntityInWorld(fallout); - + + this.clearChunkLoader(); this.setDead(); } else { + this.clearChunkLoader(); this.setDead(); } } diff --git a/src/main/java/com/hbm/entity/logic/EntityTomBlast.java b/src/main/java/com/hbm/entity/logic/EntityTomBlast.java index 4eb855576..093638a6d 100644 --- a/src/main/java/com/hbm/entity/logic/EntityTomBlast.java +++ b/src/main/java/com/hbm/entity/logic/EntityTomBlast.java @@ -8,11 +8,10 @@ import com.hbm.explosion.ExplosionTom; import com.hbm.main.MainRegistry; import com.hbm.saveddata.TomSaveData; -import net.minecraft.entity.Entity; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; -public class EntityTomBlast extends Entity { +public class EntityTomBlast extends EntityExplosionChunkloading { public int age = 0; public int destructionRange = 0; @@ -54,6 +53,8 @@ public class EntityTomBlast extends Entity { public void onUpdate() { super.onUpdate(); + if(!worldObj.isRemote) loadChunk((int) Math.floor(posX / 16D), (int) Math.floor(posZ / 16D)); + if(!this.did) { if(GeneralConfig.enableExtendedLogging && !worldObj.isRemote) @@ -89,8 +90,4 @@ public class EntityTomBlast extends Entity { age++; } - - @Override - protected void entityInit() { - } } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileBaseAdvanced.java b/src/main/java/com/hbm/entity/missile/EntityMissileBaseAdvanced.java index 5c0d93b67..69d128a51 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileBaseAdvanced.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileBaseAdvanced.java @@ -48,46 +48,36 @@ public abstract class EntityMissileBaseAdvanced extends Entity implements IChunk targetZ = (int) posZ; } - public boolean canBeCollidedWith() - { - return true; - } - - public boolean attackEntityFrom(DamageSource p_70097_1_, float p_70097_2_) - { - if (this.isEntityInvulnerable()) - { - return false; - } - else - { - if (!this.isDead && !this.worldObj.isRemote) - { - health -= p_70097_2_; - - if (this.health <= 0) - { - this.setDead(); - this.killMissile(); - } - } + public boolean canBeCollidedWith() { + return true; + } - return true; - } - } - - private void killMissile() { - ExplosionLarge.explode(worldObj, posX, posY, posZ, 5, true, false, true); - ExplosionLarge.spawnShrapnelShower(worldObj, posX, posY, posZ, motionX, motionY, motionZ, 15, 0.075); - ExplosionLarge.spawnMissileDebris(worldObj, posX, posY, posZ, motionX, motionY, motionZ, 0.25, getDebris(), getDebrisRareDrop()); - } + public boolean attackEntityFrom(DamageSource p_70097_1_, float p_70097_2_) { + if(this.isEntityInvulnerable()) { + return false; + } else { + if(!this.isDead && !this.worldObj.isRemote) { + health -= p_70097_2_; + + if(this.health <= 0) { + this.setDead(); + this.killMissile(); + } + } + + return true; + } + } + + private void killMissile() { + ExplosionLarge.explode(worldObj, posX, posY, posZ, 5, true, false, true); + ExplosionLarge.spawnShrapnelShower(worldObj, posX, posY, posZ, motionX, motionY, motionZ, 15, 0.075); + ExplosionLarge.spawnMissileDebris(worldObj, posX, posY, posZ, motionX, motionY, motionZ, 0.25, getDebris(), getDebrisRareDrop()); + } public EntityMissileBaseAdvanced(World world, float x, float y, float z, int a, int b) { super(world); this.ignoreFrustumCheck = true; - /*this.posX = x; - this.posY = y; - this.posZ = z;*/ this.setLocationAndAngles(x, y, z, 0, 0); startX = (int) x; startZ = (int) z; @@ -95,19 +85,19 @@ public abstract class EntityMissileBaseAdvanced extends Entity implements IChunk targetZ = b; this.motionY = 2; - Vec3 vector = Vec3.createVectorHelper(targetX - startX, 0, targetZ - startZ); - accelXZ = decelY = 1/vector.lengthVector(); + Vec3 vector = Vec3.createVectorHelper(targetX - startX, 0, targetZ - startZ); + accelXZ = decelY = 1 / vector.lengthVector(); decelY *= 2; - + velocity = 1; - this.setSize(1.5F, 1.5F); + this.setSize(1.5F, 1.5F); } @Override protected void entityInit() { init(ForgeChunkManager.requestTicket(MainRegistry.instance, worldObj, Type.ENTITY)); - this.dataWatcher.addObject(8, Integer.valueOf(this.health)); + this.dataWatcher.addObject(8, Integer.valueOf(this.health)); } @Override @@ -212,7 +202,6 @@ public abstract class EntityMissileBaseAdvanced extends Entity implements IChunk } if(!this.worldObj.isRemote) - //this.worldObj.spawnEntityInWorld(new EntitySmokeFX(this.worldObj, this.posX, this.posY, this.posZ, 0.0, 0.0, 0.0)); PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacket(posX, posY, posZ, 2), new TargetPoint(worldObj.provider.dimensionId, posX, posY, posZ, 300)); @@ -220,30 +209,28 @@ public abstract class EntityMissileBaseAdvanced extends Entity implements IChunk this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.water && this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.flowing_water) { - if(!this.worldObj.isRemote) - { - onImpact(); - } - this.setDead(); - return; - } - - loadNeighboringChunks((int)(posX / 16), (int)(posZ / 16)); - - if(motionY < -1 && this.isCluster && !worldObj.isRemote) { - cluster(); - this.setDead(); - return; - } + if(!this.worldObj.isRemote) { + onImpact(); + } + this.killAndClear(); + return; + } + + loadNeighboringChunks((int) (posX / 16), (int) (posZ / 16)); + + if(motionY < -1 && this.isCluster && !worldObj.isRemote) { + cluster(); + this.setDead(); + return; + } } - } + } - @Override + @Override @SideOnly(Side.CLIENT) - public boolean isInRangeToRenderDist(double distance) - { - return distance < 500000; - } + public boolean isInRangeToRenderDist(double distance) { + return true; + } public abstract void onImpact(); @@ -272,30 +259,31 @@ public abstract class EntityMissileBaseAdvanced extends Entity implements IChunk List loadedChunks = new ArrayList(); - public void loadNeighboringChunks(int newChunkX, int newChunkZ) - { - if(!worldObj.isRemote && loaderTicket != null) - { - for(ChunkCoordIntPair chunk : loadedChunks) - { - ForgeChunkManager.unforceChunk(loaderTicket, chunk); - } + public void loadNeighboringChunks(int newChunkX, int newChunkZ) { + if(!worldObj.isRemote && loaderTicket != null) { + + clearChunkLoader(); - loadedChunks.clear(); - loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX + 1, newChunkZ + 1)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX - 1, newChunkZ - 1)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX + 1, newChunkZ - 1)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX - 1, newChunkZ + 1)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX + 1, newChunkZ)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ + 1)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX - 1, newChunkZ)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ - 1)); + loadedChunks.clear(); + loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ)); + loadedChunks.add(new ChunkCoordIntPair(newChunkX + (int) Math.ceil((this.posX + this.motionX) / 16D), newChunkZ + (int) Math.ceil((this.posZ + this.motionZ) / 16D))); - for(ChunkCoordIntPair chunk : loadedChunks) - { - ForgeChunkManager.forceChunk(loaderTicket, chunk); - } - } - } + for(ChunkCoordIntPair chunk : loadedChunks) { + ForgeChunkManager.forceChunk(loaderTicket, chunk); + } + } + } + + public void killAndClear() { + this.setDead(); + this.clearChunkLoader(); + } + + public void clearChunkLoader() { + if(!worldObj.isRemote && loaderTicket != null) { + for(ChunkCoordIntPair chunk : loadedChunks) { + ForgeChunkManager.unforceChunk(loaderTicket, chunk); + } + } + } } diff --git a/src/main/java/com/hbm/explosion/nt/IExplosionLogic.java b/src/main/java/com/hbm/explosion/nt/IExplosionLogic.java index b2b2e86b8..0886cb3eb 100644 --- a/src/main/java/com/hbm/explosion/nt/IExplosionLogic.java +++ b/src/main/java/com/hbm/explosion/nt/IExplosionLogic.java @@ -1,5 +1,6 @@ package com.hbm.explosion.nt; +@Deprecated public interface IExplosionLogic { public void updateLogic(); diff --git a/src/main/java/com/hbm/explosion/nt/Mark5.java b/src/main/java/com/hbm/explosion/nt/Mark5.java index 6827b6758..16d2d5ee4 100644 --- a/src/main/java/com/hbm/explosion/nt/Mark5.java +++ b/src/main/java/com/hbm/explosion/nt/Mark5.java @@ -10,6 +10,7 @@ import net.minecraft.init.Blocks; import net.minecraft.util.Vec3; import net.minecraft.world.World; +@Deprecated public class Mark5 implements IExplosionLogic { //holds rays after being calculated up to where the blocks get removed From 1406cb47d912fc8d9dd30eed9a5b0e0edd69ecaf Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Mon, 12 Jun 2023 15:44:29 -0500 Subject: [PATCH 122/432] Removing the clamp on pollution until I can think properly. --- .../java/com/hbm/handler/pollution/PollutionHandler.java | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java index c4c42b87b..6b701fe8c 100644 --- a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java +++ b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java @@ -173,17 +173,9 @@ public class PollutionHandler { data.pollution[S] *= 0.8F; } else { data.pollution[S] *= 0.99F; - /* Clamp soot pollution to 0 near low values. */ - if(data.pollution[S] < 0.0001F) { - data.pollution[S] = 0; - } } data.pollution[H] *= 0.999F; - /* Clamp Heavy pollution to 0 near low values. */ - if(data.pollution[H] < 0.001F) { - data.pollution[H] = 0; - } /* SPREADING */ //apply new data to self From 1c7d8e41f0b95fde2931fd11834a942a60b56506 Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 13 Jun 2023 09:54:26 +0200 Subject: [PATCH 123/432] leaded fuel pollution --- .../handler/pollution/PollutionHandler.java | 2 ++ .../java/com/hbm/inventory/fluid/Fluids.java | 7 ++++--- .../hbm/inventory/fluid/trait/FluidTrait.java | 1 + .../fluid/trait/FluidTraitSimple.java | 10 +++++++++- .../machine/TileEntityHeaterOilburner.java | 6 +++++- .../TileEntityMachineCombustionEngine.java | 6 +++++- .../machine/TileEntityMachineDiesel.java | 6 ++++++ .../gui/processing/gui_electrolyser.png | Bin 9336 -> 9377 bytes 8 files changed, 32 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java index 570f91415..d781b4e32 100644 --- a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java +++ b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java @@ -32,6 +32,8 @@ public class PollutionHandler { /** Baserate of soot generation for a furnace-equivalent machine per second */ public static final float SOOT_PER_SECOND = 1F / 25F; + /** Baserate of heavy metal generation, balanced around the soot values of combustion engines */ + public static final float HEAVY_METAL_PER_SECOND = 1F / 50F; /////////////////////// /// UTILITY METHODS /// diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index f9de9f7b3..df3839c36 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -167,6 +167,7 @@ public class Fluids { public static final FT_NoContainer NOCON = new FT_NoContainer(); public static final FT_NoID NOID = new FT_NoID(); public static final FT_Delicious DELICIOUS = new FT_Delicious(); + public static final FT_Leaded LEADED = new FT_Leaded(); public static void init() { @@ -255,9 +256,9 @@ public class Fluids { SALIENT = new FluidType("SALIENT", 0x457F2D, 0, 0, 0, EnumSymbol.NONE).addTraits(DELICIOUS, LIQUID, VISCOUS); XPJUICE = new FluidType("XPJUICE", 0xBBFF09, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS); ENDERJUICE = new FluidType("ENDERJUICE", 0x127766, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS); - PETROIL_LEADED = new FluidType("PETROIL_LEADED", 0x44413d, 1, 3, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x2331F6)).addTraits(new FT_Flammable(125_000), new FT_Combustible(FuelGrade.MEDIUM, 450_000), LIQUID); - GASOLINE_LEADED = new FluidType("GASOLINE_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x2F775A)).addTraits(new FT_Flammable(400_000), new FT_Combustible(FuelGrade.HIGH, 1_500_000), LIQUID); - COALGAS_LEADED = new FluidType("COALGAS_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x1E155F)).addTraits(new FT_Flammable(75_000), new FT_Combustible(FuelGrade.MEDIUM, 250_000), LIQUID); + PETROIL_LEADED = new FluidType("PETROIL_LEADED", 0x44413d, 1, 3, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x2331F6)).addTraits(new FT_Flammable(125_000), new FT_Combustible(FuelGrade.MEDIUM, 450_000), LIQUID, LEADED); + GASOLINE_LEADED = new FluidType("GASOLINE_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x2F775A)).addTraits(new FT_Flammable(400_000), new FT_Combustible(FuelGrade.HIGH, 1_500_000), LIQUID, LEADED); + COALGAS_LEADED = new FluidType("COALGAS_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x1E155F)).addTraits(new FT_Flammable(75_000), new FT_Combustible(FuelGrade.MEDIUM, 250_000), LIQUID, LEADED); SULFURIC_ACID = new FluidType("SULFURIC_ACID", 0xB0AA64, 3, 0, 2, EnumSymbol.ACID).addTraits(new FT_Corrosive(50), LIQUID); COOLANT_HOT = new FluidType("COOLANT_HOT", 0x99525E, 1, 0, 0, EnumSymbol.NONE).setTemp(600).addTraits(LIQUID); MUG = new FluidType("MUG", 0x4B2D28, 0, 0, 0, EnumSymbol.NONE).addTraits(DELICIOUS, LIQUID); diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FluidTrait.java b/src/main/java/com/hbm/inventory/fluid/trait/FluidTrait.java index 2d5bac5ab..ba385ad54 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FluidTrait.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FluidTrait.java @@ -33,6 +33,7 @@ public abstract class FluidTrait { traitNameMap.put("amat", FT_Amat.class); traitNameMap.put("leadcontainer", FT_LeadContainer.class); traitNameMap.put("delicious", FT_Delicious.class); + traitNameMap.put("leaded", FT_Leaded.class); traitNameMap.put("noid", FT_NoID.class); traitNameMap.put("nocontainer", FT_NoContainer.class); } diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FluidTraitSimple.java b/src/main/java/com/hbm/inventory/fluid/trait/FluidTraitSimple.java index 319a7e6d4..d282cea42 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FluidTraitSimple.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FluidTraitSimple.java @@ -49,10 +49,18 @@ public class FluidTraitSimple { info.add(EnumChatFormatting.DARK_RED + "[Requires hazardous material tank to hold]"); } } + public static class FT_Delicious extends FluidTrait { @Override public void addInfoHidden(List info) { info.add(EnumChatFormatting.DARK_GREEN + "[Delicious]"); - }} + } + } + + public static class FT_Leaded extends FluidTrait { + @Override public void addInfoHidden(List info) { + info.add(EnumChatFormatting.BLUE + "[Leaded Fuel]"); + } + } public static class FT_NoID extends FluidTrait { } public static class FT_NoContainer extends FluidTrait { } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOilburner.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOilburner.java index a4ba8adab..555704c86 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOilburner.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOilburner.java @@ -9,6 +9,7 @@ import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Flammable; +import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Leaded; import com.hbm.inventory.gui.GUIOilburner; import com.hbm.lib.Library; import com.hbm.tileentity.IGUIProvider; @@ -73,7 +74,10 @@ public class TileEntityHeaterOilburner extends TileEntityMachineBase implements this.heatEnergy += heat * toBurn; - if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * burnRate * 0.5F); + if(worldObj.getTotalWorldTime() % 20 == 0) { + PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * burnRate * 0.5F); + if(tank.getTankType().hasTrait(FT_Leaded.class)) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.HEAVYMETAL, PollutionHandler.HEAVY_METAL_PER_SECOND * burnRate * 0.5F); + } shouldCool = false; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java index 64ea819ff..a01fd1347 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java @@ -9,6 +9,7 @@ import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Combustible; +import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Leaded; import com.hbm.inventory.gui.GUICombustionEngine; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemPistons.EnumPistonType; @@ -86,7 +87,10 @@ public class TileEntityMachineCombustionEngine extends TileEntityMachineBase imp this.power += toBurn * (trait.getCombustionEnergy() / 10_000D) * eff; fill -= toBurn; - if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * setting * 0.1F); + if(worldObj.getTotalWorldTime() % 20 == 0) { + PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * setting * 0.1F); + if(tank.getTankType().hasTrait(FT_Leaded.class)) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.HEAVYMETAL, PollutionHandler.HEAVY_METAL_PER_SECOND * setting * 0.1F); + } if(toBurn > 0) { wasOn = true; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java index 1ec212628..dcb1f443a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java @@ -6,6 +6,8 @@ import java.util.HashMap; import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.FluidContainerRegistry; @@ -15,6 +17,7 @@ import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Combustible; import com.hbm.inventory.fluid.trait.FT_Combustible.FuelGrade; +import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Leaded; import com.hbm.inventory.gui.GUIMachineDiesel; import com.hbm.items.ModItems; import com.hbm.lib.Library; @@ -203,6 +206,9 @@ public class TileEntityMachineDiesel extends TileEntityMachineBase implements IE tank.setFill(tank.getFill() - 1); if(tank.getFill() < 0) tank.setFill(0); + + PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * 0.5F); + if(tank.getTankType().hasTrait(FT_Leaded.class)) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.HEAVYMETAL, PollutionHandler.HEAVY_METAL_PER_SECOND * 0.5F); if(power + getHEFromFuel() <= powerCap) { power += getHEFromFuel(); diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_electrolyser.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_electrolyser.png index 7a250f025ce6a59109555b4547c758c80e23016a..3f28a4951cdbcaf884e974ae997476bfa9ff80c7 100644 GIT binary patch literal 9377 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 From 4cd26174fbcfcc24fcc0bf26ba4f4dbb60ac37b8 Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 13 Jun 2023 16:30:46 +0200 Subject: [PATCH 124/432] more pollution, igen defuckening part 4 --- .../hbm/items/tool/ItemPollutionDetector.java | 18 ++++++++++++++---- .../machine/TileEntityMachineIGenerator.java | 8 ++++---- .../machine/oil/TileEntityMachineGasFlare.java | 6 +++++- .../machine/oil/TileEntityMachineRefinery.java | 4 ++++ .../storage/TileEntityMachineFluidTank.java | 8 ++++++++ 5 files changed, 35 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/hbm/items/tool/ItemPollutionDetector.java b/src/main/java/com/hbm/items/tool/ItemPollutionDetector.java index 5b0d27663..dca184a67 100644 --- a/src/main/java/com/hbm/items/tool/ItemPollutionDetector.java +++ b/src/main/java/com/hbm/items/tool/ItemPollutionDetector.java @@ -23,10 +23,20 @@ public class ItemPollutionDetector extends Item { PollutionData data = PollutionHandler.getPollutionData(world, (int) Math.floor(entity.posX), (int) Math.floor(entity.posY), (int) Math.floor(entity.posZ)); if(data == null) data = new PollutionData(); + + float soot = data.pollution[PollutionType.SOOT.ordinal()]; + float poison = data.pollution[PollutionType.POISON.ordinal()]; + float heavymetal = data.pollution[PollutionType.HEAVYMETAL.ordinal()]; + float fallout = data.pollution[PollutionType.FALLOUT.ordinal()]; + + soot = ((int) soot * 100) / 100F; + poison = ((int) poison * 100) / 100F; + heavymetal = ((int) heavymetal * 100) / 100F; + fallout = ((int) fallout * 100) / 100F; - PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Soot: " + data.pollution[PollutionType.SOOT.ordinal()]).color(EnumChatFormatting.YELLOW).flush(), 100, 2000), (EntityPlayerMP) entity); - PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Poison: " + data.pollution[PollutionType.POISON.ordinal()]).color(EnumChatFormatting.YELLOW).flush(), 101, 2000), (EntityPlayerMP) entity); - PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Heavy metal: " + data.pollution[PollutionType.HEAVYMETAL.ordinal()]).color(EnumChatFormatting.YELLOW).flush(), 102, 2000), (EntityPlayerMP) entity); - PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Fallout: " + data.pollution[PollutionType.FALLOUT.ordinal()]).color(EnumChatFormatting.YELLOW).flush(), 103, 2000), (EntityPlayerMP) entity); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Soot: " + soot).color(EnumChatFormatting.YELLOW).flush(), 100, 2000), (EntityPlayerMP) entity); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Poison: " + poison).color(EnumChatFormatting.YELLOW).flush(), 101, 2000), (EntityPlayerMP) entity); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Heavy metal: " + heavymetal).color(EnumChatFormatting.YELLOW).flush(), 102, 2000), (EntityPlayerMP) entity); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Fallout: " + fallout).color(EnumChatFormatting.YELLOW).flush(), 103, 2000), (EntityPlayerMP) entity); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java index dd49bbf75..f980ca60b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java @@ -64,11 +64,11 @@ public class TileEntityMachineIGenerator extends TileEntityMachineBase implement public static int coalGenRate = 20; public static double rtgHeatMult = 0.15D; public static double waterPowerMult = 1.0D; - public static double lubePowerMult = 1.0D; - public static double heatExponent = 1.1D; + public static double lubePowerMult = 1.5D; + public static double heatExponent = 1.15D; public static int waterRate = 10; public static int lubeRate = 1; - public static long fluidHeatDiv = 5_000L; + public static long fluidHeatDiv = 1_000L; @Override public String getConfigName() { @@ -275,7 +275,7 @@ public class TileEntityMachineIGenerator extends TileEntityMachineBase implement public int getPowerFromFuel(boolean con) { FluidType type = tanks[1].getTankType(); - return type.hasTrait(FT_Flammable.class) ? (int)(type.getTrait(FT_Flammable.class).getHeatEnergy() / (con ? 1000L : fluidHeatDiv)) : 0; + return type.hasTrait(FT_Flammable.class) ? (int)(type.getTrait(FT_Flammable.class).getHeatEnergy() / (con ? 5000L : fluidHeatDiv)) : 0; } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java index d305dc9b9..8ad9a8e13 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java @@ -15,6 +15,7 @@ import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Flammable; import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Gaseous; import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Gaseous_ART; +import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Leaded; import com.hbm.inventory.gui.GUIMachineGasFlare; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; @@ -160,7 +161,10 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements if(worldObj.getTotalWorldTime() % 3 == 0) this.worldObj.playSoundEffect(this.xCoord, this.yCoord + 11, this.zCoord, "hbm:weapon.flamethrowerShoot", 1.5F, 0.75F); - if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * 5); + if(worldObj.getTotalWorldTime() % 20 == 0) { + PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * 5); + if(tank.getTankType().hasTrait(FT_Leaded.class)) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.HEAVYMETAL, PollutionHandler.HEAVY_METAL_PER_SECOND * 5); + } } } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java index d36a3370d..27e48d4a1 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java @@ -203,6 +203,10 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements for(Entity e : affected) e.setFire(5); Random rand = worldObj.rand; ParticleUtil.spawnGasFlame(worldObj, xCoord + rand.nextDouble(), yCoord + 1.5 + rand.nextDouble() * 3, zCoord + rand.nextDouble(), rand.nextGaussian() * 0.05, 0.1, rand.nextGaussian() * 0.05); + + if(worldObj.getTotalWorldTime() % 20 == 0) { + PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * 70); + } } } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java index 391f5fe43..2b2c311b8 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java @@ -5,6 +5,8 @@ import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; import com.hbm.explosion.vanillant.ExplosionVNT; import com.hbm.handler.MultiblockHandlerXR; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; import com.hbm.interfaces.IFluidSource; @@ -18,6 +20,7 @@ import com.hbm.inventory.fluid.trait.FT_Flammable; import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Amat; import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Gaseous; import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Gaseous_ART; +import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Leaded; import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Liquid; import com.hbm.inventory.gui.GUIMachineFluidTank; import com.hbm.inventory.fluid.Fluids; @@ -179,6 +182,11 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements Random rand = worldObj.rand; ParticleUtil.spawnGasFlame(worldObj, xCoord + rand.nextDouble(), yCoord + 0.5 + rand.nextDouble(), zCoord + rand.nextDouble(), rand.nextGaussian() * 0.2, 0.1, rand.nextGaussian() * 0.2); + if(worldObj.getTotalWorldTime() % 20 == 0) { + PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * 50); + if(type.hasTrait(FT_Leaded.class)) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.HEAVYMETAL, PollutionHandler.HEAVY_METAL_PER_SECOND * 50); + } + } else if(type.hasTrait(FT_Gaseous.class) || type.hasTrait(FT_Gaseous_ART.class)) { if(worldObj.getTotalWorldTime() % 5 == 0) { From 3f2e7313a90e3c7619c6e7554eb68750e781067b Mon Sep 17 00:00:00 2001 From: Bob Date: Wed, 14 Jun 2023 22:25:54 +0200 Subject: [PATCH 125/432] the biting thing --- changelog | 33 - .../java/com/hbm/main/ResourceManager.java | 2 + .../render/tileentity/RendererObjTester.java | 125 ++- .../assets/hbm/models/mobs/glyphid.obj | 996 ++++++++++++++++++ .../assets/hbm/textures/entity/glyphid.png | Bin 0 -> 887 bytes 5 files changed, 1121 insertions(+), 35 deletions(-) create mode 100644 src/main/resources/assets/hbm/models/mobs/glyphid.obj create mode 100644 src/main/resources/assets/hbm/textures/entity/glyphid.png diff --git a/changelog b/changelog index 4af358249..e69de29bb 100644 --- a/changelog +++ b/changelog @@ -1,33 +0,0 @@ -## Added -* Machines now emit soot. Soot collects in units of 4x4 chunks, and spreads into neighboring regions. High levels of soot cause visible smog. - * The system has yet to be balanced, it's possible that only a few machines cause way too much soot or barely any -* Gas artillery shells - * Chlorine - * Phosgene - * Mustard gas -* Euphemium capacitor - * Used for schrabidium transmutation, has infinite durability -* Capacitor blocks - * Like batteries without GUIs that are constantly in input/output mode - * Input is on the top of the capacitor block, for output the capacitor has to be placed onto a capaictor bus - * Capacitor buses have one side for the output, multiple buses can be chained up given they are placed in a straight line - * Incentivizes splitting the power grid, looping the output back into the input will yield the same weirdness as combining multiple IO energy storage blocks -* Desh bullet stamps - * Like regular bullets stamps but with infinite durability - -## Changed -* Updated russian and chinese localization -* Mist now spawns cloud particles with the correct color instead of standard white -* HE artillery shells and rockets now turn blocks into slag -* The old static bunker structure has been removed and replaced with dynamically generated ones, using the same style of generation as vanilla strongholds. -* Changed the processing for chlorocalcite, instead of using a combination furnace it now requires a six step cleaning and electrolysis process - -## Fixed -* Fixed the TOXIC trait not respecting protection when applying potion effects -* Fixed some armor recipes only accepting polymer and not bakelite -* Fixed turbofans not sucking in players -* Fixed NTM skybox not applying to superflat worlds -* Fixed breeding slot in the fusion reactor never resettingthe progress after completing an operation -* Fixed potential issue where tanks would send fluids to invalidated tile entities, voiding themselves almost instantly -* Fixed cadmium and technetium steel blocks not having ore dict names -* Fixed potential crash regarding certain potion code running clientside \ No newline at end of file diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 3dfe7107b..f889c98d1 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -305,6 +305,7 @@ public class ResourceManager { public static final IModelCustom ufo = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/mobs/ufo.obj")); public static final IModelCustom mini_ufo = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/mobs/mini_ufo.obj")); public static final IModelCustom siege_ufo = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/mobs/siege_ufo.obj")); + public static final IModelCustom glyphid = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/mobs/glyphid.obj")); //ZIRNOX public static final IModelCustom zirnox = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/zirnox.obj")); @@ -658,6 +659,7 @@ public class ResourceManager { public static final ResourceLocation iou = new ResourceLocation(RefStrings.MODID, "textures/entity/iou.png"); public static final ResourceLocation spider_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/blockspider.png"); public static final ResourceLocation ufo_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/ufo.png"); + public static final ResourceLocation glyphid_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid.png"); //ZIRNOX public static final ResourceLocation zirnox_tex = new ResourceLocation(RefStrings.MODID, "textures/models/zirnox.png"); diff --git a/src/main/java/com/hbm/render/tileentity/RendererObjTester.java b/src/main/java/com/hbm/render/tileentity/RendererObjTester.java index 7c8eebb57..467a4c14a 100644 --- a/src/main/java/com/hbm/render/tileentity/RendererObjTester.java +++ b/src/main/java/com/hbm/render/tileentity/RendererObjTester.java @@ -9,6 +9,7 @@ import org.lwjgl.opengl.GL12; import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; import com.hbm.main.ResourceManager; +import com.hbm.render.loader.HFRWavefrontObject; import com.hbm.render.util.HorsePronter; import net.minecraft.client.renderer.ItemRenderer; @@ -30,8 +31,9 @@ public class RendererObjTester extends TileEntitySpecialRenderer { GL11.glPushMatrix(); GL11.glTranslated(x + 0.5, y, z + 0.5); GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glTranslated(0, 0, 0.75); + /*GL11.glTranslated(0, 0, 0.75); this.bindTexture(new ResourceLocation(RefStrings.MODID, "textures/models/horse/dyx.png")); HorsePronter.reset(); //HorsePronter.pose(HorsePronter.id_lfl, 0, System.currentTimeMillis() % 360 / 10D, 0); @@ -59,7 +61,126 @@ public class RendererObjTester extends TileEntitySpecialRenderer { float f15 = icon.getMaxU(); float f4 = icon.getMinV(); float f5 = icon.getMaxV(); - ItemRenderer.renderItemIn2D(Tessellator.instance, f15, f4, f14, f5, icon.getIconWidth(), icon.getIconHeight(), 0.0625F); + ItemRenderer.renderItemIn2D(Tessellator.instance, f15, f4, f14, f5, icon.getIconWidth(), icon.getIconHeight(), 0.0625F);*/ + + double speed = 100D; + double chewing = 200D; + double cy0 = Math.sin(System.currentTimeMillis() / speed % (Math.PI * 2)); + double cy1 = Math.sin(System.currentTimeMillis() / speed % (Math.PI * 2) - Math.PI * 0.5); + double cy2 = Math.sin(System.currentTimeMillis() / speed % (Math.PI * 2) - Math.PI); + double cy3 = Math.sin(System.currentTimeMillis() / speed % (Math.PI * 2) - Math.PI * 0.75); + + double cy4 = Math.sin(System.currentTimeMillis() / chewing % (Math.PI * 2)); + double cy5 = Math.sin(System.currentTimeMillis() / chewing % (Math.PI * 2) - Math.PI * 0.5); + + this.bindTexture(ResourceManager.glyphid_tex); + ResourceManager.glyphid.renderPart("Body"); + ResourceManager.glyphid.renderPart("ArmorFront"); + ResourceManager.glyphid.renderPart("ArmorLeft"); + ResourceManager.glyphid.renderPart("ArmorRight"); + + /// LEFT ARM /// + GL11.glPushMatrix(); + GL11.glTranslated(0.25, 0.625, 0.0625); + GL11.glRotated(10, 0, 1, 0); + GL11.glRotated(35 + cy1 * 20, 1, 0, 0); + GL11.glTranslated(-0.25, -0.625, -0.0625); + ResourceManager.glyphid.renderPart("ArmLeftUpper"); + GL11.glTranslated(0.25, 0.625, 0.4375); + GL11.glRotated(-75 - cy1 * 20 + cy0 * 20, 1, 0, 0); + GL11.glTranslated(-0.25, -0.625, -0.4375); + ResourceManager.glyphid.renderPart("ArmLeftMid"); + GL11.glTranslated(0.25, 0.625, 0.9375); + GL11.glRotated(90 - cy0 * 45, 1, 0, 0); + GL11.glTranslated(-0.25, -0.625, -0.9375); + ResourceManager.glyphid.renderPart("ArmLeftLower"); + ResourceManager.glyphid.renderPart("ArmLeftArmor"); + GL11.glPopMatrix(); + + /// RIGHT ARM /// + GL11.glPushMatrix(); + GL11.glTranslated(-0.25, 0.625, 0.0625); + GL11.glRotated(-10, 0, 1, 0); + GL11.glRotated(35 + cy2 * 20, 1, 0, 0); + GL11.glTranslated(0.25, -0.625, -0.0625); + ResourceManager.glyphid.renderPart("ArmRightUpper"); + GL11.glTranslated(-0.25, 0.625, 0.4375); + GL11.glRotated(-75 - cy2 * 20 + cy3 * 20, 1, 0, 0); + GL11.glTranslated(0.25, -0.625, -0.4375); + ResourceManager.glyphid.renderPart("ArmRightMid"); + GL11.glTranslated(-0.25, 0.625, 0.9375); + GL11.glRotated(90 - cy3 * 45, 1, 0, 0); + GL11.glTranslated(0.25, -0.625, -0.9375); + ResourceManager.glyphid.renderPart("ArmRightLower"); + ResourceManager.glyphid.renderPart("ArmRightArmor"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + + GL11.glTranslated(0, 0.5, 0.25); + GL11.glRotated(cy5 * 15 + 15, 0, 0, 1); + GL11.glTranslated(0, -0.5, -0.25); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.5, 0.25); + GL11.glRotated(-7.5 - cy4 * 7.5, 1, 0, 0); + GL11.glTranslated(0, -0.5, -0.25); + ResourceManager.glyphid.renderPart("JawTop"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.5, 0.25); + GL11.glRotated(7.5 + cy4 * 7.5, 0, 1, 0); + GL11.glRotated(7.5 + cy4 * 7.5, 1, 0, 0); + GL11.glTranslated(0, -0.5, -0.25); + ResourceManager.glyphid.renderPart("JawLeft"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.5, 0.25); + GL11.glRotated(-7.5 - cy4 * 7.5, 0, 1, 0); + GL11.glRotated(7.5 + cy4 * 7.5, 1, 0, 0); + GL11.glTranslated(0, -0.5, -0.25); + ResourceManager.glyphid.renderPart("JawRight"); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + double steppy = 15; + double bend = 60; + + for(int i = 0; i < 3; i++) { + + double c0 = cy0 * (i == 1 ? -1 : 1); + double c1 = cy1 * (i == 1 ? -1 : 1); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.25, 0); + GL11.glRotated(i * 30 - 15 + c0 * 7.5, 0, 1, 0); + GL11.glRotated(steppy + c1 * steppy, 0, 0, 1); + GL11.glTranslated(0, -0.25, 0); + ResourceManager.glyphid.renderPart("LegLeftUpper"); + GL11.glTranslated(0.5625, 0.25, 0); + GL11.glRotated(-bend - c1 * steppy, 0, 0, 1); + GL11.glTranslated(-0.5625, -0.25, 0); + ResourceManager.glyphid.renderPart("LegLeftLower"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.25, 0); + GL11.glRotated(i * 30 - 45 + c0 * 7.5, 0, 1, 0); + GL11.glRotated(-steppy + c1 * steppy, 0, 0, 1); + GL11.glTranslated(0, -0.25, 0); + ResourceManager.glyphid.renderPart("LegRightUpper"); + GL11.glTranslated(-0.5625, 0.25, 0); + GL11.glRotated(bend - c1 * steppy, 0, 0, 1); + GL11.glTranslated(0.5625, -0.25, 0); + ResourceManager.glyphid.renderPart("LegRightLower"); + GL11.glPopMatrix(); + } + + this.bindTexture(ResourceManager.universal); + GL11.glScaled(0.05, 0.05, 0.05); + ResourceManager.sphere_uv.renderAll(); GL11.glPopMatrix(); } diff --git a/src/main/resources/assets/hbm/models/mobs/glyphid.obj b/src/main/resources/assets/hbm/models/mobs/glyphid.obj new file mode 100644 index 000000000..84cdc3f0e --- /dev/null +++ b/src/main/resources/assets/hbm/models/mobs/glyphid.obj @@ -0,0 +1,996 @@ +# Blender v2.79 (sub 0) OBJ File: 'glyphid.blend' +# www.blender.org +o JawLeft +v 0.187500 0.312500 0.250000 +v 0.187500 0.312500 0.625000 +v 0.187500 0.500000 0.250000 +v 0.187500 0.500000 0.625000 +v 0.000000 0.312500 0.250000 +v 0.000000 0.312500 0.625000 +v 0.000000 0.500000 0.625000 +vt 0.112500 0.408451 +vt 0.075000 0.492958 +vt 0.075000 0.408451 +vt 0.150000 0.408451 +vt 0.112500 0.492958 +vt 0.075000 0.535211 +vt 0.150000 0.492958 +vt 0.112500 0.535211 +vn 0.0000 -1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +s off +f 1/1/1 6/2/1 5/3/1 +f 3/4/2 2/5/2 1/1/2 +f 2/5/3 7/6/3 6/2/3 +f 1/1/1 2/5/1 6/2/1 +f 3/4/2 4/7/2 2/5/2 +f 2/5/3 4/8/3 7/6/3 +o JawRight +v -0.187500 0.312500 0.625000 +v -0.187500 0.312500 0.250000 +v -0.187500 0.500000 0.250000 +v -0.187500 0.500000 0.625000 +v 0.000000 0.312500 0.250000 +v 0.000000 0.312500 0.625000 +v 0.000000 0.500000 0.625000 +vt 0.075000 0.408451 +vt 0.037500 0.492958 +vt 0.037500 0.408451 +vt 0.075000 0.492958 +vt 0.037500 0.535211 +vt 0.000000 0.492958 +vt 0.000000 0.408451 +vt 0.075000 0.535211 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +s off +f 12/9/4 8/10/4 9/11/4 +f 13/12/5 11/13/5 8/10/5 +f 9/11/6 11/14/6 10/15/6 +f 12/9/4 13/12/4 8/10/4 +f 13/12/5 14/16/5 11/13/5 +f 9/11/6 8/10/6 11/14/6 +o JawTop +v -0.187500 0.687500 0.250000 +v 0.187500 0.687500 0.250000 +v -0.187500 0.687500 0.625000 +v 0.187500 0.687500 0.625000 +v -0.187500 0.500000 0.250000 +v 0.187500 0.500000 0.250000 +v -0.187500 0.500000 0.625000 +v 0.187500 0.500000 0.625000 +v 0.000000 0.500000 0.625000 +vt -0.000000 0.661972 +vt 0.037500 0.577465 +vt 0.037500 0.661972 +vt 0.075000 0.535211 +vt 0.112500 0.577465 +vt 0.112500 0.661972 +vt 0.150000 0.577465 +vt 0.150000 0.661972 +vt -0.000000 0.577465 +vt 0.037500 0.535211 +vt 0.112500 0.535211 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +s off +f 19/17/7 17/18/7 15/19/7 +f 23/20/8 18/21/8 17/18/8 +f 16/22/9 22/23/9 20/24/9 +f 15/19/10 18/21/10 16/22/10 +f 19/17/7 21/25/7 17/18/7 +f 17/18/8 21/26/8 23/20/8 +f 23/20/8 22/27/8 18/21/8 +f 16/22/9 18/21/9 22/23/9 +f 15/19/10 17/18/10 18/21/10 +o LegRightUpper +v -0.562500 0.250000 -0.031250 +v -0.562500 0.187500 -0.031250 +v -0.562500 0.250000 0.031250 +v -0.562500 0.187500 0.031250 +v -0.062500 0.250000 0.031250 +v -0.062500 0.250000 -0.031250 +v -0.062500 0.187500 -0.031250 +v -0.062500 0.187500 0.031250 +vt 0.612500 0.380282 +vt 0.625000 0.394366 +vt 0.612500 0.394366 +vt 0.625000 0.507042 +vt 0.612500 0.521127 +vt 0.612500 0.507042 +vt 0.637500 0.394366 +vt 0.600000 0.507042 +vt 0.600000 0.394366 +vt 0.650000 0.394366 +vt 0.637500 0.507042 +vt 0.625000 0.380282 +vt 0.625000 0.521127 +vt 0.650000 0.507042 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn -0.0000 0.0000 -1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +s off +f 25/28/11 26/29/11 24/30/11 +f 28/31/12 30/32/12 29/33/12 +f 27/34/13 28/31/13 26/29/13 +f 24/30/14 30/35/14 25/36/14 +f 25/37/15 31/38/15 27/34/15 +f 26/29/16 29/33/16 24/30/16 +f 25/28/11 27/39/11 26/29/11 +f 28/31/12 31/40/12 30/32/12 +f 27/34/13 31/38/13 28/31/13 +f 24/30/14 29/33/14 30/35/14 +f 25/37/15 30/41/15 31/38/15 +f 26/29/16 28/31/16 29/33/16 +o LegLeftLower +v 0.562500 0.250000 0.031250 +v 0.562500 0.187500 0.031250 +v 0.562500 0.250000 -0.031250 +v 0.562500 0.187500 -0.031250 +v 0.937500 0.250000 -0.031250 +v 0.937500 0.250000 0.031250 +v 0.937500 0.187500 0.031250 +v 0.937500 0.187500 -0.031250 +v 1.000000 0.187500 0.000000 +v 0.500000 0.218750 0.062500 +v 0.500000 0.218750 -0.062500 +v 0.875000 0.218750 -0.062500 +v 0.875000 0.218750 0.062500 +v 0.500000 0.281250 -0.062500 +v 0.500000 0.281250 0.062500 +v 0.875000 0.281250 -0.062500 +v 0.875000 0.281250 0.062500 +vt 0.675000 0.507042 +vt 0.662500 0.521127 +vt 0.662500 0.507042 +vt 0.662500 0.422535 +vt 0.650000 0.422535 +vt 0.650000 0.408451 +vt 0.687500 0.422535 +vt 0.693750 0.408451 +vt 0.700000 0.422535 +vt 0.675000 0.422535 +vt 0.687500 0.507042 +vt 0.650000 0.507042 +vt 0.750000 0.408451 +vt 0.775000 0.492958 +vt 0.750000 0.492958 +vt 0.687500 0.408451 +vt 0.668750 0.408451 +vt 0.712500 0.492958 +vt 0.737500 0.408451 +vt 0.737500 0.492958 +vt 0.712500 0.507042 +vt 0.737500 0.507042 +vt 0.737500 0.394366 +vt 0.712500 0.408451 +vt 0.712500 0.394366 +vt 0.700000 0.408451 +vt 0.700000 0.492958 +vt 0.675000 0.521127 +vt 0.700000 0.507042 +vt 0.775000 0.408451 +vn -1.0000 0.0000 0.0000 +vn 0.4472 0.0000 0.8944 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.4472 0.0000 -0.8944 +vn 0.7071 0.7071 0.0000 +vn 1.0000 0.0000 0.0000 +s off +f 34/42/17 33/43/17 32/44/17 +f 37/45/18 38/46/18 40/47/18 +f 39/48/19 40/49/19 38/50/19 +f 32/44/20 36/51/20 34/42/20 +f 34/42/21 39/48/21 35/52/21 +f 33/53/22 37/45/22 32/44/22 +f 43/54/19 41/55/19 42/56/19 +f 40/57/23 39/48/23 36/51/23 +f 36/51/24 37/45/24 40/58/24 +f 46/59/20 47/60/20 45/61/20 +f 41/62/17 45/61/17 42/63/17 +f 42/56/21 47/60/21 43/54/21 +f 43/64/25 48/65/25 44/66/25 +f 44/67/22 46/59/22 41/68/22 +f 34/42/17 35/69/17 33/43/17 +f 38/50/19 33/70/19 35/52/19 +f 35/52/19 39/48/19 38/50/19 +f 32/44/20 37/45/20 36/51/20 +f 34/42/21 36/51/21 39/48/21 +f 33/53/22 38/46/22 37/45/22 +f 43/54/19 44/71/19 41/55/19 +f 46/59/20 48/65/20 47/60/20 +f 41/62/17 46/59/17 45/61/17 +f 42/56/21 45/61/21 47/60/21 +f 43/64/25 47/60/25 48/65/25 +f 44/67/22 48/65/22 46/59/22 +o LegLeftUpper +v 0.562500 0.250000 0.031250 +v 0.562500 0.187500 0.031250 +v 0.562500 0.250000 -0.031250 +v 0.562500 0.187500 -0.031250 +v 0.062500 0.250000 -0.031250 +v 0.062500 0.250000 0.031250 +v 0.062500 0.187500 0.031250 +v 0.062500 0.187500 -0.031250 +vt 0.612500 0.380282 +vt 0.625000 0.394366 +vt 0.612500 0.394366 +vt 0.625000 0.507042 +vt 0.612500 0.521127 +vt 0.612500 0.507042 +vt 0.637500 0.394366 +vt 0.600000 0.507042 +vt 0.600000 0.394366 +vt 0.650000 0.394366 +vt 0.637500 0.507042 +vt 0.625000 0.380282 +vt 0.625000 0.521127 +vt 0.650000 0.507042 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +s off +f 50/72/26 51/73/26 49/74/26 +f 53/75/27 55/76/27 54/77/27 +f 52/78/28 53/75/28 51/73/28 +f 49/74/29 55/79/29 50/80/29 +f 50/81/30 56/82/30 52/78/30 +f 51/73/31 54/77/31 49/74/31 +f 50/72/26 52/83/26 51/73/26 +f 53/75/27 56/84/27 55/76/27 +f 52/78/28 56/82/28 53/75/28 +f 49/74/29 54/77/29 55/79/29 +f 50/81/30 55/85/30 56/82/30 +f 51/73/31 53/75/31 54/77/31 +o ArmorRight +v 0.000000 0.343750 -1.281250 +v 0.000000 0.343750 -0.468750 +v 0.000000 0.843750 -1.281250 +v 0.000000 0.843750 -0.468750 +v -0.343750 0.343750 -1.281250 +v -0.343750 0.343750 -0.468750 +v -0.343750 0.843750 -1.281250 +v -0.343750 0.843750 -0.468750 +v -0.281250 0.781250 -1.406250 +v -0.281250 0.343750 -1.406250 +v -0.281250 0.781250 -1.281250 +v -0.281250 0.343750 -1.281250 +v 0.000000 0.343750 -1.406250 +v 0.000000 0.781250 -1.406250 +v 0.000000 0.781250 -1.281250 +vt 0.168750 0.295775 +vt 0.237500 0.112676 +vt 0.237500 0.295775 +vt 0.168750 0.000000 +vt 0.168750 0.112676 +vt 0.168750 0.408451 +vt 0.337500 0.295775 +vt 0.475000 0.267606 +vt 0.418750 0.295775 +vt 0.418750 0.267606 +vt 0.475000 0.169014 +vt 0.500000 0.267606 +vt 0.418750 0.169014 +vt 0.237500 -0.000000 +vt 0.237500 0.408451 +vt 0.337500 0.112676 +vt 0.475000 0.295775 +vt 0.500000 0.169014 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +s off +f 60/86/32 63/87/32 64/88/32 +f 57/89/33 63/87/33 59/90/33 +f 64/88/34 58/91/34 60/86/34 +f 63/87/35 62/92/35 64/88/35 +f 65/93/32 71/94/32 70/95/32 +f 66/96/35 67/97/35 65/93/35 +f 65/93/33 69/98/33 66/96/33 +f 60/86/32 59/90/32 63/87/32 +f 57/89/33 61/99/33 63/87/33 +f 64/88/34 62/100/34 58/91/34 +f 63/87/35 61/101/35 62/92/35 +f 65/93/32 67/102/32 71/94/32 +f 66/96/35 68/103/35 67/97/35 +f 65/93/33 70/95/33 69/98/33 +o ArmorLeft +v 0.000000 0.343750 -1.281250 +v 0.000000 0.343750 -0.468750 +v 0.000000 0.843750 -1.281250 +v 0.000000 0.843750 -0.468750 +v 0.343750 0.343750 -1.281250 +v 0.343750 0.343750 -0.468750 +v 0.000000 0.781250 -1.281250 +v 0.343750 0.843750 -1.281250 +v 0.000000 0.781250 -1.406250 +v 0.343750 0.843750 -0.468750 +v 0.000000 0.343750 -1.406250 +v 0.281250 0.781250 -1.281250 +v 0.281250 0.343750 -1.281250 +v 0.281250 0.781250 -1.406250 +v 0.281250 0.343750 -1.406250 +vt 0.168750 0.295775 +vt 0.100000 0.408451 +vt 0.100000 0.295775 +vt 0.418750 0.267606 +vt 0.362500 0.295775 +vt 0.362500 0.267606 +vt 0.100000 0.000000 +vt 0.168750 0.112676 +vt 0.100000 0.112676 +vt -0.000000 0.112676 +vt 0.337500 0.169014 +vt 0.362500 0.169014 +vt 0.418750 0.169014 +vt 0.168750 0.408451 +vt 0.418750 0.295775 +vt 0.168750 0.000000 +vt 0.000000 0.295775 +vt 0.337500 0.267606 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +s off +f 75/104/36 77/105/36 81/106/36 +f 80/107/37 83/108/37 85/109/37 +f 76/110/38 74/111/38 79/112/38 +f 81/106/39 76/113/39 79/112/39 +f 85/109/39 84/114/39 86/115/39 +f 80/107/38 86/115/38 82/116/38 +f 81/106/37 74/111/37 75/104/37 +f 75/104/36 73/117/36 77/105/36 +f 80/107/37 78/118/37 83/108/37 +f 76/110/38 72/119/38 74/111/38 +f 81/106/39 77/120/39 76/113/39 +f 85/109/39 83/121/39 84/114/39 +f 80/107/38 85/109/38 86/115/38 +f 81/106/37 79/112/37 74/111/37 +o ArmorFront +v -0.281250 0.781250 0.281250 +v -0.281250 0.781250 -0.281250 +v 0.281250 0.781250 0.281250 +v 0.281250 0.781250 -0.281250 +v -0.281250 0.531250 0.281250 +v -0.281250 0.531250 -0.281250 +v 0.281250 0.531250 0.281250 +v 0.281250 0.531250 -0.281250 +vt 0.775000 0.633803 +vt 0.887500 0.507042 +vt 0.887500 0.633803 +vt 0.937500 0.633803 +vt 0.775000 0.690141 +vt 0.725000 0.507042 +vt 0.775000 0.507042 +vt 0.775000 0.450704 +vt 0.937500 0.507042 +vt 0.887500 0.690141 +vt 0.725000 0.633803 +vt 0.887500 0.450704 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +s off +f 88/122/40 89/123/40 90/124/40 +f 89/123/41 94/125/41 90/124/41 +f 90/124/42 92/126/42 88/122/42 +f 88/122/43 91/127/43 87/128/43 +f 91/129/44 89/123/44 87/128/44 +f 88/122/40 87/128/40 89/123/40 +f 89/123/41 93/130/41 94/125/41 +f 90/124/42 94/131/42 92/126/42 +f 88/122/43 92/132/43 91/127/43 +f 91/129/44 93/133/44 89/123/44 +o ArmRightUpper +v -0.375000 0.687500 0.437500 +v -0.375000 0.562500 0.437500 +v -0.375000 0.687500 0.062500 +v -0.375000 0.562500 0.062500 +v -0.250000 0.687500 0.062500 +v -0.250000 0.687500 0.437500 +v -0.250000 0.562500 0.437500 +v -0.250000 0.562500 0.062500 +vt 0.325000 0.633803 +vt 0.300000 0.549296 +vt 0.325000 0.549296 +vt 0.375000 0.549296 +vt 0.350000 0.633803 +vt 0.350000 0.549296 +vt 0.350000 0.661972 +vt 0.325000 0.661972 +vt 0.325000 0.521127 +vt 0.400000 0.633803 +vt 0.400000 0.549296 +vt 0.300000 0.633803 +vt 0.375000 0.633803 +vt 0.350000 0.521127 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +s off +f 97/134/45 96/135/45 95/136/45 +f 101/137/46 99/138/46 100/139/46 +f 97/134/47 102/140/47 98/141/47 +f 96/142/48 100/139/48 95/136/48 +f 98/143/49 101/137/49 96/144/49 +f 95/136/50 99/138/50 97/134/50 +f 97/134/45 98/145/45 96/135/45 +f 101/137/46 102/146/46 99/138/46 +f 97/134/47 99/138/47 102/140/47 +f 96/142/48 101/147/48 100/139/48 +f 98/143/49 102/146/49 101/137/49 +f 95/136/50 100/139/50 99/138/50 +o ArmRightMid +v -0.375000 0.687500 0.437500 +v -0.375000 0.562500 0.437500 +v -0.250000 0.687500 0.437500 +v -0.250000 0.562500 0.437500 +v -0.375000 0.687500 0.937500 +v -0.375000 0.562500 0.937500 +v -0.250000 0.687500 0.937500 +v -0.250000 0.562500 0.937500 +vt 0.450000 0.633803 +vt 0.425000 0.661972 +vt 0.425000 0.633803 +vt 0.425000 0.492958 +vt 0.450000 0.521127 +vt 0.425000 0.521127 +vt 0.475000 0.633803 +vt 0.500000 0.521127 +vt 0.500000 0.633803 +vt 0.400000 0.633803 +vt 0.475000 0.521127 +vt 0.450000 0.661972 +vt 0.450000 0.492958 +vt 0.400000 0.521127 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 1.0000 -0.0000 +vn 1.0000 0.0000 0.0000 +s off +f 105/148/51 104/149/51 103/150/51 +f 108/151/52 109/152/52 107/153/52 +f 106/154/53 108/155/53 104/156/53 +f 104/157/54 107/153/54 103/150/54 +f 103/150/55 109/152/55 105/148/55 +f 105/148/56 110/158/56 106/154/56 +f 105/148/51 106/159/51 104/149/51 +f 108/151/52 110/160/52 109/152/52 +f 106/154/53 110/158/53 108/155/53 +f 104/157/54 108/161/54 107/153/54 +f 103/150/55 107/153/55 109/152/55 +f 105/148/56 109/152/56 110/158/56 +o ArmRightArmor +v -0.437500 0.625000 0.812500 +v -0.187500 0.625000 0.812500 +v -0.437500 0.625000 1.562500 +v -0.187500 0.625000 1.562500 +v -0.187500 0.750000 0.812500 +v -0.437500 0.750000 0.812500 +v -0.187500 0.750000 1.562500 +v -0.437500 0.750000 1.562500 +vt 0.400000 0.492958 +vt 0.450000 0.323944 +vt 0.450000 0.492958 +vt 0.325000 0.492958 +vt 0.375000 0.323944 +vt 0.375000 0.492958 +vt 0.300000 0.323944 +vt 0.300000 0.492958 +vt 0.375000 0.521127 +vt 0.400000 0.323944 +vt 0.375000 0.295775 +vt 0.325000 0.323944 +vt 0.325000 0.295775 +vt 0.325000 0.521127 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 -0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -0.0000 1.0000 +s off +f 112/162/57 113/163/57 111/164/57 +f 116/165/58 117/166/58 115/167/58 +f 113/168/59 116/165/59 111/169/59 +f 112/170/60 116/165/60 115/167/60 +f 112/162/61 117/166/61 114/171/61 +f 114/172/62 118/173/62 113/174/62 +f 112/162/57 114/171/57 113/163/57 +f 116/165/58 118/173/58 117/166/58 +f 113/168/59 118/173/59 116/165/59 +f 112/170/60 111/175/60 116/165/60 +f 112/162/61 115/167/61 117/166/61 +f 114/172/62 117/166/62 118/173/62 +o ArmRightLower +v -0.375000 0.687500 0.937500 +v -0.375000 0.562500 0.937500 +v -0.250000 0.687500 0.937500 +v -0.250000 0.562500 0.937500 +v -0.375000 0.687500 1.687500 +v -0.375000 0.562500 1.687500 +v -0.250000 0.687500 1.687500 +v -0.250000 0.562500 1.687500 +v -0.312500 0.562500 1.812500 +vt 0.550000 0.633803 +vt 0.525000 0.661972 +vt 0.525000 0.633803 +vt 0.525000 0.464789 +vt 0.537500 0.436620 +vt 0.550000 0.464789 +vt 0.575000 0.464789 +vt 0.575000 0.633803 +vt 0.587500 0.436620 +vt 0.600000 0.464789 +vt 0.500000 0.633803 +vt 0.575000 0.436620 +vt 0.500000 0.436620 +vt 0.500000 0.464789 +vt 0.550000 0.661972 +vt 0.600000 0.633803 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.7071 0.7071 +vn 0.0000 1.0000 -0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.8944 0.0000 0.4472 +vn -0.8944 0.0000 0.4472 +s off +f 121/176/63 120/177/63 119/178/63 +f 123/179/64 127/180/64 125/181/64 +f 121/176/65 123/179/65 125/181/65 +f 121/176/66 126/182/66 122/183/66 +f 126/182/67 127/184/67 124/185/67 +f 120/186/68 123/179/68 119/178/68 +f 125/181/69 127/187/69 126/182/69 +f 127/188/70 123/179/70 124/189/70 +f 121/176/63 122/190/63 120/177/63 +f 121/176/65 119/178/65 123/179/65 +f 121/176/66 125/181/66 126/182/66 +f 124/185/67 120/191/67 122/183/67 +f 122/183/67 126/182/67 124/185/67 +f 120/186/68 124/189/68 123/179/68 +o ArmLeftArmor +v 0.187500 0.625000 0.812500 +v 0.437500 0.625000 0.812500 +v 0.187500 0.625000 1.562500 +v 0.437500 0.625000 1.562500 +v 0.437500 0.750000 0.812500 +v 0.187500 0.750000 0.812500 +v 0.437500 0.750000 1.562500 +v 0.187500 0.750000 1.562500 +vt 0.400000 0.492958 +vt 0.450000 0.323944 +vt 0.450000 0.492958 +vt 0.325000 0.492958 +vt 0.375000 0.323944 +vt 0.375000 0.492958 +vt 0.300000 0.323944 +vt 0.300000 0.492958 +vt 0.375000 0.521127 +vt 0.400000 0.323944 +vt 0.325000 0.295775 +vt 0.325000 0.323944 +vt 0.325000 0.521127 +vt 0.375000 0.295775 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 -0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -0.0000 1.0000 +s off +f 129/192/71 130/193/71 128/194/71 +f 133/195/72 134/196/72 132/197/72 +f 130/198/73 133/195/73 128/199/73 +f 129/200/74 133/195/74 132/197/74 +f 129/192/75 134/196/75 131/201/75 +f 130/202/76 134/196/76 135/203/76 +f 129/192/71 131/201/71 130/193/71 +f 133/195/72 135/203/72 134/196/72 +f 130/198/73 135/203/73 133/195/73 +f 129/200/74 128/204/74 133/195/74 +f 129/192/75 132/197/75 134/196/75 +f 130/202/76 131/205/76 134/196/76 +o ArmLeftUpper +v 0.250000 0.687500 0.437500 +v 0.250000 0.562500 0.437500 +v 0.250000 0.687500 0.062500 +v 0.250000 0.562500 0.062500 +v 0.375000 0.687500 0.062500 +v 0.375000 0.687500 0.437500 +v 0.375000 0.562500 0.437500 +v 0.375000 0.562500 0.062500 +vt 0.325000 0.633803 +vt 0.300000 0.549296 +vt 0.325000 0.549296 +vt 0.375000 0.549296 +vt 0.350000 0.633803 +vt 0.350000 0.549296 +vt 0.350000 0.661972 +vt 0.325000 0.661972 +vt 0.325000 0.521127 +vt 0.400000 0.633803 +vt 0.400000 0.549296 +vt 0.300000 0.633803 +vt 0.375000 0.633803 +vt 0.350000 0.521127 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +s off +f 138/206/77 137/207/77 136/208/77 +f 142/209/78 140/210/78 141/211/78 +f 138/206/79 143/212/79 139/213/79 +f 137/214/80 141/211/80 136/208/80 +f 139/215/81 142/209/81 137/216/81 +f 136/208/82 140/210/82 138/206/82 +f 138/206/77 139/217/77 137/207/77 +f 142/209/78 143/218/78 140/210/78 +f 138/206/79 140/210/79 143/212/79 +f 137/214/80 142/219/80 141/211/80 +f 139/215/81 143/218/81 142/209/81 +f 136/208/82 141/211/82 140/210/82 +o ArmLeftMid +v 0.250000 0.687500 0.437500 +v 0.250000 0.562500 0.437500 +v 0.375000 0.687500 0.437500 +v 0.375000 0.562500 0.437500 +v 0.250000 0.687500 0.937500 +v 0.250000 0.562500 0.937500 +v 0.375000 0.687500 0.937500 +v 0.375000 0.562500 0.937500 +vt 0.450000 0.633803 +vt 0.425000 0.661972 +vt 0.425000 0.633803 +vt 0.425000 0.492958 +vt 0.450000 0.521127 +vt 0.425000 0.521127 +vt 0.475000 0.633803 +vt 0.500000 0.521127 +vt 0.500000 0.633803 +vt 0.400000 0.633803 +vt 0.475000 0.521127 +vt 0.450000 0.661972 +vt 0.450000 0.492958 +vt 0.400000 0.521127 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 1.0000 -0.0000 +vn 1.0000 0.0000 0.0000 +s off +f 146/220/83 145/221/83 144/222/83 +f 149/223/84 150/224/84 148/225/84 +f 147/226/85 149/227/85 145/228/85 +f 145/229/86 148/225/86 144/222/86 +f 144/222/87 150/224/87 146/220/87 +f 146/220/88 151/230/88 147/226/88 +f 146/220/83 147/231/83 145/221/83 +f 149/223/84 151/232/84 150/224/84 +f 147/226/85 151/230/85 149/227/85 +f 145/229/86 149/233/86 148/225/86 +f 144/222/87 148/225/87 150/224/87 +f 146/220/88 150/224/88 151/230/88 +o ArmLeftLower +v 0.250000 0.687500 0.937500 +v 0.250000 0.562500 0.937500 +v 0.375000 0.687500 0.937500 +v 0.375000 0.562500 0.937500 +v 0.250000 0.687500 1.687500 +v 0.250000 0.562500 1.687500 +v 0.375000 0.687500 1.687500 +v 0.375000 0.562500 1.687500 +v 0.312500 0.562500 1.812500 +vt 0.550000 0.633803 +vt 0.525000 0.661972 +vt 0.525000 0.633803 +vt 0.525000 0.464789 +vt 0.537500 0.436620 +vt 0.550000 0.464789 +vt 0.575000 0.464789 +vt 0.575000 0.633803 +vt 0.587500 0.436620 +vt 0.600000 0.464789 +vt 0.500000 0.633803 +vt 0.575000 0.436620 +vt 0.500000 0.436620 +vt 0.500000 0.464789 +vt 0.550000 0.661972 +vt 0.600000 0.633803 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.7071 0.7071 +vn 0.0000 1.0000 -0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.8944 0.0000 0.4472 +vn -0.8944 0.0000 0.4472 +s off +f 154/234/89 153/235/89 152/236/89 +f 156/237/90 160/238/90 158/239/90 +f 154/234/91 156/237/91 158/239/91 +f 154/234/92 159/240/92 155/241/92 +f 159/240/93 160/242/93 157/243/93 +f 153/244/94 156/237/94 152/236/94 +f 158/239/95 160/245/95 159/240/95 +f 160/246/96 156/237/96 157/247/96 +f 154/234/89 155/248/89 153/235/89 +f 154/234/91 152/236/91 156/237/91 +f 154/234/92 158/239/92 159/240/92 +f 157/243/93 153/249/93 155/241/93 +f 155/241/93 159/240/93 157/243/93 +f 153/244/94 157/247/94 156/237/94 +o Body +v -0.250000 0.250000 0.250000 +v -0.250000 0.750000 0.250000 +v -0.250000 0.250000 -0.250000 +v -0.250000 0.750000 -0.250000 +v 0.250000 0.250000 0.250000 +v 0.250000 0.750000 0.250000 +v 0.250000 0.250000 -0.250000 +v 0.250000 0.750000 -0.250000 +v -0.187500 0.312500 -0.250000 +v -0.187500 0.687500 -0.250000 +v 0.187500 0.312500 -0.250000 +v 0.187500 0.687500 -0.250000 +v -0.187500 0.687500 -0.500000 +v -0.187500 0.312500 -0.500000 +v 0.187500 0.312500 -0.500000 +v 0.187500 0.687500 -0.500000 +v -0.312500 0.187500 -0.500000 +v 0.312500 0.187500 -0.500000 +v -0.312500 0.812500 -0.500000 +v 0.312500 0.812500 -0.500000 +v -0.312500 0.812500 -1.250000 +v -0.312500 0.187500 -1.250000 +v 0.312500 0.187500 -1.250000 +v 0.312500 0.812500 -1.250000 +v -0.250000 0.250000 -1.250000 +v 0.250000 0.250000 -1.250000 +v -0.250000 0.750000 -1.250000 +v 0.250000 0.750000 -1.250000 +v -0.250000 0.750000 -1.375000 +v -0.250000 0.250000 -1.375000 +v 0.250000 0.250000 -1.375000 +v 0.250000 0.750000 -1.375000 +v -0.187500 0.250000 0.187500 +v 0.187500 0.250000 0.187500 +v -0.187500 0.250000 -0.187500 +v 0.187500 0.250000 -0.187500 +v -0.187500 0.187500 -0.187500 +v -0.187500 0.187500 0.187500 +v 0.187500 0.187500 0.187500 +v 0.187500 0.187500 -0.187500 +vt 0.100000 0.887324 +vt 0.000000 0.774648 +vt 0.100000 0.774648 +vt 0.400000 0.887324 +vt 0.300000 0.774648 +vt 0.400000 0.774648 +vt 0.300000 0.887324 +vt 0.200000 0.774648 +vt 0.200000 0.887324 +vt 0.200000 0.661972 +vt 0.100000 0.661972 +vt 0.100000 1.000000 +vt 0.200000 1.000000 +vt 0.400000 0.746479 +vt 0.450000 0.830986 +vt 0.400000 0.830986 +vt 0.400000 0.661972 +vt 0.450000 0.746479 +vt 0.450000 0.915493 +vt 0.400000 0.915493 +vt 0.450000 1.000000 +vt 0.400000 1.000000 +vt 0.725000 0.690141 +vt 0.600000 0.830986 +vt 0.600000 0.690141 +vt 1.000000 0.830986 +vt 0.875000 0.690141 +vt 1.000000 0.690141 +vt 0.875000 0.830986 +vt 0.725000 0.830986 +vt 0.450000 0.690141 +vt 0.600000 1.000000 +vt 0.725000 0.521127 +vt 0.850000 0.971831 +vt 0.750000 0.859155 +vt 0.850000 0.859155 +vt 0.750000 1.000000 +vt 0.850000 1.000000 +vt 0.850000 0.830986 +vt 0.750000 0.830986 +vt 0.725000 0.859155 +vt 0.750000 0.971831 +vt 0.725000 0.971831 +vt 0.875000 0.971831 +vt 0.875000 0.859155 +vt 0.212500 0.901408 +vt 0.287500 0.985915 +vt 0.212500 0.985915 +vt 0.300000 0.985915 +vt 0.287500 0.901408 +vt 0.300000 0.901408 +vt 0.200000 0.901408 +vt 0.200000 0.985915 +vt 0.287500 0.887324 +vt 0.212500 0.887324 +vt 0.212500 1.000000 +vt 0.287500 1.000000 +vt 0.000000 0.887324 +vt 0.450000 0.661972 +vt 0.450000 0.830986 +vt 0.725000 1.000000 +vt 0.600000 0.521127 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +s off +f 162/250/97 163/251/97 161/252/97 +f 164/253/98 167/254/98 163/255/98 +f 168/256/99 165/257/99 167/254/99 +f 166/258/100 161/252/100 165/257/100 +f 167/259/101 161/252/101 163/260/101 +f 164/261/102 166/258/102 168/262/102 +f 171/263/99 176/264/99 172/265/99 +f 169/266/101 175/267/101 171/263/101 +f 172/265/102 173/268/102 170/269/102 +f 170/269/97 174/270/97 169/271/97 +f 178/272/100 179/273/100 177/274/100 +f 181/275/98 183/276/98 182/277/98 +f 178/272/99 184/278/99 180/279/99 +f 179/273/97 182/280/97 177/274/97 +f 180/279/102 181/281/102 179/273/102 +f 177/274/101 183/282/101 178/272/101 +f 189/283/98 191/284/98 190/285/98 +f 188/286/102 189/283/102 187/287/102 +f 185/288/101 191/284/101 186/289/101 +f 186/290/99 192/291/99 188/292/99 +f 187/293/97 190/285/97 185/294/97 +f 197/295/101 199/296/101 198/297/101 +f 194/298/99 200/299/99 196/300/99 +f 195/301/97 198/297/97 193/302/97 +f 196/303/98 197/295/98 195/304/98 +f 193/305/100 199/296/100 194/306/100 +f 162/250/97 164/307/97 163/251/97 +f 164/253/98 168/256/98 167/254/98 +f 168/256/99 166/258/99 165/257/99 +f 166/258/100 162/250/100 161/252/100 +f 167/259/101 165/257/101 161/252/101 +f 164/261/102 162/250/102 166/258/102 +f 171/263/99 175/267/99 176/264/99 +f 169/266/101 174/308/101 175/267/101 +f 172/265/102 176/264/102 173/268/102 +f 170/269/97 173/268/97 174/270/97 +f 178/272/100 180/279/100 179/273/100 +f 181/275/98 184/278/98 183/276/98 +f 178/272/99 183/276/99 184/278/99 +f 179/273/97 181/309/97 182/280/97 +f 180/279/102 184/310/102 181/281/102 +f 177/274/101 182/311/101 183/282/101 +f 189/283/98 192/291/98 191/284/98 +f 188/286/102 192/291/102 189/283/102 +f 185/288/101 190/285/101 191/284/101 +f 186/290/99 191/284/99 192/291/99 +f 187/293/97 189/283/97 190/285/97 +f 197/295/101 200/299/101 199/296/101 +f 194/298/99 199/296/99 200/299/99 +f 195/301/97 197/295/97 198/297/97 +f 196/303/98 200/299/98 197/295/98 +f 193/305/100 198/297/100 199/296/100 +o LegRightLower +v -0.562500 0.250000 -0.031250 +v -0.562500 0.187500 -0.031250 +v -0.562500 0.250000 0.031250 +v -0.562500 0.187500 0.031250 +v -0.937500 0.250000 0.031250 +v -0.937500 0.250000 -0.031250 +v -0.937500 0.187500 -0.031250 +v -0.937500 0.187500 0.031250 +v -1.000000 0.187500 0.000000 +v -0.500000 0.218750 -0.062500 +v -0.500000 0.218750 0.062500 +v -0.875000 0.218750 0.062500 +v -0.875000 0.218750 -0.062500 +v -0.500000 0.281250 0.062500 +v -0.500000 0.281250 -0.062500 +v -0.875000 0.281250 0.062500 +v -0.875000 0.281250 -0.062500 +vt 0.675000 0.507042 +vt 0.662500 0.521127 +vt 0.662500 0.507042 +vt 0.662500 0.422535 +vt 0.650000 0.422535 +vt 0.650000 0.408451 +vt 0.687500 0.422535 +vt 0.693750 0.408451 +vt 0.700000 0.422535 +vt 0.675000 0.422535 +vt 0.687500 0.507042 +vt 0.650000 0.507042 +vt 0.750000 0.408451 +vt 0.775000 0.492958 +vt 0.750000 0.492958 +vt 0.687500 0.408451 +vt 0.668750 0.408451 +vt 0.712500 0.492958 +vt 0.737500 0.408451 +vt 0.737500 0.492958 +vt 0.712500 0.507042 +vt 0.737500 0.507042 +vt 0.737500 0.394366 +vt 0.712500 0.408451 +vt 0.712500 0.394366 +vt 0.700000 0.408451 +vt 0.700000 0.492958 +vt 0.675000 0.521127 +vt 0.700000 0.507042 +vt 0.775000 0.408451 +vn 1.0000 0.0000 0.0000 +vn -0.4472 0.0000 -0.8944 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn -0.0000 0.0000 -1.0000 +vn -0.4472 0.0000 0.8944 +vn -0.7071 0.7071 0.0000 +vn -1.0000 0.0000 0.0000 +s off +f 203/312/103 202/313/103 201/314/103 +f 206/315/104 207/316/104 209/317/104 +f 208/318/105 209/319/105 207/320/105 +f 201/314/106 205/321/106 203/312/106 +f 203/312/107 208/318/107 204/322/107 +f 202/323/108 206/315/108 201/314/108 +f 212/324/105 210/325/105 211/326/105 +f 209/327/109 208/318/109 205/321/109 +f 205/321/110 206/315/110 209/328/110 +f 215/329/106 216/330/106 214/331/106 +f 210/332/103 214/331/103 211/333/103 +f 211/326/107 216/330/107 212/324/107 +f 212/334/111 217/335/111 213/336/111 +f 213/337/108 215/329/108 210/338/108 +f 203/312/103 204/339/103 202/313/103 +f 207/320/105 202/340/105 204/322/105 +f 204/322/105 208/318/105 207/320/105 +f 201/314/106 206/315/106 205/321/106 +f 203/312/107 205/321/107 208/318/107 +f 202/323/108 207/316/108 206/315/108 +f 212/324/105 213/341/105 210/325/105 +f 215/329/106 217/335/106 216/330/106 +f 210/332/103 215/329/103 214/331/103 +f 211/326/107 214/331/107 216/330/107 +f 212/334/111 216/330/111 217/335/111 +f 213/337/108 217/335/108 215/329/108 diff --git a/src/main/resources/assets/hbm/textures/entity/glyphid.png b/src/main/resources/assets/hbm/textures/entity/glyphid.png new file mode 100644 index 0000000000000000000000000000000000000000..dd5d4ec03f7b3891eaa798e0b0887a6143d5dd81 GIT binary patch literal 887 zcmV--1Bm>IP)dalRKx6iHLR4|xtR0ukf}=A-xe2q7QBdGs?xtbPN(tU$cX znD(`8Iof(tzGuwu7h^JqkPk5G$KY#|BI24M3%C{<%TssJtOiK8#80GFF)Sbz7Ldr| zW1w2P0Yu0G)?W7PFlOx(vA8J7YyAnokQK5f+e0k>GVmUP~XNm5&;Wv~Sj zVF8J-fJ7D_1N)4fiz3mB_v; zyrs1HD((NPy7wMB+=ij@OT!jOWb!evv7A!1N#1i+U(bDy+q8D{$Gi^?1Gso)LSrIZ zAQ2Xj2n$H05I0@Fc0IC-o5y8nCB;2qRjz!sB?em{k;%QV6SsMBTvf+=ZTz=VJORIb z?(Pr2-0upchgvUc8dvP zDJ4uDRGU)Sz}tO32ne~c$4`0-3Q<8*788oErmLul`T+oM&cl;w^L%;ilK;80Ubn32 z^2=M>hQL0nzyJDfFPHB8z4JNky}D5S?1hPB--U^RmqlY@Y8hn;h| z)Y--C1w4ooZ{4N=%g2#dHwL<%c#dvfxc{b)4a9a52Jg-?u>^i=K-^0|`x}54ZR^rb z{*kAxs5lmDn_@3*>=`>LF_!GRaE!WZn@U4eI-KW>jjCj>q6;s%PjVFkE(r@rgasrr zxf2;W9p9v1+AGctTObj!i$wA}b(*#nfOrZNdkJLr-rG2_|C_ Date: Thu, 15 Jun 2023 15:13:24 +0200 Subject: [PATCH 126/432] glyphids --- .../java/com/hbm/entity/EntityMappings.java | 1 + .../com/hbm/entity/mob/EntityGlyphid.java | 164 +++++++++++++++++ .../handler/pollution/PollutionHandler.java | 3 +- src/main/java/com/hbm/main/ClientProxy.java | 1 + .../hbm/render/entity/mob/RenderGlyphid.java | 167 ++++++++++++++++++ 5 files changed, 335 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/hbm/entity/mob/EntityGlyphid.java create mode 100644 src/main/java/com/hbm/render/entity/mob/RenderGlyphid.java diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index 797097dfc..04499718a 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -238,6 +238,7 @@ public class EntityMappings { addMob(EntitySiegeSkeleton.class, "entity_meme_skeleton", 0x303030, 0x000080); addMob(EntitySiegeUFO.class, "entity_meme_ufo", 0x303030, 0x800000); addMob(EntitySiegeCraft.class, "entity_meme_craft", 0x303030, 0x808000); + addMob(EntityGlyphid.class, "entity_glyphid", 0x724A21, 0xD2BB72); addSpawn(EntityCreeperPhosgene.class, 5, 1, 1, EnumCreatureType.monster, BiomeGenBase.getBiomeGenArray()); addSpawn(EntityCreeperVolatile.class, 10, 1, 1, EnumCreatureType.monster, BiomeGenBase.getBiomeGenArray()); diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java new file mode 100644 index 000000000..416b316b7 --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java @@ -0,0 +1,164 @@ +package com.hbm.entity.mob; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.EnumCreatureAttribute; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.EntityAIAttackOnCollide; +import net.minecraft.entity.ai.EntityAIHurtByTarget; +import net.minecraft.entity.ai.EntityAILookIdle; +import net.minecraft.entity.ai.EntityAIMoveTowardsRestriction; +import net.minecraft.entity.ai.EntityAINearestAttackableTarget; +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.ai.EntityAIWander; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.monster.EntityMob; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.DamageSource; +import net.minecraft.world.World; + +public class EntityGlyphid extends EntityMob { + + public EntityGlyphid(World world) { + super(world); + this.tasks.addTask(0, new EntityAISwimming(this)); + this.tasks.addTask(2, new EntityAIAttackOnCollide(this, EntityPlayer.class, 1.0D, false)); + this.tasks.addTask(5, new EntityAIMoveTowardsRestriction(this, 1.0D)); + this.tasks.addTask(7, new EntityAIWander(this, 1.0D)); + this.tasks.addTask(8, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F)); + this.tasks.addTask(8, new EntityAILookIdle(this)); + this.targetTasks.addTask(1, new EntityAIHurtByTarget(this, true)); + this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityPlayer.class, 0, true)); + this.setSize(2F, 1F); + } + + @Override + protected void entityInit() { + super.entityInit(); + this.dataWatcher.addObject(16, new Byte((byte) 0)); //wall climbing + this.dataWatcher.addObject(17, new Byte((byte) 0b11111)); //armor + } + + @Override + protected void applyEntityAttributes() { + super.applyEntityAttributes(); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(32D); + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.8D); + } + + @Override + public boolean attackEntityFrom(DamageSource source, float amount) { + + if(!source.isDamageAbsolute() && !source.isUnblockable() && !worldObj.isRemote) { + byte armor = this.dataWatcher.getWatchableObjectByte(17); + + if(armor != 0) { //if at least one bit of armor is present + int chance = amount < 10 ? 5 : amount < 20 ? 3 : 2; //chances of armor being broken off + if(this.rand.nextInt(chance) == 0) { + List indices = Arrays.asList(0, 1, 2, 3, 4); + Collections.shuffle(indices); + + for(Integer i : indices) { + byte bit = (byte) (1 << i); + if((armor & bit) > 0) { //if this bit is present... + armor &= ~bit; //...remove it + armor = (byte) (armor & 0b11111); + this.dataWatcher.updateObject(17, armor); + return false; + } + } + } + + amount -= 0.5; + } + + int divisor = 1; + + for(int i = 0; i < 5; i++) { + if((armor & (1 << i)) > 0) { + divisor++; + } + } + + System.out.println("" + divisor); + + amount /= divisor; + } + + return super.attackEntityFrom(source, amount); + } + + @Override + public boolean attackEntityAsMob(Entity victum) { + if(this.isSwingInProgress) return false; + this.swingItem(); + return super.attackEntityAsMob(victum); + } + + @Override + public void onUpdate() { + super.onUpdate(); + + if(!this.worldObj.isRemote) { + this.setBesideClimbableBlock(this.isCollidedHorizontally); + + if(worldObj.getTotalWorldTime() % 100 == 0) { + this.swingItem(); + } + } + } + + @Override + protected void updateArmSwingProgress() { + int i = this.swingDuration(); + + if(this.isSwingInProgress) { + ++this.swingProgressInt; + + if(this.swingProgressInt >= i) { + this.swingProgressInt = 0; + this.isSwingInProgress = false; + } + } else { + this.swingProgressInt = 0; + } + + this.swingProgress = (float) this.swingProgressInt / (float) i; + } + + public int swingDuration() { + return 15; + } + + @Override + public void setInWeb() { } + + @Override + public boolean isOnLadder() { + return this.isBesideClimbableBlock(); + } + + public boolean isBesideClimbableBlock() { + return (this.dataWatcher.getWatchableObjectByte(16) & 1) != 0; + } + + public void setBesideClimbableBlock(boolean climbable) { + byte watchable = this.dataWatcher.getWatchableObjectByte(16); + + if(climbable) { + watchable = (byte) (watchable | 1); + } else { + watchable &= -2; + } + + this.dataWatcher.updateObject(16, Byte.valueOf(watchable)); + } + + @Override + public EnumCreatureAttribute getCreatureAttribute() { + return EnumCreatureAttribute.ARTHROPOD; + } +} diff --git a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java index bbc4e7099..d62fd28e6 100644 --- a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java +++ b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java @@ -122,14 +122,15 @@ public class PollutionHandler { if(!event.world.isRemote) { WorldServer world = (WorldServer) event.world; String dirPath = getDataDir(world); + File pollutionFile = new File(dirPath, fileName); try { - File pollutionFile = new File(dirPath, fileName); if(!pollutionFile.getParentFile().exists()) pollutionFile.getParentFile().mkdirs(); if(!pollutionFile.exists()) pollutionFile.createNewFile(); NBTTagCompound data = perWorld.get(world).writeToNBT(); CompressedStreamTools.writeCompressed(data, new FileOutputStream(pollutionFile)); } catch(Exception ex) { + System.out.println("Failed to write " + pollutionFile.getAbsolutePath()); ex.printStackTrace(); } } diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 492673357..ab05362d0 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -721,6 +721,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntitySiegeSkeleton.class, new RenderSiegeSkeleton()); RenderingRegistry.registerEntityRenderingHandler(EntitySiegeTunneler.class, new RenderSiegeTunneler()); RenderingRegistry.registerEntityRenderingHandler(EntityGhost.class, new RenderGhost()); + RenderingRegistry.registerEntityRenderingHandler(EntityGlyphid.class, new RenderGlyphid()); //"particles" RenderingRegistry.registerEntityRenderingHandler(EntitySmokeFX.class, new MultiCloudRenderer(new Item[] { ModItems.smoke1, ModItems.smoke2, ModItems.smoke3, ModItems.smoke4, ModItems.smoke5, ModItems.smoke6, ModItems.smoke7, ModItems.smoke8 })); RenderingRegistry.registerEntityRenderingHandler(EntityBSmokeFX.class, new MultiCloudRenderer(new Item[] { ModItems.b_smoke1, ModItems.b_smoke2, ModItems.b_smoke3, ModItems.b_smoke4, ModItems.b_smoke5, ModItems.b_smoke6, ModItems.b_smoke7, ModItems.b_smoke8 })); diff --git a/src/main/java/com/hbm/render/entity/mob/RenderGlyphid.java b/src/main/java/com/hbm/render/entity/mob/RenderGlyphid.java new file mode 100644 index 000000000..30915068e --- /dev/null +++ b/src/main/java/com/hbm/render/entity/mob/RenderGlyphid.java @@ -0,0 +1,167 @@ +package com.hbm.render.entity.mob; + +import org.lwjgl.opengl.GL11; + +import com.hbm.main.ResourceManager; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.renderer.entity.RenderLiving; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; + +public class RenderGlyphid extends RenderLiving { + + public RenderGlyphid() { + super(new ModelGlyphid(), 1.0F); + this.shadowOpaque = 0.0F; + } + + @Override + protected ResourceLocation getEntityTexture(Entity p_110775_1_) { + return ResourceManager.glyphid_tex; + } + + public static class ModelGlyphid extends ModelBase { + + double bite = 0; + + @Override + public void setLivingAnimations(EntityLivingBase entity, float limbSwing, float limbSwingAmount, float interp) { + bite = entity.getSwingProgress(interp); + } + + @Override + public void render(Entity entity, float limbSwing, float limbSwingAmount, float rotationYaw, float rotationHeadYaw, float rotationPitch, float scale) { + GL11.glPushMatrix(); + + GL11.glRotatef(180, 1, 0, 0); + GL11.glTranslatef(0, -1.5F, 0); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + + EntityLivingBase living = (EntityLivingBase) entity; + byte armor = living.getDataWatcher().getWatchableObjectByte(17); + //MainRegistry.proxy.displayTooltip("" + limbSwingAmount, 999); + + double walkCycle = limbSwing; + + double speed = 100000D; + double chewing = 200000D; + double cy0 = Math.sin(walkCycle % (Math.PI * 2)); + double cy1 = Math.sin(walkCycle % (Math.PI * 2) - Math.PI * 0.5); + double cy2 = Math.sin(walkCycle % (Math.PI * 2) - Math.PI); + double cy3 = Math.sin(walkCycle % (Math.PI * 2) - Math.PI * 0.75); + + double bite = MathHelper.clamp_double(Math.sin(this.bite * Math.PI * 2 - Math.PI * 0.5), 0, 1) * 20; + double headTilt = Math.sin(this.bite * Math.PI) * 30; + + ResourceManager.glyphid.renderPart("Body"); + if((armor & (1 << 0)) > 0) ResourceManager.glyphid.renderPart("ArmorFront"); + if((armor & (1 << 1)) > 0) ResourceManager.glyphid.renderPart("ArmorLeft"); + if((armor & (1 << 2)) > 0) ResourceManager.glyphid.renderPart("ArmorRight"); + + /// LEFT ARM /// + GL11.glPushMatrix(); + GL11.glTranslated(0.25, 0.625, 0.0625); + GL11.glRotated(10, 0, 1, 0); + GL11.glRotated(35 + cy1 * 20, 1, 0, 0); + GL11.glTranslated(-0.25, -0.625, -0.0625); + ResourceManager.glyphid.renderPart("ArmLeftUpper"); + GL11.glTranslated(0.25, 0.625, 0.4375); + GL11.glRotated(-75 - cy1 * 20 + cy0 * 20, 1, 0, 0); + GL11.glTranslated(-0.25, -0.625, -0.4375); + ResourceManager.glyphid.renderPart("ArmLeftMid"); + GL11.glTranslated(0.25, 0.625, 0.9375); + GL11.glRotated(90 - cy0 * 45, 1, 0, 0); + GL11.glTranslated(-0.25, -0.625, -0.9375); + ResourceManager.glyphid.renderPart("ArmLeftLower"); + if((armor & (1 << 3)) > 0) ResourceManager.glyphid.renderPart("ArmLeftArmor"); + GL11.glPopMatrix(); + + /// RIGHT ARM /// + GL11.glPushMatrix(); + GL11.glTranslated(-0.25, 0.625, 0.0625); + GL11.glRotated(-10, 0, 1, 0); + GL11.glRotated(35 + cy2 * 20, 1, 0, 0); + GL11.glTranslated(0.25, -0.625, -0.0625); + ResourceManager.glyphid.renderPart("ArmRightUpper"); + GL11.glTranslated(-0.25, 0.625, 0.4375); + GL11.glRotated(-75 - cy2 * 20 + cy3 * 20, 1, 0, 0); + GL11.glTranslated(0.25, -0.625, -0.4375); + ResourceManager.glyphid.renderPart("ArmRightMid"); + GL11.glTranslated(-0.25, 0.625, 0.9375); + GL11.glRotated(90 - cy3 * 45, 1, 0, 0); + GL11.glTranslated(0.25, -0.625, -0.9375); + ResourceManager.glyphid.renderPart("ArmRightLower"); + if((armor & (1 << 4)) > 0) ResourceManager.glyphid.renderPart("ArmRightArmor"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + + GL11.glTranslated(0, 0.5, 0.25); + GL11.glRotated(headTilt, 0, 0, 1); + GL11.glTranslated(0, -0.5, -0.25); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.5, 0.25); + GL11.glRotated(-bite, 1, 0, 0); + GL11.glTranslated(0, -0.5, -0.25); + ResourceManager.glyphid.renderPart("JawTop"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.5, 0.25); + GL11.glRotated(bite, 0, 1, 0); + GL11.glRotated(bite, 1, 0, 0); + GL11.glTranslated(0, -0.5, -0.25); + ResourceManager.glyphid.renderPart("JawLeft"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.5, 0.25); + GL11.glRotated(-bite, 0, 1, 0); + GL11.glRotated(bite, 1, 0, 0); + GL11.glTranslated(0, -0.5, -0.25); + ResourceManager.glyphid.renderPart("JawRight"); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + double steppy = 15; + double bend = 60; + + for(int i = 0; i < 3; i++) { + + double c0 = cy0 * (i == 1 ? -1 : 1); + double c1 = cy1 * (i == 1 ? -1 : 1); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.25, 0); + GL11.glRotated(i * 30 - 15 + c0 * 7.5, 0, 1, 0); + GL11.glRotated(steppy + c1 * steppy, 0, 0, 1); + GL11.glTranslated(0, -0.25, 0); + ResourceManager.glyphid.renderPart("LegLeftUpper"); + GL11.glTranslated(0.5625, 0.25, 0); + GL11.glRotated(-bend - c1 * steppy, 0, 0, 1); + GL11.glTranslated(-0.5625, -0.25, 0); + ResourceManager.glyphid.renderPart("LegLeftLower"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.25, 0); + GL11.glRotated(i * 30 - 45 + c0 * 7.5, 0, 1, 0); + GL11.glRotated(-steppy + c1 * steppy, 0, 0, 1); + GL11.glTranslated(0, -0.25, 0); + ResourceManager.glyphid.renderPart("LegRightUpper"); + GL11.glTranslated(-0.5625, 0.25, 0); + GL11.glRotated(bend - c1 * steppy, 0, 0, 1); + GL11.glTranslated(0.5625, -0.25, 0); + ResourceManager.glyphid.renderPart("LegRightLower"); + GL11.glPopMatrix(); + } + + GL11.glPopMatrix(); + } + } +} From ec052ca2b8a3e3f392eb98b11a89bf1e56b8dbe8 Mon Sep 17 00:00:00 2001 From: Bob Date: Thu, 15 Jun 2023 22:56:41 +0200 Subject: [PATCH 127/432] enhanced glyphid crumblyness --- .../java/com/hbm/entity/mob/EntityGlyphid.java | 9 ++++----- .../assets/hbm/textures/entity/glyphid.png | Bin 887 -> 2472 bytes 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java index 416b316b7..3fba43067 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java @@ -46,7 +46,7 @@ public class EntityGlyphid extends EntityMob { protected void applyEntityAttributes() { super.applyEntityAttributes(); this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(32D); - this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.8D); + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(1D); } @Override @@ -57,7 +57,7 @@ public class EntityGlyphid extends EntityMob { if(armor != 0) { //if at least one bit of armor is present int chance = amount < 10 ? 5 : amount < 20 ? 3 : 2; //chances of armor being broken off - if(this.rand.nextInt(chance) == 0) { + if(this.rand.nextInt(chance) == 0 && amount > 1) { List indices = Arrays.asList(0, 1, 2, 3, 4); Collections.shuffle(indices); @@ -67,7 +67,8 @@ public class EntityGlyphid extends EntityMob { armor &= ~bit; //...remove it armor = (byte) (armor & 0b11111); this.dataWatcher.updateObject(17, armor); - return false; + amount = 0; + break; } } } @@ -83,8 +84,6 @@ public class EntityGlyphid extends EntityMob { } } - System.out.println("" + divisor); - amount /= divisor; } diff --git a/src/main/resources/assets/hbm/textures/entity/glyphid.png b/src/main/resources/assets/hbm/textures/entity/glyphid.png index dd5d4ec03f7b3891eaa798e0b0887a6143d5dd81..5294c0dc7f1d74e215b63c67abf9ac5a01cc3b99 100644 GIT binary patch delta 2447 zcmV;A32^rJ2B;H|Gk*zRNklq5;#5CZx431p{vJu6b{^SLO~exCCmyr3pq3OcKa9D%lMrksni_Qqu)onvkSX+kYU~zeXN60ahe!p!B1YC+$mF z*&lRJ-^p5CRG1S(&*?+f)YaK=axeV8Vlb(2GpvIRHp3d$Z*K;n3MJ1H#?ZC8NFi4} zt{t)lO-SQTEQdS*fa3V`E9adgTO`?-S@+ZS+&Jv`^Q#uuJJ{JCJC0BqC5?%}^6&uw z79<-YtA9le2Rqy3D0?(*eyo3*Sd5Z~Aq%1_c{wQP6Qq!S96hUZ6f1a)&yV%fYXEQ= zgB3JWLRAbL9Fgo)aBr17#DX;zqG1U=PtCWiKaGT7yaxcD9qk&HEqkS_g4m z*&jr`X3DE_Y0+ZLm?T^JV&~GeyjR_BFW}AaBY(en>Rox5lA0gu550TnMWq-mWfS|E+>o(0wEOvIaT zTz@4p#-_U;7vX+TJp5Nx?yH-$g_>Dp#m*&j@819Qv%KO553 zmPwVA7X12Rqx)9M`aZ>keRk{Qk*i@FX!$Zicmc@|bh; zY76hzpv_0{I2HF11CsRh`w9nw^gAw_I8bu78_v z6Y_Y!hJs3*9K|=m*f%6$yOz=7UI1^X<%$hth}Fcmx

    wSMR69!CtTAsa`@9OnYj!L& z>ewG6k3MuNfhqD3%U2iS>-RJD9)Ek2^1NP!&?GPwAD)*4#z6N&rHPXykw;ZnLvQ2- zp8>$+4Hqx#Xr6EH_2X7jX&Q6w^#|TtKZ;pNU`&Ov5A7Gme@IlhvR@aG@ysDT@BNebw9dGzfVf@TuaN}wA@_9K3`LsXTMC#iA_9)S`WF|V65UVG;| zt%RZky7e-?&5>e1N?ywT0f1kP(Xs)}2Ih?4x_iwV%T+`BE)Up6s`D z9>3;56}BMtonlZ-2-PNDN`JQ^r4n5w6p6=Af^jTf_pje~HV?^o@O;m+gHqsJE-jiq z@^qO9-57vxSNQv3%tUaUcf({(Gpym`?kANzNkzD1rX-LTO!@W4-A~^7=xHsL77JV) zs1ZUpCYAPsu`H>lL1;<}rGPahfm-(DuK)fk`kT|D7t1VE@0O8?EPwy=Z$KQ)F9E<@ zLb80O;fG;$Amy>Fq6>N!Z{;@BAs3b;P?JRM<}O{iQP6T0bzYn>T7Cn#011qRBNrio z=+UWXr|10Z`=3Grd7E=07bJnv-?(52OnM^Ay90#e*|zRpYpoIp5PIPhs03V-Arepfw9mi`n@nqxT!>8dn`bnrvz5xBa+Ypw3fE4A4wod zAPobg3TOW`zj(R~|(1|12aL?Jn`moIcI9yJeLE-gCeqMdg^1tXHEZIjv%)2c7P zScQ3rA{7@8>wh2K7_Qcut)y#HJE%Dyyngv;qiw#OsghU;=VL-zaxS(>bGyQ+FeL`S zS4oXLg!ZWffFIkf4K9n$N1Jc03ST6g3Zo68QitbjgUfD=CVBYB$&+3cTFFZRRg+%x zemai#&jOwb13;j<0KPOzLlO&Cu1-vg*zkWXpq>X~AYq=EW!BVcvAB^@TfYhGKjU~0* z0w^j7)p=gXQeg~Ds7>TVa5d!B8|jG9+BH<{h(OQF+vfq*3j>6xvnq(0Kg zMJj04+JEO_1Eqi$16u%@yjc7vk$2I^&6}+VoCvpb2yWD+kV8`cd7%={D`gCApGEdT zQQ$id{^6mNjYx>aascyF;hzP`8;X61!^u1EtU;xtpZD%PDHLkV1fcWn*IO) delta 849 zcmV-X1Frn26ZZy?Gk*gvNkldalRKx6iHLR4|xtR0ukf}=A-xe2q7QBdGs?x ztbPN(tU$cXnD(`8Iof(tzGuwu7h^JqkPk5G$KY#|BI24M3xBv48p~66(X0kYx5Q7R zRxvCf6&8@l;$xs%x&cJU0@hyk>@a5S6tTD{$!q-yzmOZ4Sb6mvtv_pc3?#Dn7&sSB zTzAo#2wNbL#Vt_v6B6gPZTa{Z-H=r8h#3n2wm>p0AQ2XjNRi-mNM1`Hqm_>u^KyeN zkVt-BcxA8!5`SRw|Q|~ zRmXd6{I^m(0l$6j?hn7*?+VARTj$$fz3f@Vx|1^7T=@H;zS;Qa@2D24j}WDVac3y~ zX8@3Q(^z_TiwR>XB}^Sun^M`p+kHL=2)VJxPkIXqQ9)A{6N;~hQL0nzyJDfFPHB8z4JNky}D5S?1hPB--U^RmqlY@Y8hn;h|)Y--C1w4ooZ{4N=%g2#dHwL<%c#dvfxc{b)4a9a52Jg-?u>^i= zK-^0|`x}54ZR^rb{*kAxs5lmDn_@3*>=`>LF@KiqyKs!UYnw_#R63mJjE$;fuA&Ps zxleKx0xk&)NQ4C>GPx5OIvwAnU)n3q4O<`)v5Q3VJ9V126@YjO6nhC|_TJk#vHzRF zxUz{UGlwmZ$gF{MV|gc5tpVKk6KgBY+!EOWiLih~SU@5yAQ2Xj2n$GL)-YyYFFWl+ z>q>TySw|~_umuuf0g14HM2dZUIs9bRU<-s74l Date: Fri, 16 Jun 2023 13:53:42 +0200 Subject: [PATCH 128/432] brenda is coming --- .../java/com/hbm/entity/EntityMappings.java | 3 + .../com/hbm/entity/mob/EntityGlyphid.java | 89 +++++++++++++----- .../hbm/entity/mob/EntityGlyphidBehemoth.java | 60 ++++++++++++ .../hbm/entity/mob/EntityGlyphidBrawler.java | 60 ++++++++++++ .../hbm/entity/mob/EntityGlyphidBrenda.java | 60 ++++++++++++ src/main/java/com/hbm/main/ClientProxy.java | 3 + .../java/com/hbm/main/ResourceManager.java | 3 + .../hbm/render/entity/mob/RenderGlyphid.java | 9 +- .../assets/hbm/textures/armor/grenade_nan.png | Bin 203 -> 0 bytes .../hbm/textures/entity/glyphid_behemoth.png | Bin 0 -> 2508 bytes .../hbm/textures/entity/glyphid_brawler.png | Bin 0 -> 2474 bytes .../hbm/textures/entity/glyphid_brenda.png | Bin 0 -> 2270 bytes 12 files changed, 259 insertions(+), 28 deletions(-) create mode 100644 src/main/java/com/hbm/entity/mob/EntityGlyphidBehemoth.java create mode 100644 src/main/java/com/hbm/entity/mob/EntityGlyphidBrawler.java create mode 100644 src/main/java/com/hbm/entity/mob/EntityGlyphidBrenda.java delete mode 100644 src/main/resources/assets/hbm/textures/armor/grenade_nan.png create mode 100644 src/main/resources/assets/hbm/textures/entity/glyphid_behemoth.png create mode 100644 src/main/resources/assets/hbm/textures/entity/glyphid_brawler.png create mode 100644 src/main/resources/assets/hbm/textures/entity/glyphid_brenda.png diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index 04499718a..1f39d3317 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -239,6 +239,9 @@ public class EntityMappings { addMob(EntitySiegeUFO.class, "entity_meme_ufo", 0x303030, 0x800000); addMob(EntitySiegeCraft.class, "entity_meme_craft", 0x303030, 0x808000); addMob(EntityGlyphid.class, "entity_glyphid", 0x724A21, 0xD2BB72); + addMob(EntityGlyphidBrawler.class, "entity_glyphid_brawler", 0x273038, 0xD2BB72); + addMob(EntityGlyphidBehemoth.class, "entity_glyphid_behemoth", 0x267F00, 0xD2BB72); + addMob(EntityGlyphidBrenda.class, "entity_glyphid_brenda", 0x4FC0C0, 0xA0A0A0); addSpawn(EntityCreeperPhosgene.class, 5, 1, 1, EnumCreatureType.monster, BiomeGenBase.getBiomeGenArray()); addSpawn(EntityCreeperVolatile.class, 10, 1, 1, EnumCreatureType.monster, BiomeGenBase.getBiomeGenArray()); diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java index 3fba43067..829b4c97a 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java @@ -4,6 +4,8 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; +import com.hbm.main.ResourceManager; + import net.minecraft.entity.Entity; import net.minecraft.entity.EnumCreatureAttribute; import net.minecraft.entity.SharedMonsterAttributes; @@ -18,6 +20,7 @@ import net.minecraft.entity.ai.EntityAIWatchClosest; import net.minecraft.entity.monster.EntityMob; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.DamageSource; +import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; public class EntityGlyphid extends EntityMob { @@ -32,7 +35,15 @@ public class EntityGlyphid extends EntityMob { this.tasks.addTask(8, new EntityAILookIdle(this)); this.targetTasks.addTask(1, new EntityAIHurtByTarget(this, true)); this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityPlayer.class, 0, true)); - this.setSize(2F, 1F); + this.setSize(1.75F, 1F); + } + + public ResourceLocation getSkin() { + return ResourceManager.glyphid_tex; + } + + public double getScale() { + return 1.0D; } @Override @@ -45,8 +56,9 @@ public class EntityGlyphid extends EntityMob { @Override protected void applyEntityAttributes() { super.applyEntityAttributes(); - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(32D); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(30D); this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(1D); + this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(5D); } @Override @@ -56,39 +68,64 @@ public class EntityGlyphid extends EntityMob { byte armor = this.dataWatcher.getWatchableObjectByte(17); if(armor != 0) { //if at least one bit of armor is present - int chance = amount < 10 ? 5 : amount < 20 ? 3 : 2; //chances of armor being broken off + + if(amount < getDamageThreshold()) return false; + + int chance = getArmorBreakChance(amount); //chances of armor being broken off if(this.rand.nextInt(chance) == 0 && amount > 1) { - List indices = Arrays.asList(0, 1, 2, 3, 4); - Collections.shuffle(indices); - - for(Integer i : indices) { - byte bit = (byte) (1 << i); - if((armor & bit) > 0) { //if this bit is present... - armor &= ~bit; //...remove it - armor = (byte) (armor & 0b11111); - this.dataWatcher.updateObject(17, armor); - amount = 0; - break; - } - } + breakOffArmor(); + amount = 0; } - amount -= 0.5; + amount -= getDamageThreshold(); + if(amount < 0) return false; } - int divisor = 1; - - for(int i = 0; i < 5; i++) { - if((armor & (1 << i)) > 0) { - divisor++; - } - } - - amount /= divisor; + amount = this.calculateDamage(amount); } return super.attackEntityFrom(source, amount); } + + public int getArmorBreakChance(float amount) { + return amount < 10 ? 5 : amount < 20 ? 3 : 2; + } + + public float calculateDamage(float amount) { + + byte armor = this.dataWatcher.getWatchableObjectByte(17); + int divisor = 1; + + for(int i = 0; i < 5; i++) { + if((armor & (1 << i)) > 0) { + divisor++; + } + } + + amount /= divisor; + + return amount; + } + + public float getDamageThreshold() { + return 0.5F; + } + + public void breakOffArmor() { + byte armor = this.dataWatcher.getWatchableObjectByte(17); + List indices = Arrays.asList(0, 1, 2, 3, 4); + Collections.shuffle(indices); + + for(Integer i : indices) { + byte bit = (byte) (1 << i); + if((armor & bit) > 0) { + armor &= ~bit; + armor = (byte) (armor & 0b11111); + this.dataWatcher.updateObject(17, armor); + break; + } + } + } @Override public boolean attackEntityAsMob(Entity victum) { diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidBehemoth.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidBehemoth.java new file mode 100644 index 000000000..f4d058ab2 --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidBehemoth.java @@ -0,0 +1,60 @@ +package com.hbm.entity.mob; + +import com.hbm.main.ResourceManager; + +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; + +public class EntityGlyphidBehemoth extends EntityGlyphid { + + public EntityGlyphidBehemoth(World world) { + super(world); + this.setSize(2.25F, 1.25F); + } + + @Override + public ResourceLocation getSkin() { + return ResourceManager.glyphid_behemoth_tex; + } + + @Override + public double getScale() { + return 1.5D; + } + + @Override + protected void applyEntityAttributes() { + super.applyEntityAttributes(); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(100D); + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.8D); + this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(25D); + } + + @Override + public int getArmorBreakChance(float amount) { + return amount < 15 ? 10 : amount < 25 ? 5 : amount > 75 ? 1 : 3; + } + + @Override + public float calculateDamage(float amount) { + + byte armor = this.dataWatcher.getWatchableObjectByte(17); + int divisor = 1; + + for(int i = 0; i < 5; i++) { + if((armor & (1 << i)) > 0) { + divisor += 3; + } + } + + amount /= divisor; + + return amount; + } + + @Override + public float getDamageThreshold() { + return 2.5F; + } +} diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidBrawler.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidBrawler.java new file mode 100644 index 000000000..60f18e6ed --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidBrawler.java @@ -0,0 +1,60 @@ +package com.hbm.entity.mob; + +import com.hbm.main.ResourceManager; + +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; + +public class EntityGlyphidBrawler extends EntityGlyphid { + + public EntityGlyphidBrawler(World world) { + super(world); + this.setSize(2F, 1.125F); + } + + @Override + public ResourceLocation getSkin() { + return ResourceManager.glyphid_brawler_tex; + } + + @Override + public double getScale() { + return 1.25D; + } + + @Override + protected void applyEntityAttributes() { + super.applyEntityAttributes(); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(50D); + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(1D); + this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(10D); + } + + @Override + public int getArmorBreakChance(float amount) { + return amount < 10 ? 10 : amount < 20 ? 5 : amount > 50 ? 1 : 3; + } + + @Override + public float calculateDamage(float amount) { + + byte armor = this.dataWatcher.getWatchableObjectByte(17); + int divisor = 1; + + for(int i = 0; i < 5; i++) { + if((armor & (1 << i)) > 0) { + divisor += 2; + } + } + + amount /= divisor; + + return amount; + } + + @Override + public float getDamageThreshold() { + return 1.0F; + } +} diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidBrenda.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidBrenda.java new file mode 100644 index 000000000..660d71afd --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidBrenda.java @@ -0,0 +1,60 @@ +package com.hbm.entity.mob; + +import com.hbm.main.ResourceManager; + +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; + +public class EntityGlyphidBrenda extends EntityGlyphid { + + public EntityGlyphidBrenda(World world) { + super(world); + this.setSize(2.5F, 2F); + } + + @Override + public ResourceLocation getSkin() { + return ResourceManager.glyphid_brenda_tex; + } + + @Override + public double getScale() { + return 2D; + } + + @Override + protected void applyEntityAttributes() { + super.applyEntityAttributes(); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(250D); + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.8D); + this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(50D); + } + + @Override + public int getArmorBreakChance(float amount) { + return amount < 25 ? 100 : amount > 500 ? 1 : 10; + } + + @Override + public float calculateDamage(float amount) { + + byte armor = this.dataWatcher.getWatchableObjectByte(17); + int divisor = 1; + + for(int i = 0; i < 5; i++) { + if((armor & (1 << i)) > 0) { + divisor += 5; + } + } + + amount /= divisor; + + return amount; + } + + @Override + public float getDamageThreshold() { + return 10F; + } +} diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index ab05362d0..a9f2b5ca8 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -722,6 +722,9 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntitySiegeTunneler.class, new RenderSiegeTunneler()); RenderingRegistry.registerEntityRenderingHandler(EntityGhost.class, new RenderGhost()); RenderingRegistry.registerEntityRenderingHandler(EntityGlyphid.class, new RenderGlyphid()); + RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidBrawler.class, new RenderGlyphid()); + RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidBehemoth.class, new RenderGlyphid()); + RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidBrenda.class, new RenderGlyphid()); //"particles" RenderingRegistry.registerEntityRenderingHandler(EntitySmokeFX.class, new MultiCloudRenderer(new Item[] { ModItems.smoke1, ModItems.smoke2, ModItems.smoke3, ModItems.smoke4, ModItems.smoke5, ModItems.smoke6, ModItems.smoke7, ModItems.smoke8 })); RenderingRegistry.registerEntityRenderingHandler(EntityBSmokeFX.class, new MultiCloudRenderer(new Item[] { ModItems.b_smoke1, ModItems.b_smoke2, ModItems.b_smoke3, ModItems.b_smoke4, ModItems.b_smoke5, ModItems.b_smoke6, ModItems.b_smoke7, ModItems.b_smoke8 })); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index f889c98d1..1db20b3a6 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -660,6 +660,9 @@ public class ResourceManager { public static final ResourceLocation spider_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/blockspider.png"); public static final ResourceLocation ufo_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/ufo.png"); public static final ResourceLocation glyphid_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid.png"); + public static final ResourceLocation glyphid_brawler_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_brawler.png"); + public static final ResourceLocation glyphid_behemoth_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_behemoth.png"); + public static final ResourceLocation glyphid_brenda_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_brenda.png"); //ZIRNOX public static final ResourceLocation zirnox_tex = new ResourceLocation(RefStrings.MODID, "textures/models/zirnox.png"); diff --git a/src/main/java/com/hbm/render/entity/mob/RenderGlyphid.java b/src/main/java/com/hbm/render/entity/mob/RenderGlyphid.java index 30915068e..c64649c77 100644 --- a/src/main/java/com/hbm/render/entity/mob/RenderGlyphid.java +++ b/src/main/java/com/hbm/render/entity/mob/RenderGlyphid.java @@ -2,6 +2,7 @@ package com.hbm.render.entity.mob; import org.lwjgl.opengl.GL11; +import com.hbm.entity.mob.EntityGlyphid; import com.hbm.main.ResourceManager; import net.minecraft.client.model.ModelBase; @@ -19,8 +20,9 @@ public class RenderGlyphid extends RenderLiving { } @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return ResourceManager.glyphid_tex; + protected ResourceLocation getEntityTexture(Entity entity) { + EntityGlyphid glyphid = (EntityGlyphid) entity; + return glyphid.getSkin(); } public static class ModelGlyphid extends ModelBase { @@ -41,6 +43,9 @@ public class RenderGlyphid extends RenderLiving { GL11.glEnable(GL11.GL_LIGHTING); GL11.glDisable(GL11.GL_CULL_FACE); + double s = ((EntityGlyphid) entity).getScale(); + GL11.glScaled(s, s, s); + EntityLivingBase living = (EntityLivingBase) entity; byte armor = living.getDataWatcher().getWatchableObjectByte(17); //MainRegistry.proxy.displayTooltip("" + limbSwingAmount, 999); diff --git a/src/main/resources/assets/hbm/textures/armor/grenade_nan.png b/src/main/resources/assets/hbm/textures/armor/grenade_nan.png deleted file mode 100644 index b07dad82cb5fca8af25e193e3255f2af16ca356f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 203 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf`gu!Qs&#>`VeoYIb6Mw<&;$S)yGOnN diff --git a/src/main/resources/assets/hbm/textures/entity/glyphid_behemoth.png b/src/main/resources/assets/hbm/textures/entity/glyphid_behemoth.png new file mode 100644 index 0000000000000000000000000000000000000000..b59f6e2510b3fb89d1d635fa8acaa6edab768786 GIT binary patch literal 2508 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/entity/glyphid_brenda.png b/src/main/resources/assets/hbm/textures/entity/glyphid_brenda.png new file mode 100644 index 0000000000000000000000000000000000000000..b831b1a1fcd39d9308aa317d05669a96c812f98b GIT binary patch literal 2270 zcmV<42qE{0P)@-)o^U>T2C4@khDbuAz7K9o;)p19<3AFcjrp4Uetc^_<2 z1&}=a*F1eNcfeAF*S!YDzO0=c7>$#DmAJA$g&2dpMk zGNw^sDH2OmnDl|xLvf~gF#DJoW>!xXDp$d|a6UJa$ z`w+;AXY24Rh|7ASNTCWL>{cgBL6(nMJ0I_t#$h3ZQQPbL-ds5LAtz_@MMQ2{KEyMN zzV9dh?0jSOWBGi)1V~=JT{sj=l$DDLXAogMoXsM(U@$peK3%xOB+4L(lfVhdNz|7XzI-Co|{iwINyU;UtxtK zsYzCnE-!wX=^Siuu=tPnwKJv4Lj|PjEy?%%bgaK;=O?r4?-xII(Wz&ANm{9u(J0g+{sgG4im#sK69?iqrGka(VI78{#hoV&|+d z#Z#cwah`zdP+$z$A5;^QWRZs^>|xV&UDb7+h+Mtl;uXzX`SdK2fiYKI*ORw?h_w_L zGhxl!`LAvKr$n8dpUCHT-$X=qO4B@5XDl9^1k&7zl)2`ZvYNiOhyQCSkpHbZim$I< zR1f-o6p@MfvaeG${`LEB(O`N)pvHN1U7N278SKC<72tPybv=LYi#v&>3dC~gw;5=v zOrB-RF-!=w$cU+|q`c>=mMYXD5C3DZVm~A=<^M#8K;3oZcA}*G$GZdPDFw2H@b%x$GrvZAl8;Tw@q4RV4(hs=f3`s? z0{539)8nMrz;d3;R>Ufg?JD-cCYKEDP-%Hffu0h*!L@B$;c*roeKBEp{3db)1;$i% z3qZ_)D|r`z zDE+Q_O=NwUfE#WmlaLIzgNV5O5??>Kn zi`bj+*b1sEp<=0H_so?|l}$5d=0PUpW+6*~9(i0Q)y_>ukR5?VsP4afJL2jWJ2~-8 z81uOfE;1S?K7R9I^u7krbSfUqQCF%A-}_^0!X%ib(((g z?B1@7r#$^JdDg4KT=G&tbJc6k$8wy%1|}vfA~Vw!nX1tu&nl}yHkz>ark^J*m%IS! z)K0=Gy9PEQ^LL{Rk0_BT`M7{EiChQ&73wPVKLsmD4q}sJm0bgq!-UI=pV9ZCXs&1H zC$m-7+UxSfcwYio_fvag%Pe1sR6*wEd?*x|u!bh+6PXA$LnPSyS9te51o~I#O3U{T z0e2M^nfpFog}ra;tc4`?kxnT}0_i2EEh)_6Kn0%R#lE4-CGXh4;CfBW77_My3U=yN z$YGiPp%9F8aLVBQeRdl$RQk??KRmQ{BNk$@oXFu!_@*H1ILpgp@~(5&5IaN_@lUDI zFJirY{bJUUzKFkz@J?xtfqjGPCCDPsBdc`lbsg9zxL$(d16At~;ii!1LE}Piue>Cz z$yOi+xi=*=DS;JS2fJtyvfm3UylvQj0c^6bM5?7`oKzqxF7{QzF-Sy{tY{A$_Nc#4 sAF@o?+p~Jt*MVT%%Q>YE^uHAU0y`?k^ Date: Sat, 17 Jun 2023 18:29:57 +0200 Subject: [PATCH 129/432] glyphid bombardier, train collisions --- .../java/com/hbm/entity/EntityMappings.java | 3 + .../com/hbm/entity/mob/EntityGlyphid.java | 4 +- .../hbm/entity/mob/EntityGlyphidBehemoth.java | 2 +- .../hbm/entity/mob/EntityGlyphidBlaster.java | 80 ++++++++++++++ .../entity/mob/EntityGlyphidBombardier.java | 101 ++++++++++++++++++ .../hbm/entity/mob/EntityGlyphidBrawler.java | 2 +- .../hbm/entity/mob/EntityGlyphidBrenda.java | 23 +++- .../hbm/entity/projectile/EntityAcidBomb.java | 60 +++++++++++ .../hbm/entity/train/EntityRailCarBase.java | 68 ++++++++++-- src/main/java/com/hbm/main/ClientProxy.java | 4 + .../java/com/hbm/main/ResourceManager.java | 2 + src/main/resources/assets/hbm/lang/de_DE.lang | 4 + src/main/resources/assets/hbm/lang/en_US.lang | 4 + .../hbm/textures/entity/glyphid_blaster.png | Bin 0 -> 2428 bytes .../textures/entity/glyphid_bombardier.png | Bin 0 -> 2507 bytes 15 files changed, 346 insertions(+), 11 deletions(-) create mode 100644 src/main/java/com/hbm/entity/mob/EntityGlyphidBlaster.java create mode 100644 src/main/java/com/hbm/entity/mob/EntityGlyphidBombardier.java create mode 100644 src/main/java/com/hbm/entity/projectile/EntityAcidBomb.java create mode 100644 src/main/resources/assets/hbm/textures/entity/glyphid_blaster.png create mode 100644 src/main/resources/assets/hbm/textures/entity/glyphid_bombardier.png diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index 1f39d3317..c50d13566 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -211,6 +211,7 @@ public class EntityMappings { addEntity(EntitySawblade.class, "entity_stray_saw", 1000); addEntity(EntityChemical.class, "entity_chemthrower_splash", 1000); addEntity(EntityMist.class, "entity_mist", 250, false); + addEntity(EntityAcidBomb.class, "entity_acid_bomb", 1000); addEntity(EntityItemWaste.class, "entity_item_waste", 100); addEntity(EntityItemBuoyant.class, "entity_item_buoyant", 100); @@ -242,6 +243,8 @@ public class EntityMappings { addMob(EntityGlyphidBrawler.class, "entity_glyphid_brawler", 0x273038, 0xD2BB72); addMob(EntityGlyphidBehemoth.class, "entity_glyphid_behemoth", 0x267F00, 0xD2BB72); addMob(EntityGlyphidBrenda.class, "entity_glyphid_brenda", 0x4FC0C0, 0xA0A0A0); + addMob(EntityGlyphidBombardier.class, "entity_glyphid_bombardier", 0xDDD919, 0xDBB79D); + addMob(EntityGlyphidBlaster.class, "entity_glyphid_blaster", 0xD83737, 0xDBB79D); addSpawn(EntityCreeperPhosgene.class, 5, 1, 1, EnumCreatureType.monster, BiomeGenBase.getBiomeGenArray()); addSpawn(EntityCreeperVolatile.class, 10, 1, 1, EnumCreatureType.monster, BiomeGenBase.getBiomeGenArray()); diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java index 829b4c97a..92fd49785 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java @@ -78,7 +78,7 @@ public class EntityGlyphid extends EntityMob { } amount -= getDamageThreshold(); - if(amount < 0) return false; + if(amount < 0) return true; } amount = this.calculateDamage(amount); @@ -141,7 +141,7 @@ public class EntityGlyphid extends EntityMob { if(!this.worldObj.isRemote) { this.setBesideClimbableBlock(this.isCollidedHorizontally); - if(worldObj.getTotalWorldTime() % 100 == 0) { + if(worldObj.getTotalWorldTime() % 200 == 0) { this.swingItem(); } } diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidBehemoth.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidBehemoth.java index f4d058ab2..bf3215059 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidBehemoth.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidBehemoth.java @@ -33,7 +33,7 @@ public class EntityGlyphidBehemoth extends EntityGlyphid { @Override public int getArmorBreakChance(float amount) { - return amount < 15 ? 10 : amount < 25 ? 5 : amount > 75 ? 1 : 3; + return amount < 20 ? 10 : amount < 100 ? 5 : amount > 200 ? 1 : 3; } @Override diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidBlaster.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidBlaster.java new file mode 100644 index 000000000..5e922ab49 --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidBlaster.java @@ -0,0 +1,80 @@ +package com.hbm.entity.mob; + +import com.hbm.main.ResourceManager; + +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; + +public class EntityGlyphidBlaster extends EntityGlyphidBombardier { + + public EntityGlyphidBlaster(World world) { + super(world); + this.setSize(2F, 1.125F); + } + + @Override + public ResourceLocation getSkin() { + return ResourceManager.glyphid_blaster_tex; + } + + @Override + public double getScale() { + return 1.25D; + } + + @Override + protected void applyEntityAttributes() { + super.applyEntityAttributes(); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(50D); + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(1D); + this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(10D); + } + + @Override + public int getArmorBreakChance(float amount) { + return amount < 10 ? 10 : amount < 25 ? 5 : amount > 100 ? 1 : 3; + } + + @Override + public float calculateDamage(float amount) { + + byte armor = this.dataWatcher.getWatchableObjectByte(17); + int divisor = 1; + + for(int i = 0; i < 5; i++) { + if((armor & (1 << i)) > 0) { + divisor += 2; + } + } + + amount /= divisor; + + return amount; + } + + @Override + public float getDamageThreshold() { + return 1.0F; + } + + @Override + public float getBombDamage() { + return 10F; + } + + @Override + public int getBombCount() { + return 20; + } + + @Override + public float getSpreadMult() { + return 0.75F; + } + + @Override + public double getV0() { + return 1.25D; + } +} diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidBombardier.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidBombardier.java new file mode 100644 index 000000000..61750f0ee --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidBombardier.java @@ -0,0 +1,101 @@ +package com.hbm.entity.mob; + +import com.hbm.entity.projectile.EntityAcidBomb; +import com.hbm.main.ResourceManager; + +import net.minecraft.entity.Entity; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public class EntityGlyphidBombardier extends EntityGlyphid { + + public EntityGlyphidBombardier(World world) { + super(world); + } + + public ResourceLocation getSkin() { + return ResourceManager.glyphid_bombardier_tex; + } + + protected Entity lastTarget; + protected double lastX; + protected double lastY; + protected double lastZ; + + @Override + public void onUpdate() { + super.onUpdate(); + + if(!this.worldObj.isRemote) { + + Entity e = this.getEntityToAttack(); + + if(this.ticksExisted % 20 == 0 && e != null) { + this.lastTarget = e; + this.lastX = e.posX; + this.lastY = e.posY; + this.lastZ = e.posZ; + } + + if(this.ticksExisted % 20 == 1 && e != null) { + + boolean topAttack = rand.nextBoolean(); + + double velX = e.posX - lastX; + double velY = e.posY - lastY; + double velZ = e.posZ - lastZ; + + if(this.lastTarget != e || Vec3.createVectorHelper(velX, velY, velZ).lengthVector() > 30) { + velX = velY = velZ = 0; + } + + int prediction = topAttack ? 60 : 20; + Vec3 delta = Vec3.createVectorHelper(e.posX - posX + velX * prediction, (e.posY + e.height / 2) - (posY + 1) + velY * prediction, e.posZ - posZ + velZ * prediction); + double len = delta.lengthVector(); + if(len < 3) return; + double targetYaw = -Math.atan2(delta.xCoord, delta.zCoord); + + double x = Math.sqrt(delta.xCoord * delta.xCoord + delta.zCoord * delta.zCoord); + double y = delta.yCoord; + double v0 = getV0(); + double v02 = v0 * v0; + double g = 0.04D; + double upperLower = topAttack ? 1 : -1; + double targetPitch = Math.atan((v02 + Math.sqrt(v02*v02 - g*(g*x*x + 2*y*v02)) * upperLower) / (g*x)); + + if(!Double.isNaN(targetPitch)) { + + Vec3 fireVec = Vec3.createVectorHelper(v0, 0, 0); + fireVec.rotateAroundZ((float) -targetPitch); + fireVec.rotateAroundY((float) -(targetYaw + Math.PI * 0.5)); + + for(int i = 0; i < getBombCount(); i++) { + EntityAcidBomb bomb = new EntityAcidBomb(worldObj, posX, posY + 1, posZ); + bomb.setThrowableHeading(fireVec.xCoord, fireVec.yCoord, fireVec.zCoord, (float) v0, i * getSpreadMult()); + bomb.damage = getBombDamage(); + worldObj.spawnEntityInWorld(bomb); + } + + this.swingItem(); + } + } + } + } + + public float getBombDamage() { + return 1.5F; + } + + public int getBombCount() { + return 10; + } + + public float getSpreadMult() { + return 1F; + } + + public double getV0() { + return 1D; + } +} diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidBrawler.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidBrawler.java index 60f18e6ed..749230a42 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidBrawler.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidBrawler.java @@ -33,7 +33,7 @@ public class EntityGlyphidBrawler extends EntityGlyphid { @Override public int getArmorBreakChance(float amount) { - return amount < 10 ? 10 : amount < 20 ? 5 : amount > 50 ? 1 : 3; + return amount < 10 ? 10 : amount < 25 ? 5 : amount > 100 ? 1 : 3; } @Override diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidBrenda.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidBrenda.java index 660d71afd..309ac38fb 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidBrenda.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidBrenda.java @@ -3,6 +3,8 @@ package com.hbm.entity.mob; import com.hbm.main.ResourceManager; import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; @@ -11,6 +13,7 @@ public class EntityGlyphidBrenda extends EntityGlyphid { public EntityGlyphidBrenda(World world) { super(world); this.setSize(2.5F, 2F); + this.isImmuneToFire = true; } @Override @@ -33,7 +36,7 @@ public class EntityGlyphidBrenda extends EntityGlyphid { @Override public int getArmorBreakChance(float amount) { - return amount < 25 ? 100 : amount > 500 ? 1 : 10; + return amount < 25 ? 100 : amount > 1000 ? 1 : 10; } @Override @@ -57,4 +60,22 @@ public class EntityGlyphidBrenda extends EntityGlyphid { public float getDamageThreshold() { return 10F; } + + @Override + public void setDead() { + if(!this.worldObj.isRemote && this.getHealth() <= 0.0F) { + for(int i = 0; i < 12; ++i) { + EntityGlyphid glyphid = new EntityGlyphid(worldObj); + glyphid.setLocationAndAngles(this.posX, this.posY + 0.5D, this.posZ, rand.nextFloat() * 360.0F, 0.0F); + glyphid.addPotionEffect(new PotionEffect(Potion.resistance.id, 5 * 60 * 20, 2)); + glyphid.addPotionEffect(new PotionEffect(Potion.fireResistance.id, 5 * 60 * 20, 0)); + glyphid.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 5 * 60 * 20, 4)); + glyphid.addPotionEffect(new PotionEffect(Potion.field_76444_x.id, 5 * 60 * 20, 19)); + this.worldObj.spawnEntityInWorld(glyphid); + glyphid.moveEntity(rand.nextGaussian(), 0, rand.nextGaussian()); + } + } + + super.setDead(); + } } diff --git a/src/main/java/com/hbm/entity/projectile/EntityAcidBomb.java b/src/main/java/com/hbm/entity/projectile/EntityAcidBomb.java new file mode 100644 index 000000000..8a688df2d --- /dev/null +++ b/src/main/java/com/hbm/entity/projectile/EntityAcidBomb.java @@ -0,0 +1,60 @@ +package com.hbm.entity.projectile; + +import com.hbm.entity.mob.EntityGlyphid; +import com.hbm.lib.ModDamageSource; + +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.world.World; + +public class EntityAcidBomb extends EntityThrowableInterp { + + public float damage = 1.5F; + + public EntityAcidBomb(World world) { + super(world); + } + + public EntityAcidBomb(World world, double x, double y, double z) { + super(world, x, y, z); + } + + @Override + protected void onImpact(MovingObjectPosition mop) { + + if(worldObj.isRemote) return; + + if(mop.typeOfHit == mop.typeOfHit.ENTITY) { + + if(!(mop.entityHit instanceof EntityGlyphid)) { + mop.entityHit.attackEntityFrom(ModDamageSource.acid, damage); + this.setDead(); + } + } + + if(mop.typeOfHit == mop.typeOfHit.BLOCK) + this.setDead(); + } + + @Override + public double getGravityVelocity() { + return 0.04D; + } + + @Override + protected float getAirDrag() { + return 1.0F; + } + + @Override + public void writeEntityToNBT(NBTTagCompound nbt) { + super.writeEntityToNBT(nbt); + nbt.setFloat("damage", damage); + } + + @Override + public void readEntityFromNBT(NBTTagCompound nbt) { + super.readEntityFromNBT(nbt); + this.damage = nbt.getFloat("damage"); + } +} diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java index afd7b25ab..37f77f79f 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java @@ -132,7 +132,7 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { data.setString("type", "debug"); data.setInteger("color", 0x0000ff); data.setFloat("scale", 1.5F); - data.setString("text", id); + data.setString("text", id + " (#" + train.ltuIndex + ")"); PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, train.posX, train.posY + 1, train.posZ), new TargetPoint(this.dimension, train.posX, train.posY + 1, train.posZ, 50)); } } @@ -180,9 +180,6 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { } } else { - - PacketDispatcher.wrapper.sendToAllAround(new PlayerInformPacket(ChatBuilder.start("" + this.rotationPitch).color(EnumChatFormatting.RED).flush(), 1), - new TargetPoint(dimension, posX, posY + 1, posZ, 50)); if(this.coupledFront != null && this.coupledFront.isDead) { this.coupledFront = null; @@ -319,7 +316,7 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { for(LogicalTrainUnit ltu : ltus) { - double speed = ltu.getTotalSpeed(); + double speed = ltu.getTotalSpeed() + ltu.pushForce; if(Math.abs(speed) < 0.001) speed = 0; @@ -346,6 +343,10 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { } else { ltu.setRenderPos(train, frontPos, backPos); } + + //ltu.pushForce *= 0.95; + ltu.pushForce = 0; + ltu.collideTrain(speed); continue; } @@ -355,6 +356,12 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { } else { ltu.moveTrainByApproach(speed); } + + if(ltu.trains.length != 1) { + //ltu.pushForce *= 0.95; + ltu.pushForce = 0; + ltu.collideTrain(speed); + } } } @@ -540,6 +547,7 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { public static class LogicalTrainUnit { + protected double pushForce; protected EntityRailCarBase trains[]; /** Assumes that the train is an endpoint, i.e. that only one coupling is in use */ @@ -742,7 +750,6 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { /** Determines the "front" wagon based on the movement and moves it, then moves all other wagons towards that */ public void moveTrainByApproach(double speed) { boolean forward = speed < 0; - double origSpeed = speed; speed = Math.abs(speed); EntityRailCarBase previous = null; @@ -798,6 +805,55 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { current.motionY = current.rotationPitch / 360D; current.velocityChanged = true; } + + public void collideTrain(double speed) { + EntityRailCarBase collidingTrain = speed > 0 ? trains[0] : trains[trains.length - 1]; + List intersect = collidingTrain.worldObj.getEntitiesWithinAABB(EntityRailCarBase.class, collidingTrain.boundingBox.expand(1, 1, 1)); + EntityRailCarBase collidesWith = null; + + for(EntityRailCarBase train : intersect) { + if(train.ltu != null && train.ltu != this) { + collidesWith = train; + break; + } + } + + if(collidesWith == null) return; + + Vec3 delta = Vec3.createVectorHelper(collidingTrain.posX - collidesWith.posX, 0, collidingTrain.posZ - collidesWith.posZ); + double totalSpan = collidingTrain.getCollisionSpan() + collidesWith.getCollisionSpan(); + double diff = delta.lengthVector(); + if(diff > totalSpan) return; + double push = (totalSpan - diff); + + //PacketDispatcher.wrapper.sendToAllAround(new PlayerInformPacket(ChatBuilder.start("" + collidesWith.ltuIndex + " " + collidingTrain.ltuIndex).color(EnumChatFormatting.RED).flush(), 1), + // new TargetPoint(collidingTrain.dimension, collidingTrain.posX, collidingTrain.posY + 1, collidingTrain.posZ, 50)); + + EntityRailCarBase[][] whatever = new EntityRailCarBase[][] {{collidingTrain, collidesWith}, {collidesWith, collidingTrain}}; + for(EntityRailCarBase[] array : whatever) { + LogicalTrainUnit ltu = array[0].ltu; + if(ltu.trains.length == 1) { + Vec3 rot = Vec3.createVectorHelper(0, 0, array[0].getCollisionSpan()); + rot.rotateAroundX((float) (array[0].rotationPitch * Math.PI / 180D)); + rot.rotateAroundY((float) (-array[0].rotationYaw * Math.PI / 180)); + Vec3 forward = Vec3.createVectorHelper(array[1].posX - (array[0].posX + rot.xCoord), 0, array[1].posZ - (array[0].posZ + rot.zCoord)); + Vec3 backward = Vec3.createVectorHelper(array[1].posX - (array[0].posX - rot.xCoord), 0, array[1].posZ - (array[0].posZ - rot.zCoord)); + + if(forward.lengthVector() > backward.lengthVector()) { + ltu.pushForce += push; + } else { + ltu.pushForce -= push; + } + } else { + + if(array[0].ltuIndex < ltu.trains.length / 2) { + ltu.pushForce -= push; + } else { + ltu.pushForce += push; + } + } + } + } } @Override diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index a9f2b5ca8..f171c9f71 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -19,6 +19,7 @@ import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; +import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -587,6 +588,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntitySawblade.class, new RenderSawblade()); RenderingRegistry.registerEntityRenderingHandler(EntityChemical.class, new RenderChemical()); RenderingRegistry.registerEntityRenderingHandler(EntityMist.class, new RenderMist()); + RenderingRegistry.registerEntityRenderingHandler(EntityAcidBomb.class, new RenderSnowball(Items.slime_ball)); //grenades RenderingRegistry.registerEntityRenderingHandler(EntityGrenadeGeneric.class, new RenderSnowball(ModItems.grenade_generic)); RenderingRegistry.registerEntityRenderingHandler(EntityGrenadeStrong.class, new RenderSnowball(ModItems.grenade_strong)); @@ -725,6 +727,8 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidBrawler.class, new RenderGlyphid()); RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidBehemoth.class, new RenderGlyphid()); RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidBrenda.class, new RenderGlyphid()); + RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidBombardier.class, new RenderGlyphid()); + RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidBlaster.class, new RenderGlyphid()); //"particles" RenderingRegistry.registerEntityRenderingHandler(EntitySmokeFX.class, new MultiCloudRenderer(new Item[] { ModItems.smoke1, ModItems.smoke2, ModItems.smoke3, ModItems.smoke4, ModItems.smoke5, ModItems.smoke6, ModItems.smoke7, ModItems.smoke8 })); RenderingRegistry.registerEntityRenderingHandler(EntityBSmokeFX.class, new MultiCloudRenderer(new Item[] { ModItems.b_smoke1, ModItems.b_smoke2, ModItems.b_smoke3, ModItems.b_smoke4, ModItems.b_smoke5, ModItems.b_smoke6, ModItems.b_smoke7, ModItems.b_smoke8 })); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 1db20b3a6..9f3b71fdb 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -663,6 +663,8 @@ public class ResourceManager { public static final ResourceLocation glyphid_brawler_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_brawler.png"); public static final ResourceLocation glyphid_behemoth_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_behemoth.png"); public static final ResourceLocation glyphid_brenda_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_brenda.png"); + public static final ResourceLocation glyphid_bombardier_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_bombardier.png"); + public static final ResourceLocation glyphid_blaster_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_blaster.png"); //ZIRNOX public static final ResourceLocation zirnox_tex = new ResourceLocation(RefStrings.MODID, "textures/models/zirnox.png"); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index a92874167..6ea95cce7 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -505,6 +505,10 @@ digamma.title=DIGAMMA-DIAGNOSEGERÄT entity.entity_cyber_crab.name=Cyber-Krabbe entity.entity_elder_one.name=Quackos der Älteste entity.entity_fucc_a_ducc.name=Ente +entity.entity_glyphid.name=Glyphid +entity.entity_glyphid_behemoth.name=Glyphid-Behemoth +entity.entity_glyphid_brawler.name=Glyphid-Schläger +entity.entity_glyphid_brenda.name=Brenda entity.entity_ntm_fbi.name=FBI Agent entity.entity_ntm_radiation_blaze.name=Kernschmelze-Elementar entity.hbm.entity_ntm_ufo.name=Marsianisches Invasionsschiff diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index a7feb2556..cec6b2cbc 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -951,6 +951,10 @@ digamma.title=DIGAMMA DIAGNOSTIC entity.entity_cyber_crab.name=Cyber Crab entity.entity_elder_one.name=Quackos The Elder One entity.entity_fucc_a_ducc.name=Duck +entity.entity_glyphid.name=Glyphid +entity.entity_glyphid_behemoth.name=Glyphid Behemoth +entity.entity_glyphid_brawler.name=Glyphid Brawler +entity.entity_glyphid_brenda.name=Brenda entity.entity_ntm_fbi.name=FBI Agent entity.entity_ntm_radiation_blaze.name=Meltdown Elemental entity.hbm.entity_ntm_ufo.name=Martian Invasion Ship diff --git a/src/main/resources/assets/hbm/textures/entity/glyphid_blaster.png b/src/main/resources/assets/hbm/textures/entity/glyphid_blaster.png new file mode 100644 index 0000000000000000000000000000000000000000..f99440f7b127789cd9a8ba4341b7f2291880616a GIT binary patch literal 2428 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 Date: Sat, 17 Jun 2023 22:55:05 +0200 Subject: [PATCH 130/432] glyphid hives --- src/main/java/com/hbm/blocks/ModBlocks.java | 8 +- .../blocks/generic/BlockGlyphidSpawner.java | 49 +++++++ .../java/com/hbm/entity/EntityMappings.java | 1 + .../com/hbm/entity/mob/EntityGlyphid.java | 13 ++ .../hbm/entity/mob/EntityGlyphidBrenda.java | 2 +- .../hbm/entity/mob/EntityGlyphidScout.java | 102 ++++++++++++++ src/main/java/com/hbm/lib/HbmWorldGen.java | 8 ++ src/main/java/com/hbm/main/ClientProxy.java | 1 + .../java/com/hbm/main/ResourceManager.java | 1 + .../java/com/hbm/tileentity/TileMappings.java | 2 + .../com/hbm/world/feature/GlyphidHive.java | 128 ++++++++++++++++++ .../hbm/textures/blocks/glyphid_base.png | Bin 0 -> 583 bytes .../hbm/textures/blocks/glyphid_base_2.png | Bin 0 -> 560 bytes .../hbm/textures/entity/glyphid_scout.png | Bin 0 -> 2378 bytes 14 files changed, 313 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java create mode 100644 src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java create mode 100644 src/main/java/com/hbm/world/feature/GlyphidHive.java create mode 100644 src/main/resources/assets/hbm/textures/blocks/glyphid_base.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/glyphid_base_2.png create mode 100644 src/main/resources/assets/hbm/textures/entity/glyphid_scout.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 1a9438c41..e745ad561 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -495,11 +495,13 @@ public class ModBlocks { public static Block glass_ash; public static Block glass_quartz; - public static Block mush; public static Block mush_block; public static Block mush_block_stem; + public static Block glyphid_base; + public static Block glyphid_spawner; + public static Block plant_flower; public static Block plant_tall; public static Block plant_dead; @@ -1695,6 +1697,8 @@ public class ModBlocks { mush = new BlockMush(Material.plants).setBlockName("mush").setCreativeTab(MainRegistry.blockTab).setLightLevel(0.5F).setStepSound(Block.soundTypeGrass).setBlockTextureName(RefStrings.MODID + ":mush"); mush_block = new BlockMushHuge(Material.plants).setBlockName("mush_block").setLightLevel(1.0F).setStepSound(Block.soundTypeGrass).setHardness(0.2F).setBlockTextureName(RefStrings.MODID + ":mush_block_skin"); mush_block_stem = new BlockMushHuge(Material.plants).setBlockName("mush_block_stem").setLightLevel(1.0F).setStepSound(Block.soundTypeGrass).setHardness(0.2F).setBlockTextureName(RefStrings.MODID + ":mush_block_stem"); + glyphid_base = new BlockBase(Material.coral).setBlockName("glyphid_base").setStepSound(Block.soundTypeCloth).setHardness(0.5F); + glyphid_spawner = new BlockGlyphidSpawner(Material.coral).setBlockName("glyphid_spawner").setStepSound(Block.soundTypeCloth).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":glyphid_base"); plant_flower = new BlockNTMFlower().setBlockName("plant_flower").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGrass).setHardness(0.0F); plant_tall = new BlockTallPlant().setBlockName("plant_tall").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGrass).setHardness(0.0F); @@ -2836,6 +2840,8 @@ public class ModBlocks { GameRegistry.registerBlock(mush, mush.getUnlocalizedName()); GameRegistry.registerBlock(mush_block, mush_block.getUnlocalizedName()); GameRegistry.registerBlock(mush_block_stem, mush_block_stem.getUnlocalizedName()); + GameRegistry.registerBlock(glyphid_base, glyphid_base.getUnlocalizedName()); + GameRegistry.registerBlock(glyphid_spawner, glyphid_spawner.getUnlocalizedName()); GameRegistry.registerBlock(moon_turf, moon_turf.getUnlocalizedName()); //Waste diff --git a/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java b/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java new file mode 100644 index 000000000..155b256fc --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java @@ -0,0 +1,49 @@ +package com.hbm.blocks.generic; + +import java.util.List; + +import com.hbm.entity.mob.EntityGlyphid; +import com.hbm.entity.mob.EntityGlyphidScout; + +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.EnumDifficulty; +import net.minecraft.world.World; + +public class BlockGlyphidSpawner extends BlockContainer { + + public BlockGlyphidSpawner(Material p_i45386_1_) { + super(p_i45386_1_); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityGlpyhidSpawner(); + } + + public static class TileEntityGlpyhidSpawner extends TileEntity { + + @Override + public void updateEntity() { + + if(!worldObj.isRemote && worldObj.getTotalWorldTime() % 60 == 0 && this.worldObj.difficultySetting != EnumDifficulty.PEACEFUL) { + + List list = worldObj.getEntitiesWithinAABB(EntityGlyphid.class, AxisAlignedBB.getBoundingBox(xCoord - 4, yCoord + 1, zCoord - 4, xCoord + 5, yCoord + 4, zCoord + 5)); + + if(list.size() < 3) { + EntityGlyphid glyphid = new EntityGlyphid(worldObj); + glyphid.setLocationAndAngles(xCoord + 0.5, yCoord + 1, zCoord + 0.5, worldObj.rand.nextFloat() * 360.0F, 0.0F); + this.worldObj.spawnEntityInWorld(glyphid); + } + + if(worldObj.rand.nextInt(20) == 0) { + EntityGlyphidScout scout = new EntityGlyphidScout(worldObj); + scout.setLocationAndAngles(xCoord + 0.5, yCoord + 1, zCoord + 0.5, worldObj.rand.nextFloat() * 360.0F, 0.0F); + this.worldObj.spawnEntityInWorld(scout); + } + } + } + } +} diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index c50d13566..d231fa8b6 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -245,6 +245,7 @@ public class EntityMappings { addMob(EntityGlyphidBrenda.class, "entity_glyphid_brenda", 0x4FC0C0, 0xA0A0A0); addMob(EntityGlyphidBombardier.class, "entity_glyphid_bombardier", 0xDDD919, 0xDBB79D); addMob(EntityGlyphidBlaster.class, "entity_glyphid_blaster", 0xD83737, 0xDBB79D); + addMob(EntityGlyphidScout.class, "entity_glyphid_scout", 0x273038, 0xB9E36B); addSpawn(EntityCreeperPhosgene.class, 5, 1, 1, EnumCreatureType.monster, BiomeGenBase.getBiomeGenArray()); addSpawn(EntityCreeperVolatile.class, 10, 1, 1, EnumCreatureType.monster, BiomeGenBase.getBiomeGenArray()); diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java index 92fd49785..230fd56c2 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java @@ -19,6 +19,7 @@ import net.minecraft.entity.ai.EntityAIWander; import net.minecraft.entity.ai.EntityAIWatchClosest; import net.minecraft.entity.monster.EntityMob; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.DamageSource; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; @@ -197,4 +198,16 @@ public class EntityGlyphid extends EntityMob { public EnumCreatureAttribute getCreatureAttribute() { return EnumCreatureAttribute.ARTHROPOD; } + + @Override + public void writeEntityToNBT(NBTTagCompound nbt) { + super.writeEntityToNBT(nbt); + nbt.setByte("armor", this.dataWatcher.getWatchableObjectByte(17)); + } + + @Override + public void readEntityFromNBT(NBTTagCompound nbt) { + super.readEntityFromNBT(nbt); + this.dataWatcher.updateObject(17, nbt.getByte("armor")); + } } diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidBrenda.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidBrenda.java index 309ac38fb..bdce3e7bc 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidBrenda.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidBrenda.java @@ -12,7 +12,7 @@ public class EntityGlyphidBrenda extends EntityGlyphid { public EntityGlyphidBrenda(World world) { super(world); - this.setSize(2.5F, 2F); + this.setSize(2.5F, 1.75F); this.isImmuneToFire = true; } diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java new file mode 100644 index 000000000..ae20a35a8 --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java @@ -0,0 +1,102 @@ +package com.hbm.entity.mob; + +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.world.feature.GlyphidHive; + +import net.minecraft.block.Block; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public class EntityGlyphidScout extends EntityGlyphid { + + public boolean hasHome = false; + public double homeX; + public double homeY; + public double homeZ; + + public EntityGlyphidScout(World world) { + super(world); + this.setSize(1.25F, 0.75F); + } + + @Override + public float getDamageThreshold() { + return 0.0F; + } + + @Override + public ResourceLocation getSkin() { + return ResourceManager.glyphid_scout_tex; + } + + @Override + public double getScale() { + return 0.75D; + } + + @Override + public int getArmorBreakChance(float amount) { + return 1; + } + + @Override + protected void applyEntityAttributes() { + super.applyEntityAttributes(); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(16D); + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(1.5D); + this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(2D); + } + + @Override + protected boolean canDespawn() { + return true; + } + + @Override + public void onUpdate() { + super.onUpdate(); + + if(!worldObj.isRemote) { + + if(!this.hasHome) { + this.homeX = posX; + this.homeY = posY; + this.homeZ = posZ; + this.hasHome = true; + } + + if(this.ticksExisted > 0 && this.ticksExisted % 1200 == 0 && Vec3.createVectorHelper(posX - homeX, posY - homeY, posZ - homeZ).lengthVector() > 16) { + + Block b = worldObj.getBlock((int) Math.floor(posX), (int) Math.floor(posY - 1), (int) Math.floor(posZ)); + + if(b.isNormalCube() && b != ModBlocks.glyphid_base) { + this.setDead(); + worldObj.newExplosion(this, posX, posY, posZ, 5F, false, false); + GlyphidHive.generate(worldObj, (int) Math.floor(posX), (int) Math.floor(posY), (int) Math.floor(posZ), rand); + } + } + } + } + + @Override + public void writeEntityToNBT(NBTTagCompound nbt) { + super.writeEntityToNBT(nbt); + nbt.setBoolean("hasHome", hasHome); + nbt.setDouble("homeX", homeX); + nbt.setDouble("homeY", homeY); + nbt.setDouble("homeZ", homeZ); + } + + @Override + public void readEntityFromNBT(NBTTagCompound nbt) { + super.readEntityFromNBT(nbt); + this.hasHome = nbt.getBoolean("hasHome"); + this.homeX = nbt.getDouble("homeX"); + this.homeY = nbt.getDouble("homeY"); + this.homeZ = nbt.getDouble("homeZ"); + } +} diff --git a/src/main/java/com/hbm/lib/HbmWorldGen.java b/src/main/java/com/hbm/lib/HbmWorldGen.java index 2d1bd69c5..04c41da43 100644 --- a/src/main/java/com/hbm/lib/HbmWorldGen.java +++ b/src/main/java/com/hbm/lib/HbmWorldGen.java @@ -34,6 +34,7 @@ import com.hbm.world.feature.DepthDeposit; import com.hbm.world.feature.Dud; import com.hbm.world.feature.Geyser; import com.hbm.world.feature.GeyserLarge; +import com.hbm.world.feature.GlyphidHive; import com.hbm.world.feature.Meteorite; import com.hbm.world.feature.OilBubble; import com.hbm.world.feature.OilSandBubble; @@ -216,6 +217,13 @@ public class HbmWorldGen implements IWorldGenerator { } if(GeneralConfig.enableDungeons && world.provider.isSurfaceWorld()) { + + if(rand.nextInt(1000) == 0) { + int x = i + rand.nextInt(16) + 8; + int z = j + rand.nextInt(16) + 8; + int y = world.getHeightValue(x, z); + GlyphidHive.generate(world, x, y, z, rand); + } if(biome == BiomeGenBase.plains || biome == BiomeGenBase.desert) { if(WorldConfig.radioStructure > 0 && rand.nextInt(WorldConfig.radioStructure) == 0) { diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index f171c9f71..8f491ea8d 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -729,6 +729,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidBrenda.class, new RenderGlyphid()); RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidBombardier.class, new RenderGlyphid()); RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidBlaster.class, new RenderGlyphid()); + RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidScout.class, new RenderGlyphid()); //"particles" RenderingRegistry.registerEntityRenderingHandler(EntitySmokeFX.class, new MultiCloudRenderer(new Item[] { ModItems.smoke1, ModItems.smoke2, ModItems.smoke3, ModItems.smoke4, ModItems.smoke5, ModItems.smoke6, ModItems.smoke7, ModItems.smoke8 })); RenderingRegistry.registerEntityRenderingHandler(EntityBSmokeFX.class, new MultiCloudRenderer(new Item[] { ModItems.b_smoke1, ModItems.b_smoke2, ModItems.b_smoke3, ModItems.b_smoke4, ModItems.b_smoke5, ModItems.b_smoke6, ModItems.b_smoke7, ModItems.b_smoke8 })); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 9f3b71fdb..1f9716a94 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -665,6 +665,7 @@ public class ResourceManager { public static final ResourceLocation glyphid_brenda_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_brenda.png"); public static final ResourceLocation glyphid_bombardier_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_bombardier.png"); public static final ResourceLocation glyphid_blaster_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_blaster.png"); + public static final ResourceLocation glyphid_scout_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_scout.png"); //ZIRNOX public static final ResourceLocation zirnox_tex = new ResourceLocation(RefStrings.MODID, "textures/models/zirnox.png"); diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index f7098e052..e9ba74599 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -9,6 +9,7 @@ import com.hbm.blocks.generic.BlockBedrockOreTE.TileEntityBedrockOre; import com.hbm.blocks.generic.BlockBobble.TileEntityBobble; import com.hbm.blocks.generic.BlockDynamicSlag.TileEntitySlag; import com.hbm.blocks.generic.BlockEmitter.TileEntityEmitter; +import com.hbm.blocks.generic.BlockGlyphidSpawner.TileEntityGlpyhidSpawner; import com.hbm.blocks.generic.BlockLoot.TileEntityLoot; import com.hbm.blocks.generic.BlockMotherOfAllOres.TileEntityRandomOre; import com.hbm.blocks.generic.BlockSnowglobe.TileEntitySnowglobe; @@ -193,6 +194,7 @@ public class TileMappings { put(TileEntityPipeGauge.class, "tileentity_pipe_gauge"); put(TileEntityMachineBAT9000.class, "tileentity_bat9000"); put(TileEntityMachineOrbus.class, "tileentity_orbus"); + put(TileEntityGlpyhidSpawner.class, "tileentity_glyphid_spawner"); put(TileEntityLoot.class, "tileentity_ntm_loot"); put(TileEntityBobble.class, "tileentity_ntm_bobblehead"); diff --git a/src/main/java/com/hbm/world/feature/GlyphidHive.java b/src/main/java/com/hbm/world/feature/GlyphidHive.java new file mode 100644 index 000000000..5c60e3ff2 --- /dev/null +++ b/src/main/java/com/hbm/world/feature/GlyphidHive.java @@ -0,0 +1,128 @@ +package com.hbm.world.feature; + +import java.util.Random; + +import com.hbm.blocks.ModBlocks; + +import net.minecraft.init.Blocks; +import net.minecraft.world.World; + +public class GlyphidHive { + + public static final int[][][] schematic = new int[][][] { + { + {0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,1,1,1,0,0,0,0}, + {0,0,0,1,1,1,1,1,0,0,0}, + {0,0,0,1,1,1,1,1,0,0,0}, + {0,0,0,1,1,1,1,1,0,0,0}, + {0,0,0,0,1,1,1,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0}, + }, + { + {0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,1,1,1,0,0,0,0}, + {0,0,0,1,1,9,1,1,0,0,0}, + {0,0,1,1,9,9,9,1,1,0,0}, + {0,0,1,9,9,9,9,9,1,0,0}, + {0,0,1,1,9,9,9,1,1,0,0}, + {0,0,0,1,1,9,1,1,0,0,0}, + {0,0,0,0,1,1,1,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0}, + }, + { + {0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,4,4,4,0,0,0,0}, + {0,0,0,1,1,9,1,1,0,0,0}, + {0,0,1,1,9,9,9,1,1,0,0}, + {0,3,1,9,9,9,9,9,1,5,0}, + {0,3,9,9,9,9,9,9,9,5,0}, + {0,3,1,9,9,9,9,9,1,5,0}, + {0,0,1,1,9,9,9,1,1,0,0}, + {0,0,0,1,1,9,1,1,0,0,0}, + {0,0,0,0,2,2,2,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0}, + }, + { + {0,0,0,0,0,4,0,0,0,0,0}, + {0,0,0,0,4,4,4,0,0,0,0}, + {0,0,0,1,4,9,4,1,0,0,0}, + {0,0,1,1,9,9,9,1,1,0,0}, + {0,3,3,9,9,9,9,9,5,5,0}, + {3,3,9,9,9,9,9,9,9,5,5}, + {0,3,3,9,9,9,9,9,5,5,0}, + {0,0,1,1,9,9,9,1,1,0,0}, + {0,0,0,1,2,9,2,1,0,0,0}, + {0,0,0,0,2,2,2,0,0,0,0}, + {0,0,0,0,0,2,0,0,0,0,0}, + }, + { + {0,0,0,0,4,4,4,0,0,0,0}, + {0,0,0,1,4,4,4,1,0,0,0}, + {0,0,1,1,4,9,4,1,1,0,0}, + {0,1,1,1,9,9,0,1,1,1,0}, + {3,3,3,9,9,9,9,9,5,5,5}, + {3,3,9,9,9,9,9,9,9,5,5}, + {3,3,3,9,9,9,9,9,5,5,5}, + {0,1,1,1,9,9,9,1,1,1,0}, + {0,0,1,1,2,9,2,1,1,0,0}, + {0,0,0,1,2,2,2,1,0,0,0}, + {0,0,0,0,2,2,2,0,0,0,0}, + }, + { + {0,0,0,0,1,1,1,0,0,0,0}, + {0,0,0,1,1,1,1,1,0,0,0}, + {0,0,1,1,1,1,1,1,1,0,0}, + {0,1,1,1,1,1,1,1,1,1,0}, + {1,1,1,1,1,1,1,1,1,1,1}, + {1,1,1,1,1,1,1,1,1,1,1}, + {1,1,1,1,1,1,1,1,1,1,1}, + {0,1,1,1,1,1,1,1,1,1,0}, + {0,0,1,1,1,1,1,1,1,0,0}, + {0,0,0,1,1,1,1,1,0,0,0}, + {0,0,0,0,1,1,1,0,0,0,0}, + }, + { + {0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,1,1,1,0,0,0,0}, + {0,0,0,1,1,1,1,1,0,0,0}, + {0,0,1,1,1,1,1,1,1,0,0}, + {0,1,1,1,1,1,1,1,1,1,0}, + {0,1,1,1,1,1,1,1,1,1,0}, + {0,1,1,1,1,1,1,1,1,1,0}, + {0,0,1,1,1,1,1,1,1,0,0}, + {0,0,0,1,1,1,1,1,0,0,0}, + {0,0,0,0,1,1,1,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0}, + } + }; + + public static void generate(World world, int x, int y, int z, Random rand) { + + int orientation = rand.nextInt(4) + 2; + + for(int i = 0; i < 11; i++) { + for(int j = 0; j < 7; j++) { + for(int k = 0; k < 11; k++) { + + int block = schematic[6 - j][i][k]; + + if(block == 1 || (block != orientation && block > 1 && block < 6)) { + world.setBlock(x + i - 5, y + j - 2, z + k - 5, ModBlocks.glyphid_base); + } + if(block == 9) { + world.setBlock(x + i - 5, y + j - 2, z + k - 5, Blocks.air); + } + } + } + } + + world.setBlock(x, y - 1, z, ModBlocks.glyphid_spawner); + } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/glyphid_base.png b/src/main/resources/assets/hbm/textures/blocks/glyphid_base.png new file mode 100644 index 0000000000000000000000000000000000000000..ef6bca81580e47f00c436f188a0b9dbab716210a GIT binary patch literal 583 zcmV-N0=WH&P)aR~LkcU!Mh96&7%JL>v|F3ZWzlNp|L6Z__U!YAkADHm@_^%X%{h{N z9&c^|5W*)-a|ZJ{R=lK;V}ekUsEpP~_5ofM`#l$TIs+h0bA<4*;w5RC-kAgHW206>@Bh9$sFV zPOC7gJ8-8n(jN~9)>L6cAp0aLqig_!Py(>IzpKG7ul`GzH0C7EoMFR~sO)64PqD&N zYtx|ya-1%9zT1!_U_LinsF}4^htqY}ch>uD z^+~(B`T2{pEX5YJ=JWF&FMm3;+xAIu5K6qBLs68pjz literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/glyphid_base_2.png b/src/main/resources/assets/hbm/textures/blocks/glyphid_base_2.png new file mode 100644 index 0000000000000000000000000000000000000000..541a53c5f56156aede4138dd7d332424794fa7f9 GIT binary patch literal 560 zcmV-00?+-4P)r7UJMf+)l?Omx>Fj}sc&pbu~ZZtET9o(Dj%OG}a{B-o{F_bJPVN3=m71wfF9 zr>%E5W(RcF!QQ6?yHxJkT@!%0=aI)rNsz}0K@`eEmSIXIA3iRyUp8{z9*)okeeyUd z6$|h>4gkCNkf3Omd12o*FrlN1$mtC`(?v1JJ8lU z(p*I=VWcqdk?N1lhEw(j!|VdkHg%eR zPc)j%8d!H7TJJiX@`A>7B~Z@&di5-A=&o}E7V{89A&T8KrKh>)v8`r*3bGB+f*=)O y%P>*w;fNp#v41j&6h31uLKwO=)!NcpNZt-nVV77+#1llKOG&{KPD5HPekP8>|8e2 z*BW(Nc5-$uk2hWvUVBV$75iEDUx_vF$eYgQBGM*6%dNT?#-m|Q^Tr%`ewx-g1h=yU zBNb5skvyHq=K5M)u9(i|4e~G@8(*)feGvM9Es2`W<}w})wI)>yW5k-Tu#o;-8Jwv6;T5DhE}m9p1(&Pn}AddQX271 zG|f_`b}UB~ajY&X%*0?CAF`*ex`rg&< z$J${@6_SPzoj1Z16mL$S)jN)5i!2+{cRiNp`eAQQpH({E+ruN--JY1zXlYCcss8AS zWkW2rn9k<%_VB2_dOMoeKUBYnFNWl)%cAH?UJeR;f(Yy8dgYBG)<0B_c@e2k45`4A zlByy<43zAcbDw(>T1oYVJR=+HpECX;5~BW|h&1eISGOb=4I7BSUC}bG5BqLz;qvY*}qi1~V!rdVZo-{R%L zlZwxwx#!YY|4?4lFC;M*k=A0E7_ZE0V~rK^EH>BIni8nUwMVi3u{`>kxvJ+$p4HDg zw&jwCPI_{@j%}i*b9XJqo6~0%JG6{cdzu2PZP!!KbT*HlM7RSkwhvf#(Q=!xj6DL& z-df{$_weqUGFB3S)+DKsVDS9)_tm3^TdiQJ5``~qG@SM5;Z|*I zpTGXT^(2+>>1NWYI}&@yO465$k7har13u8>A)n8rxsu0Gn-CVM z_w00NzBg~Jw(_4pUDV`py@vuN&Mpaqmb&GWcAULWgTc`=n9;7w!E4t6?Y;6?ER z;stlD50QuSMG1_Nr?|0tTfSU;bk{hrp0X9Sup}_%AAT(f3<2kZ(!?ZL_C7@&Wo z??*VS4R5Elzx$P|p^rXUD z+*Yw)U^ojyUrZQ=-$M853oQu@N!fKspzhLm8p5>o<-OwCB#_JaO;{@WlE4tIT>@k8 zAlmN^{&w41JKK12zv{~dT41|q`G4%j^oi(8B@T7-qB+l4wghe!`z=SBu?*rANiUV~ ztcXOVyg$%T5l4abAdjSVkwB6B|F`vtq%RZjz|CZ`WHOd1ft5&YUJCi|BLOWBl~p2@ zmCi+!Kt6D*M2SdU9x~KceIGWk5~)hc7a|3ghsu&~6hV|gbOWpiZEpBS`}BeRCJ_~v zmqr=3yUH{kL@tsg&8Dl1_uOy{CjVI)SRsgfRfylCvl zu8N4ro#9<`^YQwpMuo2vwF;{ZLaEdAo#EZOjVF2fWAdz5g{kDlplXSEuE%y<-v=5h zEFvw{6=_PNMV{4GoorNL&)wmNmP%d;>DZ~lYTE})6=qUI#3V{Yf@S`fNh1E4do5(~k ziAIHQjU@JwPA*~&vsb`^7mhkh&;xzYHBuQY1 ztm`_r#&+R7k!s)AnM3_~tWv^Gxk!hAsue_7_J-jh_9seIgn?7P0?ZhWS_&xliOqo>TgV`gK-el(^7W3EzrDS`KsU<&)RX w1CE!Z!rqzH%YO}&MmiRG_WGyvE9t8E7wWzFSXyJMiU0rr07*qoM6N<$g6IsD%>V!Z literal 0 HcmV?d00001 From 0a8ec4a38946741a5c9d4c23eda57ef1b3fc2afc Mon Sep 17 00:00:00 2001 From: Vaern Date: Sat, 17 Jun 2023 18:24:29 -0700 Subject: [PATCH 131/432] reworked book lore's clientside --- .../com/hbm/inventory/gui/GUIBookLore.java | 388 +++++------------- src/main/java/com/hbm/items/ModItems.java | 2 +- .../com/hbm/items/special/ItemBookLore.java | 93 +++-- src/main/resources/assets/hbm/lang/en_US.lang | 64 +-- .../hbm/textures/gui/book/book_lore.png | Bin 0 -> 21362 bytes .../assets/hbm/textures/items/book_cover.png | Bin 0 -> 244 bytes .../assets/hbm/textures/items/book_pages.png | Bin 0 -> 211 bytes .../assets/hbm/textures/items/book_title.png | Bin 0 -> 166 bytes 8 files changed, 193 insertions(+), 354 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/gui/book/book_lore.png create mode 100644 src/main/resources/assets/hbm/textures/items/book_cover.png create mode 100644 src/main/resources/assets/hbm/textures/items/book_pages.png create mode 100644 src/main/resources/assets/hbm/textures/items/book_title.png diff --git a/src/main/java/com/hbm/inventory/gui/GUIBookLore.java b/src/main/java/com/hbm/inventory/gui/GUIBookLore.java index b8f203f23..223f49130 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIBookLore.java +++ b/src/main/java/com/hbm/inventory/gui/GUIBookLore.java @@ -7,132 +7,160 @@ import org.lwjgl.opengl.GL11; import com.hbm.items.special.ItemBookLore.*; import com.hbm.lib.RefStrings; +import com.hbm.util.I18nUtil; + import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.ResourceLocation; -// and you may ask yourself: vaer, why do this? this is basically just a copy of GUIScreenGuide. -// and I would answer, shut the fuck up nerd, the guide book system is too involved for my small -// brain to use for god knows how many tidbits of lore. i'll settle for a text box and cool textures, thanks public class GUIBookLore extends GuiScreen { - protected int xSize; - protected int ySize; + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/book/book_lore.png"); + protected int guiLeft; protected int guiTop; + protected static int sizeX = 272; + protected static int sizeY = 182; - private NBTTagCompound tag; //Used for save-dependent information, like the MKU recipe - private BookLoreType type; + protected BookLoreType type; + protected NBTTagCompound tag; - public int itemTexture; + //judgement + protected int color; - protected GUIPage mainPage; - protected GUIPage auxPage; - protected GUIPageButton button; - - int page = 0; - int maxPage; + protected int page; + protected int maxPage; public GUIBookLore(EntityPlayer player) { + ItemStack stack = player.getHeldItem(); + if(!stack.hasTagCompound()) return; + this.type = BookLoreType.getTypeFromStack(stack); - type = BookLoreType.getTypeFromStack(player.getHeldItem()); - tag = player.getHeldItem().getTagCompound(); //compound is created or gotten in method above - GUIAppearance setup = type.appearance; - - mainPage = setup.mainPage; - auxPage = setup.auxPage; - button = setup.button; - itemTexture = setup.itemTexture; - - if(type.pages <= 1) { - xSize = auxPage.sizeX; - ySize = auxPage.sizeY; - } else { - xSize = mainPage.sizeX; - ySize = mainPage.sizeY; - } - - maxPage = mainPage.isTwoPages ? (int)Math.ceil(type.pages / 2D) - 1 : type.pages - 1; + if(type == null) return; + this.tag = stack.getTagCompound(); + this.color = tag.getInteger("cov_col"); + if(color <= 0) + color = 0x303030; + this.maxPage = (int)Math.ceil(type.pages / 2D) - 1; } @Override public void initGui() { - super.initGui(); - this.guiLeft = (this.width - this.xSize) / 2; - this.guiTop = (this.height - this.ySize) / 2; + if(type == null) this.mc.thePlayer.closeScreen(); + this.guiLeft = (this.width - this.sizeX) / 2; + this.guiTop = (this.height - this.sizeY) / 2; } @Override - public void drawScreen(int mouseX, int mouseY, float f) { + public void drawScreen(int i, int j, float f) { this.drawDefaultBackground(); - this.drawGuiContainerBackgroundLayer(f, mouseX, mouseY); + this.drawGuiContainerBackgroundLayer(f, i, j); GL11.glDisable(GL11.GL_LIGHTING); - this.drawGuiContainerForegroundLayer(mouseX, mouseY); + this.drawGuiContainerForegroundLayer(i, j); GL11.glEnable(GL11.GL_LIGHTING); } protected void drawGuiContainerBackgroundLayer(float f, int i, int j) { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); - if(page == maxPage && (page + 1) * 2 > type.pages) { //odd numbered pages - Minecraft.getMinecraft().getTextureManager().bindTexture(auxPage.texture); - func_146110_a(guiLeft, guiTop, auxPage.u, auxPage.v, auxPage.sizeX, auxPage.sizeY, 512, 512); - } else { - Minecraft.getMinecraft().getTextureManager().bindTexture(mainPage.texture); - func_146110_a(guiLeft, guiTop, mainPage.u, mainPage.v, mainPage.sizeX, mainPage.sizeY, 512, 512); + float r = (float)(color >> 16 & 255) / 255F; + float g = (float)(color >> 8 & 255) / 255F; + float b = (float)(color & 255) / 255F; + GL11.glColor4f(r, g, b, 1.0F); + func_146110_a(guiLeft, guiTop, 0, 0, sizeX, sizeY, 512, 512); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + func_146110_a(guiLeft + 7, guiTop + 7, 0, 182, 258, 165, 512, 512); + + final boolean overY = j >= guiTop + 155 && j < guiTop + 165; + if(page > 0) { + if(overY && i >= guiLeft + 24 && i <= guiLeft + 42) + func_146110_a(guiLeft + 24, guiTop + 155, 295, 13, 18, 10, 512, 512); + else + func_146110_a(guiLeft + 24, guiTop + 155, 272, 13, 18, 10, 512, 512); } - int width = page == maxPage && (page + 1) * 2 > type.pages ? auxPage.sizeX : mainPage.sizeX; - - if(page > 0) - button.renderButton(this, width, guiLeft, guiTop, false, i, j); - - if(page < maxPage) - button.renderButton(this, width, guiLeft, guiTop, true, i, j); + if(page < maxPage) { + if(overY && i >= guiLeft + 230 && i <= guiLeft + 248) + func_146110_a(guiLeft + 230, guiTop + 155, 295, 0, 18, 10, 512, 512); + else + func_146110_a(guiLeft + 230, guiTop + 155, 272, 0, 18, 10, 512, 512); + } } protected void drawGuiContainerForegroundLayer(int x, int y) { String key = "book_lore." + type.keyI18n + ".page."; - if(mainPage.isTwoPages) { - int defacto = page * 2 + 1; - String text = type.resolveKey(key + defacto, tag); + for(int i = 0; i < 2; i++) { + int defacto = this.page * 2 + i; //TODO: force i18n to index from 0 instead of 1 - if((page + 1) * 2 <= type.pages) { //Checks if text should be rendered as an aux or a main page - mainPage.renderText(text, fontRendererObj, guiLeft, guiTop, false); + if(defacto < this.type.pages) { + String text = I18nUtil.resolveKey(key + defacto); //TODO tag-based argument formatting - text = type.resolveKey(key + (defacto + 1), tag); //kinda awkward, but no way around it - mainPage.renderText(text, fontRendererObj, guiLeft, guiTop, true); - } else - auxPage.renderText(text, fontRendererObj, guiLeft, guiTop, false); - - } else { - String text = type.resolveKey(key + (page + 1), tag); - - if(page < maxPage) - mainPage.renderText(text, fontRendererObj, guiLeft, guiTop, false); - else - auxPage.renderText(text, fontRendererObj, guiLeft, guiTop, false); + float scale = 1; + int width = 100; + int widthScaled = (int) (width * scale); + + List lines = new ArrayList(); + String[] words = text.split(" "); + + lines.add(words[0]); + int indent = this.fontRendererObj.getStringWidth(words[0]); + + for(int w = 1; w < words.length; w++) { + if(words[w].equals("$")) { + if(w + 1 < words.length && !words[w + 1].equals("$")) { + lines.add(words[++w]); + indent = this.fontRendererObj.getStringWidth(words[w]); + } else + lines.add(""); + + continue; + } + + indent += this.fontRendererObj.getStringWidth(" " + words[w]); + + if(indent <= widthScaled) { + String last = lines.get(lines.size() - 1); + lines.set(lines.size() - 1, last += (" " + words[w])); + } else { + lines.add(words[w]); + indent = this.fontRendererObj.getStringWidth(words[w]); + } + } + + GL11.glPushMatrix(); + GL11.glScalef(1F/scale, 1F/scale, 1F); + + for(int l = 0; l < lines.size(); l++) { + this.fontRendererObj.drawString(lines.get(l), + (int)((guiLeft + 20 + i * 130) * scale), + (int)((guiTop + 20) * scale + (9 * l)), + 0x0F0F0F); + } + + GL11.glPopMatrix(); + } } } @Override protected void mouseClicked(int i, int j, int k) { - int q = 0; //if both buttons are somehow simultaneously clicked then obviously something's wrong already + if(j < guiTop + 155 || j >= guiTop + 165) return; - if(page > 0) - q = button.handleInput(xSize, guiLeft, guiTop, false, i, j); - - if(page < maxPage && q == 0) - q = button.handleInput(xSize, guiLeft, guiTop, true, i, j); - - if(q != 0) { + if(page > 0 && i >= guiLeft + 24 && i <= guiLeft + 42) { + page--; + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + } + + if(page < maxPage && i >= guiLeft + 230 && i <= guiLeft + 248) { + page++; mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); - this.page += q; } } @@ -142,208 +170,4 @@ public class GUIBookLore extends GuiScreen { this.mc.thePlayer.closeScreen(); } } - - // turn page buttons, one-page, both page textures, sizes, positions, etc. - public enum GUIAppearance { - GUIDEBOOK(new GUIPage(272, 182, new ResourceLocation(RefStrings.MODID + ":textures/gui/book/book.png")).setScale(2F).setMargins(20, 20, 20), - new GUIPageButton(18, 10, 17, 148, new ResourceLocation(RefStrings.MODID + ":textures/gui/book/notebook_and_papers.png")).setUV(263, 0, 512, 512), - 0), //Guide Book - LOOSEPAPER(new GUIPage(130, 165, new ResourceLocation(RefStrings.MODID + ":textures/gui/book/notebook_and_papers.png"), false).setMargins(12, 10, 16).setUV(133, 0), - new GUIPageButton(18, 10, 17, 148, new ResourceLocation(RefStrings.MODID + ":textures/gui/book/notebook_and_papers.png")).setUV(263, 0, 512, 512), - 1), //Singular loose page - LOOSEPAPERS(new GUIPage(133, 165, new ResourceLocation(RefStrings.MODID + ":textures/gui/book/notebook_and_papers.png"), false).setMargins(12, 10, 16), - new GUIPageButton(18, 10, 17, 148, new ResourceLocation(RefStrings.MODID + ":textures/gui/book/notebook_and_papers.png")).setUV(263, 0, 512, 512), - 2), //Collection of loose pages - NOTEBOOK(new GUIPage(133, 165, new ResourceLocation(RefStrings.MODID + ":textures/gui/book/notebook_and_papers.png"), false).setMargins(10, 10, 16).setUV(0, 165), - new GUIPage(133, 165, new ResourceLocation(RefStrings.MODID + ":textures/gui/book/notebook_and_papers.png"), false).setMargins(10, 10, 16).setUV(133, 165), - new GUIPageButton(18, 10, 17, 148, new ResourceLocation(RefStrings.MODID + ":textures/gui/book/notebook_and_papers.png")).setUV(263, 0, 512, 512), - 3); - - public int itemTexture; - - protected GUIPage mainPage; //"Main" page, usually two pages. GUI accounts for one-paged main pages. - protected GUIPage auxPage; //"Aux" page, AKA the final page if the max pages is oddly numbered. - //If two-sided, text will be positioned on the left page. - protected GUIPageButton button; - - private GUIAppearance(GUIPage main, GUIPage aux, GUIPageButton button, int texture) { - this.mainPage = main; - this.auxPage = aux; - this.button = button; - this.itemTexture = texture; - } - - private GUIAppearance(GUIPage main, GUIPageButton button, int texture) { - this.mainPage = main; - this.auxPage = main; - this.button = button; - this.itemTexture = texture; - } - - } - - private static class GUIPage { - protected ResourceLocation texture; - - //UV positioning - protected int u = 0; //X/U pos in texture - protected int v = 0; //Y/V pos in texture - - protected int sizeX; //X size of the page - protected int sizeY; //Y size of the page - - //Text positioning - protected int marginInner = 10; //Margin from inner edge of page - protected int marginOuter = 10; //Margin from outer edge of page - protected int marginY = 20; //Margin from upper edge of page - protected boolean isTwoPages = true; //Has two pages to display text - protected float scale = 1.0F; //Scale of the text; larger values are smaller - protected int spacing = 9; //12 is a more comfortable spacing - - protected GUIPage(int x, int y, ResourceLocation texture, boolean twoPages) { - this.sizeX = x; - this.sizeY = y; - this.texture = texture; - this.isTwoPages = twoPages; - } - - protected GUIPage(int x, int y, ResourceLocation texture) { - this.sizeX = x; - this.sizeY = y; - this.texture = texture; - } - - protected GUIPage setUV(int u, int v) { - this.u = u; - this.v = v; - return this; - } - - protected GUIPage setScale(float scale) { - this.scale = scale; - return this; - } - - protected GUIPage setMargins(int inner, int outer, int upper) { - this.marginInner = inner; - this.marginOuter = outer; - this.marginY = upper; - return this; - } - - protected GUIPage setSpacing(int spacing) { - this.spacing = spacing; - return this; - } - - protected void renderText(String text, FontRenderer renderer, int left, int top, boolean secondPage) { - int width = (isTwoPages ? sizeX / 2 : sizeX) - marginInner - marginOuter; - int widthScaled = (int) (width * scale); - - List lines = new ArrayList(); - String[] words = text.split(" "); - - lines.add(words[0]); - int indent = renderer.getStringWidth(words[0]); - - for(int w = 1; w < words.length; w++) { - - if(words[w].equals("$")) { - if(w + 1 < words.length && !words[w + 1].equals("$")) { - lines.add(words[++w]); - indent = renderer.getStringWidth(words[w]); - } else - lines.add(""); - - continue; - } - - indent += renderer.getStringWidth(" " + words[w]); - - if(indent <= widthScaled) { - String last = lines.get(lines.size() - 1); - lines.set(lines.size() - 1, last += (" " + words[w])); - } else { - lines.add(words[w]); - indent = renderer.getStringWidth(words[w]); - } - } - - GL11.glPushMatrix(); - GL11.glScalef(1F/scale, 1F/scale, 1F); - - int sideOffset = secondPage ? sizeX / 2 + marginInner : marginOuter; - - for(int l = 0; l < lines.size(); l++) { - renderer.drawString(lines.get(l), (int)((left + sideOffset) * scale), (int)((top + marginY) * scale + (spacing * l)), 4210752); - } - - GL11.glPopMatrix(); - } - } - - private static class GUIPageButton { - protected ResourceLocation texture; - - protected int sizeX; //size of a single button; full texture is 2*sizeX : 2*sizeZ - protected int sizeY; - protected int x; //x position on page, relative to edge of the page it is on. - protected int y; //y position on page, relative to the top edge of the page. - - /* Left, Unsel | Right, Unsel - * Left, Sel | Right, Sel - */ - protected int u = 0; //upper lefthand corner where the button textures lie. - protected int v = 0; //assumes uniform size for each. - protected int sizeU = sizeX * 2; //Size of UV texture - protected int sizeV = sizeY * 2; - - protected GUIPageButton(int sizeX, int sizeY, int x, int y, ResourceLocation tex) { - this.sizeX = sizeX; - this.sizeY = sizeY; - this.x = x; - this.y = y; - this.texture = tex; - } - - protected GUIPageButton setUV(int u, int v, int sizeU, int sizeV) { - this.u = u; - this.v = v; - this.sizeU = sizeU; - this.sizeV = sizeV; - return this; - } - - protected void renderButton(GuiScreen screen, int width, int left, int top, boolean rightPage, int i, int j) { - Minecraft.getMinecraft().getTextureManager().bindTexture(texture); - boolean overY = j >= top + y && j < top + y + sizeY; - - if(!rightPage) { - if(i >= left + x && i < left + x + sizeX && overY) { - func_146110_a(left + x, top + y, u, v + sizeY, sizeX, sizeY, sizeU, sizeV); - } else { - func_146110_a(left + x, top + y, u, v, sizeX, sizeY, sizeU, sizeV); - } - } else { - if(i >= left + width - x - sizeX && i < left + width - x && overY) { - func_146110_a(left + width - x - sizeX, top + y, u + sizeX, v + sizeY, sizeX, sizeY, sizeU, sizeV); - } else { - func_146110_a(left + width - x - sizeX, top + y, u + sizeX, v, sizeX, sizeY, sizeU, sizeV); - } - } - } - - protected int handleInput(int width, int left, int top, boolean rightPage, int i, int j) { - boolean overY = j >= top + y && j < top + y + sizeY; - if(!rightPage) { - if(i >= left + x && i < left + x + sizeX && overY) - return -1; - } else { - if(i >= left + width - x - sizeX && i < left + width - x && overY) - return 1; - } - - return 0; - } - } } \ No newline at end of file diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 35b9cb0d5..5454ea196 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -5355,7 +5355,7 @@ public class ModItems { record_glass = new ItemModRecord("glass").setUnlocalizedName("record_glass").setCreativeTab(null).setTextureName(RefStrings.MODID + ":record_glass"); book_guide = new ItemGuideBook().setUnlocalizedName("book_guide").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":book_guide"); - book_lore = new ItemBookLore().setUnlocalizedName("book_lore").setCreativeTab(null).setTextureName(RefStrings.MODID + ":holotape"); + book_lore = new ItemBookLore().setUnlocalizedName("book_lore").setCreativeTab(null).setTextureName(RefStrings.MODID + ":book_pages"); holotape_image = new ItemHolotapeImage().setUnlocalizedName("holotape_image").setCreativeTab(null).setTextureName(RefStrings.MODID + ":holotape"); holotape_damaged = new Item().setUnlocalizedName("holotape_damaged").setCreativeTab(null).setTextureName(RefStrings.MODID + ":holotape_damaged"); diff --git a/src/main/java/com/hbm/items/special/ItemBookLore.java b/src/main/java/com/hbm/items/special/ItemBookLore.java index b34aa2598..805b5c7c1 100644 --- a/src/main/java/com/hbm/items/special/ItemBookLore.java +++ b/src/main/java/com/hbm/items/special/ItemBookLore.java @@ -3,7 +3,6 @@ package com.hbm.items.special; import java.util.List; import com.hbm.inventory.gui.GUIBookLore; -import com.hbm.inventory.gui.GUIBookLore.GUIAppearance; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.tileentity.IGUIProvider; @@ -58,31 +57,53 @@ public class ItemBookLore extends Item implements IGUIProvider { return "book_lore." + type.keyI18n; } - protected IIcon[] icons; + //Textures - public final static String[] itemTextures = new String[] { ":book_guide", ":paper_loose", ":papers_loose", ":notebook" }; + @SideOnly(Side.CLIENT) protected IIcon[] overlays; + @Override @SideOnly(Side.CLIENT) public void registerIcons(IIconRegister reg) { - String[] iconStrings = itemTextures; - this.icons = new IIcon[itemTextures.length]; + super.registerIcons(reg); - for(int i = 0; i < icons.length; i++) { - this.icons[i] = reg.registerIcon(RefStrings.MODID + itemTextures[i]); + this.overlays = new IIcon[2]; + this.overlays[0] = reg.registerIcon(RefStrings.MODID + ":book_cover"); + this.overlays[1] = reg.registerIcon(RefStrings.MODID + ":book_title"); + } + + @Override + @SideOnly(Side.CLIENT) + public boolean requiresMultipleRenderPasses() { return true; } + + @Override + public int getRenderPasses(int metadata) { return 3; } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIconFromDamageForRenderPass(int meta, int pass) { + if(pass == 0) return this.itemIcon; + return overlays[pass - 1]; + } + + @Override + @SideOnly(Side.CLIENT) + public int getColorFromItemStack(ItemStack stack, int pass) { + switch(pass) { + default: return 0xFFFFFF; + case 1: //book cover + if(stack.hasTagCompound()) { + int color = stack.stackTagCompound.getInteger("cov_col"); + if(color > 0) return color; + } + return 0x303030; + case 2: //title color + if(stack.hasTagCompound()) { + int color = stack.stackTagCompound.getInteger("tit_col"); + if(color > 0) return color; + } + return 0xFFFFFF; } } - - @Override - public IIcon getIconIndex(ItemStack stack) { - return this.getIcon(stack, 1); - } - - @Override - public IIcon getIcon(ItemStack stack, int pass) { - BookLoreType type = BookLoreType.getTypeFromStack(stack); - - return this.icons[type.appearance.itemTexture]; - } @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { @@ -96,57 +117,51 @@ public class ItemBookLore extends Item implements IGUIProvider { } public enum BookLoreType { - TEST(true, "test", 5, GUIAppearance.NOTEBOOK), - BOOK_IODINE(true, "book_iodine", 3, GUIAppearance.LOOSEPAPERS) { + TEST(true, "test", 5), + BOOK_IODINE(true, "book_iodine", 3) { public String resolveKey(String key, NBTTagCompound tag) { return I18nUtil.resolveKey(key, tag.getInteger("mku_slot")); }}, - BOOK_PHOSPHOROUS(true, "book_phosphorous", 2, GUIAppearance.LOOSEPAPERS) { + BOOK_PHOSPHOROUS(true, "book_phosphorous", 2) { public String resolveKey(String key, NBTTagCompound tag) { return I18nUtil.resolveKey(key, tag.getInteger("mku_slot")); }}, - BOOK_DUST(true, "book_dust", 3, GUIAppearance.LOOSEPAPERS) { + BOOK_DUST(true, "book_dust", 3) { public String resolveKey(String key, NBTTagCompound tag) { return I18nUtil.resolveKey(key, tag.getInteger("mku_slot")); }}, - BOOK_MERCURY(true, "book_mercury", 2, GUIAppearance.LOOSEPAPERS) { + BOOK_MERCURY(true, "book_mercury", 2) { public String resolveKey(String key, NBTTagCompound tag) { return I18nUtil.resolveKey(key, tag.getInteger("mku_slot")); }}, - BOOK_FLOWER(true, "book_flower", 2, GUIAppearance.LOOSEPAPERS) { + BOOK_FLOWER(true, "book_flower", 2) { public String resolveKey(String key, NBTTagCompound tag) { return I18nUtil.resolveKey(key, tag.getInteger("mku_slot")); }}, - BOOK_SYRINGE(true, "book_syringe", 2, GUIAppearance.LOOSEPAPERS) { + BOOK_SYRINGE(true, "book_syringe", 2) { public String resolveKey(String key, NBTTagCompound tag) { return I18nUtil.resolveKey(key, tag.getInteger("mku_slot")); }}, - RESIGNATION_NOTE(true, "resignation_note", 3, GUIAppearance.NOTEBOOK), - MEMO_STOCKS(false, "memo_stocks", 1, GUIAppearance.LOOSEPAPER), - MEMO_SCHRAB_GSA(false, "memo_schrab_gsa", 2, GUIAppearance.LOOSEPAPERS), - MEMO_SCHRAB_RD(false, "memo_schrab_rd", 4, GUIAppearance.LOOSEPAPERS), - MEMO_SCHRAB_NUKE(true, "memo_schrab_nuke", 3, GUIAppearance.LOOSEPAPERS), + RESIGNATION_NOTE(true, "resignation_note", 3), + MEMO_STOCKS(false, "memo_stocks", 1), + MEMO_SCHRAB_GSA(false, "memo_schrab_gsa", 2), + MEMO_SCHRAB_RD(false, "memo_schrab_rd", 4), + MEMO_SCHRAB_NUKE(true, "memo_schrab_nuke", 3), ; - //Why? it's quite simple; i am too burnt out and also doing it the other way - //is too inflexible for my taste - public final GUIAppearance appearance; //gui and item texture appearance - public boolean hasAuthor = false; public final String keyI18n; public final int pages; - private BookLoreType(Boolean author, String key, int max, GUIAppearance appearance) { + private BookLoreType(Boolean author, String key, int max) { this.hasAuthor = author; this.keyI18n = key; this.pages = max; - this.appearance = appearance; } - private BookLoreType(String key, int max, GUIAppearance appearance) { + private BookLoreType(String key, int max) { this.keyI18n = key; this.pages = max; - this.appearance = appearance; } /** Function to resolve I18n keys using potential save-dependent information, a la format specifiers. */ diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index cec6b2cbc..539596cf5 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -323,68 +323,68 @@ book.starter.page18=vær is just a guy who has been trapped in the grey void fea book_lore.author=By %s book_lore.test.name=Test book_lore.test.author=the dude -book_lore.test.page.1=>hello anons before i begin let me clarify that i'm not gay. >Be me >This night >18 > At hanging out with my best friend with my parents gone for a few days >We've been best friends for a year now >Been drinking a bit and playing lots of video games and ordered a pizza >We were having a blast >At a certain point in the night like around 9:00 he makes a really funny joke that I don't remember but I know that it made us both laugh really hard > With out thinking I brush my right hand through his semi-curly black hair and call him a funny boy >He blushes >I realize I'm feeling flustered >We're kinda close >All of the sudden he kisses me and for some reason I kiss him back >We make love >Cuddle together and fall asleep >Wake up in the middle of the night with his head snuggled up on my chest and neck area >It feels nice but I'm not a homosexual -book_lore.test.page.2=I'm typing this as he's asleep in my arms. How do I let my best friend down nicely? I don't want to be a [redacted] /b/ -book_lore.test.page.3=3 -book_lore.test.page.4=4 -book_lore.test.page.5=5 +book_lore.test.page.0=>hello anons before i begin let me clarify that i'm not gay. >Be me >This night >18 > At hanging out with my best friend with my parents gone for a few days >We've been best friends for a year now >Been drinking a bit and playing lots of video games and ordered a pizza >We were having a blast >At a certain point in the night like around 9:00 he makes a really funny joke that I don't remember but I know that it made us both laugh really hard > With out thinking I brush my right hand through his semi-curly black hair and call him a funny boy >He blushes >I realize I'm feeling flustered >We're kinda close >All of the sudden he kisses me and for some reason I kiss him back >We make love >Cuddle together and fall asleep >Wake up in the middle of the night with his head snuggled up on my chest and neck area >It feels nice but I'm not a homosexual +book_lore.test.page.1=I'm typing this as he's asleep in my arms. How do I let my best friend down nicely? I don't want to be a [redacted] /b/ +book_lore.test.page.2=3 +book_lore.test.page.3=4 +book_lore.test.page.4=5 book_lore.book_iodine.name=Note book_lore.book_iodine.author=Dave -book_lore.book_iodine.page.1=alright you will not believe this, but old man weathervane finally managed to show up again since he left two weeks ago and what's more surprising is the fact that he actually decided to spill the beans on what they were doing in the canyon: -book_lore.book_iodine.page.2=apparently the morons from R&D discovered a compound that is mostly inorganic, pretty much like a toxin in nature, but get this: the dying cells will reproduce said toxin and excrete it through the skin, creating an aerosol that is highly contagious. -book_lore.book_iodine.page.3=it's just like a virus, but not a virus. the composition is weird, you can mix it in any household bottle but you do have to get the order right. the doc told me that the first ingredient which is just powdered iodine crystals goes into slot %d +book_lore.book_iodine.page.0=alright you will not believe this, but old man weathervane finally managed to show up again since he left two weeks ago and what's more surprising is the fact that he actually decided to spill the beans on what they were doing in the canyon: +book_lore.book_iodine.page.1=apparently the morons from R&D discovered a compound that is mostly inorganic, pretty much like a toxin in nature, but get this: the dying cells will reproduce said toxin and excrete it through the skin, creating an aerosol that is highly contagious. +book_lore.book_iodine.page.2=it's just like a virus, but not a virus. the composition is weird, you can mix it in any household bottle but you do have to get the order right. the doc told me that the first ingredient which is just powdered iodine crystals goes into slot %d book_lore.book_phosphorous.name=Note book_lore.book_phosphorous.author=Dave -book_lore.book_phosphorous.page.1=heyo, it's me again. i assume you got my last memo, the doc wasn't too happy about it. i'll have to do this quick, the dunderheads from R&D are currently moaning again, probably over money. again. anyway, doc weathervane found that the second -book_lore.book_phosphorous.page.2=ingredient is red phosphorous, whihc has to be mixed into slot %d +book_lore.book_phosphorous.page.0=heyo, it's me again. i assume you got my last memo, the doc wasn't too happy about it. i'll have to do this quick, the dunderheads from R&D are currently moaning again, probably over money. again. anyway, doc weathervane found that the second +book_lore.book_phosphorous.page.1=ingredient is red phosphorous, whihc has to be mixed into slot %d book_lore.book_dust.name=Note book_lore.book_dust.author=Dave -book_lore.book_dust.page.1=the doc was furious when he found out that the R&D dorks kept the one remaining sample, ranting about gross negligence this and a doomsday scenario that. i told him to chill for a minute, getting all worked up isn't good for his blood pressure, not -book_lore.book_dust.page.2=that he has much blood left to begin with. one of the R&D morons slipped some more info into last week's circular, they call their little concoction \"MKU\" whatever that means, and that it contains actual household lint. can you believe that? one of the most -book_lore.book_dust.page.3=dangerous inventions of theirs and it contains dust. strangely they also mentioned that it goes into slot %d +book_lore.book_dust.page.0=the doc was furious when he found out that the R&D dorks kept the one remaining sample, ranting about gross negligence this and a doomsday scenario that. i told him to chill for a minute, getting all worked up isn't good for his blood pressure, not +book_lore.book_dust.page.1=that he has much blood left to begin with. one of the R&D morons slipped some more info into last week's circular, they call their little concoction \"MKU\" whatever that means, and that it contains actual household lint. can you believe that? one of the most +book_lore.book_dust.page.2=dangerous inventions of theirs and it contains dust. strangely they also mentioned that it goes into slot %d book_lore.book_mercury.name=Note book_lore.book_mercury.author=Dave -book_lore.book_mercury.page.1=well that settles that. not counting the vomitting blood part, the toxicological report mostly resembles that of mercury poisoning. why? because our little mix also contains mercury! i just wonder where all that stuff comes from when being -book_lore.book_mercury.page.2=replicated by the body? whatever, the mercury goes into slot %d +book_lore.book_mercury.page.0=well that settles that. not counting the vomitting blood part, the toxicological report mostly resembles that of mercury poisoning. why? because our little mix also contains mercury! i just wonder where all that stuff comes from when being +book_lore.book_mercury.page.1=replicated by the body? whatever, the mercury goes into slot %d book_lore.book_flower.name=Note book_lore.book_flower.author=Dave -book_lore.book_flower.page.1=remember when i mentioned in my first memo that the compound is mostly anorganic? well guess what, the old man shared the fourth ingredient: ipomoea nil, a genus of flower. morning glory! it might be due to its low sulfur content, whatever might be the case, -book_lore.book_flower.page.2=it does not work with other flowers. the morning glory goes into slot %d +book_lore.book_flower.page.0=remember when i mentioned in my first memo that the compound is mostly anorganic? well guess what, the old man shared the fourth ingredient: ipomoea nil, a genus of flower. morning glory! it might be due to its low sulfur content, whatever might be the case, +book_lore.book_flower.page.1=it does not work with other flowers. the morning glory goes into slot %d book_lore.book_syringe.name=Note book_lore.book_syringe.author=Dave -book_lore.book_syringe.page.1=a little addendum to my fifth message, obviously you have to store this MKU stuff in a container. the R&D nuts used regular metal syringes that they got from medical. surplus ware i presume, they got thousands of needles just lying around. the metal -book_lore.book_syringe.page.2=syringe goes into slot %d +book_lore.book_syringe.page.0=a little addendum to my fifth message, obviously you have to store this MKU stuff in a container. the R&D nuts used regular metal syringes that they got from medical. surplus ware i presume, they got thousands of needles just lying around. the metal +book_lore.book_syringe.page.1=syringe goes into slot %d book_lore.resignation_note.name=Letter of Resignation book_lore.resignation_note.author=Kosma -book_lore.resignation_note.page.1=Management downsized our department again yesterday. Those idiots only have themselves to blame, I don't know what they were expecting after that fiasco. Who the hell leaks that sort of information? We're losing millions and -book_lore.resignation_note.page.2=it's ME who's the one out of a job now. I'M the one being asked to resign. I hope you asshats finally learn from your overabundance of mistakes and take that stick out of your ass. -book_lore.resignation_note.page.3=I'm not coming back on Friday. Just send the paycheck. +book_lore.resignation_note.page.0=Management downsized our department again yesterday. Those idiots only have themselves to blame, I don't know what they were expecting after that fiasco. Who the hell leaks that sort of information? We're losing millions and +book_lore.resignation_note.page.1=it's ME who's the one out of a job now. I'M the one being asked to resign. I hope you asshats finally learn from your overabundance of mistakes and take that stick out of your ass. +book_lore.resignation_note.page.2=I'm not coming back on Friday. Just send the paycheck. book_lore.memo_stocks.name=Intracorporate Memorandum -book_lore.memo_stocks.page.1=Investor Relations - $ $ There's been some glaring discrepancies in the figures provided for the latest quarterly report. It would be prudent for the financial department to make some adjustments, so there won't be any concern. +book_lore.memo_stocks.page.0=Investor Relations - $ $ There's been some glaring discrepancies in the figures provided for the latest quarterly report. It would be prudent for the financial department to make some adjustments, so there won't be any concern. book_lore.memo_schrab_gsa.name=Internal Memorandum -book_lore.memo_schrab_gsa.page.1=Contract Management - $ $ Legal has made a breakthrough with the DLA. They've awarded us with a 45 BILLION GSA Schedule for further procurement and research of saralloy. At current estimates, that would be at minimum -book_lore.memo_schrab_gsa.page.2=a 40%% profit on related operations, let alone the possibility of future contracts. Due to the confidential nature, all fiscal evidence is to remain private. +book_lore.memo_schrab_gsa.page.0=Contract Management - $ $ Legal has made a breakthrough with the DLA. They've awarded us with a 45 BILLION GSA Schedule for further procurement and research of saralloy. At current estimates, that would be at minimum +book_lore.memo_schrab_gsa.page.1=a 40%% profit on related operations, let alone the possibility of future contracts. Due to the confidential nature, all fiscal evidence is to remain private. book_lore.memo_schrab_rd.name=Internal Memorandum -book_lore.memo_schrab_rd.page.1=Research & Development - $ $ Our main production method of saralloy has been through the new particle accelerator. However, the energy costs are exorbitantly high compared to the amount of output. -book_lore.memo_schrab_rd.page.2=Doctor Schrabauer, however, has discovered a new interaction - called "Strange Lepton Oscillation" - that could significantly reduce costs. Through a not entirely understood process, supplied electrons are transmuted into extremely -book_lore.memo_schrab_rd.page.3=high-energy photons, through a strange charm. This is an extreme exception to many established particle conversion laws, but preliminary experiments have proved that these protons transmute into up and down quarks, eventually creating saralloy. -book_lore.memo_schrab_rd.page.4=Strangely, the prototype requires Tungsten alloyed with small amounts of saralloy. In addition, a special capacitor is required to negate the leftover positive charge. +book_lore.memo_schrab_rd.page.0=Research & Development - $ $ Our main production method of saralloy has been through the new particle accelerator. However, the energy costs are exorbitantly high compared to the amount of output. +book_lore.memo_schrab_rd.page.1=Doctor Schrabauer, however, has discovered a new interaction - called "Strange Lepton Oscillation" - that could significantly reduce costs. Through a not entirely understood process, supplied electrons are transmuted into extremely +book_lore.memo_schrab_rd.page.2=high-energy photons, through a strange charm. This is an extreme exception to many established particle conversion laws, but preliminary experiments have proved that these protons transmute into up and down quarks, eventually creating saralloy. +book_lore.memo_schrab_rd.page.3=Strangely, the prototype requires Tungsten alloyed with small amounts of saralloy. In addition, a special capacitor is required to negate the leftover positive charge. book_lore.memo_schrab_nuke.name=Research Report book_lore.memo_schrab_nuke.author=Doctor Schrabauer -book_lore.memo_schrab_nuke.page.1=Our most recent investigation led us to the effects of nuclear explosions on materials. Thanks to our grant money, we *accidentally* tested our theory on direct saralloy synthesis from uranium. -book_lore.memo_schrab_nuke.page.2=Only our cyclotron has actually created saralloy previously. However, at our underground shot at Everwerpen, miniscule traces of saralloy were found in uranium ore at the site. All pure, metallic uranium nearby had fissioned. -book_lore.memo_schrab_nuke.page.3=As such, given enough uranium ore concentrated around an explosive, or perhaps even a dirty bomb rich in waste containing fissionable material, one could hypothetically create enough saralloy to collect manually. +book_lore.memo_schrab_nuke.page.0=Our most recent investigation led us to the effects of nuclear explosions on materials. Thanks to our grant money, we *accidentally* tested our theory on direct saralloy synthesis from uranium. +book_lore.memo_schrab_nuke.page.1=Only our cyclotron has actually created saralloy previously. However, at our underground shot at Everwerpen, miniscule traces of saralloy were found in uranium ore at the site. All pure, metallic uranium nearby had fissioned. +book_lore.memo_schrab_nuke.page.2=As such, given enough uranium ore concentrated around an explosive, or perhaps even a dirty bomb rich in waste containing fissionable material, one could hypothetically create enough saralloy to collect manually. cannery.f1=[ Press F1 for help ] diff --git a/src/main/resources/assets/hbm/textures/gui/book/book_lore.png b/src/main/resources/assets/hbm/textures/gui/book/book_lore.png new file mode 100644 index 0000000000000000000000000000000000000000..c5f8a42844b16892a2f0ba92ac28e271e41c44dc GIT binary patch literal 21362 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/book_cover.png b/src/main/resources/assets/hbm/textures/items/book_cover.png new file mode 100644 index 0000000000000000000000000000000000000000..c073dfceda017919d8407bdab6cc2cfb8d2ceb6b GIT binary patch literal 244 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G|^0G|-o{rmU-|NsB(+qV}lUfi%@15kLz>|HWIimfEbFBmBG|3Aa#{Y&-( zMK}vQB8wRq_zr_GNS%G~10G|-o?c29UM@P?`IrG}JYe2E;hant5inS!jFZe$YF#O)e2QrAWz$3Dl zfr0NZ2s0kfUy%Y7wDELt4ABTadd8ZML4kw$Le!4`Gj-*iA3e%oS6c7#W2%0Gs)Vvc wg6@U5Qmzv^MG_0F;+``v?$drdS$s!6<6-8F3E{`C0?lFYboFyt=akR{0Bg%ZbpQYW literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/book_title.png b/src/main/resources/assets/hbm/textures/items/book_title.png new file mode 100644 index 0000000000000000000000000000000000000000..9513bc51beae6f61feb68855a451f736711b61e9 GIT binary patch literal 166 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucL2FMJ#}EtuWC_Lx_5uzwBN&CJ9OL}hnvd1zJ_&=>|!S3j3^ HP6 Date: Sun, 18 Jun 2023 20:11:36 +0200 Subject: [PATCH 132/432] spicy himars ammo, more glyphid crap, compressor work --- .../blocks/generic/BlockGlyphidSpawner.java | 26 +- .../hbm/blocks/machine/MachineCompressor.java | 17 + .../hbm/blocks/rail/RailStandardCurve.java | 56 + .../java/com/hbm/config/GeneralConfig.java | 2 - .../com/hbm/entity/mob/EntityGlyphid.java | 7 + .../hbm/entity/mob/EntityGlyphidScout.java | 59 +- .../com/hbm/handler/EntityEffectHandler.java | 11 +- .../java/com/hbm/handler/HbmKeybinds.java | 2 +- .../handler/nei/CrucibleAlloyingHandler.java | 4 +- .../container/ContainerCompressor.java | 63 + .../hbm/inventory/fluid/tank/FluidTank.java | 2 +- .../com/hbm/inventory/gui/GUICompressor.java | 50 + .../inventory/material/MatDistribution.java | 2 +- .../inventory/recipes/CrucibleRecipes.java | 8 +- .../com/hbm/items/machine/ItemScraps.java | 67 +- .../com/hbm/items/weapon/ItemAmmoHIMARS.java | 27 +- .../render/tileentity/RenderCompressor.java | 27 +- .../machine/TileEntityMachineCompressor.java | 30 +- .../network/TileEntityConverterRfHe.java | 2 +- .../hbm/models/machines/electrolyser.obj | 8174 +++++++++++++---- .../gui/processing/gui_compressor.png | Bin 0 -> 3119 bytes .../gui/processing/gui_electrolyser_fluid.png | Bin 0 -> 3941 bytes .../gui/processing/gui_electrolyser_metal.png | Bin 0 -> 4062 bytes .../hbm/textures/items/scraps_additive.png | Bin 0 -> 731 bytes .../hbm/textures/items/scraps_liquid.png | Bin 0 -> 697 bytes .../textures/models/machines/compressor.png | Bin 2131 -> 3463 bytes .../textures/models/machines/electrolyser.png | Bin 17310 -> 95595 bytes .../models/projectiles/himars_single_lava.png | Bin 0 -> 1547 bytes .../projectiles/himars_standard_lava.png | Bin 0 -> 860 bytes 29 files changed, 6820 insertions(+), 1816 deletions(-) create mode 100644 src/main/java/com/hbm/inventory/container/ContainerCompressor.java create mode 100644 src/main/java/com/hbm/inventory/gui/GUICompressor.java create mode 100644 src/main/resources/assets/hbm/textures/gui/processing/gui_compressor.png create mode 100644 src/main/resources/assets/hbm/textures/gui/processing/gui_electrolyser_fluid.png create mode 100644 src/main/resources/assets/hbm/textures/gui/processing/gui_electrolyser_metal.png create mode 100644 src/main/resources/assets/hbm/textures/items/scraps_additive.png create mode 100644 src/main/resources/assets/hbm/textures/items/scraps_liquid.png create mode 100644 src/main/resources/assets/hbm/textures/models/projectiles/himars_single_lava.png create mode 100644 src/main/resources/assets/hbm/textures/models/projectiles/himars_standard_lava.png diff --git a/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java b/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java index 155b256fc..a489018f1 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java +++ b/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java @@ -1,9 +1,15 @@ package com.hbm.blocks.generic; import java.util.List; +import java.util.Random; import com.hbm.entity.mob.EntityGlyphid; +import com.hbm.entity.mob.EntityGlyphidBlaster; +import com.hbm.entity.mob.EntityGlyphidBombardier; +import com.hbm.entity.mob.EntityGlyphidBrawler; import com.hbm.entity.mob.EntityGlyphidScout; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; @@ -29,21 +35,33 @@ public class BlockGlyphidSpawner extends BlockContainer { public void updateEntity() { if(!worldObj.isRemote && worldObj.getTotalWorldTime() % 60 == 0 && this.worldObj.difficultySetting != EnumDifficulty.PEACEFUL) { - - List list = worldObj.getEntitiesWithinAABB(EntityGlyphid.class, AxisAlignedBB.getBoundingBox(xCoord - 4, yCoord + 1, zCoord - 4, xCoord + 5, yCoord + 4, zCoord + 5)); + + + float soot = PollutionHandler.getPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT); + List list = worldObj.getEntitiesWithinAABB(EntityGlyphid.class, AxisAlignedBB.getBoundingBox(xCoord - 6, yCoord + 1, zCoord - 6, xCoord + 7, yCoord + 9, zCoord + 7)); if(list.size() < 3) { - EntityGlyphid glyphid = new EntityGlyphid(worldObj); + EntityGlyphid glyphid = createGlyphid(soot); glyphid.setLocationAndAngles(xCoord + 0.5, yCoord + 1, zCoord + 0.5, worldObj.rand.nextFloat() * 360.0F, 0.0F); this.worldObj.spawnEntityInWorld(glyphid); } - if(worldObj.rand.nextInt(20) == 0) { + if(worldObj.rand.nextInt(20) == 0 && soot > 0) { EntityGlyphidScout scout = new EntityGlyphidScout(worldObj); scout.setLocationAndAngles(xCoord + 0.5, yCoord + 1, zCoord + 0.5, worldObj.rand.nextFloat() * 360.0F, 0.0F); this.worldObj.spawnEntityInWorld(scout); } } } + + public EntityGlyphid createGlyphid(float soot) { + Random rand = new Random(); + + if(soot < 1) { + return rand.nextInt(5) == 0 ? new EntityGlyphidBombardier(worldObj) : new EntityGlyphid(worldObj); + } + + return rand.nextInt(5) == 0 ? new EntityGlyphidBlaster(worldObj) : new EntityGlyphidBrawler(worldObj); + } } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineCompressor.java b/src/main/java/com/hbm/blocks/machine/MachineCompressor.java index 3aa083e0b..791ad2f77 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineCompressor.java +++ b/src/main/java/com/hbm/blocks/machine/MachineCompressor.java @@ -4,8 +4,10 @@ import com.hbm.blocks.BlockDummyable; import com.hbm.tileentity.machine.TileEntityMachineCompressor; import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; public class MachineCompressor extends BlockDummyable { @@ -29,4 +31,19 @@ public class MachineCompressor extends BlockDummyable { public int getOffset() { return 2; } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + return this.standardOpenBehavior(world, x, y, z, player, 0); + } + + @Override + protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) { + return super.checkRequirement(world, x, y, z, dir, o); + } + + @Override + public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + } } diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java b/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java index bc3401b04..10bed1608 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardCurve.java @@ -142,4 +142,60 @@ public class RailStandardCurve extends BlockDummyable implements IRailNTM { this.setBlockBounds(0F, 0F, 0F, 1F, 0.125F, 1F); return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); } + + @Override + protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) { + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + dir = dir.getOpposite(); + + int dX = dir.offsetX; + int dZ = dir.offsetZ; + int rX = rot.offsetX; + int rZ = rot.offsetZ; + + return world.getBlock(x + dX, y, z + dZ).isReplaceable(world, x + dX, y, z + dZ) && + world.getBlock(x + rX, y, z + rZ).isReplaceable(world, x + rX, y, z + rZ) && + world.getBlock(x + dX + rX, y, z + dZ + rZ).isReplaceable(world, x + dX + rX, y, z + dZ + rZ) && + world.getBlock(x + dX + rX * 2, y, z + dZ + rZ * 2).isReplaceable(world, x + dX + rX * 2, y, z + dZ + rZ * 2) && + world.getBlock(x + dX * 2 + rX, y, z + dZ * 2 + rZ).isReplaceable(world, x + dX * 2 + rX, y, z + dZ * 2 + rZ) && + world.getBlock(x + dX * 2 + rX * 2, y, z + dZ * 2 + rZ * 2).isReplaceable(world, x + dX * 2 + rX * 2, y, z + dZ * 2 + rZ * 2) && + world.getBlock(x + dX * 3 + rX, y, z + dZ * 3 + rZ).isReplaceable(world, x + dX * 3 + rX, y, z + dZ * 3 + rZ) && + world.getBlock(x + dX * 3 + rX * 2, y, z + dZ * 3 + rZ * 2).isReplaceable(world, x + dX * 3 + rX * 2, y, z + dZ * 3 + rZ * 2) && + world.getBlock(x + dX * 2 + rX * 3, y, z + dZ * 2 + rZ * 3).isReplaceable(world, x + dX * 2 + rX * 3, y, z + dZ * 2 + rZ * 3) && + world.getBlock(x + dX * 3 + rX * 3, y, z + dZ * 3 + rZ * 3).isReplaceable(world, x + dX * 3 + rX * 3, y, z + dZ * 3 + rZ * 3) && + world.getBlock(x + dX * 4 + rX * 3, y, z + dZ * 4 + rZ * 3).isReplaceable(world, x + dX * 4 + rX * 3, y, z + dZ * 4 + rZ * 3) && + world.getBlock(x + dX * 3 + rX * 4, y, z + dZ * 3 + rZ * 4).isReplaceable(world, x + dX * 3 + rX * 4, y, z + dZ * 3 + rZ * 4) && + world.getBlock(x + dX * 4 + rX * 4, y, z + dZ * 4 + rZ * 4).isReplaceable(world, x + dX * 4 + rX * 4, y, z + dZ * 4 + rZ * 4); + } + + @Override + protected void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + + BlockDummyable.safeRem = true; + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + dir = dir.getOpposite(); + + int dX = dir.offsetX; + int dZ = dir.offsetZ; + int rX = rot.offsetX; + int rZ = rot.offsetZ; + + world.setBlock(x + dX, y, z + dZ, this, dir.ordinal(), 3); + world.setBlock(x + rX, y, z + rZ, this, rot.ordinal(), 3); + world.setBlock(x + dX + rX, y, z + dZ + rZ, this, rot.ordinal(), 3); + world.setBlock(x + dX + rX * 2, y, z + dZ + rZ * 2, this, rot.ordinal(), 3); + world.setBlock(x + dX * 2 + rX, y, z + dZ * 2 + rZ, this, dir.ordinal(), 3); + world.setBlock(x + dX * 2 + rX * 2, y, z + dZ * 2 + rZ * 2, this, dir.ordinal(), 3); + world.setBlock(x + dX * 3 + rX, y, z + dZ * 3 + rZ, this, dir.ordinal(), 3); + world.setBlock(x + dX * 3 + rX * 2, y, z + dZ * 3 + rZ * 2, this, dir.ordinal(), 3); + world.setBlock(x + dX * 2 + rX * 3, y, z + dZ * 2 + rZ * 3, this, rot.ordinal(), 3); + world.setBlock(x + dX * 3 + rX * 3, y, z + dZ * 3 + rZ * 3, this, rot.ordinal(), 3); + world.setBlock(x + dX * 4 + rX * 3, y, z + dZ * 4 + rZ * 3, this, dir.ordinal(), 3); + world.setBlock(x + dX * 3 + rX * 4, y, z + dZ * 3 + rZ * 4, this, rot.ordinal(), 3); + world.setBlock(x + dX * 4 + rX * 4, y, z + dZ * 4 + rZ * 4, this, rot.ordinal(), 3); + + BlockDummyable.safeRem = false; + } } diff --git a/src/main/java/com/hbm/config/GeneralConfig.java b/src/main/java/com/hbm/config/GeneralConfig.java index 557ca2a0c..97bdee342 100644 --- a/src/main/java/com/hbm/config/GeneralConfig.java +++ b/src/main/java/com/hbm/config/GeneralConfig.java @@ -24,7 +24,6 @@ public class GeneralConfig { public static boolean enableCrosshairs = true; public static boolean enableReflectorCompat = false; public static boolean enableRenderDistCheck = true; - public static boolean enableCustomDashKeybind = false; public static boolean enableReEval = true; public static boolean enableSilentCompStackErrors = true; public static boolean enableChunkyNEIHandler = true; @@ -82,7 +81,6 @@ public class GeneralConfig { enableCrosshairs = config.get(CATEGORY_GENERAL, "1.22_enableCrosshairs", true, "Shows custom crosshairs when an NTM gun is being held").getBoolean(true); enableReflectorCompat = config.get(CATEGORY_GENERAL, "1.24_enableReflectorCompat", false, "Enable old reflector oredict name (\"plateDenseLead\") instead of new \"plateTungCar\"").getBoolean(false); enableRenderDistCheck = config.get(CATEGORY_GENERAL, "1.25_enableRenderDistCheck", true, "Check invalid render distances (over 16, without OptiFine) and fix it").getBoolean(true); - enableCustomDashKeybind = config.get(CATEGORY_GENERAL, "1.26_enableCustomDashKeybind", false, "Enable custom dash keybind instead of shift").getBoolean(false); enableReEval = config.get(CATEGORY_GENERAL, "1.27_enableReEval", true, "Allows re-evaluating power networks on link remove instead of destroying and recreating").getBoolean(true); enableSilentCompStackErrors = config.get(CATEGORY_GENERAL, "1.28_enableSilentCompStackErrors", false, "Enabling this will disable log spam created by unregistered items in ComparableStack instances.").getBoolean(false); hintPos = CommonConfig.createConfigInt(config, CATEGORY_GENERAL, "1.29_hudOverlayPosition", "0: Top left\n1: Top right\n2: Center right\n3: Center Left", 0); diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java index 230fd56c2..bc570fe02 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java @@ -61,6 +61,12 @@ public class EntityGlyphid extends EntityMob { this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(1D); this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(5D); } + + @Override + protected Entity findPlayerToAttack() { + EntityPlayer entityplayer = this.worldObj.getClosestVulnerablePlayerToEntity(this, 32.0D); + return entityplayer != null && this.canEntityBeSeen(entityplayer) ? entityplayer : null; + } @Override public boolean attackEntityFrom(DamageSource source, float amount) { @@ -123,6 +129,7 @@ public class EntityGlyphid extends EntityMob { armor &= ~bit; armor = (byte) (armor & 0b11111); this.dataWatcher.updateObject(17, armor); + worldObj.playSoundAtEntity(this, "mob.zombie.woodbreak", 1.0F, 1.25F); break; } } diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java index ae20a35a8..181156e09 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidScout.java @@ -5,8 +5,11 @@ import com.hbm.main.ResourceManager; import com.hbm.world.feature.GlyphidHive; import net.minecraft.block.Block; +import net.minecraft.block.material.Material; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.ResourceLocation; import net.minecraft.util.Vec3; import net.minecraft.world.World; @@ -68,12 +71,33 @@ public class EntityGlyphidScout extends EntityGlyphid { this.homeZ = posZ; this.hasHome = true; } + + if(rand.nextInt(20) == 0) fleeingTick = 2; - if(this.ticksExisted > 0 && this.ticksExisted % 1200 == 0 && Vec3.createVectorHelper(posX - homeX, posY - homeY, posZ - homeZ).lengthVector() > 16) { + if(this.ticksExisted > 0 && this.ticksExisted % 1200 == 0 && Vec3.createVectorHelper(posX - homeX, posY - homeY, posZ - homeZ).lengthVector() > 8) { Block b = worldObj.getBlock((int) Math.floor(posX), (int) Math.floor(posY - 1), (int) Math.floor(posZ)); - if(b.isNormalCube() && b != ModBlocks.glyphid_base) { + int accuracy = 16; + for(int i = 0; i < accuracy; i++) { + float angle = (float) Math.toRadians(360D / accuracy * i); + Vec3 rot = Vec3.createVectorHelper(0, 0, 16); + rot.rotateAroundY(angle); + Vec3 pos = Vec3.createVectorHelper(this.posX, this.posY + 1, this.posZ); + Vec3 nextPos = Vec3.createVectorHelper(this.posX + rot.xCoord, this.posY + 1, this.posZ + rot.zCoord); + MovingObjectPosition mop = this.worldObj.rayTraceBlocks(pos, nextPos); + + if(mop != null && mop.typeOfHit == mop.typeOfHit.BLOCK) { + + Block block = worldObj.getBlock(mop.blockX, mop.blockY, mop.blockZ); + + if(block == ModBlocks.glyphid_base) { + return; + } + } + } + + if(b.getMaterial() != Material.air && b.isNormalCube() && b != ModBlocks.glyphid_base) { this.setDead(); worldObj.newExplosion(this, posX, posY, posZ, 5F, false, false); GlyphidHive.generate(worldObj, (int) Math.floor(posX), (int) Math.floor(posY), (int) Math.floor(posZ), rand); @@ -82,6 +106,37 @@ public class EntityGlyphidScout extends EntityGlyphid { } } + @Override + protected void updateWanderPath() { + this.worldObj.theProfiler.startSection("stroll"); + boolean flag = false; + int pathX = -1; + int pathY = -1; + int pathZ = -1; + float maxWeight = -99999.0F; + + for(int l = 0; l < 5; ++l) { + int x = MathHelper.floor_double(this.posX + (double) this.rand.nextInt(25) - 12.0D); + int y = MathHelper.floor_double(this.posY + (double) this.rand.nextInt(11) - 5.0D); + int z = MathHelper.floor_double(this.posZ + (double) this.rand.nextInt(25) - 12.0D); + float weight = this.getBlockPathWeight(x, y, z); + + if(weight > maxWeight) { + maxWeight = weight; + pathX = x; + pathY = y; + pathZ = z; + flag = true; + } + } + + if(flag) { + this.setPathToEntity(this.worldObj.getEntityPathToXYZ(this, pathX, pathY, pathZ, 10.0F, true, false, false, true)); + } + + this.worldObj.theProfiler.endSection(); + } + @Override public void writeEntityToNBT(NBTTagCompound nbt) { super.writeEntityToNBT(nbt); diff --git a/src/main/java/com/hbm/handler/EntityEffectHandler.java b/src/main/java/com/hbm/handler/EntityEffectHandler.java index 6d6f29d5c..d3d177c43 100644 --- a/src/main/java/com/hbm/handler/EntityEffectHandler.java +++ b/src/main/java/com/hbm/handler/EntityEffectHandler.java @@ -484,16 +484,7 @@ public class EntityEffectHandler { int dashCount = armorDashCount + armorModDashCount; - boolean dashActivated = false; - - - if(!GeneralConfig.enableCustomDashKeybind) { - dashActivated = !player.capabilities.isFlying && player.isSneaking(); - } else { - dashActivated = props.getKeyPressed(EnumKeybind.DASH); - } - - //System.out.println(dashCount); + boolean dashActivated = props.getKeyPressed(EnumKeybind.DASH); if(dashCount * 30 < props.getStamina()) props.setStamina(dashCount * 30); diff --git a/src/main/java/com/hbm/handler/HbmKeybinds.java b/src/main/java/com/hbm/handler/HbmKeybinds.java index b07989f7f..6ae2507e1 100644 --- a/src/main/java/com/hbm/handler/HbmKeybinds.java +++ b/src/main/java/com/hbm/handler/HbmKeybinds.java @@ -22,7 +22,7 @@ public class HbmKeybinds { public static KeyBinding jetpackKey = new KeyBinding(category + ".toggleBack", Keyboard.KEY_C, category); public static KeyBinding hudKey = new KeyBinding(category + ".toggleHUD", Keyboard.KEY_V, category); public static KeyBinding reloadKey = new KeyBinding(category + ".reload", Keyboard.KEY_R, category); - public static KeyBinding dashKey = new KeyBinding(category + ".dash", Keyboard.KEY_F, category); + public static KeyBinding dashKey = new KeyBinding(category + ".dash", Keyboard.KEY_LSHIFT, category); public static KeyBinding trainKey = new KeyBinding(category + ".trainInv", Keyboard.KEY_R, category); public static KeyBinding craneUpKey = new KeyBinding(category + ".craneMoveUp", Keyboard.KEY_UP, category); diff --git a/src/main/java/com/hbm/handler/nei/CrucibleAlloyingHandler.java b/src/main/java/com/hbm/handler/nei/CrucibleAlloyingHandler.java index 1f2d9a359..80ccd314b 100644 --- a/src/main/java/com/hbm/handler/nei/CrucibleAlloyingHandler.java +++ b/src/main/java/com/hbm/handler/nei/CrucibleAlloyingHandler.java @@ -35,8 +35,8 @@ public class CrucibleAlloyingHandler extends TemplateRecipeHandler { public RecipeSet(CrucibleRecipe recipe) { List inputs = new ArrayList(); List outputs = new ArrayList(); - for(MaterialStack stack : recipe.input) inputs.add(ItemScraps.create(stack)); - for(MaterialStack stack : recipe.output) outputs.add(ItemScraps.create(stack)); + for(MaterialStack stack : recipe.input) inputs.add(ItemScraps.create(stack, true)); + for(MaterialStack stack : recipe.output) outputs.add(ItemScraps.create(stack, true)); this.template = new PositionedStack(new ItemStack(ModItems.crucible_template, 1, recipe.getId()), 75, 6); this.crucible = new PositionedStack(new ItemStack(ModBlocks.machine_crucible), 75, 42); diff --git a/src/main/java/com/hbm/inventory/container/ContainerCompressor.java b/src/main/java/com/hbm/inventory/container/ContainerCompressor.java new file mode 100644 index 000000000..32e147770 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerCompressor.java @@ -0,0 +1,63 @@ +package com.hbm.inventory.container; + +import com.hbm.tileentity.machine.TileEntityMachineCompressor; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerCompressor extends Container { + + private TileEntityMachineCompressor compressor; + + public ContainerCompressor(InventoryPlayer playerInv, TileEntityMachineCompressor tile) { + compressor = tile; + + //Fluid ID + this.addSlotToContainer(new Slot(tile, 0, 35, 72)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(playerInv, j + i * 9 + 9, 8 + j * 18, 122 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(playerInv, i, 8 + i * 18, 180)); + } + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return compressor.isUseableByPlayer(player); + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(index); + + if(var4 != null && var4.getHasStack()) { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if(index == 0) { + if(!this.mergeItemStack(var5, 1, this.inventorySlots.size(), true)) { + return null; + } + } else if(!this.mergeItemStack(var5, 0, 1, false)) { + return null; + } + + if(var5.stackSize == 0) { + var4.putStack((ItemStack) null); + } else { + var4.onSlotChanged(); + } + } + + return var3; + } +} diff --git a/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java b/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java index ee0dfe019..90e8b3bbf 100644 --- a/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java +++ b/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java @@ -238,7 +238,7 @@ public class FluidTank { list.add(fluid + "/" + maxFluid + "mB"); if(this.pressure != 0) { - list.add(EnumChatFormatting.RED + "" + this.pressure + "mB/l"); + list.add(EnumChatFormatting.RED + "" + this.pressure + " PU"); } type.addInfo(list); diff --git a/src/main/java/com/hbm/inventory/gui/GUICompressor.java b/src/main/java/com/hbm/inventory/gui/GUICompressor.java new file mode 100644 index 000000000..c31ee0baf --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUICompressor.java @@ -0,0 +1,50 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerCompressor; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.machine.TileEntityMachineCompressor; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUICompressor extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_compressor.png"); + private TileEntityMachineCompressor solidifier; + + public GUICompressor(InventoryPlayer invPlayer, TileEntityMachineCompressor tedf) { + super(new ContainerCompressor(invPlayer, tedf)); + solidifier = tedf; + + this.xSize = 176; + this.ySize = 204; + } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + + //solidifier.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 35, guiTop + 36, 16, 52); + //this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 134, guiTop + 18, 16, 52, solidifier.power, solidifier.maxPower); + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + + String name = this.solidifier.hasCustomInventoryName() ? this.solidifier.getInventoryName() : I18n.format(this.solidifier.getInventoryName()); + + this.fontRendererObj.drawString(name, 70 - this.fontRendererObj.getStringWidth(name) / 2, 6, 0xC7C1A3); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + } +} diff --git a/src/main/java/com/hbm/inventory/material/MatDistribution.java b/src/main/java/com/hbm/inventory/material/MatDistribution.java index a8793dc1c..11a636399 100644 --- a/src/main/java/com/hbm/inventory/material/MatDistribution.java +++ b/src/main/java/com/hbm/inventory/material/MatDistribution.java @@ -69,7 +69,7 @@ public class MatDistribution extends SerializableRecipe { registerOre(OreDictManager.AL.ore(), MAT_ALUMINIUM, INGOT.q(2), MAT_STONE, QUART.q(1)); } - registerOre(OreDictManager.COAL.ore(), MAT_COAL, GEM.q(4), MAT_STONE, QUART.q(1)); + registerOre(OreDictManager.COAL.ore(), MAT_CARBON, GEM.q(3), MAT_STONE, QUART.q(1)); registerOre(OreDictManager.GOLD.ore(), MAT_GOLD, INGOT.q(2), MAT_LEAD, NUGGET.q(3), MAT_STONE, QUART.q(1)); registerOre(OreDictManager.U.ore(), MAT_URANIUM, INGOT.q(2), MAT_LEAD, NUGGET.q(3), MAT_STONE, QUART.q(1)); registerOre(OreDictManager.TH232.ore(), MAT_THORIUM, INGOT.q(2), MAT_URANIUM, NUGGET.q(3), MAT_STONE, QUART.q(1)); diff --git a/src/main/java/com/hbm/inventory/recipes/CrucibleRecipes.java b/src/main/java/com/hbm/inventory/recipes/CrucibleRecipes.java index 1c87197ba..fecbd9e20 100644 --- a/src/main/java/com/hbm/inventory/recipes/CrucibleRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CrucibleRecipes.java @@ -248,7 +248,7 @@ public class CrucibleRecipes extends SerializableRecipe { if(!ores.isEmpty()) { List stacks = new ArrayList(); - stacks.add(ItemScraps.create(new MaterialStack(convert, (int) (shape.q(1) * out / in)))); + stacks.add(ItemScraps.create(new MaterialStack(convert, (int) (shape.q(1) * out / in)), true)); map.put(new OreDictStack(name), stacks); } } @@ -257,7 +257,7 @@ public class CrucibleRecipes extends SerializableRecipe { for(Entry> entry : Mats.materialOreEntries.entrySet()) { List stacks = new ArrayList(); for(MaterialStack mat : entry.getValue()) { - stacks.add(ItemScraps.create(mat)); + stacks.add(ItemScraps.create(mat, true)); } map.put(new OreDictStack(entry.getKey()), stacks); } @@ -265,7 +265,7 @@ public class CrucibleRecipes extends SerializableRecipe { for(Entry> entry : Mats.materialEntries.entrySet()) { List stacks = new ArrayList(); for(MaterialStack mat : entry.getValue()) { - stacks.add(ItemScraps.create(mat)); + stacks.add(ItemScraps.create(mat, true)); } map.put(entry.getKey().copy(), stacks); } @@ -293,7 +293,7 @@ public class CrucibleRecipes extends SerializableRecipe { for(Mold mold : ItemMold.molds) { ItemStack out = mold.getOutput(material); if(out != null) { - ItemStack scrap = ItemScraps.create(new MaterialStack(material, mold.getCost())); + ItemStack scrap = ItemScraps.create(new MaterialStack(material, mold.getCost()), true); ItemStack shape = new ItemStack(ModItems.mold, 1, mold.id); ItemStack basin = new ItemStack(mold.size == 0 ? ModBlocks.foundry_mold : mold.size == 1 ? ModBlocks.foundry_basin : Blocks.fire); ItemStack[] entry = new ItemStack[] {scrap, shape, basin, out}; diff --git a/src/main/java/com/hbm/items/machine/ItemScraps.java b/src/main/java/com/hbm/items/machine/ItemScraps.java index 3e6134ffa..5c3436148 100644 --- a/src/main/java/com/hbm/items/machine/ItemScraps.java +++ b/src/main/java/com/hbm/items/machine/ItemScraps.java @@ -9,25 +9,39 @@ import com.hbm.inventory.material.Mats; import com.hbm.inventory.material.Mats.MaterialStack; import com.hbm.items.ModItems; import com.hbm.items.special.ItemAutogen; +import com.hbm.lib.RefStrings; import com.hbm.util.I18nUtil; import com.hbm.inventory.material.NTMMaterial; import com.hbm.inventory.material.NTMMaterial.SmeltingBehavior; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.IIcon; import net.minecraft.util.StatCollector; public class ItemScraps extends ItemAutogen { + + @SideOnly(Side.CLIENT) public IIcon liquidIcon; + @SideOnly(Side.CLIENT) public IIcon addiviceIcon; public ItemScraps() { super(null); } + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister reg) { + super.registerIcons(reg); + this.liquidIcon = reg.registerIcon(RefStrings.MODID + ":scraps_liquid"); + this.addiviceIcon = reg.registerIcon(RefStrings.MODID + ":scraps_additive"); + } + @Override @SideOnly(Side.CLIENT) public void getSubItems(Item item, CreativeTabs tab, List list) { @@ -38,8 +52,48 @@ public class ItemScraps extends ItemAutogen { } } + @Override + @SideOnly(Side.CLIENT) + public int getColorFromItemStack(ItemStack stack, int layer) { + + if(stack.hasTagCompound() && stack.stackTagCompound.getBoolean("liquid")) { + + NTMMaterial mat = Mats.matById.get(stack.getItemDamage()); + + if(mat != null) { + return mat.moltenColor; + } + } + + return super.getColorFromItemStack(stack, layer); + } + + @SideOnly(Side.CLIENT) + public IIcon getIconIndex(ItemStack stack) { + + if(stack.hasTagCompound() && stack.stackTagCompound.getBoolean("liquid")) { + + NTMMaterial mat = Mats.matById.get(stack.getItemDamage()); + + if(mat != null) { + if(mat.smeltable == mat.smeltable.SMELTABLE) return this.liquidIcon; + if(mat.smeltable == mat.smeltable.ADDITIVE) return this.addiviceIcon; + } + } + + return this.getIconFromDamage(stack.getItemDamage()); + } + @Override public String getItemStackDisplayName(ItemStack stack) { + + if(stack.hasTagCompound() && stack.stackTagCompound.getBoolean("liquid")) { + MaterialStack contents = getMats(stack); + if(contents != null) { + return I18nUtil.resolveKey(contents.material.getUnlocalizedName()); + } + } + return ("" + StatCollector.translateToLocal(this.getUnlocalizedNameInefficiently(stack) + ".name")).trim(); } @@ -48,7 +102,13 @@ public class ItemScraps extends ItemAutogen { MaterialStack contents = getMats(stack); if(contents != null) { - list.add(I18nUtil.resolveKey(contents.material.getUnlocalizedName()) + ", " + Mats.formatAmount(contents.amount, Keyboard.isKeyDown(Keyboard.KEY_LSHIFT))); + + if(stack.hasTagCompound() && stack.stackTagCompound.getBoolean("liquid")) { + list.add(Mats.formatAmount(contents.amount, Keyboard.isKeyDown(Keyboard.KEY_LSHIFT))); + if(contents.material.smeltable == contents.material.smeltable.ADDITIVE) list.add(EnumChatFormatting.DARK_RED + "Additive, not castable!"); + } else { + list.add(I18nUtil.resolveKey(contents.material.getUnlocalizedName()) + ", " + Mats.formatAmount(contents.amount, Keyboard.isKeyDown(Keyboard.KEY_LSHIFT))); + } } } @@ -69,11 +129,16 @@ public class ItemScraps extends ItemAutogen { } public static ItemStack create(MaterialStack stack) { + return create(stack, false); + } + + public static ItemStack create(MaterialStack stack, boolean liquid) { if(stack.material == null) return new ItemStack(ModItems.nothing); //why do i bother adding checks for fucking everything when they don't work ItemStack scrap = new ItemStack(ModItems.scraps, 1, stack.material.id); scrap.stackTagCompound = new NBTTagCompound(); scrap.stackTagCompound.setInteger("amount", stack.amount); + if(liquid) scrap.stackTagCompound.setBoolean("liquid", true); return scrap; } } diff --git a/src/main/java/com/hbm/items/weapon/ItemAmmoHIMARS.java b/src/main/java/com/hbm/items/weapon/ItemAmmoHIMARS.java index b3d26faf8..a33cdff56 100644 --- a/src/main/java/com/hbm/items/weapon/ItemAmmoHIMARS.java +++ b/src/main/java/com/hbm/items/weapon/ItemAmmoHIMARS.java @@ -23,6 +23,7 @@ import com.hbm.potion.HbmPotion; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; @@ -39,7 +40,7 @@ import net.minecraft.util.Vec3; public class ItemAmmoHIMARS extends Item { - public static HIMARSRocket[] itemTypes = new HIMARSRocket[ /* >>> */ 7 /* <<< */ ]; + public static HIMARSRocket[] itemTypes = new HIMARSRocket[ /* >>> */ 8 /* <<< */ ]; public static final int SMALL = 0; public static final int LARGE = 1; @@ -48,6 +49,7 @@ public class ItemAmmoHIMARS extends Item { public static final int SMALL_TB = 4; public static final int LARGE_TB = 5; public static final int SMALL_MINI_NUKE = 6; + public static final int SMALL_LAVA = 7; public ItemAmmoHIMARS() { this.setHasSubtypes(true); @@ -64,6 +66,7 @@ public class ItemAmmoHIMARS extends Item { list.add(new ItemStack(item, 1, SMALL_HE)); list.add(new ItemStack(item, 1, SMALL_WP)); list.add(new ItemStack(item, 1, SMALL_TB)); + list.add(new ItemStack(item, 1, SMALL_LAVA)); list.add(new ItemStack(item, 1, SMALL_MINI_NUKE)); list.add(new ItemStack(item, 1, LARGE)); list.add(new ItemStack(item, 1, LARGE_TB)); @@ -103,6 +106,11 @@ public class ItemAmmoHIMARS extends Item { list.add(r + "Deals nuclear damage"); list.add(r + "Destroys blocks"); break; + case SMALL_LAVA: + list.add(y + "Strength: 20"); + list.add(r + "Creates volcanic lava"); + list.add(r + "Destroys blocks"); + break; case LARGE: list.add(y + "Strength: 50"); list.add(y + "Damage modifier: 5x"); @@ -139,13 +147,13 @@ public class ItemAmmoHIMARS extends Item { public void onUpdate(EntityArtilleryRocket rocket) { } } - public static void standardExplosion(EntityArtilleryRocket rocket, MovingObjectPosition mop, float size, float rangeMod, boolean breaksBlocks) { + public static void standardExplosion(EntityArtilleryRocket rocket, MovingObjectPosition mop, float size, float rangeMod, boolean breaksBlocks, Block slag, int slagMeta) { rocket.worldObj.playSoundEffect(rocket.posX, rocket.posY, rocket.posZ, "hbm:weapon.explosionMedium", 20.0F, 0.9F + rocket.worldObj.rand.nextFloat() * 0.2F); Vec3 vec = Vec3.createVectorHelper(rocket.motionX, rocket.motionY, rocket.motionZ).normalize(); ExplosionVNT xnt = new ExplosionVNT(rocket.worldObj, mop.hitVec.xCoord - vec.xCoord, mop.hitVec.yCoord - vec.yCoord, mop.hitVec.zCoord - vec.zCoord, size); if(breaksBlocks) { xnt.setBlockAllocator(new BlockAllocatorStandard(48)); - xnt.setBlockProcessor(new BlockProcessorStandard().setNoDrop().withBlockEffect(new BlockMutatorDebris(ModBlocks.block_slag, 1))); + xnt.setBlockProcessor(new BlockProcessorStandard().setNoDrop().withBlockEffect(new BlockMutatorDebris(slag, slagMeta))); } xnt.setEntityProcessor(new EntityProcessorCross(7.5).withRangeMod(rangeMod)); xnt.setPlayerProcessor(new PlayerProcessorStandard()); @@ -163,9 +171,10 @@ public class ItemAmmoHIMARS extends Item { private void init() { /* STANDARD ROCKETS */ - this.itemTypes[SMALL] = new HIMARSRocket("standard", "himars_standard", 0) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { standardExplosion(rocket, mop, 20F, 3F, false); }}; - this.itemTypes[SMALL_HE] = new HIMARSRocket("standard_he", "himars_standard_he", 0) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { standardExplosion(rocket, mop, 20F, 3F, true); }}; - this.itemTypes[LARGE] = new HIMARSRocket("single", "himars_single", 1) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { standardExplosion(rocket, mop, 50F, 5F, true); }}; + this.itemTypes[SMALL] = new HIMARSRocket("standard", "himars_standard", 0) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { standardExplosion(rocket, mop, 20F, 3F, false, ModBlocks.slag, 1); }}; + this.itemTypes[SMALL_HE] = new HIMARSRocket("standard_he", "himars_standard_he", 0) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { standardExplosion(rocket, mop, 20F, 3F, true, ModBlocks.slag, 1); }}; + this.itemTypes[SMALL_LAVA] = new HIMARSRocket("standard_lava", "himars_standard_lava", 0) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { standardExplosion(rocket, mop, 20F, 3F, true, ModBlocks.volcanic_lava_block, 0); }}; + this.itemTypes[LARGE] = new HIMARSRocket("single", "himars_single", 1) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { standardExplosion(rocket, mop, 50F, 5F, true, ModBlocks.slag, 1); }}; this.itemTypes[SMALL_MINI_NUKE] = new HIMARSRocket("standard_mini_nuke", "himars_standard_mini_nuke", 0) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { @@ -177,7 +186,7 @@ public class ItemAmmoHIMARS extends Item { this.itemTypes[SMALL_WP] = new HIMARSRocket("standard_wp", "himars_standard_wp", 0) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { - standardExplosion(rocket, mop, 20F, 3F, false); + standardExplosion(rocket, mop, 20F, 3F, false, ModBlocks.slag, 1); ExplosionLarge.spawnShrapnels(rocket.worldObj, (int) mop.hitVec.xCoord, (int) mop.hitVec.yCoord, (int) mop.hitVec.zCoord, 30); ExplosionChaos.burn(rocket.worldObj, (int) mop.hitVec.xCoord, (int) mop.hitVec.yCoord, (int) mop.hitVec.zCoord, 20); int radius = 30; @@ -200,14 +209,14 @@ public class ItemAmmoHIMARS extends Item { this.itemTypes[SMALL_TB] = new HIMARSRocket("standard_tb", "himars_standard_tb", 0) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { - standardExplosion(rocket, mop, 20F, 10F, true); + standardExplosion(rocket, mop, 20F, 10F, true, ModBlocks.slag, 1); ExplosionLarge.spawnShrapnels(rocket.worldObj, (int) mop.hitVec.xCoord, (int) mop.hitVec.yCoord, (int) mop.hitVec.zCoord, 30); standardMush(rocket, mop, 20); }}; this.itemTypes[LARGE_TB] = new HIMARSRocket("single_tb", "himars_single_tb", 1) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { - standardExplosion(rocket, mop, 50F, 12F, true); + standardExplosion(rocket, mop, 50F, 12F, true, ModBlocks.slag, 1); ExplosionLarge.spawnShrapnels(rocket.worldObj, (int) mop.hitVec.xCoord, (int) mop.hitVec.yCoord, (int) mop.hitVec.zCoord, 30); standardMush(rocket, mop, 35); }}; diff --git a/src/main/java/com/hbm/render/tileentity/RenderCompressor.java b/src/main/java/com/hbm/render/tileentity/RenderCompressor.java index 1d6f0a04e..4c8eb0faa 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderCompressor.java +++ b/src/main/java/com/hbm/render/tileentity/RenderCompressor.java @@ -2,6 +2,7 @@ package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; +import com.hbm.blocks.BlockDummyable; import com.hbm.main.ResourceManager; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; @@ -14,11 +15,35 @@ public class RenderCompressor extends TileEntitySpecialRenderer { GL11.glPushMatrix(); GL11.glTranslated(x + 0.5D, y, z + 0.5D); GL11.glEnable(GL11.GL_LIGHTING); + + switch(tile.getBlockMetadata() - BlockDummyable.offset) { + case 3: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(0, 0F, 1F, 0F); break; + case 2: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(180, 0F, 1F, 0F); break; + } GL11.glDisable(GL11.GL_CULL_FACE); GL11.glShadeModel(GL11.GL_SMOOTH); bindTexture(ResourceManager.compressor_tex); - ResourceManager.compressor.renderAll(); + ResourceManager.compressor.renderPart("Compressor"); + + double h = (System.currentTimeMillis() * 0.005) % 6D; + + if(h > 3) h = 6 - h; + + GL11.glPushMatrix(); + GL11.glTranslated(0, h - 3, 0); + ResourceManager.compressor.renderPart("Pump"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 1.5, 0); + GL11.glRotated((System.currentTimeMillis() * -0.5) % 360, 1, 0, 0); + GL11.glTranslated(0, -1.5, 0); + ResourceManager.compressor.renderPart("Fan"); + GL11.glPopMatrix(); + GL11.glShadeModel(GL11.GL_FLAT); GL11.glEnable(GL11.GL_CULL_FACE); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java index 38afcc4fc..932e56e59 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java @@ -1,21 +1,45 @@ package com.hbm.tileentity.machine; +import com.hbm.inventory.container.ContainerCompressor; +import com.hbm.inventory.gui.GUICompressor; +import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; -public class TileEntityMachineCompressor extends TileEntityMachineBase { +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.world.World; + +public class TileEntityMachineCompressor extends TileEntityMachineBase implements IGUIProvider { public TileEntityMachineCompressor() { - super(0); + super(1); } @Override public String getName() { - return null; + return "container.machineCompressor"; } @Override public void updateEntity() { + if(!worldObj.isRemote) { + + } + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerCompressor(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUICompressor(player.inventory, this); } } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityConverterRfHe.java b/src/main/java/com/hbm/tileentity/network/TileEntityConverterRfHe.java index 0949504e7..7346c5066 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityConverterRfHe.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityConverterRfHe.java @@ -40,7 +40,7 @@ public class TileEntityConverterRfHe extends TileEntityLoadedBase implements IEn return 0; if(simulate) - return 0; + return maxReceive; recursionBrake = true; diff --git a/src/main/resources/assets/hbm/models/machines/electrolyser.obj b/src/main/resources/assets/hbm/models/machines/electrolyser.obj index cb38ef317..48e2cfa01 100644 --- a/src/main/resources/assets/hbm/models/machines/electrolyser.obj +++ b/src/main/resources/assets/hbm/models/machines/electrolyser.obj @@ -1,1779 +1,6405 @@ -# Blender v2.79 (sub 0) OBJ File: '' +# Blender v2.79 (sub 0) OBJ File: 'lyser2.blend' # www.blender.org -mtllib electrolyser.mtl -o Cube.002_Cube.011 -v 1.750445 2.755059 -3.250000 -v 2.217445 0.847998 -3.250000 -v 1.717445 0.847998 -3.250000 -v 2.217445 0.847997 -2.750000 -v 1.750445 2.755059 -2.750000 -v 1.717445 0.847997 -2.750000 -v 2.250000 2.754050 -2.750000 -v 2.104444 3.109622 -2.750000 -v 2.250000 2.754050 -3.250000 -v 2.104444 3.109622 -3.250000 -v 1.255321 3.251352 -2.750000 -v 1.609638 3.604429 -2.750000 -v 1.254558 3.751828 -2.749999 -v 1.255321 3.251352 -3.250000 -v 1.609638 3.604429 -3.250000 -v 1.254558 3.751828 -3.249999 -v 0.548897 3.251829 -2.750000 -v 0.548897 3.251829 -3.250000 -v 0.548897 3.751829 -3.249999 -v 1.750445 2.755059 -1.250000 -v 2.217445 0.847997 -1.250000 -v 1.717445 0.847997 -1.250000 -v 2.217445 0.847997 -0.750000 -v 1.750445 2.755059 -0.750000 -v 1.717445 0.847997 -0.750000 -v 2.250000 2.754050 -0.750000 -v 2.104444 3.109622 -0.750000 -v 2.250000 2.754050 -1.250000 -v 2.104444 3.109622 -1.250000 -v 1.255321 3.251351 -0.749999 -v 1.609638 3.604428 -0.749999 -v 1.254558 3.751828 -0.749999 -v 1.255321 3.251351 -1.250000 -v 1.609638 3.604428 -1.249999 -v 1.254558 3.751828 -1.249999 -v 0.548897 3.251829 -0.749999 -v 0.548897 3.251829 -1.250000 -v 0.548897 3.751829 -1.249999 -v 1.750445 2.755059 0.750000 -v 2.217445 0.847997 0.750000 -v 1.717445 0.847997 0.750000 -v 2.217445 0.847997 1.250000 -v 1.750445 2.755059 1.250000 -v 1.717445 0.847997 1.250000 -v 2.250000 2.754050 1.250000 -v 2.104444 3.109622 1.250000 -v 2.250000 2.754050 0.750000 -v 2.104444 3.109622 0.750000 -v 1.255321 3.251351 1.250000 -v 1.609638 3.604428 1.250001 -v 1.254558 3.751828 1.250001 -v 1.255321 3.251351 0.750001 -v 1.609638 3.604428 0.750001 -v 1.254558 3.751828 0.750001 -v 0.548897 3.251829 1.250000 -v 0.548897 3.251829 0.750001 -v 0.548897 3.751829 0.750001 -v 1.750445 2.755059 2.750000 -v 2.217445 0.847997 2.750000 -v 1.717445 0.847997 2.750000 -v 2.217445 0.847996 3.250000 -v 1.750445 2.755059 3.250000 -v 1.717445 0.847996 3.250000 -v 2.250000 2.754050 3.250000 -v 2.104444 3.109622 3.250000 -v 2.250000 2.754050 2.750000 -v 2.104444 3.109622 2.750000 -v 1.255321 3.251351 3.250000 -v 1.609638 3.604428 3.250000 -v 1.254558 3.751827 3.250001 -v 1.255321 3.251351 2.750000 -v 1.609638 3.604428 2.750000 -v 1.254558 3.751827 2.750001 -v 0.548897 3.251828 3.250000 -v 0.548897 3.251828 2.750000 -v 0.548897 3.751828 2.750001 -v -1.500000 -0.000001 4.500000 -v -2.499999 0.000001 -4.500001 -v -1.499999 0.000001 -4.500001 -v -1.499999 1.000001 -4.499999 -v -2.500001 0.999999 4.499999 -v -1.500002 0.999999 4.500000 -v 2.500001 1.000001 -4.499998 -v 2.500000 -0.000001 4.500000 -v 2.500000 0.000001 -4.500000 -v -2.500000 -0.000001 4.500000 -v -2.500000 1.000001 -4.500000 -v 1.500002 1.000001 -4.499999 -v 1.500001 0.000001 -4.500000 -v 2.499999 0.999999 4.500003 -v 1.500000 -0.000001 4.500000 -v 1.499998 0.999999 4.500001 -v -0.750001 2.249999 4.050001 -v 0.750000 2.360113 -3.175483 -v 0.587706 3.889888 -3.175482 -v 0.750000 3.889888 -3.175482 -v 0.750001 2.250001 -4.049997 -v 0.750000 2.250000 0.000001 -v -0.750000 2.250000 0.000000 -v -0.551251 3.999999 3.857973 -v -0.551250 3.807398 -3.857970 -v -0.551250 4.000000 -3.857970 -v 0.749999 2.360112 3.912016 -v 0.587704 3.889886 3.912017 -v 0.749999 3.889886 3.912017 -v 0.587706 2.360114 -3.912014 -v 0.587706 2.360113 -3.175483 -v 0.551250 4.000000 -3.857970 -v -0.750000 4.000000 -4.049997 -v 0.551249 3.999999 3.857974 -v -0.750001 3.999999 4.050001 -v 0.749999 3.999999 4.050002 -v 0.750000 4.000000 0.000002 -v -0.750000 4.000000 0.000001 -v 0.551249 3.807396 3.857974 -v 0.551250 3.807398 -3.857970 -v -0.551251 3.807396 3.857973 -v -0.750001 3.889887 2.162985 -v -0.587706 3.889887 2.899516 -v -0.750001 3.889887 2.899516 -v 0.749999 2.360112 3.175485 -v 0.587704 2.360112 3.912016 -v -0.587706 2.360112 2.899515 -v -0.750001 2.360112 2.899515 -v 0.749999 3.889887 2.899517 -v 0.587705 3.889887 2.162986 -v 0.749999 3.889887 2.162986 -v -0.750001 2.360113 2.162984 -v -0.587706 3.889887 2.162985 -v 0.749999 2.249999 4.050002 -v 0.587705 2.360113 2.162986 -v 0.749999 2.360113 2.162986 -v -0.587706 2.360113 2.162984 -v 0.749999 2.360112 2.899517 -v 0.587704 3.889887 2.899517 -v 0.750000 3.889887 -1.150482 -v 0.587705 3.889887 -1.887013 -v 0.750000 3.889887 -1.887013 -v 0.587704 2.360112 2.899517 -v 0.587705 2.360113 -1.887014 -v 0.750000 2.360113 -1.887014 -v 0.750000 2.250000 -3.037498 -v 0.750001 4.000000 -4.049997 -v 0.750001 2.360114 -3.912014 -v 0.750000 4.000000 -3.037497 -v 0.750001 3.889888 -3.912013 -v -0.750001 2.250000 3.037500 -v -0.750001 2.360112 3.912015 -v -0.750001 2.360112 3.175484 -v -0.750001 4.000000 3.037501 -v -0.750001 3.889886 3.912016 -v -0.750001 3.889887 3.175485 -v -0.750000 2.360113 -0.874515 -v -0.750000 2.250000 -1.012499 -v -0.750000 2.360113 -0.137984 -v -0.750000 4.000000 -1.012498 -v -0.750000 3.889887 -0.137983 -v -0.750000 3.889887 -0.874514 -v 0.750000 2.360113 0.874516 -v 0.750000 2.250000 1.012501 -v 0.750000 2.360113 0.137986 -v 0.750000 3.889887 0.874517 -v 0.750000 3.889887 0.137987 -v 0.750000 4.000000 1.012502 -v 0.749999 2.250000 2.025002 -v 0.749999 2.250000 3.037502 -v 0.749999 4.000000 2.025002 -v 0.749999 4.000000 3.037502 -v -0.750000 2.250000 -3.037498 -v -0.750000 2.360113 -2.162983 -v -0.750000 2.360113 -2.899513 -v -0.750000 4.000000 -2.024998 -v -0.750000 2.250000 -2.024998 -v -0.750000 4.000000 -3.037498 -v -0.750000 3.889887 -2.162983 -v -0.750000 3.889888 -2.899513 -v -0.750001 2.250000 1.012500 -v -0.750001 2.360113 1.887015 -v -0.750001 2.360113 1.150485 -v -0.750001 4.000000 2.025001 -v -0.750001 2.250000 2.025001 -v -0.750001 4.000000 1.012501 -v -0.750001 3.889887 1.887016 -v -0.750001 3.889887 1.150486 -v 0.750000 2.250000 -1.012499 -v 0.750000 2.360113 -1.150483 -v 0.750000 4.000000 -2.024998 -v 0.750000 2.250000 -2.024998 -v 0.750000 4.000000 -1.012498 -v 0.750000 2.360113 -0.137984 -v 0.750000 2.360113 -0.874514 -v 0.750000 3.889887 -0.137983 -v 0.750000 3.889887 -0.874513 -v -0.750001 2.360113 0.874516 -v -0.750000 2.360113 0.137985 -v -0.750001 3.889887 0.874517 -v -0.750000 3.889887 0.137986 -v -0.750000 2.360114 -3.912014 -v -0.750000 2.250001 -4.049997 -v -0.750000 2.360113 -3.175483 -v -0.750000 3.889888 -3.175482 -v -0.750000 3.889888 -3.912013 -v 0.749999 3.889887 3.175486 -v 0.749999 2.360113 1.887016 -v 0.750000 2.360113 1.150486 -v 0.749999 3.889887 1.887017 -v 0.750000 3.889887 1.150487 -v -0.750000 2.360113 -1.887014 -v -0.750000 2.360113 -1.150484 -v -0.750000 3.889887 -1.150483 -v -0.750000 3.889887 -1.887013 -v 0.750000 2.360113 -2.162982 -v 0.750000 2.360113 -2.899513 -v 0.750000 3.889887 -2.162982 -v 0.750000 3.889888 -2.899513 -v -0.587706 2.360112 3.912015 -v -0.587706 3.889887 3.175485 -v -0.587706 2.360112 3.175484 -v -0.587705 2.360113 -0.137984 -v -0.587705 3.889887 -0.874514 -v -0.587705 2.360113 -0.874515 -v 0.587705 2.360113 0.137986 -v 0.587705 3.889887 0.874517 -v 0.587705 2.360113 0.874516 -v -0.587705 2.360113 -2.162983 -v -0.587705 3.889888 -2.899513 -v -0.587705 2.360113 -2.899513 -v -0.587706 2.360113 1.887015 -v -0.587706 3.889887 1.150486 -v -0.587706 2.360113 1.150485 -v 0.587705 3.889887 -1.150482 -v 0.587705 2.360113 -1.150483 -v 0.587705 2.360113 -0.874514 -v 0.587705 3.889887 -0.137983 -v 0.587705 2.360113 -0.137984 -v -0.587706 2.360113 0.874516 -v -0.587705 3.889887 0.137986 -v -0.587705 2.360113 0.137985 -v -0.587705 2.360113 -3.175483 -v -0.587705 3.889888 -3.912013 -v -0.587705 2.360114 -3.912014 -v 0.587704 2.360112 3.175485 -v 0.587705 2.360113 1.150486 -v 0.587705 3.889887 1.887017 -v 0.587705 2.360113 1.887016 -v -0.587705 2.360113 -1.150484 -v -0.587705 3.889887 -1.887013 -v -0.587705 2.360113 -1.887014 -v 0.587706 2.360113 -2.899513 -v 0.587705 3.889887 -2.162982 -v 0.587705 2.360113 -2.162982 -v 0.587704 3.889887 3.175486 -v 0.587706 3.889888 -3.912013 -v 0.587705 3.889887 -0.874513 -v -0.587705 3.889887 -2.162983 -v 0.587706 3.889888 -2.899513 -v -0.587705 3.889887 -0.137983 -v 0.587705 3.889887 1.150487 -v -0.587706 3.889887 0.874517 -v -0.587706 3.889887 1.887016 -v 0.587705 3.889887 0.137987 -v -0.587705 3.889887 -1.150483 -v -0.587706 3.889886 3.912016 -v -0.587705 3.889888 -3.175482 -v 1.027183 1.687541 3.250000 -v 1.445061 0.972984 3.250000 -v 1.027183 0.972984 3.250000 -v 1.445061 1.687541 3.250000 -v 1.445061 0.972984 3.750000 -v 1.445061 1.687541 3.750000 -v 1.027183 0.972984 3.750000 -v 1.027183 1.687542 0.250000 -v 1.445061 0.972985 0.250000 -v 1.027183 0.972985 0.250000 -v 1.445061 1.687542 0.250000 -v 1.445061 0.972985 0.750001 -v 1.445061 1.687542 0.750001 -v 1.027183 0.972985 0.750001 -v 1.027183 1.687542 -0.750000 -v 1.445061 0.972985 -0.750000 -v 1.027183 0.972985 -0.750000 -v 1.445061 1.687542 -0.750000 -v 1.445061 0.972985 -0.250000 -v 1.445061 1.687542 -0.250000 -v 1.027183 0.972985 -0.250000 -v 1.027183 1.687542 -1.750000 -v 1.445061 0.972985 -1.750000 -v 1.027183 0.972985 -1.750000 -v 1.445061 1.687542 -1.750000 -v 1.445061 0.972985 -1.250000 -v 1.445061 1.687542 -1.250000 -v 1.027183 0.972985 -1.250000 -v 1.027183 1.687542 2.250000 -v 1.445061 0.972985 2.250000 -v 1.027183 0.972985 2.250000 -v 1.445061 1.687542 2.250000 -v 1.445061 0.972985 2.750000 -v 1.445061 1.687541 2.750000 -v 1.027183 0.972985 2.750000 -v 1.027183 1.687542 1.250000 -v 1.445061 0.972985 1.250000 -v 1.027183 0.972985 1.250000 -v 1.445061 1.687542 1.250000 -v 1.445061 0.972985 1.750000 -v 1.445061 1.687542 1.750000 -v 1.027183 0.972985 1.750000 -v 1.027183 1.687542 -2.750000 -v 1.445061 0.972986 -2.750000 -v 1.027183 0.972986 -2.750000 -v 1.445061 1.687542 -2.750000 -v 1.445061 0.972985 -2.250000 -v 1.445061 1.687542 -2.250000 -v 1.027183 0.972985 -2.250000 -v 1.027183 1.687543 -3.750000 -v 1.445061 0.972986 -3.750000 -v 1.027183 0.972986 -3.750000 -v 1.445061 1.687543 -3.750000 -v 1.445061 0.972986 -3.250000 -v 1.445061 1.687542 -3.250000 -v 1.027183 0.972986 -3.250000 -v -1.445061 0.972984 3.250000 -v -1.027183 1.687541 3.250000 -v -1.027183 0.972984 3.250000 -v -1.445061 0.972984 3.750001 -v -1.445061 1.687541 3.250000 -v -1.027183 0.972984 3.750001 -v -1.445061 1.687541 3.750001 -v -1.445061 0.972985 0.250001 -v -1.027183 1.687542 0.250001 -v -1.027183 0.972985 0.250001 -v -1.445061 0.972985 0.750001 -v -1.445061 1.687542 0.250001 -v -1.027183 0.972985 0.750001 -v -1.445061 1.687542 0.750001 -v -1.445061 0.972985 -0.750000 -v -1.027183 1.687542 -0.750000 -v -1.027183 0.972985 -0.750000 -v -1.445061 0.972985 -0.249999 -v -1.445061 1.687542 -0.750000 -v -1.027183 0.972985 -0.249999 -v -1.445061 1.687542 -0.249999 -v -1.445061 0.972985 -1.750000 -v -1.027183 1.687542 -1.750000 -v -1.027183 0.972985 -1.750000 -v -1.445061 0.972985 -1.250000 -v -1.445061 1.687542 -1.750000 -v -1.027183 0.972985 -1.250000 -v -1.445061 1.687542 -1.250000 -v -1.445061 0.972985 2.250001 -v -1.027183 1.687542 2.250001 -v -1.027183 0.972985 2.250001 -v -1.445061 0.972985 2.750001 -v -1.445061 1.687542 2.250001 -v -1.027183 0.972985 2.750001 -v -1.445061 1.687541 2.750001 -v -1.445061 0.972985 1.250000 -v -1.027183 1.687542 1.250000 -v -1.027183 0.972985 1.250000 -v -1.445061 0.972985 1.750000 -v -1.445061 1.687542 1.250000 -v -1.027183 0.972985 1.750000 -v -1.445061 1.687542 1.750000 -v -1.445061 0.972986 -2.750000 -v -1.027183 1.687542 -2.750000 -v -1.027183 0.972986 -2.750000 -v -1.445061 0.972985 -2.250000 -v -1.445061 1.687542 -2.750000 -v -1.027183 0.972985 -2.250000 -v -1.445061 1.687542 -2.250000 -v -1.445061 0.972986 -3.750000 -v -1.027183 1.687543 -3.750000 -v -1.027183 0.972986 -3.750000 -v -1.445061 0.972986 -3.250000 -v -1.445061 1.687543 -3.750000 -v -1.027183 0.972986 -3.250000 -v -1.445061 1.687542 -3.250000 -v 0.548897 3.751829 -2.749999 -v 0.548897 3.751829 -0.749999 -v 0.548897 3.751829 1.250001 -v 0.548897 3.751828 3.250001 -v 1.027183 1.687541 3.750000 -v 1.027183 1.687542 0.750001 -v 1.027183 1.687542 -0.250000 -v 1.027183 1.687542 -1.250000 -v 1.027183 1.687541 2.750000 -v 1.027183 1.687542 1.750000 -v 1.027183 1.687542 -2.250000 -v 1.027183 1.687542 -3.250000 -v -1.027183 1.687541 3.750001 -v -1.027183 1.687542 0.750001 -v -1.027183 1.687542 -0.249999 -v -1.027183 1.687542 -1.250000 -v -1.027183 1.687541 2.750001 -v -1.027183 1.687542 1.750000 -v -1.027183 1.687542 -2.250000 -v -1.027183 1.687542 -3.250000 -vt 0.589324 0.739609 -vt 0.625030 0.599581 -vt 0.589324 0.599581 -vt 0.660717 0.599581 -vt 0.696427 0.739609 -vt 0.696427 0.599581 -vt 0.696520 0.869665 -vt 0.660646 0.885395 -vt 0.660646 0.854212 -vt 0.624979 0.885395 -vt 0.589350 0.869665 -vt 0.624979 0.854212 -vt 0.696513 0.869525 -vt 0.660638 0.885394 -vt 0.660639 0.854191 -vt 0.660717 0.739609 -vt 0.696427 0.802086 -vt 0.625030 0.739609 -vt 0.589324 0.802086 -vt 0.625030 0.802086 -vt 0.624971 0.885394 -vt 0.589342 0.869525 -vt 0.624971 0.854191 -vt 0.660717 0.802086 -vt 0.696427 0.853949 -vt 0.625030 0.802086 -vt 0.589324 0.853949 -vt 0.625030 0.853949 -vt 0.589324 0.739609 -vt 0.625030 0.599581 -vt 0.589324 0.599581 -vt 0.660717 0.599581 -vt 0.696427 0.739609 -vt 0.696427 0.599581 -vt 0.696514 0.869665 -vt 0.660640 0.885395 -vt 0.660640 0.854212 -vt 0.624972 0.885395 -vt 0.589343 0.869665 -vt 0.624972 0.854212 -vt 0.696516 0.869531 -vt 0.660642 0.885400 -vt 0.660642 0.854198 -vt 0.660717 0.739609 -vt 0.696427 0.802086 -vt 0.625030 0.739609 -vt 0.589324 0.802086 -vt 0.625030 0.802086 -vt 0.624974 0.885400 -vt 0.589345 0.869531 -vt 0.624974 0.854198 -vt 0.660717 0.802086 -vt 0.696427 0.853949 -vt 0.625030 0.802086 -vt 0.589324 0.853949 -vt 0.625030 0.853949 -vt 0.589324 0.739609 -vt 0.625030 0.599581 -vt 0.589324 0.599581 -vt 0.660717 0.599581 -vt 0.696427 0.739609 -vt 0.696427 0.599581 -vt 0.696513 0.869651 -vt 0.660639 0.885381 -vt 0.660639 0.854198 -vt 0.624971 0.885381 -vt 0.589342 0.869651 -vt 0.624971 0.854198 -vt 0.696516 0.869533 -vt 0.660642 0.885402 -vt 0.660642 0.854199 -vt 0.660717 0.739609 -vt 0.696427 0.802086 -vt 0.625030 0.739609 -vt 0.589324 0.802086 -vt 0.625030 0.802086 -vt 0.624974 0.885402 -vt 0.589345 0.869533 -vt 0.624974 0.854199 -vt 0.660717 0.802086 -vt 0.696427 0.853949 -vt 0.625030 0.802086 -vt 0.589324 0.853949 -vt 0.625030 0.853949 -vt 0.589324 0.739609 -vt 0.625030 0.599581 -vt 0.589324 0.599581 -vt 0.660717 0.599581 -vt 0.696427 0.739609 -vt 0.696427 0.599581 -vt 0.696523 0.869665 -vt 0.660649 0.885395 -vt 0.660649 0.854212 -vt 0.624982 0.885395 -vt 0.589353 0.869665 -vt 0.624982 0.854212 -vt 0.696516 0.869524 -vt 0.660642 0.885393 -vt 0.660642 0.854190 -vt 0.660717 0.739609 -vt 0.696427 0.802086 -vt 0.625030 0.739609 -vt 0.589324 0.802086 -vt 0.625030 0.802086 -vt 0.624974 0.885393 -vt 0.589345 0.869524 -vt 0.624974 0.854190 -vt 0.660717 0.802086 -vt 0.696427 0.853949 -vt 0.625030 0.802086 -vt 0.589324 0.853949 -vt 0.625030 0.853949 -vt 0.071429 1.000000 -vt 0.000000 0.250000 -vt 0.071429 0.250000 -vt 0.596910 0.004769 -vt 0.000595 0.081787 -vt 0.000595 0.004769 -vt 0.357143 0.250000 -vt 1.000000 0.166667 -vt 0.357143 0.166667 -vt 0.285714 0.250000 -vt 0.357143 0.166667 -vt 0.285714 0.166667 -vt 0.357143 0.250000 -vt 1.000000 0.166667 -vt 0.071429 0.250000 -vt 0.000000 0.166667 -vt 0.000000 0.250000 -vt 0.285714 0.250000 -vt 0.285714 0.166667 -vt 0.000000 0.250000 -vt 0.071429 0.166667 -vt 0.000000 0.166667 -vt 0.071429 0.250000 -vt 0.596978 0.004860 -vt 0.000595 0.081775 -vt 0.000595 0.004859 -vt 0.568726 0.729189 -vt 0.413642 0.854246 -vt 0.360755 0.729189 -vt 0.357143 1.000000 -vt 0.285714 0.250000 -vt 0.357143 0.250000 -vt 0.285714 1.000000 -vt 0.491249 0.547007 -vt 0.504420 0.713515 -vt 0.491249 0.713515 -vt 0.568721 0.729189 -vt 0.413637 0.854246 -vt 0.360750 0.729189 -vt 1.000000 0.250000 -vt 0.678507 0.374792 -vt 0.357143 0.250000 -vt 1.000000 0.250000 -vt 0.678506 0.374779 -vt 0.357143 0.250000 -vt 0.370550 0.531218 -vt 0.941964 0.515625 -vt 0.941955 0.531219 -vt 0.491245 0.547007 -vt 0.504415 0.713516 -vt 0.491244 0.713516 -vt 0.504420 0.531305 -vt 0.575836 0.547007 -vt 0.504420 0.547007 -vt 0.583990 0.054533 -vt 0.598170 0.166639 -vt 0.583990 0.149517 -vt 0.014203 0.054533 -vt 0.000000 0.166667 -vt 0.000023 0.037410 -vt 0.299097 0.037410 -vt 0.299097 0.166640 -vt 0.014204 0.149517 -vt 0.370536 0.432292 -vt 0.941955 0.432318 -vt 0.357185 0.432317 -vt 0.370550 0.515608 -vt 0.357185 0.515608 -vt 0.941955 0.416695 -vt 0.370550 0.416695 -vt 0.955193 0.515608 -vt 0.955193 0.432318 -vt 0.504416 0.729062 -vt 0.575832 0.713515 -vt 0.575832 0.729062 -vt 0.575831 0.531306 -vt 0.504415 0.547007 -vt 0.504415 0.531306 -vt 0.589268 0.713515 -vt 0.575832 0.547007 -vt 0.589268 0.547007 -vt 0.504418 0.729061 -vt 0.575835 0.713515 -vt 0.575835 0.729062 -vt 0.491245 0.547007 -vt 0.504416 0.713515 -vt 0.491245 0.713515 -vt 0.514960 0.854246 -vt 0.413642 0.999965 -vt 0.589271 0.713515 -vt 0.575835 0.547007 -vt 0.589271 0.547007 -vt 0.575832 0.531305 -vt 0.504416 0.547007 -vt 0.504416 0.531305 -vt 0.491248 0.547007 -vt 0.504418 0.713515 -vt 0.491248 0.713515 -vt 0.504424 0.729056 -vt 0.575840 0.713509 -vt 0.575840 0.729056 -vt 0.575835 0.531305 -vt 0.504419 0.547007 -vt 0.504419 0.531305 -vt 0.589277 0.713509 -vt 0.575840 0.547000 -vt 0.589276 0.547000 -vt 0.598169 0.015723 -vt 0.533590 0.025210 -vt 0.523401 0.015724 -vt 0.598170 0.166491 -vt 0.587980 0.025210 -vt 0.523401 0.166492 -vt 0.587980 0.157005 -vt 0.533591 0.157005 -vt 0.074790 0.166502 -vt 0.010211 0.157016 -vt 0.064601 0.157016 -vt 0.000022 0.015734 -vt 0.000000 0.166667 -vt 0.074790 0.015734 -vt 0.010211 0.025221 -vt 0.064601 0.025221 -vt 0.299096 0.166502 -vt 0.363675 0.157016 -vt 0.373864 0.166502 -vt 0.299096 0.015734 -vt 0.309285 0.157016 -vt 0.373864 0.015734 -vt 0.309285 0.025221 -vt 0.363675 0.025221 -vt 0.299095 0.015725 -vt 0.234516 0.025212 -vt 0.224327 0.015725 -vt 0.299096 0.166493 -vt 0.288906 0.025211 -vt 0.234517 0.157006 -vt 0.288906 0.157006 -vt 0.224327 0.166493 -vt 0.149558 0.015725 -vt 0.084979 0.025212 -vt 0.074790 0.015726 -vt 0.139369 0.157007 -vt 0.139369 0.025212 -vt 0.149559 0.166493 -vt 0.084980 0.157007 -vt 0.074790 0.166493 -vt 0.523401 0.166502 -vt 0.458822 0.157016 -vt 0.513212 0.157016 -vt 0.448633 0.015734 -vt 0.448633 0.166502 -vt 0.523401 0.015734 -vt 0.458822 0.025221 -vt 0.513212 0.025221 -vt 0.224327 0.166502 -vt 0.159748 0.157016 -vt 0.214138 0.157016 -vt 0.149559 0.015734 -vt 0.149559 0.166502 -vt 0.224327 0.015734 -vt 0.159748 0.025221 -vt 0.214138 0.025221 -vt 0.373864 0.015725 -vt 0.438443 0.025211 -vt 0.384053 0.025211 -vt 0.448633 0.166492 -vt 0.448633 0.015724 -vt 0.373864 0.166493 -vt 0.438443 0.157006 -vt 0.384054 0.157006 -vt 0.309285 0.025211 -vt 0.363674 0.025211 -vt 0.309285 0.157006 -vt 0.363675 0.157006 -vt 0.234517 0.157016 -vt 0.288906 0.157016 -vt 0.234517 0.025221 -vt 0.288906 0.025221 -vt 0.587980 0.157016 -vt 0.598170 0.166502 -vt 0.533591 0.157016 -vt 0.598170 0.015734 -vt 0.533591 0.025221 -vt 0.587980 0.025221 -vt 0.010211 0.025212 -vt 0.000022 0.015726 -vt 0.064601 0.157007 -vt 0.064600 0.025212 -vt 0.010211 0.157007 -vt 0.000000 0.166667 -vt 0.159748 0.025212 -vt 0.214137 0.025212 -vt 0.159748 0.157007 -vt 0.214138 0.157007 -vt 0.438443 0.157016 -vt 0.384054 0.157016 -vt 0.384054 0.025221 -vt 0.438443 0.025221 -vt 0.084980 0.157016 -vt 0.139369 0.157016 -vt 0.084980 0.025221 -vt 0.139369 0.025221 -vt 0.458822 0.025211 -vt 0.513211 0.025210 -vt 0.458822 0.157005 -vt 0.513212 0.157005 -vt 0.514955 0.999965 -vt 0.514955 0.854246 -vt 0.575831 0.547007 -vt 0.504414 0.713515 -vt 0.504414 0.547007 -vt 0.575836 0.547004 -vt 0.504420 0.713513 -vt 0.504420 0.547004 -vt 0.575846 0.547007 -vt 0.504430 0.713516 -vt 0.504430 0.547007 -vt 0.575823 0.547007 -vt 0.504407 0.713516 -vt 0.504407 0.547007 -vt 0.575832 0.547005 -vt 0.504415 0.713513 -vt 0.504416 0.547005 -vt 0.504424 0.713509 -vt 0.504424 0.547000 -vt 0.575835 0.547007 -vt 0.504419 0.713515 -vt 0.504419 0.547007 -vt 0.575836 0.547005 -vt 0.504420 0.713514 -vt 0.504420 0.547005 -vt 0.575833 0.547007 -vt 0.504416 0.713515 -vt 0.504416 0.547007 -vt 0.575831 0.547007 -vt 0.575840 0.547005 -vt 0.504424 0.713513 -vt 0.504424 0.547005 -vt 0.575832 0.547000 -vt 0.504416 0.713509 -vt 0.504416 0.547000 -vt 0.575830 0.547007 -vt 0.504414 0.713515 -vt 0.504414 0.547007 -vt 0.589268 0.713516 -vt 0.589268 0.547007 -vt 0.575835 0.531305 -vt 0.504419 0.531305 -vt 0.589273 0.713515 -vt 0.589273 0.547007 -vt 0.504415 0.729062 -vt 0.575831 0.713516 -vt 0.575831 0.729062 -vt 0.491248 0.547007 -vt 0.491248 0.713515 -vt 0.504420 0.729062 -vt 0.575836 0.713515 -vt 0.575836 0.729062 -vt 0.589272 0.713515 -vt 0.589272 0.547007 -vt 0.575823 0.531305 -vt 0.504407 0.531306 -vt 0.504419 0.729062 -vt 0.575835 0.713515 -vt 0.575835 0.729062 -vt 0.491237 0.547007 -vt 0.491237 0.713516 -vt 0.575830 0.531305 -vt 0.504414 0.531305 -vt 0.589260 0.713516 -vt 0.589260 0.547007 -vt 0.575836 0.531303 -vt 0.504420 0.531303 -vt 0.620737 0.000018 -vt 0.633908 0.166527 -vt 0.620737 0.166527 -vt 0.504407 0.729062 -vt 0.575823 0.713516 -vt 0.575823 0.729062 -vt 0.620743 0.000015 -vt 0.633914 0.166524 -vt 0.620743 0.166524 -vt 0.589267 0.713515 -vt 0.589267 0.547007 -vt 0.575840 0.531303 -vt 0.504424 0.531303 -vt 0.589273 0.713513 -vt 0.589273 0.547004 -vt 0.504414 0.729062 -vt 0.575830 0.713515 -vt 0.575830 0.729062 -vt 0.620747 0.000016 -vt 0.633918 0.166524 -vt 0.620747 0.166524 -vt 0.504420 0.729059 -vt 0.575836 0.713513 -vt 0.575836 0.729059 -vt 0.589276 0.713513 -vt 0.589277 0.547005 -vt 0.575836 0.531304 -vt 0.504420 0.531304 -vt 0.504424 0.729059 -vt 0.575840 0.713513 -vt 0.575840 0.729060 -vt 0.491249 0.547005 -vt 0.491250 0.713514 -vt 0.589273 0.713514 -vt 0.589273 0.547005 -vt 0.575832 0.531303 -vt 0.504416 0.531303 -vt 0.504420 0.729060 -vt 0.575836 0.713514 -vt 0.575836 0.729060 -vt 0.620739 0.000016 -vt 0.633909 0.166524 -vt 0.620739 0.166524 -vt 0.589268 0.713513 -vt 0.589268 0.547005 -vt 0.575846 0.531306 -vt 0.504430 0.531306 -vt 0.504415 0.729060 -vt 0.575832 0.713513 -vt 0.575832 0.729060 -vt 0.491259 0.547007 -vt 0.491259 0.713516 -vt 0.575832 0.531299 -vt 0.504416 0.531299 -vt 0.589282 0.713516 -vt 0.589282 0.547007 -vt 0.575831 0.531305 -vt 0.504414 0.531305 -vt 0.491245 0.547000 -vt 0.491245 0.713509 -vt 0.504430 0.729062 -vt 0.575846 0.713516 -vt 0.575846 0.729062 -vt 0.491244 0.547007 -vt 0.491244 0.713515 -vt 0.589268 0.713509 -vt 0.589268 0.547000 -vt 0.575833 0.531305 -vt 0.504416 0.531305 -vt 0.589268 0.713515 -vt 0.589268 0.547007 -vt 0.504416 0.729056 -vt 0.575832 0.713509 -vt 0.575832 0.729056 -vt 0.620745 0.000012 -vt 0.633916 0.166521 -vt 0.620745 0.166521 -vt 0.504414 0.729062 -vt 0.575831 0.713515 -vt 0.575831 0.729062 -vt 0.589269 0.713515 -vt 0.589269 0.547007 -vt 0.504424 0.531299 -vt 0.504416 0.729062 -vt 0.575832 0.713515 -vt 0.575832 0.729062 -vt 0.620747 0.000012 -vt 0.633918 0.166520 -vt 0.620747 0.166520 -vt 0.491071 0.677083 -vt 0.446398 0.593784 -vt 0.491071 0.593750 -vt 0.446429 0.677083 -vt 0.401808 0.593784 -vt 0.401808 0.677069 -vt 0.357156 0.593784 -vt 0.446398 0.729156 -vt 0.491071 0.677083 -vt 0.446401 0.593787 -vt 0.491071 0.593750 -vt 0.446429 0.677083 -vt 0.401811 0.593787 -vt 0.401811 0.677072 -vt 0.357160 0.593787 -vt 0.446401 0.729159 -vt 0.491071 0.677083 -vt 0.446398 0.593785 -vt 0.491071 0.593750 -vt 0.446429 0.677083 -vt 0.401808 0.593785 -vt 0.401808 0.677070 -vt 0.357156 0.593785 -vt 0.446398 0.729157 -vt 0.491071 0.677083 -vt 0.446406 0.593786 -vt 0.491071 0.593750 -vt 0.446429 0.677083 -vt 0.401816 0.593786 -vt 0.401816 0.677071 -vt 0.357166 0.593786 -vt 0.446406 0.729158 -vt 0.491071 0.677083 -vt 0.446405 0.593786 -vt 0.491071 0.593750 -vt 0.446429 0.677083 -vt 0.401815 0.593786 -vt 0.401815 0.677071 -vt 0.357164 0.593786 -vt 0.446405 0.729158 -vt 0.491071 0.677083 -vt 0.446403 0.593786 -vt 0.491071 0.593750 -vt 0.446429 0.677083 -vt 0.401813 0.593786 -vt 0.401813 0.677071 -vt 0.357162 0.593786 -vt 0.446403 0.729158 -vt 0.491071 0.677083 -vt 0.446406 0.593785 -vt 0.491071 0.593750 -vt 0.446429 0.677083 -vt 0.401815 0.593785 -vt 0.401815 0.677070 -vt 0.357165 0.593785 -vt 0.446406 0.729157 -vt 0.491071 0.677083 -vt 0.446398 0.593787 -vt 0.491071 0.593750 -vt 0.446429 0.677083 -vt 0.401808 0.593787 -vt 0.401808 0.677072 -vt 0.357156 0.593787 -vt 0.446398 0.729159 -vt 0.401811 0.593785 -vt 0.357160 0.677070 -vt 0.357160 0.593785 -vt 0.446401 0.593785 -vt 0.401811 0.677070 -vt 0.491071 0.593750 -vt 0.446429 0.677083 -vt 0.401811 0.729157 -vt 0.401811 0.593784 -vt 0.357160 0.677069 -vt 0.357160 0.593784 -vt 0.446401 0.593784 -vt 0.401811 0.677069 -vt 0.491071 0.593750 -vt 0.446429 0.677083 -vt 0.401811 0.729156 -vt 0.401812 0.593786 -vt 0.357161 0.677070 -vt 0.357161 0.593786 -vt 0.446402 0.593786 -vt 0.401812 0.677070 -vt 0.491071 0.593750 -vt 0.446429 0.677083 -vt 0.401812 0.729157 -vt 0.401812 0.593784 -vt 0.357161 0.677068 -vt 0.357161 0.593784 -vt 0.446402 0.593784 -vt 0.401812 0.677068 -vt 0.491071 0.593750 -vt 0.446429 0.677083 -vt 0.401812 0.729155 -vt 0.401815 0.593784 -vt 0.357165 0.677069 -vt 0.357165 0.593784 -vt 0.446406 0.593784 -vt 0.401815 0.677069 -vt 0.491071 0.593750 -vt 0.446429 0.677083 -vt 0.401815 0.729156 -vt 0.401812 0.593787 -vt 0.357161 0.677072 -vt 0.357161 0.593787 -vt 0.446402 0.593787 -vt 0.401812 0.677072 -vt 0.491071 0.593750 -vt 0.446429 0.677083 -vt 0.401812 0.729159 -vt 0.401815 0.593787 -vt 0.357165 0.677072 -vt 0.357165 0.593787 -vt 0.446406 0.593787 -vt 0.401815 0.677072 -vt 0.491071 0.593750 -vt 0.446429 0.677083 -vt 0.401815 0.729159 -vt 0.401812 0.593784 -vt 0.357161 0.677069 -vt 0.357161 0.593784 -vt 0.446402 0.593784 -vt 0.401812 0.677069 -vt 0.491071 0.593750 -vt 0.446429 0.677083 -vt 0.401812 0.729156 -vt 0.625030 0.739609 -vt 0.660717 0.739609 -vt 0.660717 0.802086 -vt 0.660717 0.853949 -vt 0.625030 0.739609 -vt 0.660717 0.739609 -vt 0.660717 0.802086 -vt 0.660717 0.853949 -vt 0.625030 0.739609 -vt 0.660717 0.739609 -vt 0.660717 0.802086 -vt 0.660717 0.853949 -vt 0.625030 0.739609 -vt 0.660717 0.739609 -vt 0.660717 0.802086 -vt 0.660717 0.853949 -vt -0.000000 1.000000 -vt 0.596910 0.081786 -vt 1.000000 0.250000 -vt 1.000000 0.250000 -vt 0.071429 0.166667 -vt 0.596978 0.081776 -vt 0.389380 0.374791 -vt 0.461662 0.374792 -vt 0.967634 0.374792 -vt 0.895352 0.374792 -vt 0.823070 0.374792 -vt 0.750788 0.374792 -vt 0.533944 0.374792 -vt 0.606225 0.374792 -vt 0.389380 0.374779 -vt 0.461662 0.374779 -vt 0.967634 0.374779 -vt 0.895354 0.374779 -vt 0.823071 0.374779 -vt 0.750787 0.374779 -vt 0.533944 0.374779 -vt 0.606225 0.374779 -vt 0.575836 0.531305 -vt 0.598170 0.037410 -vt 0.523402 0.037410 -vt 0.074792 0.037410 -vt 0.149560 0.037410 -vt 0.448634 0.037410 -vt 0.373865 0.037410 -vt 0.224328 0.037410 -vt 0.074792 0.166640 -vt 0.523402 0.166639 -vt 0.448634 0.166639 -vt 0.373865 0.166640 -vt 0.149560 0.166640 -vt 0.224328 0.166640 -vt 0.514960 0.999965 -vt 0.413637 0.999965 -vt 0.633908 0.000018 -vt 0.633914 0.000015 -vt 0.633918 0.000016 -vt 0.633910 0.000016 -vt 0.633916 0.000012 -vt 0.575840 0.531299 -vt 0.633918 0.000012 -vt 0.357156 0.677069 -vt 0.401808 0.729156 -vt 0.357160 0.677072 -vt 0.401811 0.729159 -vt 0.357156 0.677070 -vt 0.401808 0.729157 -vt 0.357166 0.677071 -vt 0.401816 0.729158 -vt 0.357164 0.677071 -vt 0.401815 0.729158 -vt 0.357162 0.677071 -vt 0.401813 0.729158 -vt 0.357165 0.677070 -vt 0.401815 0.729157 -vt 0.357156 0.677072 -vt 0.401807 0.729159 -vt 0.491071 0.677083 -vt 0.446401 0.729157 -vt 0.491071 0.677083 -vt 0.446401 0.729156 -vt 0.491071 0.677083 -vt 0.446402 0.729157 -vt 0.491071 0.677083 -vt 0.446402 0.729155 -vt 0.491071 0.677083 -vt 0.446406 0.729156 -vt 0.491071 0.677083 -vt 0.446402 0.729159 -vt 0.491071 0.677083 -vt 0.446406 0.729159 -vt 0.491071 0.677083 -vt 0.446402 0.729156 -vt 0.732143 0.598958 -vt 0.732143 0.802083 -vt 0.732143 0.739583 -vt 0.732143 0.854167 -vt 0.732143 0.598958 -vt 0.732143 0.802083 -vt 0.732143 0.739583 -vt 0.732143 0.854167 -vt 0.732143 0.598958 -vt 0.732143 0.802083 -vt 0.732143 0.739583 -vt 0.732143 0.854167 -vt 0.732143 0.598958 -vt 0.732143 0.802083 -vt 0.732143 0.739583 -vt 0.732143 0.854167 +mtllib lyser2.mtl +o Cube_Cube.001 +v 0.500000 1.000000 -5.500000 +v -0.500000 1.000000 -5.500000 +v -1.500000 0.000000 -4.500000 +v -1.500000 0.000000 -3.500000 +v -1.500000 0.000000 5.500000 +v -1.500000 1.000000 -1.500000 +v -1.500000 1.000000 -2.500000 +v -1.500000 1.000000 -3.500000 +v -1.500000 1.000000 -4.500000 +v -1.500000 1.000000 -5.500000 +v 3.500000 0.000000 5.500000 +v 3.500000 0.000000 2.500000 +v 3.500000 0.000000 1.500000 +v 3.500000 0.000000 0.500000 +v 3.500000 0.000000 -0.500000 +v 3.500000 0.000000 -1.500000 +v 3.500000 0.000000 -2.500000 +v 3.500000 0.000000 -3.500000 +v 3.500000 0.000000 -4.500000 +v 3.500000 0.000000 -5.500000 +v 3.500000 1.000000 -5.500000 +v 3.500000 1.000000 -4.500000 +v 3.500000 1.000000 -3.500000 +v 3.500000 1.000000 -2.500000 +v 3.500000 1.000000 -1.500000 +v 3.500000 1.000000 -0.500000 +v 3.500000 1.000000 0.500000 +v 3.500000 1.000000 1.500000 +v 3.500000 1.000000 2.500000 +v 3.500000 1.000000 5.500000 +v 1.500000 1.000000 -5.500000 +v 1.500000 1.000000 -4.500000 +v 1.500000 1.000000 -3.500000 +v 1.500000 1.000000 -2.500000 +v 1.500000 1.000000 -1.500000 +v 1.500000 1.000000 -0.500000 +v 1.500000 1.000000 0.500000 +v 1.500000 1.000000 1.500000 +v 1.500000 1.000000 2.500000 +v 1.250000 0.750000 5.500000 +v -1.500000 1.000000 -0.500000 +v -1.500000 1.000000 0.500000 +v -1.500000 1.000000 1.500000 +v -1.500000 1.000000 2.500000 +v -1.500000 0.000000 -5.500000 +v -1.500000 0.000000 -2.500000 +v -1.500000 0.000000 -1.500000 +v -1.500000 0.000000 -0.500000 +v -1.500000 0.000000 0.500000 +v -1.500000 0.000000 1.500000 +v -1.500000 0.000000 2.500000 +v -1.250000 0.250000 5.500000 +v 1.500000 0.000000 -5.500000 +v 1.500000 0.000000 -4.500000 +v 1.500000 0.000000 -3.500000 +v 1.500000 0.000000 -2.500000 +v 1.500000 0.000000 -1.500000 +v 1.500000 0.000000 -0.500000 +v 1.500000 0.000000 0.500000 +v 1.500000 0.000000 1.500000 +v 1.500000 0.000000 2.500000 +v 1.250000 0.250000 5.500000 +v -0.500000 0.000000 -5.500000 +v -0.500000 0.000000 -4.500000 +v -0.500000 0.000000 -3.500000 +v -0.500000 0.000000 -2.500000 +v -0.500000 0.000000 -1.500000 +v -0.500000 0.000000 -0.500000 +v -0.500000 0.000000 0.500000 +v -0.500000 0.000000 1.500000 +v -0.500000 0.000000 2.500000 +v -0.250000 0.250000 5.500000 +v 0.500000 0.000000 -5.500000 +v 0.500000 0.000000 -4.500000 +v 0.500000 0.000000 -3.500000 +v 0.500000 0.000000 -2.500000 +v 0.500000 0.000000 -1.500000 +v 0.500000 0.000000 -0.500000 +v 0.500000 0.000000 0.500000 +v 0.500000 0.000000 1.500000 +v 0.500000 0.000000 2.500000 +v 0.250000 0.250000 5.500000 +v 0.250000 3.000000 -5.250000 +v 0.375000 3.000000 -4.500000 +v 0.375000 3.000000 -3.500000 +v 0.375000 3.000000 -2.500000 +v 0.375000 3.000000 -1.500000 +v 0.375000 3.000000 -0.500000 +v 0.375000 3.000000 0.500000 +v 0.375000 3.000000 1.500000 +v 0.375000 3.000000 2.500000 +v -0.250000 3.000000 -5.250000 +v -0.375000 3.000000 -4.500000 +v -0.375000 3.000000 -3.500000 +v -0.375000 3.000000 -2.500000 +v -0.375000 3.000000 -1.500000 +v -0.375000 3.000000 -0.500000 +v -0.375000 3.000000 0.500000 +v -0.375000 3.000000 1.500000 +v -0.375000 3.000000 2.500000 +v -1.250000 0.750000 5.500000 +v -0.750000 0.750000 5.500000 +v 0.750000 0.750000 5.500000 +v -0.250000 3.000000 5.250000 +v 0.250000 3.000000 5.250000 +v 0.750000 0.250000 5.500000 +v -0.750000 0.250000 5.500000 +v 0.187500 0.687500 5.437500 +v -0.250000 0.750000 5.500000 +v 0.250000 0.750000 5.500000 +v -0.187500 0.687500 5.437500 +v 0.187500 0.312500 5.437500 +v -0.187500 0.312500 5.437500 +v 0.250000 0.750000 5.437500 +v -0.250000 0.750000 5.437500 +v 0.250000 0.250000 5.437500 +v -0.250000 0.250000 5.437500 +v 0.187500 0.687500 5.500000 +v -0.187500 0.687500 5.500000 +v 0.187500 0.312500 5.500000 +v -0.187500 0.312500 5.500000 +v -0.500000 0.000000 5.500000 +v 1.500000 0.000000 5.500000 +v 0.500000 0.000000 5.500000 +v 1.500000 1.000000 5.500000 +v -1.500000 1.000000 5.500000 +v -0.500000 1.000000 5.500000 +v 0.500000 1.000000 5.500000 +v -0.812500 0.312500 5.437500 +v -1.187500 0.312500 5.437500 +v 1.187500 0.312500 5.437500 +v 0.812500 0.312500 5.437500 +v 1.187500 0.687500 5.437500 +v -1.187500 0.687500 5.437500 +v -0.812500 0.687500 5.437500 +v 0.812500 0.687500 5.437500 +v -0.750000 0.250000 5.437500 +v -1.250000 0.250000 5.437500 +v 1.250000 0.250000 5.437500 +v 0.750000 0.250000 5.437500 +v 1.250000 0.750000 5.437500 +v -1.250000 0.750000 5.437500 +v -0.750000 0.750000 5.437500 +v 0.750000 0.750000 5.437500 +v -0.812500 0.312500 5.500000 +v -1.187500 0.312500 5.500000 +v 1.187500 0.312500 5.500000 +v 0.812500 0.312500 5.500000 +v 1.187500 0.687500 5.500000 +v -1.187500 0.687500 5.500000 +v -0.812500 0.687500 5.500000 +v 0.812500 0.687500 5.500000 +v -1.250000 0.750000 -5.500000 +v -0.750000 0.750000 -5.500000 +v -0.750000 0.250000 -5.500000 +v -1.250000 0.250000 -5.500000 +v 0.250000 0.250000 -5.500000 +v -0.250000 0.250000 -5.500000 +v -0.250000 0.750000 -5.500000 +v 0.250000 0.750000 -5.500000 +v 0.750000 0.750000 -5.500000 +v 1.250000 0.750000 -5.500000 +v 1.250000 0.250000 -5.500000 +v 0.750000 0.250000 -5.500000 +v -0.812500 0.687500 -5.437500 +v -1.187500 0.687500 -5.437500 +v -1.187500 0.312500 -5.437500 +v -0.812500 0.312500 -5.437500 +v 0.187500 0.312500 -5.437500 +v -0.187500 0.312500 -5.437500 +v 0.187500 0.687500 -5.437500 +v -0.187500 0.687500 -5.437500 +v 0.812500 0.687500 -5.437500 +v 1.187500 0.687500 -5.437500 +v 0.812500 0.312500 -5.437500 +v 1.187500 0.312500 -5.437500 +v -0.750000 0.750000 -5.437500 +v -1.250000 0.750000 -5.437500 +v -1.250000 0.250000 -5.437500 +v -0.750000 0.250000 -5.437500 +v 0.250000 0.250000 -5.437500 +v -0.250000 0.250000 -5.437500 +v 0.250000 0.750000 -5.437500 +v -0.250000 0.750000 -5.437500 +v 0.750000 0.750000 -5.437500 +v 1.250000 0.750000 -5.437500 +v 0.750000 0.250000 -5.437500 +v 1.250000 0.250000 -5.437500 +v -0.812500 0.687500 -5.500000 +v -1.187500 0.687500 -5.500000 +v -1.187500 0.312500 -5.500000 +v -0.812500 0.312500 -5.500000 +v 0.187500 0.312500 -5.500000 +v -0.187500 0.312500 -5.500000 +v 0.187500 0.687500 -5.500000 +v -0.187500 0.687500 -5.500000 +v 0.812500 0.687500 -5.500000 +v 1.187500 0.687500 -5.500000 +v 0.812500 0.312500 -5.500000 +v 1.187500 0.312500 -5.500000 +v -1.500000 0.000000 3.500000 +v -1.500000 1.000000 4.500000 +v 3.500000 0.000000 4.500000 +v 3.500000 0.000000 3.500000 +v 3.500000 1.000000 3.500000 +v 3.500000 1.000000 4.500000 +v 1.500000 1.000000 3.500000 +v 1.500000 1.000000 4.500000 +v -1.500000 0.000000 4.500000 +v 1.500000 0.000000 3.500000 +v 1.500000 0.000000 4.500000 +v -0.500000 0.000000 3.500000 +v -0.500000 0.000000 4.500000 +v 0.500000 0.000000 3.500000 +v 0.500000 0.000000 4.500000 +v -1.500000 1.000000 3.500000 +v 0.375000 3.000000 3.500000 +v 0.375000 3.000000 4.500000 +v -0.375000 3.000000 3.500000 +v -0.375000 3.000000 4.500000 +v -0.500000 3.000000 -5.500000 +v -0.500000 3.000000 -4.500000 +v 0.500000 3.000000 -4.500000 +v 0.500000 3.000000 -5.500000 +v 0.500000 3.000000 -3.500000 +v 0.500000 3.000000 -2.500000 +v 0.500000 3.000000 -1.500000 +v 0.500000 3.000000 -0.500000 +v 0.500000 3.000000 0.500000 +v 0.500000 3.000000 1.500000 +v 0.500000 3.000000 2.500000 +v -0.500000 3.000000 -3.500000 +v -0.500000 3.000000 -2.500000 +v -0.500000 3.000000 -1.500000 +v -0.500000 3.000000 -0.500000 +v -0.500000 3.000000 0.500000 +v -0.500000 3.000000 1.500000 +v -0.500000 3.000000 2.500000 +v 0.500000 3.000000 5.500000 +v -0.500000 3.000000 5.500000 +v 0.500000 3.000000 4.500000 +v -0.500000 3.000000 4.500000 +v 0.500000 3.000000 3.500000 +v -0.500000 3.000000 3.500000 +v -0.375000 3.875000 -3.500000 +v 0.375000 3.875000 -3.500000 +v -0.375000 3.875000 -2.500000 +v 0.375000 3.875000 -2.500000 +v -0.250000 3.875000 -1.500000 +v 0.250000 3.875000 -1.500000 +v -0.250000 3.875000 -0.500000 +v 0.250000 3.875000 -0.500000 +v -0.250000 3.875000 0.500000 +v 0.250000 3.875000 0.500000 +v -0.375000 3.875000 1.500000 +v 0.375000 3.875000 1.500000 +v -0.375000 3.875000 2.500000 +v 0.250000 3.875000 2.500000 +v -0.375000 3.875000 3.500000 +v 0.250000 3.875000 3.500000 +v -0.250000 3.875000 -4.250000 +v 0.250000 3.875000 -4.250000 +v -0.250000 3.625000 4.500000 +v -0.250000 3.875000 4.250000 +v 0.250000 3.875000 4.250000 +v 0.250000 3.625000 4.500000 +v 0.250000 3.875000 -3.500000 +v 0.250000 3.875000 -2.500000 +v 0.375000 3.875000 -1.500000 +v 0.375000 3.875000 -0.500000 +v 0.375000 3.875000 0.500000 +v 0.250000 3.875000 1.500000 +v 0.375000 3.875000 2.500000 +v -0.250000 3.875000 -3.500000 +v -0.250000 3.875000 -2.500000 +v -0.375000 3.875000 -1.500000 +v -0.375000 3.875000 -0.500000 +v -0.375000 3.875000 0.500000 +v -0.250000 3.875000 1.500000 +v -0.250000 3.875000 2.500000 +v 0.375000 3.875000 3.500000 +v -0.250000 3.875000 3.500000 +v -0.375000 3.875000 -4.375000 +v 0.375000 3.875000 -4.375000 +v 0.375000 3.875000 4.375000 +v -0.375000 3.875000 4.375000 +v -0.250000 4.000000 -3.500000 +v 0.187500 4.000000 -3.500000 +v -0.187500 4.000000 -2.500000 +v 0.187500 4.000000 -2.500000 +v -0.187500 4.000000 -1.500000 +v 0.250000 4.000000 -1.500000 +v -0.250000 4.000000 -0.500000 +v 0.250000 4.000000 -0.500000 +v -0.250000 4.000000 0.500000 +v 0.250000 4.000000 0.500000 +v -0.250000 4.000000 1.500000 +v 0.250000 4.000000 1.500000 +v -0.250000 4.000000 2.500000 +v 0.250000 4.000000 2.500000 +v -0.250000 4.000000 3.500000 +v 0.250000 4.000000 3.500000 +v -0.187500 4.000000 -4.187500 +v 0.187500 4.000000 -4.187500 +v 0.187500 4.000000 4.187500 +v -0.187500 4.000000 4.187500 +v -0.375000 3.000000 -5.375000 +v -0.250000 3.000000 -4.500000 +v 0.250000 3.000000 -4.500000 +v 0.375000 3.000000 -5.375000 +v 0.375000 3.000000 5.375000 +v -0.375000 3.000000 5.375000 +v 0.250000 3.000000 4.500000 +v -0.250000 3.000000 4.500000 +v 0.375000 3.750000 -4.500000 +v -0.375000 3.750000 -4.500000 +v -0.375000 3.750000 4.500000 +v 0.375000 3.750000 4.500000 +v -0.250000 3.625000 -4.500000 +v 0.250000 3.625000 -4.500000 +v -0.250000 3.625000 -5.250000 +v 0.250000 3.625000 -5.250000 +v 0.250000 3.625000 5.250000 +v -0.250000 3.625000 5.250000 +v 0.250000 4.000000 -3.500000 +v 0.250000 4.000000 -2.500000 +v 0.187500 4.000000 -1.500000 +v 0.187500 4.000000 -0.500000 +v 0.187500 4.000000 0.500000 +v 0.187500 4.000000 1.500000 +v 0.187500 4.000000 2.500000 +v -0.187500 4.000000 -3.500000 +v -0.250000 4.000000 -2.500000 +v -0.250000 4.000000 -1.500000 +v -0.187500 4.000000 -0.500000 +v -0.187500 4.000000 0.500000 +v -0.187500 4.000000 1.500000 +v -0.187500 4.000000 2.500000 +v 0.187500 4.000000 3.500000 +v -0.187500 4.000000 3.500000 +v -0.250000 4.000000 -4.250000 +v 0.250000 4.000000 -4.250000 +v 0.250000 4.000000 4.250000 +v -0.250000 4.000000 4.250000 +v -0.187500 3.875000 -3.500000 +v 0.187500 3.875000 -3.500000 +v -0.187500 3.875000 -2.500000 +v 0.187500 3.875000 -2.500000 +v -0.187500 3.875000 -1.500000 +v 0.187500 3.875000 -1.500000 +v -0.187500 3.875000 -0.500000 +v 0.187500 3.875000 -0.500000 +v -0.187500 3.875000 0.500000 +v 0.187500 3.875000 0.500000 +v -0.187500 3.875000 1.500000 +v 0.187500 3.875000 1.500000 +v -0.187500 3.875000 2.500000 +v 0.187500 3.875000 2.500000 +v -0.187500 3.875000 3.500000 +v 0.187500 3.875000 3.500000 +v -0.187500 3.875000 -4.187500 +v 0.187500 3.875000 -4.187500 +v 0.187500 3.875000 4.187500 +v -0.187500 3.875000 4.187500 +v -1.437500 1.875000 -4.750000 +v -1.437500 2.000000 -4.750000 +v -1.437500 1.875000 -5.250000 +v -1.437500 2.000000 -5.250000 +v -0.937500 1.875000 -4.750000 +v -0.937500 2.000000 -4.750000 +v -0.937500 1.875000 -5.250000 +v -0.937500 2.000000 -5.250000 +v -1.437500 1.875000 -5.125000 +v -1.437500 1.875000 -4.875000 +v -1.437500 2.000000 -4.875000 +v -1.437500 2.000000 -5.125000 +v -0.937500 1.875000 -4.875000 +v -0.937500 1.875000 -5.125000 +v -0.937500 2.000000 -5.125000 +v -0.937500 2.000000 -4.875000 +v -1.062500 1.875000 -5.250000 +v -1.312500 1.875000 -5.250000 +v -1.312500 2.000000 -5.250000 +v -1.062500 2.000000 -5.250000 +v -1.312500 1.875000 -4.750000 +v -1.062500 1.875000 -4.750000 +v -1.062500 2.000000 -4.750000 +v -1.312500 2.000000 -4.750000 +v -1.312500 2.000000 -5.125000 +v -1.062500 2.000000 -5.125000 +v -1.312500 2.000000 -4.875000 +v -1.062500 2.000000 -4.875000 +v -1.062500 1.875000 -5.125000 +v -1.312500 1.875000 -5.125000 +v -1.062500 1.875000 -4.875000 +v -1.312500 1.875000 -4.875000 +v -1.437500 1.125000 -4.875000 +v -1.437500 1.125000 -4.750000 +v -1.312500 1.125000 -5.250000 +v -1.437500 1.125000 -5.250000 +v -1.437500 1.125000 -5.125000 +v -1.312500 1.125000 -5.125000 +v -1.312500 1.125000 -4.875000 +v -1.312500 1.125000 -4.750000 +v -1.437500 1.875000 -3.750000 +v -1.437500 2.000000 -3.750000 +v -1.437500 1.875000 -4.250000 +v -1.437500 2.000000 -4.250000 +v -0.937500 1.875000 -3.750000 +v -0.937500 2.000000 -3.750000 +v -0.937500 1.875000 -4.250000 +v -0.937500 2.000000 -4.250000 +v -1.437500 1.875000 -4.125000 +v -1.437500 1.875000 -3.875000 +v -1.437500 2.000000 -3.875000 +v -1.437500 2.000000 -4.125000 +v -0.937500 1.875000 -3.875000 +v -0.937500 1.875000 -4.125000 +v -0.937500 2.000000 -4.125000 +v -0.937500 2.000000 -3.875000 +v -1.062500 1.875000 -4.250000 +v -1.312500 1.875000 -4.250000 +v -1.312500 2.000000 -4.250000 +v -1.062500 2.000000 -4.250000 +v -1.312500 1.875000 -3.750000 +v -1.062500 1.875000 -3.750000 +v -1.062500 2.000000 -3.750000 +v -1.312500 2.000000 -3.750000 +v -1.312500 2.000000 -4.125000 +v -1.062500 2.000000 -4.125000 +v -1.312500 2.000000 -3.875000 +v -1.062500 2.000000 -3.875000 +v -1.062500 1.875000 -4.125000 +v -1.312500 1.875000 -4.125000 +v -1.062500 1.875000 -3.875000 +v -1.312500 1.875000 -3.875000 +v -1.437500 1.125000 -3.875000 +v -1.437500 1.125000 -3.750000 +v -1.312500 1.125000 -4.250000 +v -1.437500 1.125000 -4.250000 +v -1.437500 1.125000 -4.125000 +v -1.312500 1.125000 -4.125000 +v -1.312500 1.125000 -3.875000 +v -1.312500 1.125000 -3.750000 +v -1.437500 1.875000 -2.750000 +v -1.437500 2.000000 -2.750000 +v -1.437500 1.875000 -3.250000 +v -1.437500 2.000000 -3.250000 +v -0.937500 1.875000 -2.750000 +v -0.937500 2.000000 -2.750000 +v -0.937500 1.875000 -3.250000 +v -0.937500 2.000000 -3.250000 +v -1.437500 1.875000 -3.125000 +v -1.437500 1.875000 -2.875000 +v -1.437500 2.000000 -2.875000 +v -1.437500 2.000000 -3.125000 +v -0.937500 1.875000 -2.875000 +v -0.937500 1.875000 -3.125000 +v -0.937500 2.000000 -3.125000 +v -0.937500 2.000000 -2.875000 +v -1.062500 1.875000 -3.250000 +v -1.312500 1.875000 -3.250000 +v -1.312500 2.000000 -3.250000 +v -1.062500 2.000000 -3.250000 +v -1.312500 1.875000 -2.750000 +v -1.062500 1.875000 -2.750000 +v -1.062500 2.000000 -2.750000 +v -1.312500 2.000000 -2.750000 +v -1.312500 2.000000 -3.125000 +v -1.062500 2.000000 -3.125000 +v -1.312500 2.000000 -2.875000 +v -1.062500 2.000000 -2.875000 +v -1.062500 1.875000 -3.125000 +v -1.312500 1.875000 -3.125000 +v -1.062500 1.875000 -2.875000 +v -1.312500 1.875000 -2.875000 +v -1.437500 1.125000 -2.875000 +v -1.437500 1.125000 -2.750000 +v -1.312500 1.125000 -3.250000 +v -1.437500 1.125000 -3.250000 +v -1.437500 1.125000 -3.125000 +v -1.312500 1.125000 -3.125000 +v -1.312500 1.125000 -2.875000 +v -1.312500 1.125000 -2.750000 +v -1.437500 1.875000 -1.750000 +v -1.437500 2.000000 -1.750000 +v -1.437500 1.875000 -2.250000 +v -1.437500 2.000000 -2.250000 +v -0.937500 1.875000 -1.750000 +v -0.937500 2.000000 -1.750000 +v -0.937500 1.875000 -2.250000 +v -0.937500 2.000000 -2.250000 +v -1.437500 1.875000 -2.125000 +v -1.437500 1.875000 -1.875000 +v -1.437500 2.000000 -1.875000 +v -1.437500 2.000000 -2.125000 +v -0.937500 1.875000 -1.875000 +v -0.937500 1.875000 -2.125000 +v -0.937500 2.000000 -2.125000 +v -0.937500 2.000000 -1.875000 +v -1.062500 1.875000 -2.250000 +v -1.312500 1.875000 -2.250000 +v -1.312500 2.000000 -2.250000 +v -1.062500 2.000000 -2.250000 +v -1.312500 1.875000 -1.750000 +v -1.062500 1.875000 -1.750000 +v -1.062500 2.000000 -1.750000 +v -1.312500 2.000000 -1.750000 +v -1.312500 2.000000 -2.125000 +v -1.062500 2.000000 -2.125000 +v -1.312500 2.000000 -1.875000 +v -1.062500 2.000000 -1.875000 +v -1.062500 1.875000 -2.125000 +v -1.312500 1.875000 -2.125000 +v -1.062500 1.875000 -1.875000 +v -1.312500 1.875000 -1.875000 +v -1.437500 1.125000 -1.875000 +v -1.437500 1.125000 -1.750000 +v -1.312500 1.125000 -2.250000 +v -1.437500 1.125000 -2.250000 +v -1.437500 1.125000 -2.125000 +v -1.312500 1.125000 -2.125000 +v -1.312500 1.125000 -1.875000 +v -1.312500 1.125000 -1.750000 +v -1.437500 1.875000 -0.750000 +v -1.437500 2.000000 -0.750000 +v -1.437500 1.875000 -1.250000 +v -1.437500 2.000000 -1.250000 +v -0.937500 1.875000 -0.750000 +v -0.937500 2.000000 -0.750000 +v -0.937500 1.875000 -1.250000 +v -0.937500 2.000000 -1.250000 +v -1.437500 1.875000 -1.125000 +v -1.437500 1.875000 -0.875000 +v -1.437500 2.000000 -0.875000 +v -1.437500 2.000000 -1.125000 +v -0.937500 1.875000 -0.875000 +v -0.937500 1.875000 -1.125000 +v -0.937500 2.000000 -1.125000 +v -0.937500 2.000000 -0.875000 +v -1.062500 1.875000 -1.250000 +v -1.312500 1.875000 -1.250000 +v -1.312500 2.000000 -1.250000 +v -1.062500 2.000000 -1.250000 +v -1.312500 1.875000 -0.750000 +v -1.062500 1.875000 -0.750000 +v -1.062500 2.000000 -0.750000 +v -1.312500 2.000000 -0.750000 +v -1.312500 2.000000 -1.125000 +v -1.062500 2.000000 -1.125000 +v -1.312500 2.000000 -0.875000 +v -1.062500 2.000000 -0.875000 +v -1.062500 1.875000 -1.125000 +v -1.312500 1.875000 -1.125000 +v -1.062500 1.875000 -0.875000 +v -1.312500 1.875000 -0.875000 +v -1.437500 1.125000 -0.875000 +v -1.437500 1.125000 -0.750000 +v -1.312500 1.125000 -1.250000 +v -1.437500 1.125000 -1.250000 +v -1.437500 1.125000 -1.125000 +v -1.312500 1.125000 -1.125000 +v -1.312500 1.125000 -0.875000 +v -1.312500 1.125000 -0.750000 +v -1.437500 1.875000 0.250000 +v -1.437500 2.000000 0.250000 +v -1.437500 1.875000 -0.250000 +v -1.437500 2.000000 -0.250000 +v -0.937500 1.875000 0.250000 +v -0.937500 2.000000 0.250000 +v -0.937500 1.875000 -0.250000 +v -0.937500 2.000000 -0.250000 +v -1.437500 1.875000 -0.125000 +v -1.437500 1.875000 0.125000 +v -1.437500 2.000000 0.125000 +v -1.437500 2.000000 -0.125000 +v -0.937500 1.875000 0.125000 +v -0.937500 1.875000 -0.125000 +v -0.937500 2.000000 -0.125000 +v -0.937500 2.000000 0.125000 +v -1.062500 1.875000 -0.250000 +v -1.312500 1.875000 -0.250000 +v -1.312500 2.000000 -0.250000 +v -1.062500 2.000000 -0.250000 +v -1.312500 1.875000 0.250000 +v -1.062500 1.875000 0.250000 +v -1.062500 2.000000 0.250000 +v -1.312500 2.000000 0.250000 +v -1.312500 2.000000 -0.125000 +v -1.062500 2.000000 -0.125000 +v -1.312500 2.000000 0.125000 +v -1.062500 2.000000 0.125000 +v -1.062500 1.875000 -0.125000 +v -1.312500 1.875000 -0.125000 +v -1.062500 1.875000 0.125000 +v -1.312500 1.875000 0.125000 +v -1.437500 1.125000 0.125000 +v -1.437500 1.125000 0.250000 +v -1.312500 1.125000 -0.250000 +v -1.437500 1.125000 -0.250000 +v -1.437500 1.125000 -0.125000 +v -1.312500 1.125000 -0.125000 +v -1.312500 1.125000 0.125000 +v -1.312500 1.125000 0.250000 +v -1.437500 1.875000 1.250000 +v -1.437500 2.000000 1.250000 +v -1.437500 1.875000 0.750000 +v -1.437500 2.000000 0.750000 +v -0.937500 1.875000 1.250000 +v -0.937500 2.000000 1.250000 +v -0.937500 1.875000 0.750000 +v -0.937500 2.000000 0.750000 +v -1.437500 1.875000 0.875000 +v -1.437500 1.875000 1.125000 +v -1.437500 2.000000 1.125000 +v -1.437500 2.000000 0.875000 +v -0.937500 1.875000 1.125000 +v -0.937500 1.875000 0.875000 +v -0.937500 2.000000 0.875000 +v -0.937500 2.000000 1.125000 +v -1.062500 1.875000 0.750000 +v -1.312500 1.875000 0.750000 +v -1.312500 2.000000 0.750000 +v -1.062500 2.000000 0.750000 +v -1.312500 1.875000 1.250000 +v -1.062500 1.875000 1.250000 +v -1.062500 2.000000 1.250000 +v -1.312500 2.000000 1.250000 +v -1.312500 2.000000 0.875000 +v -1.062500 2.000000 0.875000 +v -1.312500 2.000000 1.125000 +v -1.062500 2.000000 1.125000 +v -1.062500 1.875000 0.875000 +v -1.312500 1.875000 0.875000 +v -1.062500 1.875000 1.125000 +v -1.312500 1.875000 1.125000 +v -1.437500 1.125000 1.125000 +v -1.437500 1.125000 1.250000 +v -1.312500 1.125000 0.750000 +v -1.437500 1.125000 0.750000 +v -1.437500 1.125000 0.875000 +v -1.312500 1.125000 0.875000 +v -1.312500 1.125000 1.125000 +v -1.312500 1.125000 1.250000 +v -1.437500 1.875000 2.250000 +v -1.437500 2.000000 2.250000 +v -1.437500 1.875000 1.750000 +v -1.437500 2.000000 1.750000 +v -0.937500 1.875000 2.250000 +v -0.937500 2.000000 2.250000 +v -0.937500 1.875000 1.750000 +v -0.937500 2.000000 1.750000 +v -1.437500 1.875000 1.875000 +v -1.437500 1.875000 2.125000 +v -1.437500 2.000000 2.125000 +v -1.437500 2.000000 1.875000 +v -0.937500 1.875000 2.125000 +v -0.937500 1.875000 1.875000 +v -0.937500 2.000000 1.875000 +v -0.937500 2.000000 2.125000 +v -1.062500 1.875000 1.750000 +v -1.312500 1.875000 1.750000 +v -1.312500 2.000000 1.750000 +v -1.062500 2.000000 1.750000 +v -1.312500 1.875000 2.250000 +v -1.062500 1.875000 2.250000 +v -1.062500 2.000000 2.250000 +v -1.312500 2.000000 2.250000 +v -1.312500 2.000000 1.875000 +v -1.062500 2.000000 1.875000 +v -1.312500 2.000000 2.125000 +v -1.062500 2.000000 2.125000 +v -1.062500 1.875000 1.875000 +v -1.312500 1.875000 1.875000 +v -1.062500 1.875000 2.125000 +v -1.312500 1.875000 2.125000 +v -1.437500 1.125000 2.125000 +v -1.437500 1.125000 2.250000 +v -1.312500 1.125000 1.750000 +v -1.437500 1.125000 1.750000 +v -1.437500 1.125000 1.875000 +v -1.312500 1.125000 1.875000 +v -1.312500 1.125000 2.125000 +v -1.312500 1.125000 2.250000 +v -1.437500 1.875000 3.250000 +v -1.437500 2.000000 3.250000 +v -1.437500 1.875000 2.750000 +v -1.437500 2.000000 2.750000 +v -0.937500 1.875000 3.250000 +v -0.937500 2.000000 3.250000 +v -0.937500 1.875000 2.750000 +v -0.937500 2.000000 2.750000 +v -1.437500 1.875000 2.875000 +v -1.437500 1.875000 3.125000 +v -1.437500 2.000000 3.125000 +v -1.437500 2.000000 2.875000 +v -0.937500 1.875000 3.125000 +v -0.937500 1.875000 2.875000 +v -0.937500 2.000000 2.875000 +v -0.937500 2.000000 3.125000 +v -1.062500 1.875000 2.750000 +v -1.312500 1.875000 2.750000 +v -1.312500 2.000000 2.750000 +v -1.062500 2.000000 2.750000 +v -1.312500 1.875000 3.250000 +v -1.062500 1.875000 3.250000 +v -1.062500 2.000000 3.250000 +v -1.312500 2.000000 3.250000 +v -1.312500 2.000000 2.875000 +v -1.062500 2.000000 2.875000 +v -1.312500 2.000000 3.125000 +v -1.062500 2.000000 3.125000 +v -1.062500 1.875000 2.875000 +v -1.312500 1.875000 2.875000 +v -1.062500 1.875000 3.125000 +v -1.312500 1.875000 3.125000 +v -1.437500 1.125000 3.125000 +v -1.437500 1.125000 3.250000 +v -1.312500 1.125000 2.750000 +v -1.437500 1.125000 2.750000 +v -1.437500 1.125000 2.875000 +v -1.312500 1.125000 2.875000 +v -1.312500 1.125000 3.125000 +v -1.312500 1.125000 3.250000 +v -1.437500 1.875000 4.250000 +v -1.437500 2.000000 4.250000 +v -1.437500 1.875000 3.750000 +v -1.437500 2.000000 3.750000 +v -0.937500 1.875000 4.250000 +v -0.937500 2.000000 4.250000 +v -0.937500 1.875000 3.750000 +v -0.937500 2.000000 3.750000 +v -1.437500 1.875000 3.875000 +v -1.437500 1.875000 4.125000 +v -1.437500 2.000000 4.125000 +v -1.437500 2.000000 3.875000 +v -0.937500 1.875000 4.125000 +v -0.937500 1.875000 3.875000 +v -0.937500 2.000000 3.875000 +v -0.937500 2.000000 4.125000 +v -1.062500 1.875000 3.750000 +v -1.312500 1.875000 3.750000 +v -1.312500 2.000000 3.750000 +v -1.062500 2.000000 3.750000 +v -1.312500 1.875000 4.250000 +v -1.062500 1.875000 4.250000 +v -1.062500 2.000000 4.250000 +v -1.312500 2.000000 4.250000 +v -1.312500 2.000000 3.875000 +v -1.062500 2.000000 3.875000 +v -1.312500 2.000000 4.125000 +v -1.062500 2.000000 4.125000 +v -1.062500 1.875000 3.875000 +v -1.312500 1.875000 3.875000 +v -1.062500 1.875000 4.125000 +v -1.312500 1.875000 4.125000 +v -1.437500 1.125000 4.125000 +v -1.437500 1.125000 4.250000 +v -1.312500 1.125000 3.750000 +v -1.437500 1.125000 3.750000 +v -1.437500 1.125000 3.875000 +v -1.312500 1.125000 3.875000 +v -1.312500 1.125000 4.125000 +v -1.312500 1.125000 4.250000 +v -1.437500 1.875000 5.250000 +v -1.437500 2.000000 5.250000 +v -1.437500 1.875000 4.750000 +v -1.437500 2.000000 4.750000 +v -0.937500 1.875000 5.250000 +v -0.937500 2.000000 5.250000 +v -0.937500 1.875000 4.750000 +v -0.937500 2.000000 4.750000 +v -1.437500 1.875000 4.875000 +v -1.437500 1.875000 5.125000 +v -1.437500 2.000000 5.125000 +v -1.437500 2.000000 4.875000 +v -0.937500 1.875000 5.125000 +v -0.937500 1.875000 4.875000 +v -0.937500 2.000000 4.875000 +v -0.937500 2.000000 5.125000 +v -1.062500 1.875000 4.750000 +v -1.312500 1.875000 4.750000 +v -1.312500 2.000000 4.750000 +v -1.062500 2.000000 4.750000 +v -1.312500 1.875000 5.250000 +v -1.062500 1.875000 5.250000 +v -1.062500 2.000000 5.250000 +v -1.312500 2.000000 5.250000 +v -1.312500 2.000000 4.875000 +v -1.062500 2.000000 4.875000 +v -1.312500 2.000000 5.125000 +v -1.062500 2.000000 5.125000 +v -1.062500 1.875000 4.875000 +v -1.312500 1.875000 4.875000 +v -1.062500 1.875000 5.125000 +v -1.312500 1.875000 5.125000 +v -1.437500 1.125000 5.125000 +v -1.437500 1.125000 5.250000 +v -1.312500 1.125000 4.750000 +v -1.437500 1.125000 4.750000 +v -1.437500 1.125000 4.875000 +v -1.312500 1.125000 4.875000 +v -1.312500 1.125000 5.125000 +v -1.312500 1.125000 5.250000 +v 1.437500 1.875000 -4.750000 +v 1.437500 2.000000 -4.750000 +v 1.437500 1.875000 -5.250000 +v 1.437500 2.000000 -5.250000 +v 0.937500 1.875000 -4.750000 +v 0.937500 2.000000 -4.750000 +v 0.937500 1.875000 -5.250000 +v 0.937500 2.000000 -5.250000 +v 1.437500 1.875000 -5.125000 +v 1.437500 1.875000 -4.875000 +v 1.437500 2.000000 -4.875000 +v 1.437500 2.000000 -5.125000 +v 0.937500 1.875000 -4.875000 +v 0.937500 1.875000 -5.125000 +v 0.937500 2.000000 -5.125000 +v 0.937500 2.000000 -4.875000 +v 1.062500 1.875000 -5.250000 +v 1.312500 1.875000 -5.250000 +v 1.312500 2.000000 -5.250000 +v 1.062500 2.000000 -5.250000 +v 1.312500 1.875000 -4.750000 +v 1.062500 1.875000 -4.750000 +v 1.062500 2.000000 -4.750000 +v 1.312500 2.000000 -4.750000 +v 1.312500 2.000000 -5.125000 +v 1.062500 2.000000 -5.125000 +v 1.312500 2.000000 -4.875000 +v 1.062500 2.000000 -4.875000 +v 1.062500 1.875000 -5.125000 +v 1.312500 1.875000 -5.125000 +v 1.062500 1.875000 -4.875000 +v 1.312500 1.875000 -4.875000 +v 1.437500 1.125000 -4.875000 +v 1.437500 1.125000 -4.750000 +v 1.312500 1.125000 -5.250000 +v 1.437500 1.125000 -5.250000 +v 1.437500 1.125000 -5.125000 +v 1.312500 1.125000 -5.125000 +v 1.312500 1.125000 -4.875000 +v 1.312500 1.125000 -4.750000 +v 1.437500 1.875000 -3.750000 +v 1.437500 2.000000 -3.750000 +v 1.437500 1.875000 -4.250000 +v 1.437500 2.000000 -4.250000 +v 0.937500 1.875000 -3.750000 +v 0.937500 2.000000 -3.750000 +v 0.937500 1.875000 -4.250000 +v 0.937500 2.000000 -4.250000 +v 1.437500 1.875000 -4.125000 +v 1.437500 1.875000 -3.875000 +v 1.437500 2.000000 -3.875000 +v 1.437500 2.000000 -4.125000 +v 0.937500 1.875000 -3.875000 +v 0.937500 1.875000 -4.125000 +v 0.937500 2.000000 -4.125000 +v 0.937500 2.000000 -3.875000 +v 1.062500 1.875000 -4.250000 +v 1.312500 1.875000 -4.250000 +v 1.312500 2.000000 -4.250000 +v 1.062500 2.000000 -4.250000 +v 1.312500 1.875000 -3.750000 +v 1.062500 1.875000 -3.750000 +v 1.062500 2.000000 -3.750000 +v 1.312500 2.000000 -3.750000 +v 1.312500 2.000000 -4.125000 +v 1.062500 2.000000 -4.125000 +v 1.312500 2.000000 -3.875000 +v 1.062500 2.000000 -3.875000 +v 1.062500 1.875000 -4.125000 +v 1.312500 1.875000 -4.125000 +v 1.062500 1.875000 -3.875000 +v 1.312500 1.875000 -3.875000 +v 1.437500 1.125000 -3.875000 +v 1.437500 1.125000 -3.750000 +v 1.312500 1.125000 -4.250000 +v 1.437500 1.125000 -4.250000 +v 1.437500 1.125000 -4.125000 +v 1.312500 1.125000 -4.125000 +v 1.312500 1.125000 -3.875000 +v 1.312500 1.125000 -3.750000 +v 1.437500 1.875000 -2.750000 +v 1.437500 2.000000 -2.750000 +v 1.437500 1.875000 -3.250000 +v 1.437500 2.000000 -3.250000 +v 0.937500 1.875000 -2.750000 +v 0.937500 2.000000 -2.750000 +v 0.937500 1.875000 -3.250000 +v 0.937500 2.000000 -3.250000 +v 1.437500 1.875000 -3.125000 +v 1.437500 1.875000 -2.875000 +v 1.437500 2.000000 -2.875000 +v 1.437500 2.000000 -3.125000 +v 0.937500 1.875000 -2.875000 +v 0.937500 1.875000 -3.125000 +v 0.937500 2.000000 -3.125000 +v 0.937500 2.000000 -2.875000 +v 1.062500 1.875000 -3.250000 +v 1.312500 1.875000 -3.250000 +v 1.312500 2.000000 -3.250000 +v 1.062500 2.000000 -3.250000 +v 1.312500 1.875000 -2.750000 +v 1.062500 1.875000 -2.750000 +v 1.062500 2.000000 -2.750000 +v 1.312500 2.000000 -2.750000 +v 1.312500 2.000000 -3.125000 +v 1.062500 2.000000 -3.125000 +v 1.312500 2.000000 -2.875000 +v 1.062500 2.000000 -2.875000 +v 1.062500 1.875000 -3.125000 +v 1.312500 1.875000 -3.125000 +v 1.062500 1.875000 -2.875000 +v 1.312500 1.875000 -2.875000 +v 1.437500 1.125000 -2.875000 +v 1.437500 1.125000 -2.750000 +v 1.312500 1.125000 -3.250000 +v 1.437500 1.125000 -3.250000 +v 1.437500 1.125000 -3.125000 +v 1.312500 1.125000 -3.125000 +v 1.312500 1.125000 -2.875000 +v 1.312500 1.125000 -2.750000 +v 1.437500 1.875000 -1.750000 +v 1.437500 2.000000 -1.750000 +v 1.437500 1.875000 -2.250000 +v 1.437500 2.000000 -2.250000 +v 0.937500 1.875000 -1.750000 +v 0.937500 2.000000 -1.750000 +v 0.937500 1.875000 -2.250000 +v 0.937500 2.000000 -2.250000 +v 1.437500 1.875000 -2.125000 +v 1.437500 1.875000 -1.875000 +v 1.437500 2.000000 -1.875000 +v 1.437500 2.000000 -2.125000 +v 0.937500 1.875000 -1.875000 +v 0.937500 1.875000 -2.125000 +v 0.937500 2.000000 -2.125000 +v 0.937500 2.000000 -1.875000 +v 1.062500 1.875000 -2.250000 +v 1.312500 1.875000 -2.250000 +v 1.312500 2.000000 -2.250000 +v 1.062500 2.000000 -2.250000 +v 1.312500 1.875000 -1.750000 +v 1.062500 1.875000 -1.750000 +v 1.062500 2.000000 -1.750000 +v 1.312500 2.000000 -1.750000 +v 1.312500 2.000000 -2.125000 +v 1.062500 2.000000 -2.125000 +v 1.312500 2.000000 -1.875000 +v 1.062500 2.000000 -1.875000 +v 1.062500 1.875000 -2.125000 +v 1.312500 1.875000 -2.125000 +v 1.062500 1.875000 -1.875000 +v 1.312500 1.875000 -1.875000 +v 1.437500 1.125000 -1.875000 +v 1.437500 1.125000 -1.750000 +v 1.312500 1.125000 -2.250000 +v 1.437500 1.125000 -2.250000 +v 1.437500 1.125000 -2.125000 +v 1.312500 1.125000 -2.125000 +v 1.312500 1.125000 -1.875000 +v 1.312500 1.125000 -1.750000 +v 1.437500 1.875000 -0.750000 +v 1.437500 2.000000 -0.750000 +v 1.437500 1.875000 -1.250000 +v 1.437500 2.000000 -1.250000 +v 0.937500 1.875000 -0.750000 +v 0.937500 2.000000 -0.750000 +v 0.937500 1.875000 -1.250000 +v 0.937500 2.000000 -1.250000 +v 1.437500 1.875000 -1.125000 +v 1.437500 1.875000 -0.875000 +v 1.437500 2.000000 -0.875000 +v 1.437500 2.000000 -1.125000 +v 0.937500 1.875000 -0.875000 +v 0.937500 1.875000 -1.125000 +v 0.937500 2.000000 -1.125000 +v 0.937500 2.000000 -0.875000 +v 1.062500 1.875000 -1.250000 +v 1.312500 1.875000 -1.250000 +v 1.312500 2.000000 -1.250000 +v 1.062500 2.000000 -1.250000 +v 1.312500 1.875000 -0.750000 +v 1.062500 1.875000 -0.750000 +v 1.062500 2.000000 -0.750000 +v 1.312500 2.000000 -0.750000 +v 1.312500 2.000000 -1.125000 +v 1.062500 2.000000 -1.125000 +v 1.312500 2.000000 -0.875000 +v 1.062500 2.000000 -0.875000 +v 1.062500 1.875000 -1.125000 +v 1.312500 1.875000 -1.125000 +v 1.062500 1.875000 -0.875000 +v 1.312500 1.875000 -0.875000 +v 1.437500 1.125000 -0.875000 +v 1.437500 1.125000 -0.750000 +v 1.312500 1.125000 -1.250000 +v 1.437500 1.125000 -1.250000 +v 1.437500 1.125000 -1.125000 +v 1.312500 1.125000 -1.125000 +v 1.312500 1.125000 -0.875000 +v 1.312500 1.125000 -0.750000 +v 1.437500 1.875000 0.250000 +v 1.437500 2.000000 0.250000 +v 1.437500 1.875000 -0.250000 +v 1.437500 2.000000 -0.250000 +v 0.937500 1.875000 0.250000 +v 0.937500 2.000000 0.250000 +v 0.937500 1.875000 -0.250000 +v 0.937500 2.000000 -0.250000 +v 1.437500 1.875000 -0.125000 +v 1.437500 1.875000 0.125000 +v 1.437500 2.000000 0.125000 +v 1.437500 2.000000 -0.125000 +v 0.937500 1.875000 0.125000 +v 0.937500 1.875000 -0.125000 +v 0.937500 2.000000 -0.125000 +v 0.937500 2.000000 0.125000 +v 1.062500 1.875000 -0.250000 +v 1.312500 1.875000 -0.250000 +v 1.312500 2.000000 -0.250000 +v 1.062500 2.000000 -0.250000 +v 1.312500 1.875000 0.250000 +v 1.062500 1.875000 0.250000 +v 1.062500 2.000000 0.250000 +v 1.312500 2.000000 0.250000 +v 1.312500 2.000000 -0.125000 +v 1.062500 2.000000 -0.125000 +v 1.312500 2.000000 0.125000 +v 1.062500 2.000000 0.125000 +v 1.062500 1.875000 -0.125000 +v 1.312500 1.875000 -0.125000 +v 1.062500 1.875000 0.125000 +v 1.312500 1.875000 0.125000 +v 1.437500 1.125000 0.125000 +v 1.437500 1.125000 0.250000 +v 1.312500 1.125000 -0.250000 +v 1.437500 1.125000 -0.250000 +v 1.437500 1.125000 -0.125000 +v 1.312500 1.125000 -0.125000 +v 1.312500 1.125000 0.125000 +v 1.312500 1.125000 0.250000 +v 1.437500 1.875000 1.250000 +v 1.437500 2.000000 1.250000 +v 1.437500 1.875000 0.750000 +v 1.437500 2.000000 0.750000 +v 0.937500 1.875000 1.250000 +v 0.937500 2.000000 1.250000 +v 0.937500 1.875000 0.750000 +v 0.937500 2.000000 0.750000 +v 1.437500 1.875000 0.875000 +v 1.437500 1.875000 1.125000 +v 1.437500 2.000000 1.125000 +v 1.437500 2.000000 0.875000 +v 0.937500 1.875000 1.125000 +v 0.937500 1.875000 0.875000 +v 0.937500 2.000000 0.875000 +v 0.937500 2.000000 1.125000 +v 1.062500 1.875000 0.750000 +v 1.312500 1.875000 0.750000 +v 1.312500 2.000000 0.750000 +v 1.062500 2.000000 0.750000 +v 1.312500 1.875000 1.250000 +v 1.062500 1.875000 1.250000 +v 1.062500 2.000000 1.250000 +v 1.312500 2.000000 1.250000 +v 1.312500 2.000000 0.875000 +v 1.062500 2.000000 0.875000 +v 1.312500 2.000000 1.125000 +v 1.062500 2.000000 1.125000 +v 1.062500 1.875000 0.875000 +v 1.312500 1.875000 0.875000 +v 1.062500 1.875000 1.125000 +v 1.312500 1.875000 1.125000 +v 1.437500 1.125000 1.125000 +v 1.437500 1.125000 1.250000 +v 1.312500 1.125000 0.750000 +v 1.437500 1.125000 0.750000 +v 1.437500 1.125000 0.875000 +v 1.312500 1.125000 0.875000 +v 1.312500 1.125000 1.125000 +v 1.312500 1.125000 1.250000 +v 1.437500 1.875000 2.250000 +v 1.437500 2.000000 2.250000 +v 1.437500 1.875000 1.750000 +v 1.437500 2.000000 1.750000 +v 0.937500 1.875000 2.250000 +v 0.937500 2.000000 2.250000 +v 0.937500 1.875000 1.750000 +v 0.937500 2.000000 1.750000 +v 1.437500 1.875000 1.875000 +v 1.437500 1.875000 2.125000 +v 1.437500 2.000000 2.125000 +v 1.437500 2.000000 1.875000 +v 0.937500 1.875000 2.125000 +v 0.937500 1.875000 1.875000 +v 0.937500 2.000000 1.875000 +v 0.937500 2.000000 2.125000 +v 1.062500 1.875000 1.750000 +v 1.312500 1.875000 1.750000 +v 1.312500 2.000000 1.750000 +v 1.062500 2.000000 1.750000 +v 1.312500 1.875000 2.250000 +v 1.062500 1.875000 2.250000 +v 1.062500 2.000000 2.250000 +v 1.312500 2.000000 2.250000 +v 1.312500 2.000000 1.875000 +v 1.062500 2.000000 1.875000 +v 1.312500 2.000000 2.125000 +v 1.062500 2.000000 2.125000 +v 1.062500 1.875000 1.875000 +v 1.312500 1.875000 1.875000 +v 1.062500 1.875000 2.125000 +v 1.312500 1.875000 2.125000 +v 1.437500 1.125000 2.125000 +v 1.437500 1.125000 2.250000 +v 1.312500 1.125000 1.750000 +v 1.437500 1.125000 1.750000 +v 1.437500 1.125000 1.875000 +v 1.312500 1.125000 1.875000 +v 1.312500 1.125000 2.125000 +v 1.312500 1.125000 2.250000 +v 1.437500 1.875000 3.250000 +v 1.437500 2.000000 3.250000 +v 1.437500 1.875000 2.750000 +v 1.437500 2.000000 2.750000 +v 0.937500 1.875000 3.250000 +v 0.937500 2.000000 3.250000 +v 0.937500 1.875000 2.750000 +v 0.937500 2.000000 2.750000 +v 1.437500 1.875000 2.875000 +v 1.437500 1.875000 3.125000 +v 1.437500 2.000000 3.125000 +v 1.437500 2.000000 2.875000 +v 0.937500 1.875000 3.125000 +v 0.937500 1.875000 2.875000 +v 0.937500 2.000000 2.875000 +v 0.937500 2.000000 3.125000 +v 1.062500 1.875000 2.750000 +v 1.312500 1.875000 2.750000 +v 1.312500 2.000000 2.750000 +v 1.062500 2.000000 2.750000 +v 1.312500 1.875000 3.250000 +v 1.062500 1.875000 3.250000 +v 1.062500 2.000000 3.250000 +v 1.312500 2.000000 3.250000 +v 1.312500 2.000000 2.875000 +v 1.062500 2.000000 2.875000 +v 1.312500 2.000000 3.125000 +v 1.062500 2.000000 3.125000 +v 1.062500 1.875000 2.875000 +v 1.312500 1.875000 2.875000 +v 1.062500 1.875000 3.125000 +v 1.312500 1.875000 3.125000 +v 1.437500 1.125000 3.125000 +v 1.437500 1.125000 3.250000 +v 1.312500 1.125000 2.750000 +v 1.437500 1.125000 2.750000 +v 1.437500 1.125000 2.875000 +v 1.312500 1.125000 2.875000 +v 1.312500 1.125000 3.125000 +v 1.312500 1.125000 3.250000 +v 1.437500 1.875000 4.250000 +v 1.437500 2.000000 4.250000 +v 1.437500 1.875000 3.750000 +v 1.437500 2.000000 3.750000 +v 0.937500 1.875000 4.250000 +v 0.937500 2.000000 4.250000 +v 0.937500 1.875000 3.750000 +v 0.937500 2.000000 3.750000 +v 1.437500 1.875000 3.875000 +v 1.437500 1.875000 4.125000 +v 1.437500 2.000000 4.125000 +v 1.437500 2.000000 3.875000 +v 0.937500 1.875000 4.125000 +v 0.937500 1.875000 3.875000 +v 0.937500 2.000000 3.875000 +v 0.937500 2.000000 4.125000 +v 1.062500 1.875000 3.750000 +v 1.312500 1.875000 3.750000 +v 1.312500 2.000000 3.750000 +v 1.062500 2.000000 3.750000 +v 1.312500 1.875000 4.250000 +v 1.062500 1.875000 4.250000 +v 1.062500 2.000000 4.250000 +v 1.312500 2.000000 4.250000 +v 1.312500 2.000000 3.875000 +v 1.062500 2.000000 3.875000 +v 1.312500 2.000000 4.125000 +v 1.062500 2.000000 4.125000 +v 1.062500 1.875000 3.875000 +v 1.312500 1.875000 3.875000 +v 1.062500 1.875000 4.125000 +v 1.312500 1.875000 4.125000 +v 1.437500 1.125000 4.125000 +v 1.437500 1.125000 4.250000 +v 1.312500 1.125000 3.750000 +v 1.437500 1.125000 3.750000 +v 1.437500 1.125000 3.875000 +v 1.312500 1.125000 3.875000 +v 1.312500 1.125000 4.125000 +v 1.312500 1.125000 4.250000 +v 1.437500 1.875000 5.250000 +v 1.437500 2.000000 5.250000 +v 1.437500 1.875000 4.750000 +v 1.437500 2.000000 4.750000 +v 0.937500 1.875000 5.250000 +v 0.937500 2.000000 5.250000 +v 0.937500 1.875000 4.750000 +v 0.937500 2.000000 4.750000 +v 1.437500 1.875000 4.875000 +v 1.437500 1.875000 5.125000 +v 1.437500 2.000000 5.125000 +v 1.437500 2.000000 4.875000 +v 0.937500 1.875000 5.125000 +v 0.937500 1.875000 4.875000 +v 0.937500 2.000000 4.875000 +v 0.937500 2.000000 5.125000 +v 1.062500 1.875000 4.750000 +v 1.312500 1.875000 4.750000 +v 1.312500 2.000000 4.750000 +v 1.062500 2.000000 4.750000 +v 1.312500 1.875000 5.250000 +v 1.062500 1.875000 5.250000 +v 1.062500 2.000000 5.250000 +v 1.312500 2.000000 5.250000 +v 1.312500 2.000000 4.875000 +v 1.062500 2.000000 4.875000 +v 1.312500 2.000000 5.125000 +v 1.062500 2.000000 5.125000 +v 1.062500 1.875000 4.875000 +v 1.312500 1.875000 4.875000 +v 1.062500 1.875000 5.125000 +v 1.312500 1.875000 5.125000 +v 1.437500 1.125000 5.125000 +v 1.437500 1.125000 5.250000 +v 1.312500 1.125000 4.750000 +v 1.437500 1.125000 4.750000 +v 1.437500 1.125000 4.875000 +v 1.312500 1.125000 4.875000 +v 1.312500 1.125000 5.125000 +v 1.312500 1.125000 5.250000 +v 0.122617 2.375000 -5.500900 +v 0.122617 2.625000 -5.500900 +v 0.122617 2.125000 -5.750900 +v 0.122617 2.375000 -5.750900 +v 0.185117 2.375000 -5.500900 +v 0.185117 2.625000 -5.500900 +v 0.185117 2.125000 -5.750900 +v 0.185117 2.375000 -5.750900 +v 0.122617 2.062500 -5.750900 +v 0.122617 2.312500 -5.500900 +v 0.185117 2.062500 -5.750900 +v 0.185117 2.312500 -5.500900 +v -0.127383 2.125000 -5.750900 +v -0.127383 2.375000 -5.500900 +v -0.127383 2.062500 -5.750900 +v -0.127383 2.312500 -5.500900 +v -0.189883 2.125000 -5.750900 +v -0.189883 2.375000 -5.500900 +v -0.189883 2.062500 -5.750900 +v -0.189883 2.312500 -5.500900 +v -0.127383 2.375000 -5.750900 +v -0.127383 2.625000 -5.500900 +v -0.189883 2.375000 -5.750900 +v -0.189883 2.625000 -5.500900 +v 0.122617 2.375000 5.500900 +v 0.122617 2.625000 5.500900 +v 0.122617 2.125000 5.750900 +v 0.122617 2.375000 5.750900 +v 0.185117 2.375000 5.500900 +v 0.185117 2.625000 5.500900 +v 0.185117 2.125000 5.750900 +v 0.185117 2.375000 5.750900 +v 0.122617 2.062500 5.750900 +v 0.122617 2.312500 5.500900 +v 0.185117 2.062500 5.750900 +v 0.185117 2.312500 5.500900 +v -0.127383 2.125000 5.750900 +v -0.127383 2.375000 5.500900 +v -0.127383 2.062500 5.750900 +v -0.127383 2.312500 5.500900 +v -0.189883 2.125000 5.750900 +v -0.189883 2.375000 5.500900 +v -0.189883 2.062500 5.750900 +v -0.189883 2.312500 5.500900 +v -0.127383 2.375000 5.750900 +v -0.127383 2.625000 5.500900 +v -0.189883 2.375000 5.750900 +v -0.189883 2.625000 5.500900 +v -1.555902 1.027951 -3.937500 +v -0.555902 3.027951 -3.937500 +v -1.555902 1.027951 -4.062500 +v -0.555902 3.027951 -4.062500 +v -1.444098 0.972049 -3.937500 +v -0.444098 2.972049 -3.937500 +v -1.444098 0.972049 -4.062500 +v -0.444098 2.972049 -4.062500 +v -1.555902 1.027951 -1.937500 +v -0.555902 3.027951 -1.937500 +v -1.555902 1.027951 -2.062500 +v -0.555902 3.027951 -2.062500 +v -1.444098 0.972049 -1.937500 +v -0.444098 2.972049 -1.937500 +v -1.444098 0.972049 -2.062500 +v -0.444098 2.972049 -2.062500 +v -1.555902 1.027951 0.062500 +v -0.555902 3.027951 0.062500 +v -1.555902 1.027951 -0.062500 +v -0.555902 3.027951 -0.062500 +v -1.444098 0.972049 0.062500 +v -0.444098 2.972049 0.062500 +v -1.444098 0.972049 -0.062500 +v -0.444098 2.972049 -0.062500 +v -1.555902 1.027951 2.062500 +v -0.555902 3.027951 2.062500 +v -1.555902 1.027951 1.937500 +v -0.555902 3.027951 1.937500 +v -1.444098 0.972049 2.062500 +v -0.444098 2.972049 2.062500 +v -1.444098 0.972049 1.937500 +v -0.444098 2.972049 1.937500 +v -1.555902 1.027951 4.062500 +v -0.555902 3.027951 4.062500 +v -1.555902 1.027951 3.937500 +v -0.555902 3.027951 3.937500 +v -1.444098 0.972049 4.062500 +v -0.444098 2.972049 4.062500 +v -1.444098 0.972049 3.937500 +v -0.444098 2.972049 3.937500 +v 1.555902 1.027951 -3.937500 +v 0.555902 3.027951 -3.937500 +v 1.555902 1.027951 -4.062500 +v 0.555902 3.027951 -4.062500 +v 1.444098 0.972049 -3.937500 +v 0.444098 2.972049 -3.937500 +v 1.444098 0.972049 -4.062500 +v 0.444098 2.972049 -4.062500 +v 1.555902 1.027951 -1.937500 +v 0.555902 3.027951 -1.937500 +v 1.555902 1.027951 -2.062500 +v 0.555902 3.027951 -2.062500 +v 1.444098 0.972049 -1.937500 +v 0.444098 2.972049 -1.937500 +v 1.444098 0.972049 -2.062500 +v 0.444098 2.972049 -2.062500 +v 1.555902 1.027951 0.062500 +v 0.555902 3.027951 0.062500 +v 1.555902 1.027951 -0.062500 +v 0.555902 3.027951 -0.062500 +v 1.444098 0.972049 0.062500 +v 0.444098 2.972049 0.062500 +v 1.444098 0.972049 -0.062500 +v 0.444098 2.972049 -0.062500 +v 1.555902 1.027951 2.062500 +v 0.555902 3.027951 2.062500 +v 1.555902 1.027951 1.937500 +v 0.555902 3.027951 1.937500 +v 1.444098 0.972049 2.062500 +v 0.444098 2.972049 2.062500 +v 1.444098 0.972049 1.937500 +v 0.444098 2.972049 1.937500 +v 1.555902 1.027951 4.062500 +v 0.555902 3.027951 4.062500 +v 1.555902 1.027951 3.937500 +v 0.555902 3.027951 3.937500 +v 1.444098 0.972049 4.062500 +v 0.444098 2.972049 4.062500 +v 1.444098 0.972049 3.937500 +v 0.444098 2.972049 3.937500 +v 2.750000 1.000000 4.250000 +v 2.750000 3.000000 4.250000 +v 2.750000 1.000000 3.750000 +v 2.750000 3.000000 3.750000 +v 3.250000 1.000000 4.250000 +v 3.250000 3.000000 4.250000 +v 3.250000 1.000000 3.750000 +v 3.250000 3.000000 3.750000 +v 3.103553 3.353553 3.750000 +v 3.103553 3.353553 4.250000 +v 2.042893 3.707107 3.750000 +v 2.396447 4.060660 3.750000 +v 2.396447 4.060660 4.250000 +v 2.042893 3.707107 4.250000 +v 2.042893 4.207107 3.750000 +v 2.042893 4.207107 4.250000 +v 1.689340 4.060660 4.250000 +v 1.689340 4.060660 3.750000 +v 0.363514 2.734836 3.750000 +v 0.363514 2.734836 4.250000 +v 0.717067 2.381282 4.250000 +v 0.717067 2.381282 3.750000 +v 2.750000 1.000000 2.250000 +v 2.750000 3.000000 2.250000 +v 2.750000 1.000000 1.750000 +v 2.750000 3.000000 1.750000 +v 3.250000 1.000000 2.250000 +v 3.250000 3.000000 2.250000 +v 3.250000 1.000000 1.750000 +v 3.250000 3.000000 1.750000 +v 3.103553 3.353553 1.750000 +v 3.103553 3.353553 2.250000 +v 2.042893 3.707107 1.750000 +v 2.396447 4.060660 1.750000 +v 2.396447 4.060660 2.250000 +v 2.042893 3.707107 2.250000 +v 2.042893 4.207107 1.750000 +v 2.042893 4.207107 2.250000 +v 1.689340 4.060660 2.250000 +v 1.689340 4.060660 1.750000 +v 0.363514 2.734836 1.750000 +v 0.363514 2.734836 2.250000 +v 0.717067 2.381282 2.250000 +v 0.717067 2.381282 1.750000 +v 2.750000 1.000000 0.250000 +v 2.750000 3.000000 0.250000 +v 2.750000 1.000000 -0.250000 +v 2.750000 3.000000 -0.250000 +v 3.250000 1.000000 0.250000 +v 3.250000 3.000000 0.250000 +v 3.250000 1.000000 -0.250000 +v 3.250000 3.000000 -0.250000 +v 3.103553 3.353553 -0.250000 +v 3.103553 3.353553 0.250000 +v 2.042893 3.707107 -0.250000 +v 2.396447 4.060660 -0.250000 +v 2.396447 4.060660 0.250000 +v 2.042893 3.707107 0.250000 +v 2.042893 4.207107 -0.250000 +v 2.042893 4.207107 0.250000 +v 1.689340 4.060660 0.250000 +v 1.689340 4.060660 -0.250000 +v 0.363514 2.734836 -0.250000 +v 0.363514 2.734836 0.250000 +v 0.717067 2.381282 0.250000 +v 0.717067 2.381282 -0.250000 +v 2.750000 1.000000 -1.750000 +v 2.750000 3.000000 -1.750000 +v 2.750000 1.000000 -2.250000 +v 2.750000 3.000000 -2.250000 +v 3.250000 1.000000 -1.750000 +v 3.250000 3.000000 -1.750000 +v 3.250000 1.000000 -2.250000 +v 3.250000 3.000000 -2.250000 +v 3.103553 3.353553 -2.250000 +v 3.103553 3.353553 -1.750000 +v 2.042893 3.707107 -2.250000 +v 2.396447 4.060660 -2.250000 +v 2.396447 4.060660 -1.750000 +v 2.042893 3.707107 -1.750000 +v 2.042893 4.207107 -2.250000 +v 2.042893 4.207107 -1.750000 +v 1.689340 4.060660 -1.750000 +v 1.689340 4.060660 -2.250000 +v 0.363514 2.734836 -2.250000 +v 0.363514 2.734836 -1.750000 +v 0.717067 2.381282 -1.750000 +v 0.717067 2.381282 -2.250000 +v 2.750000 1.000000 -3.750000 +v 2.750000 3.000000 -3.750000 +v 2.750000 1.000000 -4.250000 +v 2.750000 3.000000 -4.250000 +v 3.250000 1.000000 -3.750000 +v 3.250000 3.000000 -3.750000 +v 3.250000 1.000000 -4.250000 +v 3.250000 3.000000 -4.250000 +v 3.103553 3.353553 -4.250000 +v 3.103553 3.353553 -3.750000 +v 2.042893 3.707107 -4.250000 +v 2.396447 4.060660 -4.250000 +v 2.396447 4.060660 -3.750000 +v 2.042893 3.707107 -3.750000 +v 2.042893 4.207107 -4.250000 +v 2.042893 4.207107 -3.750000 +v 1.689340 4.060660 -3.750000 +v 1.689340 4.060660 -4.250000 +v 0.363514 2.734836 -4.250000 +v 0.363514 2.734836 -3.750000 +v 0.717067 2.381282 -3.750000 +v 0.717067 2.381282 -4.250000 +vt 0.280000 0.120130 +vt 0.325714 0.016234 +vt 0.325714 0.120130 +vt 0.860000 0.051948 +vt 0.882857 0.048701 +vt 0.882857 0.051948 +vt 0.371429 0.016234 +vt 0.925714 0.045455 +vt 0.922857 0.019481 +vt 0.925714 0.019481 +vt 0.234286 0.016234 +vt 0.280000 0.016234 +vt 0.737143 0.123377 +vt 0.691429 0.240260 +vt 0.691429 0.123377 +vt 0.685714 0.022727 +vt 0.662857 0.055195 +vt 0.662857 0.022727 +vt 0.645714 0.240260 +vt 0.600000 0.240260 +vt 0.645714 0.123377 +vt 0.554286 0.240260 +vt 0.600000 0.123377 +vt 0.508571 0.240260 +vt 0.554286 0.123377 +vt 0.462857 0.240260 +vt 0.508571 0.123377 +vt 0.417143 0.240260 +vt 0.462857 0.123377 +vt 0.371429 0.240260 +vt 0.417143 0.123377 +vt 0.234286 0.240260 +vt 0.280000 0.123377 +vt 0.280000 0.240260 +vt 0.325714 0.522727 +vt 0.234286 0.470779 +vt 0.325714 0.470779 +vt 0.231429 0.574675 +vt 0.185714 0.522727 +vt 0.231429 0.522727 +vt 0.997143 0.905844 +vt 0.957143 0.853896 +vt 0.997143 0.853896 +vt 0.882857 0.750000 +vt 0.922857 0.801948 +vt 0.882857 0.801948 +vt 0.997143 0.801948 +vt 0.957143 0.750000 +vt 0.997143 0.750000 +vt 0.882857 0.698052 +vt 0.922857 0.750000 +vt 0.957143 0.698052 +vt 0.997143 0.698052 +vt 0.882857 0.853896 +vt 0.922857 0.905844 +vt 0.882857 0.905844 +vt 0.634286 0.055195 +vt 0.662857 0.094156 +vt 0.634286 0.094156 +vt 0.748571 0.051948 +vt 0.771429 0.048701 +vt 0.771429 0.051948 +vt 0.140000 0.522727 +vt 0.094286 0.574675 +vt 0.094286 0.522727 +vt 0.140000 0.574675 +vt 0.185714 0.470779 +vt 0.140000 0.470779 +vt 0.185714 0.418831 +vt 0.140000 0.418831 +vt 0.185714 0.366883 +vt 0.140000 0.366883 +vt 0.185714 0.314935 +vt 0.140000 0.314935 +vt 0.185714 0.262987 +vt 0.140000 0.262987 +vt 0.185714 0.211039 +vt 0.140000 0.211039 +vt 0.185714 0.159091 +vt 0.140000 0.055195 +vt 0.185714 0.003247 +vt 0.185714 0.055195 +vt 0.691429 0.243506 +vt 0.737143 0.360390 +vt 0.691429 0.360390 +vt 0.737143 0.363636 +vt 0.691429 0.467532 +vt 0.691429 0.363636 +vt 0.231429 0.470779 +vt 0.231429 0.418831 +vt 0.231429 0.366883 +vt 0.231429 0.314935 +vt 0.231429 0.262987 +vt 0.231429 0.211039 +vt 0.231429 0.159091 +vt 0.231429 0.003247 +vt 0.231429 0.055195 +vt 0.691429 0.525974 +vt 0.737143 0.577922 +vt 0.691429 0.577922 +vt 0.002857 0.574675 +vt 0.002857 0.522727 +vt 0.094286 0.470779 +vt 0.094286 0.418831 +vt 0.094286 0.366883 +vt 0.094286 0.314935 +vt 0.094286 0.262987 +vt 0.094286 0.211039 +vt 0.140000 0.159091 +vt 0.094286 0.055195 +vt 0.140000 0.003247 +vt 0.371429 0.243506 +vt 0.325714 0.360390 +vt 0.325714 0.243506 +vt 0.417143 0.243506 +vt 0.371429 0.360390 +vt 0.462857 0.243506 +vt 0.417143 0.360390 +vt 0.508571 0.243506 +vt 0.462857 0.360390 +vt 0.554286 0.243506 +vt 0.508571 0.360390 +vt 0.600000 0.243506 +vt 0.554286 0.360390 +vt 0.645714 0.243506 +vt 0.600000 0.360390 +vt 0.645714 0.360390 +vt 0.234286 0.633117 +vt 0.280000 0.581169 +vt 0.280000 0.633117 +vt 0.645714 0.363636 +vt 0.645714 0.467532 +vt 0.600000 0.363636 +vt 0.600000 0.467532 +vt 0.554286 0.363636 +vt 0.554286 0.467532 +vt 0.508571 0.363636 +vt 0.508571 0.467532 +vt 0.462857 0.363636 +vt 0.462857 0.467532 +vt 0.417143 0.363636 +vt 0.417143 0.467532 +vt 0.371429 0.363636 +vt 0.280000 0.467532 +vt 0.234286 0.363636 +vt 0.280000 0.363636 +vt 0.002857 0.470779 +vt 0.002857 0.418831 +vt 0.002857 0.366883 +vt 0.002857 0.314935 +vt 0.002857 0.262987 +vt 0.002857 0.211039 +vt 0.094286 0.159091 +vt 0.002857 0.055195 +vt 0.094286 0.003247 +vt 0.645714 0.525974 +vt 0.645714 0.577922 +vt 0.600000 0.525974 +vt 0.600000 0.577922 +vt 0.554286 0.525974 +vt 0.554286 0.577922 +vt 0.508571 0.525974 +vt 0.508571 0.577922 +vt 0.462857 0.525974 +vt 0.462857 0.577922 +vt 0.417143 0.525974 +vt 0.417143 0.577922 +vt 0.371429 0.525974 +vt 0.280000 0.577922 +vt 0.234286 0.525974 +vt 0.280000 0.525974 +vt 0.645714 0.633117 +vt 0.600000 0.581169 +vt 0.645714 0.581169 +vt 0.600000 0.633117 +vt 0.554286 0.581169 +vt 0.554286 0.633117 +vt 0.508571 0.581169 +vt 0.508571 0.633117 +vt 0.462857 0.581169 +vt 0.462857 0.633117 +vt 0.417143 0.581169 +vt 0.417143 0.633117 +vt 0.371429 0.581169 +vt 0.371429 0.633117 +vt 0.325714 0.581169 +vt 0.325714 0.633117 +vt 0.605714 0.470779 +vt 0.697143 0.522727 +vt 0.605714 0.522727 +vt 0.817143 0.019481 +vt 0.820000 0.045455 +vt 0.817143 0.045455 +vt 0.780000 0.019481 +vt 0.782857 0.045455 +vt 0.780000 0.045455 +vt 0.934286 0.051948 +vt 0.957143 0.048701 +vt 0.957143 0.051948 +vt 0.465714 0.016234 +vt 0.420000 0.120130 +vt 0.420000 0.016234 +vt 0.511429 0.016234 +vt 0.465714 0.120130 +vt 0.374286 0.016234 +vt 0.525714 0.483766 +vt 0.560000 0.470779 +vt 0.548571 0.483766 +vt 0.525714 0.509740 +vt 0.514286 0.470779 +vt 0.560000 0.522727 +vt 0.548571 0.509740 +vt 0.514286 0.522727 +vt 0.808571 0.042208 +vt 0.805714 0.022727 +vt 0.808571 0.022727 +vt 0.814286 0.045455 +vt 0.811429 0.019481 +vt 0.814286 0.019481 +vt 0.808571 0.012987 +vt 0.785714 0.016234 +vt 0.785714 0.012987 +vt 0.785714 0.051948 +vt 0.808571 0.048701 +vt 0.808571 0.051948 +vt 0.805714 0.045455 +vt 0.785714 0.048701 +vt 0.788571 0.045455 +vt 0.805714 0.019481 +vt 0.808571 0.016234 +vt 0.785714 0.042208 +vt 0.782857 0.019481 +vt 0.785714 0.022727 +vt 0.811429 0.045455 +vt 0.788571 0.042208 +vt 0.788571 0.022727 +vt 0.788571 0.019481 +vt 0.805714 0.042208 +vt 0.480000 0.483766 +vt 0.502857 0.483766 +vt 0.571429 0.483766 +vt 0.594286 0.483766 +vt 0.594286 0.509740 +vt 0.480000 0.509740 +vt 0.468571 0.470779 +vt 0.502857 0.509740 +vt 0.468571 0.522727 +vt 0.571429 0.509740 +vt 0.825714 0.045455 +vt 0.842857 0.042208 +vt 0.842857 0.045455 +vt 0.845714 0.042208 +vt 0.842857 0.022727 +vt 0.845714 0.022727 +vt 0.957143 0.012987 +vt 0.934286 0.016234 +vt 0.934286 0.012987 +vt 0.851429 0.045455 +vt 0.848571 0.019481 +vt 0.851429 0.019481 +vt 0.822857 0.051948 +vt 0.845714 0.048701 +vt 0.845714 0.051948 +vt 0.962857 0.045455 +vt 0.960000 0.019481 +vt 0.962857 0.019481 +vt 0.845714 0.012987 +vt 0.822857 0.016234 +vt 0.822857 0.012987 +vt 0.928571 0.019481 +vt 0.931429 0.045455 +vt 0.928571 0.045455 +vt 0.842857 0.019481 +vt 0.845714 0.016234 +vt 0.954286 0.019481 +vt 0.957143 0.016234 +vt 0.957143 0.042208 +vt 0.960000 0.045455 +vt 0.822857 0.042208 +vt 0.820000 0.019481 +vt 0.822857 0.022727 +vt 0.822857 0.048701 +vt 0.954286 0.045455 +vt 0.934286 0.048701 +vt 0.937143 0.045455 +vt 0.848571 0.045455 +vt 0.934286 0.042208 +vt 0.931429 0.019481 +vt 0.934286 0.022727 +vt 0.825714 0.042208 +vt 0.825714 0.022727 +vt 0.954286 0.022727 +vt 0.937143 0.042208 +vt 0.937143 0.022727 +vt 0.957143 0.022727 +vt 0.825714 0.019481 +vt 0.954286 0.042208 +vt 0.937143 0.019481 +vt 0.417143 0.522727 +vt 0.451429 0.509740 +vt 0.462857 0.522727 +vt 0.417143 0.470779 +vt 0.428571 0.509740 +vt 0.462857 0.470779 +vt 0.428571 0.483766 +vt 0.451429 0.483766 +vt 0.382857 0.483766 +vt 0.371429 0.470779 +vt 0.405714 0.483766 +vt 0.371429 0.522727 +vt 0.405714 0.509740 +vt 0.382857 0.509740 +vt 0.360000 0.509740 +vt 0.337143 0.509740 +vt 0.337143 0.483766 +vt 0.360000 0.483766 +vt 0.862857 0.045455 +vt 0.880000 0.042208 +vt 0.880000 0.045455 +vt 0.900000 0.045455 +vt 0.917143 0.042208 +vt 0.917143 0.045455 +vt 0.768571 0.019481 +vt 0.751429 0.022727 +vt 0.751429 0.019481 +vt 0.771429 0.012987 +vt 0.748571 0.016234 +vt 0.748571 0.012987 +vt 0.897143 0.051948 +vt 0.920000 0.048701 +vt 0.920000 0.051948 +vt 0.882857 0.012987 +vt 0.860000 0.016234 +vt 0.860000 0.012987 +vt 0.742857 0.019481 +vt 0.745714 0.045455 +vt 0.742857 0.045455 +vt 0.920000 0.012987 +vt 0.897143 0.016234 +vt 0.897143 0.012987 +vt 0.888571 0.045455 +vt 0.885714 0.019481 +vt 0.888571 0.019481 +vt 0.777143 0.045455 +vt 0.774286 0.019481 +vt 0.777143 0.019481 +vt 0.891429 0.019481 +vt 0.894286 0.045455 +vt 0.891429 0.045455 +vt 0.854286 0.019481 +vt 0.857143 0.045455 +vt 0.854286 0.045455 +vt 0.860000 0.042208 +vt 0.857143 0.019481 +vt 0.860000 0.022727 +vt 0.860000 0.048701 +vt 0.862857 0.019481 +vt 0.882857 0.016234 +vt 0.880000 0.019481 +vt 0.882857 0.042208 +vt 0.885714 0.045455 +vt 0.771429 0.016234 +vt 0.748571 0.042208 +vt 0.745714 0.019481 +vt 0.748571 0.022727 +vt 0.771429 0.042208 +vt 0.774286 0.045455 +vt 0.768571 0.045455 +vt 0.748571 0.048701 +vt 0.751429 0.045455 +vt 0.900000 0.019481 +vt 0.920000 0.016234 +vt 0.917143 0.019481 +vt 0.897143 0.022727 +vt 0.894286 0.019481 +vt 0.920000 0.022727 +vt 0.922857 0.045455 +vt 0.920000 0.042208 +vt 0.897143 0.048701 +vt 0.862857 0.022727 +vt 0.862857 0.042208 +vt 0.768571 0.022727 +vt 0.751429 0.042208 +vt 0.917143 0.022727 +vt 0.900000 0.042208 +vt 0.900000 0.022727 +vt 0.897143 0.042208 +vt 0.771429 0.022727 +vt 0.880000 0.022727 +vt 0.882857 0.022727 +vt 0.768571 0.042208 +vt 0.737143 0.633117 +vt 0.691429 0.581169 +vt 0.737143 0.581169 +vt 0.691429 0.633117 +vt 0.371429 0.577922 +vt 0.325714 0.525974 +vt 0.325714 0.577922 +vt 0.002857 0.159091 +vt 0.094286 0.107143 +vt 0.002857 0.107143 +vt 0.371429 0.467532 +vt 0.325714 0.363636 +vt 0.325714 0.467532 +vt 0.280000 0.243506 +vt 0.234286 0.360390 +vt 0.234286 0.243506 +vt 0.280000 0.360390 +vt 0.140000 0.107143 +vt 0.231429 0.107143 +vt 0.185714 0.107143 +vt 0.882857 0.646104 +vt 0.922857 0.698052 +vt 0.957143 0.646104 +vt 0.997143 0.646104 +vt 0.325714 0.240260 +vt 0.371429 0.123377 +vt 0.325714 0.123377 +vt 0.780000 0.077922 +vt 0.785714 0.123377 +vt 0.780000 0.123377 +vt 0.745714 0.077922 +vt 0.740000 0.123377 +vt 0.740000 0.071429 +vt 0.745714 0.175325 +vt 0.745714 0.123377 +vt 0.745714 0.227273 +vt 0.740000 0.175325 +vt 0.745714 0.279221 +vt 0.740000 0.227273 +vt 0.745714 0.331169 +vt 0.740000 0.279221 +vt 0.745714 0.383117 +vt 0.740000 0.331169 +vt 0.745714 0.435065 +vt 0.740000 0.383117 +vt 0.745714 0.487013 +vt 0.740000 0.435065 +vt 0.785714 0.175325 +vt 0.780000 0.175325 +vt 0.785714 0.227273 +vt 0.780000 0.227273 +vt 0.785714 0.279221 +vt 0.780000 0.279221 +vt 0.785714 0.331169 +vt 0.780000 0.331169 +vt 0.785714 0.383117 +vt 0.780000 0.383117 +vt 0.785714 0.435065 +vt 0.780000 0.435065 +vt 0.785714 0.487013 +vt 0.780000 0.487013 +vt 0.785714 0.071429 +vt 0.780000 0.636364 +vt 0.740000 0.642857 +vt 0.745714 0.636364 +vt 0.740000 0.590909 +vt 0.745714 0.590909 +vt 0.785714 0.590909 +vt 0.785714 0.642857 +vt 0.745714 0.538961 +vt 0.740000 0.487013 +vt 0.740000 0.538961 +vt 0.785714 0.538961 +vt 0.780000 0.538961 +vt 0.780000 0.590909 +vt 0.997143 0.542208 +vt 0.957143 0.542208 +vt 0.957143 0.496753 +vt 0.788571 0.331169 +vt 0.794286 0.383117 +vt 0.788571 0.383117 +vt 0.834286 0.435065 +vt 0.828571 0.383117 +vt 0.834286 0.383117 +vt 0.788571 0.188312 +vt 0.794286 0.227273 +vt 0.788571 0.227273 +vt 0.788571 0.279221 +vt 0.794286 0.331169 +vt 0.828571 0.331169 +vt 0.834286 0.331169 +vt 0.800000 0.642857 +vt 0.822857 0.636364 +vt 0.822857 0.642857 +vt 0.794286 0.279221 +vt 0.997143 0.957792 +vt 0.962857 0.957792 +vt 0.957143 0.951299 +vt 0.957143 0.801948 +vt 0.922857 0.853896 +vt 0.922857 0.951299 +vt 0.882857 0.490260 +vt 0.917143 0.490260 +vt 0.922857 0.496753 +vt 0.997143 0.594156 +vt 0.882857 0.542208 +vt 0.922857 0.594156 +vt 0.882857 0.594156 +vt 0.957143 0.594156 +vt 0.828571 0.279221 +vt 0.834286 0.279221 +vt 0.822857 0.175325 +vt 0.800000 0.181818 +vt 0.800000 0.175325 +vt 0.922857 0.646104 +vt 0.957143 0.490260 +vt 0.922857 0.957792 +vt 0.957143 0.957792 +vt 0.928571 0.594156 +vt 0.922857 0.542208 +vt 0.928571 0.542208 +vt 0.928571 0.646104 +vt 0.928571 0.698052 +vt 0.928571 0.750000 +vt 0.928571 0.801948 +vt 0.928571 0.853896 +vt 0.951429 0.542208 +vt 0.951429 0.594156 +vt 0.951429 0.646104 +vt 0.951429 0.698052 +vt 0.951429 0.750000 +vt 0.951429 0.801948 +vt 0.951429 0.853896 +vt 0.928571 0.905844 +vt 0.957143 0.905844 +vt 0.951429 0.905844 +vt 0.928571 0.503247 +vt 0.951429 0.503247 +vt 0.951429 0.944805 +vt 0.928571 0.944805 +vt 0.825714 0.331169 +vt 0.820000 0.279221 +vt 0.825714 0.279221 +vt 0.820000 0.185065 +vt 0.802857 0.191558 +vt 0.802857 0.185065 +vt 0.820000 0.227273 +vt 0.825714 0.227273 +vt 0.825714 0.590909 +vt 0.820000 0.538961 +vt 0.825714 0.538961 +vt 0.797143 0.487013 +vt 0.802857 0.538961 +vt 0.797143 0.538961 +vt 0.802857 0.590909 +vt 0.797143 0.590909 +vt 0.825714 0.626623 +vt 0.820000 0.590909 +vt 0.797143 0.435065 +vt 0.802857 0.487013 +vt 0.820000 0.487013 +vt 0.825714 0.487013 +vt 0.834286 0.227273 +vt 0.828571 0.188312 +vt 0.834286 0.188312 +vt 0.834286 0.487013 +vt 0.828571 0.435065 +vt 0.794286 0.435065 +vt 0.788571 0.435065 +vt 0.788571 0.590909 +vt 0.794286 0.629870 +vt 0.788571 0.629870 +vt 0.834286 0.538961 +vt 0.828571 0.487013 +vt 0.794286 0.487013 +vt 0.788571 0.487013 +vt 0.834286 0.629870 +vt 0.828571 0.590909 +vt 0.834286 0.590909 +vt 0.788571 0.538961 +vt 0.794286 0.590909 +vt 0.794286 0.538961 +vt 0.828571 0.538961 +vt 0.828571 0.227273 +vt 0.774286 0.084416 +vt 0.774286 0.123377 +vt 0.751429 0.084416 +vt 0.774286 0.629870 +vt 0.751429 0.629870 +vt 0.751429 0.590909 +vt 0.951429 0.483766 +vt 0.922857 0.490260 +vt 0.928571 0.483766 +vt 0.928571 0.964286 +vt 0.951429 0.964286 +vt 0.922857 0.451299 +vt 0.928571 0.451299 +vt 0.957143 0.451299 +vt 0.957143 0.996753 +vt 0.951429 0.996753 +vt 0.922857 0.996753 +vt 0.602857 0.094156 +vt 0.580000 0.055195 +vt 0.602857 0.055195 +vt 0.685714 0.055195 +vt 0.685714 0.094156 +vt 0.551429 0.055195 +vt 0.580000 0.094156 +vt 0.551429 0.094156 +vt 0.714286 0.094156 +vt 0.714286 0.055195 +vt 0.602857 0.022727 +vt 0.580000 0.022727 +vt 0.631429 0.094156 +vt 0.631429 0.055195 +vt 0.797143 0.279221 +vt 0.797143 0.227273 +vt 0.797143 0.331169 +vt 0.797143 0.383117 +vt 0.825714 0.383117 +vt 0.825714 0.435065 +vt 0.822857 0.181818 +vt 0.820000 0.633117 +vt 0.800000 0.636364 +vt 0.802857 0.633117 +vt 0.797143 0.191558 +vt 0.794286 0.188312 +vt 0.825714 0.191558 +vt 0.797143 0.626623 +vt 0.828571 0.629870 +vt 0.802857 0.279221 +vt 0.802857 0.227273 +vt 0.802857 0.331169 +vt 0.820000 0.331169 +vt 0.802857 0.383117 +vt 0.820000 0.383117 +vt 0.802857 0.435065 +vt 0.820000 0.435065 +vt 0.820000 0.191558 +vt 0.802857 0.626623 +vt 0.820000 0.626623 +vt 0.831429 0.811688 +vt 0.837143 0.818182 +vt 0.837143 0.811688 +vt 0.837143 0.837662 +vt 0.842857 0.844156 +vt 0.842857 0.837662 +vt 0.820000 0.850649 +vt 0.814286 0.844156 +vt 0.814286 0.850649 +vt 0.814286 0.824675 +vt 0.808571 0.818182 +vt 0.808571 0.824675 +vt 0.820000 0.818182 +vt 0.820000 0.824675 +vt 0.831429 0.824675 +vt 0.837143 0.824675 +vt 0.831429 0.818182 +vt 0.837143 0.850649 +vt 0.831429 0.844156 +vt 0.831429 0.850649 +vt 0.820000 0.844156 +vt 0.814286 0.811688 +vt 0.820000 0.811688 +vt 0.831429 0.805195 +vt 0.831429 0.792208 +vt 0.820000 0.805195 +vt 0.820000 0.746753 +vt 0.814286 0.707792 +vt 0.814286 0.746753 +vt 0.837143 0.792208 +vt 0.837143 0.805195 +vt 0.831429 0.837662 +vt 0.820000 0.837662 +vt 0.837143 0.844156 +vt 0.814286 0.837662 +vt 0.808571 0.707792 +vt 0.808571 0.746753 +vt 0.820000 0.792208 +vt 0.814286 0.805195 +vt 0.808571 0.837662 +vt 0.808571 0.844156 +vt 0.842857 0.824675 +vt 0.842857 0.818182 +vt 0.837143 0.788961 +vt 0.831429 0.750000 +vt 0.831429 0.788961 +vt 0.842857 0.788961 +vt 0.837143 0.750000 +vt 0.825714 0.746753 +vt 0.820000 0.707792 +vt 0.825714 0.788961 +vt 0.820000 0.750000 +vt 0.820000 0.788961 +vt 0.831429 0.746753 +vt 0.825714 0.707792 +vt 0.825714 0.750000 +vt 0.794286 0.811688 +vt 0.800000 0.818182 +vt 0.800000 0.811688 +vt 0.800000 0.837662 +vt 0.805714 0.844156 +vt 0.805714 0.837662 +vt 0.782857 0.850649 +vt 0.777143 0.844156 +vt 0.777143 0.850649 +vt 0.777143 0.824675 +vt 0.771429 0.818182 +vt 0.771429 0.824675 +vt 0.782857 0.818182 +vt 0.782857 0.824675 +vt 0.794286 0.824675 +vt 0.800000 0.824675 +vt 0.794286 0.818182 +vt 0.800000 0.850649 +vt 0.794286 0.844156 +vt 0.794286 0.850649 +vt 0.782857 0.844156 +vt 0.777143 0.811688 +vt 0.782857 0.811688 +vt 0.794286 0.805195 +vt 0.794286 0.792208 +vt 0.782857 0.805195 +vt 0.782857 0.746753 +vt 0.777143 0.707792 +vt 0.777143 0.746753 +vt 0.800000 0.792208 +vt 0.800000 0.805195 +vt 0.794286 0.837662 +vt 0.782857 0.837662 +vt 0.800000 0.844156 +vt 0.777143 0.837662 +vt 0.771429 0.707792 +vt 0.771429 0.746753 +vt 0.782857 0.792208 +vt 0.777143 0.805195 +vt 0.771429 0.837662 +vt 0.771429 0.844156 +vt 0.805714 0.824675 +vt 0.805714 0.818182 +vt 0.800000 0.788961 +vt 0.794286 0.750000 +vt 0.794286 0.788961 +vt 0.805714 0.788961 +vt 0.800000 0.750000 +vt 0.788571 0.746753 +vt 0.782857 0.707792 +vt 0.788571 0.788961 +vt 0.782857 0.750000 +vt 0.782857 0.788961 +vt 0.794286 0.746753 +vt 0.788571 0.707792 +vt 0.788571 0.750000 +vt 0.757143 0.811688 +vt 0.762857 0.818182 +vt 0.762857 0.811688 +vt 0.762857 0.837662 +vt 0.768571 0.844156 +vt 0.768571 0.837662 +vt 0.745714 0.850649 +vt 0.740000 0.844156 +vt 0.740000 0.850649 +vt 0.740000 0.824675 +vt 0.734286 0.818182 +vt 0.734286 0.824675 +vt 0.745714 0.818182 +vt 0.745714 0.824675 +vt 0.757143 0.824675 +vt 0.762857 0.824675 +vt 0.757143 0.818182 +vt 0.762857 0.850649 +vt 0.757143 0.844156 +vt 0.757143 0.850649 +vt 0.745714 0.844156 +vt 0.740000 0.811688 +vt 0.745714 0.811688 +vt 0.757143 0.805195 +vt 0.757143 0.792208 +vt 0.745714 0.805195 +vt 0.745714 0.746753 +vt 0.740000 0.707792 +vt 0.740000 0.746753 +vt 0.762857 0.792208 +vt 0.762857 0.805195 +vt 0.757143 0.837662 +vt 0.745714 0.837662 +vt 0.762857 0.844156 +vt 0.740000 0.837662 +vt 0.734286 0.707792 +vt 0.734286 0.746753 +vt 0.745714 0.792208 +vt 0.740000 0.805195 +vt 0.734286 0.837662 +vt 0.734286 0.844156 +vt 0.768571 0.824675 +vt 0.768571 0.818182 +vt 0.762857 0.788961 +vt 0.757143 0.750000 +vt 0.757143 0.788961 +vt 0.768571 0.788961 +vt 0.762857 0.750000 +vt 0.751429 0.746753 +vt 0.745714 0.707792 +vt 0.751429 0.788961 +vt 0.745714 0.750000 +vt 0.745714 0.788961 +vt 0.757143 0.746753 +vt 0.751429 0.707792 +vt 0.751429 0.750000 +vt 0.720000 0.811688 +vt 0.725714 0.818182 +vt 0.725714 0.811688 +vt 0.725714 0.837662 +vt 0.731429 0.844156 +vt 0.731429 0.837662 +vt 0.708571 0.850649 +vt 0.702857 0.844156 +vt 0.702857 0.850649 +vt 0.702857 0.824675 +vt 0.697143 0.818182 +vt 0.697143 0.824675 +vt 0.708571 0.818182 +vt 0.708571 0.824675 +vt 0.720000 0.824675 +vt 0.725714 0.824675 +vt 0.720000 0.818182 +vt 0.725714 0.850649 +vt 0.720000 0.844156 +vt 0.720000 0.850649 +vt 0.708571 0.844156 +vt 0.702857 0.811688 +vt 0.708571 0.811688 +vt 0.720000 0.805195 +vt 0.720000 0.792208 +vt 0.708571 0.805195 +vt 0.708571 0.746753 +vt 0.702857 0.707792 +vt 0.702857 0.746753 +vt 0.725714 0.792208 +vt 0.725714 0.805195 +vt 0.720000 0.837662 +vt 0.708571 0.837662 +vt 0.725714 0.844156 +vt 0.702857 0.837662 +vt 0.697143 0.707792 +vt 0.697143 0.746753 +vt 0.708571 0.792208 +vt 0.702857 0.805195 +vt 0.697143 0.837662 +vt 0.697143 0.844156 +vt 0.731429 0.824675 +vt 0.731429 0.818182 +vt 0.725714 0.788961 +vt 0.720000 0.750000 +vt 0.720000 0.788961 +vt 0.731429 0.788961 +vt 0.725714 0.750000 +vt 0.714286 0.746753 +vt 0.708571 0.707792 +vt 0.714286 0.788961 +vt 0.708571 0.750000 +vt 0.708571 0.788961 +vt 0.720000 0.746753 +vt 0.714286 0.707792 +vt 0.714286 0.750000 +vt 0.682857 0.811688 +vt 0.688571 0.818182 +vt 0.688571 0.811688 +vt 0.688571 0.837662 +vt 0.694286 0.844156 +vt 0.694286 0.837662 +vt 0.671429 0.850649 +vt 0.665714 0.844156 +vt 0.665714 0.850649 +vt 0.665714 0.824675 +vt 0.660000 0.818182 +vt 0.660000 0.824675 +vt 0.671429 0.818182 +vt 0.671429 0.824675 +vt 0.682857 0.824675 +vt 0.688571 0.824675 +vt 0.682857 0.818182 +vt 0.688571 0.850649 +vt 0.682857 0.844156 +vt 0.682857 0.850649 +vt 0.671429 0.844156 +vt 0.665714 0.811688 +vt 0.671429 0.811688 +vt 0.682857 0.805195 +vt 0.682857 0.792208 +vt 0.671429 0.805195 +vt 0.671429 0.746753 +vt 0.665714 0.707792 +vt 0.665714 0.746753 +vt 0.688571 0.792208 +vt 0.688571 0.805195 +vt 0.682857 0.837662 +vt 0.671429 0.837662 +vt 0.688571 0.844156 +vt 0.665714 0.837662 +vt 0.660000 0.707792 +vt 0.660000 0.746753 +vt 0.671429 0.792208 +vt 0.665714 0.805195 +vt 0.660000 0.837662 +vt 0.660000 0.844156 +vt 0.694286 0.824675 +vt 0.694286 0.818182 +vt 0.688571 0.788961 +vt 0.682857 0.750000 +vt 0.682857 0.788961 +vt 0.694286 0.788961 +vt 0.688571 0.750000 +vt 0.677143 0.746753 +vt 0.671429 0.707792 +vt 0.677143 0.788961 +vt 0.671429 0.750000 +vt 0.671429 0.788961 +vt 0.682857 0.746753 +vt 0.677143 0.707792 +vt 0.677143 0.750000 +vt 0.645714 0.811688 +vt 0.651429 0.818182 +vt 0.651429 0.811688 +vt 0.651429 0.837662 +vt 0.657143 0.844156 +vt 0.657143 0.837662 +vt 0.634286 0.850649 +vt 0.628571 0.844156 +vt 0.628571 0.850649 +vt 0.628571 0.824675 +vt 0.622857 0.818182 +vt 0.622857 0.824675 +vt 0.634286 0.818182 +vt 0.634286 0.824675 +vt 0.645714 0.824675 +vt 0.651429 0.824675 +vt 0.645714 0.818182 +vt 0.651429 0.850649 +vt 0.645714 0.844156 +vt 0.645714 0.850649 +vt 0.634286 0.844156 +vt 0.628571 0.811688 +vt 0.634286 0.811688 +vt 0.645714 0.805195 +vt 0.645714 0.792208 +vt 0.634286 0.805195 +vt 0.634286 0.746753 +vt 0.628571 0.707792 +vt 0.628571 0.746753 +vt 0.651429 0.792208 +vt 0.651429 0.805195 +vt 0.645714 0.837662 +vt 0.634286 0.837662 +vt 0.651429 0.844156 +vt 0.628571 0.837662 +vt 0.622857 0.707792 +vt 0.622857 0.746753 +vt 0.634286 0.792208 +vt 0.628571 0.805195 +vt 0.622857 0.837662 +vt 0.622857 0.844156 +vt 0.657143 0.824675 +vt 0.657143 0.818182 +vt 0.651429 0.788961 +vt 0.645714 0.750000 +vt 0.645714 0.788961 +vt 0.657143 0.788961 +vt 0.651429 0.750000 +vt 0.640000 0.746753 +vt 0.634286 0.707792 +vt 0.640000 0.788961 +vt 0.634286 0.750000 +vt 0.634286 0.788961 +vt 0.645714 0.746753 +vt 0.640000 0.707792 +vt 0.640000 0.750000 +vt 0.608571 0.811688 +vt 0.614286 0.818182 +vt 0.614286 0.811688 +vt 0.614286 0.837662 +vt 0.620000 0.844156 +vt 0.620000 0.837662 +vt 0.597143 0.850649 +vt 0.591429 0.844156 +vt 0.591429 0.850649 +vt 0.591429 0.824675 +vt 0.585714 0.818182 +vt 0.585714 0.824675 +vt 0.597143 0.818182 +vt 0.597143 0.824675 +vt 0.608571 0.824675 +vt 0.614286 0.824675 +vt 0.608571 0.818182 +vt 0.614286 0.850649 +vt 0.608571 0.844156 +vt 0.608571 0.850649 +vt 0.597143 0.844156 +vt 0.591429 0.811688 +vt 0.597143 0.811688 +vt 0.608571 0.805195 +vt 0.608571 0.792208 +vt 0.597143 0.805195 +vt 0.597143 0.746753 +vt 0.591429 0.707792 +vt 0.591429 0.746753 +vt 0.614286 0.792208 +vt 0.614286 0.805195 +vt 0.608571 0.837662 +vt 0.597143 0.837662 +vt 0.614286 0.844156 +vt 0.591429 0.837662 +vt 0.585714 0.707792 +vt 0.585714 0.746753 +vt 0.597143 0.792208 +vt 0.591429 0.805195 +vt 0.585714 0.837662 +vt 0.585714 0.844156 +vt 0.620000 0.824675 +vt 0.620000 0.818182 +vt 0.614286 0.788961 +vt 0.608571 0.750000 +vt 0.608571 0.788961 +vt 0.620000 0.788961 +vt 0.614286 0.750000 +vt 0.602857 0.746753 +vt 0.597143 0.707792 +vt 0.602857 0.788961 +vt 0.597143 0.750000 +vt 0.597143 0.788961 +vt 0.608571 0.746753 +vt 0.602857 0.707792 +vt 0.602857 0.750000 +vt 0.571429 0.811688 +vt 0.577143 0.818182 +vt 0.577143 0.811688 +vt 0.577143 0.837662 +vt 0.582857 0.844156 +vt 0.582857 0.837662 +vt 0.560000 0.850649 +vt 0.554286 0.844156 +vt 0.554286 0.850649 +vt 0.554286 0.824675 +vt 0.548571 0.818182 +vt 0.548571 0.824675 +vt 0.560000 0.818182 +vt 0.560000 0.824675 +vt 0.571429 0.824675 +vt 0.577143 0.824675 +vt 0.571429 0.818182 +vt 0.577143 0.850649 +vt 0.571429 0.844156 +vt 0.571429 0.850649 +vt 0.560000 0.844156 +vt 0.554286 0.811688 +vt 0.560000 0.811688 +vt 0.571429 0.805195 +vt 0.571429 0.792208 +vt 0.560000 0.805195 +vt 0.560000 0.746753 +vt 0.554286 0.707792 +vt 0.554286 0.746753 +vt 0.577143 0.792208 +vt 0.577143 0.805195 +vt 0.571429 0.837662 +vt 0.560000 0.837662 +vt 0.577143 0.844156 +vt 0.554286 0.837662 +vt 0.548571 0.707792 +vt 0.548571 0.746753 +vt 0.560000 0.792208 +vt 0.554286 0.805195 +vt 0.548571 0.837662 +vt 0.548571 0.844156 +vt 0.582857 0.824675 +vt 0.582857 0.818182 +vt 0.577143 0.788961 +vt 0.571429 0.750000 +vt 0.571429 0.788961 +vt 0.582857 0.788961 +vt 0.577143 0.750000 +vt 0.565714 0.746753 +vt 0.560000 0.707792 +vt 0.565714 0.788961 +vt 0.560000 0.750000 +vt 0.560000 0.788961 +vt 0.571429 0.746753 +vt 0.565714 0.707792 +vt 0.565714 0.750000 +vt 0.534286 0.811688 +vt 0.540000 0.818182 +vt 0.540000 0.811688 +vt 0.540000 0.837662 +vt 0.545714 0.844156 +vt 0.545714 0.837662 +vt 0.522857 0.850649 +vt 0.517143 0.844156 +vt 0.517143 0.850649 +vt 0.517143 0.824675 +vt 0.511429 0.818182 +vt 0.511429 0.824675 +vt 0.522857 0.818182 +vt 0.522857 0.824675 +vt 0.534286 0.824675 +vt 0.540000 0.824675 +vt 0.534286 0.818182 +vt 0.540000 0.850649 +vt 0.534286 0.844156 +vt 0.534286 0.850649 +vt 0.522857 0.844156 +vt 0.517143 0.811688 +vt 0.522857 0.811688 +vt 0.534286 0.805195 +vt 0.534286 0.792208 +vt 0.522857 0.805195 +vt 0.522857 0.746753 +vt 0.517143 0.707792 +vt 0.517143 0.746753 +vt 0.540000 0.792208 +vt 0.540000 0.805195 +vt 0.534286 0.837662 +vt 0.522857 0.837662 +vt 0.540000 0.844156 +vt 0.517143 0.837662 +vt 0.511429 0.707792 +vt 0.511429 0.746753 +vt 0.522857 0.792208 +vt 0.517143 0.805195 +vt 0.511429 0.837662 +vt 0.511429 0.844156 +vt 0.545714 0.824675 +vt 0.545714 0.818182 +vt 0.540000 0.788961 +vt 0.534286 0.750000 +vt 0.534286 0.788961 +vt 0.545714 0.788961 +vt 0.540000 0.750000 +vt 0.528571 0.746753 +vt 0.522857 0.707792 +vt 0.528571 0.788961 +vt 0.522857 0.750000 +vt 0.522857 0.788961 +vt 0.534286 0.746753 +vt 0.528571 0.707792 +vt 0.528571 0.750000 +vt 0.497143 0.811688 +vt 0.502857 0.818182 +vt 0.502857 0.811688 +vt 0.502857 0.837662 +vt 0.508571 0.844156 +vt 0.508571 0.837662 +vt 0.485714 0.850649 +vt 0.480000 0.844156 +vt 0.480000 0.850649 +vt 0.480000 0.824675 +vt 0.474286 0.818182 +vt 0.474286 0.824675 +vt 0.485714 0.818182 +vt 0.485714 0.824675 +vt 0.497143 0.824675 +vt 0.502857 0.824675 +vt 0.497143 0.818182 +vt 0.502857 0.850649 +vt 0.497143 0.844156 +vt 0.497143 0.850649 +vt 0.485714 0.844156 +vt 0.480000 0.811688 +vt 0.485714 0.811688 +vt 0.497143 0.805195 +vt 0.497143 0.792208 +vt 0.485714 0.805195 +vt 0.485714 0.746753 +vt 0.480000 0.707792 +vt 0.480000 0.746753 +vt 0.502857 0.792208 +vt 0.502857 0.805195 +vt 0.497143 0.837662 +vt 0.485714 0.837662 +vt 0.502857 0.844156 +vt 0.480000 0.837662 +vt 0.474286 0.707792 +vt 0.474286 0.746753 +vt 0.485714 0.792208 +vt 0.480000 0.805195 +vt 0.474286 0.837662 +vt 0.474286 0.844156 +vt 0.508571 0.824675 +vt 0.508571 0.818182 +vt 0.502857 0.788961 +vt 0.497143 0.750000 +vt 0.497143 0.788961 +vt 0.508571 0.788961 +vt 0.502857 0.750000 +vt 0.491429 0.746753 +vt 0.485714 0.707792 +vt 0.491429 0.788961 +vt 0.485714 0.750000 +vt 0.485714 0.788961 +vt 0.497143 0.746753 +vt 0.491429 0.707792 +vt 0.491429 0.750000 +vt 0.868571 0.811688 +vt 0.874286 0.818182 +vt 0.874286 0.811688 +vt 0.874286 0.837662 +vt 0.880000 0.844156 +vt 0.880000 0.837662 +vt 0.857143 0.850649 +vt 0.851429 0.844156 +vt 0.851429 0.850649 +vt 0.851429 0.824675 +vt 0.845714 0.818182 +vt 0.845714 0.824675 +vt 0.857143 0.818182 +vt 0.857143 0.824675 +vt 0.868571 0.824675 +vt 0.874286 0.824675 +vt 0.868571 0.818182 +vt 0.874286 0.850649 +vt 0.868571 0.844156 +vt 0.868571 0.850649 +vt 0.857143 0.844156 +vt 0.851429 0.811688 +vt 0.857143 0.811688 +vt 0.868571 0.805195 +vt 0.868571 0.792208 +vt 0.857143 0.805195 +vt 0.857143 0.746753 +vt 0.851429 0.707792 +vt 0.851429 0.746753 +vt 0.874286 0.792208 +vt 0.874286 0.805195 +vt 0.868571 0.837662 +vt 0.857143 0.837662 +vt 0.874286 0.844156 +vt 0.851429 0.837662 +vt 0.845714 0.707792 +vt 0.845714 0.746753 +vt 0.857143 0.792208 +vt 0.851429 0.805195 +vt 0.845714 0.837662 +vt 0.845714 0.844156 +vt 0.880000 0.824675 +vt 0.880000 0.818182 +vt 0.874286 0.788961 +vt 0.868571 0.750000 +vt 0.868571 0.788961 +vt 0.880000 0.788961 +vt 0.874286 0.750000 +vt 0.862857 0.746753 +vt 0.857143 0.707792 +vt 0.862857 0.788961 +vt 0.857143 0.750000 +vt 0.857143 0.788961 +vt 0.868571 0.746753 +vt 0.862857 0.707792 +vt 0.862857 0.750000 +vt 0.522857 0.957792 +vt 0.517143 0.964286 +vt 0.522857 0.964286 +vt 0.511429 0.990260 +vt 0.517143 0.983766 +vt 0.511429 0.983766 +vt 0.534286 0.996753 +vt 0.540000 0.990260 +vt 0.534286 0.990260 +vt 0.545714 0.964286 +vt 0.540000 0.970779 +vt 0.545714 0.970779 +vt 0.534286 0.964286 +vt 0.534286 0.970779 +vt 0.522857 0.970779 +vt 0.517143 0.970779 +vt 0.517143 0.996753 +vt 0.522857 0.990260 +vt 0.517143 0.990260 +vt 0.522857 0.996753 +vt 0.540000 0.957792 +vt 0.540000 0.964286 +vt 0.534286 0.957792 +vt 0.522857 0.951299 +vt 0.534286 0.951299 +vt 0.522857 0.938312 +vt 0.540000 0.853896 +vt 0.534286 0.892857 +vt 0.540000 0.892857 +vt 0.517143 0.938312 +vt 0.517143 0.951299 +vt 0.522857 0.983766 +vt 0.534286 0.983766 +vt 0.540000 0.983766 +vt 0.545714 0.853896 +vt 0.545714 0.892857 +vt 0.540000 0.951299 +vt 0.534286 0.938312 +vt 0.545714 0.983766 +vt 0.545714 0.990260 +vt 0.511429 0.970779 +vt 0.511429 0.964286 +vt 0.522857 0.896104 +vt 0.517143 0.935065 +vt 0.522857 0.935065 +vt 0.517143 0.896104 +vt 0.511429 0.935065 +vt 0.534286 0.853896 +vt 0.528571 0.892857 +vt 0.534286 0.896104 +vt 0.528571 0.935065 +vt 0.534286 0.935065 +vt 0.528571 0.853896 +vt 0.522857 0.892857 +vt 0.528571 0.896104 +vt 0.560000 0.957792 +vt 0.554286 0.964286 +vt 0.560000 0.964286 +vt 0.548571 0.990260 +vt 0.554286 0.983766 +vt 0.548571 0.983766 +vt 0.571429 0.996753 +vt 0.577143 0.990260 +vt 0.571429 0.990260 +vt 0.582857 0.964286 +vt 0.577143 0.970779 +vt 0.582857 0.970779 +vt 0.571429 0.964286 +vt 0.571429 0.970779 +vt 0.560000 0.970779 +vt 0.554286 0.970779 +vt 0.554286 0.996753 +vt 0.560000 0.990260 +vt 0.554286 0.990260 +vt 0.560000 0.996753 +vt 0.577143 0.957792 +vt 0.577143 0.964286 +vt 0.571429 0.957792 +vt 0.560000 0.951299 +vt 0.571429 0.951299 +vt 0.560000 0.938312 +vt 0.577143 0.853896 +vt 0.571429 0.892857 +vt 0.577143 0.892857 +vt 0.554286 0.938312 +vt 0.554286 0.951299 +vt 0.560000 0.983766 +vt 0.571429 0.983766 +vt 0.577143 0.983766 +vt 0.582857 0.853896 +vt 0.582857 0.892857 +vt 0.577143 0.951299 +vt 0.571429 0.938312 +vt 0.582857 0.983766 +vt 0.582857 0.990260 +vt 0.548571 0.970779 +vt 0.548571 0.964286 +vt 0.560000 0.896104 +vt 0.554286 0.935065 +vt 0.560000 0.935065 +vt 0.554286 0.896104 +vt 0.548571 0.935065 +vt 0.571429 0.853896 +vt 0.565714 0.892857 +vt 0.571429 0.896104 +vt 0.565714 0.935065 +vt 0.571429 0.935065 +vt 0.565714 0.853896 +vt 0.560000 0.892857 +vt 0.565714 0.896104 +vt 0.597143 0.957792 +vt 0.591429 0.964286 +vt 0.597143 0.964286 +vt 0.585714 0.990260 +vt 0.591429 0.983766 +vt 0.585714 0.983766 +vt 0.608571 0.996753 +vt 0.614286 0.990260 +vt 0.608571 0.990260 +vt 0.620000 0.964286 +vt 0.614286 0.970779 +vt 0.620000 0.970779 +vt 0.608571 0.964286 +vt 0.608571 0.970779 +vt 0.597143 0.970779 +vt 0.591429 0.970779 +vt 0.591429 0.996753 +vt 0.597143 0.990260 +vt 0.591429 0.990260 +vt 0.597143 0.996753 +vt 0.614286 0.957792 +vt 0.614286 0.964286 +vt 0.608571 0.957792 +vt 0.597143 0.951299 +vt 0.608571 0.951299 +vt 0.597143 0.938312 +vt 0.614286 0.853896 +vt 0.608571 0.892857 +vt 0.614286 0.892857 +vt 0.591429 0.938312 +vt 0.591429 0.951299 +vt 0.597143 0.983766 +vt 0.608571 0.983766 +vt 0.614286 0.983766 +vt 0.620000 0.853896 +vt 0.620000 0.892857 +vt 0.614286 0.951299 +vt 0.608571 0.938312 +vt 0.620000 0.983766 +vt 0.620000 0.990260 +vt 0.585714 0.970779 +vt 0.585714 0.964286 +vt 0.597143 0.896104 +vt 0.591429 0.935065 +vt 0.597143 0.935065 +vt 0.591429 0.896104 +vt 0.585714 0.935065 +vt 0.608571 0.853896 +vt 0.602857 0.892857 +vt 0.608571 0.896104 +vt 0.602857 0.935065 +vt 0.608571 0.935065 +vt 0.602857 0.853896 +vt 0.597143 0.892857 +vt 0.602857 0.896104 +vt 0.634286 0.957792 +vt 0.628571 0.964286 +vt 0.634286 0.964286 +vt 0.622857 0.990260 +vt 0.628571 0.983766 +vt 0.622857 0.983766 +vt 0.645714 0.996753 +vt 0.651429 0.990260 +vt 0.645714 0.990260 +vt 0.657143 0.964286 +vt 0.651429 0.970779 +vt 0.657143 0.970779 +vt 0.645714 0.964286 +vt 0.645714 0.970779 +vt 0.634286 0.970779 +vt 0.628571 0.970779 +vt 0.628571 0.996753 +vt 0.634286 0.990260 +vt 0.628571 0.990260 +vt 0.634286 0.996753 +vt 0.651429 0.957792 +vt 0.651429 0.964286 +vt 0.645714 0.957792 +vt 0.634286 0.951299 +vt 0.645714 0.951299 +vt 0.634286 0.938312 +vt 0.651429 0.853896 +vt 0.645714 0.892857 +vt 0.651429 0.892857 +vt 0.628571 0.938312 +vt 0.628571 0.951299 +vt 0.634286 0.983766 +vt 0.645714 0.983766 +vt 0.651429 0.983766 +vt 0.657143 0.853896 +vt 0.657143 0.892857 +vt 0.651429 0.951299 +vt 0.645714 0.938312 +vt 0.657143 0.983766 +vt 0.657143 0.990260 +vt 0.622857 0.970779 +vt 0.622857 0.964286 +vt 0.634286 0.896104 +vt 0.628571 0.935065 +vt 0.634286 0.935065 +vt 0.628571 0.896104 +vt 0.622857 0.935065 +vt 0.645714 0.853896 +vt 0.640000 0.892857 +vt 0.645714 0.896104 +vt 0.640000 0.935065 +vt 0.645714 0.935065 +vt 0.640000 0.853896 +vt 0.634286 0.892857 +vt 0.640000 0.896104 +vt 0.671429 0.957792 +vt 0.665714 0.964286 +vt 0.671429 0.964286 +vt 0.660000 0.990260 +vt 0.665714 0.983766 +vt 0.660000 0.983766 +vt 0.682857 0.996753 +vt 0.688571 0.990260 +vt 0.682857 0.990260 +vt 0.694286 0.964286 +vt 0.688571 0.970779 +vt 0.694286 0.970779 +vt 0.682857 0.964286 +vt 0.682857 0.970779 +vt 0.671429 0.970779 +vt 0.665714 0.970779 +vt 0.665714 0.996753 +vt 0.671429 0.990260 +vt 0.665714 0.990260 +vt 0.671429 0.996753 +vt 0.688571 0.957792 +vt 0.688571 0.964286 +vt 0.682857 0.957792 +vt 0.671429 0.951299 +vt 0.682857 0.951299 +vt 0.671429 0.938312 +vt 0.688571 0.853896 +vt 0.682857 0.892857 +vt 0.688571 0.892857 +vt 0.665714 0.938312 +vt 0.665714 0.951299 +vt 0.671429 0.983766 +vt 0.682857 0.983766 +vt 0.688571 0.983766 +vt 0.694286 0.853896 +vt 0.694286 0.892857 +vt 0.688571 0.951299 +vt 0.682857 0.938312 +vt 0.694286 0.983766 +vt 0.694286 0.990260 +vt 0.660000 0.970779 +vt 0.660000 0.964286 +vt 0.671429 0.896104 +vt 0.665714 0.935065 +vt 0.671429 0.935065 +vt 0.665714 0.896104 +vt 0.660000 0.935065 +vt 0.682857 0.853896 +vt 0.677143 0.892857 +vt 0.682857 0.896104 +vt 0.677143 0.935065 +vt 0.682857 0.935065 +vt 0.677143 0.853896 +vt 0.671429 0.892857 +vt 0.677143 0.896104 +vt 0.708571 0.957792 +vt 0.702857 0.964286 +vt 0.708571 0.964286 +vt 0.697143 0.990260 +vt 0.702857 0.983766 +vt 0.697143 0.983766 +vt 0.720000 0.996753 +vt 0.725714 0.990260 +vt 0.720000 0.990260 +vt 0.731429 0.964286 +vt 0.725714 0.970779 +vt 0.731429 0.970779 +vt 0.720000 0.964286 +vt 0.720000 0.970779 +vt 0.708571 0.970779 +vt 0.702857 0.970779 +vt 0.702857 0.996753 +vt 0.708571 0.990260 +vt 0.702857 0.990260 +vt 0.708571 0.996753 +vt 0.725714 0.957792 +vt 0.725714 0.964286 +vt 0.720000 0.957792 +vt 0.708571 0.951299 +vt 0.720000 0.951299 +vt 0.708571 0.938312 +vt 0.725714 0.853896 +vt 0.720000 0.892857 +vt 0.725714 0.892857 +vt 0.702857 0.938312 +vt 0.702857 0.951299 +vt 0.708571 0.983766 +vt 0.720000 0.983766 +vt 0.725714 0.983766 +vt 0.731429 0.853896 +vt 0.731429 0.892857 +vt 0.725714 0.951299 +vt 0.720000 0.938312 +vt 0.731429 0.983766 +vt 0.731429 0.990260 +vt 0.697143 0.970779 +vt 0.697143 0.964286 +vt 0.708571 0.896104 +vt 0.702857 0.935065 +vt 0.708571 0.935065 +vt 0.702857 0.896104 +vt 0.697143 0.935065 +vt 0.720000 0.853896 +vt 0.714286 0.892857 +vt 0.720000 0.896104 +vt 0.714286 0.935065 +vt 0.720000 0.935065 +vt 0.714286 0.853896 +vt 0.708571 0.892857 +vt 0.714286 0.896104 +vt 0.745714 0.957792 +vt 0.740000 0.964286 +vt 0.745714 0.964286 +vt 0.734286 0.990260 +vt 0.740000 0.983766 +vt 0.734286 0.983766 +vt 0.757143 0.996753 +vt 0.762857 0.990260 +vt 0.757143 0.990260 +vt 0.768571 0.964286 +vt 0.762857 0.970779 +vt 0.768571 0.970779 +vt 0.757143 0.964286 +vt 0.757143 0.970779 +vt 0.745714 0.970779 +vt 0.740000 0.970779 +vt 0.740000 0.996753 +vt 0.745714 0.990260 +vt 0.740000 0.990260 +vt 0.745714 0.996753 +vt 0.762857 0.957792 +vt 0.762857 0.964286 +vt 0.757143 0.957792 +vt 0.745714 0.951299 +vt 0.757143 0.951299 +vt 0.745714 0.938312 +vt 0.762857 0.853896 +vt 0.757143 0.892857 +vt 0.762857 0.892857 +vt 0.740000 0.938312 +vt 0.740000 0.951299 +vt 0.745714 0.983766 +vt 0.757143 0.983766 +vt 0.762857 0.983766 +vt 0.768571 0.853896 +vt 0.768571 0.892857 +vt 0.762857 0.951299 +vt 0.757143 0.938312 +vt 0.768571 0.983766 +vt 0.768571 0.990260 +vt 0.734286 0.970779 +vt 0.734286 0.964286 +vt 0.745714 0.896104 +vt 0.740000 0.935065 +vt 0.745714 0.935065 +vt 0.740000 0.896104 +vt 0.734286 0.935065 +vt 0.757143 0.853896 +vt 0.751429 0.892857 +vt 0.757143 0.896104 +vt 0.751429 0.935065 +vt 0.757143 0.935065 +vt 0.751429 0.853896 +vt 0.745714 0.892857 +vt 0.751429 0.896104 +vt 0.782857 0.957792 +vt 0.777143 0.964286 +vt 0.782857 0.964286 +vt 0.771429 0.990260 +vt 0.777143 0.983766 +vt 0.771429 0.983766 +vt 0.794286 0.996753 +vt 0.800000 0.990260 +vt 0.794286 0.990260 +vt 0.805714 0.964286 +vt 0.800000 0.970779 +vt 0.805714 0.970779 +vt 0.794286 0.964286 +vt 0.794286 0.970779 +vt 0.782857 0.970779 +vt 0.777143 0.970779 +vt 0.777143 0.996753 +vt 0.782857 0.990260 +vt 0.777143 0.990260 +vt 0.782857 0.996753 +vt 0.800000 0.957792 +vt 0.800000 0.964286 +vt 0.794286 0.957792 +vt 0.782857 0.951299 +vt 0.794286 0.951299 +vt 0.782857 0.938312 +vt 0.800000 0.853896 +vt 0.794286 0.892857 +vt 0.800000 0.892857 +vt 0.777143 0.938312 +vt 0.777143 0.951299 +vt 0.782857 0.983766 +vt 0.794286 0.983766 +vt 0.800000 0.983766 +vt 0.805714 0.853896 +vt 0.805714 0.892857 +vt 0.800000 0.951299 +vt 0.794286 0.938312 +vt 0.805714 0.983766 +vt 0.805714 0.990260 +vt 0.771429 0.970779 +vt 0.771429 0.964286 +vt 0.782857 0.896104 +vt 0.777143 0.935065 +vt 0.782857 0.935065 +vt 0.777143 0.896104 +vt 0.771429 0.935065 +vt 0.794286 0.853896 +vt 0.788571 0.892857 +vt 0.794286 0.896104 +vt 0.788571 0.935065 +vt 0.794286 0.935065 +vt 0.788571 0.853896 +vt 0.782857 0.892857 +vt 0.788571 0.896104 +vt 0.820000 0.957792 +vt 0.814286 0.964286 +vt 0.820000 0.964286 +vt 0.808571 0.990260 +vt 0.814286 0.983766 +vt 0.808571 0.983766 +vt 0.831429 0.996753 +vt 0.837143 0.990260 +vt 0.831429 0.990260 +vt 0.842857 0.964286 +vt 0.837143 0.970779 +vt 0.842857 0.970779 +vt 0.831429 0.964286 +vt 0.831429 0.970779 +vt 0.820000 0.970779 +vt 0.814286 0.970779 +vt 0.814286 0.996753 +vt 0.820000 0.990260 +vt 0.814286 0.990260 +vt 0.820000 0.996753 +vt 0.837143 0.957792 +vt 0.837143 0.964286 +vt 0.831429 0.957792 +vt 0.820000 0.951299 +vt 0.831429 0.951299 +vt 0.820000 0.938312 +vt 0.837143 0.853896 +vt 0.831429 0.892857 +vt 0.837143 0.892857 +vt 0.814286 0.938312 +vt 0.814286 0.951299 +vt 0.820000 0.983766 +vt 0.831429 0.983766 +vt 0.837143 0.983766 +vt 0.842857 0.853896 +vt 0.842857 0.892857 +vt 0.837143 0.951299 +vt 0.831429 0.938312 +vt 0.842857 0.983766 +vt 0.842857 0.990260 +vt 0.808571 0.970779 +vt 0.808571 0.964286 +vt 0.820000 0.896104 +vt 0.814286 0.935065 +vt 0.820000 0.935065 +vt 0.814286 0.896104 +vt 0.808571 0.935065 +vt 0.831429 0.853896 +vt 0.825714 0.892857 +vt 0.831429 0.896104 +vt 0.825714 0.935065 +vt 0.831429 0.935065 +vt 0.825714 0.853896 +vt 0.820000 0.892857 +vt 0.825714 0.896104 +vt 0.857143 0.957792 +vt 0.851429 0.964286 +vt 0.857143 0.964286 +vt 0.845714 0.990260 +vt 0.851429 0.983766 +vt 0.845714 0.983766 +vt 0.868571 0.996753 +vt 0.874286 0.990260 +vt 0.868571 0.990260 +vt 0.880000 0.964286 +vt 0.874286 0.970779 +vt 0.880000 0.970779 +vt 0.868571 0.964286 +vt 0.868571 0.970779 +vt 0.857143 0.970779 +vt 0.851429 0.970779 +vt 0.851429 0.996753 +vt 0.857143 0.990260 +vt 0.851429 0.990260 +vt 0.857143 0.996753 +vt 0.874286 0.957792 +vt 0.874286 0.964286 +vt 0.868571 0.957792 +vt 0.857143 0.951299 +vt 0.868571 0.951299 +vt 0.857143 0.938312 +vt 0.874286 0.853896 +vt 0.868571 0.892857 +vt 0.874286 0.892857 +vt 0.851429 0.938312 +vt 0.851429 0.951299 +vt 0.857143 0.983766 +vt 0.868571 0.983766 +vt 0.874286 0.983766 +vt 0.880000 0.853896 +vt 0.880000 0.892857 +vt 0.874286 0.951299 +vt 0.868571 0.938312 +vt 0.880000 0.983766 +vt 0.880000 0.990260 +vt 0.845714 0.970779 +vt 0.845714 0.964286 +vt 0.857143 0.896104 +vt 0.851429 0.935065 +vt 0.857143 0.935065 +vt 0.851429 0.896104 +vt 0.845714 0.935065 +vt 0.868571 0.853896 +vt 0.862857 0.892857 +vt 0.868571 0.896104 +vt 0.862857 0.935065 +vt 0.868571 0.935065 +vt 0.862857 0.853896 +vt 0.857143 0.892857 +vt 0.862857 0.896104 +vt 0.485714 0.957792 +vt 0.480000 0.964286 +vt 0.485714 0.964286 +vt 0.474286 0.990260 +vt 0.480000 0.983766 +vt 0.474286 0.983766 +vt 0.497143 0.996753 +vt 0.502857 0.990260 +vt 0.497143 0.990260 +vt 0.508571 0.964286 +vt 0.502857 0.970779 +vt 0.508571 0.970779 +vt 0.497143 0.964286 +vt 0.497143 0.970779 +vt 0.485714 0.970779 +vt 0.480000 0.970779 +vt 0.480000 0.996753 +vt 0.485714 0.990260 +vt 0.480000 0.990260 +vt 0.485714 0.996753 +vt 0.502857 0.957792 +vt 0.502857 0.964286 +vt 0.497143 0.957792 +vt 0.485714 0.951299 +vt 0.497143 0.951299 +vt 0.485714 0.938312 +vt 0.502857 0.853896 +vt 0.497143 0.892857 +vt 0.502857 0.892857 +vt 0.480000 0.938312 +vt 0.480000 0.951299 +vt 0.485714 0.983766 +vt 0.497143 0.983766 +vt 0.502857 0.983766 +vt 0.508571 0.853896 +vt 0.508571 0.892857 +vt 0.502857 0.951299 +vt 0.497143 0.938312 +vt 0.508571 0.983766 +vt 0.508571 0.990260 +vt 0.474286 0.970779 +vt 0.474286 0.964286 +vt 0.485714 0.896104 +vt 0.480000 0.935065 +vt 0.485714 0.935065 +vt 0.480000 0.896104 +vt 0.474286 0.935065 +vt 0.497143 0.853896 +vt 0.491429 0.892857 +vt 0.497143 0.896104 +vt 0.491429 0.935065 +vt 0.497143 0.935065 +vt 0.491429 0.853896 +vt 0.485714 0.892857 +vt 0.491429 0.896104 +vt 0.822857 0.149351 +vt 0.814286 0.139610 +vt 0.822857 0.129870 +vt 0.822857 0.126623 +vt 0.820000 0.113636 +vt 0.822857 0.113636 +vt 0.811429 0.139610 +vt 0.802857 0.149351 +vt 0.802857 0.129870 +vt 0.822857 0.110390 +vt 0.811429 0.159091 +vt 0.820000 0.110390 +vt 0.822857 0.090909 +vt 0.834286 0.113636 +vt 0.817143 0.110390 +vt 0.820000 0.090909 +vt 0.834286 0.110390 +vt 0.837143 0.113636 +vt 0.834286 0.149351 +vt 0.840000 0.110390 +vt 0.837143 0.090909 +vt 0.840000 0.090909 +vt 0.854286 0.149351 +vt 0.845714 0.139610 +vt 0.854286 0.129870 +vt 0.834286 0.090909 +vt 0.837143 0.110390 +vt 0.842857 0.139610 +vt 0.845714 0.159091 +vt 0.842857 0.159091 +vt 0.834286 0.126623 +vt 0.888571 0.149351 +vt 0.880000 0.139610 +vt 0.880000 0.159091 +vt 0.885714 0.113636 +vt 0.888571 0.126623 +vt 0.888571 0.113636 +vt 0.868571 0.149351 +vt 0.877143 0.139610 +vt 0.868571 0.129870 +vt 0.888571 0.110390 +vt 0.877143 0.159091 +vt 0.888571 0.090909 +vt 0.885714 0.110390 +vt 0.900000 0.113636 +vt 0.882857 0.110390 +vt 0.885714 0.090909 +vt 0.882857 0.090909 +vt 0.902857 0.113636 +vt 0.900000 0.110390 +vt 0.900000 0.149351 +vt 0.888571 0.129870 +vt 0.902857 0.090909 +vt 0.905714 0.110390 +vt 0.905714 0.090909 +vt 0.911429 0.139610 +vt 0.920000 0.149351 +vt 0.920000 0.129870 +vt 0.902857 0.110390 +vt 0.900000 0.090909 +vt 0.911429 0.159091 +vt 0.908571 0.139610 +vt 0.908571 0.159091 +vt 0.900000 0.126623 +vt 0.900000 0.129870 +vt 0.868571 0.308442 +vt 0.862857 0.191558 +vt 0.868571 0.191558 +vt 0.862857 0.308442 +vt 0.857143 0.191558 +vt 0.874286 0.191558 +vt 0.862857 0.185065 +vt 0.868571 0.314935 +vt 0.862857 0.314935 +vt 0.888571 0.308442 +vt 0.882857 0.191558 +vt 0.888571 0.191558 +vt 0.882857 0.308442 +vt 0.877143 0.191558 +vt 0.894286 0.191558 +vt 0.882857 0.185065 +vt 0.888571 0.314935 +vt 0.882857 0.314935 +vt 0.908571 0.308442 +vt 0.902857 0.191558 +vt 0.908571 0.191558 +vt 0.902857 0.308442 +vt 0.897143 0.191558 +vt 0.914286 0.191558 +vt 0.902857 0.185065 +vt 0.908571 0.314935 +vt 0.902857 0.314935 +vt 0.928571 0.308442 +vt 0.922857 0.191558 +vt 0.928571 0.191558 +vt 0.922857 0.308442 +vt 0.917143 0.191558 +vt 0.934286 0.191558 +vt 0.922857 0.185065 +vt 0.928571 0.314935 +vt 0.922857 0.314935 +vt 0.848571 0.308442 +vt 0.842857 0.191558 +vt 0.848571 0.191558 +vt 0.842857 0.308442 +vt 0.837143 0.191558 +vt 0.854286 0.191558 +vt 0.842857 0.185065 +vt 0.848571 0.314935 +vt 0.842857 0.314935 +vt 0.862857 0.324675 +vt 0.868571 0.441558 +vt 0.868571 0.324675 +vt 0.857143 0.441558 +vt 0.862857 0.441558 +vt 0.874286 0.324675 +vt 0.874286 0.441558 +vt 0.862857 0.318182 +vt 0.868571 0.448052 +vt 0.862857 0.448052 +vt 0.882857 0.324675 +vt 0.888571 0.441558 +vt 0.888571 0.324675 +vt 0.877143 0.441558 +vt 0.882857 0.441558 +vt 0.894286 0.324675 +vt 0.894286 0.441558 +vt 0.882857 0.318182 +vt 0.888571 0.448052 +vt 0.882857 0.448052 +vt 0.902857 0.324675 +vt 0.908571 0.441558 +vt 0.908571 0.324675 +vt 0.897143 0.441558 +vt 0.902857 0.441558 +vt 0.914286 0.324675 +vt 0.914286 0.441558 +vt 0.902857 0.318182 +vt 0.908571 0.448052 +vt 0.902857 0.448052 +vt 0.922857 0.324675 +vt 0.928571 0.441558 +vt 0.928571 0.324675 +vt 0.917143 0.441558 +vt 0.922857 0.441558 +vt 0.934286 0.324675 +vt 0.934286 0.441558 +vt 0.922857 0.318182 +vt 0.928571 0.448052 +vt 0.922857 0.448052 +vt 0.842857 0.324675 +vt 0.848571 0.441558 +vt 0.848571 0.324675 +vt 0.837143 0.441558 +vt 0.842857 0.441558 +vt 0.854286 0.324675 +vt 0.854286 0.441558 +vt 0.842857 0.318182 +vt 0.848571 0.448052 +vt 0.842857 0.448052 +vt 0.471429 0.788961 +vt 0.448571 0.685065 +vt 0.471429 0.685065 +vt 0.425714 0.788961 +vt 0.402857 0.685065 +vt 0.425714 0.685065 +vt 0.425714 0.808442 +vt 0.402857 0.860390 +vt 0.402857 0.808442 +vt 0.402857 0.798701 +vt 0.448571 0.788961 +vt 0.471429 0.798701 +vt 0.448571 0.808442 +vt 0.471429 0.808442 +vt 0.448571 0.860390 +vt 0.448571 0.879870 +vt 0.471429 0.889610 +vt 0.448571 0.899351 +vt 0.402857 0.870130 +vt 0.425714 0.860390 +vt 0.425714 0.879870 +vt 0.471429 0.870130 +vt 0.402857 0.899351 +vt 0.425714 0.996753 +vt 0.402857 0.996753 +vt 0.402857 0.889610 +vt 0.425714 0.899351 +vt 0.471429 0.899351 +vt 0.448571 0.996753 +vt 0.377143 0.788961 +vt 0.354286 0.685065 +vt 0.377143 0.685065 +vt 0.331429 0.788961 +vt 0.308571 0.685065 +vt 0.331429 0.685065 +vt 0.331429 0.808442 +vt 0.308571 0.860390 +vt 0.308571 0.808442 +vt 0.308571 0.798701 +vt 0.354286 0.788961 +vt 0.377143 0.798701 +vt 0.354286 0.808442 +vt 0.377143 0.808442 +vt 0.354286 0.860390 +vt 0.354286 0.879870 +vt 0.377143 0.889610 +vt 0.354286 0.899351 +vt 0.308571 0.870130 +vt 0.331429 0.860390 +vt 0.331429 0.879870 +vt 0.377143 0.870130 +vt 0.308571 0.899351 +vt 0.331429 0.996753 +vt 0.308571 0.996753 +vt 0.308571 0.889610 +vt 0.331429 0.899351 +vt 0.377143 0.899351 +vt 0.354286 0.996753 +vt 0.282857 0.788961 +vt 0.260000 0.685065 +vt 0.282857 0.685065 +vt 0.237143 0.788961 +vt 0.214286 0.685065 +vt 0.237143 0.685065 +vt 0.237143 0.808442 +vt 0.214286 0.860390 +vt 0.214286 0.808442 +vt 0.214286 0.798701 +vt 0.260000 0.788961 +vt 0.282857 0.798701 +vt 0.260000 0.808442 +vt 0.282857 0.808442 +vt 0.260000 0.860390 +vt 0.260000 0.879870 +vt 0.282857 0.889610 +vt 0.260000 0.899351 +vt 0.214286 0.870130 +vt 0.237143 0.860390 +vt 0.237143 0.879870 +vt 0.282857 0.870130 +vt 0.214286 0.899351 +vt 0.237143 0.996753 +vt 0.214286 0.996753 +vt 0.214286 0.889610 +vt 0.237143 0.899351 +vt 0.282857 0.899351 +vt 0.260000 0.996753 +vt 0.188571 0.788961 +vt 0.165714 0.685065 +vt 0.188571 0.685065 +vt 0.142857 0.788961 +vt 0.120000 0.685065 +vt 0.142857 0.685065 +vt 0.142857 0.808442 +vt 0.120000 0.860390 +vt 0.120000 0.808442 +vt 0.120000 0.798701 +vt 0.165714 0.788961 +vt 0.188571 0.798701 +vt 0.165714 0.808442 +vt 0.188571 0.808442 +vt 0.165714 0.860390 +vt 0.165714 0.879870 +vt 0.188571 0.889610 +vt 0.165714 0.899351 +vt 0.120000 0.870130 +vt 0.142857 0.860390 +vt 0.142857 0.879870 +vt 0.188571 0.870130 +vt 0.120000 0.899351 +vt 0.142857 0.996753 +vt 0.120000 0.996753 +vt 0.120000 0.889610 +vt 0.142857 0.899351 +vt 0.188571 0.899351 +vt 0.165714 0.996753 +vt 0.094286 0.788961 +vt 0.071429 0.685065 +vt 0.094286 0.685065 +vt 0.048571 0.788961 +vt 0.025714 0.685065 +vt 0.048571 0.685065 +vt 0.048571 0.808442 +vt 0.025714 0.860390 +vt 0.025714 0.808442 +vt 0.025714 0.798701 +vt 0.071429 0.788961 +vt 0.094286 0.798701 +vt 0.071429 0.808442 +vt 0.094286 0.808442 +vt 0.071429 0.860390 +vt 0.071429 0.879870 +vt 0.094286 0.889610 +vt 0.071429 0.899351 +vt 0.025714 0.870130 +vt 0.048571 0.860390 +vt 0.048571 0.879870 +vt 0.094286 0.870130 +vt 0.025714 0.899351 +vt 0.048571 0.996753 +vt 0.025714 0.996753 +vt 0.025714 0.889610 +vt 0.048571 0.899351 +vt 0.094286 0.899351 +vt 0.071429 0.996753 +vt 0.737143 0.240260 +vt 0.234286 0.123377 +vt 0.234286 0.522727 +vt 0.185714 0.574675 +vt 0.737143 0.243506 +vt 0.737143 0.467532 +vt 0.737143 0.525974 +vt 0.234286 0.581169 +vt 0.234286 0.467532 +vt 0.002857 0.003247 +vt 0.234286 0.577922 +vt 0.697143 0.470779 +vt 0.962857 0.490260 +vt 0.997143 0.490260 +vt 0.917143 0.957792 +vt 0.882857 0.957792 +vt 0.751429 0.123377 +vt 0.774286 0.590909 +vt 0.951429 0.451299 +vt 0.928571 0.996753 +vt 0.814286 0.818182 +vt 0.814286 0.792208 +vt 0.842857 0.750000 +vt 0.831429 0.707792 +vt 0.777143 0.818182 +vt 0.777143 0.792208 +vt 0.805714 0.750000 +vt 0.794286 0.707792 +vt 0.740000 0.818182 +vt 0.740000 0.792208 +vt 0.768571 0.750000 +vt 0.757143 0.707792 +vt 0.702857 0.818182 +vt 0.702857 0.792208 +vt 0.731429 0.750000 +vt 0.720000 0.707792 +vt 0.665714 0.818182 +vt 0.665714 0.792208 +vt 0.694286 0.750000 +vt 0.682857 0.707792 +vt 0.628571 0.818182 +vt 0.628571 0.792208 +vt 0.657143 0.750000 +vt 0.645714 0.707792 +vt 0.591429 0.818182 +vt 0.591429 0.792208 +vt 0.620000 0.750000 +vt 0.608571 0.707792 +vt 0.554286 0.818182 +vt 0.554286 0.792208 +vt 0.582857 0.750000 +vt 0.571429 0.707792 +vt 0.517143 0.818182 +vt 0.517143 0.792208 +vt 0.545714 0.750000 +vt 0.534286 0.707792 +vt 0.480000 0.818182 +vt 0.480000 0.792208 +vt 0.508571 0.750000 +vt 0.497143 0.707792 +vt 0.851429 0.818182 +vt 0.851429 0.792208 +vt 0.880000 0.750000 +vt 0.868571 0.707792 +vt 0.517143 0.957792 +vt 0.540000 0.996753 +vt 0.540000 0.938312 +vt 0.511429 0.896104 +vt 0.522857 0.853896 +vt 0.554286 0.957792 +vt 0.577143 0.996753 +vt 0.577143 0.938312 +vt 0.548571 0.896104 +vt 0.560000 0.853896 +vt 0.591429 0.957792 +vt 0.614286 0.996753 +vt 0.614286 0.938312 +vt 0.585714 0.896104 +vt 0.597143 0.853896 +vt 0.628571 0.957792 +vt 0.651429 0.996753 +vt 0.651429 0.938312 +vt 0.622857 0.896104 +vt 0.634286 0.853896 +vt 0.665714 0.957792 +vt 0.688571 0.996753 +vt 0.688571 0.938312 +vt 0.660000 0.896104 +vt 0.671429 0.853896 +vt 0.702857 0.957792 +vt 0.725714 0.996753 +vt 0.725714 0.938312 +vt 0.697143 0.896104 +vt 0.708571 0.853896 +vt 0.740000 0.957792 +vt 0.762857 0.996753 +vt 0.762857 0.938312 +vt 0.734286 0.896104 +vt 0.745714 0.853896 +vt 0.777143 0.957792 +vt 0.800000 0.996753 +vt 0.800000 0.938312 +vt 0.771429 0.896104 +vt 0.782857 0.853896 +vt 0.814286 0.957792 +vt 0.837143 0.996753 +vt 0.837143 0.938312 +vt 0.808571 0.896104 +vt 0.820000 0.853896 +vt 0.851429 0.957792 +vt 0.874286 0.996753 +vt 0.874286 0.938312 +vt 0.845714 0.896104 +vt 0.857143 0.853896 +vt 0.480000 0.957792 +vt 0.502857 0.996753 +vt 0.502857 0.938312 +vt 0.474286 0.896104 +vt 0.485714 0.853896 +vt 0.814286 0.159091 +vt 0.820000 0.126623 +vt 0.817143 0.090909 +vt 0.834286 0.129870 +vt 0.837143 0.126623 +vt 0.885714 0.126623 +vt 0.902857 0.126623 +vt 0.857143 0.308442 +vt 0.874286 0.308442 +vt 0.868571 0.185065 +vt 0.877143 0.308442 +vt 0.894286 0.308442 +vt 0.888571 0.185065 +vt 0.897143 0.308442 +vt 0.914286 0.308442 +vt 0.908571 0.185065 +vt 0.917143 0.308442 +vt 0.934286 0.308442 +vt 0.928571 0.185065 +vt 0.837143 0.308442 +vt 0.854286 0.308442 +vt 0.848571 0.185065 +vt 0.857143 0.324675 +vt 0.868571 0.318182 +vt 0.877143 0.324675 +vt 0.888571 0.318182 +vt 0.897143 0.324675 +vt 0.908571 0.318182 +vt 0.917143 0.324675 +vt 0.928571 0.318182 +vt 0.837143 0.324675 +vt 0.848571 0.318182 +vt 0.402857 0.788961 +vt 0.471429 0.860390 +vt 0.471429 0.996753 +vt 0.308571 0.788961 +vt 0.377143 0.860390 +vt 0.377143 0.996753 +vt 0.214286 0.788961 +vt 0.282857 0.860390 +vt 0.282857 0.996753 +vt 0.120000 0.788961 +vt 0.188571 0.860390 +vt 0.188571 0.996753 +vt 0.025714 0.788961 +vt 0.094286 0.860390 +vt 0.094286 0.996753 +vt 0.380000 0.685065 +vt 0.380000 0.860390 +vt 0.380000 0.808442 +vt 0.380000 0.996753 +vt 0.380000 0.899351 +vt 0.285714 0.685065 +vt 0.285714 0.860390 +vt 0.285714 0.808442 +vt 0.285714 0.996753 +vt 0.285714 0.899351 +vt 0.191429 0.685065 +vt 0.191429 0.860390 +vt 0.191429 0.808442 +vt 0.191429 0.996753 +vt 0.191429 0.899351 +vt 0.097143 0.685065 +vt 0.097143 0.860390 +vt 0.097143 0.808442 +vt 0.097143 0.996753 +vt 0.097143 0.899351 +vt 0.002857 0.685065 +vt 0.002857 0.860390 +vt 0.002857 0.808442 +vt 0.002857 0.996753 +vt 0.002857 0.899351 +vt 0.380000 0.788961 +vt 0.285714 0.788961 +vt 0.191429 0.788961 +vt 0.097143 0.788961 +vt 0.002857 0.788961 vn 0.0000 0.0000 -1.0000 -vn 0.0000 -0.0000 1.0000 -vn 0.0000 -1.0000 -0.0000 -vn -0.0000 1.0000 0.0000 -vn 1.0000 -0.0000 -0.0000 -vn -1.0000 -0.0000 -0.0000 -vn 0.0000 0.3387 0.9409 -vn 0.0000 0.3387 -0.9409 -vn 0.8575 0.5145 0.0000 -vn -0.8575 0.5145 -0.0000 -vn -0.5485 -0.2213 0.8063 -vn -0.7109 0.0123 -0.7032 -vn -0.7109 0.0123 0.7032 -vn 0.7344 0.1383 -0.6644 -vn 0.7031 -0.0120 0.7109 -vn 0.7031 -0.0120 -0.7109 -vn 0.6216 0.4135 0.6653 -vn 0.7345 0.1380 0.6644 -vn 0.6216 0.4135 -0.6653 -vn 0.4148 0.6202 0.6658 -vn -0.2279 -0.5489 -0.8043 -vn -0.5485 -0.2213 -0.8063 -vn 0.1458 0.7319 -0.6656 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.8944 0.4472 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.8944 0.4472 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.7071 -0.7071 vn 0.0000 0.7071 0.7071 -vn 0.1458 0.7319 0.6656 -vn 0.4148 0.6202 -0.6658 -vn -0.2279 -0.5489 0.8043 -vn -0.0005 -0.7070 -0.7073 -vn 0.4147 0.6202 0.6658 -vn 0.4146 0.6203 -0.6658 -vn -0.2277 -0.5489 -0.8043 -vn 0.4147 0.6202 -0.6658 -vn -0.2278 -0.5489 0.8043 -vn 0.7345 0.1381 0.6644 -vn -0.0003 0.7071 -0.7071 -vn -0.0004 -0.7070 0.7073 -usemtl Material.001 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 -0.7071 -0.7071 +vn -0.4472 -0.8944 0.0000 +vn 0.4472 0.8944 0.0000 +vn 0.4472 -0.8944 0.0000 +vn -0.4472 0.8944 0.0000 +vn -0.5491 -0.2275 0.8042 +vn -0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 0.7071 +vn 0.7319 0.1456 -0.6657 +vn 0.7071 0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn 0.6204 0.4146 0.6657 +vn 0.7319 0.1456 0.6657 +vn 0.4146 0.6204 -0.6657 +vn 0.0000 0.7764 0.6302 +vn 0.4146 0.6204 0.6657 +vn 0.6204 0.4146 -0.6657 +vn 0.0000 -0.4264 -0.9045 +vn -0.5491 -0.2275 -0.8042 +vn 0.0000 0.7764 -0.6302 +vn -0.4146 0.6204 0.6657 +vn 0.0000 -0.4264 0.9045 +vn 0.5000 -0.5000 -0.7071 +vn -0.4146 0.6204 -0.6657 +vn -0.5000 0.5000 0.7071 +vn 0.5000 -0.5000 0.7071 +vn -0.5000 0.5000 -0.7071 +usemtl None s off -f 1/1/1 2/2/1 3/3/1 -f 4/4/2 5/5/2 6/6/2 -f 5/7/2 7/8/2 8/9/2 -f 9/10/1 1/11/1 10/12/1 -f 11/13/2 12/14/2 13/15/2 -f 8/16/2 11/17/2 5/5/2 -f 10/18/1 14/19/1 15/20/1 -f 15/21/1 14/22/1 16/23/1 -f 13/24/2 17/25/2 11/17/2 -f 16/26/1 18/27/1 19/28/1 -f 20/29/1 21/30/1 22/31/1 -f 23/32/2 24/33/2 25/34/2 -f 24/35/2 26/36/2 27/37/2 -f 28/38/1 20/39/1 29/40/1 -f 30/41/2 31/42/2 32/43/2 -f 27/44/2 30/45/2 24/33/2 -f 29/46/1 33/47/1 34/48/1 -f 34/49/1 33/50/1 35/51/1 -f 32/52/2 36/53/2 30/45/2 -f 35/54/1 37/55/1 38/56/1 -f 39/57/1 40/58/1 41/59/1 -f 42/60/2 43/61/2 44/62/2 -f 43/63/2 45/64/2 46/65/2 -f 47/66/1 39/67/1 48/68/1 -f 49/69/2 50/70/2 51/71/2 -f 46/72/2 49/73/2 43/61/2 -f 48/74/1 52/75/1 53/76/1 -f 53/77/1 52/78/1 54/79/1 -f 51/80/2 55/81/2 49/73/2 -f 54/82/1 56/83/1 57/84/1 -f 58/85/1 59/86/1 60/87/1 -f 61/88/2 62/89/2 63/90/2 -f 62/91/2 64/92/2 65/93/2 -f 66/94/1 58/95/1 67/96/1 -f 68/97/2 69/98/2 70/99/2 -f 65/100/2 68/101/2 62/89/2 -f 67/102/1 71/103/1 72/104/1 -f 72/105/1 71/106/1 73/107/1 -f 70/108/2 74/109/2 68/101/2 -f 73/110/1 75/111/1 76/112/1 -f 77/113/3 78/114/3 79/115/3 -f 80/116/4 81/117/4 82/118/4 -f 83/119/5 84/120/5 85/121/5 -f 82/122/2 86/123/2 77/124/2 -f 81/125/6 78/126/6 86/123/6 -f 80/127/1 78/128/1 87/129/1 -f 85/121/1 88/130/1 83/119/1 -f 89/131/1 80/127/1 88/130/1 -f 90/132/2 91/133/2 84/134/2 -f 92/135/2 77/124/2 91/133/2 -f 83/136/4 92/137/4 90/138/4 -f 92/139/7 93/140/7 82/141/7 -f 84/142/3 89/143/3 85/144/3 -f 91/145/3 79/115/3 89/143/3 -f 94/146/1 95/147/1 96/148/1 -f 80/149/8 97/150/8 88/151/8 -f 88/152/9 98/153/9 92/154/9 -f 82/155/10 99/156/10 80/157/10 -f 100/158/5 101/159/5 102/160/5 -f 103/161/1 104/162/1 105/163/1 -f 94/164/4 106/165/4 107/166/4 -f 108/167/4 109/168/4 102/169/4 -f 110/170/4 111/171/4 112/172/4 -f 110/170/4 113/173/4 108/167/4 -f 102/169/4 114/174/4 100/175/4 -f 101/159/4 115/176/4 116/177/4 -f 110/178/1 117/179/1 100/180/1 -f 108/181/6 115/176/6 110/182/6 -f 102/183/2 116/177/2 108/184/2 -f 118/185/3 119/186/3 120/187/3 -f 121/188/4 122/189/4 103/190/4 -f 120/191/1 123/192/1 124/193/1 -f 125/194/3 126/195/3 127/196/3 -f 128/197/2 129/198/2 118/199/2 -f 130/200/2 111/201/2 93/140/2 -f 127/202/2 131/203/2 132/204/2 -f 124/205/4 133/206/4 128/207/4 -f 134/208/1 135/209/1 125/210/1 -f 136/211/3 137/212/3 138/213/3 -f 132/214/4 139/215/4 134/216/4 -f 138/217/2 140/218/2 141/219/2 -f 97/220/5 94/221/5 142/222/5 -f 143/223/5 144/224/5 97/220/5 -f 145/225/5 146/226/5 143/223/5 -f 142/222/5 96/227/5 145/225/5 -f 147/228/6 148/229/6 149/230/6 -f 111/231/6 148/229/6 93/232/6 -f 150/233/6 151/234/6 111/231/6 -f 147/228/6 152/235/6 150/233/6 -f 99/236/6 153/237/6 154/238/6 -f 114/239/6 155/240/6 99/236/6 -f 156/241/6 157/242/6 114/239/6 -f 154/238/6 158/243/6 156/241/6 -f 98/244/5 159/245/5 160/246/5 -f 113/247/5 161/248/5 98/244/5 -f 113/247/5 162/249/5 163/250/5 -f 160/246/5 162/249/5 164/251/5 -f 165/252/5 134/253/5 166/254/5 -f 165/252/5 127/255/5 132/256/5 -f 167/257/5 125/258/5 127/255/5 -f 166/254/5 125/258/5 168/259/5 -f 169/260/6 170/261/6 171/262/6 -f 172/263/6 170/261/6 173/264/6 -f 174/265/6 175/266/6 172/263/6 -f 169/260/6 176/267/6 174/265/6 -f 177/268/6 178/269/6 179/270/6 -f 180/271/6 178/269/6 181/272/6 -f 182/273/6 183/274/6 180/271/6 -f 177/268/6 184/275/6 182/273/6 -f 185/276/5 141/277/5 186/278/5 -f 187/279/5 141/277/5 188/280/5 -f 189/281/5 138/282/5 187/279/5 -f 185/276/5 136/283/5 189/281/5 -f 185/276/5 190/284/5 98/244/5 -f 189/281/5 191/285/5 185/276/5 -f 189/281/5 192/286/5 193/287/5 -f 98/244/5 192/286/5 113/247/5 -f 99/236/6 194/288/6 195/289/6 -f 182/273/6 194/288/6 177/268/6 -f 114/239/6 196/290/6 182/273/6 -f 99/236/6 197/291/6 114/239/6 -f 169/260/6 198/292/6 199/293/6 -f 174/265/6 200/294/6 169/260/6 -f 109/295/6 201/296/6 174/265/6 -f 199/293/6 202/297/6 109/295/6 -f 166/254/5 103/298/5 130/299/5 -f 166/254/5 203/300/5 121/301/5 -f 168/259/5 105/302/5 203/300/5 -f 130/299/5 105/302/5 112/303/5 -f 160/246/5 204/304/5 165/252/5 -f 164/251/5 205/305/5 160/246/5 -f 164/251/5 206/306/5 207/307/5 -f 165/252/5 206/306/5 167/257/5 -f 154/238/6 208/308/6 173/264/6 -f 156/241/6 209/309/6 154/238/6 -f 172/263/6 210/310/6 156/241/6 -f 173/264/6 211/311/6 172/263/6 -f 181/272/6 124/312/6 128/313/6 -f 150/233/6 124/312/6 147/228/6 -f 180/271/6 120/314/6 150/233/6 -f 181/272/6 118/315/6 180/271/6 -f 142/222/5 212/316/5 188/280/5 -f 145/225/5 213/317/5 142/222/5 -f 145/225/5 214/318/5 215/319/5 -f 188/280/5 214/318/5 187/279/5 -f 106/165/5 95/147/5 107/166/5 -f 109/320/1 97/150/1 199/321/1 -f 216/322/6 217/323/6 218/324/6 -f 219/325/6 220/326/6 221/327/6 -f 222/328/5 223/329/5 224/330/5 -f 131/203/5 135/209/5 139/215/5 -f 225/331/6 226/332/6 227/333/6 -f 228/334/6 229/335/6 230/336/6 -f 140/218/5 231/337/5 232/338/5 -f 233/339/5 234/340/5 235/341/5 -f 236/342/6 237/343/6 238/344/6 -f 239/345/6 240/346/6 241/347/6 -f 242/348/5 104/162/5 122/189/5 -f 243/349/5 244/350/5 245/351/5 -f 246/352/6 247/353/6 248/354/6 -f 123/192/6 129/198/6 133/206/6 -f 249/355/5 250/356/5 251/357/5 -f 203/358/2 242/348/2 121/359/2 -f 191/360/4 235/341/4 190/361/4 -f 146/362/2 106/165/2 144/363/2 -f 105/364/3 252/365/3 203/366/3 -f 190/367/1 234/340/1 192/368/1 -f 96/369/3 253/370/3 146/371/3 -f 193/372/2 233/339/2 191/373/2 -f 170/374/4 227/333/4 171/375/4 -f 192/376/3 254/377/3 193/378/3 -f 171/379/2 226/332/2 176/380/2 -f 213/381/4 251/357/4 212/382/4 -f 175/383/1 225/331/1 170/384/1 -f 155/385/4 221/327/4 153/386/4 -f 212/387/1 250/388/1 214/389/1 -f 176/390/3 255/391/3 175/392/3 -f 153/393/2 220/394/2 158/395/2 -f 215/396/2 249/355/2 213/397/2 -f 205/398/4 245/351/4 204/399/4 -f 157/400/1 219/325/1 155/401/1 -f 214/402/3 256/403/3 215/404/3 -f 204/405/1 244/406/1 206/407/1 -f 158/408/3 257/409/3 157/410/3 -f 207/411/2 243/349/2 205/412/2 -f 194/413/4 238/344/4 195/414/4 -f 206/415/3 258/416/3 207/417/3 -f 195/418/2 237/343/2 197/419/2 -f 196/420/1 236/342/1 194/421/1 -f 178/422/4 230/336/4 179/423/4 -f 197/424/3 259/425/3 196/426/3 -f 179/427/2 229/428/2 184/429/2 -f 183/430/1 228/334/1 178/431/1 -f 161/432/4 224/330/4 159/433/4 -f 184/434/3 260/435/3 183/436/3 -f 159/437/1 223/329/1 162/438/1 -f 209/439/4 248/354/4 208/440/4 -f 163/441/2 222/328/2 161/442/2 -f 148/443/4 218/324/4 149/444/4 -f 208/445/2 247/353/2 211/446/2 -f 162/447/3 261/448/3 163/449/3 -f 149/450/2 217/323/2 152/451/2 -f 210/452/1 246/352/1 209/453/1 -f 200/454/4 241/347/4 198/455/4 -f 151/456/1 216/322/1 148/457/1 -f 211/458/3 262/459/3 210/460/3 -f 198/461/2 240/462/2 202/463/2 -f 152/464/3 263/465/3 151/466/3 -f 201/467/1 239/345/1 200/468/1 -f 186/469/4 140/218/4 232/338/4 -f 202/470/3 264/471/3 201/472/3 -f 186/473/1 231/474/1 136/475/1 -f 265/476/1 266/477/1 267/478/1 -f 268/479/5 269/480/5 266/477/5 -f 270/481/2 271/482/2 269/480/2 -f 265/483/4 270/481/4 268/479/4 -f 272/484/1 273/485/1 274/486/1 -f 275/487/5 276/488/5 273/485/5 -f 277/489/2 278/490/2 276/488/2 -f 272/491/4 277/489/4 275/487/4 -f 279/492/1 280/493/1 281/494/1 -f 282/495/5 283/496/5 280/493/5 -f 284/497/2 285/498/2 283/496/2 -f 279/499/4 284/497/4 282/495/4 -f 286/500/1 287/501/1 288/502/1 -f 289/503/5 290/504/5 287/501/5 -f 291/505/2 292/506/2 290/504/2 -f 286/507/4 291/505/4 289/503/4 -f 293/508/1 294/509/1 295/510/1 -f 296/511/5 297/512/5 294/509/5 -f 298/513/2 299/514/2 297/512/2 -f 293/515/4 298/513/4 296/511/4 -f 300/516/1 301/517/1 302/518/1 -f 303/519/5 304/520/5 301/517/5 -f 305/521/2 306/522/2 304/520/2 -f 300/523/4 305/521/4 303/519/4 -f 307/524/1 308/525/1 309/526/1 -f 310/527/5 311/528/5 308/525/5 -f 312/529/2 313/530/2 311/528/2 -f 307/531/4 312/529/4 310/527/4 -f 314/532/1 315/533/1 316/534/1 -f 317/535/5 318/536/5 315/533/5 -f 319/537/2 320/538/2 318/536/2 -f 314/539/4 319/537/4 317/535/4 -f 321/540/1 322/541/1 323/542/1 -f 324/543/6 325/544/6 321/540/6 -f 326/545/2 327/546/2 324/543/2 -f 327/546/4 322/547/4 325/544/4 -f 328/548/1 329/549/1 330/550/1 -f 331/551/6 332/552/6 328/548/6 -f 333/553/2 334/554/2 331/551/2 -f 334/554/4 329/555/4 332/552/4 -f 335/556/1 336/557/1 337/558/1 -f 338/559/6 339/560/6 335/556/6 -f 340/561/2 341/562/2 338/559/2 -f 341/562/4 336/563/4 339/560/4 -f 342/564/1 343/565/1 344/566/1 -f 345/567/6 346/568/6 342/564/6 -f 347/569/2 348/570/2 345/567/2 -f 348/570/4 343/571/4 346/568/4 -f 349/572/1 350/573/1 351/574/1 -f 352/575/6 353/576/6 349/572/6 -f 354/577/2 355/578/2 352/575/2 -f 355/578/4 350/579/4 353/576/4 -f 356/580/1 357/581/1 358/582/1 -f 359/583/6 360/584/6 356/580/6 -f 361/585/2 362/586/2 359/583/2 -f 362/586/4 357/587/4 360/584/4 -f 363/588/1 364/589/1 365/590/1 -f 366/591/6 367/592/6 363/588/6 -f 368/593/2 369/594/2 366/591/2 -f 369/594/4 364/595/4 367/592/4 -f 370/596/1 371/597/1 372/598/1 -f 373/599/6 374/600/6 370/596/6 -f 375/601/2 376/602/2 373/599/2 -f 376/602/4 371/603/4 374/600/4 -f 1/1/1 9/604/1 2/2/1 -f 4/4/2 7/605/2 5/5/2 -f 8/16/2 12/606/2 11/17/2 -f 10/18/1 1/1/1 14/19/1 -f 13/24/2 377/607/2 17/25/2 -f 16/26/1 14/19/1 18/27/1 -f 20/29/1 28/608/1 21/30/1 -f 23/32/2 26/609/2 24/33/2 -f 27/44/2 31/610/2 30/45/2 -f 29/46/1 20/29/1 33/47/1 -f 32/52/2 378/611/2 36/53/2 -f 35/54/1 33/47/1 37/55/1 -f 39/57/1 47/612/1 40/58/1 -f 42/60/2 45/613/2 43/61/2 -f 46/72/2 50/614/2 49/73/2 -f 48/74/1 39/57/1 52/75/1 -f 51/80/2 379/615/2 55/81/2 -f 54/82/1 52/75/1 56/83/1 -f 58/85/1 66/616/1 59/86/1 -f 61/88/2 64/617/2 62/89/2 -f 65/100/2 69/618/2 68/101/2 -f 67/102/1 58/85/1 71/103/1 -f 70/108/2 380/619/2 74/109/2 -f 73/110/1 71/103/1 75/111/1 -f 77/113/3 86/620/3 78/114/3 -f 80/116/4 87/621/4 81/117/4 -f 83/119/5 90/622/5 84/120/5 -f 82/122/2 81/125/2 86/123/2 -f 81/125/6 87/623/6 78/126/6 -f 80/127/1 79/624/1 78/128/1 -f 85/121/1 89/131/1 88/130/1 -f 89/131/1 79/624/1 80/127/1 -f 90/132/2 92/135/2 91/133/2 -f 92/135/2 82/122/2 77/124/2 -f 83/136/4 88/625/4 92/137/4 -f 92/139/7 130/200/7 93/140/7 -f 84/142/3 91/145/3 89/143/3 -f 91/145/3 77/113/3 79/115/3 -f 94/146/1 107/166/1 95/147/1 -f 80/149/8 199/321/8 97/150/8 -f 130/626/9 92/154/9 166/627/9 -f 88/152/9 97/628/9 142/629/9 -f 188/630/9 185/631/9 88/152/9 -f 88/152/9 142/629/9 188/630/9 -f 166/627/9 92/154/9 165/632/9 -f 98/153/9 160/633/9 92/154/9 -f 165/632/9 92/154/9 160/633/9 -f 88/152/9 185/631/9 98/153/9 -f 199/634/10 80/157/10 169/635/10 -f 82/155/10 93/636/10 147/637/10 -f 181/638/10 177/639/10 82/155/10 -f 82/155/10 147/637/10 181/638/10 -f 169/635/10 80/157/10 173/640/10 -f 154/641/10 173/640/10 80/157/10 -f 82/155/10 177/639/10 99/156/10 -f 99/156/10 154/641/10 80/157/10 -f 100/158/5 117/179/5 101/159/5 -f 103/161/1 122/189/1 104/162/1 -f 94/164/4 144/642/4 106/165/4 -f 108/167/4 143/643/4 109/168/4 -f 110/170/4 100/175/4 111/171/4 -f 143/643/4 108/167/4 145/644/4 -f 110/170/4 112/172/4 168/645/4 -f 110/170/4 168/645/4 167/646/4 -f 145/644/4 108/167/4 187/647/4 -f 113/173/4 189/648/4 108/167/4 -f 187/647/4 108/167/4 189/648/4 -f 110/170/4 167/646/4 164/649/4 -f 164/649/4 113/173/4 110/170/4 -f 111/171/4 100/175/4 150/650/4 -f 102/169/4 109/168/4 174/651/4 -f 172/652/4 156/653/4 102/169/4 -f 102/169/4 174/651/4 172/652/4 -f 150/650/4 100/175/4 180/654/4 -f 182/655/4 180/654/4 100/175/4 -f 102/169/4 156/653/4 114/174/4 -f 114/174/4 182/655/4 100/175/4 -f 101/159/4 117/179/4 115/176/4 -f 110/178/1 115/176/1 117/179/1 -f 108/181/6 116/177/6 115/176/6 -f 102/183/2 101/159/2 116/177/2 -f 118/185/3 129/198/3 119/186/3 -f 121/188/4 242/348/4 122/189/4 -f 120/191/1 119/186/1 123/192/1 -f 125/194/3 135/209/3 126/195/3 -f 128/197/2 133/206/2 129/198/2 -f 130/200/2 112/656/2 111/201/2 -f 127/202/2 126/195/2 131/203/2 -f 124/205/4 123/192/4 133/206/4 -f 134/208/1 139/215/1 135/209/1 -f 136/211/3 231/337/3 137/212/3 -f 132/214/4 131/203/4 139/215/4 -f 138/217/2 137/212/2 140/218/2 -f 97/220/5 144/224/5 94/221/5 -f 143/223/5 146/226/5 144/224/5 -f 145/225/5 96/227/5 146/226/5 -f 142/222/5 94/221/5 96/227/5 -f 147/228/6 93/232/6 148/229/6 -f 111/231/6 151/234/6 148/229/6 -f 150/233/6 152/235/6 151/234/6 -f 147/228/6 149/230/6 152/235/6 -f 99/236/6 155/240/6 153/237/6 -f 114/239/6 157/242/6 155/240/6 -f 156/241/6 158/243/6 157/242/6 -f 154/238/6 153/237/6 158/243/6 -f 98/244/5 161/248/5 159/245/5 -f 113/247/5 163/250/5 161/248/5 -f 113/247/5 164/251/5 162/249/5 -f 160/246/5 159/245/5 162/249/5 -f 165/252/5 132/256/5 134/253/5 -f 165/252/5 167/257/5 127/255/5 -f 167/257/5 168/259/5 125/258/5 -f 166/254/5 134/253/5 125/258/5 -f 169/260/6 173/264/6 170/261/6 -f 172/263/6 175/266/6 170/261/6 -f 174/265/6 176/267/6 175/266/6 -f 169/260/6 171/262/6 176/267/6 -f 177/268/6 181/272/6 178/269/6 -f 180/271/6 183/274/6 178/269/6 -f 182/273/6 184/275/6 183/274/6 -f 177/268/6 179/270/6 184/275/6 -f 185/276/5 188/280/5 141/277/5 -f 187/279/5 138/282/5 141/277/5 -f 189/281/5 136/283/5 138/282/5 -f 185/276/5 186/278/5 136/283/5 -f 185/276/5 191/285/5 190/284/5 -f 189/281/5 193/287/5 191/285/5 -f 189/281/5 113/247/5 192/286/5 -f 98/244/5 190/284/5 192/286/5 -f 99/236/6 177/268/6 194/288/6 -f 182/273/6 196/290/6 194/288/6 -f 114/239/6 197/291/6 196/290/6 -f 99/236/6 195/289/6 197/291/6 -f 169/260/6 200/294/6 198/292/6 -f 174/265/6 201/296/6 200/294/6 -f 109/295/6 202/297/6 201/296/6 -f 199/293/6 198/292/6 202/297/6 -f 166/254/5 121/301/5 103/298/5 -f 166/254/5 168/259/5 203/300/5 -f 168/259/5 112/303/5 105/302/5 -f 130/299/5 103/298/5 105/302/5 -f 160/246/5 205/305/5 204/304/5 -f 164/251/5 207/307/5 205/305/5 -f 164/251/5 167/257/5 206/306/5 -f 165/252/5 204/304/5 206/306/5 -f 154/238/6 209/309/6 208/308/6 -f 156/241/6 210/310/6 209/309/6 -f 172/263/6 211/311/6 210/310/6 -f 173/264/6 208/308/6 211/311/6 -f 181/272/6 147/228/6 124/312/6 -f 150/233/6 120/314/6 124/312/6 -f 180/271/6 118/315/6 120/314/6 -f 181/272/6 128/313/6 118/315/6 -f 142/222/5 213/317/5 212/316/5 -f 145/225/5 215/319/5 213/317/5 -f 145/225/5 187/279/5 214/318/5 -f 188/280/5 212/316/5 214/318/5 -f 106/165/5 253/370/5 95/147/5 -f 109/320/1 143/657/1 97/150/1 -f 216/322/6 263/465/6 217/323/6 -f 219/325/6 257/409/6 220/326/6 -f 222/328/5 261/448/5 223/329/5 -f 131/203/5 126/195/5 135/209/5 -f 225/331/6 255/391/6 226/332/6 -f 228/334/6 260/435/6 229/335/6 -f 140/218/5 137/212/5 231/337/5 -f 233/339/5 254/377/5 234/340/5 -f 236/342/6 259/425/6 237/343/6 -f 239/345/6 264/471/6 240/346/6 -f 242/348/5 252/365/5 104/162/5 -f 243/349/5 258/416/5 244/350/5 -f 246/352/6 262/459/6 247/353/6 -f 123/192/6 119/186/6 129/198/6 -f 249/355/5 256/403/5 250/356/5 -f 203/358/2 252/365/2 242/348/2 -f 191/360/4 233/339/4 235/341/4 -f 146/362/2 253/370/2 106/165/2 -f 105/364/3 104/162/3 252/365/3 -f 190/367/1 235/341/1 234/340/1 -f 96/369/3 95/147/3 253/370/3 -f 193/372/2 254/377/2 233/339/2 -f 170/374/4 225/331/4 227/333/4 -f 192/376/3 234/340/3 254/377/3 -f 171/379/2 227/333/2 226/332/2 -f 213/381/4 249/355/4 251/357/4 -f 175/383/1 255/391/1 225/331/1 -f 155/385/4 219/325/4 221/327/4 -f 212/387/1 251/658/1 250/388/1 -f 176/390/3 226/332/3 255/391/3 -f 153/393/2 221/659/2 220/394/2 -f 215/396/2 256/403/2 249/355/2 -f 205/398/4 243/349/4 245/351/4 -f 157/400/1 257/409/1 219/325/1 -f 214/402/3 250/356/3 256/403/3 -f 204/405/1 245/660/1 244/406/1 -f 158/408/3 220/326/3 257/409/3 -f 207/411/2 258/416/2 243/349/2 -f 194/413/4 236/342/4 238/344/4 -f 206/415/3 244/350/3 258/416/3 -f 195/418/2 238/344/2 237/343/2 -f 196/420/1 259/425/1 236/342/1 -f 178/422/4 228/334/4 230/336/4 -f 197/424/3 237/343/3 259/425/3 -f 179/427/2 230/661/2 229/428/2 -f 183/430/1 260/435/1 228/334/1 -f 161/432/4 222/328/4 224/330/4 -f 184/434/3 229/335/3 260/435/3 -f 159/437/1 224/330/1 223/329/1 -f 209/439/4 246/352/4 248/354/4 -f 163/441/2 261/448/2 222/328/2 -f 148/443/4 216/322/4 218/324/4 -f 208/445/2 248/354/2 247/353/2 -f 162/447/3 223/329/3 261/448/3 -f 149/450/2 218/324/2 217/323/2 -f 210/452/1 262/459/1 246/352/1 -f 200/454/4 239/345/4 241/347/4 -f 151/456/1 263/465/1 216/322/1 -f 211/458/3 247/353/3 262/459/3 -f 198/461/2 241/662/2 240/462/2 -f 152/464/3 217/323/3 263/465/3 -f 201/467/1 264/471/1 239/345/1 -f 186/469/4 141/663/4 140/218/4 -f 202/470/3 240/346/3 264/471/3 -f 186/473/1 232/664/1 231/474/1 -f 265/476/1 268/479/1 266/477/1 -f 268/479/5 270/481/5 269/480/5 -f 270/481/2 381/665/2 271/482/2 -f 265/483/4 381/666/4 270/481/4 -f 272/484/1 275/487/1 273/485/1 -f 275/487/5 277/489/5 276/488/5 -f 277/489/2 382/667/2 278/490/2 -f 272/491/4 382/668/4 277/489/4 -f 279/492/1 282/495/1 280/493/1 -f 282/495/5 284/497/5 283/496/5 -f 284/497/2 383/669/2 285/498/2 -f 279/499/4 383/670/4 284/497/4 -f 286/500/1 289/503/1 287/501/1 -f 289/503/5 291/505/5 290/504/5 -f 291/505/2 384/671/2 292/506/2 -f 286/507/4 384/672/4 291/505/4 -f 293/508/1 296/511/1 294/509/1 -f 296/511/5 298/513/5 297/512/5 -f 298/513/2 385/673/2 299/514/2 -f 293/515/4 385/674/4 298/513/4 -f 300/516/1 303/519/1 301/517/1 -f 303/519/5 305/521/5 304/520/5 -f 305/521/2 386/675/2 306/522/2 -f 300/523/4 386/676/4 305/521/4 -f 307/524/1 310/527/1 308/525/1 -f 310/527/5 312/529/5 311/528/5 -f 312/529/2 387/677/2 313/530/2 -f 307/531/4 387/678/4 312/529/4 -f 314/532/1 317/535/1 315/533/1 -f 317/535/5 319/537/5 318/536/5 -f 319/537/2 388/679/2 320/538/2 -f 314/539/4 388/680/4 319/537/4 -f 321/540/1 325/544/1 322/541/1 -f 324/543/6 327/546/6 325/544/6 -f 326/545/2 389/681/2 327/546/2 -f 327/546/4 389/682/4 322/547/4 -f 328/548/1 332/552/1 329/549/1 -f 331/551/6 334/554/6 332/552/6 -f 333/553/2 390/683/2 334/554/2 -f 334/554/4 390/684/4 329/555/4 -f 335/556/1 339/560/1 336/557/1 -f 338/559/6 341/562/6 339/560/6 -f 340/561/2 391/685/2 341/562/2 -f 341/562/4 391/686/4 336/563/4 -f 342/564/1 346/568/1 343/565/1 -f 345/567/6 348/570/6 346/568/6 -f 347/569/2 392/687/2 348/570/2 -f 348/570/4 392/688/4 343/571/4 -f 349/572/1 353/576/1 350/573/1 -f 352/575/6 355/578/6 353/576/6 -f 354/577/2 393/689/2 355/578/2 -f 355/578/4 393/690/4 350/579/4 -f 356/580/1 360/584/1 357/581/1 -f 359/583/6 362/586/6 360/584/6 -f 361/585/2 394/691/2 362/586/2 -f 362/586/4 394/692/4 357/587/4 -f 363/588/1 367/592/1 364/589/1 -f 366/591/6 369/594/6 367/592/6 -f 368/593/2 395/693/2 369/594/2 -f 369/594/4 395/694/4 364/595/4 -f 370/596/1 374/600/1 371/597/1 -f 373/599/6 376/602/6 374/600/6 -f 375/601/2 396/695/2 376/602/2 -f 376/602/4 396/696/4 371/603/4 +f 224/1/1 2/2/1 221/3/1 +f 153/4/2 179/5/2 156/6/2 +f 221/3/1 2/2/1 10/7/1 +f 163/8/3 186/9/3 162/10/3 +f 31/11/1 1/12/1 224/1/1 +f 221/13/4 9/14/4 222/15/4 +f 105/16/5 324/17/5 104/18/5 +f 8/19/4 222/15/4 9/14/4 +f 7/20/4 232/21/4 8/19/4 +f 6/22/4 233/23/4 7/20/4 +f 41/24/4 234/25/4 6/22/4 +f 42/26/4 235/27/4 41/24/4 +f 43/28/4 236/29/4 42/26/4 +f 44/30/4 237/31/4 43/28/4 +f 126/32/4 242/33/4 202/34/4 +f 31/35/1 20/36/1 53/37/1 +f 45/38/6 64/39/6 3/40/6 +f 219/41/3 257/42/3 100/43/3 +f 89/44/2 256/45/2 90/46/2 +f 99/47/3 278/48/3 98/49/3 +f 88/50/2 271/51/2 89/44/2 +f 98/49/3 277/52/3 97/53/3 +f 91/54/2 281/55/2 217/56/2 +f 104/57/3 263/58/3 314/59/3 +f 160/60/6 184/61/6 159/62/6 +f 74/63/6 53/64/6 54/65/6 +f 64/39/6 73/66/6 74/63/6 +f 74/63/6 65/67/6 64/39/6 +f 75/68/6 66/69/6 65/67/6 +f 76/70/6 67/71/6 66/69/6 +f 77/72/6 68/73/6 67/71/6 +f 78/74/6 69/75/6 68/73/6 +f 79/76/6 70/77/6 69/75/6 +f 80/78/6 71/79/6 70/77/6 +f 215/80/6 122/81/6 213/82/6 +f 32/83/7 224/84/7 223/85/7 +f 21/86/8 32/87/8 22/88/8 +f 64/39/6 4/89/6 3/40/6 +f 65/67/6 46/90/6 4/89/6 +f 66/69/6 47/91/6 46/90/6 +f 67/71/6 48/92/6 47/91/6 +f 68/73/6 49/93/6 48/92/6 +f 69/75/6 50/94/6 49/93/6 +f 70/77/6 51/95/6 50/94/6 +f 213/82/6 5/96/6 209/97/6 +f 19/98/2 21/99/2 22/100/2 +f 54/65/6 20/101/6 19/102/6 +f 54/65/6 75/68/6 74/63/6 +f 55/103/6 76/70/6 75/68/6 +f 56/104/6 77/72/6 76/70/6 +f 57/105/6 78/74/6 77/72/6 +f 58/106/6 79/76/6 78/74/6 +f 59/107/6 80/78/6 79/76/6 +f 60/108/6 81/109/6 80/78/6 +f 211/110/6 124/111/6 215/80/6 +f 39/112/7 243/113/7 207/114/7 +f 38/115/7 231/116/7 39/112/7 +f 37/117/7 230/118/7 38/115/7 +f 36/119/7 229/120/7 37/117/7 +f 35/121/7 228/122/7 36/119/7 +f 34/123/7 227/124/7 35/121/7 +f 33/125/7 226/126/7 34/123/7 +f 32/83/7 225/127/7 33/125/7 +f 10/128/3 3/129/3 9/130/3 +f 32/87/8 23/131/8 22/88/8 +f 33/132/8 24/133/8 23/131/8 +f 34/134/8 25/135/8 24/133/8 +f 35/136/8 26/137/8 25/135/8 +f 36/138/8 27/139/8 26/137/8 +f 37/140/8 28/141/8 27/139/8 +f 38/142/8 29/143/8 28/141/8 +f 208/144/8 30/145/8 206/146/8 +f 19/102/6 55/103/6 54/65/6 +f 18/147/6 56/104/6 55/103/6 +f 17/148/6 57/105/6 56/104/6 +f 16/149/6 58/106/6 57/105/6 +f 15/150/6 59/107/6 58/106/6 +f 14/151/6 60/108/6 59/107/6 +f 13/152/6 61/153/6 60/108/6 +f 203/154/6 123/155/6 211/110/6 +f 22/100/2 18/156/2 19/98/2 +f 23/157/2 17/158/2 18/156/2 +f 24/159/2 16/160/2 17/158/2 +f 25/161/2 15/162/2 16/160/2 +f 26/163/2 14/164/2 15/162/2 +f 27/165/2 13/166/2 14/164/2 +f 28/167/2 12/168/2 13/166/2 +f 206/169/2 11/170/2 203/171/2 +f 216/172/3 51/173/3 201/174/3 +f 44/175/3 50/176/3 51/173/3 +f 43/177/3 49/178/3 50/176/3 +f 42/179/3 48/180/3 49/178/3 +f 41/181/3 47/182/3 48/180/3 +f 6/183/3 46/184/3 47/182/3 +f 7/185/3 4/186/3 46/184/3 +f 8/187/3 3/129/3 4/186/3 +f 123/188/5 30/189/5 125/190/5 +f 52/191/2 142/192/2 101/193/2 +f 72/194/2 115/195/2 109/196/2 +f 103/197/6 141/198/6 40/199/6 +f 128/200/5 240/201/5 127/202/5 +f 125/203/5 239/204/5 128/200/5 +f 240/201/5 126/205/5 127/202/5 +f 72/206/5 124/207/5 82/208/5 +f 109/209/5 122/210/5 72/206/5 +f 82/208/5 128/211/5 110/212/5 +f 110/212/5 127/213/5 109/209/5 +f 108/214/2 120/215/2 112/216/2 +f 110/217/3 116/218/3 82/219/3 +f 82/220/8 117/221/8 72/222/8 +f 109/223/6 114/224/6 110/225/6 +f 108/226/5 115/227/5 111/228/5 +f 112/229/5 117/221/5 116/230/5 +f 111/231/5 117/232/5 113/233/5 +f 108/214/5 116/218/5 114/234/5 +f 120/215/5 119/235/5 121/236/5 +f 112/229/6 121/236/6 113/237/6 +f 113/233/3 119/235/3 111/231/3 +f 111/228/8 118/238/8 108/226/8 +f 52/239/5 122/210/5 107/240/5 +f 106/241/5 123/188/5 62/242/5 +f 62/242/5 125/190/5 40/243/5 +f 101/244/5 5/245/5 52/239/5 +f 102/246/5 126/247/5 101/244/5 +f 40/243/5 128/211/5 103/248/5 +f 107/240/5 127/213/5 102/246/5 +f 103/248/5 124/207/5 106/241/5 +f 134/249/8 151/250/8 135/251/8 +f 135/252/2 145/253/2 129/254/2 +f 62/255/8 140/256/8 106/257/8 +f 102/258/3 137/259/3 107/260/3 +f 101/261/6 143/262/6 102/263/6 +f 40/264/3 139/265/3 62/266/3 +f 107/267/8 138/268/8 52/269/8 +f 106/270/2 144/271/2 103/272/2 +f 129/273/5 138/268/5 137/274/5 +f 131/275/5 140/256/5 139/276/5 +f 133/277/5 139/265/5 141/278/5 +f 134/279/5 138/280/5 130/281/5 +f 135/251/5 142/282/5 134/249/5 +f 133/283/5 144/284/5 136/285/5 +f 135/252/5 137/259/5 143/286/5 +f 136/287/5 140/288/5 132/289/5 +f 145/253/5 150/290/5 146/291/5 +f 147/292/5 152/293/5 148/294/5 +f 133/277/2 147/292/2 131/295/2 +f 129/273/6 146/291/6 130/296/6 +f 132/289/3 152/293/3 136/287/3 +f 136/285/8 149/297/8 133/283/8 +f 130/281/3 150/290/3 134/279/3 +f 131/275/6 148/294/6 132/298/6 +f 2/299/1 153/300/1 10/301/1 +f 63/302/1 154/303/1 2/299/1 +f 45/304/1 155/305/1 63/302/1 +f 10/301/1 156/306/1 45/304/1 +f 63/302/1 157/307/1 73/308/1 +f 2/299/1 158/309/1 63/302/1 +f 1/310/1 159/311/1 2/299/1 +f 73/308/1 160/312/1 1/310/1 +f 31/35/1 161/313/1 1/310/1 +f 53/37/1 162/314/1 31/35/1 +f 73/308/1 163/315/1 53/37/1 +f 1/310/1 164/316/1 73/308/1 +f 166/317/3 191/318/3 167/319/3 +f 175/320/6 200/321/6 176/322/6 +f 170/323/6 193/324/6 169/325/6 +f 158/326/8 181/327/8 157/328/8 +f 164/329/8 188/330/8 163/331/8 +f 155/332/3 177/333/3 154/334/3 +f 157/335/3 183/336/3 160/337/3 +f 162/338/6 185/339/6 161/340/6 +f 156/341/8 180/342/8 155/343/8 +f 159/344/2 182/345/2 158/346/2 +f 161/347/2 187/348/2 164/349/2 +f 154/350/6 178/351/6 153/352/6 +f 166/353/1 177/354/1 165/355/1 +f 166/317/1 179/5/1 178/356/1 +f 165/357/1 180/358/1 168/359/1 +f 167/360/1 180/342/1 179/361/1 +f 170/323/1 181/327/1 182/362/1 +f 171/363/1 181/364/1 169/365/1 +f 172/366/1 182/345/1 184/367/1 +f 172/368/1 183/369/1 171/370/1 +f 173/371/1 186/372/1 174/373/1 +f 173/374/1 187/348/1 185/375/1 +f 174/376/1 188/377/1 176/378/1 +f 175/320/1 188/330/1 187/379/1 +f 189/380/1 191/318/1 190/381/1 +f 194/382/1 195/383/1 193/324/1 +f 198/384/1 199/385/1 197/386/1 +f 174/373/8 197/386/8 173/371/8 +f 169/365/2 195/383/2 171/363/2 +f 168/359/2 189/380/2 165/357/2 +f 173/374/3 199/385/3 175/387/3 +f 172/366/3 194/382/3 170/388/3 +f 167/360/6 192/389/6 168/390/6 +f 176/378/2 198/384/2 174/376/2 +f 165/355/8 190/381/8 166/353/8 +f 171/370/8 196/391/8 172/368/8 +f 126/392/3 209/393/3 5/394/3 +f 202/395/3 201/174/3 209/393/3 +f 29/396/2 204/397/2 12/168/2 +f 205/398/2 203/171/2 204/397/2 +f 12/399/6 210/400/6 61/153/6 +f 204/401/6 211/110/6 210/400/6 +f 39/402/8 205/403/8 29/143/8 +f 207/404/8 206/146/8 205/403/8 +f 208/405/7 239/406/7 125/407/7 +f 207/114/7 241/408/7 208/405/7 +f 61/153/6 214/409/6 81/109/6 +f 210/400/6 215/80/6 214/409/6 +f 71/79/6 201/410/6 51/95/6 +f 212/411/6 209/97/6 201/410/6 +f 81/109/6 212/411/6 71/79/6 +f 214/409/6 213/82/6 212/411/6 +f 87/412/2 270/413/2 88/50/2 +f 97/53/3 276/414/3 96/415/3 +f 216/416/4 238/417/4 44/30/4 +f 202/34/4 244/418/4 216/416/4 +f 307/419/8 222/420/8 93/421/8 +f 310/422/8 223/423/8 224/424/8 +f 85/425/8 223/423/8 84/426/8 +f 86/427/8 225/428/8 85/425/8 +f 87/429/8 226/430/8 86/427/8 +f 88/431/8 227/432/8 87/429/8 +f 89/433/8 228/434/8 88/431/8 +f 90/435/8 229/436/8 89/433/8 +f 91/437/8 230/438/8 90/435/8 +f 93/421/8 232/439/8 94/440/8 +f 94/440/8 233/441/8 95/442/8 +f 95/442/8 234/443/8 96/444/8 +f 96/444/8 235/445/8 97/446/8 +f 97/446/8 236/447/8 98/448/8 +f 98/448/8 237/449/8 99/450/8 +f 99/450/8 238/451/8 100/452/8 +f 310/422/8 221/453/8 307/419/8 +f 312/454/8 239/455/8 311/456/8 +f 311/456/8 241/457/8 218/458/8 +f 312/454/8 242/459/8 240/460/8 +f 217/461/8 231/462/8 91/437/8 +f 218/458/8 243/463/8 217/461/8 +f 100/452/8 244/464/8 219/465/8 +f 219/465/8 242/459/8 220/466/8 +f 94/467/3 245/468/3 283/469/3 +f 250/470/2 294/471/2 252/472/2 +f 253/473/3 293/474/3 251/475/3 +f 262/476/2 325/477/2 267/478/2 +f 268/479/2 292/480/2 250/470/2 +f 251/475/3 334/481/3 249/482/3 +f 265/483/5 344/484/5 264/485/5 +f 267/478/2 326/486/2 268/479/2 +f 220/487/3 317/488/3 286/489/3 +f 100/43/3 255/490/3 99/47/3 +f 90/46/2 273/491/2 91/54/2 +f 217/56/2 281/55/2 285/492/2 +f 84/493/2 315/494/2 284/495/2 +f 95/496/3 245/468/3 94/467/3 +f 85/497/2 248/498/2 86/499/2 +f 96/415/3 247/500/3 95/496/3 +f 249/482/3 333/501/3 275/502/3 +f 261/503/1 342/504/1 262/505/1 +f 86/499/2 269/506/2 87/412/2 +f 284/495/9 316/507/9 283/469/9 +f 318/508/10 286/489/10 317/509/10 +f 268/510/8 246/511/8 267/512/8 +f 250/513/8 248/498/8 268/510/8 +f 252/514/8 269/506/8 250/513/8 +f 254/515/8 270/413/8 252/514/8 +f 272/516/8 271/51/8 254/515/8 +f 258/517/8 256/45/8 272/516/8 +f 274/518/8 247/500/8 275/519/8 +f 275/519/8 276/414/8 249/520/8 +f 249/520/8 277/52/8 251/521/8 +f 251/521/8 278/48/8 253/522/8 +f 253/522/8 255/490/8 279/523/8 +f 279/523/8 257/42/8 280/524/8 +f 260/525/8 273/491/8 258/517/8 +f 280/524/8 259/526/8 282/527/8 +f 262/528/8 283/469/8 261/529/8 +f 264/530/8 285/492/8 265/531/8 +f 262/528/8 246/511/8 284/495/8 +f 261/529/8 245/468/8 274/518/8 +f 265/531/8 281/55/8 260/525/8 +f 264/530/8 259/526/8 286/489/8 +f 291/532/2 347/533/2 289/534/2 +f 303/535/5 362/536/5 304/537/5 +f 289/534/2 345/538/2 332/539/2 +f 340/540/2 357/541/2 338/542/2 +f 330/543/3 358/544/3 331/545/3 +f 331/545/3 360/546/3 339/547/3 +f 306/548/2 359/549/2 340/540/2 +f 329/550/3 356/551/3 330/543/3 +f 338/542/2 355/552/2 337/553/2 +f 274/554/3 341/555/3 261/556/3 +f 279/557/3 295/558/3 253/473/3 +f 252/472/2 296/559/2 254/560/2 +f 260/561/2 343/562/2 265/563/2 +f 280/564/3 297/565/3 279/557/3 +f 254/560/2 298/566/2 272/567/2 +f 264/568/3 301/569/3 282/570/3 +f 258/571/2 302/572/2 260/561/2 +f 272/567/2 300/573/2 258/571/2 +f 282/570/3 299/574/3 280/564/3 +f 275/502/3 287/575/3 274/554/3 +f 92/576/8 93/421/8 308/577/8 +f 83/578/8 84/426/8 310/422/8 +f 83/578/8 307/419/8 92/576/8 +f 104/579/8 311/456/8 105/580/8 +f 105/580/8 218/458/8 313/581/8 +f 104/579/8 220/466/8 312/454/8 +f 319/582/1 315/583/1 320/584/1 +f 266/585/5 317/509/5 263/586/5 +f 320/584/1 84/587/1 309/588/1 +f 319/582/1 93/589/1 316/507/1 +f 263/586/5 220/590/5 314/591/5 +f 266/585/5 218/592/5 318/508/5 +f 319/593/8 322/594/8 321/595/8 +f 263/58/8 323/596/8 266/597/8 +f 83/598/2 320/599/2 309/600/2 +f 313/601/2 323/596/2 105/602/2 +f 92/603/1 322/594/1 83/604/1 +f 308/605/3 321/595/3 92/606/3 +f 290/607/8 325/477/8 288/608/8 +f 327/609/8 326/486/8 290/607/8 +f 328/610/8 292/480/8 327/609/8 +f 329/550/8 294/471/8 328/610/8 +f 330/543/8 296/559/8 329/550/8 +f 331/545/8 298/566/8 330/543/8 +f 332/539/8 333/501/8 289/534/8 +f 289/534/8 334/481/8 291/532/8 +f 291/532/8 293/474/8 335/611/8 +f 335/611/8 295/558/8 336/612/8 +f 336/612/8 297/565/8 337/553/8 +f 337/553/8 299/574/8 338/542/8 +f 339/547/8 300/573/8 331/545/8 +f 338/542/8 301/569/8 340/540/8 +f 304/537/8 341/613/8 303/535/8 +f 306/614/8 343/615/8 305/616/8 +f 304/617/8 325/477/8 342/618/8 +f 303/619/8 287/575/8 332/539/8 +f 305/620/8 302/572/8 339/547/8 +f 306/548/8 301/569/8 344/621/8 +f 345/538/8 348/622/8 346/623/8 +f 347/533/8 350/624/8 348/622/8 +f 349/625/8 352/626/8 350/624/8 +f 351/627/8 354/628/8 352/626/8 +f 353/629/8 356/551/8 354/628/8 +f 355/552/8 358/544/8 356/551/8 +f 357/541/8 360/546/8 358/544/8 +f 361/630/8 346/623/8 362/536/8 +f 359/549/8 363/631/8 360/546/8 +f 288/608/3 348/622/3 290/607/3 +f 305/616/1 364/632/1 306/614/1 +f 335/611/2 349/625/2 291/532/2 +f 290/607/3 350/624/3 327/609/3 +f 304/617/3 346/623/3 288/608/3 +f 336/612/2 351/627/2 335/611/2 +f 327/609/3 352/626/3 328/610/3 +f 332/539/2 361/630/2 303/619/2 +f 337/553/2 353/629/2 336/612/2 +f 328/610/3 354/628/3 329/550/3 +f 339/547/3 363/631/3 305/620/3 +f 373/633/3 368/634/3 367/635/3 +f 384/636/1 371/637/1 381/638/1 +f 377/639/2 370/640/2 369/641/2 +f 388/642/5 365/643/5 385/644/5 +f 375/645/8 388/642/8 391/646/8 +f 368/634/8 389/647/8 383/648/8 +f 376/649/8 391/646/8 389/647/8 +f 371/650/2 379/651/2 378/652/2 +f 378/652/2 380/653/2 377/639/2 +f 365/654/3 375/645/3 374/655/3 +f 374/655/3 376/649/3 373/633/3 +f 394/656/6 374/655/6 373/633/6 +f 393/657/6 396/658/6 394/656/6 +f 365/659/5 404/660/5 385/661/5 +f 381/662/6 394/656/6 382/663/6 +f 390/664/8 380/653/8 379/651/8 +f 389/647/8 392/665/8 390/664/8 +f 384/636/8 379/651/8 372/666/8 +f 383/648/8 390/664/8 384/636/8 +f 392/665/8 370/640/8 380/653/8 +f 391/646/8 387/667/8 392/665/8 +f 385/661/2 403/668/2 396/669/2 +f 395/670/6 385/671/6 396/658/6 +f 370/640/5 386/672/5 369/673/5 +f 387/667/5 385/644/5 386/672/5 +f 368/634/1 382/674/1 367/675/1 +f 383/648/1 381/638/1 382/674/1 +f 382/676/1 400/677/1 367/678/1 +f 394/679/2 399/680/2 382/676/2 +f 374/681/3 398/682/3 365/659/3 +f 373/683/5 402/684/5 394/685/5 +f 396/686/1 397/687/1 374/681/1 +f 367/678/3 401/688/3 373/683/3 +f 413/689/3 408/690/3 407/691/3 +f 424/692/1 411/693/1 421/694/1 +f 417/695/2 410/696/2 409/697/2 +f 428/698/5 405/699/5 425/700/5 +f 415/701/8 428/698/8 431/702/8 +f 408/690/8 429/703/8 423/704/8 +f 416/705/8 431/702/8 429/703/8 +f 411/706/2 419/707/2 418/708/2 +f 418/708/2 420/709/2 417/695/2 +f 405/710/3 415/701/3 414/711/3 +f 414/711/3 416/705/3 413/689/3 +f 434/712/6 414/711/6 413/689/6 +f 433/713/6 436/714/6 434/712/6 +f 405/715/5 444/716/5 425/717/5 +f 421/718/6 434/712/6 422/719/6 +f 430/720/8 420/709/8 419/707/8 +f 429/703/8 432/721/8 430/720/8 +f 424/692/8 419/707/8 412/722/8 +f 423/704/8 430/720/8 424/692/8 +f 432/721/8 410/696/8 420/709/8 +f 431/702/8 427/723/8 432/721/8 +f 425/717/2 443/724/2 436/725/2 +f 435/726/6 425/727/6 436/714/6 +f 410/696/5 426/728/5 409/729/5 +f 427/723/5 425/700/5 426/728/5 +f 408/690/1 422/730/1 407/731/1 +f 423/704/1 421/694/1 422/730/1 +f 422/732/1 440/733/1 407/734/1 +f 434/735/2 439/736/2 422/732/2 +f 414/737/3 438/738/3 405/715/3 +f 413/739/5 442/740/5 434/741/5 +f 436/742/1 437/743/1 414/737/1 +f 407/734/3 441/744/3 413/739/3 +f 453/745/3 448/746/3 447/747/3 +f 464/748/1 451/749/1 461/750/1 +f 457/751/2 450/752/2 449/753/2 +f 468/754/5 445/755/5 465/756/5 +f 455/757/8 468/754/8 471/758/8 +f 448/746/8 469/759/8 463/760/8 +f 456/761/8 471/758/8 469/759/8 +f 451/762/2 459/763/2 458/764/2 +f 458/764/2 460/765/2 457/751/2 +f 445/766/3 455/757/3 454/767/3 +f 454/767/3 456/761/3 453/745/3 +f 474/768/6 454/767/6 453/745/6 +f 473/769/6 476/770/6 474/768/6 +f 445/771/5 484/772/5 465/773/5 +f 461/774/6 474/768/6 462/775/6 +f 470/776/8 460/765/8 459/763/8 +f 469/759/8 472/777/8 470/776/8 +f 464/748/8 459/763/8 452/778/8 +f 463/760/8 470/776/8 464/748/8 +f 472/777/8 450/752/8 460/765/8 +f 471/758/8 467/779/8 472/777/8 +f 465/773/2 483/780/2 476/781/2 +f 475/782/6 465/783/6 476/770/6 +f 450/752/5 466/784/5 449/785/5 +f 467/779/5 465/756/5 466/784/5 +f 448/746/1 462/786/1 447/787/1 +f 463/760/1 461/750/1 462/786/1 +f 462/788/1 480/789/1 447/790/1 +f 474/791/2 479/792/2 462/788/2 +f 454/793/3 478/794/3 445/771/3 +f 453/795/5 482/796/5 474/797/5 +f 476/798/1 477/799/1 454/793/1 +f 447/790/3 481/800/3 453/795/3 +f 493/801/3 488/802/3 487/803/3 +f 504/804/1 491/805/1 501/806/1 +f 497/807/2 490/808/2 489/809/2 +f 508/810/5 485/811/5 505/812/5 +f 495/813/8 508/810/8 511/814/8 +f 488/802/8 509/815/8 503/816/8 +f 496/817/8 511/814/8 509/815/8 +f 491/818/2 499/819/2 498/820/2 +f 498/820/2 500/821/2 497/807/2 +f 485/822/3 495/813/3 494/823/3 +f 494/823/3 496/817/3 493/801/3 +f 514/824/6 494/823/6 493/801/6 +f 513/825/6 516/826/6 514/824/6 +f 485/827/5 524/828/5 505/829/5 +f 501/830/6 514/824/6 502/831/6 +f 510/832/8 500/821/8 499/819/8 +f 509/815/8 512/833/8 510/832/8 +f 504/804/8 499/819/8 492/834/8 +f 503/816/8 510/832/8 504/804/8 +f 512/833/8 490/808/8 500/821/8 +f 511/814/8 507/835/8 512/833/8 +f 505/829/2 523/836/2 516/837/2 +f 515/838/6 505/839/6 516/826/6 +f 490/808/5 506/840/5 489/841/5 +f 507/835/5 505/812/5 506/840/5 +f 488/802/1 502/842/1 487/843/1 +f 503/816/1 501/806/1 502/842/1 +f 502/844/1 520/845/1 487/846/1 +f 514/847/2 519/848/2 502/844/2 +f 494/849/3 518/850/3 485/827/3 +f 493/851/5 522/852/5 514/853/5 +f 516/854/1 517/855/1 494/849/1 +f 487/846/3 521/856/3 493/851/3 +f 533/857/3 528/858/3 527/859/3 +f 544/860/1 531/861/1 541/862/1 +f 537/863/2 530/864/2 529/865/2 +f 548/866/5 525/867/5 545/868/5 +f 535/869/8 548/866/8 551/870/8 +f 528/858/8 549/871/8 543/872/8 +f 536/873/8 551/870/8 549/871/8 +f 531/874/2 539/875/2 538/876/2 +f 538/876/2 540/877/2 537/863/2 +f 525/878/3 535/869/3 534/879/3 +f 534/879/3 536/873/3 533/857/3 +f 554/880/6 534/879/6 533/857/6 +f 553/881/6 556/882/6 554/880/6 +f 525/883/5 564/884/5 545/885/5 +f 541/886/6 554/880/6 542/887/6 +f 550/888/8 540/877/8 539/875/8 +f 549/871/8 552/889/8 550/888/8 +f 544/860/8 539/875/8 532/890/8 +f 543/872/8 550/888/8 544/860/8 +f 552/889/8 530/864/8 540/877/8 +f 551/870/8 547/891/8 552/889/8 +f 545/885/2 563/892/2 556/893/2 +f 555/894/6 545/895/6 556/882/6 +f 530/864/5 546/896/5 529/897/5 +f 547/891/5 545/868/5 546/896/5 +f 528/858/1 542/898/1 527/899/1 +f 543/872/1 541/862/1 542/898/1 +f 542/900/1 560/901/1 527/902/1 +f 554/903/2 559/904/2 542/900/2 +f 534/905/3 558/906/3 525/883/3 +f 533/907/5 562/908/5 554/909/5 +f 556/910/1 557/911/1 534/905/1 +f 527/902/3 561/912/3 533/907/3 +f 573/913/3 568/914/3 567/915/3 +f 584/916/1 571/917/1 581/918/1 +f 577/919/2 570/920/2 569/921/2 +f 588/922/5 565/923/5 585/924/5 +f 575/925/8 588/922/8 591/926/8 +f 568/914/8 589/927/8 583/928/8 +f 576/929/8 591/926/8 589/927/8 +f 571/930/2 579/931/2 578/932/2 +f 578/932/2 580/933/2 577/919/2 +f 565/934/3 575/925/3 574/935/3 +f 574/935/3 576/929/3 573/913/3 +f 594/936/6 574/935/6 573/913/6 +f 593/937/6 596/938/6 594/936/6 +f 565/939/5 604/940/5 585/941/5 +f 581/942/6 594/936/6 582/943/6 +f 590/944/8 580/933/8 579/931/8 +f 589/927/8 592/945/8 590/944/8 +f 584/916/8 579/931/8 572/946/8 +f 583/928/8 590/944/8 584/916/8 +f 592/945/8 570/920/8 580/933/8 +f 591/926/8 587/947/8 592/945/8 +f 585/941/2 603/948/2 596/949/2 +f 595/950/6 585/951/6 596/938/6 +f 570/920/5 586/952/5 569/953/5 +f 587/947/5 585/924/5 586/952/5 +f 568/914/1 582/954/1 567/955/1 +f 583/928/1 581/918/1 582/954/1 +f 582/956/1 600/957/1 567/958/1 +f 594/959/2 599/960/2 582/956/2 +f 574/961/3 598/962/3 565/939/3 +f 573/963/5 602/964/5 594/965/5 +f 596/966/1 597/967/1 574/961/1 +f 567/958/3 601/968/3 573/963/3 +f 613/969/3 608/970/3 607/971/3 +f 624/972/1 611/973/1 621/974/1 +f 617/975/2 610/976/2 609/977/2 +f 628/978/5 605/979/5 625/980/5 +f 615/981/8 628/978/8 631/982/8 +f 608/970/8 629/983/8 623/984/8 +f 616/985/8 631/982/8 629/983/8 +f 611/986/2 619/987/2 618/988/2 +f 618/988/2 620/989/2 617/975/2 +f 605/990/3 615/981/3 614/991/3 +f 614/991/3 616/985/3 613/969/3 +f 634/992/6 614/991/6 613/969/6 +f 633/993/6 636/994/6 634/992/6 +f 605/995/5 644/996/5 625/997/5 +f 621/998/6 634/992/6 622/999/6 +f 630/1000/8 620/989/8 619/987/8 +f 629/983/8 632/1001/8 630/1000/8 +f 624/972/8 619/987/8 612/1002/8 +f 623/984/8 630/1000/8 624/972/8 +f 632/1001/8 610/976/8 620/989/8 +f 631/982/8 627/1003/8 632/1001/8 +f 625/997/2 643/1004/2 636/1005/2 +f 635/1006/6 625/1007/6 636/994/6 +f 610/976/5 626/1008/5 609/1009/5 +f 627/1003/5 625/980/5 626/1008/5 +f 608/970/1 622/1010/1 607/1011/1 +f 623/984/1 621/974/1 622/1010/1 +f 622/1012/1 640/1013/1 607/1014/1 +f 634/1015/2 639/1016/2 622/1012/2 +f 614/1017/3 638/1018/3 605/995/3 +f 613/1019/5 642/1020/5 634/1021/5 +f 636/1022/1 637/1023/1 614/1017/1 +f 607/1014/3 641/1024/3 613/1019/3 +f 653/1025/3 648/1026/3 647/1027/3 +f 664/1028/1 651/1029/1 661/1030/1 +f 657/1031/2 650/1032/2 649/1033/2 +f 668/1034/5 645/1035/5 665/1036/5 +f 655/1037/8 668/1034/8 671/1038/8 +f 648/1026/8 669/1039/8 663/1040/8 +f 656/1041/8 671/1038/8 669/1039/8 +f 651/1042/2 659/1043/2 658/1044/2 +f 658/1044/2 660/1045/2 657/1031/2 +f 645/1046/3 655/1037/3 654/1047/3 +f 654/1047/3 656/1041/3 653/1025/3 +f 674/1048/6 654/1047/6 653/1025/6 +f 673/1049/6 676/1050/6 674/1048/6 +f 645/1051/5 684/1052/5 665/1053/5 +f 661/1054/6 674/1048/6 662/1055/6 +f 670/1056/8 660/1045/8 659/1043/8 +f 669/1039/8 672/1057/8 670/1056/8 +f 664/1028/8 659/1043/8 652/1058/8 +f 663/1040/8 670/1056/8 664/1028/8 +f 672/1057/8 650/1032/8 660/1045/8 +f 671/1038/8 667/1059/8 672/1057/8 +f 665/1053/2 683/1060/2 676/1061/2 +f 675/1062/6 665/1063/6 676/1050/6 +f 650/1032/5 666/1064/5 649/1065/5 +f 667/1059/5 665/1036/5 666/1064/5 +f 648/1026/1 662/1066/1 647/1067/1 +f 663/1040/1 661/1030/1 662/1066/1 +f 662/1068/1 680/1069/1 647/1070/1 +f 674/1071/2 679/1072/2 662/1068/2 +f 654/1073/3 678/1074/3 645/1051/3 +f 653/1075/5 682/1076/5 674/1077/5 +f 676/1078/1 677/1079/1 654/1073/1 +f 647/1070/3 681/1080/3 653/1075/3 +f 693/1081/3 688/1082/3 687/1083/3 +f 704/1084/1 691/1085/1 701/1086/1 +f 697/1087/2 690/1088/2 689/1089/2 +f 708/1090/5 685/1091/5 705/1092/5 +f 695/1093/8 708/1090/8 711/1094/8 +f 688/1082/8 709/1095/8 703/1096/8 +f 696/1097/8 711/1094/8 709/1095/8 +f 691/1098/2 699/1099/2 698/1100/2 +f 698/1100/2 700/1101/2 697/1087/2 +f 685/1102/3 695/1093/3 694/1103/3 +f 694/1103/3 696/1097/3 693/1081/3 +f 714/1104/6 694/1103/6 693/1081/6 +f 713/1105/6 716/1106/6 714/1104/6 +f 685/1107/5 724/1108/5 705/1109/5 +f 701/1110/6 714/1104/6 702/1111/6 +f 710/1112/8 700/1101/8 699/1099/8 +f 709/1095/8 712/1113/8 710/1112/8 +f 704/1084/8 699/1099/8 692/1114/8 +f 703/1096/8 710/1112/8 704/1084/8 +f 712/1113/8 690/1088/8 700/1101/8 +f 711/1094/8 707/1115/8 712/1113/8 +f 705/1109/2 723/1116/2 716/1117/2 +f 715/1118/6 705/1119/6 716/1106/6 +f 690/1088/5 706/1120/5 689/1121/5 +f 707/1115/5 705/1092/5 706/1120/5 +f 688/1082/1 702/1122/1 687/1123/1 +f 703/1096/1 701/1086/1 702/1122/1 +f 702/1124/1 720/1125/1 687/1126/1 +f 714/1127/2 719/1128/2 702/1124/2 +f 694/1129/3 718/1130/3 685/1107/3 +f 693/1131/5 722/1132/5 714/1133/5 +f 716/1134/1 717/1135/1 694/1129/1 +f 687/1126/3 721/1136/3 693/1131/3 +f 733/1137/3 728/1138/3 727/1139/3 +f 744/1140/1 731/1141/1 741/1142/1 +f 737/1143/2 730/1144/2 729/1145/2 +f 748/1146/5 725/1147/5 745/1148/5 +f 735/1149/8 748/1146/8 751/1150/8 +f 728/1138/8 749/1151/8 743/1152/8 +f 736/1153/8 751/1150/8 749/1151/8 +f 731/1154/2 739/1155/2 738/1156/2 +f 738/1156/2 740/1157/2 737/1143/2 +f 725/1158/3 735/1149/3 734/1159/3 +f 734/1159/3 736/1153/3 733/1137/3 +f 754/1160/6 734/1159/6 733/1137/6 +f 753/1161/6 756/1162/6 754/1160/6 +f 725/1163/5 764/1164/5 745/1165/5 +f 741/1166/6 754/1160/6 742/1167/6 +f 750/1168/8 740/1157/8 739/1155/8 +f 749/1151/8 752/1169/8 750/1168/8 +f 744/1140/8 739/1155/8 732/1170/8 +f 743/1152/8 750/1168/8 744/1140/8 +f 752/1169/8 730/1144/8 740/1157/8 +f 751/1150/8 747/1171/8 752/1169/8 +f 745/1165/2 763/1172/2 756/1173/2 +f 755/1174/6 745/1175/6 756/1162/6 +f 730/1144/5 746/1176/5 729/1177/5 +f 747/1171/5 745/1148/5 746/1176/5 +f 728/1138/1 742/1178/1 727/1179/1 +f 743/1152/1 741/1142/1 742/1178/1 +f 742/1180/1 760/1181/1 727/1182/1 +f 754/1183/2 759/1184/2 742/1180/2 +f 734/1185/3 758/1186/3 725/1163/3 +f 733/1187/5 762/1188/5 754/1189/5 +f 756/1190/1 757/1191/1 734/1185/1 +f 727/1182/3 761/1192/3 733/1187/3 +f 773/1193/3 768/1194/3 767/1195/3 +f 784/1196/1 771/1197/1 781/1198/1 +f 777/1199/2 770/1200/2 769/1201/2 +f 788/1202/5 765/1203/5 785/1204/5 +f 775/1205/8 788/1202/8 791/1206/8 +f 768/1194/8 789/1207/8 783/1208/8 +f 776/1209/8 791/1206/8 789/1207/8 +f 771/1210/2 779/1211/2 778/1212/2 +f 778/1212/2 780/1213/2 777/1199/2 +f 765/1214/3 775/1205/3 774/1215/3 +f 774/1215/3 776/1209/3 773/1193/3 +f 794/1216/6 774/1215/6 773/1193/6 +f 793/1217/6 796/1218/6 794/1216/6 +f 765/1219/5 804/1220/5 785/1221/5 +f 781/1222/6 794/1216/6 782/1223/6 +f 790/1224/8 780/1213/8 779/1211/8 +f 789/1207/8 792/1225/8 790/1224/8 +f 784/1196/8 779/1211/8 772/1226/8 +f 783/1208/8 790/1224/8 784/1196/8 +f 792/1225/8 770/1200/8 780/1213/8 +f 791/1206/8 787/1227/8 792/1225/8 +f 785/1221/2 803/1228/2 796/1229/2 +f 795/1230/6 785/1231/6 796/1218/6 +f 770/1200/5 786/1232/5 769/1233/5 +f 787/1227/5 785/1204/5 786/1232/5 +f 768/1194/1 782/1234/1 767/1235/1 +f 783/1208/1 781/1198/1 782/1234/1 +f 782/1236/1 800/1237/1 767/1238/1 +f 794/1239/2 799/1240/2 782/1236/2 +f 774/1241/3 798/1242/3 765/1219/3 +f 773/1243/5 802/1244/5 794/1245/5 +f 796/1246/1 797/1247/1 774/1241/1 +f 767/1238/3 801/1248/3 773/1243/3 +f 813/1249/2 808/1250/2 816/1251/2 +f 811/1252/1 824/1253/1 821/1254/1 +f 817/1255/3 810/1256/3 820/1257/3 +f 805/1258/5 828/1259/5 825/1260/5 +f 828/1259/8 815/1261/8 831/1262/8 +f 829/1263/8 808/1250/8 823/1264/8 +f 831/1262/8 816/1251/8 829/1263/8 +f 811/1265/3 819/1266/3 812/1267/3 +f 818/1268/3 820/1257/3 819/1266/3 +f 805/1269/2 815/1261/2 806/1270/2 +f 814/1271/2 816/1251/2 815/1261/2 +f 814/1271/6 834/1272/6 813/1249/6 +f 836/1273/6 833/1274/6 834/1272/6 +f 844/1275/5 805/1276/5 825/1277/5 +f 834/1272/6 821/1278/6 822/1279/6 +f 820/1257/8 830/1280/8 819/1266/8 +f 832/1281/8 829/1263/8 830/1280/8 +f 819/1266/8 824/1253/8 812/1267/8 +f 830/1280/8 823/1264/8 824/1253/8 +f 810/1256/8 832/1281/8 820/1257/8 +f 827/1282/8 831/1262/8 832/1281/8 +f 843/1283/3 825/1277/3 836/1284/3 +f 825/1285/6 835/1286/6 836/1273/6 +f 826/1287/5 810/1256/5 809/1288/5 +f 825/1260/5 827/1282/5 826/1287/5 +f 822/1289/1 808/1250/1 807/1290/1 +f 821/1254/1 823/1264/1 822/1289/1 +f 840/1291/1 822/1292/1 807/1293/1 +f 839/1294/3 834/1295/3 822/1292/3 +f 838/1296/2 814/1297/2 805/1276/2 +f 842/1298/5 813/1299/5 834/1300/5 +f 837/1301/1 836/1302/1 814/1297/1 +f 841/1303/2 807/1293/2 813/1299/2 +f 853/1304/2 848/1305/2 856/1306/2 +f 851/1307/1 864/1308/1 861/1309/1 +f 857/1310/3 850/1311/3 860/1312/3 +f 845/1313/5 868/1314/5 865/1315/5 +f 868/1314/8 855/1316/8 871/1317/8 +f 869/1318/8 848/1305/8 863/1319/8 +f 871/1317/8 856/1306/8 869/1318/8 +f 851/1320/3 859/1321/3 852/1322/3 +f 858/1323/3 860/1312/3 859/1321/3 +f 845/1324/2 855/1316/2 846/1325/2 +f 854/1326/2 856/1306/2 855/1316/2 +f 854/1326/6 874/1327/6 853/1304/6 +f 876/1328/6 873/1329/6 874/1327/6 +f 884/1330/5 845/1331/5 865/1332/5 +f 874/1327/6 861/1333/6 862/1334/6 +f 860/1312/8 870/1335/8 859/1321/8 +f 872/1336/8 869/1318/8 870/1335/8 +f 859/1321/8 864/1308/8 852/1322/8 +f 870/1335/8 863/1319/8 864/1308/8 +f 850/1311/8 872/1336/8 860/1312/8 +f 867/1337/8 871/1317/8 872/1336/8 +f 883/1338/3 865/1332/3 876/1339/3 +f 865/1340/6 875/1341/6 876/1328/6 +f 866/1342/5 850/1311/5 849/1343/5 +f 865/1315/5 867/1337/5 866/1342/5 +f 862/1344/1 848/1305/1 847/1345/1 +f 861/1309/1 863/1319/1 862/1344/1 +f 880/1346/1 862/1347/1 847/1348/1 +f 879/1349/3 874/1350/3 862/1347/3 +f 878/1351/2 854/1352/2 845/1331/2 +f 882/1353/5 853/1354/5 874/1355/5 +f 877/1356/1 876/1357/1 854/1352/1 +f 881/1358/2 847/1348/2 853/1354/2 +f 893/1359/2 888/1360/2 896/1361/2 +f 891/1362/1 904/1363/1 901/1364/1 +f 897/1365/3 890/1366/3 900/1367/3 +f 885/1368/5 908/1369/5 905/1370/5 +f 908/1369/8 895/1371/8 911/1372/8 +f 909/1373/8 888/1360/8 903/1374/8 +f 911/1372/8 896/1361/8 909/1373/8 +f 891/1375/3 899/1376/3 892/1377/3 +f 898/1378/3 900/1367/3 899/1376/3 +f 885/1379/2 895/1371/2 886/1380/2 +f 894/1381/2 896/1361/2 895/1371/2 +f 894/1381/6 914/1382/6 893/1359/6 +f 916/1383/6 913/1384/6 914/1382/6 +f 924/1385/5 885/1386/5 905/1387/5 +f 914/1382/6 901/1388/6 902/1389/6 +f 900/1367/8 910/1390/8 899/1376/8 +f 912/1391/8 909/1373/8 910/1390/8 +f 899/1376/8 904/1363/8 892/1377/8 +f 910/1390/8 903/1374/8 904/1363/8 +f 890/1366/8 912/1391/8 900/1367/8 +f 907/1392/8 911/1372/8 912/1391/8 +f 923/1393/3 905/1387/3 916/1394/3 +f 905/1395/6 915/1396/6 916/1383/6 +f 906/1397/5 890/1366/5 889/1398/5 +f 905/1370/5 907/1392/5 906/1397/5 +f 902/1399/1 888/1360/1 887/1400/1 +f 901/1364/1 903/1374/1 902/1399/1 +f 920/1401/1 902/1402/1 887/1403/1 +f 919/1404/3 914/1405/3 902/1402/3 +f 918/1406/2 894/1407/2 885/1386/2 +f 922/1408/5 893/1409/5 914/1410/5 +f 917/1411/1 916/1412/1 894/1407/1 +f 921/1413/2 887/1403/2 893/1409/2 +f 933/1414/2 928/1415/2 936/1416/2 +f 931/1417/1 944/1418/1 941/1419/1 +f 937/1420/3 930/1421/3 940/1422/3 +f 925/1423/5 948/1424/5 945/1425/5 +f 948/1424/8 935/1426/8 951/1427/8 +f 949/1428/8 928/1415/8 943/1429/8 +f 951/1427/8 936/1416/8 949/1428/8 +f 931/1430/3 939/1431/3 932/1432/3 +f 938/1433/3 940/1422/3 939/1431/3 +f 925/1434/2 935/1426/2 926/1435/2 +f 934/1436/2 936/1416/2 935/1426/2 +f 934/1436/6 954/1437/6 933/1414/6 +f 956/1438/6 953/1439/6 954/1437/6 +f 964/1440/5 925/1441/5 945/1442/5 +f 954/1437/6 941/1443/6 942/1444/6 +f 940/1422/8 950/1445/8 939/1431/8 +f 952/1446/8 949/1428/8 950/1445/8 +f 939/1431/8 944/1418/8 932/1432/8 +f 950/1445/8 943/1429/8 944/1418/8 +f 930/1421/8 952/1446/8 940/1422/8 +f 947/1447/8 951/1427/8 952/1446/8 +f 963/1448/3 945/1442/3 956/1449/3 +f 945/1450/6 955/1451/6 956/1438/6 +f 946/1452/5 930/1421/5 929/1453/5 +f 945/1425/5 947/1447/5 946/1452/5 +f 942/1454/1 928/1415/1 927/1455/1 +f 941/1419/1 943/1429/1 942/1454/1 +f 960/1456/1 942/1457/1 927/1458/1 +f 959/1459/3 954/1460/3 942/1457/3 +f 958/1461/2 934/1462/2 925/1441/2 +f 962/1463/5 933/1464/5 954/1465/5 +f 957/1466/1 956/1467/1 934/1462/1 +f 961/1468/2 927/1458/2 933/1464/2 +f 973/1469/2 968/1470/2 976/1471/2 +f 971/1472/1 984/1473/1 981/1474/1 +f 977/1475/3 970/1476/3 980/1477/3 +f 965/1478/5 988/1479/5 985/1480/5 +f 988/1479/8 975/1481/8 991/1482/8 +f 989/1483/8 968/1470/8 983/1484/8 +f 991/1482/8 976/1471/8 989/1483/8 +f 971/1485/3 979/1486/3 972/1487/3 +f 978/1488/3 980/1477/3 979/1486/3 +f 965/1489/2 975/1481/2 966/1490/2 +f 974/1491/2 976/1471/2 975/1481/2 +f 974/1491/6 994/1492/6 973/1469/6 +f 996/1493/6 993/1494/6 994/1492/6 +f 1004/1495/5 965/1496/5 985/1497/5 +f 994/1492/6 981/1498/6 982/1499/6 +f 980/1477/8 990/1500/8 979/1486/8 +f 992/1501/8 989/1483/8 990/1500/8 +f 979/1486/8 984/1473/8 972/1487/8 +f 990/1500/8 983/1484/8 984/1473/8 +f 970/1476/8 992/1501/8 980/1477/8 +f 987/1502/8 991/1482/8 992/1501/8 +f 1003/1503/3 985/1497/3 996/1504/3 +f 985/1505/6 995/1506/6 996/1493/6 +f 986/1507/5 970/1476/5 969/1508/5 +f 985/1480/5 987/1502/5 986/1507/5 +f 982/1509/1 968/1470/1 967/1510/1 +f 981/1474/1 983/1484/1 982/1509/1 +f 1000/1511/1 982/1512/1 967/1513/1 +f 999/1514/3 994/1515/3 982/1512/3 +f 998/1516/2 974/1517/2 965/1496/2 +f 1002/1518/5 973/1519/5 994/1520/5 +f 997/1521/1 996/1522/1 974/1517/1 +f 1001/1523/2 967/1513/2 973/1519/2 +f 1013/1524/2 1008/1525/2 1016/1526/2 +f 1011/1527/1 1024/1528/1 1021/1529/1 +f 1017/1530/3 1010/1531/3 1020/1532/3 +f 1005/1533/5 1028/1534/5 1025/1535/5 +f 1028/1534/8 1015/1536/8 1031/1537/8 +f 1029/1538/8 1008/1525/8 1023/1539/8 +f 1031/1537/8 1016/1526/8 1029/1538/8 +f 1011/1540/3 1019/1541/3 1012/1542/3 +f 1018/1543/3 1020/1532/3 1019/1541/3 +f 1005/1544/2 1015/1536/2 1006/1545/2 +f 1014/1546/2 1016/1526/2 1015/1536/2 +f 1014/1546/6 1034/1547/6 1013/1524/6 +f 1036/1548/6 1033/1549/6 1034/1547/6 +f 1044/1550/5 1005/1551/5 1025/1552/5 +f 1034/1547/6 1021/1553/6 1022/1554/6 +f 1020/1532/8 1030/1555/8 1019/1541/8 +f 1032/1556/8 1029/1538/8 1030/1555/8 +f 1019/1541/8 1024/1528/8 1012/1542/8 +f 1030/1555/8 1023/1539/8 1024/1528/8 +f 1010/1531/8 1032/1556/8 1020/1532/8 +f 1027/1557/8 1031/1537/8 1032/1556/8 +f 1043/1558/3 1025/1552/3 1036/1559/3 +f 1025/1560/6 1035/1561/6 1036/1548/6 +f 1026/1562/5 1010/1531/5 1009/1563/5 +f 1025/1535/5 1027/1557/5 1026/1562/5 +f 1022/1564/1 1008/1525/1 1007/1565/1 +f 1021/1529/1 1023/1539/1 1022/1564/1 +f 1040/1566/1 1022/1567/1 1007/1568/1 +f 1039/1569/3 1034/1570/3 1022/1567/3 +f 1038/1571/2 1014/1572/2 1005/1551/2 +f 1042/1573/5 1013/1574/5 1034/1575/5 +f 1037/1576/1 1036/1577/1 1014/1572/1 +f 1041/1578/2 1007/1568/2 1013/1574/2 +f 1053/1579/2 1048/1580/2 1056/1581/2 +f 1051/1582/1 1064/1583/1 1061/1584/1 +f 1057/1585/3 1050/1586/3 1060/1587/3 +f 1045/1588/5 1068/1589/5 1065/1590/5 +f 1068/1589/8 1055/1591/8 1071/1592/8 +f 1069/1593/8 1048/1580/8 1063/1594/8 +f 1071/1592/8 1056/1581/8 1069/1593/8 +f 1051/1595/3 1059/1596/3 1052/1597/3 +f 1058/1598/3 1060/1587/3 1059/1596/3 +f 1045/1599/2 1055/1591/2 1046/1600/2 +f 1054/1601/2 1056/1581/2 1055/1591/2 +f 1054/1601/6 1074/1602/6 1053/1579/6 +f 1076/1603/6 1073/1604/6 1074/1602/6 +f 1084/1605/5 1045/1606/5 1065/1607/5 +f 1074/1602/6 1061/1608/6 1062/1609/6 +f 1060/1587/8 1070/1610/8 1059/1596/8 +f 1072/1611/8 1069/1593/8 1070/1610/8 +f 1059/1596/8 1064/1583/8 1052/1597/8 +f 1070/1610/8 1063/1594/8 1064/1583/8 +f 1050/1586/8 1072/1611/8 1060/1587/8 +f 1067/1612/8 1071/1592/8 1072/1611/8 +f 1083/1613/3 1065/1607/3 1076/1614/3 +f 1065/1615/6 1075/1616/6 1076/1603/6 +f 1066/1617/5 1050/1586/5 1049/1618/5 +f 1065/1590/5 1067/1612/5 1066/1617/5 +f 1062/1619/1 1048/1580/1 1047/1620/1 +f 1061/1584/1 1063/1594/1 1062/1619/1 +f 1080/1621/1 1062/1622/1 1047/1623/1 +f 1079/1624/3 1074/1625/3 1062/1622/3 +f 1078/1626/2 1054/1627/2 1045/1606/2 +f 1082/1628/5 1053/1629/5 1074/1630/5 +f 1077/1631/1 1076/1632/1 1054/1627/1 +f 1081/1633/2 1047/1623/2 1053/1629/2 +f 1093/1634/2 1088/1635/2 1096/1636/2 +f 1091/1637/1 1104/1638/1 1101/1639/1 +f 1097/1640/3 1090/1641/3 1100/1642/3 +f 1085/1643/5 1108/1644/5 1105/1645/5 +f 1108/1644/8 1095/1646/8 1111/1647/8 +f 1109/1648/8 1088/1635/8 1103/1649/8 +f 1111/1647/8 1096/1636/8 1109/1648/8 +f 1091/1650/3 1099/1651/3 1092/1652/3 +f 1098/1653/3 1100/1642/3 1099/1651/3 +f 1085/1654/2 1095/1646/2 1086/1655/2 +f 1094/1656/2 1096/1636/2 1095/1646/2 +f 1094/1656/6 1114/1657/6 1093/1634/6 +f 1116/1658/6 1113/1659/6 1114/1657/6 +f 1124/1660/5 1085/1661/5 1105/1662/5 +f 1114/1657/6 1101/1663/6 1102/1664/6 +f 1100/1642/8 1110/1665/8 1099/1651/8 +f 1112/1666/8 1109/1648/8 1110/1665/8 +f 1099/1651/8 1104/1638/8 1092/1652/8 +f 1110/1665/8 1103/1649/8 1104/1638/8 +f 1090/1641/8 1112/1666/8 1100/1642/8 +f 1107/1667/8 1111/1647/8 1112/1666/8 +f 1123/1668/3 1105/1662/3 1116/1669/3 +f 1105/1670/6 1115/1671/6 1116/1658/6 +f 1106/1672/5 1090/1641/5 1089/1673/5 +f 1105/1645/5 1107/1667/5 1106/1672/5 +f 1102/1674/1 1088/1635/1 1087/1675/1 +f 1101/1639/1 1103/1649/1 1102/1674/1 +f 1120/1676/1 1102/1677/1 1087/1678/1 +f 1119/1679/3 1114/1680/3 1102/1677/3 +f 1118/1681/2 1094/1682/2 1085/1661/2 +f 1122/1683/5 1093/1684/5 1114/1685/5 +f 1117/1686/1 1116/1687/1 1094/1682/1 +f 1121/1688/2 1087/1678/2 1093/1684/2 +f 1133/1689/2 1128/1690/2 1136/1691/2 +f 1131/1692/1 1144/1693/1 1141/1694/1 +f 1137/1695/3 1130/1696/3 1140/1697/3 +f 1125/1698/5 1148/1699/5 1145/1700/5 +f 1148/1699/8 1135/1701/8 1151/1702/8 +f 1149/1703/8 1128/1690/8 1143/1704/8 +f 1151/1702/8 1136/1691/8 1149/1703/8 +f 1131/1705/3 1139/1706/3 1132/1707/3 +f 1138/1708/3 1140/1697/3 1139/1706/3 +f 1125/1709/2 1135/1701/2 1126/1710/2 +f 1134/1711/2 1136/1691/2 1135/1701/2 +f 1134/1711/6 1154/1712/6 1133/1689/6 +f 1156/1713/6 1153/1714/6 1154/1712/6 +f 1164/1715/5 1125/1716/5 1145/1717/5 +f 1154/1712/6 1141/1718/6 1142/1719/6 +f 1140/1697/8 1150/1720/8 1139/1706/8 +f 1152/1721/8 1149/1703/8 1150/1720/8 +f 1139/1706/8 1144/1693/8 1132/1707/8 +f 1150/1720/8 1143/1704/8 1144/1693/8 +f 1130/1696/8 1152/1721/8 1140/1697/8 +f 1147/1722/8 1151/1702/8 1152/1721/8 +f 1163/1723/3 1145/1717/3 1156/1724/3 +f 1145/1725/6 1155/1726/6 1156/1713/6 +f 1146/1727/5 1130/1696/5 1129/1728/5 +f 1145/1700/5 1147/1722/5 1146/1727/5 +f 1142/1729/1 1128/1690/1 1127/1730/1 +f 1141/1694/1 1143/1704/1 1142/1729/1 +f 1160/1731/1 1142/1732/1 1127/1733/1 +f 1159/1734/3 1154/1735/3 1142/1732/3 +f 1158/1736/2 1134/1737/2 1125/1716/2 +f 1162/1738/5 1133/1739/5 1154/1740/5 +f 1157/1741/1 1156/1742/1 1134/1737/1 +f 1161/1743/2 1127/1733/2 1133/1739/2 +f 1173/1744/2 1168/1745/2 1176/1746/2 +f 1171/1747/1 1184/1748/1 1181/1749/1 +f 1177/1750/3 1170/1751/3 1180/1752/3 +f 1165/1753/5 1188/1754/5 1185/1755/5 +f 1188/1754/8 1175/1756/8 1191/1757/8 +f 1189/1758/8 1168/1745/8 1183/1759/8 +f 1191/1757/8 1176/1746/8 1189/1758/8 +f 1171/1760/3 1179/1761/3 1172/1762/3 +f 1178/1763/3 1180/1752/3 1179/1761/3 +f 1165/1764/2 1175/1756/2 1166/1765/2 +f 1174/1766/2 1176/1746/2 1175/1756/2 +f 1174/1766/6 1194/1767/6 1173/1744/6 +f 1196/1768/6 1193/1769/6 1194/1767/6 +f 1204/1770/5 1165/1771/5 1185/1772/5 +f 1194/1767/6 1181/1773/6 1182/1774/6 +f 1180/1752/8 1190/1775/8 1179/1761/8 +f 1192/1776/8 1189/1758/8 1190/1775/8 +f 1179/1761/8 1184/1748/8 1172/1762/8 +f 1190/1775/8 1183/1759/8 1184/1748/8 +f 1170/1751/8 1192/1776/8 1180/1752/8 +f 1187/1777/8 1191/1757/8 1192/1776/8 +f 1203/1778/3 1185/1772/3 1196/1779/3 +f 1185/1780/6 1195/1781/6 1196/1768/6 +f 1186/1782/5 1170/1751/5 1169/1783/5 +f 1185/1755/5 1187/1777/5 1186/1782/5 +f 1182/1784/1 1168/1745/1 1167/1785/1 +f 1181/1749/1 1183/1759/1 1182/1784/1 +f 1200/1786/1 1182/1787/1 1167/1788/1 +f 1199/1789/3 1194/1790/3 1182/1787/3 +f 1198/1791/2 1174/1792/2 1165/1771/2 +f 1202/1793/5 1173/1794/5 1194/1795/5 +f 1197/1796/1 1196/1797/1 1174/1792/1 +f 1201/1798/2 1167/1788/2 1173/1794/2 +f 1213/1799/2 1208/1800/2 1216/1801/2 +f 1211/1802/1 1224/1803/1 1221/1804/1 +f 1217/1805/3 1210/1806/3 1220/1807/3 +f 1205/1808/5 1228/1809/5 1225/1810/5 +f 1228/1809/8 1215/1811/8 1231/1812/8 +f 1229/1813/8 1208/1800/8 1223/1814/8 +f 1231/1812/8 1216/1801/8 1229/1813/8 +f 1211/1815/3 1219/1816/3 1212/1817/3 +f 1218/1818/3 1220/1807/3 1219/1816/3 +f 1205/1819/2 1215/1811/2 1206/1820/2 +f 1214/1821/2 1216/1801/2 1215/1811/2 +f 1214/1821/6 1234/1822/6 1213/1799/6 +f 1236/1823/6 1233/1824/6 1234/1822/6 +f 1244/1825/5 1205/1826/5 1225/1827/5 +f 1234/1822/6 1221/1828/6 1222/1829/6 +f 1220/1807/8 1230/1830/8 1219/1816/8 +f 1232/1831/8 1229/1813/8 1230/1830/8 +f 1219/1816/8 1224/1803/8 1212/1817/8 +f 1230/1830/8 1223/1814/8 1224/1803/8 +f 1210/1806/8 1232/1831/8 1220/1807/8 +f 1227/1832/8 1231/1812/8 1232/1831/8 +f 1243/1833/3 1225/1827/3 1236/1834/3 +f 1225/1835/6 1235/1836/6 1236/1823/6 +f 1226/1837/5 1210/1806/5 1209/1838/5 +f 1225/1810/5 1227/1832/5 1226/1837/5 +f 1222/1839/1 1208/1800/1 1207/1840/1 +f 1221/1804/1 1223/1814/1 1222/1839/1 +f 1240/1841/1 1222/1842/1 1207/1843/1 +f 1239/1844/3 1234/1845/3 1222/1842/3 +f 1238/1846/2 1214/1847/2 1205/1826/2 +f 1242/1848/5 1213/1849/5 1234/1850/5 +f 1237/1851/1 1236/1852/1 1214/1847/1 +f 1241/1853/2 1207/1843/2 1213/1849/2 +f 1245/1854/3 1248/1855/3 1247/1856/3 +f 1248/1857/1 1251/1858/1 1247/1859/1 +f 1252/1860/2 1249/1861/2 1251/1862/2 +f 1251/1858/1 1253/1863/1 1247/1859/1 +f 1248/1855/9 1250/1864/9 1252/1860/9 +f 1255/1865/11 1254/1866/11 1253/1863/11 +f 1253/1863/1 1257/1867/1 1247/1859/1 +f 1251/1868/2 1256/1869/2 1255/1865/2 +f 1259/1870/1 1261/1871/1 1257/1867/1 +f 1247/1856/9 1258/1872/9 1245/1854/9 +f 1254/1866/11 1259/1870/11 1253/1863/11 +f 1261/1873/3 1264/1874/3 1262/1875/3 +f 1262/1876/3 1267/1877/3 1261/1878/3 +f 1260/1879/11 1263/1880/11 1259/1870/11 +f 1265/1881/9 1268/1882/9 1266/1883/9 +f 1261/1871/1 1265/1884/1 1257/1867/1 +f 1258/1872/2 1265/1881/2 1266/1883/2 +f 1269/1885/3 1272/1886/3 1270/1887/3 +f 1275/1888/5 1272/1889/5 1271/1890/5 +f 1273/1891/2 1276/1892/2 1275/1893/2 +f 1277/1894/5 1275/1888/5 1271/1890/5 +f 1274/1895/10 1272/1886/10 1276/1892/10 +f 1278/1896/12 1279/1897/12 1277/1894/12 +f 1281/1898/5 1277/1894/5 1271/1890/5 +f 1275/1899/2 1280/1900/2 1273/1901/2 +f 1285/1902/5 1283/1903/5 1281/1898/5 +f 1282/1904/10 1271/1905/10 1269/1885/10 +f 1283/1903/12 1278/1896/12 1277/1894/12 +f 1288/1906/3 1285/1907/3 1286/1908/3 +f 1291/1909/3 1286/1910/3 1285/1911/3 +f 1287/1912/12 1284/1913/12 1283/1903/12 +f 1292/1914/10 1289/1915/10 1290/1916/10 +f 1289/1917/5 1285/1902/5 1281/1898/5 +f 1282/1904/2 1289/1915/2 1281/1918/2 +f 1294/1919/4 1295/1920/4 1293/1921/4 +f 1296/1922/1 1299/1923/1 1295/1920/1 +f 1297/1924/5 1294/1919/5 1293/1921/5 +f 1299/1925/13 1293/1921/13 1295/1920/13 +f 1296/1922/14 1298/1926/14 1300/1927/14 +f 1302/1928/4 1303/1929/4 1301/1930/4 +f 1304/1931/1 1307/1932/1 1303/1929/1 +f 1305/1933/5 1302/1928/5 1301/1930/5 +f 1307/1934/13 1301/1930/13 1303/1929/13 +f 1304/1931/14 1306/1935/14 1308/1936/14 +f 1310/1937/4 1311/1938/4 1309/1939/4 +f 1312/1940/1 1315/1941/1 1311/1938/1 +f 1313/1942/5 1310/1937/5 1309/1939/5 +f 1315/1943/13 1309/1939/13 1311/1938/13 +f 1312/1940/14 1314/1944/14 1316/1945/14 +f 1318/1946/4 1319/1947/4 1317/1948/4 +f 1320/1949/1 1323/1950/1 1319/1947/1 +f 1321/1951/5 1318/1946/5 1317/1948/5 +f 1323/1952/13 1317/1948/13 1319/1947/13 +f 1320/1949/14 1322/1953/14 1324/1954/14 +f 1326/1955/4 1327/1956/4 1325/1957/4 +f 1328/1958/1 1331/1959/1 1327/1956/1 +f 1329/1960/5 1326/1955/5 1325/1957/5 +f 1331/1961/13 1325/1957/13 1327/1956/13 +f 1328/1958/14 1330/1962/14 1332/1963/14 +f 1335/1964/7 1334/1965/7 1333/1966/7 +f 1335/1964/1 1340/1967/1 1336/1968/1 +f 1337/1969/5 1334/1965/5 1338/1970/5 +f 1333/1966/15 1339/1971/15 1335/1964/15 +f 1338/1972/16 1336/1968/16 1340/1973/16 +f 1343/1974/7 1342/1975/7 1341/1976/7 +f 1343/1974/1 1348/1977/1 1344/1978/1 +f 1345/1979/5 1342/1975/5 1346/1980/5 +f 1341/1976/15 1347/1981/15 1343/1974/15 +f 1346/1982/16 1344/1978/16 1348/1983/16 +f 1351/1984/7 1350/1985/7 1349/1986/7 +f 1351/1984/1 1356/1987/1 1352/1988/1 +f 1353/1989/5 1350/1985/5 1354/1990/5 +f 1349/1986/15 1355/1991/15 1351/1984/15 +f 1354/1992/16 1352/1988/16 1356/1993/16 +f 1359/1994/7 1358/1995/7 1357/1996/7 +f 1359/1994/1 1364/1997/1 1360/1998/1 +f 1361/1999/5 1358/1995/5 1362/2000/5 +f 1357/1996/15 1363/2001/15 1359/1994/15 +f 1362/2002/16 1360/1998/16 1364/2003/16 +f 1367/2004/7 1366/2005/7 1365/2006/7 +f 1367/2004/1 1372/2007/1 1368/2008/1 +f 1369/2009/5 1366/2005/5 1370/2010/5 +f 1365/2006/15 1371/2011/15 1367/2004/15 +f 1370/2012/16 1368/2008/16 1372/2013/16 +f 1376/2014/1 1379/2015/1 1375/2016/1 +f 1378/2017/5 1373/2018/5 1377/2019/5 +f 1382/2020/5 1386/2021/5 1374/2022/5 +f 1374/2023/5 1378/2017/5 1382/2020/5 +f 1380/2024/1 1376/2025/1 1381/2026/1 +f 1376/2027/1 1384/2028/1 1381/2026/1 +f 1387/2029/1 1383/2030/1 1390/2031/1 +f 1386/2032/5 1385/2033/5 1388/2034/5 +f 1384/2028/1 1383/2035/1 1387/2029/1 +f 1386/2036/5 1392/2037/5 1393/2038/5 +f 1386/2039/5 1388/2034/5 1389/2040/5 +f 1383/2041/1 1391/2042/1 1390/2031/1 +f 1398/2043/1 1401/2044/1 1397/2045/1 +f 1400/2046/5 1395/2047/5 1399/2048/5 +f 1404/2049/5 1408/2050/5 1396/2051/5 +f 1396/2052/5 1400/2046/5 1404/2049/5 +f 1402/2053/1 1398/2054/1 1403/2055/1 +f 1398/2056/1 1406/2057/1 1403/2055/1 +f 1409/2058/1 1405/2059/1 1412/2060/1 +f 1408/2061/5 1407/2062/5 1410/2063/5 +f 1406/2057/1 1405/2064/1 1409/2058/1 +f 1408/2065/5 1414/2066/5 1415/2067/5 +f 1408/2068/5 1410/2063/5 1411/2069/5 +f 1405/2070/1 1413/2071/1 1412/2060/1 +f 1420/2072/1 1423/2073/1 1419/2074/1 +f 1422/2075/5 1417/2076/5 1421/2077/5 +f 1426/2078/5 1430/2079/5 1418/2080/5 +f 1418/2081/5 1422/2075/5 1426/2078/5 +f 1424/2082/1 1420/2083/1 1425/2084/1 +f 1420/2085/1 1428/2086/1 1425/2084/1 +f 1431/2087/1 1427/2088/1 1434/2089/1 +f 1430/2090/5 1429/2091/5 1432/2092/5 +f 1428/2086/1 1427/2093/1 1431/2087/1 +f 1430/2094/5 1436/2095/5 1437/2096/5 +f 1430/2097/5 1432/2092/5 1433/2098/5 +f 1427/2099/1 1435/2100/1 1434/2089/1 +f 1442/2101/1 1445/2102/1 1441/2103/1 +f 1444/2104/5 1439/2105/5 1443/2106/5 +f 1448/2107/5 1452/2108/5 1440/2109/5 +f 1440/2110/5 1444/2104/5 1448/2107/5 +f 1446/2111/1 1442/2112/1 1447/2113/1 +f 1442/2114/1 1450/2115/1 1447/2113/1 +f 1453/2116/1 1449/2117/1 1456/2118/1 +f 1452/2119/5 1451/2120/5 1454/2121/5 +f 1450/2115/1 1449/2122/1 1453/2116/1 +f 1452/2123/5 1458/2124/5 1459/2125/5 +f 1452/2126/5 1454/2121/5 1455/2127/5 +f 1449/2128/1 1457/2129/1 1456/2118/1 +f 1464/2130/1 1467/2131/1 1463/2132/1 +f 1466/2133/5 1461/2134/5 1465/2135/5 +f 1470/2136/5 1474/2137/5 1462/2138/5 +f 1462/2139/5 1466/2133/5 1470/2136/5 +f 1468/2140/1 1464/2141/1 1469/2142/1 +f 1464/2143/1 1472/2144/1 1469/2142/1 +f 1475/2145/1 1471/2146/1 1478/2147/1 +f 1474/2148/5 1473/2149/5 1476/2150/5 +f 1472/2144/1 1471/2151/1 1475/2145/1 +f 1474/2152/5 1480/2153/5 1481/2154/5 +f 1474/2155/5 1476/2150/5 1477/2156/5 +f 1471/2157/1 1479/2158/1 1478/2147/1 +f 224/1/1 1/12/1 2/2/1 +f 153/4/2 178/356/2 179/5/2 +f 163/8/3 188/377/3 186/9/3 +f 221/13/4 10/2159/4 9/14/4 +f 105/16/5 323/596/5 324/17/5 +f 8/19/4 232/21/4 222/15/4 +f 7/20/4 233/23/4 232/21/4 +f 6/22/4 234/25/4 233/23/4 +f 41/24/4 235/27/4 234/25/4 +f 42/26/4 236/29/4 235/27/4 +f 43/28/4 237/31/4 236/29/4 +f 44/30/4 238/417/4 237/31/4 +f 126/32/4 240/2160/4 242/33/4 +f 31/35/1 21/2161/1 20/36/1 +f 45/38/6 63/2162/6 64/39/6 +f 219/41/3 259/526/3 257/42/3 +f 89/44/2 271/51/2 256/45/2 +f 99/47/3 255/490/3 278/48/3 +f 88/50/2 270/413/2 271/51/2 +f 98/49/3 278/48/3 277/52/3 +f 91/54/2 273/491/2 281/55/2 +f 104/57/3 324/17/3 263/58/3 +f 160/60/6 183/369/6 184/61/6 +f 74/63/6 73/66/6 53/64/6 +f 64/39/6 63/2162/6 73/66/6 +f 74/63/6 75/68/6 65/67/6 +f 75/68/6 76/70/6 66/69/6 +f 76/70/6 77/72/6 67/71/6 +f 77/72/6 78/74/6 68/73/6 +f 78/74/6 79/76/6 69/75/6 +f 79/76/6 80/78/6 70/77/6 +f 80/78/6 81/109/6 71/79/6 +f 215/80/6 124/111/6 122/81/6 +f 32/83/7 31/2163/7 224/84/7 +f 21/86/8 31/2164/8 32/87/8 +f 64/39/6 65/67/6 4/89/6 +f 65/67/6 66/69/6 46/90/6 +f 66/69/6 67/71/6 47/91/6 +f 67/71/6 68/73/6 48/92/6 +f 68/73/6 69/75/6 49/93/6 +f 69/75/6 70/77/6 50/94/6 +f 70/77/6 71/79/6 51/95/6 +f 213/82/6 122/81/6 5/96/6 +f 19/98/2 20/2165/2 21/99/2 +f 54/65/6 53/64/6 20/101/6 +f 54/65/6 55/103/6 75/68/6 +f 55/103/6 56/104/6 76/70/6 +f 56/104/6 57/105/6 77/72/6 +f 57/105/6 58/106/6 78/74/6 +f 58/106/6 59/107/6 79/76/6 +f 59/107/6 60/108/6 80/78/6 +f 60/108/6 61/153/6 81/109/6 +f 211/110/6 123/155/6 124/111/6 +f 39/112/7 231/116/7 243/113/7 +f 38/115/7 230/118/7 231/116/7 +f 37/117/7 229/120/7 230/118/7 +f 36/119/7 228/122/7 229/120/7 +f 35/121/7 227/124/7 228/122/7 +f 34/123/7 226/126/7 227/124/7 +f 33/125/7 225/127/7 226/126/7 +f 32/83/7 223/85/7 225/127/7 +f 10/128/3 45/2166/3 3/129/3 +f 32/87/8 33/132/8 23/131/8 +f 33/132/8 34/134/8 24/133/8 +f 34/134/8 35/136/8 25/135/8 +f 35/136/8 36/138/8 26/137/8 +f 36/138/8 37/140/8 27/139/8 +f 37/140/8 38/142/8 28/141/8 +f 38/142/8 39/402/8 29/143/8 +f 208/144/8 125/2167/8 30/145/8 +f 19/102/6 18/147/6 55/103/6 +f 18/147/6 17/148/6 56/104/6 +f 17/148/6 16/149/6 57/105/6 +f 16/149/6 15/150/6 58/106/6 +f 15/150/6 14/151/6 59/107/6 +f 14/151/6 13/152/6 60/108/6 +f 13/152/6 12/399/6 61/153/6 +f 203/154/6 11/2168/6 123/155/6 +f 22/100/2 23/157/2 18/156/2 +f 23/157/2 24/159/2 17/158/2 +f 24/159/2 25/161/2 16/160/2 +f 25/161/2 26/163/2 15/162/2 +f 26/163/2 27/165/2 14/164/2 +f 27/165/2 28/167/2 13/166/2 +f 28/167/2 29/396/2 12/168/2 +f 206/169/2 30/2169/2 11/170/2 +f 216/172/3 44/175/3 51/173/3 +f 44/175/3 43/177/3 50/176/3 +f 43/177/3 42/179/3 49/178/3 +f 42/179/3 41/181/3 48/180/3 +f 41/181/3 6/183/3 47/182/3 +f 6/183/3 7/185/3 46/184/3 +f 7/185/3 8/187/3 4/186/3 +f 8/187/3 9/130/3 3/129/3 +f 123/188/5 11/2170/5 30/189/5 +f 52/191/2 138/280/2 142/192/2 +f 72/194/2 117/232/2 115/195/2 +f 103/197/6 144/284/6 141/198/6 +f 128/200/5 239/204/5 240/201/5 +f 72/206/5 122/210/5 124/207/5 +f 109/209/5 127/213/5 122/210/5 +f 82/208/5 124/207/5 128/211/5 +f 110/212/5 128/211/5 127/213/5 +f 108/214/2 118/238/2 120/215/2 +f 110/217/3 114/234/3 116/218/3 +f 82/220/8 116/230/8 117/221/8 +f 109/223/6 115/227/6 114/224/6 +f 108/226/5 114/224/5 115/227/5 +f 112/229/5 113/237/5 117/221/5 +f 111/231/5 115/195/5 117/232/5 +f 108/214/5 112/216/5 116/218/5 +f 120/215/5 118/238/5 119/235/5 +f 112/229/6 120/215/6 121/236/6 +f 113/233/3 121/236/3 119/235/3 +f 111/228/8 119/235/8 118/238/8 +f 52/239/5 5/245/5 122/210/5 +f 106/241/5 124/207/5 123/188/5 +f 62/242/5 123/188/5 125/190/5 +f 101/244/5 126/247/5 5/245/5 +f 102/246/5 127/213/5 126/247/5 +f 40/243/5 125/190/5 128/211/5 +f 107/240/5 122/210/5 127/213/5 +f 103/248/5 128/211/5 124/207/5 +f 134/249/8 150/290/8 151/250/8 +f 135/252/2 151/250/2 145/253/2 +f 62/255/8 139/276/8 140/256/8 +f 102/258/3 143/286/3 137/259/3 +f 101/261/6 142/282/6 143/262/6 +f 40/264/3 141/278/3 139/265/3 +f 107/267/8 137/274/8 138/268/8 +f 106/270/2 140/288/2 144/271/2 +f 129/273/5 130/296/5 138/268/5 +f 131/275/5 132/298/5 140/256/5 +f 133/277/5 131/295/5 139/265/5 +f 134/279/5 142/192/5 138/280/5 +f 135/251/5 143/262/5 142/282/5 +f 133/283/5 141/198/5 144/284/5 +f 135/252/5 129/254/5 137/259/5 +f 136/287/5 144/271/5 140/288/5 +f 145/253/5 151/250/5 150/290/5 +f 147/292/5 149/297/5 152/293/5 +f 133/277/2 149/297/2 147/292/2 +f 129/273/6 145/253/6 146/291/6 +f 132/289/3 148/294/3 152/293/3 +f 136/285/8 152/293/8 149/297/8 +f 130/281/3 146/291/3 150/290/3 +f 131/275/6 147/292/6 148/294/6 +f 2/299/1 154/303/1 153/300/1 +f 63/302/1 155/305/1 154/303/1 +f 45/304/1 156/306/1 155/305/1 +f 10/301/1 153/300/1 156/306/1 +f 63/302/1 158/309/1 157/307/1 +f 2/299/1 159/311/1 158/309/1 +f 1/310/1 160/312/1 159/311/1 +f 73/308/1 157/307/1 160/312/1 +f 31/35/1 162/314/1 161/313/1 +f 53/37/1 163/315/1 162/314/1 +f 73/308/1 164/316/1 163/315/1 +f 1/310/1 161/313/1 164/316/1 +f 166/317/3 190/381/3 191/318/3 +f 175/320/6 199/385/6 200/321/6 +f 170/323/6 194/382/6 193/324/6 +f 158/326/8 182/362/8 181/327/8 +f 164/329/8 187/379/8 188/330/8 +f 155/332/3 180/358/3 177/333/3 +f 157/335/3 181/364/3 183/336/3 +f 162/338/6 186/372/6 185/339/6 +f 156/341/8 179/361/8 180/342/8 +f 159/344/2 184/367/2 182/345/2 +f 161/347/2 185/375/2 187/348/2 +f 154/350/6 177/354/6 178/351/6 +f 166/353/1 178/351/1 177/354/1 +f 166/317/1 167/319/1 179/5/1 +f 165/357/1 177/333/1 180/358/1 +f 167/360/1 168/390/1 180/342/1 +f 170/323/1 169/325/1 181/327/1 +f 171/363/1 183/336/1 181/364/1 +f 172/366/1 170/388/1 182/345/1 +f 172/368/1 184/61/1 183/369/1 +f 173/371/1 185/339/1 186/372/1 +f 173/374/1 175/387/1 187/348/1 +f 174/376/1 186/9/1 188/377/1 +f 175/320/1 176/322/1 188/330/1 +f 189/380/1 192/389/1 191/318/1 +f 194/382/1 196/391/1 195/383/1 +f 198/384/1 200/321/1 199/385/1 +f 174/373/8 198/384/8 197/386/8 +f 169/365/2 193/324/2 195/383/2 +f 168/359/2 192/389/2 189/380/2 +f 173/374/3 197/386/3 199/385/3 +f 172/366/3 196/391/3 194/382/3 +f 167/360/6 191/318/6 192/389/6 +f 176/378/2 200/321/2 198/384/2 +f 165/355/8 189/380/8 190/381/8 +f 171/370/8 195/383/8 196/391/8 +f 126/392/3 202/395/3 209/393/3 +f 202/395/3 216/172/3 201/174/3 +f 29/396/2 205/398/2 204/397/2 +f 205/398/2 206/169/2 203/171/2 +f 12/399/6 204/401/6 210/400/6 +f 204/401/6 203/154/6 211/110/6 +f 39/402/8 207/404/8 205/403/8 +f 207/404/8 208/144/8 206/146/8 +f 208/405/7 241/408/7 239/406/7 +f 207/114/7 243/113/7 241/408/7 +f 61/153/6 210/400/6 214/409/6 +f 210/400/6 211/110/6 215/80/6 +f 71/79/6 212/411/6 201/410/6 +f 212/411/6 213/82/6 209/97/6 +f 81/109/6 214/409/6 212/411/6 +f 214/409/6 215/80/6 213/82/6 +f 87/412/2 269/506/2 270/413/2 +f 97/53/3 277/52/3 276/414/3 +f 216/416/4 244/418/4 238/417/4 +f 202/34/4 242/33/4 244/418/4 +f 307/419/8 221/453/8 222/420/8 +f 310/422/8 84/426/8 223/423/8 +f 85/425/8 225/428/8 223/423/8 +f 86/427/8 226/430/8 225/428/8 +f 87/429/8 227/432/8 226/430/8 +f 88/431/8 228/434/8 227/432/8 +f 89/433/8 229/436/8 228/434/8 +f 90/435/8 230/438/8 229/436/8 +f 91/437/8 231/462/8 230/438/8 +f 93/421/8 222/420/8 232/439/8 +f 94/440/8 232/439/8 233/441/8 +f 95/442/8 233/441/8 234/443/8 +f 96/444/8 234/443/8 235/445/8 +f 97/446/8 235/445/8 236/447/8 +f 98/448/8 236/447/8 237/449/8 +f 99/450/8 237/449/8 238/451/8 +f 310/422/8 224/424/8 221/453/8 +f 312/454/8 240/460/8 239/455/8 +f 311/456/8 239/455/8 241/457/8 +f 312/454/8 220/466/8 242/459/8 +f 217/461/8 243/463/8 231/462/8 +f 218/458/8 241/457/8 243/463/8 +f 100/452/8 238/451/8 244/464/8 +f 219/465/8 244/464/8 242/459/8 +f 316/2171/3 93/2172/3 283/469/3 +f 93/2172/3 94/467/3 283/469/3 +f 250/470/2 292/480/2 294/471/2 +f 253/473/3 295/558/3 293/474/3 +f 262/476/2 342/618/2 325/477/2 +f 268/479/2 326/486/2 292/480/2 +f 251/475/3 293/474/3 334/481/3 +f 265/483/5 343/615/5 344/484/5 +f 267/478/2 325/477/2 326/486/2 +f 259/526/3 219/41/3 286/489/3 +f 219/41/3 220/487/3 286/489/3 +f 100/43/3 257/42/3 255/490/3 +f 90/46/2 256/45/2 273/491/2 +f 318/2173/2 218/2174/2 285/492/2 +f 218/2174/2 217/56/2 285/492/2 +f 246/511/2 85/497/2 284/495/2 +f 85/497/2 84/493/2 284/495/2 +f 95/496/3 247/500/3 245/468/3 +f 85/497/2 246/511/2 248/498/2 +f 96/415/3 276/414/3 247/500/3 +f 249/482/3 334/481/3 333/501/3 +f 261/503/1 341/613/1 342/504/1 +f 86/499/2 248/498/2 269/506/2 +f 284/495/9 315/583/9 316/507/9 +f 318/508/10 285/492/10 286/489/10 +f 268/510/8 248/498/8 246/511/8 +f 250/513/8 269/506/8 248/498/8 +f 252/514/8 270/413/8 269/506/8 +f 254/515/8 271/51/8 270/413/8 +f 272/516/8 256/45/8 271/51/8 +f 258/517/8 273/491/8 256/45/8 +f 274/518/8 245/468/8 247/500/8 +f 275/519/8 247/500/8 276/414/8 +f 249/520/8 276/414/8 277/52/8 +f 251/521/8 277/52/8 278/48/8 +f 253/522/8 278/48/8 255/490/8 +f 279/523/8 255/490/8 257/42/8 +f 260/525/8 281/55/8 273/491/8 +f 280/524/8 257/42/8 259/526/8 +f 262/528/8 284/495/8 283/469/8 +f 264/530/8 286/489/8 285/492/8 +f 262/528/8 267/512/8 246/511/8 +f 261/529/8 283/469/8 245/468/8 +f 265/531/8 285/492/8 281/55/8 +f 264/530/8 282/527/8 259/526/8 +f 291/532/2 349/625/2 347/533/2 +f 303/535/5 361/630/5 362/536/5 +f 289/534/2 347/533/2 345/538/2 +f 340/540/2 359/549/2 357/541/2 +f 330/543/3 356/551/3 358/544/3 +f 331/545/3 358/544/3 360/546/3 +f 306/548/2 364/632/2 359/549/2 +f 329/550/3 354/628/3 356/551/3 +f 338/542/2 357/541/2 355/552/2 +f 274/554/3 287/575/3 341/555/3 +f 279/557/3 297/565/3 295/558/3 +f 252/472/2 294/471/2 296/559/2 +f 260/561/2 302/572/2 343/562/2 +f 280/564/3 299/574/3 297/565/3 +f 254/560/2 296/559/2 298/566/2 +f 264/568/3 344/621/3 301/569/3 +f 258/571/2 300/573/2 302/572/2 +f 272/567/2 298/566/2 300/573/2 +f 282/570/3 301/569/3 299/574/3 +f 275/502/3 333/501/3 287/575/3 +f 92/576/8 307/419/8 93/421/8 +f 83/578/8 309/2175/8 84/426/8 +f 83/578/8 310/422/8 307/419/8 +f 104/579/8 312/454/8 311/456/8 +f 105/580/8 311/456/8 218/458/8 +f 104/579/8 314/2176/8 220/466/8 +f 319/582/1 316/507/1 315/583/1 +f 266/585/5 318/508/5 317/509/5 +f 320/584/1 315/583/1 84/587/1 +f 319/582/1 308/2177/1 93/589/1 +f 263/586/5 317/509/5 220/590/5 +f 266/585/5 313/2178/5 218/592/5 +f 319/593/8 320/599/8 322/594/8 +f 263/58/8 324/17/8 323/596/8 +f 83/598/2 322/594/2 320/599/2 +f 313/601/2 266/597/2 323/596/2 +f 92/603/1 321/595/1 322/594/1 +f 308/605/3 319/593/3 321/595/3 +f 290/607/8 326/486/8 325/477/8 +f 327/609/8 292/480/8 326/486/8 +f 328/610/8 294/471/8 292/480/8 +f 329/550/8 296/559/8 294/471/8 +f 330/543/8 298/566/8 296/559/8 +f 331/545/8 300/573/8 298/566/8 +f 332/539/8 287/575/8 333/501/8 +f 289/534/8 333/501/8 334/481/8 +f 291/532/8 334/481/8 293/474/8 +f 335/611/8 293/474/8 295/558/8 +f 336/612/8 295/558/8 297/565/8 +f 337/553/8 297/565/8 299/574/8 +f 339/547/8 302/572/8 300/573/8 +f 338/542/8 299/574/8 301/569/8 +f 304/537/8 342/504/8 341/613/8 +f 306/614/8 344/484/8 343/615/8 +f 304/617/8 288/608/8 325/477/8 +f 303/619/8 341/555/8 287/575/8 +f 305/620/8 343/562/8 302/572/8 +f 306/548/8 340/540/8 301/569/8 +f 345/538/8 347/533/8 348/622/8 +f 347/533/8 349/625/8 350/624/8 +f 349/625/8 351/627/8 352/626/8 +f 351/627/8 353/629/8 354/628/8 +f 353/629/8 355/552/8 356/551/8 +f 355/552/8 357/541/8 358/544/8 +f 357/541/8 359/549/8 360/546/8 +f 361/630/8 345/538/8 346/623/8 +f 359/549/8 364/632/8 363/631/8 +f 288/608/3 346/623/3 348/622/3 +f 305/616/1 363/631/1 364/632/1 +f 335/611/2 351/627/2 349/625/2 +f 290/607/3 348/622/3 350/624/3 +f 304/617/3 362/536/3 346/623/3 +f 336/612/2 353/629/2 351/627/2 +f 327/609/3 350/624/3 352/626/3 +f 332/539/2 345/538/2 361/630/2 +f 337/553/2 355/552/2 353/629/2 +f 328/610/3 352/626/3 354/628/3 +f 339/547/3 360/546/3 363/631/3 +f 373/633/3 376/649/3 368/634/3 +f 384/636/1 372/666/1 371/637/1 +f 377/639/2 380/653/2 370/640/2 +f 388/642/5 366/2179/5 365/643/5 +f 375/645/8 366/2179/8 388/642/8 +f 368/634/8 376/649/8 389/647/8 +f 376/649/8 375/645/8 391/646/8 +f 371/650/2 372/666/2 379/651/2 +f 378/652/2 379/651/2 380/653/2 +f 365/654/3 366/2179/3 375/645/3 +f 374/655/3 375/645/3 376/649/3 +f 394/656/6 396/658/6 374/655/6 +f 393/657/6 395/670/6 396/658/6 +f 365/659/5 398/682/5 404/660/5 +f 381/662/6 393/657/6 394/656/6 +f 390/664/8 392/665/8 380/653/8 +f 389/647/8 391/646/8 392/665/8 +f 384/636/8 390/664/8 379/651/8 +f 383/648/8 389/647/8 390/664/8 +f 392/665/8 387/667/8 370/640/8 +f 391/646/8 388/642/8 387/667/8 +f 385/661/2 404/660/2 403/668/2 +f 395/670/6 386/2180/6 385/671/6 +f 370/640/5 387/667/5 386/672/5 +f 387/667/5 388/642/5 385/644/5 +f 368/634/1 383/648/1 382/674/1 +f 383/648/1 384/636/1 381/638/1 +f 382/676/1 399/680/1 400/677/1 +f 394/679/2 402/2181/2 399/680/2 +f 374/681/3 397/687/3 398/682/3 +f 373/683/5 401/688/5 402/684/5 +f 396/686/1 403/2182/1 397/687/1 +f 367/678/3 400/677/3 401/688/3 +f 413/689/3 416/705/3 408/690/3 +f 424/692/1 412/722/1 411/693/1 +f 417/695/2 420/709/2 410/696/2 +f 428/698/5 406/2183/5 405/699/5 +f 415/701/8 406/2183/8 428/698/8 +f 408/690/8 416/705/8 429/703/8 +f 416/705/8 415/701/8 431/702/8 +f 411/706/2 412/722/2 419/707/2 +f 418/708/2 419/707/2 420/709/2 +f 405/710/3 406/2183/3 415/701/3 +f 414/711/3 415/701/3 416/705/3 +f 434/712/6 436/714/6 414/711/6 +f 433/713/6 435/726/6 436/714/6 +f 405/715/5 438/738/5 444/716/5 +f 421/718/6 433/713/6 434/712/6 +f 430/720/8 432/721/8 420/709/8 +f 429/703/8 431/702/8 432/721/8 +f 424/692/8 430/720/8 419/707/8 +f 423/704/8 429/703/8 430/720/8 +f 432/721/8 427/723/8 410/696/8 +f 431/702/8 428/698/8 427/723/8 +f 425/717/2 444/716/2 443/724/2 +f 435/726/6 426/2184/6 425/727/6 +f 410/696/5 427/723/5 426/728/5 +f 427/723/5 428/698/5 425/700/5 +f 408/690/1 423/704/1 422/730/1 +f 423/704/1 424/692/1 421/694/1 +f 422/732/1 439/736/1 440/733/1 +f 434/735/2 442/2185/2 439/736/2 +f 414/737/3 437/743/3 438/738/3 +f 413/739/5 441/744/5 442/740/5 +f 436/742/1 443/2186/1 437/743/1 +f 407/734/3 440/733/3 441/744/3 +f 453/745/3 456/761/3 448/746/3 +f 464/748/1 452/778/1 451/749/1 +f 457/751/2 460/765/2 450/752/2 +f 468/754/5 446/2187/5 445/755/5 +f 455/757/8 446/2187/8 468/754/8 +f 448/746/8 456/761/8 469/759/8 +f 456/761/8 455/757/8 471/758/8 +f 451/762/2 452/778/2 459/763/2 +f 458/764/2 459/763/2 460/765/2 +f 445/766/3 446/2187/3 455/757/3 +f 454/767/3 455/757/3 456/761/3 +f 474/768/6 476/770/6 454/767/6 +f 473/769/6 475/782/6 476/770/6 +f 445/771/5 478/794/5 484/772/5 +f 461/774/6 473/769/6 474/768/6 +f 470/776/8 472/777/8 460/765/8 +f 469/759/8 471/758/8 472/777/8 +f 464/748/8 470/776/8 459/763/8 +f 463/760/8 469/759/8 470/776/8 +f 472/777/8 467/779/8 450/752/8 +f 471/758/8 468/754/8 467/779/8 +f 465/773/2 484/772/2 483/780/2 +f 475/782/6 466/2188/6 465/783/6 +f 450/752/5 467/779/5 466/784/5 +f 467/779/5 468/754/5 465/756/5 +f 448/746/1 463/760/1 462/786/1 +f 463/760/1 464/748/1 461/750/1 +f 462/788/1 479/792/1 480/789/1 +f 474/791/2 482/2189/2 479/792/2 +f 454/793/3 477/799/3 478/794/3 +f 453/795/5 481/800/5 482/796/5 +f 476/798/1 483/2190/1 477/799/1 +f 447/790/3 480/789/3 481/800/3 +f 493/801/3 496/817/3 488/802/3 +f 504/804/1 492/834/1 491/805/1 +f 497/807/2 500/821/2 490/808/2 +f 508/810/5 486/2191/5 485/811/5 +f 495/813/8 486/2191/8 508/810/8 +f 488/802/8 496/817/8 509/815/8 +f 496/817/8 495/813/8 511/814/8 +f 491/818/2 492/834/2 499/819/2 +f 498/820/2 499/819/2 500/821/2 +f 485/822/3 486/2191/3 495/813/3 +f 494/823/3 495/813/3 496/817/3 +f 514/824/6 516/826/6 494/823/6 +f 513/825/6 515/838/6 516/826/6 +f 485/827/5 518/850/5 524/828/5 +f 501/830/6 513/825/6 514/824/6 +f 510/832/8 512/833/8 500/821/8 +f 509/815/8 511/814/8 512/833/8 +f 504/804/8 510/832/8 499/819/8 +f 503/816/8 509/815/8 510/832/8 +f 512/833/8 507/835/8 490/808/8 +f 511/814/8 508/810/8 507/835/8 +f 505/829/2 524/828/2 523/836/2 +f 515/838/6 506/2192/6 505/839/6 +f 490/808/5 507/835/5 506/840/5 +f 507/835/5 508/810/5 505/812/5 +f 488/802/1 503/816/1 502/842/1 +f 503/816/1 504/804/1 501/806/1 +f 502/844/1 519/848/1 520/845/1 +f 514/847/2 522/2193/2 519/848/2 +f 494/849/3 517/855/3 518/850/3 +f 493/851/5 521/856/5 522/852/5 +f 516/854/1 523/2194/1 517/855/1 +f 487/846/3 520/845/3 521/856/3 +f 533/857/3 536/873/3 528/858/3 +f 544/860/1 532/890/1 531/861/1 +f 537/863/2 540/877/2 530/864/2 +f 548/866/5 526/2195/5 525/867/5 +f 535/869/8 526/2195/8 548/866/8 +f 528/858/8 536/873/8 549/871/8 +f 536/873/8 535/869/8 551/870/8 +f 531/874/2 532/890/2 539/875/2 +f 538/876/2 539/875/2 540/877/2 +f 525/878/3 526/2195/3 535/869/3 +f 534/879/3 535/869/3 536/873/3 +f 554/880/6 556/882/6 534/879/6 +f 553/881/6 555/894/6 556/882/6 +f 525/883/5 558/906/5 564/884/5 +f 541/886/6 553/881/6 554/880/6 +f 550/888/8 552/889/8 540/877/8 +f 549/871/8 551/870/8 552/889/8 +f 544/860/8 550/888/8 539/875/8 +f 543/872/8 549/871/8 550/888/8 +f 552/889/8 547/891/8 530/864/8 +f 551/870/8 548/866/8 547/891/8 +f 545/885/2 564/884/2 563/892/2 +f 555/894/6 546/2196/6 545/895/6 +f 530/864/5 547/891/5 546/896/5 +f 547/891/5 548/866/5 545/868/5 +f 528/858/1 543/872/1 542/898/1 +f 543/872/1 544/860/1 541/862/1 +f 542/900/1 559/904/1 560/901/1 +f 554/903/2 562/2197/2 559/904/2 +f 534/905/3 557/911/3 558/906/3 +f 533/907/5 561/912/5 562/908/5 +f 556/910/1 563/2198/1 557/911/1 +f 527/902/3 560/901/3 561/912/3 +f 573/913/3 576/929/3 568/914/3 +f 584/916/1 572/946/1 571/917/1 +f 577/919/2 580/933/2 570/920/2 +f 588/922/5 566/2199/5 565/923/5 +f 575/925/8 566/2199/8 588/922/8 +f 568/914/8 576/929/8 589/927/8 +f 576/929/8 575/925/8 591/926/8 +f 571/930/2 572/946/2 579/931/2 +f 578/932/2 579/931/2 580/933/2 +f 565/934/3 566/2199/3 575/925/3 +f 574/935/3 575/925/3 576/929/3 +f 594/936/6 596/938/6 574/935/6 +f 593/937/6 595/950/6 596/938/6 +f 565/939/5 598/962/5 604/940/5 +f 581/942/6 593/937/6 594/936/6 +f 590/944/8 592/945/8 580/933/8 +f 589/927/8 591/926/8 592/945/8 +f 584/916/8 590/944/8 579/931/8 +f 583/928/8 589/927/8 590/944/8 +f 592/945/8 587/947/8 570/920/8 +f 591/926/8 588/922/8 587/947/8 +f 585/941/2 604/940/2 603/948/2 +f 595/950/6 586/2200/6 585/951/6 +f 570/920/5 587/947/5 586/952/5 +f 587/947/5 588/922/5 585/924/5 +f 568/914/1 583/928/1 582/954/1 +f 583/928/1 584/916/1 581/918/1 +f 582/956/1 599/960/1 600/957/1 +f 594/959/2 602/2201/2 599/960/2 +f 574/961/3 597/967/3 598/962/3 +f 573/963/5 601/968/5 602/964/5 +f 596/966/1 603/2202/1 597/967/1 +f 567/958/3 600/957/3 601/968/3 +f 613/969/3 616/985/3 608/970/3 +f 624/972/1 612/1002/1 611/973/1 +f 617/975/2 620/989/2 610/976/2 +f 628/978/5 606/2203/5 605/979/5 +f 615/981/8 606/2203/8 628/978/8 +f 608/970/8 616/985/8 629/983/8 +f 616/985/8 615/981/8 631/982/8 +f 611/986/2 612/1002/2 619/987/2 +f 618/988/2 619/987/2 620/989/2 +f 605/990/3 606/2203/3 615/981/3 +f 614/991/3 615/981/3 616/985/3 +f 634/992/6 636/994/6 614/991/6 +f 633/993/6 635/1006/6 636/994/6 +f 605/995/5 638/1018/5 644/996/5 +f 621/998/6 633/993/6 634/992/6 +f 630/1000/8 632/1001/8 620/989/8 +f 629/983/8 631/982/8 632/1001/8 +f 624/972/8 630/1000/8 619/987/8 +f 623/984/8 629/983/8 630/1000/8 +f 632/1001/8 627/1003/8 610/976/8 +f 631/982/8 628/978/8 627/1003/8 +f 625/997/2 644/996/2 643/1004/2 +f 635/1006/6 626/2204/6 625/1007/6 +f 610/976/5 627/1003/5 626/1008/5 +f 627/1003/5 628/978/5 625/980/5 +f 608/970/1 623/984/1 622/1010/1 +f 623/984/1 624/972/1 621/974/1 +f 622/1012/1 639/1016/1 640/1013/1 +f 634/1015/2 642/2205/2 639/1016/2 +f 614/1017/3 637/1023/3 638/1018/3 +f 613/1019/5 641/1024/5 642/1020/5 +f 636/1022/1 643/2206/1 637/1023/1 +f 607/1014/3 640/1013/3 641/1024/3 +f 653/1025/3 656/1041/3 648/1026/3 +f 664/1028/1 652/1058/1 651/1029/1 +f 657/1031/2 660/1045/2 650/1032/2 +f 668/1034/5 646/2207/5 645/1035/5 +f 655/1037/8 646/2207/8 668/1034/8 +f 648/1026/8 656/1041/8 669/1039/8 +f 656/1041/8 655/1037/8 671/1038/8 +f 651/1042/2 652/1058/2 659/1043/2 +f 658/1044/2 659/1043/2 660/1045/2 +f 645/1046/3 646/2207/3 655/1037/3 +f 654/1047/3 655/1037/3 656/1041/3 +f 674/1048/6 676/1050/6 654/1047/6 +f 673/1049/6 675/1062/6 676/1050/6 +f 645/1051/5 678/1074/5 684/1052/5 +f 661/1054/6 673/1049/6 674/1048/6 +f 670/1056/8 672/1057/8 660/1045/8 +f 669/1039/8 671/1038/8 672/1057/8 +f 664/1028/8 670/1056/8 659/1043/8 +f 663/1040/8 669/1039/8 670/1056/8 +f 672/1057/8 667/1059/8 650/1032/8 +f 671/1038/8 668/1034/8 667/1059/8 +f 665/1053/2 684/1052/2 683/1060/2 +f 675/1062/6 666/2208/6 665/1063/6 +f 650/1032/5 667/1059/5 666/1064/5 +f 667/1059/5 668/1034/5 665/1036/5 +f 648/1026/1 663/1040/1 662/1066/1 +f 663/1040/1 664/1028/1 661/1030/1 +f 662/1068/1 679/1072/1 680/1069/1 +f 674/1071/2 682/2209/2 679/1072/2 +f 654/1073/3 677/1079/3 678/1074/3 +f 653/1075/5 681/1080/5 682/1076/5 +f 676/1078/1 683/2210/1 677/1079/1 +f 647/1070/3 680/1069/3 681/1080/3 +f 693/1081/3 696/1097/3 688/1082/3 +f 704/1084/1 692/1114/1 691/1085/1 +f 697/1087/2 700/1101/2 690/1088/2 +f 708/1090/5 686/2211/5 685/1091/5 +f 695/1093/8 686/2211/8 708/1090/8 +f 688/1082/8 696/1097/8 709/1095/8 +f 696/1097/8 695/1093/8 711/1094/8 +f 691/1098/2 692/1114/2 699/1099/2 +f 698/1100/2 699/1099/2 700/1101/2 +f 685/1102/3 686/2211/3 695/1093/3 +f 694/1103/3 695/1093/3 696/1097/3 +f 714/1104/6 716/1106/6 694/1103/6 +f 713/1105/6 715/1118/6 716/1106/6 +f 685/1107/5 718/1130/5 724/1108/5 +f 701/1110/6 713/1105/6 714/1104/6 +f 710/1112/8 712/1113/8 700/1101/8 +f 709/1095/8 711/1094/8 712/1113/8 +f 704/1084/8 710/1112/8 699/1099/8 +f 703/1096/8 709/1095/8 710/1112/8 +f 712/1113/8 707/1115/8 690/1088/8 +f 711/1094/8 708/1090/8 707/1115/8 +f 705/1109/2 724/1108/2 723/1116/2 +f 715/1118/6 706/2212/6 705/1119/6 +f 690/1088/5 707/1115/5 706/1120/5 +f 707/1115/5 708/1090/5 705/1092/5 +f 688/1082/1 703/1096/1 702/1122/1 +f 703/1096/1 704/1084/1 701/1086/1 +f 702/1124/1 719/1128/1 720/1125/1 +f 714/1127/2 722/2213/2 719/1128/2 +f 694/1129/3 717/1135/3 718/1130/3 +f 693/1131/5 721/1136/5 722/1132/5 +f 716/1134/1 723/2214/1 717/1135/1 +f 687/1126/3 720/1125/3 721/1136/3 +f 733/1137/3 736/1153/3 728/1138/3 +f 744/1140/1 732/1170/1 731/1141/1 +f 737/1143/2 740/1157/2 730/1144/2 +f 748/1146/5 726/2215/5 725/1147/5 +f 735/1149/8 726/2215/8 748/1146/8 +f 728/1138/8 736/1153/8 749/1151/8 +f 736/1153/8 735/1149/8 751/1150/8 +f 731/1154/2 732/1170/2 739/1155/2 +f 738/1156/2 739/1155/2 740/1157/2 +f 725/1158/3 726/2215/3 735/1149/3 +f 734/1159/3 735/1149/3 736/1153/3 +f 754/1160/6 756/1162/6 734/1159/6 +f 753/1161/6 755/1174/6 756/1162/6 +f 725/1163/5 758/1186/5 764/1164/5 +f 741/1166/6 753/1161/6 754/1160/6 +f 750/1168/8 752/1169/8 740/1157/8 +f 749/1151/8 751/1150/8 752/1169/8 +f 744/1140/8 750/1168/8 739/1155/8 +f 743/1152/8 749/1151/8 750/1168/8 +f 752/1169/8 747/1171/8 730/1144/8 +f 751/1150/8 748/1146/8 747/1171/8 +f 745/1165/2 764/1164/2 763/1172/2 +f 755/1174/6 746/2216/6 745/1175/6 +f 730/1144/5 747/1171/5 746/1176/5 +f 747/1171/5 748/1146/5 745/1148/5 +f 728/1138/1 743/1152/1 742/1178/1 +f 743/1152/1 744/1140/1 741/1142/1 +f 742/1180/1 759/1184/1 760/1181/1 +f 754/1183/2 762/2217/2 759/1184/2 +f 734/1185/3 757/1191/3 758/1186/3 +f 733/1187/5 761/1192/5 762/1188/5 +f 756/1190/1 763/2218/1 757/1191/1 +f 727/1182/3 760/1181/3 761/1192/3 +f 773/1193/3 776/1209/3 768/1194/3 +f 784/1196/1 772/1226/1 771/1197/1 +f 777/1199/2 780/1213/2 770/1200/2 +f 788/1202/5 766/2219/5 765/1203/5 +f 775/1205/8 766/2219/8 788/1202/8 +f 768/1194/8 776/1209/8 789/1207/8 +f 776/1209/8 775/1205/8 791/1206/8 +f 771/1210/2 772/1226/2 779/1211/2 +f 778/1212/2 779/1211/2 780/1213/2 +f 765/1214/3 766/2219/3 775/1205/3 +f 774/1215/3 775/1205/3 776/1209/3 +f 794/1216/6 796/1218/6 774/1215/6 +f 793/1217/6 795/1230/6 796/1218/6 +f 765/1219/5 798/1242/5 804/1220/5 +f 781/1222/6 793/1217/6 794/1216/6 +f 790/1224/8 792/1225/8 780/1213/8 +f 789/1207/8 791/1206/8 792/1225/8 +f 784/1196/8 790/1224/8 779/1211/8 +f 783/1208/8 789/1207/8 790/1224/8 +f 792/1225/8 787/1227/8 770/1200/8 +f 791/1206/8 788/1202/8 787/1227/8 +f 785/1221/2 804/1220/2 803/1228/2 +f 795/1230/6 786/2220/6 785/1231/6 +f 770/1200/5 787/1227/5 786/1232/5 +f 787/1227/5 788/1202/5 785/1204/5 +f 768/1194/1 783/1208/1 782/1234/1 +f 783/1208/1 784/1196/1 781/1198/1 +f 782/1236/1 799/1240/1 800/1237/1 +f 794/1239/2 802/2221/2 799/1240/2 +f 774/1241/3 797/1247/3 798/1242/3 +f 773/1243/5 801/1248/5 802/1244/5 +f 796/1246/1 803/2222/1 797/1247/1 +f 767/1238/3 800/1237/3 801/1248/3 +f 813/1249/2 807/2223/2 808/1250/2 +f 811/1252/1 812/1267/1 824/1253/1 +f 817/1255/3 809/2224/3 810/1256/3 +f 805/1258/5 806/1270/5 828/1259/5 +f 828/1259/8 806/1270/8 815/1261/8 +f 829/1263/8 816/1251/8 808/1250/8 +f 831/1262/8 815/1261/8 816/1251/8 +f 811/1265/3 818/1268/3 819/1266/3 +f 818/1268/3 817/1255/3 820/1257/3 +f 805/1269/2 814/1271/2 815/1261/2 +f 814/1271/2 813/1249/2 816/1251/2 +f 814/1271/6 836/1273/6 834/1272/6 +f 836/1273/6 835/1286/6 833/1274/6 +f 844/1275/5 838/1296/5 805/1276/5 +f 834/1272/6 833/1274/6 821/1278/6 +f 820/1257/8 832/1281/8 830/1280/8 +f 832/1281/8 831/1262/8 829/1263/8 +f 819/1266/8 830/1280/8 824/1253/8 +f 830/1280/8 829/1263/8 823/1264/8 +f 810/1256/8 827/1282/8 832/1281/8 +f 827/1282/8 828/1259/8 831/1262/8 +f 843/1283/3 844/1275/3 825/1277/3 +f 825/1285/6 826/2225/6 835/1286/6 +f 826/1287/5 827/1282/5 810/1256/5 +f 825/1260/5 828/1259/5 827/1282/5 +f 822/1289/1 823/1264/1 808/1250/1 +f 821/1254/1 824/1253/1 823/1264/1 +f 840/1291/1 839/1294/1 822/1292/1 +f 839/1294/3 842/2226/3 834/1295/3 +f 838/1296/2 837/1301/2 814/1297/2 +f 842/1298/5 841/1303/5 813/1299/5 +f 837/1301/1 843/2227/1 836/1302/1 +f 841/1303/2 840/1291/2 807/1293/2 +f 853/1304/2 847/2228/2 848/1305/2 +f 851/1307/1 852/1322/1 864/1308/1 +f 857/1310/3 849/2229/3 850/1311/3 +f 845/1313/5 846/1325/5 868/1314/5 +f 868/1314/8 846/1325/8 855/1316/8 +f 869/1318/8 856/1306/8 848/1305/8 +f 871/1317/8 855/1316/8 856/1306/8 +f 851/1320/3 858/1323/3 859/1321/3 +f 858/1323/3 857/1310/3 860/1312/3 +f 845/1324/2 854/1326/2 855/1316/2 +f 854/1326/2 853/1304/2 856/1306/2 +f 854/1326/6 876/1328/6 874/1327/6 +f 876/1328/6 875/1341/6 873/1329/6 +f 884/1330/5 878/1351/5 845/1331/5 +f 874/1327/6 873/1329/6 861/1333/6 +f 860/1312/8 872/1336/8 870/1335/8 +f 872/1336/8 871/1317/8 869/1318/8 +f 859/1321/8 870/1335/8 864/1308/8 +f 870/1335/8 869/1318/8 863/1319/8 +f 850/1311/8 867/1337/8 872/1336/8 +f 867/1337/8 868/1314/8 871/1317/8 +f 883/1338/3 884/1330/3 865/1332/3 +f 865/1340/6 866/2230/6 875/1341/6 +f 866/1342/5 867/1337/5 850/1311/5 +f 865/1315/5 868/1314/5 867/1337/5 +f 862/1344/1 863/1319/1 848/1305/1 +f 861/1309/1 864/1308/1 863/1319/1 +f 880/1346/1 879/1349/1 862/1347/1 +f 879/1349/3 882/2231/3 874/1350/3 +f 878/1351/2 877/1356/2 854/1352/2 +f 882/1353/5 881/1358/5 853/1354/5 +f 877/1356/1 883/2232/1 876/1357/1 +f 881/1358/2 880/1346/2 847/1348/2 +f 893/1359/2 887/2233/2 888/1360/2 +f 891/1362/1 892/1377/1 904/1363/1 +f 897/1365/3 889/2234/3 890/1366/3 +f 885/1368/5 886/1380/5 908/1369/5 +f 908/1369/8 886/1380/8 895/1371/8 +f 909/1373/8 896/1361/8 888/1360/8 +f 911/1372/8 895/1371/8 896/1361/8 +f 891/1375/3 898/1378/3 899/1376/3 +f 898/1378/3 897/1365/3 900/1367/3 +f 885/1379/2 894/1381/2 895/1371/2 +f 894/1381/2 893/1359/2 896/1361/2 +f 894/1381/6 916/1383/6 914/1382/6 +f 916/1383/6 915/1396/6 913/1384/6 +f 924/1385/5 918/1406/5 885/1386/5 +f 914/1382/6 913/1384/6 901/1388/6 +f 900/1367/8 912/1391/8 910/1390/8 +f 912/1391/8 911/1372/8 909/1373/8 +f 899/1376/8 910/1390/8 904/1363/8 +f 910/1390/8 909/1373/8 903/1374/8 +f 890/1366/8 907/1392/8 912/1391/8 +f 907/1392/8 908/1369/8 911/1372/8 +f 923/1393/3 924/1385/3 905/1387/3 +f 905/1395/6 906/2235/6 915/1396/6 +f 906/1397/5 907/1392/5 890/1366/5 +f 905/1370/5 908/1369/5 907/1392/5 +f 902/1399/1 903/1374/1 888/1360/1 +f 901/1364/1 904/1363/1 903/1374/1 +f 920/1401/1 919/1404/1 902/1402/1 +f 919/1404/3 922/2236/3 914/1405/3 +f 918/1406/2 917/1411/2 894/1407/2 +f 922/1408/5 921/1413/5 893/1409/5 +f 917/1411/1 923/2237/1 916/1412/1 +f 921/1413/2 920/1401/2 887/1403/2 +f 933/1414/2 927/2238/2 928/1415/2 +f 931/1417/1 932/1432/1 944/1418/1 +f 937/1420/3 929/2239/3 930/1421/3 +f 925/1423/5 926/1435/5 948/1424/5 +f 948/1424/8 926/1435/8 935/1426/8 +f 949/1428/8 936/1416/8 928/1415/8 +f 951/1427/8 935/1426/8 936/1416/8 +f 931/1430/3 938/1433/3 939/1431/3 +f 938/1433/3 937/1420/3 940/1422/3 +f 925/1434/2 934/1436/2 935/1426/2 +f 934/1436/2 933/1414/2 936/1416/2 +f 934/1436/6 956/1438/6 954/1437/6 +f 956/1438/6 955/1451/6 953/1439/6 +f 964/1440/5 958/1461/5 925/1441/5 +f 954/1437/6 953/1439/6 941/1443/6 +f 940/1422/8 952/1446/8 950/1445/8 +f 952/1446/8 951/1427/8 949/1428/8 +f 939/1431/8 950/1445/8 944/1418/8 +f 950/1445/8 949/1428/8 943/1429/8 +f 930/1421/8 947/1447/8 952/1446/8 +f 947/1447/8 948/1424/8 951/1427/8 +f 963/1448/3 964/1440/3 945/1442/3 +f 945/1450/6 946/2240/6 955/1451/6 +f 946/1452/5 947/1447/5 930/1421/5 +f 945/1425/5 948/1424/5 947/1447/5 +f 942/1454/1 943/1429/1 928/1415/1 +f 941/1419/1 944/1418/1 943/1429/1 +f 960/1456/1 959/1459/1 942/1457/1 +f 959/1459/3 962/2241/3 954/1460/3 +f 958/1461/2 957/1466/2 934/1462/2 +f 962/1463/5 961/1468/5 933/1464/5 +f 957/1466/1 963/2242/1 956/1467/1 +f 961/1468/2 960/1456/2 927/1458/2 +f 973/1469/2 967/2243/2 968/1470/2 +f 971/1472/1 972/1487/1 984/1473/1 +f 977/1475/3 969/2244/3 970/1476/3 +f 965/1478/5 966/1490/5 988/1479/5 +f 988/1479/8 966/1490/8 975/1481/8 +f 989/1483/8 976/1471/8 968/1470/8 +f 991/1482/8 975/1481/8 976/1471/8 +f 971/1485/3 978/1488/3 979/1486/3 +f 978/1488/3 977/1475/3 980/1477/3 +f 965/1489/2 974/1491/2 975/1481/2 +f 974/1491/2 973/1469/2 976/1471/2 +f 974/1491/6 996/1493/6 994/1492/6 +f 996/1493/6 995/1506/6 993/1494/6 +f 1004/1495/5 998/1516/5 965/1496/5 +f 994/1492/6 993/1494/6 981/1498/6 +f 980/1477/8 992/1501/8 990/1500/8 +f 992/1501/8 991/1482/8 989/1483/8 +f 979/1486/8 990/1500/8 984/1473/8 +f 990/1500/8 989/1483/8 983/1484/8 +f 970/1476/8 987/1502/8 992/1501/8 +f 987/1502/8 988/1479/8 991/1482/8 +f 1003/1503/3 1004/1495/3 985/1497/3 +f 985/1505/6 986/2245/6 995/1506/6 +f 986/1507/5 987/1502/5 970/1476/5 +f 985/1480/5 988/1479/5 987/1502/5 +f 982/1509/1 983/1484/1 968/1470/1 +f 981/1474/1 984/1473/1 983/1484/1 +f 1000/1511/1 999/1514/1 982/1512/1 +f 999/1514/3 1002/2246/3 994/1515/3 +f 998/1516/2 997/1521/2 974/1517/2 +f 1002/1518/5 1001/1523/5 973/1519/5 +f 997/1521/1 1003/2247/1 996/1522/1 +f 1001/1523/2 1000/1511/2 967/1513/2 +f 1013/1524/2 1007/2248/2 1008/1525/2 +f 1011/1527/1 1012/1542/1 1024/1528/1 +f 1017/1530/3 1009/2249/3 1010/1531/3 +f 1005/1533/5 1006/1545/5 1028/1534/5 +f 1028/1534/8 1006/1545/8 1015/1536/8 +f 1029/1538/8 1016/1526/8 1008/1525/8 +f 1031/1537/8 1015/1536/8 1016/1526/8 +f 1011/1540/3 1018/1543/3 1019/1541/3 +f 1018/1543/3 1017/1530/3 1020/1532/3 +f 1005/1544/2 1014/1546/2 1015/1536/2 +f 1014/1546/2 1013/1524/2 1016/1526/2 +f 1014/1546/6 1036/1548/6 1034/1547/6 +f 1036/1548/6 1035/1561/6 1033/1549/6 +f 1044/1550/5 1038/1571/5 1005/1551/5 +f 1034/1547/6 1033/1549/6 1021/1553/6 +f 1020/1532/8 1032/1556/8 1030/1555/8 +f 1032/1556/8 1031/1537/8 1029/1538/8 +f 1019/1541/8 1030/1555/8 1024/1528/8 +f 1030/1555/8 1029/1538/8 1023/1539/8 +f 1010/1531/8 1027/1557/8 1032/1556/8 +f 1027/1557/8 1028/1534/8 1031/1537/8 +f 1043/1558/3 1044/1550/3 1025/1552/3 +f 1025/1560/6 1026/2250/6 1035/1561/6 +f 1026/1562/5 1027/1557/5 1010/1531/5 +f 1025/1535/5 1028/1534/5 1027/1557/5 +f 1022/1564/1 1023/1539/1 1008/1525/1 +f 1021/1529/1 1024/1528/1 1023/1539/1 +f 1040/1566/1 1039/1569/1 1022/1567/1 +f 1039/1569/3 1042/2251/3 1034/1570/3 +f 1038/1571/2 1037/1576/2 1014/1572/2 +f 1042/1573/5 1041/1578/5 1013/1574/5 +f 1037/1576/1 1043/2252/1 1036/1577/1 +f 1041/1578/2 1040/1566/2 1007/1568/2 +f 1053/1579/2 1047/2253/2 1048/1580/2 +f 1051/1582/1 1052/1597/1 1064/1583/1 +f 1057/1585/3 1049/2254/3 1050/1586/3 +f 1045/1588/5 1046/1600/5 1068/1589/5 +f 1068/1589/8 1046/1600/8 1055/1591/8 +f 1069/1593/8 1056/1581/8 1048/1580/8 +f 1071/1592/8 1055/1591/8 1056/1581/8 +f 1051/1595/3 1058/1598/3 1059/1596/3 +f 1058/1598/3 1057/1585/3 1060/1587/3 +f 1045/1599/2 1054/1601/2 1055/1591/2 +f 1054/1601/2 1053/1579/2 1056/1581/2 +f 1054/1601/6 1076/1603/6 1074/1602/6 +f 1076/1603/6 1075/1616/6 1073/1604/6 +f 1084/1605/5 1078/1626/5 1045/1606/5 +f 1074/1602/6 1073/1604/6 1061/1608/6 +f 1060/1587/8 1072/1611/8 1070/1610/8 +f 1072/1611/8 1071/1592/8 1069/1593/8 +f 1059/1596/8 1070/1610/8 1064/1583/8 +f 1070/1610/8 1069/1593/8 1063/1594/8 +f 1050/1586/8 1067/1612/8 1072/1611/8 +f 1067/1612/8 1068/1589/8 1071/1592/8 +f 1083/1613/3 1084/1605/3 1065/1607/3 +f 1065/1615/6 1066/2255/6 1075/1616/6 +f 1066/1617/5 1067/1612/5 1050/1586/5 +f 1065/1590/5 1068/1589/5 1067/1612/5 +f 1062/1619/1 1063/1594/1 1048/1580/1 +f 1061/1584/1 1064/1583/1 1063/1594/1 +f 1080/1621/1 1079/1624/1 1062/1622/1 +f 1079/1624/3 1082/2256/3 1074/1625/3 +f 1078/1626/2 1077/1631/2 1054/1627/2 +f 1082/1628/5 1081/1633/5 1053/1629/5 +f 1077/1631/1 1083/2257/1 1076/1632/1 +f 1081/1633/2 1080/1621/2 1047/1623/2 +f 1093/1634/2 1087/2258/2 1088/1635/2 +f 1091/1637/1 1092/1652/1 1104/1638/1 +f 1097/1640/3 1089/2259/3 1090/1641/3 +f 1085/1643/5 1086/1655/5 1108/1644/5 +f 1108/1644/8 1086/1655/8 1095/1646/8 +f 1109/1648/8 1096/1636/8 1088/1635/8 +f 1111/1647/8 1095/1646/8 1096/1636/8 +f 1091/1650/3 1098/1653/3 1099/1651/3 +f 1098/1653/3 1097/1640/3 1100/1642/3 +f 1085/1654/2 1094/1656/2 1095/1646/2 +f 1094/1656/2 1093/1634/2 1096/1636/2 +f 1094/1656/6 1116/1658/6 1114/1657/6 +f 1116/1658/6 1115/1671/6 1113/1659/6 +f 1124/1660/5 1118/1681/5 1085/1661/5 +f 1114/1657/6 1113/1659/6 1101/1663/6 +f 1100/1642/8 1112/1666/8 1110/1665/8 +f 1112/1666/8 1111/1647/8 1109/1648/8 +f 1099/1651/8 1110/1665/8 1104/1638/8 +f 1110/1665/8 1109/1648/8 1103/1649/8 +f 1090/1641/8 1107/1667/8 1112/1666/8 +f 1107/1667/8 1108/1644/8 1111/1647/8 +f 1123/1668/3 1124/1660/3 1105/1662/3 +f 1105/1670/6 1106/2260/6 1115/1671/6 +f 1106/1672/5 1107/1667/5 1090/1641/5 +f 1105/1645/5 1108/1644/5 1107/1667/5 +f 1102/1674/1 1103/1649/1 1088/1635/1 +f 1101/1639/1 1104/1638/1 1103/1649/1 +f 1120/1676/1 1119/1679/1 1102/1677/1 +f 1119/1679/3 1122/2261/3 1114/1680/3 +f 1118/1681/2 1117/1686/2 1094/1682/2 +f 1122/1683/5 1121/1688/5 1093/1684/5 +f 1117/1686/1 1123/2262/1 1116/1687/1 +f 1121/1688/2 1120/1676/2 1087/1678/2 +f 1133/1689/2 1127/2263/2 1128/1690/2 +f 1131/1692/1 1132/1707/1 1144/1693/1 +f 1137/1695/3 1129/2264/3 1130/1696/3 +f 1125/1698/5 1126/1710/5 1148/1699/5 +f 1148/1699/8 1126/1710/8 1135/1701/8 +f 1149/1703/8 1136/1691/8 1128/1690/8 +f 1151/1702/8 1135/1701/8 1136/1691/8 +f 1131/1705/3 1138/1708/3 1139/1706/3 +f 1138/1708/3 1137/1695/3 1140/1697/3 +f 1125/1709/2 1134/1711/2 1135/1701/2 +f 1134/1711/2 1133/1689/2 1136/1691/2 +f 1134/1711/6 1156/1713/6 1154/1712/6 +f 1156/1713/6 1155/1726/6 1153/1714/6 +f 1164/1715/5 1158/1736/5 1125/1716/5 +f 1154/1712/6 1153/1714/6 1141/1718/6 +f 1140/1697/8 1152/1721/8 1150/1720/8 +f 1152/1721/8 1151/1702/8 1149/1703/8 +f 1139/1706/8 1150/1720/8 1144/1693/8 +f 1150/1720/8 1149/1703/8 1143/1704/8 +f 1130/1696/8 1147/1722/8 1152/1721/8 +f 1147/1722/8 1148/1699/8 1151/1702/8 +f 1163/1723/3 1164/1715/3 1145/1717/3 +f 1145/1725/6 1146/2265/6 1155/1726/6 +f 1146/1727/5 1147/1722/5 1130/1696/5 +f 1145/1700/5 1148/1699/5 1147/1722/5 +f 1142/1729/1 1143/1704/1 1128/1690/1 +f 1141/1694/1 1144/1693/1 1143/1704/1 +f 1160/1731/1 1159/1734/1 1142/1732/1 +f 1159/1734/3 1162/2266/3 1154/1735/3 +f 1158/1736/2 1157/1741/2 1134/1737/2 +f 1162/1738/5 1161/1743/5 1133/1739/5 +f 1157/1741/1 1163/2267/1 1156/1742/1 +f 1161/1743/2 1160/1731/2 1127/1733/2 +f 1173/1744/2 1167/2268/2 1168/1745/2 +f 1171/1747/1 1172/1762/1 1184/1748/1 +f 1177/1750/3 1169/2269/3 1170/1751/3 +f 1165/1753/5 1166/1765/5 1188/1754/5 +f 1188/1754/8 1166/1765/8 1175/1756/8 +f 1189/1758/8 1176/1746/8 1168/1745/8 +f 1191/1757/8 1175/1756/8 1176/1746/8 +f 1171/1760/3 1178/1763/3 1179/1761/3 +f 1178/1763/3 1177/1750/3 1180/1752/3 +f 1165/1764/2 1174/1766/2 1175/1756/2 +f 1174/1766/2 1173/1744/2 1176/1746/2 +f 1174/1766/6 1196/1768/6 1194/1767/6 +f 1196/1768/6 1195/1781/6 1193/1769/6 +f 1204/1770/5 1198/1791/5 1165/1771/5 +f 1194/1767/6 1193/1769/6 1181/1773/6 +f 1180/1752/8 1192/1776/8 1190/1775/8 +f 1192/1776/8 1191/1757/8 1189/1758/8 +f 1179/1761/8 1190/1775/8 1184/1748/8 +f 1190/1775/8 1189/1758/8 1183/1759/8 +f 1170/1751/8 1187/1777/8 1192/1776/8 +f 1187/1777/8 1188/1754/8 1191/1757/8 +f 1203/1778/3 1204/1770/3 1185/1772/3 +f 1185/1780/6 1186/2270/6 1195/1781/6 +f 1186/1782/5 1187/1777/5 1170/1751/5 +f 1185/1755/5 1188/1754/5 1187/1777/5 +f 1182/1784/1 1183/1759/1 1168/1745/1 +f 1181/1749/1 1184/1748/1 1183/1759/1 +f 1200/1786/1 1199/1789/1 1182/1787/1 +f 1199/1789/3 1202/2271/3 1194/1790/3 +f 1198/1791/2 1197/1796/2 1174/1792/2 +f 1202/1793/5 1201/1798/5 1173/1794/5 +f 1197/1796/1 1203/2272/1 1196/1797/1 +f 1201/1798/2 1200/1786/2 1167/1788/2 +f 1213/1799/2 1207/2273/2 1208/1800/2 +f 1211/1802/1 1212/1817/1 1224/1803/1 +f 1217/1805/3 1209/2274/3 1210/1806/3 +f 1205/1808/5 1206/1820/5 1228/1809/5 +f 1228/1809/8 1206/1820/8 1215/1811/8 +f 1229/1813/8 1216/1801/8 1208/1800/8 +f 1231/1812/8 1215/1811/8 1216/1801/8 +f 1211/1815/3 1218/1818/3 1219/1816/3 +f 1218/1818/3 1217/1805/3 1220/1807/3 +f 1205/1819/2 1214/1821/2 1215/1811/2 +f 1214/1821/2 1213/1799/2 1216/1801/2 +f 1214/1821/6 1236/1823/6 1234/1822/6 +f 1236/1823/6 1235/1836/6 1233/1824/6 +f 1244/1825/5 1238/1846/5 1205/1826/5 +f 1234/1822/6 1233/1824/6 1221/1828/6 +f 1220/1807/8 1232/1831/8 1230/1830/8 +f 1232/1831/8 1231/1812/8 1229/1813/8 +f 1219/1816/8 1230/1830/8 1224/1803/8 +f 1230/1830/8 1229/1813/8 1223/1814/8 +f 1210/1806/8 1227/1832/8 1232/1831/8 +f 1227/1832/8 1228/1809/8 1231/1812/8 +f 1243/1833/3 1244/1825/3 1225/1827/3 +f 1225/1835/6 1226/2275/6 1235/1836/6 +f 1226/1837/5 1227/1832/5 1210/1806/5 +f 1225/1810/5 1228/1809/5 1227/1832/5 +f 1222/1839/1 1223/1814/1 1208/1800/1 +f 1221/1804/1 1224/1803/1 1223/1814/1 +f 1240/1841/1 1239/1844/1 1222/1842/1 +f 1239/1844/3 1242/2276/3 1234/1845/3 +f 1238/1846/2 1237/1851/2 1214/1847/2 +f 1242/1848/5 1241/1853/5 1213/1849/5 +f 1237/1851/1 1243/2277/1 1236/1852/1 +f 1241/1853/2 1240/1841/2 1207/1843/2 +f 1245/1854/3 1246/2278/3 1248/1855/3 +f 1248/1857/1 1252/2279/1 1251/1858/1 +f 1252/1860/2 1250/1864/2 1249/1861/2 +f 1251/1858/1 1255/1865/1 1253/1863/1 +f 1248/1855/9 1246/2278/9 1250/1864/9 +f 1255/1865/11 1256/1869/11 1254/1866/11 +f 1253/1863/1 1259/1870/1 1257/1867/1 +f 1251/1868/2 1249/2280/2 1256/1869/2 +f 1259/1870/1 1263/1880/1 1261/1871/1 +f 1247/1856/9 1257/2281/9 1258/1872/9 +f 1254/1866/11 1260/1879/11 1259/1870/11 +f 1261/1873/3 1263/1880/3 1264/1874/3 +f 1262/1876/3 1268/1882/3 1267/1877/3 +f 1260/1879/11 1264/1874/11 1263/1880/11 +f 1265/1881/9 1267/1877/9 1268/1882/9 +f 1261/1871/1 1267/2282/1 1265/1884/1 +f 1258/1872/2 1257/2281/2 1265/1881/2 +f 1269/1885/3 1271/1905/3 1272/1886/3 +f 1275/1888/5 1276/2283/5 1272/1889/5 +f 1273/1891/2 1274/1895/2 1276/1892/2 +f 1277/1894/5 1279/1897/5 1275/1888/5 +f 1274/1895/10 1270/1887/10 1272/1886/10 +f 1278/1896/12 1280/1900/12 1279/1897/12 +f 1281/1898/5 1283/1903/5 1277/1894/5 +f 1275/1899/2 1279/1897/2 1280/1900/2 +f 1285/1902/5 1287/1912/5 1283/1903/5 +f 1282/1904/10 1281/1918/10 1271/1905/10 +f 1283/1903/12 1284/1913/12 1278/1896/12 +f 1288/1906/3 1287/1912/3 1285/1907/3 +f 1291/1909/3 1292/1914/3 1286/1910/3 +f 1287/1912/12 1288/1906/12 1284/1913/12 +f 1292/1914/10 1291/1909/10 1289/1915/10 +f 1289/1917/5 1291/2284/5 1285/1902/5 +f 1282/1904/2 1290/1916/2 1289/1915/2 +f 1294/1919/4 1296/1922/4 1295/1920/4 +f 1296/1922/1 1300/2285/1 1299/1923/1 +f 1297/1924/5 1298/2286/5 1294/1919/5 +f 1299/1925/13 1297/2287/13 1293/1921/13 +f 1296/1922/14 1294/1919/14 1298/1926/14 +f 1302/1928/4 1304/1931/4 1303/1929/4 +f 1304/1931/1 1308/2288/1 1307/1932/1 +f 1305/1933/5 1306/2289/5 1302/1928/5 +f 1307/1934/13 1305/2290/13 1301/1930/13 +f 1304/1931/14 1302/1928/14 1306/1935/14 +f 1310/1937/4 1312/1940/4 1311/1938/4 +f 1312/1940/1 1316/2291/1 1315/1941/1 +f 1313/1942/5 1314/2292/5 1310/1937/5 +f 1315/1943/13 1313/2293/13 1309/1939/13 +f 1312/1940/14 1310/1937/14 1314/1944/14 +f 1318/1946/4 1320/1949/4 1319/1947/4 +f 1320/1949/1 1324/2294/1 1323/1950/1 +f 1321/1951/5 1322/2295/5 1318/1946/5 +f 1323/1952/13 1321/2296/13 1317/1948/13 +f 1320/1949/14 1318/1946/14 1322/1953/14 +f 1326/1955/4 1328/1958/4 1327/1956/4 +f 1328/1958/1 1332/2297/1 1331/1959/1 +f 1329/1960/5 1330/2298/5 1326/1955/5 +f 1331/1961/13 1329/2299/13 1325/1957/13 +f 1328/1958/14 1326/1955/14 1330/1962/14 +f 1335/1964/7 1336/1968/7 1334/1965/7 +f 1335/1964/1 1339/2300/1 1340/1967/1 +f 1337/1969/5 1333/1966/5 1334/1965/5 +f 1333/1966/15 1337/2301/15 1339/1971/15 +f 1338/1972/16 1334/1965/16 1336/1968/16 +f 1343/1974/7 1344/1978/7 1342/1975/7 +f 1343/1974/1 1347/2302/1 1348/1977/1 +f 1345/1979/5 1341/1976/5 1342/1975/5 +f 1341/1976/15 1345/2303/15 1347/1981/15 +f 1346/1982/16 1342/1975/16 1344/1978/16 +f 1351/1984/7 1352/1988/7 1350/1985/7 +f 1351/1984/1 1355/2304/1 1356/1987/1 +f 1353/1989/5 1349/1986/5 1350/1985/5 +f 1349/1986/15 1353/2305/15 1355/1991/15 +f 1354/1992/16 1350/1985/16 1352/1988/16 +f 1359/1994/7 1360/1998/7 1358/1995/7 +f 1359/1994/1 1363/2306/1 1364/1997/1 +f 1361/1999/5 1357/1996/5 1358/1995/5 +f 1357/1996/15 1361/2307/15 1363/2001/15 +f 1362/2002/16 1358/1995/16 1360/1998/16 +f 1367/2004/7 1368/2008/7 1366/2005/7 +f 1367/2004/1 1371/2308/1 1372/2007/1 +f 1369/2009/5 1365/2006/5 1366/2005/5 +f 1365/2006/15 1369/2309/15 1371/2011/15 +f 1370/2012/16 1366/2005/16 1368/2008/16 +f 1376/2014/1 1380/2024/1 1379/2015/1 +f 1378/2017/5 1374/2310/5 1373/2018/5 +f 1382/2020/5 1385/2033/5 1386/2021/5 +f 1376/2027/1 1383/2311/1 1384/2028/1 +f 1386/2036/5 1389/2040/5 1392/2037/5 +f 1383/2041/1 1394/2312/1 1391/2042/1 +f 1398/2043/1 1402/2053/1 1401/2044/1 +f 1400/2046/5 1396/2313/5 1395/2047/5 +f 1404/2049/5 1407/2062/5 1408/2050/5 +f 1398/2056/1 1405/2314/1 1406/2057/1 +f 1408/2065/5 1411/2069/5 1414/2066/5 +f 1405/2070/1 1416/2315/1 1413/2071/1 +f 1420/2072/1 1424/2082/1 1423/2073/1 +f 1422/2075/5 1418/2316/5 1417/2076/5 +f 1426/2078/5 1429/2091/5 1430/2079/5 +f 1420/2085/1 1427/2317/1 1428/2086/1 +f 1430/2094/5 1433/2098/5 1436/2095/5 +f 1427/2099/1 1438/2318/1 1435/2100/1 +f 1442/2101/1 1446/2111/1 1445/2102/1 +f 1444/2104/5 1440/2319/5 1439/2105/5 +f 1448/2107/5 1451/2120/5 1452/2108/5 +f 1442/2114/1 1449/2320/1 1450/2115/1 +f 1452/2123/5 1455/2127/5 1458/2124/5 +f 1449/2128/1 1460/2321/1 1457/2129/1 +f 1464/2130/1 1468/2140/1 1467/2131/1 +f 1466/2133/5 1462/2322/5 1461/2134/5 +f 1470/2136/5 1473/2149/5 1474/2137/5 +f 1464/2143/1 1471/2323/1 1472/2144/1 +f 1474/2152/5 1477/2156/5 1480/2153/5 +f 1471/2157/1 1482/2324/1 1479/2158/1 s 1 -f 5/5/11 3/697/12 6/6/13 -f 9/604/14 4/4/15 2/2/16 -f 9/10/14 8/9/17 7/8/18 -f 10/18/19 12/606/20 8/16/17 -f 5/5/11 14/698/21 1/699/22 -f 16/26/23 377/607/24 13/24/25 -f 15/21/26 13/15/25 12/14/20 -f 11/17/27 18/700/28 14/698/21 -f 24/33/11 22/701/12 25/34/13 -f 28/608/14 23/32/15 21/30/16 -f 28/38/14 27/37/17 26/36/18 -f 29/46/19 31/610/29 27/44/17 -f 24/33/11 33/702/21 20/703/22 -f 35/54/23 378/611/24 32/52/25 -f 34/49/30 32/43/25 31/42/29 -f 30/45/27 37/704/28 33/702/21 -f 43/61/11 41/705/12 44/62/13 -f 47/612/14 42/60/15 40/58/16 -f 47/66/14 46/65/17 45/64/18 -f 48/74/19 50/614/29 46/72/17 -f 43/61/11 52/706/31 39/707/22 -f 54/82/23 379/615/24 51/80/25 -f 53/77/32 51/71/25 50/70/29 -f 49/73/33 56/708/28 52/706/31 -f 62/89/11 60/709/12 63/90/13 -f 66/616/14 61/88/15 59/86/16 -f 66/94/14 65/93/17 64/92/34 -f 67/102/19 69/618/20 65/100/17 -f 62/89/11 71/710/21 58/711/22 -f 73/110/23 380/619/24 70/108/25 -f 72/105/26 70/99/25 69/98/20 -f 68/101/27 75/712/28 71/710/21 -f 5/5/11 1/699/22 3/697/12 -f 9/604/14 7/605/18 4/4/15 -f 9/10/14 10/12/19 8/9/17 -f 10/18/19 15/20/26 12/606/20 -f 5/5/11 11/17/27 14/698/21 -f 16/26/23 19/28/35 377/607/24 -f 15/21/26 16/23/23 13/15/25 -f 11/17/27 17/25/36 18/700/28 -f 24/33/11 20/703/22 22/701/12 -f 28/608/14 26/609/18 23/32/15 -f 28/38/14 29/40/19 27/37/17 -f 29/46/19 34/48/30 31/610/29 -f 24/33/11 30/45/27 33/702/21 -f 35/54/23 38/56/35 378/611/24 -f 34/49/30 35/51/23 32/43/25 -f 30/45/27 36/53/36 37/704/28 -f 43/61/11 39/707/22 41/705/12 -f 47/612/14 45/613/18 42/60/15 -f 47/66/14 48/68/19 46/65/17 -f 48/74/19 53/76/32 50/614/29 -f 43/61/11 49/73/33 52/706/31 -f 54/82/23 57/84/35 379/615/24 -f 53/77/32 54/79/23 51/71/25 -f 49/73/33 55/81/36 56/708/28 -f 62/89/11 58/711/22 60/709/12 -f 66/616/14 64/617/34 61/88/15 -f 66/94/14 67/96/19 65/93/17 -f 67/102/19 72/104/26 69/618/20 -f 62/89/11 68/101/27 71/710/21 -f 73/110/23 76/112/35 380/619/24 -f 72/105/26 73/107/23 70/99/25 -f 68/101/27 74/109/36 75/712/28 +f 1374/2310/17 1375/2325/18 1373/2018/19 +f 1380/2024/20 1377/2019/21 1379/2015/22 +f 1380/2024/20 1382/2020/23 1378/2017/24 +f 1384/2028/25 1388/2034/26 1385/2033/27 +f 1381/2026/28 1385/2033/27 1382/2020/23 +f 1374/2022/17 1383/2326/29 1376/2327/30 +f 1387/2029/31 1389/2040/32 1388/2034/26 +f 1386/2036/33 1394/2328/34 1383/2329/29 +f 1390/2031/35 1392/2037/36 1389/2040/32 +f 1396/2313/17 1397/2330/18 1395/2047/19 +f 1402/2053/20 1399/2048/21 1401/2044/22 +f 1402/2053/20 1404/2049/23 1400/2046/24 +f 1406/2057/25 1410/2063/26 1407/2062/27 +f 1403/2055/28 1407/2062/27 1404/2049/23 +f 1396/2051/17 1405/2331/29 1398/2332/30 +f 1409/2058/31 1411/2069/32 1410/2063/26 +f 1408/2065/33 1416/2333/34 1405/2334/29 +f 1412/2060/35 1414/2066/36 1411/2069/32 +f 1418/2316/17 1419/2335/18 1417/2076/19 +f 1424/2082/20 1421/2077/21 1423/2073/22 +f 1424/2082/20 1426/2078/23 1422/2075/24 +f 1428/2086/25 1432/2092/26 1429/2091/27 +f 1425/2084/28 1429/2091/27 1426/2078/23 +f 1418/2080/17 1427/2336/29 1420/2337/30 +f 1431/2087/31 1433/2098/32 1432/2092/26 +f 1430/2094/33 1438/2338/34 1427/2339/29 +f 1434/2089/35 1436/2095/36 1433/2098/32 +f 1440/2319/17 1441/2340/18 1439/2105/19 +f 1446/2111/20 1443/2106/21 1445/2102/22 +f 1446/2111/20 1448/2107/23 1444/2104/24 +f 1450/2115/25 1454/2121/26 1451/2120/27 +f 1447/2113/28 1451/2120/27 1448/2107/23 +f 1440/2109/17 1449/2341/29 1442/2342/30 +f 1453/2116/31 1455/2127/32 1454/2121/26 +f 1452/2123/33 1460/2343/34 1449/2344/29 +f 1456/2118/35 1458/2124/36 1455/2127/32 +f 1462/2322/17 1463/2345/18 1461/2134/19 +f 1468/2140/20 1465/2135/21 1467/2131/22 +f 1468/2140/20 1470/2136/23 1466/2133/24 +f 1472/2144/25 1476/2150/26 1473/2149/27 +f 1469/2142/28 1473/2149/27 1470/2136/23 +f 1462/2138/17 1471/2346/29 1464/2347/30 +f 1475/2145/31 1477/2156/32 1476/2150/26 +f 1474/2152/33 1482/2348/34 1471/2349/29 +f 1478/2147/35 1480/2153/36 1477/2156/32 +f 1374/2310/17 1376/2350/30 1375/2325/18 +f 1380/2024/20 1378/2017/24 1377/2019/21 +f 1380/2024/20 1381/2026/28 1382/2020/23 +f 1384/2028/25 1387/2029/31 1388/2034/26 +f 1381/2026/28 1384/2028/25 1385/2033/27 +f 1374/2022/17 1386/2021/33 1383/2326/29 +f 1387/2029/31 1390/2031/35 1389/2040/32 +f 1386/2036/33 1393/2038/37 1394/2328/34 +f 1390/2031/35 1391/2042/38 1392/2037/36 +f 1396/2313/17 1398/2351/30 1397/2330/18 +f 1402/2053/20 1400/2046/24 1399/2048/21 +f 1402/2053/20 1403/2055/28 1404/2049/23 +f 1406/2057/25 1409/2058/31 1410/2063/26 +f 1403/2055/28 1406/2057/25 1407/2062/27 +f 1396/2051/17 1408/2050/33 1405/2331/29 +f 1409/2058/31 1412/2060/35 1411/2069/32 +f 1408/2065/33 1415/2067/37 1416/2333/34 +f 1412/2060/35 1413/2071/38 1414/2066/36 +f 1418/2316/17 1420/2352/30 1419/2335/18 +f 1424/2082/20 1422/2075/24 1421/2077/21 +f 1424/2082/20 1425/2084/28 1426/2078/23 +f 1428/2086/25 1431/2087/31 1432/2092/26 +f 1425/2084/28 1428/2086/25 1429/2091/27 +f 1418/2080/17 1430/2079/33 1427/2336/29 +f 1431/2087/31 1434/2089/35 1433/2098/32 +f 1430/2094/33 1437/2096/37 1438/2338/34 +f 1434/2089/35 1435/2100/38 1436/2095/36 +f 1440/2319/17 1442/2353/30 1441/2340/18 +f 1446/2111/20 1444/2104/24 1443/2106/21 +f 1446/2111/20 1447/2113/28 1448/2107/23 +f 1450/2115/25 1453/2116/31 1454/2121/26 +f 1447/2113/28 1450/2115/25 1451/2120/27 +f 1440/2109/17 1452/2108/33 1449/2341/29 +f 1453/2116/31 1456/2118/35 1455/2127/32 +f 1452/2123/33 1459/2125/37 1460/2343/34 +f 1456/2118/35 1457/2129/38 1458/2124/36 +f 1462/2322/17 1464/2354/30 1463/2345/18 +f 1468/2140/20 1466/2133/24 1465/2135/21 +f 1468/2140/20 1469/2142/28 1470/2136/23 +f 1472/2144/25 1475/2145/31 1476/2150/26 +f 1469/2142/28 1472/2144/25 1473/2149/27 +f 1462/2138/17 1474/2137/33 1471/2346/29 +f 1475/2145/31 1478/2147/35 1477/2156/32 +f 1474/2152/33 1481/2154/37 1482/2348/34 +f 1478/2147/35 1479/2158/38 1480/2153/36 diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_compressor.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_compressor.png new file mode 100644 index 0000000000000000000000000000000000000000..e5b80132b0bfac3f4073c92b22d4609e1b36a4a7 GIT binary patch literal 3119 zcmb_ec|6o>7k_4qB{eaVU9uITWwM7d2}4;UQHipXD2!y8(Q--RhDb)^jULn&%LA?#Ni)OdXQk*$)cH}h zU8vz~Qms8B^M3dcac7aI_^u-f6CuRjAT+GX4~I&EX|%G$AsqFev15-_(BiOi!e^uW@>7xyLn^I zO$1|dvTcQLr?JW7#EDEuCi4T=?PMa&JlC#xG}=Td=;_ddubK;7sZX><&7L#@b7T{J@Jol;J^qL*eQWre zH+_ld7sC~i^`6f!OdOgr9BEu@n|xc$=puyFnD6Uu&G+)fFO%cqJl+>fem!OoEe;s- zp;>{)g{r#dE&azcqI^3_*MFqM#70j#X{?jER@8>a=TM%z0TB4WH{c3DdfCNOElZX z7FREe^{tzH8dw_U=3KRLE07vHvjt0E1(v*0*w$@KK69U!(Kupm(a2{!e_+6PcYaMk z>QGR%cr>ZkRH{oKPSNc*i zry=^MO^FMs_Zoj5AJ5T!_JVy@F{@5HDZ41h2c!ix#J zdRc)8w@=ek2YMfXg55#VBiNmPiOjuXkrQZfW(@h1{VjAuYvBK(AIL=UxExhYxboN+ zaRZ=N8Um(hWHzIn=_TMsRM{4=jq97msHuYr*y@N@B~yBP&*(#Co%;9MnaL98@$cP` zD)+vY-TbD2Wq!#GYPG}Dmgl)k#ie%e{lC(s71hDxd@su&q&L0OoMq77YHu1Is-CEk z1~!BMMMb7xcvNGT5s$I1Sj3wpMvBUE+@F1W^H_gT2wX#M-N0!R_`vE=lbcJ}qUSXz zgR>q?M@oxEzb*Blas6vEpf?=??2A=tCxtPE)gnJO=}wp`;w8*zk0(sLHuY?e9o}A+q{FhEi--96_-uA#ZkfS(gD|3uDlBNa{7U{;vlcC9p;O zKgfEcfIV{QrQkmEAj5^^`7aS~>v*J!%mtiRbF1-C3&iGa1SY!3)`Ocgz=&{>P3D+E z;e%Iv3v_2sEb4tU3Fts94IVv;Vs>KSm`$!oZ=dlvHV5jco{pF6XP)eG5~AwqvXzTY*kb;b&gaI__7Q3}@%7^SJ z6{D|UN7!=H`th6S9g>hkCz?q~SPn}N_%yDf(9lt9(k~kfh$1~`CUhjXP#{ZCW>8=* zkgE#K{VLRDcgJ|Mf_JhATp`Iw3x_OtrQf{L(+o`yhU40j*DtdPB?)8;i$C<~vdl6* zMKHWdpa`59eaD1Qr^TvlFb2eBy^n6F!4S`o3rLliM)N-Vo8ndOke)`@(-}2Uge*N6 zw9P6zX?Zf;3__l2?DIP=0~*v}HLDXopA1)`TRt5!xJ0Pz z&nzrdKOB2SA9`ELnl$Ol?&Y7u1G)UtwFwa`S?ZP=wRzB-|&B%oR0LJ5@Q)u5;?Ei2ER0ZuS?%?zo? zDZdHo3|F5k-J?k?x2`mTNS?p^#-yp-oOj_H+$UJDtN6n@Uykdu(sPN6;rBqd(mm}9 z11D)h*u`=UV!4&hf$Q=*Kt2Bwp*C|-ynXLf32Mr43)&Zwf1kkdE11WVFNVx^TuQuR+ z%sZBv4nVJQP($L(Oz2)?;{v6@?ZdPOhjUVg4%9s$Z)|9646RKZ9`^iU+Zg@mMbq}b z75lHQe$IlO4GVkAW>?Hx2PWY^J|5tbX1$rMVmBIO!O3#{7u(jjyrsZOcjsIlW%z8D+PwH-n z>Li!{Fu&ueSX(KzcKo2})X~J#5@qln2!<00|KC1;GyNaMbCG8K&nw}q>p1W@f#StV16EF;R$Yl&lHCYW3OPc5_S!$N c>GT$emih-j-?Tm6^?Nv5D+kL83-8PS1{QpNxc~qF literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_electrolyser_fluid.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_electrolyser_fluid.png new file mode 100644 index 0000000000000000000000000000000000000000..32b6d976e04ce0678c30d159a2cfdae5e8eb0701 GIT binary patch literal 3941 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_electrolyser_metal.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_electrolyser_metal.png new file mode 100644 index 0000000000000000000000000000000000000000..9c16575363dd0795125335cfb4397c9bb4ace475 GIT binary patch literal 4062 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/machines/compressor.png b/src/main/resources/assets/hbm/textures/models/machines/compressor.png index 64e95a024e129fbba8570aa321ae20db24c0a209..af84d82fd7c4a0ac20022cb0fedf303b0dfd56a2 100644 GIT binary patch literal 3463 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 literal 2131 zcmZ`*dpuNm8=sLFR!p`KVJKG8#@Z5Im%+#-mvu>$K`NFAVPuT)+RD9Y+u5X%S#Pe% z492A}Gc0mnTkbP-@VbR@$#rOE_H@ttc{_icbDr~gF2C>Z`+c6@NpiG5xl3GL90Gyt zvbM5tf6c05SX~N1=1xdlQUcztkAkobaBwM z!e<0s*E9;xQ61Ysk)UFfh1i1YHnc-7wk>Y7$91D=NanC6CBjT+Rc#Cv%=S(R(q z05&}#n8;Ru`U5J=&mu#>JE3cMSvplCpJc(Cfm&aA~+p_rdOaSKWAoZ#z%dMlJnk`iU1KCW%E_!Jvyzqi8x6 zp6AZ(p`*=b5tIfMDY~gp4rS2(YS@O2>`ywz$~tkk;~-{2LNGBH;vnLkk*B}U)oo*W zEn2gD<%9!|TS{$kM1HRKMe#=rNmUlPp3>(?7XLB>n9h~l)Z$nFELXruzQsl>S6#yn zx&0R@wpSSb2#pL^4qS&M79iprdE#T~p#%UgzrGRD0sD`EN*(jK@&1TgY2RBV9IB-+Sac10~wYN~OpT%r>*!Z7!@`I%4>o3z!ebn&K|t_bw{ zBR4pkCLJW7)w>ZoyVlHK>%!3K!)UV0o}noJ2Mu|uijFI92qsd1Ah9T0l#QR}YJS@7 z-eyE)Go;#vw{c5H>`7kyM>1S+66fdpW+R@LaoXG4aS^%6F94GV=)J}~y4 zz6**L7iDE-U8$>QiceQg9mx6rZrftMZn)qa+Kh8KM*E89e|<7cj+o$^+HG5P-|T8} z*M@RH#5jv}uK|raLtWr;sfJ2^kDJM4vfiQG9?^BO5?3G!axT4HvTr4nJu{2AH5^c3 zFmo+((r)JmF@GU0Fs5MBAhC0GBOw6GOv%+>VM;apkM=>ybq#h3zN;pOL**X|^%Ing*7VCoh*;f6e=ZwiLLuL5;= zTRh&!IkR;k@ZmEp5zN~Uao)z8jKXS}dV@qmFm{n=cIZ;W+n9~Z3`I%1?o$kPi#roNHUp z?vF~WOm&SJv2%w-!B*(so)@#Ku9h14*BK3dB`}N`~GuS3!Hisg3y?d2C*?H5E zB&U}Qfyt{*Ms=AL7#)6x<%cS2Mn`ywF5m&9!}@QgEf)j{W%>Pmr_r7R3bF+@Ac9n6 z$lv$*3GBUAc-P%1-`#A2iCr@ecT+sxeXG!pn}2))^R#mzj09?3-#%E-LV~ud1Vuk! zuWS~Wk76}pk}PLnj-<`?+w@^7ddNZRkqY7G@j zVTuoKuH;#_%3Y5e(YX9_(KA34Sj31NBV@*n{1K#?&>UMnkTr2)O$SDk+pdxpEs=-Q zKhL*$D~BR&AD50*`Xii!Ecu!Ux8@qfQq7$)~3Cj8yjPfjc381aWs|*IC<{ z!>6o4by|ugs%8C}KHw)u0uKp}5#nx)IywySk$9``vV|Qocw5)e^>89(783lfp+64R z&m)h6Q?%d)H2%qxtu9+j=?|@g{sf|=i#FcrsQBcLxZtUk?rbB|xlE_7)T~@A!WJO31#_ diff --git a/src/main/resources/assets/hbm/textures/models/machines/electrolyser.png b/src/main/resources/assets/hbm/textures/models/machines/electrolyser.png index 09c84e5ee8dbd9b7f714fb5e8e8c7d3328fd0787..cc54a462239c739f94463b8ea1584e590f8cfed5 100644 GIT binary patch literal 95595 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

    tuHo3e>dcS7tk;2YZKK+;C=6V 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 literal 17310 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 diff --git a/src/main/resources/assets/hbm/textures/models/projectiles/himars_single_lava.png b/src/main/resources/assets/hbm/textures/models/projectiles/himars_single_lava.png new file mode 100644 index 0000000000000000000000000000000000000000..f0b6691690e58720c25ce1cdff28356002008ff4 GIT binary patch literal 1547 zcmeAS@N?(olHy`uVBq!ia0vp^0YJQmgAGW&pRO4Kq*#ibJVQ8upoSx*gMoqdkf)1d zNX4ADbN1%l4wGn$my??`X(@}>vIEYy6_a;u<=A9yeo^`bYl&C;ffpC*X#uk-HmmYtw`NQXXvGV_?Of$Kto_0Ak zXa4pDm-{cgb${_K`On?T{`K>IR^NQL`?Kc0-!BhoZa(+(`}xhg-@U*2+PrV?>r=5Ri(3Y?NYrfKPn!&diAPqB}3Zzv&%OvDCM*%;SFJ0uX$;EXQ*aQEYnS?2r<YCf)uq!63p)NV`#Gt+zrjbGHc7_TL8%Ce+H`uxiw4UE=iQPx0yu zpbNe>&R%kMv6RQ9T`beqHolLy+k2J0?&s(COa0oX`aO7YGP-Bpp4ccmk@x48SKqx? zaUwNCpHs%Rvisir`1i@d*_GvXcV8aKzA5$NdjJ2k({}&e@#XogXx=qioxlC=C{142 zZdj;Rmv6e^70Wv><>!Y=CzkVgsTahB$sT=KlW=%Nt$f6{_<5<>3f^ypBfbXCSo)1q z$NQ$#i~GN~UOAII@s|3AcU$xtS2gl3HsrkXHDis`4TG%t2acNLdQZ;+X=ggU2q+Xa z-Qntiwu`%1R)Ac`+-n3qS4NL<*ZE|}0pK9mY{o4`x$gJ|Rit7xOj>|le z(+(EOL_Ag~i2afGRWxg@=CfT7LrZ>}@85hEq-?RqF^w+4W17n{t%P4lHy==YQ7LA- z{+3_v<7?kbrKkAS|6Km*w#qxD_m@o$6-YfUo}=Iutdhxg-Qq*fLC;4@XFt6PS$br# z*`?Pi?~HQX1A88t99y2*lPIF-lgGlg&T-PS*OKbuQCAD>e)*&XCLLVH>^4J%Z{LAZ?caRv)*U(7p=Mt@_hn!B{ASJh;@-`7*rUX2?emwc zo-ZMAZtz`{&f^q)cxSFVdQ&MBb@0H9P*i)oJdk zCz?#8S6#B&Bz&E>`;=PY=j7*SZ%qDRH%T>m+wsNj_s`TAPm6t39u<6ExBL05N4uB3 zIQHU4NY>u8njFi<8-5Dgik0uL-6u0Q#Ay1@FHcuj{J(vB_0sEeYyN~pg@;*wzFeFZ zHqYx;v%c(A%?E>EY+Oy4O zhP7XJP-Ecd)n8{7|F)XsdP`@gdxDYf&2L{LJtwbPqx9V_U^~Z~@~F#o%T4cosawjF zy*EuKr_4TEQtRWL-EKQp9{FD<@-3#=FDY!|E$)!H?7!AYdf!oz+UlSDNns~jg0=a| z_gC$hK1-FD#d=(fTktMJKj8b$4|`RFPIg}U@aAr~M&Z@o*5(sOFNA&C(B5yW`c$m* zn{Pz9nA-z8w=S(ytA6jPU9R(K{rPSs{Zl8l`%Ysi4Ufn=b^DXF)osuJ^Ae{=NM_xx zI-B`+rHx?UAp;Q(r$&XH`srV-*S>tPX5)uBPgy=aI{bX@tXEI<3JR`GIQ%?((v%F# z#vki6n>BrrenUurhj5>Yo69F9wTElx?4I}M$Kz8wU!PRjqq}It4S4x zTi!4A-oJO_pCa3x^H_q`-V& z?ukr`(`M(KQ&O6i=&?8HRN!K@uU(qc5=BBze_fMvXjPiPNjrVZ4K|xrD=9r{7v0FC zYqq20*^v% SU^6hgFnGH9xvX Date: Sun, 18 Jun 2023 14:30:51 -0700 Subject: [PATCH 133/432] Moved book lores to NBT, so much better --- .../com/hbm/inventory/gui/GUIBookLore.java | 35 ++++++++++---- .../com/hbm/items/special/ItemBookLore.java | 43 ++++++++++++++---- .../java/com/hbm/items/tool/ItemWandD.java | 23 +++++++++- .../assets/hbm/textures/items/book_cover.png | Bin 244 -> 244 bytes 4 files changed, 83 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/hbm/inventory/gui/GUIBookLore.java b/src/main/java/com/hbm/inventory/gui/GUIBookLore.java index 223f49130..ed9779e8c 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIBookLore.java +++ b/src/main/java/com/hbm/inventory/gui/GUIBookLore.java @@ -27,7 +27,7 @@ public class GUIBookLore extends GuiScreen { protected static int sizeX = 272; protected static int sizeY = 182; - protected BookLoreType type; + protected String key; protected NBTTagCompound tag; //judgement @@ -39,19 +39,19 @@ public class GUIBookLore extends GuiScreen { public GUIBookLore(EntityPlayer player) { ItemStack stack = player.getHeldItem(); if(!stack.hasTagCompound()) return; - this.type = BookLoreType.getTypeFromStack(stack); - - if(type == null) return; this.tag = stack.getTagCompound(); + this.key = tag.getString("k"); + if(key.isEmpty()) return; + this.color = tag.getInteger("cov_col"); if(color <= 0) color = 0x303030; - this.maxPage = (int)Math.ceil(type.pages / 2D) - 1; + this.maxPage = (int)Math.ceil(tag.getInteger("p") / 2D) - 1; } @Override public void initGui() { - if(type == null) this.mc.thePlayer.closeScreen(); + if(key == null || key.isEmpty()) this.mc.thePlayer.closeScreen(); this.guiLeft = (this.width - this.sizeX) / 2; this.guiTop = (this.height - this.sizeY) / 2; } @@ -93,13 +93,30 @@ public class GUIBookLore extends GuiScreen { } protected void drawGuiContainerForegroundLayer(int x, int y) { - String key = "book_lore." + type.keyI18n + ".page."; + String k = "book_lore." + key + ".page."; for(int i = 0; i < 2; i++) { int defacto = this.page * 2 + i; //TODO: force i18n to index from 0 instead of 1 - if(defacto < this.type.pages) { - String text = I18nUtil.resolveKey(key + defacto); //TODO tag-based argument formatting + if(defacto < tag.getInteger("p")) { + String text; + NBTTagCompound argTag = tag.getCompoundTag("p" + defacto); + + if(argTag.hasNoTags()) + text = I18nUtil.resolveKey(k + defacto); + else { + List args = new ArrayList(); + int index = 1; + String arg = argTag.getString("a1"); + + while(!arg.isEmpty()) { + args.add(arg); + index++; + arg = argTag.getString("a" + index); + } + + text = I18nUtil.resolveKey(k + defacto, args.toArray()); + } float scale = 1; int width = 100; diff --git a/src/main/java/com/hbm/items/special/ItemBookLore.java b/src/main/java/com/hbm/items/special/ItemBookLore.java index 805b5c7c1..dfdf39c70 100644 --- a/src/main/java/com/hbm/items/special/ItemBookLore.java +++ b/src/main/java/com/hbm/items/special/ItemBookLore.java @@ -2,7 +2,10 @@ package com.hbm.items.special; import java.util.List; +import org.apache.commons.lang3.math.NumberUtils; + import com.hbm.inventory.gui.GUIBookLore; +import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.tileentity.IGUIProvider; @@ -41,20 +44,22 @@ public class ItemBookLore extends Item implements IGUIProvider { @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { - BookLoreType type = BookLoreType.getTypeFromStack(stack); + if(!stack.hasTagCompound()) return; + String key = stack.stackTagCompound.getString("k"); + if(key.isEmpty()) return; - if(type.hasAuthor) { - String unloc = I18nUtil.resolveKey("book_lore.author", I18nUtil.resolveKey("book_lore." + type.keyI18n + ".author")); - - list.add(unloc); - } + key = "book_lore." + key + ".author"; + String loc = I18nUtil.resolveKey(key); + + list.add(I18nUtil.resolveKey("book_lore.author", loc)); } @Override public String getUnlocalizedName(ItemStack stack) { - BookLoreType type = BookLoreType.getTypeFromStack(stack); + if(!stack.hasTagCompound()) return "book_lore.test"; + String key = stack.stackTagCompound.getString("k"); - return "book_lore." + type.keyI18n; + return "book_lore." + (key.isEmpty() ? "test" : key); } //Textures @@ -116,6 +121,28 @@ public class ItemBookLore extends Item implements IGUIProvider { return new GUIBookLore(player); } + public static ItemStack createBook(String key, int pages, int colorCov, int colorTit) { + ItemStack book = new ItemStack(ModItems.book_lore); + NBTTagCompound tag = new NBTTagCompound(); + tag.setString("k", key); + tag.setShort("p", (short)pages); + tag.setInteger("cov_col", colorCov); + tag.setInteger("tit_col", colorTit); + + book.stackTagCompound = tag; + return book; + } + + public static void addArgs(ItemStack book, int page, String... args) { + if(!book.hasTagCompound()) return; + NBTTagCompound data = new NBTTagCompound(); + for(int i = 0; i < args.length; i++) { + data.setString("a" + (i + 1), args[i]); + } + + book.stackTagCompound.setTag("p" + page, data); + } + //TODO remove this and fix any references public enum BookLoreType { TEST(true, "test", 5), BOOK_IODINE(true, "book_iodine", 3) { diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index 4c80ccab4..7c5d8b9bd 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -2,8 +2,11 @@ package com.hbm.items.tool; import java.util.List; +import com.hbm.crafting.handlers.MKUCraftingHandler; import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.pollution.PollutionHandler.PollutionType; +import com.hbm.items.ModItems; +import com.hbm.items.special.ItemBookLore; import com.hbm.lib.Library; import net.minecraft.entity.player.EntityPlayer; @@ -32,7 +35,25 @@ public class ItemWandD extends Item { vnt.setSFX(new ExplosionEffectStandard()); vnt.explode();*/ - PollutionHandler.incrementPollution(world, pos.blockX, pos.blockY, pos.blockZ, PollutionType.SOOT, 15); + MKUCraftingHandler.generateRecipe(world); + ItemStack[] recipe = MKUCraftingHandler.MKURecipe; + + if(recipe == null) //take no chances + return stack; + + int r = 0; + for(int i = 0; i < 9; i++) { + if(recipe[i] != null && recipe[i].getItem() == ModItems.powder_iodine) { + r = i + 1; + } + } + + ItemStack book = ItemBookLore.createBook("book_iodine", 3, 0x4C407A, 0xFFF7C1); + ItemBookLore.addArgs(book, 2, String.valueOf(r)); + player.inventory.addItemStackToInventory(book); + player.inventoryContainer.detectAndSendChanges(); + + //PollutionHandler.incrementPollution(world, pos.blockX, pos.blockY, pos.blockZ, PollutionType.SOOT, 15); /*TimeAnalyzer.startCount("setBlock"); world.setBlock(pos.blockX, pos.blockY, pos.blockZ, Blocks.dirt); diff --git a/src/main/resources/assets/hbm/textures/items/book_cover.png b/src/main/resources/assets/hbm/textures/items/book_cover.png index c073dfceda017919d8407bdab6cc2cfb8d2ceb6b..81dfcd45d21ee5b3d2185e0baa06b572c110a9e4 100644 GIT binary patch delta 32 ocmeyu_=RzTn^;dz&;S4bZ``=Cbm`L4(ozNnh7g&g#ECI803U1+1^@s6 delta 32 qcmV+*0N?-g0rUZoMi#%nzyJUL?d|Q+(b2H5umAu6n47vBkzANZv=Zq6 From 9183ea7d32abc528249b27344e4ccd18338aed6c Mon Sep 17 00:00:00 2001 From: Vaern Date: Sun, 18 Jun 2023 21:58:17 -0700 Subject: [PATCH 134/432] Transfer of item book lores to updated system --- .../com/hbm/items/special/ItemBookLore.java | 12 ++-- .../java/com/hbm/items/tool/ItemWandD.java | 23 ------- .../java/com/hbm/lib/HbmChestContents.java | 40 +++++++---- .../world/gen/component/CivilianFeatures.java | 3 +- .../hbm/world/gen/component/Component.java | 19 +++--- .../world/gen/component/OfficeFeatures.java | 16 +++-- .../generator/room/TestDungeonRoom8.java | 66 +++++++++---------- src/main/resources/assets/hbm/lang/en_US.lang | 4 +- 8 files changed, 84 insertions(+), 99 deletions(-) diff --git a/src/main/java/com/hbm/items/special/ItemBookLore.java b/src/main/java/com/hbm/items/special/ItemBookLore.java index dfdf39c70..ce2564fa3 100644 --- a/src/main/java/com/hbm/items/special/ItemBookLore.java +++ b/src/main/java/com/hbm/items/special/ItemBookLore.java @@ -45,13 +45,13 @@ public class ItemBookLore extends Item implements IGUIProvider { @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { if(!stack.hasTagCompound()) return; - String key = stack.stackTagCompound.getString("k"); + String key = stack.stackTagCompound.getString("k"); if(key.isEmpty()) return; key = "book_lore." + key + ".author"; String loc = I18nUtil.resolveKey(key); - - list.add(I18nUtil.resolveKey("book_lore.author", loc)); + if(!loc.equals(key)) + list.add(I18nUtil.resolveKey("book_lore.author", loc)); } @Override @@ -143,7 +143,7 @@ public class ItemBookLore extends Item implements IGUIProvider { book.stackTagCompound.setTag("p" + page, data); } //TODO remove this and fix any references - public enum BookLoreType { + /*public enum BookLoreType { TEST(true, "test", 5), BOOK_IODINE(true, "book_iodine", 3) { public String resolveKey(String key, NBTTagCompound tag) { @@ -192,7 +192,7 @@ public class ItemBookLore extends Item implements IGUIProvider { } /** Function to resolve I18n keys using potential save-dependent information, a la format specifiers. */ - public String resolveKey(String key, NBTTagCompound tag) { + /*public String resolveKey(String key, NBTTagCompound tag) { return I18nUtil.resolveKey(key, tag); } @@ -220,5 +220,5 @@ public class ItemBookLore extends Item implements IGUIProvider { return stack; } - } + }*/ } diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index 7c5d8b9bd..3864a35de 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -2,11 +2,6 @@ package com.hbm.items.tool; import java.util.List; -import com.hbm.crafting.handlers.MKUCraftingHandler; -import com.hbm.handler.pollution.PollutionHandler; -import com.hbm.handler.pollution.PollutionHandler.PollutionType; -import com.hbm.items.ModItems; -import com.hbm.items.special.ItemBookLore; import com.hbm.lib.Library; import net.minecraft.entity.player.EntityPlayer; @@ -35,24 +30,6 @@ public class ItemWandD extends Item { vnt.setSFX(new ExplosionEffectStandard()); vnt.explode();*/ - MKUCraftingHandler.generateRecipe(world); - ItemStack[] recipe = MKUCraftingHandler.MKURecipe; - - if(recipe == null) //take no chances - return stack; - - int r = 0; - for(int i = 0; i < 9; i++) { - if(recipe[i] != null && recipe[i].getItem() == ModItems.powder_iodine) { - r = i + 1; - } - } - - ItemStack book = ItemBookLore.createBook("book_iodine", 3, 0x4C407A, 0xFFF7C1); - ItemBookLore.addArgs(book, 2, String.valueOf(r)); - player.inventory.addItemStackToInventory(book); - player.inventoryContainer.detectAndSendChanges(); - //PollutionHandler.incrementPollution(world, pos.blockX, pos.blockY, pos.blockZ, PollutionType.SOOT, 15); /*TimeAnalyzer.startCount("setBlock"); diff --git a/src/main/java/com/hbm/lib/HbmChestContents.java b/src/main/java/com/hbm/lib/HbmChestContents.java index 3cdf8a771..7dc26a319 100644 --- a/src/main/java/com/hbm/lib/HbmChestContents.java +++ b/src/main/java/com/hbm/lib/HbmChestContents.java @@ -1,17 +1,20 @@ package com.hbm.lib; +import java.util.Random; + import com.hbm.blocks.ModBlocks; import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ItemAmmoEnums.Ammo357Magnum; import com.hbm.items.ItemAmmoEnums.AmmoFatman; import com.hbm.items.ModItems; -import com.hbm.items.machine.ItemBreedingRod.*; +import com.hbm.items.machine.ItemBreedingRod.BreedingRodType; import com.hbm.items.machine.ItemZirnoxRod.EnumZirnoxType; -import com.hbm.items.special.ItemBookLore.BookLoreType; +import com.hbm.items.special.ItemBookLore; import com.hbm.items.tool.ItemBlowtorch; import net.minecraft.init.Items; import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; import net.minecraft.util.WeightedRandomChestContent; public class HbmChestContents { @@ -407,15 +410,26 @@ public class HbmChestContents { new WeightedRandomChestContent(Items.experience_bottle, 0, 1, 3, 1), }; - /** ITEMBOOKLORE ARRAYS */ - //might make a wrapper class for this, if game-state knowledge using the nbt system becomes that relevant - public final static BookLoreType[] books_office_sch = new BookLoreType[] { - BookLoreType.RESIGNATION_NOTE, - BookLoreType.MEMO_STOCKS, - BookLoreType.MEMO_SCHRAB_GSA, - BookLoreType.MEMO_SCHRAB_RD, - BookLoreType.MEMO_SCHRAB_NUKE, - }; - - + /** ITEMBOOKLORE SHIT */ + //one downside of all this huge flexibility, make a wrapper if it's too annoying + public static ItemStack generateOfficeBook(Random rand) { //TODO rework this lore in general + String key; + int pages; + switch(rand.nextInt(5)) { + case 0: + key = "resignation_note"; pages = 3; break; + case 1: + key = "memo_stocks"; pages = 1; break; + case 2: + key = "memo_schrab_gsa"; pages = 2; break; + case 3: + key = "memo_schrab_rd"; pages = 4; break; + case 4: + key = "memo_schrab_nuke"; pages = 3; break; + default: + return null; + } + + return ItemBookLore.createBook(key, pages, 0x6BC8FF, 0x0A0A0A); + } } diff --git a/src/main/java/com/hbm/world/gen/component/CivilianFeatures.java b/src/main/java/com/hbm/world/gen/component/CivilianFeatures.java index 60190d1c0..26d7faaba 100644 --- a/src/main/java/com/hbm/world/gen/component/CivilianFeatures.java +++ b/src/main/java/com/hbm/world/gen/component/CivilianFeatures.java @@ -568,7 +568,8 @@ public class CivilianFeatures { this.fillWithBlocks(world, box, sizeX - 4, 3, sizeZ - 2, sizeX - 2, 3, sizeZ - 2, ModBlocks.steel_roof, Blocks.air, false); if(!hasPlacedLoot[1]) { this.hasPlacedLoot[1] = this.generateInvContents(world, box, rand, ModBlocks.crate_iron, sizeX - 2, 1, 3, HbmChestContents.nukeTrash, 9); - generateLoreBook(world, box, rand, sizeX - 2, 1, 3, 1, HbmChestContents.books_office_sch); + if(rand.nextInt(2) == 0) + generateLoreBook(world, box, sizeX - 2, 1, 3, 1, HbmChestContents.generateOfficeBook(rand)); } return true; diff --git a/src/main/java/com/hbm/world/gen/component/Component.java b/src/main/java/com/hbm/world/gen/component/Component.java index 9757ab534..8ffa1292e 100644 --- a/src/main/java/com/hbm/world/gen/component/Component.java +++ b/src/main/java/com/hbm/world/gen/component/Component.java @@ -8,9 +8,8 @@ import com.hbm.blocks.generic.BlockBobble.BobbleType; import com.hbm.blocks.generic.BlockBobble.TileEntityBobble; import com.hbm.config.StructureConfig; import com.hbm.handler.MultiblockHandlerXR; -import com.hbm.items.ModItems; -import com.hbm.items.special.ItemBookLore.BookLoreType; import com.hbm.tileentity.machine.TileEntityLockableBase; + import net.minecraft.block.Block; import net.minecraft.block.BlockWeb; import net.minecraft.block.material.Material; @@ -267,7 +266,7 @@ abstract public class Component extends StructureComponent { case 2: //North dirMeta ^= 2; break; //Flip second bit case 3: //East - dirMeta = Math.abs(dirMeta - 1) % 4; break; //fuck you modulo + dirMeta = (dirMeta + 3) % 4; break; //fuck you modulo } //hee hoo @@ -383,7 +382,7 @@ abstract public class Component extends StructureComponent { int posY = this.getYWithOffset(featureY); int posZ = this.getZWithOffset(featureX, featureZ); - if(world.getBlock(posX, posY, posZ) == block) //replacement for hasPlacedLoot checks + if(!box.isVecInside(posX, posY, posZ) || world.getBlock(posX, posY, posZ) == block) //replacement for hasPlacedLoot checks return true; this.placeBlockAtCurrentPosition(world, block, meta, featureX, featureY, featureZ, box); @@ -414,7 +413,7 @@ abstract public class Component extends StructureComponent { int posY = this.getYWithOffset(featureY); int posZ = this.getZWithOffset(featureX, featureZ); - if(world.getBlock(posX, posY, posZ) == block) //replacement for hasPlacedLoot checks + if(!box.isVecInside(posX, posY, posZ) || world.getBlock(posX, posY, posZ) == block) //replacement for hasPlacedLoot checks return false; this.placeBlockAtCurrentPosition(world, block, meta, featureX, featureY, featureZ, box); @@ -435,19 +434,17 @@ abstract public class Component extends StructureComponent { return false; } - protected void generateLoreBook(World world, StructureBoundingBox box, Random rand, int featureX, int featureY, int featureZ, int slot, BookLoreType[] books) { + protected void generateLoreBook(World world, StructureBoundingBox box, int featureX, int featureY, int featureZ, int slot, ItemStack stack) { //kept for compat int posX = this.getXWithOffset(featureX, featureZ); int posY = this.getYWithOffset(featureY); int posZ = this.getZWithOffset(featureX, featureZ); + if(!box.isVecInside(posX, posY, posZ)) return; + IInventory inventory = (IInventory) world.getTileEntity(posX, posY, posZ); if(inventory != null) { - ItemStack book = new ItemStack(ModItems.book_lore); - int i = rand.nextInt(books.length); - - BookLoreType.setTypeForStack(book, books[i]); - inventory.setInventorySlotContents(slot, book); + inventory.setInventorySlotContents(slot, stack); } } diff --git a/src/main/java/com/hbm/world/gen/component/OfficeFeatures.java b/src/main/java/com/hbm/world/gen/component/OfficeFeatures.java index 3a3549106..e4a96eabb 100644 --- a/src/main/java/com/hbm/world/gen/component/OfficeFeatures.java +++ b/src/main/java/com/hbm/world/gen/component/OfficeFeatures.java @@ -201,7 +201,7 @@ public class OfficeFeatures { randomlyFillWithBlocks(world, box, rand, 0.25F, 10, 3, 7, sizeX - 1, 3, sizeZ - 1, Blocks.web); //Doors placeDoor(world, box, ModBlocks.door_office, 3, false, rand.nextBoolean(), 2, 1, 7); - placeDoor(world, box, ModBlocks.door_office, 3, false, rand.nextBoolean(), 3, 1, 7); + placeDoor(world, box, ModBlocks.door_office, 3, true, rand.nextBoolean(), 3, 1, 7); placeDoor(world, box, ModBlocks.door_office, 0, false, rand.nextBoolean(), 5, 1, 6); //Woot @@ -209,7 +209,8 @@ public class OfficeFeatures { this.hasPlacedLoot[0] = generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), sizeX - 4, 1, sizeZ - 1, HbmChestContents.officeTrash, 8); if(!this.hasPlacedLoot[1]) { this.hasPlacedLoot[1] = generateLockableContents(world, box, rand, ModBlocks.safe, getDecoMeta(3), 6, 1, 1, HbmChestContents.machineParts, 10, 0.5D); - generateLoreBook(world, box, rand, 6, 1, 1, 7, HbmChestContents.books_office_sch); + if(rand.nextInt(2) == 0) + generateLoreBook(world, box, 6, 1, 1, 7, HbmChestContents.generateOfficeBook(rand)); } //0b00/0 West, 0b01/1 East, 0b10/2 North, 0b11/3 South, 0b100/4 West UD, 0b101 East UD, 0b110 North UD, 0b111 South UD @@ -431,12 +432,12 @@ public class OfficeFeatures { placeDoor(world, box, Blocks.wooden_door, 3, true, rand.nextBoolean(), 2, 1, 14); placeDoor(world, box, Blocks.wooden_door, 0, false, rand.nextBoolean(), 0, 1, 12); placeDoor(world, box, Blocks.wooden_door, 0, true, rand.nextBoolean(), 0, 1, 13); - placeDoor(world, box, ModBlocks.door_office, 0, false, rand.nextBoolean(), 6, 1, 3); - placeDoor(world, box, ModBlocks.door_office, 0, false, rand.nextBoolean(), 5, 5, 3); + placeDoor(world, box, ModBlocks.door_office, 3, false, rand.nextBoolean(), 6, 1, 3); + placeDoor(world, box, ModBlocks.door_office, 3, false, rand.nextBoolean(), 5, 5, 3); placeDoor(world, box, ModBlocks.door_office, 2, false, rand.nextBoolean(), 4, 5, 11); - placeDoor(world, box, ModBlocks.door_office, 0, false, rand.nextBoolean(), 10, 9, 3); + placeDoor(world, box, ModBlocks.door_office, 3, false, rand.nextBoolean(), 10, 9, 3); placeDoor(world, box, ModBlocks.door_office, 1, false, rand.nextBoolean(), 3, 9, 10); - placeDoor(world, box, ModBlocks.door_metal, 0, false, rand.nextBoolean(), 5, 13, 3); + placeDoor(world, box, ModBlocks.door_metal, 3, false, rand.nextBoolean(), 5, 13, 3); //Furniture //Floor 1 int NorthStairMeta = getStairMeta(2); @@ -533,7 +534,8 @@ public class OfficeFeatures { generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 2, 9, 5, HbmChestContents.filingCabinet, 4); generateLockableContents(world, box, rand, ModBlocks.safe, getDecoMeta(2), 1, 9, 13, HbmChestContents.officeTrash, 10, 1.0D); - generateLoreBook(world, box, rand, 1, 9, 13, 7, HbmChestContents.books_office_sch); + if(rand.nextInt(2) == 0) + generateLoreBook(world, box, 1, 9, 13, 7, HbmChestContents.generateOfficeBook(rand)); generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 2, 9, 13, HbmChestContents.filingCabinet, 4); generateInvContents(world, box, rand, ModBlocks.filing_cabinet, getDecoModelMeta(0), 3, 9, 13, HbmChestContents.filingCabinet, 4); diff --git a/src/main/java/com/hbm/world/generator/room/TestDungeonRoom8.java b/src/main/java/com/hbm/world/generator/room/TestDungeonRoom8.java index 59d68d846..3f02d6cf0 100644 --- a/src/main/java/com/hbm/world/generator/room/TestDungeonRoom8.java +++ b/src/main/java/com/hbm/world/generator/room/TestDungeonRoom8.java @@ -3,7 +3,7 @@ package com.hbm.world.generator.room; import com.hbm.blocks.ModBlocks; import com.hbm.crafting.handlers.MKUCraftingHandler; import com.hbm.items.ModItems; -import com.hbm.items.special.ItemBookLore.BookLoreType; +import com.hbm.items.special.ItemBookLore; import com.hbm.tileentity.machine.storage.TileEntitySafe; import com.hbm.world.generator.CellularDungeon; import com.hbm.world.generator.CellularDungeonRoom; @@ -53,7 +53,7 @@ public class TestDungeonRoom8 extends CellularDungeonRoom { if(r == 0) ((TileEntitySafe)world.getTileEntity(x + parent.width / 2, y + 2, z + parent.width / 2)).setInventorySlotContents(7, new ItemStack(ModItems.book_of_)); else if(r < 4) - ((TileEntitySafe)world.getTileEntity(x + parent.width / 2, y + 2, z + parent.width / 2)).setInventorySlotContents(7, generateMKU(world)); + ((TileEntitySafe)world.getTileEntity(x + parent.width / 2, y + 2, z + parent.width / 2)).setInventorySlotContents(7, generateBook(world)); else ((TileEntitySafe)world.getTileEntity(x + parent.width / 2, y + 2, z + parent.width / 2)).setInventorySlotContents(7, new ItemStack(Items.book)); } @@ -61,57 +61,51 @@ public class TestDungeonRoom8 extends CellularDungeonRoom { } } - public static ItemStack generateMKU(World world) { - ItemStack book = new ItemStack(ModItems.book_lore); - int i = world.rand.nextInt(books.length); - - BookLoreType.setTypeForStack(book, books[i]); - book.stackTagCompound.setInteger("mku_slot", getSlot(world, books[i])); - - return book; - } - - public static int getSlot(World world, BookLoreType type) { - + public static ItemStack generateBook(World world) { MKUCraftingHandler.generateRecipe(world); ItemStack[] recipe = MKUCraftingHandler.MKURecipe; + if(recipe == null) return new ItemStack(ModItems.flame_pony); + + String key; + int pages; Item item; - //fucking kill me - switch(type) { - case BOOK_DUST: - item = ModItems.dust; break; - case BOOK_FLOWER: - item = ModItems.morning_glory; break; - case BOOK_IODINE: + switch(world.rand.nextInt(6)) { + case 0: + key = "book_iodine"; pages = 3; item = ModItems.powder_iodine; break; - case BOOK_MERCURY: - item = ModItems.ingot_mercury; break; - case BOOK_PHOSPHOROUS: + case 1: + key = "book_phosphorous"; pages = 2; item = ModItems.powder_fire; break; - case BOOK_SYRINGE: + case 2: + key = "book_dust"; pages = 3; + item = ModItems.dust; break; + case 3: + key = "book_mercury"; pages = 2; + item = ModItems.ingot_mercury; break; + case 4: + key = "book_flower"; pages = 2; + item = ModItems.morning_glory; break; + case 5: + key = "book_syringe"; pages = 2; item = ModItems.syringe_metal_empty; break; default: - item = ModItems.nothing; break; + return new ItemStack(ModItems.flame_pony); } - if(recipe == null) //take no chances - return -2; - + int s = 1; for(int i = 0; i < 9; i++) { - if(recipe[i] != null && recipe[i].getItem() == item) { - return i + 1; + s = i + 1; break; } } - return -1; + ItemStack book = ItemBookLore.createBook(key, pages, 0x271E44, 0xFBFFF4); + ItemBookLore.addArgs(book, pages - 1, String.valueOf(s)); + + return book; } - private final static BookLoreType[] books = new BookLoreType[] { - BookLoreType.BOOK_IODINE, BookLoreType.BOOK_PHOSPHOROUS, BookLoreType.BOOK_DUST, BookLoreType.BOOK_MERCURY, BookLoreType.BOOK_FLOWER, BookLoreType.BOOK_SYRINGE - }; - /*public static ItemStack genetateMKU(World world) { ItemStack book = new ItemStack(Items.written_book); diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 539596cf5..92746c9ce 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -321,8 +321,8 @@ book.starter.page18=vær is just a guy who has been trapped in the grey void fea #book.rbmk.page16=§4§lAvoid. book_lore.author=By %s -book_lore.test.name=Test -book_lore.test.author=the dude +book_lore.test.name=this book doesn't work... +book_lore.test.author=me i trolled you hehe :3c book_lore.test.page.0=>hello anons before i begin let me clarify that i'm not gay. >Be me >This night >18 > At hanging out with my best friend with my parents gone for a few days >We've been best friends for a year now >Been drinking a bit and playing lots of video games and ordered a pizza >We were having a blast >At a certain point in the night like around 9:00 he makes a really funny joke that I don't remember but I know that it made us both laugh really hard > With out thinking I brush my right hand through his semi-curly black hair and call him a funny boy >He blushes >I realize I'm feeling flustered >We're kinda close >All of the sudden he kisses me and for some reason I kiss him back >We make love >Cuddle together and fall asleep >Wake up in the middle of the night with his head snuggled up on my chest and neck area >It feels nice but I'm not a homosexual book_lore.test.page.1=I'm typing this as he's asleep in my arms. How do I let my best friend down nicely? I don't want to be a [redacted] /b/ book_lore.test.page.2=3 From f17a1280d71fe16bb8efb23275335e96b8cf392d Mon Sep 17 00:00:00 2001 From: Boblet Date: Mon, 19 Jun 2023 16:22:03 +0200 Subject: [PATCH 135/432] welded fusion reactor magnets --- src/main/java/com/hbm/blocks/ModBlocks.java | 4 +- .../blocks/generic/BlockToolConversion.java | 3 + .../generic/BlockToolConversionPillar.java | 48 +++++++++++ .../com/hbm/blocks/machine/MachineITER.java | 31 +++++--- .../hbm/handler/nei/ConstructionHandler.java | 11 +-- .../com/hbm/inventory/OreDictManager.java | 3 + .../inventory/recipes/AssemblerRecipes.java | 2 +- .../tileentity/RenderITERMultiblock.java | 75 +++++++----------- .../machine/TileEntityITERStruct.java | 3 +- src/main/resources/assets/hbm/lang/de_DE.lang | 3 + src/main/resources/assets/hbm/lang/en_US.lang | 3 + .../textures/blocks/fusion_conductor_side.png | Bin 336 -> 164 bytes .../blocks/fusion_conductor_side_alt.png | Bin 164 -> 0 bytes .../blocks/fusion_conductor_side_alt2.png | Bin 333 -> 0 bytes .../blocks/fusion_conductor_side_alt3.png | Bin 513 -> 0 bytes .../blocks/fusion_conductor_side_welded.png | Bin 0 -> 469 bytes ...r_top_alt.png => fusion_conductor_top.png} | Bin .../blocks/fusion_conductor_top_welded.png | Bin 0 -> 708 bytes 18 files changed, 118 insertions(+), 68 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/generic/BlockToolConversionPillar.java delete mode 100644 src/main/resources/assets/hbm/textures/blocks/fusion_conductor_side_alt.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/fusion_conductor_side_alt2.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/fusion_conductor_side_alt3.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/fusion_conductor_side_welded.png rename src/main/resources/assets/hbm/textures/blocks/{fusion_conductor_top_alt.png => fusion_conductor_top.png} (100%) create mode 100644 src/main/resources/assets/hbm/textures/blocks/fusion_conductor_top_welded.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index e745ad561..ea756421d 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -2016,7 +2016,7 @@ public class ModBlocks { reactor_conductor = new BlockPillar(Material.iron, RefStrings.MODID + ":reactor_conductor_top").setBlockName("reactor_conductor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":reactor_conductor_side"); reactor_computer = new ReactorCore(Material.iron).setBlockName("reactor_computer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":reactor_computer"); - fusion_conductor = new BlockPillar(Material.iron, RefStrings.MODID + ":fusion_conductor_top_alt").setBlockName("fusion_conductor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fusion_conductor_side_alt"); + fusion_conductor = new BlockToolConversionPillar(Material.iron).addVariant("_welded").setBlockName("fusion_conductor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fusion_conductor"); fusion_center = new BlockPillar(Material.iron, RefStrings.MODID + ":fusion_center_top_alt").setBlockName("fusion_center").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fusion_center_side_alt"); fusion_motor = new BlockPillar(Material.iron, RefStrings.MODID + ":fusion_motor_top_alt").setBlockName("fusion_motor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fusion_motor_side_alt"); fusion_heater = new BlockPillar(Material.iron, RefStrings.MODID + ":fusion_heater_top").setBlockName("fusion_heater").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fusion_heater_side"); @@ -3327,7 +3327,7 @@ public class ModBlocks { GameRegistry.registerBlock(reactor_conductor, reactor_conductor.getUnlocalizedName()); GameRegistry.registerBlock(reactor_computer, reactor_computer.getUnlocalizedName()); - GameRegistry.registerBlock(fusion_conductor, fusion_conductor.getUnlocalizedName()); + register(fusion_conductor); GameRegistry.registerBlock(fusion_center, fusion_center.getUnlocalizedName()); GameRegistry.registerBlock(fusion_motor, fusion_motor.getUnlocalizedName()); GameRegistry.registerBlock(fusion_heater, fusion_heater.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/generic/BlockToolConversion.java b/src/main/java/com/hbm/blocks/generic/BlockToolConversion.java index 582db2d18..a4c146f6a 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockToolConversion.java +++ b/src/main/java/com/hbm/blocks/generic/BlockToolConversion.java @@ -8,9 +8,11 @@ import java.util.Map.Entry; import com.hbm.blocks.BlockMulti; import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.OreDictManager; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.MetaBlock; +import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.items.ModItems; import com.hbm.util.I18nUtil; import com.hbm.util.InventoryUtil; @@ -150,6 +152,7 @@ public class BlockToolConversion extends BlockMulti implements IToolable, ILookO public static void registerRecipes() { conversions.put(new Pair(ToolType.BOLT, new MetaBlock(ModBlocks.watz_end, 0)), new Pair(new AStack[] {new ComparableStack(ModItems.bolt_dura_steel, 4)}, new MetaBlock(ModBlocks.watz_end, 1))); + conversions.put(new Pair(ToolType.TORCH, new MetaBlock(ModBlocks.fusion_conductor, 0)), new Pair(new AStack[] {new OreDictStack(OreDictManager.STEEL.plateCast())}, new MetaBlock(ModBlocks.fusion_conductor, 1))); } public static HashMap bufferedRecipes = new HashMap(); diff --git a/src/main/java/com/hbm/blocks/generic/BlockToolConversionPillar.java b/src/main/java/com/hbm/blocks/generic/BlockToolConversionPillar.java new file mode 100644 index 000000000..630437faa --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockToolConversionPillar.java @@ -0,0 +1,48 @@ +package com.hbm.blocks.generic; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.util.IIcon; + +public class BlockToolConversionPillar extends BlockToolConversion { + + public IIcon[] topIcons; + public IIcon topIcon; + + public BlockToolConversionPillar(Material mat) { + super(mat); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + + this.blockIcon = iconRegister.registerIcon(this.getTextureName() + "_side"); + this.topIcon = iconRegister.registerIcon(this.getTextureName() + "_top"); + + if(names != null) { + icons = new IIcon[names.length]; + topIcons = new IIcon[names.length]; + + for(int i = 0; i < names.length; i++) { + icons[i] = iconRegister.registerIcon(getTextureName() + "_side" + names[i]); + topIcons[i] = iconRegister.registerIcon(getTextureName() + "_top" + names[i]); + } + } + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + + metadata -= 1; + + if(metadata == -1 || icons == null || metadata >= icons.length) { + return side == 0 || side == 1 ? topIcon : blockIcon; + } + + return side == 0 || side == 1 ? topIcons[metadata] : icons[metadata]; + } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachineITER.java b/src/main/java/com/hbm/blocks/machine/MachineITER.java index 98b8f30e3..f049e058f 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineITER.java +++ b/src/main/java/com/hbm/blocks/machine/MachineITER.java @@ -4,6 +4,8 @@ import java.util.Random; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.material.Mats; +import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityITER; @@ -241,20 +243,23 @@ public class MachineITER extends BlockDummyable { @Override public void breakBlock(World world, int x, int y, int z, Block block, int i) { - - if(i >= 12 && drop) { - - for(int l = 0; l < 4; l++) - world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.fusion_conductor, 64))); - - world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.fusion_conductor, 36))); - world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.fusion_center, 64))); - world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.fusion_motor, 4))); - world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.reinforced_glass, 8))); - world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.struct_iter_core, 1))); - } + + if(i >= 12 && drop) { + + for(int l = 0; l < 4; l++) { + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.fusion_conductor, 64))); + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModItems.plate_cast, 64, Mats.MAT_STEEL.id))); + } + + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.fusion_conductor, 36))); + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModItems.plate_cast, 36, Mats.MAT_STEEL.id))); + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.fusion_center, 64))); + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.fusion_motor, 4))); + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.reinforced_glass, 8))); + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.struct_iter_core, 1))); + } super.breakBlock(world, x, y, z, block, i); - } + } } diff --git a/src/main/java/com/hbm/handler/nei/ConstructionHandler.java b/src/main/java/com/hbm/handler/nei/ConstructionHandler.java index 240ad58af..557a71163 100644 --- a/src/main/java/com/hbm/handler/nei/ConstructionHandler.java +++ b/src/main/java/com/hbm/handler/nei/ConstructionHandler.java @@ -3,6 +3,7 @@ package com.hbm.handler.nei; import java.util.HashMap; import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.material.Mats; import com.hbm.items.ModItems; import com.hbm.util.ItemStackUtil; @@ -45,13 +46,13 @@ public class ConstructionHandler extends NEIUniversalHandler { /* ITER */ ItemStack[] iter = new ItemStack[] { new ItemStack(ModBlocks.fusion_conductor, 36), - new ItemStack(ModBlocks.fusion_conductor, 64), - new ItemStack(ModBlocks.fusion_conductor, 64), - new ItemStack(ModBlocks.fusion_conductor, 64), - new ItemStack(ModBlocks.fusion_conductor, 64), + ItemStackUtil.addTooltipToStack(new ItemStack(ModBlocks.fusion_conductor, 320), EnumChatFormatting.RED + "5x64"), + new ItemStack(ModItems.plate_cast, 36, Mats.MAT_STEEL.id), + ItemStackUtil.addTooltipToStack(new ItemStack(ModItems.plate_cast, 320, Mats.MAT_STEEL.id), EnumChatFormatting.RED + "5x64"), new ItemStack(ModBlocks.fusion_center, 64), new ItemStack(ModBlocks.fusion_motor, 4), - new ItemStack(ModBlocks.reinforced_glass, 8)}; + new ItemStack(ModBlocks.reinforced_glass, 8), + new ItemStack(ModItems.blowtorch)}; bufferedRecipes.put(iter, new ItemStack(ModBlocks.iter)); bufferedTools.put(iter, new ItemStack(ModBlocks.struct_iter_core)); diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index c6d7d5e5a..69e41bd65 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -92,6 +92,7 @@ public class OreDictManager { public static final String KEY_TOOL_SCREWDRIVER = "ntmscrewdriver"; public static final String KEY_TOOL_HANDDRILL = "ntmhanddrill"; public static final String KEY_TOOL_CHEMISTRYSET = "ntmchemistryset"; + public static final String KEY_TOOL_TORCH = "ntmtorch"; public static final String KEY_CIRCUIT_BISMUTH = "circuitVersatile"; @@ -482,6 +483,8 @@ public class OreDictManager { OreDictionary.registerOre(KEY_TOOL_HANDDRILL, new ItemStack(hand_drill_desh, 1, OreDictionary.WILDCARD_VALUE)); OreDictionary.registerOre(KEY_TOOL_CHEMISTRYSET, new ItemStack(chemistry_set, 1, OreDictionary.WILDCARD_VALUE)); OreDictionary.registerOre(KEY_TOOL_CHEMISTRYSET, new ItemStack(chemistry_set_boron, 1, OreDictionary.WILDCARD_VALUE)); + OreDictionary.registerOre(KEY_TOOL_TORCH, new ItemStack(blowtorch, 1, OreDictionary.WILDCARD_VALUE)); + OreDictionary.registerOre(KEY_TOOL_TORCH, new ItemStack(acetylene_torch, 1, OreDictionary.WILDCARD_VALUE)); /* * CIRCUITS diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 818f2b000..38ae7cf5b 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -293,7 +293,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.machine_turbinegas, 1), new AStack[] {new ComparableStack(ModItems.hull_big_steel, 4), new ComparableStack(ModItems.hull_small_steel, 6), new ComparableStack(ModItems.generator_steel, 2), new ComparableStack(ModItems.bolt_compound, 4), new ComparableStack(ModBlocks.steel_scaffold, 8), new ComparableStack(ModBlocks.deco_pipe_quad, 4), new ComparableStack(ModItems.turbine_tungsten, 3), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.ingot_rubber, 4), new ComparableStack(ModItems.circuit_red_copper, 3)}, 600); makeRecipe(new ComparableStack(ModBlocks.machine_teleporter, 1), new AStack[] {new OreDictStack(TI.ingot(), 8), new OreDictStack(ALLOY.plate528(), 12), new ComparableStack(ModItems.wire_gold, 32), new ComparableStack(ModItems.entanglement_kit, 1), new ComparableStack(ModBlocks.machine_battery, 1) },300); makeRecipe(new ComparableStack(ModBlocks.machine_schrabidium_transmutator, 1), new AStack[] {new OreDictStack(MAGTUNG.ingot(), 1), new OreDictStack(TI.ingot(), 24), new OreDictStack(ALLOY.plate(), 18), new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModItems.plate_desh, 6), new OreDictStack(RUBBER.ingot(), 8), new ComparableStack(ModBlocks.machine_battery, 5), new ComparableStack(ModItems.circuit_gold, 5), },500); - makeRecipe(new ComparableStack(ModBlocks.fusion_conductor, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new ComparableStack(ModItems.coil_advanced_alloy, 5), },150); + makeRecipe(new ComparableStack(ModBlocks.fusion_conductor, 1), new AStack[] {new ComparableStack(ModItems.coil_advanced_alloy, 5), }, 100); makeRecipe(new ComparableStack(ModBlocks.fusion_center, 1), new AStack[] {new OreDictStack(ANY_HARDPLASTIC.ingot(), 4), new OreDictStack(STEEL.plate528(), 6), new ComparableStack(ModItems.wire_advanced_alloy, 24), },200); makeRecipe(new ComparableStack(ModBlocks.fusion_motor, 1), new AStack[] {new OreDictStack(TI.ingot(), 4), new OreDictStack(STEEL.ingot(), 2), new ComparableStack(ModItems.motor, 4), },250); makeRecipe(new ComparableStack(ModBlocks.fusion_heater, 1), new AStack[] {new OreDictStack(W.ingot(), 4), new OreDictStack(STEEL.plate528(), 2), new OreDictStack(OreDictManager.getReflector(), 2), new OreDictStack(CU.plate(), 4), new ComparableStack(ModItems.magnetron, 1), new ComparableStack(ModItems.wire_advanced_alloy, 4), },150); diff --git a/src/main/java/com/hbm/render/tileentity/RenderITERMultiblock.java b/src/main/java/com/hbm/render/tileentity/RenderITERMultiblock.java index 225cddd2c..c4cad00da 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderITERMultiblock.java +++ b/src/main/java/com/hbm/render/tileentity/RenderITERMultiblock.java @@ -3,14 +3,12 @@ package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; import com.hbm.blocks.ModBlocks; -import com.hbm.render.util.IconUtil; import com.hbm.render.util.SmallBlockPronter; import com.hbm.tileentity.machine.TileEntityITERStruct; -import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; public class RenderITERMultiblock extends TileEntitySpecialRenderer { @@ -19,50 +17,35 @@ public class RenderITERMultiblock extends TileEntitySpecialRenderer { GL11.glPushMatrix(); - GL11.glTranslatef((float)x, (float)y, (float)z); + GL11.glTranslated(x, y, z); + + bindTexture(TextureMap.locationBlocksTexture); + SmallBlockPronter.startDrawing(); + + int[][][] layout = TileEntityITERStruct.layout; + + for(int iy = -2; iy <= 2; iy++) { + int iny = 2 - Math.abs(iy); + + for(int ix = 0; ix < layout[0].length; ix++) { + for(int iz = 0; iz < layout[0][0].length; iz++) { + + int block = layout[iny][ix][iz]; + + switch(block) { + case 0: + continue; + case 1: SmallBlockPronter.drawSmolBlockAt(ModBlocks.fusion_conductor, 1, ix - 7F, iy + 2, iz - 7F); break; + case 2: SmallBlockPronter.drawSmolBlockAt(ModBlocks.fusion_center, 0, ix - 7F, iy + 2, iz - 7F); break; + case 3: SmallBlockPronter.drawSmolBlockAt(ModBlocks.fusion_motor, 0, ix - 7F, iy + 2, iz - 7F); break; + case 4: SmallBlockPronter.drawSmolBlockAt(ModBlocks.reinforced_glass, 0, ix - 7F, iy + 2, iz - 7F); break; + } + } + } + } + + SmallBlockPronter.draw(); - GL11.glEnable(GL11.GL_BLEND); - GL11.glEnable(GL11.GL_CULL_FACE); - OpenGlHelper.glBlendFunc(770, 771, 1, 0); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 0.75F); - GL11.glDisable(GL11.GL_ALPHA_TEST); - GL11.glDepthMask(false); - - ResourceLocation magnet = IconUtil.getTextureFromBlockAndSide(ModBlocks.fusion_conductor, 2); - ResourceLocation solenoid = IconUtil.getTextureFromBlockAndSide(ModBlocks.fusion_center, 2); - ResourceLocation motor = IconUtil.getTextureFromBlock(ModBlocks.fusion_motor); - ResourceLocation glass = IconUtil.getTextureFromBlock(ModBlocks.reinforced_glass); - - int[][][] layout = TileEntityITERStruct.layout; - - for(int iy = -2; iy <= 2; iy ++) { - - int iny = 2 - Math.abs(iy); - - for(int ix = 0; ix < layout[0].length; ix++) { - - for(int iz = 0; iz < layout[0][0].length; iz++) { - - int block = layout[iny][ix][iz]; - - switch(block) { - case 0: continue; - case 1: bindTexture(magnet); break; - case 2: bindTexture(solenoid); break; - case 3: bindTexture(motor); break; - case 4: bindTexture(glass); break; - } - - SmallBlockPronter.renderSmolBlockAt(ix - 6F, iy + 3, iz - 7F); - } - } - } - - GL11.glDisable(GL11.GL_BLEND); - GL11.glEnable(GL11.GL_ALPHA_TEST); - GL11.glDepthMask(true); - - GL11.glEnable(GL11.GL_LIGHTING); GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityITERStruct.java b/src/main/java/com/hbm/tileentity/machine/TileEntityITERStruct.java index 530de6de6..901cc4195 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityITERStruct.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityITERStruct.java @@ -151,9 +151,10 @@ public class TileEntityITERStruct extends TileEntity { int b = layout[ly][x][z]; Block block = worldObj.getBlock(xCoord + x - width, yCoord + y, zCoord + z - width); + int meta = worldObj.getBlockMetadata(xCoord + x - width, yCoord + y, zCoord + z - width); switch(b) { - case 1: if(block != ModBlocks.fusion_conductor) { return; } break; + case 1: if(block != ModBlocks.fusion_conductor || meta != 1) { return; } break; case 2: if(block != ModBlocks.fusion_center) { return; } break; case 3: if(block != ModBlocks.fusion_motor) { return; } break; case 4: if(block != ModBlocks.reinforced_glass) { return; } break; diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 6ea95cce7..0058e4be6 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -3808,6 +3808,7 @@ tile.furnace_steel.name=Stahlofen tile.furnace_steel.desc=Sehr großer Ofen mit Produktionsboni.$Benötigt externe Hitzequelle.$Wärmetransferrate: ΔT*0.05 TU/t$(Δ heißt Differenz, T heißt Temparatur) tile.fusion_center.name=Zentralmagnetstück tile.fusion_conductor.name=Supraleiter-Magnet +tile.fusion_conductor_welded.name=Supraleiter-Magnet (Verschweißt) tile.fusion_core.name=Fusionsreaktorsteuerung tile.fusion_hatch.name=Fusionsreaktorzugriffsluke tile.fusion_heater.name=Plasmaerhitzer-Komponente @@ -3839,6 +3840,8 @@ tile.glass_polonium.name=Poloniumglas tile.glass_quartz.name=Quarzglas tile.glass_trinitite.name=Trinity-Glas tile.glass_uranium.name=Uranglas +tile.glyphid_base.name=Glyphidnest +tile.glyphid_spawner.name=Glyphidnest-Spawner tile.gneiss_brick.name=Schieferziegel tile.gneiss_chiseled.name=Gemeißelter Schiefer tile.gneiss_tile.name=Schieferfliese diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index cec6b2cbc..9c60416ef 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -4631,6 +4631,7 @@ tile.furnace_steel.name=Steel Furnace tile.furnace_steel.desc=Very large furnace that can provide bonus items$when smelting ores. Requires external heat source.$Heat transfer rate: ΔT*0.05 TU/t$(Δ means difference and T means temperature) tile.fusion_center.name=Central Magnet Piece tile.fusion_conductor.name=Superconducting Magnet +tile.fusion_conductor_welded.name=Superconducting Magnet (Welded) tile.fusion_core.name=Fusion Reactor Control tile.fusion_hatch.name=Duct Deco Block tile.fusion_heater.name=Plasma Heater Component @@ -4662,6 +4663,8 @@ tile.glass_polonium.name=Polonium Glass tile.glass_quartz.name=Quartz Glass tile.glass_trinitite.name=Trinity Glass tile.glass_uranium.name=Uranium Glass +tile.glyphid_base.name=Glyphid Hive Block +tile.glyphid_spawner.name=Glyphid Hive Spawner tile.gneiss_brick.name=Schist Brick tile.gneiss_chiseled.name=Chiseled Schist tile.gneiss_tile.name=Schist Tile diff --git a/src/main/resources/assets/hbm/textures/blocks/fusion_conductor_side.png b/src/main/resources/assets/hbm/textures/blocks/fusion_conductor_side.png index 1db5c40d086da7ab943195e12a4fd3e6f5a66b99..82452e86d314c8ce1aac16694daa05cdcfc5848f 100644 GIT binary patch delta 147 zcmcb>w1jbjWIY=L1B3kM|A|0~rP#?cgaZg_I8r)*{Af=X#}JF&}w!{Ch@wcKn<1@OA%xo=eki y@x%+Cxi#TRLm;youY?ZJPXE73+n%2-lH&o|!{F)a=d#Wzp$PzPB|W78 delta 320 zcmV-G0l)sF0nh@F8Gix*005AYXf^-<00d`2O+f$vv5yP-@iQc1u;B;Cmw*{3Nkts-x1n1zg zEE~tM@B6On5IKrr7$}wQ!-lzhX`1TI017LpG(J!T2Kvl@`o2%qm_Yv(Qpzve!aR3w SNbq(50000ciANfSfpk8fad!aRol?rfgnLSt%Z0x00UFDakVMY8adbQ$n-=(dMS9=s`)#AI zP1489G7j#btL*+qT3Qan1pd=Q++f zPNx&9iua!5@rVy0P*oK%MnVXP2;O^QjF=hDIm`?ZNpq@-hyb7fW=7k#=|czsGwT=C%=Bxaq{fpH8W196W?F|877BPL-2?{{di(Fn-M}l%d)%+aSkvB@#rA%e_WO& zItno}M0HpoiDP`skIK<{7-?3pAH zNgTpsPTtzKWjdYmW%p{32!kND}`XAXx0-g{)RSXf=xhzRrfoa^=a;xTnym$)oT zw%aW+Myjg9>tG&Wv)QDr0c2UmD0v(rLZ0WTkd|dhmSyQ&F7<#NG$ z-|uj}UbEltfxcy%reQLfaJ$`7)iDu3Q4};yliK_*MWHxFl%rLt00000NkvXXu0mjf D86fEo diff --git a/src/main/resources/assets/hbm/textures/blocks/fusion_conductor_side_welded.png b/src/main/resources/assets/hbm/textures/blocks/fusion_conductor_side_welded.png new file mode 100644 index 0000000000000000000000000000000000000000..adbd7c637c7c81a77b96167a7329d3cbe95746c7 GIT binary patch literal 469 zcmV;`0V@89P)Aq2el-=nI85OB_+s)z`;+l@F)6CzT8loBbWLZ+%ErfI@ChjWgU5+d?Z zpsD~EnHA)mNhy(YE@8O{FdX^>$NsbL)*5DdOEh!~J2n8R< z@#BGYj4_r~&EM8@Ee`dhp`O6mUknirdo zKFR+(NcrvS9}tn1f*2zY`#sXHe&WIR52&o=U5q5(K4%#t=c?4-)qHS{SMT4myE#Kd zP*pmOoXOyb&%XJYySqD#F@z9k)P)eJs){_%nNFvi|9y!(`H~nT9T6eM$f8g>)?$o7 zRq@_amL+vv6GEUYORB0Ogg|#~HSieYY6hyxrMqU?+uI{eQ*2q5q-o02XFXK4^?bj$v7xE}e6jh6!^1!>I&FG4k{Szh^M=XlfT5m>I zEDGi6vmTSd$NXe)Mg8OE!MaCGiETc0V4#~2t q1>A=iV>mfEVLqR?#ZB1%ul7Gl4I&x}zjOTn0000 Date: Tue, 20 Jun 2023 16:07:29 +0200 Subject: [PATCH 136/432] nuclear bulkie, better pathfinding --- .../java/com/hbm/entity/EntityMappings.java | 1 + .../com/hbm/entity/mob/EntityGlyphid.java | 33 ++- .../hbm/entity/mob/EntityGlyphidNuclear.java | 100 ++++++++ src/main/java/com/hbm/main/ClientProxy.java | 1 + .../java/com/hbm/main/ResourceManager.java | 1 + .../entity/mob/RenderGlyphidNuclear.java | 236 ++++++++++++++++++ src/main/resources/assets/hbm/lang/de_DE.lang | 4 + src/main/resources/assets/hbm/lang/en_US.lang | 4 + .../hbm/textures/entity/glyphid_nuclear.png | Bin 0 -> 2027 bytes 9 files changed, 369 insertions(+), 11 deletions(-) create mode 100644 src/main/java/com/hbm/entity/mob/EntityGlyphidNuclear.java create mode 100644 src/main/java/com/hbm/render/entity/mob/RenderGlyphidNuclear.java create mode 100644 src/main/resources/assets/hbm/textures/entity/glyphid_nuclear.png diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index d231fa8b6..fd59a34b9 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -246,6 +246,7 @@ public class EntityMappings { addMob(EntityGlyphidBombardier.class, "entity_glyphid_bombardier", 0xDDD919, 0xDBB79D); addMob(EntityGlyphidBlaster.class, "entity_glyphid_blaster", 0xD83737, 0xDBB79D); addMob(EntityGlyphidScout.class, "entity_glyphid_scout", 0x273038, 0xB9E36B); + addMob(EntityGlyphidNuclear.class, "entity_glyphid_nuclear", 0x267F00, 0xA0A0A0); addSpawn(EntityCreeperPhosgene.class, 5, 1, 1, EnumCreatureType.monster, BiomeGenBase.getBiomeGenArray()); addSpawn(EntityCreeperVolatile.class, 10, 1, 1, EnumCreatureType.monster, BiomeGenBase.getBiomeGenArray()); diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java index bc570fe02..ab3e9ac51 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java @@ -9,14 +9,6 @@ import com.hbm.main.ResourceManager; import net.minecraft.entity.Entity; import net.minecraft.entity.EnumCreatureAttribute; import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.EntityAIAttackOnCollide; -import net.minecraft.entity.ai.EntityAIHurtByTarget; -import net.minecraft.entity.ai.EntityAILookIdle; -import net.minecraft.entity.ai.EntityAIMoveTowardsRestriction; -import net.minecraft.entity.ai.EntityAINearestAttackableTarget; -import net.minecraft.entity.ai.EntityAISwimming; -import net.minecraft.entity.ai.EntityAIWander; -import net.minecraft.entity.ai.EntityAIWatchClosest; import net.minecraft.entity.monster.EntityMob; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; @@ -28,14 +20,14 @@ public class EntityGlyphid extends EntityMob { public EntityGlyphid(World world) { super(world); - this.tasks.addTask(0, new EntityAISwimming(this)); + /*this.tasks.addTask(0, new EntityAISwimming(this)); this.tasks.addTask(2, new EntityAIAttackOnCollide(this, EntityPlayer.class, 1.0D, false)); this.tasks.addTask(5, new EntityAIMoveTowardsRestriction(this, 1.0D)); this.tasks.addTask(7, new EntityAIWander(this, 1.0D)); this.tasks.addTask(8, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F)); this.tasks.addTask(8, new EntityAILookIdle(this)); this.targetTasks.addTask(1, new EntityAIHurtByTarget(this, true)); - this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityPlayer.class, 0, true)); + this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityPlayer.class, 0, true));*/ this.setSize(1.75F, 1F); } @@ -64,9 +56,28 @@ public class EntityGlyphid extends EntityMob { @Override protected Entity findPlayerToAttack() { - EntityPlayer entityplayer = this.worldObj.getClosestVulnerablePlayerToEntity(this, 32.0D); + EntityPlayer entityplayer = this.worldObj.getClosestVulnerablePlayerToEntity(this, 128.0D); return entityplayer != null && this.canEntityBeSeen(entityplayer) ? entityplayer : null; } + + @Override + protected void updateEntityActionState() { + super.updateEntityActionState(); + + if(this.entityToAttack != null) { + this.setPathToEntity(this.worldObj.getPathEntityToEntity(this, this.entityToAttack, 128F, true, false, false, true)); + } + } + + @Override + protected boolean canDespawn() { + return entityToAttack == null; + } + + @Override + public int getMaxSafePointTries() { + return 10; + } @Override public boolean attackEntityFrom(DamageSource source, float amount) { diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidNuclear.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidNuclear.java new file mode 100644 index 000000000..8c6590203 --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidNuclear.java @@ -0,0 +1,100 @@ +package com.hbm.entity.mob; + +import com.hbm.blocks.ModBlocks; +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard; +import com.hbm.explosion.vanillant.standard.BlockMutatorDebris; +import com.hbm.explosion.vanillant.standard.BlockProcessorStandard; +import com.hbm.explosion.vanillant.standard.EntityProcessorStandard; +import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; +import com.hbm.main.MainRegistry; +import com.hbm.main.ResourceManager; +import com.hbm.packet.AuxParticlePacketNT; +import com.hbm.packet.PacketDispatcher; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; + +public class EntityGlyphidNuclear extends EntityGlyphid { + + public int deathTicks; + + public EntityGlyphidNuclear(World world) { + super(world); + this.setSize(2.5F, 1.75F); + this.isImmuneToFire = true; + } + + @Override + public ResourceLocation getSkin() { + return ResourceManager.glyphid_nuclear_tex; + } + + @Override + public double getScale() { + return 2D; + } + + @Override + protected void applyEntityAttributes() { + super.applyEntityAttributes(); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(20D); + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.8D); + this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(50D); + } + + @Override + public int getArmorBreakChance(float amount) { + return amount < 25 ? 100 : amount > 1000 ? 1 : 10; + } + + @Override + public float calculateDamage(float amount) { + + byte armor = this.dataWatcher.getWatchableObjectByte(17); + int divisor = 1; + + for(int i = 0; i < 5; i++) { + if((armor & (1 << i)) > 0) { + divisor += 5; + } + } + + amount /= divisor; + + return amount; + } + + @Override + public float getDamageThreshold() { + return 10F; + } + + @Override + protected void onDeathUpdate() { + ++this.deathTicks; + + if(this.deathTicks == 100) { + + ExplosionVNT vnt = new ExplosionVNT(worldObj, posX, posY, posZ, 25, this); + vnt.setBlockAllocator(new BlockAllocatorStandard(24)); + vnt.setBlockProcessor(new BlockProcessorStandard().withBlockEffect(new BlockMutatorDebris(ModBlocks.volcanic_lava_block, 0)).setNoDrop()); + vnt.setEntityProcessor(new EntityProcessorStandard().withRangeMod(1.5F)); + vnt.setPlayerProcessor(new PlayerProcessorStandard()); + vnt.explode(); + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "muke"); + // if the FX type is "muke", apply random BF effect + if(MainRegistry.polaroidID == 11 || rand.nextInt(100) == 0) { + data.setBoolean("balefire", true); + } + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY + 0.5, posZ), new TargetPoint(dimension, posX, posY, posZ, 250)); + + this.setDead(); + } + } +} diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 8f491ea8d..26133ebac 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -730,6 +730,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidBombardier.class, new RenderGlyphid()); RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidBlaster.class, new RenderGlyphid()); RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidScout.class, new RenderGlyphid()); + RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidNuclear.class, new RenderGlyphidNuclear()); //"particles" RenderingRegistry.registerEntityRenderingHandler(EntitySmokeFX.class, new MultiCloudRenderer(new Item[] { ModItems.smoke1, ModItems.smoke2, ModItems.smoke3, ModItems.smoke4, ModItems.smoke5, ModItems.smoke6, ModItems.smoke7, ModItems.smoke8 })); RenderingRegistry.registerEntityRenderingHandler(EntityBSmokeFX.class, new MultiCloudRenderer(new Item[] { ModItems.b_smoke1, ModItems.b_smoke2, ModItems.b_smoke3, ModItems.b_smoke4, ModItems.b_smoke5, ModItems.b_smoke6, ModItems.b_smoke7, ModItems.b_smoke8 })); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 1f9716a94..4820c556d 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -666,6 +666,7 @@ public class ResourceManager { public static final ResourceLocation glyphid_bombardier_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_bombardier.png"); public static final ResourceLocation glyphid_blaster_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_blaster.png"); public static final ResourceLocation glyphid_scout_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_scout.png"); + public static final ResourceLocation glyphid_nuclear_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_nuclear.png"); //ZIRNOX public static final ResourceLocation zirnox_tex = new ResourceLocation(RefStrings.MODID, "textures/models/zirnox.png"); diff --git a/src/main/java/com/hbm/render/entity/mob/RenderGlyphidNuclear.java b/src/main/java/com/hbm/render/entity/mob/RenderGlyphidNuclear.java new file mode 100644 index 000000000..5c91e44a1 --- /dev/null +++ b/src/main/java/com/hbm/render/entity/mob/RenderGlyphidNuclear.java @@ -0,0 +1,236 @@ +package com.hbm.render.entity.mob; + +import org.lwjgl.opengl.GL11; + +import com.hbm.entity.mob.EntityGlyphid; +import com.hbm.entity.mob.EntityGlyphidNuclear; +import com.hbm.main.ResourceManager; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.renderer.entity.RenderLiving; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; + +public class RenderGlyphidNuclear extends RenderLiving { + + public RenderGlyphidNuclear() { + super(new ModelGlyphid(), 1.0F); + this.shadowOpaque = 0.0F; + } + + @Override + protected ResourceLocation getEntityTexture(Entity entity) { + EntityGlyphid glyphid = (EntityGlyphid) entity; + return glyphid.getSkin(); + } + + @Override + protected void preRenderCallback(EntityLivingBase entity, float interp) { + this.preRenderCallback((EntityGlyphidNuclear) entity, interp); + } + + protected void preRenderCallback(EntityGlyphidNuclear entity, float interp) { + float swell = (float) (entity.deathTicks + interp) / 95F; + float flash = 1.0F + MathHelper.sin(swell * 100.0F) * swell * 0.01F; + + if(swell < 0.0F) { + swell = 0.0F; + } + + if(swell > 1.0F) { + swell = 1.0F; + } + + swell *= swell; + swell *= swell; + + float scaleHorizontal = (1.0F + swell * 0.4F) * flash; + float scaleVertical = (1.0F + swell * 0.1F) / flash; + GL11.glScalef(scaleHorizontal, scaleVertical, scaleHorizontal); + } + + @Override + protected int getColorMultiplier(EntityLivingBase entity, float lightBrightness, float interp) { + return this.getColorMultiplier((EntityGlyphidNuclear) entity, lightBrightness, interp); + } + + protected int getColorMultiplier(EntityGlyphidNuclear entity, float lightBrightness, float interp) { + float swell = (float) (entity.deathTicks + interp) / 20F; + + + + + int a = (int) (swell * 0.2F * 255.0F); + + if((int) (swell * 10.0F) % 4 < 2) + return a *= 0.75; + + if(a < 0) { + a = 0; + } + + if(a > 255) { + a = 255; + } + + short r = 255; + short g = 255; + short b = 255; + return a << 24 | r << 16 | g << 8 | b; + } + + public static class ModelGlyphid extends ModelBase { + + double bite = 0; + + @Override + public void setLivingAnimations(EntityLivingBase entity, float limbSwing, float limbSwingAmount, float interp) { + bite = entity.getSwingProgress(interp); + } + + @Override + public void render(Entity entity, float limbSwing, float limbSwingAmount, float rotationYaw, float rotationHeadYaw, float rotationPitch, float scale) { + GL11.glPushMatrix(); + + GL11.glRotatef(180, 1, 0, 0); + GL11.glTranslatef(0, -1.5F, 0); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + + double s = ((EntityGlyphid) entity).getScale(); + GL11.glScaled(s, s, s); + + EntityLivingBase living = (EntityLivingBase) entity; + byte armor = living.getDataWatcher().getWatchableObjectByte(17); + + double walkCycle = limbSwing; + + double speed = 100000D; + double chewing = 200000D; + double cy0 = Math.sin(walkCycle % (Math.PI * 2)); + double cy1 = Math.sin(walkCycle % (Math.PI * 2) - Math.PI * 0.5); + double cy2 = Math.sin(walkCycle % (Math.PI * 2) - Math.PI); + double cy3 = Math.sin(walkCycle % (Math.PI * 2) - Math.PI * 0.75); + + double bite = MathHelper.clamp_double(Math.sin(this.bite * Math.PI * 2 - Math.PI * 0.5), 0, 1) * 20; + double headTilt = Math.sin(this.bite * Math.PI) * 30; + + ResourceManager.glyphid.renderPart("Body"); + if((armor & (1 << 0)) > 0) ResourceManager.glyphid.renderPart("ArmorFront"); + if((armor & (1 << 1)) > 0) ResourceManager.glyphid.renderPart("ArmorLeft"); + if((armor & (1 << 2)) > 0) ResourceManager.glyphid.renderPart("ArmorRight"); + + /// LEFT ARM /// + GL11.glPushMatrix(); + GL11.glTranslated(0.25, 0.625, 0.0625); + GL11.glRotated(10, 0, 1, 0); + GL11.glRotated(35 + cy1 * 20, 1, 0, 0); + GL11.glTranslated(-0.25, -0.625, -0.0625); + ResourceManager.glyphid.renderPart("ArmLeftUpper"); + GL11.glTranslated(0.25, 0.625, 0.4375); + GL11.glRotated(-75 - cy1 * 20 + cy0 * 20, 1, 0, 0); + GL11.glTranslated(-0.25, -0.625, -0.4375); + ResourceManager.glyphid.renderPart("ArmLeftMid"); + GL11.glTranslated(0.25, 0.625, 0.9375); + GL11.glRotated(90 - cy0 * 45, 1, 0, 0); + GL11.glTranslated(-0.25, -0.625, -0.9375); + ResourceManager.glyphid.renderPart("ArmLeftLower"); + if((armor & (1 << 3)) > 0) ResourceManager.glyphid.renderPart("ArmLeftArmor"); + GL11.glPopMatrix(); + + /// RIGHT ARM /// + GL11.glPushMatrix(); + GL11.glTranslated(-0.25, 0.625, 0.0625); + GL11.glRotated(-10, 0, 1, 0); + GL11.glRotated(35 + cy2 * 20, 1, 0, 0); + GL11.glTranslated(0.25, -0.625, -0.0625); + ResourceManager.glyphid.renderPart("ArmRightUpper"); + GL11.glTranslated(-0.25, 0.625, 0.4375); + GL11.glRotated(-75 - cy2 * 20 + cy3 * 20, 1, 0, 0); + GL11.glTranslated(0.25, -0.625, -0.4375); + ResourceManager.glyphid.renderPart("ArmRightMid"); + GL11.glTranslated(-0.25, 0.625, 0.9375); + GL11.glRotated(90 - cy3 * 45, 1, 0, 0); + GL11.glTranslated(0.25, -0.625, -0.9375); + ResourceManager.glyphid.renderPart("ArmRightLower"); + if((armor & (1 << 4)) > 0) ResourceManager.glyphid.renderPart("ArmRightArmor"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + + GL11.glTranslated(0, 0.5, 0.25); + GL11.glRotated(headTilt, 0, 0, 1); + GL11.glTranslated(0, -0.5, -0.25); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.5, 0.25); + GL11.glRotated(-bite, 1, 0, 0); + GL11.glTranslated(0, -0.5, -0.25); + ResourceManager.glyphid.renderPart("JawTop"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.5, 0.25); + GL11.glRotated(bite, 0, 1, 0); + GL11.glRotated(bite, 1, 0, 0); + GL11.glTranslated(0, -0.5, -0.25); + ResourceManager.glyphid.renderPart("JawLeft"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.5, 0.25); + GL11.glRotated(-bite, 0, 1, 0); + GL11.glRotated(bite, 1, 0, 0); + GL11.glTranslated(0, -0.5, -0.25); + ResourceManager.glyphid.renderPart("JawRight"); + GL11.glPopMatrix(); + GL11.glPopMatrix(); + + double steppy = 15; + double bend = 60; + + for(int i = 0; i < 3; i++) { + + double c0 = cy0 * (i == 1 ? -1 : 1); + double c1 = cy1 * (i == 1 ? -1 : 1); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.25, 0); + GL11.glRotated(i * 30 - 15 + c0 * 7.5, 0, 1, 0); + GL11.glRotated(steppy + c1 * steppy, 0, 0, 1); + GL11.glTranslated(0, -0.25, 0); + ResourceManager.glyphid.renderPart("LegLeftUpper"); + GL11.glTranslated(0.5625, 0.25, 0); + GL11.glRotated(-bend - c1 * steppy, 0, 0, 1); + GL11.glTranslated(-0.5625, -0.25, 0); + ResourceManager.glyphid.renderPart("LegLeftLower"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 0.25, 0); + GL11.glRotated(i * 30 - 45 + c0 * 7.5, 0, 1, 0); + GL11.glRotated(-steppy + c1 * steppy, 0, 0, 1); + GL11.glTranslated(0, -0.25, 0); + ResourceManager.glyphid.renderPart("LegRightUpper"); + GL11.glTranslated(-0.5625, 0.25, 0); + GL11.glRotated(bend - c1 * steppy, 0, 0, 1); + GL11.glTranslated(0.5625, -0.25, 0); + ResourceManager.glyphid.renderPart("LegRightLower"); + GL11.glPopMatrix(); + } + + + GL11.glShadeModel(GL11.GL_SMOOTH); + GL11.glTranslated(0, 1, 0); + GL11.glRotated(90, 1, 0, 0); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.mini_nuke_tex); + ResourceManager.projectiles.renderPart("MiniNuke"); + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPopMatrix(); + } + } +} diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 0058e4be6..5e2693e41 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -507,8 +507,12 @@ entity.entity_elder_one.name=Quackos der Älteste entity.entity_fucc_a_ducc.name=Ente entity.entity_glyphid.name=Glyphid entity.entity_glyphid_behemoth.name=Glyphid-Behemoth +entity.entity_glyphid_blaster.name=Glyphid-Blaster +entity.entity_glyphid_bombardier.name=Glyphid-Bombardierer entity.entity_glyphid_brawler.name=Glyphid-Schläger entity.entity_glyphid_brenda.name=Brenda +entity.entity_glyphid_nuclear.name=Der dicke Johnson +entity.entity_glyphid_scout.name=Glyphid-Späher entity.entity_ntm_fbi.name=FBI Agent entity.entity_ntm_radiation_blaze.name=Kernschmelze-Elementar entity.hbm.entity_ntm_ufo.name=Marsianisches Invasionsschiff diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 9c60416ef..846ac5558 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -953,8 +953,12 @@ entity.entity_elder_one.name=Quackos The Elder One entity.entity_fucc_a_ducc.name=Duck entity.entity_glyphid.name=Glyphid entity.entity_glyphid_behemoth.name=Glyphid Behemoth +entity.entity_glyphid_blaster.name=Glyphid Blaster +entity.entity_glyphid_bombardier.name=Glyphid Bombardier entity.entity_glyphid_brawler.name=Glyphid Brawler entity.entity_glyphid_brenda.name=Brenda +entity.entity_glyphid_nuclear.name=Big Man Johnson +entity.entity_glyphid_scout.name=Glyphid Scout entity.entity_ntm_fbi.name=FBI Agent entity.entity_ntm_radiation_blaze.name=Meltdown Elemental entity.hbm.entity_ntm_ufo.name=Martian Invasion Ship diff --git a/src/main/resources/assets/hbm/textures/entity/glyphid_nuclear.png b/src/main/resources/assets/hbm/textures/entity/glyphid_nuclear.png new file mode 100644 index 0000000000000000000000000000000000000000..af7c50fbcdb5dce79cd6bf2ead8cb7f8f8e255a6 GIT binary patch literal 2027 zcmV8=15FScOaS)J7z_l#%7<#1oEC za^0~%RR;tv4mMLrBh7xC*_qXkEz9`;Lrd-tm*0LfJG)C)zeAirePS8 z{I+eYrfEi_ZsoO)b-7O0b>lD$#D9I?t8H~%HxdyI!$5UiCwY8t7zS$FwzA60bkj6$ zpCx8q0gF6NBLT9EMXUu$K=bW)YQKM`?(xAS5BsR~kMpcPN|KMk!Yd%jlfRtD55^8? zim=*OU*gk`kP;+$s3^|s`+l!HtB>3Umy0UVRp2Gblh5G4QmohO-BmKW4>rwB|u_iS`M;huA1qV5EwFHd_lfmuh)}MMUoH+V`N*$5QvIL>#!^c z%UYuFP_=ElpPe)XX+GxM`SN~g9M-n&$nEuguTC7tkP{hvBBGh*LoBoC`#$+a=bNja z%g6gAkmS|7iGy*9vZAQu2uf%VN3+OH7)XwlFRzJczha0&u9P(2$Nghvd%=BFd5oFm zToIO&_3B63KSd$zKZz*uqq)I7ClVis9m7dOf=Akdr98~f`9+!5+Kc4n(vg1V>I}oM zorN`pV59O{>uj!mE?*lcsahl`;y~vYyLz69r;{D7^ZSYx!4VdY1CEdPv5xsw3%>D#YLZ`5y5F9{iSj~k*~F9Ai22#z`T$Tw9K}y>yv$8>9+s1 zA-tigk@r7>XCj_YIVVaL9aZq8-MbHdy@yA)FQG|<;~q|5io8>SR+9DGtJyTYnx*Lg z7VGtTl#6hj-Q=MSZ)5SE+b%sBNf~JJ$n%;TcUv&uf>ocPg(L1DGfA6gJsrS8zO4L} z_qj8r%99H4>Yb8r`RQzbSM%xh=1C}UKCPpmk_ya)3Ve+U)S!`%?aJR%^D&KmAtLG? zA9QjyPY3c?eS0!@zeL+S#V1Y_s6AYZmm*-YFGU>oE9>)!4g^VZJn|fqUf?KV;E85k zLL$Bt*7HK6Xnu~oq`y*u9(jz_Y@2Ujp^Y*UWhqeWI1a!|C@_bFbg3pJNhMF1uz^L_ zbye4OM07ae!Wqq)`FJl8A!Dw(u9H(giE}A1XTtk;VgJSP9}~5j6Mg-;O|#NCkJXup z2a`Y=JK>pY#FW|exjp%NE(PMRR%efg$BO>=bxWc&U-WgX#y|hf2Ga?F9Ou<_tsWC1 z(1B|zkl*Fi_4M3Vt|U%Xpe!f-_5{*Ykvz?mGe`*3$jGUzq`c*;PF1Kzp8U;1i~S^d zj{hS90(sRD?LPT-hv~&K#>y z{veV+3FfkV-L~z)=kZ6IpMIo%Pz#(_^Uz10`;`d31cotuk3$oD8TrEeI}8JL%P%&0 znu&nZmNUIZq#R)Fx?6sMXYOX&z)nj93u|;GEFYH*8#w=?2tqxRPy$v@foLHUiy32+ z!Le9)j^CQyBB<+{X!-Y)IJv$g3U47ro{LsQOHg@cRdEbvQ8KtgrR8b!yo&6m zzZt|{`pY#Xj9#+(s; zgBJ({BXT;grfa8{qWUpJ^G*H|7qkH_t@B{gOUia}St* z=`&$mV@kM1!IIeIB0K#JR&AgJ6M*mh$4a+R5MSxc7_!QPA=>!`1cJU z?IrIXTj!$ETvu~thelcJPR!W)5s z-^%5_snaHsBlr5Q9jO9w>j}S7%FV(ac{d6@4kS|iA2@X_d^18$(4-{M~JCS9ypLXigGuZ|QYz_yp#5p1nh&cYxrr z=2IHv-teSQil7P0_|RB}y;B6vM1 Date: Tue, 20 Jun 2023 20:28:00 +0200 Subject: [PATCH 137/432] better pathfinding, BDCL, nuclear glyphid improvements --- .../com/hbm/entity/mob/EntityGlyphid.java | 11 ++-- .../hbm/entity/mob/EntityGlyphidNuclear.java | 34 ++++++---- .../entity/pathfinder/PathFinderUtils.java | 62 ++++++++++++++++++ .../com/hbm/inventory/OreDictManager.java | 2 + .../inventory/recipes/AssemblerRecipes.java | 2 +- src/main/java/com/hbm/items/ModItems.java | 3 + .../java/com/hbm/items/food/ItemBDCL.java | 34 ++++++++++ .../hbm/items/tool/ItemPollutionDetector.java | 8 +-- src/main/resources/assets/hbm/lang/de_DE.lang | 1 + src/main/resources/assets/hbm/lang/en_US.lang | 1 + .../assets/hbm/textures/items/bdcl.png | Bin 0 -> 253 bytes 11 files changed, 133 insertions(+), 25 deletions(-) create mode 100644 src/main/java/com/hbm/entity/pathfinder/PathFinderUtils.java create mode 100644 src/main/java/com/hbm/items/food/ItemBDCL.java create mode 100644 src/main/resources/assets/hbm/textures/items/bdcl.png diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java index ab3e9ac51..775c7ea55 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java @@ -4,6 +4,7 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; +import com.hbm.entity.pathfinder.PathFinderUtils; import com.hbm.main.ResourceManager; import net.minecraft.entity.Entity; @@ -64,8 +65,9 @@ public class EntityGlyphid extends EntityMob { protected void updateEntityActionState() { super.updateEntityActionState(); - if(this.entityToAttack != null) { - this.setPathToEntity(this.worldObj.getPathEntityToEntity(this, this.entityToAttack, 128F, true, false, false, true)); + // hell yeah!! + if(this.entityToAttack != null && !this.hasPath()) { + this.setPathToEntity(PathFinderUtils.getPathEntityToEntityPartial(worldObj, this, this.entityToAttack, 16F, true, false, false, true)); } } @@ -73,11 +75,6 @@ public class EntityGlyphid extends EntityMob { protected boolean canDespawn() { return entityToAttack == null; } - - @Override - public int getMaxSafePointTries() { - return 10; - } @Override public boolean attackEntityFrom(DamageSource source, float amount) { diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphidNuclear.java b/src/main/java/com/hbm/entity/mob/EntityGlyphidNuclear.java index 8c6590203..62a3ae9a6 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphidNuclear.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphidNuclear.java @@ -79,22 +79,30 @@ public class EntityGlyphidNuclear extends EntityGlyphid { if(this.deathTicks == 100) { - ExplosionVNT vnt = new ExplosionVNT(worldObj, posX, posY, posZ, 25, this); - vnt.setBlockAllocator(new BlockAllocatorStandard(24)); - vnt.setBlockProcessor(new BlockProcessorStandard().withBlockEffect(new BlockMutatorDebris(ModBlocks.volcanic_lava_block, 0)).setNoDrop()); - vnt.setEntityProcessor(new EntityProcessorStandard().withRangeMod(1.5F)); - vnt.setPlayerProcessor(new PlayerProcessorStandard()); - vnt.explode(); - - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "muke"); - // if the FX type is "muke", apply random BF effect - if(MainRegistry.polaroidID == 11 || rand.nextInt(100) == 0) { - data.setBoolean("balefire", true); + if(!worldObj.isRemote) { + ExplosionVNT vnt = new ExplosionVNT(worldObj, posX, posY, posZ, 25, this); + vnt.setBlockAllocator(new BlockAllocatorStandard(24)); + vnt.setBlockProcessor(new BlockProcessorStandard().withBlockEffect(new BlockMutatorDebris(ModBlocks.volcanic_lava_block, 0)).setNoDrop()); + vnt.setEntityProcessor(new EntityProcessorStandard().withRangeMod(1.5F)); + vnt.setPlayerProcessor(new PlayerProcessorStandard()); + vnt.explode(); + + worldObj.playSoundEffect(posX, posY, posZ, "hbm:weapon.mukeExplosion", 15.0F, 1.0F); + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "muke"); + // if the FX type is "muke", apply random BF effect + if(MainRegistry.polaroidID == 11 || rand.nextInt(100) == 0) { + data.setBoolean("balefire", true); + } + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY + 0.5, posZ), new TargetPoint(dimension, posX, posY, posZ, 250)); } - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY + 0.5, posZ), new TargetPoint(dimension, posX, posY, posZ, 250)); this.setDead(); + } else { + if(!worldObj.isRemote && this.deathTicks % 10 == 0) { + worldObj.playSoundEffect(posX, posY, posZ, "hbm:weapon.fstbmbPing", 5.0F, 1.0F); + } } } } diff --git a/src/main/java/com/hbm/entity/pathfinder/PathFinderUtils.java b/src/main/java/com/hbm/entity/pathfinder/PathFinderUtils.java new file mode 100644 index 000000000..9d5b2f36c --- /dev/null +++ b/src/main/java/com/hbm/entity/pathfinder/PathFinderUtils.java @@ -0,0 +1,62 @@ +package com.hbm.entity.pathfinder; + +import net.minecraft.entity.Entity; +import net.minecraft.pathfinding.PathEntity; +import net.minecraft.pathfinding.PathFinder; +import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; +import net.minecraft.world.ChunkCache; +import net.minecraft.world.World; + +public class PathFinderUtils { + + public static PathEntity getPathEntityToEntityPartial(World world, Entity fromEntity, Entity toEntity, float maxDist, boolean allowDoors, boolean allowBlocked, boolean allowWater, boolean canDrown) { + world.theProfiler.startSection("pathfind"); + int startX = MathHelper.floor_double(fromEntity.posX); + int startY = MathHelper.floor_double(fromEntity.posY + 1.0D); + int startZ = MathHelper.floor_double(fromEntity.posZ); + int maxDistEff = (int) (maxDist + 16.0F); + int minX = startX - maxDistEff; + int minY = startY - maxDistEff; + int minZ = startZ - maxDistEff; + int maxX = startX + maxDistEff; + int maxY = startY + maxDistEff; + int maxZ = startZ + maxDistEff; + ChunkCache chunkcache = new ChunkCache(world, minX, minY, minZ, maxX, maxY, maxZ, 0); + + Vec3 vec = Vec3.createVectorHelper(toEntity.posX - fromEntity.posX, toEntity.posY - fromEntity.posY, toEntity.posZ - fromEntity.posZ); + vec = vec.normalize(); + vec.xCoord *= maxDist; + vec.yCoord *= maxDist; + vec.zCoord *= maxDist; + + int x = (int) Math.floor(fromEntity.posX + vec.xCoord); + int y = (int) Math.floor(fromEntity.posY + vec.yCoord); + int z = (int) Math.floor(fromEntity.posZ + vec.zCoord); + + //this part will adjust the end of the path so it's actually on the ground, it being unreachable causes mobs to slow down + boolean solid = false; + + for(int i = y; i > y - 10; i--) { + if(!world.getBlock(x, i, z).getMaterial().blocksMovement() && world.getBlock(x, i - 1, z).isNormalCube()) { + solid = true; + y = i; + break; + } + + } + + if(!solid) for(int i = y + 10; i > y; i--) { + if(!world.getBlock(x, i, z).getMaterial().blocksMovement() && world.getBlock(x, i - 1, z).isNormalCube()) { + solid = true; + y = i; + break; + } + } + + //PathEntity pathentity = (new PathFinder(chunkcache, allowDoors, allowBlocked, allowWater, canDrown)).createEntityPathTo(fromEntity, toEntity, maxDist); + PathEntity pathentity = (new PathFinder(chunkcache, allowDoors, allowBlocked, allowWater, canDrown)).createEntityPathTo(fromEntity, x, y, z, maxDist); + world.theProfiler.endSection(); + return pathentity; + } +} diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index 69e41bd65..271f58aac 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -574,6 +574,8 @@ public class OreDictManager { OreDictionary.registerOre("blockGlassLime", glass_trinitite); OreDictionary.registerOre("blockGlassRed", glass_polonium); OreDictionary.registerOre("blockGlassBlack", glass_ash); + + OreDictionary.registerOre("container1000lubricant", bdcl); MaterialShapes.registerCompatShapes(); } diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 38ae7cf5b..3711f5af2 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -281,7 +281,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.machine_flare, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(IRON.ingot(), 12), new OreDictStack(CU.plate528(), 4), new ComparableStack(ModItems.tank_steel, 1), new ComparableStack(ModBlocks.deco_pipe_quad, 8), new ComparableStack(ModItems.hull_small_steel, 4), new ComparableStack(ModItems.thermo_element, 3), },200); makeRecipe(new ComparableStack(ModBlocks.machine_coker, 1), new AStack[] {new OreDictStack(STEEL.plate(), 24), new OreDictStack(IRON.ingot(), 12), new OreDictStack(CU.plate528(), 8), new OreDictStack(RUBBER.ingot(), 4), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModBlocks.steel_grate, 4) },200); makeRecipe(new ComparableStack(ModBlocks.machine_refinery, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 16), new OreDictStack(CU.plate(), 16), new ComparableStack(ModItems.hull_big_steel, 6), new ComparableStack(ModItems.pipes_steel, 2), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModItems.circuit_red_copper, 1) },350); - makeRecipe(new ComparableStack(ModBlocks.machine_epress, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new ComparableStack(ModItems.plate_polymer, 4), new ComparableStack(ModItems.bolt_tungsten, 4), new ComparableStack(ModItems.coil_copper, 2), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.circuit_copper, 1), new ComparableStack(ModItems.canister_full, 1, Fluids.LUBRICANT.getID()), },160); + makeRecipe(new ComparableStack(ModBlocks.machine_epress, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new ComparableStack(ModItems.plate_polymer, 4), new ComparableStack(ModItems.bolt_tungsten, 4), new ComparableStack(ModItems.coil_copper, 2), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.circuit_copper, 1), new OreDictStack(Fluids.LUBRICANT.getDict(1000)), },160); makeRecipe(new ComparableStack(ModBlocks.machine_chemplant, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(CU.plate528(), 6), new ComparableStack(ModItems.tank_steel, 4), new ComparableStack(ModItems.hull_big_steel, 1), new ComparableStack(ModItems.coil_tungsten, 3), new ComparableStack(ModItems.circuit_copper, 2), new ComparableStack(ModItems.circuit_red_copper, 1), new ComparableStack(ModItems.plate_polymer, 8), },200); makeRecipe(new ComparableStack(ModBlocks.machine_crystallizer, 1), new AStack[] {new ComparableStack(ModItems.hull_big_steel, 4), new ComparableStack(ModItems.pipes_steel, 1), new OreDictStack(DESH.ingot(), 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.blades_advanced_alloy, 2), new OreDictStack(STEEL.ingot(), 16), new OreDictStack(TI.plate(), 16), new ComparableStack(Blocks.glass, 4), new ComparableStack(ModItems.circuit_gold, 1), },400); makeRecipe(new ComparableStack(ModBlocks.machine_fluidtank, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(STEEL.plate528(), 6), new ComparableStack(ModItems.hull_big_steel, 4), new OreDictStack(ANY_TAR.any(), 4), },150); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 35b9cb0d5..0b065d7a3 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1007,6 +1007,7 @@ public class ModItems { public static Item cap_sunset; public static Item cap_star; public static Item ring_pull; + public static Item bdcl; //public static Item canned_beef; //public static Item canned_tuna; //public static Item canned_mystery; @@ -3341,6 +3342,7 @@ public class ModItems { cbt_device = new ItemSyringe().setUnlocalizedName("cbt_device").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":cbt_device"); cigarette = new ItemCigarette().setUnlocalizedName("cigarette").setFull3D().setMaxStackSize(16).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cigarette"); crackpipe = new ItemCigarette().setUnlocalizedName("crackpipe").setFull3D().setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":crackpipe"); + bdcl = new ItemBDCL().setUnlocalizedName("bdcl").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":bdcl"); attachment_mask = new ItemModGasmask().setUnlocalizedName("attachment_mask").setTextureName(RefStrings.MODID + ":attachment_mask"); attachment_mask_mono = new ItemModGasmask().setUnlocalizedName("attachment_mask_mono").setTextureName(RefStrings.MODID + ":attachment_mask_mono"); @@ -7618,6 +7620,7 @@ public class ModItems { GameRegistry.registerItem(cbt_device, cbt_device.getUnlocalizedName()); GameRegistry.registerItem(cigarette, cigarette.getUnlocalizedName()); GameRegistry.registerItem(crackpipe, crackpipe.getUnlocalizedName()); + GameRegistry.registerItem(bdcl, bdcl.getUnlocalizedName()); //Armor mods GameRegistry.registerItem(attachment_mask, attachment_mask.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/food/ItemBDCL.java b/src/main/java/com/hbm/items/food/ItemBDCL.java new file mode 100644 index 000000000..1ec41d032 --- /dev/null +++ b/src/main/java/com/hbm/items/food/ItemBDCL.java @@ -0,0 +1,34 @@ +package com.hbm.items.food; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.EnumAction; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class ItemBDCL extends Item { + + @Override + public int getMaxItemUseDuration(ItemStack p_77626_1_) { + return 32; + } + + @Override + public EnumAction getItemUseAction(ItemStack p_77661_1_) { + return EnumAction.drink; + } + @Override + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { + player.setItemInUse(stack, this.getMaxItemUseDuration(stack)); + return stack; + } + + @Override + public ItemStack onEaten(ItemStack stack, World world, EntityPlayer player) { + + if(!player.capabilities.isCreativeMode) { + --stack.stackSize; + } + return stack; + } +} diff --git a/src/main/java/com/hbm/items/tool/ItemPollutionDetector.java b/src/main/java/com/hbm/items/tool/ItemPollutionDetector.java index dca184a67..9b1a14ec3 100644 --- a/src/main/java/com/hbm/items/tool/ItemPollutionDetector.java +++ b/src/main/java/com/hbm/items/tool/ItemPollutionDetector.java @@ -29,10 +29,10 @@ public class ItemPollutionDetector extends Item { float heavymetal = data.pollution[PollutionType.HEAVYMETAL.ordinal()]; float fallout = data.pollution[PollutionType.FALLOUT.ordinal()]; - soot = ((int) soot * 100) / 100F; - poison = ((int) poison * 100) / 100F; - heavymetal = ((int) heavymetal * 100) / 100F; - fallout = ((int) fallout * 100) / 100F; + soot = ((int) (soot * 100)) / 100F; + poison = ((int) (poison * 100)) / 100F; + heavymetal = ((int) (heavymetal * 100)) / 100F; + fallout = ((int) (fallout * 100)) / 100F; PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Soot: " + soot).color(EnumChatFormatting.YELLOW).flush(), 100, 2000), (EntityPlayerMP) entity); PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Poison: " + poison).color(EnumChatFormatting.YELLOW).flush(), 101, 2000), (EntityPlayerMP) entity); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 5e2693e41..c9a2b3a46 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -1160,6 +1160,7 @@ item.battery_steam_large.name=Großer dampfbetriebener Energiespeichertank item.battery_su.name=Einwegbatterie item.battery_su_l.name=Große Einwegbatterie item.battery_trixite.name=Billige Spark-Batterie-Nachmache +item.bdcl.name=BDCL item.beta.name=Beta-Features item.big_sword.name=Großes Schwert item.billet_am_mix.name=Reaktorfähiges Americiumbillet diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 846ac5558..652cd70fa 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1743,6 +1743,7 @@ item.battery_steam_large.name=Large Steam Powered Energy Storage Tank item.battery_su.name=SU-Battery item.battery_su_l.name=Large SU-Battery item.battery_trixite.name=Off-Brand Spark Battery +item.bdcl.name=BDCL item.beta.name=Beta Features item.big_sword.name=Great Sword item.billet_actinium.name=Actinium-227 Billet diff --git a/src/main/resources/assets/hbm/textures/items/bdcl.png b/src/main/resources/assets/hbm/textures/items/bdcl.png new file mode 100644 index 0000000000000000000000000000000000000000..999de5f9091dbd5109e2a41ecd45f28e02170f14 GIT binary patch literal 253 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfS{VV?8diRxwWI{p164^NRD;ZA~23AWy+3}r`T}M+X ziDAy?HR7|^m7YH*#izJov)d96p^Ur5ks&wUedGAY#30dDY@{L?Aa?a~)to&ZyM(^Y z>{u|R$&iiVLTT)!{ep|vTODnFwB(Jx%>AY5O*0u6 Date: Tue, 20 Jun 2023 23:12:40 -0700 Subject: [PATCH 138/432] hid book lore from nei --- src/main/java/com/hbm/main/NEIConfig.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/hbm/main/NEIConfig.java b/src/main/java/com/hbm/main/NEIConfig.java index 41d03f7bd..1a2cd65a6 100644 --- a/src/main/java/com/hbm/main/NEIConfig.java +++ b/src/main/java/com/hbm/main/NEIConfig.java @@ -92,6 +92,7 @@ public class NEIConfig implements IConfigureNEI { API.hideItem(new ItemStack(ModBlocks.transission_hatch)); API.hideItem(new ItemStack(ModItems.euphemium_kit)); API.hideItem(new ItemStack(ModItems.bobmazon_hidden)); + API.hideItem(new ItemStack(ModItems.book_lore)); //the broken nbt-less one shouldn't show up in normal play anyway if(MainRegistry.polaroidID != 11) { API.hideItem(new ItemStack(ModItems.book_secret)); API.hideItem(new ItemStack(ModItems.book_of_)); From fdb4a1c39e94d5251618ab8b5320296fd683710e Mon Sep 17 00:00:00 2001 From: Vaern Date: Tue, 20 Jun 2023 23:20:58 -0700 Subject: [PATCH 139/432] Whoops! --- .../com/hbm/inventory/gui/GUIBookLore.java | 2 +- .../com/hbm/items/special/ItemBookLore.java | 79 ------------------- .../java/com/hbm/items/tool/ItemWandD.java | 4 +- 3 files changed, 4 insertions(+), 81 deletions(-) diff --git a/src/main/java/com/hbm/inventory/gui/GUIBookLore.java b/src/main/java/com/hbm/inventory/gui/GUIBookLore.java index ed9779e8c..5c5effbf5 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIBookLore.java +++ b/src/main/java/com/hbm/inventory/gui/GUIBookLore.java @@ -96,7 +96,7 @@ public class GUIBookLore extends GuiScreen { String k = "book_lore." + key + ".page."; for(int i = 0; i < 2; i++) { - int defacto = this.page * 2 + i; //TODO: force i18n to index from 0 instead of 1 + int defacto = this.page * 2 + i; if(defacto < tag.getInteger("p")) { String text; diff --git a/src/main/java/com/hbm/items/special/ItemBookLore.java b/src/main/java/com/hbm/items/special/ItemBookLore.java index ce2564fa3..6fe393616 100644 --- a/src/main/java/com/hbm/items/special/ItemBookLore.java +++ b/src/main/java/com/hbm/items/special/ItemBookLore.java @@ -142,83 +142,4 @@ public class ItemBookLore extends Item implements IGUIProvider { book.stackTagCompound.setTag("p" + page, data); } - //TODO remove this and fix any references - /*public enum BookLoreType { - TEST(true, "test", 5), - BOOK_IODINE(true, "book_iodine", 3) { - public String resolveKey(String key, NBTTagCompound tag) { - return I18nUtil.resolveKey(key, tag.getInteger("mku_slot")); - }}, - BOOK_PHOSPHOROUS(true, "book_phosphorous", 2) { - public String resolveKey(String key, NBTTagCompound tag) { - return I18nUtil.resolveKey(key, tag.getInteger("mku_slot")); - }}, - BOOK_DUST(true, "book_dust", 3) { - public String resolveKey(String key, NBTTagCompound tag) { - return I18nUtil.resolveKey(key, tag.getInteger("mku_slot")); - }}, - BOOK_MERCURY(true, "book_mercury", 2) { - public String resolveKey(String key, NBTTagCompound tag) { - return I18nUtil.resolveKey(key, tag.getInteger("mku_slot")); - }}, - BOOK_FLOWER(true, "book_flower", 2) { - public String resolveKey(String key, NBTTagCompound tag) { - return I18nUtil.resolveKey(key, tag.getInteger("mku_slot")); - }}, - BOOK_SYRINGE(true, "book_syringe", 2) { - public String resolveKey(String key, NBTTagCompound tag) { - return I18nUtil.resolveKey(key, tag.getInteger("mku_slot")); - }}, - RESIGNATION_NOTE(true, "resignation_note", 3), - MEMO_STOCKS(false, "memo_stocks", 1), - MEMO_SCHRAB_GSA(false, "memo_schrab_gsa", 2), - MEMO_SCHRAB_RD(false, "memo_schrab_rd", 4), - MEMO_SCHRAB_NUKE(true, "memo_schrab_nuke", 3), - ; - - public boolean hasAuthor = false; - public final String keyI18n; - public final int pages; - - private BookLoreType(Boolean author, String key, int max) { - this.hasAuthor = author; - this.keyI18n = key; - this.pages = max; - } - - private BookLoreType(String key, int max) { - this.keyI18n = key; - this.pages = max; - } - - /** Function to resolve I18n keys using potential save-dependent information, a la format specifiers. */ - /*public String resolveKey(String key, NBTTagCompound tag) { - return I18nUtil.resolveKey(key, tag); - } - - public static BookLoreType getTypeFromStack(ItemStack stack) { - if(!stack.hasTagCompound()) { - stack.stackTagCompound = new NBTTagCompound(); - } - - NBTTagCompound tag = stack.getTagCompound(); - int ordinal = tag.getInteger("Book_Lore_Type"); - - return BookLoreType.values()[Math.abs(ordinal) % BookLoreType.values().length]; - } - - public static ItemStack setTypeForStack(ItemStack stack, BookLoreType num) { - - if(stack.getItem() instanceof ItemBookLore) { - if(!stack.hasTagCompound()) { - stack.stackTagCompound = new NBTTagCompound(); - } - - NBTTagCompound tag = stack.getTagCompound(); - tag.setInteger("Book_Lore_Type", num.ordinal()); - } - - return stack; - } - }*/ } diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index 3864a35de..4c80ccab4 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -2,6 +2,8 @@ package com.hbm.items.tool; import java.util.List; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.lib.Library; import net.minecraft.entity.player.EntityPlayer; @@ -30,7 +32,7 @@ public class ItemWandD extends Item { vnt.setSFX(new ExplosionEffectStandard()); vnt.explode();*/ - //PollutionHandler.incrementPollution(world, pos.blockX, pos.blockY, pos.blockZ, PollutionType.SOOT, 15); + PollutionHandler.incrementPollution(world, pos.blockX, pos.blockY, pos.blockZ, PollutionType.SOOT, 15); /*TimeAnalyzer.startCount("setBlock"); world.setBlock(pos.blockX, pos.blockY, pos.blockZ, Blocks.dirt); From 6c32813baef6f74bdfc8080484b027874c22c996 Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 21 Jun 2023 13:53:15 +0200 Subject: [PATCH 140/432] FBI drones --- src/main/java/com/hbm/config/MobConfig.java | 2 + .../java/com/hbm/entity/EntityMappings.java | 1 + .../com/hbm/entity/mob/EntityFBIDrone.java | 64 ++++ .../com/hbm/entity/mob/EntityUFOBase.java | 4 +- .../com/hbm/handler/BossSpawnHandler.java | 10 + src/main/java/com/hbm/main/ClientProxy.java | 1 + .../java/com/hbm/main/ResourceManager.java | 1 + .../hbm/render/entity/mob/RenderDrone.java | 45 +++ .../assets/hbm/models/mobs/quadcopter.obj | 360 ++++++++++++++++++ .../assets/hbm/textures/entity/quadcopter.png | Bin 0 -> 334 bytes 10 files changed, 486 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/hbm/entity/mob/EntityFBIDrone.java create mode 100644 src/main/java/com/hbm/render/entity/mob/RenderDrone.java create mode 100644 src/main/resources/assets/hbm/models/mobs/quadcopter.obj create mode 100644 src/main/resources/assets/hbm/textures/entity/quadcopter.png diff --git a/src/main/java/com/hbm/config/MobConfig.java b/src/main/java/com/hbm/config/MobConfig.java index cd01ac0c8..5232b8351 100644 --- a/src/main/java/com/hbm/config/MobConfig.java +++ b/src/main/java/com/hbm/config/MobConfig.java @@ -14,6 +14,7 @@ public class MobConfig { public static int raidDelay = 30 * 60 * 60; public static int raidChance = 3; public static int raidAmount = 15; + public static int raidDrones = 5; public static int raidAttackDelay = 40; public static int raidAttackReach = 2; public static int raidAttackDistance = 32; @@ -44,6 +45,7 @@ public class MobConfig { raidAttackDelay = CommonConfig.createConfigInt(config, CATEGORY, "12.F04_raidAttackDelay", "Time between individual attempts to break machines", 40); raidAttackReach = CommonConfig.createConfigInt(config, CATEGORY, "12.F05_raidAttackReach", "How far away machines can be broken", 2); raidAttackDistance = CommonConfig.createConfigInt(config, CATEGORY, "12.F06_raidAttackDistance", "How far away agents will spawn from the targeted player", 32); + raidDrones = CommonConfig.createConfigInt(config, CATEGORY, "12.F07_raidDrones", "How many quadcopter drones are spawned each raid", 5); enableElementals = CommonConfig.createConfigBool(config, CATEGORY, "12.E00_enableMeltdownElementals", "Whether there should be radiation elementals", true); elementalDelay = CommonConfig.createConfigInt(config, CATEGORY, "12.E01_elementalDelay", "How many world ticks need to pass for a check to be performed", 30 * 60 * 60); diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index fd59a34b9..b41ab7eb7 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -234,6 +234,7 @@ public class EntityMappings { addMob(EntityDuck.class, "entity_fucc_a_ducc", 0xd0d0d0, 0xFFBF00); addMob(EntityQuackos.class, "entity_elder_one", 0xd0d0d0, 0xFFBF00); addMob(EntityFBI.class, "entity_ntm_fbi", 0x008000, 0x404040); + addMob(EntityFBIDrone.class, "entity_ntm_fbi_drone", 0x008000, 0x404040); addMob(EntityRADBeast.class, "entity_ntm_radiation_blaze", 0x303030, 0x008000); addMob(EntitySiegeZombie.class, "entity_meme_zombie", 0x303030, 0x008000); addMob(EntitySiegeSkeleton.class, "entity_meme_skeleton", 0x303030, 0x000080); diff --git a/src/main/java/com/hbm/entity/mob/EntityFBIDrone.java b/src/main/java/com/hbm/entity/mob/EntityFBIDrone.java new file mode 100644 index 000000000..b773cd3ff --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/EntityFBIDrone.java @@ -0,0 +1,64 @@ +package com.hbm.entity.mob; + +import com.hbm.entity.grenade.EntityGrenadeGeneric; + +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public class EntityFBIDrone extends EntityUFOBase { + + private int attackCooldown; + + public EntityFBIDrone(World world) { + super(world); + } + + @Override + protected void updateEntityActionState() { + super.updateEntityActionState(); + if(this.courseChangeCooldown > 0) this.courseChangeCooldown--; + if(this.scanCooldown > 0) this.scanCooldown--; + + if(!worldObj.isRemote) { + + if(attackCooldown > 0) attackCooldown--; + + if(this.target != null && attackCooldown <= 0) { + + Vec3 vec = Vec3.createVectorHelper(posX - target.posX, posY - target.posY, posZ - target.posZ); + if(Math.abs(vec.xCoord) < 5 && Math.abs(vec.zCoord) < 5 && vec.yCoord > 3) { + attackCooldown = 60; + EntityGrenadeGeneric grenade = new EntityGrenadeGeneric(worldObj); + grenade.setPosition(posX, posY, posZ); + worldObj.spawnEntityInWorld(grenade); + } + } + } + + if(this.courseChangeCooldown > 0) { + approachPosition(this.target == null ? 0.25D : 0.5D); + } + } + + @Override + protected void applyEntityAttributes() { + super.applyEntityAttributes(); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(35.0D); + } + + @Override + protected int getScanRange() { + return 100; + } + + @Override + protected int targetHeightOffset() { + return 7 + rand.nextInt(4); + } + + @Override + protected int wanderHeightOffset() { + return 7 + rand.nextInt(4); + } +} diff --git a/src/main/java/com/hbm/entity/mob/EntityUFOBase.java b/src/main/java/com/hbm/entity/mob/EntityUFOBase.java index 125cc1283..2468a5c2b 100644 --- a/src/main/java/com/hbm/entity/mob/EntityUFOBase.java +++ b/src/main/java/com/hbm/entity/mob/EntityUFOBase.java @@ -18,8 +18,8 @@ public abstract class EntityUFOBase extends EntityFlying implements IMob { protected int courseChangeCooldown; protected Entity target; - public EntityUFOBase(World p_i1587_1_) { - super(p_i1587_1_); + public EntityUFOBase(World world) { + super(world); } @Override diff --git a/src/main/java/com/hbm/handler/BossSpawnHandler.java b/src/main/java/com/hbm/handler/BossSpawnHandler.java index 5d981fd0d..5c3a206c7 100644 --- a/src/main/java/com/hbm/handler/BossSpawnHandler.java +++ b/src/main/java/com/hbm/handler/BossSpawnHandler.java @@ -7,6 +7,7 @@ import com.hbm.config.GeneralConfig; import com.hbm.config.MobConfig; import com.hbm.config.WorldConfig; import com.hbm.entity.mob.EntityFBI; +import com.hbm.entity.mob.EntityFBIDrone; import com.hbm.entity.mob.EntityGhost; import com.hbm.entity.mob.EntityMaskMan; import com.hbm.entity.mob.EntityRADBeast; @@ -97,6 +98,15 @@ public class BossSpawnHandler { trySpawn(world, (float)spawnX, (float)spawnY, (float)spawnZ, new EntityFBI(world)); } + + for(int i = 0; i < MobConfig.raidDrones; i++) { + + double spawnX = player.posX + vec.xCoord + world.rand.nextGaussian() * 5; + double spawnZ = player.posZ + vec.zCoord + world.rand.nextGaussian() * 5; + double spawnY = world.getHeightValue((int)spawnX, (int)spawnZ); + + trySpawn(world, (float)spawnX, (float)spawnY + 10, (float)spawnZ, new EntityFBIDrone(world)); + } } } } diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 26133ebac..da86b7611 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -731,6 +731,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidBlaster.class, new RenderGlyphid()); RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidScout.class, new RenderGlyphid()); RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidNuclear.class, new RenderGlyphidNuclear()); + RenderingRegistry.registerEntityRenderingHandler(EntityFBIDrone.class, new RenderDrone()); //"particles" RenderingRegistry.registerEntityRenderingHandler(EntitySmokeFX.class, new MultiCloudRenderer(new Item[] { ModItems.smoke1, ModItems.smoke2, ModItems.smoke3, ModItems.smoke4, ModItems.smoke5, ModItems.smoke6, ModItems.smoke7, ModItems.smoke8 })); RenderingRegistry.registerEntityRenderingHandler(EntityBSmokeFX.class, new MultiCloudRenderer(new Item[] { ModItems.b_smoke1, ModItems.b_smoke2, ModItems.b_smoke3, ModItems.b_smoke4, ModItems.b_smoke5, ModItems.b_smoke6, ModItems.b_smoke7, ModItems.b_smoke8 })); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 4820c556d..869fc2066 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -306,6 +306,7 @@ public class ResourceManager { public static final IModelCustom mini_ufo = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/mobs/mini_ufo.obj")); public static final IModelCustom siege_ufo = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/mobs/siege_ufo.obj")); public static final IModelCustom glyphid = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/mobs/glyphid.obj")); + public static final IModelCustom drone = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/mobs/quadcopter.obj")); //ZIRNOX public static final IModelCustom zirnox = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/zirnox.obj")); diff --git a/src/main/java/com/hbm/render/entity/mob/RenderDrone.java b/src/main/java/com/hbm/render/entity/mob/RenderDrone.java new file mode 100644 index 000000000..664bb4275 --- /dev/null +++ b/src/main/java/com/hbm/render/entity/mob/RenderDrone.java @@ -0,0 +1,45 @@ +package com.hbm.render.entity.mob; + +import java.util.Random; + +import org.lwjgl.opengl.GL11; + +import com.hbm.entity.mob.EntityFBIDrone; +import com.hbm.lib.RefStrings; +import com.hbm.main.ResourceManager; + +import net.minecraft.client.renderer.entity.Render; +import net.minecraft.entity.Entity; +import net.minecraft.util.ResourceLocation; + +public class RenderDrone extends Render { + + @Override + public void doRender(Entity entity, double x, double y, double z, float f0, float f1) { + + GL11.glPushMatrix(); + GL11.glTranslated(x, y + 0.25, z); + + this.bindTexture(getEntityTexture(entity)); + + Random rand = new Random(entity.getEntityId()); + GL11.glRotated(rand.nextDouble() * 360D, 0, 1, 0); + + GL11.glShadeModel(GL11.GL_SMOOTH); + GL11.glDisable(GL11.GL_CULL_FACE); + ResourceManager.drone.renderAll(); + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPopMatrix(); + } + + @Override + protected ResourceLocation getEntityTexture(Entity entity) { + return this.getEntityTexture((EntityFBIDrone) entity); + } + + protected ResourceLocation getEntityTexture(EntityFBIDrone entity) { + return new ResourceLocation(RefStrings.MODID + ":textures/entity/quadcopter.png"); + } +} diff --git a/src/main/resources/assets/hbm/models/mobs/quadcopter.obj b/src/main/resources/assets/hbm/models/mobs/quadcopter.obj new file mode 100644 index 000000000..2c9858362 --- /dev/null +++ b/src/main/resources/assets/hbm/models/mobs/quadcopter.obj @@ -0,0 +1,360 @@ +# Blender v2.79 (sub 0) OBJ File: 'quadcopter.blend' +# www.blender.org +o Cube_Cube.001 +v -0.187500 0.125000 0.500000 +v -0.187500 0.375000 0.500000 +v -0.187500 0.125000 -0.500000 +v -0.187500 0.375000 -0.500000 +v 0.187500 0.125000 0.500000 +v 0.187500 0.375000 0.500000 +v 0.187500 0.125000 -0.500000 +v 0.187500 0.375000 -0.500000 +v 0.437500 0.125000 0.562500 +v 0.437500 0.500000 0.562500 +v 0.437500 0.125000 0.437500 +v 0.437500 0.500000 0.437500 +v 0.562500 0.125000 0.562500 +v 0.562500 0.500000 0.562500 +v 0.562500 0.125000 0.437500 +v 0.562500 0.500000 0.437500 +v 0.437500 0.125000 -0.437500 +v 0.437500 0.500000 -0.437500 +v 0.437500 0.125000 -0.562500 +v 0.437500 0.500000 -0.562500 +v 0.562500 0.125000 -0.437500 +v 0.562500 0.500000 -0.437500 +v 0.562500 0.125000 -0.562500 +v 0.562500 0.500000 -0.562500 +v -0.562500 0.125000 0.562500 +v -0.562500 0.500000 0.562500 +v -0.562500 0.125000 0.437500 +v -0.562500 0.500000 0.437500 +v -0.437500 0.125000 0.562500 +v -0.437500 0.500000 0.562500 +v -0.437500 0.125000 0.437500 +v -0.437500 0.500000 0.437500 +v -0.562500 0.125000 -0.437500 +v -0.562500 0.500000 -0.437500 +v -0.562500 0.125000 -0.562500 +v -0.562500 0.500000 -0.562500 +v -0.437500 0.125000 -0.437500 +v -0.437500 0.500000 -0.437500 +v -0.437500 0.125000 -0.562500 +v -0.437500 0.500000 -0.562500 +v 0.437500 0.187500 0.531250 +v 0.437500 0.312500 0.531250 +v 0.437500 0.187500 0.468750 +v 0.437500 0.312500 0.468750 +v 0.187500 0.187500 0.343750 +v 0.187500 0.187500 0.406250 +v 0.187500 0.312500 0.406250 +v 0.187500 0.312500 0.343750 +v -0.437500 0.187500 -0.531250 +v -0.437500 0.312500 -0.531250 +v -0.437500 0.187500 -0.468750 +v -0.437500 0.312500 -0.468750 +v -0.187500 0.187500 -0.343750 +v -0.187500 0.187500 -0.406250 +v -0.187500 0.312500 -0.406250 +v -0.187500 0.312500 -0.343750 +v 0.437500 0.312500 -0.531250 +v 0.437500 0.187500 -0.531250 +v 0.437500 0.312500 -0.468750 +v 0.437500 0.187500 -0.468750 +v 0.187500 0.312500 -0.343750 +v 0.187500 0.312500 -0.406250 +v 0.187500 0.187500 -0.406250 +v 0.187500 0.187500 -0.343750 +v -0.437500 0.312500 0.531250 +v -0.437500 0.187500 0.531250 +v -0.437500 0.312500 0.468750 +v -0.437500 0.187500 0.468750 +v -0.187500 0.312500 0.343750 +v -0.187500 0.312500 0.406250 +v -0.187500 0.187500 0.406250 +v -0.187500 0.187500 0.343750 +v -0.500000 0.500000 0.250000 +v -0.676777 0.500000 0.323223 +v -0.750000 0.500000 0.500000 +v -0.676777 0.500000 0.676777 +v -0.500000 0.500000 0.750000 +v -0.323223 0.500000 0.676777 +v -0.250000 0.500000 0.500000 +v -0.323223 0.500000 0.323223 +v 0.500000 0.500000 0.250000 +v 0.323223 0.500000 0.323223 +v 0.250000 0.500000 0.500000 +v 0.323223 0.500000 0.676777 +v 0.500000 0.500000 0.750000 +v 0.676777 0.500000 0.676777 +v 0.750000 0.500000 0.500000 +v 0.676777 0.500000 0.323223 +v -0.500000 0.500000 -0.750000 +v -0.676777 0.500000 -0.676777 +v -0.750000 0.500000 -0.500000 +v -0.676777 0.500000 -0.323223 +v -0.500000 0.500000 -0.250000 +v -0.323223 0.500000 -0.323223 +v -0.250000 0.500000 -0.500000 +v -0.323223 0.500000 -0.676777 +v 0.500000 0.500000 -0.750000 +v 0.323223 0.500000 -0.676777 +v 0.250000 0.500000 -0.500000 +v 0.323223 0.500000 -0.323223 +v 0.500000 0.500000 -0.250000 +v 0.676777 0.500000 -0.323223 +v 0.750000 0.500000 -0.500000 +v 0.676777 0.500000 -0.676777 +vt 0.125000 0.800000 +vt 0.625000 1.000000 +vt 0.125000 1.000000 +vt 0.625000 0.800000 +vt 0.750000 0.500000 +vt 0.750000 0.800000 +vt 0.625000 0.500000 +vt 0.125000 0.300000 +vt 0.625000 0.300000 +vt 0.125000 0.500000 +vt 0.000000 0.800000 +vt 0.000000 0.500000 +vt 0.125000 0.000000 +vt 0.625000 0.000000 +vt 0.812500 1.000000 +vt 0.750000 0.700000 +vt 0.812500 0.700000 +vt 1.000000 1.000000 +vt 0.937500 0.700000 +vt 1.000000 0.700000 +vt 0.937500 1.000000 +vt 0.875000 0.700000 +vt 0.875000 1.000000 +vt 0.875000 0.600000 +vt 0.812500 0.600000 +vt 0.812500 1.000000 +vt 0.750000 0.700000 +vt 0.812500 0.700000 +vt 1.000000 1.000000 +vt 0.937500 0.700000 +vt 1.000000 0.700000 +vt 0.937500 1.000000 +vt 0.875000 0.700000 +vt 0.875000 1.000000 +vt 0.875000 0.600000 +vt 0.812500 0.600000 +vt 0.812500 1.000000 +vt 0.750000 0.700000 +vt 0.812500 0.700000 +vt 1.000000 1.000000 +vt 0.937500 0.700000 +vt 1.000000 0.700000 +vt 0.937500 1.000000 +vt 0.875000 0.700000 +vt 0.875000 1.000000 +vt 0.875000 0.600000 +vt 0.812500 0.600000 +vt 0.875000 0.598554 +vt 0.750904 0.400000 +vt 0.875000 0.201446 +vt 0.812500 1.000000 +vt 0.750000 0.700000 +vt 0.812500 0.700000 +vt 1.000000 1.000000 +vt 0.937500 0.700000 +vt 1.000000 0.700000 +vt 0.937500 1.000000 +vt 0.875000 0.700000 +vt 0.875000 1.000000 +vt 0.875000 0.600000 +vt 0.812500 0.600000 +vt 0.625000 0.200000 +vt 0.750000 0.300000 +vt 0.625000 0.300000 +vt 0.625000 0.050000 +vt 0.750000 0.150000 +vt 0.625000 0.150000 +vt 0.750000 0.300000 +vt 0.625000 0.200000 +vt 0.750000 0.200000 +vt 0.750000 0.150000 +vt 0.625000 0.050000 +vt 0.750000 0.050000 +vt 0.625000 0.150000 +vt 0.750000 0.000000 +vt 0.625000 0.000000 +vt 0.750000 0.200000 +vt 0.750000 0.000000 +vt 0.750000 0.050000 +vt 0.625000 0.050000 +vt 0.750000 0.150000 +vt 0.625000 0.150000 +vt 0.625000 0.200000 +vt 0.750000 0.300000 +vt 0.625000 0.300000 +vt 0.750000 0.150000 +vt 0.625000 0.050000 +vt 0.750000 0.050000 +vt 0.750000 0.300000 +vt 0.625000 0.200000 +vt 0.750000 0.200000 +vt 0.625000 0.000000 +vt 0.750000 0.000000 +vt 0.625000 0.150000 +vt 0.625000 0.000000 +vt 0.750000 0.050000 +vt 0.750000 0.200000 +vt 0.999096 0.400000 +vt 0.962749 0.540399 +vt 0.875000 0.598554 +vt 0.875000 0.598554 +vt 0.750904 0.400000 +vt 0.875000 0.201446 +vt 0.999096 0.400000 +vt 0.962749 0.540399 +vt 0.875000 0.598554 +vt 0.750000 1.000000 +vt 0.750000 1.000000 +vt 0.750000 1.000000 +vt 0.787251 0.540399 +vt 0.787251 0.259601 +vt 0.962749 0.259601 +vt 0.999096 0.400000 +vt 0.962749 0.540399 +vt 0.750000 1.000000 +vt 0.625000 0.300000 +vt 0.625000 0.000000 +vt 0.625000 0.300000 +vt 0.750000 0.000000 +vt 0.787251 0.540399 +vt 0.875000 0.201446 +vt 0.750904 0.400000 +vt 0.787251 0.259601 +vt 0.962749 0.259601 +vt 0.787251 0.540399 +vt 0.787251 0.259601 +vt 0.962749 0.259601 +vt 0.999096 0.400000 +vt 0.962749 0.540399 +vt 0.787251 0.540399 +vt 0.875000 0.201446 +vt 0.750904 0.400000 +vt 0.787251 0.259601 +vt 0.962749 0.259601 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.4472 0.0000 -0.8944 +vn -0.4472 0.0000 0.8944 +vn 0.4472 0.0000 0.8944 +vn -0.4472 0.0000 -0.8944 +s off +f 2/1/1 3/2/1 1/3/1 +f 4/4/2 7/5/2 3/6/2 +f 8/7/3 5/8/3 7/9/3 +f 6/10/4 1/11/4 5/12/4 +f 7/9/5 1/13/5 3/14/5 +f 4/4/6 6/10/6 8/7/6 +f 10/15/1 11/16/1 9/17/1 +f 12/18/2 15/19/2 11/20/2 +f 16/21/3 13/22/3 15/19/3 +f 14/23/4 9/17/4 13/22/4 +f 15/24/5 9/17/5 11/25/5 +f 18/26/1 19/27/1 17/28/1 +f 20/29/2 23/30/2 19/31/2 +f 24/32/3 21/33/3 23/30/3 +f 22/34/4 17/28/4 21/33/4 +f 23/35/5 17/28/5 19/36/5 +f 26/37/1 27/38/1 25/39/1 +f 28/40/2 31/41/2 27/42/2 +f 32/43/3 29/44/3 31/41/3 +f 30/45/4 25/39/4 29/44/4 +f 31/46/5 25/39/5 27/47/5 +f 81/48/6 83/49/6 85/50/6 +f 34/51/1 35/52/1 33/53/1 +f 36/54/2 39/55/2 35/56/2 +f 40/57/3 37/58/3 39/55/3 +f 38/59/4 33/53/4 37/58/4 +f 39/60/5 33/53/5 35/61/5 +f 50/62/7 54/63/7 49/64/7 +f 51/65/8 56/66/8 52/67/8 +f 43/68/7 48/69/7 44/70/7 +f 42/71/8 46/72/8 41/73/8 +f 44/70/6 47/74/6 42/71/6 +f 43/75/5 46/72/5 45/76/5 +f 52/67/6 55/77/6 50/62/6 +f 51/65/5 54/78/5 53/79/5 +f 66/80/9 70/81/9 65/82/9 +f 67/83/10 72/84/10 68/85/10 +f 59/86/9 64/87/9 60/88/9 +f 58/89/10 62/90/10 57/91/10 +f 60/88/5 63/92/5 58/93/5 +f 59/86/6 62/90/6 61/94/6 +f 68/95/5 71/96/5 66/80/5 +f 67/83/6 70/81/6 69/97/6 +f 79/98/6 80/99/6 73/100/6 +f 97/101/6 99/102/6 101/103/6 +f 95/104/6 96/105/6 89/106/6 +f 2/1/1 4/4/1 3/2/1 +f 4/4/2 8/7/2 7/5/2 +f 8/7/3 6/10/3 5/8/3 +f 6/10/4 2/1/4 1/11/4 +f 7/9/5 5/8/5 1/13/5 +f 4/4/6 2/1/6 6/10/6 +f 10/15/1 12/107/1 11/16/1 +f 12/18/2 16/21/2 15/19/2 +f 16/21/3 14/23/3 13/22/3 +f 14/23/4 10/15/4 9/17/4 +f 15/24/5 13/22/5 9/17/5 +f 18/26/1 20/108/1 19/27/1 +f 20/29/2 24/32/2 23/30/2 +f 24/32/3 22/34/3 21/33/3 +f 22/34/4 18/26/4 17/28/4 +f 23/35/5 21/33/5 17/28/5 +f 26/37/1 28/109/1 27/38/1 +f 28/40/2 32/43/2 31/41/2 +f 32/43/3 30/45/3 29/44/3 +f 30/45/4 26/37/4 25/39/4 +f 31/46/5 29/44/5 25/39/5 +f 81/48/6 82/110/6 83/49/6 +f 83/49/6 84/111/6 85/50/6 +f 85/50/6 86/112/6 87/113/6 +f 87/113/6 88/114/6 85/50/6 +f 88/114/6 81/48/6 85/50/6 +f 34/51/1 36/115/1 35/52/1 +f 36/54/2 40/57/2 39/55/2 +f 40/57/3 38/59/3 37/58/3 +f 38/59/4 34/51/4 33/53/4 +f 39/60/5 37/58/5 33/53/5 +f 50/62/7 55/77/7 54/63/7 +f 51/65/8 53/79/8 56/66/8 +f 43/68/7 45/116/7 48/69/7 +f 42/71/8 47/74/8 46/72/8 +f 44/70/6 48/69/6 47/74/6 +f 43/75/5 41/73/5 46/72/5 +f 52/67/6 56/66/6 55/77/6 +f 51/65/5 49/117/5 54/78/5 +f 66/80/9 71/96/9 70/81/9 +f 67/83/10 69/97/10 72/84/10 +f 59/86/9 61/94/9 64/87/9 +f 58/89/10 63/118/10 62/90/10 +f 60/88/5 64/87/5 63/92/5 +f 59/86/6 57/91/6 62/90/6 +f 68/95/5 72/119/5 71/96/5 +f 67/83/6 65/82/6 70/81/6 +f 73/100/6 74/120/6 77/121/6 +f 74/120/6 75/122/6 77/121/6 +f 75/122/6 76/123/6 77/121/6 +f 77/121/6 78/124/6 73/100/6 +f 78/124/6 79/98/6 73/100/6 +f 97/101/6 98/125/6 99/102/6 +f 99/102/6 100/126/6 101/103/6 +f 101/103/6 102/127/6 103/128/6 +f 103/128/6 104/129/6 101/103/6 +f 104/129/6 97/101/6 101/103/6 +f 89/106/6 90/130/6 93/131/6 +f 90/130/6 91/132/6 93/131/6 +f 91/132/6 92/133/6 93/131/6 +f 93/131/6 94/134/6 89/106/6 +f 94/134/6 95/104/6 89/106/6 diff --git a/src/main/resources/assets/hbm/textures/entity/quadcopter.png b/src/main/resources/assets/hbm/textures/entity/quadcopter.png new file mode 100644 index 0000000000000000000000000000000000000000..26d6b5518e6e5642dd6161e9f332b95b30aae07a GIT binary patch literal 334 zcmV-U0kQsxP)ZLP&13_aXj0h54)NvH%QRKg@o!X#7z5-MR5kbr}|AMe5A z5|U*fWcU0bDbSXl(*}bI<2Y`$?FiO&HAnotTgG7+P6dxK9`^M*73oGaE6{pLFPN*G z?_rOEcX=qi{Hg{@e|yzzQgA0ySENeUUGkkGyc0yU{jIRpVp*2WIR|SkMC3Ptny0H> zP~K-|hzL{_M3n6!0st`8-PniGsM z=ES;B!W2BAEI-ge14-d^a3X^D9?rRJW9I%ENP$8K003((hzP3s--bP*s-~oXnLqX) gpM;Mm@c4h=2NX7iSuZx(r2qf`07*qoM6N<$f>WJ_I{*Lx literal 0 HcmV?d00001 From ee7c10174a42a62f4a7b1f04ae22dcce5f256d8e Mon Sep 17 00:00:00 2001 From: Bob Date: Wed, 21 Jun 2023 21:47:20 +0200 Subject: [PATCH 141/432] compressor recipes --- .../java/com/hbm/inventory/FluidStack.java | 10 +++- .../container/ContainerCompressor.java | 25 ++++++-- .../inventory/recipes/CompressorRecipes.java | 57 +++++++++++++++++++ .../machine/TileEntityMachineCompressor.java | 2 +- 4 files changed, 86 insertions(+), 8 deletions(-) create mode 100644 src/main/java/com/hbm/inventory/recipes/CompressorRecipes.java diff --git a/src/main/java/com/hbm/inventory/FluidStack.java b/src/main/java/com/hbm/inventory/FluidStack.java index f508ed0ab..03b001ef4 100644 --- a/src/main/java/com/hbm/inventory/FluidStack.java +++ b/src/main/java/com/hbm/inventory/FluidStack.java @@ -3,9 +3,10 @@ package com.hbm.inventory; import com.hbm.inventory.fluid.FluidType; public class FluidStack { - - public int fill; + public FluidType type; + public int fill; + public int pressure; public FluidStack(int fill, FluidType type) { this.fill = fill; @@ -13,7 +14,12 @@ public class FluidStack { } public FluidStack(FluidType type, int fill) { + this(type, fill, 0); + } + + public FluidStack(FluidType type, int fill, int pressure) { this.fill = fill; this.type = type; + this.pressure = pressure; } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerCompressor.java b/src/main/java/com/hbm/inventory/container/ContainerCompressor.java index 32e147770..e54aee2d3 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCompressor.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCompressor.java @@ -1,7 +1,9 @@ package com.hbm.inventory.container; +import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.tileentity.machine.TileEntityMachineCompressor; +import api.hbm.energy.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; @@ -16,7 +18,9 @@ public class ContainerCompressor extends Container { compressor = tile; //Fluid ID - this.addSlotToContainer(new Slot(tile, 0, 35, 72)); + this.addSlotToContainer(new Slot(tile, 0, 17, 72)); + //Battery + this.addSlotToContainer(new Slot(tile, 1, 152, 72)); for(int i = 0; i < 3; i++) { for(int j = 0; j < 9; j++) { @@ -43,12 +47,23 @@ public class ContainerCompressor extends Container { ItemStack var5 = var4.getStack(); var3 = var5.copy(); - if(index == 0) { - if(!this.mergeItemStack(var5, 1, this.inventorySlots.size(), true)) { + if(index < 2) { + if(!this.mergeItemStack(var5, 2, this.inventorySlots.size(), true)) { + return null; + } + } else { + + if(var3.getItem() instanceof IBatteryItem) { + if(!this.mergeItemStack(var5, 1, 2, false)) { + return null; + } + } else if(var3.getItem() instanceof IItemFluidIdentifier) { + if(!this.mergeItemStack(var5, 0, 1, false)) { + return null; + } + } else { return null; } - } else if(!this.mergeItemStack(var5, 0, 1, false)) { - return null; } if(var5.stackSize == 0) { diff --git a/src/main/java/com/hbm/inventory/recipes/CompressorRecipes.java b/src/main/java/com/hbm/inventory/recipes/CompressorRecipes.java new file mode 100644 index 000000000..15f5b2baa --- /dev/null +++ b/src/main/java/com/hbm/inventory/recipes/CompressorRecipes.java @@ -0,0 +1,57 @@ +package com.hbm.inventory.recipes; + +import java.io.IOException; +import java.util.HashMap; + +import com.google.gson.JsonElement; +import com.google.gson.stream.JsonWriter; +import com.hbm.inventory.FluidStack; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.recipes.loader.SerializableRecipe; +import com.hbm.util.Tuple.Pair; + +public class CompressorRecipes extends SerializableRecipe { + + public static HashMap, CompressorRecipe> recipes = new HashMap(); + + @Override + public void registerDefaults() { + + } + + public static class CompressorRecipe { + + public FluidStack output; + public int inputAmount; + + public CompressorRecipe(int input, FluidStack output) { + this.output = output; + this.inputAmount = input; + } + } + + @Override + public String getFileName() { + return "hbmCompressor.json"; + } + + @Override + public Object getRecipeObject() { + return recipes; + } + + @Override + public void deleteRecipes() { + recipes.clear(); + } + + @Override + public void readRecipe(JsonElement recipe) { + + } + + @Override + public void writeRecipe(Object recipe, JsonWriter writer) throws IOException { + + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java index 932e56e59..69c09f344 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java @@ -15,7 +15,7 @@ import net.minecraft.world.World; public class TileEntityMachineCompressor extends TileEntityMachineBase implements IGUIProvider { public TileEntityMachineCompressor() { - super(1); + super(2); } @Override From 7d8ee8ce2441ba3507e4c2051aa948f56c908296 Mon Sep 17 00:00:00 2001 From: Toshayo Date: Wed, 21 Jun 2023 22:40:56 +0200 Subject: [PATCH 142/432] Ported Sliding Blast Door from 1.12.2 using new door API. Introduced door skins --- src/main/java/com/hbm/blocks/ModBlocks.java | 7 +- .../hbm/blocks/generic/BlockDoorGeneric.java | 11 +- src/main/java/com/hbm/interfaces/IDoor.java | 18 +- .../inventory/recipes/AssemblerRecipes.java | 11 + src/main/java/com/hbm/items/ModItems.java | 9 +- .../com/hbm/items/special/ItemDoorSkin.java | 36 + .../special/ItemSlidingBlastDoorSkin.java | 22 + .../java/com/hbm/main/CraftingManager.java | 5 + .../java/com/hbm/main/ResourceManager.java | 13 +- .../com/hbm/packet/TEDoorAnimationPacket.java | 9 +- .../render/tileentity/RenderDoorGeneric.java | 6 +- .../java/com/hbm/tileentity/DoorDecl.java | 689 ++++++++++-------- .../hbm/tileentity/TileEntityDoorGeneric.java | 22 +- src/main/resources/assets/hbm/lang/en_US.lang | 2 + .../hbm/models/doors/sliding_blast_door.dae | 523 +++++++++++++ src/main/resources/assets/hbm/sounds.json | 3 + .../sounds/block/door/sliding_door_opened.ogg | Bin 0 -> 13499 bytes .../block/door/sliding_door_opening.ogg | Bin 0 -> 14886 bytes .../sounds/block/door/sliding_door_shut.ogg | Bin 0 -> 8560 bytes .../assets/hbm/textures/blocks/img.png | Bin 0 -> 153 bytes .../textures/blocks/sliding_blast_door.png | Bin 0 -> 246 bytes .../items/sliding_blast_door_default.png | Bin 0 -> 246 bytes .../items/sliding_blast_door_variant1.png | Bin 0 -> 5180 bytes .../items/sliding_blast_door_variant2.png | Bin 0 -> 4941 bytes .../models/doors/sliding_blast_door.png | Bin 0 -> 63126 bytes .../doors/sliding_blast_door_variant1.png | Bin 0 -> 48305 bytes .../doors/sliding_blast_door_variant2.png | Bin 0 -> 41151 bytes 27 files changed, 1080 insertions(+), 306 deletions(-) create mode 100644 src/main/java/com/hbm/items/special/ItemDoorSkin.java create mode 100644 src/main/java/com/hbm/items/special/ItemSlidingBlastDoorSkin.java create mode 100644 src/main/resources/assets/hbm/models/doors/sliding_blast_door.dae create mode 100644 src/main/resources/assets/hbm/sounds/block/door/sliding_door_opened.ogg create mode 100644 src/main/resources/assets/hbm/sounds/block/door/sliding_door_opening.ogg create mode 100644 src/main/resources/assets/hbm/sounds/block/door/sliding_door_shut.ogg create mode 100644 src/main/resources/assets/hbm/textures/blocks/img.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/sliding_blast_door.png create mode 100644 src/main/resources/assets/hbm/textures/items/sliding_blast_door_default.png create mode 100644 src/main/resources/assets/hbm/textures/items/sliding_blast_door_variant1.png create mode 100644 src/main/resources/assets/hbm/textures/items/sliding_blast_door_variant2.png create mode 100644 src/main/resources/assets/hbm/textures/models/doors/sliding_blast_door.png create mode 100644 src/main/resources/assets/hbm/textures/models/doors/sliding_blast_door_variant1.png create mode 100644 src/main/resources/assets/hbm/textures/models/doors/sliding_blast_door_variant2.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 1a9438c41..5db4eb22e 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -601,6 +601,7 @@ public class ModBlocks { public static Block vault_door; public static Block blast_door; + public static Block sliding_blast_door; public static Block fire_door; public static Block transition_seal; @@ -2064,6 +2065,9 @@ public class ModBlocks { vault_door = new VaultDoor(Material.iron).setBlockName("vault_door").setHardness(10.0F).setResistance(10000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":vault_door"); blast_door = new BlastDoor(Material.iron).setBlockName("blast_door").setHardness(10.0F).setResistance(10000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":blast_door"); + + sliding_blast_door = new BlockDoorGeneric(Material.iron, DoorDecl.SLIDE_DOOR).setBlockName("sliding_blast_door").setHardness(150.0F).setResistance(7500.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":sliding_blast_door"); + fire_door = new BlockDoorGeneric(Material.iron, DoorDecl.FIRE_DOOR).setBlockName("fire_door").setHardness(10.0F).setResistance(10000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fire_door"); transition_seal = new BlockDoorGeneric(Material.iron, DoorDecl.TRANSITION_SEAL).setBlockName("transition_seal").setHardness(10.0F).setResistance(10000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":transition_seal"); @@ -2985,7 +2989,8 @@ public class ModBlocks { GameRegistry.registerBlock(blast_door, blast_door.getUnlocalizedName()); GameRegistry.registerBlock(fire_door, fire_door.getUnlocalizedName()); GameRegistry.registerBlock(transition_seal, transition_seal.getUnlocalizedName()); - + GameRegistry.registerBlock(sliding_blast_door, sliding_blast_door.getUnlocalizedName()); + //Doors GameRegistry.registerBlock(door_metal, door_metal.getUnlocalizedName()); GameRegistry.registerBlock(door_office, door_office.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/generic/BlockDoorGeneric.java b/src/main/java/com/hbm/blocks/generic/BlockDoorGeneric.java index 4dad6a3a9..ea3780a27 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockDoorGeneric.java +++ b/src/main/java/com/hbm/blocks/generic/BlockDoorGeneric.java @@ -3,6 +3,7 @@ package com.hbm.blocks.generic; import java.util.List; import com.hbm.blocks.BlockDummyable; +import com.hbm.items.special.ItemDoorSkin; import com.hbm.tileentity.DoorDecl; import com.hbm.tileentity.TileEntityDoorGeneric; import com.hbm.util.fauxpointtwelve.BlockPos; @@ -54,12 +55,14 @@ public class BlockDoorGeneric extends BlockDummyable { TileEntityDoorGeneric door = (TileEntityDoorGeneric) world.getTileEntity(pos1[0], pos1[1], pos1[2]); if(door != null) { - return door.tryToggle(playerIn); + if(playerIn.getHeldItem() != null && playerIn.getHeldItem().getItem() instanceof ItemDoorSkin) { + return door.setSkinIndex((byte) playerIn.getHeldItem().getItemDamage()); + } else { + return door.tryToggle(playerIn); + } } } - if(!playerIn.isSneaking()) - return true; - return false; + return !playerIn.isSneaking(); } @Override diff --git a/src/main/java/com/hbm/interfaces/IDoor.java b/src/main/java/com/hbm/interfaces/IDoor.java index 2b101dd76..81d6229ed 100644 --- a/src/main/java/com/hbm/interfaces/IDoor.java +++ b/src/main/java/com/hbm/interfaces/IDoor.java @@ -2,16 +2,20 @@ package com.hbm.interfaces; public interface IDoor { - public void open(); - public void close(); - public DoorState getState(); - public void toggle(); - public default boolean setTexture(String tex) { + void open(); + void close(); + DoorState getState(); + void toggle(); + default boolean setTexture(String tex) { + return false; + } + default void setTextureState(byte tex) { } + + default boolean setSkinIndex(byte skinIndex) { return false; } - public default void setTextureState(byte tex) { }; - public enum DoorState { + enum DoorState { CLOSED, OPEN, CLOSING, diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 818f2b000..1144f469c 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -1174,6 +1174,17 @@ public class AssemblerRecipes { new ComparableStack(ModItems.bolt_dura_steel, 12), new OreDictStack(KEY_YELLOW, 4) }, 1200); + + makeRecipe(new ComparableStack(ModBlocks.sliding_blast_door, 1), new AStack[] { + new OreDictStack(STEEL.ingot(), 16), + new OreDictStack(W.ingot(), 8), + new ComparableStack(ModBlocks.reinforced_glass, 4), + new ComparableStack(Blocks.quartz_block, 10), + new ComparableStack(ModItems.plate_polymer, 3), + new ComparableStack(ModItems.bolt_tungsten, 3), + new ComparableStack(ModItems.bolt_dura_steel, 3), + new ComparableStack(ModItems.motor, 2) + }, 300); if(Loader.isModLoaded("Mekanism")) { diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 35b9cb0d5..006fd1a9e 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -2321,7 +2321,9 @@ public class ModItems { public static Item door_metal; public static Item door_office; public static Item door_bunker; - + + public static Item sliding_blast_door_skin; + public static Item record_lc; public static Item record_ss; public static Item record_vc; @@ -5349,6 +5351,8 @@ public class ModItems { door_office = new ItemModDoor().setUnlocalizedName("door_office").setCreativeTab(MainRegistry.blockTab).setTextureName(RefStrings.MODID + ":door_office"); door_bunker = new ItemModDoor().setUnlocalizedName("door_bunker").setCreativeTab(MainRegistry.blockTab).setTextureName(RefStrings.MODID + ":door_bunker"); + sliding_blast_door_skin = new ItemSlidingBlastDoorSkin().setUnlocalizedName("sliding_blast_door_skin").setCreativeTab(CreativeTabs.tabMisc).setTextureName(RefStrings.MODID + ":sliding_blast_door_default"); + record_lc = new ItemModRecord("lc").setUnlocalizedName("record_lc").setCreativeTab(CreativeTabs.tabMisc).setTextureName(RefStrings.MODID + ":record_lc"); record_ss = new ItemModRecord("ss").setUnlocalizedName("record_ss").setCreativeTab(CreativeTabs.tabMisc).setTextureName(RefStrings.MODID + ":record_ss"); record_vc = new ItemModRecord("vc").setUnlocalizedName("record_vc").setCreativeTab(CreativeTabs.tabMisc).setTextureName(RefStrings.MODID + ":record_vc"); @@ -7962,7 +7966,8 @@ public class ModItems { GameRegistry.registerItem(door_metal, door_metal.getUnlocalizedName()); GameRegistry.registerItem(door_office, door_office.getUnlocalizedName()); GameRegistry.registerItem(door_bunker, door_bunker.getUnlocalizedName()); - + GameRegistry.registerItem(sliding_blast_door_skin, sliding_blast_door_skin.getUnlocalizedName()); + //Records GameRegistry.registerItem(record_lc, record_lc.getUnlocalizedName()); GameRegistry.registerItem(record_ss, record_ss.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/special/ItemDoorSkin.java b/src/main/java/com/hbm/items/special/ItemDoorSkin.java new file mode 100644 index 000000000..c7211473f --- /dev/null +++ b/src/main/java/com/hbm/items/special/ItemDoorSkin.java @@ -0,0 +1,36 @@ +package com.hbm.items.special; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; + +import java.util.List; + +public class ItemDoorSkin extends Item { + protected final IIcon[] icons; + + public ItemDoorSkin(int skinCount) { + setMaxStackSize(1); + icons = new IIcon[skinCount]; + } + + @Override + public boolean getHasSubtypes() { + return true; + } + + @Override + public void getSubItems(Item item, CreativeTabs creativeTabs, List list) { + for(int i = 0; i < icons.length; i++) { + list.add(new ItemStack(item, 1, i)); + } + } + + @SideOnly(Side.CLIENT) + public IIcon getIconFromDamage(int meta) { + return icons[meta]; + } +} diff --git a/src/main/java/com/hbm/items/special/ItemSlidingBlastDoorSkin.java b/src/main/java/com/hbm/items/special/ItemSlidingBlastDoorSkin.java new file mode 100644 index 000000000..ab48475f8 --- /dev/null +++ b/src/main/java/com/hbm/items/special/ItemSlidingBlastDoorSkin.java @@ -0,0 +1,22 @@ +package com.hbm.items.special; + +import com.hbm.lib.RefStrings; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.texture.IIconRegister; + +public class ItemSlidingBlastDoorSkin extends ItemDoorSkin { + public ItemSlidingBlastDoorSkin() { + super(3); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister reg) { + this.itemIcon = reg.registerIcon(this.getIconString()); + + this.icons[0] = reg.registerIcon(RefStrings.MODID + ":sliding_blast_door_default"); + this.icons[1] = reg.registerIcon(RefStrings.MODID + ":sliding_blast_door_variant1"); + this.icons[2] = reg.registerIcon(RefStrings.MODID + ":sliding_blast_door_variant2"); + } +} diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 29b6606ed..c16fded4e 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -1083,6 +1083,11 @@ public class CraftingManager { ModItems.circuit_star_piece.stackFromEnum(ScrapType.BOARD_TRANSISTOR), ModItems.circuit_star_piece.stackFromEnum(ScrapType.BOARD_BLANK) }); + + addRecipeAuto(new ItemStack(ModItems.sliding_blast_door_skin), "SPS", "DPD", "SPS", 'P', Items.paper, 'D', "dye", 'S', STEEL.plate()); + addShapelessAuto(new ItemStack(ModItems.sliding_blast_door_skin, 1, 1), new ItemStack(ModItems.sliding_blast_door_skin, 1, 0)); + addShapelessAuto(new ItemStack(ModItems.sliding_blast_door_skin, 1, 2), new ItemStack(ModItems.sliding_blast_door_skin, 1, 1)); + addShapelessAuto(new ItemStack(ModItems.sliding_blast_door_skin), new ItemStack(ModItems.sliding_blast_door_skin, 1, 2)); } public static void crumple() { diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 3dfe7107b..59358d96d 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -290,7 +290,15 @@ public class ResourceManager { public static final IModelCustom blast_door_tooth = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blast_door_tooth.obj")); public static final IModelCustom blast_door_slider = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blast_door_slider.obj")); public static final IModelCustom blast_door_block = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blast_door_block.obj")); - + + //Sliding Blast Door + public static final ResourceLocation sliding_blast_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/sliding_blast_door.png"); + public static final ResourceLocation sliding_blast_door_variant1_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/sliding_blast_door_variant1.png"); + public static final ResourceLocation sliding_blast_door_variant2_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/sliding_blast_door_variant2.png"); + + public static AnimatedModel sliding_blast_door; + public static Animation sliding_blast_door_anim; + //Doors public static AnimatedModel transition_seal; public static Animation transition_seal_anim; @@ -1356,5 +1364,8 @@ public class ResourceManager { public static void loadAnimatedModels(){ transition_seal = ColladaLoader.load(new ResourceLocation(RefStrings.MODID, "models/doors/seal.dae"), true); transition_seal_anim = ColladaLoader.loadAnim(24040, new ResourceLocation(RefStrings.MODID, "models/doors/seal.dae")); + + sliding_blast_door = ColladaLoader.load(new ResourceLocation(RefStrings.MODID, "models/doors/sliding_blast_door.dae")); + sliding_blast_door_anim = ColladaLoader.loadAnim(1200, new ResourceLocation(RefStrings.MODID, "models/doors/sliding_blast_door.dae")); } } diff --git a/src/main/java/com/hbm/packet/TEDoorAnimationPacket.java b/src/main/java/com/hbm/packet/TEDoorAnimationPacket.java index 9ffa77c65..7321aa015 100644 --- a/src/main/java/com/hbm/packet/TEDoorAnimationPacket.java +++ b/src/main/java/com/hbm/packet/TEDoorAnimationPacket.java @@ -15,20 +15,22 @@ public class TEDoorAnimationPacket implements IMessage { public int x, y, z; public byte state; + public byte skinIndex; public byte texture; public TEDoorAnimationPacket() { } public TEDoorAnimationPacket(int x, int y, int z, byte state) { - this(x, y, z, state, (byte) -1); + this(x, y, z, state, (byte) 0, (byte) -1); } - public TEDoorAnimationPacket(int x, int y, int z, byte state, byte tex) { + public TEDoorAnimationPacket(int x, int y, int z, byte state, byte skinIndex, byte tex) { this.x = x; this.y = y; this.z = z; this.state = state; + this.skinIndex = skinIndex; this.texture = tex; } @@ -38,6 +40,7 @@ public class TEDoorAnimationPacket implements IMessage { y = buf.readInt(); z = buf.readInt(); state = buf.readByte(); + skinIndex = buf.readByte(); if(buf.readableBytes() == 1){ texture = buf.readByte(); } @@ -49,6 +52,7 @@ public class TEDoorAnimationPacket implements IMessage { buf.writeInt(y); buf.writeInt(z); buf.writeByte(state); + buf.writeByte(skinIndex); if(texture != -1){ buf.writeByte(texture); } @@ -63,6 +67,7 @@ public class TEDoorAnimationPacket implements IMessage { TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(m.x, m.y, m.z); if(te instanceof IAnimatedDoor){ ((IAnimatedDoor) te).handleNewState(m.state); + ((IAnimatedDoor) te).setSkinIndex(m.skinIndex); ((IAnimatedDoor) te).setTextureState(m.texture); } diff --git a/src/main/java/com/hbm/render/tileentity/RenderDoorGeneric.java b/src/main/java/com/hbm/render/tileentity/RenderDoorGeneric.java index 1849842df..080be2114 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderDoorGeneric.java +++ b/src/main/java/com/hbm/render/tileentity/RenderDoorGeneric.java @@ -65,7 +65,7 @@ public class RenderDoorGeneric extends TileEntitySpecialRenderer { AnimatedModel animModel = door.getAnimatedModel(); if(animModel != null){ Animation anim = door.getAnim(); - bindTexture(door.getTextureForPart("")); + bindTexture(door.getTextureForPart(te.getSkinIndex(), "")); long time = System.currentTimeMillis(); long startTime = te.state > 1 ? te.animStartTime : time; boolean reverse = te.state == 1 || te.state == 2; @@ -83,14 +83,14 @@ public class RenderDoorGeneric extends TileEntitySpecialRenderer { if(!door.doesRender(p.getLeft(), false)) continue; GL11.glPushMatrix(); - bindTexture(door.getTextureForPart(p.getLeft())); + bindTexture(door.getTextureForPart(te.getSkinIndex(), p.getLeft())); doPartTransform(door, p.getLeft(), openTicks, false); GL11.glCallList(p.getRight()); for(String name : door.getChildren(p.getLeft())){ if(!door.doesRender(name, true)) continue; GL11.glPushMatrix(); - bindTexture(door.getTextureForPart(name)); + bindTexture(door.getTextureForPart(te.getSkinIndex(), name)); doPartTransform(door, name, openTicks, true); model.renderPart(name); GL11.glPopMatrix(); diff --git a/src/main/java/com/hbm/tileentity/DoorDecl.java b/src/main/java/com/hbm/tileentity/DoorDecl.java index b770acb68..d977ae7a1 100644 --- a/src/main/java/com/hbm/tileentity/DoorDecl.java +++ b/src/main/java/com/hbm/tileentity/DoorDecl.java @@ -1,306 +1,425 @@ package com.hbm.tileentity; -import org.lwjgl.opengl.GL11; - import com.hbm.animloader.AnimatedModel; import com.hbm.animloader.Animation; import com.hbm.main.ResourceManager; import com.hbm.render.loader.WavefrontObjDisplayList; import com.hbm.util.BobMathUtil; - import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.ResourceLocation; +import org.lwjgl.opengl.GL11; public abstract class DoorDecl { - -public static final DoorDecl TRANSITION_SEAL = new DoorDecl(){ - - @Override - public String getOpenSoundStart() { - return "hbm:door.TransitionSealOpen"; - }; - - @Override - public float getSoundVolume(){ - return 6; - } - - @Override - @SideOnly(Side.CLIENT) - public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { - if(!partName.equals("base")){ - set(trans, 0, 3.5F*getNormTime(openTicks), 0); - } else { - super.getTranslation(partName, openTicks, child, trans); - } - }; - - @Override - @SideOnly(Side.CLIENT) - public void doOffsetTransform() { - GL11.glTranslated(0, 0, 0.5); - }; - - @Override - @SideOnly(Side.CLIENT) - public double[][] getClippingPlanes() { - return super.getClippingPlanes(); - }; - - @Override - public int timeToOpen() { - return 480; - }; - - @Override - public int[][] getDoorOpenRanges(){ - //3 is tall - //4 is wide - return new int[][]{{-9, 2, 0, 20, 20, 1}}; - } - @Override - public int[] getDimensions(){ - return new int[]{23, 0, 0, 0, 13, 12}; - } - - @Override - public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { - return super.getBlockBound(x, y, z, open); - }; + public static final DoorDecl TRANSITION_SEAL = new DoorDecl() { - @Override - @SideOnly(Side.CLIENT) - public ResourceLocation getTextureForPart(String partName){ - return ResourceManager.transition_seal_tex; - } + @Override + public String getOpenSoundStart() { + return "hbm:door.TransitionSealOpen"; + } - @Override - @SideOnly(Side.CLIENT) - public Animation getAnim() { - return ResourceManager.transition_seal_anim; - }; - - @Override - @SideOnly(Side.CLIENT) - public AnimatedModel getAnimatedModel() { - return ResourceManager.transition_seal; - }; - - @Override - @SideOnly(Side.CLIENT) - public WavefrontObjDisplayList getModel(){ - return null; - } - }; - -public static final DoorDecl FIRE_DOOR = new DoorDecl(){ - - @Override - public String getOpenSoundEnd() { - return "hbm:door.wghStop"; - }; - @Override - public String getOpenSoundLoop() { - return "hbm:door.wghStart"; - }; - @Override - public String getSoundLoop2() { - return "hbm:door.alarm6"; - }; - - @Override - public float getSoundVolume(){ - return 2; - } - - @Override - @SideOnly(Side.CLIENT) - public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { - if(!partName.equals("frame")){ - set(trans, 0, 3*getNormTime(openTicks), 0); - } else { - super.getTranslation(partName, openTicks, child, trans); - } - }; - - @Override - @SideOnly(Side.CLIENT) - public void doOffsetTransform() { - GL11.glTranslated(0, 0, 0.5); - }; - - @Override - @SideOnly(Side.CLIENT) - public double[][] getClippingPlanes() { - return new double[][]{{0, -1, 0, 3.0001}}; - }; - - @Override - public int timeToOpen() { - return 160; - }; - - @Override - public int[][] getDoorOpenRanges(){ - return new int[][]{{-1, 0, 0, 3, 4, 1}}; - } + @Override + public float getSoundVolume() { + return 6; + } - @Override - public int[] getDimensions(){ - return new int[]{2, 0, 0, 0, 2, 1}; - } - - @Override - public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { - if(!open) - return AxisAlignedBB.getBoundingBox(0, 0, 0, 1, 1, 1); - if(z == 1){ - return AxisAlignedBB.getBoundingBox(0.5, 0, 0, 1, 1, 1); - } else if(z == -2){ - return AxisAlignedBB.getBoundingBox(0, 0, 0, 0.5, 1, 1); - } else if(y > 1){ - return AxisAlignedBB.getBoundingBox(0, 0.75, 0, 1, 1, 1); - } else if(y == 0) { - return AxisAlignedBB.getBoundingBox(0, 0, 0, 1, 0.1, 1); - } else { - return super.getBlockBound(x, y, z, open); - } - }; + @Override + @SideOnly(Side.CLIENT) + public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { + if (!partName.equals("base")) { + set(trans, 0, 3.5F * getNormTime(openTicks), 0); + } else { + super.getTranslation(partName, openTicks, child, trans); + } + } - @Override - @SideOnly(Side.CLIENT) - public ResourceLocation getTextureForPart(String partName){ - return ResourceManager.fire_door_tex; - } + @Override + @SideOnly(Side.CLIENT) + public void doOffsetTransform() { + GL11.glTranslated(0, 0, 0.5); + } - @Override - @SideOnly(Side.CLIENT) - public WavefrontObjDisplayList getModel(){ - return ResourceManager.fire_door; - } - }; + @Override + @SideOnly(Side.CLIENT) + public double[][] getClippingPlanes() { + return super.getClippingPlanes(); + } - //Format: x, y, z, tangent amount 1 (how long the door would be if it moved up), tangent amount 2 (door places blocks in this direction), axis (0-x, 1-y, 2-z) - public abstract int[][] getDoorOpenRanges(); - - public abstract int[] getDimensions(); - - public float getDoorRangeOpenTime(int ticks, int idx){ - return getNormTime(ticks); - } - - public int timeToOpen(){ - return 20; - } - - public float getNormTime(float time){ - return getNormTime(time, 0, timeToOpen()); - } - - public float getNormTime(float time, float min, float max){ - return BobMathUtil.remap01_clamp(time, min, max); - } - - @SideOnly(Side.CLIENT) - public abstract ResourceLocation getTextureForPart(String partName); - - @SideOnly(Side.CLIENT) - public abstract WavefrontObjDisplayList getModel(); - - @SideOnly(Side.CLIENT) - public AnimatedModel getAnimatedModel(){ - return null; - } - - @SideOnly(Side.CLIENT) - public Animation getAnim(){ - return null; - } - - @SideOnly(Side.CLIENT) - public void getTranslation(String partName, float openTicks, boolean child, float[] trans){ - set(trans, 0, 0, 0); - } - - @SideOnly(Side.CLIENT) - public void getRotation(String partName, float openTicks, float[] rot){ - set(rot, 0, 0, 0); - } - - @SideOnly(Side.CLIENT) - public void getOrigin(String partName, float[] orig){ - set(orig, 0, 0, 0); - } - - @SideOnly(Side.CLIENT) - public boolean doesRender(String partName, boolean child){ - return true; - } - - private static final String[] nothing = new String[]{}; - - @SideOnly(Side.CLIENT) - public String[] getChildren(String partName){ - return nothing; - } - - @SideOnly(Side.CLIENT) - public double[][] getClippingPlanes(){ - return new double[][]{}; - } - - @SideOnly(Side.CLIENT) - public void doOffsetTransform(){ - } - - public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open){ - return open ? AxisAlignedBB.getBoundingBox(0, 0, 0, 0, 0, 0) : AxisAlignedBB.getBoundingBox(0, 0, 0, 1, 1, 1); - } - - public boolean isLadder(boolean open){ - return false; - } - - public String getOpenSoundLoop(){ - return null; - } - - //Hack - public String getSoundLoop2(){ - return null; - } - - public String getCloseSoundLoop(){ - return getOpenSoundLoop(); - } - - public String getOpenSoundStart(){ - return null; - } - - public String getCloseSoundStart(){ - return getOpenSoundStart(); - } - - public String getOpenSoundEnd(){ - return null; - } - - public String getCloseSoundEnd(){ - return getOpenSoundEnd(); - } - - public float getSoundVolume(){ - return 1; - } - - public float[] set(float[] f, float x, float y, float z){ - f[0] = x; - f[1] = y; - f[2] = z; - return f; - }; + @Override + public int timeToOpen() { + return 480; + } + + @Override + public int[][] getDoorOpenRanges() { + //3 is tall + //4 is wide + return new int[][]{{-9, 2, 0, 20, 20, 1}}; + } + + @Override + public int[] getDimensions() { + return new int[]{23, 0, 0, 0, 13, 12}; + } + + @Override + public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { + return super.getBlockBound(x, y, z, open); + } + + @Override + @SideOnly(Side.CLIENT) + public ResourceLocation getTextureForPart(int skinIndex, String partName) { + return ResourceManager.transition_seal_tex; + } + + @Override + @SideOnly(Side.CLIENT) + public Animation getAnim() { + return ResourceManager.transition_seal_anim; + } + + @Override + @SideOnly(Side.CLIENT) + public AnimatedModel getAnimatedModel() { + return ResourceManager.transition_seal; + } + + @Override + @SideOnly(Side.CLIENT) + public WavefrontObjDisplayList getModel() { + return null; + } + }; + + public static final DoorDecl FIRE_DOOR = new DoorDecl() { + + @Override + public String getOpenSoundEnd() { + return "hbm:door.wghStop"; + } + + @Override + public String getOpenSoundLoop() { + return "hbm:door.wghStart"; + } + + @Override + public String getSoundLoop2() { + return "hbm:door.alarm6"; + } + + @Override + public float getSoundVolume() { + return 2; + } + + @Override + @SideOnly(Side.CLIENT) + public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { + if (!partName.equals("frame")) { + set(trans, 0, 3 * getNormTime(openTicks), 0); + } else { + super.getTranslation(partName, openTicks, child, trans); + } + } + + @Override + @SideOnly(Side.CLIENT) + public void doOffsetTransform() { + GL11.glTranslated(0, 0, 0.5); + } + + @Override + @SideOnly(Side.CLIENT) + public double[][] getClippingPlanes() { + return new double[][]{{0, -1, 0, 3.0001}}; + } + + @Override + public int timeToOpen() { + return 160; + } + + @Override + public int[][] getDoorOpenRanges() { + return new int[][]{{-1, 0, 0, 3, 4, 1}}; + } + + @Override + public int[] getDimensions() { + return new int[]{2, 0, 0, 0, 2, 1}; + } + + @Override + public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { + if (!open) + return AxisAlignedBB.getBoundingBox(0, 0, 0, 1, 1, 1); + if (z == 1) { + return AxisAlignedBB.getBoundingBox(0.5, 0, 0, 1, 1, 1); + } else if (z == -2) { + return AxisAlignedBB.getBoundingBox(0, 0, 0, 0.5, 1, 1); + } else if (y > 1) { + return AxisAlignedBB.getBoundingBox(0, 0.75, 0, 1, 1, 1); + } else if (y == 0) { + return AxisAlignedBB.getBoundingBox(0, 0, 0, 1, 0.1, 1); + } else { + return super.getBlockBound(x, y, z, open); + } + } + + @Override + @SideOnly(Side.CLIENT) + public ResourceLocation getTextureForPart(int skinIndex, String partName) { + return ResourceManager.fire_door_tex; + } + + @Override + @SideOnly(Side.CLIENT) + public WavefrontObjDisplayList getModel() { + return ResourceManager.fire_door; + } + }; + + public static final DoorDecl SLIDE_DOOR = new DoorDecl() { + @Override + public String getOpenSoundEnd() { + return "hbm:door.sliding_door_opened"; + } + + @Override + public String getCloseSoundEnd() { + return "hbm:door.sliding_door_shut"; + } + + @Override + public String getOpenSoundLoop() { + return "hbm:door.sliding_door_opening"; + } + + @Override + public String getSoundLoop2() { + return "hbm:door.sliding_door_opening"; + } + + @Override + public float getSoundVolume() { + return 2; + } + + @Override + @SideOnly(Side.CLIENT) + public void doOffsetTransform() { + GL11.glRotated(-90, 0, 1, 0); + } + + @Override + @SideOnly(Side.CLIENT) + public double[][] getClippingPlanes() { + return new double[][]{ + {-1, 0, 0, 3.50001}, + {1, 0, 0, 3.50001} + }; + } + + @Override + public int timeToOpen() { + return 24; + } + + @Override + public int[][] getDoorOpenRanges() { + return new int[][]{{-2, 0, 0, 4, 5, 1}}; + } + + @Override + public int[] getDimensions() { + return new int[]{3, 0, 0, 0, 3, 3}; + } + + @Override + public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { + if (open) { + if (y == 3) { + return AxisAlignedBB.getBoundingBox(0, 0.5, 0, 1, 1, 1); + } else if (y == 0) { + return AxisAlignedBB.getBoundingBox(0, 0, 0, 1, 0.08, 1); + } + } + return super.getBlockBound(x, y, z, open); + } + + @Override + public boolean hasSkins() { + return true; + } + + @Override + public int getSkinCount() { + return 3; + } + + @Override + @SideOnly(Side.CLIENT) + public ResourceLocation getTextureForPart(int skinIndex, String partName) { + return new ResourceLocation[] { + ResourceManager.sliding_blast_door_tex, + ResourceManager.sliding_blast_door_variant1_tex, + ResourceManager.sliding_blast_door_variant2_tex + }[skinIndex]; + } + + @Override + public WavefrontObjDisplayList getModel() { + return null; + } + + @Override + public Animation getAnim() { + return ResourceManager.sliding_blast_door_anim; + } + + @Override + public AnimatedModel getAnimatedModel() { + return ResourceManager.sliding_blast_door; + } + }; + + //Format: x, y, z, tangent amount 1 (how long the door would be if it moved up), tangent amount 2 (door places blocks in this direction), axis (0-x, 1-y, 2-z) + public abstract int[][] getDoorOpenRanges(); + + public abstract int[] getDimensions(); + + public float getDoorRangeOpenTime(int ticks, int idx) { + return getNormTime(ticks); + } + + public int timeToOpen() { + return 20; + } + + public float getNormTime(float time) { + return getNormTime(time, 0, timeToOpen()); + } + + public float getNormTime(float time, float min, float max) { + return BobMathUtil.remap01_clamp(time, min, max); + } + + public boolean hasSkins() { + return false; + } + + public int getSkinCount() { + return 0; + } + + @SideOnly(Side.CLIENT) + public ResourceLocation getTextureForPart(String partName) { + return getTextureForPart(0, partName); + } + + @SideOnly(Side.CLIENT) + public abstract ResourceLocation getTextureForPart(int skinIndex, String partName); + + @SideOnly(Side.CLIENT) + public abstract WavefrontObjDisplayList getModel(); + + @SideOnly(Side.CLIENT) + public AnimatedModel getAnimatedModel() { + return null; + } + + @SideOnly(Side.CLIENT) + public Animation getAnim() { + return null; + } + + @SideOnly(Side.CLIENT) + public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { + set(trans, 0, 0, 0); + } + + @SideOnly(Side.CLIENT) + public void getRotation(String partName, float openTicks, float[] rot) { + set(rot, 0, 0, 0); + } + + @SideOnly(Side.CLIENT) + public void getOrigin(String partName, float[] orig) { + set(orig, 0, 0, 0); + } + + @SideOnly(Side.CLIENT) + public boolean doesRender(String partName, boolean child) { + return true; + } + + private static final String[] nothing = new String[]{}; + + @SideOnly(Side.CLIENT) + public String[] getChildren(String partName) { + return nothing; + } + + @SideOnly(Side.CLIENT) + public double[][] getClippingPlanes() { + return new double[][]{}; + } + + @SideOnly(Side.CLIENT) + public void doOffsetTransform() { + } + + public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { + return open ? AxisAlignedBB.getBoundingBox(0, 0, 0, 0, 0, 0) : AxisAlignedBB.getBoundingBox(0, 0, 0, 1, 1, 1); + } + + public boolean isLadder(boolean open) { + return false; + } + + public String getOpenSoundLoop() { + return null; + } + + //Hack + public String getSoundLoop2() { + return null; + } + + public String getCloseSoundLoop() { + return getOpenSoundLoop(); + } + + public String getOpenSoundStart() { + return null; + } + + public String getCloseSoundStart() { + return getOpenSoundStart(); + } + + public String getOpenSoundEnd() { + return null; + } + + public String getCloseSoundEnd() { + return getOpenSoundEnd(); + } + + public float getSoundVolume() { + return 1; + } + + public float[] set(float[] f, float x, float y, float z) { + f[0] = x; + f[1] = y; + f[2] = z; + return f; + } + + ; } diff --git a/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java b/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java index 386737ab3..2f2636495 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java +++ b/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java @@ -33,6 +33,8 @@ public class TileEntityDoorGeneric extends TileEntityLockableBase implements IAn public long animStartTime = 0; public int redstonePower; public boolean shouldUseBB = false; + private byte skinIndex = 0; + public Set activatedBlocks = new HashSet<>(4); private AudioWrapper audio; @@ -140,7 +142,7 @@ public class TileEntityDoorGeneric extends TileEntityLockableBase implements IAn if(state == 2 && openTicks == 0) { state = 0; } - PacketDispatcher.wrapper.sendToAllAround(new TEDoorAnimationPacket(xCoord, yCoord, zCoord, state, (byte)(shouldUseBB ? 1 : 0)), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 100)); + PacketDispatcher.wrapper.sendToAllAround(new TEDoorAnimationPacket(xCoord, yCoord, zCoord, state, skinIndex, (byte)(shouldUseBB ? 1 : 0)), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 100)); if(redstonePower == -1 && state == 0){ tryToggle(-1); @@ -288,6 +290,21 @@ public class TileEntityDoorGeneric extends TileEntityLockableBase implements IAn shouldUseBB = false; } + public int getSkinIndex() { + return skinIndex; + } + + @Override + public boolean setSkinIndex(byte skinIndex) { + if(!getDoorType().hasSkins()) + return false; + if(getDoorType().getSkinCount() < skinIndex) { + return false; + } + this.skinIndex = skinIndex; + return true; + } + @Override public AxisAlignedBB getRenderBoundingBox(){ return INFINITE_EXTENT_AABB; @@ -305,6 +322,7 @@ public class TileEntityDoorGeneric extends TileEntityLockableBase implements IAn this.animStartTime = tag.getInteger("animStartTime"); this.redstonePower = tag.getInteger("redstoned"); this.shouldUseBB = tag.getBoolean("shouldUseBB"); + this.skinIndex = tag.getByte("skin"); NBTTagCompound activatedBlocks = tag.getCompoundTag("activatedBlocks"); this.activatedBlocks.clear(); for(int i = 0; i < activatedBlocks.func_150296_c().size()/3; i ++){ @@ -322,6 +340,8 @@ public class TileEntityDoorGeneric extends TileEntityLockableBase implements IAn tag.setLong("animStartTime", animStartTime); tag.setInteger("redstoned", redstonePower); tag.setBoolean("shouldUseBB", shouldUseBB); + if(getDoorType().hasSkins()) + tag.setByte("skin", skinIndex); NBTTagCompound activatedBlocks = new NBTTagCompound(); int i = 0; for(BlockPos p : this.activatedBlocks){ diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index a7feb2556..925bde4ae 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -3838,6 +3838,7 @@ item.singularity_super_heated.name=Superheated Resonating Singularity item.siox.name=SiOX Cancer Medication item.siox.desc=Reverses mesothelioma with the power of Asbestos! item.siren_track.name=Siren Track +item.sliding_blast_door_skin.name=Sliding Blast Door Skin item.smashing_hammer.name=Smashing Hammer item.solid_fuel.name=Solid Fuel item.solid_fuel_bf.name=Solid Fuel (Balefire) @@ -5083,6 +5084,7 @@ tile.sellafield.4.name=Infernal Sellafite tile.sellafield.5.name=Sellafite-Corium tile.sellafield_slaked.name=Slaked Sellafite tile.semtex.name=Semtex +tile.sliding_blast_door.name=Sliding Blast Door tile.solar_mirror.name=Heliostat Mirror tile.soyuz_capsule.name=Cargo Landing Capsule tile.soyuz_launcher.name=Soyuz Launch Platform diff --git a/src/main/resources/assets/hbm/models/doors/sliding_blast_door.dae b/src/main/resources/assets/hbm/models/doors/sliding_blast_door.dae new file mode 100644 index 000000000..5e24b46e3 --- /dev/null +++ b/src/main/resources/assets/hbm/models/doors/sliding_blast_door.dae @@ -0,0 +1,523 @@ + + + + + Blender User + Blender 2.90.0 commit date:2020-08-31, commit time:11:26, hash:0330d1af29c0 + + 2020-09-23T20:18:02 + 2020-09-23T20:18:02 + + Z_UP + + + + + + + door0_png + + + + + door0_png-surface + + + + + + 0 0 0 1 + + + + + + 1.45 + + + + + + + + + door0.png + + + + + + + + + + + + -0.09754508 -0.4903927 -0.242556 -0.08284217 -0.4164779 -0.317556 -0.1913416 -0.4619397 -0.242556 -0.1625014 -0.3923135 -0.317556 -0.2777849 -0.4157344 -0.242556 -0.2359154 -0.3530725 -0.317556 -0.3535535 -0.3535532 -0.242556 -0.3002642 -0.3002633 -0.317556 -0.4157346 -0.277785 -0.242556 -0.3530725 -0.2359158 -0.317556 -0.4619393 -0.1913415 -0.242556 -0.3923131 -0.1625013 -0.317556 -0.4903929 -0.09754502 -0.242556 -0.4164781 -0.08284199 -0.317556 -0.5004594 0.00187844 -0.2425482 -0.4246374 0 -0.317556 -0.4903926 0.09754526 -0.242556 -0.4164779 0.08284246 -0.317556 -0.4619393 0.1913417 -0.242556 -0.392313 0.1625016 -0.317556 -0.4157346 0.2777853 -0.242556 -0.3530727 0.2359158 -0.317556 -0.3535535 0.3535535 -0.242556 -0.3002639 0.3002639 -0.317556 -0.2777848 0.4157353 -0.242556 -0.2359154 0.3530734 -0.317556 -0.1913416 0.4619403 -0.242556 -0.1625011 0.3923142 -0.317556 -0.09754508 0.4903932 -0.242556 -0.08284294 0.4164784 -0.317556 -0.09754508 -0.4903927 0.207669 -0.08284217 -0.4164779 0.282669 -0.1913416 -0.4619397 0.207669 -0.1625014 -0.3923135 0.282669 -0.2777849 -0.4157344 0.207669 -0.2359154 -0.3530725 0.282669 -0.3535535 -0.3535532 0.207669 -0.3002642 -0.3002633 0.282669 -0.4157346 -0.277785 0.207669 -0.3530725 -0.2359158 0.282669 -0.4619393 -0.1913415 0.207669 -0.3923131 -0.1625013 0.282669 -0.4903929 -0.09754502 0.207669 -0.4164781 -0.08284199 0.282669 -0.4995414 -0.001877963 0.2076613 -0.4246374 0 0.282669 -0.4903926 0.09754526 0.207669 -0.4164779 0.08284246 0.282669 -0.4619393 0.1913417 0.207669 -0.392313 0.1625016 0.282669 -0.4157346 0.2777853 0.207669 -0.3530727 0.2359158 0.282669 -0.3535535 0.3535535 0.207669 -0.3002639 0.3002639 0.282669 -0.2777848 0.4157353 0.207669 -0.2359154 0.3530734 0.282669 -0.1913416 0.4619403 0.207669 -0.1625011 0.3923142 0.282669 -0.09754508 0.4903932 0.207669 -0.08284294 0.4164784 0.282669 -2.7797e-7 0.4163811 0.262669 -0.01996839 0.4226706 0.282669 -2.86847e-7 0.5 0.1794527 -0.01996773 0.4980335 0.207669 -2.7797e-7 0.4163811 -0.297556 -0.01996839 0.4226706 -0.317556 -2.86847e-7 0.5 -0.2143397 -0.01996773 0.4980335 -0.242556 -0.01996713 -0.4980334 -0.242556 2.86847e-7 -0.5 -0.2143397 2.63627e-7 -0.4163811 -0.297556 -0.01996779 -0.4226704 -0.317556 -0.01996713 -0.4980334 0.207669 2.86847e-7 -0.5 0.1794527 0.2795697 0.2081907 -0.152556 0.27957 -0.2081903 -0.152556 2.63627e-7 -0.4163811 0.262669 -0.01996779 -0.4226704 0.282669 0.2795697 0.2081907 0.117669 0.27957 -0.2081903 0.117669 + + + + + + + + + + -0.6343932 0.7730106 0 -0.634393 0.7730109 0 -0.6343933 0.7730106 0 -0.3918982 -0.5865173 0.7088112 -0.4987916 -0.498792 0.7088113 -0.4987914 -0.4987922 0.7088114 -0.1376165 -0.6918438 -0.7088117 -0.2699458 -0.6517022 -0.7088114 -0.1376158 -0.6918442 -0.7088114 -0.3918983 -0.5865174 -0.7088111 -0.2699457 -0.6517022 -0.7088115 -0.4987917 -0.4987921 -0.7088112 -0.3918983 -0.5865177 -0.7088109 -0.5865182 -0.3918968 -0.7088112 -0.4987915 -0.498792 -0.7088115 -0.6517023 -0.2699455 -0.7088114 -0.5865182 -0.3918969 -0.7088112 -0.6918433 -0.1376187 -0.7088116 -0.651702 -0.2699455 -0.7088116 -0.6914468 -0.1380745 -0.70911 -0.7036247 -0.00131309 -0.7105706 -0.7040166 0.001163065 -0.7101826 -0.6908355 0.1386065 -0.7096018 -0.651703 0.2699446 -0.7088111 -0.6914079 0.1398018 -0.7088093 -0.5865182 0.3918963 -0.7088115 -0.6517027 0.269945 -0.7088113 -0.5865183 0.3918968 -0.7088112 -0.4987924 0.4987913 -0.7088112 -0.391899 0.5865169 -0.7088112 -0.4987925 0.4987915 -0.7088112 -0.2699452 0.6517028 -0.7088111 -0.3918986 0.5865172 -0.7088111 -0.1376148 0.691845 -0.7088108 -0.2699449 0.6517028 -0.7088112 0 0 -1 0 2.23898e-7 -1 0 2.44089e-7 -1 -0.7730121 -0.6343914 0 -0.7730121 -0.6343913 0 -0.5865182 0.391897 0.7088111 -0.4987924 0.4987913 0.7088114 -0.4987923 0.4987916 0.7088112 -0.994697 0.1028484 3.86987e-4 -0.9956281 0.09337615 0.002420604 -0.9945092 0.1046497 0 -0.6922908 -0.1371796 0.7084598 -0.7072311 -0.002328574 0.7069787 -0.6920359 -0.1366496 0.7088112 -0.06930738 -0.7037019 -0.707107 -0.06930822 -0.7037011 -0.7071076 1 2.77687e-7 0 1 2.77687e-7 0 -0.6918437 0.1376188 0.7088114 -0.651703 0.2699447 0.7088111 -0.6928161 0.1364942 0.7080786 0.597267 -0.8020426 0 0.5972671 -0.8020426 0 0.597267 -0.8020426 0 -0.1376149 0.6918449 0.7088109 -0.06930512 0.7037024 0.7071066 -0.06930601 0.7037022 0.7071068 -0.3918989 0.5865168 0.7088112 -0.2699451 0.6517028 0.7088111 -0.3918989 0.586517 0.7088111 -0.9569385 -0.290291 0 -0.9569385 -0.290291 0 -0.9569385 -0.2902909 0 0 5.97108e-7 1 0 1.38861e-7 1 0 4.89142e-7 1 -0.5865181 -0.3918969 0.7088113 -0.6517022 -0.2699455 0.7088114 -0.5865182 -0.3918969 0.7088112 0.4604119 2.99879e-7 0.8877055 0.4604119 2.90584e-7 0.8877055 0.4604119 2.84085e-7 0.8877055 0.6818548 -0.5159897 0.518487 0.6818463 -0.5159928 0.5184951 0.6818447 -0.5159934 0.5184967 -0.6343903 -0.773013 0 -0.6343906 -0.7730128 0 -0.6343902 -0.7730129 0 -0.7067841 -3.6214e-4 0.7074292 -0.5865182 0.3918964 0.7088115 -0.1376146 0.6918448 0.7088111 -0.06930732 -0.7037019 0.7071068 -0.1376165 -0.6918439 0.7088115 -0.06930816 -0.7037014 0.7071073 0.6818493 0.5159911 0.5184929 0.6818571 0.5159883 0.5184854 0.6818478 0.5159917 0.5184944 0.7076703 4.96666e-7 0.7065428 0.7076709 4.36843e-7 0.7065423 0.7076709 4.35285e-7 0.7065423 1 6.44172e-7 0 -0.8819222 -0.471395 0 -0.8819223 -0.4713949 0 -0.8819222 -0.471395 0 -0.9949877 -0.09999227 0.001029133 -0.9953851 -0.09596174 1.64625e-4 -0.9949128 -0.1007338 0.001188278 -0.4713987 0.8819202 0 -0.290286 -0.9569399 0 -0.2902855 -0.9569401 0 -0.2902855 -0.9569402 0 -0.9569392 0.2902885 0 -0.9569393 0.2902885 0 -0.9569392 0.2902885 0 -0.1376149 0.691845 -0.7088108 -0.06930506 0.7037028 -0.7071062 0.6818575 0.5159879 -0.5184853 0.6818491 0.5159913 -0.5184928 0.6818476 0.515992 -0.5184943 0.6818549 -0.5159896 -0.518487 0.6818468 -0.5159925 -0.5184947 0.6818563 -0.5159891 -0.5184857 0.7076709 5.18025e-7 -0.7065423 0.7076714 4.75952e-7 -0.7065417 0.7076709 5.18853e-7 -0.7065423 1 0 0 1 0 0 0.4604119 3.24432e-7 -0.8877055 0.4604119 3.30949e-7 -0.8877055 0.4604119 3.19875e-7 -0.8877055 -0.8819226 0.4713943 0 -0.8819226 0.4713944 0 -0.8819226 0.4713943 0 0.597266 0.8020432 0 0.597266 0.8020431 0 0.5972661 0.8020432 0 -0.7730118 0.6343917 0 -0.2699457 -0.6517022 0.7088115 -0.2699459 -0.6517023 0.7088112 -0.2902847 0.9569404 0 -0.2902842 0.9569405 0 -0.2902848 0.9569404 0 -0.4714003 -0.8819194 0 -0.4713999 -0.8819196 0 -0.4713998 -0.8819196 0 -0.09801191 0.9951853 -3.8043e-7 -0.09801286 0.9951852 -2.13198e-6 -0.09801191 0.9951853 -5.68066e-7 -0.09801632 -0.9951849 1.60855e-7 -0.09801632 -0.9951849 -1.62177e-7 -0.09801626 -0.9951848 0 -0.6343929 0.7730109 0 -0.3918983 -0.5865173 0.7088112 0 6.7705e-7 -1 0 3.34205e-7 -1 0 -5.35771e-7 -1 0 -1.62897e-7 -1 0 -1.16722e-6 -1 0 -1.3466e-7 -1 0 -1.94201e-6 -1 0 7.26139e-6 -1 0 7.26151e-6 -1 0 -4.09277e-6 -1 0 -2.69318e-7 -1 -0.7730122 -0.6343914 0 -0.9957892 0.09163045 0.002795159 -0.6517027 0.2699446 0.7088115 0.5972672 -0.8020424 0 -0.2699449 0.6517025 0.7088115 -0.9569385 -0.290291 0 0 -3.99966e-7 1 0 -2.23898e-7 1 0 -2.77085e-7 1 0 0 1 0 5.35771e-7 1 0 0 1 0 0 1 0 1.0104e-6 1 0 7.26139e-6 1 0 2.08782e-7 1 0 -1.16722e-6 1 -0.6517019 -0.2699454 0.7088118 0.4604119 3.14074e-7 0.8877055 0.6818562 -0.5159893 0.5184856 -0.6343907 -0.7730127 0 -0.1376154 -0.6918442 0.7088115 0.6818584 0.5159878 0.5184841 0.7076703 4.97843e-7 0.7065428 1 6.44172e-7 0 -0.8819223 -0.4713948 0 -0.9954588 -0.09519404 0 -0.2902861 -0.9569399 0 -0.9569392 0.2902885 0 -0.06930601 0.7037022 -0.7071068 0.6818588 0.5159873 -0.518484 0.6818452 -0.5159931 -0.5184962 0.7076715 4.74856e-7 -0.7065417 1 0 0 0.4604119 3.40901e-7 -0.8877055 -0.8819226 0.4713944 0 0.597266 0.8020433 0 -0.2902842 0.9569406 0 -0.4714004 -0.8819195 0 -0.09801262 0.9951853 5.71151e-7 -0.09801316 0.9951852 2.14356e-6 -0.09801262 0.9951853 3.82497e-7 -0.0980162 -0.9951848 -6.08658e-7 -0.09801632 -0.9951849 0 -0.09801614 -0.9951848 6.03696e-7 + + + + + + + + + + 0.6835938 0.08984375 0.6914063 0.05078125 0.6914063 0.08984375 0.6132813 0.05078125 0.6210938 0.04296875 0.6210938 0.05078125 0.5976563 0.08984375 0.6054688 0.09765625 0.5976563 0.09765625 0.6132813 0.08984375 0.6054688 0.09765625 0.6054688 0.08984375 0.6132813 0.08984375 0.6210938 0.09765625 0.6132813 0.09765625 0.6289063 0.08984375 0.6210938 0.09765625 0.6210938 0.08984375 0.6367188 0.08984375 0.6289063 0.09765625 0.6289063 0.08984375 0.6367188 0.08984375 0.6445313 0.09765625 0.6367188 0.09765625 0.6445313 0.08984375 0.6523438 0.09765625 0.6445313 0.09765625 0.6523438 0.08984375 0.6601563 0.09765625 0.6523438 0.09765625 0.6679688 0.08984375 0.6601563 0.09765625 0.6601563 0.08984375 0.6679688 0.08984375 0.6757813 0.09765625 0.6679688 0.09765625 0.6757813 0.08984375 0.6835938 0.09765625 0.6757813 0.09765625 0.6914063 0.08984375 0.6835938 0.09765625 0.6835938 0.08984375 0.6992188 0.08984375 0.6914063 0.09765625 0.6914063 0.08984375 0.6992188 0.08984375 0.7070313 0.09765625 0.6992188 0.09765625 0.6445313 0.09873586 0.6523438 0.09765625 0.6132813 0.1367187 0.6210938 0.08984375 0.6289063 0.05078125 0.6289063 0.08984375 0.6757813 0.05078125 0.6835938 0.04296875 0.6835938 0.05078125 0.6523438 0.08984375 0.6601563 0.05078125 0.6601563 0.08984375 0.6445313 0.04296875 0.6523438 0.05078125 0.6445313 0.05078125 0.5976563 0.08984375 0.5898438 0.09765625 0.5898438 0.08984375 0.6015625 0.15625 0.59375 0.203125 0.59375 0.1640625 0.6601563 0.04296875 0.6679688 0.05078125 0.6601563 0.05078125 0.6328125 0.171875 0.6015625 0.2109375 0.6015625 0.15625 0.7070313 0.05078125 0.7148438 0.04296875 0.7148438 0.05078125 0.6914063 0.04296875 0.6992188 0.05078125 0.6914063 0.05078125 0.6367188 0.08984375 0.6445313 0.05078125 0.6445313 0.08984375 0.6747738 0.03576993 0.6679536 0.03945618 0.6914063 0.00390625 0.6289063 0.04296875 0.6367188 0.05078125 0.6289063 0.05078125 0.6132813 0.2265625 0.671875 0.1953125 0.6914063 0.2265625 0.5898438 0.05078125 0.5859375 0.04296875 0.5898438 0.04296875 0.6132813 0.08984375 0.6210938 0.05078125 0.6210938 0.08984375 0.6210938 0.04296875 0.6289063 0.05078125 0.6210938 0.05078125 0.6367188 0.05078125 0.6445313 0.04296875 0.6445313 0.05078125 0.6523438 0.04296875 0.6601563 0.05078125 0.6523438 0.05078125 0.6679688 0.05078125 0.6757813 0.04296875 0.6757813 0.05078125 0.6835938 0.04296875 0.6914063 0.05078125 0.6835938 0.05078125 0.6992188 0.05078125 0.7070313 0.04296875 0.7070313 0.05078125 0.5898438 0.04296875 0.5976563 0.05078125 0.5898438 0.05078125 0.71875 0.04296875 0.7148438 0.05078125 0.7148438 0.04296875 0.6914063 0 0.6132813 0.00390625 0.6132813 0 0.671875 0.171875 0.6328125 0.1953125 0.6328125 0.171875 0.6289063 0.08984375 0.6367188 0.05078125 0.6367188 0.08984375 0.6445313 0.08984375 0.6523438 0.05078125 0.6523438 0.08984375 0.6914063 0.08984375 0.6992188 0.05078125 0.6992188 0.08984375 0.6054688 0.08984375 0.5976563 0.05078125 0.6054688 0.05078125 0.6601563 0.08984375 0.6679688 0.05078125 0.6679688 0.08984375 0.7070313 0.08984375 0.7148438 0.09765625 0.7070313 0.09765625 0.7148438 0.08984375 0.71875 0.09765625 0.7148438 0.09765625 0.5898438 0.08984375 0.5859375 0.09765625 0.5859375 0.08984375 0.6914063 0.140625 0.6132813 0.1367187 0.6914063 0.1367187 0.703125 0.15625 0.7109375 0.203125 0.703125 0.2109375 0.671875 0.171875 0.6132813 0.140625 0.6914063 0.140625 0.6679688 0.08984375 0.6757813 0.05078125 0.6757813 0.08984375 0.703125 0.15625 0.671875 0.1953125 0.671875 0.171875 0.6757813 0.08984375 0.6835938 0.05078125 0.6835938 0.08984375 0.6054688 0.04296875 0.6132813 0.05078125 0.6054688 0.05078125 0.5976563 0.05078125 0.6054688 0.04296875 0.6054688 0.05078125 0.6992188 0.08984375 0.7070313 0.05078125 0.7070313 0.08984375 0.6132813 0.08984375 0.6054688 0.05078125 0.6132813 0.05078125 0.7070313 0.05078125 0.7148438 0.0546875 0.71875 0.05078125 0.5859375 0.08984375 0.5859375 0.05078125 0.5976563 0.08984375 0.6835938 0.08984375 0.6835938 0.05078125 0.6914063 0.05078125 0.6132813 0.05078125 0.6132813 0.04296875 0.6210938 0.04296875 0.5976563 0.08984375 0.6054688 0.08984375 0.6054688 0.09765625 0.6132813 0.08984375 0.6132813 0.09765625 0.6054688 0.09765625 0.6132813 0.08984375 0.6210938 0.08984375 0.6210938 0.09765625 0.6289063 0.08984375 0.6289063 0.09765625 0.6210938 0.09765625 0.6367188 0.08984375 0.6367188 0.09765625 0.6289063 0.09765625 0.6367188 0.08984375 0.6445313 0.08984375 0.6445313 0.09765625 0.6445313 0.08984375 0.6523438 0.08984375 0.6523438 0.09765625 0.6523438 0.08984375 0.6601563 0.08984375 0.6601563 0.09765625 0.6679688 0.08984375 0.6679688 0.09765625 0.6601563 0.09765625 0.6679688 0.08984375 0.6757813 0.08984375 0.6757813 0.09765625 0.6757813 0.08984375 0.6835938 0.08984375 0.6835938 0.09765625 0.6914063 0.08984375 0.6914063 0.09765625 0.6835938 0.09765625 0.6992188 0.08984375 0.6992188 0.09765625 0.6914063 0.09765625 0.6992188 0.08984375 0.7070313 0.08984375 0.7070313 0.09765625 0.6523438 0.09765625 0.6601563 0.09854209 0.6914063 0.1367187 0.6601563 0.09854209 0.6679148 0.1013388 0.6914063 0.1367187 0.6679148 0.1013388 0.6747011 0.10494 0.6914063 0.1367187 0.6747011 0.10494 0.6806643 0.1098146 0.6914063 0.1367187 0.6806643 0.1098146 0.685575 0.1157753 0.6914063 0.1367187 0.685575 0.1157753 0.6892446 0.1225928 0.6914063 0.1367187 0.6892446 0.1225928 0.6909218 0.1300054 0.6914063 0.1367187 0.6914063 0.1367187 0.6132813 0.1367187 0.6523438 0.09765625 0.6132813 0.1367187 0.6142691 0.1299437 0.6165477 0.1225457 0.6165477 0.1225457 0.6205933 0.1157407 0.6132813 0.1367187 0.6205933 0.1157407 0.6254902 0.1097899 0.6132813 0.1367187 0.6254902 0.1097899 0.6314379 0.1049224 0.6132813 0.1367187 0.6314379 0.1049224 0.6382079 0.101325 0.6132813 0.1367187 0.6382079 0.101325 0.6445313 0.09873586 0.6132813 0.1367187 0.6210938 0.08984375 0.6210938 0.05078125 0.6289063 0.05078125 0.6757813 0.05078125 0.6757813 0.04296875 0.6835938 0.04296875 0.6523438 0.08984375 0.6523438 0.05078125 0.6601563 0.05078125 0.6445313 0.04296875 0.6523438 0.04296875 0.6523438 0.05078125 0.5976563 0.08984375 0.5976563 0.09765625 0.5898438 0.09765625 0.6015625 0.15625 0.6015625 0.2109375 0.59375 0.203125 0.6601563 0.04296875 0.6679688 0.04296875 0.6679688 0.05078125 0.6328125 0.171875 0.6328125 0.1953125 0.6015625 0.2109375 0.7070313 0.05078125 0.7070313 0.04296875 0.7148438 0.04296875 0.6914063 0.04296875 0.6992188 0.04296875 0.6992188 0.05078125 0.6367188 0.08984375 0.6367188 0.05078125 0.6445313 0.05078125 0.6679536 0.03945618 0.6601563 0.04235351 0.6914063 0.00390625 0.6601563 0.04235351 0.6523438 0.04296875 0.6914063 0.00390625 0.6523438 0.04296875 0.6445313 0.04219973 0.6132813 0.00390625 0.6445313 0.04219973 0.6380147 0.03946441 0.6132813 0.00390625 0.6380147 0.03946441 0.6311754 0.03578418 0.6132813 0.00390625 0.6311754 0.03578418 0.6251654 0.03080129 0.6132813 0.00390625 0.6251654 0.03080129 0.620215 0.02470719 0.6132813 0.00390625 0.620215 0.02470719 0.6159337 0.01773637 0.6132813 0.00390625 0.6159337 0.01773637 0.6140136 0.01015651 0.6132813 0.00390625 0.6132813 0.00390625 0.6914063 0.00390625 0.6523438 0.04296875 0.6914063 0.00390625 0.6910508 0.01015782 0.6893759 0.01772797 0.6856948 0.02469295 0.6914063 0.00390625 0.6893759 0.01772797 0.6856948 0.02469295 0.6807643 0.03078502 0.6914063 0.00390625 0.6807643 0.03078502 0.6747738 0.03576993 0.6914063 0.00390625 0.6289063 0.04296875 0.6367188 0.04296875 0.6367188 0.05078125 0.6132813 0.2265625 0.6328125 0.1953125 0.671875 0.1953125 0.5898438 0.05078125 0.5859375 0.05078125 0.5859375 0.04296875 0.6132813 0.08984375 0.6132813 0.05078125 0.6210938 0.05078125 0.6210938 0.04296875 0.6289063 0.04296875 0.6289063 0.05078125 0.6367188 0.05078125 0.6367188 0.04296875 0.6445313 0.04296875 0.6523438 0.04296875 0.6601563 0.04296875 0.6601563 0.05078125 0.6679688 0.05078125 0.6679688 0.04296875 0.6757813 0.04296875 0.6835938 0.04296875 0.6914063 0.04296875 0.6914063 0.05078125 0.6992188 0.05078125 0.6992188 0.04296875 0.7070313 0.04296875 0.5898438 0.04296875 0.5976563 0.04296875 0.5976563 0.05078125 0.71875 0.04296875 0.71875 0.05078125 0.7148438 0.05078125 0.6914063 0 0.6914063 0.00390625 0.6132813 0.00390625 0.671875 0.171875 0.671875 0.1953125 0.6328125 0.1953125 0.6289063 0.08984375 0.6289063 0.05078125 0.6367188 0.05078125 0.6445313 0.08984375 0.6445313 0.05078125 0.6523438 0.05078125 0.6914063 0.08984375 0.6914063 0.05078125 0.6992188 0.05078125 0.6054688 0.08984375 0.5976563 0.08984375 0.5976563 0.05078125 0.6601563 0.08984375 0.6601563 0.05078125 0.6679688 0.05078125 0.7070313 0.08984375 0.7148438 0.08984375 0.7148438 0.09765625 0.7148438 0.08984375 0.71875 0.08984375 0.71875 0.09765625 0.5898438 0.08984375 0.5898438 0.09765625 0.5859375 0.09765625 0.6914063 0.140625 0.6132813 0.140625 0.6132813 0.1367187 0.703125 0.15625 0.7109375 0.1640625 0.7109375 0.203125 0.671875 0.171875 0.6328125 0.171875 0.6132813 0.140625 0.6679688 0.08984375 0.6679688 0.05078125 0.6757813 0.05078125 0.703125 0.15625 0.703125 0.2109375 0.671875 0.1953125 0.6757813 0.08984375 0.6757813 0.05078125 0.6835938 0.05078125 0.6054688 0.04296875 0.6132813 0.04296875 0.6132813 0.05078125 0.5976563 0.05078125 0.5976563 0.04296875 0.6054688 0.04296875 0.6992188 0.08984375 0.6992188 0.05078125 0.7070313 0.05078125 0.6132813 0.08984375 0.6054688 0.08984375 0.6054688 0.05078125 0.71875 0.05078125 0.71875 0.08984375 0.7070313 0.05078125 0.71875 0.08984375 0.7148438 0.08984375 0.7070313 0.08984375 0.7070313 0.05078125 0.71875 0.08984375 0.7070313 0.08984375 0.5898438 0.05078125 0.5976563 0.05078125 0.5859375 0.05078125 0.5976563 0.05078125 0.5976563 0.08984375 0.5859375 0.05078125 0.5976563 0.08984375 0.5898438 0.0859375 0.5859375 0.08984375 + + + + + + + + + + + + + + +

    22 0 0 54 1 1 24 2 2 34 3 3 37 4 4 36 5 5 0 6 6 3 7 7 1 8 8 4 9 9 3 7 10 2 10 11 4 9 12 7 11 13 5 12 14 8 13 15 7 11 16 6 14 17 10 15 18 9 16 19 8 13 20 10 15 21 13 17 22 11 18 23 12 19 24 15 20 25 13 17 26 14 21 27 17 22 28 15 20 29 18 23 30 17 22 31 16 24 32 18 23 33 21 25 34 19 26 35 20 27 36 23 28 37 21 25 38 24 29 39 23 28 40 22 30 41 26 31 42 25 32 43 24 29 44 26 31 45 29 33 46 27 34 47 13 35 48 15 36 49 71 37 50 6 38 51 38 38 52 8 39 53 50 40 54 53 41 55 52 42 56 14 43 57 46 44 58 16 45 59 43 46 60 44 47 61 42 48 62 0 6 63 71 49 64 68 50 65 70 51 66 73 52 67 69 51 68 47 53 69 48 54 70 46 55 71 75 56 72 76 57 73 70 58 74 58 59 75 61 60 76 63 61 77 55 62 78 56 63 79 54 64 80 10 65 81 42 66 82 12 67 83 51 68 84 49 69 85 61 70 86 39 71 87 40 72 88 38 73 89 76 74 90 78 75 91 60 76 92 72 77 93 76 78 94 77 79 95 4 80 96 36 81 97 6 82 98 37 4 99 38 73 100 36 5 101 40 72 102 43 46 103 42 48 104 45 83 105 46 55 106 44 47 107 48 54 108 51 84 109 50 40 110 53 41 111 54 64 112 52 42 113 56 63 114 59 85 115 58 59 116 77 86 117 30 87 118 72 88 119 60 89 120 63 90 121 61 91 122 60 92 123 77 93 124 76 94 125 74 95 126 79 95 127 75 95 128 8 96 129 40 97 130 10 98 131 12 99 132 44 100 133 14 101 134 24 102 135 56 102 136 26 102 137 2 103 138 30 104 139 32 105 140 16 106 141 48 107 142 18 108 143 28 109 144 65 110 145 29 33 146 67 111 147 64 112 148 65 113 149 68 114 150 70 115 151 69 116 152 64 117 153 71 118 154 65 119 155 64 120 156 62 121 157 60 120 158 74 122 159 70 123 160 64 124 161 18 125 162 50 126 163 20 127 164 64 128 165 78 129 166 74 130 167 20 131 168 52 131 169 22 131 170 33 132 171 34 3 172 32 133 173 30 87 174 33 132 175 32 133 176 26 134 177 58 135 178 28 136 179 4 137 180 32 138 181 34 139 182 58 140 183 63 141 184 62 142 185 69 143 186 73 144 187 0 145 188 22 0 189 52 146 190 54 1 191 34 3 192 35 147 193 37 4 194 0 6 195 2 10 196 3 7 197 4 9 198 5 12 199 3 7 200 4 9 201 6 14 202 7 11 203 8 13 204 9 16 205 7 11 206 10 15 207 11 18 208 9 16 209 10 15 210 12 19 211 13 17 212 12 19 213 14 21 214 15 20 215 14 21 216 16 24 217 17 22 218 18 23 219 19 26 220 17 22 221 18 23 222 20 27 223 21 25 224 20 27 225 22 30 226 23 28 227 24 29 228 25 32 229 23 28 230 26 31 231 27 34 232 25 32 233 26 31 234 28 109 235 29 33 236 15 36 237 17 148 238 65 149 239 17 148 240 19 150 241 65 149 242 19 150 243 21 151 244 65 149 245 21 151 246 23 152 247 65 149 248 23 152 249 25 153 250 65 149 251 25 153 252 27 154 253 65 149 254 27 154 255 29 155 256 65 149 257 65 149 258 71 37 259 15 36 260 71 37 261 1 156 262 3 157 263 3 157 264 5 158 265 71 37 266 5 158 267 7 35 268 71 37 269 7 35 270 9 35 271 71 37 272 9 35 273 11 35 274 71 37 275 11 35 276 13 35 277 71 37 278 6 38 279 36 159 280 38 38 281 50 40 282 51 84 283 53 41 284 14 43 285 44 160 286 46 44 287 43 46 288 45 83 289 44 47 290 0 6 291 1 8 292 71 49 293 70 51 294 76 51 295 73 52 296 47 53 297 49 161 298 48 54 299 75 56 300 79 162 301 76 57 302 58 59 303 59 85 304 61 60 305 55 62 306 57 163 307 56 63 308 10 65 309 40 164 310 42 66 311 49 69 312 47 165 313 61 70 314 47 165 315 45 166 316 61 70 317 45 166 318 43 167 319 77 168 320 43 167 321 41 169 322 77 168 323 41 169 324 39 170 325 77 168 326 39 170 327 37 171 328 77 168 329 37 171 330 35 172 331 77 168 332 35 172 333 33 170 334 77 168 335 33 170 336 31 170 337 77 168 338 77 168 339 61 70 340 45 166 341 61 70 342 59 173 343 57 174 344 55 170 345 61 70 346 57 174 347 55 170 348 53 175 349 61 70 350 53 175 351 51 68 352 61 70 353 39 71 354 41 176 355 40 72 356 76 74 357 79 177 358 78 75 359 72 77 360 73 178 361 76 78 362 4 80 363 34 179 364 36 81 365 37 4 366 39 71 367 38 73 368 40 72 369 41 176 370 43 46 371 45 83 372 47 53 373 46 55 374 48 54 375 49 161 376 51 84 377 53 41 378 55 62 379 54 64 380 56 63 381 57 163 382 59 85 383 77 86 384 31 180 385 30 87 386 60 89 387 62 181 388 63 90 389 60 92 390 61 182 391 77 93 392 74 95 393 78 183 394 79 95 395 8 96 396 38 184 397 40 97 398 12 99 399 42 185 400 44 100 401 24 102 402 54 102 403 56 102 404 2 103 405 0 186 406 30 104 407 16 106 408 46 187 409 48 107 410 28 109 411 67 188 412 65 110 413 67 111 414 66 189 415 64 112 416 68 114 417 71 190 418 70 115 419 64 117 420 70 191 421 71 118 422 64 120 423 66 192 424 62 121 425 74 122 426 75 193 427 70 123 428 18 125 429 48 194 430 50 126 431 64 128 432 60 195 433 78 129 434 20 131 435 50 131 436 52 131 437 33 132 438 35 147 439 34 3 440 30 87 441 31 180 442 33 132 443 26 134 444 56 196 445 58 135 446 4 137 447 2 197 448 32 138 449 62 142 450 66 198 451 58 140 452 66 198 453 67 199 454 28 200 455 58 140 456 66 198 457 28 200 458 72 201 459 30 202 460 73 144 461 30 202 462 0 145 463 73 144 464 0 145 465 68 203 466 69 143 467

    + + + + + + + 0 2.25 0.1901126 -1.52002e-7 2.440548 0.1025 4.08359e-7 1.075447 0.1025 0 0.1136917 0.1025 0 3.469546 0.1025 0 2.25 -0.1901126 -1.52002e-7 2.440548 -0.1025 4.08359e-7 1.075447 -0.1025 0 0.1136917 -0.1025 0 3.469546 -0.1025 3.09736e-7 0.7086623 0.1025 3.09736e-7 0.7086623 -0.1025 1.78937e-7 0.4805372 -0.1025 1.78937e-7 0.4805372 0.1025 0 3.085717 0.1025 0 2.824327 0.1025 0 3.6 0.28 0 3.085717 -0.1025 0 2.824327 -0.1025 0 3.6 -0.28 -1.91969e-7 2.312293 0.28 0 2.956147 0.28 -0.15 3.372954 0.04624998 -0.15 3.181039 0.04624998 -1.91969e-7 2.312293 -0.28 0 2.956147 -0.28 -0.1500001 2.535223 0.04624998 -0.15 3.372954 -0.04624998 -0.1500001 2.727113 0.04624998 -0.15 3.181039 -0.04624998 -0.1499996 0.9852741 0.04624998 -0.1500001 2.535223 -0.04624998 -0.1500001 2.727113 -0.04624998 -0.1499996 0.8018819 0.04624998 -0.1499999 0.2061649 0.04624998 -0.1499996 0.9852741 -0.04624998 -0.1499998 0.3895877 0.04624998 -0.1499996 0.8018819 -0.04624998 -0.0975449 1.259607 0.2252249 -0.1499999 0.2061649 -0.04624998 -0.1499998 0.3895877 -0.04624998 -0.1913415 1.28806 0.2252249 -0.0975449 1.259607 -0.2252249 -0.1913415 1.28806 -0.2252249 -0.2777847 1.334266 -0.2252249 -0.3535534 1.396447 -0.2252249 -0.4157344 1.472215 -0.2252249 -0.4619392 1.558658 -0.2252249 -0.4903927 1.652455 -0.2252249 -0.5000002 1.75 -0.2252249 -0.4903924 1.847545 -0.2252249 -0.4619392 1.941342 -0.2252249 -0.4157344 2.027785 -0.2252249 -0.3535533 2.103554 -0.2252249 -0.2777847 2.165735 -0.2252249 -0.1913415 2.21194 -0.2252249 -0.0975449 2.240393 -0.2252249 -2.5 0 -0.3 -2.5 3.6 -0.3 -0.1076551 2.291218 -0.3 -0.2111718 2.259816 -0.3 -0.1076541 1.208783 -0.3 -0.3065744 2.208822 -0.3 -0.3901959 2.140196 -0.3 -0.4588215 2.056575 -0.3 -0.5098147 1.961173 -0.3 -0.5412172 1.857655 -0.3 -0.5518206 1.75 -0.3 -0.5098149 1.538828 -0.3 -0.5412175 1.642346 -0.3 -0.4588212 1.443425 -0.3 -0.3901962 1.359805 -0.3 -0.3065744 1.291179 -0.3 -0.2111722 1.240185 -0.3 -0.2777847 1.334266 0.2252249 -0.3535534 1.396447 0.2252249 -0.4157344 1.472215 0.2252249 -0.4619392 1.558658 0.2252249 -0.4903927 1.652455 0.2252249 -0.5000002 1.75 0.2252249 -0.4903924 1.847545 0.2252249 -0.4619392 1.941342 0.2252249 -0.4157344 2.027785 0.2252249 -0.3535533 2.103554 0.2252249 -0.2777847 2.165735 0.2252249 -0.1913415 2.21194 0.2252249 -0.0975449 2.240393 0.2252249 -2.5 0 0.3 -2.5 3.6 0.3 -0.1076551 2.291218 0.3 -0.2111718 2.259816 0.3 -0.1076541 1.208783 0.3 -0.3065744 2.208822 0.3 -0.3901959 2.140196 0.3 -0.4588215 2.056575 0.3 -0.5098147 1.961173 0.3 -0.5412172 1.857655 0.3 -0.5518206 1.75 0.3 -0.5098149 1.538828 0.3 -0.5412175 1.642346 0.3 -0.4588212 1.443425 0.3 -0.3901962 1.359805 0.3 -0.3065744 1.291179 0.3 -0.2111722 1.240185 0.3 -0.01996612 2.248034 0.2252249 4.69387e-7 1.25 0.1901128 -0.01996552 1.251966 0.2252249 -0.01996749 2.299854 0.3 5.01112e-7 1.187707 0.28 -0.01996672 1.200146 0.3 -0.01996612 2.248034 -0.2252249 4.69387e-7 1.25 -0.1901128 -0.01996552 1.251966 -0.2252249 -0.01996749 2.299854 -0.3 5.01112e-7 1.187707 -0.28 -0.01996672 1.200146 -0.3 -0.0199685 0 -0.3 0 0 -0.28 -0.0199685 3.6 -0.3 -0.0199685 0 0.3 0 0 0.28 -0.0199685 3.6 0.3 -0.7168543 1.601754 0.3 -0.7168543 1.601754 -0.3 -0.793989 1.532466 -0.3 -0.793989 1.532466 0.3 -0.800998 1.719646 0.29 -2.299443 1.727324 0.29 -2.299443 1.732078 0.29 -0.7895248 1.739647 0.29 -0.8395245 1.639647 0.29 -2.349443 1.632078 0.29 -2.349443 1.627324 0.29 -0.8509981 1.619646 0.29 -0.800998 1.719646 -0.29 -2.299443 1.727324 -0.29 -2.299443 1.732078 -0.29 -0.7895248 1.739647 -0.29 -0.8395245 1.639647 -0.29 -2.349443 1.632078 -0.29 -2.349443 1.627324 -0.29 -0.8509981 1.619646 -0.29 -0.8895249 1.539647 -0.29 -2.399442 1.532078 -0.29 -2.399442 1.527324 -0.29 -0.9009982 1.519646 -0.29 -0.1025001 1.065 -0.29 -0.2545286 1.101132 -0.29 -0.2464555 1.124981 -0.29 -0.1025001 1.068555 -0.29 -0.1525005 0.9685549 -0.29 -0.2964556 1.024982 -0.29 -0.3045286 1.001132 -0.29 -0.1525005 0.965 -0.29 -0.2024998 0.8685547 -0.29 -0.3464557 0.9249814 -0.29 -0.3545283 0.9011322 -0.29 -0.2024998 0.8650001 -0.29 -0.8895249 1.539647 0.29 -2.399442 1.532078 0.29 -2.399442 1.527324 0.29 -0.9009982 1.519646 0.29 -0.1025001 1.065 0.29 -0.2545286 1.101132 0.29 -0.2464555 1.124981 0.29 -0.1025001 1.068555 0.29 -0.1525005 0.9685549 0.29 -0.2964556 1.024982 0.29 -0.3045286 1.001132 0.29 -0.1525005 0.965 0.29 -0.8078106 1.704702 -0.3 -2.314443 1.717202 -0.3 -2.314443 1.742202 -0.3 -0.7828105 1.754702 -0.3 -0.6782872 1.636398 -0.3 -0.08750009 1.05 -0.3 -0.2625001 1.0875 -0.3 -0.2374999 1.1375 -0.3 -0.08750009 1.075 -0.3 -0.7554213 1.567111 -0.3 -0.8328103 1.654702 -0.3 -2.364443 1.642202 -0.3 -2.364443 1.617202 -0.3 -0.8578106 1.604702 -0.3 -0.1375005 0.975 -0.3 -0.2875 1.0375 -0.3 -0.3125001 0.9875 -0.3 -0.1375005 0.9500001 -0.3 -0.8325563 1.497822 -0.3 -0.8828107 1.554702 -0.3 -2.414442 1.542202 -0.3 -2.414442 1.517202 -0.3 -0.9078107 1.504702 -0.3 -0.8711233 1.463179 -0.3 -0.1874998 0.8750001 -0.3 -0.3375002 0.9375 -0.3 -0.3624998 0.8874998 -0.3 -0.1874998 0.85 -0.3 -0.09874212 2.536093 -0.29 -0.2565256 2.502283 -0.29 -0.8027049 1.884098 -0.29 -2.3032 1.871648 -0.29 -2.3032 1.868949 -0.29 -0.7878426 1.856582 -0.29 -0.2442126 2.471882 -0.29 -0.09874206 2.532495 -0.29 -0.148742 2.632494 -0.29 -0.2942119 2.571882 -0.29 -0.8378435 1.956581 -0.29 -2.3532 1.968949 -0.29 -2.3532 1.971648 -0.29 -0.8527053 1.984098 -0.29 -0.3065256 2.602283 -0.29 -0.148742 2.636093 -0.29 -0.1987422 2.732494 -0.29 -0.3442123 2.671883 -0.29 -0.8878433 2.056582 -0.29 -2.4032 2.068949 -0.29 -2.4032 2.071649 -0.29 -0.902705 2.084099 -0.29 -0.3565258 2.702283 -0.29 -0.1987422 2.736094 -0.29 -0.2024998 0.8685547 0.29 -0.3464557 0.9249814 0.29 -0.3545283 0.9011322 0.29 -0.2024998 0.8650001 0.29 -0.8078106 1.704702 0.3 -2.314443 1.717202 0.3 -2.314443 1.742202 0.3 -0.7828105 1.754702 0.3 -0.6782872 1.636398 0.3 -0.08750009 1.05 0.3 -0.2625001 1.0875 0.3 -0.2374999 1.1375 0.3 -0.08750009 1.075 0.3 -0.7554213 1.567111 0.3 -0.8328103 1.654702 0.3 -2.364443 1.642202 0.3 -2.364443 1.617202 0.3 -0.8578106 1.604702 0.3 -0.1375005 0.975 0.3 -0.2875 1.0375 0.3 -0.3125001 0.9875 0.3 -0.1375005 0.9500001 0.3 -0.08750009 2.55 -0.3 -0.2625001 2.5125 -0.3 -0.8078107 1.895298 -0.3 -2.314443 1.882797 -0.3 -2.314443 1.857798 -0.3 -0.7828105 1.845298 -0.3 -0.2375006 2.4625 -0.3 -0.08749985 2.525 -0.3 -0.1374999 2.625 -0.3 -0.2874999 2.5625 -0.3 -0.8328113 1.945297 -0.3 -2.364443 1.957798 -0.3 -2.364443 1.982798 -0.3 -0.8578112 1.995298 -0.3 -0.3125 2.6125 -0.3 -0.1374999 2.65 -0.3 -0.1875001 2.725 -0.3 -0.3375003 2.6625 -0.3 -0.8828111 2.045298 -0.3 -2.414442 2.057798 -0.3 -2.414443 2.082798 -0.3 -0.9078108 2.095299 -0.3 -0.3625002 2.7125 -0.3 -0.1875001 2.75 -0.3 -0.8325563 1.497822 0.3 -0.8828107 1.554702 0.3 -2.414442 1.542202 0.3 -2.414442 1.517202 0.3 -0.9078107 1.504702 0.3 -0.8711233 1.463179 0.3 -0.1874998 0.8750001 0.3 -0.3375002 0.9375 0.3 -0.3624998 0.8874998 0.3 -0.1874998 0.85 0.3 -0.09874212 2.536093 0.29 -0.2565256 2.502283 0.29 -0.8027049 1.884098 0.29 -2.3032 1.871648 0.29 -2.3032 1.868949 0.29 -0.7878426 1.856582 0.29 -0.2442126 2.471882 0.29 -0.09874206 2.532495 0.29 -0.148742 2.632494 0.29 -0.2942119 2.571882 0.29 -0.8378435 1.956581 0.29 -2.3532 1.968949 0.29 -2.3532 1.971648 0.29 -0.8527053 1.984098 0.29 -0.3065256 2.602283 0.29 -0.148742 2.636093 0.29 -0.1987422 2.732494 0.29 -0.3442123 2.671883 0.29 -0.8878433 2.056582 0.29 -2.4032 2.068949 0.29 -2.4032 2.071649 0.29 -0.902705 2.084099 0.29 -0.3565258 2.702283 0.29 -0.1987422 2.736094 0.29 -0.08750009 2.55 0.3 -0.2625001 2.5125 0.3 -0.8078107 1.895298 0.3 -2.314443 1.882797 0.3 -2.314443 1.857798 0.3 -0.7828105 1.845298 0.3 -0.2375006 2.4625 0.3 -0.08749985 2.525 0.3 -0.1374999 2.625 0.3 -0.2874999 2.5625 0.3 -0.8328113 1.945297 0.3 -2.364443 1.957798 0.3 -2.364443 1.982798 0.3 -0.8578112 1.995298 0.3 -0.3125 2.6125 0.3 -0.1374999 2.65 0.3 -0.1875001 2.725 0.3 -0.3375003 2.6625 0.3 -0.8828111 2.045298 0.3 -2.414442 2.057798 0.3 -2.414443 2.082798 0.3 -0.9078108 2.095299 0.3 -0.3625002 2.7125 0.3 -0.1875001 2.75 0.3 + + + + + + + + + + 0.3145374 0.7593539 0.5696033 0.4566342 0.6834017 0.5696027 0.3145368 0.7593542 0.5696033 0.6834027 0.4566314 0.5696039 0.7593544 0.3145365 0.5696032 0.6834021 0.4566323 0.5696039 0 0 1 0 0 1 0 0 1 0.3511235 -1.67326e-7 -0.9363292 0.3511235 -1.62951e-7 -0.9363292 0.3511235 -1.76222e-7 -0.9363293 0.4156916 0.3672803 0.8320491 0.4156867 0.367279 0.8320521 0.415706 0.3672839 0.8320403 0.8819228 -0.4713941 0 0.8819228 -0.4713941 0 -1 0 0 0.3511235 0 -0.9363293 0.3511235 0 -0.9363293 0.3511235 0 -0.9363292 0.3511237 0 0.9363291 0.3511236 0 0.9363291 0.3511238 0 0.9363291 0 -1 0 0.002777755 -0.5541474 0.832414 0.536346 0.8439983 0 0.536346 0.8439983 0 0.536346 0.8439982 0 0.3511235 0 0.9363292 0.3511235 0 0.9363292 0.3511235 0 0.9363293 0 0 1 0 1.92734e-6 1 0 1.99867e-6 1 0.5811843 0.5811857 0.5696034 0.4566344 0.6834017 0.5696026 0.5811844 0.5811857 0.5696033 1 -5.50439e-7 -2.50955e-7 1 -4.68813e-7 0 1 -2.29155e-7 0 0.3511235 0 0.9363293 0.3511235 0 0.9363293 0.3511235 -1.26799e-7 0.9363293 0.8219191 -1.15571e-6 0.5696045 0.806126 -0.1603518 0.5696036 0.821919 -6.2664e-7 0.5696045 0.5337434 0.8456465 0 0.5337436 0.8456465 0 0.5337432 0.8456466 0 0.3511235 -1.67326e-7 0.9363292 0.3511235 -1.62951e-7 0.9363292 0.3511235 -1.58473e-7 0.9363292 0 0 -1 0 0 -1 0 0 -1 0.1603493 0.8061268 -0.5696032 0.3145368 0.7593542 -0.5696033 0.3145374 0.7593539 -0.5696034 0.4566342 0.6834017 -0.5696029 0.4566346 0.6834017 -0.5696026 0.5811844 0.5811856 -0.5696035 0.6834021 0.4566323 -0.5696039 0.6834027 0.4566314 -0.5696039 0.7593544 0.3145365 -0.569603 0.7593539 0.3145374 -0.5696034 0.8061259 0.1603522 -0.5696036 0.8061262 0.1603509 -0.5696037 0.8219191 -1.18673e-6 -0.5696043 0.806126 -0.1603518 -0.5696036 0.8061254 -0.1603525 -0.5696043 0.7593542 -0.3145361 -0.5696039 0.7593543 -0.3145356 -0.5696038 0.6834028 -0.4566321 -0.5696032 0.6834021 -0.4566323 -0.5696039 0.5811858 -0.5811836 -0.569604 0.5811854 -0.5811836 -0.5696045 0.4566357 -0.6833997 -0.569604 0.4566341 -0.6834009 -0.569604 0.3145351 -0.7593545 -0.5696038 0.3145343 -0.7593545 -0.5696043 0.160346 -0.8061259 -0.5696054 0 0 1 0.7730125 0.6343908 0 0.7730117 0.6343917 0 0.7730116 0.6343919 0 1 5.09293e-7 0 1 5.09294e-7 0 0 1 0 1 -2.43718e-7 0 1 -2.43718e-7 0 1 -2.43718e-7 0 0.9569385 0.2902909 0 0.9951844 -0.09802114 0 0.9951844 -0.09802138 0 0.9951843 -0.09802138 0 0.08068132 -0.8192392 -0.5677479 0.08068323 -0.8192395 -0.5677472 1 -5.73751e-7 1.59682e-7 1 -2.29156e-7 0 1 -5.73752e-7 -1.59682e-7 0.6343905 0.7730128 0 0.0980128 -0.9951853 -9.00984e-7 0.09801453 -0.995185 -3.33873e-6 0.09801298 -0.9951852 -7.31142e-7 0.5811856 -0.5811837 0.5696042 0.6834022 -0.4566323 0.5696038 0.6834028 -0.456632 0.5696033 0.5546735 0 0.8320681 0.5546838 0 0.8320612 0.5546501 0 0.8320838 0.7593541 -0.3145361 0.5696038 0.7593544 -0.3145357 0.5696037 1 0 0 1 0 0 1 0 0 0.2902861 -0.9569399 0 0.2902861 -0.9569399 0 1 -1.62506e-7 0 1 -1.62506e-7 0 1 -1.62506e-7 0 0 0 1 0 2.19782e-7 1 0 0 1 0.9569391 -0.2902891 0 0.9569392 -0.2902885 0 0.9569392 -0.2902884 0 0.5247786 0.8512388 0 0.5247787 0.8512387 0 0.7076854 -1.05085e-6 0.7065278 0.7076636 -3.16629e-7 0.7065496 0.7076632 -3.05197e-7 0.7065499 0.7076845 0 0.7065287 0.7076849 0 0.7065283 0.7076739 5.63803e-7 0.7065392 0.734586 0.5576849 0.3864855 0.7345733 0.5576928 0.3864982 0.7345888 0.5576832 0.3864827 0.7345755 -0.5576897 0.3864986 0.7345896 -0.5576811 0.3864841 0.7345928 -0.5576792 0.3864808 0.1603491 0.8061268 0.5696033 0.08068722 0.8192399 0.5677462 0.0806868 0.81924 0.5677458 -0.4156923 -0.3672716 0.8320526 -0.4156948 -0.3672745 0.8320501 -0.4156946 -0.3672742 0.8320503 1 2.50967e-7 0 1 1.40723e-6 0 1 2.50964e-7 0 0 0 -1 0 1.4878e-7 -1 0 0 -1 -0.247269 -0.5950805 0.7646812 -0.2059103 -0.523135 0.827001 -0.2031505 -0.5182729 0.8307365 0.08068764 0.8192399 -0.5677461 0.08068782 0.8192401 -0.5677457 0.7345755 -0.5576897 -0.3864986 0.7345896 -0.5576811 -0.3864841 0.7345715 -0.557692 -0.3865026 0.7345736 0.5576925 -0.3864981 0.7345868 0.5576841 -0.386485 0.7345898 0.5576822 -0.3864821 0.7076739 5.53942e-7 -0.7065393 0.7076845 0 -0.7065287 0.7076632 0 -0.70655 0.7076854 -1.05085e-6 -0.7065278 0.7076636 -3.16629e-7 -0.7065496 0.7076857 -1.0599e-6 -0.7065275 0.1284115 0.5448601 0.8286362 0.1369335 0.6363362 0.7591611 0.1276369 0.5370348 0.833848 -0.247272 -0.5950862 0.7646757 -0.2059102 -0.5231365 0.8270002 -0.2031501 -0.518274 0.8307358 0.4713991 -0.88192 0 0.4713975 -0.8819208 0 0.4713972 -0.881921 0 0.002777814 -0.5541442 0.8324162 -0.5547027 0 0.8320487 -0.5546967 0 0.8320526 -0.5547119 0 0.8320425 -0.4156932 -0.3672752 0.8320505 -0.4156932 -0.3672751 0.8320506 -0.4156969 -0.3672764 0.8320482 0.005794823 0.6984466 -0.7156388 0.5546735 0 -0.8320681 0.5546838 0 -0.8320612 0.5546907 0 -0.8320566 0.002777576 -0.5541462 -0.8324148 0.415695 0.3672761 0.8320492 0.4156937 0.3672749 0.8320505 0.4156946 0.3672727 0.832051 0.1369335 0.6363362 -0.7591612 0.1284115 0.5448599 -0.8286364 0.1276369 0.5370345 -0.8338482 -0.247272 -0.5950862 -0.7646757 -0.2059102 -0.5231365 -0.8270002 -0.2496667 -0.5991954 -0.7606782 -0.5547027 0 -0.8320487 -0.5546967 0 -0.8320526 -0.5546945 0 -0.8320541 0.6343934 -0.7730104 0 0.6343922 -0.7730114 0 0.634392 -0.7730116 0 0.002777814 -0.5541439 -0.8324164 0.5547032 -3.09999e-6 -0.8320484 0.5546957 -4.46819e-6 -0.8320533 0.5546907 -5.3726e-6 -0.8320566 0.005794405 0.6984342 -0.7156509 0.4156919 0.3672707 0.8320533 0.4156947 0.3672753 0.8320499 0.4156946 0.3672752 0.8320499 -0.247269 -0.5950805 -0.7646812 -0.2059103 -0.523135 -0.827001 -0.2496635 -0.5991894 -0.760684 0.1369325 0.6363381 -0.7591598 0.1284115 0.5448601 -0.8286363 0.1276369 0.5370345 -0.8338483 -0.5546988 6.57176e-7 -0.8320513 -0.5546994 1.07511e-6 -0.8320509 -0.5546998 1.23986e-6 -0.8320507 -0.4156906 -0.3672719 0.8320533 -0.4156932 -0.3672719 0.8320521 -0.4156928 -0.3672719 0.8320522 0.002777755 -0.5541473 -0.8324141 0.5546996 0 -0.8320508 0.5546971 0 -0.8320525 0.5546954 0 -0.8320535 0.005794823 0.6984468 -0.7156386 0.09801656 0.9951848 0 0.09801757 0.9951848 0 0.09801739 0.9951848 0 -0.2472648 -0.595077 -0.7646852 -0.2059086 -0.5231367 -0.8270004 -0.2496592 -0.5991858 -0.7606884 0.1369304 0.6363315 -0.7591655 0.1284093 0.5448591 -0.8286373 0.1276347 0.5370339 -0.833849 -0.5547013 0 -0.8320496 -0.5546998 0 -0.8320506 -0.5546993 0 -0.8320509 0 0 -1 0 -3.95226e-7 -1 0 0 -1 0 -1.23219e-7 -1 0 -2.74687e-7 -1 0 0 -1 0 4.35463e-7 -1 0 2.38063e-7 -1 0 5.43911e-7 -1 0 0 -1 0 0 -1 0 0 -1 0.5547032 -3.09999e-6 0.8320484 0.5546957 -4.46819e-6 0.8320533 0.5547203 0 0.832037 0.002845048 0.55524 0.8316853 0.1392566 -0.6498728 -0.7471767 0.1392546 -0.6498692 -0.7471802 0.1392567 -0.649873 -0.7471765 0.4980677 -0.4400513 -0.7471837 0.498074 -0.4400577 -0.7471758 0.4980676 -0.4400511 -0.7471838 0.005514204 -0.6645976 -0.7471811 0.005514323 -0.6645982 -0.7471806 0.005514323 -0.6645982 -0.7471806 0.6646261 0 -0.7471762 0.6646263 0 -0.7471761 0.6646257 0 -0.7471765 0.005423843 0.6645983 -0.7471812 0.005423784 0.664599 -0.7471805 0.005423843 0.6645983 -0.7471812 -0.498071 0.4400544 -0.7471797 -0.4980723 0.4400577 -0.7471768 -0.498071 0.4400543 -0.7471797 -0.2556239 0.613499 -0.7471783 -0.2556251 0.6134998 -0.7471773 -0.2556252 0.6134999 -0.7471771 -0.6646295 -1.07835e-5 -0.7471731 -0.6646242 -8.11875e-6 -0.7471779 -0.6646425 -1.72009e-5 -0.7471616 -0.2556227 0.6135003 -0.7471776 -0.2556253 0.6135003 -0.7471768 -0.2556254 0.6135003 -0.7471767 -0.4980725 0.4400578 -0.7471767 -0.4980718 0.4400575 -0.7471774 -0.4980725 0.4400578 -0.7471767 0.00542438 0.6646025 -0.7471775 0.005423963 0.6645963 -0.7471829 0.00542438 0.6646025 -0.7471775 0.6646173 0 -0.747184 0.6646137 0 -0.7471872 0.005514204 -0.6645995 -0.7471795 0.005514144 -0.6645969 -0.7471818 0.4980665 -0.4400533 -0.7471834 0.498072 -0.4400562 -0.747178 0.4980664 -0.4400532 -0.7471834 0.1392568 -0.6498669 -0.7471818 0.1392573 -0.6498682 -0.7471805 0.1392567 -0.6498668 -0.7471818 -0.6646494 0 -0.7471554 -0.6646315 0 -0.7471714 -0.6646926 0 -0.7471171 -0.2556215 0.6135013 -0.7471773 -0.2556219 0.6135027 -0.7471759 -0.255622 0.6135028 -0.7471759 -0.498069 0.4400547 -0.7471808 -0.4980714 0.4400574 -0.7471776 -0.4980689 0.4400547 -0.7471809 0.005423843 0.6645988 -0.7471808 0.005423963 0.6645992 -0.7471803 0.005423843 0.6645988 -0.7471808 0.6646085 8.05506e-6 -0.7471919 0.6646179 1.14085e-5 -0.7471835 0.6645858 0 -0.747212 0.005514204 -0.6646032 -0.7471762 0.005514442 -0.6645985 -0.7471804 0.005514442 -0.6645984 -0.7471804 0.4980708 -0.4400545 -0.7471798 0.4980698 -0.4400572 -0.7471787 0.4980708 -0.4400544 -0.7471798 0.1392568 -0.6498672 -0.7471815 0.1392573 -0.6498679 -0.7471808 0.1392568 -0.6498672 -0.7471815 -0.664636 0 -0.7471674 -0.6646267 0 -0.7471757 -0.6646584 0 -0.7471475 0.3511238 0 -0.9363291 0.3511238 0 -0.9363291 0.3511238 0 -0.9363291 0 1 0 -4.24418e-7 1 0 -0.4156933 -0.3672716 -0.8320521 -0.4156937 -0.3672717 -0.8320518 -0.4156907 -0.3672713 -0.8320535 -0.5546988 6.57176e-7 0.8320513 -0.5546994 1.07511e-6 0.8320509 -0.5546977 0 0.832052 0.1284115 0.5448603 0.8286362 0.1369324 0.6363382 0.7591595 0.1276368 0.5370347 0.8338482 0.3511235 0 -0.9363292 0.3511235 0 -0.9363292 0.3511235 0 -0.9363293 0.5438629 -0.839174 0 0.5438632 -0.839174 0 0.5438625 -0.8391744 0 0.290286 0.9569401 0 0.2902842 0.9569406 0 0.2902837 0.9569406 0 1 -1.55289e-7 0 1 -1.55289e-7 0 1 -1.55289e-7 0 0.9951847 0.0980184 0 0.9951847 0.0980184 0 0.8061255 -0.1603525 0.5696043 0.160346 -0.8061259 0.5696054 0.08068132 -0.8192392 0.5677479 0.1603469 -0.8061251 0.5696064 0.3145343 -0.7593545 0.5696043 0.3145352 -0.7593545 0.5696038 0.456634 -0.6834008 0.569604 0.4566356 -0.6833998 0.569604 0.5811853 -0.5811838 0.5696044 -0.4156944 -0.3672736 -0.8320507 -0.4156946 -0.3672738 -0.8320505 -0.4156917 -0.3672717 -0.832053 0.8061259 0.1603522 0.5696038 0.7593539 0.3145374 0.5696034 0.8061261 0.1603509 0.5696038 0.8819222 0.471395 0 0.8819227 0.4713943 0 0.8819228 0.4713941 0 0 0 1 0 0 1 0 0 1 0.5278378 0.8493452 0 0.5278379 0.8493452 0 0.5278376 0.8493454 0 0.7730123 -0.6343912 0 0.7730115 -0.6343922 0 0.7730114 -0.6343923 0 0.4156943 0.3672724 -0.8320512 0.4156944 0.3672724 -0.8320512 0.4156937 0.3672749 -0.8320505 0.5414058 -0.8407614 0 0.5414066 -0.840761 0 0.5414096 -0.8407591 0 0.5184706 -0.8550956 0 0.5184705 -0.8550956 0 0.5184707 -0.8550955 0 0.002777576 -0.5541458 0.8324151 0.5152202 -0.8570579 0 0.5152201 -0.8570579 0 0.5152205 -0.8570577 0 0.1603484 0.806127 0.5696033 0.4156939 0.3672745 -0.8320506 0.4156939 0.3672746 -0.8320505 0.4156914 0.367271 -0.8320533 -0.4156951 -0.3672754 -0.8320496 -0.415695 -0.3672752 -0.8320497 -0.4156973 -0.3672767 -0.8320479 0.5546996 0 0.8320508 0.5546971 0 0.8320525 0.5547052 0 0.8320469 0.002845108 0.55524 0.8316854 0.4156961 0.3672786 -0.8320477 0.415696 0.3672785 -0.8320478 0.4157062 0.3672832 -0.8320406 -0.2472648 -0.595077 0.7646852 -0.2059086 -0.5231367 0.8270004 -0.203149 -0.518275 0.8307357 0.1284093 0.5448591 0.8286372 0.1369304 0.6363314 0.7591656 0.1276347 0.5370339 0.8338489 -0.5547013 0 0.8320496 -0.5546998 0 0.8320506 -0.5547036 0 0.8320481 0 0 1 0 -3.98899e-7 1 0 0 1 0 -2.74687e-7 1 0 -3.0899e-7 1 0 6.311e-7 1 0 2.38063e-7 1 0 2.67784e-7 1 0 0 1 0 0 1 0 0 1 0.1392566 -0.6498728 0.7471767 0.1392546 -0.6498692 0.7471802 0.1392544 -0.6498689 0.7471805 0.4980677 -0.4400513 0.7471837 0.498074 -0.4400577 0.7471758 0.4980741 -0.4400577 0.7471757 0.005514264 -0.6645989 0.7471801 0.005514204 -0.6645975 0.7471812 0.005514264 -0.6645989 0.7471801 0.6646263 0 0.7471761 0.6646261 0 0.7471762 0.6646257 0 0.7471765 0.005423843 0.6645983 0.7471812 0.005423784 0.664599 0.7471805 0.005423784 0.664599 0.7471805 -0.498071 0.4400544 0.7471797 -0.4980723 0.4400577 0.7471768 -0.4980723 0.4400578 0.7471768 -0.2556251 0.6134998 0.7471773 -0.2556236 0.6134998 0.7471777 -0.2556252 0.6134998 0.7471773 -0.6646244 -7.37247e-6 0.7471776 -0.6646298 -9.24683e-6 0.747173 -0.6646425 -1.37607e-5 0.7471616 -0.2556251 0.6135006 0.7471766 -0.2556226 0.613501 0.7471771 -0.2556253 0.6135006 0.7471765 -0.4980725 0.4400578 0.7471767 -0.4980718 0.4400575 0.7471774 -0.4980718 0.4400575 0.7471774 0.00542438 0.6646025 0.7471775 0.005423963 0.6645963 0.7471829 0.005423963 0.6645963 0.747183 0.664618 0 0.7471833 0.6646203 0 0.7471814 0.005514144 -0.6645976 0.7471812 0.005514204 -0.6645994 0.7471796 0.4980665 -0.4400533 0.7471834 0.498072 -0.4400562 0.747178 0.4980721 -0.4400563 0.7471779 0.1392568 -0.6498669 0.7471818 0.1392573 -0.6498682 0.7471805 0.1392574 -0.6498683 0.7471805 -0.6646316 0 0.7471713 -0.6646499 0 0.7471551 -0.6646937 0 0.747116 -0.2556218 0.613503 0.7471758 -0.2556213 0.6135019 0.7471769 -0.2556218 0.613503 0.7471757 -0.498069 0.4400547 0.7471808 -0.4980714 0.4400574 0.7471776 -0.4980714 0.4400575 0.7471776 0.005423843 0.6645988 0.7471808 0.005423963 0.6645992 0.7471803 0.005423963 0.6645992 0.7471803 0.6646192 1.09697e-5 0.7471823 0.6646127 7.74523e-6 0.7471881 0.6645972 0 0.7472019 0.005514442 -0.664599 0.7471799 0.005514204 -0.6646025 0.7471768 0.005514442 -0.664599 0.7471799 0.4980708 -0.4400545 0.7471798 0.4980698 -0.4400572 0.7471787 0.4980698 -0.4400572 0.7471787 0.1392568 -0.6498672 0.7471815 0.1392573 -0.6498679 0.7471808 0.1392573 -0.649868 0.7471807 -0.6646261 0 0.7471761 -0.6646356 0 0.7471677 -0.6646584 0 0.7471475 0.4713993 0.88192 0 0.4714007 0.8819192 0 0.471401 0.881919 0 1 -2.1347e-7 0 1 -2.1347e-7 0 1 -4.61982e-7 0 1 -5.07598e-7 -1.27249e-7 1 -5.07598e-7 1.27249e-7 1 -2.48619e-7 0 1 -2.27123e-7 0 1 -2.4862e-7 0 1 -1.26968e-7 0 0 0 -1 0 0 -1 0 0 -1 0 2.14569e-6 -1 0 2.18924e-6 -1 0 0 -1 0 -1.60963e-7 -1 0 0 -1 0 1.81362e-6 -1 0 -2.08944e-7 -1 0 0 -1 0 1.80776e-6 -1 0 0 -1 0 4.1097e-7 -1 0 7.41582e-7 -1 0 0 -1 0 0 -1 0 0 1 0 4.1097e-7 1 0 7.41582e-7 1 0 0 1 0 0 1 0 -2.29913e-7 1 0 1.81362e-6 1 0 -2.59411e-7 1 0 1.80776e-6 1 0 0 1 0.3511235 -1.58473e-7 -0.9363292 0.4156954 0.3672781 0.8320482 0.4156956 0.3672782 0.8320481 0.3511235 -1.26799e-7 -0.9363293 0.3511234 0 0.9363293 0.005700111 -0.6984379 0.715648 0.5363459 0.8439984 0 0.3511235 0 0.9363293 1 -5.50439e-7 2.50955e-7 1 -4.68813e-7 0 1 -4.61982e-7 0 0.3511235 0 0.9363292 0.5337439 0.8456462 0 0.3511235 -1.76222e-7 0.9363293 0 0 -1 0 0 -1 0 6.10492e-7 -1 0 0 -1 0 2.2855e-7 -1 0 0 -1 0 1.64048e-7 -1 0.1603484 0.806127 -0.5696033 0.5811845 0.5811856 -0.5696034 0.8219191 -6.41443e-7 -0.5696044 0.1603469 -0.8061251 -0.5696063 0.7730126 0.6343906 0 1 -2.43718e-7 0 0.9951844 -0.09802114 0 0.09801054 -0.9951854 7.31724e-7 0.09801465 -0.995185 3.34139e-6 0.0980103 -0.9951854 9.01702e-7 0.5546907 0 0.8320566 1 0 0 1 -1.62506e-7 0 0 -2.12872e-7 1 0 0 1 0 0 1 0 0 1 0 -2.82887e-7 1 0 -1.72937e-7 1 0 0 1 0 -2.70725e-7 1 0 3.64819e-7 1 0 3.00716e-7 1 0 0 1 0 -6.38744e-7 1 0 -7.09734e-7 1 0 0 1 0 -4.59166e-7 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 -1.46248e-7 1 0 -3.68839e-7 1 0.956939 -0.2902892 0 0.5247784 0.8512389 0 0.7076857 -1.0599e-6 0.7065275 0.7076629 0 0.7065503 0.7076632 0 0.70655 0.7345698 0.557695 0.3865017 0.7345715 -0.557692 0.3865026 -0.4156941 -0.3672758 0.8320498 -0.4156942 -0.3672759 0.8320498 1 1.40724e-6 0 0 0 -1 0 0 -1 0 0 -1 0 -2.15585e-7 -1 0 -1.36613e-7 -1 0 -1.77386e-7 -1 0 0 -1 0 4.00955e-7 -1 0 4.16689e-7 -1 0 -1.24905e-7 -1 0 -6.14878e-7 -1 0 -5.40444e-7 -1 0 0 -1 0 0 -1 0 -1.88394e-7 -1 0 -2.29583e-7 -1 0 0 -1 0 0 -1 0 0 -1 0 1.72186e-7 -1 0 0 -1 0 1.28361e-6 -1 0 6.14348e-7 -1 0 2.15126e-7 -1 0 0 -1 0 -3.68839e-7 -1 -0.2496635 -0.5991894 0.760684 0.7345928 -0.5576792 -0.3864808 0.7345699 0.5576949 -0.3865017 0.7076629 0 -0.7065503 0.7076849 0 -0.7065283 0.7076632 -3.05197e-7 -0.7065499 0.1373258 0.6408494 0.755284 -0.2496667 -0.5991954 0.7606782 0.4713994 -0.8819199 0 0.00570017 -0.6984381 0.7156478 -0.5546945 0 0.8320541 -0.4156941 -0.3672741 0.8320506 -0.4156942 -0.3672743 0.8320505 0.002845048 0.55524 -0.8316853 0.5546501 0 -0.8320838 0.005699992 -0.6984384 -0.7156475 0.4156951 0.3672763 0.8320491 0.4156946 0.3672727 0.8320509 0.1373258 0.6408494 -0.755284 -0.2031501 -0.518274 -0.8307358 -0.5547119 0 -0.8320425 0.6343936 -0.7730102 0 0.00570017 -0.6984382 -0.7156477 0.5547203 0 -0.832037 0.4156942 0.3672743 0.8320503 0.4156948 0.367275 0.8320499 -0.2031505 -0.5182729 -0.8307365 0.1373248 0.6408514 -0.7552824 -0.5546977 0 -0.832052 -0.4156951 -0.3672747 0.8320499 -0.4156952 -0.3672747 0.8320498 0.005700111 -0.6984385 -0.7156475 0.5547052 0 -0.8320469 0.002845108 0.55524 -0.8316854 0.09801715 0.9951848 2.76455e-7 0.09801632 0.9951848 0 0.09801703 0.9951848 -2.73797e-7 -0.203149 -0.518275 -0.8307357 0.1373227 0.6408446 -0.7552885 -0.5547036 0 -0.8320481 0 -9.59795e-7 -1 0 0 -1 0 0 -1 0 0 -1 0 -1.92609e-7 -1 0 -2.18245e-7 -1 0 0 -1 0 2.66489e-7 -1 0 0 -1 0 1.66754e-7 -1 0 0 -1 0 0 -1 0 -1.40258e-7 -1 0 2.65235e-7 -1 0 0 -1 0 -2.45227e-7 -1 0 3.22989e-7 -1 0 0 -1 0 0 -1 0 -3.75728e-7 -1 0 -3.86628e-7 -1 0 0 -1 0 2.32592e-7 -1 0 1.68056e-7 -1 0 -3.81689e-7 -1 0 -3.0899e-7 -1 0 1.31223e-5 -1 0 1.17215e-5 -1 0 2.67784e-7 -1 0 0 -1 0 0 -1 0 0 -1 0.5546907 -5.3726e-6 0.8320566 0.005794405 0.6984342 0.7156509 0.1392544 -0.6498689 -0.7471805 0.4980741 -0.4400577 -0.7471757 0.005514204 -0.6645976 -0.7471811 0.6646263 0 -0.747176 0.005423784 0.664599 -0.7471805 -0.4980723 0.4400578 -0.7471768 -0.2556238 0.6134989 -0.7471784 -0.6646208 -6.43755e-6 -0.7471809 -0.2556226 0.6135004 -0.7471777 -0.4980718 0.4400575 -0.7471774 0.005423963 0.6645963 -0.747183 0.6646122 0 -0.7471886 0.005514204 -0.6645995 -0.7471795 0.4980721 -0.4400563 -0.7471779 0.1392574 -0.6498683 -0.7471805 -0.6646202 0 -0.7471815 -0.2556214 0.6135013 -0.7471773 -0.4980714 0.4400575 -0.7471776 0.005423963 0.6645992 -0.7471803 0.664622 1.28749e-5 -0.7471798 0.005514204 -0.6646032 -0.7471762 0.4980698 -0.4400572 -0.7471787 0.1392573 -0.649868 -0.7471807 -0.6646208 0 -0.7471809 0.3511238 0 -0.9363291 -1.33256e-6 1 0 -0.4156952 -0.3672747 -0.8320498 -0.4156951 -0.3672747 -0.8320499 -0.5546998 1.23986e-6 0.8320507 0.1373248 0.6408516 0.7552823 0.3511235 0 -0.9363293 0.005794823 0.6984466 0.7156388 0.5438638 -0.8391735 0 0.2902863 0.9569399 0 1 -1.55289e-7 0 0.08068323 -0.8192395 0.5677472 -0.4156942 -0.3672759 -0.8320498 -0.4156941 -0.3672758 -0.8320499 0.8819221 0.4713952 0 0 0 1 0 0 1 0 0 1 0 1.56002e-7 1 0 0 1 0 0 1 0 0 1 0.5278382 0.8493449 0 0.7730125 -0.634391 0 0.4156951 0.3672763 -0.8320491 0.415695 0.3672761 -0.8320492 0.5414041 -0.8407626 0 0.5184703 -0.8550957 0 0.005700051 -0.6984378 0.7156481 0.5152196 -0.8570583 0 0.4156948 0.367275 -0.8320499 0.4156942 0.3672744 -0.8320505 -0.4156932 -0.3672751 -0.8320506 -0.4156932 -0.3672752 -0.8320505 0.5546954 0 0.8320535 0.005794823 0.6984468 0.7156386 0.4156867 0.367279 -0.8320521 0.4156917 0.3672801 -0.8320491 -0.2496592 -0.5991858 0.7606884 0.1373227 0.6408445 0.7552886 -0.5546993 0 0.8320509 0 0 1 0 -9.59795e-7 1 0 3.21479e-7 1 0 3.81689e-7 1 0 0 1 0 0 1 0 -2.07554e-7 1 0 0 1 0 0 1 0 0 1 0 0 1 0 2.41319e-7 1 0 1.45541e-7 1 0 0 1 0 0 1 0 3.31672e-7 1 0 -2.45227e-7 1 0 0 1 0 0 1 0 0 1 0 0 1 0 -2.42043e-7 1 0 -1.79408e-7 1 0 0 1 0 -3.87653e-7 1 0 1.17497e-5 1 0 0 1 0 1.31223e-5 1 0 1.50781e-7 1 0 7.91143e-7 1 0.1392567 -0.649873 0.7471765 0.4980676 -0.4400511 0.7471838 0.005514204 -0.6645975 0.7471812 0.6646263 0 0.747176 0.005423843 0.6645983 0.7471812 -0.498071 0.4400543 0.7471797 -0.2556236 0.6134998 0.7471778 -0.6646211 -6.18994e-6 0.7471807 -0.2556225 0.613501 0.7471772 -0.4980725 0.4400578 0.7471767 0.00542438 0.6646025 0.7471775 0.6646171 0 0.7471842 0.4980664 -0.4400532 0.7471834 0.1392567 -0.6498668 0.7471818 -0.6646202 0 0.7471815 -0.2556213 0.6135018 0.747177 -0.4980689 0.4400547 0.7471809 0.005423843 0.6645988 0.7471808 0.664622 1.23797e-5 0.7471798 0.005514204 -0.6646025 0.7471768 0.4980708 -0.4400544 0.7471798 0.1392568 -0.6498672 0.7471815 -0.6646202 0 0.7471814 0.471399 0.8819202 0 1 -2.27122e-7 0 1 -1.25559e-7 0 1 0 0 1 0 0 1 -1.25559e-7 0 1 -1.26968e-7 0 0 0 1 + + + + + + + + + + 0.8945313 0.390625 0.9023438 0.3828125 0.9023438 0.390625 0.8945313 0.3671875 0.9023438 0.359375 0.9023438 0.3671875 0.8085938 0.59375 0.8320313 0.5976563 0.8085938 0.5976563 0.6210938 0.3085938 0.625 0.2890625 0.625 0.3046875 0.8984375 0.5976563 0.8984375 0.6015625 0.890625 0.6015625 0.8945313 0.3203125 0.8554688 0.328125 0.8554688 0.3203125 0.8046875 0.4960938 0.84375 0.2773438 0.84375 0.4960938 0.6210938 0.34375 0.625 0.3242188 0.625 0.3398438 0.6328125 0.4804688 0.6367188 0.4609375 0.6367188 0.484375 0.8046875 0.7539063 0.8046875 0.7929688 0.6484375 0.7929688 0.8984375 0.5898438 0.9453125 0.59375 0.8984375 0.59375 0.6367188 0.4609375 0.625 0.4648438 0.6210938 0.4609375 0.6328125 0.4492188 0.6367188 0.4296875 0.6367188 0.453125 0.9414063 0.59375 0.8828125 0.5976563 0.8828125 0.59375 0.8945313 0.375 0.9023438 0.3828125 0.8945313 0.3828125 0.8945313 0.375 0.9023438 0.3671875 0.9023438 0.375 0.6367188 0.3203125 0.6367188 0.3085938 0.6445313 0.3476563 0.6367188 0.34375 0.6328125 0.3242188 0.6367188 0.3203125 0.8945313 0.34375 0.9023438 0.3359375 0.9023438 0.34375 0.6367188 0.4296875 0.625 0.4335938 0.6210938 0.4296875 0.6367188 0.3085938 0.6328125 0.2890625 0.6367188 0.2851563 0.6627917 0.443255 0.6739633 0.4412869 0.6484375 0.4960938 0.8554688 0.3984375 0.8476563 0.390625 0.8554688 0.390625 0.8554688 0.390625 0.8476563 0.3828125 0.8554688 0.3828125 0.8476563 0.3828125 0.8554688 0.375 0.8554688 0.3828125 0.8554688 0.375 0.8476563 0.3671875 0.8554688 0.3671875 0.8554688 0.3671875 0.8476563 0.359375 0.8554688 0.359375 0.8476563 0.359375 0.8554688 0.3515625 0.8554688 0.359375 0.8476563 0.3515625 0.8554688 0.34375 0.8554688 0.3515625 0.8554688 0.34375 0.8476563 0.3359375 0.8554688 0.3359375 0.8554688 0.3359375 0.8476563 0.328125 0.8554688 0.328125 0.8476563 0.328125 0.8554688 0.3203125 0.8554688 0.328125 0.8476563 0.3203125 0.8554688 0.3125 0.8554688 0.3203125 0.8476563 0.3125 0.8554688 0.3046875 0.8554688 0.3125 0.8476563 0.3046875 0.8554688 0.296875 0.8554688 0.3046875 0.8476563 0.296875 0.8554688 0.2890625 0.8554688 0.296875 0.8320313 0.59375 0.8828125 0.5976563 0.8320313 0.5976563 0.8945313 0.3671875 0.8554688 0.375 0.8554688 0.3671875 0.6171875 0.3515625 0.6445313 0.3476563 0.640625 0.3515625 0.6484375 0.5351563 0.8046875 0.4960938 0.8046875 0.5351563 0.6328125 0.3046875 0.625 0.2890625 0.6328125 0.2890625 0.8945313 0.3515625 0.8554688 0.359375 0.8554688 0.3515625 0.8945313 0.3359375 0.8554688 0.34375 0.8554688 0.3359375 0.8554688 0.2890625 0.8476563 0.28125 0.8554688 0.28125 0.6367188 0.34375 0.6132813 0.3476563 0.6210938 0.34375 0.8945313 0.375 0.8554688 0.3828125 0.8554688 0.375 0.8945313 0.2773438 0.8945313 0.28125 0.8945313 0.2890625 0.8945313 0.3125 0.9023438 0.3203125 0.8945313 0.3203125 0.9414063 0.6054688 0.9453125 0.6132813 0.9414063 0.609375 0.8945313 0.3203125 0.9023438 0.328125 0.8945313 0.328125 0.6328125 0.4492188 0.625 0.4335938 0.6328125 0.4335938 0.8945313 0.2890625 0.8554688 0.296875 0.8554688 0.2890625 0.625 0.3242188 0.6328125 0.3398438 0.625 0.3398438 0.6543128 0.6952406 0.6484375 0.6875 0.6550616 0.6870194 0.8945313 0.328125 0.8554688 0.3359375 0.8554688 0.328125 0.6367188 0.2851563 0.625 0.2890625 0.6210938 0.2851563 0.6132813 0.3476563 0.609375 0.2773438 0.6132813 0.2773438 0.609375 0.4179688 0.6132813 0.4179688 0.6132813 0.4570313 0.8945313 0.40625 0.9023438 0.4101563 0.8945313 0.4101563 0.9023438 0.2773438 0.8945313 0.28125 0.8945313 0.2773438 0.8945313 0.3984375 0.9023438 0.40625 0.8945313 0.40625 0.890625 0.578125 0.8984375 0.578125 0.8984375 0.5820313 0.6132813 0.4179688 0.640625 0.4140625 0.6445313 0.4179688 0.6628094 0.3425499 0.6614339 0.3489242 0.6549568 0.3471782 0.8046875 0.5820313 0.8320313 0.578125 0.8320313 0.5820313 0.8476563 0.40625 0.8554688 0.3984375 0.8554688 0.40625 0.8476563 0.2773438 0.8554688 0.28125 0.8476563 0.28125 0.8476563 0.4101563 0.8554688 0.40625 0.8554688 0.4101563 0.6445313 0.4570313 0.6484375 0.4140625 0.6484375 0.4960938 0.6445313 0.3476563 0.6484375 0.2773438 0.6484375 0.3476563 0.8320313 0.578125 0.8046875 0.5742188 0.8320313 0.5742188 0.8046875 0.5703125 0.8320313 0.5664063 0.8320313 0.5703125 0.8945313 0.296875 0.8554688 0.3046875 0.8554688 0.296875 0.8984375 0.578125 0.9453125 0.5820313 0.8984375 0.5820313 0.8085938 0.609375 0.8046875 0.6015625 0.8085938 0.6054688 0.8320313 0.5703125 0.8320313 0.5664063 0.890625 0.5664063 0.9453125 0.5234375 0.8984375 0.5195313 0.9453125 0.5195313 0.9414063 0.5273438 0.9453125 0.5195313 0.9453125 0.53125 0.9453125 0.5273438 0.8984375 0.53125 0.8984375 0.5273438 0.8984375 0.5742188 0.890625 0.578125 0.8320313 0.5742188 0.8046875 0.5234375 0.8320313 0.5195313 0.8320313 0.5234375 0.8046875 0.5273438 0.8320313 0.53125 0.8046875 0.53125 0.8085938 0.5234375 0.8046875 0.53125 0.8046875 0.5195313 0.8945313 0.3046875 0.8554688 0.3125 0.8554688 0.3046875 0.9453125 0.515625 0.8984375 0.5195313 0.8984375 0.515625 0.9414063 0.515625 0.9453125 0.5078125 0.9453125 0.5195313 0.9453125 0.5117188 0.8984375 0.5078125 0.9453125 0.5078125 0.890625 0.5898438 0.8320313 0.5898438 0.8320313 0.5859375 0.8046875 0.515625 0.8320313 0.5195313 0.8046875 0.5195313 0.8046875 0.5117188 0.8320313 0.5078125 0.8320313 0.5117188 0.8085938 0.5117188 0.8046875 0.5195313 0.8046875 0.5078125 0.890625 0.5898438 0.8984375 0.5898438 0.8984375 0.59375 0.9453125 0.5039063 0.8984375 0.5078125 0.8984375 0.5039063 0.9414063 0.5039063 0.9453125 0.4960938 0.9453125 0.5078125 0.9453125 0.5 0.8984375 0.4960938 0.9453125 0.4960938 0.8945313 0.4101563 0.8554688 0.4101563 0.8554688 0.3984375 0.8046875 0.5039063 0.8320313 0.5078125 0.8046875 0.5078125 0.8046875 0.5 0.8320313 0.4960938 0.8320313 0.5 0.8085938 0.5 0.8046875 0.5078125 0.8046875 0.4960938 0.7958816 0.4011822 0.7107183 0.3984869 0.792643 0.3962891 0.8320313 0.5351563 0.8828125 0.5390625 0.8320313 0.5390625 0.8320313 0.546875 0.8828125 0.5507813 0.8320313 0.5507813 0.8320313 0.5585938 0.8828125 0.5625 0.8320313 0.5625 0.9414063 0.6171875 0.9453125 0.625 0.9414063 0.6210938 0.9453125 0.5859375 0.8984375 0.5898438 0.8984375 0.5859375 0.8046875 0.5390625 0.8320313 0.5429688 0.8046875 0.5429688 0.8320313 0.5390625 0.8984375 0.5429688 0.8320313 0.5429688 0.9453125 0.5390625 0.8984375 0.5429688 0.8984375 0.5390625 0.9414063 0.5351563 0.9453125 0.5429688 0.9414063 0.5390625 0.9453125 0.53125 0.8984375 0.5351563 0.9453125 0.5351563 0.8984375 0.53125 0.8320313 0.5351563 0.8984375 0.5351563 0.8046875 0.53125 0.8320313 0.5351563 0.8320313 0.53125 0.8085938 0.5390625 0.8046875 0.53125 0.8085938 0.5351563 0.8046875 0.546875 0.8320313 0.5429688 0.8320313 0.546875 0.8984375 0.546875 0.8320313 0.5429688 0.8984375 0.5429688 0.9453125 0.546875 0.8984375 0.5429688 0.9453125 0.5429688 0.9414063 0.546875 0.9453125 0.5546875 0.9414063 0.5507813 0.9453125 0.5507813 0.8984375 0.5546875 0.8984375 0.5507813 0.8320313 0.5507813 0.8984375 0.5546875 0.8320313 0.5546875 0.8046875 0.5507813 0.8320313 0.5546875 0.8046875 0.5546875 0.8085938 0.5507813 0.8046875 0.5429688 0.8085938 0.546875 0.8046875 0.5585938 0.8320313 0.5546875 0.8320313 0.5585938 0.8984375 0.5585938 0.8320313 0.5546875 0.8984375 0.5546875 0.9453125 0.5585938 0.8984375 0.5546875 0.9453125 0.5546875 0.9414063 0.5585938 0.9453125 0.5664063 0.9414063 0.5625 0.9453125 0.5625 0.8984375 0.5664063 0.8984375 0.5625 0.8320313 0.5625 0.8984375 0.5664063 0.8320313 0.5664063 0.8046875 0.5625 0.8320313 0.5664063 0.8046875 0.5664063 0.8085938 0.5625 0.8046875 0.5546875 0.8085938 0.5585938 0.6210938 0.4609375 0.625 0.4804688 0.6210938 0.484375 0.6445313 0.5351563 0.6484375 0.4960938 0.6484375 0.5351563 0.8984375 0.5039063 0.8984375 0.5078125 0.890625 0.5078125 0.8085938 0.6210938 0.8046875 0.6132813 0.8085938 0.6171875 0.8320313 0.5898438 0.8046875 0.5859375 0.8320313 0.5859375 0.6210938 0.4296875 0.625 0.4492188 0.6210938 0.453125 0.9453125 0.5742188 0.8984375 0.578125 0.8984375 0.5742188 0.6210938 0.453125 0.6328125 0.4492188 0.6367188 0.453125 0.8554688 0.3984375 0.8945313 0.390625 0.8945313 0.3984375 0.625 0.4648438 0.6328125 0.4804688 0.625 0.4804688 0.8945313 0.34375 0.8554688 0.3515625 0.8554688 0.34375 0.8945313 0.3359375 0.9023438 0.328125 0.9023438 0.3359375 0.8945313 0.2890625 0.9023438 0.28125 0.9023438 0.2890625 0.8945313 0.2890625 0.9023438 0.296875 0.8945313 0.296875 0.8945313 0.296875 0.9023438 0.3046875 0.8945313 0.3046875 0.8945313 0.3046875 0.9023438 0.3125 0.8945313 0.3125 0.8984375 0.515625 0.8984375 0.5195313 0.890625 0.5195313 0.8945313 0.3515625 0.9023438 0.359375 0.8945313 0.359375 0.8945313 0.34375 0.9023438 0.3515625 0.8945313 0.3515625 0.8945313 0.359375 0.8554688 0.3671875 0.8554688 0.359375 0.6484375 0.5351563 0.657865 0.5954006 0.6542191 0.6023433 0.6367188 0.3203125 0.625 0.3242188 0.6210938 0.3203125 0.8945313 0.3125 0.8554688 0.3203125 0.8554688 0.3125 0.8320313 0.5234375 0.8320313 0.5195313 0.890625 0.5195313 0.6367188 0.484375 0.625 0.4804688 0.6328125 0.4804688 0.6210938 0.3085938 0.6328125 0.3046875 0.6367188 0.3085938 0.8984375 0.5664063 0.9453125 0.5703125 0.8984375 0.5703125 0.6210938 0.34375 0.6328125 0.3398438 0.6367188 0.34375 0.8945313 0.3984375 0.9023438 0.390625 0.9023438 0.3984375 0.8320313 0.5117188 0.8320313 0.5078125 0.890625 0.5078125 0.8984375 0.5273438 0.8984375 0.53125 0.890625 0.53125 0.9414063 0.6289063 0.9453125 0.6367188 0.9414063 0.6328125 0.9453125 0.5976563 0.8984375 0.6015625 0.8984375 0.5976563 0.8320313 0.5 0.8320313 0.4960938 0.890625 0.4960938 0.8046875 0.59375 0.8320313 0.5898438 0.8320313 0.59375 0.8320313 0.6015625 0.8046875 0.5976563 0.8320313 0.5976563 0.8085938 0.6328125 0.8046875 0.625 0.8085938 0.6289063 0.7899345 0.6359996 0.7093751 0.6334774 0.7931929 0.6311195 0.8320313 0.6328125 0.8828125 0.6289063 0.8828125 0.6328125 0.8320313 0.6210938 0.8828125 0.6171875 0.8828125 0.6210938 0.8320313 0.609375 0.8828125 0.6054688 0.8828125 0.609375 0.8046875 0.6289063 0.8320313 0.625 0.8320313 0.6289063 0.8320313 0.6289063 0.8984375 0.625 0.8984375 0.6289063 0.8984375 0.625 0.9453125 0.6289063 0.8984375 0.6289063 0.9453125 0.5898438 0.9414063 0.5976563 0.9414063 0.59375 0.9453125 0.6328125 0.8984375 0.6367188 0.8984375 0.6328125 0.8984375 0.6328125 0.8320313 0.6367188 0.8320313 0.6328125 0.8320313 0.6367188 0.8046875 0.6328125 0.8320313 0.6328125 0.8046875 0.6015625 0.8085938 0.59375 0.8085938 0.5976563 0.8320313 0.625 0.8046875 0.6210938 0.8320313 0.6210938 0.8984375 0.6210938 0.8320313 0.625 0.8320313 0.6210938 0.9453125 0.6210938 0.8984375 0.625 0.8984375 0.6210938 0.9453125 0.578125 0.9414063 0.5859375 0.9414063 0.5820313 0.8984375 0.6132813 0.9453125 0.6171875 0.8984375 0.6171875 0.8320313 0.6171875 0.8984375 0.6132813 0.8984375 0.6171875 0.8046875 0.6171875 0.8320313 0.6132813 0.8320313 0.6171875 0.8046875 0.5898438 0.8085938 0.5820313 0.8085938 0.5859375 0.8320313 0.6132813 0.8046875 0.609375 0.8320313 0.609375 0.8984375 0.609375 0.8320313 0.6132813 0.8320313 0.609375 0.9453125 0.609375 0.8984375 0.6132813 0.8984375 0.609375 0.9453125 0.5664063 0.9414063 0.5742188 0.9414063 0.5703125 0.8984375 0.6015625 0.9453125 0.6054688 0.8984375 0.6054688 0.8320313 0.6054688 0.8984375 0.6015625 0.8984375 0.6054688 0.8046875 0.6054688 0.8320313 0.6015625 0.8320313 0.6054688 0.8046875 0.578125 0.8085938 0.5703125 0.8085938 0.5742188 0.8554688 0.390625 0.8945313 0.3828125 0.8945313 0.390625 0.6210938 0.4296875 0.6445313 0.4179688 0.6367188 0.4296875 0.6132813 0.2773438 0.6367188 0.2851563 0.6210938 0.2851563 0.6367188 0.484375 0.6132813 0.4960938 0.6210938 0.484375 0.6132813 0.4179688 0.6210938 0.4296875 0.6210938 0.453125 0.8085938 0.5039063 0.8320313 0.5 0.8320313 0.5039063 0.8320313 0.5039063 0.8828125 0.5 0.8828125 0.5039063 0.8828125 0.5 0.9414063 0.5039063 0.8828125 0.5039063 0.8320313 0.5234375 0.8085938 0.5273438 0.8085938 0.5234375 0.8828125 0.5234375 0.8320313 0.5273438 0.8320313 0.5234375 0.8828125 0.5234375 0.9414063 0.5273438 0.8828125 0.5273438 0.8085938 0.515625 0.8320313 0.5117188 0.8320313 0.515625 0.8320313 0.515625 0.8828125 0.5117188 0.8828125 0.515625 0.8828125 0.5117188 0.9414063 0.515625 0.8828125 0.515625 0.8085938 0.5820313 0.8320313 0.5859375 0.8085938 0.5859375 0.8320313 0.5820313 0.8828125 0.5859375 0.8320313 0.5859375 0.8828125 0.5859375 0.9414063 0.5820313 0.9414063 0.5859375 0.8085938 0.5703125 0.8320313 0.5742188 0.8085938 0.5742188 0.8828125 0.5742188 0.8320313 0.5703125 0.8828125 0.5703125 0.8828125 0.5742188 0.9414063 0.5703125 0.9414063 0.5742188 0.8945313 0.390625 0.8945313 0.3828125 0.9023438 0.3828125 0.8945313 0.3671875 0.8945313 0.359375 0.9023438 0.359375 0.8085938 0.59375 0.8320313 0.59375 0.8320313 0.5976563 0.6210938 0.3085938 0.6210938 0.2851563 0.625 0.2890625 0.890625 0.6015625 0.8320313 0.6015625 0.8320313 0.5976563 0.8320313 0.5976563 0.8984375 0.5976563 0.890625 0.6015625 0.8945313 0.3203125 0.8945313 0.328125 0.8554688 0.328125 0.8046875 0.4960938 0.8046875 0.2773438 0.84375 0.2773438 0.6210938 0.34375 0.6210938 0.3203125 0.625 0.3242188 0.6328125 0.4804688 0.6328125 0.4648438 0.6367188 0.4609375 0.6484375 0.7929688 0.6484375 0.7890625 0.6484375 0.7578125 0.6484375 0.7578125 0.6484375 0.7539063 0.6484375 0.7929688 0.6484375 0.7539063 0.8046875 0.7539063 0.6484375 0.7929688 0.8984375 0.5898438 0.9453125 0.5898438 0.9453125 0.59375 0.6367188 0.4609375 0.6328125 0.4648438 0.625 0.4648438 0.6328125 0.4492188 0.6328125 0.4335938 0.6367188 0.4296875 0.9414063 0.59375 0.9414063 0.5976563 0.8828125 0.5976563 0.8945313 0.375 0.9023438 0.375 0.9023438 0.3828125 0.8945313 0.375 0.8945313 0.3671875 0.9023438 0.3671875 0.6210938 0.3203125 0.6210938 0.34375 0.6132813 0.3476563 0.6132813 0.3476563 0.6132813 0.2773438 0.6210938 0.3085938 0.6132813 0.2773438 0.6210938 0.2851563 0.6210938 0.3085938 0.6210938 0.3203125 0.6132813 0.3476563 0.6210938 0.3085938 0.6367188 0.3085938 0.6367188 0.2851563 0.6445313 0.2773438 0.6210938 0.3203125 0.6210938 0.3085938 0.6367188 0.3085938 0.6445313 0.3476563 0.6367188 0.34375 0.6367188 0.3203125 0.6367188 0.3203125 0.6210938 0.3203125 0.6367188 0.3085938 0.6367188 0.3085938 0.6445313 0.2773438 0.6445313 0.3476563 0.6367188 0.34375 0.6328125 0.3398438 0.6328125 0.3242188 0.8945313 0.34375 0.8945313 0.3359375 0.9023438 0.3359375 0.6367188 0.4296875 0.6328125 0.4335938 0.625 0.4335938 0.6367188 0.3085938 0.6328125 0.3046875 0.6328125 0.2890625 0.6484375 0.4960938 0.6484375 0.4140625 0.6553167 0.429395 0.6484375 0.4140625 0.6551535 0.4274626 0.6553167 0.429395 0.6553167 0.429395 0.6589134 0.4344661 0.6590877 0.4363514 0.79587 0.4048618 0.8046875 0.4960938 0.712595 0.4026403 0.8046875 0.4960938 0.6484375 0.4960938 0.6739633 0.4412869 0.6739633 0.4412869 0.712595 0.4026403 0.8046875 0.4960938 0.6590877 0.4363514 0.6626338 0.4413934 0.6627917 0.443255 0.6553167 0.429395 0.6590877 0.4363514 0.6484375 0.4960938 0.6590877 0.4363514 0.6627917 0.443255 0.6484375 0.4960938 0.8554688 0.3984375 0.8476563 0.3984375 0.8476563 0.390625 0.8554688 0.390625 0.8476563 0.390625 0.8476563 0.3828125 0.8476563 0.3828125 0.8476563 0.375 0.8554688 0.375 0.8554688 0.375 0.8476563 0.375 0.8476563 0.3671875 0.8554688 0.3671875 0.8476563 0.3671875 0.8476563 0.359375 0.8476563 0.359375 0.8476563 0.3515625 0.8554688 0.3515625 0.8476563 0.3515625 0.8476563 0.34375 0.8554688 0.34375 0.8554688 0.34375 0.8476563 0.34375 0.8476563 0.3359375 0.8554688 0.3359375 0.8476563 0.3359375 0.8476563 0.328125 0.8476563 0.328125 0.8476563 0.3203125 0.8554688 0.3203125 0.8476563 0.3203125 0.8476563 0.3125 0.8554688 0.3125 0.8476563 0.3125 0.8476563 0.3046875 0.8554688 0.3046875 0.8476563 0.3046875 0.8476563 0.296875 0.8554688 0.296875 0.8476563 0.296875 0.8476563 0.2890625 0.8554688 0.2890625 0.8320313 0.59375 0.8828125 0.59375 0.8828125 0.5976563 0.8945313 0.3671875 0.8945313 0.375 0.8554688 0.375 0.6171875 0.3515625 0.6132813 0.3476563 0.6445313 0.3476563 0.6484375 0.5351563 0.6484375 0.4960938 0.8046875 0.4960938 0.6328125 0.3046875 0.625 0.3046875 0.625 0.2890625 0.8945313 0.3515625 0.8945313 0.359375 0.8554688 0.359375 0.8945313 0.3359375 0.8945313 0.34375 0.8554688 0.34375 0.8554688 0.2890625 0.8476563 0.2890625 0.8476563 0.28125 0.6367188 0.34375 0.6445313 0.3476563 0.6132813 0.3476563 0.8945313 0.375 0.8945313 0.3828125 0.8554688 0.3828125 0.8945313 0.2890625 0.8554688 0.2890625 0.8945313 0.2773438 0.8554688 0.2890625 0.8554688 0.28125 0.8554688 0.2773438 0.8945313 0.2773438 0.8554688 0.2890625 0.8554688 0.2773438 0.8945313 0.3125 0.9023438 0.3125 0.9023438 0.3203125 0.9414063 0.6054688 0.9453125 0.6015625 0.9453125 0.6132813 0.8945313 0.3203125 0.9023438 0.3203125 0.9023438 0.328125 0.6328125 0.4492188 0.625 0.4492188 0.625 0.4335938 0.8945313 0.2890625 0.8945313 0.296875 0.8554688 0.296875 0.625 0.3242188 0.6328125 0.3242188 0.6328125 0.3398438 0.7067155 0.6729791 0.8046875 0.7539063 0.6721291 0.7070778 0.8046875 0.7539063 0.6484375 0.7539063 0.6721291 0.7070778 0.6851683 0.6598361 0.6862586 0.6534677 0.6942515 0.660293 0.665088 0.6946941 0.6966667 0.663116 0.6991799 0.6652868 0.6685958 0.7009387 0.7017183 0.6680247 0.7042396 0.670189 0.6825394 0.6662004 0.6851683 0.6598361 0.6942515 0.660293 0.665088 0.6946941 0.6991799 0.6652868 0.6666692 0.697633 0.665088 0.6946941 0.6666692 0.697633 0.6579065 0.7014715 0.6545063 0.6970323 0.665088 0.6946941 0.6579065 0.7014715 0.6545063 0.6970323 0.6579065 0.7014715 0.658129 0.7032284 0.6685958 0.7009387 0.7042396 0.670189 0.6701936 0.7038277 0.6685958 0.7009387 0.6701936 0.7038277 0.6615781 0.7076281 0.658129 0.7032284 0.6685958 0.7009387 0.6615781 0.7076281 0.6618196 0.7093647 0.6721291 0.7070778 0.6484375 0.7539063 0.658129 0.7032284 0.6615781 0.7076281 0.6618196 0.7093647 0.6545063 0.6970323 0.658129 0.7032284 0.6484375 0.7539063 0.658129 0.7032284 0.6618196 0.7093647 0.6484375 0.7539063 0.678657 0.672223 0.6825394 0.6662004 0.6942515 0.660293 0.6736712 0.6775319 0.678657 0.672223 0.6942515 0.660293 0.6543128 0.6952406 0.6545063 0.6970323 0.6484375 0.6875 0.6545063 0.6970323 0.6484375 0.7539063 0.6484375 0.6875 0.6736712 0.6775319 0.6942515 0.660293 0.6631827 0.691349 0.6736712 0.6775319 0.6631827 0.691349 0.6678602 0.6818433 0.6631827 0.691349 0.6543128 0.6952406 0.6550616 0.6870194 0.6678602 0.6818433 0.6631827 0.691349 0.6615377 0.6850305 0.6615377 0.6850305 0.6631827 0.691349 0.6550616 0.6870194 0.8945313 0.328125 0.8945313 0.3359375 0.8554688 0.3359375 0.6367188 0.2851563 0.6328125 0.2890625 0.625 0.2890625 0.6132813 0.3476563 0.609375 0.3476563 0.609375 0.2773438 0.6132813 0.4570313 0.6132813 0.4960938 0.609375 0.4960938 0.609375 0.4960938 0.609375 0.4179688 0.6132813 0.4570313 0.8945313 0.40625 0.9023438 0.40625 0.9023438 0.4101563 0.9023438 0.2773438 0.9023438 0.28125 0.8945313 0.28125 0.8945313 0.3984375 0.9023438 0.3984375 0.9023438 0.40625 0.8984375 0.5820313 0.8320313 0.5820313 0.890625 0.578125 0.8320313 0.5820313 0.8320313 0.578125 0.890625 0.578125 0.6132813 0.4179688 0.6171875 0.4140625 0.640625 0.4140625 0.6484375 0.2773438 0.8046875 0.2773438 0.6708264 0.3265217 0.8046875 0.2773438 0.7060039 0.3593519 0.6708264 0.3265217 0.6941677 0.3724869 0.6869742 0.3796073 0.6852775 0.3732706 0.6988602 0.3673141 0.6964595 0.3695758 0.6645369 0.3391391 0.7036679 0.3622302 0.7012655 0.3644847 0.6676817 0.3327765 0.6484375 0.2773438 0.6708264 0.3265217 0.660544 0.3246204 0.6941677 0.3724869 0.6852775 0.3732706 0.6825568 0.3669947 0.665953 0.3361465 0.6988602 0.3673141 0.6645369 0.3391391 0.6571138 0.3326402 0.665953 0.3361465 0.6645369 0.3391391 0.6571138 0.3326402 0.6645369 0.3391391 0.6539687 0.3371986 0.6572394 0.3308789 0.6571138 0.3326402 0.6539687 0.3371986 0.6691008 0.3298349 0.7036679 0.3622302 0.6676817 0.3327765 0.6484375 0.2773438 0.660544 0.3246204 0.6572394 0.3308789 0.660544 0.3246204 0.6604059 0.3263612 0.6572394 0.3308789 0.6604059 0.3263612 0.6691008 0.3298349 0.6676817 0.3327765 0.6604059 0.3263612 0.6676817 0.3327765 0.6572394 0.3308789 0.6941677 0.3724869 0.6825568 0.3669947 0.6786093 0.3611079 0.6941677 0.3724869 0.6786093 0.3611079 0.6735859 0.3559776 0.6484375 0.2773438 0.6572394 0.3308789 0.6539687 0.3371986 0.6628094 0.3425499 0.6941677 0.3724869 0.6735859 0.3559776 0.6484375 0.2773438 0.6539687 0.3371986 0.6484375 0.3476563 0.6539687 0.3371986 0.6538631 0.3389946 0.6484375 0.3476563 0.6538631 0.3389946 0.6628094 0.3425499 0.6549568 0.3471782 0.6628094 0.3425499 0.6735859 0.3559776 0.6677594 0.3518777 0.6628094 0.3425499 0.6677594 0.3518777 0.6614339 0.3489242 0.6549568 0.3471782 0.6484375 0.3476563 0.6538631 0.3389946 0.8046875 0.5820313 0.8046875 0.578125 0.8320313 0.578125 0.8476563 0.40625 0.8476563 0.3984375 0.8554688 0.3984375 0.8476563 0.2773438 0.8554688 0.2773438 0.8554688 0.28125 0.8476563 0.4101563 0.8476563 0.40625 0.8554688 0.40625 0.6484375 0.4960938 0.6445313 0.4960938 0.6445313 0.4570313 0.6445313 0.4570313 0.6445313 0.4179688 0.6484375 0.4140625 0.6445313 0.3476563 0.6445313 0.2773438 0.6484375 0.2773438 0.8320313 0.578125 0.8046875 0.578125 0.8046875 0.5742188 0.8046875 0.5703125 0.8046875 0.5664063 0.8320313 0.5664063 0.8945313 0.296875 0.8945313 0.3046875 0.8554688 0.3046875 0.8984375 0.578125 0.9453125 0.578125 0.9453125 0.5820313 0.8085938 0.609375 0.8046875 0.6132813 0.8046875 0.6015625 0.890625 0.5664063 0.8984375 0.5664063 0.8984375 0.5703125 0.8984375 0.5703125 0.8320313 0.5703125 0.890625 0.5664063 0.9453125 0.5234375 0.8984375 0.5234375 0.8984375 0.5195313 0.9414063 0.5273438 0.9414063 0.5234375 0.9453125 0.5195313 0.9453125 0.5273438 0.9453125 0.53125 0.8984375 0.53125 0.8984375 0.578125 0.890625 0.578125 0.8984375 0.5742188 0.890625 0.578125 0.8320313 0.578125 0.8320313 0.5742188 0.8046875 0.5234375 0.8046875 0.5195313 0.8320313 0.5195313 0.8046875 0.5273438 0.8320313 0.5273438 0.8320313 0.53125 0.8085938 0.5234375 0.8085938 0.5273438 0.8046875 0.53125 0.8945313 0.3046875 0.8945313 0.3125 0.8554688 0.3125 0.9453125 0.515625 0.9453125 0.5195313 0.8984375 0.5195313 0.9414063 0.515625 0.9414063 0.5117188 0.9453125 0.5078125 0.9453125 0.5117188 0.8984375 0.5117188 0.8984375 0.5078125 0.8320313 0.5859375 0.8984375 0.5859375 0.890625 0.5898438 0.8984375 0.5859375 0.8984375 0.5898438 0.890625 0.5898438 0.8046875 0.515625 0.8320313 0.515625 0.8320313 0.5195313 0.8046875 0.5117188 0.8046875 0.5078125 0.8320313 0.5078125 0.8085938 0.5117188 0.8085938 0.515625 0.8046875 0.5195313 0.8984375 0.59375 0.8320313 0.59375 0.890625 0.5898438 0.8320313 0.59375 0.8320313 0.5898438 0.890625 0.5898438 0.9453125 0.5039063 0.9453125 0.5078125 0.8984375 0.5078125 0.9414063 0.5039063 0.9414063 0.5 0.9453125 0.4960938 0.9453125 0.5 0.8984375 0.5 0.8984375 0.4960938 0.8554688 0.40625 0.8554688 0.3984375 0.8554688 0.4101563 0.8554688 0.3984375 0.8945313 0.3984375 0.8945313 0.4101563 0.8945313 0.3984375 0.8945313 0.40625 0.8945313 0.4101563 0.8046875 0.5039063 0.8320313 0.5039063 0.8320313 0.5078125 0.8046875 0.5 0.8046875 0.4960938 0.8320313 0.4960938 0.8085938 0.5 0.8085938 0.5039063 0.8046875 0.5078125 0.8046875 0.2773438 0.8046875 0.4960938 0.7958816 0.4011822 0.8046875 0.4960938 0.79587 0.4048618 0.7958816 0.4011822 0.7088977 0.3616208 0.7060039 0.3593519 0.7934817 0.3560252 0.7060039 0.3593519 0.8046875 0.2773438 0.7934817 0.3560252 0.6719875 0.4374769 0.6626338 0.4413934 0.6703681 0.4343076 0.6626338 0.4413934 0.6590877 0.4363514 0.6703681 0.4343076 0.7107183 0.3984869 0.6719875 0.4374769 0.6703681 0.4343076 0.6683581 0.4304701 0.6589134 0.4344661 0.6667141 0.4272662 0.6589134 0.4344661 0.6553167 0.429395 0.6667141 0.4272662 0.7072473 0.3915 0.6683581 0.4304701 0.6667141 0.4272662 0.7037395 0.3845635 0.6647186 0.4234158 0.6765272 0.4028772 0.6647186 0.4234158 0.6551535 0.4274626 0.6564746 0.4133117 0.6765272 0.4028772 0.6647186 0.4234158 0.6707679 0.4072312 0.6551535 0.4274626 0.6484375 0.4140625 0.6564746 0.4133117 0.6564746 0.4133117 0.664846 0.4109677 0.6647186 0.4234158 0.664846 0.4109677 0.6707679 0.4072312 0.6647186 0.4234158 0.7037395 0.3845635 0.6765272 0.4028772 0.6808764 0.3969842 0.7037395 0.3845635 0.6808764 0.3969842 0.6847027 0.3909546 0.6862974 0.3846162 0.6869742 0.3796073 0.7037395 0.3845635 0.6869742 0.3796073 0.6941677 0.3724869 0.7019447 0.3798312 0.7037395 0.3845635 0.6869742 0.3796073 0.7019447 0.3798312 0.7037395 0.3845635 0.6847027 0.3909546 0.6862974 0.3846162 0.7886615 0.3855476 0.7037395 0.3845635 0.7019447 0.3798312 0.7886615 0.3855476 0.7019447 0.3798312 0.7870407 0.3757169 0.789077 0.3885076 0.7886615 0.3855476 0.7922265 0.3932982 0.7886615 0.3855476 0.7870407 0.3757169 0.7922265 0.3932982 0.7870407 0.3757169 0.7873313 0.3727117 0.7902636 0.3677988 0.7922265 0.3932982 0.7870407 0.3757169 0.7902636 0.3677988 0.7072473 0.3915 0.6667141 0.4272662 0.7056617 0.3886672 0.7922265 0.3932982 0.7072473 0.3915 0.789077 0.3885076 0.7072473 0.3915 0.7056617 0.3886672 0.789077 0.3885076 0.7034366 0.3757264 0.6964595 0.3695758 0.7047283 0.3728319 0.6964595 0.3695758 0.6988602 0.3673141 0.7047283 0.3728319 0.7873313 0.3727117 0.7034366 0.3757264 0.7047283 0.3728319 0.7873313 0.3727117 0.7047283 0.3728319 0.7902636 0.3677988 0.7922265 0.3932982 0.7902636 0.3677988 0.7936452 0.3597685 0.7902636 0.3677988 0.7905749 0.3647736 0.7936452 0.3597685 0.792643 0.3962891 0.7922265 0.3932982 0.7958816 0.4011822 0.7062069 0.3686895 0.7012655 0.3644847 0.7074477 0.3657639 0.7012655 0.3644847 0.7036679 0.3622302 0.7074477 0.3657639 0.7905749 0.3647736 0.7062069 0.3686895 0.7074477 0.3657639 0.7936452 0.3597685 0.7934817 0.3560252 0.8046875 0.2773438 0.7905749 0.3647736 0.7074477 0.3657639 0.7936452 0.3597685 0.7922265 0.3932982 0.7936452 0.3597685 0.7958816 0.4011822 0.7936452 0.3597685 0.8046875 0.2773438 0.7958816 0.4011822 0.7107183 0.3984869 0.6703681 0.4343076 0.709154 0.3956355 0.7107183 0.3984869 0.709154 0.3956355 0.792643 0.3962891 0.8828125 0.5351563 0.9414063 0.5351563 0.8828125 0.5390625 0.9414063 0.5351563 0.9414063 0.5390625 0.8828125 0.5390625 0.8085938 0.5390625 0.8085938 0.5351563 0.8320313 0.5390625 0.8085938 0.5351563 0.8320313 0.5351563 0.8320313 0.5390625 0.8320313 0.5351563 0.8828125 0.5351563 0.8828125 0.5390625 0.8828125 0.546875 0.9414063 0.546875 0.8828125 0.5507813 0.9414063 0.546875 0.9414063 0.5507813 0.8828125 0.5507813 0.8085938 0.5507813 0.8085938 0.546875 0.8320313 0.5507813 0.8085938 0.546875 0.8320313 0.546875 0.8320313 0.5507813 0.8320313 0.546875 0.8828125 0.546875 0.8828125 0.5507813 0.8828125 0.5585938 0.9414063 0.5585938 0.8828125 0.5625 0.9414063 0.5585938 0.9414063 0.5625 0.8828125 0.5625 0.8085938 0.5625 0.8085938 0.5585938 0.8320313 0.5625 0.8085938 0.5585938 0.8320313 0.5585938 0.8320313 0.5625 0.8320313 0.5585938 0.8828125 0.5585938 0.8828125 0.5625 0.9414063 0.6171875 0.9453125 0.6132813 0.9453125 0.625 0.9453125 0.5859375 0.9453125 0.5898438 0.8984375 0.5898438 0.8046875 0.5390625 0.8320313 0.5390625 0.8320313 0.5429688 0.8320313 0.5390625 0.8984375 0.5390625 0.8984375 0.5429688 0.9453125 0.5390625 0.9453125 0.5429688 0.8984375 0.5429688 0.9414063 0.5351563 0.9453125 0.53125 0.9453125 0.5429688 0.9453125 0.53125 0.8984375 0.53125 0.8984375 0.5351563 0.8984375 0.53125 0.8320313 0.53125 0.8320313 0.5351563 0.8046875 0.53125 0.8046875 0.5351563 0.8320313 0.5351563 0.8085938 0.5390625 0.8046875 0.5429688 0.8046875 0.53125 0.8046875 0.546875 0.8046875 0.5429688 0.8320313 0.5429688 0.8984375 0.546875 0.8320313 0.546875 0.8320313 0.5429688 0.9453125 0.546875 0.8984375 0.546875 0.8984375 0.5429688 0.9414063 0.546875 0.9453125 0.5429688 0.9453125 0.5546875 0.9453125 0.5507813 0.9453125 0.5546875 0.8984375 0.5546875 0.8320313 0.5507813 0.8984375 0.5507813 0.8984375 0.5546875 0.8046875 0.5507813 0.8320313 0.5507813 0.8320313 0.5546875 0.8085938 0.5507813 0.8046875 0.5546875 0.8046875 0.5429688 0.8046875 0.5585938 0.8046875 0.5546875 0.8320313 0.5546875 0.8984375 0.5585938 0.8320313 0.5585938 0.8320313 0.5546875 0.9453125 0.5585938 0.8984375 0.5585938 0.8984375 0.5546875 0.9414063 0.5585938 0.9453125 0.5546875 0.9453125 0.5664063 0.9453125 0.5625 0.9453125 0.5664063 0.8984375 0.5664063 0.8320313 0.5625 0.8984375 0.5625 0.8984375 0.5664063 0.8046875 0.5625 0.8320313 0.5625 0.8320313 0.5664063 0.8085938 0.5625 0.8046875 0.5664063 0.8046875 0.5546875 0.6210938 0.4609375 0.625 0.4648438 0.625 0.4804688 0.6445313 0.5351563 0.6445313 0.4960938 0.6484375 0.4960938 0.8320313 0.5078125 0.8320313 0.5039063 0.890625 0.5078125 0.8320313 0.5039063 0.8984375 0.5039063 0.890625 0.5078125 0.8085938 0.6210938 0.8046875 0.625 0.8046875 0.6132813 0.8320313 0.5898438 0.8046875 0.5898438 0.8046875 0.5859375 0.6210938 0.4296875 0.625 0.4335938 0.625 0.4492188 0.9453125 0.5742188 0.9453125 0.578125 0.8984375 0.578125 0.6210938 0.453125 0.625 0.4492188 0.6328125 0.4492188 0.8554688 0.3984375 0.8554688 0.390625 0.8945313 0.390625 0.625 0.4648438 0.6328125 0.4648438 0.6328125 0.4804688 0.8945313 0.34375 0.8945313 0.3515625 0.8554688 0.3515625 0.8945313 0.3359375 0.8945313 0.328125 0.9023438 0.328125 0.8945313 0.2890625 0.8945313 0.28125 0.9023438 0.28125 0.8945313 0.2890625 0.9023438 0.2890625 0.9023438 0.296875 0.8945313 0.296875 0.9023438 0.296875 0.9023438 0.3046875 0.8945313 0.3046875 0.9023438 0.3046875 0.9023438 0.3125 0.8320313 0.5195313 0.8320313 0.515625 0.890625 0.5195313 0.8320313 0.515625 0.8984375 0.515625 0.890625 0.5195313 0.8945313 0.3515625 0.9023438 0.3515625 0.9023438 0.359375 0.8945313 0.34375 0.9023438 0.34375 0.9023438 0.3515625 0.8945313 0.359375 0.8945313 0.3671875 0.8554688 0.3671875 0.6484375 0.5351563 0.8046875 0.5351563 0.6725161 0.590524 0.8046875 0.5351563 0.7931963 0.6274399 0.7112594 0.6293308 0.6725161 0.590524 0.8046875 0.5351563 0.7112594 0.6293308 0.6613433 0.5885105 0.661254 0.5903719 0.657865 0.5954006 0.6484375 0.5351563 0.6725161 0.590524 0.6613433 0.5885105 0.6540729 0.6042755 0.6484375 0.6210938 0.6542191 0.6023433 0.6484375 0.6210938 0.6484375 0.5351563 0.6542191 0.6023433 0.657865 0.5954006 0.657732 0.5972856 0.6542191 0.6023433 0.6484375 0.5351563 0.6613433 0.5885105 0.657865 0.5954006 0.6367188 0.3203125 0.6328125 0.3242188 0.625 0.3242188 0.8945313 0.3125 0.8945313 0.3203125 0.8554688 0.3203125 0.8984375 0.5195313 0.8984375 0.5234375 0.890625 0.5195313 0.8984375 0.5234375 0.8320313 0.5234375 0.890625 0.5195313 0.6367188 0.484375 0.6210938 0.484375 0.625 0.4804688 0.6210938 0.3085938 0.625 0.3046875 0.6328125 0.3046875 0.8984375 0.5664063 0.9453125 0.5664063 0.9453125 0.5703125 0.6210938 0.34375 0.625 0.3398438 0.6328125 0.3398438 0.8945313 0.3984375 0.8945313 0.390625 0.9023438 0.390625 0.8984375 0.5078125 0.8984375 0.5117188 0.890625 0.5078125 0.8984375 0.5117188 0.8320313 0.5117188 0.890625 0.5078125 0.8320313 0.53125 0.8320313 0.5273438 0.890625 0.53125 0.8320313 0.5273438 0.8984375 0.5273438 0.890625 0.53125 0.9414063 0.6289063 0.9453125 0.625 0.9453125 0.6367188 0.9453125 0.5976563 0.9453125 0.6015625 0.8984375 0.6015625 0.8984375 0.4960938 0.8984375 0.5 0.890625 0.4960938 0.8984375 0.5 0.8320313 0.5 0.890625 0.4960938 0.8046875 0.59375 0.8046875 0.5898438 0.8320313 0.5898438 0.8320313 0.6015625 0.8046875 0.6015625 0.8046875 0.5976563 0.8085938 0.6328125 0.8046875 0.6367188 0.8046875 0.625 0.7931963 0.6274399 0.8046875 0.5351563 0.7931929 0.6311195 0.8046875 0.5351563 0.8046875 0.7539063 0.7931929 0.6311195 0.8046875 0.7539063 0.7067155 0.6729791 0.7931327 0.6730901 0.7067155 0.6729791 0.709585 0.6706083 0.7931327 0.6730901 0.8046875 0.7539063 0.7931327 0.6730901 0.7931531 0.6693429 0.7079739 0.6665234 0.7042396 0.670189 0.7017183 0.6680247 0.7931929 0.6311195 0.8046875 0.7539063 0.7931531 0.6693429 0.7079739 0.6665234 0.7017183 0.6680247 0.7066196 0.6636469 0.657865 0.5954006 0.661254 0.5903719 0.669142 0.5974904 0.661254 0.5903719 0.6706756 0.5943269 0.669142 0.5974904 0.669142 0.5974904 0.6706756 0.5943269 0.7093751 0.6334774 0.6542191 0.6023433 0.657732 0.5972856 0.6656011 0.6045186 0.657732 0.5972856 0.6672064 0.6013207 0.6656011 0.6045186 0.6656011 0.6045186 0.6672064 0.6013207 0.7058358 0.6404517 0.6540729 0.6042755 0.6635924 0.6083861 0.6543546 0.6202624 0.6635924 0.6083861 0.7022034 0.6473758 0.6745533 0.6295657 0.6543546 0.6202624 0.6484375 0.6210938 0.6540729 0.6042755 0.6616945 0.6221625 0.6543546 0.6202624 0.6635924 0.6083861 0.6685211 0.62525 0.6616945 0.6221625 0.6635924 0.6083861 0.6745533 0.6295657 0.6685211 0.62525 0.6635924 0.6083861 0.6794179 0.6348639 0.6745533 0.6295657 0.7022034 0.6473758 0.6831247 0.6409096 0.6794179 0.6348639 0.7022034 0.6473758 0.6942515 0.660293 0.6862586 0.6534677 0.7019596 0.6526791 0.6862586 0.6534677 0.6855093 0.6472589 0.7022034 0.6473758 0.6855093 0.6472589 0.6831247 0.6409096 0.7022034 0.6473758 0.6862586 0.6534677 0.7022034 0.6473758 0.7019596 0.6526791 0.7019596 0.6526791 0.7022034 0.6473758 0.7859094 0.6467247 0.785943 0.6536587 0.7019596 0.6526791 0.7859094 0.6467247 0.785943 0.6536587 0.7859094 0.6467247 0.7895057 0.6389886 0.7859094 0.6467247 0.7863369 0.6437664 0.7895057 0.6389886 0.7863486 0.6566506 0.785943 0.6536587 0.7894666 0.6614478 0.7042044 0.6432787 0.6656011 0.6045186 0.7058358 0.6404517 0.7042044 0.6432787 0.7058358 0.6404517 0.7863369 0.6437664 0.7058358 0.6404517 0.7895057 0.6389886 0.7863369 0.6437664 0.785943 0.6536587 0.7895057 0.6389886 0.7894666 0.6614478 0.6991799 0.6652868 0.6966667 0.663116 0.7049899 0.6595649 0.6966667 0.663116 0.7035919 0.6567221 0.7049899 0.6595649 0.7049899 0.6595649 0.7035919 0.6567221 0.7863486 0.6566506 0.7894666 0.6614478 0.7049899 0.6595649 0.7863486 0.6566506 0.7079739 0.6665234 0.7066196 0.6636469 0.7898935 0.6644589 0.7898935 0.6644589 0.7894666 0.6614478 0.7931531 0.6693429 0.7894666 0.6614478 0.7895057 0.6389886 0.7931531 0.6693429 0.7895057 0.6389886 0.7899345 0.6359996 0.7931929 0.6311195 0.7931531 0.6693429 0.7895057 0.6389886 0.7931929 0.6311195 0.7931531 0.6693429 0.7079739 0.6665234 0.7898935 0.6644589 0.7077907 0.6363229 0.669142 0.5974904 0.7093751 0.6334774 0.7899345 0.6359996 0.7077907 0.6363229 0.7093751 0.6334774 0.8320313 0.6328125 0.8085938 0.6328125 0.8320313 0.6289063 0.8085938 0.6328125 0.8085938 0.6289063 0.8320313 0.6289063 0.8828125 0.6289063 0.9414063 0.6289063 0.9414063 0.6328125 0.8828125 0.6289063 0.9414063 0.6328125 0.8828125 0.6328125 0.8320313 0.6328125 0.8320313 0.6289063 0.8828125 0.6289063 0.8320313 0.6210938 0.8085938 0.6210938 0.8320313 0.6171875 0.8085938 0.6210938 0.8085938 0.6171875 0.8320313 0.6171875 0.8828125 0.6171875 0.9414063 0.6171875 0.9414063 0.6210938 0.8828125 0.6171875 0.9414063 0.6210938 0.8828125 0.6210938 0.8320313 0.6210938 0.8320313 0.6171875 0.8828125 0.6171875 0.8320313 0.609375 0.8085938 0.609375 0.8320313 0.6054688 0.8085938 0.609375 0.8085938 0.6054688 0.8320313 0.6054688 0.8828125 0.6054688 0.9414063 0.6054688 0.9414063 0.609375 0.8828125 0.6054688 0.9414063 0.609375 0.8828125 0.609375 0.8320313 0.609375 0.8320313 0.6054688 0.8828125 0.6054688 0.8046875 0.6289063 0.8046875 0.625 0.8320313 0.625 0.8320313 0.6289063 0.8320313 0.625 0.8984375 0.625 0.8984375 0.625 0.9453125 0.625 0.9453125 0.6289063 0.9453125 0.5898438 0.9453125 0.6015625 0.9414063 0.5976563 0.9453125 0.6328125 0.9453125 0.6367188 0.8984375 0.6367188 0.8984375 0.6328125 0.8984375 0.6367188 0.8320313 0.6367188 0.8320313 0.6367188 0.8046875 0.6367188 0.8046875 0.6328125 0.8046875 0.6015625 0.8046875 0.5898438 0.8085938 0.59375 0.8320313 0.625 0.8046875 0.625 0.8046875 0.6210938 0.8984375 0.6210938 0.8984375 0.625 0.8320313 0.625 0.9453125 0.6210938 0.9453125 0.625 0.8984375 0.625 0.9453125 0.578125 0.9453125 0.5898438 0.9414063 0.5859375 0.8984375 0.6132813 0.9453125 0.6132813 0.9453125 0.6171875 0.8320313 0.6171875 0.8320313 0.6132813 0.8984375 0.6132813 0.8046875 0.6171875 0.8046875 0.6132813 0.8320313 0.6132813 0.8046875 0.5898438 0.8046875 0.578125 0.8085938 0.5820313 0.8320313 0.6132813 0.8046875 0.6132813 0.8046875 0.609375 0.8984375 0.609375 0.8984375 0.6132813 0.8320313 0.6132813 0.9453125 0.609375 0.9453125 0.6132813 0.8984375 0.6132813 0.9453125 0.5664063 0.9453125 0.578125 0.9414063 0.5742188 0.8984375 0.6015625 0.9453125 0.6015625 0.9453125 0.6054688 0.8320313 0.6054688 0.8320313 0.6015625 0.8984375 0.6015625 0.8046875 0.6054688 0.8046875 0.6015625 0.8320313 0.6015625 0.8046875 0.578125 0.8046875 0.5664063 0.8085938 0.5703125 0.8554688 0.390625 0.8554688 0.3828125 0.8945313 0.3828125 0.6210938 0.4296875 0.6132813 0.4179688 0.6445313 0.4179688 0.6132813 0.2773438 0.6445313 0.2773438 0.6367188 0.2851563 0.6367188 0.484375 0.6445313 0.4960938 0.6132813 0.4960938 0.6445313 0.4960938 0.6367188 0.484375 0.6445313 0.4570313 0.6367188 0.484375 0.6367188 0.4609375 0.6445313 0.4570313 0.6210938 0.4609375 0.6210938 0.484375 0.6132813 0.4570313 0.6210938 0.484375 0.6132813 0.4960938 0.6132813 0.4570313 0.6445313 0.4570313 0.6367188 0.4609375 0.6367188 0.453125 0.6367188 0.4609375 0.6210938 0.4609375 0.6210938 0.453125 0.6367188 0.4296875 0.6445313 0.4179688 0.6367188 0.453125 0.6445313 0.4179688 0.6445313 0.4570313 0.6367188 0.453125 0.6367188 0.4609375 0.6210938 0.453125 0.6367188 0.453125 0.6210938 0.4609375 0.6132813 0.4570313 0.6210938 0.453125 0.6132813 0.4570313 0.6132813 0.4179688 0.6210938 0.453125 0.8085938 0.5039063 0.8085938 0.5 0.8320313 0.5 0.8320313 0.5039063 0.8320313 0.5 0.8828125 0.5 0.8828125 0.5 0.9414063 0.5 0.9414063 0.5039063 0.8320313 0.5234375 0.8320313 0.5273438 0.8085938 0.5273438 0.8828125 0.5234375 0.8828125 0.5273438 0.8320313 0.5273438 0.8828125 0.5234375 0.9414063 0.5234375 0.9414063 0.5273438 0.8085938 0.515625 0.8085938 0.5117188 0.8320313 0.5117188 0.8320313 0.515625 0.8320313 0.5117188 0.8828125 0.5117188 0.8828125 0.5117188 0.9414063 0.5117188 0.9414063 0.515625 0.8085938 0.5820313 0.8320313 0.5820313 0.8320313 0.5859375 0.8320313 0.5820313 0.8828125 0.5820313 0.8828125 0.5859375 0.8828125 0.5859375 0.8828125 0.5820313 0.9414063 0.5820313 0.8085938 0.5703125 0.8320313 0.5703125 0.8320313 0.5742188 0.8828125 0.5742188 0.8320313 0.5742188 0.8320313 0.5703125 0.8828125 0.5742188 0.8828125 0.5703125 0.9414063 0.5703125 + + + + + + + + + + + + + + +

    41 0 0 102 1 1 103 2 2 76 3 3 98 4 4 100 5 5 222 6 6 224 7 7 225 8 8 13 9 9 34 10 10 36 11 11 161 12 12 272 13 13 273 14 14 82 15 15 51 15 16 52 16 17 58 17 18 87 17 19 88 17 20 2 18 21 33 19 22 30 20 23 27 21 24 17 22 25 9 23 26 87 24 27 57 24 28 116 24 29 269 25 30 159 25 31 158 25 32 17 26 33 23 27 34 14 28 35 32 29 36 6 30 37 18 31 38 159 32 39 161 33 40 158 34 41 75 35 42 102 1 43 74 36 44 75 35 45 100 5 46 101 37 47 11 38 48 12 39 49 114 40 50 7 41 51 37 42 52 11 43 53 79 44 54 96 45 55 97 46 56 6 47 57 26 48 58 1 49 59 12 50 60 39 51 61 8 52 62 267 53 63 266 54 64 118 55 65 42 56 66 73 57 67 43 58 68 43 58 69 72 59 70 44 60 71 72 59 72 45 61 73 44 60 74 45 61 75 70 62 76 46 63 77 46 63 78 68 64 79 47 65 80 68 64 81 48 66 82 47 65 83 69 67 84 49 68 85 48 66 86 49 68 87 66 69 88 50 70 89 50 70 90 65 71 91 51 72 92 65 71 93 52 73 94 51 72 95 64 74 96 53 75 97 52 73 98 63 76 99 54 77 100 53 75 101 62 78 102 55 79 103 54 77 104 60 80 105 56 81 106 55 79 107 223 82 108 161 33 109 224 7 110 76 83 111 45 84 112 46 85 113 105 86 114 114 40 115 111 87 116 121 88 117 58 88 118 88 88 119 40 89 120 34 90 121 39 91 122 78 92 123 47 92 124 48 92 125 80 93 126 49 94 127 50 95 128 56 81 129 113 96 130 110 97 131 7 98 132 108 99 133 2 100 134 75 101 135 44 101 136 45 101 137 0 102 138 104 103 139 86 104 140 83 105 141 94 106 142 82 107 143 128 108 144 227 109 145 127 110 146 82 107 147 95 111 148 81 112 149 32 113 150 26 114 151 31 115 152 86 116 153 55 116 154 56 117 155 33 118 156 35 119 157 30 120 158 234 121 159 109 122 160 91 123 161 81 124 162 50 125 163 51 126 164 8 127 165 34 127 166 3 128 167 108 129 168 119 130 169 120 131 170 107 132 171 20 133 172 21 134 173 106 135 174 108 136 175 105 137 176 20 138 177 104 139 178 0 140 179 38 141 180 109 142 181 106 143 182 235 144 183 236 145 184 130 146 185 20 147 186 5 148 187 24 149 188 177 150 189 73 151 190 61 152 191 166 153 192 241 154 193 167 155 194 115 156 195 42 56 196 112 157 197 24 158 198 110 159 199 113 160 200 114 161 201 112 162 202 111 163 203 25 164 204 113 165 205 118 166 206 114 167 207 116 168 208 115 169 209 232 170 210 162 171 211 163 172 212 165 173 213 233 174 214 164 175 215 85 176 216 54 177 217 55 178 218 236 179 219 131 179 220 130 179 221 162 180 222 234 181 223 165 182 224 164 183 225 233 184 226 230 185 227 135 186 228 170 186 229 171 186 230 136 187 231 171 188 232 172 189 233 136 190 234 173 190 235 137 190 236 126 191 237 122 192 238 163 193 239 146 194 240 176 195 241 147 196 242 149 197 243 177 198 244 178 199 245 146 200 246 178 201 247 175 202 248 84 203 249 53 204 250 54 205 251 139 206 252 180 206 253 138 206 254 139 207 255 182 208 256 181 209 257 140 210 258 183 210 259 182 210 260 125 211 261 242 212 262 168 213 263 150 214 264 185 215 265 184 216 266 153 217 267 186 218 268 152 219 269 153 220 270 184 221 271 187 222 272 268 223 273 269 224 274 158 225 275 143 226 276 189 226 277 142 226 278 143 227 279 191 228 280 190 229 281 144 230 282 192 230 283 191 230 284 105 231 285 111 232 286 42 233 287 154 234 288 195 235 289 194 236 290 157 237 291 196 238 292 156 239 293 157 240 294 194 241 295 197 242 296 263 243 297 262 244 298 256 245 299 204 246 300 200 247 301 199 248 302 207 249 303 211 250 304 212 251 305 215 252 306 219 253 307 220 254 308 131 255 309 238 256 310 132 257 311 132 258 312 239 258 313 133 258 314 198 259 315 245 260 316 244 261 317 199 262 318 246 263 319 245 264 320 201 265 321 246 266 322 200 267 323 202 268 324 247 269 325 201 270 326 202 271 327 249 272 328 248 273 329 203 274 330 250 275 331 249 276 332 205 277 333 250 278 334 204 279 335 198 280 336 251 281 337 205 282 338 206 283 339 253 284 340 207 285 341 208 286 342 253 287 343 254 288 344 209 289 345 254 290 346 255 291 347 209 292 348 256 293 349 210 270 350 210 294 351 257 295 352 211 295 353 212 296 354 257 297 355 258 298 356 213 299 357 258 300 358 259 301 359 213 302 360 252 303 361 206 304 362 214 305 363 261 306 364 215 307 365 216 308 366 261 309 367 262 310 368 217 311 369 262 312 370 263 313 371 217 314 372 264 315 373 218 316 374 218 317 375 265 318 376 219 319 377 220 320 378 265 321 379 266 322 380 221 323 381 266 324 382 267 325 383 221 326 384 260 327 385 214 328 386 14 329 387 22 330 388 4 331 389 16 332 390 118 333 391 121 88 392 142 334 393 189 335 394 188 336 395 169 337 396 240 338 397 166 339 398 242 340 399 169 341 400 168 342 401 1 343 402 28 344 403 15 345 404 127 258 405 226 258 406 126 258 407 15 346 408 32 347 409 18 348 410 42 349 411 41 350 412 38 351 413 23 352 414 27 353 415 22 354 416 79 355 417 48 355 418 49 356 419 80 357 420 95 111 421 96 45 422 86 358 423 107 359 424 89 360 425 86 358 426 90 361 427 85 362 428 85 362 429 92 363 430 84 364 431 84 364 432 93 365 433 83 105 434 138 366 435 180 367 436 179 368 437 78 369 438 98 4 439 77 370 440 79 44 441 99 371 442 78 369 443 77 372 444 46 373 445 47 374 446 121 375 447 317 376 448 302 377 449 11 378 450 33 379 451 10 380 452 83 381 453 52 382 454 53 383 455 147 384 456 176 385 457 123 386 458 9 387 459 22 388 460 27 389 461 13 390 462 40 391 463 12 392 464 229 393 465 128 393 466 129 393 467 2 394 468 35 395 469 7 396 470 38 141 471 103 2 472 91 397 473 152 398 474 186 399 475 124 400 476 137 401 477 173 402 478 174 403 479 159 404 480 271 405 481 160 406 482 160 407 483 272 407 484 161 407 485 156 408 486 196 409 487 193 410 488 222 411 489 275 412 490 223 413 491 276 414 492 225 415 493 224 416 494 225 417 495 274 418 496 222 419 497 314 420 498 320 421 499 321 8 500 284 422 501 280 423 502 283 424 503 287 425 504 291 426 505 288 427 506 295 428 507 299 429 508 296 430 509 278 431 510 303 432 511 279 433 512 279 434 513 304 435 514 280 436 515 304 437 516 281 438 517 280 439 518 305 440 519 282 441 520 281 442 521 282 443 522 307 444 523 283 445 524 283 446 525 308 447 526 284 448 527 308 449 528 285 450 529 284 451 530 309 452 531 278 453 532 285 454 533 311 455 534 286 456 535 287 457 536 288 458 537 311 459 538 287 460 539 289 461 540 312 462 541 288 463 542 314 464 543 289 465 544 290 442 545 315 466 546 290 467 547 291 466 548 292 468 549 315 469 550 291 470 551 293 471 552 316 472 553 292 473 554 310 474 555 293 475 556 286 476 557 319 477 558 294 478 559 295 479 560 296 480 561 319 481 562 295 482 563 297 483 564 320 484 565 296 485 566 322 486 567 297 487 568 298 488 569 323 489 570 298 490 571 299 491 572 300 492 573 323 493 574 299 494 575 301 495 576 324 496 577 300 497 578 318 498 579 301 499 580 294 500 581 43 501 582 74 502 583 41 503 584 1 504 585 24 149 586 6 505 587 120 506 588 8 507 589 3 508 590 9 509 591 16 510 592 4 511 593 20 147 594 1 504 595 15 512 596 154 513 597 156 514 598 155 515 599 155 515 600 145 516 601 142 517 602 145 516 603 143 518 604 142 517 605 147 519 606 149 520 607 146 520 608 134 521 609 148 522 610 147 519 611 134 521 612 136 523 613 137 524 614 150 525 615 152 526 616 151 527 617 151 527 618 141 528 619 138 529 620 141 528 621 139 520 622 138 529 623 166 530 624 168 531 625 169 8 626 167 532 627 133 533 628 168 531 629 133 533 630 131 8 631 132 8 632 165 534 633 163 535 634 162 8 635 126 536 636 164 537 637 129 538 638 126 536 639 128 539 640 127 8 641 41 0 642 74 36 643 102 1 644 76 3 645 77 370 646 98 4 647 222 6 648 223 82 649 224 7 650 13 9 651 3 540 652 34 10 653 273 14 654 276 541 655 224 542 656 224 542 657 161 12 658 273 14 659 82 15 660 81 16 661 51 15 662 58 17 663 57 17 664 87 17 665 2 18 666 10 543 667 33 19 668 27 21 669 29 544 670 17 22 671 116 24 672 117 24 673 120 24 674 120 24 675 119 24 676 116 24 677 119 24 678 87 24 679 116 24 680 269 545 681 270 545 682 159 545 683 17 26 684 29 546 685 23 27 686 32 29 687 31 547 688 6 30 689 159 32 690 160 8 691 161 33 692 75 35 693 101 37 694 102 1 695 75 35 696 76 3 697 100 5 698 10 548 699 2 100 700 108 99 701 108 99 702 120 506 703 13 549 704 120 506 705 3 508 706 13 549 707 10 548 708 108 99 709 13 549 710 12 39 711 8 507 712 117 550 713 10 548 714 13 549 715 12 39 716 114 40 717 7 98 718 11 38 719 11 38 720 10 548 721 12 39 722 12 39 723 117 550 724 114 40 725 7 41 726 35 551 727 37 42 728 79 44 729 80 357 730 96 45 731 6 47 732 31 552 733 26 48 734 12 50 735 40 553 736 39 51 737 118 55 738 113 554 739 244 555 740 113 554 741 251 556 742 244 555 743 244 555 744 252 520 745 259 557 746 264 558 747 58 559 748 265 520 749 58 559 750 118 55 751 266 54 752 266 54 753 265 520 754 58 559 755 259 557 756 260 560 757 267 53 758 244 555 759 259 557 760 118 55 761 259 557 762 267 53 763 118 55 764 42 56 765 61 561 766 73 57 767 43 58 768 73 57 769 72 59 770 72 59 771 71 562 772 45 61 773 45 61 774 71 562 775 70 62 776 46 63 777 70 62 778 68 64 779 68 64 780 69 67 781 48 66 782 69 67 783 67 563 784 49 68 785 49 68 786 67 563 787 66 69 788 50 70 789 66 69 790 65 71 791 65 71 792 64 74 793 52 73 794 64 74 795 63 76 796 53 75 797 63 76 798 62 78 799 54 77 800 62 78 801 60 80 802 55 79 803 60 80 804 59 564 805 56 81 806 223 82 807 158 34 808 161 33 809 76 83 810 75 565 811 45 84 812 105 86 813 108 99 814 114 40 815 121 88 816 118 333 817 58 88 818 40 89 819 36 566 820 34 90 821 78 92 822 77 92 823 47 92 824 80 93 825 79 567 826 49 94 827 56 81 828 59 564 829 113 96 830 7 98 831 114 40 832 108 99 833 75 101 834 74 101 835 44 101 836 86 104 837 56 568 838 0 102 839 56 568 840 110 569 841 5 570 842 0 102 843 56 568 844 5 570 845 83 105 846 93 365 847 94 106 848 128 108 849 228 571 850 227 109 851 82 107 852 94 106 853 95 111 854 32 113 855 28 572 856 26 114 857 86 116 858 85 117 859 55 116 860 33 118 861 37 573 862 35 119 863 273 574 864 87 575 865 276 576 866 87 575 867 119 577 868 276 576 869 99 578 870 97 579 871 230 580 872 232 581 873 122 582 874 235 583 875 242 584 876 125 585 877 268 586 878 98 587 879 99 578 880 230 580 881 232 581 882 235 583 883 241 588 884 232 581 885 241 588 886 240 589 887 231 590 888 232 581 889 240 589 890 231 590 891 240 589 892 243 591 893 242 584 894 268 586 895 275 8 896 242 584 897 275 8 898 274 8 899 243 591 900 242 584 901 274 8 902 277 592 903 276 576 904 119 577 905 243 591 906 274 8 907 277 592 908 231 590 909 243 591 910 119 577 911 243 591 912 277 592 913 119 577 914 100 8 915 98 587 916 230 580 917 101 593 918 100 8 919 230 580 920 234 121 921 231 590 922 109 122 923 231 590 924 119 577 925 109 122 926 101 593 927 230 580 928 233 594 929 101 593 930 233 594 931 102 595 932 233 594 933 234 121 934 91 123 935 102 595 936 233 594 937 103 8 938 103 8 939 233 594 940 91 123 941 81 124 942 80 596 943 50 125 944 8 127 945 39 597 946 34 127 947 108 129 948 109 598 949 119 130 950 21 134 951 16 599 952 121 600 953 121 600 954 107 132 955 21 134 956 106 135 957 109 601 958 108 136 959 20 138 960 107 602 961 104 139 962 38 141 963 91 397 964 109 142 965 130 146 966 167 603 967 235 144 968 167 603 969 241 604 970 235 144 971 20 147 972 0 605 973 5 148 974 116 606 975 57 607 976 196 608 977 57 607 978 193 609 979 196 608 980 174 610 981 67 611 982 69 612 983 179 613 984 123 614 985 176 615 986 188 616 987 124 617 988 186 618 989 116 606 990 196 608 991 197 619 992 174 610 993 69 612 994 68 620 995 185 621 996 179 613 997 176 615 998 184 622 999 185 621 1000 176 615 1001 184 622 1002 176 615 1003 175 623 1004 187 624 1005 184 622 1006 175 623 1007 195 625 1008 188 616 1009 186 618 1010 116 606 1011 197 619 1012 187 624 1013 197 619 1014 194 626 1015 187 624 1016 194 626 1017 195 625 1018 186 618 1019 194 626 1020 186 618 1021 187 624 1022 174 610 1023 68 620 1024 70 627 1025 174 610 1026 70 627 1027 71 628 1028 116 606 1029 187 624 1030 175 623 1031 177 150 1032 174 610 1033 71 628 1034 116 606 1035 175 623 1036 115 629 1037 175 623 1038 178 630 1039 115 629 1040 178 630 1041 177 150 1042 61 152 1043 177 150 1044 71 628 1045 72 631 1046 177 150 1047 72 631 1048 73 151 1049 61 152 1050 115 629 1051 178 630 1052 166 153 1053 240 632 1054 241 154 1055 115 156 1056 61 561 1057 42 56 1058 24 158 1059 5 633 1060 110 159 1061 114 161 1062 115 634 1063 112 162 1064 118 166 1065 19 635 1066 25 164 1067 25 164 1068 24 636 1069 113 165 1070 114 167 1071 117 637 1072 116 168 1073 232 170 1074 231 638 1075 162 171 1076 165 173 1077 234 639 1078 233 174 1079 85 176 1080 84 640 1081 54 177 1082 236 641 1083 237 641 1084 131 641 1085 162 180 1086 231 642 1087 234 181 1088 230 185 1089 229 643 1090 129 644 1091 129 644 1092 164 183 1093 230 185 1094 135 645 1095 134 645 1096 170 645 1097 136 187 1098 135 646 1099 171 188 1100 136 647 1101 172 647 1102 173 647 1103 226 648 1104 122 192 1105 126 191 1106 122 192 1107 232 649 1108 163 193 1109 146 194 1110 175 650 1111 176 195 1112 149 197 1113 148 651 1114 177 198 1115 146 200 1116 149 652 1117 178 201 1118 84 203 1119 83 653 1120 53 204 1121 139 654 1122 181 654 1123 180 654 1124 139 207 1125 140 655 1126 182 208 1127 140 645 1128 141 645 1129 183 645 1130 168 213 1131 133 656 1132 125 211 1133 133 656 1134 239 657 1135 125 211 1136 150 214 1137 151 658 1138 185 215 1139 153 217 1140 187 659 1141 186 218 1142 153 220 1143 150 660 1144 184 221 1145 158 225 1146 223 661 1147 268 223 1148 223 661 1149 275 662 1150 268 223 1151 143 663 1152 190 663 1153 189 663 1154 143 227 1155 144 664 1156 191 228 1157 144 665 1158 145 665 1159 192 665 1160 112 666 1161 42 233 1162 111 232 1163 42 233 1164 38 667 1165 105 231 1166 38 667 1167 106 668 1168 105 231 1169 154 234 1170 155 669 1171 195 235 1172 157 237 1173 197 670 1174 196 238 1175 157 240 1176 154 671 1177 194 241 1178 57 607 1179 58 559 1180 263 243 1181 58 559 1182 264 558 1183 263 243 1184 192 672 1185 193 609 1186 191 673 1187 193 609 1188 57 607 1189 191 673 1190 261 674 1191 260 560 1192 258 675 1193 260 560 1194 259 557 1195 258 675 1196 262 244 1197 261 674 1198 258 675 1199 253 676 1200 252 520 1201 245 677 1202 252 520 1203 244 555 1204 245 677 1205 254 678 1206 253 676 1207 245 677 1208 249 679 1209 250 680 1210 63 681 1211 250 680 1212 251 556 1213 59 682 1214 63 681 1215 250 680 1216 62 683 1217 251 556 1218 113 554 1219 59 682 1220 59 682 1221 60 684 1222 250 680 1223 60 684 1224 62 683 1225 250 680 1226 249 679 1227 63 681 1228 64 685 1229 249 679 1230 64 685 1231 65 686 1232 66 687 1233 67 611 1234 249 679 1235 67 611 1236 174 610 1237 173 688 1238 249 679 1239 67 611 1240 173 688 1241 249 679 1242 65 686 1243 66 687 1244 248 689 1245 249 679 1246 173 688 1247 248 689 1248 173 688 1249 172 520 1250 247 520 1251 248 689 1252 255 520 1253 248 689 1254 172 520 1255 255 520 1256 172 520 1257 171 690 1258 181 520 1259 255 520 1260 172 520 1261 181 520 1262 254 678 1263 245 677 1264 246 520 1265 255 520 1266 254 678 1267 247 520 1268 254 678 1269 246 520 1270 247 520 1271 170 691 1272 123 614 1273 180 692 1274 123 614 1275 179 613 1276 180 692 1277 171 690 1278 170 691 1279 180 692 1280 171 690 1281 180 692 1282 181 520 1283 255 520 1284 181 520 1285 190 520 1286 181 520 1287 182 693 1288 190 520 1289 256 245 1290 255 520 1291 263 243 1292 183 694 1293 124 617 1294 189 695 1295 124 617 1296 188 616 1297 189 695 1298 182 693 1299 183 694 1300 189 695 1301 190 520 1302 191 673 1303 57 607 1304 182 693 1305 189 695 1306 190 520 1307 255 520 1308 190 520 1309 263 243 1310 190 520 1311 57 607 1312 263 243 1313 262 244 1314 258 675 1315 257 696 1316 262 244 1317 257 696 1318 256 245 1319 203 697 1320 202 520 1321 200 247 1322 202 520 1323 201 520 1324 200 247 1325 198 698 1326 205 699 1327 199 248 1328 205 699 1329 204 246 1330 199 248 1331 204 246 1332 203 697 1333 200 247 1334 208 700 1335 209 520 1336 211 250 1337 209 520 1338 210 520 1339 211 250 1340 213 520 1341 206 701 1342 212 251 1343 206 701 1344 207 249 1345 212 251 1346 207 249 1347 208 700 1348 211 250 1349 216 702 1350 217 520 1351 219 253 1352 217 520 1353 218 520 1354 219 253 1355 221 520 1356 214 703 1357 220 254 1358 214 703 1359 215 252 1360 220 254 1361 215 252 1362 216 702 1363 219 253 1364 131 255 1365 237 704 1366 238 256 1367 132 705 1368 238 705 1369 239 705 1370 198 259 1371 199 706 1372 245 260 1373 199 262 1374 200 707 1375 246 263 1376 201 265 1377 247 708 1378 246 266 1379 202 268 1380 248 709 1381 247 269 1382 202 271 1383 203 710 1384 249 272 1385 203 274 1386 204 711 1387 250 275 1388 205 277 1389 251 712 1390 250 278 1391 198 280 1392 244 713 1393 251 281 1394 206 283 1395 252 714 1396 253 284 1397 208 286 1398 207 715 1399 253 287 1400 209 289 1401 208 716 1402 254 290 1403 209 292 1404 255 717 1405 256 293 1406 210 294 1407 256 718 1408 257 295 1409 212 296 1410 211 719 1411 257 297 1412 213 299 1413 212 720 1414 258 300 1415 213 302 1416 259 721 1417 252 303 1418 214 305 1419 260 722 1420 261 306 1421 216 308 1422 215 723 1423 261 309 1424 217 311 1425 216 724 1426 262 312 1427 217 314 1428 263 725 1429 264 315 1430 218 317 1431 264 726 1432 265 318 1433 220 320 1434 219 727 1435 265 321 1436 221 323 1437 220 728 1438 266 324 1439 221 326 1440 267 729 1441 260 327 1442 14 329 1443 23 730 1444 22 330 1445 16 332 1446 19 731 1447 118 333 1448 195 732 1449 155 733 1450 188 336 1451 155 733 1452 142 334 1453 188 336 1454 169 337 1455 243 734 1456 240 338 1457 242 340 1458 243 735 1459 169 341 1460 1 343 1461 26 736 1462 28 344 1463 127 737 1464 227 737 1465 226 737 1466 15 346 1467 28 738 1468 32 347 1469 42 349 1470 43 739 1471 41 350 1472 23 352 1473 29 740 1474 27 353 1475 79 355 1476 78 356 1477 48 355 1478 80 357 1479 81 112 1480 95 111 1481 86 358 1482 104 741 1483 107 359 1484 86 358 1485 89 360 1486 90 361 1487 85 362 1488 90 361 1489 92 363 1490 84 364 1491 92 363 1492 93 365 1493 185 742 1494 151 743 1495 179 368 1496 151 743 1497 138 366 1498 179 368 1499 78 369 1500 99 371 1501 98 4 1502 79 44 1503 97 46 1504 99 371 1505 77 372 1506 76 744 1507 46 373 1508 121 375 1509 88 745 1510 324 746 1511 88 745 1512 322 8 1513 323 8 1514 324 746 1515 88 745 1516 323 8 1517 325 747 1518 318 748 1519 317 376 1520 121 375 1521 324 746 1522 325 747 1523 309 749 1524 107 750 1525 302 377 1526 107 750 1527 121 375 1528 302 377 1529 317 376 1530 310 751 1531 302 377 1532 121 375 1533 325 747 1534 317 376 1535 11 378 1536 37 752 1537 33 379 1538 83 381 1539 82 753 1540 52 382 1541 170 754 1542 134 755 1543 123 386 1544 134 755 1545 147 384 1546 123 386 1547 9 387 1548 4 756 1549 22 388 1550 13 390 1551 36 757 1552 40 391 1553 229 758 1554 228 758 1555 128 758 1556 2 394 1557 30 759 1558 35 395 1559 38 141 1560 41 0 1561 103 2 1562 183 760 1563 141 761 1564 124 400 1565 141 761 1566 152 398 1567 124 400 1568 177 762 1569 148 763 1570 174 403 1571 148 763 1572 137 401 1573 174 403 1574 159 404 1575 270 764 1576 271 405 1577 160 765 1578 271 765 1579 272 765 1580 192 766 1581 145 767 1582 193 410 1583 145 767 1584 156 408 1585 193 410 1586 222 411 1587 274 768 1588 275 412 1589 276 414 1590 277 769 1591 225 415 1592 225 417 1593 277 770 1594 274 418 1595 322 8 1596 88 745 1597 321 8 1598 88 745 1599 87 575 1600 321 8 1601 87 575 1602 273 574 1603 271 771 1604 273 574 1605 272 772 1606 271 771 1607 87 575 1608 271 771 1609 270 8 1610 269 773 1611 268 586 1612 125 585 1613 321 8 1614 87 575 1615 270 8 1616 269 773 1617 125 585 1618 239 774 1619 317 376 1620 318 748 1621 316 775 1622 318 748 1623 319 776 1624 316 775 1625 316 775 1626 319 776 1627 320 421 1628 302 377 1629 310 751 1630 303 777 1631 310 751 1632 311 778 1633 303 777 1634 303 777 1635 311 778 1636 312 779 1637 309 749 1638 308 780 1639 89 781 1640 308 780 1641 307 782 1642 93 783 1643 89 781 1644 107 750 1645 309 749 1646 90 784 1647 89 781 1648 308 780 1649 92 785 1650 90 784 1651 308 780 1652 93 783 1653 92 785 1654 308 780 1655 94 8 1656 93 783 1657 307 782 1658 95 8 1659 94 8 1660 307 782 1661 230 580 1662 97 579 1663 229 786 1664 97 579 1665 96 787 1666 307 782 1667 96 787 1668 95 8 1669 307 782 1670 97 579 1671 307 782 1672 229 786 1673 229 786 1674 307 782 1675 306 788 1676 228 8 1677 229 786 1678 306 788 1679 228 8 1680 306 788 1681 313 789 1682 306 788 1683 305 790 1684 313 789 1685 227 791 1686 228 8 1687 237 8 1688 304 8 1689 303 777 1690 312 779 1691 304 8 1692 312 779 1693 305 790 1694 312 779 1695 313 789 1696 305 790 1697 228 8 1698 313 789 1699 237 8 1700 235 583 1701 122 582 1702 236 792 1703 122 582 1704 226 793 1705 236 792 1706 236 792 1707 226 793 1708 227 791 1709 237 8 1710 236 792 1711 227 791 1712 269 773 1713 239 774 1714 238 794 1715 238 794 1716 237 8 1717 270 8 1718 237 8 1719 313 789 1720 270 8 1721 313 789 1722 314 420 1723 321 8 1724 270 8 1725 313 789 1726 321 8 1727 270 8 1728 269 773 1729 238 794 1730 315 795 1731 316 775 1732 320 421 1733 314 420 1734 315 795 1735 320 421 1736 284 422 1737 285 796 1738 279 797 1739 285 796 1740 278 798 1741 279 797 1742 280 423 1743 281 8 1744 282 8 1745 280 423 1746 282 8 1747 283 424 1748 284 422 1749 279 797 1750 280 423 1751 287 425 1752 286 799 1753 292 800 1754 286 799 1755 293 8 1756 292 800 1757 291 426 1758 290 8 1759 289 8 1760 291 426 1761 289 8 1762 288 427 1763 287 425 1764 292 800 1765 291 426 1766 295 428 1767 294 8 1768 300 8 1769 294 8 1770 301 8 1771 300 8 1772 299 429 1773 298 8 1774 297 8 1775 299 429 1776 297 8 1777 296 430 1778 295 428 1779 300 8 1780 299 429 1781 278 431 1782 302 801 1783 303 432 1784 279 434 1785 303 802 1786 304 435 1787 304 437 1788 305 803 1789 281 438 1790 305 440 1791 306 804 1792 282 441 1793 282 443 1794 306 805 1795 307 444 1796 283 446 1797 307 806 1798 308 447 1799 308 449 1800 309 807 1801 285 450 1802 309 452 1803 302 808 1804 278 453 1805 311 455 1806 310 809 1807 286 456 1808 288 458 1809 312 810 1810 311 459 1811 289 461 1812 313 811 1813 312 462 1814 314 464 1815 313 812 1816 289 465 1817 315 466 1818 314 467 1819 290 467 1820 292 468 1821 316 813 1822 315 469 1823 293 471 1824 317 814 1825 316 472 1826 310 474 1827 317 815 1828 293 475 1829 319 477 1830 318 816 1831 294 478 1832 296 480 1833 320 817 1834 319 481 1835 297 483 1836 321 818 1837 320 484 1838 322 486 1839 321 819 1840 297 487 1841 323 489 1842 322 820 1843 298 490 1844 300 492 1845 324 821 1846 323 493 1847 301 495 1848 325 822 1849 324 496 1850 318 498 1851 325 823 1852 301 499 1853 43 501 1854 44 824 1855 74 502 1856 1 504 1857 20 147 1858 24 149 1859 120 506 1860 117 550 1861 8 507 1862 9 509 1863 19 825 1864 16 510 1865 19 825 1866 9 509 1867 25 826 1868 9 509 1869 17 827 1870 25 826 1871 14 828 1872 4 511 1873 21 829 1874 4 511 1875 16 510 1876 21 829 1877 25 826 1878 17 827 1879 18 830 1880 17 827 1881 14 828 1882 15 512 1883 6 505 1884 24 149 1885 18 830 1886 24 149 1887 25 826 1888 18 830 1889 17 827 1890 15 512 1891 18 830 1892 14 828 1893 21 829 1894 15 512 1895 21 829 1896 20 147 1897 15 512 1898 154 513 1899 157 520 1900 156 514 1901 155 515 1902 156 514 1903 145 516 1904 145 516 1905 144 520 1906 143 518 1907 147 519 1908 148 522 1909 149 520 1910 134 521 1911 137 524 1912 148 522 1913 134 521 1914 135 520 1915 136 523 1916 150 525 1917 153 520 1918 152 526 1919 151 527 1920 152 526 1921 141 528 1922 141 528 1923 140 520 1924 139 520 1925 166 530 1926 167 532 1927 168 531 1928 167 532 1929 130 831 1930 133 533 1931 133 533 1932 130 831 1933 131 8 1934 165 534 1935 164 537 1936 163 535 1937 126 536 1938 163 535 1939 164 537 1940 126 536 1941 129 538 1942 128 539 1943

    +
    +
    +
    + + + + 1.125 1.2511 -0.2375 1.875 1.2511 -0.2375 1.875 2.2527 -0.2375 1.125 2.2527 -0.2375 1.125 1.251099 0.2375 1.875 1.251099 0.2375 1.875 2.2527 0.2375 1.125 2.2527 0.2375 + + + + + + + + + + 0 0 -1 0 0 1 + + + + + + + + + + 0.3398438 0.8203125 0.40625 0.8632813 0.3398438 0.8632813 0.1484375 0.8203125 0.08203125 0.8632813 0.08203125 0.8203125 0.3398438 0.8203125 0.40625 0.8203125 0.40625 0.8632813 0.1484375 0.8203125 0.1484375 0.8632813 0.08203125 0.8632813 + + + + + + + + + + + + + + +

    0 0 0 2 0 1 1 0 2 6 1 3 4 1 4 5 1 5 0 0 6 3 0 7 2 0 8 6 1 9 7 1 10 4 1 11

    +
    +
    +
    + + + + -2.7797e-7 0.4163811 0.262669 2.63627e-7 -0.4163811 0.262669 0.2795697 0.2081907 0.117669 0.27957 -0.2081903 0.117669 0.2795697 0.2081907 -0.152556 0.27957 -0.2081903 -0.152556 0.09754449 0.4903932 -0.242556 0.0828424 0.4164784 -0.317556 0.1913412 0.4619403 -0.242556 0.1625002 0.3923144 -0.317556 0.2777848 0.4157353 -0.242556 0.2359163 0.3530727 -0.317556 0.3535532 0.353554 -0.242556 0.3002635 0.3002646 -0.317556 0.4157345 0.277786 -0.242556 0.3530725 0.2359166 -0.317556 0.4619396 0.1913424 -0.242556 0.3923134 0.1625022 -0.317556 0.4903928 0.09754586 -0.242556 0.416478 0.08284306 -0.317556 0.5000004 7.15256e-7 -0.242556 0.4246375 8.34465e-7 -0.317556 0.4903927 -0.09754455 -0.242556 0.4164779 -0.08284199 -0.317556 0.4619401 -0.1913412 -0.242556 0.3923138 -0.1625012 -0.317556 0.4157351 -0.2777848 -0.242556 0.353073 -0.2359156 -0.317556 0.3535538 -0.3535532 -0.242556 0.3002642 -0.3002635 -0.317556 0.2777854 -0.4157344 -0.242556 0.2359163 -0.3530723 -0.317556 0.1913417 -0.4619397 -0.242556 0.162501 -0.3923137 -0.317556 0.0975455 -0.4903927 -0.242556 0.082843 -0.4164779 -0.317556 0.09754449 0.4903932 0.207669 0.0828424 0.4164784 0.282669 0.1913412 0.4619403 0.207669 0.1625002 0.3923144 0.282669 0.2777848 0.4157353 0.207669 0.2359163 0.3530727 0.282669 0.3535532 0.353554 0.207669 0.3002635 0.3002646 0.282669 0.4157345 0.277786 0.207669 0.3530725 0.2359166 0.282669 0.4619396 0.1913424 0.207669 0.3923134 0.1625022 0.282669 0.4903928 0.09754586 0.207669 0.416478 0.08284306 0.282669 0.5000004 7.15256e-7 0.207669 0.4246375 8.34465e-7 0.282669 0.4903927 -0.09754455 0.207669 0.4164779 -0.08284199 0.282669 0.4619401 -0.1913412 0.207669 0.3923138 -0.1625012 0.282669 0.4157351 -0.2777848 0.207669 0.353073 -0.2359156 0.282669 0.3535538 -0.3535532 0.207669 0.3002642 -0.3002635 0.282669 0.2777854 -0.4157344 0.207669 0.2359163 -0.3530723 0.282669 0.1913417 -0.4619397 0.207669 0.162501 -0.3923137 0.282669 0.0975455 -0.4903927 0.207669 0.082843 -0.4164779 0.282669 0.01996779 0.4226706 0.282669 0.01996713 0.4980335 0.207669 -2.86847e-7 0.5 0.1794527 -2.7797e-7 0.4163811 -0.297556 0.01996779 0.4226706 -0.317556 0.01996713 0.4980335 -0.242556 -2.86847e-7 0.5 -0.2143397 2.86847e-7 -0.5 -0.2143397 0.01996773 -0.4980334 -0.242556 2.63627e-7 -0.4163811 -0.297556 0.01996833 -0.4226705 -0.317556 2.86847e-7 -0.5 0.1794527 0.01996773 -0.4980334 0.207669 0.01996833 -0.4226705 0.282669 + + + + + + + + + + -0.597267 0.8020425 0 -0.597267 0.8020425 0 -0.597267 0.8020426 0 0 -2.04634e-6 1 0 3.63074e-6 1 0 0 1 -0.4604119 -3.11456e-7 0.8877055 -0.4604119 -3.28784e-7 0.8877055 -0.4604119 -3.40901e-7 0.8877055 0 -9.6597e-7 -1 0 2.02082e-6 -1 0 0 -1 0.1376144 0.6918451 -0.7088109 0.2699437 0.6517032 -0.7088112 0.1376144 0.6918458 -0.7088102 0.3918973 0.5865175 -0.7088115 0.2699443 0.6517028 -0.7088114 0.4987913 0.4987925 -0.7088111 0.391898 0.5865171 -0.7088114 0.5865169 0.3918989 -0.7088111 0.4987911 0.4987931 -0.7088109 0.5865169 0.3918986 -0.7088113 0.6517024 0.2699456 -0.7088112 0.6517026 0.2699452 -0.7088112 0.6918438 0.1376183 -0.7088114 0.6918439 0.1376182 -0.7088112 0.7053979 -2.52695e-7 -0.7088116 0.6918441 -0.1376166 -0.7088113 0.7053984 -1.6417e-7 -0.7088111 0.6517035 -0.2699428 -0.7088114 0.6918436 -0.1376168 -0.7088117 0.5865179 -0.3918975 -0.7088111 0.6517036 -0.2699429 -0.7088112 0.4987917 -0.4987921 -0.7088112 0.5865176 -0.3918977 -0.7088113 0.391898 -0.5865173 -0.7088114 0.4987916 -0.4987922 -0.7088112 0.2699458 -0.6517023 -0.7088113 0.3918978 -0.5865172 -0.7088114 0.1376171 -0.6918442 -0.7088111 0.2699452 -0.6517028 -0.7088111 0.2699453 -0.6517027 0.7088111 0.1376169 -0.6918443 0.708811 0.2699455 -0.6517025 0.7088112 0.7053979 -2.83429e-7 0.7088116 0.691844 -0.1376168 0.7088114 0.7053983 -3.40777e-7 0.7088113 0.6517034 -0.2699428 0.7088115 0.5865178 -0.3918976 0.7088112 0.6517034 -0.2699431 0.7088113 0.9951844 -0.09802079 0 0.9951844 -0.09802079 0 -1 0 0 -1 0 0 -1 0 0 0.8819208 0.4713979 0 0.8819208 0.4713977 0 0.8819207 0.4713979 0 0.6517024 0.2699453 0.7088114 0.6918437 0.1376184 0.7088114 0.6918439 0.1376183 0.7088112 0.9951846 0.09802001 0 0.9951846 0.09802001 0 0.9951845 0.09802001 0 0.4713966 0.8819215 0 0.06930506 0.7037026 0.7071064 0.1376147 0.6918449 0.7088109 0.06930607 0.7037023 0.7071067 0.4987913 0.4987926 0.7088111 0.586517 0.3918988 0.7088112 0.5865169 0.3918989 0.7088113 0.4987916 -0.4987919 0.7088114 0.3918982 -0.5865171 0.7088114 0.3918979 -0.5865172 0.7088115 -0.6818548 -0.5159897 0.5184869 -0.6818471 -0.5159924 0.5184944 -0.6818561 -0.5159893 0.5184856 0.06930792 -0.7037023 -0.7071065 0.1376169 -0.6918446 -0.7088108 0.8819218 -0.471396 0 0.8819218 -0.4713959 0 0.8819218 -0.4713959 0 0.2902838 0.9569406 0 0.2902842 0.9569405 0 0.2902837 0.9569407 0 0.3918977 0.5865172 0.7088115 0.3918972 0.5865176 0.7088115 0.6517025 0.2699455 0.7088112 0.5865175 -0.3918976 0.7088114 0.06930792 -0.7037022 0.7071066 0.0693084 -0.7037022 0.7071065 -0.68185 0.5159907 0.5184923 -0.6818572 0.5159882 0.5184854 -0.6818584 0.5159877 0.5184842 -0.707671 -4.92412e-7 0.7065421 -0.7076705 -4.75302e-7 0.7065426 -0.707671 -4.92749e-7 0.7065422 -1 -2.77687e-7 0 -1 -2.77687e-7 0 -1 -2.77687e-7 0 0.4713984 -0.8819205 0 0.471398 -0.8819206 0 0.4713985 -0.8819205 0 0.7730101 0.6343939 0 0.7730098 0.6343941 0 0.7730101 0.6343938 0 0.2902868 -0.9569398 0 0.2902863 -0.9569398 0 0.2902868 -0.9569397 0 0.9569398 0.2902867 0 0.9569398 0.2902867 0 0.0980122 0.9951852 -5.71151e-7 0.09801298 0.9951852 -2.14356e-6 0.0980122 0.9951853 -3.82497e-7 -0.5972661 -0.8020432 0 -0.5972661 -0.8020433 0 0.2699437 0.6517032 0.7088113 0.2699443 0.651703 0.7088112 0.9569412 -0.290282 0 0.9569412 -0.290282 0 0.9569413 -0.290282 0 0.0693047 0.7037029 -0.7071061 0.06930518 0.7037021 -0.7071069 -0.6818498 0.5159909 -0.5184922 -0.6818572 0.5159881 -0.5184854 -0.6818484 0.5159915 -0.5184936 -0.6818479 -0.5159922 -0.5184936 -0.6818553 -0.5159894 -0.5184867 -0.6818565 -0.5159889 -0.5184855 -0.7076711 -4.72608e-7 -0.7065421 -0.7076715 -5.06113e-7 -0.7065417 -0.7076715 -5.06772e-7 -0.7065417 0.6343919 0.7730116 0 0.6343916 0.7730119 0 0.6343919 0.7730116 0 0.6343917 -0.7730117 0 0.6343914 -0.7730121 0 0.6343918 -0.7730117 0 -0.4604119 -3.00579e-7 -0.8877055 -0.4604119 -3.16534e-7 -0.8877055 -0.4604119 -2.89421e-7 -0.8877055 0.7730115 -0.6343922 0 -1 -6.44172e-7 0 0.09801656 -0.9951848 -1.48747e-7 0.09801667 -0.9951848 -8.33601e-7 0.09801656 -0.9951848 -2.22113e-7 -0.5972671 0.8020426 0 0 -1.90785e-7 1 0 0 1 0 -3.63078e-6 1 0 0 1 0 1.87484e-7 1 0 2.02082e-6 1 0 -9.6597e-7 1 0 5.97108e-7 1 0 1.38861e-7 1 0 -3.99963e-7 1 0 0 1 0 0 1 0 -1.14507e-6 1 -0.4604119 -2.84992e-7 0.8877055 0 0 -1 0 -2.23897e-7 -1 0 -6.77045e-7 -1 0 6.74627e-7 -1 0 5.97108e-7 -1 0.137617 -0.6918443 0.708811 0.6918436 -0.1376166 0.7088117 0.8819207 0.4713977 0 0.9951845 0.09802001 0 0.1376145 0.6918452 0.7088107 0.498791 0.498793 0.7088111 0.4987915 -0.4987919 0.7088114 -0.6818456 -0.5159929 0.5184959 0.0693084 -0.7037019 -0.7071068 0.8819217 -0.471396 0 0.2902843 0.9569405 0 -0.6818485 0.5159912 0.5184937 -0.7076705 -4.74856e-7 0.7065426 -1 -2.77687e-7 0 0.4713979 -0.8819206 0 0.7730098 0.6343941 0 0.2902863 -0.9569399 0 0.9569397 0.2902867 0 0.09801262 0.9951853 3.81906e-7 0.09801256 0.9951852 5.70269e-7 0.0980128 0.9951851 2.14025e-6 -0.597266 -0.8020431 0 -0.6818584 0.5159877 -0.5184842 -0.6818464 -0.5159928 -0.518495 -0.707671 -4.71735e-7 -0.7065421 0.6343915 0.7730119 0 0.6343914 -0.7730121 0 -0.4604119 -3.40901e-7 -0.8877055 -1 -6.44172e-7 0 0.09801656 -0.9951848 2.25639e-7 0.09801667 -0.9951848 8.46833e-7 0.09801656 -0.9951848 1.51108e-7 + + + + + + + + + + 0.8085938 0.1953125 0.8398438 0.15625 0.8398438 0.2109375 0.7533172 0.01754212 0.751044 0.00946933 0.75 0.00390625 0.828125 0.140625 0.7700133 0.1715973 0.75 0.140625 0.8184773 0.1105983 0.8237214 0.1178196 0.828125 0.1367187 0.734375 0.08984375 0.7421875 0.09765625 0.734375 0.09765625 0.75 0.08984375 0.7421875 0.09765625 0.7421875 0.08984375 0.7578125 0.08984375 0.75 0.09765625 0.75 0.08984375 0.7578125 0.08984375 0.765625 0.09765625 0.7578125 0.09765625 0.765625 0.08984375 0.7734375 0.09765625 0.765625 0.09765625 0.7734375 0.08984375 0.78125 0.09765625 0.7734917 0.09771662 0.78125 0.08984375 0.7893186 0.09727245 0.78125 0.09765625 0.796875 0.08984375 0.7893186 0.09727245 0.7890625 0.08984375 0.796875 0.08984375 0.8046875 0.09765625 0.796875 0.09765625 0.8125 0.08984375 0.8046875 0.09765625 0.8046875 0.08984375 0.8203125 0.08984375 0.8125 0.09765625 0.8125 0.08984375 0.8203125 0.08984375 0.828125 0.09765625 0.8203125 0.09765625 0.8359375 0.08984375 0.828125 0.09765625 0.828125 0.08984375 0.84375 0.08984375 0.8359375 0.09765625 0.8359375 0.08984375 0.8359375 0.04296875 0.84375 0.05078125 0.8359375 0.05078125 0.7890625 0.04296875 0.796875 0.05078125 0.7890625 0.05078125 0.8046875 0.04296875 0.8125 0.05078125 0.8046875 0.05078125 0.7890625 0.08984375 0.796875 0.05078125 0.796875 0.08984375 0.7304688 0.203125 0.7382813 0.15625 0.7382813 0.2109375 0.765625 0.08984375 0.7734375 0.05078125 0.7734375 0.08984375 0.7734375 0.05078125 0.78125 0.04296875 0.78125 0.05078125 0.78125 0.08984375 0.7890625 0.05078125 0.7890625 0.08984375 0.7421875 0.08984375 0.75 0.05078125 0.75 0.08984375 0.7265625 0.04296875 0.734375 0.05078125 0.7265625 0.05078125 0.7578125 0.05078125 0.765625 0.04296875 0.765625 0.05078125 0.8203125 0.05078125 0.828125 0.04296875 0.828125 0.05078125 0.8515625 0.05078125 0.8554688 0.04296875 0.8554688 0.05078125 0.84375 0.08984375 0.8515625 0.09765625 0.84375 0.09765625 0.8125 0.08984375 0.8046875 0.05078125 0.8125 0.05078125 0.734375 0.08984375 0.7421875 0.05078125 0.7421875 0.08984375 0.75 0.04296875 0.7578125 0.05078125 0.75 0.05078125 0.765625 0.05078125 0.7734375 0.04296875 0.7734375 0.05078125 0.78125 0.05078125 0.7890625 0.04296875 0.7890625 0.05078125 0.796875 0.05078125 0.8046875 0.04296875 0.8046875 0.05078125 0.8125 0.04296875 0.8203125 0.05078125 0.8125 0.05078125 0.828125 0.04296875 0.8359375 0.05078125 0.828125 0.05078125 0.84375 0.05078125 0.8515625 0.04296875 0.8515625 0.05078125 0.7226563 0.04296875 0.7265625 0.05078125 0.7226563 0.05078125 0.75 0 0.828125 0.00390625 0.75 0.00390625 0.8398438 0.15625 0.8476563 0.203125 0.8398438 0.2109375 0.828125 0.08984375 0.8359375 0.05078125 0.8359375 0.08984375 0.7578125 0.08984375 0.765625 0.05078125 0.765625 0.08984375 0.8359375 0.08984375 0.84375 0.05078125 0.84375 0.08984375 0.7734375 0.08984375 0.78125 0.05078125 0.78125 0.08984375 0.7226563 0.05078125 0.7265625 0.0546875 0.734375 0.05078125 0.7695313 0.1953125 0.7382813 0.15625 0.7700133 0.1715973 0.7421875 0.04296875 0.75 0.05078125 0.7421875 0.05078125 0.796875 0.08984375 0.8046875 0.05078125 0.8046875 0.08984375 0.734375 0.08984375 0.7265625 0.09765625 0.7265625 0.08984375 0.7226563 0.09765625 0.7265625 0.08984375 0.7265625 0.09765625 0.8554688 0.09765625 0.8515625 0.08984375 0.8554688 0.08984375 0.828125 0.1367187 0.75 0.140625 0.75 0.1367187 0.734375 0.05078125 0.7421875 0.04296875 0.7421875 0.05078125 0.75 0.08984375 0.7578125 0.05078125 0.7578125 0.08984375 0.8203125 0.08984375 0.828125 0.05078125 0.828125 0.08984375 0.7695313 0.1953125 0.828125 0.2265625 0.75 0.2265625 0.8125 0.08984375 0.8203125 0.05078125 0.8203125 0.08984375 0.8085938 0.1953125 0.7700133 0.1715973 0.8085938 0.171875 0.84375 0.05078125 0.8515625 0.0546875 0.8554688 0.05078125 0.8085938 0.1953125 0.8085938 0.171875 0.8398438 0.15625 0.75 0.00390625 0.828125 0.00390625 0.7890625 0.04296875 0.828125 0.00390625 0.827323 0.009233057 0.8250798 0.01732593 0.75 0.00390625 0.7890625 0.04296875 0.78125 0.04248046 0.8250798 0.01732593 0.8214626 0.02477586 0.828125 0.00390625 0.8214626 0.02477586 0.8166109 0.03129625 0.828125 0.00390625 0.8166109 0.03129625 0.8107108 0.03663653 0.828125 0.00390625 0.8107108 0.03663653 0.803989 0.04059159 0.828125 0.00390625 0.803989 0.04059159 0.796875 0.04223632 0.828125 0.00390625 0.796875 0.04223632 0.7890625 0.04296875 0.828125 0.00390625 0.78125 0.04248046 0.7744784 0.04067754 0.75 0.00390625 0.7744784 0.04067754 0.767748 0.03676021 0.75 0.00390625 0.767748 0.03676021 0.761833 0.03145509 0.75 0.00390625 0.761833 0.03145509 0.7569603 0.02496612 0.75 0.00390625 0.7569603 0.02496612 0.7533172 0.01754212 0.75 0.00390625 0.828125 0.140625 0.8085938 0.171875 0.7700133 0.1715973 0.827797 0.1308701 0.828125 0.1367187 0.8269097 0.1260809 0.828125 0.1367187 0.75 0.1367187 0.7893186 0.09727245 0.8269097 0.1260809 0.828125 0.1367187 0.8237214 0.1178196 0.75 0.1367187 0.7505323 0.1307337 0.7516314 0.1243688 0.7516314 0.1243688 0.7543035 0.1180313 0.75 0.1367187 0.7543035 0.1180313 0.7595249 0.1107753 0.75 0.1367187 0.7595249 0.1107753 0.7658746 0.1048324 0.75 0.1367187 0.7658746 0.1048324 0.7731086 0.1004312 0.75 0.1367187 0.7731086 0.1004312 0.78125 0.09814453 0.75 0.1367187 0.78125 0.09814453 0.7893186 0.09727245 0.75 0.1367187 0.7893186 0.09727245 0.796875 0.09814453 0.828125 0.1367187 0.796875 0.09814453 0.8048682 0.1003353 0.828125 0.1367187 0.8048682 0.1003353 0.8121114 0.1046946 0.828125 0.1367187 0.8121114 0.1046946 0.8184773 0.1105983 0.828125 0.1367187 0.734375 0.08984375 0.7421875 0.08984375 0.7421875 0.09765625 0.75 0.08984375 0.75 0.09765625 0.7421875 0.09765625 0.7578125 0.08984375 0.7578125 0.09765625 0.75 0.09765625 0.7578125 0.08984375 0.765625 0.08984375 0.765625 0.09765625 0.765625 0.08984375 0.7734375 0.08984375 0.7734375 0.09765625 0.7734375 0.08984375 0.78125 0.08984375 0.78125 0.09765625 0.78125 0.08984375 0.7890625 0.08984375 0.7893186 0.09727245 0.796875 0.08984375 0.796875 0.09765625 0.7893186 0.09727245 0.796875 0.08984375 0.8046875 0.08984375 0.8046875 0.09765625 0.8125 0.08984375 0.8125 0.09765625 0.8046875 0.09765625 0.8203125 0.08984375 0.8203125 0.09765625 0.8125 0.09765625 0.8203125 0.08984375 0.828125 0.08984375 0.828125 0.09765625 0.8359375 0.08984375 0.8359375 0.09765625 0.828125 0.09765625 0.84375 0.08984375 0.84375 0.09765625 0.8359375 0.09765625 0.8359375 0.04296875 0.84375 0.04296875 0.84375 0.05078125 0.7890625 0.04296875 0.796875 0.04296875 0.796875 0.05078125 0.8046875 0.04296875 0.8125 0.04296875 0.8125 0.05078125 0.7890625 0.08984375 0.7890625 0.05078125 0.796875 0.05078125 0.7304688 0.203125 0.7304688 0.1640625 0.7382813 0.15625 0.765625 0.08984375 0.765625 0.05078125 0.7734375 0.05078125 0.7734375 0.05078125 0.7734375 0.04296875 0.78125 0.04296875 0.78125 0.08984375 0.78125 0.05078125 0.7890625 0.05078125 0.7421875 0.08984375 0.7421875 0.05078125 0.75 0.05078125 0.7265625 0.04296875 0.734375 0.04296875 0.734375 0.05078125 0.7578125 0.05078125 0.7578125 0.04296875 0.765625 0.04296875 0.8203125 0.05078125 0.8203125 0.04296875 0.828125 0.04296875 0.8515625 0.05078125 0.8515625 0.04296875 0.8554688 0.04296875 0.84375 0.08984375 0.8515625 0.08984375 0.8515625 0.09765625 0.8125 0.08984375 0.8046875 0.08984375 0.8046875 0.05078125 0.734375 0.08984375 0.734375 0.05078125 0.7421875 0.05078125 0.75 0.04296875 0.7578125 0.04296875 0.7578125 0.05078125 0.765625 0.05078125 0.765625 0.04296875 0.7734375 0.04296875 0.78125 0.05078125 0.78125 0.04296875 0.7890625 0.04296875 0.796875 0.05078125 0.796875 0.04296875 0.8046875 0.04296875 0.8125 0.04296875 0.8203125 0.04296875 0.8203125 0.05078125 0.828125 0.04296875 0.8359375 0.04296875 0.8359375 0.05078125 0.84375 0.05078125 0.84375 0.04296875 0.8515625 0.04296875 0.7226563 0.04296875 0.7265625 0.04296875 0.7265625 0.05078125 0.75 0 0.828125 0 0.828125 0.00390625 0.8398438 0.15625 0.8476563 0.1640625 0.8476563 0.203125 0.828125 0.08984375 0.828125 0.05078125 0.8359375 0.05078125 0.7578125 0.08984375 0.7578125 0.05078125 0.765625 0.05078125 0.8359375 0.08984375 0.8359375 0.05078125 0.84375 0.05078125 0.7734375 0.08984375 0.7734375 0.05078125 0.78125 0.05078125 0.734375 0.05078125 0.734375 0.08984375 0.7226563 0.08984375 0.734375 0.08984375 0.7265625 0.08984375 0.7226563 0.08984375 0.7226563 0.08984375 0.7226563 0.05078125 0.734375 0.05078125 0.7695313 0.1953125 0.7382813 0.2109375 0.7382813 0.15625 0.7421875 0.04296875 0.75 0.04296875 0.75 0.05078125 0.796875 0.08984375 0.796875 0.05078125 0.8046875 0.05078125 0.734375 0.08984375 0.734375 0.09765625 0.7265625 0.09765625 0.7226563 0.09765625 0.7226563 0.08984375 0.7265625 0.08984375 0.8554688 0.09765625 0.8515625 0.09765625 0.8515625 0.08984375 0.828125 0.1367187 0.828125 0.140625 0.75 0.140625 0.734375 0.05078125 0.734375 0.04296875 0.7421875 0.04296875 0.75 0.08984375 0.75 0.05078125 0.7578125 0.05078125 0.8203125 0.08984375 0.8203125 0.05078125 0.828125 0.05078125 0.7695313 0.1953125 0.8085938 0.1953125 0.828125 0.2265625 0.8125 0.08984375 0.8125 0.05078125 0.8203125 0.05078125 0.8085938 0.1953125 0.7695313 0.1953125 0.7700133 0.1715973 0.8554688 0.05078125 0.8554688 0.08984375 0.84375 0.05078125 0.8554688 0.08984375 0.8515625 0.08984375 0.84375 0.08984375 0.84375 0.05078125 0.8554688 0.08984375 0.84375 0.08984375 + + + + + + + + + + + + + + +

    3 0 0 75 1 1 1 2 2 39 3 3 37 4 4 66 5 5 75 6 6 4 7 7 69 8 8 29 9 9 31 10 10 76 11 11 6 12 12 9 13 13 7 14 14 10 15 15 9 13 16 8 16 17 12 17 18 11 18 19 10 15 20 12 17 21 15 19 22 13 20 23 14 21 24 17 22 25 15 19 26 16 23 27 19 24 28 17 22 29 18 25 30 21 26 31 19 24 32 22 27 33 21 26 34 20 28 35 22 27 36 25 29 37 23 30 38 26 31 39 25 29 40 24 32 41 28 33 42 27 34 43 26 31 44 28 33 45 31 35 46 29 36 47 32 37 48 31 35 49 30 38 50 34 39 51 33 40 52 32 37 53 63 41 54 64 42 55 62 43 56 51 44 57 52 45 58 50 46 59 55 47 60 56 48 61 54 49 62 20 50 63 52 51 64 22 50 65 68 52 66 69 53 67 0 54 68 14 55 69 46 56 70 16 57 71 46 58 72 49 59 73 48 60 74 18 61 75 50 62 76 20 63 77 8 64 78 40 64 79 10 64 80 66 65 81 36 66 82 67 67 83 42 68 84 45 69 85 44 70 86 58 71 87 61 72 88 60 73 89 78 74 90 1 75 91 77 76 92 34 39 93 76 77 94 35 78 95 26 79 96 54 80 97 56 81 98 6 82 99 38 83 100 8 84 101 41 85 102 42 68 103 40 86 104 44 70 105 47 87 106 46 58 107 48 60 108 51 44 109 50 46 110 52 45 111 55 47 112 54 49 113 57 88 114 58 71 115 56 48 116 61 72 117 62 43 118 60 73 119 64 42 120 79 89 121 78 90 122 0 91 123 67 92 124 68 93 125 0 94 126 79 95 127 66 96 128 75 97 129 77 98 130 1 99 131 30 100 132 62 101 133 32 102 134 12 103 135 44 104 136 14 105 137 32 106 138 64 107 139 34 108 140 16 109 141 48 109 142 18 110 143 68 111 144 67 112 145 36 113 146 2 114 147 69 114 148 4 115 149 39 116 150 40 86 151 38 117 152 22 118 153 54 119 154 24 120 155 6 12 156 70 121 157 71 122 158 69 123 159 71 124 160 70 125 161 75 126 162 74 127 163 73 128 164 76 129 165 69 130 166 70 131 167 36 66 168 39 116 169 38 117 170 10 132 171 42 133 172 12 134 173 28 135 174 60 136 175 30 137 176 2 138 177 1 139 178 0 140 179 26 141 180 58 141 181 28 141 182 3 142 183 4 142 184 5 142 185 64 143 186 78 144 187 77 145 188 3 0 189 5 146 190 75 1 191 66 5 192 79 147 193 51 148 194 79 147 195 65 149 196 63 150 197 66 5 198 51 148 199 49 151 200 63 150 201 61 152 202 79 147 203 61 152 204 59 153 205 79 147 206 59 153 207 57 154 208 79 147 209 57 154 210 55 155 211 79 147 212 55 155 213 53 156 214 79 147 215 53 156 216 51 148 217 79 147 218 49 151 219 47 157 220 66 5 221 47 157 222 45 157 223 66 5 224 45 157 225 43 158 226 66 5 227 43 158 228 41 159 229 66 5 230 41 159 231 39 3 232 66 5 233 75 6 234 5 160 235 4 7 236 35 161 237 76 11 238 33 161 239 76 11 240 70 161 241 21 162 242 33 161 243 76 11 244 31 10 245 70 161 246 7 161 247 9 161 248 9 161 249 11 161 250 70 161 251 11 161 252 13 161 253 70 161 254 13 161 255 15 161 256 70 161 257 15 161 258 17 161 259 70 161 260 17 161 261 19 161 262 70 161 263 19 161 264 21 162 265 70 161 266 21 162 267 23 163 268 76 11 269 23 163 270 25 164 271 76 11 272 25 164 273 27 165 274 76 11 275 27 165 276 29 9 277 76 11 278 6 12 279 8 16 280 9 13 281 10 15 282 11 18 283 9 13 284 12 17 285 13 20 286 11 18 287 12 17 288 14 21 289 15 19 290 14 21 291 16 23 292 17 22 293 16 23 294 18 25 295 19 24 296 18 25 297 20 28 298 21 26 299 22 27 300 23 30 301 21 26 302 22 27 303 24 32 304 25 29 305 26 31 306 27 34 307 25 29 308 28 33 309 29 36 310 27 34 311 28 33 312 30 38 313 31 35 314 32 37 315 33 40 316 31 35 317 34 39 318 35 78 319 33 40 320 63 41 321 65 166 322 64 42 323 51 44 324 53 167 325 52 45 326 55 47 327 57 88 328 56 48 329 20 50 330 50 51 331 52 51 332 68 52 333 72 53 334 69 53 335 14 55 336 44 168 337 46 56 338 46 58 339 47 87 340 49 59 341 18 61 342 48 169 343 50 62 344 8 64 345 38 64 346 40 64 347 66 65 348 37 170 349 36 66 350 42 68 351 43 171 352 45 69 353 58 71 354 59 172 355 61 72 356 78 74 357 79 173 358 1 75 359 34 39 360 74 174 361 76 77 362 26 79 363 24 175 364 54 80 365 6 82 366 36 176 367 38 83 368 41 85 369 43 171 370 42 68 371 44 70 372 45 69 373 47 87 374 48 60 375 49 59 376 51 44 377 52 45 378 53 167 379 55 47 380 57 88 381 59 172 382 58 71 383 61 72 384 63 41 385 62 43 386 64 42 387 65 166 388 79 89 389 0 91 390 66 177 391 67 92 392 0 94 393 1 178 394 79 95 395 75 97 396 73 179 397 77 98 398 30 100 399 60 180 400 62 101 401 12 103 402 42 181 403 44 104 404 32 106 405 62 182 406 64 107 407 16 109 408 46 183 409 48 109 410 36 113 411 6 184 412 72 185 413 6 184 414 71 186 415 72 185 416 72 185 417 68 111 418 36 113 419 2 114 420 0 187 421 69 114 422 39 116 423 41 85 424 40 86 425 22 118 426 52 119 427 54 119 428 6 12 429 7 14 430 70 121 431 69 123 432 72 188 433 71 124 434 75 126 435 76 189 436 74 127 437 76 129 438 75 190 439 69 130 440 36 66 441 37 170 442 39 116 443 10 132 444 40 191 445 42 133 446 28 135 447 58 192 448 60 136 449 2 138 450 3 193 451 1 139 452 26 141 453 56 141 454 58 141 455 3 142 456 2 194 457 4 142 458 77 145 459 73 195 460 64 143 461 73 195 462 74 196 463 34 197 464 64 143 465 73 195 466 34 197 467

    +
    +
    +
    + + + + 0.09754467 2.240393 -0.2252249 0.1913414 2.21194 -0.2252249 0.277785 2.165735 -0.2252249 0.3535534 2.103554 -0.2252249 0.4157347 2.027786 -0.2252249 0.4619398 1.941342 -0.2252249 0.4903929 1.847546 -0.2252249 0.5000006 1.750001 -0.2252249 0.4903929 1.652455 -0.2252249 0.4619402 1.558659 -0.2252249 0.4157353 1.472215 -0.2252249 0.353554 1.396447 -0.2252249 0.2777856 1.334266 -0.2252249 0.1913419 1.28806 -0.2252249 0.09754568 1.259607 -0.2252249 2.5 0 -0.3 2.5 3.6 -0.3 0.5412177 1.857655 -0.3 0.5518211 1.750001 -0.3 0.5412175 1.642346 -0.3 0.509816 1.538828 -0.3 0.4588222 1.443425 -0.3 0.4588216 2.056576 -0.3 0.5098155 1.961173 -0.3 0.3901956 2.140197 -0.3 0.3065758 1.291179 -0.3 0.3901967 1.359804 -0.3 0.2111708 2.259817 -0.3 0.1076547 2.291218 -0.3 0.3065758 2.208822 -0.3 0.2111719 1.240184 -0.3 0.1076555 1.208783 -0.3 0.09754467 2.240393 0.2252249 0.1913414 2.21194 0.2252249 0.277785 2.165735 0.2252249 0.3535534 2.103554 0.2252249 0.4157347 2.027786 0.2252249 0.4619398 1.941342 0.2252249 0.4903929 1.847546 0.2252249 0.5000006 1.750001 0.2252249 0.4903929 1.652455 0.2252249 0.4619402 1.558659 0.2252249 0.4157353 1.472215 0.2252249 0.353554 1.396447 0.2252249 0.2777856 1.334266 0.2252249 0.1913419 1.28806 0.2252249 0.09754568 1.259607 0.2252249 2.5 0 0.3 2.5 3.6 0.3 0.5412177 1.857655 0.3 0.5518211 1.750001 0.3 0.5412175 1.642346 0.3 0.509816 1.538828 0.3 0.4588222 1.443425 0.3 0.4588216 2.056576 0.3 0.5098155 1.961173 0.3 0.3901956 2.140197 0.3 0.3065758 1.291179 0.3 0.3901967 1.359804 0.3 0.2111708 2.259817 0.3 0.1076547 2.291218 0.3 0.3065758 2.208822 0.3 0.2111719 1.240184 0.3 0.1076555 1.208783 0.3 0 2.25 0.1901126 0.01996588 2.248034 0.225225 0.01996648 1.251966 0.2252249 4.69387e-7 1.25 0.1901128 -1.52002e-7 2.440548 0.1025 0.01996701 2.299854 0.3 0 2.25 -0.1901126 0.01996588 2.248034 -0.225225 0.01996648 1.251966 -0.2252249 4.69387e-7 1.25 -0.1901128 -1.52002e-7 2.440548 -0.1025 0.01996701 2.299854 -0.3 4.08359e-7 1.075447 -0.1025 0.01996779 1.200146 -0.3 0 0.1136917 -0.1025 0.0199685 0 -0.3 0.0199685 3.6 -0.3 0 3.469546 -0.1025 1.123558 1.2511 -0.2375 4.08359e-7 1.075447 0.1025 0.01996779 1.200146 0.3 0 0.1136917 0.1025 0.0199685 0 0.3 1.069991 1.200069 -0.3 1.123558 1.2511 -0.255 1.873558 1.2511 -0.255 1.918091 1.1999 -0.3 1.918472 2.2999 -0.3 1.069991 2.2999 -0.3 0.0199685 3.6 0.3 0 3.469546 0.1025 1.123558 1.2511 0.2375 1.873558 1.2511 0.2375 1.069991 1.200069 0.3 1.123558 1.2511 0.255 1.873558 1.2511 -0.2375 1.123558 2.2527 -0.2375 1.873558 1.2511 0.255 1.918091 1.1999 0.3 1.873558 2.2527 0.255 1.918472 2.2999 0.3 1.123558 2.2527 0.255 3.09736e-7 0.7086623 -0.1025 1.78937e-7 0.4805372 -0.1025 5.01112e-7 1.187707 -0.28 1.069991 2.2999 0.3 0 0 -0.28 0 3.085717 -0.1025 0 2.824327 -0.1025 0 3.6 -0.28 3.09736e-7 0.7086623 0.1025 1.78937e-7 0.4805372 0.1025 5.01112e-7 1.187707 0.28 0 0 0.28 -1.91969e-7 2.312293 -0.28 0 2.956147 -0.28 -0.15 3.372954 -0.04624998 0 3.085717 0.1025 -0.15 3.181039 -0.04624998 0 2.824327 0.1025 -0.1500001 2.535223 -0.04624998 -0.1500001 2.727113 -0.04624998 0 3.6 0.28 -1.91969e-7 2.312293 0.28 -0.1499996 0.9852741 -0.04624998 -0.1499996 0.8018819 -0.04624998 -0.15 3.372954 0.04624998 -0.1499999 0.2061649 -0.04624998 -0.1499998 0.3895877 -0.04624998 -0.15 3.181039 0.04624998 -0.1500001 2.535223 0.04624998 -1.6225e-7 2.438235 0 -0.1500001 2.727113 0.04624998 -0.1499996 0.9852741 0.04624998 -0.1499996 0.8018819 0.04624998 -0.1499999 0.2061649 0.04624998 -0.1499998 0.3895877 0.04624998 1.873558 2.2527 -0.255 1.873558 2.2527 -0.2375 1.123558 2.2527 0.2375 1.123558 2.2527 -0.255 1.873558 2.2527 0.2375 2.5 2.2999 -0.3 2.5 1.1999 -0.3 2.5 2.2999 0.3 2.5 1.1999 0.3 + + + + + + + + + + -0.4713954 -0.881922 0 -0.471397 -0.8819212 0 -0.4713972 -0.8819211 0 -0.1603451 -0.8061259 -0.5696055 -0.3145329 -0.7593548 -0.5696046 -0.3145369 -0.7593541 -0.5696035 -0.4566335 -0.6834014 -0.5696037 -0.4566342 -0.6834018 -0.5696027 -0.5811833 -0.5811852 -0.5696049 -0.6834005 -0.4566345 -0.5696041 -0.6834009 -0.4566346 -0.5696036 -0.7593537 -0.3145365 -0.569604 -0.759354 -0.3145361 -0.5696038 -0.8061259 -0.1603507 -0.5696039 -0.8061252 -0.1603507 -0.5696049 -0.8219188 5.43392e-7 -0.5696047 -0.8061268 0.1603488 -0.5696033 -0.8061268 0.1603493 -0.5696033 -0.7593554 0.3145334 -0.5696035 -0.7593557 0.3145333 -0.5696033 -0.683402 0.456633 -0.5696034 -0.6834015 0.4566333 -0.5696038 -0.5811846 0.5811849 -0.5696039 -0.4566344 0.6834013 -0.5696032 -0.4566337 0.6834019 -0.5696029 -0.314536 0.759354 -0.5696039 -0.3145365 0.759354 -0.5696038 -0.1603486 0.8061263 -0.5696041 -1 4.61982e-7 0 -1 5.07598e-7 -1.27249e-7 -1 5.07598e-7 1.27249e-7 -0.8819224 0.4713947 0 -0.8819215 0.4713963 0 -0.8819213 0.4713966 0 -1 2.29156e-7 0 -1 -5.09293e-7 0 -1 -5.09294e-7 0 -0.683402 0.456633 0.5696035 -0.7593556 0.3145333 0.5696035 -0.7593554 0.3145334 0.5696035 -0.9951846 -0.09801995 0 -0.9951845 -0.09802013 0 -0.9951844 -0.09802019 0 -0.634393 -0.7730107 0 -0.6343907 -0.7730126 0 -0.6343902 -0.773013 0 -0.9951844 0.09802079 0 -0.9951844 0.09802061 0 -0.9951844 0.09802055 0 -0.7730095 -0.6343946 0 -0.7730103 -0.6343935 0 -0.7730105 -0.6343934 0 -0.5438634 0.8391737 0 -0.5438629 0.839174 0 -0.5438651 0.8391727 0 -0.09801197 -0.9951853 -8.84485e-7 -0.0980103 -0.9951855 8.83768e-7 -0.09801042 -0.9951854 7.17172e-7 -0.6343917 0.7730119 0 -0.6343917 0.7730119 0 -0.0806871 0.8192397 -0.5677464 -0.08068704 0.8192401 -0.5677459 -0.08068078 -0.8192393 -0.5677479 -0.08068215 -0.8192397 -0.5677471 -0.5811846 0.5811849 0.5696039 -0.4566345 0.6834014 0.5696032 -0.581184 0.581185 0.5696045 -0.3511235 0 0.9363293 -0.3511235 0 0.9363293 -0.3511235 1.26799e-7 0.9363293 -0.1603486 0.8061262 0.569604 -0.0806871 0.8192397 0.5677464 -0.1603495 0.806126 0.5696042 -0.1603454 -0.8061259 0.5696055 -0.08068132 -0.8192393 0.5677478 -0.08068329 -0.8192396 0.5677471 0.6432213 0 0.7656804 0.6432204 0 0.7656811 0.6432214 0 0.7656803 -0.7345879 0.5576829 0.3864849 -0.7345733 0.5576923 0.3864989 -0.7345692 0.5576949 0.3865029 0 -1 0 0 -1 0 -1 0 0 -1 -2.69205e-7 -2.47892e-7 -1 1.32263e-7 0 1 0 0 -0.7345875 -0.5576838 -0.3864844 -0.7345767 -0.5576896 -0.3864964 -0.7345737 -0.5576913 -0.3864998 -0.7345879 0.5576829 -0.3864849 -0.7345733 0.5576923 -0.3864989 -0.7345911 0.5576808 -0.3864817 -0.7076857 0 -0.7065274 -0.7076861 0 -0.706527 -0.7076745 7.91684e-7 -0.7065386 -0.7076636 2.8569e-7 -0.7065495 -0.7076846 -4.0339e-7 -0.7065286 -0.7076848 -4.11876e-7 -0.7065283 -1 -2.2805e-7 0 -1 0 0 -1 -4.15078e-7 3.1988e-7 -0.7076634 1.26636e-7 0.7065498 -0.7076857 8.03417e-7 0.7065275 -0.707686 8.11089e-7 0.7065272 -1 0 0 -0.5395073 -0.8419809 0 -0.5417323 -0.840532 0.005674242 -0.5417317 -0.8405325 -0.005674242 -0.7076846 -4.08711e-7 0.7065286 -0.7076636 2.94254e-7 0.7065495 -0.7076848 -4.17368e-7 0.7065283 1.27023e-4 0.6612758 -0.7501431 1.13751e-5 0.6602643 -0.7510334 1.32074e-4 0.6613199 -0.7501041 -0.7105743 2.39428e-4 -0.7036222 -0.7079722 1.59211e-5 -0.7062404 -0.7106512 2.46046e-4 -0.7035445 0 -0.6900383 -0.7237729 0 -0.6900351 -0.723776 0 -0.6900348 -0.7237763 0.6432204 0 -0.7656812 0.6432211 0 -0.7656806 0.6432211 0 -0.7656805 0 1 0 -0.7345761 -0.5576902 0.3864969 -0.734589 -0.5576823 0.3864834 -0.7345725 -0.5576923 0.3865005 -1.24484e-7 -1 0 -5.59233e-7 -1 0 0 -1 0 1.27023e-4 0.6612758 0.7501431 1.13751e-5 0.6602643 0.7510334 0 0.6601647 0.7511209 -0.5184705 0.8550956 0 -0.5184706 0.8550955 0 -0.5184701 0.8550958 0 -0.5247786 -0.8512388 0 -0.5247787 -0.8512387 0 -0.7105708 2.39427e-4 0.7036258 -0.7079728 1.59204e-5 0.7062398 -0.7077873 0 0.7064257 -1 2.43718e-7 0 -1 2.43718e-7 0 -1 2.43718e-7 0 -1 2.4862e-7 0 -1 1.25559e-7 0 -1 0 0 -0.9569397 -0.2902868 0 -0.9569398 -0.2902864 0 -0.9569399 -0.2902863 0 -0.09801679 0.9951848 0 -0.09801781 0.9951847 0 -0.09801763 0.9951848 0 -0.3511235 0 0.9363292 -0.3511235 0 0.9363292 -0.3511235 0 0.9363293 0 0 1 0 0 1 -0.3511238 0 -0.9363291 -0.3511238 0 -0.9363291 -0.3511238 0 -0.9363291 -0.3511235 1.67326e-7 0.9363292 -0.3511235 1.62951e-7 0.9363292 -0.3511235 1.58473e-7 0.9363292 -0.536346 -0.8439983 0 -0.536346 -0.8439983 0 -0.536346 -0.8439982 0 -0.3511235 0 -0.9363292 -0.3511235 0 -0.9363292 -0.3511235 0 -0.9363293 -1 1.62506e-7 0 -1 1.62506e-7 0 -1 1.62506e-7 0 -1 0 0 -1 0 0 -1 0 0 -0.3511235 0 -0.9363293 -0.3511235 0 -0.9363293 -0.3511235 0 -0.9363292 0 0 -1 0 0 -1 -0.3511235 1.67326e-7 -0.9363292 -0.3511235 1.62951e-7 -0.9363292 -0.3511235 1.76222e-7 -0.9363293 -1 1.55289e-7 0 -1 1.55289e-7 0 -1 1.55289e-7 0 -0.5278378 -0.8493452 0 -0.5278379 -0.8493452 0 -0.5278376 -0.8493454 0 -0.3511237 0 0.9363291 -0.3511236 0 0.9363291 -0.3511238 0 0.9363291 -0.2902857 -0.9569401 0 -0.2902857 -0.95694 0 -0.4713973 0.881921 0 -0.4713988 0.8819202 0 -0.4713992 0.88192 0 -0.5414069 0.8407608 0 -0.5414057 0.8407616 0 -0.5414035 0.8407629 0 -3.01672e-7 -0.6900385 0.7237728 -2.70583e-7 -0.6900386 0.7237725 -3.04663e-7 -0.6900385 0.7237728 -0.7730115 0.634392 0 -0.7730116 0.6343921 0 -0.3145365 0.759354 0.5696038 -0.314536 0.759354 0.5696039 -0.4566337 0.683402 0.5696029 -0.9569411 0.2902824 0 -0.9569412 0.2902818 0 -0.9569413 0.2902818 0 -0.2902867 0.9569398 0 -0.2902849 0.9569403 0 -0.2902846 0.9569405 0 -0.6834015 0.4566333 0.5696038 -0.8061268 0.1603488 0.5696034 -0.8061268 0.1603493 0.5696033 -0.8219189 5.04332e-7 0.5696046 -0.8219183 0 0.5696056 -0.8061252 -0.1603507 0.5696051 -0.806126 -0.1603507 0.569604 -0.7593538 -0.3145364 0.569604 -0.7593541 -0.314536 0.5696037 -0.6834009 -0.4566345 0.5696036 -0.6834005 -0.4566345 0.5696041 -0.5811833 -0.5811852 0.569605 -0.5811827 -0.5811851 0.5696057 -0.4566335 -0.6834014 0.5696037 -0.4566343 -0.6834019 0.5696026 -0.3145369 -0.7593541 0.5696035 -0.3145329 -0.7593549 0.5696046 -0.1603447 -0.8061255 0.5696064 -0.8819204 -0.4713984 0 -0.8819208 -0.4713976 0 -0.881921 -0.4713975 0 0 -1 0 -4.98186e-7 -1 0 -0.5152201 0.8570579 0 -0.5152202 0.8570579 0 -0.5152204 0.8570578 0 -1 4.68813e-7 0 -1 5.73752e-7 -1.59682e-7 -1 2.29156e-7 0 0 0 -1 0 -1.91543e-7 -1 0 0 -1 0 0 1 0 0 1 0 -1.21794e-7 1 0 0 1 0 0 1 -0.4713951 -0.8819221 0 -0.1603447 -0.8061254 -0.5696064 -0.5811827 -0.5811851 -0.5696056 -0.8219181 0 -0.5696057 -0.581184 0.581185 -0.5696045 -0.1603495 0.806126 -0.5696042 -1 4.61982e-7 0 -0.8819226 0.4713944 0 -0.9951845 -0.09801995 0 -0.6343935 -0.7730104 0 -0.9951844 0.09802085 0 -0.7730094 -0.6343947 0 -0.543862 0.8391748 0 -0.09801453 -0.995185 3.27493e-6 -0.09801197 -0.9951853 -7.17754e-7 -0.09801453 -0.995185 -3.27759e-6 -0.3511235 0 0.9363292 -0.08068704 0.8192401 0.5677459 0.6432204 0 0.7656812 -0.7345911 0.5576808 0.3864817 0 -1 0 0 -1 0 -1 2.27123e-7 0 -1 2.2954e-7 0 -1 1.26968e-7 0 -1 2.08632e-7 0 -1 2.79317e-7 0 -1 -2.48586e-7 3.88868e-7 -0.7345899 -0.5576824 -0.3864817 -0.7345692 0.5576949 -0.3865029 -0.7076629 1.53543e-7 -0.7065503 -0.7076632 1.71906e-7 -0.70655 -0.7076633 2.96417e-7 -0.7065499 -1 -6.21159e-7 -3.10249e-7 -0.7076631 0 0.7065501 -0.5387343 -0.8422613 -0.01900953 -0.5387367 -0.8422598 0.01900947 -0.7076633 3.05197e-7 0.7065499 0 0.6601647 -0.7511209 -0.7077865 0 -0.7064265 0 -0.6900384 -0.7237728 0.6432204 0 -0.7656813 -0.734592 -0.5576806 0.3864803 -6.18455e-7 -1 0 1.32074e-4 0.6613199 0.7501041 -0.5184707 0.8550953 0 -0.5247784 -0.8512389 0 -0.7106475 2.46045e-4 0.7035482 -1 2.43718e-7 0 -0.9569397 -0.290287 0 -0.09801751 0.9951847 0 -0.09801661 0.9951848 0 -0.09801745 0.9951847 0 -0.3511235 0 0.9363293 0 0 1 0 0 1 -0.3511238 0 -0.9363291 -0.3511235 1.76222e-7 0.9363293 -0.5363459 -0.8439984 0 -0.3511235 0 -0.9363293 -1 1.62506e-7 0 -1 0 0 -0.3511235 1.26799e-7 -0.9363293 0 1.20822e-7 -1 -0.3511235 1.58473e-7 -0.9363292 -1 1.55289e-7 0 -0.5278382 -0.8493449 0 -0.3511234 0 0.9363293 -0.4713971 0.8819212 0 -0.5414109 0.8407583 0 -2.69301e-7 -0.6900387 0.7237725 -0.9569411 0.2902826 0 -0.290287 0.9569397 0 -0.8819204 -0.4713985 0 -0.5152199 0.8570581 0 -1 4.68813e-7 0 -1 5.73752e-7 1.59682e-7 -1 5.50439e-7 -2.50955e-7 -1 5.50439e-7 2.50956e-7 0 0 -1 0 0 -1 0 1.75693e-6 -1 0 -7.64911e-7 -1 0 2.39844e-7 -1 0 1.06743e-6 -1 0 -1.65418e-7 -1 0 5.14993e-7 -1 0 -2.47438e-7 -1 0 0 -1 0 0 -1 0 -1.7419e-7 1 0 7.79265e-7 1 0 2.00537e-7 1 0 -1.40526e-6 1 0 9.49386e-7 1 0 -2.94844e-7 1 0 3.49563e-7 1 0 -2.01391e-7 1 0 0 1 0 -3.14327e-7 1 + + + + + + + + + + 0.02734375 0.6953125 0.01953125 0.65625 0.02734375 0.65625 0.01171875 0.65625 0.01953125 0.6484375 0.01953125 0.65625 0.01953125 0.65625 0.02734375 0.6484375 0.02734375 0.65625 0.02734375 0.6484375 0.03515625 0.65625 0.02734375 0.65625 0.03515625 0.65625 0.04296875 0.6484375 0.04296875 0.65625 0.04296875 0.65625 0.05078125 0.6484375 0.05078125 0.65625 0.05078125 0.6484375 0.05859375 0.65625 0.05078125 0.65625 0.05859375 0.6484375 0.06640625 0.65625 0.05859375 0.65625 0.06640625 0.65625 0.07421875 0.6484375 0.07421875 0.65625 0.07421875 0.6484375 0.08203125 0.65625 0.07421875 0.65625 0.08203125 0.6484375 0.08984375 0.65625 0.08203125 0.65625 0.08984375 0.6484375 0.09765625 0.65625 0.08984375 0.65625 0.09765625 0.65625 0.1054687 0.6484375 0.1054687 0.65625 0.1054687 0.6484375 0.1132812 0.65625 0.1054687 0.65625 0.1132812 0.6484375 0.1210937 0.65625 0.1132812 0.65625 0.484375 0.9375 0.4726563 0.9609375 0.4726563 0.9453125 0.08984375 0.6953125 0.08203125 0.65625 0.08984375 0.65625 0.4101563 0.9375 0.40625 0.96875 0.40625 0.9375 0.08984375 0.6953125 0.08203125 0.703125 0.08203125 0.6953125 0.06640625 0.6953125 0.05859375 0.65625 0.06640625 0.65625 0.03515625 0.6953125 0.02734375 0.65625 0.03515625 0.65625 0.07421875 0.6953125 0.06640625 0.65625 0.07421875 0.65625 0.04296875 0.6953125 0.03515625 0.65625 0.04296875 0.65625 0.3164063 0.9570313 0.3125 0.9453125 0.3164063 0.9492188 0 0.6953125 0 0.65625 0.01171875 0.65625 0.1054687 0.6953125 0.09765625 0.65625 0.1054687 0.65625 0.1210937 0.65625 0.1289062 0.6484375 0.1289062 0.65625 0.00390625 0.6484375 0.01171875 0.65625 0.00390625 0.65625 0.09765625 0.6953125 0.1054687 0.703125 0.09765625 0.703125 0.4179688 0.9609375 0.4375 0.9570313 0.4414063 0.9609375 0.1210937 0.6953125 0.1289062 0.703125 0.1210937 0.703125 0.01171875 0.6953125 0.00390625 0.703125 0.00390625 0.6953125 0.1523437 0.8671875 0.08203125 0.8632813 0.1484375 0.8632813 0.1289062 0.6953125 0.1328125 0.703125 0.1289062 0.703125 0.484375 0.9335938 0.484375 0.7773438 0.5234375 0.7773438 0.3125 0.9609375 0.3476563 0.96875 0.3007813 0.9609375 0.0625 0.703125 0 0.7041016 0 0.703125 0.00390625 0.65625 0 0.6484375 0.00390625 0.6484375 0.1289062 0.65625 0.1328125 0.6484375 0.1328125 0.65625 0.3476563 0.9335938 0.3476563 0.9375 0.3046875 0.9375 0.484375 0.9335938 0.4101563 0.9375 0.4101563 0.9335938 0.3359375 0.9609375 0.3359375 0.9453125 0.3476563 0.9414063 0 0.7333984 0.0625 0.734375 0 0.734375 0.265625 0.9726563 0.3476563 0.96875 0.3476563 0.9726563 0.171875 0.7041016 0.109375 0.703125 0.109375 0.7041016 0.3359375 0.9609375 0.3320313 0.9570313 0.3320313 0.9492188 0.4101563 0.96875 0.484375 0.9726563 0.4101563 0.9726563 0.40625 0.8632813 0.4101563 0.8164063 0.4101563 0.8671875 0.40625 0.8203125 0.3359375 0.8164063 0.4101563 0.8164063 0.3398438 0.8632813 0.3359375 0.8164063 0.3398438 0.8203125 0.40625 0.8632813 0.3359375 0.8671875 0.3398438 0.8632813 0.21875 0.703125 0.171875 0.7041016 0.171875 0.703125 0 0.703125 0.00390625 0.6953125 0.00390625 0.703125 0.0625 0.734375 0.109375 0.7333984 0.0625 0.7333984 0.08203125 0.8632813 0.078125 0.8164063 0.08203125 0.8203125 0.4296875 0.7773438 0.375 0.7773438 0.375 0.7382813 0.109375 0.734375 0.171875 0.7333984 0.109375 0.7333984 0.453125 0.9570313 0.4492188 0.9453125 0.453125 0.9492188 0.171875 0.703125 0.109375 0.734375 0.109375 0.703125 0.46875 0.9570313 0.4726563 0.9453125 0.4726563 0.9609375 0.08203125 0.8203125 0.1523437 0.8164063 0.1484375 0.8203125 0.46875 0.9570313 0.453125 0.9492188 0.46875 0.9492188 0.171875 0.734375 0.21875 0.7333984 0.171875 0.7333984 0.2773438 0.9453125 0.3046875 0.9375 0.3007813 0.9453125 0.05859375 0.6953125 0.05078125 0.65625 0.05859375 0.65625 0.1328125 0.65625 0.1328125 0.6953125 0.1210937 0.6953125 0.3164063 0.9570313 0.3359375 0.9609375 0.3125 0.9609375 0.078125 0.8164063 0.078125 0.8671875 0.0078125 0.7773438 0.2265625 0.7773438 0.265625 0.7773438 0.265625 0.9296875 0.3007813 0.9453125 0.28125 0.9492188 0.2773438 0.9453125 0.4492188 0.9609375 0.46875 0.9570313 0.4726563 0.9609375 0.3007813 0.9609375 0.296875 0.9492188 0.3007813 0.9453125 0.3359375 0.9453125 0.3164063 0.9492188 0.3125 0.9453125 0.4375 0.9492188 0.421875 0.9570313 0.421875 0.9492188 0.3320313 0.9492188 0.3164063 0.9570313 0.3164063 0.9492188 0.421875 0.9453125 0.4375 0.9492188 0.421875 0.9492188 0.4101563 0.8671875 0.4101563 0.8164063 0.484375 0.7773438 0.4492188 0.9453125 0.46875 0.9492188 0.453125 0.9492188 0.0625 0.703125 0 0.734375 0 0.703125 0.296875 0.9492188 0.28125 0.9570313 0.28125 0.9492188 0.4414063 0.9609375 0.4375 0.9492188 0.4414063 0.9453125 0.28125 0.9570313 0.3007813 0.9609375 0.2773438 0.9609375 0.01953125 0.65625 0.01171875 0.6953125 0.01171875 0.65625 0.1132812 0.6953125 0.1054687 0.65625 0.1132812 0.65625 0.28125 0.9492188 0.2773438 0.9609375 0.2773438 0.9453125 0.1523437 0.8164063 0.1484375 0.8632813 0.1484375 0.8203125 0.21875 0.703125 0.171875 0.734375 0.171875 0.703125 0.08984375 0.65625 0.09765625 0.6953125 0.08984375 0.6953125 0.1210937 0.6953125 0.1132812 0.703125 0.1132812 0.6953125 0.1132812 0.6953125 0.1054687 0.703125 0.1054687 0.6953125 0.07421875 0.65625 0.08203125 0.6953125 0.07421875 0.6953125 0.1210937 0.6953125 0.1132812 0.65625 0.1210937 0.65625 0.09765625 0.6953125 0.08984375 0.703125 0.08984375 0.6953125 0.08203125 0.6953125 0.07421875 0.703125 0.07421875 0.6953125 0.06640625 0.6953125 0.07421875 0.703125 0.06640625 0.703125 0.06640625 0.6953125 0.05859375 0.703125 0.05859375 0.6953125 0.05859375 0.6953125 0.05078125 0.703125 0.05078125 0.6953125 0.04296875 0.6953125 0.05078125 0.703125 0.04296875 0.703125 0.03515625 0.6953125 0.04296875 0.703125 0.03515625 0.703125 0.03515625 0.6953125 0.02734375 0.703125 0.02734375 0.6953125 0.01953125 0.6953125 0.02734375 0.703125 0.01953125 0.703125 0.01171875 0.6953125 0.01953125 0.703125 0.01171875 0.703125 0.05078125 0.6953125 0.04296875 0.65625 0.05078125 0.65625 0.109375 0.703125 0.0625 0.7041016 0.0625 0.703125 0.109375 0.703125 0.0625 0.734375 0.0625 0.703125 0.421875 0.9492188 0.4179688 0.9609375 0.4179688 0.9453125 0.4101563 0.9375 0.484375 0.9375 0.4492188 0.9453125 0.4179688 0.9453125 0.4101563 0.96875 0.4101563 0.9375 0.265625 0.7773438 0.3359375 0.8164063 0.3359375 0.8671875 0.3359375 0.8164063 0.4101563 0.7773438 0.4101563 0.8164063 0.4101563 0.8671875 0.3805916 0.8997213 0.3731499 0.8991516 0.1523437 0.8671875 0.1206293 0.9000405 0.1134656 0.8996057 0.1523437 0.8164063 0.078125 0.7773438 0.1523437 0.7773438 0.2265625 0.9335938 0.1523437 0.9335938 0.1523437 0.8671875 0.02734375 0.6953125 0.01953125 0.6953125 0.01953125 0.65625 0.01171875 0.65625 0.01171875 0.6484375 0.01953125 0.6484375 0.01953125 0.65625 0.01953125 0.6484375 0.02734375 0.6484375 0.02734375 0.6484375 0.03515625 0.6484375 0.03515625 0.65625 0.03515625 0.65625 0.03515625 0.6484375 0.04296875 0.6484375 0.04296875 0.65625 0.04296875 0.6484375 0.05078125 0.6484375 0.05078125 0.6484375 0.05859375 0.6484375 0.05859375 0.65625 0.05859375 0.6484375 0.06640625 0.6484375 0.06640625 0.65625 0.06640625 0.65625 0.06640625 0.6484375 0.07421875 0.6484375 0.07421875 0.6484375 0.08203125 0.6484375 0.08203125 0.65625 0.08203125 0.6484375 0.08984375 0.6484375 0.08984375 0.65625 0.08984375 0.6484375 0.09765625 0.6484375 0.09765625 0.65625 0.09765625 0.65625 0.09765625 0.6484375 0.1054687 0.6484375 0.1054687 0.6484375 0.1132812 0.6484375 0.1132812 0.65625 0.1132812 0.6484375 0.1210937 0.6484375 0.1210937 0.65625 0.484375 0.9375 0.484375 0.96875 0.4726563 0.9609375 0.08984375 0.6953125 0.08203125 0.6953125 0.08203125 0.65625 0.4101563 0.9375 0.4101563 0.96875 0.40625 0.96875 0.08984375 0.6953125 0.08984375 0.703125 0.08203125 0.703125 0.06640625 0.6953125 0.05859375 0.6953125 0.05859375 0.65625 0.03515625 0.6953125 0.02734375 0.6953125 0.02734375 0.65625 0.07421875 0.6953125 0.06640625 0.6953125 0.06640625 0.65625 0.04296875 0.6953125 0.03515625 0.6953125 0.03515625 0.65625 0.3164063 0.9570313 0.3125 0.9609375 0.3125 0.9453125 0.00390625 0.65625 0.01171875 0.65625 0 0.65625 0.01171875 0.65625 0.01171875 0.6953125 0 0.6953125 0.01171875 0.6953125 0.00390625 0.6914063 0 0.6953125 0.1054687 0.6953125 0.09765625 0.6953125 0.09765625 0.65625 0.1210937 0.65625 0.1210937 0.6484375 0.1289062 0.6484375 0.00390625 0.6484375 0.01171875 0.6484375 0.01171875 0.65625 0.09765625 0.6953125 0.1054687 0.6953125 0.1054687 0.703125 0.4179688 0.9609375 0.421875 0.9570313 0.4375 0.9570313 0.1210937 0.6953125 0.1289062 0.6953125 0.1289062 0.703125 0.01171875 0.6953125 0.01171875 0.703125 0.00390625 0.703125 0.1523437 0.8671875 0.078125 0.8671875 0.08203125 0.8632813 0.1289062 0.6953125 0.1328125 0.6953125 0.1328125 0.703125 0.5234375 0.7773438 0.5234375 0.9335938 0.484375 0.9335938 0.5234375 0.9335938 0.5195313 0.9335938 0.484375 0.9335938 0.5195313 0.9335938 0.4882813 0.9335938 0.484375 0.9335938 0.265625 0.9375 0.2773438 0.9453125 0.2773438 0.9609375 0.3007813 0.9609375 0.3007813 0.9453125 0.3125 0.9609375 0.3007813 0.9453125 0.3046875 0.9375 0.3125 0.9453125 0.3125 0.9609375 0.3007813 0.9453125 0.3125 0.9453125 0.265625 0.96875 0.265625 0.9375 0.2773438 0.9609375 0.265625 0.96875 0.2773438 0.9609375 0.3007813 0.9609375 0.3359375 0.9609375 0.3359375 0.9609375 0.3476563 0.96875 0.3125 0.9609375 0.3359375 0.9609375 0.3476563 0.96875 0.3476563 0.96875 0.265625 0.96875 0.3007813 0.9609375 0.3046875 0.9375 0.3476563 0.9375 0.3125 0.9453125 0.3476563 0.9375 0.3359375 0.9453125 0.3125 0.9453125 0.0625 0.703125 0.0625 0.7041016 0 0.7041016 0.00390625 0.65625 0 0.65625 0 0.6484375 0.1289062 0.65625 0.1289062 0.6484375 0.1328125 0.6484375 0.265625 0.9375 0.265625 0.9335938 0.3046875 0.9375 0.265625 0.9335938 0.3476563 0.9335938 0.3046875 0.9375 0.484375 0.9335938 0.484375 0.9375 0.4101563 0.9375 0.34375 0.9375 0.3476563 0.9414063 0.3359375 0.9453125 0.3476563 0.9414063 0.3476563 0.9648438 0.3359375 0.9609375 0.3476563 0.9648438 0.34375 0.96875 0.3359375 0.9609375 0 0.7333984 0.0625 0.7333984 0.0625 0.734375 0.265625 0.9726563 0.265625 0.96875 0.3476563 0.96875 0.171875 0.7041016 0.171875 0.703125 0.109375 0.703125 0.3320313 0.9492188 0.3359375 0.9453125 0.3359375 0.9609375 0.3359375 0.9609375 0.3359375 0.9609375 0.3320313 0.9570313 0.4101563 0.96875 0.484375 0.96875 0.484375 0.9726563 0.40625 0.8632813 0.40625 0.8203125 0.4101563 0.8164063 0.40625 0.8203125 0.3398438 0.8203125 0.3359375 0.8164063 0.3398438 0.8632813 0.3359375 0.8671875 0.3359375 0.8164063 0.40625 0.8632813 0.4101563 0.8671875 0.3359375 0.8671875 0.21875 0.703125 0.21875 0.7041016 0.171875 0.7041016 0 0.703125 0 0.6953125 0.00390625 0.6953125 0.0625 0.734375 0.109375 0.734375 0.109375 0.7333984 0.08203125 0.8632813 0.078125 0.8671875 0.078125 0.8164063 0.375 0.7773438 0.265625 0.7773438 0.265625 0.7382813 0.375 0.7382813 0.4296875 0.7382813 0.4296875 0.7773438 0.4296875 0.7382813 0.484375 0.7382813 0.4296875 0.7773438 0.375 0.7773438 0.265625 0.7382813 0.375 0.7382813 0.484375 0.7382813 0.484375 0.7773438 0.4296875 0.7773438 0.109375 0.734375 0.171875 0.734375 0.171875 0.7333984 0.453125 0.9570313 0.4492188 0.9609375 0.4492188 0.9453125 0.171875 0.703125 0.171875 0.734375 0.109375 0.734375 0.46875 0.9570313 0.46875 0.9492188 0.4726563 0.9453125 0.08203125 0.8203125 0.078125 0.8164063 0.1523437 0.8164063 0.46875 0.9570313 0.453125 0.9570313 0.453125 0.9492188 0.171875 0.734375 0.21875 0.734375 0.21875 0.7333984 0.2773438 0.9453125 0.265625 0.9375 0.3046875 0.9375 0.05859375 0.6953125 0.05078125 0.6953125 0.05078125 0.65625 0.1289062 0.6953125 0.1210937 0.6953125 0.1328125 0.6953125 0.1210937 0.6953125 0.1210937 0.65625 0.1328125 0.65625 0.1210937 0.65625 0.1289062 0.6601563 0.1328125 0.65625 0.3164063 0.9570313 0.3320313 0.9570313 0.3359375 0.9609375 0.078125 0.8671875 0.078125 0.9335938 0.0078125 0.9335938 0.0078125 0.9335938 0.0078125 0.7773438 0.078125 0.8671875 0.0078125 0.7773438 0.078125 0.7773438 0.078125 0.8164063 0.265625 0.9296875 0.2617188 0.9335938 0.2304687 0.9335938 0.2304687 0.9335938 0.2265625 0.9296875 0.265625 0.9296875 0.2265625 0.9296875 0.2265625 0.7773438 0.265625 0.9296875 0.3007813 0.9453125 0.296875 0.9492188 0.28125 0.9492188 0.4492188 0.9609375 0.453125 0.9570313 0.46875 0.9570313 0.3007813 0.9609375 0.296875 0.9570313 0.296875 0.9492188 0.3359375 0.9453125 0.3320313 0.9492188 0.3164063 0.9492188 0.4375 0.9492188 0.4375 0.9570313 0.421875 0.9570313 0.3320313 0.9492188 0.3320313 0.9570313 0.3164063 0.9570313 0.421875 0.9453125 0.4414063 0.9453125 0.4375 0.9492188 0.4101563 0.8164063 0.4101563 0.7773438 0.484375 0.7773438 0.484375 0.7773438 0.484375 0.9335938 0.4101563 0.8671875 0.484375 0.9335938 0.4101563 0.9335938 0.4101563 0.8671875 0.4492188 0.9453125 0.4726563 0.9453125 0.46875 0.9492188 0.0625 0.703125 0.0625 0.734375 0 0.734375 0.296875 0.9492188 0.296875 0.9570313 0.28125 0.9570313 0.4414063 0.9609375 0.4375 0.9570313 0.4375 0.9492188 0.28125 0.9570313 0.296875 0.9570313 0.3007813 0.9609375 0.01953125 0.65625 0.01953125 0.6953125 0.01171875 0.6953125 0.1132812 0.6953125 0.1054687 0.6953125 0.1054687 0.65625 0.28125 0.9492188 0.28125 0.9570313 0.2773438 0.9609375 0.1523437 0.8164063 0.1523437 0.8671875 0.1484375 0.8632813 0.21875 0.703125 0.21875 0.734375 0.171875 0.734375 0.08984375 0.65625 0.09765625 0.65625 0.09765625 0.6953125 0.1210937 0.6953125 0.1210937 0.703125 0.1132812 0.703125 0.1132812 0.6953125 0.1132812 0.703125 0.1054687 0.703125 0.07421875 0.65625 0.08203125 0.65625 0.08203125 0.6953125 0.1210937 0.6953125 0.1132812 0.6953125 0.1132812 0.65625 0.09765625 0.6953125 0.09765625 0.703125 0.08984375 0.703125 0.08203125 0.6953125 0.08203125 0.703125 0.07421875 0.703125 0.06640625 0.6953125 0.07421875 0.6953125 0.07421875 0.703125 0.06640625 0.6953125 0.06640625 0.703125 0.05859375 0.703125 0.05859375 0.6953125 0.05859375 0.703125 0.05078125 0.703125 0.04296875 0.6953125 0.05078125 0.6953125 0.05078125 0.703125 0.03515625 0.6953125 0.04296875 0.6953125 0.04296875 0.703125 0.03515625 0.6953125 0.03515625 0.703125 0.02734375 0.703125 0.01953125 0.6953125 0.02734375 0.6953125 0.02734375 0.703125 0.01171875 0.6953125 0.01953125 0.6953125 0.01953125 0.703125 0.05078125 0.6953125 0.04296875 0.6953125 0.04296875 0.65625 0.109375 0.703125 0.109375 0.7041016 0.0625 0.7041016 0.109375 0.703125 0.109375 0.734375 0.0625 0.734375 0.421875 0.9492188 0.421875 0.9570313 0.4179688 0.9609375 0.4492188 0.9609375 0.4726563 0.9609375 0.484375 0.96875 0.484375 0.96875 0.4101563 0.96875 0.4492188 0.9609375 0.4101563 0.96875 0.4179688 0.9609375 0.4414063 0.9609375 0.4101563 0.96875 0.4414063 0.9609375 0.4492188 0.9609375 0.4414063 0.9453125 0.4179688 0.9453125 0.4101563 0.9375 0.4492188 0.9609375 0.4414063 0.9609375 0.4414063 0.9453125 0.484375 0.9375 0.4726563 0.9453125 0.4492188 0.9453125 0.4492188 0.9453125 0.4492188 0.9609375 0.4414063 0.9453125 0.4414063 0.9453125 0.4101563 0.9375 0.4492188 0.9453125 0.4179688 0.9453125 0.4179688 0.9609375 0.4101563 0.96875 0.3359375 0.9335938 0.265625 0.9335938 0.3359375 0.8671875 0.265625 0.9335938 0.265625 0.7773438 0.3359375 0.8671875 0.265625 0.7773438 0.3359375 0.7773438 0.3359375 0.8164063 0.3359375 0.8164063 0.3359375 0.7773438 0.4101563 0.7773438 0.3365457 0.9266614 0.3359375 0.9335938 0.3359375 0.8671875 0.4101563 0.8671875 0.4101563 0.9335938 0.4093334 0.9257813 0.4101563 0.8671875 0.4093334 0.9257813 0.4082009 0.9194982 0.338568 0.9201555 0.3365457 0.9266614 0.3359375 0.8671875 0.3418357 0.9143871 0.338568 0.9201555 0.3359375 0.8671875 0.4101563 0.8671875 0.4082009 0.9194982 0.4048051 0.9138015 0.4101563 0.8671875 0.4048051 0.9138015 0.400143 0.9087718 0.3463863 0.9092633 0.3418357 0.9143871 0.3359375 0.8671875 0.3520503 0.9050107 0.3463863 0.9092633 0.3359375 0.8671875 0.4101563 0.8671875 0.400143 0.9087718 0.3943881 0.9046313 0.4101563 0.8671875 0.3943881 0.9046313 0.3877754 0.9015697 0.3520503 0.9050107 0.3359375 0.8671875 0.358594 0.901826 0.3359375 0.8671875 0.4101563 0.8671875 0.3731499 0.8991516 0.358594 0.901826 0.3359375 0.8671875 0.3657317 0.8998496 0.3657317 0.8998496 0.3359375 0.8671875 0.3731499 0.8991516 0.4101563 0.8671875 0.3877754 0.9015697 0.3805916 0.8997213 0.07895302 0.9276447 0.078125 0.9335938 0.078125 0.8671875 0.1523437 0.8671875 0.1523437 0.9335938 0.149919 0.9257966 0.1523437 0.8671875 0.149919 0.9257966 0.1476761 0.9193678 0.08070421 0.9211758 0.07895302 0.9276447 0.078125 0.8671875 0.08370715 0.9153638 0.08070421 0.9211758 0.078125 0.8671875 0.1523437 0.8671875 0.1476761 0.9193678 0.1442694 0.9137199 0.1523437 0.8671875 0.1442694 0.9137199 0.1396595 0.9087614 0.08795803 0.9101732 0.08370715 0.9153638 0.078125 0.8671875 0.09330022 0.9058326 0.08795803 0.9101732 0.078125 0.8671875 0.1523437 0.8671875 0.1396595 0.9087614 0.134019 0.904713 0.1523437 0.8671875 0.134019 0.904713 0.1275818 0.9017626 0.09330022 0.9058326 0.078125 0.8671875 0.09951663 0.9025395 0.078125 0.8671875 0.1523437 0.8671875 0.1134656 0.8996057 0.09951663 0.9025395 0.078125 0.8671875 0.1063379 0.9004384 0.1063379 0.9004384 0.078125 0.8671875 0.1134656 0.8996057 0.1523437 0.8671875 0.1275818 0.9017626 0.1206293 0.9000405 0.1523437 0.8164063 0.078125 0.8164063 0.078125 0.7773438 0.1523437 0.8671875 0.1523437 0.8164063 0.2265625 0.7773438 0.1523437 0.8164063 0.1523437 0.7773438 0.2265625 0.7773438 0.2265625 0.7773438 0.2265625 0.9335938 0.1523437 0.8671875 + + + + + + + + + + + + + + +

    34 0 0 1 1 1 2 2 2 0 3 3 27 4 4 1 5 5 1 5 6 29 6 7 2 7 8 29 6 9 3 8 10 2 7 11 3 8 12 22 9 13 4 10 14 4 10 15 23 11 16 5 12 17 23 11 18 6 13 19 5 12 20 17 14 21 7 15 22 6 13 23 7 15 24 19 16 25 8 17 26 19 16 27 9 18 28 8 17 29 20 19 30 10 20 31 9 18 32 21 21 33 11 22 34 10 20 35 11 22 36 25 23 37 12 24 38 25 23 39 13 25 40 12 24 41 30 26 42 14 27 43 13 25 44 110 28 45 85 29 46 78 30 47 42 31 48 9 32 49 10 33 50 108 34 51 67 35 52 73 36 53 42 37 54 52 38 55 41 39 56 39 40 57 6 41 58 7 42 59 35 43 60 2 44 61 3 45 62 40 46 63 7 47 64 8 48 65 36 49 66 3 50 67 4 51 68 136 52 69 112 53 70 125 54 71 64 55 72 70 56 73 0 57 74 44 58 75 11 58 76 12 59 77 14 27 78 77 60 79 72 61 80 75 62 81 0 3 82 71 63 83 43 64 84 57 65 85 58 66 86 83 67 87 138 68 88 114 69 89 46 70 90 84 71 91 63 72 92 32 73 93 69 74 94 65 75 95 109 76 96 98 77 97 105 78 98 66 79 99 116 80 100 84 81 101 79 82 102 15 83 103 47 83 104 123 84 105 127 85 106 121 86 107 144 87 108 82 87 109 88 87 110 71 88 111 118 89 112 75 90 113 72 91 114 108 92 115 73 93 116 75 94 117 118 95 118 119 96 119 79 97 120 108 98 121 77 99 122 135 100 123 74 101 124 70 102 125 95 87 126 105 87 127 98 87 128 93 103 129 127 104 130 69 105 131 89 106 132 142 106 133 141 106 134 135 107 135 134 108 136 124 109 137 116 110 138 86 111 139 84 112 140 88 113 141 90 114 142 87 115 143 89 116 144 91 117 145 90 118 146 144 119 147 91 120 148 141 121 149 88 122 150 92 123 151 144 124 152 88 125 153 99 125 154 89 125 155 127 126 156 65 127 157 69 128 158 143 129 159 103 130 160 105 131 161 98 132 162 102 133 163 101 134 164 147 87 165 146 87 166 148 87 167 145 106 168 101 106 169 103 106 170 140 135 171 107 136 172 132 137 173 99 106 174 145 106 175 142 106 176 139 138 177 78 138 178 85 139 179 101 140 180 104 141 181 103 142 182 139 143 183 132 144 184 131 145 185 96 125 186 98 125 187 101 125 188 81 146 189 119 147 190 111 148 191 38 149 192 5 150 193 6 151 194 73 152 195 67 153 196 46 154 197 136 155 198 68 156 199 123 157 200 102 158 201 97 159 202 47 158 203 48 125 204 16 125 205 80 125 206 111 160 207 120 161 208 81 162 209 115 163 210 139 164 211 85 165 212 121 166 213 122 167 214 111 168 215 74 169 216 125 170 217 112 171 218 129 172 219 137 173 220 128 174 221 124 175 222 136 176 223 125 177 224 76 178 225 129 179 226 128 180 227 87 181 228 90 182 229 15 182 230 107 183 231 131 184 232 132 185 233 100 87 234 95 87 235 82 87 236 122 186 237 130 187 238 120 188 239 114 189 240 129 190 241 106 191 242 130 192 243 121 193 244 94 194 245 1 195 246 32 195 247 0 196 248 45 197 249 12 198 250 13 199 251 120 200 252 94 201 253 81 202 254 104 203 255 105 204 256 103 205 257 82 125 258 96 125 259 99 125 260 10 206 261 43 206 262 42 207 263 46 70 264 62 208 265 45 209 266 45 209 267 57 65 268 44 210 269 8 211 270 41 212 271 40 213 272 46 214 273 13 215 274 14 216 275 43 64 276 53 217 277 42 37 278 41 39 279 51 218 280 40 219 281 39 220 282 51 218 283 50 221 284 39 220 285 49 222 286 38 223 287 38 223 288 55 224 289 37 225 290 36 226 291 55 224 292 54 227 293 35 228 294 54 227 295 56 229 296 35 228 297 61 230 298 34 231 299 33 232 300 61 230 301 59 233 302 32 73 303 59 233 304 60 234 305 37 235 306 4 236 307 5 237 308 141 130 309 100 238 310 144 131 311 142 239 312 143 129 313 100 238 314 128 240 315 83 241 316 76 242 317 108 34 318 110 28 319 107 243 320 76 244 321 116 245 322 108 34 323 16 182 324 91 182 325 92 246 326 91 182 327 147 182 328 90 182 329 87 181 330 19 247 331 18 248 332 109 249 333 49 250 334 50 251 335 104 158 336 149 158 337 148 158 338 93 252 339 69 253 340 109 249 341 34 0 342 33 254 343 1 1 344 0 3 345 28 255 346 27 4 347 1 5 348 27 4 349 29 6 350 29 6 351 24 256 352 3 8 353 3 8 354 24 256 355 22 9 356 4 10 357 22 9 358 23 11 359 23 11 360 17 14 361 6 13 362 17 14 363 18 257 364 7 15 365 7 15 366 18 257 367 19 16 368 19 16 369 20 19 370 9 18 371 20 19 372 21 21 373 10 20 374 21 21 375 26 258 376 11 22 377 11 22 378 26 258 379 25 23 380 25 23 381 30 26 382 13 25 383 30 26 384 31 259 385 14 27 386 110 28 387 117 260 388 85 29 389 42 31 390 41 261 391 9 32 392 108 34 393 116 245 394 67 35 395 42 37 396 53 217 397 52 38 398 39 40 399 38 262 400 6 41 401 35 43 402 34 263 403 2 44 404 40 46 405 39 264 406 7 47 407 36 49 408 35 265 409 3 50 410 136 52 411 123 266 412 112 53 413 71 267 414 0 57 415 70 56 416 0 57 417 32 268 418 64 55 419 32 268 420 65 269 421 64 55 422 44 58 423 43 59 424 11 58 425 14 27 426 31 259 427 77 60 428 75 62 429 28 255 430 0 3 431 43 64 432 44 210 433 57 65 434 83 67 435 137 270 436 138 68 437 46 70 438 66 271 439 84 71 440 32 73 441 60 234 442 69 74 443 109 76 444 97 272 445 98 77 446 66 79 447 67 273 448 116 80 449 47 83 450 86 274 451 79 82 452 86 274 453 117 275 454 79 82 455 117 275 456 110 275 457 79 82 458 113 276 459 81 146 460 94 277 461 121 86 462 111 148 463 123 84 464 111 148 465 119 147 466 112 278 467 123 84 468 111 148 469 112 278 470 126 279 471 113 276 472 94 277 473 126 279 474 94 277 475 121 86 476 68 280 477 135 100 478 127 85 479 123 84 480 68 280 481 127 85 482 127 85 483 126 279 484 121 86 485 119 147 486 118 281 487 112 278 488 118 281 489 74 101 490 112 278 491 144 87 492 100 87 493 82 87 494 71 88 495 70 282 496 118 89 497 72 91 498 77 283 499 108 92 500 113 284 501 80 285 502 119 96 503 80 285 504 75 94 505 119 96 506 79 97 507 110 286 508 108 98 509 118 281 510 70 102 511 74 101 512 70 102 513 64 287 514 135 100 515 64 287 516 127 85 517 135 100 518 95 87 519 143 87 520 105 87 521 93 103 522 126 288 523 127 104 524 89 106 525 99 106 526 142 106 527 124 109 528 74 289 529 135 107 530 135 107 531 68 290 532 134 108 533 116 110 534 117 291 535 86 111 536 88 113 537 89 292 538 90 114 539 89 116 540 141 293 541 91 117 542 144 119 543 92 294 544 91 120 545 88 122 546 87 295 547 92 123 548 88 125 549 82 125 550 99 125 551 127 126 552 64 296 553 65 127 554 143 129 555 145 297 556 103 130 557 98 132 558 97 298 559 102 133 560 146 87 561 16 87 562 48 87 563 148 87 564 149 87 565 147 87 566 149 87 567 47 87 568 147 87 569 146 87 570 48 87 571 148 87 572 47 87 573 15 87 574 147 87 575 145 106 576 96 106 577 101 106 578 140 135 579 115 299 580 107 136 581 99 106 582 96 106 583 145 106 584 139 138 585 131 300 586 78 138 587 101 140 588 102 301 589 104 141 590 139 143 591 140 302 592 132 144 593 96 125 594 95 125 595 98 125 596 81 146 597 113 276 598 119 147 599 38 149 600 37 303 601 5 150 602 66 304 603 46 154 604 67 153 605 46 154 606 14 305 607 73 152 608 14 305 609 72 306 610 73 152 611 136 155 612 134 307 613 68 156 614 97 159 615 84 308 616 86 309 617 86 309 618 47 158 619 97 159 620 47 158 621 149 158 622 102 158 623 80 125 624 113 125 625 126 125 626 126 125 627 93 125 628 80 125 629 93 125 630 48 125 631 80 125 632 111 160 633 122 310 634 120 161 635 115 163 636 140 311 637 139 164 638 121 166 639 133 312 640 122 167 641 74 169 642 124 313 643 125 170 644 129 172 645 138 314 646 137 173 647 124 175 648 134 315 649 136 176 650 76 178 651 106 316 652 129 179 653 90 182 654 147 182 655 15 182 656 15 182 657 79 182 658 87 181 659 79 182 660 77 317 661 87 181 662 107 183 663 78 318 664 131 184 665 100 87 666 143 87 667 95 87 668 122 186 669 133 319 670 130 187 671 114 189 672 138 320 673 129 190 674 130 192 675 133 321 676 121 193 677 1 195 678 33 196 679 32 195 680 45 197 681 44 322 682 12 198 683 120 200 684 130 323 685 94 201 686 104 203 687 109 324 688 105 204 689 82 125 690 95 125 691 96 125 692 10 206 693 11 207 694 43 206 695 46 70 696 63 72 697 62 208 698 45 209 699 62 208 700 57 65 701 8 211 702 9 325 703 41 212 704 46 214 705 45 326 706 13 215 707 43 64 708 58 66 709 53 217 710 41 39 711 52 38 712 51 218 713 39 220 714 40 219 715 51 218 716 39 220 717 50 221 718 49 222 719 38 223 720 49 222 721 55 224 722 36 226 723 37 225 724 55 224 725 35 228 726 36 226 727 54 227 728 35 228 729 56 229 730 61 230 731 33 232 732 34 231 733 61 230 734 32 73 735 33 232 736 59 233 737 37 235 738 36 327 739 4 236 740 141 130 741 142 239 742 100 238 743 142 239 744 145 297 745 143 129 746 128 240 747 137 328 748 83 241 749 115 329 750 85 29 751 117 260 752 117 260 753 116 245 754 115 329 755 116 245 756 83 330 757 114 331 758 116 245 759 114 331 760 115 329 761 106 332 762 76 244 763 108 34 764 115 329 765 114 331 766 106 332 767 110 28 768 78 30 769 107 243 770 107 243 771 115 329 772 106 332 773 106 332 774 108 34 775 107 243 776 76 244 777 83 330 778 116 245 779 75 333 780 80 334 781 92 246 782 80 334 783 16 182 784 92 246 785 16 182 786 146 182 787 91 182 788 91 182 789 146 182 790 147 182 791 28 182 792 75 333 793 92 246 794 87 181 795 77 317 796 31 335 797 87 181 798 31 335 799 30 336 800 27 182 801 28 182 802 92 246 803 29 337 804 27 182 805 92 246 806 87 181 807 30 336 808 25 338 809 87 181 810 25 338 811 26 339 812 24 340 813 29 337 814 92 246 815 22 341 816 24 340 817 92 246 818 87 181 819 26 339 820 21 342 821 87 181 822 21 342 823 20 343 824 22 341 825 92 246 826 23 182 827 92 246 828 87 181 829 18 248 830 23 182 831 92 246 832 17 182 833 17 182 834 92 246 835 18 248 836 87 181 837 20 343 838 19 247 839 63 344 840 84 308 841 97 159 842 109 249 843 69 253 844 60 345 845 109 249 846 60 345 847 59 346 848 62 347 849 63 344 850 97 159 851 57 348 852 62 347 853 97 159 854 109 249 855 59 346 856 61 349 857 109 249 858 61 349 859 56 350 860 58 158 861 57 348 862 97 159 863 53 158 864 58 158 865 97 159 866 109 249 867 56 350 868 54 351 869 109 249 870 54 351 871 55 352 872 53 158 873 97 159 874 52 158 875 97 159 876 109 249 877 50 251 878 52 158 879 97 159 880 51 353 881 51 353 882 97 159 883 50 251 884 109 249 885 55 352 886 49 250 887 104 158 888 102 158 889 149 158 890 109 249 891 104 158 892 48 158 893 104 158 894 148 158 895 48 158 896 48 158 897 93 252 898 109 249 899

    +
    +
    +
    + + + + -3.5 0 0.5 -3.5 4 0.5 -3.5 0 -0.5 -3.5 4 -0.5 3.5 0 0.5 3.5 4 0.5 3.5 0 -0.5 3.5 4 -0.5 -2.449998 0.06249982 0.3 -2.499998 0.1124998 0.3 2.499999 0.1124998 0.3 2.449999 0.06249982 0.3 2.449999 3.499999 0.3 2.499999 3.449999 0.3 -2.499998 3.45 0.3 -2.449998 3.5 0.3 -2.566542 0.01615011 0.5 -2.499998 0.1124998 0.4125 -2.460354 0.003356516 0.5 -2.449998 0.06249982 0.4125 2.465347 0.003356516 0.5 2.449999 0.06249982 0.4125 2.499999 0.1124998 0.4125 2.570442 0.01410555 0.5 2.570653 3.507365 0.5 -2.449998 0.06249982 -0.3 -2.499998 0.1124998 -0.3 2.499999 0.1124998 -0.3 2.449999 0.06249982 -0.3 2.449999 3.499999 -0.3 2.499999 3.449999 -0.3 -2.499998 3.45 -0.3 -2.449998 3.5 -0.3 -2.566542 0.01615011 -0.5 -2.499998 0.1124998 -0.4125 -2.460354 0.003356516 -0.5 -2.449998 0.06249982 -0.4125 2.465347 0.003356516 -0.5 2.449999 0.06249982 -0.4125 2.499999 0.1124998 -0.4125 2.570442 0.01410555 -0.5 2.570653 3.507365 -0.5 2.499999 3.449999 -0.4125 2.509674 3.568343 -0.5 2.449999 3.499999 -0.4125 -2.515752 3.568344 -0.5 -2.449998 3.5 -0.4125 -2.499998 3.45 -0.4125 -2.566191 3.518172 -0.5 2.499999 3.449999 0.4125 2.509674 3.568343 0.5 2.449999 3.499999 0.4125 -2.515752 3.568344 0.5 2.449999 3.599999 -0.3000003 2.499999 3.549999 -0.3000003 -2.499998 3.549999 -0.3000003 -2.449998 3.599999 -0.3000003 -2.449998 3.5 0.4125 -2.499998 3.45 0.4125 -2.499998 0 -0.3 -2.566191 3.518172 0.5 2.449999 3.599999 0.3000003 2.499999 0 -0.3 2.499999 3.549999 0.3000003 -3.5 0 -0.5 -2.499998 3.549999 0.3000003 3.5 0 -0.5 -2.449998 3.599999 0.3000003 3.062499 3.549999 -0.3000004 -2.499998 0 0.3 3.062499 0 -0.3000001 2.499999 0 0.3 -3.5 0 0.5 3.5 0 0.5 -3.062498 3.549999 -0.3000005 -3.062498 0 -0.3000002 -3.5 0.02500009 -0.45 3.062499 3.549999 0.3000004 3.5 0.02500009 -0.45 3.062499 0 0.3000001 -3.062498 3.549999 0.3000005 -3.062498 0 0.3000002 -3.5 0.02500009 0.45 3.5 0.02500009 0.45 + + + + + + + + + + -1 0 0 -0.7071079 -0.7071058 0 -0.4914328 -0.4914404 0.7190133 -1 0 0 0 1 0 0.4790179 -0.4790199 0.7355828 -0.6058115 0.6058108 0.515738 0 0.8284935 0.5599987 -0.7071071 0.7071066 0 0.7071078 -0.7071059 0 1 0 0 0.7975064 0 0.6033105 0.0771737 0.64055 0.7640287 0 -1 0 -0.6058115 0.6058108 -0.515738 0.4782425 -0.480796 -0.7349281 0.6165269 0.6165267 -0.4896831 -0.4914354 -0.4914371 -0.7190139 0 0.8284936 -0.5599986 0.7975074 0 -0.6033093 -0.7780221 0 -0.628237 -2.1912e-7 -0.7880899 -0.6155603 0.7071072 0.7071065 0 0 0 -1 0 -1 0 -0.7071036 -0.70711 0 0 3.89255e-6 1 0 0 1 -2.1912e-7 -0.7880899 0.6155602 0.7071036 -0.70711 0 -1 0 0 -0.7789177 4.71053e-5 0.6271261 -1.62189e-7 -1 0 7.41746e-7 0 1 -3.17891e-7 3.70874e-6 -1 0 3.89255e-6 -1 7.41746e-7 0 -1 0 7.68902e-7 -1 0 7.68902e-7 1 -9.00692e-7 0 1 -1 0 0 -0.7071078 -0.7071059 0 -0.4914354 -0.4914371 0.7190139 0.4782425 -0.480796 0.7349281 -0.0651189 0.6366786 0.7683749 0 0.8284941 0.5599979 -0.7071073 0.7071063 0 0.7071079 -0.7071058 0 0.7960138 -7.97699e-5 0.6052786 0.6165269 0.6165267 0.4896831 -0.06511884 0.6366788 -0.7683748 0.4790179 -0.4790199 -0.7355828 0.0771737 0.64055 -0.7640287 -0.4914328 -0.4914404 -0.7190133 0 0.8284941 -0.559998 0.7960132 -7.97698e-5 -0.6052795 -0.7789177 4.71053e-5 -0.6271261 0 -0.7880892 -0.6155612 -4.76837e-7 -1 0 -0.7071092 -0.7071044 0 3.27826e-6 3.35274e-6 1 3.27825e-6 2.98025e-6 1 0 2.91942e-6 1 -3.27826e-6 2.98022e-6 1 -3.27825e-6 3.35278e-6 1 0 -0.7880892 0.6155611 0.7071092 -0.7071044 0 -1 0 0 9.44843e-7 -1 0 0 0 -1 -0.7780221 0 0.628237 1.58946e-7 0 1 1.77415e-7 0 1 1.58948e-7 3.17892e-6 1 -9.00692e-7 0 -1 -3.17892e-7 0 -1 -3.36361e-7 0 -1 3.27825e-6 2.98025e-6 -1 3.27825e-6 3.35273e-6 -1 -3.27826e-6 2.98022e-6 -1 0 2.91942e-6 -1 -3.27825e-6 3.35278e-6 -1 1.58948e-7 3.17892e-6 -1 1.77415e-7 0 -1 1.58946e-7 0 -1 0 -7.7243e-7 -1 0 -7.7243e-7 1 -3.17893e-7 3.70874e-6 1 -3.36361e-7 0 1 -3.17892e-7 0 1 + + + + + + + + + + 0.4492188 0.2695313 0.4570313 0.078125 0.4570313 0.2695313 0.4570313 0.2773438 0.4492188 0.2695313 0.4492188 0.2773438 0.4570313 0.2851563 0.4648438 0.2773438 0.4648438 0.2851563 0.0625 0.0625 0 0.3125 0 0.0625 0.4570313 0.4101563 0.4492188 0.4179688 0.4492188 0.4101563 0.4570313 0.609375 0.4492188 0.4179688 0.4570313 0.4179688 0.1367187 0.6171875 0.4492188 0.609375 0.4492188 0.6171875 0.1289062 0.2773438 0.1210937 0.2851563 0.1210937 0.2773438 0.4570313 0.0625 0.4648438 0.0703125 0.4570313 0.0703125 0.4570313 0.0703125 0.1289062 0.0625 0.4570313 0.0625 0.4492188 0.078125 0.1367187 0.0703125 0.4492188 0.0703125 0.4570313 0.078125 0.4492188 0.0703125 0.4570313 0.0703125 0.1289062 0.2695313 0.1367187 0.2773438 0.1289062 0.2773438 0.1367187 0.078125 0.1289062 0.2695313 0.1289062 0.078125 0.1210937 0.2773438 0.1289062 0.0703125 0.1289062 0.2773438 0.1210937 0.0625 0.1289062 0.0703125 0.1210937 0.0703125 0.1367187 0.2695313 0.4492188 0.2773438 0.1367187 0.2773438 0.4492188 0.609375 0.4570313 0.6171875 0.4492188 0.6171875 0.1367187 0.4179688 0.1289062 0.4101563 0.1367187 0.4101563 0.1289062 0.4179688 0.1367187 0.609375 0.1289062 0.609375 0.4492188 0.4179688 0.1367187 0.4101563 0.1367187 0.4179688 0.4648438 0.6171875 0.4570313 0.625 0.4648438 0.625 0.1289062 0.4101563 0.1210937 0.4023438 0.1289062 0.4023438 0.1289062 0.625 0.1210937 0.6171875 0.1210937 0.625 0.4648438 0.4023438 0.4570313 0.4101563 0.4570313 0.4023438 0.1289062 0.625 0.4570313 0.6171875 0.4570313 0.625 0.1289062 0.6171875 0.1210937 0.4101563 0.1289062 0.4101563 0.4648438 0.4101563 0.4570313 0.6171875 0.4570313 0.4101563 0.4570313 0.4101563 0.1289062 0.4023438 0.1289062 0.4101563 0.1289062 0.6171875 0.1367187 0.609375 0.1367187 0.6171875 0.0625 0.625 0.1210937 0.625 0.4648438 0.625 0.0546875 0.6484375 0.0078125 0.6289063 0.0546875 0.6289063 0.0546875 0.3320313 0.0078125 0.3359375 0.0078125 0.3320313 0.0078125 0.3359375 0.0078125 0.625 0 0.625 0.4648438 0.0625 0.1210937 0.0625 0.0625 0.05859375 0.1289062 0.2851563 0.4570313 0.2773438 0.1289062 0.2773438 0.0546875 0.625 0.0078125 0.6289063 0.0078125 0.625 0.5859375 0.0625 0.5234375 0.3125 0.5234375 0.0625 0.5234375 0.3125 0.4648438 0.2851563 0.4648438 0.28125 0.578125 0.3164063 0.53125 0.6289063 0.578125 0.6289063 0.5234375 0.375 0.0625 0.3125 0.5234375 0.3125 0.5234375 0.05859375 0.0625 0 0.0625 0.05859375 0.1367187 0.1992187 0.3554688 0.234375 0.1367187 0.234375 0.0078125 0.3125 0.0546875 0.3320313 0.0078125 0.3320313 0.4648438 0.4023438 0.0625 0.375 0.5234375 0.375 0.0625 0 0.5234375 0.05859375 0.0625 0.05859375 0.4648438 0.2773438 0.4570313 0.0703125 0.4648438 0.0703125 0.1289062 0.078125 0.1367187 0.0703125 0.1367187 0.078125 0.0546875 0.3359375 0.0078125 0.625 0.0078125 0.3359375 0.3554688 0.234375 0.1367187 0.1992187 0.3554688 0.1992187 0.1445312 0.1640625 0.3554688 0.1992187 0.3476563 0.1640625 0.3554688 0.1992187 0.3554688 0.1640625 0.3476563 0.1640625 0.0625 0.3359375 0.0546875 0.3359375 0.0546875 0.625 0.1445312 0.234375 0.3476563 0.234375 0.3554688 0.2695313 0.5859375 0.3398438 0.5859375 0.6054688 0.578125 0.5976563 0.5234375 0.6054688 0.5234375 0.3398438 0.53125 0.3476563 0.1445312 0.234375 0.3476563 0.234375 0.3554688 0.2695313 0.4492188 0.2695313 0.4492188 0.078125 0.4570313 0.078125 0.4570313 0.2773438 0.4570313 0.2695313 0.4492188 0.2695313 0.4570313 0.2851563 0.4570313 0.2773438 0.4648438 0.2773438 0.0625 0.0625 0.0625 0.3125 0 0.3125 0.4570313 0.4101563 0.4570313 0.4179688 0.4492188 0.4179688 0.4570313 0.609375 0.4492188 0.609375 0.4492188 0.4179688 0.1367187 0.6171875 0.1367187 0.609375 0.4492188 0.609375 0.1289062 0.2773438 0.1289062 0.2851563 0.1210937 0.2851563 0.4570313 0.0625 0.4648438 0.0625 0.4648438 0.0703125 0.4570313 0.0703125 0.1289062 0.0703125 0.1289062 0.0625 0.4492188 0.078125 0.1367187 0.078125 0.1367187 0.0703125 0.4570313 0.078125 0.4492188 0.078125 0.4492188 0.0703125 0.1289062 0.2695313 0.1367187 0.2695313 0.1367187 0.2773438 0.1367187 0.078125 0.1367187 0.2695313 0.1289062 0.2695313 0.1210937 0.2773438 0.1210937 0.0703125 0.1289062 0.0703125 0.1210937 0.0625 0.1289062 0.0625 0.1289062 0.0703125 0.1367187 0.2695313 0.4492188 0.2695313 0.4492188 0.2773438 0.4492188 0.609375 0.4570313 0.609375 0.4570313 0.6171875 0.1367187 0.4179688 0.1289062 0.4179688 0.1289062 0.4101563 0.1289062 0.4179688 0.1367187 0.4179688 0.1367187 0.609375 0.4492188 0.4179688 0.4492188 0.4101563 0.1367187 0.4101563 0.4648438 0.6171875 0.4570313 0.6171875 0.4570313 0.625 0.1289062 0.4101563 0.1210937 0.4101563 0.1210937 0.4023438 0.1289062 0.625 0.1289062 0.6171875 0.1210937 0.6171875 0.4648438 0.4023438 0.4648438 0.4101563 0.4570313 0.4101563 0.1289062 0.625 0.1289062 0.6171875 0.4570313 0.6171875 0.1289062 0.6171875 0.1210937 0.6171875 0.1210937 0.4101563 0.4648438 0.4101563 0.4648438 0.6171875 0.4570313 0.6171875 0.4570313 0.4101563 0.4570313 0.4023438 0.1289062 0.4023438 0.1289062 0.6171875 0.1289062 0.609375 0.1367187 0.609375 0.5234375 0.625 0.5234375 0.6289063 0.0625 0.6289063 0.0625 0.625 0.0625 0.375 0.1210937 0.40625 0.0625 0.625 0.1210937 0.40625 0.1210937 0.625 0.5234375 0.625 0.0625 0.6289063 0.4648438 0.625 0.0625 0.6289063 0.0625 0.625 0.4648438 0.625 0.0546875 0.6484375 0.0078125 0.6484375 0.0078125 0.6289063 0.0546875 0.3320313 0.0546875 0.3359375 0.0078125 0.3359375 0.0078125 0.625 0.0078125 0.6289063 0 0.6289063 0 0.6289063 0 0.625 0.0078125 0.625 0 0.625 0 0.3359375 0.0078125 0.3359375 0 0.3359375 0 0.3320313 0.0078125 0.3359375 0 0.3320313 0.0078125 0.3320313 0.0078125 0.3359375 0.1210937 0.0625 0.1210937 0.28125 0.0625 0.05859375 0.1210937 0.28125 0.0625 0.3125 0.0625 0.05859375 0.0625 0.05859375 0.5234375 0.05859375 0.5234375 0.0625 0.0625 0.05859375 0.5234375 0.0625 0.4648438 0.0625 0.0625 0.05859375 0.0625 0.05859375 0.4648438 0.0625 0.1289062 0.2851563 0.4570313 0.2851563 0.4570313 0.2773438 0.0546875 0.625 0.0546875 0.6289063 0.0078125 0.6289063 0.5859375 0.0625 0.5859375 0.3125 0.5234375 0.3125 0.4648438 0.0625 0.5234375 0.0625 0.4648438 0.28125 0.5234375 0.0625 0.5234375 0.3125 0.4648438 0.28125 0.0625 0.3125 0.1210937 0.28125 0.1210937 0.2851563 0.0625 0.3125 0.1210937 0.2851563 0.4648438 0.2851563 0.5234375 0.3125 0.0625 0.3125 0.4648438 0.2851563 0.578125 0.3164063 0.53125 0.3164063 0.53125 0.6289063 0.5234375 0.375 0.0625 0.375 0.0625 0.3125 0.5234375 0.05859375 0.5234375 0 0.0625 0 0.1367187 0.1992187 0.3554688 0.1992187 0.3554688 0.234375 0.0078125 0.3125 0.0546875 0.3125 0.0546875 0.3320313 0.5234375 0.375 0.5234375 0.625 0.4648438 0.40625 0.5234375 0.625 0.4648438 0.625 0.4648438 0.40625 0.1210937 0.4023438 0.1210937 0.40625 0.0625 0.375 0.5234375 0.375 0.4648438 0.40625 0.4648438 0.4023438 0.4648438 0.4023438 0.1210937 0.4023438 0.0625 0.375 0.0625 0 0.5234375 0 0.5234375 0.05859375 0.4648438 0.2773438 0.4570313 0.2773438 0.4570313 0.0703125 0.1289062 0.078125 0.1289062 0.0703125 0.1367187 0.0703125 0.0546875 0.3359375 0.0546875 0.625 0.0078125 0.625 0.3554688 0.234375 0.1367187 0.234375 0.1367187 0.1992187 0.1445312 0.1640625 0.1367187 0.1640625 0.1367187 0.1992187 0.1367187 0.1992187 0.3554688 0.1992187 0.1445312 0.1640625 0.3554688 0.1992187 0.3554688 0.1640625 0.3476563 0.1640625 0.3476563 0.1640625 0.1445312 0.1640625 0.3554688 0.1992187 0.1445312 0.1640625 0.1367187 0.1640625 0.1367187 0.1992187 0.3554688 0.1992187 0.1445312 0.1640625 0.1367187 0.1992187 0.0625 0.3359375 0.0625 0.3320313 0.0546875 0.3359375 0.0625 0.3320313 0.0546875 0.3320313 0.0546875 0.3359375 0.0625 0.6289063 0.0625 0.625 0.0546875 0.625 0.0625 0.625 0.0625 0.3359375 0.0546875 0.625 0.0546875 0.625 0.0546875 0.6289063 0.0625 0.6289063 0.3554688 0.234375 0.3554688 0.2695313 0.3476563 0.234375 0.3554688 0.2695313 0.1367187 0.2695313 0.1445312 0.234375 0.1367187 0.2695313 0.1367187 0.234375 0.1445312 0.234375 0.578125 0.3476563 0.578125 0.3398438 0.5859375 0.3398438 0.5859375 0.6054688 0.578125 0.6054688 0.578125 0.5976563 0.578125 0.5976563 0.578125 0.3476563 0.5859375 0.3398438 0.53125 0.5976563 0.53125 0.6054688 0.5234375 0.6054688 0.5234375 0.3398438 0.53125 0.3398438 0.53125 0.3476563 0.53125 0.3476563 0.53125 0.5976563 0.5234375 0.6054688 0.3476563 0.234375 0.3554688 0.234375 0.3554688 0.2695313 0.3554688 0.2695313 0.1367187 0.2695313 0.1445312 0.234375 0.1367187 0.2695313 0.1367187 0.234375 0.1445312 0.234375 + + + + + + + + + + + + + + +

    13 0 0 22 0 1 49 0 2 13 1 3 51 1 4 12 1 5 50 2 6 49 2 7 24 2 8 0 3 9 3 3 10 2 3 11 44 1 12 30 1 13 29 1 14 39 0 15 30 0 16 42 0 17 36 4 18 28 4 19 38 4 20 57 5 21 60 5 22 58 5 23 20 6 24 22 6 25 21 6 26 21 7 27 18 7 28 20 7 29 11 4 30 19 4 31 21 4 32 22 8 33 11 8 34 21 8 35 58 9 36 15 9 37 57 9 38 9 10 39 58 10 40 17 10 41 60 11 42 17 11 43 58 11 44 18 12 45 17 12 46 16 12 47 15 13 48 51 13 49 57 13 50 28 8 51 39 8 52 38 8 53 32 9 54 47 9 55 46 9 56 47 10 57 26 10 58 34 10 59 44 13 60 32 13 61 46 13 62 39 14 63 37 14 64 38 14 65 46 15 66 48 15 67 45 15 68 35 16 69 34 16 70 36 16 71 43 17 72 42 17 73 44 17 74 35 18 75 38 18 76 37 18 77 34 19 78 48 19 79 47 19 80 41 20 81 39 20 82 42 20 83 46 21 84 43 21 85 44 21 86 36 22 87 26 22 88 25 22 89 2 23 90 33 23 91 35 23 92 80 24 93 55 24 94 65 24 95 63 25 96 53 25 97 54 25 98 32 26 99 29 26 100 53 26 101 18 27 102 16 27 103 0 27 104 50 28 105 57 28 106 51 28 107 67 29 108 55 29 109 56 29 110 6 10 111 5 10 112 4 10 113 5 27 114 50 27 115 24 27 116 83 4 117 76 4 118 82 4 119 7 4 120 1 4 121 5 4 122 4 4 123 2 4 124 0 4 125 79 30 126 68 30 127 70 30 128 68 24 129 63 24 130 54 24 131 43 23 132 3 23 133 7 23 134 64 24 135 73 24 136 72 24 137 24 31 138 22 31 139 23 31 140 9 22 141 19 22 142 8 22 143 61 32 144 56 32 145 53 32 146 80 10 147 75 10 148 74 10 149 27 33 150 68 33 151 30 33 152 80 34 153 65 34 154 14 34 155 61 35 156 12 35 157 15 35 158 10 36 159 13 36 160 77 36 161 71 37 162 69 37 163 8 37 164 59 38 165 62 38 166 28 38 167 26 39 168 31 39 169 74 39 170 13 40 171 10 40 172 22 40 173 13 41 174 49 41 175 51 41 176 50 42 177 51 42 178 49 42 179 0 3 180 1 3 181 3 3 182 44 41 183 42 41 184 30 41 185 39 40 186 27 40 187 30 40 188 36 4 189 25 4 190 28 4 191 57 43 192 52 43 193 60 43 194 20 44 195 23 44 196 22 44 197 21 45 198 19 45 199 18 45 200 11 4 201 8 4 202 19 4 203 22 46 204 10 46 205 11 46 206 58 47 207 14 47 208 15 47 209 9 10 210 14 10 211 58 10 212 60 48 213 16 48 214 17 48 215 18 49 216 19 49 217 17 49 218 15 13 219 12 13 220 51 13 221 28 46 222 27 46 223 39 46 224 32 47 225 31 47 226 47 47 227 47 10 228 31 10 229 26 10 230 44 13 231 29 13 232 32 13 233 39 50 234 40 50 235 37 50 236 46 51 237 47 51 238 48 51 239 35 52 240 33 52 241 34 52 242 43 53 243 41 53 244 42 53 245 35 54 246 36 54 247 38 54 248 34 55 249 33 55 250 48 55 251 41 56 252 40 56 253 39 56 254 46 57 255 45 57 256 43 57 257 36 22 258 34 22 259 26 22 260 37 23 261 40 23 262 6 23 263 2 23 264 3 23 265 48 23 266 2 23 267 48 23 268 33 23 269 37 23 270 6 23 271 35 23 272 6 23 273 2 23 274 35 23 275 80 58 276 74 58 277 55 58 278 63 59 279 61 59 280 53 59 281 29 60 282 30 60 283 54 60 284 54 61 285 53 61 286 29 61 287 53 62 288 56 62 289 32 62 290 56 63 291 55 63 292 32 63 293 55 64 294 31 64 295 32 64 296 16 27 297 60 27 298 0 27 299 60 27 300 1 27 301 0 27 302 4 27 303 23 27 304 20 27 305 4 27 306 20 27 307 18 27 308 0 27 309 4 27 310 18 27 311 50 65 312 52 65 313 57 65 314 67 66 315 65 66 316 55 66 317 6 10 318 7 10 319 5 10 320 23 27 321 4 27 322 24 27 323 4 27 324 5 27 325 24 27 326 1 27 327 60 27 328 52 27 329 1 27 330 52 27 331 50 27 332 5 27 333 1 27 334 50 27 335 83 4 336 78 4 337 76 4 338 7 4 339 3 4 340 1 4 341 4 4 342 6 4 343 2 4 344 79 67 345 77 67 346 68 67 347 68 68 348 77 68 349 63 68 350 7 23 351 6 23 352 41 23 353 6 23 354 40 23 355 41 23 356 45 23 357 48 23 358 3 23 359 7 23 360 41 23 361 43 23 362 43 69 363 45 69 364 3 69 365 64 24 366 66 24 367 73 24 368 24 70 369 49 70 370 22 70 371 9 22 372 17 22 373 19 22 374 61 24 375 67 24 376 56 24 377 80 10 378 81 10 379 75 10 380 27 71 381 62 71 382 70 71 383 70 72 384 68 72 385 27 72 386 68 73 387 54 73 388 30 73 389 14 74 390 9 74 391 80 74 392 9 75 393 69 75 394 81 75 395 80 76 396 9 76 397 81 76 398 61 77 399 63 77 400 12 77 401 63 78 402 13 78 403 12 78 404 65 79 405 67 79 406 15 79 407 67 80 408 61 80 409 15 80 410 15 81 411 14 81 412 65 81 413 63 82 414 77 82 415 13 82 416 77 83 417 79 83 418 10 83 419 79 84 420 71 84 421 10 84 422 11 23 423 10 23 424 71 23 425 69 23 426 9 23 427 8 23 428 8 85 429 11 85 430 71 85 431 25 27 432 26 27 433 59 27 434 62 27 435 27 27 436 28 27 437 28 86 438 25 86 439 59 86 440 31 87 441 55 87 442 74 87 443 74 88 444 75 88 445 26 88 446 75 89 447 59 89 448 26 89 449

    +
    +
    +
    + + + + + + 0.04166662 0.08333331 0.125 0.1666666 0.2083333 0.25 0.2916666 0.3333333 0.375 0.4166666 0.4583333 0.5 0.5416667 0.5833333 0.625 0.6666667 0.7083333 0.75 0.7916667 0.8333333 0.875 0.9166667 0.9583333 1 1.041667 1.083333 1.125 1.166667 1.208333 1.25 + + + + + + + + 7.54979e-8 -1 0 1.82539e-7 1 7.54979e-8 0 1.75 0 0 1 0.01755606 0 0 0 1 0.08690225 -0.9962168 0 1.82539e-7 0.9962168 0.08690225 0 1.75 0 0 1 0.01755606 0 0 0 1 0.3064026 -0.951902 0 1.82539e-7 0.951902 0.3064026 0 1.75 0 0 1 0.01755606 0 0 0 1 0.5796046 -0.8148978 0 1.82539e-7 0.8148978 0.5796046 0 1.75 0 0 1 0.01755606 0 0 0 1 0.8148978 -0.5796046 0 1.82539e-7 0.5796046 0.8148978 0 1.75 0 0 1 0.01755606 0 0 0 1 0.951902 -0.3064026 0 1.82539e-7 0.3064026 0.951902 0 1.75 0 0 1 0.01755606 0 0 0 1 0.9962168 -0.08690242 0 1.82539e-7 0.08690242 0.9962168 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.82539e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.82539e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.82539e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.82539e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.82539e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.82539e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.82539e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.82539e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.86265e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.78814e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.78814e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.78814e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.78814e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.78814e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.78814e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.78814e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 2.38419e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 2.38419e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 2.38419e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 2.38419e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 2.38419e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 2.38419e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 2.38419e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 + + + + + + + + LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR + + + + + + + + + + + + + + + + + + 0.04166662 0.08333331 0.125 0.1666666 0.2083333 0.25 0.2916666 0.3333333 0.375 0.4166666 0.4583333 0.5 0.5416667 0.5833333 0.625 0.6666667 0.7083333 0.75 0.7916667 0.8333333 0.875 0.9166667 0.9583333 1 1.041667 1.083333 1.125 1.166667 1.208333 1.25 + + + + + + + + 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0.040625 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0.1 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0.121875 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0.125 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0.128125 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0.15 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0.246175 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0.4424 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0.712725 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 1.0312 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 1.371875 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 1.7088 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 2.016025 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 2.2676 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 2.437575 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 2.5 0 1 0 0 0 0 1 0 0 0 0 1 + + + + + + + + LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR + + + + + + + + + + + + + + + + + + 0.04166662 0.08333331 0.125 0.1666666 0.2083333 0.25 0.2916666 0.3333333 0.375 0.4166666 0.4583333 0.5 0.5416667 0.5833333 0.625 0.6666667 0.7083333 0.75 0.7916667 0.8333333 0.875 0.9166667 0.9583333 1 1.041667 1.083333 1.125 1.166667 1.208333 1.25 + + + + + + + + 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 -0.040625 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 -0.1 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 -0.121875 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 -0.125 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 -0.128125 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 -0.15 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 -0.246175 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 -0.4424 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 -0.712725 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 -1.0312 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 -1.371875 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 -1.7088 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 -2.016025 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 -2.2676 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 -2.437575 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 -2.5 0 1 0 0 0 0 1 0 0 0 0 1 + + + + + + + + LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR + + + + + + + + + + + + + + + + + + 0.04166662 0.08333331 0.125 0.1666666 0.2083333 0.25 0.2916666 0.3333333 0.375 0.4166666 0.4583333 0.5 0.5416667 0.5833333 0.625 0.6666667 0.7083333 0.75 0.7916667 0.8333333 0.875 0.9166667 0.9583333 1 1.041667 1.083333 1.125 1.166667 1.208333 1.25 + + + + + + + + 7.54979e-8 -1 0 1.82539e-7 1 7.54979e-8 0 1.75 0 0 1 0.01755606 0 0 0 1 0.08690225 -0.9962168 0 1.82539e-7 0.9962168 0.08690225 0 1.75 0 0 1 0.01755606 0 0 0 1 0.3064026 -0.951902 0 1.82539e-7 0.951902 0.3064026 0 1.75 0 0 1 0.01755606 0 0 0 1 0.5796046 -0.8148978 0 1.82539e-7 0.8148978 0.5796046 0 1.75 0 0 1 0.01755606 0 0 0 1 0.8148978 -0.5796046 0 1.82539e-7 0.5796046 0.8148978 0 1.75 0 0 1 0.01755606 0 0 0 1 0.951902 -0.3064026 0 1.82539e-7 0.3064026 0.951902 0 1.75 0 0 1 0.01755606 0 0 0 1 0.9962168 -0.08690242 0 1.82539e-7 0.08690242 0.9962168 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.82539e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.82539e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.82539e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.82539e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.82539e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.82539e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.82539e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.82539e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.86265e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.78814e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.78814e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.78814e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.78814e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.78814e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.78814e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 1.78814e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 2.38419e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 2.38419e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 2.38419e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 2.38419e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 2.38419e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 2.38419e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 1 1.19209e-7 0 2.38419e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 + + + + + + + + LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR + + + + + + + + + + + + + + + + + + + 1 0 0 -2.5 0 1 0 0 0 0 1 0 0 0 0 1 + + + + + + + + + + + 1 1.19209e-7 0 2.38419e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 + + + + + + + + + + + + + 1 0 0 2.5 0 1 0 0 0 0 1 0 0 0 0 1 + + + + + + + + + + + 1 1.19209e-7 0 2.38419e-7 -1.19209e-7 1 0 1.75 0 0 1 0.01755606 0 0 0 1 + + + + + + + + + + + + 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 + + + + + + + + + + + + + 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/assets/hbm/sounds.json b/src/main/resources/assets/hbm/sounds.json index 4a0266d81..189483beb 100644 --- a/src/main/resources/assets/hbm/sounds.json +++ b/src/main/resources/assets/hbm/sounds.json @@ -59,6 +59,9 @@ "door.wghStart": {"category": "block", "sounds": [{"name": "block/door/wgh_start", "stream": true}]}, "door.wghStop": {"category": "block", "sounds": [{"name": "block/door/wgh_stop", "stream": true}]}, "door.alarm6": {"category": "block", "sounds": [{"name": "block/door/alarm6", "stream": true}]}, + "door.sliding_door_shut": {"category": "block", "sounds": [{"name": "block/door/sliding_door_shut", "stream": false}]}, + "door.sliding_door_opened": {"category": "block", "sounds": [{"name": "block/door/sliding_door_opened", "stream": false}]}, + "door.sliding_door_opening": {"category": "block", "sounds": [{"name": "block/door/sliding_door_opening", "stream": false}]}, "item.techBleep": {"category": "player", "sounds": [{"name": "tool/techBleep", "stream": false}]}, "item.techBoop": {"category": "player", "sounds": [{"name": "tool/techBoop", "stream": false}]}, diff --git a/src/main/resources/assets/hbm/sounds/block/door/sliding_door_opened.ogg b/src/main/resources/assets/hbm/sounds/block/door/sliding_door_opened.ogg new file mode 100644 index 0000000000000000000000000000000000000000..4e9f5cd4e259c862f970205b972dc11682706de7 GIT binary patch literal 13499 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/sounds/block/door/sliding_door_opening.ogg b/src/main/resources/assets/hbm/sounds/block/door/sliding_door_opening.ogg new file mode 100644 index 0000000000000000000000000000000000000000..ded65d1a19fa48153dacf37de42a88fb0c119984 GIT binary patch literal 14886 zcmaia1z1&Iv-hDpq@+1Chwes7>QHj%?k;IX>5%RYX^@m|5Jb8`4h_;R2neEp-$wuM zec$hX-*fMN7VBAi%~~^SW_~k!_U5SD+G>IjLH}GWihl_Is1dwf-7V}r9;OhU zR{gWY2jS146+!)B=YL%fJ0B<|}4D^M^fH z3CzpQ!^_Rf%?D;tcXqLV?r!a2?cxb};EjOtcPm6jRtEuu4$SbVfcpcd60|`ed=SWt z0fL)sqXa2QDPVb-k)rr8>gSHkNQvwxwT$5z_*Vz!w;~3CkU@bg7;#0rN)8huwxrB) z?)f72YQkk;v?z@)A{ZaPGg-QnHkLZNOh6dXar99@fL){%X~T$M51mB>Z8#~=y`gj; zqAkmD$7Fq%AB@R61P)Q*Jt$6A6FqoW6eoJf(l{l9#nCteRpFV_v8?GrHGb_eA+neA zPlxeG4=`{R8B{VWd>Qly_7RZM40nLlU$wxXKtN59LL!k;9nokV<@hv%`Z>D>p};hs zoTiqlHgI_v>v~(ydwb1$`{`$d8MgZAw}u%mgc)ClnUjY9(|-7^Uq7@zs)G?g`Sc=b zTaZFJ^1@A#LZr~}DnyXggGs;`Npz5;BBfFrhZ_6rX1mH}=h1rh(R%DZO8}oDKb!`X zZ=Y5A|1=x@H0%GpN!bmtf}{Xj4!Thex-rPX7zW+h(f(L?2n6_43dY{=&adFXKj9e#K_Dp}%6>P>VZa(Nj#+mBT@Q(Q57l|V6b}~ppRb@lcmWil z&9zB$2t?;gF#ltgK!7c20lF;qUrE4%h=Of!)>PKTxCn06PJTI2_H1vYRyK26c}Dgh z4?0bdZ2`W7jAZubXHI2#OekSzmHZvOB*;dqE}sGB$o6t@2guBUb@nq^XyuD~z+U~S ztlf8QM8GIAC7ZdaP3teee_&B=k~7gOvH|RfT*`KA!!QO$H&!`c$1xt}{yTi60Kb_p zkPhSqgZ<)AEr@7KX_Kiv<8hPod4?dx)Uk2$(DIOHFf!&6&)`3rgF&EB{68rESN8|X ze^FeV6vaBi(lEw5%Kp$*^-YK#)%M}bV)FnfW)}cZ9NV<})}uy5(XpfnZopQO0)s+I z{zeqwRIpWoG%DGjAPLWKAAytsQSqOSJ7bu9L^b^%ZSotX1_2|`rg=Fu`6RTpv~|6m z_0zqUTf&SNyw>Oa*5_kQABX>UVEtF*fPkP0{S%WZ7BM`7IU#B?7=Io7ugGyD8cd`d zPGnH7XHcDCA3x_;zu=!Hl+)l>)g(5aCia>ovDOqco)xg3)wZ7Vwq9(uHf-_JZ~iA> z{)Wx^yw`t3&O?aMiNtLwCL#Yja`IW?HihHpm690rlbBwn*+yoSXTCisFU0(Bkz*HC zmJwAJ5w#Z)#}b)lADLCrR_HWRbJYI7w*QJ81$PFZ0g)r;&hQ_R)5Ak43q(^ryXwVX z9VMm#gL=w6{!a&hKs^cA%75~R28?44CNKx%(AJXppCbmK&he|x@&krV1%b#wAbP;b zq4-hm2{JAcdgwg63@8O6s0E)$L(A~_utjj_JQJjuC0dh2`mis)z*vZ%s)WQc3dMnO zK9(9O?Fgd-X%88s0Rjc`4Doy-b)Qfg&VM?=gOQsuB*I*hJfj5RNF(KgFqRTnZsios zC=C~l4b#cz&!}Sp9~AXl^h748T92j!(=kQG7+OP zq1+^q^*o{Kd@BDqzkr68_9&tDoR;=7iK=!pqbi}Q>ZO)8p`13c_H3G}c9ZiYzxAS) z_9}_?T(k8uiN9`|*E*l7K5z>Ms9y7Fex`6|42B?~z>& zxV3qU*E)-Rmc2vayNWE9ii+}zX6K5UYQw_)io%MKdfSScs*(Ell{HRB0JY{_MLl~( z1$$+E)vpTnqvm%N?bRdowb?b5N6n{Lee6f=&ns$bD(jCQsO{B918zs{+^(_QZ!Bf{V3yP-#8Xp#797&!7&pDW6#f zz*=!iLpjL=P&-J<3=FNHw7#ONFdEpyi{W(>2la8Z9^#CB8v4m6^TGvG4=)$v0 z4z;g-5MJI-Vi*Sq*K`ypg*!YD44oz5Ssu`8_-9xwK(KV~n#+21`Y+8b95@Ex7S#{J zS?f}h0O7k!1~DQjGZp}=Bv=fv!_cX%G|d4ZWWl1Fc9%Sy1g<_CR6WR02A&We@onFA zfUFaU1db-&xpesq4c_6@` z2Vh_hQsVhQNP%I3K&;P!il|n@$|E>2AIO=ApqCFh6DopMkRlHm0H-9u0C9jyu&syIGDB4|=oABJrUwkh%2<;2kUBmaKsf;3XpALrm;)e16uqSJ^Mj}bX+=m0+#s3*2stQl zYY`(54g;3-FIZIZ6wknb_$0Ng0s_du5jeUd2c!vZ5z_?NAIK1Ji)aD30T$?s%X3hm zVy#e!Mi_q!xIbVFB>+mf6oB*JxfB9G#-H*o1@?eQ zz%&npKT!QM!k~RH*Pq3-fA>Drf&fI390P@cZ36dfo_V(^T6 zRg?D^@J0zn2XW)m@&!pD5Rnc6f&gVBoKb+5O!jO z9yS4CMNpxIC`ix9YzQq7J2tj48f%}o2gP{B3mghYrj6)FAW8@fA#{1MiKE`yiyFBaV;&9{f67UlrB@rYOrU38-fxaLF;(-DgP$D8CY~qUgwvZT} zT7?#W+D2ylLw@Mc(f_`xApaTveL?P#`%8X!L4FW(ysmal#>KRnCp~95Q%2R7TGaf9G~@RK#$LmAXAb)a#(P(WiI0lJDCAc{m>2@POrO2hI2r zHmDfI=Q`BVW}LXqe;wC8^JYW#C#g`({=UaE!sxp7Qjsygox7-lP2*KHf2Le}b6bLy z6K_R+V}tnUJ4H z)5G}6_Gf}2L#zEKO?vg8TyLD<{nMMz$u6%;4A4FwjNluEk(arq&T-$0Dn7lSK->OyE58gebXQRi`#MWz_v|xr*izEogq$9h{^Z>Io)v67 z?RGjE9``qg?DfL;$-1VPLamcS_!7X$Yn@)gu8vA{xlJ!K3yQ4rzWl6( z)>Lj!7VCIDRgcMca)}|J|8h5HG!A5*V=<)JptI4#V>Hk$mnuP%`TmC&rWn~@P_M1u zB~0H))ydLa-U&6*G<3V^8C8||A!YocXCgRd2J#vxAc+?bs z3i~>QD?da2c(!=BY>;YBYYKC5-=Y^R^S#GLU zl%$kc`E%Cfkt$DcsODSA`|(>{>FdB$3h3b+Ow_jtVgE5hLz@ zLHG22EfpQVQy}oQIqga^##$tUG?GJbROD$RY}*>KbOSSecFDB~9;Nbo?@N$!Kmhd* z*TdWSX5r^OOn$ywi+8uqi;n7rws9*%CtcW4iai`#Q2LLhNZ$RLGA&DoVu!U-G}Og! zm=q$Ewl=fU`WMJPgtQ2J8vBr9x5F!h)o~^9LxjC!5gJI4Q#e`RSclxRW?bIJ)rM31 zA*Q>7XU0bZbC=iaviVlbGtvIzt`eWlaeclI%E7#3Sts)_iICNYm8~egs2>r6&#j8B&P_CbvH=w_6v>-P-G)gN0=I6P3=VCGgAG? zPkfQxk(ZDIPfN3yFnff{Sw)zpEuBjo4JYuhMfv%e{d^7Y$Fr})@v7o>{pWSNhk`D= zVhbFIZDQjkRuSH$lSC?h5l*gceD^sMYcy5@qu|t7P z7B>^iB9tRu=KSuy9)e_I}FPJ?>Q~rT`52M z4$+KbRuh`fUE}{)v2EsZ*nRaBnaXZn`db#%S38faX02(QoT!bT#IjTK+TmcTc%8Rz z>v7-Clb9yzt_x02uQ9~Ifo%>>BTr`qW+IKkB@z`yDFrnD5i6MJf;XovTpLmlIO z4>ZsO)ePl~uq?MKBT=~amjoI2&(agTfLmW-vEIYo7XczKzq~Xib>jE3n$5i>x7;bj zZJ=hB$8AV``(!Zp(m<|fZ1YU#TPJ~yeis3v{mT$RkMF-Gqm)g4X&DAq6EiY03Ylt< ze@@CoXX2)K^5W?A#tE^3Q>iB{Z=q+~Z!KB3*HmbC1d=pHCC=$R%SCz0ztjqfpSj_E z>{%_*hn}pmG7^_#H7b8^mmP(5=wyyL^4%3j$FOE3D^$9kcbQy?fsvSSe8vf>x%IJ+Nu_Nsj4uLz;2S3}S zcH;Ax{q>`z(kd{sLA`E;B_*?y$wauY`z&jwZ4L(i03($RRqfOM+_IyVn5omO*=aX; z9JNqFb*4m9+_YTmkKHF!-)sd2Tgr=5We*I)f}N7d-z zKE@nb3UB8S5o050$nxG`1QWFH#Tc)jeXZ_KQsS0uQ8o8+66x-6PVdr3pRJg{9*jr& z8eZ(9!V!DNOXjP9B~3kbK7m5cCy&|7|LfD5epD-kU<^7Uy+_3r7;_4NIt$qhQ5ZCp zOZOPG&t4wPpEI!;I-`5@WpoZ%4?u*K5>{dSL$a979NSm zdHqg_GQxQoNk;7YYj zM9y#a6}y&et-JWGy1RBPah{%$o%*wTF+Eqeh8`z6zhJ-FD1sIoHE3x*Cc zxUWU9+xLR((fREyA&whW{AkIf3lv!#rLHXd8`RVJu-&>^HpQc@j)Az6oGh@oRf3lJ^z-2ly^T%GYU>jn?-iB85GAIfnVx$HyKnwBfK!PZ&3GH?LoQyq{;@R8W?F_OYSiX;*N?eB%>^#`4r7 zF>-nOW7o2a_WQ+; z+xrHt?%F2?g3bmX>o(Tzp7uYwrcu)Ue(L_KzLdjIQpXM) zW9kU)y~%w;5@+F%u5_8;x2Kl`AJ&!;TjzYcIwFoKFDoAXn)-SV1@vUZ%Ib{^wGq12 z4Efjg%~6i^T8t{s9BD-9NSfTpPn3M&rB6Kl9ZyH%-YUc-m$tm997nUfVG2;Vwqltfuo)?iWtB z?r$@J?|wY?OGE7*-X40S<%(a|y*mDu;$GPeZPe9y1NK z=jqN(O*ga8&n>20=gi~b?Ovz2goVBH-bD*U;qPDZ>$6a7bKUn_1!I*_BuCpj+8OP_ zV=VYzED@$f6C5&P-Wj4=D|^Gm%xMShx~eex7jLUXKVXD~(!7bWrysAUu#7T!M;&hk zj|2tZO5xqhsy_Lkj4s`&qweRThF7n4r0t#^nr8AW;St9m0kGs1QgLQGbSrbG%lhKy2rG34#|#Gy>Gn_&5U^6q`d|msOkk;ji1ujSHUk+){3{t z6DtbHZjDNss$2&#M;OyNbq(+6iGFuGb1Nn^#iaK3lHevu7<8Smn>VSO-;w0EIlZMT zqB4puXm*?v@b<3y1+Efz;L?x8CrU%{1|Q#)pI|wfOZ-f-s$hR-=$YX+3;oOkY5!Sp zjCzeSB8Gk~w3YkWBfWWIDsSFF0E=Sff((hNs|Q=RCaXq-Z4GnIGY*jqzd(Y-yGxmb zW`PCFj-w*uUYJTt#iuBi+u9`hO5E?smACoJFRQEX;dweX5|dEM$z)YW2Zw9URF!`I zmkq)>7F-6ZtFMNtZj6e23_~%AwmW>D69@P2^`Wzv84cfY;nDA0=$- z=%240iU0oEfdmY%Ic`k}S9aDnmv$D`*7r8o7Pr^tPQJ|hi}u^82RRKT^an)fknq*2 zfqI~58)nb9ciase`-n;wCuU{ekJF6g%Dk=hxe#gRU_EiPnlT!AnxZiueV6}5Nm`E= zk{&f}oh<1$C#o+cLdIu2uH4El(NbWrjaa9^(ZrDT+A@om_9(R1))OB`7S7Czm8~O3 zPx!dYm3Vw<=f=Eb=7uerz}@`&@Pdoou2~XB@*CIv#1a|M5_{9rbKkqSP9=g&jV<HcSm zOV}CO&_dUnFO>O=wLejrq}fkGxGiWP0 zlEYR&ztHg%+`5#IiI@d=BagciLsU?h`B%!-Y$%BW9OZ;WKlgpvea&aa%DyB93Z!I! z?;5?&_EmW&ebDXA1Vz=%%&&od6|gPc4(5{bQB<^pUBCRj*)KclHyRMwHvj2EP`}9+ zUu|ST+lff{1^=w!)DiNhaRQJDIq~!01W6rO82KTFTsj51Cr<5iDPg3kAB>}FP#zQ! z;x>iFw{M)AjJC;Fgilmw;O+KHrUFZ%bL{#?Z%bxkMsyl#LSa&=&0bwd)3AK*lxd|Ba^=S!(KgsnJS2kZoczt%QWsDU<$1Ur4NLi66JBD6B}Osm z0yJj`N{RlIlu2fh6nh3YiPyZSglp|Aqg^@8qQz1`LOil6UVWG24z}c+HV(cq4Mdwr4aux$OF*IQ8IWKsJ2b*H0 zd0l%%iI$TSKaPu$s3`1kz^^!FB-iJT!rH)2sv;SZ(ItQHP&Wh}l_0FKiQs%w6Em-@4jrBL}PZmTl$nyL44D5*plsoK&nJkW&cu!W1{bfU;a7%r2Has(^SOBB% z%N3q%&Xb@-@|-@+$?$AL;2)O$+8giY$Hi_W6`fPvfAO~<|4P~~Wa!QWz7gx@k*VJVq!7nna@h34*I=4C-_%{i4)#+D+ zxbxU`k{GWKcf9zy6AfCax<;v@dG!X`cne=iyY&$>^bIkTS9|k*WHaILvnC>mg0v14 z8=*Kor(US3o&l}>{OlR?n1{C3=5{d6*-Z<94JBryxiETKxcA-XzMBD>ysxF5L-$QT zLoR;%sZCIv7;v8QXMVJkugw0Y(BX*LTJ!nD^XwVj_g?lFGU~|(Fl)(vfkJEI*FJIa zSTh11Lq0o(>=9v7>?+a{a<&4`>UZul)1`*oBgVGX=oNDse({CD-seA})zv{mB(VO` zCIM?KZYvZWz#QzH*=i8mN_t<2HfQ(Z>nH&iy06Qz>8<>`{oZh{6*4|5*pS-a^lvRCXPV!TD6Xo+HlAfWRqaf%ltAH=!PG3ky+ezP7O-@m_ zz&ZvY=eEEL37ds4AwB_|3v^9m#qmY)CO6lnIe{9vF=C0quppd}kBtp4~&DeQ5SL|(y=!E_E-_B1Y!h@!Q^$Mv)jW+G}kZ{{tIV*>uI zlQMj}BkK?|I>Snz^%;vl$#Nk+Aw^R8*3}p48%%=lg_lH!VYc0OIy8aznxv~pnG8)!r-Y7Pr{DvwFGbF2eMFoA$pQ%;5!G^Vk0e_On;fk~jw?1=DqAwy z0B2klax4r)eMpp#u!&;zZusiaB}!Xlqc0l^zOrC@2FI~CPfI~Ok1>UVK4(m@WBCXp zQGzRvoBUb)kK2s*Grp~^0UO~XUd)_As3UUj-g^9j#v!Nn(;sUdZ69|ge@(JPT=FA& z5)C4Yb#h!B!uECZGZ1Nt^vCzjBYP#ji1b9pZxxLw|GdQ^xK-0EfZZ?DE%q$H&hPAA z$;gj0EGK7mVapZb)U_t&KsjAwnInGL39D?DM%n!YM(fO=Yodh8;z^A#S42XtJrj40 z@92*=Ri=NDuX0f?E5d~GPJ<`C8qPpZmiV6rZI(z6G%<;1qhaUA8iI_&lxv=P*PEdT z{ORtBM`-qOM_0I#NT{<)9|rNA_Yr4#uZsN7YUC2_&5yE+t+zv@nNa+R zZSvKyc$A9vWhy9jn7#>TCH!EXkyXimGJ*Qp)$Lc$`2^n09otLV<``xSBsw-~&|A#Z zszEIKh{z@;3G4Ntw}Ev>25qTLS2%paXF}$`FV%*Ge$78;RrTxI@pP1Q%)S$F5mh$Q zb4K-eP19Dxkf74+wmZKZ_0r@kj+>gLHxmZE254>rR?J9pp zkgaGrNsu&Ta?aMY2$v-SJ!yYx7G@HSO6A#-*MN?}w1K%dI!U2wl{EdKLiKm4QI|iX zrDa>d6UWi*538=8&D+7IFMVjA{A&3&@%pNap^JDW)}fRZ!@x&kYpruZeukQc#TiYq zxPPT#@iMgIasBl*S&JajwhT&F(^&5CGZse9;+Fzp2PAl?!N|w*TDpD0E;UZ1JXC!qsyu%qg|N!u-oP^XN3+sgG6+ z`2a45>G3L#na($ZjKMiX@BN!DRjugYANTuow}SVpNKe{{YJ&!QWjcwbsn|wmVYvIM zth$`EnDLo)Sr^BSsuSV{_uIcSPY*gX$~pstu76y*=Q-#@8u~lGlvN;D@Z6;+eG?_T zar(i*PId8m-FU^OktH}LOPo-ECSzmhi6tG^SgG9S05I#P!c(Olo0DYEvfL54 zRql_UY^&81`LWk%s!BDQDQ^YeRqN@NXd4E+(kPTU%B9iiVG3(W1zNJ>YpxOcLMPqI?-L0(90 zd+<Onv|x2 zS2To$wxBwW0oC~wwqiFHUOIN&SVd4ZZ#ogzFFIW+Jj@%`0KH^FsZhJ%0G-Y7((n}CmjvXNt+e-W0*SR31-_D(*t8ysi}FpnRlUx2Ks(=@PeA_cW3!`{ex(9-{oSg3vPrR|71RM8RyL zAXI3o;z3qhvqWp(vFBWl88pu%~7FU=RLoG%o>p-Vfi(Xe^BB6ic z%zJqzSCB~y*`exW*Tq@7r@!qWNqujT}buKN#rOv#+YGd16vM;^A7Au`sF*aaDi->L^Gb~l+`1&?nDN)6|!i& zI#F_r`^uuLrXRKqA-p$HNe>Jt!P8*`rC%v$4=mDpOule3v`&}|u0_J4Cwv;yPwUp} zNh@sr%$ffx`=fcys&nAfh9TCgXg=qO`+L0+lV*J@XLgz=6`nmHx4?+y+>H{^dVRDQ z`&QL~eIxs7mLprTmh=0UU(Q0hclKfp<8hZ3CO%(=<(j)}TMI-xR8z(i^Sz37h94f4 zDQ9Pdpi<=#Xse8!R(#66IZO!kw27bL*0KA&Eh>Mv61QEMRgQG&h0UwQX3_xHKkZSg~w}1aVM8ckC{y2(ncemt@{?bgvY=K@x&U$(9mnM-e% ze|Rle?3JE`R31F*NV(g7nmbQssz7b5OV`uwHe}`eW9u`f{|#=kY_rn=xfiA*&cY)i z`yHOW_kB~vV>jCA@y&T-;s;@J`Fl%~t# zI^*y~^eO|NFtxOB(}i}mSe+o??>(jV{75Wy4uDKj1??7uRy`#7G5>t}qv0I3(Q6(4 zH!85eR4T+$-<1ZxkE7jJ7gfE~P2avM?;X!@+Kb~;ulS~s(Xixk__}KiHqvB4%-w_cwXN%Mj7|4@@@b_ZgYc*TMvRrB^ad~{ z?q1PKG0E5+0uE}%3`eiNItB1*L)f%F6 zR;W_iJ%c9r5ncMXYgADCkIZU(Dtu4zP!gg7Ct7@jbUAUt$t%kSBMQ&knCE45a}IrZ zs>gf+*y>KUv?A+lsu4TZH$d!Rrh>IG`0D|wyUrYOo=EHzn;!QGAaX#?StLmTW+y9hS~~ zbV_^rL8IITvOkiY01u(lj1D?oH;Fq-2a!B39@bqn$%wTW<2cKt>SN(<50%$u9}z(& zN>%m!LD*5~CpY>n5L84ha+AQ|DhZBPQ4n0}4?hlO)^v4o{W5p2j*{OTU;m8$^yV^_ zgO^XNM(2>OMm6PpJEdhn#xnY%<3$#hZHJF8tK0LpkNZRrUMZ~Ai#iHeg+WJ2NAk$O z!iW3J`O1V7G1Py02;MbjeX+L`=9`!cJ1$a{=y)!4mD^IL|K9MYlJb;8(}fwv-a+u{$%zdHc!?$rg5)1s& z`^yt7MKeCS5?~6ofqaB+1^(KxN7yq2igu@Zd*p;umEP1~r4jT!4YSkKE~i`b-{(OA zNkR>{5}5%*^5e2?6cmmQnIe$*XR%tRl5mT ztX{oei8y0g?T;kI;vblWq10g>({FE6Kx6NB>^nL=JU`|{n-m8<%^FZ%p;$>L?klGk zsFczf!L6%|0TD$jxQ(MzfSxGE6rwUG@LpZ#a}nTw@kA(piT|UN4w9@w`;y8-vsLV7 zih!O#tW<$(x0}&aEOR%5=XTAhku?$a-dp6ofUlaHb=;KC0z!kotCa=Uh>y(pFq>cb zMi;iMXne}{^lgUK1Rjpk;#g~6;=YRDO@(nk1ixEUb8QMhW*A+QdfJNkAEicsz1eoB|vTRtA8!! zLFTMxo^8O(w}}!ZRx~U7gdNRFF)~jz6gF)Kr}v{J&pcm;dG`%aR??>lG8`MUzS+Hf zWSV&W%&{Z+C``zhN6e&eUO45n_!9O=45tb0>wQ1ARICZkf+S;1WAZr;F`3R2D_Fznw&h;j6tA#1xh#QASqsxlttb;9XS@xzIH=!oUNxyG#U5ZJm>l^6~FGA z-DiSa;=lH8;CqXe9Hig1Y#k6Zbm_hhIvcX=zhS1xj#QIq5GGv_ z9p&9o`thNNM$L^PUTh@EKN(`!+M&UyEDH(zP6l1``y{~~A#XBC_vm~hcC->%Nkm^Y zf_%LMv#ZQOgGi-SN4IEx7kyq`V(oT^hbv6-A9s#mMKsK^W?RDa)ynqjNa zZLxhvsXt;6@X2~2Bb)XJhb(QuAXrrC;OKkPPZ9^o+-TAE?Ox*yJ|aA-Z|51$c6=W7 znOv$X^Wp`Yos})7Q@pj%gVMzh@+vH8X&}E;l}YMuGV_^rL>ADoWl>S^34_yPF3EBZ zaZaUtS?l2ZPQdx2p1#Zv3&~b7m@cBI*DCD<;a*o5gOk!h-CVENVM%A1`lBR8VELLw<;1z#%?2o$@{>$b!2u%J_PJ%C@%2f(C$PXL! zz58|3ser(+uuTVDjF=v$D;vLZda-tgMpqKe}h( z{hYQA@2*E|HZ1H6#Y_b$UdUEMR@T1McYH$i%pJ46j$gqSf;OEeAB~wgh1rWAt#;lW zwpPQYCS}%|D6;P6>6>s&Y*d^MCk|Z z8BxK~cPq5s{X>^zL(b6D=1Ewl)6@3CMewy*fr^xsnNxgSJo2@n{Zb$UY~-I(M3ZX<`t;#k%E+YieCp2eV)5?HD`D}wo65|0Rh;9a zR_zn&Lzp`Hl0`7#ns@4>UJuDg|%moh?T7%O)^-|B_+8E1MQa?caYG{Mn)Ka<`)ZM k`||`HcVpD(zXNdU42=-L~q$dtW`e}(ZUK5y?4TDS-pf5y+;Jm zCCVy62tpEkFL|El`~3d+y}t9B9cSjudC!?MXYM)o(syw&0*HZsm2dWc3F@W#E+Td! zp9fy{Zs@ZiBGvN098VgebE1(*|4i~fyUfir=p%6{}=SYYsEM!Tv=Tj)9N@RMdmee6jn2WL>Eq33la3MbTGeO|@S#WexI!0@u#L;6eSa*hB% zmMeoTGQ$?RVhNG4WML8I#6U0rkb=ud-Z4_pNK_p*Mo!eDrvIy2COcg{7YA(!`RL|c zdNERz#eDVs}`OL*!bLwzQ9wD9N5pcf01}6rT$T-945t{#Q>?1iN zn7#U7FLOiS0;MJS&&2zMY6i|5xo_n))bf|bIv{rhD>@KHD5-HXk1bh3dT6bQg-1ml z0uC!mL{OaDj{~&5%EhaWafWBe_K~ocnO+nEC4bGyadtESpufvHLc{jIb%%AB25LwP zR^d@`sZk>}B*tkX8DriMWcfMV`e)EASPwCFX30+G|4;q9b@1wOfX@DRBd{)J^nmOt zPa@>s+XN33@TAu`_cyI-9_^1jgCB+Te@N=nDH_tNjY=X%7_1GYQHD32My0HcZdxNv zP^QT!%X-XoiqrJZp!xr*)|bw=NDBaR@!YU@E?E4cOe~LuthN5hLp1Hq$)0Eu(!246n2E^E6OkD8ZI|3}HcdmN!t1PyBH{r92quLA&p z%e}AY`$t%HX`y2XVWg4p7(#8#2>E{%-BC$hI?%A>XBYM@YuJ!*Nt_nBa4MF+gJ%_? zdGfTjs^~N5HnP7LFzlcRUnyrZ50gDHPfJ@+yGVeni1CbIv06c*pC}81<_Cqj2 z9HLKbg%yF7eVJ)AB+H+b*eA=Il|TzC%5(s^nTbPM%b5uuwfI5*cuNHSRQM$w)c^<| zu;9r$m>{W357nhp)2Fu{qf;A8k{pzjGBif&((8^HBh49g$C9AB61uwdNFzEmBm>eY zSr?h)G%SglG)B%cB9RSFmIt7pVCE%sCmE4rv4=7 z^BMBQ7zXKsu^mUvr(mqjc+a)6MuJ*Nfykg%C=kl@UpgZv_c3D_lr^2K<0GRYd0 zolkN)*ZGWVguz(Xqa0FEmP~q}&LGz=$$B;gGtGS8`e)3bBx>5*+FIJ$bOL299brBZ zWNVDHHFcVlHZeZ{?;##D&#aCd!x;I5+hUw-8!@)#_pJ%9>tpWy?i1T+llY_VZ7Y*J zRu8MXPuX6+ark~qsO7t$;%F^q6p5KNwzf?{Szf(wt#J-&eyD4D5N?jD%{5E_S$gps|l2ZJ9h9D=|yhsMeBK^^qqFle0t+?~b&BG6svIHW~h zR7($cgC%~nfI;gG;L#Oz7DgWU2!sV?QLP!=O{~tu!K0!pQj9zejSwdkCL$~Zi)xc) zHHy%2h)bMB@rY<>5wjqn(D8%e8b_fqBC52I-hm(56_0oZEn>063O6vLsX-`26dq(m z!@3zAhG-lNKqzo=SW&GB+`Ym}4-P^NC~JXG+FCH@A+2?e!cWQ?XHZ%&P^)_&l(v>w zJu~_~teyq#210pg!MZ>w;rbalvWjqH`^!ZgpX~>l>P$S&7cYkvP1%>%fs0cWb(kSa z&m_w56U+{SuzD+_XsHI~z)Il;8#MK;IukS&Ho@qyCDy>hXH^j2#ZYp8q03J3+O&-AEl zotOy`0)V^cS1wH4z_kYsa8Lk%XoMJnLy`iFVu=^Q+nEqAdx@dytwMljYdfD!s`XmQ6^AUvX+6hIIGmt!5wvt810?)|Y)|7?C- zaoKu3w|O=n7Kg*tqx`dB;NRxTO3U++=E|~-Y`60fp^Y|B3Wuu{>~DL3!+}p)Fs=BW zfm?3|N2)g|%QpI|g{JH8Uu$1)1~ZO&)JES!aMJHKJgY{1Sb64RV5m53r zVvI%)+eJ)y_9%1&RqWz$gdlo2!oYY63rj?RA?YG301)f&lboxa4?gp`%In5094f#j z`i%0Z07K?^-2DGGL;!-08bDmR=?WL3{%c2uGdseHSwk<&wI`xKXz@dfK(l6s#v|ZK zXaroVv~K*&ThFZL3_-XFcd>X3a)1_nCUyY&k8qa-dRP(k`RKaw88p~s4IEY`OF)#> zt+0ksEA9|Ppk{Ke`T$C zXOqwJS0W(z0yP+FZkES-A|x5j&Rpp%PYjvz5)zZplwA?JNy>Sl38@L|taVnuy4;AQ z;4GAM)Dv?o?65$Wf+qlkfa07)z(q0&XCU|;(R%{NDk)j)O#o1i9DqbcgfD#0rRCr% zCJyc(4YvYHUNvgAGzN>1SbgXOgFTrFB*ctWiHKZA=1Tl`317(syr zB4D8r;NnVe@A>d~VfFhVKn?~*urLFM03f3p92vPHDlU0bMo!_Dk_zY(e@k$1@HwFb zw!y)F-%H+Fo(}q5T*CZ~tS|wN>zwQyg0R|(cW=tGaCv2~aoHthmF2jC z^1O4Uz{ zB&tPu@Ah)U>ykHDC@XPQ!^eg)7%z(-UwFA081%OuYg>pBeY`YS(7gPPnv1dRwDX3D zT=Amd@SIT1ZhOLjPSjQRE~og&j#Qx|TjWdg@(ITvpYlP~MV4eYY^|x3xmD27lLLF+ zlgY|s?Lm&1ZgVxl>XR11#lS214EUcpo=%Vw@er8C@0fck`YoJ~C=5`Ci<@cQ&Z$In`={%YSb}9s5olKMOVy`0-qbl_usp@ z*)SaZD2Y&m+I3bOY%#Vye|i|qPh*Vawa@)W{wgG?vTOWqy&L;1b%BK|V;}cDrx|`r zeqvSKd)!SLdc>ryl9k9J!yi8&@SAko_=zs*IElnoA9=EJ2fts&#{X#4Qsz!S+whS$R zXXD7?XEw=DkJ!zB9>69vW#}Fo&u38s3c3La9o^_57>tUF>|}g9O+xyLSP8o&zs>C7 zYFAUGLLf53SXzLmIhV=`d0<3t#$c4elhq^^aU6?wo%H;4Qc@qC68d`At9!#i&jH^l zmhMOtfUWaXxx7hY5n{0()HRPBc2Q`Xt5}SQ5hfukDUIiG&eYIUxNIKr=1oASUxG24 z8!w8O?1%@B6S_PdxLGaK=aDE{d9WPW%>MCJ&p#X)Lk(X7ucfj3-VY$#bCz~{_!R7tMtJES4>&#zC}C{MNUQfT12*!v_`dXi*2? z2(x+4qPxE9OeV88uHuR#q&r-!lasP4QqZ z1zch%o0%|7a2tE^DJ@Eq*4f-5p2r`x4{aDf9+r)$(Yf_hHL9(+Vt>QoS;6zlThCS_ z?Mn9CPr>{I0yANFDg8ohR}jDa(5sf)}_ z`4jGr&jcy8;cjgj!!Y}UWn9mlqn6ayqYs8FW={ks{LSXJGx#%P?RE8qxE`eNh-`{* zJ30&DF8GE*rq`cmZGFJB6(+VE(#BJnI1BweU*M&g&MlLVsIlXId zSyGLXK>b;FzP-C|ZEv;zj4<`)j!`m{=a$8nA39XwL*|%Rk=H#$vf96ME(HecG9+a# zy75_BOGs6*55L0{O4PBTRZCA1b&t8JSL1kVnN(V0*-WfkP^0DpGfF>oe#bWYaLKDP z{ysoNNRe|==bb9wnjLw_nL2LtJh;>*=f<;y#D>7{FK>CwmO*@H#aAr|+^v=(emzEs zp?JztnJ;3hn)}8nHEPLynsZmf?~zjxExd^|9GaESiJP_5qSe-%4z0H;)6&tH+D<-c ztUk52j*-=`j;B?P1*gc4C`No%VlECz1t=At}MKhfqm5|tq-EaSTU#fF@ zp|d00Bj&Yg?EbGFt2eKe1Vk#mwUyl!Rer@& z2A!)xtCF;lciz`eCk5u!X6(7S!-sZF zV5(taqi?vSd^bJ5Il=SiD%{r}xB4fVO8wYkCA%;68;@0cIxE{IB$Pze7&)WuejuXv zg*T?NXL85z`DC7!2ZY~fh-tJ+g{3uywi&KIQOziQ!`!YmPPn(NDFF&oYUE*I+Ueht z=%?IW%3EggeGjh?IG=u>>jGCW9~kb9lQZErbW@mZTc#x$IroP2Jjkq8nAbqCH^QVAMb1DyazAaViz4LW;cWL9xjNzn0pEUQ3{3)a_ zF~NpJrg8OIPy8kIGOgy&Q^*6gyMi$jbM;mmU)MibkFDRj&>EO}IP6AWs2!O|6;DhV zZ21;VdcwSKPZdNItnD4-JO%L=@2sZnOU%}m*3b!%t9`CGf8z6J@b>MKT_G1_Qc%^` z`J9`+@hDOXfbGHhzX2{xIHdNJ!Y-8J`Z`{n&)K z@BI*S+2>Bq=jWe=^7*XxBX{r`)-%;R2X{{x=<>>F2wr^Ib;BDk^_>j_7gJj$`3Ei* zUAdutArnWnzwnE}lp_EAk1Q*HJ_}YG=AuJJJtE-2=45@=er$3xek8=E8D6i-!)@u@ z>;9a5=(xykPAI2MYF?r<+vAWuYsFOT=b%Qo4ECWo?&0s2Ke2~g@FmC4d4**EFSghH zdZcX?Ul_AtNgkz)dHA)JzLfV0`Nyg?o2$8LgT;5lYcBBc#SnH0PyhZy(W1@pF4?YSa3qHd%O=9I!C ze|6|xe8i8rcddp6NNeB|&ybmPc=%RGISBzJf1$8rmNC!!!`~P`3g4Ha650_FecWwg zWpkxiTwYt(YAo5JU7~fJXN#qF`lrQFq6Wv|kgSx?Z)rEQL=l(CQ@PdtHtEK4qtb5D zXBk>Y_ANKR`pL6YTraQlH$b`fQ1o1P@Sm(SX^klg;H}ZRV`J?ug1OeI4kYrc1ss)fL&>h(eDl4HO1k09tb=q?wTk8Z(OfqU^%5|>pt!lv^^C6Ts@0V% zD;Xaf3}WUmbyCp~@fdsB7i5g@O96I%Vf!=fOdmK?Lly@G@T&aw@2-C~m( ztJ(49zuk1J!g-B>5L9YxwYa>1wHvkRN#Ps+=iMk>v&dD+&376a8}s=ji|G72LD8jr zuEgke$dL4oDq%hv*Y|p@IfRMn&`$J^N~bc?&1fT8)NDuQ=n0t^$?F~3e~^(UWhmaX)I%a=SIQg(jb z6ZV!%!1n;}-~_6NEEjXZ&x>JuAFSGn`0S2w$o+%O!}XRt=c%M*@*7t!MOOupFE|#a zzOB8Hw&4GZcS`yf>EnxBb0^z2)oqR2lm$O%8V*)FPujhUVXzd*W1T!U*_8;_?PADX z!y4_4yN0R#o%n5?6BR!n-CM`^sTuw-X6>Tn_gn5fe0{;{xLhkRzX&~*r+PH8X31`u zCb*l-pevf!h9a^RKr&`syu~NHcR4WR8Tp+0^{bj(tW?D4~w;3?4tDg%CZOD=;^l$hl zyd#RV8Xo@)a_5^Zt-baDo_!-=239;IcY-G^z;81WP>MCt6YZx#vk66PUwg$8{1w}m zo<*40M+*wX80=H4x-@-(qn^^+@IBb|~;?PKE| zfltU*>~x^B(i}{=P`FUB+u>I^tq)V3=eLm36LtPSUN{ZJ%e>N~#9q~`nR#nK!GAKfc$Mira3dlio|QOjakQ-bdb<>w|2 z^O5p`R4bljqt3Fzr6k*%THPNEet9>KHkcT#%obKWCOP@y`zXM8WY)sm*hRE09&5ie z)P-X7`SojLX3^hTXm%M9c^Pkk{L~X&P@KR)ANpSboQ+E8IW}=e<&? zijAfC#r8>R9#>y;fe?yEh)7Rpl4 zm3cg^7PGPylv)s&_Hqp?OmmfBHz4r*`pS;f@}!jxOmc4X`iZ;Nq+U|}a8=0LW}yfm zzoDtcoaz39NCOM^)OSiD#f2gx39-Pw-v?lhmu;~rdhs%Cy{A)myi5RcusWXRtB&O6 ztjJ04gA<+;OxhF^^7ZZ6rWHRHw1RB4>CS_0A#r=NPbE#8RXXkJUvHR&kh<&2@evv1 z3{RqCvznN8zA2`(X)4AP4vWc&ViAz79(PKo#f&5nJvWFEHcP0qEv z;gP$r`-SS0zT1PiL@2s7Z7Bv3;PPVlsaMjh)PD7?*j-su*Ire#knm05{1XPLtJnX2 z!XN?3QJnMA#hi-#oZJ{2zS(hWmF7_5@66L0Esz+yJR&Kh_`9lm%rT9*-BbF%P1Ei| zc?!B$sX3=7^A2{$bH`|^uI()+MhRoKU#{jxdfr_b3*Wl^cw_8O&HA{kCHFcV@>*0y zOHbla)l*wJSW>#7*TkN$#ta+%58tG&sg;`M-y7_{ux~v#r+n=6vbpApD(z(mX&Nr*KktMEl;U_xZHzsq@u`A$`xNJF=z&fz5x4#qxrp-T4a-zr5f`!!1;}}? zJK0FTez$CIoYuCAViL(R?89CuTs1e0TKRe4R!kb@Fc=v0h(YdWx<6pm6iery z^)=je;)p;ONabLtx2C#LBO1U?b?*-|jeu`km3|%Xt=(FdkUg1GX=36eNi3a1KXf~& zke;`kPLBe7{cu?t`SN-E)`rc~Ct2_7D~3;2>-bzJBnje%S4@Czc_Q`;lg|&X~k% zvQ2)ugxVK~x+d4K%)2=+%aEc=ZhAG0pP{-yz36jcC6NKna7r}yf>F3Ar_ch!U1CtZ z!O^GA9CxXP>v`EWFTc17lvJC5D_J<$$d}0`M%C|j$F-e0oDTDg& zm?9PdOr>GeZ|CKHvzl>*wN$%76W>AYb@5XpT{maS@3zOIVKxz$$HtZ-+}OM>eOe=4 s*n7w6IrWQ?GAKHndUTZb?OJHyT*uy{KstajDA|`8xT`Nu^p+R+A7kr*6951J literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/img.png b/src/main/resources/assets/hbm/textures/blocks/img.png new file mode 100644 index 0000000000000000000000000000000000000000..84ec17b11a15edbfcdf3715cf8f2aa6674dbaf60 GIT binary patch literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`37#&FAr*0ZCtTz_V8Fq8x1M8p zp+NczCNXAR7wspSUmi1AR=9J_l=SsrQstadYOuNV2Ggop0ux=ooU?CyzVhO9#!s(Z zZ|~@;VXJvFu}mSTx1ag3e+!fBy#p;O0h1hdGEOW|v?y6Eoe#8&!PC{xWt~$(69C8C BG+aC%MV)i7gt)B5xC z^T|*9j~sDv6VsS|@Z?F(Q%()){_`3#B_$;ddU?LRz0JNXQ<`mi-d(2T8iu0`tgNhT zm5Qte($8E39MTpui!lGIXKK@upW>|IVEEwSZgw7iIU9z}6PZP$84fetGYAL{W(I0p l&v=BPOZd`+^FBO03>TN`3EN!@mjOD9!PC{xWt~$(698D$OuzsD literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/sliding_blast_door_default.png b/src/main/resources/assets/hbm/textures/items/sliding_blast_door_default.png new file mode 100644 index 0000000000000000000000000000000000000000..752aa75672436eeb12f78dd792ce347535d3b891 GIT binary patch literal 246 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1quc!ER3%#}Etu+aC%MV)i7gt)B5xC z^T|*9j~sDv6VsS|@Z?F(Q%()){_`3#B_$;ddU?LRz0JNXQ<`mi-d(2T8iu0`tgNhT zm5Qte($8E39MTpui!lGIXKK@upW>|IVEEwSZgw7iIU9z}6PZP$84fetGYAL{W(I0p l&v=BPOZd`+^FBO03>TN`3EN!@mjOD9!PC{xWt~$(698D$OuzsD literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/sliding_blast_door_variant1.png b/src/main/resources/assets/hbm/textures/items/sliding_blast_door_variant1.png new file mode 100644 index 0000000000000000000000000000000000000000..5bbe67b45670bd935ad32c0034c1967a6e31bf1a GIT binary patch literal 5180 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 J`{yoQ^*=8PRj>d6 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/doors/sliding_blast_door.png b/src/main/resources/assets/hbm/textures/models/doors/sliding_blast_door.png new file mode 100644 index 0000000000000000000000000000000000000000..20d572d21001f1830a91f3b903b60fb061866646 GIT binary patch literal 63126 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�Rj|KkdEUGe??LJ$elUSyH%7bQu{Z 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

    Dy%aWxi9_i57M@M=Myv&=f2p!S3~=4gjzPK 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 Date: Fri, 30 Jun 2023 08:07:34 +0200 Subject: [PATCH 170/432] some tweaks --- .../com/hbm/crafting/ConsumableRecipes.java | 2 +- .../hbm/inventory/recipes/AssemblerRecipes.java | 10 ++++------ .../assets/hbm/textures/items/night_vision.png | Bin 906 -> 216 bytes .../hbm/textures/items/nightmare_vision.png | Bin 0 -> 198 bytes 4 files changed, 5 insertions(+), 7 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/items/nightmare_vision.png diff --git a/src/main/java/com/hbm/crafting/ConsumableRecipes.java b/src/main/java/com/hbm/crafting/ConsumableRecipes.java index 09a1a8f3d..971b29fa1 100644 --- a/src/main/java/com/hbm/crafting/ConsumableRecipes.java +++ b/src/main/java/com/hbm/crafting/ConsumableRecipes.java @@ -201,7 +201,7 @@ public class ConsumableRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.gas_tester, 1), new Object[] { "G", "C", "I", 'G', GOLD.plate(), 'C', ModItems.circuit_aluminium, 'I', IRON.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.defuser_gold, 1), new Object[] { "GPG", "PRP", "GPG", 'G', Items.gunpowder, 'P', GOLD.plate(), 'R', "record" }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ballistic_gauntlet, 1), new Object[] { " WS", "WRS", " RS", 'W', ModItems.wire_copper, 'R', ModItems.ring_starmetal, 'S', STEEL.plate() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.night_vision, 1), "PIP", "RCR", "PIP", 'P', STEEL.plate(), 'W', ModItems.wire_schrabidium, 'R', ModItems.ring_starmetal, 'I', ModItems.ingot_schrabidium, 'C', ModItems.circuit_schrabidium); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.night_vision, 1), "P P", "GCG", 'P', ANY_PLASTIC.ingot(), 'G', KEY_ANYGLASS, 'C', ModItems.circuit_gold); //Stealth boy CraftingManager.addRecipeAuto(new ItemStack(ModItems.stealth_boy, 1), new Object[] { " B", "LI", "LC", 'B', Blocks.stone_button, 'L', Items.leather, 'I', STEEL.ingot(), 'C', ModItems.circuit_red_copper }); diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index fcbbf0b45..1e63c37e2 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -1192,15 +1192,13 @@ public class AssemblerRecipes { }, 1200); makeRecipe(new ComparableStack(ModBlocks.sliding_blast_door, 1), new AStack[] { - new OreDictStack(STEEL.ingot(), 16), + new OreDictStack(STEEL.plate(), 16), new OreDictStack(W.ingot(), 8), new ComparableStack(ModBlocks.reinforced_glass, 4), - new ComparableStack(Blocks.quartz_block, 10), - new ComparableStack(ModItems.plate_polymer, 3), - new ComparableStack(ModItems.bolt_tungsten, 3), - new ComparableStack(ModItems.bolt_dura_steel, 3), + new ComparableStack(ModItems.plate_polymer, 4), + new ComparableStack(ModItems.bolt_dura_steel, 8), new ComparableStack(ModItems.motor, 2) - }, 300); + }, 200); if(Loader.isModLoaded("Mekanism")) { diff --git a/src/main/resources/assets/hbm/textures/items/night_vision.png b/src/main/resources/assets/hbm/textures/items/night_vision.png index 096c7b5b39d1c09318a8e719850ab58718efcbbf..fe10b140cbfd5f0bdcb59240576fd9dff66affa8 100644 GIT binary patch delta 189 zcmV;u07CzY2iO6SBYyw{b3#c}2nYxWdQF_Ex(RU9;GVs?af+?jM@tpINAHb*R?oidiW9Byc z?X_|rT8Wv5+|ipN0ukAcm>E=c93Uc?*{%x!D5bRbu`-Bg%QgYv9EIFHEcbl+!RwX* r0GB5Zfrv-v#PxxCub3{e;yEX>4Tx04R}tkv&MmKpe$iQ?*hm4i*t{ z$WWauNELC^DionYs1;guFuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|>f)s6A|?JW zDYS_7;J6>}?mh0_0YbgZG^=X@&~)2OCE{WxyDA1=(St#R5Pw8WW|lE0NlA1ZU-$6w z^)AY@I-mP<^r<t?1$8VeqE(<&} zY^GE5#9?Bw(8fv|v!baHPZ38{O{aVzpX8nkDcYq}ib-e1X!IzSg3;+11*v3JI#jw9TnbJO89F!>y7&X^P;@m3LT|Y) zCRr3b8h;bx9mN|FN-|Vv;9Oz{=|$SV;4{7OetdkqFCRP-`70dfrYVE~pkA-Dx;hho zIJmia&`c(i00cq6+}w+JxWILP-kqPHQLUb0j6tb+Zf}3#x?ccL>Lb0qPjTJv*tSh7 zHOkP?2ueMVL>%X)d2({pzqR#E*K%12@appqoqtI5%jxNvCP1ll5cmCSeYlp90K=bl z^~%ayIW{(VEiB8T(eS9{vNAd_0KnlI@_p+ig~BcXi;G!4Ji7}0S}rRaj>p8rYec)< z!kFN{a4gH>^3o6WzZetHZnuc$^97X3Q0$q~UC*QIdF=Pi>Pn@A5CS0tl}d^IzS+<( z_H9gQr84C6h5HbfmpAS@o!=}hyaBqD%Vmy_PZ=ES0B~^;V|;v+bUF=0+1o1;i#=g` zdp#1?xU{t4SF2|L*tU(Y6#i@Wt$R=0`&mqXObuV`J>RoBYx(*E zhAUQ``IB{veR|?7pB}%tyUUz7a)oq_oqIN#2?)-(+0EK8<}GiqYf+w_%_I3$veWFW*I216_yKeXgQu&X%Q~loCIDvUM+X1^ literal 0 HcmV?d00001 From fcfa725f0bc330ae30c20d9650a0557d5675c6d7 Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 30 Jun 2023 11:57:28 +0200 Subject: [PATCH 171/432] pipable exhaust --- changelog | 4 + .../com/hbm/blocks/bomb/BlockTNTBase.java | 17 ++ .../com/hbm/blocks/machine/HeaterFirebox.java | 2 +- .../machine/MachineDiFurnaceExtension.java | 2 +- .../hbm/blocks/machine/MachineTurbineGas.java | 2 + .../hbm/inventory/fluid/tank/FluidTank.java | 2 +- .../inventory/recipes/anvil/AnvilRecipes.java | 3 + .../TileEntityMachinePolluting.java | 65 ++++++ .../machine/TileEntityChimneyBrick.java | 43 +++- .../machine/TileEntityDiFurnace.java | 30 ++- .../machine/TileEntityFireboxBase.java | 35 ++- .../machine/TileEntityFurnaceCombination.java | 12 +- .../machine/TileEntityFurnaceIron.java | 1 - .../machine/TileEntityHeaterOilburner.java | 61 +++--- .../machine/TileEntityMachineCoal.java | 205 +++--------------- .../TileEntityMachineCombustionEngine.java | 18 +- .../machine/TileEntityMachineDiesel.java | 21 +- .../machine/TileEntityMachineTurbineGas.java | 13 +- .../machine/TileEntityMachineTurbofan.java | 9 +- .../oil/TileEntityMachineGasFlare.java | 24 +- 20 files changed, 313 insertions(+), 256 deletions(-) create mode 100644 src/main/java/com/hbm/tileentity/TileEntityMachinePolluting.java diff --git a/changelog b/changelog index 6ada44f00..4ca915e72 100644 --- a/changelog +++ b/changelog @@ -6,6 +6,10 @@ * Can be grilled * Fluid valves * come in manual and restone variants +* Chimney + * Most polluting machines can now be connected to a chimney with exhaust pipes + * The chimney will vent the pollution created by the machines, reducing it by 75% + * Compatible with soot, heavy metal and poison pollution ## Changed * Glyphids now have a config for a global spawn limit, which is 50 by default, no more than this many glyphids can be created at once diff --git a/src/main/java/com/hbm/blocks/bomb/BlockTNTBase.java b/src/main/java/com/hbm/blocks/bomb/BlockTNTBase.java index cf29f747c..b6ea8e4eb 100644 --- a/src/main/java/com/hbm/blocks/bomb/BlockTNTBase.java +++ b/src/main/java/com/hbm/blocks/bomb/BlockTNTBase.java @@ -16,11 +16,13 @@ import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.projectile.EntityArrow; +import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IIcon; import net.minecraft.world.Explosion; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; public abstract class BlockTNTBase extends BlockFlammable implements IToolable { @@ -44,6 +46,8 @@ public abstract class BlockTNTBase extends BlockFlammable implements IToolable { if(world.isBlockIndirectlyGettingPowered(x, y, z)) { this.onBlockDestroyedByPlayer(world, x, y, z, 1); world.setBlockToAir(x, y, z); + } else { + checkAndIgnite(world, x, y, z); } } @@ -52,6 +56,19 @@ public abstract class BlockTNTBase extends BlockFlammable implements IToolable { if(world.isBlockIndirectlyGettingPowered(x, y, z)) { this.onBlockDestroyedByPlayer(world, x, y, z, 1); world.setBlockToAir(x, y, z); + } else { + checkAndIgnite(world, x, y, z); + } + } + + public void checkAndIgnite(World world, int x, int y, int z) { + + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { + if(world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ) == Blocks.fire) { + this.onBlockDestroyedByPlayer(world, x, y, z, 1); + world.setBlockToAir(x, y, z); + return; + } } } diff --git a/src/main/java/com/hbm/blocks/machine/HeaterFirebox.java b/src/main/java/com/hbm/blocks/machine/HeaterFirebox.java index e502b1a3b..70f1a0b94 100644 --- a/src/main/java/com/hbm/blocks/machine/HeaterFirebox.java +++ b/src/main/java/com/hbm/blocks/machine/HeaterFirebox.java @@ -29,7 +29,7 @@ public class HeaterFirebox extends BlockDummyable implements ITooltipProvider { /*if(lastCore.getX() == lastBlockSet.getX() && lastCore.getY() + 1 == lastBlockSet.getY() && lastCore.getZ() == lastBlockSet.getZ()) return new TileEntityProxyCombo().inventory().heatSource();*/ - return new TileEntityProxyCombo(true, false, false); + return new TileEntityProxyCombo().inventory().fluid(); } @Override diff --git a/src/main/java/com/hbm/blocks/machine/MachineDiFurnaceExtension.java b/src/main/java/com/hbm/blocks/machine/MachineDiFurnaceExtension.java index 3b8c4208f..7d67a92b5 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineDiFurnaceExtension.java +++ b/src/main/java/com/hbm/blocks/machine/MachineDiFurnaceExtension.java @@ -30,7 +30,7 @@ public class MachineDiFurnaceExtension extends BlockContainer implements IProxyC @Override public TileEntity createNewTileEntity(World world, int meta) { - return new TileEntityProxyCombo().inventory(); + return new TileEntityProxyCombo().inventory().fluid(); } @Override diff --git a/src/main/java/com/hbm/blocks/machine/MachineTurbineGas.java b/src/main/java/com/hbm/blocks/machine/MachineTurbineGas.java index f47e6b6c3..b89931cf7 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineTurbineGas.java +++ b/src/main/java/com/hbm/blocks/machine/MachineTurbineGas.java @@ -10,6 +10,7 @@ import java.util.Locale; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; +import com.hbm.inventory.fluid.Fluids; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; @@ -88,6 +89,7 @@ public class MachineTurbineGas extends BlockDummyable implements ILookOverlay { if(hitCheck(dir, pos[0], pos[1], pos[2], -1, -1, 0, x, y, z) || hitCheck(dir, pos[0], pos[1], pos[2], 1, -1, 0, x, y, z)) { text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + turbine.tanks[0].getTankType().getName().toLowerCase(Locale.US))); text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + turbine.tanks[1].getTankType().getName().toLowerCase(Locale.US))); + text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + I18nUtil.resolveKey(Fluids.SMOKE.getUnlocalizedName())); } if(hitCheck(dir, pos[0], pos[1], pos[2], -1, 4, 0, x, y, z) || hitCheck(dir, pos[0], pos[1], pos[2], 1, 4, 0, x, y, z)) { diff --git a/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java b/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java index bd1561bc3..ba720d228 100644 --- a/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java +++ b/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java @@ -35,7 +35,7 @@ public class FluidTank { FluidType type; int fluid; int maxFluid; - public int index = 0; + @Deprecated public int index = 0; int pressure = 0; public FluidTank(FluidType type, int maxFluid) { diff --git a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java index 5c7672729..260c22ccb 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -490,6 +490,9 @@ public class AnvilRecipes { constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.fluid_duct_box, 1, i), new AnvilOutput(new ItemStack(ModItems.plate_iron))).setTier(2).setOverlay(OverlayType.RECYCLING)); constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.fluid_duct_box, 1, i + 1), new AnvilOutput(new ItemStack(ModItems.plate_copper))).setTier(2).setOverlay(OverlayType.RECYCLING)); constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.fluid_duct_box, 1, i + 2), new AnvilOutput(new ItemStack(ModItems.plate_aluminium))).setTier(2).setOverlay(OverlayType.RECYCLING)); + + constructionRecipes.add(new AnvilConstructionRecipe(new AStack[] {new OreDictStack(IRON.plate(), 1), new ComparableStack(ModItems.plate_polymer)}, new AnvilOutput(new ItemStack(ModBlocks.fluid_duct_exhaust, 8, i))).setTier(2).setOverlay(OverlayType.CONSTRUCTION)); + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.fluid_duct_exhaust, 8, i), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.plate_iron)), new AnvilOutput(new ItemStack(ModItems.plate_polymer))}).setTier(2)); } } diff --git a/src/main/java/com/hbm/tileentity/TileEntityMachinePolluting.java b/src/main/java/com/hbm/tileentity/TileEntityMachinePolluting.java new file mode 100644 index 000000000..1b3af3793 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/TileEntityMachinePolluting.java @@ -0,0 +1,65 @@ +package com.hbm.tileentity; + +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; + +import api.hbm.fluid.IFluidUser; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.common.util.ForgeDirection; + +public abstract class TileEntityMachinePolluting extends TileEntityMachineBase implements IFluidUser { + + public FluidTank smoke; + public FluidTank smoke_leaded; + public FluidTank smoke_poison; + + public TileEntityMachinePolluting(int scount, int buffer) { + super(scount); + smoke = new FluidTank(Fluids.SMOKE, buffer); + smoke_leaded = new FluidTank(Fluids.SMOKE_LEADED, buffer); + smoke_poison = new FluidTank(Fluids.SMOKE_POISON, buffer); + } + + public void pollute(PollutionType type, float amount) { + FluidTank tank = type == PollutionType.SOOT ? smoke : type == PollutionType.HEAVYMETAL ? smoke_leaded : smoke_poison; + + int fluidAmount = (int) Math.ceil(amount * 40); + tank.setFill(tank.getFill() + fluidAmount); + + if(tank.getFill() > tank.getMaxFill()) { + int overflow = tank.getFill() - tank.getMaxFill(); + tank.setFill(tank.getMaxFill()); + PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, type, overflow / 40F); + } + } + + public void sendSmoke(int x, int y, int z, ForgeDirection dir) { + if(this.smoke.getFill() > 0) this.sendFluid(smoke, worldObj, x, y, z, dir); + if(this.smoke_leaded.getFill() > 0) this.sendFluid(smoke_leaded, worldObj, x, y, z, dir); + if(this.smoke_poison.getFill() > 0) this.sendFluid(smoke_poison, worldObj, x, y, z, dir); + } + + public FluidTank[] getSmokeTanks() { + return new FluidTank[] {smoke, smoke_leaded, smoke_poison}; + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + smoke.readFromNBT(nbt, "smoke0"); + smoke_leaded.readFromNBT(nbt, "smoke1"); + smoke_poison.readFromNBT(nbt, "smoke2"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + smoke.writeToNBT(nbt, "smoke0"); + smoke_leaded.writeToNBT(nbt, "smoke1"); + smoke_poison.writeToNBT(nbt, "smoke2"); + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyBrick.java b/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyBrick.java index 9833e540c..071d1e8b5 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyBrick.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyBrick.java @@ -1,18 +1,25 @@ package com.hbm.tileentity.machine; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.lib.Library; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.INBTPacketReceiver; import com.hbm.tileentity.TileEntityLoadedBase; import api.hbm.fluid.IFluidUser; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityChimneyBrick extends TileEntityLoadedBase implements IFluidUser { +public class TileEntityChimneyBrick extends TileEntityLoadedBase implements IFluidUser, INBTPacketReceiver { + + public int onTicks; @Override public void updateEntity() { @@ -29,8 +36,34 @@ public class TileEntityChimneyBrick extends TileEntityLoadedBase implements IFlu this.trySubscribe(type, worldObj, xCoord, yCoord, zCoord - 2, Library.NEG_Z); } } + + NBTTagCompound data = new NBTTagCompound(); + data.setInteger("onTicks", onTicks); + INBTPacketReceiver.networkPack(this, data, 150); + } else { + + if(onTicks < 0) { + + if(worldObj.getTotalWorldTime() % 2 == 0) { + NBTTagCompound fx = new NBTTagCompound(); + fx.setString("type", "tower"); + fx.setFloat("lift", 10F); + fx.setFloat("base", 0.5F); + fx.setFloat("max", 3F); + fx.setInteger("life", 250 + worldObj.rand.nextInt(50)); + fx.setInteger("color",0x404040); + fx.setDouble("posX", xCoord + 0.5); + fx.setDouble("posY", yCoord + 12); + fx.setDouble("posZ", zCoord + 0.5); + MainRegistry.proxy.effectNT(fx); + } + } } } + + public void networkUnpack(NBTTagCompound nbt) { + this.onTicks = nbt.getInteger("onTicks"); + } @Override public boolean canConnect(FluidType type, ForgeDirection dir) { @@ -40,6 +73,14 @@ public class TileEntityChimneyBrick extends TileEntityLoadedBase implements IFlu @Override public long transferFluid(FluidType type, int pressure, long fluid) { + onTicks = 20; + + fluid *= 0.25; + + if(type == Fluids.SMOKE) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, fluid / 40F); + if(type == Fluids.SMOKE_LEADED) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.HEAVYMETAL, fluid / 40F); + if(type == Fluids.SMOKE_POISON) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.POISON, fluid / 40F); + return 0; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnace.java b/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnace.java index 57aa32c9c..55e9712f8 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnace.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnace.java @@ -5,13 +5,15 @@ import com.hbm.blocks.machine.MachineDiFurnace; import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.inventory.container.ContainerDiFurnace; +import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIDiFurnace; import com.hbm.inventory.recipes.BlastFurnaceRecipes; import com.hbm.items.ModItems; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.INBTPacketReceiver; -import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.tileentity.TileEntityMachinePolluting; +import api.hbm.fluid.IFluidStandardSender; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.GuiScreen; @@ -23,8 +25,9 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityDiFurnace extends TileEntityMachineBase implements IGUIProvider { +public class TileEntityDiFurnace extends TileEntityMachinePolluting implements IFluidStandardSender, IGUIProvider { public int progress; public int fuel; @@ -37,7 +40,7 @@ public class TileEntityDiFurnace extends TileEntityMachineBase implements IGUIPr public byte sideLower = 1; public TileEntityDiFurnace() { - super(4); + super(4, 1200); } @Override @@ -183,6 +186,14 @@ public class TileEntityDiFurnace extends TileEntityMachineBase implements IGUIPr public void updateEntity() { if(!worldObj.isRemote) { + + boolean extension = worldObj.getBlock(xCoord, yCoord + 1, zCoord) == ModBlocks.machine_difurnace_extension; + + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { + this.sendSmoke(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); + } + + if(extension) this.sendSmoke(xCoord, yCoord + 2, zCoord, ForgeDirection.UP); boolean markDirty = false; @@ -198,7 +209,6 @@ public class TileEntityDiFurnace extends TileEntityMachineBase implements IGUIPr } if(canProcess()) { - boolean extension = worldObj.getBlock(xCoord, yCoord + 1, zCoord) == ModBlocks.machine_difurnace_extension; //fuel -= extension ? 2 : 1; fuel -= 1; //switch it up on me, fuel efficiency, on fumes i'm running - running - running - running @@ -214,7 +224,7 @@ public class TileEntityDiFurnace extends TileEntityMachineBase implements IGUIPr fuel = 0; } - if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * (extension ? 3 : 1)); + if(worldObj.getTotalWorldTime() % 20 == 0) this.pollute(PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * (extension ? 3 : 1)); } else { progress = 0; @@ -263,4 +273,14 @@ public class TileEntityDiFurnace extends TileEntityMachineBase implements IGUIPr public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIDiFurnace(player.inventory, this); } + + @Override + public FluidTank[] getAllTanks() { + return new FluidTank[0]; + } + + @Override + public FluidTank[] getSendingTanks() { + return this.getSmokeTanks(); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFireboxBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFireboxBase.java index b4d5a109c..3923448d7 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFireboxBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFireboxBase.java @@ -3,10 +3,13 @@ package com.hbm.tileentity.machine; import com.hbm.blocks.BlockDummyable; import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.pollution.PollutionHandler.PollutionType; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.module.ModuleBurnTime; import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.tileentity.TileEntityMachinePolluting; +import api.hbm.fluid.IFluidStandardSender; import api.hbm.tile.IHeatSource; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -16,7 +19,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MathHelper; import net.minecraftforge.common.util.ForgeDirection; -public abstract class TileEntityFireboxBase extends TileEntityMachineBase implements IGUIProvider, IHeatSource { +public abstract class TileEntityFireboxBase extends TileEntityMachinePolluting implements IFluidStandardSender, IGUIProvider, IHeatSource { public int maxBurnTime; public int burnTime; @@ -31,7 +34,7 @@ public abstract class TileEntityFireboxBase extends TileEntityMachineBase implem public TileEntityFireboxBase() { - super(2); + super(2, 1_200); } @Override @@ -49,6 +52,15 @@ public abstract class TileEntityFireboxBase extends TileEntityMachineBase implem if(!worldObj.isRemote) { + for(int i = 2; i < 6; i++) { + ForgeDirection dir = ForgeDirection.getOrientation(i); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + for(int j = -1; j <= 1; j++) { + this.sendSmoke(xCoord + dir.offsetX * 2 + rot.offsetX * j, yCoord, zCoord + dir.offsetZ * 2 + rot.offsetZ * j, dir); + } + } + wasOn = false; if(burnTime <= 0) { @@ -76,7 +88,7 @@ public abstract class TileEntityFireboxBase extends TileEntityMachineBase implem if(this.heatEnergy < getMaxHeat()) { burnTime--; - if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * 3); + if(worldObj.getTotalWorldTime() % 20 == 0) this.pollute(PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * 3); } this.wasOn = true; @@ -201,4 +213,19 @@ public abstract class TileEntityFireboxBase extends TileEntityMachineBase implem public double getMaxRenderDistanceSquared() { return 65536.0D; } + + @Override + public FluidTank[] getAllTanks() { + return new FluidTank[0]; + } + + @Override + public FluidTank[] getSendingTanks() { + return this.getSmokeTanks(); + } + + @Override + public boolean canConnect(FluidType type, ForgeDirection dir) { + return dir != ForgeDirection.UNKNOWN && dir != ForgeDirection.DOWN; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceCombination.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceCombination.java index aeb9e670c..b5a762026 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceCombination.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceCombination.java @@ -11,7 +11,7 @@ import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIFurnaceCombo; import com.hbm.inventory.recipes.CombinationRecipes; import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.tileentity.TileEntityMachinePolluting; import com.hbm.util.Tuple.Pair; import api.hbm.fluid.IFluidStandardSender; @@ -29,7 +29,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityFurnaceCombination extends TileEntityMachineBase implements IFluidStandardSender, IGUIProvider { +public class TileEntityFurnaceCombination extends TileEntityMachinePolluting implements IFluidStandardSender, IGUIProvider { public boolean wasOn; public int progress; @@ -42,7 +42,7 @@ public class TileEntityFurnaceCombination extends TileEntityMachineBase implemen public FluidTank tank; public TileEntityFurnaceCombination() { - super(4); + super(4, 1_200); this.tank = new FluidTank(Fluids.NONE, 24_000); } @@ -65,6 +65,7 @@ public class TileEntityFurnaceCombination extends TileEntityMachineBase implemen for(int y = yCoord; y <= yCoord + 1; y++) { for(int j = -1; j <= 1; j++) { if(tank.getFill() > 0) this.sendFluid(tank, worldObj, xCoord + dir.offsetX * 2 + rot.offsetX * j, y, zCoord + dir.offsetZ * 2 + rot.offsetZ * j, dir); + this.sendSmoke(xCoord + dir.offsetX * 2 + rot.offsetX * j, y, zCoord + dir.offsetZ * 2 + rot.offsetZ * j, dir); } } } @@ -72,6 +73,7 @@ public class TileEntityFurnaceCombination extends TileEntityMachineBase implemen for(int x = xCoord - 1; x <= xCoord + 1; x++) { for(int z = zCoord - 1; z <= zCoord + 1; z++) { if(tank.getFill() > 0) this.sendFluid(tank, worldObj, x, yCoord + 2, z, ForgeDirection.UP); + this.sendSmoke(x, yCoord + 2, z, ForgeDirection.UP); } } } @@ -122,7 +124,7 @@ public class TileEntityFurnaceCombination extends TileEntityMachineBase implemen if(worldObj.getTotalWorldTime() % 10 == 0) this.worldObj.playSoundEffect(this.xCoord, this.yCoord + 1, this.zCoord, "hbm:weapon.flamethrowerShoot", 0.25F, 0.5F); } - if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * 3); + if(worldObj.getTotalWorldTime() % 20 == 0) this.pollute(PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * 3); } else { this.progress = 0; } @@ -274,6 +276,6 @@ public class TileEntityFurnaceCombination extends TileEntityMachineBase implemen @Override public FluidTank[] getSendingTanks() { - return new FluidTank[] {tank}; + return new FluidTank[] {tank, smoke, smoke_leaded, smoke_poison}; } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java index 0a5dfbd92..aafd90a83 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java @@ -67,7 +67,6 @@ public class TileEntityFurnaceIron extends TileEntityMachineBase implements IGUI if(slots[i] != null) { int fuel = burnModule.getBurnTime(slots[i]); - //int fuel = TileEntityFurnace.getItemBurnTime(slots[i]); if(fuel > 0) { this.maxBurnTime = this.burnTime = fuel; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOilburner.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOilburner.java index 555704c86..578b24826 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOilburner.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOilburner.java @@ -3,9 +3,7 @@ package com.hbm.tileentity.machine; import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.interfaces.IControlReceiver; -import com.hbm.interfaces.IFluidAcceptor; import com.hbm.inventory.container.ContainerOilburner; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Flammable; @@ -13,9 +11,10 @@ import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Leaded; import com.hbm.inventory.gui.GUIOilburner; import com.hbm.lib.Library; import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.tileentity.TileEntityMachinePolluting; +import com.hbm.util.fauxpointtwelve.DirPos; -import api.hbm.fluid.IFluidStandardReceiver; +import api.hbm.fluid.IFluidStandardTransceiver; import api.hbm.tile.IHeatSource; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -26,7 +25,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; -public class TileEntityHeaterOilburner extends TileEntityMachineBase implements IGUIProvider, IFluidStandardReceiver, IHeatSource, IControlReceiver, IFluidAcceptor { +public class TileEntityHeaterOilburner extends TileEntityMachinePolluting implements IGUIProvider, IFluidStandardTransceiver, IHeatSource, IControlReceiver { public boolean isOn = false; public FluidTank tank; @@ -36,14 +35,23 @@ public class TileEntityHeaterOilburner extends TileEntityMachineBase implements public static final int maxHeatEnergy = 100_000; public TileEntityHeaterOilburner() { - super(3); - tank = new FluidTank(Fluids.HEATINGOIL, 16000, 0); + super(3, 2_000); + tank = new FluidTank(Fluids.HEATINGOIL, 16000); } @Override public String getName() { return "container.heaterOilburner"; } + + public DirPos[] getConPos() { + return new DirPos[] { + new DirPos(xCoord + 2, yCoord, zCoord, Library.POS_X), + new DirPos(xCoord - 2, yCoord, zCoord, Library.NEG_X), + new DirPos(xCoord, yCoord, zCoord + 2, Library.POS_Z), + new DirPos(xCoord, yCoord, zCoord - 2, Library.NEG_Z) + }; + } @Override public void updateEntity() { @@ -53,10 +61,10 @@ public class TileEntityHeaterOilburner extends TileEntityMachineBase implements tank.loadTank(0, 1, slots); tank.setType(2, slots); - this.trySubscribe(tank.getTankType(), worldObj, xCoord + 2, yCoord, zCoord, Library.POS_X); - this.trySubscribe(tank.getTankType(), worldObj, xCoord - 2, yCoord, zCoord, Library.NEG_X); - this.trySubscribe(tank.getTankType(), worldObj, xCoord, yCoord, zCoord + 2, Library.POS_Z); - this.trySubscribe(tank.getTankType(), worldObj, xCoord, yCoord, zCoord - 2, Library.NEG_Z); + for(DirPos pos : this.getConPos()) { + this.trySubscribe(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.sendSmoke(pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } boolean shouldCool = true; @@ -75,8 +83,8 @@ public class TileEntityHeaterOilburner extends TileEntityMachineBase implements this.heatEnergy += heat * toBurn; if(worldObj.getTotalWorldTime() % 20 == 0) { - PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * burnRate * 0.5F); - if(tank.getTankType().hasTrait(FT_Leaded.class)) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.HEAVYMETAL, PollutionHandler.HEAVY_METAL_PER_SECOND * burnRate * 0.5F); + this.pollute(PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * burnRate * 0.5F); + if(tank.getTankType().hasTrait(FT_Leaded.class)) this.pollute(PollutionType.HEAVYMETAL, PollutionHandler.HEAVY_METAL_PER_SECOND * burnRate * 0.5F); } shouldCool = false; @@ -157,28 +165,6 @@ public class TileEntityHeaterOilburner extends TileEntityMachineBase implements this.heatEnergy = Math.max(0, this.heatEnergy - heat); } - @Override - public void setFillForSync(int fill, int index) { } - - @Override - public void setFluidFill(int fill, FluidType type) { - if(type == tank.getTankType()) - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { } - - @Override - public int getFluidFill(FluidType type) { - return type == tank.getTankType() ? tank.getFill() : 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - return type == tank.getTankType() ? tank.getMaxFill() : 0; - } - @Override public boolean hasPermission(EntityPlayer player) { return player.getDistanceSq(xCoord, yCoord, zCoord) <= 256; @@ -221,4 +207,9 @@ public class TileEntityHeaterOilburner extends TileEntityMachineBase implements public FluidTank[] getAllTanks() { return new FluidTank[] { tank }; } + + @Override + public FluidTank[] getSendingTanks() { + return this.getSmokeTanks(); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCoal.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCoal.java index 449e3aea4..34c858098 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCoal.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCoal.java @@ -7,27 +7,20 @@ import com.google.gson.stream.JsonWriter; import com.hbm.blocks.machine.MachineCoal; import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.pollution.PollutionHandler.PollutionType; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.FluidContainerRegistry; import com.hbm.inventory.container.ContainerMachineCoal; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIMachineCoal; import com.hbm.items.ModItems; import com.hbm.lib.Library; -import com.hbm.packet.AuxElectricityPacket; -import com.hbm.packet.AuxGaugePacket; -import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.IConfigurableMachine; import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityLoadedBase; +import com.hbm.tileentity.TileEntityMachinePolluting; import api.hbm.energy.IBatteryItem; import api.hbm.energy.IEnergyGenerator; -import api.hbm.fluid.IFluidStandardReceiver; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.GuiScreen; @@ -37,15 +30,12 @@ import net.minecraft.inventory.Container; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntityFurnace; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineCoal extends TileEntityLoadedBase implements ISidedInventory, IEnergyGenerator, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver, IConfigurableMachine, IGUIProvider { +public class TileEntityMachineCoal extends TileEntityMachinePolluting implements ISidedInventory, IEnergyGenerator, IFluidStandardTransceiver, IConfigurableMachine, IGUIProvider { - private ItemStack slots[]; - public long power; public int burnTime; public static final long maxPower = 100000; @@ -55,84 +45,21 @@ public class TileEntityMachineCoal extends TileEntityLoadedBase implements ISide private static final int[] slots_bottom = new int[] {0, 2}; private static final int[] slots_side = new int[] {0, 2}; - private String customName; - /* CONFIGURABLE CONSTANTS */ public static int waterCap = 5000; public static int genRate = 25; public static double fuelMod = 0.5D; public TileEntityMachineCoal() { - slots = new ItemStack[4]; + super(4, 120); tank = new FluidTank(Fluids.WATER, waterCap, 0); } @Override - public int getSizeInventory() { - return slots.length; + public String getName() { + return "container.machineCoal"; } - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if(slots[i] != null) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.machineCoal"; - } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) - { - return false; - }else{ - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=64; - } - } - - //You scrubs aren't needed for anything (right now) - @Override - public void openInventory() {} - @Override - public void closeInventory() {} - @Override public boolean isItemValidForSlot(int i, ItemStack stack) { if(i == 0) @@ -148,46 +75,12 @@ public class TileEntityMachineCoal extends TileEntityLoadedBase implements ISide return false; } - @Override - public ItemStack decrStackSize(int i, int j) { - if(slots[i] != null) - { - if(slots[i].stackSize <= j) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) - { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); this.power = nbt.getLong("powerTime"); tank.readFromNBT(nbt, "water"); - slots = new ItemStack[getSizeInventory()]; - - for(int i = 0; i < list.tagCount(); i++) - { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if(b0 >= 0 && b0 < slots.length) - { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } } @Override @@ -195,26 +88,12 @@ public class TileEntityMachineCoal extends TileEntityLoadedBase implements ISide super.writeToNBT(nbt); nbt.setLong("powerTime", power); tank.writeToNBT(nbt, "water"); - NBTTagList list = new NBTTagList(); - - for(int i = 0; i < slots.length; i++) - { - if(slots[i] != null) - { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte)i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); } @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) - { - return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side); - } + public int[] getAccessibleSlotsFromSide(int p_94128_1_) { + return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side); + } @Override public boolean canInsertItem(int i, ItemStack itemStack, int j) { @@ -242,8 +121,10 @@ public class TileEntityMachineCoal extends TileEntityLoadedBase implements ISide if(!worldObj.isRemote) { - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { this.sendPower(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); + this.sendSmoke(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); + } this.subscribeToAllAround(Fluids.WATER, this); @@ -257,23 +138,29 @@ public class TileEntityMachineCoal extends TileEntityLoadedBase implements ISide boolean trigger = true; - if(isItemValid() && this.burnTime == 0) - { + if(isItemValid() && this.burnTime == 0) { trigger = false; } - - if(trigger) - { - MachineCoal.updateBlockState(this.burnTime > 0, this.worldObj, this.xCoord, this.yCoord, this.zCoord); - } - - PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, burnTime, 0), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); + + if(trigger) { + MachineCoal.updateBlockState(this.burnTime > 0, this.worldObj, this.xCoord, this.yCoord, this.zCoord); + } generate(); + + NBTTagCompound data = new NBTTagCompound(); + data.setLong("power", power); + tank.writeToNBT(data, "tank"); + this.networkPack(data, 15); } } + @Override + public void networkUnpack(NBTTagCompound nbt) { + this.power = nbt.getLong("power"); + this.tank.readFromNBT(nbt, "tank"); + } + public void generate() { if(slots[1] != null && TileEntityFurnace.getItemBurnTime(slots[1]) > 0 && burnTime <= 0) @@ -292,7 +179,7 @@ public class TileEntityMachineCoal extends TileEntityLoadedBase implements ISide if(burnTime > 0) { burnTime--; - if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND); + if(worldObj.getTotalWorldTime() % 20 == 0) this.pollute(PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND); if(tank.getFill() > 0) { tank.setFill(tank.getFill() - 1); @@ -307,8 +194,7 @@ public class TileEntityMachineCoal extends TileEntityLoadedBase implements ISide public boolean isItemValid() { - if(slots[1] != null && TileEntityFurnace.getItemBurnTime(slots[1]) > 0) - { + if(slots[1] != null && TileEntityFurnace.getItemBurnTime(slots[1]) > 0) { return true; } @@ -330,37 +216,16 @@ public class TileEntityMachineCoal extends TileEntityLoadedBase implements ISide return this.maxPower; } - @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tank.getTankType().name())) - tank.setFill(i); - } - - @Override - public int getFluidFill(FluidType type) { - return type.name().equals(this.tank.getTankType().name()) ? tank.getFill() : 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - return type.name().equals(this.tank.getTankType().name()) ? tank.getMaxFill() : 0; - } - - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - @Override public FluidTank[] getReceivingTanks() { return new FluidTank[] {tank}; } + @Override + public FluidTank[] getSendingTanks() { + return this.getSmokeTanks(); + } + @Override public FluidTank[] getAllTanks() { return new FluidTank[] { tank }; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java index 1527a9e17..d824817ee 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java @@ -17,12 +17,12 @@ import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.tileentity.TileEntityMachinePolluting; import com.hbm.util.EnumUtil; import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IEnergyGenerator; -import api.hbm.fluid.IFluidStandardReceiver; +import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.GuiScreen; @@ -34,7 +34,7 @@ import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineCombustionEngine extends TileEntityMachineBase implements IEnergyGenerator, IFluidStandardReceiver, IControlReceiver, IGUIProvider { +public class TileEntityMachineCombustionEngine extends TileEntityMachinePolluting implements IEnergyGenerator, IFluidStandardTransceiver, IControlReceiver, IGUIProvider { public boolean isOn = false; public static long maxPower = 2_500_000; @@ -52,7 +52,7 @@ public class TileEntityMachineCombustionEngine extends TileEntityMachineBase imp public int tenth = 0; public TileEntityMachineCombustionEngine() { - super(5); + super(5, 1_200); this.tank = new FluidTank(Fluids.DIESEL, 24_000, 0); } @@ -88,8 +88,8 @@ public class TileEntityMachineCombustionEngine extends TileEntityMachineBase imp fill -= toBurn; if(worldObj.getTotalWorldTime() % 20 == 0) { - PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * setting * 0.1F); - if(tank.getTankType().hasTrait(FT_Leaded.class)) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.HEAVYMETAL, PollutionHandler.HEAVY_METAL_PER_SECOND * setting * 0.1F); + this.pollute(PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * setting * 0.1F); + if(tank.getTankType().hasTrait(FT_Leaded.class)) this.pollute(PollutionType.HEAVYMETAL, PollutionHandler.HEAVY_METAL_PER_SECOND * setting * 0.1F); } if(toBurn > 0) { @@ -109,6 +109,7 @@ public class TileEntityMachineCombustionEngine extends TileEntityMachineBase imp for(DirPos pos : getConPos()) { this.sendPower(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); this.trySubscribe(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.sendSmoke(pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } if(power > maxPower) @@ -275,6 +276,11 @@ public class TileEntityMachineCombustionEngine extends TileEntityMachineBase imp public FluidTank[] getReceivingTanks() { return new FluidTank[] {tank}; } + + @Override + public FluidTank[] getSendingTanks() { + return this.getSmokeTanks(); + } AxisAlignedBB bb = null; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java index dcb1f443a..3159686a9 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java @@ -23,11 +23,11 @@ import com.hbm.items.ModItems; import com.hbm.lib.Library; import com.hbm.tileentity.IConfigurableMachine; import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.tileentity.TileEntityMachinePolluting; import api.hbm.energy.IBatteryItem; import api.hbm.energy.IEnergyGenerator; -import api.hbm.fluid.IFluidStandardReceiver; +import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.GuiScreen; @@ -38,7 +38,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineDiesel extends TileEntityMachineBase implements IEnergyGenerator, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver, IConfigurableMachine, IGUIProvider { +public class TileEntityMachineDiesel extends TileEntityMachinePolluting implements IEnergyGenerator, IFluidContainer, IFluidAcceptor, IFluidStandardTransceiver, IConfigurableMachine, IGUIProvider { public long power; public int soundCycle = 0; @@ -61,7 +61,7 @@ public class TileEntityMachineDiesel extends TileEntityMachineBase implements IE private static final int[] slots_side = new int[] { 2 }; public TileEntityMachineDiesel() { - super(5); + super(5, 200); tank = new FluidTank(Fluids.DIESEL, 4_000, 0); } @@ -130,8 +130,10 @@ public class TileEntityMachineDiesel extends TileEntityMachineBase implements IE if(!worldObj.isRemote) { - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { this.sendPower(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); + this.sendSmoke(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); + } //Tank Management FluidType last = tank.getTankType(); @@ -207,8 +209,8 @@ public class TileEntityMachineDiesel extends TileEntityMachineBase implements IE if(tank.getFill() < 0) tank.setFill(0); - PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * 0.5F); - if(tank.getTankType().hasTrait(FT_Leaded.class)) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.HEAVYMETAL, PollutionHandler.HEAVY_METAL_PER_SECOND * 0.5F); + this.pollute(PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * 0.5F); + if(tank.getTankType().hasTrait(FT_Leaded.class)) this.pollute(PollutionType.HEAVYMETAL, PollutionHandler.HEAVY_METAL_PER_SECOND * 0.5F); if(power + getHEFromFuel() <= powerCap) { power += getHEFromFuel(); @@ -318,4 +320,9 @@ public class TileEntityMachineDiesel extends TileEntityMachineBase implements IE public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineDiesel(player.inventory, this); } + + @Override + public FluidTank[] getSendingTanks() { + return null; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java index 336e27bc5..033969173 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java @@ -18,7 +18,7 @@ import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.tileentity.TileEntityMachinePolluting; import api.hbm.energy.IEnergyGenerator; import api.hbm.fluid.IFluidStandardTransceiver; @@ -33,7 +33,7 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineTurbineGas extends TileEntityMachineBase implements IFluidStandardTransceiver, IEnergyGenerator, IControlReceiver, IGUIProvider { +public class TileEntityMachineTurbineGas extends TileEntityMachinePolluting implements IFluidStandardTransceiver, IEnergyGenerator, IControlReceiver, IGUIProvider { public long power; public static final long maxPower = 1000000L; @@ -69,7 +69,7 @@ public class TileEntityMachineTurbineGas extends TileEntityMachineBase implement //TODO particles from heat exchanger maybe? maybe in a future public TileEntityMachineTurbineGas() { - super(2); + super(2, 5_000); this.tanks = new FluidTank[4]; tanks[0] = new FluidTank(Fluids.GAS, 100000); tanks[1] = new FluidTank(Fluids.LUBRICANT, 16000); @@ -137,6 +137,9 @@ public class TileEntityMachineTurbineGas extends TileEntityMachineBase implement for(int i = 0; i < 2; i++) { //fuel and lube this.trySubscribe(tanks[i].getTankType(), worldObj, xCoord - dir.offsetX * 2 + rot.offsetX, yCoord, zCoord - dir.offsetZ * 2 + rot.offsetZ, dir.getOpposite()); this.trySubscribe(tanks[i].getTankType(), worldObj, xCoord + dir.offsetX * 2 + rot.offsetX, yCoord, zCoord + dir.offsetZ * 2 + rot.offsetZ, dir); + + this.sendSmoke(xCoord - dir.offsetX * 2 + rot.offsetX, yCoord, zCoord - dir.offsetZ * 2 + rot.offsetZ, dir.getOpposite()); + this.sendSmoke(xCoord + dir.offsetX * 2 + rot.offsetX, yCoord, zCoord + dir.offsetZ * 2 + rot.offsetZ, dir); } //water this.trySubscribe(tanks[2].getTankType(), worldObj, xCoord - dir.offsetX * 2 + rot.offsetX * -4, yCoord, zCoord - dir.offsetZ * 2 + rot.offsetZ * -4, dir.getOpposite()); @@ -300,7 +303,7 @@ public class TileEntityMachineTurbineGas extends TileEntityMachineBase implement } double consumption = fuelMaxCons.containsKey(tanks[0].getTankType()) ? fuelMaxCons.get(tanks[0].getTankType()) : 5D; - if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * (float) consumption * 0.25F); + if(worldObj.getTotalWorldTime() % 20 == 0 && tanks[0].getTankType() != Fluids.OXYHYDROGEN) this.pollute(PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * (float) consumption * 0.25F); makePower(consumption, throttle); } @@ -533,7 +536,7 @@ public class TileEntityMachineTurbineGas extends TileEntityMachineBase implement @Override public FluidTank[] getSendingTanks() { - return new FluidTank[] { tanks[3] }; + return new FluidTank[] { tanks[3], smoke, smoke_leaded, smoke_poison }; } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java index e3f2e7705..c0f0575bd 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java @@ -26,7 +26,7 @@ import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.tileentity.TileEntityMachinePolluting; import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IEnergyGenerator; @@ -46,7 +46,7 @@ import net.minecraft.util.DamageSource; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineTurbofan extends TileEntityMachineBase implements IEnergyGenerator, IFluidContainer, IFluidAcceptor, IFluidStandardTransceiver, IGUIProvider { +public class TileEntityMachineTurbofan extends TileEntityMachinePolluting implements IEnergyGenerator, IFluidContainer, IFluidAcceptor, IFluidStandardTransceiver, IGUIProvider { public long power; public static final long maxPower = 1_000_000; @@ -64,7 +64,7 @@ public class TileEntityMachineTurbofan extends TileEntityMachineBase implements private AudioWrapper audio; public TileEntityMachineTurbofan() { - super(5); + super(5, 4_000); tank = new FluidTank(Fluids.KEROSENE, 24000); blood = new FluidTank(Fluids.BLOOD, 24000); } @@ -173,6 +173,7 @@ public class TileEntityMachineTurbofan extends TileEntityMachineBase implements this.sendPower(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); this.trySubscribe(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); if(this.blood.getFill() > 0) this.sendFluid(blood, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.sendSmoke(pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } if(burnValue > 0 && amountToBurn > 0) { @@ -474,7 +475,7 @@ public class TileEntityMachineTurbofan extends TileEntityMachineBase implements @Override public FluidTank[] getAllTanks() { - return new FluidTank[] { tank, blood }; + return new FluidTank[] { tank, blood, smoke, smoke_leaded, smoke_poison }; } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java index 8ad9a8e13..39f928faf 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java @@ -23,6 +23,7 @@ import com.hbm.main.MainRegistry; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.ParticleUtil; +import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IEnergyGenerator; import api.hbm.fluid.IFluidStandardReceiver; @@ -95,15 +96,10 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements if(!worldObj.isRemote) { - this.sendPower(worldObj, xCoord + 2, yCoord, zCoord, Library.POS_X); - this.sendPower(worldObj, xCoord - 2, yCoord, zCoord, Library.NEG_X); - this.sendPower(worldObj, xCoord, yCoord, zCoord + 2, Library.POS_Z); - this.sendPower(worldObj, xCoord, yCoord, zCoord - 2, Library.NEG_Z); - - this.trySubscribe(tank.getTankType(), worldObj, xCoord + 2, yCoord, zCoord, Library.POS_X); - this.trySubscribe(tank.getTankType(), worldObj, xCoord - 2, yCoord, zCoord, Library.NEG_X); - this.trySubscribe(tank.getTankType(), worldObj, xCoord, yCoord, zCoord + 2, Library.POS_Z); - this.trySubscribe(tank.getTankType(), worldObj, xCoord, yCoord, zCoord - 2, Library.NEG_Z); + for(DirPos pos : getConPos()) { + this.sendPower(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.trySubscribe(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } tank.setType(3, slots); tank.loadTank(1, 2, slots); @@ -221,7 +217,15 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements } } } - + } + + public DirPos[] getConPos() { + return new DirPos[] { + new DirPos(xCoord + 2, yCoord, zCoord, Library.POS_X), + new DirPos(xCoord - 2, yCoord, zCoord, Library.NEG_X), + new DirPos(xCoord, yCoord, zCoord + 2, Library.POS_Z), + new DirPos(xCoord, yCoord, zCoord - 2, Library.NEG_Z) + }; } @Override From 8bc1f730758071cb1faa046dd7cf5b726e90f7dd Mon Sep 17 00:00:00 2001 From: Bob Date: Sat, 1 Jul 2023 19:19:09 +0200 Subject: [PATCH 172/432] big smoke --- changelog | 6 +++--- .../inventory/recipes/anvil/AnvilRecipes.java | 7 +++++++ .../hbm/items/tool/ItemPollutionDetector.java | 8 ++++---- .../tileentity/TileEntityMachinePolluting.java | 6 ++++-- .../machine/TileEntityChimneyBrick.java | 11 +++++++---- .../tileentity/machine/TileEntityDiFurnace.java | 2 +- .../machine/TileEntityFireboxBase.java | 2 +- .../machine/TileEntityFurnaceCombination.java | 2 +- .../machine/TileEntityHeaterOilburner.java | 2 +- .../machine/TileEntityMachineCoal.java | 2 +- .../TileEntityMachineCombustionEngine.java | 2 +- .../machine/TileEntityMachineDiesel.java | 4 ++-- .../machine/TileEntityMachineTurbineGas.java | 2 +- .../machine/TileEntityMachineTurbofan.java | 2 +- src/main/resources/assets/hbm/lang/de_DE.lang | 4 ++++ src/main/resources/assets/hbm/lang/en_US.lang | 4 ++++ .../assets/hbm/textures/gui/fluids/smoke.png | Bin 0 -> 8176 bytes .../hbm/textures/gui/fluids/smoke_leaded.png | Bin 0 -> 7062 bytes .../hbm/textures/gui/fluids/smoke_poison.png | Bin 0 -> 5821 bytes 19 files changed, 43 insertions(+), 23 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/smoke.png create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/smoke_leaded.png create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/smoke_poison.png diff --git a/changelog b/changelog index 4ca915e72..f51dde21b 100644 --- a/changelog +++ b/changelog @@ -6,9 +6,9 @@ * Can be grilled * Fluid valves * come in manual and restone variants -* Chimney - * Most polluting machines can now be connected to a chimney with exhaust pipes - * The chimney will vent the pollution created by the machines, reducing it by 75% +* Smokestack + * Most polluting machines can now be connected to a smokestack with exhaust pipes + * The smokestack will vent the pollution created by the machines, reducing it by 75% * Compatible with soot, heavy metal and poison pollution ## Changed diff --git a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java index 260c22ccb..96fbafedd 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -417,6 +417,13 @@ public class AnvilRecipes { }, new AnvilOutput(new ItemStack(ModBlocks.substation))).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( + new AStack[] { + new OreDictStack(STEEL.plate(), 4), + new ComparableStack(Blocks.brick_block, 16) + }, + new AnvilOutput(new ItemStack(ModBlocks.chimney_brick))).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] { new ComparableStack(ModItems.tank_steel, 1), diff --git a/src/main/java/com/hbm/items/tool/ItemPollutionDetector.java b/src/main/java/com/hbm/items/tool/ItemPollutionDetector.java index 9b1a14ec3..4ff3cc55f 100644 --- a/src/main/java/com/hbm/items/tool/ItemPollutionDetector.java +++ b/src/main/java/com/hbm/items/tool/ItemPollutionDetector.java @@ -34,9 +34,9 @@ public class ItemPollutionDetector extends Item { heavymetal = ((int) (heavymetal * 100)) / 100F; fallout = ((int) (fallout * 100)) / 100F; - PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Soot: " + soot).color(EnumChatFormatting.YELLOW).flush(), 100, 2000), (EntityPlayerMP) entity); - PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Poison: " + poison).color(EnumChatFormatting.YELLOW).flush(), 101, 2000), (EntityPlayerMP) entity); - PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Heavy metal: " + heavymetal).color(EnumChatFormatting.YELLOW).flush(), 102, 2000), (EntityPlayerMP) entity); - PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Fallout: " + fallout).color(EnumChatFormatting.YELLOW).flush(), 103, 2000), (EntityPlayerMP) entity); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Soot: " + soot).color(EnumChatFormatting.YELLOW).flush(), 100, 4000), (EntityPlayerMP) entity); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Poison: " + poison).color(EnumChatFormatting.YELLOW).flush(), 101, 4000), (EntityPlayerMP) entity); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Heavy metal: " + heavymetal).color(EnumChatFormatting.YELLOW).flush(), 102, 4000), (EntityPlayerMP) entity); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("Fallout: " + fallout).color(EnumChatFormatting.YELLOW).flush(), 103, 4000), (EntityPlayerMP) entity); } } diff --git a/src/main/java/com/hbm/tileentity/TileEntityMachinePolluting.java b/src/main/java/com/hbm/tileentity/TileEntityMachinePolluting.java index 1b3af3793..ffba5d8a1 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityMachinePolluting.java +++ b/src/main/java/com/hbm/tileentity/TileEntityMachinePolluting.java @@ -25,13 +25,15 @@ public abstract class TileEntityMachinePolluting extends TileEntityMachineBase i public void pollute(PollutionType type, float amount) { FluidTank tank = type == PollutionType.SOOT ? smoke : type == PollutionType.HEAVYMETAL ? smoke_leaded : smoke_poison; - int fluidAmount = (int) Math.ceil(amount * 40); + int fluidAmount = (int) Math.ceil(amount * 100); tank.setFill(tank.getFill() + fluidAmount); if(tank.getFill() > tank.getMaxFill()) { int overflow = tank.getFill() - tank.getMaxFill(); tank.setFill(tank.getMaxFill()); - PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, type, overflow / 40F); + PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, type, overflow / 100F); + + if(worldObj.rand.nextInt(3) == 0) worldObj.playSoundEffect(xCoord, yCoord, zCoord, "random.fizz", 0.1F, 1.5F); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyBrick.java b/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyBrick.java index 071d1e8b5..7d636a718 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyBrick.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyBrick.java @@ -40,9 +40,12 @@ public class TileEntityChimneyBrick extends TileEntityLoadedBase implements IFlu NBTTagCompound data = new NBTTagCompound(); data.setInteger("onTicks", onTicks); INBTPacketReceiver.networkPack(this, data, 150); + + if(onTicks > 0) onTicks--; + } else { - if(onTicks < 0) { + if(onTicks > 0) { if(worldObj.getTotalWorldTime() % 2 == 0) { NBTTagCompound fx = new NBTTagCompound(); @@ -77,9 +80,9 @@ public class TileEntityChimneyBrick extends TileEntityLoadedBase implements IFlu fluid *= 0.25; - if(type == Fluids.SMOKE) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, fluid / 40F); - if(type == Fluids.SMOKE_LEADED) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.HEAVYMETAL, fluid / 40F); - if(type == Fluids.SMOKE_POISON) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.POISON, fluid / 40F); + if(type == Fluids.SMOKE) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, fluid / 100F); + if(type == Fluids.SMOKE_LEADED) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.HEAVYMETAL, fluid / 100F); + if(type == Fluids.SMOKE_POISON) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.POISON, fluid / 100F); return 0; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnace.java b/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnace.java index 55e9712f8..1a10e1a7e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnace.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnace.java @@ -40,7 +40,7 @@ public class TileEntityDiFurnace extends TileEntityMachinePolluting implements I public byte sideLower = 1; public TileEntityDiFurnace() { - super(4, 1200); + super(4, 50); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFireboxBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFireboxBase.java index 3923448d7..e34d8eb8e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFireboxBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFireboxBase.java @@ -34,7 +34,7 @@ public abstract class TileEntityFireboxBase extends TileEntityMachinePolluting i public TileEntityFireboxBase() { - super(2, 1_200); + super(2, 50); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceCombination.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceCombination.java index b5a762026..de325d440 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceCombination.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceCombination.java @@ -42,7 +42,7 @@ public class TileEntityFurnaceCombination extends TileEntityMachinePolluting imp public FluidTank tank; public TileEntityFurnaceCombination() { - super(4, 1_200); + super(4, 50); this.tank = new FluidTank(Fluids.NONE, 24_000); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOilburner.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOilburner.java index 578b24826..41bb5ed92 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOilburner.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOilburner.java @@ -35,7 +35,7 @@ public class TileEntityHeaterOilburner extends TileEntityMachinePolluting implem public static final int maxHeatEnergy = 100_000; public TileEntityHeaterOilburner() { - super(3, 2_000); + super(3, 100); tank = new FluidTank(Fluids.HEATINGOIL, 16000); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCoal.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCoal.java index 34c858098..88e45d6b7 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCoal.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCoal.java @@ -51,7 +51,7 @@ public class TileEntityMachineCoal extends TileEntityMachinePolluting implements public static double fuelMod = 0.5D; public TileEntityMachineCoal() { - super(4, 120); + super(4, 50); tank = new FluidTank(Fluids.WATER, waterCap, 0); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java index d824817ee..38fce4e2a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java @@ -52,7 +52,7 @@ public class TileEntityMachineCombustionEngine extends TileEntityMachinePollutin public int tenth = 0; public TileEntityMachineCombustionEngine() { - super(5, 1_200); + super(5, 50); this.tank = new FluidTank(Fluids.DIESEL, 24_000, 0); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java index 3159686a9..f1c7097e7 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java @@ -61,7 +61,7 @@ public class TileEntityMachineDiesel extends TileEntityMachinePolluting implemen private static final int[] slots_side = new int[] { 2 }; public TileEntityMachineDiesel() { - super(5, 200); + super(5, 100); tank = new FluidTank(Fluids.DIESEL, 4_000, 0); } @@ -323,6 +323,6 @@ public class TileEntityMachineDiesel extends TileEntityMachinePolluting implemen @Override public FluidTank[] getSendingTanks() { - return null; + return this.getSmokeTanks(); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java index 033969173..b98d7daf0 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java @@ -69,7 +69,7 @@ public class TileEntityMachineTurbineGas extends TileEntityMachinePolluting impl //TODO particles from heat exchanger maybe? maybe in a future public TileEntityMachineTurbineGas() { - super(2, 5_000); + super(2, 200); this.tanks = new FluidTank[4]; tanks[0] = new FluidTank(Fluids.GAS, 100000); tanks[1] = new FluidTank(Fluids.LUBRICANT, 16000); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java index c0f0575bd..53e056569 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java @@ -64,7 +64,7 @@ public class TileEntityMachineTurbofan extends TileEntityMachinePolluting implem private AudioWrapper audio; public TileEntityMachineTurbofan() { - super(5, 4_000); + super(5, 150); tank = new FluidTank(Fluids.KEROSENE, 24000); blood = new FluidTank(Fluids.BLOOD, 24000); } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 1a4bc80b9..2264cc015 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -707,6 +707,9 @@ hbmfluid.sas3=Schrabidiumtrisulfat hbmfluid.schrabidic=Schrabidische Säure hbmfluid.seedslurry=Saatgemisch hbmfluid.smear=Industrieöl +hbmfluid.smoke=Abgas +hbmfluid.smoke_leaded=Bleiabgas +hbmfluid.smoke_poison=Giftige Abgase hbmfluid.solvent=Lösungsmittel hbmfluid.sourgas=Saures Gas hbmfluid.spentsteam=Niedrigdruckdampf @@ -3624,6 +3627,7 @@ tile.charge_semtex.name=Semtex-Bergbauladung tile.charger.name=Ladestation tile.cheater_virus.name=Geliertes Euphemium tile.cheater_virus_seed.name=Instabiler Euphemiumschrabid-Block +tile.chimney_brick.name=Schornstein tile.chlorine_gas.name=Chlorgas tile.cluster_aluminium.name=Aluminiumerzcluster tile.cluster_copper.name=Kupfererzcluster diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 75ec980cc..98af28e56 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1324,6 +1324,9 @@ hbmfluid.sas3=Schrabidium Trisulfide hbmfluid.schrabidic=Schrabidic Acid hbmfluid.seedslurry=Seeding Slurry hbmfluid.smear=Industrial Oil +hbmfluid.smoke=Smoke +hbmfluid.smoke_leaded=Leaded Smoke +hbmfluid.smoke_poison=Poison Smoke hbmfluid.solvent=Solvent hbmfluid.sourgas=Sour Gas hbmfluid.spentsteam=Low-Pressure Steam @@ -4487,6 +4490,7 @@ tile.charge_semtex.name=Semtex Mining Charge tile.charger.name=Charging Station tile.cheater_virus.name=Gelid Euphemium tile.cheater_virus_seed.name=Unstable Euphemium Schrabide Block +tile.chimney_brick.name=Smokestack tile.chlorine_gas.name=Chlorine Gas tile.cluster_aluminium.name=Aluminium Ore Cluster tile.cluster_copper.name=Copper Ore Cluster diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/smoke.png b/src/main/resources/assets/hbm/textures/gui/fluids/smoke.png new file mode 100644 index 0000000000000000000000000000000000000000..1e275e7d354631a878ebb4905f1f2797be37213a GIT binary patch literal 8176 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 AKL7v# literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/smoke_poison.png b/src/main/resources/assets/hbm/textures/gui/fluids/smoke_poison.png new file mode 100644 index 0000000000000000000000000000000000000000..4af9e902805c8dcc7080995ac5b06973e2300d2c GIT binary patch literal 5821 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 Hu0mjf*RSoH literal 0 HcmV?d00001 From e46acfb19a5b958d84dd0bbfd4bfc20be1ff6da4 Mon Sep 17 00:00:00 2001 From: Bob Date: Sat, 1 Jul 2023 20:26:53 +0200 Subject: [PATCH 173/432] beep beep --- .../java/com/hbm/crafting/WeaponRecipes.java | 1 - .../java/com/hbm/entity/EntityMappings.java | 1 - .../hbm/entity/grenade/EntityGrenadeCats.java | 50 ------------------- src/main/java/com/hbm/items/ModItems.java | 3 -- .../com/hbm/items/weapon/ItemGrenade.java | 3 -- src/main/java/com/hbm/main/ClientProxy.java | 1 - src/main/java/com/hbm/main/MainRegistry.java | 5 -- 7 files changed, 64 deletions(-) delete mode 100644 src/main/java/com/hbm/entity/grenade/EntityGrenadeCats.java diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index 86ea190d8..d1fd20064 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -347,7 +347,6 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_pink_cloud), new Object[] { " S ", "ECE", " E ", 'S', ModItems.powder_spark_mix, 'E', ModItems.powder_magic, 'C', ModItems.grenade_cloud }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.nuclear_waste_pearl), new Object[] { "WWW", "WFW", "WWW", 'W', ModItems.nuclear_waste_tiny, 'F', ModBlocks.block_fallout }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.grenade_kyiv), new Object[] { ModItems.canister_napalm, ModItems.bottle2_empty, ModItems.rag }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenate_cats), "FFF", "FGF", "FFF", 'F', new ItemStack(Items.fish, 1, OreDictionary.WILDCARD_VALUE), 'G', ModItems.grenade_smart); //Sticks of explosives CraftingManager.addRecipeAuto(new ItemStack(ModItems.stick_dynamite, 4), new Object[] { " S ", "PDP", "PDP", 'S', ModItems.safety_fuse, 'P', Items.paper, 'D', ModItems.ball_dynamite }); diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index 8659a7426..b41ab7eb7 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -142,7 +142,6 @@ public class EntityMappings { addEntity(EntityGrenadeMIRV.class, "entity_grenade_mirv", 250); addEntity(EntityGrenadeBreach.class, "entity_grenade_breach", 250); addEntity(EntityGrenadeBurst.class, "entity_grenade_burst", 250); - addEntity(EntityGrenadeCats.class, "entity_grenade_cats", 250); addEntity(EntityBurningFOEQ.class, "entity_burning_foeq", 1000); addEntity(EntityGrenadeIFGeneric.class, "entity_grenade_ironshod", 250); addEntity(EntityGrenadeIFHE.class, "entity_grenade_ironshod_he", 250); diff --git a/src/main/java/com/hbm/entity/grenade/EntityGrenadeCats.java b/src/main/java/com/hbm/entity/grenade/EntityGrenadeCats.java deleted file mode 100644 index 0f9c21275..000000000 --- a/src/main/java/com/hbm/entity/grenade/EntityGrenadeCats.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.hbm.entity.grenade; - -import com.hbm.items.ModItems; -import com.hbm.items.weapon.ItemGrenade; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.passive.EntityOcelot; -import net.minecraft.world.World; - -public class EntityGrenadeCats extends EntityGrenadeBouncyBase { - - public EntityGrenadeCats(World world) { - super(world); - } - - public EntityGrenadeCats(World world, EntityLivingBase living) { - super(world, living); - } - - public EntityGrenadeCats(World world, double posX, double posY, double posZ) { - super(world, posX, posY, posZ); - } - - @Override - public void explode() { - if (!this.worldObj.isRemote) { - this.setDead(); - - for(int i = 0; i < 5; i++) { - EntityOcelot cat = new EntityOcelot(worldObj); - cat.setPosition(posX, posY, posZ); - cat.motionX = rand.nextGaussian() * 0.1D; - cat.motionY = -0.25D; - cat.motionZ = rand.nextGaussian() * 0.1D; - - worldObj.spawnEntityInWorld(cat); - cat.onSpawnWithEgg(null); - } - } - } - - @Override - protected int getMaxTimer() { - return ItemGrenade.getFuseTicks(ModItems.grenate_cats); - } - - @Override - protected double getBounceMod() { - return 0.25D; - } -} diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 3b3fe6874..4ed72c5e5 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1673,7 +1673,6 @@ public class ModItems { public static Item grenade_mirv; public static Item grenade_breach; public static Item grenade_burst; - public static Item grenate_cats; public static Item nuclear_waste_pearl; @@ -4293,7 +4292,6 @@ public class ModItems { grenade_mirv = new ItemGrenade(1).setUnlocalizedName("grenade_mirv").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_mirv"); grenade_breach = new ItemGrenade(-1).setUnlocalizedName("grenade_breach").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_breach"); grenade_burst = new ItemGrenade(1).setUnlocalizedName("grenade_burst").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_burst"); - grenate_cats = new ItemGrenade(1).setUnlocalizedName("grenate_cats").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_cats"); nuclear_waste_pearl = new ItemGrenade(-1).setUnlocalizedName("nuclear_waste_pearl").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":nuclear_waste_pearl"); weaponized_starblaster_cell = new WeaponizedCell().setUnlocalizedName("weaponized_starblaster_cell").setMaxStackSize(1).setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_b92_ammo_weaponized"); @@ -7346,7 +7344,6 @@ public class ModItems { GameRegistry.registerItem(grenade_if_spark, grenade_if_spark.getUnlocalizedName()); GameRegistry.registerItem(grenade_if_hopwire, grenade_if_hopwire.getUnlocalizedName()); GameRegistry.registerItem(grenade_if_null, grenade_if_null.getUnlocalizedName()); - GameRegistry.registerItem(grenate_cats, grenate_cats.getUnlocalizedName()); GameRegistry.registerItem(nuclear_waste_pearl, nuclear_waste_pearl.getUnlocalizedName()); GameRegistry.registerItem(ullapool_caber, ullapool_caber.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/weapon/ItemGrenade.java b/src/main/java/com/hbm/items/weapon/ItemGrenade.java index 7451f6a3a..4bca576fe 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGrenade.java +++ b/src/main/java/com/hbm/items/weapon/ItemGrenade.java @@ -172,9 +172,6 @@ public class ItemGrenade extends Item { if (this == ModItems.stick_dynamite) { p_77659_2_.spawnEntityInWorld(new EntityGrenadeDynamite(p_77659_2_, p_77659_3_)); } - if (this == ModItems.grenate_cats) { - p_77659_2_.spawnEntityInWorld(new EntityGrenadeCats(p_77659_2_, p_77659_3_)); - } } return p_77659_1_; diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 45ccf168e..2cc2d6e41 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -634,7 +634,6 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityGrenadeDynamite.class, new RenderSnowball(ModItems.stick_dynamite)); RenderingRegistry.registerEntityRenderingHandler(EntityGrenadeBouncyGeneric.class, new RenderGenericGrenade()); RenderingRegistry.registerEntityRenderingHandler(EntityGrenadeImpactGeneric.class, new RenderGenericGrenade()); - RenderingRegistry.registerEntityRenderingHandler(EntityGrenadeCats.class, new RenderSnowball(ModItems.grenate_cats)); //missiles RenderingRegistry.registerEntityRenderingHandler(EntityTestMissile.class, new RenderTestMissile()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileCustom.class, new RenderMissileCustom()); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 4e182b4ff..9a809a1ba 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -607,11 +607,6 @@ public class MainRegistry { return new EntityGrenadeIFNull(p_82499_1_, p_82499_2_.getX(), p_82499_2_.getY(), p_82499_2_.getZ()); } }); - BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenate_cats, new BehaviorProjectileDispense() { - protected IProjectile getProjectileEntity(World p_82499_1_, IPosition p_82499_2_) { - return new EntityGrenadeCats(p_82499_1_, p_82499_2_.getX(), p_82499_2_.getY(), p_82499_2_.getZ()); - } - }); BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.nuclear_waste_pearl, new BehaviorProjectileDispense() { protected IProjectile getProjectileEntity(World world, IPosition position) { From 65ed6a4f9a8ae6664d80ff17d22a02a273443b60 Mon Sep 17 00:00:00 2001 From: Bob Date: Sat, 1 Jul 2023 21:43:29 +0200 Subject: [PATCH 174/432] helium 4 plasma --- changelog | 13 ++++++++++++- .../hbm/inventory/FluidContainerRegistry.java | 3 ++- .../java/com/hbm/inventory/fluid/Fluids.java | 7 +++++-- .../inventory/recipes/LiquefactionRecipes.java | 1 + .../machine/TileEntityMachineCompressor.java | 4 ++-- .../machine/TileEntityMachinePlasmaHeater.java | 4 ++-- .../tileentity/machine/TileEntityRadiobox.java | 9 ++++++++- src/main/resources/assets/hbm/lang/de_DE.lang | 3 ++- src/main/resources/assets/hbm/lang/en_US.lang | 3 ++- .../assets/hbm/textures/gui/fluids/helium4.png | Bin 0 -> 549 bytes .../hbm/textures/models/tank/tank_HELIUM4.png | Bin 0 -> 1260 bytes 11 files changed, 36 insertions(+), 11 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/helium4.png create mode 100644 src/main/resources/assets/hbm/textures/models/tank/tank_HELIUM4.png diff --git a/changelog b/changelog index f51dde21b..c2ae5647e 100644 --- a/changelog +++ b/changelog @@ -10,11 +10,22 @@ * Most polluting machines can now be connected to a smokestack with exhaust pipes * The smokestack will vent the pollution created by the machines, reducing it by 75% * Compatible with soot, heavy metal and poison pollution +* Sliding blast door + * Everyone's favorite from 1.12 + * Has multiple skins that can be applied +* Helium-4 + * Used in helium-4-oxygen plasma + * Made from ionized particles in a liquefactor ## Changed * Glyphids now have a config for a global spawn limit, which is 50 by default, no more than this many glyphids can be created at once * Removed the old oil and gas ducts for good +* FBI agents and drones no longer take damage from rosenberg pest control boxes +* Compressors now have a base comsumption of 2,500 HE/t instwad of 10,000 +* On 528 mode, gas shale now only contains 50mB of petroleum instead of 250mB +* Xenon-mercury plasma has been changed into helium-4-oxygen plasma ## Fixed * Fixed player extprops like the HUD or backpack toggles not saving -* Fixed desync caused by teleporting between dimensions, switching toggles for HUD or backpack \ No newline at end of file +* Fixed desync caused by teleporting between dimensions, switching toggles for HUD or backpack +* Fixed potential issue causing the plasma heater to overfill \ No newline at end of file diff --git a/src/main/java/com/hbm/inventory/FluidContainerRegistry.java b/src/main/java/com/hbm/inventory/FluidContainerRegistry.java index 4ad6a1b50..ce1c1977e 100644 --- a/src/main/java/com/hbm/inventory/FluidContainerRegistry.java +++ b/src/main/java/com/hbm/inventory/FluidContainerRegistry.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.List; import com.hbm.blocks.ModBlocks; +import com.hbm.config.GeneralConfig; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.Fluids.CD_Canister; @@ -33,7 +34,7 @@ public class FluidContainerRegistry { FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModBlocks.lox_barrel), new ItemStack(ModItems.tank_steel), Fluids.OXYGEN, 10000)); FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModBlocks.ore_oil), null, Fluids.OIL, 250)); - FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModBlocks.ore_gneiss_gas), null, Fluids.PETROLEUM, 250)); + FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModBlocks.ore_gneiss_gas), null, Fluids.PETROLEUM, GeneralConfig.enable528 ? 50 : 250)); FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.cell_deuterium), new ItemStack(ModItems.cell_empty), Fluids.DEUTERIUM, 1000)); FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.cell_tritium), new ItemStack(ModItems.cell_empty), Fluids.TRITIUM, 1000)); diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index 6fdebb888..0c1d523d7 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -155,6 +155,7 @@ public class Fluids { public static FluidType SMOKE; public static FluidType SMOKE_LEADED; public static FluidType SMOKE_POISON; + public static FluidType HELIUM4; private static final HashMap idMapping = new HashMap(); private static final HashMap nameMapping = new HashMap(); @@ -244,7 +245,7 @@ public class Fluids { PLASMA_BF = new FluidType("PLASMA_BF", 0xA7F1A3, 4, 5, 4, EnumSymbol.ANTIMATTER).setTemp(8500).addTraits(NOCON, NOID, PLASMA); CARBONDIOXIDE = new FluidType("CARBONDIOXIDE", 0x404040, 3, 0, 0, EnumSymbol.ASPHYXIANT).addTraits(GASEOUS); PLASMA_DH3 = new FluidType("PLASMA_DH3", 0xFF83AA, 0, 4, 0, EnumSymbol.RADIATION).setTemp(3480).addTraits(NOCON, NOID, PLASMA); - HELIUM3 = new FluidType("HELIUM3", 0xFCF0C4, 3, 4, 0, EnumSymbol.ASPHYXIANT).addTraits(GASEOUS); + HELIUM3 = new FluidType("HELIUM3", 0xFCF0C4, 0, 0, 0, EnumSymbol.ASPHYXIANT).addTraits(GASEOUS); DEATH = new FluidType("DEATH", 0x717A88, 2, 0, 1, EnumSymbol.ACID).setTemp(300).addTraits(new FT_Corrosive(80), new FT_Poison(true, 4), LEADCON, LIQUID, VISCOUS); ETHANOL = new FluidType("ETHANOL", 0xe0ffff, 2, 3, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xEAFFF3)).addTraits(new FT_Flammable(75_000), new FT_Combustible(FuelGrade.HIGH, 200_000), LIQUID); HEAVYWATER = new FluidType("HEAVYWATER", 0x00a0b0, 1, 0, 0, EnumSymbol.NONE).addTraits(LIQUID); @@ -309,7 +310,8 @@ public class Fluids { CALCIUM_SOLUTION = new FluidType("CALCIUM_SOLUTION", 0x808080, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, NOCON, new FT_Corrosive(60)); SMOKE = new FluidType("SMOKE", 0x808080, 0, 0, 0, EnumSymbol.NONE).addTraits(GASEOUS, NOID, NOCON); SMOKE_LEADED = new FluidType("SMOKE_LEADED", 0x808080, 0, 0, 0, EnumSymbol.NONE).addTraits(GASEOUS, NOID, NOCON); - SMOKE_POISON = new FluidType(122, "SMOKE_POISON", 0x808080, 0, 0, 0, EnumSymbol.NONE).addTraits(GASEOUS, NOID, NOCON); + SMOKE_POISON = new FluidType("SMOKE_POISON", 0x808080, 0, 0, 0, EnumSymbol.NONE).addTraits(GASEOUS, NOID, NOCON); + HELIUM4 = new FluidType(123,"HELIUM4", 0xE54B0A, 0, 0, 0, EnumSymbol.ASPHYXIANT).addTraits(GASEOUS); // ^ ^ ^ ^ ^ ^ ^ ^ //ADD NEW FLUIDS HERE @@ -342,6 +344,7 @@ public class Fluids { metaOrder.add(DEUTERIUM); metaOrder.add(TRITIUM); metaOrder.add(HELIUM3); + metaOrder.add(HELIUM4); metaOrder.add(OXYGEN); metaOrder.add(XENON); metaOrder.add(CHLORINE); diff --git a/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java b/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java index 43ee798ca..a35f15425 100644 --- a/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java @@ -52,6 +52,7 @@ public class LiquefactionRecipes extends SerializableRecipe { recipes.put(new ComparableStack(Blocks.ice), new FluidStack(1000, Fluids.WATER)); recipes.put(new ComparableStack(Blocks.packed_ice), new FluidStack(1000, Fluids.WATER)); recipes.put(new ComparableStack(Items.ender_pearl), new FluidStack(100, Fluids.ENDERJUICE)); + recipes.put(new ComparableStack(ModItems.pellet_charged), new FluidStack(4000, Fluids.HELIUM4)); recipes.put(new ComparableStack(Items.sugar), new FluidStack(100, Fluids.ETHANOL)); recipes.put(new ComparableStack(ModBlocks.plant_flower, 1, 3), new FluidStack(150, Fluids.ETHANOL)); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java index 82467211b..2105af196 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java @@ -34,13 +34,13 @@ public class TileEntityMachineCompressor extends TileEntityMachineBase implement public FluidTank[] tanks; public long power; - public static final long maxPower = 1_000_000; + public static final long maxPower = 100_000; public boolean isOn; public int progress; public int processTime = 100; public static final int processTimeBase = 100; public int powerRequirement; - public static final int powerRequirementBase = 10_000; + public static final int powerRequirementBase = 2_500; public float fanSpin; public float prevFanSpin; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePlasmaHeater.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePlasmaHeater.java index 0f91fdfb6..2ddf52c34 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePlasmaHeater.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePlasmaHeater.java @@ -69,7 +69,7 @@ public class TileEntityMachinePlasmaHeater extends TileEntityMachineBase impleme int powerReq = 10000; int convert = Math.min(tanks[0].getFill(), tanks[1].getFill()); - convert = Math.min(convert, (plasma.getMaxFill() - plasma.getFill())); + convert = Math.min(convert, (plasma.getMaxFill() - plasma.getFill()) / 2); convert = Math.min(convert, maxConv); convert = (int) Math.min(convert, power / powerReq); convert = Math.max(0, convert); @@ -174,7 +174,7 @@ public class TileEntityMachinePlasmaHeater extends TileEntityMachineBase impleme plasma.setTankType(Fluids.PLASMA_HT); return; } - if(types.contains(Fluids.XENON) && types.contains(Fluids.MERCURY)) { + if(types.contains(Fluids.HELIUM4) && types.contains(Fluids.OXYGEN)) { plasma.setTankType(Fluids.PLASMA_XM); return; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityRadiobox.java b/src/main/java/com/hbm/tileentity/machine/TileEntityRadiobox.java index b2ca2d267..8a513a99b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityRadiobox.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityRadiobox.java @@ -2,6 +2,8 @@ package com.hbm.tileentity.machine; import java.util.List; +import com.hbm.entity.mob.EntityFBI; +import com.hbm.entity.mob.EntityFBIDrone; import com.hbm.inventory.container.ContainerRadiobox; import com.hbm.lib.ModDamageSource; import com.hbm.tileentity.IGUIProvider; @@ -42,8 +44,13 @@ public class TileEntityRadiobox extends TileEntityLoadedBase implements IEnergyU int range = 15; List entities = worldObj.getEntitiesWithinAABB(IMob.class, AxisAlignedBB.getBoundingBox(xCoord - range, yCoord - range, zCoord - range, xCoord + range, yCoord + range, zCoord + range)); - for(IMob entity : entities) + + for(IMob entity : entities) { + + if(entity instanceof EntityFBI || entity instanceof EntityFBIDrone) continue; + ((Entity)entity).attackEntityFrom(ModDamageSource.enervation, 20.0F); + } } } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 2264cc015..a727f87fd 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -656,6 +656,7 @@ hbmfluid.heavyoil=Schweröl hbmfluid.heavyoil_vacuum=Vakuum-Schweröl hbmfluid.heavywater=Schweres Wasser hbmfluid.helium3=Helium-3 +hbmfluid.helium4=Helium-4 hbmfluid.hotcrackoil=Heißes Crack-Öl hbmfluid.hotoil=Heißes Rohöl hbmfluid.hotsteam=Dichter Dampf @@ -694,7 +695,7 @@ hbmfluid.plasma_dh3=Deuterium-Helium-3-Plasma hbmfluid.plasma_dt=Deuterium-Tritium-Plasma hbmfluid.plasma_hd=Wasserstoff-Deuterium-Plasma hbmfluid.plasma_ht=Wasserstoff-Tritium-Plasma -hbmfluid.plasma_xm=Xenon-Quecksilber-Plasma +hbmfluid.plasma_xm=Helium-4-Sauerstoff-Plasma hbmfluid.potassium_chloride=Kaliumchlorid-Lösung hbmfluid.puf6=Plutoniumhexafluorid hbmfluid.radiosolvent=Hochleistungs-Lösungsmittel diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 2989c72ae..fbde73d5c 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1273,6 +1273,7 @@ hbmfluid.heavyoil=Heavy Oil hbmfluid.heavyoil_vacuum=Vacuum Heavy Oil hbmfluid.heavywater=Heavy Water hbmfluid.helium3=Helium-3 +hbmfluid.helium4=Helium-4 hbmfluid.hotcrackoil=Hot Cracked Oil hbmfluid.hotoil=Hot Crude Oil hbmfluid.hotsteam=Dense Steam @@ -1311,7 +1312,7 @@ hbmfluid.plasma_dh3=Deuterium-Helium-3 Plasma hbmfluid.plasma_dt=Deuterium-Tritium Plasma hbmfluid.plasma_hd=Hydrogen-Deuterium Plasma hbmfluid.plasma_ht=Hydrogen-Tritium Plasma -hbmfluid.plasma_xm=Xenon-Mercury Plasma +hbmfluid.plasma_xm=Helium-4-Oxygen Plasma hbmfluid.potassium_chloride=Potassiumchloride Solution hbmfluid.puf6=Plutonium Hexafluoride hbmfluid.radiosolvent=High-Performance Solvent diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/helium4.png b/src/main/resources/assets/hbm/textures/gui/fluids/helium4.png new file mode 100644 index 0000000000000000000000000000000000000000..bbf8ac23c206fe932640b5a3bba0184d49d0e1f4 GIT binary patch literal 549 zcmV+=0^0qFP)$(8&-qTv6l!BQ(&Qz6JEBn3!5JF&GSIi7m zW!pAXm1&xIdU|5tcWSLT=MWKm&Uq+J(?m*%7$aszYmF{&90vf-IRJ9bgbT&Gh^E}{IVTXH(C%Y&&e3D9s&sZTO%waRV`k&qV||_{BEq_^?EB7f960AFrO;Y?h<26!^8l>t n%J=vFBbjD~nGHs@Rz!rqyLCJU`ycPR00000NkvXXu0mjfBsm2# literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/tank/tank_HELIUM4.png b/src/main/resources/assets/hbm/textures/models/tank/tank_HELIUM4.png new file mode 100644 index 0000000000000000000000000000000000000000..8ca2d648f87221dd20645d5ce8045422557777b4 GIT binary patch literal 1260 zcmeAS@N?(olHy`uVBq!ia0vp^RY2Us!3HEZPulwcNU;<$n7t?;ucIeO}m9T?;DU9X}eF;uW z{rO$r_S#l|4#=B-_uZ+7*S2Tv*5IoA{_6TE!{l5R(T&f|H=fc>ijA}=Z(pS0vQ2J# z_acGHt%fJg8=VO>=-Bi%>^8G#q|1|=3GPmpG`0we-0JAfN~x&5xg*#z;qc`g*|@U) zUHvIj?(6DWDW-4Vt$ka5|9+V_H;!n#9?`B4Tz^5j)vU=$+Hp^i%bq6jk6OV%(XB_d z)eIcf9Vlj?>5u8?cs(ktWk#PXE@&NHBwsA|4!y#_lCId!AI9! zzpJLQYHOmwvtgTGXpF>mWZx@wf%L=0#|hvlekdjPwEPBnwPr5 z4Oc4)tQR_TN$f?h*xa2Lq@QG7bOT02=8@GiGE|+q{k%N(bajR)9nlVz`lwZAaxOtf zan{E!r}RbdKLvle=oXNn+yM-iSuzq$Vsi!lttnU*^lNu`&n{qOXn%2A*t_5Y&@`FZ z?BYsFMdkbKPkihM=hW(sxi2UD(QD@V4M2&#(PdsAPt|mnb=Q>d+aGjiV|3Y@OJa&X z;=AHf?tk0m_t^RM-$^r5tD@=)OXG9(zdti7mWzIOHnq}fz1@AA9TT43yHhraveRnooZg!IWP1V`e>rXwpVt;LZ{x6$v*-rB|uPa{&OwiY6)*n8?wJuI` zR>>ZxJ!>9`%FXNw=QzGM{6#M?`z`DR#;y`DJylHAd?dQ3gP^FFX53%KtH#!o4l=G> R11!E6JYD@<);T3K0RTf1R Date: Sat, 1 Jul 2023 21:52:08 +0200 Subject: [PATCH 175/432] *chuckles* i'm in danger --- src/main/java/com/hbm/blocks/network/CraneGrabber.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/blocks/network/CraneGrabber.java b/src/main/java/com/hbm/blocks/network/CraneGrabber.java index 71372467b..5c0ee4bb1 100644 --- a/src/main/java/com/hbm/blocks/network/CraneGrabber.java +++ b/src/main/java/com/hbm/blocks/network/CraneGrabber.java @@ -50,7 +50,7 @@ public class CraneGrabber extends BlockCraneBase { @Override public void breakBlock(World world, int x, int y, int z, Block block, int meta) { - this.dropContents(world, x, y, z, block, meta, 0, 11); + this.dropContents(world, x, y, z, block, meta, 9, 11); super.breakBlock(world, x, y, z, block, meta); } } From 843efd575e3ec872c4f504abc1807398a5c23ecd Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 2 Jul 2023 18:59:47 +0200 Subject: [PATCH 176/432] some train stuff --- changelog | 8 +- gradle.properties | 2 +- .../java/com/hbm/entity/EntityMappings.java | 1 + .../com/hbm/entity/train/TrainTunnelBore.java | 54 + .../java/com/hbm/items/special/ItemTrain.java | 4 +- src/main/java/com/hbm/main/ClientProxy.java | 1 + .../java/com/hbm/main/ResourceManager.java | 1 + .../render/entity/item/RenderTunnelBore.java | 60 + .../machine/TileEntityMachineCompressor.java | 2 +- .../hbm/models/vehicles/tunnel_bore.obj | 7617 +++++++++++++++++ .../hbm/textures/items/train.tunnel_bore.png | Bin 0 -> 169 bytes 11 files changed, 7746 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/hbm/entity/train/TrainTunnelBore.java create mode 100644 src/main/java/com/hbm/render/entity/item/RenderTunnelBore.java create mode 100644 src/main/resources/assets/hbm/models/vehicles/tunnel_bore.obj create mode 100644 src/main/resources/assets/hbm/textures/items/train.tunnel_bore.png diff --git a/changelog b/changelog index c2ae5647e..ae41e4836 100644 --- a/changelog +++ b/changelog @@ -4,6 +4,9 @@ * Glyphid meat * Dropped by glyphids (duh) * Can be grilled +* Glyphid eggs + * Dropped from glyphid spawners + * Currently unused * Fluid valves * come in manual and restone variants * Smokestack @@ -24,8 +27,11 @@ * Compressors now have a base comsumption of 2,500 HE/t instwad of 10,000 * On 528 mode, gas shale now only contains 50mB of petroleum instead of 250mB * Xenon-mercury plasma has been changed into helium-4-oxygen plasma + * This means that current xenon-mercury setups will no longer work ## Fixed * Fixed player extprops like the HUD or backpack toggles not saving * Fixed desync caused by teleporting between dimensions, switching toggles for HUD or backpack -* Fixed potential issue causing the plasma heater to overfill \ No newline at end of file +* Fixed potential issue causing the plasma heater to overfill +* Fixed back connector of the compressor not working properly +* Fixed a dupe regarind one of the conveyor blocks, not telling you which, though \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index fa397e559..e58957a96 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4641 +mod_build_number=4648 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index b41ab7eb7..9e3d2919f 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -220,6 +220,7 @@ public class EntityMappings { addEntity(BoundingBoxDummyEntity.class, "entity_ntm_bounding_dummy", 250, false); addEntity(TrainCargoTram.class, "entity_ntm_cargo_tram", 250, false); addEntity(TrainCargoTramTrailer.class, "entity_ntm_cargo_tram_trailer", 250, false); + addEntity(TrainTunnelBore.class, "entity_ntm_tunnel_bore", 250, false); addMob(EntityCreeperNuclear.class, "entity_mob_nuclear_creeper", 0x204131, 0x75CE00); addMob(EntityCreeperTainted.class, "entity_mob_tainted_creeper", 0x813b9b, 0xd71fdd); diff --git a/src/main/java/com/hbm/entity/train/TrainTunnelBore.java b/src/main/java/com/hbm/entity/train/TrainTunnelBore.java new file mode 100644 index 000000000..f7b10493e --- /dev/null +++ b/src/main/java/com/hbm/entity/train/TrainTunnelBore.java @@ -0,0 +1,54 @@ +package com.hbm.entity.train; + +import com.hbm.blocks.rail.IRailNTM.TrackGauge; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.DamageSource; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public class TrainTunnelBore extends EntityRailCarRidable { + + public TrainTunnelBore(World world) { + super(world); + this.setSize(6F, 4F); + } + + @Override public double getPoweredAcceleration() { return 0.01; } + @Override public double getPassivBrake() { return 0.95; } + @Override public boolean shouldUseEngineBrake(EntityPlayer player) { return Math.abs(this.engineSpeed) < 0.1; } + @Override public double getMaxPoweredSpeed() { return 0.5; } + @Override public double getMaxRailSpeed() { return 1; } + + @Override public TrackGauge getGauge() { return TrackGauge.STANDARD; } + @Override public double getLengthSpan() { return 2.5; } + @Override public double getCollisionSpan() { return 4.5; } + @Override public Vec3 getRiderSeatPosition() { return Vec3.createVectorHelper(0.0, 2.375, -2.375); } + @Override public boolean shouldRiderSit() { return true; } + @Override public int getSizeInventory() { return 0; } + @Override public String getInventoryName() { return this.hasCustomInventoryName() ? this.getEntityName() : "container.trainTunnelBore"; } + @Override public double getCouplingDist(TrainCoupling coupling) { return coupling != null ? 2.75 : 0; } + + @Override public boolean canAccelerate() { return true; } + @Override public Vec3[] getPassengerSeats() { return new Vec3[0]; } + + @Override + public DummyConfig[] getDummies() { + return new DummyConfig[] { + new DummyConfig(2F, 3F, Vec3.createVectorHelper(0, 0, 2.5)), + new DummyConfig(2F, 3F, Vec3.createVectorHelper(0, 0, 1.25)), + new DummyConfig(2F, 3F, Vec3.createVectorHelper(0, 0, 0)), + new DummyConfig(2F, 3F, Vec3.createVectorHelper(0, 0, -1.25)), + new DummyConfig(2F, 3F, Vec3.createVectorHelper(0, 0, -2.5)) + }; + } + + @Override + public boolean attackEntityFrom(DamageSource source, float amount) { + if(!this.worldObj.isRemote && !this.isDead) { + this.setDead(); + } + + return true; + } +} diff --git a/src/main/java/com/hbm/items/special/ItemTrain.java b/src/main/java/com/hbm/items/special/ItemTrain.java index a99df9079..007d31a91 100644 --- a/src/main/java/com/hbm/items/special/ItemTrain.java +++ b/src/main/java/com/hbm/items/special/ItemTrain.java @@ -8,6 +8,7 @@ import com.hbm.blocks.rail.IRailNTM.RailCheckType; import com.hbm.entity.train.EntityRailCarBase; import com.hbm.entity.train.TrainCargoTram; import com.hbm.entity.train.TrainCargoTramTrailer; +import com.hbm.entity.train.TrainTunnelBore; import com.hbm.items.ItemEnumMulti; import com.hbm.util.EnumUtil; import com.hbm.util.fauxpointtwelve.BlockPos; @@ -44,7 +45,8 @@ public class ItemTrain extends ItemEnumMulti { // Engine Gauge Max Speed Accel. Eng. Brake Parking Brake CARGO_TRAM(TrainCargoTram.class, "Electric", "Standard Gauge", "10m/s", "0.2m/s", "<1m/s", "Yes"), - CARGO_TRAM_TRAILER(TrainCargoTramTrailer.class, null, "Standard Gauge", "Yes", null, null, "No"); + CARGO_TRAM_TRAILER(TrainCargoTramTrailer.class, null, "Standard Gauge", "Yes", null, null, "No"), + TUNNEL_BORE(TrainTunnelBore.class, "NONE", "Standard Gauge", "10m/s", "0.2m/s", "<1m/s", "Yes"); public Class train; public String engine; diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 2cc2d6e41..d39bef440 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -693,6 +693,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(BoundingBoxDummyEntity.class, new RenderEmpty()); RenderingRegistry.registerEntityRenderingHandler(TrainCargoTram.class, new RenderTrainCargoTram()); RenderingRegistry.registerEntityRenderingHandler(TrainCargoTramTrailer.class, new RenderTrainCargoTramTrailer()); + RenderingRegistry.registerEntityRenderingHandler(TrainTunnelBore.class, new RenderTunnelBore()); //items RenderingRegistry.registerEntityRenderingHandler(EntityMovingItem.class, new RenderMovingItem()); RenderingRegistry.registerEntityRenderingHandler(EntityMovingPackage.class, new RenderMovingPackage()); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index d3ee9becb..a0ea34e1b 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -1035,6 +1035,7 @@ public class ResourceManager { public static final IModelCustom cart_powder = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vehicles/cart_powder.obj")); public static final IModelCustom train_cargo_tram = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vehicles/tram.obj")); public static final IModelCustom train_cargo_tram_trailer = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vehicles/tram_trailer.obj")); + public static final IModelCustom tunnel_bore = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/vehicles/tunnel_bore.obj")); ////Texture Entities diff --git a/src/main/java/com/hbm/render/entity/item/RenderTunnelBore.java b/src/main/java/com/hbm/render/entity/item/RenderTunnelBore.java new file mode 100644 index 000000000..98c8c1f69 --- /dev/null +++ b/src/main/java/com/hbm/render/entity/item/RenderTunnelBore.java @@ -0,0 +1,60 @@ +package com.hbm.render.entity.item; + +import org.lwjgl.opengl.GL11; + +import com.hbm.entity.train.EntityRailCarBase; +import com.hbm.main.ResourceManager; + +import net.minecraft.client.renderer.entity.Render; +import net.minecraft.entity.Entity; +import net.minecraft.util.ResourceLocation; + +public class RenderTunnelBore extends Render { + + @Override + public void doRender(Entity entity, double x, double y, double z, float swing, float interp) { + GL11.glPushMatrix(); + + EntityRailCarBase train = (EntityRailCarBase) entity; + double iX = train.prevPosX + (train.posX - train.prevPosX) * interp; + double iY = train.prevPosY + (train.posY - train.prevPosY) * interp; + double iZ = train.prevPosZ + (train.posZ - train.prevPosZ) * interp; + double rX = train.lastRenderX + (train.renderX - train.lastRenderX) * interp; + double rY = train.lastRenderY + (train.renderY - train.lastRenderY) * interp; + double rZ = train.lastRenderZ + (train.renderZ - train.lastRenderZ) * interp; + x -= iX - rX; + y -= iY - rY; + z -= iZ - rZ; + + GL11.glTranslated(x, y - 0.0625D, z); + + float yaw = entity.rotationYaw; + float prevYaw = entity.prevRotationYaw; + + if(yaw - prevYaw > 180) yaw -= 360; + if(prevYaw - yaw > 180) prevYaw -= 360; + + float yawInterp = prevYaw + (yaw - prevYaw) * interp - 720; + + GL11.glRotated(-yawInterp, 0, 1, 0); + + float pitch = entity.rotationPitch; + float prevPitch = entity.prevRotationPitch; + float pitchInterp = prevPitch + (pitch - prevPitch) * interp; + GL11.glRotated(-pitchInterp, 1, 0, 0); + + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.universal); + ResourceManager.tunnel_bore.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glEnable(GL11.GL_CULL_FACE); + + GL11.glPopMatrix(); + } + + @Override + protected ResourceLocation getEntityTexture(Entity entity) { + return ResourceManager.universal; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java index 2105af196..b3282a3d7 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java @@ -173,7 +173,7 @@ public class TileEntityMachineCompressor extends TileEntityMachineBase implement return new DirPos[] { new DirPos(xCoord + rot.offsetX * 2, yCoord, zCoord + rot.offsetZ * 2, rot), new DirPos(xCoord - rot.offsetX * 2, yCoord, zCoord - rot.offsetZ * 2, rot.getOpposite()), - new DirPos(xCoord + dir.offsetX * 2, yCoord, zCoord + dir.offsetZ * 2, dir), + new DirPos(xCoord - dir.offsetX * 2, yCoord, zCoord - dir.offsetZ * 2, dir.getOpposite()), }; } diff --git a/src/main/resources/assets/hbm/models/vehicles/tunnel_bore.obj b/src/main/resources/assets/hbm/models/vehicles/tunnel_bore.obj new file mode 100644 index 000000000..94434ba94 --- /dev/null +++ b/src/main/resources/assets/hbm/models/vehicles/tunnel_bore.obj @@ -0,0 +1,7617 @@ +# Blender v2.79 (sub 0) OBJ File: 'tunnel_bore.blend' +# www.blender.org +o Plane +v 0.750000 0.073223 3.051777 +v 0.750000 0.250000 3.125000 +v 0.750000 0.426777 3.051777 +v 0.750000 0.500000 2.875000 +v 0.750000 0.500000 2.125000 +v 0.750000 0.426777 2.301777 +v 0.750000 0.250000 2.375000 +v 0.750000 0.073223 2.301777 +v 0.750000 0.000000 2.125000 +v 0.750000 0.073223 1.948223 +v 0.750000 0.250000 1.875000 +v 0.750000 0.426777 1.948223 +v -0.750000 0.500000 2.125000 +v -0.750000 0.426777 2.301777 +v -0.750000 0.250000 2.375000 +v -0.750000 0.073223 2.301777 +v -0.750000 0.000000 2.125000 +v -0.750000 0.073223 1.948223 +v -0.750000 0.250000 1.875000 +v -0.750000 0.426777 1.948223 +v 0.687500 0.426777 2.301777 +v 0.687500 0.500000 2.125000 +v 0.687500 0.250000 2.375000 +v 0.687500 0.073223 2.301777 +v 0.687500 0.000000 2.125000 +v 0.687500 0.073223 1.948223 +v 0.687500 0.250000 1.875000 +v 0.687500 0.426777 1.948223 +v -0.687500 0.426777 2.301777 +v -0.687500 0.500000 2.125000 +v -0.687500 0.250000 2.375000 +v -0.687500 0.073223 2.301777 +v -0.687500 0.000000 2.125000 +v -0.687500 0.073223 1.948223 +v -0.687500 0.250000 1.875000 +v -0.687500 0.426777 1.948223 +v 0.750000 0.382582 2.257582 +v 0.750000 0.437500 2.125000 +v 0.750000 0.250000 2.312500 +v 0.750000 0.117417 2.257582 +v 0.750000 0.062500 2.125000 +v 0.750000 0.117418 1.992417 +v 0.750000 0.250000 1.937500 +v 0.750000 0.382582 1.992417 +v 0.812500 0.382582 2.257582 +v 0.812500 0.437500 2.125000 +v 0.812500 0.250000 2.312500 +v 0.812500 0.117417 2.257582 +v 0.812500 0.062500 2.125000 +v 0.812500 0.117418 1.992417 +v 0.812500 0.250000 1.937500 +v 0.812500 0.382582 1.992417 +v -0.750000 0.382582 2.257582 +v -0.750000 0.437500 2.125000 +v -0.750000 0.250000 2.312500 +v -0.750000 0.117417 2.257582 +v -0.750000 0.062500 2.125000 +v -0.750000 0.117418 1.992417 +v -0.750000 0.250000 1.937500 +v -0.750000 0.382582 1.992417 +v -0.812500 0.382582 2.257582 +v -0.812500 0.437500 2.125000 +v -0.812500 0.250000 2.312500 +v -0.812500 0.117417 2.257582 +v -0.812500 0.062500 2.125000 +v -0.812500 0.117418 1.992417 +v -0.812500 0.250000 1.937500 +v -0.812500 0.382582 1.992417 +v 0.750000 0.000000 2.875000 +v 0.750000 0.073223 2.698223 +v 0.750000 0.250000 2.625000 +v 0.750000 0.426777 2.698223 +v -0.750000 0.500000 2.875000 +v -0.750000 0.426777 3.051777 +v -0.750000 0.250000 3.125000 +v -0.750000 0.073223 3.051777 +v -0.750000 0.000000 2.875000 +v -0.750000 0.073223 2.698223 +v -0.750000 0.250000 2.625000 +v -0.750000 0.426777 2.698223 +v 0.687500 0.426777 3.051777 +v 0.687500 0.500000 2.875000 +v 0.687500 0.250000 3.125000 +v 0.687500 0.073223 3.051777 +v 0.687500 0.000000 2.875000 +v 0.687500 0.073223 2.698223 +v 0.687500 0.250000 2.625000 +v 0.687500 0.426777 2.698223 +v -0.687500 0.426777 3.051777 +v -0.687500 0.500000 2.875000 +v -0.687500 0.250000 3.125000 +v -0.687500 0.073223 3.051777 +v -0.687500 0.000000 2.875000 +v -0.687500 0.073223 2.698223 +v -0.687500 0.250000 2.625000 +v -0.687500 0.426777 2.698223 +v 0.750000 0.382582 3.007583 +v 0.750000 0.437500 2.875000 +v 0.750000 0.250000 3.062500 +v 0.750000 0.117417 3.007583 +v 0.750000 0.062500 2.875000 +v 0.750000 0.117418 2.742417 +v 0.750000 0.250000 2.687500 +v 0.750000 0.382582 2.742417 +v 0.812500 0.382582 3.007583 +v 0.812500 0.437500 2.875000 +v 0.812500 0.250000 3.062500 +v 0.812500 0.117417 3.007583 +v 0.812500 0.062500 2.875000 +v 0.812500 0.117418 2.742417 +v 0.812500 0.250000 2.687500 +v 0.812500 0.382582 2.742417 +v -0.750000 0.382582 3.007583 +v -0.750000 0.437500 2.875000 +v -0.750000 0.250000 3.062500 +v -0.750000 0.117417 3.007583 +v -0.750000 0.062500 2.875000 +v -0.750000 0.117418 2.742417 +v -0.750000 0.250000 2.687500 +v -0.750000 0.382582 2.742417 +v -0.812500 0.382582 3.007583 +v -0.812500 0.437500 2.875000 +v -0.812500 0.250000 3.062500 +v -0.812500 0.117417 3.007583 +v -0.812500 0.062500 2.875000 +v -0.812500 0.117418 2.742417 +v -0.812500 0.250000 2.687500 +v -0.812500 0.382582 2.742417 +v 1.000000 0.625000 3.250000 +v 1.000000 0.625000 1.750000 +v -1.000000 0.625000 3.250000 +v -1.000000 0.625000 1.750000 +v 1.000000 0.250000 3.250000 +v 1.000000 0.250000 1.750000 +v -1.000000 0.250000 3.250000 +v -1.000000 0.250000 1.750000 +v 1.000000 0.250000 1.625000 +v -1.000000 0.250000 1.625000 +v 1.000000 0.250000 3.375000 +v -1.000000 0.250000 3.375000 +v 1.000000 0.750000 1.625000 +v -1.000000 0.750000 1.625000 +v 1.000000 0.750000 3.375000 +v -1.000000 0.750000 3.375000 +v 0.687500 0.125000 3.125000 +v 0.687500 0.125000 1.875000 +v -0.687500 0.125000 3.125000 +v -0.687500 0.125000 1.875000 +v 0.687500 0.250000 1.750000 +v -0.687500 0.250000 1.750000 +v 0.687500 0.250000 3.250000 +v -0.687500 0.250000 3.250000 +v 0.687500 0.625000 1.750000 +v 0.687500 0.625000 3.250000 +v -0.687500 0.625000 1.750000 +v -0.687500 0.625000 3.250000 +v 0.750000 0.073223 -1.948224 +v 0.750000 0.250000 -1.875000 +v 0.750000 0.426777 -1.948224 +v 0.750000 0.500000 -2.125000 +v 0.750000 0.500000 -2.875000 +v 0.750000 0.426777 -2.698223 +v 0.750000 0.250000 -2.625000 +v 0.750000 0.073223 -2.698223 +v 0.750000 0.000000 -2.875000 +v 0.750000 0.073223 -3.051777 +v 0.750000 0.250000 -3.125000 +v 0.750000 0.426777 -3.051777 +v -0.750000 0.500000 -2.875000 +v -0.750000 0.426777 -2.698223 +v -0.750000 0.250000 -2.625000 +v -0.750000 0.073223 -2.698223 +v -0.750000 0.000000 -2.875000 +v -0.750000 0.073223 -3.051777 +v -0.750000 0.250000 -3.125000 +v -0.750000 0.426777 -3.051777 +v 0.687500 0.426777 -2.698223 +v 0.687500 0.500000 -2.875000 +v 0.687500 0.250000 -2.625000 +v 0.687500 0.073223 -2.698223 +v 0.687500 0.000000 -2.875000 +v 0.687500 0.073223 -3.051777 +v 0.687500 0.250000 -3.125000 +v 0.687500 0.426777 -3.051777 +v -0.687500 0.426777 -2.698223 +v -0.687500 0.500000 -2.875000 +v -0.687500 0.250000 -2.625000 +v -0.687500 0.073223 -2.698223 +v -0.687500 0.000000 -2.875000 +v -0.687500 0.073223 -3.051777 +v -0.687500 0.250000 -3.125000 +v -0.687500 0.426777 -3.051777 +v 0.750000 0.382582 -2.742418 +v 0.750000 0.437500 -2.875000 +v 0.750000 0.250000 -2.687500 +v 0.750000 0.117417 -2.742418 +v 0.750000 0.062500 -2.875000 +v 0.750000 0.117418 -3.007583 +v 0.750000 0.250000 -3.062500 +v 0.750000 0.382582 -3.007583 +v 0.812500 0.382582 -2.742418 +v 0.812500 0.437500 -2.875000 +v 0.812500 0.250000 -2.687500 +v 0.812500 0.117417 -2.742418 +v 0.812500 0.062500 -2.875000 +v 0.812500 0.117418 -3.007583 +v 0.812500 0.250000 -3.062500 +v 0.812500 0.382582 -3.007583 +v -0.750000 0.382582 -2.742418 +v -0.750000 0.437500 -2.875000 +v -0.750000 0.250000 -2.687500 +v -0.750000 0.117417 -2.742418 +v -0.750000 0.062500 -2.875000 +v -0.750000 0.117418 -3.007583 +v -0.750000 0.250000 -3.062500 +v -0.750000 0.382582 -3.007583 +v -0.812500 0.382582 -2.742418 +v -0.812500 0.437500 -2.875000 +v -0.812500 0.250000 -2.687500 +v -0.812500 0.117417 -2.742418 +v -0.812500 0.062500 -2.875000 +v -0.812500 0.117418 -3.007583 +v -0.812500 0.250000 -3.062500 +v -0.812500 0.382582 -3.007583 +v 0.750000 0.000000 -2.125000 +v 0.750000 0.073223 -2.301777 +v 0.750000 0.250000 -2.375000 +v 0.750000 0.426777 -2.301777 +v -0.750000 0.500000 -2.125000 +v -0.750000 0.426777 -1.948223 +v -0.750000 0.250000 -1.875000 +v -0.750000 0.073223 -1.948223 +v -0.750000 0.000000 -2.125000 +v -0.750000 0.073223 -2.301777 +v -0.750000 0.250000 -2.375000 +v -0.750000 0.426777 -2.301777 +v 0.687500 0.426777 -1.948224 +v 0.687500 0.500000 -2.125000 +v 0.687500 0.250000 -1.875000 +v 0.687500 0.073223 -1.948224 +v 0.687500 0.000000 -2.125000 +v 0.687500 0.073223 -2.301777 +v 0.687500 0.250000 -2.375000 +v 0.687500 0.426777 -2.301777 +v -0.687500 0.426777 -1.948223 +v -0.687500 0.500000 -2.125000 +v -0.687500 0.250000 -1.875000 +v -0.687500 0.073223 -1.948223 +v -0.687500 0.000000 -2.125000 +v -0.687500 0.073223 -2.301777 +v -0.687500 0.250000 -2.375000 +v -0.687500 0.426777 -2.301777 +v 0.750000 0.382582 -1.992417 +v 0.750000 0.437500 -2.125000 +v 0.750000 0.250000 -1.937500 +v 0.750000 0.117417 -1.992417 +v 0.750000 0.062500 -2.125000 +v 0.750000 0.117418 -2.257583 +v 0.750000 0.250000 -2.312500 +v 0.750000 0.382582 -2.257583 +v 0.812500 0.382582 -1.992417 +v 0.812500 0.437500 -2.125000 +v 0.812500 0.250000 -1.937500 +v 0.812500 0.117417 -1.992417 +v 0.812500 0.062500 -2.125000 +v 0.812500 0.117418 -2.257583 +v 0.812500 0.250000 -2.312500 +v 0.812500 0.382582 -2.257583 +v -0.750000 0.382582 -1.992417 +v -0.750000 0.437500 -2.125000 +v -0.750000 0.250000 -1.937500 +v -0.750000 0.117417 -1.992417 +v -0.750000 0.062500 -2.125000 +v -0.750000 0.117418 -2.257583 +v -0.750000 0.250000 -2.312500 +v -0.750000 0.382582 -2.257583 +v -0.812500 0.382582 -1.992417 +v -0.812500 0.437500 -2.125000 +v -0.812500 0.250000 -1.937500 +v -0.812500 0.117417 -1.992417 +v -0.812500 0.062500 -2.125000 +v -0.812500 0.117418 -2.257583 +v -0.812500 0.250000 -2.312500 +v -0.812500 0.382582 -2.257583 +v 1.000000 0.625000 -1.750000 +v 1.000000 0.625000 -3.250000 +v -1.000000 0.625000 -1.750000 +v -1.000000 0.625000 -3.250000 +v 1.000000 0.250000 -1.750000 +v 1.000000 0.250000 -3.250000 +v -1.000000 0.250000 -1.750000 +v -1.000000 0.250000 -3.250000 +v 1.000000 0.250000 -3.375000 +v -1.000000 0.250000 -3.375000 +v 1.000000 0.250000 -1.625000 +v -1.000000 0.250000 -1.625000 +v 1.000000 0.750000 -3.375000 +v -1.000000 0.750000 -3.375000 +v 1.000000 0.750000 -1.625000 +v -1.000000 0.750000 -1.625000 +v 0.687500 0.125000 -1.875000 +v 0.687500 0.125000 -3.125000 +v -0.687500 0.125000 -1.875000 +v -0.687500 0.125000 -3.125000 +v 0.687500 0.250000 -3.250000 +v -0.687500 0.250000 -3.250000 +v 0.687500 0.250000 -1.750000 +v -0.687500 0.250000 -1.750000 +v 0.687500 0.625000 -3.250000 +v 0.687500 0.625000 -1.750000 +v -0.687500 0.625000 -3.250000 +v -0.687500 0.625000 -1.750000 +v -0.750000 0.750000 3.500000 +v 0.750000 0.750000 3.500000 +v -0.750000 0.750000 -3.500000 +v 0.750000 0.750000 -3.500000 +v -0.750000 1.000000 -3.500000 +v -0.750000 1.000000 3.500000 +v 0.750000 1.000000 3.500000 +v 0.750000 1.000000 -3.500000 +v -0.750000 0.750000 -1.500000 +v -0.750000 0.750000 1.500000 +v 0.750000 0.750000 1.500000 +v 0.750000 0.750000 -1.500000 +v -0.750000 0.250000 -1.000000 +v -0.750000 0.250000 1.000000 +v 0.750000 0.250000 1.000000 +v 0.750000 0.250000 -1.000000 +v 0.530330 1.469670 3.750000 +v 0.750000 2.000000 3.750000 +v 0.530330 2.530330 3.750000 +v 0.000000 2.750000 3.750000 +v -0.530330 2.530330 3.750000 +v -0.750000 2.000000 3.750000 +v -0.530330 1.469670 3.750000 +v -0.000000 1.250000 3.750000 +v -1.000000 1.000000 3.500000 +v 1.000000 1.000000 3.500000 +v -1.000000 1.000000 -0.500000 +v 1.000000 1.000000 -0.500000 +v -1.000000 2.500000 -0.500000 +v -1.000000 2.500000 3.500000 +v 1.000000 2.500000 3.500000 +v 1.000000 2.500000 -0.500000 +v -0.250000 3.000000 -0.500000 +v -0.250000 3.000000 3.500000 +v 0.250000 3.000000 3.500000 +v 0.250000 3.000000 -0.500000 +v 1.000000 1.187500 -0.312500 +v 1.000000 1.812500 -0.312500 +v 1.000000 1.187500 0.062500 +v 1.000000 1.812500 0.062500 +v 0.750000 1.187500 -0.312500 +v 0.750000 1.812500 -0.312500 +v 0.750000 1.187500 0.062500 +v 0.750000 1.812500 0.062500 +v 0.750000 1.375000 -0.250000 +v 0.750000 1.463388 -0.213388 +v 0.750000 1.500000 -0.125000 +v 0.750000 1.463388 -0.036612 +v 0.750000 1.375000 -0.000000 +v 0.750000 1.286612 -0.036612 +v 0.750000 1.250000 -0.125000 +v 0.750000 1.286612 -0.213388 +v 1.000000 1.375000 -0.250000 +v 1.000000 1.463388 -0.213388 +v 1.000000 1.500000 -0.125000 +v 1.000000 1.463388 -0.036612 +v 1.000000 1.375000 -0.000000 +v 1.000000 1.286612 -0.036612 +v 1.000000 1.250000 -0.125000 +v 1.000000 1.286612 -0.213388 +v 1.176777 1.375000 -0.176777 +v 1.150888 1.463388 -0.150888 +v 1.088388 1.500000 -0.088388 +v 1.025888 1.463388 -0.025888 +v 1.025888 1.286612 -0.025888 +v 1.088388 1.250000 -0.088388 +v 1.150888 1.286612 -0.150888 +v 1.250000 1.375000 -0.000000 +v 1.213388 1.463388 -0.000000 +v 1.125000 1.500000 -0.000000 +v 1.036612 1.463388 -0.000000 +v 1.036612 1.286612 -0.000000 +v 1.125000 1.250000 -0.000000 +v 1.213388 1.286612 0.000000 +v 1.000000 1.375000 2.750000 +v 1.250000 1.375000 2.750000 +v 1.213388 1.463388 2.750000 +v 1.125000 1.500000 2.750000 +v 1.036612 1.463388 2.750000 +v 1.036612 1.286612 2.750000 +v 1.125000 1.250000 2.750000 +v 1.213388 1.286612 2.750000 +v 1.000000 1.411612 2.838388 +v 1.250000 1.411612 2.838388 +v 1.213388 1.474112 2.775888 +v 1.036612 1.474112 2.775888 +v 1.036612 1.349112 2.900888 +v 1.125000 1.323223 2.926777 +v 1.213388 1.349112 2.900888 +v 1.000000 1.500000 2.875000 +v 1.250000 1.500000 2.875000 +v 1.213388 1.500000 2.786612 +v 1.036612 1.500000 2.786612 +v 1.036612 1.500000 2.963388 +v 1.125000 1.500000 3.000000 +v 1.213388 1.500000 2.963388 +v 1.125000 2.000000 2.750000 +v 1.000000 2.000000 2.875000 +v 1.250000 2.000000 2.875000 +v 1.213388 2.000000 2.786612 +v 1.036612 2.000000 2.786612 +v 1.036612 2.000000 2.963388 +v 1.125000 2.000000 3.000000 +v 1.213388 2.000000 2.963388 +v 1.088388 2.088388 2.750000 +v 1.176777 2.176777 2.875000 +v 1.150888 2.150888 2.786612 +v 1.025888 2.025888 2.786612 +v 1.025888 2.025888 2.963388 +v 1.088388 2.088388 3.000000 +v 1.150888 2.150888 2.963388 +v 1.000000 2.125000 2.750000 +v 1.000000 2.250000 2.875000 +v 1.000000 2.213388 2.786612 +v 1.000000 2.036612 2.786612 +v 1.000000 2.036612 2.963388 +v 1.000000 2.125000 3.000000 +v 1.000000 2.213388 2.963388 +v 0.750000 1.625000 -0.250000 +v 0.750000 1.713388 -0.213388 +v 0.750000 1.750000 -0.125000 +v 0.750000 1.713388 -0.036612 +v 0.750000 1.625000 -0.000000 +v 0.750000 1.536612 -0.036612 +v 0.750000 1.500000 -0.125000 +v 0.750000 1.536612 -0.213388 +v 1.000000 1.625000 -0.250000 +v 1.000000 1.713388 -0.213388 +v 1.000000 1.750000 -0.125000 +v 1.000000 1.713388 -0.036612 +v 1.000000 1.625000 -0.000000 +v 1.000000 1.536612 -0.036612 +v 1.000000 1.500000 -0.125000 +v 1.000000 1.536612 -0.213388 +v 1.176777 1.625000 -0.176777 +v 1.150888 1.713388 -0.150888 +v 1.088388 1.750000 -0.088388 +v 1.025888 1.713388 -0.025888 +v 1.025888 1.536612 -0.025888 +v 1.088388 1.500000 -0.088388 +v 1.150888 1.536612 -0.150888 +v 1.250000 1.625000 -0.000000 +v 1.213388 1.713388 -0.000000 +v 1.125000 1.750000 -0.000000 +v 1.036612 1.713388 -0.000000 +v 1.036612 1.536612 -0.000000 +v 1.125000 1.500000 -0.000000 +v 1.213388 1.536612 0.000000 +v 1.000000 1.625000 2.500000 +v 1.250000 1.625000 2.500000 +v 1.213388 1.713388 2.500000 +v 1.125000 1.750000 2.500000 +v 1.036612 1.713388 2.500000 +v 1.036612 1.536612 2.500000 +v 1.125000 1.500000 2.500000 +v 1.213388 1.536612 2.500000 +v 1.000000 1.661612 2.588388 +v 1.250000 1.661612 2.588388 +v 1.213388 1.724112 2.525888 +v 1.036612 1.724112 2.525888 +v 1.036612 1.599112 2.650888 +v 1.125000 1.573223 2.676777 +v 1.213388 1.599112 2.650888 +v 1.000000 1.750000 2.625000 +v 1.250000 1.750000 2.625000 +v 1.213388 1.750000 2.536612 +v 1.036612 1.750000 2.536612 +v 1.036612 1.750000 2.713388 +v 1.125000 1.750000 2.750000 +v 1.213388 1.750000 2.713388 +v 1.125000 2.000000 2.500000 +v 1.000000 2.250000 2.625000 +v 1.250000 2.000000 2.625000 +v 1.213388 2.000000 2.536612 +v 1.036612 2.000000 2.536612 +v 1.036612 2.000000 2.713388 +v 1.125000 2.000000 2.750000 +v 1.213388 2.000000 2.713388 +v 1.088388 2.088388 2.500000 +v 1.176777 2.176777 2.625000 +v 1.150888 2.150888 2.536612 +v 1.025888 2.025888 2.536612 +v 1.025888 2.025888 2.713388 +v 1.088388 2.088388 2.750000 +v 1.150888 2.150888 2.713388 +v 1.000000 2.125000 2.500000 +v 1.000000 2.250000 2.625000 +v 1.000000 2.213388 2.536612 +v 1.000000 2.036612 2.536612 +v 1.000000 2.036612 2.713388 +v 1.000000 2.125000 2.750000 +v 1.000000 2.213388 2.713388 +v -0.750000 1.187500 -0.312500 +v -0.750000 1.812500 -0.312500 +v -0.750000 1.187500 0.062500 +v -0.750000 1.812500 0.062500 +v -1.000000 1.187500 -0.312500 +v -1.000000 1.812500 -0.312500 +v -1.000000 1.187500 0.062500 +v -1.000000 1.812500 0.062500 +v -0.750000 1.375000 -0.250000 +v -0.750000 1.463388 -0.213388 +v -0.750000 1.500000 -0.125000 +v -0.750000 1.463388 -0.036612 +v -0.750000 1.375000 0.000000 +v -0.750000 1.286612 -0.036612 +v -0.750000 1.250000 -0.125000 +v -0.750000 1.286612 -0.213388 +v -1.000000 1.375000 -0.250000 +v -1.000000 1.463388 -0.213388 +v -1.000000 1.500000 -0.125000 +v -1.000000 1.463388 -0.036612 +v -1.000000 1.375000 0.000000 +v -1.000000 1.286612 -0.036612 +v -1.000000 1.250000 -0.125000 +v -1.000000 1.286612 -0.213388 +v -1.176777 1.375000 -0.176777 +v -1.150888 1.463388 -0.150888 +v -1.088388 1.500000 -0.088388 +v -1.025888 1.463388 -0.025888 +v -1.025888 1.286612 -0.025888 +v -1.088388 1.250000 -0.088388 +v -1.150888 1.286612 -0.150888 +v -1.250000 1.375000 -0.000000 +v -1.213388 1.463388 -0.000000 +v -1.125000 1.500000 -0.000000 +v -1.036612 1.463388 -0.000000 +v -1.036612 1.286612 -0.000000 +v -1.125000 1.250000 -0.000000 +v -1.213388 1.286612 0.000000 +v -1.000000 1.375000 2.750000 +v -1.250000 1.375000 2.750000 +v -1.213388 1.463388 2.750000 +v -1.125000 1.500000 2.750000 +v -1.036612 1.463388 2.750000 +v -1.036612 1.286612 2.750000 +v -1.125000 1.250000 2.750000 +v -1.213388 1.286612 2.750000 +v -1.000000 1.411612 2.838388 +v -1.250000 1.411612 2.838388 +v -1.213388 1.474112 2.775888 +v -1.036612 1.474112 2.775888 +v -1.036612 1.349112 2.900888 +v -1.125000 1.323223 2.926777 +v -1.213388 1.349112 2.900888 +v -1.000000 1.500000 2.875000 +v -1.250000 1.500000 2.875000 +v -1.213388 1.500000 2.786612 +v -1.036612 1.500000 2.786612 +v -1.036612 1.500000 2.963388 +v -1.125000 1.500000 3.000000 +v -1.213388 1.500000 2.963388 +v -1.125000 2.000000 2.750000 +v -1.000000 2.000000 2.875000 +v -1.250000 2.000000 2.875000 +v -1.213388 2.000000 2.786612 +v -1.036612 2.000000 2.786612 +v -1.036612 2.000000 2.963388 +v -1.125000 2.000000 3.000000 +v -1.213388 2.000000 2.963388 +v -1.088388 2.088388 2.750000 +v -1.176777 2.176777 2.875000 +v -1.150888 2.150888 2.786612 +v -1.025888 2.025888 2.786612 +v -1.025888 2.025888 2.963388 +v -1.088388 2.088388 3.000000 +v -1.150888 2.150888 2.963388 +v -1.000000 2.125000 2.750000 +v -1.000000 2.250000 2.875000 +v -1.000000 2.213388 2.786612 +v -1.000000 2.036612 2.786612 +v -1.000000 2.036612 2.963388 +v -1.000000 2.125000 3.000000 +v -1.000000 2.213388 2.963388 +v -0.750000 1.625000 -0.250000 +v -0.750000 1.713388 -0.213388 +v -0.750000 1.750000 -0.125000 +v -0.750000 1.713388 -0.036612 +v -0.750000 1.625000 0.000000 +v -0.750000 1.536612 -0.036612 +v -0.750000 1.500000 -0.125000 +v -0.750000 1.536612 -0.213388 +v -1.000000 1.625000 -0.250000 +v -1.000000 1.713388 -0.213388 +v -1.000000 1.750000 -0.125000 +v -1.000000 1.713388 -0.036612 +v -1.000000 1.625000 0.000000 +v -1.000000 1.536612 -0.036612 +v -1.000000 1.500000 -0.125000 +v -1.000000 1.536612 -0.213388 +v -1.176777 1.625000 -0.176777 +v -1.150888 1.713388 -0.150888 +v -1.088388 1.750000 -0.088388 +v -1.025888 1.713388 -0.025888 +v -1.025888 1.536612 -0.025888 +v -1.088388 1.500000 -0.088388 +v -1.150888 1.536612 -0.150888 +v -1.250000 1.625000 -0.000000 +v -1.213388 1.713388 -0.000000 +v -1.125000 1.750000 -0.000000 +v -1.036612 1.713388 -0.000000 +v -1.036612 1.536612 -0.000000 +v -1.125000 1.500000 -0.000000 +v -1.213388 1.536612 0.000000 +v -1.000000 1.625000 2.500000 +v -1.250000 1.625000 2.500000 +v -1.213388 1.713388 2.500000 +v -1.125000 1.750000 2.500000 +v -1.036612 1.713388 2.500000 +v -1.036612 1.536612 2.500000 +v -1.125000 1.500000 2.500000 +v -1.213388 1.536612 2.500000 +v -1.000000 1.661612 2.588388 +v -1.250000 1.661612 2.588388 +v -1.213388 1.724112 2.525888 +v -1.036612 1.724112 2.525888 +v -1.036612 1.599112 2.650888 +v -1.125000 1.573223 2.676777 +v -1.213388 1.599112 2.650888 +v -1.000000 1.750000 2.625000 +v -1.250000 1.750000 2.625000 +v -1.213388 1.750000 2.536612 +v -1.036612 1.750000 2.536612 +v -1.036612 1.750000 2.713388 +v -1.125000 1.750000 2.750000 +v -1.213388 1.750000 2.713388 +v -1.125000 2.000000 2.500000 +v -1.000000 2.250000 2.625000 +v -1.250000 2.000000 2.625000 +v -1.213388 2.000000 2.536612 +v -1.036612 2.000000 2.536612 +v -1.036612 2.000000 2.713388 +v -1.125000 2.000000 2.750000 +v -1.213388 2.000000 2.713388 +v -1.088388 2.088388 2.500000 +v -1.176777 2.176777 2.625000 +v -1.150888 2.150888 2.536612 +v -1.025888 2.025888 2.536612 +v -1.025888 2.025888 2.713388 +v -1.088388 2.088388 2.750000 +v -1.150888 2.150888 2.713388 +v -1.000000 2.125000 2.500000 +v -1.000000 2.250000 2.625000 +v -1.000000 2.213388 2.536612 +v -1.000000 2.036612 2.536612 +v -1.000000 2.036612 2.713388 +v -1.000000 2.125000 2.750000 +v -1.000000 2.213388 2.713388 +v -0.000000 1.250000 3.500000 +v -0.530330 1.469670 3.500000 +v -0.750000 2.000000 3.500000 +v -0.530330 2.530330 3.500000 +v 0.000000 2.750000 3.500000 +v 0.530330 2.530330 3.500000 +v 0.750000 2.000000 3.500000 +v 0.530330 1.469670 3.500000 +v 0.000000 3.500000 4.250000 +v -0.750000 3.299038 4.250000 +v -1.299038 2.750000 4.250000 +v -1.500000 2.000000 4.250000 +v -1.299038 1.250000 4.250000 +v -0.750000 0.700962 4.250000 +v -0.000000 0.500000 4.250000 +v 0.750000 0.700962 4.250000 +v 1.299038 1.250000 4.250000 +v 1.500000 1.999999 4.250000 +v 1.299038 2.749999 4.250000 +v 0.750001 3.299038 4.250000 +v 0.000000 3.500000 5.000000 +v -0.750000 3.299038 5.000000 +v -1.299038 2.750000 5.000000 +v -1.500000 2.000000 5.000000 +v -1.299038 1.250000 5.000000 +v -0.750000 0.700962 5.000000 +v -0.000000 0.500000 5.000000 +v 0.750000 0.700962 5.000000 +v 1.299038 1.250000 5.000000 +v 1.500000 1.999999 5.000000 +v 1.299038 2.749999 5.000000 +v 0.750001 3.299038 5.000000 +v 0.000000 3.312500 5.750000 +v -0.656250 3.136658 5.750000 +v -1.136658 2.656250 5.750000 +v -1.312500 2.000000 5.750000 +v -1.136658 1.343750 5.750000 +v -0.656250 0.863342 5.750000 +v -0.000000 0.687500 5.750000 +v 0.656250 0.863341 5.750000 +v 1.136658 1.343750 5.750000 +v 1.312500 1.999999 5.750000 +v 1.136659 2.656250 5.750000 +v 0.656251 3.136658 5.750000 +v 0.000000 2.937500 6.500000 +v -0.468750 2.811899 6.500000 +v -0.811899 2.468750 6.500000 +v -0.937500 2.000000 6.500000 +v -0.811899 1.531250 6.500000 +v -0.468750 1.188101 6.500000 +v -0.000000 1.062500 6.500000 +v 0.468750 1.188101 6.500000 +v 0.811899 1.531250 6.500000 +v 0.937500 2.000000 6.500000 +v 0.811899 2.468750 6.500000 +v 0.468751 2.811899 6.500000 +v 0.000000 2.375000 7.250000 +v -0.187500 2.324759 7.250000 +v -0.324759 2.187500 7.250000 +v -0.375000 2.000000 7.250000 +v -0.324759 1.812500 7.250000 +v -0.187500 1.675241 7.250000 +v -0.000000 1.625000 7.250000 +v 0.187500 1.675240 7.250000 +v 0.324759 1.812500 7.250000 +v 0.375000 2.000000 7.250000 +v 0.324760 2.187500 7.250000 +v 0.187500 2.324759 7.250000 +v 1.375000 2.249999 4.875000 +v 1.375000 1.749999 4.875000 +v 1.375000 2.249999 4.375000 +v 1.375000 1.749999 4.375000 +v 1.625000 2.249999 4.375000 +v 1.625000 2.249999 4.875000 +v 1.625000 1.749999 4.875000 +v 1.625000 1.749999 4.375000 +v 1.875000 2.374999 4.500000 +v 1.875000 2.374999 4.750000 +v 1.875000 2.124999 4.750000 +v 1.875000 2.124999 4.500000 +v 1.290549 1.913017 5.621202 +v 1.161140 1.430054 5.621202 +v 1.374415 1.890545 5.128798 +v 1.245005 1.407582 5.128798 +v 1.612228 1.826823 5.172210 +v 1.528362 1.849295 5.664614 +v 1.398953 1.366332 5.664614 +v 1.482818 1.343860 5.172210 +v 1.861427 1.889460 5.338723 +v 1.819494 1.900696 5.584925 +v 1.754789 1.659214 5.584925 +v 1.796722 1.647979 5.338723 +v 0.894345 2.249999 6.351577 +v 0.894345 1.749999 6.351577 +v 1.105654 2.249999 5.898423 +v 1.105654 1.749999 5.898423 +v 1.332231 2.249999 6.004077 +v 1.120922 2.249999 6.457232 +v 1.120922 1.749999 6.457232 +v 1.332231 1.749999 6.004077 +v 1.505981 2.374999 6.223021 +v 1.400326 2.374999 6.449597 +v 1.400326 2.124999 6.449597 +v 1.505981 2.124999 6.223021 +v 0.375000 2.249999 7.091506 +v 0.375000 1.749999 7.091506 +v 0.625000 2.249999 6.658494 +v 0.625000 1.749999 6.658494 +v 0.841506 2.249999 6.783494 +v 0.591506 2.249999 7.216506 +v 0.591506 1.749999 7.216506 +v 0.841506 1.749999 6.783494 +v 0.995513 2.374999 7.016747 +v 0.870513 2.374999 7.233253 +v 0.870513 2.124999 7.233253 +v 0.995513 2.124999 7.016747 +v -1.375000 1.750001 4.875000 +v -1.375000 2.250001 4.875000 +v -1.375000 1.750001 4.375000 +v -1.375000 2.250001 4.375000 +v -1.625000 1.750001 4.375000 +v -1.625000 1.750001 4.875000 +v -1.625000 2.250001 4.875000 +v -1.625000 2.250001 4.375000 +v -1.875000 1.625001 4.500000 +v -1.875000 1.625001 4.750000 +v -1.875000 1.875001 4.750000 +v -1.875000 1.875001 4.500000 +v 0.249999 0.625000 4.875000 +v -0.250001 0.625000 4.875000 +v 0.249999 0.625000 4.375000 +v -0.250001 0.625000 4.375000 +v 0.249999 0.375000 4.375000 +v 0.249999 0.375000 4.875000 +v -0.250001 0.375000 4.875000 +v -0.250001 0.375000 4.375000 +v 0.374999 0.125000 4.500000 +v 0.374999 0.125000 4.750000 +v 0.124999 0.125000 4.750000 +v 0.124999 0.125000 4.500000 +v -0.249999 3.375000 4.875000 +v 0.250001 3.375000 4.875000 +v -0.249999 3.375000 4.375000 +v 0.250001 3.375000 4.375000 +v -0.249999 3.625000 4.375000 +v -0.249999 3.625000 4.875000 +v 0.250001 3.625000 4.875000 +v 0.250001 3.625000 4.375000 +v -0.374999 3.875000 4.500000 +v -0.374999 3.875000 4.750000 +v -0.124999 3.875000 4.750000 +v -0.124999 3.875000 4.500000 +v 1.315784 1.529006 4.875000 +v 1.065784 1.095993 4.875000 +v 1.315784 1.529006 4.375000 +v 1.065784 1.095993 4.375000 +v 1.532291 1.404006 4.375000 +v 1.532291 1.404006 4.875000 +v 1.282291 0.970993 4.875000 +v 1.282291 0.970993 4.375000 +v 1.811297 1.387259 4.500000 +v 1.811297 1.387259 4.750000 +v 1.686297 1.170753 4.750000 +v 1.686297 1.170753 4.500000 +v -1.315784 2.470994 4.875000 +v -1.065784 2.904007 4.875000 +v -1.315784 2.470994 4.375000 +v -1.065784 2.904007 4.375000 +v -1.532291 2.595994 4.375000 +v -1.532291 2.595994 4.875000 +v -1.282291 3.029007 4.875000 +v -1.282291 3.029007 4.375000 +v -1.811297 2.612741 4.500000 +v -1.811297 2.612741 4.750000 +v -1.686297 2.829247 4.750000 +v -1.686297 2.829247 4.500000 +v -0.470994 0.684216 4.875000 +v -0.904007 0.934216 4.875000 +v -0.470994 0.684216 4.375000 +v -0.904007 0.934216 4.375000 +v -0.595994 0.467709 4.375000 +v -0.595994 0.467709 4.875000 +v -1.029007 0.717709 4.875000 +v -1.029007 0.717709 4.375000 +v -0.612741 0.188703 4.500000 +v -0.612741 0.188703 4.750000 +v -0.829247 0.313703 4.750000 +v -0.829247 0.313703 4.500000 +v 0.470994 3.315784 4.875000 +v 0.904007 3.065784 4.875000 +v 0.470994 3.315784 4.375000 +v 0.904007 3.065784 4.375000 +v 0.595995 3.532291 4.375000 +v 0.595995 3.532291 4.875000 +v 1.029007 3.282291 4.875000 +v 1.029007 3.282291 4.375000 +v 0.612741 3.811297 4.500000 +v 0.612741 3.811297 4.750000 +v 0.829248 3.686297 4.750000 +v 0.829248 3.686297 4.500000 +v 0.904006 0.934215 4.875000 +v 0.470993 0.684215 4.875000 +v 0.904006 0.934215 4.375000 +v 0.470993 0.684215 4.375000 +v 1.029006 0.717708 4.375000 +v 1.029006 0.717708 4.875000 +v 0.595993 0.467708 4.875000 +v 0.595993 0.467708 4.375000 +v 1.262259 0.563702 4.500000 +v 1.262259 0.563702 4.750000 +v 1.045753 0.438702 4.750000 +v 1.045753 0.438702 4.500000 +v -0.904006 3.065785 4.875000 +v -0.470993 3.315785 4.875000 +v -0.904006 3.065785 4.375000 +v -0.470993 3.315785 4.375000 +v -1.029006 3.282291 4.375000 +v -1.029006 3.282291 4.875000 +v -0.595993 3.532291 4.875000 +v -0.595993 3.532291 4.375000 +v -1.262259 3.436298 4.500000 +v -1.262259 3.436298 4.750000 +v -1.045752 3.561298 4.750000 +v -1.045752 3.561298 4.500000 +v -1.065785 1.095994 4.875000 +v -1.315785 1.529007 4.875000 +v -1.065785 1.095994 4.375000 +v -1.315785 1.529007 4.375000 +v -1.282292 0.970994 4.375000 +v -1.282292 0.970994 4.875000 +v -1.532292 1.404007 4.875000 +v -1.532292 1.404007 4.375000 +v -1.436298 0.737741 4.500000 +v -1.436298 0.737741 4.750000 +v -1.561298 0.954248 4.750000 +v -1.561298 0.954248 4.500000 +v 1.065785 2.904006 4.875000 +v 1.315785 2.470993 4.875000 +v 1.065785 2.904006 4.375000 +v 1.315785 2.470993 4.375000 +v 1.282292 3.029006 4.375000 +v 1.282292 3.029006 4.875000 +v 1.532292 2.595993 4.875000 +v 1.532292 2.595993 4.375000 +v 1.436298 3.262259 4.500000 +v 1.436298 3.262259 4.750000 +v 1.561298 3.045752 4.750000 +v 1.561298 3.045752 4.500000 +v 1.074157 1.279396 5.621202 +v 0.720603 0.925842 5.621202 +v 1.135551 1.218002 5.128798 +v 0.781998 0.864448 5.128798 +v 1.309642 1.043911 5.172210 +v 1.248248 1.105304 5.664614 +v 0.894695 0.751751 5.664614 +v 0.956088 0.690357 5.172210 +v 1.556773 0.973556 5.338723 +v 1.526076 1.004253 5.584925 +v 1.349299 0.827477 5.584925 +v 1.379996 0.796780 5.338723 +v 0.569945 0.838860 5.621202 +v 0.086982 0.709450 5.621202 +v 0.592417 0.754994 5.128798 +v 0.109454 0.625585 5.128798 +v 0.656138 0.517182 5.172210 +v 0.633667 0.601047 5.664614 +v 0.150704 0.471638 5.664614 +v 0.173175 0.387772 5.172210 +v 0.834983 0.332687 5.338723 +v 0.823747 0.374620 5.584925 +v 0.582266 0.309916 5.584925 +v 0.593501 0.267983 5.338723 +v 0.086983 3.290549 5.621202 +v 0.569946 3.161140 5.621202 +v 0.109455 3.374415 5.128798 +v 0.592418 3.245006 5.128798 +v 0.173177 3.612228 5.172210 +v 0.150705 3.528362 5.664614 +v 0.633668 3.398952 5.664614 +v 0.656140 3.482818 5.172210 +v 0.110540 3.861427 5.338723 +v 0.099304 3.819494 5.584925 +v 0.340785 3.754789 5.584925 +v 0.352021 3.796722 5.338723 +v 0.720604 3.074157 5.621202 +v 1.074158 2.720603 5.621202 +v 0.781998 3.135550 5.128798 +v 1.135552 2.781997 5.128798 +v 0.956089 3.309642 5.172210 +v 0.894696 3.248248 5.664614 +v 1.248249 2.894695 5.664614 +v 1.309643 2.956089 5.172210 +v 1.026444 3.556773 5.338723 +v 0.995747 3.526076 5.584925 +v 1.172523 3.349299 5.584925 +v 1.203220 3.379996 5.338723 +v 1.161140 2.569945 5.621202 +v 1.290550 2.086982 5.621202 +v 1.245006 2.592417 5.128798 +v 1.374415 2.109454 5.128798 +v 1.482818 2.656138 5.172210 +v 1.398953 2.633667 5.664614 +v 1.528362 2.150704 5.664614 +v 1.612228 2.173176 5.172210 +v 1.667313 2.834983 5.338723 +v 1.625380 2.823747 5.584925 +v 1.690084 2.582266 5.584925 +v 1.732017 2.593501 5.338723 +v -1.290549 2.086983 5.621202 +v -1.161140 2.569946 5.621202 +v -1.374415 2.109455 5.128798 +v -1.245005 2.592418 5.128798 +v -1.612228 2.173177 5.172210 +v -1.528362 2.150705 5.664614 +v -1.398953 2.633668 5.664614 +v -1.482818 2.656140 5.172210 +v -1.861427 2.110540 5.338723 +v -1.819494 2.099304 5.584925 +v -1.754789 2.340786 5.584925 +v -1.796722 2.352022 5.338723 +v -1.074157 2.720604 5.621202 +v -0.720603 3.074158 5.621202 +v -1.135550 2.781999 5.128798 +v -0.781997 3.135552 5.128798 +v -1.309641 2.956089 5.172210 +v -1.248248 2.894696 5.664614 +v -0.894694 3.248249 5.664614 +v -0.956088 3.309643 5.172210 +v -1.556773 3.026444 5.338723 +v -1.526076 2.995747 5.584925 +v -1.349299 3.172523 5.584925 +v -1.379996 3.203220 5.338723 +v -0.569945 3.161140 5.621202 +v -0.086982 3.290550 5.621202 +v -0.592416 3.245006 5.128798 +v -0.109454 3.374415 5.128798 +v -0.656138 3.482818 5.172210 +v -0.633666 3.398953 5.664614 +v -0.150704 3.528362 5.664614 +v -0.173175 3.612228 5.172210 +v -0.834983 3.667313 5.338723 +v -0.823747 3.625380 5.584925 +v -0.582265 3.690084 5.584925 +v -0.593501 3.732017 5.338723 +v -0.086983 0.709451 5.621202 +v -0.569946 0.838860 5.621202 +v -0.109455 0.625585 5.128798 +v -0.592418 0.754994 5.128798 +v -0.173177 0.387772 5.172210 +v -0.150705 0.471638 5.664614 +v -0.633668 0.601048 5.664614 +v -0.656140 0.517182 5.172210 +v -0.110540 0.138573 5.338723 +v -0.099304 0.180506 5.584925 +v -0.340786 0.245211 5.584925 +v -0.352021 0.203278 5.338723 +v -0.720604 0.925843 5.621202 +v -1.074158 1.279397 5.621202 +v -0.781998 0.864450 5.128798 +v -1.135552 1.218003 5.128798 +v -0.956089 0.690358 5.172210 +v -0.894696 0.751752 5.664614 +v -1.248249 1.105306 5.664614 +v -1.309643 1.043912 5.172210 +v -1.026444 0.443227 5.338723 +v -0.995747 0.473924 5.584925 +v -1.172524 0.650701 5.584925 +v -1.203220 0.620004 5.338723 +v -1.161140 1.430055 5.621202 +v -1.290550 1.913018 5.621202 +v -1.245006 1.407584 5.128798 +v -1.374415 1.890546 5.128798 +v -1.482818 1.343862 5.172210 +v -1.398953 1.366334 5.664614 +v -1.528362 1.849296 5.664614 +v -1.612228 1.826825 5.172210 +v -1.667313 1.165017 5.338723 +v -1.625380 1.176253 5.584925 +v -1.690084 1.417735 5.584925 +v -1.732017 1.406499 5.338723 +v -0.894345 1.750001 6.351577 +v -0.894345 2.250001 6.351577 +v -1.105654 1.750001 5.898423 +v -1.105654 2.250001 5.898423 +v -1.332231 1.750001 6.004077 +v -1.120922 1.750001 6.457232 +v -1.120922 2.250001 6.457232 +v -1.332231 2.250001 6.004077 +v -1.505981 1.625001 6.223021 +v -1.400326 1.625001 6.449597 +v -1.400326 1.875001 6.449597 +v -1.505981 1.875001 6.223021 +v 0.249999 1.105655 6.351577 +v -0.250001 1.105655 6.351577 +v 0.249999 0.894346 5.898423 +v -0.250001 0.894346 5.898423 +v 0.249999 0.667769 6.004077 +v 0.249999 0.879078 6.457232 +v -0.250001 0.879078 6.457232 +v -0.250001 0.667769 6.004077 +v 0.374999 0.494019 6.223021 +v 0.374999 0.599674 6.449597 +v 0.124999 0.599674 6.449597 +v 0.124999 0.494019 6.223021 +v -0.249999 2.894345 6.351577 +v 0.250001 2.894345 6.351577 +v -0.249999 3.105654 5.898423 +v 0.250001 3.105654 5.898423 +v -0.249999 3.332232 6.004077 +v -0.249999 3.120922 6.457232 +v 0.250001 3.120922 6.457232 +v 0.250001 3.332232 6.004077 +v -0.374999 3.505981 6.223021 +v -0.374999 3.400326 6.449597 +v -0.124999 3.400326 6.449597 +v -0.124999 3.505981 6.223021 +v 0.809174 1.544379 6.351577 +v 0.455620 1.190825 6.351577 +v 0.958592 1.394960 5.898423 +v 0.605039 1.041407 5.898423 +v 1.118806 1.234746 6.004077 +v 0.969388 1.384165 6.457232 +v 0.615835 1.030611 6.457232 +v 0.765253 0.881193 6.004077 +v 1.330054 1.200275 6.223021 +v 1.255345 1.274984 6.449597 +v 1.078568 1.098207 6.449597 +v 1.153277 1.023499 6.223021 +v -0.809174 2.455621 6.351577 +v -0.455620 2.809175 6.351577 +v -0.958592 2.605040 5.898423 +v -0.605039 2.958593 5.898423 +v -1.118806 2.765254 6.004077 +v -0.969388 2.615836 6.457232 +v -0.615834 2.969389 6.457232 +v -0.765252 3.118807 6.004077 +v -1.330054 2.799725 6.223021 +v -1.255345 2.725016 6.449597 +v -1.078568 2.901793 6.449597 +v -1.153277 2.976501 6.223021 +v -0.455621 1.190826 6.351577 +v -0.809175 1.544380 6.351577 +v -0.605040 1.041408 5.898423 +v -0.958593 1.394961 5.898423 +v -0.765254 0.881194 6.004077 +v -0.615835 1.030612 6.457232 +v -0.969389 1.384166 6.457232 +v -1.118807 1.234747 6.004077 +v -0.799725 0.669946 6.223021 +v -0.725016 0.744655 6.449597 +v -0.901793 0.921432 6.449597 +v -0.976501 0.846723 6.223021 +v 0.455622 2.809174 6.351577 +v 0.809175 2.455620 6.351577 +v 0.605040 2.958592 5.898423 +v 0.958593 2.605039 5.898423 +v 0.765254 3.118806 6.004077 +v 0.615836 2.969388 6.457232 +v 0.969389 2.615834 6.457232 +v 1.118807 2.765253 6.004077 +v 0.799725 3.330054 6.223021 +v 0.725016 3.255345 6.449597 +v 0.901793 3.078568 6.449597 +v 0.976502 3.153277 6.223021 +v -0.375000 1.750001 7.091506 +v -0.375000 2.250001 7.091506 +v -0.625000 1.750001 6.658494 +v -0.625000 2.250001 6.658494 +v -0.841506 1.750001 6.783494 +v -0.591506 1.750001 7.216506 +v -0.591506 2.250001 7.216506 +v -0.841506 2.250001 6.783494 +v -0.995513 1.625001 7.016747 +v -0.870513 1.625001 7.233253 +v -0.870512 1.875001 7.233253 +v -0.995512 1.875001 7.016747 +v 0.404006 1.800240 7.091506 +v -0.029007 1.550240 7.091506 +v 0.529006 1.583734 6.658494 +v 0.095993 1.333734 6.658494 +v 0.637259 1.396234 6.783494 +v 0.512259 1.612740 7.216506 +v 0.079246 1.362740 7.216506 +v 0.204246 1.146234 6.783494 +v 0.822515 1.325360 7.016747 +v 0.760015 1.433614 7.233253 +v 0.543509 1.308614 7.233253 +v 0.606009 1.200360 7.016747 +v -0.404006 2.199760 7.091506 +v 0.029007 2.449760 7.091506 +v -0.529006 2.416266 6.658494 +v -0.095993 2.666266 6.658494 +v -0.637259 2.603766 6.783494 +v -0.512259 2.387260 7.216506 +v -0.079246 2.637260 7.216506 +v -0.204246 2.853766 6.783494 +v -0.822515 2.674640 7.016747 +v -0.760015 2.566386 7.233253 +v -0.543509 2.691386 7.233253 +v -0.606009 2.799640 7.016747 +v 0.029006 1.550241 7.091506 +v -0.404007 1.800241 7.091506 +v -0.095994 1.333735 6.658494 +v -0.529007 1.583735 6.658494 +v -0.204248 1.146235 6.783494 +v -0.079247 1.362741 7.216506 +v -0.512260 1.612741 7.216506 +v -0.637260 1.396235 6.783494 +v -0.172997 0.950361 7.016747 +v -0.110498 1.058614 7.233253 +v -0.327004 1.183614 7.233253 +v -0.389504 1.075361 7.016747 +v -0.029006 2.449759 7.091506 +v 0.404007 2.199759 7.091506 +v 0.095994 2.666265 6.658494 +v 0.529007 2.416265 6.658494 +v 0.204248 2.853765 6.783494 +v 0.079247 2.637259 7.216506 +v 0.512260 2.387259 7.216506 +v 0.637260 2.603765 6.783494 +v 0.172998 3.049639 7.016747 +v 0.110498 2.941386 7.233253 +v 0.327004 2.816386 7.233253 +v 0.389504 2.924639 7.016747 +v 0.000000 2.250000 7.250000 +v -0.176777 2.176777 7.250000 +v -0.250000 2.000000 7.250000 +v -0.176777 1.823223 7.250000 +v 0.000000 1.750000 7.250000 +v 0.176777 1.823223 7.250000 +v 0.250000 2.000000 7.250000 +v 0.176777 2.176777 7.250000 +v 0.000000 2.250000 7.625000 +v -0.176777 2.176777 7.375000 +v -0.250000 2.000000 7.625000 +v -0.176777 1.823223 7.375000 +v 0.000000 1.750000 7.625000 +v 0.176777 1.823223 7.375000 +v 0.250000 2.000000 7.625000 +v 0.176777 2.176777 7.375000 +v 0.000000 2.937500 3.750000 +v -0.468750 2.811899 3.750000 +v -0.811899 2.468750 3.750000 +v -0.937500 2.000000 3.750000 +v -0.811899 1.531250 3.750000 +v -0.468750 1.188101 3.750000 +v -0.000000 1.062500 3.750000 +v 0.468750 1.188101 3.750000 +v 0.811899 1.531250 3.750000 +v 0.937500 2.000000 3.750000 +v 0.811899 2.468750 3.750000 +v 0.468751 2.811899 3.750000 +v -0.500000 1.000000 -0.500000 +v 0.500000 1.000000 -0.500000 +v -0.500000 1.000000 -1.750000 +v 0.500000 1.000000 -1.750000 +v -0.500000 1.750000 -1.750000 +v -0.500000 1.750000 -0.500000 +v 0.500000 1.750000 -0.500000 +v 0.500000 1.750000 -1.750000 +v -0.500000 2.000000 -1.250000 +v -0.500000 2.000000 -0.500000 +v 0.500000 2.000000 -0.500000 +v 0.500000 2.000000 -1.250000 +v -0.375000 1.000000 -2.125000 +v 0.375000 1.000000 -2.125000 +v -0.375000 1.000000 -2.875000 +v 0.375000 1.000000 -2.875000 +v -0.375000 1.487500 -2.875000 +v -0.375000 1.487500 -2.125000 +v 0.375000 1.487500 -2.125000 +v 0.375000 1.487500 -2.875000 +v -0.375000 1.737500 -2.875000 +v 0.375000 1.737500 -2.875000 +v -0.375000 1.737500 -3.000000 +v 0.375000 1.737500 -3.000000 +v -0.375000 2.487500 -3.000000 +v -0.375000 2.487500 -2.875000 +v 0.375000 2.487500 -2.875000 +v 0.375000 2.487500 -3.000000 +v 0.125000 1.737500 -2.875000 +v 0.250000 1.737500 -2.875000 +v 0.125000 1.737500 -3.000000 +v 0.250000 1.737500 -3.000000 +v 0.125000 0.987500 -3.000000 +v 0.125000 0.987500 -2.875000 +v 0.250000 0.987500 -2.875000 +v 0.250000 0.987500 -3.000000 +v -0.250000 1.737500 -2.875000 +v -0.125000 1.737500 -2.875000 +v -0.250000 1.737500 -3.000000 +v -0.125000 1.737500 -3.000000 +v -0.250000 0.987500 -3.000000 +v -0.250000 0.987500 -2.875000 +v -0.125000 0.987500 -2.875000 +v -0.125000 0.987500 -3.000000 +v 0.500000 1.000000 -0.500000 +v 0.750000 1.000000 -0.500000 +v 0.500000 1.000000 -0.750000 +v 0.750000 1.000000 -0.750000 +v 0.500000 3.500000 -0.500000 +v 0.750000 3.500000 -0.500000 +v 0.500000 3.500000 -0.750000 +v 0.750000 3.500000 -0.750000 +v -0.750000 1.000000 -0.500000 +v -0.500000 1.000000 -0.500000 +v -0.750000 1.000000 -0.750000 +v -0.500000 1.000000 -0.750000 +v -0.750000 3.500000 -0.500000 +v -0.500000 3.500000 -0.500000 +v -0.750000 3.500000 -0.750000 +v -0.500000 3.500000 -0.750000 +v 0.500000 1.000000 -3.250000 +v 0.750000 1.000000 -3.250000 +v 0.500000 1.000000 -3.500000 +v 0.750000 1.000000 -3.500000 +v 0.500000 3.500000 -3.250000 +v 0.750000 3.500000 -3.250000 +v 0.500000 3.500000 -3.500000 +v 0.750000 3.500000 -3.500000 +v -0.750000 1.000000 -3.250000 +v -0.500000 1.000000 -3.250000 +v -0.750000 1.000000 -3.500000 +v -0.500000 1.000000 -3.500000 +v -0.750000 3.500000 -3.250000 +v -0.500000 3.500000 -3.250000 +v -0.750000 3.500000 -3.500000 +v -0.500000 3.500000 -3.500000 +v -0.750000 3.500000 -0.250000 +v 0.750000 3.500000 -0.250000 +v -0.750000 3.500000 -3.750000 +v 0.750000 3.500000 -3.750000 +v -0.750000 3.750000 -3.750000 +v -0.750000 3.750000 -0.250000 +v 0.750000 3.750000 -0.250000 +v 0.750000 3.750000 -3.750000 +v -0.500000 1.000000 -3.125000 +v 0.500000 1.000000 -3.125000 +v -0.500000 1.000000 -3.875000 +v 0.500000 1.000000 -3.875000 +v -0.500000 1.500000 -3.875000 +v -0.500000 1.500000 -3.125000 +v 0.500000 1.500000 -3.125000 +v 0.500000 1.500000 -3.875000 +v 0.125000 3.875000 -0.625000 +v 0.125000 3.875000 -0.875000 +v -0.125000 3.875000 -0.625000 +v -0.125000 3.875000 -0.875000 +v 0.125000 3.750000 -0.875000 +v -0.125000 3.750000 -0.875000 +v 0.125000 3.750000 -0.625000 +v -0.125000 3.750000 -0.625000 +v -0.750000 0.750000 -3.875000 +v -0.750000 1.000000 -3.625000 +v -0.750000 1.500000 -3.625000 +v -0.750000 1.750000 -3.875000 +v -0.750000 1.000000 -4.625000 +v -0.750000 0.750000 -4.375000 +v -0.750000 1.750000 -4.375000 +v -0.750000 1.500000 -4.625000 +v 0.750000 1.000000 -3.625000 +v 0.750000 0.750000 -3.875000 +v 0.750000 1.750000 -3.875000 +v 0.750000 1.500000 -3.625000 +v 0.750000 0.750000 -4.375000 +v 0.750000 1.000000 -4.625000 +v 0.750000 1.500000 -4.625000 +v 0.750000 1.750000 -4.375000 +v -0.250000 3.812500 -0.687500 +v 0.250000 3.812500 -0.687500 +v -0.250000 4.312500 -0.687500 +v 0.250000 4.312500 -0.687500 +v -0.250000 4.312500 -0.562500 +v -0.250000 3.812500 -0.562500 +v 0.250000 3.812500 -0.562500 +v 0.250000 4.312500 -0.562500 +v -0.125000 4.187500 -0.812500 +v -0.125000 3.937500 -0.812500 +v 0.125000 3.937500 -0.812500 +v 0.125000 4.187500 -0.812500 +v -0.187500 4.250000 -0.562500 +v -0.187500 3.875000 -0.562500 +v 0.187500 3.875000 -0.562500 +v 0.187500 4.250000 -0.562500 +v -0.187500 4.250000 -0.500000 +v -0.187500 3.875000 -0.500000 +v 0.187500 3.875000 -0.500000 +v 0.187500 4.250000 -0.500000 +v 0.375000 1.000000 -3.312500 +v 0.500000 1.000000 -3.312500 +v 0.375000 1.000000 -3.437500 +v 0.500000 1.000000 -3.437500 +v -0.501000 3.500000 -3.312500 +v -0.376000 3.500000 -3.312500 +v -0.501000 3.500000 -3.437500 +v -0.376000 3.500000 -3.437500 +v -0.500000 1.000000 -3.312500 +v -0.375000 1.000000 -3.312500 +v -0.500000 1.000000 -3.437500 +v -0.375000 1.000000 -3.437500 +v 0.374000 3.500000 -3.312500 +v 0.499000 3.500000 -3.312500 +v 0.374000 3.500000 -3.437500 +v 0.499000 3.500000 -3.437500 +v -0.750000 1.250000 -4.250000 +v -0.750000 1.338388 -4.213388 +v -0.750000 1.375000 -4.125000 +v -0.750000 1.338388 -4.036612 +v -0.750000 1.250000 -4.000000 +v -0.750000 1.161612 -4.036612 +v -0.750000 1.125000 -4.125000 +v -0.750000 1.161612 -4.213388 +v -1.000000 1.250000 -4.250000 +v -1.000000 1.338388 -4.213388 +v -1.000000 1.375000 -4.125000 +v -1.000000 1.338388 -4.036612 +v -1.000000 1.250000 -4.000000 +v -1.000000 1.161612 -4.036612 +v -1.000000 1.125000 -4.125000 +v -1.000000 1.161612 -4.213388 +v -1.088388 1.213388 -4.250000 +v -1.150888 1.275888 -4.213388 +v -1.176777 1.301777 -4.125000 +v -1.150888 1.275888 -4.036612 +v -1.088388 1.213388 -4.000000 +v -1.025888 1.150888 -4.036612 +v -1.025888 1.150888 -4.213388 +v -1.125000 1.125000 -4.250000 +v -1.213388 1.125000 -4.213388 +v -1.250000 1.125000 -4.125000 +v -1.213388 1.125000 -4.036612 +v -1.125000 1.125000 -4.000000 +v -1.036612 1.125000 -4.036612 +v -1.036612 1.125000 -4.213388 +v -1.000000 1.000000 -4.125000 +v -1.125000 1.000000 -4.250000 +v -1.213388 1.000000 -4.213388 +v -1.250000 1.000000 -4.125000 +v -1.213388 1.000000 -4.036612 +v -1.125000 1.000000 -4.000000 +v -1.036612 1.000000 -4.036612 +v -1.036612 1.000000 -4.213388 +v -1.000000 0.911612 -4.088388 +v -1.125000 0.823223 -4.176777 +v -1.213388 0.849112 -4.150888 +v -1.250000 0.911612 -4.088388 +v -1.213388 0.974112 -4.025888 +v -1.036612 0.974112 -4.025888 +v -1.036612 0.849112 -4.150888 +v -1.000000 0.875000 -4.000000 +v -1.125000 0.750000 -4.000000 +v -1.213388 0.786612 -4.000000 +v -1.250000 0.875000 -4.000000 +v -1.213388 0.963388 -4.000000 +v -1.036612 0.963388 -4.000000 +v -1.036612 0.786612 -4.000000 +v -1.125000 1.000000 0.500000 +v -1.000000 0.875000 0.500000 +v -1.125000 0.750000 0.500000 +v -1.213388 0.786612 0.500000 +v -1.250000 0.875000 0.500000 +v -1.213388 0.963388 0.500000 +v -1.036612 0.963388 0.500000 +v -1.036612 0.786612 0.500000 +v -1.088388 1.000000 0.588388 +v -1.088388 0.750000 0.588388 +v -1.150888 0.786612 0.650888 +v -1.176777 0.875000 0.676777 +v -1.150888 0.963388 0.650888 +v -1.025888 0.963388 0.525888 +v -1.025888 0.786612 0.525888 +v -1.000000 1.000000 0.625000 +v -1.000000 0.750000 0.625000 +v -1.000000 0.786612 0.713388 +v -1.000000 0.875000 0.750000 +v -1.000000 0.963388 0.713388 +v -1.000000 0.963388 0.536612 +v -1.000000 0.786612 0.536612 +v -0.750000 0.875000 0.500000 +v -0.750000 1.000000 0.625000 +v -0.750000 0.750000 0.625000 +v -0.750000 0.786612 0.713388 +v -0.750000 0.875000 0.750000 +v -0.750000 0.963388 0.713388 +v -0.750000 0.963388 0.536612 +v -0.750000 0.786612 0.536612 +v 1.125000 3.375000 -0.250000 +v 1.125000 3.375000 -3.750000 +v 1.125000 3.625000 -0.250000 +v 1.125000 3.625000 -3.750000 +v -1.125000 3.375000 -3.750000 +v -1.125000 3.375000 -0.250000 +v -1.125000 3.625000 -3.750000 +v -1.125000 3.625000 -0.250000 +v 0.625000 2.500000 2.500000 +v 0.448223 2.500000 2.573223 +v 0.375000 2.500000 2.750000 +v 0.448223 2.500000 2.926777 +v 0.625000 2.500000 3.000000 +v 0.801777 2.500000 2.926777 +v 0.875000 2.500000 2.750000 +v 0.801777 2.500000 2.573223 +v 0.625000 2.500000 1.750000 +v 0.448223 2.500000 1.823223 +v 0.375000 2.500000 2.000000 +v 0.448223 2.500000 2.176777 +v 0.625000 2.500000 2.250000 +v 0.801777 2.500000 2.176777 +v 0.875000 2.500000 2.000000 +v 0.801777 2.500000 1.823223 +v 0.625000 3.000000 2.500000 +v 0.448223 3.000000 2.573223 +v 0.375000 3.000000 2.750000 +v 0.448223 3.000000 2.926777 +v 0.625000 3.000000 3.000000 +v 0.801777 3.000000 2.926777 +v 0.875000 3.000000 2.750000 +v 0.801777 3.000000 2.573223 +v 0.625000 3.000000 1.750000 +v 0.448223 3.000000 1.823223 +v 0.375000 3.000000 2.000000 +v 0.448223 3.000000 2.176777 +v 0.625000 3.000000 2.250000 +v 0.801777 3.000000 2.176777 +v 0.875000 3.000000 2.000000 +v 0.801777 3.000000 1.823223 +v 0.536612 3.125000 2.661612 +v 0.625000 3.125000 2.625000 +v 0.500000 3.125000 2.750000 +v 0.536612 3.125000 2.838388 +v 0.625000 3.125000 2.875000 +v 0.713388 3.125000 2.838388 +v 0.750000 3.125000 2.750000 +v 0.713388 3.125000 2.661612 +v 0.536612 3.125000 1.911612 +v 0.625000 3.125000 1.875000 +v 0.500000 3.125000 2.000000 +v 0.536612 3.125000 2.088388 +v 0.625000 3.125000 2.125000 +v 0.713388 3.125000 2.088388 +v 0.750000 3.125000 2.000000 +v 0.713388 3.125000 1.911612 +vt 0.964670 0.929866 +vt 0.974078 0.932982 +vt 0.966013 0.933222 +vt 0.116235 0.984543 +vt 0.106827 0.981428 +vt 0.114891 0.981188 +vt 0.156962 0.964302 +vt 0.159223 0.974514 +vt 0.156962 0.975209 +vt 0.462708 0.953115 +vt 0.470311 0.972098 +vt 0.451956 0.980603 +vt 0.154207 0.964945 +vt 0.755545 0.794827 +vt 0.751880 0.784538 +vt 0.755565 0.784537 +vt 0.817620 0.267565 +vt 0.821321 0.278052 +vt 0.817636 0.278053 +vt 0.751860 0.711424 +vt 0.755565 0.721885 +vt 0.751880 0.721885 +vt 0.751880 0.701001 +vt 0.755545 0.711424 +vt 0.162261 0.984488 +vt 0.154207 0.975852 +vt 0.751880 0.805410 +vt 0.751860 0.794828 +vt 0.817636 0.257169 +vt 0.821305 0.267565 +vt 0.412886 0.978242 +vt 0.418184 0.961190 +vt 0.430976 0.972687 +vt 0.412778 0.715128 +vt 0.409073 0.704667 +vt 0.412758 0.704667 +vt 0.409093 0.694244 +vt 0.412778 0.694244 +vt 0.433731 0.972043 +vt 0.425678 0.963407 +vt 0.428433 0.962764 +vt 0.406278 0.810175 +vt 0.409983 0.820757 +vt 0.406298 0.820758 +vt 0.409963 0.831153 +vt 0.406294 0.820758 +vt 0.409979 0.820758 +vt 0.433731 0.982950 +vt 0.409983 0.799885 +vt 0.409963 0.810175 +vt 0.409979 0.841641 +vt 0.406278 0.831153 +vt 0.893080 0.866947 +vt 0.896780 0.859229 +vt 0.896765 0.866947 +vt 0.168818 0.983136 +vt 0.169754 0.986705 +vt 0.175053 0.980560 +vt 0.172792 0.970348 +vt 0.175053 0.969653 +vt 0.169754 0.960374 +vt 0.163197 0.961726 +vt 0.162261 0.958157 +vt 0.159223 0.966334 +vt 0.163197 0.981474 +vt 0.172792 0.978528 +vt 0.168818 0.963388 +vt 0.171573 0.982493 +vt 0.161979 0.973871 +vt 0.165953 0.961082 +vt 0.896777 0.906201 +vt 0.893080 0.898336 +vt 0.896765 0.898335 +vt 0.246705 0.859638 +vt 0.243005 0.851792 +vt 0.246690 0.851792 +vt 0.243019 0.843975 +vt 0.246705 0.843975 +vt 0.165953 0.980831 +vt 0.896780 0.874884 +vt 0.893095 0.874884 +vt 0.893092 0.890539 +vt 0.896777 0.890539 +vt 0.161979 0.965691 +vt 0.565196 0.854933 +vt 0.560292 0.847110 +vt 0.563120 0.847190 +vt 0.105483 0.984864 +vt 0.101124 0.975631 +vt 0.097880 0.965881 +vt 0.106827 0.961053 +vt 0.101124 0.967191 +vt 0.123838 0.965107 +vt 0.114891 0.960813 +vt 0.116235 0.957377 +vt 0.120593 0.975050 +vt 0.123838 0.976360 +vt 0.097880 0.977134 +vt 0.105483 0.957698 +vt 0.120593 0.966610 +vt 0.729674 0.974152 +vt 0.729674 0.982591 +vt 0.710205 0.974733 +vt 0.893080 0.874884 +vt 0.889380 0.866947 +vt 0.893065 0.866947 +vt 0.324434 0.896666 +vt 0.328108 0.904462 +vt 0.324423 0.904462 +vt 0.565196 0.839279 +vt 0.562369 0.839199 +vt 0.893080 0.859229 +vt 0.889395 0.859230 +vt 0.328119 0.912328 +vt 0.324434 0.912328 +vt 0.409185 0.851630 +vt 0.412886 0.859476 +vt 0.409200 0.859476 +vt 0.409200 0.843813 +vt 0.412871 0.851630 +vt 0.151452 0.969653 +vt 0.149191 0.978528 +vt 0.149191 0.970348 +vt 0.975422 0.957033 +vt 0.983025 0.976016 +vt 0.964669 0.984520 +vt 0.154207 0.979917 +vt 0.151452 0.980560 +vt 0.563977 0.807733 +vt 0.560312 0.797443 +vt 0.563997 0.797443 +vt 0.669146 0.650553 +vt 0.672847 0.661041 +vt 0.669162 0.661041 +vt 0.409073 0.746436 +vt 0.412778 0.756897 +vt 0.409093 0.756897 +vt 0.409093 0.736013 +vt 0.412758 0.746436 +vt 0.146153 0.960374 +vt 0.154207 0.969010 +vt 0.560312 0.818316 +vt 0.560292 0.807733 +vt 0.669162 0.640158 +vt 0.672831 0.650553 +vt 0.987895 0.337962 +vt 0.982596 0.344107 +vt 0.975103 0.315559 +vt 0.412778 0.694244 +vt 0.409073 0.683783 +vt 0.412758 0.683783 +vt 0.409093 0.673360 +vt 0.412778 0.673360 +vt 0.990650 0.326412 +vt 0.982596 0.317776 +vt 0.985351 0.317133 +vt 0.817620 0.246587 +vt 0.821325 0.257169 +vt 0.817640 0.257169 +vt 0.563977 0.828711 +vt 0.560308 0.818316 +vt 0.563993 0.818316 +vt 0.990650 0.337319 +vt 0.987895 0.327055 +vt 0.821325 0.236296 +vt 0.821305 0.246586 +vt 0.563993 0.839199 +vt 0.560292 0.828711 +vt 0.889395 0.843575 +vt 0.893065 0.851292 +vt 0.889380 0.851292 +vt 0.139597 0.961726 +vt 0.138660 0.958157 +vt 0.133361 0.975209 +vt 0.135623 0.966334 +vt 0.135623 0.974514 +vt 0.138660 0.984488 +vt 0.145217 0.983136 +vt 0.146153 0.986705 +vt 0.145217 0.963388 +vt 0.133361 0.964302 +vt 0.139597 0.981474 +vt 0.136841 0.962369 +vt 0.146436 0.970991 +vt 0.142462 0.983779 +vt 0.246701 0.906618 +vt 0.243005 0.898753 +vt 0.246690 0.898752 +vt 0.246705 0.843975 +vt 0.243005 0.836129 +vt 0.246690 0.836129 +vt 0.243019 0.828312 +vt 0.246705 0.828312 +vt 0.142462 0.964031 +vt 0.893080 0.859229 +vt 0.889395 0.859229 +vt 0.243016 0.890956 +vt 0.246701 0.890956 +vt 0.756764 0.842028 +vt 0.751860 0.834205 +vt 0.754688 0.834284 +vt 0.983025 0.937276 +vt 0.975422 0.929546 +vt 0.983025 0.948528 +vt 0.974078 0.953356 +vt 0.979780 0.947219 +vt 0.957066 0.949303 +vt 0.966013 0.953597 +vt 0.964669 0.957033 +vt 0.957066 0.938050 +vt 0.960311 0.939360 +vt 0.979780 0.938779 +vt 0.975422 0.956712 +vt 0.960311 0.947800 +vt 0.840983 0.975291 +vt 0.854749 0.968913 +vt 0.860452 0.983150 +vt 0.896780 0.859229 +vt 0.893080 0.851292 +vt 0.896765 0.851292 +vt 0.561508 0.886259 +vt 0.565182 0.894056 +vt 0.561496 0.894056 +vt 0.753937 0.826294 +vt 0.756764 0.826373 +vt 0.893095 0.843575 +vt 0.896780 0.843575 +vt 0.565193 0.901922 +vt 0.561508 0.901922 +vt 0.142103 0.829484 +vt 0.145803 0.837330 +vt 0.142118 0.837330 +vt 0.142118 0.821667 +vt 0.145788 0.829484 +vt 0.889441 0.388429 +vt 0.871015 0.410580 +vt 0.871015 0.388430 +vt 0.814488 0.877039 +vt 0.832914 0.788483 +vt 0.832914 0.877037 +vt 0.283727 0.803652 +vt 0.262037 0.789471 +vt 0.284136 0.789488 +vt 0.841473 0.533162 +vt 0.870954 0.415024 +vt 0.870954 0.533163 +vt 0.291281 0.651453 +vt 0.259197 0.742079 +vt 0.261815 0.651431 +vt 0.642122 0.081258 +vt 0.745310 0.199398 +vt 0.642122 0.199396 +vt 0.261815 0.808370 +vt 0.261628 0.803635 +vt 0.281483 0.746831 +vt 0.291281 0.808393 +vt 0.288663 0.742101 +vt 0.673557 0.849500 +vt 0.651456 0.856720 +vt 0.651456 0.849711 +vt 0.680924 0.758312 +vt 0.673557 0.765392 +vt 0.651456 0.758595 +vt 0.669406 0.433451 +vt 0.743070 0.514682 +vt 0.669406 0.514671 +vt 0.743070 0.433462 +vt 0.750186 0.514717 +vt 0.661790 0.433484 +vt 0.501319 0.862125 +vt 0.501319 0.792035 +vt 0.530787 0.784743 +vt 0.254484 0.784731 +vt 0.252614 0.737380 +vt 0.281892 0.732667 +vt 0.387852 0.758143 +vt 0.406278 0.846693 +vt 0.387852 0.846696 +vt 0.899666 0.390799 +vt 0.918092 0.412949 +vt 0.899666 0.412949 +vt 0.784792 0.997004 +vt 0.798931 0.975265 +vt 0.798931 0.997403 +vt 0.661790 0.514704 +vt 0.654423 0.533161 +vt 0.757553 0.533178 +vt 0.750186 0.533176 +vt 0.313312 0.984464 +vt 0.303904 0.981349 +vt 0.311968 0.981109 +vt 0.832563 0.984542 +vt 0.823155 0.981427 +vt 0.831219 0.981186 +vt 0.915578 0.972216 +vt 0.913317 0.981090 +vt 0.913317 0.972910 +vt 0.231573 0.949085 +vt 0.239176 0.968068 +vt 0.220820 0.976572 +vt 0.918333 0.982479 +vt 0.915578 0.983122 +vt 0.563977 0.786860 +vt 0.560312 0.776571 +vt 0.563997 0.776570 +vt 0.669146 0.671437 +vt 0.672847 0.681924 +vt 0.669162 0.681925 +vt 0.751860 0.732308 +vt 0.755565 0.742769 +vt 0.751880 0.742769 +vt 0.751880 0.721885 +vt 0.755545 0.732308 +vt 0.913035 0.962293 +vt 0.918333 0.971573 +vt 0.560312 0.797443 +vt 0.560292 0.786860 +vt 0.669162 0.661041 +vt 0.672831 0.671437 +vt 0.889044 0.984399 +vt 0.883746 0.990544 +vt 0.876252 0.961996 +vt 0.412778 0.736012 +vt 0.409073 0.725552 +vt 0.412758 0.725551 +vt 0.409093 0.715128 +vt 0.412778 0.715128 +vt 0.891799 0.972849 +vt 0.883746 0.964213 +vt 0.886501 0.963569 +vt 0.142103 0.790211 +vt 0.145808 0.800793 +vt 0.142123 0.800794 +vt 0.842211 0.224305 +vt 0.838541 0.213910 +vt 0.842226 0.213909 +vt 0.891799 0.983756 +vt 0.889044 0.973492 +vt 0.145808 0.779921 +vt 0.145788 0.790211 +vt 0.838541 0.234793 +vt 0.838526 0.224305 +vt 0.324437 0.881011 +vt 0.328108 0.888728 +vt 0.324423 0.888729 +vt 0.910280 0.962936 +vt 0.903723 0.964288 +vt 0.902786 0.960720 +vt 0.897488 0.966864 +vt 0.899749 0.977077 +vt 0.897488 0.977771 +vt 0.902786 0.987051 +vt 0.909343 0.985699 +vt 0.910280 0.989267 +vt 0.909343 0.965951 +vt 0.899749 0.968897 +vt 0.903723 0.984036 +vt 0.900968 0.964931 +vt 0.910562 0.973553 +vt 0.906588 0.986342 +vt 0.131059 0.912323 +vt 0.127362 0.904457 +vt 0.131047 0.904457 +vt 0.565196 0.870596 +vt 0.561496 0.862750 +vt 0.565182 0.862750 +vt 0.561511 0.854933 +vt 0.565196 0.854933 +vt 0.906588 0.966594 +vt 0.328123 0.896665 +vt 0.324437 0.896666 +vt 0.127373 0.896660 +vt 0.131059 0.896660 +vt 0.837819 0.869340 +vt 0.832914 0.861517 +vt 0.835742 0.861597 +vt 0.814208 0.977133 +vt 0.821811 0.984863 +vt 0.814208 0.965880 +vt 0.823155 0.961052 +vt 0.817453 0.967190 +vt 0.840166 0.965105 +vt 0.831219 0.960811 +vt 0.832563 0.957375 +vt 0.836921 0.975048 +vt 0.840166 0.976358 +vt 0.817453 0.975629 +vt 0.821811 0.957696 +vt 0.836921 0.966609 +vt 0.748507 0.983944 +vt 0.748507 0.975504 +vt 0.767975 0.983363 +vt 0.131062 0.896660 +vt 0.127362 0.888723 +vt 0.131047 0.888723 +vt 0.703416 0.900457 +vt 0.707089 0.908254 +vt 0.703404 0.908254 +vt 0.834991 0.853606 +vt 0.837819 0.853686 +vt 0.127377 0.881006 +vt 0.131062 0.881005 +vt 0.707101 0.916120 +vt 0.703416 0.916120 +vt 0.561496 0.878413 +vt 0.565196 0.886259 +vt 0.561511 0.886259 +vt 0.561511 0.870596 +vt 0.565182 0.878413 +vt 0.945965 0.971483 +vt 0.943703 0.980358 +vt 0.943703 0.972178 +vt 0.957166 0.373615 +vt 0.957166 0.362362 +vt 0.983125 0.372840 +vt 0.948720 0.981747 +vt 0.945965 0.982390 +vt 0.409963 0.789302 +vt 0.406298 0.779013 +vt 0.409983 0.779012 +vt 0.751860 0.815806 +vt 0.755561 0.826293 +vt 0.751875 0.826294 +vt 0.751860 0.753192 +vt 0.755565 0.763653 +vt 0.751880 0.763653 +vt 0.751880 0.742769 +vt 0.755545 0.753192 +vt 0.940666 0.962204 +vt 0.948720 0.970840 +vt 0.406298 0.799885 +vt 0.406278 0.789302 +vt 0.751875 0.805410 +vt 0.755545 0.815805 +vt 0.968947 0.211996 +vt 0.974245 0.194945 +vt 0.987037 0.206441 +vt 0.755565 0.784537 +vt 0.751860 0.774076 +vt 0.755545 0.774076 +vt 0.751880 0.763653 +vt 0.755565 0.763653 +vt 0.989792 0.205797 +vt 0.981739 0.197161 +vt 0.984494 0.196518 +vt 0.142103 0.811084 +vt 0.145808 0.821666 +vt 0.142123 0.821667 +vt 0.246690 0.817824 +vt 0.243020 0.807429 +vt 0.246705 0.807429 +vt 0.989792 0.216704 +vt 0.145808 0.800794 +vt 0.145788 0.811083 +vt 0.243020 0.828312 +vt 0.243005 0.817824 +vt 0.243019 0.875302 +vt 0.246690 0.883018 +vt 0.243005 0.883019 +vt 0.934109 0.963556 +vt 0.933173 0.959987 +vt 0.927874 0.977039 +vt 0.930135 0.968164 +vt 0.930135 0.976344 +vt 0.933173 0.986318 +vt 0.939729 0.984966 +vt 0.940666 0.988535 +vt 0.939729 0.965218 +vt 0.927874 0.966132 +vt 0.934109 0.983304 +vt 0.931354 0.964199 +vt 0.940948 0.972821 +vt 0.936974 0.985610 +vt 0.781669 0.918250 +vt 0.777972 0.910384 +vt 0.781658 0.910384 +vt 0.602063 0.875303 +vt 0.598363 0.867457 +vt 0.602049 0.867457 +vt 0.598378 0.859640 +vt 0.602063 0.859640 +vt 0.936974 0.965861 +vt 0.246705 0.890955 +vt 0.243019 0.890956 +vt 0.777984 0.902588 +vt 0.781669 0.902588 +vt 0.785854 0.081220 +vt 0.780950 0.073397 +vt 0.783777 0.073477 +vt 0.294957 0.977055 +vt 0.302560 0.984785 +vt 0.294957 0.965802 +vt 0.303904 0.960974 +vt 0.298202 0.967112 +vt 0.320915 0.965028 +vt 0.311968 0.960734 +vt 0.313312 0.957298 +vt 0.320915 0.976281 +vt 0.317670 0.974971 +vt 0.298202 0.975552 +vt 0.302560 0.957619 +vt 0.317670 0.966531 +vt 0.566017 0.975236 +vt 0.579783 0.968857 +vt 0.585486 0.983094 +vt 0.896780 0.890538 +vt 0.893080 0.882602 +vt 0.896765 0.882601 +vt 0.561508 0.901922 +vt 0.565182 0.909718 +vt 0.561496 0.909718 +vt 0.783026 0.065486 +vt 0.785854 0.065566 +vt 0.893095 0.874885 +vt 0.896780 0.874884 +vt 0.565193 0.917584 +vt 0.561508 0.917584 +vt 0.243005 0.867455 +vt 0.246705 0.875301 +vt 0.243019 0.875301 +vt 0.243019 0.859638 +vt 0.246690 0.867455 +vt 0.962328 0.168381 +vt 0.943902 0.190531 +vt 0.943902 0.168381 +vt 0.672850 0.533178 +vt 0.654423 0.621734 +vt 0.654423 0.533180 +vt 0.090326 0.810172 +vt 0.068636 0.795991 +vt 0.090735 0.796008 +vt 0.841473 0.651302 +vt 0.870954 0.533164 +vt 0.870954 0.651303 +vt 0.097880 0.657973 +vt 0.065796 0.748599 +vt 0.068414 0.657951 +vt 0.642122 0.199398 +vt 0.745310 0.317538 +vt 0.642122 0.317536 +vt 0.068414 0.814890 +vt 0.068227 0.810155 +vt 0.088082 0.753351 +vt 0.097880 0.814913 +vt 0.095262 0.748621 +vt 0.644089 0.849500 +vt 0.621987 0.856720 +vt 0.621987 0.849711 +vt 0.651456 0.758312 +vt 0.644088 0.765392 +vt 0.621987 0.758595 +vt 0.654164 0.739885 +vt 0.580500 0.658653 +vt 0.654164 0.658665 +vt 0.580500 0.739873 +vt 0.573383 0.658618 +vt 0.661780 0.739852 +vt 0.501319 0.791682 +vt 0.501319 0.861772 +vt 0.471850 0.869063 +vt 0.061083 0.791251 +vt 0.059213 0.743900 +vt 0.088491 0.739187 +vt 0.889380 0.887828 +vt 0.870954 0.799278 +vt 0.889380 0.799275 +vt 0.673633 0.967035 +vt 0.692059 0.989184 +vt 0.673633 0.989185 +vt 0.325765 0.996349 +vt 0.339904 0.974610 +vt 0.339904 0.996748 +vt 0.661780 0.658632 +vt 0.669146 0.758312 +vt 0.566017 0.758296 +vt 0.566017 0.640158 +vt 0.000136 0.000014 +vt 0.088582 0.118072 +vt 0.000136 0.118085 +vt 0.088582 0.413485 +vt 0.177029 0.000000 +vt 0.177029 0.413483 +vt 0.627394 0.081258 +vt 0.638423 0.149560 +vt 0.623696 0.149171 +vt 0.471824 0.873341 +vt 0.457084 0.784737 +vt 0.471824 0.784737 +vt 0.624752 0.224985 +vt 0.642122 0.414907 +vt 0.029469 0.525549 +vt 0.044203 0.413264 +vt 0.044203 0.805768 +vt 0.000136 0.295193 +vt 0.088582 0.413250 +vt 0.000136 0.413264 +vt 0.088446 0.264661 +vt 0.088582 0.295179 +vt 0.000000 0.146603 +vt 0.000000 0.264674 +vt 0.626338 0.338705 +vt 0.595561 0.243161 +vt 0.029469 0.693765 +vt 0.000000 0.553867 +vt 0.619388 0.849014 +vt 0.605094 0.880278 +vt 0.604655 0.849011 +vt 0.331691 0.869731 +vt 0.349759 0.838197 +vt 0.345683 0.869865 +vt 0.058964 0.818944 +vt 0.044280 0.850210 +vt 0.044223 0.818943 +vt 0.768198 0.031410 +vt 0.787591 0.000000 +vt 0.777652 0.031028 +vt 0.335766 0.900690 +vt 0.349759 0.900824 +vt 0.442365 0.577926 +vt 0.530807 0.577926 +vt 0.530811 0.696065 +vt 0.412886 0.651166 +vt 0.294957 0.415042 +vt 0.412886 0.415023 +vt 0.619826 0.817628 +vt 0.605094 0.817625 +vt 0.778137 0.062999 +vt 0.787591 0.062617 +vt 0.059213 0.624775 +vt 0.059213 0.602103 +vt 0.088667 0.567265 +vt 0.128680 0.570366 +vt 0.164527 0.555144 +vt 0.165498 0.569328 +vt 0.566017 0.415870 +vt 0.606537 0.447023 +vt 0.566017 0.640158 +vt 0.221117 0.651300 +vt 0.250599 0.415023 +vt 0.250599 0.651300 +vt 0.059021 0.787558 +vt 0.044280 0.787558 +vt 0.177029 0.415155 +vt 0.177029 0.651431 +vt 0.294957 0.651428 +vt 0.294957 0.415152 +vt 0.177029 0.564772 +vt 0.164527 0.543809 +vt 0.166673 0.413485 +vt 0.986770 0.176000 +vt 0.972029 0.139084 +vt 0.986770 0.139084 +vt 0.191770 0.993851 +vt 0.177029 0.971700 +vt 0.191770 0.971700 +vt 0.127710 0.556183 +vt 0.127710 0.544848 +vt 0.191770 0.971702 +vt 0.206511 0.993838 +vt 0.191770 0.993841 +vt 0.128680 0.559031 +vt 0.078311 0.415979 +vt 0.972750 0.888042 +vt 0.987491 0.924958 +vt 0.972750 0.924959 +vt 0.766935 0.081220 +vt 0.752194 0.059070 +vt 0.766935 0.059069 +vt 0.991464 0.789133 +vt 0.980153 0.751916 +vt 0.991464 0.752235 +vt 0.473857 0.973494 +vt 0.488598 0.995630 +vt 0.473857 0.995633 +vt 0.654423 0.415023 +vt 0.606537 0.425996 +vt 0.643372 0.446670 +vt 0.643372 0.425643 +vt 0.654423 0.639311 +vt 0.953091 0.805785 +vt 0.974079 0.842889 +vt 0.953091 0.842688 +vt 0.723832 0.341514 +vt 0.699899 0.399398 +vt 0.642122 0.375422 +vt 0.253827 0.385635 +vt 0.297997 0.341280 +vt 0.297997 0.385582 +vt 0.177029 0.385442 +vt 0.209550 0.341282 +vt 0.209550 0.385584 +vt 0.442122 0.057873 +vt 0.486065 0.074394 +vt 0.466891 0.095357 +vt 0.253829 0.179730 +vt 0.297998 0.135044 +vt 0.297998 0.179321 +vt 0.488240 0.530725 +vt 0.533171 0.492408 +vt 0.532770 0.534460 +vt 0.404174 0.032951 +vt 0.461296 0.036909 +vt 0.209551 0.179335 +vt 0.253829 0.135453 +vt 0.444360 0.534460 +vt 0.488642 0.488673 +vt 0.330222 0.341137 +vt 0.330222 0.385439 +vt 0.253827 0.341333 +vt 0.177029 0.178242 +vt 0.209551 0.135058 +vt 0.330222 0.133941 +vt 0.330222 0.178218 +vt 0.215035 0.090456 +vt 0.253778 0.090801 +vt 0.450950 0.453374 +vt 0.489346 0.450106 +vt 0.320622 0.296811 +vt 0.253777 0.296983 +vt 0.177029 0.133965 +vt 0.292426 0.090443 +vt 0.320622 0.089478 +vt 0.292425 0.296936 +vt 0.177029 0.341140 +vt 0.215034 0.296938 +vt 0.495995 0.054605 +vt 0.528309 0.453374 +vt 0.423348 0.011988 +vt 0.474322 0.021806 +vt 0.514272 0.125355 +vt 0.551268 0.110288 +vt 0.553753 0.132145 +vt 0.253676 0.045774 +vt 0.490353 0.415023 +vt 0.301423 0.252461 +vt 0.226003 0.252551 +vt 0.253676 0.252584 +vt 0.205676 0.044844 +vt 0.226003 0.045527 +vt 0.301422 0.044829 +vt 0.281282 0.252550 +vt 0.205677 0.252463 +vt 0.578111 0.100362 +vt 0.591333 0.118248 +vt 0.281282 0.045519 +vt 0.518184 0.417358 +vt 0.541129 0.000000 +vt 0.532977 0.037258 +vt 0.514286 0.009926 +vt 0.523067 0.105438 +vt 0.547770 0.077403 +vt 0.253523 0.000372 +vt 0.569330 0.004850 +vt 0.543714 0.033287 +vt 0.527688 0.068132 +vt 0.536489 0.075463 +vt 0.253524 0.208136 +vt 0.234323 0.000000 +vt 0.242454 0.000273 +vt 0.591333 0.023176 +vt 0.554994 0.035227 +vt 0.264567 0.208123 +vt 0.495995 0.031968 +vt 0.525660 0.046075 +vt 0.558507 0.073432 +vt 0.264566 0.000270 +vt 0.523724 0.057376 +vt 0.966035 0.766820 +vt 0.936572 0.781587 +vt 0.936570 0.766820 +vt 0.703100 0.952165 +vt 0.680255 0.967034 +vt 0.673635 0.952165 +vt 0.213217 0.912249 +vt 0.227959 0.941781 +vt 0.213217 0.941782 +vt 0.703098 0.937397 +vt 0.673633 0.937397 +vt 0.936552 0.759416 +vt 0.966033 0.744649 +vt 0.966034 0.759416 +vt 0.096015 0.889985 +vt 0.084703 0.860147 +vt 0.096015 0.860466 +vt 0.059213 0.882540 +vt 0.068666 0.896917 +vt 0.059213 0.897299 +vt 0.936551 0.744649 +vt 0.958695 0.729848 +vt 0.084703 0.889665 +vt 0.068666 0.882158 +vt 0.242673 0.934318 +vt 0.242673 0.949085 +vt 0.058944 0.786858 +vt 0.044203 0.757324 +vt 0.058944 0.757323 +vt 0.847202 0.020110 +vt 0.869097 0.000000 +vt 0.876682 0.020110 +vt 0.931764 0.109288 +vt 0.917245 0.079726 +vt 0.931764 0.079755 +vt 0.847153 0.034349 +vt 0.876634 0.034349 +vt 0.088849 0.964659 +vt 0.059213 0.950394 +vt 0.088658 0.950394 +vt 0.403216 0.197512 +vt 0.390263 0.167165 +vt 0.403216 0.168564 +vt 0.366754 0.191339 +vt 0.373792 0.203238 +vt 0.366754 0.205813 +vt 0.081462 0.934219 +vt 0.390263 0.196113 +vt 0.373792 0.188764 +vt 0.901451 0.087162 +vt 0.901451 0.072396 +vt 0.739714 0.938818 +vt 0.724972 0.909286 +vt 0.739714 0.909285 +vt 0.029488 0.950347 +vt 0.050963 0.965522 +vt 0.036228 0.965522 +vt 0.177029 0.867980 +vt 0.190411 0.897579 +vt 0.177029 0.897513 +vt 0.058950 0.935582 +vt 0.029480 0.935582 +vt 0.966265 0.722480 +vt 0.936783 0.707712 +vt 0.966265 0.707712 +vt 0.927380 0.921683 +vt 0.913134 0.892037 +vt 0.927380 0.892165 +vt 0.206884 0.890190 +vt 0.213066 0.904813 +vt 0.206884 0.904957 +vt 0.944197 0.692928 +vt 0.958938 0.692928 +vt 0.913134 0.921555 +vt 0.896994 0.914288 +vt 0.955365 0.892305 +vt 0.929738 0.914650 +vt 0.927380 0.892037 +vt 0.000000 0.950810 +vt 0.022693 0.935582 +vt 0.029472 0.950810 +vt 0.710205 0.900457 +vt 0.697413 0.870846 +vt 0.710205 0.870924 +vt 0.000008 0.965574 +vt 0.029480 0.965574 +vt 0.937002 0.029548 +vt 0.966483 0.014780 +vt 0.966484 0.029548 +vt 0.443196 0.922096 +vt 0.428673 0.892493 +vt 0.443196 0.892578 +vt 0.680958 0.878219 +vt 0.673633 0.863590 +vt 0.680958 0.863452 +vt 0.944417 0.000000 +vt 0.959158 0.000000 +vt 0.428673 0.922011 +vt 0.412886 0.914791 +vt 0.986770 0.139084 +vt 0.998081 0.168921 +vt 0.986770 0.168602 +vt 0.943731 0.929546 +vt 0.929738 0.929412 +vt 0.966038 0.781587 +vt 0.943691 0.796388 +vt 0.955365 0.921828 +vt 0.943731 0.914784 +vt 0.710205 0.916591 +vt 0.710205 0.901824 +vt 0.971888 0.139084 +vt 0.944043 0.153845 +vt 0.943902 0.139084 +vt 0.379655 0.911290 +vt 0.358059 0.933373 +vt 0.350190 0.911290 +vt 0.840983 0.902484 +vt 0.855723 0.932019 +vt 0.840983 0.932019 +vt 0.636525 0.965810 +vt 0.651260 0.993705 +vt 0.636525 0.993846 +vt 0.380361 0.910450 +vt 0.364922 0.891463 +vt 0.379655 0.891508 +vt 0.365628 0.868803 +vt 0.380361 0.868847 +vt 0.372794 0.948140 +vt 0.358061 0.948140 +vt 0.365628 0.910405 +vt 0.350190 0.901819 +vt 0.350542 0.890489 +vt 0.870543 0.924610 +vt 0.870543 0.939377 +vt 0.879290 0.207889 +vt 0.895312 0.226384 +vt 0.880585 0.226800 +vt 0.814194 0.947579 +vt 0.799454 0.918044 +vt 0.814194 0.918044 +vt 0.500029 0.947445 +vt 0.522075 0.925361 +vt 0.529511 0.947445 +vt 0.879290 0.185217 +vt 0.894017 0.207473 +vt 0.507334 0.910594 +vt 0.522075 0.910594 +vt 0.972029 0.153844 +vt 0.953497 0.168381 +vt 0.894017 0.184802 +vt 0.909068 0.194782 +vt 0.784792 0.925401 +vt 0.784792 0.910633 +vt 0.938537 0.445694 +vt 0.951270 0.474960 +vt 0.938537 0.475212 +vt 0.566017 0.926567 +vt 0.588511 0.902648 +vt 0.595482 0.926567 +vt 0.409860 0.917707 +vt 0.395118 0.947240 +vt 0.395118 0.917707 +vt 0.566269 0.939322 +vt 0.595734 0.939322 +vt 0.967717 0.593972 +vt 0.954984 0.564470 +vt 0.967717 0.564437 +vt 0.571270 0.859640 +vt 0.593110 0.876307 +vt 0.566017 0.870919 +vt 0.584817 0.899954 +vt 0.595874 0.893504 +vt 0.598363 0.902648 +vt 0.954984 0.594005 +vt 0.938537 0.571858 +vt 0.582328 0.890810 +vt 0.380361 0.925172 +vt 0.380361 0.910405 +vt 0.953489 0.849231 +vt 0.924040 0.861987 +vt 0.924007 0.849231 +vt 0.748507 0.902588 +vt 0.763248 0.932121 +vt 0.748507 0.932121 +vt 0.953522 0.861987 +vt 0.931359 0.885905 +vt 0.983025 0.959112 +vt 0.995091 0.989749 +vt 0.983025 0.986783 +vt 0.969804 0.328751 +vt 0.956007 0.317896 +vt 0.969804 0.315559 +vt 0.951270 0.445442 +vt 0.967716 0.467544 +vt 0.943918 0.319448 +vt 0.956007 0.331088 +vt 0.943918 0.345832 +vt 0.777972 0.924820 +vt 0.777972 0.939586 +vt 0.621987 0.935434 +vt 0.634971 0.965669 +vt 0.621987 0.963470 +vt 0.929861 0.576163 +vt 0.916328 0.601859 +vt 0.902162 0.580169 +vt 0.936570 0.774219 +vt 0.921830 0.803754 +vt 0.921830 0.774220 +vt 0.930178 0.562975 +vt 0.902479 0.566981 +vt 0.132867 0.881005 +vt 0.111630 0.862785 +vt 0.125418 0.863581 +vt 0.118931 0.838991 +vt 0.132719 0.839787 +vt 0.749851 0.848667 +vt 0.737119 0.863678 +vt 0.737119 0.848919 +vt 0.119080 0.880209 +vt 0.097880 0.872293 +vt 0.101530 0.860396 +vt 0.907008 0.781587 +vt 0.907008 0.766820 +vt 0.604655 0.835846 +vt 0.583418 0.817625 +vt 0.597206 0.818422 +vt 0.444353 0.945749 +vt 0.459093 0.916214 +vt 0.459093 0.945749 +vt 0.590867 0.835050 +vt 0.566017 0.839031 +vt 0.597354 0.859640 +vt 0.858414 0.240277 +vt 0.871146 0.225477 +vt 0.871146 0.240244 +vt 0.634971 0.937633 +vt 0.651445 0.958813 +vt 0.583566 0.858844 +vt 0.569741 0.847743 +vt 0.473752 0.938348 +vt 0.473752 0.953115 +vt 0.982458 0.554962 +vt 0.994994 0.580555 +vt 0.982458 0.582998 +vt 0.294957 0.920393 +vt 0.316994 0.893834 +vt 0.324423 0.920393 +vt 0.206565 0.941814 +vt 0.191825 0.912279 +vt 0.206565 0.912280 +vt 0.981225 0.002443 +vt 0.993761 0.028036 +vt 0.981224 0.030479 +vt 0.877837 0.562975 +vt 0.885056 0.580631 +vt 0.870954 0.580631 +vt 0.876087 0.604307 +vt 0.890189 0.604307 +vt 0.302509 0.881011 +vt 0.317242 0.881011 +vt 0.994718 0.680733 +vt 0.981006 0.658623 +vt 0.994718 0.651199 +vt 0.902162 0.582136 +vt 0.177029 0.919724 +vt 0.177029 0.904957 +vt 0.493898 0.886996 +vt 0.485939 0.869662 +vt 0.500029 0.869063 +vt 0.560238 0.946457 +vt 0.545497 0.916922 +vt 0.560238 0.916923 +vt 0.127362 0.881006 +vt 0.105258 0.907565 +vt 0.097880 0.881005 +vt 0.500029 0.910433 +vt 0.479809 0.887595 +vt 0.119967 0.920387 +vt 0.105226 0.920387 +vt 0.456298 0.873331 +vt 0.442586 0.851502 +vt 0.456298 0.843813 +vt 0.485939 0.911031 +vt 0.471850 0.901288 +vt 0.530811 0.924243 +vt 0.530811 0.909476 +vt 0.995825 0.959112 +vt 0.983025 0.929546 +vt 0.995825 0.929578 +vt 0.471824 0.878696 +vt 0.445870 0.900743 +vt 0.444353 0.873341 +vt 0.936551 0.737285 +vt 0.921811 0.766820 +vt 0.921811 0.737286 +vt 0.982683 0.463525 +vt 0.995483 0.493092 +vt 0.982683 0.493060 +vt 0.979111 0.438491 +vt 0.966311 0.408725 +vt 0.979111 0.408973 +vt 0.994942 0.353858 +vt 0.983125 0.384683 +vt 0.983125 0.356429 +vt 0.459605 0.916214 +vt 0.445870 0.913537 +vt 0.966311 0.438242 +vt 0.957166 0.415639 +vt 0.471824 0.904284 +vt 0.459605 0.903420 +vt 0.907008 0.744615 +vt 0.907008 0.729848 +vt 0.995463 0.534502 +vt 0.982663 0.504736 +vt 0.995463 0.504984 +vt 0.953091 0.842645 +vt 0.938350 0.813112 +vt 0.953091 0.813111 +vt 0.770345 0.277132 +vt 0.745310 0.295722 +vt 0.752720 0.270236 +vt 0.782162 0.302814 +vt 0.782162 0.274560 +vt 0.754122 0.313297 +vt 0.745310 0.309849 +vt 0.692059 0.967034 +vt 0.706082 0.990789 +vt 0.692059 0.995070 +vt 0.770345 0.305386 +vt 0.754122 0.299170 +vt 0.923672 0.820552 +vt 0.923672 0.805785 +vt 0.901255 0.640872 +vt 0.878767 0.614761 +vt 0.893448 0.614761 +vt 0.901255 0.633840 +vt 0.915759 0.604334 +vt 0.915759 0.633867 +vt 0.870954 0.651303 +vt 0.900317 0.651303 +vt 0.621987 0.935434 +vt 0.611526 0.966055 +vt 0.611525 0.936762 +vt 0.876682 0.005171 +vt 0.890599 0.033451 +vt 0.876682 0.031129 +vt 0.892512 0.604307 +vt 0.877830 0.604307 +vt 0.595871 0.944745 +vt 0.890599 0.007493 +vt 0.906946 0.012979 +vt 0.931580 0.626437 +vt 0.931580 0.641204 +vt 0.899666 0.279928 +vt 0.922730 0.254730 +vt 0.928880 0.279928 +vt 0.899687 0.488906 +vt 0.914180 0.518457 +vt 0.899687 0.518440 +vt 0.980258 0.694228 +vt 0.994144 0.721429 +vt 0.980258 0.722729 +vt 0.500072 0.887605 +vt 0.514770 0.869063 +vt 0.514813 0.887605 +vt 0.500037 0.910594 +vt 0.514778 0.910594 +vt 0.907614 0.240457 +vt 0.922221 0.240457 +vt 0.999072 0.139084 +vt 0.988145 0.119393 +vt 0.999072 0.109991 +vt 0.529535 0.888717 +vt 0.930020 0.511045 +vt 0.930020 0.525812 +vt 0.412886 0.961190 +vt 0.437982 0.943782 +vt 0.441973 0.961190 +vt 0.931740 0.072394 +vt 0.917194 0.042861 +vt 0.931740 0.042860 +vt 0.870954 0.876316 +vt 0.853941 0.859053 +vt 0.868637 0.858345 +vt 0.248196 0.934532 +vt 0.275447 0.948711 +vt 0.247076 0.948711 +vt 0.856258 0.900420 +vt 0.856258 0.877024 +vt 0.424080 0.929550 +vt 0.438624 0.929550 +vt 0.269158 0.964953 +vt 0.254972 0.964953 +vt 0.840983 0.890786 +vt 0.901451 0.050242 +vt 0.901451 0.035474 +vt 0.187961 0.823449 +vt 0.182523 0.854643 +vt 0.177029 0.848759 +vt 0.931743 0.153554 +vt 0.917200 0.183076 +vt 0.917200 0.153542 +vt 0.433731 0.961190 +vt 0.444326 0.991963 +vt 0.433731 0.990366 +vt 0.987491 0.918587 +vt 0.998036 0.888042 +vt 0.998036 0.917370 +vt 0.212628 0.859527 +vt 0.198949 0.835216 +vt 0.212628 0.832853 +vt 0.968947 0.179035 +vt 0.979248 0.194945 +vt 0.968947 0.193699 +vt 0.989907 0.878189 +vt 0.974286 0.855435 +vt 0.989907 0.849231 +vt 0.198949 0.861890 +vt 0.901451 0.160950 +vt 0.901451 0.146183 +vt 0.339469 0.167165 +vt 0.337437 0.192658 +vt 0.330222 0.190941 +vt 0.931752 0.146183 +vt 0.917219 0.116626 +vt 0.931752 0.116649 +vt 0.000000 0.965574 +vt 0.014291 0.995301 +vt 0.000000 0.995020 +vt 0.943918 0.256276 +vt 0.958186 0.226617 +vt 0.958186 0.256128 +vt 0.366754 0.169635 +vt 0.353900 0.199870 +vt 0.353900 0.170599 +vt 0.337437 0.207293 +vt 0.330222 0.205576 +vt 0.970599 0.248318 +vt 0.901451 0.124055 +vt 0.901451 0.109288 +vt 0.847153 0.020023 +vt 0.824336 0.000000 +vt 0.839064 0.000000 +vt 0.929981 0.353829 +vt 0.915466 0.324325 +vt 0.929981 0.324296 +vt 0.817537 0.034281 +vt 0.846995 0.034281 +vt 0.927676 0.959987 +vt 0.956770 0.945704 +vt 0.957066 0.959987 +vt 0.595250 0.971053 +vt 0.585486 0.997805 +vt 0.585486 0.968857 +vt 0.933670 0.672428 +vt 0.946588 0.685293 +vt 0.933670 0.686841 +vt 0.934995 0.929546 +vt 0.949690 0.929546 +vt 0.960148 0.680129 +vt 0.946588 0.670879 +vt 0.960148 0.651303 +vt 0.899666 0.331655 +vt 0.899666 0.316889 +vt 0.681135 0.852911 +vt 0.699251 0.824487 +vt 0.710205 0.849462 +vt 0.929990 0.451963 +vt 0.915460 0.422455 +vt 0.929990 0.422430 +vt 0.710205 0.860004 +vt 0.500029 0.913006 +vt 0.489530 0.943800 +vt 0.489529 0.914630 +vt 0.621813 0.996470 +vt 0.610397 0.966055 +vt 0.621813 0.970512 +vt 0.696793 0.814291 +vt 0.684716 0.826212 +vt 0.682258 0.816015 +vt 0.473857 0.937308 +vt 0.473857 0.922722 +vt 0.176344 0.903313 +vt 0.161925 0.892503 +vt 0.176344 0.880881 +vt 0.899687 0.429790 +vt 0.899687 0.415023 +vt 0.132867 0.880881 +vt 0.152167 0.906960 +vt 0.137638 0.906324 +vt 0.929980 0.533211 +vt 0.915439 0.562760 +vt 0.915439 0.533226 +vt 0.344230 0.920166 +vt 0.335545 0.901112 +vt 0.349759 0.900824 +vt 0.380361 0.976039 +vt 0.394707 0.947240 +vt 0.394707 0.974827 +vt 0.349759 0.942478 +vt 0.330017 0.920455 +vt 0.152167 0.921241 +vt 0.137638 0.920606 +vt 0.407360 0.964151 +vt 0.161925 0.910716 +vt 0.161925 0.882153 +vt 0.899687 0.540579 +vt 0.899687 0.525812 +vt 0.896994 0.960720 +vt 0.921599 0.943285 +vt 0.926210 0.960720 +vt 0.899687 0.451988 +vt 0.914175 0.481525 +vt 0.899687 0.481523 +vt 0.595871 0.966055 +vt 0.610397 0.994624 +vt 0.595871 0.993749 +vt 0.872419 0.206186 +vt 0.865373 0.225087 +vt 0.858501 0.205806 +vt 0.879290 0.183826 +vt 0.865373 0.183446 +vt 0.907515 0.929047 +vt 0.922123 0.929047 +vt 0.844584 0.215836 +vt 0.898043 0.932245 +vt 0.906990 0.943285 +vt 0.930024 0.474138 +vt 0.930024 0.488906 +vt 0.924007 0.892037 +vt 0.911531 0.859852 +vt 0.924007 0.864637 +vt 0.930000 0.390785 +vt 0.915509 0.361264 +vt 0.930000 0.361251 +vt 0.997467 0.256207 +vt 0.986911 0.225605 +vt 0.997467 0.226909 +vt 1.000000 0.408725 +vt 0.989493 0.439062 +vt 0.989493 0.409644 +vt 0.986308 0.051236 +vt 0.997283 0.073676 +vt 0.986308 0.077909 +vt 0.980677 0.300850 +vt 0.970338 0.314625 +vt 0.970338 0.299915 +vt 0.813486 0.996727 +vt 0.798931 0.975123 +vt 0.813486 0.974866 +vt 0.896994 0.861225 +vt 0.899055 0.882466 +vt 0.899666 0.368625 +vt 0.899666 0.353858 +vt 0.907805 0.689730 +vt 0.933670 0.667101 +vt 0.933669 0.692928 +vt 0.899666 0.279953 +vt 0.914167 0.309462 +vt 0.899666 0.309487 +vt 0.014291 0.965574 +vt 0.028564 0.995253 +vt 0.014291 0.995074 +vt 0.970527 0.256276 +vt 0.956278 0.285850 +vt 0.956278 0.256317 +vt 0.860452 0.970406 +vt 0.870063 0.998184 +vt 0.860452 0.999677 +vt 0.920339 0.651303 +vt 0.933271 0.652902 +vt 0.943918 0.263818 +vt 0.907008 0.661332 +vt 0.920737 0.665502 +vt 0.929993 0.302122 +vt 0.929993 0.316889 +vt 0.444697 0.167165 +vt 0.450662 0.190055 +vt 0.439941 0.189763 +vt 0.029814 0.935515 +vt 0.016477 0.906049 +vt 0.029814 0.905982 +vt 0.088695 0.994193 +vt 0.073954 0.964659 +vt 0.088695 0.964659 +vt 0.938537 0.504731 +vt 0.953278 0.475217 +vt 0.953278 0.504736 +vt 0.476257 0.167440 +vt 0.466140 0.197272 +vt 0.466140 0.167750 +vt 0.450662 0.204817 +vt 0.439941 0.204524 +vt 0.967944 0.482843 +vt 0.967944 0.497602 +vt 0.000000 0.913428 +vt 0.000000 0.898662 +vt 0.958707 0.641151 +vt 0.944179 0.619074 +vt 0.957742 0.619074 +vt 0.703404 0.937397 +vt 0.690111 0.907840 +vt 0.703404 0.907863 +vt 0.636525 0.994083 +vt 0.621987 0.966335 +vt 0.636525 0.965669 +vt 0.160425 0.860561 +vt 0.154052 0.880743 +vt 0.146643 0.860422 +vt 0.154026 0.838991 +vt 0.167808 0.839130 +vt 0.944207 0.604307 +vt 0.957771 0.604307 +vt 0.132867 0.870721 +vt 0.931638 0.611617 +vt 0.931580 0.641151 +vt 0.673633 0.915225 +vt 0.673633 0.900457 +vt 0.840983 0.920532 +vt 0.814684 0.942608 +vt 0.814208 0.920532 +vt 0.089108 0.934197 +vt 0.075682 0.904684 +vt 0.089108 0.904663 +vt 0.885044 0.907726 +vt 0.877080 0.888041 +vt 0.891171 0.887831 +vt 0.966687 0.564437 +vt 0.939027 0.549763 +vt 0.967177 0.549763 +vt 0.877080 0.929761 +vt 0.870954 0.907936 +vt 0.828040 0.957375 +vt 0.814653 0.957375 +vt 0.958453 0.534262 +vt 0.840920 0.950066 +vt 0.828071 0.942608 +vt 0.059213 0.912066 +vt 0.059213 0.897299 +vt 0.412886 0.858026 +vt 0.438575 0.881201 +vt 0.424468 0.882796 +vt 0.651792 0.905901 +vt 0.638464 0.935370 +vt 0.638464 0.905837 +vt 0.442586 0.843813 +vt 0.414373 0.847003 +vt 0.943902 0.139084 +vt 0.954794 0.107922 +vt 0.954794 0.136057 +vt 0.787591 0.008959 +vt 0.802291 0.035439 +vt 0.787591 0.034917 +vt 0.442586 0.890898 +vt 0.428479 0.892493 +vt 0.970652 0.113588 +vt 0.970652 0.127656 +vt 0.802291 0.009481 +vt 0.817537 0.012979 +vt 0.621987 0.913224 +vt 0.621987 0.898457 +vt 0.000000 0.864289 +vt 0.025565 0.887597 +vt 0.011562 0.889071 +vt 0.276940 0.934470 +vt 0.263548 0.904999 +vt 0.276940 0.904936 +vt 0.029806 0.850210 +vt 0.001801 0.853157 +vt 0.943902 0.078131 +vt 0.954890 0.047002 +vt 0.954890 0.074875 +vt 0.557918 0.946457 +vt 0.530811 0.960977 +vt 0.535682 0.949097 +vt 0.015803 0.898662 +vt 0.029806 0.897188 +vt 0.970791 0.066471 +vt 0.553047 0.958337 +vt 0.546800 0.975213 +vt 0.247076 0.912377 +vt 0.247076 0.897610 +vt 0.309717 0.870324 +vt 0.331691 0.853742 +vt 0.331691 0.881011 +vt 0.936783 0.700281 +vt 0.923486 0.729848 +vt 0.923486 0.700313 +vt 0.339180 0.793760 +vt 0.350162 0.824891 +vt 0.339180 0.821921 +vt 0.997234 0.106597 +vt 0.986375 0.080794 +vt 0.997234 0.078131 +vt 0.294957 0.858747 +vt 0.300252 0.879418 +vt 0.939970 0.430992 +vt 0.930000 0.442325 +vt 0.930000 0.428092 +vt 0.993944 0.722729 +vt 0.980258 0.737457 +vt 0.980258 0.724613 +vt 0.304422 0.849653 +vt 0.320704 0.848398 +vt 0.907008 0.707695 +vt 0.907008 0.692928 +vt 0.771071 0.902452 +vt 0.748507 0.880372 +vt 0.754601 0.880304 +vt 0.784493 0.872949 +vt 0.771071 0.872918 +vt 0.996081 0.287373 +vt 0.985003 0.256276 +vt 0.996081 0.259472 +vt 0.996357 0.604307 +vt 0.985403 0.635442 +vt 0.985403 0.607208 +vt 0.937001 0.031808 +vt 0.910411 0.015747 +vt 0.937001 0.017127 +vt 0.899307 0.391649 +vt 0.889441 0.402546 +vt 0.889441 0.388429 +vt 0.970791 0.076536 +vt 0.986308 0.054442 +vt 0.986308 0.069209 +vt 0.920242 0.000690 +vt 0.754601 0.865537 +vt 0.414230 0.204192 +vt 0.439941 0.182245 +vt 0.433827 0.204829 +vt 0.324145 0.957218 +vt 0.311405 0.927765 +vt 0.324145 0.927685 +vt 0.261817 0.994488 +vt 0.247076 0.964953 +vt 0.261817 0.964953 +vt 0.938537 0.504736 +vt 0.953277 0.534262 +vt 0.938537 0.534256 +vt 0.403216 0.174953 +vt 0.403216 0.204476 +vt 0.430142 0.167165 +vt 0.439941 0.167483 +vt 0.967922 0.512362 +vt 0.967922 0.527122 +vt 0.414229 0.174670 +vt 0.430142 0.181926 +vt 0.294957 0.935159 +vt 0.294957 0.920393 +vt 0.840983 0.920532 +vt 0.827897 0.889864 +vt 0.840983 0.893109 +vt 0.127034 0.957377 +vt 0.114323 0.927780 +vt 0.127034 0.927843 +vt 0.984461 0.828146 +vt 0.996365 0.798421 +vt 0.996365 0.827948 +vt 0.972750 0.929546 +vt 0.955365 0.912110 +vt 0.969975 0.912440 +vt 0.958140 0.888042 +vt 0.972750 0.888372 +vt 0.827735 0.877039 +vt 0.840821 0.880285 +vt 0.743954 0.994906 +vt 0.729674 0.978602 +vt 0.743954 0.968354 +vt 0.814488 0.888393 +vt 0.814811 0.914041 +vt 0.097880 0.935154 +vt 0.097880 0.920387 +vt 0.897839 0.842822 +vt 0.923672 0.821805 +vt 0.923672 0.849231 +vt 0.059213 0.934147 +vt 0.046392 0.904675 +vt 0.059213 0.904613 +vt 0.595545 0.201701 +vt 0.585686 0.182139 +vt 0.595545 0.176447 +vt 0.651792 0.922954 +vt 0.671798 0.899294 +vt 0.665940 0.923791 +vt 0.657650 0.939368 +vt 0.671798 0.940204 +vt 0.910333 0.805785 +vt 0.923249 0.808990 +vt 0.782331 0.995300 +vt 0.767975 0.979427 +vt 0.782331 0.969126 +vt 0.896994 0.817191 +vt 0.910755 0.818600 +vt 0.029933 0.912065 +vt 0.029933 0.897299 +vt 0.636192 0.872830 +vt 0.656307 0.883402 +vt 0.636192 0.898457 +vt 0.161991 0.958140 +vt 0.149307 0.928622 +vt 0.161991 0.928605 +vt 0.621987 0.870868 +vt 0.621987 0.896495 +vt 0.325765 0.942767 +vt 0.334862 0.974211 +vt 0.325765 0.968525 +vt 0.644073 0.858683 +vt 0.956432 0.224254 +vt 0.967965 0.213133 +vt 0.968947 0.226617 +vt 0.334862 0.948453 +vt 0.349759 0.971227 +vt 0.968947 0.199671 +vt 0.955451 0.210770 +vt 0.943918 0.194945 +vt 0.132867 0.936009 +vt 0.132867 0.921241 +vt 0.733896 0.901766 +vt 0.710205 0.879642 +vt 0.717434 0.879613 +vt 0.746743 0.901782 +vt 0.733896 0.872231 +vt 0.746743 0.872248 +vt 0.670998 0.872701 +vt 0.658028 0.856980 +vt 0.672719 0.856720 +vt 0.205740 0.942199 +vt 0.193400 0.971315 +vt 0.193400 0.941814 +vt 0.658028 0.897793 +vt 0.656307 0.872960 +vt 0.883426 0.959434 +vt 0.894865 0.948690 +vt 0.895899 0.961996 +vt 0.177029 0.949098 +vt 0.895899 0.934885 +vt 0.882392 0.946128 +vt 0.870954 0.929761 +vt 0.717434 0.864846 +vt 0.983418 0.139084 +vt 0.984832 0.128363 +vt 0.988145 0.138893 +vt 0.850168 0.403043 +vt 0.860611 0.410567 +vt 0.850168 0.410423 +vt 0.817687 0.229288 +vt 0.827921 0.234935 +vt 0.817620 0.236296 +vt 0.752194 0.066472 +vt 0.741750 0.059069 +vt 0.752194 0.059088 +vt 0.731347 0.066472 +vt 0.731346 0.059089 +vt 0.983418 0.118211 +vt 0.988145 0.118021 +vt 0.871015 0.403040 +vt 0.871015 0.410419 +vt 0.838526 0.229288 +vt 0.838459 0.236296 +vt 0.530811 0.985673 +vt 0.545690 0.975213 +vt 0.545690 0.996097 +vt 0.670640 0.637997 +vt 0.654423 0.637997 +vt 0.667488 0.621734 +vt 0.545690 0.985674 +vt 0.560450 0.975213 +vt 0.560450 0.996097 +vt 0.406278 0.769051 +vt 0.412418 0.758140 +vt 0.412418 0.779012 +vt 0.387852 0.867580 +vt 0.408699 0.846696 +vt 0.408699 0.867579 +vt 0.281282 0.207867 +vt 0.253676 0.208123 +vt 0.488881 0.569214 +vt 0.387178 0.073855 +vt 0.455655 0.167165 +vt 0.429472 0.137861 +vt 0.471844 0.135361 +vt 0.461455 0.571549 +vt 0.361579 0.070305 +vt 0.363216 0.027271 +vt 0.226003 0.414991 +vt 0.426376 0.112859 +vt 0.441784 0.577926 +vt 0.412886 0.544664 +vt 0.340958 0.079731 +vt 0.330222 0.042353 +vt 0.566017 0.544664 +vt 0.516712 0.571549 +vt 0.410895 0.089431 +vt 0.373133 0.163615 +vt 0.333936 0.124611 +vt 0.650297 0.073795 +vt 0.591333 0.000009 +vt 0.650297 0.000000 +vt 0.723977 0.059069 +vt 0.709235 0.000000 +vt 0.723975 0.000000 +vt 0.726928 0.317538 +vt 0.767994 0.364559 +vt 0.723832 0.362775 +vt 0.768199 0.059069 +vt 0.768196 0.000000 +vt 0.767994 0.411947 +vt 0.723832 0.410163 +vt 0.709235 0.070090 +vt 0.665032 0.000423 +vt 0.709235 0.000000 +vt 0.555026 0.132145 +vt 0.496062 0.176448 +vt 0.496062 0.132146 +vt 0.782715 0.384109 +vt 0.782715 0.412542 +vt 0.665032 0.070513 +vt 0.650297 0.028601 +vt 0.495995 0.205917 +vt 0.555026 0.176447 +vt 0.554959 0.205916 +vt 0.247083 0.852695 +vt 0.291274 0.808393 +vt 0.291281 0.852695 +vt 0.294957 0.838063 +vt 0.339180 0.793760 +vt 0.339180 0.838062 +vt 0.214276 0.807429 +vt 0.241946 0.841506 +vt 0.213217 0.841419 +vt 0.029806 0.850210 +vt 0.058550 0.894513 +vt 0.029806 0.894512 +vt 0.243004 0.869919 +vt 0.214276 0.869832 +vt 0.213217 0.870194 +vt 0.241950 0.911973 +vt 0.213217 0.912248 +vt 0.175201 0.836580 +vt 0.167835 0.880880 +vt 0.167835 0.836579 +vt 0.593056 0.176447 +vt 0.585686 0.132145 +vt 0.593056 0.132145 +vt 0.063939 0.814913 +vt 0.059213 0.859381 +vt 0.059213 0.815104 +vt 0.787591 0.079722 +vt 0.794587 0.035506 +vt 0.794587 0.079789 +vt 0.097873 0.815870 +vt 0.063939 0.859190 +vt 0.044223 0.805909 +vt 0.000000 0.850210 +vt 0.000000 0.805911 +vt 0.979735 0.842889 +vt 0.974079 0.798452 +vt 0.979735 0.798612 +vt 0.840285 0.832783 +vt 0.832914 0.788483 +vt 0.840285 0.788483 +vt 0.983837 0.408725 +vt 0.989493 0.453161 +vt 0.983837 0.453002 +vt 0.889380 0.799275 +vt 0.896750 0.843574 +vt 0.889380 0.843575 +vt 0.979111 0.408916 +vt 0.979111 0.453193 +vt 0.096104 0.941649 +vt 0.089108 0.897299 +vt 0.096104 0.897366 +vt 0.984461 0.842698 +vt 0.984462 0.798421 +vt 0.739714 0.901824 +vt 0.746710 0.946175 +vt 0.739714 0.946108 +vt 0.872718 0.146229 +vt 0.880089 0.168381 +vt 0.865348 0.168380 +vt 0.802360 0.120640 +vt 0.809592 0.137493 +vt 0.794862 0.137793 +vt 0.883001 0.651622 +vt 0.871690 0.798893 +vt 0.871690 0.651303 +vt 0.885695 0.415023 +vt 0.870954 0.562690 +vt 0.870954 0.415024 +vt 0.862237 0.799275 +vt 0.862237 0.651685 +vt 0.901451 0.035608 +vt 0.887459 0.183087 +vt 0.887459 0.035474 +vt 0.850168 0.388110 +vt 0.861479 0.240839 +vt 0.861479 0.388429 +vt 0.751860 0.701001 +vt 0.737119 0.848667 +vt 0.737119 0.701002 +vt 0.870932 0.240457 +vt 0.870932 0.388047 +vt 0.899687 0.415157 +vt 0.885695 0.562636 +vt 0.885695 0.415023 +vt 0.484970 0.414874 +vt 0.573416 0.208131 +vt 0.573416 0.414873 +vt 0.440746 0.414756 +vt 0.352300 0.208145 +vt 0.440746 0.208131 +vt 0.841473 0.798956 +vt 0.852784 0.651685 +vt 0.852784 0.799275 +vt 0.044203 0.757323 +vt 0.058944 0.609657 +vt 0.058944 0.757323 +vt 0.862237 0.651303 +vt 0.862237 0.798893 +vt 0.899666 0.240591 +vt 0.885673 0.388070 +vt 0.885673 0.240457 +vt 0.865348 0.035793 +vt 0.854037 0.183064 +vt 0.854037 0.035474 +vt 0.885673 0.240457 +vt 0.870932 0.388123 +vt 0.870932 0.240457 +vt 0.844584 0.183446 +vt 0.844584 0.035856 +vt 0.883001 0.798915 +vt 0.896994 0.651437 +vt 0.896994 0.799049 +vt 0.802890 0.052627 +vt 0.817089 0.120339 +vt 0.872718 0.057625 +vt 0.887459 0.146230 +vt 0.412886 0.843806 +vt 0.457084 0.784744 +vt 0.457084 0.843813 +vt 0.097880 0.779921 +vt 0.142103 0.838991 +vt 0.097880 0.838990 +vt 0.556220 0.132197 +vt 0.584492 0.177472 +vt 0.555026 0.177524 +vt 0.841473 0.799275 +vt 0.870954 0.858345 +vt 0.841473 0.858344 +vt 0.585686 0.205880 +vt 0.556220 0.205932 +vt 0.814261 0.910351 +vt 0.784792 0.868579 +vt 0.814261 0.868297 +vt 0.560292 0.776571 +vt 0.530811 0.865174 +vt 0.530811 0.776570 +vt 0.350190 0.679023 +vt 0.364911 0.651185 +vt 0.409073 0.662447 +vt 0.656865 0.414165 +vt 0.671596 0.399398 +vt 0.671598 0.414165 +vt 0.457174 0.784669 +vt 0.427691 0.696065 +vt 0.457173 0.696066 +vt 0.607994 0.817625 +vt 0.566017 0.802462 +vt 0.580009 0.758312 +vt 0.360266 0.756950 +vt 0.394352 0.690285 +vt 0.389707 0.758140 +vt 0.486083 0.784739 +vt 0.471850 0.696065 +vt 0.486083 0.696135 +vt 0.471850 0.784737 +vt 0.515549 0.696140 +vt 0.530781 0.784678 +vt 0.515549 0.784743 +vt 0.427691 0.784669 +vt 0.412886 0.696132 +vt 0.642122 0.414165 +vt 0.656863 0.399398 +vt 0.656863 0.414165 +vt 0.720798 0.414165 +vt 0.713428 0.399398 +vt 0.720798 0.399398 +vt 0.757218 0.862685 +vt 0.749851 0.848738 +vt 0.757218 0.848667 +vt 0.832914 0.844113 +vt 0.840633 0.853606 +vt 0.833267 0.853584 +vt 0.833267 0.832783 +vt 0.840281 0.844135 +vt 0.036818 0.995056 +vt 0.029480 0.972871 +vt 0.036818 0.965522 +vt 0.870464 0.968913 +vt 0.840983 0.939377 +vt 0.870464 0.939378 +vt 0.044189 0.995056 +vt 0.051555 0.995057 +vt 0.044189 0.965522 +vt 0.051555 0.965523 +vt 0.965611 0.286041 +vt 0.970338 0.315368 +vt 0.965611 0.315559 +vt 0.979915 0.226617 +vt 0.986911 0.256207 +vt 0.979915 0.256139 +vt 0.943918 0.293133 +vt 0.955229 0.308211 +vt 0.943918 0.307892 +vt 0.058672 0.987709 +vt 0.955229 0.293452 +vt 0.970599 0.234133 +vt 0.731346 0.059069 +vt 0.709235 0.081220 +vt 0.709235 0.059070 +vt 0.591333 0.073804 +vt 0.595018 0.095955 +vt 0.591333 0.095955 +vt 0.595016 0.118106 +vt 0.591333 0.095955 +vt 0.595016 0.095955 +vt 0.593056 0.132240 +vt 0.595420 0.154283 +vt 0.593056 0.154379 +vt 0.409073 0.651185 +vt 0.412571 0.673360 +vt 0.409073 0.673327 +vt 0.677465 0.688132 +vt 0.672850 0.533178 +vt 0.677465 0.534214 +vt 0.943902 0.194945 +vt 0.936956 0.047002 +vt 0.943902 0.047845 +vt 0.682889 0.535830 +vt 0.936956 0.351416 +vt 0.930000 0.197387 +vt 0.936956 0.194945 +vt 0.902495 0.652723 +vt 0.907008 0.803039 +vt 0.902495 0.804460 +vt 0.943918 0.344853 +vt 0.936956 0.195637 +vt 0.943918 0.194945 +vt 0.896994 0.654048 +vt 0.896994 0.805785 +vt 0.938537 0.447879 +vt 0.931580 0.601871 +vt 0.931580 0.445442 +vt 0.817620 0.269935 +vt 0.802890 0.270236 +vt 0.462892 0.208166 +vt 0.484970 0.208133 +vt 0.352300 0.414770 +vt 0.330222 0.208398 +vt 0.880089 0.035475 +vt 0.887459 0.057626 +vt 0.058938 0.609516 +vt 0.044203 0.413405 +vt 0.058938 0.413264 +vt 0.595561 0.414905 +vt 0.462892 0.415003 +vt 0.810388 0.035474 +vt 0.817620 0.052327 +vt 0.805264 0.964065 +vt 0.801275 0.968061 +vt 0.795634 0.954418 +vt 0.366586 0.968588 +vt 0.356956 0.964592 +vt 0.360944 0.954945 +vt 0.444353 0.961620 +vt 0.451956 0.953436 +vt 0.470311 0.960845 +vt 0.462708 0.980282 +vt 0.444353 0.972873 +vt 0.755565 0.701001 +vt 0.159506 0.985131 +vt 0.755565 0.805410 +vt 0.821321 0.257169 +vt 0.425678 0.989738 +vt 0.418184 0.987521 +vt 0.412886 0.967335 +vt 0.430976 0.983593 +vt 0.409093 0.715128 +vt 0.406298 0.799886 +vt 0.406294 0.841641 +vt 0.893095 0.859230 +vt 0.171573 0.962745 +vt 0.175547 0.969704 +vt 0.175547 0.977884 +vt 0.893092 0.906201 +vt 0.243019 0.859638 +vt 0.562369 0.854853 +vt 0.723971 0.988729 +vt 0.715907 0.988970 +vt 0.710205 0.983172 +vt 0.715907 0.968595 +vt 0.723971 0.968354 +vt 0.889395 0.874884 +vt 0.328119 0.896666 +vt 0.412886 0.843813 +vt 0.957066 0.965538 +vt 0.964669 0.957354 +vt 0.983025 0.964763 +vt 0.975422 0.984200 +vt 0.957066 0.976790 +vt 0.412778 0.736013 +vt 0.148908 0.959731 +vt 0.563997 0.818315 +vt 0.672847 0.640158 +vt 0.975103 0.341890 +vt 0.969804 0.332611 +vt 0.969804 0.321704 +vt 0.409093 0.694244 +vt 0.817640 0.236297 +vt 0.560307 0.839199 +vt 0.893080 0.843575 +vt 0.136841 0.982117 +vt 0.132868 0.975157 +vt 0.132867 0.966977 +vt 0.146436 0.979171 +vt 0.243016 0.906618 +vt 0.243019 0.843975 +vt 0.753937 0.841948 +vt 0.854749 0.989288 +vt 0.846685 0.989529 +vt 0.840983 0.983731 +vt 0.846685 0.969154 +vt 0.860452 0.974710 +vt 0.893095 0.859229 +vt 0.565193 0.886259 +vt 0.145803 0.821667 +vt 0.889441 0.410579 +vt 0.814488 0.788486 +vt 0.841473 0.415023 +vt 0.745310 0.081260 +vt 0.259384 0.746814 +vt 0.680924 0.856438 +vt 0.651456 0.765603 +vt 0.750186 0.433497 +vt 0.508686 0.784955 +vt 0.530787 0.868851 +vt 0.508686 0.869063 +vt 0.259793 0.732650 +vt 0.406278 0.758140 +vt 0.918092 0.390799 +vt 0.784792 0.974866 +vt 0.661790 0.533163 +vt 0.654423 0.415023 +vt 0.661790 0.415025 +vt 0.757553 0.415040 +vt 0.750186 0.415038 +vt 0.213217 0.957590 +vt 0.220820 0.949406 +vt 0.239176 0.956815 +vt 0.231573 0.976252 +vt 0.213217 0.968842 +vt 0.755565 0.721885 +vt 0.563997 0.797442 +vt 0.672847 0.661041 +vt 0.876252 0.988327 +vt 0.870954 0.979047 +vt 0.870954 0.968141 +vt 0.409093 0.736013 +vt 0.142123 0.779921 +vt 0.842226 0.234792 +vt 0.328123 0.881011 +vt 0.900968 0.984680 +vt 0.896994 0.977720 +vt 0.896994 0.969540 +vt 0.910562 0.981733 +vt 0.127373 0.912323 +vt 0.561511 0.870596 +vt 0.834991 0.869261 +vt 0.754209 0.969366 +vt 0.762273 0.969126 +vt 0.767975 0.974923 +vt 0.762273 0.989500 +vt 0.754209 0.989741 +vt 0.127377 0.896660 +vt 0.707101 0.900457 +vt 0.565196 0.870596 +vt 0.964769 0.354179 +vt 0.975522 0.353858 +vt 0.983125 0.361588 +vt 0.975522 0.381024 +vt 0.964769 0.381345 +vt 0.755565 0.742769 +vt 0.943421 0.961561 +vt 0.409983 0.799884 +vt 0.755561 0.805410 +vt 0.981739 0.223492 +vt 0.974245 0.221275 +vt 0.968947 0.201089 +vt 0.987037 0.217347 +vt 0.751880 0.784537 +vt 0.142123 0.800794 +vt 0.246705 0.828312 +vt 0.246705 0.875301 +vt 0.931354 0.983947 +vt 0.927380 0.976988 +vt 0.927380 0.968808 +vt 0.940948 0.981001 +vt 0.777984 0.918250 +vt 0.598378 0.875303 +vt 0.783026 0.081141 +vt 0.579783 0.989232 +vt 0.571719 0.989473 +vt 0.566017 0.983675 +vt 0.571719 0.969098 +vt 0.585486 0.974655 +vt 0.893095 0.890539 +vt 0.565193 0.901922 +vt 0.246705 0.859638 +vt 0.962328 0.190531 +vt 0.672850 0.621731 +vt 0.841473 0.533163 +vt 0.745310 0.199400 +vt 0.065983 0.753334 +vt 0.651456 0.856438 +vt 0.621987 0.765603 +vt 0.573383 0.739838 +vt 0.493951 0.868851 +vt 0.471850 0.784955 +vt 0.493951 0.784743 +vt 0.066392 0.739170 +vt 0.870954 0.887831 +vt 0.692059 0.967034 +vt 0.325765 0.974211 +vt 0.661780 0.640173 +vt 0.669146 0.640174 +vt 0.661780 0.758311 +vt 0.573383 0.640159 +vt 0.573383 0.758297 +vt 0.088582 0.000000 +vt 0.088582 0.000002 +vt 0.642122 0.081647 +vt 0.457084 0.873341 +vt 0.627394 0.414518 +vt 0.029469 0.805909 +vt 0.029469 0.413405 +vt 0.088446 0.146589 +vt 0.596618 0.318974 +vt 0.000000 0.666011 +vt 0.619826 0.880280 +vt 0.335766 0.838063 +vt 0.059021 0.850210 +vt 0.778137 0.000382 +vt 0.442369 0.696065 +vt 0.412887 0.651763 +vt 0.412886 0.622228 +vt 0.294957 0.651185 +vt 0.177029 0.655457 +vt 0.088667 0.657951 +vt 0.221117 0.415024 +vt 0.165498 0.557992 +vt 0.972029 0.176001 +vt 0.177029 0.993851 +vt 0.206511 0.971700 +vt 0.987491 0.888042 +vt 0.752194 0.081220 +vt 0.980153 0.788814 +vt 0.488598 0.973492 +vt 0.974079 0.805986 +vt 0.642122 0.341514 +vt 0.666055 0.317538 +vt 0.699900 0.317538 +vt 0.723832 0.375422 +vt 0.666054 0.399398 +vt 0.444761 0.492408 +vt 0.186578 0.089499 +vt 0.186578 0.296814 +vt 0.441118 0.000000 +vt 0.462927 0.417358 +vt 0.501064 0.087112 +vt 0.242455 0.208123 +vt 0.563795 0.042558 +vt 0.567759 0.053314 +vt 0.565823 0.064615 +vt 0.694987 0.967034 +vt 0.227959 0.912248 +vt 0.943954 0.729848 +vt 0.044203 0.786858 +vt 0.854357 0.000000 +vt 0.917245 0.109259 +vt 0.059404 0.964659 +vt 0.066739 0.934219 +vt 0.724972 0.938819 +vt 0.058958 0.950347 +vt 0.190411 0.868046 +vt 0.936783 0.722480 +vt 0.213066 0.890047 +vt 0.896994 0.929047 +vt 0.007957 0.935582 +vt 0.697413 0.900379 +vt 0.937001 0.014780 +vt 0.673633 0.878356 +vt 0.412886 0.929550 +vt 0.998081 0.139403 +vt 0.958424 0.796388 +vt 0.372791 0.933373 +vt 0.855723 0.902485 +vt 0.651260 0.965669 +vt 0.350542 0.911290 +vt 0.799454 0.947578 +vt 0.507334 0.925361 +vt 0.967490 0.168381 +vt 0.909068 0.183446 +vt 0.573778 0.902648 +vt 0.409860 0.947240 +vt 0.598363 0.865028 +vt 0.938537 0.586626 +vt 0.763248 0.902588 +vt 0.946100 0.885905 +vt 0.995091 0.962078 +vt 0.967716 0.452785 +vt 0.930178 0.599855 +vt 0.936570 0.803754 +vt 0.749851 0.863426 +vt 0.101604 0.881005 +vt 0.444353 0.916214 +vt 0.858414 0.225510 +vt 0.651445 0.944795 +vt 0.566091 0.859640 +vt 0.994994 0.552519 +vt 0.302261 0.893834 +vt 0.191825 0.941813 +vt 0.993761 0.000000 +vt 0.891939 0.562975 +vt 0.981006 0.673390 +vt 0.899595 0.570298 +vt 0.545497 0.946456 +vt 0.119999 0.907565 +vt 0.442586 0.866261 +vt 0.474915 0.913006 +vt 0.983025 0.959080 +vt 0.936551 0.766819 +vt 0.995483 0.463557 +vt 0.994942 0.382112 +vt 0.957166 0.430398 +vt 0.982663 0.534254 +vt 0.938350 0.842646 +vt 0.706082 0.976771 +vt 0.871892 0.640872 +vt 0.901255 0.604307 +vt 0.621987 0.964727 +vt 0.595871 0.959391 +vt 0.906946 0.000000 +vt 0.908122 0.254730 +vt 0.914180 0.488922 +vt 0.994144 0.692928 +vt 0.500029 0.869063 +vt 0.988145 0.133940 +vt 0.529552 0.877222 +vt 0.423439 0.943782 +vt 0.917194 0.072396 +vt 0.276568 0.934532 +vt 0.870954 0.899711 +vt 0.840983 0.902484 +vt 0.931743 0.183089 +vt 0.444326 0.962787 +vt 0.987491 0.889258 +vt 0.979248 0.180280 +vt 0.974286 0.869913 +vt 0.182523 0.867980 +vt 0.917219 0.146159 +vt 0.014291 0.965855 +vt 0.943918 0.226765 +vt 0.366754 0.198906 +vt 0.970599 0.233562 +vt 0.817696 0.020023 +vt 0.915466 0.353858 +vt 0.927380 0.945704 +vt 0.595250 1.000000 +vt 0.915460 0.451988 +vt 0.681135 0.863452 +vt 0.500029 0.942176 +vt 0.610397 0.992013 +vt 0.161925 0.903718 +vt 0.929980 0.562745 +vt 0.380361 0.948453 +vt 0.335545 0.942767 +vt 0.407360 0.950358 +vt 0.914175 0.451990 +vt 0.610397 0.966930 +vt 0.879290 0.225467 +vt 0.848020 0.225477 +vt 0.915509 0.390799 +vt 0.986911 0.254902 +vt 1.000000 0.438143 +vt 0.997283 0.047002 +vt 0.980677 0.315559 +vt 0.798931 0.986053 +vt 0.910500 0.849231 +vt 0.914167 0.279928 +vt 0.028564 0.965753 +vt 0.970527 0.285809 +vt 0.870063 0.968913 +vt 0.943918 0.278585 +vt 0.016477 0.935582 +vt 0.073954 0.994193 +vt 0.938537 0.475212 +vt 0.476257 0.196963 +vt 0.690112 0.937375 +vt 0.621987 0.994749 +vt 0.167835 0.880881 +vt 0.136572 0.880881 +vt 0.075682 0.934219 +vt 0.938537 0.564437 +vt 0.891171 0.929551 +vt 0.944378 0.534262 +vt 0.441099 0.854836 +vt 0.651792 0.935434 +vt 0.943902 0.110949 +vt 0.817537 0.000000 +vt 0.028005 0.861342 +vt 0.263548 0.934532 +vt 0.943902 0.050258 +vt 0.970791 0.052535 +vt 0.557918 0.973893 +vt 0.936783 0.729816 +vt 0.350162 0.796730 +vt 0.986375 0.109260 +vt 0.939970 0.445225 +vt 0.993944 0.748418 +vt 0.318056 0.838063 +vt 0.758881 0.902588 +vt 0.784493 0.902483 +vt 0.985003 0.284177 +vt 0.996357 0.632541 +vt 0.910411 0.030427 +vt 0.899307 0.405766 +vt 0.970791 0.047002 +vt 0.906946 0.000000 +vt 0.311405 0.957298 +vt 0.247076 0.994488 +vt 0.953277 0.504742 +vt 0.114323 0.957314 +vt 0.984461 0.798619 +vt 0.958140 0.929215 +vt 0.729674 0.991878 +vt 0.046392 0.934208 +vt 0.585686 0.207393 +vt 0.657650 0.898457 +vt 0.767975 0.992514 +vt 0.656307 0.870589 +vt 0.149307 0.958157 +vt 0.629868 0.856720 +vt 0.349759 0.958349 +vt 0.719437 0.901824 +vt 0.205740 0.971700 +vt 0.672719 0.897533 +vt 0.177029 0.963849 +vt 0.970652 0.128936 +vt 0.860611 0.388429 +vt 0.828122 0.213909 +vt 0.741750 0.081220 +vt 0.387852 0.846697 +vt 0.419353 0.157739 +vt 0.253676 0.415023 +vt 0.537491 0.577926 +vt 0.330840 0.099609 +vt 0.398732 0.167165 +vt 0.349416 0.148039 +vt 0.591333 0.073804 +vt 0.709237 0.059069 +vt 0.771091 0.319322 +vt 0.650297 0.070654 +vt 0.247076 0.808393 +vt 0.294957 0.793761 +vt 0.243004 0.807515 +vt 0.058550 0.850212 +vt 0.241950 0.869919 +vt 0.175201 0.880881 +vt 0.585686 0.176447 +vt 0.787591 0.035439 +vt 0.097873 0.860147 +vt 0.044223 0.850209 +vt 0.974079 0.842729 +vt 0.832914 0.832783 +vt 0.989493 0.408884 +vt 0.896750 0.799275 +vt 0.089108 0.941582 +vt 0.746710 0.901891 +vt 0.883001 0.799212 +vt 0.885695 0.562689 +vt 0.901451 0.183221 +vt 0.850168 0.240520 +vt 0.751860 0.848667 +vt 0.899687 0.562770 +vt 0.841473 0.651365 +vt 0.044203 0.609658 +vt 0.899666 0.388204 +vt 0.865348 0.183384 +vt 0.885673 0.388123 +vt 0.883001 0.651303 +vt 0.412886 0.784737 +vt 0.142103 0.779922 +vt 0.585686 0.132145 +vt 0.870954 0.799276 +vt 0.784792 0.910633 +vt 0.560292 0.865175 +vt 0.409073 0.681402 +vt 0.364911 0.689095 +vt 0.350190 0.660068 +vt 0.394352 0.652374 +vt 0.656863 0.399398 +vt 0.607994 0.758580 +vt 0.621987 0.773476 +vt 0.621987 0.802998 +vt 0.580009 0.817357 +vt 0.566017 0.772940 +vt 0.471850 0.784669 +vt 0.471850 0.696133 +vt 0.530781 0.696074 +vt 0.412886 0.784736 +vt 0.642122 0.399398 +vt 0.713428 0.414165 +vt 0.749851 0.862756 +vt 0.840633 0.832805 +vt 0.029480 0.987639 +vt 0.840983 0.968912 +vt 0.044189 0.965522 +vt 0.044189 0.995056 +vt 0.970338 0.285850 +vt 0.986911 0.226684 +vt 0.058672 0.972942 +vt 0.970599 0.248894 +vt 0.731346 0.081219 +vt 0.595018 0.073804 +vt 0.591333 0.118106 +vt 0.595420 0.132145 +vt 0.412571 0.651218 +vt 0.672850 0.687095 +vt 0.936956 0.194102 +vt 0.682889 0.689748 +vt 0.930000 0.353858 +vt 0.907008 0.651303 +vt 0.936956 0.345546 +vt 0.938537 0.604307 +vt 0.462892 0.414907 +vt 0.330222 0.415023 +vt 0.865348 0.035474 +vt 0.044203 0.609657 +vt 0.595561 0.208163 +vt 0.462892 0.208378 +vt 0.795658 0.035774 +vt 0.795634 0.968061 +vt 0.791645 0.964065 +vt 0.791645 0.958414 +vt 0.801275 0.954418 +vt 0.805264 0.958414 +vt 0.366586 0.954945 +vt 0.370574 0.958941 +vt 0.370574 0.964592 +vt 0.360944 0.968588 +vt 0.356956 0.958941 +vt 0.840460 0.788483 +vt 0.826298 0.781930 +vt 0.840969 0.783363 +vt 0.978146 0.445442 +vt 0.972911 0.460217 +vt 0.972911 0.445450 +vt 0.173362 0.668339 +vt 0.158158 0.664634 +vt 0.172823 0.663137 +vt 0.338345 0.792162 +vt 0.344324 0.782451 +vt 0.343550 0.793760 +vt 0.349529 0.781273 +vt 0.348755 0.792582 +vt 0.826801 0.776663 +vt 0.841473 0.778096 +vt 0.967723 0.460209 +vt 0.967723 0.445442 +vt 0.157640 0.659449 +vt 0.172305 0.657951 +vt 0.349996 0.772078 +vt 0.821320 0.779273 +vt 0.825343 0.775885 +vt 0.149163 0.664025 +vt 0.817292 0.782513 +vt 0.158697 0.669837 +vt 0.153192 0.667315 +vt 0.339587 0.771658 +vt 0.344872 0.771678 +vt 0.819678 0.773869 +vt 0.156769 0.672208 +vt 0.151573 0.672729 +vt 0.345098 0.761664 +vt 0.350190 0.763531 +vt 0.824862 0.774302 +vt 0.146399 0.673267 +vt 0.967716 0.461741 +vt 0.747134 0.533279 +vt 0.752390 0.535160 +vt 0.747115 0.534531 +vt 0.978146 0.460209 +vt 0.978139 0.461741 +vt 0.757553 0.533178 +vt 0.757534 0.534430 +vt 0.168015 0.834331 +vt 0.339780 0.763110 +vt 0.345098 0.657410 +vt 0.752409 0.689358 +vt 0.350190 0.659277 +vt 0.747134 0.688729 +vt 0.840613 0.612722 +vt 0.162841 0.834869 +vt 0.814488 0.773289 +vt 0.835429 0.612290 +vt 0.757553 0.688628 +vt 0.750252 0.694335 +vt 0.342943 0.653972 +vt 0.346509 0.653408 +vt 0.841473 0.603731 +vt 0.746502 0.690187 +vt 0.830239 0.611709 +vt 0.836436 0.601755 +vt 0.339149 0.657849 +vt 0.166620 0.956640 +vt 0.171330 0.947403 +vt 0.171898 0.957875 +vt 0.337738 0.652374 +vt 0.744978 0.700715 +vt 0.745043 0.696439 +vt 0.164284 0.953107 +vt 0.166135 0.947701 +vt 0.177029 0.956088 +vt 0.176544 0.947150 +vt 0.744976 0.690803 +vt 0.173211 0.833810 +vt 0.173362 0.835329 +vt 0.744818 0.687109 +vt 0.162993 0.836388 +vt 0.337351 0.662768 +vt 0.337625 0.657381 +vt 0.308183 0.656192 +vt 0.308296 0.651185 +vt 0.715574 0.696725 +vt 0.715508 0.691089 +vt 0.715349 0.687395 +vt 0.164000 0.947870 +vt 0.164578 0.918209 +vt 0.169773 0.917911 +vt 0.174987 0.917658 +vt 0.875804 0.170534 +vt 0.881058 0.172658 +vt 0.875837 0.174185 +vt 0.171654 0.912583 +vt 0.175538 0.916097 +vt 0.710205 0.688125 +vt 0.167788 0.909114 +vt 0.297660 0.654077 +vt 0.307909 0.661578 +vt 0.299105 0.658660 +vt 0.886260 0.174204 +vt 0.881058 0.183080 +vt 0.300162 0.666935 +vt 0.294957 0.665337 +vt 0.875837 0.183081 +vt 0.176744 0.910148 +vt 0.177029 0.915384 +vt 0.306078 0.664612 +vt 0.302591 0.663024 +vt 0.176478 0.904957 +vt 0.783388 0.865537 +vt 0.769284 0.858858 +vt 0.783942 0.860422 +vt 0.947432 0.045847 +vt 0.952666 0.031071 +vt 0.952666 0.045839 +vt 0.737119 0.711378 +vt 0.721879 0.707823 +vt 0.736529 0.706181 +vt 0.811383 0.410943 +vt 0.817362 0.401232 +vt 0.816588 0.412542 +vt 0.822566 0.400055 +vt 0.821792 0.411364 +vt 0.769835 0.853595 +vt 0.784493 0.855160 +vt 0.957854 0.031079 +vt 0.957855 0.045847 +vt 0.721310 0.702643 +vt 0.735960 0.701001 +vt 0.823033 0.390860 +vt 0.764331 0.856155 +vt 0.768384 0.852803 +vt 0.712878 0.707303 +vt 0.760273 0.859359 +vt 0.722469 0.713020 +vt 0.716940 0.710553 +vt 0.812157 0.399634 +vt 0.817909 0.390460 +vt 0.762737 0.850737 +vt 0.720564 0.715410 +vt 0.715374 0.715982 +vt 0.812624 0.390439 +vt 0.818136 0.380446 +vt 0.823227 0.382312 +vt 0.767917 0.851217 +vt 0.710205 0.716571 +vt 0.957861 0.029548 +vt 0.252614 0.805169 +vt 0.247083 0.804418 +vt 0.252374 0.803940 +vt 0.947431 0.031079 +vt 0.947438 0.029548 +vt 0.242442 0.807429 +vt 0.242201 0.806199 +vt 0.731762 0.862739 +vt 0.812818 0.381892 +vt 0.818136 0.285669 +vt 0.218099 0.667278 +vt 0.823227 0.287536 +vt 0.223390 0.666800 +vt 0.783553 0.704461 +vt 0.726594 0.863328 +vt 0.757553 0.850110 +vt 0.778373 0.703981 +vt 0.213217 0.669059 +vt 0.219181 0.661961 +vt 0.815980 0.282232 +vt 0.819547 0.281667 +vt 0.779474 0.693456 +vt 0.784493 0.695477 +vt 0.223707 0.665243 +vt 0.773188 0.703354 +vt 0.812186 0.286108 +vt 0.975988 0.115372 +vt 0.980419 0.105997 +vt 0.981301 0.116447 +vt 0.810662 0.285640 +vt 0.810775 0.280633 +vt 0.223022 0.654626 +vt 0.223842 0.658823 +vt 0.973548 0.111910 +vt 0.975235 0.106452 +vt 0.986375 0.114507 +vt 0.985623 0.105587 +vt 0.225072 0.664324 +vt 0.736952 0.862167 +vt 0.737119 0.863684 +vt 0.225991 0.667905 +vt 0.726760 0.864846 +vt 0.810388 0.291027 +vt 0.795941 0.285046 +vt 0.796055 0.280039 +vt 0.237408 0.651431 +vt 0.252614 0.652433 +vt 0.240376 0.664709 +vt 0.973107 0.106685 +vt 0.974015 0.091736 +vt 0.979199 0.091281 +vt 0.984403 0.090871 +vt 0.239458 0.661128 +vt 0.865348 0.170534 +vt 0.870602 0.172658 +vt 0.865381 0.174185 +vt 0.980919 0.085899 +vt 0.984906 0.089295 +vt 0.245258 0.662928 +vt 0.976951 0.082548 +vt 0.785419 0.282930 +vt 0.795667 0.290432 +vt 0.786863 0.287514 +vt 0.875804 0.174204 +vt 0.870602 0.183080 +vt 0.790349 0.291878 +vt 0.782715 0.294191 +vt 0.865381 0.183081 +vt 0.986375 0.088537 +vt 0.793125 0.294612 +vt 0.787920 0.295789 +vt 0.985513 0.078131 +vt 0.985934 0.083312 +vt 0.826279 0.421580 +vt 0.840462 0.415023 +vt 0.840951 0.420145 +vt 0.942197 0.031083 +vt 0.947431 0.045842 +vt 0.942197 0.045850 +vt 0.829399 0.207229 +vt 0.844584 0.203521 +vt 0.844065 0.208726 +vt 0.344482 0.837758 +vt 0.339180 0.825185 +vt 0.344482 0.826422 +vt 0.349594 0.836226 +vt 0.349594 0.824891 +vt 0.826801 0.426845 +vt 0.841473 0.425410 +vt 0.937008 0.031075 +vt 0.937008 0.045842 +vt 0.828862 0.212413 +vt 0.843527 0.213909 +vt 0.783034 0.263412 +vt 0.790275 0.270235 +vt 0.784746 0.269487 +vt 0.821301 0.424238 +vt 0.820385 0.207837 +vt 0.817293 0.420996 +vt 0.825791 0.416458 +vt 0.824433 0.204549 +vt 0.829919 0.202025 +vt 0.788270 0.263118 +vt 0.794862 0.266989 +vt 0.819658 0.429642 +vt 0.827990 0.199654 +vt 0.828464 0.201239 +vt 0.785554 0.252179 +vt 0.793151 0.260914 +vt 0.824862 0.429206 +vt 0.825343 0.427624 +vt 0.822814 0.199135 +vt 0.937001 0.029548 +vt 0.830116 0.199848 +vt 0.947431 0.031075 +vt 0.947425 0.029548 +vt 0.827052 0.429170 +vt 0.839251 0.037532 +vt 0.750148 0.102116 +vt 0.790833 0.251576 +vt 0.101901 0.758239 +vt 0.136907 0.657951 +vt 0.140928 0.661594 +vt 0.745310 0.104011 +vt 0.780716 0.254074 +vt 0.107372 0.758897 +vt 0.146399 0.662251 +vt 0.840581 0.590789 +vt 0.834057 0.036992 +vt 0.817620 0.198596 +vt 0.835377 0.591224 +vt 0.814488 0.430221 +vt 0.102612 0.762236 +vt 0.097880 0.754596 +vt 0.751105 0.096775 +vt 0.841473 0.599778 +vt 0.107580 0.760067 +vt 0.836422 0.601755 +vt 0.830207 0.591804 +vt 0.755706 0.099949 +vt 0.755426 0.101513 +vt 0.675544 0.700236 +vt 0.670318 0.691257 +vt 0.675536 0.689748 +vt 0.755692 0.093528 +vt 0.682885 0.694918 +vt 0.680748 0.700216 +vt 0.680742 0.691264 +vt 0.754774 0.089352 +vt 0.746944 0.094894 +vt 0.106839 0.765673 +vt 0.844427 0.038051 +vt 0.844584 0.036532 +vt 0.111088 0.756183 +vt 0.108818 0.761074 +vt 0.834214 0.035474 +vt 0.757050 0.098998 +vt 0.758052 0.102557 +vt 0.785664 0.091933 +vt 0.682868 0.729695 +vt 0.682889 0.700162 +vt 0.135666 0.773237 +vt 0.783388 0.082286 +vt 0.675523 0.729769 +vt 0.670325 0.700209 +vt 0.794862 0.085258 +vt 0.784306 0.086463 +vt 0.680727 0.729749 +vt 0.677678 0.734991 +vt 0.141957 0.771990 +vt 0.137936 0.768347 +vt 0.673983 0.738657 +vt 0.670304 0.729742 +vt 0.794674 0.090904 +vt 0.786666 0.095491 +vt 0.655499 0.070654 +vt 0.650297 0.081116 +vt 0.650297 0.072186 +vt 0.146399 0.779921 +vt 0.146031 0.772248 +vt 0.660721 0.081097 +vt 0.660721 0.072167 +vt 0.681359 0.731279 +vt 0.682889 0.737157 +vt 0.142172 0.776484 +vt 0.136844 0.774304 +vt 0.682877 0.742355 +vt 0.834940 0.247140 +vt 0.849064 0.240457 +vt 0.849598 0.245574 +vt 0.945165 0.429627 +vt 0.950400 0.444387 +vt 0.945165 0.444394 +vt 0.799041 0.861478 +vt 0.814261 0.857920 +vt 0.813691 0.863119 +vt 0.876448 0.240277 +vt 0.871146 0.227703 +vt 0.876448 0.228941 +vt 0.881560 0.238745 +vt 0.881560 0.227410 +vt 0.835510 0.252401 +vt 0.850168 0.250834 +vt 0.939977 0.429619 +vt 0.939977 0.444386 +vt 0.798453 0.866656 +vt 0.813103 0.868297 +vt 0.201657 0.816152 +vt 0.208423 0.823449 +vt 0.202956 0.822328 +vt 0.829987 0.249843 +vt 0.790021 0.861997 +vt 0.825950 0.246638 +vt 0.834406 0.242023 +vt 0.794101 0.858749 +vt 0.799611 0.856279 +vt 0.206901 0.816212 +vt 0.213217 0.820519 +vt 0.828392 0.255261 +vt 0.797706 0.853889 +vt 0.798165 0.855479 +vt 0.204927 0.805114 +vt 0.211919 0.814342 +vt 0.833592 0.254779 +vt 0.834059 0.253192 +vt 0.792535 0.853320 +vt 0.939970 0.428092 +vt 0.799830 0.854104 +vt 0.950400 0.429619 +vt 0.950393 0.428092 +vt 0.835781 0.254723 +vt 0.808918 0.706562 +vt 0.181983 0.666831 +vt 0.210233 0.804869 +vt 0.354507 0.852005 +vt 0.378027 0.758140 +vt 0.382344 0.761424 +vt 0.177029 0.668396 +vt 0.199972 0.806679 +vt 0.360015 0.852190 +vt 0.387852 0.761610 +vt 0.849196 0.401539 +vt 0.803730 0.705971 +vt 0.787347 0.852729 +vt 0.843996 0.402021 +vt 0.823227 0.255887 +vt 0.355558 0.855926 +vt 0.350190 0.848720 +vt 0.183297 0.661568 +vt 0.845134 0.412542 +vt 0.360322 0.853339 +vt 0.839803 0.411626 +vt 0.838831 0.402646 +vt 0.187675 0.665045 +vt 0.187290 0.666586 +vt 0.978059 0.614795 +vt 0.972837 0.605814 +vt 0.978056 0.604307 +vt 0.188092 0.658638 +vt 0.985402 0.609480 +vt 0.983263 0.614778 +vt 0.983260 0.605826 +vt 0.187457 0.654408 +vt 0.179272 0.659410 +vt 0.361642 0.854236 +vt 0.814089 0.707132 +vt 0.814261 0.705615 +vt 0.363485 0.849168 +vt 0.803902 0.704455 +vt 0.189079 0.664187 +vt 0.189840 0.667805 +vt 0.203591 0.661627 +vt 0.985403 0.614724 +vt 0.983245 0.629544 +vt 0.377380 0.854076 +vt 0.201969 0.651849 +vt 0.978041 0.629561 +vt 0.375536 0.859143 +vt 0.360063 0.858988 +vt 0.972839 0.614766 +vt 0.213217 0.655588 +vt 0.202604 0.656078 +vt 0.983876 0.631074 +vt 0.381698 0.857360 +vt 0.976497 0.638449 +vt 0.972822 0.629532 +vt 0.212650 0.661209 +vt 0.204352 0.665245 +vt 0.665942 0.081116 +vt 0.671144 0.070655 +vt 0.671144 0.079585 +vt 0.385779 0.857269 +vt 0.382296 0.861820 +vt 0.660721 0.070674 +vt 0.660721 0.079603 +vt 0.985403 0.636953 +vt 0.980194 0.634785 +vt 0.376801 0.860105 +vt 0.985389 0.642151 +vt 0.977174 0.396112 +vt 0.971940 0.381353 +vt 0.977174 0.381345 +vt 0.493800 0.983954 +vt 0.499031 0.998708 +vt 0.493810 0.998721 +vt 0.557461 0.583426 +vt 0.562763 0.596000 +vt 0.557461 0.594762 +vt 0.552349 0.584958 +vt 0.552349 0.596294 +vt 0.918092 0.392971 +vt 0.923393 0.407723 +vt 0.918111 0.407739 +vt 0.982363 0.396120 +vt 0.982363 0.381353 +vt 0.488598 0.983947 +vt 0.488608 0.998715 +vt 0.923374 0.392955 +vt 0.928529 0.407727 +vt 0.555305 0.579480 +vt 0.978677 0.405033 +vt 0.975015 0.401333 +vt 0.488608 0.975018 +vt 0.493812 0.973492 +vt 0.971940 0.396120 +vt 0.971307 0.397649 +vt 0.499021 0.983940 +vt 0.499031 0.975011 +vt 0.562763 0.584664 +vt 0.559081 0.577926 +vt 0.969804 0.403496 +vt 0.969781 0.398282 +vt 0.786203 0.680598 +vt 0.776920 0.683114 +vt 0.777303 0.678854 +vt 0.781664 0.693456 +vt 0.776567 0.688739 +vt 0.785467 0.690483 +vt 0.551718 0.583802 +vt 0.550098 0.577966 +vt 0.787347 0.685157 +vt 0.928529 0.391427 +vt 0.928510 0.392959 +vt 0.550421 0.588362 +vt 0.550193 0.583359 +vt 0.918111 0.391439 +vt 0.918162 0.390799 +vt 0.769951 0.678376 +vt 0.776450 0.692435 +vt 0.769215 0.688260 +vt 0.962355 0.396138 +vt 0.969725 0.396138 +vt 0.542734 0.578174 +vt 0.542829 0.583567 +vt 0.969781 0.408725 +vt 0.962434 0.403496 +vt 0.769568 0.682635 +vt 0.962411 0.398282 +vt 0.960891 0.398280 +vt 0.957166 0.396130 +vt 0.532510 0.581237 +vt 0.764522 0.680249 +vt 0.543058 0.588570 +vt 0.534102 0.586181 +vt 0.768473 0.677677 +vt 0.769098 0.691956 +vt 0.760600 0.684188 +vt 0.762736 0.675167 +vt 0.767950 0.676188 +vt 0.804084 0.416283 +vt 0.808728 0.425293 +vt 0.803532 0.425049 +vt 0.537946 0.590101 +vt 0.541225 0.591698 +vt 0.536018 0.593505 +vt 0.814488 0.416919 +vt 0.809375 0.415023 +vt 0.757553 0.675511 +vt 0.530811 0.591992 +vt 0.962411 0.408724 +vt 0.960891 0.408722 +vt 0.699802 0.814291 +vt 0.699703 0.812762 +vt 0.704915 0.812443 +vt 0.710205 0.813636 +vt 0.710106 0.812107 +vt 0.787347 0.690214 +vt 0.693474 0.546819 +vt 0.547668 0.763703 +vt 0.688283 0.547155 +vt 0.813936 0.425684 +vt 0.792544 0.690458 +vt 0.781479 0.423542 +vt 0.542462 0.762189 +vt 0.786693 0.424564 +vt 0.797751 0.690850 +vt 0.794380 0.695798 +vt 0.776296 0.423887 +vt 0.782246 0.415023 +vt 0.683071 0.547474 +vt 0.690111 0.541809 +vt 0.787347 0.417292 +vt 0.790483 0.699330 +vt 0.694009 0.545253 +vt 0.799138 0.703556 +vt 0.695493 0.544525 +vt 0.798289 0.692414 +vt 0.799451 0.698273 +vt 0.995450 0.288888 +vt 0.990191 0.297830 +vt 0.990220 0.287373 +vt 0.694840 0.534104 +vt 0.695177 0.539323 +vt 0.985027 0.288905 +vt 0.985003 0.297831 +vt 0.552875 0.761896 +vt 0.552942 0.763361 +vt 0.552970 0.764940 +vt 0.542529 0.763655 +vt 0.542556 0.765234 +vt 0.542556 0.776570 +vt 0.710205 0.543599 +vt 0.547668 0.775038 +vt 0.799774 0.693139 +vt 0.814165 0.699172 +vt 0.995426 0.297814 +vt 0.990216 0.312598 +vt 0.709889 0.538397 +vt 0.985027 0.312598 +vt 0.813852 0.704455 +vt 0.672557 0.969836 +vt 0.661790 0.940204 +vt 0.672557 0.940318 +vt 0.937378 0.420521 +vt 0.930000 0.391245 +vt 0.937378 0.390999 +vt 0.948631 0.383380 +vt 0.937378 0.353881 +vt 0.948631 0.353858 +vt 0.948631 0.420497 +vt 0.948631 0.390975 +vt 0.957166 0.383593 +vt 0.957166 0.354071 +vt 0.957166 0.420711 +vt 0.957166 0.391188 +vt 0.510468 0.977137 +vt 0.500029 0.947558 +vt 0.510468 0.947603 +vt 0.484296 0.973492 +vt 0.473857 0.943913 +vt 0.484296 0.943959 +vt 0.520876 0.977090 +vt 0.520876 0.947557 +vt 0.494704 0.973445 +vt 0.494704 0.943912 +vt 0.525156 0.976978 +vt 0.525156 0.947445 +vt 0.498984 0.973333 +vt 0.498984 0.943800 +vt 0.963519 0.878749 +vt 0.953522 0.849408 +vt 0.963519 0.849231 +vt 0.661790 0.969723 +vt 0.651792 0.940381 +vt 0.974286 0.878863 +vt 0.974286 0.849345 +vt 0.937378 0.383404 +vt 0.930000 0.354128 +vt 0.964176 0.886377 +vt 0.812030 0.955571 +vt 0.358167 0.948141 +vt 0.662447 0.977350 +vt 0.792770 0.974866 +vt 0.804052 0.974866 +vt 0.940685 0.390975 +vt 0.946312 0.428080 +vt 0.940685 0.428092 +vt 0.377427 0.956132 +vt 0.784792 0.955571 +vt 0.784792 0.966874 +vt 0.369450 0.975427 +vt 0.377427 0.967435 +vt 0.792770 0.947579 +vt 0.350190 0.967435 +vt 0.358167 0.975427 +vt 0.804052 0.947579 +vt 0.825789 0.787050 +vt 0.339120 0.780853 +vt 0.157243 0.670622 +vt 0.339780 0.658856 +vt 0.753870 0.697124 +vt 0.831098 0.602717 +vt 0.715509 0.701001 +vt 0.162444 0.918379 +vt 0.881020 0.168381 +vt 0.714001 0.691303 +vt 0.886260 0.183100 +vt 0.305366 0.665758 +vt 0.768730 0.863972 +vt 0.721023 0.713820 +vt 0.812818 0.287115 +vt 0.215065 0.659983 +vt 0.774128 0.694371 +vt 0.971887 0.091969 +vt 0.870564 0.168381 +vt 0.240887 0.660606 +vt 0.875804 0.183100 +vt 0.793836 0.293466 +vt 0.339180 0.836520 +vt 0.099094 0.761419 +vt 0.831099 0.600792 +vt 0.133686 0.777836 +vt 0.792398 0.081258 +vt 0.791944 0.094889 +vt 0.655500 0.081116 +vt 0.682885 0.731913 +vt 0.136907 0.775621 +vt 0.871146 0.239039 +vt 0.351983 0.855414 +vt 0.850168 0.410519 +vt 0.985368 0.644257 +vt 0.387852 0.868803 +vt 0.211028 0.651431 +vt 0.209659 0.665000 +vt 0.665942 0.070654 +vt 0.386801 0.864882 +vt 0.985402 0.631709 +vt 0.376976 0.861411 +vt 0.759006 0.687185 +vt 0.541790 0.590701 +vt 0.776950 0.416615 +vt 0.686191 0.538347 +vt 0.552970 0.776276 +vt 0.814488 0.694038 +vt 0.995450 0.312581 +vt 0.709552 0.533178 +vt 0.930000 0.420768 +vt 0.500029 0.977091 +vt 0.473857 0.973446 +vt 0.953522 0.878926 +vt 0.651792 0.969899 +vt 0.930000 0.383651 +vt 0.969559 0.886434 +vt 0.812030 0.966873 +vt 0.369450 0.948140 +vt 0.667830 0.977407 +vt 0.946312 0.390963 +vt 0.350190 0.956133 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.3827 -0.9239 +vn -0.0000 -0.9239 -0.3827 +vn -0.0000 -0.3827 0.9239 +vn 0.0000 0.9239 0.3827 +vn 0.0000 0.9239 -0.3827 +vn 0.0000 -0.3827 -0.9239 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 0.3827 0.9239 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 1.0000 0.0000 +vn -0.0000 -0.7071 -0.7071 +vn 0.0000 -0.7071 0.7071 +vn -0.3827 -0.9239 0.0000 +vn -0.9239 0.3827 0.0000 +vn 0.3827 0.9239 0.0000 +vn 0.9239 -0.3827 0.0000 +vn -0.9239 -0.3827 0.0000 +vn 0.3827 -0.9239 0.0000 +vn 0.9239 0.3827 0.0000 +vn -0.3827 0.9239 0.0000 +vn 0.5547 0.8321 0.0000 +vn -0.5547 0.8321 0.0000 +vn 0.2588 0.9659 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.9659 -0.2588 0.0000 +vn -0.2588 -0.9659 0.0000 +vn -0.9659 0.2588 0.0000 +vn 0.9659 0.2588 0.0000 +vn 0.2588 -0.9659 0.0000 +vn -0.9659 -0.2588 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.2588 0.9659 0.0000 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.2516 -0.9389 0.2347 +vn -0.9389 -0.2516 0.2347 +vn 0.6874 0.6873 0.2347 +vn -0.2516 0.9389 0.2347 +vn 0.6874 -0.6873 0.2347 +vn -0.6874 -0.6873 0.2347 +vn 0.2516 0.9389 0.2347 +vn -0.6873 0.6873 0.2347 +vn 0.9389 -0.2516 0.2347 +vn -0.2516 -0.9389 0.2347 +vn -0.9389 0.2516 0.2347 +vn 0.9389 0.2516 0.2347 +vn 0.8698 0.2331 0.4349 +vn 0.2331 -0.8698 0.4349 +vn -0.8698 -0.2331 0.4349 +vn 0.6367 0.6367 0.4349 +vn -0.2331 0.8698 0.4349 +vn 0.6367 -0.6367 0.4349 +vn -0.6367 -0.6367 0.4349 +vn 0.2331 0.8698 0.4349 +vn -0.6367 0.6367 0.4349 +vn 0.8698 -0.2331 0.4349 +vn -0.2331 -0.8698 0.4349 +vn -0.8698 0.2331 0.4349 +vn -0.7822 0.2096 0.5867 +vn 0.7822 0.2096 0.5867 +vn 0.2096 -0.7822 0.5867 +vn -0.7822 -0.2096 0.5867 +vn 0.5726 0.5726 0.5867 +vn -0.2096 0.7822 0.5867 +vn 0.5726 -0.5726 0.5867 +vn -0.5726 -0.5726 0.5867 +vn 0.2096 0.7822 0.5867 +vn -0.5726 0.5726 0.5867 +vn 0.7822 -0.2096 0.5867 +vn -0.2096 -0.7822 0.5867 +vn 0.8321 -0.5547 0.0000 +vn -0.4472 0.8944 0.0000 +vn 0.4472 0.0000 -0.8944 +vn 0.4472 0.0000 0.8944 +vn 0.6479 -0.7479 0.1445 +vn -0.1677 0.0449 0.9848 +vn 0.1677 -0.0449 -0.9848 +vn 0.9513 -0.2549 0.1736 +vn -0.1939 0.9779 -0.0777 +vn 0.5754 -0.1542 -0.8032 +vn 0.2754 -0.0738 0.9585 +vn 0.7541 -0.5547 0.3516 +vn -0.4226 0.0000 0.9063 +vn 0.4226 0.0000 -0.9063 +vn 0.9063 0.0000 0.4226 +vn -0.4053 0.8944 -0.1890 +vn 0.7833 0.0000 -0.6216 +vn 0.0273 0.0000 0.9996 +vn -0.8321 0.5547 0.0000 +vn 0.7206 -0.5547 0.4160 +vn -0.5000 0.0000 0.8660 +vn 0.5000 0.0000 -0.8660 +vn 0.8660 0.0000 0.5000 +vn -0.3873 0.8944 -0.2236 +vn 0.8345 0.0000 -0.5510 +vn -0.0599 0.0000 0.9982 +vn 0.4472 -0.8944 0.0000 +vn -0.4472 0.0000 -0.8944 +vn -0.4472 0.0000 0.8944 +vn -0.5547 -0.8321 0.0000 +vn 0.8944 0.4472 0.0000 +vn 0.0000 -0.4472 -0.8944 +vn 0.0000 -0.4472 0.8944 +vn -0.8944 -0.4472 0.0000 +vn 0.0000 0.4472 -0.8944 +vn 0.0000 0.4472 0.8944 +vn -0.5000 -0.8660 0.0000 +vn 0.4432 -0.8964 0.0000 +vn 0.5000 0.8660 0.0000 +vn 0.8660 -0.5000 0.0000 +vn 0.0599 0.9982 0.0000 +vn 0.3873 -0.2236 -0.8944 +vn 0.3873 -0.2236 0.8944 +vn -0.4432 0.8964 0.0000 +vn -0.8660 0.5000 0.0000 +vn -0.0599 -0.9982 0.0000 +vn -0.3873 0.2236 -0.8944 +vn -0.3873 0.2236 0.8944 +vn -0.8964 -0.4432 0.0000 +vn 0.9982 -0.0599 0.0000 +vn -0.2236 -0.3873 -0.8944 +vn -0.2236 -0.3873 0.8944 +vn 0.8964 0.4432 0.0000 +vn -0.9982 0.0599 0.0000 +vn 0.2236 0.3873 -0.8944 +vn 0.2236 0.3873 0.8944 +vn -0.8660 -0.5000 0.0000 +vn -0.0644 -0.9979 0.0000 +vn 0.8660 0.5000 0.0000 +vn 0.5000 -0.8660 0.0000 +vn 0.5510 0.8345 0.0000 +vn 0.2236 -0.3873 -0.8944 +vn 0.2236 -0.3873 0.8944 +vn 0.0644 0.9979 0.0000 +vn -0.5000 0.8660 0.0000 +vn -0.5510 -0.8345 0.0000 +vn -0.2236 0.3873 -0.8944 +vn -0.2236 0.3873 0.8944 +vn -0.9979 0.0644 0.0000 +vn 0.8345 -0.5510 0.0000 +vn -0.3873 -0.2236 -0.8944 +vn -0.3873 -0.2236 0.8944 +vn 0.9979 -0.0644 0.0000 +vn -0.8345 0.5510 0.0000 +vn 0.3873 0.2236 -0.8944 +vn 0.3873 0.2236 0.8944 +vn 0.1872 -0.9716 0.1445 +vn -0.1228 0.1228 0.9848 +vn 0.1228 -0.1228 -0.9848 +vn 0.6964 -0.6964 0.1736 +vn 0.3210 0.9439 -0.0777 +vn 0.4212 -0.4212 -0.8032 +vn 0.2016 -0.2016 0.9585 +vn -0.3237 -0.9351 0.1445 +vn -0.0449 0.1677 0.9848 +vn 0.0449 -0.1677 -0.9848 +vn 0.2549 -0.9513 0.1736 +vn 0.7500 0.6569 -0.0777 +vn 0.1542 -0.5754 -0.8032 +vn 0.0738 -0.2754 0.9585 +vn 0.7479 0.6479 0.1445 +vn -0.0449 -0.1677 0.9848 +vn 0.0449 0.1677 -0.9848 +vn 0.2549 0.9513 0.1736 +vn -0.9779 -0.1939 -0.0777 +vn 0.1542 0.5754 -0.8032 +vn 0.0738 0.2754 0.9585 +vn 0.9716 0.1872 0.1445 +vn -0.1228 -0.1228 0.9848 +vn 0.1228 0.1228 -0.9848 +vn 0.6964 0.6964 0.1736 +vn -0.9439 0.3210 -0.0777 +vn 0.4212 0.4212 -0.8032 +vn 0.2016 0.2016 0.9585 +vn 0.9351 -0.3237 0.1445 +vn -0.1677 -0.0449 0.9848 +vn 0.1677 0.0449 -0.9848 +vn 0.9513 0.2549 0.1736 +vn -0.6569 0.7500 -0.0777 +vn 0.5754 0.1542 -0.8032 +vn 0.2754 0.0738 0.9585 +vn -0.6479 0.7479 0.1445 +vn 0.1677 -0.0449 0.9848 +vn -0.1677 0.0449 -0.9848 +vn -0.9513 0.2549 0.1736 +vn 0.1939 -0.9779 -0.0777 +vn -0.5754 0.1542 -0.8032 +vn -0.2754 0.0738 0.9585 +vn -0.1872 0.9716 0.1445 +vn 0.1228 -0.1228 0.9848 +vn -0.1228 0.1228 -0.9848 +vn -0.6964 0.6964 0.1736 +vn -0.3210 -0.9439 -0.0777 +vn -0.4212 0.4212 -0.8032 +vn -0.2016 0.2016 0.9585 +vn 0.3237 0.9351 0.1445 +vn 0.0449 -0.1677 0.9848 +vn -0.0449 0.1677 -0.9848 +vn -0.2549 0.9513 0.1736 +vn -0.7500 -0.6569 -0.0777 +vn -0.1542 0.5754 -0.8032 +vn -0.0738 0.2754 0.9585 +vn -0.7479 -0.6479 0.1445 +vn 0.0449 0.1677 0.9848 +vn -0.0449 -0.1677 -0.9848 +vn -0.2549 -0.9513 0.1736 +vn 0.9779 0.1939 -0.0777 +vn -0.1542 -0.5754 -0.8032 +vn -0.0738 -0.2754 0.9585 +vn -0.9716 -0.1872 0.1445 +vn 0.1228 0.1228 0.9848 +vn -0.1228 -0.1228 -0.9848 +vn -0.6964 -0.6964 0.1736 +vn 0.9439 -0.3210 -0.0777 +vn -0.4212 -0.4212 -0.8032 +vn -0.2016 -0.2016 0.9585 +vn -0.9351 0.3237 0.1445 +vn 0.1677 0.0449 0.9848 +vn -0.1677 -0.0449 -0.9848 +vn -0.9513 -0.2549 0.1736 +vn 0.6569 -0.7500 -0.0777 +vn -0.5754 -0.1542 -0.8032 +vn -0.2754 -0.0738 0.9585 +vn -0.7541 0.5547 0.3516 +vn 0.4226 0.0000 0.9063 +vn -0.4226 0.0000 -0.9063 +vn -0.9063 0.0000 0.4226 +vn 0.4053 -0.8944 -0.1890 +vn -0.7833 0.0000 -0.6216 +vn -0.0273 0.0000 0.9996 +vn -0.5547 -0.7541 0.3516 +vn 0.0000 0.4226 0.9063 +vn 0.0000 -0.4226 -0.9063 +vn 0.0000 -0.9063 0.4226 +vn 0.8944 0.4053 -0.1890 +vn 0.0000 -0.7833 -0.6216 +vn 0.0000 -0.0273 0.9996 +vn 0.5547 0.7541 0.3516 +vn 0.0000 -0.4226 0.9063 +vn 0.0000 0.4226 -0.9063 +vn 0.0000 0.9063 0.4226 +vn -0.8944 -0.4053 -0.1890 +vn 0.0000 0.7833 -0.6216 +vn 0.0000 0.0273 0.9996 +vn 0.1410 -0.9255 0.3516 +vn -0.2988 0.2988 0.9063 +vn 0.2988 -0.2988 -0.9063 +vn 0.6409 -0.6409 0.4226 +vn 0.3459 0.9191 -0.1890 +vn 0.5539 -0.5539 -0.6216 +vn 0.0193 -0.0193 0.9996 +vn -0.1410 0.9255 0.3516 +vn 0.2988 -0.2988 0.9063 +vn -0.2988 0.2988 -0.9063 +vn -0.6409 0.6409 0.4226 +vn -0.3459 -0.9191 -0.1890 +vn -0.5539 0.5539 -0.6216 +vn -0.0193 0.0193 0.9996 +vn -0.9255 -0.1410 0.3516 +vn 0.2988 0.2988 0.9063 +vn -0.2988 -0.2988 -0.9063 +vn -0.6409 -0.6409 0.4226 +vn 0.9191 -0.3459 -0.1890 +vn -0.5539 -0.5539 -0.6216 +vn -0.0193 -0.0193 0.9996 +vn 0.9255 0.1410 0.3516 +vn -0.2988 -0.2988 0.9063 +vn 0.2988 0.2988 -0.9063 +vn 0.6409 0.6409 0.4226 +vn -0.9191 0.3459 -0.1890 +vn 0.5539 0.5539 -0.6216 +vn 0.0193 0.0193 0.9996 +vn -0.7206 0.5547 0.4160 +vn 0.5000 -0.0000 0.8660 +vn -0.5000 0.0000 -0.8660 +vn -0.8660 0.0000 0.5000 +vn 0.3873 -0.8944 -0.2236 +vn -0.8345 0.0000 -0.5510 +vn 0.0599 -0.0000 0.9982 +vn -0.1201 -0.9014 0.4160 +vn -0.2500 0.4330 0.8660 +vn 0.2500 -0.4330 -0.8660 +vn 0.4330 -0.7500 0.5000 +vn 0.5809 0.7826 -0.2236 +vn 0.4173 -0.7227 -0.5510 +vn -0.0300 0.0519 0.9982 +vn 0.1201 0.9014 0.4160 +vn 0.2500 -0.4330 0.8660 +vn -0.2500 0.4330 -0.8660 +vn -0.4330 0.7500 0.5000 +vn -0.5809 -0.7826 -0.2236 +vn -0.4173 0.7227 -0.5510 +vn 0.0300 -0.0519 0.9982 +vn -0.8407 -0.3467 0.4160 +vn 0.2500 0.4330 0.8660 +vn -0.2500 -0.4330 -0.8660 +vn -0.4330 -0.7500 0.5000 +vn 0.9682 -0.1118 -0.2236 +vn -0.4173 -0.7227 -0.5510 +vn 0.0300 0.0519 0.9982 +vn 0.8407 0.3467 0.4160 +vn -0.2500 -0.4330 0.8660 +vn 0.2500 0.4330 -0.8660 +vn 0.4330 0.7500 0.5000 +vn -0.9682 0.1118 -0.2236 +vn 0.4173 0.7227 -0.5510 +vn -0.0300 -0.0519 0.9982 +vn 0.0000 -0.9597 0.2811 +vn -0.9597 0.0000 0.2811 +vn 0.0000 0.9597 0.2811 +vn 0.9597 0.0000 0.2811 +vn -0.1753 -0.6541 -0.7358 +vn -0.6541 0.1753 -0.7358 +vn 0.6541 0.1753 -0.7358 +vn 0.1753 -0.6541 -0.7358 +vn -0.6541 -0.1753 -0.7358 +vn 0.4788 0.4788 -0.7358 +vn -0.1753 0.6541 -0.7358 +vn 0.4788 -0.4788 -0.7358 +vn -0.4788 -0.4788 -0.7358 +vn 0.1753 0.6541 -0.7358 +vn -0.4788 0.4788 -0.7358 +vn 0.6541 -0.1753 -0.7358 +vn 0.0000 0.8944 -0.4472 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 0.7071 0.7071 +vn 0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.9437 0.3307 0.0000 +vn -0.9437 -0.3307 0.0000 +vn 0.9440 -0.3300 0.0000 +vn -0.9440 0.3300 0.0000 +vn 0.3162 0.9487 0.0000 +vn -0.3162 -0.9487 0.0000 +vn -0.3162 0.9487 0.0000 +vn 0.3162 -0.9487 0.0000 +vn 0.4213 0.4212 -0.8032 +vn 0.0196 -0.9987 -0.0473 +vn -0.7071 -0.0000 0.7071 +vn 0.0196 0.9987 -0.0473 +vn 0.1866 -0.0000 -0.9824 +vn 0.1448 -0.6794 -0.7194 +vn -0.1363 -0.7263 0.6737 +vn -0.1363 0.7263 0.6737 +vn 0.1448 0.6794 -0.7194 +vn 0.5294 -0.6630 -0.5294 +vn 0.0671 -0.9955 -0.0671 +vn -0.4617 -0.7574 0.4617 +vn 0.5294 0.6630 -0.5294 +vn 0.0671 0.9955 -0.0671 +vn 0.0473 -0.9987 -0.0196 +vn -0.6737 0.7263 0.1363 +vn 0.0473 0.9987 -0.0196 +vn 0.9824 -0.0000 -0.1866 +vn 0.7194 -0.6794 -0.1448 +vn -0.6737 -0.7263 0.1363 +vn 0.7194 0.6794 -0.1448 +vn -0.4617 0.7574 0.4617 +vn 0.9987 -0.0473 0.0196 +vn -0.9987 -0.0473 0.0196 +vn 0.6794 -0.7194 0.1448 +vn -0.7263 0.6737 -0.1363 +vn -0.6794 -0.7194 0.1448 +vn 0.7263 0.6737 -0.1363 +vn -0.0000 -0.9824 0.1866 +vn -0.9955 -0.0671 0.0671 +vn 0.9955 -0.0671 0.0671 +vn 0.6630 -0.5294 0.5294 +vn -0.6630 -0.5294 0.5294 +vn -0.7574 0.4617 -0.4617 +vn 0.7574 0.4617 -0.4617 +vn 0.0000 -0.1866 0.9824 +vn 0.9987 -0.0196 0.0473 +vn -0.6794 -0.1448 0.7194 +vn -0.9987 -0.0196 0.0473 +vn 0.6794 -0.1448 0.7194 +vn -0.7263 0.1363 -0.6737 +vn 0.7263 0.1363 -0.6737 +vn 0.7194 0.1448 -0.6794 +vn 0.9824 0.1866 -0.0000 +vn -0.5880 -0.0639 -0.8063 +vn 0.0473 0.0196 -0.9987 +vn 0.7194 0.1448 0.6794 +vn 0.0473 0.0196 0.9987 +vn -0.5880 -0.0639 0.8063 +vn 0.5294 0.5294 0.6630 +vn 0.0671 0.0671 0.9955 +vn -0.2706 -0.2706 0.9239 +vn 0.0671 0.0671 -0.9955 +vn 0.5294 0.5294 -0.6630 +vn 0.0393 0.0948 -0.9947 +vn 0.2962 0.7150 -0.6333 +vn 0.2962 0.7150 0.6333 +vn 0.0393 0.0948 0.9947 +vn -0.1566 -0.3780 0.9125 +vn -0.2706 -0.2706 -0.9239 +vn -0.6725 -0.0522 0.7382 +vn -0.6725 -0.0522 -0.7382 +vn -0.1566 -0.3780 -0.9125 +vn -0.0196 -0.9987 -0.0473 +vn 0.7071 0.0000 0.7071 +vn -0.0196 0.9987 -0.0473 +vn -0.1866 -0.0000 -0.9824 +vn -0.1448 -0.6794 -0.7194 +vn 0.1363 -0.7263 0.6737 +vn 0.1363 0.7263 0.6737 +vn -0.1448 0.6794 -0.7194 +vn -0.5294 -0.6630 -0.5294 +vn -0.0671 -0.9955 -0.0671 +vn -0.5294 0.6630 -0.5294 +vn -0.0671 0.9955 -0.0671 +vn -0.0473 -0.9987 -0.0196 +vn 0.6737 0.7263 0.1363 +vn 0.4617 0.7574 0.4617 +vn -0.9824 -0.0000 -0.1866 +vn 0.6737 -0.7263 0.1363 +vn 0.4617 -0.7574 0.4617 +vn -0.0473 0.9987 -0.0196 +vn -0.7194 0.6794 -0.1448 +vn -0.7194 -0.6794 -0.1448 +vn -0.7194 0.1448 -0.6794 +vn 0.5880 -0.0639 -0.8063 +vn -0.7194 0.1448 0.6794 +vn -0.0473 0.0196 0.9987 +vn -0.9824 0.1866 -0.0000 +vn 0.5880 -0.0639 0.8063 +vn -0.0671 0.0671 0.9955 +vn -0.0671 0.0671 -0.9955 +vn -0.0473 0.0196 -0.9987 +vn -0.5294 0.5294 0.6630 +vn -0.5294 0.5294 -0.6630 +vn -0.2962 0.7150 -0.6333 +vn -0.2962 0.7150 0.6333 +vn 0.2706 -0.2706 0.9239 +vn -0.0393 0.0948 0.9947 +vn -0.0393 0.0948 -0.9947 +vn 0.2706 -0.2706 -0.9239 +vn 0.6725 -0.0522 0.7382 +vn 0.6725 -0.0522 -0.7382 +vn -0.0196 0.0473 0.9987 +vn -0.1866 0.9824 -0.0000 +vn -0.0196 0.0473 -0.9987 +vn 0.1363 -0.6737 -0.7263 +vn 0.1363 -0.6737 0.7263 +vn -0.1448 0.7194 0.6794 +vn -0.1448 0.7194 -0.6794 +vn 0.4617 -0.4617 0.7574 +vn 0.6737 -0.1363 0.7263 +vn 0.4617 -0.4617 -0.7574 +vn 0.6737 -0.1363 -0.7263 +vn -0.7263 0.1363 0.6737 +vn -0.6794 -0.1448 -0.7194 +vn 0.9987 -0.0196 -0.0473 +vn 0.0000 -0.1866 -0.9824 +vn 0.6794 -0.1448 -0.7194 +vn -0.9987 -0.0196 -0.0473 +vn 0.7263 0.1363 0.6737 +vn 0.7574 0.4617 0.4617 +vn 0.9955 -0.0671 -0.0671 +vn -0.9955 -0.0671 -0.0671 +vn 0.6630 -0.5294 -0.5294 +vn -0.7574 0.4617 0.4617 +vn -0.6630 -0.5294 -0.5294 +vn -0.9987 -0.0473 -0.0196 +vn -0.7263 0.6737 0.1363 +vn -0.0000 -0.9824 -0.1866 +vn -0.6794 -0.7194 -0.1448 +vn 0.7263 0.6737 0.1363 +vn 0.9987 -0.0473 -0.0196 +vn 0.6794 -0.7194 -0.1448 +vn -0.7194 -0.6794 0.1448 +vn 0.6737 0.7263 -0.1363 +vn -0.0473 0.9987 0.0196 +vn -0.0473 -0.9987 0.0196 +vn -0.9824 -0.0000 0.1866 +vn 0.6737 -0.7263 -0.1363 +vn -0.7194 0.6794 0.1448 +vn -0.0671 -0.9955 0.0671 +vn -0.0671 0.9955 0.0671 +vn -0.5294 0.6630 0.5294 +vn -0.5294 -0.6630 0.5294 +vn 0.4617 0.7574 -0.4617 +vn -0.1448 -0.6794 0.7194 +vn 0.1363 0.7263 -0.6737 +vn 0.4617 -0.7574 -0.4617 +vn -0.0196 -0.9987 0.0473 +vn -0.1866 -0.0000 0.9824 +vn -0.1448 0.6794 0.7194 +vn -0.0196 0.9987 0.0473 +vn 0.1363 -0.7263 -0.6737 +vn 0.5000 0.7071 -0.5000 +vn -0.5000 0.7071 -0.5000 +vn -0.5000 0.7071 0.5000 +vn 0.5000 0.7071 0.5000 +vn 0.1566 -0.3780 0.9125 +vn 0.1566 -0.3780 -0.9125 +s off +f 74/1/1 114/2/1 113/3/1 +f 14/4/1 54/5/1 53/6/1 +f 12/7/2 43/8/2 11/9/2 +f 22/10/1 27/11/1 25/12/1 +f 11/9/3 28/13/3 12/7/3 +f 9/14/4 26/15/4 10/16/4 +f 7/17/5 24/18/5 8/19/5 +f 5/20/6 21/21/6 6/22/6 +f 12/23/7 22/24/7 5/20/7 +f 10/25/8 27/26/8 11/9/8 +f 9/14/9 24/27/9 25/28/9 +f 6/29/10 23/30/10 7/17/10 +f 31/31/2 33/32/2 35/33/2 +f 14/34/6 30/35/6 13/36/6 +f 13/36/7 36/37/7 20/38/7 +f 19/39/8 34/40/8 18/41/8 +f 17/42/9 32/43/9 16/44/9 +f 15/45/10 29/46/10 14/47/10 +f 20/48/3 35/33/3 19/39/3 +f 17/42/4 34/49/4 33/50/4 +f 16/51/5 31/52/5 15/45/5 +f 41/53/4 50/54/4 49/55/4 +f 10/25/2 41/56/2 9/57/2 +f 8/58/2 39/59/2 7/60/2 +f 6/61/2 38/62/2 5/63/2 +f 12/7/2 38/62/2 44/64/2 +f 11/9/2 42/65/2 10/25/2 +f 9/57/2 40/66/2 8/58/2 +f 6/61/2 39/59/2 37/67/2 +f 49/68/2 51/69/2 46/70/2 +f 40/71/5 47/72/5 39/73/5 +f 37/74/6 46/75/6 38/76/6 +f 38/76/7 52/77/7 44/78/7 +f 43/8/8 50/79/8 42/65/8 +f 41/53/9 48/80/9 40/81/9 +f 39/73/10 45/82/10 37/83/10 +f 43/8/3 52/84/3 51/69/3 +f 58/85/8 67/86/8 59/87/8 +f 13/88/1 60/89/1 54/5/1 +f 19/90/1 58/91/1 59/92/1 +f 16/93/1 57/94/1 17/95/1 +f 14/4/1 55/96/1 15/97/1 +f 19/90/1 60/89/1 20/98/1 +f 17/95/1 58/91/1 18/99/1 +f 16/93/1 55/96/1 56/100/1 +f 64/101/1 63/102/1 67/103/1 +f 56/104/9 65/105/9 57/106/9 +f 53/107/10 63/108/10 55/109/10 +f 60/110/3 67/86/3 68/111/3 +f 58/112/4 65/105/4 66/113/4 +f 55/109/5 64/114/5 56/115/5 +f 54/116/6 61/117/6 53/118/6 +f 60/119/7 62/120/7 54/116/7 +f 71/121/2 104/122/2 103/123/2 +f 82/124/1 87/125/1 85/126/1 +f 71/121/3 88/127/3 72/128/3 +f 69/129/4 86/130/4 70/131/4 +f 2/132/5 84/133/5 1/134/5 +f 4/135/6 81/136/6 3/137/6 +f 72/138/7 82/139/7 4/135/7 +f 70/140/8 87/141/8 71/121/8 +f 69/129/9 84/142/9 85/143/9 +f 3/144/10 83/145/10 2/132/10 +f 96/146/2 90/147/2 93/148/2 +f 74/149/6 90/150/6 73/151/6 +f 73/151/7 96/152/7 80/153/7 +f 79/154/8 94/155/8 78/156/8 +f 77/157/9 92/158/9 76/159/9 +f 75/160/10 89/161/10 74/162/10 +f 80/163/3 95/164/3 79/154/3 +f 77/157/4 94/165/4 93/166/4 +f 76/167/5 91/168/5 75/160/5 +f 102/169/4 109/170/4 101/171/4 +f 70/140/2 101/172/2 69/173/2 +f 2/174/2 100/175/2 99/176/2 +f 3/177/2 98/178/2 4/179/2 +f 72/128/2 98/178/2 104/122/2 +f 71/121/2 102/180/2 70/140/2 +f 1/181/2 101/172/2 100/175/2 +f 2/174/2 97/182/2 3/177/2 +f 109/183/2 111/184/2 106/185/2 +f 100/186/5 107/187/5 99/188/5 +f 97/189/6 106/190/6 98/191/6 +f 98/191/7 112/192/7 104/193/7 +f 103/123/8 110/194/8 102/180/8 +f 101/171/9 108/195/9 100/196/9 +f 99/188/10 105/197/10 97/198/10 +f 104/122/3 111/184/3 103/123/3 +f 118/199/8 127/200/8 119/201/8 +f 80/202/1 114/2/1 73/203/1 +f 79/204/1 118/205/1 119/206/1 +f 76/207/1 117/208/1 77/209/1 +f 75/210/1 113/3/1 115/211/1 +f 79/204/1 120/212/1 80/202/1 +f 78/213/1 117/208/1 118/205/1 +f 75/210/1 116/214/1 76/207/1 +f 127/215/1 125/216/1 123/217/1 +f 116/218/9 125/219/9 117/220/9 +f 113/221/10 123/222/10 115/223/10 +f 119/201/3 128/224/3 120/225/3 +f 117/220/4 126/226/4 118/227/4 +f 115/223/5 124/228/5 116/229/5 +f 114/230/6 121/231/6 113/232/6 +f 120/233/7 122/234/7 114/230/7 +f 134/235/11 153/236/11 149/237/11 +f 154/238/12 130/239/12 129/240/12 +f 129/241/13 151/242/13 154/243/13 +f 143/244/11 140/245/11 139/246/11 +f 142/247/13 137/248/13 138/249/13 +f 142/250/14 143/251/14 141/252/14 +f 129/241/2 139/253/2 133/254/2 +f 130/255/2 143/256/2 129/241/2 +f 130/255/2 137/248/2 141/257/2 +f 132/258/1 138/259/1 136/260/1 +f 144/261/1 132/258/1 131/262/1 +f 131/262/1 140/263/1 144/261/1 +f 147/264/12 146/265/12 145/266/12 +f 148/267/15 149/268/15 146/265/15 +f 145/266/16 152/269/16 147/264/16 +f 148/270/1 147/271/1 156/272/1 +f 145/273/2 146/274/2 153/275/2 +f 132/276/12 156/277/12 131/278/12 +f 136/279/11 155/280/11 132/281/11 +f 156/282/13 135/283/13 131/284/13 +f 152/269/12 151/285/12 139/286/12 +f 137/287/12 134/288/12 149/268/12 +f 230/289/1 270/290/1 269/291/1 +f 170/292/1 210/293/1 209/294/1 +f 167/295/2 200/296/2 199/297/2 +f 178/298/1 183/299/1 181/300/1 +f 167/295/3 184/301/3 168/302/3 +f 165/303/4 182/304/4 166/305/4 +f 163/306/5 180/307/5 164/308/5 +f 161/309/6 177/310/6 162/311/6 +f 168/312/7 178/313/7 161/309/7 +f 167/295/8 182/314/8 183/315/8 +f 165/303/9 180/316/9 181/317/9 +f 162/318/10 179/319/10 163/306/10 +f 192/320/2 186/321/2 189/322/2 +f 170/323/6 186/324/6 169/325/6 +f 169/325/7 192/326/7 176/327/7 +f 175/328/8 190/329/8 174/330/8 +f 173/331/9 188/332/9 172/333/9 +f 171/334/10 185/335/10 170/336/10 +f 176/337/3 191/338/3 175/328/3 +f 173/331/4 190/339/4 189/340/4 +f 171/334/5 188/341/5 187/342/5 +f 198/343/4 205/344/4 197/345/4 +f 166/346/2 197/347/2 165/348/2 +f 164/349/2 195/350/2 163/351/2 +f 162/352/2 194/353/2 161/354/2 +f 168/302/2 194/353/2 200/296/2 +f 167/295/2 198/355/2 166/346/2 +f 165/348/2 196/356/2 164/349/2 +f 162/352/2 195/350/2 193/357/2 +f 205/358/2 207/359/2 202/360/2 +f 196/361/5 203/362/5 195/363/5 +f 193/364/6 202/365/6 194/366/6 +f 194/366/7 208/367/7 200/368/7 +f 199/297/8 206/369/8 198/355/8 +f 197/345/9 204/370/9 196/371/9 +f 195/363/10 201/372/10 193/373/10 +f 200/296/3 207/359/3 199/297/3 +f 214/374/8 223/375/8 215/376/8 +f 176/377/1 210/293/1 169/378/1 +f 175/379/1 214/380/1 215/381/1 +f 172/382/1 213/383/1 173/384/1 +f 170/292/1 211/385/1 171/386/1 +f 175/379/1 216/387/1 176/377/1 +f 174/388/1 213/383/1 214/380/1 +f 172/382/1 211/385/1 212/389/1 +f 220/390/1 219/391/1 223/392/1 +f 212/393/9 221/394/9 213/395/9 +f 209/396/10 219/397/10 211/398/10 +f 215/376/3 224/399/3 216/400/3 +f 213/395/4 222/401/4 214/402/4 +f 211/398/5 220/403/5 212/404/5 +f 210/405/6 217/406/6 209/407/6 +f 216/408/7 218/409/7 210/405/7 +f 227/410/2 260/411/2 259/412/2 +f 240/413/1 239/414/1 243/415/1 +f 227/410/3 244/416/3 228/417/3 +f 225/418/4 242/419/4 226/420/4 +f 158/421/5 240/422/5 157/423/5 +f 160/424/6 237/425/6 159/426/6 +f 228/427/7 238/428/7 160/424/7 +f 226/429/8 243/430/8 227/410/8 +f 225/418/9 240/431/9 241/432/9 +f 159/433/10 239/434/10 158/421/10 +f 247/435/2 249/436/2 251/437/2 +f 230/438/6 246/439/6 229/440/6 +f 229/440/7 252/441/7 236/442/7 +f 235/443/8 250/444/8 234/445/8 +f 233/446/9 248/447/9 232/448/9 +f 231/449/10 245/450/10 230/451/10 +f 236/452/3 251/437/3 235/443/3 +f 233/446/4 250/453/4 249/454/4 +f 231/449/5 248/455/5 247/456/5 +f 258/457/4 265/458/4 257/459/4 +f 226/429/2 257/460/2 225/461/2 +f 158/462/2 256/463/2 255/464/2 +f 159/465/2 254/466/2 160/467/2 +f 228/417/2 254/466/2 260/411/2 +f 227/410/2 258/468/2 226/429/2 +f 157/469/2 257/460/2 256/463/2 +f 158/462/2 253/470/2 159/465/2 +f 265/471/2 267/472/2 262/473/2 +f 256/474/5 263/475/5 255/476/5 +f 253/477/6 262/478/6 254/479/6 +f 254/479/7 268/480/7 260/481/7 +f 259/412/8 266/482/8 258/468/8 +f 257/459/9 264/483/9 256/484/9 +f 255/476/10 261/485/10 253/486/10 +f 260/411/3 267/472/3 259/412/3 +f 274/487/8 283/488/8 275/489/8 +f 236/490/1 270/290/1 229/491/1 +f 235/492/1 274/493/1 275/494/1 +f 232/495/1 273/496/1 233/497/1 +f 231/498/1 269/291/1 271/499/1 +f 235/492/1 276/500/1 236/490/1 +f 234/501/1 273/496/1 274/493/1 +f 231/498/1 272/502/1 232/495/1 +f 283/503/1 281/504/1 279/505/1 +f 272/506/9 281/507/9 273/508/9 +f 269/509/10 279/510/10 271/511/10 +f 275/489/3 284/512/3 276/513/3 +f 273/508/4 282/514/4 274/515/4 +f 271/511/5 280/516/5 272/517/5 +f 270/518/6 277/519/6 269/520/6 +f 276/521/7 278/522/7 270/518/7 +f 290/523/11 309/524/11 305/525/11 +f 310/526/12 286/527/12 285/528/12 +f 285/529/13 307/530/13 310/531/13 +f 299/532/11 296/533/11 295/534/11 +f 298/535/13 293/536/13 294/537/13 +f 298/538/14 299/539/14 297/540/14 +f 285/529/2 295/541/2 289/542/2 +f 286/543/2 299/544/2 285/529/2 +f 286/543/2 293/536/2 297/545/2 +f 288/546/1 294/547/1 292/548/1 +f 300/549/1 288/546/1 287/550/1 +f 287/550/1 296/551/1 300/549/1 +f 303/552/12 302/553/12 301/554/12 +f 304/555/15 305/556/15 302/553/15 +f 301/554/16 308/557/16 303/552/16 +f 304/558/1 303/559/1 312/560/1 +f 301/561/2 302/562/2 309/563/2 +f 288/564/12 312/565/12 287/566/12 +f 292/567/11 311/568/11 288/569/11 +f 312/570/13 291/571/13 287/572/13 +f 307/573/12 296/574/12 308/557/12 +f 294/575/12 293/576/12 305/556/12 +f 315/577/12 324/578/12 321/579/12 +f 319/580/14 317/581/14 318/582/14 +f 315/583/13 320/584/13 316/585/13 +f 314/586/11 318/587/11 313/588/11 +f 324/589/2 320/584/2 319/590/2 +f 322/591/1 318/592/1 317/593/1 +f 322/594/12 314/595/12 313/596/12 +f 322/594/16 327/597/16 323/598/16 +f 325/599/12 327/597/12 326/600/12 +f 324/578/15 325/599/15 321/579/15 +f 323/601/2 328/602/2 324/589/2 +f 321/603/1 326/604/1 322/591/1 +f 336/605/17 662/606/17 661/607/17 +f 334/608/18 664/609/18 663/610/18 +f 332/611/19 666/612/19 665/613/19 +f 330/614/20 668/615/20 667/616/20 +f 335/617/21 663/610/21 662/618/21 +f 342/619/11 337/620/11 338/621/11 +f 339/622/12 338/623/12 337/624/12 +f 329/625/22 661/607/22 668/626/22 +f 331/627/23 667/616/23 666/628/23 +f 345/629/13 348/630/13 344/631/13 +f 354/632/2 355/633/2 353/634/2 +f 341/635/1 512/636/1 342/637/1 +f 347/638/14 345/639/14 346/640/14 +f 333/641/24 665/613/24 664/642/24 +f 344/643/25 347/638/25 343/644/25 +f 342/645/26 345/639/26 341/646/26 +f 340/647/2 351/648/2 338/649/2 +f 350/650/11 353/651/11 349/652/11 +f 349/653/14 355/654/14 351/655/14 +f 351/648/13 356/656/13 352/657/13 +f 352/658/12 354/659/12 350/660/12 +f 350/661/2 340/647/2 344/631/2 +f 352/657/2 344/631/2 343/662/2 +f 338/649/2 352/657/2 343/662/2 +f 506/663/11 509/664/11 505/665/11 +f 505/666/14 511/667/14 507/668/14 +f 507/669/13 512/670/13 508/671/13 +f 508/672/12 510/673/12 506/674/12 +f 339/675/1 510/676/1 341/635/1 +f 339/675/1 511/677/1 509/678/1 +f 512/636/1 337/679/1 342/637/1 +f 505/680/1 508/681/1 506/682/1 +f 331/683/11 333/684/11 335/685/11 +f 669/686/27 692/687/27 680/688/27 +f 671/689/28 682/690/28 670/691/28 +f 678/692/29 689/693/29 677/694/29 +f 675/695/30 686/696/30 674/697/30 +f 672/698/31 683/699/31 671/700/31 +f 679/701/32 690/702/32 678/692/32 +f 676/703/33 687/704/33 675/695/33 +f 673/705/34 684/706/34 672/698/34 +f 680/688/35 691/707/35 679/708/35 +f 670/691/36 681/709/36 669/686/36 +f 677/710/37 688/711/37 676/703/37 +f 674/697/38 685/712/38 673/713/38 +f 687/704/39 700/714/39 699/715/39 +f 684/706/40 697/716/40 696/717/40 +f 692/687/41 703/718/41 691/707/41 +f 682/690/42 693/719/42 681/709/42 +f 689/720/43 700/714/43 688/711/43 +f 685/712/44 698/721/44 697/722/44 +f 681/709/45 704/723/45 692/687/45 +f 683/724/46 694/725/46 682/690/46 +f 690/702/47 701/726/47 689/693/47 +f 687/704/48 698/721/48 686/696/48 +f 684/706/49 695/727/49 683/699/49 +f 691/728/50 702/729/50 690/702/50 +f 703/730/51 714/731/51 702/732/51 +f 700/714/52 711/733/52 699/715/52 +f 697/716/53 708/734/53 696/717/53 +f 704/723/54 715/735/54 703/718/54 +f 693/719/55 706/736/55 705/737/55 +f 700/714/56 713/738/56 712/739/56 +f 698/721/57 709/740/57 697/722/57 +f 693/719/58 716/741/58 704/723/58 +f 694/725/59 707/742/59 706/736/59 +f 702/732/60 713/743/60 701/744/60 +f 699/715/61 710/745/61 698/721/61 +f 696/717/62 707/746/62 695/727/62 +f 708/747/63 719/748/63 707/749/63 +f 715/750/64 726/751/64 714/731/64 +f 712/739/65 723/752/65 711/733/65 +f 709/753/66 720/754/66 708/747/66 +f 715/750/67 728/755/67 727/756/67 +f 706/736/68 717/757/68 705/737/68 +f 712/739/69 725/758/69 724/759/69 +f 710/760/70 721/761/70 709/753/70 +f 716/741/71 717/757/71 728/762/71 +f 706/763/72 719/748/72 718/764/72 +f 714/731/73 725/765/73 713/743/73 +f 711/733/74 722/766/74 710/745/74 +f 727/756/11 717/767/11 721/761/11 +f 777/768/12 781/769/12 779/770/12 +f 736/771/75 739/772/75 735/773/75 +f 730/774/11 734/775/11 729/776/11 +f 732/777/12 735/773/12 730/778/12 +f 729/779/14 733/780/14 731/781/14 +f 731/782/13 736/783/13 732/784/13 +f 739/785/2 737/786/2 738/787/2 +f 734/788/76 737/789/76 733/780/76 +f 733/790/77 740/791/77 736/783/77 +f 734/775/78 739/792/78 738/793/78 +f 780/794/14 783/795/14 778/796/14 +f 748/797/79 751/798/79 747/799/79 +f 742/800/80 746/801/80 741/802/80 +f 744/803/30 747/799/30 742/804/30 +f 743/805/27 746/806/27 745/807/27 +f 743/808/81 748/809/81 744/810/81 +f 751/811/82 749/812/82 750/813/82 +f 746/806/83 749/814/83 745/807/83 +f 745/815/84 752/816/84 748/809/84 +f 746/801/85 751/817/85 750/818/85 +f 778/819/11 782/820/11 777/821/11 +f 759/822/86 764/823/86 763/824/86 +f 754/825/87 758/826/87 753/827/87 +f 756/828/12 759/822/12 754/829/12 +f 755/830/14 758/831/14 757/832/14 +f 755/833/88 760/834/88 756/835/88 +f 763/836/89 761/837/89 762/838/89 +f 757/832/90 762/839/90 761/840/90 +f 757/841/91 764/842/91 760/834/91 +f 758/826/92 763/836/92 762/838/92 +f 784/843/93 787/844/93 783/845/93 +f 772/846/94 775/847/94 771/848/94 +f 766/849/95 770/850/95 765/851/95 +f 768/852/12 771/848/12 766/853/12 +f 765/854/14 769/855/14 767/856/14 +f 767/857/96 772/858/96 768/859/96 +f 775/860/97 773/861/97 774/862/97 +f 769/855/98 774/863/98 773/864/98 +f 769/865/99 776/866/99 772/858/99 +f 770/850/100 775/860/100 774/862/100 +f 779/867/13 784/868/13 780/869/13 +f 787/844/1 785/870/1 786/871/1 +f 782/872/101 785/873/101 781/769/101 +f 781/874/102 788/875/102 784/843/102 +f 782/820/103 787/876/103 786/877/103 +f 801/878/1 805/879/1 803/880/1 +f 796/881/104 799/882/104 795/883/104 +f 790/884/11 794/885/11 789/886/11 +f 792/887/1 795/888/1 790/889/1 +f 789/890/2 793/891/2 791/892/2 +f 791/892/13 796/893/13 792/894/13 +f 799/882/12 797/895/12 798/896/12 +f 794/897/105 797/898/105 793/891/105 +f 793/891/106 800/899/106 796/893/106 +f 794/885/107 799/900/107 798/901/107 +f 804/902/2 807/903/2 802/904/2 +f 802/905/11 806/906/11 801/907/11 +f 808/908/25 811/909/25 807/910/25 +f 803/911/13 808/912/13 804/902/13 +f 811/909/14 809/913/14 810/914/14 +f 806/915/108 809/916/108 805/879/108 +f 805/917/109 812/918/109 808/912/109 +f 806/906/110 811/919/110 810/920/110 +f 825/921/111 829/922/111 827/923/111 +f 820/924/112 823/925/112 819/926/112 +f 813/927/11 819/928/11 818/929/11 +f 816/930/111 819/926/111 814/931/111 +f 813/932/113 817/933/113 815/934/113 +f 816/935/13 817/936/13 820/937/13 +f 823/938/114 821/939/114 822/940/114 +f 818/941/115 821/942/115 817/933/115 +f 817/936/116 824/943/116 820/937/116 +f 818/929/117 823/944/117 822/945/117 +f 828/946/113 831/947/113 826/948/113 +f 826/949/11 830/950/11 825/951/11 +f 832/952/118 835/953/118 831/947/118 +f 827/954/13 832/955/13 828/956/13 +f 835/957/119 833/958/119 834/959/119 +f 830/960/120 833/961/120 829/922/120 +f 829/962/121 836/963/121 832/964/121 +f 830/950/122 835/965/122 834/966/122 +f 849/967/119 853/968/119 851/969/119 +f 844/970/123 847/971/123 843/972/123 +f 837/973/11 843/974/11 842/975/11 +f 840/976/119 843/972/119 838/977/119 +f 837/978/114 841/979/114 839/980/114 +f 839/980/13 844/981/13 840/982/13 +f 847/983/111 845/984/111 846/985/111 +f 842/986/124 845/987/124 841/979/124 +f 841/979/125 848/988/125 844/981/125 +f 842/975/126 847/989/126 846/990/126 +f 852/991/114 855/992/114 850/993/114 +f 849/994/11 855/995/11 854/996/11 +f 856/997/127 859/998/127 855/992/127 +f 851/999/13 856/997/13 852/991/13 +f 859/1000/113 857/1001/113 858/1002/113 +f 854/1003/128 857/1004/128 853/968/128 +f 853/1005/129 860/1006/129 856/997/129 +f 854/996/130 859/1007/130 858/1008/130 +f 873/1009/131 877/1010/131 875/1011/131 +f 868/1012/132 871/1013/132 867/1014/132 +f 862/1015/11 866/1016/11 861/1017/11 +f 864/1018/131 867/1019/131 862/1020/131 +f 861/1021/133 865/1022/133 863/1023/133 +f 864/1024/13 865/1022/13 868/1025/13 +f 871/1013/134 869/1026/134 870/1027/134 +f 866/1028/135 869/1029/135 865/1030/135 +f 865/1022/136 872/1031/136 868/1025/136 +f 866/1016/137 871/1032/137 870/1033/137 +f 876/1034/133 879/1035/133 874/1036/133 +f 874/1037/11 878/1038/11 873/1039/11 +f 880/1040/138 883/1041/138 879/1042/138 +f 875/1043/13 880/1044/13 876/1034/13 +f 883/1041/139 881/1045/139 882/1046/139 +f 878/1047/140 881/1048/140 877/1049/140 +f 877/1050/141 884/1051/141 880/1044/141 +f 878/1038/142 883/1052/142 882/1053/142 +f 897/1054/139 901/1055/139 899/1056/139 +f 892/1057/143 895/1058/143 891/1059/143 +f 885/1060/11 891/1061/11 890/1062/11 +f 888/1063/139 891/1064/139 886/1065/139 +f 885/1066/134 889/1067/134 887/1068/134 +f 888/1069/13 889/1070/13 892/1071/13 +f 895/1058/131 893/1072/131 894/1073/131 +f 890/1074/144 893/1075/144 889/1067/144 +f 889/1076/145 896/1077/145 892/1057/145 +f 890/1062/146 895/1078/146 894/1079/146 +f 900/1080/134 903/1081/134 898/1082/134 +f 898/1083/11 902/1084/11 897/1085/11 +f 904/1086/147 907/1087/147 903/1088/147 +f 899/1089/13 904/1086/13 900/1090/13 +f 907/1087/133 905/1091/133 906/1092/133 +f 902/1093/148 905/1094/148 901/1095/148 +f 901/1096/149 908/1097/149 904/1086/149 +f 902/1084/150 907/1098/150 906/1099/150 +f 915/1100/151 920/1101/151 919/1102/151 +f 909/1103/152 915/1104/152 914/1105/152 +f 912/1106/38 915/1100/38 910/1107/38 +f 911/1108/35 914/1109/35 913/1110/35 +f 911/1111/153 916/1112/153 912/1113/153 +f 918/1114/154 920/1101/154 917/1115/154 +f 914/1109/155 917/1116/155 913/1110/155 +f 913/1117/156 920/1118/156 916/1112/156 +f 914/1105/157 919/1119/157 918/1120/157 +f 928/1121/158 931/1122/158 927/1123/158 +f 922/1124/159 926/1125/159 921/1126/159 +f 924/1127/34 927/1128/34 922/1129/34 +f 923/1130/32 926/1131/32 925/1132/32 +f 924/1133/160 925/1132/160 928/1134/160 +f 931/1122/161 929/1135/161 930/1136/161 +f 926/1137/162 929/1138/162 925/1139/162 +f 925/1132/163 932/1140/163 928/1134/163 +f 926/1125/164 931/1141/164 930/1142/164 +f 940/1143/165 943/1144/165 939/1145/165 +f 934/1146/166 938/1147/166 933/1148/166 +f 936/1149/29 939/1150/29 934/1151/29 +f 935/1152/31 938/1153/31 937/1154/31 +f 936/1149/167 937/1155/167 940/1156/167 +f 943/1144/168 941/1157/168 942/1158/168 +f 937/1154/169 942/1159/169 941/1160/169 +f 937/1155/170 944/1161/170 940/1156/170 +f 938/1147/171 943/1162/171 942/1163/171 +f 951/1164/172 956/1165/172 955/1166/172 +f 945/1167/173 951/1168/173 950/1169/173 +f 948/1170/37 951/1171/37 946/1172/37 +f 947/1173/28 950/1174/28 949/1175/28 +f 947/1176/174 952/1177/174 948/1178/174 +f 954/1179/175 956/1180/175 953/1181/175 +f 950/1182/176 953/1183/176 949/1184/176 +f 949/1185/177 956/1165/177 952/1177/177 +f 950/1169/178 955/1186/178 954/1187/178 +f 963/1188/179 968/1189/179 967/1190/179 +f 958/1191/180 962/1192/180 957/1193/180 +f 960/1194/33 963/1195/33 958/1196/33 +f 959/1197/36 962/1198/36 961/1199/36 +f 960/1200/181 961/1201/181 964/1202/181 +f 967/1190/182 965/1203/182 966/1204/182 +f 962/1198/183 965/1205/183 961/1199/183 +f 961/1201/184 968/1189/184 964/1202/184 +f 962/1192/185 967/1206/185 966/1207/185 +f 975/1208/186 980/1209/186 979/1210/186 +f 970/1211/187 974/1212/187 969/1213/187 +f 972/1214/27 975/1208/27 970/1215/27 +f 969/1216/30 973/1217/30 971/1218/30 +f 972/1219/188 973/1220/188 976/1221/188 +f 979/1222/189 977/1223/189 978/1224/189 +f 973/1217/190 978/1225/190 977/1226/190 +f 973/1227/191 980/1228/191 976/1229/191 +f 974/1212/192 979/1230/192 978/1231/192 +f 988/1232/193 991/1233/193 987/1234/193 +f 982/1235/194 986/1236/194 981/1237/194 +f 982/1238/35 988/1232/35 987/1234/35 +f 983/1239/38 986/1240/38 985/1241/38 +f 983/1242/195 988/1243/195 984/1244/195 +f 990/1245/196 992/1246/196 989/1247/196 +f 985/1241/197 990/1248/197 989/1249/197 +f 985/1250/198 992/1251/198 988/1252/198 +f 986/1236/199 991/1253/199 990/1254/199 +f 999/1255/200 1004/1256/200 1003/1257/200 +f 993/1258/201 999/1259/201 998/1260/201 +f 996/1261/32 999/1262/32 994/1263/32 +f 995/1264/34 998/1265/34 997/1266/34 +f 995/1267/202 1000/1268/202 996/1261/202 +f 1003/1257/203 1001/1269/203 1002/1270/203 +f 998/1265/204 1001/1271/204 997/1266/204 +f 997/1272/205 1004/1256/205 1000/1273/205 +f 998/1260/206 1003/1274/206 1002/1275/206 +f 1012/1276/207 1015/1277/207 1011/1278/207 +f 1006/1279/208 1010/1280/208 1005/1281/208 +f 1008/1282/31 1011/1283/31 1006/1284/31 +f 1007/1285/29 1010/1286/29 1009/1287/29 +f 1008/1288/209 1009/1287/209 1012/1289/209 +f 1015/1277/210 1013/1290/210 1014/1291/210 +f 1010/1286/211 1013/1292/211 1009/1287/211 +f 1009/1293/212 1016/1294/212 1012/1276/212 +f 1010/1280/213 1015/1295/213 1014/1296/213 +f 1023/1297/214 1028/1298/214 1027/1299/214 +f 1018/1300/215 1022/1301/215 1017/1302/215 +f 1020/1303/28 1023/1304/28 1018/1305/28 +f 1019/1306/37 1022/1307/37 1021/1308/37 +f 1019/1309/216 1024/1310/216 1020/1311/216 +f 1027/1312/217 1025/1313/217 1026/1314/217 +f 1022/1315/218 1025/1316/218 1021/1317/218 +f 1021/1318/219 1028/1298/219 1024/1319/219 +f 1022/1301/220 1027/1320/220 1026/1321/220 +f 1036/1322/221 1039/1323/221 1035/1324/221 +f 1030/1325/222 1034/1326/222 1029/1327/222 +f 1032/1328/36 1035/1329/36 1030/1330/36 +f 1031/1331/33 1034/1332/33 1033/1333/33 +f 1031/1334/223 1036/1335/223 1032/1336/223 +f 1039/1323/224 1037/1337/224 1038/1338/224 +f 1034/1332/225 1037/1339/225 1033/1333/225 +f 1033/1340/226 1040/1341/226 1036/1322/226 +f 1034/1326/227 1039/1342/227 1038/1343/227 +f 1047/1344/228 1052/1345/228 1051/1346/228 +f 1042/1347/229 1046/1348/229 1041/1349/229 +f 1044/1350/14 1047/1351/14 1042/1352/14 +f 1043/1353/12 1046/1354/12 1045/1355/12 +f 1044/1356/230 1045/1357/230 1048/1358/230 +f 1051/1346/231 1049/1359/231 1050/1360/231 +f 1045/1355/232 1050/1361/232 1049/1362/232 +f 1045/1357/233 1052/1345/233 1048/1358/233 +f 1046/1348/234 1051/1363/234 1050/1364/234 +f 1059/1365/235 1064/1366/235 1063/1367/235 +f 1054/1368/236 1058/1369/236 1053/1370/236 +f 1056/1371/1 1059/1372/1 1054/1373/1 +f 1055/1374/2 1058/1375/2 1057/1376/2 +f 1055/1374/237 1060/1377/237 1056/1378/237 +f 1063/1367/238 1061/1379/238 1062/1380/238 +f 1058/1375/239 1061/1381/239 1057/1376/239 +f 1057/1382/240 1064/1366/240 1060/1383/240 +f 1058/1369/241 1063/1384/241 1062/1385/241 +f 1072/1386/242 1075/1387/242 1071/1388/242 +f 1066/1389/243 1070/1390/243 1065/1391/243 +f 1068/1392/2 1071/1393/2 1066/1394/2 +f 1067/1395/1 1070/1396/1 1069/1397/1 +f 1068/1392/244 1069/1398/244 1072/1399/244 +f 1075/1387/245 1073/1400/245 1074/1401/245 +f 1070/1396/246 1073/1402/246 1069/1397/246 +f 1069/1403/247 1076/1404/247 1072/1386/247 +f 1070/1390/248 1075/1405/248 1074/1406/248 +f 1083/1407/249 1088/1408/249 1087/1409/249 +f 1077/1410/250 1083/1411/250 1082/1412/250 +f 1080/1413/38 1083/1407/38 1078/1414/38 +f 1079/1415/35 1082/1416/35 1081/1417/35 +f 1079/1418/251 1084/1419/251 1080/1420/251 +f 1087/1409/252 1085/1421/252 1086/1422/252 +f 1081/1417/253 1086/1423/253 1085/1424/253 +f 1081/1425/254 1088/1426/254 1084/1419/254 +f 1082/1412/255 1087/1427/255 1086/1428/255 +f 1095/1429/256 1100/1430/256 1099/1431/256 +f 1090/1432/257 1094/1433/257 1089/1434/257 +f 1092/1435/35 1095/1429/35 1090/1436/35 +f 1091/1437/38 1094/1438/38 1093/1439/38 +f 1091/1440/258 1096/1441/258 1092/1442/258 +f 1098/1443/259 1100/1430/259 1097/1444/259 +f 1094/1438/260 1097/1445/260 1093/1439/260 +f 1093/1446/261 1100/1447/261 1096/1441/261 +f 1094/1433/262 1099/1448/262 1098/1449/262 +f 1108/1450/263 1111/1451/263 1107/1452/263 +f 1101/1453/264 1107/1454/264 1106/1455/264 +f 1104/1456/28 1107/1457/28 1102/1458/28 +f 1101/1459/37 1105/1460/37 1103/1461/37 +f 1103/1462/265 1108/1450/265 1104/1463/265 +f 1111/1464/266 1109/1465/266 1110/1466/266 +f 1105/1467/267 1110/1468/267 1109/1469/267 +f 1105/1470/268 1112/1471/268 1108/1450/268 +f 1106/1455/269 1111/1472/269 1110/1473/269 +f 1119/1474/270 1124/1475/270 1123/1476/270 +f 1113/1477/271 1119/1474/271 1118/1478/271 +f 1116/1479/37 1119/1480/37 1114/1481/37 +f 1115/1482/28 1118/1483/28 1117/1484/28 +f 1116/1485/272 1117/1486/272 1120/1487/272 +f 1123/1488/273 1121/1489/273 1122/1490/273 +f 1117/1491/274 1122/1492/274 1121/1493/274 +f 1117/1486/275 1124/1494/275 1120/1487/275 +f 1118/1478/276 1123/1476/276 1122/1495/276 +f 1132/1496/277 1135/1497/277 1131/1498/277 +f 1126/1499/278 1130/1500/278 1125/1501/278 +f 1128/1502/14 1131/1503/14 1126/1504/14 +f 1125/1505/12 1129/1506/12 1127/1507/12 +f 1127/1508/279 1132/1496/279 1128/1509/279 +f 1135/1497/280 1133/1510/280 1134/1511/280 +f 1129/1506/281 1134/1512/281 1133/1513/281 +f 1129/1514/282 1136/1515/282 1132/1496/282 +f 1130/1500/283 1135/1516/283 1134/1517/283 +f 1143/1518/284 1148/1519/284 1147/1520/284 +f 1138/1521/285 1142/1522/285 1137/1523/285 +f 1138/1524/131 1144/1525/131 1143/1526/131 +f 1137/1527/133 1141/1528/133 1139/1529/133 +f 1139/1529/286 1144/1530/286 1140/1531/286 +f 1147/1520/287 1145/1532/287 1146/1533/287 +f 1142/1534/288 1145/1535/288 1141/1536/288 +f 1141/1537/289 1148/1519/289 1144/1538/289 +f 1142/1522/290 1147/1539/290 1146/1540/290 +f 1156/1541/291 1159/1542/291 1155/1543/291 +f 1150/1544/292 1154/1545/292 1149/1546/292 +f 1152/1547/133 1155/1548/133 1150/1549/133 +f 1151/1550/131 1154/1551/131 1153/1552/131 +f 1152/1553/293 1153/1552/293 1156/1554/293 +f 1159/1542/294 1157/1555/294 1158/1556/294 +f 1154/1557/295 1157/1558/295 1153/1559/295 +f 1153/1560/296 1160/1561/296 1156/1541/296 +f 1154/1545/297 1159/1562/297 1158/1563/297 +f 1168/1564/298 1171/1565/298 1167/1566/298 +f 1162/1567/299 1166/1568/299 1161/1569/299 +f 1164/1570/119 1167/1566/119 1162/1571/119 +f 1161/1572/114 1165/1573/114 1163/1574/114 +f 1164/1570/300 1165/1575/300 1168/1564/300 +f 1171/1576/301 1169/1577/301 1170/1578/301 +f 1166/1579/302 1169/1580/302 1165/1573/302 +f 1165/1581/303 1172/1582/303 1168/1583/303 +f 1166/1568/304 1171/1584/304 1170/1585/304 +f 1179/1586/305 1184/1587/305 1183/1588/305 +f 1174/1589/306 1178/1590/306 1173/1591/306 +f 1176/1592/114 1179/1593/114 1174/1594/114 +f 1175/1595/119 1178/1596/119 1177/1597/119 +f 1176/1592/307 1177/1598/307 1180/1599/307 +f 1183/1600/308 1181/1601/308 1182/1602/308 +f 1178/1596/309 1181/1603/309 1177/1597/309 +f 1177/1604/310 1184/1605/310 1180/1606/310 +f 1178/1590/311 1183/1588/311 1182/1607/311 +f 1200/1608/23 1191/1609/23 1192/1610/23 +f 1198/1611/22 1189/1612/22 1190/1613/22 +f 1196/1614/21 1187/1615/21 1188/1616/21 +f 1194/1617/24 1185/1618/24 1186/1619/24 +f 1185/1618/19 1200/1620/19 1192/1621/19 +f 1191/1609/20 1198/1622/20 1190/1623/20 +f 1189/1612/17 1196/1624/17 1188/1625/17 +f 1187/1615/18 1194/1626/18 1186/1627/18 +f 1193/1628/312 1194/1629/312 1200/1630/312 +f 1199/1631/313 1200/1632/313 1198/1633/313 +f 1197/1634/314 1198/1635/314 1196/1636/314 +f 1195/1637/315 1196/1638/315 1194/1639/315 +f 1194/1640/11 1198/1641/11 1200/1642/11 +f 675/695/316 1206/1643/316 1207/1644/316 +f 671/700/317 1204/1645/317 672/698/317 +f 678/692/318 1211/1646/318 679/701/318 +f 675/1647/319 1208/1648/319 676/1649/319 +f 673/705/320 1204/1645/320 1205/1650/320 +f 679/701/321 1212/1651/321 680/1652/321 +f 669/686/322 1202/1653/322 670/691/322 +f 677/694/323 1208/1648/323 1209/1654/323 +f 673/705/324 1206/1655/324 674/1656/324 +f 680/1652/325 1201/1657/325 669/1658/325 +f 670/1659/326 1203/1660/326 671/700/326 +f 677/694/327 1210/1661/327 678/692/327 +f 1205/1662/13 1203/1663/13 1211/1646/13 +f 1215/1664/12 1214/1665/12 1213/1666/12 +f 1219/1667/11 1222/1668/11 1218/1669/11 +f 1215/1670/13 1220/1671/13 1216/1672/13 +f 1214/1673/11 1218/1669/11 1213/1674/11 +f 1216/1672/2 1219/1675/2 1214/1676/2 +f 1213/1677/1 1217/1678/1 1215/1679/1 +f 1223/1680/14 1221/1681/14 1222/1682/14 +f 1219/1675/2 1224/1683/2 1223/1684/2 +f 1218/1685/1 1221/1686/1 1217/1678/1 +f 1217/1687/328 1224/1688/328 1220/1689/328 +f 1227/1690/12 1226/1691/12 1225/1692/12 +f 1231/1693/14 1229/1694/14 1230/1695/14 +f 1227/1696/13 1232/1697/13 1228/1698/13 +f 1226/1699/11 1230/1700/11 1225/1701/11 +f 1228/1698/2 1231/1702/2 1226/1703/2 +f 1225/1704/1 1229/1705/1 1227/1706/1 +f 1235/1707/12 1234/1708/12 1233/1709/12 +f 1239/1710/14 1237/1711/14 1238/1712/14 +f 1236/1713/2 1239/1714/2 1234/1715/2 +f 1233/1716/1 1237/1717/1 1235/1718/1 +f 1235/1719/13 1240/1720/13 1236/1713/13 +f 1234/1721/11 1238/1722/11 1233/1723/11 +f 1256/1724/13 1251/1725/13 1252/1726/13 +f 1254/1727/11 1250/1728/11 1249/1729/11 +f 1248/1730/13 1243/1731/13 1244/1732/13 +f 1246/1733/11 1242/1734/11 1241/1735/11 +f 1247/1736/2 1244/1732/2 1242/1737/2 +f 1245/1738/1 1241/1739/1 1243/1740/1 +f 1255/1741/2 1252/1726/2 1250/1742/2 +f 1253/1743/1 1249/1744/1 1251/1745/1 +f 1289/1746/11 1454/1747/11 1452/1748/11 +f 1292/1749/13 1450/1750/13 1448/1751/13 +f 1259/1752/13 1264/1753/13 1260/1754/13 +f 1258/1755/11 1261/1756/11 1257/1757/11 +f 1260/1754/2 1262/1758/2 1258/1759/2 +f 1257/1760/1 1263/1761/1 1259/1762/1 +f 1267/1763/13 1272/1764/13 1268/1765/13 +f 1266/1766/11 1269/1767/11 1265/1768/11 +f 1268/1765/2 1270/1769/2 1266/1770/2 +f 1265/1771/1 1271/1772/1 1267/1773/1 +f 1295/1774/14 1293/1775/14 1294/1776/14 +f 1291/1777/12 1290/1778/12 1289/1779/12 +f 1275/1780/13 1280/1781/13 1276/1782/13 +f 1274/1783/11 1277/1784/11 1273/1785/11 +f 1276/1782/2 1278/1786/2 1274/1787/2 +f 1273/1788/1 1279/1789/1 1275/1790/1 +f 1283/1791/13 1288/1792/13 1284/1793/13 +f 1282/1794/11 1285/1795/11 1281/1796/11 +f 1284/1793/2 1286/1797/2 1282/1798/2 +f 1281/1799/1 1287/1800/1 1283/1801/1 +f 1291/1802/13 1296/1803/13 1292/1749/13 +f 1290/1804/11 1294/1805/11 1289/1746/11 +f 1299/1806/12 1298/1807/12 1297/1808/12 +f 1303/1809/14 1301/1810/14 1302/1811/14 +f 1299/1812/13 1304/1813/13 1300/1814/13 +f 1298/1815/11 1302/1816/11 1297/1817/11 +f 1300/1814/2 1303/1818/2 1298/1819/2 +f 1297/1820/1 1301/1821/1 1299/1822/1 +f 1324/1823/11 1314/1824/11 1321/1825/11 +f 1328/1826/2 1324/1827/2 1322/1828/2 +f 1310/1829/12 1311/1830/12 1312/1831/12 +f 1319/1832/14 1323/1833/14 1328/1834/14 +f 1316/1835/1 1320/1836/1 1318/1837/1 +f 1320/1838/13 1326/1839/13 1317/1840/13 +f 1318/1841/15 1326/1842/15 1325/1843/15 +f 1328/1834/329 1320/1844/329 1319/1832/329 +f 1322/1845/16 1314/1846/16 1313/1847/16 +f 1316/1848/330 1324/1849/330 1323/1833/330 +f 1325/1843/12 1313/1847/12 1318/1841/12 +f 1305/1850/14 1308/1851/14 1307/1852/14 +f 1311/1853/11 1307/1854/11 1312/1855/11 +f 1312/1856/1 1308/1857/1 1310/1858/1 +f 1309/1859/2 1305/1860/2 1311/1861/2 +f 1310/1862/13 1306/1863/13 1309/1859/13 +f 1332/1864/329 1337/1865/329 1331/1866/329 +f 1335/1867/11 1333/1868/11 1334/1869/11 +f 1331/1866/14 1336/1870/14 1332/1864/14 +f 1330/1871/12 1334/1872/12 1329/1873/12 +f 1332/1874/2 1335/1875/2 1330/1876/2 +f 1329/1877/1 1333/1878/1 1331/1879/1 +f 1337/1880/13 1339/1881/13 1338/1882/13 +f 1329/1873/15 1339/1883/15 1330/1871/15 +f 1330/1876/331 1340/1884/331 1332/1874/331 +f 1331/1879/332 1338/1885/332 1329/1877/332 +f 1347/1886/11 1345/1887/11 1346/1888/11 +f 1341/1889/14 1348/1890/14 1344/1891/14 +f 1343/1892/12 1346/1893/12 1342/1894/12 +f 1344/1895/2 1347/1896/2 1343/1897/2 +f 1342/1898/1 1345/1899/1 1341/1900/1 +f 1356/1901/333 1350/1902/333 1352/1903/333 +f 1353/1904/334 1351/1905/334 1349/1906/334 +f 1351/1907/13 1356/1901/13 1352/1903/13 +f 1354/1908/11 1349/1909/11 1350/1910/11 +f 1364/1911/335 1358/1912/335 1360/1913/335 +f 1361/1914/336 1359/1915/336 1357/1916/336 +f 1363/1917/13 1360/1913/13 1359/1918/13 +f 1358/1919/11 1361/1920/11 1357/1921/11 +f 1448/1751/2 1449/1922/2 1447/1923/2 +f 1295/1774/337 1450/1924/337 1296/1925/337 +f 1292/1926/338 1447/1927/338 1290/1778/338 +f 1290/1804/11 1449/1928/11 1295/1929/11 +f 1452/1930/1 1453/1931/1 1451/1932/1 +f 1293/1775/339 1454/1933/339 1294/1776/339 +f 1289/1779/340 1451/1934/340 1291/1777/340 +f 1291/1802/13 1453/1935/13 1293/1936/13 +f 1502/1937/14 1496/1938/14 1499/1939/14 +f 1491/1940/14 1493/1941/14 1488/1942/14 +f 74/1/1 73/203/1 114/2/1 +f 14/4/1 13/88/1 54/5/1 +f 12/7/2 44/64/2 43/8/2 +f 23/1943/1 21/1944/1 22/10/1 +f 22/10/1 28/1945/1 27/11/1 +f 27/11/1 26/1946/1 25/12/1 +f 25/12/1 24/1947/1 23/1943/1 +f 23/1943/1 22/10/1 25/12/1 +f 11/9/3 27/26/3 28/13/3 +f 9/14/4 25/28/4 26/15/4 +f 7/17/5 23/30/5 24/18/5 +f 5/20/6 22/24/6 21/21/6 +f 12/23/7 28/1948/7 22/24/7 +f 10/25/8 26/1949/8 27/26/8 +f 9/14/9 8/1950/9 24/27/9 +f 6/29/10 21/1951/10 23/30/10 +f 30/1952/2 29/1953/2 31/31/2 +f 31/31/2 32/1954/2 33/32/2 +f 33/32/2 34/40/2 35/33/2 +f 35/33/2 36/1955/2 30/1952/2 +f 30/1952/2 31/31/2 35/33/2 +f 14/34/6 29/1956/6 30/35/6 +f 13/36/7 30/35/7 36/37/7 +f 19/39/8 35/33/8 34/40/8 +f 17/42/9 33/50/9 32/43/9 +f 15/45/10 31/52/10 29/46/10 +f 20/48/3 36/1955/3 35/33/3 +f 17/42/4 18/1957/4 34/49/4 +f 16/51/5 32/1958/5 31/52/5 +f 41/53/4 42/1959/4 50/54/4 +f 10/25/2 42/65/2 41/56/2 +f 8/58/2 40/66/2 39/59/2 +f 6/61/2 37/67/2 38/62/2 +f 12/7/2 5/63/2 38/62/2 +f 11/9/2 43/8/2 42/65/2 +f 9/57/2 41/56/2 40/66/2 +f 6/61/2 7/60/2 39/59/2 +f 46/70/2 45/1960/2 49/68/2 +f 45/1960/2 47/1961/2 49/68/2 +f 47/1961/2 48/1962/2 49/68/2 +f 49/68/2 50/79/2 51/69/2 +f 51/69/2 52/84/2 46/70/2 +f 40/71/5 48/1963/5 47/72/5 +f 37/74/6 45/1964/6 46/75/6 +f 38/76/7 46/75/7 52/77/7 +f 43/8/8 51/69/8 50/79/8 +f 41/53/9 49/55/9 48/80/9 +f 39/73/10 47/72/10 45/82/10 +f 43/8/3 44/64/3 52/84/3 +f 58/85/8 66/1965/8 67/86/8 +f 13/88/1 20/98/1 60/89/1 +f 19/90/1 18/99/1 58/91/1 +f 16/93/1 56/100/1 57/94/1 +f 14/4/1 53/6/1 55/96/1 +f 19/90/1 59/92/1 60/89/1 +f 17/95/1 57/94/1 58/91/1 +f 16/93/1 15/97/1 55/96/1 +f 63/102/1 61/1966/1 67/103/1 +f 61/1966/1 62/1967/1 67/103/1 +f 62/1967/1 68/1968/1 67/103/1 +f 67/103/1 66/1969/1 65/1970/1 +f 65/1970/1 64/101/1 67/103/1 +f 56/104/9 64/1971/9 65/105/9 +f 53/107/10 61/1972/10 63/108/10 +f 60/110/3 59/87/3 67/86/3 +f 58/112/4 57/106/4 65/105/4 +f 55/109/5 63/108/5 64/114/5 +f 54/116/6 62/120/6 61/117/6 +f 60/119/7 68/1973/7 62/120/7 +f 71/121/2 72/128/2 104/122/2 +f 83/1974/1 81/1975/1 82/124/1 +f 82/124/1 88/1976/1 87/125/1 +f 87/125/1 86/1977/1 85/126/1 +f 85/126/1 84/1978/1 83/1974/1 +f 83/1974/1 82/124/1 85/126/1 +f 71/121/3 87/141/3 88/127/3 +f 69/129/4 85/143/4 86/130/4 +f 2/132/5 83/145/5 84/133/5 +f 4/135/6 82/139/6 81/136/6 +f 72/138/7 88/1979/7 82/139/7 +f 70/140/8 86/1980/8 87/141/8 +f 69/129/9 1/1981/9 84/142/9 +f 3/144/10 81/1982/10 83/145/10 +f 90/147/2 89/1983/2 91/1984/2 +f 91/1984/2 92/1985/2 90/147/2 +f 92/1985/2 93/148/2 90/147/2 +f 93/148/2 94/155/2 95/164/2 +f 95/164/2 96/146/2 93/148/2 +f 74/149/6 89/1986/6 90/150/6 +f 73/151/7 90/150/7 96/152/7 +f 79/154/8 95/164/8 94/155/8 +f 77/157/9 93/166/9 92/158/9 +f 75/160/10 91/168/10 89/161/10 +f 80/163/3 96/146/3 95/164/3 +f 77/157/4 78/1987/4 94/165/4 +f 76/167/5 92/1988/5 91/168/5 +f 102/169/4 110/1989/4 109/170/4 +f 70/140/2 102/180/2 101/172/2 +f 2/174/2 1/181/2 100/175/2 +f 3/177/2 97/182/2 98/178/2 +f 72/128/2 4/179/2 98/178/2 +f 71/121/2 103/123/2 102/180/2 +f 1/181/2 69/173/2 101/172/2 +f 2/174/2 99/176/2 97/182/2 +f 106/185/2 105/1990/2 107/1991/2 +f 107/1991/2 108/1992/2 109/183/2 +f 109/183/2 110/194/2 111/184/2 +f 111/184/2 112/1993/2 106/185/2 +f 106/185/2 107/1991/2 109/183/2 +f 100/186/5 108/1994/5 107/187/5 +f 97/189/6 105/1995/6 106/190/6 +f 98/191/7 106/190/7 112/192/7 +f 103/123/8 111/184/8 110/194/8 +f 101/171/9 109/170/9 108/195/9 +f 99/188/10 107/187/10 105/197/10 +f 104/122/3 112/1993/3 111/184/3 +f 118/199/8 126/1996/8 127/200/8 +f 80/202/1 120/212/1 114/2/1 +f 79/204/1 78/213/1 118/205/1 +f 76/207/1 116/214/1 117/208/1 +f 75/210/1 74/1/1 113/3/1 +f 79/204/1 119/206/1 120/212/1 +f 78/213/1 77/209/1 117/208/1 +f 75/210/1 115/211/1 116/214/1 +f 123/217/1 121/1997/1 122/1998/1 +f 122/1998/1 128/1999/1 127/215/1 +f 127/215/1 126/2000/1 125/216/1 +f 125/216/1 124/2001/1 123/217/1 +f 123/217/1 122/1998/1 127/215/1 +f 116/218/9 124/2002/9 125/219/9 +f 113/221/10 121/2003/10 123/222/10 +f 119/201/3 127/200/3 128/224/3 +f 117/220/4 125/219/4 126/226/4 +f 115/223/5 123/222/5 124/228/5 +f 114/230/6 122/234/6 121/231/6 +f 120/233/7 128/2004/7 122/234/7 +f 134/235/11 130/2005/11 153/236/11 +f 154/238/12 153/2006/12 130/239/12 +f 129/241/13 133/254/13 151/242/13 +f 143/244/11 144/2007/11 140/245/11 +f 142/247/13 141/257/13 137/248/13 +f 142/250/14 144/2008/14 143/251/14 +f 129/241/2 143/256/2 139/253/2 +f 130/255/2 141/257/2 143/256/2 +f 130/255/2 134/2009/2 137/248/2 +f 132/258/1 142/2010/1 138/259/1 +f 144/261/1 142/2010/1 132/258/1 +f 131/262/1 135/2011/1 140/263/1 +f 147/264/12 148/267/12 146/265/12 +f 148/267/15 150/2012/15 149/268/15 +f 145/266/16 151/285/16 152/269/16 +f 147/271/1 152/2013/1 156/272/1 +f 156/272/1 155/2014/1 148/270/1 +f 155/2014/1 150/2015/1 148/270/1 +f 146/274/2 149/2016/2 153/275/2 +f 153/275/2 154/243/2 145/273/2 +f 154/243/2 151/242/2 145/273/2 +f 132/276/12 155/2017/12 156/277/12 +f 136/279/11 150/2018/11 155/280/11 +f 156/282/13 152/2019/13 135/283/13 +f 151/285/12 133/2020/12 139/286/12 +f 139/286/12 140/2021/12 152/269/12 +f 140/2021/12 135/2022/12 152/269/12 +f 149/268/12 150/2012/12 138/2023/12 +f 150/2012/12 136/2024/12 138/2023/12 +f 138/2023/12 137/287/12 149/268/12 +f 230/289/1 229/491/1 270/290/1 +f 170/292/1 169/378/1 210/293/1 +f 167/295/2 168/302/2 200/296/2 +f 179/2025/1 177/2026/1 178/298/1 +f 178/298/1 184/2027/1 183/299/1 +f 183/299/1 182/2028/1 181/300/1 +f 181/300/1 180/2029/1 179/2025/1 +f 179/2025/1 178/298/1 181/300/1 +f 167/295/3 183/315/3 184/301/3 +f 165/303/4 181/317/4 182/304/4 +f 163/306/5 179/319/5 180/307/5 +f 161/309/6 178/313/6 177/310/6 +f 168/312/7 184/2030/7 178/313/7 +f 167/295/8 166/346/8 182/314/8 +f 165/303/9 164/2031/9 180/316/9 +f 162/318/10 177/2032/10 179/319/10 +f 186/321/2 185/2033/2 187/2034/2 +f 187/2034/2 188/2035/2 186/321/2 +f 188/2035/2 189/322/2 186/321/2 +f 189/322/2 190/329/2 191/338/2 +f 191/338/2 192/320/2 189/322/2 +f 170/323/6 185/2036/6 186/324/6 +f 169/325/7 186/324/7 192/326/7 +f 175/328/8 191/338/8 190/329/8 +f 173/331/9 189/340/9 188/332/9 +f 171/334/10 187/342/10 185/335/10 +f 176/337/3 192/320/3 191/338/3 +f 173/331/4 174/2037/4 190/339/4 +f 171/334/5 172/2038/5 188/341/5 +f 198/343/4 206/2039/4 205/344/4 +f 166/346/2 198/355/2 197/347/2 +f 164/349/2 196/356/2 195/350/2 +f 162/352/2 193/357/2 194/353/2 +f 168/302/2 161/354/2 194/353/2 +f 167/295/2 199/297/2 198/355/2 +f 165/348/2 197/347/2 196/356/2 +f 162/352/2 163/351/2 195/350/2 +f 202/360/2 201/2040/2 205/358/2 +f 201/2040/2 203/2041/2 205/358/2 +f 203/2041/2 204/2042/2 205/358/2 +f 205/358/2 206/369/2 207/359/2 +f 207/359/2 208/2043/2 202/360/2 +f 196/361/5 204/2044/5 203/362/5 +f 193/364/6 201/2045/6 202/365/6 +f 194/366/7 202/365/7 208/367/7 +f 199/297/8 207/359/8 206/369/8 +f 197/345/9 205/344/9 204/370/9 +f 195/363/10 203/362/10 201/372/10 +f 200/296/3 208/2043/3 207/359/3 +f 214/374/8 222/2046/8 223/375/8 +f 176/377/1 216/387/1 210/293/1 +f 175/379/1 174/388/1 214/380/1 +f 172/382/1 212/389/1 213/383/1 +f 170/292/1 209/294/1 211/385/1 +f 175/379/1 215/381/1 216/387/1 +f 174/388/1 173/384/1 213/383/1 +f 172/382/1 171/386/1 211/385/1 +f 219/391/1 217/2047/1 223/392/1 +f 217/2047/1 218/2048/1 223/392/1 +f 218/2048/1 224/2049/1 223/392/1 +f 223/392/1 222/2050/1 221/2051/1 +f 221/2051/1 220/390/1 223/392/1 +f 212/393/9 220/2052/9 221/394/9 +f 209/396/10 217/2053/10 219/397/10 +f 215/376/3 223/375/3 224/399/3 +f 213/395/4 221/394/4 222/401/4 +f 211/398/5 219/397/5 220/403/5 +f 210/405/6 218/409/6 217/406/6 +f 216/408/7 224/2054/7 218/409/7 +f 227/410/2 228/417/2 260/411/2 +f 239/414/1 237/2055/1 243/415/1 +f 237/2055/1 238/2056/1 243/415/1 +f 238/2056/1 244/2057/1 243/415/1 +f 243/415/1 242/2058/1 241/2059/1 +f 241/2059/1 240/413/1 243/415/1 +f 227/410/3 243/430/3 244/416/3 +f 225/418/4 241/432/4 242/419/4 +f 158/421/5 239/434/5 240/422/5 +f 160/424/6 238/428/6 237/425/6 +f 228/427/7 244/2060/7 238/428/7 +f 226/429/8 242/2061/8 243/430/8 +f 225/418/9 157/2062/9 240/431/9 +f 159/433/10 237/2063/10 239/434/10 +f 246/2064/2 245/2065/2 247/435/2 +f 247/435/2 248/2066/2 249/436/2 +f 249/436/2 250/444/2 251/437/2 +f 251/437/2 252/2067/2 246/2064/2 +f 246/2064/2 247/435/2 251/437/2 +f 230/438/6 245/2068/6 246/439/6 +f 229/440/7 246/439/7 252/441/7 +f 235/443/8 251/437/8 250/444/8 +f 233/446/9 249/454/9 248/447/9 +f 231/449/10 247/456/10 245/450/10 +f 236/452/3 252/2067/3 251/437/3 +f 233/446/4 234/2069/4 250/453/4 +f 231/449/5 232/2070/5 248/455/5 +f 258/457/4 266/2071/4 265/458/4 +f 226/429/2 258/468/2 257/460/2 +f 158/462/2 157/469/2 256/463/2 +f 159/465/2 253/470/2 254/466/2 +f 228/417/2 160/467/2 254/466/2 +f 227/410/2 259/412/2 258/468/2 +f 157/469/2 225/461/2 257/460/2 +f 158/462/2 255/464/2 253/470/2 +f 262/473/2 261/2072/2 263/2073/2 +f 263/2073/2 264/2074/2 265/471/2 +f 265/471/2 266/482/2 267/472/2 +f 267/472/2 268/2075/2 262/473/2 +f 262/473/2 263/2073/2 265/471/2 +f 256/474/5 264/2076/5 263/475/5 +f 253/477/6 261/2077/6 262/478/6 +f 254/479/7 262/478/7 268/480/7 +f 259/412/8 267/472/8 266/482/8 +f 257/459/9 265/458/9 264/483/9 +f 255/476/10 263/475/10 261/485/10 +f 260/411/3 268/2075/3 267/472/3 +f 274/487/8 282/2078/8 283/488/8 +f 236/490/1 276/500/1 270/290/1 +f 235/492/1 234/501/1 274/493/1 +f 232/495/1 272/502/1 273/496/1 +f 231/498/1 230/289/1 269/291/1 +f 235/492/1 275/494/1 276/500/1 +f 234/501/1 233/497/1 273/496/1 +f 231/498/1 271/499/1 272/502/1 +f 279/505/1 277/2079/1 278/2080/1 +f 278/2080/1 284/2081/1 283/503/1 +f 283/503/1 282/2082/1 281/504/1 +f 281/504/1 280/2083/1 279/505/1 +f 279/505/1 278/2080/1 283/503/1 +f 272/506/9 280/2084/9 281/507/9 +f 269/509/10 277/2085/10 279/510/10 +f 275/489/3 283/488/3 284/512/3 +f 273/508/4 281/507/4 282/514/4 +f 271/511/5 279/510/5 280/516/5 +f 270/518/6 278/522/6 277/519/6 +f 276/521/7 284/2086/7 278/522/7 +f 290/523/11 286/2087/11 309/524/11 +f 310/526/12 309/2088/12 286/527/12 +f 285/529/13 289/542/13 307/530/13 +f 299/532/11 300/2089/11 296/533/11 +f 298/535/13 297/545/13 293/536/13 +f 298/538/14 300/2090/14 299/539/14 +f 285/529/2 299/544/2 295/541/2 +f 286/543/2 297/545/2 299/544/2 +f 286/543/2 290/2091/2 293/536/2 +f 288/546/1 298/2092/1 294/547/1 +f 300/549/1 298/2092/1 288/546/1 +f 287/550/1 291/2093/1 296/551/1 +f 303/552/12 304/555/12 302/553/12 +f 304/555/15 306/2094/15 305/556/15 +f 301/554/16 307/573/16 308/557/16 +f 303/559/1 308/2095/1 312/560/1 +f 312/560/1 311/2096/1 304/558/1 +f 311/2096/1 306/2097/1 304/558/1 +f 302/562/2 305/2098/2 309/563/2 +f 309/563/2 310/531/2 301/561/2 +f 310/531/2 307/530/2 301/561/2 +f 288/564/12 311/2099/12 312/565/12 +f 292/567/11 306/2100/11 311/568/11 +f 312/570/13 308/2101/13 291/571/13 +f 307/573/12 289/2102/12 295/2103/12 +f 295/2103/12 296/574/12 307/573/12 +f 296/574/12 291/2104/12 308/557/12 +f 290/2105/12 305/556/12 293/576/12 +f 305/556/12 306/2094/12 294/575/12 +f 306/2094/12 292/2106/12 294/575/12 +f 315/577/12 316/2107/12 324/578/12 +f 319/580/14 320/2108/14 317/581/14 +f 315/583/13 317/2109/13 320/584/13 +f 314/586/11 319/2110/11 318/587/11 +f 319/590/2 314/2111/2 323/601/2 +f 324/589/2 316/585/2 320/584/2 +f 319/590/2 323/601/2 324/589/2 +f 317/593/1 315/2112/1 321/603/1 +f 322/591/1 313/2113/1 318/592/1 +f 317/593/1 321/603/1 322/591/1 +f 322/594/12 323/598/12 314/595/12 +f 322/594/16 326/600/16 327/597/16 +f 325/599/12 328/2114/12 327/597/12 +f 324/578/15 328/2114/15 325/599/15 +f 323/601/2 327/2115/2 328/602/2 +f 321/603/1 325/2116/1 326/604/1 +f 336/605/17 335/2117/17 662/606/17 +f 334/608/18 333/2118/18 664/609/18 +f 332/611/19 331/2119/19 666/612/19 +f 330/614/20 329/2120/20 668/615/20 +f 335/617/21 334/608/21 663/610/21 +f 338/621/11 343/2121/11 342/619/11 +f 343/2121/11 347/2122/11 342/619/11 +f 347/2122/11 346/2123/11 342/619/11 +f 339/622/12 340/2124/12 338/623/12 +f 329/625/22 336/605/22 661/607/22 +f 331/627/23 330/614/23 667/616/23 +f 344/631/13 340/647/13 339/2125/13 +f 339/2125/13 341/2126/13 344/631/13 +f 341/2126/13 345/629/13 344/631/13 +f 354/632/2 356/656/2 355/633/2 +f 341/635/1 510/676/1 512/636/1 +f 347/638/14 348/2127/14 345/639/14 +f 333/641/24 332/611/24 665/613/24 +f 344/643/25 348/2127/25 347/638/25 +f 342/645/26 346/640/26 345/639/26 +f 340/647/2 349/2128/2 351/648/2 +f 350/650/11 354/2129/11 353/651/11 +f 349/653/14 353/2130/14 355/654/14 +f 351/648/13 355/633/13 356/656/13 +f 352/658/12 356/2131/12 354/659/12 +f 350/661/2 349/2128/2 340/647/2 +f 352/657/2 350/661/2 344/631/2 +f 338/649/2 351/648/2 352/657/2 +f 506/663/11 510/2132/11 509/664/11 +f 505/666/14 509/2133/14 511/667/14 +f 507/669/13 511/2134/13 512/670/13 +f 508/672/12 512/2135/12 510/673/12 +f 339/675/1 509/678/1 510/676/1 +f 339/675/1 337/679/1 511/677/1 +f 512/636/1 511/677/1 337/679/1 +f 505/680/1 507/2136/1 508/681/1 +f 335/685/11 336/2137/11 331/683/11 +f 336/2137/11 329/2138/11 331/683/11 +f 329/2138/11 330/2139/11 331/683/11 +f 331/683/11 332/2140/11 333/684/11 +f 333/684/11 334/2141/11 335/685/11 +f 669/686/27 681/709/27 692/687/27 +f 671/689/28 683/724/28 682/690/28 +f 678/692/29 690/702/29 689/693/29 +f 675/695/30 687/704/30 686/696/30 +f 672/698/31 684/706/31 683/699/31 +f 679/701/32 691/728/32 690/702/32 +f 676/703/33 688/711/33 687/704/33 +f 673/705/34 685/2142/34 684/706/34 +f 680/688/35 692/687/35 691/707/35 +f 670/691/36 682/690/36 681/709/36 +f 677/710/37 689/720/37 688/711/37 +f 674/697/38 686/696/38 685/712/38 +f 687/704/39 688/711/39 700/714/39 +f 684/706/40 685/2142/40 697/716/40 +f 692/687/41 704/723/41 703/718/41 +f 682/690/42 694/725/42 693/719/42 +f 689/720/43 701/2143/43 700/714/43 +f 685/712/44 686/696/44 698/721/44 +f 681/709/45 693/719/45 704/723/45 +f 683/724/46 695/2144/46 694/725/46 +f 690/702/47 702/729/47 701/726/47 +f 687/704/48 699/715/48 698/721/48 +f 684/706/49 696/717/49 695/727/49 +f 691/728/50 703/2145/50 702/729/50 +f 703/730/51 715/750/51 714/731/51 +f 700/714/52 712/739/52 711/733/52 +f 697/716/53 709/2146/53 708/734/53 +f 704/723/54 716/741/54 715/735/54 +f 693/719/55 694/725/55 706/736/55 +f 700/714/56 701/2143/56 713/738/56 +f 698/721/57 710/745/57 709/740/57 +f 693/719/58 705/737/58 716/741/58 +f 694/725/59 695/2144/59 707/742/59 +f 702/732/60 714/731/60 713/743/60 +f 699/715/61 711/733/61 710/745/61 +f 696/717/62 708/734/62 707/746/62 +f 708/747/63 720/754/63 719/748/63 +f 715/750/64 727/756/64 726/751/64 +f 712/739/65 724/759/65 723/752/65 +f 709/753/66 721/761/66 720/754/66 +f 715/750/67 716/2147/67 728/755/67 +f 706/736/68 718/2148/68 717/757/68 +f 712/739/69 713/738/69 725/758/69 +f 710/760/70 722/2149/70 721/761/70 +f 716/741/71 705/737/71 717/757/71 +f 706/763/72 707/749/72 719/748/72 +f 714/731/73 726/751/73 725/765/73 +f 711/733/74 723/752/74 722/766/74 +f 717/767/11 718/764/11 721/761/11 +f 718/764/11 719/748/11 721/761/11 +f 719/748/11 720/754/11 721/761/11 +f 721/761/11 722/2149/11 725/765/11 +f 722/2149/11 723/2150/11 725/765/11 +f 723/2150/11 724/2151/11 725/765/11 +f 725/765/11 726/751/11 727/756/11 +f 727/756/11 728/755/11 717/767/11 +f 725/765/11 727/756/11 721/761/11 +f 777/768/12 782/872/12 781/769/12 +f 736/771/75 740/2152/75 739/772/75 +f 730/774/11 735/2153/11 734/775/11 +f 732/777/12 736/771/12 735/773/12 +f 729/779/14 734/788/14 733/780/14 +f 731/782/13 733/790/13 736/783/13 +f 739/785/2 740/791/2 737/786/2 +f 734/788/76 738/2154/76 737/789/76 +f 733/790/77 737/786/77 740/791/77 +f 734/775/78 735/2153/78 739/792/78 +f 780/794/14 784/2155/14 783/795/14 +f 748/797/79 752/2156/79 751/798/79 +f 742/800/80 747/2157/80 746/801/80 +f 744/803/30 748/797/30 747/799/30 +f 743/805/27 741/2158/27 746/806/27 +f 743/808/81 745/815/81 748/809/81 +f 751/811/82 752/816/82 749/812/82 +f 746/806/83 750/2159/83 749/814/83 +f 745/815/84 749/812/84 752/816/84 +f 746/801/85 747/2157/85 751/817/85 +f 778/819/11 783/2160/11 782/820/11 +f 759/822/86 760/2161/86 764/823/86 +f 754/825/87 759/2162/87 758/826/87 +f 756/828/12 760/2161/12 759/822/12 +f 755/830/14 753/2163/14 758/831/14 +f 755/833/88 757/841/88 760/834/88 +f 763/836/89 764/2164/89 761/837/89 +f 757/832/90 758/831/90 762/839/90 +f 757/841/91 761/2165/91 764/842/91 +f 758/826/92 759/2162/92 763/836/92 +f 784/843/93 788/875/93 787/844/93 +f 772/846/94 776/2166/94 775/847/94 +f 766/849/95 771/2167/95 770/850/95 +f 768/852/12 772/846/12 771/848/12 +f 765/854/14 770/2168/14 769/855/14 +f 767/857/96 769/865/96 772/858/96 +f 775/860/97 776/2169/97 773/861/97 +f 769/855/98 770/2168/98 774/863/98 +f 769/865/99 773/2170/99 776/866/99 +f 770/850/100 771/2167/100 775/860/100 +f 779/867/13 781/2171/13 784/868/13 +f 787/844/1 788/875/1 785/870/1 +f 782/872/101 786/2172/101 785/873/101 +f 781/874/102 785/870/102 788/875/102 +f 782/820/103 783/2160/103 787/876/103 +f 801/878/1 806/915/1 805/879/1 +f 796/881/104 800/2173/104 799/882/104 +f 790/884/11 795/2174/11 794/885/11 +f 792/887/1 796/2175/1 795/888/1 +f 789/890/2 794/897/2 793/891/2 +f 791/892/13 793/891/13 796/893/13 +f 799/882/12 800/2173/12 797/895/12 +f 794/897/105 798/2176/105 797/898/105 +f 793/891/106 797/898/106 800/899/106 +f 794/885/107 795/2174/107 799/900/107 +f 804/902/2 808/912/2 807/903/2 +f 802/905/11 807/2177/11 806/906/11 +f 808/908/25 812/2178/25 811/909/25 +f 803/911/13 805/917/13 808/912/13 +f 811/909/14 812/2178/14 809/913/14 +f 806/915/108 810/2179/108 809/916/108 +f 805/917/109 809/2180/109 812/918/109 +f 806/906/110 807/2177/110 811/919/110 +f 825/921/111 830/960/111 829/922/111 +f 820/924/112 824/2181/112 823/925/112 +f 813/927/11 814/2182/11 819/928/11 +f 816/930/111 820/924/111 819/926/111 +f 813/932/113 818/941/113 817/933/113 +f 816/935/13 815/2183/13 817/936/13 +f 823/938/114 824/943/114 821/939/114 +f 818/941/115 822/2184/115 821/942/115 +f 817/936/116 821/939/116 824/943/116 +f 818/929/117 819/928/117 823/944/117 +f 828/946/113 832/952/113 831/947/113 +f 826/949/11 831/2185/11 830/950/11 +f 832/952/118 836/2186/118 835/953/118 +f 827/954/13 829/2187/13 832/955/13 +f 835/957/119 836/963/119 833/958/119 +f 830/960/120 834/2188/120 833/961/120 +f 829/962/121 833/958/121 836/963/121 +f 830/950/122 831/2185/122 835/965/122 +f 849/967/119 854/1003/119 853/968/119 +f 844/970/123 848/2189/123 847/971/123 +f 837/973/11 838/2190/11 843/974/11 +f 840/976/119 844/970/119 843/972/119 +f 837/978/114 842/986/114 841/979/114 +f 839/980/13 841/979/13 844/981/13 +f 847/983/111 848/2191/111 845/984/111 +f 842/986/124 846/2192/124 845/987/124 +f 841/979/125 845/987/125 848/988/125 +f 842/975/126 843/974/126 847/989/126 +f 852/991/114 856/997/114 855/992/114 +f 849/994/11 850/2193/11 855/995/11 +f 856/997/127 860/1006/127 859/998/127 +f 851/999/13 853/1005/13 856/997/13 +f 859/1000/113 860/2194/113 857/1001/113 +f 854/1003/128 858/2195/128 857/1004/128 +f 853/1005/129 857/2196/129 860/1006/129 +f 854/996/130 855/995/130 859/1007/130 +f 873/1009/131 878/2197/131 877/1010/131 +f 868/1012/132 872/2198/132 871/1013/132 +f 862/1015/11 867/2199/11 866/1016/11 +f 864/1018/131 868/2200/131 867/1019/131 +f 861/1021/133 866/2201/133 865/1022/133 +f 864/1024/13 863/1023/13 865/1022/13 +f 871/1013/134 872/2198/134 869/1026/134 +f 866/1028/135 870/2202/135 869/1029/135 +f 865/1022/136 869/2203/136 872/1031/136 +f 866/1016/137 867/2199/137 871/1032/137 +f 876/1034/133 880/1044/133 879/1035/133 +f 874/1037/11 879/2204/11 878/1038/11 +f 880/1040/138 884/2205/138 883/1041/138 +f 875/1043/13 877/1050/13 880/1044/13 +f 883/1041/139 884/2205/139 881/1045/139 +f 878/1047/140 882/2206/140 881/1048/140 +f 877/1050/141 881/2207/141 884/1051/141 +f 878/1038/142 879/2204/142 883/1052/142 +f 897/1054/139 902/2208/139 901/1055/139 +f 892/1057/143 896/1077/143 895/1058/143 +f 885/1060/11 886/2209/11 891/1061/11 +f 888/1063/139 892/2210/139 891/1064/139 +f 885/1066/134 890/1074/134 889/1067/134 +f 888/1069/13 887/2211/13 889/1070/13 +f 895/1058/131 896/1077/131 893/1072/131 +f 890/1074/144 894/2212/144 893/1075/144 +f 889/1076/145 893/1072/145 896/1077/145 +f 890/1062/146 891/1061/146 895/1078/146 +f 900/1080/134 904/2213/134 903/1081/134 +f 898/1083/11 903/2214/11 902/1084/11 +f 904/1086/147 908/1097/147 907/1087/147 +f 899/1089/13 901/1096/13 904/1086/13 +f 907/1087/133 908/1097/133 905/1091/133 +f 902/1093/148 906/2215/148 905/1094/148 +f 901/1096/149 905/1091/149 908/1097/149 +f 902/1084/150 903/2214/150 907/1098/150 +f 915/1100/151 916/2216/151 920/1101/151 +f 909/1103/152 910/2217/152 915/1104/152 +f 912/1106/38 916/2216/38 915/1100/38 +f 911/1108/35 909/2218/35 914/1109/35 +f 911/1111/153 913/1117/153 916/1112/153 +f 918/1114/154 919/1102/154 920/1101/154 +f 914/1109/155 918/2219/155 917/1116/155 +f 913/1117/156 917/2220/156 920/1118/156 +f 914/1105/157 915/1104/157 919/1119/157 +f 928/1121/158 932/2221/158 931/1122/158 +f 922/1124/159 927/2222/159 926/1125/159 +f 924/1127/34 928/2223/34 927/1128/34 +f 923/1130/32 921/2224/32 926/1131/32 +f 924/1133/160 923/1130/160 925/1132/160 +f 931/1122/161 932/2221/161 929/1135/161 +f 926/1137/162 930/2225/162 929/1138/162 +f 925/1132/163 929/2226/163 932/1140/163 +f 926/1125/164 927/2222/164 931/1141/164 +f 940/1143/165 944/2227/165 943/1144/165 +f 934/1146/166 939/2228/166 938/1147/166 +f 936/1149/29 940/1156/29 939/1150/29 +f 935/1152/31 933/2229/31 938/1153/31 +f 936/1149/167 935/2230/167 937/1155/167 +f 943/1144/168 944/2227/168 941/1157/168 +f 937/1154/169 938/1153/169 942/1159/169 +f 937/1155/170 941/2231/170 944/1161/170 +f 938/1147/171 939/2228/171 943/1162/171 +f 951/1164/172 952/1177/172 956/1165/172 +f 945/1167/173 946/2232/173 951/1168/173 +f 948/1170/37 952/2233/37 951/1171/37 +f 947/1173/28 945/2234/28 950/1174/28 +f 947/1176/174 949/1185/174 952/1177/174 +f 954/1179/175 955/2235/175 956/1180/175 +f 950/1182/176 954/2236/176 953/1183/176 +f 949/1185/341 953/2237/341 956/1165/341 +f 950/1169/178 951/1168/178 955/1186/178 +f 963/1188/179 964/1202/179 968/1189/179 +f 958/1191/180 963/2238/180 962/1192/180 +f 960/1194/33 964/2239/33 963/1195/33 +f 959/1197/36 957/2240/36 962/1198/36 +f 960/1200/181 959/2241/181 961/1201/181 +f 967/1190/182 968/1189/182 965/1203/182 +f 962/1198/183 966/2242/183 965/1205/183 +f 961/1201/184 965/1203/184 968/1189/184 +f 962/1192/185 963/2238/185 967/1206/185 +f 975/1208/186 976/2243/186 980/1209/186 +f 970/1211/187 975/2244/187 974/1212/187 +f 972/1214/27 976/2243/27 975/1208/27 +f 969/1216/30 974/2245/30 973/1217/30 +f 972/1219/188 971/2246/188 973/1220/188 +f 979/1222/189 980/1228/189 977/1223/189 +f 973/1217/190 974/2245/190 978/1225/190 +f 973/1227/191 977/1223/191 980/1228/191 +f 974/1212/192 975/2244/192 979/1230/192 +f 988/1232/193 992/1246/193 991/1233/193 +f 982/1235/194 987/2247/194 986/1236/194 +f 982/1238/35 984/2248/35 988/1232/35 +f 983/1239/38 981/2249/38 986/1240/38 +f 983/1242/195 985/2250/195 988/1243/195 +f 990/1245/196 991/1233/196 992/1246/196 +f 985/1241/197 986/1240/197 990/1248/197 +f 985/1250/198 989/2251/198 992/1251/198 +f 986/1236/199 987/2247/199 991/1253/199 +f 999/1255/200 1000/1273/200 1004/1256/200 +f 993/1258/201 994/2252/201 999/1259/201 +f 996/1261/32 1000/1268/32 999/1262/32 +f 995/1264/34 993/2253/34 998/1265/34 +f 995/1267/202 997/2254/202 1000/1268/202 +f 1003/1257/203 1004/1256/203 1001/1269/203 +f 998/1265/204 1002/2255/204 1001/1271/204 +f 997/1272/205 1001/1269/205 1004/1256/205 +f 998/1260/206 999/1259/206 1003/1274/206 +f 1012/1276/207 1016/1294/207 1015/1277/207 +f 1006/1279/208 1011/2256/208 1010/1280/208 +f 1008/1282/31 1012/2257/31 1011/1283/31 +f 1007/1285/29 1005/2258/29 1010/1286/29 +f 1008/1288/209 1007/1285/209 1009/1287/209 +f 1015/1277/210 1016/1294/210 1013/1290/210 +f 1010/1286/211 1014/2259/211 1013/1292/211 +f 1009/1293/212 1013/1290/212 1016/1294/212 +f 1010/1280/213 1011/2256/213 1015/1295/213 +f 1023/1297/214 1024/1319/214 1028/1298/214 +f 1018/1300/215 1023/2260/215 1022/1301/215 +f 1020/1303/28 1024/2261/28 1023/1304/28 +f 1019/1306/37 1017/2262/37 1022/1307/37 +f 1019/1309/216 1021/2263/216 1024/1310/216 +f 1027/1312/217 1028/2264/217 1025/1313/217 +f 1022/1315/218 1026/2265/218 1025/1316/218 +f 1021/1318/219 1025/2266/219 1028/1298/219 +f 1022/1301/220 1023/2260/220 1027/1320/220 +f 1036/1322/221 1040/1341/221 1039/1323/221 +f 1030/1325/222 1035/2267/222 1034/1326/222 +f 1032/1328/36 1036/2268/36 1035/1329/36 +f 1031/1331/33 1029/2269/33 1034/1332/33 +f 1031/1334/223 1033/2270/223 1036/1335/223 +f 1039/1323/224 1040/1341/224 1037/1337/224 +f 1034/1332/225 1038/2271/225 1037/1339/225 +f 1033/1340/226 1037/1337/226 1040/1341/226 +f 1034/1326/227 1035/2267/227 1039/1342/227 +f 1047/1344/228 1048/1358/228 1052/1345/228 +f 1042/1347/229 1047/2272/229 1046/1348/229 +f 1044/1350/14 1048/2273/14 1047/1351/14 +f 1043/1353/12 1041/2274/12 1046/1354/12 +f 1044/1356/230 1043/2275/230 1045/1357/230 +f 1051/1346/231 1052/1345/231 1049/1359/231 +f 1045/1355/232 1046/1354/232 1050/1361/232 +f 1045/1357/233 1049/1359/233 1052/1345/233 +f 1046/1348/234 1047/2272/234 1051/1363/234 +f 1059/1365/235 1060/1383/235 1064/1366/235 +f 1054/1368/236 1059/2276/236 1058/1369/236 +f 1056/1371/1 1060/2277/1 1059/1372/1 +f 1055/1374/2 1053/2278/2 1058/1375/2 +f 1055/1374/237 1057/1376/237 1060/1377/237 +f 1063/1367/238 1064/1366/238 1061/1379/238 +f 1058/1375/239 1062/2279/239 1061/1381/239 +f 1057/1382/240 1061/1379/240 1064/1366/240 +f 1058/1369/241 1059/2276/241 1063/1384/241 +f 1072/1386/242 1076/1404/242 1075/1387/242 +f 1066/1389/243 1071/2280/243 1070/1390/243 +f 1068/1392/2 1072/1399/2 1071/1393/2 +f 1067/1395/1 1065/2281/1 1070/1396/1 +f 1068/1392/244 1067/2282/244 1069/1398/244 +f 1075/1387/245 1076/1404/245 1073/1400/245 +f 1070/1396/246 1074/2283/246 1073/1402/246 +f 1069/1403/247 1073/1400/247 1076/1404/247 +f 1070/1390/248 1071/2280/248 1075/1405/248 +f 1083/1407/249 1084/2284/249 1088/1408/249 +f 1077/1410/250 1078/2285/250 1083/1411/250 +f 1080/1413/38 1084/2284/38 1083/1407/38 +f 1079/1415/35 1077/2286/35 1082/1416/35 +f 1079/1418/251 1081/1425/251 1084/1419/251 +f 1087/1409/252 1088/1408/252 1085/1421/252 +f 1081/1417/253 1082/1416/253 1086/1423/253 +f 1081/1425/254 1085/2287/254 1088/1426/254 +f 1082/1412/255 1083/1411/255 1087/1427/255 +f 1095/1429/256 1096/2288/256 1100/1430/256 +f 1090/1432/257 1095/2289/257 1094/1433/257 +f 1092/1435/35 1096/2288/35 1095/1429/35 +f 1091/1437/38 1089/2290/38 1094/1438/38 +f 1091/1440/258 1093/1446/258 1096/1441/258 +f 1098/1443/259 1099/1431/259 1100/1430/259 +f 1094/1438/260 1098/2291/260 1097/1445/260 +f 1093/1446/261 1097/2292/261 1100/1447/261 +f 1094/1433/262 1095/2289/262 1099/1448/262 +f 1108/1450/263 1112/1471/263 1111/1451/263 +f 1101/1453/264 1102/2293/264 1107/1454/264 +f 1104/1456/28 1108/2294/28 1107/1457/28 +f 1101/1459/37 1106/2295/37 1105/1460/37 +f 1103/1462/265 1105/1470/265 1108/1450/265 +f 1111/1464/266 1112/2296/266 1109/1465/266 +f 1105/1467/267 1106/2297/267 1110/1468/267 +f 1105/1470/268 1109/2298/268 1112/1471/268 +f 1106/1455/269 1107/1454/269 1111/1472/269 +f 1119/1474/270 1120/2299/270 1124/1475/270 +f 1113/1477/271 1114/2300/271 1119/1474/271 +f 1116/1479/37 1120/2301/37 1119/1480/37 +f 1115/1482/28 1113/2302/28 1118/1483/28 +f 1116/1485/272 1115/2303/272 1117/1486/272 +f 1123/1488/273 1124/2304/273 1121/1489/273 +f 1117/1491/274 1118/2305/274 1122/1492/274 +f 1117/1486/275 1121/2306/275 1124/1494/275 +f 1118/1478/276 1119/1474/276 1123/1476/276 +f 1132/1496/277 1136/1515/277 1135/1497/277 +f 1126/1499/278 1131/2307/278 1130/1500/278 +f 1128/1502/14 1132/2308/14 1131/1503/14 +f 1125/1505/12 1130/2309/12 1129/1506/12 +f 1127/1508/279 1129/1514/279 1132/1496/279 +f 1135/1497/280 1136/1515/280 1133/1510/280 +f 1129/1506/281 1130/2309/281 1134/1512/281 +f 1129/1514/282 1133/1510/282 1136/1515/282 +f 1130/1500/283 1131/2307/283 1135/1516/283 +f 1143/1518/284 1144/1538/284 1148/1519/284 +f 1138/1521/285 1143/2310/285 1142/1522/285 +f 1138/1524/131 1140/2311/131 1144/1525/131 +f 1137/1527/133 1142/2312/133 1141/1528/133 +f 1139/1529/286 1141/1528/286 1144/1530/286 +f 1147/1520/287 1148/1519/287 1145/1532/287 +f 1142/1534/288 1146/2313/288 1145/1535/288 +f 1141/1537/289 1145/1532/289 1148/1519/289 +f 1142/1522/290 1143/2310/290 1147/1539/290 +f 1156/1541/291 1160/1561/291 1159/1542/291 +f 1150/1544/292 1155/2314/292 1154/1545/292 +f 1152/1547/133 1156/2315/133 1155/1548/133 +f 1151/1550/131 1149/2316/131 1154/1551/131 +f 1152/1553/293 1151/1550/293 1153/1552/293 +f 1159/1542/294 1160/1561/294 1157/1555/294 +f 1154/1557/295 1158/2317/295 1157/1558/295 +f 1153/1560/296 1157/1555/296 1160/1561/296 +f 1154/1545/297 1155/2314/297 1159/1562/297 +f 1168/1564/298 1172/2318/298 1171/1565/298 +f 1162/1567/299 1167/2319/299 1166/1568/299 +f 1164/1570/119 1168/1564/119 1167/1566/119 +f 1161/1572/114 1166/1579/114 1165/1573/114 +f 1164/1570/300 1163/2320/300 1165/1575/300 +f 1171/1576/301 1172/1582/301 1169/1577/301 +f 1166/1579/302 1170/2321/302 1169/1580/302 +f 1165/1581/303 1169/1577/303 1172/1582/303 +f 1166/1568/304 1167/2319/304 1171/1584/304 +f 1179/1586/305 1180/2322/305 1184/1587/305 +f 1174/1589/306 1179/1586/306 1178/1590/306 +f 1176/1592/114 1180/1599/114 1179/1593/114 +f 1175/1595/119 1173/2323/119 1178/1596/119 +f 1176/1592/307 1175/2324/307 1177/1598/307 +f 1183/1600/308 1184/1605/308 1181/1601/308 +f 1178/1596/309 1182/2325/309 1181/1603/309 +f 1177/1604/310 1181/1601/310 1184/1605/310 +f 1178/1590/311 1179/1586/311 1183/1588/311 +f 1200/1608/23 1199/2326/23 1191/1609/23 +f 1198/1611/22 1197/2327/22 1189/1612/22 +f 1196/1614/21 1195/2328/21 1187/1615/21 +f 1194/1617/24 1193/2329/24 1185/1618/24 +f 1185/1618/19 1193/2329/19 1200/1620/19 +f 1191/1609/20 1199/2326/20 1198/1622/20 +f 1189/1612/17 1197/2327/17 1196/1624/17 +f 1187/1615/18 1195/2328/18 1194/1626/18 +f 1194/1640/11 1196/2330/11 1198/1641/11 +f 675/695/316 674/697/316 1206/1643/316 +f 671/700/317 1203/1660/317 1204/1645/317 +f 678/692/318 1210/1661/318 1211/1646/318 +f 675/1647/319 1207/2331/319 1208/1648/319 +f 673/705/320 672/698/320 1204/1645/320 +f 679/701/321 1211/1646/321 1212/1651/321 +f 669/686/322 1201/2332/322 1202/1653/322 +f 677/694/323 676/1649/323 1208/1648/323 +f 673/705/324 1205/1650/324 1206/1655/324 +f 680/1652/325 1212/1651/325 1201/1657/325 +f 670/1659/326 1202/2333/326 1203/1660/326 +f 677/694/327 1209/1654/327 1210/1661/327 +f 1203/1663/13 1202/2334/13 1211/1646/13 +f 1202/2334/13 1201/1657/13 1211/1646/13 +f 1201/1657/13 1212/1651/13 1211/1646/13 +f 1211/1646/13 1210/1661/13 1209/1654/13 +f 1209/1654/13 1208/1648/13 1207/2331/13 +f 1207/2331/13 1206/2335/13 1205/1662/13 +f 1205/1662/13 1204/2336/13 1203/1663/13 +f 1211/1646/13 1209/1654/13 1207/2331/13 +f 1207/2331/13 1205/1662/13 1211/1646/13 +f 1215/1664/12 1216/2337/12 1214/1665/12 +f 1219/1667/11 1223/2338/11 1222/1668/11 +f 1215/1670/13 1217/2339/13 1220/1671/13 +f 1214/1673/11 1219/1667/11 1218/1669/11 +f 1216/1672/2 1220/1671/2 1219/1675/2 +f 1213/1677/1 1218/1685/1 1217/1678/1 +f 1223/1680/14 1224/1688/14 1221/1681/14 +f 1219/1675/2 1220/1671/2 1224/1683/2 +f 1218/1685/1 1222/2340/1 1221/1686/1 +f 1217/1687/328 1221/1681/328 1224/1688/328 +f 1227/1690/12 1228/2341/12 1226/1691/12 +f 1231/1693/14 1232/2342/14 1229/1694/14 +f 1227/1696/13 1229/2343/13 1232/1697/13 +f 1226/1699/11 1231/2344/11 1230/1700/11 +f 1228/1698/2 1232/1697/2 1231/1702/2 +f 1225/1704/1 1230/2345/1 1229/1705/1 +f 1235/1707/12 1236/2346/12 1234/1708/12 +f 1239/1710/14 1240/2347/14 1237/1711/14 +f 1236/1713/2 1240/1720/2 1239/1714/2 +f 1233/1716/1 1238/2348/1 1237/1717/1 +f 1235/1719/13 1237/2349/13 1240/1720/13 +f 1234/1721/11 1239/2350/11 1238/1722/11 +f 1256/1724/13 1253/2351/13 1251/1725/13 +f 1254/1727/11 1255/2352/11 1250/1728/11 +f 1248/1730/13 1245/2353/13 1243/1731/13 +f 1246/1733/11 1247/2354/11 1242/1734/11 +f 1247/1736/2 1248/1730/2 1244/1732/2 +f 1245/1738/1 1246/2355/1 1241/1739/1 +f 1255/1741/2 1256/1724/2 1252/1726/2 +f 1253/1743/1 1254/2356/1 1249/1744/1 +f 1289/1746/11 1294/1805/11 1454/1747/11 +f 1292/1749/13 1296/1803/13 1450/1750/13 +f 1259/1752/13 1263/2357/13 1264/1753/13 +f 1258/1755/11 1262/2358/11 1261/1756/11 +f 1260/1754/2 1264/1753/2 1262/1758/2 +f 1257/1760/1 1261/2359/1 1263/1761/1 +f 1267/1763/13 1271/2360/13 1272/1764/13 +f 1266/1766/11 1270/2361/11 1269/1767/11 +f 1268/1765/2 1272/1764/2 1270/1769/2 +f 1265/1771/1 1269/2362/1 1271/1772/1 +f 1295/1774/14 1296/1925/14 1293/1775/14 +f 1291/1777/12 1292/1926/12 1290/1778/12 +f 1275/1780/13 1279/2363/13 1280/1781/13 +f 1274/1783/11 1278/2364/11 1277/1784/11 +f 1276/1782/2 1280/1781/2 1278/1786/2 +f 1273/1788/1 1277/2365/1 1279/1789/1 +f 1283/1791/13 1287/2366/13 1288/1792/13 +f 1282/1794/11 1286/2367/11 1285/1795/11 +f 1284/1793/2 1288/1792/2 1286/1797/2 +f 1281/1799/1 1285/2368/1 1287/1800/1 +f 1291/1802/13 1293/1936/13 1296/1803/13 +f 1290/1804/11 1295/1929/11 1294/1805/11 +f 1299/1806/12 1300/2369/12 1298/1807/12 +f 1303/1809/14 1304/2370/14 1301/1810/14 +f 1299/1812/13 1301/2371/13 1304/1813/13 +f 1298/1815/11 1303/2372/11 1302/1816/11 +f 1300/1814/2 1304/1813/2 1303/1818/2 +f 1297/1820/1 1302/2373/1 1301/1821/1 +f 1324/1823/11 1315/2374/11 1314/1824/11 +f 1322/1828/2 1325/2375/2 1326/1839/2 +f 1326/1839/2 1327/2376/2 1328/1826/2 +f 1328/1826/2 1323/2377/2 1324/1827/2 +f 1324/1827/2 1321/2378/2 1322/1828/2 +f 1322/1828/2 1326/1839/2 1328/1826/2 +f 1310/1829/12 1309/2379/12 1311/1830/12 +f 1319/1832/14 1316/1848/14 1323/1833/14 +f 1318/1837/1 1313/2380/1 1314/2381/1 +f 1314/2381/1 1315/2382/1 1316/1835/1 +f 1316/1835/1 1319/2383/1 1320/1836/1 +f 1320/1836/1 1317/2384/1 1318/1837/1 +f 1318/1837/1 1314/2381/1 1316/1835/1 +f 1320/1838/13 1327/2376/13 1326/1839/13 +f 1318/1841/15 1317/2385/15 1326/1842/15 +f 1328/1834/329 1327/2386/329 1320/1844/329 +f 1322/1845/16 1321/2387/16 1314/1846/16 +f 1316/1848/330 1315/2388/330 1324/1849/330 +f 1325/1843/12 1322/1845/12 1313/1847/12 +f 1305/1850/14 1306/2389/14 1308/1851/14 +f 1311/1853/11 1305/2390/11 1307/1854/11 +f 1312/1856/1 1307/2391/1 1308/1857/1 +f 1309/1859/2 1306/1863/2 1305/1860/2 +f 1310/1862/13 1308/2392/13 1306/1863/13 +f 1332/1864/329 1340/2393/329 1337/1865/329 +f 1335/1867/11 1336/2394/11 1333/1868/11 +f 1331/1866/14 1333/2395/14 1336/1870/14 +f 1330/1871/12 1335/2396/12 1334/1872/12 +f 1332/1874/2 1336/2397/2 1335/1875/2 +f 1329/1877/1 1334/2398/1 1333/1878/1 +f 1337/1880/13 1340/1884/13 1339/1881/13 +f 1329/1873/15 1338/2399/15 1339/1883/15 +f 1330/1876/331 1339/1881/331 1340/1884/331 +f 1331/1879/332 1337/2400/332 1338/1885/332 +f 1347/1886/11 1348/2401/11 1345/1887/11 +f 1341/1889/14 1345/2402/14 1348/1890/14 +f 1343/1892/12 1347/2403/12 1346/1893/12 +f 1344/1895/2 1348/2404/2 1347/1896/2 +f 1342/1898/1 1346/2405/1 1345/1899/1 +f 1356/1901/333 1354/2406/333 1350/1902/333 +f 1353/1904/334 1355/2407/334 1351/1905/334 +f 1351/1907/13 1355/2408/13 1356/1901/13 +f 1354/1908/11 1353/2409/11 1349/1909/11 +f 1364/1911/335 1362/2410/335 1358/1912/335 +f 1361/1914/336 1363/2411/336 1359/1915/336 +f 1363/1917/13 1364/1911/13 1360/1913/13 +f 1358/1919/11 1362/2412/11 1361/1920/11 +f 1448/1751/2 1450/1750/2 1449/1922/2 +f 1295/1774/337 1449/2413/337 1450/1924/337 +f 1292/1926/338 1448/2414/338 1447/1927/338 +f 1290/1804/11 1447/2415/11 1449/1928/11 +f 1452/1930/1 1454/2416/1 1453/1931/1 +f 1293/1775/339 1453/2417/339 1454/1933/339 +f 1289/1779/340 1452/2418/340 1451/1934/340 +f 1291/1802/13 1451/2419/13 1453/1935/13 +f 1496/1938/14 1495/2420/14 1499/1939/14 +f 1495/2420/14 1497/2421/14 1499/1939/14 +f 1497/2421/14 1498/2422/14 1499/1939/14 +f 1499/1939/14 1500/2423/14 1501/2424/14 +f 1501/2424/14 1502/1937/14 1499/1939/14 +f 1488/1942/14 1487/2425/14 1489/2426/14 +f 1489/2426/14 1490/2427/14 1491/1940/14 +f 1491/1940/14 1492/2428/14 1493/1941/14 +f 1493/1941/14 1494/2429/14 1488/1942/14 +f 1488/1942/14 1489/2426/14 1491/1940/14 +s 1 +f 364/2430/15 371/2431/342 363/2432/12 +f 362/2433/16 369/2434/343 361/2435/11 +f 360/2436/330 367/2437/344 359/2438/14 +f 358/2439/329 365/2440/345 357/2441/13 +f 357/2441/13 372/2442/346 364/2443/15 +f 363/2432/12 370/2444/347 362/2445/16 +f 361/2435/11 368/2446/348 360/2447/330 +f 359/2438/14 366/2448/349 358/2449/329 +f 365/2440/345 379/2450/350 372/2442/346 +f 370/2444/347 378/2451/351 377/2452/352 +f 367/2437/344 374/2453/353 366/2448/349 +f 371/2431/342 379/2454/350 378/2451/351 +f 368/2455/348 375/2456/354 367/2437/344 +f 365/2440/345 374/2457/353 373/2458/331 +f 379/2454/350 385/2459/355 378/2451/351 +f 375/2456/354 383/2460/356 382/2461/357 +f 374/2457/353 380/2462/358 373/2458/331 +f 379/2450/350 380/2462/358 386/2463/359 +f 378/2451/351 384/2464/360 377/2452/352 +f 374/2453/353 382/2461/357 381/2465/361 +f 368/2446/348 369/2434/343 376/2466/362 +f 376/2467/362 369/2468/343 383/2469/356 +f 370/2470/347 377/2471/352 369/2434/343 +f 377/2472/352 384/2473/360 369/2468/343 +f 383/2460/356 390/2474/329 382/2461/357 +f 381/2475/361 388/2476/363 380/2462/358 +f 384/2473/360 387/2477/364 369/2468/343 +f 380/2462/358 394/2478/365 386/2463/359 +f 369/2468/343 391/2479/366 383/2469/356 +f 385/2459/355 392/2480/367 384/2464/360 +f 382/2461/357 389/2481/368 381/2465/361 +f 386/2482/359 393/2483/369 385/2459/355 +f 392/2484/367 395/2485/370 387/2477/364 +f 394/2478/365 396/2486/371 401/2487/372 +f 393/2483/369 399/2488/373 392/2480/367 +f 387/2477/364 398/2489/374 391/2479/366 +f 394/2490/365 400/2491/16 393/2483/369 +f 388/2476/363 397/2492/375 396/2486/371 +f 401/2493/372 407/2494/376 400/2495/16 +f 397/2492/375 403/2496/377 396/2486/371 +f 395/2485/370 406/2497/378 402/2498/379 +f 396/2499/371 408/2500/380 401/2493/372 +f 399/2501/373 407/2494/376 406/2502/378 +f 395/2485/370 405/2503/381 398/2489/374 +f 391/2504/366 398/2505/374 390/2474/329 +f 398/2489/374 405/2503/381 390/2506/329 +f 389/2481/368 390/2474/329 397/2507/375 +f 397/2492/375 390/2508/329 404/2509/382 +f 403/2496/377 412/2510/383 411/2511/384 +f 390/2508/329 412/2510/383 404/2509/382 +f 406/2497/378 410/2512/1 402/2498/379 +f 390/2506/329 413/2513/385 409/2514/386 +f 403/2515/377 416/2516/387 408/2500/380 +f 406/2502/378 415/2517/388 414/2518/389 +f 402/2498/379 413/2513/385 405/2503/381 +f 408/2500/380 415/2517/388 407/2494/376 +f 416/2519/387 418/2520/35 423/2521/390 +f 414/2518/389 422/2522/391 421/2523/392 +f 413/2513/385 417/2524/393 409/2514/386 +f 415/2517/388 423/2525/390 422/2522/391 +f 412/2510/383 418/2526/35 411/2511/384 +f 409/2527/386 419/2528/394 412/2510/383 +f 419/2529/394 425/2530/19 418/2520/35 +f 419/2528/394 424/2531/395 426/2532/396 +f 423/2521/390 425/2530/19 430/2533/397 +f 421/2523/392 429/2534/398 428/2535/399 +f 420/2536/400 424/2531/395 417/2537/393 +f 422/2522/391 430/2538/397 429/2534/398 +f 438/2539/15 445/2540/342 437/2541/12 +f 436/2542/16 443/2543/343 435/2544/11 +f 434/2545/330 441/2546/344 433/2547/14 +f 432/2548/329 439/2549/345 431/2550/13 +f 431/2550/13 446/2551/346 438/2552/15 +f 437/2541/12 444/2553/347 436/2554/16 +f 435/2544/11 442/2555/348 434/2556/330 +f 433/2547/14 440/2557/349 432/2558/329 +f 439/2549/345 453/2559/350 446/2551/346 +f 444/2553/347 452/2560/351 451/2561/352 +f 441/2546/344 448/2562/353 440/2557/349 +f 445/2540/342 453/2563/350 452/2560/351 +f 442/2564/348 449/2565/354 441/2546/344 +f 440/2566/349 447/2567/331 439/2549/345 +f 453/2563/350 459/2568/355 452/2560/351 +f 449/2565/354 457/2569/356 456/2570/357 +f 448/2571/353 454/2572/358 447/2567/331 +f 447/2567/331 460/2573/359 453/2559/350 +f 452/2560/351 458/2574/360 451/2561/352 +f 448/2562/353 456/2570/357 455/2575/361 +f 442/2555/348 443/2543/343 450/2576/362 +f 450/2577/362 443/2578/343 457/2579/356 +f 444/2580/347 451/2581/352 443/2543/343 +f 451/2582/352 458/2583/360 443/2578/343 +f 457/2569/356 464/2584/329 456/2570/357 +f 455/2585/361 462/2586/363 454/2572/358 +f 458/2583/360 461/2587/364 443/2578/343 +f 454/2572/358 468/2588/365 460/2573/359 +f 443/2578/343 465/2589/366 457/2579/356 +f 459/2568/355 466/2590/367 458/2574/360 +f 456/2570/357 463/2591/368 455/2575/361 +f 460/2592/359 467/2593/369 459/2568/355 +f 466/2594/367 469/2595/370 461/2587/364 +f 468/2588/365 470/2596/371 475/2597/372 +f 466/2590/367 474/2598/16 473/2599/373 +f 461/2587/364 472/2600/374 465/2589/366 +f 468/2601/365 474/2598/16 467/2593/369 +f 462/2586/363 471/2602/375 470/2596/371 +f 475/2603/372 481/2604/376 474/2605/16 +f 470/2596/371 478/2606/382 477/2607/377 +f 469/2595/370 480/2608/378 476/2609/379 +f 470/2610/371 482/2611/380 475/2603/372 +f 473/2612/373 481/2604/376 480/2613/378 +f 469/2595/370 479/2614/381 472/2600/374 +f 465/2615/366 472/2616/374 464/2584/329 +f 472/2600/374 479/2614/381 464/2617/329 +f 463/2591/368 464/2584/329 471/2618/375 +f 471/2602/375 464/2619/329 478/2606/382 +f 477/2607/377 486/2620/383 485/2621/384 +f 464/2619/329 486/2620/383 478/2606/382 +f 476/2609/379 488/2622/401 484/2623/1 +f 479/2614/381 483/2624/386 464/2617/329 +f 477/2625/377 490/2626/387 482/2611/380 +f 480/2613/378 489/2627/388 488/2628/401 +f 476/2609/379 487/2629/402 479/2614/381 +f 482/2611/380 489/2627/388 481/2604/376 +f 490/2630/387 492/2631/35 497/2632/390 +f 488/2628/401 496/2633/391 495/2634/392 +f 487/2629/402 491/2635/393 483/2624/386 +f 489/2627/388 497/2636/390 496/2633/391 +f 486/2620/383 492/2637/35 485/2621/384 +f 483/2638/386 493/2639/394 486/2620/383 +f 493/2640/394 499/2641/19 492/2631/35 +f 491/2642/393 500/2643/396 493/2639/394 +f 497/2632/390 499/2641/19 504/2644/397 +f 496/2633/391 502/2645/399 495/2634/392 +f 491/2642/393 501/2646/403 498/2647/395 +f 496/2633/391 504/2648/397 503/2649/398 +f 527/2650/404 520/2651/15 519/2652/12 +f 525/2653/405 518/2654/16 517/2655/11 +f 523/2656/406 516/2657/330 515/2658/14 +f 521/2659/407 514/2660/329 513/2661/13 +f 528/2662/408 513/2661/13 520/2663/15 +f 526/2664/409 519/2652/12 518/2665/16 +f 524/2666/410 517/2655/11 516/2667/330 +f 522/2668/411 515/2658/14 514/2669/329 +f 535/2670/412 521/2671/407 528/2672/408 +f 526/2664/409 534/2673/413 527/2650/404 +f 530/2674/414 523/2656/406 522/2668/411 +f 527/2650/404 535/2675/412 528/2676/408 +f 531/2677/415 524/2678/410 523/2656/406 +f 529/2679/332 522/2680/411 521/2671/407 +f 541/2681/416 535/2675/412 534/2673/413 +f 531/2677/415 539/2682/417 532/2683/418 +f 536/2684/419 530/2685/414 529/2679/332 +f 535/2670/412 536/2684/419 529/2679/332 +f 540/2686/420 534/2673/413 533/2687/421 +f 530/2674/414 538/2688/422 531/2677/415 +f 524/2666/410 532/2689/418 525/2653/405 +f 532/2683/418 539/2682/417 525/2690/405 +f 526/2691/409 525/2653/405 533/2692/421 +f 533/2687/421 525/2693/405 540/2686/420 +f 546/2694/329 539/2682/417 538/2688/422 +f 544/2695/364 537/2696/423 536/2684/419 +f 543/2697/363 540/2698/420 525/2699/405 +f 550/2700/367 536/2684/419 542/2701/424 +f 547/2702/368 525/2699/405 539/2703/417 +f 548/2704/365 541/2681/416 540/2686/420 +f 545/2705/366 538/2688/422 537/2706/423 +f 549/2707/369 542/2708/424 541/2681/416 +f 551/2709/371 548/2710/365 543/2697/363 +f 550/2700/367 552/2711/370 544/2695/364 +f 555/2712/372 549/2707/369 548/2704/365 +f 554/2713/375 543/2697/363 547/2702/368 +f 556/2714/16 550/2715/367 549/2707/369 +f 544/2695/364 553/2716/374 545/2717/366 +f 563/2718/376 557/2719/373 556/2720/16 +f 559/2721/379 553/2716/374 552/2711/370 +f 551/2722/371 562/2723/380 555/2724/372 +f 564/2725/378 552/2711/370 557/2726/373 +f 555/2724/372 563/2718/376 556/2720/16 +f 554/2713/375 558/2727/377 551/2709/371 +f 547/2728/368 546/2694/329 554/2729/375 +f 554/2713/375 546/2730/329 561/2731/382 +f 545/2705/366 553/2732/374 546/2694/329 +f 553/2716/374 560/2733/381 546/2734/329 +f 559/2721/379 568/2735/425 560/2733/381 +f 568/2735/425 546/2734/329 560/2733/381 +f 566/2736/2 562/2723/380 558/2737/377 +f 546/2730/329 569/2738/426 561/2731/382 +f 572/2739/427 559/2721/379 564/2725/378 +f 562/2723/380 571/2740/428 563/2718/376 +f 569/2738/426 558/2727/377 561/2731/382 +f 571/2740/428 564/2741/378 563/2718/376 +f 572/2739/427 574/2742/28 567/2743/429 +f 570/2744/430 578/2745/431 571/2740/428 +f 573/2746/432 569/2738/426 565/2747/433 +f 571/2740/428 579/2748/434 572/2749/427 +f 574/2742/28 568/2735/425 567/2743/429 +f 575/2750/435 565/2751/433 568/2735/425 +f 574/2752/28 582/2753/436 575/2754/435 +f 582/2755/436 573/2746/432 575/2756/435 +f 586/2757/437 574/2752/28 579/2758/434 +f 577/2759/438 585/2760/439 578/2745/431 +f 580/2761/440 576/2762/441 573/2746/432 +f 578/2745/431 586/2763/437 579/2748/434 +f 601/2764/404 594/2765/15 593/2766/12 +f 599/2767/405 592/2768/16 591/2769/11 +f 597/2770/406 590/2771/330 589/2772/14 +f 595/2773/407 588/2774/329 587/2775/13 +f 602/2776/408 587/2775/13 594/2777/15 +f 600/2778/409 593/2766/12 592/2779/16 +f 598/2780/410 591/2769/11 590/2781/330 +f 596/2782/411 589/2772/14 588/2783/329 +f 609/2784/412 595/2785/407 602/2786/408 +f 600/2778/409 608/2787/413 601/2764/404 +f 604/2788/414 597/2770/406 596/2782/411 +f 601/2764/404 609/2789/412 602/2790/408 +f 605/2791/415 598/2792/410 597/2770/406 +f 603/2793/332 596/2794/411 595/2785/407 +f 615/2795/416 609/2789/412 608/2787/413 +f 605/2791/415 613/2796/417 606/2797/418 +f 610/2798/419 604/2799/414 603/2793/332 +f 609/2784/412 610/2798/419 603/2793/332 +f 614/2800/420 608/2787/413 607/2801/421 +f 604/2788/414 612/2802/422 605/2791/415 +f 598/2780/410 606/2803/418 599/2767/405 +f 606/2797/418 613/2796/417 599/2804/405 +f 600/2805/409 599/2767/405 607/2806/421 +f 607/2801/421 599/2807/405 614/2800/420 +f 620/2808/329 613/2796/417 612/2802/422 +f 618/2809/364 611/2810/423 610/2798/419 +f 617/2811/363 614/2812/420 599/2813/405 +f 624/2814/367 610/2798/419 616/2815/424 +f 621/2816/368 599/2813/405 613/2817/417 +f 622/2818/365 615/2795/416 614/2800/420 +f 619/2819/366 612/2802/422 611/2820/423 +f 623/2821/369 616/2822/424 615/2795/416 +f 625/2823/371 622/2824/365 617/2811/363 +f 624/2814/367 626/2825/370 618/2809/364 +f 622/2818/365 630/2826/16 623/2821/369 +f 628/2827/375 617/2811/363 621/2816/368 +f 623/2821/369 631/2828/373 624/2829/367 +f 618/2809/364 627/2830/374 619/2831/366 +f 637/2832/376 631/2833/373 630/2834/16 +f 633/2835/379 627/2830/374 626/2825/370 +f 625/2836/371 636/2837/380 629/2838/372 +f 638/2839/378 626/2825/370 631/2840/373 +f 629/2838/372 637/2832/376 630/2834/16 +f 635/2841/382 625/2823/371 628/2827/375 +f 621/2842/368 620/2808/329 628/2843/375 +f 628/2827/375 620/2844/329 635/2841/382 +f 619/2819/366 627/2845/374 620/2808/329 +f 627/2830/374 634/2846/381 620/2847/329 +f 633/2835/379 642/2848/425 634/2846/381 +f 642/2848/425 620/2847/329 634/2846/381 +f 632/2849/377 644/2850/442 636/2837/380 +f 639/2851/433 635/2841/382 620/2844/329 +f 646/2852/427 633/2835/379 638/2839/378 +f 636/2837/380 645/2853/428 637/2832/376 +f 643/2854/443 632/2855/377 635/2841/382 +f 645/2853/428 638/2856/378 637/2832/376 +f 646/2852/427 648/2857/28 641/2858/429 +f 651/2859/438 645/2853/428 644/2850/442 +f 647/2860/432 643/2854/443 639/2851/433 +f 645/2853/428 653/2861/434 646/2862/427 +f 648/2857/28 642/2848/425 641/2858/429 +f 649/2863/435 639/2864/433 642/2848/425 +f 648/2865/28 656/2866/436 649/2867/435 +f 649/2868/435 654/2869/440 647/2860/432 +f 660/2870/437 648/2865/28 653/2871/434 +f 651/2859/438 659/2872/439 652/2873/431 +f 654/2869/440 650/2874/441 647/2860/432 +f 652/2873/431 660/2875/437 653/2861/434 +f 1377/2876/444 1370/2877/16 1369/2878/11 +f 1375/2879/445 1368/2880/330 1367/2881/14 +f 1373/2882/446 1366/2883/329 1365/2884/13 +f 1380/2885/447 1365/2884/13 1372/2886/15 +f 1378/2887/448 1371/2888/12 1370/2889/16 +f 1376/2890/449 1369/2878/11 1368/2891/330 +f 1374/2892/450 1367/2881/14 1366/2893/329 +f 1379/2894/37 1372/2895/15 1371/2888/12 +f 1380/2885/447 1381/2896/432 1373/2882/446 +f 1377/2876/444 1384/2897/434 1385/2898/431 +f 1375/2879/445 1382/2899/435 1383/2900/28 +f 1378/2901/448 1385/2898/431 1386/2902/451 +f 1376/2903/449 1383/2900/28 1384/2904/434 +f 1374/2905/450 1381/2896/432 1382/2906/435 +f 1386/2902/451 1392/2907/428 1393/2908/452 +f 1384/2909/434 1390/2910/429 1391/2911/427 +f 1381/2912/432 1389/2913/425 1382/2914/435 +f 1387/2915/453 1388/2916/433 1381/2896/432 +f 1384/2897/434 1392/2907/428 1385/2898/431 +f 1382/2914/435 1390/2910/429 1383/2917/28 +f 1379/2894/37 1387/2918/453 1380/2919/447 +f 1387/2915/453 1379/2920/37 1394/2921/454 +f 1378/2887/448 1386/2922/451 1379/2894/37 +f 1386/2922/451 1393/2923/452 1379/2894/37 +f 1390/2910/429 1399/2924/455 1391/2911/427 +f 1388/2925/433 1397/2926/456 1389/2913/425 +f 1393/2908/452 1395/2927/457 1379/2928/37 +f 1394/2921/454 1396/2929/458 1388/2916/433 +f 1379/2920/37 1402/2930/459 1394/2921/454 +f 1391/2931/427 1400/2932/330 1392/2907/428 +f 1389/2913/425 1398/2933/460 1390/2910/429 +f 1392/2907/428 1401/2934/461 1393/2908/452 +f 1395/2927/457 1408/2935/462 1403/2936/463 +f 1402/2930/459 1404/2937/15 1396/2929/458 +f 1397/2926/456 1406/2938/464 1398/2933/460 +f 1395/2939/457 1409/2940/465 1402/2930/459 +f 1398/2933/460 1407/2941/466 1399/2924/455 +f 1396/2942/458 1405/2943/467 1397/2926/456 +f 1407/2941/466 1413/2944/468 1414/2945/469 +f 1405/2946/467 1411/2947/470 1412/2948/471 +f 1403/2949/463 1415/2950/472 1410/2951/473 +f 1409/2952/465 1411/2947/470 1404/2953/15 +f 1406/2938/464 1412/2954/471 1413/2944/468 +f 1403/2949/463 1416/2955/474 1409/2940/465 +f 1399/2956/455 1407/2957/466 1400/2932/330 +f 1407/2958/466 1414/2959/469 1400/2960/330 +f 1400/2932/330 1408/2935/462 1401/2934/461 +f 1408/2961/462 1400/2960/330 1415/2962/472 +f 1411/2947/470 1420/2963/475 1412/2948/471 +f 1400/2960/330 1423/2964/476 1415/2962/472 +f 1415/2950/472 1418/2965/331 1410/2951/473 +f 1414/2959/469 1417/2966/477 1400/2960/330 +f 1416/2967/474 1419/2968/478 1411/2947/470 +f 1412/2954/471 1421/2969/479 1413/2944/468 +f 1410/2951/473 1424/2970/480 1416/2955/474 +f 1413/2944/468 1422/2971/481 1414/2945/469 +f 1424/2972/480 1426/2973/482 1419/2968/478 +f 1420/2974/475 1428/2975/343 1421/2969/479 +f 1422/2976/481 1425/2977/483 1417/2966/477 +f 1421/2969/479 1429/2978/484 1422/2971/481 +f 1420/2963/475 1426/2973/482 1427/2979/485 +f 1417/2966/477 1430/2980/486 1423/2964/476 +f 1426/2973/482 1434/2981/487 1427/2979/485 +f 1425/2977/483 1437/2982/488 1430/2980/486 +f 1431/2983/489 1433/2984/490 1426/2973/482 +f 1427/2985/485 1435/2986/491 1428/2987/343 +f 1425/2977/483 1436/2988/492 1432/2989/493 +f 1429/2990/484 1435/2986/491 1436/2991/492 +f 1423/2992/476 1430/2993/486 1418/2965/331 +f 1430/2993/486 1437/2994/488 1418/2965/331 +f 1418/2965/331 1431/2995/489 1424/2970/480 +f 1431/2995/489 1418/2965/331 1438/2996/494 +f 1418/2965/331 1446/2997/15 1438/2996/494 +f 1432/2989/493 1445/2998/329 1437/2982/488 +f 1437/2994/488 1439/2999/13 1418/2965/331 +f 1438/3000/494 1441/3001/12 1433/2984/490 +f 1434/3002/487 1443/3003/11 1435/2986/491 +f 1436/2988/492 1440/3004/14 1432/2989/493 +f 1435/2986/491 1444/3005/330 1436/2991/492 +f 1433/2984/490 1442/3006/16 1434/2981/487 +f 1479/3007/13 1470/3008/331 1463/3009/13 +f 1480/3010/332 1463/3011/13 1464/3012/332 +f 1473/3013/1 1456/3014/332 1457/3015/1 +f 1481/3016/1 1464/3012/332 1465/3017/1 +f 1474/3018/343 1457/3015/1 1458/3019/343 +f 1482/3020/343 1465/3017/1 1466/3021/343 +f 1475/3022/11 1458/3023/343 1459/3024/11 +f 1483/3025/11 1466/3026/343 1467/3027/11 +f 1476/3028/405 1459/3024/11 1460/3029/405 +f 1484/3030/405 1467/3027/11 1468/3031/405 +f 1477/3032/2 1460/3029/405 1461/3033/2 +f 1485/3034/2 1468/3031/405 1469/3035/2 +f 1478/3036/331 1461/3037/2 1462/3038/331 +f 1486/3039/331 1469/3040/2 1470/3008/331 +f 1471/3041/13 1462/3038/331 1455/3042/13 +f 1472/3043/332 1455/3044/13 1456/3014/332 +f 1471/3041/329 1494/3045/495 1478/3036/495 +f 1485/3046/35 1502/1937/495 1501/2424/35 +f 1471/3047/329 1487/2425/496 1488/1942/329 +f 1479/3007/329 1502/3048/495 1486/3039/495 +f 1480/3049/496 1496/1938/329 1479/3050/329 +f 1473/3013/28 1487/3051/496 1472/3043/496 +f 1480/3010/496 1497/3052/28 1495/3053/496 +f 1473/3054/28 1490/2427/497 1489/2426/28 +f 1482/3055/497 1497/2421/28 1481/3056/28 +f 1475/3057/330 1490/2427/497 1474/3058/497 +f 1483/3059/330 1498/2422/497 1482/3055/497 +f 1475/3057/330 1492/2428/498 1491/1940/330 +f 1483/3059/330 1500/2423/498 1499/1939/330 +f 1477/3060/35 1492/2428/498 1476/3061/498 +f 1485/3046/35 1500/2423/498 1484/3062/498 +f 1477/3060/35 1494/2429/495 1493/1941/35 +f 364/2430/15 372/3063/346 371/2431/342 +f 362/2433/16 370/2470/347 369/2434/343 +f 360/2436/330 368/2455/348 367/2437/344 +f 358/2439/329 366/3064/349 365/2440/345 +f 357/2441/13 365/2440/345 372/2442/346 +f 363/2432/12 371/2431/342 370/2444/347 +f 361/2435/11 369/2434/343 368/2446/348 +f 359/2438/14 367/2437/344 366/2448/349 +f 365/2440/345 373/2458/331 379/2450/350 +f 370/2444/347 371/2431/342 378/2451/351 +f 367/2437/344 375/2456/354 374/2453/353 +f 371/2431/342 372/3063/346 379/2454/350 +f 368/2455/348 376/3065/362 375/2456/354 +f 365/2440/345 366/3064/349 374/2457/353 +f 379/2454/350 386/2482/359 385/2459/355 +f 375/2456/354 376/3065/362 383/2460/356 +f 374/2457/353 381/2475/361 380/2462/358 +f 379/2450/350 373/2458/331 380/2462/358 +f 378/2451/351 385/2459/355 384/2464/360 +f 374/2453/353 375/2456/354 382/2461/357 +f 383/2460/356 391/2504/366 390/2474/329 +f 381/2475/361 389/3066/368 388/2476/363 +f 384/2473/360 392/2484/367 387/2477/364 +f 380/2462/358 388/2476/363 394/2478/365 +f 369/2468/343 387/2477/364 391/2479/366 +f 385/2459/355 393/2483/369 392/2480/367 +f 382/2461/357 390/2474/329 389/2481/368 +f 386/2482/359 394/2490/365 393/2483/369 +f 392/2484/367 399/3067/373 395/2485/370 +f 394/2478/365 388/2476/363 396/2486/371 +f 393/2483/369 400/2491/16 399/2488/373 +f 387/2477/364 395/2485/370 398/2489/374 +f 394/2490/365 401/3068/372 400/2491/16 +f 388/2476/363 389/3066/368 397/2492/375 +f 401/2493/372 408/2500/380 407/2494/376 +f 397/2492/375 404/2509/382 403/2496/377 +f 395/2485/370 399/3067/373 406/2497/378 +f 396/2499/371 403/2515/377 408/2500/380 +f 399/2501/373 400/2495/16 407/2494/376 +f 395/2485/370 402/2498/379 405/2503/381 +f 403/2496/377 404/2509/382 412/2510/383 +f 390/2508/329 409/2527/386 412/2510/383 +f 406/2497/378 414/3069/389 410/2512/1 +f 390/2506/329 405/2503/381 413/2513/385 +f 403/2515/377 411/3070/384 416/2516/387 +f 406/2502/378 407/2494/376 415/2517/388 +f 402/2498/379 410/2512/1 413/2513/385 +f 408/2500/380 416/2516/387 415/2517/388 +f 416/2519/387 411/3071/384 418/2520/35 +f 414/2518/389 415/2517/388 422/2522/391 +f 413/2513/385 420/3072/400 417/2524/393 +f 415/2517/388 416/2516/387 423/2525/390 +f 412/2510/383 419/2528/394 418/2526/35 +f 409/2527/386 417/2537/393 419/2528/394 +f 419/2529/394 426/3073/396 425/2530/19 +f 419/2528/394 417/2537/393 424/2531/395 +f 423/2521/390 418/2520/35 425/2530/19 +f 421/2523/392 422/2522/391 429/2534/398 +f 420/2536/400 427/3074/403 424/2531/395 +f 422/2522/391 423/2525/390 430/2538/397 +f 438/2539/15 446/3075/346 445/2540/342 +f 436/2542/16 444/2580/347 443/2543/343 +f 434/2545/330 442/2564/348 441/2546/344 +f 432/2548/329 440/2566/349 439/2549/345 +f 431/2550/13 439/2549/345 446/2551/346 +f 437/2541/12 445/2540/342 444/2553/347 +f 435/2544/11 443/2543/343 442/2555/348 +f 433/2547/14 441/2546/344 440/2557/349 +f 439/2549/345 447/2567/331 453/2559/350 +f 444/2553/347 445/2540/342 452/2560/351 +f 441/2546/344 449/2565/354 448/2562/353 +f 445/2540/342 446/3075/346 453/2563/350 +f 442/2564/348 450/3076/362 449/2565/354 +f 440/2566/349 448/2571/353 447/2567/331 +f 453/2563/350 460/2592/359 459/2568/355 +f 449/2565/354 450/3076/362 457/2569/356 +f 448/2571/353 455/2585/361 454/2572/358 +f 447/2567/331 454/2572/358 460/2573/359 +f 452/2560/351 459/2568/355 458/2574/360 +f 448/2562/353 449/2565/354 456/2570/357 +f 457/2569/356 465/2615/366 464/2584/329 +f 455/2585/361 463/3077/368 462/2586/363 +f 458/2583/360 466/2594/367 461/2587/364 +f 454/2572/358 462/2586/363 468/2588/365 +f 443/2578/343 461/2587/364 465/2589/366 +f 459/2568/355 467/2593/369 466/2590/367 +f 456/2570/357 464/2584/329 463/2591/368 +f 460/2592/359 468/2601/365 467/2593/369 +f 466/2594/367 473/3078/373 469/2595/370 +f 468/2588/365 462/2586/363 470/2596/371 +f 466/2590/367 467/2593/369 474/2598/16 +f 461/2587/364 469/2595/370 472/2600/374 +f 468/2601/365 475/3079/372 474/2598/16 +f 462/2586/363 463/3077/368 471/2602/375 +f 475/2603/372 482/2611/380 481/2604/376 +f 470/2596/371 471/2602/375 478/2606/382 +f 469/2595/370 473/3078/373 480/2608/378 +f 470/2610/371 477/2625/377 482/2611/380 +f 473/2612/373 474/2605/16 481/2604/376 +f 469/2595/370 476/2609/379 479/2614/381 +f 477/2607/377 478/2606/382 486/2620/383 +f 464/2619/329 483/2638/386 486/2620/383 +f 476/2609/379 480/2608/378 488/2622/401 +f 479/2614/381 487/2629/402 483/2624/386 +f 477/2625/377 485/3080/384 490/2626/387 +f 480/2613/378 481/2604/376 489/2627/388 +f 476/2609/379 484/2623/1 487/2629/402 +f 482/2611/380 490/2626/387 489/2627/388 +f 490/2630/387 485/3081/384 492/2631/35 +f 488/2628/401 489/2627/388 496/2633/391 +f 487/2629/402 494/3082/400 491/2635/393 +f 489/2627/388 490/2626/387 497/2636/390 +f 486/2620/383 493/2639/394 492/2637/35 +f 483/2638/386 491/2642/393 493/2639/394 +f 493/2640/394 500/3083/396 499/2641/19 +f 491/2642/393 498/2647/395 500/2643/396 +f 497/2632/390 492/2631/35 499/2641/19 +f 496/2633/391 503/2649/398 502/2645/399 +f 491/2642/393 494/3084/400 501/2646/403 +f 496/2633/391 497/2636/390 504/2648/397 +f 527/2650/404 528/2676/408 520/2651/15 +f 525/2653/405 526/2691/409 518/2654/16 +f 523/2656/406 524/2678/410 516/2657/330 +f 521/2659/407 522/3085/411 514/2660/329 +f 528/2662/408 521/2659/407 513/2661/13 +f 526/2664/409 527/2650/404 519/2652/12 +f 524/2666/410 525/2653/405 517/2655/11 +f 522/2668/411 523/2656/406 515/2658/14 +f 535/2670/412 529/2679/332 521/2671/407 +f 526/2664/409 533/2687/421 534/2673/413 +f 530/2674/414 531/2677/415 523/2656/406 +f 527/2650/404 534/2673/413 535/2675/412 +f 531/2677/415 532/2683/418 524/2678/410 +f 529/2679/332 530/2685/414 522/2680/411 +f 541/2681/416 542/2708/424 535/2675/412 +f 531/2677/415 538/2688/422 539/2682/417 +f 536/2684/419 537/2696/423 530/2685/414 +f 535/2670/412 542/2701/424 536/2684/419 +f 540/2686/420 541/2681/416 534/2673/413 +f 530/2674/414 537/2706/423 538/2688/422 +f 546/2694/329 547/2728/368 539/2682/417 +f 544/2695/364 545/2717/366 537/2696/423 +f 543/2697/363 548/2710/365 540/2698/420 +f 550/2700/367 544/2695/364 536/2684/419 +f 547/2702/368 543/2697/363 525/2699/405 +f 548/2704/365 549/2707/369 541/2681/416 +f 545/2705/366 546/2694/329 538/2688/422 +f 549/2707/369 550/2715/367 542/2708/424 +f 551/2709/371 555/3086/372 548/2710/365 +f 550/2700/367 557/2726/373 552/2711/370 +f 555/2712/372 556/2714/16 549/2707/369 +f 554/2713/375 551/2709/371 543/2697/363 +f 556/2714/16 557/3087/373 550/2715/367 +f 544/2695/364 552/2711/370 553/2716/374 +f 563/2718/376 564/2741/378 557/2719/373 +f 559/2721/379 560/2733/381 553/2716/374 +f 551/2722/371 558/2737/377 562/2723/380 +f 564/2725/378 559/2721/379 552/2711/370 +f 555/2724/372 562/2723/380 563/2718/376 +f 554/2713/375 561/2731/382 558/2727/377 +f 559/2721/379 567/2743/429 568/2735/425 +f 568/2735/425 565/2751/433 546/2734/329 +f 566/2736/2 570/2744/430 562/2723/380 +f 546/2730/329 565/2747/433 569/2738/426 +f 572/2739/427 567/2743/429 559/2721/379 +f 562/2723/380 570/2744/430 571/2740/428 +f 569/2738/426 566/3088/2 558/2727/377 +f 571/2740/428 572/2749/427 564/2741/378 +f 572/2739/427 579/3089/434 574/2742/28 +f 570/2744/430 577/2759/438 578/2745/431 +f 573/2746/432 576/2762/441 569/2738/426 +f 571/2740/428 578/2745/431 579/2748/434 +f 574/2742/28 575/2750/435 568/2735/425 +f 575/2750/435 573/3090/432 565/2751/433 +f 574/2752/28 581/3091/24 582/2753/436 +f 582/2755/436 580/2761/440 573/2746/432 +f 586/2757/437 581/3091/24 574/2752/28 +f 577/2759/438 584/3092/499 585/2760/439 +f 580/2761/440 583/3093/500 576/2762/441 +f 578/2745/431 585/2760/439 586/2763/437 +f 601/2764/404 602/2790/408 594/2765/15 +f 599/2767/405 600/2805/409 592/2768/16 +f 597/2770/406 598/2792/410 590/2771/330 +f 595/2773/407 596/3094/411 588/2774/329 +f 602/2776/408 595/2773/407 587/2775/13 +f 600/2778/409 601/2764/404 593/2766/12 +f 598/2780/410 599/2767/405 591/2769/11 +f 596/2782/411 597/2770/406 589/2772/14 +f 609/2784/412 603/2793/332 595/2785/407 +f 600/2778/409 607/2801/421 608/2787/413 +f 604/2788/414 605/2791/415 597/2770/406 +f 601/2764/404 608/2787/413 609/2789/412 +f 605/2791/415 606/2797/418 598/2792/410 +f 603/2793/332 604/2799/414 596/2794/411 +f 615/2795/416 616/2822/424 609/2789/412 +f 605/2791/415 612/2802/422 613/2796/417 +f 610/2798/419 611/2810/423 604/2799/414 +f 609/2784/412 616/2815/424 610/2798/419 +f 614/2800/420 615/2795/416 608/2787/413 +f 604/2788/414 611/2820/423 612/2802/422 +f 620/2808/329 621/2842/368 613/2796/417 +f 618/2809/364 619/2831/366 611/2810/423 +f 617/2811/363 622/2824/365 614/2812/420 +f 624/2814/367 618/2809/364 610/2798/419 +f 621/2816/368 617/2811/363 599/2813/405 +f 622/2818/365 623/2821/369 615/2795/416 +f 619/2819/366 620/2808/329 612/2802/422 +f 623/2821/369 624/2829/367 616/2822/424 +f 625/2823/371 629/3095/372 622/2824/365 +f 624/2814/367 631/2840/373 626/2825/370 +f 622/2818/365 629/3096/372 630/2826/16 +f 628/2827/375 625/2823/371 617/2811/363 +f 623/2821/369 630/2826/16 631/2828/373 +f 618/2809/364 626/2825/370 627/2830/374 +f 637/2832/376 638/2856/378 631/2833/373 +f 633/2835/379 634/2846/381 627/2830/374 +f 625/2836/371 632/2849/377 636/2837/380 +f 638/2839/378 633/2835/379 626/2825/370 +f 629/2838/372 636/2837/380 637/2832/376 +f 635/2841/382 632/2855/377 625/2823/371 +f 633/2835/379 641/2858/429 642/2848/425 +f 642/2848/425 639/2864/433 620/2847/329 +f 632/2849/377 640/3097/2 644/2850/442 +f 639/2851/433 643/2854/443 635/2841/382 +f 646/2852/427 641/2858/429 633/2835/379 +f 636/2837/380 644/2850/442 645/2853/428 +f 643/2854/443 640/3098/2 632/2855/377 +f 645/2853/428 646/2862/427 638/2856/378 +f 646/2852/427 653/3099/434 648/2857/28 +f 651/2859/438 652/2873/431 645/2853/428 +f 647/2860/432 650/2874/441 643/2854/443 +f 645/2853/428 652/2873/431 653/2861/434 +f 648/2857/28 649/2863/435 642/2848/425 +f 649/2863/435 647/3100/432 639/2864/433 +f 648/2865/28 655/3101/24 656/2866/436 +f 649/2868/435 656/3102/436 654/2869/440 +f 660/2870/437 655/3101/24 648/2865/28 +f 651/2859/438 658/3103/499 659/2872/439 +f 654/2869/440 657/3104/500 650/2874/441 +f 652/2873/431 659/2872/439 660/2875/437 +f 1377/2876/444 1378/2901/448 1370/2877/16 +f 1375/2879/445 1376/2903/449 1368/2880/330 +f 1373/2882/446 1374/2905/450 1366/2883/329 +f 1380/2885/447 1373/2882/446 1365/2884/13 +f 1378/2887/448 1379/2894/37 1371/2888/12 +f 1376/2890/449 1377/2876/444 1369/2878/11 +f 1374/2892/450 1375/2879/445 1367/2881/14 +f 1379/2894/37 1380/2919/447 1372/2895/15 +f 1380/2885/447 1387/2915/453 1381/2896/432 +f 1377/2876/444 1376/2890/449 1384/2897/434 +f 1375/2879/445 1374/2892/450 1382/2899/435 +f 1378/2901/448 1377/2876/444 1385/2898/431 +f 1376/2903/449 1375/2879/445 1383/2900/28 +f 1374/2905/450 1373/2882/446 1381/2896/432 +f 1386/2902/451 1385/2898/431 1392/2907/428 +f 1384/2909/434 1383/2917/28 1390/2910/429 +f 1381/2912/432 1388/2925/433 1389/2913/425 +f 1387/2915/453 1394/2921/454 1388/2916/433 +f 1384/2897/434 1391/2931/427 1392/2907/428 +f 1382/2914/435 1389/2913/425 1390/2910/429 +f 1390/2910/429 1398/2933/460 1399/2924/455 +f 1388/2925/433 1396/2942/458 1397/2926/456 +f 1393/2908/452 1401/2934/461 1395/2927/457 +f 1394/2921/454 1402/2930/459 1396/2929/458 +f 1379/2920/37 1395/2939/457 1402/2930/459 +f 1391/2931/427 1399/2956/455 1400/2932/330 +f 1389/2913/425 1397/2926/456 1398/2933/460 +f 1392/2907/428 1400/2932/330 1401/2934/461 +f 1395/2927/457 1401/2934/461 1408/2935/462 +f 1402/2930/459 1409/2940/465 1404/2937/15 +f 1397/2926/456 1405/2943/467 1406/2938/464 +f 1395/2939/457 1403/2949/463 1409/2940/465 +f 1398/2933/460 1406/2938/464 1407/2941/466 +f 1396/2942/458 1404/3105/15 1405/2943/467 +f 1407/2941/466 1406/2938/464 1413/2944/468 +f 1405/2946/467 1404/2953/15 1411/2947/470 +f 1403/2949/463 1408/3106/462 1415/2950/472 +f 1409/2952/465 1416/2967/474 1411/2947/470 +f 1406/2938/464 1405/2943/467 1412/2954/471 +f 1403/2949/463 1410/2951/473 1416/2955/474 +f 1411/2947/470 1419/2968/478 1420/2963/475 +f 1400/2960/330 1417/2966/477 1423/2964/476 +f 1415/2950/472 1423/2992/476 1418/2965/331 +f 1414/2959/469 1422/2976/481 1417/2966/477 +f 1416/2967/474 1424/2972/480 1419/2968/478 +f 1412/2954/471 1420/2974/475 1421/2969/479 +f 1410/2951/473 1418/2965/331 1424/2970/480 +f 1413/2944/468 1421/2969/479 1422/2971/481 +f 1424/2972/480 1431/2983/489 1426/2973/482 +f 1420/2974/475 1427/3107/485 1428/2975/343 +f 1422/2976/481 1429/3108/484 1425/2977/483 +f 1421/2969/479 1428/2975/343 1429/2978/484 +f 1420/2963/475 1419/2968/478 1426/2973/482 +f 1417/2966/477 1425/2977/483 1430/2980/486 +f 1426/2973/482 1433/2984/490 1434/2981/487 +f 1425/2977/483 1432/2989/493 1437/2982/488 +f 1431/2983/489 1438/3000/494 1433/2984/490 +f 1427/2985/485 1434/3002/487 1435/2986/491 +f 1425/2977/483 1429/3108/484 1436/2988/492 +f 1429/2990/484 1428/2987/343 1435/2986/491 +f 1418/2965/331 1439/2999/13 1446/2997/15 +f 1432/2989/493 1440/3004/14 1445/2998/329 +f 1437/2994/488 1445/3109/329 1439/2999/13 +f 1438/3000/494 1446/3110/15 1441/3001/12 +f 1434/3002/487 1442/3111/16 1443/3003/11 +f 1436/2988/492 1444/3112/330 1440/3004/14 +f 1435/2986/491 1443/3003/11 1444/3005/330 +f 1433/2984/490 1441/3001/12 1442/3006/16 +f 1479/3007/13 1486/3039/331 1470/3008/331 +f 1480/3010/332 1479/3113/13 1463/3011/13 +f 1473/3013/1 1472/3043/332 1456/3014/332 +f 1481/3016/1 1480/3010/332 1464/3012/332 +f 1474/3018/343 1473/3013/1 1457/3015/1 +f 1482/3020/343 1481/3016/1 1465/3017/1 +f 1475/3022/11 1474/3114/343 1458/3023/343 +f 1483/3025/11 1482/3115/343 1466/3026/343 +f 1476/3028/405 1475/3022/11 1459/3024/11 +f 1484/3030/405 1483/3025/11 1467/3027/11 +f 1477/3032/2 1476/3028/405 1460/3029/405 +f 1485/3034/2 1484/3030/405 1468/3031/405 +f 1478/3036/331 1477/3116/2 1461/3037/2 +f 1486/3039/331 1485/3117/2 1469/3040/2 +f 1471/3041/13 1478/3036/331 1462/3038/331 +f 1472/3043/332 1471/3118/13 1455/3044/13 +f 1471/3041/329 1488/3119/329 1494/3045/495 +f 1485/3046/35 1486/3120/495 1502/1937/495 +f 1471/3047/329 1472/3121/496 1487/2425/496 +f 1479/3007/329 1496/3122/329 1502/3048/495 +f 1480/3049/496 1495/2420/496 1496/1938/329 +f 1473/3013/28 1489/3123/28 1487/3051/496 +f 1480/3010/496 1481/3016/28 1497/3052/28 +f 1473/3054/28 1474/3058/497 1490/2427/497 +f 1482/3055/497 1498/2422/497 1497/2421/28 +f 1475/3057/330 1491/1940/330 1490/2427/497 +f 1483/3059/330 1499/1939/330 1498/2422/497 +f 1475/3057/330 1476/3061/498 1492/2428/498 +f 1483/3059/330 1484/3062/498 1500/2423/498 +f 1477/3060/35 1493/1941/35 1492/2428/498 +f 1485/3046/35 1501/2424/35 1500/2423/498 +f 1477/3060/35 1478/3124/495 1494/2429/495 diff --git a/src/main/resources/assets/hbm/textures/items/train.tunnel_bore.png b/src/main/resources/assets/hbm/textures/items/train.tunnel_bore.png new file mode 100644 index 0000000000000000000000000000000000000000..b115e28a0a4e861fc95b9450b6fed15de5d408e1 GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfK?MrL-2i=u~*BxWV%sO6|7U+&>HFf=eQsQK}M zky)6Djg9U9L$;V51&pdX7k=I_ImF=C+Omg{o4M(n%QnHe_FM`K3>%IZU-8X-e+g(8 NgQu&X%Q~loCIAg9G4%id literal 0 HcmV?d00001 From e6fd6900bb605592438ca155a05a76ccc155b903 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 2 Jul 2023 19:00:34 +0200 Subject: [PATCH 177/432] oop --- src/main/java/com/hbm/lib/RefStrings.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index bfb6dcb7a..7d87518c8 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4641)"; + public static final String VERSION = "1.0.27 BETA (4648)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version From d09813957ee322701f6f06e0fb4ddb17088cf1d0 Mon Sep 17 00:00:00 2001 From: Boblet Date: Mon, 3 Jul 2023 15:41:39 +0200 Subject: [PATCH 178/432] small fixes --- changelog | 34 ++----------------- .../hbm/handler/nei/ConstructionHandler.java | 4 +-- .../com/hbm/main/ModEventHandlerClient.java | 6 ++-- src/main/resources/assets/hbm/lang/de_DE.lang | 4 +-- src/main/resources/assets/hbm/lang/en_US.lang | 4 +-- 5 files changed, 12 insertions(+), 40 deletions(-) diff --git a/changelog b/changelog index ae41e4836..024946d82 100644 --- a/changelog +++ b/changelog @@ -1,37 +1,7 @@ ## Added -* Configs for all things pollution related - * Pollution in general can be turned off, smog can be disabled and adjusted, different poison types can be disabled and the threshold for spawning tougher mobs can also be changed -* Glyphid meat - * Dropped by glyphids (duh) - * Can be grilled -* Glyphid eggs - * Dropped from glyphid spawners - * Currently unused -* Fluid valves - * come in manual and restone variants -* Smokestack - * Most polluting machines can now be connected to a smokestack with exhaust pipes - * The smokestack will vent the pollution created by the machines, reducing it by 75% - * Compatible with soot, heavy metal and poison pollution -* Sliding blast door - * Everyone's favorite from 1.12 - * Has multiple skins that can be applied -* Helium-4 - * Used in helium-4-oxygen plasma - * Made from ionized particles in a liquefactor ## Changed -* Glyphids now have a config for a global spawn limit, which is 50 by default, no more than this many glyphids can be created at once -* Removed the old oil and gas ducts for good -* FBI agents and drones no longer take damage from rosenberg pest control boxes -* Compressors now have a base comsumption of 2,500 HE/t instwad of 10,000 -* On 528 mode, gas shale now only contains 50mB of petroleum instead of 250mB -* Xenon-mercury plasma has been changed into helium-4-oxygen plasma - * This means that current xenon-mercury setups will no longer work ## Fixed -* Fixed player extprops like the HUD or backpack toggles not saving -* Fixed desync caused by teleporting between dimensions, switching toggles for HUD or backpack -* Fixed potential issue causing the plasma heater to overfill -* Fixed back connector of the compressor not working properly -* Fixed a dupe regarind one of the conveyor blocks, not telling you which, though \ No newline at end of file +* Fixed quantity of the fusion reactor's construction recipe not being displayed right +* Fixed fluid valve and redstone fluid valves having the wrong names diff --git a/src/main/java/com/hbm/handler/nei/ConstructionHandler.java b/src/main/java/com/hbm/handler/nei/ConstructionHandler.java index 557a71163..c845f1601 100644 --- a/src/main/java/com/hbm/handler/nei/ConstructionHandler.java +++ b/src/main/java/com/hbm/handler/nei/ConstructionHandler.java @@ -46,9 +46,9 @@ public class ConstructionHandler extends NEIUniversalHandler { /* ITER */ ItemStack[] iter = new ItemStack[] { new ItemStack(ModBlocks.fusion_conductor, 36), - ItemStackUtil.addTooltipToStack(new ItemStack(ModBlocks.fusion_conductor, 320), EnumChatFormatting.RED + "5x64"), + ItemStackUtil.addTooltipToStack(new ItemStack(ModBlocks.fusion_conductor, 256), EnumChatFormatting.RED + "4x64"), new ItemStack(ModItems.plate_cast, 36, Mats.MAT_STEEL.id), - ItemStackUtil.addTooltipToStack(new ItemStack(ModItems.plate_cast, 320, Mats.MAT_STEEL.id), EnumChatFormatting.RED + "5x64"), + ItemStackUtil.addTooltipToStack(new ItemStack(ModItems.plate_cast, 256, Mats.MAT_STEEL.id), EnumChatFormatting.RED + "4x64"), new ItemStack(ModBlocks.fusion_center, 64), new ItemStack(ModBlocks.fusion_motor, 4), new ItemStack(ModBlocks.reinforced_glass, 8), diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 9e3463f96..17a4e9682 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -1266,14 +1266,16 @@ public class ModEventHandlerClient { case 3: main.splashText = "None shall enter The Orb!"; break; case 4: main.splashText = "Wacarb was here"; break; case 5: main.splashText = "SpongeBoy me Bob I am overdosing on keramine agagagagaga"; break; - case 6: main.splashText = "I know where you live, " + System.getProperty("user.name"); break; + case 6: main.splashText = EnumChatFormatting.RED + "I know where you live, " + System.getProperty("user.name"); break; case 7: main.splashText = "Nice toes, now hand them over."; break; case 8: main.splashText = "I smell burnt toast!"; break; case 9: main.splashText = "There are bugs under your skin!"; break; case 10: main.splashText = "Fentanyl!"; break; case 11: main.splashText = "Do drugs!"; break; - case 12: main.splashText = "post this on r/feedthememes for free internet points!"; break; + //case 12: main.splashText = "post this on r/feedthememes for free internet points!"; break; } + + if(Math.random() < 0.1) main.splashText = "Visit r/feedthebeast if you hate yourself!"; } } } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index a727f87fd..5d0ffe69d 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -3804,8 +3804,8 @@ tile.fluid_duct_gauge.desc=Rohr welches anzeight, wie viel Flüssigkeit$sich pro tile.fluid_duct_neo.name=Universelles Flüssigkeitsrohr tile.fluid_duct_paintable.name=Geschirmtes universelles Flüssigkeitsrohr (Färbbar) tile.fluid_duct_solid.name=Geschirmtes universelles Flüssigkeitsrohr (Veraltet) -tile.fluid_switch.name=Redstone-Ventil -tile.fluid_valve.name=Ventil +tile.fluid_switch.name=Ventil +tile.fluid_valve.name=Redstone-Ventil tile.foam_layer.name=Schaumdecke tile.foundry_basin.name=Gussbecken tile.foundry_channel.name=Gusskanal diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index fbde73d5c..2495b1d4f 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -4679,8 +4679,8 @@ tile.fluid_duct_gauge.desc=Pipe that displays how much fluid$moves within the ne tile.fluid_duct_neo.name=Universal Fluid Duct tile.fluid_duct_paintable.name=Paintable Coated Universal Fluid Duct tile.fluid_duct_solid.name=Coated Universal Fluid Duct (Deprecated) -tile.fluid_switch.name=Redstone Fluid Valve -tile.fluid_valve.name=Fluid Valve +tile.fluid_switch.name=Fluid Valve +tile.fluid_valve.name=Redstone Fluid Valve tile.foam_layer.name=Foam layer tile.foundry_basin.name=Foundry Basin tile.foundry_channel.name=Foundry Channel From 4ad28d25f4b1f73ef14e58089f2875a981a7870b Mon Sep 17 00:00:00 2001 From: Bob Date: Tue, 4 Jul 2023 22:12:10 +0200 Subject: [PATCH 179/432] industrial boiler --- src/main/java/com/hbm/blocks/ModBlocks.java | 3 + .../machine/MachineHeatBoilerIndustrial.java | 126 + .../handler/pollution/PollutionHandler.java | 3 +- src/main/java/com/hbm/main/ClientProxy.java | 1 + .../java/com/hbm/main/ResourceManager.java | 2 + .../tileentity/RenderIndustrialBoiler.java | 51 + .../machine/TileEntityHeatBoiler.java | 6 +- .../TileEntityHeatBoilerIndustrial.java | 303 ++ .../hbm/models/machines/industrial_boiler.obj | 2900 +++++++++++++++++ .../models/machines/industrial_boiler.png | Bin 0 -> 1755 bytes 10 files changed, 3391 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/machine/MachineHeatBoilerIndustrial.java create mode 100644 src/main/java/com/hbm/render/tileentity/RenderIndustrialBoiler.java create mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoilerIndustrial.java create mode 100644 src/main/resources/assets/hbm/models/machines/industrial_boiler.obj create mode 100644 src/main/resources/assets/hbm/textures/models/machines/industrial_boiler.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index aca6f36b7..1b1751e15 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -673,6 +673,7 @@ public class ModBlocks { public static Block machine_sawmill; public static Block machine_crucible; public static Block machine_boiler; + public static Block machine_industrial_boiler; public static Block foundry_mold; public static Block foundry_basin; @@ -1810,6 +1811,7 @@ public class ModBlocks { machine_sawmill = new MachineSawmill().setBlockName("machine_sawmill").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_crucible = new MachineCrucible().setBlockName("machine_crucible").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire"); machine_boiler = new MachineHeatBoiler().setBlockName("machine_boiler").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_copper"); + machine_industrial_boiler = new MachineHeatBoilerIndustrial().setBlockName("machine_industrial_boiler").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_copper"); foundry_mold = new FoundryMold().setBlockName("foundry_mold").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire"); foundry_basin = new FoundryBasin().setBlockName("foundry_basin").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire"); @@ -3049,6 +3051,7 @@ public class ModBlocks { register(machine_sawmill); register(machine_crucible); register(machine_boiler); + register(machine_industrial_boiler); register(foundry_mold); register(foundry_basin); register(foundry_channel); diff --git a/src/main/java/com/hbm/blocks/machine/MachineHeatBoilerIndustrial.java b/src/main/java/com/hbm/blocks/machine/MachineHeatBoilerIndustrial.java new file mode 100644 index 000000000..5b957ba0d --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineHeatBoilerIndustrial.java @@ -0,0 +1,126 @@ +package com.hbm.blocks.machine; + +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ILookOverlay; +import com.hbm.blocks.ITooltipProvider; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.trait.FT_Heatable; +import com.hbm.inventory.fluid.trait.FT_Heatable.HeatingType; +import com.hbm.items.machine.IItemFluidIdentifier; +import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.machine.TileEntityHeatBoilerIndustrial; +import com.hbm.util.I18nUtil; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatComponentTranslation; +import net.minecraft.util.ChatStyle; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; +import net.minecraftforge.common.util.ForgeDirection; + +public class MachineHeatBoilerIndustrial extends BlockDummyable implements ILookOverlay, ITooltipProvider { + + public MachineHeatBoilerIndustrial() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + + if(meta >= 12) return new TileEntityHeatBoilerIndustrial(); + if(meta >= extra) return new TileEntityProxyCombo().fluid(); + return null; + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + + if(!world.isRemote && !player.isSneaking()) { + + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof IItemFluidIdentifier) { + int[] pos = this.findCore(world, x, y, z); + + if(pos == null) + return false; + + TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]); + + if(!(te instanceof TileEntityHeatBoilerIndustrial)) + return false; + + TileEntityHeatBoilerIndustrial boiler = (TileEntityHeatBoilerIndustrial) te; + + FluidType type = ((IItemFluidIdentifier) player.getHeldItem().getItem()).getType(world, pos[0], pos[1], pos[2], player.getHeldItem()); + + if(type.hasTrait(FT_Heatable.class) && type.getTrait(FT_Heatable.class).getEfficiency(HeatingType.BOILER) > 0) { + boiler.tanks[0].setTankType(type); + boiler.markDirty(); + player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation("hbmfluid." + type.getName().toLowerCase(Locale.US))).appendSibling(new ChatComponentText("!"))); + } + return true; + } + return false; + + } else { + return true; + } + } + + @Override + public int[] getDimensions() { + return new int[] {4, 0, 1, 1, 1, 1}; + } + + @Override + public int getOffset() { + return 1; + } + + @Override + public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + + this.makeExtra(world, x + dir.offsetX + 1, y, z + dir.offsetZ); + this.makeExtra(world, x + dir.offsetX - 1, y, z + dir.offsetZ); + this.makeExtra(world, x + dir.offsetX, y, z + dir.offsetZ + 1); + this.makeExtra(world, x + dir.offsetX, y, z + dir.offsetZ - 1); + this.makeExtra(world, x + dir.offsetX, y + 4, z + dir.offsetZ); + } + + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + + int[] pos = this.findCore(world, x, y, z); + + if(pos == null) + return; + + TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]); + + if(!(te instanceof TileEntityHeatBoilerIndustrial)) + return; + + TileEntityHeatBoilerIndustrial boiler = (TileEntityHeatBoilerIndustrial) te; + + List text = new ArrayList(); + text.add(String.format("%,d", boiler.heat) + "TU"); + text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + I18nUtil.resolveKey(boiler.tanks[0].getTankType().getUnlocalizedName()) + ": " + String.format("%,d", boiler.tanks[0].getFill()) + " / " + String.format("%,d", boiler.tanks[0].getMaxFill()) + "mB"); + text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + I18nUtil.resolveKey(boiler.tanks[1].getTankType().getUnlocalizedName()) + ": " + String.format("%,d", boiler.tanks[1].getFill()) + " / " + String.format("%,d", boiler.tanks[1].getMaxFill()) + "mB"); + + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } +} diff --git a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java index 885bbdd82..ef3752953 100644 --- a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java +++ b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java @@ -320,8 +320,9 @@ public class PollutionHandler { if(living instanceof IMob) { if(data.pollution[PollutionType.SOOT.ordinal()] > RadiationConfig.buffMobThreshold) { - if(living.getEntityAttribute(SharedMonsterAttributes.maxHealth) != null) living.getEntityAttribute(SharedMonsterAttributes.maxHealth).applyModifier(new AttributeModifier("Soot Anger Health Increase", 2D, 1)); + if(living.getEntityAttribute(SharedMonsterAttributes.maxHealth) != null) living.getEntityAttribute(SharedMonsterAttributes.maxHealth).applyModifier(new AttributeModifier("Soot Anger Health Increase", 1D, 1)); if(living.getEntityAttribute(SharedMonsterAttributes.attackDamage) != null) living.getEntityAttribute(SharedMonsterAttributes.attackDamage).applyModifier(new AttributeModifier("Soot Anger Damage Increase", 1.5D, 1)); + living.heal(living.getMaxHealth()); } } } diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index d39bef440..115ca0e3b 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -271,6 +271,7 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySawmill.class, new RenderSawmill()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCrucible.class, new RenderCrucible()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityHeatBoiler.class, new RenderBoiler()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityHeatBoilerIndustrial.class, new RenderIndustrialBoiler()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySteamEngine.class, new RenderSteamEngine()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineDiesel.class, new RenderDieselGen()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineCombustionEngine.class, new RenderCombustionEngine()); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index a0ea34e1b..66c71bfca 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -48,6 +48,7 @@ public class ResourceManager { public static final IModelCustom crucible_heat = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/crucible.obj")); public static final IModelCustom boiler = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/boiler.obj")); public static final IModelCustom boiler_burst = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/boiler_burst.obj")); + public static final IModelCustom boiler_industrial = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/industrial_boiler.obj")); public static final IModelCustom hephaestus = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/hephaestus.obj")); //Furnaces @@ -396,6 +397,7 @@ public class ResourceManager { public static final ResourceLocation sawmill_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/sawmill.png"); public static final ResourceLocation crucible_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/crucible_heat.png"); public static final ResourceLocation boiler_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/boiler.png"); + public static final ResourceLocation boiler_industrial_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/industrial_boiler.png"); public static final ResourceLocation hephaestus_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/hephaestus.png"); //Furnaces diff --git a/src/main/java/com/hbm/render/tileentity/RenderIndustrialBoiler.java b/src/main/java/com/hbm/render/tileentity/RenderIndustrialBoiler.java new file mode 100644 index 000000000..9bbf30997 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderIndustrialBoiler.java @@ -0,0 +1,51 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderIndustrialBoiler extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.boiler_industrial_tex); + ResourceManager.boiler_industrial.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.machine_boiler); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(0, -3, 0); + GL11.glScaled(3, 3, 3); + } + public void renderCommonWithStack(ItemStack item) { + GL11.glRotatef(90, 0F, 1F, 0F); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.boiler_industrial_tex); + ResourceManager.boiler_industrial.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + }}; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoiler.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoiler.java index bcda9f18b..39b72b06c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoiler.java @@ -50,15 +50,15 @@ public class TileEntityHeatBoiler extends TileEntityLoadedBase implements IFluid private int audioTime; /* CONFIGURABLE */ - public static int maxHeat = 12_800_000; //the heat required to turn 64k of water into steam + public static int maxHeat = 3_200_000; public static double diffusion = 0.1D; public static boolean canExplode = true; public TileEntityHeatBoiler() { this.tanks = new FluidTank[2]; - this.tanks[0] = new FluidTank(Fluids.WATER, 64_000, 0); - this.tanks[1] = new FluidTank(Fluids.STEAM, 64_000 * 100, 1); + this.tanks[0] = new FluidTank(Fluids.WATER, 16_000); + this.tanks[1] = new FluidTank(Fluids.STEAM, 16_000 * 100); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoilerIndustrial.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoilerIndustrial.java new file mode 100644 index 000000000..fa447da65 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoilerIndustrial.java @@ -0,0 +1,303 @@ +package com.hbm.tileentity.machine; + +import java.io.IOException; + +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.inventory.fluid.trait.FT_Heatable; +import com.hbm.inventory.fluid.trait.FT_Heatable.HeatingStep; +import com.hbm.inventory.fluid.trait.FT_Heatable.HeatingType; +import com.hbm.lib.Library; +import com.hbm.main.MainRegistry; +import com.hbm.saveddata.TomSaveData; +import com.hbm.sound.AudioWrapper; +import com.hbm.tileentity.IConfigurableMachine; +import com.hbm.tileentity.INBTPacketReceiver; +import com.hbm.tileentity.TileEntityLoadedBase; +import com.hbm.util.fauxpointtwelve.DirPos; + +import api.hbm.fluid.IFluidStandardTransceiver; +import api.hbm.tile.IHeatSource; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.EnumSkyBlock; + +public class TileEntityHeatBoilerIndustrial extends TileEntityLoadedBase implements INBTPacketReceiver, IFluidStandardTransceiver, IConfigurableMachine { + + public int heat; + public FluidTank[] tanks; + public boolean isOn; + + private AudioWrapper audio; + private int audioTime; + + /* CONFIGURABLE */ + public static int maxHeat = 12_800_000; + public static double diffusion = 0.1D; + + public TileEntityHeatBoilerIndustrial() { + this.tanks = new FluidTank[2]; + + this.tanks[0] = new FluidTank(Fluids.WATER, 64_000, 0); + this.tanks[1] = new FluidTank(Fluids.STEAM, 64_000 * 100, 1); + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + NBTTagCompound data = new NBTTagCompound(); + this.setupTanks(); + this.updateConnections(); + this.tryPullHeat(); + int lastHeat = this.heat; + + int light = this.worldObj.getSavedLightValue(EnumSkyBlock.Sky, this.xCoord, this.yCoord, this.zCoord); + if(light > 7 && TomSaveData.forWorld(worldObj).fire > 1e-5) { + this.heat += ((maxHeat - heat) * 0.000005D); //constantly heat up 0.0005% of the remaining heat buffer for rampant but diminishing heating + } + + data.setInteger("heat", lastHeat); + + tanks[0].writeToNBT(data, "0"); + this.isOn = false; + this.tryConvert(); + tanks[1].writeToNBT(data, "1"); + + if(this.tanks[1].getFill() > 0) { + this.sendFluid(); + } + + data.setBoolean("isOn", this.isOn); + INBTPacketReceiver.networkPack(this, data, 25); + } else { + + if(this.isOn) audioTime = 20; + + if(audioTime > 0) { + + audioTime--; + + if(audio == null) { + audio = createAudioLoop(); + audio.startSound(); + } else if(!audio.isPlaying()) { + audio = rebootAudio(audio); + } + + audio.keepAlive(); + + } else { + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + } + } + + @Override + public AudioWrapper createAudioLoop() { + return MainRegistry.proxy.getLoopedSound("hbm:block.boiler", xCoord, yCoord, zCoord, 0.125F, 10F, 1.0F, 20); + } + + @Override + public void onChunkUnload() { + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + + @Override + public void invalidate() { + + super.invalidate(); + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + this.heat = nbt.getInteger("heat"); + this.tanks[0].readFromNBT(nbt, "0"); + this.tanks[1].readFromNBT(nbt, "1"); + this.isOn = nbt.getBoolean("isOn"); + } + + protected void tryPullHeat() { + TileEntity con = worldObj.getTileEntity(xCoord, yCoord - 1, zCoord); + + if(con instanceof IHeatSource) { + IHeatSource source = (IHeatSource) con; + int diff = source.getHeatStored() - this.heat; + + if(diff == 0) { + return; + } + + if(diff > 0) { + diff = (int) Math.ceil(diff * diffusion); + source.useUpHeat(diff); + this.heat += diff; + if(this.heat > this.maxHeat) + this.heat = this.maxHeat; + return; + } + } + + this.heat = Math.max(this.heat - Math.max(this.heat / 1000, 1), 0); + } + + protected void setupTanks() { + + if(tanks[0].getTankType().hasTrait(FT_Heatable.class)) { + FT_Heatable trait = tanks[0].getTankType().getTrait(FT_Heatable.class); + if(trait.getEfficiency(HeatingType.BOILER) > 0) { + HeatingStep entry = trait.getFirstStep(); + tanks[1].setTankType(entry.typeProduced); + tanks[1].changeTankSize(tanks[0].getMaxFill() * entry.amountProduced / entry.amountReq); + return; + } + } + + tanks[0].setTankType(Fluids.NONE); + tanks[1].setTankType(Fluids.NONE); + } + + protected void tryConvert() { + + if(tanks[0].getTankType().hasTrait(FT_Heatable.class)) { + FT_Heatable trait = tanks[0].getTankType().getTrait(FT_Heatable.class); + if(trait.getEfficiency(HeatingType.BOILER) > 0) { + + HeatingStep entry = trait.getFirstStep(); + int inputOps = this.tanks[0].getFill() / entry.amountReq; + int outputOps = (this.tanks[1].getMaxFill() - this.tanks[1].getFill()) / entry.amountProduced; + int heatOps = this.heat / entry.heatReq; + + int ops = Math.min(inputOps, Math.min(outputOps, heatOps)); + + this.tanks[0].setFill(this.tanks[0].getFill() - entry.amountReq * ops); + this.tanks[1].setFill(this.tanks[1].getFill() + entry.amountProduced * ops); + this.heat -= entry.heatReq * ops; + + if(ops > 0 && worldObj.rand.nextInt(400) == 0) { + worldObj.playSoundEffect(xCoord + 0.5, yCoord + 2, zCoord + 0.5, "hbm:block.boilerGroan", 0.5F, 1.0F); + } + + if(ops > 0) { + this.isOn = true; + } + } + } + } + + private void updateConnections() { + + for(DirPos pos : getConPos()) { + this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + + private void sendFluid() { + + for(DirPos pos : getConPos()) { + this.sendFluid(tanks[1], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir().getOpposite()); + } + } + + private DirPos[] getConPos() { + return new DirPos[] { + new DirPos(xCoord + 2, yCoord, zCoord, Library.POS_X), + new DirPos(xCoord - 2, yCoord, zCoord, Library.NEG_X), + new DirPos(xCoord, yCoord, zCoord + 2, Library.POS_Z), + new DirPos(xCoord, yCoord, zCoord - 2, Library.NEG_Z), + new DirPos(xCoord, yCoord + 5, zCoord, Library.POS_Y), + }; + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + tanks[0].readFromNBT(nbt, "water"); + tanks[1].readFromNBT(nbt, "steam"); + heat = nbt.getInteger("heat"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + tanks[0].writeToNBT(nbt, "water"); + tanks[1].writeToNBT(nbt, "steam"); + nbt.setInteger("heat", heat); + } + + @Override + public FluidTank[] getAllTanks() { + return tanks; + } + + @Override + public FluidTank[] getSendingTanks() { + return new FluidTank[] {tanks[1]}; + } + + @Override + public FluidTank[] getReceivingTanks() { + return new FluidTank[] {tanks[0]}; + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 1, + yCoord, + zCoord - 1, + xCoord + 2, + yCoord + 5, + zCoord + 2 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } + + @Override + public String getConfigName() { + return "boilerIndustrial"; + } + + @Override + public void readIfPresent(JsonObject obj) { + maxHeat = IConfigurableMachine.grab(obj, "I:maxHeat", maxHeat); + diffusion = IConfigurableMachine.grab(obj, "D:diffusion", diffusion); + } + + @Override + public void writeConfig(JsonWriter writer) throws IOException { + writer.name("I:maxHeat").value(maxHeat); + writer.name("D:diffusion").value(diffusion); + } +} diff --git a/src/main/resources/assets/hbm/models/machines/industrial_boiler.obj b/src/main/resources/assets/hbm/models/machines/industrial_boiler.obj new file mode 100644 index 000000000..eb3fb03ef --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/industrial_boiler.obj @@ -0,0 +1,2900 @@ +# Blender v2.79 (sub 0) OBJ File: 'industrial_boiler.blend' +# www.blender.org +o Plane +v -1.500000 0.000000 1.500000 +v 1.500000 0.000000 1.500000 +v -1.500000 0.000000 -1.500000 +v 1.500000 0.000000 -1.500000 +v -1.500000 0.250000 1.500000 +v 1.500000 0.250000 1.500000 +v -1.500000 0.250000 -1.500000 +v 1.500000 0.250000 -1.500000 +v -1.000000 0.250000 1.000000 +v 1.000000 0.250000 1.000000 +v -1.000000 0.250000 -1.000000 +v 1.000000 0.250000 -1.000000 +v -1.000000 1.250000 -1.000000 +v -1.000000 1.250000 1.000000 +v 1.000000 1.250000 1.000000 +v 1.000000 1.250000 -1.000000 +v 1.000000 1.031250 0.750000 +v 1.500000 1.031250 0.750000 +v 1.000000 1.031250 -0.750000 +v 1.500000 1.031250 -0.750000 +v 1.000000 1.093750 -0.750000 +v 1.000000 1.093750 0.750000 +v 1.500000 1.093750 0.750000 +v 1.500000 1.093750 -0.750000 +v 1.000000 0.906250 0.750000 +v 1.500000 0.906250 0.750000 +v 1.000000 0.906250 -0.750000 +v 1.500000 0.906250 -0.750000 +v 1.000000 0.968750 -0.750000 +v 1.000000 0.968750 0.750000 +v 1.500000 0.968750 0.750000 +v 1.500000 0.968750 -0.750000 +v 1.000000 0.781250 0.750000 +v 1.500000 0.781250 0.750000 +v 1.000000 0.781250 -0.750000 +v 1.500000 0.781250 -0.750000 +v 1.000000 0.843750 -0.750000 +v 1.000000 0.843750 0.750000 +v 1.500000 0.843750 0.750000 +v 1.500000 0.843750 -0.750000 +v 1.000000 1.156250 0.750000 +v 1.500000 1.156250 0.750000 +v 1.000000 1.156250 -0.750000 +v 1.500000 1.156250 -0.750000 +v 1.000000 1.218750 -0.750000 +v 1.000000 1.218750 0.750000 +v 1.500000 1.218750 0.750000 +v 1.500000 1.218750 -0.750000 +v -1.000000 1.031250 -0.750000 +v -1.500000 1.031250 -0.750000 +v -1.000000 1.031250 0.750000 +v -1.500000 1.031250 0.750000 +v -1.000000 1.093750 0.750000 +v -1.000000 1.093750 -0.750000 +v -1.500000 1.093750 -0.750000 +v -1.500000 1.093750 0.750000 +v -1.000000 0.906250 -0.750000 +v -1.500000 0.906250 -0.750000 +v -1.000000 0.906250 0.750000 +v -1.500000 0.906250 0.750000 +v -1.000000 0.968750 0.750000 +v -1.000000 0.968750 -0.750000 +v -1.500000 0.968750 -0.750000 +v -1.500000 0.968750 0.750000 +v -1.000000 0.781250 -0.750000 +v -1.500000 0.781250 -0.750000 +v -1.000000 0.781250 0.750000 +v -1.500000 0.781250 0.750000 +v -1.000000 0.843750 0.750000 +v -1.000000 0.843750 -0.750000 +v -1.500000 0.843750 -0.750000 +v -1.500000 0.843750 0.750000 +v -1.000000 1.156250 -0.750000 +v -1.500000 1.156250 -0.750000 +v -1.000000 1.156250 0.750000 +v -1.500000 1.156250 0.750000 +v -1.000000 1.218750 0.750000 +v -1.000000 1.218750 -0.750000 +v -1.500000 1.218750 -0.750000 +v -1.500000 1.218750 0.750000 +v 0.750000 1.031250 -1.000000 +v 0.750000 1.031250 -1.500000 +v -0.750000 1.031250 -1.000000 +v -0.750000 1.031250 -1.500000 +v -0.750000 1.093750 -1.000000 +v 0.750000 1.093750 -1.000000 +v 0.750000 1.093750 -1.500000 +v -0.750000 1.093750 -1.500000 +v 0.750000 0.906250 -1.000000 +v 0.750000 0.906250 -1.500000 +v -0.750000 0.906250 -1.000000 +v -0.750000 0.906250 -1.500000 +v -0.750000 0.968750 -1.000000 +v 0.750000 0.968750 -1.000000 +v 0.750000 0.968750 -1.500000 +v -0.750000 0.968750 -1.500000 +v 0.750000 0.781250 -1.000000 +v 0.750000 0.781250 -1.500000 +v -0.750000 0.781250 -1.000000 +v -0.750000 0.781250 -1.500000 +v -0.750000 0.843750 -1.000000 +v 0.750000 0.843750 -1.000000 +v 0.750000 0.843750 -1.500000 +v -0.750000 0.843750 -1.500000 +v 0.750000 1.156250 -1.000000 +v 0.750000 1.156250 -1.500000 +v -0.750000 1.156250 -1.000000 +v -0.750000 1.156250 -1.500000 +v -0.750000 1.218750 -1.000000 +v 0.750000 1.218750 -1.000000 +v 0.750000 1.218750 -1.500000 +v -0.750000 1.218750 -1.500000 +v -0.750000 1.031250 1.000000 +v -0.750000 1.031250 1.500000 +v 0.750000 1.031250 1.000000 +v 0.750000 1.031250 1.500000 +v 0.750000 1.093750 1.000000 +v -0.750000 1.093750 1.000000 +v -0.750000 1.093750 1.500000 +v 0.750000 1.093750 1.500000 +v -0.750000 0.906250 1.000000 +v -0.750000 0.906250 1.500000 +v 0.750000 0.906250 1.000000 +v 0.750000 0.906250 1.500000 +v 0.750000 0.968750 1.000000 +v -0.750000 0.968750 1.000000 +v -0.750000 0.968750 1.500000 +v 0.750000 0.968750 1.500000 +v -0.750000 0.781250 1.000000 +v -0.750000 0.781250 1.500000 +v 0.750000 0.781250 1.000000 +v 0.750000 0.781250 1.500000 +v 0.750000 0.843750 1.000000 +v -0.750000 0.843750 1.000000 +v -0.750000 0.843750 1.500000 +v 0.750000 0.843750 1.500000 +v -0.750000 1.156250 1.000000 +v -0.750000 1.156250 1.500000 +v 0.750000 1.156250 1.000000 +v 0.750000 1.156250 1.500000 +v 0.750000 1.218750 1.000000 +v -0.750000 1.218750 1.000000 +v -0.750000 1.218750 1.500000 +v 0.750000 1.218750 1.500000 +v 0.000000 4.250000 -0.866025 +v 0.000000 3.750000 -1.000000 +v 0.191342 4.616025 -0.461940 +v 0.331414 4.250000 -0.800103 +v 0.382683 3.750000 -0.923880 +v 0.353553 4.616025 -0.353553 +v 0.612372 4.250000 -0.612372 +v 0.707107 3.750000 -0.707107 +v 0.461940 4.616025 -0.191342 +v 0.800103 4.250000 -0.331414 +v 0.923879 3.750000 -0.382683 +v 0.500000 4.616025 0.000000 +v 0.866025 4.250000 0.000000 +v 1.000000 3.750000 0.000000 +v 0.461940 4.616025 0.191341 +v 0.800103 4.250000 0.331413 +v 0.923879 3.750000 0.382683 +v 0.353553 4.616025 0.353553 +v 0.612372 4.250000 0.612372 +v 0.707106 3.750000 0.707107 +v 0.191342 4.616025 0.461939 +v 0.331413 4.250000 0.800103 +v 0.382683 3.750000 0.923879 +v -0.000000 4.616025 0.500000 +v -0.000000 4.250000 0.866025 +v -0.000000 3.750000 1.000000 +v -0.191342 4.616025 0.461939 +v -0.331414 4.250000 0.800103 +v -0.382684 3.750000 0.923879 +v -0.382683 1.250000 -0.923880 +v -0.707106 1.250000 -0.707107 +v -0.353553 4.616025 0.353553 +v -0.612372 4.250000 0.612372 +v -0.707107 3.750000 0.707106 +v -0.923879 1.250000 -0.382684 +v -1.000000 1.250000 -0.000000 +v -0.461940 4.616025 0.191341 +v -0.800103 4.250000 0.331413 +v -0.923879 3.750000 0.382683 +v -0.923879 1.250000 0.382683 +v -0.707107 1.250000 0.707106 +v -0.500000 4.616025 -0.000000 +v -0.866025 4.250000 -0.000000 +v -1.000000 3.750000 -0.000000 +v -0.382684 1.250000 0.923879 +v -0.000000 1.250000 1.000000 +v -0.461939 4.616025 -0.191342 +v -0.800103 4.250000 -0.331414 +v -0.923879 3.750000 -0.382684 +v 0.382683 1.250000 0.923879 +v 0.707106 1.250000 0.707107 +v -0.353553 4.616025 -0.353554 +v -0.612372 4.250000 -0.612372 +v -0.707106 3.750000 -0.707107 +v 0.923879 1.250000 0.382683 +v 1.000000 1.250000 0.000000 +v -0.191341 4.616025 -0.461940 +v -0.331413 4.250000 -0.800103 +v -0.382683 3.750000 -0.923880 +v 0.923879 1.250000 -0.382683 +v 0.707107 1.250000 -0.707107 +v -0.000000 4.750000 0.000000 +v 0.000000 4.616025 -0.500000 +v 0.382683 1.250000 -0.923880 +v 0.000000 1.250000 -1.000000 +v 1.000000 0.250000 1.250000 +v 1.250000 0.250000 1.250000 +v 1.000000 0.250000 1.000000 +v 1.250000 0.250000 1.000000 +v 1.000000 3.750000 1.250000 +v 1.250000 3.750000 1.250000 +v 1.000000 3.750000 1.000000 +v 1.250000 3.750000 1.000000 +v 1.000000 0.250000 -1.000000 +v 1.250000 0.250000 -1.000000 +v 1.000000 0.250000 -1.250000 +v 1.250000 0.250000 -1.250000 +v 1.000000 3.750000 -1.000000 +v 1.250000 3.750000 -1.000000 +v 1.000000 3.750000 -1.250000 +v 1.250000 3.750000 -1.250000 +v -1.250000 3.750000 1.250000 +v -1.000000 3.750000 1.250000 +v -1.250000 3.750000 1.000000 +v -1.000000 3.750000 1.000000 +v -1.250000 0.250000 1.250000 +v -1.000000 0.250000 1.250000 +v -1.250000 0.250000 1.000000 +v -1.000000 0.250000 1.000000 +v -1.250000 3.750000 -1.000000 +v -1.000000 3.750000 -1.000000 +v -1.250000 3.750000 -1.250000 +v -1.000000 3.750000 -1.250000 +v -1.250000 0.250000 -1.000000 +v -1.000000 0.250000 -1.000000 +v -1.250000 0.250000 -1.250000 +v -1.000000 0.250000 -1.250000 +v 1.000000 3.750000 1.000000 +v 1.250000 3.750000 1.000000 +v 1.000000 3.750000 -1.000000 +v 1.250000 3.750000 -1.000000 +v 1.250000 3.500000 1.000000 +v 1.000000 3.500000 1.000000 +v 1.000000 3.500000 -1.000000 +v 1.250000 3.500000 -1.000000 +v -1.000000 3.750000 -1.000000 +v -1.250000 3.750000 -1.000000 +v -1.000000 3.750000 1.000000 +v -1.250000 3.750000 1.000000 +v -1.250000 3.500000 -1.000000 +v -1.000000 3.500000 -1.000000 +v -1.000000 3.500000 1.000000 +v -1.250000 3.500000 1.000000 +v 1.000000 3.750000 -1.000000 +v 1.000000 3.750000 -1.250000 +v -1.000000 3.750000 -1.000000 +v -1.000000 3.750000 -1.250000 +v 1.000000 3.500000 -1.250000 +v 1.000000 3.500000 -1.000000 +v -1.000000 3.500000 -1.000000 +v -1.000000 3.500000 -1.250000 +v -1.000000 3.750000 1.000000 +v -1.000000 3.750000 1.250000 +v 1.000000 3.750000 1.000000 +v 1.000000 3.750000 1.250000 +v -1.000000 3.500000 1.250000 +v -1.000000 3.500000 1.000000 +v 1.000000 3.500000 1.000000 +v 1.000000 3.500000 1.250000 +v -0.500000 0.000000 0.500000 +v 0.500000 0.000000 0.500000 +v -0.500000 0.000000 -0.500000 +v 0.500000 0.000000 -0.500000 +v -0.437500 0.000000 0.437500 +v 0.437500 0.000000 0.437500 +v -0.437500 0.000000 -0.437500 +v 0.437500 0.000000 -0.437500 +v -0.500000 0.062500 -0.500000 +v -0.500000 0.062500 0.500000 +v 0.500000 0.062500 0.500000 +v 0.500000 0.062500 -0.500000 +v -0.437500 0.062500 -0.437500 +v -0.437500 0.062500 0.437500 +v 0.437500 0.062500 0.437500 +v 0.437500 0.062500 -0.437500 +v -0.250000 5.000000 0.250000 +v 0.250000 5.000000 0.250000 +v -0.250000 5.000000 -0.250000 +v 0.250000 5.000000 -0.250000 +v -0.250000 4.937500 -0.250000 +v -0.250000 4.937500 0.250000 +v 0.250000 4.937500 0.250000 +v 0.250000 4.937500 -0.250000 +v -0.375000 4.812500 -0.375000 +v -0.375000 4.812500 0.375000 +v 0.375000 4.812500 0.375000 +v 0.375000 4.812500 -0.375000 +v -0.375000 4.562500 -0.375000 +v -0.375000 4.562500 0.375000 +v 0.375000 4.562500 0.375000 +v 0.375000 4.562500 -0.375000 +v 0.375000 4.812500 0.187500 +v 0.375000 4.775888 0.099112 +v 0.375000 4.687500 0.062500 +v 0.375000 4.599112 0.099112 +v 0.375000 4.562500 0.187500 +v 0.375000 4.599112 0.275888 +v 0.375000 4.687500 0.312500 +v 0.375000 4.775888 0.275888 +v 1.125000 4.812500 0.187500 +v 1.125000 4.775888 0.099112 +v 1.125000 4.687500 0.062500 +v 1.125000 4.599112 0.099112 +v 1.125000 4.562500 0.187500 +v 1.125000 4.599112 0.275888 +v 1.125000 4.687500 0.312500 +v 1.125000 4.775888 0.275888 +v 1.301777 4.739277 0.187500 +v 1.275888 4.713388 0.099112 +v 1.213388 4.650888 0.062500 +v 1.150888 4.588388 0.099112 +v 1.150888 4.588388 0.275888 +v 1.213388 4.650888 0.312500 +v 1.275888 4.713388 0.275888 +v 1.375000 4.562500 0.187500 +v 1.338388 4.562500 0.099112 +v 1.250000 4.562500 0.062500 +v 1.161612 4.562500 0.099112 +v 1.161612 4.562500 0.275888 +v 1.250000 4.562500 0.312500 +v 1.338388 4.562500 0.275888 +v 1.125000 0.750000 0.187500 +v 1.375000 0.750000 0.187500 +v 1.338388 0.750000 0.099112 +v 1.250000 0.750000 0.062500 +v 1.161612 0.750000 0.099112 +v 1.161612 0.750000 0.275888 +v 1.250000 0.750000 0.312500 +v 1.338388 0.750000 0.275888 +v 0.375000 4.812500 -0.187500 +v 0.375000 4.775888 -0.275888 +v 0.375000 4.687500 -0.312500 +v 0.375000 4.599112 -0.275888 +v 0.375000 4.562500 -0.187500 +v 0.375000 4.599112 -0.099112 +v 0.375000 4.687500 -0.062500 +v 0.375000 4.775888 -0.099112 +v 1.125000 4.812500 -0.187500 +v 1.125000 4.775888 -0.275888 +v 1.125000 4.687500 -0.312500 +v 1.125000 4.599112 -0.275888 +v 1.125000 4.562500 -0.187500 +v 1.125000 4.599112 -0.099112 +v 1.125000 4.687500 -0.062500 +v 1.125000 4.775888 -0.099112 +v 1.301777 4.739277 -0.187500 +v 1.275888 4.713388 -0.275888 +v 1.213388 4.650888 -0.312500 +v 1.150888 4.588388 -0.275888 +v 1.150888 4.588388 -0.099112 +v 1.213388 4.650888 -0.062500 +v 1.275888 4.713388 -0.099112 +v 1.375000 4.562500 -0.187500 +v 1.338388 4.562500 -0.275888 +v 1.250000 4.562500 -0.312500 +v 1.161612 4.562500 -0.275888 +v 1.161612 4.562500 -0.099112 +v 1.250000 4.562500 -0.062500 +v 1.338388 4.562500 -0.099112 +v 1.125000 0.750000 -0.187500 +v 1.375000 0.750000 -0.187500 +v 1.338388 0.750000 -0.275888 +v 1.250000 0.750000 -0.312500 +v 1.161612 0.750000 -0.275888 +v 1.161612 0.750000 -0.099112 +v 1.250000 0.750000 -0.062500 +v 1.338388 0.750000 -0.099112 +v -1.500000 0.687500 0.187500 +v -1.500000 0.312500 0.187500 +v -1.500000 0.687500 -0.187500 +v -1.500000 0.312500 -0.187500 +v -1.000000 0.750000 -0.750000 +v -1.375000 0.750000 -0.750000 +v -1.000000 0.750000 0.750000 +v -1.375000 0.750000 0.750000 +v -1.000000 0.250000 0.750000 +v -1.000000 0.250000 -0.750000 +v -1.375000 0.250000 -0.750000 +v -1.375000 0.250000 0.750000 +v -1.375000 0.687500 -0.187500 +v -1.375000 0.687500 0.187500 +v -1.375000 0.312500 0.187500 +v -1.375000 0.312500 -0.187500 +v 1.500000 0.687500 -0.187500 +v 1.500000 0.312500 -0.187500 +v 1.500000 0.687500 0.187500 +v 1.500000 0.312500 0.187500 +v 1.000000 0.750000 0.750000 +v 1.375000 0.750000 0.750000 +v 1.000000 0.750000 -0.750000 +v 1.375000 0.750000 -0.750000 +v 1.000000 0.250000 -0.750000 +v 1.000000 0.250000 0.750000 +v 1.375000 0.250000 0.750000 +v 1.375000 0.250000 -0.750000 +v 1.375000 0.687500 0.187500 +v 1.375000 0.687500 -0.187500 +v 1.375000 0.312500 -0.187500 +v 1.375000 0.312500 0.187500 +v 0.187500 0.687500 1.500000 +v 0.187500 0.312500 1.500000 +v -0.187500 0.687500 1.500000 +v -0.187500 0.312500 1.500000 +v -0.750000 0.750000 1.000000 +v -0.750000 0.750000 1.375000 +v 0.750000 0.750000 1.000000 +v 0.750000 0.750000 1.375000 +v 0.750000 0.250000 1.000000 +v -0.750000 0.250000 1.000000 +v -0.750000 0.250000 1.375000 +v 0.750000 0.250000 1.375000 +v -0.187500 0.687500 1.375000 +v 0.187500 0.687500 1.375000 +v 0.187500 0.312500 1.375000 +v -0.187500 0.312500 1.375000 +v -0.187500 0.687500 -1.500000 +v -0.187500 0.312500 -1.500000 +v 0.187500 0.687500 -1.500000 +v 0.187500 0.312500 -1.500000 +v 0.750000 0.750000 -1.000000 +v 0.750000 0.750000 -1.375000 +v -0.750000 0.750000 -1.000000 +v -0.750000 0.750000 -1.375000 +v -0.750000 0.250000 -1.000000 +v 0.750000 0.250000 -1.000000 +v 0.750000 0.250000 -1.375000 +v -0.750000 0.250000 -1.375000 +v 0.187500 0.687500 -1.375000 +v -0.187500 0.687500 -1.375000 +v -0.187500 0.312500 -1.375000 +v 0.187500 0.312500 -1.375000 +v -1.250000 3.750000 -0.312500 +v -1.250000 3.750000 0.312500 +v -1.250000 3.500000 -0.312500 +v -1.250000 3.500000 0.312500 +v -1.375000 3.750000 -0.312500 +v -1.375000 3.750000 0.312500 +v -1.375000 3.500000 -0.312500 +v -1.375000 3.500000 0.312500 +v 1.250000 3.750000 0.312500 +v 1.250000 3.750000 -0.312500 +v 1.250000 3.500000 0.312500 +v 1.250000 3.500000 -0.312500 +v 1.375000 3.750000 0.312500 +v 1.375000 3.750000 -0.312500 +v 1.375000 3.500000 0.312500 +v 1.375000 3.500000 -0.312500 +v -0.312500 3.750000 1.250000 +v 0.312500 3.750000 1.250000 +v -0.312500 3.500000 1.250000 +v 0.312500 3.500000 1.250000 +v -0.312500 3.750000 1.375000 +v 0.312500 3.750000 1.375000 +v -0.312500 3.500000 1.375000 +v 0.312500 3.500000 1.375000 +v 0.312500 3.750000 -1.250000 +v -0.312500 3.750000 -1.250000 +v 0.312500 3.500000 -1.250000 +v -0.312500 3.500000 -1.250000 +v 0.312500 3.750000 -1.375000 +v -0.312500 3.750000 -1.375000 +v 0.312500 3.500000 -1.375000 +v -0.312500 3.500000 -1.375000 +v -0.375000 4.812500 -0.187500 +v -0.375000 4.775888 -0.099112 +v -0.375000 4.687500 -0.062500 +v -0.375000 4.599112 -0.099112 +v -0.375000 4.562500 -0.187500 +v -0.375000 4.599112 -0.275888 +v -0.375000 4.687500 -0.312500 +v -0.375000 4.775888 -0.275888 +v -1.125000 4.812500 -0.187500 +v -1.125000 4.775888 -0.099111 +v -1.125000 4.687500 -0.062500 +v -1.125000 4.599112 -0.099111 +v -1.125000 4.562500 -0.187500 +v -1.125000 4.599112 -0.275888 +v -1.125000 4.687500 -0.312500 +v -1.125000 4.775888 -0.275888 +v -1.301777 4.739277 -0.187500 +v -1.275888 4.713388 -0.099111 +v -1.213388 4.650888 -0.062500 +v -1.150888 4.588388 -0.099111 +v -1.150888 4.588388 -0.275888 +v -1.213388 4.650888 -0.312500 +v -1.275888 4.713388 -0.275888 +v -1.375000 4.562500 -0.187500 +v -1.338388 4.562500 -0.099111 +v -1.250000 4.562500 -0.062500 +v -1.161612 4.562500 -0.099111 +v -1.161612 4.562500 -0.275888 +v -1.250000 4.562500 -0.312500 +v -1.338388 4.562500 -0.275888 +v -1.125000 0.750000 -0.187500 +v -1.375000 0.750000 -0.187500 +v -1.338388 0.750000 -0.099111 +v -1.250000 0.750000 -0.062500 +v -1.161612 0.750000 -0.099111 +v -1.161612 0.750000 -0.275888 +v -1.250000 0.750000 -0.312500 +v -1.338388 0.750000 -0.275888 +v -0.375000 4.812500 0.187500 +v -0.375000 4.775888 0.275888 +v -0.375000 4.687500 0.312500 +v -0.375000 4.599112 0.275888 +v -0.375000 4.562500 0.187500 +v -0.375000 4.599112 0.099112 +v -0.375000 4.687500 0.062500 +v -0.375000 4.775888 0.099112 +v -1.125000 4.812500 0.187500 +v -1.125000 4.775888 0.275889 +v -1.125000 4.687500 0.312500 +v -1.125000 4.599112 0.275889 +v -1.125000 4.562500 0.187500 +v -1.125000 4.599112 0.099112 +v -1.125000 4.687500 0.062500 +v -1.125000 4.775888 0.099112 +v -1.301777 4.739277 0.187500 +v -1.275888 4.713388 0.275889 +v -1.213388 4.650888 0.312500 +v -1.150888 4.588388 0.275889 +v -1.150888 4.588388 0.099112 +v -1.213388 4.650888 0.062500 +v -1.275888 4.713388 0.099112 +v -1.375000 4.562500 0.187500 +v -1.338388 4.562500 0.275889 +v -1.250000 4.562500 0.312500 +v -1.161612 4.562500 0.275889 +v -1.161612 4.562500 0.099112 +v -1.250000 4.562500 0.062500 +v -1.338388 4.562500 0.099112 +v -1.125000 0.750000 0.187500 +v -1.375000 0.750000 0.187500 +v -1.338388 0.750000 0.275889 +v -1.250000 0.750000 0.312500 +v -1.161612 0.750000 0.275889 +v -1.161612 0.750000 0.099112 +v -1.250000 0.750000 0.062500 +v -1.338388 0.750000 0.099112 +v 0.187500 4.812500 -0.375000 +v 0.099112 4.775888 -0.375000 +v 0.062500 4.687500 -0.375000 +v 0.099112 4.599112 -0.375000 +v 0.187500 4.562500 -0.375000 +v 0.275888 4.599112 -0.375000 +v 0.312500 4.687500 -0.375000 +v 0.275888 4.775888 -0.375000 +v 0.187500 4.812500 -1.125000 +v 0.099112 4.775888 -1.125000 +v 0.062500 4.687500 -1.125000 +v 0.099112 4.599112 -1.125000 +v 0.187500 4.562500 -1.125000 +v 0.275888 4.599112 -1.125000 +v 0.312500 4.687500 -1.125000 +v 0.275888 4.775888 -1.125000 +v 0.187500 4.739277 -1.301777 +v 0.099112 4.713388 -1.275888 +v 0.062500 4.650888 -1.213388 +v 0.099112 4.588388 -1.150888 +v 0.275888 4.588388 -1.150888 +v 0.312500 4.650888 -1.213388 +v 0.275888 4.713388 -1.275888 +v 0.187500 4.562500 -1.375000 +v 0.099112 4.562500 -1.338388 +v 0.062500 4.562500 -1.250000 +v 0.099112 4.562500 -1.161612 +v 0.275888 4.562500 -1.161612 +v 0.312500 4.562500 -1.250000 +v 0.275888 4.562500 -1.338388 +v 0.187500 0.750001 -1.125000 +v 0.187500 0.750001 -1.375000 +v 0.099112 0.750001 -1.338388 +v 0.062500 0.750001 -1.250000 +v 0.099112 0.750001 -1.161612 +v 0.275888 0.750001 -1.161612 +v 0.312500 0.750001 -1.250000 +v 0.275888 0.750001 -1.338388 +v -0.187500 4.812500 -0.375000 +v -0.275888 4.775888 -0.375000 +v -0.312500 4.687500 -0.375000 +v -0.275888 4.599112 -0.375000 +v -0.187500 4.562500 -0.375000 +v -0.099112 4.599112 -0.375000 +v -0.062500 4.687500 -0.375000 +v -0.099112 4.775888 -0.375000 +v -0.187500 4.812500 -1.125000 +v -0.275888 4.775888 -1.125000 +v -0.312500 4.687500 -1.125000 +v -0.275888 4.599112 -1.125000 +v -0.187500 4.562500 -1.125000 +v -0.099112 4.599112 -1.125000 +v -0.062500 4.687500 -1.125000 +v -0.099112 4.775888 -1.125000 +v -0.187500 4.739277 -1.301777 +v -0.275888 4.713388 -1.275888 +v -0.312500 4.650888 -1.213388 +v -0.275888 4.588388 -1.150888 +v -0.099112 4.588388 -1.150888 +v -0.062500 4.650888 -1.213388 +v -0.099112 4.713388 -1.275888 +v -0.187500 4.562500 -1.375000 +v -0.275888 4.562500 -1.338388 +v -0.312500 4.562500 -1.250000 +v -0.275889 4.562500 -1.161612 +v -0.099112 4.562500 -1.161612 +v -0.062500 4.562500 -1.250000 +v -0.099112 4.562500 -1.338388 +v -0.187500 0.750001 -1.125000 +v -0.187500 0.750001 -1.375000 +v -0.275888 0.750001 -1.338388 +v -0.312500 0.750001 -1.250000 +v -0.275889 0.750001 -1.161612 +v -0.099112 0.750001 -1.161612 +v -0.062500 0.750001 -1.250000 +v -0.099112 0.750001 -1.338388 +v -0.187500 4.812500 0.375000 +v -0.099111 4.775888 0.375000 +v -0.062500 4.687500 0.375000 +v -0.099111 4.599112 0.375000 +v -0.187500 4.562500 0.375000 +v -0.275888 4.599112 0.375000 +v -0.312500 4.687500 0.375000 +v -0.275888 4.775888 0.375000 +v -0.187500 4.812500 1.125000 +v -0.099111 4.775888 1.125000 +v -0.062500 4.687500 1.125000 +v -0.099111 4.599112 1.125000 +v -0.187500 4.562500 1.125000 +v -0.275888 4.599112 1.125000 +v -0.312500 4.687500 1.125000 +v -0.275888 4.775888 1.125000 +v -0.187500 4.739277 1.301777 +v -0.099111 4.713388 1.275888 +v -0.062500 4.650888 1.213388 +v -0.099111 4.588388 1.150888 +v -0.275888 4.588388 1.150888 +v -0.312500 4.650888 1.213388 +v -0.275888 4.713388 1.275888 +v -0.187500 4.562500 1.375000 +v -0.099111 4.562500 1.338388 +v -0.062500 4.562500 1.250000 +v -0.099111 4.562500 1.161612 +v -0.275888 4.562500 1.161612 +v -0.312500 4.562500 1.250000 +v -0.275888 4.562500 1.338388 +v -0.187500 0.750001 1.125000 +v -0.187500 0.750001 1.375000 +v -0.099111 0.750001 1.338388 +v -0.062500 0.750001 1.250000 +v -0.099111 0.750001 1.161612 +v -0.275888 0.750001 1.161612 +v -0.312500 0.750001 1.250000 +v -0.275888 0.750001 1.338388 +v 0.187500 4.812500 0.375000 +v 0.275888 4.775888 0.375000 +v 0.312500 4.687500 0.375000 +v 0.275888 4.599112 0.375000 +v 0.187500 4.562500 0.375000 +v 0.099112 4.599112 0.375000 +v 0.062500 4.687500 0.375000 +v 0.099112 4.775888 0.375000 +v 0.187500 4.812500 1.125000 +v 0.275889 4.775888 1.125000 +v 0.312500 4.687500 1.125000 +v 0.275889 4.599112 1.125000 +v 0.187500 4.562500 1.125000 +v 0.099112 4.599112 1.125000 +v 0.062500 4.687500 1.125000 +v 0.099112 4.775888 1.125000 +v 0.187500 4.739277 1.301777 +v 0.275889 4.713388 1.275888 +v 0.312500 4.650888 1.213388 +v 0.275889 4.588388 1.150888 +v 0.099112 4.588388 1.150888 +v 0.062500 4.650888 1.213388 +v 0.099112 4.713388 1.275888 +v 0.187500 4.562500 1.375000 +v 0.275889 4.562500 1.338388 +v 0.312500 4.562500 1.250000 +v 0.275889 4.562500 1.161612 +v 0.099112 4.562500 1.161612 +v 0.062500 4.562500 1.250000 +v 0.099112 4.562500 1.338388 +v 0.187500 0.750001 1.125000 +v 0.187500 0.750001 1.375000 +v 0.275889 0.750001 1.338388 +v 0.312500 0.750001 1.250000 +v 0.275889 0.750001 1.161612 +v 0.099112 0.750001 1.161612 +v 0.062500 0.750001 1.250000 +v 0.099112 0.750001 1.338388 +vt 0.655660 0.930000 +vt 0.589623 0.940000 +vt 0.589623 0.930000 +vt -0.000000 0.520000 +vt 0.226415 1.000000 +vt -0.000000 1.000000 +vt 0.226415 0.480000 +vt -0.000000 0.520000 +vt -0.000000 0.480000 +vt 0.226415 0.480000 +vt -0.000000 0.520000 +vt -0.000000 0.480000 +vt 0.226415 0.480000 +vt -0.000000 0.480000 +vt 0.226415 0.480000 +vt -0.000000 0.520000 +vt -0.000000 0.480000 +vt 0.386792 0.640000 +vt 0.273585 0.720000 +vt 0.273585 0.640000 +vt 0.226415 0.160000 +vt 0.377358 0.480000 +vt 0.226415 0.480000 +vt 0.377358 0.000000 +vt 0.226415 -0.000000 +vt 0.377358 -0.000000 +vt 0.226415 0.160000 +vt 0.226415 -0.000000 +vt 0.377358 -0.000000 +vt 0.226415 0.160000 +vt 0.226415 -0.000000 +vt 0.377358 -0.000000 +vt 0.226415 0.160000 +vt 0.226415 -0.000000 +vt 0.273585 0.730000 +vt 0.386792 0.810000 +vt 0.273585 0.810000 +vt 0.424528 0.720000 +vt 0.386792 0.730000 +vt 0.386792 0.720000 +vt 0.235849 0.730000 +vt 0.235849 0.720000 +vt 0.386792 0.640000 +vt 0.273585 0.720000 +vt 0.273585 0.640000 +vt 0.273585 0.730000 +vt 0.386792 0.810000 +vt 0.273585 0.810000 +vt 0.424528 0.720000 +vt 0.386792 0.730000 +vt 0.386792 0.720000 +vt 0.235849 0.730000 +vt 0.235849 0.720000 +vt 0.386792 0.640000 +vt 0.273585 0.720000 +vt 0.273585 0.640000 +vt 0.273585 0.730000 +vt 0.386792 0.810000 +vt 0.273585 0.810000 +vt 0.424528 0.720000 +vt 0.386792 0.730000 +vt 0.386792 0.720000 +vt 0.235849 0.730000 +vt 0.235849 0.720000 +vt 0.386792 0.640000 +vt 0.273585 0.720000 +vt 0.273585 0.640000 +vt 0.273585 0.730000 +vt 0.386792 0.810000 +vt 0.273585 0.810000 +vt 0.424528 0.720000 +vt 0.386792 0.730000 +vt 0.386792 0.720000 +vt 0.235849 0.730000 +vt 0.235849 0.720000 +vt 0.273585 0.810000 +vt 0.386792 0.730000 +vt 0.386792 0.810000 +vt 0.386792 0.720000 +vt 0.273585 0.640000 +vt 0.386792 0.640000 +vt 0.235849 0.730000 +vt 0.273585 0.720000 +vt 0.273585 0.730000 +vt 0.424528 0.720000 +vt 0.424528 0.730000 +vt 0.273585 0.810000 +vt 0.386792 0.730000 +vt 0.386792 0.810000 +vt 0.386792 0.720000 +vt 0.273585 0.640000 +vt 0.386792 0.640000 +vt 0.235849 0.730000 +vt 0.273585 0.720000 +vt 0.273585 0.730000 +vt 0.424528 0.720000 +vt 0.424528 0.730000 +vt 0.273585 0.810000 +vt 0.386792 0.730000 +vt 0.386792 0.810000 +vt 0.386792 0.720000 +vt 0.273585 0.640000 +vt 0.386792 0.640000 +vt 0.235849 0.730000 +vt 0.273585 0.720000 +vt 0.273585 0.730000 +vt 0.424528 0.720000 +vt 0.424528 0.730000 +vt 0.273585 0.810000 +vt 0.386792 0.730000 +vt 0.386792 0.810000 +vt 0.386792 0.720000 +vt 0.273585 0.640000 +vt 0.386792 0.640000 +vt 0.235849 0.730000 +vt 0.273585 0.720000 +vt 0.273585 0.730000 +vt 0.424528 0.720000 +vt 0.424528 0.730000 +vt 0.273585 0.810000 +vt 0.386792 0.730000 +vt 0.386792 0.810000 +vt 0.386792 0.720000 +vt 0.273585 0.640000 +vt 0.386792 0.640000 +vt 0.235849 0.730000 +vt 0.273585 0.720000 +vt 0.273585 0.730000 +vt 0.424528 0.720000 +vt 0.424528 0.730000 +vt 0.273585 0.810000 +vt 0.386792 0.730000 +vt 0.386792 0.810000 +vt 0.386792 0.720000 +vt 0.273585 0.640000 +vt 0.386792 0.640000 +vt 0.235849 0.730000 +vt 0.273585 0.720000 +vt 0.273585 0.730000 +vt 0.424528 0.720000 +vt 0.424528 0.730000 +vt 0.273585 0.810000 +vt 0.386792 0.730000 +vt 0.386792 0.810000 +vt 0.386792 0.720000 +vt 0.273585 0.640000 +vt 0.386792 0.640000 +vt 0.235849 0.730000 +vt 0.273585 0.720000 +vt 0.273585 0.730000 +vt 0.424528 0.720000 +vt 0.424528 0.730000 +vt 0.273585 0.810000 +vt 0.386792 0.730000 +vt 0.386792 0.810000 +vt 0.386792 0.720000 +vt 0.273585 0.640000 +vt 0.386792 0.640000 +vt 0.235849 0.730000 +vt 0.273585 0.720000 +vt 0.273585 0.730000 +vt 0.424528 0.720000 +vt 0.424528 0.730000 +vt 0.386792 0.640000 +vt 0.273585 0.720000 +vt 0.273585 0.640000 +vt 0.273585 0.730000 +vt 0.386792 0.810000 +vt 0.273585 0.810000 +vt 0.424528 0.720000 +vt 0.386792 0.730000 +vt 0.386792 0.720000 +vt 0.235849 0.730000 +vt 0.235849 0.720000 +vt 0.386792 0.640000 +vt 0.273585 0.720000 +vt 0.273585 0.640000 +vt 0.273585 0.730000 +vt 0.386792 0.810000 +vt 0.273585 0.810000 +vt 0.424528 0.720000 +vt 0.386792 0.730000 +vt 0.386792 0.720000 +vt 0.235849 0.730000 +vt 0.235849 0.720000 +vt 0.386792 0.640000 +vt 0.273585 0.720000 +vt 0.273585 0.640000 +vt 0.273585 0.730000 +vt 0.386792 0.810000 +vt 0.273585 0.810000 +vt 0.424528 0.720000 +vt 0.386792 0.730000 +vt 0.386792 0.720000 +vt 0.235849 0.730000 +vt 0.235849 0.720000 +vt 0.386792 0.640000 +vt 0.273585 0.720000 +vt 0.273585 0.640000 +vt 0.273585 0.730000 +vt 0.386792 0.810000 +vt 0.273585 0.810000 +vt 0.424528 0.720000 +vt 0.386792 0.730000 +vt 0.386792 0.720000 +vt 0.235849 0.730000 +vt 0.235849 0.720000 +vt 0.867925 0.600000 +vt 0.886792 0.560000 +vt 0.886792 0.600000 +vt 0.867925 0.560000 +vt 0.886792 0.600000 +vt 0.867925 0.600000 +vt 0.886792 -0.000000 +vt 0.867925 -0.000000 +vt 0.924528 -0.000000 +vt 0.905660 0.560000 +vt 0.905660 -0.000000 +vt 0.886792 0.560000 +vt 0.849057 0.560000 +vt 0.849057 -0.000000 +vt 0.867925 -0.000000 +vt 0.849057 0.560000 +vt 0.849057 -0.000000 +vt 0.905660 -0.000000 +vt 0.886792 -0.000000 +vt 0.867925 0.560000 +vt 0.924528 -0.000000 +vt 0.905660 0.560000 +vt 0.924528 -0.000000 +vt 0.905660 0.560000 +vt 0.905660 -0.000000 +vt 0.886792 -0.000000 +vt 0.867925 0.560000 +vt 0.867925 -0.000000 +vt 0.886792 0.560000 +vt 0.849057 0.560000 +vt 0.849057 -0.000000 +vt 0.867925 -0.000000 +vt 0.849057 0.560000 +vt 0.849057 -0.000000 +vt 0.905660 -0.000000 +vt 0.886792 0.560000 +vt 0.886792 -0.000000 +vt 0.924528 -0.000000 +vt 0.905660 0.560000 +vt 0.867925 0.560000 +vt 0.886792 0.600000 +vt 0.867925 0.600000 +vt 0.886792 0.600000 +vt 0.424528 0.720000 +vt 0.575472 0.760000 +vt 0.424528 0.760000 +vt 0.575472 0.640000 +vt 0.424528 0.680000 +vt 0.424528 0.640000 +vt 0.424528 0.800000 +vt 0.575472 0.640000 +vt 0.424528 0.680000 +vt 0.424528 0.640000 +vt 0.575472 0.680000 +vt 0.575472 0.720000 +vt 0.424528 0.720000 +vt 0.575472 0.760000 +vt 0.424528 0.760000 +vt 0.424528 0.800000 +vt 0.575472 0.680000 +vt 0.575472 0.720000 +vt 0.424528 0.720000 +vt 0.575472 0.760000 +vt 0.424528 0.760000 +vt 0.575472 0.640000 +vt 0.424528 0.680000 +vt 0.424528 0.640000 +vt 0.424528 0.800000 +vt 0.575472 0.640000 +vt 0.424528 0.680000 +vt 0.424528 0.640000 +vt 0.575472 0.680000 +vt 0.575472 0.720000 +vt 0.424528 0.720000 +vt 0.575472 0.760000 +vt 0.424528 0.760000 +vt 0.424528 0.800000 +vt 0.575472 0.680000 +vt 0.575472 0.720000 +vt 0.655660 0.790000 +vt 0.589623 0.790000 +vt 0.575472 0.780000 +vt 0.580189 0.940000 +vt 0.575472 0.940000 +vt 0.669811 0.940000 +vt 0.665094 0.780000 +vt 0.669811 0.780000 +vt 0.584906 0.790000 +vt 0.226415 -0.000000 +vt 0.075472 0.160000 +vt -0.000000 0.000000 +vt 0.150943 0.160000 +vt 0.150943 0.320000 +vt 0.075472 0.320000 +vt 0.665094 0.940000 +vt 0.660377 0.790000 +vt 0.584906 0.950000 +vt 0.655660 0.940000 +vt 0.660377 0.950000 +vt 0.580189 0.780000 +vt 0.584906 0.930000 +vt 0.660377 0.770000 +vt 0.589623 0.780000 +vt 0.584906 0.770000 +vt 0.655660 0.780000 +vt 0.584906 0.960000 +vt 0.660377 0.960000 +vt 0.660377 0.760000 +vt 0.584906 0.760000 +vt 0.660377 0.930000 +vt 0.707547 0.720000 +vt 0.745283 0.800000 +vt 0.707547 0.800000 +vt 0.707547 0.710000 +vt 0.754717 0.680000 +vt 0.745283 0.710000 +vt 0.745283 0.720000 +vt 0.820755 0.720000 +vt 0.858491 0.710000 +vt 0.858491 0.720000 +vt 0.764151 0.720000 +vt 0.801887 0.710000 +vt 0.801887 0.720000 +vt 0.650943 0.720000 +vt 0.688679 0.710000 +vt 0.688679 0.720000 +vt 0.811321 0.640000 +vt 0.811321 0.680000 +vt 0.820755 0.710000 +vt 0.867925 0.680000 +vt 0.764151 0.710000 +vt 0.650943 0.710000 +vt 0.698113 0.680000 +vt 0.641509 0.680000 +vt 0.698113 0.640000 +vt 0.754717 0.640000 +vt 0.867925 0.640000 +vt 0.235849 0.700000 +vt 0.264151 0.640000 +vt 0.264151 0.700000 +vt 0.254717 0.560000 +vt 0.367925 0.620000 +vt 0.254717 0.620000 +vt 0.367925 0.480000 +vt 0.367925 0.560000 +vt 0.396226 0.480000 +vt 0.396226 0.560000 +vt 0.226415 0.560000 +vt 0.254717 0.480000 +vt 0.235849 0.700000 +vt 0.264151 0.640000 +vt 0.264151 0.700000 +vt 0.273585 0.700000 +vt 0.235849 0.640000 +vt 0.264151 0.620000 +vt 0.235849 0.720000 +vt 0.226415 0.640000 +vt 0.254717 0.560000 +vt 0.367925 0.620000 +vt 0.254717 0.620000 +vt 0.367925 0.480000 +vt 0.367925 0.560000 +vt 0.396226 0.480000 +vt 0.396226 0.560000 +vt 0.226415 0.560000 +vt 0.254717 0.480000 +vt 0.273585 0.700000 +vt 0.235849 0.640000 +vt 0.264151 0.620000 +vt 0.235849 0.720000 +vt 0.226415 0.640000 +vt 0.235849 0.700000 +vt 0.264151 0.640000 +vt 0.264151 0.700000 +vt 0.254717 0.560000 +vt 0.367925 0.620000 +vt 0.254717 0.620000 +vt 0.367925 0.480000 +vt 0.367925 0.560000 +vt 0.396226 0.480000 +vt 0.396226 0.560000 +vt 0.226415 0.560000 +vt 0.254717 0.480000 +vt 0.235849 0.700000 +vt 0.264151 0.640000 +vt 0.264151 0.700000 +vt 0.273585 0.700000 +vt 0.235849 0.640000 +vt 0.264151 0.620000 +vt 0.235849 0.720000 +vt 0.226415 0.640000 +vt 0.254717 0.560000 +vt 0.367925 0.620000 +vt 0.254717 0.620000 +vt 0.367925 0.480000 +vt 0.367925 0.560000 +vt 0.396226 0.480000 +vt 0.396226 0.560000 +vt 0.226415 0.560000 +vt 0.254717 0.480000 +vt 0.273585 0.700000 +vt 0.235849 0.640000 +vt 0.264151 0.620000 +vt 0.264151 0.720000 +vt 0.235849 0.720000 +vt 0.226415 0.640000 +vt 0.584906 0.640000 +vt 0.575472 0.680000 +vt 0.575472 0.640000 +vt 0.641509 0.680000 +vt 0.632075 0.640000 +vt 0.641509 0.640000 +vt 0.632075 0.680000 +vt 0.584906 0.640000 +vt 0.575472 0.680000 +vt 0.575472 0.640000 +vt 0.641509 0.680000 +vt 0.632075 0.640000 +vt 0.641509 0.640000 +vt 0.632075 0.680000 +vt 0.584906 0.640000 +vt 0.575472 0.680000 +vt 0.575472 0.640000 +vt 0.641509 0.680000 +vt 0.632075 0.640000 +vt 0.641509 0.640000 +vt 0.632075 0.680000 +vt 0.584906 0.640000 +vt 0.575472 0.680000 +vt 0.575472 0.640000 +vt 0.641509 0.680000 +vt 0.632075 0.640000 +vt 0.641509 0.640000 +vt 0.632075 0.680000 +vt 0.226415 0.520000 +vt 0.226415 0.520000 +vt 0.226415 0.520000 +vt 0.226415 0.520000 +vt 0.377358 0.160000 +vt 0.377358 0.160000 +vt 0.377358 0.160000 +vt 0.377358 0.160000 +vt 0.424528 0.730000 +vt 0.424528 0.730000 +vt 0.424528 0.730000 +vt 0.424528 0.730000 +vt 0.235849 0.720000 +vt 0.235849 0.720000 +vt 0.235849 0.720000 +vt 0.235849 0.720000 +vt 0.235849 0.720000 +vt 0.235849 0.720000 +vt 0.235849 0.720000 +vt 0.235849 0.720000 +vt 0.424528 0.730000 +vt 0.424528 0.730000 +vt 0.424528 0.730000 +vt 0.424528 0.730000 +vt 0.924528 0.560000 +vt 0.924528 0.560000 +vt 0.924528 0.560000 +vt 0.924528 0.560000 +vt 0.867925 0.600000 +vt 0.575472 0.800000 +vt 0.575472 0.800000 +vt 0.575472 0.800000 +vt 0.575472 0.800000 +vt 0.641509 0.640000 +vt 0.226415 0.480000 +vt 0.273585 0.640000 +vt 0.235849 0.620000 +vt 0.264151 0.720000 +vt 0.226415 0.700000 +vt 0.226415 0.480000 +vt 0.273585 0.640000 +vt 0.235849 0.620000 +vt 0.264151 0.720000 +vt 0.226415 0.700000 +vt 0.226415 0.480000 +vt 0.273585 0.640000 +vt 0.235849 0.620000 +vt 0.264151 0.720000 +vt 0.226415 0.700000 +vt 0.226415 0.480000 +vt 0.273585 0.640000 +vt 0.235849 0.620000 +vt 0.226415 0.700000 +vt 0.584906 0.680000 +vt 0.584906 0.680000 +vt 0.584906 0.680000 +vt 0.584906 0.680000 +vt 0.731132 0.560000 +vt 0.712264 0.480000 +vt 0.735849 0.480000 +vt 0.707547 0.400000 +vt 0.735849 0.400000 +vt 0.721698 0.640000 +vt 0.716981 0.560000 +vt 0.702830 0.560000 +vt 0.683962 0.480000 +vt 0.707547 0.480000 +vt 0.679245 0.400000 +vt 0.693396 0.640000 +vt 0.688679 0.560000 +vt 0.679245 0.480000 +vt 0.660377 0.560000 +vt 0.655660 0.480000 +vt 0.650943 0.400000 +vt 0.674528 0.560000 +vt 0.665094 0.640000 +vt 0.627358 0.480000 +vt 0.622642 0.400000 +vt 0.646226 0.560000 +vt 0.636792 0.640000 +vt 0.632075 0.560000 +vt 0.650943 0.480000 +vt 0.599057 0.480000 +vt 0.594340 0.400000 +vt 0.617925 0.560000 +vt 0.608491 0.640000 +vt 0.603774 0.560000 +vt 0.622642 0.480000 +vt 0.570755 0.480000 +vt 0.566038 0.400000 +vt 0.589623 0.560000 +vt 0.580189 0.640000 +vt 0.575472 0.560000 +vt 0.594340 0.480000 +vt 0.566038 0.480000 +vt 0.537736 0.400000 +vt 0.561321 0.560000 +vt 0.551887 0.640000 +vt 0.547170 0.560000 +vt 0.542453 0.480000 +vt 0.537736 0.480000 +vt 0.509434 0.400000 +vt 0.533019 0.560000 +vt 0.523585 0.640000 +vt 0.518868 0.560000 +vt 0.514151 0.480000 +vt 0.504717 0.560000 +vt 0.495283 0.640000 +vt 0.490566 0.560000 +vt 0.485849 0.480000 +vt 0.509434 0.480000 +vt 0.481132 0.400000 +vt 0.476415 0.560000 +vt 0.457547 0.480000 +vt 0.481132 0.480000 +vt 0.452830 0.400000 +vt 0.466981 0.640000 +vt 0.462264 0.560000 +vt 0.448113 0.560000 +vt 0.429245 0.480000 +vt 0.452830 0.480000 +vt 0.396226 0.400000 +vt 0.424528 0.000000 +vt 0.424528 0.400000 +vt 0.438679 0.640000 +vt 0.433962 0.560000 +vt 0.566038 -0.000000 +vt 0.537736 0.000000 +vt 0.419811 0.560000 +vt 0.400943 0.480000 +vt 0.424528 0.480000 +vt 0.452830 0.000000 +vt 0.410377 0.640000 +vt 0.405660 0.560000 +vt 0.735849 0.000000 +vt 0.844340 0.560000 +vt 0.825472 0.480000 +vt 0.849057 0.480000 +vt 0.594340 0.000000 +vt 0.820755 0.400000 +vt 0.849057 0.400000 +vt 0.834906 0.640000 +vt 0.830189 0.560000 +vt 0.707547 0.000000 +vt 0.820755 0.480000 +vt 0.801887 0.560000 +vt 0.797170 0.480000 +vt 0.792453 0.400000 +vt 0.820755 -0.000000 +vt 0.816038 0.560000 +vt 0.806604 0.640000 +vt 0.764151 0.400000 +vt 0.792453 0.000000 +vt 0.481132 -0.000000 +vt 0.509434 0.000000 +vt 0.768868 0.480000 +vt 0.787736 0.560000 +vt 0.778302 0.640000 +vt 0.773585 0.560000 +vt 0.622642 0.000000 +vt 0.764151 0.000000 +vt 0.792453 0.480000 +vt 0.679245 0.000000 +vt 0.740566 0.480000 +vt 0.759434 0.560000 +vt 0.750000 0.640000 +vt 0.745283 0.560000 +vt 0.650943 -0.000000 +vt 0.849057 0.000000 +vt 0.764151 0.480000 +vt 0.962264 0.670000 +vt 0.971698 0.790000 +vt 0.962264 0.790000 +vt 0.952830 0.670000 +vt 0.952830 0.790000 +vt 0.933962 0.670000 +vt 0.943396 0.790000 +vt 0.933962 0.790000 +vt 0.990566 0.670000 +vt 1.000000 0.790000 +vt 0.990566 0.790000 +vt 0.971698 0.670000 +vt 0.981132 0.790000 +vt 0.943396 0.670000 +vt 0.924528 0.670000 +vt 0.924528 0.790000 +vt 0.981132 0.670000 +vt 0.971698 0.640000 +vt 0.981132 0.660000 +vt 0.943396 0.640000 +vt 0.943396 0.660000 +vt 0.990566 0.640000 +vt 0.990566 0.650000 +vt 0.962264 0.640000 +vt 0.933962 0.640000 +vt 0.933962 0.650000 +vt 0.952830 0.640000 +vt 0.962264 0.610000 +vt 0.943396 0.620000 +vt 0.971698 0.610000 +vt 0.981132 0.640000 +vt 0.990566 0.630000 +vt 0.924528 0.640000 +vt 0.933962 0.630000 +vt 1.000000 0.640000 +vt 0.990566 0.610000 +vt 1.000000 0.010000 +vt 1.000000 0.610000 +vt 0.952830 0.610000 +vt 0.962264 0.010000 +vt 0.924528 0.610000 +vt 0.933962 0.010000 +vt 0.933962 0.610000 +vt 0.943396 0.010000 +vt 0.943396 0.610000 +vt 0.981132 0.010000 +vt 0.981132 0.610000 +vt 0.952830 0.010000 +vt 0.990566 0.010000 +vt 0.971698 0.010000 +vt 0.962264 0.670000 +vt 0.971698 0.790000 +vt 0.962264 0.790000 +vt 0.952830 0.670000 +vt 0.952830 0.790000 +vt 0.933962 0.670000 +vt 0.943396 0.790000 +vt 0.933962 0.790000 +vt 0.990566 0.670000 +vt 1.000000 0.790000 +vt 0.990566 0.790000 +vt 0.971698 0.670000 +vt 0.981132 0.790000 +vt 0.943396 0.670000 +vt 0.924528 0.670000 +vt 0.924528 0.790000 +vt 0.981132 0.670000 +vt 0.981132 0.640000 +vt 0.981132 0.660000 +vt 0.943396 0.660000 +vt 0.952830 0.640000 +vt 0.990566 0.640000 +vt 0.990566 0.650000 +vt 0.962264 0.640000 +vt 0.933962 0.640000 +vt 0.933962 0.650000 +vt 0.962264 0.610000 +vt 0.943396 0.620000 +vt 0.943396 0.640000 +vt 0.971698 0.640000 +vt 0.981132 0.620000 +vt 0.952830 0.610000 +vt 0.990566 0.630000 +vt 0.924528 0.640000 +vt 0.933962 0.630000 +vt 1.000000 0.640000 +vt 0.990566 0.610000 +vt 1.000000 0.010000 +vt 1.000000 0.610000 +vt 0.962264 0.010000 +vt 0.924528 0.610000 +vt 0.933962 0.010000 +vt 0.933962 0.610000 +vt 0.943396 0.010000 +vt 0.943396 0.610000 +vt 0.971698 0.610000 +vt 0.981132 0.010000 +vt 0.981132 0.610000 +vt 0.952830 0.010000 +vt 0.990566 0.010000 +vt 0.971698 0.010000 +vt 0.962264 0.790000 +vt 0.971698 0.670000 +vt 0.971698 0.790000 +vt 0.952830 0.670000 +vt 0.952830 0.790000 +vt 0.933962 0.790000 +vt 0.943396 0.670000 +vt 0.943396 0.790000 +vt 0.990566 0.670000 +vt 1.000000 0.790000 +vt 0.990566 0.790000 +vt 0.981132 0.790000 +vt 0.924528 0.670000 +vt 0.924528 0.790000 +vt 0.981132 0.670000 +vt 0.971698 0.640000 +vt 0.981132 0.660000 +vt 0.943396 0.640000 +vt 0.943396 0.660000 +vt 0.990566 0.640000 +vt 0.990566 0.650000 +vt 0.962264 0.640000 +vt 0.962264 0.670000 +vt 0.933962 0.640000 +vt 0.933962 0.650000 +vt 0.952830 0.640000 +vt 0.962264 0.610000 +vt 0.943396 0.620000 +vt 0.981132 0.620000 +vt 0.981132 0.640000 +vt 0.990566 0.630000 +vt 0.924528 0.640000 +vt 0.933962 0.630000 +vt 1.000000 0.640000 +vt 0.990566 0.610000 +vt 1.000000 0.010000 +vt 1.000000 0.610000 +vt 0.952830 0.610000 +vt 0.962264 0.010000 +vt 0.924528 0.610000 +vt 0.933962 0.010000 +vt 0.933962 0.610000 +vt 0.943396 0.010000 +vt 0.943396 0.610000 +vt 0.971698 0.610000 +vt 0.981132 0.010000 +vt 0.981132 0.610000 +vt 0.952830 0.010000 +vt 0.990566 0.010000 +vt 0.971698 0.010000 +vt 0.962264 0.670000 +vt 0.971698 0.790000 +vt 0.962264 0.790000 +vt 0.952830 0.670000 +vt 0.952830 0.790000 +vt 0.933962 0.670000 +vt 0.943396 0.790000 +vt 0.933962 0.790000 +vt 0.990566 0.670000 +vt 1.000000 0.790000 +vt 0.990566 0.790000 +vt 0.971698 0.670000 +vt 0.981132 0.790000 +vt 0.943396 0.670000 +vt 0.924528 0.670000 +vt 0.924528 0.790000 +vt 0.981132 0.670000 +vt 0.971698 0.640000 +vt 0.981132 0.660000 +vt 0.943396 0.660000 +vt 0.952830 0.640000 +vt 0.990566 0.640000 +vt 0.990566 0.650000 +vt 0.962264 0.640000 +vt 0.933962 0.640000 +vt 0.933962 0.650000 +vt 0.962264 0.610000 +vt 0.933962 0.630000 +vt 0.943396 0.640000 +vt 0.971698 0.610000 +vt 0.981132 0.640000 +vt 0.943396 0.620000 +vt 0.990566 0.630000 +vt 0.924528 0.640000 +vt 1.000000 0.640000 +vt 0.990566 0.610000 +vt 1.000000 0.010000 +vt 1.000000 0.610000 +vt 0.952830 0.610000 +vt 0.962264 0.010000 +vt 0.924528 0.610000 +vt 0.933962 0.010000 +vt 0.933962 0.610000 +vt 0.943396 0.010000 +vt 0.943396 0.610000 +vt 0.981132 0.010000 +vt 0.981132 0.610000 +vt 0.952830 0.010000 +vt 0.990566 0.010000 +vt 0.971698 0.010000 +vt 0.962264 0.670000 +vt 0.971698 0.790000 +vt 0.962264 0.790000 +vt 0.952830 0.670000 +vt 0.952830 0.790000 +vt 0.933962 0.670000 +vt 0.943396 0.790000 +vt 0.933962 0.790000 +vt 0.990566 0.670000 +vt 1.000000 0.790000 +vt 0.990566 0.790000 +vt 0.971698 0.670000 +vt 0.981132 0.790000 +vt 0.943396 0.670000 +vt 0.924528 0.670000 +vt 0.924528 0.790000 +vt 0.981132 0.670000 +vt 0.971698 0.640000 +vt 0.981132 0.660000 +vt 0.943396 0.640000 +vt 0.943396 0.660000 +vt 0.990566 0.640000 +vt 0.990566 0.650000 +vt 0.962264 0.640000 +vt 0.933962 0.640000 +vt 0.933962 0.650000 +vt 0.952830 0.640000 +vt 0.962264 0.610000 +vt 0.943396 0.620000 +vt 0.971698 0.610000 +vt 0.981132 0.640000 +vt 0.952830 0.610000 +vt 0.990566 0.630000 +vt 0.924528 0.640000 +vt 0.933962 0.630000 +vt 1.000000 0.640000 +vt 0.990566 0.610000 +vt 1.000000 0.010000 +vt 1.000000 0.610000 +vt 0.962264 0.010000 +vt 0.924528 0.610000 +vt 0.933962 0.010000 +vt 0.933962 0.610000 +vt 0.943396 0.010000 +vt 0.943396 0.610000 +vt 0.981132 0.010000 +vt 0.981132 0.610000 +vt 0.952830 0.010000 +vt 0.990566 0.010000 +vt 0.971698 0.010000 +vt 0.962264 0.670000 +vt 0.971698 0.790000 +vt 0.962264 0.790000 +vt 0.952830 0.670000 +vt 0.952830 0.790000 +vt 0.933962 0.670000 +vt 0.943396 0.790000 +vt 0.933962 0.790000 +vt 0.990566 0.670000 +vt 1.000000 0.790000 +vt 0.990566 0.790000 +vt 0.971698 0.670000 +vt 0.981132 0.790000 +vt 0.943396 0.670000 +vt 0.924528 0.670000 +vt 0.924528 0.790000 +vt 0.981132 0.670000 +vt 0.981132 0.640000 +vt 0.981132 0.660000 +vt 0.943396 0.660000 +vt 0.952830 0.640000 +vt 0.990566 0.640000 +vt 0.990566 0.650000 +vt 0.962264 0.640000 +vt 0.933962 0.640000 +vt 0.933962 0.650000 +vt 0.962264 0.610000 +vt 0.943396 0.620000 +vt 0.943396 0.640000 +vt 0.971698 0.640000 +vt 0.981132 0.620000 +vt 0.952830 0.610000 +vt 0.990566 0.630000 +vt 0.924528 0.640000 +vt 0.933962 0.630000 +vt 1.000000 0.640000 +vt 0.990566 0.610000 +vt 1.000000 0.010000 +vt 1.000000 0.610000 +vt 0.962264 0.010000 +vt 0.924528 0.610000 +vt 0.933962 0.010000 +vt 0.933962 0.610000 +vt 0.943396 0.010000 +vt 0.943396 0.610000 +vt 0.971698 0.610000 +vt 0.981132 0.010000 +vt 0.981132 0.610000 +vt 0.952830 0.010000 +vt 0.990566 0.010000 +vt 0.971698 0.010000 +vt 0.962264 0.790000 +vt 0.971698 0.670000 +vt 0.971698 0.790000 +vt 0.952830 0.670000 +vt 0.952830 0.790000 +vt 0.933962 0.790000 +vt 0.943396 0.670000 +vt 0.943396 0.790000 +vt 0.990566 0.670000 +vt 1.000000 0.790000 +vt 0.990566 0.790000 +vt 0.981132 0.790000 +vt 0.924528 0.670000 +vt 0.924528 0.790000 +vt 0.981132 0.670000 +vt 0.971698 0.640000 +vt 0.981132 0.660000 +vt 0.943396 0.660000 +vt 0.952830 0.640000 +vt 0.990566 0.640000 +vt 0.990566 0.650000 +vt 0.962264 0.640000 +vt 0.962264 0.670000 +vt 0.933962 0.640000 +vt 0.933962 0.650000 +vt 0.962264 0.610000 +vt 0.943396 0.620000 +vt 0.943396 0.640000 +vt 0.981132 0.620000 +vt 0.981132 0.640000 +vt 0.990566 0.630000 +vt 0.924528 0.640000 +vt 0.933962 0.630000 +vt 1.000000 0.640000 +vt 0.990566 0.610000 +vt 1.000000 0.010000 +vt 1.000000 0.610000 +vt 0.952830 0.610000 +vt 0.962264 0.010000 +vt 0.924528 0.610000 +vt 0.933962 0.010000 +vt 0.933962 0.610000 +vt 0.943396 0.010000 +vt 0.943396 0.610000 +vt 0.971698 0.610000 +vt 0.981132 0.010000 +vt 0.981132 0.610000 +vt 0.952830 0.010000 +vt 0.990566 0.010000 +vt 0.971698 0.010000 +vt 0.962264 0.670000 +vt 0.971698 0.790000 +vt 0.962264 0.790000 +vt 0.952830 0.670000 +vt 0.952830 0.790000 +vt 0.933962 0.670000 +vt 0.943396 0.790000 +vt 0.933962 0.790000 +vt 0.990566 0.670000 +vt 1.000000 0.790000 +vt 0.990566 0.790000 +vt 0.971698 0.670000 +vt 0.981132 0.790000 +vt 0.943396 0.670000 +vt 0.924528 0.670000 +vt 0.924528 0.790000 +vt 0.981132 0.670000 +vt 0.981132 0.640000 +vt 0.981132 0.660000 +vt 0.943396 0.660000 +vt 0.952830 0.640000 +vt 0.990566 0.640000 +vt 0.990566 0.650000 +vt 0.962264 0.640000 +vt 0.933962 0.640000 +vt 0.933962 0.650000 +vt 0.962264 0.610000 +vt 0.943396 0.620000 +vt 0.943396 0.640000 +vt 0.971698 0.640000 +vt 0.981132 0.620000 +vt 0.990566 0.630000 +vt 0.924528 0.640000 +vt 0.933962 0.630000 +vt 1.000000 0.640000 +vt 0.990566 0.610000 +vt 1.000000 0.010000 +vt 1.000000 0.610000 +vt 0.952830 0.610000 +vt 0.962264 0.010000 +vt 0.924528 0.610000 +vt 0.933962 0.010000 +vt 0.933962 0.610000 +vt 0.943396 0.010000 +vt 0.943396 0.610000 +vt 0.971698 0.610000 +vt 0.981132 0.010000 +vt 0.981132 0.610000 +vt 0.952830 0.010000 +vt 0.990566 0.010000 +vt 0.971698 0.010000 +vt 0.396226 0.000000 +vt 1.000000 0.670000 +vt 0.981132 0.620000 +vt 0.924528 0.010000 +vt 1.000000 0.670000 +vt 0.924528 0.010000 +vt 0.933962 0.670000 +vt 1.000000 0.670000 +vt 0.924528 0.010000 +vt 1.000000 0.670000 +vt 0.981132 0.620000 +vt 0.924528 0.010000 +vt 1.000000 0.670000 +vt 0.981132 0.620000 +vt 0.924528 0.010000 +vt 1.000000 0.670000 +vt 0.924528 0.010000 +vt 0.933962 0.670000 +vt 1.000000 0.670000 +vt 0.924528 0.010000 +vt 1.000000 0.670000 +vt 0.924528 0.010000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 0.7071 0.7071 +vn 0.0000 0.8520 -0.5235 +vn 0.3343 0.4865 -0.8071 +vn 0.0000 0.4865 -0.8736 +vn 0.3795 0.1285 -0.9162 +vn 0.0000 0.1285 -0.9917 +vn 0.2003 0.8520 -0.4836 +vn 0.6178 0.4865 -0.6178 +vn 0.7012 0.1285 -0.7012 +vn 0.3701 0.8520 -0.3701 +vn 0.4836 0.8520 -0.2003 +vn 0.8071 0.4865 -0.3343 +vn 0.9162 0.1285 -0.3795 +vn 0.8736 0.4865 0.0000 +vn 0.9917 0.1285 0.0000 +vn 0.5235 0.8520 0.0000 +vn 0.8071 0.4865 0.3343 +vn 0.9162 0.1285 0.3795 +vn 0.4836 0.8520 0.2003 +vn 0.6178 0.4865 0.6178 +vn 0.7012 0.1285 0.7012 +vn 0.3701 0.8520 0.3701 +vn 0.3795 0.1285 0.9162 +vn 0.2003 0.8520 0.4836 +vn 0.3343 0.4865 0.8071 +vn 0.0000 0.1285 0.9917 +vn 0.0000 0.8520 0.5235 +vn 0.0000 0.4865 0.8736 +vn -0.2003 0.8520 0.4836 +vn -0.3343 0.4865 0.8071 +vn -0.3795 0.1285 0.9162 +vn -0.6178 0.4865 0.6178 +vn -0.7012 0.1285 0.7012 +vn -0.3701 0.8520 0.3701 +vn -0.8071 0.4865 0.3343 +vn -0.9917 0.1285 0.0000 +vn -0.9239 0.0000 0.3827 +vn -0.9162 0.1285 0.3795 +vn -0.4836 0.8520 0.2003 +vn 0.7071 0.0000 0.7071 +vn 0.3827 0.0000 0.9239 +vn -0.8736 0.4865 0.0000 +vn -0.7071 0.0000 0.7071 +vn -0.5235 0.8520 0.0000 +vn -0.8071 0.4865 -0.3343 +vn 0.9239 0.0000 0.3827 +vn -0.9162 0.1285 -0.3795 +vn -0.4836 0.8520 -0.2003 +vn 0.3827 0.0000 -0.9239 +vn -0.3701 0.8520 -0.3701 +vn -0.6178 0.4865 -0.6178 +vn -0.7012 0.1285 -0.7012 +vn -0.9239 0.0000 -0.3827 +vn -0.3795 0.1285 -0.9162 +vn -0.7071 0.0000 -0.7071 +vn -0.3827 0.0000 0.9239 +vn -0.3343 0.4865 -0.8071 +vn -0.2003 0.8520 -0.4836 +vn -0.3827 0.0000 -0.9239 +vn 0.7071 0.0000 -0.7071 +vn 0.9239 0.0000 -0.3827 +vn 0.1866 0.9824 0.0000 +vn 0.1447 0.7194 0.6794 +vn -0.1363 -0.6737 0.7263 +vn 0.0000 -0.7071 0.7071 +vn -0.1363 -0.6737 -0.7263 +vn 0.0000 -0.7071 -0.7071 +vn 0.1447 0.7194 -0.6794 +vn 0.0196 0.0473 0.9987 +vn -0.7071 -0.7071 0.0000 +vn 0.0196 0.0473 -0.9987 +vn 0.5293 0.5293 -0.6630 +vn 0.0670 0.0670 0.9955 +vn -0.4617 -0.4617 -0.7573 +vn -0.4617 -0.4617 0.7573 +vn 0.5293 0.5293 0.6630 +vn 0.9824 0.1866 0.0000 +vn 0.0473 0.0196 0.9987 +vn 0.7194 0.1447 -0.6794 +vn 0.0670 0.0670 -0.9955 +vn -0.6737 -0.1363 -0.7263 +vn -0.6737 -0.1363 0.7263 +vn 0.7194 0.1447 0.6794 +vn 0.0473 0.0196 -0.9987 +vn -0.1447 0.7194 0.6794 +vn -0.1447 0.7194 -0.6794 +vn -0.0196 0.0473 -0.9987 +vn 0.1363 -0.6737 0.7263 +vn 0.7071 -0.7071 0.0000 +vn -0.0196 0.0473 0.9987 +vn -0.5293 0.5293 0.6630 +vn -0.0670 0.0670 -0.9955 +vn 0.4617 -0.4617 0.7573 +vn -0.1866 0.9824 0.0000 +vn 0.4617 -0.4617 -0.7573 +vn 0.1363 -0.6737 -0.7263 +vn -0.5293 0.5293 -0.6630 +vn -0.9824 0.1866 0.0000 +vn -0.0473 0.0196 -0.9987 +vn -0.0473 0.0196 0.9987 +vn -0.0670 0.0670 0.9955 +vn 0.6737 -0.1363 0.7263 +vn 0.6737 -0.1363 -0.7263 +vn -0.7194 0.1447 -0.6794 +vn -0.7194 0.1447 0.6794 +vn 0.0000 0.9824 -0.1866 +vn 0.6794 0.7194 -0.1447 +vn 0.7263 -0.6737 0.1363 +vn -0.7263 -0.6737 0.1363 +vn -0.6794 0.7194 -0.1447 +vn 0.9987 0.0473 -0.0196 +vn -0.9987 0.0473 -0.0196 +vn -0.6630 0.5293 -0.5293 +vn 0.9955 0.0670 -0.0670 +vn -0.7573 -0.4617 0.4617 +vn 0.7573 -0.4617 0.4617 +vn 0.6630 0.5293 -0.5293 +vn 0.0000 0.1866 -0.9824 +vn 0.9987 0.0196 -0.0473 +vn -0.6794 0.1447 -0.7194 +vn -0.9955 0.0670 -0.0670 +vn 0.6794 0.1447 -0.7194 +vn -0.7263 -0.1363 0.6737 +vn 0.7263 -0.1363 0.6737 +vn -0.9987 0.0196 -0.0473 +vn 0.6794 0.7194 0.1447 +vn -0.6794 0.7194 0.1447 +vn -0.9987 0.0473 0.0196 +vn 0.7263 -0.6737 -0.1363 +vn 0.9987 0.0473 0.0196 +vn 0.6630 0.5293 0.5293 +vn -0.6630 0.5293 0.5293 +vn 0.7573 -0.4617 -0.4617 +vn 0.0000 0.9824 0.1866 +vn -0.7573 -0.4617 -0.4617 +vn -0.7263 -0.6737 -0.1363 +vn 0.0000 0.1866 0.9824 +vn -0.9987 0.0196 0.0473 +vn -0.9955 0.0670 0.0670 +vn 0.9987 0.0196 0.0473 +vn 0.9955 0.0670 0.0670 +vn 0.7263 -0.1363 -0.6737 +vn -0.7263 -0.1363 -0.6737 +vn -0.6794 0.1447 0.7194 +vn 0.6794 0.1447 0.7194 +s off +f 281/1/1 288/2/1 279/3/1 +f 6/4/2 7/5/2 5/6/2 +f 3/7/3 8/8/3 4/9/3 +f 2/10/4 5/11/4 1/12/4 +f 4/13/1 6/4/1 2/14/1 +f 1/15/5 7/16/5 3/17/5 +f 19/18/6 18/19/6 17/20/6 +f 15/21/2 13/22/2 14/23/2 +f 12/24/1 15/21/1 10/25/1 +f 9/26/5 13/27/5 11/28/5 +f 11/29/3 16/30/3 12/31/3 +f 10/32/4 14/33/4 9/34/4 +f 23/35/2 21/36/2 22/37/2 +f 19/38/3 24/39/3 20/40/3 +f 18/19/4 22/41/4 17/42/4 +f 20/40/1 23/35/1 18/19/1 +f 27/43/6 26/44/6 25/45/6 +f 31/46/2 29/47/2 30/48/2 +f 27/49/3 32/50/3 28/51/3 +f 26/44/4 30/52/4 25/53/4 +f 28/51/1 31/46/1 26/44/1 +f 35/54/6 34/55/6 33/56/6 +f 39/57/2 37/58/2 38/59/2 +f 35/60/3 40/61/3 36/62/3 +f 34/55/4 38/63/4 33/64/4 +f 36/62/1 39/57/1 34/55/1 +f 43/65/6 42/66/6 41/67/6 +f 47/68/2 45/69/2 46/70/2 +f 43/71/3 48/72/3 44/73/3 +f 42/66/4 46/74/4 41/75/4 +f 44/73/1 47/68/1 42/66/1 +f 51/76/6 50/77/6 49/78/6 +f 55/79/2 53/80/2 54/81/2 +f 51/82/4 56/83/4 52/84/4 +f 50/77/3 54/85/3 49/86/3 +f 52/84/5 55/79/5 50/77/5 +f 59/87/6 58/88/6 57/89/6 +f 63/90/2 61/91/2 62/92/2 +f 59/93/4 64/94/4 60/95/4 +f 58/88/3 62/96/3 57/97/3 +f 60/95/5 63/90/5 58/88/5 +f 67/98/6 66/99/6 65/100/6 +f 71/101/2 69/102/2 70/103/2 +f 67/104/4 72/105/4 68/106/4 +f 66/99/3 70/107/3 65/108/3 +f 68/106/5 71/101/5 66/99/5 +f 75/109/6 74/110/6 73/111/6 +f 79/112/2 77/113/2 78/114/2 +f 75/115/4 80/116/4 76/117/4 +f 74/110/3 78/118/3 73/119/3 +f 76/117/5 79/112/5 74/110/5 +f 83/120/6 82/121/6 81/122/6 +f 87/123/2 85/124/2 86/125/2 +f 83/126/5 88/127/5 84/128/5 +f 82/121/1 86/129/1 81/130/1 +f 84/128/3 87/123/3 82/121/3 +f 91/131/6 90/132/6 89/133/6 +f 95/134/2 93/135/2 94/136/2 +f 91/137/5 96/138/5 92/139/5 +f 90/132/1 94/140/1 89/141/1 +f 92/139/3 95/134/3 90/132/3 +f 99/142/6 98/143/6 97/144/6 +f 103/145/2 101/146/2 102/147/2 +f 99/148/5 104/149/5 100/150/5 +f 98/143/1 102/151/1 97/152/1 +f 100/150/3 103/145/3 98/143/3 +f 107/153/6 106/154/6 105/155/6 +f 111/156/2 109/157/2 110/158/2 +f 107/159/5 112/160/5 108/161/5 +f 106/154/1 110/162/1 105/163/1 +f 108/161/3 111/156/3 106/154/3 +f 115/164/6 114/165/6 113/166/6 +f 119/167/2 117/168/2 118/169/2 +f 115/170/1 120/171/1 116/172/1 +f 114/165/5 118/173/5 113/174/5 +f 116/172/4 119/167/4 114/165/4 +f 123/175/6 122/176/6 121/177/6 +f 127/178/2 125/179/2 126/180/2 +f 123/181/1 128/182/1 124/183/1 +f 122/176/5 126/184/5 121/185/5 +f 124/183/4 127/178/4 122/176/4 +f 131/186/6 130/187/6 129/188/6 +f 135/189/2 133/190/2 134/191/2 +f 131/192/1 136/193/1 132/194/1 +f 130/187/5 134/195/5 129/196/5 +f 132/194/4 135/189/4 130/187/4 +f 139/197/6 138/198/6 137/199/6 +f 143/200/2 141/201/2 142/202/2 +f 139/203/1 144/204/1 140/205/1 +f 138/198/5 142/206/5 137/207/5 +f 140/205/4 143/200/4 138/198/4 +f 223/208/2 224/209/2 222/210/2 +f 215/211/2 216/212/2 214/213/2 +f 213/214/1 215/211/1 211/215/1 +f 210/216/5 216/217/5 212/218/5 +f 212/218/3 217/219/3 213/214/3 +f 211/215/4 214/220/4 210/221/4 +f 221/222/1 223/223/1 219/224/1 +f 218/225/5 224/209/5 220/226/5 +f 220/226/3 225/227/3 221/222/3 +f 219/228/4 222/229/4 218/225/4 +f 232/230/3 229/231/3 233/232/3 +f 231/233/4 226/234/4 230/235/4 +f 233/232/1 227/236/1 231/233/1 +f 230/235/5 228/237/5 232/238/5 +f 240/239/3 237/240/3 241/241/3 +f 239/242/4 234/243/4 238/244/4 +f 241/245/1 235/246/1 239/242/1 +f 238/244/5 236/247/5 240/239/5 +f 236/247/2 235/248/2 237/249/2 +f 229/250/2 226/234/2 227/236/2 +f 243/251/2 244/252/2 242/253/2 +f 248/254/6 246/255/6 247/256/6 +f 244/252/5 247/257/5 242/253/5 +f 256/258/6 254/259/6 255/260/6 +f 243/251/1 249/261/1 245/262/1 +f 251/263/2 252/264/2 250/265/2 +f 252/264/1 255/266/1 250/265/1 +f 251/263/5 257/267/5 253/268/5 +f 259/269/2 260/270/2 258/271/2 +f 264/272/6 262/273/6 263/274/6 +f 260/270/4 263/275/4 258/271/4 +f 272/276/6 270/277/6 271/278/6 +f 259/269/3 265/279/3 261/280/3 +f 267/281/2 268/282/2 266/283/2 +f 268/282/3 271/284/3 266/283/3 +f 267/281/4 273/285/4 269/286/4 +f 280/287/6 279/3/6 278/288/6 +f 274/289/3 284/290/3 275/291/3 +f 277/292/4 282/293/4 276/294/4 +f 279/3/4 287/295/4 278/288/4 +f 3/296/6 274/297/6 1/298/6 +f 4/13/6 276/299/6 3/296/6 +f 2/14/6 277/300/6 4/13/6 +f 1/298/6 275/301/6 2/14/6 +f 285/302/6 286/303/6 282/293/6 +f 284/304/6 289/305/6 285/306/6 +f 283/307/6 288/308/6 284/290/6 +f 282/309/6 287/310/6 283/311/6 +f 278/288/5 286/312/5 280/287/5 +f 275/313/5 285/306/5 277/314/5 +f 276/315/1 283/311/1 274/316/1 +f 280/287/3 289/317/3 281/1/3 +f 291/318/2 292/319/2 290/320/2 +f 296/321/7 301/322/7 297/323/7 +f 291/318/1 297/323/1 293/324/1 +f 292/325/5 295/326/5 290/327/5 +f 293/328/3 294/329/3 292/330/3 +f 290/331/4 296/332/4 291/333/4 +f 301/322/3 302/334/3 298/335/3 +f 294/336/8 299/337/8 295/326/8 +f 297/338/9 298/335/9 294/329/9 +f 295/339/10 300/340/10 296/332/10 +f 299/341/4 304/342/4 300/340/4 +f 300/340/1 305/343/1 301/322/1 +f 298/335/5 303/344/5 299/337/5 +f 384/345/5 383/346/5 382/347/5 +f 387/348/2 388/349/2 386/350/2 +f 387/348/5 393/351/5 389/352/5 +f 389/352/4 390/353/4 388/354/4 +f 386/355/3 392/356/3 387/348/3 +f 400/357/1 399/358/1 398/359/1 +f 383/346/4 395/360/4 382/347/4 +f 385/361/6 396/362/6 383/346/6 +f 382/347/2 394/363/2 384/345/2 +f 384/345/3 397/364/3 385/361/3 +f 403/365/2 404/366/2 402/367/2 +f 403/365/1 409/368/1 405/369/1 +f 405/369/3 406/370/3 404/371/3 +f 402/372/4 408/373/4 403/365/4 +f 399/358/3 411/374/3 398/359/3 +f 401/375/6 412/376/6 399/358/6 +f 398/359/2 410/377/2 400/357/2 +f 400/357/4 413/378/4 401/375/4 +f 416/379/4 415/380/4 414/381/4 +f 419/382/2 420/383/2 418/384/2 +f 419/382/4 425/385/4 421/386/4 +f 421/386/1 422/387/1 420/388/1 +f 418/389/5 424/390/5 419/382/5 +f 432/391/3 431/392/3 430/393/3 +f 415/380/1 427/394/1 414/381/1 +f 417/395/6 428/396/6 415/380/6 +f 414/381/2 426/397/2 416/379/2 +f 416/379/5 429/398/5 417/395/5 +f 435/399/2 436/400/2 434/401/2 +f 435/399/3 441/402/3 437/403/3 +f 437/403/5 438/404/5 436/405/5 +f 434/406/1 440/407/1 435/399/1 +f 431/392/5 443/408/5 430/393/5 +f 433/409/6 444/410/6 431/392/6 +f 432/391/2 443/411/2 442/412/2 +f 432/391/1 445/413/1 433/409/1 +f 452/414/3 446/415/3 448/416/3 +f 447/417/4 453/418/4 449/419/4 +f 451/420/5 452/414/5 453/418/5 +f 460/421/4 454/422/4 456/423/4 +f 455/424/3 461/425/3 457/426/3 +f 459/427/1 460/421/1 461/425/1 +f 468/428/5 462/429/5 464/430/5 +f 463/431/1 469/432/1 465/433/1 +f 467/434/4 468/428/4 469/432/4 +f 476/435/1 470/436/1 472/437/1 +f 471/438/5 477/439/5 473/440/5 +f 475/441/3 476/435/3 477/439/3 +f 281/1/1 289/305/1 288/2/1 +f 6/4/2 8/442/2 7/5/2 +f 3/7/3 7/443/3 8/8/3 +f 2/10/4 6/444/4 5/11/4 +f 4/13/1 8/442/1 6/4/1 +f 1/15/5 5/445/5 7/16/5 +f 19/18/6 20/40/6 18/19/6 +f 15/21/2 16/446/2 13/22/2 +f 12/24/1 16/446/1 15/21/1 +f 9/26/5 14/447/5 13/27/5 +f 11/29/3 13/448/3 16/30/3 +f 10/32/4 15/449/4 14/33/4 +f 23/35/2 24/39/2 21/36/2 +f 19/38/3 21/450/3 24/39/3 +f 18/19/4 23/35/4 22/41/4 +f 20/40/1 24/39/1 23/35/1 +f 27/43/6 28/51/6 26/44/6 +f 31/46/2 32/50/2 29/47/2 +f 27/49/3 29/451/3 32/50/3 +f 26/44/4 31/46/4 30/52/4 +f 28/51/1 32/50/1 31/46/1 +f 35/54/6 36/62/6 34/55/6 +f 39/57/2 40/61/2 37/58/2 +f 35/60/3 37/452/3 40/61/3 +f 34/55/4 39/57/4 38/63/4 +f 36/62/1 40/61/1 39/57/1 +f 43/65/6 44/73/6 42/66/6 +f 47/68/2 48/72/2 45/69/2 +f 43/71/3 45/453/3 48/72/3 +f 42/66/4 47/68/4 46/74/4 +f 44/73/1 48/72/1 47/68/1 +f 51/76/6 52/84/6 50/77/6 +f 55/79/2 56/83/2 53/80/2 +f 51/82/4 53/454/4 56/83/4 +f 50/77/3 55/79/3 54/85/3 +f 52/84/5 56/83/5 55/79/5 +f 59/87/6 60/95/6 58/88/6 +f 63/90/2 64/94/2 61/91/2 +f 59/93/4 61/455/4 64/94/4 +f 58/88/3 63/90/3 62/96/3 +f 60/95/5 64/94/5 63/90/5 +f 67/98/6 68/106/6 66/99/6 +f 71/101/2 72/105/2 69/102/2 +f 67/104/4 69/456/4 72/105/4 +f 66/99/3 71/101/3 70/107/3 +f 68/106/5 72/105/5 71/101/5 +f 75/109/6 76/117/6 74/110/6 +f 79/112/2 80/116/2 77/113/2 +f 75/115/4 77/457/4 80/116/4 +f 74/110/3 79/112/3 78/118/3 +f 76/117/5 80/116/5 79/112/5 +f 83/120/6 84/128/6 82/121/6 +f 87/123/2 88/127/2 85/124/2 +f 83/126/5 85/458/5 88/127/5 +f 82/121/1 87/123/1 86/129/1 +f 84/128/3 88/127/3 87/123/3 +f 91/131/6 92/139/6 90/132/6 +f 95/134/2 96/138/2 93/135/2 +f 91/137/5 93/459/5 96/138/5 +f 90/132/1 95/134/1 94/140/1 +f 92/139/3 96/138/3 95/134/3 +f 99/142/6 100/150/6 98/143/6 +f 103/145/2 104/149/2 101/146/2 +f 99/148/5 101/460/5 104/149/5 +f 98/143/1 103/145/1 102/151/1 +f 100/150/3 104/149/3 103/145/3 +f 107/153/6 108/161/6 106/154/6 +f 111/156/2 112/160/2 109/157/2 +f 107/159/5 109/461/5 112/160/5 +f 106/154/1 111/156/1 110/162/1 +f 108/161/3 112/160/3 111/156/3 +f 115/164/6 116/172/6 114/165/6 +f 119/167/2 120/171/2 117/168/2 +f 115/170/1 117/462/1 120/171/1 +f 114/165/5 119/167/5 118/173/5 +f 116/172/4 120/171/4 119/167/4 +f 123/175/6 124/183/6 122/176/6 +f 127/178/2 128/182/2 125/179/2 +f 123/181/1 125/463/1 128/182/1 +f 122/176/5 127/178/5 126/184/5 +f 124/183/4 128/182/4 127/178/4 +f 131/186/6 132/194/6 130/187/6 +f 135/189/2 136/193/2 133/190/2 +f 131/192/1 133/464/1 136/193/1 +f 130/187/5 135/189/5 134/195/5 +f 132/194/4 136/193/4 135/189/4 +f 139/197/6 140/205/6 138/198/6 +f 143/200/2 144/204/2 141/201/2 +f 139/203/1 141/465/1 144/204/1 +f 138/198/5 143/200/5 142/206/5 +f 140/205/4 144/204/4 143/200/4 +f 223/208/2 225/227/2 224/209/2 +f 215/211/2 217/219/2 216/212/2 +f 213/214/1 217/219/1 215/211/1 +f 210/216/5 214/466/5 216/217/5 +f 212/218/3 216/217/3 217/219/3 +f 211/215/4 215/211/4 214/220/4 +f 221/222/1 225/227/1 223/223/1 +f 218/225/5 222/229/5 224/209/5 +f 220/226/3 224/209/3 225/227/3 +f 219/228/4 223/467/4 222/229/4 +f 232/230/3 228/468/3 229/231/3 +f 231/233/4 227/236/4 226/234/4 +f 233/232/1 229/231/1 227/236/1 +f 230/235/5 226/234/5 228/237/5 +f 240/239/3 236/247/3 237/240/3 +f 239/242/4 235/246/4 234/243/4 +f 241/245/1 237/469/1 235/246/1 +f 238/244/5 234/243/5 236/247/5 +f 236/247/2 234/243/2 235/248/2 +f 229/250/2 228/470/2 226/234/2 +f 243/251/2 245/262/2 244/252/2 +f 248/254/6 249/261/6 246/255/6 +f 244/252/5 248/471/5 247/257/5 +f 256/258/6 257/267/6 254/259/6 +f 243/251/1 246/255/1 249/261/1 +f 251/263/2 253/268/2 252/264/2 +f 252/264/1 256/472/1 255/266/1 +f 251/263/5 254/259/5 257/267/5 +f 259/269/2 261/280/2 260/270/2 +f 264/272/6 265/279/6 262/273/6 +f 260/270/4 264/473/4 263/275/4 +f 272/276/6 273/285/6 270/277/6 +f 259/269/3 262/273/3 265/279/3 +f 267/281/2 269/286/2 268/282/2 +f 268/282/3 272/474/3 271/284/3 +f 267/281/4 270/277/4 273/285/4 +f 280/287/6 281/1/6 279/3/6 +f 274/289/3 283/307/3 284/290/3 +f 277/292/4 285/302/4 282/293/4 +f 279/3/4 288/308/4 287/295/4 +f 3/296/6 276/299/6 274/297/6 +f 4/13/6 277/300/6 276/299/6 +f 2/14/6 275/301/6 277/300/6 +f 1/298/6 274/297/6 275/301/6 +f 285/302/6 289/317/6 286/303/6 +f 284/304/6 288/2/6 289/305/6 +f 283/307/6 287/295/6 288/308/6 +f 282/309/6 286/312/6 287/310/6 +f 278/288/5 287/310/5 286/312/5 +f 275/313/5 284/304/5 285/306/5 +f 276/315/1 282/309/1 283/311/1 +f 280/287/3 286/303/3 289/317/3 +f 291/318/2 293/324/2 292/319/2 +f 296/321/7 300/340/7 301/322/7 +f 291/318/1 296/321/1 297/323/1 +f 292/325/5 294/336/5 295/326/5 +f 293/328/3 297/338/3 294/329/3 +f 290/331/4 295/339/4 296/332/4 +f 301/322/3 305/343/3 302/334/3 +f 294/336/8 298/335/8 299/337/8 +f 297/338/9 301/322/9 298/335/9 +f 295/339/10 299/341/10 300/340/10 +f 299/341/4 303/475/4 304/342/4 +f 300/340/1 304/342/1 305/343/1 +f 298/335/5 302/334/5 303/344/5 +f 384/345/5 385/361/5 383/346/5 +f 387/348/2 389/352/2 388/349/2 +f 387/348/5 392/356/5 393/351/5 +f 389/352/4 393/351/4 390/353/4 +f 386/355/3 391/476/3 392/356/3 +f 400/357/1 401/375/1 399/358/1 +f 383/346/4 396/477/4 395/360/4 +f 385/361/6 397/478/6 396/362/6 +f 382/347/2 395/479/2 394/363/2 +f 384/345/3 394/480/3 397/364/3 +f 403/365/2 405/369/2 404/366/2 +f 403/365/1 408/373/1 409/368/1 +f 405/369/3 409/368/3 406/370/3 +f 402/372/4 407/481/4 408/373/4 +f 399/358/3 412/482/3 411/374/3 +f 401/375/6 413/483/6 412/376/6 +f 398/359/2 411/484/2 410/377/2 +f 400/357/4 410/485/4 413/378/4 +f 416/379/4 417/395/4 415/380/4 +f 419/382/2 421/386/2 420/383/2 +f 419/382/4 424/390/4 425/385/4 +f 421/386/1 425/385/1 422/387/1 +f 418/389/5 423/486/5 424/390/5 +f 432/391/3 433/409/3 431/392/3 +f 415/380/1 428/487/1 427/394/1 +f 417/395/6 429/488/6 428/396/6 +f 414/381/2 427/489/2 426/397/2 +f 416/379/5 426/490/5 429/398/5 +f 435/399/2 437/403/2 436/400/2 +f 435/399/3 440/407/3 441/402/3 +f 437/403/5 441/402/5 438/404/5 +f 434/406/1 439/491/1 440/407/1 +f 431/392/5 444/492/5 443/408/5 +f 433/409/6 445/493/6 444/410/6 +f 432/391/2 430/393/2 443/411/2 +f 432/391/1 442/494/1 445/413/1 +f 452/414/3 450/495/3 446/415/3 +f 447/417/4 451/420/4 453/418/4 +f 451/420/5 450/495/5 452/414/5 +f 460/421/4 458/496/4 454/422/4 +f 455/424/3 459/427/3 461/425/3 +f 459/427/1 458/496/1 460/421/1 +f 468/428/5 466/497/5 462/429/5 +f 463/431/1 467/434/1 469/432/1 +f 467/434/4 466/497/4 468/428/4 +f 476/435/1 474/498/1 470/436/1 +f 471/438/5 475/441/5 477/439/5 +f 475/441/3 474/498/3 476/435/3 +s 1 +f 207/499/11 148/500/12 145/501/13 +f 145/501/13 149/502/14 146/503/15 +f 207/499/11 206/504/2 147/505/16 +f 147/506/16 151/507/17 148/508/12 +f 148/508/12 152/509/18 149/502/14 +f 147/506/16 206/510/2 150/511/19 +f 151/512/17 153/513/20 154/514/21 +f 152/509/18 154/514/21 155/515/22 +f 150/516/19 206/517/2 153/513/20 +f 155/515/22 157/518/23 158/519/24 +f 153/520/20 206/521/2 156/522/25 +f 153/520/20 157/518/23 154/523/21 +f 158/519/24 160/524/26 161/525/27 +f 156/526/25 206/527/2 159/528/28 +f 156/526/25 160/524/26 157/529/23 +f 161/525/27 163/530/29 164/531/30 +f 159/532/28 206/533/2 162/534/31 +f 160/535/26 162/534/31 163/530/29 +f 163/536/29 167/537/32 164/531/30 +f 162/538/31 206/539/2 165/540/33 +f 162/538/31 166/541/34 163/536/29 +f 166/542/34 170/543/35 167/537/32 +f 165/544/33 206/545/2 168/546/36 +f 165/544/33 169/547/37 166/542/34 +f 168/548/36 206/549/2 171/550/38 +f 168/548/36 172/551/39 169/552/37 +f 170/543/35 172/551/39 173/553/40 +f 171/554/38 177/555/41 172/556/39 +f 172/556/39 178/557/42 173/553/40 +f 171/554/38 206/558/2 176/559/43 +f 176/560/43 182/561/44 177/562/41 +f 188/563/45 184/564/46 183/565/47 +f 178/557/42 182/561/44 183/565/47 +f 176/560/43 206/566/2 181/567/48 +f 167/537/32 195/568/49 164/531/30 +f 170/543/35 194/569/50 167/537/32 +f 181/570/48 187/571/51 182/572/44 +f 183/565/47 185/573/52 178/557/42 +f 183/565/47 187/571/51 188/563/45 +f 181/570/48 206/574/2 186/575/53 +f 149/502/14 209/576/3 146/503/15 +f 186/577/53 192/578/54 187/579/51 +f 164/531/30 199/580/55 161/525/27 +f 187/579/51 193/581/56 188/582/45 +f 186/577/53 206/583/2 191/584/57 +f 152/509/18 208/585/58 149/502/14 +f 192/586/54 196/587/59 197/588/60 +f 198/589/61 179/590/62 193/581/56 +f 193/581/56 197/588/60 198/589/61 +f 191/591/57 206/592/2 196/587/59 +f 203/593/63 175/594/64 198/589/61 +f 178/557/42 189/595/65 173/553/40 +f 173/553/40 190/596/4 170/543/35 +f 198/589/61 202/597/66 203/593/63 +f 196/598/59 206/599/2 201/600/67 +f 161/525/27 200/601/1 158/519/24 +f 146/503/15 174/602/68 203/593/63 +f 196/598/59 202/597/66 197/603/60 +f 155/515/22 205/604/69 152/509/18 +f 203/593/63 145/605/13 146/503/15 +f 201/606/67 206/607/2 207/608/11 +f 158/519/24 204/609/70 155/515/22 +f 193/581/56 180/610/5 188/582/45 +f 202/611/66 207/608/11 145/605/13 +f 314/612/71 307/613/9 306/614/2 +f 321/615/72 306/614/2 313/616/10 +f 319/617/73 312/618/4 311/619/74 +f 317/620/75 310/621/6 309/622/76 +f 315/623/77 308/624/3 307/613/9 +f 320/625/78 313/616/10 312/618/4 +f 318/626/79 311/619/74 310/627/6 +f 316/628/80 309/622/76 308/624/3 +f 323/629/81 316/630/80 315/623/77 +f 327/631/82 321/615/72 320/632/78 +f 316/630/80 325/633/83 317/634/75 +f 322/635/7 315/623/77 314/612/71 +f 321/615/72 322/635/7 314/612/71 +f 326/636/84 320/632/78 319/637/73 +f 328/638/85 329/639/86 322/635/7 +f 326/636/84 334/640/87 327/631/82 +f 330/641/88 324/642/89 323/629/81 +f 334/640/87 328/638/85 327/631/82 +f 324/642/89 332/643/90 325/633/83 +f 329/639/86 323/629/81 322/635/7 +f 319/637/73 318/644/79 326/636/84 +f 326/636/84 318/644/79 333/645/91 +f 317/634/75 325/633/83 318/646/79 +f 325/633/83 332/643/90 318/646/79 +f 332/647/90 336/648/5 318/649/79 +f 335/650/92 337/651/1 329/639/86 +f 318/652/79 341/653/52 333/654/91 +f 333/654/91 342/655/4 334/656/87 +f 330/641/88 339/657/3 331/658/93 +f 334/656/87 343/659/49 335/650/92 +f 331/658/93 340/660/64 332/647/90 +f 329/639/86 338/661/69 330/641/88 +f 352/662/71 345/663/9 344/664/2 +f 359/665/72 344/664/2 351/666/10 +f 357/667/73 350/668/4 349/669/74 +f 355/670/75 348/671/6 347/672/76 +f 353/673/77 346/674/3 345/663/9 +f 358/675/78 351/666/10 350/668/4 +f 356/676/79 349/669/74 348/677/6 +f 354/678/80 347/672/76 346/674/3 +f 353/673/77 362/679/89 354/680/80 +f 358/681/78 366/682/85 359/665/72 +f 354/680/80 363/683/83 355/684/75 +f 360/685/7 353/673/77 352/662/71 +f 359/665/72 360/685/7 352/662/71 +f 364/686/84 358/681/78 357/687/73 +f 366/682/85 367/688/86 360/685/7 +f 364/686/84 372/689/87 365/690/82 +f 361/691/81 369/692/93 362/679/89 +f 365/690/82 373/693/92 366/682/85 +f 362/679/89 370/694/90 363/683/83 +f 367/688/86 361/691/81 360/685/7 +f 357/687/73 356/695/79 364/686/84 +f 364/686/84 356/695/79 371/696/91 +f 355/684/75 363/683/83 356/697/79 +f 363/683/83 370/694/90 356/697/79 +f 370/698/90 374/699/5 356/700/79 +f 373/693/92 375/701/1 367/688/86 +f 356/702/79 379/703/52 371/704/91 +f 371/704/91 380/705/4 372/706/87 +f 368/707/88 377/708/3 369/709/93 +f 372/706/87 381/710/49 373/693/92 +f 369/709/93 378/711/64 370/698/90 +f 367/688/86 376/712/69 368/707/88 +f 478/713/2 487/714/94 479/715/10 +f 493/716/95 478/713/2 485/717/9 +f 483/718/76 492/719/96 484/720/3 +f 489/721/97 482/722/6 481/723/74 +f 487/714/94 480/724/4 479/715/10 +f 492/719/96 485/717/9 484/720/3 +f 490/725/98 483/718/76 482/726/6 +f 488/727/99 481/723/74 480/724/4 +f 495/728/100 488/729/99 487/714/94 +f 499/730/101 493/716/95 492/731/96 +f 488/729/99 497/732/102 489/733/97 +f 494/734/8 487/714/94 486/735/103 +f 493/716/95 494/734/8 486/735/103 +f 498/736/104 492/731/96 491/737/105 +f 500/738/106 501/739/107 494/734/8 +f 498/736/104 506/740/108 499/730/101 +f 495/728/100 503/741/109 496/742/110 +f 506/740/108 500/738/106 499/730/101 +f 496/742/110 504/743/111 497/732/102 +f 501/739/107 495/728/100 494/734/8 +f 491/737/105 490/744/98 498/736/104 +f 498/736/104 490/744/98 505/745/112 +f 489/733/97 497/732/102 490/746/98 +f 497/732/102 504/743/111 490/746/98 +f 504/747/111 508/748/1 490/749/98 +f 507/750/113 509/751/5 501/739/107 +f 490/752/98 513/753/69 505/754/112 +f 505/754/112 514/755/3 506/756/108 +f 502/757/114 511/758/4 503/759/109 +f 506/756/108 515/760/64 507/750/113 +f 503/759/109 512/761/49 504/747/111 +f 501/739/107 510/762/52 502/757/114 +f 524/763/103 517/764/10 516/765/2 +f 531/766/95 516/765/2 523/767/9 +f 529/768/105 522/769/3 521/770/76 +f 527/771/97 520/772/6 519/773/74 +f 525/774/94 518/775/4 517/764/10 +f 530/776/96 523/767/9 522/769/3 +f 528/777/98 521/770/76 520/778/6 +f 526/779/99 519/773/74 518/775/4 +f 533/780/100 526/781/99 525/774/94 +f 530/782/96 538/783/106 531/766/95 +f 526/781/99 535/784/102 527/785/97 +f 532/786/8 525/774/94 524/763/103 +f 538/783/106 524/763/103 531/766/95 +f 536/787/104 530/782/96 529/788/105 +f 538/783/106 539/789/107 532/786/8 +f 543/790/112 537/791/101 536/787/104 +f 540/792/114 534/793/110 533/780/100 +f 544/794/108 538/783/106 537/791/101 +f 534/793/110 542/795/111 535/784/102 +f 539/789/107 533/780/100 532/786/8 +f 529/788/105 528/796/98 536/787/104 +f 536/787/104 528/796/98 543/790/112 +f 527/785/97 535/784/102 528/797/98 +f 535/784/102 542/795/111 528/797/98 +f 542/798/111 546/799/1 528/800/98 +f 545/801/113 547/802/5 539/789/107 +f 528/803/98 551/804/69 543/805/112 +f 543/805/112 552/806/3 544/807/108 +f 540/792/114 549/808/4 541/809/109 +f 544/807/108 553/810/64 545/801/113 +f 541/809/109 550/811/49 542/798/111 +f 539/789/107 548/812/52 540/792/114 +f 562/813/115 555/814/8 554/815/2 +f 569/816/116 554/815/2 561/817/7 +f 567/818/117 560/819/1 559/820/98 +f 565/821/118 558/822/6 557/823/79 +f 563/824/119 556/825/5 555/814/8 +f 568/826/120 561/817/7 560/819/1 +f 566/827/74 559/820/98 558/828/6 +f 564/829/121 557/823/79 556/825/5 +f 571/830/122 564/831/121 563/824/119 +f 575/832/123 569/816/116 568/833/120 +f 564/831/121 573/834/124 565/835/118 +f 570/836/9 563/824/119 562/813/115 +f 569/816/116 570/836/9 562/813/115 +f 574/837/125 568/833/120 567/838/117 +f 576/839/126 577/840/127 570/836/9 +f 574/837/125 582/841/128 575/832/123 +f 578/842/129 572/843/130 571/830/122 +f 575/832/123 583/844/131 576/839/126 +f 572/843/130 580/845/132 573/834/124 +f 577/840/127 571/830/122 570/836/9 +f 567/838/117 566/846/74 574/837/125 +f 574/837/125 566/846/74 581/847/133 +f 565/835/118 573/834/124 566/848/74 +f 573/834/124 580/845/132 566/848/74 +f 580/849/132 584/850/4 566/851/74 +f 583/844/131 585/852/3 577/840/127 +f 566/853/74 589/854/49 581/855/133 +f 581/855/133 590/856/1 582/857/128 +f 578/842/129 587/858/5 579/859/134 +f 582/857/128 591/860/69 583/844/131 +f 579/859/134 588/861/52 580/849/132 +f 577/840/127 586/862/64 578/842/129 +f 600/863/115 593/864/8 592/865/2 +f 607/866/116 592/865/2 599/867/7 +f 605/868/117 598/869/1 597/870/98 +f 603/871/118 596/872/6 595/873/79 +f 601/874/119 594/875/5 593/864/8 +f 606/876/120 599/867/7 598/869/1 +f 604/877/74 597/870/98 596/878/6 +f 602/879/121 595/873/79 594/875/5 +f 601/874/119 610/880/130 602/881/121 +f 606/882/120 614/883/126 607/866/116 +f 602/881/121 611/884/124 603/885/118 +f 608/886/9 601/874/119 600/863/115 +f 607/866/116 608/886/9 600/863/115 +f 612/887/125 606/882/120 605/888/117 +f 614/883/126 615/889/127 608/886/9 +f 612/887/125 620/890/128 613/891/123 +f 609/892/122 617/893/134 610/880/130 +f 613/891/123 621/894/131 614/883/126 +f 610/880/130 618/895/132 611/884/124 +f 615/889/127 609/892/122 608/886/9 +f 605/888/117 604/896/74 612/887/125 +f 612/887/125 604/896/74 619/897/133 +f 603/885/118 611/884/124 604/898/74 +f 611/884/124 618/895/132 604/898/74 +f 618/899/132 622/900/4 604/901/74 +f 621/894/131 623/902/3 615/889/127 +f 604/903/74 627/904/49 619/905/133 +f 619/905/133 628/906/1 620/907/128 +f 616/908/129 625/909/5 617/910/134 +f 620/907/128 629/911/69 621/894/131 +f 617/910/134 626/912/52 618/899/132 +f 615/889/127 624/913/64 616/908/129 +f 630/914/2 639/915/135 631/916/7 +f 645/917/136 630/914/2 637/918/8 +f 635/919/79 644/920/137 636/921/5 +f 641/922/138 634/923/6 633/924/98 +f 639/915/135 632/925/1 631/916/7 +f 644/920/137 637/918/8 636/921/5 +f 642/926/76 635/919/79 634/927/6 +f 640/928/139 633/924/98 632/925/1 +f 647/929/140 640/930/139 639/915/135 +f 644/931/137 652/932/141 645/917/136 +f 640/930/139 649/933/142 641/934/138 +f 646/935/10 639/915/135 638/936/143 +f 645/917/136 646/935/10 638/936/143 +f 650/937/144 644/931/137 643/938/145 +f 652/932/141 653/939/146 646/935/10 +f 650/937/144 658/940/147 651/941/148 +f 647/929/140 655/942/149 648/943/150 +f 658/940/147 652/932/141 651/941/148 +f 648/943/150 656/944/151 649/933/142 +f 653/939/146 647/929/140 646/935/10 +f 643/938/145 642/945/76 650/937/144 +f 650/937/144 642/945/76 657/946/152 +f 641/934/138 649/933/142 642/947/76 +f 649/933/142 656/944/151 642/947/76 +f 656/948/151 660/949/3 642/950/76 +f 659/951/153 661/952/4 653/939/146 +f 642/953/76 665/954/64 657/955/152 +f 657/955/152 666/956/5 658/957/147 +f 654/958/154 663/959/1 655/960/149 +f 658/957/147 667/961/52 659/951/153 +f 655/960/149 664/962/69 656/948/151 +f 653/939/146 662/963/49 654/958/154 +f 676/964/143 669/965/7 668/966/2 +f 683/967/136 668/966/2 675/968/8 +f 681/969/145 674/970/5 673/971/79 +f 679/972/138 672/973/6 671/974/98 +f 677/975/135 670/976/1 669/965/7 +f 682/977/137 675/968/8 674/970/5 +f 680/978/76 673/971/79 672/979/6 +f 678/980/139 671/974/98 670/976/1 +f 677/975/135 686/981/150 678/982/139 +f 682/983/137 690/984/141 683/967/136 +f 678/982/139 687/985/142 679/986/138 +f 684/987/10 677/975/135 676/964/143 +f 690/984/141 676/964/143 683/967/136 +f 688/988/144 682/983/137 681/989/145 +f 690/984/141 691/990/146 684/987/10 +f 688/988/144 696/991/147 689/992/148 +f 685/993/140 693/994/149 686/981/150 +f 696/991/147 690/984/141 689/992/148 +f 686/981/150 694/995/151 687/985/142 +f 691/990/146 685/993/140 684/987/10 +f 681/989/145 680/996/76 688/988/144 +f 688/988/144 680/996/76 695/997/152 +f 679/986/138 687/985/142 680/998/76 +f 687/985/142 694/995/151 680/998/76 +f 694/999/151 698/1000/3 680/1001/76 +f 697/1002/153 699/1003/4 691/990/146 +f 680/1004/76 703/1005/64 695/1006/152 +f 695/1006/152 704/1007/5 696/1008/147 +f 692/1009/154 701/1010/1 693/1011/149 +f 696/1008/147 705/1012/52 697/1002/153 +f 693/1011/149 702/1013/69 694/999/151 +f 691/990/146 700/1014/49 692/1009/154 +f 207/499/11 147/505/16 148/500/12 +f 145/501/13 148/500/12 149/502/14 +f 147/506/16 150/511/19 151/507/17 +f 148/508/12 151/507/17 152/509/18 +f 151/512/17 150/516/19 153/513/20 +f 152/509/18 151/512/17 154/514/21 +f 155/515/22 154/523/21 157/518/23 +f 153/520/20 156/522/25 157/518/23 +f 158/519/24 157/529/23 160/524/26 +f 156/526/25 159/528/28 160/524/26 +f 161/525/27 160/535/26 163/530/29 +f 160/535/26 159/532/28 162/534/31 +f 163/536/29 166/541/34 167/537/32 +f 162/538/31 165/540/33 166/541/34 +f 166/542/34 169/547/37 170/543/35 +f 165/544/33 168/546/36 169/547/37 +f 168/548/36 171/550/38 172/551/39 +f 170/543/35 169/552/37 172/551/39 +f 171/554/38 176/559/43 177/555/41 +f 172/556/39 177/555/41 178/557/42 +f 176/560/43 181/567/48 182/561/44 +f 188/563/45 180/1015/5 184/564/46 +f 178/557/42 177/562/41 182/561/44 +f 167/537/32 194/569/50 195/568/49 +f 170/543/35 190/596/4 194/569/50 +f 181/570/48 186/575/53 187/571/51 +f 183/565/47 184/564/46 185/573/52 +f 183/565/47 182/572/44 187/571/51 +f 149/502/14 208/585/58 209/576/3 +f 186/577/53 191/584/57 192/578/54 +f 164/531/30 195/568/49 199/580/55 +f 187/579/51 192/578/54 193/581/56 +f 152/509/18 205/604/69 208/585/58 +f 192/586/54 191/591/57 196/587/59 +f 198/589/61 175/594/64 179/590/62 +f 193/581/56 192/586/54 197/588/60 +f 203/593/63 174/602/68 175/594/64 +f 178/557/42 185/573/52 189/595/65 +f 173/553/40 189/595/65 190/596/4 +f 198/589/61 197/603/60 202/597/66 +f 161/525/27 199/580/55 200/601/1 +f 146/503/15 209/576/3 174/602/68 +f 196/598/59 201/600/67 202/597/66 +f 155/515/22 204/609/70 205/604/69 +f 203/593/63 202/611/66 145/605/13 +f 158/519/24 200/601/1 204/609/70 +f 193/581/56 179/590/62 180/610/5 +f 202/611/66 201/606/67 207/608/11 +f 314/612/71 315/623/77 307/613/9 +f 321/615/72 314/612/71 306/614/2 +f 319/617/73 320/625/78 312/618/4 +f 317/620/75 318/1016/79 310/621/6 +f 315/623/77 316/628/80 308/624/3 +f 320/625/78 321/615/72 313/616/10 +f 318/626/79 319/617/73 311/619/74 +f 316/628/80 317/620/75 309/622/76 +f 323/629/81 324/642/89 316/630/80 +f 327/631/82 328/638/85 321/615/72 +f 316/630/80 324/642/89 325/633/83 +f 322/635/7 323/629/81 315/623/77 +f 321/615/72 328/638/85 322/635/7 +f 326/636/84 327/631/82 320/632/78 +f 328/638/85 335/650/92 329/639/86 +f 326/636/84 333/645/91 334/640/87 +f 330/641/88 331/1017/93 324/642/89 +f 334/640/87 335/650/92 328/638/85 +f 324/642/89 331/1017/93 332/643/90 +f 329/639/86 330/641/88 323/629/81 +f 332/647/90 340/660/64 336/648/5 +f 335/650/92 343/659/49 337/651/1 +f 318/652/79 336/1018/5 341/653/52 +f 333/654/91 341/653/52 342/655/4 +f 330/641/88 338/661/69 339/657/3 +f 334/656/87 342/655/4 343/659/49 +f 331/658/93 339/657/3 340/660/64 +f 329/639/86 337/651/1 338/661/69 +f 352/662/71 353/673/77 345/663/9 +f 359/665/72 352/662/71 344/664/2 +f 357/667/73 358/675/78 350/668/4 +f 355/670/75 356/1019/79 348/671/6 +f 353/673/77 354/678/80 346/674/3 +f 358/675/78 359/665/72 351/666/10 +f 356/676/79 357/667/73 349/669/74 +f 354/678/80 355/670/75 347/672/76 +f 353/673/77 361/691/81 362/679/89 +f 358/681/78 365/690/82 366/682/85 +f 354/680/80 362/679/89 363/683/83 +f 360/685/7 361/691/81 353/673/77 +f 359/665/72 366/682/85 360/685/7 +f 364/686/84 365/690/82 358/681/78 +f 366/682/85 373/693/92 367/688/86 +f 364/686/84 371/696/91 372/689/87 +f 361/691/81 368/707/88 369/692/93 +f 365/690/82 372/689/87 373/693/92 +f 362/679/89 369/692/93 370/694/90 +f 367/688/86 368/707/88 361/691/81 +f 370/698/90 378/711/64 374/699/5 +f 373/693/92 381/710/49 375/701/1 +f 356/702/79 374/1020/5 379/703/52 +f 371/704/91 379/703/52 380/705/4 +f 368/707/88 376/712/69 377/708/3 +f 372/706/87 380/705/4 381/710/49 +f 369/709/93 377/708/3 378/711/64 +f 367/688/86 375/701/1 376/712/69 +f 478/713/2 486/735/103 487/714/94 +f 493/716/95 486/735/103 478/713/2 +f 483/718/76 491/1021/105 492/719/96 +f 489/721/97 490/1022/98 482/722/6 +f 487/714/94 488/727/99 480/724/4 +f 492/719/96 493/716/95 485/717/9 +f 490/725/98 491/1021/105 483/718/76 +f 488/727/99 489/721/97 481/723/74 +f 495/728/100 496/742/110 488/729/99 +f 499/730/101 500/738/106 493/716/95 +f 488/729/99 496/742/110 497/732/102 +f 494/734/8 495/728/100 487/714/94 +f 493/716/95 500/738/106 494/734/8 +f 498/736/104 499/730/101 492/731/96 +f 500/738/106 507/750/113 501/739/107 +f 498/736/104 505/745/112 506/740/108 +f 495/728/100 502/757/114 503/741/109 +f 506/740/108 507/750/113 500/738/106 +f 496/742/110 503/741/109 504/743/111 +f 501/739/107 502/757/114 495/728/100 +f 504/747/111 512/761/49 508/748/1 +f 507/750/113 515/760/64 509/751/5 +f 490/752/98 508/1023/1 513/753/69 +f 505/754/112 513/753/69 514/755/3 +f 502/757/114 510/762/52 511/758/4 +f 506/756/108 514/755/3 515/760/64 +f 503/759/109 511/758/4 512/761/49 +f 501/739/107 509/751/5 510/762/52 +f 524/763/103 525/774/94 517/764/10 +f 531/766/95 524/763/103 516/765/2 +f 529/768/105 530/776/96 522/769/3 +f 527/771/97 528/1024/98 520/772/6 +f 525/774/94 526/779/99 518/775/4 +f 530/776/96 531/766/95 523/767/9 +f 528/777/98 529/768/105 521/770/76 +f 526/779/99 527/771/97 519/773/74 +f 533/780/100 534/793/110 526/781/99 +f 530/782/96 537/791/101 538/783/106 +f 526/781/99 534/793/110 535/784/102 +f 532/786/8 533/780/100 525/774/94 +f 538/783/106 532/786/8 524/763/103 +f 536/787/104 537/791/101 530/782/96 +f 538/783/106 545/801/113 539/789/107 +f 543/790/112 544/794/108 537/791/101 +f 540/792/114 541/1025/109 534/793/110 +f 544/794/108 545/801/113 538/783/106 +f 534/793/110 541/1025/109 542/795/111 +f 539/789/107 540/792/114 533/780/100 +f 542/798/111 550/811/49 546/799/1 +f 545/801/113 553/810/64 547/802/5 +f 528/803/98 546/1026/1 551/804/69 +f 543/805/112 551/804/69 552/806/3 +f 540/792/114 548/812/52 549/808/4 +f 544/807/108 552/806/3 553/810/64 +f 541/809/109 549/808/4 550/811/49 +f 539/789/107 547/802/5 548/812/52 +f 562/813/115 563/824/119 555/814/8 +f 569/816/116 562/813/115 554/815/2 +f 567/818/117 568/826/120 560/819/1 +f 565/821/118 566/1027/74 558/822/6 +f 563/824/119 564/829/121 556/825/5 +f 568/826/120 569/816/116 561/817/7 +f 566/827/74 567/818/117 559/820/98 +f 564/829/121 565/821/118 557/823/79 +f 571/830/122 572/843/130 564/831/121 +f 575/832/123 576/839/126 569/816/116 +f 564/831/121 572/843/130 573/834/124 +f 570/836/9 571/830/122 563/824/119 +f 569/816/116 576/839/126 570/836/9 +f 574/837/125 575/832/123 568/833/120 +f 576/839/126 583/844/131 577/840/127 +f 574/837/125 581/847/133 582/841/128 +f 578/842/129 579/1028/134 572/843/130 +f 575/832/123 582/841/128 583/844/131 +f 572/843/130 579/1028/134 580/845/132 +f 577/840/127 578/842/129 571/830/122 +f 580/849/132 588/861/52 584/850/4 +f 583/844/131 591/860/69 585/852/3 +f 566/853/74 584/1029/4 589/854/49 +f 581/855/133 589/854/49 590/856/1 +f 578/842/129 586/862/64 587/858/5 +f 582/857/128 590/856/1 591/860/69 +f 579/859/134 587/858/5 588/861/52 +f 577/840/127 585/852/3 586/862/64 +f 600/863/115 601/874/119 593/864/8 +f 607/866/116 600/863/115 592/865/2 +f 605/868/117 606/876/120 598/869/1 +f 603/871/118 604/1030/74 596/872/6 +f 601/874/119 602/879/121 594/875/5 +f 606/876/120 607/866/116 599/867/7 +f 604/877/74 605/868/117 597/870/98 +f 602/879/121 603/871/118 595/873/79 +f 601/874/119 609/892/122 610/880/130 +f 606/882/120 613/891/123 614/883/126 +f 602/881/121 610/880/130 611/884/124 +f 608/886/9 609/892/122 601/874/119 +f 607/866/116 614/883/126 608/886/9 +f 612/887/125 613/891/123 606/882/120 +f 614/883/126 621/894/131 615/889/127 +f 612/887/125 619/897/133 620/890/128 +f 609/892/122 616/908/129 617/893/134 +f 613/891/123 620/890/128 621/894/131 +f 610/880/130 617/893/134 618/895/132 +f 615/889/127 616/908/129 609/892/122 +f 618/899/132 626/912/52 622/900/4 +f 621/894/131 629/911/69 623/902/3 +f 604/903/74 622/1031/4 627/904/49 +f 619/905/133 627/904/49 628/906/1 +f 616/908/129 624/913/64 625/909/5 +f 620/907/128 628/906/1 629/911/69 +f 617/910/134 625/909/5 626/912/52 +f 615/889/127 623/902/3 624/913/64 +f 630/914/2 638/936/143 639/915/135 +f 645/917/136 638/936/143 630/914/2 +f 635/919/79 643/1032/145 644/920/137 +f 641/922/138 642/1033/76 634/923/6 +f 639/915/135 640/928/139 632/925/1 +f 644/920/137 645/917/136 637/918/8 +f 642/926/76 643/1032/145 635/919/79 +f 640/928/139 641/922/138 633/924/98 +f 647/929/140 648/943/150 640/930/139 +f 644/931/137 651/941/148 652/932/141 +f 640/930/139 648/943/150 649/933/142 +f 646/935/10 647/929/140 639/915/135 +f 645/917/136 652/932/141 646/935/10 +f 650/937/144 651/941/148 644/931/137 +f 652/932/141 659/951/153 653/939/146 +f 650/937/144 657/946/152 658/940/147 +f 647/929/140 654/958/154 655/942/149 +f 658/940/147 659/951/153 652/932/141 +f 648/943/150 655/942/149 656/944/151 +f 653/939/146 654/958/154 647/929/140 +f 656/948/151 664/962/69 660/949/3 +f 659/951/153 667/961/52 661/952/4 +f 642/953/76 660/1034/3 665/954/64 +f 657/955/152 665/954/64 666/956/5 +f 654/958/154 662/963/49 663/959/1 +f 658/957/147 666/956/5 667/961/52 +f 655/960/149 663/959/1 664/962/69 +f 653/939/146 661/952/4 662/963/49 +f 676/964/143 677/975/135 669/965/7 +f 683/967/136 676/964/143 668/966/2 +f 681/969/145 682/977/137 674/970/5 +f 679/972/138 680/1035/76 672/973/6 +f 677/975/135 678/980/139 670/976/1 +f 682/977/137 683/967/136 675/968/8 +f 680/978/76 681/969/145 673/971/79 +f 678/980/139 679/972/138 671/974/98 +f 677/975/135 685/993/140 686/981/150 +f 682/983/137 689/992/148 690/984/141 +f 678/982/139 686/981/150 687/985/142 +f 684/987/10 685/993/140 677/975/135 +f 690/984/141 684/987/10 676/964/143 +f 688/988/144 689/992/148 682/983/137 +f 690/984/141 697/1002/153 691/990/146 +f 688/988/144 695/997/152 696/991/147 +f 685/993/140 692/1009/154 693/994/149 +f 696/991/147 697/1002/153 690/984/141 +f 686/981/150 693/994/149 694/995/151 +f 691/990/146 692/1009/154 685/993/140 +f 694/999/151 702/1013/69 698/1000/3 +f 697/1002/153 705/1012/52 699/1003/4 +f 680/1004/76 698/1036/3 703/1005/64 +f 695/1006/152 703/1005/64 704/1007/5 +f 692/1009/154 700/1014/49 701/1010/1 +f 696/1008/147 704/1007/5 705/1012/52 +f 693/1011/149 701/1010/1 702/1013/69 +f 691/990/146 699/1003/4 700/1014/49 diff --git a/src/main/resources/assets/hbm/textures/models/machines/industrial_boiler.png b/src/main/resources/assets/hbm/textures/models/machines/industrial_boiler.png new file mode 100644 index 0000000000000000000000000000000000000000..af214e9dc41bab9c75367f2f41c82decdab2ecbd GIT binary patch literal 1755 zcmZuydsGr=7AH_KeBlV14-A~q6fGQ6SM!C6nVJM9nQp#H^N~)>I3fXqkJ2!P$~LA+ z3K6#zb;iOeHkr(nF|BRYOvksFFG?jU6(9H*+CA;gnKR!x_q%`G^Sk%{e)l`~D<$AV zjUZMK003YVb^sTp^}Sk4(bv=7n=spKt<%W~3X9g)9)^Aj3jol&5{3(mrruDF9y(rlaPB+6;jqwH_JQHan6Q2B6M`jq&G01CrCqX?x1NmZqKhv?jW#%jY!H_H)eZUl2>9;6Gy z>lC7+@F>8nRXwNx3!j@yb$8P>9k1%En10H2UYj4>d!*KwYRp9jLdSX2>^L-+XaZZp zRzmJN1OvRv-rgHv2QW7)8^UwjAzW9!L0!}u&g$?BGqT;=2ai$lE^)kRw0W1yqtZvE z0trd?-1%>sTnXDJ&e#IngWoHLQ`IaKPKY`dv1L3=zna}o%6D~ywgub%Js1@B6B^vOLA1#x$D zdV49xy#xISRQ$Miq1pH)xor~DA51FFDT=Bw1W*;NmcFB7#&S$SJ96n4tUZf`>>f>B zfA{Xm_8ZUsAtu$l{PCxZUPy5LOE$-?P|-exjg2n&nVzGf zX#zTXd}T_<)_>%Ycu{Az<&7tBMzl*ywfr!v`&DPK*VvRdSfS&?^ZCBK9JjgX;>q_9 zEx2R7@q}i1{n>Wk1k7K?JY8D*+SbRk#{)kBTA-dAhFzHr4yG?x1{sXhL)<(=1PnUN#-!3Ar5urb)RPh-8=W`NA zu1-%+i}_zNNixhs4ReK2Bldljqm}Q?NaLpf^2S>3M(vPS1q9eTmz%UV%Pf))FMI6% zSwCZs-Tf~oOX}nu#M*jI4rspr$)3~l zhyRAW2(=*~-G0HET3YdfA0|v5WV6}98;nP)ImL^*HxXA-F(#2mTO=rb($QG|zHP{AC35Qx*twKD|C4R=m-2L_eNeiO*g@X!L?n_cu zfOZ67&{o>rIsiY%`tMM8|T!^%(}w;#Ou%(^4`?wEXcPezm2PTgtbe5_!tdH!_&7cTa+ zQl)Z8gYa~7)Uqzw;b<3Z_99IAU literal 0 HcmV?d00001 From ea9dc777fb6fc463388c15b4b092486801b4f4ad Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 5 Jul 2023 16:37:22 +0200 Subject: [PATCH 180/432] labels, glyphid egg recycling --- changelog | 7 +++++++ .../hbm/inventory/gui/GUIMachineExcavator.java | 7 +++++++ .../hbm/inventory/recipes/anvil/AnvilRecipes.java | 8 ++++++++ src/main/resources/assets/hbm/lang/de_DE.lang | 6 ++++++ src/main/resources/assets/hbm/lang/en_US.lang | 6 ++++++ .../assets/hbm/textures/blocks/hadron_cooler.png | Bin 0 -> 284 bytes 6 files changed, 34 insertions(+) create mode 100644 src/main/resources/assets/hbm/textures/blocks/hadron_cooler.png diff --git a/changelog b/changelog index 024946d82..b7101ac1a 100644 --- a/changelog +++ b/changelog @@ -1,7 +1,14 @@ ## Added +* Industrial boiler + * A slightly taller variant of the boiler with higher capacity + * Unlike the regular boiler, it can't explode ## Changed +* The regular boiler now only holds 16k instead of 64k (which is still a lot) +* Added labels to the large mining drill's levers +* Glyphid eggs can now be broken apart using an anvil, yielding glyphid meat, bones and experience bottles ## Fixed * Fixed quantity of the fusion reactor's construction recipe not being displayed right * Fixed fluid valve and redstone fluid valves having the wrong names +* Fixed mobs' max health getting buffed by pollution, but the actual health staying the same diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineExcavator.java b/src/main/java/com/hbm/inventory/gui/GUIMachineExcavator.java index 0197e0409..4b78d4aa5 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineExcavator.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineExcavator.java @@ -7,6 +7,7 @@ import com.hbm.lib.RefStrings; import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.machine.TileEntityMachineExcavator; +import com.hbm.util.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; @@ -32,6 +33,12 @@ public class GUIMachineExcavator extends GuiInfoContainer { @Override public void drawScreen(int x, int y, float interp) { super.drawScreen(x, y, interp); + + this.drawCustomInfoStat(x, y, guiLeft + 6, guiTop + 42, 20, 40, x, y, I18nUtil.resolveKey("excavator.drill")); + this.drawCustomInfoStat(x, y, guiLeft + 30, guiTop + 42, 20, 40, x, y, I18nUtil.resolveKey("excavator.crusher")); + this.drawCustomInfoStat(x, y, guiLeft + 54, guiTop + 42, 20, 40, x, y, I18nUtil.resolveKey("excavator.walling")); + this.drawCustomInfoStat(x, y, guiLeft + 78, guiTop + 42, 20, 40, x, y, I18nUtil.resolveKey("excavator.veinminer")); + this.drawCustomInfoStat(x, y, guiLeft + 102, guiTop + 42, 20, 40, x, y, I18nUtil.resolveKey("excavator.silktouch")); this.drawElectricityInfo(this, x, y, guiLeft + 220, guiTop + 18, 16, 52, drill.getPower(), drill.maxPower); this.drill.tank.renderTankInfo(this, x, y, guiLeft + 202, guiTop + 18, 16, 52); diff --git a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java index 96fbafedd..b2fb90abf 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -942,6 +942,14 @@ public class AnvilRecipes { new AnvilOutput(new ItemStack(ModItems.plate_lead, 2)), new AnvilOutput(new ItemStack(ModItems.nuclear_waste_vitrified, 10)) }).setTier(3)); + + constructionRecipes.add(new AnvilConstructionRecipe( + new ComparableStack(ModItems.egg_glyphid), new AnvilOutput[] { + new AnvilOutput(new ItemStack(ModItems.glyphid_meat, 2)), + new AnvilOutput(new ItemStack(ModItems.glyphid_meat, 1), 0.5F), + new AnvilOutput(new ItemStack(Items.bone, 1), 0.75F), + new AnvilOutput(new ItemStack(Items.experience_bottle, 1), 0.5F) + }).setTier(1)); } public static void pullFromAssembler(ComparableStack result, int tier) { diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 5d0ffe69d..5440f43b5 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -532,6 +532,12 @@ entity.hbm.entity_bullet.name=Patrone entity.hbm.entity_rocket.name=Rakete entity.hbm.entity_schrabnel.name=Schrabnel +excavator.crusher=Brecher +excavator.drill=Bohrer +excavator.silktouch=Behutsamkeit +excavator.veinminer=Erzadern-Miner +excavator.walling=Verschalung + flare.ignition=Zündung flare.valve=Flussventil diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 2495b1d4f..859d763ce 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1023,6 +1023,12 @@ entity.hbm.entity_bullet.name=Bullet entity.hbm.entity_rocket.name=Rocket entity.hbm.entity_schrabnel.name=Schrabnel +excavator.crusher=Toggle Crusher +excavator.drill=Toggle Drill +excavator.silktouch=Toggle Silk Touch +excavator.veinminer=Toggle Vein Miner +excavator.walling=Toggle Walling + flare.ignition=Ignition flare.valve=Flow Valve diff --git a/src/main/resources/assets/hbm/textures/blocks/hadron_cooler.png b/src/main/resources/assets/hbm/textures/blocks/hadron_cooler.png new file mode 100644 index 0000000000000000000000000000000000000000..04e26493292b22c1008c60d71b6f3366c2b0ffd5 GIT binary patch literal 284 zcmV+%0ptFOP)ST5Jex77ho0&YD#2US{6#pCLl!RHYEi@>|i4{2&wEi z*q{uME6>mW-<^IkFUvus2BiSd#?aJt3}H|T0q~rruZMl#>H3~ZO4qw$gx|2Wt}B(4 zlttm3(liYi;3ELAWf`w=4A!_~oPah4ya#};?*ZH@F-F+&H)Dd&m6T{>D2swYsel0x zgHpl4th2w$xo0bRwCw>nm$R7mT${QM7@;F$#d=pvVuR#g+)iU58>ASM%*%3Ig(S~& iC-4u_4?()CJLV0|AlW>Lj}`O)0000 Date: Wed, 5 Jul 2023 21:20:46 +0200 Subject: [PATCH 181/432] Fixed satellite loot being overridden by lunar mining ship --- .../satellites/SatelliteLunarMiner.java | 2 +- .../saveddata/satellites/SatelliteMiner.java | 70 ++++++++++--------- 2 files changed, 39 insertions(+), 33 deletions(-) diff --git a/src/main/java/com/hbm/saveddata/satellites/SatelliteLunarMiner.java b/src/main/java/com/hbm/saveddata/satellites/SatelliteLunarMiner.java index 76f680841..59b2d3f3d 100644 --- a/src/main/java/com/hbm/saveddata/satellites/SatelliteLunarMiner.java +++ b/src/main/java/com/hbm/saveddata/satellites/SatelliteLunarMiner.java @@ -7,7 +7,7 @@ import net.minecraft.item.ItemStack; public class SatelliteLunarMiner extends SatelliteMiner { static { - registerCargo(new WeightedRandomObject[] { + registerCargo(SatelliteLunarMiner.class, new WeightedRandomObject[] { new WeightedRandomObject(new ItemStack(ModBlocks.moon_turf, 48), 5), new WeightedRandomObject(new ItemStack(ModBlocks.moon_turf, 32), 7), new WeightedRandomObject(new ItemStack(ModBlocks.moon_turf, 16), 5), diff --git a/src/main/java/com/hbm/saveddata/satellites/SatelliteMiner.java b/src/main/java/com/hbm/saveddata/satellites/SatelliteMiner.java index c5bd22821..c1ee0f836 100644 --- a/src/main/java/com/hbm/saveddata/satellites/SatelliteMiner.java +++ b/src/main/java/com/hbm/saveddata/satellites/SatelliteMiner.java @@ -7,39 +7,13 @@ import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import java.util.HashMap; + public class SatelliteMiner extends Satellite { /** * {@link WeightedRandomObject} array with loot the satellite will deliver. */ - private static WeightedRandomObject[] CARGO = new WeightedRandomObject[] { - new WeightedRandomObject(new ItemStack(ModItems.powder_aluminium, 3), 10), - new WeightedRandomObject(new ItemStack(ModItems.powder_iron, 3), 10), - new WeightedRandomObject(new ItemStack(ModItems.powder_titanium, 2), 8), - new WeightedRandomObject(new ItemStack(ModItems.crystal_tungsten, 2), 7), - new WeightedRandomObject(new ItemStack(ModItems.powder_coal, 4), 15), - new WeightedRandomObject(new ItemStack(ModItems.powder_uranium, 2), 5), - new WeightedRandomObject(new ItemStack(ModItems.powder_plutonium, 1), 5), - new WeightedRandomObject(new ItemStack(ModItems.powder_thorium, 2), 7), - new WeightedRandomObject(new ItemStack(ModItems.powder_desh_mix, 3), 5), - new WeightedRandomObject(new ItemStack(ModItems.powder_diamond, 2), 7), - new WeightedRandomObject(new ItemStack(Items.redstone, 5), 15), - new WeightedRandomObject(new ItemStack(ModItems.powder_nitan_mix, 2), 5), - new WeightedRandomObject(new ItemStack(ModItems.powder_power, 2), 5), - new WeightedRandomObject(new ItemStack(ModItems.powder_copper, 5), 15), - new WeightedRandomObject(new ItemStack(ModItems.powder_lead, 3), 10), - new WeightedRandomObject(new ItemStack(ModItems.fluorite, 4), 15), - new WeightedRandomObject(new ItemStack(ModItems.powder_lapis, 4), 10), - new WeightedRandomObject(new ItemStack(ModItems.powder_combine_steel, 1), 1), - new WeightedRandomObject(new ItemStack(ModItems.crystal_aluminium, 1), 5), - new WeightedRandomObject(new ItemStack(ModItems.crystal_gold, 1), 5), - new WeightedRandomObject(new ItemStack(ModItems.crystal_phosphorus, 1), 10), - new WeightedRandomObject(new ItemStack(ModBlocks.gravel_diamond, 1), 3), - new WeightedRandomObject(new ItemStack(ModItems.crystal_uranium, 1), 3), - new WeightedRandomObject(new ItemStack(ModItems.crystal_plutonium, 1), 3), - new WeightedRandomObject(new ItemStack(ModItems.crystal_trixite, 1), 1), - new WeightedRandomObject(new ItemStack(ModItems.crystal_starmetal, 1), 1), - new WeightedRandomObject(new ItemStack(ModItems.crystal_lithium, 2), 4) - }; + private static final HashMap, WeightedRandomObject[]> CARGO = new HashMap<>(); public long lastOp; @@ -59,8 +33,8 @@ public class SatelliteMiner extends Satellite { * Replaces cargo of the satellite. * @param cargo - Array of {@link WeightedRandomObject} representing the loot that will be delivered. */ - public static void registerCargo(WeightedRandomObject[] cargo) { - CARGO = cargo; + public static void registerCargo(Class minerSatelliteClass, WeightedRandomObject[] cargo) { + CARGO.put(minerSatelliteClass, cargo); } /** @@ -68,6 +42,38 @@ public class SatelliteMiner extends Satellite { * @return - Array of {@link WeightedRandomObject} of satellite loot. */ public WeightedRandomObject[] getCargo() { - return CARGO; + return CARGO.get(getClass()); + } + + static { + registerCargo(SatelliteMiner.class, new WeightedRandomObject[] { + new WeightedRandomObject(new ItemStack(ModItems.powder_aluminium, 3), 10), + new WeightedRandomObject(new ItemStack(ModItems.powder_iron, 3), 10), + new WeightedRandomObject(new ItemStack(ModItems.powder_titanium, 2), 8), + new WeightedRandomObject(new ItemStack(ModItems.crystal_tungsten, 2), 7), + new WeightedRandomObject(new ItemStack(ModItems.powder_coal, 4), 15), + new WeightedRandomObject(new ItemStack(ModItems.powder_uranium, 2), 5), + new WeightedRandomObject(new ItemStack(ModItems.powder_plutonium, 1), 5), + new WeightedRandomObject(new ItemStack(ModItems.powder_thorium, 2), 7), + new WeightedRandomObject(new ItemStack(ModItems.powder_desh_mix, 3), 5), + new WeightedRandomObject(new ItemStack(ModItems.powder_diamond, 2), 7), + new WeightedRandomObject(new ItemStack(Items.redstone, 5), 15), + new WeightedRandomObject(new ItemStack(ModItems.powder_nitan_mix, 2), 5), + new WeightedRandomObject(new ItemStack(ModItems.powder_power, 2), 5), + new WeightedRandomObject(new ItemStack(ModItems.powder_copper, 5), 15), + new WeightedRandomObject(new ItemStack(ModItems.powder_lead, 3), 10), + new WeightedRandomObject(new ItemStack(ModItems.fluorite, 4), 15), + new WeightedRandomObject(new ItemStack(ModItems.powder_lapis, 4), 10), + new WeightedRandomObject(new ItemStack(ModItems.powder_combine_steel, 1), 1), + new WeightedRandomObject(new ItemStack(ModItems.crystal_aluminium, 1), 5), + new WeightedRandomObject(new ItemStack(ModItems.crystal_gold, 1), 5), + new WeightedRandomObject(new ItemStack(ModItems.crystal_phosphorus, 1), 10), + new WeightedRandomObject(new ItemStack(ModBlocks.gravel_diamond, 1), 3), + new WeightedRandomObject(new ItemStack(ModItems.crystal_uranium, 1), 3), + new WeightedRandomObject(new ItemStack(ModItems.crystal_plutonium, 1), 3), + new WeightedRandomObject(new ItemStack(ModItems.crystal_trixite, 1), 1), + new WeightedRandomObject(new ItemStack(ModItems.crystal_starmetal, 1), 1), + new WeightedRandomObject(new ItemStack(ModItems.crystal_lithium, 2), 4) + }); } } From 5f109b61ec67bec1911b30bd3f3e1cffeef253dc Mon Sep 17 00:00:00 2001 From: Bob Date: Wed, 5 Jul 2023 22:26:20 +0200 Subject: [PATCH 182/432] i can't feel my limbs --- .../hbm/blocks/machine/MachineAssembler.java | 283 +----------------- .../render/tileentity/RenderAssembler.java | 24 +- .../machine/TileEntityMachineAssembler.java | 26 +- 3 files changed, 46 insertions(+), 287 deletions(-) diff --git a/src/main/java/com/hbm/blocks/machine/MachineAssembler.java b/src/main/java/com/hbm/blocks/machine/MachineAssembler.java index 881768570..8f399a824 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineAssembler.java +++ b/src/main/java/com/hbm/blocks/machine/MachineAssembler.java @@ -1,296 +1,31 @@ package com.hbm.blocks.machine; -import java.util.Random; - -import com.hbm.blocks.ModBlocks; -import com.hbm.handler.MultiblockHandler; -import com.hbm.interfaces.IMultiblock; -import com.hbm.tileentity.machine.TileEntityDummy; +import com.hbm.blocks.BlockDummyable; import com.hbm.tileentity.machine.TileEntityMachineAssembler; -import net.minecraft.block.Block; -import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.MathHelper; import net.minecraft.world.World; -public class MachineAssembler extends BlockContainer implements IMultiblock { +public class MachineAssembler extends BlockDummyable { public MachineAssembler(Material p_i45386_1_) { super(p_i45386_1_); } @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityMachineAssembler(); - + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityMachineAssembler(); + return null; } @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) { - return Item.getItemFromBlock(ModBlocks.machine_assembler); + public int[] getDimensions() { + return new int[] {1, 0, 2, 1, 2, 1}; } @Override - public int getRenderType() { - return -1; + public int getOffset() { + return 1; } - - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } - - @Override - public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { - int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; - - if (i == 0) { - world.setBlockMetadataWithNotify(x, y, z, 5, 2); - if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.assemblerDimensionEast)) { - MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.assemblerDimensionEast, ModBlocks.dummy_block_assembler); - - // - DummyBlockAssembler.safeBreak = true; - world.setBlock(x - 1, y, z, ModBlocks.dummy_port_assembler); - TileEntity te = world.getTileEntity(x - 1, y, z); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x - 1, y, z + 1, ModBlocks.dummy_port_assembler); - TileEntity te2 = world.getTileEntity(x - 1, y, z + 1); - if(te2 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te2; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x + 2, y, z, ModBlocks.dummy_port_assembler); - TileEntity te3 = world.getTileEntity(x + 2, y, z); - if(te3 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te3; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x + 2, y, z + 1, ModBlocks.dummy_port_assembler); - TileEntity te4 = world.getTileEntity(x + 2, y, z + 1); - if(te4 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te4; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - DummyBlockAssembler.safeBreak = false; - // - - } else - world.func_147480_a(x, y, z, true); - } - if (i == 1) { - world.setBlockMetadataWithNotify(x, y, z, 3, 2); - if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.assemblerDimensionSouth)) { - MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.assemblerDimensionSouth, ModBlocks.dummy_block_assembler); - - // - DummyBlockAssembler.safeBreak = true; - world.setBlock(x, y, z - 1, ModBlocks.dummy_port_assembler); - TileEntity te = world.getTileEntity(x, y, z - 1); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x - 1, y, z - 1, ModBlocks.dummy_port_assembler); - TileEntity te2 = world.getTileEntity(x - 1, y, z - 1); - if(te2 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te2; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x, y, z + 2, ModBlocks.dummy_port_assembler); - TileEntity te3 = world.getTileEntity(x, y, z + 2); - if(te3 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te3; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x - 1, y, z + 2, ModBlocks.dummy_port_assembler); - TileEntity te4 = world.getTileEntity(x - 1, y, z + 2); - if(te4 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te4; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - DummyBlockAssembler.safeBreak = false; - // - - } else - world.func_147480_a(x, y, z, true); - } - if (i == 2) { - world.setBlockMetadataWithNotify(x, y, z, 4, 2); - if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.assemblerDimensionWest)) { - MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.assemblerDimensionWest, ModBlocks.dummy_block_assembler); - - // - DummyBlockAssembler.safeBreak = true; - world.setBlock(x + 1, y, z, ModBlocks.dummy_port_assembler); - TileEntity te = world.getTileEntity(x + 1, y, z); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x + 1, y, z - 1, ModBlocks.dummy_port_assembler); - TileEntity te2 = world.getTileEntity(x + 1, y, z - 1); - if(te2 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te2; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x - 2, y, z, ModBlocks.dummy_port_assembler); - TileEntity te3 = world.getTileEntity(x - 2, y, z); - if(te3 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te3; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x - 2, y, z - 1, ModBlocks.dummy_port_assembler); - TileEntity te4 = world.getTileEntity(x - 2, y, z - 1); - if(te4 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te4; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - DummyBlockAssembler.safeBreak = false; - // - - } else - world.func_147480_a(x, y, z, true); - } - if (i == 3) { - world.setBlockMetadataWithNotify(x, y, z, 2, 2); - if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.assemblerDimensionNorth)) { - MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.assemblerDimensionNorth, ModBlocks.dummy_block_assembler); - - // - DummyBlockAssembler.safeBreak = true; - world.setBlock(x, y, z + 1, ModBlocks.dummy_port_assembler); - TileEntity te = world.getTileEntity(x, y, z + 1); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x + 1, y, z + 1, ModBlocks.dummy_port_assembler); - TileEntity te2 = world.getTileEntity(x + 1, y, z + 1); - if(te2 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te2; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x, y, z - 2, ModBlocks.dummy_port_assembler); - TileEntity te3 = world.getTileEntity(x, y, z - 2); - if(te3 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te3; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x + 1, y, z - 2, ModBlocks.dummy_port_assembler); - TileEntity te4 = world.getTileEntity(x + 1, y, z - 2); - if(te4 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te4; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - DummyBlockAssembler.safeBreak = false; - // - - } else - world.func_147480_a(x, y, z, true); - } - } - - private final Random field_149933_a = new Random(); - private static boolean keepInventory; - - @Override - public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_) - { - if (!keepInventory) - { - ISidedInventory tileentityfurnace = (ISidedInventory)p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_); - - if (tileentityfurnace != null) - { - for (int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1) - { - ItemStack itemstack = tileentityfurnace.getStackInSlot(i1); - - if (itemstack != null) - { - float f = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f1 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f2 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - - while (itemstack.stackSize > 0) - { - int j1 = this.field_149933_a.nextInt(21) + 10; - - if (j1 > itemstack.stackSize) - { - j1 = itemstack.stackSize; - } - - itemstack.stackSize -= j1; - EntityItem entityitem = new EntityItem(p_149749_1_, p_149749_2_ + f, p_149749_3_ + f1, p_149749_4_ + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); - - if (itemstack.hasTagCompound()) - { - entityitem.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy()); - } - - float f3 = 0.05F; - entityitem.motionX = (float)this.field_149933_a.nextGaussian() * f3; - entityitem.motionY = (float)this.field_149933_a.nextGaussian() * f3 + 0.2F; - entityitem.motionZ = (float)this.field_149933_a.nextGaussian() * f3; - p_149749_1_.spawnEntityInWorld(entityitem); - } - } - } - - p_149749_1_.func_147453_f(p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_); - } - } - - super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_); - } } diff --git a/src/main/java/com/hbm/render/tileentity/RenderAssembler.java b/src/main/java/com/hbm/render/tileentity/RenderAssembler.java index b03698a8b..7f9436fd9 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderAssembler.java +++ b/src/main/java/com/hbm/render/tileentity/RenderAssembler.java @@ -33,16 +33,16 @@ public class RenderAssembler extends TileEntitySpecialRenderer { GL11.glRotatef(180, 0F, 1F, 0F); switch(tileEntity.getBlockMetadata()) { - case 2: + case 14: GL11.glRotatef(180, 0F, 1F, 0F); GL11.glTranslated(0.5D, 0.0D, -0.5D); break; - case 4: + case 13: GL11.glRotatef(270, 0F, 1F, 0F); GL11.glTranslated(0.5D, 0.0D, -0.5D); break; - case 3: + case 15: GL11.glRotatef(0, 0F, 1F, 0F); GL11.glTranslated(0.5D, 0.0D, -0.5D); break; - case 5: + case 12: GL11.glRotatef(90, 0F, 1F, 0F); GL11.glTranslated(0.5D, 0.0D, -0.5D); break; } @@ -99,15 +99,15 @@ public class RenderAssembler extends TileEntitySpecialRenderer { GL11.glRotatef(180, 0F, 1F, 0F); switch(tileEntity.getBlockMetadata()) { - case 2: + case 14: GL11.glTranslated(-1, 0, 0); GL11.glRotatef(180, 0F, 1F, 0F); break; - case 4: + case 13: GL11.glRotatef(270, 0F, 1F, 0F); break; - case 3: + case 15: GL11.glTranslated(0, 0, -1); GL11.glRotatef(0, 0F, 1F, 0F); break; - case 5: + case 12: GL11.glTranslated(-1, 0, -1); GL11.glRotatef(90, 0F, 1F, 0F); break; } @@ -150,15 +150,15 @@ public class RenderAssembler extends TileEntitySpecialRenderer { GL11.glRotatef(180, 0F, 1F, 0F); switch(tileEntity.getBlockMetadata()) { - case 2: + case 14: GL11.glTranslated(-1, 0, 0); GL11.glRotatef(180, 0F, 1F, 0F); break; - case 4: + case 13: GL11.glRotatef(270, 0F, 1F, 0F); break; - case 3: + case 15: GL11.glTranslated(0, 0, -1); GL11.glRotatef(0, 0F, 1F, 0F); break; - case 5: + case 12: GL11.glTranslated(-1, 0, -1); GL11.glRotatef(90, 0F, 1F, 0F); break; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java index 33c973b89..76b2d2ebd 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java @@ -4,7 +4,9 @@ import java.util.ArrayList; import java.util.List; import java.util.Random; +import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; +import com.hbm.handler.MultiblockHandlerXR; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.UpgradeManager; @@ -38,6 +40,7 @@ import net.minecraft.tileentity.TileEntityChest; import net.minecraft.tileentity.TileEntityHopper; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; public class TileEntityMachineAssembler extends TileEntityMachineBase implements IEnergyUser, IGUIProvider { @@ -51,7 +54,7 @@ public class TileEntityMachineAssembler extends TileEntityMachineBase implements int speed = 100; @SideOnly(Side.CLIENT) - public int recipe; + public int recipe = -1; private AudioWrapper audio; @@ -127,6 +130,27 @@ public class TileEntityMachineAssembler extends TileEntityMachineBase implements if(!worldObj.isRemote) { + //meta below 12 means that it's an old multiblock configuration + if(this.getBlockMetadata() < 12) { + int meta = this.getBlockMetadata(); + if(meta == 2 || meta == 14) meta = 4; + else if(meta == 4 || meta == 13) meta = 3; + else if(meta == 3 || meta == 15) meta = 5; + else if(meta == 5 || meta == 12) meta = 2; + //get old direction + ForgeDirection dir = ForgeDirection.getOrientation(meta); + //remove tile from the world to prevent inventory dropping + worldObj.removeTileEntity(xCoord, yCoord, zCoord); + //use fillspace to create a new multiblock configuration + worldObj.setBlock(xCoord, yCoord, zCoord, ModBlocks.machine_assembler, dir.ordinal() + 10, 3); + MultiblockHandlerXR.fillSpace(worldObj, xCoord, yCoord, zCoord, ((BlockDummyable) ModBlocks.machine_assembler).getDimensions(), ModBlocks.machine_assembler, dir); + //load the tile data to restore the old values + NBTTagCompound data = new NBTTagCompound(); + this.writeToNBT(data); + worldObj.getTileEntity(xCoord, yCoord, zCoord).readFromNBT(data); + return; + } + this.updateConnections(); this.consumption = 100; From 25a7a6c345a5af81abcbccc847af3f721eb4a1bb Mon Sep 17 00:00:00 2001 From: Bob Date: Wed, 5 Jul 2023 22:42:36 +0200 Subject: [PATCH 183/432] new multiblock sys for assembler --- .../java/api/hbm/energy/IEnergyConnector.java | 2 +- src/main/java/com/hbm/blocks/ModBlocks.java | 6 --- .../hbm/blocks/machine/MachineAssembler.java | 22 ++++++++ .../java/com/hbm/entity/mob/EntityFBI.java | 1 - src/main/java/com/hbm/main/MainRegistry.java | 2 + src/main/java/com/hbm/main/NEIConfig.java | 2 - .../machine/TileEntityMachineAssembler.java | 48 ++++++++---------- .../hbm/textures/blocks/rtty_counter.png | Bin 0 -> 184 bytes 8 files changed, 45 insertions(+), 38 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/blocks/rtty_counter.png diff --git a/src/main/java/api/hbm/energy/IEnergyConnector.java b/src/main/java/api/hbm/energy/IEnergyConnector.java index e3b21e12c..34ed1d175 100644 --- a/src/main/java/api/hbm/energy/IEnergyConnector.java +++ b/src/main/java/api/hbm/energy/IEnergyConnector.java @@ -75,7 +75,7 @@ public interface IEnergyConnector extends ILoadedTile { red = true; } - if(particleDebug) {// + if(particleDebug) { NBTTagCompound data = new NBTTagCompound(); data.setString("type", "network"); data.setString("mode", "power"); diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 1b1751e15..d72021648 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1203,8 +1203,6 @@ public class ModBlocks { public static Block dummy_block_drill; public static Block dummy_port_drill; - public static Block dummy_block_assembler; - public static Block dummy_port_assembler; public static Block dummy_block_ams_limiter; public static Block dummy_port_ams_limiter; public static Block dummy_block_ams_emitter; @@ -2350,8 +2348,6 @@ public class ModBlocks { dummy_block_drill = new DummyBlockDrill(Material.iron, false).setBlockName("dummy_block_drill").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_lead"); dummy_port_drill = new DummyBlockDrill(Material.iron, true).setBlockName("dummy_port_drill").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_lead"); - dummy_block_assembler = new DummyBlockAssembler(Material.iron, false).setBlockName("dummy_block_assembler").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); - dummy_port_assembler = new DummyBlockAssembler(Material.iron, true).setBlockName("dummy_port_assembler").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); dummy_block_ams_limiter = new DummyBlockAMSLimiter(Material.iron).setBlockName("dummy_block_ams_limiter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_copper"); dummy_port_ams_limiter = new DummyBlockAMSLimiter(Material.iron).setBlockName("dummy_port_ams_limiter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_copper"); dummy_block_ams_emitter = new DummyBlockAMSEmitter(Material.iron).setBlockName("dummy_block_ams_emitter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_copper"); @@ -3444,8 +3440,6 @@ public class ModBlocks { //Multiblock Dummy Blocks GameRegistry.registerBlock(dummy_block_drill, dummy_block_drill.getUnlocalizedName()); GameRegistry.registerBlock(dummy_port_drill, dummy_port_drill.getUnlocalizedName()); - GameRegistry.registerBlock(dummy_block_assembler, dummy_block_assembler.getUnlocalizedName()); - GameRegistry.registerBlock(dummy_port_assembler, dummy_port_assembler.getUnlocalizedName()); GameRegistry.registerBlock(dummy_block_ams_limiter, dummy_block_ams_limiter.getUnlocalizedName()); GameRegistry.registerBlock(dummy_port_ams_limiter, dummy_port_ams_limiter.getUnlocalizedName()); GameRegistry.registerBlock(dummy_block_ams_emitter, dummy_block_ams_emitter.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/machine/MachineAssembler.java b/src/main/java/com/hbm/blocks/machine/MachineAssembler.java index 8f399a824..a53437db9 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineAssembler.java +++ b/src/main/java/com/hbm/blocks/machine/MachineAssembler.java @@ -4,8 +4,10 @@ import com.hbm.blocks.BlockDummyable; import com.hbm.tileentity.machine.TileEntityMachineAssembler; import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; public class MachineAssembler extends BlockDummyable { @@ -28,4 +30,24 @@ public class MachineAssembler extends BlockDummyable { public int getOffset() { return 1; } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + return this.standardOpenBehavior(world, x, y, z, player, 0); + } + + @Override + public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + + x -= dir.offsetX; + z -= dir.offsetZ; + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + this.makeExtra(world, x + rot.offsetX * 2, y, z + rot.offsetZ * 2); + this.makeExtra(world, x - rot.offsetX * 1, y, z - rot.offsetZ * 1); + this.makeExtra(world, x + rot.offsetX * 2 - dir.offsetX, y, z + rot.offsetZ * 2 - dir.offsetZ); + this.makeExtra(world, x - rot.offsetX * 1 - dir.offsetX, y, z - rot.offsetZ * 1 - dir.offsetZ); + } } diff --git a/src/main/java/com/hbm/entity/mob/EntityFBI.java b/src/main/java/com/hbm/entity/mob/EntityFBI.java index ce51f5d25..827db49bd 100644 --- a/src/main/java/com/hbm/entity/mob/EntityFBI.java +++ b/src/main/java/com/hbm/entity/mob/EntityFBI.java @@ -170,7 +170,6 @@ public class EntityFBI extends EntityMob implements IRangedAttackMob { canDestroy.add(Blocks.trapdoor); canDestroy.add(ModBlocks.machine_press); canDestroy.add(ModBlocks.machine_epress); - canDestroy.add(ModBlocks.dummy_block_assembler); canDestroy.add(ModBlocks.machine_chemplant); canDestroy.add(ModBlocks.machine_crystallizer); canDestroy.add(ModBlocks.machine_turbine); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 9a809a1ba..3b92bc223 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -1128,6 +1128,8 @@ public class MainRegistry { ignoreMappings.add("hbm:tile.oil_duct"); ignoreMappings.add("hbm:tile.gas_duct_solid"); ignoreMappings.add("hbm:tile.gas_duct"); + ignoreMappings.add("hbm:tile.dummy_block_assembler"); + ignoreMappings.add("hbm:tile.dummy_port_assembler"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/java/com/hbm/main/NEIConfig.java b/src/main/java/com/hbm/main/NEIConfig.java index 1a2cd65a6..d0d0fa102 100644 --- a/src/main/java/com/hbm/main/NEIConfig.java +++ b/src/main/java/com/hbm/main/NEIConfig.java @@ -99,7 +99,6 @@ public class NEIConfig implements IConfigureNEI { API.hideItem(new ItemStack(ModItems.burnt_bark)); API.hideItem(new ItemStack(ModItems.ams_core_thingy)); } - API.hideItem(new ItemStack(ModBlocks.dummy_block_assembler)); API.hideItem(new ItemStack(ModBlocks.dummy_block_drill)); API.hideItem(new ItemStack(ModBlocks.dummy_block_ams_base)); API.hideItem(new ItemStack(ModBlocks.dummy_block_ams_emitter)); @@ -108,7 +107,6 @@ public class NEIConfig implements IConfigureNEI { API.hideItem(new ItemStack(ModBlocks.dummy_block_blast)); API.hideItem(new ItemStack(ModBlocks.dummy_block_uf6)); API.hideItem(new ItemStack(ModBlocks.dummy_block_puf6)); - API.hideItem(new ItemStack(ModBlocks.dummy_port_assembler)); API.hideItem(new ItemStack(ModBlocks.dummy_port_drill)); API.hideItem(new ItemStack(ModBlocks.dummy_port_ams_base)); API.hideItem(new ItemStack(ModBlocks.dummy_port_ams_emitter)); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java index 76b2d2ebd..8d73476b4 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java @@ -24,6 +24,7 @@ import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.tileentity.machine.storage.TileEntityCrateBase; import com.hbm.tileentity.machine.storage.TileEntityCrateIron; import com.hbm.tileentity.machine.storage.TileEntityCrateSteel; +import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IBatteryItem; import api.hbm.energy.IEnergyUser; @@ -207,19 +208,19 @@ public class TileEntityMachineAssembler extends TileEntityMachineBase implements TileEntity te1 = null; TileEntity te2 = null; - if(meta == 2) { + if(meta == 14) { te1 = worldObj.getTileEntity(xCoord - 2, yCoord, zCoord); te2 = worldObj.getTileEntity(xCoord + 3, yCoord, zCoord - 1); } - if(meta == 3) { + if(meta == 15) { te1 = worldObj.getTileEntity(xCoord + 2, yCoord, zCoord); te2 = worldObj.getTileEntity(xCoord - 3, yCoord, zCoord + 1); } - if(meta == 4) { + if(meta == 13) { te1 = worldObj.getTileEntity(xCoord, yCoord, zCoord + 2); te2 = worldObj.getTileEntity(xCoord - 1, yCoord, zCoord - 3); } - if(meta == 5) { + if(meta == 12) { te1 = worldObj.getTileEntity(xCoord, yCoord, zCoord - 2); te2 = worldObj.getTileEntity(xCoord + 1, yCoord, zCoord + 3); } @@ -284,34 +285,25 @@ public class TileEntityMachineAssembler extends TileEntityMachineBase implements } private void updateConnections() { - this.getBlockMetadata(); - if(this.blockMetadata == 5) { - this.trySubscribe(worldObj, xCoord - 2, yCoord, zCoord, Library.NEG_X); - this.trySubscribe(worldObj, xCoord - 2, yCoord, zCoord + 1, Library.NEG_X); - this.trySubscribe(worldObj, xCoord + 3, yCoord, zCoord, Library.POS_X); - this.trySubscribe(worldObj, xCoord + 3, yCoord, zCoord + 1, Library.POS_X); - - } else if(this.blockMetadata == 3) { - this.trySubscribe(worldObj, xCoord, yCoord, zCoord - 2, Library.NEG_Z); - this.trySubscribe(worldObj, xCoord - 1, yCoord, zCoord - 2, Library.NEG_Z); - this.trySubscribe(worldObj, xCoord, yCoord, zCoord + 3, Library.POS_Z); - this.trySubscribe(worldObj, xCoord - 1, yCoord, zCoord + 3, Library.POS_Z); - - } else if(this.blockMetadata == 4) { - this.trySubscribe(worldObj, xCoord + 2, yCoord, zCoord, Library.POS_X); - this.trySubscribe(worldObj, xCoord + 2, yCoord, zCoord - 1, Library.POS_X); - this.trySubscribe(worldObj, xCoord - 3, yCoord, zCoord, Library.NEG_X); - this.trySubscribe(worldObj, xCoord - 3, yCoord, zCoord - 1, Library.NEG_X); - - } else if(this.blockMetadata == 2) { - this.trySubscribe(worldObj, xCoord, yCoord, zCoord + 2, Library.POS_Z); - this.trySubscribe(worldObj, xCoord + 1, yCoord, zCoord + 2, Library.POS_Z); - this.trySubscribe(worldObj, xCoord, yCoord, zCoord - 3, Library.NEG_Z); - this.trySubscribe(worldObj, xCoord + 1, yCoord, zCoord - 3, Library.NEG_Z); + for(DirPos pos : getConPos()) { + this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } } + public DirPos[] getConPos() { + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset).getOpposite(); + ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN); + + return new DirPos[] { + new DirPos(xCoord + rot.offsetX * 3, yCoord, zCoord + rot.offsetZ * 3, rot), + new DirPos(xCoord - rot.offsetX * 2, yCoord, zCoord - rot.offsetZ * 2, rot.getOpposite()), + new DirPos(xCoord + rot.offsetX * 3 + dir.offsetX, yCoord, zCoord + rot.offsetZ * 3 + dir.offsetZ, rot), + new DirPos(xCoord - rot.offsetX * 2 + dir.offsetX, yCoord, zCoord - rot.offsetZ * 2 + dir.offsetZ, rot.getOpposite()) + }; + } + public void onChunkUnload() { if(audio != null) { diff --git a/src/main/resources/assets/hbm/textures/blocks/rtty_counter.png b/src/main/resources/assets/hbm/textures/blocks/rtty_counter.png new file mode 100644 index 0000000000000000000000000000000000000000..e1d9764f73240c483f65da1d7903e5fa1b900026 GIT binary patch literal 184 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf>N4{Qh659{<3!g>$~7(wqO1HKj*S7Bid?<$0_Bv5Ij$ zx7PeH!x?M8AI)ZuW8Sf2hs3|XzuosS+SmO_`0@EU|4+6%dnzY4PMkQghS|i#MC0?J fUTJfVDn^EhPxP}sKI38pTFv0;>gTe~DWM4f)Y?Tz literal 0 HcmV?d00001 From e78406f64f5bc0f795afa63a28a9556999831ad9 Mon Sep 17 00:00:00 2001 From: Boblet Date: Thu, 6 Jul 2023 15:33:05 +0200 Subject: [PATCH 184/432] redstone over radio item counter --- changelog | 10 ++ src/main/java/com/hbm/blocks/ModBlocks.java | 3 + .../hbm/blocks/network/RadioTorchBase.java | 49 +----- .../hbm/blocks/network/RadioTorchCounter.java | 70 ++++++++ .../hbm/blocks/network/RadioTorchRWBase.java | 62 +++++++ .../blocks/network/RadioTorchReceiver.java | 2 +- .../hbm/blocks/network/RadioTorchSender.java | 2 +- .../container/ContainerCounterTorch.java | 76 +++++++++ .../hbm/inventory/gui/GUICounterTorch.java | 151 ++++++++++++++++++ .../java/com/hbm/main/CraftingManager.java | 1 + .../hbm/tileentity/TileEntityMachineBase.java | 7 +- .../java/com/hbm/tileentity/TileMappings.java | 1 + .../network/TileEntityRadioTorchCounter.java | 125 +++++++++++++++ src/main/resources/assets/hbm/lang/de_DE.lang | 3 + src/main/resources/assets/hbm/lang/en_US.lang | 3 + .../hbm/textures/blocks/rtty_counter.png | Bin 184 -> 182 bytes .../textures/gui/machine/gui_rtty_counter.png | Bin 0 -> 2546 bytes 17 files changed, 514 insertions(+), 51 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/network/RadioTorchCounter.java create mode 100644 src/main/java/com/hbm/blocks/network/RadioTorchRWBase.java create mode 100644 src/main/java/com/hbm/inventory/container/ContainerCounterTorch.java create mode 100644 src/main/java/com/hbm/inventory/gui/GUICounterTorch.java create mode 100644 src/main/java/com/hbm/tileentity/network/TileEntityRadioTorchCounter.java create mode 100644 src/main/resources/assets/hbm/textures/gui/machine/gui_rtty_counter.png diff --git a/changelog b/changelog index b7101ac1a..90238bcbc 100644 --- a/changelog +++ b/changelog @@ -2,13 +2,23 @@ * Industrial boiler * A slightly taller variant of the boiler with higher capacity * Unlike the regular boiler, it can't explode +* Redstone-over-radio counter + * Can count and send the amount of an item stored in a container + * Counting supports filters by item ID, ID+meta and ore dictionary names + * Each torch can count up to three items and output the results on different channels + * This allows for more precise control over things like assembler chests, like turning off the ejector for an item that is already full but not other ejectors + * This property makes automating things with multiple inputs a lot easier + * Due to the ore dictionary ability of the counter, buffered items can precisely match the requirements of the recipe ## Changed * The regular boiler now only holds 16k instead of 64k (which is still a lot) * Added labels to the large mining drill's levers * Glyphid eggs can now be broken apart using an anvil, yielding glyphid meat, bones and experience bottles +* The assembler now uses the new multiblock system, making it less annoying to playe and less ear-piercing to break + * The conversion happens automatically so it's not necessary to remove the assemblers beforehand ## Fixed * Fixed quantity of the fusion reactor's construction recipe not being displayed right * Fixed fluid valve and redstone fluid valves having the wrong names * Fixed mobs' max health getting buffed by pollution, but the actual health staying the same +* Fixed bug regarding the loot pools of satellite miners diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index d72021648..4dff0bb1f 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -793,6 +793,7 @@ public class ModBlocks { public static Block fluid_switch; public static Block radio_torch_sender; public static Block radio_torch_receiver; + public static Block radio_torch_counter; public static Block conveyor; //public static Block conveyor_classic; @@ -1942,6 +1943,7 @@ public class ModBlocks { fluid_switch = new FluidSwitch(Material.iron).setBlockName("fluid_switch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); radio_torch_sender = new RadioTorchSender().setBlockName("radio_torch_sender").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); radio_torch_receiver = new RadioTorchReceiver().setBlockName("radio_torch_receiver").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + radio_torch_counter = new RadioTorchCounter().setBlockName("radio_torch_counter").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rtty_counter"); conveyor = new BlockConveyor().setBlockName("conveyor").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor"); //conveyor_classic = new BlockConveyorClassic().setBlockName("conveyor_classic").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor"); @@ -3172,6 +3174,7 @@ public class ModBlocks { register(fluid_switch); register(radio_torch_sender); register(radio_torch_receiver); + register(radio_torch_counter); GameRegistry.registerBlock(crane_extractor, crane_extractor.getUnlocalizedName()); GameRegistry.registerBlock(crane_inserter, crane_inserter.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/network/RadioTorchBase.java b/src/main/java/com/hbm/blocks/network/RadioTorchBase.java index f6255c271..049bc565b 100644 --- a/src/main/java/com/hbm/blocks/network/RadioTorchBase.java +++ b/src/main/java/com/hbm/blocks/network/RadioTorchBase.java @@ -1,15 +1,11 @@ package com.hbm.blocks.network; -import java.util.ArrayList; import java.util.List; import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.ITooltipProvider; -import com.hbm.inventory.gui.GUIScreenRadioTorch; import com.hbm.main.MainRegistry; import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.network.TileEntityRadioTorchBase; -import com.hbm.util.I18nUtil; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; @@ -18,25 +14,21 @@ import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; -import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.IIcon; import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.Vec3; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; import net.minecraftforge.common.util.ForgeDirection; +/** + * Base class for all torch-like RTTY blocks + * @author hbm + */ public abstract class RadioTorchBase extends BlockContainer implements IGUIProvider, ILookOverlay, ITooltipProvider { - @SideOnly(Side.CLIENT) protected IIcon iconOn; - public RadioTorchBase() { super(Material.circuits); } @@ -87,12 +79,6 @@ public abstract class RadioTorchBase extends BlockContainer implements IGUIProvi return super.collisionRayTrace(world, x, y, z, vec0, vec1); } - @Override - @SideOnly(Side.CLIENT) - public IIcon getIcon(int side, int metadata) { - return side == 0 ? this.blockIcon : this.iconOn; - } - @Override public int onBlockPlaced(World world, int x, int y, int z, int side, float fX, float fY, float fZ, int meta) { return side; @@ -130,36 +116,9 @@ public abstract class RadioTorchBase extends BlockContainer implements IGUIProvi return !player.isSneaking(); } } - - @Override - @SideOnly(Side.CLIENT) - public void printHook(Pre event, World world, int x, int y, int z) { - TileEntity te = world.getTileEntity(x, y, z); - - if(te instanceof TileEntityRadioTorchBase) { - TileEntityRadioTorchBase radio = (TileEntityRadioTorchBase) te; - List text = new ArrayList(); - if(radio.channel != null && !radio.channel.isEmpty()) text.add(EnumChatFormatting.AQUA + "Freq: " + radio.channel); - text.add(EnumChatFormatting.RED + "Signal: " + radio.lastState); - ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); - } - } @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { addStandardInfo(stack, player, list, ext); } - - @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return null; } - - @Override - @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - TileEntity te = world.getTileEntity(x, y, z); - - if(te instanceof TileEntityRadioTorchBase) - return new GUIScreenRadioTorch((TileEntityRadioTorchBase) te); - - return null; - } } diff --git a/src/main/java/com/hbm/blocks/network/RadioTorchCounter.java b/src/main/java/com/hbm/blocks/network/RadioTorchCounter.java new file mode 100644 index 000000000..a78aafc4a --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/RadioTorchCounter.java @@ -0,0 +1,70 @@ +package com.hbm.blocks.network; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.blocks.ILookOverlay; +import com.hbm.inventory.container.ContainerCounterTorch; +import com.hbm.inventory.gui.GUICounterTorch; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.network.TileEntityRadioTorchCounter; +import com.hbm.util.I18nUtil; + +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; + +public class RadioTorchCounter extends RadioTorchBase { + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if(!world.isRemote && !player.isSneaking()) { + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); + return true; + } else { + return !player.isSneaking(); + } + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityRadioTorchCounter(); + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerCounterTorch(player.inventory, (TileEntityRadioTorchCounter) world.getTileEntity(x, y, z)); + } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUICounterTorch(player.inventory, (TileEntityRadioTorchCounter) world.getTileEntity(x, y, z)); + } + + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + TileEntity te = world.getTileEntity(x, y, z); + + if(te instanceof TileEntityRadioTorchCounter) { + TileEntityRadioTorchCounter radio = (TileEntityRadioTorchCounter) te; + List text = new ArrayList(); + + for(int i = 0; i < 3; i++) { + if(!radio.channel[i].isEmpty()) { + text.add(EnumChatFormatting.AQUA + "Freq " + (i + 1) + ": " + radio.channel[i]); + text.add(EnumChatFormatting.RED + "Signal " + (i + 1) + ": " + radio.lastCount[i]); + } + } + + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } + } +} diff --git a/src/main/java/com/hbm/blocks/network/RadioTorchRWBase.java b/src/main/java/com/hbm/blocks/network/RadioTorchRWBase.java new file mode 100644 index 000000000..8199991a5 --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/RadioTorchRWBase.java @@ -0,0 +1,62 @@ +package com.hbm.blocks.network; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.blocks.ILookOverlay; +import com.hbm.inventory.gui.GUIScreenRadioTorch; +import com.hbm.tileentity.network.TileEntityRadioTorchBase; +import com.hbm.util.I18nUtil; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; + +/** + * Base class for the basic sender and receiver RTTY torch + * @author hbm + */ +public abstract class RadioTorchRWBase extends RadioTorchBase { + + @SideOnly(Side.CLIENT) protected IIcon iconOn; + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + return side == 0 ? this.blockIcon : this.iconOn; + } + + @Override + @SideOnly(Side.CLIENT) + public void printHook(Pre event, World world, int x, int y, int z) { + TileEntity te = world.getTileEntity(x, y, z); + + if(te instanceof TileEntityRadioTorchBase) { + TileEntityRadioTorchBase radio = (TileEntityRadioTorchBase) te; + List text = new ArrayList(); + if(radio.channel != null && !radio.channel.isEmpty()) text.add(EnumChatFormatting.AQUA + "Freq: " + radio.channel); + text.add(EnumChatFormatting.RED + "Signal: " + radio.lastState); + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } + } + + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return null; } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + TileEntity te = world.getTileEntity(x, y, z); + + if(te instanceof TileEntityRadioTorchBase) + return new GUIScreenRadioTorch((TileEntityRadioTorchBase) te); + + return null; + } +} diff --git a/src/main/java/com/hbm/blocks/network/RadioTorchReceiver.java b/src/main/java/com/hbm/blocks/network/RadioTorchReceiver.java index 7ce90e43f..4d7f28c83 100644 --- a/src/main/java/com/hbm/blocks/network/RadioTorchReceiver.java +++ b/src/main/java/com/hbm/blocks/network/RadioTorchReceiver.java @@ -10,7 +10,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -public class RadioTorchReceiver extends RadioTorchBase { +public class RadioTorchReceiver extends RadioTorchRWBase { public RadioTorchReceiver() { super(); diff --git a/src/main/java/com/hbm/blocks/network/RadioTorchSender.java b/src/main/java/com/hbm/blocks/network/RadioTorchSender.java index 2e5a675d4..2045be8a3 100644 --- a/src/main/java/com/hbm/blocks/network/RadioTorchSender.java +++ b/src/main/java/com/hbm/blocks/network/RadioTorchSender.java @@ -9,7 +9,7 @@ import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; -public class RadioTorchSender extends RadioTorchBase { +public class RadioTorchSender extends RadioTorchRWBase { public RadioTorchSender() { super(); diff --git a/src/main/java/com/hbm/inventory/container/ContainerCounterTorch.java b/src/main/java/com/hbm/inventory/container/ContainerCounterTorch.java new file mode 100644 index 000000000..56af3c613 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerCounterTorch.java @@ -0,0 +1,76 @@ +package com.hbm.inventory.container; + +import com.hbm.tileentity.network.TileEntityRadioTorchCounter; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerCounterTorch extends Container { + + protected TileEntityRadioTorchCounter radio; + + public ContainerCounterTorch(InventoryPlayer invPlayer, TileEntityRadioTorchCounter radio) { + this.radio = radio; + + for(int i = 0; i < 3; i++) { + this.addSlotToContainer(new Slot(radio, i, 138, 18 + 44 * i)); + } + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 12 + j * 18, 156 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 12 + i * 18, 214)); + } + } + + @Override public ItemStack transferStackInSlot(EntityPlayer player, int slot) { return null; } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return radio.isUseableByPlayer(player); + } + + @Override + public ItemStack slotClick(int index, int button, int mode, EntityPlayer player) { + + //L/R: 0 + //M3: 3 + //SHIFT: 1 + //DRAG: 5 + if(index < 0 || index > 2) { + return super.slotClick(index, button, mode, player); + } + + Slot slot = this.getSlot(index); + + ItemStack ret = null; + ItemStack held = player.inventory.getItemStack(); + + if(slot.getHasStack()) + ret = slot.getStack().copy(); + + if(button == 1 && mode == 0 && slot.getHasStack()) { + radio.matcher.nextMode(radio.getWorldObj(), slot.getStack(), index); + return ret; + + } else { + slot.putStack(held != null ? held.copy() : null); + + if(slot.getHasStack()) { + slot.getStack().stackSize = 1; + } + + slot.onSlotChanged(); + radio.matcher.initPatternStandard(radio.getWorldObj(), slot.getStack(), index); + + return ret; + } + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUICounterTorch.java b/src/main/java/com/hbm/inventory/gui/GUICounterTorch.java new file mode 100644 index 000000000..0b02ddf1a --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUICounterTorch.java @@ -0,0 +1,151 @@ +package com.hbm.inventory.gui; + +import java.util.Arrays; + +import org.lwjgl.input.Keyboard; +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerCounterTorch; +import com.hbm.lib.RefStrings; +import com.hbm.packet.NBTControlPacket; +import com.hbm.packet.PacketDispatcher; +import com.hbm.tileentity.network.TileEntityRadioTorchCounter; +import com.hbm.util.I18nUtil; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.gui.GuiTextField; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Slot; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.ResourceLocation; + +public class GUICounterTorch extends GuiInfoContainer { + + protected static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/machine/gui_rtty_counter.png"); + + protected TileEntityRadioTorchCounter counter; + protected GuiTextField[] frequency; + + public GUICounterTorch(InventoryPlayer invPlayer, TileEntityRadioTorchCounter counter) { + super(new ContainerCounterTorch(invPlayer, counter)); + this.counter = counter; + + this.xSize = 218; + this.ySize = 238; + } + + @Override + public void initGui() { + super.initGui(); + + Keyboard.enableRepeatEvents(true); + + this.frequency = new GuiTextField[3]; + + for(int i = 0; i < 3; i++) { + + this.frequency[i] = new GuiTextField(this.fontRendererObj, guiLeft + 29, guiTop + 21 + 44 * i, 86, 14); + this.frequency[i].setTextColor(0x00ff00); + this.frequency[i].setDisabledTextColour(0x00ff00); + this.frequency[i].setEnableBackgroundDrawing(false); + this.frequency[i].setMaxStringLength(10); + this.frequency[i].setText(counter.channel[i] == null ? "" : counter.channel[i]); + } + } + + @Override + public void drawScreen(int x, int y, float interp) { + super.drawScreen(x, y, interp); + + if(guiLeft + 193 <= x && guiLeft + 193 + 18 > x && guiTop + 8 < y && guiTop + 8 + 18 >= y) { + func_146283_a(Arrays.asList(new String[] { counter.polling ? "Polling" : "State Change" }), x, y); + } + if(guiLeft + 193 <= x && guiLeft + 193 + 18 > x && guiTop + 30 < y && guiTop + 30 + 18 >= y) { + func_146283_a(Arrays.asList(new String[] { "Save Settings" }), x, y); + } + + if(this.mc.thePlayer.inventory.getItemStack() == null) { + for(int i = 0; i < 3; ++i) { + Slot slot = (Slot) this.inventorySlots.inventorySlots.get(i); + + if(this.isMouseOverSlot(slot, x, y) && counter.matcher.modes[i] != null) { + + String label = EnumChatFormatting.YELLOW + ""; + + switch(counter.matcher.modes[i]) { + case "exact": label += "Item and meta match"; break; + case "wildcard": label += "Item matches"; break; + default: label += "Ore dict key matches: " + counter.matcher.modes[i]; break; + } + + this.func_146283_a(Arrays.asList(new String[] { EnumChatFormatting.RED + "Right click to change", label }), x, y - 30); + } + } + } + } + + @Override + protected void mouseClicked(int x, int y, int i) { + super.mouseClicked(x, y, i); + + /*for(int j = 0; j < 3; j++) this.frequency[j].mouseClicked(x, y, i); + + if(guiLeft + 193 <= x && guiLeft + 193 + 18 > x && guiTop + 8 < y && guiTop + 8 + 18 >= y) { + + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + data.setBoolean("polling", true); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, counter.xCoord, counter.yCoord, counter.zCoord)); + } + + if(guiLeft + 193 <= x && guiLeft + 193 + 18 > x && guiTop + 30 < y && guiTop + 30 + 18 >= y) { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + + for(int j = 0; j < 3; j++) data.setString("c" + j, this.frequency[j].getText()); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, counter.xCoord, counter.yCoord, counter.zCoord)); + }*/ + } + + @Override + protected void drawGuiContainerForegroundLayer(int x, int y) { + String name = I18nUtil.resolveKey(this.counter.getInventoryName()); + this.fontRendererObj.drawString(name, 184 / 2 - this.fontRendererObj.getStringWidth(name) / 2, this.guiTop + 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 16, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float interp, int x, int y) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + if(counter.polling) { + drawTexturedModalRect(guiLeft + 193, guiTop + 8, 218, 0, 18, 18); + } + + for(int i = 0; i < 3; i++) this.frequency[i].drawTextBox(); + } + + @Override + protected void keyTyped(char c, int i) { + + //for(int j = 0; j < 3; j++) if(this.frequency[j].textboxKeyTyped(c, i)) return; + + super.keyTyped(c, i); + } + + @Override + public void onGuiClosed() { + super.onGuiClosed(); + Keyboard.enableRepeatEvents(false); + } + + @Override + public boolean doesGuiPauseGame() { + return false; + } +} diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 9ebfb3281..f0bc031ac 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -253,6 +253,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.radio_torch_sender, 4), new Object[] { "G", "R", "I", 'G', "dustGlowstone", 'R', Blocks.redstone_torch, 'I', NETHERQUARTZ.gem() }); addRecipeAuto(new ItemStack(ModBlocks.radio_torch_receiver, 4), new Object[] { "G", "R", "I", 'G', "dustGlowstone", 'R', Blocks.redstone_torch, 'I', IRON.ingot() }); + addRecipeAuto(new ItemStack(ModBlocks.radio_torch_counter, 4), new Object[] { "G", "R", "I", 'G', "dustGlowstone", 'R', Blocks.redstone_torch, 'I', ModItems.circuit_aluminium }); addRecipeAuto(new ItemStack(ModBlocks.conveyor, 16), new Object[] { "LLL", "I I", "LLL", 'L', Items.leather, 'I', IRON.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.conveyor, 16), new Object[] { "RSR", "I I", "RSR", 'I', IRON.ingot(), 'R', DictFrame.fromOne(ModItems.plant_item, EnumPlantType.ROPE), 'S', IRON.plate() }); diff --git a/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java b/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java index d71c1ab66..988d683b8 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java +++ b/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java @@ -83,11 +83,10 @@ public abstract class TileEntityMachineBase extends TileEntityLoadedBase impleme @Override public boolean isUseableByPlayer(EntityPlayer player) { - if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) - { + if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) { return false; - }else{ - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=128; + } else { + return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <= 128; } } diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 2ff4005f6..5afef6e01 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -372,6 +372,7 @@ public class TileMappings { put(TileEntityRadioTorchSender.class, "tileentity_rtty_sender"); put(TileEntityRadioTorchReceiver.class, "tileentity_rtty_rec"); + put(TileEntityRadioTorchCounter.class, "tileentity_rtty_counter"); } private static void put(Class clazz, String... names) { diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityRadioTorchCounter.java b/src/main/java/com/hbm/tileentity/network/TileEntityRadioTorchCounter.java new file mode 100644 index 000000000..809fec28f --- /dev/null +++ b/src/main/java/com/hbm/tileentity/network/TileEntityRadioTorchCounter.java @@ -0,0 +1,125 @@ +package com.hbm.tileentity.network; + +import com.hbm.interfaces.IControlReceiver; +import com.hbm.module.ModulePatternMatcher; +import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.Compat; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityRadioTorchCounter extends TileEntityMachineBase implements IControlReceiver { + + public String[] channel; + public int[] lastCount; + public boolean polling = false; + public ModulePatternMatcher matcher; + + public TileEntityRadioTorchCounter() { + super(3); + this.channel = new String[3]; + for(int i = 0; i < 3; i++) this.channel[i] = ""; + this.lastCount = new int[3]; + this.matcher = new ModulePatternMatcher(3); + } + + @Override + public String getName() { + return "container.rttyCounter"; + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()).getOpposite(); + + TileEntity tile = Compat.getTileStandard(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ); + if(tile instanceof IInventory) { + IInventory inv = (IInventory) tile; + ItemStack[] invSlots = new ItemStack[inv.getSizeInventory()]; + for(int i = 0; i < invSlots.length; i++) invSlots[i] = inv.getStackInSlot(i); + + for(int i = 0; i < 3; i++) { + if(channel[i].isEmpty()) continue; + if(slots[i] == null) continue; + ItemStack pattern = slots[i]; + + int count = 0; + + for(int j = 0; j < invSlots.length; j++) { + if(invSlots[j] != null && matcher.isValidForFilter(pattern, i, invSlots[j])) { + count += invSlots[j].stackSize; + } + } + + if(this.polling || this.lastCount[i] != count) { + RTTYSystem.broadcast(worldObj, this.channel[i], count); + } + + this.lastCount[i] = count; + } + } + + NBTTagCompound data = new NBTTagCompound(); + data.setBoolean("polling", polling); + data.setIntArray("last", lastCount); + this.matcher.writeToNBT(data); + for(int i = 0; i < 3; i++) if(channel[i] != null) data.setString("c" + i, channel[i]); + this.networkPack(data, 15); + } + } + + public void networkUnpack(NBTTagCompound nbt) { + this.polling = nbt.getBoolean("polling"); + this.lastCount = nbt.getIntArray("last"); + this.matcher.modes = new String[this.matcher.modes.length]; + this.matcher.readFromNBT(nbt); + for(int i = 0; i < 3; i++) this.channel[i] = nbt.getString("c" + i); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.polling = nbt.getBoolean("p"); + for(int i = 0; i < 3; i++) { + this.channel[i] = nbt.getString("c" + i); + this.lastCount[i] = nbt.getInteger("l" + i); + } + this.matcher.readFromNBT(nbt); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setBoolean("p", polling); + for(int i = 0; i < 3; i++) { + if(channel[i] != null) nbt.setString("c" + i, channel[i]); + nbt.setInteger("l" + i, lastCount[i]); + } + this.matcher.writeToNBT(nbt); + } + + @Override + public boolean hasPermission(EntityPlayer player) { + return this.isUseableByPlayer(player); + } + + @Override + public void receiveControl(NBTTagCompound data) { + if(data.hasKey("polling")) { + this.polling = !this.polling; + this.markChanged(); + } else { + System.out.println("guh"); + for(int i = 0; i < 3; i++) { + this.channel[i] = data.getString("c" + i); + } + this.markChanged(); + } + } +} diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 5440f43b5..a76c6a773 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -392,6 +392,7 @@ container.reactorSmall=Atomreaktor container.reix=Rei-X Hauptrechner container.rtg=Radioisotopengenerator container.rtgFurnace=RTG-Ofen +container.rttyCounter=Redstone-over-Radio Itemzähler container.rttyReceiver=Redstone-over-Radio Empfänger container.rttySender=Redstone-over-Radio Sender container.safe=Panzerschrank @@ -4197,6 +4198,8 @@ tile.pribris.name=RBMK-Schutt tile.pribris_burning.name=Flammender RBMK-Schutt tile.pribris_digamma.name=Geschwärzter RBMK-Schutt tile.pribris_radiating.name=Glühender RBMK-Schutt +tile.radio_torch_counter.name=Redstone-over-Radio Itemzähler +tile.radio_torch_counter.desc=Kann auf ebenen Flächen oder Komparator-kompatiblen Blöcken platziert werden$Signal basiert auf Anzahl passender Items tile.radio_torch_receiver.name=Redstone-over-Radio Empfänger tile.radio_torch_receiver.desc=Kann auf ebenen Flächen oder Komparator-kompatiblen Blöcken platziert werden tile.radio_torch_sender.name=Redstone-over-Radio Sender diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 859d763ce..4f6bc3080 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -730,6 +730,7 @@ container.reactorResearch=Research Reactor container.reix=Rei-X Mainframe container.rtg=RT Generator container.rtgFurnace=RTG Furnace +container.rttyCounter=Redstone-over-Radio Item Counter container.rttyReceiver=Redstone-over-Radio Receiver container.rttySender=Redstone-over-Radio Transmitter container.safe=Safe @@ -5075,6 +5076,8 @@ tile.pribris.name=RBMK Debris tile.pribris_burning.name=Flaming RBMK Debris tile.pribris_digamma.name=Blackened RBMK Debris tile.pribris_radiating.name=Smoldering RBMK Debris +tile.radio_torch_counter.name=Redstone-over-Radio Item Counter +tile.radio_torch_counter.desc=Placable on flat surfaces or comparator-compatible blocks$Bases signal on the amount of matching items tile.radio_torch_receiver.name=Redstone-over-Radio Receiver tile.radio_torch_receiver.desc=Placable on flat surfaces or comparator-compatible blocks tile.radio_torch_sender.name=Redstone-over-Radio Transmitter diff --git a/src/main/resources/assets/hbm/textures/blocks/rtty_counter.png b/src/main/resources/assets/hbm/textures/blocks/rtty_counter.png index e1d9764f73240c483f65da1d7903e5fa1b900026..f00b829ac17ab690e1bdfca18495433885d953e6 100644 GIT binary patch delta 59 zcmdnNxQ%gw31jX=Q$zmL^bb{x>$$b&hZ)Y0J#lDasj3V|6{Ed^k{CnwJiYxKx>*ej OK;Y@>=d#Wzp$Py@4HA(6 delta 61 zcmdnSxPx(m31j|5Q$zl@`X8$p*K=#l4>O#x_WRL^rK)lopAYp)n{!k#GE97;pY`z> R7b61@c)I$ztaD0e0s!2w7N`IK diff --git a/src/main/resources/assets/hbm/textures/gui/machine/gui_rtty_counter.png b/src/main/resources/assets/hbm/textures/gui/machine/gui_rtty_counter.png new file mode 100644 index 0000000000000000000000000000000000000000..70c49adf402460a014a8f3d9310a33ee0ccde091 GIT binary patch literal 2546 zcmb`JdpOkV7RTSYFhhw=vg5&YmDG%KDWi-^1$lC(tt%R`81(VK0ieLJwc6ntnJwz74%Dh& zhU&Q~Xp_USF+sV-7IBNM<^9#MaE*&Fh5|XCNzp_E&LQ=Al@2#CYq}Kmkyff?+u)x3 z%ZJD0Tr~FxS?3&Wj#ZLE%t+X%C(7twUD^bZHByn_nmN~2wocXm{L56j$qZg*m{?m| zdyXz18#AQkKmxC*+X<*|a+fY~YNrqV+{1g~p?zYiQu(Jj8*4raS~S zjX6b^VM)Ev6-B3cWpk{QloUU4Q{wRb`R-dtkiU)I%25UG5q;yd82%`>>59-ZK9X1% zGw8+Vv|j;KHWDD$0`i%zXz>ZDf7ez8v|4s{PTI&PZmg+z(lr}RGKE<(k}M=^qgy6> z^B(X{XR!hU9YcX*_Q$f7AVWAez0QxNk&ffGr+0ez^|w9be9AI30kPBL1BK6PROd!J zara+G{XP>S(2SUUWOVsBGi_$MRMN0bxY&=e-kciv=ulN;*&F*>L9hVdJRl6`P+GMk z2j&xoyPn}2wx>8@jaYJ#lj5O+b=BRmk)m@49xa(%{(i*Ss}Ov8*Eo5cDFji?OF^CI zXdpp4#YuIsE3=SI^QBi?d-sP?!|(85soD+2iDP)s-cUry3wlb@w(O9OC+3!@y@Hiv z+h_7vQO5^CNEq7k{=HDJUtFwnVgHFC@6V2}U@G0+?$XS)lW(o?0PTPR@svSeF+-W{ zklm|BxHX9Zx~#z?zSFC833(3f8TJfUj0oVqE@21s9t7x;&EOR42!CWdY5HOa4>rMA zOcexYd~9nYh52;T=0y)q%4&)()TlZrQAtLP<@2{3`^S%tC$++9tL#a4PO3L6>|sDD z-@uIzNG0mg{GHKgU>6Yf{$V(r^E`BIb6>@d738BTri~rvCLJa#GhKwAM=jRpXm6_+ z$7Jk9y_$jOGtfr&8UMQ2#m;v;GxE}h**L9!p&9ih+3@Y-xD|UpW}S}?)gjj+Fa_CK zNnmzoD}u^WC2C zSkvbF3AgnJeY_{iPJ(LbeEs_8u#W7*i@Edjv8QAVH;NwFtw%gOXSFoSjqE9R{u^)@ zLm03x$7;0Cti|lD6o$dI!Byi}p5Mb_)pRSArLm*u6rWEctbtiN-0jxS>f5+LDaJ4e zwr;A``~C56ZD}ODRf_rf~@Mf1}JNor$O3lk{ru@X*UeP{SMAV0}UrsuzS#(TMx@ zB_-#V05}(BNrsTxV2>JWz;QYA=~C_TgHIs9T6nO_x`N`wX$r({F!XG<<$!er7a-Qb z&RIdI&$!C7gSR$^`1+ROjYo;Ha6VH;=GBrF3gso1;L_MwHr7|#V ztvCq`wB-5wV=4L3FPfze?8-@&v#-iASpEJ62M<$k4i4y z1#Vm~K-~G$b82h3=J(bx2r%UvwAp&q4g`tkmk9QW86AK$bw?S-o-Mp@p^<(S&SCH5@`wF1MYf&!-S)njvMr!Um`_A4i>$?Q`T6-qdAOO9 zd_rnz^^;6;3_{&txm=(301BF{3$`=!3q`?G@z~+%HYZ1lR_QuL31R3acQAi7@)5k0`>Mo0~6sBcL(UQSUoD4}DUgZ;QH?Lx?L)#8(Ve z+L`DE!G7%jnVX+N|Lp3&p-c`6!flV5I4;oJZ==mW+ICR5d+$>Hf;gOVpfx6p@9Z68 zotu!508NU78cab$nXg^OFMDVe#lKnS#$+SDkHr7|V53#Zct7_GG0o`wmweu)Rn8V( zNEdIBFyohXx&u(t`mee9`2pX;te`W!kY`LcuW~-!4gVpTw1=y2Lg z&J8+ds~Iin(Kk8$hqU~Q>)Yn!B#(HHXfL@^&Y|zxq*j=okTJa5Y}v%yTzxDS>rZ+c zOwqO+xP*J+6N)KE>wzH#pS*ij9<{DxX5qK(C!?B7#Wj7jP>6e>d}YC5yPIfLx|4k7 EAKRyc`Tzg` literal 0 HcmV?d00001 From bc8dfcaa99291077b23912c732e3c7b6b5538bd2 Mon Sep 17 00:00:00 2001 From: Bob Date: Thu, 6 Jul 2023 20:48:25 +0200 Subject: [PATCH 185/432] coolers --- changelog | 6 ++ src/main/java/com/hbm/blocks/ModBlocks.java | 3 + .../hbm/blocks/machine/BlockHadronCooler.java | 68 ++++++++++++++++++ .../hbm/inventory/gui/GUICounterTorch.java | 8 +-- .../tileentity/machine/TileEntityHadron.java | 47 ++++++++++-- src/main/resources/assets/hbm/lang/de_DE.lang | 2 + src/main/resources/assets/hbm/lang/en_US.lang | 4 ++ .../hbm/textures/blocks/hadron_cooler_mk2.png | Bin 0 -> 331 bytes 8 files changed, 130 insertions(+), 8 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/machine/BlockHadronCooler.java create mode 100644 src/main/resources/assets/hbm/textures/blocks/hadron_cooler_mk2.png diff --git a/changelog b/changelog index 90238bcbc..d43d6b07f 100644 --- a/changelog +++ b/changelog @@ -9,6 +9,12 @@ * This allows for more precise control over things like assembler chests, like turning off the ejector for an item that is already full but not other ejectors * This property makes automating things with multiple inputs a lot easier * Due to the ore dictionary ability of the counter, buffered items can precisely match the requirements of the recipe +* Particle collider cooling unit + * A block that can replace coils in a particle collider + * Will increment a new "cooling" value which depletes over time and makes coils more effective + * Overcooling causes a penalty, so coolers cannot be spammed and need to be carefully spaced out + * Allows for even more compact particle accelerator setups + * Comes in two tiers, both tiers use a different cooling variable with different effectiveness, the higher tier will override the lower tier if both tiers of coolers are present ## Changed * The regular boiler now only holds 16k instead of 64k (which is still a lot) diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 4dff0bb1f..915dd8b07 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -742,6 +742,7 @@ public class ModBlocks { public static Block hadron_analysis_glass; public static Block hadron_access; public static Block hadron_core; + public static Block hadron_cooler; public static Block machine_electric_furnace_off; public static Block machine_electric_furnace_on; @@ -1875,6 +1876,7 @@ public class ModBlocks { hadron_analysis_glass = new BlockNTMGlass(0, RefStrings.MODID + ":hadron_analysis_glass", Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_analysis_glass").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_analysis_glass"); hadron_access = new BlockHadronAccess(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_access").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_access"); hadron_core = new BlockHadronCore(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_core").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_core"); + hadron_cooler = new BlockHadronCooler(Material.iron).setBlockName("hadron_cooler").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F); machine_electric_furnace_off = new MachineElectricFurnace(false).setBlockName("machine_electric_furnace_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); machine_electric_furnace_on = new MachineElectricFurnace(true).setBlockName("machine_electric_furnace_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F); @@ -3123,6 +3125,7 @@ public class ModBlocks { GameRegistry.registerBlock(hadron_analysis_glass, hadron_analysis_glass.getUnlocalizedName()); GameRegistry.registerBlock(hadron_access, hadron_access.getUnlocalizedName()); GameRegistry.registerBlock(hadron_core, hadron_core.getUnlocalizedName()); + register(hadron_cooler); GameRegistry.registerBlock(rbmk_rod, rbmk_rod.getUnlocalizedName()); GameRegistry.registerBlock(rbmk_rod_mod, rbmk_rod_mod.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/machine/BlockHadronCooler.java b/src/main/java/com/hbm/blocks/machine/BlockHadronCooler.java new file mode 100644 index 000000000..95fcb17de --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/BlockHadronCooler.java @@ -0,0 +1,68 @@ +package com.hbm.blocks.machine; + +import java.util.List; + +import org.lwjgl.input.Keyboard; + +import com.hbm.blocks.BlockMulti; +import com.hbm.blocks.ITooltipProvider; +import com.hbm.lib.RefStrings; +import com.hbm.util.I18nUtil; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.IIcon; + +public class BlockHadronCooler extends BlockMulti implements ITooltipProvider { + + private IIcon[] icons = new IIcon[getSubCount()]; + + public BlockHadronCooler(Material mat) { + super(mat); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister reg) { + icons[0] = reg.registerIcon(RefStrings.MODID + ":hadron_cooler"); + icons[1] = reg.registerIcon(RefStrings.MODID + ":hadron_cooler_mk2"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + return icons[this.rectify(metadata)]; + } + + @Override + public int getSubCount() { + return 2; + } + + @Override + public String getUnlocalizedName(ItemStack stack) { + int meta = this.rectify(stack.getItemDamage()); + + if(meta == 1) return this.getUnlocalizedName() + "_mk2"; + + return this.getUnlocalizedName(); + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + + if(Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { + for(String s : I18nUtil.resolveKeyArray(this.getUnlocalizedName(stack) + ".desc")) list.add(EnumChatFormatting.YELLOW + s); + } else { + list.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC +"Hold <" + + EnumChatFormatting.YELLOW + "" + EnumChatFormatting.ITALIC + "LSHIFT" + + EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC + "> to display more info"); + } + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUICounterTorch.java b/src/main/java/com/hbm/inventory/gui/GUICounterTorch.java index 0b02ddf1a..b4c4dd7b2 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICounterTorch.java +++ b/src/main/java/com/hbm/inventory/gui/GUICounterTorch.java @@ -91,7 +91,7 @@ public class GUICounterTorch extends GuiInfoContainer { protected void mouseClicked(int x, int y, int i) { super.mouseClicked(x, y, i); - /*for(int j = 0; j < 3; j++) this.frequency[j].mouseClicked(x, y, i); + for(int j = 0; j < 3; j++) this.frequency[j].mouseClicked(x, y, i); if(guiLeft + 193 <= x && guiLeft + 193 + 18 > x && guiTop + 8 < y && guiTop + 8 + 18 >= y) { @@ -107,13 +107,13 @@ public class GUICounterTorch extends GuiInfoContainer { for(int j = 0; j < 3; j++) data.setString("c" + j, this.frequency[j].getText()); PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, counter.xCoord, counter.yCoord, counter.zCoord)); - }*/ + } } @Override protected void drawGuiContainerForegroundLayer(int x, int y) { String name = I18nUtil.resolveKey(this.counter.getInventoryName()); - this.fontRendererObj.drawString(name, 184 / 2 - this.fontRendererObj.getStringWidth(name) / 2, this.guiTop + 6, 4210752); + this.fontRendererObj.drawString(name, 184 / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); this.fontRendererObj.drawString(I18n.format("container.inventory"), 16, this.ySize - 96 + 2, 4210752); } @@ -133,7 +133,7 @@ public class GUICounterTorch extends GuiInfoContainer { @Override protected void keyTyped(char c, int i) { - //for(int j = 0; j < 3; j++) if(this.frequency[j].textboxKeyTyped(c, i)) return; + for(int j = 0; j < 3; j++) if(this.frequency[j].textboxKeyTyped(c, i)) return; super.keyTyped(c, i); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java index 215f5d766..4b6d588c1 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java @@ -322,6 +322,8 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs int charge; int analysis; boolean isCheckExempt = false; + int cl0 = 0; + int cl1 = 0; boolean expired = false; @@ -375,6 +377,34 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs if(charge < 0) this.expire(EnumHadronState.ERROR_NO_CHARGE); + + if(cl0 > 0) cl0--; + if(cl1 > 0) cl1--; + } + + public void incrementCharge(Block block, int meta, int coilVal) { + + if(block == ModBlocks.hadron_cooler) { + if(meta == 0) cl0 += 10; + if(meta == 1) cl1 += 5; + } + + //not the best code ever made but it works, dammit + if(cl1 > 0) { + if(cl1 > 15) { + coilVal *= 0.90; + } else { + coilVal *= 1.25; + } + } else if(cl0 > 0) { + if(cl0 > 10) { + coilVal *= 0.75; + } else { + coilVal *= 1.10; + } + } + + this.momentum += coilVal; } } @@ -414,7 +444,7 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs if(block == ModBlocks.hadron_diode) p.isCheckExempt = true; - if(coilValue(worldObj.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ)) > 0) + if(isValidCoil(worldObj.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ))) p.isCheckExempt = true; } @@ -445,6 +475,7 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs for(int c = z - dZ * 2; c <= z + dZ * 2;c++) { Block block = worldObj.getBlock(a, b, c); + int meta = worldObj.getBlockMetadata(a, b, c); /** ignore the center for now */ if(a == x && b == y && c == z) { @@ -479,11 +510,11 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs int coilVal = coilValue(block); //not a valid coil: kablam! - if(coilVal == 0) { + if(!isValidCoil(block)) { p.expire(EnumHadronState.ERROR_EXPECTED_COIL); } else { - p.momentum += coilVal; p.charge -= coilVal; + p.incrementCharge(block, meta, coilVal); } continue; @@ -641,7 +672,7 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs return; //so, the next block is most certainly a wall. not good. perhaps we could try turning? - if(coilValue(next) > 0) { + if(isValidCoil(next)) { ForgeDirection validDir = ForgeDirection.UNKNOWN; @@ -692,6 +723,14 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs return dirs; } + public boolean isValidCoil(Block b) { + if(coilValue(b) > 0) return true; + + if(b == ModBlocks.hadron_cooler) return true; + + return false; + } + public int coilValue(Block b) { if(b instanceof BlockHadronCoil) diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index a76c6a773..44aa3dfe6 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -3884,6 +3884,8 @@ tile.hadron_coil_neodymium.name=Dichte Neodymspule tile.hadron_coil_schrabidate.name=Dichte Schrabidatspule tile.hadron_coil_schrabidium.name=Dichte Schrabidiumspule tile.hadron_coil_starmetal.name=Dichte Sternenmetallspule +tile.hadron_cooler.name=Teilchenbeschleuniger-Kühlungseinheit +tile.hadron_cooler_mk2.nameTeilchenbeschleuniger-Kühlungseinheit - Das Palindrome-Spezial tile.hadron_core.name=Teilchenbeschleuniger-Kernkomponente tile.hadron_diode.name=Schottky-Partikeldiode tile.hadron_plating.name=Teilchenbeschleuniger-Außenwand diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 4f6bc3080..4ef3fcad3 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -4759,6 +4759,10 @@ tile.hadron_coil_neodymium.name=Dense Neodymium Coil tile.hadron_coil_schrabidate.name=Dense Schrabidate Coil tile.hadron_coil_schrabidium.name=Dense Schrabidic Coil tile.hadron_coil_starmetal.name=Dense Starmetal Coil +tile.hadron_cooler.name=Particle Accelerator Cooling Unit +tile.hadron_cooler.desc=Cooling power: 10$Overcooling threshold: 10$Cooling bonus: +10%%$Overcooling penalty: -25%% +tile.hadron_cooler_mk2.name=Particle Accelerator Cooling Unit - The Palindrome Special +tile.hadron_cooler_mk2.desc=Cooling power: 5$Overcooling threshold: 15$Cooling bonus: +25%%$Overcooling penalty: -10%% tile.hadron_core.name=Particle Accelerator Core Component tile.hadron_diode.name=Schottky Particle Diode tile.hadron_plating.name=Particle Accelerator Plating diff --git a/src/main/resources/assets/hbm/textures/blocks/hadron_cooler_mk2.png b/src/main/resources/assets/hbm/textures/blocks/hadron_cooler_mk2.png new file mode 100644 index 0000000000000000000000000000000000000000..63c994f68a9ecfe048f99cd97245bfa560fdc575 GIT binary patch literal 331 zcmV-R0kr;!P)xDEoC-=>p+(3p#@Tjj-09suVUY0(DzD`j9Umv#z zFNT*lR?C7ckF9r%QDeiXxZjfHF|%kx80{vVp3fZy*arYSUuhQWcV~?$#s;*yWU)Sk zSIYvxuHs{qIsVh*r}J@^$F#a+7H#P3)L{TrU#HH6naSf-etTA3l}J}5B10oxmB`J- zi5Rb|5_x@?+sDVKR`33C80|xiHzmUarby!(H#^(#pCb8~K!!$+mE`*F%m)0qNM`bX dDAJUsm~Y}8?L&b$H30ws002ovPDHLkV1kwFjF12T literal 0 HcmV?d00001 From 873e41558f43f7bfe69c99b7163d49e916e88bb7 Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 7 Jul 2023 09:20:32 +0200 Subject: [PATCH 186/432] and now for something completely different --- changelog | 5 + .../java/com/hbm/crafting/WeaponRecipes.java | 3 +- .../hbm/handler/guncfg/Gun12GaugeFactory.java | 66 + .../hbm/handler/guncfg/Gun20GaugeFactory.java | 108 - .../hbm/handler/guncfg/Gun762mmFactory.java | 127 + src/main/java/com/hbm/items/ModItems.java | 9 +- .../com/hbm/items/weapon/ItemGunBase.java | 3 +- src/main/java/com/hbm/main/ClientProxy.java | 1 + .../java/com/hbm/main/ResourceManager.java | 2 + .../render/item/weapon/ItemRenderBenelli.java | 115 + .../item/weapon/ItemRenderWeaponFFBolt.java | 3 + .../assets/hbm/models/weapons/benelli_new.obj | 5820 +++++++++++++++++ .../assets/hbm/textures/misc/scope_bolt.png | Bin 0 -> 8544 bytes .../textures/models/weapons/benelli_tex.png | Bin 0 -> 1499 bytes 14 files changed, 6148 insertions(+), 114 deletions(-) create mode 100644 src/main/java/com/hbm/render/item/weapon/ItemRenderBenelli.java create mode 100644 src/main/resources/assets/hbm/models/weapons/benelli_new.obj create mode 100644 src/main/resources/assets/hbm/textures/misc/scope_bolt.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/benelli_tex.png diff --git a/changelog b/changelog index d43d6b07f..13b15e13d 100644 --- a/changelog +++ b/changelog @@ -15,6 +15,8 @@ * Overcooling causes a penalty, so coolers cannot be spammed and need to be carefully spaced out * Allows for even more compact particle accelerator setups * Comes in two tiers, both tiers use a different cooling variable with different effectiveness, the higher tier will override the lower tier if both tiers of coolers are present +* Benelli M4 + * Automatic 12 gauge shotgun with a drum mag ## Changed * The regular boiler now only holds 16k instead of 64k (which is still a lot) @@ -22,6 +24,9 @@ * Glyphid eggs can now be broken apart using an anvil, yielding glyphid meat, bones and experience bottles * The assembler now uses the new multiblock system, making it less annoying to playe and less ear-piercing to break * The conversion happens automatically so it's not necessary to remove the assemblers beforehand +* Reload canceling is no longer possible if no rounds have been loaded yet, preventing single round weapons like dart guns to be reload canceled +* The saturnite rifle now has a functional scope +* Rechambered the bolt action rifles to 7.62mm, with a mag of 5 rounds ## Fixed * Fixed quantity of the fusion reactor's construction recipe not being displayed right diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index d1fd20064..e8c622861 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -2,7 +2,6 @@ package com.hbm.crafting; import com.hbm.blocks.ModBlocks; import com.hbm.inventory.OreDictManager; -import com.hbm.inventory.RecipesCommon; import com.hbm.inventory.fluid.Fluids; import static com.hbm.inventory.OreDictManager.*; @@ -17,7 +16,6 @@ import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraftforge.oredict.OreDictionary; /** * For guns, ammo and the like @@ -159,6 +157,7 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_spas12, 1), new Object[] { "TPS", "HHR", " L", 'T', ModItems.bolt_tungsten, 'P', STEEL.plate(), 'S', STEEL.ingot(), 'H', ModItems.hull_small_steel, 'R', ModItems.mechanism_rifle_1, 'L', ANY_PLASTIC.ingot()}); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_glass_cannon, 1), new Object[] { "GGC", "GTM", 'G', Item.getItemFromBlock(ModBlocks.glass_quartz), 'C', ModItems.battery_lithium_cell, 'T', ModItems.crt_display, 'M', ModItems.mechanism_special }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_remington, 1), new Object[] { "PPM", "S L", 'P', STEEL.plate(), 'M', ModItems.mechanism_rifle_1, 'S', KEY_SLAB, 'L', KEY_LOG }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_benelli), new Object[] { "HHP", "SSM", "AAP", 'H', ModItems.ingot_dura_steel, 'S', ModItems.hull_small_steel, 'A', ModItems.hull_small_aluminium, 'P', ModItems.ingot_polymer, 'M', ModItems.mechanism_rifle_2 }); //Ammo assemblies CraftingManager.addRecipeAuto(new ItemStack(ModItems.pellet_flechette, 1), new Object[] { " L ", " L ", "LLL", 'L', PB.nugget() }); diff --git a/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java index e5f851c48..f580db9e6 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java @@ -234,6 +234,72 @@ public class Gun12GaugeFactory { return config; } + + public static GunConfiguration getBenelliConfig() { + + GunConfiguration config = getUboinikConfig(); + + config.gunMode = 0; + config.firingMode = 1; + config.rateOfFire = 5; + config.ammoCap = 8; + config.reloadDuration = 8; + config.crosshair = Crosshair.CIRCLE; + config.hasSights = true; + config.durability = 250000; + config.allowsInfinity = true; + config.firingSound = "hbm:weapon.autoshotgunFirePB3"; + config.reloadSound = "hbm:weapon.shotgunReloadPB3"; + config.reloadType = 2; + config.reloadSoundEnd = true; + + config.animations.put(AnimType.CYCLE, new BusAnimation() + .addBus("RECOIL", new BusAnimationSequence() + .addKeyframe(new BusAnimationKeyframe(6.25, 0.25, 2.5, 55)) + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 55)) + ) + .addBus("EJECT", new BusAnimationSequence() + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 25)) + .addKeyframe(new BusAnimationKeyframe(25, 0, 0, 100)) + ) + ); + + config.animations.put(AnimType.RELOAD, new BusAnimation() + .addBus("RELOAD", new BusAnimationSequence() + .addKeyframe(new BusAnimationKeyframe(60, 0, -10, 400)) + .addKeyframe(new BusAnimationKeyframe(60, 125, -10, 200)) + .addKeyframe(new BusAnimationKeyframe(60, 125, -10, 300)) + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 300)) + ) + .addBus("PUMP", new BusAnimationSequence() + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 900)) + .addKeyframe(new BusAnimationKeyframe(10, 0, 0, 200)) + .addKeyframe(new BusAnimationKeyframe()) + ) + ); + + config.name = "benelli"; + config.manufacturer = EnumGunManufacturer.BENELLI; + config.comment.add("Eat your heart out SPAS-12"); + config.config = HbmCollection.g12; + + config.ejector = EJECTOR_BENELLI; + + return config; + } + + public static GunConfiguration getBenelliModConfig() { + + GunConfiguration config = getBenelliConfig(); + + config.reloadType = 1; + config.ammoCap = 24; + config.reloadDuration = 20; + config.reloadSound = config.RSOUND_MAG; + config.reloadSoundEnd = true; + config.name += "Drum"; + return config; + } public static BulletConfiguration get12GaugeConfig() { diff --git a/src/main/java/com/hbm/handler/guncfg/Gun20GaugeFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun20GaugeFactory.java index 80f96b057..a985bf636 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun20GaugeFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun20GaugeFactory.java @@ -108,114 +108,6 @@ public class Gun20GaugeFactory { return config; } - public static GunConfiguration getBoltConfig() { - - GunConfiguration config = getShotgunConfig(); - - config.ammoCap = 1; - config.durability = 3000; - config.reloadSound = GunConfiguration.RSOUND_SHOTGUN; - config.firingSound = "hbm:weapon.revolverShoot"; - config.firingPitch = 0.75F; - - config.animations.put(AnimType.CYCLE, new BusAnimation() - .addBus("RECOIL", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 25)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 75)) - ) - .addBus("LEVER_PULL", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 375)) //wait out recoil and lever flick - .addKeyframe(new BusAnimationKeyframe(-1, 0, 0, 375)) //pull back bolt - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 375)) //release bolt - ) - .addBus("LEVER_ROTATE", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 250)) //wait out recoil - .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 125)) //flick up lever in 125ms - .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 750)) //pull action - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 125)) //flick down lever again - ) - ); - - config.name = "win20Inox"; - config.manufacturer = EnumGunManufacturer.WINCHESTER; - - config.config = HbmCollection.g20; - - return config; - } - - public static GunConfiguration getBoltGreenConfig() { - - GunConfiguration config = getShotgunConfig(); - - config.ammoCap = 1; - config.durability = 2500; - config.reloadSound = GunConfiguration.RSOUND_SHOTGUN; - config.firingSound = "hbm:weapon.revolverShoot"; - config.firingPitch = 0.75F; - - config.animations.put(AnimType.CYCLE, new BusAnimation() - .addBus("RECOIL", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 25)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 75)) - ) - .addBus("LEVER_PULL", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 375)) //wait out recoil and lever flick - .addKeyframe(new BusAnimationKeyframe(-1, 0, 0, 375)) //pull back bolt - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 375)) //release bolt - ) - .addBus("LEVER_ROTATE", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 250)) //wait out recoil - .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 125)) //flick up lever in 125ms - .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 750)) //pull action - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 125)) //flick down lever again - ) - ); - - config.name = "win20Poly"; - config.manufacturer = EnumGunManufacturer.WINCHESTER; - - config.config = HbmCollection.g20; - - return config; - } - - public static GunConfiguration getBoltSaturniteConfig() { - - GunConfiguration config = getShotgunConfig(); - - config.ammoCap = 1; - config.durability = 4000; - config.reloadSound = GunConfiguration.RSOUND_SHOTGUN; - config.firingSound = "hbm:weapon.revolverShoot"; - config.firingPitch = 0.75F; - - config.animations.put(AnimType.CYCLE, new BusAnimation() - .addBus("RECOIL", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 25)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 75)) - ) - .addBus("LEVER_PULL", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 375)) //wait out recoil and lever flick - .addKeyframe(new BusAnimationKeyframe(-1, 0, 0, 375)) //pull back bolt - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 375)) //release bolt - ) - .addBus("LEVER_ROTATE", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 250)) //wait out recoil - .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 125)) //flick up lever in 125ms - .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 750)) //pull action - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 125)) //flick down lever again - ) - ); - - config.name = "win20Satur"; - config.manufacturer = EnumGunManufacturer.WINCHESTER_BIGMT; - - config.config = HbmCollection.g20; - - return config; - } - public static BulletConfiguration get20GaugeConfig() { BulletConfiguration bullet = BulletConfigFactory.standardBuckshotConfig(); diff --git a/src/main/java/com/hbm/handler/guncfg/Gun762mmFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun762mmFactory.java index d5da7444f..4dec2a175 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun762mmFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun762mmFactory.java @@ -9,6 +9,7 @@ import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.ModItems; import com.hbm.items.ItemAmmoEnums.Ammo762NATO; import com.hbm.lib.HbmCollection; +import com.hbm.lib.RefStrings; import com.hbm.lib.HbmCollection.EnumGunManufacturer; import com.hbm.particle.SpentCasing; import com.hbm.particle.SpentCasing.CasingType; @@ -20,14 +21,19 @@ import com.hbm.render.anim.HbmAnimations.AnimType; import com.hbm.render.util.RenderScreenOverlay.Crosshair; import net.minecraft.potion.PotionEffect; +import net.minecraft.util.ResourceLocation; public class Gun762mmFactory { + public static final ResourceLocation scope_bolt = new ResourceLocation(RefStrings.MODID, "textures/misc/scope_bolt.png"); + private static final CasingEjector EJECTOR_RIFLE; + private static final CasingEjector EJECTOR_BOLT; private static final SpentCasing CASING762NATO; static { EJECTOR_RIFLE = new CasingEjector().setMotion(-0.35, 0.6, 0).setOffset(-0.35, 0, 0.35).setAngleRange(0.01F, 0.03F); + EJECTOR_BOLT = new CasingEjector().setMotion(-0.35, 0.6, 0).setOffset(-0.35, 0, 0.35).setAngleRange(0.01F, 0.03F).setDelay(15); CASING762NATO = new SpentCasing(CasingType.BOTTLENECK).setScale(1.7F).setBounceMotion(0.01F, 0.05F).setColor(SpentCasing.COLOR_CASE_BRASS); } @@ -157,6 +163,127 @@ public class Gun762mmFactory { return config; } + + public static GunConfiguration getBoltConfig() { + + GunConfiguration config = Gun20GaugeFactory.getShotgunConfig(); + + config.ammoCap = 5; + config.durability = 3000; + config.reloadSound = GunConfiguration.RSOUND_SHOTGUN; + config.firingSound = "hbm:weapon.revolverShoot"; + config.firingPitch = 0.75F; + config.crosshair = Crosshair.CIRCLE; + + config.animations.put(AnimType.CYCLE, new BusAnimation() + .addBus("RECOIL", new BusAnimationSequence() + .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 25)) + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 75)) + ) + .addBus("LEVER_PULL", new BusAnimationSequence() + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 375)) //wait out recoil and lever flick + .addKeyframe(new BusAnimationKeyframe(-1, 0, 0, 375)) //pull back bolt + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 375)) //release bolt + ) + .addBus("LEVER_ROTATE", new BusAnimationSequence() + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 250)) //wait out recoil + .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 125)) //flick up lever in 125ms + .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 750)) //pull action + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 125)) //flick down lever again + ) + ); + + config.name = "win20Inox"; + config.manufacturer = EnumGunManufacturer.WINCHESTER; + + config.ejector = EJECTOR_BOLT; + + config.config = HbmCollection.r762; + + return config; + } + + public static GunConfiguration getBoltGreenConfig() { + + GunConfiguration config = Gun20GaugeFactory.getShotgunConfig(); + + config.ammoCap = 5; + config.durability = 2500; + config.reloadSound = GunConfiguration.RSOUND_SHOTGUN; + config.firingSound = "hbm:weapon.revolverShoot"; + config.firingPitch = 0.75F; + config.crosshair = Crosshair.CIRCLE; + + config.animations.put(AnimType.CYCLE, new BusAnimation() + .addBus("RECOIL", new BusAnimationSequence() + .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 25)) + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 75)) + ) + .addBus("LEVER_PULL", new BusAnimationSequence() + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 375)) //wait out recoil and lever flick + .addKeyframe(new BusAnimationKeyframe(-1, 0, 0, 375)) //pull back bolt + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 375)) //release bolt + ) + .addBus("LEVER_ROTATE", new BusAnimationSequence() + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 250)) //wait out recoil + .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 125)) //flick up lever in 125ms + .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 750)) //pull action + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 125)) //flick down lever again + ) + ); + + config.name = "win20Poly"; + config.manufacturer = EnumGunManufacturer.WINCHESTER; + + config.ejector = EJECTOR_BOLT; + + config.config = HbmCollection.r762; + + return config; + } + + public static GunConfiguration getBoltSaturniteConfig() { + + GunConfiguration config = Gun20GaugeFactory.getShotgunConfig(); + + config.ammoCap = 5; + config.durability = 4000; + config.reloadSound = GunConfiguration.RSOUND_SHOTGUN; + config.firingSound = "hbm:weapon.revolverShoot"; + config.firingPitch = 0.75F; + config.hasSights = true; + config.absoluteFOV = true; + config.zoomFOV = 0.25F; + config.scopeTexture = scope_bolt; + config.crosshair = Crosshair.CIRCLE; + + config.animations.put(AnimType.CYCLE, new BusAnimation() + .addBus("RECOIL", new BusAnimationSequence() + .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 25)) + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 75)) + ) + .addBus("LEVER_PULL", new BusAnimationSequence() + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 375)) //wait out recoil and lever flick + .addKeyframe(new BusAnimationKeyframe(-1, 0, 0, 375)) //pull back bolt + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 375)) //release bolt + ) + .addBus("LEVER_ROTATE", new BusAnimationSequence() + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 250)) //wait out recoil + .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 125)) //flick up lever in 125ms + .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 750)) //pull action + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 125)) //flick down lever again + ) + ); + + config.name = "win20Satur"; + config.manufacturer = EnumGunManufacturer.WINCHESTER_BIGMT; + + config.ejector = EJECTOR_BOLT; + + config.config = HbmCollection.r762; + + return config; + } public static BulletConfiguration get762NATOConfig() { final BulletConfiguration bullet = Gun556mmFactory.get556Config().clone(); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 4ed72c5e5..b5665f08c 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1560,6 +1560,7 @@ public class ModItems { public static Item gun_remington; public static Item gun_spas12; public static Item gun_supershotgun; + public static Item gun_benelli; public static Item gun_ks23; public static Item gun_sauer; public static Item gun_lever_action; @@ -4183,15 +4184,16 @@ public class ModItems { gun_uboinik = new ItemGunBase(Gun12GaugeFactory.getUboinikConfig()).setUnlocalizedName("gun_uboinik").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_uboinik"); gun_remington = new ItemGunBase(Gun12GaugeFactory.getRemington870Config()).setUnlocalizedName("gun_remington").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_spas12"); gun_spas12 = new ItemGunBase(Gun12GaugeFactory.getSpas12Config(), Gun12GaugeFactory.getSpas12AltConfig()).setUnlocalizedName("gun_spas12").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_spas12"); + gun_benelli = new ItemGunBase(Gun12GaugeFactory.getBenelliModConfig()).setUnlocalizedName("gun_benelli").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_spas12"); gun_supershotgun = new ItemGunShotty(Gun12GaugeFactory.getShottyConfig()).setUnlocalizedName("gun_supershotgun").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_uboinik"); gun_ks23 = new ItemGunBase(Gun4GaugeFactory.getKS23Config()).setUnlocalizedName("gun_ks23").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_uboinik"); gun_sauer = new ItemGunBase(Gun4GaugeFactory.getSauerConfig()).setUnlocalizedName("gun_sauer").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_uboinik"); gun_lever_action = new ItemGunBase(Gun20GaugeFactory.getMareConfig()).setUnlocalizedName("gun_lever_action").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_lever_action"); gun_lever_action_dark = new ItemGunBase(Gun20GaugeFactory.getMareDarkConfig()).setUnlocalizedName("gun_lever_action_dark").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_lever_action_dark"); gun_lever_action_sonata = new GunLeverActionS().setUnlocalizedName("gun_lever_action_sonata").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_lever_action_sonata"); - gun_bolt_action = new ItemGunBase(Gun20GaugeFactory.getBoltConfig()).setUnlocalizedName("gun_bolt_action").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_bolt_action"); - gun_bolt_action_green = new ItemGunBase(Gun20GaugeFactory.getBoltGreenConfig()).setUnlocalizedName("gun_bolt_action_green").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_bolt_action_green"); - gun_bolt_action_saturnite = new ItemGunBase(Gun20GaugeFactory.getBoltSaturniteConfig()).setUnlocalizedName("gun_bolt_action_saturnite").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_bolt_action_saturnite"); + gun_bolt_action = new ItemGunBase(Gun762mmFactory.getBoltConfig()).setUnlocalizedName("gun_bolt_action").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_bolt_action"); + gun_bolt_action_green = new ItemGunBase(Gun762mmFactory.getBoltGreenConfig()).setUnlocalizedName("gun_bolt_action_green").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_bolt_action_green"); + gun_bolt_action_saturnite = new ItemGunBase(Gun762mmFactory.getBoltSaturniteConfig()).setUnlocalizedName("gun_bolt_action_saturnite").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_bolt_action_saturnite"); gun_mymy = new ItemGunBase(GunDartFactory.getMymyConfig()).setUnlocalizedName("gun_mymy").setFull3D().setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_mymy"); gun_b92_ammo = new GunB92Cell().setUnlocalizedName("gun_b92_ammo").setMaxStackSize(1).setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_b92_ammo_alt"); gun_b92 = new GunB92().setUnlocalizedName("gun_b92").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_b92"); @@ -7004,6 +7006,7 @@ public class ModItems { GameRegistry.registerItem(gun_uboinik, gun_uboinik.getUnlocalizedName()); GameRegistry.registerItem(gun_remington, gun_remington.getUnlocalizedName()); GameRegistry.registerItem(gun_spas12, gun_spas12.getUnlocalizedName()); + GameRegistry.registerItem(gun_benelli, gun_benelli.getUnlocalizedName()); GameRegistry.registerItem(gun_supershotgun, gun_supershotgun.getUnlocalizedName()); GameRegistry.registerItem(gun_ks23, gun_ks23.getUnlocalizedName()); GameRegistry.registerItem(gun_sauer, gun_sauer.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/weapon/ItemGunBase.java b/src/main/java/com/hbm/items/weapon/ItemGunBase.java index 065dcf6f4..c6b2625ef 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGunBase.java +++ b/src/main/java/com/hbm/items/weapon/ItemGunBase.java @@ -164,7 +164,8 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu //whether or not the gun can shoot in its current state protected boolean tryShoot(ItemStack stack, World world, EntityPlayer player, boolean main) { - if(getIsReloading(stack) && mainConfig.reloadType == mainConfig.RELOAD_SINGLE) { + //cancel reload when trying to shoot if it's a single reload weapon and at least one round is loaded + if(getIsReloading(stack) && mainConfig.reloadType == mainConfig.RELOAD_SINGLE && this.getMag(stack) > 0) { setReloadCycle(stack, 0); setIsReloading(stack, false); } diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 115ca0e3b..8218dae86 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -520,6 +520,7 @@ public class ClientProxy extends ServerProxy { MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_silver, new ItemRenderWeaponNovac()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_red, new ItemRenderWeaponNovac()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_lunatic_marksman, new ItemRenderLunaticSniper()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_benelli, new ItemRenderBenelli()); //multitool MinecraftForgeClient.registerItemRenderer(ModItems.multitool_dig, new ItemRenderMultitool()); MinecraftForgeClient.registerItemRenderer(ModItems.multitool_silk, new ItemRenderMultitool()); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 66c71bfca..582b5609c 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -749,6 +749,7 @@ public class ResourceManager { public static final IModelCustom m2 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/m2_browning.obj")).asDisplayList(); //large fella should be a display list public static final IModelCustom lunatic_sniper = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/lunatic_sniper.obj")).asDisplayList(); public static final IModelCustom tau = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/tau.obj")); + public static final IModelCustom benelli = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/benelli_new.obj")); public static final IModelCustom lance = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/lance.obj")); @@ -839,6 +840,7 @@ public class ResourceManager { public static final ResourceLocation m2_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/m2_browning.png"); public static final ResourceLocation lunatic_sniper_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lunatic_sniper.png"); public static final ResourceLocation tau_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/tau.png"); + public static final ResourceLocation benelli_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/benelli_tex.png"); public static final ResourceLocation lance_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lance.png"); diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderBenelli.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderBenelli.java new file mode 100644 index 000000000..ed17d1955 --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderBenelli.java @@ -0,0 +1,115 @@ +package com.hbm.render.item.weapon; + +import org.lwjgl.opengl.GL11; + +import com.hbm.items.weapon.ItemGunBase; +import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; + +import net.minecraft.client.Minecraft; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraftforge.client.IItemRenderer; + +public class ItemRenderBenelli implements IItemRenderer +{ + public ItemRenderBenelli() {} + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + switch (type) { + case EQUIPPED: + case EQUIPPED_FIRST_PERSON: + case ENTITY: + case INVENTORY: + return true; + default: + return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { + return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); + } + + static final String body = "Body.001_Cube.001"; + static final String frontGrip = "Pump_Cylinder.003"; + static final String slide = "Cylinder"; + static final String barrelAndTube = "Body_Cube.002"; + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + int magSize = ItemGunBase.getMag(item); + EntityPlayer player = Minecraft.getMinecraft().thePlayer; + GL11.glPushMatrix(); + + GL11.glShadeModel(GL11.GL_SMOOTH); + + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.benelli_tex); + final float scale1 = 0.2F; + final double scale2 = 0.065D; + final double scale3 = 0.52D; + + double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); + double[] feedNew = HbmAnimations.getRelevantTransformation("PUMP"); + + switch (type) { + case EQUIPPED_FIRST_PERSON:// In hand from POV + GL11.glRotatef(-90.0F, 0.0F, 1.0F, 0.0F); + if (player.isSneaking()) { + GL11.glRotatef(25.0F, 1.0F, 0.0F, 0.0F); + GL11.glRotatef(-5F, 0.0F, 1.0F, 0.0F); + GL11.glTranslatef(-1.007F, 0F, -2.5F); + } + else { + GL11.glRotatef(30.0F, 1.0F, 0.0F, 0.0F); + GL11.glTranslatef(0.0F, -1F, -2.5F); + } + GL11.glScalef(scale1, scale1, scale1); + // Move on recoil + GL11.glTranslated(0, recoil[1], recoil[2]); + GL11.glRotated(recoil[0], 1, 0, 0); + // Move up for reload + GL11.glPushMatrix(); + ResourceManager.benelli.renderAll(); + // Pump new round if empty + if (magSize == 0) + GL11.glTranslated(feedNew[0], feedNew[1], feedNew[2]); + ResourceManager.benelli.renderPart(slide); + GL11.glPopMatrix(); + // Eject spent shell + GL11.glPushMatrix(); + GL11.glPopMatrix(); + break; + case EQUIPPED:// In hand from other's POV + GL11.glRotatef(90.0F, 1.0F, 0.0F, 0.0F); + GL11.glRotatef(-50.0F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(90.0F, 0.0F, 0.0F, 1.0F); + GL11.glTranslatef(-0.0F, -0.2F, -1.28F); + GL11.glRotated(recoil[0], 1, 0, 0); + GL11.glScaled(scale2 - scale2 * 2, scale2, scale2); + + GL11.glPushMatrix(); + GL11.glPopMatrix(); + break; + case ENTITY:// Dropped entity + GL11.glScaled(0.0625D, 0.0625D, 0.0625D); + break; + case INVENTORY:// Inventory icon + GL11.glScaled(scale3, scale3, -scale3); + GL11.glTranslatef(14.4F, 15.0F, 0.0F); + GL11.glRotatef(270.0F, 10.0F, 0.0F, 0.0F); + GL11.glRotatef(52.5F, 0.0F, 10.0F, 0.0F); + GL11.glRotatef(270.0F, 0.0F, 0.0F, 10.0F); + default: + break; + } + + if(type != ItemRenderType.EQUIPPED_FIRST_PERSON) + ResourceManager.benelli.renderAll(); + GL11.glPopMatrix(); + + } + +} \ No newline at end of file diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFBolt.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFBolt.java index 4573ea079..b88c87063 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFBolt.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFBolt.java @@ -2,6 +2,7 @@ package com.hbm.render.item.weapon; import org.lwjgl.opengl.GL11; +import com.hbm.items.ModItems; import com.hbm.render.anim.HbmAnimations; import net.minecraft.client.Minecraft; @@ -41,6 +42,8 @@ public class ItemRenderWeaponFFBolt implements IItemRenderer { @Override public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + if(item.getItem() == ModItems.gun_bolt_action_saturnite && Minecraft.getMinecraft().thePlayer.isSneaking()) return; + GL11.glPushMatrix(); GL11.glEnable(GL11.GL_CULL_FACE); diff --git a/src/main/resources/assets/hbm/models/weapons/benelli_new.obj b/src/main/resources/assets/hbm/models/weapons/benelli_new.obj new file mode 100644 index 000000000..72a534e35 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/benelli_new.obj @@ -0,0 +1,5820 @@ +# Blender v2.82 (sub 7) OBJ File: 'Benelli.blend' +# www.blender.org +mtllib benelli_new.mtl +o Shell_Cylinder.002 +v -0.317579 2.171942 1.847565 +v 0.000000 2.303487 -0.098938 +v -0.317579 2.171942 -0.098938 +v 0.449124 1.854363 1.847565 +v 0.317579 1.536785 -0.098938 +v 0.449124 1.854363 -0.098938 +v 0.317579 1.536785 1.847565 +v 0.000000 1.405240 -0.098938 +v 0.000000 1.405239 1.847565 +v -0.317579 1.536785 -0.098938 +v -0.317579 1.536785 1.847565 +v -0.449124 1.854363 -0.098938 +v -0.449124 1.854363 1.847565 +v 0.000000 2.303487 1.847565 +v 0.317579 2.171942 -0.098938 +v 0.317579 2.171942 1.847565 +v 0.353356 2.207720 1.877207 +v 0.499721 1.854363 1.877207 +v 0.353356 1.501007 1.877207 +v 0.000000 1.354642 1.877207 +v -0.353356 1.501007 1.877207 +v -0.499721 1.854363 1.877207 +v -0.353356 2.207720 1.877207 +v 0.000000 2.354084 1.877207 +vt 0.125000 0.577656 +vt 0.000000 0.516094 +vt 0.125000 0.516094 +vt 0.750000 0.577656 +vt 0.625000 0.516094 +vt 0.750000 0.516094 +vt 0.625000 0.577656 +vt 0.500000 0.516094 +vt 0.500000 0.577656 +vt 0.375000 0.516094 +vt 0.375000 0.577656 +vt 0.250000 0.516094 +vt 0.250000 0.577656 +vt 1.000000 0.577656 +vt 0.875000 0.516094 +vt 1.000000 0.516094 +vt 0.875000 0.577656 +vt 0.707574 0.516599 +vt 0.690000 0.537812 +vt 0.707574 0.559026 +vt 0.218750 0.446250 +vt 0.195693 0.450000 +vt 0.195312 0.446250 +vt 0.172255 0.450000 +vt 0.171875 0.446250 +vt 0.148438 0.446250 +vt 0.171494 0.450000 +vt 0.148818 0.450000 +vt 0.125000 0.446250 +vt 0.148057 0.450000 +vt 0.125380 0.450000 +vt 0.101943 0.450000 +vt 0.101562 0.446250 +vt 0.078505 0.450000 +vt 0.078125 0.446250 +vt 0.054688 0.446250 +vt 0.077745 0.450000 +vt 0.055068 0.450000 +vt 0.031250 0.446250 +vt 0.054307 0.450000 +vt 0.031630 0.450000 +vt 0.013897 0.440000 +vt 0.130000 0.381948 +vt 0.246103 0.440000 +vt 0.000000 0.577656 +vt 0.750000 0.567813 +vt 0.792426 0.516599 +vt 0.792426 0.559026 +vt 0.810000 0.537812 +vt 0.750000 0.507812 +vt 0.218369 0.450000 +vt 0.194932 0.450000 +vt 0.124620 0.450000 +vt 0.101182 0.450000 +vt 0.212097 0.481049 +vt 0.130000 0.498052 +vt 0.047903 0.481049 +vt 0.047903 0.398951 +vt 0.212097 0.398951 +vn -0.3827 0.9239 0.0000 +vn 0.9239 -0.3827 -0.0000 +vn 0.3827 -0.9239 -0.0000 +vn -0.3827 -0.9239 -0.0000 +vn -0.9239 -0.3827 -0.0000 +vn -0.9239 0.3827 0.0000 +vn 0.3827 0.9239 0.0000 +vn 0.9239 0.3827 0.0000 +vn -0.0000 0.0000 -1.0000 +vn 0.2049 0.4948 -0.8445 +vn 0.4948 0.2049 -0.8445 +vn 0.4948 -0.2049 -0.8445 +vn 0.2049 -0.4948 -0.8445 +vn -0.2049 -0.4948 -0.8445 +vn -0.4948 -0.2049 -0.8445 +vn -0.4948 0.2049 -0.8445 +vn -0.2049 0.4948 -0.8445 +vn 0.0000 -0.0000 1.0000 +usemtl None +s 1 +f 1/1/1 2/2/1 3/3/1 +f 4/4/2 5/5/2 6/6/2 +f 7/7/3 8/8/3 5/5/3 +f 9/9/4 10/10/4 8/8/4 +f 11/11/5 12/12/5 10/10/5 +f 13/13/6 3/3/6 12/12/6 +f 14/14/7 15/15/7 2/16/7 +f 16/17/8 6/6/8 15/15/8 +f 10/18/9 12/19/9 3/20/9 +f 14/21/10 17/22/10 16/23/10 +f 16/23/11 18/24/11 4/25/11 +f 7/26/12 18/27/12 19/28/12 +f 9/29/13 19/30/13 20/31/13 +f 9/29/14 21/32/14 11/33/14 +f 11/33/15 22/34/15 13/35/15 +f 1/36/16 22/37/16 23/38/16 +f 14/39/17 23/40/17 24/41/17 +f 22/42/18 20/43/18 18/44/18 +f 1/1/1 14/45/1 2/2/1 +f 4/4/2 7/7/2 5/5/2 +f 7/7/3 9/9/3 8/8/3 +f 9/9/4 11/11/4 10/10/4 +f 11/11/5 13/13/5 12/12/5 +f 13/13/6 1/1/6 3/3/6 +f 14/14/7 16/17/7 15/15/7 +f 16/17/8 4/4/8 6/6/8 +f 3/20/9 2/46/9 5/47/9 +f 2/46/9 15/48/9 5/47/9 +f 15/48/9 6/49/9 5/47/9 +f 5/47/9 8/50/9 3/20/9 +f 8/50/9 10/18/9 3/20/9 +f 14/21/10 24/51/10 17/22/10 +f 16/23/11 17/52/11 18/24/11 +f 7/26/12 4/25/12 18/27/12 +f 9/29/13 7/26/13 19/30/13 +f 9/29/14 20/53/14 21/32/14 +f 11/33/15 21/54/15 22/34/15 +f 1/36/16 13/35/16 22/37/16 +f 14/39/17 1/36/17 23/40/17 +f 18/44/18 17/55/18 24/56/18 +f 24/56/18 23/57/18 22/42/18 +f 22/42/18 21/58/18 20/43/18 +f 20/43/18 19/59/18 18/44/18 +f 18/44/18 24/56/18 22/42/18 +o Slide_Cylinder +v 1.272063 1.594606 -0.244676 +v 1.272063 1.368420 -0.338365 +v 1.272063 1.462109 -0.564550 +v 0.647653 0.965039 -0.742828 +v 0.711569 1.012017 5.211916 +v 0.647653 0.965039 5.211916 +v 0.711569 1.012017 -0.742828 +v 0.770475 1.088305 5.211916 +v 0.770475 1.088305 -0.742828 +v 0.822106 1.190971 5.211916 +v 0.822106 1.190971 -0.742828 +v 0.864478 1.316070 5.211916 +v 0.921900 1.774713 -0.742828 +v 0.915353 1.918690 3.212208 +v 0.921900 1.774713 3.711916 +v 0.915353 1.935767 -0.742828 +v 0.895964 2.073555 3.212208 +v 0.895964 2.090632 -0.742828 +v 0.864478 2.216279 3.212208 +v 0.864478 2.233356 -0.742828 +v 0.822106 2.341378 3.212208 +v 0.822106 2.358455 -0.742828 +v 0.770475 2.444044 3.212208 +v 0.770475 2.461121 -0.742828 +v 0.711569 2.520332 3.212208 +v 0.711569 2.537409 -0.742828 +v 0.647653 2.567310 3.212208 +v 0.904673 1.528358 -0.577728 +v 1.272063 1.494584 -0.574402 +v 0.900445 1.494584 -0.574402 +v 0.896379 1.462109 -0.564550 +v 1.272063 1.432180 -0.548553 +v 0.890093 1.432180 -0.548553 +v 0.895964 1.458794 -0.562778 +v 1.272063 1.405947 -0.527024 +v 0.884306 1.405947 -0.527024 +v 1.272063 1.384418 -0.500791 +v 0.879556 1.384418 -0.500791 +v 1.272063 1.368420 -0.470861 +v 0.876027 1.368420 -0.470861 +v 1.272063 1.358569 -0.438386 +v 0.873854 1.358569 -0.438386 +v 1.272063 1.355243 -0.404613 +v 0.873120 1.355243 -0.404613 +v 0.873854 1.358569 -0.370840 +v 1.272063 1.358569 -0.370840 +v 0.876027 1.368420 -0.338365 +v 0.879556 1.384418 -0.308436 +v 1.272063 1.384418 -0.308436 +v 0.884306 1.405947 -0.282203 +v 1.272063 1.405947 -0.282203 +v 0.890093 1.432180 -0.260674 +v 1.272063 1.432180 -0.260674 +v 0.896379 1.462109 -0.244676 +v 0.895964 1.458794 -0.246449 +v 1.272063 1.462109 -0.244676 +v 0.900445 1.494585 -0.234825 +v 1.272063 1.494585 -0.234825 +v 0.904673 1.528358 -0.231499 +v 1.272063 1.528358 -0.231499 +v 0.908902 1.562131 -0.234825 +v 1.272063 1.562131 -0.234825 +v 0.912967 1.594606 -0.244676 +v 1.272063 1.624535 -0.260674 +v 0.915795 1.624535 -0.260674 +v 0.915353 1.613659 -0.254860 +v 0.916861 1.650768 -0.282203 +v 1.272063 1.650768 -0.282203 +v 0.917736 1.672297 -0.308436 +v 1.272063 1.672297 -0.308436 +v 0.918387 1.688295 -0.338366 +v 1.272063 1.688295 -0.338366 +v 0.918787 1.698146 -0.370841 +v 1.272063 1.698146 -0.370841 +v 0.918922 1.701472 -0.404613 +v 1.272063 1.698146 -0.438387 +v 0.918787 1.698146 -0.438387 +v 1.272063 1.688294 -0.470862 +v 0.918387 1.688294 -0.470862 +v 1.272063 1.672297 -0.500791 +v 0.917736 1.672297 -0.500791 +v 1.272063 1.650768 -0.527024 +v 0.916861 1.650768 -0.527024 +v 1.272063 1.624535 -0.548553 +v 0.915795 1.624535 -0.548553 +v 1.272063 1.594605 -0.564551 +v 0.912967 1.594605 -0.564551 +v 0.915353 1.613659 -0.554366 +v 1.272063 1.562130 -0.574402 +v 0.908902 1.562130 -0.574402 +v 1.272063 1.528358 -0.577728 +v 0.864478 1.316070 -0.742828 +v 0.895964 1.458794 5.211916 +v 0.915353 1.613659 -0.742828 +v 1.272063 1.701472 -0.404613 +v 0.647653 2.584387 -0.742828 +v 0.895964 1.458794 -0.742828 +v 0.915353 1.613659 5.211916 +v 0.581182 2.600249 -0.742828 +v 0.581182 2.583172 3.212208 +v 0.581182 0.949177 -0.742828 +v 0.581182 0.949177 5.211916 +vt 0.601212 0.686463 +vt 0.607212 0.688948 +vt 0.604727 0.694949 +vt 0.562350 0.784943 +vt 0.743961 0.782105 +vt 0.743961 0.784943 +vt 0.562350 0.782105 +vt 0.743961 0.779268 +vt 0.562350 0.779268 +vt 0.743961 0.776430 +vt 0.562350 0.776430 +vt 0.743961 0.773592 +vt 0.562350 0.765080 +vt 0.743961 0.762242 +vt 0.743961 0.765080 +vt 0.562350 0.762242 +vt 0.743961 0.759404 +vt 0.562350 0.759404 +vt 0.743961 0.756567 +vt 0.562350 0.756567 +vt 0.743961 0.753729 +vt 0.562350 0.753729 +vt 0.743961 0.750891 +vt 0.562350 0.750891 +vt 0.743961 0.748054 +vt 0.562350 0.748054 +vt 0.743961 0.745216 +vt 0.617321 0.697653 +vt 0.616723 0.705057 +vt 0.616723 0.697568 +vt 0.616125 0.705057 +vt 0.616125 0.697486 +vt 0.615527 0.705057 +vt 0.615527 0.697359 +vt 0.616059 0.697478 +vt 0.614929 0.705057 +vt 0.614929 0.697243 +vt 0.614331 0.705057 +vt 0.614331 0.697147 +vt 0.613733 0.705057 +vt 0.613733 0.697076 +vt 0.613135 0.705057 +vt 0.613135 0.697032 +vt 0.612537 0.705057 +vt 0.612537 0.697017 +vt 0.611939 0.697032 +vt 0.611939 0.705057 +vt 0.611341 0.697076 +vt 0.611341 0.705057 +vt 0.610743 0.697147 +vt 0.610743 0.705057 +vt 0.610145 0.697243 +vt 0.610145 0.705057 +vt 0.609547 0.697359 +vt 0.609547 0.705057 +vt 0.608949 0.697486 +vt 0.609015 0.697478 +vt 0.608949 0.705057 +vt 0.608351 0.697568 +vt 0.608351 0.705057 +vt 0.607753 0.697653 +vt 0.607753 0.705057 +vt 0.607155 0.697738 +vt 0.607155 0.705057 +vt 0.606557 0.697820 +vt 0.605959 0.705057 +vt 0.605959 0.697877 +vt 0.606177 0.697868 +vt 0.605361 0.697899 +vt 0.605361 0.705057 +vt 0.604763 0.697916 +vt 0.604763 0.705057 +vt 0.604165 0.697930 +vt 0.604165 0.705057 +vt 0.603567 0.697938 +vt 0.603567 0.705057 +vt 0.602969 0.697940 +vt 0.602372 0.705057 +vt 0.602372 0.697938 +vt 0.601774 0.705057 +vt 0.601774 0.697930 +vt 0.601176 0.705057 +vt 0.601176 0.697916 +vt 0.600578 0.705057 +vt 0.600578 0.697899 +vt 0.599980 0.705057 +vt 0.599980 0.697877 +vt 0.599382 0.705057 +vt 0.599382 0.697820 +vt 0.599762 0.697868 +vt 0.598784 0.705057 +vt 0.598784 0.697738 +vt 0.598186 0.705057 +vt 0.598186 0.697653 +vt 0.562350 0.773592 +vt 0.572667 0.772814 +vt 0.573697 0.772747 +vt 0.743961 0.770755 +vt 0.577845 0.770099 +vt 0.577947 0.769480 +vt 0.562350 0.767917 +vt 0.567489 0.768861 +vt 0.567387 0.769480 +vt 0.572667 0.766370 +vt 0.571637 0.766429 +vt 0.603865 0.695210 +vt 0.602969 0.695298 +vt 0.602074 0.695210 +vt 0.601212 0.694949 +vt 0.600418 0.694524 +vt 0.598727 0.692463 +vt 0.599722 0.693953 +vt 0.599151 0.693257 +vt 0.598465 0.691602 +vt 0.598377 0.690706 +vt 0.598465 0.689810 +vt 0.598727 0.688948 +vt 0.599151 0.688154 +vt 0.599722 0.687459 +vt 0.600418 0.686887 +vt 0.602074 0.686202 +vt 0.602969 0.686113 +vt 0.603865 0.686202 +vt 0.604727 0.686463 +vt 0.605521 0.686887 +vt 0.606217 0.687459 +vt 0.606788 0.688154 +vt 0.607474 0.689810 +vt 0.607562 0.690706 +vt 0.607474 0.691602 +vt 0.607212 0.692463 +vt 0.606788 0.693257 +vt 0.606217 0.693953 +vt 0.605521 0.694524 +vt 0.562350 0.745216 +vt 0.617321 0.705057 +vt 0.606557 0.705057 +vt 0.602969 0.705057 +vt 0.577057 0.771284 +vt 0.577491 0.770755 +vt 0.562350 0.770755 +vt 0.568277 0.771284 +vt 0.567842 0.770755 +vt 0.576399 0.771805 +vt 0.575599 0.772234 +vt 0.568932 0.771805 +vt 0.569733 0.772234 +vt 0.574686 0.772552 +vt 0.570646 0.772552 +vt 0.571637 0.772747 +vt 0.577545 0.768266 +vt 0.577233 0.767917 +vt 0.743961 0.767917 +vt 0.577545 0.770694 +vt 0.577845 0.768861 +vt 0.567789 0.770694 +vt 0.568098 0.767917 +vt 0.567789 0.768266 +vt 0.567489 0.770099 +vt 0.568277 0.767726 +vt 0.573697 0.766429 +vt 0.577057 0.767726 +vt 0.576399 0.767263 +vt 0.568932 0.767263 +vt 0.575599 0.766884 +vt 0.574686 0.766602 +vt 0.569733 0.766884 +vt 0.570646 0.766602 +vn 1.0000 0.0000 0.0000 +vn 0.5922 -0.8058 -0.0000 +vn 0.7915 -0.6112 -0.0000 +vn 0.8934 -0.4493 -0.0000 +vn 0.9471 -0.3208 -0.0000 +vn 0.9992 0.0407 0.0002 +vn 0.9990 0.0454 0.0000 +vn 0.9923 0.1242 0.0005 +vn 0.9765 0.2154 0.0009 +vn 0.9471 0.3208 0.0014 +vn 0.8934 0.4493 0.0019 +vn 0.7915 0.6112 0.0026 +vn 0.5922 0.8058 0.0035 +vn 0.0000 -0.0980 -0.9952 +vn 0.0000 -0.2903 -0.9569 +vn -0.0000 -0.4714 -0.8819 +vn 0.0000 -0.6344 -0.7730 +vn 0.0000 -0.7730 -0.6344 +vn 0.0000 -0.8819 -0.4714 +vn 0.0000 -0.9569 -0.2903 +vn 0.0000 -0.9952 -0.0980 +vn 0.0000 -0.9952 0.0980 +vn 0.0000 -0.9569 0.2903 +vn 0.0000 -0.8819 0.4714 +vn 0.0000 -0.7730 0.6344 +vn 0.0000 -0.6344 0.7730 +vn -0.0000 -0.4714 0.8819 +vn -0.0000 -0.4716 0.8818 +vn -0.0000 -0.4715 0.8819 +vn 0.0000 -0.2903 0.9569 +vn 0.0000 -0.0980 0.9952 +vn 0.0000 0.0980 0.9952 +vn 0.0000 0.2903 0.9569 +vn 0.0000 0.4714 0.8819 +vn 0.0000 0.6344 0.7730 +vn 0.0000 0.7730 0.6344 +vn 0.0000 0.8819 0.4714 +vn 0.0000 0.9569 0.2903 +vn 0.0000 0.9952 0.0980 +vn 0.0000 0.9952 -0.0980 +vn 0.0000 0.9569 -0.2903 +vn 0.0000 0.8819 -0.4714 +vn 0.0000 0.7730 -0.6344 +vn 0.0000 0.6344 -0.7730 +vn -0.0000 0.4714 -0.8819 +vn 0.0000 0.2903 -0.9569 +vn 0.0000 0.0980 -0.9952 +vn 0.9765 -0.2154 -0.0000 +vn 0.9766 -0.2150 -0.0000 +vn 0.9923 -0.1242 0.0000 +vn 0.9923 -0.1243 -0.0000 +vn 0.9992 -0.0406 0.0000 +vn 0.9992 -0.0407 -0.0000 +vn 0.9992 0.0406 0.0002 +vn 0.9765 -0.2155 0.0000 +usemtl Material.001 +s 1 +f 25/60/19 26/61/19 27/62/19 +f 28/63/20 29/64/20 30/65/20 +f 31/66/21 32/67/21 29/64/21 +f 33/68/22 34/69/22 32/67/22 +f 35/70/23 36/71/23 34/69/23 +f 37/72/24 38/73/25 39/74/25 +f 40/75/26 41/76/26 38/73/26 +f 42/77/27 43/78/27 41/76/27 +f 44/79/28 45/80/28 43/78/28 +f 46/81/29 47/82/29 45/80/29 +f 48/83/30 49/84/30 47/82/30 +f 50/85/31 51/86/31 49/84/31 +f 52/87/32 53/88/32 54/89/32 +f 54/89/33 27/90/33 55/91/33 +f 56/92/34 57/93/34 58/94/34 +f 57/93/35 59/95/35 60/96/35 +f 60/96/36 61/97/36 62/98/36 +f 62/98/37 63/99/37 64/100/37 +f 64/100/38 65/101/38 66/102/38 +f 66/102/39 67/103/39 68/104/39 +f 67/103/40 69/105/40 68/104/40 +f 70/106/41 71/107/41 69/105/41 +f 26/108/42 72/109/42 71/107/42 +f 73/110/43 74/111/43 72/109/43 +f 75/112/44 76/113/44 74/111/44 +f 77/114/45 78/115/46 79/116/47 +f 80/117/48 81/118/48 78/115/48 +f 82/119/49 83/120/49 81/118/49 +f 84/121/50 85/122/50 83/120/50 +f 86/123/51 87/124/51 85/122/51 +f 88/125/52 89/126/52 90/127/52 +f 88/125/53 91/128/53 89/126/53 +f 92/129/54 93/130/54 91/128/54 +f 94/131/55 95/132/55 93/130/55 +f 96/133/56 97/134/56 95/132/56 +f 98/135/57 99/136/57 97/134/57 +f 99/136/58 100/137/58 101/138/58 +f 101/138/59 102/139/59 103/140/59 +f 103/140/60 104/141/60 105/142/60 +f 105/142/61 106/143/61 107/144/61 +f 107/144/62 108/145/62 109/146/62 +f 110/147/63 111/148/63 112/149/63 +f 111/148/64 113/150/64 114/151/64 +f 114/151/65 115/152/65 52/153/65 +f 116/154/66 68/155/67 69/156/66 +f 117/157/68 81/158/68 83/159/68 +f 118/160/68 114/161/68 52/162/69 +f 37/72/70 99/163/71 101/164/70 +f 27/62/19 53/165/19 115/166/19 +f 115/166/19 113/167/19 110/168/19 +f 110/168/19 108/169/19 102/170/19 +f 108/169/19 106/171/19 102/170/19 +f 106/171/19 104/172/19 102/170/19 +f 102/170/19 100/173/19 119/174/19 +f 119/174/19 98/175/19 96/176/19 +f 96/176/19 94/177/19 92/178/19 +f 92/178/19 88/179/19 25/60/19 +f 25/60/19 86/180/19 84/181/19 +f 84/181/19 82/182/19 80/183/19 +f 80/183/19 77/184/19 26/61/19 +f 77/184/19 75/185/19 26/61/19 +f 75/185/19 73/186/19 26/61/19 +f 26/61/19 70/187/19 67/188/19 +f 67/188/19 65/189/19 63/190/19 +f 63/190/19 61/191/19 27/62/19 +f 61/191/19 59/192/19 27/62/19 +f 59/192/19 56/193/19 27/62/19 +f 27/62/19 115/166/19 102/170/19 +f 115/166/19 110/168/19 102/170/19 +f 102/170/19 119/174/19 96/176/19 +f 96/176/19 92/178/19 102/170/19 +f 92/178/19 25/60/19 102/170/19 +f 25/60/19 84/181/19 26/61/19 +f 84/181/19 80/183/19 26/61/19 +f 26/61/19 67/188/19 27/62/19 +f 67/188/19 63/190/19 27/62/19 +f 27/62/19 102/170/19 25/60/19 +f 28/63/20 31/66/20 29/64/20 +f 31/66/21 33/68/21 32/67/21 +f 33/68/22 35/70/22 34/69/22 +f 35/70/23 116/154/23 36/71/23 +f 37/72/24 40/75/72 38/73/25 +f 40/75/26 42/77/26 41/76/26 +f 42/77/27 44/79/27 43/78/27 +f 44/79/28 46/81/28 45/80/28 +f 46/81/29 48/83/29 47/82/29 +f 48/83/30 50/85/30 49/84/30 +f 50/85/31 120/194/31 51/86/31 +f 52/87/32 115/195/32 53/88/32 +f 54/89/33 53/88/33 27/90/33 +f 58/94/34 55/91/34 56/92/34 +f 55/91/34 27/90/34 56/92/34 +f 57/93/35 56/92/35 59/95/35 +f 60/96/36 59/95/36 61/97/36 +f 62/98/37 61/97/37 63/99/37 +f 64/100/38 63/99/38 65/101/38 +f 66/102/39 65/101/39 67/103/39 +f 67/103/40 70/106/40 69/105/40 +f 70/106/41 26/108/41 71/107/41 +f 26/108/42 73/110/42 72/109/42 +f 73/110/43 75/112/43 74/111/43 +f 75/112/44 77/114/44 76/113/44 +f 79/116/47 76/113/45 77/114/45 +f 77/114/45 80/117/45 78/115/46 +f 80/117/48 82/119/48 81/118/48 +f 82/119/49 84/121/49 83/120/49 +f 84/121/50 86/123/50 85/122/50 +f 86/123/51 25/196/51 87/124/51 +f 90/127/52 87/124/52 25/196/52 +f 25/196/52 88/125/52 90/127/52 +f 88/125/53 92/129/53 91/128/53 +f 92/129/54 94/131/54 93/130/54 +f 94/131/55 96/133/55 95/132/55 +f 96/133/56 98/135/56 97/134/56 +f 98/135/57 119/197/57 99/136/57 +f 99/136/58 119/197/58 100/137/58 +f 101/138/59 100/137/59 102/139/59 +f 103/140/60 102/139/60 104/141/60 +f 105/142/61 104/141/61 106/143/61 +f 107/144/62 106/143/62 108/145/62 +f 112/149/63 109/146/63 108/145/63 +f 108/145/63 110/147/63 112/149/63 +f 111/148/64 110/147/64 113/150/64 +f 114/151/65 113/150/65 115/152/65 +f 76/198/66 79/199/66 36/71/66 +f 79/199/66 117/157/66 36/71/66 +f 36/71/66 116/154/66 69/156/66 +f 116/154/66 121/200/66 57/201/66 +f 121/200/66 58/202/66 57/201/66 +f 74/203/66 76/198/66 36/71/66 +f 72/204/66 74/203/66 36/71/66 +f 116/154/66 57/201/66 60/205/66 +f 116/154/66 60/205/66 62/206/66 +f 71/207/66 72/204/66 36/71/66 +f 69/156/66 71/207/66 36/71/66 +f 116/154/66 62/206/66 64/208/66 +f 116/154/66 64/208/66 66/209/73 +f 116/154/66 66/209/73 68/155/67 +f 87/210/68 90/211/69 122/212/68 +f 122/212/68 117/157/68 83/159/69 +f 117/157/68 79/199/68 78/213/68 +f 117/157/68 78/213/68 81/158/68 +f 85/214/68 87/210/68 122/212/68 +f 83/159/69 85/214/68 122/212/68 +f 55/215/68 58/202/68 121/200/68 +f 121/200/68 118/160/68 52/162/68 +f 118/160/68 112/216/68 111/217/68 +f 118/160/68 111/217/68 114/161/68 +f 54/218/68 55/215/68 121/200/68 +f 52/162/68 54/218/68 121/200/68 +f 109/219/70 112/216/70 118/160/70 +f 37/72/70 39/74/70 97/220/70 +f 39/74/70 122/212/70 90/211/70 +f 37/72/70 97/220/70 99/163/71 +f 90/211/70 89/221/70 39/74/70 +f 89/221/70 91/222/70 39/74/70 +f 109/219/70 118/160/70 37/72/70 +f 107/223/70 109/219/70 37/72/70 +f 91/222/70 93/224/70 39/74/70 +f 93/224/70 95/225/70 39/74/70 +f 105/226/70 107/223/70 37/72/70 +f 103/227/70 105/226/70 37/72/70 +f 95/225/70 97/220/70 39/74/70 +f 101/164/70 103/227/70 37/72/70 +l 126 30 +l 28 125 +l 51 124 +l 123 120 +o Cube.007_Cube.012 +v -0.749291 3.198776 0.999861 +v -0.925561 3.198776 0.999861 +v -0.749291 3.375046 0.999861 +v -0.925561 3.198776 1.249144 +v 0.748885 3.197617 0.999051 +v 0.748885 3.373887 0.999051 +v 0.925155 3.197617 0.999051 +v 0.925155 3.197617 1.248335 +v 0.748885 3.373887 1.248335 +v 0.748885 3.197617 1.248335 +v -0.749291 3.375046 1.249144 +v -0.750000 3.200001 1.250000 +v -0.749291 3.198776 1.249144 +v 0.748869 3.197661 -1.749421 +v 0.925138 3.197661 -1.749422 +v 0.748868 3.021391 -1.749422 +v 0.748869 3.021390 3.750661 +v 0.925139 3.197660 3.750661 +v 0.748869 3.197660 3.750661 +v -0.749187 3.199502 -1.749413 +v -0.749187 3.023233 -1.749413 +v -0.925457 3.199503 -1.749413 +v -0.925456 3.199502 3.750652 +v -0.749186 3.023232 3.750652 +v -0.749186 3.199502 3.750652 +v -0.749291 3.198776 3.499861 +v -0.925561 3.198776 3.499861 +v -0.749291 3.375046 3.499861 +v -0.925561 3.198776 3.749144 +v 0.748885 3.197617 3.499051 +v 0.748885 3.373887 3.499051 +v 0.925155 3.197617 3.499051 +v 0.925155 3.197617 3.748335 +v 0.748885 3.373887 3.748335 +v 0.748885 3.197617 3.748335 +v -0.749291 3.375046 3.749144 +v -0.750000 3.200001 3.750000 +v -0.749291 3.198776 3.749144 +v -0.749291 3.198776 2.999861 +v -0.925561 3.198776 2.999861 +v -0.749291 3.375046 2.999861 +v -0.925561 3.198776 3.249144 +v 0.748885 3.197617 2.999051 +v 0.748885 3.373887 2.999051 +v 0.925155 3.197617 2.999051 +v 0.925155 3.197617 3.248334 +v 0.748885 3.373887 3.248334 +v 0.748885 3.197617 3.248334 +v -0.749291 3.375046 3.249144 +v -0.750000 3.200001 3.250000 +v -0.749291 3.198776 3.249144 +v -0.749291 3.198776 2.499861 +v -0.925561 3.198776 2.499861 +v -0.749291 3.375046 2.499861 +v -0.925561 3.198776 2.749144 +v 0.748885 3.197617 2.499051 +v 0.748885 3.373887 2.499051 +v 0.925155 3.197617 2.499051 +v 0.925155 3.197617 2.748335 +v 0.748885 3.373887 2.748335 +v 0.748885 3.197617 2.748335 +v -0.749291 3.375046 2.749144 +v -0.750000 3.200001 2.750000 +v -0.749291 3.198776 2.749144 +v -0.749291 3.198776 1.999861 +v -0.925561 3.198776 1.999861 +v -0.749291 3.375046 1.999861 +v -0.925561 3.198776 2.249144 +v 0.748885 3.197617 1.999051 +v 0.748885 3.373887 1.999051 +v 0.925155 3.197617 1.999051 +v 0.925155 3.197617 2.248335 +v 0.748885 3.373887 2.248335 +v 0.748885 3.197617 2.248335 +v -0.749291 3.375046 2.249144 +v -0.750000 3.200001 2.250000 +v -0.749291 3.198776 2.249144 +v -0.749291 3.198776 1.499861 +v -0.925561 3.198776 1.499861 +v -0.749291 3.375046 1.499861 +v -0.925561 3.198776 1.749144 +v 0.748885 3.197617 1.499051 +v 0.748885 3.373887 1.499051 +v 0.925155 3.197617 1.499051 +v 0.925155 3.197617 1.748335 +v 0.748885 3.373887 1.748335 +v 0.748885 3.197617 1.748335 +v -0.749291 3.375046 1.749144 +v -0.750000 3.200001 1.750000 +v -0.749291 3.198776 1.749144 +v -0.749291 3.198776 0.499861 +v -0.925561 3.198776 0.499861 +v -0.749291 3.375046 0.499861 +v -0.925561 3.198776 0.749144 +v 0.748885 3.197617 0.499051 +v 0.748885 3.373887 0.499051 +v 0.925155 3.197617 0.499051 +v 0.925155 3.197617 0.748335 +v 0.748885 3.373887 0.748335 +v 0.748885 3.197617 0.748335 +v -0.749291 3.375046 0.749144 +v -0.750000 3.200001 0.750000 +v -0.749291 3.198776 0.749144 +v -0.749291 3.198776 -0.000139 +v -0.925561 3.198776 -0.000139 +v -0.749291 3.375046 -0.000139 +v -0.925561 3.198776 0.249144 +v 0.748885 3.197617 -0.000949 +v 0.748885 3.373887 -0.000949 +v 0.925155 3.197617 -0.000949 +v 0.925155 3.197617 0.248335 +v 0.748885 3.373887 0.248335 +v 0.748885 3.197617 0.248335 +v -0.749291 3.375046 0.249144 +v -0.750000 3.200001 0.250000 +v -0.749291 3.198776 0.249144 +v -0.749291 3.198776 -0.500139 +v -0.925561 3.198776 -0.500139 +v -0.749291 3.375046 -0.500139 +v -0.925561 3.198776 -0.250856 +v 0.748885 3.197617 -0.500949 +v 0.748885 3.373887 -0.500949 +v 0.925155 3.197617 -0.500949 +v 0.925155 3.197617 -0.251665 +v 0.748885 3.373887 -0.251665 +v 0.748885 3.197617 -0.251665 +v -0.749291 3.375046 -0.250856 +v -0.750000 3.200001 -0.250000 +v -0.749291 3.198776 -0.250856 +v -0.749291 3.198776 -1.000139 +v -0.925561 3.198776 -1.000139 +v -0.749291 3.375046 -1.000139 +v -0.925561 3.198776 -0.750855 +v 0.748885 3.197617 -1.000948 +v 0.748885 3.373887 -1.000948 +v 0.925155 3.197617 -1.000948 +v 0.925155 3.197617 -0.751665 +v 0.748885 3.373887 -0.751665 +v 0.748885 3.197617 -0.751665 +v -0.749291 3.375046 -0.750855 +v -0.750000 3.200001 -0.749999 +v -0.749291 3.198776 -0.750855 +v -0.749291 3.198776 -1.500139 +v -0.925561 3.198776 -1.500139 +v -0.749291 3.375046 -1.500139 +v -0.925561 3.198776 -1.250856 +v 0.748885 3.197617 -1.500949 +v 0.748885 3.373887 -1.500949 +v 0.925155 3.197617 -1.500949 +v 0.925155 3.197617 -1.251665 +v 0.748885 3.373887 -1.251665 +v 0.748885 3.197617 -1.251665 +v -0.749291 3.375046 -1.250856 +v -0.750000 3.200001 -1.249999 +v -0.749291 3.198776 -1.250856 +v -0.749291 3.198776 -1.751088 +v -0.925561 3.198776 -1.751088 +v -0.749291 3.375046 -1.751088 +v -0.925561 3.198776 -1.501805 +v 0.748885 3.197617 -1.751898 +v 0.748885 3.373887 -1.751898 +v 0.925155 3.197617 -1.751898 +v 0.925155 3.197617 -1.502614 +v 0.748885 3.373887 -1.502614 +v 0.748885 3.197617 -1.502614 +v -0.749291 3.375046 -1.501805 +v -0.750000 3.200001 -1.500949 +v -0.749291 3.198776 -1.501805 +v -0.750000 1.350001 -10.700001 +v -0.692910 1.994416 -10.700001 +v 0.750000 1.350001 -10.700001 +v 0.692910 1.994415 -1.700001 +v 0.692910 1.994416 -10.700001 +v 0.750000 1.350000 -1.700001 +v 0.692910 1.005585 -10.700001 +v 0.692910 1.005584 -1.700001 +v 0.530330 0.713604 -10.700001 +v 0.530330 0.713604 -1.700001 +v 0.287013 0.518509 -10.700001 +v 0.287013 0.518508 -1.700001 +v 0.000000 0.450000 -10.700001 +v 0.000000 0.450000 -1.700001 +v -0.287012 0.518508 -10.700001 +v -0.287012 0.518508 -1.700001 +v -0.530330 0.713604 -10.700001 +v -0.530330 0.713603 -1.700001 +v -0.692910 1.005585 -10.700001 +v -0.692910 1.005584 -1.700001 +v -0.750000 1.350000 -1.700001 +v -0.692910 1.994415 -1.700001 +v 0.000000 3.000000 -1.700000 +v 0.129410 2.982965 -19.500000 +v 0.000000 3.000002 -19.500000 +v 0.129410 2.982962 -1.700000 +v 0.250000 2.933015 -19.500000 +v 0.250000 2.933012 -1.700000 +v 0.353553 2.853556 -19.500000 +v 0.353553 2.853553 -1.700000 +v 0.433013 2.750003 -19.500000 +v 0.433013 2.750000 -1.700000 +v 0.482963 2.629412 -19.500000 +v 0.482963 2.629409 -1.700000 +v 0.500000 2.500002 -19.500000 +v 0.500000 2.500000 -1.700000 +v 0.482963 2.370593 -19.500000 +v 0.482963 2.370590 -1.700000 +v 0.433013 2.250002 -19.500000 +v 0.433013 2.250000 -1.700000 +v 0.353554 2.146449 -19.500000 +v 0.353554 2.146446 -1.700000 +v 0.250000 2.066990 -19.500000 +v 0.250000 2.066987 -1.700000 +v 0.129410 2.017039 -19.500000 +v 0.129410 2.017036 -1.700000 +v 0.000000 2.000002 -19.500000 +v 0.000000 2.000000 -1.700000 +v -0.129409 2.017039 -19.500000 +v -0.129409 2.017036 -1.700000 +v -0.250000 2.066990 -19.500000 +v -0.250000 2.066987 -1.700000 +v -0.353553 2.146449 -19.500000 +v -0.353553 2.146446 -1.700000 +v -0.433013 2.250002 -19.500000 +v -0.433013 2.250000 -1.700000 +v -0.482963 2.370593 -19.500000 +v -0.482963 2.370590 -1.700000 +v -0.500000 2.500002 -19.500000 +v -0.500000 2.500000 -1.700000 +v -0.482963 2.629412 -19.500000 +v -0.482963 2.629409 -1.700000 +v -0.433013 2.750002 -19.500000 +v -0.433013 2.749999 -1.700000 +v -0.353554 2.853556 -19.500000 +v -0.353554 2.853553 -1.700000 +v -0.250000 2.933015 -19.500000 +v -0.250000 2.933012 -1.700000 +v -0.129410 2.982965 -19.500000 +v -0.129410 2.982962 -1.700000 +v 0.217114 2.822435 -19.500000 +v 0.113208 2.865444 -4.500000 +v 0.113208 2.865474 -19.500000 +v 0.000000 2.050002 -17.850000 +v 0.494975 1.844977 -18.550001 +v 0.000000 2.050002 -18.550001 +v 0.494975 1.844977 -17.850000 +v 0.700000 1.350002 -18.550001 +v 0.700000 1.350002 -17.850000 +v 0.494975 0.855028 -18.550001 +v 0.494975 0.855027 -17.850000 +v 0.000000 0.650002 -18.550001 +v 0.000000 0.650002 -17.850000 +v -0.494975 0.855028 -18.550001 +v -0.494975 0.855028 -17.850000 +v -0.700000 1.350002 -18.550001 +v -0.700000 1.350002 -17.850000 +v -0.494975 1.844977 -18.550001 +v -0.494975 1.844977 -17.850000 +v 0.247487 1.102514 -19.300001 +v 0.350000 1.350002 -19.300001 +v 0.247487 1.597489 -19.300001 +v 0.000000 1.700002 -19.300001 +v -0.247487 1.597489 -19.300001 +v -0.350000 1.350002 -19.300001 +v -0.247487 1.102514 -19.300001 +v 0.247487 1.102514 -19.187502 +v 0.000000 1.000002 -19.187502 +v 0.000000 1.000002 -19.300001 +v 0.000000 1.700002 -19.187502 +v 0.247487 1.597489 -19.187502 +v 0.350000 1.350002 -19.187502 +v -0.247487 1.102514 -19.187502 +v 0.000000 1.750000 -1.199998 +v 0.103528 1.736373 -18.200001 +v 0.000000 1.750002 -18.200001 +v 0.103528 1.736370 -1.199998 +v 0.200000 1.696412 -18.200001 +v 0.200000 1.696410 -1.199998 +v 0.282843 1.632845 -18.200001 +v 0.282843 1.632842 -1.199998 +v 0.346410 1.550002 -18.200001 +v 0.346410 1.549999 -1.199998 +v 0.386370 1.453530 -18.200001 +v 0.386370 1.453527 -1.199998 +v 0.400000 1.350002 -18.200001 +v 0.400000 1.349999 -1.199998 +v 0.386370 1.246475 -18.200001 +v 0.386370 1.246472 -1.199998 +v 0.346410 1.150002 -18.200001 +v 0.346410 1.150000 -1.199998 +v 0.282843 1.067160 -18.200001 +v 0.282843 1.067157 -1.199998 +v 0.200000 1.003592 -18.200001 +v 0.200000 1.003590 -1.199998 +v 0.103528 0.963632 -18.200001 +v 0.103528 0.963629 -1.199998 +v 0.000000 0.950002 -18.200001 +v 0.000000 0.950000 -1.199998 +v -0.103527 0.963632 -18.200001 +v -0.103527 0.963629 -1.199998 +v -0.200000 1.003592 -18.200001 +v -0.200000 1.003589 -1.199998 +v -0.282843 1.067160 -18.200001 +v -0.282843 1.067157 -1.199998 +v -0.346410 1.150002 -18.200001 +v -0.346410 1.150000 -1.199998 +v -0.386370 1.246474 -18.200001 +v -0.386370 1.246472 -1.199998 +v -0.400000 1.350002 -18.200001 +v -0.400000 1.349999 -1.199998 +v -0.386370 1.453530 -18.200001 +v -0.386370 1.453527 -1.199998 +v -0.346410 1.550002 -18.200001 +v -0.346410 1.549999 -1.199998 +v -0.282843 1.632845 -18.200001 +v -0.282843 1.632842 -1.199998 +v -0.200000 1.696412 -18.200001 +v -0.200000 1.696410 -1.199998 +v -0.103528 1.736373 -18.200001 +v -0.103528 1.736370 -1.199998 +v 0.000000 1.850002 -15.850002 +v 0.129410 1.832965 -17.850002 +v 0.000000 1.850002 -17.850002 +v 0.129410 1.832965 -15.850002 +v 0.250000 1.783014 -17.850002 +v 0.250000 1.783014 -15.850002 +v 0.353553 1.703555 -17.850002 +v 0.353553 1.703555 -15.850002 +v 0.433013 1.600002 -17.850002 +v 0.433013 1.600002 -15.850002 +v 0.482963 1.479411 -17.850002 +v 0.482963 1.479411 -15.850002 +v 0.500000 1.350002 -17.850002 +v 0.500000 1.350002 -15.850002 +v 0.482963 1.220593 -17.850002 +v 0.482963 1.220593 -15.850002 +v 0.433013 1.100002 -17.850002 +v 0.433013 1.100002 -15.850002 +v 0.353554 0.996449 -17.850002 +v 0.353554 0.996449 -15.850002 +v 0.250000 0.916989 -17.850002 +v 0.250000 0.916989 -15.850002 +v 0.129410 0.867039 -17.850002 +v 0.129410 0.867039 -15.850002 +v 0.000000 0.850002 -17.850002 +v 0.000000 0.850002 -15.850002 +v -0.129409 0.867039 -17.850002 +v -0.129409 0.867039 -15.850002 +v -0.250000 0.916989 -17.850002 +v -0.250000 0.916989 -15.850002 +v -0.353553 0.996449 -17.850002 +v -0.353553 0.996448 -15.850002 +v -0.433013 1.100002 -17.850002 +v -0.433013 1.100002 -15.850002 +v -0.482963 1.220592 -17.850002 +v -0.482963 1.220592 -15.850002 +v -0.500000 1.350002 -17.850002 +v -0.500000 1.350001 -15.850002 +v -0.482963 1.479411 -17.850002 +v -0.482963 1.479411 -15.850002 +v -0.433013 1.600002 -17.850002 +v -0.433013 1.600002 -15.850002 +v -0.353554 1.703555 -17.850002 +v -0.353554 1.703555 -15.850002 +v -0.250000 1.783014 -17.850002 +v -0.250000 1.783014 -15.850002 +v -0.129410 1.832965 -17.850002 +v -0.129410 1.832965 -15.850002 +v 0.000000 1.850002 -15.400005 +v 0.129410 1.832965 -15.600006 +v 0.000000 1.850002 -15.600006 +v 0.129410 1.832965 -15.400005 +v 0.250000 1.783014 -15.600006 +v 0.250000 1.783014 -15.400005 +v 0.353553 1.703555 -15.600006 +v 0.353553 1.703555 -15.400005 +v 0.433013 1.600002 -15.600006 +v 0.433013 1.600002 -15.400005 +v 0.482963 1.479411 -15.600006 +v 0.482963 1.479411 -15.400005 +v 0.500000 1.350002 -15.600006 +v 0.500000 1.350002 -15.400005 +v 0.482963 1.220593 -15.600006 +v 0.482963 1.220593 -15.400005 +v 0.433013 1.100002 -15.600006 +v 0.433013 1.100002 -15.400005 +v 0.353554 0.996449 -15.600006 +v 0.353554 0.996449 -15.400005 +v 0.250000 0.916989 -15.600006 +v 0.250000 0.916989 -15.400005 +v 0.129410 0.867039 -15.600006 +v 0.129410 0.867039 -15.400005 +v 0.000000 0.850002 -15.600006 +v 0.000000 0.850002 -15.400005 +v -0.129409 0.867039 -15.600006 +v -0.129409 0.867039 -15.400005 +v -0.250000 0.916989 -15.600006 +v -0.250000 0.916989 -15.400005 +v -0.353553 0.996448 -15.600006 +v -0.353553 0.996448 -15.400005 +v -0.433013 1.100002 -15.600006 +v -0.433013 1.100002 -15.400005 +v -0.482963 1.220592 -15.600006 +v -0.482963 1.220592 -15.400005 +v -0.500000 1.350002 -15.600006 +v -0.500000 1.350002 -15.400005 +v -0.482963 1.479411 -15.600006 +v -0.482963 1.479411 -15.400005 +v -0.433013 1.600002 -15.600006 +v -0.433013 1.600002 -15.400005 +v -0.353554 1.703555 -15.600006 +v -0.353554 1.703555 -15.400005 +v -0.250000 1.783014 -15.600006 +v -0.250000 1.783014 -15.400005 +v -0.129410 1.832965 -15.600006 +v -0.129410 1.832965 -15.400005 +v 0.000000 1.850002 -15.050005 +v 0.129410 1.832965 -15.250006 +v 0.000000 1.850002 -15.250006 +v 0.129410 1.832965 -15.050005 +v 0.250000 1.783014 -15.250006 +v 0.250000 1.783014 -15.050005 +v 0.353553 1.703555 -15.250006 +v 0.353553 1.703555 -15.050005 +v 0.433013 1.600002 -15.250006 +v 0.433013 1.600002 -15.050005 +v 0.482963 1.479411 -15.250006 +v 0.482963 1.479411 -15.050005 +v 0.500000 1.350002 -15.250006 +v 0.500000 1.350002 -15.050005 +v 0.482963 1.220593 -15.250006 +v 0.482963 1.220593 -15.050005 +v 0.433013 1.100002 -15.250006 +v 0.433013 1.100002 -15.050005 +v 0.353554 0.996449 -15.250006 +v 0.353554 0.996449 -15.050005 +v 0.250000 0.916989 -15.250006 +v 0.250000 0.916989 -15.050005 +v 0.129410 0.867039 -15.250006 +v 0.129410 0.867039 -15.050005 +v 0.000000 0.850002 -15.250006 +v 0.000000 0.850002 -15.050005 +v -0.129409 0.867039 -15.250006 +v -0.129409 0.867039 -15.050005 +v -0.250000 0.916989 -15.250006 +v -0.250000 0.916989 -15.050005 +v -0.353553 0.996449 -15.250006 +v -0.353553 0.996449 -15.050005 +v -0.433013 1.100002 -15.250006 +v -0.433013 1.100002 -15.050005 +v -0.482963 1.220592 -15.250006 +v -0.482963 1.220592 -15.050005 +v -0.500000 1.350002 -15.250006 +v -0.500000 1.350002 -15.050005 +v -0.482963 1.479411 -15.250006 +v -0.482963 1.479411 -15.050005 +v -0.433013 1.600002 -15.250006 +v -0.433013 1.600002 -15.050005 +v -0.353554 1.703555 -15.250006 +v -0.353554 1.703555 -15.050005 +v -0.250000 1.783014 -15.250006 +v -0.250000 1.783014 -15.050005 +v -0.129410 1.832965 -15.250006 +v -0.129410 1.832965 -15.050005 +v 0.000000 1.850001 -10.700005 +v 0.129410 1.832965 -14.900005 +v 0.000000 1.850002 -14.900005 +v 0.129410 1.832963 -10.700005 +v 0.250000 1.783014 -14.900005 +v 0.250000 1.783013 -10.700005 +v 0.353553 1.703555 -14.900005 +v 0.353553 1.703553 -10.700005 +v 0.433013 1.600002 -14.900005 +v 0.433013 1.600001 -10.700005 +v 0.482963 1.479411 -14.900005 +v 0.482963 1.479409 -10.700005 +v 0.500000 1.350002 -14.900005 +v 0.500000 1.350001 -10.700005 +v 0.482963 1.220593 -14.900005 +v 0.482963 1.220591 -10.700005 +v 0.433013 1.100002 -14.900005 +v 0.433013 1.100001 -10.700005 +v 0.353554 0.996449 -14.900005 +v 0.353554 0.996448 -10.700005 +v 0.250000 0.916989 -14.900005 +v 0.250000 0.916987 -10.700005 +v 0.129410 0.867039 -14.900005 +v 0.129410 0.867037 -10.700005 +v 0.000000 0.850002 -14.900005 +v 0.000000 0.850001 -10.700005 +v -0.129409 0.867039 -14.900005 +v -0.129409 0.867037 -10.700005 +v -0.250000 0.916989 -14.900005 +v -0.250000 0.916987 -10.700005 +v -0.353553 0.996449 -14.900005 +v -0.353553 0.996446 -10.700005 +v -0.433013 1.100002 -14.900005 +v -0.433013 1.100001 -10.700005 +v -0.482963 1.220592 -14.900005 +v -0.482963 1.220590 -10.700005 +v -0.500000 1.350002 -14.900005 +v -0.500000 1.349999 -10.700005 +v -0.482963 1.479411 -14.900005 +v -0.482963 1.479409 -10.700005 +v -0.433013 1.600002 -14.900005 +v -0.433013 1.600001 -10.700005 +v -0.353554 1.703555 -14.900005 +v -0.353554 1.703553 -10.700005 +v -0.250000 1.783014 -14.900005 +v -0.250000 1.783013 -10.700005 +v -0.129410 1.832965 -14.900005 +v -0.129410 1.832963 -10.700005 +v 0.000000 2.880378 -19.500000 +v 0.303359 2.756257 -19.500000 +v 0.365776 2.674913 -19.500000 +v 0.401974 2.587523 -19.500000 +v 0.413496 2.500002 -19.500000 +v 0.401974 2.412481 -19.500000 +v 0.365776 2.325092 -19.500000 +v 0.303359 2.243748 -19.500000 +v 0.217114 2.177570 -19.500000 +v 0.113208 2.134531 -19.500000 +v 0.000000 2.119626 -19.500000 +v -0.113207 2.134531 -19.500000 +v -0.217114 2.177570 -19.500000 +v -0.303358 2.243748 -19.500000 +v -0.365776 2.325092 -19.500000 +v -0.401974 2.412481 -19.500000 +v -0.413496 2.500002 -19.500000 +v -0.401974 2.587523 -19.500000 +v -0.365776 2.674913 -19.500000 +v -0.303359 2.756257 -19.500000 +v -0.217115 2.822434 -19.500000 +v -0.113208 2.865474 -19.500000 +v -0.303359 2.756227 -4.500000 +v -0.217115 2.822405 -4.500000 +v -0.303358 2.243718 -4.500000 +v -0.365776 2.325062 -4.500000 +v 0.303359 2.243718 -4.500000 +v 0.217114 2.822405 -4.500000 +v -0.401974 2.412452 -4.500000 +v 0.217114 2.177541 -4.500000 +v 0.303359 2.756227 -4.500000 +v -0.413496 2.499972 -4.500000 +v 0.113208 2.134501 -4.500000 +v 0.365776 2.674883 -4.500000 +v -0.401974 2.587493 -4.500000 +v 0.000000 2.119597 -4.500000 +v 0.401974 2.587494 -4.500000 +v -0.365776 2.674883 -4.500000 +v -0.113207 2.134501 -4.500000 +v 0.413496 2.499973 -4.500000 +v -0.217114 2.177540 -4.500000 +v 0.401974 2.412452 -4.500000 +v 0.000000 2.880348 -4.500000 +v 0.365776 2.325063 -4.500000 +v -0.113208 2.865444 -4.500000 +v -0.247487 1.597489 -19.187502 +v -0.755718 0.647394 5.837500 +v 0.755718 -2.527644 7.135499 +v -0.755718 -2.527644 7.135499 +v -0.755718 -0.180467 8.289835 +v -0.859447 -0.780915 8.274623 +v -0.755718 -0.780915 8.274623 +v -0.755718 -3.377863 7.013356 +v 0.755718 -3.377863 7.013356 +v -0.755718 -2.987607 8.437500 +v 0.755718 -2.987607 8.437500 +v 0.755718 -2.817606 9.400000 +v 0.755718 -2.464953 7.305608 +v 0.860460 -3.026299 7.224965 +v 0.755718 -3.026299 7.224965 +v -0.755718 -0.688223 8.418876 +v 0.755718 -0.688223 8.418876 +v 0.755718 0.185424 9.259533 +v -0.755718 0.582394 8.302500 +v -0.755718 0.185424 9.259533 +v -0.755718 -0.369988 8.426938 +v 0.755718 -0.369988 8.426938 +v 0.755718 0.582394 8.302500 +v -1.000000 2.933334 -1.071110 +v -1.000000 0.800000 -1.699999 +v -1.000000 0.780398 -0.913832 +v 1.000000 0.800000 -1.699999 +v 1.000000 2.933334 -1.699999 +v 1.000000 1.698309 -0.676977 +v 1.000000 2.933304 -1.071133 +v -1.000000 2.933334 -1.699999 +v 1.000000 0.650225 4.306945 +v -1.000000 0.550646 8.300697 +v -1.000000 0.650225 4.306945 +v 1.000000 0.550646 8.300697 +v -1.000000 -3.878246 18.970343 +v 1.000000 2.932952 6.299709 +v 1.000000 -3.878246 18.970343 +v -1.000000 0.817815 19.398920 +v 1.000000 1.917567 8.277368 +v 1.155736 2.325624 6.986647 +v 1.000000 2.325624 6.986647 +v -1.000000 2.237243 7.108925 +v -1.185947 2.308128 6.984412 +v -1.000000 2.308128 6.984412 +v 1.000000 2.123852 8.290171 +v -1.000000 2.123852 8.290171 +v -1.000000 2.933334 6.300001 +v 1.000000 2.527876 7.012211 +v -0.750000 3.200001 3.750000 +v -0.750000 2.900000 -1.750000 +v -0.750000 2.900000 3.750000 +v 0.750000 3.200001 -1.750000 +v 0.750000 2.900000 3.750000 +v 0.750000 2.900000 -1.750000 +v 0.750000 3.200001 3.750000 +v -0.750000 3.200001 -1.750000 +v -0.250000 0.652645 5.427117 +v 0.250000 0.640000 5.690244 +v 0.250000 0.652645 5.427117 +v -0.250000 0.256794 5.586637 +v 0.250000 -0.181354 5.410000 +v -0.250000 -0.181354 5.410000 +v -0.250000 -0.031450 5.624102 +v 0.250000 0.160424 5.735405 +v 0.250000 -0.031450 5.624102 +v 0.250000 0.405741 5.904014 +v 0.250000 0.256794 5.586637 +v -0.250000 0.640000 5.690244 +v 0.250000 0.606441 5.842027 +v -0.250000 0.405741 5.904014 +v -0.250000 0.160424 5.735405 +v -0.250000 0.606441 5.842027 +v -0.500000 0.660000 2.970000 +v 0.500000 0.660000 4.294731 +v 0.500000 0.660000 2.970000 +v 0.500000 0.324113 3.675095 +v -0.500000 0.324113 3.675095 +v -0.500000 0.660000 4.294731 +v 0.500000 0.509328 4.170000 +v -0.500000 -0.124560 4.074054 +v 0.500000 -0.124560 4.074054 +v -0.500000 0.346295 4.124543 +v 0.500000 0.346295 4.124543 +v 0.500000 0.069553 4.199328 +v -0.500000 0.069553 4.199328 +v -0.500000 -0.236114 4.310554 +v 0.500000 -0.146776 4.438249 +v -0.500000 -0.351705 5.529659 +v 0.500000 -0.322895 4.675695 +v 0.500000 -0.351705 5.529659 +v -0.500000 -0.322895 4.675695 +v 0.500000 -0.236114 4.310554 +v 0.500000 -0.262769 5.520746 +v -0.500000 -0.146776 4.438249 +v -0.500000 -0.262769 5.520746 +v -0.500000 -0.202867 5.844228 +v 0.500000 -0.202867 5.844228 +v 0.500000 -0.157875 5.763871 +v -0.500000 0.158226 6.022319 +v 0.500000 0.158226 6.022319 +v -0.500000 0.239107 5.983576 +v 0.500000 0.239107 5.983576 +v -0.500000 -0.157875 5.763871 +v -0.750000 2.930000 6.000000 +v -0.500000 3.441713 5.759016 +v -0.750000 3.441713 5.759016 +v 0.750000 3.441713 5.759016 +v 0.750000 2.930000 6.000000 +v 0.750000 3.523953 4.644016 +v 0.750000 2.930000 3.800829 +v 0.500000 2.930000 6.000000 +v 0.500000 2.930000 3.800829 +v 0.500000 3.427887 3.897640 +v -0.750000 3.830230 5.170968 +v -0.500000 3.823139 5.393547 +v -0.500000 3.830230 5.170968 +v 0.500000 3.523953 4.644016 +v -0.750000 3.523953 4.644016 +v 0.500000 3.823139 5.393547 +v 0.750000 3.823139 5.393547 +v 0.500000 3.830230 5.170968 +v 0.750000 3.830230 5.170968 +v -0.500000 3.523953 4.644016 +v -0.496667 3.427887 3.897640 +v -0.500000 3.427887 3.897640 +v -0.750000 3.427887 3.897640 +v -0.500000 2.930000 3.800829 +v -0.750000 2.930000 3.800829 +v -0.500000 2.930000 6.000000 +v 0.496667 2.930000 3.800829 +v -0.750000 3.823139 5.393547 +v 0.500000 3.441713 5.759016 +v -0.496667 2.930000 3.800829 +v -0.496667 3.523953 4.644016 +v -1.000000 -3.606866 18.872658 +v -1.000000 0.608681 19.257383 +v -1.000000 1.899714 8.276260 +v -1.000000 0.761976 8.347678 +v -1.000000 2.527876 7.012211 +v -1.185947 1.899714 8.276260 +v -1.185947 2.237243 7.108925 +v -1.185947 0.761976 8.347678 +v -1.185947 0.608681 19.257383 +v -1.185947 -3.606866 18.872658 +v 1.000000 2.293221 7.043643 +v 1.000000 -3.628482 18.880440 +v 1.000000 0.817815 19.398920 +v 1.000000 0.745147 8.343928 +v 1.000000 0.625338 19.268656 +v 1.155736 0.745147 8.343928 +v 1.155736 2.293221 7.043643 +v 1.155736 1.917567 8.277368 +v 1.155736 -3.628482 18.880440 +v 1.155736 0.625338 19.268656 +v -0.755718 0.375138 6.127107 +v -0.755718 -2.470537 7.290457 +v -0.755718 -3.057612 7.206118 +v -0.755718 -2.724833 8.420519 +v -0.755718 -2.602371 9.113867 +v -0.755718 -2.817606 9.400000 +v -0.755718 0.126025 8.749284 +v -0.755718 0.318211 8.285953 +v -0.859447 0.375138 6.127107 +v -0.859447 -2.470537 7.290457 +v -0.859447 -2.724833 8.420519 +v -0.859447 0.318211 8.285953 +v -0.859447 -0.180467 8.289835 +v -0.859447 -2.602371 9.113867 +v -0.859447 0.126025 8.749284 +v -0.859447 -3.057612 7.206118 +v 0.755718 0.348518 6.155423 +v 0.755718 0.292380 8.284335 +v 0.755718 0.647394 5.837500 +v 0.755718 -2.581326 9.085890 +v 0.755718 -2.699138 8.418859 +v 0.755718 0.120217 8.699394 +v 0.755718 -0.789979 8.260518 +v 0.755718 -0.161936 8.276430 +v 0.860460 -0.789979 8.260518 +v 0.860460 -2.699138 8.418859 +v 0.860460 -2.464953 7.305608 +v 0.860460 0.292380 8.284335 +v 0.860460 -0.161936 8.276430 +v 0.860460 -2.581326 9.085890 +v 0.860460 0.348518 6.155423 +v 0.860460 0.120217 8.699394 +v 1.000000 2.933104 3.105046 +v -1.000000 2.933334 3.105221 +v 1.000000 0.780398 -0.913832 +v 1.000000 1.335998 -0.650505 +v 0.788792 1.270460 2.926924 +v 1.000000 1.270460 2.928254 +v 1.000000 2.371172 -0.726139 +v 1.000000 2.370995 2.978774 +v 0.788792 1.698309 -0.676977 +v 0.788792 2.370995 2.978774 +v 0.788792 1.666737 2.926896 +v 0.988511 1.668191 5.137841 +v 0.777303 1.668191 5.136976 +v 0.788792 2.371172 -0.726139 +v 0.788792 1.335998 -0.650505 +v 1.000000 1.666737 2.927761 +v 0.777303 1.271914 5.137004 +v 0.988511 1.271914 5.138335 +v -0.500000 0.509328 4.170000 +v 0.750000 3.427887 3.897640 +v -0.496667 3.823139 5.393547 +v -0.496667 3.830230 5.170968 +v 0.212415 3.387585 5.190104 +v 0.249773 3.433107 5.409896 +v 0.212415 3.387585 5.409896 +v 0.249773 3.433107 5.190104 +v 0.277533 3.485042 5.409896 +v 0.277533 3.485042 5.190104 +v 0.294628 3.541395 5.409896 +v 0.294628 3.541395 5.190104 +v 0.300400 3.600000 5.409896 +v 0.300400 3.600000 5.190104 +v 0.294628 3.658605 5.409896 +v 0.294628 3.658605 5.190104 +v 0.277533 3.714958 5.409896 +v 0.277533 3.714958 5.190104 +v 0.249773 3.766893 5.409896 +v 0.249773 3.766893 5.190104 +v 0.212415 3.812415 5.409896 +v 0.212415 3.812415 5.190104 +v 0.166893 3.849773 5.409896 +v 0.166893 3.849773 5.190104 +v 0.114958 3.877533 5.409896 +v 0.114958 3.877533 5.190104 +v 0.058605 3.894628 5.409896 +v 0.058605 3.894628 5.190104 +v 0.000000 3.900400 5.409896 +v 0.000000 3.900400 5.190104 +v -0.058605 3.894628 5.409896 +v -0.058605 3.894628 5.190104 +v -0.114958 3.877533 5.409896 +v -0.114958 3.877533 5.190104 +v -0.166893 3.849773 5.409896 +v -0.166893 3.849773 5.190104 +v -0.212415 3.812415 5.409896 +v -0.212415 3.812415 5.190104 +v -0.249773 3.766893 5.409896 +v -0.249773 3.766893 5.190104 +v -0.277533 3.714958 5.409896 +v -0.277533 3.714958 5.190104 +v -0.294628 3.658605 5.409896 +v -0.294628 3.658605 5.190104 +v -0.300400 3.600000 5.409896 +v -0.300400 3.600000 5.190104 +v -0.294628 3.541395 5.409896 +v -0.294628 3.541395 5.190104 +v -0.277533 3.485042 5.409896 +v -0.277533 3.485042 5.190104 +v -0.249773 3.433107 5.409896 +v -0.249773 3.433107 5.190104 +v -0.212414 3.387585 5.409896 +v 0.146217 3.453784 5.190104 +v 0.171933 3.485118 5.410770 +v 0.171933 3.485118 5.190104 +v 0.202808 3.559659 5.190104 +v 0.191041 3.520868 5.190104 +v 0.206782 3.600000 5.190104 +v 0.202808 3.640341 5.190104 +v 0.171933 3.714882 5.190104 +v 0.191041 3.679132 5.190104 +v 0.146217 3.746217 5.190104 +v 0.114882 3.771933 5.190104 +v 0.040341 3.802808 5.190104 +v 0.079132 3.791041 5.190104 +v 0.000000 3.806782 5.190104 +v -0.040341 3.802808 5.190104 +v -0.114882 3.771933 5.190104 +v -0.079132 3.791041 5.190104 +v -0.146217 3.746217 5.190104 +v -0.171933 3.714881 5.190104 +v -0.202808 3.640341 5.190104 +v -0.191041 3.679132 5.190104 +v -0.206782 3.600000 5.190104 +v -0.202808 3.559659 5.190104 +v -0.191041 3.520868 5.190104 +v -0.171932 3.485118 5.190104 +v -0.212414 3.387585 5.190104 +v -0.040341 3.397192 5.190104 +v 0.000000 3.393219 5.410770 +v 0.000000 3.393219 5.190104 +v -0.114882 3.771933 5.410770 +v 0.191041 3.520868 5.410770 +v -0.146217 3.746217 5.410770 +v 0.202808 3.559659 5.410770 +v -0.171933 3.714881 5.410770 +v 0.206782 3.600000 5.410770 +v -0.191041 3.679132 5.410770 +v 0.202808 3.640341 5.410770 +v -0.202808 3.640341 5.410770 +v 0.191041 3.679132 5.410770 +v -0.206781 3.600000 5.410770 +v 0.171933 3.714882 5.410770 +v -0.202808 3.559659 5.410770 +v 0.146217 3.746217 5.410770 +v -0.191041 3.520868 5.410770 +v 0.114882 3.771933 5.410770 +v -0.171932 3.485118 5.410770 +v 0.079132 3.791041 5.410770 +v 0.040341 3.397192 5.410770 +v 0.040341 3.397192 5.190104 +v -0.146216 3.453783 5.410770 +v -0.146216 3.453783 5.190104 +v 0.040341 3.802808 5.410770 +v 0.079132 3.408959 5.410770 +v 0.079132 3.408959 5.190104 +v -0.114881 3.428067 5.410770 +v -0.114881 3.428067 5.190104 +v 0.000000 3.806782 5.410770 +v 0.114882 3.428067 5.410770 +v 0.114882 3.428067 5.190104 +v -0.079132 3.408959 5.410770 +v -0.079132 3.408959 5.190104 +v -0.040341 3.802808 5.410770 +v 0.146217 3.453784 5.410770 +v -0.040341 3.397192 5.410770 +v -0.079132 3.791041 5.410770 +v 0.169977 3.486425 5.409896 +v 0.188868 3.521768 5.409896 +v 0.200501 3.560118 5.409896 +v 0.204429 3.600000 5.409896 +v 0.200501 3.639882 5.409896 +v 0.188868 3.678232 5.409896 +v 0.169977 3.713575 5.409896 +v 0.144553 3.744553 5.409896 +v 0.113575 3.769977 5.409896 +v 0.078232 3.788868 5.409896 +v 0.039882 3.800501 5.409896 +v 0.000000 3.804429 5.409896 +v -0.039882 3.800501 5.409896 +v -0.078232 3.788868 5.409896 +v -0.113575 3.769977 5.409896 +v -0.144553 3.744553 5.409896 +v -0.169977 3.713575 5.409896 +v -0.188868 3.678231 5.409896 +v -0.200501 3.639882 5.409896 +v -0.204429 3.600000 5.409896 +v -0.200501 3.560118 5.409896 +v -0.188868 3.521768 5.409896 +v -0.169977 3.486425 5.409896 +v -0.144553 3.455447 5.409896 +v -0.499854 3.387367 5.661843 +v -0.499854 2.912633 4.938158 +v -0.499854 2.912633 5.661843 +v -0.499854 3.387367 4.938158 +v 0.519854 2.912633 4.938158 +v 0.519854 3.387367 4.938158 +v 0.519854 2.912633 5.661843 +v 0.519854 3.387367 5.661843 +v 0.212149 3.387367 5.409896 +v 0.212149 3.387367 5.190104 +v -0.212149 3.387367 5.190104 +v -0.212149 3.387367 5.409896 +v 0.000000 3.387367 5.190104 +v 0.042295 3.387367 5.190104 +v 0.088076 3.387367 5.190104 +v 0.142077 3.387367 5.190104 +v -0.142076 3.387367 5.190104 +v -0.088075 3.387367 5.190104 +v -0.042295 3.387367 5.190104 +v 0.039882 3.399499 5.409896 +v 0.000000 3.387367 5.409896 +v 0.042295 3.387367 5.409896 +v 0.078232 3.411132 5.409896 +v 0.088076 3.387367 5.409896 +v 0.113575 3.430023 5.409896 +v 0.142077 3.387367 5.409896 +v 0.144553 3.455447 5.409896 +v -0.088075 3.387367 5.409896 +v -0.113575 3.430023 5.409896 +v -0.142076 3.387367 5.409896 +v -0.042295 3.387367 5.409896 +v -0.078231 3.411132 5.409896 +v -0.039882 3.399499 5.409896 +v 0.000000 3.395571 5.409896 +v -0.285753 2.876173 -17.583353 +v -0.206993 3.392600 -18.284744 +v -0.285753 2.876173 -18.899897 +v 0.285753 2.876173 -18.899897 +v 0.206993 3.392600 -18.284744 +v 0.285753 2.876173 -17.583353 +v 0.206993 3.392600 -17.955841 +v -0.052052 3.504858 -18.120081 +v -0.045935 3.600578 -18.259661 +v -0.052052 3.504858 -18.269205 +v 0.052052 3.504858 -18.269205 +v 0.045935 3.600578 -18.259661 +v 0.052052 3.504858 -18.120081 +v 0.045935 3.600578 -18.122107 +v 0.063413 3.327093 -18.286932 +v -0.063413 3.327093 -18.116322 +v -0.063413 3.327093 -18.286932 +v 0.063413 3.327093 -18.116322 +v -0.197447 3.270683 -17.965662 +v -0.287607 3.625363 -18.247025 +v -0.197447 3.270683 -18.300558 +v -0.199752 3.652223 -18.247025 +v -0.076163 3.307763 -18.300558 +v -0.076163 3.307763 -17.965662 +v -0.199752 3.652223 -17.977015 +v 0.076163 3.307763 -17.965847 +v 0.199752 3.652223 -18.246998 +v 0.076163 3.307763 -18.300491 +v 0.197447 3.270683 -18.300491 +v 0.287607 3.625363 -18.246998 +v 0.197447 3.270683 -17.965847 +v 0.287607 3.625363 -17.977190 +v -0.206993 3.392600 -17.955841 +v -0.045935 3.600578 -18.122107 +v -0.287607 3.625363 -17.977015 +v 0.199752 3.652223 -17.977190 +vt 0.470782 0.953868 +vt 0.470782 0.968169 +vt 0.443281 0.968169 +vt 0.498282 0.968169 +vt 0.470782 0.982469 +vt 0.470782 0.953868 +vt 0.470782 0.968169 +vt 0.443281 0.968169 +vt 0.443281 0.982469 +vt 0.470782 0.982469 +vt 0.443281 0.996769 +vt 0.415780 0.982469 +vt 0.415780 0.968169 +vt 0.498282 0.968169 +vt 0.443281 0.982469 +vt 0.470782 0.996769 +vt 0.443281 0.996769 +vt 0.498282 0.968169 +vt 0.443281 0.982469 +vt 0.415970 0.982469 +vt 0.415780 0.982469 +vt 0.415780 0.968169 +vt 0.443281 0.953868 +vt 0.470782 0.953868 +vt 0.415793 0.982420 +vt 0.443281 0.939568 +vt 0.470782 0.939568 +vt 0.443281 0.939617 +vt 0.470782 0.953868 +vt 0.470782 0.968169 +vt 0.443281 0.968169 +vt 0.443281 0.982469 +vt 0.470782 0.982469 +vt 0.443281 0.996769 +vt 0.415780 0.968169 +vt 0.415780 0.982469 +vt 0.498282 0.968169 +vt 0.470782 0.953868 +vt 0.470782 0.968169 +vt 0.443281 0.968169 +vt 0.443281 0.982469 +vt 0.470782 0.982469 +vt 0.443281 0.996769 +vt 0.415780 0.982469 +vt 0.415780 0.968169 +vt 0.498282 0.968169 +vt 0.470782 0.953868 +vt 0.470782 0.968169 +vt 0.443281 0.968169 +vt 0.498282 0.968169 +vt 0.470782 0.982469 +vt 0.470782 0.953868 +vt 0.470782 0.968169 +vt 0.443281 0.968169 +vt 0.443281 0.982469 +vt 0.470782 0.982469 +vt 0.443281 0.996769 +vt 0.415780 0.982469 +vt 0.415780 0.968169 +vt 0.498282 0.968169 +vt 0.443281 0.982469 +vt 0.470782 0.996769 +vt 0.443281 0.996769 +vt 0.498282 0.968169 +vt 0.443281 0.982469 +vt 0.415970 0.982469 +vt 0.415780 0.982469 +vt 0.415780 0.968169 +vt 0.443281 0.953868 +vt 0.470782 0.953868 +vt 0.415793 0.982420 +vt 0.443281 0.939568 +vt 0.470782 0.939568 +vt 0.443281 0.939617 +vt 0.470782 0.953868 +vt 0.470782 0.968169 +vt 0.443281 0.968169 +vt 0.498282 0.968169 +vt 0.470782 0.982469 +vt 0.470782 0.953868 +vt 0.470782 0.968169 +vt 0.443281 0.968169 +vt 0.443281 0.982469 +vt 0.470782 0.982469 +vt 0.443281 0.996769 +vt 0.415780 0.982469 +vt 0.415780 0.968169 +vt 0.498282 0.968169 +vt 0.443281 0.982469 +vt 0.470782 0.996769 +vt 0.443281 0.996769 +vt 0.498282 0.968169 +vt 0.443281 0.982469 +vt 0.415970 0.982469 +vt 0.415780 0.982469 +vt 0.415780 0.968169 +vt 0.443281 0.953868 +vt 0.470782 0.953868 +vt 0.415793 0.982420 +vt 0.443281 0.939568 +vt 0.470782 0.939568 +vt 0.443281 0.939617 +vt 0.470782 0.953868 +vt 0.470782 0.968169 +vt 0.443281 0.968169 +vt 0.498282 0.968169 +vt 0.470782 0.982469 +vt 0.470782 0.953868 +vt 0.470782 0.968169 +vt 0.443281 0.968169 +vt 0.443281 0.982469 +vt 0.470782 0.982469 +vt 0.443281 0.996769 +vt 0.415780 0.982469 +vt 0.415780 0.968169 +vt 0.498282 0.968169 +vt 0.443281 0.982469 +vt 0.470782 0.996769 +vt 0.443281 0.996769 +vt 0.498282 0.968169 +vt 0.443281 0.982469 +vt 0.415970 0.982469 +vt 0.415780 0.982469 +vt 0.415780 0.968169 +vt 0.443281 0.953868 +vt 0.470782 0.953868 +vt 0.415793 0.982420 +vt 0.443281 0.939568 +vt 0.470782 0.939568 +vt 0.443281 0.939617 +vt 0.470782 0.953868 +vt 0.470782 0.968169 +vt 0.443281 0.968169 +vt 0.498282 0.968169 +vt 0.470782 0.982469 +vt 0.470782 0.953868 +vt 0.470782 0.968169 +vt 0.443281 0.968169 +vt 0.443281 0.982469 +vt 0.470782 0.982469 +vt 0.443281 0.996769 +vt 0.415780 0.982469 +vt 0.415780 0.968169 +vt 0.498282 0.968169 +vt 0.443281 0.982469 +vt 0.470782 0.996769 +vt 0.443281 0.996769 +vt 0.498282 0.968169 +vt 0.443281 0.982469 +vt 0.415970 0.982469 +vt 0.415780 0.982469 +vt 0.415780 0.968169 +vt 0.443281 0.953868 +vt 0.470782 0.953868 +vt 0.415793 0.982420 +vt 0.443281 0.939568 +vt 0.470782 0.939568 +vt 0.443281 0.939617 +vt 0.470782 0.953868 +vt 0.470782 0.968169 +vt 0.443281 0.968169 +vt 0.498282 0.968169 +vt 0.470782 0.982469 +vt 0.470782 0.953868 +vt 0.470782 0.968169 +vt 0.443281 0.968169 +vt 0.443281 0.982469 +vt 0.470782 0.982469 +vt 0.443281 0.996769 +vt 0.415780 0.982469 +vt 0.415780 0.968169 +vt 0.498282 0.968169 +vt 0.443281 0.982469 +vt 0.470782 0.996769 +vt 0.443281 0.996769 +vt 0.498282 0.968169 +vt 0.443281 0.982469 +vt 0.415970 0.982469 +vt 0.415780 0.982469 +vt 0.415780 0.968169 +vt 0.443281 0.953868 +vt 0.470782 0.953868 +vt 0.415793 0.982420 +vt 0.443281 0.939568 +vt 0.470782 0.939568 +vt 0.443281 0.939617 +vt 0.470782 0.953868 +vt 0.470782 0.968169 +vt 0.443281 0.968169 +vt 0.498282 0.968169 +vt 0.470782 0.982469 +vt 0.470782 0.953868 +vt 0.470782 0.968169 +vt 0.443281 0.968169 +vt 0.443281 0.982469 +vt 0.470782 0.982469 +vt 0.443281 0.996769 +vt 0.415780 0.982469 +vt 0.415780 0.968169 +vt 0.498282 0.968169 +vt 0.443281 0.982469 +vt 0.470782 0.996769 +vt 0.443281 0.996769 +vt 0.498282 0.968169 +vt 0.443281 0.982469 +vt 0.415970 0.982469 +vt 0.415780 0.982469 +vt 0.415780 0.968169 +vt 0.443281 0.953868 +vt 0.470782 0.953868 +vt 0.415793 0.982420 +vt 0.443281 0.939568 +vt 0.470782 0.939568 +vt 0.443281 0.939617 +vt 0.470782 0.953868 +vt 0.470782 0.968169 +vt 0.443281 0.968169 +vt 0.498282 0.968169 +vt 0.470782 0.982469 +vt 0.470782 0.953868 +vt 0.470782 0.968169 +vt 0.443281 0.968169 +vt 0.443281 0.982469 +vt 0.470782 0.982469 +vt 0.443281 0.996769 +vt 0.415780 0.982469 +vt 0.415780 0.968169 +vt 0.498282 0.968169 +vt 0.443281 0.982469 +vt 0.470782 0.996769 +vt 0.443281 0.996769 +vt 0.498282 0.968169 +vt 0.443281 0.982469 +vt 0.415970 0.982469 +vt 0.415780 0.982469 +vt 0.415780 0.968169 +vt 0.443281 0.953868 +vt 0.470782 0.953868 +vt 0.415793 0.982420 +vt 0.443281 0.939568 +vt 0.470782 0.939568 +vt 0.443281 0.939617 +vt 0.470782 0.953868 +vt 0.470782 0.968169 +vt 0.443281 0.968169 +vt 0.498282 0.968169 +vt 0.470782 0.982469 +vt 0.470782 0.953868 +vt 0.470782 0.968169 +vt 0.443281 0.968169 +vt 0.443281 0.982469 +vt 0.470782 0.982469 +vt 0.443281 0.996769 +vt 0.415780 0.982469 +vt 0.415780 0.968169 +vt 0.498282 0.968169 +vt 0.443281 0.982469 +vt 0.470782 0.996769 +vt 0.443281 0.996769 +vt 0.498282 0.968169 +vt 0.443281 0.982469 +vt 0.415970 0.982469 +vt 0.415780 0.982469 +vt 0.415780 0.968169 +vt 0.443281 0.953868 +vt 0.470782 0.953868 +vt 0.415793 0.982420 +vt 0.443281 0.939568 +vt 0.470782 0.939568 +vt 0.443281 0.939617 +vt 0.470782 0.953868 +vt 0.470782 0.968169 +vt 0.443281 0.968169 +vt 0.498282 0.968169 +vt 0.470782 0.982469 +vt 0.470782 0.953868 +vt 0.470782 0.968169 +vt 0.443281 0.968169 +vt 0.443281 0.982469 +vt 0.470782 0.982469 +vt 0.443281 0.996769 +vt 0.415780 0.982469 +vt 0.415780 0.968169 +vt 0.498282 0.968169 +vt 0.443281 0.982469 +vt 0.470782 0.996769 +vt 0.443281 0.996769 +vt 0.498282 0.968169 +vt 0.443281 0.982469 +vt 0.415970 0.982469 +vt 0.415780 0.982469 +vt 0.415780 0.968169 +vt 0.443281 0.953868 +vt 0.470782 0.953868 +vt 0.415793 0.982420 +vt 0.443281 0.939568 +vt 0.470782 0.939568 +vt 0.443281 0.939617 +vt 0.470782 0.953868 +vt 0.470782 0.968169 +vt 0.443281 0.968169 +vt 0.498282 0.968169 +vt 0.470782 0.982469 +vt 0.470782 0.953868 +vt 0.470782 0.968169 +vt 0.443281 0.968169 +vt 0.443281 0.982469 +vt 0.470782 0.982469 +vt 0.443281 0.996769 +vt 0.415780 0.982469 +vt 0.415780 0.968169 +vt 0.498282 0.968169 +vt 0.443281 0.982469 +vt 0.470782 0.996769 +vt 0.443281 0.996769 +vt 0.498282 0.968169 +vt 0.443281 0.982469 +vt 0.415970 0.982469 +vt 0.415780 0.982469 +vt 0.415780 0.968169 +vt 0.443281 0.953868 +vt 0.470782 0.953868 +vt 0.415793 0.982420 +vt 0.443281 0.939568 +vt 0.470782 0.939568 +vt 0.443281 0.939617 +vt 0.470782 0.953868 +vt 0.470782 0.968169 +vt 0.443281 0.968169 +vt 0.498282 0.968169 +vt 0.470782 0.982469 +vt 0.470782 0.953868 +vt 0.470782 0.968169 +vt 0.443281 0.968169 +vt 0.443281 0.982469 +vt 0.470782 0.982469 +vt 0.443281 0.996769 +vt 0.415780 0.982469 +vt 0.415780 0.968169 +vt 0.498282 0.968169 +vt 0.443281 0.982469 +vt 0.470782 0.996769 +vt 0.443281 0.996769 +vt 0.498282 0.968169 +vt 0.443281 0.982469 +vt 0.415970 0.982469 +vt 0.415780 0.982469 +vt 0.415780 0.968169 +vt 0.443281 0.953868 +vt 0.470782 0.953868 +vt 0.415793 0.982420 +vt 0.443281 0.939568 +vt 0.470782 0.939568 +vt 0.443281 0.939617 +vt 0.498282 0.982469 +vt 0.498282 0.982469 +vt 0.498282 0.982469 +vt 0.443281 0.968169 +vt 0.498282 0.982469 +vt 0.498282 0.982469 +vt 0.498282 0.982469 +vt 0.498282 0.982469 +vt 0.498282 0.982469 +vt 0.443281 0.968169 +vt 0.498282 0.982469 +vt 0.498282 0.982469 +vt 0.498282 0.982469 +vt 0.443281 0.968169 +vt 0.498282 0.982469 +vt 0.498282 0.982469 +vt 0.498282 0.982469 +vt 0.443281 0.968169 +vt 0.498282 0.982469 +vt 0.498282 0.982469 +vt 0.498282 0.982469 +vt 0.443281 0.968169 +vt 0.498282 0.982469 +vt 0.498282 0.982469 +vt 0.498282 0.982469 +vt 0.443281 0.968169 +vt 0.498282 0.982469 +vt 0.498282 0.982469 +vt 0.498282 0.982469 +vt 0.443281 0.968169 +vt 0.498282 0.982469 +vt 0.498282 0.982469 +vt 0.498282 0.982469 +vt 0.443281 0.968169 +vt 0.498282 0.982469 +vt 0.498282 0.982469 +vt 0.498282 0.982469 +vt 0.443281 0.968169 +vt 0.498282 0.982469 +vt 0.498282 0.982469 +vt 0.498282 0.982469 +vt 0.443281 0.968169 +vt 0.498282 0.982469 +vt 0.498282 0.982469 +vt 0.498282 0.982469 +vt 0.443281 0.968169 +vt 0.498282 0.982469 +vt 0.498282 0.982469 +vt 0.498282 0.982469 +vt 0.443281 0.968169 +vt 0.435064 0.853152 +vt 0.419806 0.853152 +vt 0.557124 0.853152 +vt 0.572381 0.891623 +vt 0.557124 0.828152 +vt 0.572381 0.828152 +vt 0.557124 0.891623 +vt 0.541866 0.828152 +vt 0.541866 0.891623 +vt 0.526609 0.828152 +vt 0.526609 0.891623 +vt 0.511351 0.828152 +vt 0.511351 0.891623 +vt 0.496094 0.828152 +vt 0.496094 0.891623 +vt 0.480836 0.828152 +vt 0.480836 0.891623 +vt 0.465579 0.828152 +vt 0.465579 0.891623 +vt 0.450321 0.828152 +vt 0.450321 0.891623 +vt 0.435064 0.828152 +vt 0.435064 0.891623 +vt 0.419806 0.828152 +vt 0.572381 0.916623 +vt 0.572381 0.853152 +vt 0.526609 0.916623 +vt 0.541866 0.916623 +vt 0.465579 0.916623 +vt 0.541866 0.853152 +vt 0.450321 0.853152 +vt 0.526609 0.853152 +vt 0.465579 0.853152 +vt 0.511351 0.853152 +vt 0.496094 0.853152 +vt 0.480836 0.853152 +vt 0.419806 0.891623 +vt 0.419806 0.916623 +vt 0.557124 0.916623 +vt 0.435064 0.916623 +vt 0.450321 0.916623 +vt 0.480836 0.916623 +vt 0.496094 0.916623 +vt 0.511351 0.916623 +vt 0.603611 0.962891 +vt 0.600511 0.943544 +vt 0.603611 0.943544 +vt 0.600511 0.962891 +vt 0.597411 0.943544 +vt 0.597411 0.962891 +vt 0.594310 0.943544 +vt 0.594310 0.962891 +vt 0.591210 0.943544 +vt 0.591210 0.962891 +vt 0.588109 0.943544 +vt 0.588109 0.962891 +vt 0.585009 0.943544 +vt 0.585009 0.962891 +vt 0.581908 0.943544 +vt 0.581908 0.962891 +vt 0.578808 0.943544 +vt 0.578808 0.962891 +vt 0.575707 0.943544 +vt 0.575707 0.962891 +vt 0.572607 0.943544 +vt 0.572607 0.962891 +vt 0.569507 0.943544 +vt 0.569507 0.962891 +vt 0.566406 0.943544 +vt 0.566406 0.962891 +vt 0.563306 0.943544 +vt 0.563306 0.962891 +vt 0.560205 0.943544 +vt 0.560205 0.962891 +vt 0.557105 0.943544 +vt 0.557105 0.962891 +vt 0.554004 0.943544 +vt 0.554004 0.962891 +vt 0.550904 0.943544 +vt 0.550904 0.962891 +vt 0.547804 0.943544 +vt 0.547804 0.962891 +vt 0.544703 0.943544 +vt 0.544703 0.962891 +vt 0.541603 0.943544 +vt 0.541603 0.962891 +vt 0.538502 0.943544 +vt 0.538502 0.962891 +vt 0.535402 0.943544 +vt 0.556733 0.950828 +vt 0.565662 0.958871 +vt 0.556733 0.966913 +vt 0.535402 0.962891 +vt 0.532301 0.943544 +vt 0.532301 0.962891 +vt 0.529201 0.943544 +vt 0.592763 0.964859 +vt 0.589052 0.965659 +vt 0.589052 0.965659 +vt 0.603611 0.987891 +vt 0.594310 0.968544 +vt 0.603611 0.968544 +vt 0.594310 0.987891 +vt 0.585009 0.968544 +vt 0.585009 0.987891 +vt 0.575707 0.968544 +vt 0.575707 0.987891 +vt 0.566406 0.968544 +vt 0.566406 0.987891 +vt 0.557105 0.968544 +vt 0.557105 0.987891 +vt 0.547804 0.968544 +vt 0.565662 0.958871 +vt 0.547804 0.968157 +vt 0.529945 0.958871 +vt 0.547804 0.987891 +vt 0.538502 0.968544 +vt 0.538502 0.987891 +vt 0.529201 0.968544 +vt 0.597637 0.952304 +vt 0.572381 0.952304 +vt 0.572381 0.965437 +vt 0.547804 0.968157 +vt 0.554118 0.962154 +vt 0.560431 0.965437 +vt 0.556733 0.958871 +vt 0.565662 0.958871 +vt 0.554118 0.955587 +vt 0.560431 0.952304 +vt 0.547804 0.949584 +vt 0.547804 0.954228 +vt 0.535176 0.952304 +vt 0.541490 0.955587 +vt 0.529945 0.958871 +vt 0.538874 0.958871 +vt 0.535176 0.965437 +vt 0.541490 0.962154 +vt 0.575707 0.987891 +vt 0.585009 0.983745 +vt 0.575707 0.983745 +vt 0.566406 0.987891 +vt 0.566406 0.983745 +vt 0.529201 0.987891 +vt 0.538502 0.983745 +vt 0.529201 0.983745 +vt 0.594310 0.987891 +vt 0.603611 0.983745 +vt 0.594310 0.983745 +vt 0.585009 0.987891 +vt 0.557105 0.987891 +vt 0.557105 0.983745 +vt 0.603611 0.987891 +vt 0.600511 0.968544 +vt 0.603611 0.968544 +vt 0.600511 0.987891 +vt 0.597411 0.968544 +vt 0.597411 0.987891 +vt 0.594310 0.968544 +vt 0.594310 0.987891 +vt 0.591210 0.968544 +vt 0.591210 0.987891 +vt 0.588109 0.968544 +vt 0.588109 0.987891 +vt 0.585009 0.968544 +vt 0.585009 0.987891 +vt 0.581908 0.968544 +vt 0.581908 0.987891 +vt 0.578808 0.968544 +vt 0.578808 0.987891 +vt 0.575707 0.968544 +vt 0.575707 0.987891 +vt 0.572607 0.968544 +vt 0.572607 0.987891 +vt 0.569507 0.968544 +vt 0.569507 0.987891 +vt 0.566406 0.968544 +vt 0.566406 0.987891 +vt 0.563306 0.968544 +vt 0.563306 0.987891 +vt 0.560205 0.968544 +vt 0.560205 0.987891 +vt 0.557105 0.968544 +vt 0.557105 0.987891 +vt 0.554004 0.968544 +vt 0.554004 0.987891 +vt 0.550904 0.968544 +vt 0.550904 0.987891 +vt 0.547804 0.968544 +vt 0.547804 0.987891 +vt 0.544703 0.968544 +vt 0.544703 0.987891 +vt 0.541603 0.968544 +vt 0.541603 0.987891 +vt 0.538502 0.968544 +vt 0.538502 0.987891 +vt 0.535402 0.968544 +vt 0.529945 0.958871 +vt 0.556733 0.950828 +vt 0.556733 0.966913 +vt 0.535402 0.987891 +vt 0.532301 0.968544 +vt 0.532301 0.987891 +vt 0.529201 0.968544 +vt 0.567759 0.961274 +vt 0.580387 0.967841 +vt 0.602259 0.956467 +vt 0.603611 0.962891 +vt 0.600511 0.943544 +vt 0.603611 0.943544 +vt 0.600511 0.962891 +vt 0.597411 0.943544 +vt 0.597411 0.962891 +vt 0.594310 0.943544 +vt 0.594310 0.962891 +vt 0.591210 0.943544 +vt 0.591210 0.962891 +vt 0.588109 0.943544 +vt 0.588109 0.962891 +vt 0.585009 0.943544 +vt 0.585009 0.962891 +vt 0.581908 0.943544 +vt 0.581908 0.962891 +vt 0.578808 0.943544 +vt 0.578808 0.962891 +vt 0.575707 0.943544 +vt 0.575707 0.962891 +vt 0.572607 0.943544 +vt 0.572607 0.962891 +vt 0.569507 0.943544 +vt 0.569507 0.962891 +vt 0.566406 0.943544 +vt 0.566406 0.962891 +vt 0.563306 0.943544 +vt 0.563306 0.962891 +vt 0.560205 0.943544 +vt 0.560205 0.962891 +vt 0.557105 0.943544 +vt 0.557105 0.962891 +vt 0.554004 0.943544 +vt 0.554004 0.962891 +vt 0.550904 0.943544 +vt 0.550904 0.962891 +vt 0.547804 0.943544 +vt 0.547804 0.962891 +vt 0.544703 0.943544 +vt 0.544703 0.962891 +vt 0.541603 0.943544 +vt 0.541603 0.962891 +vt 0.538502 0.943544 +vt 0.538502 0.962891 +vt 0.535402 0.943544 +vt 0.556733 0.950828 +vt 0.565662 0.958871 +vt 0.556733 0.966913 +vt 0.535402 0.962891 +vt 0.532301 0.943544 +vt 0.532301 0.962891 +vt 0.529201 0.943544 +vt 0.572381 0.952304 +vt 0.567759 0.961274 +vt 0.580387 0.967841 +vt 0.603611 0.987891 +vt 0.600511 0.968544 +vt 0.603611 0.968544 +vt 0.600511 0.987891 +vt 0.597411 0.968544 +vt 0.597411 0.987891 +vt 0.594310 0.968544 +vt 0.594310 0.987891 +vt 0.591210 0.968544 +vt 0.591210 0.987891 +vt 0.588109 0.968544 +vt 0.588109 0.987891 +vt 0.585009 0.968544 +vt 0.585009 0.987891 +vt 0.581908 0.968544 +vt 0.581908 0.987891 +vt 0.578808 0.968544 +vt 0.578808 0.987891 +vt 0.575707 0.968544 +vt 0.575707 0.987891 +vt 0.572607 0.968544 +vt 0.572607 0.987891 +vt 0.569507 0.968544 +vt 0.569507 0.987891 +vt 0.566406 0.968544 +vt 0.566406 0.987891 +vt 0.563306 0.968544 +vt 0.563306 0.987891 +vt 0.560205 0.968544 +vt 0.560205 0.987891 +vt 0.557105 0.968544 +vt 0.557105 0.987891 +vt 0.554004 0.968544 +vt 0.554004 0.987891 +vt 0.550904 0.968544 +vt 0.550904 0.987891 +vt 0.547804 0.968544 +vt 0.547804 0.987891 +vt 0.544703 0.968544 +vt 0.544703 0.987891 +vt 0.541603 0.968544 +vt 0.541603 0.987891 +vt 0.538502 0.968544 +vt 0.538502 0.987891 +vt 0.535402 0.968544 +vt 0.556733 0.950828 +vt 0.565662 0.958871 +vt 0.556733 0.966913 +vt 0.535402 0.987891 +vt 0.532301 0.968544 +vt 0.532301 0.987891 +vt 0.529201 0.968544 +vt 0.572381 0.952304 +vt 0.567759 0.961274 +vt 0.580387 0.967841 +vt 0.603611 0.987891 +vt 0.600511 0.968544 +vt 0.603611 0.968544 +vt 0.600511 0.987891 +vt 0.597411 0.968544 +vt 0.597411 0.987891 +vt 0.594310 0.968544 +vt 0.594310 0.987891 +vt 0.591210 0.968544 +vt 0.591210 0.987891 +vt 0.588109 0.968544 +vt 0.588109 0.987891 +vt 0.585009 0.968544 +vt 0.585009 0.987891 +vt 0.581908 0.968544 +vt 0.581908 0.987891 +vt 0.578808 0.968544 +vt 0.578808 0.987891 +vt 0.575707 0.968544 +vt 0.575707 0.987891 +vt 0.572607 0.968544 +vt 0.572607 0.987891 +vt 0.569507 0.968544 +vt 0.569507 0.987891 +vt 0.566406 0.968544 +vt 0.566406 0.987891 +vt 0.563306 0.968544 +vt 0.563306 0.987891 +vt 0.560205 0.968544 +vt 0.560205 0.987891 +vt 0.557105 0.968544 +vt 0.557105 0.987891 +vt 0.554004 0.968544 +vt 0.554004 0.987891 +vt 0.550904 0.968544 +vt 0.550904 0.987891 +vt 0.547804 0.968544 +vt 0.547804 0.987891 +vt 0.544703 0.968544 +vt 0.544703 0.987891 +vt 0.541603 0.968544 +vt 0.541603 0.987891 +vt 0.538502 0.968544 +vt 0.538502 0.987891 +vt 0.535402 0.968544 +vt 0.556733 0.950828 +vt 0.565662 0.958871 +vt 0.556733 0.966913 +vt 0.535402 0.987891 +vt 0.532301 0.968544 +vt 0.532301 0.987891 +vt 0.529201 0.968544 +vt 0.572381 0.952304 +vt 0.567759 0.961274 +vt 0.580387 0.967841 +vt 0.603611 0.962891 +vt 0.600511 0.943544 +vt 0.603611 0.943544 +vt 0.600511 0.962891 +vt 0.597411 0.943544 +vt 0.597411 0.962891 +vt 0.594310 0.943544 +vt 0.594310 0.962891 +vt 0.591210 0.943544 +vt 0.591210 0.962891 +vt 0.588109 0.943544 +vt 0.588109 0.962891 +vt 0.585009 0.943544 +vt 0.585009 0.962891 +vt 0.581908 0.943544 +vt 0.581908 0.962891 +vt 0.578808 0.943544 +vt 0.578808 0.962891 +vt 0.575707 0.943544 +vt 0.575707 0.962891 +vt 0.572607 0.943544 +vt 0.572607 0.962891 +vt 0.569507 0.943544 +vt 0.569507 0.962891 +vt 0.566406 0.943544 +vt 0.566406 0.962891 +vt 0.563306 0.943544 +vt 0.563306 0.962891 +vt 0.560205 0.943544 +vt 0.560205 0.962891 +vt 0.557105 0.943544 +vt 0.557105 0.962891 +vt 0.554004 0.943544 +vt 0.554004 0.962891 +vt 0.550904 0.943544 +vt 0.550904 0.962891 +vt 0.547804 0.943544 +vt 0.547804 0.962891 +vt 0.544703 0.943544 +vt 0.544703 0.962891 +vt 0.541603 0.943544 +vt 0.541603 0.962891 +vt 0.538502 0.943544 +vt 0.538502 0.962891 +vt 0.535402 0.943544 +vt 0.556733 0.950828 +vt 0.565662 0.958871 +vt 0.556733 0.966913 +vt 0.535402 0.962891 +vt 0.532301 0.943544 +vt 0.532301 0.962891 +vt 0.529201 0.943544 +vt 0.572381 0.952304 +vt 0.567759 0.961274 +vt 0.580387 0.967841 +vt 0.585009 0.965935 +vt 0.589631 0.967841 +vt 0.593938 0.966913 +vt 0.597637 0.965437 +vt 0.595844 0.963630 +vt 0.600475 0.963514 +vt 0.598073 0.962119 +vt 0.602259 0.961274 +vt 0.599366 0.960496 +vt 0.602867 0.958871 +vt 0.599778 0.958871 +vt 0.599366 0.957245 +vt 0.602259 0.956467 +vt 0.598073 0.955622 +vt 0.600475 0.954228 +vt 0.595844 0.954111 +vt 0.597637 0.952304 +vt 0.592763 0.952882 +vt 0.593938 0.950828 +vt 0.589052 0.952082 +vt 0.589631 0.949901 +vt 0.585009 0.951806 +vt 0.585009 0.949584 +vt 0.580387 0.949901 +vt 0.580965 0.952082 +vt 0.576080 0.950828 +vt 0.577254 0.952882 +vt 0.572381 0.952304 +vt 0.574174 0.954111 +vt 0.569543 0.954228 +vt 0.571944 0.955622 +vt 0.567759 0.956467 +vt 0.570651 0.957245 +vt 0.567150 0.958871 +vt 0.570240 0.958871 +vt 0.570651 0.960496 +vt 0.567759 0.961274 +vt 0.571944 0.962119 +vt 0.569543 0.963514 +vt 0.574174 0.963630 +vt 0.572381 0.965437 +vt 0.577254 0.964859 +vt 0.576079 0.966913 +vt 0.580965 0.965659 +vt 0.580387 0.967841 +vt 0.585009 0.968157 +vt 0.574174 0.963630 +vt 0.577254 0.964859 +vt 0.574174 0.954111 +vt 0.571944 0.955622 +vt 0.595844 0.954111 +vt 0.592763 0.964859 +vt 0.570651 0.957245 +vt 0.592763 0.952882 +vt 0.595844 0.963630 +vt 0.570240 0.958871 +vt 0.589052 0.952082 +vt 0.598073 0.962119 +vt 0.570651 0.960496 +vt 0.585009 0.951806 +vt 0.599366 0.960496 +vt 0.571944 0.962119 +vt 0.580965 0.952082 +vt 0.599778 0.958871 +vt 0.577254 0.952882 +vt 0.599366 0.957245 +vt 0.585009 0.965935 +vt 0.598073 0.955622 +vt 0.580965 0.965659 +vt 0.538502 0.987891 +vt 0.552426 0.967841 +vt 0.547804 0.968157 +vt 0.543181 0.967841 +vt 0.538874 0.966913 +vt 0.535176 0.965437 +vt 0.532338 0.963514 +vt 0.530554 0.961274 +vt 0.529945 0.958871 +vt 0.530554 0.956467 +vt 0.532338 0.954228 +vt 0.535176 0.952304 +vt 0.538874 0.950828 +vt 0.543181 0.949901 +vt 0.547804 0.949584 +vt 0.552426 0.949901 +vt 0.560431 0.952304 +vt 0.563269 0.954228 +vt 0.565054 0.956467 +vt 0.565054 0.961274 +vt 0.563269 0.963514 +vt 0.560431 0.965437 +vt 0.529201 0.962891 +vt 0.560431 0.965437 +vt 0.535176 0.965437 +vt 0.535176 0.952304 +vt 0.547804 0.949584 +vt 0.560431 0.952304 +vt 0.529201 0.987891 +vt 0.585009 0.968157 +vt 0.597637 0.965437 +vt 0.602867 0.958871 +vt 0.585009 0.949584 +vt 0.567150 0.958871 +vt 0.547804 0.963514 +vt 0.603611 0.987891 +vt 0.552426 0.967841 +vt 0.538874 0.966913 +vt 0.547804 0.968157 +vt 0.543181 0.967841 +vt 0.535176 0.965437 +vt 0.532338 0.963514 +vt 0.530554 0.961274 +vt 0.530554 0.956467 +vt 0.532338 0.954228 +vt 0.535176 0.952304 +vt 0.538874 0.950828 +vt 0.543181 0.949901 +vt 0.547804 0.949584 +vt 0.552426 0.949901 +vt 0.560431 0.952304 +vt 0.563269 0.954228 +vt 0.565054 0.956467 +vt 0.565662 0.958871 +vt 0.565054 0.961274 +vt 0.563269 0.963514 +vt 0.560431 0.965437 +vt 0.529201 0.987891 +vt 0.585009 0.968157 +vt 0.589631 0.967841 +vt 0.593938 0.966913 +vt 0.597637 0.965437 +vt 0.600475 0.963514 +vt 0.602259 0.961274 +vt 0.602867 0.958871 +vt 0.600475 0.954228 +vt 0.597637 0.952304 +vt 0.593938 0.950828 +vt 0.589631 0.949901 +vt 0.585009 0.949584 +vt 0.580387 0.949901 +vt 0.576080 0.950828 +vt 0.572381 0.952304 +vt 0.569543 0.954228 +vt 0.567759 0.956467 +vt 0.567150 0.958871 +vt 0.569543 0.963514 +vt 0.572381 0.965437 +vt 0.576079 0.966913 +vt 0.552426 0.967841 +vt 0.547804 0.968157 +vt 0.543181 0.967841 +vt 0.538874 0.966913 +vt 0.535176 0.965437 +vt 0.532338 0.963514 +vt 0.530554 0.961274 +vt 0.529945 0.958871 +vt 0.530554 0.956467 +vt 0.532338 0.954228 +vt 0.535176 0.952304 +vt 0.538874 0.950828 +vt 0.543181 0.949901 +vt 0.547804 0.949584 +vt 0.552426 0.949901 +vt 0.560431 0.952304 +vt 0.563269 0.954228 +vt 0.565054 0.956467 +vt 0.565054 0.961274 +vt 0.563269 0.963514 +vt 0.560431 0.965437 +vt 0.529201 0.962891 +vt 0.585009 0.968157 +vt 0.589631 0.967841 +vt 0.593938 0.966913 +vt 0.597637 0.965437 +vt 0.600475 0.963514 +vt 0.602259 0.961274 +vt 0.602867 0.958871 +vt 0.602259 0.956467 +vt 0.600475 0.954228 +vt 0.597637 0.952304 +vt 0.593938 0.950828 +vt 0.589631 0.949901 +vt 0.585009 0.949584 +vt 0.580387 0.949901 +vt 0.576080 0.950828 +vt 0.569543 0.954228 +vt 0.567759 0.956467 +vt 0.567150 0.958871 +vt 0.569543 0.963514 +vt 0.572381 0.965437 +vt 0.576079 0.966913 +vt 0.552426 0.967841 +vt 0.547804 0.968157 +vt 0.543181 0.967841 +vt 0.538874 0.966913 +vt 0.535176 0.965437 +vt 0.532338 0.963514 +vt 0.530554 0.961274 +vt 0.529945 0.958871 +vt 0.530554 0.956467 +vt 0.532338 0.954228 +vt 0.535176 0.952304 +vt 0.538874 0.950828 +vt 0.543181 0.949901 +vt 0.547804 0.949584 +vt 0.552426 0.949901 +vt 0.560431 0.952304 +vt 0.563269 0.954228 +vt 0.565054 0.956467 +vt 0.565054 0.961274 +vt 0.563269 0.963514 +vt 0.560431 0.965437 +vt 0.529201 0.987891 +vt 0.585009 0.968157 +vt 0.589631 0.967841 +vt 0.593938 0.966913 +vt 0.597637 0.965437 +vt 0.600475 0.963514 +vt 0.602259 0.961274 +vt 0.602867 0.958871 +vt 0.602259 0.956467 +vt 0.600475 0.954228 +vt 0.597637 0.952304 +vt 0.593938 0.950828 +vt 0.589631 0.949901 +vt 0.585009 0.949584 +vt 0.580387 0.949901 +vt 0.576080 0.950828 +vt 0.569543 0.954228 +vt 0.567759 0.956467 +vt 0.567150 0.958871 +vt 0.569543 0.963514 +vt 0.572381 0.965437 +vt 0.576079 0.966913 +vt 0.552426 0.967841 +vt 0.547804 0.968157 +vt 0.543181 0.967841 +vt 0.538874 0.966913 +vt 0.535176 0.965437 +vt 0.532338 0.963514 +vt 0.530554 0.961274 +vt 0.529945 0.958871 +vt 0.530554 0.956467 +vt 0.532338 0.954228 +vt 0.535176 0.952304 +vt 0.538874 0.950828 +vt 0.543181 0.949901 +vt 0.547804 0.949584 +vt 0.552426 0.949901 +vt 0.560431 0.952304 +vt 0.563269 0.954228 +vt 0.565054 0.956467 +vt 0.565054 0.961274 +vt 0.563269 0.963514 +vt 0.560431 0.965437 +vt 0.529201 0.987891 +vt 0.585009 0.968157 +vt 0.589631 0.967841 +vt 0.593938 0.966913 +vt 0.597637 0.965437 +vt 0.600475 0.963514 +vt 0.602259 0.961274 +vt 0.602867 0.958871 +vt 0.602259 0.956467 +vt 0.600475 0.954228 +vt 0.597637 0.952304 +vt 0.593938 0.950828 +vt 0.589631 0.949901 +vt 0.585009 0.949584 +vt 0.580387 0.949901 +vt 0.576080 0.950828 +vt 0.569543 0.954228 +vt 0.567759 0.956467 +vt 0.567150 0.958871 +vt 0.569543 0.963514 +vt 0.572381 0.965437 +vt 0.576079 0.966913 +vt 0.552426 0.967841 +vt 0.547804 0.968157 +vt 0.543181 0.967841 +vt 0.538874 0.966913 +vt 0.535176 0.965437 +vt 0.532338 0.963514 +vt 0.530554 0.961274 +vt 0.529945 0.958871 +vt 0.530554 0.956467 +vt 0.532338 0.954228 +vt 0.535176 0.952304 +vt 0.538874 0.950828 +vt 0.543181 0.949901 +vt 0.547804 0.949584 +vt 0.552426 0.949901 +vt 0.560431 0.952304 +vt 0.563269 0.954228 +vt 0.565054 0.956467 +vt 0.565054 0.961274 +vt 0.563269 0.963514 +vt 0.560431 0.965437 +vt 0.529201 0.962891 +vt 0.585009 0.968157 +vt 0.589631 0.967841 +vt 0.593938 0.966913 +vt 0.597637 0.965437 +vt 0.600475 0.963514 +vt 0.602259 0.961274 +vt 0.602867 0.958871 +vt 0.602259 0.956467 +vt 0.600475 0.954228 +vt 0.597637 0.952304 +vt 0.593938 0.950828 +vt 0.589631 0.949901 +vt 0.585009 0.949584 +vt 0.580387 0.949901 +vt 0.576080 0.950828 +vt 0.569543 0.954228 +vt 0.567759 0.956467 +vt 0.567150 0.958871 +vt 0.569543 0.963514 +vt 0.572381 0.965437 +vt 0.576079 0.966913 +vt 0.396481 0.835451 +vt 0.459833 0.866080 +vt 0.396481 0.866080 +vt 0.545719 0.522092 +vt 0.497611 0.526046 +vt 0.497611 0.526046 +vt 0.462657 0.901337 +vt 0.459833 0.868394 +vt 0.462657 0.868394 +vt 0.467752 0.901337 +vt 0.467752 0.868394 +vt 0.523185 0.868394 +vt 0.388562 0.868394 +vt 0.411544 0.779875 +vt 0.390770 0.774974 +vt 0.390770 0.774974 +vt 0.333129 0.853963 +vt 0.523185 0.853963 +vt 0.564336 0.894415 +vt 0.384270 0.884437 +vt 0.384270 0.894415 +vt 0.333129 0.850928 +vt 0.523185 0.850928 +vt 0.333129 0.845982 +vt 0.625000 0.895044 +vt 0.625000 0.635044 +vt 0.625000 0.505044 +vt 0.563252 0.666138 +vt 0.539872 0.667093 +vt 0.539872 0.666138 +vt 0.360235 0.662320 +vt 0.610235 0.662320 +vt 0.467262 0.676993 +vt 0.389035 0.657551 +vt 0.654591 0.681900 +vt 0.673945 0.683675 +vt 0.539872 0.686553 +vt 0.516493 0.691408 +vt 0.516493 0.686553 +vt 0.371179 0.824396 +vt 0.224012 0.900923 +vt 0.224012 0.824396 +vt 0.504838 0.868908 +vt 0.578829 0.907383 +vt 0.504838 0.907383 +vt 0.371179 0.900923 +vt 0.665512 0.900923 +vt 0.589593 0.872960 +vt 0.579928 0.818991 +vt 0.579928 0.818991 +vt 0.720909 0.823249 +vt 0.728444 0.813188 +vt 0.728444 0.813188 +vt 0.518346 0.900923 +vt 0.665512 0.900923 +vt 0.403568 0.865893 +vt 0.403568 0.865893 +vt 0.403568 0.865893 +vt 0.634882 0.842860 +vt 0.875000 0.895044 +vt 0.625000 0.895044 +vt 0.622404 0.844210 +vt 0.554773 0.879378 +vt 0.554773 0.844210 +vt 0.579328 0.848935 +vt 0.460045 0.910962 +vt 0.460045 0.848935 +vt 0.594184 0.857324 +vt 0.479639 0.916888 +vt 0.479639 0.857324 +vt 0.316829 0.865671 +vt 0.232387 0.909581 +vt 0.232387 0.865671 +vt 0.755432 0.845134 +vt 0.631372 0.909645 +vt 0.631372 0.845134 +vt 0.875000 0.780375 +vt 0.625000 0.886482 +vt 0.625000 0.780375 +vt 0.527665 0.671526 +vt 0.434557 0.728562 +vt 0.434557 0.671526 +vt 0.478702 0.654816 +vt 0.405181 0.693047 +vt 0.405181 0.654816 +vt 0.578288 0.668871 +vt 0.504989 0.711222 +vt 0.504989 0.668871 +vt 0.369079 0.703598 +vt 0.619079 0.688267 +vt 0.619079 0.703598 +vt 0.545910 0.694020 +vt 0.542943 0.694166 +vt 0.538713 0.651138 +vt 0.875000 0.886482 +vt 0.625000 0.894248 +vt 0.348638 0.674242 +vt 0.598638 0.670022 +vt 0.598638 0.674242 +vt 0.862696 0.694629 +vt 0.612696 0.694960 +vt 0.612696 0.694629 +vt 0.528140 0.639470 +vt 0.528140 0.682157 +vt 0.512942 0.688324 +vt 0.875000 0.765044 +vt 0.625000 0.875456 +vt 0.625000 0.765044 +vt 0.560300 0.670191 +vt 0.450392 0.729897 +vt 0.450392 0.670191 +vt 0.737196 0.697591 +vt 0.487196 0.717178 +vt 0.487196 0.697591 +vt 0.252961 0.688828 +vt 0.502961 0.675471 +vt 0.502961 0.688828 +vt 0.585624 0.678619 +vt 0.528884 0.716829 +vt 0.528884 0.678619 +vt 0.571863 0.680723 +vt 0.321863 0.681349 +vt 0.321863 0.680723 +vt 0.424216 0.682430 +vt 0.174216 0.683030 +vt 0.174216 0.682430 +vt 0.324323 0.676884 +vt 0.574323 0.676770 +vt 0.574323 0.676884 +vt 0.216049 0.682677 +vt 0.466049 0.663982 +vt 0.466049 0.682677 +vt 0.216049 0.652466 +vt 0.466049 0.652320 +vt 0.466049 0.652466 +vt 0.601392 0.694569 +vt 0.351392 0.694684 +vt 0.351392 0.694569 +vt 0.485420 0.656087 +vt 0.486296 0.699330 +vt 0.485205 0.699287 +vt 0.181598 0.675854 +vt 0.431598 0.674999 +vt 0.431598 0.675854 +vt 0.456422 0.681871 +vt 0.456979 0.681849 +vt 0.456531 0.703932 +vt 0.410451 0.676654 +vt 0.660451 0.676023 +vt 0.660451 0.676654 +vt 0.532490 0.669456 +vt 0.282490 0.715181 +vt 0.282490 0.669456 +vt 0.375000 0.844421 +vt 0.125000 0.852193 +vt 0.125000 0.844421 +vt 0.626000 0.660251 +vt 0.376000 0.701615 +vt 0.376000 0.660251 +vt 0.593750 0.793481 +vt 0.218750 0.793481 +vt 0.819522 0.793481 +vt 0.604291 0.804188 +vt 0.510661 0.804188 +vt 0.614339 0.751259 +vt 0.375000 0.765044 +vt 0.291667 0.895044 +vt 0.291667 0.765044 +vt 0.625695 0.758273 +vt 0.378906 0.801606 +vt 0.378906 0.758273 +vt 0.664062 0.761468 +vt 0.580729 0.765166 +vt 0.580729 0.761468 +vt 0.625000 0.767416 +vt 0.708333 0.765044 +vt 0.708333 0.767416 +vt 0.677121 0.760761 +vt 0.684017 0.765248 +vt 0.684017 0.797089 +vt 0.677083 0.809854 +vt 0.593750 0.821919 +vt 0.593750 0.809854 +vt 0.630208 0.781780 +vt 0.546875 0.785479 +vt 0.546875 0.781780 +vt 0.109638 0.753166 +vt 0.109638 0.753166 +vt 0.809234 0.800535 +vt 0.629601 0.752856 +vt 0.382812 0.796190 +vt 0.382812 0.752856 +vt 0.375000 0.635044 +vt 0.375000 0.678377 +vt 0.000000 0.505044 +vt 0.263889 0.765044 +vt 0.263889 0.895044 +vt 0.573022 0.757181 +vt 0.705624 0.783892 +vt 0.573022 0.783892 +vt 0.226495 0.821409 +vt 0.627179 0.805925 +vt 0.648505 0.794114 +vt 0.280702 0.812445 +vt 0.496130 0.766499 +vt 0.444553 0.738474 +vt 0.421875 0.760981 +vt 0.355469 0.819888 +vt 0.581240 0.819888 +vt 0.320312 0.775200 +vt 0.320312 0.775200 +vt 0.320312 0.775200 +vt 0.341584 0.755253 +vt 0.894527 0.754523 +vt 0.894527 0.754523 +vt 0.502440 0.838252 +vt 0.335149 0.925244 +vt 0.335149 0.838252 +vt 0.556540 0.854906 +vt 0.463146 0.903471 +vt 0.463146 0.854906 +vt 0.245835 0.915308 +vt 0.224012 0.839396 +vt 0.224012 0.915923 +vt 0.665512 0.915923 +vt 0.643647 0.915691 +vt 0.665512 0.915923 +vt 0.597620 0.901828 +vt 0.125000 0.765044 +vt 0.228633 0.780745 +vt 0.875000 0.895044 +vt 0.875000 0.765044 +vt 0.597620 0.901828 +vt 0.574804 0.873659 +vt 0.285018 0.848638 +vt 0.643647 0.915691 +vt 0.285018 0.848638 +vt 0.759668 0.871099 +vt 0.759668 0.871099 +vt 0.720909 0.823249 +vt 0.245835 0.915308 +vt 0.578887 0.824122 +vt 0.375000 0.765044 +vt 0.625000 0.765044 +vt 0.377872 0.915356 +vt 0.518346 0.915923 +vt 0.371179 0.915923 +vt 0.377872 0.900356 +vt 0.389892 0.832881 +vt 0.625000 0.895044 +vt 0.511639 0.915711 +vt 0.518346 0.915923 +vt 0.389892 0.847881 +vt 0.491200 0.874173 +vt 0.497503 0.902923 +vt 0.389892 0.847881 +vt 0.377872 0.915356 +vt 0.406788 0.779458 +vt 0.406788 0.779458 +vt 0.497503 0.902923 +vt 0.578887 0.824122 +vt 0.511639 0.915711 +vt 0.245835 0.900308 +vt 0.643647 0.900691 +vt 0.150429 0.671343 +vt 0.150429 0.671343 +vt 0.150429 0.671343 +vt 0.150429 0.671343 +vt 0.150429 0.671343 +vt 0.150429 0.671343 +vt 0.221470 0.868452 +vt 0.221470 0.868452 +vt 0.221470 0.868452 +vt 0.251000 0.856936 +vt 0.251000 0.856936 +vt 0.251000 0.856936 +vt 0.361735 0.900442 +vt 0.361735 0.900442 +vt 0.361735 0.900442 +vt 0.511639 0.900711 +vt 0.518346 0.900923 +vt 0.236235 0.851817 +vt 0.236235 0.851817 +vt 0.236235 0.851817 +vt 0.164872 0.847978 +vt 0.164872 0.847978 +vt 0.164872 0.847978 +vt 0.209167 0.860775 +vt 0.209167 0.860775 +vt 0.209167 0.860775 +vt 0.150429 0.671343 +vt 0.150429 0.671343 +vt 0.150429 0.671343 +vt 0.150429 0.686343 +vt 0.150429 0.686343 +vt 0.150429 0.686343 +vt 0.605366 0.625582 +vt 0.392556 0.635044 +vt 0.410506 0.621173 +vt 0.389781 0.625623 +vt 0.375000 0.618794 +vt 0.390712 0.598254 +vt 0.388734 0.524179 +vt 0.375000 0.505044 +vt 0.382120 0.629248 +vt 0.556923 0.509307 +vt 0.597602 0.514746 +vt 0.507545 0.505044 +vt 0.545076 0.505044 +vt 0.484510 0.505044 +vt 0.391870 0.838038 +vt 0.389721 0.863715 +vt 0.343364 0.852237 +vt 0.390712 0.598254 +vt 0.597602 0.514746 +vt 0.545719 0.522092 +vt 0.410506 0.621173 +vt 0.605366 0.625582 +vt 0.388734 0.524179 +vt 0.556923 0.509307 +vt 0.389781 0.625623 +vt 0.603447 0.775430 +vt 0.594972 0.884555 +vt 0.392556 0.765044 +vt 0.625000 0.765044 +vt 0.375000 0.781294 +vt 0.382120 0.770840 +vt 0.390113 0.874091 +vt 0.392214 0.803595 +vt 0.558295 0.890122 +vt 0.545076 0.895044 +vt 0.498333 0.872319 +vt 0.507545 0.895044 +vt 0.484510 0.895044 +vt 0.548567 0.877213 +vt 0.375000 0.895044 +vt 0.512111 0.852142 +vt 0.478620 0.866125 +vt 0.467060 0.863579 +vt 0.411544 0.779875 +vt 0.498333 0.872319 +vt 0.594972 0.884555 +vt 0.392214 0.803595 +vt 0.548567 0.877213 +vt 0.390113 0.874091 +vt 0.603447 0.775430 +vt 0.558295 0.890122 +vt 0.464672 0.866316 +vt 0.333129 0.917808 +vt 0.333129 0.917808 +vt 0.333129 0.917808 +vt 0.243618 0.881248 +vt 0.243618 0.881248 +vt 0.243618 0.881248 +vt 0.333129 0.917808 +vt 0.333129 0.917808 +vt 0.333129 0.917808 +vt 0.333129 0.917808 +vt 0.333129 0.917808 +vt 0.333129 0.917808 +vt 0.333129 0.917808 +vt 0.333129 0.917808 +vt 0.333129 0.917808 +vt 0.333129 0.917808 +vt 0.333129 0.917808 +vt 0.342454 0.866584 +vt 0.333129 0.868394 +vt 0.333129 0.917808 +vt 0.333129 0.917808 +vt 0.333129 0.917808 +vt 0.333129 0.917808 +vt 0.333129 0.917808 +vt 0.333129 0.917808 +vt 0.333129 0.917808 +vt 0.333129 0.917808 +vt 0.333129 0.917808 +vt 0.333129 0.917808 +vt 0.333129 0.917808 +vt 0.333129 0.917808 +vt 0.333129 0.917808 +vt 0.333129 0.917808 +vt 0.333129 0.917808 +vt 0.539872 0.679250 +vt 0.516493 0.680206 +vt 0.516493 0.679250 +vt 0.718065 0.674451 +vt 0.298249 0.674451 +vt 0.167739 0.674451 +vt 0.563252 0.659791 +vt 0.539872 0.659791 +vt 0.563252 0.654936 +vt 0.539872 0.654936 +vt 0.666833 0.705488 +vt 0.666833 0.669427 +vt 0.666833 0.663889 +vt 0.539872 0.680206 +vt 0.440044 0.779617 +vt 0.437493 0.837443 +vt 0.437493 0.837443 +vt 0.422729 0.709719 +vt 0.360235 0.647539 +vt 0.425280 0.651893 +vt 0.545228 0.642180 +vt 0.610235 0.705405 +vt 0.547899 0.699410 +vt 0.489409 0.751566 +vt 0.570046 0.808982 +vt 0.488685 0.809183 +vt 0.481303 0.837335 +vt 0.481303 0.837335 +vt 0.481303 0.837335 +vt 0.559993 0.779904 +vt 0.482026 0.779717 +vt 0.482026 0.779717 +vt 0.562664 0.837133 +vt 0.559993 0.779904 +vt 0.440044 0.779617 +vt 0.481303 0.837335 +vt 0.562664 0.837133 +vt 0.432662 0.733550 +vt 0.473921 0.791269 +vt 0.430111 0.791377 +vt 0.437493 0.837443 +vt 0.437493 0.837443 +vt 0.415872 0.665231 +vt 0.415872 0.665231 +vt 0.415872 0.665231 +vt 0.459833 0.835451 +vt 0.459833 0.901337 +vt 0.564336 0.884437 +vt 0.523185 0.845982 +vt 0.563252 0.667093 +vt 0.610235 0.657539 +vt 0.545228 0.662180 +vt 0.610235 0.647320 +vt 0.467262 0.661993 +vt 0.425280 0.661893 +vt 0.360235 0.647320 +vt 0.360235 0.657539 +vt 0.408389 0.659326 +vt 0.539872 0.691408 +vt 0.578829 0.868908 +vt 0.589593 0.872960 +vt 0.403568 0.865893 +vt 0.622404 0.879378 +vt 0.579328 0.910962 +vt 0.594184 0.916888 +vt 0.316829 0.909581 +vt 0.755432 0.909645 +vt 0.527665 0.728562 +vt 0.478702 0.693047 +vt 0.578288 0.711222 +vt 0.369079 0.688267 +vt 0.468469 0.694166 +vt 0.468469 0.651138 +vt 0.551217 0.656212 +vt 0.551217 0.691333 +vt 0.546274 0.693903 +vt 0.875000 0.894248 +vt 0.348638 0.670022 +vt 0.862696 0.694960 +vt 0.427566 0.688324 +vt 0.427566 0.636026 +vt 0.518084 0.636026 +vt 0.521690 0.636204 +vt 0.522133 0.636346 +vt 0.875000 0.875456 +vt 0.560300 0.729897 +vt 0.737196 0.717178 +vt 0.252961 0.675471 +vt 0.585624 0.716829 +vt 0.571863 0.681349 +vt 0.424216 0.683030 +vt 0.324323 0.676770 +vt 0.216049 0.663982 +vt 0.216049 0.652320 +vt 0.601392 0.694684 +vt 0.485158 0.663146 +vt 0.485415 0.656142 +vt 0.485157 0.699244 +vt 0.485525 0.655862 +vt 0.489162 0.650857 +vt 0.578824 0.650857 +vt 0.578824 0.692226 +vt 0.564711 0.699565 +vt 0.485156 0.683510 +vt 0.485156 0.680598 +vt 0.485157 0.699007 +vt 0.485156 0.663466 +vt 0.492385 0.699565 +vt 0.181598 0.674999 +vt 0.456397 0.700163 +vt 0.456397 0.691415 +vt 0.456397 0.682013 +vt 0.456397 0.689928 +vt 0.456529 0.703904 +vt 0.456398 0.700327 +vt 0.456397 0.681893 +vt 0.458443 0.706603 +vt 0.456585 0.704047 +vt 0.504231 0.685476 +vt 0.504231 0.706603 +vt 0.497023 0.681729 +vt 0.460088 0.681729 +vt 0.410451 0.676023 +vt 0.532490 0.715181 +vt 0.375000 0.852193 +vt 0.626000 0.701615 +vt 0.218750 0.793481 +vt 0.510661 0.750275 +vt 0.613008 0.750275 +vt 0.614339 0.797650 +vt 0.613913 0.799184 +vt 0.375000 0.895044 +vt 0.625695 0.801606 +vt 0.664062 0.765166 +vt 0.625000 0.765044 +vt 0.612858 0.797764 +vt 0.612858 0.760761 +vt 0.683725 0.764195 +vt 0.683103 0.797764 +vt 0.677083 0.821919 +vt 0.630208 0.785479 +vt 0.779674 0.760019 +vt 0.781057 0.757208 +vt 0.109638 0.753166 +vt 0.629601 0.796190 +vt 0.375000 0.505044 +vt 0.236111 0.765044 +vt 0.705624 0.757181 +vt 0.380237 0.736263 +vt 0.226495 0.821409 +vt 0.651589 0.807504 +vt 0.280702 0.812445 +vt 0.280702 0.812445 +vt 0.272135 0.819888 +vt 0.320312 0.775200 +vt 0.320312 0.775200 +vt 0.320312 0.775200 +vt 0.320312 0.775200 +vt 0.894527 0.754523 +vt 0.894527 0.754523 +vt 0.894527 0.754523 +vt 0.894527 0.754523 +vt 0.502440 0.925244 +vt 0.556540 0.903471 +vt 0.245835 0.900308 +vt 0.285018 0.833638 +vt 0.579240 0.867737 +vt 0.597620 0.886828 +vt 0.228633 0.780745 +vt 0.643647 0.900691 +vt 0.491813 0.871153 +vt 0.497503 0.887923 +vt 0.389892 0.832881 +vt 0.377872 0.900356 +vt 0.150429 0.671343 +vt 0.150429 0.671343 +vt 0.221470 0.868452 +vt 0.361735 0.900442 +vt 0.361735 0.900442 +vt 0.236235 0.851817 +vt 0.209167 0.860775 +vt 0.209167 0.860775 +vt 0.150429 0.671343 +vt 0.150429 0.671343 +vt 0.378552 0.866324 +vt 0.341437 0.845898 +vt 0.335206 0.844421 +vt 0.337857 0.839061 +vt 0.391890 0.866446 +vt 0.464894 0.838291 +vt 0.518073 0.839407 +vt 0.514496 0.845523 +vt 0.520786 0.844241 +vt 0.512974 0.866402 +vt 0.333129 0.917808 +vt 0.243618 0.881248 +vt 0.333129 0.917808 +vt 0.333129 0.917808 +vt 0.333129 0.917808 +vt 0.333129 0.917808 +vt 0.333129 0.917808 +vt 0.333129 0.917808 +vt 0.587555 0.674451 +vt 0.666833 0.699950 +vt 0.422729 0.699719 +vt 0.360235 0.705405 +vt 0.360235 0.637539 +vt 0.545228 0.652180 +vt 0.610235 0.647539 +vt 0.610235 0.715405 +vt 0.567375 0.751753 +vt 0.474644 0.733651 +vt 0.415872 0.665231 +vt 0.415872 0.665231 +vt 0.415872 0.665231 +vt 0.415872 0.665231 +vt 0.415872 0.665231 +vt 0.415872 0.665231 +vt 0.617682 0.716042 +vt 0.616961 0.710037 +vt 0.617682 0.710037 +vt 0.616961 0.716042 +vt 0.616239 0.710037 +vt 0.616239 0.716042 +vt 0.615517 0.710037 +vt 0.615517 0.716042 +vt 0.614795 0.710037 +vt 0.614795 0.716042 +vt 0.614073 0.710037 +vt 0.614073 0.716042 +vt 0.613352 0.710037 +vt 0.613352 0.716042 +vt 0.612630 0.710037 +vt 0.612630 0.716042 +vt 0.611908 0.710037 +vt 0.611908 0.716042 +vt 0.611186 0.710037 +vt 0.611186 0.716042 +vt 0.610464 0.710037 +vt 0.610464 0.716042 +vt 0.609743 0.710037 +vt 0.609743 0.716042 +vt 0.609021 0.710037 +vt 0.609021 0.716042 +vt 0.608299 0.710037 +vt 0.608299 0.716042 +vt 0.607577 0.710037 +vt 0.607577 0.716042 +vt 0.606855 0.710037 +vt 0.606855 0.716042 +vt 0.606134 0.710037 +vt 0.606134 0.716042 +vt 0.605412 0.710037 +vt 0.605412 0.716042 +vt 0.604690 0.710037 +vt 0.604690 0.716042 +vt 0.603968 0.710037 +vt 0.603968 0.716042 +vt 0.603247 0.710037 +vt 0.603247 0.716042 +vt 0.602525 0.710037 +vt 0.602525 0.716042 +vt 0.601803 0.710037 +vt 0.601803 0.716042 +vt 0.601081 0.710037 +vt 0.601081 0.716042 +vt 0.600359 0.710037 +vt 0.605945 0.708437 +vt 0.606419 0.708136 +vt 0.606419 0.708136 +vt 0.607856 0.708635 +vt 0.607166 0.709072 +vt 0.608368 0.708137 +vt 0.606989 0.707421 +vt 0.606772 0.707793 +vt 0.607062 0.707034 +vt 0.608683 0.707596 +vt 0.608683 0.706471 +vt 0.608790 0.707034 +vt 0.606989 0.706647 +vt 0.608368 0.705931 +vt 0.606419 0.705932 +vt 0.606772 0.706274 +vt 0.605945 0.705631 +vt 0.607856 0.705432 +vt 0.606326 0.704637 +vt 0.607166 0.704996 +vt 0.605366 0.705384 +vt 0.605368 0.704371 +vt 0.603991 0.705088 +vt 0.604707 0.705201 +vt 0.603247 0.705050 +vt 0.604328 0.704207 +vt 0.602165 0.704207 +vt 0.603247 0.704151 +vt 0.602502 0.705088 +vt 0.601125 0.704371 +vt 0.601127 0.705384 +vt 0.601786 0.705201 +vt 0.600548 0.705631 +vt 0.600167 0.704637 +vt 0.598637 0.705432 +vt 0.599327 0.704996 +vt 0.600074 0.705932 +vt 0.598125 0.705931 +vt 0.599504 0.706647 +vt 0.599721 0.706274 +vt 0.599431 0.707034 +vt 0.597810 0.706471 +vt 0.597810 0.707596 +vt 0.597703 0.707034 +vt 0.599504 0.707421 +vt 0.598125 0.708137 +vt 0.599721 0.707793 +vt 0.598637 0.708635 +vt 0.600074 0.708136 +vt 0.599327 0.709072 +vt 0.602502 0.708980 +vt 0.603247 0.709018 +vt 0.603247 0.709018 +vt 0.601127 0.705384 +vt 0.606772 0.707793 +vt 0.600548 0.705631 +vt 0.606989 0.707421 +vt 0.600074 0.705932 +vt 0.607062 0.707034 +vt 0.599721 0.706274 +vt 0.606989 0.706647 +vt 0.599504 0.706647 +vt 0.606772 0.706274 +vt 0.599431 0.707034 +vt 0.606419 0.705932 +vt 0.599504 0.707421 +vt 0.605945 0.705631 +vt 0.599721 0.707793 +vt 0.605366 0.705384 +vt 0.600074 0.708136 +vt 0.604707 0.705201 +vt 0.603991 0.708980 +vt 0.603991 0.708980 +vt 0.600548 0.708437 +vt 0.600548 0.708437 +vt 0.603991 0.705088 +vt 0.604707 0.708867 +vt 0.604707 0.708867 +vt 0.601127 0.708683 +vt 0.601127 0.708683 +vt 0.603247 0.705050 +vt 0.605366 0.708683 +vt 0.605366 0.708683 +vt 0.601786 0.708867 +vt 0.601786 0.708867 +vt 0.602502 0.705088 +vt 0.605945 0.708437 +vt 0.602502 0.708980 +vt 0.601786 0.705201 +vt 0.617932 0.708123 +vt 0.618715 0.709072 +vt 0.619404 0.708635 +vt 0.619917 0.708137 +vt 0.618280 0.707784 +vt 0.618495 0.707416 +vt 0.620232 0.707596 +vt 0.620339 0.707034 +vt 0.618568 0.707034 +vt 0.618495 0.706651 +vt 0.620232 0.706471 +vt 0.619917 0.705931 +vt 0.618280 0.706283 +vt 0.619404 0.705432 +vt 0.617932 0.705944 +vt 0.618715 0.704996 +vt 0.617463 0.705647 +vt 0.616891 0.705403 +vt 0.617875 0.704637 +vt 0.616917 0.704371 +vt 0.616239 0.705221 +vt 0.615531 0.705110 +vt 0.615877 0.704207 +vt 0.614795 0.704151 +vt 0.614795 0.705072 +vt 0.614059 0.705110 +vt 0.613714 0.704207 +vt 0.612674 0.704371 +vt 0.613352 0.705221 +vt 0.612699 0.705403 +vt 0.611715 0.704637 +vt 0.610875 0.704996 +vt 0.612128 0.705647 +vt 0.611659 0.705944 +vt 0.610186 0.705432 +vt 0.609674 0.705931 +vt 0.611310 0.706283 +vt 0.611095 0.706651 +vt 0.609358 0.706471 +vt 0.609252 0.707034 +vt 0.611023 0.707034 +vt 0.611095 0.707416 +vt 0.609358 0.707596 +vt 0.609674 0.708137 +vt 0.611310 0.707784 +vt 0.611659 0.708123 +vt 0.610186 0.708635 +vt 0.610875 0.709072 +vt 0.612128 0.708421 +vt 0.618610 0.646303 +vt 0.584515 0.664033 +vt 0.584515 0.646303 +vt 0.618610 0.664033 +vt 0.584515 0.681763 +vt 0.618610 0.681763 +vt 0.584515 0.699492 +vt 0.618610 0.699492 +vt 0.584515 0.717221 +vt 0.550420 0.699492 +vt 0.550420 0.681763 +vt 0.617687 0.710037 +vt 0.617687 0.716042 +vt 0.600355 0.716042 +vt 0.600355 0.710037 +vt 0.603247 0.709074 +vt 0.604027 0.709074 +vt 0.604872 0.709074 +vt 0.607161 0.709074 +vt 0.605868 0.709074 +vt 0.600625 0.709074 +vt 0.599332 0.709074 +vt 0.601621 0.709074 +vt 0.602466 0.709074 +vt 0.615531 0.708958 +vt 0.614795 0.709074 +vt 0.615576 0.709074 +vt 0.616239 0.708846 +vt 0.616420 0.709074 +vt 0.616891 0.708665 +vt 0.617417 0.709074 +vt 0.617463 0.708421 +vt 0.610880 0.709074 +vt 0.613170 0.709074 +vt 0.612699 0.708665 +vt 0.612173 0.709074 +vt 0.614015 0.709074 +vt 0.613352 0.708846 +vt 0.614059 0.708958 +vt 0.628899 0.693320 +vt 0.652705 0.681763 +vt 0.643086 0.693320 +vt 0.643086 0.687935 +vt 0.600359 0.716042 +vt 0.618610 0.717221 +vt 0.614795 0.708996 +vt 0.618710 0.709074 +vt 0.640743 0.693320 +vt 0.652705 0.699492 +vt 0.635992 0.687935 +vt 0.640743 0.687935 +vt 0.638937 0.687935 +vt 0.637406 0.687935 +vt 0.638937 0.693320 +vt 0.635992 0.693320 +vt 0.637406 0.693320 +vt 0.634578 0.687935 +vt 0.633047 0.687935 +vt 0.631242 0.693320 +vt 0.633047 0.693320 +vt 0.634578 0.693320 +vt 0.631242 0.687935 +vt 0.628899 0.687935 +vt 0.543609 0.932938 +vt 0.565766 0.944459 +vt 0.543609 0.944459 +vt 0.543609 0.955981 +vt 0.565766 0.955981 +vt 0.543609 0.967503 +vt 0.565766 0.967503 +vt 0.543609 0.979025 +vt 0.521451 0.967503 +vt 0.521451 0.955981 +vt 0.587924 0.955981 +vt 0.558011 0.932938 +vt 0.565766 0.944459 +vt 0.558011 0.944459 +vt 0.558011 0.955981 +vt 0.565766 0.955981 +vt 0.558011 0.967503 +vt 0.542329 0.614065 +vt 0.534574 0.625587 +vt 0.534574 0.614065 +vt 0.543609 0.955981 +vt 0.521451 0.967503 +vt 0.521451 0.955981 +vt 0.587924 0.955981 +vt 0.565766 0.967503 +vt 0.543609 0.979025 +vt 0.543609 0.967503 +vt 0.543609 0.944459 +vt 0.543609 0.932938 +vt 0.543609 0.932938 +vt 0.565766 0.944459 +vt 0.543609 0.944459 +vt 0.565766 0.955981 +vt 0.543609 0.955981 +vt 0.543609 0.967503 +vt 0.565766 0.967503 +vt 0.543609 0.979025 +vt 0.521451 0.967503 +vt 0.521451 0.955981 +vt 0.587924 0.955981 +vt 0.543609 0.932938 +vt 0.565766 0.944459 +vt 0.543609 0.944459 +vt 0.543609 0.955981 +vt 0.565766 0.955981 +vt 0.543609 0.967503 +vt 0.565766 0.967503 +vt 0.543609 0.979025 +vt 0.521451 0.967503 +vt 0.521451 0.955981 +vt 0.587924 0.955981 +vt 0.565766 0.932938 +vt 0.565766 0.979025 +vt 0.587924 0.967503 +vt 0.565766 0.932938 +vt 0.542329 0.625587 +vt 0.587924 0.967503 +vt 0.558011 0.979025 +vt 0.565766 0.932938 +vt 0.565766 0.979025 +vt 0.587924 0.967503 +vt 0.565766 0.932938 +vt 0.565766 0.979025 +vt 0.587924 0.967503 +vn -0.0003 0.0000 -1.0000 +vn 0.0000 0.0000 -1.0000 +vn -0.0004 0.0000 -1.0000 +vn 0.0027 -1.0000 0.0019 +vn 0.0042 -1.0000 0.0030 +vn 0.0000 -1.0000 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0006 0.0004 1.0000 +vn 0.0011 0.0045 1.0000 +vn 0.0011 0.0049 1.0000 +vn 0.0008 1.0000 0.0000 +vn -0.7071 0.7071 0.0000 +vn -0.0049 0.0049 1.0000 +vn -0.8655 -0.5009 0.0000 +vn -0.0005 0.0000 -1.0000 +vn -0.0008 -1.0000 0.0005 +vn -0.0000 -0.5727 0.8197 +vn -0.0004 -0.8551 0.5184 +vn -0.7701 0.0000 -0.6379 +vn 0.7071 -0.7071 -0.0000 +vn 0.0000 1.0000 0.0000 +vn -0.7071 -0.7071 -0.0000 +vn 1.0000 0.0000 -0.0000 +vn 0.0000 -0.5729 0.8196 +vn -0.0004 -0.8552 0.5183 +vn -0.7708 -0.0000 -0.6371 +vn -0.0000 -0.5732 0.8194 +vn -0.7703 -0.0000 -0.6377 +vn -0.0000 -0.5727 0.8198 +vn -0.0004 -0.8551 0.5185 +vn -0.7700 0.0000 -0.6381 +vn -0.8655 -0.5008 0.0000 +vn -0.0004 -0.8553 0.5182 +vn 0.0070 -1.0000 0.0049 +vn 0.0005 0.0000 1.0000 +vn -0.0008 -1.0000 0.0000 +vn -0.0008 -1.0000 0.0003 +vn 0.9961 0.0882 0.0000 +vn 0.9865 -0.1635 -0.0000 +vn 0.8737 -0.4865 -0.0000 +vn 0.6256 -0.7802 -0.0000 +vn 0.2322 -0.9727 -0.0000 +vn -0.2322 -0.9727 -0.0000 +vn -0.6256 -0.7802 -0.0000 +vn -0.8737 -0.4865 -0.0000 +vn -0.9865 -0.1635 -0.0000 +vn -0.9961 0.0882 0.0000 +vn 0.1305 0.9914 0.0000 +vn 0.3827 0.9239 0.0000 +vn 0.6088 0.7934 0.0000 +vn 0.7933 0.6088 0.0000 +vn 0.9239 0.3827 0.0000 +vn 0.9914 0.1305 0.0000 +vn 0.9914 -0.1305 -0.0000 +vn 0.9239 -0.3827 -0.0000 +vn 0.7934 -0.6088 -0.0000 +vn 0.6088 -0.7934 -0.0000 +vn 0.3827 -0.9239 -0.0000 +vn 0.1305 -0.9914 -0.0000 +vn -0.1305 -0.9914 -0.0000 +vn -0.3827 -0.9239 -0.0000 +vn -0.6088 -0.7934 -0.0000 +vn -0.7934 -0.6088 -0.0000 +vn -0.7933 -0.6088 -0.0000 +vn -0.9239 -0.3827 -0.0000 +vn -0.9914 -0.1305 -0.0000 +vn -0.9914 0.1305 0.0000 +vn -0.9239 0.3827 0.0000 +vn -0.7934 0.6088 0.0000 +vn -0.6088 0.7934 0.0000 +vn -0.3827 0.9239 0.0000 +vn -0.1305 0.9914 0.0000 +vn 0.3514 -0.8484 -0.3959 +vn 0.8484 -0.3514 -0.3959 +vn 0.8484 0.3514 -0.3959 +vn 0.3514 0.8484 -0.3959 +vn -0.3514 0.8484 -0.3959 +vn -0.8484 0.3514 -0.3959 +vn -0.8484 -0.3514 -0.3959 +vn -0.3514 -0.8484 -0.3959 +vn 0.7934 0.6088 0.0000 +vn -0.6088 -0.7933 -0.0000 +vn 0.6088 0.7933 0.0000 +vn 0.6088 -0.7933 -0.0000 +vn 0.5314 0.1600 -0.8319 +vn 0.8527 -0.0000 -0.5224 +vn 0.5314 -0.1600 -0.8319 +vn -0.0001 0.0000 -1.0000 +vn 0.0001 0.0000 -1.0000 +vn 0.0001 0.0000 1.0000 +vn -0.0001 0.0000 1.0000 +vn 0.0000 -0.3784 -0.9256 +vn 0.0000 -0.0253 0.9997 +vn 0.0000 0.1422 -0.9898 +vn 0.0000 -0.9644 0.2643 +vn 0.0000 -0.9848 0.1739 +vn 0.0000 0.4185 0.9082 +vn 0.0000 0.9237 0.3831 +vn 0.0000 -0.8319 0.5549 +vn 0.0000 0.9997 0.0264 +vn 0.0000 -0.9997 -0.0249 +vn 0.0000 -0.9236 -0.3834 +vn -0.0001 -0.6431 -0.7658 +vn 0.0000 -0.6432 -0.7657 +vn 0.0000 -0.0909 0.9959 +vn 0.0000 0.9535 0.3014 +vn 0.0000 -0.8690 -0.4947 +vn 0.0000 0.9932 0.1168 +vn 0.0001 0.8691 0.4946 +vn 0.0002 0.8693 0.4944 +vn 0.0002 0.8693 0.4942 +vn 0.0000 0.9988 0.0480 +vn 0.0000 0.3739 -0.9275 +vn 0.0000 -0.8192 0.5735 +vn 0.0000 -0.5018 0.8650 +vn 0.0000 -0.3738 -0.9275 +vn 0.0000 0.9764 0.2159 +vn 0.0000 -0.5664 0.8241 +vn 0.0000 0.2951 0.9555 +vn 0.0000 -0.9028 -0.4301 +vn 0.0000 -0.6377 0.7703 +vn 0.0000 -0.6645 -0.7473 +vn 0.0000 -0.2686 0.9633 +vn 0.0000 0.2609 0.9654 +vn 0.0000 -0.9044 -0.4266 +vn 0.0000 0.7413 0.6712 +vn 0.0000 -0.9994 -0.0337 +vn 0.0000 -0.9729 -0.2312 +vn 0.0000 0.9943 0.1065 +vn 0.0000 -0.9039 0.4277 +vn 0.0000 0.9182 -0.3961 +vn 0.0000 -0.4423 0.8969 +vn 0.0000 0.4320 0.9019 +vn 0.0000 0.4842 -0.8749 +vn 0.0000 0.4261 0.9047 +vn 0.0000 0.1909 -0.9816 +vn 0.0000 0.9995 0.0318 +vn 0.0000 0.9918 -0.1277 +vn 0.0000 0.6918 0.7220 +vn 0.0000 0.8646 -0.5025 +vn 1.0000 -0.0010 0.0007 +vn 1.0000 -0.0019 0.0017 +vn 0.0000 -0.6430 -0.7658 +vn 0.0000 -0.8693 -0.4942 +vn 0.5484 0.0760 -0.8328 +vn 0.7536 0.6071 0.2520 +vn 0.7698 -0.6340 -0.0745 +vn 0.7607 -0.6189 -0.1957 +vn 0.7402 -0.5843 -0.3326 +vn 0.6787 0.4737 0.5613 +vn 0.6263 0.5087 0.5907 +vn 0.9730 0.1947 0.1237 +vn -0.7982 -0.5982 -0.0703 +vn -0.7898 -0.5848 -0.1849 +vn -0.7709 -0.5538 -0.3148 +vn -0.5646 0.5759 0.5913 +vn -0.3460 0.6078 0.7148 +vn -0.8868 0.3899 0.2481 +vn -0.7699 0.5824 0.2610 +vn -0.3897 0.8505 0.3533 +vn -0.7751 0.5764 0.2588 +vn -0.5846 0.0737 -0.8079 +vn -0.9379 0.3346 -0.0917 +vn -0.9395 0.3373 -0.0596 +vn -0.8718 -0.2050 -0.4449 +vn -0.8298 0.0141 -0.5579 +vn -0.9258 0.3144 -0.2097 +vn -0.9344 -0.3289 -0.1364 +vn -0.9407 -0.3392 -0.0089 +vn -0.8657 0.1894 0.4633 +vn -0.8358 -0.0781 0.5434 +vn 0.9296 0.3628 -0.0641 +vn 0.9278 0.3599 -0.0986 +vn 0.8138 -0.0826 0.5752 +vn 0.8467 0.2014 0.4926 +vn 0.9310 -0.3649 -0.0096 +vn 0.9238 -0.3536 -0.1467 +vn 0.9140 0.3374 -0.2251 +vn 0.8072 0.0149 -0.5901 +vn 0.8534 -0.2182 -0.4735 +vn 0.8534 -0.2181 -0.4735 +vn 0.0001 1.0000 0.0000 +vn 0.0002 1.0000 0.0000 +vn -0.0000 0.9998 0.0183 +vn -0.0001 0.9998 0.0183 +vn 1.0000 0.0015 0.0004 +vn 1.0000 -0.0020 0.0019 +vn 1.0000 -0.0005 0.0032 +vn 1.0000 -0.0000 0.0017 +vn -0.0000 -1.0000 0.0007 +vn 0.0000 0.0729 0.9973 +vn 0.0033 0.0732 -0.9973 +vn 0.0008 0.0725 -0.9974 +vn 0.0000 0.0722 -0.9974 +vn 1.0000 -0.0000 0.0026 +vn 0.0048 -0.0004 -1.0000 +vn 0.0056 -0.0009 -1.0000 +vn 0.0041 -0.0001 -1.0000 +vn 0.0000 1.0000 -0.0007 +vn 1.0000 0.0000 0.0052 +vn 1.0000 -0.0035 -0.0044 +vn -0.0002 -0.6430 -0.7658 +vn 0.0000 0.8690 0.4947 +vn 1.0000 -0.0055 0.0020 +vn 1.0000 -0.0005 0.0027 +vn 1.0000 -0.0090 -0.0003 +vn 1.0000 0.0001 0.0025 +vn 0.6788 0.4722 0.5624 +vn 0.5489 0.5375 0.6401 +vn -0.4928 0.5934 0.6364 +vn -0.3227 0.6087 0.7248 +vn -0.3837 0.8529 0.3540 +vn -0.5847 0.0737 -0.8079 +vn 0.9999 0.0114 0.0035 +vn 0.0041 0.0735 -0.9973 +vn 0.0063 -0.0012 -1.0000 +vn 1.0000 0.0013 -0.0033 +vn 1.0000 0.0093 -0.0015 +vn 1.0000 -0.0055 -0.0032 +vn 1.0000 -0.0004 0.0052 +vn 0.7730 -0.6344 0.0000 +vn 0.8819 -0.4714 0.0000 +vn 0.9569 -0.2903 0.0000 +vn 0.9952 -0.0980 0.0000 +vn 0.9952 0.0980 0.0000 +vn 0.9569 0.2903 0.0000 +vn 0.8819 0.4714 0.0000 +vn 0.7730 0.6344 0.0000 +vn 0.6344 0.7730 0.0000 +vn 0.4714 0.8819 0.0000 +vn 0.2903 0.9569 0.0000 +vn 0.0980 0.9952 0.0000 +vn -0.0980 0.9952 0.0000 +vn -0.2903 0.9569 0.0000 +vn -0.4714 0.8819 0.0000 +vn -0.6344 0.7730 0.0000 +vn -0.7730 0.6344 0.0000 +vn -0.8819 0.4714 0.0000 +vn -0.9569 0.2903 0.0000 +vn -0.9952 0.0980 0.0000 +vn -0.9952 -0.0980 0.0000 +vn -0.9569 -0.2903 0.0000 +vn -0.8819 -0.4714 0.0000 +vn -0.7730 -0.6344 0.0000 +vn 0.4714 -0.8819 0.0000 +vn 0.6344 -0.7730 0.0000 +vn -0.6344 -0.7730 0.0000 +vn -0.4714 -0.8819 0.0000 +vn -0.2903 -0.9569 0.0000 +vn -0.0980 -0.9952 0.0000 +vn 0.0980 -0.9952 0.0000 +vn 0.2903 -0.9569 0.0000 +vn 0.0009 0.0000 1.0000 +vn -0.0008 0.0000 1.0000 +vn 0.6341 -0.7732 0.0000 +vn 0.6340 -0.7733 0.0000 +vn -0.6345 -0.7730 0.0000 +vn -0.0010 0.0000 1.0000 +vn 0.6338 -0.7735 0.0000 +vn 0.0012 0.0000 1.0000 +vn -0.9886 0.1508 0.0000 +vn 0.0000 0.7659 -0.6430 +vn 0.9886 0.1508 0.0000 +vn 0.0000 0.5850 0.8110 +vn -0.9980 0.0638 0.0000 +vn 0.0000 0.0992 -0.9951 +vn 0.9980 0.0638 0.0000 +vn 0.0000 0.0212 0.9998 +vn 0.0000 0.0211 0.9998 +vn -0.9692 -0.2464 0.0000 +vn -0.0424 0.1386 -0.9894 +vn 0.9412 0.3377 0.0000 +vn 0.9413 0.3377 0.0000 +vn -0.0091 0.0297 0.9995 +vn 0.2924 -0.9563 0.0000 +vn -0.2924 0.9563 0.0000 +vn -0.9412 0.3377 0.0000 +vn 0.0423 0.1385 -0.9895 +vn 0.9692 -0.2464 0.0000 +vn 0.0091 0.0297 0.9995 +vn -0.2924 -0.9563 0.0000 +vn 0.2924 0.9563 0.0000 +usemtl Material.001 +s 1 +f 127/228/74 128/229/75 129/230/76 +f 127/231/77 130/232/78 128/229/79 +f 131/233/75 132/234/75 133/235/75 +f 132/234/80 134/236/80 133/235/80 +f 134/236/81 135/237/81 136/238/81 +f 133/235/79 136/239/79 131/240/79 +f 131/241/82 135/237/82 132/234/82 +f 136/242/83 137/243/84 138/244/85 +f 129/245/86 135/237/86 132/234/86 +f 128/229/87 137/246/87 129/230/87 +f 138/244/88 137/246/88 130/232/88 +f 139/247/89 138/248/89 127/249/89 +f 132/234/90 127/250/74 129/251/76 +f 136/242/91 138/248/92 139/252/93 +f 138/253/94 137/254/94 139/255/94 +f 140/256/75 141/257/75 142/258/75 +f 141/257/95 143/259/95 142/258/95 +f 143/259/81 144/260/81 145/261/81 +f 140/262/82 143/259/82 145/263/82 +f 140/264/96 144/260/96 141/257/96 +f 146/265/75 147/266/75 148/267/75 +f 147/266/97 149/268/97 148/267/97 +f 149/268/81 150/269/81 151/270/81 +f 148/267/96 151/271/96 146/272/96 +f 146/273/98 150/269/98 147/266/98 +f 152/274/74 153/275/75 154/276/76 +f 152/277/77 155/278/78 153/275/79 +f 156/279/75 157/280/75 158/281/75 +f 157/280/80 159/282/80 158/281/80 +f 159/282/81 160/283/81 161/284/81 +f 158/281/79 161/285/79 156/286/79 +f 156/287/82 160/283/82 157/280/82 +f 161/288/83 162/289/84 163/290/85 +f 154/291/86 160/283/86 157/280/86 +f 153/275/87 162/292/87 154/276/87 +f 163/290/88 162/292/88 155/278/88 +f 164/293/89 163/294/89 152/295/89 +f 157/280/90 152/296/74 154/297/76 +f 161/288/91 163/294/99 164/298/100 +f 163/299/101 162/300/101 164/301/101 +f 165/302/74 166/303/75 167/304/76 +f 165/305/77 168/306/78 166/303/79 +f 169/307/75 170/308/75 171/309/75 +f 170/308/80 172/310/80 171/309/80 +f 172/310/81 173/311/81 174/312/81 +f 171/309/79 174/313/79 169/314/79 +f 169/315/82 173/311/82 170/308/82 +f 174/316/83 175/317/84 176/318/85 +f 167/319/86 173/311/86 170/308/86 +f 166/303/87 175/320/87 167/304/87 +f 176/318/88 175/320/88 168/306/88 +f 177/321/89 176/322/89 165/323/89 +f 170/308/90 165/324/74 167/325/76 +f 174/316/91 176/322/102 177/326/100 +f 176/327/101 175/328/101 177/329/101 +f 178/330/74 179/331/75 180/332/76 +f 178/333/77 181/334/78 179/331/79 +f 182/335/75 183/336/75 184/337/75 +f 183/336/80 185/338/80 184/337/80 +f 185/338/81 186/339/81 187/340/81 +f 184/337/79 187/341/79 182/342/79 +f 182/343/82 186/339/82 183/336/82 +f 187/344/83 188/345/84 189/346/85 +f 180/347/86 186/339/86 183/336/86 +f 179/331/87 188/348/87 180/332/87 +f 189/346/88 188/348/88 181/334/88 +f 190/349/89 189/350/89 178/351/89 +f 183/336/90 178/352/74 180/353/76 +f 187/344/91 189/350/99 190/354/100 +f 189/355/103 188/356/103 190/357/103 +f 191/358/74 192/359/75 193/360/76 +f 191/361/77 194/362/78 192/359/79 +f 195/363/75 196/364/75 197/365/75 +f 196/364/80 198/366/80 197/365/80 +f 198/366/81 199/367/81 200/368/81 +f 197/365/79 200/369/79 195/370/79 +f 195/371/82 199/367/82 196/364/82 +f 200/372/83 201/373/84 202/374/85 +f 193/375/86 199/367/86 196/364/86 +f 192/359/87 201/376/87 193/360/87 +f 202/374/88 201/376/88 194/362/88 +f 203/377/89 202/378/89 191/379/89 +f 196/364/90 191/380/74 193/381/76 +f 200/372/91 202/378/104 203/382/105 +f 202/383/103 201/384/103 203/385/103 +f 204/386/74 205/387/75 206/388/76 +f 204/389/77 207/390/78 205/387/79 +f 208/391/75 209/392/75 210/393/75 +f 209/392/80 211/394/80 210/393/80 +f 211/394/81 212/395/81 213/396/81 +f 210/393/79 213/397/79 208/398/79 +f 208/399/82 212/395/82 209/392/82 +f 213/400/83 214/401/84 215/402/85 +f 206/403/86 212/395/86 209/392/86 +f 205/387/87 214/404/87 206/388/87 +f 215/402/88 214/404/88 207/390/88 +f 216/405/89 215/406/89 204/407/89 +f 209/392/90 204/408/74 206/409/76 +f 213/400/91 215/406/92 216/410/93 +f 215/411/106 214/412/106 216/413/106 +f 217/414/74 218/415/75 219/416/76 +f 217/417/77 220/418/78 218/415/79 +f 221/419/75 222/420/75 223/421/75 +f 222/420/80 224/422/80 223/421/80 +f 224/422/81 225/423/81 226/424/81 +f 223/421/79 226/425/79 221/426/79 +f 221/427/82 225/423/82 222/420/82 +f 226/428/83 227/429/84 228/430/85 +f 219/431/86 225/423/86 222/420/86 +f 218/415/87 227/432/87 219/416/87 +f 228/430/88 227/432/88 220/418/88 +f 229/433/107 228/434/107 217/435/107 +f 222/420/90 217/436/74 219/437/76 +f 226/428/91 228/434/104 229/438/93 +f 228/439/94 227/440/94 229/441/94 +f 230/442/74 231/443/75 232/444/76 +f 230/445/77 233/446/78 231/443/79 +f 234/447/75 235/448/75 236/449/75 +f 235/448/80 237/450/80 236/449/80 +f 237/450/81 238/451/81 239/452/81 +f 236/449/79 239/453/79 234/454/79 +f 234/455/82 238/451/82 235/448/82 +f 239/456/83 240/457/84 241/458/85 +f 232/459/86 238/451/86 235/448/86 +f 231/443/87 240/460/87 232/444/87 +f 241/458/88 240/460/88 233/446/88 +f 242/461/89 241/462/89 230/463/89 +f 235/448/90 230/464/74 232/465/76 +f 239/456/91 241/462/92 242/466/93 +f 241/467/94 240/468/94 242/469/94 +f 243/470/74 244/471/75 245/472/76 +f 243/473/77 246/474/78 244/471/79 +f 247/475/75 248/476/75 249/477/75 +f 248/476/80 250/478/80 249/477/80 +f 250/478/81 251/479/81 252/480/81 +f 249/477/79 252/481/79 247/482/79 +f 247/483/82 251/479/82 248/476/82 +f 252/484/83 253/485/84 254/486/85 +f 245/487/86 251/479/86 248/476/86 +f 244/471/87 253/488/87 245/472/87 +f 254/486/88 253/488/88 246/474/88 +f 255/489/89 254/490/89 243/491/89 +f 248/476/90 243/492/74 245/493/76 +f 252/484/91 254/490/104 255/494/93 +f 254/495/94 253/496/94 255/497/94 +f 256/498/74 257/499/75 258/500/76 +f 256/501/77 259/502/78 257/499/79 +f 260/503/75 261/504/75 262/505/75 +f 261/504/80 263/506/80 262/505/80 +f 263/506/81 264/507/81 265/508/81 +f 262/505/79 265/509/79 260/510/79 +f 260/511/82 264/507/82 261/504/82 +f 265/512/83 266/513/84 267/514/85 +f 258/515/86 264/507/86 261/504/86 +f 257/499/87 266/516/87 258/500/87 +f 267/514/88 266/516/88 259/502/88 +f 268/517/89 267/518/89 256/519/89 +f 261/504/90 256/520/74 258/521/76 +f 265/512/91 267/518/92 268/522/93 +f 267/523/94 266/524/94 268/525/94 +f 269/526/74 270/527/75 271/528/76 +f 269/529/77 272/530/78 270/527/79 +f 273/531/75 274/532/75 275/533/75 +f 274/532/80 276/534/80 275/533/80 +f 276/534/81 277/535/81 278/536/81 +f 275/533/79 278/537/79 273/538/79 +f 273/539/82 277/535/82 274/532/82 +f 278/540/83 279/541/84 280/542/85 +f 271/543/86 277/535/86 274/532/86 +f 270/527/87 279/544/87 271/528/87 +f 280/542/88 279/544/88 272/530/88 +f 281/545/89 280/546/89 269/547/89 +f 274/532/90 269/548/74 271/549/76 +f 278/540/91 280/546/102 281/550/108 +f 280/551/94 279/552/94 281/553/94 +f 282/554/74 283/555/75 284/556/76 +f 282/557/77 285/558/78 283/555/79 +f 286/559/75 287/560/75 288/561/75 +f 287/560/80 289/562/80 288/561/80 +f 289/562/81 290/563/81 291/564/81 +f 288/561/79 291/565/79 286/566/79 +f 286/567/82 290/563/82 287/560/82 +f 291/568/83 292/569/84 293/570/85 +f 284/571/86 290/563/86 287/560/86 +f 283/555/87 292/572/87 284/556/87 +f 293/570/88 292/572/88 285/558/88 +f 294/573/89 293/574/89 282/575/89 +f 287/560/90 282/576/74 284/577/76 +f 291/568/91 293/574/104 294/578/105 +f 293/579/94 292/580/94 294/581/94 +f 127/231/77 138/582/109 130/232/78 +f 132/234/80 135/237/80 134/236/80 +f 133/235/79 134/236/79 136/239/79 +f 131/241/82 136/583/82 135/237/82 +f 136/242/83 135/237/110 137/243/84 +f 129/245/86 137/584/86 135/237/86 +f 128/229/87 130/232/87 137/246/87 +f 132/234/90 131/585/90 127/250/74 +f 139/252/93 127/249/111 136/242/91 +f 127/249/111 131/585/111 136/242/91 +f 141/257/95 144/260/95 143/259/95 +f 140/262/82 142/258/82 143/259/82 +f 140/264/96 145/586/96 144/260/96 +f 147/266/97 150/269/97 149/268/97 +f 148/267/96 149/268/96 151/271/96 +f 146/273/98 151/587/98 150/269/98 +f 152/277/77 163/588/109 155/278/78 +f 157/280/80 160/283/80 159/282/80 +f 158/281/79 159/282/79 161/285/79 +f 156/287/82 161/589/82 160/283/82 +f 161/288/83 160/283/110 162/289/84 +f 154/291/86 162/590/86 160/283/86 +f 153/275/87 155/278/87 162/292/87 +f 157/280/90 156/591/90 152/296/74 +f 164/298/100 152/295/111 161/288/91 +f 152/295/111 156/591/111 161/288/91 +f 165/305/77 176/592/109 168/306/78 +f 170/308/80 173/311/80 172/310/80 +f 171/309/79 172/310/79 174/313/79 +f 169/315/82 174/593/82 173/311/82 +f 174/316/83 173/311/110 175/317/84 +f 167/319/86 175/594/86 173/311/86 +f 166/303/87 168/306/87 175/320/87 +f 170/308/90 169/595/90 165/324/74 +f 177/326/100 165/323/111 174/316/91 +f 165/323/111 169/595/111 174/316/91 +f 178/333/77 189/596/109 181/334/78 +f 183/336/80 186/339/80 185/338/80 +f 184/337/79 185/338/79 187/341/79 +f 182/343/82 187/597/82 186/339/82 +f 187/344/83 186/339/110 188/345/84 +f 180/347/86 188/598/86 186/339/86 +f 179/331/87 181/334/87 188/348/87 +f 183/336/90 182/599/90 178/352/74 +f 190/354/100 178/351/111 187/344/91 +f 178/351/111 182/599/111 187/344/91 +f 191/361/77 202/600/109 194/362/78 +f 196/364/80 199/367/80 198/366/80 +f 197/365/79 198/366/79 200/369/79 +f 195/371/82 200/601/82 199/367/82 +f 200/372/83 199/367/110 201/373/84 +f 193/375/86 201/602/86 199/367/86 +f 192/359/87 194/362/87 201/376/87 +f 196/364/90 195/603/90 191/380/74 +f 203/382/105 191/379/111 200/372/91 +f 191/379/111 195/603/111 200/372/112 +f 204/389/77 215/604/109 207/390/78 +f 209/392/80 212/395/80 211/394/80 +f 210/393/79 211/394/79 213/397/79 +f 208/399/82 213/605/82 212/395/82 +f 213/400/83 212/395/110 214/401/84 +f 206/403/86 214/606/86 212/395/86 +f 205/387/87 207/390/87 214/404/87 +f 209/392/90 208/607/90 204/408/74 +f 216/410/93 204/407/111 213/400/91 +f 204/407/111 208/607/111 213/400/91 +f 217/417/77 228/608/109 220/418/78 +f 222/420/80 225/423/80 224/422/80 +f 223/421/79 224/422/79 226/425/79 +f 221/427/82 226/609/82 225/423/82 +f 226/428/83 225/423/110 227/429/84 +f 219/431/86 227/610/86 225/423/86 +f 218/415/87 220/418/87 227/432/87 +f 222/420/90 221/611/90 217/436/74 +f 229/438/93 217/435/111 226/428/91 +f 217/435/111 221/611/111 226/428/91 +f 230/445/77 241/612/109 233/446/78 +f 235/448/80 238/451/80 237/450/80 +f 236/449/79 237/450/79 239/453/79 +f 234/455/82 239/613/82 238/451/82 +f 239/456/83 238/451/110 240/457/84 +f 232/459/86 240/614/86 238/451/86 +f 231/443/87 233/446/87 240/460/87 +f 235/448/90 234/615/90 230/464/74 +f 242/466/93 230/463/111 239/456/91 +f 230/463/111 234/615/111 239/456/91 +f 243/473/77 254/616/109 246/474/78 +f 248/476/80 251/479/80 250/478/80 +f 249/477/79 250/478/79 252/481/79 +f 247/483/82 252/617/82 251/479/82 +f 252/484/83 251/479/110 253/485/84 +f 245/487/86 253/618/86 251/479/86 +f 244/471/87 246/474/87 253/488/87 +f 248/476/90 247/619/90 243/492/74 +f 255/494/93 243/491/111 252/484/91 +f 243/491/111 247/619/111 252/484/91 +f 256/501/77 267/620/109 259/502/78 +f 261/504/80 264/507/80 263/506/80 +f 262/505/79 263/506/79 265/509/79 +f 260/511/82 265/621/82 264/507/82 +f 265/512/83 264/507/110 266/513/84 +f 258/515/86 266/622/86 264/507/86 +f 257/499/87 259/502/87 266/516/87 +f 261/504/90 260/623/90 256/520/74 +f 268/522/93 256/519/111 265/512/91 +f 256/519/111 260/623/111 265/512/112 +f 269/529/77 280/624/109 272/530/78 +f 274/532/80 277/535/80 276/534/80 +f 275/533/79 276/534/79 278/537/79 +f 273/539/82 278/625/82 277/535/82 +f 278/540/83 277/535/110 279/541/84 +f 271/543/86 279/626/86 277/535/86 +f 270/527/87 272/530/87 279/544/87 +f 274/532/90 273/627/90 269/548/74 +f 281/550/108 269/547/111 278/540/91 +f 269/547/111 273/627/111 278/540/91 +f 282/557/77 293/628/109 285/558/78 +f 287/560/80 290/563/80 289/562/80 +f 288/561/79 289/562/79 291/565/79 +f 286/567/82 291/629/82 290/563/82 +f 291/568/83 290/563/110 292/569/84 +f 284/571/86 292/630/86 290/563/86 +f 283/555/87 285/558/87 292/572/87 +f 287/560/90 286/631/90 282/576/74 +f 294/578/105 282/575/111 291/568/91 +f 282/575/111 286/631/111 291/568/91 +f 295/632/75 296/633/75 297/634/75 +f 298/635/113 297/636/113 299/637/113 +f 300/638/114 301/639/114 297/636/114 +f 302/640/115 303/641/115 301/639/115 +f 304/642/116 305/643/116 303/641/116 +f 306/644/117 307/645/117 305/643/117 +f 308/646/118 309/647/118 307/645/118 +f 310/648/119 311/649/119 309/647/119 +f 312/650/120 313/651/120 311/649/120 +f 314/652/121 295/653/121 313/651/121 +f 315/654/122 296/655/122 295/653/122 +f 296/633/96 298/656/96 299/657/96 +f 304/658/81 302/659/81 312/660/81 +f 296/633/75 299/657/75 297/634/75 +f 297/634/75 301/661/75 313/662/75 +f 301/661/75 303/663/75 311/664/75 +f 303/663/75 305/665/75 311/664/75 +f 305/665/75 307/666/75 309/667/75 +f 311/664/75 305/665/75 309/667/75 +f 311/664/75 313/662/75 301/661/75 +f 313/662/75 295/632/75 297/634/75 +f 298/635/113 300/638/113 297/636/113 +f 300/638/114 302/640/114 301/639/114 +f 302/640/115 304/642/115 303/641/115 +f 304/642/116 306/644/116 305/643/116 +f 306/644/117 308/646/117 307/645/117 +f 308/646/118 310/648/118 309/647/118 +f 310/648/119 312/650/119 311/649/119 +f 312/650/120 314/652/120 313/651/120 +f 314/652/121 315/654/121 295/653/121 +f 315/654/122 316/668/122 296/655/122 +f 296/633/96 316/669/96 298/656/96 +f 302/659/81 300/670/81 315/671/81 +f 300/670/81 298/656/81 315/671/81 +f 298/656/81 316/669/81 315/671/81 +f 315/671/81 314/672/81 302/659/81 +f 314/672/81 312/660/81 302/659/81 +f 312/660/81 310/673/81 304/658/81 +f 310/673/81 308/674/81 306/675/81 +f 304/658/81 310/673/81 306/675/81 +f 317/676/123 318/677/123 319/678/123 +f 320/679/124 321/680/124 318/677/124 +f 322/681/125 323/682/125 321/680/125 +f 324/683/126 325/684/126 323/682/126 +f 326/685/127 327/686/127 325/684/127 +f 328/687/128 329/688/128 327/686/128 +f 330/689/129 331/690/129 329/688/129 +f 332/691/130 333/692/130 331/690/130 +f 334/693/131 335/694/131 333/692/131 +f 336/695/132 337/696/132 335/694/132 +f 338/697/133 339/698/133 337/696/133 +f 340/699/134 341/700/134 339/698/134 +f 342/701/135 343/702/135 341/700/135 +f 344/703/136 345/704/136 343/702/136 +f 346/705/137 347/706/137 345/704/137 +f 348/707/138 349/708/139 347/706/139 +f 350/709/140 351/710/140 349/708/140 +f 352/711/141 353/712/141 351/710/141 +f 354/713/142 355/714/142 353/712/142 +f 356/715/143 357/716/143 355/714/143 +f 358/717/144 359/718/144 357/716/144 +f 360/719/145 361/720/145 359/718/145 +f 338/721/81 330/722/81 322/723/81 +f 362/724/146 363/725/146 361/720/146 +f 364/726/147 319/727/147 363/725/147 +f 365/728/136 366/729/136 367/730/136 +f 368/731/124 369/732/124 370/733/124 +f 371/734/127 372/735/127 369/732/127 +f 373/736/130 374/737/130 372/735/130 +f 375/738/133 376/739/133 374/737/133 +f 377/740/136 378/741/136 376/739/136 +f 379/742/140 380/743/140 378/741/140 +f 373/744/81 368/745/81 381/746/81 +f 381/747/143 382/748/143 380/743/143 +f 383/749/146 370/750/146 382/748/146 +f 374/751/75 378/752/75 382/753/75 +f 376/754/148 384/755/148 374/756/148 +f 374/756/149 385/757/149 372/758/149 +f 372/758/150 386/759/150 369/760/150 +f 386/759/151 370/761/151 369/760/151 +f 387/762/152 382/763/152 370/761/152 +f 388/764/153 380/765/153 382/763/153 +f 389/766/154 378/767/154 380/765/154 +f 390/768/155 376/754/155 378/767/155 +f 391/769/143 385/770/143 384/771/143 +f 392/772/146 384/771/146 393/773/146 +f 394/774/133 388/775/133 387/776/133 +f 395/777/136 387/778/136 386/779/136 +f 396/780/140 386/779/140 385/770/140 +f 397/781/124 393/773/124 390/782/124 +f 398/783/123 399/784/123 400/785/123 +f 401/786/124 402/787/124 399/784/124 +f 403/788/125 404/789/125 402/787/125 +f 405/790/156 406/791/156 404/789/156 +f 407/792/127 408/793/127 406/791/127 +f 409/794/128 410/795/128 408/793/128 +f 411/796/129 412/797/129 410/795/129 +f 413/798/130 414/799/130 412/797/130 +f 415/800/131 416/801/131 414/799/131 +f 417/802/132 418/803/132 416/801/132 +f 419/804/133 420/805/133 418/803/133 +f 421/806/134 422/807/134 420/805/134 +f 423/808/135 424/809/135 422/807/135 +f 425/810/136 426/811/136 424/809/136 +f 427/812/137 428/813/137 426/811/137 +f 429/814/138 430/815/138 428/813/138 +f 431/816/140 432/817/140 430/815/140 +f 433/818/141 434/819/141 432/817/141 +f 435/820/142 436/821/142 434/819/142 +f 437/822/143 438/823/143 436/821/143 +f 439/824/144 440/825/144 438/823/144 +f 441/826/145 442/827/145 440/825/145 +f 435/828/81 419/829/81 403/830/81 +f 443/831/146 444/832/146 442/827/146 +f 445/833/147 400/834/147 444/832/147 +f 436/835/75 444/836/75 412/837/75 +f 446/838/123 447/839/123 448/840/123 +f 449/841/124 450/842/124 447/839/124 +f 451/843/125 452/844/125 450/842/125 +f 453/845/126 454/846/126 452/844/126 +f 455/847/127 456/848/127 454/846/127 +f 457/849/128 458/850/128 456/848/128 +f 459/851/129 460/852/129 458/850/129 +f 461/853/130 462/854/130 460/852/130 +f 463/855/131 464/856/131 462/854/131 +f 465/857/132 466/858/132 464/856/132 +f 467/859/133 468/860/133 466/858/133 +f 469/861/134 470/862/134 468/860/134 +f 471/863/135 472/864/135 470/862/135 +f 473/865/136 474/866/136 472/864/136 +f 475/867/137 476/868/137 474/866/157 +f 477/869/138 478/870/139 476/868/139 +f 479/871/140 480/872/140 478/870/140 +f 481/873/141 482/874/141 480/872/141 +f 483/875/142 484/876/142 482/874/142 +f 485/877/143 486/878/143 484/876/143 +f 487/879/144 488/880/144 486/878/144 +f 489/881/145 490/882/145 488/880/145 +f 467/883/81 459/884/81 451/885/81 +f 491/886/146 492/887/146 490/882/146 +f 493/888/147 448/889/147 492/887/147 +f 476/890/75 484/891/75 492/892/75 +f 494/893/123 495/894/123 496/895/123 +f 497/896/124 498/897/124 495/894/124 +f 499/898/125 500/899/125 498/897/125 +f 501/900/156 502/901/156 500/899/126 +f 503/902/127 504/903/127 502/901/127 +f 505/904/128 506/905/128 504/903/128 +f 507/906/129 508/907/129 506/905/129 +f 509/908/130 510/909/130 508/907/130 +f 511/910/131 512/911/131 510/909/131 +f 513/912/132 514/913/132 512/911/132 +f 515/914/133 516/915/133 514/913/133 +f 517/916/134 518/917/134 516/915/134 +f 519/918/135 520/919/135 518/917/135 +f 521/920/136 522/921/136 520/919/136 +f 523/922/137 524/923/137 522/921/137 +f 525/924/138 526/925/138 524/923/138 +f 527/926/140 528/927/140 526/925/140 +f 529/928/141 530/929/141 528/927/141 +f 531/930/142 532/931/142 530/929/142 +f 533/932/143 534/933/143 532/931/143 +f 535/934/144 536/935/144 534/933/144 +f 537/936/145 538/937/145 536/935/145 +f 515/938/81 507/939/81 499/940/81 +f 539/941/146 540/942/146 538/937/146 +f 541/943/147 496/944/147 540/942/147 +f 524/945/75 532/946/75 540/947/75 +f 542/948/123 543/949/123 544/950/123 +f 545/951/124 546/952/124 543/949/124 +f 547/953/125 548/954/125 546/952/125 +f 549/955/126 550/956/126 548/954/126 +f 551/957/127 552/958/127 550/956/127 +f 553/959/128 554/960/128 552/958/128 +f 555/961/129 556/962/129 554/960/129 +f 557/963/130 558/964/130 556/962/130 +f 559/965/131 560/966/131 558/964/131 +f 561/967/132 562/968/132 560/966/132 +f 563/969/133 564/970/133 562/968/133 +f 565/971/134 566/972/134 564/970/134 +f 567/973/135 568/974/135 566/972/135 +f 569/975/136 570/976/136 568/974/136 +f 571/977/137 572/978/137 570/976/137 +f 573/979/139 574/980/139 572/978/139 +f 575/981/140 576/982/140 574/980/140 +f 577/983/141 578/984/141 576/982/141 +f 579/985/142 580/986/142 578/984/142 +f 581/987/143 582/988/143 580/986/143 +f 583/989/144 584/990/144 582/988/144 +f 585/991/145 586/992/145 584/990/145 +f 563/993/81 555/994/81 547/995/81 +f 587/996/146 588/997/146 586/992/146 +f 589/998/147 544/999/147 588/997/147 +f 572/1000/75 580/1001/75 588/1002/75 +f 590/1003/123 591/1004/123 592/1005/123 +f 593/1006/124 594/1007/124 591/1004/124 +f 595/1008/158 596/1009/125 594/1007/125 +f 597/1010/126 598/1011/126 596/1009/126 +f 599/1012/127 600/1013/127 598/1011/127 +f 601/1014/128 602/1015/128 600/1013/128 +f 603/1016/129 604/1017/129 602/1015/129 +f 605/1018/130 606/1019/130 604/1017/130 +f 607/1020/131 608/1021/131 606/1019/131 +f 609/1022/159 610/1023/132 608/1021/132 +f 611/1024/133 612/1025/133 610/1023/133 +f 613/1026/134 614/1027/134 612/1025/134 +f 615/1028/135 616/1029/135 614/1027/135 +f 617/1030/136 618/1031/136 616/1029/136 +f 619/1032/137 620/1033/157 618/1031/157 +f 621/1034/138 622/1035/139 620/1033/139 +f 623/1036/140 624/1037/140 622/1035/140 +f 625/1038/141 626/1039/141 624/1037/141 +f 627/1040/142 628/1041/142 626/1039/142 +f 629/1042/143 630/1043/143 628/1041/143 +f 631/1044/144 632/1045/144 630/1043/144 +f 633/1046/145 634/1047/145 632/1045/145 +f 611/1048/81 603/1049/81 595/1050/81 +f 635/1051/146 636/1052/146 634/1047/146 +f 637/1053/147 592/1054/147 636/1052/147 +f 620/1055/75 628/1056/75 636/1057/75 +f 638/1058/75 318/1059/75 367/730/75 +f 367/730/75 321/1060/75 365/728/75 +f 365/728/75 323/1061/75 639/1062/75 +f 639/1062/75 325/1063/75 640/1064/75 +f 640/1064/75 327/1065/75 641/1066/75 +f 641/1066/75 329/1067/75 642/1068/75 +f 643/1069/75 329/1067/75 331/1070/75 +f 644/1071/75 331/1070/75 333/1072/75 +f 645/1073/75 333/1072/75 335/1074/75 +f 646/1075/75 335/1074/75 337/1076/75 +f 647/1077/75 337/1076/75 339/1078/75 +f 648/1079/75 339/1078/75 341/1080/75 +f 648/1079/75 343/1081/75 649/1082/75 +f 649/1082/75 345/1083/75 650/1084/75 +f 650/1084/75 347/1085/75 651/1086/75 +f 651/1086/75 349/1087/75 652/1088/75 +f 652/1088/75 351/1089/75 653/1090/75 +f 653/1090/75 353/1091/75 654/1092/75 +f 655/1093/75 353/1091/75 355/1094/75 +f 656/1095/75 355/1094/75 357/1096/75 +f 657/1097/75 357/1096/75 359/1098/75 +f 658/1099/75 359/1098/75 361/1100/75 +f 659/1101/75 361/1100/75 363/1102/75 +f 638/1058/75 363/1102/75 319/1103/75 +f 660/1104/75 661/1105/75 662/1106/75 +f 653/1090/127 663/1107/127 652/1088/127 +f 646/1075/145 664/1108/145 645/1073/145 +f 639/1062/137 665/1109/137 365/728/137 +f 654/1092/128 666/1110/128 653/1090/128 +f 647/1077/146 667/1111/146 646/1075/146 +f 640/1064/138 668/1112/138 639/1062/138 +f 655/1093/129 669/1113/129 654/1092/129 +f 648/1079/147 670/1114/147 647/1077/147 +f 641/1066/140 671/1115/140 640/1064/140 +f 656/1095/130 672/1116/130 655/1093/130 +f 649/1082/123 673/1117/123 648/1079/123 +f 642/1068/141 674/1118/141 641/1066/141 +f 657/1097/131 675/1119/131 656/1095/131 +f 650/1084/124 676/1120/124 649/1082/124 +f 643/1069/142 677/1121/142 642/1068/142 +f 658/1099/132 660/1104/132 657/1097/132 +f 651/1086/158 678/1122/125 650/1084/158 +f 644/1071/143 679/1123/143 643/1069/143 +f 659/1101/133 661/1105/133 658/1099/133 +f 367/730/135 680/1124/135 638/1058/135 +f 652/1088/156 662/1106/156 651/1086/156 +f 645/1073/144 681/1125/144 644/1071/144 +f 638/1058/134 682/1126/134 659/1101/134 +f 397/781/160 389/766/161 683/1127/162 +f 317/676/123 320/679/123 318/677/123 +f 320/679/124 322/681/124 321/680/124 +f 322/681/125 324/683/125 323/682/125 +f 324/683/126 326/685/126 325/684/126 +f 326/685/127 328/687/127 327/686/127 +f 328/687/128 330/689/128 329/688/128 +f 330/689/129 332/691/129 331/690/129 +f 332/691/130 334/693/130 333/692/130 +f 334/693/131 336/695/131 335/694/131 +f 336/695/132 338/697/132 337/696/132 +f 338/697/133 340/699/133 339/698/133 +f 340/699/134 342/701/134 341/700/134 +f 342/701/135 344/703/135 343/702/135 +f 344/703/136 346/705/136 345/704/136 +f 346/705/137 348/707/137 347/706/137 +f 348/707/138 350/709/138 349/708/139 +f 350/709/140 352/711/140 351/710/140 +f 352/711/141 354/713/141 353/712/141 +f 354/713/142 356/715/142 355/714/142 +f 356/715/143 358/717/143 357/716/143 +f 358/717/144 360/719/144 359/718/144 +f 360/719/145 362/724/145 361/720/145 +f 322/723/81 320/1128/81 317/1129/81 +f 317/1129/81 364/1130/81 322/723/81 +f 364/1130/81 362/1131/81 322/723/81 +f 362/1131/81 360/1132/81 358/1133/81 +f 358/1133/81 356/1134/81 354/1135/81 +f 354/1135/81 352/1136/81 350/1137/81 +f 350/1137/81 348/1138/81 354/1135/81 +f 348/1138/81 346/1139/81 354/1135/81 +f 346/1139/81 344/1140/81 342/1141/81 +f 342/1141/81 340/1142/81 338/721/81 +f 338/721/81 336/1143/81 334/1144/81 +f 334/1144/81 332/1145/81 330/722/81 +f 330/722/81 328/1146/81 326/1147/81 +f 326/1147/81 324/1148/81 330/722/81 +f 324/1148/81 322/723/81 330/722/81 +f 362/1131/81 358/1133/81 354/1135/81 +f 346/1139/81 342/1141/81 354/1135/81 +f 342/1141/81 338/721/81 354/1135/81 +f 338/721/81 334/1144/81 330/722/81 +f 322/723/81 362/1131/81 338/721/81 +f 362/1131/81 354/1135/81 338/721/81 +f 362/724/146 364/726/146 363/725/146 +f 364/726/147 317/1149/147 319/727/147 +f 365/728/136 665/1109/136 366/729/136 +f 368/731/124 371/734/124 369/732/124 +f 371/734/127 373/736/127 372/735/127 +f 373/736/130 375/738/130 374/737/130 +f 375/738/133 377/740/133 376/739/133 +f 377/740/136 379/742/136 378/741/136 +f 379/742/140 381/747/140 380/743/140 +f 373/744/81 371/1150/81 368/745/81 +f 368/745/81 383/1151/81 381/746/81 +f 381/746/81 379/1152/81 373/744/81 +f 379/1152/81 377/1153/81 373/744/81 +f 377/1153/81 375/1154/81 373/744/81 +f 381/747/143 383/749/143 382/748/143 +f 383/749/146 368/1155/146 370/750/146 +f 382/753/75 370/1156/75 374/751/75 +f 370/1156/75 369/1157/75 374/751/75 +f 369/1157/75 372/1158/75 374/751/75 +f 374/751/75 376/1159/75 378/752/75 +f 378/752/75 380/1160/75 382/753/75 +f 376/754/148 393/1161/148 384/755/148 +f 374/756/149 384/755/149 385/757/149 +f 372/758/150 385/757/150 386/759/150 +f 386/759/151 387/762/151 370/761/151 +f 387/762/152 388/764/152 382/763/152 +f 388/764/153 389/766/153 380/765/153 +f 389/766/154 390/768/154 378/767/154 +f 390/768/155 393/1161/155 376/754/155 +f 391/769/143 396/780/143 385/770/143 +f 392/772/146 391/769/146 384/771/146 +f 394/774/133 683/1127/133 388/775/133 +f 395/777/136 394/1162/136 387/778/136 +f 396/780/140 395/777/140 386/779/140 +f 397/781/124 392/772/124 393/773/124 +f 398/783/123 401/786/123 399/784/123 +f 401/786/124 403/788/124 402/787/124 +f 403/788/125 405/790/125 404/789/125 +f 405/790/156 407/792/156 406/791/156 +f 407/792/127 409/794/127 408/793/127 +f 409/794/128 411/796/128 410/795/128 +f 411/796/129 413/798/129 412/797/129 +f 413/798/130 415/800/130 414/799/130 +f 415/800/131 417/802/131 416/801/131 +f 417/802/132 419/804/132 418/803/132 +f 419/804/133 421/806/133 420/805/133 +f 421/806/134 423/808/134 422/807/134 +f 423/808/135 425/810/135 424/809/135 +f 425/810/136 427/812/136 426/811/136 +f 427/812/137 429/814/137 428/813/137 +f 429/814/138 431/816/138 430/815/138 +f 431/816/140 433/818/140 432/817/140 +f 433/818/141 435/820/141 434/819/141 +f 435/820/142 437/822/142 436/821/142 +f 437/822/143 439/824/143 438/823/143 +f 439/824/144 441/826/144 440/825/144 +f 441/826/145 443/831/145 442/827/145 +f 403/830/81 401/1163/81 443/1164/81 +f 401/1163/81 398/1165/81 443/1164/81 +f 398/1165/81 445/1166/81 443/1164/81 +f 443/1164/81 441/1167/81 439/1168/81 +f 439/1168/81 437/1169/81 435/828/81 +f 435/828/81 433/1170/81 431/1171/81 +f 431/1171/81 429/1172/81 427/1173/81 +f 427/1173/81 425/1174/81 423/1175/81 +f 423/1175/81 421/1176/81 419/829/81 +f 419/829/81 417/1177/81 415/1178/81 +f 415/1178/81 413/1179/81 419/829/81 +f 413/1179/81 411/1180/81 419/829/81 +f 411/1180/81 409/1181/81 407/1182/81 +f 407/1182/81 405/1183/81 403/830/81 +f 443/1164/81 439/1168/81 403/830/81 +f 439/1168/81 435/828/81 403/830/81 +f 435/828/81 431/1171/81 419/829/81 +f 431/1171/81 427/1173/81 419/829/81 +f 427/1173/81 423/1175/81 419/829/81 +f 411/1180/81 407/1182/81 419/829/81 +f 407/1182/81 403/830/81 419/829/81 +f 443/831/146 445/833/146 444/832/146 +f 445/833/147 398/1184/147 400/834/147 +f 444/836/75 400/1185/75 399/1186/75 +f 399/1186/75 402/1187/75 444/836/75 +f 402/1187/75 404/1188/75 444/836/75 +f 404/1188/75 406/1189/75 412/837/75 +f 406/1189/75 408/1190/163 412/837/75 +f 408/1190/163 410/1191/75 412/837/75 +f 412/837/75 414/1192/164 416/1193/75 +f 416/1193/75 418/1194/75 420/1195/75 +f 420/1195/75 422/1196/75 424/1197/75 +f 424/1197/75 426/1198/75 428/1199/75 +f 428/1199/75 430/1200/75 432/1201/75 +f 432/1201/75 434/1202/75 436/835/75 +f 436/835/75 438/1203/75 440/1204/164 +f 440/1204/164 442/1205/75 436/835/75 +f 442/1205/75 444/836/75 436/835/75 +f 412/837/75 416/1193/75 420/1195/75 +f 420/1195/75 424/1197/75 412/837/75 +f 424/1197/75 428/1199/75 412/837/75 +f 428/1199/75 432/1201/75 436/835/75 +f 444/836/75 404/1188/75 412/837/75 +f 428/1199/75 436/835/75 412/837/75 +f 446/838/123 449/841/123 447/839/123 +f 449/841/124 451/843/124 450/842/124 +f 451/843/125 453/845/125 452/844/125 +f 453/845/126 455/847/126 454/846/126 +f 455/847/127 457/849/127 456/848/127 +f 457/849/128 459/851/128 458/850/128 +f 459/851/129 461/853/129 460/852/129 +f 461/853/130 463/855/130 462/854/130 +f 463/855/131 465/857/131 464/856/131 +f 465/857/132 467/859/132 466/858/132 +f 467/859/133 469/861/133 468/860/133 +f 469/861/134 471/863/134 470/862/134 +f 471/863/135 473/865/135 472/864/135 +f 473/865/136 475/867/136 474/866/136 +f 475/867/137 477/869/137 476/868/137 +f 477/869/138 479/871/138 478/870/139 +f 479/871/140 481/873/140 480/872/140 +f 481/873/141 483/875/141 482/874/141 +f 483/875/142 485/877/142 484/876/142 +f 485/877/143 487/879/143 486/878/143 +f 487/879/144 489/881/144 488/880/144 +f 489/881/145 491/886/145 490/882/145 +f 451/885/81 449/1206/81 446/1207/81 +f 446/1207/81 493/1208/81 491/1209/81 +f 491/1209/81 489/1210/165 487/1211/81 +f 487/1211/81 485/1212/81 491/1209/81 +f 485/1212/81 483/1213/81 491/1209/81 +f 483/1213/81 481/1214/165 479/1215/81 +f 479/1215/81 477/1216/81 483/1213/81 +f 477/1216/81 475/1217/81 483/1213/81 +f 475/1217/81 473/1218/81 471/1219/81 +f 471/1219/81 469/1220/81 467/883/81 +f 467/883/81 465/1221/81 463/1222/81 +f 463/1222/81 461/1223/81 467/883/81 +f 461/1223/81 459/884/81 467/883/81 +f 459/884/81 457/1224/81 455/1225/81 +f 455/1225/81 453/1226/81 459/884/81 +f 453/1226/81 451/885/81 459/884/81 +f 451/885/81 446/1207/81 491/1209/81 +f 475/1217/81 471/1219/81 483/1213/81 +f 471/1219/81 467/883/81 483/1213/81 +f 451/885/81 491/1209/81 467/883/81 +f 491/1209/81 483/1213/81 467/883/81 +f 491/886/146 493/888/146 492/887/146 +f 493/888/147 446/1227/147 448/889/147 +f 492/892/75 448/1228/75 447/1229/75 +f 447/1229/75 450/1230/75 492/892/75 +f 450/1230/75 452/1231/75 492/892/75 +f 452/1231/75 454/1232/163 456/1233/164 +f 456/1233/164 458/1234/75 452/1231/75 +f 458/1234/75 460/1235/75 452/1231/75 +f 460/1235/75 462/1236/75 464/1237/75 +f 464/1237/75 466/1238/75 468/1239/75 +f 468/1239/75 470/1240/75 476/890/75 +f 470/1240/75 472/1241/75 476/890/75 +f 472/1241/75 474/1242/164 476/890/75 +f 476/890/75 478/1243/75 480/1244/163 +f 480/1244/163 482/1245/75 476/890/75 +f 482/1245/75 484/891/75 476/890/75 +f 484/891/75 486/1246/164 488/1247/74 +f 488/1247/74 490/1248/75 484/891/75 +f 490/1248/75 492/892/75 484/891/75 +f 460/1235/75 464/1237/75 476/890/75 +f 464/1237/75 468/1239/75 476/890/75 +f 492/892/75 452/1231/75 476/890/75 +f 452/1231/75 460/1235/75 476/890/75 +f 494/893/123 497/896/123 495/894/123 +f 497/896/124 499/898/124 498/897/124 +f 499/898/125 501/900/125 500/899/125 +f 501/900/156 503/902/156 502/901/156 +f 503/902/127 505/904/127 504/903/127 +f 505/904/128 507/906/128 506/905/128 +f 507/906/129 509/908/129 508/907/129 +f 509/908/130 511/910/130 510/909/130 +f 511/910/131 513/912/131 512/911/131 +f 513/912/132 515/914/159 514/913/132 +f 515/914/133 517/916/133 516/915/133 +f 517/916/134 519/918/134 518/917/134 +f 519/918/135 521/920/135 520/919/135 +f 521/920/136 523/922/136 522/921/136 +f 523/922/137 525/924/137 524/923/137 +f 525/924/138 527/926/138 526/925/138 +f 527/926/140 529/928/140 528/927/140 +f 529/928/141 531/930/141 530/929/141 +f 531/930/142 533/932/142 532/931/142 +f 533/932/143 535/934/143 534/933/143 +f 535/934/144 537/936/144 536/935/144 +f 537/936/145 539/941/145 538/937/145 +f 499/940/81 497/1249/81 494/1250/81 +f 494/1250/81 541/1251/81 539/1252/81 +f 539/1252/81 537/1253/166 535/1254/165 +f 535/1254/165 533/1255/81 539/1252/81 +f 533/1255/81 531/1256/81 539/1252/81 +f 531/1256/81 529/1257/81 527/1258/81 +f 527/1258/81 525/1259/81 531/1256/81 +f 525/1259/81 523/1260/81 531/1256/81 +f 523/1260/81 521/1261/81 519/1262/81 +f 519/1262/81 517/1263/81 515/938/81 +f 515/938/81 513/1264/166 511/1265/81 +f 511/1265/81 509/1266/81 515/938/81 +f 509/1266/81 507/939/81 515/938/81 +f 507/939/81 505/1267/81 503/1268/81 +f 503/1268/81 501/1269/81 507/939/81 +f 501/1269/81 499/940/81 507/939/81 +f 499/940/81 494/1250/81 539/1252/81 +f 523/1260/81 519/1262/81 531/1256/81 +f 519/1262/81 515/938/81 531/1256/81 +f 499/940/81 539/1252/81 515/938/81 +f 539/1252/81 531/1256/81 515/938/81 +f 539/941/146 541/943/146 540/942/146 +f 541/943/147 494/1270/147 496/944/147 +f 540/947/75 496/1271/75 495/1272/75 +f 495/1272/75 498/1273/75 540/947/75 +f 498/1273/75 500/1274/75 540/947/75 +f 500/1274/75 502/1275/164 504/1276/75 +f 504/1276/75 506/1277/75 500/1274/75 +f 506/1277/75 508/1278/75 500/1274/75 +f 508/1278/75 510/1279/163 512/1280/75 +f 512/1280/75 514/1281/163 516/1282/75 +f 516/1282/75 518/1283/75 520/1284/75 +f 520/1284/75 522/1285/75 524/945/75 +f 524/945/75 526/1286/163 528/1287/75 +f 528/1287/75 530/1288/75 524/945/75 +f 530/1288/75 532/946/75 524/945/75 +f 532/946/75 534/1289/163 536/1290/164 +f 536/1290/164 538/1291/75 532/946/75 +f 538/1291/75 540/947/75 532/946/75 +f 508/1278/75 512/1280/75 516/1282/75 +f 516/1282/75 520/1284/75 508/1278/75 +f 520/1284/75 524/945/75 508/1278/75 +f 540/947/75 500/1274/75 524/945/75 +f 500/1274/75 508/1278/75 524/945/75 +f 542/948/123 545/951/123 543/949/123 +f 545/951/124 547/953/124 546/952/124 +f 547/953/125 549/955/125 548/954/125 +f 549/955/126 551/957/156 550/956/126 +f 551/957/127 553/959/127 552/958/127 +f 553/959/128 555/961/128 554/960/128 +f 555/961/129 557/963/129 556/962/129 +f 557/963/130 559/965/130 558/964/130 +f 559/965/131 561/967/131 560/966/131 +f 561/967/132 563/969/132 562/968/132 +f 563/969/133 565/971/133 564/970/133 +f 565/971/134 567/973/134 566/972/134 +f 567/973/135 569/975/135 568/974/135 +f 569/975/136 571/977/136 570/976/136 +f 571/977/137 573/979/137 572/978/137 +f 573/979/139 575/981/138 574/980/139 +f 575/981/140 577/983/140 576/982/140 +f 577/983/141 579/985/141 578/984/141 +f 579/985/142 581/987/142 580/986/142 +f 581/987/143 583/989/143 582/988/143 +f 583/989/144 585/991/144 584/990/144 +f 585/991/145 587/996/145 586/992/145 +f 547/995/81 545/1292/81 542/1293/81 +f 542/1293/81 589/1294/81 587/1295/81 +f 587/1295/81 585/1296/166 583/1297/81 +f 583/1297/81 581/1298/81 587/1295/81 +f 581/1298/81 579/1299/81 587/1295/81 +f 579/1299/81 577/1300/81 575/1301/81 +f 575/1301/81 573/1302/81 579/1299/81 +f 573/1302/81 571/1303/81 579/1299/81 +f 571/1303/81 569/1304/81 567/1305/81 +f 567/1305/81 565/1306/81 563/993/81 +f 563/993/81 561/1307/165 559/1308/81 +f 559/1308/81 557/1309/81 563/993/81 +f 557/1309/81 555/994/81 563/993/81 +f 555/994/81 553/1310/81 551/1311/81 +f 551/1311/81 549/1312/81 555/994/81 +f 549/1312/81 547/995/81 555/994/81 +f 547/995/81 542/1293/81 587/1295/81 +f 571/1303/81 567/1305/81 579/1299/81 +f 567/1305/81 563/993/81 579/1299/81 +f 547/995/81 587/1295/81 563/993/81 +f 587/1295/81 579/1299/81 563/993/81 +f 587/996/146 589/998/146 588/997/146 +f 589/998/147 542/1313/147 544/999/147 +f 588/1002/75 544/1314/75 543/1315/75 +f 543/1315/75 546/1316/75 588/1002/75 +f 546/1316/75 548/1317/75 588/1002/75 +f 548/1317/75 550/1318/75 552/1319/75 +f 552/1319/75 554/1320/75 548/1317/75 +f 554/1320/75 556/1321/75 548/1317/75 +f 556/1321/75 558/1322/75 560/1323/75 +f 560/1323/75 562/1324/75 564/1325/75 +f 564/1325/75 566/1326/75 572/1000/75 +f 566/1326/75 568/1327/75 572/1000/75 +f 568/1327/75 570/1328/75 572/1000/75 +f 572/1000/75 574/1329/75 576/1330/75 +f 576/1330/75 578/1331/75 572/1000/75 +f 578/1331/75 580/1001/75 572/1000/75 +f 580/1001/75 582/1332/75 584/1333/163 +f 584/1333/163 586/1334/75 580/1001/75 +f 586/1334/75 588/1002/75 580/1001/75 +f 556/1321/75 560/1323/75 572/1000/75 +f 560/1323/75 564/1325/75 572/1000/75 +f 588/1002/75 548/1317/75 572/1000/75 +f 548/1317/75 556/1321/75 572/1000/75 +f 590/1003/123 593/1006/123 591/1004/123 +f 593/1006/124 595/1008/124 594/1007/124 +f 595/1008/158 597/1010/158 596/1009/125 +f 597/1010/126 599/1012/126 598/1011/126 +f 599/1012/127 601/1014/127 600/1013/127 +f 601/1014/128 603/1016/128 602/1015/128 +f 603/1016/129 605/1018/129 604/1017/129 +f 605/1018/130 607/1020/130 606/1019/130 +f 607/1020/131 609/1022/131 608/1021/131 +f 609/1022/159 611/1024/159 610/1023/132 +f 611/1024/133 613/1026/133 612/1025/133 +f 613/1026/134 615/1028/134 614/1027/134 +f 615/1028/135 617/1030/135 616/1029/135 +f 617/1030/136 619/1032/136 618/1031/136 +f 619/1032/137 621/1034/137 620/1033/157 +f 621/1034/138 623/1036/138 622/1035/139 +f 623/1036/140 625/1038/140 624/1037/140 +f 625/1038/141 627/1040/141 626/1039/141 +f 627/1040/142 629/1042/142 628/1041/142 +f 629/1042/143 631/1044/143 630/1043/143 +f 631/1044/144 633/1046/144 632/1045/144 +f 633/1046/145 635/1051/145 634/1047/145 +f 595/1050/81 593/1335/81 590/1336/81 +f 590/1336/81 637/1337/81 595/1050/81 +f 637/1337/81 635/1338/81 595/1050/81 +f 635/1338/81 633/1339/81 631/1340/81 +f 631/1340/81 629/1341/81 635/1338/81 +f 629/1341/81 627/1342/81 635/1338/81 +f 627/1342/81 625/1343/81 623/1344/81 +f 623/1344/81 621/1345/81 627/1342/81 +f 621/1345/81 619/1346/81 627/1342/81 +f 619/1346/81 617/1347/81 615/1348/81 +f 615/1348/81 613/1349/81 611/1048/81 +f 611/1048/81 609/1350/81 607/1351/81 +f 607/1351/81 605/1352/81 611/1048/81 +f 605/1352/81 603/1049/81 611/1048/81 +f 603/1049/81 601/1353/81 599/1354/81 +f 599/1354/81 597/1355/81 603/1049/81 +f 597/1355/81 595/1050/81 603/1049/81 +f 619/1346/81 615/1348/81 627/1342/81 +f 615/1348/81 611/1048/81 627/1342/81 +f 595/1050/81 635/1338/81 611/1048/81 +f 635/1338/81 627/1342/81 611/1048/81 +f 635/1051/146 637/1053/146 636/1052/146 +f 637/1053/147 590/1356/147 592/1054/147 +f 636/1057/75 592/1357/75 591/1358/75 +f 591/1358/75 594/1359/75 636/1057/75 +f 594/1359/75 596/1360/75 636/1057/75 +f 596/1360/75 598/1361/75 600/1362/75 +f 600/1362/75 602/1363/75 596/1360/75 +f 602/1363/75 604/1364/75 596/1360/75 +f 604/1364/75 606/1365/75 608/1366/75 +f 608/1366/75 610/1367/75 612/1368/75 +f 612/1368/75 614/1369/75 620/1055/75 +f 614/1369/75 616/1370/75 620/1055/75 +f 616/1370/75 618/1371/75 620/1055/75 +f 620/1055/75 622/1372/75 624/1373/75 +f 624/1373/75 626/1374/75 620/1055/75 +f 626/1374/75 628/1056/75 620/1055/75 +f 628/1056/75 630/1375/75 632/1376/75 +f 632/1376/75 634/1377/75 628/1056/75 +f 634/1377/75 636/1057/75 628/1056/75 +f 604/1364/75 608/1366/75 620/1055/75 +f 608/1366/75 612/1368/75 620/1055/75 +f 636/1057/75 596/1360/75 620/1055/75 +f 596/1360/75 604/1364/75 620/1055/75 +f 638/1058/75 319/1103/75 318/1059/75 +f 367/730/75 318/1059/75 321/1060/75 +f 365/728/75 321/1060/75 323/1061/75 +f 639/1062/75 323/1061/75 325/1063/75 +f 640/1064/75 325/1063/75 327/1065/75 +f 641/1066/75 327/1065/75 329/1067/75 +f 643/1069/75 642/1068/75 329/1067/75 +f 644/1071/75 643/1069/75 331/1070/75 +f 645/1073/75 644/1071/75 333/1072/75 +f 646/1075/75 645/1073/75 335/1074/75 +f 647/1077/75 646/1075/75 337/1076/75 +f 648/1079/75 647/1077/75 339/1078/75 +f 648/1079/75 341/1080/75 343/1081/75 +f 649/1082/75 343/1081/75 345/1083/75 +f 650/1084/75 345/1083/75 347/1085/75 +f 651/1086/75 347/1085/75 349/1087/75 +f 652/1088/75 349/1087/75 351/1089/75 +f 653/1090/75 351/1089/75 353/1091/75 +f 655/1093/75 654/1092/75 353/1091/75 +f 656/1095/75 655/1093/75 355/1094/75 +f 657/1097/75 656/1095/75 357/1096/75 +f 658/1099/75 657/1097/75 359/1098/75 +f 659/1101/75 658/1099/75 361/1100/75 +f 638/1058/75 659/1101/75 363/1102/75 +f 682/1126/75 680/1124/75 673/1117/75 +f 680/1124/75 366/729/75 670/1114/75 +f 366/729/75 665/1109/75 670/1114/75 +f 665/1109/75 668/1112/75 667/1111/75 +f 670/1114/75 665/1109/75 667/1111/75 +f 668/1112/75 671/1115/75 681/1125/75 +f 671/1115/75 674/1118/75 679/1123/75 +f 674/1118/75 677/1121/75 679/1123/75 +f 679/1123/75 681/1125/75 671/1115/75 +f 681/1125/75 664/1108/75 668/1112/75 +f 664/1108/75 667/1111/75 668/1112/75 +f 670/1114/75 673/1117/75 680/1124/75 +f 673/1117/75 676/1120/75 682/1126/75 +f 676/1120/75 678/1122/75 682/1126/75 +f 678/1122/75 662/1106/75 661/1105/75 +f 682/1126/75 678/1122/75 661/1105/75 +f 662/1106/75 663/1107/75 675/1119/75 +f 663/1107/75 666/1110/75 672/1116/75 +f 666/1110/75 669/1113/75 672/1116/75 +f 672/1116/75 675/1119/75 663/1107/75 +f 675/1119/75 660/1104/75 662/1106/75 +f 653/1090/127 666/1110/127 663/1107/127 +f 646/1075/145 667/1111/145 664/1108/145 +f 639/1062/137 668/1112/137 665/1109/137 +f 654/1092/128 669/1113/128 666/1110/128 +f 647/1077/146 670/1114/146 667/1111/146 +f 640/1064/138 671/1115/138 668/1112/138 +f 655/1093/129 672/1116/129 669/1113/129 +f 648/1079/147 673/1117/147 670/1114/147 +f 641/1066/140 674/1118/140 671/1115/140 +f 656/1095/130 675/1119/130 672/1116/130 +f 649/1082/123 676/1120/123 673/1117/123 +f 642/1068/141 677/1121/141 674/1118/141 +f 657/1097/131 660/1104/131 675/1119/131 +f 650/1084/124 678/1122/124 676/1120/124 +f 643/1069/142 679/1123/142 677/1121/142 +f 658/1099/132 661/1105/132 660/1104/132 +f 651/1086/158 662/1106/125 678/1122/125 +f 644/1071/143 681/1125/143 679/1123/143 +f 659/1101/133 682/1126/133 661/1105/133 +f 367/730/135 366/729/135 680/1124/135 +f 652/1088/156 663/1107/156 662/1106/156 +f 645/1073/144 664/1108/144 681/1125/144 +f 638/1058/134 680/1124/134 682/1126/134 +f 683/1127/162 394/774/75 395/777/75 +f 395/777/75 396/780/75 683/1127/162 +f 396/780/75 391/769/75 397/781/160 +f 683/1127/162 396/780/75 397/781/160 +f 391/769/75 392/772/75 397/781/160 +f 397/781/160 390/768/127 389/766/161 +f 389/766/161 388/775/130 683/1127/162 +f 684/1378/167 685/1379/167 686/1380/167 +f 687/1381/168 688/1382/168 689/1383/168 +f 690/1384/169 685/1385/169 691/1386/169 +f 692/1387/170 691/1386/170 693/1388/170 +f 694/1389/171 692/1390/171 693/1388/171 +f 695/1391/169 696/1392/169 697/1393/169 +f 698/1394/172 694/1389/172 699/1395/172 +f 700/1396/173 701/1397/173 702/1398/173 +f 699/1395/168 703/1399/168 698/1394/168 +f 704/1400/174 702/1401/174 703/1399/174 +f 705/1402/175 684/1403/175 701/1404/175 +f 706/1405/82 707/1406/82 708/1407/82 +f 709/1408/98 710/1409/98 711/1410/98 +f 712/1411/96 713/1412/96 706/1413/96 +f 714/1414/176 715/1415/176 716/1416/176 +f 717/1417/177 718/1418/177 715/1419/177 +f 715/1420/178 719/1421/178 717/1422/179 +f 720/1423/180 721/1424/180 718/1418/180 +f 722/1425/181 723/1426/181 724/1427/181 +f 725/1428/182 726/1429/182 727/1430/182 +f 721/1424/183 728/1431/183 729/1432/183 +f 730/1433/184 731/1434/185 719/1435/186 +f 731/1436/181 729/1437/181 728/1438/181 +f 732/1439/82 733/1440/82 734/1441/82 +f 735/1442/98 736/1443/98 737/1444/98 +f 738/1445/81 734/1446/81 736/1447/81 +f 737/1448/79 734/1449/79 733/1450/79 +f 739/1451/96 738/1452/96 735/1453/96 +f 740/1454/187 741/1455/187 742/1456/187 +f 743/1457/188 744/1458/188 745/1459/188 +f 744/1460/189 746/1461/189 745/1462/189 +f 747/1463/190 746/1464/190 748/1465/190 +f 742/1466/191 743/1467/191 740/1468/191 +f 749/1469/98 747/1470/98 750/1471/98 +f 751/1472/192 752/1473/192 741/1455/192 +f 747/1474/193 753/1475/193 754/1476/193 +f 755/1477/194 749/1478/194 752/1479/194 +f 751/1480/82 740/1481/82 743/1482/82 +f 756/1483/96 757/1484/96 758/1485/96 +f 756/1486/195 759/1487/195 760/1488/195 +f 761/1489/196 762/1490/196 757/1491/196 +f 763/1492/197 759/1493/197 764/1494/197 +f 762/1495/198 765/1496/198 766/1497/198 +f 767/1498/199 765/1499/199 768/1500/199 +f 764/1501/200 769/1502/200 763/1503/200 +f 768/1504/201 770/1505/201 767/1506/201 +f 771/1507/202 772/1508/202 773/1509/202 +f 774/1510/203 775/1511/203 772/1512/203 +f 776/1513/204 777/1514/204 778/1515/204 +f 775/1516/98 767/1517/98 770/1518/98 +f 779/1519/205 773/1520/205 780/1521/205 +f 777/1522/82 768/1523/82 769/1524/82 +f 778/1525/206 781/1526/206 776/1527/206 +f 780/1528/207 782/1529/207 779/1530/207 +f 783/1531/208 784/1532/208 782/1533/208 +f 785/1534/209 786/1535/209 784/1536/209 +f 787/1537/210 788/1538/210 789/1539/210 +f 790/1540/98 791/1541/98 792/1542/98 +f 793/1543/79 794/1544/79 795/1545/79 +f 796/1546/211 793/1547/211 795/1548/211 +f 797/1549/212 798/1550/212 799/1551/212 +f 792/1552/213 796/1553/213 800/1554/213 +f 789/1555/82 797/1556/82 801/1557/82 +f 802/1558/214 790/1559/214 803/1560/214 +f 804/1561/212 803/1562/212 805/1563/212 +f 806/1564/213 807/1565/213 808/1566/213 +f 809/1567/211 810/1568/211 811/1569/211 +f 811/1570/79 810/1571/79 812/1572/79 +f 813/1573/79 795/1545/79 794/1574/79 +f 800/1575/215 805/1576/215 792/1577/215 +f 788/1578/214 798/1579/214 814/1580/214 +f 806/1581/215 801/1582/215 797/1583/215 +f 815/1584/210 791/1585/210 790/1586/210 +f 815/1587/82 804/1588/82 800/1589/82 +f 816/1590/216 807/1591/98 817/1592/217 +f 713/1593/75 709/1594/75 707/1595/75 +f 739/1596/75 737/1597/75 733/1598/75 +f 818/1599/82 715/1600/82 718/1601/82 +f 818/1599/82 721/1602/82 819/1603/82 +f 819/1603/82 729/1604/82 820/1605/82 +f 725/1428/82 715/1606/82 821/1607/82 +f 725/1428/82 822/1608/82 730/1609/82 +f 727/1430/98 729/1437/82 822/1608/82 +f 823/1610/82 824/1611/82 825/1612/82 +f 820/1605/183 826/1613/183 819/1603/183 +f 818/1599/177 825/1612/177 821/1614/177 +f 727/1430/181 823/1615/181 820/1616/181 +f 821/1607/218 824/1617/218 725/1428/218 +f 819/1603/180 827/1618/180 818/1599/180 +f 828/1619/98 717/1620/98 719/1621/98 +f 829/1622/98 830/1623/98 720/1624/98 +f 829/1625/98 717/1417/98 831/1626/98 +f 724/1427/82 719/1621/98 731/1627/98 +f 724/1427/82 728/1438/98 722/1425/98 +f 832/1628/98 728/1629/98 830/1623/98 +f 833/1630/98 834/1631/98 835/1632/98 +f 831/1633/177 836/1634/177 829/1622/177 +f 828/1619/179 833/1635/179 831/1636/179 +f 832/1628/183 835/1632/183 722/1637/183 +f 724/1427/219 834/1638/219 828/1619/219 +f 829/1622/180 837/1639/180 832/1628/180 +f 721/1424/220 827/1640/220 826/1641/220 +f 715/1642/221 827/1643/221 718/1644/221 +f 729/1645/222 826/1646/222 823/1647/222 +f 726/1648/223 729/1649/223 823/1650/223 +f 730/1651/224 822/1652/224 726/1653/224 +f 715/1654/225 726/1655/226 824/1656/227 +f 728/1431/228 837/1657/228 830/1658/228 +f 728/1659/229 723/1660/229 835/1661/229 +f 719/1662/230 723/1663/230 731/1664/230 +f 723/1665/231 705/1666/232 834/1667/233 +f 836/1668/234 705/1669/235 720/1670/236 +f 836/1671/237 830/1672/237 837/1673/237 +f 838/1674/82 701/1404/82 684/1403/82 +f 838/1674/82 686/1675/82 839/1676/82 +f 840/1677/82 692/1678/82 841/1679/82 +f 842/1680/82 692/1678/82 843/1681/82 +f 840/1677/82 686/1675/82 690/1682/82 +f 844/1683/82 701/1404/82 845/1684/82 +f 689/1383/82 703/1685/82 687/1381/82 +f 844/1683/82 703/1685/82 702/1686/82 +f 842/1680/82 698/1687/82 689/1383/82 +f 846/1688/82 847/1689/82 688/1690/82 +f 842/1680/171 848/1691/171 841/1679/171 +f 838/1674/175 849/1692/175 845/1684/175 +f 844/1683/174 850/1693/174 687/1381/174 +f 840/1677/169 847/1694/169 839/1676/169 +f 839/1676/167 846/1695/167 838/1674/167 +f 689/1383/172 851/1696/172 842/1680/172 +f 845/1684/173 852/1697/173 844/1683/173 +f 841/1679/170 853/1698/170 840/1677/170 +f 854/1699/98 705/1402/98 855/1700/98 +f 854/1699/98 685/1701/98 856/1702/98 +f 697/1393/98 693/1703/98 691/1704/98 +f 857/1705/98 693/1703/98 858/1706/98 +f 697/1393/98 685/1701/98 695/1391/98 +f 859/1707/98 705/1402/98 700/1708/98 +f 860/1709/98 704/1710/98 699/1711/98 +f 859/1707/98 704/1710/98 861/1712/98 +f 857/1705/98 699/1711/98 694/1713/98 +f 862/1714/98 863/1715/98 864/1716/98 +f 854/1699/167 864/1717/167 695/1391/167 +f 857/1705/172 862/1718/172 860/1709/172 +f 859/1707/173 865/1719/173 855/1700/173 +f 697/1393/170 863/1720/170 858/1706/170 +f 860/1709/168 866/1721/168 861/1712/168 +f 858/1706/171 867/1722/171 857/1705/171 +f 855/1700/175 868/1723/175 854/1699/175 +f 861/1712/174 869/1724/174 859/1707/174 +f 693/1388/238 696/1725/238 691/1386/238 +f 693/1726/239 867/1727/239 863/1728/239 +f 867/1729/240 699/1730/240 862/1731/240 +f 862/1732/241 704/1733/241 866/1734/241 +f 704/1733/242 869/1735/242 866/1734/242 +f 869/1735/243 705/1736/243 865/1737/243 +f 868/1738/244 705/1736/244 856/1739/244 +f 868/1738/245 685/1740/245 864/1741/245 +f 685/1740/246 696/1742/246 864/1741/246 +f 692/1390/247 851/1743/247 843/1744/247 +f 692/1745/248 853/1746/248 848/1747/248 +f 853/1746/249 686/1748/249 847/1749/249 +f 846/1750/250 686/1748/250 684/1751/250 +f 701/1752/251 846/1750/251 684/1751/251 +f 701/1752/252 852/1753/252 849/1754/252 +f 852/1753/253 703/1755/253 850/1756/253 +f 703/1755/254 688/1757/254 850/1756/254 +f 698/1758/255 851/1759/256 688/1757/255 +f 709/1760/176 708/1761/176 707/1762/176 +f 870/1763/257 706/1764/96 871/1765/257 +f 871/1766/82 708/1407/82 716/1767/82 +f 730/1768/82 716/1767/82 715/1769/82 +f 719/1770/258 871/1771/258 730/1772/258 +f 872/1773/176 716/1416/176 708/1761/176 +f 873/1774/259 874/1775/260 875/1776/260 +f 875/1777/261 872/1778/98 873/1779/98 +f 876/1780/98 870/1781/262 877/1782/263 +f 878/1783/98 879/1784/98 880/1785/264 +f 880/1786/265 881/1787/265 882/1788/265 +f 876/1789/266 878/1790/266 711/1791/266 +f 877/1792/79 883/1793/79 876/1789/79 +f 711/1791/266 884/1794/266 873/1774/266 +f 885/1795/267 879/1796/268 877/1792/269 +f 884/1797/98 880/1798/264 874/1799/270 +f 881/1787/271 886/1800/272 882/1788/273 +f 875/1776/274 886/1800/274 887/1801/274 +f 880/1786/264 886/1800/275 874/1775/270 +f 877/1802/263 870/1803/262 881/1804/276 +f 684/1378/167 856/1805/167 685/1379/167 +f 687/1381/168 850/1693/168 688/1382/168 +f 690/1384/169 686/1806/169 685/1385/169 +f 692/1387/170 690/1384/170 691/1386/170 +f 694/1389/171 843/1744/171 692/1390/171 +f 695/1391/169 864/1717/169 696/1392/169 +f 698/1394/172 843/1744/172 694/1389/172 +f 700/1396/173 705/1807/173 701/1397/173 +f 699/1395/168 704/1400/168 703/1399/168 +f 704/1400/174 700/1808/174 702/1401/174 +f 705/1402/175 856/1702/175 684/1403/175 +f 706/1405/82 713/1809/82 707/1406/82 +f 712/1810/98 876/1811/98 710/1812/98 +f 876/1811/98 711/1813/98 710/1812/98 +f 711/1813/98 873/1814/98 709/1815/98 +f 873/1814/98 872/1816/98 709/1815/98 +f 712/1411/96 710/1817/96 713/1412/96 +f 714/1414/176 717/1818/176 715/1415/176 +f 717/1417/177 720/1423/177 718/1418/177 +f 715/1420/178 730/1819/277 719/1421/178 +f 720/1423/180 830/1658/180 721/1424/180 +f 722/1425/181 835/1820/181 723/1426/181 +f 725/1428/182 824/1617/182 726/1429/182 +f 721/1424/183 830/1658/183 728/1431/183 +f 730/1433/184 822/1821/278 731/1434/185 +f 731/1436/181 822/1608/181 729/1437/181 +f 732/1439/82 739/1822/82 733/1440/82 +f 735/1442/98 738/1823/98 736/1443/98 +f 738/1445/81 732/1824/81 734/1446/81 +f 737/1448/79 736/1825/79 734/1449/79 +f 739/1451/96 732/1826/96 738/1452/96 +f 740/1454/187 751/1472/187 741/1455/187 +f 743/1457/188 750/1827/188 744/1458/188 +f 744/1460/189 748/1828/189 746/1461/189 +f 747/1463/190 754/1829/190 746/1464/190 +f 742/1466/191 750/1830/191 743/1467/191 +f 748/1831/98 744/1832/98 750/1471/98 +f 750/1471/98 742/1833/98 741/1834/98 +f 741/1834/98 752/1835/98 749/1469/98 +f 747/1470/98 748/1831/98 750/1471/98 +f 741/1834/98 749/1469/98 750/1471/98 +f 751/1472/192 755/1836/192 752/1473/192 +f 747/1474/193 749/1837/193 753/1475/193 +f 755/1477/194 753/1838/194 749/1478/194 +f 745/1839/82 746/1840/82 743/1482/82 +f 746/1840/82 754/1841/82 743/1482/82 +f 754/1841/82 753/1842/82 743/1482/82 +f 753/1842/82 755/1843/82 751/1480/82 +f 743/1482/82 753/1842/82 751/1480/82 +f 756/1483/96 761/1844/96 757/1484/96 +f 756/1486/195 758/1845/195 759/1487/195 +f 761/1489/196 888/1846/196 762/1490/196 +f 763/1492/197 760/1847/197 759/1493/197 +f 762/1495/198 888/1848/198 765/1496/198 +f 767/1498/199 766/1849/199 765/1499/199 +f 764/1501/200 775/1850/200 769/1502/200 +f 768/1504/201 777/1851/201 770/1505/201 +f 771/1507/202 774/1852/202 772/1508/202 +f 774/1510/203 769/1853/203 775/1511/203 +f 776/1513/204 770/1854/204 777/1514/204 +f 773/1855/98 772/1856/98 776/1857/98 +f 772/1856/98 775/1516/98 770/1518/98 +f 775/1516/98 764/1858/98 767/1517/98 +f 764/1858/98 759/1859/98 767/1517/98 +f 759/1859/98 758/1860/98 757/1861/98 +f 759/1859/98 757/1861/98 762/1862/98 +f 785/1863/98 783/1864/98 781/1865/98 +f 783/1864/98 780/1866/98 781/1865/98 +f 759/1859/98 762/1862/98 766/1867/98 +f 759/1859/98 766/1867/98 767/1517/98 +f 781/1865/98 780/1866/98 773/1855/98 +f 776/1857/98 781/1865/98 773/1855/98 +f 770/1518/98 776/1857/98 772/1856/98 +f 779/1519/205 771/1868/205 773/1520/205 +f 779/1869/82 782/1870/82 786/1871/82 +f 782/1870/82 784/1872/82 786/1871/82 +f 769/1524/82 774/1873/82 777/1522/82 +f 774/1873/82 771/1874/82 778/1875/82 +f 760/1876/82 763/1877/82 768/1523/82 +f 763/1877/82 769/1524/82 768/1523/82 +f 761/1878/82 756/1879/82 760/1876/82 +f 888/1880/82 761/1878/82 760/1876/82 +f 771/1874/82 779/1869/82 786/1871/82 +f 771/1874/82 786/1871/82 778/1875/82 +f 765/1881/82 888/1880/82 760/1876/82 +f 768/1523/82 765/1881/82 760/1876/82 +f 774/1873/82 778/1875/82 777/1522/82 +f 778/1525/206 786/1882/206 781/1526/206 +f 780/1528/207 783/1883/207 782/1529/207 +f 783/1531/208 785/1884/208 784/1532/208 +f 785/1534/209 781/1885/209 786/1535/209 +f 787/1537/210 812/1886/210 788/1538/210 +f 791/1541/98 793/1887/98 792/1542/98 +f 793/1887/98 889/1888/98 792/1542/98 +f 792/1542/98 805/1889/98 790/1540/98 +f 805/1889/98 803/1890/98 790/1540/98 +f 793/1543/79 791/1891/79 794/1544/79 +f 796/1546/211 889/1892/211 793/1547/211 +f 797/1549/212 814/1893/212 798/1550/212 +f 792/1552/213 889/1894/213 796/1553/213 +f 811/1895/82 787/1896/82 801/1557/82 +f 787/1896/82 789/1555/82 801/1557/82 +f 789/1555/82 814/1897/82 797/1556/82 +f 801/1557/82 809/1898/82 811/1895/82 +f 802/1558/214 815/1899/214 790/1559/214 +f 804/1561/212 802/1900/212 803/1562/212 +f 808/1566/213 809/1901/213 801/1902/213 +f 806/1564/213 817/1903/213 807/1565/213 +f 808/1566/213 801/1902/213 806/1564/213 +f 809/1567/211 808/1904/211 810/1568/211 +f 812/1572/79 787/1905/79 811/1570/79 +f 810/1571/79 816/1906/79 812/1572/79 +f 800/1575/215 804/1907/215 805/1576/215 +f 814/1580/214 789/1908/214 788/1578/214 +f 788/1578/214 890/1909/214 798/1579/214 +f 797/1583/215 799/1910/215 806/1581/215 +f 799/1910/215 891/1911/215 806/1581/215 +f 891/1911/215 817/1912/215 806/1581/215 +f 815/1584/210 794/1913/210 791/1585/210 +f 795/1914/82 794/1915/82 800/1589/82 +f 794/1915/82 815/1587/82 800/1589/82 +f 815/1587/82 802/1916/82 804/1588/82 +f 800/1589/82 796/1917/82 795/1914/82 +f 817/1592/217 891/1918/279 788/1919/280 +f 891/1918/279 890/1920/281 788/1919/280 +f 788/1919/280 812/1921/282 817/1592/217 +f 812/1921/282 816/1590/216 817/1592/217 +f 713/1593/75 710/1922/75 709/1594/75 +f 739/1596/75 735/1923/75 737/1597/75 +f 818/1599/82 821/1614/82 715/1600/82 +f 818/1924/82 718/1418/82 721/1424/82 +f 819/1603/82 721/1602/82 729/1604/82 +f 725/1428/82 730/1609/82 715/1606/82 +f 725/1428/82 727/1430/98 822/1608/82 +f 727/1430/98 820/1616/82 729/1437/82 +f 825/1925/82 827/1640/82 826/1641/82 +f 823/1610/82 726/1926/82 824/1611/82 +f 825/1925/82 826/1641/82 823/1927/82 +f 820/1605/183 823/1610/183 826/1613/183 +f 818/1599/177 827/1618/177 825/1612/177 +f 727/1430/181 726/1429/181 823/1615/181 +f 821/1607/218 825/1928/218 824/1617/218 +f 819/1929/180 826/1641/180 827/1640/180 +f 828/1619/98 831/1636/98 717/1620/98 +f 829/1622/98 832/1628/98 830/1623/98 +f 829/1625/98 720/1423/98 717/1417/98 +f 724/1427/82 828/1619/98 719/1621/98 +f 724/1427/82 731/1627/98 728/1438/98 +f 832/1628/98 722/1637/98 728/1629/98 +f 834/1631/98 723/1930/98 835/1632/98 +f 835/1931/98 837/1657/98 833/1932/98 +f 837/1657/98 836/1933/98 833/1932/98 +f 831/1626/177 833/1932/177 836/1933/177 +f 828/1619/179 834/1638/179 833/1635/179 +f 832/1628/183 837/1639/183 835/1632/183 +f 724/1427/219 723/1426/219 834/1638/219 +f 829/1622/180 836/1634/180 837/1639/180 +f 721/1424/220 718/1418/220 827/1640/220 +f 715/1642/221 825/1934/221 827/1643/221 +f 729/1645/222 721/1935/222 826/1646/222 +f 726/1648/223 822/1936/223 729/1649/223 +f 824/1656/227 825/1937/283 715/1654/225 +f 715/1654/225 730/1938/284 726/1655/226 +f 728/1431/228 835/1931/228 837/1657/228 +f 728/1659/229 731/1939/229 723/1660/229 +f 719/1940/285 705/1666/232 723/1665/231 +f 705/1666/232 833/1941/286 834/1667/233 +f 836/1668/234 833/1942/287 705/1669/235 +f 836/1668/288 720/1670/288 830/1943/288 +f 838/1674/82 845/1684/82 701/1404/82 +f 838/1674/82 684/1403/82 686/1675/82 +f 840/1677/82 690/1682/82 692/1678/82 +f 842/1680/82 841/1679/82 692/1678/82 +f 840/1677/82 839/1676/82 686/1675/82 +f 844/1683/82 702/1686/82 701/1404/82 +f 689/1383/82 698/1687/82 703/1685/82 +f 844/1683/82 687/1381/82 703/1685/82 +f 842/1680/82 843/1681/82 698/1687/82 +f 848/1944/82 851/1743/82 688/1690/82 +f 850/1945/82 852/1946/82 849/1947/82 +f 853/1948/82 848/1944/82 847/1689/82 +f 848/1944/82 688/1690/82 847/1689/82 +f 688/1690/82 850/1945/82 846/1688/82 +f 850/1945/82 849/1947/82 846/1688/82 +f 842/1680/171 851/1696/171 848/1691/171 +f 838/1674/175 846/1695/175 849/1692/175 +f 844/1683/174 852/1697/174 850/1693/174 +f 840/1677/169 853/1698/169 847/1694/169 +f 839/1676/167 847/1694/167 846/1695/167 +f 689/1383/172 688/1382/172 851/1696/172 +f 845/1684/173 849/1692/173 852/1697/173 +f 841/1679/170 848/1691/170 853/1698/170 +f 854/1699/98 856/1702/98 705/1402/98 +f 854/1699/98 695/1391/98 685/1701/98 +f 697/1393/98 858/1706/98 693/1703/98 +f 857/1705/98 694/1713/98 693/1703/98 +f 697/1393/98 691/1704/98 685/1701/98 +f 859/1707/98 855/1700/98 705/1402/98 +f 860/1709/98 861/1712/98 704/1710/98 +f 859/1707/98 700/1708/98 704/1710/98 +f 857/1705/98 860/1709/98 699/1711/98 +f 863/1715/98 696/1725/98 864/1716/98 +f 864/1716/98 868/1949/98 862/1714/98 +f 868/1949/98 865/1950/98 866/1951/98 +f 862/1714/98 868/1949/98 866/1951/98 +f 865/1950/98 869/1952/98 866/1951/98 +f 862/1714/98 867/1953/98 863/1715/98 +f 854/1699/167 868/1723/167 864/1717/167 +f 857/1705/172 867/1722/172 862/1718/172 +f 859/1707/173 869/1724/173 865/1719/173 +f 697/1393/170 696/1392/170 863/1720/170 +f 860/1709/168 862/1718/168 866/1721/168 +f 858/1706/171 863/1720/171 867/1722/171 +f 855/1700/175 865/1719/175 868/1723/175 +f 861/1712/174 866/1721/174 869/1724/174 +f 693/1388/238 863/1715/238 696/1725/238 +f 693/1726/239 694/1954/239 867/1727/239 +f 867/1729/240 694/1955/240 699/1730/240 +f 862/1732/241 699/1956/241 704/1733/241 +f 704/1733/242 700/1957/242 869/1735/242 +f 869/1735/243 700/1957/243 705/1736/243 +f 868/1738/244 865/1737/244 705/1736/244 +f 868/1738/245 856/1739/245 685/1740/245 +f 685/1740/246 691/1958/246 696/1742/246 +f 692/1390/247 848/1944/247 851/1743/247 +f 692/1745/248 690/1959/248 853/1746/248 +f 853/1746/249 690/1959/249 686/1748/249 +f 846/1750/250 847/1749/250 686/1748/250 +f 701/1752/251 849/1754/251 846/1750/251 +f 701/1752/252 702/1960/252 852/1753/252 +f 852/1753/253 702/1960/253 703/1755/253 +f 703/1755/254 698/1758/254 688/1757/254 +f 698/1758/255 843/1961/256 851/1759/256 +f 709/1760/176 872/1773/176 708/1761/176 +f 870/1763/257 712/1962/96 706/1764/96 +f 871/1766/82 706/1405/82 708/1407/82 +f 730/1768/82 871/1766/82 716/1767/82 +f 719/1770/257 870/1963/257 871/1771/257 +f 872/1773/176 714/1414/176 716/1416/176 +f 873/1774/259 884/1794/259 874/1775/260 +f 875/1964/261 714/1965/289 872/1966/98 +f 876/1967/98 712/1968/98 870/1969/262 +f 878/1783/98 883/1970/98 879/1784/98 +f 880/1786/265 885/1795/265 881/1787/265 +f 876/1789/266 883/1793/266 878/1790/266 +f 877/1792/79 879/1796/79 883/1793/79 +f 711/1791/266 878/1790/266 884/1794/266 +f 885/1795/267 880/1786/290 879/1796/268 +f 884/1797/98 878/1971/98 880/1798/264 +f 881/1787/271 887/1801/291 886/1800/272 +f 875/1776/274 874/1775/274 886/1800/274 +f 880/1786/264 882/1788/275 886/1800/275 +f 717/1972/292 714/1973/289 887/1974/293 +f 714/1973/289 875/1975/261 887/1974/293 +f 870/1803/262 719/1976/294 881/1804/276 +f 719/1976/294 717/1972/292 887/1974/293 +f 881/1804/276 719/1976/294 887/1974/293 +f 885/1977/295 877/1802/263 881/1804/276 +f 892/1978/296 893/1979/296 894/1980/296 +f 895/1981/297 896/1982/297 893/1979/297 +f 897/1983/298 898/1984/298 896/1982/298 +f 899/1985/299 900/1986/299 898/1984/299 +f 901/1987/300 902/1988/300 900/1986/300 +f 903/1989/301 904/1990/301 902/1988/301 +f 905/1991/302 906/1992/302 904/1990/302 +f 907/1993/303 908/1994/303 906/1992/303 +f 909/1995/304 910/1996/304 908/1994/304 +f 911/1997/305 912/1998/305 910/1996/305 +f 913/1999/306 914/2000/306 912/1998/306 +f 915/2001/307 916/2002/307 914/2000/307 +f 917/2003/308 918/2004/308 916/2002/308 +f 919/2005/309 920/2006/309 918/2004/309 +f 921/2007/310 922/2008/310 920/2006/310 +f 923/2009/311 924/2010/311 922/2008/311 +f 925/2011/312 926/2012/312 924/2010/312 +f 927/2013/313 928/2014/313 926/2012/313 +f 929/2015/314 930/2016/314 928/2014/314 +f 931/2017/315 932/2018/315 930/2016/315 +f 933/2019/316 934/2020/316 932/2018/316 +f 935/2021/317 936/2022/317 934/2020/317 +f 937/2023/318 938/2024/318 936/2022/318 +f 939/2025/319 940/2026/319 938/2024/319 +f 941/2027/312 942/2028/312 943/2029/312 +f 941/2027/75 895/2030/75 892/2031/75 +f 943/2029/75 897/2032/75 895/2030/75 +f 944/2033/75 897/2032/75 945/2034/75 +f 946/2035/75 899/2036/75 944/2033/75 +f 946/2035/75 903/2037/75 901/2038/75 +f 947/2039/75 905/2040/75 903/2037/75 +f 948/2041/75 905/2040/75 949/2042/75 +f 950/2043/75 907/2044/75 948/2041/75 +f 950/2043/75 911/2045/75 909/2046/75 +f 951/2047/75 913/2048/75 911/2045/75 +f 952/2049/75 913/2048/75 953/2050/75 +f 954/2051/75 915/2052/75 952/2049/75 +f 954/2051/75 919/2053/75 917/2054/75 +f 955/2055/75 921/2056/75 919/2053/75 +f 956/2057/75 921/2056/75 957/2058/75 +f 958/2059/75 923/2060/75 956/2057/75 +f 958/2059/75 927/2061/75 925/2062/75 +f 959/2063/75 929/2064/75 927/2061/75 +f 960/2065/75 929/2064/75 961/2066/75 +f 962/2067/75 931/2068/75 960/2065/75 +f 962/2067/75 935/2069/75 933/2070/75 +f 963/2071/75 937/2072/75 935/2069/75 +f 964/2073/75 939/2074/75 937/2072/75 +f 965/2075/75 966/2076/75 939/2074/75 +f 967/2077/307 968/2078/307 969/2079/307 +f 957/2058/320 970/2080/320 956/2057/320 +f 943/2029/313 971/2081/313 945/2034/313 +f 956/2057/321 972/2082/321 958/2059/321 +f 945/2034/314 973/2083/314 944/2033/314 +f 958/2059/296 974/2084/296 959/2063/296 +f 944/2033/315 975/2085/315 946/2035/315 +f 959/2063/297 976/2086/297 961/2066/297 +f 946/2035/316 977/2087/316 947/2039/316 +f 961/2066/298 978/2088/298 960/2065/298 +f 947/2039/317 979/2089/317 949/2042/317 +f 960/2065/299 980/2090/299 962/2067/299 +f 949/2042/318 981/2091/318 948/2041/318 +f 962/2067/300 982/2092/300 963/2071/300 +f 948/2041/319 983/2093/319 950/2043/319 +f 963/2071/301 984/2094/301 964/2073/301 +f 950/2043/322 985/2095/322 951/2047/322 +f 964/2073/302 986/2096/302 965/2075/302 +f 951/2047/323 987/2097/323 953/2050/323 +f 969/2079/308 988/2098/308 989/2099/308 +f 965/2075/303 990/2100/303 991/2101/303 +f 953/2050/324 992/2102/324 952/2049/324 +f 989/2099/309 993/2103/309 994/2104/309 +f 991/2101/304 995/2105/304 996/2106/304 +f 952/2049/325 997/2107/325 954/2051/325 +f 994/2104/310 998/2108/310 999/2109/310 +f 996/2106/305 1000/2110/305 1001/2111/305 +f 954/2051/326 1002/2112/326 955/2055/326 +f 999/2109/311 1003/2113/311 941/2027/311 +f 1001/2111/306 1004/2114/306 967/2077/306 +f 955/2055/327 1005/2115/327 957/2058/327 +f 1006/2116/81 894/2117/328 893/2118/81 +f 1006/2116/81 896/2119/81 1007/2120/81 +f 1008/2121/81 896/2119/81 898/2122/81 +f 1008/2121/81 900/2123/81 1009/2124/81 +f 1010/2125/81 900/2123/81 902/2126/81 +f 1010/2125/81 904/2127/81 1011/2128/81 +f 1011/2128/81 906/2129/81 1012/2130/81 +f 1012/2130/81 908/2131/81 1013/2132/81 +f 1014/2133/81 908/2131/81 910/2134/81 +f 1014/2133/81 912/2135/81 1015/2136/81 +f 1016/2137/81 912/2135/81 914/2138/81 +f 1016/2137/81 916/2139/81 1017/2140/81 +f 1018/2141/81 916/2139/81 918/2142/81 +f 1018/2141/81 920/2143/81 1019/2144/81 +f 1020/2145/81 920/2143/81 922/2146/81 +f 1020/2145/81 924/2147/81 1021/2148/81 +f 1022/2149/81 924/2147/81 926/2150/81 +f 1022/2149/81 928/2151/81 1023/2152/81 +f 1024/2153/81 928/2151/81 930/2154/81 +f 1024/2153/81 932/2155/81 1025/2156/81 +f 1026/2157/81 932/2155/81 934/2158/81 +f 1026/2157/81 936/2159/81 1027/2160/81 +f 1028/2161/81 936/2159/81 938/2162/81 +f 1028/2161/81 940/2163/329 1029/2164/81 +f 1030/2165/82 1031/2166/82 1032/2167/82 +f 1033/2168/75 1034/2169/75 1031/2166/75 +f 1035/2170/98 1036/2171/98 1034/2169/98 +f 1037/2172/81 1032/2173/81 1036/2171/81 +f 1034/2169/79 1032/2174/79 1031/2175/79 +f 892/1978/330 1038/2176/331 1039/2177/330 +f 940/2026/332 1040/2178/322 1041/2179/322 +f 989/2099/75 1042/2180/75 969/2079/75 +f 994/2104/75 1043/2181/75 989/2099/75 +f 999/2109/75 1044/2182/75 994/2104/75 +f 941/2027/75 1039/2183/75 1045/2184/75 +f 991/2101/75 1046/2185/75 1040/2186/75 +f 996/2106/75 1047/2187/75 1046/2185/75 +f 1001/2111/75 1048/2188/75 1047/2187/75 +f 967/2077/75 1042/2180/75 1048/2188/75 +f 1049/2189/81 1050/2190/81 1051/2191/81 +f 1052/2192/81 1051/2191/81 1053/2193/81 +f 1054/2194/81 1053/2193/81 1055/2195/81 +f 1056/2196/81 1054/2194/81 1055/2195/81 +f 1029/2164/81 940/2163/329 1041/2197/333 +f 1057/2198/81 1058/2199/81 1059/2200/81 +f 1060/2201/81 1061/2202/81 1057/2198/81 +f 1050/2190/81 1062/2203/81 1060/2201/81 +f 1038/2204/96 1037/2172/96 1035/2170/96 +f 1033/2205/96 1041/2206/96 1040/2207/96 +f 892/1978/296 895/1981/296 893/1979/296 +f 895/1981/297 897/1983/297 896/1982/297 +f 897/1983/298 899/1985/298 898/1984/298 +f 899/1985/299 901/1987/299 900/1986/299 +f 901/1987/300 903/1989/300 902/1988/300 +f 903/1989/301 905/1991/301 904/1990/301 +f 905/1991/302 907/1993/302 906/1992/302 +f 907/1993/303 909/1995/303 908/1994/303 +f 909/1995/304 911/1997/304 910/1996/304 +f 911/1997/305 913/1999/305 912/1998/305 +f 913/1999/306 915/2001/306 914/2000/306 +f 915/2001/307 917/2003/307 916/2002/307 +f 917/2003/308 919/2005/308 918/2004/308 +f 919/2005/309 921/2007/309 920/2006/309 +f 921/2007/310 923/2009/310 922/2008/310 +f 923/2009/311 925/2011/311 924/2010/311 +f 925/2011/312 927/2013/312 926/2012/312 +f 927/2013/313 929/2015/313 928/2014/313 +f 929/2015/314 931/2017/314 930/2016/314 +f 931/2017/315 933/2019/315 932/2018/315 +f 933/2019/316 935/2021/316 934/2020/316 +f 935/2021/317 937/2023/317 936/2022/317 +f 937/2023/318 939/2025/318 938/2024/318 +f 939/2025/319 966/2208/319 940/2026/319 +f 941/2027/312 1003/2113/312 942/2028/312 +f 941/2027/75 943/2029/75 895/2030/75 +f 943/2029/75 945/2034/75 897/2032/75 +f 944/2033/75 899/2036/75 897/2032/75 +f 946/2035/75 901/2038/75 899/2036/75 +f 946/2035/75 947/2039/75 903/2037/75 +f 947/2039/75 949/2042/75 905/2040/75 +f 948/2041/75 907/2044/75 905/2040/75 +f 950/2043/75 909/2046/75 907/2044/75 +f 950/2043/75 951/2047/75 911/2045/75 +f 951/2047/75 953/2050/75 913/2048/75 +f 952/2049/75 915/2052/75 913/2048/75 +f 954/2051/75 917/2054/75 915/2052/75 +f 954/2051/75 955/2055/75 919/2053/75 +f 955/2055/75 957/2058/75 921/2056/75 +f 956/2057/75 923/2060/75 921/2056/75 +f 958/2059/75 925/2062/75 923/2060/75 +f 958/2059/75 959/2063/75 927/2061/75 +f 959/2063/75 961/2066/75 929/2064/75 +f 960/2065/75 931/2068/75 929/2064/75 +f 962/2067/75 933/2070/75 931/2068/75 +f 962/2067/75 963/2071/75 935/2069/75 +f 963/2071/75 964/2073/75 937/2072/75 +f 964/2073/75 965/2075/75 939/2074/75 +f 965/2075/75 991/2101/75 966/2076/75 +f 967/2077/307 1004/2114/307 968/2078/307 +f 957/2058/320 1005/2115/320 970/2080/320 +f 943/2029/313 942/2028/313 971/2081/313 +f 956/2057/321 970/2080/321 972/2082/321 +f 945/2034/314 971/2081/314 973/2083/314 +f 958/2059/296 972/2082/296 974/2084/296 +f 944/2033/315 973/2083/315 975/2085/315 +f 959/2063/297 974/2084/297 976/2086/297 +f 946/2035/316 975/2085/316 977/2087/316 +f 961/2066/298 976/2086/298 978/2088/298 +f 947/2039/317 977/2087/317 979/2089/317 +f 960/2065/299 978/2088/299 980/2090/299 +f 949/2042/318 979/2089/318 981/2091/318 +f 962/2067/300 980/2090/300 982/2092/300 +f 948/2041/319 981/2091/319 983/2093/319 +f 963/2071/301 982/2092/301 984/2094/301 +f 950/2043/322 983/2093/322 985/2095/322 +f 964/2073/302 984/2094/302 986/2096/302 +f 951/2047/323 985/2095/323 987/2097/323 +f 969/2079/308 968/2078/308 988/2098/308 +f 965/2075/303 986/2096/303 990/2100/303 +f 953/2050/324 987/2097/324 992/2102/324 +f 989/2099/309 988/2098/309 993/2103/309 +f 991/2101/304 990/2100/304 995/2105/304 +f 952/2049/325 992/2102/325 997/2107/325 +f 994/2104/310 993/2103/310 998/2108/310 +f 996/2106/305 995/2105/305 1000/2110/305 +f 954/2051/326 997/2107/326 1002/2112/326 +f 999/2109/311 998/2108/311 1003/2113/311 +f 1001/2111/306 1000/2110/306 1004/2114/306 +f 955/2055/327 1002/2112/327 1005/2115/327 +f 1006/2116/81 1056/2196/81 894/2117/328 +f 1006/2116/81 893/2118/81 896/2119/81 +f 1008/2121/81 1007/2120/81 896/2119/81 +f 1008/2121/81 898/2122/81 900/2123/81 +f 1010/2125/81 1009/2124/81 900/2123/81 +f 1010/2125/81 902/2126/81 904/2127/81 +f 1011/2128/81 904/2127/81 906/2129/81 +f 1012/2130/81 906/2129/81 908/2131/81 +f 1014/2133/81 1013/2132/81 908/2131/81 +f 1014/2133/81 910/2134/81 912/2135/81 +f 1016/2137/81 1015/2136/81 912/2135/81 +f 1016/2137/81 914/2138/81 916/2139/81 +f 1018/2141/81 1017/2140/81 916/2139/81 +f 1018/2141/81 918/2142/81 920/2143/81 +f 1020/2145/81 1019/2144/81 920/2143/81 +f 1020/2145/81 922/2146/81 924/2147/81 +f 1022/2149/81 1021/2148/81 924/2147/81 +f 1022/2149/81 926/2150/81 928/2151/81 +f 1024/2153/81 1023/2152/81 928/2151/81 +f 1024/2153/81 930/2154/81 932/2155/81 +f 1026/2157/81 1025/2156/81 932/2155/81 +f 1026/2157/81 934/2158/81 936/2159/81 +f 1028/2161/81 1027/2160/81 936/2159/81 +f 1028/2161/81 938/2162/81 940/2163/329 +f 1030/2165/82 1033/2168/82 1031/2166/82 +f 1033/2168/75 1035/2170/75 1034/2169/75 +f 1035/2170/98 1037/2172/98 1036/2171/98 +f 1037/2172/81 1030/2209/81 1032/2173/81 +f 1034/2169/79 1036/2171/79 1032/2174/79 +f 892/1978/330 894/1980/334 1038/2176/331 +f 940/2026/332 966/2208/322 1040/2178/322 +f 989/2099/75 1043/2181/75 1042/2180/75 +f 994/2104/75 1044/2182/75 1043/2181/75 +f 999/2109/75 1045/2184/75 1044/2182/75 +f 1045/2184/75 999/2109/75 941/2027/75 +f 941/2027/75 892/2031/75 1039/2183/75 +f 1040/2186/75 966/2076/75 991/2101/75 +f 991/2101/75 996/2106/75 1046/2185/75 +f 996/2106/75 1001/2111/75 1047/2187/75 +f 1001/2111/75 967/2077/75 1048/2188/75 +f 967/2077/75 969/2079/75 1042/2180/75 +f 1049/2189/81 1063/2210/81 1050/2190/81 +f 1052/2192/81 1049/2189/81 1051/2191/81 +f 1054/2194/81 1052/2192/81 1053/2193/81 +f 1055/2195/81 1038/2211/335 1056/2196/81 +f 1038/2211/335 894/2117/328 1056/2196/81 +f 1041/2197/333 1059/2200/81 1029/2164/81 +f 1059/2200/81 1058/2199/81 1029/2164/81 +f 1057/2198/81 1061/2202/81 1058/2199/81 +f 1060/2201/81 1062/2203/81 1061/2202/81 +f 1050/2190/81 1063/2210/81 1062/2203/81 +f 1059/2212/96 1041/2206/96 1030/2213/96 +f 1035/2170/96 1033/2205/96 1042/2214/96 +f 1033/2205/96 1040/2207/96 1046/2215/96 +f 1046/2215/96 1047/2216/96 1033/2205/96 +f 1047/2216/96 1048/2217/96 1033/2205/96 +f 1033/2205/96 1048/2217/96 1042/2214/96 +f 1059/2212/96 1030/2213/96 1057/2218/96 +f 1030/2213/96 1037/2172/96 1050/2219/96 +f 1057/2218/96 1030/2213/96 1060/2220/96 +f 1050/2219/96 1060/2220/96 1030/2213/96 +f 1042/2214/96 1043/2221/96 1035/2170/96 +f 1043/2221/96 1044/2222/96 1035/2170/96 +f 1055/2223/96 1053/2224/96 1037/2172/96 +f 1053/2224/96 1051/2225/96 1037/2172/96 +f 1051/2225/96 1050/2219/96 1037/2172/96 +f 1044/2222/96 1045/2226/96 1035/2170/96 +f 1045/2226/96 1039/2227/96 1035/2170/96 +f 1038/2204/96 1055/2223/96 1037/2172/96 +f 1039/2227/96 1038/2204/96 1035/2170/96 +f 1033/2205/96 1030/2213/96 1041/2206/96 +f 1064/2228/336 1065/2229/336 1066/2230/336 +f 1065/2229/337 1067/2231/337 1066/2230/337 +f 1068/2232/338 1069/2233/338 1067/2231/338 +f 1070/2234/339 1064/2235/339 1069/2233/339 +f 1067/2231/79 1064/2236/79 1066/2237/79 +f 1065/2238/96 1070/2234/96 1068/2232/96 +f 1071/2239/340 1072/2240/340 1073/2241/340 +f 1072/2240/341 1074/2242/341 1073/2241/341 +f 1075/2243/342 1076/2244/342 1074/2242/342 +f 1077/2245/343 1071/2246/344 1076/2247/344 +f 1078/2248/79 1079/2249/79 1080/2250/79 +f 1072/2251/96 1077/2252/96 1075/2243/96 +f 1076/2244/344 1079/2253/344 1081/2254/344 +f 1074/2242/342 1081/2254/342 1078/2248/342 +f 1073/2241/341 1078/2248/341 1080/2255/341 +f 1079/2256/340 1073/2241/340 1080/2255/340 +f 1082/2257/345 1083/2258/345 1084/2259/345 +f 1084/2259/346 1085/2260/346 1086/2261/346 +f 1085/2260/347 1087/2262/347 1086/2261/348 +f 1088/2263/349 1082/2264/349 1087/2262/349 +f 1086/2261/350 1082/2265/350 1084/2266/350 +f 1083/2267/351 1088/2263/351 1085/2260/351 +f 1089/2268/352 1090/2269/352 1091/2270/352 +f 1090/2269/353 1092/2271/353 1091/2270/353 +f 1093/2272/354 1094/2273/354 1092/2271/354 +f 1095/2274/355 1089/2275/355 1094/2273/355 +f 1092/2271/356 1089/2276/356 1091/2277/356 +f 1090/2278/357 1095/2274/357 1093/2272/357 +f 1064/2228/336 1096/2279/336 1065/2229/336 +f 1065/2229/337 1068/2232/337 1067/2231/337 +f 1068/2232/338 1070/2234/338 1069/2233/338 +f 1070/2234/339 1096/2280/339 1064/2235/339 +f 1067/2231/79 1069/2233/79 1064/2236/79 +f 1065/2238/96 1096/2281/96 1070/2234/96 +f 1071/2239/340 1097/2282/340 1072/2240/340 +f 1072/2240/341 1075/2243/341 1074/2242/341 +f 1075/2243/342 1077/2252/342 1076/2244/342 +f 1077/2245/343 1097/2283/343 1071/2246/344 +f 1078/2248/79 1081/2254/79 1079/2249/79 +f 1072/2251/96 1097/2284/96 1077/2252/96 +f 1076/2244/344 1071/2285/344 1079/2253/344 +f 1074/2242/342 1076/2244/342 1081/2254/342 +f 1073/2241/341 1074/2242/341 1078/2248/341 +f 1079/2256/340 1071/2239/340 1073/2241/340 +f 1082/2257/345 1098/2286/345 1083/2258/345 +f 1084/2259/346 1083/2258/346 1085/2260/346 +f 1085/2260/347 1088/2263/347 1087/2262/347 +f 1088/2263/349 1098/2287/349 1082/2264/349 +f 1086/2261/350 1087/2262/350 1082/2265/350 +f 1083/2267/351 1098/2288/351 1088/2263/351 +f 1089/2268/352 1099/2289/352 1090/2269/352 +f 1090/2269/353 1093/2272/353 1092/2271/353 +f 1093/2272/354 1095/2274/354 1094/2273/354 +f 1095/2274/355 1099/2290/355 1089/2275/355 +f 1092/2271/356 1094/2273/356 1089/2276/356 +f 1090/2278/357 1099/2291/357 1095/2274/357 diff --git a/src/main/resources/assets/hbm/textures/misc/scope_bolt.png b/src/main/resources/assets/hbm/textures/misc/scope_bolt.png new file mode 100644 index 0000000000000000000000000000000000000000..2c40eeb663d5d13f1dc0225e997e0a2d6d2207b8 GIT binary patch literal 8544 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 D!HN}@ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/benelli_tex.png b/src/main/resources/assets/hbm/textures/models/weapons/benelli_tex.png new file mode 100644 index 0000000000000000000000000000000000000000..2381fab496721827d1231c85015bf1e0710656fd GIT binary patch literal 1499 zcmV<11tj{3P) zaB^>EX>4U6ba`-PAZ2)IW&i+q+U-_tmg6W4{Ld-&2uL6V$Kmt6y}=xROEyj?nV#NE zdVWrL23g33TqSVa{PFK{|KLX{WEVwqDk*vVVu^(-jO@=}IePN(==Y7kj0eBtYl7hl z7{ht1b;nou<>P^C4Qh{mm-h_k4RkHJ0fVh>=>duCw3+vg?b}oXxVu>$QJ|Oa-n10a;(=WW92~zWda!CkzY3V)#UFqw^lcb z$mf%%dgHnZpa?qUdg4MSZq6vM}RycGHh!c$G z79yu(1Aro|El7p}6!3|HP$I9)N(3G=1gglKL*xbpNQ4KH);Uv zj){?mjy%e!lib8fG2@h(rp`RetP8ca!iq~)TDtNotKL+jy=|Y{Z>UCFH9nNGIK8O` zuT#As$c_^+&7c@Zg5qilprF|_^O<5~Q_eK=g|R7wk))V5ZjdPk3F9P|MK|p}lzT}x zC;27a`2Uo1Cf%P<&Oy4Lb^AoMVc)raD0c2b^%G*Ve304atFavP5tGrczo1E+Cmvw*o^i}Tos#aV*{|PF|dcji3^qu*>HjC9$@cK z@xi@tPgMUkuKPOS*YkB>C;WQ8&c~DNX{_dVD`|FcWai?y`s|m#hof5CoPGJ%&>f7? z_hU#}W(4PWYIIWBO4@H|Fc>d)HLjV8)glR)VP)S2WAaHVTW@&6?004NL zeUUv#!$2IxUsI(jRR=qWI0UIq7DYuIwF*V35Nd^19ZW9$f+h_~ii@M*T5#}VvFhOB ztgC~oAP9bdxVbqgx=4xtOA0MwJvi>iyL*qjcYshWGRDu$r-;Lu1(#aSzsS^b{; zg~5!zvdndwgNR`fOOPN!K^X-UVIxATPKt#D?MGYq2VB2IE`?kLFmf!Q1P!w52mgcL z-CEhn2`?!a1=?R6=VKTM>;kol<9r`GPVEHnKLb~K!(XZbGoPea8d~@W=-mb`t{a-N z2VCv|{ZEE$%C6+6DP*(2`x$*x8tA(Py4Jkj>ial-0Fu;I{02BU1V(a{z24&89nHP{ zd#2vs4|P&(^b32;bRa{vGi!vFvd!vV){sAK>D00(qQO+^Rg2?7x;32;r2 zCIA2cO-V#SR5;6H6cG_&AO$cnkO)ZDz@n|KJ=mNiDJePFoOJi@-9hFg#^=wUlcwQ~ zjLKjO){{jXaL(4J5re= Date: Sat, 8 Jul 2023 23:40:30 +0200 Subject: [PATCH 187/432] Create pl_PL.lang Added incomplete polish translation --- src/main/resources/assets/hbm/lang/pl_PL.lang | 5373 +++++++++++++++++ 1 file changed, 5373 insertions(+) create mode 100644 src/main/resources/assets/hbm/lang/pl_PL.lang diff --git a/src/main/resources/assets/hbm/lang/pl_PL.lang b/src/main/resources/assets/hbm/lang/pl_PL.lang new file mode 100644 index 000000000..438a7d5bd --- /dev/null +++ b/src/main/resources/assets/hbm/lang/pl_PL.lang @@ -0,0 +1,5373 @@ +achievement.acidizer.desc=oof ow my skin +achievement.acidizer=Acidic +achievement.assembly.desc=Wait, it's already 1 am? +achievement.assembly=The Factory Grows +achievement.FOEQ.desc=Send a relay into martian...I mean dunaian orbit. +achievement.FOEQ=Pegasi and Missile Silos +achievement.breeding.desc=Thank you, god bless you, and god bless the United States of America. +achievement.breeding=Ironic +achievement.bismuth.desc=Remember when people complained about this for a month? I do. +achievement.bismuth=Bismuth +achievement.blastFurnace.desc=They salvaged a sunken dreadnought for Explorer 1. +achievement.blastFurnace=Coal and Iron +achievement.bossCreeper.desc='There is nuclear creepers? Those are a thing?!' +achievement.bossCreeper=Bomb On Four Legs +achievement.bossMaskman.desc=Bonk the big boy. +achievement.bossMaskman=6 Months of mandatory service and all I got was a lousy t-shirt +achievement.bossMeltdown.desc=More terrible than great, but I take what I can get. +achievement.bossMeltdown=3.6 Roentgen +achievement.bossWorm.desc=The Fabstaff. My ass. You do the math. +achievement.bossWorm=Disassembling Balls-O-Tron +achievement.bossUFO.desc=Yo, what do we have here? A huge spacecraft pulling up to the blockship? +achievement.bossUFO=Ayy Lmao +achievement.burnerPress.desc=Pressure pushing down on me, on you +achievement.burnerPress=Under Pressure +achievement.c20_5.desc=??? +achievement.c20_5=Chapter [TWENTY POINT FIVE] +achievement.c44.desc=Galvanized! I mean, zinc! +achievement.c44=Chapter 44 +achievement.centrifuge.desc=centrifugal force is real don't @ me +achievement.centrifuge=Centrifugal Force +achievement.chemplant.desc=Now you're thinking with chemicals! +achievement.chemplant=The Factory Grows Pt. 2 +achievement.chicagoPile.desc="How were the natives?" / "Very friendly." +achievement.chicagoPile=The navigator landed in the New World +achievement.concrete.desc=A Bolshevik's favorite. +achievement.concrete=Old Reliable +achievement.desh.desc="Come on then, you lot. Places to go!" +achievement.desh=Le Verrier +achievement.digammaFeel.desc=My eyes are bleeding +achievement.digammaFeel=SEWAGE-INFUSED GARBAGE WORLD +achievement.digammaKauaiMoho.desc=Everything is awful, here's some hot choccy. +achievement.digammaKauaiMoho=SING, SING ME THE SONG OF THE KAUAI MOHO +achievement.digammaKnow.desc=what this world is about. +achievement.digammaKnow=THE TERROR OF KNOWING +achievement.digammaSee.desc=It's a bit dark, bring a flashlight. +achievement.digammaSee=ENTER THE ABYSS +achievement.digammaUpOnTop.desc=Admire my son, he's my clone. +achievement.digammaUpOnTop=ADMIRE ME, ADMIRE MY HOME +achievement.fiend.desc=Be mean. +achievement.fiend2.desc=Be meaner. +achievement.fiend2=Delinquent 2: Delinquent Harder +achievement.fiend=Delinquent +achievement.freytag.desc=Herold's life guards +achievement.freytag=Freytag +achievement.fusion.desc=A dance of deuterons, tritons, and energy. +achievement.fusion=Fusion +achievement.gasCent.desc=Unenriched Uranium hates him! +achievement.gasCent=The Zippe Style +achievement.goFish.desc=Nautical Crucifixion +achievement.goFish=Go Fish +achievement.hidden.desc=Kill a tainted creeper with a falling boxcar. +achievement.hidden=Hidden Catalog +achievement.horizonsBonus.desc=honest to god what the hell is wrong with you +achievement.horizonsBonus=Slam Dunk Diarrhea +achievement.horizonsEnd.desc=Send Tom home. +achievement.horizonsEnd=The Horizons +achievement.horizonsStart.desc=Send a lad to the moon. +achievement.horizonsStart=Apogee +achievement.impossible.desc=You can't get this achievement. +achievement.impossible=Literally impossible +achievement.inferno.desc="Turn it to ashes! That's not enough! Drop more bombs!" +achievement.inferno=Operation Cannibal +achievement.manhattan.desc=8:15; August 6th, 1945 +achievement.manhattan=The Manhattan Project +achievement.meltdown.desc=You got this far, how could you mess this up? +achievement.meltdown=Rapid Unscheduled Disassembly +achievement.no9.desc="I hope the lead I'm mining will be used in your paint" +achievement.no9=Old Number Nine +achievement.omega12.desc=Solve the problem of continued life on this wretched planet. +achievement.omega12=Omega-12 Particle Accelerator +achievement.polymer.desc=Delicious, delicious microplastics. +achievement.polymer=Teflon +achievement.potato.desc=You stabbed me! What is WRONG with yo-WOOOAAH +achievement.potato=Rogue AI +achievement.radDeath.desc=Marie Curie invented the theory of radioactivity, the treatment of radioactivity, and dying of radioactivity. +achievement.radDeath=Ouch, Radiation! +achievement.radium.desc=YOU'RE FIRED FOR POURING RADIUM IN MY COFFEE! +achievement.radium=MISTER INCREDIBLE +achievement.radPoison.desc=Suffer the effects of radiation poisoning. +achievement.radPoison=Yay, Radiation! +achievement.RBMKBoom.desc=What is the cost of lies? +achievement.RBMKBoom=It is 15,000. +achievement.RBMK.desc=He's delusional, get him to the infirmary. +achievement.RBMK=3.6 Roentegen? +achievement.redBalloons.desc="This is what we've waited for. This is it, boys, this is war." +achievement.redBalloons=99 Red Balloons +achievement.sacrifice.desc=Face the fire and live. +achievement.sacrifice=Sororicide +achievement.schrab.desc=Regardless, I wouldn't look at it for too long. +achievement.schrab=Island of Stability +achievement.selenium.desc=Yeah. +achievement.selenium=XVIII The Moon +achievement.SILEX.desc=It's cooler then it sounds, I promise. +achievement.SILEX=Separation of Isotopes by Laser Exitation +achievement.slimeball.desc= +achievement.slimeball=I should dip my balls in sulfuric acid. +achievement.stratum.desc=Hit the brakes, Mitts. +achievement.stratum=Stratum +achievement.someWounds.desc=Get ready +achievement.someWounds=Some Wounds Never Heal +achievement.soyuz.desc=Become crunchy. +achievement.soyuz=Baked Potato +achievement.space.desc=Fail in every way possible and waste funds worth 90 million dollars. +achievement.space=The Final Front-ah forget it +achievement.sulfuric.desc= +achievement.sulfuric=I should not have dipped my balls in sulfuric acid. +achievement.tantalum.desc=An elusive, yet ever-needed element. +achievement.tantalum="Tantalium" +achievement.tasteofblood.desc=is not part of any testing protocol. +achievement.tasteofblood=The Taste of Blood +achievement.technetium.desc=It's medicinal, it's medicinal! +achievement.technetium=Big Man, Pig Man +achievement.watzBoom.desc=Drain your septic tank next time. +achievement.watzBoom=Disgusting +achievement.watz.desc=Fólkvangr fields possibly included. +achievement.watz=The Power of Element-126 +achievement.witchtaunter.desc=Those wacky creatures got nothing on you! +achievement.witchtaunter=Witch Taunter +achievement.ZIRNOXBoom.desc=cope, seethe, mald +achievement.ZIRNOXBoom=CIRNOX + +armor.blastProtection=Damage modifier of %s against explosions +armor.cap=Hard damage cap of %s +armor.damageModifier=Damage modifier of %s against %s +armor.dash=Grants %s dashes +armor.electricJetpack=Ion Jetpack +armor.explosionImmune=Cannot take any damage except from explosions +armor.fastFall=Fast Fall +armor.fireproof=Fireproof +armor.fullSetBonus=Full Set Bonus: +armor.geigerHUD=Built-In Geiger Counter HUD +armor.geigerSound=Auditory Geiger Counter +armor.glider=Sneak to glide +armor.gravity=Gravity modifier of %s +armor.hardLanding=Hard Landing +armor.ignoreLimit=Resistance is not affected by resistance limit +armor.modifier=General damage modifier of %s +armor.nullDamage=Nullifies all damage from %s +armor.projectileProtection=Damage modifier of %s against projectiles +armor.rocketBoots=Rocket Boots +armor.sprintBoost=Boosted Sprint +armor.thermal=Thermal Sight +armor.threshold=Damage threshold of %s +armor.vats=Enemy HUD +armor.yield=Protection applies to damage <%s + +armorMod.all=All +armorMod.applicableTo=Applicable To: +armorMod.boots=Boots +armorMod.chestplates=Chestplates +armorMod.helmets=Helmets +armorMod.insertHere=Insert armor to modify... +armorMod.leggings=Leggings +armorMod.type.boots=Boots +armorMod.type.chestplate=Chestplate +armorMod.type.cladding=Cladding +armorMod.type.helmet=Helmet +armorMod.type.insert=Insert +armorMod.type.leggings=Leggings +armorMod.type.servo=Servos +armorMod.type.special=Special + +battery.mode.buffer=Input/Output Mode +battery.mode.input=Input Mode +battery.mode.off=OffW +battery.mode.output=Output Mode +battery.priority.high=Charge Priority: High +battery.priority.high.desc=Emergency buffers that$always need to be full +battery.priority.low=Charge Priority: Low +battery.priority.low.desc=Most use-cases where surplus$energy needs to be stored without$affecting machine performance +battery.priority.normal=Charge Priority: Normal +battery.priority.normal.desc=Smaller power grids where$priority doesn't matter +battery.priority.recommended=Recommended for: +battery.redstone.off=Redstone OFF +battery.redstone.on=Redstone ON + +bomb.detonated=Detonated successfully! +bomb.incompatible=Device can not be triggered! +bomb.launched=Launched successfully! +bomb.missingComponent=Component missing! +bomb.nobomb=Linked position incompatible or unloaded! +bomb.triggered=Triggered successfully! + +book.test.cover=HOW 2 SEX +book.test.page1=Test Page 1 + +book.error.cover=Hadron Collider:$Troubleshooting +book.error.title1=Error 0x01 [NC] +book.error.page1=§lName:§r "ERROR_NO_CHARGE" §lDescription:§r The particle has reached a segment with insufficient charge. §lPotential fix:§r Either replace one of the plugs that the particle successfully passes with higher-tier ones or add another plug slightly before the segment where the particle expires. +book.error.title2=Error 0x02 [NA] +book.error.page2=§lName:§r "ERROR_NO_ANALYSIS" §lDescription:§r The particle has reached the core, despite not passing an analysis chamber. §lPotential fix:§r Make sure that your accelerator has an analysis chamber and double-check the operating mode (linear/circular). +book.error.title3=Error 0x03 [OC] +book.error.page3=§lName:§r "ERROR_OBSTRUCTED_CHANNEL" §lDescription:§r The particle has collided with a block inside the collider's channel. §lPotential fix:§r Make sure that the inside of your particle collider is free of any obstructions, except for particle diodes and core blocks. +book.error.title4=Error 0x04 [EC] +book.error.page4=§lName:§r "ERROR_EXPECTED_COIL" §lDescription:§r The particle has passed a segment that lacks one or multiple coils. §lPotential fix:§r Remove the plating of the collider in the offending area and check if all the coils are there. This error will also happen at T-crossings that are built without diodes. +book.error.title5=Error 0x05 [MS] +book.error.page5=§lName:§r "ERROR_MALFORMED_SEGMENT" §lDescription:§r The particle has passed a segment that was built incorrectly (but neither obstructed nor missing coils). §lPotential fix:§r Make sure that the offending segment has platings in all the required spaces, leaving no coils exposed. +book.error.title6=Error 0x06 [ATL] +book.error.page6=§lName:§r "ERROR_ANALYSIS_TOO_LONG" §lDescription:§r The particle has passed more than the three required valid analysis chamber segments. §lPotential fix:§r Make sure that the analysis chamber is exactly 3 blocks long for circular accelerator and at least 2 blocks long for linear ones. Also check if the particle doesn't pass multiple analysis chambers in a branching and/or looped accelerator. +book.error.title7=Error 0x07 [ATS] +book.error.page7=§lName:§r "ERROR_ANALYSIS_TOO_SHORT" §lDescription:§r The particle has left the analysis chamber, despite not meeting the length requirement. §lPotential fix:§r Make sure that the analysis chamber on your circular accelerator is exactly 3 blocks long. Valid analysis segments have no coils and the plating is entirely composed of analysis chamber walls/windows. Analysis chambers with coils in them count as regular segments. +book.error.title8=Error 0x08 [DC] +book.error.page8=§lName:§r "ERROR_DIODE_COLLISION" §lDescription:§r The particle collided with a non-input side of a schottky particle diode. §lPotential fix:§r Check if your diodes are configured correctly. Particles can only enter the diode from sides with green inward-pointing arrows. +book.error.title9=Error 0x09 [BT] +book.error.page9=§lName:§r "ERROR_BRANCHING_TURN" §lDescription:§r The particle has reached a turn with multiple exits. §lPotential fix:§r If your turn is a normal one, check if all the required coils are present (i.e. no holes in the coil layer). If the turn is intended to be branched, it requires a schottky particle diode that is correctly configured. + +book.rbmk.cover=My first RBMK:$Basics of$building a$reactor +book.rbmk.title1=Introduction +book.rbmk.page1=§lRBMK§r is fully modular nuclear reactor. Unlike most other reactors, there is no "core" and no size restrictions, rather behavior and efficiency of reactor depends on how it is built and how various parts interact with each other. +book.rbmk.title2=Heat +book.rbmk.page2=As reactor runs, it will generate §lheat§r. Heat will spread between parts, slowly decreasing in the process. The goal is to generate as much heat as possible without melting the reactor, and to transfer heat into steam passages that cool reactor and produce steam. +book.rbmk.title3=Fuel Rod +book.rbmk.page3=The §lfuel rod§r will capture neutron flux, causing fuel inside the rod to react, releasing neutrons in the process. Neutrons are released in all four main directions with a maximum range of 5 blocks. The amount of released neutrons depends on fuel used. +book.rbmk.title4=Regulating Rod +book.rbmk.page4=The §lcontrol rod§r will reduce number of neutrons passing through. Fully inserted, it will block all neutrons; when inserted halfway, it will only block half. Control rods are used to regulate activity of the reactor and shut it down. +book.rbmk.title5=Regulating Rods - Usage +book.rbmk.title5.scale=0.9 +book.rbmk.page5=The current bar insertion will be displayed in the center of GUI. The colored buttons on left will add the control bar to the color group, which is useful for quickly selecting grouped bars on §lRBMK§r console. The buttons on right allow you to manually insert in 25%% increments. +book.rbmk.title6=Automatic Control Rods +book.rbmk.page6=§LAutomatic control rods§r are almost identical to regular control rods, but they cannot be manually adjusted, instead they will adjust position of the rod based on current temperature. Which function to use and how deep to insert and at what temperature must be determined first. +book.rbmk.title7=Steam Channel +book.rbmk.page7=The §lsteam channel§r is only part that will actively reduce reactor heat level. If a component is above the boiling point of a given type of steam, it will try to consume as much water and produce as much steam as needed to cool below boiling point. +book.rbmk.title8=Neutron Reflector +book.rbmk.page8=The §lneutron reflector§r will block passage of neutrons, instead neutrons will be reflected back onto the fuel rod they came from. This is useful for using neutrons that would otherwise be wasted simply by leaving reactor. +book.rbmk.title9=Neutron Absorber +book.rbmk.page9=§lNeutron absorber§r simply blocks neutrons. The absorbed neutrons will not generate heat and will be effectively destroyed. This is useful for preventing fuel rods from reacting that would otherwise be within reach. +book.rbmk.title10=Graphite Retarder +book.rbmk.page10=§lGraphite moderator§r converts fast neutrons passing through it into slow neutrons. Most fuels are split into fast neutrons, while slow neutrons are required for fission, so use of moderators is highly recommended. +book.rbmk.title11=Structural Column +book.rbmk.page11=§lStructural column§r does not affect neutrons in any way and has no special application. It is recommended to fill the reactor with structured pillars where there are no other parts, since the structured pillars are capable of transferring heat. +book.rbmk.title12=Console +book.rbmk.page12=§lRBMK console§r allows you to control the reactor from afar. Using the §ldevice to connect the console RBMK§r on the RBMK part and then on the console will connect the reactor and the console. The console can only control 15x15 parts, for large reactors you can use multiple consoles. +book.rbmk.title13=Using the console +book.rbmk.page13=Clicking on parts will select and deselect them. With the colored buttons, you can quickly select all the control rods in that color group. Button "A" will select all control rods, "X" will deselect all. +book.rbmk.page14=Entering a number between 0 and 100 in green box and then pressing button next to it will set all selected control rods to that position. Button "AZ-5" will lead to full insertion of all control rods. +book.rbmk.title15=Fuel +book.rbmk.page15=The §lfuel§r response depends on many factors. The main ones are §lfortification§r, §lxenon poisoning§r and number of incoming §lneutrons§r. Xenon builds up when fuel is low in neutrons and burns out during normal operation. The efficiency of neutrons depends on the type, most fuels §lare best split by§r §lslow neutrons§r. +book.rbmk.title16=Melting +book.rbmk.page16=§4§lAVOID. + +book.starter.cover=An Industrialist's$Guide to Rebuilding$Society +book.starter.title1=Introduction +book.starter.page1=If you're reading this, it's highly likely that society, in one way or another, has collapsed entirely. Governments, countries, and authority are a concept of the past - along with all of the amenities of civilized life. As such, this guide will inform you how to change that by recreating the industry and technology of the past for the improvement of your own life. +book.starter.title2=Coal & Mustard Gas +book.starter.page2=Whilst it is impossible to predict the actual state of the world in a post-apocalyptic time, it's not unlikely that war and industry in its current form may not have ended. To protect your own lungs, an effective and cheap way is to urinate on some §lcloth§r to make a §ltrench mask§r, to protect you from coal dust or mustard gas, if you ever encounter either. +book.starter.title3=Anvils & Presses +book.starter.page3=The quintessentials to beginning your industrial revitalization is an §lanvil§r and a §lburner press§r. The anvil will allow you to manually craft together early machinery such as the Assembler, whilst the burner press will let you make plates, wires, and circuits that you cannot hammer together with an anvil. +book.starter.title4=Templates +book.starter.page4=In order to stamp metal into useful shapes, assemble machinery, and perform chemical reactions, you will need to create a §lMachine Template Folder§r to create the various stamps and templates shown to the right. +book.starter.title5=Scavenging +book.starter.page5=Depending on how bad the initial apocalyptic event was to the preexisting structures of the world, there's a likely chance that many useful materials and machines can be salvaged from them directly. Metallic alloys like steel, parts like circuitry, and even fissile material from a nuclear power plant might be awaiting you. Beware certain ruins, however, as there may be an excess of danger lurking there like a snake in the grass; waiting to strike you down with radiation, traps, or indescribable horrors... +book.starter.title6=Early Machinery +book.starter.page6a=Two of the first machines you should assemble are the §lBlast Furnace§r and the §lAssembly Machine§r. The former will allow you to create alloys such as §lsteel§r, §lminecraft-grade copper§r, and §ladvanced alloy§r; you will need to use these metals for the bodies of machines, the wiring of circuits, advanced electromagnets, and more. +book.starter.page6b=The assembler will be used to create practically every other machine described in this guide. You will need a power source, such as a §lCombustion§r §lGenerator§r or §lSolar Boiler§r. +book.starter.page7a=The §lShredder§r, along with a pair of shredder blades, will be very useful for doubling the output of most ores, via shredding into smeltable powders. These powders are also crucial to begin making circuitry for various machines, such as §lEnhanced§r and §lOverclocked§r circuits. +book.starter.page7b=Using your new machinery, you can create the §lChemical Plant§r, used for the synthesis of better circuits, concrete, the processing of petrochemicals, and more. +book.starter.title8=Black Gold +book.starter.page8a=Using an §lOil §lReservoir§r §lDetector§r, you can find underground oil deposits to place a §lPumpjack§r or §lDerrick§r over via surveying an area. Remember that oil deposits will run out over time. +book.starter.page8b=Before the oil can be refined and separated into its constituent parts in an §lOil Refinery§r, you must heat the oil to 300°C in a §lBoiler§r. +book.starter.title9=Petrochemicals +book.starter.page9=Using §lChemical Plants§r, §lFractioning§r §lTowers§r, and §lCatalytic Cracking§r §lTowers§r, you can transform the separated oil into a variety of useful products. For example: §lPolymer§r or §lBakelite§r, durable and flexible plastics; §lDesh§r, an extremely durable and heat-resistant rare earth metal alloy; §lSolid Fuel§r, which can be burnt for energy; or even §lLiquid Fuels§r, such as §lGasoline§r, §lDiesel§r, §lKerosene§r, and more. +book.starter.title10=Advanced Machinery +book.starter.page10=With oil processing under your belt, you can create the §lCentrifuge§r, which will triple ore outputs; the §lOre §lAcidizer§r, which will crystallize ores, increasing the yield; and the §lSILEX + §lFEL§r, two marvels of modern engineering which can separate the isotopes of materials with ease. You will require significantly more energy to power these; which can be obtained with sources such as a §lDiesel Generator§r, an §lIndustrial Generator§r, or even a nuclear reactor. +book.starter.title11=Strata +book.starter.page11=Underneath the ground you walk, there is several naturally-occurring §lStrata§r, or special mineral layers and formations. §lSchist Strata§r are blue, lithium-containing layers filled with uranium, iron, copper, asbestos, and other ores for your own use. §lDepth Rock§r contains large quantities of rarer minerals, such as §lZirconium§r and §lBoron§r, but requires explosives to properly harvest. +book.starter.title12=Radiation +book.starter.page12a=§oThe rest of this book will deal with matters that involve §oradiation. For the safety of you and others, I will give §oadvice on how to mitigate and deal with exposure to it. +book.starter.page12b=Enough exposure to radiation can and will cause bodily harm. The first step is prevention; be sure to limit your exposure, and wear protective gear, such as a §lHazmat Suit§r, or apply §lCladding§r to your clothing or armor; you can also take §lRad-X§r to limit your intake. Thanks to modern medicine, the second step can be removal if necessary; for example, a §lPlayer §lDecontaminator§r will slowly reduce the radiation absorbed by your body. §lRad-Away§r can also be used as a post-exposure prophylaxis, quickly and effectively reversing damage caused to your body by ionizing radiation. +book.starter.title13=Uranium Enrichment +book.starter.page13=There are a few, easy options for fuels to use for a nuclear reactor; for instance, §lNatural Uranium§r or §lThorium Fuel§r. However, if you're looking for something more powerful, you can set up an enrichment cascade of two §lGas Centrifuges§r to produce §lUranium Fuel§r with leftover §lUranium-238§r. You will have to transmute the natural uranium into §lYellowcake§r, then §lUranium §lHexafluoride§r to do so. +book.starter.title14=The Chicago Pile +book.starter.page14=Alternatively, you can breed §lReactor-Grade Plutonium§r, a more powerful fuel, from Natural Uranium using the §lChicago Pile§r. By stacking graphite blocks and drilling into them, you can insert fuel rods to breed into plutonium and neutron source rods, such as §lRadium-Beryllium§r, to begin the reaction. Make sure to test your designs; spacing out or limiting the amount of blocks may be necessary to prevent overheating. +book.starter.title15=ZIRNOX GCR +book.starter.page15=Finally, you can create your first §oreal§r source of energy: the §lZIRNOX§r Nuclear Reactor. Nuclear reactors require more setup then other power sources; first, you will want to have a good source of water, such as the §lHeavy §lInfinite Water Tank§r. To remove heat from the reactor core and boil the water into steam, you will need a sufficient amount of §lCarbon Dioxide§r. You want just enough pressure, but not §otoo§r much. You will also need three steam turbines to utilize the created steam to make energy; the §lSteam §lTurbine§r or §lIndustrial Steam §lTurbine§r will be optimal. Finally, a §lCondensor§r or §lAuxilary Cooling Tower§r is needed to condense the leftover steam into water, where it can be voided or recycled in a cooling loop. +book.starter.title16=Conclusion +book.starter.page16=If you've reached this far, you're on track to helping rebuild civilization. You've successfully recreated the advanced machinery of the pre-apocalypse - with nuclear power, petrochemicals, and more. I cannot know §ohow§r you will use these new-found advantages, but it's my personal hope you use them for the good of yourself and others - or at the very least, in self-defense. Au revoir! +book.starter.title18=About the Author +book.starter.page18=vær is just a guy who has been trapped in the grey void featured in the Talking Head's §oOnce In A Lifetime§r for too long. He once found a studio door, but to his dismay found out it was a cardboard cut-out. + +#book.rbmk.cover=HOW 2 RBMK:$The Basics$of Reactor$Construction +#book.rbmk.title1=Introduction +#book.rbmk.page1=The §lRBMK§r is a fully modular nuclear reactor. Unlike most other reactors, there is no "core", and no size limitations, rather, the behavior and efficiency of the reactor comes from how it is built and how the different pieces interact with each other. +#book.rbmk.title2=Heat +#book.rbmk.page2=As the reactor operates, it will generate §lheat§r. Heat will spread between parts, slowly decreasing in the process. The goal is to produce as much heat as possible without melting the reactor, and to move that heat to a §lsteam channel§r which cools the reactor and produces steam. +#book.rbmk.title3=Fuel Rod +#book.rbmk.page3=The §lfuel rod§r will capture neutron flux, causing the fuel inside the fuel rod to react, giving off neutrons in the process. Neutrons are released in all four cardinal directions with a maximum range of 5 blocks. The amount of neutrons released depends on the §lfuel§r used. +#book.rbmk.title4=Control Rod +#book.rbmk.page4=The §lcontrol rod§r will decrease the amount of neutrons passing though it. Fully inserted, it will block all neutrons, at half insertion, it will only block half. Control rods are used to regulate the reactor's activity and to turn it off. +#book.rbmk.title5=Control Rod - Usage +#book.rbmk.page5=The center of the GUI will display the current rod insertion. The colored buttons on the left will add a control rod to a color group, which is useful to quickly select grouped rods from the §lRBMK console§r. The buttons on the right allow for manual insertion in increments of 25%%. +#book.rbmk.title6=Automatic Control Rod +#book.rbmk.page6=§lAutomatic control rods§r function nearly identical to regular control rods, but they cannot be configured manually, instead they will adjust the rod position based on the current temperature. What function to use and how deep to insert at what temperature has to be defined first. +#book.rbmk.title7=Steam Channel +#book.rbmk.page7=The §lsteam channel§r is the only part that will actively reduce the reactor's heat level. If the component's temperature exceeds the boiling point of the set steam type, it will try to consume as much water and produce as much steam as needed to cool back below the boiling point. +#book.rbmk.title8=Neutron Reflector +#book.rbmk.page8=The §lneutron reflector§r will block neutrons from passing it, instead the neutrons will be reflected back at the fuel rod they came from. This is useful for utilizing neutrons that would otherwise be wasted by simply exiting the reactor. +#book.rbmk.title9=Neutron Absorber +#book.rbmk.page9=The §lneutron absorber§r will simply block neutrons. Neutrons absorbed will not generate heat and be effectively voided. This is useful to prevent fuel rods from reacting that would otherwise be in range. +#book.rbmk.title10=Graphite Moderator +#book.rbmk.page10=The §lgraphite moderator§r will convert fast neutrons passing through it into slow neutrons. Most fuels fission into fast neutrons while needing slow neutrons to split, so using moderators is strongly recommended. +#book.rbmk.title11=Structural Column +#book.rbmk.page11=The §lstructural column§r will not interfere with neutrons, nor does it have special uses. It is recommended to fill the reactor with structural columns where no other parts will be, because structural columns are capable of transporting heat. +#book.rbmk.title12=Console +#book.rbmk.page12=The §lRBMK console§r lets you control the reactor from afar. Using the §lRBMK§r §lconsole linking device§r on an RBMK part and then the console will link the reactor to the console. The console can only manage 15x15 parts, for larger reactors you might want to use multiple consoles. +#book.rbmk.title13=Console Usage +#book.rbmk.page13=Clicking on the parts will select and deselect them. Using the colored buttons, you can quickly select all control rods of that color group. Button 'A' will select all control rods, 'X' will deselect all. +#book.rbmk.page14=Entering a number 0-100 in the green box and then hitting the button next to it will set all selected control rods to this position. Button 'AZ-5' will cause all control rods to fully insert. +#book.rbmk.title15=Fuel +#book.rbmk.page15=The §lfuel§r's reactivity is based on multiple factors. The main ones are the §lenrichment§r, §lxenon poison§r and the amount of incoming §lneutrons§r. Xenon builds up when the fuel receives few neutrons and burns away during normal operation. The effectivity of neutrons depends on the type, most fuels §lsplit best with slow neutrons§r. +#book.rbmk.title16=Meltdown +#book.rbmk.page16=§4§lAvoid. + +book_lore.author=By %s +book_lore.test.name=this book doesn't work... +book_lore.test.author=me i trolled you hehe :3c +book_lore.test.page.0=>hello anons before i begin let me clarify that i'm not gay. >Be me >This night >18 > At hanging out with my best friend with my parents gone for a few days >We've been best friends for a year now >Been drinking a bit and playing lots of video games and ordered a pizza >We were having a blast >At a certain point in the night like around 9:00 he makes a really funny joke that I don't remember but I know that it made us both laugh really hard > With out thinking I brush my right hand through his semi-curly black hair and call him a funny boy >He blushes >I realize I'm feeling flustered >We're kinda close >All of the sudden he kisses me and for some reason I kiss him back >We make love >Cuddle together and fall asleep >Wake up in the middle of the night with his head snuggled up on my chest and neck area >It feels nice but I'm not a homosexual +book_lore.test.page.1=I'm typing this as he's asleep in my arms. How do I let my best friend down nicely? I don't want to be a [redacted] /b/ +book_lore.test.page.2=3 +book_lore.test.page.3=4 +book_lore.test.page.4=5 + +book_lore.book_iodine.name=Note +book_lore.book_iodine.author=Dave +book_lore.book_iodine.page.0=alright you will not believe this, but old man weathervane finally managed to show up again since he left two weeks ago and what's more surprising is the fact that he actually decided to spill the beans on what they were doing in the canyon: +book_lore.book_iodine.page.1=apparently the morons from R&D discovered a compound that is mostly inorganic, pretty much like a toxin in nature, but get this: the dying cells will reproduce said toxin and excrete it through the skin, creating an aerosol that is highly contagious. +book_lore.book_iodine.page.2=it's just like a virus, but not a virus. the composition is weird, you can mix it in any household bottle but you do have to get the order right. the doc told me that the first ingredient which is just powdered iodine crystals goes into slot %d + +book_lore.book_phosphorous.name=Note +book_lore.book_phosphorous.author=Dave +book_lore.book_phosphorous.page.0=heyo, it's me again. i assume you got my last memo, the doc wasn't too happy about it. i'll have to do this quick, the dunderheads from R&D are currently moaning again, probably over money. again. anyway, doc weathervane found that the second +book_lore.book_phosphorous.page.1=ingredient is red phosphorous, whihc has to be mixed into slot %d + +book_lore.book_dust.name=Note +book_lore.book_dust.author=Dave +book_lore.book_dust.page.0=the doc was furious when he found out that the R&D dorks kept the one remaining sample, ranting about gross negligence this and a doomsday scenario that. i told him to chill for a minute, getting all worked up isn't good for his blood pressure, not +book_lore.book_dust.page.1=that he has much blood left to begin with. one of the R&D morons slipped some more info into last week's circular, they call their little concoction \"MKU\" whatever that means, and that it contains actual household lint. can you believe that? one of the most +book_lore.book_dust.page.2=dangerous inventions of theirs and it contains dust. strangely they also mentioned that it goes into slot %d + +book_lore.book_mercury.name=Note +book_lore.book_mercury.author=Dave +book_lore.book_mercury.page.0=well that settles that. not counting the vomitting blood part, the toxicological report mostly resembles that of mercury poisoning. why? because our little mix also contains mercury! i just wonder where all that stuff comes from when being +book_lore.book_mercury.page.1=replicated by the body? whatever, the mercury goes into slot %d + +book_lore.book_flower.name=Note +book_lore.book_flower.author=Dave +book_lore.book_flower.page.0=remember when i mentioned in my first memo that the compound is mostly anorganic? well guess what, the old man shared the fourth ingredient: ipomoea nil, a genus of flower. morning glory! it might be due to its low sulfur content, whatever might be the case, +book_lore.book_flower.page.1=it does not work with other flowers. the morning glory goes into slot %d + +book_lore.book_syringe.name=Note +book_lore.book_syringe.author=Dave +book_lore.book_syringe.page.0=a little addendum to my fifth message, obviously you have to store this MKU stuff in a container. the R&D nuts used regular metal syringes that they got from medical. surplus ware i presume, they got thousands of needles just lying around. the metal +book_lore.book_syringe.page.1=syringe goes into slot %d + +book_lore.resignation_note.name=Letter of Resignation +book_lore.resignation_note.author=Kosma +book_lore.resignation_note.page.0=Management downsized our department again yesterday. Those idiots only have themselves to blame, I don't know what they were expecting after that fiasco. Who the hell leaks that sort of information? We're losing millions and +book_lore.resignation_note.page.1=it's ME who's the one out of a job now. I'M the one being asked to resign. I hope you asshats finally learn from your overabundance of mistakes and take that stick out of your ass. +book_lore.resignation_note.page.2=I'm not coming back on Friday. Just send the paycheck. + +book_lore.memo_stocks.name=Intracorporate Memorandum +book_lore.memo_stocks.page.0=Investor Relations - $ $ There's been some glaring discrepancies in the figures provided for the latest quarterly report. It would be prudent for the financial department to make some adjustments, so there won't be any concern. + +book_lore.memo_schrab_gsa.name=Internal Memorandum +book_lore.memo_schrab_gsa.page.0=Contract Management - $ $ Legal has made a breakthrough with the DLA. They've awarded us with a 45 BILLION GSA Schedule for further procurement and research of saralloy. At current estimates, that would be at minimum +book_lore.memo_schrab_gsa.page.1=a 40%% profit on related operations, let alone the possibility of future contracts. Due to the confidential nature, all fiscal evidence is to remain private. + +book_lore.memo_schrab_rd.name=Internal Memorandum +book_lore.memo_schrab_rd.page.0=Research & Development - $ $ Our main production method of saralloy has been through the new particle accelerator. However, the energy costs are exorbitantly high compared to the amount of output. +book_lore.memo_schrab_rd.page.1=Doctor Schrabauer, however, has discovered a new interaction - called "Strange Lepton Oscillation" - that could significantly reduce costs. Through a not entirely understood process, supplied electrons are transmuted into extremely +book_lore.memo_schrab_rd.page.2=high-energy photons, through a strange charm. This is an extreme exception to many established particle conversion laws, but preliminary experiments have proved that these protons transmute into up and down quarks, eventually creating saralloy. +book_lore.memo_schrab_rd.page.3=Strangely, the prototype requires Tungsten alloyed with small amounts of saralloy. In addition, a special capacitor is required to negate the leftover positive charge. + +book_lore.memo_schrab_nuke.name=Research Report +book_lore.memo_schrab_nuke.author=Doctor Schrabauer +book_lore.memo_schrab_nuke.page.0=Our most recent investigation led us to the effects of nuclear explosions on materials. Thanks to our grant money, we *accidentally* tested our theory on direct saralloy synthesis from uranium. +book_lore.memo_schrab_nuke.page.1=Only our cyclotron has actually created saralloy previously. However, at our underground shot at Everwerpen, miniscule traces of saralloy were found in uranium ore at the site. All pure, metallic uranium nearby had fissioned. +book_lore.memo_schrab_nuke.page.2=As such, given enough uranium ore concentrated around an explosive, or perhaps even a dirty bomb rich in waste containing fissionable material, one could hypothetically create enough saralloy to collect manually. + +book_lore.bf_bomb_1.name=Private Notes +book_lore.bf_bomb_1.author=M. Porter +book_lore.bf_bomb_1.page.0=Took long enough, but my transfer was accepted. Those new grads were already hard to handle, let alone all the unprofessionalism of the lead. $ Not all good news - this lab was withholding further detail, and I didn't need more chaos over another magic new discovery. +book_lore.bf_bomb_1.page.1=Of course that was the case. The alumni had their doubts (surprising, considering how bright-eyed they were), but my only... competent? colleague actually got his hands on the primer hand-out. Must have more connections than I thought. His memo is discouraging: +book_lore.bf_bomb_1.page.2=apparently, there's yet ANOTHER miracle material that they prodded out of some concoction of antimatter and a fringe isotope. The brochure calls it "SWIRLMAT" - hell if I know - and that's it. No wonder they wanted a theoretical physicist, +book_lore.bf_bomb_1.page.3=they don't even know what it is yet. Either way, practically any job would be better than my old position, so I can't complain much about sketchiness. + +book_lore.bf_bomb_2.name=Private Notes +book_lore.bf_bomb_2.author=M. Porter +book_lore.bf_bomb_2.page.0=Despite the absence of information in that primer, I still had some hope they knew a bit more. Not at all. Every other senior researcher has a blind faith in this material; their propositions were practically biblical. I was near speechless. +book_lore.bf_bomb_2.page.1=And yet I can't even blame them. Swirlmat makes no goddamn sense - it is completely unlike any other substance I've seen before. Its appearance was near frightening, a literal mass of swirling colors, with darker lines permeating through the neon green surface. +book_lore.bf_bomb_2.page.2=Even worse, this thing is an energy source. The existence of our sample is a violation of ALARA: the lab was vacated when it arrived, and the only person brave enough (one Dr. Melfyn) donned a level A hazmat just to carry it 20 meters. +book_lore.bf_bomb_2.page.3=The empirical data isn't better, as we're breaking the first law of thermodynamics with how much energy it radiates. Being anywhere near that thing - even behind a meter of lead - was terrifying. We sprinted out of the chamber upon conclusion of the spectroscopy +book_lore.bf_bomb_2.page.4=and we got nothing new out of it. Those idiots in the science team, god, did not even waver after all that. Sitting through those "discussions" was horrible; that quack of a head researcher even rumored that the test ban would be lifted, that we could be +book_lore.bf_bomb_2.page.5=building bombs out of the shit in the coming weeks, who in their right mind would work on that? Hell, the one sane assistant (an Andrew) nicknamed it "balefire" - because burning to death on a funeral pyre would be painless by comparison. + +book_lore.bf_bomb_3.name=Private Notes +book_lore.bf_bomb_3.author=M. Porter +book_lore.bf_bomb_3.page.0=The team and I have made some breakthroughs. Emphasis on the separation - isolating myself from the more devout has made working there so much more bearable. While we still have no idea about the actual properties of balefire (it's difficult to analyze +book_lore.bf_bomb_3.page.1=a sample that fries your equipment) its interactions with other matter has proved fruitful. Notably, they synthesized a "gaseous" form: Andrew, of all people, informed me that it was really a colloid consisting of microscopic balefire particles, suspended in some +book_lore.bf_bomb_3.page.2=noble gas. Each particle is enveloped by a positively-charged 'bubble' of ionized gas, preventing it from settling. Who could've guessed that fatal gamma radiation had a benefit? Not me. $ I'm choosing not to think about how they transformed the sample into +book_lore.bf_bomb_3.page.3=particulate, but I can't understate the utility of this gaseous balefire - it's made it much safer to experiment on. $ Speaking of safety, the head researcher (in an act of callous disregard) made a discovery that also nearly took his head off. +book_lore.bf_bomb_3.page.4=He decided to get "dirty" by letting a cell of our new colloid interact directly with some very expensive antimatter: the resulting explosion turned the table it was on into a piece of radiation-bleached slag, carved a near-perfect hemisphere through +book_lore.bf_bomb_3.page.5=the top, and gave the head a healthy dose of ARS. I guess we know how to make it explode now, but god, some people... + +book_lore.bf_bomb_4.name=Private Notes +book_lore.bf_bomb_4.author=M. Porter +book_lore.bf_bomb_4.page.0=I just can't escape my old work. They're the only place that's hiring despite all this godforsaken turmoil, but I'm not going back into that hole. $ They only tempted me because I need out, fast. Remember that atmospheric testing treaty we withdrew from a week ago? +book_lore.bf_bomb_4.page.1=Well, the dipshit in charge of our lab got something right for once. The denunciation came with a flurry of new "scientists" joining, just so we could weaponize balefire. The lack of critical thought here is honestly baffling - bless him, Andrew even jumped ship the +book_lore.bf_bomb_4.page.2=second the first fucking BOMB DESIGN was drafted. That ass Melfyn looked so happy with his little mechanism - perhaps he got brainworms from carrying that sample? - which involved some stupid shit using the solidified, base balefire and an HV +book_lore.bf_bomb_4.page.3=battery. $ Apparently, the form matters for energy output and activation method or whatever, kind of like uranium versus plutonium in regular nukes, but the end result is an initial shock starting the explosion. I find it funny, hilarious even. +book_lore.bf_bomb_4.page.4=All of them place such emphasis on the activation; they ignore the actual mechanism of it all because they don't have a single clue how it works! It may as well be magic at this point, and yet they're still trying to twist and bend it - just for more weapons of war. + +book_lore.bf_bomb_5.name=Private Notes +book_lore.bf_bomb_5.author=M. Porter +book_lore.bf_bomb_5.page.0=I just... can't come to grips with it, even days after. It was a foregone conclusion, really, with how flippant the science team was with safety. $ $ Doctor Melfyn, M.S., is gone. Dead, maybe. I saw it happen before my own eyes, in their test chamber. +book_lore.bf_bomb_5.page.1=We had just gotten another batch of pure balefire, and he had recovered electrical equipment and an energy source to test his proposal. I don't know what caused it (was the power on? had he begun too soon?), but it seemingly progressed in agonizingly slow motion, +book_lore.bf_bomb_5.page.2=as the green-tinted light consumed the table, the battery, and Dr. Melfyn standing only a meter away. Even when the table had degraded into a pool of broiling metal on the floor, he did not burn. I don't know what I saw in his eyes... $ $ Terror, or awe +book_lore.bf_bomb_5.page.3=over his continued survival, maybe? Whatever our "miracle" material was, it didn't care. With a bright blaze of light, he disappeared in the next moment. Was he evaporated? incinerated? annihilated? sent to fucking hell itself, I don't know anymore! +book_lore.bf_bomb_5.page.4=The head researcher sickens me. Said we could be more careful, keep trucking, whatever other morale-improving filth he spewed. That dipshit won't ever figure out that playing with fire will get you burned. $ I didn't bother +book_lore.bf_bomb_5.page.5=resigning, I just grabbed my shit and ran for the hills. Not like it matters, anyway; considering the lack of calls, and the mushroom cloud that rose over my (now former) workplace, they've either blown everything up or entered full-on military jurisdiction. +book_lore.bf_bomb_5.page.6=There's a vital distinction to be made between dissection and VIVISECTION, one which was clearly lost on them. They can dissect metal or atoms as much as they like, but tearing into, vivisecting reality itself is only going to end in more Dr. Melfyns. Who knows! +book_lore.bf_bomb_5.page.7=The government wants to put this shit into bombs after all, maybe we'll see a couple more wars, couple more million resigned to a fate worse than death. They can't hide this forever. $ $ I don't care. Not anymore. Please, god, let me go back +book_lore.bf_bomb_5.page.8=to actual science. $ $ Goddamnit, Mae, get ahold of yourself... + +cannery.f1=[ Press F1 for help ] + +cannery.centrifuge=Wirówka Gazowa +cannery.centrifuge.0=Gas centrifuges can be supplied with fluid using regular fluid ducts. +cannery.centrifuge.1=Most recipes require multiple centrifuges. The intermediate products cannot be transported via pipes. +cannery.centrifuge.2=This side acts as a connector which outputs the intermediate product into an adjacent centrifuge. +cannery.centrifuge.3=Uranium hexafluoride can be processed with just two centrifuges, this however will produce Uranium fuel and Uranium-238. +cannery.centrifuge.4=Fully processing it into Uranium-235 and Uranium-238 requires a total of four centrifuges. +cannery.centrifuge.5=Some recipes also require the centrifuge overclocking upgrade. + +cannery.crucible=Tygiel +cannery.crucible.0=The crucible is used to smelt ores, ingots or other metallic items for alloying and to cast them into different shapes. +cannery.crucible.1=It requires an external heat source connected to the bottom, like a firebox. +cannery.crucible.2=Once heated up, the crucible can be used in two ways, with or without a recipe template. +cannery.crucible.3=The crucible has two storage buffers for material: +cannery.crucible.4=The buffer to the left is for §abyproducts§r, all material smelted without a recipe template will land here. +cannery.crucible.5=If a recipe is installed, materials that do not match the recipe will also be stored here. +cannery.crucible.6=Materials in this buffer will not react with each other, they can only be output from the green outlet for casting. +cannery.crucible.7=The buffer to the right is for §crecipes§r, if a recipe is installed and that particular material is relevant to that recipe, it will land here. +cannery.crucible.8=The materials will slowly combine into the output material which is automatically output from the red outlet. +cannery.crucible.9=Note that only this buffer handles recipes. If a template is installed retroactively, materials in the byproduct buffer will not combine, nor transfer to the recipe buffer. +cannery.crucible.10=The outlet will output material automatically, if the target is valid, for example a foundry channel or a mold. +cannery.crucible.11=As with all foundry blocks, a shovel can be used to remove all material from the crucible. + +cannery.fensu=FEnSU +cannery.fensu.0=The FEnSU is capable of storing absurd amounts of energy, over 9EHE (that's a nine followed by 18 zeros). +cannery.fensu.1=There is only one energy connector which can be found on the bottom. +cannery.fensu.2=This is also the only place where the FEnSU can receive a redstone signal. + +cannery.firebox=Palenisko +cannery.firebox.0=The firebox burns flammable items to generate heat. +cannery.firebox.1=It can burn any flammable item, although higher quality fuels such as coal, coke and solid fuel burn longer and hotter. +cannery.firebox.2=Heat is given off by the copper contact at the top of the firebox. Machines with an identical contact on the bottom can receive heat by being placed on top of the firebox. +cannery.firebox.3=If heat isn't being used up and the heat buffer becomes full, the firebox will shut off to prevent wasting of fuel. +cannery.firebox.4=One such machine is the stirling engine, which will turn heat directly into energy. + +cannery.foundryChannel=Kanał Hutniczy +cannery.foundryChannel.0=Foundry channels are used to transport molten material from a crucible or storage tank into molds. +cannery.foundryChannel.1=Channels can receive material either by pouring from the top - via an outlet or directly from a crucible - or from the side from other channels. +cannery.foundryChannel.2=When transporting materials, channels will prioritize blocks like outlets and shallow molds. +cannery.foundryChannel.3=When it cannot supply an outlet or a mold, the material will then flow into a neighboring channel. +cannery.foundryChannel.4=Leftover material can be removed by using a shovel. + +cannery.silex=FEL & SILEX +cannery.silex.0=The Free Electron Laser (FEL) uses energy and a laser crystal to create a powerful laser beam. +cannery.silex.1=Be careful, as the laser will burn/melt through weaker blocks... +cannery.silex.2=...but not blast-proof ones. +cannery.silex.3=The FEL is used to power the Laser Isotope Separation Chamber (SILEX). The FEL and SILEX have to be at least two blocks apart. +cannery.silex.4=The laser has to enter through the glass openings of the SILEX. Aiming it wrong could destroy it. +cannery.silex.5=The openings on the sides can be used to connect fluid ducts to the SILEX. +cannery.silex.6=In addition to the two connectors on the sides, there is a third hidden connector at the bottom from which items can be extracted. +cannery.silex.7=Each recipe requires a specific laser type. Using a stronger type than required will process items faster. +cannery.silex.8=One FEL can supply up to 5 SILEX. Each SILEX has to be one block apart from one another. + +cannery.stirling=Silnik Stirlinga +cannery.stirling.0=The Stirling engine uses heat energy from external sources to create power. +cannery.stirling.1=It needs to be placed on top of a heat-producing machine, such as the firebox. +cannery.stirling.2=The amount of heat it can utilize however is limited, overspinning can lead to catastrophic malfunction. +cannery.stirling.3=The upgraded version can take significantly more heat without breaking. + +cannery.willow=Wierzba Musztardowa +cannery.willow.0=The mustard willow is a plant that allows cadmium metal to be harvested. +cannery.willow.1=Willows can be placed on dirt, grass or even dead/oily dirt, but they require water to grow. +cannery.willow.2=Willows can be fertilized with bone meal or industrial fertilizer. They do not need light to grow. +cannery.willow.3=After the second stage of growth, they will need an extra block of space above them to grow further. +cannery.willow.4=After the fourth stage of growth, they require dead or oily dirt below them. +cannery.willow.5=This can be done either by manually planting willows on dead/oily dirt, or by having a hydraulic fracking tower nearby which continuously contaminates the ground. +cannery.willow.6=After reaching the final stage, the willow will remove contamination from the ground, reverting the dead/oily dirt back into regular dirt. +cannery.willow.7=Now the willow's leaves can be harvested. Breaking the top block will drop a small willow plant, 3-6 leaves and keep the bottom part of the plant intact. +cannery.willow.8=Soon the plant will start growing again, yielding more leaves if the dirt is replaced with oily dirt. The leaves can be processed into cadmium powder using an ore acidizer. +cannery.willow.9=Harvesting willow leaves can be automated using the automatic buzzsaw, it will only break plants that are ready for harvest. + +chem.ARSENIC=Ekstrakcja Arsenu +chem.ASPHALT=Produkcja Asfaltu +chem.BAKELITE=Produkcja Bakelitu +chem.BALEFIRE=Mieszanie Paliwa Rakietowego BF +chem.BP_BIOFUEL=Transestryfikacja Biopaliwa +chem.BP_BIOGAS=Produkcja Biogazu +chem.C4=Synteza C-4 +chem.CC_CENTRIFUGE=Oddzielanie Chlorokalcytu +chem.CC_ELECTROLYSIS=Elektroliza Chlorokalcytu +chem.CC_HEATING=Zaawansowane Upłynnianie Węgla +chem.CC_HEAVY=Podstawowe Upłynnianie Węgla +chem.CC_I=Ulepszone Upłynnianie Węgla +chem.CC_NAPHTHA=Upłynnianie Węgla Naftowego +chem.CC_OIL=Upłynnianie Węgla +chem.CIRCUIT_4=Overclocked Circuit Production +chem.CIRCUIT_5=High Performance Circuit Production +chem.CO2=Produkcja Dwutlenku Węgla +chem.COALGAS_LEADED=Leaded Coal Gasoline Mixing +chem.COLTAN_CLEANING=Oczyszczanie Koltanu +chem.COLTAN_CRYSTAL=Tantalium Crystallizing +chem.COLTAN_PAIN=Pandemonium(III)tantalite Production +chem.CONCRETE=Produkcja Betonu +chem.CONCRETE_ASBESTOS=Produkcja Betonu Azbestowego +chem.COOLANT=Mieszanie Chłodziwa +chem.CORDITE=Produkcja Kordytu +chem.CRYOGEL=Mieszanie Kriożelu +chem.DESH=Produkcja Deszu +chem.DEUTERIUM=Ekstrakcja Deszu +chem.DUCRETE=Produkcja Betonu ze Zubożonym Uranem +chem.DYN_DNT=Dynosynteza Dineutronium +chem.DYN_EUPH=Dynosynteza Euferium +chem.DYN_SCHRAB=Dynosynteza Szrabidium +chem.DYNAMITE=Synteza Dynamitu +chem.ELECTROLYSIS=Krio-Elektroliza +chem.EPEARL=Ender Pearl Synthesis +chem.ETHANOL=Produkcja Etanolu +chem.FC_BITUMEN=Kraking Bitumenu +chem.FC_DIESEL_KEROSENE=Kraking Diesela +chem.FC_GAS_PETROLEUM=Kraking Gazu +chem.FC_I_NAPHTHA=Kraking Oleju Przemysłowego +chem.FC_KEROSENE_PETROLEUM=Kraking Nafty +chem.FP_HEAVYOIL=Przetwarzanie Ciężkiego Oleju +chem.FP_LIGHTOIL=Przetwarzanie Lekkiego Oleju +chem.FP_NAPHTHA=Przetwarzanie Benzyny Naturalnej +chem.FP_SMEAR=Przetwarzanie Oleju Przemysłowego +chem.FR_PETROIL=Mieszanie Benzyny Olejowej +chem.FR_REOIL=Ponowne Przetwarzanie Ropy +chem.FRACKSOL=Produkcja Roztworu Frakingowego +chem.GASOLINE=Produkcja Benzyny +chem.GASOLINE_LEADED=Mieszanie Benzyny Ołowiowej +chem.HEAVY_ELECTROLYSIS=Krio-Elektroliza Ciężkiej Wody +chem.HELIUM3=Ekstrakcja Helu-3 z Głeby Księżycowej +chem.KEVLAR=Produkcja Kevlaru +chem.LPG=Upłynnianie Gazu Naftowego +chem.LUBRICANT=Mieszanie Smaru +chem.METH=Synteza Metamfetaminy +chem.NITAN=Mieszanie Super Paliwa NITAN +chem.NITRIC_ACID=Produkcja Kwasu Azotowego +chem.OIL_SAND=Ekstrakcja ze Smolistego Piasku +chem.OSMIRIDIUM_DEATH=Produkcja Roztworu Osmiridium +chem.PC_ELECTROLYSIS=Elektroliza Chlorku Potasu +chem.PEROXIDE=Produkcja Nadtlenku Wodoru +chem.PET=Synteza PET +chem.PETROIL_LEADED=Mieszanie Ołowiowej Benzyny Olejowej +chem.POLYMER=Synteza Polimeru +chem.PUF6=Plutonium Hexafluoride Production +chem.RUBBER=Produkcja Gumy +chem.SAS3=Schrabidium Trisulfide Production +chem.SATURN=Produkcja Saturanitu +chem.SCHRABIDATE=Ferric Schrabidate Production +chem.SCHRABIDIC=Schrabidic Acid Mixing +chem.SF_BIOFUEL=Biofuel Solidification +chem.SF_BIOGAS=Biogas Solidification +chem.SF_DIESEL=Diesel Solidification +chem.SF_GAS=Natural Gas Solidification +chem.SF_HEATINGOIL=Heating Oil Solidification +chem.SF_HEAVYOIL=Heavy Oil Solidification +chem.SF_KEROSENE=Kerosene Solidification +chem.SF_LIGHTOIL=Light Oil Solidification +chem.SF_LUBRICANT=Lubricant Solidification +chem.SF_NAPHTHA=Naphtha Solidification +chem.SF_OIL=Krzepnięcie Surowej Ropy +chem.SF_PETROIL=Krzepnięcie Nafty Olejowej +chem.SF_PETROLEUM=Petroleum Gas Solidification +chem.SF_RECLAIMED=Krzepnięcie Oleju z Odzysku +chem.SF_SMEAR=Industrial Oil Solidification +chem.SOLID_FUEL=Solid Rocket Fuel Production +chem.SOLVENT=Organic Solvent Mixing +chem.STEAM=Wrzenie Wody +chem.SULFURIC_ACID=Sulfuric Acid Production +chem.TATB=Synteza TATB +chem.TEL=Mieszanie TEL +chem.TEST=Test +chem.TNT=Synteza TNT +chem.UF6=Uranium Hexafluoride Production +chem.VIT_GAS=Gaseous Nuclear Waste Vitrification +chem.VIT_LIQUID=Liquid Nuclear Waste Vitrification +chem.XENON=Ksenonowy Cykl Lindego +chem.XENON_OXY=Boosted Linde Xenon Cycle +chem.YELLOWCAKE=Produkcja "Żółtego Ciasta" + +container.amsBase=AMS Base (Deco) +container.amsEmitter=AMS Emitter (Deco) +container.amsLimiter=AMS Stabilizer (Deco) +container.anvil=Tier %s Anvil +container.arcFurnace=Arc Furnace +container.armorTable=Armor Modification Table +container.assembler=Assembly Machine +container.autocrafter=Automatic Crafting Table +container.barrel=Beczka +container.bat9000=Ogrominasty Zbiornik 9000 +container.battery=Energy Storage +container.bombMulti=Multi Purpose Bomb +container.catalyticReformer=Catalytic Reformer +container.centrifuge=Centrifuge +container.chemplant=Chemical Plant +container.compactLauncher=Compact Launch Pad +container.craneBoxer=Conveyor Boxer +container.craneExtractor=Conveyor Ejector +container.craneGrabber=Conveyor Grabber +container.craneInserter=Conveyor Inserter +container.craneRouter=Conveyor Router +container.craneUnboxer=Conveyor Unboxer +container.crateDesh=Desh Crate +container.crateIron=Iron Crate +container.crateSteel=Steel Crate +container.crateTungsten=Tungsten Crate +container.crystallizer=Ore Acidizer +container.cyclotron=Cyclotron +container.dfcCore=Dark Fusion Core +container.dfcEmitter=DFC Emitter +container.dfcInjector=DFC Fuel Injector +container.dfcReceiver=DFC Receiver +container.dfcStabilizer=DFC Stabilizer +container.diFurnace=Blast Furnace +container.diFurnaceRTG=Nuclear Blast Furnace +container.electricFurnace=Electric Furnace +container.epress=Prasa Elektryczna +container.factoryAdvanced=Advanced Factory +container.factoryTitanium=Podstawowa Fabryka +container.fluidtank=Zbiornik +container.fileCabinet=Filing Cabinet +container.forceField=Forcefield Emitter +container.frackingTower=Hydrauliczna Wieża Krakingowa +container.furnaceCombination=Piec Kombinacyjny +container.furnaceIron=Żelazny Piec +container.furnaceSteel=Steel Furnace +container.fusionMultiblock=Big Fusion Reactor +container.fusionaryWatzPlant=Fusionary Watz Plant +container.gasCentrifuge=Wirówka Gazowa +container.gasFlare=Flare Stack +container.generator=Reaktor Jądrowy +container.hadron=Particle Accelerator +container.heaterFirebox=Firebox +container.heaterHeatex=Wymiennik Ciepła +container.heaterOilburner=Fluid Burner +container.heaterOven=Piec Grzewczy +container.iGenerator=Generator Przemysłowy +container.keyForge=Locksmith Table +container.launchPad=Missile Launch Pad +container.launchTable=Large Launch Pad +container.leadBox=Containment Box +container.machineBoiler=Oil Heater +container.machineCMB=CMB Steel Furnace +container.machineCoal=Generator Spalinowy +container.machineCoker=Jednostka Żużlowa +container.machineCompressor=Kompresor +container.machineCrucible=Tygiel +container.machineDiesel=Generator Diesela +container.machineElectricBoiler=Elektryczny Podgrzewacz Ropy +container.machineFEL=FEL +container.machineITER=Reaktor Fuzyjny +container.machineLargeTurbine=Industrial Steam Turbine +container.machineLiquefactor=Upłynniacz +container.machineMixer=Mieszacz Przemysłowy +container.machineRefinery=Rafineria Ropy Naftowej +container.machineSelenium=Radial Performance Engine +container.machineShredder=Mielarka +container.machineSILEX=SILEX +container.machineSolidifier=Utwardzacz +container.machineTurbine=Turbina Parowa +container.machineTurbofan=Turbofan +container.machine_schrabidium_transmutator=Schrabidium Transmutation Device +container.massStorage=Storage +container.microwave=Microwave +container.miningDrill=Automatyczne Wiertło Kopalnii +container.miningLaser=Mining Laser +container.missileAssembly=Missile Assembly Station +container.nukeBoy=Little Boy +container.nukeCustom=Niestandardowa Atomówka +container.nukeFleija=F.L.E.I.J.A. +container.nukeFstbmb=Balefire Bomb +container.nukeFurnace=Piec Napędzany Promieniotwórczością +container.nukeGadget=The Gadget +container.nukeMan=Fat Man +container.nukeMike=Ivy Mike +container.nukeN2=Mina N² +container.nukeN45=N45 Naval Mine +container.nukePrototype=The Prototype +container.nukeSolinium=The Blue Rinse +container.nukeTsar=Tsar Bomba +container.oilWell=Oil Derrick +container.orbus=Heavy Antimatter Storage +container.plasmaHeater=Plasma Heater +container.press=Prasa Na Węgiel +container.puf6_tank=PuF6 Tank +container.pumpjack=Pumpjack +container.radGen=Silnik Napędzany Promieniotwórczością +container.radar=Radar +container.radiobox=Nadajnik FM +container.radiolysis=RTG and Radiolysis Chamber +container.radiorec=FM Radio +container.rbmkBoiler=RBMK Steam Channel +container.rbmkControl=RBMK Control Rods +container.rbmkControlAuto=RBMK Automatic Control Rods +container.rbmkHeater=RBMK Fluid Heater +container.rbmkOutgasser=RBMK Irradiation Channel +container.rbmkReaSim=RBMK Fuel Rod (ReaSim) +container.rbmkRod=RBMK Fuel Rod +container.rbmkStorage=RBMK Storage Column +container.reactorBreeding=Breeding Reactor +container.reactorControl=Reactor Remote Control Block +container.reactorLarge=Big Nuclear Reactor +container.reactorResearch=Research Reactor +container.reix=Rei-X Mainframe +container.rtg=Generator Radiotermiczny +container.rtgFurnace=Piec Radiotermiczny +container.rttyReceiver=Redstone-over-Radio Receiver +container.rttySender=Redstone-over-Radio Transmitter +container.safe=Sejf +container.satDock=Cargo Landing Pad +container.satLinker=Urządzenie do Komunikacji Satelitarnej +container.siren=Siren +container.soyuzCapsule=Cargo Landing Capsule +container.soyuzLauncher=Soyuz Launch Platform +container.storageDrum=Nuclear Waste Disposal Drum +container.teleLinker=TelLink Device +container.teleporter=Teleporter +container.trainTram=Electric Flat Bed Tram +container.turbinegas=Combined Cycle Gas Turbine +container.turretArty=Grześ +container.turretChekhov=Chekhov's Gun +container.turretFriendly=Pan Przyjazny +container.turretFritz=Frytz +container.turretHIMARS=Henryk +container.turretHoward=Howard +container.turretJeremy=Jeremiasz +container.turretMaxwell=Maxwell +container.turretRichard=Ryszard +container.turretSentry=Brown +container.turretTauon=Tauon +container.uf6_tank=UF6 Tank +container.vacuumDistill=Vacuum Refinery +container.wasteDrum=Spent Fuel Pool Drum +container.watzPowerplant=Watz Power Plant +container.zirnox=ZIRNOX Nuclear Reactor + +crucible.aa=Zaawansowana Produkcja Stopu +crucible.cdalloy=Produkcja Stali Kadmowej +crucible.cmb=Produkcja Stali Kombinatu +crucible.ferro=Ferrouranium Production +crucible.hematite=Iron Production from Hematite +crucible.hss=High-Speed Steel Production +crucible.malachite=Copper Production from Malachite +crucible.redcopper=Red Copper Production +crucible.steel=Steel Production +crucible.steelMeteoric=Steel Production from Meteoric Iron +crucible.steelPig=Steel Production from Pig Iron +crucible.steelWrought=Steel Production from Wrought Iron +crucible.tcalloy=Technetium Steel Production + +death.attack.acid=%1$s wpadł w kwas. +death.attack.acidPlayer=%1$s został roztopiony przez %2$s. +death.attack.ams=%1$s was bathed in deadly particles that have yet to be named by human science. +death.attack.amsCore=%1$s was vaporized in the fire of a singularity. +death.attack.asbestos=%1$s ma teraz prawo do rekompensaty finansowej. +death.attack.bang=%1$s was blasted into bite-sized pieces. +death.attack.blackhole=%1$s was spaghettified. +death.attack.blender=%1$s was chopped in small, bite-sized pieces. +death.attack.boat=%1$s was hit by a boat. +death.attack.boil=%1$s was boiled alive by %2$s. +death.attack.boxcar=%1$s was smushed by a falling boxcar. Oh well. +death.attack.broadcast=%1$s got their brain melted. +death.attack.building=%1$s was hit by a falling building. +death.attack.cheater=%1$s's intestines turned into oats. (???) +death.attack.chopperBullet=%1$s został zmiecony przez %2$s. +death.attack.cloud=%1$s melted like a popsicle in the sun. +death.attack.cmb=%1$s was fizzeled by %2$s. +death.attack.digamma=%1$s stepped into the abyss. +death.attack.electricity=%1$s został porażony na śmierć. +death.attack.electrified=%1$s was electrified by %2$s. +death.attack.euthanized=%1$s was euthanized by %2$s. +death.attack.euthanizedSelf2=%1$s wins the Darwin Award. +death.attack.euthanizedSelf=%1$s euthanized himself, what a dork. +death.attack.exhaust=%1$s was turned into shish kebab by a starting rocket. +death.attack.flamethrower=%1$s został skremowany przez %2$s. +death.attack.flamethrower.item=%1$s was cremated by %2$s using %3$s. +death.attack.ice=%1$s was turned into a popsicle by %2$s. +death.attack.laser=%1$s was turned into ash by %2$s. +death.attack.laser.item=%1$s was turned into ash by %2$s using %3$s. +death.attack.lead=%1$s umarł od zatrucia ołowiowego. +death.attack.lunar=%1$s forgot to charge their vital organs. +death.attack.meteorite=%1$s was hit by a falling rock from outer space. +death.attack.microwave=%1$s was exploded by microwave radiation. +death.attack.mku=%1$s died from unknown causes. +death.attack.monoxide=%1$s forgot to change the batteries in their carbon monoxide detector. +death.attack.mudPoisoning=%1$s died in poisonous mud. +death.attack.nuclearBlast=%1$s was blown away by a nuclear explosion. +death.attack.overdose=%1$s overdosed and asphyxiated. +death.attack.pc=%1$s was reduced to a puddle in the pink cloud. +death.attack.plasma=%1$s was immolated by %2$s. +death.attack.radiation=%1$s died from radiation poisoning. +death.attack.revolverBullet=%1$s was shot in the head by %2$s. +death.attack.revolverBullet.item=%1$s was shot in the head by %2$s using %3$s. +death.attack.rubble=%1$s was squashed by debris. +death.attack.shrapnel=%1$s was ragged by a shrapnel. +death.attack.spikes=%1$s został nadziany. +death.attack.subAtomic1=Atomy %1$s zostały zniszczone przez %2$s. +death.attack.subAtomic2=%1$s was QPU-misaligned because %2$s tampered with their de facto speed. +death.attack.subAtomic3=%1$s's divergence dropped below 1 percent because of %2$s. +death.attack.subAtomic4=%1$s został podzielony przez zero przez %2$s. +death.attack.subAtomic5=%1$s został znulyfikowany przez %2$s. +death.attack.suicide=%1$s odstrzelił sobie łeb. +death.attack.taint=%1$s umał od guzów fluksowych. +death.attack.tau=%1$s został zastrzelony przez %2$s za pomocą ujemnie naładowanych tauonów. +death.attack.tauBlast=%1$s charged the XVL1456 for too long and was blown into pieces. +death.attack.teleporter=%1$s został teleportowany w pustkę. + +desc.gui.assembler.warning=§cError:§r This machine requires an assembly template! +desc.gui.chemplant.warning=§cError:§r This machine requires an chemistry template! +desc.gui.gasCent.enrichment=§2Enrichment§r$Uranium enrichment requires cascades.$Two-centrifuge cascades will give$uranium fuel, four-centrifuge cascades$will give total separation. +desc.gui.gasCent.output=§6Fluid Transfer§r$Fluid can be transferred to another centrifuge$via the output port for further processing. +desc.gui.nukeBoy.desc=§1Requires:§r$ * Neutron Shielding$ * U235 Projectile$ * Subcritical U235 Target$ * Propellant$ * Bomb Igniter +desc.gui.nukeGadget.desc=§1Requires:§r$ * 4 Arrays of First-Generation$ High-Explosive Lenses$ * Heavy Plutonium Core$ * Wiring +desc.gui.nukeMan.desc=§1Requires:§r$ * 4 Arrays of First-Generation$ High-Explosive Lenses$ * Plutonium Core$ * Bomb Firing Unit +desc.gui.nukeMike.desc=§1Requires:§r$ * 4 Arrays of High-Explosive Lenses$ * Plutonium Core$ * Deuterium Cooling Unit$ * Uranium Coated Deuterium Tank$ * Deuterium Tank +desc.gui.nukeTsar.desc=§1Requires:§r$ * 4 Arrays of High-Explosive Lenses$ * Plutonium Core$§9Optional:§r$ * Tsar Bomba Core +desc.gui.radiolysis.desc=§9Description§r$This RTG is more efficient then others, and$comes equipped with a radiolysis chamber for$cracking and sterilization. +desc.gui.rtgBFurnace.desc=Requires at least 15 heat to process$The more heat on top of that, the faster it runs$Heat going over maximum speed will have no effect$Short-lived pellets may decay +desc.gui.rtg.heat=§eCurrent heat level: %s +desc.gui.rtg.pellets=Accepted Pellets: +desc.gui.rtg.pelletHeat=%s (%s heat) +desc.gui.rtg.pelletPower=%s (%s HE/tick) +desc.gui.template=§9Templates§r$Templates can be made by$using the Machine Template Folder. +desc.gui.turbinegas.automode=§2Automatic Turbine Throttling Mode§r$By clicking the "AUTO" button, the turbine$will automatically adjust the power production$based on the power required from the network +desc.gui.turbinegas.fuels=§6Accepted fuels:§r +desc.gui.turbinegas.warning=§cFuel or lubricant level low!§r +desc.gui.upgrade=§lAcceptable Upgrades:§r +desc.gui.upgrade.afterburner= * §dAfterburner§r: Stacks to level 3 +desc.gui.upgrade.effectiveness= * §aEffectiveness§r: Stacks to level 3 +desc.gui.upgrade.overdrive= * §7Overdrive§r: Stacks to level 3 +desc.gui.upgrade.power= * §1Power-Saving§r: Stacks to level 3 +desc.gui.upgrade.speed= * §4Speed§r: Stacks to level 3 +desc.gui.zirnox.coolant=§3Coolant§r$CO2 transfers heat from the core to the water.$This will boil it into super dense steam.$The efficiency of cooling and steam production$is based on pressure. +desc.gui.zirnox.pressure=§6Pressure§r$Pressure can be reduced by venting CO2.$However, too low a pressure, and cooling$efficiency and steam production will be reduced.$Look out for meltdowns! +desc.gui.zirnox.warning1=§cError:§r Water is required for$the reactor to function properly! +desc.gui.zirnox.warning2=§cError:§r CO2 is required for$the reactor to function properly! +desc.item.ammo.con_accuracy2=- Highly decreased accuracy +desc.item.ammo.con_damage=- Highly decreased damage +desc.item.ammo.con_heavy_wear=- Highly increased wear +desc.item.ammo.con_ling_fire=- No lingering fire +desc.item.ammo.con_nn=- Not even a nuke +desc.item.ammo.con_no_damage=- No damage +desc.item.ammo.con_no_explode1=- Non-explosive +desc.item.ammo.con_no_explode2=- No block damage +desc.item.ammo.con_no_explode3=- No splash damage +desc.item.ammo.con_no_fire=- Not incendiary +desc.item.ammo.con_no_mirv=- Not recommended for the Proto MIRV +desc.item.ammo.con_no_projectile=- No projectile +desc.item.ammo.con_penetration=- Not penetrating +desc.item.ammo.con_radius=- Decreased blast radius +desc.item.ammo.con_range2=- Highly decreased range +desc.item.ammo.con_sing_projectile=- Single projectile +desc.item.ammo.con_speed=- Decreased projectile speed +desc.item.ammo.con_super_wear=- Very highly increased wear +desc.item.ammo.con_wear=- Increased wear +desc.item.ammo.neu_40mm=* It's a 40mm grenade that we squeezed to fit the barrel! +desc.item.ammo.neu_blank=* It's a blank +desc.item.ammo.neu_boat=* Boat +desc.item.ammo.neu_boxcar=* Boxcar +desc.item.ammo.neu_building=* Building +desc.item.ammo.neu_chlorophyte=* Chlorophyte +desc.item.ammo.neu_eraser=* For removing big mistakes +desc.item.ammo.neu_fun=* Fun for the whole family! +desc.item.ammo.neu_heavy_metal=* Heavy Metal +desc.item.ammo.neu_homing=* Homing +desc.item.ammo.neu_jolt=* Jolt +desc.item.ammo.neu_less_bouncy=* Less bouncy +desc.item.ammo.neu_maskman_flechette=* Fires a tracer which summons a storm of DU-flechettes +desc.item.ammo.neu_maskman_meteorite=* Fires a high-damage round that summons a small meteorite +desc.item.ammo.neu_more_bouncy=* Extra bouncy +desc.item.ammo.neu_no_bounce=* Not bouncy +desc.item.ammo.neu_no_con=* No drawbacks lole +desc.item.ammo.neu_starmetal=* Starmetal +desc.item.ammo.neu_tracer=* Tracer +desc.item.ammo.neu_uhh=* Uhhh +desc.item.ammo.neu_warcrime1=* Technically a warcrime +desc.item.ammo.neu_warcrime2=* Twice the warcrime in a single round! +desc.item.ammo.pro_accurate1=+ Increased accuracy +desc.item.ammo.pro_accurate2=+ Near-perfect accuracy +desc.item.ammo.pro_balefire=+ Balefire +desc.item.ammo.pro_bomb_count=+ Increased bomb count +desc.item.ammo.pro_caustic=+ Caustic +desc.item.ammo.pro_chainsaw=+ Chainsaw +desc.item.ammo.pro_chlorine=+ Chlorine gas +desc.item.ammo.pro_damage=+ Increased damage +desc.item.ammo.pro_damage_slight=+ Above average damage +desc.item.ammo.pro_emp=+ EMP +desc.item.ammo.pro_explosive=+ Explosive +desc.item.ammo.pro_fallout=+ Fallout +desc.item.ammo.pro_fit_357=+ Fits every .357 model +desc.item.ammo.pro_flames=+ Increased flame count +desc.item.ammo.pro_gravity=+ Decreased gravity +desc.item.ammo.pro_heavy_damage=+ Highly increased damage +desc.item.ammo.pro_incendiary=+ Incendiary +desc.item.ammo.pro_lunatic=+ Lunatic +desc.item.ammo.pro_marauder=+ Instantly removes annoying and unbalanced enemies +desc.item.ammo.pro_mining=+ Explosion drops all blocks +desc.item.ammo.pro_no_gravity=+ Not affected by gravity +desc.item.ammo.pro_nuclear=+ Nuclear +desc.item.ammo.pro_penetration=+ Penetrating +desc.item.ammo.pro_percussion=+ Percussive blast +desc.item.ammo.pro_phosphorus=+ Induces phosphorus burns +desc.item.ammo.pro_phosphorus_splash=+ Phosphorus splash +desc.item.ammo.pro_poison_gas=+ Poison splash +desc.item.ammo.pro_radius=+ Increased blast radius +desc.item.ammo.pro_radius_high=+ Highly increased blast radius +desc.item.ammo.pro_range=+ Increased range +desc.item.ammo.pro_rocket=+ Rocket +desc.item.ammo.pro_rocket_propelled=+ Rocket Propelled +desc.item.ammo.pro_shrapnel=+ Shrapnel +desc.item.ammo.pro_speed=+ Increased projectile speed +desc.item.ammo.pro_stunning=+ Stunning +desc.item.ammo.pro_toxic=+ Toxic +desc.item.ammo.pro_wear=+ Decreased wear +desc.item.ammo.pro_withering=+ Withering +desc.item.armorMod.display=to display installed armor mods +desc.item.battery.charge=Charge: %s / %sHE +desc.item.battery.chargePerc=Charge: %s%% +desc.item.battery.chargeRate=Charge rate: %sHE/tick +desc.item.battery.dischargeRate=Discharge rate: %sHE/tick +desc.item.durability=Durability: %s +desc.item.grenade.fuse=Fuse: %s +desc.item.grenade.fuseImpact=Impact +desc.item.grenade.fuseInstant=Instant +desc.item.gun.ammo=Ammo %s +desc.item.gun.ammoBelt=Belt +desc.item.gun.ammoEnergy=Energy; %sHE per shot +desc.item.gun.ammoEnergyAlt=%sHE per alt shot +desc.item.gun.ammoMag=%s / %s +desc.item.gun.ammoType=Ammo Type: %s +desc.item.gun.ammoTypeAlt=Secondary Ammo: %s +desc.item.gun.damage=Damage: %s - %s +desc.item.gun.damageAlt=Damage: %s +desc.item.gun.lore=to view in-depth lore +desc.item.gun.loreFunc=to view in-depth functionality +desc.item.gun.manufacturer=Manufacturer: %s +desc.item.gun.name=Name: %s +desc.item.gun.pellets=Projectiles: %s - %s +desc.item.gun.penetration=Armor Penetration Value: %s +desc.item.kitArmor=Armor will be displaced by new set. +desc.item.kitHaz=Armor will be displaced by hazmat suit. +desc.item.kitPack=What a bargain! +desc.item.kitPool=Please empty inventory before opening! +desc.item.pileRod=§eUse on drilled graphite to insert$§eUse screwdriver to extract$ +desc.item.rtgDecay=Decays to: %s +desc.item.rtgHeat=Power Level: %s +desc.item.storage.capacity=Capacity %s%%s +desc.item.storage.proscons=to view pros cons list +desc.misc.357=.357 Magnum +desc.misc.556=.223 Remington +desc.misc.762=.308 Winchester +desc.misc.func=§n-- Function -- +desc.misc.lanthanum="Lanthanum" +desc.misc.lctrl=§8Hold <§e§oLCTRL§8§o> %s +desc.misc.lore=§n-- Lore -- +desc.misc.lshift=§8Hold <§e§oLSHIFT§8§o> %s +desc.misc.luna=§o20x155mm Lunatic +desc.misc.meltPoint=Melting point: §c%s +desc.misc.noPos=No position set! +desc.misc.pos=Set pos to: %s, %s, %s +desc.misc.posSet=Position set! +desc.item.wasteCooling=Cool in a Spent Fuel Pool Drum +desc.item.zirnoxBreedingRod=§2[ZIRNOX Breeding Rod]$§ePlace next to fuel rods to breed$§eLasts %d ticks +desc.item.zirnoxRod=§a[ZIRNOX Fuel Rod]$§eGenerates %1$d heat per tick$§eLasts %2$d ticks + +digamma.playerDigamma=Ekzpozycja Digammy: +digamma.playerHealth=Wpływ Digammy: +digamma.playerRes=Odporność na Digammę: +digamma.title=URZĄDZENIE DIAGNOSTYCZNE DIGAMMA + +entity.entity_cyber_crab.name=Cyber Krab +entity.entity_elder_one.name=Kwakos Przedwieczny +entity.entity_fucc_a_ducc.name=Kaczka +entity.entity_glyphid.name=Glifid +entity.entity_glyphid_behemoth.name=Glyphid Behemoth +entity.entity_glyphid_blaster.name=Glyphid Blaster +entity.entity_glyphid_bombardier.name=Glyphid Bombardier +entity.entity_glyphid_brawler.name=Glyphid Brawler +entity.entity_glyphid_brenda.name=Brenda +entity.entity_glyphid_nuclear.name=Big Man Johnson +entity.entity_glyphid_scout.name=Glyphid Scout +entity.entity_ntm_fbi.name=FBI Agent +entity.entity_ntm_radiation_blaze.name=Meltdown Elemental +entity.hbm.entity_ntm_ufo.name=Martian Invasion Ship +entity.entity_mob_hunter_chopper.name=Hunter Chopper +entity.entity_mob_mask_man.name=Mask Man +entity.entity_mob_gold_creeper.name=Golden Creeper +entity.entity_mob_nuclear_creeper.name=Nuclear Creeper +entity.entity_mob_phosgene_creeper.name=Phosgene Creeper +entity.entity_mob_tainted_creeper.name=Tainted Creeper +entity.entity_mob_volatile_creeper.name=Volatile Creeper +entity.entity_taint_crab.name=Taint Crab +entity.entity_tesla_crab.name=Tesla Crab +entity.hbm.entity_balls_o_tron.name=Balls-O-Tron Prime +entity.hbm.entity_balls_o_tron_seg.name=Balls-O-Tron Segment +entity.hbm.entity_bullet.name=Bullet +entity.hbm.entity_rocket.name=Rocket +entity.hbm.entity_schrabnel.name=Schrabnel + +flare.ignition=Ignition +flare.valve=Flow Valve + +fluid.acid_fluid=Acid +fluid.corium_fluid=Corium +fluid.mud_fluid=Poisonous Mud +fluid.schrabidic_fluid=Schrabidic Acid +fluid.toxic_fluid=Stereotypical Green Ooze +fluid.volcanic_lava_fluid=Volcanic Lava + +foundry.filter=Filter: %s +foundry.inverted=Redstone inverted +foundry.invertFilter=Filter inverted +foundry.noCast=No mold installed! + +geiger.chunkRad=Current chunk radiation: +geiger.envRad=Total environmental radiation: +geiger.playerRad=Player contamination: +geiger.playerRes=Player resistance: +geiger.title=GEIGER COUNTER +geiger.title.dosimeter=DOSIMETER + +gun.make.ARMALITE=Armalite +gun.make.AUTO_ORDINANCE=Auto-Ordnance Corporation +gun.make.BAE=BAE Systems plc +gun.make.BENELLI=Benelli Armi SpA +gun.make.BLACK_MESA=Black Mesa Research Facility +gun.make.CERIX=Cerix Magnus +gun.make.COLT=Colt's Manufacturing Company +gun.make.COMBINE=The Universal Union +gun.make.CUBE=Cube 2: Sauerbraten +gun.make.ENZINGER=Enzinger Union +gun.make.EQUESTRIA=Equestria Missile Systems +gun.make.FLIMFLAM=FlimFlam Industries +gun.make.F_STRONG=Fort Strong +gun.make.GLORIA=Gloria GmbH +gun.make.HASBRO=Hasbro +gun.make.H_AND_K=Heckler & Koch +gun.make.H_AND_R=Harrington & Richardson +gun.make.IF=Ironshod Firearms +gun.make.IMI=Israel Military Industries +gun.make.IMI_BIGMT=IMI / Big MT +gun.make.LANGFORD=Langford Research Laboratories +gun.make.LUNA=Lunar Defense Corp +gun.make.MAGNUM_R_IMI=Magnum Research / Israel Military Industries +gun.make.MANN=Open Mann Co. +gun.make.MAXIM=Hiram Maxim +gun.make.METRO=Metro Gunsmiths +gun.make.MWT=MWT Prototype Labs +gun.make.NAZI=Erfurter Maschinenfabrik Geipel +gun.make.NONE=- +gun.make.RAYTHEON=Raytheon Missile Systems +gun.make.REMINGTON=Remington Arms +gun.make.ROCKWELL=Rockwell International Corporation +gun.make.ROCKWELL_U=Rockwell International Corporation? +gun.make.RYAN=Ryan Industries +gun.make.SAAB=Saab Bofors Dynamics +gun.make.SACO=Saco Defense / US Ordnance +gun.make.TULSKY=Tulsky Oruzheiny Zavod +gun.make.UAC=Union Aerospace Corporation +gun.make.UNKNOWN=??? +gun.make.WESTTEK=WestTek +gun.make.WGW=Wilhelm-Gustloff-Werke +gun.make.WINCHESTER=Winchester Repeating Arms Company +gun.make.WINCHESTER_BIGMT=Winchester Repeating Arms Company / Big MT + +gun.name.ar15_50=AR-15 .50 BMG Mod +gun.name.baeAR=Britannian Standard Issue Assault Rifle +gun.name.bel=Balefire Egg Launcher +gun.name.benelli=Benelli M4 Super 90 +gun.name.benelliDrum=Benelli M4 Super 90 (Drum Magazine Modification) +gun.name.bio=RI No. 2 Mark 1 +gun.name.bolter=Manticora Pattern Boltgun +gun.name.cPython=Colt Python +gun.name.cz53=CZ53 Personal Minigun +gun.name.cz57=CZ57 Avenger Minigun +gun.name.dart=Needle Gun +gun.name.deagle=IMI Desert Eagle +gun.name.emp=EMP Orb Projector +gun.name.extinguisher=PROTEX Fire Exinguisher 6kg +gun.name.ffiV=FFI Viper +gun.name.ffiVInox=FFI Viper Inox +gun.name.ffiVLead=FFI Viper Lead +gun.name.ffiVN1=FFI Viper N1 +gun.name.ffiVN2=FFI Viper N2 +gun.name.ffiVUltra=FFI Viper Ultra +gun.name.ffivBling=FFI Viper Bling +gun.name.ffivSatur=FFI Viper D-25A +gun.name.g36=Heckler & Koch Gewehr 36 +gun.name.gPistol=Granatpistole HK69 +gun.name.gustav=Carl Gustav Recoilless Rifle M1 +gun.name.ifHorseshoe=IF-18 Horseshoe +gun.name.ifPit=IF-18 Horseshoe Bottomless Pit +gun.name.ifScope=IF-18 Horseshoe Scoped +gun.name.ifStorm=IF-18 Horseshoe Silver Storm +gun.name.ifVanity=IF-18 Horseshoe Vanity +gun.name.karl=M1 Karl-Gerät +gun.name.ks23=KS-23 +gun.name.lacunae=Auntie Lacunae +gun.name.lasetDet=Hopeville Laser Detonator +gun.name.lunaAR=1986 Bishamonten type Assault Rifle +gun.name.lunaGun=1978 Rāhula type Standard Issue Sidearm (Revision 2) +gun.name.lunaHLR=1944 Chang'e type Light Machine Gun +gun.name.lunaShotty=1978 Guan Yu type Scattergun (Revision 1) +gun.name.lunaSMG=1956 Ānanda type Submachine Gun +gun.name.lunaSniper=1915 Hou Yi type Anti-Material Rifle +gun.name.lunaTWR=Time Warp Rifle +gun.name.m2=Browning machine gun, cal. .50, M2, HB +gun.name.m42=M-42 Tactical Nuclear Catapult +gun.name.m42MIRV=M-42 Experimental MIRV +gun.name.m60=Machine Gun, Caliber 7.62 mm, M60 +gun.name.maxim=Maxim gun +gun.name.maximDouble=Double Maxim gun +gun.name.mg3=Universal-Maschinengewehr Modell 3 +gun.name.mp40=Maschinenpistole 40 +gun.name.nerf=NERF blaster of unknown design +gun.name.osipr=Overwatch Standard Issue Pulse Rifle +gun.name.panz=Raketenpanzerbüchse 54 +gun.name.quadro=OpenQuadro Guided Man-Portable Missile Launcher +gun.name.remington870=Remington 870 +gun.name.revolverCursed=Britannia Standard Issue Motorized Handgun +gun.name.sauer=Sauer Shotgun +gun.name.spas12=Franchi SPAS-12 +gun.name.spiw=H&R SPIW +gun.name.stinger=FIM-92 Stinger man-portable air-defense system +gun.name.stingerOneSky=The One Sky Stinger +gun.name.supershotty=Double-Barreled Combat Shotgun +gun.name.tau=XVL1456 Tau Cannon +gun.name.tommy9=M1A1 Submachine Gun 9mm Mod +gun.name.tommy=M1A1 Submachine Gun +gun.name.topaz=Heavy Duty Flamer +gun.name.uacCarbine=UAC-41 Carbine +gun.name.uacDeagle=UAC-H54 "Martian Raptor" Automag +gun.name.uacDMR=UAC-30 Designated Marksman Rifle +gun.name.uacLMG=UAC-49 Light Machine Gun +gun.name.uacPistol=UAC-B950 .45 Standard Issue Handgun +gun.name.uacSMG=UAC-17 Compact Sub-Machine Gun +gun.name.uboinik=Uboinik Revolving Shotgun +gun.name.uzi=IMI Uzi +gun.name.uziSatur=IMI Uzi D-25A +gun.name.win1887=Winchester Model 1887 +gun.name.win1887Inox=Winchester Model 1887 Inox +gun.name.win20Inox=Winchester Model 20 Inox +gun.name.win20Poly=Winchester Model 20 Polymer +gun.name.win20Satur=Winchester Model 20 D-25A +gun.name.zomg=EMC101 Prismatic Negative Energy Cannon + +hadron.analysis=Analyzing... +hadron.buttonOn=Analysis Chamber (if present) is ON +hadron.buttonOff=Analysis Chamber is OFF +hadron.error_generic=Error! +hadron.error_no_charge=Error 0x01 [NC] +hadron.error_no_analysis=Error 0x02 [NA] +hadron.error_obstructed_channel=Error 0x03 [OC] +hadron.error_expected_coil=Error 0x04 [EC] +hadron.error_malformed_segment=Error 0x05 [MS] +hadron.error_analysis_too_long=Error 0x06 [ATL] +hadron.error_analysis_too_short=Error 0x07 [ATS] +hadron.error_diode_collision=Error 0x08 [DC] +hadron.error_branching_turn=Error 0x09 [BT] +hadron.hopper0=§eNormal Mode:$All items will be used. +hadron.hopper1=§eHopper Mode:$One item will always remain. +hadron.idle=Idle +hadron.modeCircular=§eCircular Accelerator Mode:$Magnets must loop back into core.$Unlocks more recipes. +hadron.modeLine=§eLinear Accelerator Mode:$Accelerator ends with analysis chamber.$Fewer Recipes. +hadron.noresult=No Result. +hadron.noresult_too_slow=Insuff. momentum! +hadron.noresult_wrong_ingredient=Invalid recipe! +hadron.noresult_wrong_mode=Wrong mode! +hadron.progress=In Progress... +hadron.stats=Previous results: +hadron.stats_coord=Erroring position: %s / %s / %s +hadron.stats_momentum=Momentum: %s +hadron.success=Completed! + +hazard.prot=Protects against hazards: +hazard.noprot=Does NOT protect against: +hazard.bacteria=Bacteria / Aerosols +hazard.corrosive=Corrosive Fumes +hazard.gasChlorine=Chemical Gas +hazard.gasInert=Inert Gas / Asphxiants +hazard.gasMonoxide=Carbon Monoxide +hazard.light=Bright Lights +hazard.nerveAgent=Nerve Agent +hazard.neverProtects=Will never protect against: +hazard.particleCoarse=Airborne Particles +hazard.particleFine=Particulates +hazard.sand=Eye Irritants + +hbm.key=NTM Hotkeys +hbm.key.calculator=Calculator +hbm.key.craneLoad=Load/Unload Crane +hbm.key.craneMoveDown=Move Crane Backward +hbm.key.craneMoveLeft=Move Crane Left +hbm.key.craneMoveRight=Move Crane Right +hbm.key.craneMoveUp=Move Crane Forward +hbm.key.dash=Dash (Unbind from Crouch in config) +hbm.key.toggleBack=Toggle Backpack +hbm.key.toggleHUD=Toggle HUD +hbm.key.reload=Reload + +hbmfluid.acid=Hydrogen Peroxide +hbmfluid.amat=Antimatter +hbmfluid.aromatics=Aromatic Hydrocarbons +hbmfluid.aschrab=Antischrabidium +hbmfluid.balefire=BF Rocket Fuel +hbmfluid.biofuel=Biofuel +hbmfluid.biogas=Biogas +hbmfluid.bitumen=Bitumen +hbmfluid.blood=Blood +hbmfluid.blood_hot=Hot Blood +hbmfluid.calcium_chloride=Calciumchloride Solution +hbmfluid.calcium_solution=Calcium Solution +hbmfluid.carbondioxide=Carbon Dioxide +hbmfluid.chlorine=Chlorine Gas +hbmfluid.chlorocalcite_cleaned=Cleaned Chlorocalcite Solution +hbmfluid.chlorocalcite_mix=Mixed Chlorocalcite Solution +hbmfluid.chlorocalcite_solution=Chlorocalcite Solution +hbmfluid.cholesterol=Cholesterol Solution +hbmfluid.coalcreosote=Coal Tar Creosote +hbmfluid.coalgas=Coal Gasoline +hbmfluid.coalgas_leaded=Leaded Coal Gasoline +hbmfluid.coaloil=Coal Oil +hbmfluid.colloid=Colloid +hbmfluid.coolant=Coolant +hbmfluid.coolant_hot=Hot Coolant +hbmfluid.crackoil=Cracked Oil +hbmfluid.cryogel=Cryogel +hbmfluid.death=Osmiridic Solution +hbmfluid.deuterium=Deuterium +hbmfluid.diesel=Diesel +hbmfluid.diesel_crack=Cracked Diesel +hbmfluid.diesel_crack_reform=High-Octane Cracked Diesel +hbmfluid.diesel_reform=High-Octane Diesel +hbmfluid.egg=Dissolved Egg +hbmfluid.estradiol=Estradiol Solution +hbmfluid.ethanol=Ethanol +hbmfluid.enderjuice=Ender Juice +hbmfluid.fishoil=Fish Oil +hbmfluid.fracksol=Fracking Solution +hbmfluid.gas=Natural Gas +hbmfluid.gas_coker=Coker Gas +hbmfluid.gasoline=Gasoline +hbmfluid.gasoline_leaded=Leaded Gasoline +hbmfluid.heatingoil=Heating Oil +hbmfluid.heatingoil_vacuum=Heavy Heating Oil +hbmfluid.heavyoil=Heavy Oil +hbmfluid.heavyoil_vacuum=Vacuum Heavy Oil +hbmfluid.heavywater=Heavy Water +hbmfluid.helium3=Helium-3 +hbmfluid.helium4=Helium-4 +hbmfluid.hotcrackoil=Hot Cracked Oil +hbmfluid.hotoil=Hot Crude Oil +hbmfluid.hotsteam=Dense Steam +hbmfluid.hydrogen=Liquid Hydrogen +hbmfluid.iongel=Ionic Gel +hbmfluid.kerosene=Kerosene +hbmfluid.kerosene_reform=Jet Fuel +hbmfluid.lava=Lava +hbmfluid.lightoil=Light Oil +hbmfluid.lightoil_crack=Cracked Light Oil +hbmfluid.lightoil_vacuum=Vacuum Light Oil +hbmfluid.lpg=LPG +hbmfluid.lubricant=Engine Lubricant +hbmfluid.mercury=Mercury +hbmfluid.mug=Mug Root Beer +hbmfluid.mug_hot=Hot Mug Root Beer +hbmfluid.mustardgas=Mustard Gas +hbmfluid.naphtha=Naphtha +hbmfluid.naphtha_coker=Coker Naphtha +hbmfluid.naphtha_crack=Cracked Naphtha +hbmfluid.nitan=NITAN© 100 Octane Super Fuel +hbmfluid.nitric_acid=Nitric Acid +hbmfluid.nitroglycerin=Nitroglycerin +hbmfluid.none=None +hbmfluid.oil=Crude Oil +hbmfluid.oil_coker=Coker Oil +hbmfluid.oxygen=Liquid Oxygen +hbmfluid.oxyhydrogen=Oxyhydrogen +hbmfluid.pain=Pandemonium(III)tantalite Solution +hbmfluid.petroil=Petroil +hbmfluid.petroil_leaded=Leaded Petroil +hbmfluid.petroleum=Petroleum Gas +hbmfluid.phosgene=Phosgene +hbmfluid.plasma_bf=Balefire Plasma +hbmfluid.plasma_dh3=Deuterium-Helium-3 Plasma +hbmfluid.plasma_dt=Deuterium-Tritium Plasma +hbmfluid.plasma_hd=Hydrogen-Deuterium Plasma +hbmfluid.plasma_ht=Hydrogen-Tritium Plasma +hbmfluid.plasma_xm=Helium-4-Oxygen Plasma +hbmfluid.potassium_chloride=Potassiumchloride Solution +hbmfluid.puf6=Plutonium Hexafluoride +hbmfluid.radiosolvent=High-Performance Solvent +hbmfluid.reclaimed=Reclaimed Industrial Oil +hbmfluid.redmud=Red Mud +hbmfluid.reformate=Reformate +hbmfluid.reformgas=Reformate Gas +hbmfluid.salient=Salient Green +hbmfluid.sas3=Schrabidium Trisulfide +hbmfluid.schrabidic=Schrabidic Acid +hbmfluid.seedslurry=Seeding Slurry +hbmfluid.smear=Industrial Oil +hbmfluid.smoke=Smoke +hbmfluid.smoke_leaded=Leaded Smoke +hbmfluid.smoke_poison=Poison Smoke +hbmfluid.solvent=Solvent +hbmfluid.sourgas=Sour Gas +hbmfluid.spentsteam=Low-Pressure Steam +hbmfluid.steam=Steam +hbmfluid.sulfuric_acid=Sulfuric Acid +hbmfluid.sunfloweroil=Sunflower Seed Oil +hbmfluid.superhotsteam=Super Dense Steam +hbmfluid.syngas=Syngas +hbmfluid.tritium=Tritium +hbmfluid.uf6=Uranium Hexafluoride +hbmfluid.ultrahotsteam=Ultra Dense Steam +hbmfluid.unsaturateds=Unsaturated Hydrocarbons +hbmfluid.wastefluid=Liquid Nuclear Waste +hbmfluid.wastegas=Gaseous Nuclear Waste +hbmfluid.water=Water +hbmfluid.watz=Poisonous Mud +hbmfluid.woodoil=Wood Oil +hbmfluid.xenon=Xenon Gas +hbmfluid.xpjuice=Experience Juice +hbmfluid.xylene=BTX +hbmpseudofluid.none=Empty +hbmpseudofluid.heuf6=Highly Enriched UF6 +hbmpseudofluid.meuf6=Medium Enriched UF6 +hbmpseudofluid.leuf6=Low Enriched UF6 +hbmpseudofluid.nuf6=Natural UF6 +hbmpseudofluid.pf6=Plutonium Hexafluoride +hbmpseudofluid.mud_heavy=Heavy Sludge Fraction +hbmpseudofluid.mud=Poisonous Sludge Gas + +hbmmat.actinium227=Actinium-227 +hbmmat.advancedalloy=Advanced Alloy +hbmmat.aluminum=Aluminium +hbmmat.americiumrg=Reactor-Grade Americium +hbmmat.americium241=Americium-241 +hbmmat.americium242=Americium-242 +hbmmat.arsenic=Arsenic +hbmmat.asbestos=Asbestos +hbmmat.bakelite=Bakelite +hbmmat.beryllium=Beryllium +hbmmat.bismuth=Bismuth +hbmmat.borax=Borax +hbmmat.boron=Boron +hbmmat.cadmium=Cadmium +hbmmat.carbon=Carbon +hbmmat.cdalloy=Cadmium Steel +hbmmat.cinnabar=Cinnabar +hbmmat.cmbsteel=Combine Steel +hbmmat.coal=Coal +hbmmat.coalcoke=Coal Coke +hbmmat.cobalt=Cobalt +hbmmat.cobalt60=Cobalt-60 +hbmmat.coltan=Coltan +hbmmat.copper=Copper +hbmmat.desh=Desh +hbmmat.dineutronium=Dineutronium +hbmmat.durasteel=High-Speed Steel +hbmmat.euphemium=Euphemium +hbmmat.ferrouranium=Ferrouranium +hbmmat.fiberglass=Fiberglass +hbmmat.fluorite=Fluorite +hbmmat.flux=Flux +hbmmat.ghiorsium336=Ghiorsium-336 +hbmmat.gold=Gold +hbmmat.gold198=Gold-198 +hbmmat.graphene=Graphene +hbmmat.graphite=Graphite +hbmmat.hematite=Hematite +hbmmat.iron=Iron +hbmmat.lapis=Lapis Lazuli +hbmmat.lead=Lead +hbmmat.lead209=Lead-209 +hbmmat.lignitecoke=Lignite Coke +hbmmat.lignite=Lignite +hbmmat.lithium=Lithium +hbmmat.magnetizedtungsten=Magnetized Tungsten +hbmmat.malachite=Malachite +hbmmat.meteoriciron=Meteoric Iron +hbmmat.mingrade=Minecraft Grade Copper +hbmmat.neptunium237=Neptunium-237 +hbmmat.niobium=Niobium +hbmmat.obsidian=Obsidian +hbmmat.osmiridium=Osmiridium +hbmmat.petcoke=Petroleum Coke +hbmmat.pigiron=Pig Iron +hbmmat.plutonium=Plutonium +hbmmat.plutonium238=Plutonium-238 +hbmmat.plutonium239=Plutonium-239 +hbmmat.plutonium240=Plutonium-240 +hbmmat.plutonium241=Plutonium-241 +hbmmat.plutoniumrg=Reactor-Grade Plutonium +hbmmat.polonium210=Polonium-210 +hbmmat.polymer=Polymer +hbmmat.radium226=Radium-226 +hbmmat.redphosphorus=Red Phosphorus +hbmmat.redstone=Redstone +hbmmat.rubber=Rubber +hbmmat.saltpeter=Niter +hbmmat.saturnite=Saturnite +hbmmat.schrabidate=Ferric Schrabidate +hbmmat.schrabidium=Schrabidium +hbmmat.schraranium=Schraranium +hbmmat.slag=Slag +hbmmat.solinium=Solinium +hbmmat.starmetal=Starmetal +hbmmat.steel=Steel +hbmmat.stone=Stone +hbmmat.sulfur=Sulfur +hbmmat.tantalum=Tantalum +hbmmat.tcalloy=Technetium Steel +hbmmat.technetium99=Technetium-99 +hbmmat.titanium=Titanium +hbmmat.thorium232=Thorium-232 +hbmmat.tungsten=Tungsten +hbmmat.uranium=Uranium +hbmmat.uranium233=Uranium-233 +hbmmat.uranium235=Uranium-235 +hbmmat.uranium238=Uranium-238 +hbmmat.watzmud=Poisonous Mud +hbmmat.whitephosphorus=White Phosphorus +hbmmat.workersalloy=Desh +hbmmat.wroughtiron=Wroght Iron + +matshape.block=%s Block +matshape.blocks=%s Blocks +matshape.ingot=%s Ingot +matshape.ingots=%s Ingots +matshape.nugget=%s Nugget +matshape.nuggets=%s Nuggets +matshape.quantum=%s Quantum +matshape.quanta=%s Quanta + +info.asbestos=My lungs are burning. +info.coaldust=It's hard to breathe here. +info.coil=Coil Strength +info.templatefolder=Created with %s +info.template_in=Input: +info.template_in_p=Inputs: +info.template_out=Output: +info.template_out_p=Outputs: +info.template_seconds=seconds +info.template_time=Production Time: + +item.acetylene_torch.name=Acetylene Welding Torch +item.ajr_boots.name=Steel Ranger Boots +item.ajr_helmet.name=Steel Ranger Helmet +item.ajr_legs.name=Steel Ranger Leggings +item.ajr_plate.name=Steel Ranger Chestplate +item.ajro_boots.name=AJR Power Armor Boots +item.ajro_helmet.name=AJR Power Armor Helmet +item.ajro_legs.name=AJR Power Armor Leggings +item.ajro_plate.name=AJR Power Armor Chestplate +item.alloy_axe.name=Advanced Alloy Axe +item.alloy_boots.name=Advanced Alloy Boots +item.alloy_helmet.name=Advanced Alloy Helmet +item.alloy_hoe.name=Advanced Alloy Hoe +item.alloy_legs.name=Advanced Alloy Leggings +item.alloy_pickaxe.name=Advanced Alloy Pickaxe +item.alloy_plate.name=Advanced Alloy Chestplate +item.alloy_shovel.name=Advanced Alloy Shovel +item.alloy_sword.name=Advanced Alloy Sword +item.ammo_12gauge.name=12 Gauge Buckshot +item.ammo_12gauge_du.name=12 Gauge Buckshot (Uranium Coated) +item.ammo_12gauge_incendiary.name=12 Gauge Buckshot (Incendiary) +item.ammo_12gauge_marauder.name=12 Gauge Tactical Anti-Marauder Shell +item.ammo_12gauge_percussion.name=12 Gauge Percussion Cap +item.ammo_12gauge_shrapnel.name=12 Gauge Buckshot (Shrapnel) +item.ammo_12gauge_sleek.name=12 Gauge Buckshot (IF-R&D) +item.ammo_20gauge.name=20 Gauge Buckshot +item.ammo_20gauge_caustic.name=20 Gauge Buckshot (Caustic) +item.ammo_20gauge_explosive.name=20 Gauge Buckshot (Explosive) +item.ammo_20gauge_flechette.name=20 Gauge Flechette Shell +item.ammo_20gauge_incendiary.name=20 Gauge Buckshot (Incendiary) +item.ammo_20gauge_shock.name=20 Gauge Buckshot (Shock) +item.ammo_20gauge_shrapnel.name=20 Gauge Buckshot (Shrapnel) +item.ammo_20gauge_sleek.name=20 Gauge Buckshot (IF-R&D) +item.ammo_20gauge_slug.name=20 Gauge Brenneke Slug +item.ammo_20gauge_wither.name=20 Gauge Buckshot (Withering) +item.ammo_22lr.name=.22 LR Round +item.ammo_22lr_ap.name=.22 LR Round (Armor Piercing) +item.ammo_22lr_chlorophyte.name=.22 LR Round (Chlorophyte) +item.ammo_357_desh.name=.357 Magnum Desh Bullet +item.ammo_44.name=.44 Magnum Bullet +item.ammo_44_ap.name=.44 Magnum Bullet (Armor Piercing) +item.ammo_44_bj.name=.44 Magnum Bullet (Boat) +item.ammo_44_chlorophyte.name=.44 Magnum Bullet (Chlorophyte) +item.ammo_44_du.name=.44 Magnum Bullet (DU) +item.ammo_44_phosphorus.name=.44 Magnum Bullet (WP) +item.ammo_44_pip.name=.44 Magnum Bullet (Boxcar) +item.ammo_44_rocket.name=.44 Magnum Rocket +item.ammo_44_silver.name=.44 Magnum Bullet (Building) +item.ammo_44_star.name=.44 Magnum Bullet (Starmetal) +item.ammo_45.name=.45 ACP Bullet +item.ammo_45_ap.name=.45 ACP Bullet (AP) +item.ammo_45_du.name=.45 ACP Bullet (DU) +item.ammo_4gauge.name=4 Gauge Buckshot +item.ammo_4gauge_balefire.name=23mm Balefire Grenade +item.ammo_4gauge_canister.name=23mm Rocket (Canister Shot) +item.ammo_4gauge_claw.name=4 Gauge Claw Shell +item.ammo_4gauge_explosive.name=23mm Grenade +item.ammo_4gauge_flechette.name=4 Gauge Flechette Shell +item.ammo_4gauge_flechette_phosphorus.name=4 Gauge Flechette Shell (WP) +item.ammo_4gauge_kampf.name=23mm Rocket +item.ammo_4gauge_semtex.name=23mm Mining Charge +item.ammo_4gauge_sleek.name=4 Gauge Buckshot (IF-R&D) +item.ammo_4gauge_slug.name=4 Gauge Solid Steel Slug +item.ammo_4gauge_titan.name=4 Gauge Quacker Round +item.ammo_4gauge_vampire.name=4 Gauge Wooden Stake Shell +item.ammo_4gauge_void.name=4 Gauge Void Shell +item.ammo_50ae.name=.50 AE Round +item.ammo_50ae_ap.name=.50 AE Round (Armor Piercing) +item.ammo_50ae_chlorophyte.name=.50 AE Round (Chlorophyte) +item.ammo_50ae_du.name=.50 AE Round (DU) +item.ammo_50ae_star.name=.50 AE Round (Starmetal) +item.ammo_50bmg.name=.50 BMG Round +item.ammo_50bmg_ap.name=.50 BMG Round (Armor Piercing) +item.ammo_50bmg_chlorophyte.name=.50 BMG Round (Chlorophyte) +item.ammo_50bmg_du.name=.50 BMG Round (DU) +item.ammo_50bmg_explosive.name=.50 BMG Round (Explosive) +item.ammo_50bmg_flechette.name=.50 BMG Flechette Round +item.ammo_50bmg_flechette_am.name=.50 BMG Flechette Round (Americium) +item.ammo_50bmg_flechette_po.name=.50 BMG Flechette Round (Polonium) +item.ammo_50bmg_incendiary.name=.50 BMG Round (Incendiary) +item.ammo_50bmg_phosphorus.name=.50 BMG Round (WP) +item.ammo_50bmg_sleek.name=.50 BMG Round (IF-R&D) +item.ammo_50bmg_star.name=.50 BMG Round (Starmetal) +item.ammo_556.name=5.56mm Round +item.ammo_556_ap.name=5.56mm Round (Armor Piercing) +item.ammo_556_chlorophyte.name=5.56mm Round (Chlorophyte) +item.ammo_556_du.name=5.56mm Round (DU) +item.ammo_556_flechette.name=5.56mm Flechette Round +item.ammo_556_flechette_chlorophyte.name=5.56mm Flechette Round (Chlorophyte) +item.ammo_556_flechette_du.name=5.56mm Flechette Round (Uranium Penetrator) +item.ammo_556_flechette_incendiary.name=5.56mm Flechette Round (Incendiary) +item.ammo_556_flechette_phosphorus.name=5.56mm Flechette Round (Phosphorus-Tipped) +item.ammo_556_flechette_sleek.name=5.56mm Flechette Round (IF-R&D) +item.ammo_556_k.name=5.56mm K-Round +item.ammo_556_phosphorus.name=5.56mm Round (WP) +item.ammo_556_sleek.name=5.56mm Round (IF-R&D) +item.ammo_556_star.name=5.56mm Round (Starmetal) +item.ammo_556_tracer.name=5.56mm Round (Tracer) +item.ammo_5mm.name=5mm Round +item.ammo_5mm_chlorophyte.name=5mm Round (Chlorophyte) +item.ammo_5mm_du.name=5mm Round (DU) +item.ammo_5mm_explosive.name=5mm Round (Explosive) +item.ammo_5mm_star.name=5mm Round (Starmetal) +item.ammo_75bolt.name=.75 Bolt Magazine (30rnd) +item.ammo_75bolt_incendiary.name=.75 Incendiary Bolt Magazine (30rnd) +item.ammo_75bolt_he.name=.75 Bolt High-Explosive Magazine (30rnd) +item.ammo_762.name=7.62mm Round +item.ammo_762_ap.name=7.62mm Round (AP) +item.ammo_762_du.name=7.62mm Round (DU) +item.ammo_762_k.name=7.62mm K-Round +item.ammo_762_phosphorus.name=7.62mm Round (WP) +item.ammo_762_tracer.name=7.62mm Round (Tracer) +item.ammo_9mm.name=9mm Round +item.ammo_9mm_ap.name=9mm Round (Armor Piercing) +item.ammo_9mm_chlorophyte.name=9mm Round (Chlorophyte) +item.ammo_9mm_du.name=9mm Round (DU) +item.ammo_9mm_rocket.name=9mm Rocket +item.ammo_arty.name=16" Artillery Shell +item.ammo_arty_cargo.name=16" Express Delivery Artillery Shell +item.ammo_arty_chlorine.name=16" Chlorine Gas Artillery Shell +item.ammo_arty_classic.name=16" Artillery Shell (The Factorio Special) +item.ammo_arty_he.name=16" High Explosive Artillery Shell +item.ammo_arty_mini_nuke.name=16" Micro Nuclear Artillery Shell +item.ammo_arty_mini_nuke_multi.name=16" Multi Micro Nuclear Artillery Shell +item.ammo_arty_mustard_gas.name=16" Mustard Gas Artillery Shell +item.ammo_arty_nuke.name=16" Nuclear Artillery Shell +item.ammo_arty_phosgene.name=16" Phosgene Artillery Shell +item.ammo_arty_phosphorus.name=16" Phosphorus Shell +item.ammo_arty_phosphorus_multi.name=16" Multi Phosphorus Shell +item.ammo_cell.name=Energy Cell +item.ammo_container.name=Ammo Container +item.ammo_dart.name=Plastic Dart (Withering) +item.ammo_dart_nerf.name=NERF Dart +item.ammo_dart_nuclear.name=Plastic Dart (Timed Explosive) +item.ammo_dgk.name=Goalkeeper Twin CIWS 200 Round Belt +item.ammo_fireext.name=Fire Extinguisher Water Tank +item.ammo_fireext_foam.name=Fire Extinguisher Foam Tank +item.ammo_fireext_sand.name=Fire Extinguisher Sand Tank +item.ammo_folly.name=Silver Bullet (Original) +item.ammo_folly_du.name=Silver Bullet (DU, Non-Explosive) +item.ammo_folly_nuclear.name=Silver Bullet (Nuclear) +item.ammo_fuel.name=Diesel Tank +item.ammo_fuel_gas.name=Gas Tank +item.ammo_fuel_napalm.name=Napalm Tank +item.ammo_fuel_phosphorus.name=WP Tank +item.ammo_fuel_vaporizer.name=Vaporizer Tank +item.ammo_grenade.name=40mm Grenade +item.ammo_grenade_concussion.name=40mm Grenade (Concussion) +item.ammo_grenade_finned.name=40mm Grenade (Finned) +item.ammo_grenade_he.name=40mm Grenade (HE) +item.ammo_grenade_incendiary.name=40mm Grenade (Incendiary) +item.ammo_grenade_kampf.name=40mm Rocket +item.ammo_grenade_nuclear.name=40mm Grenade (Привет) +item.ammo_grenade_phosphorus.name=40mm Grenade (WP) +item.ammo_grenade_sleek.name=40mm Grenade (IF-R&D) +item.ammo_grenade_toxic.name=40mm Grenade (Chemical) +item.ammo_grenade_tracer.name=40mm Training Grenade +item.ammo_himars_standard.name=227mm Guided Artillery Rocket Pod +item.ammo_himars_standard_he.name=227mm Guided Artillery Rocket Pod (HE) +item.ammo_himars_standard_lava.name=227mm Guided Artillery Rocket Pod (Lava) +item.ammo_himars_standard_mini_nuke.name=227mm Guided Artillery Rocket Pod (Mini Nuke) +item.ammo_himars_standard_tb.name=227mm Guided Artillery Rocket Pod (Thermobaric) +item.ammo_himars_standard_wp.name=227mm Guided Artillery Rocket Pod (WP) +item.ammo_himars_single.name=610mm Guided Artillery Rocket Pod +item.ammo_himars_single_tb.name=610mm Guided Artillery Rocket Pod (Thermobaric) +item.ammo_luna.name=Lunatic Sniper Sabot Round +item.ammo_luna_explosive.name=Lunatic Sniper Explosive Round +item.ammo_luna_incendiary.name=Lunatic Sniper Incendiary Round +item.ammo_mirv.name=Mini MIRV +item.ammo_mirv_high.name=Mini MIRV (High Yield) +item.ammo_mirv_low.name=Mini MIRV (Low Yield) +item.ammo_mirv_safe.name=Mini MIRV (Safe) +item.ammo_mirv_special.name=Mini MILV +item.ammo_nuke.name=Mini Nuke +item.ammo_nuke_barrel.name=Mini Nuclear Waste Barrel +item.ammo_nuke_high.name=Mini Nuke (High Yield) +item.ammo_nuke_low.name=Mini Nuke (Low Yield) +item.ammo_nuke_pumpkin.name=Pumpkin Bomb +item.ammo_nuke_safe.name=Mini Nuke (Safe) +item.ammo_nuke_tots.name=Mini Nuke (Tiny Tots) +item.ammo_rocket.name=84mm Rocket +item.ammo_rocket_canister.name=84mm Rocket (Canister Shot) +item.ammo_rocket_digamma.name=null +item.ammo_rocket_emp.name=84mm Rocket (Pulse) +item.ammo_rocket_glare.name=84mm Rocket (Red Glare) +item.ammo_rocket_he.name=84mm Rocket (HE) +item.ammo_rocket_incendiary.name=84mm Rocket (Incendiary) +item.ammo_rocket_nuclear.name=84mm Rocket (Привет) +item.ammo_rocket_phosphorus.name=84mm Rocket (WP) +item.ammo_rocket_rpc.name=84mm Rocket Propelled Chainsaw +item.ammo_rocket_shrapnel.name=84mm Rocket (Shrapnel) +item.ammo_rocket_sleek.name=84mm Rocket (IF-R&D) +item.ammo_rocket_toxic.name=84mm Rocket (Chemical) +item.ammo_shell.name=240mm Shell +item.ammo_shell_apfsds_du.name=240mm APFSDS-DU +item.ammo_shell_apfsds_t.name=240mm APFSDS-T +item.ammo_shell_explosive.name=240mm HE Shell +item.ammo_shell_w9.name=240mm W9 Nuclear Shell +item.ammo_stinger_rocket.name=Stinger Rocket +item.ammo_stinger_rocket_he.name=Stinger Rocket (HE) +item.ammo_stinger_rocket_incendiary.name=Stinger Rocket (Incendiary) +item.ammo_stinger_rocket_nuclear.name=Stinger Rocket (Привет) +item.ammo_stinger_rocket_bones.name=Stinger Rocket (Bone-Seeking) +item.ams_catalyst_aluminium.name=Aluminium Reaction Catalyst +item.ams_catalyst_beryllium.name=Beryllium Reaction Catalyst +item.ams_catalyst_blank.name=Blank Reaction Catalyst +item.ams_catalyst_caesium.name=Caeseium Reaction Catalyst +item.ams_catalyst_cerium.name=Cerium Reaction Catalyst +item.ams_catalyst_cobalt.name=Cobalt Reaction Catalyst +item.ams_catalyst_copper.name=Copper Reaction Catalyst +item.ams_catalyst_dineutronium.name=Dineutronium Reaction Catalyst +item.ams_catalyst_euphemium.name=Euphemium Reaction Catalyst +item.ams_catalyst_iron.name=Iron Reaction Catalyst +item.ams_catalyst_lithium.name=Lithium Reaction Catalyst +item.ams_catalyst_niobium.name=Niobium Reaction Catalyst +item.ams_catalyst_schrabidium.name=Schrabidium Reaction Catalyst +item.ams_catalyst_strontium.name=Strontium Reaction Catalyst +item.ams_catalyst_thorium.name=Thorium Reaction Catalyst +item.ams_catalyst_tungsten.name=Tungsten Reaction Catalyst +item.ams_core_eyeofharmony.name=Eye of Harmony (AMS/DFC Core) +item.ams_core_sing.name=Vibrant Singularity (AMS/DFC Core) +item.ams_core_thingy.name=Thingy (AMS/DFC Core) +item.ams_core_wormhole.name=Tiny Wormhole (AMS/DFC Core) +item.ams_focus_blank.name=Blank Stabilizer Focus +item.ams_focus_booster.name=Boosting Stabilizer Focus +item.ams_focus_booster.desc=Weaker restriction field and core energy injection:$More heat generation, extra energy. +item.ams_focus_limiter.name=Limiting Stabilizer Focus +item.ams_focus_limiter.desc=Maximum performance for restriction field:$Standard cooling, no energy bonus. +item.ams_lens.name=Stabilizer Lens +item.ams_muzzle.name=Ray-Emission Muzzle +item.ams_muzzle.desc=...it emits an energy-beam thingy. +item.analyzer.name=Analyzer +item.anchor_remote.name=Recall Device +item.antiknock.name=Tetraethyllead Antiknock Agent +item.apple_euphemium.name=Euphemium Apple +item.apple_lead.name=Lead Apple +item.apple_schrabidium.name=Schrabidium Apple +item.arc_electrode.name=Graphite Electrode +item.arc_electrode_burnt.name=Molten Electrode +item.arc_electrode_desh.name=Desh Electrode +item.armor_polish.name=ShiningArmor™ Armor Polish +item.asbestos_boots.name=Fire Proximity Boots +item.asbestos_cloth.name=Fire Proximity Cloth +item.asbestos_helmet.name=Fire Proximity Helmet +item.asbestos_legs.name=Fire Proximity Leggings +item.asbestos_plate.name=Fire Proximity Chestplate +item.ashglasses.name=Ash Goggles +item.assembly_45.name=.45 ACP Assembly +item.assembly_556.name=5.56mm Assembly +item.assembly_762.name=7.62mm Assembly +item.assembly_actionexpress.name=.50 AE Assembly +item.assembly_calamity.name=.50 BMG Assembly +item.assembly_desh.name=Desh Bullet Assembly +item.assembly_gold.name=Gold Bullet Assembly +item.assembly_iron.name=Iron Bullet Assembly +item.assembly_lacunae.name=.5mm Assembly +item.assembly_lead.name=Glass Bullet Assembly +item.assembly_luna.name=Lunatic Sniper Bullet Assembly +item.assembly_nightmare.name=Nightmare Bullet Assembly +item.assembly_nopip.name=.44 Magnum Assembly +item.assembly_nuke.name=Mini Nuke Shell +item.assembly_pip.name=Tainted Bullet Assembly +item.assembly_schrabidium.name=Schrabidium Bullet Assembly +item.assembly_smg.name=9mm Assembly +item.assembly_steel.name=Lead Bullet Assembly +item.assembly_template.name=Assembly Template: +item.assembly_uzi.name=.22 LR Assembly +item.attachment_mask.name=Gas Mask Attachable +item.attachment_mask_mono.name=Half Mask Attachable +item.australium_iii.name=Mark III Life Extender +item.australium_iv.name=Mark IV Life Extender +item.australium_v.name=Mark V Life Extender +item.back_tesla.name=Back-Mounted Tesla Coil +item.balefire_and_ham.name=Ham and Balefire Eggs +item.balefire_and_steel.name=Balefire and Steel +item.balefire_scrambled.name=Scrambled Balefire Egg +item.ball_dynamite.name=Dynamite +item.ball_fireclay.name=Fireclay +item.ball_tatb.name=TATB +item.ball_tnt.name=TNT +item.ballistic_gauntlet.name=Ballistic Gauntlet +item.ballistite.name=Ballistite +item.bandaid.name=Velvet Band-Aid +item.bathwater.name=Toxic Soapy Water +item.bathwater_mk2.name=Toxic Soapy Water (Horse Scented) +item.battery_advanced.name=Advanced Battery +item.battery_advanced_cell.name=Advanced Power Cell +item.battery_advanced_cell_12.name=Twelvefold Advanced Power Cell +item.battery_advanced_cell_4.name=Quadruple Advanced Power Cell +item.battery_creative.name=Infinite Battery +item.battery_generic.name=Battery +item.battery_lithium.name=Lithium-Ion Battery +item.battery_lithium_cell.name=Lithium-Ion Power Cell +item.battery_lithium_cell_3.name=Triple Lithium-Ion Power Cell +item.battery_lithium_cell_6.name=Sixfold Lithium-Ion Power Cell +item.battery_potato.name=Potato Battery +item.battery_potatos.name=PotatOS +item.battery_red_cell.name=Redstone Power Cell +item.battery_red_cell_24.name=24-Fold Redstone Power Cell +item.battery_red_cell_6.name=Sixfold Redstone Power Cell +item.battery_sc_americium.name=Self-Charging Americium-241 Battery +item.battery_sc_gold.name=Self-Charging Gold-198 Battery +item.battery_sc_lead.name=Self-Charging Lead-209 Battery +item.battery_sc_plutonium.name=Self-Charging Plutonium-238 Battery +item.battery_sc_polonium.name=Self-Charging Polonium-210 Battery +item.battery_sc_technetium.name=Self-Charging Technetium-99 Battery +item.battery_sc_uranium.name=Self-Charging Uranium-238 Battery +item.battery_schrabidium.name=Schrabidium Battery +item.battery_schrabidium_cell.name=Schrabidium Power Cell +item.battery_schrabidium_cell_2.name=Double Schrabidium Power Cell +item.battery_schrabidium_cell_4.name=Quadruple Schrabidium Power Cell +item.battery_spark.name=Spark Battery +item.battery_spark_cell_100.name=Spark Arcane Energy Storage Array +item.battery_spark_cell_1000.name=Spark Arcane Mass-Energy Void +item.battery_spark_cell_10000.name=Spark Solid Space-Time Crystal +item.battery_spark_cell_25.name=Spark Arcane Car Battery +item.battery_spark_cell_2500.name=Spark Arcane Dirac Sea +item.battery_spark_cell_6.name=Spark Power Cell +item.battery_spark_cell_power.name=Spark Ludicrous Physics-Defying Energy Storage Unit +item.battery_steam.name=Steam Powered Energy Storage Tank +item.battery_steam_large.name=Large Steam Powered Energy Storage Tank +item.battery_su.name=SU-Battery +item.battery_su_l.name=Large SU-Battery +item.battery_trixite.name=Off-Brand Spark Battery +item.bdcl.name=BDCL +item.beta.name=Beta Features +item.big_sword.name=Great Sword +item.billet_actinium.name=Actinium-227 Billet +item.billet_am_mix.name=Reactor Grade Americium Billet +item.billet_am241.name=Americium-241 Billet +item.billet_am242.name=Americium-242 Billet +item.billet_americium_fuel.name=Americium Fuel Billet +item.billet_au198.name=Gold-198 Billet +item.billet_australium.name=Australium Billet +item.billet_australium_greater.name=Greater Australium Billet +item.billet_australium_lesser.name=Lesser Australium Billet +item.billet_balefire_gold.name=Flashgold Billet +item.billet_beryllium.name=Beryllium Billet +item.billet_bismuth.name=Bismuth Billet +item.billet_co60.name=Cobalt-60 Billet +item.billet_cobalt.name=Cobalt Billet +item.billet_flashlead.name=Flashlead Billet +item.billet_flashlead.desc=The lattice decays, causing antimatter-matter$annihilation reactions, causing the release of$pions, decaying into muons, catalyzing fusion of$the nuclei, creating the new element.$Please try to keep up. +item.billet_gh336.name=Ghiorsium-336 Billet +item.billet_gh336.desc=Seaborgium's colleague. +item.billet_hes.name=Highly Enriched Schrabidium Fuel Billet +item.billet_les.name=Low Enriched Schrabidium Fuel Billet +item.billet_mox_fuel.name=MOX Fuel Billet +item.billet_mox_fuel.desc=Pocket-Moxie! +item.billet_neptunium.name=Neptunium Billet +item.billet_neptunium_fuel.name=Neptunium Fuel Billet +item.billet_nuclear_waste.name=Nuclear Waste Billet +item.billet_pb209.name=Lead-209 Billet +item.billet_po210be.name=Po210Be Billet +item.billet_polonium.name=Polonium-210 Billet +item.billet_pu_mix.name=Reactor Grade Plutonium Billet +item.billet_pu238.name=Plutonium-238 Billet +item.billet_pu238be.name=Pu238Be Billet +item.billet_pu239.name=Plutonium-239 Billet +item.billet_pu240.name=Plutonium-240 Billet +item.billet_pu241.name=Plutonium-241 Billet +item.billet_plutonium.name=Plutonium Billet +item.billet_plutonium_fuel.name=Plutonium Fuel Billet +item.billet_ra226.name=Radium-226 Billet +item.billet_ra226be.name=Ra226Be Billet +item.billet_schrabidium.name=Schrabidium Billet +item.billet_schrabidium_fuel.name=Schrabidium Fuel Billet +item.billet_solinium.name=Solinium Billet +item.billet_sr90.name=Strontium-90 Billet +item.billet_technetium.name=Technetium-99 Billet +item.billet_th232.name=Thorium-232 Billet +item.billet_thorium_fuel.name=Thorium Fuel Billet +item.billet_u233.name=Uranium-233 Billet +item.billet_u235.name=Uranium-235 Billet +item.billet_u238.name=Uranium-238 Billet +item.billet_uranium.name=Uranium Billet +item.billet_uranium_fuel.name=Uranium Fuel Billet +item.billet_yharonite.name=Yharonite Billet +item.billet_zfb_am_mix.name=Reactor Grade Americium ZFB Billet +item.billet_zfb_bismuth.name=Bismuth ZFB Billet +item.billet_zfb_pu241.name=Pu-241 ZFB Billet +item.billet_zirconium.name=Zirconium Billet +item.bio_wafer.name=Algae Wafer +item.biomass.name=Biomass +item.biomass_compressed.name=Compressed Biomass +item.bismuth_boots.name=Bismuth Sandals +item.bismuth_helmet.name=Bismuth Headdress +item.bismuth_legs.name=Bismuth Kneeguards +item.bismuth_pickaxe.name=Bismuth Pickaxe +item.bismuth_plate.name=Bismuth Shoulderpads, Necklace & Loincloth +item.bismuth_tool.name=Magnetic Extractor +item.bj_boots.name=Lunar Studded Boots +item.bj_helmet.name=Eyepatch with Thermal Sensor +item.bj_legs.name=Lunar Cybernetic Leg Replacements +item.bj_plate.name=Lunar Cybernetic Plating +item.bj_plate_jetpack.name=Lunar Cybernetic Plating (Winged) +item.black_diamond.name=Black Diamond +item.black_hole.name=Miniature Black Hole +item.blade_meteorite.name=Meteorite Blade +item.blade_titanium.name=Titanium Blade +item.blade_tungsten.name=Tungsten Reinforced Blade +item.blades_advanced_alloy.name=Advanced Shredder Blades +item.blades_desh.name=Desh Shredder Blades +item.blades_steel.name=Steel Shredder Blades +item.blades_titanium.name=Titanium Shredder Blades +item.blowtorch.name=Blowtorch +item.board_copper.name=Copper Panel +item.bobmazon_hidden.name=Hidden Catalog +item.bobmazon_machines.name=Bobmazon: Blocks and Machines +item.bobmazon_materials.name=Bobmazon: Materials +item.bobmazon_tools.name=Bobmazon: Tools +item.bobmazon_weapons.name=Bobmazon: Weapons and Explosives +item.bolt_compound.name=Reinforced Turbine Shaft +item.bolt_dura_steel.name=High-Speed Steel Bolt +item.bolt_tungsten.name=Tungsten Bolt +item.boltgun.name=Pneumatic Rivet Gun +item.bomb_caller.name=Airstrike Designator +item.bomb_waffle.name=Waffle of Mass Destruction +item.book_guide.name=Guide Book +item.book_of_.name=The Book of Boxcars +item.book_secret.name=3-596-50802-9 +item.bottle2_empty.name=Empty Bottle +item.bottle2_fritz.name=Fritz Cola +item.bottle2_fritz_special.name=The First Fritz Cola +item.bottle2_korl.name=Korl +item.bottle2_korl_special.name=The First Korl +item.bottle2_sunset.name=Sunset Sarsaparilla +item.bottle_cherry.name=Bottle of Nuka Cherry +item.bottle_empty.name=Empty Bomb-Shaped Bottle +item.bottle_mercury.name=Bottle of Mercury +item.bottle_nuka.name=Bottle of Nuka Cola +item.bottle_opener.name=Hbm's Own Self-Made Bottle Opener +item.bottle_quantum.name=Bottle of Nuka Cola Quantum +item.bottle_rad.name=Bottle of S~Cola RAD +item.bottle_sparkle.name=Bottle of S~Cola +item.boy_bullet.name=U235 Projectile +item.boy_igniter.name=Bomb Igniter +item.boy_kit.name=Little Boy Kit +item.boy_propellant.name=Propellant +item.boy_shielding.name=Neutron Shielding +item.boy_target.name=Subcritical U235 Target +item.briquette.coal.name=Coal Briquette +item.briquette.lignite.name=Lignite Briquette +item.briquette.wood.name=Sawdust Briquette +item.bucket_acid.name=Bucket of Acid +item.bucket_mud.name=Bucket of Poisonous Mud +item.bucket_schrabidic_acid.name=Bucket of Schrabidic Acid +item.bucket_sulfuric_acid.name=Bucket of Sulfuric Acid +item.bucket_toxic.name=Bucket of Stereotypical Green Ooze +item.burnt_bark.name=Burnt Bark +item.burnt_bark.desc=A piece of bark from an exploded golden oak tree. +item.can_bepis.name=Bepis +item.can_breen.name=Dr>Breens Private Reserve +item.can_creature.name='Creature' Energy Drink +item.can_empty.name=Empty Can +item.can_key.name=Winding Key +item.can_luna.name=Black Mesa Luna - Dark Cola +item.can_mrsugar.name='Dr. Sugar' Soft Drink +item.can_mug.name=MUG Root Beer +item.can_overcharge.name=Overcharge Delirium XT +item.can_redbomb.name='Red Bomb' Energy Drink +item.can_smart.name='Smart' Energy Drink +item.canister_NITAN.name=NITAN© 100 Octane Super Fuel (LEGACY) +item.canister_biofuel.name=Biofuel Canister (LEGACY) +item.canister_bitumen.name=Bitumen Canister (LEGACY) +item.canister_canola.name=Engine Lubricant (LEGACY) +item.canister_empty.name=Empty Canister +item.canister_ethanol.name=Ethanol Canister (LEGACY) +item.canister_fracksol.name=Fracking Solution Canister (LEGACY) +item.canister_fuel.name=Diesel Canister (LEGACY) +item.canister_fuel.desc=All hail the spout! +item.canister_full.name=Canister: +item.canister_gasoline.name=Leaded Gasoline Canister (LEGACY) +item.canister_gasoline.desc=lead is friend$let friend into your blood stream$*cocks gun* do it now. +item.canister_heatingoil.name=Heating Oil Canister (LEGACY) +item.canister_heavyoil.name=Heavy Oil Canister (LEGACY) +item.canister_kerosene.name=Kerosene Canister (LEGACY) +item.canister_lightoil.name=Light Oil Canister (LEGACY) +item.canister_napalm.name=Napalm B +item.canister_naphtha.name=Naphtha Canister (LEGACY) +item.canister_oil.name=Crude Oil Canister (LEGACY) +item.canister_petroil.name=Petroil Canister (LEGACY) +item.canister_reoil.name=Canister of Reclaimed Industrial Oil (LEGACY) +item.canister_smear.name=Industrial Oil Canister (LEGACY) +item.canned_asbestos.name=Canned Asbestos +item.canned_asbestos.desc=TASTE the asbestosis! +item.canned_ass.name=Canned Ass +item.canned_ass.desc=100%% quality donkey meat!* +item.canned_bark.name=Canned Pine Bark Jerky +item.canned_bark.desc=Extra cronchy! +item.canned_beef.name=Canned Beef +item.canned_beef.desc=A few centuries ago, a cow died for this. +item.canned_bhole.name=Canned Black Hole +item.canned_bhole.desc=Singularity is yum yum in my tum tum! +item.canned_cheese.name=Canned Melted Cheese +item.canned_cheese.desc=Is it cheese? Is it rubber cement? Who knows, who cares. +item.canned_chinese.name=Canned Chinese Food +item.canned_chinese.desc=In China, Chinese food is just called food. +item.canned_diesel.name=Canned Diesel +item.canned_diesel.desc=I'm slowly running out of jokes for these. +item.canned_fist.name=Canned Fist +item.canned_fist.desc=Yowser! +item.canned_fried.name=Canned Fried Chicken +item.canned_fried.desc=Even the can is deep fried! +item.canned_hotdogs.name=Canned Hotdogs +item.canned_hotdogs.desc=Not to be confused with cool cats. +item.canned_jizz.name=FlimFlam Industries Canned Stallion Milk™ +item.canned_jizz.desc=Wait wh- +item.canned_kerosene.name=Canned Kerosene +item.canned_kerosene.desc=Just imagine a witty line here. +item.canned_leftovers.name=Leftover Conserve +item.canned_leftovers.desc=ur 2 slow +item.canned_milk.name=Canned Evaporated Milk +item.canned_milk.desc=Milk 2: More solid than ever before! +item.canned_mystery.name=Canned Mystery Meat +item.canned_mystery.desc=What's inside? Only one way to find out! +item.canned_napalm.name=Canned Napalm +item.canned_napalm.desc=I love the smell of old memes in the morning! +item.canned_oil.name=Canned Engine Oil +item.canned_oil.desc=It makes motors go, so why not humans? +item.canned_pashtet.name=Паштет +item.canned_pashtet.desc=услуги перевода недоступны! +item.canned_pizza.name=Canned Pepperoni Pizza +item.canned_pizza.desc=A crime against humanity. +item.canned_recursion.name=Canned Recursion +item.canned_recursion.desc=Canned Recursion +item.canned_spam.name=Canned Spam +item.canned_spam.desc=The three-and-a-half-minute sketch is set in the fictional Green Midget Cafe in Bromley.$An argument develops between the waitress, who recites a menu in which nearly$every dish contains Spam, and Mrs. Bun, who does not like Spam. She asks for a$dish without Spam, much to the amazement of her Spam-loving husband. The waitress$responds to this request with disgust. Mr. Bun offers to take her Spam instead,$and asks for a dish containing a lot of Spam and baked beans. The waitress says$no since they are out of baked beans; when Mr. Bun asks for a substitution of Spam,$the waitress again responds with disgust. At several points, a group of Vikings in$the restaurant interrupts conversation by loudly singing about Spam.$The irate waitress orders them to shut up, but they resume singing more loudly.$A Hungarian tourist comes to the counter, trying to order by using a wholly$inaccurate Hungarian/English phrasebook (a reference to a previous sketch).$He is rapidly escorted away by a police constable. The sketch abruptly cuts to a$historian in a television studio talking about the origin of the Vikings in the café.$As he goes on, he begins to increasingly insert the word \"Spam\" into every$sentence, and the backdrop is raised to reveal the restaurant set behind.$The historian joins the Vikings in their song, and Mr. and Mrs. Bun are lifted by$wires out of the scene while the singing continues. In the original televised performance,$the closing credits begin to scroll with the singing still audible in the background. +item.canned_stew.name=Canned "Mushroom Stew" +item.canned_stew.desc=... +item.canned_tomato.name=Canned Tomato Soup +item.canned_tomato.desc=Who wants some thick red paste? +item.canned_tube.name=Astronaut Food Tube +item.canned_tube.desc=Tasty mush. +item.canned_tuna.name=Canned Tuna +item.canned_tuna.desc=I can't tell if that's actually tuna or dried cement. +item.canned_yogurt.name=Canned Yogurt +item.canned_yogurt.desc=Probably spoiled, but whatever. +item.canteen_13.name=Vault 13 Canteen +item.canteen_fab.name=Fabulous Vodka +item.canteen_vodka.name=Stylish Flask +item.cap_fritz.name=Fritz Cola Bottle Cap +item.cap_korl.name=Korl Bottle Cap +item.cap_nuka.name=Nuka Cola Bottle Cap +item.cap_quantum.name=Nuka Cola Quantum Bottle Cap +item.cap_rad.name=S~Cola RAD Bottle Cap +item.cap_sparkle.name=S~Cola Bottle Cap +item.cap_star.name=Sunset Sarsaparilla Star Cap +item.cap_sunset.name=Sunset Sarsaparilla Bottle Cap +item.cape_ayy.name=Ayy's Cape +item.cape_codered_.name=codered_'s Cape +item.cape_dafnik.name=Dafnik's Cape +item.cape_gasmask.name=Cape (Gas Mask) +item.cape_hbm.name=Hbm's Cape +item.cape_hidden.name=Hidden Cape +item.cape_lpkukin.name=LPkukin's Cape +item.cape_nostalgia.name=DrNostalgia's Cape +item.cape_radiation.name=Cape (Radiation) +item.cape_schrabidium.name=Cape (Schrabidic) +item.cape_vertice.name=Lord Vertice's Cape +item.cart.crate.name=Crate Cart +item.cart.destroyer.name=Scrap Destroying Cart +item.cart.empty.name=Minecart +item.casing_357.name=.357 Magnum Casing (x24) +item.casing_44.name=.44 Magnum Casing (x24) +item.casing_50.name=Large Caliber Casing (x12) +item.casing_9.name=Small Caliber Casing (x32) +item.casing_buckshot.name=Buckshot Casing (x12) +item.catalyst_clay.name=Clay Catalyst +item.catalytic_converter.name=Catalytic Converter +item.cbt_device.name=CBT Device +item.cell_anti_schrabidium.name=Antischrabidium Cell +item.cell_antimatter.name=Antimatter Cell +item.cell_balefire.name=Gaseous Balefire Cell +item.cell_deuterium.name=Deuterium Cell +item.cell_empty.name=Empty Cell +item.cell_puf6.name=Plutonium Hexafluoride Cell +item.cell_sas3.name=Schrabidium Trisulfide Cell +item.cell_tritium.name=Tritium Cell +item.cell_uf6.name=Uranium Hexafluoride Cell +item.centri_stick.name=Centrifuge on a Stick +item.centrifuge_element.name=Centrifuge Element +item.centrifuge_tower.name=Centrifuge Tower +item.chainsaw.name=Chainsaw +item.cheese.name=Cheese +item.cheese_quesadilla.name=Cheese Quesadilla +item.chemical_dye.black.name=Chemical Dye (Black) +item.chemical_dye.blue.name=Chemical Dye (Blue) +item.chemical_dye.brown.name=Chemical Dye (Brown) +item.chemical_dye.cyan.name=Chemical Dye (Cyan) +item.chemical_dye.gray.name=Chemical Dye (Gray) +item.chemical_dye.green.name=Chemical Dye (Green) +item.chemical_dye.lightblue.name=Chemical Dye (Light Blue) +item.chemical_dye.lime.name=Chemical Dye (Lime) +item.chemical_dye.magenta.name=Chemical Dye (Magenta) +item.chemical_dye.orange.name=Chemical Dye (Orange) +item.chemical_dye.pink.name=Chemical Dye (Pink) +item.chemical_dye.purple.name=Chemical Dye (Purple) +item.chemical_dye.red.name=Chemical Dye (Red) +item.chemical_dye.silver.name=Chemical Dye (Light Gray) +item.chemical_dye.white.name=Chemical Dye (White) +item.chemical_dye.yellow.name=Chemical Dye (Yellow) +item.chemistry_set.name=Laboratory Glassware +item.chemistry_set_boron.name=Laboratory Glassware (Boron Glass) +item.chemistry_template.name=Chemistry Template: +item.chernobylsign.name=Chernobyl Warning Sign Battle Axe +item.chlorine_pinwheel.name=Chlorine Pinwheel +item.chlorophyte_pickaxe.name=Chlorophyte Pickaxe +item.chocolate.name=Ithis-Brand Radium Chocolate +item.chocolate.desc=Radium Chocolate? Pretty sure this is just meth. +item.chocolate_milk.name=Chocolate Milk +item.chopper.name=Hunter Chopper +item.chopper_blades.name=Hunter Chopper Rotor Blades +item.chopper_gun.name=Emplacement Gun +item.chopper_head.name=Hunter Chopper Cockpit +item.chopper_tail.name=Hunter Chopper Tail +item.chopper_torso.name=Hunter Chopper Body +item.chopper_wing.name=Hunter Chopper Wing +item.cigarette.name=FFI-Brand Cigarette +item.cinnebar.name=Cinnabar +item.circuit_aluminium.name=Basic Circuit +item.circuit_arsenic.name=Adaptable Circuit +item.circuit_arsenic_raw.name=Adaptable Circuit Assembly +item.circuit_bismuth.name=Versatile Chipset +item.circuit_bismuth_raw.name=Versatile Chipset Assembly +item.circuit_copper.name=Enhanced Circuit +item.circuit_gold.name=Overclocked Circuit +item.circuit_raw.name=Basic Circuit Assembly +item.circuit_red_copper.name=Advanced Circuit +item.circuit_schrabidium.name=High Performance Circuit +item.circuit_star.name=StarControl Circuit Board +item.circuit_star.desc=Currently unused, for it lacks an operating system. +item.circuit_star_component.chipset.name=StarControl Chipset +item.circuit_star_component.cpu.name=StarControl CPU +item.circuit_star_component.ram.name=StarControl RAM +item.circuit_star_piece.board_blank.name=SC - Printed Circuit Board +item.circuit_star_piece.board_transistor.name=SC - Transistors +item.circuit_star_piece.bridge_bios.name=SC- BIOS Chip +item.circuit_star_piece.bridge_bus.name=SC - BUS +item.circuit_star_piece.bridge_chipset.name=SC - Chipset +item.circuit_star_piece.bridge_cmos.name=SC - CMOS RAM +item.circuit_star_piece.bridge_io.name=SC - IO Chip +item.circuit_star_piece.bridge_north.name=SC - North Bridge +item.circuit_star_piece.bridge_south.name=SC - South Bridge +item.circuit_star_piece.cpu_cache.name=SC - CPU Cache +item.circuit_star_piece.cpu_clock.name=SC - CPU Clock +item.circuit_star_piece.cpu_ext.name=SC - Arsenic Semi Conductor Extension +item.circuit_star_piece.cpu_logic.name=SC - Arithmetic Logic Unit +item.circuit_star_piece.cpu_register.name=SC - CPU Register +item.circuit_star_piece.cpu_socket.name=SC - CPU Socket +item.circuit_star_piece.mem_socket.name=SC - Memory Socket +item.circuit_star_piece.mem_16k_a.name=SC - 16k Memory Stick Slot A +item.circuit_star_piece.mem_16k_b.name=SC - 16k Memory Stick Slot B +item.circuit_star_piece.mem_16k_c.name=SC - 16k Memory Stick Slot C +item.circuit_star_piece.mem_16k_d.name=SC - 16k Memory Stick Slot D +item.circuit_tantalium.name=Capacitor Board +item.circuit_tantalium_raw.name=Capacitor Board Assembly +item.circuit_targeting_tier1.name=Military Grade Circuit Board (Tier 1) +item.circuit_targeting_tier2.name=Military Grade Circuit Board (Tier 2) +item.circuit_targeting_tier3.name=Military Grade Circuit Board (Tier 3) +item.circuit_targeting_tier4.name=Military Grade Circuit Board (Tier 4) +item.circuit_targeting_tier5.name=Military Grade Circuit Board (Tier 5) +item.circuit_targeting_tier6.name=Military Grade Circuit Board (Tier 6) +item.cladding_desh.name=Desh Cladding +item.cladding_ghiorsium.name=Ghiorsium Cladding +item.cladding_iron.name=Iron Cladding +item.cladding_lead.name=Lead Cladding +item.cladding_obsidian.name=Obsidian Skin +item.cladding_paint.name=Lead Paint +item.cladding_rubber.name=Rubber Cladding +item.clip_bf.name=BF-Shell Double Pack +item.clip_bolt_action.name=Box of 12x74 Slugs +item.clip_cryolator.name=Tank of Cryolator Fuel +item.clip_defabricator.name=Belt with Defabricator Energy Cells +item.clip_emp.name=Small Pack of Energy Cells +item.clip_euthanasia.name=Last Aid Kit +item.clip_fatman.name=Six Pack of Mini Nukes +item.clip_hp.name=Ink Tanks +item.clip_immolator.name=Tank of Immolator Fuel +item.clip_jack.name=Box of Quadruple 12x70 Buckshot Rounds +item.clip_lever_action.name=Box of 12x74 Buckshot Rounds +item.clip_mirv.name=Three-In-One Pack of Mini MIRVs +item.clip_mp.name=Britannia Military Standard Issue Assault Rifle Magazine +item.clip_mp40.name=9mm SMG Magazine +item.clip_osipr.name=AR2 Magazine +item.clip_revolver.name=Box of .357 Rounds +item.clip_revolver_cursed.name=Britannia Military Standard Issue Pistol Magazine +item.clip_revolver_gold.name=Small Coffer of Golden Bullets +item.clip_revolver_iron.name=Box of Iron Rounds +item.clip_revolver_lead.name=Box of Nuclear Bullets +item.clip_revolver_nightmare.name=Bag of Bullets +item.clip_revolver_nightmare2.name=Belt with Laser Buckshot +item.clip_revolver_nopip.name=Box of .44 Rounds +item.clip_revolver_pip.name=Speedloader with Tainted Bullets +item.clip_revolver_schrabidium.name=Schrabidium Ammo Container +item.clip_rpg.name=Rocket Container +item.clip_spark.name=Large Electromagnetic Cartridge +item.clip_stinger.name=Pack of Stinger Rockets +item.clip_uboinik.name=Box of 12x70 Buckshot Rounds +item.clip_uzi.name=32rnd .22 LR Magazine +item.clip_xvl1456.name=Large Isotope Box +item.cmb_axe.name=CMB Steel Axe +item.cmb_boots.name=CMB Steel Boots +item.cmb_helmet.name=CMB Steel Helmet +item.cmb_hoe.name=CMB Steel Hoe +item.cmb_legs.name=CMB Steel Leggings +item.cmb_pickaxe.name=CMB Steel Pickaxe +item.cmb_plate.name=CMB Steel Chestplate +item.cmb_shovel.name=CMB Steel Shovel +item.cmb_sword.name=CMB Steel Sword +item.coal_infernal.name=Infernal Coal +item.cobalt_axe.name=Cobalt Axe +item.cobalt_boots.name=Cobalt Boots +item.cobalt_decorated_axe.name=Decorated Cobalt Axe +item.cobalt_decorated_hoe.name=Decorated Cobalt Hoe +item.cobalt_decorated_pickaxe.name=Decorated Cobalt Pickaxe +item.cobalt_decorated_shovel.name=Decorated Cobalt Shovel +item.cobalt_decorated_sword.name=Decorated Cobalt Sword +item.cobalt_helmet.name=Cobalt Helmet +item.cobalt_hoe.name=Cobalt Hoe +item.cobalt_legs.name=Cobalt Leggings +item.cobalt_pickaxe.name=Cobalt Pickaxe +item.cobalt_plate.name=Cobalt Chestplate +item.cobalt_shovel.name=Cobalt Shovel +item.cobalt_sword.name=Cobalt Sword +item.coffee.name=Coffee +item.coffee_radium.name=Radium Coffee +item.coil_advanced_alloy.name=Super Conducting Coil +item.coil_advanced_torus.name=Super Conducting Ring Coil +item.coil_copper.name=Copper Coil +item.coil_copper_torus.name=Ring Coil +item.coil_gold.name=Gold Coil +item.coil_gold_torus.name=Golden Ring Coil +item.coil_magnetized_tungsten.name=4000K High Temperature Super Conducting Coil +item.coil_tungsten.name=Heating Coil +item.coin_creeper.name=Nuclear Creeper Coin +item.coin_maskman.name=Maskman Coin +item.coin_radiation.name=Radiation Coin +item.coin_siege.name=Siege Coin +item.coin_ufo.name=UFO Coin +item.coin_worm.name=Balls-O-Tron Coin +item.coke.coal.name=Coal Coke +item.coke.lignite.name=Lignite Coke +item.coke.petroleum.name=Petroleum Coke +item.coltan_tool.name=Coltass +item.combine_scrap.name=CMB Scrap Metal +item.component_emitter.name=Emitter Component +item.component_limiter.name=Stabilizer Component +item.containment_box.name=Containment Box +item.cordite.name=Cordite +item.cotton_candy.name=Radioactive Cotton Candy +item.crackpipe.name=Health Pipe +item.crate_caller.name=Supply Drop Requester +item.crayon.black.name=Black Crayon +item.crayon.blue.name=Blue Crayon +item.crayon.brown.name=Brown Crayon +item.crayon.cyan.name=Cyan Crayon +item.crayon.gray.name=Gray Crayon +item.crayon.green.name=Green Crayon +item.crayon.lightblue.name=Light Blue Crayon +item.crayon.lime.name=Lime Crayon +item.crayon.magenta.name=Magenta Crayon +item.crayon.orange.name=Orange Crayon +item.crayon.pink.name=Pink Crayon +item.crayon.purple.name=Purple Crayon +item.crayon.red.name=Red Crayon +item.crayon.silver.name=Light Gray Crayon +item.crayon.white.name=White Crayon +item.crayon.yellow.name=Yellow Crayon +item.crowbar.name=Mk.V Crate Opening Device "Crowbar" +item.crucible.name=Crucible +item.crucible_template.name=Crucible Template: +item.crystal_aluminium.name=Aluminium Crystals +item.crystal_beryllium.name=Beryllium Crystals +item.crystal_charred.name=Charred Crystal +item.crystal_charred.desc=High quality silicate, slightly burned. +item.crystal_charred.desc.P11=Also a real horn. Weird, right? +item.crystal_coal.name=Coal Crystals +item.crystal_cobalt.name=Cobalt Crystals +item.crystal_copper.name=Copper Crystals +item.crystal_cinnebar.name=Cinnabar Crystals +item.crystal_diamond.name=Diamond Crystals +item.crystal_energy.name=Energy Crystal +item.crystal_fluorite.name=Fluorite Crystals +item.crystal_gold.name=Gold Crystals +item.crystal_horn.name=Crystal Horn +item.crystal_horn.desc=Not an actual horn. +item.crystal_horn.desc.P11=An actual horn. +item.crystal_iron.name=Iron Crystals +item.crystal_lead.name=Lead Crystals +item.crystal_lapis.name=Lapis Crystals +item.crystal_lithium.name=Lithium Crystals +item.crystal_niter.name=Niter Crystals +item.crystal_osmiridium.name=Osmiridium Crystals +item.crystal_phosphorus.name=Phosphorus Crystals +item.crystal_plutonium.name=Plutonium Crystals +item.crystal_rare.name=Rare Earth Crystals +item.crystal_redstone.name=Redstone Crystals +item.crystal_schrabidium.name=Schrabidium Crystals +item.crystal_schraranium.name=Schraranium Crystals +item.crystal_starmetal.name=Starmetal Crystals +item.crystal_sulfur.name=Sulfur Crystals +item.crystal_thorium.name=Thorium Crystals +item.crystal_titanium.name=Titanium Crystals +item.crystal_trixite.name=Trixite Crystals +item.crystal_tungsten.name=Tungsten Crystals +item.crystal_uranium.name=Uranium Crystals +item.crystal_xen.name=Artificial Xen Crystal +item.crt_display.name= Cathode Ray Tube +item.cube_power.name=Electronium Cube +item.custom_amat.name=Custom Nuke Antimatter Rod +item.custom_dirty.name=Custom Nuke Dirty Rod +item.custom_fall.name=Custom Nuke Drop Upgrade +item.custom_fall.desc=That's what you've aaaaaaall been waiting for!$Makes bomb drop upon activation +item.custom_hydro.name=Custom Nuke Hydrogen Rod +item.custom_kit.name=Custom Nuke Kit +item.custom_nuke.name=Custom Nuke Nuclear Rod +item.custom_schrab.name=Custom Nuke Schrabidium Rod +item.custom_tnt.name=Custom Nuke Explosive Charge +item.cyclotron_tower.name=Cyclotron Tower +item.debris_concrete.name=Broken Concrete +item.debris_element.name=Broken ZIRNOX Fuel Element +item.debris_exchanger.name=Heat Exchanger Piece +item.debris_fuel.name=RBMK Fuel Chunk +item.debris_graphite.name=Hot Graphite Chunk +item.debris_metal.name=Broken Metal Bar +item.debris_shrapnel.name=Walkway Shrapnel +item.definitelyfood.name=TotallyNotDirt-Brand MRE +item.defuser.name=High-Tech Bomb Defusing Device +item.defuser_gold.name=Golden Wire Cutter +item.demon_core_closed.name=Closed Demon Core +item.demon_core_open.name=Suspended Demon Core +item.desh_axe.name=Worker's Alloy Axe +item.desh_hoe.name=Worker's Alloy Hoe +item.desh_pickaxe.name=Worker's Alloy Pickaxe +item.desh_shovel.name=Worker's Alloy Shovel +item.desh_sword.name=Worker's Alloy Sword +item.designator.name=Short Range Target Designator +item.designator_arty_range.name=Long Range Artillery Remote +item.designator_manual.name=Manual Target Designator +item.designator_range.name=Long Range Target Designator +item.detonator.name=Detonator +item.detonator_de.name=Dead Man's Explosive +item.detonator_deadman.name=Dead Man's Detonator +item.detonator_laser.name=Laser Detonator +item.detonator_multi.name=Multi Detonator +item.deuterium_filter.name=Deuterium Filter +item.diamond_gavel.name=Diamond Gavel +item.dieselsuit_boots.name=Diesel-Powered High Heels +item.dieselsuit_helmet.name=Diesel-Powered Head-Mounted Environmental Sensor +item.dieselsuit_legs.name=Diesel-Powered Leg Servos +item.dieselsuit_plate.name=Diesel-Powered Cybernetics +item.digamma_diagnostic.name=Digamma Diagnostic +item.dns_boots.name=DNT Nano Suit Boots +item.dns_legs.name=DNT Nano Suit Leggings +item.dns_helmet.name=DNT Nano Suit Helmet +item.dns_plate.name=DNT Nano Suit Chestplate +item.dnt_boots.name=dienautronium boots +item.dnt_legs.name=dineuterium legs +item.dnt_helmet.name=dinotroniumu helmet +item.dnt_plate.name=dineutrom chestplate +item.door_bunker.name=Bunker Door +item.door_metal.name=Metal Door +item.door_office.name=Office Door +item.dosimeter.name=Dosimeter +item.drillbit_desh.name=Desh Drillbit +item.drillbit_desh_diamond.name=Desh Drillbit (Diamond-Tipped) +item.drillbit_ferro.name=Ferrouranium Drillbit +item.drillbit_ferro_diamond.name=Ferrouranium Drillbit (Diamond-Tipped) +item.drillbit_hss.name=High-Speed Steel Drillbit +item.drillbit_hss_diamond.name=High-Speed Steel Drillbit (Diamond-Tipped) +item.drillbit_steel.name=Steel Drillbit +item.drillbit_steel_diamond.name=Steel Drillbit (Diamond-Tipped) +item.drillbit_tcalloy.name=Technetium Steel Drillbit +item.drillbit_tcalloy_diamond.name=Technetium Steel Drillbit (Diamond-Tipped) +item.drill_titanium.name=Titanium Drill +item.drax.name=Terra Drill +item.drax_mk2.name=Hardened Terra Drill +item.drax_mk3.name=Schrabidic Terra Drill +item.ducttape.name=Duct Tape +item.dust.name=Dust +item.dust.desc=I hate dust! +item.dust.desc.P11=Another one bites the dust! +item.dust_tiny.name=Tiny Pile of Dust +item.dynosphere_base.name=Blank Dynosphere +item.dynosphere_desh.name=Desh Dynosphere +item.dynosphere_desh_charged.name=Desh Dynosphere (Charged) +item.dynosphere_dineutronium.name=Dineutronium Dynosphere +item.dynosphere_dineutronium_charged.name=Dineutronium Dynosphere (Charged) +item.dynosphere_euphemium.name=Euphemium Dynosphere +item.dynosphere_euphemium_charged.name=Euphemium Dynosphere (Charged) +item.dynosphere_schrabidium.name=Schrabidium Dynosphere +item.dynosphere_schrabidium_charged.name=Schrabidium Dynosphere (Charged) +item.dysfunctional_reactor.name=Dysfunctional Nuclear Reactor +item.early_explosive_lenses.name=Array of First-Generation High-Explosive Lenses +item.early_explosive_lenses.desc=Assembly of 8 high-explosive lenses with an aluminium$pusher, duraluminium shell, and bridgewire detonators. +item.egg_balefire.name=Balefire Egg +item.egg_balefire.desc=What kind of bird lays a radioactive egg? +item.egg_balefire_shard.name=Balefire Shard +item.egg_glyphid.name=Glyphid Egg +item.elec_axe.name=Electric Chainsaw +item.elec_pickaxe.name=Impact Drill +item.elec_shovel.name=Spiral Drill +item.elec_sword.name=Stunstick +item.energy_core.name=Makeshift Energy Core +item.entanglement_kit.name=Entanglement Kit +item.entanglement_kit.desc=Teleporter crafting item.$Enables dimension-shifting via a$beryllium-enhanced resource scanner. +item.euphemium_boots.name=Euphemium Boots +item.euphemium_capacitor.name=Euphemium Capacitor +item.euphemium_capacitor.desc=Permits passive dispersion of accumulated positive energy. +item.euphemium_helmet.name=Euphemium Helmet +item.euphemium_kit.name=Euphemium Kit +item.euphemium_legs.name=Euphemium Leggings +item.euphemium_plate.name=Euphemium Chestplate +item.euphemium_stopper.name=Stopper +item.explosive_lenses.name=Array of High-Explosive Lenses +item.explosive_lenses.desc=Assembly of 8 PBX lenses with a thin$aluminium pusher, duraluminium shell, and$miniaturized bridgewire detonators. +item.fabsols_vodka.name=Fabsol's Vodka +item.factory_core_advanced.name=Advanced Factory Energy Cluster +item.factory_core_titanium.name=Basic Factory Energy Cluster +item.fallout.name=Pile of Fallout +item.fau_boots.name=Fau Boots +item.fau_helmet.name=Fau Helmet +item.fau_legs.name=Fau Leggins +item.fau_plate.name=Fau Chestplate +item.filter_coal.name=Activated Carbon Filter +item.fins_big_steel.name=Big Steel Grid Fins +item.fins_flat.name=Flat Steel Casing +item.fins_quad_titanium.name=Small Titanium Fins +item.fins_small_steel.name=Small Steel Grid Fins +item.fins_tri_steel.name=Large Steel Fins +item.five_htp.name=Enteramine Pills +item.five_htp.desc=Removes all DRX, Stability for 10 minutes +item.flame_conspiracy.name=Conspiracy Theory +item.flame_conspiracy.desc=Steel beams can't melt jet fuel! +item.flame_opinion.name=Own Opinion +item.flame_opinion.desc=Well, I like it... +item.flame_politics.name=Political Topic +item.flame_politics.desc=Donald Duck will build the wall! +item.flame_pony.name=Painting of a Cartoon Pony +item.flame_pony.desc=Yellow horse beats blue horse, that's a proven fact! +item.flask_infusion.shield.name=Shield Infusion +item.fleija_core.name=F.L.E.I.J.A. Uranium 235 Charge +item.fleija_igniter.name=Pulse Igniter +item.fleija_kit.name=F.L.E.I.J.A. Kit +item.fleija_propellant.name=Schrabidium Propellant +item.fluid_barrel_empty.name=Empty Fluid Barrel +item.fluid_barrel_full.name=Fluid Barrel: +item.fluid_barrel_infinite.name=Infinite Fluid Barrel +item.fluid_duct.name=Fluid Duct: +item.fluid_identifier.name=Fluid Identifier +item.fluid_identifier.info=Universal fluid identifier for: +item.fluid_identifier.usage0=Right click fluid ducts to designate them for that fluid. +item.fluid_identifier.usage1=Shift right click fluid ducts to designate adjacent ducts +item.fluid_identifier.usage2=up to a maximum range of 64 ducts. +item.fluid_identifier_multi.name=Multi Fluid Identifier +item.fluid_identifier_multi.info=Universal fluid identifier for: +item.fluid_identifier_multi.info2=Secondary type: +item.fluid_tank_empty.name=Empty Universal Fluid Tank +item.fluid_tank_full.name=Universal Fluid Tank: +item.fluid_tank_lead_empty.name=Empty Hazardous Material Tank +item.fluid_tank_lead_full.name=Hazardous Material Tank: +item.fluorite.name=Fluorite +item.flywheel_beryllium.name=Beryllium Flywheel +item.fmn.name=Flunitrazepam Tablet +item.fmn.desc=Removes all DRX above 2,000mDRX +item.folly_bullet.name=12.8cm Starmetal High-Energy Shell +item.folly_bullet_du.name=12.8cm DU-Shell +item.folly_bullet_nuclear.name=12.8cm Nuclear Shell +item.folly_shell.name=Silver Bullet Casing +item.fooditem.name=food item +item.fragment_actinium.name=Actinium-227 Fragment +item.fragment_boron.name=Boron Fragment +item.fragment_cerium.name=Cerium Fragment +item.fragment_cobalt.name=Cobalt Fragment +item.fragment_coltan.name=Coltan +item.fragment_lanthanium.name=Lanthanium Fragment +item.fragment_meteorite.name=Meteorite Fragment +item.fragment_neodymium.name=Neodymium Fragment +item.fragment_niobium.name=Niobium Fragment +item.fuel_tank_large.name=Large Fuel Tank +item.fuel_tank_medium.name=Medium Fuel Tank +item.fuel_tank_small.name=Small Fuel Tank +item.fuse.name=Fuse +item.fusion_core.name=Fusion Core +item.fusion_core_infinite.name=Infinite Fusion Core +item.fusion_shield_chlorophyte.name=Chlorophyte-Metallized Fusion Reactor Blanket +item.fusion_shield_desh.name=Desh Fusion Reactor Blanket +item.fusion_shield_tungsten.name=Tungsten Fusion Reactor Blanket +item.fusion_shield_vaporwave.name=Vaporwave Fusion Reactor Blanket +item.gadget_core.name=Large Plutonium Core +item.gadget_explosive.name=First Generation Explosive Lens +item.gadget_kit.name=The Gadget Kit +item.gadget_wireing.name=Wiring +item.gas_biogas.name=Biogas Tank +item.gas_empty.name=Empty Gas Tank +item.gas_full.name=Gas Tank: +item.gas_lpg.name=LPG Tank +item.gas_mask.name=Gas Mask +item.gas_mask_filter.name=Gas Mask Filter +item.gas_mask_filter_combo.name=Gas Mask Combo Filter +item.gas_mask_filter_mono.name=Catalytic Mask Filter +item.gas_mask_filter_piss.name=Advanced Makeshift Gas Mask Filter +item.gas_mask_filter_rag.name=Makeshift Gas Mask Filter +item.gas_mask_m65.name=M65-Z Gas Mask +item.gas_mask_mono.name=Half Mask +item.gas_mask_olde.name=Leather Gas Mask +item.gas_petroleum.name=Petroleum Gas Tank +item.gas_tester.name=Gas Sensor +item.gear_large.name=Large Gear +item.gear_large_steel.name=Large Steel Gear +item.geiger_counter.name=Handheld Geiger Counter +item.gem_alexandrite.name=Alexandrite +item.gem_tantalium.name=Tantalium Polycrystal +item.gem_tantalium.desc='Tantalum' +item.gem_tantalium.desc.P11=AKA Tantalum. +item.gem_volcanic.name=Volcanic Gem +item.generator_front.name=Generator Front +item.generator_steel.name=Generator Body +item.glitch.name=Glitch +item.glowing_stew.name=Glowing Mushroom Stew +item.glyphid_meat.name=Glyphid Meat +item.glyphid_meat_grilled.name=Grilled Glyphid Meat +item.goggles.name=Protection Goggles +item.grenade_aschrab.name=Tossable Antischrabidium Cell +item.grenade_black_hole.name=Black Hole Grenade +item.grenade_breach.name=Breaching Grenade +item.grenade_burst.name=Digger Grenade +item.grenate_cats.name=Grenade of Cats +item.grenade_cloud.name=Jar of Cloud +item.grenade_cluster.name=Cluster Bomb +item.grenade_electric.name=Lightning Bomb +item.grenade_fire.name=Flame Frag Grenade +item.grenade_flare.name=Signal Flare +item.grenade_frag.name=Frag Grenade +item.grenade_gas.name=Gas Grenade +item.grenade_gascan.name=Tossable Gas Can +item.grenade_generic.name=Grenade +item.grenade_if_bouncy.name=IF - Bouncy Grenade +item.grenade_if_brimstone.name=IF - Tossable Brimstone Mine +item.grenade_if_concussion.name=IF - Concussion Grenade +item.grenade_if_generic.name=IF - Grenade +item.grenade_if_he.name=IF - HE Grenade +item.grenade_if_hopwire.name=IF - Vortex Hopwire +item.grenade_if_impact.name=IF - Impact Grenade +item.grenade_if_incendiary.name=IF - Incendiary Grenade +item.grenade_if_mystery.name=IF - M.-Grenade +item.grenade_if_null.name=IF - Null Grenade +item.grenade_if_spark.name=IF - S.-Grenade +item.grenade_if_sticky.name=IF - Sticky Grenade +item.grenade_if_toxic.name=IF - Toxic Grenade +item.grenade_kit.name=Grenade Kit +item.grenade_kyiv.name=The Kyiv Special +item.grenade_lemon.name=Combustible Lemon +item.grenade_mirv.name=MIRV Grenade +item.grenade_mk2.name=Mk 2 Grenade "Ambassador Pineapple" +item.grenade_nuclear.name=Nuka Grenade +item.grenade_nuke.name=Mark VI Drill Grenade +item.grenade_pink_cloud.name=Jar of Pink Cloud +item.grenade_plasma.name=Plasma Grenade +item.grenade_poison.name=Poison Grenade +item.grenade_pulse.name=Impulse Grenade +item.grenade_schrabidium.name=Schrabidium Grenade +item.grenade_shrapnel.name=Shrapnel Grenade +item.grenade_smart.name=Smart Grenade +item.grenade_strong.name=Enhanced Grenade +item.grenade_tau.name=Tau Grenade +item.grenade_zomg.name=Negative Energy Pair Annihilation Grenade +item.gun_ar15.name=Josh +item.gun_avenger.name=CZ57 Avenger Minigun +item.gun_b92.name=§9B92 Energy Pistol§r +item.gun_b92_ammo.name=§9B92 Energy Cell§r +item.gun_b93.name=§cB93 Energy Mod§r +item.gun_bf.name=BEL +item.gun_bf_ammo.name=Balefire Shell +item.gun_bio_revolver.name=Atlas +item.gun_bolt_action.name=Dream Bolt-Action Rifle (Original) +item.gun_bolt_action_ammo.name=12x74 Slug (LEGACY) +item.gun_bolt_action_green.name=Dream Bolt-Action Rifle (Green) +item.gun_bolt_action_saturnite.name=Saturnite Rifle +item.gun_bolter.name=Bolter +item.gun_bolter_digamma.name=Digamma Gun +item.gun_calamity.name=Buzzsaw +item.gun_calamity_ammo.name=.50 BMG Round (LEGACY) +item.gun_calamity_dual.name=Saddle Gun +item.gun_chemthrower.name=Chemthrower +item.gun_cryolator.name=The Cryolator +item.gun_cryolator_ammo.name=Cryo Cell +item.gun_dampfmaschine.name=Totally Not a Joke Weapon +item.gun_darter.name=Dart Gun +item.gun_deagle.name=Big Iron +item.gun_defabricator.name=Defabricator +item.gun_defabricator_ammo.name=Defabricator Energy Cell +item.gun_detonator.name=Laser Detonator +item.gun_emp.name=EMP Gun +item.gun_emp_ammo.name=Energy Cell +item.gun_euthanasia.name=Euthanasia +item.gun_euthanasia_ammo.name=Syringe +item.gun_fatman.name=M42 Nuclear Catapult "Fat Man" +item.gun_fatman_ammo.name=Mini Nuke (LEGACY) +item.gun_fireext.name=Fire Extinguisher +item.gun_flamer.name=Mister Topaz +item.gun_flechette.name=Flechette Rifle +item.gun_folly.name=Prototype Digamma "Folly" +item.gun_glass_cannon.name=The Glass Cannon +item.gun_hk69.name=Grenade Pistol +item.gun_hp.name=HPP Lazerjet +item.gun_hp_ammo.name=Ink Cartridge +item.gun_immolator.name=The Immolator +item.gun_immolator_ammo.name=Immolator Fuel +item.gun_jack.name=Jackhammer +item.gun_jack_ammo.name=Quadruple Shotgun Shell +item.gun_karl.name=Karl +item.gun_kit_1.name=Gun Oil +item.gun_kit_2.name=Gun Repair Kit +item.gun_ks23.name=Samuel the Big Shotgun +item.gun_lacunae.name=CZ33 Abaddon +item.gun_lacunae_ammo.name=5mm Round (LEGACY) +item.gun_lever_action.name=Mare's Leg (Original) +item.gun_lever_action_ammo.name=12x74 Buckshot (LEGACY) +item.gun_lever_action_dark.name=Mare's Leg (Dark) +item.gun_lever_action_sonata.name=Flipped Mare's Leg +item.gun_lever_action_sonata_2.name=§cSonata's Microphone§r +item.gun_lunatic_marksman.name=Lunatic Sniper Rifle +item.gun_m2.name=Ma Deuce +item.gun_minigun.name=CZ53 Personal Minigun +item.gun_mirv.name=M42 Nuclear Catapult "Experimental MIRV" +item.gun_mirv_ammo.name=Eightfold MIRV (LEGACY) +item.gun_moist_nugget.name=Mosin-Nagant +item.gun_mp.name=Pacifist's Machine Gun +item.gun_mp40.name=Submachine Gun +item.gun_mp40_ammo.name=Submachine Gun Round (LEGACY) +item.gun_pm_ammo.name=Small Propellantless Machine Gun Round +item.gun_mymy.name=Nietes +item.gun_osipr.name=Overwatch Standard Issue Pulse Rifle +item.gun_osipr_ammo.name=Dark Energy Pulse Plug +item.gun_osipr_ammo2.name=Combine Ball +item.gun_panzerschreck.name=Panzerschreck +item.gun_proto.name=M42 Nuclear Catapult "Proto MIRV" +item.gun_quadro.name=Quattro Formaggi +item.gun_remington.name=バイデン ブラスト [BIDEN BLAST] +item.gun_revolver.name=Enhanced Revolver +item.gun_revolver_ammo.name=Lead Bullet +item.gun_revolver_blackjack.name=Blackjack Five-Shooter +item.gun_revolver_cursed.name=Cursed Revolver +item.gun_revolver_cursed_ammo.name=Steel Bullet +item.gun_revolver_gold.name=Golden Revolver +item.gun_revolver_gold_ammo.name=Golden Bullet +item.gun_revolver_inverted.name=Flipped Revolver +item.gun_revolver_iron.name=Simple Revolver +item.gun_revolver_iron_ammo.name=Bullet +item.gun_revolver_lead.name=Nuka Revolver +item.gun_revolver_lead_ammo.name=Glass Covered Nuclear Bullet +item.gun_revolver_nightmare.name=Nightmare Revolver (Original) +item.gun_revolver_nightmare2.name=Nightmare Revolver (Dark) +item.gun_revolver_nightmare2_ammo.name=Laser Buckshot +item.gun_revolver_nightmare_ammo.name=Nightmare Bullet +item.gun_revolver_nopip.name=Novac +item.gun_revolver_nopip_ammo.name=.44 Magnum Bullet (LEGACY) +item.gun_revolver_pip.name=Lil' Pipsqueak +item.gun_revolver_pip_ammo.name=Tainted Bullet (LEGACY) +item.gun_revolver_red.name=Red Key Revolver +item.gun_revolver_saturnite.name=Saturnite Shooter +item.gun_revolver_schrabidium.name=Schrabidium Revolver +item.gun_revolver_schrabidium_ammo.name=Schrabidium Bullet +item.gun_revolver_silver.name=Lent Gun +item.gun_rpg.name=Carl Gustav Recoilless Rifle +item.gun_rpg_ammo.name=Rocket (LEGACY) +item.gun_sauer.name=Stan Sauer's Shotgun +item.gun_skystinger.name=The One Sky Stinger +item.gun_spark.name=Spark Plug +item.gun_spark_ammo.name=Electromagnetic Cartridge +item.gun_spas12.name=SPAS-12 Shotgun +item.gun_stinger.name=FIM-92 Stinger +item.gun_stinger_ammo.name=Stinger Rocket (LEGACY) +item.gun_super_shotgun.name=Super Shotgun +item.gun_super_shotgun.desc=It's super broken! +item.gun_supershotgun.name=Super Shotgun +item.gun_thompson.name=Thompson Submachine Gun +item.gun_uboinik.name=Uboinik +item.gun_uboinik_ammo.name=12x70 Buckshot (LEGACY) +item.gun_uzi.name=IMI Uzi +item.gun_uzi_ammo.name=.22 LR Round (LEGACY) +item.gun_uzi_saturnite.name=Saturnite Uzi +item.gun_uzi_saturnite_silencer.name=Saturnite Uzi with Silencer +item.gun_uzi_silencer.name=IMI Uzi with Silencer +item.gun_xvl1456.name=XVL1456 Tau Cannon Prototype +item.gun_xvl1456_ammo.name=Depleted Uranium-235 Box +item.gun_zomg.name=ZOMG Cannon +item.hand_drill.name=Hand Drill +item.hand_drill_desh.name=Desh Hand Drill +item.hazmat_boots.name=Hazmat Boots +item.hazmat_boots_grey.name=High-Performance Hazmat Boots +item.hazmat_boots_red.name=Advanced Hazmat Boots +item.hazmat_cloth.name=Hazmat Cloth +item.hazmat_cloth_grey.name=Lead-Reinforced Hazmat Cloth +item.hazmat_cloth_red.name=Advanced Hazmat Cloth +item.hazmat_grey_kit.name=High-Performance Hazmat Kit +item.hazmat_helmet.name=Hazmat Helmet +item.hazmat_helmet_grey.name=High-Performance Hazmat Helmet +item.hazmat_helmet_red.name=Advanced Hazmat Helmet +item.hazmat_kit.name=Hazmat Kit +item.hazmat_legs.name=Hazmat Leggings +item.hazmat_legs_grey.name=High-Performance Hazmat Leggings +item.hazmat_legs_red.name=Advanced Hazmat Leggings +item.hazmat_paa_boots.name=PaA Battle Hazmat Suit Boots +item.hazmat_paa_helmet.name=PaA Battle Hazmat Suit Helmet +item.hazmat_paa_legs.name=PaA Battle Hazmat Suit Leggings +item.hazmat_paa_plate.name=PaA Battle Hazmat Suit Chestplate +item.hazmat_plate.name=Hazmat Chestplate +item.hazmat_plate_grey.name=High-Performance Hazmat Chestplate +item.hazmat_plate_red.name=Advanced Hazmat Chestplate +item.hazmat_red_kit.name=Advanced Hazmat Kit +item.heart_booster.name=Heart Booster +item.heart_container.name=Heart Container +item.heart_fab.name=Fab Heart +item.heart_piece.name=Heart Piece +item.hev_battery.name=Suit Battery +item.hev_boots.name=HEV Mark IV Boots +item.hev_plate.name=HEV Mark IV Chestplate +item.hev_helmet.name=HEV Mark IV Helmet +item.hev_legs.name=HEV Mark IV Leggings +item.holotape_damaged.name=Damaged Holotape +item.holotape_image.name=Holotape +item.horseshoe_magnet.name=Horseshoe Magnet +item.hull_big_aluminium.name=Big Aluminium Shell +item.hull_big_steel.name=Big Steel Shell +item.hull_big_titanium.name=Big Titanium Shell +item.hull_small_aluminium.name=Small Aluminium Shell +item.hull_small_aluminium.desc=Can be inserted into drilled graphite +item.hull_small_steel.name=Small Steel Shell +item.igniter.name=Igniter +item.igniter.desc=(Used by right-clicking the Prototype)$It's a green metal handle with a$bright red button and a small lid.$At the bottom, the initials N.E. are$engraved. Whoever N.E. was, he had$a great taste in shades of green. +item.industrial_magnet.name=Industrial Magnet +item.inf_antimatter.name=Infinite Antimatter Tank +item.inf_antischrabidium.name=Infinite Antischrabidium Tank +item.inf_coolant.name=Infinite Coolant Tank +item.inf_deuterium.name=Infinite Deuterium Tank +item.inf_diesel.name=Infinite Diesel Tank +item.inf_sulfur.name=Infinite Sulfur Tank +item.inf_tritium.name=Infinite Tritium Tank +item.inf_water.name=Infinite Water Tank +item.inf_water_mk2.name=Heavy Infinite Water Tank +item.ingot_actinium.name=Actinium-227 Ingot +item.ingot_advanced_alloy.name=Advanced Alloy Ingot +item.ingot_aluminium.name=Aluminium Ingot +item.ingot_am_mix.name=Reactor Grade Americium Ingot +item.ingot_am241.name=Americium-241 Ingot +item.ingot_am242.name=Americium-242 Ingot +item.ingot_americium_fuel.name=Ingot of Americium Fuel +item.ingot_arsenic.name=Arsenic Ingot +item.ingot_asbestos.name=Asbestos Sheet +item.ingot_asbestos.desc=§o"Filled with life, self-doubt and asbestos. That comes with the air."§r +item.ingot_au198.name=Gold-198 Ingot +item.ingot_australium.name=Australium Ingot +item.ingot_bakelite.name=Bakelite Bar +item.ingot_beryllium.name=Beryllium Ingot +item.ingot_bismuth.name=Bismuth Ingot +item.ingot_boron.name=Boron Ingot +item.ingot_c4.name=Bar of Composition C-4 +item.ingot_cadmium.name=Cadmium Ingot +item.ingot_calcium.name=Calcium Ingot +item.ingot_cdalloy.name=Cadmium Steel Ingot +item.ingot_chainsteel.name=Heavy Chainsteel +item.ingot_co60.name=Cobalt-60 Ingot +item.ingot_cobalt.name=Cobalt Ingot +item.ingot_combine_steel.name=CMB Steel Ingot +item.ingot_combine_steel.desc=*insert Civil Protection reference here* +item.ingot_copper.name=Industrial Grade Copper +item.ingot_daffergon.name=Daffergon Ingot +item.ingot_desh.name=Desh Ingot +item.ingot_dineutronium.name=Dineutronium Ingot +item.ingot_dura_steel.name=High-Speed Steel Ingot +item.ingot_electronium.name=Electronium Ingot +item.ingot_euphemium.name=Euphemium Ingot +item.ingot_euphemium.desc=A very special and yet strange element. +item.ingot_ferrouranium.name=Ferrouranium Ingot +item.ingot_fiberglass.name=Fiberglass Bar +item.ingot_fiberglass.desc=High in fiber, high in glass. Everything the body needs. +item.ingot_firebrick.name=Firebrick +item.ingot_gh336.name=Ghiorsium-336 Ingot +item.ingot_gh336.desc=Seaborgium's colleague. +item.ingot_graphite.name=Graphite Ingot +item.ingot_hes.name=Highly Enriched Schrabidium Fuel Ingot +item.ingot_lanthanium.name=Semi-Stable Lanthanium Ingot +item.ingot_lanthanium.desc='Lanthanum' +item.ingot_lanthanium.desc.P11=Actually Lanthanum, but whatever. +item.ingot_lead.name=Lead Ingot +item.ingot_les.name=Low Enriched Schrabidium Fuel Ingot +item.ingot_magnetized_tungsten.name=Magnetized Tungsten Ingot +item.ingot_meteorite.name=Meteorite Ingot +item.ingot_meteorite_forged.name=Forged Meteorite Ingot +item.ingot_mox_fuel.name=Ingot of MOX Fuel +item.ingot_mud.name=Solid Mud Brick +item.ingot_neptunium.name=Neptunium Ingot +item.ingot_neptunium.desc=That one's my favourite! +item.ingot_neptunium.desc.P11=Woo, scary! +item.ingot_neptunium_fuel.name=Neptunium Fuel Ingot +item.ingot_niobium.name=Niobium Ingot +item.ingot_osmiridium.name=Osmiridium Ingot +item.ingot_pb209.name=Lead-209 Ingot +item.ingot_pc.name=Hard Plastic Bar +item.ingot_pet.name=Aluminium-Metallized PET Bar +item.ingot_phosphorus.name=Bar of White Phosphorus +item.ingot_plutonium.name=Plutonium Ingot +item.ingot_plutonium_fuel.name=Ingot of Plutonium Fuel +item.ingot_polonium.name=Polonium-210 Ingot +item.ingot_polymer.name=Polymer Bar +item.ingot_pu_mix.name=Reactor Grade Plutonium Ingot +item.ingot_pu238.name=Plutonium-238 Ingot +item.ingot_pu239.name=Plutonium-239 Ingot +item.ingot_pu240.name=Plutonium-240 Ingot +item.ingot_pu241.name=Plutonium-241 Ingot +item.ingot_pvc.name=PVC Bar +item.ingot_ra226.name=Radium-226 Ingot +item.ingot_red_copper.name=Minecraft Grade Copper +item.ingot_reiium.name=Reiium Ingot +item.ingot_rubber.name=Rubber Bar +item.ingot_saturnite.name=Saturnite Ingot +item.ingot_schrabidate.name=Ferric Schrabidate Ingot +item.ingot_schrabidium.name=Schrabidium Ingot +item.ingot_schrabidium_fuel.name=Ingot of Schrabidium Fuel +item.ingot_schraranium.name=Schraranium Ingot +item.ingot_schraranium.desc=Made from uranium in a schrabidium transmutator +item.ingot_semtex.name=Bar of Semtex +item.ingot_smore.name=S'more Ingot +item.ingot_solinium.name=Solinium Ingot +item.ingot_sr90.name=Strontium-90 Ingot +item.ingot_starmetal.name=§9Starmetal Ingot§r +item.ingot_steel.name=Steel Ingot +item.ingot_steel_dusted.name=Dusted Steel Ingot +item.ingot_tantalium.name=Tantalium Ingot +item.ingot_tantalium.desc='Tantalum' +item.ingot_tantalium.desc.P11=AKA Tantalum. +item.ingot_tcalloy.name=Technetium Steel Ingot +item.ingot_technetium.name=Technetium-99 Ingot +item.ingot_th232.name=Thorium-232 Ingot +item.ingot_thorium_fuel.name=Ingot of Thorium Fuel +item.ingot_titanium.name=Titanium Ingot +item.ingot_tungsten.name=Tungsten Ingot +item.ingot_u233.name=Uranium-233 Ingot +item.ingot_u235.name=Uranium-235 Ingot +item.ingot_u238.name=Uranium-238 Ingot +item.ingot_u238m2.name=Metastable Uranium-238M2 Ingot +item.ingot_unobtainium.name=Unobtainium Ingot +item.ingot_uranium.name=Uranium Ingot +item.ingot_uranium_fuel.name=Ingot of Uranium Fuel +item.ingot_verticium.name=Verticium Ingot +item.ingot_weidanium.name=Weidanium Ingot +item.ingot_zirconium.name=Zirconium Cube +item.injector_5htp.name=5-HTP Autoinjector +item.injector_knife.name=8 Inch Blade Autoinjector +item.ink.name=林 Ink +item.insert_doxium.name=Astolfium-Doped Doxium Insert +item.insert_du.name=Wkładka z Zubożonego Uranu +item.insert_era.name=Explosive Reactive Armor Insert +item.insert_esapi.name=ESAPI Insert +item.insert_ghiorsium.name=Ghiorsium Insert +item.insert_kevlar.name=Wkładka Kevlarowa +item.insert_sapi.name=SAPI Insert +item.insert_polonium.name=Wkładka z Polonu +item.insert_steel.name=Heavy Steel Insert +item.insert_xsapi.name=XSAPI Insert +item.insert_yharonite.name=Yharonite Insert +item.iv_blood.name=Blood Bag +item.iv_empty.name=IV Bag +item.iv_xp.name=Experience Bag +item.iv_xp_empty.name=Empty Experience Bag +item.jackt.name=Damn Stylish Ballistic Jacket +item.jackt2.name=Damn Stylish Ballistic Jacket 2: Tokyo Drift +item.jetpack_boost.name=Boostpack +item.jetpack_break.name=Builder's Jetpack +item.jetpack_fly.name=Plecak Rakietowy +item.jetpack_tank.name=Jetpack Reserve Fuel Tank +item.jetpack_vector.name=Vectored Jetpack +item.journal_bj.name=Whiskey Drenched Notebook +item.journal_pip.name=Survivalist's Journal +item.journal_silver.name=Contractor's Notes +item.key.name=Klucz +item.key_fake.name=Podrobiony Klucz +item.key_kit.name=Key Imitation Kit +item.key_red.name=Czerwony Klucz +item.key_red.desc=Explore the other side. +item.key_red.desc.P11=§4e§r +item.kit_toolbox.name=Skrzynka na Narzędzia +item.kit_toolbox_empty.name=Empty Toolbox +item.laser_crystal_bismuth.desc=Bismuth-Samarium-Uranium-Thorium crystal matrix +item.laser_crystal_bismuth.name=BiSmUTh Laser Crystal +item.laser_crystal_cmb.desc=Antischrabidium Suspended in a CMB-Schrabidate Alloy Lattice +item.laser_crystal_cmb.name=CMB-Schrabidate Antimatter Laser Crystal +item.laser_crystal_co2.desc=Carbon Dioxide encased in Crystalline Desh +item.laser_crystal_co2.name=CO2-Desh Laser Crystal +item.laser_crystal_digamma.name=Digamma Laser Crystal +item.laser_crystal_dnt.desc=Dineutronium-Spark Fermion Supercrystal +item.laser_crystal_dnt.name=Spark Laser Crystal +item.lead_gavel.name=Leaden Gavel +item.lemon.name="Cytryna" +item.letter.name=List Polecony +item.levitation_unit.name=Gravity Manipulator +item.lignite.name=Lignit +item.limiter.name=Generator Limiter +item.linker.name=Telelinker +item.liquidator_boots.name=Liquidator Suit Boots +item.liquidator_helmet.name=Liquidator Suit Helmet +item.liquidator_legs.name=Liquidator Suit Leggins +item.liquidator_plate.name=Liquidator Suit Chestplate +item.lithium.name=Kostka Litu +item.lodestone.name=Magnetyt +item.loop_stew.name=Śniadanie IT +item.loops.name=Lööps +item.loot_10.name=Size 10 Missile Loot Crate +item.loot_15.name=Size 15 Missile Loot Crate +item.loot_misc.name=General Missile Loot Crate +item.magnet_circular.name=Flat Magnet +item.magnet_dee.name=Dee Magnets +item.magnetron.name=Magnetron +item.man_core.name=Plutonium Core +item.man_explosive.name=Soczewki Skupiające Wybuch +item.man_igniter.name=Bomb Firing Unit +item.man_kit.name=Fat Man Kit +item.marshmallow.name=Marshmallow on a Stick +item.mask_of_infamy.name=Maska Zniesławienia +item.mask_piss.name=Maska Okopowa +item.mask_rag.name=Crude Protective Mask +item.matchstick.name=Zapałka +item.mech_key.name=Large Silver Key +item.mech_key.desc=It pulses with power. +item.mechanism_launcher_1.name=Launcher Mechanism +item.mechanism_launcher_2.name=Advanced Launcher Mechanism +item.mechanism_revolver_1.name=Revolver Mechanism +item.mechanism_revolver_2.name=Advanced Revolver Mechanism +item.mechanism_rifle_1.name=Rifle Mechanism +item.mechanism_rifle_2.name=Advanced Rifle Mechanism +item.mechanism_special.name=High-Tech Weapon Mechanism +item.med_bag.name=Doctor's Bag +item.med_ipecac.name=Ipecac Syrup +item.med_ptsd.name=PTSD Medication +item.med_schiziphrenia.name=Schizophrenia Medication +item.medal_liquidator.name=Liquidator Medal +item.meltdown_tool.name=Dyatlov Instant Meltdown Applicator +item.memespoon.name=§eMarket Gardener +item.memory.name=item.null.name +item.mese_gavel.name=Mesowy Młotek +item.mese_pickaxe.name=Mese Pickaxe +item.meteor_charm.name=Meteor Charm +item.meteor_remote.name=Meteorite Remote +item.meteorite_sword.name=Meteorite Sword +item.meteorite_sword_seared.name=Meteorite Sword (Seared) +item.meteorite_sword_reforged.name=Meteorite Sword (Reforged) +item.meteorite_sword_hardened.name=Meteorite Sword (Hardened) +item.meteorite_sword_alloyed.name=Meteorite Sword (Alloyed) +item.meteorite_sword_machined.name=Meteorite Sword (Machined) +item.meteorite_sword_treated.name=Meteorite Sword (Treated) +item.meteorite_sword_etched.name=Meteorite Sword (Etched) +item.meteorite_sword_bred.name=Meteorite Sword (Bred) +item.meteorite_sword_irradiated.name=Meteorite Sword (Irradiated) +item.meteorite_sword_fused.name=Meteorite Sword (Fused) +item.meteorite_sword_baleful.name=Meteorite Sword (Baleful) +item.mike_cooling_unit.name=Deuterium Cooling Unit +item.mike_core.name=Uranium Coated Deuterium Tank +item.mike_deut.name=Deuterium Tank +item.mike_kit.name=Zestaw Ivy Mike +item.mirror_tool.name=Mirror Adjustment Tool +item.mirror_tool.linked=Alignment position set! +item.mirror_tool.desc=Right-click boiler to memorize the position.$Click on mirrors to turn them towards the boiler. +item.missile_anti_ballistic.name=Anti Ballistic Missile +item.missile_assembly.name=Small Missile Assembly +item.missile_bhole.name=Black Hole Missile +item.missile_burst.name=Spare Missile +item.missile_buster.name=Bunker Buster +item.missile_buster_strong.name=Ulepszony Pogromca Bunkrów +item.missile_carrier.name=HTR-01 Carrier Rocket +item.missile_cluster.name=Kasetowy Pocisk Rakietowy +item.missile_cluster_strong.name=Strong Cluster Missile +item.missile_custom.name=Niestandardowy Pocisk Rakietowy +item.missile_doomsday.name=Pocisk Rakietowy Zagłady +item.missile_drill.name=Kruszarka do Betonu +item.missile_emp.name=Elektromagnetyczny Pocisk Rakietowy +item.missile_emp_strong.name=Silny Elektromagnetyczny Pocisk Rakietowy +item.missile_endo.name=Endotermiczny Pocisk Rakietowy +item.missile_exo.name=Eksotermiczny Pocisk Rakietowy +item.missile_generic.name=Wybuchowy Pocisk Rakietowy +item.missile_incendiary.name=Zapalający Pocisk Rakietowy +item.missile_incendiary_strong.name=Strong Incendiary Missile +item.missile_inferno.name=Inferno Missile G.R.N. Mk.II +item.missile_kit.name=Zestaw Pocisków Rakietowych +item.missile_micro.name=Micro-Nuclear Missile +item.missile_nuclear.name=Nuclear Missile +item.missile_nuclear_cluster.name=Thermonuclear Missile +item.missile_rain.name=Deszcz Kasetowy +item.missile_schrabidium.name=Schrabidium Missile +item.missile_shuttle.name=Reliant Robin Space Shuttle +item.missile_skin_camo.name=Missile Skin: Camo +item.missile_skin_color.desc=I can't find my missile anymore! +item.missile_skin_desert.name=Missile Skin: Desert Camo +item.missile_skin_desert.desc=Looks like sand, tastes like metal. +item.missile_skin_flames.name=Missile Skin: Sick Flames +item.missile_skin_flames.desc=Radical! +item.missile_skin_manly_pink.name=Missile Skin: Manly Pink +item.missile_skin_manly_pink.desc=Pink, the manliest color of them all. +item.missile_skin_metal.name=Missile Skin: Metal +item.missile_skin_metal.desc=Metal sheets and metal bolts, reinforced with metal. +item.missile_skin_orange_insulation.name=Missile Skin: Orange Insulation +item.missile_skin_orange_insulation.desc=Not an orange juice bottle;$do not attempt to drink contents. +item.missile_skin_sleek.name=Missile Skin: IF-R&D +item.missile_skin_sleek.desc=Chevrons are cool! +item.missile_skin_soviet_glory.name=Missile Skin: Soviet Glory +item.missile_skin_soviet_glory.desc=услуга перевода недоступна +item.missile_skin_soviet_stank.name=Missile Skin: Soviet Stank +item.missile_skin_soviet_stank.desc=This one's got the real 60's stank to it. +item.missile_soyuz.name=Soyuz-FG +item.missile_soyuz_lander.name=Orbital Module +item.missile_soyuz_lander.desc=Doubles as a crappy lander! +item.missile_strong.name=Strong HE Missile +item.missile_taint.name=Taint-Tipped Missile +item.missile_volcano.name=Tektoniczny Pocisk Rakietowy +item.missile_volcano.desc=Za pomocą eksplozji jądrowych możemy stworzyć wulkan! +item.mold_base.name=Pusta Forma Huty +item.mold.name=Forma Huty +item.morning_glory.name=Poranna Chwała +item.motor.name=Silnik Elektryczny +item.motor_bismuth.name=Bizmutowy Silnik Elektryczny +item.motor_desh.name=Deszowy Silnik Elektryczny +item.mp_c_1.name=Obwód Namierzania Rakietowego Poziomu 1 +item.mp_c_2.name=Obwód Namierzania Rakietowego Poziomu 2 +item.mp_c_3.name=Obwód Namierzania Rakietowego Poziomu 3 +item.mp_c_4.name=Obwód Namierzania Rakietowego Poziomu 4 +item.mp_c_5.name=Obwód Namierzania Rakietowego Poziomu 5 +item.mp_fuselage_10_15_balefire.name=Size 10/15 BF Fuselage +item.mp_fuselage_10_15_hydrogen.name=Size 10/15 Hydrogen Fuselage +item.mp_fuselage_10_15_kerosene.name=Size 10/15 Kerosene Fuselage +item.mp_fuselage_10_15_solid.name=Size 10/15 Solid Fuel Fuselage +item.mp_fuselage_10_kerosene.name=Size 10 Kerosene Fuselage +item.mp_fuselage_10_kerosene_camo.name=Size 10 Kerosene Fuselage +item.mp_fuselage_10_kerosene_desert.name=Size 10 Kerosene Fuselage +item.mp_fuselage_10_kerosene_flames.name=Size 10 Kerosene Fuselage +item.mp_fuselage_10_kerosene_insulation.name=Size 10 Kerosene Fuselage +item.mp_fuselage_10_kerosene_metal.name=Size 10 Kerosene Fuselage +item.mp_fuselage_10_kerosene_sky.name=Size 10 Kerosene Fuselage +item.mp_fuselage_10_kerosene_sleek.name=Size 10 Kerosene Fuselage +item.mp_fuselage_10_kerosene_taint.name=Size 10 Kerosene Fuselage +item.mp_fuselage_10_long_kerosene.name=Size 10 Long Kerosene Fuselage +item.mp_fuselage_10_long_kerosene_camo.name=Size 10 Long Kerosene Fuselage +item.mp_fuselage_10_long_kerosene_dash.name=Size 10 Long Kerosene Fuselage +item.mp_fuselage_10_long_kerosene_desert.name=Size 10 Long Kerosene Fuselage +item.mp_fuselage_10_long_kerosene_flames.name=Size 10 Long Kerosene Fuselage +item.mp_fuselage_10_long_kerosene_insulation.name=Size 10 Long Kerosene Fuselage +item.mp_fuselage_10_long_kerosene_metal.name=Size 10 Long Kerosene Fuselage +item.mp_fuselage_10_long_kerosene_sky.name=Size 10 Long Kerosene Fuselage +item.mp_fuselage_10_long_kerosene_sleek.name=Size 10 Long Kerosene Fuselage +item.mp_fuselage_10_long_kerosene_taint.name=Size 10 Long Kerosene Fuselage +item.mp_fuselage_10_long_kerosene_vap.name=Size 10 Long Kerosene Fuselage +item.mp_fuselage_10_long_solid.name=Size 10 Long Solid Fuel Fuselage +item.mp_fuselage_10_long_solid_bullet.name=Size 10 Long Solid Fuselage +item.mp_fuselage_10_long_solid_flames.name=Size 10 Long Solid Fuel Fuselage +item.mp_fuselage_10_long_solid_insulation.name=Size 10 Long Solid Fuel Fuselage +item.mp_fuselage_10_long_solid_silvermoonlight.name=Size 10 Long Solid Fuselage +item.mp_fuselage_10_long_solid_sleek.name=Size 10 Long Solid Fuel Fuselage +item.mp_fuselage_10_long_solid_soviet_glory.name=Size 10 Long Solid Fuselage +item.mp_fuselage_10_solid.name=Size 10 Solid Fuel Fuselage +item.mp_fuselage_10_solid_battery.name=Size 10 Solid Fuel Fuselage +item.mp_fuselage_10_solid_cathedral.name=Size 10 Solid Fuel Fuselage +item.mp_fuselage_10_solid_duracell.name=Size 10 Solid Fuel Fuselage +item.mp_fuselage_10_solid_flames.name=Size 10 Solid Fuel Fuselage +item.mp_fuselage_10_solid_insulation.name=Size 10 Solid Fuel Fuselage +item.mp_fuselage_10_solid_moonlit.name=Size 10 Solid Fuel Fuselage +item.mp_fuselage_10_solid_sleek.name=Size 10 Solid Fuel Fuselage +item.mp_fuselage_10_solid_soviet_glory.name=Size 10 Solid Fuel Fuselage +item.mp_fuselage_10_xenon.name=Size 10 Xenon Fuselage +item.mp_fuselage_10_xenon_bhole.name=Size 10 Xenon Fuselage +item.mp_fuselage_15_20_kerosene.name=Size 15/20 Kerosene Fuselage +item.mp_fuselage_15_20_kerosene_magnusson.name=Size 15/20 Kerosene Fuselage +item.mp_fuselage_15_20_solid.name=Size 15/20 Solid Fuel Fuselage +item.mp_fuselage_15_balefire.name=Size 15 BF Fuselage +item.mp_fuselage_15_hydrogen.name=Size 15 Hydrogen Fuselage +item.mp_fuselage_15_hydrogen_cathedral.name=Size 15 Hydrogen Fuselage +item.mp_fuselage_15_kerosene.name=Size 15 Kerosene Fuselage +item.mp_fuselage_15_kerosene_blackjack.name=Size 15 Kerosene Fuselage +item.mp_fuselage_15_kerosene_camo.name=Size 15 Kerosene Fuselage +item.mp_fuselage_15_kerosene_decorated.name=Size 15 Kerosene Fuselage +item.mp_fuselage_15_kerosene_desert.name=Size 15 Kerosene Fuselage +item.mp_fuselage_15_kerosene_insulation.name=Size 15 Kerosene Fuselage +item.mp_fuselage_15_kerosene_lambda.name=Size 15 Kerosene Fuselage +item.mp_fuselage_15_kerosene_metal.name=Size 15 Kerosene Fuselage +item.mp_fuselage_15_kerosene_minuteman.name=Size 15 Kerosene Fuselage +item.mp_fuselage_15_kerosene_pip.name=Size 15 Kerosene Fuselage +item.mp_fuselage_15_kerosene_polite.name=Size 15 Kerosene Fuselage +item.mp_fuselage_15_kerosene_sky.name=Size 15 Kerosene Fuselage +item.mp_fuselage_15_kerosene_steampunk.name=Size 15 Kerosene Fuselage +item.mp_fuselage_15_kerosene_taint.name=Size 15 Kerosene Fuselage +item.mp_fuselage_15_kerosene_yuck.name=Size 15 Kerosene Fuselage +item.mp_fuselage_15_solid.name=Size 15 Solid Fuel Fuselage +item.mp_fuselage_15_solid_desh.name=Size 15 Solid Fuel Fuselage +item.mp_fuselage_15_solid_faust.name=Size 15 Solid Fuel Fuselage +item.mp_fuselage_15_solid_insulation.name=Size 15 Solid Fuel Fuselage +item.mp_fuselage_15_solid_mimi.name=Size 15 Solid Fuel Mimi-chan's Body +item.mp_fuselage_15_solid_panorama.name=Size 15 Solid Fuel Fuselage +item.mp_fuselage_15_solid_roses.name=Size 15 Solid Fuel Fuselage +item.mp_fuselage_15_solid_silvermoonlight.name=Size 15 Solid Fuel Fuselage +item.mp_fuselage_15_solid_snowy.name=Size 15 Solid Fuel Fuselage +item.mp_fuselage_15_solid_soviet_glory.name=Size 15 Solid Fuel Fuselage +item.mp_fuselage_15_solid_soviet_stank.name=Size 15 Solid Fuel Fuselage +item.mp_stability_10_cruise.name=Size 10 Cruise Fins +item.mp_stability_10_flat.name=Size 10 Flat Fins +item.mp_stability_10_space.name=Size 10 Space Fins +item.mp_stability_15_flat.name=Size 15 Flat Fins +item.mp_stability_15_soyuz.name=Size 15 Pointy Fins +item.mp_stability_15_thin.name=Size 15 Thin Fins +item.mp_thruster_10_kerosene.name=Size 10 Liquid Fuel Thruster +item.mp_thruster_10_solid.name=Size 10 Solid Fuel Thruster +item.mp_thruster_10_xenon.name=Size 10 Ion Thruster +item.mp_thruster_15_balefire.name=Size 15 BF Thruster with Nuclear Preheater +item.mp_thruster_15_balefire_large.name=Size 15 BF Thruster with Nuclear Preheater (Heavy Duty Nozzle) +item.mp_thruster_15_balefire_large_rad.name=Size 15 BF Thruster with Nuclear Preheater (Heavy Duty Nozzle) +item.mp_thruster_15_balefire_short.name=Size 15 BF Thruster with Nuclear Preheater (Shortened) +item.mp_thruster_15_hydrogen.name=Size 15 Hydrogen Thruster +item.mp_thruster_15_hydrogen_dual.name=Size 15 Hydrogen Twin Thrusters +item.mp_thruster_15_kerosene.name=Size 15 Liquid Fuel Thruster +item.mp_thruster_15_kerosene_dual.name=Size 15 Liquid Fuel Twin Thrusters +item.mp_thruster_15_kerosene_triple.name=Size 15 Liquid Fuel Triple Thrusters +item.mp_thruster_15_solid.name=Size 15 Solid Fuel Thruster +item.mp_thruster_15_solid_hexdecuple.name=Size 15 Solid Fuel Hexdecuple Thrusters +item.mp_thruster_20_kerosene.name=Size 20 Liquid Fuel Thruster +item.mp_thruster_20_kerosene_dual.name=Size 20 Liquid Fuel Twin Thrusters +item.mp_thruster_20_kerosene_triple.name=Size 20 Liquid Fuel Triple Thrusters +item.mp_thruster_20_solid.name=Size 20 Solid Fuel Thruster +item.mp_thruster_20_solid_multi.name=Size 20 Solid Fuel 30-Fold Thrusters +item.mp_thruster_20_solid_multier.name=Size 20 Solid Fuel 47-Fold Thrusters +item.mp_warhead_10_buster.name=Size 10 Bunker Buster Warhead +item.mp_warhead_10_cloud.name=Size 10 Pink Cloud Warhead +item.mp_warhead_10_he.name=Size 10 HE Warhead +item.mp_warhead_10_incendiary.name=Size 10 Incendiary Warhead +item.mp_warhead_10_nuclear.name=Size 10 Micro Nuclear Warhead +item.mp_warhead_10_nuclear_large.name=Size 10 Nuclear Warhead +item.mp_warhead_10_taint.name=Size 10 Tainted Warhead +item.mp_warhead_15_balefire.name=Size 15 BF Warhead +item.mp_warhead_15_boxcar.name=Size 15 Boxcar? +item.mp_warhead_15_he.name=Size 15 HE Warhead +item.mp_warhead_15_incendiary.name=Size 15 Incendiary Warhead +item.mp_warhead_15_n2.name=Size 15 N² Mine +item.mp_warhead_15_nuclear.name=Size 15 Nuclear Warhead +item.mp_warhead_15_nuclear_mimi.name=Size 15 Mimi-chan's Head +item.mp_warhead_15_nuclear_shark.name=Size 15 Nuclear Warhead +item.mp_warhead_15_turbine.name=Size 15 Jet Engine +item.mucho_mango.name=AriZona Mucho Mango +item.multi_kit.name=Multi Purpose Bomb Kit +item.multitool_beam.name=Power Fist (Zapper) +item.multitool_decon.name=Power Fist (Decontaminator) +item.multitool_dig.name=Power Fist (Digging Claw) +item.multitool_ext.name=Power Fist (Ore Extractor) +item.multitool_hit.name=Power Fist (Fist) +item.multitool_joule.name=Power Fist (Giga Joule) +item.multitool_mega.name=Power Fist (Super Punch) +item.multitool_miner.name=Power Fist (Extracting Mining Laser) +item.multitool_silk.name=Power Fist (Silk Touch Claw) +item.multitool_sky.name=Power Fist (Crack the Sky) +item.mysteryshovel.name=Brittle Spade +item.n2_charge.name=Duży Ładunek Wybuchowy +item.neutrino_lens.name=Soczewka Neutrinowa +item.neutron_reflector.name=Neutron Reflector +item.night_vision.name=Night Vision Goggles +item.night_vision.description.item=Grants you night vision (requires full electric set) +item.night_vision.description.in_armor=%s (grants night vision) +item.niter.name=Saletra +item.no9.name=Mining Helmet +item.nossy_hat.name=Fabulous Hat +item.nothing.name=Nic +item.nuclear_waste.name=Odpad Promieniotwórczy +item.nuclear_waste_pearl.name=Nuclear Waste Pearl +item.nuclear_waste_tiny.name=Tiny Pile of Nuclear Waste +item.nuclear_waste_long.name=Long-Lived Nuclear Waste +item.nuclear_waste_long_tiny.name=Tiny Pile of Long-Lived Nuclear Waste +item.nuclear_waste_long_depleted.name=Decayed Long-Lived Nuclear Waste +item.nuclear_waste_long_depleted_tiny.name=Tiny Pile of Decayed Long-Lived Nuclear Waste +item.nuclear_waste_short.name=Short-Lived Nuclear Waste +item.nuclear_waste_short_tiny.name=Tiny Pile of Short-Lived Nuclear Waste +item.nuclear_waste_short_depleted.name=Decayed Short-Lived Nuclear Waste +item.nuclear_waste_short_depleted_tiny.name=Tiny Pile of Decayed Short-Lived Nuclear Waste +item.nuclear_waste_vitrified.name=Vitrified Nuclear Waste +item.nuclear_waste_vitrified_tiny.name=Tiny Pile of Vitrified Nuclear Waste +item.nugget.name=Chicken Nugget +item.nugget_actinium.name=Actinium-227 Nugget +item.nugget_am_mix.name=Reactor Grade Americium Nugget +item.nugget_am241.name=Americium-241 Nugget +item.nugget_am242.name=Americium-242 Nugget +item.nugget_americium_fuel.name=Americium Fuel Nugget +item.nugget_arsenic.name=Arsenic Nugget +item.nugget_au198.name=Gold-198 Nugget +item.nugget_australium.name=Australium Nugget +item.nugget_australium_greater.name=Greater Australium Nugget +item.nugget_australium_lesser.name=Lesser Australium Nugget +item.nugget_beryllium.name=Beryllium Nugget +item.nugget_bismuth.name=Bismuth Nugget +item.nugget_co60.name=Cobalt-60 Nugget +item.nugget_cobalt.name=Cobalt Nugget +item.nugget_daffergon.name=Daffergon Nugget +item.nugget_desh.name=Desh Nugget +item.nugget_dineutronium.name=Dineutronium Nugget +item.nugget_euphemium.name=Euphemium Nugget +item.nugget_euphemium.desc=A small piece of a pink metal.$It's properties are still unknown,$DEAL WITH IT carefully. +item.nugget_gh336.name=Ghiorsium-336 Nugget +item.nugget_gh336.desc=Seaborgium's colleague. +item.nugget_hes.name=Highly Enriched Schrabidium Fuel Nugget +item.nugget_lead.name=Lead Nugget +item.nugget_les.name=Low Enriched Schrabidium Fuel Nugget +item.nugget_mercury_tiny.name=Tiny Drop of Mercury +item.nugget_mercury.name=Drop of Mercury +item.nugget_mox_fuel.name=Nugget of MOX Fuel +item.nugget_mox_fuel.desc=Moxie says: §lTAX EVASION.§r +item.nugget_neptunium.name=Neptunium Nugget +item.nugget_neptunium_fuel.name=Neptunium Fuel Nugget +item.nugget_osmiridium.name=Osmiridium Nugget +item.nugget_pb209.name=Lead-209 Nugget +item.nugget_plutonium.name=Plutonium Nugget +item.nugget_plutonium_fuel.name=Nugget of Plutonium Fuel +item.nugget_polonium.name=Polonium-210 Nugget +item.nugget_pu_mix.name=Reactor Grade Plutonium Nugget +item.nugget_pu238.name=Plutonium-238 Nugget +item.nugget_pu239.name=Plutonium-239 Nugget +item.nugget_pu240.name=Plutonium-240 Nugget +item.nugget_pu241.name=Plutonium-241 Nugget +item.nugget_ra226.name=Radium-226 Nugget +item.nugget_reiium.name=Reiium Nugget +item.nugget_schrabidium.name=Schrabidium Nugget +item.nugget_schrabidium_fuel.name=Nugget of Schrabidium Fuel +item.nugget_solinium.name=Solinium Nugget +item.nugget_sr90.name=Strontium-90 Nugget +item.nugget_tantalium.name=Tantalium Nugget +item.nugget_tantalium.desc='Tantalum' +item.nugget_tantalium.desc.P11=AKA Tantalum. +item.nugget_technetium.name=Technetium-99 Nugget +item.nugget_th232.name=Thorium-232 Nugget +item.nugget_thorium_fuel.name=Nugget of Thorium Fuel +item.nugget_u233.name=Uranium-233 Nugget +item.nugget_u235.name=Uranium-235 Nugget +item.nugget_u238.name=Uranium-238 Nugget +item.nugget_unobtainium.name=Unobtainium Nugget +item.nugget_uranium.name=Uranium Nugget +item.nugget_uranium_fuel.name=Nugget of Uranium Fuel +item.nugget_verticium.name=Verticium Nugget +item.nugget_weidanium.name=Weidanium Nugget +item.nugget_zirconium.name=Zirconium Splinter +item.nuke_advanced_kit.name=Atomic Science Advanced Kit +item.nuke_commercially_kit.name=Atomic Science Kit for Commercial Uses +item.nuke_electric_kit.name=Electronic Engineer's Kit +item.nuke_starter_kit.name=Atomic Science Starter Kit +item.oil_canola.name=Raw Canola Oil +item.oil_detector.name=Oil Reservoir Detector +item.oil_detector.desc1=Right-click to scan for oil. +item.oil_detector.desc2=Detector will only find larger deposits. +item.oil_detector.bullseye=Oil deposit directly below! +item.oil_detector.detected=Oil detected nearby. +item.oil_detector.noOil=No oil detected. +item.oil_tar.coal.name=Smoła Węglowa +item.oil_tar.crude.name=Smoła Naftowa +item.oil_tar.crack.name=Smoła Skrakowanej Nafty +item.oil_tar.paraffin.name=Wosk Parafinowy +item.oil_tar.wax.name=Chlorinated Petroleum Wax +item.oil_tar.wood.name=Smoła Drewnowa +item.ore.asbestos=Azbest +item.ore.borax=Boraks +item.ore.chlorocalcite=Chlorokalcyt +item.ore.copper=Miedź +item.ore.gold=Złoto +item.ore.iron=Żelazo +item.ore.niobium=Niob +item.ore.titanium=Tytan +item.ore.tungsten=Wolfram +item.ore.thorium=Tor +item.ore.uranium=Uran +item.ore_bedrock.name=%s Kamienia Macierystego +item.ore_byproduct.b_aluminium.name=Crystalline Aluminium Fragment +item.ore_byproduct.b_bismuth.name=Crystalline Bismuth Fragment +item.ore_byproduct.b_calcium.name=Crystalline Calcium Fragment +item.ore_byproduct.b_copper.name=Crystalline Copper Fragment +item.ore_byproduct.b_iron.name=Crystalline Iron Fragment +item.ore_byproduct.b_lead.name=Crystalline Lead Fragment +item.ore_byproduct.b_lithium.name=Crystalline Lithium Fragment +item.ore_byproduct.b_polonium.name=Crystalline Polonium Fragment +item.ore_byproduct.b_radium.name=Crystalline Radium Fragment +item.ore_byproduct.b_silicon.name=Crystalline Silicon Fragment +item.ore_byproduct.b_sulfur.name=Crystalline Sulfur Fragment +item.ore_byproduct.b_technetium.name=Crystalline Technetium Fragment +item.ore_byproduct.b_titanium.name=Crystalline Titanium Fragment +item.ore_byproduct.b_uranium.name=Crystalline Uranium Fragment +item.ore_centrifuged.name=Centrifuged %s Ore +item.ore_cleaned.name=Cleaned %s Ore +item.ore_deepcleaned.name=Deep Cleaned %s Ore +item.ore_enriched.name=Enriched %s Ore +item.ore_nitrated.name=Nitrated %s Ore +item.ore_nitrocrystalline.name=Nitrocrystalline %s Ore +item.ore_purified.name=Purified %s Ore +item.ore_radcleaned.name=Radiation-Cleaned %s Ore +item.ore_seared.name=Seared %s Ore +item.ore_separated.name=Separated %s Ore +item.overfuse.name=Singularity Screwdriver +item.overfuse.desc=Say what? +item.oxy_mask.name=Oxygen Mask +item.paa_boots.name=PaA "good ol' shoes" +item.paa_legs.name=PaA Leg Reinforcements +item.paa_plate.name=PaA Chest Protection Plate +item.padlock.name=Padlock +item.padlock_reinforced.name=Reinforced Padlock +item.padlock_rusty.name=Rusty Padlock +item.padlock_unbreakable.name=Unbreakable Padlock +item.pads_rubber.name=Rubber Pads +item.pads_slime.name=Slime Pads +item.pads_static.name=Static Pads +item.pancake.name=Pancake made from Scrap Metal, Nails and Gem Dust +item.part_beryllium.name=Box of Beryllium Dust +item.part_carbon.name=Box of Carbon Dust +item.part_copper.name=Box of Copper Dust +item.part_generic.piston_electric.name=Electric Piston +item.part_generic.piston_hydraulic.name=Hydraulic Piston +item.part_generic.piston_pneumatic.name=Pneumatic Piston +item.part_lithium.name=Box of Lithium Dust +item.part_plutonium.name=Box of Plutonium Dust +item.particle_aelectron.name=Positron Capsule +item.particle_amat.name=Antimatter Capsule +item.particle_aproton.name=Antiproton Capsule +item.particle_aschrab.name=Antischrabidium Capsule +item.particle_copper.name=Copper Ion Capsule +item.particle_dark.name=Dark Matter Capsule +item.particle_digamma.name=§cThe Digamma Particle§r +item.particle_empty.name=Empty Particle Capsule +item.particle_higgs.name=Higgs Boson Capsule +item.particle_hydrogen.name=Hydrogen Ion Capsule +item.particle_lead.name=Lead Ion Capsule +item.particle_lutece.name=Lutece Quasiparticle +item.particle_muon.name=Muon Capsule +item.particle_sparkticle.name=Sparkticle Capsule +item.particle_strange.name=Strange Quark Capsule +item.particle_tachyon.name=Tachyon Capsule +item.parts_legendary.name=Legendary Parts +item.peas.name=Groch +item.pedestal_steel.name=Stalowy Piedestał +item.pellet_advanced.name=Advanced Watz Performance Improver +item.pellet_antimatter.name=Antimatter Cluster +item.pellet_beryllium.name=Beryllium Moderator Pellet +item.pellet_buckshot.name=Lead Pellets +item.pellet_canister.name=Canister Shot +item.pellet_charged.name=Zjonizowane Cząsteczki +item.pellet_chlorophyte.name=Chlorophyte Rounds +item.pellet_claws.name=Sharp Metal Claws +item.pellet_cluster.name=Explosive Pellets +item.pellet_cluster.desc=Used in multi purpose bombs:$Adds some extra boom! +item.pellet_coal.name=Dense Coal Cluster +item.pellet_coolant.name=Coolant Cluster +item.pellet_flechette.name=Flechettes +item.pellet_gas.name=Poison Gas Cartridge +item.pellet_gas.desc=Used in multi purpose bombs:$*cough cough* Halp pls! +item.pellet_hes.name=HES Watz Pellet +item.pellet_lead.name=Lead Reflector Pellet +item.pellet_les.name=LES Watz Pellet +item.pellet_mercury.name=Mercury Rounds +item.pellet_mes.name=MES Watz Pellet +item.pellet_meteorite.name=Meteorite Rounds +item.pellet_neptunium.name=Neptunium Watz Pellet +item.pellet_rtg.name=Plutonium-238 RTG Pellet +item.pellet_rtg.desc=RTG fuel pellet for infinite energy! (almost) +item.pellet_rtg_actinium.name=Actinium-227 RTG Pellet +item.pellet_rtg_actinium.desc=A glow of blue light and beta rays. +item.pellet_rtg_americium.name=Americium-241 RTG Pellet +item.pellet_rtg_americium.desc=Rare and reliable, good old Americium! +item.pellet_rtg_berkelium.name=Berkelium RTG Pellet +item.pellet_rtg_berkelium.desc= +item.pellet_rtg_cobalt.name=Cobalt-60 RTG Pellet +item.pellet_rtg_cobalt.desc=Not the best as an RTG, but great for gamma radiation! +item.pellet_rtg_depleted.bismuth.name=Decayed Bismuth RTG Pellet +item.pellet_rtg_depleted.lead.name=Decayed Lead RTG Pellet +item.pellet_rtg_depleted.neptunium.name=Decayed Neptunium RTG Pellet +item.pellet_rtg_depleted.mercury.name=Decayed Mercury RTG Pellet +item.pellet_rtg_depleted.nickel.name=Decayed Nickel RTG Pellet +item.pellet_rtg_depleted.zirconium.name=Decayed Zirconium RTG Pellet +item.pellet_rtg_lead.name=Lead-209 RTG Pellet +item.pellet_rtg_lead.desc=Exposure will result in immediate death. +item.pellet_rtg_gold.name=Gold-198 RTG Pellet +item.pellet_rtg_gold.desc=Made from a rare, highly unstable gold isotope. +item.pellet_rtg_polonium.name=Polonium-210 RTG Pellet +item.pellet_rtg_polonium.desc=More powerful RTG pellet, made from finest polonium! +item.pellet_rtg_strontium.name=Strontium-90 RTG Pellet +item.pellet_rtg_strontium.desc=Known to the State of California... +item.pellet_rtg_radium.name=Radium-226 RTG Pellet +item.pellet_rtg_radium.desc=Great starter pellet, sourced from all-natural radium! +item.pellet_rtg_weak.name=Weak Uranium RTG Pellet +item.pellet_rtg_weak.desc=Cheaper and weaker pellet, now with more U238! +item.pellet_schrabidium.name=Pure Schrabidium Watz Pellet +item.photo_panel.name=Photovoltaic Panel +item.pile_rod_boron.name=Chicago Pile Control Rod +item.pile_rod_boron.desc=§9[Neutron Absorber]$§eClick to toggle +item.pile_rod_detector.name=Chicago Pile Control & Detector Rod +item.pile_rod_detector.desc=§9[Neutron Detector/Absorber]$§eUse defuser to increase/decrease neutron limit$§eUse screwdriver w/o sneaking to inspect flux +item.pile_rod_lithium.name=Chicago Pile Lithium Cell +item.pile_rod_lithium.desc=§a[Breedable Fuel]$§eUse hand drill to inspect core +item.pile_rod_plutonium.name=Chicago Pile Plutonium Rod +item.pile_rod_plutonium.desc=§d[Neutron Source] +item.pile_rod_pu239.name=Chicago Pile Bred Uranium Rod +item.pile_rod_pu239.desc=§a[Reactive Fuel]$§eRich in Plutonium-239. +item.pile_rod_source.name=Chicago Pile Ra226Be Neutron Source +item.pile_rod_source.desc=§d[Neutron Source] +item.pile_rod_uranium.name=Chicago Pile Uranium Rod +item.pile_rod_uranium.desc=§a[Reactive Fuel]$§eUse hand drill to take core sample +item.pill_iodine.name=Iodine Pill +item.pill_iodine.desc=Removes negative effects +item.pill_herbal.name=Herbal Paste +item.pill_herbal.desc=Effective treatment against lung disease and mild radiation poisoning$Comes with side effects +item.pill_red.name=Red Pill +item.pin.name=Bobby Pin +item.pin.desc=Standard success rate of picking a regular lock is ~10%%. +item.pipes_steel.name=Steel Pipes +item.pipes_steel.desc=Uncrafting was omitted due to tax evasion. +item.piston_selenium.name=Combustion Engine Piston +item.piston_set_desh.name=Desh Piston Set +item.piston_set_dura.name=High-Speed Steel Piston Set +item.piston_set_starmetal.name=Starmetal Piston Set +item.piston_set_steel.name=Steel Piston Set +item.plan_c.name=Plan C +item.plan_c.desc=Śmiertelny +item.plant_item.mustardwillow.name=Mustard Willow Leaf +item.plant_item.rope.name=Rope +item.plant_item.tobacco.name=Tobacco +item.plate_advanced_alloy.name=Advanced Alloy Plate +item.plate_aluminium.name=Aluminium Plate +item.plate_armor_ajr.name=Iron-Shod Armor Plating +item.plate_armor_dnt.name=DNT Armor Plating +item.plate_armor_fau.name=Fau Armor Plating +item.plate_armor_hev.name=Reactive Armor Plating +item.plate_armor_lunar.name=Lunar Plating +item.plate_armor_titanium.name=Titanium Armor Plate +item.plate_bismuth.name=Bismuth Compound Plate +item.plate_bismuth.desc=Guys, It's Bismuth's alchemical symbol, I swear. +item.plate_cast.name=Cast %s Plate +item.plate_combine_steel.name=CMB Steel Plate +item.plate_copper.name=Copper Plate +item.plate_dalekanium.name=Angry Metal +item.plate_desh.name=Desh Compound Plate +item.plate_dineutronium.name=Dineutronium Compound Plate +item.plate_euphemium.name=Euphemium Compound Plate +item.plate_fuel_mox.name=MOX Plate Fuel +item.plate_fuel_pu238be.name=Pu238Be Plate Fuel +item.plate_fuel_pu239.name=HEP-239 Plate Fuel +item.plate_fuel_ra226be.name=Ra226Be Plate Fuel +item.plate_fuel_sa326.name=HES-326 Plate Fuel +item.plate_fuel_u233.name=HEU-233 Plate Fuel +item.plate_fuel_u235.name=HEU-235 Plate Fuel +item.plate_gold.name=Gold Plate +item.plate_iron.name=Iron Plate +item.plate_kevlar.name=Kevlar-Ceramic Compound +item.plate_lead.name=Lead Plate +item.plate_mixed.name=Mixed Plate +item.plate_paa.name=PaA Alloy Plate +item.plate_polymer.name=Insulator +item.plate_saturnite.name=Saturnite Plate +item.plate_schrabidium.name=Schrabidium Plate +item.plate_steel.name=Steel Plate +item.plate_titanium.name=Titanium Plate +item.polaroid.name=The Polaroid +item.pollution_detector.name=Pollution Detector +item.powder_actinium.name=Actinium Powder +item.powder_actinium_tiny.name=Tiny Pile of Actinium Powder +item.powder_advanced_alloy.name=Advanced Alloy Powder +item.powder_aluminium.name=Aluminium Powder +item.powder_asbestos.name=Asbestos Powder +item.powder_asbestos.desc=§o\"Sniffffffff- MHHHHHHMHHHHHHHHH\"§r +item.powder_astatine.name=Astatine Powder +item.powder_at209.name=Astatine-209 Powder +item.powder_au198.name=Gold-198 Powder +item.powder_australium.name=Australium Powder +item.powder_bakelite.name=Bakelite Powder +item.powder_balefire.name=Thermonuclear Ashes +item.powder_beryllium.name=Beryllium Powder +item.powder_bismuth.name=Bismuth Powder +item.powder_borax.name=Boraks +item.powder_boron.name=Boron Powder +item.powder_boron_tiny.name=Tiny Pile of Boron Powder +item.powder_bromine.name=Bromine Powder +item.powder_cadmium.name=Cadmium Powder +item.powder_caesium.name=Caesium Powder +item.powder_calcium.name=Calcium Powder +item.powder_cerium.name=Cerium Powder +item.powder_cerium_tiny.name=Tiny Pile of Cerium Powder +item.powder_chlorocalcite.name=Chlorocalcite +item.powder_chlorophyte.name=Chlorophyte Powder +item.powder_cloud.name=Cloud Residue +item.powder_co60.name=Cobalt-60 Powder +item.powder_coal.name=Coal Powder +item.powder_coal_tiny.name=Tiny Pile of Coal Powder +item.powder_cobalt.name=Cobalt Powder +item.powder_cobalt_tiny.name=Tiny Pile of Cobalt Powder +item.powder_coltan.name=Purified Tantalite +item.powder_coltan_ore.name=Crushed Coltan +item.powder_combine_steel.name=CMB Steel Powder +item.powder_copper.name=Copper Powder +item.powder_cs137.name=Caesium-137 Powder +item.powder_cs137_tiny.name=Tiny Pile of Caesium-137 Powder +item.powder_daffergon.name=Daffergon Powder +item.powder_desh.name=Desh Powder +item.powder_desh_mix.name=Desh Blend +item.powder_desh_ready.name=DeshReady™ Blend +item.powder_diamond.name=Diamond Powder +item.powder_dineutronium.name=Dineutronium Powder +item.powder_dura_steel.name=High-Speed Steel Powder +item.powder_emerald.name=Emerald Powder +item.powder_euphemium.name=Euphemium Powder +item.powder_euphemium.desc=Pulverized pink.$Tastes like strawberries. +item.powder_fertilizer.name=Industrial Fertilizer +item.powder_fire.name=Red Phosphorus +item.powder_fire.desc=Used in multi purpose bombs:$Incendiary bombs are fun! +item.powder_flux.name=Flux +item.powder_gold.name=Gold Powder +item.powder_i131.name=Iodine-131 Powder +item.powder_i131_tiny.name=Tiny Pile of Iodine-131 Powder +item.powder_ice.name=Cryo Powder +item.powder_impure_osmiridium.name=Impure Osmiridium Powder +item.powder_iodine.name=Iodine Powder +item.powder_iron.name=Iron Powder +item.powder_lanthanium.name=Lanthanium Powder +item.powder_lanthanium_tiny.name=Tiny Pile of Lanthanium Powder +item.powder_lapis.name=Lapis Lazuli Powder +item.powder_lead.name=Lead Powder +item.powder_lignite.name=Lignite Powder +item.powder_lithium.name=Lithium Powder +item.powder_lithium_tiny.name=Tiny Pile of Lithium Powder +item.powder_magic.name=Pulverized Enchantment +item.powder_magnetized_tungsten.name=Magnetized Tungsten Powder +item.powder_meteorite.name=Meteorite Powder +item.powder_meteorite_tiny.name=Tiny Pile of Meteorite Powder +item.powder_neodymium.name=Neodymium Powder +item.powder_neodymium_tiny.name=Tiny Pile of Neodymium Powder +item.powder_neptunium.name=Neptunium Powder +item.powder_niobium.name=Niobium Powder +item.powder_niobium_tiny.name=Tiny Pile of Niobium Powder +item.powder_nitan_mix.name=Nitanium Blend +item.powder_paleogenite.name=Paleogenite Powder +item.powder_paleogenite_tiny.name=Tiny Pile of Paleogenite Powder +item.powder_plutonium.name=Plutonium Powder +item.powder_poison.name=Poison Powder +item.powder_poison.desc=Used in multi purpose bombs:$Warning: Poisonous! +item.powder_polonium.name=Polonium-210 Powder +item.powder_polymer.name=Polymer Powder +item.powder_power.name=Energy Powder +item.powder_quartz.name=Quartz Powder +item.powder_ra226.name=Radium-226 Powder +item.powder_red_copper.name=Red Copper Powder +item.powder_reiium.name=Reiium Powder +item.powder_sawdust.name=Sawdust +item.powder_schrabidate.name=Ferric Schrabidate Powder +item.powder_schrabidium.name=Schrabidium Powder +item.powder_semtex_mix.name=Semtex Blend +item.powder_spark_mix.name=Spark Blend +item.powder_sr90.name=Strontium-90 Powder +item.powder_sr90_tiny.name=Tiny Pile of Strontium-90 Powder +item.powder_steel.name=Steel Powder +item.powder_steel_tiny.name=Tiny Pile of Steel Powder +item.powder_strontium.name=Strontium Powder +item.powder_tantalium.name=Tantalium Powder +item.powder_tantalium.desc='Tantalum' +item.powder_tantalium.desc.P11=AKA Tantalum. +item.powder_tcalloy.name=Technetium Steel Powder +item.powder_tektite.name=Tektite Powder +item.powder_tennessine.name=Tennessine Powder +item.powder_thermite.name=Thermite +item.powder_thorium.name=Thorium Powder +item.powder_titanium.name=Titanium Powder +item.powder_tungsten.name=Tungsten Powder +item.powder_unobtainium.name=Unobtainium Powder +item.powder_uranium.name=Uranium Powder +item.powder_verticium.name=Verticium Powder +item.powder_weidanium.name=Weidanium Powder +item.powder_xe135.name=Xenon-135 Powder +item.powder_xe135_tiny.name=Tiny Pile of Xenon-135 Powder +item.powder_yellowcake.name=Yellowcake +item.powder_zirconium.name=Zirconium Powder +item.power_net_tool.name=Cable Network Analysis Tool +item.primer_357.name=.357 Magnum Primer (x24) +item.primer_44.name=.44 Magnum Primer (x24) +item.primer_50.name=Large Caliber Primer (x12) +item.primer_9.name=Small Caliber Primer (x32) +item.primer_buckshot.name=Buckshot Primer (x12) +item.protection_charm.name=Charm of Protection +item.prototype_kit.name=Prototype Kit +item.pudding.name=Budyń +item.quartz_plutonium.name=Plutonic Quartz +item.radaway.name=RadAway +item.radaway_flush.name=Elite RadAway +item.radaway_strong.name=Strong RadAway +item.radx.name=Rad-X +item.radx.desc=Increases radiation resistance by 0.2 (37%%) for 3 minutes +item.rag.name=Tkanina +item.rag_damp.name=Zmoczona Tkanina +item.rag_piss.name=Piss-Soaked Rag +item.rbmk_fuel_balefire.name=Balefire RBMK Fuel Rod +item.rbmk_fuel_balefire_gold.name=Flashgold RBMK Fuel Rod +item.rbmk_fuel_drx.name=§cDigamma RBMK Fuel Rod§r +item.rbmk_fuel_empty.name=Empty RBMK Fuel Rod +item.rbmk_fuel_flashlead.name=Flashlead RBMK Fuel Rod +item.rbmk_fuel_hea241.name=HEA-241 RBMK Fuel Rod +item.rbmk_fuel_hea242.name=HEA-242 RBMK Fuel Rod +item.rbmk_fuel_heaus.name=HEAus RBMK Fuel Rod +item.rbmk_fuel_hen.name=HEN RBMK Fuel Rod +item.rbmk_fuel_hes.name=HES RBMK Fuel Rod +item.rbmk_fuel_hep.name=HEP-239 RBMK Fuel Rod +item.rbmk_fuel_hep241.name=HEP-241 RBMK Fuel Rod +item.rbmk_fuel_heu233.name=HEU-233 RBMK Fuel Rod +item.rbmk_fuel_heu235.name=HEU-235 RBMK Fuel Rod +item.rbmk_fuel_lea.name=LEA RBMK Fuel Rod +item.rbmk_fuel_leaus.name=LEAus RBMK Fuel Rod +item.rbmk_fuel_lep.name=LEP-239 RBMK Fuel Rod +item.rbmk_fuel_les.name=LES RBMK Fuel Rod +item.rbmk_fuel_mea.name=MEA RBMK Fuel Rod +item.rbmk_fuel_men.name=MEN RBMK Fuel Rod +item.rbmk_fuel_mep.name=MEP-239 RBMK Fuel Rod +item.rbmk_fuel_mes.name=MES RBMK Fuel Rod +item.rbmk_fuel_meu.name=MEU RBMK Fuel Rod +item.rbmk_fuel_mox.name=MOX RBMK Fuel Rod +item.rbmk_fuel_po210be.name=Po210Be RBMK Neutron Source +item.rbmk_fuel_pu238be.name=Pu238Be RBMK Neutron Source +item.rbmk_fuel_ra226be.name=Ra226Be RBMK Neutron Source +item.rbmk_fuel_thmeu.name=ThMEU RBMK Fuel Rod +item.rbmk_fuel_ueu.name=NU RBMK Fuel Rod +item.rbmk_fuel_zfb_am_mix.name=Fuel Grade Americium RBMK ZFB Rod +item.rbmk_fuel_zfb_bismuth.name=Bismuth RBMK ZFB Rod +item.rbmk_fuel_zfb_pu241.name=Pu-241 RBMK ZFB Rod +item.rbmk_lid.name=RBMK Cover Panel +item.rbmk_lid_glass.name=RBMK Glass Cover Panel +item.rbmk_pellet_balefire.name=Balefire Fuel Pellet +item.rbmk_pellet_balefire_gold.name=Flashgold Fuel Pellet +item.rbmk_pellet_drx.name=§cDigamma Fuel Pellet§r +item.rbmk_pellet_flashlead.name=Flashlead Fuel Pellet +item.rbmk_pellet_hea241.name=HEA-241 Fuel Pellet +item.rbmk_pellet_hea242.name=HEA-242 Fuel Pellet +item.rbmk_pellet_heaus.name=HEAus Fuel Pellet +item.rbmk_pellet_hen.name=HEN Fuel Pellet +item.rbmk_pellet_hep239.name=HEP-239 Fuel Pellet +item.rbmk_pellet_hep241.name=HEP-241 Fuel Pellet +item.rbmk_pellet_heu233.name=HEU-233 Fuel Pellet +item.rbmk_pellet_heu235.name=HEU-235 Fuel Pellet +item.rbmk_pellet_hes.name=HES Fuel Pellet +item.rbmk_pellet_lea.name=LEA Fuel Pellet +item.rbmk_pellet_leaus.name=LEAus Fuel Pellet +item.rbmk_pellet_lep.name=LEP Fuel Pellet +item.rbmk_pellet_les.name=LES Fuel Pellet +item.rbmk_pellet_mea.name=MEA Fuel Pellet +item.rbmk_pellet_men.name=MEN Fuel Pellet +item.rbmk_pellet_mep.name=MEP Fuel Pellet +item.rbmk_pellet_mes.name=MES Fuel Pellet +item.rbmk_pellet_meu.name=MEU Fuel Pellet +item.rbmk_pellet_mox.name=MOX Fuel Pellet +item.rbmk_pellet_po210be.name=Po210Be Neutron Source Pellet +item.rbmk_pellet_pu238be.name=Pu238Be Neutron Source Pellet +item.rbmk_pellet_ra226be.name=Ra226Be Neutron Source Pellet +item.rbmk_pellet_thmeu.name=ThMEU Fuel Pellet +item.rbmk_pellet_ueu.name=NU Fuel Pellet +item.rbmk_pellet_zfb_am_mix.name=Fuel Grade Americium ZFB Pellet +item.rbmk_pellet_zfb_bismuth.name=Bismuth ZFB Pellet +item.rbmk_pellet_zfb_pu241.name=Pu-241 ZFB Pellet +item.rbmk_tool.name=RBMK Console Linking Device +item.rbmk_tool.desc=Sneak and right-click RBMK to save the position,$sneak and right-click console to link! +item.rbmk_tool.linked=Position set! +item.rbmk_tool.set=RBMK linked! +item.reacher.name=Tungsten Reacher +item.reactor_core.name=Breeding Reactor Core +item.reactor_sensor.name=Reactor Remote Sensor +item.record.glass.desc=? ? ? +item.record.lc.desc=Valve - Diabolic Adrenaline Guitar/Lambda Core +item.record.ss.desc=Valve - Sector Sweep +item.record.vc.desc=Valve - Vortal Combat +item.redcoil_capacitor.name=Redcoil Capacitor +item.redstone_depleted.name=Desaturated Redstone Dust +item.redstone_sword.name=Redstone Sword +item.reer_graar.name=The Reer Graar +item.remote.name=Broken Remote +item.ring_pull.name=Ring Pull +item.ring_starmetal.name=§9Starmetal Ring§r +item.robes_boots.name=Field Boots +item.robes_helmet.name=Casual Hoodie +item.robes_legs.name=Casual Pants +item.robes_plate.name=Casual Sweater +item.rocket_fuel.name=Solid Fuel (Rocket Propellant) +item.rod_empty.name=Empty Rod +item.rod.lithium.name=Lithium Rod +item.rod.tritium.name=Tritium Rod +item.rod.co.name=Cobalt Rod +item.rod.co60.name=Cobalt-60 Rod +item.rod.ra226.name=Radium-226 Rod +item.rod.ac227.name=Actinium-227 Rod +item.rod.th232.name=Thorium-232 Rod +item.rod.thf.name=Thorium Fuel Rod +item.rod.u235.name=Uranium-235 Rod +item.rod.np237.name=Neptunium-237 Rod +item.rod.u238.name=Uranium-238 Rod +item.rod.pu238.name=Plutonium-238 Rod +item.rod.pu239.name=Plutonium-239 Rod +item.rod.rgp.name=Reactor-Grade Plutonium Rod +item.rod.waste.name=Nuclear Waste Rod +item.rod.lead.name=Lead Rod +item.rod.uranium.name=Uranium Rod +item.rod_dual_empty.name=Empty Dual Rod +item.rod_dual.lithium.name=Lithium Dual Rod +item.rod_dual.tritium.name=Tritium Dual Rod +item.rod_dual.co.name=Cobalt Dual Rod +item.rod_dual.co60.name=Cobalt-60 Dual Rod +item.rod_dual.ra226.name=Radium-226 Dual Rod +item.rod_dual.ac227.name=Actinium-227 Dual Rod +item.rod_dual.th232.name=Thorium-232 Dual Rod +item.rod_dual.thf.name=Thorium Fuel Dual Rod +item.rod_dual.u235.name=Uranium-235 Dual Rod +item.rod_dual.np237.name=Neptunium-237 Dual Rod +item.rod_dual.u238.name=Uranium-238 Dual Rod +item.rod_dual.pu238.name=Plutonium-238 Dual Rod +item.rod_dual.pu239.name=Plutonium-239 Dual Rod +item.rod_dual.rgp.name=Reactor-Grade Plutonium Dual Rod +item.rod_dual.waste.name=Nuclear Waste Dual Rod +item.rod_dual.lead.name=Lead Dual Rod +item.rod_dual.uranium.name=Uranium Dual Rod +item.rod_quad_empty.name=Empty Quad Rod +item.rod_quad.lithium.name=Lithium Quad Rod +item.rod_quad.tritium.name=Tritium Quad Rod +item.rod_quad.co.name=Cobalt Quad Rod +item.rod_quad.co60.name=Cobalt-60 Quad Rod +item.rod_quad.ra226.name=Radium-226 Quad Rod +item.rod_quad.ac227.name=Actinium-227 Quad Rod +item.rod_quad.th232.name=Thorium-232 Quad Rod +item.rod_quad.thf.name=Thorium Fuel Quad Rod +item.rod_quad.u235.name=Uranium-235 Quad Rod +item.rod_quad.np237.name=Neptunium-237 Quad Rod +item.rod_quad.u238.name=Uranium-238 Quad Rod +item.rod_quad.pu238.name=Plutonium-238 Quad Rod +item.rod_quad.pu239.name=Plutonium-239 Quad Rod +item.rod_quad.rgp.name=Reactor-Grade Plutonium Quad Rod +item.rod_quad.waste.name=Nuclear Waste Quad Rod +item.rod_quad.lead.name=Lead Quad Rod +item.rod_quad.uranium.name=Uranium Quad Rod +item.rod_australium.name=Australium Rod +item.rod_balefire.name=Balefire Rod +item.rod_balefire_blazing.name=Blazing Balefire Rod +item.rod_coolant.name=Coolant Cell +item.rod_daffergon.name=Daffergon Rod +item.rod_dual_balefire.name=Balefire Dual Rod +item.rod_dual_balefire_blazing.name=Blazing Balefire Dual Rod +item.rod_dual_coolant.name=Dual Coolant Cell +item.rod_dual_lead.name=Lead Dual Rod +item.rod_dual_lithium.name=Dual Lithium Rod +item.rod_dual_mox_fuel.name=MOX Dual Fuel Rod +item.rod_dual_mox_fuel_depleted.name=Depleted MOX Dual Fuel Rod +item.rod_dual_neptunium.name=Neptunium Dual Rod +item.rod_dual_plutonium.name=Plutonium Dual Rod +item.rod_dual_plutonium_fuel.name=Plutonium Dual Fuel Rod +item.rod_dual_plutonium_fuel_depleted.name=Depleted Plutonium Dual Fuel Rod +item.rod_dual_polonium.name=Polonium-210 Dual Rod +item.rod_dual_pu238.name=Plutonium-238 Dual Rod +item.rod_dual_pu239.name=Plutonium-239 Dual Rod +item.rod_dual_pu240.name=Plutonium-240 Dual Rod +item.rod_dual_schrabidium.name=Schrabidium-326 Dual Rod +item.rod_dual_schrabidium_fuel.name=Schrabidium Dual Fuel Rod +item.rod_dual_schrabidium_fuel_depleted.name=Depleted Schrabidium Dual Fuel Rod +item.rod_dual_solinium.name=Schrabidium-327 Dual Rod +item.rod_dual_th232.name=Thorium-232 Dual Rod +item.rod_dual_thorium_fuel.name=Thorium Dual Fuel Rod +item.rod_dual_thorium_fuel_depleted.name=Depleted Thorium Dual Fuel Rod +item.rod_dual_tritium.name=Dual Tritium Cell +item.rod_dual_u233.name=Uranium-233 Dual Rod +item.rod_dual_u235.name=Uranium-235 Dual Rod +item.rod_dual_u238.name=Uranium-238 Dual Rod +item.rod_dual_uranium.name=Uranium Dual Rod +item.rod_dual_uranium_fuel.name=Uranium Dual Fuel Rod +item.rod_dual_uranium_fuel_depleted.name=Depleted Uranium Dual Fuel Rod +item.rod_dual_waste.name=Nuclear Waste Dual Rod +item.rod_dual_water.name=Dual Water Cell +item.rod_euphemium.name=Euphemium Rod +item.rod_lead.name=Lead Rod +item.rod_lithium.name=Lithium Rod +item.rod_mox_fuel.name=MOX Fuel Rod +item.rod_mox_fuel_depleted.name=Depleted MOX Fuel Rod +item.rod_neptunium.name=Neptunium Rod +item.rod_of_discord.name=Rod of Discord +item.rod_plutonium.name=Plutonium Rod +item.rod_plutonium_fuel.name=Plutonium Fuel Rod +item.rod_plutonium_fuel_depleted.name=Depleted Plutonium Fuel Rod +item.rod_polonium.name=Polonium-210 Rod +item.rod_pu238.name=Plutonium-238 Rod +item.rod_pu239.name=Plutonium-239 Rod +item.rod_pu240.name=Plutonium-240 Rod +item.rod_quad_balefire.name=Balefire Quad Rod +item.rod_quad_balefire_blazing.name=Blazing Balefire Quad Rod +item.rod_quad_coolant.name=Quad Coolant Cell +item.rod_quad_euphemium.name=Burned Out Quad Schrabidium Rod +item.rod_quad_lead.name=Lead Quad Rod +item.rod_quad_lithium.name=Quad Lithium Rod +item.rod_quad_mox_fuel.name=MOX Quad Fuel Rod +item.rod_quad_mox_fuel_depleted.name=Depleted MOX Quad Fuel Rod +item.rod_quad_neptunium.name=Neptunium Quad Rod +item.rod_quad_plutonium.name=Plutonium Quad Rod +item.rod_quad_plutonium_fuel.name=Plutonium Quad Fuel Rod +item.rod_quad_plutonium_fuel_depleted.name=Depleted Plutonium Quad Fuel Rod +item.rod_quad_polonium.name=Polonium-210 Quad Rod +item.rod_quad_pu238.name=Plutonium-238 Quad Rod +item.rod_quad_pu239.name=Plutonium-239 Quad Rod +item.rod_quad_pu240.name=Plutonium-240 Quad Rod +item.rod_quad_schrabidium.name=Schrabidium-326 Quad Rod +item.rod_quad_schrabidium_fuel.name=Schrabidium Quad Fuel Rod +item.rod_quad_schrabidium_fuel_depleted.name=Depleted Schrabidium Quad Fuel Rod +item.rod_quad_solinium.name=Schrabidium-327 Quad Rod +item.rod_quad_th232.name=Thorium-232 Quad Rod +item.rod_quad_thorium_fuel.name=Thorium Quad Fuel Rod +item.rod_quad_thorium_fuel_depleted.name=Depleted Thorium Quad Fuel Rod +item.rod_quad_tritium.name=Quad Tritium Cell +item.rod_quad_u233.name=Uranium-233 Quad Rod +item.rod_quad_u235.name=Uranium-235 Quad Rod +item.rod_quad_u238.name=Uranium-238 Quad Rod +item.rod_quad_uranium.name=Uranium Quad Rod +item.rod_quad_uranium_fuel.name=Uranium Quad Fuel Rod +item.rod_quad_uranium_fuel_depleted.name=Depleted Uranium Quad Fuel Rod +item.rod_quad_waste.name=Nuclear Waste Quad Rod +item.rod_quad_water.name=Quad Water Cell +item.rod_reiium.name=Reiium Rod +item.rod_schrabidium.name=Schrabidium-326 Rod +item.rod_schrabidium_fuel.name=Schrabidium Fuel Rod +item.rod_schrabidium_fuel_depleted.name=Depleted Schrabidium Fuel Rod +item.rod_solinium.name=Schrabidium-327 Rod +item.rod_th232.name=Thorium-232 Rod +item.rod_thorium_fuel.name=Thorium Fuel Rod +item.rod_thorium_fuel_depleted.name=Depleted Thorium Fuel Rod +item.rod_tritium.name=Tritium Cell +item.rod_u233.name=Uranium-233 Rod +item.rod_u235.name=Uranium-235 Rod +item.rod_u238.name=Uranium-238 Rod +item.rod_unobtainium.name=Unobtainium Rod +item.rod_uranium.name=Uranium Rod +item.rod_uranium_fuel.name=Uranium Fuel Rod +item.rod_uranium_fuel_depleted.name=Depleted Uranium Fuel Rod +item.rod_verticium.name=Verticium Rod +item.rod_waste.name=Nuclear Waste Rod +item.rod_water.name=Water Cell +item.rod_weidanium.name=Weidanium Rod +item.rod_zirnox_empty.name=Empty ZIRNOX Rod +item.rod_zirnox_natural_uranium_fuel.name=ZIRNOX Natural Uranium Fuel Rod +item.rod_zirnox_uranium_fuel.name=ZIRNOX Uranium Fuel Rod +item.rod_zirnox_th232.name=ZIRNOX Thorium-232 Rod +item.rod_zirnox_thorium_fuel.name=ZIRNOX Thorium Fuel Rod +item.rod_zirnox_mox_fuel.name=ZIRNOX MOX Fuel Rod +item.rod_zirnox_plutonium_fuel.name=ZIRNOX Plutonium Fuel Rod +item.rod_zirnox_u233_fuel.name=ZIRNOX Uranium-233 Fuel Rod +item.rod_zirnox_u235_fuel.name=ZIRNOX Uranium-235 Fuel Rod +item.rod_zirnox_les_fuel.name=ZIRNOX LES Fuel Rod +item.rod_zirnox_lithium.name=ZIRNOX Lithium Rod +item.rod_zirnox_tritium.name=ZIRNOX Tritium Rod +item.rod_zirnox_zfb_mox.name=ZIRNOX ZFB MOX Fuel Rod +item.rod_zirnox_natural_uranium_fuel_depleted.name=Depleted ZIRNOX Natural Uranium Fuel Rod +item.rod_zirnox_uranium_fuel_depleted.name= Depleted ZIRNOX Uranium Fuel Rod +item.rod_zirnox_thorium_fuel_depleted.name= Depleted ZIRNOX Thorium Fuel Rod +item.rod_zirnox_mox_fuel_depleted.name=Depleted ZIRNOX MOX Fuel Rod +item.rod_zirnox_plutonium_fuel_depleted.name=Depleted ZIRNOX Plutonium Fuel Rod +item.rod_zirnox_u233_fuel_depleted.name=Depleted ZIRNOX Uranium-233 Fuel Rod +item.rod_zirnox_u235_fuel_depleted.name=Depleted ZIRNOX Uranium-235 Fuel Rod +item.rod_zirnox_les_fuel_depleted.name=Depleted ZIRNOX LES Fuel Rod +item.rod_zirnox_zfb_mox_depleted.name=Depleted ZIRNOX ZFB MOX Fuel Rod +item.rotor_steel.name=Large Steel Rotor +item.rpa_boots.name=Remnants Power Armor Boots +item.rpa_helmet.name=Remnants Power Armor Helmet +item.rpa_legs.name=Remnants Power Armor Leggings +item.rpa_plate.name=Remnants Power Armor Chestplate +item.rtg_unit.name=Jednostka Radiotermiczna +item.rubber_gloves.name=Thick Rubber Gloves +item.rune_blank.name=Blank Catalyst Matrix +item.rune_dagaz.name=Balanced Catalyst Matrix +item.rune_hagalaz.name=Rough Catalyst Matrix +item.rune_isa.name=Cool Catalyst Matrix +item.rune_jera.name=Multiplicative Catalyst Matrix +item.rune_thurisaz.name=Additive Catalyst Matrix +item.safety_fuse.name=Safety Fuse +item.sat_base.name=Satellite Base +item.sat_chip.name=Satellite ID-Chip +item.sat_coord.name=Satellite Designator +item.sat_designator.name=Satellite Laser Designator +item.sat_foeq.name=PEAF - Mk.I FOEQ Duna Probe with experimental Nuclear Propulsion +item.sat_gerald.name=Gerald The Construction Android +item.sat_head_laser.name=Death Ray +item.sat_head_mapper.name=High-Gain Optical Camera +item.sat_head_radar.name=Radar Dish +item.sat_head_resonator.name=Xenium Resonator +item.sat_head_scanner.name=M700 Survey Scanner +item.sat_interface.name=Satellite Control Interface +item.sat_laser.name=Orbital Death Ray +item.sat_lunar_miner.name=Lunar Mining Ship +item.sat_mapper.name=Surface Mapping Satellite +item.sat_miner.name=Asteroid Mining Ship +item.sat_radar.name=Radar Survey Satellite +item.sat_resonator.name=Xenium Resonator Satellite +item.sat_scanner.name=Satellite with Depth-Resource Scanning Module +item.sawblade.name=Sawblade +item.schnitzel_vegan.name=Vegan Schnitzel +item.schrabidium_axe.name=Schrabidium Axe +item.schrabidium_boots.name=Schrabidium Boots +item.schrabidium_hammer.name=Schrabidium Hammer +item.schrabidium_helmet.name=Schrabidium Helmet +item.schrabidium_hoe.name=Schrabidium Hoe +item.schrabidium_legs.name=Schrabidium Leggings +item.schrabidium_pickaxe.name=Schrabidium Pickaxe +item.schrabidium_plate.name=Schrabidium Chestplate +item.schrabidium_shovel.name=Schrabidium Shovel +item.schrabidium_sword.name=Schrabidium Sword +item.scrap.name=Scrap +item.scrap_nuclear.name=Radioactive Scraps +item.scrap_oil.name=Oily Scraps +item.scrap_plastic.name=Plastic Scraps +item.scraps.name=Foundry Scraps +item.screwdriver.name=Screwdriver +item.screwdriver.desc=Could be used instead of a fuse... +item.screwdriver_desh.name=Desh Screwdriver +item.scrumpy.name=Bottle of Scrumpy +item.security_boots.name=Security Boots +item.security_helmet.name=Security Helmet +item.security_legs.name=Security Leggings +item.security_plate.name=Security Chestplate +item.seg_10.name=Size 10 Connector +item.seg_15.name=Size 15 Connector +item.seg_20.name=Size 20 Connector +item.serum.name=Serum +item.servo_set.name=Servo Set +item.servo_set_desh.name=Desh Servo Set +item.shackles.name=Shackles +item.shimmer_axe.name=Shimmer Axe +item.shimmer_axe_head.name=Heavy Axe Head +item.shimmer_handle.name=Reinforced Polymer Handle +item.shimmer_head.name=Heavy Hammer Head +item.shimmer_sledge.name=Shimmer Sledge +item.singularity.name=Singularity +item.singularity_counter_resonant.name=Contained Counter-Resonant Singularity +item.singularity_micro.name=Micro Singularity +item.singularity_spark.name=Spark Singularity +item.singularity_super_heated.name=Superheated Resonating Singularity +item.siox.name=SiOX Cancer Medication +item.siox.desc=Reverses mesothelioma with the power of Asbestos! +item.siren_track.name=Siren Track +item.sliding_blast_door_skin.0.name=Sliding Blast Door Skin: Default +item.sliding_blast_door_skin.1.name=Sliding Blast Door Skin: Variant 1 +item.sliding_blast_door_skin.2.name=Sliding Blast Door Skin: Variant 2 +item.smashing_hammer.name=Smashing Hammer +item.solid_fuel.name=Solid Fuel +item.solid_fuel_bf.name=Solid Fuel (Balefire) +item.solid_fuel_presto.name=Presto Log +item.solid_fuel_presto_bf.name=Presto Log (Balefire) +item.solid_fuel_presto_triplet.name=Boosted Presto Logs +item.solid_fuel_presto_triplet_bf.name=Boosted Presto Logs (Balefire) +item.solinium_core.name=Semi-Stable Solinium Core +item.solinium_igniter.name=SOL Pulse Igniter +item.solinium_kit.name=Solinium Kit +item.solinium_propellant.name=SOL Compression Charge +item.sopsign.name=Sop Sign Battle Axe +item.spawn_duck.name=Golden Egg +item.spawn_ufo.name=Martian Invasion Ship +item.spawn_worm.name=Balls-O-Tron Prime +item.sphere_steel.name=Steel Sphere +item.spider_milk.name=Bottle of Spider Milk +item.spongebob_macaroni.name=Spongebob Macaroni +item.stamp_357.name=.357 Magnum Stamp +item.stamp_44.name=.44 Magnum Stamp +item.stamp_50.name=Large Caliber Stamp +item.stamp_9.name=Small Caliber Stamp +item.stamp_desh_circuit.name=Circuit Stamp (Desh) +item.stamp_desh_flat.name=Flat Stamp (Desh) +item.stamp_desh_plate.name=Plate Stamp (Desh) +item.stamp_desh_wire.name=Wire Stamp (Desh) +item.stamp_desh_357.name=.357 Magnum Stamp (Desh) +item.stamp_desh_44.name=.44 Magnum Stamp (Desh) +item.stamp_desh_50.name=Large Caliber Stamp (Desh) +item.stamp_desh_9.name=Small Caliber Stamp (Desh) +item.stamp_iron_circuit.name=Circuit Stamp (Iron) +item.stamp_iron_flat.name=Flat Stamp (Iron) +item.stamp_iron_plate.name=Plate Stamp (Iron) +item.stamp_iron_wire.name=Wire Stamp (Iron) +item.stamp_obsidian_circuit.name=Circuit Stamp (Obsidian) +item.stamp_obsidian_flat.name=Flat Stamp (Obsidian) +item.stamp_obsidian_plate.name=Plate Stamp (Obsidian) +item.stamp_obsidian_wire.name=Wire Stamp (Obsidian) +item.stamp_steel_circuit.name=Circuit Stamp (Steel) +item.stamp_steel_flat.name=Flat Stamp (Steel) +item.stamp_steel_plate.name=Plate Stamp (Steel) +item.stamp_steel_wire.name=Wire Stamp (Steel) +item.stamp_stone_circuit.name=Circuit Stamp (Stone) +item.stamp_stone_flat.name=Flat Stamp (Stone) +item.stamp_stone_plate.name=Plate Stamp (Stone) +item.stamp_stone_wire.name=Wire Stamp (Stone) +item.stamp_titanium_circuit.name=Circuit Stamp (Titanium) +item.stamp_titanium_flat.name=Flat Stamp (Titanium) +item.stamp_titanium_plate.name=Plate Stamp (Titanium) +item.stamp_titanium_wire.name=Wire Stamp (Titanium) +item.starmetal_axe.name=Starmetal Axe +item.starmetal_boots.name=Starmetal Boots +item.starmetal_helmet.name=Starmetal Helmet +item.starmetal_hoe.name=Starmetal Hoe +item.starmetal_legs.name=Starmetal Leggings +item.starmetal_pickaxe.name=Starmetal Pickaxe +item.starmetal_plate.name=Starmetal Chestplate +item.starmetal_shovel.name=Starmetal Shovel +item.starmetal_sword.name=Starmetal Sword +item.static_sandwich.name=Sandwich Garnished with TV Static +item.stealth_boy.name=Stealth Device +item.steamsuit_boots.name=Steam Suit Boots +item.steamsuit_helmet.name=Steam Suit Respirator Helmet +item.steamsuit_legs.name=Steam Suit Leggings +item.steamsuit_plate.name=Steam Suit Chestplate +item.steel_axe.name=Steel Axe +item.steel_boots.name=Steel Boots +item.steel_helmet.name=Steel Helmet +item.steel_hoe.name=Steel Hoe +item.steel_legs.name=Steel Leggings +item.steel_pickaxe.name=Steel Pickaxe +item.steel_plate.name=Steel Chestplate +item.steel_shovel.name=Steel Shovel +item.steel_sword.name=Steel Sword +item.stick_c4.name=Stick of C-4 +item.stick_dynamite.name=Stick of Dynamite +item.stick_dynamite_fishing.name=Stick of Fishing Dynamite +item.stick_semtex.name=Stick of Semtex +item.stick_tnt.name=Stick of TNT +item.stopsign.name=Stop Sign Battle Axe +item.sulfur.name=Sulfur +item.survey_scanner.name=Survey Scanner +item.syringe_antidote.name=Antidote +item.syringe_awesome.name=AWESOME +item.syringe_empty.name=Empty Syringe +item.syringe_metal_empty.name=Metal Syringe +item.syringe_metal_medx.name=Med-X +item.syringe_metal_psycho.name=Psycho +item.syringe_metal_stimpak.name=Stimpak +item.syringe_metal_super.name=Super Stimpak +item.syringe_mkunicorn.name=MKUNICORN +item.syringe_poison.name=Poisonous Injection +item.syringe_taint.name=Watery Taint Injection +item.t45_boots.name=T45 Power Armor Boots +item.t45_helmet.name=T45 Power Armor Helmet +item.t45_kit.name=T45 Power Armor Kit +item.t45_legs.name=T45 Power Armor Leggings +item.t45_plate.name=T45 Power Armor Chestplate +item.tank_steel.name=Steel Tank +item.tank_waste_0.name=Mud Container +item.tank_waste_1.name=Mud Container +item.tank_waste_2.name=Mud Container +item.tank_waste_3.name=Mud Container +item.tank_waste_4.name=Mud Container +item.tank_waste_5.name=Mud Container +item.tank_waste_6.name=Mud Container +item.tank_waste_7.name=Mud Container +item.tank_waste_8.name=Mud Container +item.telepad.name=Telepad +item.tem_flakes.name=Tem Flakes +item.template_folder.name=Machine Template Folder +item.template_folder.desc=Machine Templates: Paper + Dye$Fluid IDs: Iron Plate + Dye$Press Stamps: Flat Stamp$Siren Tracks: Insulator + Steel Plate +item.test_nuke_igniter.name=Igniter +item.test_nuke_propellant.name=Propellant +item.test_nuke_tier1_bullet.name=U235 Projectile (Tier 1) +item.test_nuke_tier1_shielding.name=Neutron Reflector (Tier 1) +item.test_nuke_tier1_target.name=Subcritical U235 Target (Tier 1) +item.test_nuke_tier2_bullet.name=MOX Projectile (Tier 2) +item.test_nuke_tier2_shielding.name=Neutron Reflector (Tier 2) +item.test_nuke_tier2_target.name=Subcritical MOX Target (Tier 2) +item.thermo_element.name=Thermoelectric Element +item.thermo_unit_empty.name=Thermic Distribution Unit +item.thermo_unit_endo.name=Coldness Distribution Unit +item.thermo_unit_exo.name=Heat Distribution Unit +item.thruster_large.name=Large Thruster +item.thruster_medium.name=Medium Thruster +item.thruster_nuclear.name=LV-N Nuclear Rocket Engine +item.thruster_small.name=Small Thruster +item.titanium_axe.name=Titanium Axe +item.titanium_boots.name=Titanium Boots +item.titanium_filter.name=Titanium Filter +item.titanium_helmet.name=Titanium Helmet +item.titanium_hoe.name=Titanium Hoe +item.titanium_legs.name=Titanium Leggings +item.titanium_pickaxe.name=Titanium Pickaxe +item.titanium_plate.name=Titanium Chestplate +item.titanium_shovel.name=Titanium Shovel +item.titanium_sword.name=Titanium Sword +item.toothpicks.name=Toothpicks +item.train.cargo_tram.name=Electric Flat Bed Tram +item.trinitite.name=Trinitite +item.tritium_deuterium_cake.name=Tritium-Deuterium-Cake +item.tritium_deuterium_cake.desc=Not actual cake, but great$universal fusion fuel! +item.tsar_core.name=Tsar Bomba Core +item.tsar_kit.name=Tsar Bomba Kit +item.turbine_titanium.name=Titanium Steam Turbine +item.turbine_tungsten.name=Reinforced Turbofan Blades +item.turret_biometry.name=Turret Telemetry Card +item.turret_cheapo_ammo.name=6x24 Cheapo Turret Ammunition +item.turret_chip.name=Turret AI-Chip +item.turret_control.name=Turret Controller +item.turret_cwis_ammo.name=CIWS 20mm Ammo Drum +item.turret_flamer_ammo.name=Flamer Turret Fuel Tanks +item.turret_heavy_ammo.name=Heavy MG Turret Ammunition +item.turret_light_ammo.name=Light MG Turret Ammo Box +item.turret_rocket_ammo.name=Rocket Turret 2x4 Ammunition +item.turret_spitfire_ammo.name=AA-Shell +item.turret_tau_ammo.name=Tau Turret Uranium Ammo +item.twinkie.name=Twinkie +item.ullapool_caber.name=Ullapool Caber +item.undefined.name=Undefined +item.upgrade_5g.name=5G Radiation Emitter Upgrade +item.upgrade_afterburn_1.name=Afterburner Upgrade Mk.I +item.upgrade_afterburn_2.name=Afterburner Upgrade Mk.II +item.upgrade_afterburn_3.name=Afterburner Upgrade Mk.III +item.upgrade_centrifuge.name=Centrifuge Upgrade +item.upgrade_crystallizer.name=Crystallizer Upgrade +item.upgrade_effect_1.name=Effectiveness Upgrade Mk.I +item.upgrade_effect_2.name=Effectiveness Upgrade Mk.II +item.upgrade_effect_3.name=Effectiveness Upgrade Mk.III +item.upgrade_ejector_1.name=Ejection Speed Upgrade Mk.I +item.upgrade_ejector_2.name=Ejection Speed Upgrade Mk.II +item.upgrade_ejector_3.name=Ejection Speed Upgrade Mk.III +item.upgrade_fortune_1.name=Fortune Upgrade Mk.I +item.upgrade_fortune_2.name=Fortune Upgrade Mk.II +item.upgrade_fortune_3.name=Fortune Upgrade Mk.III +item.upgrade_gc_speed.name=Gas Centrifuge Overclocking Upgrade +item.upgrade_health.name=Emitter Health Upgrade +item.upgrade_nullifier.name=Scrap Destroyer Upgrade +item.upgrade_overdrive_1.name=Overdrive Upgrade Mk.I +item.upgrade_overdrive_2.name=Overdrive Upgrade Mk.II +item.upgrade_overdrive_3.name=Overdrive Upgrade Mk.III +item.upgrade_power_1.name=Power Saving Upgrade Mk.I +item.upgrade_power_2.name=Power Saving Upgrade Mk.II +item.upgrade_power_3.name=Power Saving Upgrade Mk.III +item.upgrade_radius.name=Emitter Radius Upgrade +item.upgrade_screm.name=Screaming Scientist Upgrade +item.upgrade_shredder.name=Shredder Upgrade +item.upgrade_smelter.name=Smelter Upgrade +item.upgrade_speed_1.name=Speed Upgrade Mk.I +item.upgrade_speed_2.name=Speed Upgrade Mk.II +item.upgrade_speed_3.name=Speed Upgrade Mk.III +item.upgrade_stack_1.name=Stack Ejection Upgrade Mk.I +item.upgrade_stack_2.name=Stack Ejection Upgrade Mk.II +item.upgrade_stack_3.name=Stack Ejection Upgrade Mk.III +item.upgrade_template.name=Machine Upgrade Template +item.v1.name=V1 +item.volcanic_pickaxe.name=Stopiony Kilof +item.wand_d.name=Debug Wand +item.wand_k.name=Construction Wand +item.wand_s.name=Structure Wand +item.warhead_buster_large.name=Large Bunker Buster Warhead +item.warhead_buster_medium.name=Medium Bunker Buster Warhead +item.warhead_buster_small.name=Small Bunker Buster Warhead +item.warhead_cluster_large.name=Large Cluster Warhead +item.warhead_cluster_medium.name=Medium Cluster Warhead +item.warhead_cluster_small.name=Small Cluster Warhead +item.warhead_generic_large.name=Large Warhead +item.warhead_generic_medium.name=Medium Warhead +item.warhead_generic_small.name=Small Warhead +item.warhead_incendiary_large.name=Large Incendiary Warhead +item.warhead_incendiary_medium.name=Medium Incendiary Warhead +item.warhead_incendiary_small.name=Small Incendiary Warhead +item.warhead_mirv.name=Głowica Termojądrowa +item.warhead_mirvlet.name=MIRV +item.warhead_nuclear.name=Nuclear Warhead +item.warhead_thermo_endo.name=Endothermic Warhead +item.warhead_thermo_exo.name=Exothermic Warhead +item.warhead_volcano.name=Tectonic Warhead +item.waste_mox.name=Depleted MOX Fuel +item.waste_natural_uranium.name=Depleted Natural Uranium Fuel +item.waste_plate_mox.name=Depleted MOX Plate Fuel +item.waste_plate_pu238be.name=Depleted Pu238Be Plate Fuel +item.waste_plate_pu239.name=Depleted HEP-239 Plate Fuel +item.waste_plate_ra226be.name=Depleted Ra226Be Plate Fuel +item.waste_plate_sa326.name=Depleted HES-326 Plate Fuel +item.waste_plate_u233.name=Depleted HEU-233 Plate Fuel +item.waste_plate_u235.name=Depleted HEU-235 Plate Fuel +item.waste_plutonium.name=Depleted Plutonium Fuel +item.waste_schrabidium.name=Depleted Schrabidium Fuel +item.waste_thorium.name=Depleted Thorium Fuel +item.waste_u235.name=Depleted Uranium-235 Fuel +item.waste_u233.name=Depleted Uranium-233 Fuel +item.waste_uranium.name=Depleted Uranium Fuel +item.waste_zfb_mox.name=Depleted ZFB MOX Fuel +item.watch.name=Broken Pocket Watch +item.watch.desc=A small blue pocket watch.$It's glass has a few cracks in it,$and some shards are missing.$It stopped ticking at 2:34. +item.watz_pellet.boron.name=Boron Absorber Pellet +item.watz_pellet.du.name=Depleted Uranium Absorber Pellet +item.watz_pellet.hes.name=HES Watz Pellet +item.watz_pellet.lead.name=Lead Absorber Pellet +item.watz_pellet.les.name=LES Watz Pellet +item.watz_pellet.mes.name=MES Watz Pellet +item.watz_pellet.mep.name=MEP Watz Pellet +item.watz_pellet.meu.name=MEU Watz Pellet +item.watz_pellet.nqd.name=Enriched Naquadah Watz Pellet +item.watz_pellet.nqr.name=Naquadria Watz Pellet +item.watz_pellet.hen.name=HEN Watz Pellet +item.watz_pellet.schrabidium.name=Schrabidium Watz Pellet +item.watz_pellet_depleted.boron.name=Boron Absorber Pellet (Depleted) +item.watz_pellet_depleted.du.name=Depleted Uranium Absorber Pellet (Depleted) +item.watz_pellet_depleted.hes.name=HES Watz Pellet (Depleted) +item.watz_pellet_depleted.lead.name=Lead Absorber Pellet (Depleted) +item.watz_pellet_depleted.les.name=LES Watz Pellet (Depleted) +item.watz_pellet_depleted.mes.name=MES Watz Pellet (Depleted) +item.watz_pellet_depleted.mep.name=MEP Watz Pellet (Depleted) +item.watz_pellet_depleted.meu.name=MEU Watz Pellet (Depleted) +item.watz_pellet_depleted.nqd.name=Enriched Naquadah Watz Pellet (Depleted) +item.watz_pellet_depleted.nqr.name=Naquadria Watz Pellet (Depleted) +item.watz_pellet_depleted.hen.name=HEN Watz Pellet (Depleted) +item.watz_pellet_depleted.schrabidium.name=Schrabidium Watz Pellet (Depleted) +item.weapon_bat.name=Richard's Default +item.weapon_bat_nail.name=The Cliché +item.weapon_golf_club.name=Russian Mobster's Club +item.weapon_pipe_lead.name=The Manual Override +item.weapon_pipe_rusty.name=The Attitude Adjuster +item.weapon_saw.name=Doctor Assisted Homicide +item.weaponized_starblaster_cell.name=§cRigged Star Blaster Energy Cell§r +item.wd40.name=VT-40 +item.wild_p.name=Wild Pegasus Dry Whiskey +item.wings_limp.name=Limp Wings +item.wings_murk.name=Murky Wings +item.wire_advanced_alloy.name=Super Conductor +item.wire_aluminium.name=Aluminium Wire +item.wire_copper.name=Copper Wire +item.wire_gold.name=Gold Wire +item.wire_magnetized_tungsten.name=4000K High Temperature Super Conductor +item.wire_red_copper.name=Red Copper Wire +item.wire_schrabidium.name=Schrabidium Wire +item.wire_tungsten.name=Tungsten Wire +item.wiring_red_copper.name=Cable Drum +item.wood_gavel.name=Wooden Gavel +item.wrench.name=Pipe Wrench +item.wrench_archineer.name=Archineer's Wrench +item.wrench_flipped.name=Blade on a Wrench +item.xanax.name=NAXA Anti-Digamma Medication +item.xanax.desc=Removes 500mDRX +item.zirconium_legs.name=Zirconium Pants + +itemGroup.tabBlocks=NTM Ores and Blocks +itemGroup.tabConsumable=NTM Consumables and Gear +itemGroup.tabControl=NTM Machine Items and Fuel +itemGroup.tabMachine=NTM Machines +itemGroup.tabMissile=NTM Missiles and Satellites +itemGroup.tabNuke=NTM Bombs +itemGroup.tabParts=NTM Resources and Parts +itemGroup.tabTemplate=NTM Templates +itemGroup.tabTest=Nuclear Tech Mod Test Tab +itemGroup.tabWeapon=NTM Weapons and Turrets + +potion.hbm_bang=! ! ! +potion.hbm_death=Astolfizacja +potion.hbm_lead=Lead Poisoning +potion.hbm_mutation=Tainted Heart +potion.hbm_phosphorus=Phosphorus Burns +potion.hbm_potionsickness=Potion Sickness +potion.hbm_radaway=Radaway +potion.hbm_radiation=Skażony +potion.hbm_radx=Rad-X +potion.hbm_stability=Stabilność +potion.hbm_taint=Splamiony +potion.hbm_telekinesis=! ! ! + +radar.detectMissiles=Detect Missiles +radar.detectPlayers=Detect Players +radar.redMode=Redstone Mode$On: Redstone output based on range$Off: Redstone output based on tier +radar.smartMode=Smart Mode$Redstone output ignores ascending missiles + +rbmk.heat=Column temperature: %s +rbmk.boiler.water=Feedwater: %s / %s +rbmk.boiler.steam=Steam: %s / %s +rbmk.boiler.type=Compressor: %s +rbmk.console.assign=Assign selected columns to screen #%s +rbmk.console.none=Off +rbmk.console.col_temp=Monitor average column temperature +rbmk.console.rod_extraction=Monitor average control rod extraction +rbmk.console.fuel_depletion=Monitor average fuel depletion +rbmk.console.fuel_poison=Monitor average xenon poisoning +rbmk.console.fuel_temp=Monitor average fuel temperature +rbmk.control.level=%s +rbmk.control.red=§cRed Group +rbmk.control.yellow=§eYellow Group +rbmk.control.green=§aGreen Group +rbmk.control.blue=§1Blue Group +rbmk.control.purple=§5Purple Group +rbmk.moderated=Moderated +rbmk.rod.depletion=Depletion: %s +rbmk.rod.xenon=Xenon poison: %s +rbmk.rod.coreTemp=Core temperature: %s +rbmk.rod.skinTemp=Skin temperature: %s / %s +rbmk.screen.core=Core: %s +rbmk.screen.depletion=Depl: %s +rbmk.screen.rod=Control: %s +rbmk.screen.temp=Temp: %s +rbmk.screen.xenon=Xenon: %s + +shape.billet=Billet +shape.blade=Blade +shape.blades=Shredder Blades +shape.block=Blok +shape.dust=Dust +shape.dusttiny=Tiny Dust +shape.hull_big=Big Shell +shape.hull_small=Small Shell +shape.ingot=Ingot +shape.nugget=Nugget +shape.quantum=Quantum +shape.quart=Quarter Block +shape.plate=Plate +shape.plateTriple=Cast Plate +shape.stamp=Press Stamp +shape.wire=Drut + +soundCategory.ntmMachines=NTM Machines + +tile.absorber.name=Radiation Absorber +tile.absorber_green.name=Advanced Radiation Absorber +tile.absorber_pink.name=Elite Radiation Absorber +tile.absorber_red.name=Enhanced Radiation Absorber +tile.acid_block.name=Kwas +tile.ams_base.name=AMS Base (Deco) +tile.ams_emitter.name=AMS Emitter (Deco) +tile.ams_limiter.name=AMS Stabilizer (Deco) +tile.ancient_scrap.name=Ancient Scrap Metal +tile.anvil_bismuth.name=Bismuth Anvil +tile.anvil_dnt.name=Dineutronium Anvil +tile.anvil_ferrouranium.name=Ferrouranium Anvil +tile.anvil_iron.name=Iron Anvil +tile.anvil_lead.name=Lead Anvil +tile.anvil_meteorite.name=Meteorite Anvil +tile.anvil_murky.name=Murky Anvil +tile.anvil_osmiridium.name=Osmiridium Anvil +tile.anvil_schrabidate.name=Ferric Schrabidate Anvil +tile.anvil_starmetal.name=Starmetal Anvil +tile.anvil_steel.name=Steel Anvil +tile.ash_digamma.name=Ash +tile.asphalt.name=Asphalt +tile.asphalt_light.name=Glowing Asphalt +tile.barbed_wire.name=Barbed Wire +tile.barbed_wire_acid.name=Caustic Barbed Wire +tile.barbed_wire_fire.name=Flaming Barbed Wire +tile.barbed_wire_poison.name=Poisoned Barbed Wire +tile.barbed_wire_ultradeath.name=Cloud Barbed Wire +tile.barbed_wire_wither.name=Withered Barbed Wire +tile.barrel_antimatter.name=Magnetic Antimatter Container +tile.barrel_corroded.name=Corroded Barrel +tile.barrel_iron.name=Iron Barrel +tile.barrel_plastic.name=Safe Barrel™ +tile.barrel_steel.name=Steel Barrel +tile.barrel_tcalloy.name=Technetium Steel Barrel +tile.barricade.name=Sand Bags +tile.basalt.name=Bazalt +tile.basalt_asbestos.name=Asbestos-Rich Basalt +tile.basalt_brick.name=Basalt Bricks +tile.basalt_fluorite.name=Fluorite-Rich Basalt +tile.basalt_gem.name=Gem-Rich Basalt +tile.basalt_polished.name=Polished Basalt +tile.basalt_smooth.name=Smooth Basalt +tile.basalt_sulfur.name=Sulfur-Rich Basalt +tile.basalt_tiles.name=Basalt Tiles +tile.blast_door.name=Sliding Blast Door +tile.block_actinium.name=Block of Actinium +tile.block_advanced_alloy.name=Block of Advanced Alloy +tile.block_aluminium.name=Block of Aluminium +tile.block_asbestos.name=Block of Asbestos +tile.block_australium.name=Block of Australium +tile.block_bakelite.name=Block of Bakelite +tile.block_beryllium.name=Block of Beryllium +tile.block_bismuth.name=Block of Bismuth +tile.block_boron.name=Block of Boron +tile.block_c4.name=Block of C-4 +tile.block_cadmium.name=Block of Cadmium +tile.block_cap_fritz.name=Block of Fritz Cola Bottle Caps +tile.block_cap_korl.name=Block of Korl Bottle Caps +tile.block_cap_nuka.name=Block of Nuka Cola Bottle Caps +tile.block_cap_quantum.name=Block of Nuka Cola Quantum Bottle Caps +tile.block_cap_rad.name=Block of S~Cola RAD Bottle Caps +tile.block_cap_sparkle.name=Block of S~Cola Bottle Caps +tile.block_cap_star.name=Block of Sunset Sarsaparilla Star Caps +tile.block_cap_sunset.name=Block of Sunset Sarsaparilla Bottle Caps +tile.block_cdalloy.name=Block of Cadmium Steel +tile.block_cobalt.name=Block of Cobalt +tile.block_coke.coal.name=Block of Coal Coke +tile.block_coke.lignite.name=Block of Lignite Coke +tile.block_coke.petroleum.name=Block of Petroleum Coke +tile.block_coltan.name=Block of Coltan +tile.block_combine_steel.name=Block of CMB Steel +tile.block_copper.name=Block of Copper +tile.block_corium.name=Corium +tile.block_corium_cobble.name=Corebblestone +tile.block_daffergon.name=Block of Daffergon +tile.block_desh.name=Reinforced Block of Desh +tile.block_dineutronium.name=Block of Dineutronium +tile.block_dura_steel.name=Reinforced Block of High-Speed Steel +tile.block_electrical_scrap.name=Block of Electrical Scrap +tile.block_euphemium.name=Block of Euphemium +tile.block_euphemium_cluster.name=Euphemium-Etched Schrabidium Cluster +tile.block_fallout.name=Block of Fallout +tile.block_fiberglass.name=Roll of Fiberglass +tile.block_fluorite.name=Block of Fluorite +tile.block_foam.name=Foam +tile.block_insulator.name=Roll of Insulation +tile.block_graphite.name=Block of Graphite +tile.block_graphite_detector.name=Pile Neutron Detector +tile.block_graphite_drilled.name=Drilled Graphite +tile.block_graphite_fuel.name=Pile Fuel +tile.block_graphite_lithium.name=Pile Lithium Fuel +tile.block_graphite_plutonium.name=Pile Fuel (Bred) +tile.block_graphite_rod.name=Pile Control Rod +tile.block_graphite_source.name=Pile Neutron Source +tile.block_graphite_tritium.name=Pile Lithium Fuel (Bred) +tile.block_lead.name=Block of Lead +tile.block_lanthanium.name=Block of Lanthanium +tile.block_lithium.name=Block of Lithium +tile.block_magnetized_tungsten.name=Block of Magnetized Tungsten +tile.block_meteor.name=Meteorite Block +tile.block_meteor_broken.name=Broken Meteorite Block +tile.block_meteor_cobble.name=Meteorite Cobblestone +tile.block_meteor_molten.name=Hot Meteorite Cobblestone +tile.block_meteor_treasure.name=Meteorite Treasure Block +tile.block_mox_fuel.name=Block of MOX Fuel +tile.block_neptunium.name=Block of Neptunium +tile.block_niter.name=Block of Niter +tile.block_niter_reinforced.name=Reinforced Block of Niter +tile.block_niobium.name=Block of Niobium +tile.block_plutonium.name=Block of Plutonium +tile.block_plutonium_fuel.name=Block of Plutonium Fuel +tile.block_polonium.name=Block of Polonium-210 +tile.block_polymer.name=Block of Polymer +tile.block_pu_mix.name=Block of Reactor Grade Plutonium +tile.block_pu238.name=Block of Plutonium-238 +tile.block_pu239.name=Block of Plutonium-239 +tile.block_pu240.name=Block of Plutonium-240 +tile.block_ra226.name=Block of Radium-226 +tile.block_red_copper.name=Block of Red Copper +tile.block_red_phosphorus.name=Block of Red Phosphorus +tile.block_reiium.name=Block of Reiium +tile.block_rubber.name=Block of Rubber +tile.block_schrabidate.name=Block of Ferric Schrabidate +tile.block_schrabidium.name=Block of Schrabidium +tile.block_schrabidium_cluster.name=Schrabidium Cluster +tile.block_schrabidium_fuel.name=Block of Schrabidium Fuel +tile.block_schraranium.name=Block of Schraranium +tile.block_scrap.name=Block of Scrap +tile.block_semtex.name=Block of Semtex +tile.block_slag.name=Block of Slag +tile.block_smore.name=Block of S'more +tile.block_solinium.name=Block of Solinium +tile.block_starmetal.name=§9Block of Starmetal§r +tile.block_steel.name=Block of Steel +tile.block_sulfur.name=Block of Sulfur +tile.block_tantalium.name=Block of Tantalium +tile.block_tcalloy.name=Block of Technetium Steel +tile.block_thorium.name=Block of Thorium-232 +tile.block_thorium_fuel.name=Block of Thorium Fuel +tile.block_titanium.name=Block of Titanium +tile.block_trinitite.name=Block of Trinitite +tile.block_tritium.name=Block of Tritium Cells +tile.block_tungsten.name=Block of Tungsten +tile.block_u233.name=Block of Uranium-233 +tile.block_u235.name=Block of Uranium-235 +tile.block_u238.name=Block of Uranium-238 +tile.block_unobtainium.name=Block of Unobtainium +tile.block_uranium.name=Block of Uranium +tile.block_uranium_fuel.name=Block of Uranium Fuel +tile.block_verticium.name=Block of Verticium +tile.block_waste.name=Block of Nuclear Waste +tile.block_waste_painted.name=Painted Block of Nuclear Waste +tile.block_waste_vitrified.name=Vitrified Block of Nuclear Waste +tile.block_weidanium.name=Block of Weidanium +tile.block_white_phosphorus.name=Block of White Phosphorus +tile.block_yellowcake.name=Block of Yellowcake +tile.block_zirconium.name=Block of Zirconium +tile.boat.name=Boat +tile.bobblehead.name=Bobblehead +tile.bomb_multi.name=Multi Purpose Bomb +tile.bomber.name=Crashed Bomber +tile.book_guide.name=Hbm's Nuclear Tech Mod Manual [LEGACY] +tile.boxcar.name=Boxcar +tile.brick_asbestos.name=Asbestos Bricks +tile.brick_asbestos_stairs.name=Asbestos Brick Stairs +tile.brick_compound.name=Compound Mesh +tile.brick_compound_stairs.name=Compound Mesh Stairs +tile.brick_concrete.name=Concrete Bricks +tile.brick_concrete_stairs.name=Concrete Brick Stairs +tile.brick_concrete_broken.name=Broken Concrete Bricks +tile.brick_concrete_broken_stairs.name=Broken Concrete Brick Stairs +tile.brick_concrete_cracked.name=Cracked Concrete Bricks +tile.brick_concrete_cracked_stairs.name=Cracked Concrete Brick Stairs +tile.brick_concrete_marked.name=Marked Concrete Bricks +tile.brick_concrete_mossy.name=Mossy Concrete Bricks +tile.brick_concrete_mossy_stairs.name=Mossy Concrete Brick Stairs +tile.brick_ducrete.name=Ducrete Bricks +tile.brick_ducrete_stairs.name=Ducrete Brick Stairs +tile.brick_dungeon.name=Berzelianite Bricks +tile.brick_dungeon_circle.name=Berzelianite Cirlce +tile.brick_dungeon_flat.name=Berzelianite Block +tile.brick_dungeon_tile.name=Berzelianite Tile +tile.brick_fire.name=Firebricks +tile.brick_fire_stairs.name=Firebrick Stairs +tile.brick_jungle.name=Enargite Bricks +tile.brick_jungle_circle.name=Mechanist's Circle +tile.brick_jungle_cracked.name=Cracked Enargite Bricks +tile.brick_jungle_fragile.name=Brittle Enargite Bricks +tile.brick_jungle_glyph.name=Enargite Glyph Bricks +tile.brick_jungle_lava.name=Magmatic Enargite Bricks +tile.brick_jungle_mystic.name=Arcane Enargite Bricks +tile.brick_jungle_ooze.name=Radioactive Enargite Bricks +tile.brick_jungle_trap.name=Trapped Enargite Bricks +tile.brick_light.name=Light Bricks +tile.brick_light_stairs.name=Light Bricks Stairs +tile.brick_obsidian.name=Obsidian Bricks +tile.brick_obsidian_stairs.name=Obsidian Brick Stairs +tile.brick_slab.brick_asbestos.name=Asbestos Brick Slab +tile.brick_slab.brick_compound.name=Compound Mesh Slab +tile.brick_slab.brick_fire.name=Firebrick Slab +tile.brick_slab.brick_light.name=Light Brick Slab +tile.brick_slab.brick_obsidian.name=Obsidian Brick Slab +tile.brick_slab.reinforced_brick.name=Reinforced Stone Slab +tile.brick_slab.reinforced_stone.name=Dense Stone Slab +tile.broadcaster_pc.name=Corrupted Broadcaster +tile.burning_earth.name=Burning Grass +tile.c4.name=C-4 +tile.cable_detector.name=Redstone Power Switch +tile.cable_diode.name=Red Copper Diode +tile.cable_switch.name=Power Switch +tile.capacitor_bus.name=Capacitor Bus +tile.capacitor_bus.desc=Output block for capacitors$Can be chained up in a straight line +tile.capacitor_copper.name=Copper Capacitor +tile.capacitor_gold.name=Golden Capacitor +tile.capacitor_niobium.name=Niobium Capacitor +tile.capacitor_tantalium.name=Tantalium Capacitor +tile.capacitor.desc=Input: Top$Output: Bottom, via Capacitor Bus +tile.charge_c4.name=Demolition Charge +tile.charge_dynamite.name=Time Bomb +tile.charge_miner.name=Timed Mining Charge +tile.charge_semtex.name=Semtex Mining Charge +tile.charger.name=Charging Station +tile.cheater_virus.name=Gelid Euphemium +tile.cheater_virus_seed.name=Unstable Euphemium Schrabide Block +tile.chimney_brick.name=Smokestack +tile.chlorine_gas.name=Chlorine Gas +tile.cluster_aluminium.name=Aluminium Ore Cluster +tile.cluster_copper.name=Copper Ore Cluster +tile.cluster_depth_iron.name=Depth Iron Ore Cluster +tile.cluster_depth_titanium.name=Depth Titanium Ore Cluster +tile.cluster_depth_tungsten.name=Depth Tungsten Ore Cluster +tile.cluster_iron.name=Iron Ore Cluster +tile.cluster_titanium.name=Titanium Ore Cluster +tile.cmb_brick.name=CMB Steel Tile +tile.cmb_brick_reinforced.name=Reinforced CMB Bricks +tile.compact_launcher.name=Compact Launch Pad +tile.concrete.name=Concrete Tile +tile.concrete_asbestos.name=Asbestos Concrete +tile.concrete_asbestos_stairs.name=Asbestos Concrete Stairs +tile.concrete_brick_slab.brick_concrete.name=Concrete Brick Slab +tile.concrete_brick_slab.brick_concrete_broken.name=Broken Concrete Brick Slab +tile.concrete_brick_slab.brick_concrete_cracked.name=Cracked Concrete Brick Slab +tile.concrete_brick_slab.brick_concrete_mossy.name=Mossy Concrete Brick Slab +tile.concrete_brick_slab.brick_ducrete.name=Ducrete Brick Slab +tile.concrete_colored.black.name=Black Concrete +tile.concrete_colored.blue.name=Blue Concrete +tile.concrete_colored.brown.name=Brown Concrete +tile.concrete_colored.cyan.name=Cyan Concrete +tile.concrete_colored.gray.name=Gray Concrete +tile.concrete_colored.green.name=Green Concrete +tile.concrete_colored.lightBlue.name=Light Blue Concrete +tile.concrete_colored.lime.name=Lime Concrete +tile.concrete_colored.magenta.name=Magenta Concrete +tile.concrete_colored.orange.name=Orange Concrete +tile.concrete_colored.pink.name=Pink Concrete +tile.concrete_colored.purple.name=Purple Concrete +tile.concrete_colored.red.name=Red Concrete +tile.concrete_colored.silver.name=Light Gray Concrete +tile.concrete_colored.white.name=White Concrete +tile.concrete_colored.yellow.name=Yellow Concrete +tile.concrete_colored_ext.hazard.name=Builder's Choice Concrete - Hazard Stripe +tile.concrete_colored_ext.indigo.name=Builder's Choice Concrete - Deep Indigo +tile.concrete_colored_ext.machine.name=Builder's Choice Concrete - Industrial Tinge +tile.concrete_colored_ext.machine_stripe.name=Builder's Choice Concrete - Industrial Stripe +tile.concrete_colored_ext.pink.name=Builder's Choice Concrete - Manly Pink +tile.concrete_colored_ext.purple.name=Builder's Choice Concrete - Mysterious Purple +tile.concrete_pillar.name=Rebar Reinforced Concrete Pillar +tile.concrete_slab.concrete.name=Concrete Tile Slab +tile.concrete_slab.concrete_asbestos.name=Asbestos Concrete Slab +tile.concrete_slab.concrete_smooth.name=Concrete Slab +tile.concrete_slab.ducrete.name=Ducrete Tile Slab +tile.concrete_slab.ducrete_smooth.name=Ducrete Slab +tile.concrete_smooth.name=Concrete +tile.concrete_smooth_stairs.name=Concrete Stairs +tile.concrete_stairs.name=Concrete Tile Stairs +tile.concrete_super.name=Über Concrete +tile.concrete_super_broken.name=Moldy Debris +tile.conveyor.name=Conveyor Belt +tile.conveyor_chute.name=Conveyor Chute +tile.conveyor_double.name=Double-Lane Conveyor Belt +tile.conveyor_lift.name=Conveyor Chain Lift +tile.conveyor_triple.name=Triple-Lane Conveyor Belt +tile.corium_block.name=Corium +tile.crane_boxer.name=Conveyor Boxer +tile.crane_extractor.name=Conveyor Ejector +tile.crane_grabber.name=Conveyor Grabber +tile.crane_inserter.name=Conveyor Inserter +tile.crane_router.name=Conveyor Sorter +tile.crane_splitter.name=Conveyor Splitter +tile.crane_unboxer.name=Conveyor Unboxer +tile.crashed_bomb.name=Dud +tile.crate.name=Supply Crate +tile.crate_ammo.name=Starmetal Crate +tile.crate_can.name=Conserve Crate +tile.crate_desh.name=Desh Crate +tile.crate_iron.name=Iron Crate +tile.crate_jungle.name=Enargite Crate +tile.crate_lead.name=Hazmat Crate +tile.crate_metal.name=Machine Crate +tile.crate_red.name=Red Crate +tile.crate_steel.name=Steel Crate +tile.crate_tungsten.name=Tungsten Crate +tile.crate_weapon.name=Weapon Crate +tile.crystal_hardened.name=Hardened Dark Crystal +tile.crystal_pulsar.name=Pulsating Crystal +tile.crystal_virus.name=Dark Crystal +tile.deco_aluminium.name=Aluminium Deco Block +tile.deco_asbestos.name=Asbestos Roof +tile.deco_beryllium.name=Beryllium Deco Block +tile.deco_computer.ibm_300pl.name=IBM Personal Computer 300PL +tile.deco_emitter.name=Deco Light Emitter +tile.part_emitter.name=Deco Particle Emitter +tile.piston_inserter.name=Inserter +tile.deco_lead.name=Lead Deco Block +tile.deco_rbmk.name=RBMK Deco Block +tile.deco_rbmk_smooth.name=Smooth RBMK Deco Block +tile.deco_red_copper.name=Red Copper Deco Block +tile.deco_pipe.name=Steel Pipe +tile.deco_pipe_rusted.name=Rusty Steel Pipe +tile.deco_pipe_green.name=Green Steel Pipe +tile.deco_pipe_green_rusted.name=Rusty Green Steel Pipe +tile.deco_pipe_red.name=Red Steel Pipe +tile.deco_pipe_marked.name=Gas Pipe +tile.deco_pipe_framed.name=Steel Pipe (Framed) +tile.deco_pipe_framed_rusted.name=Rusty Steel Pipe (Framed) +tile.deco_pipe_framed_green.name=Green Steel Pipe (Framed) +tile.deco_pipe_framed_green_rusted.name=Rusty Green Steel Pipe (Framed) +tile.deco_pipe_framed_red.name=Red Steel Pipe (Framed) +tile.deco_pipe_framed_marked.name=Gas Pipe (Framed) +tile.deco_pipe_quad.name=Steel Pipes +tile.deco_pipe_quad_rusted.name=Rusty Steel Pipes +tile.deco_pipe_quad_green.name=Green Steel Pipes +tile.deco_pipe_quad_green_rusted.name=Rusty Green Steel Pipes +tile.deco_pipe_quad_red.name=Red Steel Pipes +tile.deco_pipe_quad_marked.name=Gas Pipes +tile.deco_pipe_rim.name=Steel Pipe (Rimmed) +tile.deco_pipe_rim_rusted.name=Rusty Steel Pipe (Rimmed) +tile.deco_pipe_rim_green.name=Green Steel Pipe (Rimmed) +tile.deco_pipe_rim_green_rusted.name=Rusty Green Steel Pipe (Rimmed) +tile.deco_pipe_rim_red.name=Red Steel Pipe (Rimmed) +tile.deco_pipe_rim_marked.name=Gas Pipe (Rimmed) +tile.deco_steel.name=Steel Deco Block +tile.deco_titanium.name=Titanium Deco Block +tile.deco_tungsten.name=Tungsten Deco Block +tile.decon.name=Player Decontaminator +tile.depth_brick.name=Depth Bricks +tile.depth_dnt.name=DNT-Reinforced Depth Bricks +tile.depth_nether_brick.name=Nether Depth Bricks +tile.depth_nether_tiles.name=Nether Depth Tiles +tile.depth_tiles.name=Depth Tiles +tile.det_charge.name=Explosive Charge +tile.det_cord.name=Det Cord +tile.det_miner.name=Mining Charge +tile.det_nuke.name=Nuclear Charge +tile.dfc_core.name=Dark Fusion Core +tile.dfc_emitter.name=DFC Emitter +tile.dfc_injector.name=DFC Fuel Injector +tile.dfc_receiver.name=DFC Receiver +tile.dfc_stabilizer.name=DFC Stabilizer +tile.dirt_dead.name=Dead Dirt +tile.dirt_oily.name=Oily Dirt +tile.drill_pipe.name=Drill Pipe +tile.door_bunker.name=Bunker Door +tile.door_metal.name=Metal Door +tile.door_office.name=Office Door +tile.ducrete.name=Ducrete Tile +tile.ducrete_stairs.name=Ducrete Tile Stairs +tile.ducrete_smooth.name=Ducrete +tile.ducrete_smooth_stairs.name=Ducrete Stairs +tile.dummy_block.name=Dummy Block +tile.dummy_port.name=Dummy Block (Electricity Port) +tile.dungeon_chain.name=Metal Chain +tile.dynamite.name=Dynamite +tile.emp_bomb.name=EMP Device +tile.factory_advanced_conductor.name=Advanced Factory Electricity Port +tile.factory_advanced_core.name=Advanced Factory Core Component +tile.factory_advanced_furnace.name=Advanced Factory Access Hatch +tile.factory_advanced_hull.name=Factory Block +tile.factory_titanium_conductor.name=Basic Factory Electricity Port +tile.factory_titanium_core.name=Basic Factory Core Component +tile.factory_titanium_furnace.name=Basic Factory Access Hatch +tile.factory_titanium_hull.name=Factory Block +tile.fallout.name=Fallout +tile.fan.name=Fan +tile.fence_metal.name=Chainlink Fence +tile.field_disturber.name=High Energy Field Jammer +tile.filing_cabinet.green.name=Dusty Filing Cabinet +tile.filing_cabinet.steel.name=Steel Filing Cabinet +tile.fire_digamma.name=Lingering Digamma +tile.fire_door.name=Fire Door +tile.fireworks.name=Firework Battery +tile.fireworks.charges=Charges Loaded: %s +tile.fireworks.message=Message: %s +tile.fireworks.color=Color: %s +tile.fissure_bomb.name=Fissure Bomb +tile.flame_war.name=Flame War in a Box +tile.float_bomb.name=Levitation Bomb +tile.fluid_duct.name=Universal Fluid Duct (Deprecated) +tile.fluid_duct_box.name=Universal Fluid Duct (Boxduct) +tile.fluid_duct_exhaust.name=Exhaust Pipe +tile.fluid_duct_gauge.name=Flow Gauge Pipe +tile.fluid_duct_gauge.desc=Pipe that displays how much fluid$moves within the network per tick.$Split networks connected by barrels$or tanks are considered as one shared network. +tile.fluid_duct_neo.name=Universal Fluid Duct +tile.fluid_duct_paintable.name=Paintable Coated Universal Fluid Duct +tile.fluid_duct_solid.name=Coated Universal Fluid Duct (Deprecated) +tile.fluid_switch.name=Redstone Fluid Valve +tile.fluid_valve.name=Fluid Valve +tile.foam_layer.name=Foam layer +tile.foundry_basin.name=Foundry Basin +tile.foundry_channel.name=Foundry Channel +tile.foundry_tank.name=Foundry Storage Basin +tile.foundry_mold.name=Shallow Foundry Basin +tile.foundry_outlet.name=Foundry Outlet +tile.foundry_slagtap.name=Foundry Slag Outlet +tile.fraction_spacer.name=Fractioning Tower Separator +tile.frozen_dirt.name=Frozen Dirt +tile.frozen_grass.name=Frozen Grass +tile.frozen_log.name=Frozen Log +tile.frozen_planks.name=Frozen Planks +tile.furnace_combination.name=Combination Oven +tile.furnace_combination.desc=A large furnace that can produce charcoal and coal coke.$Produces fluid byproducts.$Heat transfer rate: ΔT*0.25 TU/t +tile.furnace_iron.name=Iron Furnace +tile.furnace_iron.desc=Larger and more efficient furnace,$does not waste fuel when idle. +tile.furnace_steel.name=Steel Furnace +tile.furnace_steel.desc=Very large furnace that can provide bonus items$when smelting ores. Requires external heat source.$Heat transfer rate: ΔT*0.05 TU/t$(Δ means difference and T means temperature) +tile.fusion_center.name=Central Magnet Piece +tile.fusion_conductor.name=Superconducting Magnet +tile.fusion_conductor_welded.name=Superconducting Magnet (Welded) +tile.fusion_core.name=Fusion Reactor Control +tile.fusion_hatch.name=Duct Deco Block +tile.fusion_heater.name=Plasma Heater Component +tile.fusion_motor.name=Magnet Motor Piece +tile.fwatz_computer.name=Fusionary Watz Reactor Calculation Matrix +tile.fwatz_conductor.name=4000K Superconducting Magnet +tile.fwatz_cooler.name=Regenerative Coolant Fluid Tank Shell +tile.fwatz_core.name=Fusionary Watz Reactor Control +tile.fwatz_hatch.name=Fusionary Watz Plant Access Hatch +tile.fwatz_plasma.name=Destabilized Antischrabidium Plasma +tile.fwatz_scaffold.name=Fusionary Watz Plant Structural Support +tile.fwatz_tank.name=Regenerative Coolant Fluid Tank +tile.gas_asbestos.name=Airborne Asbestos Particles +tile.gas_coal.name=Airborne Coal Dust +tile.gas_duct.name=Gas Pipe +tile.gas_duct_solid.name=Coated Gas Pipe +tile.gas_explosive.name=Explosive Gas +tile.gas_flammable.name=Flammable Gas +tile.gas_meltdown.name=Meltdown Gas +tile.gas_monoxide.name=Carbon Monoxide +tile.gas_radon.name=Radon Gas +tile.gas_radon_dense.name=Dense Radon Gas +tile.gas_radon_tomb.name=Tomb Gas +tile.geiger.name=Geiger Counter +tile.glass_ash.name=Ash Glass +tile.glass_boron.name=Boron Glass +tile.glass_lead.name=Lead Glass +tile.glass_polonium.name=Polonium Glass +tile.glass_quartz.name=Quartz Glass +tile.glass_trinitite.name=Trinity Glass +tile.glass_uranium.name=Uranium Glass +tile.glyphid_base.name=Glyphid Hive Block +tile.glyphid_spawner.name=Glyphid Hive Spawner +tile.gneiss_brick.name=Schist Brick +tile.gneiss_chiseled.name=Chiseled Schist +tile.gneiss_tile.name=Schist Tile +tile.gravel_diamond.name=Diamond Gravel +tile.gravel_obsidian.name=Crushed Obsidian +tile.hadron_access.name=Particle Accelerator Access Terminal +tile.hadron_analysis.name=Particle Accelerator Analysis Chamber Wall +tile.hadron_analysis_glass.name=Particle Accelerator Analysis Chamber Window +tile.hadron_coil_alloy.name=Dense Superconducting Coil +tile.hadron_coil_chlorophyte.name=Dense Chlorophyte Coil +tile.hadron_coil_gold.name=Dense Gold Coil +tile.hadron_coil_magtung.name=Dense 4000K Superconductor Coil +tile.hadron_coil_mese.name=Dense Mese Coil +tile.hadron_coil_neodymium.name=Dense Neodymium Coil +tile.hadron_coil_schrabidate.name=Dense Schrabidate Coil +tile.hadron_coil_schrabidium.name=Dense Schrabidic Coil +tile.hadron_coil_starmetal.name=Dense Starmetal Coil +tile.hadron_core.name=Particle Accelerator Core Component +tile.hadron_diode.name=Schottky Particle Diode +tile.hadron_plating.name=Particle Accelerator Plating +tile.hadron_plating_black.name=Particle Accelerator Plating (Black) +tile.hadron_plating_blue.name=Particle Accelerator Plating (Blue) +tile.hadron_plating_glass.name=Particle Accelerator Plating (Window) +tile.hadron_plating_striped.name=Particle Accelerator Plating (Cool Hazard Stripes) +tile.hadron_plating_voltz.name=Particle Accelerator Plating (VOLTZ) +tile.hadron_plating_yellow.name=Particle Accelerator Plating (YelloDye) +tile.hadron_power.name=Particle Accelerator Power Plug (1MHE) +tile.hadron_power_10m.name=Particle Accelerator Power Plug (10MHE) +tile.hadron_power_100m.name=Particle Accelerator Power Plug (100MHE) +tile.hadron_power_1g.name=Particle Accelerator Power Plug (1GHE) +tile.hadron_power_10g.name=Particle Accelerator Power Plug (10GHE) +tile.hazmat.name=Hazmat Cloth Block +tile.heater_electric.name=Electric Heater +tile.heater_electric.desc=Uses energy to produce heat.$Accepts heat from the bottom with 85%% efficiency.$Can be configured with a screwdriver. +tile.heater_firebox.name=Firebox +tile.heater_firebox.desc=Burns solid fuel to produce heat. +tile.heater_heatex.name=Heat Exchanging Heater +tile.heater_heatex.desc=Produces heat from hot fluids. +tile.heater_oilburner.name=Fluid Burner +tile.heater_oilburner.desc=Burns fluids to produce heat.$Can be configured with a screwdriver. +tile.heater_oven.name=Heating Oven +tile.heater_oven.desc=Burns solid fuel to produce heat.$Accepts heat from the bottom with 50%% efficiency. +tile.hev_battery.name=Suit Battery +tile.impact_dirt.name=Scorched Dirt +tile.iter.name=Fusion Reactor +tile.ladder_aluminium.name=Aluminium Ladder +tile.ladder_cobalt.name=Cobalt Ladder +tile.ladder_copper.name=Copper Ladder +tile.ladder_gold.name=Golden Ladder +tile.ladder_iron.name=Iron Ladder +tile.ladder_lead.name=Lead Ladder +tile.ladder_steel.name=Steel Ladder +tile.ladder_sturdy.name=Sturdy Wooden Ladder +tile.ladder_titanium.name=Titanium Ladder +tile.ladder_tungsten.name=Tungsten Ladder +tile.lamp_demon.name=Demon Core Lamp +tile.lamp_tritium_blue_off.name=Blue Tritium Lamp +tile.lamp_tritium_blue_on.name=Blue Tritium Lamp +tile.lamp_tritium_green_off.name=Green Tritium Lamp +tile.lamp_tritium_green_on.name=Green Tritium Lamp +tile.launch_pad.name=Missile Launch Pad +tile.launch_table.name=Large Launch Pad +tile.leaves_layer.name=Fallen Leaves +tile.lox_barrel.name=LOX Barrel +tile.machine_amgen.name=Ambience Radiation Generator +tile.machine_arc_furnace_off.name=Arc Furnace +tile.machine_arc_furnace_on.name=Arc Furnace +tile.machine_armor_table.name=Armor Modification Table +tile.machine_assembler.name=Assembly Machine +tile.machine_assemfac.name=Assembly Factory +tile.machine_autocrafter.name=Automatic Crafting Table +tile.machine_autosaw.name=Automatic Buzz Saw +tile.machine_bat9000.name=Big-Ass Tank 9000 +tile.machine_battery.name=Energy Storage Block +tile.machine_battery_potato.name=Potato Battery Block +tile.machine_boiler.name=Boiler +tile.machine_boiler.desc=Large boiler that can boil water or heat up oil.$Requires external heat source.$Heat transfer rate: ΔT*0.01 TU/t +tile.machine_boiler_electric_off.name=Electric Oil Heater +tile.machine_boiler_electric_on.name=Electric Oil Heater +tile.machine_boiler_off.name=Oil Heater +tile.machine_boiler_on.name=Oil Heater +tile.machine_catalytic_cracker.name=Catalytic Cracking Tower +tile.machine_catalytic_reformer.name=Catalytic Reformer +tile.machine_centrifuge.name=Centrifuge +tile.machine_chemfac.name=Chemical Factory +tile.machine_chemplant.name=Chemical Plant +tile.machine_chungus.name=Leviathan Steam Turbine +tile.machine_chungus.desc=Efficiency: 85%% +tile.machine_coal_off.name=Combustion Generator +tile.machine_coal_on.name=Combustion Generator +tile.machine_coker.name=Coker Unit +tile.machine_coker.desc=Cokes oil, creating fluid byproducts.$Requires external heat source.$Heat transfer rate: ΔT*0.025 TU/t +tile.machine_combine_factory.name=CMB Steel Furnace +tile.machine_combustion_engine.name=Industrial Combustion Engine +tile.machine_compressor.name=Compressor +tile.machine_condenser.name=Steam Condenser +tile.machine_controller.name=Reactor Remote Control Block +tile.machine_converter_he_rf.name=HE to RF Converter +tile.machine_converter_rf_he.name=RF to HE Converter +tile.machine_crucible.name=Crucible +tile.machine_crystallizer.name=Ore Acidizer +tile.machine_cyclotron.name=Cyclotron +tile.machine_detector.name=Power Detector +tile.machine_deuterium_extractor.name=Deuterium Extractor +tile.machine_deuterium_tower.name=Deuterium Extraction Tower +tile.machine_diesel.name=Diesel Generator +tile.machine_difurnace_extension.name=Blast Furnace Extension +tile.machine_difurnace_off.name=Blast Furnace +tile.machine_difurnace_on.name=Blast Furnace +tile.machine_difurnace_rtg_off.name=Nuclear Blast Furnace +tile.machine_difurnace_rtg_on.name=Nuclear Blast Furnace +tile.machine_dineutronium_battery.name=Spark Energy Storage Block +tile.machine_drill.name=Automatic Mining Drill +tile.machine_electric_furnace_off.name=Electric Furnace +tile.machine_electric_furnace_on.name=Electric Furnace +tile.machine_epress.name=Electric Press +tile.machine_excavator.name=Large Mining Drill +tile.machine_fel.name=FEL +tile.machine_fensu.name=FEnSU +tile.machine_flare.name=Flare Stack +tile.machine_fluidtank.name=Tank +tile.machine_forcefield.name=Forcefield Emitter +tile.machine_fraction_tower.name=Fractioning Tower +tile.machine_fracking_tower.name=Hydraulic Fracking Tower +tile.machine_gascent.name=Gas Centrifuge +tile.machine_generator.name=Nuclear Reactor (Old) +tile.machine_geo.name=Geothermal Electric Generator +tile.machine_hephaestus.name=Geothermal Heat Exchanger +tile.machine_industrial_generator.name=Industrial Generator +tile.machine_keyforge.name=Locksmith Table +tile.machine_large_turbine.name=Industrial Steam Turbine +tile.machine_large_turbine.desc=Efficiency: 100%% +tile.machine_liquefactor.name=Industrial Liquefaction Machine +tile.machine_liquefactor.desc=Powerful universal machine to turn items into fluids.$Comes with versatile catalytic components, heating elements$and a built-in hydrator for petrochemical liquefaction. +tile.machine_lithium_battery.name=Li-Ion Energy Storage Block +tile.machine_microwave.name=Microwave +tile.machine_mining_laser.name=Mining Laser +tile.machine_minirtg.name=Radio Isotope Cell +tile.machine_missile_assembly.name=Missile Assembly Station +tile.machine_mixer.name=Industrial Mixer +tile.machine_nuke_furnace_off.name=Nuclear Furnace +tile.machine_nuke_furnace_on.name=Nuclear Furnace +tile.machine_orbus.name=Heavy Magnetic Storage Tank +tile.machine_powerrtg.name=PT Isotope Cell +tile.machine_press.name=Burner Press +tile.machine_puf6_tank.name=Plutonium Hexafluoride Tank +tile.machine_pumpjack.name=Pumpjack +tile.machine_radar.name=Radar +tile.machine_radgen.name=Radiation-Powered Engine +tile.machine_radiolysis.name=Radioisotope Thermoelectric Generator and Radiolysis Chamber +tile.machine_reactor.name=Breeding Reactor +tile.machine_reactor_small.name=Research Reactor +tile.machine_refinery.name=Oil Refinery +tile.machine_reix_mainframe.name=Rei-X Mainframe (WIP) +tile.machine_rtg_blue.name=Convection Generator +tile.machine_rtg_cyan.name=Schrabidium Decay Generator (WIP) +tile.machine_rtg_furnace_off.name=RTG Furnace +tile.machine_rtg_furnace_on.name=RTG Furnace +tile.machine_rtg_green.name=Verticium Wealth Generator +tile.machine_rtg_grey.name=RT Generator +tile.machine_rtg_orange.name=Strong RT Generator +tile.machine_rtg_purple.name=Antimatter Annihilation Generator +tile.machine_rtg_red.name=Fulmination Generator +tile.machine_rtg_yellow.name=Australium Superfuel Reactor +tile.machine_satlinker.name=Satellite ID Manager +tile.machine_sawmill.name=Stirling Sawmill +tile.machine_sawmill.desc=Requires external heat source.$Heat transfer rate: T*0.1 TU/t$Min intake: 100 TU/t, Max intake: 300 TU/t +tile.machine_schrabidium_battery.name=Schrabidium Energy Storage Block +tile.machine_schrabidium_transmutator.name=Schrabidium Transmutation Device +tile.machine_selenium.name=Radial Performance Engine +tile.machine_shredder.name=Shredder +tile.machine_silex.name=Laser Isotope Separation Chamber (SILEX) +tile.machine_siren.name=Siren +tile.machine_solar_boiler.name=Solar Tower Boiler +tile.machine_solidifier.name=Industrial Solidification Machine +tile.machine_solidifier.desc=A universal machine fitted with cooling systems and other$versatile tools for turning fluids solid using various$processes such as freezing and petrochemical polymerization. +tile.machine_spp_bottom.name=ZPE Potential Generator (Bottom) +tile.machine_spp_top.name=ZPE Potential Generator (Top) +tile.machine_steam_engine.name=Steam Engine +tile.machine_steam_engine.desc=Efficiency: 85%% +tile.machine_stirling.name=Stirling Engine +tile.machine_stirling.desc=Turns heat into energy. Requires external heat source.$Heat transfer rate: T*0.1 TU/t$Max intake: 300 TU/t$Efficiency: 50%% +tile.machine_stirling_steel.name=Heavy Stirling Engine +tile.machine_stirling_steel.desc=Turns heat into energy. Requires external heat source.$Uses a much heavier gear to support higher temperatures.$Heat transfer rate: T*0.1 TU/t$Max intake: 1500 TU/t$Efficiency: 50%% +tile.machine_storage_drum.name=Nuclear Waste Disposal Drum +tile.machine_telelinker.name=Turret Telemetry Linker +tile.machine_teleporter.name=Teleporter +tile.machine_tower_large.name=Cooling Tower +tile.machine_tower_small.name=Auxiliary Cooling Tower +tile.machine_transformer.name=10k-20Hz Transformer +tile.machine_transformer_20.name=10k-1Hz Transformer +tile.machine_transformer_dnt.name=DNT-20Hz Transformer +tile.machine_transformer_dnt_20.name=DNT-1Hz Transformer +tile.machine_turbine.name=Steam Turbine +tile.machine_turbine.desc=Efficiency: 85%% +tile.machine_turbinegas.name=Combined Cycle Gas Turbine +tile.machine_turbofan.name=Turbofan +tile.machine_uf6_tank.name=Uranium Hexafluoride Tank +tile.machine_vacuum_distill.name=Vacuum Refinery +tile.machine_waste_drum.name=Spent Fuel Pool Drum +tile.machine_well.name=Oil Derrick +tile.machine_zirnox.name=ZIRNOX Nuclear Reactor +tile.marker_structure.name=Multiblock Structure Marker +tile.mass_storage.name=Mass Storage Unit +tile.meteor_battery.name=Starmetal Static Electricity Generator +tile.meteor_brick.name=Meteor Bricks +tile.meteor_brick_chiseled.name=Chiseled Meteor Bricks +tile.meteor_brick_cracked.name=Cracked Meteor Bricks +tile.meteor_brick_mossy.name=Mossy Meteor Bricks +tile.meteor_pillar.name=Meteor Pillar +tile.meteor_polished.name=Polished Meteor Block +tile.meteor_spawner.name=Cyber Crab Assembler +tile.mine_ap.name=Anti-Personell Mine +tile.mine_fat.name=Fat Mine +tile.mine_he.name=Anti-Tank Mine +tile.mine_shrap.name=Shrapnel Mine +tile.moon_turf.name=Moon Turf +tile.mud_block.name=Poisonous Mud +tile.muffler.name=Muffler +tile.mush.name=Glowing Mushroom +tile.ntm_dirt.name=Dirt +tile.nuke_boy.name=Little Boy +tile.nuke_custom.name=Custom Nuke +tile.nuke_fleija.name=F.L.E.I.J.A. +tile.nuke_fstbmb.name=Balefire Bomb +tile.nuke_gadget.name=The Gadget +tile.nuke_man.name=Fat Man +tile.nuke_mike.name=Ivy Mike +tile.nuke_n2.name=N² Mine +tile.nuke_n45.name=N45 Naval Mine +tile.nuke_prototype.name=The Prototype +tile.nuke_solinium.name=The Blue Rinse +tile.nuke_tsar.name=Tsar Bomba +tile.oil_duct.name=Oil Pipe +tile.oil_duct_solid.name=Coated Oil Pipe +tile.oil_pipe.name=Crude Oil Extraction Pipe +tile.ore_alexandrite.name=Alexandrite Ore +tile.ore_aluminium.name=Aluminium Ore +tile.ore_asbestos.name=Asbestos Ore +tile.ore_australium.name=Australian Ore +tile.ore_bedrock.name=Bedrock Ore +tile.ore_bedrock_coltan.name=Bedrock Coltan Ore +tile.ore_bedrock_oil.name=Bedrock Oil Deposit +tile.ore_beryllium.name=Beryllium Ore +tile.ore_cinnebar.name=Cinnabar Ore +tile.ore_coal_oil.name=Oily Coal Ore +tile.ore_coal_oil_burning.name=Burning Oily Coal Ore +tile.ore_cobalt.name=Cobalt Ore +tile.ore_coltan.name=Coltan Ore +tile.ore_copper.name=Copper Ore +tile.ore_daffergon.name=Dellite +tile.ore_depth_borax.name=Depth Borax Ore +tile.ore_depth_cinnebar.name=Depth Cinnabar Ore +tile.ore_depth_nether_neodymium.name=Nether Depth Neodymium Ore +tile.ore_depth_zirconium.name=Depth Zirconium Ore +tile.ore_fluorite.name=Fluorite Ore +tile.ore_gneiss_asbestos.name=Schist Asbestos Ore +tile.ore_gneiss_copper.name=Schist Copper Ore +tile.ore_gneiss_gas.name=Gas Shale +tile.ore_gneiss_gold.name=Schist Gold Ore +tile.ore_gneiss_iron.name=Schist Iron Ore +tile.ore_gneiss_lithium.name=Schist Lithium Ore +tile.ore_gneiss_rare.name=Schist Rare Earth Ore +tile.ore_gneiss_schrabidium.name=Schist Schrabidium Ore +tile.ore_gneiss_uranium.name=Schist Uranium Ore +tile.ore_gneiss_uranium_scorched.name=Scorched Schist Uranium Ore +tile.ore_lead.name=Lead Ore +tile.ore_lignite.name=Lignite Ore +tile.ore_meteor_aluminium.name=Meteor Aluminium Ore +tile.ore_meteor_copper.name=Meteor Copper Ore +tile.ore_meteor_lead.name=Meteor Lead Ore +tile.ore_meteor_lithium.name=Meteor Lithium Ore +tile.ore_meteor_starmetal.name=Starmetal Ore +tile.ore_meteor_sulfur.name=Meteor Sulfur Ore +tile.ore_meteor_thorium.name=Meteor Thorium Ore +tile.ore_meteor_titanium.name=Meteor Titanium Ore +tile.ore_meteor_tungsten.name=Meteor Tungsten Ore +tile.ore_meteor_uranium.name=Meteor Uranium Ore +tile.ore_nether_coal.name=Burning Nether Coal Ore +tile.ore_nether_cobalt.name=Nether Cobalt Ore +tile.ore_nether_fire.name=Nether Phosphorus Ore +tile.ore_nether_plutonium.name=Nether Plutonium Ore +tile.ore_nether_schrabidium.name=Nether Schrabidium Ore +tile.ore_nether_smoldering.name=Smoldering Netherrack +tile.ore_nether_sulfur.name=Nether Sulfur Ore +tile.ore_nether_tungsten.name=Nether Tungsten Ore +tile.ore_nether_uranium.name=Nether Uranium Ore +tile.ore_nether_uranium_scorched.name=Scorched Nether Uranium Ore +tile.ore_niter.name=Niter Ore +tile.ore_oil.name=Oil Deposit +tile.ore_oil_empty.name=Empty Oil Deposit +tile.ore_oil_sand.name=Tar Sand +tile.ore_random.name=%s Ore +tile.ore_rare.name=Rare Earth Ore +tile.ore_reiium.name=Reiite +tile.ore_schrabidium.name=Schrabidium Ore +tile.ore_sulfur.name=Sulfur Ore +tile.ore_tektite_osmiridium.name=Osmiridium-Infused Tektite +tile.ore_thorium.name=Thorium Ore +tile.ore_tikite.name=Trixite +tile.ore_titanium.name=Titanium Ore +tile.ore_tungsten.name=Tungsten Ore +tile.ore_unobtainium.name=Brightblende Ore +tile.ore_uranium.name=Uranium Ore +tile.ore_uranium_scorched.name=Scorched Uranium Ore +tile.ore_verticium.name=Dollar Green Mineral +tile.ore_volcano.name=Geothermal Vent +tile.ore_weidanium.name=Weidite +tile.pink_barrel.name=Kerosene Barrel +tile.pink_log.name=Pink Log +tile.pink_planks.name=Pink Wood Planks +tile.pink_slab.name=Pink Wood Slab +tile.pink_stairs.name=Pink Wood Stairs +tile.plant_dead.name=Dead Plant +tile.plant_flower.cd0.name=Mustard Willow +tile.plant_flower.cd1.name=Mustard Willow +tile.plant_flower.foxglove.name=Foxglove +tile.plant_flower.nightshade.name=Deadly Nightshade +tile.plant_flower.tobacco.name=Tobacco Plant +tile.plant_flower.weed.name=Hemp +tile.plant_reeds.name=Reeds +tile.plant_tall.cd2.name=Mustard Willow +tile.plant_tall.cd3.name=Mustard Willow +tile.plant_tall.cd4.name=Mustard Willow (Mature) +tile.plant_tall.weed.name=Hemp +tile.plasma.name=Plasma +tile.plasma_heater.name=Plasma Heater +tile.pole_satellite_receiver.name=Satellite Dish +tile.pole_top.name=Antenna Top +tile.press_preheater.name=Burner Press Preheater +tile.pribris.name=RBMK Debris +tile.pribris_burning.name=Flaming RBMK Debris +tile.pribris_digamma.name=Blackened RBMK Debris +tile.pribris_radiating.name=Smoldering RBMK Debris +tile.radio_torch_receiver.name=Redstone-over-Radio Receiver +tile.radio_torch_receiver.desc=Placable on flat surfaces or comparator-compatible blocks +tile.radio_torch_sender.name=Redstone-over-Radio Transmitter +tile.radio_torch_sender.desc=Placable on flat surfaces or comparator-compatible blocks$Reads redstone signals or comparator input +tile.radiobox.name=Rosenberg Pest Control Box +tile.radiorec.name=FM Radio +tile.rail_booster.name=High Speed Booster Rail +tile.rail_highspeed.name=High Speed Rail +tile.rail_narrow.name=Narrow Gauge Cart Rail +tile.rail_wood.name=Wooden Tracks +tile.rbmk_absorber.name=RBMK Boron Neutron Absorber +tile.rbmk_blank.name=RBMK Structural Column +tile.rbmk_boiler.name=RBMK Steam Channel +tile.rbmk_console.name=RBMK Console +tile.rbmk_cooler.name=RBMK Cooler +tile.rbmk_control.name=RBMK Control Rods +tile.rbmk_control_auto.name=RBMK Automatic Control Rods +tile.rbmk_control_mod.name=RBMK Moderated Control Rods +tile.rbmk_crane_console.name=RBMK Crane Console +tile.rbmk_heater.name=RBMK Fluid Heater +tile.rbmk_heatex.name=RBMK Heat Exchanger +tile.rbmk_loader.name=RBMK Steam Connector +tile.rbmk_moderator.name=RBMK Graphite Moderator +tile.rbmk_outgasser.name=RBMK Irradiation Channel +tile.rbmk_reflector.name=RBMK Tungsten Carbide Neutron Reflector +tile.rbmk_rod.name=RBMK Fuel Rod +tile.rbmk_rod_mod.name=RBMK Moderated Fuel Rod +tile.rbmk_rod_reasim.name=RBMK Fuel Rod (ReaSim) +tile.rbmk_rod_reasim_mod.name=RBMK Moderated Fuel Rod (ReaSim) +tile.rbmk_steam_inlet.name=RBMK ReaSim Water Inlet +tile.rbmk_steam_outlet.name=RBMK ReaSim Steam Outlet +tile.rbmk_storage.name=RBMK Storage Column +tile.reactor_computer.name=Reactor Control +tile.reactor_conductor.name=Reactor Boiler +tile.reactor_control.name=Control Rods +tile.reactor_ejector.name=Reactor Waste Ejector +tile.reactor_element.name=Reactor Chamber +tile.reactor_hatch.name=Reactor Access Hatch +tile.reactor_inserter.name=Reactor Fuel Inserter +tile.red_barrel.name=Explosive Barrel +tile.red_cable.name=Red Copper Cable +tile.red_cable_classic.name=Red Copper Cable (Classic) +tile.red_cable_paintable.name=Paintable Red Copper Cable +tile.red_connector.name=Electricity Connector +tile.red_pylon.name=Electricity Pole +tile.red_pylon_large.name=Large Electricity Pylon +tile.red_wire_coated.name=Coated Red Copper Cable +tile.reinforced_brick.name=Reinforced Stone +tile.reinforced_brick_stairs.name=Reinforced Stone Stairs +tile.reinforced_ducrete.name=Reinforced Ducrete +tile.reinforced_glass.name=Reinforced Glass +tile.reinforced_glass_pane.name=Reinforced Glass Pane +tile.reinforced_lamp_off.name=Reinforced Lamp +tile.reinforced_lamp_on.name=Reinforced Lamp +tile.reinforced_light.name=Reinforced Glowstone +tile.reinforced_sand.name=Reinforced Sandstone +tile.reinforced_stone.name=Dense Stone +tile.reinforced_stone_stairs.name=Dense Stone Stairs +tile.reinforced_laminate.name=Reinforced Laminate +tile.reinforced_laminate_pane.name=Reinforced Laminate Pane +tile.rejuvinator.name=Rejuvination Device +tile.residue.name=Cloud Residue +tile.safe.name=Safe +tile.sand_boron.name=Boron Sand +tile.sand_boron_layer.name=Boron Sand Layer +tile.sand_dirty.name=Oily Sand +tile.sand_dirty_red.name=Red Oily Sand +tile.sand_gold.name=Gold Sand +tile.sand_gold198.name=Gold-198 Sand +tile.sand_lead.name=Lead Sand +tile.sand_polonium.name=Polonium Sand +tile.sand_quartz.name=Quartz Sand +tile.sand_uranium.name=Uranium Sand +tile.sat_dock.name=Cargo Landing Pad +tile.sat_foeq.name=PEAF - Mk.I FOEQ Duna Probe with experimental Nuclear Propulsion (Deco Block) +tile.sat_laser.name=Orbital Death Ray (Deco Block) +tile.sat_mapper.name=Surface Mapping Satellite (Deco Block) +tile.sat_radar.name=Radar Survey Satellite (Deco Block) +tile.sat_resonator.name=Xenium Resonator Satellite (Deco Block) +tile.sat_scanner.name=Satellite with Depth-Resource Scanning Module (Deco Block) +tile.schrabidic_block.name=Schrabidic Acid +tile.seal_controller.name=Silo Hatch Opener +tile.seal_frame.name=Silo Hatch Frame +tile.seal_hatch.name=Silo Hatch +tile.sellafield.0.name=Sellafite +tile.sellafield.1.name=Hot Sellafite +tile.sellafield.2.name=Boiling Sellafite +tile.sellafield.3.name=Blazing Sellafite +tile.sellafield.4.name=Infernal Sellafite +tile.sellafield.5.name=Sellafite-Corium +tile.sellafield_slaked.name=Slaked Sellafite +tile.semtex.name=Semtex +tile.sliding_blast_door.name=Sliding Blast Door +tile.solar_mirror.name=Heliostat Mirror +tile.soyuz_capsule.name=Cargo Landing Capsule +tile.soyuz_launcher.name=Soyuz Launch Platform +tile.spikes.name=Spikes +tile.stalactite.asbestos.name=Asbestos Stalactite +tile.stalactite.sulfur.name=Sulfurous Stalactite +tile.stalagmite.asbestos.name=Asbestos Stalagmite +tile.stalagmite.sulfur.name=Sulfurous Stalagmite +tile.steel_beam.name=Steel Beam +tile.steel_corner.name=Steel Wall Corner +tile.steel_grate.name=Steel Grate +tile.steel_grate_wide.name=Item Grate +tile.steel_grate_wide.desc=Lets dropped items and XP fall through +tile.steel_poles.name=Steel Pole +tile.steel_roof.name=Flat Steel Roof +tile.steel_scaffold.name=Steel Scaffold +tile.steel_wall.name=Steel Wall +tile.stone_cracked.name=Cracked Stone +tile.stone_depth.name=Depth Rock +tile.stone_depth_nether.name=Nether Depth Rock +tile.stone_gneiss.name=Graphitic Schist +tile.stone_porous.name=Porous Stone +tile.stone_resource.asbestos.name=Chrysotile +tile.stone_resource.bauxite.name=Bauxite +tile.stone_resource.hematite.name=Hematite +tile.stone_resource.limestone.name=Limestone +tile.stone_resource.malachite.name=Malachite +tile.stone_resource.sulfur.name=Sulfurous Stone +tile.struct_iter_core.name=Fusion Reactor Core Component +tile.struct_launcher.name=Launch Pad Component Block +tile.struct_launcher_core.name=Compact Launcher Core Component +tile.struct_launcher_core_large.name=Launch Table Core Component +tile.struct_plasma_core.name=Plasma Heater Core Component +tile.struct_scaffold.name=Launch Pad Scaffold Block +tile.struct_soyuz_core.name=Soyuz Launcher Core Component +tile.struct_watz_core.name=Watz Powerplant Core Component +tile.substation.name=Substation +tile.sulfuric_acid_block.name=Sulfuric Acid +tile.taint.name=Taint +tile.taint_barrel.name=IMP Residue Barrel +tile.tape_recorder.name=Tape Recorder +tile.tektite.name=Tektite +tile.teleanchor.name=Teleportation Anchor +tile.tesla.name=Tesla Coil +tile.test_nuke.name=Test Nuke +tile.therm_endo.name=Endothermic Bomb +tile.therm_exo.name=Exothermic Bomb +tile.tile_lab.name=Laboratory Tiles +tile.tile_lab_broken.name=Broken Laboratory Tiles +tile.tile_lab_cracked.name=Cracked Laboratory Tiles +tile.tnt_ntm.name=Actual TNT +tile.toxic_block.name=Stereotypical Green Ooze +tile.transition_seal.name=Transition Seal +tile.turret_arty.name=Artillery Turret "Greg" +tile.turret_cheapo.name=Cheapo Gatling Sentry +tile.turret_chekhov.name=Heavy Machine Gun Turret "Chekhov's Gun" +tile.turret_cwis.name=Phalanx Mk-15 CIWS +tile.turret_flamer.name=Flamethrower Turret +tile.turret_friendly.name=Chaingun Turret "Mister Friendly" +tile.turret_fritz.name=Heavy Flamethrower Turret "Fritz" +tile.turret_heavy.name=Heavy Machine Gun Turret +tile.turret_himars.name=Rocket Artillery Turret "Henry" +tile.turret_howard.name=Goalkeeper Twin Chaingun CIWS "Howard" +tile.turret_howard_damaged.name=Goalkeeper Twin Chaingun CIWS "Methusalem" +tile.turret_jeremy.name=Autocannon Turret "Jeremy" +tile.turret_light.name=Light Machine Gun Turret +tile.turret_maxwell.name=High-Energy MASER Turret "Maxwell" +tile.turret_rocket.name=Rocket Turret +tile.turret_richard.name=Rocket Launcher Turret "Richard" +tile.turret_spitfire.name=Turret I have no name for right now [WIP] +tile.turret_sentry.name=Sentry Turret "Brown" +tile.turret_tau.name=Tauon Turret +tile.turret_tauon.name=XVL1456 Prototype Turret "Tauon" +tile.vacuum.name=Vacuum +tile.vault_door.name=Vault-Tec Blast Door +tile.vent_chlorine.name=Chlorine Vent +tile.vent_chlorine_seal.name=Chlorine Seal +tile.vent_cloud.name=Cloud Vent +tile.vent_pink_cloud.name=Pink Cloud Vent +tile.vinyl_tile.large.name=Large Vinyl Tile +tile.vinyl_tile.small.name=Small Vinyl Tiles +tile.vitrified_barrel.name=Vitrified Nuclear Waste Drum +tile.volcanic_lava_block.name=Volcanic Lava +tile.volcano_core.name=Volcano Core +tile.waste_earth.name=Dead Grass +tile.waste_leaves.name=Dead Leaves +tile.waste_log.name=Charred Log +tile.waste_mycelium.name=Glowing Mycelium +tile.waste_planks.name=Charred Wooden Planks +tile.waste_trinitite.name=Trinitite Ore +tile.waste_trinitite_red.name=Red Trinitite Ore +tile.watz.name=Watz Powerplant +tile.watz_conductor.name=Watz Electricity Port +tile.watz_control.name=Reinforced Control Rods +tile.watz_cooler.name=Watz Reactor Supercooler +tile.watz_core.name=Watz Reactor Control +tile.watz_element.name=Watz Reaction Chamber +tile.watz_end.name=Watz Reactor Stability Element +tile.watz_end_bolted.name=Watz Reactor Stability Element (Riveted) +tile.watz_hatch.name=Watz Reactor Access Hatch +tile.watz_pump.name=Watz Pressure Pump +tile.yellow_barrel.name=Radioactive Barrel +tile.zirnox_destroyed.name=Destroyed ZINROX + +trait.asbestos=Asbestos +trait.blinding=Blinding +trait.coal=Pył Węglowy +trait.digamma=Digamma Radiation +trait.drop=Dangerous Drop +trait.explosive=Flammable / Explosive +trait.furnace=Worth %s operations in nuclear furnace +trait.heat=Provides %s HEAT +trait.hlParticle=Particle Half-Life: %s +trait.hlPlayer=Player Half-Life: %s +trait.hot=Pyrophoric / Hot +trait.hydro=Hydroreaktywne +trait.radioactive=Radioaktywne +trait.radResistance=Radiation resistance: %s + +trait.rbmk.coreTemp=Temperatura jądra: %s +trait.rbmk.depletion=Zużycie: %s +trait.rbmk.diffusion=Diffusion: %s +trait.rbmk.fluxFunc=Flux function: %s +trait.rbmk.funcType=Function type: %s +trait.rbmk.heat=Heat per flux: %s +trait.rbmk.melt=Melting point: %s +trait.rbmk.neutron.any=All Neutrons +trait.rbmk.neutron.fast=Fast Neutrons +trait.rbmk.neutron.slow=Slow Neutrons +trait.rbmk.skinTemp=Skin temp: %s +trait.rbmk.source=Self-igniting +trait.rbmk.splitsInto=Splits into: %s +trait.rbmk.splitsWith=Splits with: %s +trait.rbmk.xenon=Zatrucie Ksenonem: %s +trait.rbmk.xenonBurn=Xenon burn function: %s +trait.rbmk.xenonGen=Xenon gen function: %s + +trait.rbmx.coreTemp=Entropia jądra: %s +trait.rbmx.depletion=Chrupkość: %s +trait.rbmx.diffusion=Przepływ: %s +trait.rbmx.fluxFunc=Funkcja zagłady: %s +trait.rbmx.funcType=Function specification: %s +trait.rbmx.heat=Crust per tick at full power: %s +trait.rbmx.melt=Głębokość zgniecenia: %s +trait.rbmk.neutron.any.x=All non-euclidean shapes +trait.rbmk.neutron.fast.x=Elliptic non-euclidean shapes +trait.rbmk.neutron.slow.x=Hyperbolic non-euclidean shapes +trait.rbmx.skinTemp=Skin entropy: %s +trait.rbmx.source=Self-combusting +trait.rbmx.splitsInto=Departs to: %s +trait.rbmx.splitsWith=Arrives from: %s +trait.rbmx.xenon=Lead poison: %s +trait.rbmx.xenonBurn=Lead destruction function: %s +trait.rbmx.xenonGen=Lead creation function: %s + +trait.tile.cluster=Drops only when broken by a player +trait.tile.depth=Can only be destroyed by explosions + +tool.ability.centrifuge=Auto-Centrifuge +tool.ability.crystallizer=Auto-Crystallizer +tool.ability.explosion=Explosion +tool.ability.hammer=AoE +tool.ability.luck=Szczęście +tool.ability.mercury=Mercury Touch +tool.ability.midas=Midas Touch +tool.ability.recursion=Vein Miner +tool.ability.shredder=Auto-Shredder +tool.ability.silktouch=Silk Touch +tool.ability.smelter=Auto-Smelter + +turret.animals=Target Passive: %s +turret.arty.artillery=§eArtillery Mode$Grace: 250m$Range: 3,000m +turret.arty.cannon=§eCannon Mode$Grace: 32m$Range: 250m +turret.arty.manual=§eManual Mode$Range: 3,000m +turret.machines=Target Machines: %s +turret.mobs=Target Mobs: %s +turret.none=None +turret.off=OFF +turret.on=ON +turret.players=Target Players: %s + +wavelengths.name.ir=Podczerwień +wavelengths.name.visible=Visible Light +wavelengths.name.uv=Ultrafiolet +wavelengths.name.gamma=Gamma +wavelengths.name.drx=Digamma +wavelengths.waveRange.ir=780nm-1mm +wavelengths.waveRange.visible=400nm-780nm +wavelengths.waveRange.uv=100nm-400nm +wavelengths.waveRange.gamma=<100pm +wavelengths.waveRange.drx=1916169 planck lengths + +weapon.ability.beheader=Dekapitator +weapon.ability.bobble=Luck of the Collector +# Should rhyme with the translation for "chainsaw" +weapon.ability.chainsaw=Piła Bólu +weapon.ability.fire=Flaming +weapon.ability.radiation=Radioactive Blade +weapon.ability.phosphorus=Phosphorus Tip +weapon.ability.stun=Stunning +weapon.ability.vampire=Vampire +weapon.elecGun.modeChange=Firing Mode Changed to: +weapon.elecGun.glass_cannon.radio=Radio Waves +weapon.elecGun.glass_cannon.micro=Microwaves +weapon.elecGun.glass_cannon.ir=Infrared +weapon.elecGun.glass_cannon.visible=Visible Light +weapon.elecGun.glass_cannon.uv=Ultraviolet Light +weapon.elecGun.glass_cannon.xray=X-rays +weapon.elecGun.glass_cannon.gamma=Gamma rays From 925236e538ab38d925f638dad1e53f89423b086a Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 9 Jul 2023 17:28:11 +0200 Subject: [PATCH 188/432] iboiler texture, coilgun, bunch of fixes, recipes --- changelog | 22 +- gradle.properties | 2 +- src/main/java/com/hbm/blocks/ModBlocks.java | 2 +- .../com/hbm/blocks/generic/BlockBobble.java | 45 +- .../machine/MachineHeatBoilerIndustrial.java | 10 +- .../com/hbm/blocks/network/FluidSwitch.java | 47 +- .../com/hbm/blocks/network/FluidValve.java | 42 +- .../java/com/hbm/crafting/WeaponRecipes.java | 3 + .../com/hbm/entity/mob/EntityGlyphid.java | 2 +- .../entity/projectile/EntityBulletBase.java | 12 +- .../hbm/handler/BulletConfigSyncingUtil.java | 2 + .../hbm/handler/guncfg/Gun12GaugeFactory.java | 4 +- .../hbm/handler/guncfg/GunEnergyFactory.java | 53 + .../com/hbm/inventory/OreDictManager.java | 2 +- .../inventory/recipes/AssemblerRecipes.java | 2 +- .../inventory/recipes/CompressorRecipes.java | 1 + .../inventory/recipes/anvil/AnvilRecipes.java | 7 + src/main/java/com/hbm/items/ModItems.java | 6 + .../com/hbm/items/weapon/ItemAmmoHIMARS.java | 6 +- .../com/hbm/items/weapon/ItemCoilgun.java | 41 + .../com/hbm/items/weapon/ItemGrenadeKyiv.java | 7 +- src/main/java/com/hbm/lib/HbmCollection.java | 2 + src/main/java/com/hbm/lib/RefStrings.java | 2 +- src/main/java/com/hbm/main/ClientProxy.java | 5 + .../java/com/hbm/main/CraftingManager.java | 6 +- .../java/com/hbm/main/ResourceManager.java | 4 +- .../render/item/weapon/ItemRenderBenelli.java | 8 +- .../item/weapon/ItemRenderWeaponCoilgun.java | 100 + .../hbm/render/tileentity/RenderBobble.java | 15 +- .../tileentity/RenderIndustrialBoiler.java | 4 +- .../java/com/hbm/tileentity/TileMappings.java | 1 + .../tileentity/machine/TileEntityHadron.java | 10 +- .../machine/TileEntityMachineCoal.java | 2 + src/main/resources/assets/hbm/lang/de_DE.lang | 8 +- src/main/resources/assets/hbm/lang/en_US.lang | 12 +- .../assets/hbm/models/trinkets/bobble.obj | 1804 +- .../assets/hbm/models/weapons/benelli_new.obj | 5777 +++--- .../assets/hbm/models/weapons/coilgun.obj | 14767 +++++++++------- src/main/resources/assets/hbm/sounds.json | 2 + .../hbm/sounds/weapon/coilgunReload.ogg | Bin 0 -> 15803 bytes .../assets/hbm/sounds/weapon/coilgunShoot.ogg | Bin 0 -> 22284 bytes .../hbm/textures/items/gun_coilgun_ammo.png | Bin 0 -> 253 bytes .../models/machines/industrial_boiler.png | Bin 1755 -> 2677 bytes .../hbm/textures/models/weapons/coilgun.png | Bin 0 -> 26194 bytes 44 files changed, 12645 insertions(+), 10202 deletions(-) create mode 100644 src/main/java/com/hbm/items/weapon/ItemCoilgun.java create mode 100644 src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponCoilgun.java create mode 100644 src/main/resources/assets/hbm/sounds/weapon/coilgunReload.ogg create mode 100644 src/main/resources/assets/hbm/sounds/weapon/coilgunShoot.ogg create mode 100644 src/main/resources/assets/hbm/textures/items/gun_coilgun_ammo.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/coilgun.png diff --git a/changelog b/changelog index 13b15e13d..241b94655 100644 --- a/changelog +++ b/changelog @@ -2,11 +2,14 @@ * Industrial boiler * A slightly taller variant of the boiler with higher capacity * Unlike the regular boiler, it can't explode + * This is ideal for applications where closed cycles are not possible, like crude oil refineries, as the machines after the boiler are usually the bottleneck, causing the boiler to run full * Redstone-over-radio counter * Can count and send the amount of an item stored in a container * Counting supports filters by item ID, ID+meta and ore dictionary names * Each torch can count up to three items and output the results on different channels * This allows for more precise control over things like assembler chests, like turning off the ejector for an item that is already full but not other ejectors + * This process works fine with the chemical plant, chemical factory and the assembly factory. The small assembler currently still uses older code which doesn't limit the amount of items pulled, so fully preventing clogs is not possible as of now. + * Expect a fix next week * This property makes automating things with multiple inputs a lot easier * Due to the ore dictionary ability of the counter, buffered items can precisely match the requirements of the recipe * Particle collider cooling unit @@ -14,22 +17,35 @@ * Will increment a new "cooling" value which depletes over time and makes coils more effective * Overcooling causes a penalty, so coolers cannot be spammed and need to be carefully spaced out * Allows for even more compact particle accelerator setups - * Comes in two tiers, both tiers use a different cooling variable with different effectiveness, the higher tier will override the lower tier if both tiers of coolers are present + * Comes in two tiers + * The first tier has a flat bonus if the particle is cooled, with a penalty after the overcooling threshold has been crossed + * The second tier has a cooling function that peaks at a certain point and slowly decreases below 1 if overcooled, requiring more precise placement to get the full efficiency * Benelli M4 * Automatic 12 gauge shotgun with a drum mag +* Coilgun + * A single-shot gauss pistol that fires tungsten balls + * Shots penetrate blocks ## Changed * The regular boiler now only holds 16k instead of 64k (which is still a lot) * Added labels to the large mining drill's levers * Glyphid eggs can now be broken apart using an anvil, yielding glyphid meat, bones and experience bottles * The assembler now uses the new multiblock system, making it less annoying to playe and less ear-piercing to break - * The conversion happens automatically so it's not necessary to remove the assemblers beforehand + * The conversion happens automatically so it's not necessary to remove the assemblers + * While this process has been tested, it's still good practice to make a backup of your world beforehand * Reload canceling is no longer possible if no rounds have been loaded yet, preventing single round weapons like dart guns to be reload canceled * The saturnite rifle now has a functional scope * Rechambered the bolt action rifles to 7.62mm, with a mag of 5 rounds +* The compressor can now turn 4,000mB of petroleum into 2,000mB of LPG +* The lunatic marksman now has a crafting recipe +* Glyphid armor no longer absorbs all incoming damage when breaking off, instead 25% of the damage will bleed through, making it possible to oneshot them with powerful enough weapons ## Fixed * Fixed quantity of the fusion reactor's construction recipe not being displayed right -* Fixed fluid valve and redstone fluid valves having the wrong names +* Fixed fluid valve and redstone fluid valves having the wrong behaviors, being effectively switched * Fixed mobs' max health getting buffed by pollution, but the actual health staying the same * Fixed bug regarding the loot pools of satellite miners +* Fixed rocket artillery creating the wrong type of slag +* Fixed fluid valves not being able to have a fluid assigned by clicking directly on them +* Fixed the kyiv special not actually exploding +* Fixed combuston generator not properly syncing the burntime diff --git a/gradle.properties b/gradle.properties index e58957a96..c54eba9d6 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4648 +mod_build_number=4655 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 915dd8b07..45c16a9e1 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1811,7 +1811,7 @@ public class ModBlocks { machine_sawmill = new MachineSawmill().setBlockName("machine_sawmill").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_crucible = new MachineCrucible().setBlockName("machine_crucible").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire"); machine_boiler = new MachineHeatBoiler().setBlockName("machine_boiler").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_copper"); - machine_industrial_boiler = new MachineHeatBoilerIndustrial().setBlockName("machine_industrial_boiler").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_copper"); + machine_industrial_boiler = new MachineHeatBoilerIndustrial().setBlockName("machine_industrial_boiler").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); foundry_mold = new FoundryMold().setBlockName("foundry_mold").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire"); foundry_basin = new FoundryBasin().setBlockName("foundry_basin").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire"); diff --git a/src/main/java/com/hbm/blocks/generic/BlockBobble.java b/src/main/java/com/hbm/blocks/generic/BlockBobble.java index 0757002f9..66e1c5bc9 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockBobble.java +++ b/src/main/java/com/hbm/blocks/generic/BlockBobble.java @@ -170,28 +170,29 @@ public class BlockBobble extends BlockContainer implements IGUIProvider { public static enum BobbleType { - NONE( "null", "null", null, null, false, ScrapType.BOARD_BLANK), - STRENGTH( "Strength", "Strength", null, "It's essential to give your arguments impact.", false, ScrapType.BRIDGE_BIOS), - PERCEPTION( "Perception", "Perception", null, "Only through observation will you perceive weakness.", false, ScrapType.BRIDGE_NORTH), - ENDURANCE( "Endurance", "Endurance", null, "Always be ready to take one for the team.", false, ScrapType.BRIDGE_SOUTH), - CHARISMA( "Charisma", "Charisma", null, "Nothing says pizzaz like a winning smile.", false, ScrapType.BRIDGE_IO), - INTELLIGENCE( "Intelligence", "Intelligence", null, "It takes the smartest individuals to realize$there's always more to learn.", false, ScrapType.BRIDGE_BUS), - AGILITY( "Agility", "Agility", null, "Never be afraid to dodge the sensitive issues.", false, ScrapType.BRIDGE_CHIPSET), - LUCK( "Luck", "Luck", null, "There's only one way to give 110%.", false, ScrapType.BRIDGE_CMOS), - BOB( "Robert \"The Bobcat\" Katzinsky", "HbMinecraft", "Hbm's Nuclear Tech Mod", "I know where you live, " + System.getProperty("user.name"), false, ScrapType.CPU_SOCKET), - FRIZZLE( "Frooz", "Frooz", "Weapon models", "BLOOD IS FUEL", true, ScrapType.CPU_CLOCK), - PU238( "Pu-238", "Pu-238", "Improved Tom impact mechanics", null, false, ScrapType.CPU_REGISTER), - VT( "VT-6/24", "VT-6/24", "Balefire warhead model and general texturework", "You cannot unfuck a horse.", true, ScrapType.CPU_EXT), - DOC( "The Doctor", "Doctor17PH", "Russian localization, lunar miner", "Perhaps the moon rocks were too expensive", true, ScrapType.CPU_CACHE), - BLUEHAT( "The Blue Hat", "The Blue Hat", "Textures", "payday 2's deagle freeaim champ of the year 2022", true, ScrapType.MEM_16K_A), - PHEO( "Pheo", "Pheonix", "Deuterium machines, tantalium textures, Reliant Rocket", "RUN TO THE BEDROOM, ON THE SUITCASE ON THE LEFT,$YOU'LL FIND MY FAVORITE AXE", true, ScrapType.MEM_16K_B), - ADAM29( "Adam29", "Adam29", "Ethanol, liquid petroleum gas", "You know, nukes are really quite beatiful.$It's like watching a star be born for a split second.", true, ScrapType.MEM_16K_C), - UFFR( "UFFR", "UFFR", "All sorts of things from his PR", "fried shrimp", false, ScrapType.MEM_SOCKET), - VAER( "vaer", "vaer", "ZIRNOX", "taken de family out to the weekend cigarette festival", true, ScrapType.MEM_16K_D), - NOS( "Dr Nostalgia", "Dr Nostalgia", "SSG and Vortex models", "Take a picture, I'ma pose, paparazzi$I've been drinking, moving like a zombie", true, ScrapType.BOARD_TRANSISTOR), - DRILLGON( "Drillgon200", "Drillgon200", "1.12 Port", null, false, ScrapType.CPU_LOGIC), - CIRNO( "Cirno", "Cirno", "the only multi layered skin i had", "No brain. Head empty.", true, ScrapType.BOARD_BLANK), - MICROWAVE( "Microwave", "Microwave", "adding OC compat", "they call me the food heater", true, ScrapType.BRIDGE_BIOS); + NONE( "null", "null", null, null, false, ScrapType.BOARD_BLANK), + STRENGTH( "Strength", "Strength", null, "It's essential to give your arguments impact.", false, ScrapType.BRIDGE_BIOS), + PERCEPTION( "Perception", "Perception", null, "Only through observation will you perceive weakness.", false, ScrapType.BRIDGE_NORTH), + ENDURANCE( "Endurance", "Endurance", null, "Always be ready to take one for the team.", false, ScrapType.BRIDGE_SOUTH), + CHARISMA( "Charisma", "Charisma", null, "Nothing says pizzaz like a winning smile.", false, ScrapType.BRIDGE_IO), + INTELLIGENCE( "Intelligence", "Intelligence", null, "It takes the smartest individuals to realize$there's always more to learn.", false, ScrapType.BRIDGE_BUS), + AGILITY( "Agility", "Agility", null, "Never be afraid to dodge the sensitive issues.", false, ScrapType.BRIDGE_CHIPSET), + LUCK( "Luck", "Luck", null, "There's only one way to give 110%.", false, ScrapType.BRIDGE_CMOS), + BOB( "Robert \"The Bobcat\" Katzinsky", "HbMinecraft", "Hbm's Nuclear Tech Mod", "I know where you live, " + System.getProperty("user.name"), false, ScrapType.CPU_SOCKET), + FRIZZLE( "Frooz", "Frooz", "Weapon models", "BLOOD IS FUEL", true, ScrapType.CPU_CLOCK), + PU238( "Pu-238", "Pu-238", "Improved Tom impact mechanics", null, false, ScrapType.CPU_REGISTER), + VT( "VT-6/24", "VT-6/24", "Balefire warhead model and general texturework", "You cannot unfuck a horse.", true, ScrapType.CPU_EXT), + DOC( "The Doctor", "Doctor17PH", "Russian localization, lunar miner", "Perhaps the moon rocks were too expensive", true, ScrapType.CPU_CACHE), + BLUEHAT( "The Blue Hat", "The Blue Hat", "Textures", "payday 2's deagle freeaim champ of the year 2022", true, ScrapType.MEM_16K_A), + PHEO( "Pheo", "Pheonix", "Deuterium machines, tantalium textures, Reliant Rocket", "RUN TO THE BEDROOM, ON THE SUITCASE ON THE LEFT,$YOU'LL FIND MY FAVORITE AXE", true, ScrapType.MEM_16K_B), + ADAM29( "Adam29", "Adam29", "Ethanol, liquid petroleum gas", "You know, nukes are really quite beatiful.$It's like watching a star be born for a split second.", true, ScrapType.MEM_16K_C), + UFFR( "UFFR", "UFFR", "All sorts of things from his PR", "fried shrimp", false, ScrapType.MEM_SOCKET), + VAER( "vaer", "vaer", "ZIRNOX", "taken de family out to the weekend cigarette festival", true, ScrapType.MEM_16K_D), + NOS( "Dr Nostalgia", "Dr Nostalgia", "SSG and Vortex models", "Take a picture, I'ma pose, paparazzi$I've been drinking, moving like a zombie", true, ScrapType.BOARD_TRANSISTOR), + DRILLGON( "Drillgon200", "Drillgon200", "1.12 Port", null, false, ScrapType.CPU_LOGIC), + CIRNO( "Cirno", "Cirno", "the only multi layered skin i had", "No brain. Head empty.", true, ScrapType.BOARD_BLANK), + MICROWAVE( "Microwave", "Microwave", "OC compat", "they call me the food heater", true, ScrapType.BRIDGE_BIOS), + PEEP( "Peep", "LePeeperSauvage", "Coilgun model", "Fluffy ears can't hide in ash, nor snow.", true, ScrapType.CPU_CLOCK); public String name; //the title of the tooltip public String label; //the name engraved in the socket diff --git a/src/main/java/com/hbm/blocks/machine/MachineHeatBoilerIndustrial.java b/src/main/java/com/hbm/blocks/machine/MachineHeatBoilerIndustrial.java index 5b957ba0d..00b06f50d 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineHeatBoilerIndustrial.java +++ b/src/main/java/com/hbm/blocks/machine/MachineHeatBoilerIndustrial.java @@ -89,11 +89,11 @@ public class MachineHeatBoilerIndustrial extends BlockDummyable implements ILook public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { super.fillSpace(world, x, y, z, dir, o); - this.makeExtra(world, x + dir.offsetX + 1, y, z + dir.offsetZ); - this.makeExtra(world, x + dir.offsetX - 1, y, z + dir.offsetZ); - this.makeExtra(world, x + dir.offsetX, y, z + dir.offsetZ + 1); - this.makeExtra(world, x + dir.offsetX, y, z + dir.offsetZ - 1); - this.makeExtra(world, x + dir.offsetX, y + 4, z + dir.offsetZ); + this.makeExtra(world, x - dir.offsetX + 1, y, z - dir.offsetZ); + this.makeExtra(world, x - dir.offsetX - 1, y, z - dir.offsetZ); + this.makeExtra(world, x - dir.offsetX, y, z - dir.offsetZ + 1); + this.makeExtra(world, x - dir.offsetX, y, z - dir.offsetZ - 1); + this.makeExtra(world, x - dir.offsetX, y + 4, z - dir.offsetZ); } @Override diff --git a/src/main/java/com/hbm/blocks/network/FluidSwitch.java b/src/main/java/com/hbm/blocks/network/FluidSwitch.java index aa7c2d1ca..c564286c0 100644 --- a/src/main/java/com/hbm/blocks/network/FluidSwitch.java +++ b/src/main/java/com/hbm/blocks/network/FluidSwitch.java @@ -10,9 +10,9 @@ import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; import net.minecraft.world.World; @@ -30,8 +30,8 @@ public class FluidSwitch extends FluidDuctBase implements ILookOverlay { @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconRegister) { - this.iconOn = iconRegister.registerIcon(RefStrings.MODID + ":fluid_valve_on"); - this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":fluid_valve_off"); + this.iconOn = iconRegister.registerIcon(RefStrings.MODID + ":fluid_switch_on"); + this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":fluid_switch_off"); } @Override @@ -44,29 +44,30 @@ public class FluidSwitch extends FluidDuctBase implements ILookOverlay { public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { return new TileEntityFluidValve(); } - + @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(world.isRemote) - { - return true; - } else if(!player.isSneaking()) - { - int meta = world.getBlockMetadata(x, y, z); - if(meta == 0) { - world.setBlockMetadataWithNotify(x, y, z, 1, 2); - world.playSoundEffect(x, y, z, "hbm:block.reactorStart", 1.0F, 1.0F); - } else { - world.setBlockMetadataWithNotify(x, y, z, 0, 2); - world.playSoundEffect(x, y, z, "hbm:block.reactorStart", 1.0F, 0.85F); - } - + public void onNeighborBlockChange(World world, int x, int y, int z, Block block) { + + boolean on = world.isBlockIndirectlyGettingPowered(x, y, z); + int meta = world.getBlockMetadata(x, y, z); + + boolean update = false; + + if(on && meta == 0) { + world.setBlockMetadataWithNotify(x, y, z, 1, 2); + world.playSoundEffect(x, y, z, "hbm:block.reactorStart", 1.0F, 1.0F); + update = true; + } + + if(!on && meta == 1) { + world.setBlockMetadataWithNotify(x, y, z, 0, 2); + world.playSoundEffect(x, y, z, "hbm:block.reactorStart", 1.0F, 0.85F); + update = true; + } + + if(update) { TileEntityFluidValve te = (TileEntityFluidValve) world.getTileEntity(x, y, z); te.updateState(); - - return true; - } else { - return false; } } diff --git a/src/main/java/com/hbm/blocks/network/FluidValve.java b/src/main/java/com/hbm/blocks/network/FluidValve.java index 8482ebb14..be6c879e5 100644 --- a/src/main/java/com/hbm/blocks/network/FluidValve.java +++ b/src/main/java/com/hbm/blocks/network/FluidValve.java @@ -10,9 +10,9 @@ import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; import net.minecraft.world.World; @@ -30,8 +30,8 @@ public class FluidValve extends FluidDuctBase implements ILookOverlay { @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconRegister) { - this.iconOn = iconRegister.registerIcon(RefStrings.MODID + ":fluid_switch_on"); - this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":fluid_switch_off"); + this.iconOn = iconRegister.registerIcon(RefStrings.MODID + ":fluid_valve_on"); + this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":fluid_valve_off"); } @Override @@ -44,30 +44,30 @@ public class FluidValve extends FluidDuctBase implements ILookOverlay { public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { return new TileEntityFluidValve(); } - + @Override - public void onNeighborBlockChange(World world, int x, int y, int z, Block block) { + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - boolean on = world.isBlockIndirectlyGettingPowered(x, y, z); - int meta = world.getBlockMetadata(x, y, z); + if(world.isRemote) return true; - boolean update = false; + if(super.onBlockActivated(world, x, y, z, player, side, hitX, hitY, hitZ)) return true; - if(on && meta == 0) { - world.setBlockMetadataWithNotify(x, y, z, 1, 2); - world.playSoundEffect(x, y, z, "hbm:block.reactorStart", 1.0F, 1.0F); - update = true; - } - - if(!on && meta == 1) { - world.setBlockMetadataWithNotify(x, y, z, 0, 2); - world.playSoundEffect(x, y, z, "hbm:block.reactorStart", 1.0F, 0.85F); - update = true; - } - - if(update) { + if(!player.isSneaking()) { + int meta = world.getBlockMetadata(x, y, z); + if(meta == 0) { + world.setBlockMetadataWithNotify(x, y, z, 1, 2); + world.playSoundEffect(x, y, z, "hbm:block.reactorStart", 1.0F, 1.0F); + } else { + world.setBlockMetadataWithNotify(x, y, z, 0, 2); + world.playSoundEffect(x, y, z, "hbm:block.reactorStart", 1.0F, 0.85F); + } + TileEntityFluidValve te = (TileEntityFluidValve) world.getTileEntity(x, y, z); te.updateState(); + + return true; + } else { + return false; } } diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index e8c622861..a4d35d774 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -158,6 +158,9 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_glass_cannon, 1), new Object[] { "GGC", "GTM", 'G', Item.getItemFromBlock(ModBlocks.glass_quartz), 'C', ModItems.battery_lithium_cell, 'T', ModItems.crt_display, 'M', ModItems.mechanism_special }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_remington, 1), new Object[] { "PPM", "S L", 'P', STEEL.plate(), 'M', ModItems.mechanism_rifle_1, 'S', KEY_SLAB, 'L', KEY_LOG }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_benelli), new Object[] { "HHP", "SSM", "AAP", 'H', ModItems.ingot_dura_steel, 'S', ModItems.hull_small_steel, 'A', ModItems.hull_small_aluminium, 'P', ModItems.ingot_polymer, 'M', ModItems.mechanism_rifle_2 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_lunatic_marksman), new Object[] { " GN", "SSM", " A", 'G', KEY_ANYPANE, 'N', ModItems.powder_nitan_mix, 'S', BIGMT.plate(), 'M', ModItems.mechanism_special, 'A', ANY_RESISTANTALLOY.plateCast() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_coilgun), new Object[] { "CCC", "SSM", " P", 'C', ModBlocks.capacitor_copper, 'S', BIGMT.plate(), 'M', ModItems.mechanism_special, 'P', ANY_PLASTIC.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_coilgun_ammo, 16), new Object[] { " T ", "TST", " T ", 'T', W.ingot(), 'S', BIGMT.ingot() }); //Ammo assemblies CraftingManager.addRecipeAuto(new ItemStack(ModItems.pellet_flechette, 1), new Object[] { " L ", " L ", "LLL", 'L', PB.nugget() }); diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java index a1e41ed7f..a28de4aa4 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java @@ -96,7 +96,7 @@ public class EntityGlyphid extends EntityMob { int chance = getArmorBreakChance(amount); //chances of armor being broken off if(this.rand.nextInt(chance) == 0 && amount > 1) { breakOffArmor(); - amount = 0; + amount *= 0.25F; } amount -= getDamageThreshold(); diff --git a/src/main/java/com/hbm/entity/projectile/EntityBulletBase.java b/src/main/java/com/hbm/entity/projectile/EntityBulletBase.java index 76f9340b0..6ebfd313a 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityBulletBase.java +++ b/src/main/java/com/hbm/entity/projectile/EntityBulletBase.java @@ -511,16 +511,18 @@ public class EntityBulletBase extends Entity implements IProjectile { if(worldObj.isRemote && !config.vPFX.isEmpty()) { - double motion = Math.min(Vec3.createVectorHelper(motionX, motionY, motionZ).lengthVector(), 0.1); + Vec3 vec = Vec3.createVectorHelper(posX - prevPosX, posY - prevPosY, posZ - prevPosZ); + double motion = Math.max(vec.lengthVector(), 0.1); + vec = vec.normalize(); - for(double d = 0; d < motion; d += 0.0625) { + for(double d = 0; d < motion; d += 0.5) { NBTTagCompound nbt = new NBTTagCompound(); nbt.setString("type", "vanillaExt"); nbt.setString("mode", config.vPFX); - nbt.setDouble("posX", (this.lastTickPosX - this.posX) * d + this.posX); - nbt.setDouble("posY", (this.lastTickPosY - this.posY) * d + this.posY); - nbt.setDouble("posZ", (this.lastTickPosZ - this.posZ) * d + this.posZ); + nbt.setDouble("posX", this.posX - vec.xCoord * d); + nbt.setDouble("posY", this.posY - vec.yCoord * d); + nbt.setDouble("posZ", this.posZ - vec.zCoord * d); MainRegistry.proxy.effectNT(nbt); } } diff --git a/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java b/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java index 7e7af9633..d3262d8b9 100644 --- a/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java +++ b/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java @@ -159,6 +159,7 @@ public class BulletConfigSyncingUtil { public static int SPECIAL_GAUSS = i++; public static int SPECIAL_GAUSS_CHARGED = i++; public static int SPECIAL_EMP = i++; + public static int SPECIAL_COIL = i++; public static int FLAMER_NORMAL = i++; public static int FLAMER_NAPALM = i++; @@ -449,6 +450,7 @@ public class BulletConfigSyncingUtil { configSet.put(SPECIAL_GAUSS, GunGaussFactory.getGaussConfig()); configSet.put(SPECIAL_GAUSS_CHARGED, GunGaussFactory.getAltConfig()); configSet.put(SPECIAL_EMP, GunEnergyFactory.getOrbusConfig()); + configSet.put(SPECIAL_COIL, GunEnergyFactory.getCoilConfig()); configSet.put(FLAMER_NORMAL, GunEnergyFactory.getFlameConfig()); configSet.put(FLAMER_NAPALM, GunEnergyFactory.getNapalmConfig()); diff --git a/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java index f580db9e6..0a397f04a 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java @@ -248,8 +248,8 @@ public class Gun12GaugeFactory { config.hasSights = true; config.durability = 250000; config.allowsInfinity = true; - config.firingSound = "hbm:weapon.autoshotgunFirePB3"; - config.reloadSound = "hbm:weapon.shotgunReloadPB3"; + config.firingSound = "hbm:weapon.deagleShoot"; + config.firingPitch = 0.75F; config.reloadType = 2; config.reloadSoundEnd = true; diff --git a/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java b/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java index 2fafccbeb..55335e415 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java @@ -180,6 +180,34 @@ public class GunEnergyFactory { return config; } + public static GunConfiguration getCoilgunConfig() { + + GunConfiguration config = new GunConfiguration(); + + config.rateOfFire = 5; + config.roundsPerCycle = 1; + config.gunMode = GunConfiguration.MODE_NORMAL; + config.firingMode = GunConfiguration.FIRE_MANUAL; + config.reloadDuration = 20; + config.firingDuration = 0; + config.ammoCap = 1; + config.durability = 1500; + config.reloadType = GunConfiguration.RELOAD_FULL; + config.allowsInfinity = true; + config.crosshair = Crosshair.CIRCLE; + config.firingSound = "hbm:weapon.coilgunShoot"; + config.reloadSoundEnd = false; + config.reloadSound = "hbm:weapon.coilgunReload"; + + config.name = "ArmsKore Coilgun"; + config.manufacturer = EnumGunManufacturer.DRG; + + config.config = new ArrayList(); + config.config.add(BulletConfigSyncingUtil.SPECIAL_COIL); + + return config; + } + public static GunConfiguration getVortexConfig() { GunConfiguration config = new GunConfiguration(); @@ -221,6 +249,31 @@ public class GunEnergyFactory { return bullet; } + public static BulletConfiguration getCoilConfig() { + + BulletConfiguration bullet = new BulletConfiguration(); + + bullet.ammo = new ComparableStack(ModItems.gun_coilgun_ammo); + + bullet.velocity = 5F; + bullet.spread = 0.0F; + bullet.wear = 10; + bullet.bulletsMin = 1; + bullet.bulletsMax = 1; + bullet.dmgMin = 35; + bullet.dmgMax = 45; + bullet.gravity = 0D; + bullet.maxAge = 100; + bullet.doesPenetrate = true; + bullet.isSpectral = true; + + bullet.style = bullet.STYLE_BOLT; + bullet.trail = bullet.BOLT_NIGHTMARE; + bullet.vPFX = "fireworks"; + + return bullet; + } + public static BulletConfiguration getFlameConfig() { BulletConfiguration bullet = new BulletConfiguration(); diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index 271f58aac..1f96d0d4b 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -884,7 +884,7 @@ public class OreDictManager { public String gem() { return GEM + groupName; } public String crystal() { return CRYSTAL + groupName; } public String plate() { return PLATE + groupName; } - public String plateTriple() { return PLATECAST + groupName; } + public String plateCast() { return PLATECAST + groupName; } public String billet() { return BILLET + groupName; } public String block() { return BLOCK + groupName; } public String ore() { return ORE + groupName; } diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 1e63c37e2..de0d35584 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -299,7 +299,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.fusion_heater, 1), new AStack[] {new OreDictStack(W.ingot(), 4), new OreDictStack(STEEL.plate528(), 2), new OreDictStack(OreDictManager.getReflector(), 2), new OreDictStack(CU.plate(), 4), new ComparableStack(ModItems.magnetron, 1), new ComparableStack(ModItems.wire_advanced_alloy, 4), },150); makeRecipe(new ComparableStack(ModBlocks.watz_element, 3), new AStack[] {new OreDictStack(STEEL.plateCast(), 2), new OreDictStack(ZR.ingot(), 2), new OreDictStack(BIGMT.ingot(), 2), new OreDictStack(ANY_HARDPLASTIC.ingot(), 4)},200); makeRecipe(new ComparableStack(ModBlocks.watz_cooler, 3), new AStack[] {new OreDictStack(STEEL.plateCast(), 2), new OreDictStack(CU.plateCast(), 4), new OreDictStack(RUBBER.ingot(), 2), }, 200); - makeRecipe(new ComparableStack(ModBlocks.watz_end, 3), new AStack[] {new OreDictStack(ANY_RESISTANTALLOY.plateTriple()), new OreDictStack(B.ingot(), 3), new OreDictStack(STEEL.plate(), 9), }, 100); + makeRecipe(new ComparableStack(ModBlocks.watz_end, 3), new AStack[] {new OreDictStack(ANY_RESISTANTALLOY.plateCast()), new OreDictStack(B.ingot(), 3), new OreDictStack(STEEL.plate(), 9), }, 100); makeRecipe(new ComparableStack(ModBlocks.fwatz_hatch, 1), new AStack[] {new OreDictStack(W.ingot(), 6), new OreDictStack(CMB.plate(), 4), },250); makeRecipe(new ComparableStack(ModBlocks.fwatz_conductor, 1), new AStack[] {new OreDictStack(CMB.plate(), 2), new ComparableStack(ModItems.coil_magnetized_tungsten, 5), },250); makeRecipe(new ComparableStack(ModBlocks.fwatz_computer, 1), new AStack[] {new ComparableStack(ModBlocks.block_meteor, 1), new ComparableStack(ModItems.wire_magnetized_tungsten, 16), new OreDictStack(DIAMOND.dust(), 6), new OreDictStack(MAGTUNG.dust(), 6), new OreDictStack(DESH.dust(), 4), },300); diff --git a/src/main/java/com/hbm/inventory/recipes/CompressorRecipes.java b/src/main/java/com/hbm/inventory/recipes/CompressorRecipes.java index 2e22d2e8b..62a686e56 100644 --- a/src/main/java/com/hbm/inventory/recipes/CompressorRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CompressorRecipes.java @@ -22,6 +22,7 @@ public class CompressorRecipes extends SerializableRecipe { recipes.put(new Pair(Fluids.STEAM, 0), new CompressorRecipe(1_000, new FluidStack(Fluids.HOTSTEAM, 100))); recipes.put(new Pair(Fluids.HOTSTEAM, 0), new CompressorRecipe(1_000, new FluidStack(Fluids.SUPERHOTSTEAM, 100))); recipes.put(new Pair(Fluids.SUPERHOTSTEAM, 0), new CompressorRecipe(1_000, new FluidStack(Fluids.ULTRAHOTSTEAM, 100))); + recipes.put(new Pair(Fluids.PETROLEUM, 0), new CompressorRecipe(4_000, new FluidStack(Fluids.LPG, 2_000))); } public static class CompressorRecipe { diff --git a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java index b2fb90abf..bc29c1fc2 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -330,6 +330,13 @@ public class AnvilRecipes { new ComparableStack(ModItems.plate_polymer, 8) }, new AnvilOutput(new ItemStack(ModBlocks.machine_boiler))).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( + new AStack[] { + new OreDictStack(STEEL.plateCast(), 8), + new OreDictStack(CU.ingot(), 8), + new OreDictStack(ANY_PLASTIC.ingot(), 4) + }, new AnvilOutput(new ItemStack(ModBlocks.machine_industrial_boiler))).setTier(3)); + constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] { new OreDictStack(STEEL.plate(), 4), diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index b5665f08c..ae099b4e1 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1573,6 +1573,8 @@ public class ModItems { public static Item gun_b92; public static Item gun_b92_ammo; public static Item gun_b93; + public static Item gun_coilgun; + public static Item gun_coilgun_ammo; public static Item gun_xvl1456; public static Item gun_xvl1456_ammo; public static Item gun_osipr; @@ -4198,6 +4200,8 @@ public class ModItems { gun_b92_ammo = new GunB92Cell().setUnlocalizedName("gun_b92_ammo").setMaxStackSize(1).setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_b92_ammo_alt"); gun_b92 = new GunB92().setUnlocalizedName("gun_b92").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_b92"); gun_b93 = new GunB93().setUnlocalizedName("gun_b93").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_b93"); + gun_coilgun_ammo = new Item().setUnlocalizedName("gun_coilgun_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_coilgun_ammo"); + gun_coilgun = new ItemCoilgun(GunEnergyFactory.getCoilgunConfig()).setUnlocalizedName("gun_coilgun").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_coilgun"); gun_xvl1456_ammo = new Item().setUnlocalizedName("gun_xvl1456_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_xvl1456_ammo"); gun_xvl1456 = new ItemGunGauss(GunGaussFactory.getXVLConfig(), GunGaussFactory.getChargedConfig()).setUnlocalizedName("gun_xvl1456").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_xvl1456"); gun_osipr_ammo = new Item().setUnlocalizedName("gun_osipr_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_osipr_ammo"); @@ -7017,6 +7021,7 @@ public class ModItems { GameRegistry.registerItem(gun_bolt_action_green, gun_bolt_action_green.getUnlocalizedName()); GameRegistry.registerItem(gun_bolt_action_saturnite, gun_bolt_action_saturnite.getUnlocalizedName()); GameRegistry.registerItem(gun_mymy, gun_mymy.getUnlocalizedName()); + GameRegistry.registerItem(gun_coilgun, gun_coilgun.getUnlocalizedName()); GameRegistry.registerItem(gun_xvl1456, gun_xvl1456.getUnlocalizedName()); GameRegistry.registerItem(gun_osipr, gun_osipr.getUnlocalizedName()); GameRegistry.registerItem(gun_immolator, gun_immolator.getUnlocalizedName()); @@ -7072,6 +7077,7 @@ public class ModItems { //GameRegistry.registerItem(gun_uboinik_ammo, gun_uboinik_ammo.getUnlocalizedName()); //GameRegistry.registerItem(gun_lever_action_ammo, gun_lever_action_ammo.getUnlocalizedName()); //GameRegistry.registerItem(gun_bolt_action_ammo, gun_bolt_action_ammo.getUnlocalizedName()); + GameRegistry.registerItem(gun_coilgun_ammo, gun_coilgun_ammo.getUnlocalizedName()); GameRegistry.registerItem(gun_xvl1456_ammo, gun_xvl1456_ammo.getUnlocalizedName()); GameRegistry.registerItem(gun_osipr_ammo, gun_osipr_ammo.getUnlocalizedName()); GameRegistry.registerItem(gun_osipr_ammo2, gun_osipr_ammo2.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/weapon/ItemAmmoHIMARS.java b/src/main/java/com/hbm/items/weapon/ItemAmmoHIMARS.java index a33cdff56..f631a8a97 100644 --- a/src/main/java/com/hbm/items/weapon/ItemAmmoHIMARS.java +++ b/src/main/java/com/hbm/items/weapon/ItemAmmoHIMARS.java @@ -171,10 +171,10 @@ public class ItemAmmoHIMARS extends Item { private void init() { /* STANDARD ROCKETS */ - this.itemTypes[SMALL] = new HIMARSRocket("standard", "himars_standard", 0) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { standardExplosion(rocket, mop, 20F, 3F, false, ModBlocks.slag, 1); }}; - this.itemTypes[SMALL_HE] = new HIMARSRocket("standard_he", "himars_standard_he", 0) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { standardExplosion(rocket, mop, 20F, 3F, true, ModBlocks.slag, 1); }}; + this.itemTypes[SMALL] = new HIMARSRocket("standard", "himars_standard", 0) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { standardExplosion(rocket, mop, 20F, 3F, false, ModBlocks.block_slag, 1); }}; + this.itemTypes[SMALL_HE] = new HIMARSRocket("standard_he", "himars_standard_he", 0) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { standardExplosion(rocket, mop, 20F, 3F, true, ModBlocks.block_slag, 1); }}; this.itemTypes[SMALL_LAVA] = new HIMARSRocket("standard_lava", "himars_standard_lava", 0) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { standardExplosion(rocket, mop, 20F, 3F, true, ModBlocks.volcanic_lava_block, 0); }}; - this.itemTypes[LARGE] = new HIMARSRocket("single", "himars_single", 1) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { standardExplosion(rocket, mop, 50F, 5F, true, ModBlocks.slag, 1); }}; + this.itemTypes[LARGE] = new HIMARSRocket("single", "himars_single", 1) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { standardExplosion(rocket, mop, 50F, 5F, true, ModBlocks.block_slag, 1); }}; this.itemTypes[SMALL_MINI_NUKE] = new HIMARSRocket("standard_mini_nuke", "himars_standard_mini_nuke", 0) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { diff --git a/src/main/java/com/hbm/items/weapon/ItemCoilgun.java b/src/main/java/com/hbm/items/weapon/ItemCoilgun.java new file mode 100644 index 000000000..9bce20e0e --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/ItemCoilgun.java @@ -0,0 +1,41 @@ +package com.hbm.items.weapon; + +import com.hbm.handler.GunConfiguration; +import com.hbm.render.anim.BusAnimation; +import com.hbm.render.anim.BusAnimationKeyframe; +import com.hbm.render.anim.BusAnimationSequence; +import com.hbm.render.anim.HbmAnimations.AnimType; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.item.ItemStack; + +public class ItemCoilgun extends ItemGunBase { + + public ItemCoilgun(GunConfiguration config) { + super(config); + } + + @Override + @SideOnly(Side.CLIENT) + public BusAnimation getAnimation(ItemStack stack, AnimType type) { + + if(type == AnimType.CYCLE) { + return new BusAnimation() + .addBus("RECOIL", new BusAnimationSequence() + .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 100)) + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 200))); + } + + if(type == AnimType.RELOAD) { + return new BusAnimation() + .addBus("RELOAD", new BusAnimationSequence() + .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 250)) + .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 500)) + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 250))); + } + + GunConfiguration config = ((ItemGunBase) stack.getItem()).mainConfig; + return config.animations.get(type); + } +} diff --git a/src/main/java/com/hbm/items/weapon/ItemGrenadeKyiv.java b/src/main/java/com/hbm/items/weapon/ItemGrenadeKyiv.java index 1adcdb3dc..bd5ecda87 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGrenadeKyiv.java +++ b/src/main/java/com/hbm/items/weapon/ItemGrenadeKyiv.java @@ -1,5 +1,7 @@ package com.hbm.items.weapon; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.world.World; public class ItemGrenadeKyiv extends ItemGenericGrenade { @@ -8,7 +10,8 @@ public class ItemGrenadeKyiv extends ItemGenericGrenade { super(fuse); } - public void explode(World world, double x, double y, double z) { - world.newExplosion(null, x, y, z, 5F, true, true); + @Override + public void explode(Entity grenade, EntityLivingBase thrower, World world, double x, double y, double z) { + world.newExplosion(grenade, x, y, z, 5F, true, true); } } diff --git a/src/main/java/com/hbm/lib/HbmCollection.java b/src/main/java/com/hbm/lib/HbmCollection.java index a0d1efc1e..dba947b9b 100644 --- a/src/main/java/com/hbm/lib/HbmCollection.java +++ b/src/main/java/com/hbm/lib/HbmCollection.java @@ -95,6 +95,8 @@ public class HbmCollection { COMBINE, /**Cube 2: Sauerbraten**/ CUBE, + /**Deep Rock Galactic**/ + DRG, /**Enzinger Union**/ ENZINGER, /**Equestria Missile Systems**/ diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 7d87518c8..6d1da286d 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4648)"; + public static final String VERSION = "1.0.27 BETA (4655)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 8218dae86..5be6906a3 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -521,6 +521,7 @@ public class ClientProxy extends ServerProxy { MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_red, new ItemRenderWeaponNovac()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_lunatic_marksman, new ItemRenderLunaticSniper()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_benelli, new ItemRenderBenelli()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_coilgun, new ItemRenderWeaponCoilgun()); //multitool MinecraftForgeClient.registerItemRenderer(ModItems.multitool_dig, new ItemRenderMultitool()); MinecraftForgeClient.registerItemRenderer(ModItems.multitool_silk, new ItemRenderMultitool()); @@ -1177,6 +1178,10 @@ public class ClientProxy extends ServerProxy { fx = new net.minecraft.client.particle.EntityReddustFX(world, x, y, z, 0.01F, 0.5F, 0.1F); } + if("fireworks".equals(data.getString("mode"))) { + fx = new EntityFireworkSparkFX(world, x, y, z, 0, 0, 0, Minecraft.getMinecraft().effectRenderer); + } + if("largeexplode".equals(data.getString("mode"))) { diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index f0bc031ac..368aaf55d 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -377,7 +377,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.mechanism_launcher_2, 1), new Object[] { "TTT", "SSS", "BBI", 'T', ALLOY.plate(), 'S', ANY_PLASTIC.ingot(), 'B', ModItems.bolt_dura_steel, 'I', DESH.ingot() }); addRecipeAuto(new ItemStack(ModItems.mechanism_special, 1), new Object[] { "PCI", "ISS", "PCI", 'P', ModItems.plate_desh, 'C', ModItems.coil_advanced_alloy, 'I', STAR.ingot(), 'S', ModItems.circuit_targeting_tier3 }); - addRecipeAuto(new ItemStack(ModBlocks.watz_pump, 1), new Object[] { "MPM", "PCP", "PSP", 'M', ModItems.motor_desh, 'P', ANY_RESISTANTALLOY.plateTriple(), 'C', KEY_CIRCUIT_BISMUTH, 'S', ModItems.pipes_steel }); + addRecipeAuto(new ItemStack(ModBlocks.watz_pump, 1), new Object[] { "MPM", "PCP", "PSP", 'M', ModItems.motor_desh, 'P', ANY_RESISTANTALLOY.plateCast(), 'C', KEY_CIRCUIT_BISMUTH, 'S', ModItems.pipes_steel }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.fwatz_cooler), 1), new Object[] { "IPI", "IPI", "IPI", 'I', TI.ingot(), 'P', TI.plate() }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.fwatz_tank), 1), new Object[] { "CGC", "GGG", "CGC", 'C', CMB.plate(), 'G', KEY_ANYPANE }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.fwatz_scaffold), 1), new Object[] { "IPI", "P P", "IPI", 'I', W.ingot(), 'P', getReflector() }); @@ -792,7 +792,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.barrel_antimatter, 1), new Object[] { "IPI", "IBI", "IPI", 'I', BIGMT.plate(), 'P', ModItems.coil_advanced_torus, 'B', ModItems.battery_sc_technetium }); addRecipeAuto(new ItemStack(ModBlocks.tesla, 1), new Object[] { "CCC", "PIP", "WTW", 'C', ModItems.coil_copper, 'I', IRON.ingot(), 'P', ANY_PLASTIC.ingot(), 'T', ModBlocks.machine_transformer, 'W', KEY_PLANKS }); addRecipeAuto(new ItemStack(ModBlocks.struct_plasma_core, 1), new Object[] { "CBC", "BHB", "CBC", 'C', ModItems.circuit_gold, 'B', ModBlocks.machine_lithium_battery, 'H', ModBlocks.fusion_heater }); - addRecipeAuto(new ItemStack(ModBlocks.struct_watz_core, 1), new Object[] { "CBC", "BHB", "CBC", 'C', ModItems.circuit_schrabidium, 'B', ANY_RESISTANTALLOY.plateTriple(), 'H', ModBlocks.watz_cooler }); + addRecipeAuto(new ItemStack(ModBlocks.struct_watz_core, 1), new Object[] { "CBC", "BHB", "CBC", 'C', ModItems.circuit_schrabidium, 'B', ANY_RESISTANTALLOY.plateCast(), 'H', ModBlocks.watz_cooler }); addShapelessAuto(new ItemStack(ModBlocks.fusion_heater), new Object[] { ModBlocks.fusion_hatch }); addShapelessAuto(new ItemStack(ModItems.energy_core), new Object[] { ModItems.fusion_core, ModItems.fuse }); addRecipeAuto(new ItemStack(ModItems.catalytic_converter, 1), new Object[] { "PCP", "PBP", "PCP", 'P', ANY_HARDPLASTIC.ingot(), 'C', CO.dust(), 'B', BI.ingot() }); @@ -839,6 +839,8 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.hadron_analysis, 1), new Object[] { "IPI", "PCP", "IPI", 'I', TI.ingot(), 'P', getReflector(), 'C', ModItems.circuit_gold }); addShapelessAuto(new ItemStack(ModBlocks.hadron_analysis_glass, 1), new Object[] { ModBlocks.hadron_analysis, KEY_ANYGLASS }); addRecipeAuto(new ItemStack(ModBlocks.hadron_access, 1), new Object[] { "IGI", "CRC", "IPI", 'I', ModItems.plate_polymer, 'G', KEY_ANYPANE, 'C', ModItems.circuit_aluminium, 'R', REDSTONE.block(), 'P', ModBlocks.hadron_plating_blue }); + addRecipeAuto(new ItemStack(ModBlocks.hadron_cooler, 1, 0), new Object[] { "PCP", "CHC", "PCP", 'P', ANY_RESISTANTALLOY.plateCast(), 'C', ModItems.circuit_gold, 'H', Fluids.HELIUM4.getDict(16_000) }); + addRecipeAuto(new ItemStack(ModBlocks.hadron_cooler, 1, 1), new Object[] { "PCP", "CHC", "PCP", 'P', GOLD.plateCast(), 'C', ModItems.motor_bismuth, 'H', new ItemStack(ModBlocks.hadron_cooler, 1, 0) }); addRecipeAuto(new ItemStack(ModItems.ingot_schrabidium, 8), new Object[] { "UUU", "UPU", "UUU", 'U', U.ingot(), 'P', new ItemStack(ModItems.particle_higgs).setStackDisplayName("Higgs Boson (Temporary Recipe)") }); addRecipeAuto(new ItemStack(ModItems.ingot_euphemium, 8), new Object[] { "UUU", "UPU", "UUU", 'U', PU.ingot(), 'P', new ItemStack(ModItems.particle_dark).setStackDisplayName("Dark Matter (Temporary Recipe)") }); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 582b5609c..681ed777f 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -749,7 +749,8 @@ public class ResourceManager { public static final IModelCustom m2 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/m2_browning.obj")).asDisplayList(); //large fella should be a display list public static final IModelCustom lunatic_sniper = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/lunatic_sniper.obj")).asDisplayList(); public static final IModelCustom tau = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/tau.obj")); - public static final IModelCustom benelli = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/benelli_new.obj")); + public static final IModelCustom benelli = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/benelli_new.obj")).asDisplayList(); + public static final IModelCustom coilgun = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/coilgun.obj")).asDisplayList(); public static final IModelCustom lance = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/lance.obj")); @@ -841,6 +842,7 @@ public class ResourceManager { public static final ResourceLocation lunatic_sniper_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lunatic_sniper.png"); public static final ResourceLocation tau_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/tau.png"); public static final ResourceLocation benelli_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/benelli_tex.png"); + public static final ResourceLocation coilgun_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/coilgun.png"); public static final ResourceLocation lance_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lance.png"); diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderBenelli.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderBenelli.java index ed17d1955..712cc58ab 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderBenelli.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderBenelli.java @@ -83,10 +83,10 @@ public class ItemRenderBenelli implements IItemRenderer GL11.glPopMatrix(); break; case EQUIPPED:// In hand from other's POV - GL11.glRotatef(90.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(-50.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(90.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(-0.0F, -0.2F, -1.28F); + GL11.glRotatef(15F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(-170, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(-15F, 1.0F, 0.0F, 0.0F); + GL11.glTranslatef(-0.4F, 0.05F, -0.5F); GL11.glRotated(recoil[0], 1, 0, 0); GL11.glScaled(scale2 - scale2 * 2, scale2, scale2); diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponCoilgun.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponCoilgun.java new file mode 100644 index 000000000..4bca0361c --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponCoilgun.java @@ -0,0 +1,100 @@ +package com.hbm.render.item.weapon; + +import org.lwjgl.opengl.GL11; + +import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraftforge.client.IItemRenderer; + +public class ItemRenderWeaponCoilgun implements IItemRenderer { + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + switch(type) { + case EQUIPPED: + case EQUIPPED_FIRST_PERSON: + case ENTITY: + case INVENTORY: + return true; + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { + + return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + GL11.glPushMatrix(); + + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glEnable(GL11.GL_LIGHTING); + + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.coilgun_tex); + + switch(type) { + + case EQUIPPED_FIRST_PERSON: + + double s0 = 0.25D; + GL11.glRotated(20, 0, 0, 1); + GL11.glTranslated(0.75, 0.3, -0.5); + GL11.glRotated(-10, 0, 1, 0); + GL11.glScaled(s0, s0, s0); + + double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); + GL11.glTranslated(-1.5 - recoil[0] * 0.5, 0, 0); + GL11.glRotated(recoil[0] * 45, 0, 0, 1); + GL11.glTranslated(1.5, 0, 0); + + double[] reload = HbmAnimations.getRelevantTransformation("RELOAD"); + GL11.glTranslated(-2.5, 0, 0); + GL11.glRotated(reload[0] * -45, 0, 0, 1); + GL11.glTranslated(2.5, 0, 0); + + break; + + case EQUIPPED: + + double scale = 0.25D; + GL11.glScaled(scale, scale, scale); + GL11.glRotatef(15F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(-80, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(-15F, 0.0F, 0.0F, 1.0F); + GL11.glTranslatef(1.25F, 0.5F, -1.75F); + + break; + + case ENTITY: + + double s1 = 0.2D; + GL11.glScaled(s1, s1, s1); + + break; + + case INVENTORY: + + double s = 3.5D; + GL11.glTranslated(6, 8, 0); + GL11.glRotated(-135, 0, 0, 1); + GL11.glScaled(s, s, -s); + + break; + + default: break; + } + + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.coilgun.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPopMatrix(); + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderBobble.java b/src/main/java/com/hbm/render/tileentity/RenderBobble.java index 649bd7ce5..021499dbc 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderBobble.java +++ b/src/main/java/com/hbm/render/tileentity/RenderBobble.java @@ -46,6 +46,7 @@ public class RenderBobble extends TileEntitySpecialRenderer { public static final ResourceLocation bobble_drillgon = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/drillgon200.png"); public static final ResourceLocation bobble_cirno = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/cirno.png"); public static final ResourceLocation bobble_microwave = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/microwave.png"); + public static final ResourceLocation bobble_peep = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/peep.png"); @Override public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float intero) { @@ -95,7 +96,8 @@ public class RenderBobble extends TileEntitySpecialRenderer { case VAER: bindTexture(bobble_vaer); break; case NOS: bindTexture(bobble_nos); break; case DRILLGON: bindTexture(bobble_drillgon); break; - case MICROWAVE: bindTexture(bobble_microwave); break; + case MICROWAVE: bindTexture(bobble_microwave); break; + case PEEP: bindTexture(bobble_peep); break; default: bindTexture(ResourceManager.universal); } @@ -199,6 +201,9 @@ public class RenderBobble extends TileEntitySpecialRenderer { case VAER: rotLeftArm = new double[]{0, -5, 45}; rotRightArm = new double[]{0, 15, 45}; + case PEEP: + rotLeftArm = new double[]{0, 0, 1}; + rotRightArm = new double[]{0, 0, 1}; break; } } @@ -211,6 +216,8 @@ public class RenderBobble extends TileEntitySpecialRenderer { GL11.glPushMatrix(); GL11.glRotated(rotBody, 0, 1, 0); + if(type == BobbleType.PEEP) bobble.renderPart("PeepTail"); + GL11.glDisable(GL11.GL_CULL_FACE); String suffix = type.skinLayers ? "" : "17"; @@ -280,9 +287,9 @@ public class RenderBobble extends TileEntitySpecialRenderer { GL11.glTranslated(0, -1.75, 0); bobble.renderPart("Head" + suffix); - - if(type == BobbleType.VT) - bobble.renderPart("Horn"); + + if(type == BobbleType.VT) bobble.renderPart("Horn"); + if(type == BobbleType.PEEP) bobble.renderPart("PeepHat"); if(type == BobbleType.VAER) { GL11.glTranslated(0.25, 1.9, 0.075); diff --git a/src/main/java/com/hbm/render/tileentity/RenderIndustrialBoiler.java b/src/main/java/com/hbm/render/tileentity/RenderIndustrialBoiler.java index 9bbf30997..f2d0da729 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderIndustrialBoiler.java +++ b/src/main/java/com/hbm/render/tileentity/RenderIndustrialBoiler.java @@ -30,7 +30,7 @@ public class RenderIndustrialBoiler extends TileEntitySpecialRenderer implements @Override public Item getItemForRenderer() { - return Item.getItemFromBlock(ModBlocks.machine_boiler); + return Item.getItemFromBlock(ModBlocks.machine_industrial_boiler); } @Override @@ -38,7 +38,7 @@ public class RenderIndustrialBoiler extends TileEntitySpecialRenderer implements return new ItemRenderBase( ) { public void renderInventory() { GL11.glTranslated(0, -3, 0); - GL11.glScaled(3, 3, 3); + GL11.glScaled(2.5, 2.5, 2.5); } public void renderCommonWithStack(ItemStack item) { GL11.glRotatef(90, 0F, 1F, 0F); diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 5afef6e01..0210ff1ad 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -265,6 +265,7 @@ public class TileMappings { put(TileEntitySawmill.class, "tileentity_sawmill"); put(TileEntityCrucible.class, "tileentity_crucible"); put(TileEntityHeatBoiler.class, "tileentity_heat_boiler"); + put(TileEntityHeatBoilerIndustrial.class, "tileentity_heat_boiler_industrial"); put(TileEntityFoundryMold.class, "tileentity_foundry_mold"); put(TileEntityFoundryBasin.class, "tileentity_foundry_basin"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java index 4b6d588c1..0c87a90b0 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java @@ -391,11 +391,11 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs //not the best code ever made but it works, dammit if(cl1 > 0) { - if(cl1 > 15) { - coilVal *= 0.90; - } else { - coilVal *= 1.25; - } + + double mult = 2D - (cl1 - 15D) * (cl1 - 15D) / 225D; + mult = Math.max(mult, 0.1D); + coilVal *= mult; + } else if(cl0 > 0) { if(cl0 > 10) { coilVal *= 0.75; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCoal.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCoal.java index 88e45d6b7..b13e35d18 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCoal.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCoal.java @@ -150,6 +150,7 @@ public class TileEntityMachineCoal extends TileEntityMachinePolluting implements NBTTagCompound data = new NBTTagCompound(); data.setLong("power", power); + data.setInteger("burnTime", burnTime); tank.writeToNBT(data, "tank"); this.networkPack(data, 15); } @@ -158,6 +159,7 @@ public class TileEntityMachineCoal extends TileEntityMachinePolluting implements @Override public void networkUnpack(NBTTagCompound nbt) { this.power = nbt.getLong("power"); + this.burnTime = nbt.getInteger("burnTime"); this.tank.readFromNBT(nbt, "tank"); } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 44aa3dfe6..d11971bbd 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -1874,6 +1874,8 @@ item.gun_calamity.name=Knochensäge item.gun_calamity_ammo.name=.50 BMG Patrone (LEGACY) item.gun_calamity_dual.name=Sattelkanone item.gun_chemthrower.name=Chemowerfer +item.gun_coilgun.name=Gaußpistole +item.gun_coilgun_ammo.name=Wolframkugel item.gun_cryolator.name=Der Cryolator item.gun_cryolator_ammo.name=Kryozelle item.gun_dampfmaschine.name=Garantiert keine Scherzwaffe @@ -3811,8 +3813,8 @@ tile.fluid_duct_gauge.desc=Rohr welches anzeight, wie viel Flüssigkeit$sich pro tile.fluid_duct_neo.name=Universelles Flüssigkeitsrohr tile.fluid_duct_paintable.name=Geschirmtes universelles Flüssigkeitsrohr (Färbbar) tile.fluid_duct_solid.name=Geschirmtes universelles Flüssigkeitsrohr (Veraltet) -tile.fluid_switch.name=Ventil -tile.fluid_valve.name=Redstone-Ventil +tile.fluid_switch.name=Redstone-Ventil +tile.fluid_valve.name=Ventil tile.foam_layer.name=Schaumdecke tile.foundry_basin.name=Gussbecken tile.foundry_channel.name=Gusskanal @@ -3997,6 +3999,8 @@ tile.machine_gascent.name=Gaszentrifuge tile.machine_generator.name=Atomreaktor (Alt) tile.machine_geo.name=Geothermiegenerator tile.machine_hephaestus.name=Geothermischer Wärmetauscher +tile.machine_industrial_boiler.name=Industrieller Boiler +tile.machine_industrial_boiler.desc=Großer Boiler zum Verdampfen von Wasser oder$Erhitzen von Öl. Benötigt externe Hitzequelle.$Wärmestransferrate: ΔT*0.01 TU/t$Überdrucksicher tile.machine_industrial_generator.name=Industrieller Generator tile.machine_keyforge.name=Schlossertisch tile.machine_large_turbine.name=Industrielle Dampfturbine diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 4ef3fcad3..3f126767e 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1061,6 +1061,7 @@ gun.make.CERIX=Cerix Magnus gun.make.COLT=Colt's Manufacturing Company gun.make.COMBINE=The Universal Union gun.make.CUBE=Cube 2: Sauerbraten +gun.make.DRG=Deep Rock Galactic gun.make.ENZINGER=Enzinger Union gun.make.EQUESTRIA=Equestria Missile Systems gun.make.FLIMFLAM=FlimFlam Industries @@ -2550,6 +2551,7 @@ item.gun_avenger.name=CZ57 Avenger Minigun item.gun_b92.name=§9B92 Energy Pistol§r item.gun_b92_ammo.name=§9B92 Energy Cell§r item.gun_b93.name=§cB93 Energy Mod§r +item.gun_benelli.name=Benelli Autoshotgun (Drum Mod) item.gun_bf.name=BEL item.gun_bf_ammo.name=Balefire Shell item.gun_bio_revolver.name=Atlas @@ -2563,6 +2565,8 @@ item.gun_calamity.name=Buzzsaw item.gun_calamity_ammo.name=.50 BMG Round (LEGACY) item.gun_calamity_dual.name=Saddle Gun item.gun_chemthrower.name=Chemthrower +item.gun_coilgun.name=Coilgun +item.gun_coilgun_ammo.name=Coilgun Tungsten Ball item.gun_cryolator.name=The Cryolator item.gun_cryolator_ammo.name=Cryo Cell item.gun_dampfmaschine.name=Totally Not a Joke Weapon @@ -4686,8 +4690,8 @@ tile.fluid_duct_gauge.desc=Pipe that displays how much fluid$moves within the ne tile.fluid_duct_neo.name=Universal Fluid Duct tile.fluid_duct_paintable.name=Paintable Coated Universal Fluid Duct tile.fluid_duct_solid.name=Coated Universal Fluid Duct (Deprecated) -tile.fluid_switch.name=Fluid Valve -tile.fluid_valve.name=Redstone Fluid Valve +tile.fluid_switch.name=Redstone Fluid Valve +tile.fluid_valve.name=Fluid Valve tile.foam_layer.name=Foam layer tile.foundry_basin.name=Foundry Basin tile.foundry_channel.name=Foundry Channel @@ -4762,7 +4766,7 @@ tile.hadron_coil_starmetal.name=Dense Starmetal Coil tile.hadron_cooler.name=Particle Accelerator Cooling Unit tile.hadron_cooler.desc=Cooling power: 10$Overcooling threshold: 10$Cooling bonus: +10%%$Overcooling penalty: -25%% tile.hadron_cooler_mk2.name=Particle Accelerator Cooling Unit - The Palindrome Special -tile.hadron_cooler_mk2.desc=Cooling power: 5$Overcooling threshold: 15$Cooling bonus: +25%%$Overcooling penalty: -10%% +tile.hadron_cooler_mk2.desc=Cooling power: 5$Efficiency function: 2-(cooling-15)²/225$Maximum penalty: -90%% tile.hadron_core.name=Particle Accelerator Core Component tile.hadron_diode.name=Schottky Particle Diode tile.hadron_plating.name=Particle Accelerator Plating @@ -4874,6 +4878,8 @@ tile.machine_gascent.name=Gas Centrifuge tile.machine_generator.name=Nuclear Reactor (Old) tile.machine_geo.name=Geothermal Electric Generator tile.machine_hephaestus.name=Geothermal Heat Exchanger +tile.machine_industrial_boiler.name=Industrial Boiler +tile.machine_industrial_boiler.desc=Large boiler that can boil water or heat up oil.$Requires external heat source.$Heat transfer rate: ΔT*0.01 TU/t$Cannot explode tile.machine_industrial_generator.name=Industrial Generator tile.machine_keyforge.name=Locksmith Table tile.machine_large_turbine.name=Industrial Steam Turbine diff --git a/src/main/resources/assets/hbm/models/trinkets/bobble.obj b/src/main/resources/assets/hbm/models/trinkets/bobble.obj index 5a6183975..ca368efed 100644 --- a/src/main/resources/assets/hbm/models/trinkets/bobble.obj +++ b/src/main/resources/assets/hbm/models/trinkets/bobble.obj @@ -1,5 +1,179 @@ # Blender v2.79 (sub 0) OBJ File: 'bobble.blend' # www.blender.org +o PeepHat +v 0.281250 2.625000 -0.281250 +v 0.281250 2.625000 0.281250 +v -0.281250 2.625000 0.281250 +v -0.281250 2.625000 -0.281250 +v -0.281250 2.500000 -0.281250 +v -0.281250 2.500000 0.281250 +v 0.281250 2.500000 0.281250 +v 0.281250 2.500000 -0.281250 +v 0.000000 2.687500 0.062500 +v 0.000000 2.687500 -0.062500 +v 0.000000 2.625000 0.000000 +vt -0.000000 0.890625 +vt 0.015625 0.984375 +vt -0.000000 0.984375 +vt 0.125000 0.984375 +vt 0.109375 0.890625 +vt 0.125000 0.890625 +vt 0.015625 1.000000 +vt 0.109375 0.984375 +vt 0.109375 1.000000 +vt 0.109375 0.875000 +vt 0.015625 0.890625 +vt 0.015625 0.875000 +vt 0.000000 1.000000 +vt -0.000000 0.984375 +vt 0.015625 0.984375 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +s off +f 7/1/1 3/2/1 6/3/1 +f 5/4/2 1/5/2 8/6/2 +f 6/7/3 4/8/3 5/9/3 +f 8/10/4 2/11/4 7/12/4 +f 2/11/5 4/8/5 3/2/5 +f 9/13/4 11/14/4 10/15/4 +f 7/1/1 2/11/1 3/2/1 +f 5/4/2 4/8/2 1/5/2 +f 6/7/3 3/2/3 4/8/3 +f 8/10/4 1/5/4 2/11/4 +f 2/11/5 1/5/5 4/8/5 +o PeepTail +v -0.114030 1.104741 -0.062500 +v -0.071277 0.987279 -0.062500 +v -0.114030 1.104741 0.062500 +v -0.071277 0.987279 0.062500 +v -0.583876 0.933731 -0.062500 +v -0.541124 0.816269 -0.062500 +v -0.583876 0.933731 0.062500 +v -0.541124 0.816269 0.062500 +v -0.547280 0.814373 0.062500 +v -0.704707 1.160419 0.125000 +v -0.547280 0.814373 -0.062500 +v -0.704707 1.160419 -0.125000 +v -0.426539 0.846725 0.062500 +v -0.463226 1.225123 0.125000 +v -0.426539 0.846725 -0.062500 +v -0.463226 1.225123 -0.125000 +v -0.801764 1.522641 0.125000 +v -0.801764 1.522641 -0.125000 +v -0.560283 1.587345 -0.125000 +v -0.560283 1.587345 0.125000 +v -0.757570 1.599187 0.062500 +v -0.757570 1.599187 -0.062500 +v -0.636829 1.631540 -0.062500 +v -0.636829 1.631540 0.062500 +vt 0.937500 0.562500 +vt 0.968750 0.687500 +vt 0.937500 0.687500 +vt 0.968750 0.687500 +vt 0.937500 0.562500 +vt 0.968750 0.562500 +vt 0.937500 0.687500 +vt 0.968750 0.562500 +vt 0.968750 0.687500 +vt 0.968750 0.562500 +vt 0.937500 0.687500 +vt 0.937500 0.562500 +vt 0.937500 0.546875 +vt 0.890625 0.453125 +vt 0.921875 0.453125 +vt 0.937500 0.546875 +vt 0.890625 0.453125 +vt 0.921875 0.453125 +vt 0.937500 0.546875 +vt 0.890625 0.453125 +vt 0.921875 0.453125 +vt 0.937500 0.546875 +vt 0.890625 0.453125 +vt 0.921875 0.453125 +vt 0.890625 0.421875 +vt 0.875000 0.640625 +vt 0.875000 0.546875 +vt 0.937500 0.640625 +vt 0.890625 0.656250 +vt 0.875000 0.640625 +vt 0.875000 0.546875 +vt 0.875000 0.640625 +vt 0.875000 0.546875 +vt 0.875000 0.640625 +vt 0.875000 0.546875 +vt 0.921875 0.687500 +vt 0.890625 0.687500 +vt 0.921875 0.656250 +vt 0.890625 0.656250 +vt 0.937500 0.640625 +vt 0.890625 0.656250 +vt 0.937500 0.640625 +vt 0.890625 0.656250 +vt 0.968750 0.562500 +vt 0.937500 0.687500 +vt 0.937500 0.562500 +vt 0.968750 0.687500 +vt 0.921875 0.421875 +vt 0.921875 0.656250 +vt 0.937500 0.640625 +vt 0.921875 0.656250 +vt 0.921875 0.656250 +vn -0.3420 0.9397 0.0000 +vn 0.3420 -0.9397 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn -0.9102 -0.4141 0.0000 +vn 0.0425 -0.1588 -0.9864 +vn 0.9953 0.0965 0.0000 +vn 0.0425 -0.1588 0.9864 +vn 0.2588 -0.9659 0.0000 +vn 0.9659 0.2588 0.0000 +vn -0.8660 0.5000 0.0000 +vn -0.9659 -0.2588 0.0000 +vn -0.2588 0.9659 0.0000 +vn -0.1830 0.6830 0.7071 +vn -0.1830 0.6830 -0.7071 +vn 0.5000 0.8660 0.0000 +s off +f 16/16/6 14/17/6 12/18/6 +f 13/19/7 19/20/7 17/21/7 +f 14/22/8 19/23/8 15/24/8 +f 16/25/9 13/26/9 17/27/9 +f 21/28/10 22/29/10 20/30/10 +f 23/31/11 26/32/11 22/33/11 +f 27/34/12 24/35/12 26/36/12 +f 25/37/13 20/38/13 24/39/13 +f 26/40/14 20/30/14 22/29/14 +f 27/34/15 31/41/15 25/42/15 +f 28/43/16 33/44/16 29/45/16 +f 21/28/17 29/45/17 23/46/17 +f 25/37/8 28/47/8 21/48/8 +f 23/31/9 30/49/9 27/50/9 +f 33/44/18 35/51/18 34/52/18 +f 28/47/19 35/53/19 32/54/19 +f 29/55/20 34/56/20 30/49/20 +f 30/57/21 35/58/21 31/41/21 +f 16/16/6 18/59/6 14/17/6 +f 13/19/7 15/60/7 19/20/7 +f 14/22/8 18/61/8 19/23/8 +f 16/25/9 12/62/9 13/26/9 +f 21/28/10 23/46/10 22/29/10 +f 23/31/11 27/50/11 26/32/11 +f 27/34/12 25/42/12 24/35/12 +f 25/37/13 21/48/13 20/38/13 +f 26/40/14 24/63/14 20/30/14 +f 27/34/15 30/57/15 31/41/15 +f 28/43/16 32/64/16 33/44/16 +f 21/28/17 28/43/17 29/45/17 +f 25/37/8 31/65/8 28/47/8 +f 23/31/9 29/55/9 30/49/9 +f 33/44/18 32/64/18 35/51/18 +f 28/47/19 31/65/19 35/53/19 +f 29/55/20 33/66/20 34/56/20 +f 30/57/21 34/67/21 35/58/21 o Drillgon v -0.250000 0.500000 0.437500 v -0.250000 1.125000 0.437500 @@ -307,157 +481,157 @@ vn 0.0000 -0.9487 0.3162 vn 0.0000 0.7071 0.7071 vn 0.0000 0.7071 -0.7071 s off -f 2/1/1 3/2/1 1/3/1 -f 4/4/2 7/5/2 3/2/2 -f 8/6/3 5/7/3 7/5/3 -f 6/8/4 1/9/4 5/7/4 -f 5/7/3 15/10/3 7/5/3 -f 4/4/5 11/11/5 8/6/5 -f 11/12/3 36/13/3 12/14/3 -f 8/6/6 12/14/6 6/8/6 -f 2/1/1 10/15/1 4/4/1 -f 2/16/7 12/17/7 9/18/7 -f 15/10/8 14/19/8 13/20/8 -f 1/9/9 16/21/9 5/7/9 -f 7/5/10 13/22/10 3/2/10 -f 3/2/1 14/23/1 1/3/1 -f 18/24/11 19/25/11 17/26/11 -f 20/27/12 23/28/12 19/29/12 -f 24/30/13 21/31/13 23/32/13 -f 22/33/14 17/34/14 21/35/14 -f 20/27/15 22/33/15 24/30/15 -f 26/36/14 27/37/14 25/38/14 -f 28/39/11 31/40/11 27/41/11 -f 32/42/12 29/43/12 31/44/12 -f 30/45/13 25/46/13 29/47/13 -f 28/39/15 30/45/15 32/42/15 -f 34/48/15 36/13/15 35/49/15 -f 9/50/1 34/51/1 10/15/1 -f 12/17/4 33/52/4 9/18/4 -f 10/53/2 35/54/2 11/11/2 -f 38/55/1 39/56/1 37/57/1 -f 42/58/4 56/59/4 41/60/4 -f 44/61/3 41/60/3 43/62/3 -f 38/63/4 55/64/4 42/65/4 -f 43/66/8 37/67/8 39/68/8 -f 40/69/15 42/65/15 44/70/15 -f 46/71/1 47/72/1 45/73/1 -f 51/74/2 64/75/2 52/76/2 -f 52/76/3 49/77/3 51/74/3 -f 53/78/16 58/79/16 54/80/16 -f 51/81/8 45/82/8 47/83/8 -f 48/84/15 50/85/15 52/86/15 -f 37/57/4 54/80/4 38/55/4 -f 41/87/4 53/88/4 37/67/4 -f 59/89/4 57/90/4 60/91/4 -f 54/92/17 59/89/17 55/64/17 -f 55/93/18 60/94/18 56/59/18 -f 56/95/19 57/96/19 53/88/19 -f 64/97/20 65/98/20 61/99/20 -f 47/83/2 63/100/2 51/81/2 -f 52/86/2 61/99/2 48/84/2 -f 48/101/2 62/102/2 47/72/2 -f 65/98/2 67/103/2 66/104/2 -f 61/105/21 66/106/21 62/102/21 -f 63/107/22 68/108/22 64/75/22 -f 62/109/23 67/110/23 63/100/23 -f 72/111/2 75/112/2 71/113/2 -f 76/114/3 73/115/3 75/112/3 -f 74/116/4 69/117/4 73/115/4 -f 75/112/8 69/118/8 71/119/8 -f 72/120/15 74/116/15 76/114/15 -f 84/121/1 86/122/1 88/123/1 -f 83/124/9 81/125/9 84/121/9 -f 79/126/24 84/127/24 78/128/24 -f 87/129/25 88/123/25 86/122/25 -f 89/130/10 90/131/10 88/123/10 -f 87/129/3 83/132/3 89/130/3 -f 90/131/1 84/127/1 88/123/1 -f 83/133/3 91/134/3 89/130/3 -f 96/135/3 97/136/3 99/137/3 -f 95/138/10 94/139/10 96/135/10 -f 92/140/25 96/141/25 77/142/25 -f 97/136/24 100/143/24 99/137/24 -f 100/143/9 101/144/9 99/137/9 -f 98/145/1 95/146/1 100/143/1 -f 101/144/3 96/141/3 99/137/3 -f 95/147/1 102/148/1 100/143/1 -f 2/1/1 4/4/1 3/2/1 -f 4/4/2 8/6/2 7/5/2 -f 8/6/3 6/8/3 5/7/3 -f 6/8/4 2/16/4 1/9/4 -f 5/7/3 16/149/3 15/10/3 -f 4/4/5 10/53/5 11/11/5 -f 11/12/3 35/49/3 36/13/3 -f 8/6/6 11/12/6 12/14/6 -f 2/1/1 9/50/1 10/15/1 -f 2/16/7 6/8/7 12/17/7 -f 15/10/8 16/149/8 14/19/8 -f 1/9/9 14/150/9 16/21/9 -f 7/5/10 15/151/10 13/22/10 -f 3/2/1 13/152/1 14/23/1 -f 18/24/11 20/27/11 19/25/11 -f 20/27/12 24/30/12 23/28/12 -f 24/30/13 22/33/13 21/31/13 -f 22/33/14 18/24/14 17/34/14 -f 20/27/15 18/24/15 22/33/15 -f 26/36/14 28/39/14 27/37/14 -f 28/39/11 32/42/11 31/40/11 -f 32/42/12 30/45/12 29/43/12 -f 30/45/13 26/36/13 25/46/13 -f 28/39/15 26/36/15 30/45/15 -f 34/48/15 33/153/15 36/13/15 -f 9/50/1 33/154/1 34/51/1 -f 12/17/4 36/155/4 33/52/4 -f 10/53/2 34/156/2 35/54/2 -f 38/55/1 40/157/1 39/56/1 -f 42/58/4 55/93/4 56/59/4 -f 44/61/3 42/58/3 41/60/3 -f 38/63/4 54/92/4 55/64/4 -f 43/66/8 41/87/8 37/67/8 -f 40/69/15 38/63/15 42/65/15 -f 46/71/1 48/101/1 47/72/1 -f 51/74/2 63/107/2 64/75/2 -f 52/76/3 50/158/3 49/77/3 -f 53/78/16 57/159/16 58/79/16 -f 51/81/8 49/160/8 45/82/8 -f 48/84/15 46/161/15 50/85/15 -f 37/57/4 53/78/4 54/80/4 -f 41/87/4 56/95/4 53/88/4 -f 59/89/4 58/162/4 57/90/4 -f 54/92/17 58/162/17 59/89/17 -f 55/93/18 59/163/18 60/94/18 -f 56/95/19 60/164/19 57/96/19 -f 64/97/20 68/165/20 65/98/20 -f 47/83/2 62/109/2 63/100/2 -f 52/86/2 64/97/2 61/99/2 -f 48/101/2 61/105/2 62/102/2 -f 65/98/2 68/165/2 67/103/2 -f 61/105/21 65/166/21 66/106/21 -f 63/107/22 67/167/22 68/108/22 -f 62/109/23 66/168/23 67/110/23 -f 72/111/2 76/114/2 75/112/2 -f 76/114/3 74/116/3 73/115/3 -f 74/116/4 70/169/4 69/117/4 -f 75/112/8 73/115/8 69/118/8 -f 72/120/15 70/170/15 74/116/15 -f 84/121/1 81/125/1 86/122/1 -f 83/124/9 80/171/9 81/125/9 -f 79/126/24 83/172/24 84/127/24 -f 87/129/25 89/130/25 88/123/25 -f 89/130/10 91/134/10 90/131/10 -f 87/129/3 80/173/3 83/132/3 -f 90/131/1 78/128/1 84/127/1 -f 83/133/3 79/174/3 91/134/3 -f 96/135/3 94/139/3 97/136/3 -f 95/138/10 93/175/10 94/139/10 -f 92/140/25 95/176/25 96/141/25 -f 97/136/24 98/145/24 100/143/24 -f 100/143/9 102/148/9 101/144/9 -f 98/145/1 93/177/1 95/146/1 -f 101/144/3 77/142/3 96/141/3 -f 95/147/1 92/178/1 102/148/1 -l 82 85 +f 37/68/22 38/69/22 36/70/22 +f 39/71/23 42/72/23 38/69/23 +f 43/73/24 40/74/24 42/72/24 +f 41/75/25 36/76/25 40/74/25 +f 40/74/24 50/77/24 42/72/24 +f 39/71/26 46/78/26 43/73/26 +f 46/79/24 71/80/24 47/81/24 +f 43/73/27 47/81/27 41/75/27 +f 37/68/22 45/82/22 39/71/22 +f 37/83/28 47/84/28 44/85/28 +f 50/77/29 49/86/29 48/87/29 +f 36/76/30 51/88/30 40/74/30 +f 42/72/31 48/89/31 38/69/31 +f 38/69/22 49/90/22 36/70/22 +f 53/91/32 54/92/32 52/93/32 +f 55/94/33 58/95/33 54/96/33 +f 59/97/34 56/98/34 58/99/34 +f 57/100/35 52/101/35 56/102/35 +f 55/94/36 57/100/36 59/97/36 +f 61/103/35 62/104/35 60/105/35 +f 63/106/32 66/107/32 62/108/32 +f 67/109/33 64/110/33 66/111/33 +f 65/112/34 60/113/34 64/114/34 +f 63/106/36 65/112/36 67/109/36 +f 69/115/36 71/80/36 70/116/36 +f 44/117/22 69/118/22 45/82/22 +f 47/84/25 68/119/25 44/85/25 +f 45/120/23 70/121/23 46/78/23 +f 73/122/22 74/123/22 72/124/22 +f 77/125/25 91/126/25 76/127/25 +f 79/128/24 76/127/24 78/129/24 +f 73/130/25 90/131/25 77/132/25 +f 78/133/29 72/134/29 74/135/29 +f 75/136/36 77/132/36 79/137/36 +f 81/138/22 82/139/22 80/140/22 +f 86/141/23 99/142/23 87/143/23 +f 87/143/24 84/144/24 86/141/24 +f 88/145/37 93/146/37 89/147/37 +f 86/148/29 80/149/29 82/150/29 +f 83/151/36 85/152/36 87/153/36 +f 72/124/25 89/147/25 73/122/25 +f 76/154/25 88/155/25 72/134/25 +f 94/156/25 92/157/25 95/158/25 +f 89/159/38 94/156/38 90/131/38 +f 90/160/39 95/161/39 91/126/39 +f 91/162/40 92/163/40 88/155/40 +f 99/164/41 100/165/41 96/166/41 +f 82/150/23 98/167/23 86/148/23 +f 87/153/23 96/166/23 83/151/23 +f 83/168/23 97/169/23 82/139/23 +f 100/165/23 102/170/23 101/171/23 +f 96/172/42 101/173/42 97/169/42 +f 98/174/43 103/175/43 99/142/43 +f 97/176/44 102/177/44 98/167/44 +f 107/178/23 110/179/23 106/180/23 +f 111/181/24 108/182/24 110/179/24 +f 109/183/25 104/184/25 108/182/25 +f 110/179/29 104/185/29 106/186/29 +f 107/187/36 109/183/36 111/181/36 +f 119/188/22 121/189/22 123/190/22 +f 118/191/30 116/192/30 119/188/30 +f 114/193/45 119/194/45 113/195/45 +f 122/196/46 123/190/46 121/189/46 +f 124/197/31 125/198/31 123/190/31 +f 122/196/24 118/199/24 124/197/24 +f 125/198/22 119/194/22 123/190/22 +f 118/200/24 126/201/24 124/197/24 +f 131/202/24 132/203/24 134/204/24 +f 130/205/31 129/206/31 131/202/31 +f 127/207/46 131/208/46 112/209/46 +f 132/203/45 135/210/45 134/204/45 +f 135/210/30 136/211/30 134/204/30 +f 133/212/22 130/213/22 135/210/22 +f 136/211/24 131/208/24 134/204/24 +f 130/214/22 137/215/22 135/210/22 +f 37/68/22 39/71/22 38/69/22 +f 39/71/23 43/73/23 42/72/23 +f 43/73/24 41/75/24 40/74/24 +f 41/75/25 37/83/25 36/76/25 +f 40/74/24 51/216/24 50/77/24 +f 39/71/26 45/120/26 46/78/26 +f 46/79/24 70/116/24 71/80/24 +f 43/73/27 46/79/27 47/81/27 +f 37/68/22 44/117/22 45/82/22 +f 37/83/28 41/75/28 47/84/28 +f 50/77/29 51/216/29 49/86/29 +f 36/76/30 49/217/30 51/88/30 +f 42/72/31 50/218/31 48/89/31 +f 38/69/22 48/219/22 49/90/22 +f 53/91/32 55/94/32 54/92/32 +f 55/94/33 59/97/33 58/95/33 +f 59/97/34 57/100/34 56/98/34 +f 57/100/35 53/91/35 52/101/35 +f 55/94/36 53/91/36 57/100/36 +f 61/103/35 63/106/35 62/104/35 +f 63/106/32 67/109/32 66/107/32 +f 67/109/33 65/112/33 64/110/33 +f 65/112/34 61/103/34 60/113/34 +f 63/106/36 61/103/36 65/112/36 +f 69/115/36 68/220/36 71/80/36 +f 44/117/22 68/221/22 69/118/22 +f 47/84/25 71/222/25 68/119/25 +f 45/120/23 69/223/23 70/121/23 +f 73/122/22 75/224/22 74/123/22 +f 77/125/25 90/160/25 91/126/25 +f 79/128/24 77/125/24 76/127/24 +f 73/130/25 89/159/25 90/131/25 +f 78/133/29 76/154/29 72/134/29 +f 75/136/36 73/130/36 77/132/36 +f 81/138/22 83/168/22 82/139/22 +f 86/141/23 98/174/23 99/142/23 +f 87/143/24 85/225/24 84/144/24 +f 88/145/37 92/226/37 93/146/37 +f 86/148/29 84/227/29 80/149/29 +f 83/151/36 81/228/36 85/152/36 +f 72/124/25 88/145/25 89/147/25 +f 76/154/25 91/162/25 88/155/25 +f 94/156/25 93/229/25 92/157/25 +f 89/159/38 93/229/38 94/156/38 +f 90/160/39 94/230/39 95/161/39 +f 91/162/40 95/231/40 92/163/40 +f 99/164/41 103/232/41 100/165/41 +f 82/150/23 97/176/23 98/167/23 +f 87/153/23 99/164/23 96/166/23 +f 83/168/23 96/172/23 97/169/23 +f 100/165/23 103/232/23 102/170/23 +f 96/172/42 100/233/42 101/173/42 +f 98/174/43 102/234/43 103/175/43 +f 97/176/44 101/235/44 102/177/44 +f 107/178/23 111/181/23 110/179/23 +f 111/181/24 109/183/24 108/182/24 +f 109/183/25 105/236/25 104/184/25 +f 110/179/29 108/182/29 104/185/29 +f 107/187/36 105/237/36 109/183/36 +f 119/188/22 116/192/22 121/189/22 +f 118/191/30 115/238/30 116/192/30 +f 114/193/45 118/239/45 119/194/45 +f 122/196/46 124/197/46 123/190/46 +f 124/197/31 126/201/31 125/198/31 +f 122/196/24 115/240/24 118/199/24 +f 125/198/22 113/195/22 119/194/22 +f 118/200/24 114/241/24 126/201/24 +f 131/202/24 129/206/24 132/203/24 +f 130/205/31 128/242/31 129/206/31 +f 127/207/46 130/243/46 131/208/46 +f 132/203/45 133/212/45 135/210/45 +f 135/210/30 137/215/30 136/211/30 +f 133/212/22 128/244/22 130/213/22 +f 136/211/24 112/209/24 131/208/24 +f 130/214/22 127/245/22 137/215/22 +l 117 120 o Cube v 0.045753 0.237741 0.312500 v 0.045753 0.737741 0.312500 @@ -570,126 +744,126 @@ vn 0.0000 -0.9848 -0.1736 vn 0.0000 -0.1736 0.9848 vn 0.0000 0.1736 -0.9848 s off -f 104//26 105//26 103//26 -f 106//27 109//27 105//27 -f 110//28 107//28 109//28 -f 108//29 103//29 107//29 -f 109//30 103//30 105//30 -f 106//31 108//31 110//31 -f 112//32 113//32 111//32 -f 113//27 118//27 117//27 -f 118//33 115//33 117//33 -f 116//29 111//29 115//29 -f 117//34 111//34 113//34 -f 114//35 116//35 118//35 -f 120//36 121//36 119//36 -f 122//27 125//27 121//27 -f 126//37 123//37 125//37 -f 123//29 120//29 119//29 -f 125//38 119//38 121//38 -f 122//39 124//39 126//39 -f 128//26 129//26 127//26 -f 130//27 133//27 129//27 -f 134//28 131//28 133//28 -f 132//29 127//29 131//29 -f 133//30 127//30 129//30 -f 130//31 132//31 134//31 -f 137//30 136//30 135//30 -f 141//31 139//31 140//31 -f 137//27 142//27 138//27 -f 136//29 140//29 135//29 -f 138//28 141//28 136//28 -f 135//26 139//26 137//26 -f 145//30 144//30 143//30 -f 149//31 147//31 148//31 -f 146//28 149//28 144//28 -f 143//26 147//26 145//26 -f 145//27 150//27 146//27 -f 144//29 148//29 143//29 -f 152//40 153//40 151//40 -f 154//41 157//41 153//41 -f 157//42 156//42 155//42 -f 156//43 151//43 155//43 -f 153//44 155//44 151//44 -f 154//45 156//45 158//45 -f 160//40 161//40 159//40 -f 162//27 165//27 161//27 -f 166//42 163//42 165//42 -f 163//29 160//29 159//29 -f 165//46 159//46 161//46 -f 162//47 164//47 166//47 -f 168//28 169//28 167//28 -f 170//48 173//48 169//48 -f 174//26 171//26 173//26 -f 172//49 167//49 171//49 -f 173//50 167//50 169//50 -f 170//51 172//51 174//51 -f 176//28 177//28 175//28 -f 178//52 181//52 177//52 -f 181//26 180//26 179//26 -f 180//53 175//53 179//53 -f 181//54 175//54 177//54 -f 178//55 180//55 182//55 -f 104//26 106//26 105//26 -f 106//27 110//27 109//27 -f 110//28 108//28 107//28 -f 108//29 104//29 103//29 -f 109//30 107//30 103//30 -f 106//31 104//31 108//31 -f 112//32 114//32 113//32 -f 113//27 114//27 118//27 -f 118//33 116//33 115//33 -f 116//29 112//29 111//29 -f 117//34 115//34 111//34 -f 114//35 112//35 116//35 -f 120//36 122//36 121//36 -f 122//27 126//27 125//27 -f 126//37 124//37 123//37 -f 123//29 124//29 120//29 -f 125//38 123//38 119//38 -f 122//39 120//39 124//39 -f 128//26 130//26 129//26 -f 130//27 134//27 133//27 -f 134//28 132//28 131//28 -f 132//29 128//29 127//29 -f 133//30 131//30 127//30 -f 130//31 128//31 132//31 -f 137//30 138//30 136//30 -f 141//31 142//31 139//31 -f 137//27 139//27 142//27 -f 136//29 141//29 140//29 -f 138//28 142//28 141//28 -f 135//26 140//26 139//26 -f 145//30 146//30 144//30 -f 149//31 150//31 147//31 -f 146//28 150//28 149//28 -f 143//26 148//26 147//26 -f 145//27 147//27 150//27 -f 144//29 149//29 148//29 -f 152//40 154//40 153//40 -f 154//41 158//41 157//41 -f 157//42 158//42 156//42 -f 156//43 152//43 151//43 -f 153//44 157//44 155//44 -f 154//45 152//45 156//45 -f 160//40 162//40 161//40 -f 162//27 166//27 165//27 -f 166//42 164//42 163//42 -f 163//29 164//29 160//29 -f 165//46 163//46 159//46 -f 162//47 160//47 164//47 -f 168//28 170//28 169//28 -f 170//48 174//48 173//48 -f 174//26 172//26 171//26 -f 172//49 168//49 167//49 -f 173//50 171//50 167//50 -f 170//51 168//51 172//51 -f 176//28 178//28 177//28 -f 178//52 182//52 181//52 -f 181//26 182//26 180//26 -f 180//53 176//53 175//53 -f 181//54 179//54 175//54 -f 178//55 176//55 180//55 +f 139//47 140//47 138//47 +f 141//48 144//48 140//48 +f 145//49 142//49 144//49 +f 143//50 138//50 142//50 +f 144//51 138//51 140//51 +f 141//52 143//52 145//52 +f 147//53 148//53 146//53 +f 148//48 153//48 152//48 +f 153//54 150//54 152//54 +f 151//50 146//50 150//50 +f 152//55 146//55 148//55 +f 149//56 151//56 153//56 +f 155//57 156//57 154//57 +f 157//48 160//48 156//48 +f 161//58 158//58 160//58 +f 158//50 155//50 154//50 +f 160//59 154//59 156//59 +f 157//60 159//60 161//60 +f 163//47 164//47 162//47 +f 165//48 168//48 164//48 +f 169//49 166//49 168//49 +f 167//50 162//50 166//50 +f 168//51 162//51 164//51 +f 165//52 167//52 169//52 +f 172//51 171//51 170//51 +f 176//52 174//52 175//52 +f 172//48 177//48 173//48 +f 171//50 175//50 170//50 +f 173//49 176//49 171//49 +f 170//47 174//47 172//47 +f 180//51 179//51 178//51 +f 184//52 182//52 183//52 +f 181//49 184//49 179//49 +f 178//47 182//47 180//47 +f 180//48 185//48 181//48 +f 179//50 183//50 178//50 +f 187//61 188//61 186//61 +f 189//62 192//62 188//62 +f 192//63 191//63 190//63 +f 191//64 186//64 190//64 +f 188//65 190//65 186//65 +f 189//66 191//66 193//66 +f 195//61 196//61 194//61 +f 197//48 200//48 196//48 +f 201//63 198//63 200//63 +f 198//50 195//50 194//50 +f 200//67 194//67 196//67 +f 197//68 199//68 201//68 +f 203//49 204//49 202//49 +f 205//69 208//69 204//69 +f 209//47 206//47 208//47 +f 207//70 202//70 206//70 +f 208//71 202//71 204//71 +f 205//72 207//72 209//72 +f 211//49 212//49 210//49 +f 213//73 216//73 212//73 +f 216//47 215//47 214//47 +f 215//74 210//74 214//74 +f 216//75 210//75 212//75 +f 213//76 215//76 217//76 +f 139//47 141//47 140//47 +f 141//48 145//48 144//48 +f 145//49 143//49 142//49 +f 143//50 139//50 138//50 +f 144//51 142//51 138//51 +f 141//52 139//52 143//52 +f 147//53 149//53 148//53 +f 148//48 149//48 153//48 +f 153//54 151//54 150//54 +f 151//50 147//50 146//50 +f 152//55 150//55 146//55 +f 149//56 147//56 151//56 +f 155//57 157//57 156//57 +f 157//48 161//48 160//48 +f 161//58 159//58 158//58 +f 158//50 159//50 155//50 +f 160//59 158//59 154//59 +f 157//60 155//60 159//60 +f 163//47 165//47 164//47 +f 165//48 169//48 168//48 +f 169//49 167//49 166//49 +f 167//50 163//50 162//50 +f 168//51 166//51 162//51 +f 165//52 163//52 167//52 +f 172//51 173//51 171//51 +f 176//52 177//52 174//52 +f 172//48 174//48 177//48 +f 171//50 176//50 175//50 +f 173//49 177//49 176//49 +f 170//47 175//47 174//47 +f 180//51 181//51 179//51 +f 184//52 185//52 182//52 +f 181//49 185//49 184//49 +f 178//47 183//47 182//47 +f 180//48 182//48 185//48 +f 179//50 184//50 183//50 +f 187//61 189//61 188//61 +f 189//62 193//62 192//62 +f 192//63 193//63 191//63 +f 191//64 187//64 186//64 +f 188//65 192//65 190//65 +f 189//66 187//66 191//66 +f 195//61 197//61 196//61 +f 197//48 201//48 200//48 +f 201//63 199//63 198//63 +f 198//50 199//50 195//50 +f 200//67 198//67 194//67 +f 197//68 195//68 199//68 +f 203//49 205//49 204//49 +f 205//69 209//69 208//69 +f 209//47 207//47 206//47 +f 207//70 203//70 202//70 +f 208//71 206//71 202//71 +f 205//72 203//72 207//72 +f 211//49 213//49 212//49 +f 213//73 217//73 216//73 +f 216//47 217//47 215//47 +f 215//74 211//74 210//74 +f 216//75 214//75 210//75 +f 213//76 211//76 215//76 o FumoHead v -0.250000 0.750000 -0.250000 v -0.250000 0.750000 0.250000 @@ -840,74 +1014,74 @@ vn 0.7071 0.0000 0.7071 vn 0.8944 0.0000 0.4472 vn 0.8944 0.0000 -0.4472 s off -f 183/179/56 185/180/56 184/181/56 -f 189/182/57 187/183/57 188/184/57 -f 183/185/58 190/186/58 186/187/58 -f 185/188/59 188/189/59 184/190/59 -f 186/187/60 189/182/60 185/188/60 -f 184/191/61 187/192/61 183/185/61 -f 191/193/56 193/194/56 192/195/56 -f 197/196/57 195/197/57 196/198/57 -f 191/199/58 198/200/58 194/201/58 -f 193/202/59 196/203/59 192/204/59 -f 194/201/60 197/196/60 193/202/60 -f 192/205/61 195/206/61 191/199/61 -f 203/207/56 202/208/56 199/209/56 -f 206/210/56 200/211/56 201/212/56 -f 208/213/56 201/214/56 202/215/56 -f 210/216/56 199/217/56 200/218/56 -f 200/218/56 205/219/56 210/216/56 -f 201/212/56 207/220/56 206/210/56 -f 202/215/56 204/221/56 208/213/56 -f 199/209/56 209/222/56 203/207/56 -f 213/223/57 216/224/57 214/225/57 -f 211/226/57 218/227/57 212/228/57 -f 212/229/57 220/230/57 213/231/57 -f 214/232/57 222/233/57 211/234/57 -f 211/234/57 222/233/57 217/235/57 -f 212/228/57 218/227/57 219/236/57 -f 213/231/57 220/230/57 215/237/57 -f 214/225/57 216/224/57 221/238/57 -f 206/210/59 217/239/59 205/240/59 -f 203/207/58 215/241/58 204/242/58 -f 204/243/62 220/230/62 208/213/62 -f 209/244/63 216/224/63 203/207/63 -f 205/245/64 222/233/64 210/216/64 -f 210/216/61 221/246/61 209/247/61 -f 208/213/60 219/248/60 207/249/60 -f 207/250/65 218/227/65 206/210/65 -f 228/251/66 230/252/66 227/253/66 -f 224/254/67 226/255/67 223/256/67 -f 183/179/56 186/257/56 185/180/56 -f 189/182/57 190/186/57 187/183/57 -f 183/185/58 187/192/58 190/186/58 -f 185/188/59 189/182/59 188/189/59 -f 186/187/60 190/186/60 189/182/60 -f 184/191/61 188/258/61 187/192/61 -f 191/193/56 194/259/56 193/194/56 -f 197/196/57 198/200/57 195/197/57 -f 191/199/58 195/206/58 198/200/58 -f 193/202/59 197/196/59 196/203/59 -f 194/201/60 198/200/60 197/196/60 -f 192/205/61 196/260/61 195/206/61 -f 203/207/56 204/242/56 202/208/56 -f 206/210/56 205/240/56 200/211/56 -f 208/213/56 207/249/56 201/214/56 -f 210/216/56 209/247/56 199/217/56 -f 213/223/57 215/241/57 216/224/57 -f 211/226/57 217/239/57 218/227/57 -f 212/229/57 219/248/57 220/230/57 -f 214/232/57 221/246/57 222/233/57 -f 206/210/59 218/227/59 217/239/59 -f 203/207/58 216/224/58 215/241/58 -f 204/243/62 215/261/62 220/230/62 -f 209/244/63 221/262/63 216/224/63 -f 205/245/64 217/263/64 222/233/64 -f 210/216/61 222/233/61 221/246/61 -f 208/213/60 220/230/60 219/248/60 -f 207/250/65 219/264/65 218/227/65 -f 228/251/66 229/265/66 230/252/66 -f 224/254/67 225/266/67 226/255/67 +f 218/246/77 220/247/77 219/248/77 +f 224/249/78 222/250/78 223/251/78 +f 218/252/79 225/253/79 221/254/79 +f 220/255/80 223/256/80 219/257/80 +f 221/254/81 224/249/81 220/255/81 +f 219/258/82 222/259/82 218/252/82 +f 226/260/77 228/261/77 227/262/77 +f 232/263/78 230/264/78 231/265/78 +f 226/266/79 233/267/79 229/268/79 +f 228/269/80 231/270/80 227/271/80 +f 229/268/81 232/263/81 228/269/81 +f 227/272/82 230/273/82 226/266/82 +f 238/274/77 237/275/77 234/276/77 +f 241/277/77 235/278/77 236/279/77 +f 243/280/77 236/281/77 237/282/77 +f 245/283/77 234/284/77 235/285/77 +f 235/285/77 240/286/77 245/283/77 +f 236/279/77 242/287/77 241/277/77 +f 237/282/77 239/288/77 243/280/77 +f 234/276/77 244/289/77 238/274/77 +f 248/290/78 251/291/78 249/292/78 +f 246/293/78 253/294/78 247/295/78 +f 247/296/78 255/297/78 248/298/78 +f 249/299/78 257/300/78 246/301/78 +f 246/301/78 257/300/78 252/302/78 +f 247/295/78 253/294/78 254/303/78 +f 248/298/78 255/297/78 250/304/78 +f 249/292/78 251/291/78 256/305/78 +f 241/277/80 252/306/80 240/307/80 +f 238/274/79 250/308/79 239/309/79 +f 239/310/83 255/297/83 243/280/83 +f 244/311/84 251/291/84 238/274/84 +f 240/312/85 257/300/85 245/283/85 +f 245/283/82 256/313/82 244/314/82 +f 243/280/81 254/315/81 242/316/81 +f 242/317/86 253/294/86 241/277/86 +f 263/318/87 265/319/87 262/320/87 +f 259/321/88 261/322/88 258/323/88 +f 218/246/77 221/324/77 220/247/77 +f 224/249/78 225/253/78 222/250/78 +f 218/252/79 222/259/79 225/253/79 +f 220/255/80 224/249/80 223/256/80 +f 221/254/81 225/253/81 224/249/81 +f 219/258/82 223/325/82 222/259/82 +f 226/260/77 229/326/77 228/261/77 +f 232/263/78 233/267/78 230/264/78 +f 226/266/79 230/273/79 233/267/79 +f 228/269/80 232/263/80 231/270/80 +f 229/268/81 233/267/81 232/263/81 +f 227/272/82 231/327/82 230/273/82 +f 238/274/77 239/309/77 237/275/77 +f 241/277/77 240/307/77 235/278/77 +f 243/280/77 242/316/77 236/281/77 +f 245/283/77 244/314/77 234/284/77 +f 248/290/78 250/308/78 251/291/78 +f 246/293/78 252/306/78 253/294/78 +f 247/296/78 254/315/78 255/297/78 +f 249/299/78 256/313/78 257/300/78 +f 241/277/80 253/294/80 252/306/80 +f 238/274/79 251/291/79 250/308/79 +f 239/310/83 250/328/83 255/297/83 +f 244/311/84 256/329/84 251/291/84 +f 240/312/85 252/330/85 257/300/85 +f 245/283/82 257/300/82 256/313/82 +f 243/280/81 255/297/81 254/315/81 +f 242/317/86 254/331/86 253/294/86 +f 263/318/87 264/332/87 265/319/87 +f 259/321/88 260/333/88 261/322/88 o Fumo v -0.390165 0.375000 -0.213388 v -0.213388 0.375000 -0.390165 @@ -1244,122 +1418,122 @@ vn 0.0000 0.9659 -0.2588 vn 0.0000 -0.9659 0.2588 vn 0.0000 -0.2588 -0.9659 s off -f 336/267/68 342/268/68 338/269/68 -f 336/270/69 337/271/69 335/272/69 -f 259/273/70 241/274/70 242/275/70 -f 333/276/71 331/277/71 332/278/71 -f 328/279/72 333/280/72 327/281/72 -f 240/282/73 241/283/73 239/284/73 -f 260/285/74 239/286/74 241/274/74 -f 236/287/75 237/288/75 238/289/75 -f 246/290/76 243/291/76 245/292/76 -f 262/293/77 242/275/77 240/282/77 -f 261/294/78 240/282/78 239/295/78 -f 249/296/74 248/297/74 247/298/74 -f 253/299/77 251/300/77 252/301/77 -f 250/302/68 253/299/68 248/303/68 -f 247/304/79 251/305/79 249/306/79 -f 249/306/80 254/307/80 250/302/80 -f 248/303/81 252/308/81 247/309/81 -f 255/310/82 258/311/82 256/312/82 -f 259/313/83 261/314/83 260/315/83 -f 271/316/84 274/317/84 272/318/84 -f 268/319/85 269/320/85 270/321/85 -f 328/279/77 331/322/77 334/323/77 -f 329/324/74 333/325/74 332/326/74 -f 275/327/86 278/328/86 276/329/86 -f 279/330/87 282/331/87 280/332/87 -f 284/333/88 285/334/88 286/335/88 -f 289/336/89 288/337/89 287/338/89 -f 231/339/90 234/340/90 233/341/90 -f 313/342/91 312/343/91 314/344/91 -f 298/345/68 288/346/68 290/347/68 -f 295/348/92 290/347/92 289/336/92 -f 297/349/93 287/350/93 288/346/93 -f 297/351/94 295/352/94 296/353/94 -f 263/354/95 266/355/95 265/356/95 -f 315/357/96 318/358/96 317/359/96 -f 294/360/97 291/361/97 292/362/97 -f 296/363/79 289/336/79 287/364/79 -f 299/365/98 302/366/98 301/367/98 -f 305/368/89 304/369/89 303/370/89 -f 306/371/68 309/372/68 304/373/68 -f 307/374/92 306/371/92 305/368/92 -f 309/372/93 303/375/93 304/373/93 -f 309/376/94 307/377/94 308/378/94 -f 308/379/79 305/368/79 303/380/79 -f 329/381/99 328/279/99 327/382/99 -f 329/324/100 331/322/100 330/383/100 -f 326/384/101 323/385/101 324/386/101 -f 322/387/102 319/388/102 320/389/102 -f 338/269/103 339/390/103 337/271/103 -f 335/391/104 341/392/104 336/267/104 -f 339/393/105 341/394/105 340/395/105 -f 335/396/79 339/390/79 340/397/79 -f 344/398/69 345/399/69 343/400/69 -f 346/401/68 349/402/68 350/403/68 -f 346/401/103 347/404/103 345/399/103 -f 343/405/104 349/402/104 344/406/104 -f 347/407/105 349/408/105 348/409/105 -f 345/399/79 348/410/79 343/411/79 -f 336/267/68 341/392/68 342/268/68 -f 336/270/69 338/269/69 337/271/69 -f 259/273/70 260/285/70 241/274/70 -f 333/276/71 334/412/71 331/277/71 -f 328/279/72 334/323/72 333/280/72 -f 240/282/73 242/275/73 241/283/73 -f 260/285/74 261/413/74 239/286/74 -f 236/287/75 235/414/75 237/288/75 -f 246/290/76 244/415/76 243/291/76 -f 262/293/77 259/273/77 242/275/77 -f 261/294/78 262/293/78 240/282/78 -f 249/296/74 250/416/74 248/297/74 -f 253/299/77 254/307/77 251/300/77 -f 250/302/68 254/307/68 253/299/68 -f 247/304/79 252/417/79 251/305/79 -f 249/306/80 251/305/80 254/307/80 -f 248/303/81 253/299/81 252/308/81 -f 255/310/82 257/418/82 258/311/82 -f 259/313/83 262/419/83 261/314/83 -f 271/316/84 273/420/84 274/317/84 -f 268/319/85 267/421/85 269/320/85 -f 328/279/77 330/383/77 331/322/77 -f 329/324/74 327/422/74 333/325/74 -f 275/327/86 277/423/86 278/328/86 -f 279/330/87 281/424/87 282/331/87 -f 284/333/88 283/425/88 285/334/88 -f 289/336/89 290/347/89 288/337/89 -f 231/339/90 232/426/90 234/340/90 -f 313/342/91 311/427/91 312/343/91 -f 298/345/68 297/349/68 288/346/68 -f 295/348/92 298/345/92 290/347/92 -f 297/349/93 296/428/93 287/350/93 -f 297/351/94 298/429/94 295/352/94 -f 263/354/95 264/430/95 266/355/95 -f 315/357/96 316/431/96 318/358/96 -f 294/360/97 293/432/97 291/361/97 -f 296/363/79 295/348/79 289/336/79 -f 299/365/98 300/433/98 302/366/98 -f 305/368/89 306/371/89 304/369/89 -f 306/371/68 310/434/68 309/372/68 -f 307/374/92 310/434/92 306/371/92 -f 309/372/93 308/435/93 303/375/93 -f 309/376/94 310/436/94 307/377/94 -f 308/379/79 307/374/79 305/368/79 -f 329/381/99 330/383/99 328/279/99 -f 329/324/100 332/326/100 331/322/100 -f 326/384/101 325/437/101 323/385/101 -f 322/387/102 321/438/102 319/388/102 -f 338/269/103 342/268/103 339/390/103 -f 335/391/104 340/439/104 341/392/104 -f 339/393/105 342/440/105 341/394/105 -f 335/396/79 337/271/79 339/390/79 -f 344/398/69 346/401/69 345/399/69 -f 346/401/68 344/406/68 349/402/68 -f 346/401/103 350/403/103 347/404/103 -f 343/405/104 348/441/104 349/402/104 -f 347/407/105 350/442/105 349/408/105 -f 345/399/79 347/404/79 348/410/79 +f 371/334/89 377/335/89 373/336/89 +f 371/337/90 372/338/90 370/339/90 +f 294/340/91 276/341/91 277/342/91 +f 368/343/92 366/344/92 367/345/92 +f 363/346/93 368/347/93 362/348/93 +f 275/349/94 276/350/94 274/351/94 +f 295/352/95 274/353/95 276/341/95 +f 271/354/96 272/355/96 273/356/96 +f 281/357/97 278/358/97 280/359/97 +f 297/360/98 277/342/98 275/349/98 +f 296/361/99 275/349/99 274/362/99 +f 284/363/95 283/364/95 282/365/95 +f 288/366/98 286/367/98 287/368/98 +f 285/369/89 288/366/89 283/370/89 +f 282/371/100 286/372/100 284/373/100 +f 284/373/101 289/374/101 285/369/101 +f 283/370/102 287/375/102 282/376/102 +f 290/377/103 293/378/103 291/379/103 +f 294/380/104 296/381/104 295/382/104 +f 306/383/105 309/384/105 307/385/105 +f 303/386/106 304/387/106 305/388/106 +f 363/346/98 366/389/98 369/390/98 +f 364/391/95 368/392/95 367/393/95 +f 310/394/107 313/395/107 311/396/107 +f 314/397/108 317/398/108 315/399/108 +f 319/400/109 320/401/109 321/402/109 +f 324/403/110 323/404/110 322/405/110 +f 266/406/111 269/407/111 268/408/111 +f 348/409/112 347/410/112 349/411/112 +f 333/412/89 323/413/89 325/414/89 +f 330/415/113 325/414/113 324/403/113 +f 332/416/114 322/417/114 323/413/114 +f 332/418/115 330/419/115 331/420/115 +f 298/421/116 301/422/116 300/423/116 +f 350/424/117 353/425/117 352/426/117 +f 329/427/118 326/428/118 327/429/118 +f 331/430/100 324/403/100 322/431/100 +f 334/432/119 337/433/119 336/434/119 +f 340/435/110 339/436/110 338/437/110 +f 341/438/89 344/439/89 339/440/89 +f 342/441/113 341/438/113 340/435/113 +f 344/439/114 338/442/114 339/440/114 +f 344/443/115 342/444/115 343/445/115 +f 343/446/100 340/435/100 338/447/100 +f 364/448/120 363/346/120 362/449/120 +f 364/391/121 366/389/121 365/450/121 +f 361/451/122 358/452/122 359/453/122 +f 357/454/123 354/455/123 355/456/123 +f 373/336/124 374/457/124 372/338/124 +f 370/458/125 376/459/125 371/334/125 +f 374/460/126 376/461/126 375/462/126 +f 370/463/100 374/457/100 375/464/100 +f 379/465/90 380/466/90 378/467/90 +f 381/468/89 384/469/89 385/470/89 +f 381/468/124 382/471/124 380/466/124 +f 378/472/125 384/469/125 379/473/125 +f 382/474/126 384/475/126 383/476/126 +f 380/466/100 383/477/100 378/478/100 +f 371/334/89 376/459/89 377/335/89 +f 371/337/90 373/336/90 372/338/90 +f 294/340/91 295/352/91 276/341/91 +f 368/343/92 369/479/92 366/344/92 +f 363/346/93 369/390/93 368/347/93 +f 275/349/94 277/342/94 276/350/94 +f 295/352/95 296/480/95 274/353/95 +f 271/354/96 270/481/96 272/355/96 +f 281/357/97 279/482/97 278/358/97 +f 297/360/98 294/340/98 277/342/98 +f 296/361/99 297/360/99 275/349/99 +f 284/363/95 285/483/95 283/364/95 +f 288/366/98 289/374/98 286/367/98 +f 285/369/89 289/374/89 288/366/89 +f 282/371/100 287/484/100 286/372/100 +f 284/373/101 286/372/101 289/374/101 +f 283/370/102 288/366/102 287/375/102 +f 290/377/103 292/485/103 293/378/103 +f 294/380/104 297/486/104 296/381/104 +f 306/383/105 308/487/105 309/384/105 +f 303/386/106 302/488/106 304/387/106 +f 363/346/98 365/450/98 366/389/98 +f 364/391/95 362/489/95 368/392/95 +f 310/394/107 312/490/107 313/395/107 +f 314/397/108 316/491/108 317/398/108 +f 319/400/109 318/492/109 320/401/109 +f 324/403/110 325/414/110 323/404/110 +f 266/406/111 267/493/111 269/407/111 +f 348/409/112 346/494/112 347/410/112 +f 333/412/89 332/416/89 323/413/89 +f 330/415/113 333/412/113 325/414/113 +f 332/416/114 331/495/114 322/417/114 +f 332/418/115 333/496/115 330/419/115 +f 298/421/116 299/497/116 301/422/116 +f 350/424/117 351/498/117 353/425/117 +f 329/427/118 328/499/118 326/428/118 +f 331/430/100 330/415/100 324/403/100 +f 334/432/119 335/500/119 337/433/119 +f 340/435/110 341/438/110 339/436/110 +f 341/438/89 345/501/89 344/439/89 +f 342/441/113 345/501/113 341/438/113 +f 344/439/114 343/502/114 338/442/114 +f 344/443/115 345/503/115 342/444/115 +f 343/446/100 342/441/100 340/435/100 +f 364/448/120 365/450/120 363/346/120 +f 364/391/121 367/393/121 366/389/121 +f 361/451/122 360/504/122 358/452/122 +f 357/454/123 356/505/123 354/455/123 +f 373/336/124 377/335/124 374/457/124 +f 370/458/125 375/506/125 376/459/125 +f 374/460/126 377/507/126 376/461/126 +f 370/463/100 372/338/100 374/457/100 +f 379/465/90 381/468/90 380/466/90 +f 381/468/89 379/473/89 384/469/89 +f 381/468/124 385/470/124 382/471/124 +f 378/472/125 383/508/125 384/469/125 +f 382/474/126 385/509/126 384/475/126 +f 380/466/100 382/471/100 383/477/100 o Horn v 0.205806 2.419194 0.062500 v 0.294194 2.330806 0.062500 @@ -1380,10 +1554,10 @@ vn 0.0587 0.0587 -0.9965 vn 0.0587 0.0587 0.9965 vn -0.6459 0.7634 0.0000 s off -f 354/443/106 355/444/106 352/445/106 -f 353/446/107 355/444/107 354/447/107 -f 352/448/108 355/444/108 351/449/108 -f 353/450/109 351/451/109 355/444/109 +f 389/510/127 390/511/127 387/512/127 +f 388/513/128 390/511/128 389/514/128 +f 387/515/129 390/511/129 386/516/129 +f 388/517/130 386/518/130 390/511/130 o PelletShine v -0.000000 0.250000 -0.375000 v -0.187500 0.250000 -0.324760 @@ -1447,64 +1621,64 @@ vn 0.1862 0.6947 0.6947 vn 0.5086 0.6947 0.5086 vn 0.0000 1.0000 0.0000 s off -f 370//110 357//110 358//110 -f 377//111 364//111 365//111 -f 374//112 361//112 362//112 -f 371//113 358//113 359//113 -f 378//114 365//114 366//114 -f 375//115 362//115 363//115 -f 372//116 359//116 360//116 -f 379//117 366//117 367//117 -f 369//118 356//118 357//118 -f 376//119 363//119 364//119 -f 373//120 360//120 361//120 -f 368//121 367//121 356//121 -f 377//122 388//122 376//122 -f 377//123 390//123 389//123 -f 378//124 391//124 390//124 -f 379//125 380//125 391//125 -f 368//126 381//126 380//126 -f 369//127 382//127 381//127 -f 371//128 382//128 370//128 -f 372//129 383//129 371//129 -f 373//130 384//130 372//130 -f 374//131 385//131 373//131 -f 375//132 386//132 374//132 -f 376//133 387//133 375//133 -f 388//134 390//134 380//134 -f 370//110 369//110 357//110 -f 377//111 376//111 364//111 -f 374//112 373//112 361//112 -f 371//113 370//113 358//113 -f 378//114 377//114 365//114 -f 375//115 374//115 362//115 -f 372//116 371//116 359//116 -f 379//117 378//117 366//117 -f 369//118 368//118 356//118 -f 376//119 375//119 363//119 -f 373//120 372//120 360//120 -f 368//121 379//121 367//121 -f 377//122 389//122 388//122 -f 377//123 378//123 390//123 -f 378//124 379//124 391//124 -f 379//125 368//125 380//125 -f 368//126 369//126 381//126 -f 369//127 370//127 382//127 -f 371//128 383//128 382//128 -f 372//129 384//129 383//129 -f 373//130 385//130 384//130 -f 374//131 386//131 385//131 -f 375//132 387//132 386//132 -f 376//133 388//133 387//133 -f 380//134 381//134 384//134 -f 381//134 382//134 384//134 -f 382//134 383//134 384//134 -f 384//134 385//134 386//134 -f 386//134 387//134 388//134 -f 388//134 389//134 390//134 -f 390//134 391//134 380//134 -f 384//134 386//134 380//134 -f 386//134 388//134 380//134 +f 405//131 392//131 393//131 +f 412//132 399//132 400//132 +f 409//133 396//133 397//133 +f 406//134 393//134 394//134 +f 413//135 400//135 401//135 +f 410//136 397//136 398//136 +f 407//137 394//137 395//137 +f 414//138 401//138 402//138 +f 404//139 391//139 392//139 +f 411//140 398//140 399//140 +f 408//141 395//141 396//141 +f 403//142 402//142 391//142 +f 412//143 423//143 411//143 +f 412//144 425//144 424//144 +f 413//145 426//145 425//145 +f 414//146 415//146 426//146 +f 403//147 416//147 415//147 +f 404//148 417//148 416//148 +f 406//149 417//149 405//149 +f 407//150 418//150 406//150 +f 408//151 419//151 407//151 +f 409//152 420//152 408//152 +f 410//153 421//153 409//153 +f 411//154 422//154 410//154 +f 423//155 425//155 415//155 +f 405//131 404//131 392//131 +f 412//132 411//132 399//132 +f 409//133 408//133 396//133 +f 406//134 405//134 393//134 +f 413//135 412//135 400//135 +f 410//136 409//136 397//136 +f 407//137 406//137 394//137 +f 414//138 413//138 401//138 +f 404//139 403//139 391//139 +f 411//140 410//140 398//140 +f 408//141 407//141 395//141 +f 403//142 414//142 402//142 +f 412//143 424//143 423//143 +f 412//144 413//144 425//144 +f 413//145 414//145 426//145 +f 414//146 403//146 415//146 +f 403//147 404//147 416//147 +f 404//148 405//148 417//148 +f 406//149 418//149 417//149 +f 407//150 419//150 418//150 +f 408//151 420//151 419//151 +f 409//152 421//152 420//152 +f 410//153 422//153 421//153 +f 411//154 423//154 422//154 +f 415//155 416//155 419//155 +f 416//155 417//155 419//155 +f 417//155 418//155 419//155 +f 419//155 420//155 421//155 +f 421//155 422//155 423//155 +f 423//155 424//155 425//155 +f 425//155 426//155 415//155 +f 419//155 421//155 415//155 +f 421//155 423//155 415//155 o Pellet v 0.000000 0.250000 -0.312500 v -0.156250 0.250000 -0.270633 @@ -1630,64 +1804,64 @@ vn 0.6947 0.6947 0.1862 vn 0.6947 0.6947 -0.1862 vn 0.0000 1.0000 -0.0000 s off -f 398/452/135 409/453/135 397/454/135 -f 395/455/136 406/456/136 394/457/136 -f 402/458/137 413/459/137 401/460/137 -f 399/461/138 410/462/138 398/452/138 -f 396/463/139 407/464/139 395/465/139 -f 403/466/140 414/467/140 402/458/140 -f 393/468/141 404/469/141 392/470/141 -f 400/471/142 411/472/142 399/461/142 -f 397/454/143 408/473/143 396/463/143 -f 392/470/144 415/474/144 403/466/144 -f 394/457/145 405/475/145 393/468/145 -f 401/460/146 412/476/146 400/471/146 -f 414/467/147 427/477/147 426/478/147 -f 415/474/148 416/479/148 427/480/148 -f 405/475/149 416/481/149 404/469/149 -f 406/456/150 417/482/150 405/475/150 -f 407/483/151 418/484/151 406/456/151 -f 408/473/152 419/485/152 407/464/152 -f 409/453/153 420/486/153 408/473/153 -f 410/462/154 421/487/154 409/453/154 -f 411/472/155 422/488/155 410/462/155 -f 411/472/156 424/489/156 423/490/156 -f 412/476/157 425/491/157 424/492/157 -f 413/459/158 426/493/158 425/494/158 -f 420/495/159 424/496/159 416/497/159 -f 398/452/135 410/462/135 409/453/135 -f 395/455/136 407/483/136 406/456/136 -f 402/458/137 414/467/137 413/459/137 -f 399/461/138 411/472/138 410/462/138 -f 396/463/139 408/473/139 407/464/139 -f 403/466/140 415/474/140 414/467/140 -f 393/468/141 405/475/141 404/469/141 -f 400/471/142 412/476/142 411/472/142 -f 397/454/143 409/453/143 408/473/143 -f 392/470/144 404/469/144 415/474/144 -f 394/457/145 406/456/145 405/475/145 -f 401/460/146 413/459/146 412/476/146 -f 414/467/147 415/474/147 427/477/147 -f 415/474/148 404/469/148 416/479/148 -f 405/475/149 417/498/149 416/481/149 -f 406/456/150 418/499/150 417/482/150 -f 407/483/151 419/500/151 418/484/151 -f 408/473/152 420/501/152 419/485/152 -f 409/453/153 421/502/153 420/486/153 -f 410/462/154 422/503/154 421/487/154 -f 411/472/155 423/504/155 422/488/155 -f 411/472/156 412/476/156 424/489/156 -f 412/476/157 413/459/157 425/491/157 -f 413/459/158 414/467/158 426/493/158 -f 416/497/159 417/505/159 418/506/159 -f 418/506/159 419/507/159 420/495/159 -f 420/495/159 421/508/159 422/509/159 -f 422/509/159 423/510/159 420/495/159 -f 423/510/159 424/496/159 420/495/159 -f 424/496/159 425/511/159 426/512/159 -f 426/512/159 427/513/159 416/497/159 -f 416/497/159 418/506/159 420/495/159 -f 424/496/159 426/512/159 416/497/159 +f 433/519/156 444/520/156 432/521/156 +f 430/522/157 441/523/157 429/524/157 +f 437/525/158 448/526/158 436/527/158 +f 434/528/159 445/529/159 433/519/159 +f 431/530/160 442/531/160 430/532/160 +f 438/533/161 449/534/161 437/525/161 +f 428/535/162 439/536/162 427/537/162 +f 435/538/163 446/539/163 434/528/163 +f 432/521/164 443/540/164 431/530/164 +f 427/537/165 450/541/165 438/533/165 +f 429/524/166 440/542/166 428/535/166 +f 436/527/167 447/543/167 435/538/167 +f 449/534/168 462/544/168 461/545/168 +f 450/541/169 451/546/169 462/547/169 +f 440/542/170 451/548/170 439/536/170 +f 441/523/171 452/549/171 440/542/171 +f 442/550/172 453/551/172 441/523/172 +f 443/540/173 454/552/173 442/531/173 +f 444/520/174 455/553/174 443/540/174 +f 445/529/175 456/554/175 444/520/175 +f 446/539/176 457/555/176 445/529/176 +f 446/539/177 459/556/177 458/557/177 +f 447/543/178 460/558/178 459/559/178 +f 448/526/179 461/560/179 460/561/179 +f 455/562/180 459/563/180 451/564/180 +f 433/519/156 445/529/156 444/520/156 +f 430/522/157 442/550/157 441/523/157 +f 437/525/158 449/534/158 448/526/158 +f 434/528/159 446/539/159 445/529/159 +f 431/530/160 443/540/160 442/531/160 +f 438/533/161 450/541/161 449/534/161 +f 428/535/162 440/542/162 439/536/162 +f 435/538/163 447/543/163 446/539/163 +f 432/521/164 444/520/164 443/540/164 +f 427/537/165 439/536/165 450/541/165 +f 429/524/166 441/523/166 440/542/166 +f 436/527/167 448/526/167 447/543/167 +f 449/534/168 450/541/168 462/544/168 +f 450/541/169 439/536/169 451/546/169 +f 440/542/170 452/565/170 451/548/170 +f 441/523/171 453/566/171 452/549/171 +f 442/550/172 454/567/172 453/551/172 +f 443/540/173 455/568/173 454/552/173 +f 444/520/174 456/569/174 455/553/174 +f 445/529/175 457/570/175 456/554/175 +f 446/539/176 458/571/176 457/555/176 +f 446/539/177 447/543/177 459/556/177 +f 447/543/178 448/526/178 460/558/178 +f 448/526/179 449/534/179 461/560/179 +f 451/564/180 452/572/180 453/573/180 +f 453/573/180 454/574/180 455/562/180 +f 455/562/180 456/575/180 457/576/180 +f 457/576/180 458/577/180 455/562/180 +f 458/577/180 459/563/180 455/562/180 +f 459/563/180 460/578/180 461/579/180 +f 461/579/180 462/580/180 451/564/180 +f 451/564/180 453/573/180 455/562/180 +f 459/563/180 461/579/180 451/564/180 o Head v 0.375000 1.750000 0.375000 v -0.375000 1.750000 0.375000 @@ -1744,30 +1918,30 @@ vn 0.0000 0.0000 1.0000 vn -1.0000 0.0000 0.0000 vn 0.0000 0.0000 -1.0000 s off -f 431/514/160 428/515/160 429/516/160 -f 432/517/161 434/518/161 433/519/161 -f 430/520/162 432/517/162 428/521/162 -f 428/521/163 433/522/163 429/523/163 -f 429/524/164 434/525/164 431/526/164 -f 431/526/165 435/527/165 430/520/165 -f 439/528/160 436/529/160 437/530/160 -f 440/531/161 442/532/161 441/533/161 -f 438/534/162 440/531/162 436/535/162 -f 436/535/163 441/536/163 437/537/163 -f 437/538/164 442/539/164 439/540/164 -f 439/540/165 443/541/165 438/534/165 -f 431/514/160 430/542/160 428/515/160 -f 432/517/161 435/527/161 434/518/161 -f 430/520/162 435/527/162 432/517/162 -f 428/521/163 432/517/163 433/522/163 -f 429/524/164 433/543/164 434/525/164 -f 431/526/165 434/525/165 435/527/165 -f 439/528/160 438/544/160 436/529/160 -f 440/531/161 443/541/161 442/532/161 -f 438/534/162 443/541/162 440/531/162 -f 436/535/163 440/531/163 441/536/163 -f 437/538/164 441/545/164 442/539/164 -f 439/540/165 442/539/165 443/541/165 +f 466/581/181 463/582/181 464/583/181 +f 467/584/182 469/585/182 468/586/182 +f 465/587/183 467/584/183 463/588/183 +f 463/588/184 468/589/184 464/590/184 +f 464/591/185 469/592/185 466/593/185 +f 466/593/186 470/594/186 465/587/186 +f 474/595/181 471/596/181 472/597/181 +f 475/598/182 477/599/182 476/600/182 +f 473/601/183 475/598/183 471/602/183 +f 471/602/184 476/603/184 472/604/184 +f 472/605/185 477/606/185 474/607/185 +f 474/607/186 478/608/186 473/601/186 +f 466/581/181 465/609/181 463/582/181 +f 467/584/182 470/594/182 469/585/182 +f 465/587/183 470/594/183 467/584/183 +f 463/588/184 467/584/184 468/589/184 +f 464/591/185 468/610/185 469/592/185 +f 466/593/186 469/592/186 470/594/186 +f 474/595/181 473/611/181 471/596/181 +f 475/598/182 478/608/182 477/599/182 +f 473/601/183 478/608/183 475/598/183 +f 471/602/184 475/598/184 476/603/184 +f 472/605/185 476/612/185 477/606/185 +f 474/607/186 477/606/186 478/608/186 o LA v -0.125000 1.000000 -0.250000 v 0.125000 1.000000 -0.250000 @@ -1824,30 +1998,30 @@ vn 0.0000 1.0000 0.0000 vn 0.0000 -1.0000 0.0000 vn 0.0000 0.0000 1.0000 s off -f 450/546/166 445/547/166 449/548/166 -f 449/548/167 451/549/167 450/546/167 -f 448/550/168 446/551/168 451/549/168 -f 450/546/169 446/552/169 447/553/169 -f 449/554/170 444/555/170 448/556/170 -f 446/557/171 445/547/171 447/553/171 -f 457/558/170 452/559/170 456/560/170 -f 459/561/166 453/562/166 457/563/166 -f 458/564/169 455/565/169 459/561/169 -f 456/566/168 454/567/168 458/568/168 -f 454/569/171 453/562/171 455/565/171 -f 457/563/167 458/568/167 459/561/167 -f 450/546/166 447/553/166 445/547/166 -f 449/548/167 448/550/167 451/549/167 -f 448/550/168 444/570/168 446/551/168 -f 450/546/169 451/571/169 446/552/169 -f 449/554/170 445/572/170 444/555/170 -f 446/557/171 444/573/171 445/547/171 -f 457/558/170 453/574/170 452/559/170 -f 459/561/166 455/565/166 453/562/166 -f 458/564/169 454/575/169 455/565/169 -f 456/566/168 452/576/168 454/567/168 -f 454/569/171 452/577/171 453/562/171 -f 457/563/167 456/566/167 458/568/167 +f 485/613/187 480/614/187 484/615/187 +f 484/615/188 486/616/188 485/613/188 +f 483/617/189 481/618/189 486/616/189 +f 485/613/190 481/619/190 482/620/190 +f 484/621/191 479/622/191 483/623/191 +f 481/624/192 480/614/192 482/620/192 +f 492/625/191 487/626/191 491/627/191 +f 494/628/187 488/629/187 492/630/187 +f 493/631/190 490/632/190 494/628/190 +f 491/633/189 489/634/189 493/635/189 +f 489/636/192 488/629/192 490/632/192 +f 492/630/188 493/635/188 494/628/188 +f 485/613/187 482/620/187 480/614/187 +f 484/615/188 483/617/188 486/616/188 +f 483/617/189 479/637/189 481/618/189 +f 485/613/190 486/638/190 481/619/190 +f 484/621/191 480/639/191 479/622/191 +f 481/624/192 479/640/192 480/614/192 +f 492/625/191 488/641/191 487/626/191 +f 494/628/187 490/632/187 488/629/187 +f 493/631/190 489/642/190 490/632/190 +f 491/633/189 487/643/189 489/634/189 +f 489/636/192 487/644/192 488/629/192 +f 492/630/188 491/633/188 493/635/188 o RA v -0.125000 1.750000 0.250000 v 0.125000 1.750000 0.250000 @@ -1904,30 +2078,30 @@ vn 0.0000 -1.0000 0.0000 vn 1.0000 0.0000 -0.0000 vn 0.0000 1.0000 0.0000 s off -f 462/578/172 460/579/172 461/580/172 -f 465/581/173 466/582/173 464/583/173 -f 463/584/174 465/585/174 460/579/174 -f 462/586/175 467/587/175 463/588/175 -f 461/580/176 466/582/176 462/578/176 -f 461/580/177 465/589/177 464/583/177 -f 470/590/172 469/591/172 468/592/172 -f 473/593/173 474/594/173 472/595/173 -f 471/596/174 473/597/174 469/591/174 -f 469/598/177 472/595/177 468/592/177 -f 468/592/176 474/594/176 470/590/176 -f 470/599/175 475/600/175 471/601/175 -f 462/578/172 463/584/172 460/579/172 -f 465/581/173 467/602/173 466/582/173 -f 463/584/174 467/603/174 465/585/174 -f 462/586/175 466/604/175 467/587/175 -f 461/580/176 464/583/176 466/582/176 -f 461/580/177 460/605/177 465/589/177 -f 470/590/172 471/596/172 469/591/172 -f 473/593/173 475/606/173 474/594/173 -f 471/596/174 475/607/174 473/597/174 -f 469/598/177 473/608/177 472/595/177 -f 468/592/176 472/595/176 474/594/176 -f 470/599/175 474/609/175 475/600/175 +f 497/645/193 495/646/193 496/647/193 +f 500/648/194 501/649/194 499/650/194 +f 498/651/195 500/652/195 495/646/195 +f 497/653/196 502/654/196 498/655/196 +f 496/647/197 501/649/197 497/645/197 +f 496/647/198 500/656/198 499/650/198 +f 505/657/193 504/658/193 503/659/193 +f 508/660/194 509/661/194 507/662/194 +f 506/663/195 508/664/195 504/658/195 +f 504/665/198 507/662/198 503/659/198 +f 503/659/197 509/661/197 505/657/197 +f 505/666/196 510/667/196 506/668/196 +f 497/645/193 498/651/193 495/646/193 +f 500/648/194 502/669/194 501/649/194 +f 498/651/195 502/670/195 500/652/195 +f 497/653/196 501/671/196 502/654/196 +f 496/647/197 499/650/197 501/649/197 +f 496/647/198 495/672/198 500/656/198 +f 505/657/193 506/663/193 504/658/193 +f 508/660/194 510/673/194 509/661/194 +f 506/663/195 510/674/195 508/664/195 +f 504/665/198 508/675/198 507/662/198 +f 503/659/197 507/662/197 509/661/197 +f 505/666/196 509/676/196 510/667/196 o LL v -0.125000 1.000000 -0.250000 v -0.125000 0.250000 -0.250000 @@ -1984,30 +2158,30 @@ vn 1.0000 0.0000 -0.0000 vn 0.0000 1.0000 0.0000 vn 0.0000 0.0000 -1.0000 s off -f 477/610/178 483/611/178 481/612/178 -f 480/613/179 477/614/179 481/615/179 -f 482/616/180 481/617/180 483/618/180 -f 478/619/181 483/618/181 479/620/181 -f 480/621/182 478/619/182 476/622/182 -f 476/623/183 479/620/183 477/614/183 -f 488/624/182 486/625/182 484/626/182 -f 485/627/178 491/628/178 489/629/178 -f 486/625/181 491/630/181 487/631/181 -f 484/632/183 487/631/183 485/633/183 -f 488/634/179 485/633/179 489/635/179 -f 490/636/180 489/637/180 491/630/180 -f 477/610/178 479/638/178 483/611/178 -f 480/613/179 476/623/179 477/614/179 -f 482/616/180 480/639/180 481/617/180 -f 478/619/181 482/616/181 483/618/181 -f 480/621/182 482/616/182 478/619/182 -f 476/623/183 478/619/183 479/620/183 -f 488/624/182 490/636/182 486/625/182 -f 485/627/178 487/640/178 491/628/178 -f 486/625/181 490/636/181 491/630/181 -f 484/632/183 486/625/183 487/631/183 -f 488/634/179 484/632/179 485/633/179 -f 490/636/180 488/641/180 489/637/180 +f 512/677/199 518/678/199 516/679/199 +f 515/680/200 512/681/200 516/682/200 +f 517/683/201 516/684/201 518/685/201 +f 513/686/202 518/685/202 514/687/202 +f 515/688/203 513/686/203 511/689/203 +f 511/690/204 514/687/204 512/681/204 +f 523/691/203 521/692/203 519/693/203 +f 520/694/199 526/695/199 524/696/199 +f 521/692/202 526/697/202 522/698/202 +f 519/699/204 522/698/204 520/700/204 +f 523/701/200 520/700/200 524/702/200 +f 525/703/201 524/704/201 526/697/201 +f 512/677/199 514/705/199 518/678/199 +f 515/680/200 511/690/200 512/681/200 +f 517/683/201 515/706/201 516/684/201 +f 513/686/202 517/683/202 518/685/202 +f 515/688/203 517/683/203 513/686/203 +f 511/690/204 513/686/204 514/687/204 +f 523/691/203 525/703/203 521/692/203 +f 520/694/199 522/707/199 526/695/199 +f 521/692/202 525/703/202 526/697/202 +f 519/699/204 521/692/204 522/698/204 +f 523/701/200 519/699/200 520/700/200 +f 525/703/201 523/708/201 524/704/201 o RL v 0.125000 0.250000 0.250000 v 0.125000 1.000000 0.250000 @@ -2064,30 +2238,30 @@ vn 1.0000 0.0000 -0.0000 vn 0.0000 -1.0000 0.0000 vn 0.0000 1.0000 0.0000 s off -f 493/642/184 494/643/184 492/644/184 -f 495/645/185 498/646/185 494/647/185 -f 499/648/186 496/649/186 498/646/186 -f 497/650/187 492/644/187 496/649/187 -f 498/651/188 492/652/188 494/653/188 -f 495/654/189 497/650/189 499/655/189 -f 501/656/184 502/657/184 500/658/184 -f 503/659/185 506/660/185 502/661/185 -f 507/662/186 504/663/186 506/660/186 -f 505/664/187 500/658/187 504/663/187 -f 506/665/188 500/666/188 502/667/188 -f 503/668/189 505/664/189 507/669/189 -f 493/642/184 495/670/184 494/643/184 -f 495/645/185 499/648/185 498/646/185 -f 499/648/186 497/650/186 496/649/186 -f 497/650/187 493/642/187 492/644/187 -f 498/651/188 496/671/188 492/652/188 -f 495/654/189 493/642/189 497/650/189 -f 501/656/184 503/672/184 502/657/184 -f 503/659/185 507/662/185 506/660/185 -f 507/662/186 505/664/186 504/663/186 -f 505/664/187 501/656/187 500/658/187 -f 506/665/188 504/673/188 500/666/188 -f 503/668/189 501/656/189 505/664/189 +f 528/709/205 529/710/205 527/711/205 +f 530/712/206 533/713/206 529/714/206 +f 534/715/207 531/716/207 533/713/207 +f 532/717/208 527/711/208 531/716/208 +f 533/718/209 527/719/209 529/720/209 +f 530/721/210 532/717/210 534/722/210 +f 536/723/205 537/724/205 535/725/205 +f 538/726/206 541/727/206 537/728/206 +f 542/729/207 539/730/207 541/727/207 +f 540/731/208 535/725/208 539/730/208 +f 541/732/209 535/733/209 537/734/209 +f 538/735/210 540/731/210 542/736/210 +f 528/709/205 530/737/205 529/710/205 +f 530/712/206 534/715/206 533/713/206 +f 534/715/207 532/717/207 531/716/207 +f 532/717/208 528/709/208 527/711/208 +f 533/718/209 531/738/209 527/719/209 +f 530/721/210 528/709/210 532/717/210 +f 536/723/205 538/739/205 537/724/205 +f 538/726/206 542/729/206 541/727/206 +f 542/729/207 540/731/207 539/730/207 +f 540/731/208 536/723/208 535/725/208 +f 541/732/209 539/740/209 535/733/209 +f 538/735/210 536/723/210 540/731/210 o Head17 v 0.375000 1.750000 0.375000 v -0.375000 1.750000 0.375000 @@ -2144,30 +2318,30 @@ vn 0.0000 0.0000 1.0000 vn -1.0000 0.0000 0.0000 vn 0.0000 0.0000 -1.0000 s off -f 511/674/190 508/675/190 509/676/190 -f 512/677/191 514/678/191 513/679/191 -f 510/680/192 512/677/192 508/681/192 -f 508/681/193 513/682/193 509/683/193 -f 509/684/194 514/685/194 511/686/194 -f 511/686/195 515/687/195 510/680/195 -f 519/688/190 516/689/190 517/690/190 -f 520/691/191 522/692/191 521/693/191 -f 518/694/192 520/691/192 516/695/192 -f 516/695/193 521/696/193 517/697/193 -f 517/698/194 522/699/194 519/700/194 -f 519/700/195 523/701/195 518/694/195 -f 511/674/190 510/702/190 508/675/190 -f 512/677/191 515/687/191 514/678/191 -f 510/680/192 515/687/192 512/677/192 -f 508/681/193 512/677/193 513/682/193 -f 509/684/194 513/703/194 514/685/194 -f 511/686/195 514/685/195 515/687/195 -f 519/688/190 518/704/190 516/689/190 -f 520/691/191 523/701/191 522/692/191 -f 518/694/192 523/701/192 520/691/192 -f 516/695/193 520/691/193 521/696/193 -f 517/698/194 521/705/194 522/699/194 -f 519/700/195 522/699/195 523/701/195 +f 546/741/211 543/742/211 544/743/211 +f 547/744/212 549/745/212 548/746/212 +f 545/747/213 547/744/213 543/748/213 +f 543/748/214 548/749/214 544/750/214 +f 544/751/215 549/752/215 546/753/215 +f 546/753/216 550/754/216 545/747/216 +f 554/755/211 551/756/211 552/757/211 +f 555/758/212 557/759/212 556/760/212 +f 553/761/213 555/758/213 551/762/213 +f 551/762/214 556/763/214 552/764/214 +f 552/765/215 557/766/215 554/767/215 +f 554/767/216 558/768/216 553/761/216 +f 546/741/211 545/769/211 543/742/211 +f 547/744/212 550/754/212 549/745/212 +f 545/747/213 550/754/213 547/744/213 +f 543/748/214 547/744/214 548/749/214 +f 544/751/215 548/770/215 549/752/215 +f 546/753/216 549/752/216 550/754/216 +f 554/755/211 553/771/211 551/756/211 +f 555/758/212 558/768/212 557/759/212 +f 553/761/213 558/768/213 555/758/213 +f 551/762/214 555/758/214 556/763/214 +f 552/765/215 556/772/215 557/766/215 +f 554/767/216 557/766/216 558/768/216 o RA17 v -0.125000 1.750000 0.250000 v 0.125000 1.750000 0.250000 @@ -2200,18 +2374,18 @@ vn 0.0000 -1.0000 0.0000 vn 1.0000 0.0000 -0.0000 vn 0.0000 1.0000 0.0000 s off -f 526/706/196 524/707/196 525/708/196 -f 529/709/197 530/710/197 528/711/197 -f 527/712/198 529/713/198 524/707/198 -f 526/714/199 531/715/199 527/716/199 -f 525/708/200 530/710/200 526/706/200 -f 525/708/201 529/717/201 528/711/201 -f 526/706/196 527/712/196 524/707/196 -f 529/709/197 531/718/197 530/710/197 -f 527/712/198 531/719/198 529/713/198 -f 526/714/199 530/720/199 531/715/199 -f 525/708/200 528/711/200 530/710/200 -f 525/708/201 524/721/201 529/717/201 +f 561/773/217 559/774/217 560/775/217 +f 564/776/218 565/777/218 563/778/218 +f 562/779/219 564/780/219 559/774/219 +f 561/781/220 566/782/220 562/783/220 +f 560/775/221 565/777/221 561/773/221 +f 560/775/222 564/784/222 563/778/222 +f 561/773/217 562/779/217 559/774/217 +f 564/776/218 566/785/218 565/777/218 +f 562/779/219 566/786/219 564/780/219 +f 561/781/220 565/787/220 566/782/220 +f 560/775/221 563/778/221 565/777/221 +f 560/775/222 559/788/222 564/784/222 o LA17 v -0.125000 1.000000 -0.500000 v 0.125000 1.000000 -0.500000 @@ -2244,18 +2418,18 @@ vn 0.0000 -1.0000 0.0000 vn 0.0000 0.0000 1.0000 vn -1.0000 0.0000 -0.0000 s off -f 533/722/202 534/723/202 535/724/202 -f 538/725/203 534/726/203 539/727/203 -f 533/722/204 538/725/204 537/728/204 -f 532/729/205 537/730/205 536/731/205 -f 539/732/206 537/728/206 538/725/206 -f 534/733/207 536/734/207 539/732/207 -f 533/722/202 532/735/202 534/723/202 -f 538/725/203 535/724/203 534/726/203 -f 533/722/204 535/724/204 538/725/204 -f 532/729/205 533/736/205 537/730/205 -f 539/732/206 536/734/206 537/728/206 -f 534/733/207 532/737/207 536/734/207 +f 568/789/223 569/790/223 570/791/223 +f 573/792/224 569/793/224 574/794/224 +f 568/789/225 573/792/225 572/795/225 +f 567/796/226 572/797/226 571/798/226 +f 574/799/227 572/795/227 573/792/227 +f 569/800/228 571/801/228 574/799/228 +f 568/789/223 567/802/223 569/790/223 +f 573/792/224 570/791/224 569/793/224 +f 568/789/225 570/791/225 573/792/225 +f 567/796/226 568/803/226 572/797/226 +f 574/799/227 571/801/227 572/795/227 +f 569/800/228 567/804/228 571/801/228 o LL17 v -0.125000 1.000000 0.000000 v -0.125000 0.250000 0.000000 @@ -2288,18 +2462,18 @@ vn 0.0000 0.0000 1.0000 vn -1.0000 0.0000 0.0000 vn 0.0000 0.0000 -1.0000 s off -f 542/738/208 544/739/208 540/740/208 -f 547/741/209 541/742/209 545/743/209 -f 547/744/210 542/738/210 543/745/210 -f 543/745/211 540/746/211 541/747/211 -f 541/747/212 544/748/212 545/749/212 -f 545/750/213 546/751/213 547/744/213 -f 542/738/208 546/751/208 544/739/208 -f 547/741/209 543/752/209 541/742/209 -f 547/744/210 546/751/210 542/738/210 -f 543/745/211 542/738/211 540/746/211 -f 541/747/212 540/746/212 544/748/212 -f 545/750/213 544/753/213 546/751/213 +f 577/805/229 579/806/229 575/807/229 +f 582/808/230 576/809/230 580/810/230 +f 582/811/231 577/805/231 578/812/231 +f 578/812/232 575/813/232 576/814/232 +f 576/814/233 579/815/233 580/816/233 +f 580/817/234 581/818/234 582/811/234 +f 577/805/229 581/818/229 579/806/229 +f 582/808/230 578/819/230 576/809/230 +f 582/811/231 581/818/231 577/805/231 +f 578/812/232 577/805/232 575/813/232 +f 576/814/233 575/813/233 579/815/233 +f 580/817/234 579/820/234 581/818/234 o RL17 v 0.125000 0.250000 0.250000 v 0.125000 1.000000 0.250000 @@ -2332,18 +2506,18 @@ vn 1.0000 0.0000 -0.0000 vn 0.0000 -1.0000 0.0000 vn 0.0000 1.0000 0.0000 s off -f 549/754/214 550/755/214 548/756/214 -f 551/757/215 554/758/215 550/759/215 -f 555/760/216 552/761/216 554/758/216 -f 553/762/217 548/756/217 552/761/217 -f 554/763/218 548/764/218 550/765/218 -f 551/766/219 553/762/219 555/767/219 -f 549/754/214 551/768/214 550/755/214 -f 551/757/215 555/760/215 554/758/215 -f 555/760/216 553/762/216 552/761/216 -f 553/762/217 549/754/217 548/756/217 -f 554/763/218 552/769/218 548/764/218 -f 551/766/219 549/754/219 553/762/219 +f 584/821/235 585/822/235 583/823/235 +f 586/824/236 589/825/236 585/826/236 +f 590/827/237 587/828/237 589/825/237 +f 588/829/238 583/823/238 587/828/238 +f 589/830/239 583/831/239 585/832/239 +f 586/833/240 588/829/240 590/834/240 +f 584/821/235 586/835/235 585/822/235 +f 586/824/236 590/827/236 589/825/236 +f 590/827/237 588/829/237 587/828/237 +f 588/829/238 584/821/238 583/823/238 +f 589/830/239 587/836/239 583/831/239 +f 586/833/240 584/821/240 588/829/240 o Body17 v 0.125000 1.750000 0.250000 v -0.125000 1.750000 0.250000 @@ -2376,18 +2550,18 @@ vn 0.0000 0.0000 -1.0000 vn 1.0000 0.0000 -0.0000 vn 0.0000 0.0000 1.0000 s off -f 556/770/220 559/771/220 557/772/220 -f 562/773/221 560/774/221 561/775/221 -f 559/776/222 561/777/222 557/778/222 -f 558/779/223 562/780/223 559/776/223 -f 556/770/224 563/781/224 558/779/224 -f 557/782/225 560/783/225 556/770/225 -f 556/770/220 558/779/220 559/771/220 -f 562/773/221 563/784/221 560/774/221 -f 559/776/222 562/780/222 561/777/222 -f 558/779/223 563/781/223 562/780/223 -f 556/770/224 560/783/224 563/781/224 -f 557/782/225 561/785/225 560/783/225 +f 591/837/241 594/838/241 592/839/241 +f 597/840/242 595/841/242 596/842/242 +f 594/843/243 596/844/243 592/845/243 +f 593/846/244 597/847/244 594/843/244 +f 591/837/245 598/848/245 593/846/245 +f 592/849/246 595/850/246 591/837/246 +f 591/837/241 593/846/241 594/838/241 +f 597/840/242 598/851/242 595/841/242 +f 594/843/243 597/847/243 596/844/243 +f 593/846/244 598/848/244 597/847/244 +f 591/837/245 595/850/245 598/848/245 +f 592/849/246 596/852/246 595/850/246 o Socket v 0.625000 0.000000 0.625000 v 0.625000 0.000000 -0.625000 @@ -2424,18 +2598,18 @@ vn 1.0000 0.0000 0.0000 vn 0.0000 0.0000 -1.0000 vn 0.0000 0.0000 1.0000 s off -f 566/786/226 565/787/226 564/788/226 -f 570/789/227 568/790/227 569/791/227 -f 566/792/228 571/793/228 567/794/228 -f 565/795/229 569/796/229 564/797/229 -f 567/798/230 570/799/230 565/787/230 -f 564/800/231 568/790/231 566/801/231 -f 566/786/226 567/798/226 565/787/226 -f 570/789/227 571/802/227 568/790/227 -f 566/792/228 568/803/228 571/793/228 -f 565/795/229 570/804/229 569/796/229 -f 567/798/230 571/805/230 570/799/230 -f 564/800/231 569/791/231 568/790/231 +f 601/853/247 600/854/247 599/855/247 +f 605/856/248 603/857/248 604/858/248 +f 601/859/249 606/860/249 602/861/249 +f 600/862/250 604/863/250 599/864/250 +f 602/865/251 605/866/251 600/854/251 +f 599/867/252 603/857/252 601/868/252 +f 601/853/247 602/865/247 600/854/247 +f 605/856/248 606/869/248 603/857/248 +f 601/859/249 603/870/249 606/860/249 +f 600/862/250 605/871/250 604/863/250 +f 602/865/251 606/872/251 605/866/251 +f 599/867/252 604/858/252 603/857/252 o Body v 0.125000 1.750000 0.250000 v -0.125000 1.750000 0.250000 @@ -2492,27 +2666,27 @@ vn 0.0000 0.0000 -1.0000 vn 1.0000 0.0000 -0.0000 vn 0.0000 0.0000 1.0000 s off -f 572/806/232 575/807/232 573/808/232 -f 578/809/233 576/810/233 577/811/233 -f 575/812/234 577/813/234 573/814/234 -f 574/815/235 578/816/235 575/812/235 -f 572/806/236 579/817/236 574/815/236 -f 573/818/237 576/819/237 572/806/237 -f 580/820/232 583/821/232 581/822/232 -f 585/823/233 587/824/233 584/825/233 -f 583/826/234 585/827/234 581/828/234 -f 582/829/235 586/830/235 583/826/235 -f 580/820/236 587/831/236 582/829/236 -f 581/832/237 584/833/237 580/820/237 -f 572/806/232 574/815/232 575/807/232 -f 578/809/233 579/834/233 576/810/233 -f 575/812/234 578/816/234 577/813/234 -f 574/815/235 579/817/235 578/816/235 -f 572/806/236 576/819/236 579/817/236 -f 573/818/237 577/835/237 576/819/237 -f 580/820/232 582/829/232 583/821/232 -f 585/823/233 586/836/233 587/824/233 -f 583/826/234 586/830/234 585/827/234 -f 582/829/235 587/831/235 586/830/235 -f 580/820/236 584/833/236 587/831/236 -f 581/832/237 585/837/237 584/833/237 +f 607/873/253 610/874/253 608/875/253 +f 613/876/254 611/877/254 612/878/254 +f 610/879/255 612/880/255 608/881/255 +f 609/882/256 613/883/256 610/879/256 +f 607/873/257 614/884/257 609/882/257 +f 608/885/258 611/886/258 607/873/258 +f 615/887/253 618/888/253 616/889/253 +f 620/890/254 622/891/254 619/892/254 +f 618/893/255 620/894/255 616/895/255 +f 617/896/256 621/897/256 618/893/256 +f 615/887/257 622/898/257 617/896/257 +f 616/899/258 619/900/258 615/887/258 +f 607/873/253 609/882/253 610/874/253 +f 613/876/254 614/901/254 611/877/254 +f 610/879/255 613/883/255 612/880/255 +f 609/882/256 614/884/256 613/883/256 +f 607/873/257 611/886/257 614/884/257 +f 608/885/258 612/902/258 611/886/258 +f 615/887/253 617/896/253 618/888/253 +f 620/890/254 621/903/254 622/891/254 +f 618/893/255 621/897/255 620/894/255 +f 617/896/256 622/898/256 621/897/256 +f 615/887/257 619/900/257 622/898/257 +f 616/899/258 620/904/258 619/900/258 diff --git a/src/main/resources/assets/hbm/models/weapons/benelli_new.obj b/src/main/resources/assets/hbm/models/weapons/benelli_new.obj index 72a534e35..81b43a6ee 100644 --- a/src/main/resources/assets/hbm/models/weapons/benelli_new.obj +++ b/src/main/resources/assets/hbm/models/weapons/benelli_new.obj @@ -1,650 +1,5 @@ -# Blender v2.82 (sub 7) OBJ File: 'Benelli.blend' +# Blender v2.79 (sub 0) OBJ File: '' # www.blender.org -mtllib benelli_new.mtl -o Shell_Cylinder.002 -v -0.317579 2.171942 1.847565 -v 0.000000 2.303487 -0.098938 -v -0.317579 2.171942 -0.098938 -v 0.449124 1.854363 1.847565 -v 0.317579 1.536785 -0.098938 -v 0.449124 1.854363 -0.098938 -v 0.317579 1.536785 1.847565 -v 0.000000 1.405240 -0.098938 -v 0.000000 1.405239 1.847565 -v -0.317579 1.536785 -0.098938 -v -0.317579 1.536785 1.847565 -v -0.449124 1.854363 -0.098938 -v -0.449124 1.854363 1.847565 -v 0.000000 2.303487 1.847565 -v 0.317579 2.171942 -0.098938 -v 0.317579 2.171942 1.847565 -v 0.353356 2.207720 1.877207 -v 0.499721 1.854363 1.877207 -v 0.353356 1.501007 1.877207 -v 0.000000 1.354642 1.877207 -v -0.353356 1.501007 1.877207 -v -0.499721 1.854363 1.877207 -v -0.353356 2.207720 1.877207 -v 0.000000 2.354084 1.877207 -vt 0.125000 0.577656 -vt 0.000000 0.516094 -vt 0.125000 0.516094 -vt 0.750000 0.577656 -vt 0.625000 0.516094 -vt 0.750000 0.516094 -vt 0.625000 0.577656 -vt 0.500000 0.516094 -vt 0.500000 0.577656 -vt 0.375000 0.516094 -vt 0.375000 0.577656 -vt 0.250000 0.516094 -vt 0.250000 0.577656 -vt 1.000000 0.577656 -vt 0.875000 0.516094 -vt 1.000000 0.516094 -vt 0.875000 0.577656 -vt 0.707574 0.516599 -vt 0.690000 0.537812 -vt 0.707574 0.559026 -vt 0.218750 0.446250 -vt 0.195693 0.450000 -vt 0.195312 0.446250 -vt 0.172255 0.450000 -vt 0.171875 0.446250 -vt 0.148438 0.446250 -vt 0.171494 0.450000 -vt 0.148818 0.450000 -vt 0.125000 0.446250 -vt 0.148057 0.450000 -vt 0.125380 0.450000 -vt 0.101943 0.450000 -vt 0.101562 0.446250 -vt 0.078505 0.450000 -vt 0.078125 0.446250 -vt 0.054688 0.446250 -vt 0.077745 0.450000 -vt 0.055068 0.450000 -vt 0.031250 0.446250 -vt 0.054307 0.450000 -vt 0.031630 0.450000 -vt 0.013897 0.440000 -vt 0.130000 0.381948 -vt 0.246103 0.440000 -vt 0.000000 0.577656 -vt 0.750000 0.567813 -vt 0.792426 0.516599 -vt 0.792426 0.559026 -vt 0.810000 0.537812 -vt 0.750000 0.507812 -vt 0.218369 0.450000 -vt 0.194932 0.450000 -vt 0.124620 0.450000 -vt 0.101182 0.450000 -vt 0.212097 0.481049 -vt 0.130000 0.498052 -vt 0.047903 0.481049 -vt 0.047903 0.398951 -vt 0.212097 0.398951 -vn -0.3827 0.9239 0.0000 -vn 0.9239 -0.3827 -0.0000 -vn 0.3827 -0.9239 -0.0000 -vn -0.3827 -0.9239 -0.0000 -vn -0.9239 -0.3827 -0.0000 -vn -0.9239 0.3827 0.0000 -vn 0.3827 0.9239 0.0000 -vn 0.9239 0.3827 0.0000 -vn -0.0000 0.0000 -1.0000 -vn 0.2049 0.4948 -0.8445 -vn 0.4948 0.2049 -0.8445 -vn 0.4948 -0.2049 -0.8445 -vn 0.2049 -0.4948 -0.8445 -vn -0.2049 -0.4948 -0.8445 -vn -0.4948 -0.2049 -0.8445 -vn -0.4948 0.2049 -0.8445 -vn -0.2049 0.4948 -0.8445 -vn 0.0000 -0.0000 1.0000 -usemtl None -s 1 -f 1/1/1 2/2/1 3/3/1 -f 4/4/2 5/5/2 6/6/2 -f 7/7/3 8/8/3 5/5/3 -f 9/9/4 10/10/4 8/8/4 -f 11/11/5 12/12/5 10/10/5 -f 13/13/6 3/3/6 12/12/6 -f 14/14/7 15/15/7 2/16/7 -f 16/17/8 6/6/8 15/15/8 -f 10/18/9 12/19/9 3/20/9 -f 14/21/10 17/22/10 16/23/10 -f 16/23/11 18/24/11 4/25/11 -f 7/26/12 18/27/12 19/28/12 -f 9/29/13 19/30/13 20/31/13 -f 9/29/14 21/32/14 11/33/14 -f 11/33/15 22/34/15 13/35/15 -f 1/36/16 22/37/16 23/38/16 -f 14/39/17 23/40/17 24/41/17 -f 22/42/18 20/43/18 18/44/18 -f 1/1/1 14/45/1 2/2/1 -f 4/4/2 7/7/2 5/5/2 -f 7/7/3 9/9/3 8/8/3 -f 9/9/4 11/11/4 10/10/4 -f 11/11/5 13/13/5 12/12/5 -f 13/13/6 1/1/6 3/3/6 -f 14/14/7 16/17/7 15/15/7 -f 16/17/8 4/4/8 6/6/8 -f 3/20/9 2/46/9 5/47/9 -f 2/46/9 15/48/9 5/47/9 -f 15/48/9 6/49/9 5/47/9 -f 5/47/9 8/50/9 3/20/9 -f 8/50/9 10/18/9 3/20/9 -f 14/21/10 24/51/10 17/22/10 -f 16/23/11 17/52/11 18/24/11 -f 7/26/12 4/25/12 18/27/12 -f 9/29/13 7/26/13 19/30/13 -f 9/29/14 20/53/14 21/32/14 -f 11/33/15 21/54/15 22/34/15 -f 1/36/16 13/35/16 22/37/16 -f 14/39/17 1/36/17 23/40/17 -f 18/44/18 17/55/18 24/56/18 -f 24/56/18 23/57/18 22/42/18 -f 22/42/18 21/58/18 20/43/18 -f 20/43/18 19/59/18 18/44/18 -f 18/44/18 24/56/18 22/42/18 -o Slide_Cylinder -v 1.272063 1.594606 -0.244676 -v 1.272063 1.368420 -0.338365 -v 1.272063 1.462109 -0.564550 -v 0.647653 0.965039 -0.742828 -v 0.711569 1.012017 5.211916 -v 0.647653 0.965039 5.211916 -v 0.711569 1.012017 -0.742828 -v 0.770475 1.088305 5.211916 -v 0.770475 1.088305 -0.742828 -v 0.822106 1.190971 5.211916 -v 0.822106 1.190971 -0.742828 -v 0.864478 1.316070 5.211916 -v 0.921900 1.774713 -0.742828 -v 0.915353 1.918690 3.212208 -v 0.921900 1.774713 3.711916 -v 0.915353 1.935767 -0.742828 -v 0.895964 2.073555 3.212208 -v 0.895964 2.090632 -0.742828 -v 0.864478 2.216279 3.212208 -v 0.864478 2.233356 -0.742828 -v 0.822106 2.341378 3.212208 -v 0.822106 2.358455 -0.742828 -v 0.770475 2.444044 3.212208 -v 0.770475 2.461121 -0.742828 -v 0.711569 2.520332 3.212208 -v 0.711569 2.537409 -0.742828 -v 0.647653 2.567310 3.212208 -v 0.904673 1.528358 -0.577728 -v 1.272063 1.494584 -0.574402 -v 0.900445 1.494584 -0.574402 -v 0.896379 1.462109 -0.564550 -v 1.272063 1.432180 -0.548553 -v 0.890093 1.432180 -0.548553 -v 0.895964 1.458794 -0.562778 -v 1.272063 1.405947 -0.527024 -v 0.884306 1.405947 -0.527024 -v 1.272063 1.384418 -0.500791 -v 0.879556 1.384418 -0.500791 -v 1.272063 1.368420 -0.470861 -v 0.876027 1.368420 -0.470861 -v 1.272063 1.358569 -0.438386 -v 0.873854 1.358569 -0.438386 -v 1.272063 1.355243 -0.404613 -v 0.873120 1.355243 -0.404613 -v 0.873854 1.358569 -0.370840 -v 1.272063 1.358569 -0.370840 -v 0.876027 1.368420 -0.338365 -v 0.879556 1.384418 -0.308436 -v 1.272063 1.384418 -0.308436 -v 0.884306 1.405947 -0.282203 -v 1.272063 1.405947 -0.282203 -v 0.890093 1.432180 -0.260674 -v 1.272063 1.432180 -0.260674 -v 0.896379 1.462109 -0.244676 -v 0.895964 1.458794 -0.246449 -v 1.272063 1.462109 -0.244676 -v 0.900445 1.494585 -0.234825 -v 1.272063 1.494585 -0.234825 -v 0.904673 1.528358 -0.231499 -v 1.272063 1.528358 -0.231499 -v 0.908902 1.562131 -0.234825 -v 1.272063 1.562131 -0.234825 -v 0.912967 1.594606 -0.244676 -v 1.272063 1.624535 -0.260674 -v 0.915795 1.624535 -0.260674 -v 0.915353 1.613659 -0.254860 -v 0.916861 1.650768 -0.282203 -v 1.272063 1.650768 -0.282203 -v 0.917736 1.672297 -0.308436 -v 1.272063 1.672297 -0.308436 -v 0.918387 1.688295 -0.338366 -v 1.272063 1.688295 -0.338366 -v 0.918787 1.698146 -0.370841 -v 1.272063 1.698146 -0.370841 -v 0.918922 1.701472 -0.404613 -v 1.272063 1.698146 -0.438387 -v 0.918787 1.698146 -0.438387 -v 1.272063 1.688294 -0.470862 -v 0.918387 1.688294 -0.470862 -v 1.272063 1.672297 -0.500791 -v 0.917736 1.672297 -0.500791 -v 1.272063 1.650768 -0.527024 -v 0.916861 1.650768 -0.527024 -v 1.272063 1.624535 -0.548553 -v 0.915795 1.624535 -0.548553 -v 1.272063 1.594605 -0.564551 -v 0.912967 1.594605 -0.564551 -v 0.915353 1.613659 -0.554366 -v 1.272063 1.562130 -0.574402 -v 0.908902 1.562130 -0.574402 -v 1.272063 1.528358 -0.577728 -v 0.864478 1.316070 -0.742828 -v 0.895964 1.458794 5.211916 -v 0.915353 1.613659 -0.742828 -v 1.272063 1.701472 -0.404613 -v 0.647653 2.584387 -0.742828 -v 0.895964 1.458794 -0.742828 -v 0.915353 1.613659 5.211916 -v 0.581182 2.600249 -0.742828 -v 0.581182 2.583172 3.212208 -v 0.581182 0.949177 -0.742828 -v 0.581182 0.949177 5.211916 -vt 0.601212 0.686463 -vt 0.607212 0.688948 -vt 0.604727 0.694949 -vt 0.562350 0.784943 -vt 0.743961 0.782105 -vt 0.743961 0.784943 -vt 0.562350 0.782105 -vt 0.743961 0.779268 -vt 0.562350 0.779268 -vt 0.743961 0.776430 -vt 0.562350 0.776430 -vt 0.743961 0.773592 -vt 0.562350 0.765080 -vt 0.743961 0.762242 -vt 0.743961 0.765080 -vt 0.562350 0.762242 -vt 0.743961 0.759404 -vt 0.562350 0.759404 -vt 0.743961 0.756567 -vt 0.562350 0.756567 -vt 0.743961 0.753729 -vt 0.562350 0.753729 -vt 0.743961 0.750891 -vt 0.562350 0.750891 -vt 0.743961 0.748054 -vt 0.562350 0.748054 -vt 0.743961 0.745216 -vt 0.617321 0.697653 -vt 0.616723 0.705057 -vt 0.616723 0.697568 -vt 0.616125 0.705057 -vt 0.616125 0.697486 -vt 0.615527 0.705057 -vt 0.615527 0.697359 -vt 0.616059 0.697478 -vt 0.614929 0.705057 -vt 0.614929 0.697243 -vt 0.614331 0.705057 -vt 0.614331 0.697147 -vt 0.613733 0.705057 -vt 0.613733 0.697076 -vt 0.613135 0.705057 -vt 0.613135 0.697032 -vt 0.612537 0.705057 -vt 0.612537 0.697017 -vt 0.611939 0.697032 -vt 0.611939 0.705057 -vt 0.611341 0.697076 -vt 0.611341 0.705057 -vt 0.610743 0.697147 -vt 0.610743 0.705057 -vt 0.610145 0.697243 -vt 0.610145 0.705057 -vt 0.609547 0.697359 -vt 0.609547 0.705057 -vt 0.608949 0.697486 -vt 0.609015 0.697478 -vt 0.608949 0.705057 -vt 0.608351 0.697568 -vt 0.608351 0.705057 -vt 0.607753 0.697653 -vt 0.607753 0.705057 -vt 0.607155 0.697738 -vt 0.607155 0.705057 -vt 0.606557 0.697820 -vt 0.605959 0.705057 -vt 0.605959 0.697877 -vt 0.606177 0.697868 -vt 0.605361 0.697899 -vt 0.605361 0.705057 -vt 0.604763 0.697916 -vt 0.604763 0.705057 -vt 0.604165 0.697930 -vt 0.604165 0.705057 -vt 0.603567 0.697938 -vt 0.603567 0.705057 -vt 0.602969 0.697940 -vt 0.602372 0.705057 -vt 0.602372 0.697938 -vt 0.601774 0.705057 -vt 0.601774 0.697930 -vt 0.601176 0.705057 -vt 0.601176 0.697916 -vt 0.600578 0.705057 -vt 0.600578 0.697899 -vt 0.599980 0.705057 -vt 0.599980 0.697877 -vt 0.599382 0.705057 -vt 0.599382 0.697820 -vt 0.599762 0.697868 -vt 0.598784 0.705057 -vt 0.598784 0.697738 -vt 0.598186 0.705057 -vt 0.598186 0.697653 -vt 0.562350 0.773592 -vt 0.572667 0.772814 -vt 0.573697 0.772747 -vt 0.743961 0.770755 -vt 0.577845 0.770099 -vt 0.577947 0.769480 -vt 0.562350 0.767917 -vt 0.567489 0.768861 -vt 0.567387 0.769480 -vt 0.572667 0.766370 -vt 0.571637 0.766429 -vt 0.603865 0.695210 -vt 0.602969 0.695298 -vt 0.602074 0.695210 -vt 0.601212 0.694949 -vt 0.600418 0.694524 -vt 0.598727 0.692463 -vt 0.599722 0.693953 -vt 0.599151 0.693257 -vt 0.598465 0.691602 -vt 0.598377 0.690706 -vt 0.598465 0.689810 -vt 0.598727 0.688948 -vt 0.599151 0.688154 -vt 0.599722 0.687459 -vt 0.600418 0.686887 -vt 0.602074 0.686202 -vt 0.602969 0.686113 -vt 0.603865 0.686202 -vt 0.604727 0.686463 -vt 0.605521 0.686887 -vt 0.606217 0.687459 -vt 0.606788 0.688154 -vt 0.607474 0.689810 -vt 0.607562 0.690706 -vt 0.607474 0.691602 -vt 0.607212 0.692463 -vt 0.606788 0.693257 -vt 0.606217 0.693953 -vt 0.605521 0.694524 -vt 0.562350 0.745216 -vt 0.617321 0.705057 -vt 0.606557 0.705057 -vt 0.602969 0.705057 -vt 0.577057 0.771284 -vt 0.577491 0.770755 -vt 0.562350 0.770755 -vt 0.568277 0.771284 -vt 0.567842 0.770755 -vt 0.576399 0.771805 -vt 0.575599 0.772234 -vt 0.568932 0.771805 -vt 0.569733 0.772234 -vt 0.574686 0.772552 -vt 0.570646 0.772552 -vt 0.571637 0.772747 -vt 0.577545 0.768266 -vt 0.577233 0.767917 -vt 0.743961 0.767917 -vt 0.577545 0.770694 -vt 0.577845 0.768861 -vt 0.567789 0.770694 -vt 0.568098 0.767917 -vt 0.567789 0.768266 -vt 0.567489 0.770099 -vt 0.568277 0.767726 -vt 0.573697 0.766429 -vt 0.577057 0.767726 -vt 0.576399 0.767263 -vt 0.568932 0.767263 -vt 0.575599 0.766884 -vt 0.574686 0.766602 -vt 0.569733 0.766884 -vt 0.570646 0.766602 -vn 1.0000 0.0000 0.0000 -vn 0.5922 -0.8058 -0.0000 -vn 0.7915 -0.6112 -0.0000 -vn 0.8934 -0.4493 -0.0000 -vn 0.9471 -0.3208 -0.0000 -vn 0.9992 0.0407 0.0002 -vn 0.9990 0.0454 0.0000 -vn 0.9923 0.1242 0.0005 -vn 0.9765 0.2154 0.0009 -vn 0.9471 0.3208 0.0014 -vn 0.8934 0.4493 0.0019 -vn 0.7915 0.6112 0.0026 -vn 0.5922 0.8058 0.0035 -vn 0.0000 -0.0980 -0.9952 -vn 0.0000 -0.2903 -0.9569 -vn -0.0000 -0.4714 -0.8819 -vn 0.0000 -0.6344 -0.7730 -vn 0.0000 -0.7730 -0.6344 -vn 0.0000 -0.8819 -0.4714 -vn 0.0000 -0.9569 -0.2903 -vn 0.0000 -0.9952 -0.0980 -vn 0.0000 -0.9952 0.0980 -vn 0.0000 -0.9569 0.2903 -vn 0.0000 -0.8819 0.4714 -vn 0.0000 -0.7730 0.6344 -vn 0.0000 -0.6344 0.7730 -vn -0.0000 -0.4714 0.8819 -vn -0.0000 -0.4716 0.8818 -vn -0.0000 -0.4715 0.8819 -vn 0.0000 -0.2903 0.9569 -vn 0.0000 -0.0980 0.9952 -vn 0.0000 0.0980 0.9952 -vn 0.0000 0.2903 0.9569 -vn 0.0000 0.4714 0.8819 -vn 0.0000 0.6344 0.7730 -vn 0.0000 0.7730 0.6344 -vn 0.0000 0.8819 0.4714 -vn 0.0000 0.9569 0.2903 -vn 0.0000 0.9952 0.0980 -vn 0.0000 0.9952 -0.0980 -vn 0.0000 0.9569 -0.2903 -vn 0.0000 0.8819 -0.4714 -vn 0.0000 0.7730 -0.6344 -vn 0.0000 0.6344 -0.7730 -vn -0.0000 0.4714 -0.8819 -vn 0.0000 0.2903 -0.9569 -vn 0.0000 0.0980 -0.9952 -vn 0.9765 -0.2154 -0.0000 -vn 0.9766 -0.2150 -0.0000 -vn 0.9923 -0.1242 0.0000 -vn 0.9923 -0.1243 -0.0000 -vn 0.9992 -0.0406 0.0000 -vn 0.9992 -0.0407 -0.0000 -vn 0.9992 0.0406 0.0002 -vn 0.9765 -0.2155 0.0000 -usemtl Material.001 -s 1 -f 25/60/19 26/61/19 27/62/19 -f 28/63/20 29/64/20 30/65/20 -f 31/66/21 32/67/21 29/64/21 -f 33/68/22 34/69/22 32/67/22 -f 35/70/23 36/71/23 34/69/23 -f 37/72/24 38/73/25 39/74/25 -f 40/75/26 41/76/26 38/73/26 -f 42/77/27 43/78/27 41/76/27 -f 44/79/28 45/80/28 43/78/28 -f 46/81/29 47/82/29 45/80/29 -f 48/83/30 49/84/30 47/82/30 -f 50/85/31 51/86/31 49/84/31 -f 52/87/32 53/88/32 54/89/32 -f 54/89/33 27/90/33 55/91/33 -f 56/92/34 57/93/34 58/94/34 -f 57/93/35 59/95/35 60/96/35 -f 60/96/36 61/97/36 62/98/36 -f 62/98/37 63/99/37 64/100/37 -f 64/100/38 65/101/38 66/102/38 -f 66/102/39 67/103/39 68/104/39 -f 67/103/40 69/105/40 68/104/40 -f 70/106/41 71/107/41 69/105/41 -f 26/108/42 72/109/42 71/107/42 -f 73/110/43 74/111/43 72/109/43 -f 75/112/44 76/113/44 74/111/44 -f 77/114/45 78/115/46 79/116/47 -f 80/117/48 81/118/48 78/115/48 -f 82/119/49 83/120/49 81/118/49 -f 84/121/50 85/122/50 83/120/50 -f 86/123/51 87/124/51 85/122/51 -f 88/125/52 89/126/52 90/127/52 -f 88/125/53 91/128/53 89/126/53 -f 92/129/54 93/130/54 91/128/54 -f 94/131/55 95/132/55 93/130/55 -f 96/133/56 97/134/56 95/132/56 -f 98/135/57 99/136/57 97/134/57 -f 99/136/58 100/137/58 101/138/58 -f 101/138/59 102/139/59 103/140/59 -f 103/140/60 104/141/60 105/142/60 -f 105/142/61 106/143/61 107/144/61 -f 107/144/62 108/145/62 109/146/62 -f 110/147/63 111/148/63 112/149/63 -f 111/148/64 113/150/64 114/151/64 -f 114/151/65 115/152/65 52/153/65 -f 116/154/66 68/155/67 69/156/66 -f 117/157/68 81/158/68 83/159/68 -f 118/160/68 114/161/68 52/162/69 -f 37/72/70 99/163/71 101/164/70 -f 27/62/19 53/165/19 115/166/19 -f 115/166/19 113/167/19 110/168/19 -f 110/168/19 108/169/19 102/170/19 -f 108/169/19 106/171/19 102/170/19 -f 106/171/19 104/172/19 102/170/19 -f 102/170/19 100/173/19 119/174/19 -f 119/174/19 98/175/19 96/176/19 -f 96/176/19 94/177/19 92/178/19 -f 92/178/19 88/179/19 25/60/19 -f 25/60/19 86/180/19 84/181/19 -f 84/181/19 82/182/19 80/183/19 -f 80/183/19 77/184/19 26/61/19 -f 77/184/19 75/185/19 26/61/19 -f 75/185/19 73/186/19 26/61/19 -f 26/61/19 70/187/19 67/188/19 -f 67/188/19 65/189/19 63/190/19 -f 63/190/19 61/191/19 27/62/19 -f 61/191/19 59/192/19 27/62/19 -f 59/192/19 56/193/19 27/62/19 -f 27/62/19 115/166/19 102/170/19 -f 115/166/19 110/168/19 102/170/19 -f 102/170/19 119/174/19 96/176/19 -f 96/176/19 92/178/19 102/170/19 -f 92/178/19 25/60/19 102/170/19 -f 25/60/19 84/181/19 26/61/19 -f 84/181/19 80/183/19 26/61/19 -f 26/61/19 67/188/19 27/62/19 -f 67/188/19 63/190/19 27/62/19 -f 27/62/19 102/170/19 25/60/19 -f 28/63/20 31/66/20 29/64/20 -f 31/66/21 33/68/21 32/67/21 -f 33/68/22 35/70/22 34/69/22 -f 35/70/23 116/154/23 36/71/23 -f 37/72/24 40/75/72 38/73/25 -f 40/75/26 42/77/26 41/76/26 -f 42/77/27 44/79/27 43/78/27 -f 44/79/28 46/81/28 45/80/28 -f 46/81/29 48/83/29 47/82/29 -f 48/83/30 50/85/30 49/84/30 -f 50/85/31 120/194/31 51/86/31 -f 52/87/32 115/195/32 53/88/32 -f 54/89/33 53/88/33 27/90/33 -f 58/94/34 55/91/34 56/92/34 -f 55/91/34 27/90/34 56/92/34 -f 57/93/35 56/92/35 59/95/35 -f 60/96/36 59/95/36 61/97/36 -f 62/98/37 61/97/37 63/99/37 -f 64/100/38 63/99/38 65/101/38 -f 66/102/39 65/101/39 67/103/39 -f 67/103/40 70/106/40 69/105/40 -f 70/106/41 26/108/41 71/107/41 -f 26/108/42 73/110/42 72/109/42 -f 73/110/43 75/112/43 74/111/43 -f 75/112/44 77/114/44 76/113/44 -f 79/116/47 76/113/45 77/114/45 -f 77/114/45 80/117/45 78/115/46 -f 80/117/48 82/119/48 81/118/48 -f 82/119/49 84/121/49 83/120/49 -f 84/121/50 86/123/50 85/122/50 -f 86/123/51 25/196/51 87/124/51 -f 90/127/52 87/124/52 25/196/52 -f 25/196/52 88/125/52 90/127/52 -f 88/125/53 92/129/53 91/128/53 -f 92/129/54 94/131/54 93/130/54 -f 94/131/55 96/133/55 95/132/55 -f 96/133/56 98/135/56 97/134/56 -f 98/135/57 119/197/57 99/136/57 -f 99/136/58 119/197/58 100/137/58 -f 101/138/59 100/137/59 102/139/59 -f 103/140/60 102/139/60 104/141/60 -f 105/142/61 104/141/61 106/143/61 -f 107/144/62 106/143/62 108/145/62 -f 112/149/63 109/146/63 108/145/63 -f 108/145/63 110/147/63 112/149/63 -f 111/148/64 110/147/64 113/150/64 -f 114/151/65 113/150/65 115/152/65 -f 76/198/66 79/199/66 36/71/66 -f 79/199/66 117/157/66 36/71/66 -f 36/71/66 116/154/66 69/156/66 -f 116/154/66 121/200/66 57/201/66 -f 121/200/66 58/202/66 57/201/66 -f 74/203/66 76/198/66 36/71/66 -f 72/204/66 74/203/66 36/71/66 -f 116/154/66 57/201/66 60/205/66 -f 116/154/66 60/205/66 62/206/66 -f 71/207/66 72/204/66 36/71/66 -f 69/156/66 71/207/66 36/71/66 -f 116/154/66 62/206/66 64/208/66 -f 116/154/66 64/208/66 66/209/73 -f 116/154/66 66/209/73 68/155/67 -f 87/210/68 90/211/69 122/212/68 -f 122/212/68 117/157/68 83/159/69 -f 117/157/68 79/199/68 78/213/68 -f 117/157/68 78/213/68 81/158/68 -f 85/214/68 87/210/68 122/212/68 -f 83/159/69 85/214/68 122/212/68 -f 55/215/68 58/202/68 121/200/68 -f 121/200/68 118/160/68 52/162/68 -f 118/160/68 112/216/68 111/217/68 -f 118/160/68 111/217/68 114/161/68 -f 54/218/68 55/215/68 121/200/68 -f 52/162/68 54/218/68 121/200/68 -f 109/219/70 112/216/70 118/160/70 -f 37/72/70 39/74/70 97/220/70 -f 39/74/70 122/212/70 90/211/70 -f 37/72/70 97/220/70 99/163/71 -f 90/211/70 89/221/70 39/74/70 -f 89/221/70 91/222/70 39/74/70 -f 109/219/70 118/160/70 37/72/70 -f 107/223/70 109/219/70 37/72/70 -f 91/222/70 93/224/70 39/74/70 -f 93/224/70 95/225/70 39/74/70 -f 105/226/70 107/223/70 37/72/70 -f 103/227/70 105/226/70 37/72/70 -f 95/225/70 97/220/70 39/74/70 -f 101/164/70 103/227/70 37/72/70 -l 126 30 -l 28 125 -l 51 124 -l 123 120 o Cube.007_Cube.012 v -0.749291 3.198776 0.999861 v -0.925561 3.198776 0.999861 @@ -837,348 +192,348 @@ v -0.692910 1.005584 -1.700001 v -0.750000 1.350000 -1.700001 v -0.692910 1.994415 -1.700001 v 0.000000 3.000000 -1.700000 -v 0.129410 2.982965 -19.500000 -v 0.000000 3.000002 -19.500000 +v 0.129410 2.982966 -19.500000 +v 0.000000 3.000003 -19.500000 v 0.129410 2.982962 -1.700000 -v 0.250000 2.933015 -19.500000 +v 0.250000 2.933016 -19.500000 v 0.250000 2.933012 -1.700000 -v 0.353553 2.853556 -19.500000 +v 0.353553 2.853557 -19.500000 v 0.353553 2.853553 -1.700000 -v 0.433013 2.750003 -19.500000 +v 0.433013 2.750004 -19.500000 v 0.433013 2.750000 -1.700000 -v 0.482963 2.629412 -19.500000 +v 0.482963 2.629413 -19.500000 v 0.482963 2.629409 -1.700000 -v 0.500000 2.500002 -19.500000 +v 0.500000 2.500003 -19.500000 v 0.500000 2.500000 -1.700000 -v 0.482963 2.370593 -19.500000 +v 0.482963 2.370594 -19.500000 v 0.482963 2.370590 -1.700000 -v 0.433013 2.250002 -19.500000 +v 0.433013 2.250003 -19.500000 v 0.433013 2.250000 -1.700000 -v 0.353554 2.146449 -19.500000 +v 0.353554 2.146450 -19.500000 v 0.353554 2.146446 -1.700000 -v 0.250000 2.066990 -19.500000 +v 0.250000 2.066991 -19.500000 v 0.250000 2.066987 -1.700000 -v 0.129410 2.017039 -19.500000 +v 0.129410 2.017040 -19.500000 v 0.129410 2.017036 -1.700000 -v 0.000000 2.000002 -19.500000 +v 0.000000 2.000003 -19.500000 v 0.000000 2.000000 -1.700000 -v -0.129409 2.017039 -19.500000 +v -0.129409 2.017040 -19.500000 v -0.129409 2.017036 -1.700000 -v -0.250000 2.066990 -19.500000 +v -0.250000 2.066991 -19.500000 v -0.250000 2.066987 -1.700000 -v -0.353553 2.146449 -19.500000 +v -0.353553 2.146450 -19.500000 v -0.353553 2.146446 -1.700000 -v -0.433013 2.250002 -19.500000 +v -0.433013 2.250003 -19.500000 v -0.433013 2.250000 -1.700000 -v -0.482963 2.370593 -19.500000 +v -0.482963 2.370594 -19.500000 v -0.482963 2.370590 -1.700000 -v -0.500000 2.500002 -19.500000 +v -0.500000 2.500003 -19.500000 v -0.500000 2.500000 -1.700000 -v -0.482963 2.629412 -19.500000 +v -0.482963 2.629413 -19.500000 v -0.482963 2.629409 -1.700000 -v -0.433013 2.750002 -19.500000 +v -0.433013 2.750003 -19.500000 v -0.433013 2.749999 -1.700000 -v -0.353554 2.853556 -19.500000 +v -0.353554 2.853557 -19.500000 v -0.353554 2.853553 -1.700000 -v -0.250000 2.933015 -19.500000 +v -0.250000 2.933016 -19.500000 v -0.250000 2.933012 -1.700000 -v -0.129410 2.982965 -19.500000 +v -0.129410 2.982966 -19.500000 v -0.129410 2.982962 -1.700000 -v 0.217114 2.822435 -19.500000 +v 0.217114 2.822436 -19.500000 v 0.113208 2.865444 -4.500000 -v 0.113208 2.865474 -19.500000 -v 0.000000 2.050002 -17.850000 -v 0.494975 1.844977 -18.550001 -v 0.000000 2.050002 -18.550001 -v 0.494975 1.844977 -17.850000 -v 0.700000 1.350002 -18.550001 -v 0.700000 1.350002 -17.850000 -v 0.494975 0.855028 -18.550001 -v 0.494975 0.855027 -17.850000 -v 0.000000 0.650002 -18.550001 -v 0.000000 0.650002 -17.850000 -v -0.494975 0.855028 -18.550001 -v -0.494975 0.855028 -17.850000 -v -0.700000 1.350002 -18.550001 -v -0.700000 1.350002 -17.850000 -v -0.494975 1.844977 -18.550001 -v -0.494975 1.844977 -17.850000 -v 0.247487 1.102514 -19.300001 -v 0.350000 1.350002 -19.300001 -v 0.247487 1.597489 -19.300001 -v 0.000000 1.700002 -19.300001 -v -0.247487 1.597489 -19.300001 -v -0.350000 1.350002 -19.300001 -v -0.247487 1.102514 -19.300001 -v 0.247487 1.102514 -19.187502 -v 0.000000 1.000002 -19.187502 -v 0.000000 1.000002 -19.300001 -v 0.000000 1.700002 -19.187502 -v 0.247487 1.597489 -19.187502 -v 0.350000 1.350002 -19.187502 -v -0.247487 1.102514 -19.187502 +v 0.113208 2.865475 -19.500000 +v 0.000000 2.050003 -17.850000 +v 0.494975 1.844978 -18.550001 +v 0.000000 2.050003 -18.550001 +v 0.494975 1.844978 -17.850000 +v 0.700000 1.350003 -18.550001 +v 0.700000 1.350003 -17.850000 +v 0.494975 0.855029 -18.550001 +v 0.494975 0.855028 -17.850000 +v 0.000000 0.650003 -18.550001 +v 0.000000 0.650003 -17.850000 +v -0.494975 0.855029 -18.550001 +v -0.494975 0.855029 -17.850000 +v -0.700000 1.350003 -18.550001 +v -0.700000 1.350003 -17.850000 +v -0.494975 1.844978 -18.550001 +v -0.494975 1.844978 -17.850000 +v 0.247487 1.102515 -19.300001 +v 0.350000 1.350003 -19.300001 +v 0.247487 1.597490 -19.300001 +v 0.000000 1.700003 -19.300001 +v -0.247487 1.597490 -19.300001 +v -0.350000 1.350003 -19.300001 +v -0.247487 1.102515 -19.300001 +v 0.247487 1.102515 -19.187502 +v 0.000000 1.000003 -19.187502 +v 0.000000 1.000003 -19.300001 +v 0.000000 1.700003 -19.187502 +v 0.247487 1.597490 -19.187502 +v 0.350000 1.350003 -19.187502 +v -0.247487 1.102515 -19.187502 v 0.000000 1.750000 -1.199998 -v 0.103528 1.736373 -18.200001 -v 0.000000 1.750002 -18.200001 +v 0.103528 1.736374 -18.200001 +v 0.000000 1.750003 -18.200001 v 0.103528 1.736370 -1.199998 -v 0.200000 1.696412 -18.200001 +v 0.200000 1.696413 -18.200001 v 0.200000 1.696410 -1.199998 -v 0.282843 1.632845 -18.200001 +v 0.282843 1.632846 -18.200001 v 0.282843 1.632842 -1.199998 -v 0.346410 1.550002 -18.200001 +v 0.346410 1.550003 -18.200001 v 0.346410 1.549999 -1.199998 -v 0.386370 1.453530 -18.200001 +v 0.386370 1.453531 -18.200001 v 0.386370 1.453527 -1.199998 -v 0.400000 1.350002 -18.200001 +v 0.400000 1.350003 -18.200001 v 0.400000 1.349999 -1.199998 -v 0.386370 1.246475 -18.200001 +v 0.386370 1.246476 -18.200001 v 0.386370 1.246472 -1.199998 -v 0.346410 1.150002 -18.200001 +v 0.346410 1.150003 -18.200001 v 0.346410 1.150000 -1.199998 -v 0.282843 1.067160 -18.200001 +v 0.282843 1.067161 -18.200001 v 0.282843 1.067157 -1.199998 -v 0.200000 1.003592 -18.200001 +v 0.200000 1.003593 -18.200001 v 0.200000 1.003590 -1.199998 -v 0.103528 0.963632 -18.200001 +v 0.103528 0.963633 -18.200001 v 0.103528 0.963629 -1.199998 -v 0.000000 0.950002 -18.200001 +v 0.000000 0.950003 -18.200001 v 0.000000 0.950000 -1.199998 -v -0.103527 0.963632 -18.200001 +v -0.103527 0.963633 -18.200001 v -0.103527 0.963629 -1.199998 -v -0.200000 1.003592 -18.200001 +v -0.200000 1.003593 -18.200001 v -0.200000 1.003589 -1.199998 -v -0.282843 1.067160 -18.200001 +v -0.282843 1.067161 -18.200001 v -0.282843 1.067157 -1.199998 -v -0.346410 1.150002 -18.200001 +v -0.346410 1.150003 -18.200001 v -0.346410 1.150000 -1.199998 -v -0.386370 1.246474 -18.200001 +v -0.386370 1.246475 -18.200001 v -0.386370 1.246472 -1.199998 -v -0.400000 1.350002 -18.200001 +v -0.400000 1.350003 -18.200001 v -0.400000 1.349999 -1.199998 -v -0.386370 1.453530 -18.200001 +v -0.386370 1.453531 -18.200001 v -0.386370 1.453527 -1.199998 -v -0.346410 1.550002 -18.200001 +v -0.346410 1.550003 -18.200001 v -0.346410 1.549999 -1.199998 -v -0.282843 1.632845 -18.200001 +v -0.282843 1.632846 -18.200001 v -0.282843 1.632842 -1.199998 -v -0.200000 1.696412 -18.200001 +v -0.200000 1.696413 -18.200001 v -0.200000 1.696410 -1.199998 -v -0.103528 1.736373 -18.200001 +v -0.103528 1.736374 -18.200001 v -0.103528 1.736370 -1.199998 -v 0.000000 1.850002 -15.850002 -v 0.129410 1.832965 -17.850002 -v 0.000000 1.850002 -17.850002 -v 0.129410 1.832965 -15.850002 -v 0.250000 1.783014 -17.850002 -v 0.250000 1.783014 -15.850002 -v 0.353553 1.703555 -17.850002 -v 0.353553 1.703555 -15.850002 -v 0.433013 1.600002 -17.850002 -v 0.433013 1.600002 -15.850002 -v 0.482963 1.479411 -17.850002 -v 0.482963 1.479411 -15.850002 -v 0.500000 1.350002 -17.850002 -v 0.500000 1.350002 -15.850002 -v 0.482963 1.220593 -17.850002 -v 0.482963 1.220593 -15.850002 -v 0.433013 1.100002 -17.850002 -v 0.433013 1.100002 -15.850002 -v 0.353554 0.996449 -17.850002 -v 0.353554 0.996449 -15.850002 -v 0.250000 0.916989 -17.850002 -v 0.250000 0.916989 -15.850002 -v 0.129410 0.867039 -17.850002 -v 0.129410 0.867039 -15.850002 -v 0.000000 0.850002 -17.850002 -v 0.000000 0.850002 -15.850002 -v -0.129409 0.867039 -17.850002 -v -0.129409 0.867039 -15.850002 -v -0.250000 0.916989 -17.850002 -v -0.250000 0.916989 -15.850002 -v -0.353553 0.996449 -17.850002 -v -0.353553 0.996448 -15.850002 -v -0.433013 1.100002 -17.850002 -v -0.433013 1.100002 -15.850002 -v -0.482963 1.220592 -17.850002 -v -0.482963 1.220592 -15.850002 -v -0.500000 1.350002 -17.850002 -v -0.500000 1.350001 -15.850002 -v -0.482963 1.479411 -17.850002 -v -0.482963 1.479411 -15.850002 -v -0.433013 1.600002 -17.850002 -v -0.433013 1.600002 -15.850002 -v -0.353554 1.703555 -17.850002 -v -0.353554 1.703555 -15.850002 -v -0.250000 1.783014 -17.850002 -v -0.250000 1.783014 -15.850002 -v -0.129410 1.832965 -17.850002 -v -0.129410 1.832965 -15.850002 -v 0.000000 1.850002 -15.400005 -v 0.129410 1.832965 -15.600006 -v 0.000000 1.850002 -15.600006 -v 0.129410 1.832965 -15.400005 -v 0.250000 1.783014 -15.600006 -v 0.250000 1.783014 -15.400005 -v 0.353553 1.703555 -15.600006 -v 0.353553 1.703555 -15.400005 -v 0.433013 1.600002 -15.600006 -v 0.433013 1.600002 -15.400005 -v 0.482963 1.479411 -15.600006 -v 0.482963 1.479411 -15.400005 -v 0.500000 1.350002 -15.600006 -v 0.500000 1.350002 -15.400005 -v 0.482963 1.220593 -15.600006 -v 0.482963 1.220593 -15.400005 -v 0.433013 1.100002 -15.600006 -v 0.433013 1.100002 -15.400005 -v 0.353554 0.996449 -15.600006 -v 0.353554 0.996449 -15.400005 -v 0.250000 0.916989 -15.600006 -v 0.250000 0.916989 -15.400005 -v 0.129410 0.867039 -15.600006 -v 0.129410 0.867039 -15.400005 -v 0.000000 0.850002 -15.600006 -v 0.000000 0.850002 -15.400005 -v -0.129409 0.867039 -15.600006 -v -0.129409 0.867039 -15.400005 -v -0.250000 0.916989 -15.600006 -v -0.250000 0.916989 -15.400005 -v -0.353553 0.996448 -15.600006 -v -0.353553 0.996448 -15.400005 -v -0.433013 1.100002 -15.600006 -v -0.433013 1.100002 -15.400005 -v -0.482963 1.220592 -15.600006 -v -0.482963 1.220592 -15.400005 -v -0.500000 1.350002 -15.600006 -v -0.500000 1.350002 -15.400005 -v -0.482963 1.479411 -15.600006 -v -0.482963 1.479411 -15.400005 -v -0.433013 1.600002 -15.600006 -v -0.433013 1.600002 -15.400005 -v -0.353554 1.703555 -15.600006 -v -0.353554 1.703555 -15.400005 -v -0.250000 1.783014 -15.600006 -v -0.250000 1.783014 -15.400005 -v -0.129410 1.832965 -15.600006 -v -0.129410 1.832965 -15.400005 -v 0.000000 1.850002 -15.050005 -v 0.129410 1.832965 -15.250006 -v 0.000000 1.850002 -15.250006 -v 0.129410 1.832965 -15.050005 -v 0.250000 1.783014 -15.250006 -v 0.250000 1.783014 -15.050005 -v 0.353553 1.703555 -15.250006 -v 0.353553 1.703555 -15.050005 -v 0.433013 1.600002 -15.250006 -v 0.433013 1.600002 -15.050005 -v 0.482963 1.479411 -15.250006 -v 0.482963 1.479411 -15.050005 -v 0.500000 1.350002 -15.250006 -v 0.500000 1.350002 -15.050005 -v 0.482963 1.220593 -15.250006 -v 0.482963 1.220593 -15.050005 -v 0.433013 1.100002 -15.250006 -v 0.433013 1.100002 -15.050005 -v 0.353554 0.996449 -15.250006 -v 0.353554 0.996449 -15.050005 -v 0.250000 0.916989 -15.250006 -v 0.250000 0.916989 -15.050005 -v 0.129410 0.867039 -15.250006 -v 0.129410 0.867039 -15.050005 -v 0.000000 0.850002 -15.250006 -v 0.000000 0.850002 -15.050005 -v -0.129409 0.867039 -15.250006 -v -0.129409 0.867039 -15.050005 -v -0.250000 0.916989 -15.250006 -v -0.250000 0.916989 -15.050005 -v -0.353553 0.996449 -15.250006 -v -0.353553 0.996449 -15.050005 -v -0.433013 1.100002 -15.250006 -v -0.433013 1.100002 -15.050005 -v -0.482963 1.220592 -15.250006 -v -0.482963 1.220592 -15.050005 -v -0.500000 1.350002 -15.250006 -v -0.500000 1.350002 -15.050005 -v -0.482963 1.479411 -15.250006 -v -0.482963 1.479411 -15.050005 -v -0.433013 1.600002 -15.250006 -v -0.433013 1.600002 -15.050005 -v -0.353554 1.703555 -15.250006 -v -0.353554 1.703555 -15.050005 -v -0.250000 1.783014 -15.250006 -v -0.250000 1.783014 -15.050005 -v -0.129410 1.832965 -15.250006 -v -0.129410 1.832965 -15.050005 +v 0.000000 1.850003 -15.850002 +v 0.129410 1.832966 -17.850002 +v 0.000000 1.850003 -17.850002 +v 0.129410 1.832966 -15.850002 +v 0.250000 1.783015 -17.850002 +v 0.250000 1.783015 -15.850002 +v 0.353553 1.703556 -17.850002 +v 0.353553 1.703556 -15.850002 +v 0.433013 1.600003 -17.850002 +v 0.433013 1.600003 -15.850002 +v 0.482963 1.479412 -17.850002 +v 0.482963 1.479412 -15.850002 +v 0.500000 1.350003 -17.850002 +v 0.500000 1.350003 -15.850002 +v 0.482963 1.220594 -17.850002 +v 0.482963 1.220594 -15.850002 +v 0.433013 1.100003 -17.850002 +v 0.433013 1.100003 -15.850002 +v 0.353554 0.996450 -17.850002 +v 0.353554 0.996450 -15.850002 +v 0.250000 0.916990 -17.850002 +v 0.250000 0.916990 -15.850002 +v 0.129410 0.867040 -17.850002 +v 0.129410 0.867040 -15.850002 +v 0.000000 0.850003 -17.850002 +v 0.000000 0.850003 -15.850002 +v -0.129409 0.867040 -17.850002 +v -0.129409 0.867040 -15.850002 +v -0.250000 0.916990 -17.850002 +v -0.250000 0.916990 -15.850002 +v -0.353553 0.996450 -17.850002 +v -0.353553 0.996449 -15.850002 +v -0.433013 1.100003 -17.850002 +v -0.433013 1.100003 -15.850002 +v -0.482963 1.220593 -17.850002 +v -0.482963 1.220593 -15.850002 +v -0.500000 1.350003 -17.850002 +v -0.500000 1.350002 -15.850002 +v -0.482963 1.479412 -17.850002 +v -0.482963 1.479412 -15.850002 +v -0.433013 1.600003 -17.850002 +v -0.433013 1.600003 -15.850002 +v -0.353554 1.703556 -17.850002 +v -0.353554 1.703556 -15.850002 +v -0.250000 1.783015 -17.850002 +v -0.250000 1.783015 -15.850002 +v -0.129410 1.832966 -17.850002 +v -0.129410 1.832966 -15.850002 +v 0.000000 1.850003 -15.400005 +v 0.129410 1.832966 -15.600006 +v 0.000000 1.850003 -15.600006 +v 0.129410 1.832966 -15.400005 +v 0.250000 1.783015 -15.600006 +v 0.250000 1.783015 -15.400005 +v 0.353553 1.703556 -15.600006 +v 0.353553 1.703556 -15.400005 +v 0.433013 1.600003 -15.600006 +v 0.433013 1.600003 -15.400005 +v 0.482963 1.479412 -15.600006 +v 0.482963 1.479412 -15.400005 +v 0.500000 1.350003 -15.600006 +v 0.500000 1.350003 -15.400005 +v 0.482963 1.220594 -15.600006 +v 0.482963 1.220594 -15.400005 +v 0.433013 1.100003 -15.600006 +v 0.433013 1.100003 -15.400005 +v 0.353554 0.996450 -15.600006 +v 0.353554 0.996450 -15.400005 +v 0.250000 0.916990 -15.600006 +v 0.250000 0.916990 -15.400005 +v 0.129410 0.867040 -15.600006 +v 0.129410 0.867040 -15.400005 +v 0.000000 0.850003 -15.600006 +v 0.000000 0.850003 -15.400005 +v -0.129409 0.867040 -15.600006 +v -0.129409 0.867040 -15.400005 +v -0.250000 0.916990 -15.600006 +v -0.250000 0.916990 -15.400005 +v -0.353553 0.996449 -15.600006 +v -0.353553 0.996449 -15.400005 +v -0.433013 1.100003 -15.600006 +v -0.433013 1.100003 -15.400005 +v -0.482963 1.220593 -15.600006 +v -0.482963 1.220593 -15.400005 +v -0.500000 1.350003 -15.600006 +v -0.500000 1.350003 -15.400005 +v -0.482963 1.479412 -15.600006 +v -0.482963 1.479412 -15.400005 +v -0.433013 1.600003 -15.600006 +v -0.433013 1.600003 -15.400005 +v -0.353554 1.703556 -15.600006 +v -0.353554 1.703556 -15.400005 +v -0.250000 1.783015 -15.600006 +v -0.250000 1.783015 -15.400005 +v -0.129410 1.832966 -15.600006 +v -0.129410 1.832966 -15.400005 +v 0.000000 1.850003 -15.050005 +v 0.129410 1.832966 -15.250006 +v 0.000000 1.850003 -15.250006 +v 0.129410 1.832966 -15.050005 +v 0.250000 1.783015 -15.250006 +v 0.250000 1.783015 -15.050005 +v 0.353553 1.703556 -15.250006 +v 0.353553 1.703556 -15.050005 +v 0.433013 1.600003 -15.250006 +v 0.433013 1.600003 -15.050005 +v 0.482963 1.479412 -15.250006 +v 0.482963 1.479412 -15.050005 +v 0.500000 1.350003 -15.250006 +v 0.500000 1.350003 -15.050005 +v 0.482963 1.220594 -15.250006 +v 0.482963 1.220594 -15.050005 +v 0.433013 1.100003 -15.250006 +v 0.433013 1.100003 -15.050005 +v 0.353554 0.996450 -15.250006 +v 0.353554 0.996450 -15.050005 +v 0.250000 0.916990 -15.250006 +v 0.250000 0.916990 -15.050005 +v 0.129410 0.867040 -15.250006 +v 0.129410 0.867040 -15.050005 +v 0.000000 0.850003 -15.250006 +v 0.000000 0.850003 -15.050005 +v -0.129409 0.867040 -15.250006 +v -0.129409 0.867040 -15.050005 +v -0.250000 0.916990 -15.250006 +v -0.250000 0.916990 -15.050005 +v -0.353553 0.996450 -15.250006 +v -0.353553 0.996450 -15.050005 +v -0.433013 1.100003 -15.250006 +v -0.433013 1.100003 -15.050005 +v -0.482963 1.220593 -15.250006 +v -0.482963 1.220593 -15.050005 +v -0.500000 1.350003 -15.250006 +v -0.500000 1.350003 -15.050005 +v -0.482963 1.479412 -15.250006 +v -0.482963 1.479412 -15.050005 +v -0.433013 1.600003 -15.250006 +v -0.433013 1.600003 -15.050005 +v -0.353554 1.703556 -15.250006 +v -0.353554 1.703556 -15.050005 +v -0.250000 1.783015 -15.250006 +v -0.250000 1.783015 -15.050005 +v -0.129410 1.832966 -15.250006 +v -0.129410 1.832966 -15.050005 v 0.000000 1.850001 -10.700005 -v 0.129410 1.832965 -14.900005 -v 0.000000 1.850002 -14.900005 +v 0.129410 1.832966 -14.900005 +v 0.000000 1.850003 -14.900005 v 0.129410 1.832963 -10.700005 -v 0.250000 1.783014 -14.900005 +v 0.250000 1.783015 -14.900005 v 0.250000 1.783013 -10.700005 -v 0.353553 1.703555 -14.900005 +v 0.353553 1.703556 -14.900005 v 0.353553 1.703553 -10.700005 -v 0.433013 1.600002 -14.900005 +v 0.433013 1.600003 -14.900005 v 0.433013 1.600001 -10.700005 -v 0.482963 1.479411 -14.900005 +v 0.482963 1.479412 -14.900005 v 0.482963 1.479409 -10.700005 -v 0.500000 1.350002 -14.900005 +v 0.500000 1.350003 -14.900005 v 0.500000 1.350001 -10.700005 -v 0.482963 1.220593 -14.900005 +v 0.482963 1.220594 -14.900005 v 0.482963 1.220591 -10.700005 -v 0.433013 1.100002 -14.900005 +v 0.433013 1.100003 -14.900005 v 0.433013 1.100001 -10.700005 -v 0.353554 0.996449 -14.900005 +v 0.353554 0.996450 -14.900005 v 0.353554 0.996448 -10.700005 -v 0.250000 0.916989 -14.900005 +v 0.250000 0.916990 -14.900005 v 0.250000 0.916987 -10.700005 -v 0.129410 0.867039 -14.900005 +v 0.129410 0.867040 -14.900005 v 0.129410 0.867037 -10.700005 -v 0.000000 0.850002 -14.900005 +v 0.000000 0.850003 -14.900005 v 0.000000 0.850001 -10.700005 -v -0.129409 0.867039 -14.900005 +v -0.129409 0.867040 -14.900005 v -0.129409 0.867037 -10.700005 -v -0.250000 0.916989 -14.900005 +v -0.250000 0.916990 -14.900005 v -0.250000 0.916987 -10.700005 -v -0.353553 0.996449 -14.900005 +v -0.353553 0.996450 -14.900005 v -0.353553 0.996446 -10.700005 -v -0.433013 1.100002 -14.900005 +v -0.433013 1.100003 -14.900005 v -0.433013 1.100001 -10.700005 -v -0.482963 1.220592 -14.900005 +v -0.482963 1.220593 -14.900005 v -0.482963 1.220590 -10.700005 -v -0.500000 1.350002 -14.900005 +v -0.500000 1.350003 -14.900005 v -0.500000 1.349999 -10.700005 -v -0.482963 1.479411 -14.900005 +v -0.482963 1.479412 -14.900005 v -0.482963 1.479409 -10.700005 -v -0.433013 1.600002 -14.900005 +v -0.433013 1.600003 -14.900005 v -0.433013 1.600001 -10.700005 -v -0.353554 1.703555 -14.900005 +v -0.353554 1.703556 -14.900005 v -0.353554 1.703553 -10.700005 -v -0.250000 1.783014 -14.900005 +v -0.250000 1.783015 -14.900005 v -0.250000 1.783013 -10.700005 -v -0.129410 1.832965 -14.900005 +v -0.129410 1.832966 -14.900005 v -0.129410 1.832963 -10.700005 -v 0.000000 2.880378 -19.500000 -v 0.303359 2.756257 -19.500000 -v 0.365776 2.674913 -19.500000 -v 0.401974 2.587523 -19.500000 -v 0.413496 2.500002 -19.500000 -v 0.401974 2.412481 -19.500000 -v 0.365776 2.325092 -19.500000 -v 0.303359 2.243748 -19.500000 -v 0.217114 2.177570 -19.500000 -v 0.113208 2.134531 -19.500000 -v 0.000000 2.119626 -19.500000 -v -0.113207 2.134531 -19.500000 -v -0.217114 2.177570 -19.500000 -v -0.303358 2.243748 -19.500000 -v -0.365776 2.325092 -19.500000 -v -0.401974 2.412481 -19.500000 -v -0.413496 2.500002 -19.500000 -v -0.401974 2.587523 -19.500000 -v -0.365776 2.674913 -19.500000 -v -0.303359 2.756257 -19.500000 -v -0.217115 2.822434 -19.500000 -v -0.113208 2.865474 -19.500000 +v 0.000000 2.880379 -19.500000 +v 0.303359 2.756258 -19.500000 +v 0.365776 2.674914 -19.500000 +v 0.401974 2.587524 -19.500000 +v 0.413496 2.500003 -19.500000 +v 0.401974 2.412482 -19.500000 +v 0.365776 2.325093 -19.500000 +v 0.303359 2.243749 -19.500000 +v 0.217114 2.177571 -19.500000 +v 0.113208 2.134532 -19.500000 +v 0.000000 2.119627 -19.500000 +v -0.113207 2.134532 -19.500000 +v -0.217114 2.177571 -19.500000 +v -0.303358 2.243749 -19.500000 +v -0.365776 2.325093 -19.500000 +v -0.401974 2.412482 -19.500000 +v -0.413496 2.500003 -19.500000 +v -0.401974 2.587524 -19.500000 +v -0.365776 2.674914 -19.500000 +v -0.303359 2.756258 -19.500000 +v -0.217115 2.822435 -19.500000 +v -0.113208 2.865475 -19.500000 v -0.303359 2.756227 -4.500000 v -0.217115 2.822405 -4.500000 v -0.303358 2.243718 -4.500000 @@ -1202,7 +557,7 @@ v 0.401974 2.412452 -4.500000 v 0.000000 2.880348 -4.500000 v 0.365776 2.325063 -4.500000 v -0.113208 2.865444 -4.500000 -v -0.247487 1.597489 -19.187502 +v -0.247487 1.597490 -19.187502 v -0.755718 0.647394 5.837500 v 0.755718 -2.527644 7.135499 v -0.755718 -2.527644 7.135499 @@ -1237,10 +592,10 @@ v 1.000000 0.650225 4.306945 v -1.000000 0.550646 8.300697 v -1.000000 0.650225 4.306945 v 1.000000 0.550646 8.300697 -v -1.000000 -3.878246 18.970343 +v -1.000000 -3.878247 18.970343 v 1.000000 2.932952 6.299709 -v 1.000000 -3.878246 18.970343 -v -1.000000 0.817815 19.398920 +v 1.000000 -3.878247 18.970343 +v -1.000000 0.817814 19.398920 v 1.000000 1.917567 8.277368 v 1.155736 2.325624 6.986647 v 1.000000 2.325624 6.986647 @@ -1337,26 +692,26 @@ v -0.750000 3.823139 5.393547 v 0.500000 3.441713 5.759016 v -0.496667 2.930000 3.800829 v -0.496667 3.523953 4.644016 -v -1.000000 -3.606866 18.872658 -v -1.000000 0.608681 19.257383 +v -1.000000 -3.606867 18.872658 +v -1.000000 0.608680 19.257383 v -1.000000 1.899714 8.276260 v -1.000000 0.761976 8.347678 v -1.000000 2.527876 7.012211 v -1.185947 1.899714 8.276260 v -1.185947 2.237243 7.108925 v -1.185947 0.761976 8.347678 -v -1.185947 0.608681 19.257383 -v -1.185947 -3.606866 18.872658 +v -1.185947 0.608680 19.257383 +v -1.185947 -3.606867 18.872658 v 1.000000 2.293221 7.043643 -v 1.000000 -3.628482 18.880440 -v 1.000000 0.817815 19.398920 +v 1.000000 -3.628483 18.880440 +v 1.000000 0.817814 19.398920 v 1.000000 0.745147 8.343928 -v 1.000000 0.625338 19.268656 +v 1.000000 0.625337 19.268656 v 1.155736 0.745147 8.343928 v 1.155736 2.293221 7.043643 v 1.155736 1.917567 8.277368 -v 1.155736 -3.628482 18.880440 -v 1.155736 0.625338 19.268656 +v 1.155736 -3.628483 18.880440 +v 1.155736 0.625337 19.268656 v -0.755718 0.375138 6.127107 v -0.755718 -2.470537 7.290457 v -0.755718 -3.057612 7.206118 @@ -1583,42 +938,42 @@ v -0.042295 3.387367 5.409896 v -0.078231 3.411132 5.409896 v -0.039882 3.399499 5.409896 v 0.000000 3.395571 5.409896 -v -0.285753 2.876173 -17.583353 -v -0.206993 3.392600 -18.284744 -v -0.285753 2.876173 -18.899897 -v 0.285753 2.876173 -18.899897 -v 0.206993 3.392600 -18.284744 -v 0.285753 2.876173 -17.583353 -v 0.206993 3.392600 -17.955841 -v -0.052052 3.504858 -18.120081 -v -0.045935 3.600578 -18.259661 -v -0.052052 3.504858 -18.269205 -v 0.052052 3.504858 -18.269205 -v 0.045935 3.600578 -18.259661 -v 0.052052 3.504858 -18.120081 -v 0.045935 3.600578 -18.122107 -v 0.063413 3.327093 -18.286932 -v -0.063413 3.327093 -18.116322 -v -0.063413 3.327093 -18.286932 -v 0.063413 3.327093 -18.116322 -v -0.197447 3.270683 -17.965662 -v -0.287607 3.625363 -18.247025 -v -0.197447 3.270683 -18.300558 -v -0.199752 3.652223 -18.247025 -v -0.076163 3.307763 -18.300558 -v -0.076163 3.307763 -17.965662 -v -0.199752 3.652223 -17.977015 -v 0.076163 3.307763 -17.965847 -v 0.199752 3.652223 -18.246998 -v 0.076163 3.307763 -18.300491 -v 0.197447 3.270683 -18.300491 -v 0.287607 3.625363 -18.246998 -v 0.197447 3.270683 -17.965847 -v 0.287607 3.625363 -17.977190 -v -0.206993 3.392600 -17.955841 -v -0.045935 3.600578 -18.122107 -v -0.287607 3.625363 -17.977015 -v 0.199752 3.652223 -17.977190 +v -0.285753 2.876174 -17.583353 +v -0.206993 3.392601 -18.284744 +v -0.285753 2.876174 -18.899897 +v 0.285753 2.876174 -18.899897 +v 0.206993 3.392601 -18.284744 +v 0.285753 2.876174 -17.583353 +v 0.206993 3.392601 -17.955841 +v -0.052052 3.504859 -18.120081 +v -0.045935 3.600579 -18.259661 +v -0.052052 3.504859 -18.269205 +v 0.052052 3.504859 -18.269205 +v 0.045935 3.600579 -18.259661 +v 0.052052 3.504859 -18.120081 +v 0.045935 3.600579 -18.122107 +v 0.063413 3.327094 -18.286932 +v -0.063413 3.327094 -18.116322 +v -0.063413 3.327094 -18.286932 +v 0.063413 3.327094 -18.116322 +v -0.197447 3.270684 -17.965662 +v -0.287607 3.625364 -18.247025 +v -0.197447 3.270684 -18.300558 +v -0.199752 3.652224 -18.247025 +v -0.076163 3.307764 -18.300558 +v -0.076163 3.307764 -17.965662 +v -0.199752 3.652224 -17.977015 +v 0.076163 3.307764 -17.965847 +v 0.199752 3.652224 -18.246998 +v 0.076163 3.307764 -18.300491 +v 0.197447 3.270684 -18.300491 +v 0.287607 3.625364 -18.246998 +v 0.197447 3.270684 -17.965847 +v 0.287607 3.625364 -17.977190 +v -0.206993 3.392601 -17.955841 +v -0.045935 3.600579 -18.122107 +v -0.287607 3.625364 -17.977015 +v 0.199752 3.652224 -17.977190 vt 0.470782 0.953868 vt 0.470782 0.968169 vt 0.443281 0.968169 @@ -1645,8 +1000,8 @@ vt 0.443281 0.953868 vt 0.470782 0.953868 vt 0.415793 0.982420 vt 0.443281 0.939568 -vt 0.470782 0.939568 vt 0.443281 0.939617 +vt 0.470782 0.939568 vt 0.470782 0.953868 vt 0.470782 0.968169 vt 0.443281 0.968169 @@ -1691,8 +1046,8 @@ vt 0.443281 0.953868 vt 0.470782 0.953868 vt 0.415793 0.982420 vt 0.443281 0.939568 -vt 0.470782 0.939568 vt 0.443281 0.939617 +vt 0.470782 0.939568 vt 0.470782 0.953868 vt 0.470782 0.968169 vt 0.443281 0.968169 @@ -1719,8 +1074,8 @@ vt 0.443281 0.953868 vt 0.470782 0.953868 vt 0.415793 0.982420 vt 0.443281 0.939568 -vt 0.470782 0.939568 vt 0.443281 0.939617 +vt 0.470782 0.939568 vt 0.470782 0.953868 vt 0.470782 0.968169 vt 0.443281 0.968169 @@ -1747,8 +1102,8 @@ vt 0.443281 0.953868 vt 0.470782 0.953868 vt 0.415793 0.982420 vt 0.443281 0.939568 -vt 0.470782 0.939568 vt 0.443281 0.939617 +vt 0.470782 0.939568 vt 0.470782 0.953868 vt 0.470782 0.968169 vt 0.443281 0.968169 @@ -1775,8 +1130,8 @@ vt 0.443281 0.953868 vt 0.470782 0.953868 vt 0.415793 0.982420 vt 0.443281 0.939568 -vt 0.470782 0.939568 vt 0.443281 0.939617 +vt 0.470782 0.939568 vt 0.470782 0.953868 vt 0.470782 0.968169 vt 0.443281 0.968169 @@ -1803,8 +1158,8 @@ vt 0.443281 0.953868 vt 0.470782 0.953868 vt 0.415793 0.982420 vt 0.443281 0.939568 -vt 0.470782 0.939568 vt 0.443281 0.939617 +vt 0.470782 0.939568 vt 0.470782 0.953868 vt 0.470782 0.968169 vt 0.443281 0.968169 @@ -1831,8 +1186,8 @@ vt 0.443281 0.953868 vt 0.470782 0.953868 vt 0.415793 0.982420 vt 0.443281 0.939568 -vt 0.470782 0.939568 vt 0.443281 0.939617 +vt 0.470782 0.939568 vt 0.470782 0.953868 vt 0.470782 0.968169 vt 0.443281 0.968169 @@ -1859,8 +1214,8 @@ vt 0.443281 0.953868 vt 0.470782 0.953868 vt 0.415793 0.982420 vt 0.443281 0.939568 -vt 0.470782 0.939568 vt 0.443281 0.939617 +vt 0.470782 0.939568 vt 0.470782 0.953868 vt 0.470782 0.968169 vt 0.443281 0.968169 @@ -2812,8 +2167,8 @@ vt 0.371179 0.824396 vt 0.224012 0.900923 vt 0.224012 0.824396 vt 0.504838 0.868908 -vt 0.578829 0.907383 vt 0.504838 0.907383 +vt 0.578829 0.907383 vt 0.371179 0.900923 vt 0.665512 0.900923 vt 0.589593 0.872960 @@ -3031,8 +2386,8 @@ vt 0.406788 0.779458 vt 0.497503 0.902923 vt 0.578887 0.824122 vt 0.511639 0.915711 -vt 0.245835 0.900308 vt 0.643647 0.900691 +vt 0.245835 0.900308 vt 0.150429 0.671343 vt 0.150429 0.671343 vt 0.150429 0.671343 @@ -3048,8 +2403,8 @@ vt 0.251000 0.856936 vt 0.361735 0.900442 vt 0.361735 0.900442 vt 0.361735 0.900442 -vt 0.511639 0.900711 vt 0.518346 0.900923 +vt 0.511639 0.900711 vt 0.236235 0.851817 vt 0.236235 0.851817 vt 0.236235 0.851817 @@ -3134,8 +2489,8 @@ vt 0.333129 0.917808 vt 0.333129 0.917808 vt 0.333129 0.917808 vt 0.333129 0.917808 -vt 0.342454 0.866584 vt 0.333129 0.868394 +vt 0.342454 0.866584 vt 0.333129 0.917808 vt 0.333129 0.917808 vt 0.333129 0.917808 @@ -3691,7 +3046,7 @@ vn 0.0042 -1.0000 0.0030 vn 0.0000 -1.0000 0.0000 vn 0.7071 0.7071 0.0000 vn 0.0000 0.0000 1.0000 -vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 vn 0.0006 0.0004 1.0000 vn 0.0011 0.0045 1.0000 vn 0.0011 0.0049 1.0000 @@ -3703,21 +3058,31 @@ vn -0.0005 0.0000 -1.0000 vn -0.0008 -1.0000 0.0005 vn -0.0000 -0.5727 0.8197 vn -0.0004 -0.8551 0.5184 -vn -0.7701 0.0000 -0.6379 +vn 0.7704 0.0003 0.6376 +vn 0.7699 -0.0003 0.6381 +vn 0.7698 0.0000 0.6382 vn 0.7071 -0.7071 -0.0000 +vn -1.0000 0.0000 0.0000 vn 0.0000 1.0000 0.0000 vn -0.7071 -0.7071 -0.0000 -vn 1.0000 0.0000 -0.0000 vn 0.0000 -0.5729 0.8196 vn -0.0004 -0.8552 0.5183 -vn -0.7708 -0.0000 -0.6371 -vn -0.0000 -0.5732 0.8194 -vn -0.7703 -0.0000 -0.6377 +vn 0.7696 -0.0008 0.6385 +vn 0.7708 0.0008 0.6371 +vn 0.7710 -0.0000 0.6369 +vn -0.0000 -0.5734 0.8193 +vn 0.7699 -0.0003 0.6382 +vn 0.7703 0.0003 0.6377 +vn 0.7704 -0.0000 0.6376 vn -0.0000 -0.5727 0.8198 vn -0.0004 -0.8551 0.5185 -vn -0.7700 0.0000 -0.6381 +vn 0.7700 0.0000 0.6381 vn -0.8655 -0.5008 0.0000 +vn 0.7701 -0.0000 0.6379 +vn -0.7701 0.0000 -0.6379 +vn -0.0000 -0.5732 0.8194 vn -0.0004 -0.8553 0.5182 +vn -0.7700 -0.0000 -0.6380 vn 0.0070 -1.0000 0.0049 vn 0.0005 0.0000 1.0000 vn -0.0008 -1.0000 0.0000 @@ -3766,7 +3131,7 @@ vn -0.8484 0.3514 -0.3959 vn -0.8484 -0.3514 -0.3959 vn -0.3514 -0.8484 -0.3959 vn 0.7934 0.6088 0.0000 -vn -0.6088 -0.7933 -0.0000 +vn -0.6088 -0.7933 0.0000 vn 0.6088 0.7933 0.0000 vn 0.6088 -0.7933 -0.0000 vn 0.5314 0.1600 -0.8319 @@ -3787,8 +3152,8 @@ vn 0.0000 -0.8319 0.5549 vn 0.0000 0.9997 0.0264 vn 0.0000 -0.9997 -0.0249 vn 0.0000 -0.9236 -0.3834 -vn -0.0001 -0.6431 -0.7658 -vn 0.0000 -0.6432 -0.7657 +vn 0.0001 0.6431 0.7658 +vn 0.0000 0.6432 0.7657 vn 0.0000 -0.0909 0.9959 vn 0.0000 0.9535 0.3014 vn 0.0000 -0.8690 -0.4947 @@ -3828,49 +3193,49 @@ vn 0.0000 0.8646 -0.5025 vn 1.0000 -0.0010 0.0007 vn 1.0000 -0.0019 0.0017 vn 0.0000 -0.6430 -0.7658 +vn 0.0000 -0.6432 -0.7657 vn 0.0000 -0.8693 -0.4942 -vn 0.5484 0.0760 -0.8328 -vn 0.7536 0.6071 0.2520 -vn 0.7698 -0.6340 -0.0745 -vn 0.7607 -0.6189 -0.1957 -vn 0.7402 -0.5843 -0.3326 -vn 0.6787 0.4737 0.5613 -vn 0.6263 0.5087 0.5907 -vn 0.9730 0.1947 0.1237 -vn -0.7982 -0.5982 -0.0703 -vn -0.7898 -0.5848 -0.1849 -vn -0.7709 -0.5538 -0.3148 -vn -0.5646 0.5759 0.5913 -vn -0.3460 0.6078 0.7148 -vn -0.8868 0.3899 0.2481 -vn -0.7699 0.5824 0.2610 -vn -0.3897 0.8505 0.3533 -vn -0.7751 0.5764 0.2588 -vn -0.5846 0.0737 -0.8079 -vn -0.9379 0.3346 -0.0917 -vn -0.9395 0.3373 -0.0596 -vn -0.8718 -0.2050 -0.4449 -vn -0.8298 0.0141 -0.5579 -vn -0.9258 0.3144 -0.2097 -vn -0.9344 -0.3289 -0.1364 -vn -0.9407 -0.3392 -0.0089 -vn -0.8657 0.1894 0.4633 -vn -0.8358 -0.0781 0.5434 -vn 0.9296 0.3628 -0.0641 -vn 0.9278 0.3599 -0.0986 -vn 0.8138 -0.0826 0.5752 -vn 0.8467 0.2014 0.4926 -vn 0.9310 -0.3649 -0.0096 -vn 0.9238 -0.3536 -0.1467 -vn 0.9140 0.3374 -0.2251 -vn 0.8072 0.0149 -0.5901 -vn 0.8534 -0.2182 -0.4735 -vn 0.8534 -0.2181 -0.4735 +vn -0.5484 -0.0760 0.8328 +vn -0.7536 -0.6071 -0.2520 +vn -0.7698 0.6340 0.0745 +vn -0.7607 0.6189 0.1957 +vn -0.7402 0.5843 0.3326 +vn -0.6787 -0.4737 -0.5613 +vn -0.9730 -0.1947 -0.1237 +vn -0.6263 -0.5087 -0.5907 +vn 0.7982 0.5982 0.0703 +vn 0.7898 0.5848 0.1849 +vn 0.7709 0.5538 0.3148 +vn 0.5429 -0.7301 -0.4151 +vn 0.8868 -0.3899 -0.2481 +vn 0.3349 -0.6195 -0.7100 +vn 0.7699 -0.5824 -0.2610 +vn 0.7751 -0.5764 -0.2588 +vn 0.3897 -0.8505 -0.3533 +vn 0.5847 -0.0737 0.8079 +vn 0.9379 -0.3346 0.0917 +vn 0.9395 -0.3373 0.0596 +vn 0.8718 0.2050 0.4449 +vn 0.8298 -0.0141 0.5579 +vn 0.9258 -0.3144 0.2097 +vn 0.9344 0.3289 0.1364 +vn 0.9407 0.3392 0.0089 +vn 0.8657 -0.1894 -0.4633 +vn 0.8358 0.0781 -0.5434 +vn -0.9296 -0.3628 0.0641 +vn -0.9278 -0.3599 0.0986 +vn -0.8138 0.0826 -0.5752 +vn -0.8467 -0.2014 -0.4926 +vn -0.9310 0.3649 0.0096 +vn -0.9238 0.3536 0.1467 +vn -0.9140 -0.3374 0.2251 +vn -0.8072 -0.0149 0.5901 +vn -0.8534 0.2182 0.4735 vn 0.0001 1.0000 0.0000 vn 0.0002 1.0000 0.0000 vn -0.0000 0.9998 0.0183 vn -0.0001 0.9998 0.0183 -vn 1.0000 0.0015 0.0004 +vn 1.0000 0.0015 0.0007 vn 1.0000 -0.0020 0.0019 vn 1.0000 -0.0005 0.0032 vn 1.0000 -0.0000 0.0017 @@ -3886,18 +3251,20 @@ vn 0.0041 -0.0001 -1.0000 vn 0.0000 1.0000 -0.0007 vn 1.0000 0.0000 0.0052 vn 1.0000 -0.0035 -0.0044 -vn -0.0002 -0.6430 -0.7658 +vn 0.0002 0.6430 0.7658 vn 0.0000 0.8690 0.4947 vn 1.0000 -0.0055 0.0020 vn 1.0000 -0.0005 0.0027 vn 1.0000 -0.0090 -0.0003 vn 1.0000 0.0001 0.0025 -vn 0.6788 0.4722 0.5624 -vn 0.5489 0.5375 0.6401 -vn -0.4928 0.5934 0.6364 -vn -0.3227 0.6087 0.7248 -vn -0.3837 0.8529 0.3540 -vn -0.5847 0.0737 -0.8079 +vn -0.6788 -0.4722 -0.5624 +vn -0.5489 -0.5375 -0.6401 +vn 0.7982 0.5983 0.0703 +vn 0.4928 -0.5934 -0.6364 +vn 0.4171 -0.6319 -0.6532 +vn 0.3412 -0.6364 -0.6918 +vn 0.3227 -0.6087 -0.7248 +vn 0.3837 -0.8529 -0.3540 vn 0.9999 0.0114 0.0035 vn 0.0041 0.0735 -0.9973 vn 0.0063 -0.0012 -1.0000 @@ -3940,10 +3307,9 @@ vn 0.2903 -0.9569 0.0000 vn 0.0009 0.0000 1.0000 vn -0.0008 0.0000 1.0000 vn 0.6341 -0.7732 0.0000 -vn 0.6340 -0.7733 0.0000 -vn -0.6345 -0.7730 0.0000 -vn -0.0010 0.0000 1.0000 vn 0.6338 -0.7735 0.0000 +vn -0.6345 -0.7729 0.0000 +vn -0.0010 0.0000 1.0000 vn 0.0012 0.0000 1.0000 vn -0.9886 0.1508 0.0000 vn 0.0000 0.7659 -0.6430 @@ -3967,1854 +3333,2495 @@ vn 0.9692 -0.2464 0.0000 vn 0.0091 0.0297 0.9995 vn -0.2924 -0.9563 0.0000 vn 0.2924 0.9563 0.0000 -usemtl Material.001 s 1 -f 127/228/74 128/229/75 129/230/76 -f 127/231/77 130/232/78 128/229/79 -f 131/233/75 132/234/75 133/235/75 -f 132/234/80 134/236/80 133/235/80 -f 134/236/81 135/237/81 136/238/81 -f 133/235/79 136/239/79 131/240/79 -f 131/241/82 135/237/82 132/234/82 -f 136/242/83 137/243/84 138/244/85 -f 129/245/86 135/237/86 132/234/86 -f 128/229/87 137/246/87 129/230/87 -f 138/244/88 137/246/88 130/232/88 -f 139/247/89 138/248/89 127/249/89 -f 132/234/90 127/250/74 129/251/76 -f 136/242/91 138/248/92 139/252/93 -f 138/253/94 137/254/94 139/255/94 -f 140/256/75 141/257/75 142/258/75 -f 141/257/95 143/259/95 142/258/95 -f 143/259/81 144/260/81 145/261/81 -f 140/262/82 143/259/82 145/263/82 -f 140/264/96 144/260/96 141/257/96 -f 146/265/75 147/266/75 148/267/75 -f 147/266/97 149/268/97 148/267/97 -f 149/268/81 150/269/81 151/270/81 -f 148/267/96 151/271/96 146/272/96 -f 146/273/98 150/269/98 147/266/98 -f 152/274/74 153/275/75 154/276/76 -f 152/277/77 155/278/78 153/275/79 -f 156/279/75 157/280/75 158/281/75 -f 157/280/80 159/282/80 158/281/80 -f 159/282/81 160/283/81 161/284/81 -f 158/281/79 161/285/79 156/286/79 -f 156/287/82 160/283/82 157/280/82 -f 161/288/83 162/289/84 163/290/85 -f 154/291/86 160/283/86 157/280/86 -f 153/275/87 162/292/87 154/276/87 -f 163/290/88 162/292/88 155/278/88 -f 164/293/89 163/294/89 152/295/89 -f 157/280/90 152/296/74 154/297/76 -f 161/288/91 163/294/99 164/298/100 -f 163/299/101 162/300/101 164/301/101 -f 165/302/74 166/303/75 167/304/76 -f 165/305/77 168/306/78 166/303/79 -f 169/307/75 170/308/75 171/309/75 -f 170/308/80 172/310/80 171/309/80 -f 172/310/81 173/311/81 174/312/81 -f 171/309/79 174/313/79 169/314/79 -f 169/315/82 173/311/82 170/308/82 -f 174/316/83 175/317/84 176/318/85 -f 167/319/86 173/311/86 170/308/86 -f 166/303/87 175/320/87 167/304/87 -f 176/318/88 175/320/88 168/306/88 -f 177/321/89 176/322/89 165/323/89 -f 170/308/90 165/324/74 167/325/76 -f 174/316/91 176/322/102 177/326/100 -f 176/327/101 175/328/101 177/329/101 -f 178/330/74 179/331/75 180/332/76 -f 178/333/77 181/334/78 179/331/79 -f 182/335/75 183/336/75 184/337/75 -f 183/336/80 185/338/80 184/337/80 -f 185/338/81 186/339/81 187/340/81 -f 184/337/79 187/341/79 182/342/79 -f 182/343/82 186/339/82 183/336/82 -f 187/344/83 188/345/84 189/346/85 -f 180/347/86 186/339/86 183/336/86 -f 179/331/87 188/348/87 180/332/87 -f 189/346/88 188/348/88 181/334/88 -f 190/349/89 189/350/89 178/351/89 -f 183/336/90 178/352/74 180/353/76 -f 187/344/91 189/350/99 190/354/100 -f 189/355/103 188/356/103 190/357/103 -f 191/358/74 192/359/75 193/360/76 -f 191/361/77 194/362/78 192/359/79 -f 195/363/75 196/364/75 197/365/75 -f 196/364/80 198/366/80 197/365/80 -f 198/366/81 199/367/81 200/368/81 -f 197/365/79 200/369/79 195/370/79 -f 195/371/82 199/367/82 196/364/82 -f 200/372/83 201/373/84 202/374/85 -f 193/375/86 199/367/86 196/364/86 -f 192/359/87 201/376/87 193/360/87 -f 202/374/88 201/376/88 194/362/88 -f 203/377/89 202/378/89 191/379/89 -f 196/364/90 191/380/74 193/381/76 -f 200/372/91 202/378/104 203/382/105 -f 202/383/103 201/384/103 203/385/103 -f 204/386/74 205/387/75 206/388/76 -f 204/389/77 207/390/78 205/387/79 -f 208/391/75 209/392/75 210/393/75 -f 209/392/80 211/394/80 210/393/80 -f 211/394/81 212/395/81 213/396/81 -f 210/393/79 213/397/79 208/398/79 -f 208/399/82 212/395/82 209/392/82 -f 213/400/83 214/401/84 215/402/85 -f 206/403/86 212/395/86 209/392/86 -f 205/387/87 214/404/87 206/388/87 -f 215/402/88 214/404/88 207/390/88 -f 216/405/89 215/406/89 204/407/89 -f 209/392/90 204/408/74 206/409/76 -f 213/400/91 215/406/92 216/410/93 -f 215/411/106 214/412/106 216/413/106 -f 217/414/74 218/415/75 219/416/76 -f 217/417/77 220/418/78 218/415/79 -f 221/419/75 222/420/75 223/421/75 -f 222/420/80 224/422/80 223/421/80 -f 224/422/81 225/423/81 226/424/81 -f 223/421/79 226/425/79 221/426/79 -f 221/427/82 225/423/82 222/420/82 -f 226/428/83 227/429/84 228/430/85 -f 219/431/86 225/423/86 222/420/86 -f 218/415/87 227/432/87 219/416/87 -f 228/430/88 227/432/88 220/418/88 -f 229/433/107 228/434/107 217/435/107 -f 222/420/90 217/436/74 219/437/76 -f 226/428/91 228/434/104 229/438/93 -f 228/439/94 227/440/94 229/441/94 -f 230/442/74 231/443/75 232/444/76 -f 230/445/77 233/446/78 231/443/79 -f 234/447/75 235/448/75 236/449/75 -f 235/448/80 237/450/80 236/449/80 -f 237/450/81 238/451/81 239/452/81 -f 236/449/79 239/453/79 234/454/79 -f 234/455/82 238/451/82 235/448/82 -f 239/456/83 240/457/84 241/458/85 -f 232/459/86 238/451/86 235/448/86 -f 231/443/87 240/460/87 232/444/87 -f 241/458/88 240/460/88 233/446/88 -f 242/461/89 241/462/89 230/463/89 -f 235/448/90 230/464/74 232/465/76 -f 239/456/91 241/462/92 242/466/93 -f 241/467/94 240/468/94 242/469/94 -f 243/470/74 244/471/75 245/472/76 -f 243/473/77 246/474/78 244/471/79 -f 247/475/75 248/476/75 249/477/75 -f 248/476/80 250/478/80 249/477/80 -f 250/478/81 251/479/81 252/480/81 -f 249/477/79 252/481/79 247/482/79 -f 247/483/82 251/479/82 248/476/82 -f 252/484/83 253/485/84 254/486/85 -f 245/487/86 251/479/86 248/476/86 -f 244/471/87 253/488/87 245/472/87 -f 254/486/88 253/488/88 246/474/88 -f 255/489/89 254/490/89 243/491/89 -f 248/476/90 243/492/74 245/493/76 -f 252/484/91 254/490/104 255/494/93 -f 254/495/94 253/496/94 255/497/94 -f 256/498/74 257/499/75 258/500/76 -f 256/501/77 259/502/78 257/499/79 -f 260/503/75 261/504/75 262/505/75 -f 261/504/80 263/506/80 262/505/80 -f 263/506/81 264/507/81 265/508/81 -f 262/505/79 265/509/79 260/510/79 -f 260/511/82 264/507/82 261/504/82 -f 265/512/83 266/513/84 267/514/85 -f 258/515/86 264/507/86 261/504/86 -f 257/499/87 266/516/87 258/500/87 -f 267/514/88 266/516/88 259/502/88 -f 268/517/89 267/518/89 256/519/89 -f 261/504/90 256/520/74 258/521/76 -f 265/512/91 267/518/92 268/522/93 -f 267/523/94 266/524/94 268/525/94 -f 269/526/74 270/527/75 271/528/76 -f 269/529/77 272/530/78 270/527/79 -f 273/531/75 274/532/75 275/533/75 -f 274/532/80 276/534/80 275/533/80 -f 276/534/81 277/535/81 278/536/81 -f 275/533/79 278/537/79 273/538/79 -f 273/539/82 277/535/82 274/532/82 -f 278/540/83 279/541/84 280/542/85 -f 271/543/86 277/535/86 274/532/86 -f 270/527/87 279/544/87 271/528/87 -f 280/542/88 279/544/88 272/530/88 -f 281/545/89 280/546/89 269/547/89 -f 274/532/90 269/548/74 271/549/76 -f 278/540/91 280/546/102 281/550/108 -f 280/551/94 279/552/94 281/553/94 -f 282/554/74 283/555/75 284/556/76 -f 282/557/77 285/558/78 283/555/79 -f 286/559/75 287/560/75 288/561/75 -f 287/560/80 289/562/80 288/561/80 -f 289/562/81 290/563/81 291/564/81 -f 288/561/79 291/565/79 286/566/79 -f 286/567/82 290/563/82 287/560/82 -f 291/568/83 292/569/84 293/570/85 -f 284/571/86 290/563/86 287/560/86 -f 283/555/87 292/572/87 284/556/87 -f 293/570/88 292/572/88 285/558/88 -f 294/573/89 293/574/89 282/575/89 -f 287/560/90 282/576/74 284/577/76 -f 291/568/91 293/574/104 294/578/105 -f 293/579/94 292/580/94 294/581/94 -f 127/231/77 138/582/109 130/232/78 -f 132/234/80 135/237/80 134/236/80 -f 133/235/79 134/236/79 136/239/79 -f 131/241/82 136/583/82 135/237/82 -f 136/242/83 135/237/110 137/243/84 -f 129/245/86 137/584/86 135/237/86 -f 128/229/87 130/232/87 137/246/87 -f 132/234/90 131/585/90 127/250/74 -f 139/252/93 127/249/111 136/242/91 -f 127/249/111 131/585/111 136/242/91 -f 141/257/95 144/260/95 143/259/95 -f 140/262/82 142/258/82 143/259/82 -f 140/264/96 145/586/96 144/260/96 -f 147/266/97 150/269/97 149/268/97 -f 148/267/96 149/268/96 151/271/96 -f 146/273/98 151/587/98 150/269/98 -f 152/277/77 163/588/109 155/278/78 -f 157/280/80 160/283/80 159/282/80 -f 158/281/79 159/282/79 161/285/79 -f 156/287/82 161/589/82 160/283/82 -f 161/288/83 160/283/110 162/289/84 -f 154/291/86 162/590/86 160/283/86 -f 153/275/87 155/278/87 162/292/87 -f 157/280/90 156/591/90 152/296/74 -f 164/298/100 152/295/111 161/288/91 -f 152/295/111 156/591/111 161/288/91 -f 165/305/77 176/592/109 168/306/78 -f 170/308/80 173/311/80 172/310/80 -f 171/309/79 172/310/79 174/313/79 -f 169/315/82 174/593/82 173/311/82 -f 174/316/83 173/311/110 175/317/84 -f 167/319/86 175/594/86 173/311/86 -f 166/303/87 168/306/87 175/320/87 -f 170/308/90 169/595/90 165/324/74 -f 177/326/100 165/323/111 174/316/91 -f 165/323/111 169/595/111 174/316/91 -f 178/333/77 189/596/109 181/334/78 -f 183/336/80 186/339/80 185/338/80 -f 184/337/79 185/338/79 187/341/79 -f 182/343/82 187/597/82 186/339/82 -f 187/344/83 186/339/110 188/345/84 -f 180/347/86 188/598/86 186/339/86 -f 179/331/87 181/334/87 188/348/87 -f 183/336/90 182/599/90 178/352/74 -f 190/354/100 178/351/111 187/344/91 -f 178/351/111 182/599/111 187/344/91 -f 191/361/77 202/600/109 194/362/78 -f 196/364/80 199/367/80 198/366/80 -f 197/365/79 198/366/79 200/369/79 -f 195/371/82 200/601/82 199/367/82 -f 200/372/83 199/367/110 201/373/84 -f 193/375/86 201/602/86 199/367/86 -f 192/359/87 194/362/87 201/376/87 -f 196/364/90 195/603/90 191/380/74 -f 203/382/105 191/379/111 200/372/91 -f 191/379/111 195/603/111 200/372/112 -f 204/389/77 215/604/109 207/390/78 -f 209/392/80 212/395/80 211/394/80 -f 210/393/79 211/394/79 213/397/79 -f 208/399/82 213/605/82 212/395/82 -f 213/400/83 212/395/110 214/401/84 -f 206/403/86 214/606/86 212/395/86 -f 205/387/87 207/390/87 214/404/87 -f 209/392/90 208/607/90 204/408/74 -f 216/410/93 204/407/111 213/400/91 -f 204/407/111 208/607/111 213/400/91 -f 217/417/77 228/608/109 220/418/78 -f 222/420/80 225/423/80 224/422/80 -f 223/421/79 224/422/79 226/425/79 -f 221/427/82 226/609/82 225/423/82 -f 226/428/83 225/423/110 227/429/84 -f 219/431/86 227/610/86 225/423/86 -f 218/415/87 220/418/87 227/432/87 -f 222/420/90 221/611/90 217/436/74 -f 229/438/93 217/435/111 226/428/91 -f 217/435/111 221/611/111 226/428/91 -f 230/445/77 241/612/109 233/446/78 -f 235/448/80 238/451/80 237/450/80 -f 236/449/79 237/450/79 239/453/79 -f 234/455/82 239/613/82 238/451/82 -f 239/456/83 238/451/110 240/457/84 -f 232/459/86 240/614/86 238/451/86 -f 231/443/87 233/446/87 240/460/87 -f 235/448/90 234/615/90 230/464/74 -f 242/466/93 230/463/111 239/456/91 -f 230/463/111 234/615/111 239/456/91 -f 243/473/77 254/616/109 246/474/78 -f 248/476/80 251/479/80 250/478/80 -f 249/477/79 250/478/79 252/481/79 -f 247/483/82 252/617/82 251/479/82 -f 252/484/83 251/479/110 253/485/84 -f 245/487/86 253/618/86 251/479/86 -f 244/471/87 246/474/87 253/488/87 -f 248/476/90 247/619/90 243/492/74 -f 255/494/93 243/491/111 252/484/91 -f 243/491/111 247/619/111 252/484/91 -f 256/501/77 267/620/109 259/502/78 -f 261/504/80 264/507/80 263/506/80 -f 262/505/79 263/506/79 265/509/79 -f 260/511/82 265/621/82 264/507/82 -f 265/512/83 264/507/110 266/513/84 -f 258/515/86 266/622/86 264/507/86 -f 257/499/87 259/502/87 266/516/87 -f 261/504/90 260/623/90 256/520/74 -f 268/522/93 256/519/111 265/512/91 -f 256/519/111 260/623/111 265/512/112 -f 269/529/77 280/624/109 272/530/78 -f 274/532/80 277/535/80 276/534/80 -f 275/533/79 276/534/79 278/537/79 -f 273/539/82 278/625/82 277/535/82 -f 278/540/83 277/535/110 279/541/84 -f 271/543/86 279/626/86 277/535/86 -f 270/527/87 272/530/87 279/544/87 -f 274/532/90 273/627/90 269/548/74 -f 281/550/108 269/547/111 278/540/91 -f 269/547/111 273/627/111 278/540/91 -f 282/557/77 293/628/109 285/558/78 -f 287/560/80 290/563/80 289/562/80 -f 288/561/79 289/562/79 291/565/79 -f 286/567/82 291/629/82 290/563/82 -f 291/568/83 290/563/110 292/569/84 -f 284/571/86 292/630/86 290/563/86 -f 283/555/87 285/558/87 292/572/87 -f 287/560/90 286/631/90 282/576/74 -f 294/578/105 282/575/111 291/568/91 -f 282/575/111 286/631/111 291/568/91 -f 295/632/75 296/633/75 297/634/75 -f 298/635/113 297/636/113 299/637/113 -f 300/638/114 301/639/114 297/636/114 -f 302/640/115 303/641/115 301/639/115 -f 304/642/116 305/643/116 303/641/116 -f 306/644/117 307/645/117 305/643/117 -f 308/646/118 309/647/118 307/645/118 -f 310/648/119 311/649/119 309/647/119 -f 312/650/120 313/651/120 311/649/120 -f 314/652/121 295/653/121 313/651/121 -f 315/654/122 296/655/122 295/653/122 -f 296/633/96 298/656/96 299/657/96 -f 304/658/81 302/659/81 312/660/81 -f 296/633/75 299/657/75 297/634/75 -f 297/634/75 301/661/75 313/662/75 -f 301/661/75 303/663/75 311/664/75 -f 303/663/75 305/665/75 311/664/75 -f 305/665/75 307/666/75 309/667/75 -f 311/664/75 305/665/75 309/667/75 -f 311/664/75 313/662/75 301/661/75 -f 313/662/75 295/632/75 297/634/75 -f 298/635/113 300/638/113 297/636/113 -f 300/638/114 302/640/114 301/639/114 -f 302/640/115 304/642/115 303/641/115 -f 304/642/116 306/644/116 305/643/116 -f 306/644/117 308/646/117 307/645/117 -f 308/646/118 310/648/118 309/647/118 -f 310/648/119 312/650/119 311/649/119 -f 312/650/120 314/652/120 313/651/120 -f 314/652/121 315/654/121 295/653/121 -f 315/654/122 316/668/122 296/655/122 -f 296/633/96 316/669/96 298/656/96 -f 302/659/81 300/670/81 315/671/81 -f 300/670/81 298/656/81 315/671/81 -f 298/656/81 316/669/81 315/671/81 -f 315/671/81 314/672/81 302/659/81 -f 314/672/81 312/660/81 302/659/81 -f 312/660/81 310/673/81 304/658/81 -f 310/673/81 308/674/81 306/675/81 -f 304/658/81 310/673/81 306/675/81 -f 317/676/123 318/677/123 319/678/123 -f 320/679/124 321/680/124 318/677/124 -f 322/681/125 323/682/125 321/680/125 -f 324/683/126 325/684/126 323/682/126 -f 326/685/127 327/686/127 325/684/127 -f 328/687/128 329/688/128 327/686/128 -f 330/689/129 331/690/129 329/688/129 -f 332/691/130 333/692/130 331/690/130 -f 334/693/131 335/694/131 333/692/131 -f 336/695/132 337/696/132 335/694/132 -f 338/697/133 339/698/133 337/696/133 -f 340/699/134 341/700/134 339/698/134 -f 342/701/135 343/702/135 341/700/135 -f 344/703/136 345/704/136 343/702/136 -f 346/705/137 347/706/137 345/704/137 -f 348/707/138 349/708/139 347/706/139 -f 350/709/140 351/710/140 349/708/140 -f 352/711/141 353/712/141 351/710/141 -f 354/713/142 355/714/142 353/712/142 -f 356/715/143 357/716/143 355/714/143 -f 358/717/144 359/718/144 357/716/144 -f 360/719/145 361/720/145 359/718/145 -f 338/721/81 330/722/81 322/723/81 -f 362/724/146 363/725/146 361/720/146 -f 364/726/147 319/727/147 363/725/147 -f 365/728/136 366/729/136 367/730/136 -f 368/731/124 369/732/124 370/733/124 -f 371/734/127 372/735/127 369/732/127 -f 373/736/130 374/737/130 372/735/130 -f 375/738/133 376/739/133 374/737/133 -f 377/740/136 378/741/136 376/739/136 -f 379/742/140 380/743/140 378/741/140 -f 373/744/81 368/745/81 381/746/81 -f 381/747/143 382/748/143 380/743/143 -f 383/749/146 370/750/146 382/748/146 -f 374/751/75 378/752/75 382/753/75 -f 376/754/148 384/755/148 374/756/148 -f 374/756/149 385/757/149 372/758/149 -f 372/758/150 386/759/150 369/760/150 -f 386/759/151 370/761/151 369/760/151 -f 387/762/152 382/763/152 370/761/152 -f 388/764/153 380/765/153 382/763/153 -f 389/766/154 378/767/154 380/765/154 -f 390/768/155 376/754/155 378/767/155 -f 391/769/143 385/770/143 384/771/143 -f 392/772/146 384/771/146 393/773/146 -f 394/774/133 388/775/133 387/776/133 -f 395/777/136 387/778/136 386/779/136 -f 396/780/140 386/779/140 385/770/140 -f 397/781/124 393/773/124 390/782/124 -f 398/783/123 399/784/123 400/785/123 -f 401/786/124 402/787/124 399/784/124 -f 403/788/125 404/789/125 402/787/125 -f 405/790/156 406/791/156 404/789/156 -f 407/792/127 408/793/127 406/791/127 -f 409/794/128 410/795/128 408/793/128 -f 411/796/129 412/797/129 410/795/129 -f 413/798/130 414/799/130 412/797/130 -f 415/800/131 416/801/131 414/799/131 -f 417/802/132 418/803/132 416/801/132 -f 419/804/133 420/805/133 418/803/133 -f 421/806/134 422/807/134 420/805/134 -f 423/808/135 424/809/135 422/807/135 -f 425/810/136 426/811/136 424/809/136 -f 427/812/137 428/813/137 426/811/137 -f 429/814/138 430/815/138 428/813/138 -f 431/816/140 432/817/140 430/815/140 -f 433/818/141 434/819/141 432/817/141 -f 435/820/142 436/821/142 434/819/142 -f 437/822/143 438/823/143 436/821/143 -f 439/824/144 440/825/144 438/823/144 -f 441/826/145 442/827/145 440/825/145 -f 435/828/81 419/829/81 403/830/81 -f 443/831/146 444/832/146 442/827/146 -f 445/833/147 400/834/147 444/832/147 -f 436/835/75 444/836/75 412/837/75 -f 446/838/123 447/839/123 448/840/123 -f 449/841/124 450/842/124 447/839/124 -f 451/843/125 452/844/125 450/842/125 -f 453/845/126 454/846/126 452/844/126 -f 455/847/127 456/848/127 454/846/127 -f 457/849/128 458/850/128 456/848/128 -f 459/851/129 460/852/129 458/850/129 -f 461/853/130 462/854/130 460/852/130 -f 463/855/131 464/856/131 462/854/131 -f 465/857/132 466/858/132 464/856/132 -f 467/859/133 468/860/133 466/858/133 -f 469/861/134 470/862/134 468/860/134 -f 471/863/135 472/864/135 470/862/135 -f 473/865/136 474/866/136 472/864/136 -f 475/867/137 476/868/137 474/866/157 -f 477/869/138 478/870/139 476/868/139 -f 479/871/140 480/872/140 478/870/140 -f 481/873/141 482/874/141 480/872/141 -f 483/875/142 484/876/142 482/874/142 -f 485/877/143 486/878/143 484/876/143 -f 487/879/144 488/880/144 486/878/144 -f 489/881/145 490/882/145 488/880/145 -f 467/883/81 459/884/81 451/885/81 -f 491/886/146 492/887/146 490/882/146 -f 493/888/147 448/889/147 492/887/147 -f 476/890/75 484/891/75 492/892/75 -f 494/893/123 495/894/123 496/895/123 -f 497/896/124 498/897/124 495/894/124 -f 499/898/125 500/899/125 498/897/125 -f 501/900/156 502/901/156 500/899/126 -f 503/902/127 504/903/127 502/901/127 -f 505/904/128 506/905/128 504/903/128 -f 507/906/129 508/907/129 506/905/129 -f 509/908/130 510/909/130 508/907/130 -f 511/910/131 512/911/131 510/909/131 -f 513/912/132 514/913/132 512/911/132 -f 515/914/133 516/915/133 514/913/133 -f 517/916/134 518/917/134 516/915/134 -f 519/918/135 520/919/135 518/917/135 -f 521/920/136 522/921/136 520/919/136 -f 523/922/137 524/923/137 522/921/137 -f 525/924/138 526/925/138 524/923/138 -f 527/926/140 528/927/140 526/925/140 -f 529/928/141 530/929/141 528/927/141 -f 531/930/142 532/931/142 530/929/142 -f 533/932/143 534/933/143 532/931/143 -f 535/934/144 536/935/144 534/933/144 -f 537/936/145 538/937/145 536/935/145 -f 515/938/81 507/939/81 499/940/81 -f 539/941/146 540/942/146 538/937/146 -f 541/943/147 496/944/147 540/942/147 -f 524/945/75 532/946/75 540/947/75 -f 542/948/123 543/949/123 544/950/123 -f 545/951/124 546/952/124 543/949/124 -f 547/953/125 548/954/125 546/952/125 -f 549/955/126 550/956/126 548/954/126 -f 551/957/127 552/958/127 550/956/127 -f 553/959/128 554/960/128 552/958/128 -f 555/961/129 556/962/129 554/960/129 -f 557/963/130 558/964/130 556/962/130 -f 559/965/131 560/966/131 558/964/131 -f 561/967/132 562/968/132 560/966/132 -f 563/969/133 564/970/133 562/968/133 -f 565/971/134 566/972/134 564/970/134 -f 567/973/135 568/974/135 566/972/135 -f 569/975/136 570/976/136 568/974/136 -f 571/977/137 572/978/137 570/976/137 -f 573/979/139 574/980/139 572/978/139 -f 575/981/140 576/982/140 574/980/140 -f 577/983/141 578/984/141 576/982/141 -f 579/985/142 580/986/142 578/984/142 -f 581/987/143 582/988/143 580/986/143 -f 583/989/144 584/990/144 582/988/144 -f 585/991/145 586/992/145 584/990/145 -f 563/993/81 555/994/81 547/995/81 -f 587/996/146 588/997/146 586/992/146 -f 589/998/147 544/999/147 588/997/147 -f 572/1000/75 580/1001/75 588/1002/75 -f 590/1003/123 591/1004/123 592/1005/123 -f 593/1006/124 594/1007/124 591/1004/124 -f 595/1008/158 596/1009/125 594/1007/125 -f 597/1010/126 598/1011/126 596/1009/126 -f 599/1012/127 600/1013/127 598/1011/127 -f 601/1014/128 602/1015/128 600/1013/128 -f 603/1016/129 604/1017/129 602/1015/129 -f 605/1018/130 606/1019/130 604/1017/130 -f 607/1020/131 608/1021/131 606/1019/131 -f 609/1022/159 610/1023/132 608/1021/132 -f 611/1024/133 612/1025/133 610/1023/133 -f 613/1026/134 614/1027/134 612/1025/134 -f 615/1028/135 616/1029/135 614/1027/135 -f 617/1030/136 618/1031/136 616/1029/136 -f 619/1032/137 620/1033/157 618/1031/157 -f 621/1034/138 622/1035/139 620/1033/139 -f 623/1036/140 624/1037/140 622/1035/140 -f 625/1038/141 626/1039/141 624/1037/141 -f 627/1040/142 628/1041/142 626/1039/142 -f 629/1042/143 630/1043/143 628/1041/143 -f 631/1044/144 632/1045/144 630/1043/144 -f 633/1046/145 634/1047/145 632/1045/145 -f 611/1048/81 603/1049/81 595/1050/81 -f 635/1051/146 636/1052/146 634/1047/146 -f 637/1053/147 592/1054/147 636/1052/147 -f 620/1055/75 628/1056/75 636/1057/75 -f 638/1058/75 318/1059/75 367/730/75 -f 367/730/75 321/1060/75 365/728/75 -f 365/728/75 323/1061/75 639/1062/75 -f 639/1062/75 325/1063/75 640/1064/75 -f 640/1064/75 327/1065/75 641/1066/75 -f 641/1066/75 329/1067/75 642/1068/75 -f 643/1069/75 329/1067/75 331/1070/75 -f 644/1071/75 331/1070/75 333/1072/75 -f 645/1073/75 333/1072/75 335/1074/75 -f 646/1075/75 335/1074/75 337/1076/75 -f 647/1077/75 337/1076/75 339/1078/75 -f 648/1079/75 339/1078/75 341/1080/75 -f 648/1079/75 343/1081/75 649/1082/75 -f 649/1082/75 345/1083/75 650/1084/75 -f 650/1084/75 347/1085/75 651/1086/75 -f 651/1086/75 349/1087/75 652/1088/75 -f 652/1088/75 351/1089/75 653/1090/75 -f 653/1090/75 353/1091/75 654/1092/75 -f 655/1093/75 353/1091/75 355/1094/75 -f 656/1095/75 355/1094/75 357/1096/75 -f 657/1097/75 357/1096/75 359/1098/75 -f 658/1099/75 359/1098/75 361/1100/75 -f 659/1101/75 361/1100/75 363/1102/75 -f 638/1058/75 363/1102/75 319/1103/75 -f 660/1104/75 661/1105/75 662/1106/75 -f 653/1090/127 663/1107/127 652/1088/127 -f 646/1075/145 664/1108/145 645/1073/145 -f 639/1062/137 665/1109/137 365/728/137 -f 654/1092/128 666/1110/128 653/1090/128 -f 647/1077/146 667/1111/146 646/1075/146 -f 640/1064/138 668/1112/138 639/1062/138 -f 655/1093/129 669/1113/129 654/1092/129 -f 648/1079/147 670/1114/147 647/1077/147 -f 641/1066/140 671/1115/140 640/1064/140 -f 656/1095/130 672/1116/130 655/1093/130 -f 649/1082/123 673/1117/123 648/1079/123 -f 642/1068/141 674/1118/141 641/1066/141 -f 657/1097/131 675/1119/131 656/1095/131 -f 650/1084/124 676/1120/124 649/1082/124 -f 643/1069/142 677/1121/142 642/1068/142 -f 658/1099/132 660/1104/132 657/1097/132 -f 651/1086/158 678/1122/125 650/1084/158 -f 644/1071/143 679/1123/143 643/1069/143 -f 659/1101/133 661/1105/133 658/1099/133 -f 367/730/135 680/1124/135 638/1058/135 -f 652/1088/156 662/1106/156 651/1086/156 -f 645/1073/144 681/1125/144 644/1071/144 -f 638/1058/134 682/1126/134 659/1101/134 -f 397/781/160 389/766/161 683/1127/162 -f 317/676/123 320/679/123 318/677/123 -f 320/679/124 322/681/124 321/680/124 -f 322/681/125 324/683/125 323/682/125 -f 324/683/126 326/685/126 325/684/126 -f 326/685/127 328/687/127 327/686/127 -f 328/687/128 330/689/128 329/688/128 -f 330/689/129 332/691/129 331/690/129 -f 332/691/130 334/693/130 333/692/130 -f 334/693/131 336/695/131 335/694/131 -f 336/695/132 338/697/132 337/696/132 -f 338/697/133 340/699/133 339/698/133 -f 340/699/134 342/701/134 341/700/134 -f 342/701/135 344/703/135 343/702/135 -f 344/703/136 346/705/136 345/704/136 -f 346/705/137 348/707/137 347/706/137 -f 348/707/138 350/709/138 349/708/139 -f 350/709/140 352/711/140 351/710/140 -f 352/711/141 354/713/141 353/712/141 -f 354/713/142 356/715/142 355/714/142 -f 356/715/143 358/717/143 357/716/143 -f 358/717/144 360/719/144 359/718/144 -f 360/719/145 362/724/145 361/720/145 -f 322/723/81 320/1128/81 317/1129/81 -f 317/1129/81 364/1130/81 322/723/81 -f 364/1130/81 362/1131/81 322/723/81 -f 362/1131/81 360/1132/81 358/1133/81 -f 358/1133/81 356/1134/81 354/1135/81 -f 354/1135/81 352/1136/81 350/1137/81 -f 350/1137/81 348/1138/81 354/1135/81 -f 348/1138/81 346/1139/81 354/1135/81 -f 346/1139/81 344/1140/81 342/1141/81 -f 342/1141/81 340/1142/81 338/721/81 -f 338/721/81 336/1143/81 334/1144/81 -f 334/1144/81 332/1145/81 330/722/81 -f 330/722/81 328/1146/81 326/1147/81 -f 326/1147/81 324/1148/81 330/722/81 -f 324/1148/81 322/723/81 330/722/81 -f 362/1131/81 358/1133/81 354/1135/81 -f 346/1139/81 342/1141/81 354/1135/81 -f 342/1141/81 338/721/81 354/1135/81 -f 338/721/81 334/1144/81 330/722/81 -f 322/723/81 362/1131/81 338/721/81 -f 362/1131/81 354/1135/81 338/721/81 -f 362/724/146 364/726/146 363/725/146 -f 364/726/147 317/1149/147 319/727/147 -f 365/728/136 665/1109/136 366/729/136 -f 368/731/124 371/734/124 369/732/124 -f 371/734/127 373/736/127 372/735/127 -f 373/736/130 375/738/130 374/737/130 -f 375/738/133 377/740/133 376/739/133 -f 377/740/136 379/742/136 378/741/136 -f 379/742/140 381/747/140 380/743/140 -f 373/744/81 371/1150/81 368/745/81 -f 368/745/81 383/1151/81 381/746/81 -f 381/746/81 379/1152/81 373/744/81 -f 379/1152/81 377/1153/81 373/744/81 -f 377/1153/81 375/1154/81 373/744/81 -f 381/747/143 383/749/143 382/748/143 -f 383/749/146 368/1155/146 370/750/146 -f 382/753/75 370/1156/75 374/751/75 -f 370/1156/75 369/1157/75 374/751/75 -f 369/1157/75 372/1158/75 374/751/75 -f 374/751/75 376/1159/75 378/752/75 -f 378/752/75 380/1160/75 382/753/75 -f 376/754/148 393/1161/148 384/755/148 -f 374/756/149 384/755/149 385/757/149 -f 372/758/150 385/757/150 386/759/150 -f 386/759/151 387/762/151 370/761/151 -f 387/762/152 388/764/152 382/763/152 -f 388/764/153 389/766/153 380/765/153 -f 389/766/154 390/768/154 378/767/154 -f 390/768/155 393/1161/155 376/754/155 -f 391/769/143 396/780/143 385/770/143 -f 392/772/146 391/769/146 384/771/146 -f 394/774/133 683/1127/133 388/775/133 -f 395/777/136 394/1162/136 387/778/136 -f 396/780/140 395/777/140 386/779/140 -f 397/781/124 392/772/124 393/773/124 -f 398/783/123 401/786/123 399/784/123 -f 401/786/124 403/788/124 402/787/124 -f 403/788/125 405/790/125 404/789/125 -f 405/790/156 407/792/156 406/791/156 -f 407/792/127 409/794/127 408/793/127 -f 409/794/128 411/796/128 410/795/128 -f 411/796/129 413/798/129 412/797/129 -f 413/798/130 415/800/130 414/799/130 -f 415/800/131 417/802/131 416/801/131 -f 417/802/132 419/804/132 418/803/132 -f 419/804/133 421/806/133 420/805/133 -f 421/806/134 423/808/134 422/807/134 -f 423/808/135 425/810/135 424/809/135 -f 425/810/136 427/812/136 426/811/136 -f 427/812/137 429/814/137 428/813/137 -f 429/814/138 431/816/138 430/815/138 -f 431/816/140 433/818/140 432/817/140 -f 433/818/141 435/820/141 434/819/141 -f 435/820/142 437/822/142 436/821/142 -f 437/822/143 439/824/143 438/823/143 -f 439/824/144 441/826/144 440/825/144 -f 441/826/145 443/831/145 442/827/145 -f 403/830/81 401/1163/81 443/1164/81 -f 401/1163/81 398/1165/81 443/1164/81 -f 398/1165/81 445/1166/81 443/1164/81 -f 443/1164/81 441/1167/81 439/1168/81 -f 439/1168/81 437/1169/81 435/828/81 -f 435/828/81 433/1170/81 431/1171/81 -f 431/1171/81 429/1172/81 427/1173/81 -f 427/1173/81 425/1174/81 423/1175/81 -f 423/1175/81 421/1176/81 419/829/81 -f 419/829/81 417/1177/81 415/1178/81 -f 415/1178/81 413/1179/81 419/829/81 -f 413/1179/81 411/1180/81 419/829/81 -f 411/1180/81 409/1181/81 407/1182/81 -f 407/1182/81 405/1183/81 403/830/81 -f 443/1164/81 439/1168/81 403/830/81 -f 439/1168/81 435/828/81 403/830/81 -f 435/828/81 431/1171/81 419/829/81 -f 431/1171/81 427/1173/81 419/829/81 -f 427/1173/81 423/1175/81 419/829/81 -f 411/1180/81 407/1182/81 419/829/81 -f 407/1182/81 403/830/81 419/829/81 -f 443/831/146 445/833/146 444/832/146 -f 445/833/147 398/1184/147 400/834/147 -f 444/836/75 400/1185/75 399/1186/75 -f 399/1186/75 402/1187/75 444/836/75 -f 402/1187/75 404/1188/75 444/836/75 -f 404/1188/75 406/1189/75 412/837/75 -f 406/1189/75 408/1190/163 412/837/75 -f 408/1190/163 410/1191/75 412/837/75 -f 412/837/75 414/1192/164 416/1193/75 -f 416/1193/75 418/1194/75 420/1195/75 -f 420/1195/75 422/1196/75 424/1197/75 -f 424/1197/75 426/1198/75 428/1199/75 -f 428/1199/75 430/1200/75 432/1201/75 -f 432/1201/75 434/1202/75 436/835/75 -f 436/835/75 438/1203/75 440/1204/164 -f 440/1204/164 442/1205/75 436/835/75 -f 442/1205/75 444/836/75 436/835/75 -f 412/837/75 416/1193/75 420/1195/75 -f 420/1195/75 424/1197/75 412/837/75 -f 424/1197/75 428/1199/75 412/837/75 -f 428/1199/75 432/1201/75 436/835/75 -f 444/836/75 404/1188/75 412/837/75 -f 428/1199/75 436/835/75 412/837/75 -f 446/838/123 449/841/123 447/839/123 -f 449/841/124 451/843/124 450/842/124 -f 451/843/125 453/845/125 452/844/125 -f 453/845/126 455/847/126 454/846/126 -f 455/847/127 457/849/127 456/848/127 -f 457/849/128 459/851/128 458/850/128 -f 459/851/129 461/853/129 460/852/129 -f 461/853/130 463/855/130 462/854/130 -f 463/855/131 465/857/131 464/856/131 -f 465/857/132 467/859/132 466/858/132 -f 467/859/133 469/861/133 468/860/133 -f 469/861/134 471/863/134 470/862/134 -f 471/863/135 473/865/135 472/864/135 -f 473/865/136 475/867/136 474/866/136 -f 475/867/137 477/869/137 476/868/137 -f 477/869/138 479/871/138 478/870/139 -f 479/871/140 481/873/140 480/872/140 -f 481/873/141 483/875/141 482/874/141 -f 483/875/142 485/877/142 484/876/142 -f 485/877/143 487/879/143 486/878/143 -f 487/879/144 489/881/144 488/880/144 -f 489/881/145 491/886/145 490/882/145 -f 451/885/81 449/1206/81 446/1207/81 -f 446/1207/81 493/1208/81 491/1209/81 -f 491/1209/81 489/1210/165 487/1211/81 -f 487/1211/81 485/1212/81 491/1209/81 -f 485/1212/81 483/1213/81 491/1209/81 -f 483/1213/81 481/1214/165 479/1215/81 -f 479/1215/81 477/1216/81 483/1213/81 -f 477/1216/81 475/1217/81 483/1213/81 -f 475/1217/81 473/1218/81 471/1219/81 -f 471/1219/81 469/1220/81 467/883/81 -f 467/883/81 465/1221/81 463/1222/81 -f 463/1222/81 461/1223/81 467/883/81 -f 461/1223/81 459/884/81 467/883/81 -f 459/884/81 457/1224/81 455/1225/81 -f 455/1225/81 453/1226/81 459/884/81 -f 453/1226/81 451/885/81 459/884/81 -f 451/885/81 446/1207/81 491/1209/81 -f 475/1217/81 471/1219/81 483/1213/81 -f 471/1219/81 467/883/81 483/1213/81 -f 451/885/81 491/1209/81 467/883/81 -f 491/1209/81 483/1213/81 467/883/81 -f 491/886/146 493/888/146 492/887/146 -f 493/888/147 446/1227/147 448/889/147 -f 492/892/75 448/1228/75 447/1229/75 -f 447/1229/75 450/1230/75 492/892/75 -f 450/1230/75 452/1231/75 492/892/75 -f 452/1231/75 454/1232/163 456/1233/164 -f 456/1233/164 458/1234/75 452/1231/75 -f 458/1234/75 460/1235/75 452/1231/75 -f 460/1235/75 462/1236/75 464/1237/75 -f 464/1237/75 466/1238/75 468/1239/75 -f 468/1239/75 470/1240/75 476/890/75 -f 470/1240/75 472/1241/75 476/890/75 -f 472/1241/75 474/1242/164 476/890/75 -f 476/890/75 478/1243/75 480/1244/163 -f 480/1244/163 482/1245/75 476/890/75 -f 482/1245/75 484/891/75 476/890/75 -f 484/891/75 486/1246/164 488/1247/74 -f 488/1247/74 490/1248/75 484/891/75 -f 490/1248/75 492/892/75 484/891/75 -f 460/1235/75 464/1237/75 476/890/75 -f 464/1237/75 468/1239/75 476/890/75 -f 492/892/75 452/1231/75 476/890/75 -f 452/1231/75 460/1235/75 476/890/75 -f 494/893/123 497/896/123 495/894/123 -f 497/896/124 499/898/124 498/897/124 -f 499/898/125 501/900/125 500/899/125 -f 501/900/156 503/902/156 502/901/156 -f 503/902/127 505/904/127 504/903/127 -f 505/904/128 507/906/128 506/905/128 -f 507/906/129 509/908/129 508/907/129 -f 509/908/130 511/910/130 510/909/130 -f 511/910/131 513/912/131 512/911/131 -f 513/912/132 515/914/159 514/913/132 -f 515/914/133 517/916/133 516/915/133 -f 517/916/134 519/918/134 518/917/134 -f 519/918/135 521/920/135 520/919/135 -f 521/920/136 523/922/136 522/921/136 -f 523/922/137 525/924/137 524/923/137 -f 525/924/138 527/926/138 526/925/138 -f 527/926/140 529/928/140 528/927/140 -f 529/928/141 531/930/141 530/929/141 -f 531/930/142 533/932/142 532/931/142 -f 533/932/143 535/934/143 534/933/143 -f 535/934/144 537/936/144 536/935/144 -f 537/936/145 539/941/145 538/937/145 -f 499/940/81 497/1249/81 494/1250/81 -f 494/1250/81 541/1251/81 539/1252/81 -f 539/1252/81 537/1253/166 535/1254/165 -f 535/1254/165 533/1255/81 539/1252/81 -f 533/1255/81 531/1256/81 539/1252/81 -f 531/1256/81 529/1257/81 527/1258/81 -f 527/1258/81 525/1259/81 531/1256/81 -f 525/1259/81 523/1260/81 531/1256/81 -f 523/1260/81 521/1261/81 519/1262/81 -f 519/1262/81 517/1263/81 515/938/81 -f 515/938/81 513/1264/166 511/1265/81 -f 511/1265/81 509/1266/81 515/938/81 -f 509/1266/81 507/939/81 515/938/81 -f 507/939/81 505/1267/81 503/1268/81 -f 503/1268/81 501/1269/81 507/939/81 -f 501/1269/81 499/940/81 507/939/81 -f 499/940/81 494/1250/81 539/1252/81 -f 523/1260/81 519/1262/81 531/1256/81 -f 519/1262/81 515/938/81 531/1256/81 -f 499/940/81 539/1252/81 515/938/81 -f 539/1252/81 531/1256/81 515/938/81 -f 539/941/146 541/943/146 540/942/146 -f 541/943/147 494/1270/147 496/944/147 -f 540/947/75 496/1271/75 495/1272/75 -f 495/1272/75 498/1273/75 540/947/75 -f 498/1273/75 500/1274/75 540/947/75 -f 500/1274/75 502/1275/164 504/1276/75 -f 504/1276/75 506/1277/75 500/1274/75 -f 506/1277/75 508/1278/75 500/1274/75 -f 508/1278/75 510/1279/163 512/1280/75 -f 512/1280/75 514/1281/163 516/1282/75 -f 516/1282/75 518/1283/75 520/1284/75 -f 520/1284/75 522/1285/75 524/945/75 -f 524/945/75 526/1286/163 528/1287/75 -f 528/1287/75 530/1288/75 524/945/75 -f 530/1288/75 532/946/75 524/945/75 -f 532/946/75 534/1289/163 536/1290/164 -f 536/1290/164 538/1291/75 532/946/75 -f 538/1291/75 540/947/75 532/946/75 -f 508/1278/75 512/1280/75 516/1282/75 -f 516/1282/75 520/1284/75 508/1278/75 -f 520/1284/75 524/945/75 508/1278/75 -f 540/947/75 500/1274/75 524/945/75 -f 500/1274/75 508/1278/75 524/945/75 -f 542/948/123 545/951/123 543/949/123 -f 545/951/124 547/953/124 546/952/124 -f 547/953/125 549/955/125 548/954/125 -f 549/955/126 551/957/156 550/956/126 -f 551/957/127 553/959/127 552/958/127 -f 553/959/128 555/961/128 554/960/128 -f 555/961/129 557/963/129 556/962/129 -f 557/963/130 559/965/130 558/964/130 -f 559/965/131 561/967/131 560/966/131 -f 561/967/132 563/969/132 562/968/132 -f 563/969/133 565/971/133 564/970/133 -f 565/971/134 567/973/134 566/972/134 -f 567/973/135 569/975/135 568/974/135 -f 569/975/136 571/977/136 570/976/136 -f 571/977/137 573/979/137 572/978/137 -f 573/979/139 575/981/138 574/980/139 -f 575/981/140 577/983/140 576/982/140 -f 577/983/141 579/985/141 578/984/141 -f 579/985/142 581/987/142 580/986/142 -f 581/987/143 583/989/143 582/988/143 -f 583/989/144 585/991/144 584/990/144 -f 585/991/145 587/996/145 586/992/145 -f 547/995/81 545/1292/81 542/1293/81 -f 542/1293/81 589/1294/81 587/1295/81 -f 587/1295/81 585/1296/166 583/1297/81 -f 583/1297/81 581/1298/81 587/1295/81 -f 581/1298/81 579/1299/81 587/1295/81 -f 579/1299/81 577/1300/81 575/1301/81 -f 575/1301/81 573/1302/81 579/1299/81 -f 573/1302/81 571/1303/81 579/1299/81 -f 571/1303/81 569/1304/81 567/1305/81 -f 567/1305/81 565/1306/81 563/993/81 -f 563/993/81 561/1307/165 559/1308/81 -f 559/1308/81 557/1309/81 563/993/81 -f 557/1309/81 555/994/81 563/993/81 -f 555/994/81 553/1310/81 551/1311/81 -f 551/1311/81 549/1312/81 555/994/81 -f 549/1312/81 547/995/81 555/994/81 -f 547/995/81 542/1293/81 587/1295/81 -f 571/1303/81 567/1305/81 579/1299/81 -f 567/1305/81 563/993/81 579/1299/81 -f 547/995/81 587/1295/81 563/993/81 -f 587/1295/81 579/1299/81 563/993/81 -f 587/996/146 589/998/146 588/997/146 -f 589/998/147 542/1313/147 544/999/147 -f 588/1002/75 544/1314/75 543/1315/75 -f 543/1315/75 546/1316/75 588/1002/75 -f 546/1316/75 548/1317/75 588/1002/75 -f 548/1317/75 550/1318/75 552/1319/75 -f 552/1319/75 554/1320/75 548/1317/75 -f 554/1320/75 556/1321/75 548/1317/75 -f 556/1321/75 558/1322/75 560/1323/75 -f 560/1323/75 562/1324/75 564/1325/75 -f 564/1325/75 566/1326/75 572/1000/75 -f 566/1326/75 568/1327/75 572/1000/75 -f 568/1327/75 570/1328/75 572/1000/75 -f 572/1000/75 574/1329/75 576/1330/75 -f 576/1330/75 578/1331/75 572/1000/75 -f 578/1331/75 580/1001/75 572/1000/75 -f 580/1001/75 582/1332/75 584/1333/163 -f 584/1333/163 586/1334/75 580/1001/75 -f 586/1334/75 588/1002/75 580/1001/75 -f 556/1321/75 560/1323/75 572/1000/75 -f 560/1323/75 564/1325/75 572/1000/75 -f 588/1002/75 548/1317/75 572/1000/75 -f 548/1317/75 556/1321/75 572/1000/75 -f 590/1003/123 593/1006/123 591/1004/123 -f 593/1006/124 595/1008/124 594/1007/124 -f 595/1008/158 597/1010/158 596/1009/125 -f 597/1010/126 599/1012/126 598/1011/126 -f 599/1012/127 601/1014/127 600/1013/127 -f 601/1014/128 603/1016/128 602/1015/128 -f 603/1016/129 605/1018/129 604/1017/129 -f 605/1018/130 607/1020/130 606/1019/130 -f 607/1020/131 609/1022/131 608/1021/131 -f 609/1022/159 611/1024/159 610/1023/132 -f 611/1024/133 613/1026/133 612/1025/133 -f 613/1026/134 615/1028/134 614/1027/134 -f 615/1028/135 617/1030/135 616/1029/135 -f 617/1030/136 619/1032/136 618/1031/136 -f 619/1032/137 621/1034/137 620/1033/157 -f 621/1034/138 623/1036/138 622/1035/139 -f 623/1036/140 625/1038/140 624/1037/140 -f 625/1038/141 627/1040/141 626/1039/141 -f 627/1040/142 629/1042/142 628/1041/142 -f 629/1042/143 631/1044/143 630/1043/143 -f 631/1044/144 633/1046/144 632/1045/144 -f 633/1046/145 635/1051/145 634/1047/145 -f 595/1050/81 593/1335/81 590/1336/81 -f 590/1336/81 637/1337/81 595/1050/81 -f 637/1337/81 635/1338/81 595/1050/81 -f 635/1338/81 633/1339/81 631/1340/81 -f 631/1340/81 629/1341/81 635/1338/81 -f 629/1341/81 627/1342/81 635/1338/81 -f 627/1342/81 625/1343/81 623/1344/81 -f 623/1344/81 621/1345/81 627/1342/81 -f 621/1345/81 619/1346/81 627/1342/81 -f 619/1346/81 617/1347/81 615/1348/81 -f 615/1348/81 613/1349/81 611/1048/81 -f 611/1048/81 609/1350/81 607/1351/81 -f 607/1351/81 605/1352/81 611/1048/81 -f 605/1352/81 603/1049/81 611/1048/81 -f 603/1049/81 601/1353/81 599/1354/81 -f 599/1354/81 597/1355/81 603/1049/81 -f 597/1355/81 595/1050/81 603/1049/81 -f 619/1346/81 615/1348/81 627/1342/81 -f 615/1348/81 611/1048/81 627/1342/81 -f 595/1050/81 635/1338/81 611/1048/81 -f 635/1338/81 627/1342/81 611/1048/81 -f 635/1051/146 637/1053/146 636/1052/146 -f 637/1053/147 590/1356/147 592/1054/147 -f 636/1057/75 592/1357/75 591/1358/75 -f 591/1358/75 594/1359/75 636/1057/75 -f 594/1359/75 596/1360/75 636/1057/75 -f 596/1360/75 598/1361/75 600/1362/75 -f 600/1362/75 602/1363/75 596/1360/75 -f 602/1363/75 604/1364/75 596/1360/75 -f 604/1364/75 606/1365/75 608/1366/75 -f 608/1366/75 610/1367/75 612/1368/75 -f 612/1368/75 614/1369/75 620/1055/75 -f 614/1369/75 616/1370/75 620/1055/75 -f 616/1370/75 618/1371/75 620/1055/75 -f 620/1055/75 622/1372/75 624/1373/75 -f 624/1373/75 626/1374/75 620/1055/75 -f 626/1374/75 628/1056/75 620/1055/75 -f 628/1056/75 630/1375/75 632/1376/75 -f 632/1376/75 634/1377/75 628/1056/75 -f 634/1377/75 636/1057/75 628/1056/75 -f 604/1364/75 608/1366/75 620/1055/75 -f 608/1366/75 612/1368/75 620/1055/75 -f 636/1057/75 596/1360/75 620/1055/75 -f 596/1360/75 604/1364/75 620/1055/75 -f 638/1058/75 319/1103/75 318/1059/75 -f 367/730/75 318/1059/75 321/1060/75 -f 365/728/75 321/1060/75 323/1061/75 -f 639/1062/75 323/1061/75 325/1063/75 -f 640/1064/75 325/1063/75 327/1065/75 -f 641/1066/75 327/1065/75 329/1067/75 -f 643/1069/75 642/1068/75 329/1067/75 -f 644/1071/75 643/1069/75 331/1070/75 -f 645/1073/75 644/1071/75 333/1072/75 -f 646/1075/75 645/1073/75 335/1074/75 -f 647/1077/75 646/1075/75 337/1076/75 -f 648/1079/75 647/1077/75 339/1078/75 -f 648/1079/75 341/1080/75 343/1081/75 -f 649/1082/75 343/1081/75 345/1083/75 -f 650/1084/75 345/1083/75 347/1085/75 -f 651/1086/75 347/1085/75 349/1087/75 -f 652/1088/75 349/1087/75 351/1089/75 -f 653/1090/75 351/1089/75 353/1091/75 -f 655/1093/75 654/1092/75 353/1091/75 -f 656/1095/75 655/1093/75 355/1094/75 -f 657/1097/75 656/1095/75 357/1096/75 -f 658/1099/75 657/1097/75 359/1098/75 -f 659/1101/75 658/1099/75 361/1100/75 -f 638/1058/75 659/1101/75 363/1102/75 -f 682/1126/75 680/1124/75 673/1117/75 -f 680/1124/75 366/729/75 670/1114/75 -f 366/729/75 665/1109/75 670/1114/75 -f 665/1109/75 668/1112/75 667/1111/75 -f 670/1114/75 665/1109/75 667/1111/75 -f 668/1112/75 671/1115/75 681/1125/75 -f 671/1115/75 674/1118/75 679/1123/75 -f 674/1118/75 677/1121/75 679/1123/75 -f 679/1123/75 681/1125/75 671/1115/75 -f 681/1125/75 664/1108/75 668/1112/75 -f 664/1108/75 667/1111/75 668/1112/75 -f 670/1114/75 673/1117/75 680/1124/75 -f 673/1117/75 676/1120/75 682/1126/75 -f 676/1120/75 678/1122/75 682/1126/75 -f 678/1122/75 662/1106/75 661/1105/75 -f 682/1126/75 678/1122/75 661/1105/75 -f 662/1106/75 663/1107/75 675/1119/75 -f 663/1107/75 666/1110/75 672/1116/75 -f 666/1110/75 669/1113/75 672/1116/75 -f 672/1116/75 675/1119/75 663/1107/75 -f 675/1119/75 660/1104/75 662/1106/75 -f 653/1090/127 666/1110/127 663/1107/127 -f 646/1075/145 667/1111/145 664/1108/145 -f 639/1062/137 668/1112/137 665/1109/137 -f 654/1092/128 669/1113/128 666/1110/128 -f 647/1077/146 670/1114/146 667/1111/146 -f 640/1064/138 671/1115/138 668/1112/138 -f 655/1093/129 672/1116/129 669/1113/129 -f 648/1079/147 673/1117/147 670/1114/147 -f 641/1066/140 674/1118/140 671/1115/140 -f 656/1095/130 675/1119/130 672/1116/130 -f 649/1082/123 676/1120/123 673/1117/123 -f 642/1068/141 677/1121/141 674/1118/141 -f 657/1097/131 660/1104/131 675/1119/131 -f 650/1084/124 678/1122/124 676/1120/124 -f 643/1069/142 679/1123/142 677/1121/142 -f 658/1099/132 661/1105/132 660/1104/132 -f 651/1086/158 662/1106/125 678/1122/125 -f 644/1071/143 681/1125/143 679/1123/143 -f 659/1101/133 682/1126/133 661/1105/133 -f 367/730/135 366/729/135 680/1124/135 -f 652/1088/156 663/1107/156 662/1106/156 -f 645/1073/144 664/1108/144 681/1125/144 -f 638/1058/134 680/1124/134 682/1126/134 -f 683/1127/162 394/774/75 395/777/75 -f 395/777/75 396/780/75 683/1127/162 -f 396/780/75 391/769/75 397/781/160 -f 683/1127/162 396/780/75 397/781/160 -f 391/769/75 392/772/75 397/781/160 -f 397/781/160 390/768/127 389/766/161 -f 389/766/161 388/775/130 683/1127/162 -f 684/1378/167 685/1379/167 686/1380/167 -f 687/1381/168 688/1382/168 689/1383/168 -f 690/1384/169 685/1385/169 691/1386/169 -f 692/1387/170 691/1386/170 693/1388/170 -f 694/1389/171 692/1390/171 693/1388/171 -f 695/1391/169 696/1392/169 697/1393/169 -f 698/1394/172 694/1389/172 699/1395/172 -f 700/1396/173 701/1397/173 702/1398/173 -f 699/1395/168 703/1399/168 698/1394/168 -f 704/1400/174 702/1401/174 703/1399/174 -f 705/1402/175 684/1403/175 701/1404/175 -f 706/1405/82 707/1406/82 708/1407/82 -f 709/1408/98 710/1409/98 711/1410/98 -f 712/1411/96 713/1412/96 706/1413/96 -f 714/1414/176 715/1415/176 716/1416/176 -f 717/1417/177 718/1418/177 715/1419/177 -f 715/1420/178 719/1421/178 717/1422/179 -f 720/1423/180 721/1424/180 718/1418/180 -f 722/1425/181 723/1426/181 724/1427/181 -f 725/1428/182 726/1429/182 727/1430/182 -f 721/1424/183 728/1431/183 729/1432/183 -f 730/1433/184 731/1434/185 719/1435/186 -f 731/1436/181 729/1437/181 728/1438/181 -f 732/1439/82 733/1440/82 734/1441/82 -f 735/1442/98 736/1443/98 737/1444/98 -f 738/1445/81 734/1446/81 736/1447/81 -f 737/1448/79 734/1449/79 733/1450/79 -f 739/1451/96 738/1452/96 735/1453/96 -f 740/1454/187 741/1455/187 742/1456/187 -f 743/1457/188 744/1458/188 745/1459/188 -f 744/1460/189 746/1461/189 745/1462/189 -f 747/1463/190 746/1464/190 748/1465/190 -f 742/1466/191 743/1467/191 740/1468/191 -f 749/1469/98 747/1470/98 750/1471/98 -f 751/1472/192 752/1473/192 741/1455/192 -f 747/1474/193 753/1475/193 754/1476/193 -f 755/1477/194 749/1478/194 752/1479/194 -f 751/1480/82 740/1481/82 743/1482/82 -f 756/1483/96 757/1484/96 758/1485/96 -f 756/1486/195 759/1487/195 760/1488/195 -f 761/1489/196 762/1490/196 757/1491/196 -f 763/1492/197 759/1493/197 764/1494/197 -f 762/1495/198 765/1496/198 766/1497/198 -f 767/1498/199 765/1499/199 768/1500/199 -f 764/1501/200 769/1502/200 763/1503/200 -f 768/1504/201 770/1505/201 767/1506/201 -f 771/1507/202 772/1508/202 773/1509/202 -f 774/1510/203 775/1511/203 772/1512/203 -f 776/1513/204 777/1514/204 778/1515/204 -f 775/1516/98 767/1517/98 770/1518/98 -f 779/1519/205 773/1520/205 780/1521/205 -f 777/1522/82 768/1523/82 769/1524/82 -f 778/1525/206 781/1526/206 776/1527/206 -f 780/1528/207 782/1529/207 779/1530/207 -f 783/1531/208 784/1532/208 782/1533/208 -f 785/1534/209 786/1535/209 784/1536/209 -f 787/1537/210 788/1538/210 789/1539/210 -f 790/1540/98 791/1541/98 792/1542/98 -f 793/1543/79 794/1544/79 795/1545/79 -f 796/1546/211 793/1547/211 795/1548/211 -f 797/1549/212 798/1550/212 799/1551/212 -f 792/1552/213 796/1553/213 800/1554/213 -f 789/1555/82 797/1556/82 801/1557/82 -f 802/1558/214 790/1559/214 803/1560/214 -f 804/1561/212 803/1562/212 805/1563/212 -f 806/1564/213 807/1565/213 808/1566/213 -f 809/1567/211 810/1568/211 811/1569/211 -f 811/1570/79 810/1571/79 812/1572/79 -f 813/1573/79 795/1545/79 794/1574/79 -f 800/1575/215 805/1576/215 792/1577/215 -f 788/1578/214 798/1579/214 814/1580/214 -f 806/1581/215 801/1582/215 797/1583/215 -f 815/1584/210 791/1585/210 790/1586/210 -f 815/1587/82 804/1588/82 800/1589/82 -f 816/1590/216 807/1591/98 817/1592/217 -f 713/1593/75 709/1594/75 707/1595/75 -f 739/1596/75 737/1597/75 733/1598/75 -f 818/1599/82 715/1600/82 718/1601/82 -f 818/1599/82 721/1602/82 819/1603/82 -f 819/1603/82 729/1604/82 820/1605/82 -f 725/1428/82 715/1606/82 821/1607/82 -f 725/1428/82 822/1608/82 730/1609/82 -f 727/1430/98 729/1437/82 822/1608/82 -f 823/1610/82 824/1611/82 825/1612/82 -f 820/1605/183 826/1613/183 819/1603/183 -f 818/1599/177 825/1612/177 821/1614/177 -f 727/1430/181 823/1615/181 820/1616/181 -f 821/1607/218 824/1617/218 725/1428/218 -f 819/1603/180 827/1618/180 818/1599/180 -f 828/1619/98 717/1620/98 719/1621/98 -f 829/1622/98 830/1623/98 720/1624/98 -f 829/1625/98 717/1417/98 831/1626/98 -f 724/1427/82 719/1621/98 731/1627/98 -f 724/1427/82 728/1438/98 722/1425/98 -f 832/1628/98 728/1629/98 830/1623/98 -f 833/1630/98 834/1631/98 835/1632/98 -f 831/1633/177 836/1634/177 829/1622/177 -f 828/1619/179 833/1635/179 831/1636/179 -f 832/1628/183 835/1632/183 722/1637/183 -f 724/1427/219 834/1638/219 828/1619/219 -f 829/1622/180 837/1639/180 832/1628/180 -f 721/1424/220 827/1640/220 826/1641/220 -f 715/1642/221 827/1643/221 718/1644/221 -f 729/1645/222 826/1646/222 823/1647/222 -f 726/1648/223 729/1649/223 823/1650/223 -f 730/1651/224 822/1652/224 726/1653/224 -f 715/1654/225 726/1655/226 824/1656/227 -f 728/1431/228 837/1657/228 830/1658/228 -f 728/1659/229 723/1660/229 835/1661/229 -f 719/1662/230 723/1663/230 731/1664/230 -f 723/1665/231 705/1666/232 834/1667/233 -f 836/1668/234 705/1669/235 720/1670/236 -f 836/1671/237 830/1672/237 837/1673/237 -f 838/1674/82 701/1404/82 684/1403/82 -f 838/1674/82 686/1675/82 839/1676/82 -f 840/1677/82 692/1678/82 841/1679/82 -f 842/1680/82 692/1678/82 843/1681/82 -f 840/1677/82 686/1675/82 690/1682/82 -f 844/1683/82 701/1404/82 845/1684/82 -f 689/1383/82 703/1685/82 687/1381/82 -f 844/1683/82 703/1685/82 702/1686/82 -f 842/1680/82 698/1687/82 689/1383/82 -f 846/1688/82 847/1689/82 688/1690/82 -f 842/1680/171 848/1691/171 841/1679/171 -f 838/1674/175 849/1692/175 845/1684/175 -f 844/1683/174 850/1693/174 687/1381/174 -f 840/1677/169 847/1694/169 839/1676/169 -f 839/1676/167 846/1695/167 838/1674/167 -f 689/1383/172 851/1696/172 842/1680/172 -f 845/1684/173 852/1697/173 844/1683/173 -f 841/1679/170 853/1698/170 840/1677/170 -f 854/1699/98 705/1402/98 855/1700/98 -f 854/1699/98 685/1701/98 856/1702/98 -f 697/1393/98 693/1703/98 691/1704/98 -f 857/1705/98 693/1703/98 858/1706/98 -f 697/1393/98 685/1701/98 695/1391/98 -f 859/1707/98 705/1402/98 700/1708/98 -f 860/1709/98 704/1710/98 699/1711/98 -f 859/1707/98 704/1710/98 861/1712/98 -f 857/1705/98 699/1711/98 694/1713/98 -f 862/1714/98 863/1715/98 864/1716/98 -f 854/1699/167 864/1717/167 695/1391/167 -f 857/1705/172 862/1718/172 860/1709/172 -f 859/1707/173 865/1719/173 855/1700/173 -f 697/1393/170 863/1720/170 858/1706/170 -f 860/1709/168 866/1721/168 861/1712/168 -f 858/1706/171 867/1722/171 857/1705/171 -f 855/1700/175 868/1723/175 854/1699/175 -f 861/1712/174 869/1724/174 859/1707/174 -f 693/1388/238 696/1725/238 691/1386/238 -f 693/1726/239 867/1727/239 863/1728/239 -f 867/1729/240 699/1730/240 862/1731/240 -f 862/1732/241 704/1733/241 866/1734/241 -f 704/1733/242 869/1735/242 866/1734/242 -f 869/1735/243 705/1736/243 865/1737/243 -f 868/1738/244 705/1736/244 856/1739/244 -f 868/1738/245 685/1740/245 864/1741/245 -f 685/1740/246 696/1742/246 864/1741/246 -f 692/1390/247 851/1743/247 843/1744/247 -f 692/1745/248 853/1746/248 848/1747/248 -f 853/1746/249 686/1748/249 847/1749/249 -f 846/1750/250 686/1748/250 684/1751/250 -f 701/1752/251 846/1750/251 684/1751/251 -f 701/1752/252 852/1753/252 849/1754/252 -f 852/1753/253 703/1755/253 850/1756/253 -f 703/1755/254 688/1757/254 850/1756/254 -f 698/1758/255 851/1759/256 688/1757/255 -f 709/1760/176 708/1761/176 707/1762/176 -f 870/1763/257 706/1764/96 871/1765/257 -f 871/1766/82 708/1407/82 716/1767/82 -f 730/1768/82 716/1767/82 715/1769/82 -f 719/1770/258 871/1771/258 730/1772/258 -f 872/1773/176 716/1416/176 708/1761/176 -f 873/1774/259 874/1775/260 875/1776/260 -f 875/1777/261 872/1778/98 873/1779/98 -f 876/1780/98 870/1781/262 877/1782/263 -f 878/1783/98 879/1784/98 880/1785/264 -f 880/1786/265 881/1787/265 882/1788/265 -f 876/1789/266 878/1790/266 711/1791/266 -f 877/1792/79 883/1793/79 876/1789/79 -f 711/1791/266 884/1794/266 873/1774/266 -f 885/1795/267 879/1796/268 877/1792/269 -f 884/1797/98 880/1798/264 874/1799/270 -f 881/1787/271 886/1800/272 882/1788/273 -f 875/1776/274 886/1800/274 887/1801/274 -f 880/1786/264 886/1800/275 874/1775/270 -f 877/1802/263 870/1803/262 881/1804/276 -f 684/1378/167 856/1805/167 685/1379/167 -f 687/1381/168 850/1693/168 688/1382/168 -f 690/1384/169 686/1806/169 685/1385/169 -f 692/1387/170 690/1384/170 691/1386/170 -f 694/1389/171 843/1744/171 692/1390/171 -f 695/1391/169 864/1717/169 696/1392/169 -f 698/1394/172 843/1744/172 694/1389/172 -f 700/1396/173 705/1807/173 701/1397/173 -f 699/1395/168 704/1400/168 703/1399/168 -f 704/1400/174 700/1808/174 702/1401/174 -f 705/1402/175 856/1702/175 684/1403/175 -f 706/1405/82 713/1809/82 707/1406/82 -f 712/1810/98 876/1811/98 710/1812/98 -f 876/1811/98 711/1813/98 710/1812/98 -f 711/1813/98 873/1814/98 709/1815/98 -f 873/1814/98 872/1816/98 709/1815/98 -f 712/1411/96 710/1817/96 713/1412/96 -f 714/1414/176 717/1818/176 715/1415/176 -f 717/1417/177 720/1423/177 718/1418/177 -f 715/1420/178 730/1819/277 719/1421/178 -f 720/1423/180 830/1658/180 721/1424/180 -f 722/1425/181 835/1820/181 723/1426/181 -f 725/1428/182 824/1617/182 726/1429/182 -f 721/1424/183 830/1658/183 728/1431/183 -f 730/1433/184 822/1821/278 731/1434/185 -f 731/1436/181 822/1608/181 729/1437/181 -f 732/1439/82 739/1822/82 733/1440/82 -f 735/1442/98 738/1823/98 736/1443/98 -f 738/1445/81 732/1824/81 734/1446/81 -f 737/1448/79 736/1825/79 734/1449/79 -f 739/1451/96 732/1826/96 738/1452/96 -f 740/1454/187 751/1472/187 741/1455/187 -f 743/1457/188 750/1827/188 744/1458/188 -f 744/1460/189 748/1828/189 746/1461/189 -f 747/1463/190 754/1829/190 746/1464/190 -f 742/1466/191 750/1830/191 743/1467/191 -f 748/1831/98 744/1832/98 750/1471/98 -f 750/1471/98 742/1833/98 741/1834/98 -f 741/1834/98 752/1835/98 749/1469/98 -f 747/1470/98 748/1831/98 750/1471/98 -f 741/1834/98 749/1469/98 750/1471/98 -f 751/1472/192 755/1836/192 752/1473/192 -f 747/1474/193 749/1837/193 753/1475/193 -f 755/1477/194 753/1838/194 749/1478/194 -f 745/1839/82 746/1840/82 743/1482/82 -f 746/1840/82 754/1841/82 743/1482/82 -f 754/1841/82 753/1842/82 743/1482/82 -f 753/1842/82 755/1843/82 751/1480/82 -f 743/1482/82 753/1842/82 751/1480/82 -f 756/1483/96 761/1844/96 757/1484/96 -f 756/1486/195 758/1845/195 759/1487/195 -f 761/1489/196 888/1846/196 762/1490/196 -f 763/1492/197 760/1847/197 759/1493/197 -f 762/1495/198 888/1848/198 765/1496/198 -f 767/1498/199 766/1849/199 765/1499/199 -f 764/1501/200 775/1850/200 769/1502/200 -f 768/1504/201 777/1851/201 770/1505/201 -f 771/1507/202 774/1852/202 772/1508/202 -f 774/1510/203 769/1853/203 775/1511/203 -f 776/1513/204 770/1854/204 777/1514/204 -f 773/1855/98 772/1856/98 776/1857/98 -f 772/1856/98 775/1516/98 770/1518/98 -f 775/1516/98 764/1858/98 767/1517/98 -f 764/1858/98 759/1859/98 767/1517/98 -f 759/1859/98 758/1860/98 757/1861/98 -f 759/1859/98 757/1861/98 762/1862/98 -f 785/1863/98 783/1864/98 781/1865/98 -f 783/1864/98 780/1866/98 781/1865/98 -f 759/1859/98 762/1862/98 766/1867/98 -f 759/1859/98 766/1867/98 767/1517/98 -f 781/1865/98 780/1866/98 773/1855/98 -f 776/1857/98 781/1865/98 773/1855/98 -f 770/1518/98 776/1857/98 772/1856/98 -f 779/1519/205 771/1868/205 773/1520/205 -f 779/1869/82 782/1870/82 786/1871/82 -f 782/1870/82 784/1872/82 786/1871/82 -f 769/1524/82 774/1873/82 777/1522/82 -f 774/1873/82 771/1874/82 778/1875/82 -f 760/1876/82 763/1877/82 768/1523/82 -f 763/1877/82 769/1524/82 768/1523/82 -f 761/1878/82 756/1879/82 760/1876/82 -f 888/1880/82 761/1878/82 760/1876/82 -f 771/1874/82 779/1869/82 786/1871/82 -f 771/1874/82 786/1871/82 778/1875/82 -f 765/1881/82 888/1880/82 760/1876/82 -f 768/1523/82 765/1881/82 760/1876/82 -f 774/1873/82 778/1875/82 777/1522/82 -f 778/1525/206 786/1882/206 781/1526/206 -f 780/1528/207 783/1883/207 782/1529/207 -f 783/1531/208 785/1884/208 784/1532/208 -f 785/1534/209 781/1885/209 786/1535/209 -f 787/1537/210 812/1886/210 788/1538/210 -f 791/1541/98 793/1887/98 792/1542/98 -f 793/1887/98 889/1888/98 792/1542/98 -f 792/1542/98 805/1889/98 790/1540/98 -f 805/1889/98 803/1890/98 790/1540/98 -f 793/1543/79 791/1891/79 794/1544/79 -f 796/1546/211 889/1892/211 793/1547/211 -f 797/1549/212 814/1893/212 798/1550/212 -f 792/1552/213 889/1894/213 796/1553/213 -f 811/1895/82 787/1896/82 801/1557/82 -f 787/1896/82 789/1555/82 801/1557/82 -f 789/1555/82 814/1897/82 797/1556/82 -f 801/1557/82 809/1898/82 811/1895/82 -f 802/1558/214 815/1899/214 790/1559/214 -f 804/1561/212 802/1900/212 803/1562/212 -f 808/1566/213 809/1901/213 801/1902/213 -f 806/1564/213 817/1903/213 807/1565/213 -f 808/1566/213 801/1902/213 806/1564/213 -f 809/1567/211 808/1904/211 810/1568/211 -f 812/1572/79 787/1905/79 811/1570/79 -f 810/1571/79 816/1906/79 812/1572/79 -f 800/1575/215 804/1907/215 805/1576/215 -f 814/1580/214 789/1908/214 788/1578/214 -f 788/1578/214 890/1909/214 798/1579/214 -f 797/1583/215 799/1910/215 806/1581/215 -f 799/1910/215 891/1911/215 806/1581/215 -f 891/1911/215 817/1912/215 806/1581/215 -f 815/1584/210 794/1913/210 791/1585/210 -f 795/1914/82 794/1915/82 800/1589/82 -f 794/1915/82 815/1587/82 800/1589/82 -f 815/1587/82 802/1916/82 804/1588/82 -f 800/1589/82 796/1917/82 795/1914/82 -f 817/1592/217 891/1918/279 788/1919/280 -f 891/1918/279 890/1920/281 788/1919/280 -f 788/1919/280 812/1921/282 817/1592/217 -f 812/1921/282 816/1590/216 817/1592/217 -f 713/1593/75 710/1922/75 709/1594/75 -f 739/1596/75 735/1923/75 737/1597/75 -f 818/1599/82 821/1614/82 715/1600/82 -f 818/1924/82 718/1418/82 721/1424/82 -f 819/1603/82 721/1602/82 729/1604/82 -f 725/1428/82 730/1609/82 715/1606/82 -f 725/1428/82 727/1430/98 822/1608/82 -f 727/1430/98 820/1616/82 729/1437/82 -f 825/1925/82 827/1640/82 826/1641/82 -f 823/1610/82 726/1926/82 824/1611/82 -f 825/1925/82 826/1641/82 823/1927/82 -f 820/1605/183 823/1610/183 826/1613/183 -f 818/1599/177 827/1618/177 825/1612/177 -f 727/1430/181 726/1429/181 823/1615/181 -f 821/1607/218 825/1928/218 824/1617/218 -f 819/1929/180 826/1641/180 827/1640/180 -f 828/1619/98 831/1636/98 717/1620/98 -f 829/1622/98 832/1628/98 830/1623/98 -f 829/1625/98 720/1423/98 717/1417/98 -f 724/1427/82 828/1619/98 719/1621/98 -f 724/1427/82 731/1627/98 728/1438/98 -f 832/1628/98 722/1637/98 728/1629/98 -f 834/1631/98 723/1930/98 835/1632/98 -f 835/1931/98 837/1657/98 833/1932/98 -f 837/1657/98 836/1933/98 833/1932/98 -f 831/1626/177 833/1932/177 836/1933/177 -f 828/1619/179 834/1638/179 833/1635/179 -f 832/1628/183 837/1639/183 835/1632/183 -f 724/1427/219 723/1426/219 834/1638/219 -f 829/1622/180 836/1634/180 837/1639/180 -f 721/1424/220 718/1418/220 827/1640/220 -f 715/1642/221 825/1934/221 827/1643/221 -f 729/1645/222 721/1935/222 826/1646/222 -f 726/1648/223 822/1936/223 729/1649/223 -f 824/1656/227 825/1937/283 715/1654/225 -f 715/1654/225 730/1938/284 726/1655/226 -f 728/1431/228 835/1931/228 837/1657/228 -f 728/1659/229 731/1939/229 723/1660/229 -f 719/1940/285 705/1666/232 723/1665/231 -f 705/1666/232 833/1941/286 834/1667/233 -f 836/1668/234 833/1942/287 705/1669/235 -f 836/1668/288 720/1670/288 830/1943/288 -f 838/1674/82 845/1684/82 701/1404/82 -f 838/1674/82 684/1403/82 686/1675/82 -f 840/1677/82 690/1682/82 692/1678/82 -f 842/1680/82 841/1679/82 692/1678/82 -f 840/1677/82 839/1676/82 686/1675/82 -f 844/1683/82 702/1686/82 701/1404/82 -f 689/1383/82 698/1687/82 703/1685/82 -f 844/1683/82 687/1381/82 703/1685/82 -f 842/1680/82 843/1681/82 698/1687/82 -f 848/1944/82 851/1743/82 688/1690/82 -f 850/1945/82 852/1946/82 849/1947/82 -f 853/1948/82 848/1944/82 847/1689/82 -f 848/1944/82 688/1690/82 847/1689/82 -f 688/1690/82 850/1945/82 846/1688/82 -f 850/1945/82 849/1947/82 846/1688/82 -f 842/1680/171 851/1696/171 848/1691/171 -f 838/1674/175 846/1695/175 849/1692/175 -f 844/1683/174 852/1697/174 850/1693/174 -f 840/1677/169 853/1698/169 847/1694/169 -f 839/1676/167 847/1694/167 846/1695/167 -f 689/1383/172 688/1382/172 851/1696/172 -f 845/1684/173 849/1692/173 852/1697/173 -f 841/1679/170 848/1691/170 853/1698/170 -f 854/1699/98 856/1702/98 705/1402/98 -f 854/1699/98 695/1391/98 685/1701/98 -f 697/1393/98 858/1706/98 693/1703/98 -f 857/1705/98 694/1713/98 693/1703/98 -f 697/1393/98 691/1704/98 685/1701/98 -f 859/1707/98 855/1700/98 705/1402/98 -f 860/1709/98 861/1712/98 704/1710/98 -f 859/1707/98 700/1708/98 704/1710/98 -f 857/1705/98 860/1709/98 699/1711/98 -f 863/1715/98 696/1725/98 864/1716/98 -f 864/1716/98 868/1949/98 862/1714/98 -f 868/1949/98 865/1950/98 866/1951/98 -f 862/1714/98 868/1949/98 866/1951/98 -f 865/1950/98 869/1952/98 866/1951/98 -f 862/1714/98 867/1953/98 863/1715/98 -f 854/1699/167 868/1723/167 864/1717/167 -f 857/1705/172 867/1722/172 862/1718/172 -f 859/1707/173 869/1724/173 865/1719/173 -f 697/1393/170 696/1392/170 863/1720/170 -f 860/1709/168 862/1718/168 866/1721/168 -f 858/1706/171 863/1720/171 867/1722/171 -f 855/1700/175 865/1719/175 868/1723/175 -f 861/1712/174 866/1721/174 869/1724/174 -f 693/1388/238 863/1715/238 696/1725/238 -f 693/1726/239 694/1954/239 867/1727/239 -f 867/1729/240 694/1955/240 699/1730/240 -f 862/1732/241 699/1956/241 704/1733/241 -f 704/1733/242 700/1957/242 869/1735/242 -f 869/1735/243 700/1957/243 705/1736/243 -f 868/1738/244 865/1737/244 705/1736/244 -f 868/1738/245 856/1739/245 685/1740/245 -f 685/1740/246 691/1958/246 696/1742/246 -f 692/1390/247 848/1944/247 851/1743/247 -f 692/1745/248 690/1959/248 853/1746/248 -f 853/1746/249 690/1959/249 686/1748/249 -f 846/1750/250 847/1749/250 686/1748/250 -f 701/1752/251 849/1754/251 846/1750/251 -f 701/1752/252 702/1960/252 852/1753/252 -f 852/1753/253 702/1960/253 703/1755/253 -f 703/1755/254 698/1758/254 688/1757/254 -f 698/1758/255 843/1961/256 851/1759/256 -f 709/1760/176 872/1773/176 708/1761/176 -f 870/1763/257 712/1962/96 706/1764/96 -f 871/1766/82 706/1405/82 708/1407/82 -f 730/1768/82 871/1766/82 716/1767/82 -f 719/1770/257 870/1963/257 871/1771/257 -f 872/1773/176 714/1414/176 716/1416/176 -f 873/1774/259 884/1794/259 874/1775/260 -f 875/1964/261 714/1965/289 872/1966/98 -f 876/1967/98 712/1968/98 870/1969/262 -f 878/1783/98 883/1970/98 879/1784/98 -f 880/1786/265 885/1795/265 881/1787/265 -f 876/1789/266 883/1793/266 878/1790/266 -f 877/1792/79 879/1796/79 883/1793/79 -f 711/1791/266 878/1790/266 884/1794/266 -f 885/1795/267 880/1786/290 879/1796/268 -f 884/1797/98 878/1971/98 880/1798/264 -f 881/1787/271 887/1801/291 886/1800/272 -f 875/1776/274 874/1775/274 886/1800/274 -f 880/1786/264 882/1788/275 886/1800/275 -f 717/1972/292 714/1973/289 887/1974/293 -f 714/1973/289 875/1975/261 887/1974/293 -f 870/1803/262 719/1976/294 881/1804/276 -f 719/1976/294 717/1972/292 887/1974/293 -f 881/1804/276 719/1976/294 887/1974/293 -f 885/1977/295 877/1802/263 881/1804/276 -f 892/1978/296 893/1979/296 894/1980/296 -f 895/1981/297 896/1982/297 893/1979/297 -f 897/1983/298 898/1984/298 896/1982/298 -f 899/1985/299 900/1986/299 898/1984/299 -f 901/1987/300 902/1988/300 900/1986/300 -f 903/1989/301 904/1990/301 902/1988/301 -f 905/1991/302 906/1992/302 904/1990/302 -f 907/1993/303 908/1994/303 906/1992/303 -f 909/1995/304 910/1996/304 908/1994/304 -f 911/1997/305 912/1998/305 910/1996/305 -f 913/1999/306 914/2000/306 912/1998/306 -f 915/2001/307 916/2002/307 914/2000/307 -f 917/2003/308 918/2004/308 916/2002/308 -f 919/2005/309 920/2006/309 918/2004/309 -f 921/2007/310 922/2008/310 920/2006/310 -f 923/2009/311 924/2010/311 922/2008/311 -f 925/2011/312 926/2012/312 924/2010/312 -f 927/2013/313 928/2014/313 926/2012/313 -f 929/2015/314 930/2016/314 928/2014/314 -f 931/2017/315 932/2018/315 930/2016/315 -f 933/2019/316 934/2020/316 932/2018/316 -f 935/2021/317 936/2022/317 934/2020/317 -f 937/2023/318 938/2024/318 936/2022/318 -f 939/2025/319 940/2026/319 938/2024/319 -f 941/2027/312 942/2028/312 943/2029/312 -f 941/2027/75 895/2030/75 892/2031/75 -f 943/2029/75 897/2032/75 895/2030/75 -f 944/2033/75 897/2032/75 945/2034/75 -f 946/2035/75 899/2036/75 944/2033/75 -f 946/2035/75 903/2037/75 901/2038/75 -f 947/2039/75 905/2040/75 903/2037/75 -f 948/2041/75 905/2040/75 949/2042/75 -f 950/2043/75 907/2044/75 948/2041/75 -f 950/2043/75 911/2045/75 909/2046/75 -f 951/2047/75 913/2048/75 911/2045/75 -f 952/2049/75 913/2048/75 953/2050/75 -f 954/2051/75 915/2052/75 952/2049/75 -f 954/2051/75 919/2053/75 917/2054/75 -f 955/2055/75 921/2056/75 919/2053/75 -f 956/2057/75 921/2056/75 957/2058/75 -f 958/2059/75 923/2060/75 956/2057/75 -f 958/2059/75 927/2061/75 925/2062/75 -f 959/2063/75 929/2064/75 927/2061/75 -f 960/2065/75 929/2064/75 961/2066/75 -f 962/2067/75 931/2068/75 960/2065/75 -f 962/2067/75 935/2069/75 933/2070/75 -f 963/2071/75 937/2072/75 935/2069/75 -f 964/2073/75 939/2074/75 937/2072/75 -f 965/2075/75 966/2076/75 939/2074/75 -f 967/2077/307 968/2078/307 969/2079/307 -f 957/2058/320 970/2080/320 956/2057/320 -f 943/2029/313 971/2081/313 945/2034/313 -f 956/2057/321 972/2082/321 958/2059/321 -f 945/2034/314 973/2083/314 944/2033/314 -f 958/2059/296 974/2084/296 959/2063/296 -f 944/2033/315 975/2085/315 946/2035/315 -f 959/2063/297 976/2086/297 961/2066/297 -f 946/2035/316 977/2087/316 947/2039/316 -f 961/2066/298 978/2088/298 960/2065/298 -f 947/2039/317 979/2089/317 949/2042/317 -f 960/2065/299 980/2090/299 962/2067/299 -f 949/2042/318 981/2091/318 948/2041/318 -f 962/2067/300 982/2092/300 963/2071/300 -f 948/2041/319 983/2093/319 950/2043/319 -f 963/2071/301 984/2094/301 964/2073/301 -f 950/2043/322 985/2095/322 951/2047/322 -f 964/2073/302 986/2096/302 965/2075/302 -f 951/2047/323 987/2097/323 953/2050/323 -f 969/2079/308 988/2098/308 989/2099/308 -f 965/2075/303 990/2100/303 991/2101/303 -f 953/2050/324 992/2102/324 952/2049/324 -f 989/2099/309 993/2103/309 994/2104/309 -f 991/2101/304 995/2105/304 996/2106/304 -f 952/2049/325 997/2107/325 954/2051/325 -f 994/2104/310 998/2108/310 999/2109/310 -f 996/2106/305 1000/2110/305 1001/2111/305 -f 954/2051/326 1002/2112/326 955/2055/326 -f 999/2109/311 1003/2113/311 941/2027/311 -f 1001/2111/306 1004/2114/306 967/2077/306 -f 955/2055/327 1005/2115/327 957/2058/327 -f 1006/2116/81 894/2117/328 893/2118/81 -f 1006/2116/81 896/2119/81 1007/2120/81 -f 1008/2121/81 896/2119/81 898/2122/81 -f 1008/2121/81 900/2123/81 1009/2124/81 -f 1010/2125/81 900/2123/81 902/2126/81 -f 1010/2125/81 904/2127/81 1011/2128/81 -f 1011/2128/81 906/2129/81 1012/2130/81 -f 1012/2130/81 908/2131/81 1013/2132/81 -f 1014/2133/81 908/2131/81 910/2134/81 -f 1014/2133/81 912/2135/81 1015/2136/81 -f 1016/2137/81 912/2135/81 914/2138/81 -f 1016/2137/81 916/2139/81 1017/2140/81 -f 1018/2141/81 916/2139/81 918/2142/81 -f 1018/2141/81 920/2143/81 1019/2144/81 -f 1020/2145/81 920/2143/81 922/2146/81 -f 1020/2145/81 924/2147/81 1021/2148/81 -f 1022/2149/81 924/2147/81 926/2150/81 -f 1022/2149/81 928/2151/81 1023/2152/81 -f 1024/2153/81 928/2151/81 930/2154/81 -f 1024/2153/81 932/2155/81 1025/2156/81 -f 1026/2157/81 932/2155/81 934/2158/81 -f 1026/2157/81 936/2159/81 1027/2160/81 -f 1028/2161/81 936/2159/81 938/2162/81 -f 1028/2161/81 940/2163/329 1029/2164/81 -f 1030/2165/82 1031/2166/82 1032/2167/82 -f 1033/2168/75 1034/2169/75 1031/2166/75 -f 1035/2170/98 1036/2171/98 1034/2169/98 -f 1037/2172/81 1032/2173/81 1036/2171/81 -f 1034/2169/79 1032/2174/79 1031/2175/79 -f 892/1978/330 1038/2176/331 1039/2177/330 -f 940/2026/332 1040/2178/322 1041/2179/322 -f 989/2099/75 1042/2180/75 969/2079/75 -f 994/2104/75 1043/2181/75 989/2099/75 -f 999/2109/75 1044/2182/75 994/2104/75 -f 941/2027/75 1039/2183/75 1045/2184/75 -f 991/2101/75 1046/2185/75 1040/2186/75 -f 996/2106/75 1047/2187/75 1046/2185/75 -f 1001/2111/75 1048/2188/75 1047/2187/75 -f 967/2077/75 1042/2180/75 1048/2188/75 -f 1049/2189/81 1050/2190/81 1051/2191/81 -f 1052/2192/81 1051/2191/81 1053/2193/81 -f 1054/2194/81 1053/2193/81 1055/2195/81 -f 1056/2196/81 1054/2194/81 1055/2195/81 -f 1029/2164/81 940/2163/329 1041/2197/333 -f 1057/2198/81 1058/2199/81 1059/2200/81 -f 1060/2201/81 1061/2202/81 1057/2198/81 -f 1050/2190/81 1062/2203/81 1060/2201/81 -f 1038/2204/96 1037/2172/96 1035/2170/96 -f 1033/2205/96 1041/2206/96 1040/2207/96 -f 892/1978/296 895/1981/296 893/1979/296 -f 895/1981/297 897/1983/297 896/1982/297 -f 897/1983/298 899/1985/298 898/1984/298 -f 899/1985/299 901/1987/299 900/1986/299 -f 901/1987/300 903/1989/300 902/1988/300 -f 903/1989/301 905/1991/301 904/1990/301 -f 905/1991/302 907/1993/302 906/1992/302 -f 907/1993/303 909/1995/303 908/1994/303 -f 909/1995/304 911/1997/304 910/1996/304 -f 911/1997/305 913/1999/305 912/1998/305 -f 913/1999/306 915/2001/306 914/2000/306 -f 915/2001/307 917/2003/307 916/2002/307 -f 917/2003/308 919/2005/308 918/2004/308 -f 919/2005/309 921/2007/309 920/2006/309 -f 921/2007/310 923/2009/310 922/2008/310 -f 923/2009/311 925/2011/311 924/2010/311 -f 925/2011/312 927/2013/312 926/2012/312 -f 927/2013/313 929/2015/313 928/2014/313 -f 929/2015/314 931/2017/314 930/2016/314 -f 931/2017/315 933/2019/315 932/2018/315 -f 933/2019/316 935/2021/316 934/2020/316 -f 935/2021/317 937/2023/317 936/2022/317 -f 937/2023/318 939/2025/318 938/2024/318 -f 939/2025/319 966/2208/319 940/2026/319 -f 941/2027/312 1003/2113/312 942/2028/312 -f 941/2027/75 943/2029/75 895/2030/75 -f 943/2029/75 945/2034/75 897/2032/75 -f 944/2033/75 899/2036/75 897/2032/75 -f 946/2035/75 901/2038/75 899/2036/75 -f 946/2035/75 947/2039/75 903/2037/75 -f 947/2039/75 949/2042/75 905/2040/75 -f 948/2041/75 907/2044/75 905/2040/75 -f 950/2043/75 909/2046/75 907/2044/75 -f 950/2043/75 951/2047/75 911/2045/75 -f 951/2047/75 953/2050/75 913/2048/75 -f 952/2049/75 915/2052/75 913/2048/75 -f 954/2051/75 917/2054/75 915/2052/75 -f 954/2051/75 955/2055/75 919/2053/75 -f 955/2055/75 957/2058/75 921/2056/75 -f 956/2057/75 923/2060/75 921/2056/75 -f 958/2059/75 925/2062/75 923/2060/75 -f 958/2059/75 959/2063/75 927/2061/75 -f 959/2063/75 961/2066/75 929/2064/75 -f 960/2065/75 931/2068/75 929/2064/75 -f 962/2067/75 933/2070/75 931/2068/75 -f 962/2067/75 963/2071/75 935/2069/75 -f 963/2071/75 964/2073/75 937/2072/75 -f 964/2073/75 965/2075/75 939/2074/75 -f 965/2075/75 991/2101/75 966/2076/75 -f 967/2077/307 1004/2114/307 968/2078/307 -f 957/2058/320 1005/2115/320 970/2080/320 -f 943/2029/313 942/2028/313 971/2081/313 -f 956/2057/321 970/2080/321 972/2082/321 -f 945/2034/314 971/2081/314 973/2083/314 -f 958/2059/296 972/2082/296 974/2084/296 -f 944/2033/315 973/2083/315 975/2085/315 -f 959/2063/297 974/2084/297 976/2086/297 -f 946/2035/316 975/2085/316 977/2087/316 -f 961/2066/298 976/2086/298 978/2088/298 -f 947/2039/317 977/2087/317 979/2089/317 -f 960/2065/299 978/2088/299 980/2090/299 -f 949/2042/318 979/2089/318 981/2091/318 -f 962/2067/300 980/2090/300 982/2092/300 -f 948/2041/319 981/2091/319 983/2093/319 -f 963/2071/301 982/2092/301 984/2094/301 -f 950/2043/322 983/2093/322 985/2095/322 -f 964/2073/302 984/2094/302 986/2096/302 -f 951/2047/323 985/2095/323 987/2097/323 -f 969/2079/308 968/2078/308 988/2098/308 -f 965/2075/303 986/2096/303 990/2100/303 -f 953/2050/324 987/2097/324 992/2102/324 -f 989/2099/309 988/2098/309 993/2103/309 -f 991/2101/304 990/2100/304 995/2105/304 -f 952/2049/325 992/2102/325 997/2107/325 -f 994/2104/310 993/2103/310 998/2108/310 -f 996/2106/305 995/2105/305 1000/2110/305 -f 954/2051/326 997/2107/326 1002/2112/326 -f 999/2109/311 998/2108/311 1003/2113/311 -f 1001/2111/306 1000/2110/306 1004/2114/306 -f 955/2055/327 1002/2112/327 1005/2115/327 -f 1006/2116/81 1056/2196/81 894/2117/328 -f 1006/2116/81 893/2118/81 896/2119/81 -f 1008/2121/81 1007/2120/81 896/2119/81 -f 1008/2121/81 898/2122/81 900/2123/81 -f 1010/2125/81 1009/2124/81 900/2123/81 -f 1010/2125/81 902/2126/81 904/2127/81 -f 1011/2128/81 904/2127/81 906/2129/81 -f 1012/2130/81 906/2129/81 908/2131/81 -f 1014/2133/81 1013/2132/81 908/2131/81 -f 1014/2133/81 910/2134/81 912/2135/81 -f 1016/2137/81 1015/2136/81 912/2135/81 -f 1016/2137/81 914/2138/81 916/2139/81 -f 1018/2141/81 1017/2140/81 916/2139/81 -f 1018/2141/81 918/2142/81 920/2143/81 -f 1020/2145/81 1019/2144/81 920/2143/81 -f 1020/2145/81 922/2146/81 924/2147/81 -f 1022/2149/81 1021/2148/81 924/2147/81 -f 1022/2149/81 926/2150/81 928/2151/81 -f 1024/2153/81 1023/2152/81 928/2151/81 -f 1024/2153/81 930/2154/81 932/2155/81 -f 1026/2157/81 1025/2156/81 932/2155/81 -f 1026/2157/81 934/2158/81 936/2159/81 -f 1028/2161/81 1027/2160/81 936/2159/81 -f 1028/2161/81 938/2162/81 940/2163/329 -f 1030/2165/82 1033/2168/82 1031/2166/82 -f 1033/2168/75 1035/2170/75 1034/2169/75 -f 1035/2170/98 1037/2172/98 1036/2171/98 -f 1037/2172/81 1030/2209/81 1032/2173/81 -f 1034/2169/79 1036/2171/79 1032/2174/79 -f 892/1978/330 894/1980/334 1038/2176/331 -f 940/2026/332 966/2208/322 1040/2178/322 -f 989/2099/75 1043/2181/75 1042/2180/75 -f 994/2104/75 1044/2182/75 1043/2181/75 -f 999/2109/75 1045/2184/75 1044/2182/75 -f 1045/2184/75 999/2109/75 941/2027/75 -f 941/2027/75 892/2031/75 1039/2183/75 -f 1040/2186/75 966/2076/75 991/2101/75 -f 991/2101/75 996/2106/75 1046/2185/75 -f 996/2106/75 1001/2111/75 1047/2187/75 -f 1001/2111/75 967/2077/75 1048/2188/75 -f 967/2077/75 969/2079/75 1042/2180/75 -f 1049/2189/81 1063/2210/81 1050/2190/81 -f 1052/2192/81 1049/2189/81 1051/2191/81 -f 1054/2194/81 1052/2192/81 1053/2193/81 -f 1055/2195/81 1038/2211/335 1056/2196/81 -f 1038/2211/335 894/2117/328 1056/2196/81 -f 1041/2197/333 1059/2200/81 1029/2164/81 -f 1059/2200/81 1058/2199/81 1029/2164/81 -f 1057/2198/81 1061/2202/81 1058/2199/81 -f 1060/2201/81 1062/2203/81 1061/2202/81 -f 1050/2190/81 1063/2210/81 1062/2203/81 -f 1059/2212/96 1041/2206/96 1030/2213/96 -f 1035/2170/96 1033/2205/96 1042/2214/96 -f 1033/2205/96 1040/2207/96 1046/2215/96 -f 1046/2215/96 1047/2216/96 1033/2205/96 -f 1047/2216/96 1048/2217/96 1033/2205/96 -f 1033/2205/96 1048/2217/96 1042/2214/96 -f 1059/2212/96 1030/2213/96 1057/2218/96 -f 1030/2213/96 1037/2172/96 1050/2219/96 -f 1057/2218/96 1030/2213/96 1060/2220/96 -f 1050/2219/96 1060/2220/96 1030/2213/96 -f 1042/2214/96 1043/2221/96 1035/2170/96 -f 1043/2221/96 1044/2222/96 1035/2170/96 -f 1055/2223/96 1053/2224/96 1037/2172/96 -f 1053/2224/96 1051/2225/96 1037/2172/96 -f 1051/2225/96 1050/2219/96 1037/2172/96 -f 1044/2222/96 1045/2226/96 1035/2170/96 -f 1045/2226/96 1039/2227/96 1035/2170/96 -f 1038/2204/96 1055/2223/96 1037/2172/96 -f 1039/2227/96 1038/2204/96 1035/2170/96 -f 1033/2205/96 1030/2213/96 1041/2206/96 -f 1064/2228/336 1065/2229/336 1066/2230/336 -f 1065/2229/337 1067/2231/337 1066/2230/337 -f 1068/2232/338 1069/2233/338 1067/2231/338 -f 1070/2234/339 1064/2235/339 1069/2233/339 -f 1067/2231/79 1064/2236/79 1066/2237/79 -f 1065/2238/96 1070/2234/96 1068/2232/96 -f 1071/2239/340 1072/2240/340 1073/2241/340 -f 1072/2240/341 1074/2242/341 1073/2241/341 -f 1075/2243/342 1076/2244/342 1074/2242/342 -f 1077/2245/343 1071/2246/344 1076/2247/344 -f 1078/2248/79 1079/2249/79 1080/2250/79 -f 1072/2251/96 1077/2252/96 1075/2243/96 -f 1076/2244/344 1079/2253/344 1081/2254/344 -f 1074/2242/342 1081/2254/342 1078/2248/342 -f 1073/2241/341 1078/2248/341 1080/2255/341 -f 1079/2256/340 1073/2241/340 1080/2255/340 -f 1082/2257/345 1083/2258/345 1084/2259/345 -f 1084/2259/346 1085/2260/346 1086/2261/346 -f 1085/2260/347 1087/2262/347 1086/2261/348 -f 1088/2263/349 1082/2264/349 1087/2262/349 -f 1086/2261/350 1082/2265/350 1084/2266/350 -f 1083/2267/351 1088/2263/351 1085/2260/351 -f 1089/2268/352 1090/2269/352 1091/2270/352 -f 1090/2269/353 1092/2271/353 1091/2270/353 -f 1093/2272/354 1094/2273/354 1092/2271/354 -f 1095/2274/355 1089/2275/355 1094/2273/355 -f 1092/2271/356 1089/2276/356 1091/2277/356 -f 1090/2278/357 1095/2274/357 1093/2272/357 -f 1064/2228/336 1096/2279/336 1065/2229/336 -f 1065/2229/337 1068/2232/337 1067/2231/337 -f 1068/2232/338 1070/2234/338 1069/2233/338 -f 1070/2234/339 1096/2280/339 1064/2235/339 -f 1067/2231/79 1069/2233/79 1064/2236/79 -f 1065/2238/96 1096/2281/96 1070/2234/96 -f 1071/2239/340 1097/2282/340 1072/2240/340 -f 1072/2240/341 1075/2243/341 1074/2242/341 -f 1075/2243/342 1077/2252/342 1076/2244/342 -f 1077/2245/343 1097/2283/343 1071/2246/344 -f 1078/2248/79 1081/2254/79 1079/2249/79 -f 1072/2251/96 1097/2284/96 1077/2252/96 -f 1076/2244/344 1071/2285/344 1079/2253/344 -f 1074/2242/342 1076/2244/342 1081/2254/342 -f 1073/2241/341 1074/2242/341 1078/2248/341 -f 1079/2256/340 1071/2239/340 1073/2241/340 -f 1082/2257/345 1098/2286/345 1083/2258/345 -f 1084/2259/346 1083/2258/346 1085/2260/346 -f 1085/2260/347 1088/2263/347 1087/2262/347 -f 1088/2263/349 1098/2287/349 1082/2264/349 -f 1086/2261/350 1087/2262/350 1082/2265/350 -f 1083/2267/351 1098/2288/351 1088/2263/351 -f 1089/2268/352 1099/2289/352 1090/2269/352 -f 1090/2269/353 1093/2272/353 1092/2271/353 -f 1093/2272/354 1095/2274/354 1094/2273/354 -f 1095/2274/355 1099/2290/355 1089/2275/355 -f 1092/2271/356 1094/2273/356 1089/2276/356 -f 1090/2278/357 1099/2291/357 1095/2274/357 +f 1/1/1 2/2/2 3/3/3 +f 1/4/4 4/5/5 2/2/6 +f 5/6/2 6/7/2 7/8/2 +f 6/7/7 8/9/7 7/8/7 +f 8/9/8 9/10/8 10/11/8 +f 7/8/6 10/12/6 5/13/6 +f 5/14/9 6/7/9 9/10/9 +f 10/15/10 11/16/11 12/17/12 +f 3/18/13 9/10/13 6/7/13 +f 2/2/14 11/19/14 3/3/14 +f 12/17/15 11/19/15 4/5/15 +f 13/20/16 12/21/16 1/22/16 +f 6/7/17 1/23/1 3/24/3 +f 10/15/18 12/21/19 13/25/20 +f 12/26/21 13/27/22 11/28/23 +f 14/29/2 15/30/2 16/31/2 +f 15/30/24 17/32/24 16/31/24 +f 17/32/8 18/33/8 19/34/8 +f 14/35/25 17/32/25 19/36/25 +f 14/37/26 18/33/26 15/30/26 +f 20/38/2 21/39/2 22/40/2 +f 21/39/27 23/41/27 22/40/27 +f 23/41/8 24/42/8 25/43/8 +f 22/40/26 25/44/26 20/45/26 +f 20/46/9 24/42/9 21/39/9 +f 26/47/1 27/48/2 28/49/3 +f 26/50/4 29/51/5 27/48/6 +f 30/52/2 31/53/2 32/54/2 +f 31/53/7 33/55/7 32/54/7 +f 33/55/8 34/56/8 35/57/8 +f 32/54/6 35/58/6 30/59/6 +f 30/60/9 31/53/9 34/56/9 +f 35/61/10 36/62/11 37/63/12 +f 28/64/13 34/56/13 31/53/13 +f 27/48/14 36/65/14 28/49/14 +f 37/63/15 36/65/15 29/51/15 +f 38/66/16 37/67/16 26/68/16 +f 31/53/17 26/69/1 28/70/3 +f 35/61/18 37/67/28 38/71/29 +f 37/72/30 38/73/31 36/74/32 +f 39/75/1 40/76/2 41/77/3 +f 39/78/4 42/79/5 40/76/6 +f 43/80/2 44/81/2 45/82/2 +f 44/81/7 46/83/7 45/82/7 +f 46/83/8 47/84/8 48/85/8 +f 45/82/6 48/86/6 43/87/6 +f 43/88/9 44/81/9 47/84/9 +f 48/89/10 49/90/11 50/91/12 +f 41/92/13 47/84/13 44/81/13 +f 40/76/14 49/93/14 41/77/14 +f 50/91/15 49/93/15 42/79/15 +f 51/94/16 50/95/16 39/96/16 +f 44/81/17 39/97/1 41/98/3 +f 48/89/18 50/95/33 51/99/29 +f 50/100/30 51/101/31 49/102/32 +f 52/103/1 53/104/2 54/105/3 +f 52/106/4 55/107/5 53/104/6 +f 56/108/2 57/109/2 58/110/2 +f 57/109/7 59/111/7 58/110/7 +f 59/111/8 60/112/8 61/113/8 +f 58/110/6 61/114/6 56/115/6 +f 56/116/9 57/109/9 60/112/9 +f 61/117/10 62/118/11 63/119/12 +f 54/120/13 60/112/13 57/109/13 +f 53/104/14 62/121/14 54/105/14 +f 63/119/15 62/121/15 55/107/15 +f 64/122/16 63/123/16 52/124/16 +f 57/109/17 52/125/1 54/126/3 +f 61/117/18 63/123/28 64/127/29 +f 63/128/34 64/129/35 62/130/36 +f 65/131/1 66/132/2 67/133/3 +f 65/134/4 68/135/5 66/132/6 +f 69/136/2 70/137/2 71/138/2 +f 70/137/7 72/139/7 71/138/7 +f 72/139/8 73/140/8 74/141/8 +f 71/138/6 74/142/6 69/143/6 +f 69/144/9 70/137/9 73/140/9 +f 74/145/10 75/146/11 76/147/12 +f 67/148/13 73/140/13 70/137/13 +f 66/132/14 75/149/14 67/133/14 +f 76/147/15 75/149/15 68/135/15 +f 77/150/16 76/151/16 65/152/16 +f 70/137/17 65/153/1 67/154/3 +f 74/145/18 76/151/37 77/155/38 +f 76/156/34 77/157/35 75/158/36 +f 78/159/1 79/160/2 80/161/3 +f 78/162/4 81/163/5 79/160/6 +f 82/164/2 83/165/2 84/166/2 +f 83/165/7 85/167/7 84/166/7 +f 85/167/8 86/168/8 87/169/8 +f 84/166/6 87/170/6 82/171/6 +f 82/172/9 83/165/9 86/168/9 +f 87/173/10 88/174/11 89/175/12 +f 80/176/13 86/168/13 83/165/13 +f 79/160/14 88/177/14 80/161/14 +f 89/175/15 88/177/15 81/163/15 +f 90/178/16 89/179/16 78/180/16 +f 83/165/17 78/181/1 80/182/3 +f 87/173/18 89/179/19 90/183/20 +f 89/184/39 90/185/39 88/186/39 +f 91/187/1 92/188/2 93/189/3 +f 91/190/4 94/191/5 92/188/6 +f 95/192/2 96/193/2 97/194/2 +f 96/193/7 98/195/7 97/194/7 +f 98/195/8 99/196/8 100/197/8 +f 97/194/6 100/198/6 95/199/6 +f 95/200/9 96/193/9 99/196/9 +f 100/201/10 101/202/11 102/203/12 +f 93/204/13 99/196/13 96/193/13 +f 92/188/14 101/205/14 93/189/14 +f 102/203/15 101/205/15 94/191/15 +f 103/206/40 102/207/40 91/208/40 +f 96/193/17 91/209/1 93/210/3 +f 100/201/18 102/207/37 103/211/20 +f 102/212/21 103/213/22 101/214/23 +f 104/215/1 105/216/2 106/217/3 +f 104/218/4 107/219/5 105/216/6 +f 108/220/2 109/221/2 110/222/2 +f 109/221/7 111/223/7 110/222/7 +f 111/223/8 112/224/8 113/225/8 +f 110/222/6 113/226/6 108/227/6 +f 108/228/9 109/221/9 112/224/9 +f 113/229/10 114/230/11 115/231/12 +f 106/232/13 112/224/13 109/221/13 +f 105/216/14 114/233/14 106/217/14 +f 115/231/15 114/233/15 107/219/15 +f 116/234/16 115/235/16 104/236/16 +f 109/221/17 104/237/1 106/238/3 +f 113/229/18 115/235/19 116/239/20 +f 115/240/41 116/241/41 114/242/41 +f 117/243/1 118/244/2 119/245/3 +f 117/246/4 120/247/5 118/244/6 +f 121/248/2 122/249/2 123/250/2 +f 122/249/7 124/251/7 123/250/7 +f 124/251/8 125/252/8 126/253/8 +f 123/250/6 126/254/6 121/255/6 +f 121/256/9 122/249/9 125/252/9 +f 126/257/10 127/258/11 128/259/12 +f 119/260/13 125/252/13 122/249/13 +f 118/244/14 127/261/14 119/245/14 +f 128/259/15 127/261/15 120/247/15 +f 129/262/16 128/263/16 117/264/16 +f 122/249/17 117/265/1 119/266/3 +f 126/257/18 128/263/37 129/267/20 +f 128/268/42 127/269/42 129/270/42 +f 130/271/1 131/272/2 132/273/3 +f 130/274/4 133/275/5 131/272/6 +f 134/276/2 135/277/2 136/278/2 +f 135/277/7 137/279/7 136/278/7 +f 137/279/8 138/280/8 139/281/8 +f 136/278/6 139/282/6 134/283/6 +f 134/284/9 135/277/9 138/280/9 +f 139/285/10 140/286/11 141/287/12 +f 132/288/13 138/280/13 135/277/13 +f 131/272/14 140/289/14 132/273/14 +f 141/287/15 140/289/15 133/275/15 +f 142/290/16 141/291/16 130/292/16 +f 135/277/17 130/293/1 132/294/3 +f 139/285/18 141/291/19 142/295/20 +f 141/296/42 140/297/42 142/298/42 +f 143/299/1 144/300/2 145/301/3 +f 143/302/4 146/303/5 144/300/6 +f 147/304/2 148/305/2 149/306/2 +f 148/305/7 150/307/7 149/306/7 +f 150/307/8 151/308/8 152/309/8 +f 149/306/6 152/310/6 147/311/6 +f 147/312/9 148/305/9 151/308/9 +f 152/313/10 153/314/11 154/315/12 +f 145/316/13 151/308/13 148/305/13 +f 144/300/14 153/317/14 145/301/14 +f 154/315/15 153/317/15 146/303/15 +f 155/318/16 154/319/16 143/320/16 +f 148/305/17 143/321/1 145/322/3 +f 152/313/18 154/319/43 155/323/44 +f 154/324/45 153/325/45 155/326/45 +f 156/327/1 157/328/2 158/329/3 +f 156/330/4 159/331/5 157/328/6 +f 160/332/2 161/333/2 162/334/2 +f 161/333/7 163/335/7 162/334/7 +f 163/335/8 164/336/8 165/337/8 +f 162/334/6 165/338/6 160/339/6 +f 160/340/9 161/333/9 164/336/9 +f 165/341/10 166/342/11 167/343/12 +f 158/344/13 164/336/13 161/333/13 +f 157/328/14 166/345/14 158/329/14 +f 167/343/15 166/345/15 159/331/15 +f 168/346/16 167/347/16 156/348/16 +f 161/333/17 156/349/1 158/350/3 +f 165/341/18 167/347/37 168/351/38 +f 167/352/42 166/353/42 168/354/42 +f 1/4/4 12/355/46 4/5/5 +f 6/7/7 9/10/7 8/9/7 +f 7/8/6 8/9/6 10/12/6 +f 5/14/9 9/10/9 10/356/9 +f 10/15/10 9/10/47 11/16/11 +f 3/18/13 11/357/13 9/10/13 +f 2/2/14 4/5/14 11/19/14 +f 6/7/17 5/358/17 1/23/1 +f 13/25/20 1/22/48 10/15/18 +f 1/22/48 5/358/48 10/15/18 +f 15/30/24 18/33/24 17/32/24 +f 14/35/25 16/31/25 17/32/25 +f 14/37/26 19/359/26 18/33/26 +f 21/39/27 24/42/27 23/41/27 +f 22/40/26 23/41/26 25/44/26 +f 20/46/9 25/360/9 24/42/9 +f 26/50/4 37/361/46 29/51/5 +f 31/53/7 34/56/7 33/55/7 +f 32/54/6 33/55/6 35/58/6 +f 30/60/9 34/56/9 35/362/9 +f 35/61/10 34/56/47 36/62/11 +f 28/64/13 36/363/13 34/56/13 +f 27/48/14 29/51/14 36/65/14 +f 31/53/17 30/364/17 26/69/1 +f 38/71/29 26/68/48 35/61/18 +f 26/68/48 30/364/48 35/61/18 +f 39/78/4 50/365/46 42/79/5 +f 44/81/7 47/84/7 46/83/7 +f 45/82/6 46/83/6 48/86/6 +f 43/88/9 47/84/9 48/366/9 +f 48/89/10 47/84/47 49/90/11 +f 41/92/13 49/367/13 47/84/13 +f 40/76/14 42/79/14 49/93/14 +f 44/81/17 43/368/17 39/97/1 +f 51/99/29 39/96/48 48/89/18 +f 39/96/48 43/368/48 48/89/18 +f 52/106/4 63/369/46 55/107/5 +f 57/109/7 60/112/7 59/111/7 +f 58/110/6 59/111/6 61/114/6 +f 56/116/9 60/112/9 61/370/9 +f 61/117/10 60/112/47 62/118/11 +f 54/120/13 62/371/13 60/112/13 +f 53/104/14 55/107/14 62/121/14 +f 57/109/17 56/372/17 52/125/1 +f 64/127/29 52/124/48 61/117/18 +f 52/124/48 56/372/48 61/117/18 +f 65/134/4 76/373/46 68/135/5 +f 70/137/7 73/140/7 72/139/7 +f 71/138/6 72/139/6 74/142/6 +f 69/144/9 73/140/9 74/374/9 +f 74/145/10 73/140/47 75/146/11 +f 67/148/13 75/375/13 73/140/13 +f 66/132/14 68/135/14 75/149/14 +f 70/137/17 69/376/17 65/153/1 +f 77/155/38 65/152/48 74/145/18 +f 65/152/48 69/376/48 74/145/49 +f 78/162/4 89/377/46 81/163/5 +f 83/165/7 86/168/7 85/167/7 +f 84/166/6 85/167/6 87/170/6 +f 82/172/9 86/168/9 87/378/9 +f 87/173/10 86/168/47 88/174/11 +f 80/176/13 88/379/13 86/168/13 +f 79/160/14 81/163/14 88/177/14 +f 83/165/17 82/380/17 78/181/1 +f 90/183/20 78/180/48 87/173/18 +f 78/180/48 82/380/48 87/173/18 +f 91/190/4 102/381/46 94/191/5 +f 96/193/7 99/196/7 98/195/7 +f 97/194/6 98/195/6 100/198/6 +f 95/200/9 99/196/9 100/382/9 +f 100/201/10 99/196/47 101/202/11 +f 93/204/13 101/383/13 99/196/13 +f 92/188/14 94/191/14 101/205/14 +f 96/193/17 95/384/17 91/209/1 +f 103/211/20 91/208/48 100/201/18 +f 91/208/48 95/384/48 100/201/18 +f 104/218/4 115/385/46 107/219/5 +f 109/221/7 112/224/7 111/223/7 +f 110/222/6 111/223/6 113/226/6 +f 108/228/9 112/224/9 113/386/9 +f 113/229/10 112/224/47 114/230/11 +f 106/232/13 114/387/13 112/224/13 +f 105/216/14 107/219/14 114/233/14 +f 109/221/17 108/388/17 104/237/1 +f 116/239/20 104/236/48 113/229/18 +f 104/236/48 108/388/48 113/229/18 +f 117/246/4 128/389/46 120/247/5 +f 122/249/7 125/252/7 124/251/7 +f 123/250/6 124/251/6 126/254/6 +f 121/256/9 125/252/9 126/390/9 +f 126/257/10 125/252/47 127/258/11 +f 119/260/13 127/391/13 125/252/13 +f 118/244/14 120/247/14 127/261/14 +f 122/249/17 121/392/17 117/265/1 +f 129/267/20 117/264/48 126/257/18 +f 117/264/48 121/392/48 126/257/18 +f 130/274/4 141/393/46 133/275/5 +f 135/277/7 138/280/7 137/279/7 +f 136/278/6 137/279/6 139/282/6 +f 134/284/9 138/280/9 139/394/9 +f 139/285/10 138/280/47 140/286/11 +f 132/288/13 140/395/13 138/280/13 +f 131/272/14 133/275/14 140/289/14 +f 135/277/17 134/396/17 130/293/1 +f 142/295/20 130/292/48 139/285/18 +f 130/292/48 134/396/48 139/285/49 +f 143/302/4 154/397/46 146/303/5 +f 148/305/7 151/308/7 150/307/7 +f 149/306/6 150/307/6 152/310/6 +f 147/312/9 151/308/9 152/398/9 +f 152/313/10 151/308/47 153/314/11 +f 145/316/13 153/399/13 151/308/13 +f 144/300/14 146/303/14 153/317/14 +f 148/305/17 147/400/17 143/321/1 +f 155/323/44 143/320/48 152/313/18 +f 143/320/48 147/400/48 152/313/18 +f 156/330/4 167/401/46 159/331/5 +f 161/333/7 164/336/7 163/335/7 +f 162/334/6 163/335/6 165/338/6 +f 160/340/9 164/336/9 165/402/9 +f 165/341/10 164/336/47 166/342/11 +f 158/344/13 166/403/13 164/336/13 +f 157/328/14 159/331/14 166/345/14 +f 161/333/17 160/404/17 156/349/1 +f 168/351/38 156/348/48 165/341/18 +f 156/348/48 160/404/48 165/341/18 +f 169/405/2 170/406/2 171/407/2 +f 172/408/50 171/409/50 173/410/50 +f 174/411/51 175/412/51 171/409/51 +f 176/413/52 177/414/52 175/412/52 +f 178/415/53 179/416/53 177/414/53 +f 180/417/54 181/418/54 179/416/54 +f 182/419/55 183/420/55 181/418/55 +f 184/421/56 185/422/56 183/420/56 +f 186/423/57 187/424/57 185/422/57 +f 188/425/58 169/426/58 187/424/58 +f 189/427/59 170/428/59 169/426/59 +f 170/406/26 172/429/26 173/430/26 +f 178/431/8 176/432/8 186/433/8 +f 170/406/2 173/430/2 171/407/2 +f 171/407/2 175/434/2 187/435/2 +f 175/434/2 177/436/2 185/437/2 +f 177/436/2 179/438/2 185/437/2 +f 179/438/2 181/439/2 183/440/2 +f 185/437/2 179/438/2 183/440/2 +f 185/437/2 187/435/2 175/434/2 +f 187/435/2 169/405/2 171/407/2 +f 172/408/50 174/411/50 171/409/50 +f 174/411/51 176/413/51 175/412/51 +f 176/413/52 178/415/52 177/414/52 +f 178/415/53 180/417/53 179/416/53 +f 180/417/54 182/419/54 181/418/54 +f 182/419/55 184/421/55 183/420/55 +f 184/421/56 186/423/56 185/422/56 +f 186/423/57 188/425/57 187/424/57 +f 188/425/58 189/427/58 169/426/58 +f 189/427/59 190/441/59 170/428/59 +f 170/406/26 190/442/26 172/429/26 +f 176/432/8 174/443/8 189/444/8 +f 174/443/8 172/429/8 189/444/8 +f 172/429/8 190/442/8 189/444/8 +f 189/444/8 188/445/8 176/432/8 +f 188/445/8 186/433/8 176/432/8 +f 186/433/8 184/446/8 178/431/8 +f 184/446/8 182/447/8 180/448/8 +f 178/431/8 184/446/8 180/448/8 +f 191/449/60 192/450/60 193/451/60 +f 194/452/61 195/453/61 192/450/61 +f 196/454/62 197/455/62 195/453/62 +f 198/456/63 199/457/63 197/455/63 +f 200/458/64 201/459/64 199/457/64 +f 202/460/65 203/461/65 201/459/65 +f 204/462/66 205/463/66 203/461/66 +f 206/464/67 207/465/67 205/463/67 +f 208/466/68 209/467/68 207/465/68 +f 210/468/69 211/469/69 209/467/69 +f 212/470/70 213/471/70 211/469/70 +f 214/472/71 215/473/71 213/471/71 +f 216/474/72 217/475/72 215/473/72 +f 218/476/73 219/477/73 217/475/73 +f 220/478/74 221/479/74 219/477/74 +f 222/480/75 223/481/76 221/479/76 +f 224/482/77 225/483/77 223/481/77 +f 226/484/78 227/485/78 225/483/78 +f 228/486/79 229/487/79 227/485/79 +f 230/488/80 231/489/80 229/487/80 +f 232/490/81 233/491/81 231/489/81 +f 234/492/82 235/493/82 233/491/82 +f 212/494/8 204/495/8 196/496/8 +f 236/497/83 237/498/83 235/493/83 +f 238/499/84 193/500/84 237/498/84 +f 239/501/73 240/502/73 241/503/73 +f 242/504/61 243/505/61 244/506/61 +f 245/507/64 246/508/64 243/505/64 +f 247/509/67 248/510/67 246/508/67 +f 249/511/70 250/512/70 248/510/70 +f 251/513/73 252/514/73 250/512/73 +f 253/515/77 254/516/77 252/514/77 +f 247/517/8 242/518/8 255/519/8 +f 255/520/80 256/521/80 254/516/80 +f 257/522/83 244/523/83 256/521/83 +f 248/524/2 252/525/2 256/526/2 +f 250/527/85 258/528/85 248/529/85 +f 248/529/86 259/530/86 246/531/86 +f 246/531/87 260/532/87 243/533/87 +f 260/532/88 244/534/88 243/533/88 +f 261/535/89 256/536/89 244/534/89 +f 262/537/90 254/538/90 256/536/90 +f 263/539/91 252/540/91 254/538/91 +f 264/541/92 250/527/92 252/540/92 +f 265/542/80 259/543/80 258/544/80 +f 266/545/83 258/544/83 267/546/83 +f 268/547/70 262/548/70 261/549/70 +f 269/550/73 261/551/73 260/552/73 +f 270/553/77 260/552/77 259/543/77 +f 271/554/61 267/546/61 264/555/61 +f 272/556/60 273/557/60 274/558/60 +f 275/559/61 276/560/61 273/557/61 +f 277/561/62 278/562/62 276/560/62 +f 279/563/93 280/564/93 278/562/93 +f 281/565/64 282/566/64 280/564/64 +f 283/567/65 284/568/65 282/566/65 +f 285/569/66 286/570/66 284/568/66 +f 287/571/67 288/572/67 286/570/67 +f 289/573/68 290/574/68 288/572/68 +f 291/575/69 292/576/69 290/574/69 +f 293/577/70 294/578/70 292/576/70 +f 295/579/71 296/580/71 294/578/71 +f 297/581/72 298/582/72 296/580/72 +f 299/583/73 300/584/73 298/582/73 +f 301/585/74 302/586/74 300/584/74 +f 303/587/75 304/588/75 302/586/75 +f 305/589/77 306/590/77 304/588/77 +f 307/591/78 308/592/78 306/590/78 +f 309/593/79 310/594/79 308/592/79 +f 311/595/80 312/596/80 310/594/80 +f 313/597/81 314/598/81 312/596/81 +f 315/599/82 316/600/82 314/598/82 +f 309/601/8 293/602/8 277/603/8 +f 317/604/83 318/605/83 316/600/83 +f 319/606/84 274/607/84 318/605/84 +f 310/608/2 318/609/2 286/610/2 +f 320/611/60 321/612/60 322/613/60 +f 323/614/61 324/615/61 321/612/61 +f 325/616/62 326/617/62 324/615/62 +f 327/618/63 328/619/63 326/617/63 +f 329/620/64 330/621/64 328/619/64 +f 331/622/65 332/623/65 330/621/65 +f 333/624/66 334/625/66 332/623/66 +f 335/626/67 336/627/67 334/625/67 +f 337/628/68 338/629/68 336/627/68 +f 339/630/69 340/631/69 338/629/69 +f 341/632/70 342/633/70 340/631/70 +f 343/634/71 344/635/71 342/633/71 +f 345/636/72 346/637/72 344/635/72 +f 347/638/73 348/639/73 346/637/73 +f 349/640/74 350/641/74 348/639/94 +f 351/642/75 352/643/75 350/641/75 +f 353/644/77 354/645/77 352/643/77 +f 355/646/78 356/647/78 354/645/78 +f 357/648/79 358/649/79 356/647/79 +f 359/650/80 360/651/80 358/649/80 +f 361/652/81 362/653/81 360/651/81 +f 363/654/82 364/655/82 362/653/82 +f 341/656/8 333/657/8 325/658/8 +f 365/659/83 366/660/83 364/655/83 +f 367/661/84 322/662/84 366/660/84 +f 350/663/2 358/664/2 366/665/2 +f 368/666/60 369/667/60 370/668/60 +f 371/669/61 372/670/61 369/667/61 +f 373/671/62 374/672/62 372/670/62 +f 375/673/63 376/674/63 374/672/63 +f 377/675/64 378/676/64 376/674/64 +f 379/677/65 380/678/65 378/676/65 +f 381/679/66 382/680/66 380/678/66 +f 383/681/67 384/682/67 382/680/67 +f 385/683/68 386/684/68 384/682/68 +f 387/685/69 388/686/69 386/684/69 +f 389/687/70 390/688/70 388/686/70 +f 391/689/71 392/690/71 390/688/71 +f 393/691/72 394/692/72 392/690/72 +f 395/693/73 396/694/73 394/692/73 +f 397/695/74 398/696/74 396/694/74 +f 399/697/75 400/698/75 398/696/75 +f 401/699/77 402/700/77 400/698/77 +f 403/701/78 404/702/78 402/700/78 +f 405/703/79 406/704/79 404/702/79 +f 407/705/80 408/706/80 406/704/80 +f 409/707/81 410/708/81 408/706/81 +f 411/709/82 412/710/82 410/708/82 +f 389/711/8 381/712/8 373/713/8 +f 413/714/83 414/715/83 412/710/83 +f 415/716/84 370/717/84 414/715/84 +f 398/718/2 406/719/2 414/720/2 +f 416/721/60 417/722/60 418/723/60 +f 419/724/61 420/725/61 417/722/61 +f 421/726/62 422/727/62 420/725/62 +f 423/728/63 424/729/63 422/727/63 +f 425/730/64 426/731/64 424/729/64 +f 427/732/65 428/733/65 426/731/65 +f 429/734/66 430/735/66 428/733/66 +f 431/736/67 432/737/67 430/735/67 +f 433/738/68 434/739/68 432/737/68 +f 435/740/69 436/741/69 434/739/69 +f 437/742/70 438/743/70 436/741/70 +f 439/744/71 440/745/71 438/743/71 +f 441/746/72 442/747/72 440/745/72 +f 443/748/73 444/749/73 442/747/73 +f 445/750/74 446/751/74 444/749/74 +f 447/752/75 448/753/75 446/751/76 +f 449/754/77 450/755/77 448/753/77 +f 451/756/78 452/757/78 450/755/78 +f 453/758/79 454/759/79 452/757/79 +f 455/760/80 456/761/80 454/759/80 +f 457/762/81 458/763/81 456/761/81 +f 459/764/82 460/765/82 458/763/82 +f 437/766/8 429/767/8 421/768/8 +f 461/769/83 462/770/83 460/765/83 +f 463/771/84 418/772/84 462/770/84 +f 446/773/2 454/774/2 462/775/2 +f 464/776/60 465/777/60 466/778/60 +f 467/779/61 468/780/61 465/777/61 +f 469/781/95 470/782/62 468/780/62 +f 471/783/63 472/784/63 470/782/63 +f 473/785/64 474/786/64 472/784/64 +f 475/787/65 476/788/65 474/786/65 +f 477/789/66 478/790/66 476/788/66 +f 479/791/67 480/792/67 478/790/67 +f 481/793/68 482/794/68 480/792/68 +f 483/795/96 484/796/69 482/794/69 +f 485/797/70 486/798/70 484/796/70 +f 487/799/71 488/800/71 486/798/71 +f 489/801/72 490/802/72 488/800/72 +f 491/803/73 492/804/73 490/802/73 +f 493/805/74 494/806/94 492/804/94 +f 495/807/75 496/808/76 494/806/76 +f 497/809/77 498/810/77 496/808/77 +f 499/811/78 500/812/78 498/810/78 +f 501/813/79 502/814/79 500/812/79 +f 503/815/80 504/816/80 502/814/80 +f 505/817/81 506/818/81 504/816/81 +f 507/819/82 508/820/82 506/818/82 +f 485/821/8 477/822/8 469/823/8 +f 509/824/83 510/825/83 508/820/83 +f 511/826/84 466/827/84 510/825/84 +f 494/828/2 502/829/2 510/830/2 +f 512/831/2 192/832/2 241/503/2 +f 241/503/2 195/833/2 239/501/2 +f 239/501/2 197/834/2 513/835/2 +f 513/835/2 199/836/2 514/837/2 +f 514/837/2 201/838/2 515/839/2 +f 515/839/2 203/840/2 516/841/2 +f 517/842/2 203/840/2 205/843/2 +f 518/844/2 205/843/2 207/845/2 +f 519/846/2 207/845/2 209/847/2 +f 520/848/2 209/847/2 211/849/2 +f 521/850/2 211/849/2 213/851/2 +f 522/852/2 213/851/2 215/853/2 +f 522/852/2 217/854/2 523/855/2 +f 523/855/2 219/856/2 524/857/2 +f 524/857/2 221/858/2 525/859/2 +f 525/859/2 223/860/2 526/861/2 +f 526/861/2 225/862/2 527/863/2 +f 527/863/2 227/864/2 528/865/2 +f 529/866/2 227/864/2 229/867/2 +f 530/868/2 229/867/2 231/869/2 +f 531/870/2 231/869/2 233/871/2 +f 532/872/2 233/871/2 235/873/2 +f 533/874/2 235/873/2 237/875/2 +f 512/831/2 237/875/2 193/876/2 +f 534/877/2 535/878/2 536/879/2 +f 527/863/64 537/880/64 526/861/64 +f 520/848/82 538/881/82 519/846/82 +f 513/835/74 539/882/74 239/501/74 +f 528/865/65 540/883/65 527/863/65 +f 521/850/83 541/884/83 520/848/83 +f 514/837/75 542/885/75 513/835/75 +f 529/866/66 543/886/66 528/865/66 +f 522/852/84 544/887/84 521/850/84 +f 515/839/77 545/888/77 514/837/77 +f 530/868/67 546/889/67 529/866/67 +f 523/855/60 547/890/60 522/852/60 +f 516/841/78 548/891/78 515/839/78 +f 531/870/68 549/892/68 530/868/68 +f 524/857/61 550/893/61 523/855/61 +f 517/842/79 551/894/79 516/841/79 +f 532/872/69 534/877/69 531/870/69 +f 525/859/62 552/895/62 524/857/62 +f 518/844/80 553/896/80 517/842/80 +f 533/874/70 535/878/70 532/872/70 +f 241/503/72 554/897/72 512/831/72 +f 526/861/93 536/879/93 525/859/93 +f 519/846/81 555/898/81 518/844/81 +f 512/831/71 556/899/71 533/874/71 +f 271/554/97 263/539/98 557/900/99 +f 191/449/60 194/452/60 192/450/60 +f 194/452/61 196/454/61 195/453/61 +f 196/454/62 198/456/62 197/455/62 +f 198/456/63 200/458/63 199/457/63 +f 200/458/64 202/460/64 201/459/64 +f 202/460/65 204/462/65 203/461/65 +f 204/462/66 206/464/66 205/463/66 +f 206/464/67 208/466/67 207/465/67 +f 208/466/68 210/468/68 209/467/68 +f 210/468/69 212/470/69 211/469/69 +f 212/470/70 214/472/70 213/471/70 +f 214/472/71 216/474/71 215/473/71 +f 216/474/72 218/476/72 217/475/72 +f 218/476/73 220/478/73 219/477/73 +f 220/478/74 222/480/74 221/479/74 +f 222/480/75 224/482/75 223/481/76 +f 224/482/77 226/484/77 225/483/77 +f 226/484/78 228/486/78 227/485/78 +f 228/486/79 230/488/79 229/487/79 +f 230/488/80 232/490/80 231/489/80 +f 232/490/81 234/492/81 233/491/81 +f 234/492/82 236/497/82 235/493/82 +f 196/496/8 194/901/8 191/902/8 +f 191/902/8 238/903/8 196/496/8 +f 238/903/8 236/904/8 196/496/8 +f 236/904/8 234/905/8 232/906/8 +f 232/906/8 230/907/8 228/908/8 +f 228/908/8 226/909/8 224/910/8 +f 224/910/8 222/911/8 228/908/8 +f 222/911/8 220/912/8 228/908/8 +f 220/912/8 218/913/8 216/914/8 +f 216/914/8 214/915/8 212/494/8 +f 212/494/8 210/916/8 208/917/8 +f 208/917/8 206/918/8 204/495/8 +f 204/495/8 202/919/8 200/920/8 +f 200/920/8 198/921/8 204/495/8 +f 198/921/8 196/496/8 204/495/8 +f 236/904/8 232/906/8 228/908/8 +f 220/912/8 216/914/8 228/908/8 +f 216/914/8 212/494/8 228/908/8 +f 212/494/8 208/917/8 204/495/8 +f 196/496/8 236/904/8 212/494/8 +f 236/904/8 228/908/8 212/494/8 +f 236/497/83 238/499/83 237/498/83 +f 238/499/84 191/922/84 193/500/84 +f 239/501/73 539/882/73 240/502/73 +f 242/504/61 245/507/61 243/505/61 +f 245/507/64 247/509/64 246/508/64 +f 247/509/67 249/511/67 248/510/67 +f 249/511/70 251/513/70 250/512/70 +f 251/513/73 253/515/73 252/514/73 +f 253/515/77 255/520/77 254/516/77 +f 247/517/8 245/923/8 242/518/8 +f 242/518/8 257/924/8 255/519/8 +f 255/519/8 253/925/8 247/517/8 +f 253/925/8 251/926/8 247/517/8 +f 251/926/8 249/927/8 247/517/8 +f 255/520/80 257/522/80 256/521/80 +f 257/522/83 242/928/83 244/523/83 +f 256/526/2 244/929/2 248/524/2 +f 244/929/2 243/930/2 248/524/2 +f 243/930/2 246/931/2 248/524/2 +f 248/524/2 250/932/2 252/525/2 +f 252/525/2 254/933/2 256/526/2 +f 250/527/85 267/934/85 258/528/85 +f 248/529/86 258/528/86 259/530/86 +f 246/531/87 259/530/87 260/532/87 +f 260/532/88 261/535/88 244/534/88 +f 261/535/89 262/537/89 256/536/89 +f 262/537/90 263/539/90 254/538/90 +f 263/539/91 264/541/91 252/540/91 +f 264/541/92 267/934/92 250/527/92 +f 265/542/80 270/553/80 259/543/80 +f 266/545/83 265/542/83 258/544/83 +f 268/547/70 557/900/70 262/548/70 +f 269/550/73 268/935/73 261/551/73 +f 270/553/77 269/550/77 260/552/77 +f 271/554/61 266/545/61 267/546/61 +f 272/556/60 275/559/60 273/557/60 +f 275/559/61 277/561/61 276/560/61 +f 277/561/62 279/563/62 278/562/62 +f 279/563/93 281/565/93 280/564/93 +f 281/565/64 283/567/64 282/566/64 +f 283/567/65 285/569/65 284/568/65 +f 285/569/66 287/571/66 286/570/66 +f 287/571/67 289/573/67 288/572/67 +f 289/573/68 291/575/68 290/574/68 +f 291/575/69 293/577/69 292/576/69 +f 293/577/70 295/579/70 294/578/70 +f 295/579/71 297/581/71 296/580/71 +f 297/581/72 299/583/72 298/582/72 +f 299/583/73 301/585/73 300/584/73 +f 301/585/74 303/587/74 302/586/74 +f 303/587/75 305/589/75 304/588/75 +f 305/589/77 307/591/77 306/590/77 +f 307/591/78 309/593/78 308/592/78 +f 309/593/79 311/595/79 310/594/79 +f 311/595/80 313/597/80 312/596/80 +f 313/597/81 315/599/81 314/598/81 +f 315/599/82 317/604/82 316/600/82 +f 277/603/8 275/936/8 317/937/8 +f 275/936/8 272/938/8 317/937/8 +f 272/938/8 319/939/8 317/937/8 +f 317/937/8 315/940/8 313/941/8 +f 313/941/8 311/942/8 309/601/8 +f 309/601/8 307/943/8 305/944/8 +f 305/944/8 303/945/8 301/946/8 +f 301/946/8 299/947/8 297/948/8 +f 297/948/8 295/949/8 293/602/8 +f 293/602/8 291/950/8 289/951/8 +f 289/951/8 287/952/8 293/602/8 +f 287/952/8 285/953/8 293/602/8 +f 285/953/8 283/954/8 281/955/8 +f 281/955/8 279/956/8 277/603/8 +f 317/937/8 313/941/8 277/603/8 +f 313/941/8 309/601/8 277/603/8 +f 309/601/8 305/944/8 293/602/8 +f 305/944/8 301/946/8 293/602/8 +f 301/946/8 297/948/8 293/602/8 +f 285/953/8 281/955/8 293/602/8 +f 281/955/8 277/603/8 293/602/8 +f 317/604/83 319/606/83 318/605/83 +f 319/606/84 272/957/84 274/607/84 +f 318/609/2 274/958/2 273/959/2 +f 273/959/2 276/960/2 318/609/2 +f 276/960/2 278/961/2 318/609/2 +f 278/961/2 280/962/2 286/610/2 +f 280/962/2 282/963/100 286/610/2 +f 282/963/100 284/964/2 286/610/2 +f 286/610/2 288/965/101 290/966/2 +f 290/966/2 292/967/2 294/968/2 +f 294/968/2 296/969/2 298/970/2 +f 298/970/2 300/971/2 302/972/2 +f 302/972/2 304/973/2 306/974/2 +f 306/974/2 308/975/2 310/608/2 +f 310/608/2 312/976/2 314/977/101 +f 314/977/101 316/978/2 310/608/2 +f 316/978/2 318/609/2 310/608/2 +f 286/610/2 290/966/2 294/968/2 +f 294/968/2 298/970/2 286/610/2 +f 298/970/2 302/972/2 286/610/2 +f 302/972/2 306/974/2 310/608/2 +f 318/609/2 278/961/2 286/610/2 +f 302/972/2 310/608/2 286/610/2 +f 320/611/60 323/614/60 321/612/60 +f 323/614/61 325/616/61 324/615/61 +f 325/616/62 327/618/62 326/617/62 +f 327/618/63 329/620/63 328/619/63 +f 329/620/64 331/622/64 330/621/64 +f 331/622/65 333/624/65 332/623/65 +f 333/624/66 335/626/66 334/625/66 +f 335/626/67 337/628/67 336/627/67 +f 337/628/68 339/630/68 338/629/68 +f 339/630/69 341/632/69 340/631/69 +f 341/632/70 343/634/70 342/633/70 +f 343/634/71 345/636/71 344/635/71 +f 345/636/72 347/638/72 346/637/72 +f 347/638/73 349/640/73 348/639/73 +f 349/640/74 351/642/74 350/641/74 +f 351/642/75 353/644/75 352/643/75 +f 353/644/77 355/646/77 354/645/77 +f 355/646/78 357/648/78 356/647/78 +f 357/648/79 359/650/79 358/649/79 +f 359/650/80 361/652/80 360/651/80 +f 361/652/81 363/654/81 362/653/81 +f 363/654/82 365/659/82 364/655/82 +f 325/658/8 323/979/8 320/980/8 +f 320/980/8 367/981/8 365/982/8 +f 365/982/8 363/983/102 361/984/8 +f 361/984/8 359/985/8 365/982/8 +f 359/985/8 357/986/8 365/982/8 +f 357/986/8 355/987/102 353/988/8 +f 353/988/8 351/989/8 357/986/8 +f 351/989/8 349/990/8 357/986/8 +f 349/990/8 347/991/8 345/992/8 +f 345/992/8 343/993/8 341/656/8 +f 341/656/8 339/994/8 337/995/8 +f 337/995/8 335/996/8 341/656/8 +f 335/996/8 333/657/8 341/656/8 +f 333/657/8 331/997/8 329/998/8 +f 329/998/8 327/999/8 333/657/8 +f 327/999/8 325/658/8 333/657/8 +f 325/658/8 320/980/8 365/982/8 +f 349/990/8 345/992/8 357/986/8 +f 345/992/8 341/656/8 357/986/8 +f 325/658/8 365/982/8 341/656/8 +f 365/982/8 357/986/8 341/656/8 +f 365/659/83 367/661/83 366/660/83 +f 367/661/84 320/1000/84 322/662/84 +f 366/665/2 322/1001/2 321/1002/2 +f 321/1002/2 324/1003/2 366/665/2 +f 324/1003/2 326/1004/2 366/665/2 +f 326/1004/2 328/1005/100 330/1006/2 +f 330/1006/2 332/1007/101 326/1004/2 +f 332/1007/101 334/1008/2 326/1004/2 +f 334/1008/2 336/1009/101 338/1010/2 +f 338/1010/2 340/1011/2 342/1012/2 +f 342/1012/2 344/1013/2 350/663/2 +f 344/1013/2 346/1014/2 350/663/2 +f 346/1014/2 348/1015/101 350/663/2 +f 350/663/2 352/1016/101 354/1017/100 +f 354/1017/100 356/1018/2 350/663/2 +f 356/1018/2 358/664/2 350/663/2 +f 358/664/2 360/1019/101 362/1020/100 +f 362/1020/100 364/1021/2 358/664/2 +f 364/1021/2 366/665/2 358/664/2 +f 334/1008/2 338/1010/2 350/663/2 +f 338/1010/2 342/1012/2 350/663/2 +f 366/665/2 326/1004/2 350/663/2 +f 326/1004/2 334/1008/2 350/663/2 +f 368/666/60 371/669/60 369/667/60 +f 371/669/61 373/671/61 372/670/61 +f 373/671/62 375/673/62 374/672/62 +f 375/673/63 377/675/63 376/674/63 +f 377/675/64 379/677/64 378/676/64 +f 379/677/65 381/679/65 380/678/65 +f 381/679/66 383/681/66 382/680/66 +f 383/681/67 385/683/67 384/682/67 +f 385/683/68 387/685/68 386/684/68 +f 387/685/69 389/687/96 388/686/69 +f 389/687/70 391/689/70 390/688/70 +f 391/689/71 393/691/71 392/690/71 +f 393/691/72 395/693/72 394/692/72 +f 395/693/73 397/695/73 396/694/73 +f 397/695/74 399/697/74 398/696/74 +f 399/697/75 401/699/75 400/698/75 +f 401/699/77 403/701/77 402/700/77 +f 403/701/78 405/703/78 404/702/78 +f 405/703/79 407/705/79 406/704/79 +f 407/705/80 409/707/80 408/706/80 +f 409/707/81 411/709/81 410/708/81 +f 411/709/82 413/714/82 412/710/82 +f 373/713/8 371/1022/8 368/1023/8 +f 368/1023/8 415/1024/8 413/1025/8 +f 413/1025/8 411/1026/103 409/1027/8 +f 409/1027/8 407/1028/8 413/1025/8 +f 407/1028/8 405/1029/8 413/1025/8 +f 405/1029/8 403/1030/8 401/1031/8 +f 401/1031/8 399/1032/8 405/1029/8 +f 399/1032/8 397/1033/8 405/1029/8 +f 397/1033/8 395/1034/8 393/1035/8 +f 393/1035/8 391/1036/8 389/711/8 +f 389/711/8 387/1037/103 385/1038/8 +f 385/1038/8 383/1039/8 389/711/8 +f 383/1039/8 381/712/8 389/711/8 +f 381/712/8 379/1040/8 377/1041/102 +f 377/1041/102 375/1042/8 381/712/8 +f 375/1042/8 373/713/8 381/712/8 +f 373/713/8 368/1023/8 413/1025/8 +f 397/1033/8 393/1035/8 405/1029/8 +f 393/1035/8 389/711/8 405/1029/8 +f 373/713/8 413/1025/8 389/711/8 +f 413/1025/8 405/1029/8 389/711/8 +f 413/714/83 415/716/83 414/715/83 +f 415/716/84 368/1043/84 370/717/84 +f 414/720/2 370/1044/2 369/1045/2 +f 369/1045/2 372/1046/2 414/720/2 +f 372/1046/2 374/1047/2 414/720/2 +f 374/1047/2 376/1048/101 378/1049/2 +f 378/1049/2 380/1050/2 374/1047/2 +f 380/1050/2 382/1051/2 374/1047/2 +f 382/1051/2 384/1052/100 386/1053/2 +f 386/1053/2 388/1054/100 390/1055/2 +f 390/1055/2 392/1056/2 394/1057/2 +f 394/1057/2 396/1058/2 398/718/2 +f 398/718/2 400/1059/2 402/1060/2 +f 402/1060/2 404/1061/2 398/718/2 +f 404/1061/2 406/719/2 398/718/2 +f 406/719/2 408/1062/100 410/1063/101 +f 410/1063/101 412/1064/2 406/719/2 +f 412/1064/2 414/720/2 406/719/2 +f 382/1051/2 386/1053/2 390/1055/2 +f 390/1055/2 394/1057/2 382/1051/2 +f 394/1057/2 398/718/2 382/1051/2 +f 414/720/2 374/1047/2 398/718/2 +f 374/1047/2 382/1051/2 398/718/2 +f 416/721/60 419/724/60 417/722/60 +f 419/724/61 421/726/61 420/725/61 +f 421/726/62 423/728/62 422/727/62 +f 423/728/63 425/730/63 424/729/63 +f 425/730/64 427/732/64 426/731/64 +f 427/732/65 429/734/65 428/733/65 +f 429/734/66 431/736/66 430/735/66 +f 431/736/67 433/738/67 432/737/67 +f 433/738/68 435/740/68 434/739/68 +f 435/740/69 437/742/69 436/741/69 +f 437/742/70 439/744/70 438/743/70 +f 439/744/71 441/746/71 440/745/71 +f 441/746/72 443/748/72 442/747/72 +f 443/748/73 445/750/73 444/749/73 +f 445/750/74 447/752/74 446/751/74 +f 447/752/75 449/754/75 448/753/75 +f 449/754/77 451/756/77 450/755/77 +f 451/756/78 453/758/78 452/757/78 +f 453/758/79 455/760/79 454/759/79 +f 455/760/80 457/762/80 456/761/80 +f 457/762/81 459/764/81 458/763/81 +f 459/764/82 461/769/82 460/765/82 +f 421/768/8 419/1065/8 416/1066/8 +f 416/1066/8 463/1067/8 461/1068/8 +f 461/1068/8 459/1069/103 457/1070/8 +f 457/1070/8 455/1071/8 461/1068/8 +f 455/1071/8 453/1072/8 461/1068/8 +f 453/1072/8 451/1073/8 449/1074/8 +f 449/1074/8 447/1075/8 453/1072/8 +f 447/1075/8 445/1076/8 453/1072/8 +f 445/1076/8 443/1077/8 441/1078/8 +f 441/1078/8 439/1079/8 437/766/8 +f 437/766/8 435/1080/8 433/1081/8 +f 433/1081/8 431/1082/8 437/766/8 +f 431/1082/8 429/767/8 437/766/8 +f 429/767/8 427/1083/8 425/1084/8 +f 425/1084/8 423/1085/8 429/767/8 +f 423/1085/8 421/768/8 429/767/8 +f 421/768/8 416/1066/8 461/1068/8 +f 445/1076/8 441/1078/8 453/1072/8 +f 441/1078/8 437/766/8 453/1072/8 +f 421/768/8 461/1068/8 437/766/8 +f 461/1068/8 453/1072/8 437/766/8 +f 461/769/83 463/771/83 462/770/83 +f 463/771/84 416/1086/84 418/772/84 +f 462/775/2 418/1087/2 417/1088/2 +f 417/1088/2 420/1089/2 462/775/2 +f 420/1089/2 422/1090/2 462/775/2 +f 422/1090/2 424/1091/100 426/1092/101 +f 426/1092/101 428/1093/2 422/1090/2 +f 428/1093/2 430/1094/2 422/1090/2 +f 430/1094/2 432/1095/2 434/1096/2 +f 434/1096/2 436/1097/2 438/1098/2 +f 438/1098/2 440/1099/2 446/773/2 +f 440/1099/2 442/1100/2 446/773/2 +f 442/1100/2 444/1101/2 446/773/2 +f 446/773/2 448/1102/2 450/1103/2 +f 450/1103/2 452/1104/2 446/773/2 +f 452/1104/2 454/774/2 446/773/2 +f 454/774/2 456/1105/101 458/1106/2 +f 458/1106/2 460/1107/2 454/774/2 +f 460/1107/2 462/775/2 454/774/2 +f 430/1094/2 434/1096/2 446/773/2 +f 434/1096/2 438/1098/2 446/773/2 +f 462/775/2 422/1090/2 446/773/2 +f 422/1090/2 430/1094/2 446/773/2 +f 464/776/60 467/779/60 465/777/60 +f 467/779/61 469/781/61 468/780/61 +f 469/781/95 471/783/95 470/782/62 +f 471/783/63 473/785/63 472/784/63 +f 473/785/64 475/787/64 474/786/64 +f 475/787/65 477/789/65 476/788/65 +f 477/789/66 479/791/66 478/790/66 +f 479/791/67 481/793/67 480/792/67 +f 481/793/68 483/795/68 482/794/68 +f 483/795/96 485/797/96 484/796/69 +f 485/797/70 487/799/70 486/798/70 +f 487/799/71 489/801/71 488/800/71 +f 489/801/72 491/803/72 490/802/72 +f 491/803/73 493/805/73 492/804/73 +f 493/805/74 495/807/74 494/806/94 +f 495/807/75 497/809/75 496/808/76 +f 497/809/77 499/811/77 498/810/77 +f 499/811/78 501/813/78 500/812/78 +f 501/813/79 503/815/79 502/814/79 +f 503/815/80 505/817/80 504/816/80 +f 505/817/81 507/819/81 506/818/81 +f 507/819/82 509/824/82 508/820/82 +f 469/823/8 467/1108/8 464/1109/8 +f 464/1109/8 511/1110/8 469/823/8 +f 511/1110/8 509/1111/8 469/823/8 +f 509/1111/8 507/1112/8 505/1113/8 +f 505/1113/8 503/1114/8 509/1111/8 +f 503/1114/8 501/1115/8 509/1111/8 +f 501/1115/8 499/1116/8 497/1117/8 +f 497/1117/8 495/1118/8 501/1115/8 +f 495/1118/8 493/1119/8 501/1115/8 +f 493/1119/8 491/1120/8 489/1121/8 +f 489/1121/8 487/1122/8 485/821/8 +f 485/821/8 483/1123/8 481/1124/8 +f 481/1124/8 479/1125/8 485/821/8 +f 479/1125/8 477/822/8 485/821/8 +f 477/822/8 475/1126/8 473/1127/8 +f 473/1127/8 471/1128/8 477/822/8 +f 471/1128/8 469/823/8 477/822/8 +f 493/1119/8 489/1121/8 501/1115/8 +f 489/1121/8 485/821/8 501/1115/8 +f 469/823/8 509/1111/8 485/821/8 +f 509/1111/8 501/1115/8 485/821/8 +f 509/824/83 511/826/83 510/825/83 +f 511/826/84 464/1129/84 466/827/84 +f 510/830/2 466/1130/2 465/1131/2 +f 465/1131/2 468/1132/2 510/830/2 +f 468/1132/2 470/1133/2 510/830/2 +f 470/1133/2 472/1134/2 474/1135/2 +f 474/1135/2 476/1136/2 470/1133/2 +f 476/1136/2 478/1137/2 470/1133/2 +f 478/1137/2 480/1138/100 482/1139/2 +f 482/1139/2 484/1140/2 486/1141/2 +f 486/1141/2 488/1142/2 494/828/2 +f 488/1142/2 490/1143/2 494/828/2 +f 490/1143/2 492/1144/2 494/828/2 +f 494/828/2 496/1145/2 498/1146/2 +f 498/1146/2 500/1147/2 494/828/2 +f 500/1147/2 502/829/2 494/828/2 +f 502/829/2 504/1148/2 506/1149/2 +f 506/1149/2 508/1150/2 502/829/2 +f 508/1150/2 510/830/2 502/829/2 +f 478/1137/2 482/1139/2 494/828/2 +f 482/1139/2 486/1141/2 494/828/2 +f 510/830/2 470/1133/2 494/828/2 +f 470/1133/2 478/1137/2 494/828/2 +f 512/831/2 193/876/2 192/832/2 +f 241/503/2 192/832/2 195/833/2 +f 239/501/2 195/833/2 197/834/2 +f 513/835/2 197/834/2 199/836/2 +f 514/837/2 199/836/2 201/838/2 +f 515/839/2 201/838/2 203/840/2 +f 517/842/2 516/841/2 203/840/2 +f 518/844/2 517/842/2 205/843/2 +f 519/846/2 518/844/2 207/845/2 +f 520/848/2 519/846/2 209/847/2 +f 521/850/2 520/848/2 211/849/2 +f 522/852/2 521/850/2 213/851/2 +f 522/852/2 215/853/2 217/854/2 +f 523/855/2 217/854/2 219/856/2 +f 524/857/2 219/856/2 221/858/2 +f 525/859/2 221/858/2 223/860/2 +f 526/861/2 223/860/2 225/862/2 +f 527/863/2 225/862/2 227/864/2 +f 529/866/2 528/865/2 227/864/2 +f 530/868/2 529/866/2 229/867/2 +f 531/870/2 530/868/2 231/869/2 +f 532/872/2 531/870/2 233/871/2 +f 533/874/2 532/872/2 235/873/2 +f 512/831/2 533/874/2 237/875/2 +f 556/899/2 554/897/2 547/890/2 +f 554/897/2 240/502/2 544/887/2 +f 240/502/2 539/882/2 544/887/2 +f 539/882/2 542/885/2 541/884/2 +f 544/887/2 539/882/2 541/884/2 +f 542/885/2 545/888/2 555/898/2 +f 545/888/2 548/891/2 553/896/2 +f 548/891/2 551/894/2 553/896/2 +f 553/896/2 555/898/2 545/888/2 +f 555/898/2 538/881/2 542/885/2 +f 538/881/2 541/884/2 542/885/2 +f 544/887/2 547/890/2 554/897/2 +f 547/890/2 550/893/2 556/899/2 +f 550/893/2 552/895/2 556/899/2 +f 552/895/2 536/879/2 535/878/2 +f 556/899/2 552/895/2 535/878/2 +f 536/879/2 537/880/2 549/892/2 +f 537/880/2 540/883/2 546/889/2 +f 540/883/2 543/886/2 546/889/2 +f 546/889/2 549/892/2 537/880/2 +f 549/892/2 534/877/2 536/879/2 +f 527/863/64 540/883/64 537/880/64 +f 520/848/82 541/884/82 538/881/82 +f 513/835/74 542/885/74 539/882/74 +f 528/865/65 543/886/65 540/883/65 +f 521/850/83 544/887/83 541/884/83 +f 514/837/75 545/888/75 542/885/75 +f 529/866/66 546/889/66 543/886/66 +f 522/852/84 547/890/84 544/887/84 +f 515/839/77 548/891/77 545/888/77 +f 530/868/67 549/892/67 546/889/67 +f 523/855/60 550/893/60 547/890/60 +f 516/841/78 551/894/78 548/891/78 +f 531/870/68 534/877/68 549/892/68 +f 524/857/61 552/895/61 550/893/61 +f 517/842/79 553/896/79 551/894/79 +f 532/872/69 535/878/69 534/877/69 +f 525/859/62 536/879/62 552/895/62 +f 518/844/80 555/898/80 553/896/80 +f 533/874/70 556/899/70 535/878/70 +f 241/503/72 240/502/72 554/897/72 +f 526/861/93 537/880/93 536/879/93 +f 519/846/81 538/881/81 555/898/81 +f 512/831/71 554/897/71 556/899/71 +f 557/900/99 268/547/2 269/550/2 +f 269/550/2 270/553/2 557/900/99 +f 270/553/2 265/542/2 271/554/97 +f 557/900/99 270/553/2 271/554/97 +f 265/542/2 266/545/2 271/554/97 +f 271/554/97 264/541/64 263/539/98 +f 263/539/98 262/548/67 557/900/99 +f 558/1151/104 559/1152/104 560/1153/104 +f 561/1154/105 562/1155/105 563/1156/105 +f 564/1157/106 559/1158/106 565/1159/106 +f 566/1160/107 565/1159/107 567/1161/107 +f 568/1162/108 566/1163/108 567/1161/108 +f 569/1164/106 570/1165/106 571/1166/106 +f 572/1167/109 568/1162/109 573/1168/109 +f 574/1169/110 575/1170/110 576/1171/110 +f 573/1168/105 577/1172/105 572/1167/105 +f 578/1173/111 576/1174/111 577/1172/111 +f 579/1175/112 558/1176/112 575/1177/112 +f 580/1178/25 581/1179/25 582/1180/25 +f 583/1181/9 584/1182/9 585/1183/9 +f 586/1184/26 587/1185/26 580/1186/26 +f 588/1187/113 589/1188/113 590/1189/113 +f 591/1190/114 592/1191/114 589/1192/114 +f 589/1193/115 591/1194/116 593/1195/115 +f 594/1196/117 595/1197/117 592/1191/117 +f 596/1198/118 597/1199/118 598/1200/118 +f 599/1201/119 600/1202/119 601/1203/119 +f 595/1197/120 602/1204/120 603/1205/120 +f 604/1206/121 605/1207/122 593/1208/123 +f 605/1209/118 603/1210/118 602/1211/118 +f 606/1212/25 607/1213/25 608/1214/25 +f 609/1215/9 610/1216/9 611/1217/9 +f 612/1218/8 608/1219/8 610/1220/8 +f 611/1221/6 608/1222/6 607/1223/6 +f 613/1224/26 612/1225/26 609/1226/26 +f 614/1227/124 615/1228/124 616/1229/124 +f 617/1230/125 618/1231/125 619/1232/125 +f 618/1233/126 620/1234/126 619/1235/126 +f 621/1236/127 620/1237/127 622/1238/127 +f 616/1239/128 617/1240/128 614/1241/128 +f 623/1242/9 621/1243/9 624/1244/9 +f 625/1245/129 626/1246/129 615/1228/129 +f 621/1247/130 627/1248/130 628/1249/130 +f 629/1250/131 623/1251/131 626/1252/131 +f 625/1253/25 614/1254/25 617/1255/25 +f 630/1256/26 631/1257/26 632/1258/26 +f 630/1259/132 633/1260/132 634/1261/132 +f 635/1262/133 636/1263/133 631/1264/133 +f 637/1265/134 633/1266/134 638/1267/134 +f 636/1268/135 639/1269/135 640/1270/135 +f 641/1271/136 639/1272/136 642/1273/136 +f 638/1274/137 643/1275/137 637/1276/137 +f 642/1277/138 644/1278/138 641/1279/138 +f 645/1280/139 646/1281/139 647/1282/139 +f 648/1283/140 649/1284/140 646/1285/140 +f 650/1286/141 651/1287/141 652/1288/141 +f 649/1289/9 641/1290/9 644/1291/9 +f 653/1292/142 647/1293/142 654/1294/142 +f 651/1295/25 642/1296/25 643/1297/25 +f 652/1298/143 655/1299/143 650/1300/143 +f 654/1301/144 656/1302/144 653/1303/144 +f 657/1304/145 658/1305/145 656/1306/145 +f 659/1307/146 660/1308/146 658/1309/146 +f 661/1310/147 662/1311/147 663/1312/147 +f 664/1313/9 665/1314/9 666/1315/9 +f 667/1316/6 668/1317/6 669/1318/6 +f 670/1319/148 667/1320/148 669/1321/148 +f 671/1322/149 672/1323/149 673/1324/149 +f 666/1325/150 670/1326/150 674/1327/150 +f 663/1328/25 671/1329/25 675/1330/25 +f 676/1331/151 664/1332/151 677/1333/151 +f 678/1334/149 677/1335/149 679/1336/149 +f 680/1337/150 681/1338/150 682/1339/150 +f 683/1340/148 684/1341/148 685/1342/148 +f 685/1343/6 684/1344/6 686/1345/6 +f 687/1346/6 669/1318/6 668/1347/6 +f 674/1348/152 679/1349/152 666/1350/152 +f 662/1351/151 672/1352/151 688/1353/151 +f 680/1354/152 675/1355/152 671/1356/152 +f 689/1357/147 665/1358/147 664/1359/147 +f 689/1360/25 678/1361/25 674/1362/25 +f 690/1363/153 681/1364/9 691/1365/154 +f 587/1366/2 583/1367/2 581/1368/2 +f 613/1369/2 611/1370/2 607/1371/2 +f 692/1372/25 589/1373/25 592/1374/25 +f 692/1372/25 595/1375/25 693/1376/25 +f 693/1376/25 603/1377/25 694/1378/25 +f 599/1201/25 589/1379/25 695/1380/25 +f 599/1201/25 696/1381/25 604/1382/25 +f 601/1203/9 603/1210/25 696/1381/25 +f 697/1383/25 698/1384/25 699/1385/25 +f 694/1378/120 700/1386/120 693/1376/120 +f 692/1372/114 699/1385/114 695/1387/114 +f 601/1203/118 697/1388/118 694/1389/118 +f 695/1380/155 698/1390/155 599/1201/155 +f 693/1376/117 701/1391/117 692/1372/117 +f 702/1392/9 591/1393/9 593/1394/9 +f 703/1395/9 704/1396/9 594/1397/9 +f 703/1398/9 591/1190/9 705/1399/9 +f 598/1200/25 593/1394/9 605/1400/9 +f 598/1200/25 602/1211/9 596/1198/9 +f 706/1401/9 602/1402/9 704/1396/9 +f 707/1403/9 708/1404/9 709/1405/9 +f 705/1406/114 710/1407/114 703/1395/114 +f 702/1392/156 707/1408/156 705/1409/156 +f 706/1401/120 709/1405/120 596/1410/120 +f 598/1200/157 708/1411/157 702/1392/157 +f 703/1395/117 711/1412/117 706/1401/117 +f 595/1197/158 700/1413/158 701/1414/158 +f 589/1415/159 592/1416/159 701/1417/159 +f 603/1418/160 697/1419/160 700/1420/160 +f 600/1421/161 697/1422/161 603/1423/161 +f 604/1424/162 600/1425/162 696/1426/162 +f 589/1427/163 698/1428/164 600/1429/165 +f 602/1204/166 704/1430/166 711/1431/166 +f 602/1432/167 709/1433/167 597/1434/167 +f 593/1435/168 605/1436/168 597/1437/168 +f 597/1438/169 708/1439/170 579/1440/171 +f 710/1441/172 594/1442/173 579/1443/174 +f 710/1444/175 711/1445/175 704/1446/175 +f 712/1447/25 575/1177/25 558/1176/25 +f 712/1447/25 560/1448/25 713/1449/25 +f 714/1450/25 566/1451/25 715/1452/25 +f 716/1453/25 566/1451/25 717/1454/25 +f 714/1450/25 560/1448/25 564/1455/25 +f 718/1456/25 575/1177/25 719/1457/25 +f 563/1156/25 577/1458/25 561/1154/25 +f 718/1456/25 577/1458/25 576/1459/25 +f 716/1453/25 572/1460/25 563/1156/25 +f 720/1461/25 721/1462/25 562/1463/25 +f 716/1453/108 722/1464/108 715/1452/108 +f 712/1447/112 723/1465/112 719/1457/112 +f 718/1456/111 724/1466/111 561/1154/111 +f 714/1450/106 721/1467/106 713/1449/106 +f 713/1449/104 720/1468/104 712/1447/104 +f 563/1156/109 725/1469/109 716/1453/109 +f 719/1457/110 726/1470/110 718/1456/110 +f 715/1452/107 727/1471/107 714/1450/107 +f 728/1472/9 579/1175/9 729/1473/9 +f 728/1472/9 559/1474/9 730/1475/9 +f 571/1166/9 567/1476/9 565/1477/9 +f 731/1478/9 567/1476/9 732/1479/9 +f 571/1166/9 559/1474/9 569/1164/9 +f 733/1480/9 579/1175/9 574/1481/9 +f 734/1482/9 578/1483/9 573/1484/9 +f 733/1480/9 578/1483/9 735/1485/9 +f 731/1478/9 573/1484/9 568/1486/9 +f 736/1487/9 737/1488/9 738/1489/9 +f 728/1472/104 738/1490/104 569/1164/104 +f 731/1478/109 736/1491/109 734/1482/109 +f 733/1480/110 739/1492/110 729/1473/110 +f 571/1166/107 737/1493/107 732/1479/107 +f 734/1482/105 740/1494/105 735/1485/105 +f 732/1479/108 741/1495/108 731/1478/108 +f 729/1473/112 742/1496/112 728/1472/112 +f 735/1485/111 743/1497/111 733/1480/111 +f 567/1161/176 565/1159/176 570/1498/176 +f 567/1499/177 737/1500/177 741/1501/177 +f 741/1502/178 736/1503/178 573/1504/178 +f 736/1505/179 740/1506/179 578/1507/179 +f 578/1507/180 740/1506/180 743/1508/180 +f 743/1508/181 739/1509/181 579/1510/181 +f 742/1511/182 730/1512/182 579/1510/182 +f 742/1511/183 738/1513/183 559/1514/183 +f 559/1514/184 738/1513/184 570/1515/184 +f 566/1163/185 717/1516/185 725/1517/185 +f 566/1518/186 722/1519/186 727/1520/186 +f 727/1520/187 721/1521/187 560/1522/187 +f 720/1523/188 558/1524/188 560/1522/188 +f 575/1525/189 558/1524/189 720/1523/189 +f 575/1525/190 723/1526/190 726/1527/190 +f 726/1527/191 724/1528/191 577/1529/191 +f 577/1529/192 724/1528/192 562/1530/192 +f 572/1531/193 562/1530/193 725/1532/193 +f 583/1533/113 582/1534/113 581/1535/113 +f 744/1536/194 580/1537/26 745/1538/194 +f 745/1539/25 582/1180/25 590/1540/25 +f 604/1541/25 590/1540/25 589/1542/25 +f 593/1543/195 745/1544/195 604/1545/195 +f 746/1546/113 590/1189/113 582/1534/113 +f 747/1547/196 748/1548/197 749/1549/197 +f 749/1550/198 746/1551/9 747/1552/9 +f 750/1553/9 744/1554/199 751/1555/200 +f 752/1556/9 753/1557/9 754/1558/201 +f 754/1559/202 755/1560/202 756/1561/202 +f 750/1562/203 752/1563/203 585/1564/203 +f 751/1565/6 757/1566/6 750/1562/6 +f 585/1564/203 758/1567/203 747/1547/203 +f 759/1568/204 753/1569/205 751/1565/206 +f 758/1570/9 754/1571/201 748/1572/207 +f 755/1560/208 760/1573/209 756/1561/210 +f 749/1549/211 760/1573/211 761/1574/211 +f 754/1559/201 760/1573/212 748/1548/207 +f 751/1575/200 744/1576/199 755/1577/213 +f 558/1151/104 730/1578/104 559/1152/104 +f 561/1154/105 724/1466/105 562/1155/105 +f 564/1157/106 560/1579/106 559/1158/106 +f 566/1160/107 564/1157/107 565/1159/107 +f 568/1162/108 717/1516/108 566/1163/108 +f 569/1164/106 738/1490/106 570/1165/106 +f 572/1167/109 717/1516/109 568/1162/109 +f 574/1169/110 579/1580/110 575/1170/110 +f 573/1168/105 578/1173/105 577/1172/105 +f 578/1173/111 574/1581/111 576/1174/111 +f 579/1175/112 730/1475/112 558/1176/112 +f 580/1178/25 587/1582/25 581/1179/25 +f 586/1583/9 750/1584/9 584/1585/9 +f 750/1584/9 585/1586/9 584/1585/9 +f 585/1586/9 747/1587/9 583/1588/9 +f 747/1587/9 746/1589/9 583/1588/9 +f 586/1184/26 584/1590/26 587/1185/26 +f 588/1187/113 591/1591/113 589/1188/113 +f 591/1190/114 594/1196/114 592/1191/114 +f 589/1193/115 593/1195/115 604/1592/214 +f 594/1196/117 704/1430/117 595/1197/117 +f 596/1198/118 709/1593/118 597/1199/118 +f 599/1201/119 698/1390/119 600/1202/119 +f 595/1197/120 704/1430/120 602/1204/120 +f 604/1206/121 696/1594/215 605/1207/122 +f 605/1209/118 696/1381/118 603/1210/118 +f 606/1212/25 613/1595/25 607/1213/25 +f 609/1215/9 612/1596/9 610/1216/9 +f 612/1218/8 606/1597/8 608/1219/8 +f 611/1221/6 610/1598/6 608/1222/6 +f 613/1224/26 606/1599/26 612/1225/26 +f 614/1227/124 625/1245/124 615/1228/124 +f 617/1230/125 624/1600/125 618/1231/125 +f 618/1233/126 622/1601/126 620/1234/126 +f 621/1236/127 628/1602/127 620/1237/127 +f 616/1239/128 624/1603/128 617/1240/128 +f 622/1604/9 618/1605/9 624/1244/9 +f 624/1244/9 616/1606/9 615/1607/9 +f 615/1607/9 626/1608/9 623/1242/9 +f 621/1243/9 622/1604/9 624/1244/9 +f 615/1607/9 623/1242/9 624/1244/9 +f 625/1245/129 629/1609/129 626/1246/129 +f 621/1247/130 623/1610/130 627/1248/130 +f 629/1250/131 627/1611/131 623/1251/131 +f 619/1612/25 620/1613/25 617/1255/25 +f 620/1613/25 628/1614/25 617/1255/25 +f 628/1614/25 627/1615/25 617/1255/25 +f 627/1615/25 629/1616/25 625/1253/25 +f 617/1255/25 627/1615/25 625/1253/25 +f 630/1256/26 635/1617/26 631/1257/26 +f 630/1259/132 632/1618/132 633/1260/132 +f 635/1262/133 762/1619/133 636/1263/133 +f 637/1265/134 634/1620/134 633/1266/134 +f 636/1268/135 762/1621/135 639/1269/135 +f 641/1271/136 640/1622/136 639/1272/136 +f 638/1274/137 649/1623/137 643/1275/137 +f 642/1277/138 651/1624/138 644/1278/138 +f 645/1280/139 648/1625/139 646/1281/139 +f 648/1283/140 643/1626/140 649/1284/140 +f 650/1286/141 644/1627/141 651/1287/141 +f 647/1628/9 646/1629/9 650/1630/9 +f 646/1629/9 649/1289/9 644/1291/9 +f 649/1289/9 638/1631/9 641/1290/9 +f 638/1631/9 633/1632/9 641/1290/9 +f 633/1632/9 632/1633/9 631/1634/9 +f 633/1632/9 631/1634/9 636/1635/9 +f 659/1636/9 657/1637/9 655/1638/9 +f 657/1637/9 654/1639/9 655/1638/9 +f 633/1632/9 636/1635/9 640/1640/9 +f 633/1632/9 640/1640/9 641/1290/9 +f 655/1638/9 654/1639/9 647/1628/9 +f 650/1630/9 655/1638/9 647/1628/9 +f 644/1291/9 650/1630/9 646/1629/9 +f 653/1292/142 645/1641/142 647/1293/142 +f 653/1642/25 656/1643/25 660/1644/25 +f 656/1643/25 658/1645/25 660/1644/25 +f 643/1297/25 648/1646/25 651/1295/25 +f 648/1646/25 645/1647/25 652/1648/25 +f 634/1649/25 637/1650/25 642/1296/25 +f 637/1650/25 643/1297/25 642/1296/25 +f 635/1651/25 630/1652/25 634/1649/25 +f 762/1653/25 635/1651/25 634/1649/25 +f 645/1647/25 653/1642/25 660/1644/25 +f 645/1647/25 660/1644/25 652/1648/25 +f 639/1654/25 762/1653/25 634/1649/25 +f 642/1296/25 639/1654/25 634/1649/25 +f 648/1646/25 652/1648/25 651/1295/25 +f 652/1298/143 660/1655/143 655/1299/143 +f 654/1301/144 657/1656/144 656/1302/144 +f 657/1304/145 659/1657/145 658/1305/145 +f 659/1307/146 655/1658/146 660/1308/146 +f 661/1310/147 686/1659/147 662/1311/147 +f 665/1314/9 667/1660/9 666/1315/9 +f 667/1660/9 763/1661/9 666/1315/9 +f 666/1315/9 679/1662/9 664/1313/9 +f 679/1662/9 677/1663/9 664/1313/9 +f 667/1316/6 665/1664/6 668/1317/6 +f 670/1319/148 763/1665/148 667/1320/148 +f 671/1322/149 688/1666/149 672/1323/149 +f 666/1325/150 763/1667/150 670/1326/150 +f 685/1668/25 661/1669/25 675/1330/25 +f 661/1669/25 663/1328/25 675/1330/25 +f 663/1328/25 688/1670/25 671/1329/25 +f 675/1330/25 683/1671/25 685/1668/25 +f 676/1331/151 689/1672/151 664/1332/151 +f 678/1334/149 676/1673/149 677/1335/149 +f 682/1339/150 683/1674/150 675/1675/150 +f 680/1337/150 691/1676/150 681/1338/150 +f 682/1339/150 675/1675/150 680/1337/150 +f 683/1340/148 682/1677/148 684/1341/148 +f 686/1345/6 661/1678/6 685/1343/6 +f 684/1344/6 690/1679/6 686/1345/6 +f 674/1348/152 678/1680/152 679/1349/152 +f 688/1353/151 663/1681/151 662/1351/151 +f 662/1351/151 764/1682/151 672/1352/151 +f 671/1356/152 673/1683/152 680/1354/152 +f 673/1683/152 765/1684/152 680/1354/152 +f 765/1684/152 691/1685/152 680/1354/152 +f 689/1357/147 668/1686/147 665/1358/147 +f 669/1687/25 668/1688/25 674/1362/25 +f 668/1688/25 689/1360/25 674/1362/25 +f 689/1360/25 676/1689/25 678/1361/25 +f 674/1362/25 670/1690/25 669/1687/25 +f 691/1365/154 765/1691/216 662/1692/217 +f 765/1691/216 764/1693/218 662/1692/217 +f 662/1692/217 686/1694/219 691/1365/154 +f 686/1694/219 690/1363/153 691/1365/154 +f 587/1366/2 584/1695/2 583/1367/2 +f 613/1369/2 609/1696/2 611/1370/2 +f 692/1372/25 695/1387/25 589/1373/25 +f 692/1697/25 592/1191/25 595/1197/25 +f 693/1376/25 595/1375/25 603/1377/25 +f 599/1201/25 604/1382/25 589/1379/25 +f 599/1201/25 601/1203/9 696/1381/25 +f 601/1203/9 694/1389/25 603/1210/25 +f 699/1698/25 701/1414/25 700/1413/25 +f 697/1383/25 600/1699/25 698/1384/25 +f 699/1698/25 700/1413/25 697/1700/25 +f 694/1378/120 697/1383/120 700/1386/120 +f 692/1372/114 701/1391/114 699/1385/114 +f 601/1203/118 600/1202/118 697/1388/118 +f 695/1380/155 699/1701/155 698/1390/155 +f 693/1702/117 700/1413/117 701/1414/117 +f 702/1392/9 705/1409/9 591/1393/9 +f 703/1395/9 706/1401/9 704/1396/9 +f 703/1398/9 594/1196/9 591/1190/9 +f 598/1200/25 702/1392/9 593/1394/9 +f 598/1200/25 605/1400/9 602/1211/9 +f 706/1401/9 596/1410/9 602/1402/9 +f 708/1404/9 597/1703/9 709/1405/9 +f 709/1704/9 711/1431/9 707/1705/9 +f 711/1431/9 710/1706/9 707/1705/9 +f 705/1399/114 707/1705/114 710/1706/114 +f 702/1392/156 708/1411/156 707/1408/156 +f 706/1401/120 711/1412/120 709/1405/120 +f 598/1200/157 597/1199/157 708/1411/157 +f 703/1395/117 710/1407/117 711/1412/117 +f 595/1197/158 701/1414/158 592/1191/158 +f 589/1415/159 701/1417/159 699/1707/159 +f 603/1418/160 700/1420/160 595/1708/160 +f 600/1421/161 603/1423/161 696/1709/161 +f 698/1428/164 589/1427/163 699/1710/220 +f 589/1427/163 600/1429/165 604/1711/221 +f 602/1204/222 711/1431/222 709/1704/222 +f 602/1432/167 597/1434/167 605/1712/167 +f 593/1713/223 597/1438/224 579/1440/225 +f 579/1440/171 708/1439/170 707/1714/226 +f 710/1441/172 579/1443/174 707/1715/227 +f 710/1441/175 704/1716/175 594/1442/175 +f 712/1447/25 719/1457/25 575/1177/25 +f 712/1447/25 558/1176/25 560/1448/25 +f 714/1450/25 564/1455/25 566/1451/25 +f 716/1453/25 715/1452/25 566/1451/25 +f 714/1450/25 713/1449/25 560/1448/25 +f 718/1456/25 576/1459/25 575/1177/25 +f 563/1156/25 572/1460/25 577/1458/25 +f 718/1456/25 561/1154/25 577/1458/25 +f 716/1453/25 717/1454/25 572/1460/25 +f 722/1717/25 725/1517/25 562/1463/25 +f 724/1718/25 726/1719/25 723/1720/25 +f 727/1721/25 722/1717/25 721/1462/25 +f 722/1717/25 562/1463/25 721/1462/25 +f 562/1463/25 724/1718/25 720/1461/25 +f 724/1718/25 723/1720/25 720/1461/25 +f 716/1453/108 725/1469/108 722/1464/108 +f 712/1447/112 720/1468/112 723/1465/112 +f 718/1456/111 726/1470/111 724/1466/111 +f 714/1450/106 727/1471/106 721/1467/106 +f 713/1449/104 721/1467/104 720/1468/104 +f 563/1156/109 562/1155/109 725/1469/109 +f 719/1457/110 723/1465/110 726/1470/110 +f 715/1452/107 722/1464/107 727/1471/107 +f 728/1472/9 730/1475/9 579/1175/9 +f 728/1472/9 569/1164/9 559/1474/9 +f 571/1166/9 732/1479/9 567/1476/9 +f 731/1478/9 568/1486/9 567/1476/9 +f 571/1166/9 565/1477/9 559/1474/9 +f 733/1480/9 729/1473/9 579/1175/9 +f 734/1482/9 735/1485/9 578/1483/9 +f 733/1480/9 574/1481/9 578/1483/9 +f 731/1478/9 734/1482/9 573/1484/9 +f 737/1488/9 570/1498/9 738/1489/9 +f 738/1489/9 742/1722/9 736/1487/9 +f 742/1722/9 739/1723/9 740/1724/9 +f 736/1487/9 742/1722/9 740/1724/9 +f 739/1723/9 743/1725/9 740/1724/9 +f 736/1487/9 741/1726/9 737/1488/9 +f 728/1472/104 742/1496/104 738/1490/104 +f 731/1478/109 741/1495/109 736/1491/109 +f 733/1480/110 743/1497/110 739/1492/110 +f 571/1166/107 570/1165/107 737/1493/107 +f 734/1482/105 736/1491/105 740/1494/105 +f 732/1479/108 737/1493/108 741/1495/108 +f 729/1473/112 739/1492/112 742/1496/112 +f 735/1485/111 740/1494/111 743/1497/111 +f 567/1161/176 570/1498/176 737/1488/176 +f 567/1499/177 741/1501/177 568/1727/177 +f 741/1502/178 573/1504/178 568/1728/178 +f 736/1505/179 578/1507/179 573/1729/179 +f 578/1507/180 743/1508/180 574/1730/180 +f 743/1508/181 579/1510/181 574/1730/181 +f 742/1511/182 579/1510/182 739/1509/182 +f 742/1511/183 559/1514/183 730/1512/183 +f 559/1514/184 570/1515/184 565/1731/184 +f 566/1163/185 725/1517/185 722/1717/185 +f 566/1518/186 727/1520/186 564/1732/186 +f 727/1520/187 560/1522/187 564/1732/187 +f 720/1523/188 560/1522/188 721/1521/188 +f 575/1525/189 720/1523/189 723/1526/189 +f 575/1525/190 726/1527/190 576/1733/190 +f 726/1527/191 577/1529/191 576/1733/191 +f 577/1529/192 562/1530/192 572/1531/192 +f 572/1531/193 725/1532/193 717/1734/193 +f 583/1533/113 746/1546/113 582/1534/113 +f 744/1536/194 586/1735/26 580/1537/26 +f 745/1539/25 580/1178/25 582/1180/25 +f 604/1541/25 745/1539/25 590/1540/25 +f 593/1543/194 744/1736/194 745/1544/194 +f 746/1546/113 588/1187/113 590/1189/113 +f 747/1547/196 758/1567/196 748/1548/197 +f 749/1737/198 588/1738/228 746/1739/9 +f 750/1740/9 586/1741/9 744/1742/199 +f 752/1556/9 757/1743/9 753/1557/9 +f 754/1559/202 759/1568/202 755/1560/202 +f 750/1562/203 757/1566/203 752/1563/203 +f 751/1565/6 753/1569/6 757/1566/6 +f 585/1564/203 752/1563/203 758/1567/203 +f 759/1568/204 754/1559/229 753/1569/205 +f 758/1570/9 752/1744/9 754/1571/201 +f 755/1560/208 761/1574/230 760/1573/209 +f 749/1549/211 748/1548/211 760/1573/211 +f 754/1559/201 756/1561/212 760/1573/212 +f 591/1745/231 588/1746/228 761/1747/232 +f 588/1746/228 749/1748/198 761/1747/232 +f 744/1576/199 593/1749/233 755/1577/213 +f 593/1749/233 591/1745/231 761/1747/232 +f 755/1577/213 593/1749/233 761/1747/232 +f 759/1750/234 751/1575/200 755/1577/213 +f 766/1751/235 767/1752/235 768/1753/235 +f 769/1754/236 770/1755/236 767/1752/236 +f 771/1756/237 772/1757/237 770/1755/237 +f 773/1758/238 774/1759/238 772/1757/238 +f 775/1760/239 776/1761/239 774/1759/239 +f 777/1762/240 778/1763/240 776/1761/240 +f 779/1764/241 780/1765/241 778/1763/241 +f 781/1766/242 782/1767/242 780/1765/242 +f 783/1768/243 784/1769/243 782/1767/243 +f 785/1770/244 786/1771/244 784/1769/244 +f 787/1772/245 788/1773/245 786/1771/245 +f 789/1774/246 790/1775/246 788/1773/246 +f 791/1776/247 792/1777/247 790/1775/247 +f 793/1778/248 794/1779/248 792/1777/248 +f 795/1780/249 796/1781/249 794/1779/249 +f 797/1782/250 798/1783/250 796/1781/250 +f 799/1784/251 800/1785/251 798/1783/251 +f 801/1786/252 802/1787/252 800/1785/252 +f 803/1788/253 804/1789/253 802/1787/253 +f 805/1790/254 806/1791/254 804/1789/254 +f 807/1792/255 808/1793/255 806/1791/255 +f 809/1794/256 810/1795/256 808/1793/256 +f 811/1796/257 812/1797/257 810/1795/257 +f 813/1798/258 814/1799/258 812/1797/258 +f 815/1800/251 816/1801/251 817/1802/251 +f 815/1800/2 769/1803/2 766/1804/2 +f 817/1802/2 771/1805/2 769/1803/2 +f 818/1806/2 771/1805/2 819/1807/2 +f 820/1808/2 773/1809/2 818/1806/2 +f 820/1808/2 777/1810/2 775/1811/2 +f 821/1812/2 779/1813/2 777/1810/2 +f 822/1814/2 779/1813/2 823/1815/2 +f 824/1816/2 781/1817/2 822/1814/2 +f 824/1816/2 785/1818/2 783/1819/2 +f 825/1820/2 787/1821/2 785/1818/2 +f 826/1822/2 787/1821/2 827/1823/2 +f 828/1824/2 789/1825/2 826/1822/2 +f 828/1824/2 793/1826/2 791/1827/2 +f 829/1828/2 795/1829/2 793/1826/2 +f 830/1830/2 795/1829/2 831/1831/2 +f 832/1832/2 797/1833/2 830/1830/2 +f 832/1832/2 801/1834/2 799/1835/2 +f 833/1836/2 803/1837/2 801/1834/2 +f 834/1838/2 803/1837/2 835/1839/2 +f 836/1840/2 805/1841/2 834/1838/2 +f 836/1840/2 809/1842/2 807/1843/2 +f 837/1844/2 811/1845/2 809/1842/2 +f 838/1846/2 813/1847/2 811/1845/2 +f 839/1848/2 840/1849/2 813/1847/2 +f 841/1850/246 842/1851/246 843/1852/246 +f 831/1831/259 844/1853/259 830/1830/259 +f 817/1802/252 845/1854/252 819/1807/252 +f 830/1830/260 846/1855/260 832/1832/260 +f 819/1807/253 847/1856/253 818/1806/253 +f 832/1832/235 848/1857/235 833/1836/235 +f 818/1806/254 849/1858/254 820/1808/254 +f 833/1836/236 850/1859/236 835/1839/236 +f 820/1808/255 851/1860/255 821/1812/255 +f 835/1839/237 852/1861/237 834/1838/237 +f 821/1812/256 853/1862/256 823/1815/256 +f 834/1838/238 854/1863/238 836/1840/238 +f 823/1815/257 855/1864/257 822/1814/257 +f 836/1840/239 856/1865/239 837/1844/239 +f 822/1814/258 857/1866/258 824/1816/258 +f 837/1844/240 858/1867/240 838/1846/240 +f 824/1816/261 859/1868/261 825/1820/261 +f 838/1846/241 860/1869/241 839/1848/241 +f 825/1820/262 861/1870/262 827/1823/262 +f 843/1852/247 862/1871/247 863/1872/247 +f 839/1848/242 864/1873/242 865/1874/242 +f 827/1823/263 866/1875/263 826/1822/263 +f 863/1872/248 867/1876/248 868/1877/248 +f 865/1874/243 869/1878/243 870/1879/243 +f 826/1822/264 871/1880/264 828/1824/264 +f 868/1877/249 872/1881/249 873/1882/249 +f 870/1879/244 874/1883/244 875/1884/244 +f 828/1824/265 876/1885/265 829/1828/265 +f 873/1882/250 877/1886/250 815/1800/250 +f 875/1884/245 878/1887/245 841/1850/245 +f 829/1828/266 879/1888/266 831/1831/266 +f 880/1889/8 768/1890/267 767/1891/8 +f 880/1889/8 770/1892/8 881/1893/8 +f 882/1894/8 770/1892/8 772/1895/8 +f 882/1894/8 774/1896/8 883/1897/8 +f 884/1898/8 774/1896/8 776/1899/8 +f 884/1898/8 778/1900/8 885/1901/8 +f 885/1901/8 780/1902/8 886/1903/8 +f 886/1903/8 782/1904/8 887/1905/8 +f 888/1906/8 782/1904/8 784/1907/8 +f 888/1906/8 786/1908/8 889/1909/8 +f 890/1910/8 786/1908/8 788/1911/8 +f 890/1910/8 790/1912/8 891/1913/8 +f 892/1914/8 790/1912/8 792/1915/8 +f 892/1914/8 794/1916/8 893/1917/8 +f 894/1918/8 794/1916/8 796/1919/8 +f 894/1918/8 798/1920/8 895/1921/8 +f 896/1922/8 798/1920/8 800/1923/8 +f 896/1922/8 802/1924/8 897/1925/8 +f 898/1926/8 802/1924/8 804/1927/8 +f 898/1926/8 806/1928/8 899/1929/8 +f 900/1930/8 806/1928/8 808/1931/8 +f 900/1930/8 810/1932/8 901/1933/8 +f 902/1934/8 810/1932/8 812/1935/8 +f 902/1934/8 814/1936/268 903/1937/8 +f 904/1938/25 905/1939/25 906/1940/25 +f 907/1941/2 908/1942/2 905/1939/2 +f 909/1943/9 910/1944/9 908/1942/9 +f 911/1945/8 906/1946/8 910/1944/8 +f 908/1942/6 906/1947/6 905/1948/6 +f 766/1751/269 912/1949/270 913/1950/269 +f 814/1799/271 914/1951/261 915/1952/261 +f 863/1872/2 916/1953/2 843/1852/2 +f 868/1877/2 917/1954/2 863/1872/2 +f 873/1882/2 918/1955/2 868/1877/2 +f 815/1800/2 913/1956/2 919/1957/2 +f 865/1874/2 920/1958/2 914/1959/2 +f 870/1879/2 921/1960/2 920/1958/2 +f 875/1884/2 922/1961/2 921/1960/2 +f 841/1850/2 916/1953/2 922/1961/2 +f 923/1962/8 924/1963/8 925/1964/8 +f 926/1965/8 925/1964/8 927/1966/8 +f 928/1967/8 927/1966/8 929/1968/8 +f 930/1969/8 928/1967/8 929/1968/8 +f 903/1937/8 814/1936/268 915/1970/272 +f 931/1971/8 932/1972/8 933/1973/8 +f 934/1974/8 935/1975/8 931/1971/8 +f 924/1963/8 936/1976/8 934/1974/8 +f 912/1977/26 911/1945/26 909/1943/26 +f 907/1978/26 915/1979/26 914/1980/26 +f 766/1751/235 769/1754/235 767/1752/235 +f 769/1754/236 771/1756/236 770/1755/236 +f 771/1756/237 773/1758/237 772/1757/237 +f 773/1758/238 775/1760/238 774/1759/238 +f 775/1760/239 777/1762/239 776/1761/239 +f 777/1762/240 779/1764/240 778/1763/240 +f 779/1764/241 781/1766/241 780/1765/241 +f 781/1766/242 783/1768/242 782/1767/242 +f 783/1768/243 785/1770/243 784/1769/243 +f 785/1770/244 787/1772/244 786/1771/244 +f 787/1772/245 789/1774/245 788/1773/245 +f 789/1774/246 791/1776/246 790/1775/246 +f 791/1776/247 793/1778/247 792/1777/247 +f 793/1778/248 795/1780/248 794/1779/248 +f 795/1780/249 797/1782/249 796/1781/249 +f 797/1782/250 799/1784/250 798/1783/250 +f 799/1784/251 801/1786/251 800/1785/251 +f 801/1786/252 803/1788/252 802/1787/252 +f 803/1788/253 805/1790/253 804/1789/253 +f 805/1790/254 807/1792/254 806/1791/254 +f 807/1792/255 809/1794/255 808/1793/255 +f 809/1794/256 811/1796/256 810/1795/256 +f 811/1796/257 813/1798/257 812/1797/257 +f 813/1798/258 840/1981/258 814/1799/258 +f 815/1800/251 877/1886/251 816/1801/251 +f 815/1800/2 817/1802/2 769/1803/2 +f 817/1802/2 819/1807/2 771/1805/2 +f 818/1806/2 773/1809/2 771/1805/2 +f 820/1808/2 775/1811/2 773/1809/2 +f 820/1808/2 821/1812/2 777/1810/2 +f 821/1812/2 823/1815/2 779/1813/2 +f 822/1814/2 781/1817/2 779/1813/2 +f 824/1816/2 783/1819/2 781/1817/2 +f 824/1816/2 825/1820/2 785/1818/2 +f 825/1820/2 827/1823/2 787/1821/2 +f 826/1822/2 789/1825/2 787/1821/2 +f 828/1824/2 791/1827/2 789/1825/2 +f 828/1824/2 829/1828/2 793/1826/2 +f 829/1828/2 831/1831/2 795/1829/2 +f 830/1830/2 797/1833/2 795/1829/2 +f 832/1832/2 799/1835/2 797/1833/2 +f 832/1832/2 833/1836/2 801/1834/2 +f 833/1836/2 835/1839/2 803/1837/2 +f 834/1838/2 805/1841/2 803/1837/2 +f 836/1840/2 807/1843/2 805/1841/2 +f 836/1840/2 837/1844/2 809/1842/2 +f 837/1844/2 838/1846/2 811/1845/2 +f 838/1846/2 839/1848/2 813/1847/2 +f 839/1848/2 865/1874/2 840/1849/2 +f 841/1850/246 878/1887/246 842/1851/246 +f 831/1831/259 879/1888/259 844/1853/259 +f 817/1802/252 816/1801/252 845/1854/252 +f 830/1830/260 844/1853/260 846/1855/260 +f 819/1807/253 845/1854/253 847/1856/253 +f 832/1832/235 846/1855/235 848/1857/235 +f 818/1806/254 847/1856/254 849/1858/254 +f 833/1836/236 848/1857/236 850/1859/236 +f 820/1808/255 849/1858/255 851/1860/255 +f 835/1839/237 850/1859/237 852/1861/237 +f 821/1812/256 851/1860/256 853/1862/256 +f 834/1838/238 852/1861/238 854/1863/238 +f 823/1815/257 853/1862/257 855/1864/257 +f 836/1840/239 854/1863/239 856/1865/239 +f 822/1814/258 855/1864/258 857/1866/258 +f 837/1844/240 856/1865/240 858/1867/240 +f 824/1816/261 857/1866/261 859/1868/261 +f 838/1846/241 858/1867/241 860/1869/241 +f 825/1820/262 859/1868/262 861/1870/262 +f 843/1852/247 842/1851/247 862/1871/247 +f 839/1848/242 860/1869/242 864/1873/242 +f 827/1823/263 861/1870/263 866/1875/263 +f 863/1872/248 862/1871/248 867/1876/248 +f 865/1874/243 864/1873/243 869/1878/243 +f 826/1822/264 866/1875/264 871/1880/264 +f 868/1877/249 867/1876/249 872/1881/249 +f 870/1879/244 869/1878/244 874/1883/244 +f 828/1824/265 871/1880/265 876/1885/265 +f 873/1882/250 872/1881/250 877/1886/250 +f 875/1884/245 874/1883/245 878/1887/245 +f 829/1828/266 876/1885/266 879/1888/266 +f 880/1889/8 930/1969/8 768/1890/267 +f 880/1889/8 767/1891/8 770/1892/8 +f 882/1894/8 881/1893/8 770/1892/8 +f 882/1894/8 772/1895/8 774/1896/8 +f 884/1898/8 883/1897/8 774/1896/8 +f 884/1898/8 776/1899/8 778/1900/8 +f 885/1901/8 778/1900/8 780/1902/8 +f 886/1903/8 780/1902/8 782/1904/8 +f 888/1906/8 887/1905/8 782/1904/8 +f 888/1906/8 784/1907/8 786/1908/8 +f 890/1910/8 889/1909/8 786/1908/8 +f 890/1910/8 788/1911/8 790/1912/8 +f 892/1914/8 891/1913/8 790/1912/8 +f 892/1914/8 792/1915/8 794/1916/8 +f 894/1918/8 893/1917/8 794/1916/8 +f 894/1918/8 796/1919/8 798/1920/8 +f 896/1922/8 895/1921/8 798/1920/8 +f 896/1922/8 800/1923/8 802/1924/8 +f 898/1926/8 897/1925/8 802/1924/8 +f 898/1926/8 804/1927/8 806/1928/8 +f 900/1930/8 899/1929/8 806/1928/8 +f 900/1930/8 808/1931/8 810/1932/8 +f 902/1934/8 901/1933/8 810/1932/8 +f 902/1934/8 812/1935/8 814/1936/268 +f 904/1938/25 907/1941/25 905/1939/25 +f 907/1941/2 909/1943/2 908/1942/2 +f 909/1943/9 911/1945/9 910/1944/9 +f 911/1945/8 904/1982/8 906/1946/8 +f 908/1942/6 910/1944/6 906/1947/6 +f 766/1751/269 768/1753/270 912/1949/270 +f 814/1799/271 840/1981/261 914/1951/261 +f 863/1872/2 917/1954/2 916/1953/2 +f 868/1877/2 918/1955/2 917/1954/2 +f 873/1882/2 919/1957/2 918/1955/2 +f 919/1957/2 873/1882/2 815/1800/2 +f 815/1800/2 766/1804/2 913/1956/2 +f 914/1959/2 840/1849/2 865/1874/2 +f 865/1874/2 870/1879/2 920/1958/2 +f 870/1879/2 875/1884/2 921/1960/2 +f 875/1884/2 841/1850/2 922/1961/2 +f 841/1850/2 843/1852/2 916/1953/2 +f 923/1962/8 937/1983/8 924/1963/8 +f 926/1965/8 923/1962/8 925/1964/8 +f 928/1967/8 926/1965/8 927/1966/8 +f 929/1968/8 912/1984/273 930/1969/8 +f 912/1984/273 768/1890/267 930/1969/8 +f 915/1970/272 933/1973/8 903/1937/8 +f 933/1973/8 932/1972/8 903/1937/8 +f 931/1971/8 935/1975/8 932/1972/8 +f 934/1974/8 936/1976/8 935/1975/8 +f 924/1963/8 937/1983/8 936/1976/8 +f 933/1985/26 915/1979/26 904/1986/26 +f 909/1943/26 907/1978/26 916/1987/26 +f 907/1978/26 914/1980/26 920/1988/26 +f 920/1988/26 921/1989/26 907/1978/26 +f 921/1989/26 922/1990/26 907/1978/26 +f 907/1978/26 922/1990/26 916/1987/26 +f 933/1985/26 904/1986/26 931/1991/26 +f 904/1986/26 911/1945/26 924/1992/26 +f 931/1991/26 904/1986/26 934/1993/26 +f 924/1992/26 934/1993/26 904/1986/26 +f 916/1987/26 917/1994/26 909/1943/26 +f 917/1994/26 918/1995/26 909/1943/26 +f 929/1996/26 927/1997/26 911/1945/26 +f 927/1997/26 925/1998/26 911/1945/26 +f 925/1998/26 924/1992/26 911/1945/26 +f 918/1995/26 919/1999/26 909/1943/26 +f 919/1999/26 913/2000/26 909/1943/26 +f 912/1977/26 929/1996/26 911/1945/26 +f 913/2000/26 912/1977/26 909/1943/26 +f 907/1978/26 904/1986/26 915/1979/26 +f 938/2001/274 939/2002/274 940/2003/274 +f 939/2002/275 941/2004/275 940/2003/275 +f 942/2005/276 943/2006/276 941/2004/276 +f 944/2007/277 938/2008/277 943/2006/277 +f 941/2004/6 938/2009/6 940/2010/6 +f 939/2011/26 944/2007/26 942/2005/26 +f 945/2012/278 946/2013/278 947/2014/278 +f 946/2013/279 948/2015/279 947/2014/279 +f 949/2016/280 950/2017/280 948/2015/280 +f 951/2018/281 945/2019/282 950/2020/282 +f 952/2021/6 953/2022/6 954/2023/6 +f 946/2024/26 951/2025/26 949/2016/26 +f 950/2017/282 953/2026/282 955/2027/282 +f 948/2015/280 955/2027/280 952/2021/280 +f 947/2014/279 952/2021/279 954/2028/279 +f 953/2029/278 947/2014/278 954/2028/278 +f 956/2030/283 957/2031/283 958/2032/283 +f 958/2032/284 959/2033/284 960/2034/284 +f 959/2033/285 961/2035/285 960/2034/286 +f 962/2036/287 956/2037/287 961/2035/287 +f 960/2034/288 956/2038/288 958/2039/288 +f 957/2040/289 962/2036/289 959/2033/289 +f 963/2041/290 964/2042/290 965/2043/290 +f 964/2042/291 966/2044/291 965/2043/291 +f 967/2045/292 968/2046/292 966/2044/292 +f 969/2047/293 963/2048/293 968/2046/293 +f 966/2044/294 963/2049/294 965/2050/294 +f 964/2051/295 969/2047/295 967/2045/295 +f 938/2001/274 970/2052/274 939/2002/274 +f 939/2002/275 942/2005/275 941/2004/275 +f 942/2005/276 944/2007/276 943/2006/276 +f 944/2007/277 970/2053/277 938/2008/277 +f 941/2004/6 943/2006/6 938/2009/6 +f 939/2011/26 970/2054/26 944/2007/26 +f 945/2012/278 971/2055/278 946/2013/278 +f 946/2013/279 949/2016/279 948/2015/279 +f 949/2016/280 951/2025/280 950/2017/280 +f 951/2018/281 971/2056/281 945/2019/282 +f 952/2021/6 955/2027/6 953/2022/6 +f 946/2024/26 971/2057/26 951/2025/26 +f 950/2017/282 945/2058/282 953/2026/282 +f 948/2015/280 950/2017/280 955/2027/280 +f 947/2014/279 948/2015/279 952/2021/279 +f 953/2029/278 945/2012/278 947/2014/278 +f 956/2030/283 972/2059/283 957/2031/283 +f 958/2032/284 957/2031/284 959/2033/284 +f 959/2033/285 962/2036/285 961/2035/285 +f 962/2036/287 972/2060/287 956/2037/287 +f 960/2034/288 961/2035/288 956/2038/288 +f 957/2040/289 972/2061/289 962/2036/289 +f 963/2041/290 973/2062/290 964/2042/290 +f 964/2042/291 967/2045/291 966/2044/291 +f 967/2045/292 969/2047/292 968/2046/292 +f 969/2047/293 973/2063/293 963/2048/293 +f 966/2044/294 968/2046/294 963/2049/294 +f 964/2051/295 973/2064/295 969/2047/295 +o Slide_Cylinder +v 1.272063 1.594606 -0.244676 +v 1.272063 1.368420 -0.338365 +v 1.272063 1.462109 -0.564550 +v 0.647653 0.965039 -0.742828 +v 0.711569 1.012017 5.211916 +v 0.647653 0.965039 5.211916 +v 0.711569 1.012017 -0.742828 +v 0.770475 1.088305 5.211916 +v 0.770475 1.088305 -0.742828 +v 0.822106 1.190971 5.211916 +v 0.822106 1.190971 -0.742828 +v 0.864478 1.316070 5.211916 +v 0.921900 1.774713 -0.742828 +v 0.915353 1.918690 3.212208 +v 0.921900 1.774713 3.711916 +v 0.915353 1.935767 -0.742828 +v 0.895964 2.073555 3.212208 +v 0.895964 2.090632 -0.742828 +v 0.864478 2.216279 3.212208 +v 0.864478 2.233356 -0.742828 +v 0.822106 2.341378 3.212208 +v 0.822106 2.358455 -0.742828 +v 0.770475 2.444044 3.212208 +v 0.770475 2.461121 -0.742828 +v 0.711569 2.520332 3.212208 +v 0.711569 2.537409 -0.742828 +v 0.647653 2.567310 3.212208 +v 0.904673 1.528358 -0.577728 +v 1.272063 1.494584 -0.574402 +v 0.900445 1.494584 -0.574402 +v 0.896379 1.462109 -0.564550 +v 1.272063 1.432180 -0.548553 +v 0.890093 1.432180 -0.548553 +v 0.895964 1.458794 -0.562778 +v 1.272063 1.405947 -0.527024 +v 0.884306 1.405947 -0.527024 +v 1.272063 1.384418 -0.500791 +v 0.879556 1.384418 -0.500791 +v 1.272063 1.368420 -0.470861 +v 0.876027 1.368420 -0.470861 +v 1.272063 1.358569 -0.438386 +v 0.873854 1.358569 -0.438386 +v 1.272063 1.355243 -0.404613 +v 0.873120 1.355243 -0.404613 +v 0.873854 1.358569 -0.370840 +v 1.272063 1.358569 -0.370840 +v 0.876027 1.368420 -0.338365 +v 0.879556 1.384418 -0.308436 +v 1.272063 1.384418 -0.308436 +v 0.884306 1.405947 -0.282203 +v 1.272063 1.405947 -0.282203 +v 0.890093 1.432180 -0.260674 +v 1.272063 1.432180 -0.260674 +v 0.896379 1.462109 -0.244676 +v 0.895964 1.458794 -0.246449 +v 1.272063 1.462109 -0.244676 +v 0.900445 1.494585 -0.234825 +v 1.272063 1.494585 -0.234825 +v 0.904673 1.528358 -0.231499 +v 1.272063 1.528358 -0.231499 +v 0.908902 1.562131 -0.234825 +v 1.272063 1.562131 -0.234825 +v 0.912967 1.594606 -0.244676 +v 1.272063 1.624535 -0.260674 +v 0.915795 1.624535 -0.260674 +v 0.915353 1.613659 -0.254860 +v 0.916861 1.650768 -0.282203 +v 1.272063 1.650768 -0.282203 +v 0.917736 1.672297 -0.308436 +v 1.272063 1.672297 -0.308436 +v 0.918387 1.688295 -0.338366 +v 1.272063 1.688295 -0.338366 +v 0.918787 1.698146 -0.370841 +v 1.272063 1.698146 -0.370841 +v 0.918922 1.701472 -0.404613 +v 1.272063 1.698146 -0.438387 +v 0.918787 1.698146 -0.438387 +v 1.272063 1.688294 -0.470862 +v 0.918387 1.688294 -0.470862 +v 1.272063 1.672297 -0.500791 +v 0.917736 1.672297 -0.500791 +v 1.272063 1.650768 -0.527024 +v 0.916861 1.650768 -0.527024 +v 1.272063 1.624535 -0.548553 +v 0.915795 1.624535 -0.548553 +v 1.272063 1.594605 -0.564551 +v 0.912967 1.594605 -0.564551 +v 0.915353 1.613659 -0.554366 +v 1.272063 1.562130 -0.574402 +v 0.908902 1.562130 -0.574402 +v 1.272063 1.528358 -0.577728 +v 0.864478 1.316070 -0.742828 +v 0.895964 1.458794 5.211916 +v 0.915353 1.613659 -0.742828 +v 1.272063 1.701472 -0.404613 +v 0.647653 2.584387 -0.742828 +v 0.895964 1.458794 -0.742828 +v 0.915353 1.613659 5.211916 +v 0.581182 0.949177 5.211916 +v 0.581182 0.949177 -0.742828 +v 0.581182 2.583172 3.212208 +v 0.581182 2.600249 -0.742828 +vt 0.601212 0.686463 +vt 0.607212 0.688948 +vt 0.604727 0.694949 +vt 0.562350 0.784943 +vt 0.743961 0.782105 +vt 0.743961 0.784943 +vt 0.562350 0.782105 +vt 0.743961 0.779268 +vt 0.562350 0.779268 +vt 0.743961 0.776430 +vt 0.562350 0.776430 +vt 0.743961 0.773592 +vt 0.562350 0.765080 +vt 0.743961 0.762242 +vt 0.743961 0.765080 +vt 0.562350 0.762242 +vt 0.743961 0.759404 +vt 0.562350 0.759404 +vt 0.743961 0.756567 +vt 0.562350 0.756567 +vt 0.743961 0.753729 +vt 0.562350 0.753729 +vt 0.743961 0.750891 +vt 0.562350 0.750891 +vt 0.743961 0.748054 +vt 0.562350 0.748054 +vt 0.743961 0.745216 +vt 0.617321 0.697653 +vt 0.616723 0.705057 +vt 0.616723 0.697568 +vt 0.616125 0.705057 +vt 0.616125 0.697486 +vt 0.615527 0.705057 +vt 0.615527 0.697359 +vt 0.616059 0.697478 +vt 0.614929 0.705057 +vt 0.614929 0.697243 +vt 0.614331 0.705057 +vt 0.614331 0.697147 +vt 0.613733 0.705057 +vt 0.613733 0.697076 +vt 0.613135 0.705057 +vt 0.613135 0.697032 +vt 0.612537 0.705057 +vt 0.612537 0.697017 +vt 0.611939 0.697032 +vt 0.611939 0.705057 +vt 0.611341 0.697076 +vt 0.611341 0.705057 +vt 0.610743 0.697147 +vt 0.610743 0.705057 +vt 0.610145 0.697243 +vt 0.610145 0.705057 +vt 0.609547 0.697359 +vt 0.609547 0.705057 +vt 0.608949 0.697486 +vt 0.609015 0.697478 +vt 0.608949 0.705057 +vt 0.608351 0.697568 +vt 0.608351 0.705057 +vt 0.607753 0.697653 +vt 0.607753 0.705057 +vt 0.607155 0.697738 +vt 0.607155 0.705057 +vt 0.606557 0.697820 +vt 0.605959 0.705057 +vt 0.605959 0.697877 +vt 0.606177 0.697868 +vt 0.605361 0.697899 +vt 0.605361 0.705057 +vt 0.604763 0.697916 +vt 0.604763 0.705057 +vt 0.604165 0.697930 +vt 0.604165 0.705057 +vt 0.603567 0.697938 +vt 0.603567 0.705057 +vt 0.602969 0.697940 +vt 0.602372 0.705057 +vt 0.602372 0.697938 +vt 0.601774 0.705057 +vt 0.601774 0.697930 +vt 0.601176 0.705057 +vt 0.601176 0.697916 +vt 0.600578 0.705057 +vt 0.600578 0.697899 +vt 0.599980 0.705057 +vt 0.599980 0.697877 +vt 0.599382 0.705057 +vt 0.599382 0.697820 +vt 0.599762 0.697868 +vt 0.598784 0.705057 +vt 0.598784 0.697738 +vt 0.598186 0.705057 +vt 0.598186 0.697653 +vt 0.562350 0.773592 +vt 0.572667 0.772814 +vt 0.573697 0.772747 +vt 0.743961 0.770755 +vt 0.577845 0.770099 +vt 0.577947 0.769480 +vt 0.562350 0.767917 +vt 0.567489 0.768861 +vt 0.567387 0.769480 +vt 0.572667 0.766370 +vt 0.571637 0.766429 +vt 0.603865 0.695210 +vt 0.602969 0.695298 +vt 0.602074 0.695210 +vt 0.601212 0.694949 +vt 0.600418 0.694524 +vt 0.598727 0.692463 +vt 0.599722 0.693953 +vt 0.599151 0.693257 +vt 0.598465 0.691602 +vt 0.598377 0.690706 +vt 0.598465 0.689810 +vt 0.598727 0.688948 +vt 0.599151 0.688154 +vt 0.599722 0.687459 +vt 0.600418 0.686887 +vt 0.602074 0.686202 +vt 0.602969 0.686113 +vt 0.603865 0.686202 +vt 0.604727 0.686463 +vt 0.605521 0.686887 +vt 0.606217 0.687459 +vt 0.606788 0.688154 +vt 0.607474 0.689810 +vt 0.607562 0.690706 +vt 0.607474 0.691602 +vt 0.607212 0.692463 +vt 0.606788 0.693257 +vt 0.606217 0.693953 +vt 0.605521 0.694524 +vt 0.562350 0.745216 +vt 0.617321 0.705057 +vt 0.606557 0.705057 +vt 0.602969 0.705057 +vt 0.577057 0.771284 +vt 0.577491 0.770755 +vt 0.562350 0.770755 +vt 0.568277 0.771284 +vt 0.567842 0.770755 +vt 0.576399 0.771805 +vt 0.575599 0.772234 +vt 0.568932 0.771805 +vt 0.569733 0.772234 +vt 0.574686 0.772552 +vt 0.570646 0.772552 +vt 0.571637 0.772747 +vt 0.577545 0.768266 +vt 0.577233 0.767917 +vt 0.743961 0.767917 +vt 0.577545 0.770694 +vt 0.577845 0.768861 +vt 0.567789 0.770694 +vt 0.568098 0.767917 +vt 0.567789 0.768266 +vt 0.567489 0.770099 +vt 0.568277 0.767726 +vt 0.573697 0.766429 +vt 0.577057 0.767726 +vt 0.576399 0.767263 +vt 0.568932 0.767263 +vt 0.575599 0.766884 +vt 0.574686 0.766602 +vt 0.569733 0.766884 +vt 0.570646 0.766602 +vn 1.0000 0.0000 0.0000 +vn 0.5922 -0.8058 -0.0000 +vn 0.7915 -0.6112 -0.0000 +vn 0.8934 -0.4493 -0.0000 +vn 0.9471 -0.3208 -0.0000 +vn 0.9992 0.0407 0.0002 +vn 0.9990 0.0454 0.0000 +vn 0.9923 0.1242 0.0005 +vn 0.9765 0.2154 0.0009 +vn 0.9471 0.3208 0.0014 +vn 0.8934 0.4493 0.0019 +vn 0.7915 0.6112 0.0026 +vn 0.5922 0.8058 0.0035 +vn 0.0000 -0.0980 -0.9952 +vn 0.0000 -0.2903 -0.9569 +vn -0.0000 -0.4714 -0.8819 +vn 0.0000 -0.6344 -0.7730 +vn 0.0000 -0.7730 -0.6344 +vn 0.0000 -0.8819 -0.4714 +vn 0.0000 -0.9569 -0.2903 +vn 0.0000 -0.9952 -0.0980 +vn 0.0000 -0.9952 0.0980 +vn 0.0000 -0.9569 0.2903 +vn 0.0000 -0.8819 0.4714 +vn 0.0000 -0.7730 0.6344 +vn 0.0000 -0.6344 0.7730 +vn -0.0000 -0.4714 0.8819 +vn -0.0000 -0.4716 0.8818 +vn -0.0000 -0.4715 0.8819 +vn 0.0000 -0.2903 0.9569 +vn 0.0000 -0.0980 0.9952 +vn 0.0000 0.0980 0.9952 +vn 0.0000 0.2903 0.9569 +vn 0.0000 0.4714 0.8819 +vn 0.0000 0.6344 0.7730 +vn 0.0000 0.7730 0.6344 +vn 0.0000 0.8819 0.4714 +vn 0.0000 0.9569 0.2903 +vn 0.0000 0.9952 0.0980 +vn 0.0000 0.9952 -0.0980 +vn 0.0000 0.9569 -0.2903 +vn 0.0000 0.8819 -0.4714 +vn 0.0000 0.7730 -0.6344 +vn 0.0000 0.6344 -0.7730 +vn -0.0000 0.4714 -0.8819 +vn 0.0000 0.2903 -0.9569 +vn 0.0000 0.0980 -0.9952 +vn 0.9765 -0.2154 -0.0000 +vn 0.9766 -0.2150 -0.0000 +vn 0.9923 -0.1242 0.0000 +vn 0.9923 -0.1243 -0.0000 +vn 0.9992 -0.0406 0.0000 +vn 0.9992 -0.0407 -0.0000 +vn 0.9992 0.0406 0.0002 +vn 0.9765 -0.2155 0.0000 +s 1 +f 974/2065/296 975/2066/296 976/2067/296 +f 977/2068/297 978/2069/297 979/2070/297 +f 980/2071/298 981/2072/298 978/2069/298 +f 982/2073/299 983/2074/299 981/2072/299 +f 984/2075/300 985/2076/300 983/2074/300 +f 986/2077/301 987/2078/302 988/2079/302 +f 989/2080/303 990/2081/303 987/2078/303 +f 991/2082/304 992/2083/304 990/2081/304 +f 993/2084/305 994/2085/305 992/2083/305 +f 995/2086/306 996/2087/306 994/2085/306 +f 997/2088/307 998/2089/307 996/2087/307 +f 999/2090/308 1000/2091/308 998/2089/308 +f 1001/2092/309 1002/2093/309 1003/2094/309 +f 1003/2094/310 976/2095/310 1004/2096/310 +f 1005/2097/311 1006/2098/311 1007/2099/311 +f 1006/2098/312 1008/2100/312 1009/2101/312 +f 1009/2101/313 1010/2102/313 1011/2103/313 +f 1011/2103/314 1012/2104/314 1013/2105/314 +f 1013/2105/315 1014/2106/315 1015/2107/315 +f 1015/2107/316 1016/2108/316 1017/2109/316 +f 1016/2108/317 1018/2110/317 1017/2109/317 +f 1019/2111/318 1020/2112/318 1018/2110/318 +f 975/2113/319 1021/2114/319 1020/2112/319 +f 1022/2115/320 1023/2116/320 1021/2114/320 +f 1024/2117/321 1025/2118/321 1023/2116/321 +f 1026/2119/322 1027/2120/323 1028/2121/324 +f 1029/2122/325 1030/2123/325 1027/2120/325 +f 1031/2124/326 1032/2125/326 1030/2123/326 +f 1033/2126/327 1034/2127/327 1032/2125/327 +f 1035/2128/328 1036/2129/328 1034/2127/328 +f 1037/2130/329 1038/2131/329 1039/2132/329 +f 1037/2130/330 1040/2133/330 1038/2131/330 +f 1041/2134/331 1042/2135/331 1040/2133/331 +f 1043/2136/332 1044/2137/332 1042/2135/332 +f 1045/2138/333 1046/2139/333 1044/2137/333 +f 1047/2140/334 1048/2141/334 1046/2139/334 +f 1048/2141/335 1049/2142/335 1050/2143/335 +f 1050/2143/336 1051/2144/336 1052/2145/336 +f 1052/2145/337 1053/2146/337 1054/2147/337 +f 1054/2147/338 1055/2148/338 1056/2149/338 +f 1056/2149/339 1057/2150/339 1058/2151/339 +f 1059/2152/340 1060/2153/340 1061/2154/340 +f 1060/2153/341 1062/2155/341 1063/2156/341 +f 1063/2156/342 1064/2157/342 1001/2158/342 +f 1065/2159/343 1017/2160/344 1018/2161/343 +f 1066/2162/345 1030/2163/345 1032/2164/345 +f 1067/2165/345 1063/2166/345 1001/2167/346 +f 986/2077/347 1048/2168/348 1050/2169/347 +f 976/2067/296 1002/2170/296 1064/2171/296 +f 1064/2171/296 1062/2172/296 1059/2173/296 +f 1059/2173/296 1057/2174/296 1051/2175/296 +f 1057/2174/296 1055/2176/296 1051/2175/296 +f 1055/2176/296 1053/2177/296 1051/2175/296 +f 1051/2175/296 1049/2178/296 1068/2179/296 +f 1068/2179/296 1047/2180/296 1045/2181/296 +f 1045/2181/296 1043/2182/296 1041/2183/296 +f 1041/2183/296 1037/2184/296 974/2065/296 +f 974/2065/296 1035/2185/296 1033/2186/296 +f 1033/2186/296 1031/2187/296 1029/2188/296 +f 1029/2188/296 1026/2189/296 975/2066/296 +f 1026/2189/296 1024/2190/296 975/2066/296 +f 1024/2190/296 1022/2191/296 975/2066/296 +f 975/2066/296 1019/2192/296 1016/2193/296 +f 1016/2193/296 1014/2194/296 1012/2195/296 +f 1012/2195/296 1010/2196/296 976/2067/296 +f 1010/2196/296 1008/2197/296 976/2067/296 +f 1008/2197/296 1005/2198/296 976/2067/296 +f 976/2067/296 1064/2171/296 1051/2175/296 +f 1064/2171/296 1059/2173/296 1051/2175/296 +f 1051/2175/296 1068/2179/296 1045/2181/296 +f 1045/2181/296 1041/2183/296 1051/2175/296 +f 1041/2183/296 974/2065/296 1051/2175/296 +f 974/2065/296 1033/2186/296 975/2066/296 +f 1033/2186/296 1029/2188/296 975/2066/296 +f 975/2066/296 1016/2193/296 976/2067/296 +f 1016/2193/296 1012/2195/296 976/2067/296 +f 976/2067/296 1051/2175/296 974/2065/296 +f 977/2068/297 980/2071/297 978/2069/297 +f 980/2071/298 982/2073/298 981/2072/298 +f 982/2073/299 984/2075/299 983/2074/299 +f 984/2075/300 1065/2159/300 985/2076/300 +f 986/2077/301 989/2080/349 987/2078/302 +f 989/2080/303 991/2082/303 990/2081/303 +f 991/2082/304 993/2084/304 992/2083/304 +f 993/2084/305 995/2086/305 994/2085/305 +f 995/2086/306 997/2088/306 996/2087/306 +f 997/2088/307 999/2090/307 998/2089/307 +f 999/2090/308 1069/2199/308 1000/2091/308 +f 1001/2092/309 1064/2200/309 1002/2093/309 +f 1003/2094/310 1002/2093/310 976/2095/310 +f 1007/2099/311 1004/2096/311 1005/2097/311 +f 1004/2096/311 976/2095/311 1005/2097/311 +f 1006/2098/312 1005/2097/312 1008/2100/312 +f 1009/2101/313 1008/2100/313 1010/2102/313 +f 1011/2103/314 1010/2102/314 1012/2104/314 +f 1013/2105/315 1012/2104/315 1014/2106/315 +f 1015/2107/316 1014/2106/316 1016/2108/316 +f 1016/2108/317 1019/2111/317 1018/2110/317 +f 1019/2111/318 975/2113/318 1020/2112/318 +f 975/2113/319 1022/2115/319 1021/2114/319 +f 1022/2115/320 1024/2117/320 1023/2116/320 +f 1024/2117/321 1026/2119/321 1025/2118/321 +f 1028/2121/324 1025/2118/322 1026/2119/322 +f 1026/2119/322 1029/2122/322 1027/2120/323 +f 1029/2122/325 1031/2124/325 1030/2123/325 +f 1031/2124/326 1033/2126/326 1032/2125/326 +f 1033/2126/327 1035/2128/327 1034/2127/327 +f 1035/2128/328 974/2201/328 1036/2129/328 +f 1039/2132/329 1036/2129/329 974/2201/329 +f 974/2201/329 1037/2130/329 1039/2132/329 +f 1037/2130/330 1041/2134/330 1040/2133/330 +f 1041/2134/331 1043/2136/331 1042/2135/331 +f 1043/2136/332 1045/2138/332 1044/2137/332 +f 1045/2138/333 1047/2140/333 1046/2139/333 +f 1047/2140/334 1068/2202/334 1048/2141/334 +f 1048/2141/335 1068/2202/335 1049/2142/335 +f 1050/2143/336 1049/2142/336 1051/2144/336 +f 1052/2145/337 1051/2144/337 1053/2146/337 +f 1054/2147/338 1053/2146/338 1055/2148/338 +f 1056/2149/339 1055/2148/339 1057/2150/339 +f 1061/2154/340 1058/2151/340 1057/2150/340 +f 1057/2150/340 1059/2152/340 1061/2154/340 +f 1060/2153/341 1059/2152/341 1062/2155/341 +f 1063/2156/342 1062/2155/342 1064/2157/342 +f 1025/2203/343 1028/2204/343 985/2076/343 +f 1028/2204/343 1066/2162/343 985/2076/343 +f 985/2076/343 1065/2159/343 1018/2161/343 +f 1065/2159/343 1070/2205/343 1006/2206/343 +f 1070/2205/343 1007/2207/343 1006/2206/343 +f 1023/2208/343 1025/2203/343 985/2076/343 +f 1021/2209/343 1023/2208/343 985/2076/343 +f 1065/2159/343 1006/2206/343 1009/2210/343 +f 1065/2159/343 1009/2210/343 1011/2211/343 +f 1020/2212/343 1021/2209/343 985/2076/343 +f 1018/2161/343 1020/2212/343 985/2076/343 +f 1065/2159/343 1011/2211/343 1013/2213/343 +f 1065/2159/343 1013/2213/343 1015/2214/350 +f 1065/2159/343 1015/2214/350 1017/2160/344 +f 1036/2215/345 1039/2216/346 1071/2217/345 +f 1071/2217/345 1066/2162/345 1032/2164/346 +f 1066/2162/345 1028/2204/345 1027/2218/345 +f 1066/2162/345 1027/2218/345 1030/2163/345 +f 1034/2219/345 1036/2215/345 1071/2217/345 +f 1032/2164/346 1034/2219/345 1071/2217/345 +f 1004/2220/345 1007/2207/345 1070/2205/345 +f 1070/2205/345 1067/2165/345 1001/2167/345 +f 1067/2165/345 1061/2221/345 1060/2222/345 +f 1067/2165/345 1060/2222/345 1063/2166/345 +f 1003/2223/345 1004/2220/345 1070/2205/345 +f 1001/2167/345 1003/2223/345 1070/2205/345 +f 1058/2224/347 1061/2221/347 1067/2165/347 +f 986/2077/347 988/2079/347 1046/2225/347 +f 988/2079/347 1071/2217/347 1039/2216/347 +f 986/2077/347 1046/2225/347 1048/2168/348 +f 1039/2216/347 1038/2226/347 988/2079/347 +f 1038/2226/347 1040/2227/347 988/2079/347 +f 1058/2224/347 1067/2165/347 986/2077/347 +f 1056/2228/347 1058/2224/347 986/2077/347 +f 1040/2227/347 1042/2229/347 988/2079/347 +f 1042/2229/347 1044/2230/347 988/2079/347 +f 1054/2231/347 1056/2228/347 986/2077/347 +f 1052/2232/347 1054/2231/347 986/2077/347 +f 1044/2230/347 1046/2225/347 988/2079/347 +f 1050/2169/347 1052/2232/347 986/2077/347 +l 1075 1069 +l 1000 1074 +l 1072 979 +l 977 1073 +o Shell_Cylinder.002 +v -0.317579 2.171942 1.847565 +v 0.000000 2.303487 -0.098938 +v -0.317579 2.171942 -0.098938 +v 0.449124 1.854363 1.847565 +v 0.317579 1.536785 -0.098938 +v 0.449124 1.854363 -0.098938 +v 0.317579 1.536785 1.847565 +v 0.000000 1.405240 -0.098938 +v 0.000000 1.405239 1.847565 +v -0.317579 1.536785 -0.098938 +v -0.317579 1.536785 1.847565 +v -0.449124 1.854363 -0.098938 +v -0.449124 1.854363 1.847565 +v 0.000000 2.303487 1.847565 +v 0.317579 2.171942 -0.098938 +v 0.317579 2.171942 1.847565 +v 0.353356 2.207720 1.877207 +v 0.499721 1.854363 1.877207 +v 0.353356 1.501007 1.877207 +v 0.000000 1.354642 1.877207 +v -0.353356 1.501007 1.877207 +v -0.499721 1.854363 1.877207 +v -0.353356 2.207720 1.877207 +v 0.000000 2.354084 1.877207 +vt 0.125000 0.577656 +vt 0.000000 0.516094 +vt 0.125000 0.516094 +vt 0.750000 0.577656 +vt 0.625000 0.516094 +vt 0.750000 0.516094 +vt 0.625000 0.577656 +vt 0.500000 0.516094 +vt 0.500000 0.577656 +vt 0.375000 0.516094 +vt 0.375000 0.577656 +vt 0.250000 0.516094 +vt 0.250000 0.577656 +vt 1.000000 0.577656 +vt 0.875000 0.516094 +vt 1.000000 0.516094 +vt 0.875000 0.577656 +vt 0.707574 0.516599 +vt 0.690000 0.537812 +vt 0.707574 0.559026 +vt 0.218750 0.446250 +vt 0.195693 0.450000 +vt 0.195312 0.446250 +vt 0.172255 0.450000 +vt 0.171875 0.446250 +vt 0.148438 0.446250 +vt 0.171494 0.450000 +vt 0.148818 0.450000 +vt 0.125000 0.446250 +vt 0.148057 0.450000 +vt 0.125380 0.450000 +vt 0.101943 0.450000 +vt 0.101562 0.446250 +vt 0.078505 0.450000 +vt 0.078125 0.446250 +vt 0.054688 0.446250 +vt 0.077745 0.450000 +vt 0.055068 0.450000 +vt 0.031250 0.446250 +vt 0.054307 0.450000 +vt 0.031630 0.450000 +vt 0.013897 0.440000 +vt 0.130000 0.381948 +vt 0.246103 0.440000 +vt 0.000000 0.577656 +vt 0.750000 0.567813 +vt 0.792426 0.516599 +vt 0.792426 0.559026 +vt 0.810000 0.537812 +vt 0.750000 0.507812 +vt 0.218369 0.450000 +vt 0.194932 0.450000 +vt 0.124620 0.450000 +vt 0.101182 0.450000 +vt 0.212097 0.481049 +vt 0.130000 0.498052 +vt 0.047903 0.481049 +vt 0.047903 0.398951 +vt 0.212097 0.398951 +vn -0.3827 0.9239 0.0000 +vn 0.9239 -0.3827 -0.0000 +vn 0.3827 -0.9239 -0.0000 +vn -0.3827 -0.9239 -0.0000 +vn -0.9239 -0.3827 -0.0000 +vn -0.9239 0.3827 0.0000 +vn 0.3827 0.9239 0.0000 +vn 0.9239 0.3827 0.0000 +vn -0.0000 0.0000 -1.0000 +vn 0.2049 0.4948 -0.8445 +vn 0.4948 0.2049 -0.8445 +vn 0.4948 -0.2049 -0.8445 +vn 0.2049 -0.4948 -0.8445 +vn -0.2049 -0.4948 -0.8445 +vn -0.4948 -0.2049 -0.8445 +vn -0.4948 0.2049 -0.8445 +vn -0.2049 0.4948 -0.8445 +vn 0.0000 -0.0000 1.0000 +s 1 +f 1076/2233/351 1077/2234/351 1078/2235/351 +f 1079/2236/352 1080/2237/352 1081/2238/352 +f 1082/2239/353 1083/2240/353 1080/2237/353 +f 1084/2241/354 1085/2242/354 1083/2240/354 +f 1086/2243/355 1087/2244/355 1085/2242/355 +f 1088/2245/356 1078/2235/356 1087/2244/356 +f 1089/2246/357 1090/2247/357 1077/2248/357 +f 1091/2249/358 1081/2238/358 1090/2247/358 +f 1085/2250/359 1087/2251/359 1078/2252/359 +f 1089/2253/360 1092/2254/360 1091/2255/360 +f 1091/2255/361 1093/2256/361 1079/2257/361 +f 1082/2258/362 1093/2259/362 1094/2260/362 +f 1084/2261/363 1094/2262/363 1095/2263/363 +f 1084/2261/364 1096/2264/364 1086/2265/364 +f 1086/2265/365 1097/2266/365 1088/2267/365 +f 1076/2268/366 1097/2269/366 1098/2270/366 +f 1089/2271/367 1098/2272/367 1099/2273/367 +f 1097/2274/368 1095/2275/368 1093/2276/368 +f 1076/2233/351 1089/2277/351 1077/2234/351 +f 1079/2236/352 1082/2239/352 1080/2237/352 +f 1082/2239/353 1084/2241/353 1083/2240/353 +f 1084/2241/354 1086/2243/354 1085/2242/354 +f 1086/2243/355 1088/2245/355 1087/2244/355 +f 1088/2245/356 1076/2233/356 1078/2235/356 +f 1089/2246/357 1091/2249/357 1090/2247/357 +f 1091/2249/358 1079/2236/358 1081/2238/358 +f 1078/2252/359 1077/2278/359 1080/2279/359 +f 1077/2278/359 1090/2280/359 1080/2279/359 +f 1090/2280/359 1081/2281/359 1080/2279/359 +f 1080/2279/359 1083/2282/359 1078/2252/359 +f 1083/2282/359 1085/2250/359 1078/2252/359 +f 1089/2253/360 1099/2283/360 1092/2254/360 +f 1091/2255/361 1092/2284/361 1093/2256/361 +f 1082/2258/362 1079/2257/362 1093/2259/362 +f 1084/2261/363 1082/2258/363 1094/2262/363 +f 1084/2261/364 1095/2285/364 1096/2264/364 +f 1086/2265/365 1096/2286/365 1097/2266/365 +f 1076/2268/366 1088/2267/366 1097/2269/366 +f 1089/2271/367 1076/2268/367 1098/2272/367 +f 1093/2276/368 1092/2287/368 1099/2288/368 +f 1099/2288/368 1098/2289/368 1097/2274/368 +f 1097/2274/368 1096/2290/368 1095/2275/368 +f 1095/2275/368 1094/2291/368 1093/2276/368 +f 1093/2276/368 1099/2288/368 1097/2274/368 diff --git a/src/main/resources/assets/hbm/models/weapons/coilgun.obj b/src/main/resources/assets/hbm/models/weapons/coilgun.obj index b24831496..849fa2f23 100644 --- a/src/main/resources/assets/hbm/models/weapons/coilgun.obj +++ b/src/main/resources/assets/hbm/models/weapons/coilgun.obj @@ -1,2935 +1,4917 @@ # Blender v2.79 (sub 0) OBJ File: 'coilgun.blend' # www.blender.org -o CanonBody_Cylinder.002 -v 1.103664 0.525584 2.500000 -v 1.292985 0.525584 2.500000 -v 1.292985 0.172030 2.646447 -v 1.103664 0.172030 2.646447 -v 1.103664 0.525584 3.500000 -v 1.292985 0.525584 3.500000 -v 1.292985 0.879137 3.353553 -v 1.103664 0.879137 3.353553 -v 1.292985 1.025584 3.000000 -v 1.103664 1.025584 3.000000 -v 1.503651 1.012795 3.000000 -v 1.503651 0.870094 2.655490 -v 1.509822 0.895986 2.629598 -v 1.509822 1.049411 3.000000 -v 1.080568 0.851567 3.325983 -v 1.080568 0.525584 3.461010 -v 1.292985 0.879137 2.646447 -v 1.286814 0.905708 2.619875 -v 1.286814 0.525584 2.462423 -v 1.286814 0.525584 3.537577 -v 1.286814 0.905708 3.380125 -v 1.503651 0.038372 3.000000 -v 1.503651 0.181073 3.344510 -v 1.509822 0.155181 3.370402 -v 1.509822 0.001756 3.000000 -v 1.503651 0.870094 3.344510 -v 1.509822 0.895986 3.370402 -v 1.503651 0.525584 3.487211 -v 1.669294 0.525584 3.401911 -v 1.669294 0.809777 3.284194 -v 1.503651 0.181073 2.655490 -v 1.503651 0.525584 2.512789 -v 1.669294 0.525584 2.598089 -v 1.669294 0.241390 2.715806 -v 1.669294 0.809777 2.715806 -v 1.669294 0.927494 3.000000 -v 1.669294 0.241390 3.284194 -v -0.603601 0.025584 3.000000 -v 1.044523 0.025584 3.000000 -v 1.044523 0.172030 3.353553 -v -0.603601 0.172030 3.353553 -v 0.951045 0.197436 3.364077 -v -0.460212 0.197436 3.364077 -v -0.476991 0.953734 3.173461 -v -0.388078 0.997935 3.101577 -v -0.603601 1.025584 3.000000 -v 1.044523 0.525584 3.500000 -v 1.068921 0.199748 3.325836 -v 1.068921 0.525584 3.460801 -v 0.810528 0.655494 2.553811 -v 1.044523 0.525584 2.500000 -v -0.603601 0.525584 2.500000 -v -0.388078 0.655494 2.553811 -v 1.068921 0.986385 3.000000 -v 1.068921 0.851420 2.674164 -v 1.044523 0.879137 2.646447 -v 1.044523 1.025584 3.000000 -v 0.969099 0.952228 2.898423 -v 0.899442 0.918248 2.838919 -v 0.985768 0.843292 2.683099 -v 1.068921 0.525584 2.539199 -v 1.044523 0.172030 2.646447 -v 1.068921 0.199748 2.674164 -v 1.068921 0.851420 3.325836 -v 1.044523 0.879137 3.353553 -v 1.103664 0.172030 3.353553 -v 1.080568 0.199600 3.325983 -v 1.080568 0.525584 2.538990 -v 1.080568 0.199600 2.674017 -v 1.080568 0.851567 2.674017 -v 1.080568 0.064574 3.000000 -v 1.068921 0.064782 3.000000 -v 0.899442 0.735289 2.586863 -v 0.810528 0.655494 3.378684 -v 0.899442 0.719760 3.368080 -v 0.984259 0.528318 3.436781 -v 0.899442 0.843292 3.316901 -v 0.985768 0.843292 3.316901 -v 0.899442 0.879137 2.646447 -v 1.286814 1.063161 3.000000 -v 1.320923 0.951339 3.425755 -v 1.320923 1.127692 3.000000 -v 1.286814 0.145459 2.619875 -v 1.320923 0.525584 2.397891 -v 1.320923 0.099829 2.574245 -v 1.509822 0.525584 2.476172 -v 1.475712 0.525584 2.413292 -v 1.475712 0.940449 2.585135 -v 1.286814 -0.011994 3.000000 -v 1.320923 -0.076525 3.000000 -v 1.509822 0.525584 3.523828 -v 1.475712 0.940449 3.414865 -v 1.475712 0.525584 3.586708 -v 1.509822 0.155181 2.629598 -v 1.320923 0.525584 3.602109 -v 1.320923 0.951339 2.574245 -v 1.475712 0.110718 2.585134 -v 1.475712 1.112292 3.000000 -v 1.475712 0.110718 3.414866 -v 1.669294 0.271118 2.745534 -v 1.669294 0.525584 2.640131 -v 1.423236 0.525584 2.699672 -v 1.423236 0.313220 2.787636 -v 1.669294 0.780049 2.745534 -v 1.669294 0.885452 3.000000 -v 1.669294 0.525584 3.359869 -v 1.669294 0.780049 3.254466 -v 1.669294 0.271118 3.254466 -v 1.423236 0.737947 2.787636 -v 1.423236 0.825911 3.000000 -v 1.657500 0.838523 3.000000 -v 1.657500 0.746865 2.778719 -v 1.423236 0.525584 3.300328 -v 1.423236 0.737947 3.212364 -v 1.657500 0.746865 3.221281 -v 1.657500 0.525584 3.312939 -v 1.657500 0.525584 3.252281 -v 1.657500 0.703973 3.178389 -v 1.657500 0.525584 2.687061 -v 1.657500 0.304302 2.778718 -v 1.423236 0.313220 3.212364 -v 1.657500 0.304302 3.221282 -v 1.657500 0.703973 2.821611 -v 1.657500 0.525584 2.747719 -v 1.657500 0.347194 2.821611 -v 1.657500 0.347194 3.178389 -v 1.432520 0.525584 2.830615 -v 1.432520 0.645357 2.880227 -v 1.651829 0.645357 2.880227 -v 1.651829 0.525584 2.830615 -v 1.657500 0.777864 3.000000 -v 1.432520 0.645357 3.119773 -v 1.432520 0.694968 3.000000 -v 1.432520 0.405810 2.880227 -v 1.432520 0.405810 3.119773 -v 1.432520 0.525584 3.169385 -v 1.657500 0.273303 3.000000 -v 1.432520 0.356199 3.000000 -v 1.651829 0.405810 2.880227 -v 1.651829 0.405810 3.119773 -v 1.651829 0.525584 3.169385 -v 1.651829 0.645357 3.119773 -v 1.651829 0.525394 2.905789 -v 1.127542 0.525394 2.905789 -v 1.127542 0.458777 2.933383 -v 1.651829 0.458777 2.933383 -v 1.127542 0.431184 3.000000 -v 1.651829 0.431184 3.000000 -v 1.127542 0.525394 3.094211 -v 1.127542 0.592011 3.066617 -v 1.651829 0.592011 3.066617 -v 1.651829 0.525394 3.094211 -v 1.651829 0.619605 3.000000 -v 1.127542 0.619605 3.000000 -v 1.127542 0.592011 2.933383 -v 1.651829 0.592011 2.933383 -v 1.127542 0.458777 3.066617 -v -0.476991 0.837264 2.708140 -v -0.476991 0.714942 2.642628 -v -0.476991 0.735289 2.586863 -v -0.476991 0.879137 2.646447 -v -0.388078 0.997935 2.898423 -v 0.810528 0.997935 2.898423 -v 0.899442 0.879137 3.353553 -v 0.899442 0.735289 3.413137 -v -0.603601 0.879137 3.353553 -v -0.724548 0.869896 3.337075 -v -0.724548 0.532825 3.476694 -v -0.603601 0.525584 3.500000 -v -0.603601 0.879137 2.646447 -v -0.724548 0.869896 2.662932 -v -0.724548 1.009515 3.000004 -v -0.476991 0.953734 2.826539 -v 1.651829 0.356199 3.000000 -v 1.651829 0.458777 3.066617 -v -0.476991 0.735289 3.413137 -v -0.388078 0.655494 3.446189 -v -0.388078 0.633076 3.392654 -v -0.476991 0.714942 3.357372 -v -0.476991 0.837264 3.291860 -v -0.476991 0.879137 3.353553 -v -0.388078 0.944133 3.101577 -v 0.810528 0.952228 3.101577 -v 0.810528 0.997935 3.101577 -v -0.388078 0.944133 2.898423 -v 0.810528 0.952228 2.898423 -v 1.657500 0.212644 3.000000 -v 1.651829 0.694968 3.000000 -v -0.476991 0.926475 3.173461 -v 0.899442 0.843292 2.683099 -v 0.899442 0.953734 2.826539 -v 1.080568 0.986594 3.000000 -v 0.899442 0.719760 2.631920 -v 0.810528 0.655494 2.621316 -v 0.899442 0.918248 3.161081 -v 0.899442 0.953734 3.173461 -v 0.810528 0.655494 3.446189 -v -0.388078 0.633076 2.607346 -v 1.669294 0.123673 3.000000 -v 1.669294 0.165715 3.000000 -v 0.810528 0.526819 3.419828 -v 0.984259 0.528318 2.563219 -v 1.475712 -0.061125 3.000000 -v 1.423236 0.225256 3.000000 -v 0.810528 0.526819 2.580172 -v 0.969099 0.952228 3.101577 -v 0.984259 0.228435 2.674968 -v 0.984259 0.095638 3.005025 -v 0.984259 0.228435 3.325032 -v 1.103664 0.025584 3.000000 -v -0.534084 0.903408 3.173461 -v -0.534084 0.903408 2.826539 -v -0.476991 0.926475 2.826539 -v -0.548068 0.837264 3.291860 -v -0.548068 0.837264 2.708140 -v -0.550334 0.529772 2.566407 -v -0.550334 0.529772 3.433593 -v 1.292985 0.025584 3.000000 -v -0.550334 0.236472 3.339820 -v -0.550334 0.062663 3.005342 -v -0.550334 0.236472 2.660180 -v -0.388078 0.540720 3.422003 -v -0.388078 0.540720 2.577997 -v -0.388078 0.088709 3.007100 -v -0.388078 0.229035 2.676650 -v -0.388078 0.229035 3.323350 -v 0.810528 0.240010 2.699891 -v 0.810528 0.100279 3.006216 -v 0.810528 0.240010 3.300109 -v 0.678557 0.155552 2.534805 -v 0.674639 0.187997 2.501820 -v 0.674369 0.138402 2.298282 -v 0.678212 0.092276 2.275122 -v 0.951045 0.500178 3.489476 -v -0.460212 0.500178 3.489476 -v 0.674042 0.500178 2.510524 -v 0.671101 0.458113 2.482789 -v 0.645644 0.458113 2.482789 -v 0.641563 0.500178 2.510524 -v 0.674638 0.458293 2.409405 -v 0.671568 0.425284 2.403533 -v 0.641987 0.458293 2.409405 -v 0.645976 0.425284 2.403533 -v 0.646934 0.318302 2.224795 -v 0.643209 0.321800 2.181364 -v 0.649846 0.155552 2.534805 -v 0.652136 0.187997 2.501820 -v 0.645678 0.092117 2.275140 -v 0.648869 0.138277 2.298296 -v 0.673140 0.318430 2.224781 -v 0.949896 0.093608 2.274977 -v 0.951045 0.155552 2.534805 -v 0.676644 0.321964 2.181346 -v 0.948697 0.323297 2.181201 -v -0.460212 0.458293 2.409405 -v -0.460212 0.500178 2.510524 -v 0.346589 0.320346 2.181522 -v 0.273733 0.319982 2.181562 -v 0.188876 0.319558 2.181608 -v 0.127999 0.319254 2.181641 -v 0.051715 0.318872 2.181683 -v -0.004015 0.318594 2.181713 -v -0.060217 0.318313 2.181744 -v 0.003776 0.311542 2.203961 -v 0.003785 0.107850 2.287122 -v -0.004002 0.088898 2.275490 -v 0.044163 0.311789 2.203934 -v 0.045414 0.108104 2.287094 -v 0.053442 0.089185 2.275459 -v 0.275455 0.090295 2.275338 -v 0.286340 0.110829 2.286325 -v 0.335441 0.111139 2.286292 -v 0.346592 0.090651 2.275299 -v 0.335438 0.311680 2.204418 -v 0.285150 0.311362 2.204452 -v 0.128016 0.089558 2.275418 -v 0.137117 0.111516 2.285824 -v 0.181234 0.111785 2.285795 -v 0.190590 0.089871 2.275384 -v 0.180025 0.309468 2.205085 -v 0.137105 0.309206 2.205114 -v -0.059018 0.088623 2.275520 -v -0.460212 0.155552 2.534805 -v 0.951045 0.500178 2.510524 -v 0.951045 0.458293 2.409405 -v -0.460212 0.197436 2.635923 -v 1.292985 0.172030 3.353553 -v 1.103664 0.879137 2.646447 -v -0.603601 0.172030 2.646447 -v -0.460212 0.197436 2.635923 -v 0.951045 0.197436 2.635923 -v 1.286814 0.145459 3.380125 -v 1.320923 0.099829 3.425755 -v 0.951045 0.500178 2.510524 -v -0.460212 0.500178 2.510524 -v 0.951045 0.197436 2.635923 -v -0.724548 0.532825 2.523313 -v -0.724548 0.195753 2.662932 -v -0.724548 0.056134 3.000004 -v -0.724548 0.195753 3.337075 -v 0.951045 0.155552 3.465195 -v 0.951045 0.197436 3.364077 -v 0.951045 0.500178 3.489476 -v 0.951045 0.458293 3.590595 -v -0.460212 0.500178 3.489476 -v -0.460212 0.197436 3.364077 -v -0.460212 0.155552 3.465195 -v -0.460212 0.458293 3.590595 -v 0.674638 0.458293 3.590595 -v 0.676644 0.321964 3.818654 -v 0.948697 0.323297 3.818799 -v 0.674042 0.500178 3.489476 -v 0.678557 0.155552 3.465195 -v 0.649846 0.155552 3.465195 -v -0.059018 0.088623 3.724480 -v -0.004002 0.088898 3.724510 -v -0.004015 0.318594 3.818287 -v -0.060217 0.318313 3.818256 -v 0.645678 0.092117 3.724860 -v 0.346592 0.090651 3.724701 -v 0.275455 0.090295 3.724662 -v 0.190590 0.089871 3.724616 -v 0.128016 0.089558 3.724582 -v 0.053442 0.089185 3.724541 -v 0.051715 0.318872 3.818317 -v 0.044163 0.311789 3.796066 -v 0.045414 0.108104 3.712906 -v 0.127999 0.319254 3.818359 -v 0.188876 0.319558 3.818392 -v 0.137105 0.309206 3.794886 -v 0.180025 0.309468 3.794915 -v 0.273733 0.319982 3.818438 -v 0.346589 0.320346 3.818478 -v 0.285150 0.311362 3.795548 -v 0.335438 0.311680 3.795582 -v 0.643209 0.321800 3.818636 -v 0.137117 0.111516 3.714176 -v 0.181234 0.111785 3.714205 -v 0.286340 0.110829 3.713675 -v 0.335441 0.111139 3.713708 -v 0.003776 0.311542 3.796039 -v 0.003785 0.107850 3.712878 -v 0.671568 0.425284 3.596467 -v 0.673140 0.318430 3.775219 -v 0.641987 0.458293 3.590595 -v 0.641563 0.500178 3.489476 -v 0.648869 0.138277 3.701704 -v 0.646934 0.318302 3.775205 -v 0.678212 0.092276 3.724878 -v 0.674369 0.138402 3.701718 -v 0.949896 0.093608 3.725023 -v 0.645976 0.425284 3.596467 -v 0.645644 0.458113 3.517211 -v 0.671101 0.458113 3.517211 -v 0.652136 0.187997 3.498180 -v 0.674639 0.187997 3.498180 -vt 0.444444 0.967260 -vt 0.444444 0.999701 -vt 0.378868 0.999701 -vt 0.378868 0.967260 -vt 0.706744 0.967259 -vt 0.706744 0.999701 -vt 0.641169 0.999701 -vt 0.641169 0.967260 -vt 0.575594 0.999701 -vt 0.575594 0.967260 -vt 0.250824 0.305563 -vt 0.248404 0.241712 -vt 0.254201 0.239089 -vt 0.256804 0.307740 -vt 0.643725 0.959927 -vt 0.704187 0.959927 -vt 0.301657 0.158688 -vt 0.309096 0.223840 -vt 0.303372 0.226973 -vt 0.295374 0.156925 -vt 0.309096 0.399006 -vt 0.301657 0.464157 -vt 0.295374 0.465920 -vt 0.303372 0.395872 -vt 0.207069 0.603722 -vt 0.223821 0.542059 -vt 0.230137 0.541287 -vt 0.212125 0.607583 -vt 0.248403 0.381134 -vt 0.250824 0.317282 -vt 0.256804 0.315106 -vt 0.254201 0.383756 -vt 0.247516 0.392819 -vt 0.240267 0.456304 -vt 0.209672 0.447180 -vt 0.215652 0.394810 -vt 0.226462 0.092204 -vt 0.238498 0.154958 -vt 0.206574 0.155385 -vt 0.196646 0.103618 -vt 0.240267 0.166542 -vt 0.247516 0.230027 -vt 0.215652 0.228035 -vt 0.209672 0.175665 -vt 0.217205 0.374353 -vt 0.219202 0.321681 -vt 0.238498 0.467888 -vt 0.226462 0.530642 -vt 0.196646 0.519228 -vt 0.206574 0.467461 -vt 0.313293 0.285661 -vt 0.315256 0.001710 -vt 0.381187 0.002166 -vt 0.379225 0.286117 -vt 0.385814 0.018304 -vt 0.384134 0.261443 -vt 0.541993 0.266641 -vt 0.555933 0.251561 -vt 0.573731 0.287890 -vt 0.706744 0.950449 -vt 0.772319 0.950449 -vt 0.769748 0.957931 -vt 0.709314 0.957931 -vt 0.675439 0.043014 -vt 0.700338 0.002620 -vt 0.702300 0.286572 -vt 0.678306 0.250613 -vt 0.573023 0.957932 -vt 0.512589 0.957931 -vt 0.510019 0.950449 -vt 0.575594 0.950449 -vt 0.579242 0.518640 -vt 0.567657 0.507006 -vt 0.582693 0.478078 -vt 0.507448 0.957932 -vt 0.447014 0.957931 -vt 0.444444 0.950449 -vt 0.378868 0.950449 -vt 0.441873 0.957932 -vt 0.381439 0.957932 -vt 0.638598 0.957931 -vt 0.578164 0.957931 -vt 0.641169 0.950449 -vt 0.772319 0.967259 -vt 0.709300 0.959927 -vt 0.769762 0.959927 -vt 0.441887 0.959927 -vt 0.381425 0.959928 -vt 0.447000 0.959927 -vt 0.507462 0.959927 -vt 0.643739 0.957931 -vt 0.704173 0.957931 -vt 0.315850 0.959928 -vt 0.315864 0.957932 -vt 0.376298 0.957932 -vt 0.376312 0.959928 -vt 0.662036 0.025151 -vt 0.553298 0.626937 -vt 0.568495 0.615996 -vt 0.583228 0.650081 -vt 0.568261 0.593570 -vt 0.582779 0.593348 -vt 0.637541 0.000299 -vt 0.638364 0.022418 -vt 0.306751 0.316097 -vt 0.304080 0.386550 -vt 0.292159 0.390332 -vt 0.295150 0.311423 -vt 0.280683 0.078442 -vt 0.293963 0.147683 -vt 0.283200 0.154056 -vt 0.268327 0.076503 -vt 0.253643 0.231744 -vt 0.245850 0.163488 -vt 0.256851 0.158081 -vt 0.265580 0.234531 -vt 0.260091 0.001297 -vt 0.278575 0.069334 -vt 0.247624 0.000299 -vt 0.245850 0.459358 -vt 0.253643 0.391101 -vt 0.265580 0.388314 -vt 0.256851 0.464764 -vt 0.231797 0.088736 -vt 0.244737 0.156206 -vt 0.312696 0.318788 -vt 0.310212 0.384316 -vt 0.244737 0.466639 -vt 0.231797 0.534110 -vt 0.287081 0.079724 -vt 0.299432 0.144125 -vt 0.283200 0.468789 -vt 0.292159 0.232513 -vt 0.242358 0.082512 -vt 0.268495 0.311423 -vt 0.242358 0.540334 -vt 0.190629 0.107579 -vt 0.199519 0.153931 -vt 0.156352 0.158234 -vt 0.148933 0.119551 -vt 0.208727 0.226051 -vt 0.203372 0.179159 -vt 0.217205 0.248492 -vt 0.219202 0.301165 -vt 0.212447 0.298662 -vt 0.210659 0.251499 -vt 0.203372 0.443686 -vt 0.208727 0.396794 -vt 0.190629 0.515267 -vt 0.199518 0.468915 -vt 0.167634 0.257037 -vt 0.169126 0.296397 -vt 0.128994 0.298746 -vt 0.127439 0.257734 -vt 0.160890 0.434906 -vt 0.165358 0.395772 -vt 0.212447 0.324183 -vt 0.210659 0.371346 -vt 0.167634 0.365808 -vt 0.169126 0.326448 -vt 0.165358 0.227073 -vt 0.160890 0.187940 -vt 0.125520 0.390391 -vt 0.120864 0.431168 -vt 0.111774 0.426126 -vt 0.115527 0.393253 -vt 0.127439 0.365112 -vt 0.128994 0.324099 -vt 0.125519 0.232455 -vt 0.120864 0.191677 -vt 0.117035 0.166617 -vt 0.109305 0.126309 -vt 0.156352 0.464612 -vt 0.148933 0.503295 -vt 0.109305 0.496537 -vt 0.117035 0.456229 -vt 0.115527 0.229592 -vt 0.111774 0.196719 -vt 0.106855 0.164519 -vt 0.100623 0.132025 -vt 0.100623 0.490821 -vt 0.106855 0.458327 -vt 0.071929 0.206740 -vt 0.074449 0.228811 -vt 0.037112 0.233074 -vt 0.034592 0.211003 -vt 0.119247 0.327710 -vt 0.117994 0.360773 -vt 0.077505 0.353798 -vt 0.078346 0.331599 -vt 0.065836 0.166851 -vt 0.061652 0.145034 -vt 0.061651 0.477812 -vt 0.065836 0.455995 -vt 0.093280 0.522558 -vt 0.084605 0.554487 -vt 0.046731 0.538565 -vt 0.052555 0.517127 -vt 0.071929 0.416106 -vt 0.074449 0.394034 -vt 0.028929 0.173930 -vt 0.024744 0.152113 -vt 0.024744 0.470733 -vt 0.028928 0.448916 -vt 0.034592 0.411843 -vt 0.037112 0.389771 -vt 0.673665 0.673462 -vt 0.583825 0.673463 -vt 0.583825 0.661107 -vt 0.673665 0.661107 -vt 0.583825 0.648751 -vt 0.673665 0.648751 -vt 0.583825 0.722886 -vt 0.583825 0.710530 -vt 0.673665 0.710530 -vt 0.673665 0.722885 -vt 0.673665 0.698174 -vt 0.583825 0.698174 -vt 0.583825 0.685818 -vt 0.673665 0.685818 -vt 0.674263 0.657488 -vt 0.683000 0.648751 -vt 0.695355 0.648751 -vt 0.704092 0.657488 -vt 0.704092 0.669844 -vt 0.695355 0.678581 -vt 0.682999 0.678581 -vt 0.674263 0.669844 -vt 0.003304 0.848715 -vt 0.026872 0.851863 -vt 0.026964 0.862035 -vt 0.000299 0.861133 -vt 0.591528 0.251561 -vt 0.573730 0.006258 -vt 0.592097 0.045324 -vt 0.447123 0.002620 -vt 0.509921 0.000299 -vt 0.509097 0.022418 -vt 0.485425 0.025151 -vt 0.509283 0.287766 -vt 0.508527 0.308267 -vt 0.447395 0.307129 -vt 0.445161 0.286572 -vt 0.638178 0.287766 -vt 0.636248 0.308292 -vt 0.574805 0.308410 -vt 0.664090 0.265938 -vt 0.605468 0.266641 -vt 0.637900 0.266577 -vt 0.003538 0.113914 -vt 0.000299 0.101991 -vt 0.010465 0.094133 -vt 0.016290 0.115571 -vt 0.673665 0.735241 -vt 0.583825 0.735241 -vt 0.026978 0.828506 -vt 0.048218 0.828557 -vt 0.048221 0.838503 -vt 0.026647 0.838672 -vt 0.003011 0.841266 -vt 0.000299 0.828780 -vt 0.051046 0.800371 -vt 0.050910 0.791153 -vt 0.256297 0.789503 -vt 0.256413 0.797334 -vt 0.552466 0.552854 -vt 0.344608 0.554207 -vt 0.343802 0.517193 -vt 0.552492 0.518459 -vt 0.092829 0.560843 -vt 0.103590 0.521237 -vt 0.039952 0.352375 -vt 0.040793 0.330176 -vt 0.031344 0.793088 -vt 0.031275 0.788417 -vt 0.307992 0.821098 -vt 0.302442 0.827908 -vt 0.274466 0.818149 -vt 0.275890 0.811868 -vt 0.512575 0.959927 -vt 0.573037 0.959927 -vt 0.300046 0.855841 -vt 0.274150 0.862262 -vt 0.272670 0.854230 -vt 0.294909 0.848715 -vt 0.304080 0.236296 -vt 0.306751 0.306748 -vt 0.046731 0.084281 -vt 0.052555 0.105719 -vt 0.253531 0.867360 -vt 0.253849 0.855797 -vt 0.256296 0.811837 -vt 0.256412 0.804005 -vt 0.274467 0.783191 -vt 0.275891 0.789471 -vt 0.302443 0.773432 -vt 0.307993 0.780242 -vt 0.272433 0.842081 -vt 0.274101 0.834087 -vt 0.299839 0.841114 -vt 0.294536 0.848117 -vt 0.253607 0.828505 -vt 0.253654 0.840073 -vt 0.048200 0.862482 -vt 0.048437 0.852539 -vt 0.178202 0.590083 -vt 0.172502 0.585678 -vt 0.184876 0.540132 -vt 0.192021 0.539216 -vt 0.553418 0.650133 -vt 0.568459 0.455510 -vt 0.553313 0.444607 -vt 0.583141 0.421546 -vt 0.222184 0.008257 -vt 0.184876 0.082714 -vt 0.142159 0.090273 -vt 0.131832 0.052263 -vt 0.172502 0.037168 -vt 0.010465 0.528712 -vt 0.016290 0.507275 -vt 0.553438 0.421486 -vt 0.579294 0.552649 -vt 0.207069 0.019124 -vt 0.212125 0.015262 -vt 0.230137 0.081559 -vt 0.223821 0.080787 -vt 0.192021 0.083630 -vt 0.178202 0.032763 -vt 0.835337 0.959927 -vt 0.774876 0.959927 -vt 0.774889 0.957931 -vt 0.835324 0.957931 -vt 0.119247 0.295135 -vt 0.117994 0.262072 -vt 0.073156 0.623144 -vt 0.124543 0.642293 -vt 0.147298 0.698850 -vt 0.124543 0.753685 -vt 0.073156 0.772834 -vt 0.019183 0.752292 -vt 0.000299 0.715395 -vt 0.000299 0.680584 -vt 0.019183 0.643686 -vt 0.837894 0.967259 -vt 0.131833 0.570583 -vt 0.142159 0.532572 -vt 0.578150 0.959927 -vt 0.638612 0.959927 -vt 0.316588 0.566360 -vt 0.316135 0.505151 -vt 0.327032 0.505997 -vt 0.327205 0.565445 -vt 0.325199 0.589422 -vt 0.313422 0.589890 -vt 0.325128 0.481936 -vt 0.313293 0.481323 -vt 0.328396 0.458075 -vt 0.318149 0.422764 -vt 0.344931 0.443095 -vt 0.317500 0.648537 -vt 0.328166 0.613272 -vt 0.313293 0.999701 -vt 0.313293 0.967260 -vt 0.266568 0.002090 -vt 0.283760 0.065372 -vt 0.222185 0.614589 -vt 0.103590 0.101609 -vt 0.092829 0.062002 -vt 0.093280 0.100288 -vt 0.084605 0.068358 -vt 0.313293 0.950449 -vt 0.310212 0.238529 -vt 0.312696 0.304057 -vt 0.003538 0.508931 -vt 0.000299 0.520855 -vt 0.280629 0.647431 -vt 0.292214 0.667720 -vt 0.292214 0.727167 -vt 0.280630 0.747455 -vt 0.227938 0.771742 -vt 0.177679 0.755673 -vt 0.147896 0.698358 -vt 0.177679 0.639213 -vt 0.227938 0.623144 -vt 0.344518 0.628436 -vt 0.344864 0.645367 -vt 0.567679 0.564328 -vt 0.345386 0.426160 -vt 0.321379 0.309007 -vt 0.348181 0.311072 -vt 0.346814 0.370598 -vt 0.319918 0.372352 -vt 0.319035 0.699253 -vt 0.346062 0.701099 -vt 0.578629 0.309007 -vt 0.582482 0.368090 -vt 0.552730 0.367902 -vt 0.550048 0.310686 -vt 0.578748 0.761487 -vt 0.550076 0.759426 -vt 0.552676 0.703908 -vt 0.582541 0.703747 -vt 0.347270 0.758738 -vt 0.558065 0.928960 -vt 0.550687 0.924347 -vt 0.550930 0.885091 -vt 0.558374 0.878875 -vt 0.442273 0.018695 -vt 0.440594 0.261833 -vt 0.719990 0.753760 -vt 0.711362 0.753164 -vt 0.711409 0.748802 -vt 0.720050 0.748194 -vt 0.558809 0.782594 -vt 0.553466 0.785950 -vt 0.553542 0.769874 -vt 0.558906 0.762085 -vt 0.523071 0.801651 -vt 0.527269 0.805192 -vt 0.527585 0.839077 -vt 0.523474 0.844882 -vt 0.583864 0.748194 -vt 0.591789 0.748650 -vt 0.591759 0.752506 -vt 0.583825 0.753114 -vt 0.523958 0.885237 -vt 0.530497 0.890536 -vt 0.531283 0.924612 -vt 0.524961 0.928713 -vt 0.627693 0.748375 -vt 0.627655 0.752744 -vt 0.696662 0.753087 -vt 0.696709 0.748702 -vt 0.660976 0.752977 -vt 0.661014 0.748487 -vt 0.522918 0.783847 -vt 0.527615 0.790596 -vt 0.527735 0.804551 -vt 0.609284 0.879288 -vt 0.609125 0.929342 -vt 0.558678 0.832385 -vt 0.609657 0.832799 -vt 0.551099 0.872461 -vt 0.551338 0.836023 -vt 0.529863 0.848009 -vt 0.530243 0.879639 -vt 0.343779 0.802494 -vt 0.343695 0.784690 -vt 0.475224 0.845209 -vt 0.463372 0.845290 -vt 0.449569 0.845385 -vt 0.439666 0.845452 -vt 0.427257 0.845537 -vt 0.418192 0.845599 -vt 0.409050 0.845661 -vt 0.553912 0.825721 -vt 0.554015 0.786696 -vt 0.748183 0.664506 -vt 0.743885 0.667670 -vt 0.709471 0.667342 -vt 0.704690 0.663671 -vt 0.748230 0.677708 -vt 0.743428 0.674541 -vt 0.708946 0.674384 -vt 0.704690 0.677993 -vt 0.674263 0.679178 -vt 0.678954 0.683000 -vt 0.678513 0.691305 -vt 0.674263 0.695158 -vt 0.713191 0.691406 -vt 0.717948 0.694885 -vt 0.717906 0.679285 -vt 0.713573 0.682833 -vt 0.674263 0.712333 -vt 0.679256 0.716024 -vt 0.678779 0.723450 -vt 0.674263 0.727142 -vt 0.712677 0.723401 -vt 0.717760 0.726648 -vt 0.717703 0.712821 -vt 0.713087 0.716118 -vt 0.475305 0.885568 -vt 0.463733 0.885647 -vt 0.449929 0.885741 -vt 0.439749 0.885811 -vt 0.427618 0.885894 -vt 0.331098 0.838796 -vt 0.409325 0.886018 -vt 0.331097 0.892100 -vt 0.344391 0.930068 -vt 0.418274 0.885957 -vt 0.568226 0.477860 -vt 0.610810 0.762612 -vt 0.610602 0.783121 -vt 0.313294 0.838795 -vt 0.313293 0.892100 -vt 0.772319 0.999701 -vt 0.510019 0.967260 -vt 0.510019 0.999701 -vt 0.834166 0.285661 -vt 0.768234 0.286116 -vt 0.766275 0.002164 -vt 0.832207 0.001709 -vt 0.763326 0.261444 -vt 0.761647 0.018304 -vt 0.280683 0.544403 -vt 0.268327 0.546342 -vt 0.293963 0.475162 -vt 0.260091 0.621549 -vt 0.247624 0.622547 -vt 0.278575 0.553512 -vt 0.287081 0.543122 -vt 0.299432 0.478720 -vt 0.078346 0.291246 -vt 0.077505 0.269047 -vt 0.673665 0.747597 -vt 0.583825 0.747597 -vt 0.000299 0.780763 -vt 0.010763 0.773432 -vt 0.031275 0.812923 -vt 0.010763 0.827908 -vt 0.000299 0.820577 -vt 0.031344 0.808252 -vt 0.051046 0.800969 -vt 0.050910 0.810187 -vt 0.040794 0.292669 -vt 0.039952 0.270471 -vt 0.837894 0.999701 -vt 0.266568 0.620755 -vt 0.283760 0.557474 -vt 0.837894 0.950449 -vt 0.320375 0.761358 -vt 0.705187 0.018693 -vt 0.706867 0.261833 -vt 0.658686 0.887344 -vt 0.658868 0.825939 -vt 0.679378 0.826000 -vt 0.679195 0.887405 -vt 0.690550 0.648153 -vt 0.628032 0.648153 -vt 0.583825 0.603947 -vt 0.583825 0.541429 -vt 0.628032 0.497222 -vt 0.690550 0.497222 -vt 0.734757 0.541428 -vt 0.734757 0.603946 -vt 0.832300 0.307073 -vt 0.769442 0.307507 -vt 0.606368 0.029512 -vt 0.378018 0.307507 -vt 0.315160 0.307073 -vt 0.572655 0.308410 -vt 0.511212 0.308292 -vt 0.765692 0.307390 -vt 0.702831 0.307825 -vt 0.444631 0.307825 -vt 0.381768 0.307391 -vt 0.700066 0.307129 -vt 0.638933 0.308268 -vt 0.028684 0.334662 -vt 0.028216 0.347009 -vt 0.028684 0.288183 -vt 0.028216 0.275836 -vt 0.024713 0.229498 -vt 0.023312 0.217222 -vt 0.016319 0.171298 -vt 0.013991 0.159164 -vt 0.016318 0.451548 -vt 0.013991 0.463682 -vt 0.023312 0.405623 -vt 0.024713 0.393347 -vt 0.929360 0.371663 -vt 0.949870 0.371663 -vt 0.949869 0.433068 -vt 0.929359 0.433068 -vt 0.541093 0.029512 -vt 0.555364 0.045324 -vt 0.472022 0.043014 -vt 0.469155 0.250613 -vt 0.483371 0.265938 -vt 0.509562 0.266577 -vt 0.583825 0.419180 -vt 0.583984 0.365876 -vt 0.601788 0.365929 -vt 0.601629 0.419233 -vt 0.880965 0.475742 -vt 0.829171 0.476114 -vt 0.829189 0.426323 -vt 0.880169 0.426061 -vt 0.881113 0.496251 -vt 0.829206 0.496624 -vt 0.615382 0.310197 -vt 0.879832 0.309007 -vt 0.879925 0.329517 -vt 0.828864 0.329746 -vt 0.795759 0.329895 -vt 0.615195 0.328000 -vt 0.679997 0.372243 -vt 0.688946 0.372331 -vt 0.688744 0.412689 -vt 0.679601 0.412599 -vt 0.794627 0.373366 -vt 0.745976 0.372890 -vt 0.734404 0.372777 -vt 0.720600 0.372642 -vt 0.710421 0.372542 -vt 0.698290 0.372423 -vt 0.704690 0.648751 -vt 0.748230 0.649035 -vt 0.743428 0.652203 -vt 0.708946 0.652359 -vt 0.697809 0.412778 -vt 0.710217 0.412900 -vt 0.717760 0.728233 -vt 0.717703 0.742060 -vt 0.713086 0.738763 -vt 0.712677 0.731480 -vt 0.720120 0.412997 -vt 0.733923 0.413133 -vt 0.717948 0.696029 -vt 0.717906 0.711629 -vt 0.713573 0.708081 -vt 0.713190 0.699508 -vt 0.745774 0.413249 -vt 0.794023 0.413720 -vt 0.679256 0.738857 -vt 0.678779 0.731431 -vt 0.674263 0.742548 -vt 0.674263 0.727739 -vt 0.678954 0.707914 -vt 0.678513 0.699609 -vt 0.674263 0.711736 -vt 0.674263 0.695756 -vt 0.743885 0.659074 -vt 0.709471 0.659401 -vt 0.704690 0.663073 -vt 0.748183 0.662238 -vt 0.824389 0.471998 -vt 0.824403 0.432972 -vt 0.793491 0.456950 -vt 0.614203 0.455572 -vt 0.793285 0.474753 -vt 0.614066 0.473375 -vt 0.800895 0.378983 -vt 0.800421 0.410612 -vt 0.829024 0.379832 -vt 0.821859 0.422664 -vt 0.821730 0.386224 -vt 0.879935 0.379571 -vt 0.798164 0.454064 -vt 0.798002 0.468018 -vt 0.660993 0.759351 -vt 0.627670 0.759305 -vt 0.627654 0.754935 -vt 0.660975 0.754860 -vt 0.696662 0.754919 -vt 0.696688 0.759304 -vt 0.711362 0.754912 -vt 0.711388 0.759274 -vt 0.591768 0.758859 -vt 0.591756 0.755003 -vt 0.802069 0.334014 -vt 0.801182 0.368087 -vt 0.583841 0.759277 -vt 0.583825 0.754357 -vt 0.798116 0.419538 -vt 0.797699 0.453421 -vt 0.823866 0.488818 -vt 0.823838 0.472743 -vt 0.719993 0.754357 -vt 0.720026 0.759923 -vt 0.821598 0.373594 -vt 0.821472 0.334337 -vt 0.608971 0.949851 -vt 0.344525 0.947871 +o Coils_Cylinder.012 +v -0.463562 0.524760 -0.428106 +v -0.237813 0.524760 -0.428106 +v -0.237813 0.222044 -0.302716 +v -0.463562 0.222044 -0.302716 +v -0.237813 0.096655 0.000000 +v -0.463562 0.096655 0.000000 +v -0.237813 0.222044 0.302716 +v -0.463562 0.222044 0.302716 +v -0.237813 0.524760 0.428106 +v -0.463562 0.524760 0.428106 +v -0.237813 0.827477 0.302716 +v -0.463562 0.827477 0.302716 +v -0.237813 0.952866 0.000000 +v -0.463562 0.952866 0.000000 +v -0.237813 0.827477 -0.302716 +v -0.463562 0.827477 -0.302716 +v -0.170088 0.524760 -0.428106 +v 0.055660 0.524760 -0.428106 +v 0.055660 0.222044 -0.302716 +v -0.170088 0.222044 -0.302716 +v 0.055660 0.096655 0.000000 +v -0.170088 0.096655 0.000000 +v 0.055660 0.222044 0.302716 +v -0.170088 0.222044 0.302716 +v 0.055660 0.524760 0.428106 +v -0.170088 0.524760 0.428106 +v 0.055660 0.827477 0.302716 +v -0.170088 0.827477 0.302716 +v 0.055660 0.952866 0.000000 +v -0.170088 0.952866 0.000000 +v 0.055660 0.827477 -0.302716 +v -0.170088 0.827477 -0.302716 +v 0.123385 0.524760 -0.428106 +v 0.349134 0.524760 -0.428106 +v 0.349134 0.222044 -0.302716 +v 0.123385 0.222044 -0.302716 +v 0.349134 0.096655 0.000000 +v 0.123385 0.096655 0.000000 +v 0.349134 0.222044 0.302716 +v 0.123385 0.222044 0.302716 +v 0.349134 0.524760 0.428106 +v 0.123385 0.524760 0.428106 +v 0.349134 0.827477 0.302716 +v 0.123385 0.827477 0.302716 +v 0.349134 0.952866 0.000000 +v 0.123385 0.952866 0.000000 +v 0.349134 0.827477 -0.302716 +v 0.123385 0.827477 -0.302716 +v 0.416858 0.524760 -0.428106 +v 0.642607 0.524760 -0.428106 +v 0.642607 0.222044 -0.302716 +v 0.416858 0.222044 -0.302716 +v 0.642607 0.096655 0.000000 +v 0.416858 0.096655 0.000000 +v 0.642607 0.222044 0.302716 +v 0.416858 0.222044 0.302716 +v 0.642607 0.524760 0.428106 +v 0.416858 0.524760 0.428106 +v 0.642607 0.827477 0.302716 +v 0.416858 0.827477 0.302716 +v 0.642607 0.952866 0.000000 +v 0.416858 0.952866 0.000000 +v 0.642607 0.827477 -0.302716 +v 0.416858 0.827477 -0.302716 +v 0.710331 0.524760 -0.428106 +v 0.936080 0.524760 -0.428106 +v 0.936080 0.222044 -0.302716 +v 0.710331 0.222044 -0.302716 +v 0.936080 0.096655 0.000000 +v 0.710331 0.096655 0.000000 +v 0.936080 0.222044 0.302716 +v 0.710331 0.222044 0.302716 +v 0.936080 0.524760 0.428106 +v 0.710331 0.524760 0.428106 +v 0.936080 0.827477 0.302716 +v 0.710331 0.827477 0.302716 +v 0.936080 0.952866 0.000000 +v 0.710331 0.952866 0.000000 +v 0.936080 0.827477 -0.302716 +v 0.710331 0.827477 -0.302716 +v -1.457017 0.997796 0.139627 +v -1.457017 1.110929 0.189700 +v -1.405270 1.098405 0.216824 +v -1.405270 0.985272 0.166751 +v -1.405270 1.073357 0.271072 +v -1.405270 0.960224 0.220999 +v -1.457017 1.060833 0.298196 +v -1.457017 0.947700 0.248123 +v -1.508763 1.073357 0.271072 +v -1.508763 0.960224 0.220999 +v -1.508763 1.098405 0.216824 +v -1.508763 0.985272 0.166751 +v -1.322476 0.997796 0.139627 +v -1.322476 1.110929 0.189700 +v -1.270730 1.098405 0.216824 +v -1.270730 0.985272 0.166751 +v -1.270730 1.073357 0.271072 +v -1.270730 0.960224 0.220999 +v -1.322476 1.060833 0.298196 +v -1.322476 0.947700 0.248123 +v -1.374223 1.073357 0.271072 +v -1.374223 0.960224 0.220999 +v -1.374223 1.098405 0.216824 +v -1.374223 0.985272 0.166751 +v -1.187935 0.997796 0.139627 +v -1.187935 1.110929 0.189700 +v -1.136189 1.098405 0.216824 +v -1.136189 0.985272 0.166751 +v -1.136189 1.073357 0.271072 +v -1.136189 0.960224 0.220999 +v -1.187935 1.060833 0.298196 +v -1.187935 0.947700 0.248123 +v -1.239682 1.073357 0.271072 +v -1.239682 0.960224 0.220999 +v -1.239682 1.098405 0.216824 +v -1.239682 0.985272 0.166751 +v -1.551588 0.824089 0.270719 +v -1.551588 0.906574 0.321562 +v -1.551588 1.018668 0.066710 +v -1.551588 0.936183 0.015867 +v -1.097206 1.018668 0.066710 +v -1.097206 0.936183 0.015867 +v -1.097206 0.906574 0.321562 +v -1.097206 0.824089 0.270719 +v -1.521210 0.950031 0.320343 +v -1.521210 1.047137 0.099566 +v -1.127583 1.047137 0.099566 +v -1.127583 0.950031 0.320343 +v -1.457017 0.997796 -0.139627 +v -1.405271 0.985272 -0.166751 +v -1.405271 1.098405 -0.216824 +v -1.457017 1.110929 -0.189700 +v -1.405271 0.960224 -0.220999 +v -1.405271 1.073357 -0.271072 +v -1.457017 0.947700 -0.248123 +v -1.457017 1.060833 -0.298196 +v -1.508764 0.960224 -0.220999 +v -1.508764 1.073357 -0.271072 +v -1.508764 1.098405 -0.216824 +v -1.508764 0.985272 -0.166751 +v -1.322476 0.997796 -0.139627 +v -1.270730 0.985272 -0.166751 +v -1.270730 1.098405 -0.216824 +v -1.322476 1.110929 -0.189700 +v -1.270730 0.960224 -0.220999 +v -1.270730 1.073357 -0.271072 +v -1.322476 0.947700 -0.248123 +v -1.322476 1.060833 -0.298196 +v -1.374223 0.960224 -0.220999 +v -1.374223 1.073357 -0.271072 +v -1.374223 1.098405 -0.216824 +v -1.374223 0.985272 -0.166751 +v -1.187936 0.997796 -0.139627 +v -1.136189 0.985272 -0.166751 +v -1.136189 1.098405 -0.216824 +v -1.187936 1.110929 -0.189700 +v -1.136189 0.960224 -0.220999 +v -1.136189 1.073357 -0.271072 +v -1.187936 0.947700 -0.248123 +v -1.187936 1.060833 -0.298196 +v -1.239682 0.960224 -0.220999 +v -1.239682 1.073357 -0.271072 +v -1.239682 1.098405 -0.216824 +v -1.239682 0.985272 -0.166751 +v -1.551588 0.824089 -0.270719 +v -1.551588 0.936183 -0.015867 +v -1.551588 1.018668 -0.066710 +v -1.551588 0.906574 -0.321562 +v -1.097206 0.936183 -0.015867 +v -1.097206 1.018668 -0.066710 +v -1.097206 0.824089 -0.270719 +v -1.097206 0.906574 -0.321562 +v -1.521211 1.047137 -0.099566 +v -1.521211 0.950031 -0.320343 +v -1.127584 1.047137 -0.099566 +v -1.127584 0.950031 -0.320343 +v -1.552216 0.766425 0.449060 +v -1.552216 0.766425 0.324053 +v -1.613245 0.699098 0.324053 +v -1.613245 0.699098 0.449060 +v -1.552216 0.456014 0.324053 +v -1.048308 0.766425 0.449060 +v -1.048308 0.766425 0.324053 +v -1.552216 0.456014 0.449060 +v -1.048308 0.456014 0.324053 +v -1.041527 0.788142 0.315308 +v -1.041527 0.434297 0.315308 +v -1.048308 0.456014 0.449060 +v -1.041527 0.788142 0.457806 +v -1.041527 0.434297 0.457806 +v -0.900483 0.434297 0.457806 +v -0.900483 0.788142 0.457806 +v -0.900483 0.788142 0.315308 +v -0.896414 0.768510 0.449899 +v -0.896414 0.768510 0.323214 +v -0.900483 0.434297 0.315308 +v -0.896414 0.453929 0.449899 +v -0.817755 0.457256 0.449106 +v -0.817755 0.767895 0.449106 +v -0.896414 0.453929 0.323214 +v -0.817755 0.457256 0.324007 +v -0.817755 0.767895 0.324007 +v -1.613245 0.523341 0.449060 +v -1.613245 0.523341 0.324053 +v -1.552216 0.766425 -0.449060 +v -1.613245 0.699098 -0.449060 +v -1.613245 0.699098 -0.324053 +v -1.552216 0.766425 -0.324053 +v -1.552216 0.456014 -0.324053 +v -1.048308 0.766425 -0.324053 +v -1.048308 0.766425 -0.449060 +v -1.552216 0.456014 -0.449060 +v -1.048308 0.456014 -0.324053 +v -1.041528 0.434297 -0.315308 +v -1.041528 0.788142 -0.315308 +v -1.048308 0.456014 -0.449060 +v -1.041528 0.788142 -0.457806 +v -0.900483 0.788142 -0.457806 +v -0.900483 0.434297 -0.457806 +v -1.041528 0.434297 -0.457806 +v -0.900483 0.788142 -0.315308 +v -0.896414 0.768510 -0.323214 +v -0.896414 0.768510 -0.449899 +v -0.900483 0.434297 -0.315308 +v -0.817755 0.767895 -0.449106 +v -0.817755 0.457256 -0.449106 +v -0.896414 0.453929 -0.449899 +v -0.896414 0.453929 -0.323214 +v -0.817755 0.457256 -0.324007 +v -0.817755 0.767895 -0.324007 +v -1.613245 0.523341 -0.449060 +v -1.613245 0.523341 -0.324053 +v -2.170566 0.644712 -0.108739 +v -2.102717 0.644712 -0.108739 +v -2.102717 0.567822 -0.076890 +v -2.170566 0.567822 -0.076890 +v -2.102717 0.535974 0.000000 +v -2.170566 0.535974 0.000000 +v -2.102717 0.567822 0.076890 +v -2.170566 0.567822 0.076890 +v -2.102717 0.644712 0.108739 +v -2.170566 0.644712 0.108739 +v -2.102717 0.721602 0.076890 +v -2.170566 0.721602 0.076890 +v -2.102717 0.753451 0.000000 +v -2.170566 0.753451 0.000000 +v -2.102717 0.721602 -0.076890 +v -2.170566 0.721602 -0.076890 +v -2.209619 0.644712 0.088337 +v -2.209619 0.582248 0.062464 +v -2.209619 0.644712 -0.088337 +v -2.209619 0.582248 -0.062464 +v -2.209619 0.556375 0.000000 +v -2.209619 0.707176 0.062464 +v -2.209619 0.733049 0.000000 +v -2.209619 0.707176 -0.062464 +v -0.166791 0.038391 -0.117032 +v -0.166791 0.038391 0.117032 +v -0.118438 0.018363 0.117032 +v -0.118438 0.018363 -0.117032 +v -0.098409 -0.029991 0.117032 +v -0.098409 -0.029991 -0.117032 +v -0.118438 -0.078344 0.117032 +v -0.118438 -0.078344 -0.117032 +v -0.166791 -0.098373 0.117032 +v -0.166791 -0.098373 -0.117032 +v -0.215145 -0.078344 0.117032 +v -0.215145 -0.078344 -0.117032 +v -0.235173 -0.029991 0.117032 +v -0.235173 -0.029991 -0.117032 +v -0.215145 0.018363 0.117032 +v -0.215145 0.018363 -0.117032 +v -0.033837 0.094104 -0.072767 +v -0.033837 -0.016338 -0.072767 +v -0.115306 -0.142061 -0.072767 +v -0.115306 0.094104 -0.072767 +v 0.797049 0.094104 -0.072767 +v 0.797049 -0.016338 -0.072767 +v 0.796577 -0.079782 0.048582 +v 0.796577 -0.079782 -0.048582 +v 0.886076 -0.258069 -0.048582 +v 0.886076 -0.258069 0.048582 +v 0.797049 -0.016338 0.072767 +v 0.797049 0.094104 0.072767 +v -0.033837 0.094104 0.072767 +v -0.033837 -0.016338 0.072767 +v -0.026079 -0.079782 -0.048582 +v -0.115306 0.094104 0.072767 +v -0.272459 0.094104 -0.072767 +v -0.272459 0.094104 0.072767 +v -0.115306 -0.142061 0.072767 +v -0.272459 -0.098487 0.072767 +v -0.264701 -0.161930 0.048582 +v -0.107548 -0.205505 0.048582 +v -0.272459 -0.098487 -0.072767 +v -0.026079 -0.079782 0.048582 +v -0.107548 -0.205505 -0.048582 +v -0.264701 -0.161930 -0.048582 +v 0.886547 -0.194626 0.072767 +v 0.888072 -0.069961 0.072767 +v 0.917361 0.000750 0.072767 +v 0.988072 0.030039 0.072767 +v 1.058783 0.000750 0.072767 +v 1.088072 -0.069961 0.072767 +v 1.088250 -0.195375 0.072767 +v 0.886547 -0.194626 -0.072767 +v 1.088250 -0.195375 -0.072767 +v 1.087778 -0.258818 -0.048582 +v 1.087778 -0.258818 0.048582 +v 1.152616 -0.153109 -0.048582 +v 1.152616 -0.153109 0.048582 +v 1.153087 -0.089666 0.072767 +v 0.888072 -0.069961 -0.072767 +v 0.917362 -0.140671 -0.072767 +v 0.988072 -0.169961 -0.072767 +v 1.058783 -0.140671 -0.072767 +v 1.088072 -0.069961 -0.072767 +v 1.153087 -0.089666 -0.072767 +v 1.153087 0.092782 -0.072767 +v 1.153087 0.092782 0.072767 +v 0.917361 0.000750 -0.072767 +v 1.058783 0.000750 -0.072767 +v 1.058783 -0.140671 0.072767 +v 0.988072 -0.169961 0.072767 +v 0.917362 -0.140671 0.072767 +v 0.988072 0.030039 -0.072767 +v -1.185225 0.299229 -0.228225 +v -1.185225 0.078919 -0.228225 +v -1.579320 0.146982 -0.228225 +v -1.579320 0.299229 -0.228225 +v -0.726389 0.070637 -0.201417 +v -0.726389 0.299229 -0.201417 +v -0.726389 0.299229 0.201417 +v -0.726389 0.070637 0.201417 +v -0.770558 0.343398 -0.201417 +v -1.096886 0.343398 -0.201417 +v -1.096886 0.343398 0.201417 +v -0.770558 0.343398 0.201417 +v -1.185225 0.078919 0.228225 +v -1.185225 0.299229 0.228225 +v -1.579320 0.299229 0.228225 +v -1.579320 0.146982 0.228225 +v -1.185225 0.343398 0.201417 +v -1.185225 0.343398 -0.201417 +v -1.579320 0.343398 -0.201417 +v -1.579320 0.343398 0.201417 +v -1.096886 0.026467 -0.201417 +v -0.770558 0.026467 -0.201417 +v -0.770558 0.026467 0.201417 +v -1.096886 0.026467 0.201417 +v -1.096886 0.070637 -0.228225 +v -1.096886 0.299229 -0.228225 +v -0.770558 0.299229 -0.228225 +v -0.770558 0.070637 -0.228225 +v -0.770558 0.070637 0.228225 +v -0.770558 0.299229 0.228225 +v -1.096886 0.299229 0.228225 +v -1.096886 0.070637 0.228225 +v -1.690351 0.200246 0.201417 +v -1.690351 0.287913 0.201417 +v -1.690351 0.287913 -0.201417 +v -1.690351 0.200246 -0.201417 +v -1.184581 0.033984 0.201417 +v -1.184581 0.033984 -0.201417 +v -1.659805 0.134929 0.201417 +v -1.579964 0.102270 0.201417 +v -1.667659 0.194088 0.228225 +v -1.667659 0.291126 0.228225 +v -1.646801 0.339453 0.201417 +v -1.659805 0.134929 -0.201417 +v -1.667659 0.194088 -0.228225 +v -1.579964 0.102270 -0.201417 +v -1.667040 0.336028 -0.201417 +v -1.667659 0.291126 -0.228225 +v -0.991593 0.009137 0.090896 +v -0.991593 0.050129 0.090896 +v -0.991593 0.050129 -0.090896 +v -0.991593 0.009137 -0.090896 +v -0.359255 0.050129 -0.090896 +v -0.359255 0.009137 -0.090896 +v -0.359255 0.050129 0.090896 +v -0.359255 0.009137 0.090896 +v -0.952793 -0.032302 0.079741 +v -0.475801 -0.032302 0.079741 +v -0.398056 -0.032302 0.079741 +v -0.952793 -0.032302 -0.079741 +v -0.477062 -0.032302 -0.079741 +v -0.398056 -0.032302 -0.079741 +v -0.547697 -0.243266 -0.079741 +v -0.468691 -0.243266 -0.079741 +v -0.417833 -0.308250 -0.079741 +v -0.496840 -0.308250 -0.079741 +v -0.468691 -0.243266 0.079741 +v -0.546437 -0.243266 0.079741 +v -0.495579 -0.308250 0.079741 +v -0.884730 -0.317360 -0.073714 +v -0.883469 -0.317360 0.085769 +v -0.417833 -0.308250 0.079741 +v -0.548320 -0.390292 0.079741 +v -0.549581 -0.390292 -0.079741 +v -0.470574 -0.390292 -0.079741 +v -0.470574 -0.390292 0.079741 +v -0.933383 -0.398929 -0.073714 +v -0.932122 -0.398929 0.085769 +v -1.071287 -0.315922 0.087949 +v -1.072548 -0.315922 -0.071533 +v -1.022634 -0.234353 0.087949 +v -1.023895 -0.234353 -0.071533 +v -0.906556 -0.031746 0.035327 +v -0.906556 -0.031746 -0.035327 +v -0.750972 -0.031746 -0.035327 +v -0.750972 -0.031746 0.035327 +v -0.891840 -0.172320 -0.035327 +v -0.891840 -0.172320 0.035327 +v -0.858049 -0.254618 0.035327 +v -0.773318 -0.237178 0.035327 +v -0.781494 -0.172320 0.035327 +v -0.781494 -0.172320 -0.035327 +v -0.752234 -0.268743 0.035327 +v -0.752234 -0.268743 -0.035327 +v -0.773318 -0.237178 -0.035327 +v -0.858049 -0.254618 -0.035327 +v -0.786277 -0.298175 0.035327 +v -0.786277 -0.298175 -0.035327 +v -0.654718 0.939467 0.338343 +v -0.745955 0.781575 0.338343 +v -0.745839 1.097427 0.338343 +v -0.757348 1.077508 0.380293 +v -0.677723 0.939476 0.380293 +v -1.019432 0.939601 0.338343 +v -0.928196 1.097493 0.338343 +v -0.928312 0.781642 0.338343 +v -0.916701 1.077567 0.380293 +v -0.996428 0.939592 0.380293 +v -0.949024 0.939575 0.380293 +v -0.893014 1.036505 0.380293 +v -0.916802 0.801560 0.380293 +v -0.757450 0.801501 0.380293 +v -0.781065 1.036464 0.380293 +v -0.884357 1.021497 0.419074 +v -0.789734 1.021463 0.419074 +v -0.781137 0.842563 0.380293 +v -0.893085 0.842604 0.380293 +v -0.725127 0.939493 0.380293 +v -0.931698 0.939569 0.419074 +v -0.877029 0.939549 0.419074 +v -0.857040 0.974142 0.419074 +v -0.884417 0.857606 0.419074 +v -0.742452 0.939499 0.419074 +v -0.789794 0.857571 0.419074 +v -0.817086 0.974128 0.419074 +v -0.857040 0.974142 0.317496 +v -0.817086 0.974128 0.317496 +v -0.817111 0.904926 0.419074 +v -0.857065 0.904940 0.419074 +v -0.797122 0.939519 0.419074 +v -0.797122 0.939519 0.317496 +v -0.877029 0.939549 0.317496 +v -0.857065 0.904940 0.317496 +v -0.817111 0.904926 0.317496 +v -0.745955 0.781575 -0.338343 +v -0.654718 0.939467 -0.338343 +v -0.677723 0.939476 -0.380293 +v -0.757348 1.077508 -0.380293 +v -0.745839 1.097427 -0.338343 +v -0.928196 1.097493 -0.338343 +v -1.019432 0.939601 -0.338343 +v -0.928312 0.781642 -0.338343 +v -0.916701 1.077567 -0.380293 +v -0.893014 1.036505 -0.380293 +v -0.949024 0.939575 -0.380293 +v -0.996428 0.939593 -0.380293 +v -0.916802 0.801560 -0.380293 +v -0.757450 0.801502 -0.380293 +v -0.781065 1.036464 -0.380293 +v -0.789734 1.021463 -0.419074 +v -0.884357 1.021497 -0.419074 +v -0.893085 0.842604 -0.380293 +v -0.781137 0.842563 -0.380293 +v -0.725127 0.939493 -0.380293 +v -0.857040 0.974142 -0.419074 +v -0.877029 0.939549 -0.419074 +v -0.931698 0.939569 -0.419074 +v -0.884417 0.857606 -0.419074 +v -0.789794 0.857571 -0.419074 +v -0.742452 0.939499 -0.419074 +v -0.817086 0.974128 -0.419074 +v -0.817086 0.974128 -0.317496 +v -0.857040 0.974142 -0.317496 +v -0.857065 0.904940 -0.419074 +v -0.817111 0.904926 -0.419074 +v -0.797122 0.939519 -0.419074 +v -0.797122 0.939519 -0.317496 +v -0.817111 0.904926 -0.317496 +v -0.857065 0.904940 -0.317496 +v -0.877029 0.939549 -0.317496 +v 0.990151 -0.648179 -0.190841 +v 0.990151 -0.321606 -0.374799 +v 1.068843 -0.322088 -0.329369 +v 1.068843 -0.609076 -0.167709 +v 1.068843 -0.323051 -0.238509 +v 1.068843 -0.530870 -0.121444 +v 0.990151 -0.323533 -0.193078 +v 0.990151 -0.491768 -0.098312 +v 0.911459 -0.323051 -0.238509 +v 0.911459 -0.530870 -0.121444 +v 0.911459 -0.322088 -0.329369 +v 0.911459 -0.609076 -0.167709 +v 0.990151 0.000993 -0.183958 +v 1.068843 -0.038592 -0.161660 +v 1.068843 -0.117761 -0.117064 +v 0.990151 -0.157346 -0.094766 +v 0.911459 -0.117761 -0.117064 +v 0.911459 -0.038592 -0.161660 +v 0.990151 -0.002981 0.190841 +v 1.068843 -0.042084 0.167709 +v 1.068843 -0.120290 0.121444 +v 0.990151 -0.159393 0.098312 +v 0.911459 -0.120290 0.121444 +v 0.911459 -0.042084 0.167709 +v 0.990151 -0.329554 0.374799 +v 1.068843 -0.329073 0.329369 +v 1.068843 -0.328109 0.238509 +v 0.990151 -0.327627 0.193079 +v 0.911459 -0.328109 0.238509 +v 0.911459 -0.329073 0.329369 +v 0.990151 -0.652153 0.183958 +v 1.068843 -0.612568 0.161660 +v 1.068843 -0.533399 0.117064 +v 0.990151 -0.493815 0.094766 +v 0.911459 -0.533399 0.117064 +v 0.911459 -0.612568 0.161660 +v -0.972691 1.166717 0.278124 +v -0.972691 1.166717 -0.278124 +v -0.987438 1.166717 -0.260322 +v -0.987438 1.166717 0.260322 +v -0.934937 1.102284 0.278124 +v -0.934937 1.102284 -0.278124 +v -0.971860 1.037372 0.278124 +v -0.971860 1.037372 -0.278124 +v -1.046537 1.036892 0.278124 +v -1.046537 1.036892 -0.278124 +v -1.047369 1.166237 0.278124 +v -1.084291 1.101324 0.278124 +v -1.084291 1.101324 -0.278124 +v -1.047368 1.166237 -0.278124 +v -1.032621 1.166237 -0.260322 +v -1.032621 1.166237 0.260322 +v -1.033084 1.202181 0.260322 +v -1.033084 1.202181 -0.260322 +v -0.987902 1.202661 0.260322 +v -0.987902 1.202661 -0.260322 +v -1.464091 -0.996279 -0.140051 +v -1.457375 -0.967729 -0.140051 +v -1.339310 -0.995504 -0.070026 +v -1.346026 -1.024054 -0.070026 +v -1.339310 -0.995504 0.070026 +v -1.346026 -1.024054 0.070026 +v -1.457375 -0.967729 0.140051 +v -1.464091 -0.996279 0.140051 +v -1.575440 -0.939954 0.070026 +v -1.582156 -0.968503 0.070026 +v -1.343945 -0.917630 -0.057125 +v -1.343945 -0.917630 0.057125 +v -1.575440 -0.939954 -0.070026 +v -1.582156 -0.968503 -0.070026 +v -1.482215 -1.073316 0.113549 +v -1.386492 -1.095835 0.056774 +v -1.440258 -0.894971 -0.114249 +v -1.536572 -0.872313 -0.057125 +v -1.536572 -0.872313 0.057125 +v -1.440258 -0.894971 0.114249 +v -1.577937 -1.050797 0.056774 +v -1.577937 -1.050797 -0.056774 +v -1.539716 -1.059789 -0.034105 +v -1.539716 -1.059789 0.034105 +v -1.482215 -1.073316 -0.113549 +v -1.386492 -1.095835 -0.056774 +v -1.482215 -1.073316 -0.068210 +v -1.487302 -1.094942 -0.059778 +v -1.537696 -1.083087 -0.029889 +v -1.482215 -1.073316 0.068210 +v -1.424713 -1.086844 0.034105 +v -1.424713 -1.086844 -0.034105 +v -1.436908 -1.106798 -0.029889 +v -1.436908 -1.106798 0.029889 +v -1.487302 -1.094942 0.059778 +v -1.537696 -1.083087 0.029889 +v -1.508359 -0.214874 0.108693 +v -1.504838 -0.215309 -0.106817 +v -1.564296 -0.274102 -0.089219 +v -1.567402 -0.273718 0.089973 +v -1.348484 -0.928894 -0.174279 +v -1.331423 -0.813343 -0.174279 +v -1.263873 -0.855085 -0.182453 +v -1.262042 -0.949106 -0.182453 +v -1.263873 -0.855085 0.182453 +v -1.207149 -0.865197 0.174081 +v -1.207149 -0.865197 -0.174081 +v -1.570189 -0.877055 0.143835 +v -1.435938 -0.379825 0.163084 +v -1.622805 -0.828855 0.096503 +v -1.262042 -0.949106 0.182453 +v -1.348484 -0.928894 0.174279 +v -1.435938 -0.379825 -0.163084 +v -1.112852 -0.829663 0.130793 +v -1.112852 -0.829663 -0.130793 +v -1.205319 -0.959218 -0.174081 +v -1.205319 -0.959218 0.174081 +v -1.111021 -0.923684 0.130793 +v -1.072210 -0.848373 0.087270 +v -1.073111 -0.802094 0.087270 +v -1.111021 -0.923684 -0.130793 +v -1.072210 -0.848373 -0.087270 +v -1.073111 -0.802094 -0.087270 +v -1.681696 -0.766817 -0.072169 +v -1.689936 -0.702839 -0.059605 +v -1.640119 -0.414721 -0.072179 +v -1.619700 -0.829239 -0.095954 +v -1.684682 -0.766448 0.071709 +v -1.643105 -0.414353 0.071698 +v -1.666879 -0.498637 -0.059615 +v -1.669865 -0.498268 0.058900 +v -1.692922 -0.702470 0.058910 +v -1.690559 -0.607421 0.054481 +v -1.687573 -0.607789 -0.055307 +v -1.331423 -0.813343 0.174279 +v -1.416650 -0.767127 -0.178303 +v -1.416650 -0.767127 0.178303 +v -1.469005 -0.685482 -0.171908 +v -1.469005 -0.685482 0.171908 +v -1.542909 -0.883434 -0.161182 +v -1.516768 -0.889546 -0.174389 +v -1.516768 -0.889546 0.174389 +v -1.542909 -0.883434 0.161182 +v -1.432626 -0.909220 -0.178303 +v -1.432626 -0.909220 0.178303 +v -1.484962 -0.656299 -0.158888 +v -1.570189 -0.877055 -0.143835 +v -1.484962 -0.656299 0.158888 +v -1.325666 -0.019640 0.170554 +v -1.325666 0.137146 0.170554 +v -1.472478 0.148884 0.071087 +v -1.472478 -0.007902 0.071087 +v -1.325666 -0.019640 -0.170554 +v -1.325666 0.137146 -0.170554 +v -1.062875 0.137146 -0.170554 +v -1.062875 -0.019640 -0.170554 +v -1.130714 -0.142396 -0.170554 +v -0.914155 -0.020276 -0.107189 +v -0.981994 -0.143031 -0.107189 +v -1.062875 -0.019640 0.170554 +v -1.062875 0.137146 0.170554 +v -0.914155 0.136510 -0.107189 +v -1.259746 -0.728734 -0.170554 +v -1.147611 -0.221161 -0.170554 +v -0.998891 -0.221796 -0.107189 +v -1.111026 -0.729370 -0.107189 +v -1.346664 -0.179545 0.170554 +v -1.130714 -0.142396 0.170554 +v -1.346664 -0.179545 -0.170554 +v -1.447785 -0.735647 0.170554 +v -1.363562 -0.258310 0.170554 +v -1.510373 -0.246572 0.071087 +v -1.594597 -0.723909 0.071087 +v -0.981994 -0.143031 0.107189 +v -0.914155 -0.020276 0.107189 +v -1.363562 -0.258310 -0.170554 +v -1.447785 -0.735647 -0.170554 +v -1.594597 -0.723909 -0.071087 +v -1.510373 -0.246572 -0.071087 +v -1.147611 -0.221161 0.170554 +v -1.259746 -0.728734 0.170554 +v -1.483874 -0.874924 0.170554 +v -1.219691 -0.868011 0.170554 +v -1.493475 -0.167807 0.071087 +v -1.219691 -0.868011 -0.170554 +v -0.914155 0.136510 0.107189 +v -1.472478 -0.007902 -0.071087 +v -1.472478 0.148884 -0.071087 +v -1.493475 -0.167807 -0.071087 +v -1.630686 -0.740134 -0.071087 +v -1.630686 -0.740134 0.071087 +v -0.998891 -0.221796 0.107189 +v -1.111026 -0.729370 0.107189 +v -1.100054 -0.868647 0.107189 +v -1.100054 -0.868647 -0.107189 +v -1.483874 -0.874924 -0.170554 +v -1.114931 0.645018 -0.394257 +v -0.705608 0.645018 -0.392564 +v -0.705608 0.367434 -0.277584 +v -1.115595 0.367434 -0.277584 +v -0.705608 0.252454 0.000000 +v -1.115595 0.252454 0.000000 +v -0.705608 0.367434 0.277584 +v -1.115595 0.367434 0.277584 +v -0.705608 0.645018 0.392564 +v -1.115595 0.645018 0.392564 +v -0.705608 0.922602 0.277584 +v -1.115595 0.922602 0.277584 +v -0.705608 1.037581 0.000000 +v -1.115595 1.037581 0.000000 +v -0.705608 0.922602 -0.277584 +v -1.115595 0.922602 -0.277584 +v -1.680468 0.367434 -0.277584 +v -1.680468 0.252454 0.000000 +v -1.696762 0.326183 0.000000 +v -1.696762 0.419567 -0.225451 +v -1.696762 0.645018 0.318835 +v -1.696762 0.870468 0.225451 +v -1.717499 0.922175 0.277157 +v -1.717499 0.645018 0.391959 +v -1.680468 0.645018 0.392564 +v -1.680468 0.922602 0.277584 +v -1.680468 0.922602 -0.277584 +v -1.680468 0.645018 -0.392564 +v -1.696762 0.645018 -0.318835 +v -1.696762 0.870469 -0.225450 +v -1.680468 0.367434 0.277584 +v -1.696762 0.419567 0.225451 +v -1.680468 1.037582 0.000000 +v -1.696762 0.963853 0.000000 +v -1.717499 1.036977 0.000000 +v -1.717499 0.922175 -0.277157 +v -1.807855 0.922175 -0.277157 +v -1.807855 1.036977 0.000000 +v -1.717499 0.367861 0.277157 +v -1.717499 0.253059 0.000000 +v -1.717499 0.367861 -0.277157 +v -1.717499 0.645018 -0.391959 +v -1.807855 0.922175 0.277157 +v -1.827112 0.964049 0.000000 +v -1.827112 0.870607 0.225589 +v -1.807856 0.645018 0.391959 +v -1.807856 0.367861 0.277157 +v -1.807856 0.253059 0.000000 +v -1.807856 0.367861 -0.277157 +v -1.807856 0.645018 -0.391959 +v -1.827112 0.645018 -0.319031 +v -1.827112 0.419429 -0.225589 +v -1.850272 0.367220 -0.277798 +v -1.850272 0.645018 -0.392866 +v -1.827112 0.645018 0.319031 +v -1.827112 0.419429 0.225589 +v -1.827112 0.325987 0.000000 +v -1.827112 0.870607 -0.225589 +v -1.850272 1.037884 0.000000 +v -1.850272 0.922816 -0.277798 +v -1.929992 0.922816 -0.277798 +v -1.929992 1.037884 0.000000 +v -1.850272 0.922816 0.277798 +v -1.850272 0.645018 0.392866 +v -1.850272 0.367220 0.277798 +v -1.850272 0.252152 0.000000 +v -1.929992 0.367220 -0.277798 +v -1.929992 0.252152 0.000000 +v -2.043752 0.321683 0.000000 +v -2.043752 0.416385 -0.228633 +v -1.929992 0.922816 0.277798 +v -1.929992 0.645018 0.392866 +v -1.929992 0.367220 0.277798 +v -1.929992 0.645018 -0.392866 +v -2.043752 0.873651 -0.228633 +v -2.043752 0.645018 -0.323335 +v -2.121962 0.645018 -0.225354 +v -2.121962 0.804367 -0.159349 +v -2.043752 0.968353 0.000000 +v -2.043752 0.873651 0.228633 +v -2.043752 0.645018 0.323335 +v -2.043752 0.416385 0.228633 +v -2.121962 0.870372 0.000000 +v -2.179800 0.787147 -0.142129 +v -2.179800 0.846019 0.000000 +v -2.121962 0.804367 0.159349 +v -2.121962 0.645018 0.225354 +v -2.121962 0.485669 0.159349 +v -2.121962 0.419664 0.000000 +v -2.121962 0.485669 -0.159349 +v -2.179800 0.787147 0.142129 +v -2.179800 0.817735 0.000000 +v -2.179800 0.767148 0.122130 +v -2.179800 0.645018 0.201001 +v -2.179800 0.502889 0.142129 +v -2.179800 0.444017 0.000000 +v -2.179800 0.502889 -0.142129 +v -2.179800 0.645018 -0.201001 +v -2.179800 0.645018 -0.172717 +v -2.179800 0.522888 -0.122130 +v -2.139229 0.522888 -0.122130 +v -2.139229 0.645018 -0.172717 +v -2.179800 0.645018 0.172717 +v -2.179800 0.522888 0.122130 +v -2.179800 0.472301 0.000000 +v -2.179800 0.767148 -0.122130 +v -2.139229 0.472301 0.000000 +v -2.139229 0.522888 0.122130 +v -2.139229 0.645018 0.172717 +v -2.139229 0.767148 0.122130 +v -2.139229 0.817735 0.000000 +v -2.139229 0.767148 -0.122130 +v -1.416219 0.923800 -0.278782 +v -1.416219 0.645018 -0.394257 +v -1.415588 1.037581 0.000000 +v -1.416219 0.923800 0.278782 +v -1.416219 0.645018 0.394257 +v -1.416219 0.366236 0.278782 +v -1.415589 0.252454 0.000000 +v -1.416219 0.366236 -0.278782 +v -1.161507 0.923800 -0.278782 +v -1.161507 0.645018 -0.394257 +v -1.161507 1.039275 0.000000 +v -1.161507 0.923800 0.278782 +v -1.161507 0.645018 0.394257 +v -1.161507 0.366236 0.278782 +v -1.161507 0.250761 0.000000 +v -1.161507 0.366236 -0.278782 +v -1.379544 0.645018 -0.394257 +v -1.379545 0.366236 -0.278782 +v -1.379545 1.039275 0.000000 +v -1.379545 0.923800 0.278782 +v -1.382795 0.953877 0.308859 +v -1.382795 1.081811 0.000000 +v -1.319287 0.645018 -0.409318 +v -1.221764 0.645018 -0.409318 +v -1.221764 0.355586 -0.289432 +v -1.319287 0.355586 -0.289432 +v -1.158621 0.950501 -0.305483 +v -1.158621 1.077036 0.000000 +v -1.379545 0.250761 0.000000 +v -1.319287 0.235700 0.000000 +v -1.316037 0.208225 0.000000 +v -1.316037 0.336159 -0.308859 +v -1.221764 0.235700 0.000000 +v -1.158621 0.950501 0.305483 +v -1.158621 0.645018 0.432019 +v -1.379545 0.366236 0.278782 +v -1.379545 0.645018 0.394257 +v -1.382795 0.336159 0.308859 +v -1.382795 0.645018 0.436793 +v -1.221764 0.355586 0.289432 +v -1.319287 0.355586 0.289432 +v -1.221764 0.934450 -0.289432 +v -1.221764 1.054336 0.000000 +v -1.224650 1.077036 0.000000 +v -1.224650 0.950501 -0.305483 +v -1.382795 0.336159 -0.308859 +v -1.382795 0.208225 0.000000 +v -1.221764 0.645018 0.409318 +v -1.319287 0.645018 0.409318 +v -1.158621 0.339535 0.305483 +v -1.158621 0.212999 0.000000 +v -1.319287 1.054336 0.000000 +v -1.319287 0.934450 -0.289432 +v -1.316037 0.953877 -0.308859 +v -1.316037 1.081811 0.000000 +v -1.221764 0.934450 0.289432 +v -1.319287 0.934450 0.289432 +v -1.224650 0.645018 0.432019 +v -1.224650 0.950501 0.305483 +v -1.316037 0.953877 0.308859 +v -1.316037 0.645018 0.436793 +v -1.158621 0.339535 -0.305483 +v -1.158621 0.645018 -0.432019 +v -1.379545 0.923800 -0.278782 +v -1.382795 0.953877 -0.308859 +v -1.224650 0.212999 0.000000 +v -1.224650 0.339535 0.305483 +v -1.316037 0.336159 0.308859 +v -1.224650 0.645018 -0.432019 +v -1.224650 0.339535 -0.305483 +v -1.382795 0.645018 -0.436793 +v -1.316036 0.645018 -0.436793 +v -0.419369 0.526526 -0.206986 +v 0.947632 0.526526 -0.206986 +v 0.947632 0.380164 -0.146361 +v -0.419369 0.380164 -0.146361 +v 0.947632 0.319540 0.000000 +v -0.419369 0.319540 0.000000 +v 0.947632 0.380164 0.146361 +v -0.419369 0.380164 0.146361 +v 0.947632 0.526526 0.206986 +v -0.419369 0.526526 0.206986 +v 0.947632 0.672887 0.146361 +v -0.419369 0.672887 0.146361 +v 0.947632 0.733512 0.000000 +v -0.419369 0.733512 0.000000 +v 0.947632 0.672887 -0.146361 +v -0.419369 0.672887 -0.146361 +v 1.384588 0.551670 0.654257 +v 1.384588 0.551670 0.449972 +v 1.139921 0.531994 0.449972 +v 1.139921 0.531994 0.558806 +v 1.384588 0.408111 0.449972 +v 1.504148 0.551670 0.449972 +v 1.504148 0.408111 0.449972 +v 1.504148 0.551670 0.654257 +v 1.577323 0.529883 0.613238 +v 1.577323 0.529883 0.449972 +v 1.504148 0.408111 0.654257 +v 1.384588 0.408111 0.654257 +v 1.577323 0.429898 0.449972 +v 1.577323 0.429898 0.613238 +v 1.139921 0.427787 0.558806 +v 1.139921 0.427787 0.449972 +v 1.384588 0.551670 -0.654257 +v 1.139921 0.531994 -0.558805 +v 1.139921 0.531994 -0.449972 +v 1.384588 0.551670 -0.449972 +v 1.384588 0.408111 -0.449972 +v 1.504148 0.408111 -0.449972 +v 1.504148 0.551670 -0.449972 +v 1.577323 0.529883 -0.449972 +v 1.577323 0.529883 -0.613238 +v 1.504148 0.551670 -0.654257 +v 1.504148 0.408111 -0.654257 +v 1.384588 0.408111 -0.654257 +v 1.577323 0.429898 -0.449972 +v 1.577323 0.429898 -0.613238 +v 1.139921 0.427787 -0.558805 +v 1.139921 0.427787 -0.449972 +v 1.310526 -0.082794 0.073582 +v 1.384588 0.101767 0.073582 +v 1.139921 0.101767 0.053905 +v 1.144858 -0.044123 0.053905 +v 1.384588 0.101767 -0.069977 +v 1.504148 0.101767 0.073582 +v 1.504148 0.101767 -0.069977 +v 1.430086 -0.082794 0.073582 +v 1.608182 -0.022025 0.051795 +v 1.577323 0.101767 0.051795 +v 1.430086 -0.082794 -0.069977 +v 1.310526 -0.082794 -0.069977 +v 1.577323 0.101767 -0.048191 +v 1.608182 -0.022025 -0.048191 +v 1.144858 -0.044123 -0.050301 +v 1.139921 0.101767 -0.050301 +v -1.606489 0.994589 0.070837 +v -1.606489 1.084445 0.070837 +v -1.606489 1.084277 -0.070837 +v -1.606489 0.994589 -0.070837 +v -0.511384 1.084480 -0.070837 +v -0.514357 1.052983 -0.070837 +v -0.549767 1.006668 -0.070837 +v -0.549767 0.994589 -0.070837 +v 1.313063 1.160981 0.058974 +v 1.498769 1.160981 0.058974 +v 1.498532 1.230366 0.031927 +v 1.312826 1.230366 0.031927 +v 1.225298 0.994589 0.070837 +v 1.225298 1.084445 0.070837 +v 0.962233 1.084445 0.070837 +v 0.964610 1.052983 0.070837 +v 1.000021 1.006668 0.070837 +v 1.000021 0.994589 0.070837 +v -0.197543 0.994589 -0.070837 +v 0.049014 0.994589 -0.070837 +v 0.049014 0.994589 0.070837 +v -0.197543 0.994589 0.070837 +v 0.401239 0.994589 -0.070837 +v 0.647796 0.994589 -0.070837 +v 0.647796 0.994589 0.070837 +v 0.401239 0.994589 0.070837 +v 1.000021 0.994589 -0.070837 +v 1.225298 0.994589 -0.070837 +v -0.549767 0.994589 0.070837 +v 1.225298 1.143051 -0.043128 +v -1.531817 1.143051 -0.043128 +v -1.531817 1.143051 0.043128 +v 1.225298 1.143051 0.043128 +v 1.313063 0.996053 0.070837 +v 1.498769 0.996053 0.070837 +v 1.313063 1.160981 -0.058974 +v 1.313063 0.996053 -0.070837 +v 1.225298 1.084802 -0.070837 +v 1.269521 1.219445 0.031927 +v 1.498769 0.996053 -0.070837 +v 1.498769 1.160981 -0.058974 +v 1.312826 1.230366 -0.031927 +v 1.498532 1.230366 -0.031927 +v 1.575087 0.954078 -0.070837 +v 1.575087 1.119006 -0.070837 +v 1.575087 1.119006 0.070837 +v 1.575087 0.954078 0.070837 +v 1.269521 1.219445 -0.031927 +v 1.554546 1.188392 0.031927 +v 1.554546 1.188392 -0.031927 +v -0.514597 1.084445 0.070837 +v -0.234129 1.084445 0.070837 +v 0.083877 1.084445 0.070837 +v 0.364860 1.084445 0.070837 +v 0.682044 1.084445 0.070837 +v 0.964998 1.084754 -0.070837 +v 0.683980 1.084702 -0.070837 +v 0.366670 1.084643 -0.070837 +v 0.084942 1.084590 -0.070837 +v -0.230760 1.084532 -0.070837 +v -0.232953 1.052983 -0.070837 +v -0.232953 1.052983 0.070837 +v -0.514357 1.052983 0.070837 +v -0.197543 1.006668 0.070837 +v -0.197543 1.006668 -0.070837 +v -0.549767 1.006668 0.070837 +v 0.084425 1.052983 -0.070837 +v 0.365828 1.052983 -0.070837 +v 0.365828 1.052983 0.070837 +v 0.084425 1.052983 0.070837 +v 0.401239 1.006668 0.070837 +v 0.401239 1.006668 -0.070837 +v 0.049014 1.006668 -0.070837 +v 0.049014 1.006668 0.070837 +v 0.683207 1.052983 -0.070837 +v 0.964610 1.052983 -0.070837 +v 0.683207 1.052983 0.070837 +v 1.000021 1.006668 -0.070837 +v 0.647796 1.006668 -0.070837 +v 0.647796 1.006668 0.070837 +v 1.103664 0.525584 -0.500000 +v 1.292985 0.525584 -0.500000 +v 1.292985 0.172030 -0.353553 +v 1.103664 0.172030 -0.353553 +v 1.103664 0.525584 0.500000 +v 1.292985 0.525584 0.500000 +v 1.292985 0.879137 0.353553 +v 1.103664 0.879137 0.353553 +v 1.292985 1.025584 0.000000 +v 1.103664 1.025584 0.000000 +v 1.503651 1.012795 0.000000 +v 1.503651 0.870094 -0.344510 +v 1.509822 0.895986 -0.370402 +v 1.509822 1.049411 0.000000 +v 1.080568 0.851567 0.325983 +v 1.080568 0.525584 0.461010 +v 1.292985 0.879137 -0.353553 +v 1.286814 0.905708 -0.380125 +v 1.286814 0.525584 -0.537577 +v 1.286814 0.525584 0.537577 +v 1.286814 0.905708 0.380125 +v 1.503651 0.038372 0.000000 +v 1.503651 0.181073 0.344510 +v 1.509822 0.155181 0.370402 +v 1.509822 0.001756 0.000000 +v 1.503651 0.870094 0.344510 +v 1.509822 0.895986 0.370402 +v 1.503651 0.525584 0.487211 +v 1.669294 0.525584 0.401911 +v 1.669294 0.809777 0.284194 +v 1.503651 0.181073 -0.344510 +v 1.503651 0.525584 -0.487211 +v 1.669294 0.525584 -0.401911 +v 1.669294 0.241390 -0.284194 +v 1.669294 0.809777 -0.284194 +v 1.669294 0.927494 0.000000 +v 1.669294 0.241390 0.284194 +v -0.603601 0.525584 -0.500000 +v 1.044523 0.525584 -0.500000 +v 1.044523 0.172030 -0.353553 +v -0.603601 0.172030 -0.353553 +v -0.603601 0.025584 0.000000 +v 1.044523 0.025584 0.000000 +v 1.044523 0.172030 0.353553 +v -0.603601 0.172030 0.353553 +v 0.951045 0.197436 0.364077 +v -0.460212 0.197436 0.364077 +v 1.044523 0.879137 0.353553 +v 0.899442 0.953734 0.173461 +v 0.899442 0.879137 0.353553 +v 1.044523 0.525584 0.500000 +v 1.068921 0.199748 0.325836 +v 1.068921 0.525584 0.460801 +v 1.044523 0.879137 -0.353553 +v 0.899442 0.735289 -0.413137 +v 0.899442 0.879137 -0.353553 +v 1.068921 0.986385 0.000000 +v 1.068921 0.851420 -0.325836 +v 1.044523 1.025584 0.000000 +v 0.985768 0.843292 0.316901 +v 0.899442 0.843292 0.316901 +v 0.899442 0.918248 0.161081 +v 1.068921 0.525584 -0.460801 +v 1.068921 0.199748 -0.325836 +v 1.068921 0.851420 0.325836 +v 1.080568 0.851567 -0.325983 +v 1.080568 0.525584 -0.461010 +v 1.080568 0.199600 -0.325983 +v 1.080568 0.064574 0.000000 +v 1.080568 0.199600 0.325983 +v 1.080568 0.986594 0.000000 +v 1.103664 0.172030 0.353553 +v 1.068921 0.064782 0.000000 +v -0.603601 1.025584 0.000000 +v 0.810528 0.997935 -0.101577 +v -0.388078 0.997935 -0.101577 +v 0.810528 0.952228 0.101577 +v 0.969099 0.952228 0.101577 +v 0.899442 0.719760 0.368080 +v 0.810528 0.997935 0.101577 +v -0.388078 0.997935 0.101577 +v 0.810528 0.655494 -0.446189 +v 1.286814 1.063161 0.000000 +v 1.320923 0.951339 0.425755 +v 1.320923 1.127692 0.000000 +v 1.286814 0.145459 -0.380125 +v 1.320923 0.525584 -0.602109 +v 1.320923 0.099829 -0.425755 +v 1.509822 0.525584 -0.523828 +v 1.475712 0.525584 -0.586708 +v 1.475712 0.940449 -0.414865 +v 1.286814 -0.011994 -0.000000 +v 1.320923 -0.076525 -0.000000 +v 1.509822 0.525584 0.523828 +v 1.475712 0.940449 0.414865 +v 1.475712 0.525584 0.586708 +v 1.509822 0.155181 -0.370402 +v 1.320923 0.525584 0.602109 +v 1.320923 0.951339 -0.425755 +v 1.475712 0.110718 -0.414866 +v 1.475712 1.112292 0.000000 +v 1.475712 0.110718 0.414866 +v 1.669294 0.271118 -0.254466 +v 1.669294 0.525584 -0.359869 +v 1.423236 0.525584 -0.300328 +v 1.423236 0.313220 -0.212364 +v 1.669294 0.780049 -0.254466 +v 1.669294 0.885452 0.000000 +v 1.669294 0.525584 0.359869 +v 1.669294 0.780049 0.254466 +v 1.669294 0.271118 0.254466 +v 1.423236 0.737947 -0.212364 +v 1.423236 0.825911 0.000000 +v 1.657500 0.838523 0.000000 +v 1.657500 0.746865 -0.221281 +v 1.423236 0.525584 0.300328 +v 1.423236 0.737947 0.212364 +v 1.657500 0.746865 0.221281 +v 1.657500 0.525584 0.312939 +v 1.657500 0.525584 0.252281 +v 1.657500 0.703973 0.178389 +v 1.657500 0.525584 -0.312939 +v 1.657500 0.304302 -0.221282 +v 1.423236 0.313220 0.212364 +v 1.657500 0.304302 0.221282 +v 1.657500 0.703973 -0.178389 +v 1.657500 0.525584 -0.252281 +v 1.657500 0.347194 -0.178389 +v 1.657500 0.347194 0.178389 +v 1.432520 0.525584 -0.169385 +v 1.432520 0.645357 -0.119773 +v 1.651829 0.645357 -0.119773 +v 1.651829 0.525584 -0.169385 +v 1.657500 0.777864 0.000000 +v 1.432520 0.645357 0.119773 +v 1.432520 0.694968 0.000000 +v 1.432520 0.405810 -0.119773 +v 1.432520 0.405810 0.119773 +v 1.432520 0.525584 0.169385 +v 1.657500 0.273303 0.000000 +v 1.432520 0.356199 0.000000 +v 1.651829 0.431184 0.000000 +v 1.651829 0.356199 0.000000 +v 1.651829 0.405810 -0.119773 +v 1.651829 0.525394 -0.094211 +v 1.651829 0.458777 -0.066617 +v 1.651829 0.405810 0.119773 +v 1.651829 0.525584 0.169385 +v 1.651829 0.645357 0.119773 +v 1.127542 0.525394 -0.094211 +v 1.127542 0.458777 -0.066617 +v 1.127542 0.431184 0.000000 +v 1.127542 0.525394 0.094211 +v 1.127542 0.592011 0.066617 +v 1.651829 0.592011 0.066617 +v 1.651829 0.525394 0.094211 +v 1.651829 0.619605 0.000000 +v 1.127542 0.619605 0.000000 +v 1.127542 0.592011 -0.066617 +v 1.651829 0.592011 -0.066617 +v 1.127542 0.458777 0.066617 +v -0.476991 0.837264 -0.291860 +v -0.476991 0.714942 -0.357372 +v -0.476991 0.735289 -0.413137 +v -0.476991 0.879137 -0.353553 +v -0.476991 0.879137 0.353553 +v -0.476991 0.953734 0.173461 +v -0.603601 0.879137 0.353553 +v 0.899442 0.735289 0.413137 +v -0.603601 0.879137 -0.353553 +v -0.724548 0.869896 -0.337068 +v -0.476991 0.953734 -0.173461 +v -0.476991 0.735289 0.413137 +v -0.388078 0.655494 0.446189 +v -0.388078 0.655494 -0.446189 +v 0.810528 0.655494 0.446189 +v -0.603601 0.525584 0.500000 +v 1.651829 0.458777 0.066617 +v -0.388078 0.633076 0.392654 +v -0.476991 0.714942 0.357372 +v -0.476991 0.837264 0.291860 +v -0.388078 0.944133 0.101577 +v -0.388078 0.944133 -0.101577 +v 0.810528 0.952228 -0.101577 +v 1.657500 0.212644 0.000000 +v 1.651829 0.694968 0.000000 +v -0.476991 0.926475 0.173461 +v 0.899442 0.843292 -0.316901 +v 0.899442 0.918248 -0.161081 +v 0.899442 0.953734 -0.173461 +v 0.899442 0.719760 -0.368080 +v 0.810528 0.655494 -0.378684 +v 0.810528 0.655494 0.378684 +v -0.388078 0.633076 -0.392654 +v 1.669294 0.123673 0.000000 +v 1.669294 0.165715 0.000000 +v 0.985768 0.843292 -0.316901 +v 0.969099 0.952228 -0.101577 +v 1.475712 -0.061125 -0.000000 +v 1.423236 0.225256 0.000000 +v 0.984259 0.528318 -0.436781 +v 0.984259 0.228435 -0.325032 +v 0.984259 0.095638 0.005025 +v 0.984259 0.228435 0.325032 +v 0.984259 0.528318 0.436781 +v 1.103664 0.025584 0.000000 +v -0.534084 0.903408 0.173461 +v -0.534084 0.903408 -0.173461 +v -0.476991 0.926475 -0.173461 +v -0.548068 0.837264 0.291860 +v -0.548068 0.837264 -0.291860 +v 1.292985 0.025584 0.000000 +v -0.550334 0.529772 0.433593 +v -0.550334 0.236472 0.339820 +v -0.550334 0.062663 0.005342 +v -0.550334 0.236472 -0.339820 +v -0.550334 0.529772 -0.433593 +v -0.388078 0.540720 0.422003 +v -0.388078 0.540720 -0.422003 +v 0.810528 0.526819 -0.419828 +v 0.810528 0.526819 0.419828 +v -0.388078 0.088709 0.007100 +v -0.388078 0.229035 -0.323350 +v -0.388078 0.229035 0.323350 +v 0.810528 0.240010 -0.300109 +v 0.810528 0.100279 0.006216 +v 0.810528 0.240010 0.300109 +v -0.460212 0.500178 0.489476 +v 0.678212 0.092276 -0.724878 +v 0.648869 0.138277 -0.701704 +v 0.951045 0.500178 0.489476 +v 0.646934 0.318302 -0.775205 +v 0.641987 0.458293 -0.590595 +v 0.671568 0.425284 -0.596467 +v 0.673140 0.318430 -0.775219 +v 0.003785 0.107850 -0.712878 +v 0.003776 0.311542 -0.796039 +v 0.286340 0.110829 -0.713675 +v 0.335441 0.111139 -0.713708 +v 0.137117 0.111516 -0.714176 +v 0.181234 0.111785 -0.714205 +v 0.643209 0.321800 -0.818636 +v 0.285150 0.311362 -0.795548 +v 0.335438 0.311680 -0.795582 +v 0.346589 0.320346 -0.818478 +v 0.273733 0.319982 -0.818438 +v 0.137105 0.309206 -0.794886 +v 0.180025 0.309468 -0.794915 +v 0.188876 0.319558 -0.818392 +v 0.127999 0.319254 -0.818359 +v 0.051715 0.318872 -0.818317 +v 0.044163 0.311789 -0.796066 +v 0.045414 0.108104 -0.712906 +v 0.949896 0.093608 -0.725023 +v 0.645678 0.092117 -0.724860 +v 0.346592 0.090651 -0.724701 +v 0.275455 0.090295 -0.724662 +v 0.190590 0.089871 -0.724616 +v 0.128016 0.089558 -0.724582 +v 0.053442 0.089185 -0.724541 +v -0.004002 0.088898 -0.724510 +v -0.004015 0.318594 -0.818287 +v -0.060217 0.318313 -0.818256 +v -0.059018 0.088623 -0.724480 +v 0.678557 0.155552 -0.465195 +v 0.649846 0.155552 -0.465195 +v 0.951045 0.155552 -0.465195 +v 0.674638 0.458293 -0.590595 +v 0.676644 0.321964 -0.818654 +v 0.948697 0.323297 -0.818799 +v 0.951045 0.458293 -0.590595 +v 0.641563 0.500178 -0.489476 +v 0.674042 0.500178 -0.489476 +v 0.951045 0.500178 -0.489476 +v -0.460212 0.155552 -0.465195 +v -0.460212 0.458293 -0.590595 +v -0.460212 0.500178 -0.489476 +v 0.951045 0.197436 -0.364077 +v -0.460212 0.197436 -0.364077 +v 1.292985 0.172030 0.353553 +v 1.103664 0.879137 -0.353553 +v -0.460212 0.197436 -0.364077 +v 0.951045 0.197436 -0.364077 +v 1.286814 0.145459 0.380125 +v 1.320923 0.099829 0.425755 +v -0.460212 0.500178 -0.489476 +v 0.951045 0.500178 -0.489476 +v -0.724548 0.532825 -0.476687 +v -0.724548 0.195753 -0.337068 +v -0.724548 0.056134 0.000004 +v -0.724548 0.195753 0.337075 +v -0.724548 0.532825 0.476694 +v -0.724548 0.869896 0.337075 +v -0.724548 1.009515 0.000004 +v 0.951045 0.197436 0.364077 +v -0.460212 0.197436 0.364077 +v -0.460212 0.500178 0.489476 +v -0.460212 0.155552 0.465195 +v -0.460212 0.458293 0.590595 +v 0.641563 0.500178 0.489476 +v 0.674042 0.500178 0.489476 +v 0.951045 0.500178 0.489476 +v 0.951045 0.458293 0.590595 +v 0.674638 0.458293 0.590595 +v 0.676644 0.321964 0.818654 +v 0.948697 0.323297 0.818799 +v 0.951045 0.155552 0.465195 +v 0.678557 0.155552 0.465195 +v 0.649846 0.155552 0.465195 +v -0.059018 0.088623 0.724480 +v -0.004002 0.088898 0.724510 +v -0.004015 0.318594 0.818287 +v -0.060217 0.318313 0.818256 +v 0.645678 0.092117 0.724860 +v 0.346592 0.090651 0.724701 +v 0.275455 0.090295 0.724662 +v 0.190590 0.089871 0.724616 +v 0.128016 0.089558 0.724582 +v 0.053442 0.089185 0.724541 +v 0.949896 0.093608 0.725023 +v 0.051715 0.318872 0.818317 +v 0.044163 0.311789 0.796066 +v 0.045414 0.108104 0.712906 +v 0.127999 0.319254 0.818359 +v 0.188876 0.319558 0.818392 +v 0.137105 0.309206 0.794886 +v 0.180025 0.309468 0.794915 +v 0.273733 0.319982 0.818438 +v 0.346589 0.320346 0.818478 +v 0.285150 0.311362 0.795548 +v 0.335438 0.311680 0.795582 +v 0.643209 0.321800 0.818636 +v 0.137117 0.111516 0.714176 +v 0.181234 0.111785 0.714205 +v 0.286340 0.110829 0.713675 +v 0.335441 0.111139 0.713708 +v 0.003776 0.311542 0.796039 +v 0.003785 0.107850 0.712878 +v 0.671568 0.425284 0.596467 +v 0.673140 0.318430 0.775219 +v 0.641987 0.458293 0.590595 +v 0.648869 0.138277 0.701704 +v 0.646934 0.318302 0.775205 +v 0.678212 0.092276 0.724878 +v 0.674369 0.138402 0.701718 +v 0.645976 0.425284 0.596467 +v 0.645644 0.458113 0.517211 +v 0.671101 0.458113 0.517211 +v 0.652136 0.187997 0.498180 +v 0.674639 0.187997 0.498180 +v 0.674369 0.138402 -0.701718 +v 0.645644 0.458113 -0.517211 +v 0.645976 0.425284 -0.596467 +v 0.671101 0.458113 -0.517211 +v 0.674639 0.187997 -0.498180 +v 0.652136 0.187997 -0.498180 +v -0.436383 0.265019 0.509254 +v 1.004741 0.265019 0.509254 +v 1.004741 0.179718 0.544586 +v -0.436383 0.179718 0.544586 +v 1.004741 0.144386 0.629887 +v -0.436383 0.144385 0.629887 +v 1.004741 0.179718 0.715187 +v -0.436383 0.179718 0.715187 +v 1.004741 0.265019 0.750520 +v -0.436383 0.265019 0.750520 +v 1.004741 0.350319 0.715187 +v -0.436383 0.350319 0.715187 +v 1.004741 0.385652 0.629887 +v -0.436383 0.385652 0.629887 +v 1.088061 0.265019 0.750520 +v 1.088061 0.350319 0.715187 +v 1.004741 0.350319 0.544586 +v -0.436383 0.350319 0.544586 +v -0.513171 0.364069 0.629887 +v -0.513171 0.335058 0.699926 +v -0.513171 0.265019 0.530836 +v -0.513171 0.194979 0.559848 +v -0.513171 0.165968 0.629887 +v -0.513171 0.194979 0.699926 +v -0.513171 0.265019 0.728937 +v -0.513171 0.335058 0.559848 +v 1.088061 0.265019 0.509254 +v 1.088061 0.350319 0.544586 +v 1.100404 0.336110 0.558795 +v 1.100404 0.265019 0.529348 +v 1.088061 0.179718 0.544586 +v 1.088061 0.144386 0.629887 +v 1.088061 0.179718 0.715187 +v 1.088061 0.385652 0.629887 +v 1.100404 0.336110 0.700979 +v 1.100404 0.365558 0.629887 +v 1.100404 0.193927 0.700979 +v 1.100404 0.265019 0.730426 +v 1.100404 0.193927 0.558795 +v 1.100404 0.164480 0.629887 +v 1.127149 0.181939 0.629887 +v 1.127149 0.206273 0.688633 +v 1.127149 0.206273 0.571141 +v 1.127149 0.265019 0.546807 +v 1.127149 0.323765 0.571141 +v 1.127149 0.348098 0.629887 +v 1.127149 0.323765 0.688633 +v 1.127149 0.265019 0.712966 +v -0.436384 0.265019 -0.509254 +v -0.436384 0.179718 -0.544586 +v 1.004741 0.179718 -0.544586 +v 1.004741 0.265019 -0.509254 +v -0.436384 0.144385 -0.629887 +v 1.004741 0.144386 -0.629887 +v -0.436384 0.179718 -0.715187 +v 1.004741 0.179718 -0.715187 +v -0.436384 0.265019 -0.750520 +v 1.004741 0.265019 -0.750520 +v -0.436384 0.350319 -0.715187 +v 1.004741 0.350319 -0.715187 +v -0.436384 0.385652 -0.629887 +v 1.004741 0.385652 -0.629887 +v 1.088061 0.350319 -0.715187 +v 1.088061 0.265019 -0.750520 +v -0.436384 0.350319 -0.544586 +v 1.004741 0.350319 -0.544586 +v -0.513171 0.335058 -0.699926 +v -0.513171 0.364069 -0.629887 +v -0.513171 0.265019 -0.530836 +v -0.513171 0.335058 -0.559848 +v -0.513171 0.265019 -0.728937 +v -0.513171 0.194979 -0.699926 +v -0.513171 0.165968 -0.629887 +v -0.513171 0.194979 -0.559848 +v 1.088061 0.265019 -0.509254 +v 1.100404 0.265019 -0.529348 +v 1.100404 0.336111 -0.558795 +v 1.088061 0.350319 -0.544586 +v 1.088061 0.179718 -0.544586 +v 1.088061 0.179718 -0.715187 +v 1.088061 0.144386 -0.629887 +v 1.088061 0.385652 -0.629887 +v 1.100404 0.365558 -0.629887 +v 1.100404 0.336110 -0.700979 +v 1.100404 0.265019 -0.730426 +v 1.100404 0.193927 -0.700979 +v 1.100404 0.164480 -0.629887 +v 1.100404 0.193927 -0.558795 +v 1.127149 0.206273 -0.688633 +v 1.127149 0.181939 -0.629887 +v 1.127149 0.206273 -0.571141 +v 1.127149 0.265019 -0.712966 +v 1.127149 0.323765 -0.688633 +v 1.127149 0.348098 -0.629887 +v 1.127149 0.323765 -0.571141 +v 1.127149 0.265019 -0.546807 +v -2.120991 0.943304 0.035550 +v -2.158085 0.862576 0.035550 +v -2.120991 0.943304 -0.035550 +v -2.158085 0.862576 -0.035550 +v -2.003111 1.008603 0.035550 +v -2.003111 1.008603 -0.035550 +v -1.938336 0.967051 0.035550 +v -1.938336 0.967051 -0.035550 +v -2.111712 0.819430 0.035550 +v -2.111712 0.819430 -0.035550 +v -2.120991 0.346120 -0.035550 +v -2.158085 0.426848 -0.035550 +v -2.120991 0.346120 0.035550 +v -2.158085 0.426848 0.035550 +v -2.003111 0.280821 -0.035550 +v -2.003111 0.280821 0.035550 +v -1.938336 0.322373 -0.035550 +v -1.938336 0.322373 0.035550 +v -2.111712 0.469994 -0.035550 +v -2.111712 0.469994 0.035550 +v -2.120991 0.609162 0.298592 +v -2.158085 0.609162 0.217864 +v -2.120991 0.680262 0.298592 +v -2.158085 0.680262 0.217864 +v -2.003111 0.609162 0.363891 +v -2.003111 0.680262 0.363891 +v -1.938336 0.609162 0.322339 +v -1.938336 0.680262 0.322339 +v -2.111712 0.609162 0.174718 +v -2.111712 0.680262 0.174718 +v -2.120991 0.680262 -0.298592 +v -2.158085 0.680262 -0.217864 +v -2.120991 0.609162 -0.298592 +v -2.158085 0.609162 -0.217864 +v -2.003111 0.680262 -0.363891 +v -2.003111 0.609162 -0.363891 +v -1.938336 0.680262 -0.322339 +v -1.938336 0.609162 -0.322339 +v -2.111712 0.680262 -0.174718 +v -2.111712 0.609162 -0.174718 +v -2.120991 0.830711 0.236274 +v -2.158085 0.773628 0.179191 +v -2.120991 0.880986 0.185999 +v -2.158085 0.823903 0.128916 +v -2.003111 0.876884 0.282447 +v -2.003111 0.927159 0.232172 +v -1.938336 0.847503 0.253066 +v -1.938336 0.897778 0.202791 +v -2.111712 0.743119 0.148682 +v -2.111712 0.793394 0.098407 +v -2.120991 0.458713 -0.236274 +v -2.158085 0.515796 -0.179191 +v -2.120991 0.408438 -0.185999 +v -2.158085 0.465521 -0.128916 +v -2.003111 0.412540 -0.282447 +v -2.003111 0.362265 -0.232172 +v -1.938336 0.441921 -0.253066 +v -1.938336 0.391646 -0.202791 +v -2.111712 0.546305 -0.148682 +v -2.111712 0.496030 -0.098407 +v -2.120991 0.408438 0.185999 +v -2.158085 0.465521 0.128916 +v -2.120991 0.458713 0.236274 +v -2.158085 0.515796 0.179191 +v -2.003111 0.362265 0.232172 +v -2.003111 0.412540 0.282447 +v -1.938336 0.391646 0.202791 +v -1.938336 0.441921 0.253066 +v -2.111712 0.496030 0.098407 +v -2.111712 0.546305 0.148682 +v -2.120991 0.880986 -0.185999 +v -2.158085 0.823903 -0.128916 +v -2.120991 0.830711 -0.236274 +v -2.158085 0.773628 -0.179191 +v -2.003111 0.927159 -0.232172 +v -2.003111 0.876884 -0.282447 +v -1.938336 0.897778 -0.202791 +v -1.938336 0.847503 -0.253066 +v -2.111712 0.793394 -0.098407 +v -2.111712 0.743119 -0.148682 +vt 0.500000 0.265625 +vt 0.531250 0.226562 +vt 0.531250 0.265625 +vt 0.500000 0.226562 +vt 0.531250 0.187500 +vt 0.500000 0.500000 +vt 0.531250 0.460938 +vt 0.531250 0.500000 +vt 0.500000 0.460938 +vt 0.531250 0.421875 +vt 0.500000 0.421875 +vt 0.531250 0.382812 +vt 0.500000 0.382812 +vt 0.531250 0.343750 +vt 0.822057 0.744753 +vt 0.801034 0.723730 +vt 0.872812 0.693998 +vt 0.500000 0.343750 +vt 0.531250 0.304688 +vt 0.500000 0.304688 +vt 0.944804 0.723730 +vt 0.894049 0.744753 +vt 0.873025 0.693998 +vt 0.500000 0.265625 +vt 0.531250 0.226562 +vt 0.531250 0.265625 +vt 0.500000 0.226562 +vt 0.531250 0.187500 +vt 0.500000 0.500000 +vt 0.531250 0.460938 +vt 0.531250 0.500000 +vt 0.500000 0.460938 +vt 0.531250 0.421875 +vt 0.500000 0.421875 +vt 0.531250 0.382812 +vt 0.500000 0.382812 +vt 0.531250 0.343750 +vt 0.750065 0.816745 +vt 0.729042 0.795722 +vt 0.800820 0.765990 +vt 0.500000 0.343750 +vt 0.531250 0.304688 +vt 0.500000 0.304688 +vt 0.872812 0.867713 +vt 0.822057 0.888737 +vt 0.801034 0.837982 +vt 0.500000 0.265625 +vt 0.531250 0.226562 +vt 0.531250 0.265625 +vt 0.500000 0.226562 +vt 0.531250 0.187500 +vt 0.500000 0.500000 +vt 0.531250 0.460938 +vt 0.531250 0.500000 +vt 0.500000 0.460938 +vt 0.531250 0.421875 +vt 0.500000 0.421875 +vt 0.531250 0.382812 +vt 0.500000 0.382812 +vt 0.531250 0.343750 +vt 0.678074 0.744753 +vt 0.657050 0.723730 +vt 0.728829 0.693998 +vt 0.500000 0.343750 +vt 0.531250 0.304688 +vt 0.500000 0.304688 +vt 0.728829 0.939705 +vt 0.678074 0.960729 +vt 0.657050 0.909974 +vt 0.500000 0.265625 +vt 0.531250 0.226562 +vt 0.531250 0.265625 +vt 0.500000 0.226562 +vt 0.531250 0.187500 +vt 0.500000 0.500000 +vt 0.531250 0.460938 +vt 0.531250 0.500000 +vt 0.500000 0.460938 +vt 0.531250 0.421875 +vt 0.500000 0.421875 +vt 0.531250 0.382812 +vt 0.500000 0.382812 +vt 0.531250 0.343750 +vt 0.750065 0.744753 +vt 0.729042 0.723730 +vt 0.800820 0.693998 +vt 0.500000 0.343750 +vt 0.531250 0.304688 +vt 0.500000 0.304688 +vt 0.728829 0.867713 +vt 0.678074 0.888737 +vt 0.657050 0.837982 +vt 0.500000 0.265625 +vt 0.531250 0.226562 +vt 0.531250 0.265625 +vt 0.500000 0.226562 +vt 0.531250 0.187500 +vt 0.500000 0.500000 +vt 0.531250 0.460938 +vt 0.531250 0.500000 +vt 0.500000 0.460938 +vt 0.531250 0.421875 +vt 0.500000 0.421875 +vt 0.531250 0.382812 +vt 0.500000 0.382812 +vt 0.531250 0.343750 +vt 0.678074 0.816745 +vt 0.657050 0.795722 +vt 0.728829 0.765990 +vt 0.500000 0.343750 +vt 0.531250 0.304688 +vt 0.500000 0.304688 +vt 0.872812 0.795722 +vt 0.822057 0.816745 +vt 0.801034 0.765990 +vt 0.792241 0.765292 +vt 0.806786 0.772343 +vt 0.792185 0.772343 +vt 0.806674 0.779394 +vt 0.792073 0.779394 +vt 0.806618 0.786445 +vt 0.792017 0.786445 +vt 0.792073 0.793497 +vt 0.710865 0.890954 +vt 0.707339 0.884848 +vt 0.717917 0.878741 +vt 0.806674 0.793497 +vt 0.792185 0.800547 +vt 0.806786 0.800547 +vt 0.792241 0.807599 +vt 0.792241 0.807743 +vt 0.806786 0.814794 +vt 0.792185 0.814794 +vt 0.806674 0.821845 +vt 0.792073 0.821845 +vt 0.806618 0.828896 +vt 0.792017 0.828896 +vt 0.792073 0.835947 +vt 0.602536 0.912132 +vt 0.596430 0.908607 +vt 0.602536 0.898029 +vt 0.806674 0.835947 +vt 0.792185 0.842998 +vt 0.806786 0.842998 +vt 0.792241 0.850049 +vt 0.797635 0.690671 +vt 0.812180 0.697723 +vt 0.797579 0.697723 +vt 0.812068 0.704773 +vt 0.797468 0.704773 +vt 0.812012 0.711825 +vt 0.797412 0.711825 +vt 0.797468 0.718876 +vt 0.713446 0.905202 +vt 0.707339 0.901676 +vt 0.713446 0.891099 +vt 0.812068 0.718876 +vt 0.797579 0.725927 +vt 0.812180 0.725927 +vt 0.797635 0.732978 +vt 0.725698 0.877553 +vt 0.737025 0.908837 +vt 0.725698 0.910410 +vt 0.739301 0.911771 +vt 0.792924 0.923206 +vt 0.739301 0.923206 +vt 0.795200 0.908837 +vt 0.806526 0.877554 +vt 0.806526 0.910410 +vt 0.792924 0.873046 +vt 0.739301 0.861611 +vt 0.792924 0.861611 +vt 0.737025 0.875980 +vt 0.742886 0.906641 +vt 0.789339 0.878177 +vt 0.789339 0.906641 +vt 0.742886 0.878177 +vt 0.739301 0.873046 +vt 0.792924 0.911771 +vt 0.795200 0.875980 +vt 0.692595 0.878597 +vt 0.707139 0.871545 +vt 0.707195 0.878597 +vt 0.692539 0.871545 +vt 0.707027 0.864495 +vt 0.692427 0.864495 +vt 0.706971 0.857444 +vt 0.692427 0.850392 +vt 0.692371 0.857444 +vt 0.809625 0.750895 +vt 0.809625 0.757947 +vt 0.803518 0.761472 +vt 0.692539 0.843341 +vt 0.707027 0.850392 +vt 0.692595 0.836290 +vt 0.707139 0.843341 +vt 0.677626 0.878597 +vt 0.692171 0.871545 +vt 0.692227 0.878597 +vt 0.677570 0.871545 +vt 0.692059 0.864495 +vt 0.677458 0.864495 +vt 0.692003 0.857443 +vt 0.677458 0.850392 +vt 0.677402 0.857443 +vt 0.809625 0.736648 +vt 0.809625 0.743699 +vt 0.803518 0.747225 +vt 0.677570 0.843341 +vt 0.692059 0.850392 +vt 0.677626 0.836290 +vt 0.692171 0.843341 +vt 0.707563 0.878597 +vt 0.722108 0.871545 +vt 0.722164 0.878597 +vt 0.707507 0.871545 +vt 0.721996 0.864495 +vt 0.707395 0.864495 +vt 0.721940 0.857443 +vt 0.707395 0.850392 +vt 0.707339 0.857443 +vt 0.790935 0.847539 +vt 0.790935 0.854590 +vt 0.784828 0.858116 +vt 0.707507 0.843341 +vt 0.721996 0.850392 +vt 0.707563 0.836290 +vt 0.722108 0.843341 +vt 0.596430 0.881943 +vt 0.607756 0.850659 +vt 0.607756 0.883516 +vt 0.663656 0.836290 +vt 0.610032 0.847725 +vt 0.610032 0.836290 +vt 0.677258 0.881943 +vt 0.665931 0.850659 +vt 0.677258 0.849086 +vt 0.610032 0.897885 +vt 0.663656 0.886450 +vt 0.663656 0.897885 +vt 0.613617 0.852856 +vt 0.660071 0.881319 +vt 0.660071 0.852856 +vt 0.610032 0.886450 +vt 0.663656 0.847725 +vt 0.665932 0.883516 +vt 0.815201 0.764122 +vt 0.805115 0.750247 +vt 0.815201 0.750247 +vt 0.817141 0.641039 +vt 0.870476 0.653777 +vt 0.814975 0.653777 +vt 0.609375 0.500000 +vt 0.667969 0.464844 +vt 0.667969 0.500000 +vt 0.871129 0.715795 +vt 0.815201 0.701921 +vt 0.871129 0.701921 +vt 0.871129 0.798574 +vt 0.871129 0.764122 +vt 0.854479 0.926427 +vt 0.891341 0.925198 +vt 0.888931 0.926427 +vt 0.796980 0.925198 +vt 0.836253 0.909544 +vt 0.836253 0.925198 +vt 0.799390 0.926427 +vt 0.833842 0.926427 +vt 0.796009 0.927723 +vt 0.781164 0.925198 +vt 0.837223 0.927723 +vt 0.852068 0.925198 +vt 0.851098 0.927723 +vt 0.852068 0.909544 +vt 0.837130 0.907319 +vt 0.851191 0.907319 +vt 0.796980 0.909544 +vt 0.891341 0.909544 +vt 0.634130 0.888554 +vt 0.669086 0.895466 +vt 0.634655 0.897270 +vt 0.854247 0.908557 +vt 0.889162 0.908557 +vt 0.834073 0.908557 +vt 0.781164 0.909544 +vt 0.796102 0.907319 +vt 0.682970 0.929943 +vt 0.682970 0.895466 +vt 0.683058 0.886728 +vt 0.668998 0.886728 +vt 0.620805 0.898244 +vt 0.620104 0.889541 +vt 0.586461 0.901279 +vt 0.585325 0.892614 +vt 0.785608 0.715795 +vt 0.805115 0.701921 +vt 0.805115 0.715795 +vt 0.815201 0.715795 +vt 0.815201 0.798574 +vt 0.808427 0.771594 +vt 0.808427 0.742775 +vt 0.808427 0.723268 +vt 0.804494 0.651062 +vt 0.870476 0.687966 +vt 0.814975 0.701735 +vt 0.814975 0.687966 +vt 0.866125 0.600252 +vt 0.807497 0.609109 +vt 0.667969 0.464844 +vt 0.609375 0.500000 +vt 0.609375 0.464844 +vt 0.783574 0.905836 +vt 0.820437 0.904607 +vt 0.818026 0.905836 +vt 0.836253 0.888953 +vt 0.875526 0.904607 +vt 0.836253 0.904607 +vt 0.873115 0.905836 +vt 0.838663 0.905836 +vt 0.876496 0.907133 +vt 0.891341 0.904607 +vt 0.890371 0.907133 +vt 0.835282 0.907133 +vt 0.821407 0.907133 +vt 0.820437 0.888953 +vt 0.835375 0.886728 +vt 0.875526 0.888953 +vt 0.781164 0.888953 +vt 0.781164 0.904607 +vt 0.732050 0.928117 +vt 0.767005 0.921205 +vt 0.766917 0.929943 +vt 0.818258 0.887966 +vt 0.838432 0.887966 +vt 0.876403 0.886728 +vt 0.891341 0.888953 +vt 0.780890 0.886728 +vt 0.780890 0.921205 +vt 0.780978 0.929943 +vt 0.718724 0.918427 +vt 0.718024 0.927130 +vt 0.684381 0.915392 +vt 0.683244 0.924057 +vt 0.804966 0.701735 +vt 0.785608 0.687966 +vt 0.804966 0.687966 +vt 0.808774 0.637292 +vt 0.808253 0.661193 +vt 0.871129 0.750247 +vt 0.791853 0.824225 +vt 0.783842 0.834044 +vt 0.783845 0.824223 +vt 0.791849 0.834047 +vt 0.783839 0.843866 +vt 0.791873 0.765295 +vt 0.783862 0.775114 +vt 0.783866 0.765292 +vt 0.791869 0.775116 +vt 0.783859 0.784935 +vt 0.791866 0.784938 +vt 0.783855 0.794757 +vt 0.791863 0.794760 +vt 0.783852 0.804579 +vt 0.791859 0.804582 +vt 0.783849 0.814401 +vt 0.791856 0.814404 +vt 0.778742 0.784012 +vt 0.778744 0.776033 +vt 0.677402 0.884383 +vt 0.683044 0.878741 +vt 0.691023 0.898004 +vt 0.778734 0.805499 +vt 0.778724 0.834964 +vt 0.778741 0.785855 +vt 0.778728 0.823299 +vt 0.778731 0.815320 +vt 0.778728 0.825142 +vt 0.778745 0.774191 +vt 0.778748 0.766212 +vt 0.778735 0.803656 +vt 0.778738 0.795677 +vt 0.271409 0.769029 +vt 0.265832 0.744085 +vt 0.271409 0.744085 +vt 0.265832 0.769029 +vt 0.260254 0.744085 +vt 0.260254 0.769029 +vt 0.254677 0.744085 +vt 0.254677 0.769029 +vt 0.249099 0.744085 +vt 0.249099 0.769029 +vt 0.243522 0.744085 +vt 0.243522 0.769029 +vt 0.237944 0.744085 +vt 0.261888 0.772973 +vt 0.275353 0.778551 +vt 0.237944 0.769029 +vt 0.232367 0.744085 +vt 0.232367 0.769029 +vt 0.226789 0.744085 +vt 0.275353 0.734564 +vt 0.275353 0.740142 +vt 0.261888 0.734564 +vt 0.712227 0.691554 +vt 0.724024 0.700800 +vt 0.715450 0.703178 +vt 0.507381 0.846904 +vt 0.598130 0.858967 +vt 0.507381 0.858967 +vt 0.569512 0.785553 +vt 0.590950 0.795995 +vt 0.569512 0.795995 +vt 0.598131 0.896473 +vt 0.507381 0.884411 +vt 0.598131 0.884410 +vt 0.508228 0.866382 +vt 0.678632 0.902783 +vt 0.769382 0.886888 +vt 0.769382 0.902783 +vt 0.669734 0.902783 +vt 0.652570 0.886888 +vt 0.669734 0.886888 +vt 0.712227 0.635780 +vt 0.724025 0.626533 +vt 0.717132 0.651390 +vt 0.678632 0.886888 +vt 0.732276 0.658361 +vt 0.714464 0.658361 +vt 0.760292 0.655719 +vt 0.739257 0.671614 +vt 0.739257 0.655719 +vt 0.708871 0.642447 +vt 0.734944 0.675944 +vt 0.740565 0.696214 +vt 0.734944 0.651390 +vt 0.598079 0.866382 +vt 0.508228 0.876995 +vt 0.698102 0.658361 +vt 0.714464 0.668973 +vt 0.698102 0.668973 +vt 0.732276 0.668973 +vt 0.808269 0.886888 +vt 0.717132 0.675944 +vt 0.708871 0.684886 +vt 0.713777 0.669277 +vt 0.598079 0.876995 +vt 0.591132 0.778095 +vt 0.612625 0.785553 +vt 0.590950 0.785553 +vt 0.578532 0.766460 +vt 0.578532 0.815089 +vt 0.591132 0.803454 +vt 0.578698 0.823250 +vt 0.625952 0.795995 +vt 0.612625 0.795995 +vt 0.612587 0.803625 +vt 0.621392 0.807294 +vt 0.621466 0.815543 +vt 0.594762 0.825013 +vt 0.579217 0.836399 +vt 0.652377 0.782955 +vt 0.632770 0.798594 +vt 0.632770 0.782955 +vt 0.625952 0.785554 +vt 0.601835 0.823468 +vt 0.620002 0.835136 +vt 0.612587 0.777924 +vt 0.621392 0.774255 +vt 0.739899 0.703371 +vt 0.748258 0.719266 +vt 0.739899 0.719266 +vt 0.714821 0.703371 +vt 0.723180 0.719266 +vt 0.714821 0.719266 +vt 0.748258 0.703371 +vt 0.756618 0.719266 +vt 0.706461 0.703371 +vt 0.706461 0.719266 +vt 0.698102 0.703371 +vt 0.698102 0.719266 +vt 0.731539 0.703371 +vt 0.731539 0.719266 +vt 0.723180 0.703371 +vt 0.756618 0.703371 +vt 0.764977 0.719266 +vt 0.601585 0.811408 +vt 0.588652 0.817689 +vt 0.609226 0.824945 +vt 0.609027 0.809728 +vt 0.615013 0.817143 +vt 0.601835 0.758080 +vt 0.579217 0.745150 +vt 0.620002 0.746413 +vt 0.621466 0.766005 +vt 0.609226 0.756604 +vt 0.609027 0.771821 +vt 0.615013 0.764406 +vt 0.594762 0.756536 +vt 0.578698 0.758299 +vt 0.588652 0.763859 +vt 0.594100 0.771488 +vt 0.601585 0.770141 +vt 0.167826 0.637345 +vt 0.114215 0.658256 +vt 0.114130 0.637792 +vt 0.232537 0.630625 +vt 0.263917 0.575325 +vt 0.263918 0.630625 +vt 0.179850 0.630269 +vt 0.223962 0.575325 +vt 0.223962 0.630625 +vt 0.167952 0.568476 +vt 0.114311 0.547378 +vt 0.168353 0.538018 +vt 0.167800 0.630285 +vt 0.113693 0.574921 +vt 0.167898 0.575574 +vt 0.272493 0.630625 +vt 0.317290 0.575325 +vt 0.317290 0.630625 +vt 0.179863 0.637263 +vt 0.223367 0.666831 +vt 0.180317 0.668668 +vt 0.223276 0.568399 +vt 0.180494 0.537066 +vt 0.224230 0.538894 +vt 0.094978 0.574829 +vt 0.081998 0.630460 +vt 0.082831 0.574648 +vt 0.168405 0.530773 +vt 0.180051 0.568560 +vt 0.168173 0.674993 +vt 0.180473 0.675838 +vt 0.225140 0.532000 +vt 0.231072 0.538436 +vt 0.230294 0.569140 +vt 0.224302 0.673691 +vt 0.230365 0.667318 +vt 0.230075 0.636801 +vt 0.223301 0.637495 +vt 0.102583 0.545262 +vt 0.103033 0.554042 +vt 0.114158 0.567779 +vt 0.104111 0.573586 +vt 0.102879 0.566036 +vt 0.102508 0.660379 +vt 0.113614 0.665427 +vt 0.101567 0.632630 +vt 0.102656 0.639463 +vt 0.098126 0.554394 +vt 0.098359 0.566372 +vt 0.098030 0.651303 +vt 0.102915 0.651612 +vt 0.098072 0.639307 +vt 0.329373 0.630625 +vt 0.180014 0.575685 +vt 0.168140 0.667731 +vt 0.272492 0.575325 +vt 0.180648 0.529997 +vt 0.060889 0.574321 +vt 0.072008 0.630311 +vt 0.060057 0.630133 +vt 0.113750 0.630739 +vt 0.104327 0.574930 +vt 0.113715 0.540194 +vt 0.072841 0.574499 +vt 0.101552 0.630752 +vt 0.005298 0.573491 +vt 0.004465 0.629303 +vt 0.423560 0.873494 +vt 0.420121 0.888745 +vt 0.420121 0.873494 +vt 0.341393 0.820409 +vt 0.338027 0.873463 +vt 0.337954 0.820414 +vt 0.405973 0.888777 +vt 0.402533 0.904028 +vt 0.402534 0.888777 +vt 0.356717 0.873437 +vt 0.360083 0.820384 +vt 0.360156 0.873433 +vt 0.363688 0.823634 +vt 0.363743 0.863650 +vt 0.341466 0.873458 +vt 0.375447 0.887810 +vt 0.415358 0.874430 +vt 0.415358 0.887810 +vt 0.334422 0.870213 +vt 0.334413 0.863585 +vt 0.397771 0.889712 +vt 0.676091 0.758842 +vt 0.670636 0.756488 +vt 0.676082 0.752214 +vt 0.757146 0.797623 +vt 0.738482 0.784243 +vt 0.757146 0.784243 +vt 0.723118 0.758182 +vt 0.740817 0.758754 +vt 0.723127 0.764704 +vt 0.734822 0.782341 +vt 0.716053 0.769156 +vt 0.734717 0.768961 +vt 0.693788 0.758116 +vt 0.709131 0.769177 +vt 0.676682 0.782565 +vt 0.676576 0.769186 +vt 0.738482 0.797622 +vt 0.731559 0.784242 +vt 0.709236 0.782556 +vt 0.746266 0.756491 +vt 0.746275 0.763013 +vt 0.716854 0.797621 +vt 0.723377 0.784242 +vt 0.723377 0.797622 +vt 0.753151 0.758579 +vt 0.663756 0.758701 +vt 0.663747 0.752073 +vt 0.731559 0.797622 +vt 0.684647 0.798126 +vt 0.670948 0.784944 +vt 0.684542 0.784746 +vt 0.669829 0.723944 +vt 0.753143 0.752057 +vt 0.746983 0.723944 +vt 0.753821 0.719853 +vt 0.716749 0.784242 +vt 0.662981 0.785039 +vt 0.671054 0.798323 +vt 0.663086 0.798418 +vt 0.669929 0.708186 +vt 0.676778 0.712259 +vt 0.663087 0.782582 +vt 0.662981 0.769203 +vt 0.740003 0.712277 +vt 0.746840 0.708186 +vt 0.742675 0.732079 +vt 0.725698 0.723741 +vt 0.742675 0.723741 +vt 0.750354 0.690671 +vt 0.750039 0.712874 +vt 0.736464 0.702680 +vt 0.750039 0.742945 +vt 0.750354 0.765148 +vt 0.736464 0.753139 +vt 0.763226 0.714312 +vt 0.759890 0.704357 +vt 0.754869 0.723741 +vt 0.750389 0.732079 +vt 0.750389 0.723741 +vt 0.763226 0.741507 +vt 0.759890 0.751462 +vt 0.770088 0.732079 +vt 0.780587 0.723741 +vt 0.780587 0.732079 +vt 0.760180 0.732079 +vt 0.754869 0.732079 +vt 0.770088 0.723741 +vt 0.760180 0.723741 +vt 0.754315 0.719295 +vt 0.754315 0.736524 +vt 0.797267 0.732079 +vt 0.660992 0.723479 +vt 0.639471 0.803338 +vt 0.639471 0.723479 +vt 0.617951 0.803338 +vt 0.617950 0.723479 +vt 0.638114 0.808819 +vt 0.619308 0.808819 +vt 0.704033 0.723479 +vt 0.682513 0.803338 +vt 0.682513 0.723479 +vt 0.725554 0.723479 +vt 0.704033 0.803338 +vt 0.662350 0.808819 +vt 0.678358 0.813663 +vt 0.665147 0.813663 +vt 0.659635 0.808819 +vt 0.640829 0.808819 +vt 0.683870 0.808819 +vt 0.596430 0.803338 +vt 0.616593 0.808819 +vt 0.597787 0.808819 +vt 0.660992 0.803338 +vt 0.725554 0.803338 +vt 0.705391 0.808819 +vt 0.656838 0.813663 +vt 0.644648 0.818571 +vt 0.643626 0.813663 +vt 0.724197 0.808819 +vt 0.708188 0.813663 +vt 0.635317 0.813663 +vt 0.622105 0.813664 +vt 0.702676 0.808819 +vt 0.686667 0.813663 +vt 0.613796 0.813663 +vt 0.600584 0.813664 +vt 0.677336 0.818571 +vt 0.669395 0.824158 +vt 0.666169 0.818571 +vt 0.698857 0.818571 +vt 0.687690 0.818571 +vt 0.601607 0.818571 +vt 0.720377 0.818571 +vt 0.709210 0.818571 +vt 0.623128 0.818571 +vt 0.652589 0.824158 +vt 0.647874 0.836146 +vt 0.647874 0.824158 +vt 0.712436 0.824158 +vt 0.631069 0.824158 +vt 0.626354 0.824158 +vt 0.655815 0.818571 +vt 0.695631 0.824158 +vt 0.690916 0.824158 +vt 0.612774 0.818571 +vt 0.604833 0.824158 +vt 0.792017 0.852551 +vt 0.796100 0.850193 +vt 0.800184 0.852551 +vt 0.690916 0.836146 +vt 0.609548 0.824158 +vt 0.604833 0.836146 +vt 0.674110 0.824158 +vt 0.669395 0.836146 +vt 0.717151 0.824158 +vt 0.712436 0.836146 +vt 0.626354 0.836146 +vt 0.638114 0.717999 +vt 0.596430 0.723479 +vt 0.665147 0.713154 +vt 0.681155 0.717999 +vt 0.662349 0.717999 +vt 0.659635 0.717999 +vt 0.702676 0.717999 +vt 0.597787 0.717999 +vt 0.705391 0.717999 +vt 0.644648 0.708247 +vt 0.656837 0.713154 +vt 0.643626 0.713154 +vt 0.721400 0.713154 +vt 0.724197 0.717999 +vt 0.619308 0.717999 +vt 0.635317 0.713154 +vt 0.640829 0.717999 +vt 0.686667 0.713154 +vt 0.683870 0.717999 +vt 0.613796 0.713154 +vt 0.616593 0.717999 +vt 0.669395 0.702659 +vt 0.677336 0.708246 +vt 0.666169 0.708246 +vt 0.698856 0.708246 +vt 0.699879 0.713154 +vt 0.601607 0.708247 +vt 0.600584 0.713154 +vt 0.678358 0.713154 +vt 0.708188 0.713154 +vt 0.720377 0.708246 +vt 0.623127 0.708247 +vt 0.622105 0.713154 +vt 0.647874 0.690671 +vt 0.652589 0.702659 +vt 0.647874 0.702659 +vt 0.712436 0.702659 +vt 0.709210 0.708246 +vt 0.631068 0.702659 +vt 0.634294 0.708247 +vt 0.655815 0.708246 +vt 0.687690 0.708246 +vt 0.695631 0.702659 +vt 0.609547 0.702659 +vt 0.612773 0.708247 +vt 0.696809 0.885813 +vt 0.696809 0.881098 +vt 0.700893 0.878741 +vt 0.690916 0.690671 +vt 0.690915 0.702659 +vt 0.604832 0.690672 +vt 0.604832 0.702659 +vt 0.669395 0.690672 +vt 0.674110 0.702659 +vt 0.712436 0.690672 +vt 0.717151 0.702659 +vt 0.626354 0.690671 +vt 0.626353 0.702659 +vt 0.539489 0.662552 +vt 0.530537 0.626566 +vt 0.541470 0.624156 +vt 0.521994 0.657280 +vt 0.522018 0.631474 +vt 0.512477 0.654813 +vt 0.512497 0.633922 +vt 0.567104 0.656501 +vt 0.559023 0.632614 +vt 0.568376 0.635647 +vt 0.557452 0.658376 +vt 0.550823 0.627189 +vt 0.548654 0.662764 +vt 0.527522 0.698874 +vt 0.530503 0.662204 +vt 0.521331 0.666550 +vt 0.519173 0.693104 +vt 0.511331 0.668282 +vt 0.567457 0.691304 +vt 0.557405 0.667647 +vt 0.567145 0.670010 +vt 0.549187 0.699089 +vt 0.537876 0.738665 +vt 0.538860 0.699091 +vt 0.518013 0.733188 +vt 0.518013 0.704364 +vt 0.507381 0.707109 +vt 0.569318 0.707322 +vt 0.558690 0.733388 +vt 0.558691 0.704578 +vt 0.537662 0.775156 +vt 0.527522 0.738678 +vt 0.519390 0.770224 +vt 0.518914 0.743857 +vt 0.509619 0.767888 +vt 0.509234 0.746544 +vt 0.565380 0.769400 +vt 0.557526 0.744628 +vt 0.567103 0.747937 +vt 0.555399 0.771140 +vt 0.549185 0.738876 +vt 0.536415 0.808349 +vt 0.528179 0.775090 +vt 0.519937 0.803468 +vt 0.520232 0.779548 +vt 0.511381 0.781718 +vt 0.562846 0.782540 +vt 0.553741 0.804033 +vt 0.554066 0.780145 +vt 0.546247 0.775488 +vt 0.534853 0.846711 +vt 0.527772 0.808121 +vt 0.517338 0.838217 +vt 0.518971 0.812483 +vt 0.509324 0.814332 +vt 0.563947 0.815884 +vt 0.554383 0.839383 +vt 0.554368 0.813416 +vt 0.545798 0.808475 +vt 0.743325 0.846202 +vt 0.734511 0.780557 +vt 0.743325 0.780557 +vt 0.734511 0.846202 +vt 0.725698 0.780557 +vt 0.778577 0.846202 +vt 0.769764 0.780557 +vt 0.778577 0.780557 +vt 0.752138 0.861467 +vt 0.743325 0.861467 +vt 0.738918 0.853835 +vt 0.769764 0.846202 +vt 0.760951 0.780557 +vt 0.760951 0.846202 +vt 0.752138 0.780557 +vt 0.743325 0.765292 +vt 0.752138 0.765292 +vt 0.756544 0.772924 +vt 0.598904 0.450451 +vt 0.597400 0.428674 +vt 0.598904 0.428674 +vt 0.752138 0.846202 +vt 0.597400 0.450451 +vt 0.595510 0.428674 +vt 0.597397 0.427170 +vt 0.595507 0.427170 +vt 0.594007 0.428674 +vt 0.595510 0.450451 +vt 0.594007 0.450451 +vt 0.597397 0.451954 +vt 0.172227 0.765938 +vt 0.166938 0.740681 +vt 0.172228 0.740681 +vt 0.172227 0.715424 +vt 0.166938 0.866966 +vt 0.172227 0.841709 +vt 0.172228 0.866966 +vt 0.166938 0.841709 +vt 0.172227 0.816452 +vt 0.152869 0.717751 +vt 0.166938 0.715424 +vt 0.166938 0.816452 +vt 0.172227 0.791195 +vt 0.166938 0.765938 +vt 0.187088 0.864576 +vt 0.216258 0.756632 +vt 0.198414 0.746330 +vt 0.216258 0.715424 +vt 0.166938 0.791195 +vt 0.152869 0.814126 +vt 0.152869 0.793522 +vt 0.152870 0.743008 +vt 0.152870 0.864640 +vt 0.152869 0.844036 +vt 0.152869 0.788868 +vt 0.152869 0.768265 +vt 0.152869 0.818779 +vt 0.187087 0.814062 +vt 0.194168 0.797673 +vt 0.194168 0.809974 +vt 0.187088 0.768328 +vt 0.187087 0.788806 +vt 0.187088 0.839319 +vt 0.187088 0.717814 +vt 0.187088 0.738291 +vt 0.187088 0.743071 +vt 0.187088 0.763549 +vt 0.708834 0.775416 +vt 0.713051 0.763876 +vt 0.713051 0.774656 +vt 0.187088 0.844099 +vt 0.194169 0.860488 +vt 0.194169 0.747160 +vt 0.194169 0.759461 +vt 0.194169 0.772417 +vt 0.194168 0.784717 +vt 0.187087 0.818842 +vt 0.194169 0.835231 +vt 0.194169 0.721902 +vt 0.194169 0.734203 +vt 0.722416 0.768920 +vt 0.713080 0.763529 +vt 0.713080 0.752749 +vt 0.708834 0.813629 +vt 0.713051 0.825169 +vt 0.708834 0.825930 +vt 0.708834 0.712601 +vt 0.713051 0.724142 +vt 0.708834 0.724902 +vt 0.708834 0.788372 +vt 0.713051 0.799913 +vt 0.708834 0.800673 +vt 0.708834 0.851187 +vt 0.713051 0.839646 +vt 0.713051 0.850427 +vt 0.708834 0.737858 +vt 0.713051 0.749399 +vt 0.708834 0.750159 +vt 0.294370 0.288682 +vt 0.282009 0.316260 +vt 0.282523 0.290958 +vt 0.111872 0.368366 +vt 0.117819 0.383109 +vt 0.105182 0.379030 +vt 0.244750 0.469833 +vt 0.236614 0.419488 +vt 0.244750 0.418305 +vt 0.291396 0.345771 +vt 0.296207 0.414923 +vt 0.284577 0.418229 +vt 0.142062 0.327911 +vt 0.154598 0.277537 +vt 0.154598 0.326756 +vt 0.352881 0.428986 +vt 0.327695 0.467098 +vt 0.327695 0.421040 +vt 0.236614 0.468651 +vt 0.222384 0.425600 +vt 0.113833 0.390300 +vt 0.101197 0.386221 +vt 0.239145 0.411717 +vt 0.236151 0.397828 +vt 0.244213 0.399443 +vt 0.142062 0.276383 +vt 0.133926 0.326728 +vt 0.133926 0.277565 +vt 0.224344 0.387806 +vt 0.215554 0.387155 +vt 0.218049 0.381113 +vt 0.101197 0.401708 +vt 0.219277 0.400080 +vt 0.119696 0.283678 +vt 0.101197 0.314470 +vt 0.107733 0.289824 +vt 0.107733 0.314470 +vt 0.119696 0.320616 +vt 0.222384 0.462538 +vt 0.215554 0.431746 +vt 0.113834 0.405787 +vt 0.108641 0.412910 +vt 0.151062 0.327987 +vt 0.195826 0.350407 +vt 0.210708 0.367530 +vt 0.196826 0.288518 +vt 0.208893 0.312342 +vt 0.196468 0.315696 +vt 0.139544 0.333726 +vt 0.215478 0.378614 +vt 0.316497 0.338796 +vt 0.308068 0.409865 +vt 0.259909 0.292936 +vt 0.247128 0.311195 +vt 0.247433 0.294457 +vt 0.319951 0.361232 +vt 0.312942 0.401961 +vt 0.259522 0.313253 +vt 0.209234 0.292024 +vt 0.218022 0.310674 +vt 0.231455 0.310275 +vt 0.231736 0.294769 +vt 0.218322 0.293936 +vt 0.160233 0.329406 +vt 0.186236 0.342290 +vt 0.319951 0.373800 +vt 0.317454 0.389300 +vt 0.255963 0.419460 +vt 0.269653 0.418891 +vt 0.255963 0.468679 +vt 0.283349 0.419794 +vt 0.269653 0.469247 +vt 0.179002 0.326772 +vt 0.182793 0.279386 +vt 0.182793 0.324907 +vt 0.166800 0.327325 +vt 0.179002 0.277522 +vt 0.166800 0.276969 +vt 0.251604 0.413517 +vt 0.255306 0.397444 +vt 0.263694 0.415262 +vt 0.268904 0.395754 +vt 0.275783 0.417007 +vt 0.127120 0.344105 +vt 0.149936 0.363391 +vt 0.124858 0.347674 +vt 0.136609 0.366672 +vt 0.118365 0.358020 +vt 0.126522 0.375945 +vt 0.189270 0.381869 +vt 0.129617 0.340179 +vt 0.154838 0.362201 +vt 0.186749 0.281836 +vt 0.186749 0.322457 +vt 0.288046 0.466506 +vt 0.283349 0.468344 +vt 0.288046 0.421633 +vt 0.280030 0.387717 +vt 0.279968 0.417592 +vt 0.284109 0.384750 +vt 0.736257 0.749904 +vt 0.720981 0.735530 +vt 0.737601 0.735936 +vt 0.692257 0.749976 +vt 0.667660 0.739250 +vt 0.690864 0.735991 +vt 0.656960 0.729484 +vt 0.671630 0.727494 +vt 0.759218 0.752722 +vt 0.760973 0.739048 +vt 0.655240 0.754127 +vt 0.654630 0.741140 +vt 0.699236 0.763166 +vt 0.729711 0.786304 +vt 0.699401 0.786517 +vt 0.672000 0.720136 +vt 0.659437 0.673315 +vt 0.674733 0.671568 +vt 0.756640 0.727337 +vt 0.690778 0.721089 +vt 0.737245 0.669306 +vt 0.720921 0.712637 +vt 0.721119 0.668222 +vt 0.770995 0.729067 +vt 0.775102 0.740741 +vt 0.691946 0.668674 +vt 0.707690 0.712575 +vt 0.691181 0.713632 +vt 0.737660 0.721120 +vt 0.756168 0.720079 +vt 0.759698 0.661123 +vt 0.754034 0.672902 +vt 0.737267 0.713753 +vt 0.721068 0.720172 +vt 0.708242 0.664474 +vt 0.730412 0.646622 +vt 0.721161 0.664626 +vt 0.693252 0.655628 +vt 0.708200 0.668070 +vt 0.773373 0.754463 +vt 0.707499 0.735519 +vt 0.707983 0.750017 +vt 0.720616 0.749928 +vt 0.276862 0.356559 +vt 0.290431 0.341211 +vt 0.290344 0.356570 +vt 0.707508 0.720200 +vt 0.307023 0.342159 +vt 0.730695 0.622609 +vt 0.699417 0.646258 +vt 0.699700 0.622244 +vt 0.729546 0.762953 +vt 0.260141 0.342128 +vt 0.260227 0.357030 +vt 0.669837 0.659434 +vt 0.736442 0.656278 +vt 0.718696 0.665604 +vt 0.637125 0.740104 +vt 0.638041 0.728257 +vt 0.657420 0.722230 +vt 0.638442 0.721194 +vt 0.639290 0.674330 +vt 0.657986 0.660330 +vt 0.768416 0.675386 +vt 0.770534 0.721953 +vt 0.705585 0.611441 +vt 0.725065 0.611670 +vt 0.705124 0.799693 +vt 0.468409 0.803653 +vt 0.432321 0.777944 +vt 0.468147 0.777333 +vt 0.467547 0.751090 +vt 0.431825 0.960571 +vt 0.468094 0.935326 +vt 0.467293 0.961486 +vt 0.432446 0.934600 +vt 0.468625 0.909056 +vt 0.432887 0.908590 +vt 0.468914 0.882722 +vt 0.433124 0.882534 +vt 0.469005 0.856330 +vt 0.252713 0.926008 +vt 0.234184 0.907479 +vt 0.297448 0.881274 +vt 0.433163 0.856431 +vt 0.468870 0.829966 +vt 0.433008 0.830309 +vt 0.402012 0.955428 +vt 0.397300 0.927800 +vt 0.404066 0.928173 +vt 0.687720 0.750985 +vt 0.680145 0.726425 +vt 0.686631 0.726623 +vt 0.405324 0.800871 +vt 0.399383 0.825394 +vt 0.398294 0.801032 +vt 0.405388 0.876012 +vt 0.397510 0.901583 +vt 0.399024 0.875931 +vt 0.397503 0.901726 +vt 0.405036 0.901915 +vt 0.403269 0.751934 +vt 0.398317 0.776869 +vt 0.397135 0.754788 +vt 0.405529 0.825455 +vt 0.398520 0.850403 +vt 0.399381 0.825522 +vt 0.404431 0.776697 +vt 0.398295 0.800898 +vt 0.398319 0.776992 +vt 0.405807 0.850546 +vt 0.399030 0.875799 +vt 0.398516 0.850542 +vt 0.680386 0.801069 +vt 0.672012 0.775951 +vt 0.680120 0.775770 +vt 0.686654 0.702459 +vt 0.680397 0.678377 +vt 0.685472 0.680379 +vt 0.685647 0.853251 +vt 0.678903 0.826776 +vt 0.685839 0.827317 +vt 0.685847 0.827174 +vt 0.687361 0.801521 +vt 0.686856 0.775994 +vt 0.680970 0.750833 +vt 0.687717 0.751113 +vt 0.686655 0.702582 +vt 0.680400 0.702433 +vt 0.685636 0.853391 +vt 0.676386 0.880012 +vt 0.678246 0.852673 +vt 0.687366 0.801389 +vt 0.686852 0.776133 +vt 0.666018 0.750825 +vt 0.672677 0.751098 +vt 0.672359 0.726775 +vt 0.672420 0.678157 +vt 0.670576 0.826799 +vt 0.671795 0.801161 +vt 0.672599 0.702801 +vt 0.669799 0.852532 +vt 0.375392 0.900738 +vt 0.367298 0.925768 +vt 0.368419 0.900106 +vt 0.665917 0.702651 +vt 0.667453 0.879204 +vt 0.663024 0.851996 +vt 0.664913 0.800603 +vt 0.665347 0.775609 +vt 0.666024 0.750692 +vt 0.665933 0.726588 +vt 0.665920 0.702524 +vt 0.666176 0.680584 +vt 0.663728 0.826328 +vt 0.664905 0.800741 +vt 0.369605 0.874566 +vt 0.363323 0.849412 +vt 0.370241 0.849510 +vt 0.375402 0.900600 +vt 0.376568 0.875150 +vt 0.377018 0.849885 +vt 0.370951 0.824801 +vt 0.377682 0.825235 +vt 0.377601 0.800869 +vt 0.371383 0.776907 +vt 0.377581 0.777061 +vt 0.373635 0.950910 +vt 0.374687 0.926405 +vt 0.377011 0.850018 +vt 0.377688 0.825102 +vt 0.371077 0.800659 +vt 0.377597 0.800998 +vt 0.377839 0.754993 +vt 0.371413 0.752320 +vt 0.360267 0.925582 +vt 0.347083 0.950103 +vt 0.348183 0.927438 +vt 0.364418 0.800713 +vt 0.364200 0.752350 +vt 0.361297 0.899912 +vt 0.362552 0.874407 +vt 0.364148 0.824770 +vt 0.364611 0.776997 +vt 0.366231 0.953475 +vt 0.350327 0.897110 +vt 0.341055 0.878800 +vt 0.351359 0.876119 +vt 0.352395 0.851288 +vt 0.353941 0.802724 +vt 0.353528 0.754710 +vt 0.350053 0.901736 +vt 0.353368 0.826592 +vt 0.354131 0.798530 +vt 0.354290 0.779011 +vt 0.341912 0.868436 +vt 0.337171 0.854714 +vt 0.342354 0.854099 +vt 0.352689 0.846873 +vt 0.343461 0.829337 +vt 0.344830 0.781891 +vt 0.337060 0.930341 +vt 0.344181 0.819416 +vt 0.344336 0.805617 +vt 0.344009 0.772085 +vt 0.343773 0.757947 +vt 0.339120 0.919252 +vt 0.339711 0.904527 +vt 0.337928 0.842538 +vt 0.336179 0.830746 +vt 0.338350 0.829930 +vt 0.339363 0.806307 +vt 0.338699 0.758796 +vt 0.334381 0.905110 +vt 0.335110 0.892381 +vt 0.335752 0.879332 +vt 0.339831 0.794720 +vt 0.339930 0.782587 +vt 0.330651 0.945008 +vt 0.331335 0.930918 +vt 0.331660 0.917230 +vt 0.328650 0.905805 +vt 0.332113 0.905944 +vt 0.337862 0.783423 +vt 0.328894 0.931793 +vt 0.334633 0.866535 +vt 0.334971 0.855547 +vt 0.337144 0.817725 +vt 0.337262 0.807149 +vt 0.336753 0.770554 +vt 0.336572 0.759719 +vt 0.333490 0.880141 +vt 0.941898 0.795080 +vt 0.941898 0.783551 +vt 0.969733 0.795080 +vt 0.332939 0.891354 +vt 0.330049 0.879972 +vt 0.335816 0.841579 +vt 0.332854 0.830634 +vt 0.337776 0.793850 +vt 0.334662 0.783397 +vt 0.328306 0.943900 +vt 0.325178 0.931613 +vt 0.331599 0.855443 +vt 0.334017 0.807113 +vt 0.333246 0.759774 +vt 0.428276 0.902463 +vt 0.428438 0.850443 +vt 0.427095 0.800329 +vt 0.425262 0.751105 +vt 0.426477 0.956538 +vt 0.673824 0.788881 +vt 0.671595 0.810654 +vt 0.670524 0.788997 +vt 0.673367 0.767296 +vt 0.670065 0.767319 +vt 0.670218 0.745637 +vt 0.670983 0.723967 +vt 0.673519 0.745706 +vt 0.675650 0.702584 +vt 0.672358 0.702328 +vt 0.674344 0.680736 +vt 0.675956 0.832101 +vt 0.674339 0.853928 +vt 0.672662 0.832310 +vt 0.678391 0.810766 +vt 0.680639 0.832492 +vt 0.678004 0.832445 +vt 0.661211 0.777994 +vt 0.658377 0.800847 +vt 0.658377 0.776825 +vt 0.796315 0.870850 +vt 0.818826 0.877857 +vt 0.796315 0.877857 +vt 0.661248 0.753053 +vt 0.663763 0.775775 +vt 0.661247 0.774736 +vt 0.677663 0.854079 +vt 0.651742 0.681492 +vt 0.653581 0.704758 +vt 0.651742 0.704003 +vt 0.818826 0.870850 +vt 0.841337 0.877858 +vt 0.661247 0.822256 +vt 0.663763 0.799534 +vt 0.663763 0.823294 +vt 0.677663 0.680829 +vt 0.680639 0.702416 +vt 0.678004 0.702463 +vt 0.661211 0.826039 +vt 0.658377 0.848891 +vt 0.658377 0.824869 +vt 0.661247 0.870850 +vt 0.683759 0.877858 +vt 0.661247 0.877858 +vt 0.670029 0.775151 +vt 0.668508 0.752015 +vt 0.670029 0.752639 +vt 0.678391 0.724142 +vt 0.661211 0.681906 +vt 0.658378 0.704758 +vt 0.658378 0.680736 +vt 0.683759 0.870850 +vt 0.706270 0.877857 +vt 0.661247 0.848092 +vt 0.663763 0.870813 +vt 0.661247 0.869775 +vt 0.681026 0.724095 +vt 0.678778 0.745822 +vt 0.651742 0.776069 +vt 0.653580 0.752802 +vt 0.653580 0.776825 +vt 0.706270 0.870850 +vt 0.728781 0.877857 +vt 0.670029 0.822670 +vt 0.668508 0.799534 +vt 0.670029 0.800159 +vt 0.681413 0.745775 +vt 0.679210 0.767454 +vt 0.651742 0.801602 +vt 0.653580 0.824869 +vt 0.651742 0.824113 +vt 0.728781 0.870850 +vt 0.751292 0.877857 +vt 0.661247 0.727217 +vt 0.663763 0.704496 +vt 0.663763 0.728256 +vt 0.681413 0.789133 +vt 0.678778 0.789086 +vt 0.661211 0.753972 +vt 0.658377 0.752802 +vt 0.751292 0.870850 +vt 0.773803 0.877857 +vt 0.670029 0.870189 +vt 0.668507 0.847054 +vt 0.670029 0.847678 +vt 0.651742 0.872158 +vt 0.653580 0.848891 +vt 0.653580 0.872914 +vt 0.773803 0.870850 +vt 0.670029 0.727631 +vt 0.668508 0.704496 +vt 0.670029 0.705120 +vt 0.668508 0.728256 +vt 0.668508 0.680736 +vt 0.668507 0.870813 +vt 0.663763 0.847054 +vt 0.668508 0.823294 +vt 0.668508 0.775775 +vt 0.663763 0.752015 +vt 0.670029 0.703872 +vt 0.670029 0.681360 +vt 0.670029 0.823918 +vt 0.661248 0.703457 +vt 0.663763 0.680736 +vt 0.670029 0.798910 +vt 0.670029 0.776399 +vt 0.661247 0.824332 +vt 0.661247 0.846015 +vt 0.670029 0.728880 +vt 0.661247 0.798496 +vt 0.661248 0.729294 +vt 0.661248 0.750977 +vt 0.658377 0.728780 +vt 0.658378 0.872914 +vt 0.653580 0.800847 +vt 0.651742 0.848136 +vt 0.661211 0.751633 +vt 0.661211 0.729950 +vt 0.651742 0.777580 +vt 0.651742 0.800091 +vt 0.651742 0.752047 +vt 0.653580 0.728780 +vt 0.661211 0.727611 +vt 0.661211 0.705928 +vt 0.661211 0.871744 +vt 0.661211 0.850061 +vt 0.651742 0.705514 +vt 0.651742 0.728025 +vt 0.661211 0.823699 +vt 0.661211 0.802016 +vt 0.593987 0.466928 +vt 0.536809 0.473554 +vt 0.536809 0.466928 +vt 0.593987 0.473554 +vt 0.536809 0.480180 +vt 0.593987 0.427170 +vt 0.536809 0.433796 +vt 0.536809 0.427170 +vt 0.593987 0.433796 +vt 0.536809 0.440423 +vt 0.593987 0.440423 +vt 0.536809 0.447049 +vt 0.593987 0.447049 +vt 0.536809 0.453675 +vt 0.564138 0.496197 +vt 0.557512 0.496197 +vt 0.552826 0.491512 +vt 0.593987 0.453675 +vt 0.536809 0.460302 +vt 0.593987 0.460302 +vt 0.548121 0.480200 +vt 0.552807 0.484886 +vt 0.552807 0.491512 +vt 0.657338 0.624156 +vt 0.684146 0.636043 +vt 0.657338 0.646468 +vt 0.596234 0.646468 +vt 0.609293 0.662148 +vt 0.596234 0.662148 +vt 0.644279 0.624156 +vt 0.635940 0.641988 +vt 0.635940 0.624156 +vt 0.644279 0.646468 +vt 0.657338 0.662148 +vt 0.644279 0.662148 +vt 0.644279 0.684460 +vt 0.657338 0.684460 +vt 0.617285 0.648848 +vt 0.635117 0.659768 +vt 0.617285 0.659768 +vt 0.609293 0.646468 +vt 0.635117 0.648848 +vt 0.635940 0.666628 +vt 0.686022 0.648617 +vt 0.697909 0.659999 +vt 0.686022 0.659999 +vt 0.684146 0.672573 +vt 0.684146 0.684460 +vt 0.569512 0.659999 +vt 0.569512 0.648617 +vt 0.684146 0.733070 +vt 0.657338 0.744957 +vt 0.657338 0.722645 +vt 0.609293 0.706965 +vt 0.596234 0.722645 +vt 0.596234 0.706965 +vt 0.644279 0.744957 +vt 0.635940 0.727125 +vt 0.644279 0.722645 +vt 0.657338 0.706965 +vt 0.644279 0.706965 +vt 0.644279 0.684653 +vt 0.657338 0.684653 +vt 0.635117 0.709345 +vt 0.617285 0.720265 +vt 0.617285 0.709345 +vt 0.609293 0.722645 +vt 0.635940 0.702485 +vt 0.697909 0.709114 +vt 0.686022 0.720496 +vt 0.686022 0.709114 +vt 0.684146 0.696540 +vt 0.569512 0.709114 +vt 0.687094 0.850835 +vt 0.668374 0.871028 +vt 0.668880 0.855092 +vt 0.755690 0.850835 +vt 0.742632 0.835156 +vt 0.755690 0.835156 +vt 0.708241 0.870993 +vt 0.719772 0.857405 +vt 0.716580 0.870969 +vt 0.700152 0.850835 +vt 0.687094 0.835156 +vt 0.700152 0.835156 +vt 0.695183 0.814998 +vt 0.695183 0.870993 +vt 0.734640 0.848456 +vt 0.720705 0.837535 +vt 0.734640 0.837535 +vt 0.720705 0.848456 +vt 0.708242 0.814998 +vt 0.719772 0.828586 +vt 0.668513 0.848686 +vt 0.652570 0.837305 +vt 0.668513 0.837305 +vt 0.668374 0.814963 +vt 0.782413 0.848686 +vt 0.507381 0.592589 +vt 0.517080 0.607896 +vt 0.507387 0.607900 +vt 0.650947 0.611955 +vt 0.650586 0.616094 +vt 0.646319 0.621727 +vt 0.666752 0.768747 +vt 0.686764 0.776291 +vt 0.667308 0.776511 +vt 0.803577 0.589880 +vt 0.803817 0.587267 +vt 0.806813 0.583472 +vt 0.841024 0.871221 +vt 0.814095 0.886695 +vt 0.814095 0.871221 +vt 0.914062 0.871221 +vt 0.887133 0.886695 +vt 0.887133 0.871221 +vt 0.984776 0.871221 +vt 0.960171 0.886695 +vt 0.960171 0.871221 +vt 0.652570 0.871221 +vt 0.767986 0.886695 +vt 0.652570 0.886695 +vt 0.527349 0.604901 +vt 0.825309 0.595589 +vt 0.825308 0.604911 +vt 0.665637 0.750916 +vt 0.686629 0.768163 +vt 0.665076 0.808360 +vt 0.655487 0.808168 +vt 0.655848 0.798318 +vt 0.656852 0.767886 +vt 0.656097 0.760783 +vt 0.760863 0.788053 +vt 0.751192 0.772277 +vt 0.760938 0.772323 +vt 0.662462 0.776147 +vt 0.751117 0.788007 +vt 0.730573 0.772179 +vt 0.666572 0.790660 +vt 0.686731 0.783381 +vt 0.686464 0.791526 +vt 0.685418 0.809662 +vt 0.702516 0.787776 +vt 0.720903 0.772133 +vt 0.720828 0.787863 +vt 0.694600 0.796708 +vt 0.693495 0.814770 +vt 0.685873 0.750109 +vt 0.694810 0.763131 +vt 0.730498 0.787909 +vt 0.667168 0.782974 +vt 0.662462 0.783303 +vt 0.694502 0.783418 +vt 0.693012 0.771912 +vt 0.694536 0.776328 +vt 0.702591 0.772046 +vt 0.652570 0.774891 +vt 0.652570 0.784558 +vt 0.692927 0.787866 +vt 0.753166 0.589107 +vt 0.780211 0.589523 +vt 0.517091 0.592585 +vt 0.780716 0.610920 +vt 0.753871 0.611342 +vt 0.806408 0.871221 +vt 0.775673 0.886695 +vt 0.775673 0.871221 +vt 0.812776 0.886695 +vt 0.769305 0.871221 +vt 0.767986 0.871221 +vt 0.769305 0.886695 +vt 0.806408 0.886695 +vt 0.879446 0.871221 +vt 0.848711 0.886695 +vt 0.848711 0.871221 +vt 0.885814 0.886695 +vt 0.842343 0.871221 +vt 0.841024 0.886695 +vt 0.842343 0.886695 +vt 0.885814 0.871221 +vt 0.952484 0.871221 +vt 0.921749 0.886695 +vt 0.921749 0.871221 +vt 0.958852 0.871221 +vt 0.958852 0.886695 +vt 0.915381 0.871221 +vt 0.914062 0.886695 +vt 0.915381 0.886695 +vt 0.952484 0.886695 +vt 0.727505 0.585511 +vt 0.753313 0.586332 +vt 0.756417 0.582443 +vt 0.777420 0.582866 +vt 0.780357 0.586873 +vt 0.727356 0.588687 +vt 0.695088 0.579087 +vt 0.723588 0.580023 +vt 0.690554 0.588399 +vt 0.648787 0.584252 +vt 0.690717 0.584368 +vt 0.518329 0.577020 +vt 0.644354 0.577019 +vt 0.645688 0.577706 +vt 0.825516 0.617637 +vt 0.806985 0.617940 +vt 0.806095 0.617494 +vt 0.803990 0.613178 +vt 0.780699 0.613575 +vt 0.777810 0.617541 +vt 0.756950 0.617979 +vt 0.728182 0.611771 +vt 0.753871 0.614124 +vt 0.728190 0.614946 +vt 0.691930 0.612062 +vt 0.724388 0.620358 +vt 0.695957 0.621276 +vt 0.691701 0.616067 +vt 0.074863 0.862419 +vt 0.041487 0.845907 +vt 0.074863 0.845907 +vt 0.208370 0.862419 +vt 0.174994 0.845907 +vt 0.208370 0.845907 +vt 0.174994 0.862419 +vt 0.141617 0.845907 +vt 0.759121 0.703643 +vt 0.763396 0.737251 +vt 0.760353 0.736143 +vt 0.207069 0.842175 +vt 0.786226 0.661385 +vt 0.787099 0.696141 +vt 0.783028 0.660488 +vt 0.786226 0.816865 +vt 0.787099 0.782109 +vt 0.790012 0.783704 +vt 0.738082 0.887901 +vt 0.749823 0.856123 +vt 0.740656 0.889867 +vt 0.760353 0.742107 +vt 0.762071 0.775942 +vt 0.759121 0.774607 +vt 0.130251 0.752410 +vt 0.117722 0.721111 +vt 0.133940 0.720097 +vt 0.129350 0.599029 +vt 0.108048 0.572898 +vt 0.123224 0.567088 +vt 0.130250 0.604925 +vt 0.117722 0.636224 +vt 0.114678 0.609569 +vt 0.134392 0.714149 +vt 0.119529 0.683889 +vt 0.135624 0.681650 +vt 0.129350 0.758306 +vt 0.108048 0.784437 +vt 0.113101 0.758089 +vt 0.323543 0.521306 +vt 0.178785 0.553868 +vt 0.179016 0.520310 +vt 0.323312 0.554864 +vt 0.191344 0.556367 +vt 0.188700 0.636714 +vt 0.196375 0.643810 +vt 0.177885 0.652869 +vt 0.208370 0.837350 +vt 0.240439 0.841159 +vt 0.209679 0.841159 +vt 0.302524 0.704634 +vt 0.178557 0.718309 +vt 0.196859 0.706096 +vt 0.109548 0.841159 +vt 0.141617 0.837350 +vt 0.140309 0.841159 +vt 0.459954 0.627010 +vt 0.454058 0.621089 +vt 0.461711 0.606364 +vt 0.076172 0.841159 +vt 0.108240 0.837350 +vt 0.106932 0.841159 +vt 0.074863 0.837350 +vt 0.042795 0.841159 +vt 0.041487 0.837350 +vt 0.173685 0.841159 +vt 0.174994 0.837350 +vt 0.241747 0.845907 +vt 0.209672 0.842175 +vt 0.240446 0.842175 +vt 0.073562 0.842175 +vt 0.073555 0.841159 +vt 0.106939 0.842175 +vt 0.076165 0.842175 +vt 0.176295 0.842175 +vt 0.207062 0.841159 +vt 0.009418 0.841159 +vt 0.040185 0.842175 +vt 0.009411 0.842175 +vt 0.311616 0.697812 +vt 0.323085 0.717307 +vt 0.446749 0.682132 +vt 0.454484 0.676563 +vt 0.461983 0.693911 +vt 0.454365 0.665148 +vt 0.461754 0.665035 +vt 0.324265 0.685344 +vt 0.313007 0.685763 +vt 0.788819 0.741504 +vt 0.781391 0.779289 +vt 0.782914 0.739125 +vt 0.782310 0.655784 +vt 0.769261 0.619554 +vt 0.775550 0.620541 +vt 0.757821 0.663828 +vt 0.767863 0.699988 +vt 0.761788 0.698570 +vt 0.765070 0.581275 +vt 0.758724 0.580767 +vt 0.757821 0.814422 +vt 0.767863 0.778262 +vt 0.763420 0.817174 +vt 0.747953 0.627546 +vt 0.757255 0.660122 +vt 0.754079 0.659487 +vt 0.790580 0.776227 +vt 0.791845 0.742874 +vt 0.758669 0.780554 +vt 0.754980 0.812868 +vt 0.758669 0.697696 +vt 0.747953 0.850704 +vt 0.757255 0.818128 +vt 0.750668 0.852470 +vt 0.785094 0.653973 +vt 0.778807 0.621194 +vt 0.776832 0.819223 +vt 0.781391 0.698961 +vt 0.763420 0.661076 +vt 0.776832 0.659028 +vt 0.756044 0.622613 +vt 0.769347 0.739125 +vt 0.756044 0.855638 +vt 0.109510 0.598506 +vt 0.083763 0.581008 +vt 0.104985 0.574914 +vt 0.111471 0.611347 +vt 0.113101 0.599246 +vt 0.119529 0.673446 +vt 0.115180 0.648167 +vt 0.118512 0.646637 +vt 0.114678 0.747766 +vt 0.114197 0.722120 +vt 0.104985 0.782421 +vt 0.109510 0.758829 +vt 0.718770 0.731477 +vt 0.697552 0.711798 +vt 0.718010 0.711444 +vt 0.111471 0.745988 +vt 0.092123 0.721600 +vt 0.116090 0.672172 +vt 0.093281 0.650986 +vt 0.116090 0.685162 +vt 0.093281 0.706349 +vt 0.094040 0.686315 +vt 0.114197 0.635214 +vt 0.089849 0.615816 +vt 0.696575 0.779319 +vt 0.689578 0.797508 +vt 0.691489 0.780776 +vt 0.718770 0.746773 +vt 0.697552 0.766452 +vt 0.698343 0.745577 +vt 0.716852 0.696192 +vt 0.694205 0.678176 +vt 0.714578 0.676274 +vt 0.708492 0.641465 +vt 0.692256 0.665421 +vt 0.688321 0.644905 +vt 0.708492 0.836785 +vt 0.692256 0.812829 +vt 0.712268 0.817096 +vt 0.716852 0.782058 +vt 0.694205 0.800074 +vt 0.696575 0.698931 +vt 0.689578 0.680743 +vt 0.687075 0.664353 +vt 0.683902 0.647814 +vt 0.688321 0.833345 +vt 0.687074 0.813897 +vt 0.670581 0.697077 +vt 0.650294 0.688013 +vt 0.669298 0.685843 +vt 0.693382 0.747415 +vt 0.672136 0.760694 +vt 0.672564 0.749395 +vt 0.666196 0.665540 +vt 0.664067 0.654436 +vt 0.683902 0.830436 +vt 0.666196 0.812710 +vt 0.675750 0.862842 +vt 0.659437 0.843826 +vt 0.680165 0.846590 +vt 0.669298 0.792407 +vt 0.670581 0.781173 +vt 0.645281 0.658038 +vt 0.664067 0.823815 +vt 0.647411 0.809107 +vt 0.651576 0.779003 +vt 0.792170 0.858787 +vt 0.837897 0.852498 +vt 0.837897 0.858787 +vt 0.792170 0.846209 +vt 0.792170 0.852498 +vt 0.792170 0.877654 +vt 0.837897 0.883942 +vt 0.792170 0.883942 +vt 0.792170 0.871365 +vt 0.837897 0.865076 +vt 0.837897 0.871365 +vt 0.792170 0.865076 +vt 0.881564 0.850656 +vt 0.877117 0.861392 +vt 0.866381 0.856945 +vt 0.314719 0.975612 +vt 0.326762 0.982391 +vt 0.313189 0.981932 +vt 0.301347 0.662214 +vt 0.196376 0.661927 +vt 0.324264 0.620387 +vt 0.311614 0.607920 +vt 0.323082 0.588424 +vt 0.177947 0.620066 +vt 0.168091 0.588566 +vt 0.178554 0.587429 +vt 0.176302 0.841159 +vt 0.167501 0.684689 +vt 0.167441 0.653416 +vt 0.189059 0.698860 +vt 0.188700 0.669022 +vt 0.177948 0.685671 +vt 0.634488 0.638596 +vt 0.638014 0.628528 +vt 0.640978 0.639439 +vt 0.837897 0.890231 +vt 0.173982 0.975612 +vt 0.184794 0.980700 +vt 0.173813 0.980786 +vt 0.161783 0.982106 +vt 0.186232 0.966456 +vt 0.290702 0.960924 +vt 0.290761 0.964910 +vt 0.340529 0.645113 +vt 0.446339 0.626918 +vt 0.446326 0.644424 +vt 0.679936 0.866077 +vt 0.685412 0.845918 +vt 0.653022 0.759969 +vt 0.176204 0.962749 +vt 0.186163 0.961764 +vt 0.314189 0.952419 +vt 0.300675 0.944255 +vt 0.317014 0.948953 +vt 0.109541 0.842175 +vt 0.140316 0.842175 +vt 0.452576 0.982507 +vt 0.463142 0.975612 +vt 0.465756 0.979239 +vt 0.788819 0.736746 +vt 0.787459 0.700886 +vt 0.659437 0.634425 +vt 0.656472 0.623513 +vt 0.442243 0.979216 +vt 0.442081 0.985101 +vt 0.290702 0.944238 +vt 0.299950 0.947451 +vt 0.300675 0.960908 +vt 0.299950 0.957711 +vt 0.314189 0.952744 +vt 0.299764 0.978453 +vt 0.310165 0.985594 +vt 0.298915 0.982521 +vt 0.289357 0.981499 +vt 0.289333 0.975612 +vt 0.337691 0.977558 +vt 0.098660 0.820501 +vt 0.102057 0.795077 +vt 0.105694 0.794611 +vt 0.446810 0.693938 +vt 0.454466 0.594878 +vt 0.446757 0.589328 +vt 0.461939 0.577590 +vt 0.745776 0.584818 +vt 0.080315 0.566105 +vt 0.095759 0.539076 +vt 0.102057 0.562258 +vt 0.691489 0.697474 +vt 0.638014 0.849722 +vt 0.656472 0.854737 +vt 0.446820 0.577560 +vt 0.738082 0.590349 +vt 0.749823 0.622128 +vt 0.746608 0.621735 +vt 0.121879 0.561277 +vt 0.098660 0.536834 +vt 0.113353 0.529892 +vt 0.243049 0.842175 +vt 0.273816 0.841159 +vt 0.273823 0.842175 +vt 0.740656 0.588383 +vt 0.083763 0.776327 +vt 0.693382 0.730835 +vt 0.692744 0.714006 +vt 0.337571 0.982619 +vt 0.160078 0.901277 +vt 0.122340 0.938934 +vt 0.085257 0.909698 +vt 0.275124 0.845907 +vt 0.705044 0.851687 +vt 0.699788 0.871034 +vt 0.142918 0.842175 +vt 0.326037 0.620144 +vt 0.331671 0.650833 +vt 0.326267 0.651299 +vt 0.330650 0.663037 +vt 0.324656 0.663275 +vt 0.330614 0.608328 +vt 0.324590 0.608016 +vt 0.332277 0.596183 +vt 0.327061 0.578210 +vt 0.340693 0.588559 +vt 0.331583 0.620575 +vt 0.326731 0.693126 +vt 0.332160 0.675176 +vt 0.041487 0.862419 +vt 0.008110 0.845907 +vt 0.777117 0.613889 +vt 0.768366 0.581679 +vt 0.121879 0.796058 +vt 0.134392 0.643185 +vt 0.745776 0.893432 +vt 0.705044 0.626563 +vt 0.679936 0.612173 +vt 0.699788 0.607216 +vt 0.680165 0.631660 +vt 0.675750 0.615409 +vt 0.008110 0.837350 +vt 0.790580 0.702023 +vt 0.634488 0.839654 +vt 0.632839 0.845723 +vt 0.233859 0.885432 +vt 0.175562 0.930199 +vt 0.175562 0.870923 +vt 0.340483 0.682895 +vt 0.340659 0.691513 +vt 0.454069 0.650265 +vt 0.328705 0.520310 +vt 0.341652 0.551659 +vt 0.327962 0.552552 +vt 0.340925 0.579939 +vt 0.327513 0.718940 +vt 0.341269 0.719879 +vt 0.459642 0.520310 +vt 0.446460 0.550286 +vt 0.445095 0.521164 +vt 0.459703 0.750615 +vt 0.446433 0.721309 +vt 0.461634 0.721227 +vt 0.341884 0.749217 +vt 0.445110 0.749566 +vt 0.342347 0.521361 +vt 0.672376 0.760954 +vt 0.666688 0.725988 +vt 0.672622 0.721033 +vt 0.315098 0.557219 +vt 0.191146 0.585104 +vt 0.404923 0.830258 +vt 0.398083 0.826306 +vt 0.404970 0.825822 +vt 0.672968 0.644290 +vt 0.668770 0.634152 +vt 0.673046 0.627943 +vt 0.171673 0.707536 +vt 0.175271 0.737367 +vt 0.171994 0.741994 +vt 0.296421 0.825822 +vt 0.302713 0.829258 +vt 0.296390 0.829743 +vt 0.177592 0.778384 +vt 0.173180 0.808813 +vt 0.172380 0.774160 +vt 0.331325 0.829448 +vt 0.302737 0.826185 +vt 0.331355 0.825966 +vt 0.386366 0.826227 +vt 0.398046 0.829783 +vt 0.386329 0.829722 +vt 0.357915 0.826055 +vt 0.357884 0.829634 +vt 0.175295 0.698725 +vt 0.171551 0.693345 +vt 0.713201 0.721362 +vt 0.713498 0.684307 +vt 0.672864 0.683977 +vt 0.666824 0.715921 +vt 0.177390 0.769698 +vt 0.028764 0.708208 +vt 0.124089 0.742320 +vt 0.113087 0.742395 +vt 0.669066 0.678666 +vt 0.327662 0.716011 +vt 0.296421 0.712823 +vt 0.331088 0.713489 +vt 0.331126 0.724012 +vt 0.299814 0.721363 +vt 0.296421 0.724239 +vt 0.300232 0.715750 +vt 0.296421 0.675999 +vt 0.299809 0.685664 +vt 0.296421 0.688736 +vt 0.327449 0.685745 +vt 0.331241 0.688518 +vt 0.327754 0.678912 +vt 0.331208 0.676084 +vt 0.300160 0.679045 +vt 0.296421 0.700860 +vt 0.300021 0.709721 +vt 0.296421 0.712663 +vt 0.327040 0.709681 +vt 0.331091 0.712270 +vt 0.327366 0.703877 +vt 0.331046 0.701249 +vt 0.300401 0.703801 +vt 0.133601 0.774424 +vt 0.133535 0.742255 +vt 0.113373 0.774562 +vt 0.095303 0.742516 +vt 0.105260 0.774617 +vt 0.095591 0.774683 +vt 0.327298 0.721488 +vt 0.080790 0.742616 +vt 0.018656 0.779631 +vt 0.018657 0.737143 +vt 0.124377 0.774487 +vt 0.088143 0.774734 +vt 0.081010 0.774783 +vt 0.454347 0.606253 +vt 0.714417 0.628363 +vt 0.714251 0.644710 +vt 0.004465 0.737143 +vt 0.004465 0.779631 +vt 0.108240 0.845907 +vt 0.108240 0.862419 +vt 0.178790 0.751868 +vt 0.323550 0.784426 +vt 0.179022 0.785426 +vt 0.191348 0.749370 +vt 0.323317 0.750868 +vt 0.769261 0.858696 +vt 0.782310 0.822466 +vt 0.775550 0.857709 +vt 0.765070 0.896975 +vt 0.774478 0.862345 +vt 0.785094 0.824277 +vt 0.778807 0.857057 +vt 0.763396 0.741000 +vt 0.115180 0.709168 +vt 0.118512 0.710698 +vt 0.672136 0.717557 +vt 0.792170 0.896520 +vt 0.792170 0.890231 +vt 0.837897 0.877654 +vt 0.176169 0.960371 +vt 0.160403 0.956475 +vt 0.165729 0.952744 +vt 0.176169 0.944787 +vt 0.160403 0.948683 +vt 0.176205 0.942410 +vt 0.186233 0.938703 +vt 0.186163 0.943395 +vt 0.672564 0.728855 +vt 0.653022 0.718281 +vt 0.173692 0.842175 +vt 0.142925 0.841159 +vt 0.095759 0.818259 +vt 0.080315 0.791229 +vt 0.340119 0.626273 +vt 0.241747 0.862419 +vt 0.777117 0.864362 +vt 0.768366 0.896571 +vt 0.241747 0.837350 +vt 0.243056 0.841159 +vt 0.328195 0.750550 +vt 0.461603 0.550382 +vt 0.191149 0.720633 +vt 0.315102 0.748513 +vt 0.752577 0.727783 +vt 0.769071 0.678888 +vt 0.768925 0.727831 +vt 0.008110 0.885244 +vt 0.062431 0.862744 +vt 0.084932 0.917065 +vt 0.168124 0.784477 +vt 0.167902 0.752483 +vt 0.321232 0.652866 +vt 0.309396 0.669478 +vt 0.168118 0.521260 +vt 0.167500 0.621048 +vt 0.167962 0.750574 +vt 0.167740 0.718579 +vt 0.167957 0.555163 +vt 0.168094 0.717172 +vt 0.647287 0.750954 +vt 0.647048 0.757238 +vt 0.647287 0.727296 +vt 0.653450 0.729580 +vt 0.645265 0.697427 +vt 0.651576 0.699247 +vt 0.640993 0.667804 +vt 0.647411 0.669143 +vt 0.640993 0.810447 +vt 0.645281 0.820212 +vt 0.639808 0.816623 +vt 0.650294 0.790237 +vt 0.645265 0.780824 +vt 0.752690 0.827705 +vt 0.769039 0.876649 +vt 0.752691 0.876650 +vt 0.752723 0.678839 +vt 0.188734 0.685530 +vt 0.309395 0.636254 +vt 0.301347 0.643518 +vt 0.302522 0.601098 +vt 0.196857 0.599641 +vt 0.189057 0.606877 +vt 0.004465 0.913646 +vt 0.018781 0.871200 +vt 0.018657 0.913687 +vt 0.672835 0.910963 +vt 0.713482 0.871066 +vt 0.714119 0.910665 +vt 0.714237 0.927013 +vt 0.240401 0.825822 +vt 0.199776 0.842354 +vt 0.173390 0.842473 +vt 0.088253 0.876301 +vt 0.080806 0.908398 +vt 0.081120 0.876231 +vt 0.095701 0.876374 +vt 0.029467 0.840968 +vt 0.105370 0.876468 +vt 0.296421 0.724400 +vt 0.327298 0.727151 +vt 0.299814 0.727276 +vt 0.095318 0.908540 +vt 0.105209 0.908637 +vt 0.331091 0.689289 +vt 0.327366 0.697682 +vt 0.327040 0.691878 +vt 0.113483 0.876547 +vt 0.124104 0.908821 +vt 0.113102 0.908714 +vt 0.331210 0.835232 +vt 0.327723 0.844838 +vt 0.327418 0.838005 +vt 0.133710 0.876745 +vt 0.172008 0.909288 +vt 0.133550 0.908914 +vt 0.300021 0.691838 +vt 0.296421 0.700699 +vt 0.331046 0.700311 +vt 0.296421 0.688896 +vt 0.300401 0.697758 +vt 0.299777 0.838086 +vt 0.296390 0.847752 +vt 0.331177 0.847666 +vt 0.296390 0.835015 +vt 0.300129 0.844706 +vt 0.327662 0.732627 +vt 0.296421 0.735815 +vt 0.300232 0.732889 +vt 0.331126 0.724626 +vt 0.331088 0.735149 +vt 0.669034 0.876576 +vt 0.672848 0.871276 +vt 0.171585 0.943745 +vt 0.171421 0.957935 +vt 0.028679 0.942652 +vt 0.177485 0.881600 +vt 0.177108 0.906811 +vt 0.666901 0.839315 +vt 0.672715 0.834220 +vt 0.672586 0.794298 +vt 0.713295 0.834010 +vt 0.175181 0.952567 +vt 0.331337 0.834362 +vt 0.357883 0.830819 +vt 0.357897 0.834398 +vt 0.386328 0.830866 +vt 0.398045 0.830860 +vt 0.386349 0.834361 +vt 0.302720 0.834007 +vt 0.331324 0.830879 +vt 0.177713 0.872915 +vt 0.172488 0.877123 +vt 0.296402 0.834340 +vt 0.302711 0.830933 +vt 0.175271 0.913925 +vt 0.174940 0.940932 +vt 0.668607 0.921090 +vt 0.668584 0.908276 +vt 0.404924 0.830418 +vt 0.398066 0.834337 +vt 0.666796 0.829248 +vt 0.666694 0.797957 +vt 0.240142 0.825662 +vt 0.029359 0.824084 +vt 0.459981 0.644320 +vt 0.938208 0.866046 +vt 0.778259 0.876294 +vt 0.778259 0.866046 +vt 0.938208 0.876294 +vt 0.778259 0.886541 +vt 0.938208 0.804562 +vt 0.778259 0.814809 +vt 0.778259 0.804562 +vt 0.938208 0.814809 +vt 0.778259 0.825057 +vt 0.938208 0.825057 +vt 0.778259 0.835304 +vt 0.938208 0.835304 +vt 0.778259 0.845551 +vt 0.947456 0.835304 +vt 0.938208 0.845551 +vt 0.778259 0.855799 +vt 0.938208 0.855799 +vt 0.769454 0.844635 +vt 0.769454 0.836221 +vt 0.890976 0.635115 +vt 0.876612 0.641065 +vt 0.870662 0.626701 +vt 0.769454 0.824140 +vt 0.769454 0.815726 +vt 0.769454 0.854882 +vt 0.769454 0.846468 +vt 0.769454 0.877211 +vt 0.769454 0.825973 +vt 0.769454 0.865130 +vt 0.769454 0.856716 +vt 0.769454 0.866963 +vt 0.769454 0.805478 +vt 0.947456 0.866046 +vt 0.949930 0.856652 +vt 0.949930 0.865193 +vt 0.947456 0.876294 +vt 0.947456 0.814809 +vt 0.947456 0.845551 +vt 0.947456 0.825057 +vt 0.947456 0.855799 +vt 0.947456 0.886541 +vt 0.938208 0.886541 +vt 0.949930 0.844698 +vt 0.949930 0.815663 +vt 0.949930 0.824203 +vt 0.949930 0.877147 +vt 0.949930 0.885688 +vt 0.949930 0.846405 +vt 0.949930 0.854946 +vt 0.949930 0.834450 +vt 0.949930 0.805415 +vt 0.949930 0.813956 +vt 0.949930 0.875440 +vt 0.953397 0.813214 +vt 0.875653 0.675513 +vt 0.870662 0.670523 +vt 0.887700 0.663466 +vt 0.949930 0.866900 +vt 0.953397 0.874699 +vt 0.953397 0.864451 +vt 0.953397 0.836899 +vt 0.953397 0.843956 +vt 0.953397 0.816404 +vt 0.953397 0.823462 +vt 0.953397 0.877889 +vt 0.953397 0.884946 +vt 0.953397 0.854204 +vt 0.953397 0.826652 +vt 0.953397 0.833709 +vt 0.594130 0.814809 +vt 0.754079 0.825057 +vt 0.594130 0.825057 +vt 0.754079 0.804562 +vt 0.754079 0.814809 +vt 0.594130 0.876294 +vt 0.754079 0.886541 +vt 0.594130 0.886541 +vt 0.594130 0.866046 +vt 0.754079 0.876294 +vt 0.594130 0.855799 +vt 0.754079 0.866046 +vt 0.594130 0.845552 +vt 0.754079 0.855799 +vt 0.763327 0.855799 +vt 0.594130 0.835304 +vt 0.754079 0.845552 +vt 0.754079 0.835304 +vt 0.585325 0.846468 +vt 0.870662 0.606202 +vt 0.885026 0.600252 +vt 0.890976 0.614616 +vt 0.585325 0.866963 +vt 0.585325 0.836221 +vt 0.585325 0.813892 +vt 0.594130 0.804562 +vt 0.585325 0.865130 +vt 0.585325 0.825973 +vt 0.585325 0.824140 +vt 0.585325 0.885625 +vt 0.765801 0.825910 +vt 0.763327 0.835304 +vt 0.763327 0.825057 +vt 0.763327 0.814809 +vt 0.763327 0.876294 +vt 0.763327 0.845551 +vt 0.763327 0.866046 +vt 0.763327 0.804562 +vt 0.765801 0.846405 +vt 0.765801 0.875440 +vt 0.765801 0.813956 +vt 0.765801 0.836158 +vt 0.765801 0.856652 +vt 0.765801 0.885688 +vt 0.763327 0.886541 +vt 0.765801 0.815663 +vt 0.769268 0.877889 +vt 0.765801 0.877147 +vt 0.887700 0.653299 +vt 0.882710 0.658289 +vt 0.875653 0.641251 +vt 0.769268 0.816404 +vt 0.765801 0.824203 +vt 0.769268 0.833709 +vt 0.765801 0.834451 +vt 0.769268 0.854204 +vt 0.765801 0.854946 +vt 0.765801 0.866900 +vt 0.769267 0.874699 +vt 0.765801 0.805415 +vt 0.769268 0.813214 +vt 0.769267 0.836899 +vt 0.765801 0.844698 +vt 0.769268 0.864451 +vt 0.765801 0.865193 +vt 0.683708 0.729337 +vt 0.660202 0.741608 +vt 0.680517 0.745595 +vt 0.711332 0.751643 +vt 0.728929 0.755097 +vt 0.714523 0.735385 +vt 0.666440 0.724518 +vt 0.669643 0.729946 +vt 0.652965 0.726115 +vt 0.695887 0.785671 +vt 0.701756 0.768726 +vt 0.803080 0.643478 +vt 0.790810 0.619972 +vt 0.786822 0.640287 +vt 0.780775 0.671102 +vt 0.777321 0.688699 +vt 0.797033 0.674292 +vt 0.802472 0.629412 +vt 0.806303 0.612735 +vt 0.807899 0.626210 +vt 0.746746 0.655656 +vt 0.763692 0.661526 +vt 0.604415 0.743826 +vt 0.580909 0.756097 +vt 0.601224 0.760084 +vt 0.632039 0.766132 +vt 0.649636 0.769586 +vt 0.635230 0.749874 +vt 0.587148 0.739007 +vt 0.590350 0.744435 +vt 0.573672 0.740604 +vt 0.616594 0.800160 +vt 0.622463 0.783215 +vt 0.706533 0.664337 +vt 0.690884 0.675212 +vt 0.702546 0.684653 +vt 0.712581 0.633523 +vt 0.690275 0.661147 +vt 0.716034 0.615926 +vt 0.696322 0.630332 +vt 0.685456 0.678415 +vt 0.687052 0.691890 +vt 0.746609 0.648968 +vt 0.729663 0.643099 +vt 0.759810 0.745595 +vt 0.748935 0.729946 +vt 0.739495 0.741608 +vt 0.790624 0.751643 +vt 0.763001 0.729337 +vt 0.808222 0.755097 +vt 0.793815 0.735385 +vt 0.732258 0.726115 +vt 0.745733 0.724518 +vt 0.775179 0.785671 +vt 0.781049 0.768726 +vt 0.785825 0.837412 +vt 0.770176 0.848286 +vt 0.781838 0.857727 +vt 0.791873 0.806597 +vt 0.769567 0.834221 +vt 0.779069 0.785809 +vt 0.775615 0.803406 +vt 0.764748 0.851489 +vt 0.766345 0.864964 +vt 0.825901 0.822042 +vt 0.808956 0.816173 +vt 0.683708 0.823119 +vt 0.660202 0.835390 +vt 0.680517 0.839377 +vt 0.714523 0.829166 +vt 0.711332 0.845425 +vt 0.732120 0.832620 +vt 0.669642 0.823728 +vt 0.652965 0.819896 +vt 0.666440 0.818300 +vt 0.695887 0.879453 +vt 0.701756 0.862507 +vt 0.604415 0.650045 +vt 0.580909 0.662315 +vt 0.601224 0.666303 +vt 0.635230 0.656092 +vt 0.632039 0.672350 +vt 0.652827 0.659546 +vt 0.587147 0.645226 +vt 0.590350 0.650653 +vt 0.573672 0.646822 +vt 0.616594 0.706379 +vt 0.622463 0.689433 +vt 0.500000 0.187500 +vt 0.801034 0.693998 +vt 0.822057 0.672975 +vt 0.851789 0.672975 +vt 0.872812 0.723730 +vt 0.851789 0.744753 +vt 0.894049 0.672975 +vt 0.923781 0.672975 +vt 0.944804 0.693998 +vt 0.923781 0.744753 +vt 0.873025 0.723730 +vt 0.500000 0.187500 +vt 0.729042 0.765990 +vt 0.750065 0.744967 +vt 0.779797 0.744967 +vt 0.800820 0.795722 +vt 0.779797 0.816745 +vt 0.822057 0.816958 +vt 0.851789 0.816958 +vt 0.872812 0.837982 +vt 0.851789 0.888737 +vt 0.801034 0.867713 +vt 0.500000 0.187500 +vt 0.657050 0.693998 +vt 0.678074 0.672975 +vt 0.707805 0.672975 +vt 0.728829 0.723730 +vt 0.707805 0.744753 +vt 0.678074 0.888950 +vt 0.707805 0.888950 +vt 0.728829 0.909974 +vt 0.707805 0.960729 +vt 0.657050 0.939705 +vt 0.500000 0.187500 +vt 0.729042 0.693998 +vt 0.750065 0.672975 +vt 0.779797 0.672975 +vt 0.800820 0.723730 +vt 0.779797 0.744753 +vt 0.678074 0.816958 +vt 0.707805 0.816958 +vt 0.728829 0.837982 +vt 0.707805 0.888737 +vt 0.657050 0.867713 +vt 0.500000 0.187500 +vt 0.657050 0.765990 +vt 0.678074 0.744967 +vt 0.707805 0.744967 +vt 0.728829 0.795722 +vt 0.707805 0.816745 +vt 0.822057 0.744967 +vt 0.851789 0.744967 +vt 0.872812 0.765990 +vt 0.851789 0.816745 +vt 0.801034 0.795722 +vt 0.806841 0.765292 +vt 0.710865 0.878741 +vt 0.721442 0.884848 +vt 0.717917 0.890954 +vt 0.806842 0.807599 +vt 0.806842 0.807743 +vt 0.596430 0.901555 +vt 0.608643 0.901555 +vt 0.608643 0.908607 +vt 0.806842 0.850049 +vt 0.812236 0.690671 +vt 0.707339 0.894624 +vt 0.719553 0.894624 +vt 0.719553 0.901676 +vt 0.812236 0.732978 +vt 0.797412 0.757947 +vt 0.797412 0.750895 +vt 0.803518 0.747369 +vt 0.707195 0.836290 +vt 0.797412 0.743699 +vt 0.797412 0.736648 +vt 0.803518 0.733122 +vt 0.692227 0.836290 +vt 0.778722 0.854590 +vt 0.778722 0.847539 +vt 0.784828 0.844013 +vt 0.722164 0.836290 +vt 0.596430 0.849086 +vt 0.613617 0.881319 +vt 0.805115 0.764122 +vt 0.870166 0.638468 +vt 0.609375 0.464844 +vt 0.782135 0.927723 +vt 0.799159 0.908557 +vt 0.782041 0.907319 +vt 0.669086 0.929943 +vt 0.785608 0.701921 +vt 0.808427 0.791102 +vt 0.870476 0.701735 +vt 0.667969 0.500000 +vt 0.821314 0.886728 +vt 0.732575 0.919401 +vt 0.783343 0.887966 +vt 0.873347 0.887966 +vt 0.890464 0.886728 +vt 0.767005 0.886728 +vt 0.785608 0.701735 +vt 0.803093 0.618341 +vt 0.808253 0.680551 +vt 0.791846 0.843869 +vt 0.691023 0.878741 +vt 0.696665 0.884383 +vt 0.696665 0.892362 +vt 0.683044 0.898004 +vt 0.677402 0.892362 +vt 0.778732 0.813478 +vt 0.778722 0.842943 +vt 0.778738 0.793834 +vt 0.778725 0.833121 +vt 0.275353 0.772973 +vt 0.271410 0.782495 +vt 0.265832 0.782495 +vt 0.261888 0.778551 +vt 0.226789 0.769029 +vt 0.261888 0.740142 +vt 0.265832 0.730620 +vt 0.271410 0.730620 +vt 0.598130 0.846904 +vt 0.507381 0.896473 +vt 0.652570 0.902783 +vt 0.715450 0.624156 +vt 0.760292 0.671614 +vt 0.713777 0.658057 +vt 0.740565 0.631120 +vt 0.808269 0.902783 +vt 0.652377 0.798594 +vt 0.764977 0.703371 +vt 0.594100 0.810061 +vt 0.232537 0.575325 +vt 0.094145 0.630642 +vt 0.329373 0.575325 +vt 0.423560 0.888745 +vt 0.405972 0.904028 +vt 0.356644 0.820388 +vt 0.363752 0.870173 +vt 0.375342 0.874430 +vt 0.334359 0.823674 +vt 0.397771 0.903092 +vt 0.670645 0.763117 +vt 0.740808 0.752231 +vt 0.716159 0.782535 +vt 0.693797 0.764744 +vt 0.662981 0.719872 +vt 0.725698 0.732079 +vt 0.797267 0.723741 +vt 0.681156 0.808819 +vt 0.721400 0.813663 +vt 0.699879 0.813663 +vt 0.634295 0.818571 +vt 0.652589 0.836146 +vt 0.800184 0.857266 +vt 0.796100 0.859624 +vt 0.792017 0.857266 +vt 0.695631 0.836146 +vt 0.609548 0.836146 +vt 0.674110 0.836146 +vt 0.717151 0.836146 +vt 0.631069 0.836146 +vt 0.652589 0.690671 +vt 0.704976 0.881099 +vt 0.704976 0.885814 +vt 0.700892 0.888171 +vt 0.695631 0.690671 +vt 0.609547 0.690672 +vt 0.674110 0.690672 +vt 0.717151 0.690671 +vt 0.631069 0.690672 +vt 0.509584 0.689778 +vt 0.557791 0.693952 +vt 0.507381 0.730443 +vt 0.569317 0.730645 +vt 0.511142 0.801081 +vt 0.562583 0.801877 +vt 0.525516 0.843657 +vt 0.508001 0.835164 +vt 0.563960 0.836904 +vt 0.545819 0.844334 +vt 0.725698 0.846202 +vt 0.756544 0.853835 +vt 0.738918 0.772924 +vt 0.595507 0.451954 +vt 0.152870 0.738355 +vt 0.198414 0.725726 +vt 0.234101 0.725726 +vt 0.234101 0.746330 +vt 0.152869 0.763611 +vt 0.152869 0.839383 +vt 0.187087 0.793585 +vt 0.708834 0.763115 +vt 0.194169 0.848187 +vt 0.194168 0.822930 +vt 0.722416 0.747359 +vt 0.731752 0.752749 +vt 0.731752 0.763529 +vt 0.713051 0.814389 +vt 0.713051 0.713361 +vt 0.713051 0.789132 +vt 0.708834 0.838886 +vt 0.713051 0.738618 +vt 0.293733 0.319111 +vt 0.311139 0.327987 +vt 0.353135 0.459421 +vt 0.231084 0.410102 +vt 0.101197 0.289824 +vt 0.215554 0.456392 +vt 0.114861 0.414917 +vt 0.172800 0.334169 +vt 0.669208 0.752748 +vt 0.710714 0.665515 +vt 0.276871 0.341239 +vt 0.306964 0.356975 +vt 0.636756 0.753622 +vt 0.638459 0.661605 +vt 0.771586 0.663320 +vt 0.724173 0.799559 +vt 0.432714 0.804124 +vt 0.431825 0.751766 +vt 0.234184 0.881274 +vt 0.252713 0.862744 +vt 0.278918 0.862744 +vt 0.297448 0.907478 +vt 0.278918 0.926008 +vt 0.395286 0.952106 +vt 0.397311 0.927660 +vt 0.686631 0.726489 +vt 0.683623 0.877696 +vt 0.665355 0.775475 +vt 0.374699 0.926265 +vt 0.665938 0.726460 +vt 0.661972 0.876500 +vt 0.663035 0.851856 +vt 0.663739 0.826191 +vt 0.376577 0.875013 +vt 0.377583 0.776933 +vt 0.358930 0.953121 +vt 0.340336 0.893430 +vt 0.351760 0.871860 +vt 0.353719 0.822524 +vt 0.353866 0.774995 +vt 0.349205 0.922863 +vt 0.336777 0.867502 +vt 0.342988 0.843472 +vt 0.344719 0.795495 +vt 0.336293 0.946137 +vt 0.339225 0.818615 +vt 0.338909 0.771406 +vt 0.333854 0.918244 +vt 0.328196 0.917091 +vt 0.950051 0.775398 +vt 0.961580 0.775398 +vt 0.969733 0.783551 +vt 0.961580 0.803233 +vt 0.950051 0.803233 +vt 0.329498 0.891185 +vt 0.332491 0.841468 +vt 0.334577 0.793824 +vt 0.324590 0.943720 +vt 0.331260 0.866431 +vt 0.333898 0.817689 +vt 0.333427 0.770610 +vt 0.428333 0.876211 +vt 0.427678 0.825096 +vt 0.426153 0.775763 +vt 0.427557 0.929224 +vt 0.674938 0.810489 +vt 0.674280 0.724130 +vt 0.677627 0.681085 +vt 0.677627 0.853626 +vt 0.681026 0.810813 +vt 0.661211 0.799677 +vt 0.680254 0.854172 +vt 0.653581 0.680736 +vt 0.841337 0.870850 +vt 0.661247 0.800573 +vt 0.680254 0.680736 +vt 0.661211 0.847722 +vt 0.661211 0.703589 +vt 0.651742 0.753558 +vt 0.681803 0.767454 +vt 0.661248 0.705534 +vt 0.661211 0.775655 +vt 0.651742 0.849647 +vt 0.670029 0.846430 +vt 0.661248 0.681775 +vt 0.670029 0.751391 +vt 0.661247 0.776813 +vt 0.651742 0.825625 +vt 0.651742 0.729536 +vt 0.593987 0.480180 +vt 0.552826 0.484886 +vt 0.557512 0.480200 +vt 0.564138 0.480200 +vt 0.568824 0.484886 +vt 0.568824 0.491512 +vt 0.548121 0.496197 +vt 0.541495 0.496197 +vt 0.536809 0.491512 +vt 0.536809 0.484886 +vt 0.541495 0.480200 +vt 0.684147 0.624156 +vt 0.635940 0.684460 +vt 0.697909 0.648617 +vt 0.684146 0.744957 +vt 0.635940 0.744957 +vt 0.635117 0.720265 +vt 0.635940 0.684653 +vt 0.697909 0.720496 +vt 0.684146 0.684653 +vt 0.569512 0.720496 +vt 0.742632 0.850835 +vt 0.716580 0.815022 +vt 0.652570 0.848686 +vt 0.668880 0.830898 +vt 0.782413 0.837305 +vt 0.646322 0.623963 +vt 0.518241 0.623753 +vt 0.518193 0.612882 +vt 0.806829 0.582470 +vt 0.825511 0.582762 +vt 0.825394 0.590214 +vt 0.984776 0.886695 +vt 0.527350 0.595580 +vt 0.656765 0.791330 +vt 0.655965 0.750883 +vt 0.693984 0.745150 +vt 0.518329 0.587736 +vt 0.648803 0.588527 +vt 0.825394 0.610216 +vt 0.803979 0.610554 +vt 0.812776 0.871221 +vt 0.879446 0.886695 +vt 0.756437 0.581414 +vt 0.777441 0.581837 +vt 0.695134 0.577691 +vt 0.723634 0.578627 +vt 0.777831 0.618563 +vt 0.756971 0.619001 +vt 0.724433 0.621751 +vt 0.696002 0.622669 +vt 0.141617 0.862419 +vt 0.762071 0.702308 +vt 0.790012 0.694547 +vt 0.783028 0.817762 +vt 0.746608 0.856516 +vt 0.133940 0.637238 +vt 0.123224 0.790247 +vt 0.042788 0.842175 +vt 0.040178 0.841159 +vt 0.787459 0.777364 +vt 0.774478 0.615905 +vt 0.761788 0.779680 +vt 0.750668 0.625780 +vt 0.754979 0.665383 +vt 0.754079 0.818764 +vt 0.087539 0.600697 +vt 0.698343 0.732673 +vt 0.089849 0.741519 +vt 0.094040 0.671020 +vt 0.092123 0.635735 +vt 0.718010 0.766806 +vt 0.712268 0.661154 +vt 0.714578 0.801976 +vt 0.692744 0.764244 +vt 0.837897 0.846209 +vt 0.866381 0.850656 +vt 0.870828 0.846209 +vt 0.877117 0.846209 +vt 0.881564 0.856945 +vt 0.870828 0.861392 +vt 0.326715 0.977214 +vt 0.313006 0.619968 +vt 0.167512 0.619681 +vt 0.632839 0.632527 +vt 0.184793 0.975638 +vt 0.160403 0.975751 +vt 0.653450 0.748670 +vt 0.451822 0.978419 +vt 0.290761 0.940252 +vt 0.317014 0.956210 +vt 0.312864 0.982029 +vt 0.075059 0.546759 +vt 0.640978 0.838811 +vt 0.105694 0.562724 +vt 0.087539 0.756638 +vt 0.094869 0.873199 +vt 0.122340 0.862744 +vt 0.085257 0.891980 +vt 0.148495 0.872490 +vt 0.148495 0.929187 +vt 0.094869 0.928478 +vt 0.008110 0.862419 +vt 0.113353 0.827443 +vt 0.135624 0.675685 +vt 0.685412 0.632333 +vt 0.791845 0.735376 +vt 0.201143 0.862744 +vt 0.227962 0.875106 +vt 0.233859 0.915690 +vt 0.227962 0.926016 +vt 0.201143 0.938378 +vt 0.160403 0.901027 +vt 0.666495 0.757277 +vt 0.314900 0.585956 +vt 0.668710 0.646965 +vt 0.175019 0.710358 +vt 0.178219 0.805544 +vt 0.175390 0.709847 +vt 0.713074 0.761258 +vt 0.667013 0.686876 +vt 0.177087 0.744486 +vt 0.028698 0.694017 +vt 0.088077 0.742566 +vt 0.105193 0.742449 +vt 0.669147 0.647559 +vt 0.029253 0.809894 +vt 0.758724 0.897483 +vt 0.837897 0.896520 +vt 0.165729 0.952414 +vt 0.075059 0.810576 +vt 0.275124 0.862419 +vt 0.275124 0.837350 +vt 0.314904 0.719775 +vt 0.062431 0.939566 +vt 0.030611 0.939566 +vt 0.008110 0.917065 +vt 0.030610 0.862744 +vt 0.084932 0.885244 +vt 0.167898 0.553254 +vt 0.167441 0.652321 +vt 0.167737 0.587159 +vt 0.167514 0.686056 +vt 0.647048 0.721012 +vt 0.644552 0.691178 +vt 0.639808 0.661627 +vt 0.644552 0.787072 +vt 0.769038 0.827705 +vt 0.188732 0.620207 +vt 0.004590 0.871159 +vt 0.672864 0.927311 +vt 0.029615 0.826778 +vt 0.240475 0.842169 +vt 0.088093 0.908469 +vt 0.124486 0.876655 +vt 0.669023 0.907683 +vt 0.028571 0.956843 +vt 0.667005 0.868360 +vt 0.713285 0.794113 +vt 0.175310 0.941445 +vt 0.178419 0.845756 +vt 0.296390 0.830418 +vt 0.404951 0.834854 +vt 0.199566 0.809010 +vt 0.240264 0.809314 +vt 0.885026 0.641065 +vt 0.870662 0.635115 +vt 0.876612 0.620751 +vt 0.885026 0.620751 +vt 0.890976 0.626701 +vt 0.769454 0.885625 +vt 0.769454 0.834387 +vt 0.769454 0.875377 +vt 0.769454 0.813893 +vt 0.947456 0.804562 +vt 0.949930 0.836157 +vt 0.949930 0.825910 +vt 0.953397 0.806157 +vt 0.870662 0.663466 +vt 0.875653 0.658475 +vt 0.882710 0.658475 +vt 0.887700 0.670523 +vt 0.882710 0.675513 +vt 0.953397 0.867641 +vt 0.953397 0.857394 +vt 0.953397 0.847147 +vt 0.585325 0.854882 +vt 0.876612 0.600252 +vt 0.890976 0.606202 +vt 0.885026 0.620565 +vt 0.876612 0.620565 +vt 0.870662 0.614616 +vt 0.585325 0.875377 +vt 0.585325 0.844635 +vt 0.585325 0.805478 +vt 0.585325 0.856716 +vt 0.585325 0.834387 +vt 0.585325 0.815726 +vt 0.585325 0.877211 +vt 0.769268 0.884946 +vt 0.875653 0.658289 +vt 0.870662 0.653299 +vt 0.870662 0.646241 +vt 0.882710 0.641251 +vt 0.887700 0.646241 +vt 0.769268 0.823462 +vt 0.769268 0.826652 +vt 0.769268 0.847147 +vt 0.769268 0.867642 +vt 0.769268 0.806157 +vt 0.769268 0.843956 +vt 0.769268 0.857394 +vt 0.732120 0.738839 +vt 0.694552 0.704387 +vt 0.682426 0.692028 +vt 0.652965 0.754472 +vt 0.793579 0.691890 +vt 0.828030 0.654322 +vt 0.840390 0.642196 +vt 0.777945 0.612735 +vt 0.652827 0.753327 +vt 0.615259 0.718876 +vt 0.603134 0.706516 +vt 0.573672 0.768961 +vt 0.699776 0.612735 +vt 0.665325 0.650303 +vt 0.652965 0.662428 +vt 0.715410 0.691890 +vt 0.811413 0.738839 +vt 0.773845 0.704387 +vt 0.761719 0.692028 +vt 0.732258 0.754472 +vt 0.795327 0.789000 +vt 0.744617 0.823377 +vt 0.732258 0.835503 +vt 0.794703 0.864964 +vt 0.728929 0.848878 +vt 0.694552 0.798169 +vt 0.682426 0.785809 +vt 0.652965 0.848254 +vt 0.649636 0.675804 +vt 0.615259 0.625094 +vt 0.603133 0.612735 +vt 0.573672 0.675180 vn 0.0000 -0.3827 -0.9239 -vn 0.0000 0.3827 0.9239 -vn 0.0000 0.9239 0.3827 -vn 0.9838 -0.1658 0.0687 -vn -0.8418 0.2066 0.4987 -vn -0.9846 -0.0670 0.1617 -vn -0.9846 -0.0670 -0.1617 -vn 0.9838 0.1658 -0.0687 -vn 0.9838 -0.1658 -0.0687 -vn 0.4296 0.3456 0.8343 -vn 0.4296 -0.3456 -0.8343 -vn 0.4296 0.3456 -0.8343 -vn 0.4296 0.8343 0.3456 -vn 0.4296 -0.3456 0.8343 +vn 0.0000 -0.9239 -0.3827 vn 0.0000 -0.9239 0.3827 vn 0.0000 -0.3827 0.9239 -vn -0.0913 0.8947 0.4372 -vn 0.8293 -0.2138 0.5162 +vn 0.0000 0.3827 0.9239 +vn 0.0000 0.9239 0.3827 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.9239 -0.3827 vn 0.0000 0.3827 -0.9239 -vn 0.8293 0.5162 -0.2138 -vn 0.0464 -0.8899 0.4538 -vn 0.8293 0.2138 -0.5162 -vn 0.8293 -0.2138 -0.5162 -vn 0.8293 0.5162 0.2138 -vn -0.8418 -0.2066 0.4987 -vn -0.0166 -0.3826 -0.9238 -vn -0.0165 0.3826 -0.9238 -vn -0.0165 0.3826 0.9238 -vn -0.0165 -0.9238 -0.3826 -vn 0.1008 -0.2962 -0.9498 -vn -0.8680 0.4588 0.1900 -vn -0.8680 -0.1900 -0.4588 -vn 0.8623 0.1938 -0.4678 -vn -0.8680 -0.4588 -0.1900 -vn 0.8623 0.1938 0.4678 -vn 0.9838 0.0687 0.1658 -vn -0.9846 -0.1617 -0.0670 -vn 0.9838 -0.0687 -0.1658 -vn 0.9838 -0.0687 0.1658 -vn 0.9838 0.0687 -0.1658 -vn -0.9846 0.0670 0.1617 -vn 0.0915 0.3811 0.9200 -vn 0.0915 0.3811 -0.9200 -vn 0.0915 -0.3811 -0.9200 -vn -0.8680 0.1900 -0.4588 -vn -0.8680 0.1900 0.4588 -vn 0.8623 0.4678 -0.1938 -vn 0.8623 -0.1938 0.4678 -vn 0.8623 -0.1938 -0.4678 -vn 0.2182 0.3735 0.9016 -vn 1.0000 -0.0000 0.0000 -vn -0.0497 0.9227 -0.3822 -vn 0.2182 -0.3735 -0.9016 -vn 0.2182 -0.9016 0.3735 -vn 0.2182 -0.9016 -0.3735 -vn 0.2182 -0.3735 0.9016 -vn -0.0497 0.9227 0.3822 -vn -0.0497 0.3822 -0.9227 -vn -0.0497 -0.3822 -0.9227 -vn -0.0497 -0.3822 0.9227 -vn -0.0497 0.3822 0.9227 -vn 0.3223 -0.8746 -0.3623 -vn 0.3223 0.3623 0.8746 -vn 0.3223 0.3623 -0.8746 -vn 0.3223 0.8746 -0.3623 -vn 0.3223 -0.3623 -0.8746 -vn 0.0000 0.9649 -0.2626 -vn -0.1533 0.3782 0.9130 -vn 0.8293 0.2138 0.5162 -vn -0.1218 0.9170 -0.3798 -vn -0.0000 0.9239 -0.3827 -vn 0.7023 0.6629 -0.2594 -vn 0.0000 0.0000 1.0000 -vn 0.0068 -1.0000 0.0000 -vn 0.6287 0.0000 0.7776 -vn -1.0000 0.0000 0.0000 -vn -0.0165 0.9238 -0.3826 -vn -0.8680 0.4588 -0.1900 -vn 0.0000 -0.9239 -0.3827 -vn -0.6414 0.7600 0.1048 -vn -0.6231 -0.1179 -0.7732 -vn -0.6231 -0.1179 0.7732 -vn -0.6414 0.7600 -0.1048 -vn -0.0103 0.9832 -0.1821 -vn -0.0103 0.9832 0.1821 -vn -0.0453 -0.3552 -0.9337 -vn 0.0951 -0.3032 -0.9482 -vn 0.1008 -0.2962 0.9498 -vn 0.0915 -0.9200 -0.3811 -vn 0.2182 0.9016 0.3735 -vn 0.3223 -0.3623 0.8746 -vn 0.0951 -0.3032 0.9482 -vn 0.0000 -1.0000 0.0000 -vn 0.9838 0.1658 0.0687 -vn 0.4296 -0.8343 -0.3456 -vn -0.0166 -0.3826 0.9238 -vn -0.0165 -0.9238 0.3826 -vn 0.8623 -0.4678 -0.1938 -vn 0.2182 0.3735 -0.9016 -vn 0.7023 0.6629 0.2594 -vn -0.9999 -0.0105 0.0000 -vn 0.0915 0.9200 -0.3811 -vn -0.0453 -0.3552 0.9337 -vn -0.8418 -0.4987 0.2066 -vn -0.0497 -0.9227 0.3822 -vn -0.8418 0.4987 0.2066 -vn 0.3746 -0.9272 0.0000 -vn 0.1495 -0.8307 -0.5362 -vn 0.0000 -0.4721 0.8815 -vn 0.0120 -0.3847 0.9230 -vn 0.1495 -0.8307 0.5362 -vn 0.1144 -0.4166 0.9019 -vn 0.1144 -0.4166 -0.9019 -vn -0.9846 0.1617 0.0670 -vn 0.4296 -0.8343 0.3456 -vn 0.0915 0.9200 0.3811 -vn 0.4296 0.8343 -0.3456 -vn 0.8623 -0.4678 0.1938 -vn -0.0497 -0.9227 -0.3822 -vn 0.3223 0.8746 0.3623 -vn 0.8293 -0.5162 -0.2138 -vn -0.9846 -0.1617 0.0670 -vn 0.9999 -0.0151 0.0000 -vn -0.0476 -0.3025 -0.9520 -vn 0.0120 -0.3847 -0.9230 -vn 0.0000 -0.9012 -0.4335 -vn 0.0000 -0.8684 0.4959 -vn -0.0053 -0.3038 0.9527 -vn -0.0053 -0.3038 -0.9527 -vn -0.0755 0.9042 0.4204 -vn -0.0854 0.3020 0.9495 -vn -0.0854 0.3020 -0.9495 -vn 0.0723 0.9168 0.3926 -vn 0.0702 0.9117 -0.4047 -vn 0.1218 0.3643 -0.9233 -vn -0.0095 0.3428 -0.9394 -vn -0.0127 0.9088 -0.4171 -vn -0.0124 0.9153 0.4026 -vn -0.0095 0.3428 0.9394 -vn -0.9952 -0.0952 0.0245 -vn 0.0000 0.5505 -0.8349 -vn -0.9938 0.1009 -0.0476 -vn 0.9884 0.1326 -0.0741 -vn 0.0000 -0.7129 -0.7012 -vn 0.9976 -0.0694 0.0010 -vn 0.0026 -0.9715 0.2370 -vn -0.0023 0.8582 -0.5133 -vn 0.0013 -0.3780 -0.9258 -vn 0.9905 0.1284 -0.0490 -vn 0.0024 -0.9722 0.2343 -vn 0.0014 -0.3780 -0.9258 -vn -0.9957 -0.0410 -0.0837 -vn 0.9959 -0.0250 -0.0874 -vn -0.0018 0.8543 -0.5198 -vn -0.9919 0.1050 -0.0715 -vn 0.9172 -0.1505 -0.3689 -vn 0.0050 -0.9531 -0.3028 -vn -0.0034 0.5235 -0.8520 -vn 0.0017 -0.3780 -0.9258 -vn -0.0031 0.4723 -0.8814 -vn -0.8491 -0.1997 -0.4891 -vn 0.8493 -0.1946 -0.4907 -vn 0.0018 -0.3780 -0.9258 -vn -0.0029 0.4287 -0.9035 -vn -0.8914 -0.1765 -0.4174 -vn 0.8917 -0.1710 -0.4191 -vn 0.0050 -0.9355 -0.3532 -vn 0.0048 -0.9190 -0.3942 -vn -0.9170 -0.1562 -0.3671 -vn -0.5510 -0.3187 -0.7712 -vn 0.0019 -0.9695 0.2450 -vn 0.0000 -0.9012 0.4335 -vn -0.0022 0.8595 -0.5111 -vn -0.8418 0.2066 -0.4987 -vn -0.8418 -0.2066 -0.4987 -vn -0.8680 -0.1900 0.4588 -vn -0.8680 -0.4588 0.1900 -vn -0.9846 0.0670 -0.1617 -vn 0.0915 -0.3811 0.9200 -vn 0.8623 0.4678 0.1938 -vn 0.3223 -0.8746 0.3623 -vn -0.0000 0.0000 -1.0000 -vn 0.6287 0.0000 -0.7776 -vn -0.0165 0.9238 0.3826 -vn 0.0915 -0.9200 0.3811 -vn 0.2182 0.9016 -0.3735 -vn 0.1948 -0.9808 0.0000 -vn -0.8418 -0.4987 -0.2066 -vn -0.8418 0.4987 -0.2066 -vn -0.9846 0.1617 -0.0670 -vn 0.8293 -0.5162 0.2138 -vn -0.0712 0.8983 -0.4336 -vn 0.1218 0.3643 0.9233 -vn -0.2273 -0.8997 -0.3727 -vn -0.0913 0.8947 -0.4372 -vn 0.0864 0.8928 -0.4421 -vn -0.2272 -0.8997 0.3727 -vn -0.1218 0.9170 0.3798 -vn -0.1970 -0.3752 -0.9058 -vn -0.1970 -0.3752 0.9058 -vn -0.1533 0.3782 -0.9130 -vn 1.0000 -0.0006 -0.0069 -vn 0.0864 0.8928 0.4421 -vn 0.0000 0.9649 0.2626 -vn -0.0022 0.8595 0.5111 -vn 0.0014 -0.3780 0.9258 -vn 0.0019 -0.9695 -0.2450 -vn -0.5510 -0.3187 0.7712 -vn -0.9170 -0.1562 0.3671 -vn 0.0048 -0.9190 0.3942 -vn 0.0050 -0.9355 0.3532 -vn 0.0017 -0.3780 0.9258 -vn 0.8917 -0.1710 0.4191 -vn -0.8914 -0.1765 0.4174 -vn -0.0029 0.4287 0.9035 -vn 0.0018 -0.3780 0.9258 -vn 0.8493 -0.1946 0.4907 -vn -0.8491 -0.1997 0.4891 -vn -0.0031 0.4723 0.8814 -vn -0.0034 0.5235 0.8520 -vn 0.0050 -0.9531 0.3028 -vn 0.9172 -0.1505 0.3689 -vn -0.9919 0.1050 0.0715 -vn -0.0018 0.8543 0.5198 -vn 0.9959 -0.0250 0.0874 -vn -0.9957 -0.0410 0.0837 -vn 0.0024 -0.9722 -0.2343 -vn 0.9905 0.1284 0.0490 -vn 0.0013 -0.3780 0.9258 -vn -0.0023 0.8582 0.5133 -vn 0.0026 -0.9715 -0.2370 -vn 0.9976 -0.0694 -0.0010 -vn 0.0000 -0.7129 0.7012 -vn 0.9884 0.1326 0.0741 -vn -0.9938 0.1009 0.0477 -vn 0.0000 0.5505 0.8349 -vn -0.9952 -0.0952 -0.0245 -vn 1.0000 -0.0006 0.0069 -vn 0.0464 -0.8899 -0.4538 -vn 0.0000 -0.8684 -0.4959 -vn -0.0476 -0.3025 0.9520 -vn 0.0000 -0.4721 -0.8815 -s off -f 1/1/1 2/2/1 3/3/1 4/4/1 -f 5/5/2 6/6/2 7/7/2 8/8/2 -f 8/8/3 7/7/3 9/9/3 10/10/3 -f 11/11/4 12/12/4 13/13/4 14/14/4 -f 5/5/5 8/8/5 15/15/5 16/16/5 -f 2/17/6 17/18/6 18/19/6 19/20/6 -f 7/21/7 6/22/7 20/23/7 21/24/7 -f 22/25/8 23/26/8 24/27/8 25/28/8 -f 26/29/9 11/30/9 14/31/9 27/32/9 -f 26/33/10 28/34/10 29/35/10 30/36/10 -f 31/37/11 32/38/11 33/39/11 34/40/11 -f 32/41/12 12/42/12 35/43/12 33/44/12 -f 11/30/13 26/29/13 30/45/13 36/46/13 -f 28/47/14 23/48/14 37/49/14 29/50/14 -f 38/51/15 39/52/15 40/53/15 41/54/15 -f 41/54/16 40/53/16 42/55/16 43/56/16 -f 44/57/17 45/58/17 46/59/17 -f 47/60/18 40/61/18 48/62/18 49/63/18 -f 50/64/19 51/65/19 52/66/19 53/67/19 -f 54/68/20 55/69/20 56/70/20 57/71/20 -f 58/72/21 59/73/21 60/74/21 -f 55/75/22 61/76/22 51/77/22 56/70/22 -f 62/78/23 51/77/23 61/79/23 63/80/23 -f 64/81/24 54/82/24 57/71/24 65/83/24 -f 66/84/25 5/5/25 16/85/25 67/86/25 -f 68/87/26 69/88/26 63/80/26 61/79/26 -f 68/89/27 61/76/27 55/75/27 70/90/27 -f 15/15/28 64/91/28 49/92/28 16/16/28 -f 71/93/29 72/94/29 63/95/29 69/96/29 -f 73/97/19 51/65/19 50/64/19 -f 74/98/30 75/99/30 76/100/30 -f 75/99/1 77/101/1 78/102/1 -f 56/103/19 51/65/19 73/97/19 79/104/19 -f 80/105/31 21/106/31 81/107/31 82/108/31 -f 83/109/32 19/110/32 84/111/32 85/112/32 -f 13/113/33 86/114/33 87/115/33 88/116/33 -f 89/117/34 83/118/34 85/112/34 90/119/34 -f 91/120/35 27/121/35 92/122/35 93/123/35 -f 32/38/36 31/37/36 94/124/36 86/125/36 -f 9/126/37 7/127/37 21/106/37 80/105/37 -f 28/34/38 26/33/38 27/121/38 91/120/38 -f 12/42/39 32/41/39 86/114/39 13/113/39 -f 23/48/40 28/47/40 91/128/40 24/129/40 -f 3/130/41 2/131/41 19/110/41 83/109/41 -f 81/107/42 95/132/42 93/123/42 92/122/42 -f 84/111/43 96/133/43 88/116/43 87/115/43 -f 85/112/44 84/111/44 87/115/44 97/134/44 -f 19/20/45 18/19/45 96/133/45 84/111/45 -f 21/24/46 20/23/46 95/132/46 81/107/46 -f 14/14/47 13/13/47 88/116/47 98/135/47 -f 24/129/48 91/128/48 93/123/48 99/136/48 -f 86/125/49 94/124/49 97/134/49 87/115/49 -f 100/137/50 101/138/50 102/139/50 103/140/50 -f 33/44/51 35/43/51 104/141/51 101/142/51 -f 34/40/51 33/39/51 101/138/51 100/137/51 -f 35/143/51 36/144/51 105/145/51 104/146/51 -f 30/36/51 29/35/51 106/147/51 107/148/51 -f 29/50/51 37/49/51 108/149/51 106/150/51 -f 109/151/52 110/152/52 111/153/52 112/154/52 -f 107/148/53 106/147/53 113/155/53 114/156/53 -f 104/146/54 105/145/54 110/152/54 109/151/54 -f 105/157/55 107/158/55 114/159/55 110/160/55 -f 101/142/56 104/141/56 109/161/56 102/162/56 -f 115/163/51 116/164/51 117/165/51 118/166/51 -f 110/160/57 114/159/57 115/167/57 111/168/57 -f 102/162/58 109/161/58 112/169/58 119/170/58 -f 103/140/59 102/139/59 119/171/59 120/172/59 -f 113/173/60 121/174/60 122/175/60 116/176/60 -f 114/156/61 113/155/61 116/164/61 115/163/61 -f 119/170/51 112/169/51 123/177/51 124/178/51 -f 120/172/51 119/171/51 124/179/51 125/180/51 -f 116/176/51 122/175/51 126/181/51 117/182/51 -f 127/183/19 128/184/19 129/185/19 130/186/19 -f 131/187/62 118/188/62 132/189/62 133/190/62 -f 125/180/63 124/179/63 127/191/63 134/192/63 -f 117/182/64 126/181/64 135/193/64 136/194/64 -f 126/195/65 137/196/65 138/197/65 135/198/65 -f 118/166/66 117/165/66 136/199/66 132/200/66 -f 134/192/1 127/191/1 130/201/1 139/202/1 -f 136/194/16 135/193/16 140/203/16 141/204/16 -f 132/200/2 136/199/2 141/205/2 142/206/2 -f 143/207/2 144/208/2 145/209/2 146/210/2 -f 145/209/3 147/211/3 148/212/3 146/210/3 -f 149/213/1 150/214/1 151/215/1 152/216/1 -f 153/217/15 154/218/15 155/219/15 156/220/15 -f 156/220/16 155/219/16 144/208/16 143/207/16 -f 147/221/51 145/222/51 144/223/51 155/224/51 154/225/51 150/226/51 149/227/51 157/228/51 -f 158/229/51 159/230/51 160/231/51 161/232/51 -f 162/233/67 46/59/67 57/234/67 163/235/67 -f 47/236/2 65/237/2 164/238/2 165/239/2 -f 166/240/68 167/241/68 168/242/68 169/243/68 -f 64/91/69 65/83/69 47/60/69 49/92/69 -f 46/59/70 170/244/70 171/245/70 172/246/70 -f 53/67/19 52/66/19 160/247/19 -f 173/248/71 161/249/71 170/244/71 46/59/71 -f 146/250/51 148/251/51 174/252/51 139/253/51 -f 152/216/19 175/254/19 157/255/19 149/213/19 -f 176/256/72 177/257/72 178/258/72 179/259/72 -f 180/260/51 181/261/51 176/256/51 179/259/51 -f 45/262/73 182/263/73 183/264/73 184/265/73 -f 183/266/74 182/267/74 185/268/74 186/269/74 -f 187/270/51 137/196/51 126/195/51 122/271/51 -f 132/189/3 142/272/3 188/273/3 133/190/3 -f 45/262/75 44/274/75 189/275/75 182/263/75 -f 79/276/76 190/277/76 59/278/76 191/279/76 -f 70/280/77 55/69/77 54/68/77 192/281/77 -f 79/282/76 73/283/76 193/284/76 190/285/76 -f 18/286/78 80/287/78 82/108/78 96/133/78 -f 138/288/79 134/289/79 139/253/79 174/252/79 -f 50/290/80 194/291/80 193/284/80 73/283/80 -f 186/292/81 163/293/81 191/279/81 59/278/81 -f 195/294/82 196/295/82 184/265/82 183/264/82 -f 195/294/76 77/296/76 164/297/76 196/295/76 -f 75/298/76 165/299/76 164/300/76 77/301/76 -f 197/302/83 165/299/83 75/298/83 74/303/83 -f 178/258/84 177/257/84 197/302/84 74/303/84 -f 50/290/85 53/304/85 198/305/85 194/291/85 -f 199/306/51 200/307/51 108/308/51 37/309/51 -f 78/102/86 76/100/86 75/99/86 -f 201/310/87 74/98/87 76/100/87 -f 193/311/88 194/312/88 202/313/88 -f 85/112/89 97/134/89 203/314/89 90/119/89 -f 100/315/90 103/316/90 204/317/90 200/318/90 -f 123/177/91 128/184/91 127/183/91 124/178/91 -f 138/197/15 174/319/15 140/320/15 135/198/15 -f 205/321/92 202/313/92 194/312/92 -f 186/269/93 58/72/93 206/322/93 183/266/93 -f 22/323/94 25/324/94 94/325/94 31/326/94 -f 31/326/95 34/327/95 199/328/95 22/323/95 -f 16/85/96 49/63/96 48/62/96 67/86/96 -f 71/329/97 67/330/97 48/331/97 72/332/97 -f 25/324/98 203/314/98 97/134/98 94/325/98 -f 108/149/99 121/174/99 113/173/99 106/150/99 -f 112/154/51 111/153/51 131/333/51 123/334/51 -f 160/231/100 159/230/100 198/305/100 53/304/100 -f 202/335/101 207/336/101 208/337/101 209/338/101 76/339/101 78/340/101 206/341/101 58/342/101 60/343/101 -f 199/328/51 34/327/51 100/315/51 200/318/51 -f 96/133/102 82/108/102 98/135/102 88/116/102 -f 202/313/103 60/74/103 193/311/103 -f 66/84/104 67/330/104 71/329/104 210/344/104 -f 204/345/105 187/270/105 122/271/105 121/346/105 -f 115/167/51 118/188/51 131/187/51 111/168/51 -f 10/10/106 192/347/106 15/348/106 8/8/106 -f 211/349/107 212/350/107 213/351/107 189/352/107 -f 211/349/108 189/352/108 180/353/108 214/354/108 -f 158/355/109 215/356/109 159/357/109 -f 216/358/110 198/359/110 159/357/110 -f 213/351/111 212/350/111 215/356/111 158/355/111 -f 215/356/112 216/358/112 159/357/112 -f 217/360/113 214/354/113 179/361/113 -f 4/4/79 3/3/79 218/362/79 210/363/79 -f 218/364/114 3/365/114 83/118/114 89/117/114 -f 23/26/115 22/25/115 199/306/115 37/309/115 -f 81/107/116 92/122/116 98/135/116 82/108/116 -f 12/12/117 11/11/117 36/144/117 35/143/117 -f 25/28/118 24/27/118 99/136/118 203/366/118 -f 204/317/119 103/316/119 120/367/119 187/368/119 -f 187/368/51 120/367/51 125/369/51 137/370/51 -f 137/370/120 125/369/120 134/289/120 138/288/120 -f 62/78/121 63/95/121 72/94/121 39/371/121 -f 17/372/122 9/373/122 80/287/122 18/286/122 -f 175/374/51 140/320/51 174/319/51 148/375/51 -f 215/376/123 212/377/123 211/378/123 214/379/123 217/380/123 219/381/123 220/382/123 221/383/123 216/384/123 -f 178/385/124 222/386/124 217/360/124 -f 179/361/125 178/385/125 217/360/125 -f 78/102/126 77/101/126 195/387/126 -f 58/72/127 186/269/127 59/73/127 -f 194/312/128 198/359/128 223/388/128 205/321/128 -f 74/98/129 201/310/129 222/386/129 178/385/129 -f 220/389/130 224/390/130 225/391/130 221/392/130 -f 221/392/131 225/391/131 223/388/131 216/358/131 -f 219/393/132 217/360/132 222/386/132 226/394/132 -f 208/395/133 207/396/133 227/397/133 228/398/133 -f 208/399/134 228/400/134 229/401/134 209/402/134 -f 209/402/135 229/401/135 201/310/135 76/100/135 -f 201/310/136 229/401/136 226/394/136 222/386/136 -f 224/403/137 226/394/137 229/401/137 228/400/137 -f 224/390/138 228/398/138 227/397/138 225/391/138 -f 205/321/139 223/388/139 225/391/139 227/397/139 -f 230/404/140 231/405/140 232/406/140 233/407/140 -f 40/53/16 47/236/16 234/408/16 42/55/16 -f 169/243/16 41/54/16 43/56/16 235/409/16 -f 236/410/141 237/411/141 238/412/141 239/413/141 -f 240/414/142 241/415/142 237/416/142 236/417/142 -f 242/418/143 243/419/143 244/420/143 245/421/143 -f 246/422/144 247/423/144 231/424/144 230/425/144 -f 248/426/145 249/427/145 247/428/145 246/429/145 -f 249/430/146 232/431/146 231/424/146 247/423/146 -f 241/432/71 243/433/71 238/412/71 237/411/71 -f 250/434/147 244/435/147 243/433/147 241/432/147 -f 244/435/148 250/434/148 232/431/148 249/430/148 -f 239/436/149 238/437/149 243/438/149 242/418/149 -f 233/407/150 251/439/150 252/440/150 230/404/150 -f 253/441/151 254/442/151 251/439/151 233/407/151 -f 233/407/152 232/443/152 250/444/152 253/441/152 -f 245/421/153 244/445/153 249/446/153 248/426/153 -f 242/418/71 255/447/71 256/448/71 239/436/71 -f 245/421/154 257/449/154 258/450/154 259/451/154 260/452/154 261/453/154 262/454/154 263/455/154 255/447/154 242/418/154 -f 253/441/155 250/456/155 241/457/155 240/414/155 -f 262/458/156 264/459/156 265/460/156 266/461/156 -f 261/462/157 267/463/157 264/459/157 262/458/157 -f 266/461/158 265/460/158 268/464/158 269/465/158 -f 264/459/159 267/463/159 268/464/159 265/460/159 -f 270/466/160 271/467/160 272/468/160 273/469/160 -f 273/469/161 272/468/161 274/470/161 257/471/161 -f 258/472/162 275/473/162 271/467/162 270/466/162 -f 275/473/163 274/470/163 272/468/163 271/467/163 -f 276/474/164 277/475/164 278/476/164 279/477/164 -f 279/477/165 278/476/165 280/478/165 259/479/165 -f 260/480/166 281/481/166 277/475/166 276/474/166 -f 281/481/159 280/478/159 278/476/159 277/475/159 -f 257/449/151 245/421/151 248/426/151 273/482/151 -f 257/471/167 274/470/167 275/473/167 258/472/167 -f 259/451/151 258/450/151 270/483/151 279/484/151 -f 259/479/168 280/478/168 281/481/168 260/480/168 -f 261/453/151 260/452/151 276/485/151 269/486/151 -f 269/465/169 268/464/169 267/463/169 261/462/169 -f 255/487/170 263/455/170 282/488/170 283/489/170 -f 283/490/171 282/488/171 266/491/171 269/486/171 276/485/171 279/484/171 270/483/171 273/482/171 248/426/171 246/429/171 -f 282/488/151 263/455/151 262/454/151 266/491/151 -f 59/73/172 190/492/172 60/74/172 -f 284/493/71 285/494/71 240/414/71 236/417/71 -f 285/494/173 254/442/173 253/441/173 240/414/173 -f 256/495/76 255/487/76 283/489/76 286/496/76 -f 5/5/16 66/84/16 287/497/16 6/6/16 -f 1/1/19 288/498/19 17/499/19 2/2/19 -f 288/498/71 10/10/71 9/9/71 17/499/71 -f 1/1/174 68/89/174 70/90/174 288/498/174 -f 38/500/79 289/501/79 62/502/79 39/503/79 -f 289/501/1 290/504/1 291/505/1 62/502/1 -f 4/4/175 69/88/175 68/87/175 1/1/175 -f 292/506/176 293/507/176 95/132/176 20/508/176 -f 89/509/177 90/510/177 293/507/177 292/511/177 -f 287/512/178 292/506/178 20/508/178 6/513/178 -f 293/507/179 99/136/179 93/123/179 95/132/179 -f 14/31/180 98/135/180 92/122/180 27/32/180 -f 30/45/51 107/158/51 105/157/51 36/46/51 -f 131/333/181 133/514/181 128/515/181 123/334/181 -f 157/255/71 175/254/71 148/516/71 147/517/71 -f 153/217/79 151/215/79 150/214/79 154/218/79 -f 189/275/51 44/274/51 181/518/51 180/519/51 -f 213/520/51 158/521/51 161/522/51 173/523/51 -f 162/524/182 163/293/182 186/292/182 185/525/182 -f 128/515/71 133/514/71 188/526/71 129/527/71 -f 162/524/183 185/525/183 213/520/183 173/523/183 -f 15/348/184 192/347/184 54/82/184 64/81/184 -f 293/507/185 90/510/185 203/366/185 99/136/185 -f 108/308/186 200/307/186 204/345/186 121/346/186 -f 185/268/187 182/267/187 189/352/187 213/351/187 -f 4/4/188 210/363/188 71/93/188 69/96/188 -f 10/10/189 288/498/189 70/280/189 192/281/189 -f 66/84/15 210/344/15 218/528/15 287/497/15 -f 218/529/190 89/509/190 292/511/190 287/530/190 -f 40/61/191 39/531/191 72/332/191 48/331/191 -f 220/532/192 219/393/192 226/394/192 224/403/192 -f 207/396/193 202/313/193 205/321/193 227/397/193 -f 51/65/1 294/533/1 295/534/1 52/66/1 -f 62/502/1 291/505/1 294/533/1 51/65/1 -f 52/66/1 295/534/1 290/504/1 289/501/1 -f 252/535/51 285/536/51 284/537/51 296/538/51 -f 171/539/76 297/540/76 298/541/76 299/542/76 300/543/76 168/544/76 167/545/76 172/546/76 -f 289/501/194 38/500/194 299/547/194 298/548/194 -f 46/59/195 162/233/195 173/248/195 -f 163/235/196 57/234/196 191/549/196 -f 38/51/197 41/54/197 300/550/197 299/551/197 -f 166/240/198 46/59/198 172/552/198 167/553/198 -f 52/66/199 289/501/199 298/554/199 297/555/199 -f 41/54/200 169/243/200 168/556/200 300/557/200 -f 52/66/201 297/558/201 171/559/201 170/244/201 -f 191/549/71 57/234/71 56/103/71 79/104/71 -f 153/560/51 188/273/51 142/272/51 151/561/51 -f 188/526/51 153/562/51 156/563/51 129/527/51 -f 129/185/51 156/564/51 143/565/51 130/186/51 -f 130/201/51 143/566/51 146/567/51 139/202/51 -f 152/568/51 141/204/51 140/203/51 175/569/51 -f 141/205/51 152/570/51 151/571/51 142/206/51 -f 301/572/51 302/573/51 303/574/51 304/575/51 -f 285/536/202 252/535/202 251/439/202 254/442/202 -f 160/247/19 52/66/19 170/244/19 161/249/19 -f 57/234/3 196/576/3 164/238/3 65/237/3 -f 196/576/203 57/234/203 184/577/203 -f 165/239/2 197/578/2 47/236/2 -f 197/578/2 177/579/2 169/243/2 47/236/2 -f 169/243/2 177/579/2 176/580/2 -f 176/580/2 181/581/2 166/240/2 169/243/2 -f 46/59/204 45/58/204 184/577/204 57/234/204 -f 46/59/3 166/240/3 181/581/3 44/57/3 -f 235/409/16 234/408/16 47/236/16 169/243/16 -f 305/582/76 306/583/76 307/584/76 308/585/76 -f 304/586/205 309/587/205 310/588/205 311/589/205 -f 303/590/3 312/591/3 309/587/3 304/586/3 -f 306/592/79 302/593/79 301/594/79 313/595/79 314/596/79 307/597/79 -f 315/598/206 316/599/206 317/600/206 318/601/206 -f 307/597/207 314/596/207 319/602/207 320/603/207 321/604/207 322/605/207 323/606/207 324/607/207 316/599/207 315/598/207 -f 308/585/208 307/584/208 315/598/208 318/601/208 -f 324/608/209 325/609/209 326/610/209 327/611/209 -f 325/612/206 324/607/206 323/606/206 328/613/206 -f 329/614/210 328/615/210 330/616/210 331/617/210 -f 329/618/206 322/605/206 321/604/206 332/619/206 -f 333/620/211 332/621/211 334/622/211 335/623/211 -f 333/624/206 320/603/206 319/602/206 336/625/206 -f 330/616/212 337/626/212 338/627/212 331/617/212 -f 328/615/213 323/628/213 337/626/213 330/616/213 -f 322/629/214 329/614/214 331/617/214 338/627/214 -f 323/628/215 322/629/215 338/627/215 337/626/215 -f 334/622/216 339/630/216 340/631/216 335/623/216 -f 332/621/217 321/632/217 339/630/217 334/622/217 -f 320/633/218 333/620/218 335/623/218 340/631/218 -f 321/632/219 320/633/219 340/631/219 339/630/219 -f 341/634/212 342/635/212 327/611/212 326/610/212 -f 316/636/220 324/608/220 327/611/220 342/635/220 -f 325/609/221 317/637/221 341/634/221 326/610/221 -f 317/637/222 316/636/222 342/635/222 341/634/222 -f 310/588/223 309/587/223 343/638/223 344/639/223 -f 336/625/224 345/640/224 308/641/224 318/601/224 317/600/224 325/612/224 328/613/224 329/618/224 332/619/224 333/624/224 -f 345/640/3 346/642/3 305/643/3 308/641/3 -f 336/625/225 319/602/225 347/644/225 348/645/225 -f 349/646/226 310/588/226 344/647/226 350/648/226 -f 310/588/206 349/646/206 351/649/206 311/589/206 -f 349/646/227 313/595/227 301/594/227 351/649/227 -f 346/642/228 345/640/228 352/650/228 353/651/228 -f 348/652/229 347/653/229 350/654/229 344/655/229 -f 344/655/230 343/656/230 352/657/230 348/652/230 -f 343/656/3 354/658/3 353/659/3 352/657/3 -f 347/653/231 355/660/231 356/661/231 350/654/231 -f 319/602/232 314/596/232 355/662/232 347/663/232 -f 314/664/233 313/665/233 356/661/233 355/660/233 -f 345/640/234 336/625/234 348/666/234 352/667/234 -f 309/587/235 312/591/235 354/668/235 343/669/235 -f 312/670/236 346/671/236 353/659/236 354/658/236 -f 313/595/237 349/646/237 350/672/237 356/673/237 -f 304/575/238 311/589/238 351/649/238 301/572/238 -f 60/74/16 190/492/16 193/311/16 -f 246/429/15 230/404/15 252/440/15 296/674/15 286/675/15 283/490/15 -f 206/322/239 78/102/239 195/387/239 -f 195/387/240 183/266/240 206/322/240 -f 216/358/241 223/388/241 198/359/241 -f 214/354/242 180/353/242 179/361/242 -o Rail_Cube -v -1.606489 0.994589 3.070837 -v -1.606489 1.084445 3.070837 -v -1.606489 1.084277 2.929163 -v -1.606489 0.994589 2.929163 -v -0.511384 1.084480 2.929163 -v -0.514357 1.052983 2.929163 -v -0.549767 1.006668 2.929163 -v -0.549767 0.994589 2.929163 -v 1.313063 1.160981 3.058974 -v 1.498769 1.160981 3.058974 -v 1.498532 1.230366 3.031927 -v 1.312826 1.230366 3.031927 -v 1.225298 0.994589 3.070837 -v 1.225298 1.084445 3.070837 -v 0.962233 1.084445 3.070837 -v 0.964610 1.052983 3.070837 -v 1.000021 1.006668 3.070837 -v 1.000021 0.994589 3.070837 -v -0.197543 0.994589 2.929163 -v 0.049014 0.994589 2.929163 -v 0.049014 0.994589 3.070837 -v -0.197543 0.994589 3.070837 -v 0.401239 0.994589 2.929163 -v 0.647796 0.994589 2.929163 -v 0.647796 0.994589 3.070837 -v 0.401239 0.994589 3.070837 -v 1.000021 0.994589 2.929163 -v 1.225298 0.994589 2.929163 -v -0.549767 0.994589 3.070837 -v 1.225298 1.143051 2.956872 -v -1.531817 1.143051 2.956872 -v -1.531817 1.143051 3.043128 -v 1.225298 1.143051 3.043128 -v 1.313063 0.996053 3.070837 -v 1.498769 0.996053 3.070837 -v 1.313063 1.160981 2.941026 -v 1.313063 0.996053 2.929163 -v 1.225298 1.084802 2.929163 -v 1.269521 1.219445 3.031927 -v 1.498769 0.996053 2.929163 -v 1.498769 1.160981 2.941026 -v 1.312826 1.230366 2.968073 -v 1.498532 1.230366 2.968073 -v 1.575087 0.954078 2.929163 -v 1.575087 1.119006 2.929163 -v 1.575087 1.119006 3.070837 -v 1.575087 0.954078 3.070837 -v 1.269521 1.219445 2.968073 -v 1.554546 1.188392 3.031927 -v 1.554546 1.188392 2.968073 -v -0.514597 1.084445 3.070837 -v -0.234129 1.084445 3.070837 -v 0.083877 1.084445 3.070837 -v 0.364860 1.084445 3.070837 -v 0.682044 1.084445 3.070837 -v 0.964998 1.084754 2.929163 -v 0.683980 1.084702 2.929163 -v 0.366670 1.084643 2.929163 -v 0.084942 1.084590 2.929163 -v -0.230760 1.084532 2.929163 -v -0.232953 1.052983 2.929163 -v -0.232953 1.052983 3.070837 -v -0.514357 1.052983 3.070837 -v -0.197543 1.006668 3.070837 -v -0.197543 1.006668 2.929163 -v -0.549767 1.006668 3.070837 -v 0.084425 1.052983 2.929163 -v 0.365828 1.052983 2.929163 -v 0.365828 1.052983 3.070837 -v 0.084425 1.052983 3.070837 -v 0.401239 1.006668 3.070837 -v 0.401239 1.006668 2.929163 -v 0.049014 1.006668 2.929163 -v 0.049014 1.006668 3.070837 -v 0.683207 1.052983 2.929163 -v 0.964610 1.052983 2.929163 -v 0.683207 1.052983 3.070837 -v 1.000021 1.006668 2.929163 -v 0.647796 1.006668 2.929163 -v 0.647796 1.006668 3.070837 -vt 0.000044 0.107430 -vt 0.024656 0.106940 -vt 0.025382 0.145745 -vt 0.000816 0.146234 -vt 0.030452 0.180549 -vt 0.030675 0.155877 -vt 0.331921 0.150233 -vt 0.331137 0.165014 -vt 0.321371 0.177755 -vt 0.321356 0.182832 -vt 0.841452 0.074598 -vt 0.898560 0.067293 -vt 0.901417 0.090204 -vt 0.844308 0.097509 -vt 0.805805 0.056957 -vt 0.805905 0.081576 -vt 0.733831 0.081869 -vt 0.734447 0.073247 -vt 0.744097 0.060518 -vt 0.744084 0.057208 -vt 0.418878 0.198936 -vt 0.488701 0.198936 -vt 0.488701 0.239057 -vt 0.418878 0.239057 -vt 0.608256 0.198936 -vt 0.678079 0.198936 -vt 0.678079 0.239057 -vt 0.608256 0.239057 -vt 0.797634 0.198936 -vt 0.861431 0.198936 -vt 0.861431 0.239057 -vt 0.797634 0.239057 -vt 0.000064 0.239057 -vt 0.000064 0.198936 -vt 0.299323 0.198936 -vt 0.299323 0.239057 -vt 0.806959 0.123674 -vt 0.051262 0.137650 -vt 0.050803 0.114024 -vt 0.805978 0.099337 -vt 0.834948 0.023749 -vt 0.892056 0.016444 -vt 0.848703 0.139669 -vt 0.848775 0.194135 -vt 0.819931 0.196127 -vt 0.818378 0.166453 -vt 0.819259 0.145224 -vt 0.808731 0.055009 -vt 0.805001 0.027402 -vt 0.832026 0.024208 -vt 0.813249 0.074592 -vt 0.886289 0.198936 -vt 0.886289 0.239057 -vt 0.830535 0.096090 -vt 0.938880 0.198936 -vt 0.938880 0.239057 -vt 0.907329 0.133247 -vt 0.846631 0.116524 -vt 0.903929 0.109840 -vt 0.854421 0.191870 -vt 0.913047 0.185448 -vt 0.999956 0.109718 -vt 0.949237 0.116206 -vt 0.943664 0.072638 -vt 0.994383 0.066151 -vt 0.916522 0.186846 -vt 0.934269 0.143004 -vt 0.943667 0.196128 -vt 0.890641 0.016645 -vt 0.911939 0.000044 -vt 0.920047 0.050529 -vt 0.963546 0.198936 -vt 0.963546 0.239057 -vt 0.833077 0.119378 -vt 0.831048 0.100155 -vt 0.922942 0.087450 -vt 0.925454 0.107087 -vt 0.917732 0.075896 -vt 0.923810 0.118972 -vt 0.030004 0.096674 -vt 0.329071 0.090840 -vt 0.405999 0.085274 -vt 0.493182 0.082863 -vt 0.570163 0.082535 -vt 0.657065 0.082182 -vt 0.807446 0.134947 -vt 0.761956 0.136920 -vt 0.712846 0.139052 -vt 0.657390 0.141473 -vt 0.607889 0.143639 -vt 0.517990 0.146718 -vt 0.319255 0.198936 -vt 0.398947 0.198936 -vt 0.398947 0.239057 -vt 0.319255 0.239057 -vt 0.415457 0.239057 -vt 0.415457 0.198936 -vt 0.302744 0.198936 -vt 0.302744 0.239057 -vt 0.508633 0.198936 -vt 0.588324 0.198936 -vt 0.588325 0.239057 -vt 0.508633 0.239057 -vt 0.604835 0.239057 -vt 0.604835 0.198936 -vt 0.492122 0.198936 -vt 0.492122 0.239057 -vt 0.698011 0.198936 -vt 0.777702 0.198936 -vt 0.777702 0.239057 -vt 0.698011 0.239057 -vt 0.794213 0.239057 -vt 0.794213 0.198936 -vt 0.681500 0.198936 -vt 0.681500 0.239057 -vt 0.570392 0.073909 -vt 0.493194 0.074229 -vt 0.657348 0.073560 -vt 0.580043 0.061180 -vt 0.580030 0.057871 -vt 0.647582 0.057600 -vt 0.647596 0.060910 -vt 0.405892 0.076638 -vt 0.415271 0.063632 -vt 0.415179 0.060309 -vt 0.483008 0.058434 -vt 0.483100 0.061757 -vt 0.328731 0.082202 -vt 0.029525 0.072069 -vt 0.318891 0.066437 -vt 0.321825 0.067919 -vt 0.762127 0.142476 -vt 0.808127 0.150713 -vt 0.768757 0.152413 -vt 0.766843 0.151519 -vt 0.712952 0.144596 -vt 0.657585 0.147020 -vt 0.707119 0.152950 -vt 0.707211 0.155057 -vt 0.664206 0.156936 -vt 0.664114 0.154829 -vt 0.608341 0.150969 -vt 0.517035 0.161727 -vt 0.599554 0.164923 -vt 0.599986 0.168387 -vt 0.529279 0.177207 -vt 0.528847 0.173743 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 0.3632 0.9317 -vn 0.0000 0.0000 1.0000 -vn 0.0000 -1.0000 0.0000 +vn -1.0000 -0.0000 0.0000 +vn 0.4999 0.3505 -0.7920 +vn 0.4999 -0.3505 0.7920 +vn -0.5000 -0.3505 0.7919 +vn 0.0000 0.9079 0.4192 +vn -0.5000 0.3505 -0.7919 +vn 0.5000 0.3505 -0.7919 +vn 0.5000 -0.3505 0.7919 +vn -0.4999 -0.3505 0.7920 +vn -0.4999 0.3505 -0.7920 +vn 0.0000 0.5247 -0.8513 +vn 0.0000 -0.5247 0.8513 +vn -0.7911 0.5599 0.2463 +vn 0.0000 0.9154 0.4026 +vn 0.0000 0.0280 0.9996 +vn 0.0000 0.7558 -0.6548 +vn 0.7911 0.5599 0.2463 +vn 0.5000 0.3505 0.7919 +vn 0.5000 -0.3505 -0.7919 +vn -0.4999 -0.3505 -0.7920 +vn 0.0000 0.9079 -0.4192 +vn -0.4999 0.3505 0.7920 +vn 0.4999 0.3505 0.7920 +vn 0.5000 -0.3505 -0.7920 +vn -0.5000 -0.3505 -0.7919 +vn -0.5000 0.3505 0.7919 +vn 0.0000 0.5247 0.8513 +vn 0.0000 -0.5247 -0.8513 +vn -0.7911 0.5599 -0.2463 +vn 0.0000 0.9154 -0.4026 +vn 0.0000 0.0280 -0.9996 +vn 0.0000 0.7558 0.6548 +vn 0.7911 0.5599 -0.2463 +vn -0.7409 0.6716 0.0000 vn 0.0000 1.0000 0.0000 -vn 0.0000 0.0717 0.9974 -vn -0.0132 0.1253 -0.9920 -vn -0.0136 0.1253 0.9920 -vn 0.0167 -0.9999 0.0000 -vn -0.1793 0.2999 0.9370 -vn 0.0000 0.3632 -0.9317 -vn 0.0000 0.0717 -0.9974 -vn 1.0000 0.0000 0.0000 -vn -0.0578 0.0359 -0.9977 -vn -0.0578 0.0359 0.9977 -vn -0.4819 -0.8762 0.0000 -vn -0.2445 0.9696 0.0000 -vn 0.5997 0.8003 0.0000 -vn 0.2041 0.4450 0.8720 -vn 0.9589 0.2839 0.0000 -vn -0.8655 0.5010 0.0000 -vn -0.1793 0.2999 -0.9370 -vn 0.2041 0.4450 -0.8720 -vn 0.0000 0.4274 0.9040 -vn -0.6179 0.7862 -0.0006 -vn -0.0000 0.4280 -0.9038 -vn 0.7944 -0.6074 0.0000 -vn -0.7944 -0.6074 0.0000 -s off -f 357/676/243 358/677/243 359/678/243 360/679/243 -f 360/680/244 359/681/244 361/682/244 362/683/244 363/684/244 364/685/244 -f 365/686/245 366/687/245 367/688/245 368/689/245 -f 369/690/246 370/691/246 371/692/246 372/693/246 373/694/246 374/695/246 -f 375/696/247 376/697/247 377/698/247 378/699/247 -f 379/700/247 380/701/247 381/702/247 382/703/247 -f 383/704/247 384/705/247 369/706/247 374/707/247 -f 357/708/247 360/709/247 364/710/247 385/711/247 -f 386/712/248 387/713/248 388/714/248 389/715/248 -f 365/686/249 390/716/249 391/717/249 366/687/249 -f 392/718/250 393/719/250 384/720/250 394/721/250 386/722/250 -f 370/723/251 369/724/251 390/725/251 365/686/251 389/726/251 -f 369/706/252 384/705/252 393/727/252 390/728/252 -f 389/726/253 365/686/253 368/689/253 395/729/253 -f 390/728/247 393/727/247 396/730/247 391/731/247 -f 397/732/254 392/718/254 398/733/254 399/734/254 -f 393/735/255 392/718/255 397/732/255 396/736/255 -f 400/737/256 401/738/256 402/739/256 403/740/256 -f 396/741/257 397/732/257 401/742/257 400/743/257 -f 366/687/258 391/744/258 403/745/258 402/746/258 -f 391/731/259 396/730/259 400/747/259 403/748/259 -f 404/749/260 395/750/260 368/689/260 398/733/260 -f 399/734/261 367/688/261 405/751/261 406/752/261 -f 398/733/248 368/689/248 367/688/248 399/734/248 -f 366/687/262 402/746/262 405/753/262 367/688/262 -f 402/739/263 401/738/263 406/752/263 405/751/263 -f 386/712/264 389/715/264 395/750/264 404/749/264 -f 392/718/265 386/722/265 404/749/265 398/733/265 -f 401/742/266 397/732/266 399/734/266 406/754/266 -f 358/755/267 407/756/267 408/757/267 409/758/267 410/759/267 411/760/267 371/692/267 370/691/267 389/715/267 388/714/267 -f 359/678/268 358/677/268 388/714/268 387/713/268 -f 394/761/269 412/762/269 413/763/269 414/764/269 415/765/269 416/766/269 361/682/269 359/681/269 387/713/269 386/712/269 -f 362/767/247 417/768/247 418/769/247 419/770/247 -f 378/699/243 420/771/243 421/772/243 375/696/243 -f 364/710/256 363/773/256 422/774/256 385/711/256 -f 363/773/270 362/767/270 419/770/270 422/774/270 -f 418/769/271 417/768/271 421/772/271 420/771/271 -f 423/775/247 424/776/247 425/777/247 426/778/247 -f 382/703/243 427/779/243 428/780/243 379/700/243 -f 376/697/256 429/781/256 430/782/256 377/698/256 -f 429/781/270 423/775/270 426/778/270 430/782/270 -f 428/780/271 427/779/271 425/777/271 424/776/271 -f 431/783/247 432/784/247 372/785/247 433/786/247 -f 373/787/243 434/788/243 383/704/243 374/707/243 -f 380/701/256 435/789/256 436/790/256 381/702/256 -f 436/790/270 435/789/270 431/783/270 433/786/270 -f 372/785/271 432/784/271 434/788/271 373/787/271 -f 425/791/246 410/759/246 409/758/246 426/792/246 -f 433/793/246 411/760/246 410/759/246 425/791/246 427/794/246 382/795/246 381/796/246 436/797/246 -f 372/693/246 371/692/246 411/760/246 433/793/246 -f 426/792/246 409/758/246 408/757/246 418/798/246 420/799/246 378/800/246 377/801/246 430/802/246 -f 418/798/246 408/757/246 407/756/246 419/803/246 -f 419/803/246 407/756/246 358/755/246 357/804/246 385/805/246 422/806/246 -f 432/807/244 412/762/244 394/761/244 384/808/244 383/809/244 434/810/244 -f 431/811/244 413/763/244 412/762/244 432/807/244 -f 424/812/244 414/764/244 413/763/244 431/811/244 435/813/244 380/814/244 379/815/244 428/816/244 -f 423/817/244 415/765/244 414/764/244 424/812/244 -f 417/818/244 416/766/244 415/765/244 423/817/244 429/819/244 376/820/244 375/821/244 421/822/244 -f 362/683/244 361/682/244 416/766/244 417/818/244 -o CoiCanon_Cylinder.004 -v -0.419369 0.526526 2.793014 -v 0.947632 0.526526 2.793014 -v 0.947632 0.380164 2.853639 -v -0.419369 0.380164 2.853639 -v 0.947632 0.319540 3.000000 -v -0.419369 0.319540 3.000000 -v 0.947632 0.380164 3.146361 -v -0.419369 0.380164 3.146361 -v 0.947632 0.526526 3.206986 -v -0.419369 0.526526 3.206986 -v 0.947632 0.672887 3.146361 -v -0.419369 0.672887 3.146361 -v 0.947632 0.733512 3.000000 -v -0.419369 0.733512 3.000000 -v 0.947632 0.672887 2.853639 -v -0.419369 0.672887 2.853639 -vt 0.000126 0.575971 -vt 0.828281 0.575971 -vt 0.828281 0.671946 -vt 0.000126 0.671946 -vt 0.828281 0.767920 -vt 0.000126 0.767920 -vt 0.000126 0.000126 -vt 0.828282 0.000127 -vt 0.828282 0.096101 -vt 0.000126 0.096100 -vt 0.828282 0.192075 -vt 0.000126 0.192075 -vt 0.828282 0.288049 -vt 0.000126 0.288049 -vt 0.828281 0.384023 -vt 0.000126 0.384023 -vt 0.232080 0.836036 -vt 0.299945 0.768172 -vt 0.395919 0.768172 -vt 0.463783 0.836036 -vt 0.463783 0.932010 -vt 0.395919 0.999874 -vt 0.299944 0.999874 -vt 0.232081 0.932010 -vt 0.828281 0.479997 -vt 0.000126 0.479997 -vt 0.163964 0.999874 -vt 0.067990 0.999874 -vt 0.000126 0.932010 -vt 0.000126 0.836036 -vt 0.067990 0.768172 -vt 0.163964 0.768172 -vt 0.231828 0.836036 -vt 0.231828 0.932010 -vn 0.0000 -0.3827 -0.9239 -vn 0.0000 -0.9239 -0.3827 -vn 0.0000 -0.9239 0.3827 -vn 0.0000 -0.3827 0.9239 -vn 0.0000 0.3827 0.9239 -vn 0.0000 0.9239 0.3827 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.9239 -0.3827 -vn 0.0000 0.3827 -0.9239 -vn -1.0000 0.0000 0.0000 -s off -f 437/823/272 438/824/272 439/825/272 440/826/272 -f 440/826/273 439/825/273 441/827/273 442/828/273 -f 442/829/274 441/830/274 443/831/274 444/832/274 -f 444/832/275 443/831/275 445/833/275 446/834/275 -f 446/834/276 445/833/276 447/835/276 448/836/276 -f 448/836/277 447/835/277 449/837/277 450/838/277 -f 439/839/278 438/840/278 451/841/278 449/842/278 447/843/278 445/844/278 443/845/278 441/846/278 -f 450/838/279 449/837/279 451/847/279 452/848/279 -f 452/848/280 451/847/280 438/824/280 437/823/280 -f 437/849/281 440/850/281 442/851/281 444/852/281 446/853/281 448/854/281 450/855/281 452/856/281 -o SideScrews_Cylinder.005 -v -0.436383 0.265019 3.509254 -v 1.004741 0.265019 3.509254 -v 1.004741 0.179718 3.544586 -v -0.436383 0.179718 3.544586 -v 1.004741 0.144386 3.629887 -v -0.436383 0.144385 3.629887 -v 1.004741 0.179718 3.715187 -v -0.436383 0.179718 3.715187 -v 1.004741 0.265019 3.750520 -v -0.436383 0.265019 3.750520 -v 1.004741 0.350319 3.715187 -v -0.436383 0.350319 3.715187 -v 1.004741 0.385652 3.629887 -v -0.436383 0.385652 3.629887 -v 1.088061 0.265019 3.750520 -v 1.088061 0.350319 3.715187 -v 1.004741 0.350319 3.544586 -v -0.436383 0.350319 3.544586 -v -0.513171 0.364069 3.629887 -v -0.513171 0.335058 3.699926 -v -0.513171 0.265019 3.530836 -v -0.513171 0.194979 3.559848 -v -0.513171 0.165968 3.629887 -v -0.513171 0.194979 3.699926 -v -0.513171 0.265019 3.728937 -v -0.513171 0.335058 3.559848 -v 1.088061 0.265019 3.509254 -v 1.088061 0.350319 3.544586 -v 1.100404 0.336110 3.558795 -v 1.100404 0.265019 3.529348 -v 1.088061 0.179718 3.544586 -v 1.088061 0.144386 3.629887 -v 1.088061 0.179718 3.715187 -v 1.088061 0.385652 3.629887 -v 1.100404 0.336110 3.700979 -v 1.100404 0.365558 3.629887 -v 1.100404 0.193927 3.700979 -v 1.100404 0.265019 3.730426 -v 1.100404 0.193927 3.558795 -v 1.100404 0.164480 3.629887 -v 1.127149 0.181939 3.629887 -v 1.127149 0.206273 3.688633 -v 1.127149 0.206273 3.571141 -v 1.127149 0.265019 3.546807 -v 1.127149 0.323765 3.571141 -v 1.127149 0.348098 3.629887 -v 1.127149 0.323765 3.688633 -v 1.127149 0.265019 3.712966 -v -0.436384 0.265019 2.490746 -v -0.436384 0.179718 2.455414 -v 1.004741 0.179718 2.455414 -v 1.004741 0.265019 2.490746 -v -0.436384 0.144385 2.370113 -v 1.004741 0.144386 2.370113 -v -0.436384 0.179718 2.284813 -v 1.004741 0.179718 2.284813 -v -0.436384 0.265019 2.249480 -v 1.004741 0.265019 2.249480 -v -0.436384 0.350319 2.284813 -v 1.004741 0.350319 2.284813 -v -0.436384 0.385652 2.370113 -v 1.004741 0.385652 2.370113 -v 1.088061 0.350319 2.284813 -v 1.088061 0.265019 2.249480 -v -0.436384 0.350319 2.455414 -v 1.004741 0.350319 2.455414 -v -0.513171 0.335058 2.300074 -v -0.513171 0.364069 2.370113 -v -0.513171 0.265019 2.469164 -v -0.513171 0.335058 2.440152 -v -0.513171 0.265019 2.271063 -v -0.513171 0.194979 2.300074 -v -0.513171 0.165968 2.370113 -v -0.513171 0.194979 2.440152 -v 1.088061 0.265019 2.490746 -v 1.100404 0.265019 2.470652 -v 1.100404 0.336111 2.441205 -v 1.088061 0.350319 2.455414 -v 1.088061 0.179718 2.455414 -v 1.088061 0.179718 2.284813 -v 1.088061 0.144386 2.370113 -v 1.088061 0.385652 2.370113 -v 1.100404 0.365558 2.370113 -v 1.100404 0.336110 2.299021 -v 1.100404 0.265019 2.269574 -v 1.100404 0.193927 2.299021 -v 1.100404 0.164480 2.370113 -v 1.100404 0.193927 2.441205 -v 1.127149 0.206273 2.311367 -v 1.127149 0.181939 2.370113 -v 1.127149 0.206273 2.428859 -v 1.127149 0.265019 2.287034 -v 1.127149 0.323765 2.311367 -v 1.127149 0.348098 2.370113 -v 1.127149 0.323765 2.428859 -v 1.127149 0.265019 2.453193 -vt 0.047908 0.778254 -vt 0.915002 0.778254 -vt 0.915002 0.833806 -vt 0.047908 0.833806 -vt 0.915002 0.889359 -vt 0.047908 0.889358 -vt 0.047908 0.444941 -vt 0.915002 0.444941 -vt 0.915002 0.500493 -vt 0.047908 0.500493 -vt 0.915002 0.556045 -vt 0.047908 0.556045 -vt 0.915002 0.611597 -vt 0.047908 0.611598 -vt 0.915002 0.667149 -vt 0.047908 0.667150 -vt 0.965134 0.556045 -vt 0.965134 0.611597 -vt 0.915002 0.722702 -vt 0.047908 0.722702 -vt 0.000174 0.662180 -vt 0.000174 0.616567 -vt 0.188508 0.999826 -vt 0.142894 0.999826 -vt 0.110641 0.967572 -vt 0.110641 0.921959 -vt 0.142895 0.889706 -vt 0.188508 0.889706 -vt 0.220761 0.921959 -vt 0.220761 0.967572 -vt 0.000174 0.551076 -vt 0.000174 0.505463 -vt 0.000174 0.717732 -vt 0.000174 0.672119 -vt 0.000174 0.884388 -vt 0.000174 0.838776 -vt 0.000174 0.606628 -vt 0.000174 0.561015 -vt 0.000174 0.773284 -vt 0.000174 0.727671 -vt 0.000174 0.828837 -vt 0.000174 0.783223 -vt 0.000174 0.495524 -vt 0.000174 0.449911 -vt 0.965134 0.778254 -vt 0.965134 0.722702 -vt 0.978548 0.727329 -vt 0.978548 0.773627 -vt 0.965134 0.833806 -vt 0.965134 0.444941 -vt 0.965134 0.500493 -vt 0.965134 0.667149 -vt 0.965134 0.889359 -vt 0.978548 0.616224 -vt 0.978548 0.662523 -vt 0.978548 0.505120 -vt 0.978548 0.551419 -vt 0.978548 0.838433 -vt 0.978548 0.884732 -vt 0.978548 0.671776 -vt 0.978548 0.718075 -vt 0.978548 0.560672 -vt 0.978548 0.606970 -vt 0.978548 0.449567 -vt 0.978548 0.495866 -vt 0.978548 0.782880 -vt 0.978548 0.829179 -vt 0.997340 0.453587 -vt 0.997340 0.491846 -vt 0.313821 0.916759 -vt 0.340874 0.889706 -vt 0.379132 0.889706 -vt 0.406185 0.916760 -vt 0.406185 0.955018 -vt 0.379132 0.982071 -vt 0.340873 0.982071 -vt 0.313820 0.955018 -vt 0.997340 0.786900 -vt 0.997340 0.825159 -vt 0.997340 0.731349 -vt 0.997339 0.769607 -vt 0.997340 0.620244 -vt 0.997340 0.658502 -vt 0.997340 0.509140 -vt 0.997340 0.547398 -vt 0.997340 0.842454 -vt 0.997340 0.880712 -vt 0.997340 0.675796 -vt 0.997340 0.714055 -vt 0.997340 0.564692 -vt 0.997340 0.602951 -vt 0.047908 0.111279 -vt 0.047908 0.055726 -vt 0.915003 0.055729 -vt 0.915003 0.111281 -vt 0.047908 0.000174 -vt 0.915003 0.000177 -vt 0.047907 0.444592 -vt 0.047907 0.389040 -vt 0.915002 0.389041 -vt 0.915002 0.444593 -vt 0.047907 0.333487 -vt 0.915002 0.333489 -vt 0.047907 0.277935 -vt 0.915002 0.277937 -vt 0.047908 0.222383 -vt 0.915002 0.222385 -vt 0.965134 0.277937 -vt 0.965134 0.333489 -vt 0.047908 0.166830 -vt 0.915003 0.166833 -vt 0.000174 0.272966 -vt 0.000174 0.227352 -vt 0.032427 0.889706 -vt 0.078041 0.889706 -vt 0.110294 0.921960 -vt 0.110294 0.967573 -vt 0.078041 0.999826 -vt 0.032427 0.999826 -vt 0.000174 0.967573 -vt 0.000174 0.921960 -vt 0.000174 0.384070 -vt 0.000174 0.338457 -vt 0.000174 0.217413 -vt 0.000174 0.171800 -vt 0.000175 0.050756 -vt 0.000175 0.005143 -vt 0.000174 0.328517 -vt 0.000174 0.282904 -vt 0.000174 0.161861 -vt 0.000175 0.116248 -vt 0.000175 0.106309 -vt 0.000175 0.060695 -vt 0.000174 0.439622 -vt 0.000174 0.394009 -vt 0.965135 0.111281 -vt 0.978548 0.115908 -vt 0.978548 0.162207 -vt 0.965135 0.166833 -vt 0.965135 0.055729 -vt 0.965134 0.389041 -vt 0.965134 0.444593 -vt 0.965134 0.222385 -vt 0.965135 0.000177 -vt 0.978548 0.227012 -vt 0.978548 0.273311 -vt 0.978547 0.338116 -vt 0.978547 0.384414 -vt 0.978548 0.004803 -vt 0.978548 0.051102 -vt 0.978547 0.171460 -vt 0.978547 0.217759 -vt 0.978547 0.282564 -vt 0.978547 0.328863 -vt 0.978548 0.393668 -vt 0.978548 0.439967 -vt 0.978548 0.060356 -vt 0.978548 0.106654 -vt 0.997340 0.397688 -vt 0.997340 0.435947 -vt 0.248162 0.982070 -vt 0.221109 0.955017 -vt 0.221109 0.916758 -vt 0.248162 0.889706 -vt 0.286421 0.889706 -vt 0.313473 0.916759 -vt 0.313473 0.955017 -vt 0.286420 0.982071 -vt 0.997340 0.064376 -vt 0.997340 0.102635 -vt 0.997340 0.119928 -vt 0.997341 0.158187 -vt 0.997340 0.231032 -vt 0.997340 0.269291 -vt 0.997339 0.342136 -vt 0.997339 0.380394 -vt 0.997340 0.008823 -vt 0.997340 0.047082 -vt 0.997339 0.175480 -vt 0.997339 0.213738 -vt 0.997340 0.286584 -vt 0.997340 0.324842 -vn 0.0000 -0.3827 -0.9239 -vn 0.0000 -0.9239 -0.3827 -vn 0.0000 -0.9239 0.3827 -vn 0.0000 -0.3827 0.9239 -vn 0.0000 0.3827 0.9239 -vn 0.0000 0.9239 0.3827 -vn 0.0000 0.9239 -0.3827 -vn 0.0000 0.3827 -0.9239 -vn -0.2513 0.8942 0.3704 -vn -1.0000 0.0000 0.0000 -vn -0.2513 -0.3704 0.8942 -vn -0.2513 0.8942 -0.3704 -vn -0.2513 -0.8942 -0.3704 -vn -0.2513 0.3704 0.8942 -vn -0.2513 0.3704 -0.8942 -vn -0.2513 -0.3704 -0.8942 -vn -0.2513 -0.8942 0.3704 -vn 0.8327 0.2119 -0.5115 -vn 0.8327 0.5115 0.2119 -vn 0.8327 -0.2119 0.5115 -vn 0.8327 -0.5115 -0.2119 -vn 0.8327 0.5115 -0.2119 -vn 0.8327 0.2119 0.5115 -vn 0.8327 -0.5115 0.2119 -vn 0.8327 -0.2119 -0.5115 -vn 0.5165 -0.7911 0.3277 -vn 1.0000 0.0000 0.0000 -vn 0.5165 -0.3277 -0.7911 -vn 0.5165 0.3277 -0.7911 -vn 0.5165 0.7911 0.3277 -vn 0.5165 -0.3277 0.7911 -vn 0.5165 -0.7911 -0.3277 -vn 0.5165 0.7911 -0.3277 -vn 0.5165 0.3277 0.7911 -s off -f 453/857/282 454/858/282 455/859/282 456/860/282 -f 456/860/283 455/859/283 457/861/283 458/862/283 -f 458/863/284 457/864/284 459/865/284 460/866/284 -f 460/866/285 459/865/285 461/867/285 462/868/285 -f 462/868/286 461/867/286 463/869/286 464/870/286 -f 464/870/287 463/869/287 465/871/287 466/872/287 -f 463/869/286 461/867/286 467/873/286 468/874/286 -f 466/872/288 465/871/288 469/875/288 470/876/288 -f 470/876/289 469/875/289 454/858/289 453/857/289 -f 464/870/290 466/872/290 471/877/290 472/878/290 -f 473/879/291 474/880/291 475/881/291 476/882/291 477/883/291 472/884/291 471/885/291 478/886/291 -f 460/866/292 462/868/292 477/887/292 476/888/292 -f 466/872/293 470/876/293 478/889/293 471/890/293 -f 456/860/294 458/862/294 475/891/294 474/892/294 -f 462/868/295 464/870/295 472/893/295 477/894/295 -f 470/876/296 453/857/296 473/895/296 478/896/296 -f 453/857/297 456/860/297 474/897/297 473/898/297 -f 458/863/298 460/866/298 476/899/298 475/900/298 -f 479/901/299 480/902/299 481/903/299 482/904/299 -f 454/858/289 469/875/289 480/902/289 479/901/289 -f 455/859/282 454/858/282 479/901/282 483/905/282 -f 459/865/284 457/864/284 484/906/284 485/907/284 -f 465/871/287 463/869/287 468/874/287 486/908/287 -f 461/867/285 459/865/285 485/907/285 467/873/285 -f 469/875/288 465/871/288 486/908/288 480/902/288 -f 457/861/283 455/859/283 483/905/283 484/909/283 -f 486/908/300 468/874/300 487/910/300 488/911/300 -f 467/873/301 485/907/301 489/912/301 490/913/301 -f 484/909/302 483/905/302 491/914/302 492/915/302 -f 480/902/303 486/908/303 488/916/303 481/917/303 -f 468/874/304 467/873/304 490/918/304 487/919/304 -f 485/907/305 484/906/305 492/920/305 489/921/305 -f 483/905/306 479/901/306 482/922/306 491/923/306 -f 489/921/307 492/920/307 493/924/307 494/925/307 -f 495/926/308 496/927/308 497/928/308 498/929/308 499/930/308 500/931/308 494/932/308 493/933/308 -f 491/923/309 482/922/309 496/934/309 495/935/309 -f 482/904/310 481/903/310 497/936/310 496/937/310 -f 488/911/311 487/910/311 499/938/311 498/939/311 -f 490/913/312 489/912/312 494/940/312 500/941/312 -f 492/915/313 491/914/313 495/942/313 493/943/313 -f 481/917/314 488/916/314 498/944/314 497/945/314 -f 487/919/315 490/918/315 500/946/315 499/947/315 -f 501/948/285 502/949/285 503/950/285 504/951/285 -f 502/949/284 505/952/284 506/953/284 503/950/284 -f 505/954/283 507/955/283 508/956/283 506/957/283 -f 507/955/282 509/958/282 510/959/282 508/956/282 -f 509/958/289 511/960/289 512/961/289 510/959/289 -f 511/960/288 513/962/288 514/963/288 512/961/288 -f 512/961/289 515/964/289 516/965/289 510/959/289 -f 513/962/287 517/966/287 518/967/287 514/963/287 -f 517/966/286 501/948/286 504/951/286 518/967/286 -f 511/960/293 519/968/293 520/969/293 513/962/293 -f 521/970/291 522/971/291 520/972/291 519/973/291 523/974/291 524/975/291 525/976/291 526/977/291 -f 507/955/297 524/978/297 523/979/297 509/958/297 -f 513/962/290 520/980/290 522/981/290 517/966/290 -f 502/949/298 526/982/298 525/983/298 505/952/298 -f 509/958/296 523/984/296 519/985/296 511/960/296 -f 517/966/295 522/986/295 521/987/295 501/948/295 -f 501/948/292 521/988/292 526/989/292 502/949/292 -f 505/954/294 525/990/294 524/991/294 507/955/294 -f 527/992/304 528/993/304 529/994/304 530/995/304 -f 504/951/286 527/992/286 530/995/286 518/967/286 -f 503/950/285 531/996/285 527/992/285 504/951/285 -f 508/956/283 532/997/283 533/998/283 506/957/283 -f 514/963/288 534/999/288 515/964/288 512/961/288 -f 510/959/282 516/965/282 532/997/282 508/956/282 -f 518/967/287 530/995/287 534/999/287 514/963/287 -f 506/953/284 533/1000/284 531/996/284 503/950/284 -f 534/999/303 535/1001/303 536/1002/303 515/964/303 -f 516/965/306 537/1003/306 538/1004/306 532/997/306 -f 533/1000/305 539/1005/305 540/1006/305 531/996/305 -f 530/995/300 529/1007/300 535/1008/300 534/999/300 -f 515/964/299 536/1009/299 537/1010/299 516/965/299 -f 532/997/302 538/1011/302 539/1012/302 533/998/302 -f 531/996/301 540/1013/301 528/1014/301 527/992/301 -f 538/1011/313 541/1015/313 542/1016/313 539/1012/313 -f 543/1017/308 542/1018/308 541/1019/308 544/1020/308 545/1021/308 546/1022/308 547/1023/308 548/1024/308 -f 540/1013/312 543/1025/312 548/1026/312 528/1014/312 -f 528/993/315 548/1027/315 547/1028/315 529/994/315 -f 535/1001/314 546/1029/314 545/1030/314 536/1002/314 -f 537/1003/309 544/1031/309 541/1032/309 538/1004/309 -f 539/1005/307 542/1033/307 543/1034/307 540/1006/307 -f 529/1007/311 547/1035/311 546/1036/311 535/1008/311 -f 536/1009/310 545/1037/310 544/1038/310 537/1010/310 -o AmmunitionCan_Cylinder.007 -v -1.114931 0.645018 2.605743 -v -0.705608 0.645018 2.607436 -v -0.705608 0.367434 2.722416 -v -1.115595 0.367434 2.722416 -v -0.705608 0.252454 3.000000 -v -1.115595 0.252454 3.000000 -v -0.705608 0.367434 3.277584 -v -1.115595 0.367434 3.277584 -v -0.705608 0.645018 3.392564 -v -1.115595 0.645018 3.392564 -v -0.705608 0.922602 3.277584 -v -1.115595 0.922602 3.277584 -v -0.705608 1.037581 3.000000 -v -1.115595 1.037581 3.000000 -v -0.705608 0.922602 2.722416 -v -1.115595 0.922602 2.722416 -v -1.680468 0.367434 2.722416 -v -1.680468 0.252454 3.000000 -v -1.696762 0.326183 3.000000 -v -1.696762 0.419567 2.774549 -v -1.696762 0.645018 3.318835 -v -1.696762 0.870468 3.225451 -v -1.717499 0.922175 3.277157 -v -1.717499 0.645018 3.391959 -v -1.680468 0.645018 3.392564 -v -1.680468 0.922602 3.277584 -v -1.680468 0.922602 2.722416 -v -1.680468 0.645018 2.607436 -v -1.696762 0.645018 2.681165 -v -1.696762 0.870469 2.774550 -v -1.680468 0.367434 3.277584 -v -1.696762 0.419567 3.225451 -v -1.680468 1.037582 3.000000 -v -1.696762 0.963853 3.000000 -v -1.717499 1.036977 3.000000 -v -1.717499 0.922175 2.722843 -v -1.807855 0.922175 2.722843 -v -1.807855 1.036977 3.000000 -v -1.717499 0.367861 3.277157 -v -1.717499 0.253059 3.000000 -v -1.717499 0.367861 2.722843 -v -1.717499 0.645018 2.608041 -v -1.807855 0.922175 3.277157 -v -1.827112 0.964049 3.000000 -v -1.827112 0.870607 3.225589 -v -1.807856 0.645018 3.391959 -v -1.807856 0.367861 3.277157 -v -1.807856 0.253059 3.000000 -v -1.807856 0.367861 2.722843 -v -1.807856 0.645018 2.608041 -v -1.827112 0.645018 2.680969 -v -1.827112 0.419429 2.774411 -v -1.850272 0.367220 2.722202 -v -1.850272 0.645018 2.607134 -v -1.827112 0.645018 3.319031 -v -1.827112 0.419429 3.225589 -v -1.827112 0.325987 3.000000 -v -1.827112 0.870607 2.774411 -v -1.850272 1.037884 3.000000 -v -1.850272 0.922816 2.722202 -v -1.929992 0.922816 2.722202 -v -1.929992 1.037884 3.000000 -v -1.850272 0.922816 3.277798 -v -1.850272 0.645018 3.392866 -v -1.850272 0.367220 3.277798 -v -1.850272 0.252152 3.000000 -v -1.929992 0.367220 2.722202 -v -1.929992 0.252152 3.000000 -v -2.043752 0.321683 3.000000 -v -2.043752 0.416385 2.771367 -v -1.929992 0.922816 3.277798 -v -1.929992 0.645018 3.392866 -v -1.929992 0.367220 3.277798 -v -1.929992 0.645018 2.607134 -v -2.043752 0.873651 2.771367 -v -2.043752 0.645018 2.676665 -v -2.121962 0.645018 2.774646 -v -2.121962 0.804367 2.840651 -v -2.043752 0.968353 3.000000 -v -2.043752 0.873651 3.228633 -v -2.043752 0.645018 3.323335 -v -2.043752 0.416385 3.228633 -v -2.121962 0.870372 3.000000 -v -2.179800 0.787147 2.857871 -v -2.179800 0.846019 3.000000 -v -2.121962 0.804367 3.159349 -v -2.121962 0.645018 3.225354 -v -2.121962 0.485669 3.159349 -v -2.121962 0.419664 3.000000 -v -2.121962 0.485669 2.840651 -v -2.179800 0.787147 3.142129 -v -2.179800 0.817735 3.000000 -v -2.179800 0.767148 3.122130 -v -2.179800 0.645018 3.201001 -v -2.179800 0.502889 3.142129 -v -2.179800 0.444017 3.000000 -v -2.179800 0.502889 2.857871 -v -2.179800 0.645018 2.798999 -v -2.179800 0.645018 2.827283 -v -2.179800 0.522888 2.877870 -v -2.139229 0.522888 2.877870 -v -2.139229 0.645018 2.827283 -v -2.179800 0.645018 3.172717 -v -2.179800 0.522888 3.122130 -v -2.179800 0.472301 3.000000 -v -2.179800 0.767148 2.877870 -v -2.139229 0.472301 3.000000 -v -2.139229 0.522888 3.122130 -v -2.139229 0.645018 3.172717 -v -2.139229 0.767148 3.122130 -v -2.139229 0.817735 3.000000 -v -2.139229 0.767148 2.877870 -v -1.416219 0.923800 2.721218 -v -1.416219 0.645018 2.605743 -v -1.415588 1.037581 3.000000 -v -1.416219 0.923800 3.278782 -v -1.416219 0.645018 3.394257 -v -1.416219 0.366236 3.278782 -v -1.415589 0.252454 3.000000 -v -1.416219 0.366236 2.721218 -v -1.161507 0.923800 2.721218 -v -1.161507 0.645018 2.605743 -v -1.161507 1.039275 3.000000 -v -1.161507 0.923800 3.278782 -v -1.161507 0.645018 3.394257 -v -1.161507 0.366236 3.278782 -v -1.161507 0.250761 3.000000 -v -1.161507 0.366236 2.721218 -v -1.379544 0.645018 2.605743 -v -1.379545 0.366236 2.721218 -v -1.379545 1.039275 3.000000 -v -1.379545 0.923800 3.278782 -v -1.382795 0.953877 3.308859 -v -1.382795 1.081811 3.000000 -v -1.319287 0.645018 2.590682 -v -1.221764 0.645018 2.590682 -v -1.221764 0.355586 2.710568 -v -1.319287 0.355586 2.710568 -v -1.158621 0.950501 2.694517 -v -1.158621 1.077036 3.000000 -v -1.379545 0.250761 3.000000 -v -1.319287 0.235700 3.000000 -v -1.316037 0.208225 3.000000 -v -1.316037 0.336159 2.691141 -v -1.221764 0.235700 3.000000 -v -1.158621 0.950501 3.305483 -v -1.158621 0.645018 3.432019 -v -1.379545 0.366236 3.278782 -v -1.379545 0.645018 3.394257 -v -1.382795 0.336159 3.308859 -v -1.382795 0.645018 3.436793 -v -1.221764 0.355586 3.289432 -v -1.319287 0.355586 3.289432 -v -1.221764 0.934450 2.710568 -v -1.221764 1.054336 3.000000 -v -1.224650 1.077036 3.000000 -v -1.224650 0.950501 2.694517 -v -1.382795 0.336159 2.691141 -v -1.382795 0.208225 3.000000 -v -1.221764 0.645018 3.409318 -v -1.319287 0.645018 3.409318 -v -1.158621 0.339535 3.305483 -v -1.158621 0.212999 3.000000 -v -1.319287 1.054336 3.000000 -v -1.319287 0.934450 2.710568 -v -1.316037 0.953877 2.691141 -v -1.316037 1.081811 3.000000 -v -1.221764 0.934450 3.289432 -v -1.319287 0.934450 3.289432 -v -1.224650 0.645018 3.432019 -v -1.224650 0.950501 3.305483 -v -1.316037 0.953877 3.308859 -v -1.316037 0.645018 3.436793 -v -1.158621 0.339535 2.694517 -v -1.158621 0.645018 2.567981 -v -1.379545 0.923800 2.721218 -v -1.382795 0.953877 2.691141 -v -1.224650 0.212999 3.000000 -v -1.224650 0.339535 3.305483 -v -1.316037 0.336159 3.308859 -v -1.224650 0.645018 2.567981 -v -1.224650 0.339535 2.694517 -v -1.382795 0.645018 2.563207 -v -1.316036 0.645018 2.563207 -vt 0.333771 0.122601 -vt 0.250827 0.123696 -vt 0.249913 0.062860 -vt 0.333162 0.061441 -vt 0.248762 0.002028 -vt 0.331770 0.000458 -vt 0.331178 0.489363 -vt 0.248762 0.487236 -vt 0.250204 0.426885 -vt 0.333040 0.428574 -vt 0.251228 0.366447 -vt 0.334273 0.367529 -vt 0.251779 0.305898 -vt 0.334946 0.306336 -vt 0.251870 0.245242 -vt 0.335158 0.245008 -vt 0.387778 0.000111 -vt 0.448672 0.000111 -vt 0.491729 0.043169 -vt 0.491729 0.104062 -vt 0.448671 0.147120 -vt 0.387778 0.147120 -vt 0.344720 0.104062 -vt 0.344720 0.043169 -vt 0.251510 0.184543 -vt 0.334843 0.183746 -vt 0.184792 0.411952 -vt 0.180019 0.475285 -vt 0.164389 0.467565 -vt 0.169068 0.411085 -vt 0.171376 0.116511 -vt 0.173907 0.173123 -vt 0.158223 0.172770 -vt 0.156306 0.116051 -vt 0.187710 0.116136 -vt 0.188188 0.173263 -vt 0.187862 0.290744 -vt 0.187045 0.350935 -vt 0.169556 0.350164 -vt 0.173074 0.290555 -vt 0.169093 0.410760 -vt 0.169539 0.350497 -vt 0.182936 0.002420 -vt 0.185636 0.059963 -vt 0.171429 0.060361 -vt 0.168682 0.009053 -vt 0.188834 0.231566 -vt 0.171901 0.231236 -vt 0.173902 0.173419 -vt 0.171377 0.116200 -vt 0.171433 0.060647 -vt 0.173086 0.290248 -vt 0.171893 0.231559 -vt 0.156248 0.230716 -vt 0.156867 0.289505 -vt 0.136903 0.289718 -vt 0.137407 0.231137 -vt 0.156897 0.060302 -vt 0.156891 0.004402 -vt 0.151894 0.409417 -vt 0.153421 0.349240 -vt 0.147572 0.472946 -vt 0.138952 0.173384 -vt 0.121938 0.230032 -vt 0.123479 0.172751 -vt 0.138214 0.116866 -vt 0.138770 0.061156 -vt 0.138353 0.003891 -vt 0.132267 0.409089 -vt 0.134072 0.349295 -vt 0.126815 0.471069 -vt 0.118159 0.348200 -vt 0.116549 0.407518 -vt 0.099353 0.406365 -vt 0.101957 0.346731 -vt 0.123291 0.116133 -vt 0.123243 0.060809 -vt 0.114079 0.464786 -vt 0.116522 0.407844 -vt 0.120912 0.288422 -vt 0.121921 0.230342 -vt 0.123493 0.172442 -vt 0.123281 0.116431 -vt 0.123249 0.060512 -vt 0.123844 0.009530 -vt 0.118183 0.347881 -vt 0.120892 0.288742 -vt 0.106188 0.229161 -vt 0.104711 0.287384 -vt 0.088322 0.287014 -vt 0.090113 0.228932 -vt 0.107837 0.171744 -vt 0.108130 0.115645 -vt 0.108841 0.060451 -vt 0.096873 0.470749 -vt 0.108910 0.003319 -vt 0.083013 0.405933 -vt 0.079907 0.469925 -vt 0.052378 0.462912 -vt 0.054935 0.410246 -vt 0.092029 0.171671 -vt 0.092656 0.115769 -vt 0.093106 0.060660 -vt 0.092149 0.003387 -vt 0.085408 0.346282 -vt 0.062313 0.290993 -vt 0.059914 0.339771 -vt 0.036698 0.331221 -vt 0.038369 0.297224 -vt 0.063245 0.281096 -vt 0.064719 0.233294 -vt 0.067796 0.166452 -vt 0.068312 0.120444 -vt 0.068137 0.056008 -vt 0.067350 0.008871 -vt 0.057308 0.399614 -vt 0.059278 0.350520 -vt 0.065403 0.223033 -vt 0.066980 0.175906 -vt 0.068752 0.110697 -vt 0.069122 0.065341 -vt 0.041387 0.239824 -vt 0.040360 0.273141 -vt 0.028428 0.270971 -vt 0.029344 0.241254 -vt 0.042861 0.215130 -vt 0.043960 0.182284 -vt 0.046882 0.103646 -vt 0.047140 0.072034 -vt 0.027306 0.453697 -vt 0.029088 0.416990 -vt 0.045633 0.159231 -vt 0.045993 0.127165 -vt 0.045231 0.049246 -vt 0.044683 0.016394 -vt 0.033874 0.391223 -vt 0.035247 0.357006 -vt 0.032082 0.183664 -vt 0.031102 0.212960 -vt 0.026194 0.210732 -vt 0.027037 0.185558 -vt 0.034115 0.157369 -vt 0.034435 0.128769 -vt 0.033381 0.047668 -vt 0.032891 0.018366 -vt 0.021636 0.388880 -vt 0.022861 0.358361 -vt 0.024556 0.328782 -vt 0.026047 0.298459 -vt 0.035522 0.101845 -vt 0.035752 0.073650 -vt 0.014195 0.451072 -vt 0.015784 0.418332 -vt 0.017591 0.360300 -vt 0.016539 0.386525 -vt 0.008490 0.386202 -vt 0.009543 0.359977 -vt 0.030749 0.099822 -vt 0.030947 0.075594 -vt 0.008745 0.448499 -vt 0.010111 0.420366 -vt 0.023445 0.268724 -vt 0.024232 0.243190 -vt 0.029279 0.155303 -vt 0.029555 0.130726 -vt 0.028369 0.045690 -vt 0.027949 0.020511 -vt 0.019510 0.326396 -vt 0.020791 0.300340 -vt 0.363665 0.147342 -vt 0.390456 0.147342 -vt 0.409400 0.166287 -vt 0.409400 0.193078 -vt 0.390456 0.212022 -vt 0.363664 0.212022 -vt 0.344720 0.193078 -vt 0.344720 0.166286 -vt 0.011513 0.326003 -vt 0.012794 0.299946 -vt 0.018468 0.210474 -vt 0.019311 0.185300 -vt 0.023313 0.099761 -vt 0.023511 0.075533 -vt 0.000111 0.448080 -vt 0.001477 0.419947 -vt 0.015608 0.268483 -vt 0.016395 0.242948 -vt 0.021737 0.155218 -vt 0.022012 0.130642 -vt 0.020642 0.045819 -vt 0.020221 0.020640 -vt 0.241179 0.291205 -vt 0.241048 0.352210 -vt 0.241424 0.231328 -vt 0.239656 0.172428 -vt 0.238302 0.114877 -vt 0.236112 0.057792 -vt 0.234041 0.000494 -vt 0.239378 0.414394 -vt 0.236869 0.477863 -vt 0.344164 0.183645 -vt 0.343181 0.122473 -vt 0.344498 0.244994 -vt 0.344304 0.306406 -vt 0.343563 0.367674 -vt 0.342352 0.428813 -vt 0.340421 0.489783 -vt 0.342493 0.061278 -vt 0.341044 0.000111 -vt 0.248540 0.352310 -vt 0.247025 0.414653 -vt 0.518660 0.274425 -vt 0.518660 0.335581 -vt 0.510669 0.338880 -vt 0.510669 0.271126 -vt 0.618935 0.542365 -vt 0.618935 0.562130 -vt 0.555443 0.562130 -vt 0.555443 0.542365 -vt 0.518975 0.265234 -vt 0.518996 0.204078 -vt 0.526092 0.201151 -vt 0.526069 0.268165 -vt 0.244474 0.478305 -vt 0.491952 0.065734 -vt 0.491951 0.002242 -vt 0.497138 0.000111 -vt 0.497138 0.067865 -vt 0.491951 0.562130 -vt 0.491951 0.542365 -vt 0.518929 0.399261 -vt 0.518950 0.338104 -vt 0.526046 0.335178 -vt 0.526022 0.402192 -vt 0.240901 0.000111 -vt 0.243075 0.057522 -vt 0.518660 0.409933 -vt 0.518660 0.471090 -vt 0.510668 0.474388 -vt 0.510668 0.406634 -vt 0.999889 0.542365 -vt 0.999889 0.562130 -vt 0.936397 0.562130 -vt 0.936397 0.542365 -vt 0.543764 0.202918 -vt 0.543742 0.266410 -vt 0.539451 0.268169 -vt 0.539474 0.201156 -vt 0.245271 0.114659 -vt 0.518659 0.003410 -vt 0.518659 0.064565 -vt 0.510668 0.067865 -vt 0.510667 0.000111 -vt 0.872904 0.562130 -vt 0.872904 0.542365 -vt 0.518882 0.533287 -vt 0.518903 0.472131 -vt 0.525999 0.469205 -vt 0.525976 0.536218 -vt 0.246721 0.172240 -vt 0.491952 0.268995 -vt 0.491952 0.205503 -vt 0.497139 0.203372 -vt 0.497139 0.271126 -vt 0.809412 0.562130 -vt 0.809412 0.542365 -vt 0.543718 0.336945 -vt 0.543696 0.400437 -vt 0.539405 0.402196 -vt 0.539428 0.335183 -vt 0.248540 0.231225 -vt 0.491952 0.404503 -vt 0.491952 0.341011 -vt 0.497139 0.338880 -vt 0.497138 0.406634 -vt 0.745919 0.562130 -vt 0.745919 0.542365 -vt 0.519021 0.131207 -vt 0.519042 0.070051 -vt 0.526138 0.067125 -vt 0.526115 0.134138 -vt 0.248518 0.291219 -vt 0.518660 0.206671 -vt 0.518660 0.267827 -vt 0.510668 0.203372 -vt 0.682427 0.562130 -vt 0.682427 0.542365 -vt 0.543671 0.470972 -vt 0.543649 0.534464 -vt 0.539358 0.536223 -vt 0.539381 0.469210 -vt 0.491951 0.540012 -vt 0.491952 0.476519 -vt 0.497138 0.474388 -vt 0.497138 0.542143 -vt 0.543810 0.068891 -vt 0.543788 0.132383 -vt 0.539497 0.134142 -vt 0.539520 0.067129 -vt 0.526161 0.000111 -vt 0.539543 0.000116 -vt 0.543833 0.001878 -vt 0.543811 0.065370 -vt 0.543695 0.403959 -vt 0.543672 0.467451 -vt 0.519044 0.064193 -vt 0.519065 0.003037 -vt 0.543741 0.269931 -vt 0.543719 0.333424 -vt 0.518906 0.466274 -vt 0.518927 0.405118 -vt 0.543787 0.135905 -vt 0.543765 0.199397 -vt 0.518952 0.332247 -vt 0.518973 0.271091 -vt 0.518998 0.198220 -vt 0.519019 0.137064 -vt 0.510668 0.135618 -vt 0.497138 0.135618 -vt 0.510668 0.542143 -vt 0.491952 0.472258 -vt 0.491952 0.408765 -vt 0.518660 0.138917 -vt 0.518660 0.200073 -vt 0.491952 0.336749 -vt 0.491952 0.273257 -vt 0.491952 0.201241 -vt 0.491952 0.137749 -vt 0.518660 0.071163 -vt 0.518660 0.132319 -vt 0.518660 0.477687 -vt 0.518660 0.538844 -vt 0.491952 0.133487 -vt 0.491952 0.069996 -vt 0.518660 0.342179 -vt 0.518660 0.403335 -vn 0.0019 -0.3851 -0.9229 -vn 0.0000 -0.9239 -0.3827 -vn 0.0000 -0.9239 0.3827 -vn 0.0000 -0.3827 0.9239 -vn 0.0000 0.3827 0.9239 -vn 0.0000 0.9239 0.3827 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.9239 -0.3827 -vn 0.0019 0.3851 -0.9229 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -1.0000 -0.0000 +vn -0.7903 0.0000 -0.6128 +vn 0.0000 0.0000 1.0000 +vn -0.7903 0.0000 0.6127 +vn -0.9545 -0.2981 -0.0000 +vn -0.9546 0.2980 0.0000 +vn 0.9792 0.2029 0.0000 +vn 0.0101 0.0000 0.9999 +vn 0.8891 0.0000 -0.4576 +vn 0.8892 0.0000 0.4576 +vn 0.9792 -0.2030 -0.0000 +vn 0.0423 -0.9991 0.0000 +vn 0.0078 1.0000 0.0000 +vn 0.0101 0.0000 -0.9999 +vn -0.7409 -0.6716 0.0000 +vn -0.7903 0.0000 -0.6127 +vn -0.9546 -0.2980 0.0000 +vn 0.9792 0.2030 0.0000 +vn 0.8891 0.0000 0.4576 +vn 0.8892 0.0000 -0.4576 +vn -0.4347 -0.3446 0.8320 +vn -0.4347 0.8320 -0.3446 +vn -0.4347 -0.8320 -0.3446 +vn -0.4347 0.3446 0.8320 +vn -0.4347 0.3446 -0.8320 +vn -0.4347 -0.3446 -0.8320 +vn -0.4347 -0.8320 0.3446 +vn -0.4347 0.8320 0.3446 +vn 0.3827 0.9239 0.0000 +vn 0.9239 0.3827 0.0000 +vn 0.9239 -0.3827 -0.0000 +vn 0.3827 -0.9239 -0.0000 +vn -0.3827 -0.9239 -0.0000 +vn -0.9239 -0.3827 -0.0000 +vn -0.9239 0.3827 0.0000 +vn -0.3827 0.9239 0.0000 +vn -0.8937 -0.4486 0.0000 +vn 0.0000 -0.3562 -0.9344 +vn -0.1012 -0.3652 0.9254 +vn 0.4263 -0.2762 0.8614 +vn 0.8392 -0.5438 0.0000 +vn -0.2672 -0.9636 0.0000 +vn -0.9926 -0.1214 0.0000 +vn 0.0037 1.0000 0.0000 +vn -0.1012 -0.3652 -0.9254 +vn 0.4263 -0.2762 -0.8614 +vn 0.0000 -0.3562 0.9344 +vn -0.0013 -0.3562 -0.9344 +vn -0.5737 -0.2880 -0.7667 +vn -0.5737 -0.2880 0.7667 +vn 0.8524 -0.5228 0.0000 +vn 0.5062 -0.3105 0.8046 +vn 0.5044 -0.3120 0.8051 +vn -0.0013 -0.3562 0.9344 +vn -0.0037 -1.0000 0.0000 +vn 1.0000 -0.0009 -0.0023 +vn 1.0000 -0.0023 -0.0008 +vn 1.0000 -0.0093 -0.0016 +vn 1.0000 -0.0074 0.0000 +vn 1.0000 -0.0072 -0.0024 +vn 0.5062 -0.3105 -0.8046 +vn 0.0009 0.0023 1.0000 +vn -0.0019 0.0015 1.0000 +vn 0.0020 -0.0014 -1.0000 +vn 0.0020 0.0015 -1.0000 +vn -0.0480 -0.5123 0.8575 +vn 0.0000 0.5189 0.8549 +vn -0.0444 -0.5183 -0.8540 +vn 0.0000 0.5189 -0.8549 +vn 0.4606 -0.4605 0.7588 +vn 0.4606 0.4606 0.7588 +vn 0.4606 -0.4605 -0.7588 +vn 0.4606 0.4606 -0.7588 +vn -0.2276 -0.4268 0.8752 +vn -0.0458 0.4996 0.8650 +vn -0.2050 -0.5011 -0.8407 +vn -0.0470 0.5125 -0.8574 +vn -0.7527 -0.3520 0.5563 +vn -0.6638 0.5609 0.4947 +vn -0.7527 -0.3520 -0.5563 +vn -0.7340 0.3556 -0.5787 +vn -0.0854 -0.9963 -0.0000 +vn 0.0000 -0.5188 -0.8549 +vn 0.5189 0.0000 -0.8549 +vn 0.7071 -0.7071 -0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.5189 0.0000 0.8549 +vn 0.0000 -0.5188 0.8549 +vn -0.3786 -0.9256 -0.0000 +vn -0.0584 0.9983 0.0000 +vn -0.0883 -0.5113 0.8549 +vn -0.0883 -0.5113 -0.8549 +vn -0.9058 -0.4236 -0.0000 +vn -0.7633 0.0000 0.6461 +vn -0.7634 0.6451 0.0329 +vn -0.7633 0.0000 -0.6461 +vn -0.1702 -0.9854 -0.0000 +vn 0.0000 -0.2599 0.9656 +vn 0.0000 -0.2599 -0.9656 +vn -0.7300 -0.6835 -0.0000 +vn 0.7300 -0.6835 -0.0000 +vn 0.9483 -0.3175 0.0000 +vn -0.9482 0.3175 0.0075 +vn -0.0235 0.9997 0.0002 +vn -0.0233 0.9997 0.0014 +vn -0.0222 0.9998 0.0003 +vn 0.7875 0.6163 0.0000 +vn -0.7875 -0.6163 0.0062 +vn 0.8412 -0.5408 0.0000 +vn -0.5133 -0.8582 0.0037 +vn -0.5122 -0.8589 0.0040 +vn -0.5122 -0.8588 0.0053 +vn -0.0158 0.0101 -0.9998 +vn -0.0145 0.0101 -0.9998 +vn 0.0159 -0.0095 0.9998 +vn 0.0152 -0.0106 0.9998 +vn 0.0171 -0.0100 0.9998 +vn 0.0225 -0.9997 -0.0002 +vn 0.0238 -0.9997 -0.0002 +vn -0.8588 0.5123 0.0068 +vn -0.0128 0.0070 -0.9999 +vn -0.0116 0.0069 -0.9999 +vn 0.5115 0.8593 -0.0050 +vn 0.5122 0.8589 -0.0040 +vn 0.0115 -0.0056 0.9999 +vn 0.0116 -0.0069 0.9999 +vn 0.9772 -0.2122 0.0000 +vn 0.8316 0.5554 0.0000 +vn 0.9921 0.1251 0.0000 +vn -0.9251 -0.3798 0.0000 +vn 0.6540 -0.7565 0.0000 +vn -0.5188 -0.8549 0.0000 +vn -0.9946 -0.1041 0.0000 +vn 0.0004 1.0000 0.0000 +vn 0.8662 0.4997 0.0000 +vn 0.7825 0.4514 0.4290 +vn -0.8662 -0.4997 0.0000 +vn -0.0004 -1.0000 0.0000 +vn -0.8658 0.5003 0.0000 +vn 0.0003 0.9033 0.4290 +vn -0.7825 -0.4514 0.4290 +vn 0.7821 -0.4519 0.4290 +vn -0.7821 0.4519 0.4290 +vn -0.0003 -0.9033 0.4290 +vn 0.0003 0.9326 0.3608 +vn -0.8079 -0.4660 0.3608 +vn 0.8075 -0.4666 0.3608 +vn -0.8075 0.4666 0.3608 +vn -0.0003 -0.9326 0.3609 +vn 0.8079 0.4660 0.3608 +vn 0.8658 -0.5003 0.0000 +vn 0.7825 0.4514 -0.4290 +vn 0.0003 0.9033 -0.4290 +vn -0.7825 -0.4514 -0.4290 +vn 0.7821 -0.4519 -0.4290 +vn -0.7821 0.4519 -0.4290 +vn -0.0003 -0.9033 -0.4290 +vn 0.0003 0.9326 -0.3608 +vn -0.8079 -0.4660 -0.3608 +vn 0.8075 -0.4666 -0.3608 +vn -0.8075 0.4666 -0.3608 +vn -0.0003 -0.9326 -0.3608 +vn 0.8079 0.4660 -0.3608 +vn 0.4472 -0.4390 -0.7793 +vn 0.4472 0.4390 0.7793 +vn -0.4472 0.4390 0.7793 +vn -0.4472 -0.4390 -0.7793 +vn 0.4472 0.4554 -0.7698 +vn 0.4472 -0.4554 0.7698 +vn -0.4472 -0.4554 0.7698 +vn -0.4472 0.4554 -0.7698 +vn 0.4472 0.8944 0.0095 +vn 0.4472 -0.8944 -0.0095 +vn -0.4472 -0.8944 -0.0095 +vn -0.4472 0.8944 0.0095 +vn 0.8637 0.5040 -0.0008 +vn 0.8628 0.5055 0.0000 +vn 0.8618 0.5073 0.0000 +vn 0.8692 -0.4944 0.0000 +vn 0.0064 -1.0000 0.0000 +vn -0.8628 -0.5056 0.0000 +vn -0.8692 0.4944 0.0000 +vn -0.8700 0.4931 0.0013 +vn -0.9999 -0.0128 -0.0020 +vn -0.9999 -0.0129 0.0000 +vn -0.9999 -0.0119 0.0017 +vn -0.0052 1.0000 -0.0016 +vn -0.0063 1.0000 0.0020 +vn -0.0044 1.0000 0.0000 +vn -0.0106 0.9999 0.0000 +vn 0.0018 0.0009 -1.0000 +vn -0.0014 0.0014 -1.0000 +vn 0.9999 0.0130 0.0020 +vn 0.9999 0.0129 0.0000 +vn 0.9999 0.0129 -0.0020 +vn 0.0014 0.0015 1.0000 +vn 0.4867 -0.1145 -0.8660 +vn 0.9734 -0.2290 0.0000 +vn 0.4867 -0.1145 0.8660 +vn -0.4867 0.1145 0.8660 +vn 0.9982 0.0594 0.0000 +vn -0.9734 0.2290 0.0000 +vn -0.4867 0.1145 -0.8660 +vn 0.4037 -0.3811 0.8318 +vn 0.2290 0.9734 0.0000 +vn -0.8670 0.4982 0.0000 +vn 0.5319 0.1691 -0.8297 +vn 0.5319 0.1691 0.8297 +vn -0.4007 0.3885 -0.8297 +vn -0.4007 0.3885 0.8297 +vn -0.2290 -0.9734 0.0000 +vn -0.5312 -0.1612 -0.8317 +vn -0.5312 -0.1612 0.8318 +vn 0.8711 -0.4911 0.0000 +vn -0.9987 -0.0512 0.0000 +vn 0.4037 -0.3811 -0.8318 +vn -0.5339 -0.1952 -0.8227 +vn -0.5339 -0.1952 0.8227 +vn 0.8533 -0.5215 0.0000 +vn -0.9963 -0.0864 0.0000 +vn 0.3909 -0.4127 0.8227 +vn 0.3909 -0.4127 -0.8227 +vn -0.7037 0.7104 -0.0137 +vn -0.0946 -0.0018 -0.9955 +vn 0.1755 0.9845 0.0000 +vn -0.5947 0.1299 0.7934 +vn -0.2277 -0.9737 0.0000 +vn 0.9224 0.3863 0.0000 +vn -0.3526 0.9358 0.0000 +vn 0.1465 0.0029 -0.9892 +vn 0.1465 0.0029 0.9892 +vn -0.1755 -0.9845 0.0000 +vn 0.7339 0.0143 0.6791 +vn 0.4147 0.0081 -0.9099 +vn 0.4147 0.0081 0.9099 +vn 0.3526 -0.9358 0.0000 +vn 0.9998 0.0195 0.0000 +vn 0.8889 -0.4581 0.0000 +vn -0.5700 0.8216 0.0000 +vn 0.7339 0.0143 -0.6791 +vn -0.2763 0.0326 -0.9605 +vn -0.7114 -0.7027 -0.0101 +vn -0.3230 0.0437 -0.9454 +vn -0.3328 0.0443 0.9420 +vn -0.9513 0.3072 -0.0249 +vn -0.6278 0.0742 0.7748 +vn -0.8793 0.4759 -0.0195 +vn -0.9921 -0.1238 -0.0203 +vn -0.9819 0.1873 -0.0273 +vn -0.9993 0.0260 -0.0253 +vn -0.5866 0.0662 -0.8072 +vn -0.4667 0.0527 0.8828 +vn 0.5257 0.8507 0.0000 +vn 0.4767 0.8791 0.0000 +vn 0.8418 0.5398 0.0000 +vn -0.0946 -0.0018 0.9955 +vn 0.0462 -0.0068 0.9989 +vn -0.0453 0.0051 0.9990 +vn -0.4274 0.1109 -0.8972 +vn -0.0453 0.0051 -0.9990 +vn 0.0462 -0.0068 -0.9989 +vn -0.6173 0.1367 -0.7748 +vn -0.5082 0.1382 -0.8501 +vn -0.6709 -0.7415 -0.0093 +vn 0.8774 0.4798 0.0000 +vn 0.9846 -0.1746 0.0000 +vn -0.4274 0.1109 0.8972 +vn -0.5082 0.1382 0.8501 +vn -0.5609 0.0000 0.8279 +vn 0.3824 -0.2113 -0.8995 +vn -0.0010 -0.0003 1.0000 +vn 0.3920 0.0000 -0.9200 +vn 0.0003 1.0000 -0.0010 +vn 0.0005 1.0000 -0.0009 +vn 0.3904 -0.0867 -0.9166 +vn 0.3902 -0.0862 -0.9167 +vn -0.5529 0.0976 0.8275 +vn 0.3824 -0.2113 0.8995 +vn -0.5529 0.0976 -0.8275 +vn 0.0004 -0.0004 1.0000 +vn -0.0005 -0.0002 -1.0000 +vn -0.5505 0.1181 0.8264 +vn 0.0003 0.0005 1.0000 +vn -0.6763 -0.7366 0.0000 +vn -0.5474 0.1418 -0.8247 +vn 0.3920 0.0000 0.9200 +vn 0.3917 -0.0010 0.9201 +vn -0.5609 -0.0000 -0.8279 +vn -0.9915 0.1302 0.0000 +vn -0.9778 0.2098 0.0000 +vn -0.9848 0.1738 0.0000 +vn -0.4100 0.9121 0.0000 +vn -0.5554 0.0729 0.8284 +vn 0.0262 -0.9997 0.0000 +vn 0.0797 0.9968 0.0000 +vn -0.5554 0.0729 -0.8284 +vn -0.5505 0.1181 -0.8264 +vn -0.1957 0.4353 0.8788 +vn 0.8752 -0.4837 -0.0000 +vn 0.9778 -0.2098 0.0000 +vn 0.9779 -0.2091 -0.0001 +vn 0.9765 -0.2154 0.0006 +vn 0.9765 -0.2157 0.0000 +vn 0.9765 -0.2157 0.0006 +vn 0.9969 0.0785 0.0000 +vn 0.3899 0.1121 0.9140 +vn 0.3903 -0.0837 0.9169 +vn 0.3906 -0.0843 0.9167 +vn -0.0053 -1.0000 0.0000 +vn 0.4679 0.0369 -0.8830 +vn 0.3903 -0.0837 -0.9169 +vn 0.3897 -0.0838 -0.9171 +vn 0.3903 -0.0832 -0.9169 +vn 0.0050 1.0000 -0.0007 +vn 0.0043 1.0000 0.0000 +vn 0.0035 1.0000 -0.0007 +vn 0.3898 -0.0859 0.9169 +vn 0.3902 -0.0862 0.9167 +vn 0.3906 -0.0858 0.9165 +vn 0.0000 -0.3875 -0.9219 +vn 0.0000 0.3875 -0.9219 vn -0.9726 -0.2149 -0.0890 vn 0.9560 0.1123 0.2711 vn -0.9726 0.0890 0.2149 @@ -2947,8 +4929,6 @@ vn 0.9560 -0.1123 0.2711 vn 0.9560 -0.2711 -0.1123 vn 0.9560 0.2711 -0.1123 vn -0.9615 0.2539 0.1052 -vn 0.0000 -0.3827 -0.9239 -vn 0.0000 0.3827 -0.9239 vn 0.9469 -0.1230 -0.2970 vn -0.9615 -0.1052 0.2539 vn -0.9615 -0.2539 -0.1052 @@ -2981,7 +4961,6 @@ vn -0.7567 0.6040 -0.2502 vn -0.7567 0.2502 0.6040 vn -0.7567 -0.6040 0.2502 vn -0.7567 -0.2502 -0.6040 -vn -1.0000 0.0000 0.0000 vn -0.3625 0.3567 0.8610 vn -0.3625 -0.8610 0.3567 vn -0.3625 -0.3567 -0.8610 @@ -2990,3507 +4969,3521 @@ vn -0.3625 0.8610 0.3567 vn -0.3625 -0.3567 0.8610 vn -0.3625 -0.8610 -0.3567 vn -0.0059 0.3827 -0.9239 -vn -0.0030 0.9249 -0.3803 -vn -0.0030 0.9249 0.3803 vn -0.0059 0.3827 0.9239 vn -0.0059 -0.3827 0.9239 -vn -0.0030 -0.9249 0.3803 -vn -0.0030 -0.9249 -0.3803 vn -0.0059 -0.3827 -0.9239 -vn 0.0169 0.3850 -0.9227 +vn 0.0341 0.3825 -0.9233 vn 0.0341 0.9233 -0.3825 vn 0.0341 0.9233 0.3825 vn 0.0341 0.3825 0.9233 vn 0.0341 -0.3825 0.9233 vn 0.0341 -0.9233 0.3825 vn 0.0341 -0.9233 -0.3825 -vn 0.0169 -0.3850 -0.9227 +vn 0.0341 -0.3825 -0.9233 vn -0.9966 -0.0761 -0.0315 vn 0.9966 -0.0762 0.0316 -vn -0.0215 -0.9247 -0.3802 +vn 0.0000 -0.9259 -0.3779 vn 0.9919 0.1173 0.0486 vn 0.9966 -0.0316 -0.0762 -vn -0.0215 -0.9247 0.3802 +vn 0.0000 -0.9259 0.3779 vn -0.9966 0.0315 -0.0761 vn -0.9907 -0.1260 0.0522 vn -0.9966 0.0761 0.0315 -vn 0.9966 0.0762 -0.0316 +vn 0.9966 0.0762 -0.0315 vn 0.9919 -0.1173 0.0486 vn -0.9907 -0.0522 -0.1260 -vn -0.0215 0.9247 0.3802 +vn 0.0000 0.9259 0.3779 vn 0.9919 -0.0486 -0.1173 vn 0.9966 0.0316 0.0762 -vn -0.0215 0.9247 -0.3802 +vn 0.0000 0.9259 -0.3779 vn -0.9966 -0.0761 0.0315 -vn -0.9907 0.1260 -0.0522 +vn -0.9907 0.1259 -0.0522 vn 0.9919 0.1173 -0.0486 vn -0.9907 0.0522 0.1260 -vn -0.9907 0.1260 0.0522 -vn -0.9907 0.0522 -0.1260 +vn -0.9907 0.1259 0.0522 +vn -0.9907 0.0522 -0.1259 vn 0.9966 0.0762 0.0316 -vn -0.9907 -0.1260 -0.0522 +vn -0.9907 -0.1259 -0.0522 vn 0.9966 0.0316 -0.0762 -vn -0.9907 -0.0522 0.1260 +vn -0.9907 -0.0522 0.1259 vn 0.9966 -0.0762 -0.0316 vn 0.9966 -0.0316 0.0762 vn 0.9919 0.0486 -0.1173 -vn -0.9966 -0.0315 0.0762 +vn -0.9966 -0.0316 0.0762 vn 0.9919 -0.1173 -0.0486 vn 0.9919 -0.0486 0.1173 -vn -0.9966 0.0315 0.0762 -vn -0.9966 0.0761 -0.0315 -vn 0.9919 0.0486 0.1173 +vn -0.9966 0.0315 0.0761 +vn -0.9966 0.0762 -0.0315 +vn 0.9919 0.0486 0.1174 vn -0.9966 -0.0315 -0.0761 -s off -f 549/1039/316 550/1040/316 551/1041/316 552/1042/316 -f 552/1042/317 551/1041/317 553/1043/317 554/1044/317 -f 554/1045/318 553/1046/318 555/1047/318 556/1048/318 -f 556/1048/319 555/1047/319 557/1049/319 558/1050/319 -f 558/1050/320 557/1049/320 559/1051/320 560/1052/320 -f 560/1052/321 559/1051/321 561/1053/321 562/1054/321 -f 551/1055/322 550/1056/322 563/1057/322 561/1058/322 559/1059/322 557/1060/322 555/1061/322 553/1062/322 -f 562/1054/323 561/1053/323 563/1063/323 564/1064/323 -f 564/1064/324 563/1063/324 550/1040/324 549/1039/324 -f 565/1065/325 566/1066/325 567/1067/325 568/1068/325 -f 569/1069/326 570/1070/326 571/1071/326 572/1072/326 -f 573/1073/327 574/1074/327 570/1070/327 569/1069/327 -f 575/1075/328 576/1076/328 577/1077/328 578/1078/328 -f 576/1076/329 565/1065/329 568/1079/329 577/1080/329 -f 566/1081/330 579/1082/330 580/1083/330 567/1084/330 -f 574/1074/331 581/1085/331 582/1086/331 570/1087/331 -f 579/1082/332 573/1073/332 569/1088/332 580/1089/332 -f 581/1085/333 575/1075/333 578/1090/333 582/1091/333 -f 583/1092/323 584/1093/323 585/1094/323 586/1095/323 -f 567/1084/334 580/1083/334 587/1096/334 588/1097/334 -f 577/1080/335 568/1079/335 589/1098/335 590/1099/335 -f 578/1078/336 577/1077/336 590/1099/336 584/1093/336 -f 570/1087/337 582/1086/337 583/1092/337 571/1071/337 -f 580/1089/338 569/1088/338 572/1072/338 587/1096/338 -f 568/1068/339 567/1067/339 588/1100/339 589/1098/339 -f 582/1091/340 578/1090/340 584/1093/340 583/1092/340 -f 591/1101/341 586/1095/341 592/1102/341 593/1103/341 -f 572/1072/320 571/1071/320 591/1101/320 594/1104/320 -f 588/1097/318 587/1096/318 595/1105/318 596/1106/318 -f 590/1099/342 589/1098/342 597/1107/342 598/1108/342 -f 584/1093/343 590/1099/343 598/1108/343 585/1094/343 -f 571/1071/321 583/1092/321 586/1095/321 591/1101/321 -f 587/1096/319 572/1072/319 594/1104/319 595/1105/319 -f 589/1098/317 588/1100/317 596/1109/317 597/1107/317 -f 599/1110/344 600/1111/344 601/1112/344 602/1113/344 -f 595/1105/345 594/1104/345 603/1114/345 604/1115/345 -f 597/1107/346 596/1109/346 605/1116/346 600/1117/346 -f 586/1095/347 585/1094/347 606/1118/347 592/1119/347 -f 594/1104/348 591/1101/348 593/1120/348 603/1121/348 -f 596/1106/349 595/1105/349 604/1122/349 605/1123/349 -f 598/1108/350 597/1107/350 600/1111/350 599/1110/350 -f 585/1094/351 598/1108/351 599/1124/351 606/1125/351 -f 607/1126/323 608/1127/323 609/1128/323 610/1129/323 -f 606/1125/352 599/1124/352 602/1113/352 608/1127/352 -f 593/1103/353 592/1102/353 607/1126/353 611/1130/353 -f 604/1115/354 603/1114/354 612/1131/354 613/1132/354 -f 600/1117/355 605/1116/355 614/1133/355 601/1112/355 -f 592/1119/356 606/1118/356 608/1127/356 607/1126/356 -f 603/1121/357 593/1120/357 611/1130/357 612/1131/357 -f 605/1123/358 604/1122/358 613/1132/358 614/1134/358 -f 615/1135/359 616/1136/359 617/1137/359 618/1138/359 -f 612/1131/320 611/1130/320 619/1139/320 620/1140/320 -f 614/1134/318 613/1132/318 621/1141/318 616/1142/318 -f 602/1113/342 601/1112/342 615/1135/342 622/1143/342 -f 608/1127/343 602/1113/343 622/1143/343 609/1128/343 -f 611/1130/321 607/1126/321 610/1129/321 619/1139/321 -f 613/1132/319 612/1131/319 620/1140/319 621/1141/319 -f 601/1112/317 614/1133/317 616/1136/317 615/1135/317 -f 623/1144/360 624/1145/360 625/1146/360 626/1147/360 -f 610/1129/361 609/1128/361 623/1148/361 627/1149/361 -f 620/1140/362 619/1139/362 628/1150/362 629/1151/362 -f 616/1142/363 621/1141/363 630/1152/363 617/1153/363 -f 622/1143/364 615/1135/364 618/1154/364 624/1155/364 -f 609/1128/365 622/1143/365 624/1145/365 623/1144/365 -f 619/1139/366 610/1129/366 627/1156/366 628/1157/366 -f 621/1141/367 620/1140/367 629/1158/367 630/1159/367 -f 631/1160/368 626/1161/368 632/1162/368 633/1163/368 -f 628/1157/369 627/1156/369 631/1164/369 634/1165/369 -f 630/1159/370 629/1158/370 635/1166/370 636/1167/370 -f 618/1138/371 617/1137/371 637/1168/371 638/1169/371 -f 627/1149/372 623/1148/372 626/1161/372 631/1160/372 -f 629/1151/373 628/1150/373 634/1170/373 635/1171/373 -f 617/1153/374 630/1152/374 636/1172/374 637/1173/374 -f 624/1155/375 618/1154/375 638/1174/375 625/1175/375 -f 639/1176/376 633/1177/376 640/1178/376 641/1179/376 -f 635/1171/377 634/1170/377 639/1180/377 642/1181/377 -f 637/1173/378 636/1172/378 643/1182/378 644/1183/378 -f 625/1175/379 638/1174/379 645/1184/379 646/1185/379 -f 626/1147/380 625/1146/380 646/1186/380 632/1187/380 -f 634/1165/381 631/1164/381 633/1177/381 639/1176/381 -f 636/1167/382 635/1166/382 642/1188/382 643/1189/382 -f 638/1169/383 637/1168/383 644/1190/383 645/1191/383 -f 647/1192/320 648/1193/320 649/1194/320 650/1195/320 -f 643/1189/376 642/1188/376 651/1196/376 652/1197/376 -f 645/1191/376 644/1190/376 653/1198/376 648/1199/376 -f 633/1163/376 632/1162/376 654/1200/376 640/1201/376 -f 642/1181/376 639/1180/376 641/1202/376 651/1203/376 -f 644/1183/376 643/1182/376 652/1204/376 653/1205/376 -f 646/1185/376 645/1184/376 648/1193/376 647/1192/376 -f 632/1187/376 646/1186/376 647/1206/376 654/1207/376 -f 650/1208/376 649/1209/376 655/1210/376 656/1211/376 657/1212/376 658/1213/376 659/1214/376 660/1215/376 -f 654/1207/319 647/1206/319 650/1216/319 660/1217/319 -f 641/1179/317 640/1178/317 659/1218/317 658/1219/317 -f 652/1197/343 651/1196/343 657/1220/343 656/1221/343 -f 648/1199/321 653/1198/321 655/1222/321 649/1223/321 -f 640/1201/318 654/1200/318 660/1224/318 659/1225/318 -f 651/1203/342 641/1202/342 658/1226/342 657/1227/342 -f 653/1205/323 652/1204/323 656/1228/323 655/1229/323 -f 575/1075/384 661/1230/384 662/1231/384 576/1076/384 -f 581/1085/385 663/1232/385 661/1230/385 575/1075/385 -f 574/1074/386 664/1233/386 663/1232/386 581/1085/386 -f 573/1073/387 665/1234/387 664/1233/387 574/1074/387 -f 579/1082/388 666/1235/388 665/1234/388 573/1073/388 -f 566/1081/389 667/1236/389 666/1235/389 579/1082/389 -f 565/1065/390 668/1237/390 667/1238/390 566/1066/390 -f 576/1076/391 662/1231/391 668/1237/391 565/1065/391 -f 669/1239/392 564/1064/392 549/1039/392 670/1240/392 -f 671/1241/393 562/1054/393 564/1064/393 669/1239/393 -f 672/1242/394 560/1052/394 562/1054/394 671/1241/394 -f 673/1243/395 558/1050/395 560/1052/395 672/1242/395 -f 674/1244/396 556/1048/396 558/1050/396 673/1243/396 -f 675/1245/397 554/1045/397 556/1048/397 674/1244/397 -f 676/1246/398 552/1042/398 554/1044/398 675/1247/398 -f 670/1240/399 549/1039/399 552/1042/399 676/1246/399 -f 662/1231/342 677/1248/342 678/1249/342 668/1237/342 -f 679/1250/400 680/1251/400 681/1252/400 682/1253/400 -f 683/1254/342 684/1255/342 685/1256/342 686/1257/342 -f 671/1258/401 669/1259/401 687/1260/401 688/1261/401 -f 668/1237/402 678/1249/402 689/1262/402 667/1238/402 -f 686/1263/403 690/1264/403 691/1265/403 692/1266/403 -f 686/1257/317 685/1256/317 693/1267/317 690/1268/317 -f 673/1269/404 672/1270/404 694/1271/404 695/1272/404 -f 667/1236/405 689/1273/405 696/1274/405 666/1235/405 -f 697/1275/406 696/1276/406 698/1277/406 699/1278/406 -f 690/1279/318 693/1280/318 700/1281/318 701/1282/318 -f 702/1283/407 703/1284/407 704/1285/407 705/1286/407 -f 666/1235/319 696/1274/319 697/1287/319 665/1234/319 -f 689/1288/408 678/1289/408 706/1290/408 707/1291/408 -f 701/1282/319 700/1281/319 708/1292/319 709/1293/319 -f 675/1294/409 674/1295/409 710/1296/409 711/1297/409 -f 665/1234/320 697/1287/320 680/1298/320 664/1233/320 -f 712/1299/410 713/1300/410 714/1301/410 715/1302/410 -f 709/1293/320 708/1292/320 716/1303/320 717/1304/320 -f 716/1305/411 708/1306/411 718/1307/411 719/1308/411 -f 664/1233/412 680/1298/412 679/1309/412 663/1232/412 -f 709/1310/413 717/1311/413 720/1312/413 721/1313/413 -f 717/1304/321 716/1303/321 703/1314/321 712/1315/321 -f 670/1316/414 676/1317/414 722/1318/414 723/1319/414 -f 663/1232/415 679/1309/415 724/1320/415 661/1230/415 -f 724/1321/416 679/1322/416 682/1253/416 725/1323/416 -f 712/1315/323 703/1314/323 702/1324/323 713/1325/323 -f 700/1326/417 693/1327/417 726/1328/417 727/1329/417 -f 661/1230/343 724/1320/343 677/1248/343 662/1231/343 -f 690/1330/418 701/1331/418 728/1332/418 691/1333/418 -f 713/1325/343 702/1324/343 684/1255/343 683/1254/343 -f 685/1334/419 684/1335/419 729/1336/419 730/1337/419 -f 729/1336/342 723/1319/342 722/1318/342 730/1337/342 -f 730/1337/317 722/1318/317 711/1338/317 726/1339/317 -f 726/1328/318 711/1297/318 710/1296/318 727/1329/318 -f 727/1329/319 710/1296/319 695/1272/319 718/1307/319 -f 718/1307/320 695/1272/320 694/1271/320 719/1308/320 -f 719/1308/321 694/1271/321 688/1261/321 704/1285/321 -f 704/1285/323 688/1261/323 687/1260/323 705/1286/323 -f 705/1286/343 687/1260/343 723/1319/343 729/1336/343 -f 693/1340/420 685/1341/420 730/1337/420 726/1339/420 -f 708/1342/421 700/1343/421 727/1329/421 718/1307/421 -f 676/1344/422 675/1345/422 711/1338/422 722/1318/422 -f 703/1346/423 716/1347/423 719/1308/423 704/1285/423 -f 674/1348/424 673/1349/424 695/1272/424 710/1296/424 -f 684/1350/425 702/1351/425 705/1286/425 729/1336/425 -f 672/1352/426 671/1353/426 688/1261/426 694/1271/426 -f 669/1354/427 670/1355/427 723/1319/427 687/1260/427 -f 731/1356/342 732/1357/342 692/1266/342 706/1290/342 -f 706/1290/317 692/1266/317 691/1265/317 707/1291/317 -f 707/1358/318 691/1333/318 728/1332/318 698/1277/318 -f 698/1277/319 728/1332/319 721/1313/319 699/1278/319 -f 699/1278/320 721/1313/320 720/1312/320 681/1252/320 -f 681/1252/321 720/1312/321 715/1302/321 682/1253/321 -f 682/1253/323 715/1302/323 714/1301/323 725/1323/323 -f 725/1323/343 714/1301/343 732/1357/343 731/1356/343 -f 701/1359/428 709/1360/428 721/1313/428 728/1332/428 -f 677/1361/429 724/1362/429 725/1323/429 731/1356/429 -f 717/1363/430 712/1364/430 715/1302/430 720/1312/430 -f 713/1365/431 683/1366/431 732/1357/431 714/1301/431 -f 678/1367/432 677/1368/432 731/1356/432 706/1290/432 -f 696/1369/433 689/1370/433 707/1358/433 698/1277/433 -f 683/1371/434 686/1372/434 692/1266/434 732/1357/434 -f 680/1373/435 697/1374/435 699/1278/435 681/1252/435 -o Grip_Cube.001 -v -1.325666 -0.019640 3.170554 -v -1.325666 0.137146 3.170554 -v -1.472478 0.148884 3.071087 -v -1.472478 -0.007902 3.071087 -v -1.325666 -0.019640 2.829446 -v -1.325666 0.137146 2.829446 -v -1.062875 0.137146 2.829446 -v -1.062875 -0.019640 2.829446 -v -1.130714 -0.142396 2.829446 -v -0.914155 -0.020276 2.892811 -v -0.981994 -0.143031 2.892811 -v -1.062875 -0.019640 3.170554 -v -1.062875 0.137146 3.170554 -v -0.914155 0.136510 2.892811 -v -1.259746 -0.728734 2.829446 -v -1.147611 -0.221161 2.829446 -v -0.998891 -0.221796 2.892811 -v -1.111026 -0.729370 2.892811 -v -1.346664 -0.179545 3.170554 -v -1.130714 -0.142396 3.170554 -v -1.346664 -0.179545 2.829446 -v -1.447785 -0.735647 3.170554 -v -1.363562 -0.258310 3.170554 -v -1.510373 -0.246572 3.071087 -v -1.594597 -0.723909 3.071087 -v -0.981994 -0.143031 3.107189 -v -0.914155 -0.020276 3.107189 -v -1.363562 -0.258310 2.829446 -v -1.447785 -0.735647 2.829446 -v -1.594597 -0.723909 2.928913 -v -1.510373 -0.246572 2.928913 -v -1.147611 -0.221161 3.170554 -v -1.259746 -0.728734 3.170554 -v -1.483874 -0.749924 3.170554 -v -1.219691 -0.868011 3.170554 -v -1.493475 -0.167807 3.071087 -v -1.483874 -0.751872 2.829446 -v -1.219691 -0.868011 2.829446 -v -0.914155 0.136510 3.107189 -v -1.472478 -0.007902 2.928913 -v -1.472478 0.148884 2.928913 -v -1.493475 -0.167807 2.928913 -v -1.630686 -0.740134 2.928913 -v -1.630686 -0.740134 3.071087 -v -0.998891 -0.221796 3.107189 -v -1.111026 -0.729370 3.107189 -v -1.100054 -0.868647 3.107189 -v -1.100054 -0.868647 2.892811 -vt 0.495816 0.528592 -vt 0.444632 0.528911 -vt 0.440297 0.471397 -vt 0.491177 0.470932 -vt 0.282573 0.528234 -vt 0.333716 0.528699 -vt 0.333553 0.614149 -vt 0.282755 0.613843 -vt 0.242508 0.592317 -vt 0.281795 0.666212 -vt 0.241263 0.645226 -vt 0.495309 0.614379 -vt 0.444469 0.614360 -vt 0.332850 0.666779 -vt 0.047162 0.550460 -vt 0.216648 0.586778 -vt 0.215631 0.639752 -vt 0.048294 0.604938 -vt 0.548343 0.521923 -vt 0.535717 0.592975 -vt 0.230173 0.521390 -vt 0.738670 0.486066 -vt 0.574234 0.516502 -vt 0.568535 0.459054 -vt 0.724885 0.427074 -vt 0.536722 0.646015 -vt 0.495988 0.666825 -vt 0.204360 0.515900 -vt 0.041140 0.485235 -vt 0.054329 0.426535 -vt 0.210200 0.458565 -vt 0.561660 0.587527 -vt 0.731929 0.551750 -vt 0.744574 0.473715 -vt 0.779174 0.567328 -vt 0.542981 0.464301 -vt 0.334470 0.132827 -vt 0.334470 0.038990 -vt 0.445386 0.038990 -vt 0.445387 0.133084 -vt 0.000088 0.565542 -vt 0.034734 0.473006 -vt 0.444846 0.667087 -vt 0.287393 0.470661 -vt 0.338208 0.471269 -vt 0.412478 0.429978 -vt 0.412380 0.480959 -vt 0.366151 0.480870 -vt 0.366248 0.429890 -vt 0.366348 0.377448 -vt 0.412578 0.377536 -vt 0.366398 0.351254 -vt 0.412628 0.351342 -vt 0.366699 0.193644 -vt 0.412928 0.193732 -vt 0.366723 0.180778 -vt 0.412953 0.180866 -vt 0.235698 0.463880 -vt 0.047562 0.415228 -vt 0.731595 0.415639 -vt 0.353968 0.713528 -vt 0.354065 0.662547 -vt 0.423773 0.662680 -vt 0.423676 0.713661 -vt 0.423589 0.759266 -vt 0.353881 0.759133 -vt 0.423539 0.785460 -vt 0.353831 0.785327 -vt 0.423216 0.954484 -vt 0.353508 0.954351 -vt 0.423129 0.999912 -vt 0.353422 0.999779 -vt 0.776716 0.612484 -vt 0.730434 0.606501 -vt 0.562445 0.640646 -vt 0.355074 0.000088 -vt 0.424782 0.000088 -vt 0.002168 0.610517 -vn -0.5609 0.0000 0.8279 -vn 0.0000 0.0000 -1.0000 -vn 0.0009 0.0005 -1.0000 -vn 0.3824 -0.2113 -0.8995 -vn 0.0000 0.0000 1.0000 -vn -0.0010 0.0003 1.0000 -vn 0.3920 0.0000 -0.9200 -vn 0.3915 0.0009 -0.9202 -vn 0.0005 1.0000 -0.0009 -vn 0.0000 1.0000 0.0000 -vn 0.0003 1.0000 -0.0010 -vn 0.3902 -0.0862 -0.9167 -vn 0.3907 -0.0861 -0.9165 -vn 0.3901 -0.0868 -0.9167 -vn -0.5529 0.0976 0.8275 -vn 0.3824 -0.2113 0.8995 -vn -0.5529 0.0976 -0.8275 -vn 0.0005 -0.0003 1.0000 -vn -0.0005 -0.0002 -1.0000 -vn -0.5505 0.1181 0.8264 -vn 0.0003 0.0005 1.0000 -vn 0.0000 -0.0006 -1.0000 -vn -0.4053 -0.9142 0.0026 -vn 0.3917 -0.0010 0.9201 -vn 0.3920 0.0000 0.9200 -vn -0.5609 0.0000 -0.8279 -vn -1.0000 0.0000 0.0000 -vn -0.9915 0.1302 0.0000 -vn -0.9778 0.2098 0.0000 -vn -0.9848 0.1738 0.0000 -vn -0.4100 0.9121 0.0000 -vn -0.5554 0.0729 0.8284 -vn -0.0731 -0.9973 0.0040 -vn 0.0797 0.9968 0.0000 -vn -0.5554 0.0729 -0.8284 -vn -0.3339 0.7427 -0.5805 -vn -0.5505 0.1181 -0.8264 -vn -0.3228 0.7637 0.5590 -vn 1.0000 0.0000 0.0000 -vn 0.8752 -0.4837 -0.0000 -vn 0.9778 -0.2098 -0.0000 -vn 0.9777 -0.2102 0.0004 -vn 0.9779 -0.2092 -0.0001 -vn 0.9765 -0.2157 0.0006 -vn 0.9765 -0.2154 0.0004 -vn 0.9765 -0.2157 0.0000 -vn 0.9969 0.0785 0.0000 -vn 0.4260 0.0780 0.9013 -vn 0.3903 -0.0837 0.9169 -vn 0.3899 -0.0842 0.9170 -vn 0.3907 -0.0841 0.9167 -vn -0.0053 -1.0000 0.0000 -vn 0.4260 0.0780 -0.9013 -vn 0.3903 -0.0832 -0.9169 -vn 0.3903 -0.0837 -0.9169 -vn 0.3898 -0.0838 -0.9171 -vn 0.0035 1.0000 -0.0006 -vn 0.0053 1.0000 -0.0001 -vn 0.0043 1.0000 0.0000 -vn 0.3898 -0.0858 0.9169 -vn 0.3902 -0.0862 0.9167 -vn 0.3906 -0.0858 0.9166 -s off -f 733/1375/436 734/1376/436 735/1377/436 736/1378/436 -f 737/1379/437 738/1380/437 739/1381/438 740/1382/437 -f 741/1383/439 740/1382/439 742/1384/439 743/1385/439 -f 744/1386/440 745/1387/441 734/1376/440 733/1375/440 -f 740/1382/442 739/1381/443 746/1388/442 742/1384/442 -f 739/1381/444 738/1380/445 734/1376/445 745/1387/446 -f 747/1389/447 748/1390/448 749/1391/449 750/1392/447 -f 744/1386/440 733/1375/440 751/1393/440 752/1394/440 -f 737/1379/437 740/1382/437 741/1383/437 753/1395/437 -f 754/1396/450 755/1397/450 756/1398/450 757/1399/450 -f 744/1386/451 752/1394/451 758/1400/451 759/1401/451 -f 760/1402/452 761/1403/452 762/1404/452 763/1405/452 -f 752/1394/440 751/1393/440 755/1397/440 764/1406/453 -f 753/1395/437 741/1383/437 748/1390/454 760/1402/437 -f 765/1407/440 754/1396/440 766/1408/440 767/1409/440 -f 755/1397/455 751/1393/455 768/1410/455 756/1398/455 -f 764/1406/456 755/1397/440 754/1396/440 765/1407/440 -f 760/1402/437 748/1390/457 747/1389/437 761/1403/437 -f 769/1411/458 770/1412/458 767/1413/458 766/1414/458 -f 761/1403/437 747/1389/437 770/1415/437 769/1416/437 -f 745/1387/459 744/1386/460 759/1401/460 771/1417/460 -f 738/1380/461 737/1379/461 772/1418/461 773/1419/461 -f 736/1420/462 735/1421/462 773/1422/462 772/1423/462 -f 736/1420/463 772/1423/463 774/1424/463 768/1425/463 -f 768/1425/464 774/1424/464 763/1426/464 756/1427/464 -f 756/1427/465 763/1426/465 762/1428/465 757/1429/465 -f 757/1429/466 762/1428/466 775/1430/466 776/1431/466 -f 751/1393/467 733/1375/467 736/1378/467 768/1410/467 -f 769/1411/468 766/1414/468 776/1431/468 775/1430/468 -f 734/1376/469 738/1380/469 773/1422/469 735/1421/469 -f 737/1379/470 753/1395/470 774/1432/470 772/1418/470 -f 761/1403/471 769/1416/471 775/1433/471 762/1404/471 -f 753/1395/472 760/1402/472 763/1405/472 774/1432/472 -f 766/1408/473 754/1396/473 757/1399/473 776/1434/473 -f 742/1435/474 746/1436/474 771/1437/474 759/1438/474 -f 742/1435/475 759/1438/475 758/1439/475 743/1440/475 -f 743/1440/476 758/1439/476 777/1441/477 749/1442/478 -f 749/1442/479 777/1441/480 778/1443/481 750/1444/481 -f 750/1444/482 778/1443/482 779/1445/482 780/1446/482 -f 765/1407/483 767/1409/483 779/1447/483 778/1448/483 -f 752/1394/484 764/1406/485 777/1449/486 758/1400/484 -f 767/1413/487 770/1412/487 780/1450/487 779/1451/487 -f 770/1415/488 747/1389/488 750/1392/488 780/1452/488 -f 748/1390/489 741/1383/490 743/1385/490 749/1391/491 -f 739/1381/492 745/1387/493 771/1437/494 746/1436/494 -f 764/1406/495 765/1407/496 778/1448/496 777/1449/497 -o HandleComfortThing_Cube.006 -v -1.508359 -0.214874 3.108693 -v -1.504838 -0.215309 2.893183 -v -1.564296 -0.274102 2.910781 -v -1.567402 -0.273718 3.089973 -v -1.348484 -0.928894 2.825721 -v -1.331423 -0.813343 2.825721 -v -1.263873 -0.855085 2.817547 -v -1.262042 -0.949106 2.817547 -v -1.263873 -0.855085 3.182453 -v -1.207149 -0.865197 3.174081 -v -1.207149 -0.865197 2.825919 -v -1.570189 -0.877055 3.143835 -v -1.435938 -0.379825 3.163084 -v -1.622805 -0.828855 3.096503 -v -1.262042 -0.949106 3.182453 -v -1.348484 -0.928894 3.174279 -v -1.435938 -0.379825 2.836916 -v -1.112852 -0.829663 3.130793 -v -1.112852 -0.829663 2.869207 -v -1.205319 -0.959218 2.825919 -v -1.205319 -0.959218 3.174081 -v -1.111021 -0.923684 3.130793 -v -1.072210 -0.848373 3.087270 -v -1.073111 -0.802094 3.087270 -v -1.111021 -0.923684 2.869207 -v -1.072210 -0.848373 2.912730 -v -1.073111 -0.802094 2.912730 -v -1.681696 -0.766817 2.927831 -v -1.689936 -0.702839 2.940395 -v -1.640119 -0.414721 2.927821 -v -1.619700 -0.829239 2.904046 -v -1.684682 -0.766448 3.071709 -v -1.643105 -0.414353 3.071698 -v -1.666879 -0.498637 2.940385 -v -1.669865 -0.498268 3.058900 -v -1.692922 -0.702470 3.058910 -v -1.690559 -0.607421 3.054481 -v -1.687573 -0.607789 2.944693 -v -1.331423 -0.813343 3.174279 -v -1.416650 -0.767127 2.821697 -v -1.416650 -0.767127 3.178303 -v -1.469005 -0.685482 2.828092 -v -1.469005 -0.685482 3.171908 -v -1.542909 -0.883434 2.838818 -v -1.516768 -0.889546 2.825611 -v -1.516768 -0.889546 3.174389 -v -1.542909 -0.883434 3.161182 -v -1.432626 -0.909220 2.821697 -v -1.432626 -0.909220 3.178303 -v -1.484962 -0.656299 2.841112 -v -1.570189 -0.877055 2.856165 -v -1.484962 -0.656299 3.158888 -vt 0.766671 0.048954 -vt 0.764142 0.169699 -vt 0.717619 0.158385 -vt 0.719660 0.057986 -vt 0.042513 0.365144 -vt 0.100642 0.395217 -vt 0.066109 0.423644 -vt 0.015965 0.407457 -vt 0.569776 0.563304 -vt 0.569776 0.767768 -vt 0.537491 0.763077 -vt 0.537491 0.567995 -vt 0.727808 0.563002 -vt 0.754866 0.275487 -vt 0.833210 0.204917 -vt 0.773959 0.549883 -vt 0.212049 0.200035 -vt 0.162307 0.204615 -vt 0.162307 0.000151 -vt 0.212049 0.004731 -vt 0.898905 0.574157 -vt 0.998844 0.605685 -vt 0.999849 0.726451 -vt 0.898904 0.756916 -vt 0.481028 0.738822 -vt 0.481028 0.592250 -vt 0.050295 0.452178 -vt 0.000151 0.435991 -vt 0.567644 0.488457 -vt 0.547535 0.537161 -vt 0.515547 0.530752 -vt 0.535656 0.482048 -vt 0.130023 0.199924 -vt 0.130023 0.004842 -vt 0.488806 0.442281 -vt 0.468697 0.490984 -vt 0.453927 0.439700 -vt 0.463825 0.415727 -vt 0.050295 0.513631 -vt 0.000151 0.497444 -vt 0.073559 0.175669 -vt 0.073559 0.029097 -vt 0.026087 0.151282 -vt 0.000151 0.151282 -vt 0.000151 0.053484 -vt 0.026087 0.053484 -vt 0.453927 0.714435 -vt 0.453927 0.616637 -vt 0.054374 0.549860 -vt 0.029692 0.541893 -vt 0.434697 0.361827 -vt 0.198019 0.204917 -vt 0.234409 0.210548 -vt 0.375642 0.293880 -vt 0.378192 0.156148 -vt 0.379610 0.048306 -vt 0.428848 0.062216 -vt 0.427492 0.142839 -vt 0.453625 0.405806 -vt 0.152314 0.227692 -vt 0.854471 0.247808 -vt 0.821023 0.529815 -vt 0.629927 0.065835 -vt 0.628389 0.146455 -vt 0.579211 0.138286 -vt 0.580423 0.071870 -vt 0.868174 0.336835 -vt 0.840364 0.498449 -vt 0.464907 0.069804 -vt 0.463716 0.136221 -vt 0.518136 0.073107 -vt 0.517022 0.134636 -vt 0.284278 0.229447 -vt 0.337590 0.261673 -vt 0.868174 0.386706 -vt 0.858265 0.448212 -vt 0.614269 0.567885 -vt 0.614269 0.763188 -vt 0.668593 0.565630 -vt 0.668593 0.765443 -vt 0.722938 0.569213 -vt 0.722938 0.761860 -vt 0.323927 0.192696 -vt 0.308885 0.200096 -vt 0.308884 0.004670 -vt 0.323927 0.012070 -vt 0.260467 0.202289 -vt 0.260466 0.002476 -vt 0.611663 0.480525 -vt 0.596973 0.544303 -vt 0.665618 0.473822 -vt 0.644946 0.551228 -vt 0.709766 0.441928 -vt 0.692917 0.558152 -vt 0.103015 0.268876 -vt 0.213001 0.340681 -vt 0.193552 0.345402 -vt 0.094041 0.283036 -vt 0.140668 0.358420 -vt 0.068278 0.324089 -vt 0.349630 0.418726 -vt 0.112923 0.253297 -vt 0.339625 0.182976 -vt 0.339625 0.021790 -vt 0.741574 0.576509 -vt 0.741574 0.754564 -vt 0.725950 0.430156 -vt 0.709519 0.560474 -vn -0.7044 0.7097 -0.0133 -vn -0.1026 0.0075 -0.9947 -vn 0.1755 0.9845 0.0000 -vn -0.5269 0.0940 0.8447 -vn -0.2277 -0.9737 0.0000 -vn 0.9190 0.3942 0.0057 -vn -0.3526 0.9358 0.0000 -vn 0.1465 0.0029 -0.9892 -vn 0.1465 0.0029 0.9892 -vn -0.1755 -0.9845 0.0000 -vn 0.7339 0.0143 0.6791 -vn 0.4147 0.0081 -0.9099 -vn 0.4147 0.0081 0.9099 -vn 0.3526 -0.9358 0.0000 -vn 0.9998 0.0195 0.0000 -vn 0.8889 -0.4581 0.0000 -vn -0.5700 0.8216 0.0000 -vn 0.7339 0.0143 -0.6791 -vn -0.3667 0.0433 -0.9293 -vn -0.7097 -0.7044 -0.0113 -vn -0.3211 0.0435 -0.9461 -vn -0.3371 0.0447 0.9404 -vn -0.9525 0.3038 -0.0225 -vn -0.3829 0.0452 0.9227 -vn -0.8802 0.4743 -0.0177 -vn -0.9916 -0.1277 -0.0222 -vn -0.9822 0.1862 -0.0263 -vn -0.9993 0.0248 -0.0262 -vn -0.5482 0.0619 -0.8340 -vn -0.5564 0.0629 0.8286 -vn 0.5257 0.8507 0.0000 -vn 0.4767 0.8791 0.0000 -vn 0.8418 0.5398 0.0000 -vn -0.1026 0.0075 0.9947 -vn 0.0452 -0.0058 0.9990 -vn -0.0616 0.0185 0.9979 -vn -0.4504 0.1202 -0.8847 -vn -0.0616 0.0185 -0.9979 -vn 0.0452 -0.0058 -0.9990 -vn -0.5492 0.1006 -0.8296 -vn -0.3469 0.0702 -0.9353 -vn -0.6850 -0.7286 -0.0038 -vn 0.8774 0.4798 0.0000 -vn 0.9846 -0.1746 0.0000 -vn -0.4504 0.1202 0.8847 -vn -0.3469 0.0702 0.9353 -s off -f 781/1453/498 782/1454/498 783/1455/498 784/1456/498 -f 785/1457/499 786/1458/499 787/1459/499 788/1460/499 -f 787/1461/500 789/1462/500 790/1463/500 791/1464/500 -f 792/1465/501 793/1466/501 781/1467/501 794/1468/501 -f 785/1469/502 788/1470/502 795/1471/502 796/1472/502 -f 797/1473/503 782/1474/503 781/1475/503 793/1476/503 -f 791/1464/504 790/1463/504 798/1477/504 799/1478/504 -f 788/1460/505 787/1459/505 791/1479/505 800/1480/505 -f 789/1481/506 795/1482/506 801/1483/506 790/1484/506 -f 795/1471/507 788/1470/507 800/1485/507 801/1486/507 -f 798/1487/508 802/1488/508 803/1489/508 804/1490/508 -f 800/1480/509 791/1479/509 799/1491/509 805/1492/509 -f 790/1484/510 801/1483/510 802/1488/510 798/1487/510 -f 801/1486/511 800/1485/511 805/1493/511 802/1494/511 -f 806/1495/512 807/1496/512 804/1497/512 803/1498/512 -f 802/1494/513 805/1493/513 806/1495/513 803/1498/513 -f 799/1478/514 798/1477/514 804/1499/514 807/1500/514 -f 805/1492/515 799/1491/515 807/1501/515 806/1502/515 -f 783/1503/516 808/1504/516 809/1505/516 810/1506/516 -f 811/1507/517 794/1508/517 812/1509/517 808/1510/517 -f 782/1511/518 811/1512/518 808/1504/518 783/1503/518 -f 794/1468/519 781/1467/519 784/1513/519 812/1514/519 -f 813/1515/520 810/1516/520 814/1517/520 815/1518/520 -f 812/1514/521 784/1513/521 813/1519/521 816/1520/521 -f 784/1456/522 783/1455/522 810/1516/522 813/1515/522 -f 808/1510/523 812/1509/523 816/1521/523 809/1522/523 -f 817/1523/524 815/1518/524 814/1517/524 818/1524/524 -f 809/1522/525 816/1521/525 817/1523/525 818/1524/525 -f 810/1506/526 809/1505/526 818/1525/526 814/1526/526 -f 816/1520/527 813/1519/527 815/1527/527 817/1528/527 -f 787/1461/528 786/1529/528 819/1530/528 789/1462/528 -f 786/1529/529 820/1531/529 821/1532/529 819/1530/529 -f 820/1531/530 822/1533/530 823/1534/530 821/1532/530 -f 824/1535/502 825/1536/502 826/1537/502 827/1538/502 -f 825/1536/502 828/1539/502 829/1540/502 826/1537/502 -f 828/1539/502 785/1469/502 796/1472/502 829/1540/502 -f 795/1482/531 789/1481/531 819/1541/531 796/1542/531 -f 796/1542/532 819/1541/532 821/1543/532 829/1544/532 -f 829/1544/533 821/1543/533 823/1545/533 826/1546/533 -f 824/1547/534 830/1548/534 822/1549/534 825/1550/534 -f 825/1550/535 822/1549/535 820/1551/535 828/1552/535 -f 828/1552/536 820/1551/536 786/1458/536 785/1457/536 -f 811/1512/537 782/1511/537 797/1553/537 831/1554/537 -f 831/1554/538 797/1553/538 830/1548/538 824/1547/538 -f 811/1507/539 831/1555/539 792/1556/539 794/1508/539 -f 831/1555/502 824/1535/502 827/1538/502 792/1556/502 -f 822/1533/540 830/1557/540 832/1558/540 823/1534/540 -f 830/1557/541 797/1473/541 793/1476/541 832/1558/541 -f 826/1546/542 823/1545/542 832/1559/542 827/1560/542 -f 827/1560/543 832/1559/543 793/1466/543 792/1465/543 -o HandleHilt_Cylinder.003 -v -1.464091 -0.996279 2.859949 -v -1.457375 -0.967729 2.859949 -v -1.339310 -0.995504 2.929974 -v -1.346026 -1.024054 2.929974 -v -1.339310 -0.995504 3.070026 -v -1.346026 -1.024054 3.070026 -v -1.457375 -0.967729 3.140051 -v -1.464091 -0.996279 3.140051 -v -1.575440 -0.939954 3.070026 -v -1.582156 -0.968503 3.070026 -v -1.343945 -0.917630 2.942875 -v -1.343945 -0.917630 3.057125 -v -1.575440 -0.939954 2.929974 -v -1.582156 -0.968503 2.929974 -v -1.482215 -1.073316 3.113549 -v -1.386492 -1.095835 3.056774 -v -1.440258 -0.894971 2.885751 -v -1.536572 -0.872313 2.942875 -v -1.536572 -0.872313 3.057125 -v -1.440258 -0.894971 3.114249 -v -1.577937 -1.050797 3.056774 -v -1.577937 -1.050797 2.943226 -v -1.539716 -1.059789 2.965895 -v -1.539716 -1.059789 3.034105 -v -1.482215 -1.073316 2.886451 -v -1.386492 -1.095835 2.943226 -v -1.482215 -1.073316 2.931790 -v -1.487302 -1.094942 2.940222 -v -1.537696 -1.083087 2.970111 -v -1.482215 -1.073316 3.068210 -v -1.424713 -1.086844 3.034105 -v -1.424713 -1.086844 2.965895 -v -1.436908 -1.106798 2.970111 -v -1.436908 -1.106798 3.029889 -v -1.487302 -1.094942 3.059778 -v -1.537696 -1.083087 3.029889 -vt 0.127792 0.499999 -vt 0.092894 0.499999 -vt 0.092896 0.333355 -vt 0.127794 0.333355 -vt 0.092894 0.166709 -vt 0.127793 0.166709 -vt 0.092891 0.000065 -vt 0.127790 0.000065 -vt 0.127791 0.999935 -vt 0.092893 0.999934 -vt 0.092892 0.833290 -vt 0.127789 0.833290 -vt 0.000070 0.318005 -vt 0.000069 0.182061 -vt 0.092892 0.666644 -vt 0.127789 0.666644 -vt 0.225837 0.015830 -vt 0.225840 0.150939 -vt 0.000065 0.817939 -vt 0.000065 0.681994 -vt 0.000068 0.484647 -vt 0.000070 0.348704 -vt 0.000069 0.151360 -vt 0.000065 0.015418 -vt 0.000066 0.651291 -vt 0.000067 0.515348 -vt 0.000066 0.984585 -vt 0.000065 0.848641 -vt 0.225839 0.817521 -vt 0.225839 0.682412 -vt 0.272559 0.709386 -vt 0.272559 0.790548 -vt 0.225840 0.515768 -vt 0.225839 0.650877 -vt 0.225839 0.849057 -vt 0.225839 0.984166 -vt 0.225841 0.182477 -vt 0.225842 0.317586 -vt 0.225842 0.349124 -vt 0.225840 0.484234 -vt 0.272559 0.623904 -vt 0.272560 0.542743 -vt 0.300386 0.547759 -vt 0.300385 0.618888 -vt 0.272558 0.042803 -vt 0.272559 0.123964 -vt 0.272561 0.376098 -vt 0.272561 0.457260 -vt 0.272559 0.876030 -vt 0.272559 0.957191 -vt 0.272561 0.209449 -vt 0.272562 0.290612 -vt 0.423583 0.118945 -vt 0.361985 0.154512 -vt 0.300385 0.118949 -vt 0.300384 0.047820 -vt 0.361982 0.012254 -vt 0.423582 0.047816 -vt 0.300385 0.881046 -vt 0.300386 0.952175 -vt 0.300387 0.214466 -vt 0.300388 0.285595 -vt 0.300385 0.714402 -vt 0.300385 0.785531 -vt 0.300387 0.381113 -vt 0.300387 0.452243 -vn 0.4867 -0.1145 -0.8660 -vn 0.9734 -0.2290 0.0000 -vn 0.4867 -0.1145 0.8660 -vn -0.4867 0.1145 0.8660 -vn 0.9982 0.0594 0.0000 -vn -0.9734 0.2290 0.0000 -vn -0.4867 0.1145 -0.8660 -vn 0.4037 -0.3811 0.8318 -vn -0.8670 0.4982 0.0000 -vn 0.5319 0.1691 -0.8297 -vn 0.5319 0.1691 0.8297 -vn -0.4007 0.3885 -0.8297 -vn -0.4007 0.3885 0.8297 -vn -0.2290 -0.9734 0.0000 -vn -0.5312 -0.1612 -0.8318 -vn -0.5312 -0.1612 0.8318 -vn 0.8711 -0.4911 0.0000 -vn -0.9987 -0.0512 0.0000 -vn 0.4037 -0.3811 -0.8318 -vn -0.5339 -0.1952 -0.8227 -vn -0.5339 -0.1952 0.8227 -vn 0.8533 -0.5215 0.0000 -vn -0.9963 -0.0864 0.0000 -vn 0.3909 -0.4127 0.8227 -vn 0.3909 -0.4127 -0.8227 -s off -f 833/1561/544 834/1562/544 835/1563/544 836/1564/544 -f 836/1564/545 835/1563/545 837/1565/545 838/1566/545 -f 838/1566/546 837/1565/546 839/1567/546 840/1568/546 -f 840/1569/547 839/1570/547 841/1571/547 842/1572/547 -f 837/1565/548 835/1563/548 843/1573/548 844/1574/548 -f 842/1572/549 841/1571/549 845/1575/549 846/1576/549 -f 846/1576/550 845/1575/550 834/1562/550 833/1561/550 -f 838/1566/551 840/1568/551 847/1577/551 848/1578/551 -f 845/1575/552 841/1571/552 851/1579/552 850/1580/552 -f 835/1563/553 834/1562/553 849/1581/553 843/1582/553 -f 839/1567/554 837/1565/554 844/1583/554 852/1584/554 -f 834/1562/555 845/1575/555 850/1585/555 849/1586/555 -f 841/1571/556 839/1570/556 852/1587/556 851/1588/556 -f 853/1589/557 854/1590/557 855/1591/557 856/1592/557 -f 846/1576/558 833/1561/558 857/1593/558 854/1594/558 -f 840/1569/559 842/1572/559 853/1595/559 847/1596/559 -f 836/1564/560 838/1566/560 848/1597/560 858/1598/560 -f 842/1572/561 846/1576/561 854/1590/561 853/1589/561 -f 833/1561/562 836/1564/562 858/1599/562 857/1600/562 -f 855/1601/563 859/1602/563 860/1603/563 861/1604/563 -f 848/1578/557 847/1577/557 862/1605/557 863/1606/557 -f 857/1600/557 858/1599/557 864/1607/557 859/1608/557 -f 854/1594/557 857/1593/557 859/1602/557 855/1601/557 -f 847/1596/557 853/1595/557 856/1609/557 862/1610/557 -f 858/1598/557 848/1597/557 863/1611/557 864/1612/557 -f 860/1613/557 865/1614/557 866/1615/557 867/1616/557 868/1617/557 861/1618/557 -f 862/1610/564 856/1609/564 868/1619/564 867/1620/564 -f 864/1612/565 863/1611/565 866/1621/565 865/1622/565 -f 856/1592/566 855/1591/566 861/1623/566 868/1624/566 -f 863/1606/567 862/1605/567 867/1616/567 866/1615/567 -f 859/1608/568 864/1607/568 865/1625/568 860/1626/568 -o HolographicHolder_Cylinder.009 -v -0.972691 1.166717 3.278124 -v -0.972691 1.166717 2.721876 -v -0.987438 1.166717 2.739678 -v -0.987438 1.166717 3.260322 -v -0.934937 1.102284 3.278124 -v -0.934937 1.102284 2.721876 -v -0.971860 1.037372 3.278124 -v -0.971860 1.037372 2.721876 -v -1.046537 1.036892 3.278124 -v -1.046537 1.036892 2.721876 -v -1.047369 1.166237 3.278124 -v -1.084291 1.101324 3.278124 -v -1.084291 1.101324 2.721876 -v -1.047368 1.166237 2.721876 -v -1.032621 1.166237 2.739678 -v -1.032621 1.166237 3.260322 -v -1.033084 1.202181 3.260322 -v -1.033084 1.202181 2.739678 -v -0.987902 1.202661 3.260322 -v -0.987902 1.202661 2.739678 -vt 0.183339 0.841202 -vt 0.183342 0.158794 -vt 0.201434 0.180634 -vt 0.201432 0.819360 -vt 0.091722 0.841201 -vt 0.091726 0.158793 -vt 0.000106 0.841201 -vt 0.000110 0.158793 -vt 0.549809 0.158794 -vt 0.549809 0.841202 -vt 0.458192 0.841202 -vt 0.458193 0.158794 -vt 0.274960 0.841202 -vt 0.320769 0.920549 -vt 0.274958 0.999893 -vt 0.183338 0.999893 -vt 0.137529 0.920547 -vt 0.366577 0.841202 -vt 0.366577 0.158794 -vt 0.274960 0.158794 -vt 0.137534 0.079449 -vt 0.183344 0.000106 -vt 0.274962 0.000107 -vt 0.320770 0.079451 -vt 0.693655 0.044206 -vt 0.693655 0.682938 -vt 0.649555 0.682938 -vt 0.649555 0.044206 -vt 0.256867 0.819362 -vt 0.256868 0.180635 -vt 0.594122 0.682938 -vt 0.594122 0.044206 -vt 0.594021 0.000106 -vt 0.649455 0.000106 -vt 0.550021 0.682938 -vt 0.550021 0.044206 -vt 0.649455 0.727038 -vt 0.594021 0.727038 -vn 0.0016 1.0000 -0.0012 -vn -0.0011 1.0000 -0.0016 -vn 0.0018 1.0000 0.0007 -vn 0.0013 1.0000 0.0015 -vn 0.8618 0.5072 0.0000 -vn 0.8635 0.5043 0.0014 -vn 0.8628 0.5055 0.0000 -vn 0.8692 -0.4944 0.0000 -vn 0.0064 -1.0000 0.0000 -vn -0.0015 0.0013 1.0000 -vn -0.0010 -0.0017 1.0000 -vn 0.0000 0.0000 1.0000 -vn -0.8628 -0.5056 0.0000 -vn -0.8692 0.4944 -0.0000 -vn -0.8692 0.4944 -0.0020 -vn -0.8699 0.4932 0.0014 -vn 0.0010 -0.0017 -1.0000 -vn 0.0018 0.0007 -1.0000 -vn 0.0000 0.0000 -1.0000 -vn -0.9999 -0.0119 0.0017 -vn -0.9999 -0.0109 -0.0005 -vn -0.9999 -0.0129 0.0000 -vn -0.0060 1.0000 0.0000 -vn -0.0076 1.0000 -0.0019 -vn -0.0100 1.0000 0.0000 -vn -0.0086 1.0000 0.0019 -vn 0.0007 1.0000 0.0018 -vn 0.0013 1.0000 -0.0015 -vn -0.0008 1.0000 -0.0018 -vn -0.0020 1.0000 -0.0001 -vn -0.0062 1.0000 0.0008 -vn -0.0065 1.0000 -0.0014 -vn -0.0088 1.0000 -0.0018 -vn -0.0106 0.9999 0.0000 -vn -0.0014 0.0014 -1.0000 -vn 0.0010 0.0018 -1.0000 -vn 0.9999 0.0129 -0.0020 -vn 0.9999 0.0143 0.0014 -vn 0.9999 0.0129 0.0000 -vn 0.0019 0.0005 1.0000 -vn -0.0000 0.0020 1.0000 -s off -f 869/1627/569 870/1628/570 871/1629/571 872/1630/572 -f 870/1628/573 869/1627/574 873/1631/575 874/1632/575 -f 874/1632/576 873/1631/576 875/1633/576 876/1634/576 -f 876/1635/577 875/1636/577 877/1637/577 878/1638/577 -f 869/1627/578 879/1639/579 880/1640/580 877/1641/580 875/1642/580 873/1643/580 -f 878/1638/581 877/1637/581 880/1644/581 881/1645/581 -f 881/1645/582 880/1644/582 879/1639/583 882/1646/584 -f 882/1646/585 870/1628/586 874/1647/587 876/1648/587 878/1649/587 881/1650/587 -f 883/1651/588 884/1652/589 885/1653/590 886/1654/590 -f 879/1639/591 869/1627/592 872/1630/593 884/1655/594 -f 882/1646/595 879/1639/596 884/1655/597 883/1656/598 -f 870/1628/592 882/1646/599 883/1656/600 871/1629/601 -f 886/1654/602 885/1653/602 887/1657/602 888/1658/602 -f 871/1659/603 883/1660/604 886/1654/587 888/1658/587 -f 872/1661/605 871/1662/606 888/1658/607 887/1657/607 -f 884/1663/608 872/1664/609 887/1657/580 885/1653/580 -o ring_Torus -v 0.990151 -0.648179 2.809159 -v 0.990151 -0.321606 2.625201 -v 1.068843 -0.322088 2.670631 -v 1.068843 -0.609076 2.832291 -v 1.068843 -0.323051 2.761491 -v 1.068843 -0.530870 2.878556 -v 0.990151 -0.323533 2.806922 -v 0.990151 -0.491768 2.901688 -v 0.911459 -0.323051 2.761491 -v 0.911459 -0.530870 2.878556 -v 0.911459 -0.322088 2.670631 -v 0.911459 -0.609076 2.832291 -v 0.990151 0.000993 2.816042 -v 1.068843 -0.038592 2.838340 -v 1.068843 -0.117761 2.882936 -v 0.990151 -0.157346 2.905234 -v 0.911459 -0.117761 2.882936 -v 0.911459 -0.038592 2.838340 -v 0.990151 -0.002981 3.190841 -v 1.068843 -0.042084 3.167709 -v 1.068843 -0.120290 3.121444 -v 0.990151 -0.159393 3.098312 -v 0.911459 -0.120290 3.121444 -v 0.911459 -0.042084 3.167709 -v 0.990151 -0.329554 3.374799 -v 1.068843 -0.329073 3.329369 -v 1.068843 -0.328109 3.238509 -v 0.990151 -0.327627 3.193079 -v 0.911459 -0.328109 3.238509 -v 0.911459 -0.329073 3.329369 -v 0.990151 -0.652153 3.183958 -v 1.068843 -0.612568 3.161660 -v 1.068843 -0.533399 3.117064 -v 0.990151 -0.493815 3.094766 -v 0.911459 -0.533399 3.117064 -v 0.911459 -0.612568 3.161660 -vt 0.000208 0.606690 -vt 0.297562 0.606690 -vt 0.279540 0.676487 -vt 0.018230 0.676486 -vt 0.243498 0.738915 -vt 0.054272 0.738915 -vt 0.225476 0.808712 -vt 0.072293 0.808712 -vt 0.072294 0.404668 -vt 0.225476 0.404668 -vt 0.243498 0.474465 -vt 0.054272 0.474465 -vt 0.279540 0.536893 -vt 0.018230 0.536893 -vt 0.297978 0.202229 -vt 0.595332 0.202230 -vt 0.577310 0.272027 -vt 0.315999 0.272026 -vt 0.541267 0.334455 -vt 0.352042 0.334454 -vt 0.523245 0.404252 -vt 0.370063 0.404251 -vt 0.370064 0.000208 -vt 0.523246 0.000208 -vt 0.541268 0.070005 -vt 0.352042 0.070005 -vt 0.577310 0.132433 -vt 0.315999 0.132433 -vt 0.797770 0.000208 -vt 0.797770 0.297561 -vt 0.727973 0.279540 -vt 0.727973 0.018229 -vt 0.665545 0.243497 -vt 0.665545 0.054272 -vt 0.595748 0.225476 -vt 0.595748 0.072294 -vt 0.999792 0.072294 -vt 0.999792 0.225476 -vt 0.929995 0.243497 -vt 0.929995 0.054272 -vt 0.867567 0.279540 -vt 0.867567 0.018229 -vt 0.297562 0.202230 -vt 0.000208 0.202229 -vt 0.018229 0.132432 -vt 0.279541 0.132434 -vt 0.054273 0.070005 -vt 0.243498 0.070005 -vt 0.072294 0.000208 -vt 0.225477 0.000208 -vt 0.225475 0.404252 -vt 0.072292 0.404251 -vt 0.054271 0.334454 -vt 0.243497 0.334455 -vt 0.018228 0.272026 -vt 0.279540 0.272027 -vt 0.595332 0.606690 -vt 0.297978 0.606690 -vt 0.316000 0.536893 -vt 0.577310 0.536894 -vt 0.352043 0.474465 -vt 0.541268 0.474465 -vt 0.370064 0.404668 -vt 0.523247 0.404669 -vt 0.523246 0.808712 -vt 0.370063 0.808712 -vt 0.352042 0.738915 -vt 0.541268 0.738915 -vt 0.316000 0.676487 -vt 0.577310 0.676487 -vt 0.797769 0.595331 -vt 0.797770 0.297977 -vt 0.867567 0.315999 -vt 0.867567 0.577309 -vt 0.929995 0.352042 -vt 0.929995 0.541267 -vt 0.999791 0.370063 -vt 0.999791 0.523245 -vt 0.595748 0.523245 -vt 0.595748 0.370063 -vt 0.665544 0.352042 -vt 0.665544 0.541266 -vt 0.727973 0.315999 -vt 0.727973 0.577309 -vn 0.4472 -0.4390 -0.7793 -vn 1.0000 0.0000 0.0000 -vn 0.4472 0.4390 0.7793 -vn -0.4472 0.4390 0.7793 -vn -1.0000 0.0000 0.0000 -vn -0.4472 -0.4390 -0.7793 -vn 0.4472 0.4554 -0.7698 -vn 0.4472 -0.4554 0.7698 -vn -0.4472 -0.4554 0.7698 -vn -0.4472 0.4554 -0.7698 -vn 0.4472 0.8944 0.0095 -vn 0.4472 -0.8944 -0.0095 -vn -0.4472 -0.8944 -0.0095 -vn -0.4472 0.8944 0.0095 -s off -f 889/1665/610 890/1666/610 891/1667/610 892/1668/610 -f 892/1668/611 891/1667/611 893/1669/611 894/1670/611 -f 894/1670/612 893/1669/612 895/1671/612 896/1672/612 -f 896/1673/613 895/1674/613 897/1675/613 898/1676/613 -f 898/1676/614 897/1675/614 899/1677/614 900/1678/614 -f 900/1678/615 899/1677/615 890/1666/615 889/1665/615 -f 890/1679/616 901/1680/616 902/1681/616 891/1682/616 -f 891/1682/611 902/1681/611 903/1683/611 893/1684/611 -f 893/1684/617 903/1683/617 904/1685/617 895/1686/617 -f 895/1687/618 904/1688/618 905/1689/618 897/1690/618 -f 897/1690/614 905/1689/614 906/1691/614 899/1692/614 -f 899/1692/619 906/1691/619 901/1680/619 890/1679/619 -f 901/1693/620 907/1694/620 908/1695/620 902/1696/620 -f 902/1696/611 908/1695/611 909/1697/611 903/1698/611 -f 903/1698/621 909/1697/621 910/1699/621 904/1700/621 -f 904/1701/622 910/1702/622 911/1703/622 905/1704/622 -f 905/1704/614 911/1703/614 912/1705/614 906/1706/614 -f 906/1706/623 912/1705/623 907/1694/623 901/1693/623 -f 907/1707/612 913/1708/612 914/1709/612 908/1710/612 -f 908/1710/611 914/1709/611 915/1711/611 909/1712/611 -f 909/1712/610 915/1711/610 916/1713/610 910/1714/610 -f 910/1715/615 916/1716/615 917/1717/615 911/1718/615 -f 911/1718/614 917/1717/614 918/1719/614 912/1720/614 -f 912/1720/613 918/1719/613 913/1708/613 907/1707/613 -f 913/1721/617 919/1722/617 920/1723/617 914/1724/617 -f 914/1724/611 920/1723/611 921/1725/611 915/1726/611 -f 915/1726/616 921/1725/616 922/1727/616 916/1728/616 -f 916/1729/619 922/1730/619 923/1731/619 917/1732/619 -f 917/1732/614 923/1731/614 924/1733/614 918/1734/614 -f 918/1734/618 924/1733/618 919/1722/618 913/1721/618 -f 919/1735/621 889/1736/621 892/1737/621 920/1738/621 -f 920/1738/611 892/1737/611 894/1739/611 921/1740/611 -f 921/1740/620 894/1739/620 896/1741/620 922/1742/620 -f 922/1743/623 896/1744/623 898/1745/623 923/1746/623 -f 923/1746/614 898/1745/614 900/1747/614 924/1748/614 -f 924/1748/622 900/1747/622 889/1736/622 919/1735/622 -o Roundthing_Cylinder.008 -v -0.654718 0.939467 3.338343 -v -0.745955 0.781575 3.338343 -v -0.745839 1.097427 3.338343 -v -0.757348 1.077508 3.380293 -v -0.677723 0.939476 3.380293 -v -1.019432 0.939601 3.338343 -v -0.928196 1.097493 3.338343 -v -0.928312 0.781642 3.338343 -v -0.916701 1.077567 3.380293 -v -0.996428 0.939592 3.380293 -v -0.949024 0.939575 3.380293 -v -0.893014 1.036505 3.380293 -v -0.916802 0.801560 3.380293 -v -0.757450 0.801501 3.380293 -v -0.781065 1.036464 3.380293 -v -0.884357 1.021497 3.419074 -v -0.789734 1.021463 3.419074 -v -0.781137 0.842563 3.380293 -v -0.893085 0.842604 3.380293 -v -0.725127 0.939493 3.380293 -v -0.931698 0.939569 3.419074 -v -0.877029 0.939549 3.419074 -v -0.857040 0.974142 3.419074 -v -0.884417 0.857606 3.419074 -v -0.742452 0.939499 3.419074 -v -0.789794 0.857571 3.419074 -v -0.817086 0.974128 3.419074 -v -0.857040 0.974142 3.317496 -v -0.817086 0.974128 3.317496 -v -0.817111 0.904926 3.419074 -v -0.857065 0.904940 3.419074 -v -0.797122 0.939519 3.419074 -v -0.797122 0.939519 3.317496 -v -0.877029 0.939549 3.317496 -v -0.857065 0.904940 3.317496 -v -0.817111 0.904926 3.317496 -v -0.745955 0.781575 2.661657 -v -0.654718 0.939467 2.661657 -v -0.677723 0.939476 2.619707 -v -0.757348 1.077508 2.619707 -v -0.745839 1.097427 2.661657 -v -0.928196 1.097493 2.661657 -v -1.019432 0.939601 2.661657 -v -0.928312 0.781642 2.661657 -v -0.916701 1.077567 2.619707 -v -0.893014 1.036505 2.619707 -v -0.949024 0.939575 2.619707 -v -0.996428 0.939593 2.619707 -v -0.916802 0.801560 2.619707 -v -0.757450 0.801502 2.619707 -v -0.781065 1.036464 2.619707 -v -0.789734 1.021463 2.580926 -v -0.884357 1.021497 2.580926 -v -0.893085 0.842604 2.619707 -v -0.781137 0.842563 2.619707 -v -0.725127 0.939493 2.619707 -v -0.857040 0.974142 2.580926 -v -0.877029 0.939549 2.580926 -v -0.931698 0.939569 2.580926 -v -0.884417 0.857606 2.580926 -v -0.789794 0.857571 2.580926 -v -0.742452 0.939499 2.580926 -v -0.817086 0.974128 2.580926 -v -0.817086 0.974128 2.682504 -v -0.857040 0.974142 2.682504 -v -0.857065 0.904940 2.580926 -v -0.817111 0.904926 2.580926 -v -0.797122 0.939519 2.580926 -v -0.797122 0.939519 2.682504 -v -0.817111 0.904926 2.682504 -v -0.857065 0.904940 2.682504 -v -0.877029 0.939549 2.682504 -vt 0.295914 0.225582 -vt 0.443817 0.225582 -vt 0.443818 0.774418 -vt 0.295914 0.774418 -vt 0.148010 0.225582 -vt 0.148010 0.774418 -vt 0.286585 0.812084 -vt 0.157340 0.812084 -vt 0.591720 0.225581 -vt 0.739623 0.225582 -vt 0.739623 0.774418 -vt 0.591721 0.774418 -vt 0.887527 0.225581 -vt 0.887527 0.774418 -vt 0.453146 0.812084 -vt 0.582392 0.812084 -vt 0.563168 0.845381 -vt 0.472370 0.845381 -vt 0.434489 0.812084 -vt 0.305243 0.812085 -vt 0.730295 0.812084 -vt 0.601050 0.812084 -vt 0.000107 0.774419 -vt 0.138682 0.812085 -vt 0.009436 0.812084 -vt 0.878198 0.812084 -vt 0.748953 0.812084 -vt 0.324467 0.845381 -vt 0.415265 0.845381 -vt 0.408239 0.879107 -vt 0.331494 0.879107 -vt 0.858974 0.845380 -vt 0.768176 0.845380 -vt 0.267361 0.845381 -vt 0.176564 0.845381 -vt 0.711071 0.845381 -vt 0.620273 0.845380 -vt 0.119458 0.845381 -vt 0.028660 0.845381 -vt 0.479397 0.879107 -vt 0.556142 0.879107 -vt 0.533972 0.917507 -vt 0.501567 0.917507 -vt 0.704044 0.879107 -vt 0.627299 0.879107 -vt 0.112432 0.879107 -vt 0.035686 0.879108 -vt 0.851948 0.879107 -vt 0.775202 0.879107 -vt 0.260335 0.879107 -vt 0.183589 0.879107 -vt 0.353664 0.917507 -vt 0.386069 0.917507 -vt 0.386068 0.999893 -vt 0.353663 0.999893 -vt 0.829778 0.917507 -vt 0.797372 0.917506 -vt 0.238166 0.917507 -vt 0.205760 0.917507 -vt 0.681875 0.917506 -vt 0.649469 0.917507 -vt 0.090261 0.917507 -vt 0.057857 0.917507 -vt 0.943867 0.113737 -vt 0.915803 0.129940 -vt 0.887739 0.113737 -vt 0.887739 0.081333 -vt 0.915803 0.065129 -vt 0.943867 0.081332 -vt 0.681876 0.999892 -vt 0.649470 0.999893 -vt 0.090260 0.999894 -vt 0.057856 0.999893 -vt 0.533971 0.999893 -vt 0.501567 0.999893 -vt 0.829776 0.999893 -vt 0.797370 0.999892 -vt 0.238167 0.999893 -vt 0.205762 0.999894 -vt 0.157339 0.187916 -vt 0.286584 0.187916 -vt 0.000106 0.225582 -vt 0.453146 0.187916 -vt 0.472370 0.154619 -vt 0.563167 0.154619 -vt 0.582391 0.187916 -vt 0.305242 0.187916 -vt 0.434488 0.187916 -vt 0.601048 0.187916 -vt 0.730294 0.187915 -vt 0.009435 0.187917 -vt 0.138680 0.187916 -vt 0.748952 0.187916 -vt 0.878197 0.187915 -vt 0.324466 0.154619 -vt 0.331493 0.120893 -vt 0.408238 0.120893 -vt 0.415264 0.154619 -vt 0.768176 0.154619 -vt 0.858973 0.154619 -vt 0.176563 0.154619 -vt 0.267360 0.154619 -vt 0.620273 0.154619 -vt 0.711071 0.154619 -vt 0.028658 0.154620 -vt 0.119456 0.154619 -vt 0.479396 0.120893 -vt 0.501566 0.082493 -vt 0.533971 0.082493 -vt 0.556141 0.120893 -vt 0.627299 0.120893 -vt 0.704044 0.120893 -vt 0.035685 0.120893 -vt 0.112430 0.120893 -vt 0.775202 0.120893 -vt 0.851947 0.120893 -vt 0.183588 0.120893 -vt 0.260334 0.120893 -vt 0.353663 0.082493 -vt 0.353662 0.000107 -vt 0.386067 0.000107 -vt 0.386068 0.082493 -vt 0.797372 0.082493 -vt 0.829777 0.082493 -vt 0.205759 0.082493 -vt 0.238164 0.082493 -vt 0.649468 0.082493 -vt 0.681874 0.082493 -vt 0.057855 0.082494 -vt 0.090259 0.082493 -vt 0.943870 0.016312 -vt 0.943867 0.048716 -vt 0.915802 0.064917 -vt 0.887739 0.048711 -vt 0.887742 0.016307 -vt 0.915807 0.000106 -vt 0.649469 0.000107 -vt 0.681875 0.000107 -vt 0.057854 0.000108 -vt 0.090258 0.000107 -vt 0.501566 0.000107 -vt 0.533970 0.000107 -vt 0.797370 0.000107 -vt 0.829776 0.000106 -vt 0.205760 0.000106 -vt 0.238166 0.000107 -vn 0.0004 1.0000 0.0000 -vn 0.8662 0.4997 0.0000 -vn 0.7825 0.4514 0.4290 -vn -0.8662 -0.4997 0.0000 -vn -0.0004 -1.0000 0.0000 -vn -0.8658 0.5003 0.0000 -vn 0.0000 0.0000 1.0000 -vn 0.0003 0.9033 0.4290 -vn -0.7825 -0.4514 0.4290 -vn 0.7821 -0.4519 0.4290 -vn -0.7821 0.4519 0.4290 -vn -0.0003 -0.9033 0.4290 -vn 0.0003 0.9326 0.3608 -vn -0.8079 -0.4660 0.3608 -vn 0.8075 -0.4666 0.3608 -vn -0.8075 0.4666 0.3608 -vn -0.0003 -0.9326 0.3608 -vn 0.8079 0.4660 0.3608 -vn 0.8658 -0.5003 0.0000 -vn 0.7825 0.4514 -0.4290 -vn 0.0000 0.0000 -1.0000 -vn 0.0003 0.9033 -0.4290 -vn -0.7825 -0.4514 -0.4290 -vn 0.7821 -0.4519 -0.4290 -vn -0.7821 0.4519 -0.4290 -vn -0.0003 -0.9033 -0.4290 -vn 0.0003 0.9326 -0.3608 -vn -0.8079 -0.4660 -0.3608 -vn 0.8075 -0.4666 -0.3608 -vn -0.8075 0.4666 -0.3608 -vn -0.0003 -0.9326 -0.3608 -vn 0.8079 0.4660 -0.3608 -s off -f 965/1749/624 966/1750/624 931/1751/624 927/1752/624 -f 962/1753/625 965/1749/625 927/1752/625 925/1754/625 -f 925/1754/626 927/1752/626 928/1755/626 929/1756/626 -f 967/1757/627 968/1758/627 932/1759/627 930/1760/627 -f 968/1758/628 961/1761/628 926/1762/628 932/1759/628 -f 967/1757/629 930/1760/629 931/1751/629 966/1750/629 -f 933/1763/630 934/1764/630 935/1765/630 936/1766/630 -f 927/1752/631 931/1751/631 933/1767/631 928/1768/631 -f 930/1760/632 932/1759/632 937/1769/632 934/1770/632 -f 926/1771/633 925/1754/633 929/1772/633 938/1773/633 -f 931/1751/634 930/1760/634 934/1764/634 933/1763/634 -f 932/1759/635 926/1762/635 938/1774/635 937/1775/635 -f 939/1776/636 936/1777/636 940/1778/636 941/1779/636 -f 937/1775/630 938/1774/630 942/1780/630 943/1781/630 -f 929/1756/630 928/1755/630 939/1782/630 944/1783/630 -f 928/1768/630 933/1767/630 936/1777/630 939/1776/630 -f 934/1770/630 937/1769/630 943/1784/630 935/1785/630 -f 938/1773/630 929/1772/630 944/1786/630 942/1787/630 -f 940/1788/630 945/1789/630 946/1790/630 947/1791/630 -f 935/1785/637 943/1784/637 948/1792/637 945/1793/637 -f 942/1787/638 944/1786/638 949/1794/638 950/1795/638 -f 936/1766/639 935/1765/639 945/1789/639 940/1788/639 -f 943/1781/640 942/1780/640 950/1796/640 948/1797/640 -f 944/1783/641 939/1782/641 941/1798/641 949/1799/641 -f 951/1800/628 947/1801/628 952/1802/628 953/1803/628 -f 948/1797/630 950/1796/630 954/1804/630 955/1805/630 -f 949/1799/630 941/1798/630 951/1806/630 956/1807/630 -f 941/1779/630 940/1778/630 947/1801/630 951/1800/630 -f 945/1793/630 948/1792/630 955/1808/630 946/1809/630 -f 950/1795/630 949/1794/630 956/1810/630 954/1811/630 -f 957/1812/630 953/1813/630 952/1814/630 958/1815/630 959/1816/630 960/1817/630 -f 946/1809/625 955/1808/625 959/1818/625 958/1819/625 -f 954/1811/629 956/1810/629 957/1820/629 960/1821/629 -f 947/1791/642 946/1790/642 958/1822/642 952/1823/642 -f 955/1805/624 954/1804/624 960/1824/624 959/1825/624 -f 956/1807/627 951/1806/627 953/1826/627 957/1827/627 -f 962/1753/643 963/1828/643 964/1829/643 965/1749/643 -f 961/1830/642 962/1753/642 925/1754/642 926/1771/642 -f 969/1831/644 970/1832/644 971/1833/644 972/1834/644 -f 965/1749/645 964/1835/645 969/1836/645 966/1750/645 -f 967/1757/646 972/1837/646 973/1838/646 968/1758/646 -f 961/1830/647 974/1839/647 963/1840/647 962/1753/647 -f 966/1750/648 969/1831/648 972/1834/648 967/1757/648 -f 968/1758/649 973/1841/649 974/1842/649 961/1761/649 -f 975/1843/650 976/1844/650 977/1845/650 970/1846/650 -f 973/1841/644 978/1847/644 979/1848/644 974/1842/644 -f 963/1828/644 980/1849/644 975/1850/644 964/1829/644 -f 964/1835/644 975/1843/644 970/1846/644 969/1836/644 -f 972/1837/644 971/1851/644 978/1852/644 973/1838/644 -f 974/1839/644 979/1853/644 980/1854/644 963/1840/644 -f 977/1855/644 981/1856/644 982/1857/644 983/1858/644 -f 971/1851/651 983/1859/651 984/1860/651 978/1852/651 -f 979/1853/652 985/1861/652 986/1862/652 980/1854/652 -f 970/1832/653 977/1855/653 983/1858/653 971/1833/653 -f 978/1847/654 984/1863/654 985/1864/654 979/1848/654 -f 980/1849/655 986/1865/655 976/1866/655 975/1850/655 -f 987/1867/628 988/1868/628 989/1869/628 981/1870/628 -f 984/1863/644 990/1871/644 991/1872/644 985/1864/644 -f 986/1865/644 992/1873/644 987/1874/644 976/1866/644 -f 976/1844/644 987/1867/644 981/1870/644 977/1845/644 -f 983/1859/644 982/1875/644 990/1876/644 984/1860/644 -f 985/1861/644 991/1877/644 992/1878/644 986/1862/644 -f 993/1879/644 994/1880/644 995/1881/644 996/1882/644 989/1883/644 988/1884/644 -f 982/1875/625 996/1885/625 995/1886/625 990/1876/625 -f 991/1877/629 994/1887/629 993/1888/629 992/1878/629 -f 981/1856/642 989/1889/642 996/1890/642 982/1857/642 -f 990/1871/624 995/1891/624 994/1892/624 991/1872/624 -f 992/1873/627 993/1893/627 988/1894/627 987/1874/627 -o SideHolders.001_Cube.002 -v 1.310526 -0.082794 3.073582 -v 1.384588 0.101767 3.073582 -v 1.139921 0.101767 3.053905 -v 1.144858 -0.044123 3.053905 -v 1.384588 0.101767 2.930023 -v 1.504148 0.101767 3.073582 -v 1.504148 0.101767 2.930023 -v 1.430086 -0.082794 3.073582 -v 1.608182 -0.022025 3.051795 -v 1.577323 0.101767 3.051795 -v 1.430086 -0.082794 2.930023 -v 1.310526 -0.082794 2.930023 -v 1.577323 0.101767 2.951809 -v 1.608182 -0.022025 2.951809 -v 1.144858 -0.044123 2.949699 -v 1.139921 0.101767 2.949699 -v 1.384588 0.551670 3.654257 -v 1.384588 0.551670 3.449972 -v 1.139921 0.531994 3.449972 -v 1.139921 0.531994 3.558806 -v 1.384588 0.408111 3.449972 -v 1.504148 0.551670 3.449972 -v 1.504148 0.408111 3.449972 -v 1.504148 0.551670 3.654257 -v 1.577323 0.529883 3.613238 -v 1.577323 0.529883 3.449972 -v 1.504148 0.408111 3.654257 -v 1.384588 0.408111 3.654257 -v 1.577323 0.429898 3.449972 -v 1.577323 0.429898 3.613238 -v 1.139921 0.427787 3.558806 -v 1.139921 0.427787 3.449972 -v 1.384588 0.551670 2.345743 -v 1.139921 0.531994 2.441195 -v 1.139921 0.531994 2.550028 -v 1.384588 0.551670 2.550028 -v 1.384588 0.408111 2.550028 -v 1.504148 0.408111 2.550028 -v 1.504148 0.551670 2.550028 -v 1.577323 0.529883 2.550028 -v 1.577323 0.529883 2.386762 -v 1.504148 0.551670 2.345743 -v 1.504148 0.408111 2.345743 -v 1.384588 0.408111 2.345743 -v 1.577323 0.429898 2.550028 -v 1.577323 0.429898 2.386762 -v 1.139921 0.427787 2.441195 -v 1.139921 0.427787 2.550028 -vt 0.300882 0.683064 -vt 0.346645 0.797105 -vt 0.194976 0.797301 -vt 0.197840 0.707149 -vt 0.346645 0.885811 -vt 0.420522 0.797105 -vt 0.420522 0.885811 -vt 0.374758 0.683064 -vt 0.485753 0.720233 -vt 0.467698 0.796970 -vt 0.660845 0.885811 -vt 0.660845 0.797105 -vt 0.734722 0.797105 -vt 0.734722 0.885811 -vt 0.374758 0.999852 -vt 0.300882 0.999852 -vt 0.465737 0.872350 -vt 0.465737 0.810568 -vt 0.544569 0.810568 -vt 0.544569 0.872350 -vt 0.467698 0.885946 -vt 0.485753 0.962683 -vt 0.105267 0.873653 -vt 0.105267 0.809264 -vt 0.195464 0.809264 -vt 0.195464 0.873653 -vt 0.197840 0.975767 -vt 0.194976 0.885615 -vt 0.000148 0.885811 -vt 0.000148 0.797105 -vt 0.380856 0.000148 -vt 0.380856 0.126376 -vt 0.229187 0.126376 -vt 0.229187 0.059127 -vt 0.380856 0.215082 -vt 0.454733 0.126376 -vt 0.454733 0.215082 -vt 0.454733 0.000148 -vt 0.501909 0.025494 -vt 0.501909 0.126376 -vt 0.652665 0.215082 -vt 0.652665 0.126376 -vt 0.726542 0.126376 -vt 0.726542 0.215082 -vt 0.454733 0.341311 -vt 0.380856 0.341311 -vt 0.499948 0.201620 -vt 0.499948 0.139839 -vt 0.600830 0.139839 -vt 0.600830 0.201620 -vt 0.501909 0.215082 -vt 0.501909 0.315965 -vt 0.162426 0.202924 -vt 0.162426 0.138534 -vt 0.229675 0.138534 -vt 0.229675 0.202924 -vt 0.229187 0.282331 -vt 0.229187 0.215082 -vt 0.000148 0.215082 -vt 0.000148 0.126376 -vt 0.380855 0.682769 -vt 0.229186 0.623789 -vt 0.229186 0.556540 -vt 0.380855 0.556540 -vt 0.380855 0.467835 -vt 0.454732 0.467835 -vt 0.454732 0.556540 -vt 0.501909 0.556540 -vt 0.501908 0.657423 -vt 0.454732 0.682769 -vt 0.652664 0.467835 -vt 0.726541 0.467835 -vt 0.726541 0.556540 -vt 0.652664 0.556540 -vt 0.380855 0.341606 -vt 0.454732 0.341606 -vt 0.499947 0.481297 -vt 0.600829 0.481297 -vt 0.600829 0.543078 -vt 0.499947 0.543078 -vt 0.501908 0.366952 -vt 0.501908 0.467835 -vt 0.162426 0.479993 -vt 0.229674 0.479993 -vt 0.229675 0.544383 -vt 0.162426 0.544383 -vt 0.229186 0.467835 -vt 0.229186 0.400586 -vt 0.000148 0.467835 -vt 0.000148 0.556540 -vn -0.0936 0.0196 0.9954 -vn 0.0000 1.0000 0.0000 -vn 0.1766 -0.0247 0.9840 -vn 0.0000 -1.0000 -0.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 0.0000 1.0000 -vn 0.9703 0.2419 0.0000 -vn 0.3229 -0.9464 -0.0000 -vn 0.1766 -0.0247 -0.9840 -vn -0.9994 -0.0338 -0.0000 -vn -0.0936 0.0196 -0.9954 -vn -0.2273 -0.9738 0.0000 vn -0.0802 0.9968 0.0000 vn 0.2854 0.9584 0.0000 -vn 1.0000 0.0000 0.0000 vn 0.4890 0.0000 0.8723 vn 0.2854 -0.9584 0.0000 -vn -1.0000 0.0000 0.0000 vn -0.0802 -0.9968 0.0000 vn -0.3634 0.0000 0.9316 vn 0.4890 0.0000 -0.8723 -vn -0.3634 0.0000 -0.9316 -s off -f 997/1895/656 998/1896/656 999/1897/656 1000/1898/656 -f 1001/1899/657 998/1896/657 1002/1900/657 1003/1901/657 -f 1002/1900/658 1004/1902/658 1005/1903/658 1006/1904/658 -f 1007/1905/659 1004/1906/659 997/1907/659 1008/1908/659 -f 1001/1899/660 1003/1901/660 1007/1909/660 1008/1910/660 -f 1002/1900/661 998/1896/661 997/1895/661 1004/1902/661 -f 1009/1911/662 1006/1912/662 1005/1913/662 1010/1914/662 -f 1003/1901/657 1002/1900/657 1006/1912/657 1009/1911/657 -f 1004/1906/663 1007/1905/663 1010/1914/663 1005/1913/663 -f 1007/1909/664 1003/1901/664 1009/1915/664 1010/1916/664 -f 1011/1917/665 1000/1918/665 999/1919/665 1012/1920/665 -f 1001/1899/666 1008/1910/666 1011/1921/666 1012/1922/666 -f 998/1896/657 1001/1899/657 1012/1920/657 999/1919/657 -f 1008/1923/667 997/1924/667 1000/1918/667 1011/1917/667 -f 1013/1925/668 1014/1926/668 1015/1927/668 1016/1928/668 -f 1017/1929/660 1014/1926/660 1018/1930/660 1019/1931/660 -f 1018/1930/669 1020/1932/669 1021/1933/669 1022/1934/669 -f 1023/1935/661 1020/1936/661 1013/1937/661 1024/1938/661 -f 1017/1929/659 1019/1931/659 1023/1939/659 1024/1940/659 -f 1018/1930/657 1014/1926/657 1013/1925/657 1020/1932/657 -f 1025/1941/670 1022/1942/670 1021/1943/670 1026/1944/670 -f 1019/1931/660 1018/1930/660 1022/1942/660 1025/1941/660 -f 1020/1936/671 1023/1935/671 1026/1944/671 1021/1943/671 -f 1023/1939/672 1019/1931/672 1025/1945/672 1026/1946/672 -f 1027/1947/673 1016/1948/673 1015/1949/673 1028/1950/673 -f 1017/1929/674 1024/1940/674 1027/1951/674 1028/1952/674 -f 1014/1926/660 1017/1929/660 1028/1950/660 1015/1949/660 -f 1024/1953/675 1013/1954/675 1016/1948/675 1027/1947/675 -f 1029/1955/668 1030/1956/668 1031/1957/668 1032/1958/668 -f 1033/1959/661 1034/1960/661 1035/1961/661 1032/1958/661 -f 1035/1961/669 1036/1962/669 1037/1963/669 1038/1964/669 -f 1039/1965/660 1040/1966/660 1029/1967/660 1038/1968/660 -f 1033/1959/659 1040/1969/659 1039/1970/659 1034/1960/659 -f 1035/1961/657 1038/1964/657 1029/1955/657 1032/1958/657 -f 1041/1971/670 1042/1972/670 1037/1973/670 1036/1974/670 -f 1034/1960/661 1041/1971/661 1036/1974/661 1035/1961/661 -f 1038/1968/676 1037/1973/676 1042/1972/676 1039/1965/676 -f 1039/1970/672 1042/1975/672 1041/1976/672 1034/1960/672 -f 1043/1977/673 1044/1978/673 1031/1979/673 1030/1980/673 -f 1033/1959/674 1044/1981/674 1043/1982/674 1040/1969/674 -f 1032/1958/661 1031/1979/661 1044/1978/661 1033/1959/661 -f 1040/1983/677 1043/1977/677 1030/1980/677 1029/1984/677 -o Trigger_Cube.008 -v -0.906556 -0.031746 3.035327 -v -0.906556 -0.031746 2.964673 -v -0.750972 -0.031746 2.964673 -v -0.750972 -0.031746 3.035327 -v -0.891840 -0.172320 2.964673 -v -0.891840 -0.172320 3.035327 -v -0.858049 -0.254618 3.035327 -v -0.773318 -0.237178 3.035327 -v -0.781494 -0.172320 3.035327 -v -0.781494 -0.172320 2.964673 -v -0.752234 -0.268743 3.035327 -v -0.752234 -0.268743 2.964673 -v -0.773318 -0.237178 2.964673 -v -0.858049 -0.254618 2.964673 -v -0.786277 -0.298175 3.035327 -v -0.786277 -0.298175 2.964673 -vt 0.732975 0.555968 -vt 0.732975 0.444032 -vt 0.960872 0.444032 -vt 0.960872 0.555968 -vt 0.629883 0.999902 -vt 0.501865 0.816180 -vt 0.634112 0.701846 -vt 0.816347 0.838695 -vt 0.816347 0.161306 -vt 0.634112 0.298154 -vt 0.501866 0.183820 -vt 0.629884 0.000098 -vt 0.457090 0.682536 -vt 0.576709 0.615643 -vt 0.629409 0.555968 -vt 0.569271 0.555968 -vt 0.569271 0.444032 -vt 0.629409 0.444032 -vt 0.576709 0.384356 -vt 0.457091 0.317464 -vt 0.224023 0.444032 -vt 0.364968 0.444032 -vt 0.364968 0.555968 -vt 0.224023 0.555967 -vt 0.497976 0.555968 -vt 0.497976 0.444032 -vt 0.000098 0.555967 -vt 0.000098 0.444032 -vn 0.9772 -0.2122 0.0000 -vn 0.0000 0.0000 1.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.8316 0.5554 0.0000 -vn 0.9921 0.1251 0.0000 -vn -0.9251 -0.3798 0.0000 -vn 0.6540 -0.7565 0.0000 -vn -0.5188 -0.8549 0.0000 -vn -0.9946 -0.1041 0.0000 -s off -f 1053/1985/678 1054/1986/678 1047/1987/678 1048/1988/678 -f 1045/1989/679 1050/1990/679 1053/1991/679 1048/1992/679 -f 1047/1993/680 1054/1994/680 1049/1995/680 1046/1996/680 -f 1050/1990/679 1051/1997/679 1052/1998/679 1053/1991/679 -f 1052/1999/681 1055/2000/681 1056/2001/681 1057/2002/681 -f 1054/1994/680 1057/2003/680 1058/2004/680 1049/1995/680 -f 1053/1985/682 1052/1999/682 1057/2002/682 1054/1986/682 -f 1049/2005/683 1058/2006/683 1051/2007/683 1050/2008/683 -f 1056/2001/684 1055/2000/684 1059/2009/684 1060/2010/684 -f 1058/2006/685 1060/2010/685 1059/2009/685 1051/2007/685 -f 1051/1997/679 1059/2009/679 1055/2000/679 1052/1998/679 -f 1057/2003/680 1056/2001/680 1060/2010/680 1058/2004/680 -f 1049/2005/686 1050/2008/686 1045/2011/686 1046/2012/686 -o TriggerGuard_Cube.007 -v -0.991593 0.009137 3.090896 -v -0.991593 0.050129 3.090896 -v -0.991593 0.050129 2.909104 -v -0.991593 0.009137 2.909104 -v -0.359255 0.050129 2.909104 -v -0.359255 0.009137 2.909104 -v -0.359255 0.050129 3.090896 -v -0.359255 0.009137 3.090896 -v -0.952793 -0.032302 3.079741 -v -0.475801 -0.032302 3.079741 -v -0.398056 -0.032302 3.079741 -v -0.952793 -0.032302 2.920259 -v -0.477062 -0.032302 2.920259 -v -0.398056 -0.032302 2.920259 -v -0.547697 -0.243266 2.920259 -v -0.468691 -0.243266 2.920259 -v -0.417833 -0.308250 2.920259 -v -0.496840 -0.308250 2.920259 -v -0.468691 -0.243266 3.079741 -v -0.546437 -0.243266 3.079741 -v -0.495579 -0.308250 3.079741 -v -0.884730 -0.317360 2.926286 -v -0.883469 -0.317360 3.085769 -v -0.417833 -0.308250 3.079741 -v -0.548320 -0.390292 3.079741 -v -0.549581 -0.390292 2.920259 -v -0.470574 -0.390292 2.920259 -v -0.470574 -0.390292 3.079741 -v -0.933383 -0.398929 2.926286 -v -0.932122 -0.398929 3.085769 -v -1.071287 -0.315922 3.087949 -v -1.072548 -0.315922 2.928467 -v -1.022634 -0.234353 3.087949 -v -1.023895 -0.234353 2.928467 -vt 0.956076 0.222809 -vt 0.956106 0.245106 -vt 0.612150 0.245577 -vt 0.612119 0.223279 -vt 0.589852 0.245607 -vt 0.612285 0.344461 -vt 0.589988 0.344491 -vt 0.612315 0.366758 -vt 0.956241 0.343990 -vt 0.956272 0.366288 -vt 0.935199 0.389660 -vt 0.675742 0.390014 -vt 0.633453 0.390072 -vt 0.724411 0.676828 -vt 0.465641 0.676037 -vt 0.465221 0.589286 -vt 0.724676 0.590079 -vt 0.633193 0.199908 -vt 0.676167 0.199849 -vt 0.934939 0.199494 -vt 0.559100 0.338466 -vt 0.558982 0.251717 -vt 0.714431 0.085044 -vt 0.671457 0.085103 -vt 0.643744 0.049793 -vt 0.686720 0.049734 -vt 0.438087 0.338631 -vt 0.437968 0.251882 -vt 0.714322 0.504715 -vt 0.672032 0.504773 -vt 0.344631 0.676928 -vt 0.344210 0.590177 -vt 0.299324 0.590176 -vt 0.299745 0.676927 -vt 0.088672 0.676342 -vt 0.088251 0.589590 -vt 0.393201 0.338693 -vt 0.393082 0.251943 -vt 0.686706 0.540101 -vt 0.644417 0.540159 -vt 0.297859 0.338823 -vt 0.297055 0.252076 -vt 0.340030 0.252017 -vt 0.340149 0.338766 -vt 0.715456 0.584688 -vt 0.673166 0.584746 -vt 0.672371 0.005128 -vt 0.715347 0.005069 -vt 0.088240 0.255640 -vt 0.089045 0.342389 -vt 0.000907 0.343793 -vt 0.000102 0.257045 -vt 0.924132 0.000102 -vt 0.897728 0.044507 -vt 0.897730 0.544750 -vt 0.924255 0.589082 -vt 0.999898 0.045153 -vt 0.973494 0.089559 -vt 0.000523 0.676182 -vt 0.000102 0.589431 -vt 0.973372 0.499490 -vt 0.999898 0.543823 -vn 0.0000 0.0000 -1.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.0000 1.0000 -vn 0.0000 -0.2599 0.9656 -vn 0.0000 1.0000 0.0000 -vn 0.0000 -1.0000 -0.0000 -vn 0.0000 -0.2599 -0.9656 -vn 0.7300 -0.6835 -0.0000 -vn 0.9483 -0.3175 0.0000 -vn -0.9482 0.3175 0.0075 -vn -0.0235 0.9997 0.0002 -vn -0.0233 0.9997 0.0014 -vn -0.0222 0.9998 0.0002 -vn 0.7875 0.6163 0.0000 -vn -0.7875 -0.6163 0.0062 -vn 0.8412 -0.5408 -0.0000 -vn -0.5122 -0.8588 0.0053 -vn -0.5132 -0.8582 0.0046 -vn -0.5122 -0.8589 0.0040 -vn -0.0158 0.0098 -0.9998 -vn -0.0152 0.0109 -0.9998 -vn -0.0146 0.0096 -0.9998 -vn 0.0158 -0.0098 0.9998 -vn 0.0151 -0.0109 0.9998 -vn 0.0170 -0.0103 0.9998 -vn 0.0225 -0.9997 -0.0002 +vn -0.3635 0.0000 -0.9316 +vn -0.1189 -0.0040 0.9929 +vn 0.2846 0.0710 0.9560 +vn 0.9703 0.2419 0.0000 +vn 0.3229 -0.9464 0.0000 +vn 0.1401 -0.0562 -0.9885 +vn -0.9994 -0.0338 -0.0000 +vn -0.0801 0.0322 -0.9963 +vn -0.2273 -0.9738 0.0000 +vn 0.0000 0.3632 0.9317 +vn 0.0000 0.0717 0.9974 +vn -0.2430 0.4146 0.8769 +vn 0.0167 -0.9999 0.0000 +vn -0.2238 0.2670 0.9374 +vn 0.0000 0.3632 -0.9317 +vn 0.0000 0.0717 -0.9974 +vn -0.1148 0.0713 0.9908 +vn -0.4819 -0.8762 0.0000 +vn -0.2445 0.9696 0.0000 +vn 0.5997 0.8003 0.0000 +vn 0.2631 0.3512 0.8986 +vn 0.9589 0.2839 0.0000 +vn -0.8655 0.5010 0.0000 +vn -0.0911 0.3614 -0.9279 +vn 0.1538 0.5175 -0.8417 +vn 0.0000 0.4274 0.9040 +vn -0.6183 0.7860 -0.0009 +vn -0.0001 0.4296 -0.9030 +vn 0.7944 -0.6074 0.0000 +vn -0.7944 -0.6074 0.0000 +vn 0.9838 -0.1658 0.0687 +vn -0.8418 0.2066 0.4987 +vn -0.9846 -0.0670 0.1617 +vn -0.9846 -0.0670 -0.1617 +vn 0.9838 0.1658 -0.0687 +vn 0.9838 -0.1658 -0.0687 +vn 0.4296 0.3456 0.8343 +vn 0.4296 -0.3456 -0.8343 +vn 0.4296 0.3456 -0.8343 +vn 0.4296 0.8343 0.3456 +vn 0.4296 -0.3456 0.8343 +vn -0.0913 0.8947 0.4372 +vn 0.8293 -0.2138 0.5162 +vn 0.8293 0.5162 -0.2138 +vn 0.0464 -0.8899 0.4538 +vn 0.8293 0.2138 -0.5162 +vn 0.8293 -0.2138 -0.5162 +vn 0.8293 0.5162 0.2138 +vn -0.8418 -0.2066 0.4987 +vn -0.0166 -0.3826 -0.9238 +vn -0.0166 0.3826 -0.9238 +vn -0.0166 0.3826 0.9238 +vn -0.0165 -0.9238 -0.3826 +vn 0.1008 -0.2962 -0.9498 +vn 0.0000 -0.3828 -0.9239 +vn -0.8680 0.4588 0.1900 +vn -0.8680 -0.1900 -0.4588 +vn 0.8623 0.1938 -0.4678 +vn -0.8680 -0.4588 -0.1900 +vn 0.8623 0.1938 0.4678 +vn 0.9838 0.0687 0.1658 +vn -0.9846 -0.1617 -0.0670 +vn 0.9838 -0.0687 -0.1658 +vn 0.9838 -0.0687 0.1658 +vn 0.9838 0.0687 -0.1658 +vn -0.9846 0.0670 0.1617 +vn 0.0915 0.3811 0.9200 +vn 0.0915 0.3811 -0.9200 +vn 0.0915 -0.3811 -0.9200 +vn -0.8680 0.1900 -0.4588 +vn -0.8680 0.1900 0.4588 +vn 0.8623 0.4678 -0.1938 +vn 0.8623 -0.1938 0.4678 +vn 0.8623 -0.1938 -0.4678 +vn 0.2182 0.3735 0.9016 +vn -0.0497 0.9227 -0.3822 +vn 0.2182 -0.3735 -0.9016 +vn 0.2182 -0.9016 0.3735 +vn 0.2182 -0.9016 -0.3735 +vn 0.2182 -0.3735 0.9016 +vn -0.0497 0.9227 0.3822 +vn -0.0497 0.3822 -0.9227 +vn -0.0497 -0.3822 -0.9227 +vn -0.0497 -0.3822 0.9227 +vn -0.0497 0.3822 0.9227 +vn 0.3223 -0.8746 -0.3623 +vn 0.3223 0.3623 0.8746 +vn 0.3223 0.3623 -0.8746 +vn 0.3223 0.8746 -0.3623 +vn 0.3223 -0.3623 -0.8746 +vn 0.0000 0.9649 -0.2626 +vn -0.1533 0.3782 0.9130 +vn 0.8293 0.2138 0.5162 +vn -0.1218 0.9170 -0.3798 +vn 0.7075 0.6639 -0.2423 +vn 0.0068 -1.0000 0.0000 +vn 0.6287 0.0000 0.7776 +vn -0.0166 0.9238 -0.3826 +vn -0.8680 0.4588 -0.1900 +vn -0.6679 0.7442 0.0000 +vn -0.6040 -0.2625 -0.7525 +vn -0.6040 -0.2625 0.7525 +vn -0.0187 0.9998 0.0000 +vn -0.0453 -0.3552 -0.9337 +vn 0.0951 -0.3032 -0.9482 +vn 0.1008 -0.2962 0.9498 +vn 0.0915 -0.9200 -0.3811 +vn 0.2182 0.9016 0.3735 +vn 0.3223 -0.3623 0.8746 +vn 0.0951 -0.3032 0.9482 +vn 0.9838 0.1658 0.0687 +vn 0.4296 -0.8343 -0.3456 +vn -0.0165 -0.3826 0.9238 +vn -0.0165 -0.9238 0.3826 +vn 0.8623 -0.4678 -0.1938 +vn 0.2182 0.3735 -0.9016 +vn 0.6968 0.6616 0.2771 +vn -0.9996 -0.0199 0.0200 +vn 0.0915 0.9200 -0.3811 +vn -0.0453 -0.3552 0.9337 +vn -0.8418 -0.4987 0.2066 +vn -0.0497 -0.9227 0.3822 +vn -0.8418 0.4987 0.2066 +vn 0.3746 -0.9272 0.0000 +vn 0.0000 -0.8730 -0.4877 +vn 0.0000 -0.4721 0.8815 +vn 0.0120 -0.3847 0.9230 +vn 0.3071 -0.7601 0.5727 +vn 0.1144 -0.4166 0.9019 +vn 0.1144 -0.4166 -0.9019 +vn -0.9846 0.1617 0.0670 +vn 0.4296 -0.8343 0.3456 +vn 0.0915 0.9200 0.3811 +vn 0.4296 0.8343 -0.3456 +vn 0.8623 -0.4678 0.1938 +vn -0.0497 -0.9227 -0.3822 +vn 0.3223 0.8746 0.3623 +vn 0.8293 -0.5162 -0.2138 +vn -0.9846 -0.1617 0.0670 +vn 0.9997 -0.0244 0.0000 +vn -0.0476 -0.3025 -0.9520 +vn 0.0120 -0.3847 -0.9230 +vn 0.0000 -0.9012 -0.4335 +vn 0.0000 -0.8684 0.4959 +vn -0.0054 -0.3046 0.9525 +vn -0.0054 -0.3046 -0.9525 +vn -0.0047 0.8931 0.4497 +vn -0.0882 0.3033 0.9488 +vn -0.0827 0.3007 -0.9501 +vn 0.0271 0.9095 0.4149 +vn 0.1157 0.9174 -0.3807 +vn 0.0881 0.3478 -0.9334 +vn 0.0018 0.3018 -0.9534 +vn -0.0090 0.9031 -0.4294 +vn -0.0160 0.9203 0.3908 +vn -0.0214 0.3851 0.9226 +vn -0.9952 -0.0952 0.0245 +vn 0.0000 0.5505 -0.8349 +vn -0.9938 0.1009 -0.0477 +vn 0.9884 0.1326 -0.0741 +vn 0.0000 -0.7129 -0.7012 +vn 0.9976 -0.0694 0.0010 +vn 0.0049 -0.9714 0.2372 +vn -0.0045 0.8583 -0.5131 +vn 0.0014 -0.3780 -0.9258 +vn 0.9905 0.1284 -0.0490 +vn 0.0049 -0.9716 0.2367 +vn -0.9957 -0.0410 -0.0837 +vn 0.9959 -0.0250 -0.0874 +vn -0.0046 0.8581 -0.5135 +vn -0.9919 0.1050 -0.0715 +vn 0.9172 -0.1506 -0.3689 +vn 0.0046 -0.9528 -0.3036 +vn -0.0031 0.5229 -0.8524 +vn 0.0017 -0.3780 -0.9258 +vn -0.0028 0.4716 -0.8818 +vn -0.8491 -0.1997 -0.4891 +vn 0.8460 -0.1961 -0.4958 +vn 0.0018 -0.3780 -0.9258 +vn -0.0026 0.4282 -0.9037 +vn -0.8941 -0.1750 -0.4123 +vn 0.8917 -0.1711 -0.4191 +vn 0.0045 -0.9351 -0.3544 +vn 0.0044 -0.9187 -0.3950 +vn -0.9196 -0.1544 -0.3613 +vn -0.5507 -0.3194 -0.7712 +vn 0.0050 -0.9715 0.2371 +vn 0.0000 -0.9012 0.4335 +vn 0.0000 0.8607 -0.5091 +vn 0.0015 0.8611 -0.5085 +vn -0.8418 0.2066 -0.4987 +vn -0.8418 -0.2066 -0.4987 +vn -0.8680 -0.1900 0.4588 +vn -0.8680 -0.4588 0.1900 +vn -0.9846 0.0670 -0.1617 +vn 0.0915 -0.3811 0.9200 +vn 0.8623 0.4678 0.1938 +vn 0.3223 -0.8746 0.3623 +vn 0.6287 0.0000 -0.7776 +vn -0.0165 0.9238 0.3826 +vn 0.0915 -0.9200 0.3811 +vn 0.2182 0.9016 -0.3735 +vn 0.1948 -0.9808 0.0000 +vn -0.8418 -0.4987 -0.2066 +vn -0.8418 0.4987 -0.2066 +vn -0.9846 0.1617 -0.0670 +vn 0.8293 -0.5162 0.2138 +vn -0.1409 0.9049 -0.4015 +vn 0.1561 0.3805 0.9115 +vn 1.0000 0.0017 -0.0001 +vn -0.2273 -0.8997 -0.3727 +vn -0.0913 0.8947 -0.4372 +vn 0.0864 0.8928 -0.4421 +vn -0.2272 -0.8997 0.3727 +vn -0.1218 0.9170 0.3798 +vn -0.1971 -0.3752 -0.9058 +vn -0.1970 -0.3752 0.9058 +vn -0.1533 0.3782 -0.9130 +vn 1.0000 0.0017 0.0004 +vn 1.0000 -0.0017 -0.0001 +vn 1.0000 0.0017 -0.0093 +vn 0.9999 0.0008 -0.0108 +vn 0.0864 0.8928 0.4421 +vn 0.0000 0.9649 0.2626 +vn 0.0000 0.8607 0.5091 +vn -0.0016 0.8610 0.5087 +vn 0.0005 0.9245 0.3812 +vn 0.0014 -0.3780 0.9258 +vn 0.0050 -0.9664 -0.2571 +vn -0.5507 -0.3194 0.7712 +vn -0.9140 -0.1581 0.3736 +vn 0.0053 -0.9195 0.3932 +vn 0.0057 -0.9362 0.3516 +vn 0.0017 -0.3780 0.9258 +vn 0.8917 -0.1711 0.4191 +vn -0.8883 -0.1782 0.4232 +vn -0.0032 0.4293 0.9031 +vn 0.0018 -0.3780 0.9258 +vn 0.8460 -0.1961 0.4958 +vn -0.8491 -0.1997 0.4891 +vn -0.0036 0.4732 0.8809 +vn -0.0038 0.5242 0.8516 +vn 0.0056 -0.9534 0.3016 +vn 0.9172 -0.1506 0.3689 +vn -0.9919 0.1050 0.0715 +vn -0.0046 0.8581 0.5135 +vn 0.9959 -0.0250 0.0874 +vn -0.9957 -0.0410 0.0837 +vn 0.0049 -0.9716 -0.2367 +vn 0.9905 0.1284 0.0490 +vn -0.0045 0.8583 0.5131 +vn 0.0049 -0.9714 -0.2372 +vn 0.9976 -0.0694 -0.0010 +vn 0.0000 -0.7129 0.7012 +vn 0.9884 0.1326 0.0741 +vn -0.9938 0.1009 0.0476 +vn 0.0000 0.5505 0.8349 +vn -0.9952 -0.0952 -0.0245 +vn 1.0000 -0.0030 0.0052 +vn 1.0000 -0.0017 0.0040 +vn 1.0000 -0.0008 0.0055 +vn 0.0464 -0.8899 -0.4538 +vn 0.0000 -0.8684 -0.4959 +vn -0.0476 -0.3025 0.9520 +vn 0.0000 -0.4721 -0.8815 +vn -0.2513 0.8942 0.3704 +vn -0.2513 -0.3704 0.8942 +vn -0.2513 0.8942 -0.3704 +vn -0.2513 -0.8942 -0.3704 +vn -0.2513 0.3704 0.8942 +vn -0.2513 0.3704 -0.8942 +vn -0.2513 -0.3704 -0.8942 +vn -0.2513 -0.8942 0.3704 +vn 0.8327 0.2119 -0.5115 +vn 0.8327 0.5115 0.2119 +vn 0.8327 -0.2119 0.5115 +vn 0.8327 -0.5115 -0.2119 +vn 0.8328 0.5115 -0.2119 +vn 0.8327 0.2119 0.5115 +vn 0.8327 -0.5115 0.2119 +vn 0.8327 -0.2119 -0.5115 +vn 0.5165 -0.7911 0.3277 +vn 0.5165 -0.3277 -0.7911 +vn 0.5164 0.3277 -0.7911 +vn 0.5165 0.7911 0.3277 +vn 0.5165 -0.3277 0.7911 +vn 0.5164 -0.7911 -0.3277 +vn 0.5164 0.7911 -0.3277 +vn 0.5165 0.3277 0.7911 +vn 0.8327 0.5115 -0.2119 +vn 0.5165 -0.7911 -0.3277 +vn 0.5165 0.3277 -0.7911 +vn -0.9087 0.4175 0.0000 +vn -0.4846 0.8748 0.0000 +vn 0.5399 0.8417 0.0000 +vn -0.6812 -0.7321 0.0000 +vn 0.9972 0.0747 0.0000 +vn -0.9087 -0.4175 0.0000 +vn -0.4846 -0.8748 0.0000 +vn 0.5399 -0.8417 0.0000 +vn -0.6812 0.7321 0.0000 +vn 0.9972 -0.0747 0.0000 +vn -0.9087 0.0000 0.4175 +vn -0.4846 0.0000 0.8748 +vn 0.5399 0.0000 0.8417 +vn -0.6812 -0.0000 -0.7321 +vn 0.9972 0.0000 0.0747 +vn -0.9087 0.0000 -0.4175 +vn -0.4846 0.0000 -0.8748 +vn 0.5399 0.0000 -0.8417 +vn -0.6812 -0.0000 0.7321 +vn 0.9972 0.0000 -0.0747 +vn -0.9087 0.2952 0.2952 +vn -0.4846 0.6185 0.6185 +vn 0.5399 0.5952 0.5952 +vn -0.6812 -0.5177 -0.5177 +vn 0.9972 0.0528 0.0528 +vn 0.0000 -0.7071 0.7071 +vn -0.9087 -0.2952 -0.2952 +vn -0.4846 -0.6185 -0.6185 +vn 0.5399 -0.5952 -0.5952 +vn -0.6812 0.5177 0.5177 +vn 0.9972 -0.0528 -0.0528 +vn 0.0000 0.7071 -0.7071 +vn -0.9087 -0.2952 0.2952 +vn -0.4846 -0.6185 0.6185 +vn 0.5399 -0.5952 0.5952 +vn -0.6812 0.5177 -0.5177 +vn 0.9972 -0.0528 0.0528 +vn 0.0000 -0.7071 -0.7071 +vn -0.9087 0.2952 -0.2952 +vn -0.4846 0.6185 -0.6185 +vn 0.5399 0.5952 -0.5952 +vn -0.6812 -0.5177 0.5177 +vn 0.9972 0.0528 -0.0528 +vn -0.0000 0.7071 0.7071 +vn -0.5000 -0.3505 0.7920 +vn -0.5000 -0.3505 -0.7920 +vn 0.4999 -0.3505 -0.7920 +vn 0.0000 0.7558 0.6549 +vn -0.9545 0.2981 0.0000 +vn 0.9792 -0.2029 -0.0000 +vn 1.0000 0.0012 -0.0021 +vn 1.0000 -0.0099 0.0001 +vn 0.5057 -0.3083 -0.8057 +vn -0.0010 0.0022 1.0000 +vn -0.0024 -0.0002 1.0000 +vn 0.0024 0.0001 -1.0000 +vn 0.0006 0.0024 -1.0000 +vn -0.0444 -0.5183 0.8540 +vn -0.0480 -0.5123 -0.8575 +vn -0.2050 -0.5011 0.8407 +vn -0.0303 0.5186 0.8545 +vn -0.2276 -0.4268 -0.8752 +vn -0.0436 0.5184 -0.8541 +vn -0.0837 0.9965 -0.0043 +vn -0.8999 0.4360 0.0000 +vn -0.0223 0.9998 0.0006 +vn -0.5132 -0.8583 0.0046 +vn -0.0159 0.0095 -0.9998 +vn -0.0152 0.0106 -0.9998 +vn -0.0148 0.0090 -0.9999 +vn 0.0158 -0.0101 0.9998 +vn 0.0170 -0.0105 0.9998 vn 0.0220 -0.9998 -0.0014 -vn 0.0238 -0.9997 -0.0002 +vn 0.0237 -0.9997 0.0003 +vn -0.8588 0.5122 0.0068 vn -0.0123 0.0059 -0.9999 vn -0.0127 0.0076 -0.9999 -vn -0.0116 0.0069 -0.9999 vn 0.5123 0.8588 -0.0053 vn 0.5112 0.8595 -0.0039 -vn 0.5122 0.8589 -0.0040 -vn 0.0126 -0.0061 0.9999 +vn 0.0126 -0.0062 0.9999 vn 0.0105 -0.0062 0.9999 -vn 0.0116 -0.0069 0.9999 +vn -0.0003 -0.9326 0.3608 +vn 0.8078 0.4660 0.3608 +vn -0.0003 -0.9326 -0.3609 +vn 0.8078 0.4660 -0.3608 +vn 0.8635 0.5043 0.0015 +vn -0.0016 0.0013 1.0000 +vn 0.0017 -0.0010 1.0000 +vn -0.0010 -0.0018 1.0000 +vn -0.8692 0.4944 -0.0020 +vn -0.8693 0.4943 0.0020 +vn 0.0010 -0.0017 -1.0000 +vn 0.0016 -0.0013 -1.0000 +vn 0.0017 0.0010 -1.0000 +vn -0.9999 -0.0109 -0.0005 +vn -0.0047 1.0000 -0.0010 +vn -0.0064 1.0000 -0.0020 +vn -0.0049 1.0000 0.0013 +vn 0.0006 0.0019 -1.0000 +vn 0.9999 0.0143 0.0013 +vn 0.0020 0.0002 1.0000 +vn -0.0000 0.0020 1.0000 +vn -0.5312 -0.1612 -0.8318 +vn -0.5312 -0.1612 0.8317 +vn -0.7050 0.7091 -0.0129 +vn -0.1102 0.0163 -0.9938 +vn -0.4866 0.0734 0.8705 +vn 0.9138 0.4059 0.0141 +vn -0.6209 0.0733 -0.7804 +vn -0.7075 -0.7066 -0.0129 +vn -0.3195 0.0434 -0.9466 +vn -0.3426 0.0452 0.9384 +vn -0.9534 0.3010 -0.0206 +vn -0.2953 0.0349 0.9548 +vn -0.8809 0.4730 -0.0163 +vn -0.9909 -0.1325 -0.0246 +vn -0.9824 0.1852 -0.0253 +vn -0.9994 0.0236 -0.0273 +vn -0.4566 0.0515 -0.8882 +vn -0.5938 0.0671 0.8018 +vn -0.1102 0.0163 0.9938 +vn 0.0445 -0.0050 0.9990 +vn -0.0753 0.0298 0.9967 +vn -0.4737 0.1296 -0.8711 +vn -0.0753 0.0298 -0.9967 +vn 0.0445 -0.0050 -0.9990 +vn -0.5089 0.0800 -0.8571 +vn -0.2460 0.0289 -0.9688 +vn -0.6947 -0.7193 0.0000 +vn -0.4737 0.1296 0.8711 +vn -0.2460 0.0289 0.9688 +vn 0.0009 0.0005 -1.0000 +vn -0.0010 0.0003 1.0000 +vn 0.3915 0.0009 -0.9202 +vn -0.0004 1.0000 -0.0010 +vn 0.3907 -0.0861 -0.9165 +vn 0.3901 -0.0868 -0.9167 +vn 0.0006 0.0001 1.0000 +vn -0.0006 0.0000 -1.0000 +vn -0.0000 -0.0006 -1.0000 +vn -0.1957 0.4353 -0.8788 +vn -0.5474 0.1418 0.8247 +vn 0.9777 -0.2102 0.0004 +vn 0.9778 -0.2095 0.0005 +vn 0.9766 -0.2151 0.0002 +vn 0.4679 0.0369 0.8830 +vn 0.3899 -0.0842 0.9170 +vn 0.3909 -0.0838 0.9166 +vn 0.3899 0.1121 -0.9140 +vn 0.3898 -0.0835 -0.9171 +vn 0.0053 1.0000 -0.0001 +vn 0.3901 -0.0856 0.9168 +vn 0.0038 -0.3827 -0.9239 +vn 0.0038 0.3827 -0.9239 +vn -0.0059 0.9258 -0.3779 +vn -0.0059 0.9258 0.3779 +vn -0.0059 -0.9258 0.3779 +vn -0.0059 -0.9258 -0.3779 +vn 0.0340 0.3825 0.9233 +vn 0.0340 -0.3825 0.9233 +vn 0.0340 -0.9233 0.3825 +vn 0.0340 -0.9233 -0.3825 +vn -0.0434 -0.9230 -0.3823 +vn -0.0434 -0.9230 0.3823 +vn -0.9907 -0.1259 0.0522 +vn -0.9966 0.0762 0.0315 +vn 0.9966 0.0762 -0.0316 +vn -0.9907 -0.0522 -0.1259 +vn -0.0434 0.9230 0.3823 +vn -0.0434 0.9230 -0.3823 +vn -0.9907 0.1260 -0.0522 +vn -0.9907 0.0522 0.1259 +vn -0.9907 0.1260 0.0522 +vn -0.9907 0.0522 -0.1260 +vn 0.9966 0.0762 0.0315 +vn -0.9907 -0.1260 -0.0522 +vn 0.9966 0.0315 -0.0762 +vn -0.9907 -0.0522 0.1260 +vn -0.9966 -0.0315 0.0761 +vn 0.9919 -0.0486 0.1174 +vn -0.9966 0.0315 0.0762 +vn -0.9966 0.0761 -0.0315 +vn 0.9919 0.0486 0.1173 +vn -0.0801 0.0322 0.9963 +vn 0.1401 -0.0562 0.9885 +vn 0.2846 0.0710 -0.9560 +vn -0.1189 -0.0040 -0.9929 +vn -0.2433 0.4167 -0.8759 +vn 0.0724 0.0716 -0.9948 +vn 0.0721 0.0716 0.9948 +vn -0.0911 0.3614 0.9279 +vn -0.1148 0.0713 -0.9908 +vn 0.5997 0.8002 0.0000 +vn 0.1538 0.5175 0.8417 +vn -0.2238 0.2670 -0.9374 +vn 0.2631 0.3512 -0.8986 +vn -0.6174 0.7866 0.0000 +vn -0.0001 0.4265 -0.9045 +vn 0.0000 0.4280 -0.9038 +vn -0.0165 -0.3826 -0.9238 +vn -0.0165 0.3826 -0.9238 +vn -0.0165 0.3826 0.9238 +vn -0.0166 -0.9238 -0.3826 +vn 0.6968 0.6616 -0.2771 +vn -0.0165 0.9238 -0.3826 +vn -0.5855 0.7664 0.2642 +vn -0.6287 0.0000 -0.7776 +vn -0.6287 0.0000 0.7776 +vn -0.5855 0.7664 -0.2642 +vn 0.0000 0.9224 -0.3863 +vn 0.0000 0.9224 0.3863 +vn -0.0166 -0.3826 0.9238 +vn -0.0166 -0.9238 0.3826 +vn 0.7075 0.6639 0.2423 +vn -0.9943 0.0422 -0.0983 +vn -0.9996 -0.0201 -0.0197 +vn -0.9998 -0.0177 0.0000 +vn -0.9943 0.0422 0.0983 +vn 0.3071 -0.7601 -0.5727 +vn 0.0000 -0.8730 0.4877 +vn 0.9865 0.0625 -0.1514 +vn 0.9865 0.0625 0.1514 +vn 0.9990 -0.0137 0.0428 +vn 0.9990 -0.0137 -0.0428 +vn -0.0052 -0.3029 0.9530 +vn -0.0052 -0.3029 -0.9530 +vn -0.1503 0.9100 0.3864 +vn -0.0827 0.3007 0.9501 +vn -0.0882 0.3033 -0.9488 +vn 0.1146 0.9216 0.3708 +vn 0.0212 0.9029 -0.4293 +vn 0.1561 0.3805 -0.9115 +vn -0.0214 0.3851 -0.9226 +vn -0.0162 0.9139 -0.4055 +vn -0.0085 0.9098 0.4150 +vn 0.0018 0.3018 0.9534 +vn -0.9938 0.1009 -0.0476 +vn 0.0000 -0.9716 0.2367 +vn 0.0000 0.8580 -0.5136 +vn 0.0013 -0.3780 -0.9258 +vn 0.0000 -0.9727 0.2319 +vn -0.0017 -0.9728 0.2318 +vn -0.0045 0.8580 -0.5136 +vn -0.0045 0.8483 -0.5295 +vn 0.0000 0.8535 -0.5210 +vn 0.9172 -0.1505 -0.3688 +vn 0.0056 -0.9534 -0.3016 +vn -0.0038 0.5242 -0.8516 +vn -0.0036 0.4732 -0.8809 +vn 0.8531 -0.1929 -0.4848 +vn -0.0032 0.4293 -0.9031 +vn -0.8883 -0.1782 -0.4232 +vn 0.8917 -0.1710 -0.4190 +vn 0.0057 -0.9361 -0.3516 +vn 0.0053 -0.9195 -0.3932 +vn -0.9140 -0.1581 -0.3736 +vn -0.5515 -0.3178 -0.7713 +vn 0.0000 -0.9691 0.2466 +vn 0.0050 -0.9664 0.2571 +vn 0.0008 0.9233 -0.3841 +vn -0.0166 0.9238 0.3826 +vn -0.0061 0.8873 -0.4611 +vn 0.0881 0.3478 0.9334 +vn 1.0000 0.0016 -0.0006 +vn 1.0000 0.0011 -0.0013 +vn -0.1970 -0.3752 -0.9058 +vn 1.0000 0.0014 -0.0009 +vn 1.0000 -0.0000 -0.0034 +vn 1.0000 -0.0020 -0.0057 +vn 1.0000 -0.0017 -0.0040 +vn -0.0013 -0.9234 -0.3838 +vn 0.0000 -0.9691 -0.2466 +vn 0.0050 -0.9715 -0.2371 +vn -0.5515 -0.3178 0.7713 +vn -0.9196 -0.1544 0.3613 +vn 0.0044 -0.9187 0.3950 +vn 0.0045 -0.9351 0.3544 +vn 0.8917 -0.1710 0.4190 +vn -0.8941 -0.1750 0.4123 +vn -0.0026 0.4282 0.9037 +vn 0.8531 -0.1929 0.4848 +vn -0.0028 0.4716 0.8818 +vn -0.0031 0.5229 0.8524 +vn 0.0046 -0.9528 0.3036 +vn 0.9172 -0.1505 0.3688 +vn -0.0045 0.8580 0.5136 +vn 0.0000 0.8535 0.5210 +vn -0.0045 0.8483 0.5295 +vn 0.0000 -0.9727 -0.2319 +vn -0.0012 -0.9730 -0.2307 +vn 0.0013 -0.3780 0.9258 +vn 0.0000 0.8580 0.5136 +vn 0.0000 -0.9716 -0.2367 +vn 0.9999 0.0005 0.0125 +vn 0.9999 0.0008 0.0108 +vn -0.0001 -0.9232 0.3843 +vn 0.5164 -0.7911 0.3277 +vn 0.5164 -0.3277 -0.7911 +vn 0.5164 0.7911 0.3277 +vn 0.5165 0.7911 -0.3277 +vn 0.5164 -0.3277 0.7911 +vn 0.0641 -0.4932 -0.8676 +vn 0.0641 0.4932 0.8676 +vn 0.0641 0.8676 -0.4932 +vn 0.0641 -0.8676 0.4932 +vn 0.0641 0.2648 -0.9622 +vn 0.0641 -0.2648 0.9622 +vn 0.0641 0.9622 0.2648 +vn 0.0641 -0.9622 -0.2648 s off -f 1064/2013/687 1063/2014/687 1065/2015/687 1066/2016/687 -f 1066/2017/688 1065/2015/688 1067/2018/688 1068/2019/688 -f 1068/2020/689 1067/2018/689 1062/2021/689 1061/2022/689 -f 1068/2020/690 1061/2022/690 1069/2023/690 1070/2024/690 1071/2025/690 -f 1065/2015/691 1063/2014/691 1062/2021/691 1067/2018/691 -f 1072/2026/692 1073/2027/692 1070/2028/692 1069/2029/692 -f 1064/2013/693 1066/2016/693 1074/2030/693 1073/2031/693 1072/2032/693 -f 1066/2017/694 1068/2019/694 1071/2033/694 1074/2034/694 -f 1075/2035/687 1076/2036/687 1077/2037/687 1078/2038/687 -f 1074/2034/695 1071/2033/695 1079/2039/695 1076/2040/695 -f 1071/2025/689 1070/2024/689 1080/2041/689 1079/2042/689 -f 1070/2028/696 1073/2027/696 1075/2043/696 1080/2044/696 -f 1073/2031/687 1074/2030/687 1076/2036/687 1075/2035/687 -f 1081/2045/697 1078/2046/697 1082/2047/698 1083/2048/699 -f 1076/2040/700 1079/2039/700 1084/2049/700 1077/2050/700 -f 1080/2044/701 1075/2043/701 1078/2046/701 1081/2045/701 -f 1079/2042/689 1080/2041/689 1081/2051/689 1084/2052/689 -f 1085/2053/692 1086/2054/692 1087/2055/692 1088/2056/692 -f 1084/2052/689 1081/2051/689 1085/2057/689 1088/2058/689 -f 1078/2038/687 1077/2037/687 1087/2059/687 1086/2060/687 -f 1077/2050/702 1084/2049/702 1088/2056/702 1087/2055/702 -f 1089/2061/703 1090/2062/704 1091/2063/705 1092/2064/705 -f 1078/2038/706 1086/2060/706 1089/2065/707 1082/2066/708 -f 1085/2057/709 1081/2051/709 1083/2067/710 1090/2068/711 -f 1086/2054/712 1085/2053/712 1090/2062/713 1089/2061/714 -f 1082/2066/715 1089/2065/716 1092/2069/717 1094/2070/717 -f 1083/2048/718 1082/2047/719 1094/2071/720 1093/2072/720 -f 1090/2068/721 1083/2067/722 1093/2073/723 1091/2074/723 -o UndeRail_Cube.005 -v -1.185225 0.299229 2.771775 -v -1.185225 0.078919 2.771775 -v -1.579320 0.146982 2.771775 -v -1.579320 0.299229 2.771775 -v -0.726389 0.070637 2.798583 -v -0.726389 0.299229 2.798583 -v -0.726389 0.299229 3.201417 -v -0.726389 0.070637 3.201417 -v -0.770558 0.343398 2.798583 -v -1.096886 0.343398 2.798583 -v -1.096886 0.343398 3.201417 -v -0.770558 0.343398 3.201417 -v -1.185225 0.078919 3.228225 -v -1.185225 0.299229 3.228225 -v -1.579320 0.299229 3.228225 -v -1.579320 0.146982 3.228225 -v -1.185225 0.343398 3.201417 -v -1.185225 0.343398 2.798583 -v -1.579320 0.343398 2.798583 -v -1.579320 0.343398 3.201417 -v -1.096886 0.026467 2.798583 -v -0.770558 0.026467 2.798583 -v -0.770558 0.026467 3.201417 -v -1.096886 0.026467 3.201417 -v -1.096886 0.070637 2.771775 -v -1.096886 0.299229 2.771775 -v -0.770558 0.299229 2.771775 -v -0.770558 0.070637 2.771775 -v -0.770558 0.070637 3.228225 -v -0.770558 0.299229 3.228225 -v -1.096886 0.299229 3.228225 -v -1.096886 0.070637 3.228225 -v -1.690351 0.200246 3.201417 -v -1.690351 0.287913 3.201417 -v -1.690351 0.287913 2.798583 -v -1.690351 0.200246 2.798583 -v -1.184581 0.033984 3.201417 -v -1.184581 0.033984 2.798583 -v -1.659805 0.134929 3.201417 -v -1.579964 0.102270 3.201417 -v -1.667659 0.194088 3.228225 -v -1.667659 0.291126 3.228225 -v -1.646801 0.339453 3.201417 -v -1.659805 0.134929 2.798583 -v -1.667659 0.194088 2.771775 -v -1.579964 0.102270 2.798583 -v -1.667040 0.336028 2.798583 -v -1.667659 0.291126 2.771775 -vt 0.496907 0.334267 -vt 0.496248 0.427323 -vt 0.330718 0.396651 -vt 0.331617 0.332937 -vt 0.796702 0.313152 -vt 0.699270 0.313152 -vt 0.699270 0.141452 -vt 0.796702 0.141452 -vt 0.672646 0.313152 -vt 0.534343 0.312606 -vt 0.534099 0.142197 -vt 0.672646 0.141452 -vt 0.495875 0.027439 -vt 0.496587 0.120544 -vt 0.331121 0.122196 -vt 0.330318 0.058264 -vt 0.496747 0.142387 -vt 0.497024 0.312498 -vt 0.332011 0.311404 -vt 0.331527 0.143826 -vt 0.962417 0.313152 -vt 0.823327 0.313152 -vt 0.823327 0.141452 -vt 0.962417 0.141452 -vt 0.533520 0.431122 -vt 0.534247 0.334472 -vt 0.672551 0.335076 -vt 0.671920 0.432340 -vt 0.671602 0.022049 -vt 0.672523 0.119489 -vt 0.533976 0.120298 -vt 0.533160 0.023583 -vt 0.237618 0.142584 -vt 0.274533 0.143000 -vt 0.272621 0.312625 -vt 0.235706 0.312209 -vt 0.495520 0.005286 -vt 0.532760 0.001691 -vt 0.495918 0.449476 -vt 0.533168 0.453017 -vt 0.817912 0.125359 -vt 0.796702 0.119430 -vt 0.678060 0.125358 -vt 0.699270 0.119430 -vt 0.817912 0.329246 -vt 0.796702 0.335174 -vt 0.678060 0.329246 -vt 0.699270 0.335174 -vt 0.294957 0.050376 -vt 0.328880 0.036291 -vt 0.292958 0.078293 -vt 0.293666 0.119719 -vt 0.302947 0.143203 -vt 0.295361 0.404466 -vt 0.293427 0.376539 -vt 0.329265 0.418612 -vt 0.295134 0.312879 -vt 0.294347 0.335145 -vt 0.208418 0.134257 -vt 0.235192 0.127765 -vt 0.276053 0.128226 -vt 0.300664 0.131838 -vt 0.206326 0.319876 -vt 0.232947 0.326970 -vt 0.294189 0.319085 -vt 0.273808 0.327430 -vt 0.999933 0.141452 -vt 0.999933 0.313152 -vt 0.671720 0.454277 -vt 0.671350 0.000067 -vt 0.169020 0.311458 -vt 0.170932 0.141832 -vt 0.207256 0.142242 -vt 0.205344 0.311867 -vt 0.000067 0.309553 -vt 0.001979 0.139928 -vn 0.0000 0.0000 -1.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0000 1.0000 0.0000 -vn 0.0000 0.0000 1.0000 -vn 0.0000 -1.0000 -0.0000 -vn -1.0000 0.0000 0.0000 -vn -0.0462 -0.5153 0.8558 -vn 0.0000 0.5189 0.8549 -vn -0.0462 -0.5153 -0.8558 -vn 0.0000 0.5189 -0.8549 -vn 0.4606 -0.4605 0.7588 -vn 0.4605 0.4606 0.7588 -vn 0.4606 -0.4605 -0.7588 -vn 0.4605 0.4606 -0.7588 -vn -0.2180 -0.4596 0.8610 -vn -0.0393 0.5077 0.8606 -vn -0.2180 -0.4596 -0.8610 -vn -0.0453 0.5154 -0.8557 -vn -0.7527 -0.3520 0.5563 -vn -0.6638 0.5609 0.4947 -vn -0.7527 -0.3520 -0.5563 -vn -0.7340 0.3556 -0.5787 -vn -0.0854 -0.9963 -0.0000 -vn 0.0000 -0.5188 -0.8549 -vn 0.5189 0.0000 -0.8549 -vn 0.7071 -0.7071 -0.0000 -vn 0.7071 0.7071 0.0000 -vn 0.5189 0.0000 0.8549 -vn 0.0000 -0.5188 0.8549 -vn -0.3786 -0.9256 -0.0000 -vn -0.0727 0.9974 -0.0024 -vn -0.0883 -0.5113 0.8549 -vn -0.0883 -0.5113 -0.8549 -vn -0.9058 -0.4236 -0.0000 -vn -0.7633 0.0000 0.6461 -vn -0.8303 0.5571 0.0185 -vn -0.7633 0.0000 -0.6461 -vn -0.1702 -0.9854 -0.0000 -s off -f 1095/2075/724 1096/2076/724 1097/2077/724 1098/2078/724 -f 1099/2079/725 1100/2080/725 1101/2081/725 1102/2082/725 -f 1103/2083/726 1104/2084/726 1105/2085/726 1106/2086/726 -f 1107/2087/727 1108/2088/727 1109/2089/727 1110/2090/727 -f 1111/2091/726 1112/2092/726 1113/2093/726 1114/2094/726 -f 1115/2095/728 1116/2096/728 1117/2097/728 1118/2098/728 -f 1119/2099/724 1120/2100/724 1121/2101/724 1122/2102/724 -f 1123/2103/727 1124/2104/727 1125/2105/727 1126/2106/727 -f 1127/2107/729 1128/2108/729 1129/2109/729 1130/2110/729 -f 1131/2111/730 1118/2112/730 1126/2106/730 1107/2087/730 -f 1108/2088/731 1125/2105/731 1105/2085/731 1111/2091/731 -f 1132/2113/732 1096/2076/732 1119/2099/732 1115/2114/732 -f 1112/2092/733 1104/2084/733 1120/2100/733 1095/2075/733 -f 1117/2115/734 1102/2082/734 1123/2116/734 -f 1106/2117/735 1124/2118/735 1101/2081/735 -f 1116/2119/736 1122/2120/736 1099/2079/736 -f 1103/2121/737 1100/2080/737 1121/2122/737 -f 1133/2123/738 1134/2124/738 1110/2090/738 1135/2125/738 -f 1136/2126/739 1109/2089/739 1114/2094/739 1137/2127/739 -f 1138/2128/740 1139/2129/740 1097/2077/740 1140/2130/740 -f 1141/2131/741 1113/2093/741 1098/2078/741 1142/2132/741 -f 1133/2133/742 1135/2134/742 1127/2107/742 -f 1136/2135/743 1137/2136/743 1128/2108/743 -f 1138/2137/744 1130/2110/744 1139/2138/744 -f 1141/2139/745 1142/2140/745 1129/2109/745 -f 1115/2095/746 1118/2098/746 1131/2141/746 1132/2142/746 -f 1126/2106/727 1125/2105/727 1108/2088/727 1107/2087/727 -f 1105/2085/726 1104/2084/726 1112/2092/726 1111/2091/726 -f 1120/2100/724 1119/2099/724 1096/2076/724 1095/2075/724 -f 1116/2143/747 1115/2114/747 1119/2099/747 1122/2102/747 -f 1104/2084/733 1103/2083/733 1121/2101/733 1120/2100/733 -f 1100/2080/748 1099/2079/748 1122/2120/748 1121/2122/748 -f 1117/2097/749 1116/2096/749 1099/2079/749 1102/2082/749 -f 1103/2083/750 1106/2086/750 1101/2081/750 1100/2080/750 -f 1124/2118/751 1123/2116/751 1102/2082/751 1101/2081/751 -f 1118/2112/752 1117/2144/752 1123/2103/752 1126/2106/752 -f 1106/2086/731 1105/2085/731 1125/2105/731 1124/2104/731 -f 1140/2145/753 1134/2146/753 1133/2147/753 1138/2148/753 -f 1110/2090/727 1109/2089/727 1136/2126/727 1135/2125/727 -f 1114/2094/754 1113/2093/754 1141/2131/754 1137/2127/754 -f 1098/2078/724 1097/2077/724 1139/2129/724 1142/2132/724 -f 1095/2075/733 1098/2078/733 1113/2093/733 1112/2092/733 -f 1109/2089/731 1108/2088/731 1111/2091/731 1114/2094/731 -f 1107/2087/755 1110/2090/755 1134/2124/755 1131/2111/755 -f 1097/2077/756 1096/2076/756 1132/2113/756 1140/2130/756 -f 1138/2148/757 1133/2147/757 1127/2107/757 1130/2110/757 -f 1135/2134/758 1136/2135/758 1128/2108/758 1127/2107/758 -f 1137/2127/759 1141/2131/759 1129/2109/759 1128/2108/759 -f 1142/2140/760 1139/2138/760 1130/2110/760 1129/2109/760 -f 1132/2149/761 1131/2150/761 1134/2146/761 1140/2145/761 -o Underail_Cube.004 -v -0.033837 0.094104 2.927233 -v -0.033837 -0.016338 2.927233 -v -0.115306 -0.142061 2.927233 -v -0.115306 0.094104 2.927233 -v 0.797049 0.094104 2.927233 -v 0.797049 -0.016338 2.927233 -v 0.796577 -0.079782 3.048582 -v 0.796577 -0.079782 2.951418 -v 0.886076 -0.258069 2.951418 -v 0.886076 -0.258069 3.048582 -v 0.797049 -0.016338 3.072767 -v 0.797049 0.094104 3.072767 -v -0.033837 0.094104 3.072767 -v -0.033837 -0.016338 3.072767 -v -0.026079 -0.079782 2.951418 -v -0.115306 0.094104 3.072767 -v -0.272459 0.094104 2.927233 -v -0.272459 0.094104 3.072767 -v -0.115306 -0.142061 3.072767 -v -0.272459 -0.098487 3.072767 -v -0.264701 -0.161930 3.048582 -v -0.107548 -0.205505 3.048582 -v -0.272459 -0.098487 2.927233 -v -0.026079 -0.079782 3.048582 -v -0.107548 -0.205505 2.951418 -v -0.264701 -0.161930 2.951418 -v 0.886547 0.093771 3.072767 -v 0.886547 0.093771 2.927233 -v 0.886547 -0.194626 3.072767 -v 0.888072 -0.069961 3.072767 -v 0.917361 0.000750 3.072767 -v 0.988072 0.030039 3.072767 -v 1.058783 0.000750 3.072767 -v 1.088072 -0.069961 3.072767 -v 1.088250 -0.195375 3.072767 -v 1.088250 0.093022 3.072767 -v 0.886547 -0.194626 2.927233 -v 1.088250 -0.195375 2.927233 -v 1.087778 -0.258818 2.951418 -v 1.087778 -0.258818 3.048582 -v 1.152616 -0.153109 2.951418 -v 1.152616 -0.153109 3.048582 -v 1.153087 -0.089666 3.072767 -v 1.088250 0.093022 2.927233 -v 0.888072 -0.069961 2.927233 -v 0.917362 -0.140671 2.927233 -v 0.988072 -0.169961 2.927233 -v 1.058783 -0.140671 2.927233 -v 1.088072 -0.069961 2.927233 -v 1.153087 -0.089666 2.927233 -v 1.153087 0.092782 2.927233 -v 1.153087 0.092782 3.072767 -v 0.917361 0.000750 2.927233 -v 1.058783 0.000750 2.927233 -v 1.058783 -0.140671 3.072767 -v 0.988072 -0.169961 3.072767 -v 0.917362 -0.140671 3.072767 -v 0.988072 0.030039 2.927233 -vt 0.256942 0.260185 -vt 0.256933 0.317461 -vt 0.214669 0.382666 -vt 0.214686 0.260176 -vt 0.687648 0.260227 -vt 0.687763 0.317493 -vt 0.601711 0.530833 -vt 0.601711 0.480441 -vt 0.705172 0.480441 -vt 0.705172 0.530833 -vt 0.687799 0.127573 -vt 0.687669 0.184827 -vt 0.256960 0.184694 -vt 0.256975 0.127402 -vt 0.171036 0.445226 -vt 0.601956 0.445228 -vt 0.175060 0.480439 -vt 0.214701 0.184684 -vt 0.133171 0.260163 -vt 0.133182 0.184670 -vt 0.214727 0.062176 -vt 0.084694 0.563932 -vt 0.000115 0.563931 -vt 0.012784 0.530830 -vt 0.097363 0.530831 -vt 0.033279 0.184656 -vt 0.033268 0.260149 -vt 0.221631 0.027404 -vt 0.263880 0.092631 -vt 0.133159 0.360057 -vt 0.133200 0.084764 -vt 0.175059 0.530831 -vt 0.097363 0.480439 -vt 0.012784 0.480438 -vt 0.000115 0.247598 -vt 0.000122 0.197196 -vt 0.734049 0.184804 -vt 0.734039 0.260260 -vt 0.000115 0.447338 -vt 0.084694 0.447338 -vt 0.263826 0.352230 -vt 0.221562 0.417436 -vt 0.601955 0.566046 -vt 0.171036 0.566045 -vt 0.839166 0.035177 -vt 0.787151 0.048192 -vt 0.734523 0.035224 -vt 0.705294 0.445228 -vt 0.809903 0.445228 -vt 0.809781 0.480442 -vt 0.683548 0.352473 -vt 0.734482 0.409867 -vt 0.730268 0.444846 -vt 0.872622 0.090131 -vt 0.838858 0.100240 -vt 0.823785 0.063507 -vt 0.683589 0.092599 -vt 0.730314 0.000250 -vt 0.809780 0.530834 -vt 0.874095 0.480442 -vt 0.874095 0.530834 -vt 0.842557 0.000115 -vt 0.876014 0.055069 -vt 0.705293 0.566047 -vt 0.809903 0.566047 -vt 0.838659 0.184791 -vt 0.838657 0.260295 -vt 0.966965 0.260301 -vt 0.872297 0.260301 -vt 0.872297 0.184787 -vt 0.966965 0.184787 -vt 0.999885 0.197336 -vt 0.999885 0.247752 -vt 0.735107 0.099900 -vt 0.842531 0.444996 -vt 0.839144 0.409928 -vt 0.872612 0.354969 -vt 0.876000 0.390038 -vt 0.039809 0.641755 -vt 0.039809 0.566277 -vt 0.079503 0.566277 -vt 0.079503 0.641755 -vt 0.238278 0.641755 -vt 0.238278 0.566277 -vt 0.277972 0.566277 -vt 0.277972 0.641755 -vt 0.786807 0.151937 -vt 0.119197 0.566277 -vt 0.119197 0.641755 -vt 0.198585 0.641755 -vt 0.198585 0.566277 -vt 0.158890 0.641755 -vt 0.158890 0.566277 -vt 0.000115 0.641755 -vt 0.000115 0.566277 -vt 0.317667 0.566277 -vt 0.317667 0.641755 -vt 0.823538 0.136870 -vt 0.750181 0.136623 -vt 0.750419 0.063267 -vt 0.786796 0.293143 -vt 0.823528 0.308218 -vt 0.750162 0.308451 -vt 0.838844 0.344854 -vt 0.735078 0.345179 -vt 0.823764 0.381591 -vt 0.787122 0.396904 -vt 0.750386 0.381821 -vn 0.0000 0.0000 -1.0000 -vn -0.8937 -0.4486 0.0000 -vn 0.0000 0.0000 1.0000 -vn 0.0000 -0.3562 -0.9344 -vn 0.0000 1.0000 0.0000 -vn -0.1012 -0.3652 0.9254 -vn -1.0000 0.0000 0.0000 -vn 0.4263 -0.2762 0.8614 -vn 0.0000 -1.0000 -0.0000 -vn 0.8392 -0.5438 -0.0000 -vn -0.2672 -0.9636 0.0000 -vn -0.9926 -0.1214 0.0000 -vn 0.0037 1.0000 0.0000 -vn -0.1012 -0.3652 -0.9254 -vn 0.4263 -0.2762 -0.8614 -vn 0.0000 -0.3562 0.9344 -vn -0.0013 -0.3562 -0.9344 -vn -0.5737 -0.2880 -0.7667 -vn -0.0016 0.0010 1.0000 -vn -0.5737 -0.2880 0.7667 -vn 0.8524 -0.5228 0.0000 -vn 0.5062 -0.3105 0.8046 -vn 0.5049 -0.3117 0.8049 -vn -0.0013 -0.3562 0.9344 -vn -0.0037 -1.0000 0.0000 -vn -0.0001 0.0018 1.0000 -vn 1.0000 -0.0009 -0.0016 -vn 1.0000 0.0000 0.0000 -vn 1.0000 -0.0004 -0.0018 -vn 1.0000 -0.0060 -0.0012 -vn 1.0000 -0.0092 -0.0002 -vn 1.0000 -0.0074 -0.0000 -vn 0.5062 -0.3105 -0.8046 -vn 0.5071 -0.3089 -0.8046 -vn 0.0006 0.0017 1.0000 -vn 0.9239 -0.3827 -0.0000 -vn -0.9239 -0.3827 -0.0000 -vn 0.9239 0.3827 0.0000 -vn -0.9239 0.3827 0.0000 -vn -0.3827 0.9239 0.0000 -vn 0.3827 -0.9239 -0.0000 -vn -0.3827 -0.9239 -0.0000 -vn 0.3827 0.9239 0.0000 -vn -0.0002 -0.0018 -1.0000 -vn 0.0009 -0.0016 -1.0000 -vn 0.0018 0.0002 -1.0000 -s off -f 1143/2151/762 1144/2152/762 1145/2153/762 1146/2154/762 -f 1144/2152/762 1143/2151/762 1147/2155/762 1148/2156/762 -f 1149/2157/763 1150/2158/763 1151/2159/763 1152/2160/763 -f 1153/2161/764 1154/2162/764 1155/2163/764 1156/2164/764 -f 1144/2165/765 1148/2166/765 1150/2158/765 1157/2167/765 -f 1147/2155/766 1143/2151/766 1155/2163/766 1154/2162/766 -f 1158/2168/766 1146/2154/766 1159/2169/766 1160/2170/766 -f 1156/2164/764 1155/2163/764 1158/2168/764 1161/2171/764 -f 1155/2163/766 1143/2151/766 1146/2154/766 1158/2168/766 -f 1161/2172/767 1162/2173/767 1163/2174/767 1164/2175/767 -f 1162/2176/768 1160/2170/768 1159/2169/768 1165/2177/768 -f 1156/2164/769 1161/2171/769 1164/2178/769 1166/2179/769 -f 1146/2154/762 1145/2153/762 1165/2180/762 1159/2169/762 -f 1161/2171/764 1158/2168/764 1160/2170/764 1162/2181/764 -f 1157/2167/770 1150/2158/770 1149/2157/770 1166/2182/770 -f 1157/2167/771 1166/2182/771 1164/2175/771 1167/2183/771 -f 1167/2183/772 1164/2175/772 1163/2174/772 1168/2184/772 -f 1162/2176/773 1165/2177/773 1168/2185/773 1163/2186/773 -f 1147/2155/774 1154/2162/774 1169/2187/774 1170/2188/774 -f 1165/2189/775 1145/2190/775 1167/2183/775 1168/2184/775 -f 1145/2153/776 1144/2152/776 1157/2191/776 1167/2192/776 -f 1153/2193/777 1156/2194/777 1166/2182/777 1149/2157/777 -f 1177/2195/764 1198/2196/764 1171/2197/764 -f 1151/2159/778 1179/2198/778 1180/2199/778 1181/2200/778 -f 1150/2201/779 1148/2156/779 1179/2202/779 1151/2203/779 -f 1177/2195/764 1185/2204/780 1176/2205/764 1197/2206/764 -f 1153/2161/781 1149/2207/781 1152/2208/781 1171/2197/781 -f 1154/2162/764 1153/2161/764 1169/2187/764 -f 1182/2209/782 1181/2200/782 1183/2210/782 1184/2211/782 -f 1177/2195/783 1182/2212/783 1184/2213/783 1185/2204/784 -f 1171/2214/785 1152/2160/785 1182/2209/785 1177/2215/785 -f 1152/2160/786 1151/2159/786 1181/2200/786 1182/2209/786 -f 1170/2188/774 1169/2187/774 1178/2216/774 1186/2217/774 -f 1176/2205/764 1185/2204/787 1178/2216/764 -f 1192/2218/788 1193/2219/789 1194/2220/789 1185/2221/790 -f 1192/2218/791 1185/2221/792 1184/2222/793 1183/2223/793 -f 1186/2217/774 1178/2216/774 1194/2220/774 1193/2219/774 -f 1172/2224/764 1169/2187/764 1153/2161/764 -f 1181/2225/794 1180/2226/794 1192/2227/795 1183/2228/794 -f 1178/2216/764 1185/2204/796 1194/2220/764 -f 1195/2229/797 1173/2230/797 1172/2231/797 1187/2232/797 -f 1191/2233/798 1176/2234/798 1175/2235/798 1196/2236/798 -f 1178/2216/764 1169/2187/764 1174/2237/764 -f 1187/2232/799 1172/2231/799 1199/2238/799 1188/2239/799 -f 1190/2240/800 1197/2241/800 1176/2234/800 1191/2233/800 -f 1189/2242/801 1198/2243/801 1197/2241/801 1190/2240/801 -f 1200/2244/802 1174/2245/802 1173/2230/802 1195/2229/802 -f 1196/2236/803 1175/2235/803 1174/2246/803 1200/2247/803 -f 1188/2239/804 1199/2238/804 1198/2243/804 1189/2242/804 -f 1177/2195/764 1197/2206/764 1198/2196/764 -f 1192/2227/805 1186/2217/762 1193/2219/762 -f 1170/2188/762 1148/2156/762 1147/2155/762 -f 1175/2248/764 1178/2216/764 1174/2237/764 -f 1173/2249/764 1169/2187/764 1172/2224/764 -f 1199/2250/764 1171/2197/764 1198/2196/764 -f 1171/2197/764 1199/2250/764 1172/2224/764 1153/2161/764 -f 1200/2251/762 1170/2188/762 1186/2217/762 -f 1200/2251/762 1186/2217/762 1196/2252/762 -f 1169/2187/764 1173/2249/764 1174/2237/764 -f 1178/2216/764 1175/2248/764 1176/2205/764 -f 1200/2251/762 1195/2253/762 1170/2188/762 -f 1196/2252/762 1186/2217/762 1191/2254/762 -f 1195/2253/762 1187/2255/762 1170/2188/762 -f 1170/2188/762 1187/2255/762 1148/2156/762 -f 1186/2217/762 1192/2227/806 1191/2254/762 -f 1191/2254/762 1192/2227/807 1180/2226/762 1190/2256/762 -f 1190/2256/762 1180/2226/762 1189/2257/762 -f 1179/2202/762 1148/2156/762 1187/2255/762 1188/2258/762 -f 1180/2226/762 1179/2202/762 1189/2257/762 -f 1188/2258/762 1189/2257/762 1179/2202/762 -o UnderailBit_Cylinder.006 -v -0.166791 0.038391 2.882968 -v -0.166791 0.038391 3.117032 -v -0.118438 0.018363 3.117032 -v -0.118438 0.018363 2.882968 -v -0.098409 -0.029991 3.117032 -v -0.098409 -0.029991 2.882968 -v -0.118438 -0.078344 3.117032 -v -0.118438 -0.078344 2.882968 -v -0.166791 -0.098373 3.117032 -v -0.166791 -0.098373 2.882968 -v -0.215145 -0.078344 3.117032 -v -0.215145 -0.078344 2.882968 -v -0.235173 -0.029991 3.117032 -v -0.235173 -0.029991 2.882968 -v -0.215145 0.018363 3.117032 -v -0.215145 0.018363 2.882968 -vt 0.936103 0.259604 -vt 0.936115 0.740360 -vt 0.828618 0.740362 -vt 0.828606 0.259607 -vt 0.721118 0.740365 -vt 0.721107 0.259609 -vt 0.613620 0.740368 -vt 0.613609 0.259612 -vt 0.506122 0.740370 -vt 0.506111 0.259614 -vt 0.398623 0.740373 -vt 0.398611 0.259617 -vt 0.291126 0.740375 -vt 0.291114 0.259620 -vt 0.000116 0.816392 -vt 0.076128 0.740380 -vt 0.183627 0.740378 -vt 0.259639 0.816392 -vt 0.259641 0.923889 -vt 0.183628 0.999903 -vt 0.076130 0.999903 -vt 0.000116 0.923892 -vt 0.183615 0.259622 -vt 0.076117 0.259625 -vt 0.000101 0.183616 -vt 0.000097 0.076116 -vt 0.076107 0.000102 -vt 0.183605 0.000097 -vt 0.259621 0.076108 -vt 0.259625 0.183605 -vn 0.3827 0.9239 0.0000 -vn 0.9239 0.3827 0.0000 -vn 0.9239 -0.3827 -0.0000 -vn 0.3827 -0.9239 -0.0000 -vn -0.3827 -0.9239 -0.0000 -vn -0.9239 -0.3827 -0.0000 -vn -0.0000 0.0000 1.0000 -vn -0.9239 0.3827 0.0000 -vn -0.3827 0.9239 0.0000 -vn 0.0000 0.0000 -1.0000 -s off -f 1201/2259/808 1202/2260/808 1203/2261/808 1204/2262/808 -f 1204/2262/809 1203/2261/809 1205/2263/809 1206/2264/809 -f 1206/2264/810 1205/2263/810 1207/2265/810 1208/2266/810 -f 1208/2266/811 1207/2265/811 1209/2267/811 1210/2268/811 -f 1210/2268/812 1209/2267/812 1211/2269/812 1212/2270/812 -f 1212/2270/813 1211/2269/813 1213/2271/813 1214/2272/813 -f 1203/2273/814 1202/2274/814 1215/2275/814 1213/2276/814 1211/2277/814 1209/2278/814 1207/2279/814 1205/2280/814 -f 1214/2272/815 1213/2271/815 1215/2275/815 1216/2281/815 -f 1216/2281/816 1215/2275/816 1202/2274/816 1201/2282/816 -f 1201/2282/817 1204/2283/817 1206/2284/817 1208/2285/817 1210/2286/817 1212/2287/817 1214/2288/817 1216/2281/817 -o AmmoVice_Cylinder.010 -v -2.170566 0.644712 2.891261 -v -2.102717 0.644712 2.891261 -v -2.102717 0.567822 2.923110 -v -2.170566 0.567822 2.923110 -v -2.102717 0.535974 3.000000 -v -2.170566 0.535974 3.000000 -v -2.102717 0.567822 3.076890 -v -2.170566 0.567822 3.076890 -v -2.102717 0.644712 3.108739 -v -2.170566 0.644712 3.108739 -v -2.102717 0.721602 3.076890 -v -2.170566 0.721602 3.076890 -v -2.102717 0.753451 3.000000 -v -2.170566 0.753451 3.000000 -v -2.102717 0.721602 2.923110 -v -2.170566 0.721602 2.923110 -v -2.209619 0.644712 3.088337 -v -2.209619 0.582248 3.062464 -v -2.209619 0.644712 2.911663 -v -2.209619 0.582248 2.937536 -v -2.209619 0.556375 3.000000 -v -2.209619 0.707176 3.062464 -v -2.209619 0.733049 3.000000 -v -2.209619 0.707176 2.937536 -vt 0.101983 0.250048 -vt 0.000096 0.250048 -vt 0.000097 0.125071 -vt 0.101983 0.125072 -vt 0.000097 0.000096 -vt 0.101984 0.000096 -vt 0.101984 0.999904 -vt 0.000097 0.999905 -vt 0.000097 0.874929 -vt 0.101983 0.874929 -vt 0.000096 0.749953 -vt 0.101983 0.749952 -vt 0.000096 0.624977 -vt 0.101982 0.624976 -vt 0.000096 0.500000 -vt 0.101982 0.500000 -vt 0.000096 0.375024 -vt 0.101982 0.375024 -vt 0.167101 0.761676 -vt 0.167101 0.863204 -vt 0.340610 0.547116 -vt 0.239083 0.547116 -vt 0.167292 0.475324 -vt 0.167292 0.373796 -vt 0.239084 0.302006 -vt 0.340613 0.302006 -vt 0.412403 0.373798 -vt 0.412403 0.475326 -vt 0.167100 0.386748 -vt 0.167100 0.488276 -vt 0.167101 0.011819 -vt 0.167101 0.113348 -vt 0.167100 0.636700 -vt 0.167100 0.738228 -vt 0.167101 0.261772 -vt 0.167100 0.363300 -vt 0.167101 0.136796 -vt 0.167101 0.238324 -vt 0.167101 0.886652 -vt 0.167101 0.988181 -vt 0.167100 0.511724 -vt 0.167100 0.613252 -vn 0.0000 -0.3827 -0.9239 -vn 0.0000 -0.9239 -0.3827 -vn 0.0000 -0.9239 0.3827 -vn 0.0000 -0.3827 0.9239 -vn 0.0000 0.3827 0.9239 -vn 0.0000 0.9239 0.3827 -vn 0.0000 0.9239 -0.3827 -vn 0.0000 0.3827 -0.9239 -vn -0.4347 -0.3446 0.8320 -vn -1.0000 0.0000 0.0000 -vn -0.4347 0.8320 -0.3446 -vn -0.4347 -0.8320 -0.3446 -vn -0.4347 0.3446 0.8320 -vn -0.4347 0.3446 -0.8320 -vn -0.4347 -0.3446 -0.8320 -vn -0.4347 -0.8320 0.3446 -vn -0.4347 0.8320 0.3446 -s off -f 1217/2289/818 1218/2290/818 1219/2291/818 1220/2292/818 -f 1220/2292/819 1219/2291/819 1221/2293/819 1222/2294/819 -f 1222/2295/820 1221/2296/820 1223/2297/820 1224/2298/820 -f 1224/2298/821 1223/2297/821 1225/2299/821 1226/2300/821 -f 1226/2300/822 1225/2299/822 1227/2301/822 1228/2302/822 -f 1228/2302/823 1227/2301/823 1229/2303/823 1230/2304/823 -f 1230/2304/824 1229/2303/824 1231/2305/824 1232/2306/824 -f 1232/2306/825 1231/2305/825 1218/2290/825 1217/2289/825 -f 1224/2298/826 1226/2300/826 1233/2307/826 1234/2308/826 -f 1235/2309/827 1236/2310/827 1237/2311/827 1234/2312/827 1233/2313/827 1238/2314/827 1239/2315/827 1240/2316/827 -f 1230/2304/828 1232/2306/828 1240/2317/828 1239/2318/828 -f 1220/2292/829 1222/2294/829 1237/2319/829 1236/2320/829 -f 1226/2300/830 1228/2302/830 1238/2321/830 1233/2322/830 -f 1232/2306/831 1217/2289/831 1235/2323/831 1240/2324/831 -f 1217/2289/832 1220/2292/832 1236/2325/832 1235/2326/832 -f 1222/2295/833 1224/2298/833 1234/2327/833 1237/2328/833 -f 1228/2302/834 1230/2304/834 1239/2329/834 1238/2330/834 -o SideThingy_Cube.009 -v -1.552216 0.766425 3.449060 -v -1.552216 0.766425 3.324053 -v -1.613245 0.699098 3.324053 -v -1.613245 0.699098 3.449060 -v -1.552216 0.456014 3.324053 -v -1.048308 0.766425 3.449060 -v -1.048308 0.766425 3.324053 -v -1.552216 0.456014 3.449060 -v -1.048308 0.456014 3.324053 -v -1.041527 0.788142 3.315308 -v -1.041527 0.434297 3.315308 -v -1.048308 0.456014 3.449060 -v -1.041527 0.788142 3.457806 -v -1.041527 0.434297 3.457806 -v -0.900483 0.434297 3.457806 -v -0.900483 0.788142 3.457806 -v -0.900483 0.788142 3.315308 -v -0.896414 0.768510 3.449899 -v -0.896414 0.768510 3.323214 -v -0.900483 0.434297 3.315308 -v -0.896414 0.453929 3.449899 -v -0.817755 0.457256 3.449106 -v -0.817755 0.767895 3.449106 -v -0.896414 0.453929 3.323214 -v -0.817755 0.457256 3.324007 -v -0.817755 0.767895 3.324007 -v -1.613245 0.523341 3.449060 -v -1.613245 0.523341 3.324053 -v -1.552216 0.766425 2.550940 -v -1.613245 0.699098 2.550940 -v -1.613245 0.699098 2.675947 -v -1.552216 0.766425 2.675947 -v -1.552216 0.456014 2.675947 -v -1.048308 0.766425 2.675947 -v -1.048308 0.766425 2.550940 -v -1.552216 0.456014 2.550940 -v -1.048308 0.456014 2.675947 -v -1.041528 0.434297 2.684692 -v -1.041528 0.788142 2.684692 -v -1.048308 0.456014 2.550940 -v -1.041528 0.788142 2.542194 -v -0.900483 0.788142 2.542194 -v -0.900483 0.434297 2.542194 -v -1.041528 0.434297 2.542194 -v -0.900483 0.788142 2.684692 -v -0.896414 0.768510 2.676786 -v -0.896414 0.768510 2.550101 -v -0.900483 0.434297 2.684692 -v -0.817755 0.767895 2.550894 -v -0.817755 0.457256 2.550894 -v -0.896414 0.453929 2.550101 -v -0.896414 0.453929 2.676786 -v -0.817755 0.457256 2.675993 -v -0.817755 0.767895 2.675993 -v -1.613245 0.523341 2.550940 -v -1.613245 0.523341 2.675947 -vt 0.482699 0.832844 -vt 0.432017 0.832844 -vt 0.432017 0.796002 -vt 0.482699 0.796002 -vt 0.583806 0.442127 -vt 0.634488 0.442127 -vt 0.634488 0.646427 -vt 0.583806 0.646427 -vt 0.457956 0.646427 -vt 0.457956 0.442127 -vt 0.711742 0.646766 -vt 0.711742 0.697448 -vt 0.507442 0.697448 -vt 0.507442 0.646766 -vt 0.711742 0.873980 -vt 0.711742 0.999830 -vt 0.507442 0.999830 -vt 0.507442 0.873980 -vt 0.004929 0.552138 -vt 0.004598 0.674127 -vt 0.000170 0.683319 -vt 0.000481 0.542899 -vt 0.203708 0.542544 -vt 0.058826 0.542797 -vt 0.058726 0.485047 -vt 0.203607 0.484794 -vt 0.054086 0.674326 -vt 0.054411 0.551828 -vt 0.058514 0.683411 -vt 0.000170 0.342162 -vt 0.058508 0.341959 -vt 0.054925 0.350069 -vt 0.003806 0.350339 -vt 0.000380 0.485149 -vt 0.262053 0.542442 -vt 0.261953 0.484692 -vt 0.406935 0.542189 -vt 0.406834 0.484439 -vt 0.565390 0.229561 -vt 0.437849 0.229561 -vt 0.439198 0.197668 -vt 0.565141 0.197668 -vt 0.003970 0.476972 -vt 0.055097 0.476933 -vt 0.439198 0.146949 -vt 0.565141 0.146949 -vt 0.407279 0.197990 -vt 0.407279 0.146628 -vt 0.597033 0.146628 -vt 0.597033 0.197990 -vt 0.437849 0.115057 -vt 0.565390 0.115057 -vt 0.482699 0.724744 -vt 0.432017 0.724744 -vt 0.432017 0.687903 -vt 0.482699 0.687903 -vt 0.407274 0.823298 -vt 0.407274 0.697448 -vt 0.507442 0.823298 -vt 0.593351 0.417384 -vt 0.556510 0.417384 -vt 0.556510 0.366702 -vt 0.593352 0.366702 -vt 0.407274 0.646427 -vt 0.407274 0.442127 -vt 0.760338 0.442127 -vt 0.760338 0.646427 -vt 0.711742 0.823298 -vt 0.402178 0.210347 -vt 0.406625 0.201108 -vt 0.406939 0.341526 -vt 0.402512 0.332335 -vt 0.203400 0.200758 -vt 0.203499 0.143007 -vt 0.348380 0.143257 -vt 0.348281 0.201007 -vt 0.353025 0.332535 -vt 0.348597 0.341620 -vt 0.352696 0.210039 -vt 0.406935 0.000372 -vt 0.403298 0.008549 -vt 0.352179 0.008280 -vt 0.348596 0.000170 -vt 0.406725 0.143358 -vt 0.145054 0.200657 -vt 0.145153 0.142906 -vt 0.000170 0.200407 -vt 0.000269 0.142656 -vt 0.565419 0.000214 -vt 0.565158 0.032106 -vt 0.439216 0.032063 -vt 0.437878 0.000170 -vt 0.403136 0.135182 -vt 0.352009 0.135143 -vt 0.439198 0.082782 -vt 0.565141 0.082825 -vt 0.407296 0.031730 -vt 0.407279 0.083092 -vt 0.597033 0.083158 -vt 0.597050 0.031796 -vt 0.437838 0.114674 -vt 0.565379 0.114718 -vt 0.485252 0.417384 -vt 0.485252 0.366702 -vt 0.448411 0.366702 -vt 0.448411 0.417384 -vt 0.583806 0.341959 -vt 0.457956 0.341959 -vn -0.7409 0.6716 0.0000 -vn 0.0000 1.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 -1.0000 0.0000 -vn -0.7902 0.0000 -0.6128 -vn 0.0000 0.0000 1.0000 -vn -0.7903 0.0000 0.6127 -vn -0.9545 -0.2981 0.0000 -vn -0.9545 0.2981 0.0000 -vn 0.9792 0.2030 0.0000 -vn 0.0101 0.0000 0.9999 -vn 0.8891 0.0000 -0.4576 -vn 0.8892 0.0000 0.4576 -vn 0.9792 -0.2030 0.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0423 -0.9991 0.0000 -vn 0.0078 1.0000 0.0000 -vn 0.0101 0.0000 -0.9999 -vn -1.0000 0.0000 0.0000 -vn -0.7409 -0.6716 -0.0000 -vn -0.7903 0.0000 -0.6127 -vn -0.9546 -0.2980 0.0000 -vn -0.9546 0.2980 0.0000 -vn 0.9792 0.2029 0.0000 -vn 0.8891 0.0000 0.4576 -vn 0.8892 0.0000 -0.4576 -s off -f 1241/2331/835 1242/2332/835 1243/2333/835 1244/2334/835 -f 1269/2335/836 1272/2336/836 1274/2337/836 1275/2338/836 -f 1269/2335/837 1275/2338/837 1280/2339/837 1276/2340/837 -f 1249/2341/838 1252/2342/838 1248/2343/838 1245/2344/838 -f 1247/2345/837 1249/2346/837 1245/2347/837 1242/2348/837 -f 1249/2349/839 1247/2350/839 1250/2351/839 1251/2352/839 -f 1253/2353/840 1254/2354/840 1255/2355/840 1256/2356/840 -f 1246/2357/841 1252/2358/841 1254/2354/841 1253/2359/841 -f 1252/2358/842 1249/2349/842 1251/2352/842 1254/2354/842 -f 1247/2350/843 1246/2357/843 1253/2359/843 1250/2351/843 -f 1257/2360/844 1256/2361/844 1258/2362/844 1259/2363/844 -f 1254/2354/838 1251/2352/838 1260/2364/838 1255/2355/838 -f 1250/2365/836 1253/2353/836 1256/2356/836 1257/2366/836 -f 1251/2367/837 1250/2365/837 1257/2366/837 1260/2368/837 -f 1258/2369/845 1261/2370/845 1262/2371/845 1263/2372/845 -f 1260/2364/846 1257/2360/846 1259/2363/846 1264/2373/846 -f 1256/2361/847 1255/2355/847 1261/2374/847 1258/2362/847 -f 1255/2355/848 1260/2364/848 1264/2373/848 1261/2374/848 -f 1265/2375/849 1266/2376/849 1263/2372/849 1262/2371/849 -f 1261/2377/850 1264/2378/850 1265/2375/850 1262/2371/850 -f 1259/2379/851 1258/2380/851 1263/2372/851 1266/2376/851 -f 1264/2381/852 1259/2382/852 1266/2376/852 1265/2375/852 -f 1267/2383/853 1244/2334/853 1243/2333/853 1268/2384/853 -f 1245/2385/854 1248/2386/854 1267/2383/854 1268/2384/854 -f 1242/2387/837 1245/2388/837 1268/2384/837 1243/2333/837 -f 1248/2343/840 1241/2389/840 1244/2334/840 1267/2383/840 -f 1269/2390/835 1270/2391/835 1271/2392/835 1272/2393/835 -f 1276/2340/838 1280/2339/838 1277/2394/838 1273/2395/838 -f 1273/2396/840 1277/2397/840 1274/2337/840 1272/2336/840 -f 1248/2343/840 1252/2342/840 1246/2398/840 1241/2389/840 -f 1277/2399/841 1278/2400/841 1279/2401/841 1274/2402/841 -f 1281/2403/837 1282/2404/837 1283/2405/837 1284/2406/837 -f 1275/2407/855 1281/2408/855 1284/2406/855 1280/2409/855 -f 1280/2409/856 1284/2406/856 1278/2400/856 1277/2399/856 -f 1274/2402/857 1279/2401/857 1281/2408/857 1275/2407/857 -f 1285/2410/858 1286/2411/858 1287/2412/858 1282/2413/858 -f 1284/2406/838 1283/2405/838 1288/2414/838 1278/2400/838 -f 1279/2415/836 1285/2416/836 1282/2404/836 1281/2403/836 -f 1278/2417/840 1288/2418/840 1285/2416/840 1279/2415/840 -f 1287/2419/852 1289/2420/852 1290/2421/852 1291/2422/852 -f 1288/2414/859 1292/2423/859 1286/2411/859 1285/2410/859 -f 1282/2413/860 1287/2412/860 1291/2424/860 1283/2405/860 -f 1283/2405/848 1291/2424/848 1292/2423/848 1288/2414/848 -f 1293/2425/849 1290/2421/849 1289/2420/849 1294/2426/849 -f 1291/2427/850 1290/2421/850 1293/2425/850 1292/2428/850 -f 1286/2429/851 1294/2426/851 1289/2420/851 1287/2430/851 -f 1292/2431/845 1293/2425/845 1294/2426/845 1286/2432/845 -f 1295/2433/853 1296/2434/853 1271/2392/853 1270/2391/853 -f 1273/2435/854 1296/2434/854 1295/2433/854 1276/2436/854 -f 1272/2437/840 1271/2392/840 1296/2434/840 1273/2438/840 -f 1276/2340/837 1295/2433/837 1270/2391/837 1269/2335/837 -f 1247/2345/836 1242/2348/836 1241/2389/836 1246/2398/836 -o Tech_thingy_Cylinder.011 -v -1.457017 0.997796 3.139627 -v -1.457017 1.110929 3.189700 -v -1.405270 1.098405 3.216824 -v -1.405270 0.985272 3.166751 -v -1.405270 1.073357 3.271072 -v -1.405270 0.960224 3.220999 -v -1.457017 1.060833 3.298196 -v -1.457017 0.947700 3.248123 -v -1.508763 1.073357 3.271072 -v -1.508763 0.960224 3.220999 -v -1.508763 1.098405 3.216824 -v -1.508763 0.985272 3.166751 -v -1.322476 0.997796 3.139627 -v -1.322476 1.110929 3.189700 -v -1.270730 1.098405 3.216824 -v -1.270730 0.985272 3.166751 -v -1.270730 1.073357 3.271072 -v -1.270730 0.960224 3.220999 -v -1.322476 1.060833 3.298196 -v -1.322476 0.947700 3.248123 -v -1.374223 1.073357 3.271072 -v -1.374223 0.960224 3.220999 -v -1.374223 1.098405 3.216824 -v -1.374223 0.985272 3.166751 -v -1.187935 0.997796 3.139627 -v -1.187935 1.110929 3.189700 -v -1.136189 1.098405 3.216824 -v -1.136189 0.985272 3.166751 -v -1.136189 1.073357 3.271072 -v -1.136189 0.960224 3.220999 -v -1.187935 1.060833 3.298196 -v -1.187935 0.947700 3.248123 -v -1.239682 1.073357 3.271072 -v -1.239682 0.960224 3.220999 -v -1.239682 1.098405 3.216824 -v -1.239682 0.985272 3.166751 -v -1.551588 0.824089 3.270719 -v -1.551588 0.906574 3.321562 -v -1.551588 1.018668 3.066710 -v -1.551588 0.936183 3.015867 -v -1.097206 1.018668 3.066710 -v -1.097206 0.936183 3.015867 -v -1.097206 0.906574 3.321562 -v -1.097206 0.824089 3.270719 -v -1.521210 0.950031 3.320343 -v -1.521210 1.047137 3.099566 -v -1.127583 1.047137 3.099566 -v -1.127583 0.950031 3.320343 -v -1.457017 0.997796 2.860373 -v -1.405271 0.985272 2.833249 -v -1.405271 1.098405 2.783176 -v -1.457017 1.110929 2.810300 -v -1.405271 0.960224 2.779001 -v -1.405271 1.073357 2.728928 -v -1.457017 0.947700 2.751877 -v -1.457017 1.060833 2.701804 -v -1.508764 0.960224 2.779001 -v -1.508764 1.073357 2.728928 -v -1.508764 1.098405 2.783176 -v -1.508764 0.985272 2.833249 -v -1.322476 0.997796 2.860373 -v -1.270730 0.985272 2.833249 -v -1.270730 1.098405 2.783176 -v -1.322476 1.110929 2.810300 -v -1.270730 0.960224 2.779001 -v -1.270730 1.073357 2.728928 -v -1.322476 0.947700 2.751877 -v -1.322476 1.060833 2.701804 -v -1.374223 0.960224 2.779001 -v -1.374223 1.073357 2.728928 -v -1.374223 1.098405 2.783176 -v -1.374223 0.985272 2.833249 -v -1.187936 0.997796 2.860373 -v -1.136189 0.985272 2.833249 -v -1.136189 1.098405 2.783176 -v -1.187936 1.110929 2.810300 -v -1.136189 0.960224 2.779001 -v -1.136189 1.073357 2.728928 -v -1.187936 0.947700 2.751877 -v -1.187936 1.060833 2.701804 -v -1.239682 0.960224 2.779001 -v -1.239682 1.073357 2.728928 -v -1.239682 1.098405 2.783176 -v -1.239682 0.985272 2.833249 -v -1.551588 0.824089 2.729281 -v -1.551588 0.936183 2.984133 -v -1.551588 1.018668 2.933290 -v -1.551588 0.906574 2.678438 -v -1.097206 0.936183 2.984133 -v -1.097206 1.018668 2.933290 -v -1.097206 0.824089 2.729281 -v -1.097206 0.906574 2.678438 -v -1.521211 1.047137 2.900434 -v -1.521211 0.950031 2.679657 -v -1.127584 1.047137 2.900434 -v -1.127584 0.950031 2.679657 -vt 0.803021 0.000268 -vt 0.908675 0.000268 -vt 0.908270 0.051294 -vt 0.802616 0.051294 -vt 0.907459 0.102314 -vt 0.801805 0.102314 -vt 0.907054 0.153340 -vt 0.801400 0.153340 -vt 0.907459 0.204365 -vt 0.801805 0.204365 -vt 0.611293 0.613624 -vt 0.662320 0.613624 -vt 0.687833 0.657815 -vt 0.662320 0.702005 -vt 0.611293 0.702005 -vt 0.585779 0.657814 -vt 0.908270 0.255385 -vt 0.802616 0.255385 -vt 0.908675 0.306410 -vt 0.803021 0.306410 -vt 0.587400 0.306946 -vt 0.693054 0.306946 -vt 0.692649 0.357971 -vt 0.586995 0.357971 -vt 0.691839 0.408991 -vt 0.586185 0.408991 -vt 0.691434 0.460016 -vt 0.585779 0.460016 -vt 0.691839 0.511042 -vt 0.586185 0.511042 -vt 0.693590 0.746948 -vt 0.737780 0.721434 -vt 0.781971 0.746948 -vt 0.781971 0.797974 -vt 0.737780 0.823488 -vt 0.693590 0.797974 -vt 0.692649 0.562062 -vt 0.586995 0.562062 -vt 0.693054 0.613088 -vt 0.587400 0.613088 -vt 0.693590 0.719278 -vt 0.693590 0.613624 -vt 0.744615 0.614029 -vt 0.744615 0.719683 -vt 0.795635 0.614839 -vt 0.795635 0.720493 -vt 0.846660 0.615245 -vt 0.846660 0.720899 -vt 0.897686 0.614839 -vt 0.897686 0.720493 -vt 0.782507 0.746948 -vt 0.826697 0.721434 -vt 0.870889 0.746948 -vt 0.870889 0.797974 -vt 0.826697 0.823488 -vt 0.782507 0.797974 -vt 0.948706 0.614029 -vt 0.948706 0.719683 -vt 0.999732 0.613624 -vt 0.999732 0.719278 -vt 0.000349 0.115597 -vt 0.082314 0.104241 -vt 0.082232 0.342003 -vt 0.000268 0.353358 -vt 0.098665 0.445986 -vt 0.098694 0.363239 -vt 0.486728 0.363373 -vt 0.486700 0.446120 -vt 0.585161 0.353560 -vt 0.503205 0.342148 -vt 0.503287 0.104387 -vt 0.585244 0.115799 -vt 0.486854 0.000402 -vt 0.486825 0.083149 -vt 0.098790 0.083015 -vt 0.098819 0.000268 -vt 0.124720 0.120150 -vt 0.124649 0.326122 -vt 0.460800 0.326238 -vt 0.460871 0.120266 -vt 0.695211 0.306410 -vt 0.694805 0.255385 -vt 0.800460 0.255385 -vt 0.800865 0.306410 -vt 0.693995 0.204365 -vt 0.799649 0.204365 -vt 0.693590 0.153340 -vt 0.799244 0.153340 -vt 0.693995 0.102314 -vt 0.799649 0.102314 -vt 0.801400 0.486076 -vt 0.801400 0.435049 -vt 0.845590 0.409535 -vt 0.889782 0.435049 -vt 0.889782 0.486076 -vt 0.845590 0.511589 -vt 0.694805 0.051294 -vt 0.800460 0.051294 -vt 0.695211 0.000268 -vt 0.800865 0.000268 -vt 0.587400 0.306410 -vt 0.586995 0.255385 -vt 0.692649 0.255385 -vt 0.693054 0.306410 -vt 0.586185 0.204365 -vt 0.691839 0.204365 -vt 0.585779 0.153340 -vt 0.691434 0.153340 -vt 0.586185 0.102314 -vt 0.691839 0.102314 -vt 0.801400 0.383486 -vt 0.801400 0.332459 -vt 0.845591 0.306946 -vt 0.889782 0.332459 -vt 0.889782 0.383486 -vt 0.845591 0.409000 -vt 0.586995 0.051294 -vt 0.692649 0.051294 -vt 0.587400 0.000268 -vt 0.693054 0.000268 -vt 0.695211 0.613088 -vt 0.694805 0.562063 -vt 0.800460 0.562062 -vt 0.800865 0.613088 -vt 0.693995 0.511042 -vt 0.799649 0.511042 -vt 0.693590 0.460016 -vt 0.799244 0.460016 -vt 0.693995 0.408991 -vt 0.799649 0.408991 -vt 0.585779 0.779081 -vt 0.585779 0.728054 -vt 0.629971 0.702541 -vt 0.674161 0.728055 -vt 0.674161 0.779081 -vt 0.629971 0.804595 -vt 0.694805 0.357971 -vt 0.800459 0.357971 -vt 0.695211 0.306946 -vt 0.800865 0.306946 -vt 0.000268 0.777012 -vt 0.000268 0.539250 -vt 0.082229 0.550634 -vt 0.082229 0.788396 -vt 0.098698 0.446656 -vt 0.486733 0.446656 -vt 0.486733 0.529404 -vt 0.098698 0.529403 -vt 0.585162 0.539250 -vt 0.585162 0.777011 -vt 0.503202 0.788396 -vt 0.503201 0.550634 -vt 0.486733 0.892375 -vt 0.098698 0.892375 -vt 0.098698 0.809627 -vt 0.486733 0.809627 -vt 0.124639 0.566530 -vt 0.124639 0.772501 -vt 0.460790 0.566530 -vt 0.460790 0.772501 -vn 0.4999 0.3505 -0.7920 -vn 1.0000 0.0000 0.0000 -vn 0.4999 -0.3505 0.7920 -vn -0.5000 -0.3505 0.7919 -vn 0.0000 0.9079 0.4192 -vn -1.0000 0.0000 0.0000 -vn -0.5000 0.3505 -0.7919 -vn 0.5000 0.3505 -0.7919 -vn 0.5000 -0.3505 0.7919 -vn -0.5000 -0.3505 0.7920 -vn -0.4999 0.3505 -0.7920 -vn 0.0000 0.5247 -0.8513 -vn 0.0000 -0.5247 0.8513 -vn -0.7911 0.5599 0.2463 -vn 0.0000 0.9154 0.4026 -vn 0.0000 0.0280 0.9996 -vn 0.0000 0.7558 -0.6548 -vn 0.7911 0.5599 0.2463 -vn 0.5000 0.3505 0.7919 -vn 0.5000 -0.3505 -0.7919 -vn -0.4999 -0.3505 -0.7920 -vn 0.0000 0.9079 -0.4192 -vn -0.4999 0.3505 0.7920 -vn 0.4999 0.3505 0.7920 -vn 0.4999 -0.3505 -0.7920 -vn -0.5000 -0.3505 -0.7919 -vn -0.5000 0.3505 0.7919 -vn 0.0000 0.5247 0.8513 -vn 0.0000 -0.5247 -0.8513 -vn -0.7911 0.5599 -0.2463 -vn 0.0000 0.9154 -0.4026 -vn 0.0000 0.0280 -0.9996 -vn 0.0000 0.7558 0.6548 -vn 0.7911 0.5599 -0.2463 -s off -f 1297/2439/861 1298/2440/861 1299/2441/861 1300/2442/861 -f 1300/2442/862 1299/2441/862 1301/2443/862 1302/2444/862 -f 1302/2444/863 1301/2443/863 1303/2445/863 1304/2446/863 -f 1304/2446/864 1303/2445/864 1305/2447/864 1306/2448/864 -f 1299/2449/865 1298/2450/865 1307/2451/865 1305/2452/865 1303/2453/865 1301/2454/865 -f 1306/2448/866 1305/2447/866 1307/2455/866 1308/2456/866 -f 1308/2456/867 1307/2455/867 1298/2457/867 1297/2458/867 -f 1309/2459/868 1310/2460/868 1311/2461/868 1312/2462/868 -f 1312/2462/862 1311/2461/862 1313/2463/862 1314/2464/862 -f 1314/2464/869 1313/2463/869 1315/2465/869 1316/2466/869 -f 1316/2466/870 1315/2465/870 1317/2467/870 1318/2468/870 -f 1311/2469/865 1310/2470/865 1319/2471/865 1317/2472/865 1315/2473/865 1313/2474/865 -f 1318/2468/866 1317/2467/866 1319/2475/866 1320/2476/866 -f 1320/2476/871 1319/2475/871 1310/2477/871 1309/2478/871 -f 1321/2479/868 1322/2480/868 1323/2481/868 1324/2482/868 -f 1324/2482/862 1323/2481/862 1325/2483/862 1326/2484/862 -f 1326/2484/869 1325/2483/869 1327/2485/869 1328/2486/869 -f 1328/2486/870 1327/2485/870 1329/2487/870 1330/2488/870 -f 1323/2489/865 1322/2490/865 1331/2491/865 1329/2492/865 1327/2493/865 1325/2494/865 -f 1330/2488/866 1329/2487/866 1331/2495/866 1332/2496/866 -f 1332/2496/871 1331/2495/871 1322/2497/871 1321/2498/871 -f 1333/2499/866 1334/2500/866 1335/2501/866 1336/2502/866 -f 1336/2503/872 1335/2504/872 1337/2505/872 1338/2506/872 -f 1338/2507/862 1337/2508/862 1339/2509/862 1340/2510/862 -f 1340/2511/873 1339/2512/873 1334/2513/873 1333/2514/873 -f 1335/2501/874 1334/2500/874 1341/2515/874 1342/2516/874 -f 1343/2517/875 1342/2516/875 1341/2515/875 1344/2518/875 -f 1334/2513/876 1339/2512/876 1344/2518/876 1341/2515/876 -f 1337/2505/877 1335/2504/877 1342/2516/877 1343/2517/877 -f 1339/2509/878 1337/2508/878 1343/2517/878 1344/2518/878 -f 1345/2519/879 1346/2520/879 1347/2521/879 1348/2522/879 -f 1346/2520/862 1349/2523/862 1350/2524/862 1347/2521/862 -f 1349/2523/880 1351/2525/880 1352/2526/880 1350/2524/880 -f 1351/2525/881 1353/2527/881 1354/2528/881 1352/2526/881 -f 1347/2529/882 1350/2530/882 1352/2531/882 1354/2532/882 1355/2533/882 1348/2534/882 -f 1353/2527/866 1356/2535/866 1355/2536/866 1354/2528/866 -f 1356/2535/883 1345/2537/883 1348/2538/883 1355/2536/883 -f 1357/2539/879 1358/2540/879 1359/2541/879 1360/2542/879 -f 1358/2540/862 1361/2543/862 1362/2544/862 1359/2541/862 -f 1361/2543/880 1363/2545/880 1364/2546/880 1362/2544/880 -f 1363/2545/881 1365/2547/881 1366/2548/881 1364/2546/881 -f 1359/2549/882 1362/2550/882 1364/2551/882 1366/2552/882 1367/2553/882 1360/2554/882 -f 1365/2547/866 1368/2555/866 1367/2556/866 1366/2548/866 -f 1368/2555/883 1357/2557/883 1360/2558/883 1367/2556/883 -f 1369/2559/884 1370/2560/884 1371/2561/884 1372/2562/884 -f 1370/2560/862 1373/2563/862 1374/2564/862 1371/2561/862 -f 1373/2563/885 1375/2565/885 1376/2566/885 1374/2564/885 -f 1375/2565/886 1377/2567/886 1378/2568/886 1376/2566/886 -f 1371/2569/882 1374/2570/882 1376/2571/882 1378/2572/882 1379/2573/882 1372/2574/882 -f 1377/2567/866 1380/2575/866 1379/2576/866 1378/2568/866 -f 1380/2575/887 1369/2577/887 1372/2578/887 1379/2576/887 -f 1381/2579/866 1382/2580/866 1383/2581/866 1384/2582/866 -f 1382/2583/888 1385/2584/888 1386/2585/888 1383/2586/888 -f 1385/2587/862 1387/2588/862 1388/2589/862 1386/2590/862 -f 1387/2591/889 1381/2592/889 1384/2593/889 1388/2594/889 -f 1383/2581/890 1389/2595/890 1390/2596/890 1384/2582/890 -f 1391/2597/891 1392/2598/891 1390/2596/891 1389/2595/891 -f 1384/2593/892 1390/2596/892 1392/2598/892 1388/2594/892 -f 1386/2585/893 1391/2597/893 1389/2595/893 1383/2586/893 -f 1388/2589/894 1392/2598/894 1391/2597/894 1386/2590/894 -o Coils_Cylinder.012 -v -0.463562 0.524760 2.571894 -v -0.237813 0.524760 2.571894 -v -0.237813 0.222044 2.697284 -v -0.463562 0.222044 2.697284 -v -0.237813 0.096655 3.000000 -v -0.463562 0.096655 3.000000 -v -0.237813 0.222044 3.302716 -v -0.463562 0.222044 3.302716 -v -0.237813 0.524760 3.428106 -v -0.463562 0.524760 3.428106 -v -0.237813 0.827477 3.302716 -v -0.463562 0.827477 3.302716 -v -0.237813 0.952866 3.000000 -v -0.463562 0.952866 3.000000 -v -0.237813 0.827477 2.697284 -v -0.463562 0.827477 2.697284 -v -0.170088 0.524760 2.571894 -v 0.055660 0.524760 2.571894 -v 0.055660 0.222044 2.697284 -v -0.170088 0.222044 2.697284 -v 0.055660 0.096655 3.000000 -v -0.170088 0.096655 3.000000 -v 0.055660 0.222044 3.302716 -v -0.170088 0.222044 3.302716 -v 0.055660 0.524760 3.428106 -v -0.170088 0.524760 3.428106 -v 0.055660 0.827477 3.302716 -v -0.170088 0.827477 3.302716 -v 0.055660 0.952866 3.000000 -v -0.170088 0.952866 3.000000 -v 0.055660 0.827477 2.697284 -v -0.170088 0.827477 2.697284 -v 0.123385 0.524760 2.571894 -v 0.349134 0.524760 2.571894 -v 0.349134 0.222044 2.697284 -v 0.123385 0.222044 2.697284 -v 0.349134 0.096655 3.000000 -v 0.123385 0.096655 3.000000 -v 0.349134 0.222044 3.302716 -v 0.123385 0.222044 3.302716 -v 0.349134 0.524760 3.428106 -v 0.123385 0.524760 3.428106 -v 0.349134 0.827477 3.302716 -v 0.123385 0.827477 3.302716 -v 0.349134 0.952866 3.000000 -v 0.123385 0.952866 3.000000 -v 0.349134 0.827477 2.697284 -v 0.123385 0.827477 2.697284 -v 0.416858 0.524760 2.571894 -v 0.642607 0.524760 2.571894 -v 0.642607 0.222044 2.697284 -v 0.416858 0.222044 2.697284 -v 0.642607 0.096655 3.000000 -v 0.416858 0.096655 3.000000 -v 0.642607 0.222044 3.302716 -v 0.416858 0.222044 3.302716 -v 0.642607 0.524760 3.428106 -v 0.416858 0.524760 3.428106 -v 0.642607 0.827477 3.302716 -v 0.416858 0.827477 3.302716 -v 0.642607 0.952866 3.000000 -v 0.416858 0.952866 3.000000 -v 0.642607 0.827477 2.697284 -v 0.416858 0.827477 2.697284 -v 0.710331 0.524760 2.571894 -v 0.936080 0.524760 2.571894 -v 0.936080 0.222044 2.697284 -v 0.710331 0.222044 2.697284 -v 0.936080 0.096655 3.000000 -v 0.710331 0.096655 3.000000 -v 0.936080 0.222044 3.302716 -v 0.710331 0.222044 3.302716 -v 0.936080 0.524760 3.428106 -v 0.710331 0.524760 3.428106 -v 0.936080 0.827477 3.302716 -v 0.710331 0.827477 3.302716 -v 0.936080 0.952866 3.000000 -v 0.710331 0.952866 3.000000 -v 0.936080 0.827477 2.697284 -v 0.710331 0.827477 2.697284 -vt 0.781097 0.399443 -vt 0.718903 0.399443 -vt 0.718903 0.309173 -vt 0.781097 0.309173 -vt 0.718903 0.218903 -vt 0.781097 0.218903 -vt 0.781097 0.941064 -vt 0.718903 0.941064 -vt 0.718903 0.850794 -vt 0.781097 0.850794 -vt 0.718903 0.760524 -vt 0.781097 0.760524 -vt 0.718903 0.670254 -vt 0.781097 0.670254 -vt 0.718903 0.579984 -vt 0.781097 0.579984 -vt 0.218903 0.282734 -vt 0.282733 0.218903 -vt 0.373004 0.218903 -vt 0.436834 0.282734 -vt 0.436834 0.373004 -vt 0.373003 0.436835 -vt 0.282733 0.436834 -vt 0.218903 0.373004 -vt 0.718903 0.489714 -vt 0.781097 0.489714 -vt 0.064155 0.437482 -vt 0.154425 0.437483 -vt 0.218255 0.501313 -vt 0.218255 0.591583 -vt 0.154425 0.655414 -vt 0.064154 0.655414 -vt 0.000324 0.591583 -vt 0.000324 0.501313 -vt 0.999676 0.180864 -vt 0.937482 0.180864 -vt 0.937482 0.090594 -vt 0.999676 0.090594 -vt 0.937482 0.000324 -vt 0.999676 0.000324 -vt 0.999676 0.722485 -vt 0.937482 0.722485 -vt 0.937482 0.632215 -vt 0.999676 0.632215 -vt 0.937482 0.541944 -vt 0.999676 0.541944 -vt 0.937482 0.451674 -vt 0.999676 0.451674 -vt 0.937482 0.361404 -vt 0.999676 0.361404 -vt 0.000324 0.282734 -vt 0.064154 0.218903 -vt 0.154425 0.218903 -vt 0.218255 0.282734 -vt 0.218255 0.373004 -vt 0.154424 0.436835 -vt 0.064154 0.436834 -vt 0.000324 0.373004 -vt 0.937482 0.271134 -vt 0.999676 0.271134 -vt 0.501313 0.218903 -vt 0.591583 0.218903 -vt 0.655413 0.282734 -vt 0.655413 0.373004 -vt 0.591583 0.436835 -vt 0.501313 0.436834 -vt 0.437482 0.373004 -vt 0.437482 0.282734 -vt 0.718255 0.399443 -vt 0.656061 0.399443 -vt 0.656061 0.309173 -vt 0.718255 0.309173 -vt 0.656061 0.218903 -vt 0.718255 0.218903 -vt 0.718255 0.941064 -vt 0.656061 0.941064 -vt 0.656061 0.850794 -vt 0.718255 0.850794 -vt 0.656061 0.760524 -vt 0.718255 0.760524 -vt 0.656061 0.670254 -vt 0.718255 0.670254 -vt 0.656061 0.579984 -vt 0.718255 0.579984 -vt 0.218903 0.501313 -vt 0.282733 0.437482 -vt 0.373004 0.437483 -vt 0.436834 0.501313 -vt 0.436834 0.591583 -vt 0.373003 0.655414 -vt 0.282733 0.655414 -vt 0.218903 0.591583 -vt 0.656061 0.489714 -vt 0.718255 0.489714 -vt 0.501313 0.437482 -vt 0.591583 0.437483 -vt 0.655413 0.501313 -vt 0.655413 0.591583 -vt 0.591583 0.655414 -vt 0.501313 0.655414 -vt 0.437482 0.591583 -vt 0.437482 0.501313 -vt 0.936834 0.180864 -vt 0.874640 0.180864 -vt 0.874640 0.090594 -vt 0.936834 0.090594 -vt 0.874640 0.000324 -vt 0.936834 0.000324 -vt 0.936834 0.722484 -vt 0.874640 0.722484 -vt 0.874640 0.632214 -vt 0.936834 0.632214 -vt 0.874640 0.541944 -vt 0.936834 0.541944 -vt 0.874640 0.451674 -vt 0.936834 0.451674 -vt 0.874640 0.361404 -vt 0.936834 0.361404 -vt 0.656061 0.064155 -vt 0.719891 0.000324 -vt 0.810162 0.000324 -vt 0.873992 0.064155 -vt 0.873992 0.154425 -vt 0.810162 0.218255 -vt 0.719891 0.218255 -vt 0.656061 0.154425 -vt 0.874640 0.271134 -vt 0.936834 0.271134 -vt 0.501313 0.000324 -vt 0.591583 0.000324 -vt 0.655413 0.064155 -vt 0.655413 0.154425 -vt 0.591583 0.218255 -vt 0.501313 0.218255 -vt 0.437482 0.154425 -vt 0.437482 0.064155 -vt 0.873992 0.399443 -vt 0.811798 0.399443 -vt 0.811798 0.309173 -vt 0.873992 0.309173 -vt 0.811798 0.218903 -vt 0.873992 0.218903 -vt 0.873992 0.941064 -vt 0.811798 0.941064 -vt 0.811798 0.850794 -vt 0.873992 0.850794 -vt 0.811798 0.760524 -vt 0.873992 0.760524 -vt 0.811798 0.670253 -vt 0.873992 0.670253 -vt 0.811798 0.579983 -vt 0.873992 0.579983 -vt 0.218903 0.064155 -vt 0.282733 0.000324 -vt 0.373004 0.000324 -vt 0.436834 0.064155 -vt 0.436834 0.154425 -vt 0.373003 0.218255 -vt 0.282733 0.218255 -vt 0.218903 0.154425 -vt 0.811798 0.489713 -vt 0.873992 0.489713 -vt 0.064155 0.000324 -vt 0.154425 0.000324 -vt 0.218255 0.064155 -vt 0.218255 0.154425 -vt 0.154425 0.218255 -vt 0.064154 0.218255 -vt 0.000324 0.154425 -vt 0.000324 0.064155 -vn 0.0000 -0.3827 -0.9239 -vn 0.0000 -0.9239 -0.3827 -vn 0.0000 -0.9239 0.3827 -vn 0.0000 -0.3827 0.9239 -vn 0.0000 0.3827 0.9239 -vn 0.0000 0.9239 0.3827 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.9239 -0.3827 -vn 0.0000 0.3827 -0.9239 -vn -1.0000 0.0000 0.0000 -s off -f 1393/2599/895 1394/2600/895 1395/2601/895 1396/2602/895 -f 1396/2602/896 1395/2601/896 1397/2603/896 1398/2604/896 -f 1398/2605/897 1397/2606/897 1399/2607/897 1400/2608/897 -f 1400/2608/898 1399/2607/898 1401/2609/898 1402/2610/898 -f 1402/2610/899 1401/2609/899 1403/2611/899 1404/2612/899 -f 1404/2612/900 1403/2611/900 1405/2613/900 1406/2614/900 -f 1395/2615/901 1394/2616/901 1407/2617/901 1405/2618/901 1403/2619/901 1401/2620/901 1399/2621/901 1397/2622/901 -f 1406/2614/902 1405/2613/902 1407/2623/902 1408/2624/902 -f 1408/2624/903 1407/2623/903 1394/2600/903 1393/2599/903 -f 1393/2625/904 1396/2626/904 1398/2627/904 1400/2628/904 1402/2629/904 1404/2630/904 1406/2631/904 1408/2632/904 -f 1409/2633/895 1410/2634/895 1411/2635/895 1412/2636/895 -f 1412/2636/896 1411/2635/896 1413/2637/896 1414/2638/896 -f 1414/2639/897 1413/2640/897 1415/2641/897 1416/2642/897 -f 1416/2642/898 1415/2641/898 1417/2643/898 1418/2644/898 -f 1418/2644/899 1417/2643/899 1419/2645/899 1420/2646/899 -f 1420/2646/900 1419/2645/900 1421/2647/900 1422/2648/900 -f 1411/2649/901 1410/2650/901 1423/2651/901 1421/2652/901 1419/2653/901 1417/2654/901 1415/2655/901 1413/2656/901 -f 1422/2648/902 1421/2647/902 1423/2657/902 1424/2658/902 -f 1424/2658/903 1423/2657/903 1410/2634/903 1409/2633/903 -f 1409/2659/904 1412/2660/904 1414/2661/904 1416/2662/904 1418/2663/904 1420/2664/904 1422/2665/904 1424/2666/904 -f 1425/2667/895 1426/2668/895 1427/2669/895 1428/2670/895 -f 1428/2670/896 1427/2669/896 1429/2671/896 1430/2672/896 -f 1430/2673/897 1429/2674/897 1431/2675/897 1432/2676/897 -f 1432/2676/898 1431/2675/898 1433/2677/898 1434/2678/898 -f 1434/2678/899 1433/2677/899 1435/2679/899 1436/2680/899 -f 1436/2680/900 1435/2679/900 1437/2681/900 1438/2682/900 -f 1427/2683/901 1426/2684/901 1439/2685/901 1437/2686/901 1435/2687/901 1433/2688/901 1431/2689/901 1429/2690/901 -f 1438/2682/902 1437/2681/902 1439/2691/902 1440/2692/902 -f 1440/2692/903 1439/2691/903 1426/2668/903 1425/2667/903 -f 1425/2693/904 1428/2694/904 1430/2695/904 1432/2696/904 1434/2697/904 1436/2698/904 1438/2699/904 1440/2700/904 -f 1441/2701/895 1442/2702/895 1443/2703/895 1444/2704/895 -f 1444/2704/896 1443/2703/896 1445/2705/896 1446/2706/896 -f 1446/2707/897 1445/2708/897 1447/2709/897 1448/2710/897 -f 1448/2710/898 1447/2709/898 1449/2711/898 1450/2712/898 -f 1450/2712/899 1449/2711/899 1451/2713/899 1452/2714/899 -f 1452/2714/900 1451/2713/900 1453/2715/900 1454/2716/900 -f 1443/2717/901 1442/2718/901 1455/2719/901 1453/2720/901 1451/2721/901 1449/2722/901 1447/2723/901 1445/2724/901 -f 1454/2716/902 1453/2715/902 1455/2725/902 1456/2726/902 -f 1456/2726/903 1455/2725/903 1442/2702/903 1441/2701/903 -f 1441/2727/904 1444/2728/904 1446/2729/904 1448/2730/904 1450/2731/904 1452/2732/904 1454/2733/904 1456/2734/904 -f 1457/2735/895 1458/2736/895 1459/2737/895 1460/2738/895 -f 1460/2738/896 1459/2737/896 1461/2739/896 1462/2740/896 -f 1462/2741/897 1461/2742/897 1463/2743/897 1464/2744/897 -f 1464/2744/898 1463/2743/898 1465/2745/898 1466/2746/898 -f 1466/2746/899 1465/2745/899 1467/2747/899 1468/2748/899 -f 1468/2748/900 1467/2747/900 1469/2749/900 1470/2750/900 -f 1459/2751/901 1458/2752/901 1471/2753/901 1469/2754/901 1467/2755/901 1465/2756/901 1463/2757/901 1461/2758/901 -f 1470/2750/902 1469/2749/902 1471/2759/902 1472/2760/902 -f 1472/2760/903 1471/2759/903 1458/2736/903 1457/2735/903 -f 1457/2761/904 1460/2762/904 1462/2763/904 1464/2764/904 1466/2765/904 1468/2766/904 1470/2767/904 1472/2768/904 +f 2/1/1 4/2/1 1/3/1 +f 3/4/2 6/5/2 4/2/2 +f 5/6/3 8/7/3 6/8/3 +f 7/9/4 10/10/4 8/7/4 +f 9/11/5 12/12/5 10/10/5 +f 11/13/6 14/14/6 12/12/6 +f 7/15/7 5/16/7 13/17/7 +f 13/18/8 16/19/8 14/14/8 +f 15/20/9 1/3/9 16/19/9 +f 8/21/10 12/22/10 16/23/10 +f 18/24/1 20/25/1 17/26/1 +f 19/27/2 22/28/2 20/25/2 +f 21/29/3 24/30/3 22/31/3 +f 23/32/4 26/33/4 24/30/4 +f 25/34/5 28/35/5 26/33/5 +f 27/36/6 30/37/6 28/35/6 +f 23/38/7 21/39/7 29/40/7 +f 29/41/8 32/42/8 30/37/8 +f 31/43/9 17/26/9 32/42/9 +f 24/44/10 28/45/10 32/46/10 +f 34/47/1 36/48/1 33/49/1 +f 35/50/2 38/51/2 36/48/2 +f 37/52/3 40/53/3 38/54/3 +f 39/55/4 42/56/4 40/53/4 +f 41/57/5 44/58/5 42/56/5 +f 43/59/6 46/60/6 44/58/6 +f 39/61/7 37/62/7 45/63/7 +f 45/64/8 48/65/8 46/60/8 +f 47/66/9 33/49/9 48/65/9 +f 40/67/10 44/68/10 48/69/10 +f 50/70/1 52/71/1 49/72/1 +f 51/73/2 54/74/2 52/71/2 +f 53/75/3 56/76/3 54/77/3 +f 55/78/4 58/79/4 56/76/4 +f 57/80/5 60/81/5 58/79/5 +f 59/82/6 62/83/6 60/81/6 +f 55/84/7 53/85/7 61/86/7 +f 61/87/8 64/88/8 62/83/8 +f 63/89/9 49/72/9 64/88/9 +f 56/90/10 60/91/10 64/92/10 +f 66/93/1 68/94/1 65/95/1 +f 67/96/2 70/97/2 68/94/2 +f 69/98/3 72/99/3 70/100/3 +f 71/101/4 74/102/4 72/99/4 +f 73/103/5 76/104/5 74/102/5 +f 75/105/6 78/106/6 76/104/6 +f 71/107/7 69/108/7 77/109/7 +f 77/110/8 80/111/8 78/106/8 +f 79/112/9 65/95/9 80/111/9 +f 72/113/10 76/114/10 80/115/10 +f 81/116/11 83/117/11 84/118/11 +f 84/118/7 85/119/7 86/120/7 +f 86/120/12 87/121/12 88/122/12 +f 87/121/13 90/123/13 88/122/13 +f 87/124/14 85/125/14 82/126/14 +f 89/127/10 92/128/10 90/123/10 +f 91/129/15 81/130/15 92/128/15 +f 93/131/16 95/132/16 96/133/16 +f 96/133/7 97/134/7 98/135/7 +f 98/135/17 99/136/17 100/137/17 +f 99/136/18 102/138/18 100/137/18 +f 99/139/14 97/140/14 94/141/14 +f 101/142/10 104/143/10 102/138/10 +f 103/144/19 93/145/19 104/143/19 +f 105/146/16 107/147/16 108/148/16 +f 108/148/7 109/149/7 110/150/7 +f 110/150/17 111/151/17 112/152/17 +f 111/151/18 114/153/18 112/152/18 +f 111/154/14 109/155/14 106/156/14 +f 113/157/10 116/158/10 114/153/10 +f 115/159/19 105/160/19 116/158/19 +f 117/161/10 119/162/10 120/163/10 +f 119/164/20 122/165/20 120/166/20 +f 121/167/7 124/168/7 122/169/7 +f 123/170/21 117/171/21 124/172/21 +f 118/173/22 126/174/22 119/162/22 +f 126/174/23 128/175/23 127/176/23 +f 123/170/24 125/177/24 118/178/24 +f 121/179/25 126/174/25 127/176/25 +f 123/180/26 127/176/26 128/175/26 +f 129/181/27 131/182/27 132/183/27 +f 130/184/7 134/185/7 131/182/7 +f 133/186/28 136/187/28 134/185/28 +f 137/188/29 136/187/29 135/189/29 +f 138/190/30 139/191/30 132/192/30 +f 140/193/10 138/194/10 137/188/10 +f 129/195/31 139/196/31 140/193/31 +f 141/197/27 143/198/27 144/199/27 +f 142/200/7 146/201/7 143/198/7 +f 145/202/28 148/203/28 146/201/28 +f 149/204/29 148/203/29 147/205/29 +f 150/206/30 151/207/30 144/208/30 +f 152/209/10 150/210/10 149/204/10 +f 141/211/31 151/212/31 152/209/31 +f 153/213/32 155/214/32 156/215/32 +f 154/216/7 158/217/7 155/214/7 +f 157/218/33 160/219/33 158/217/33 +f 161/220/34 160/219/34 159/221/34 +f 162/222/30 163/223/30 156/224/30 +f 164/225/10 162/226/10 161/220/10 +f 153/227/35 163/228/35 164/225/35 +f 165/229/10 167/230/10 168/231/10 +f 169/232/36 167/233/36 166/234/36 +f 171/235/7 170/236/7 169/237/7 +f 165/238/37 172/239/37 171/240/37 +f 173/241/38 168/231/38 167/230/38 +f 176/242/39 173/241/39 175/243/39 +f 168/244/40 176/242/40 172/239/40 +f 175/243/41 167/233/41 170/245/41 +f 172/246/42 175/243/42 170/236/42 +f 178/247/43 180/248/43 177/249/43 +f 208/250/44 211/251/44 205/252/44 +f 211/253/45 212/254/45 205/255/45 +f 188/256/46 181/257/46 185/258/46 +f 185/259/45 178/247/45 183/260/45 +f 183/261/47 187/262/47 185/263/47 +f 190/264/48 192/265/48 189/266/48 +f 188/267/49 189/266/49 182/268/49 +f 188/269/50 187/270/50 190/264/50 +f 182/271/51 186/272/51 183/273/51 +f 193/274/52 194/275/52 195/276/52 +f 187/270/46 191/277/46 190/264/46 +f 189/266/44 193/274/44 186/272/44 +f 186/272/45 196/278/45 187/262/45 +f 194/279/53 198/280/53 199/281/53 +f 196/278/54 195/282/54 200/283/54 +f 191/277/55 194/284/55 192/265/55 +f 196/285/56 197/286/56 191/277/56 +f 202/287/7 198/280/7 201/288/7 +f 200/289/57 198/280/57 197/290/57 +f 194/279/58 202/291/58 195/292/58 +f 195/292/59 201/293/59 200/294/59 +f 180/295/10 204/296/10 203/297/10 +f 184/298/60 204/296/60 181/257/60 +f 181/299/45 179/300/45 178/247/45 +f 184/298/48 180/301/48 203/302/48 +f 206/303/43 208/250/43 205/252/43 +f 216/304/46 209/305/46 212/306/46 +f 213/307/48 208/250/48 209/308/48 +f 188/309/48 177/310/48 184/311/48 +f 213/312/49 215/313/49 210/314/49 +f 218/315/45 220/316/45 217/317/45 +f 217/317/61 216/318/61 211/319/61 +f 216/320/62 214/321/62 213/322/62 +f 215/313/51 211/323/51 210/324/51 +f 221/325/63 223/326/63 218/315/63 +f 219/327/46 214/321/46 220/316/46 +f 221/325/44 217/317/44 215/313/44 +f 224/328/48 215/313/48 214/329/48 +f 223/330/59 226/331/59 227/332/59 +f 224/328/64 222/333/64 221/325/64 +f 223/334/65 219/327/65 218/315/65 +f 227/335/56 224/336/56 219/327/56 +f 226/331/7 230/337/7 229/338/7 +f 226/331/57 228/339/57 227/332/57 +f 230/340/58 223/330/58 222/341/58 +f 229/342/53 222/341/53 228/343/53 +f 232/344/10 206/345/10 231/346/10 +f 232/344/60 212/306/60 209/305/60 +f 207/347/48 209/308/48 208/250/48 +f 212/306/45 206/348/45 205/252/45 +f 178/247/44 182/349/44 183/260/44 +f 234/350/1 236/351/1 233/352/1 +f 235/353/2 238/354/2 236/351/2 +f 237/355/3 240/356/3 238/357/3 +f 239/358/4 242/359/4 240/356/4 +f 241/360/5 244/361/5 242/359/5 +f 243/362/6 246/363/6 244/361/6 +f 245/364/8 248/365/8 246/363/8 +f 247/366/9 233/352/9 248/365/9 +f 240/356/66 249/367/66 250/368/66 +f 255/369/10 256/370/10 250/371/10 +f 248/365/67 255/372/67 246/363/67 +f 238/354/68 252/373/68 236/351/68 +f 244/361/69 249/374/69 242/359/69 +f 248/365/70 251/375/70 256/376/70 +f 236/351/71 251/377/71 233/352/71 +f 238/357/72 250/378/72 253/379/72 +f 244/361/73 255/380/73 254/381/73 +f 258/382/74 260/383/74 257/384/74 +f 259/385/75 262/386/75 260/383/75 +f 261/387/76 264/388/76 262/386/76 +f 263/389/77 266/390/77 264/388/77 +f 265/391/78 268/392/78 266/390/78 +f 267/393/79 270/394/79 268/392/79 +f 261/395/48 258/382/48 269/396/48 +f 269/397/80 272/398/80 270/394/80 +f 271/399/81 257/400/81 272/398/81 +f 270/401/45 272/402/45 264/403/45 +f 274/404/45 276/405/45 273/406/45 +f 273/407/45 278/408/45 274/409/45 +f 280/410/82 282/411/82 279/412/82 +f 284/413/48 286/414/48 283/415/48 +f 278/408/83 287/416/83 274/409/83 +f 273/417/44 284/418/44 277/419/44 +f 276/420/44 290/421/44 288/422/44 +f 286/423/48 288/424/48 291/425/48 +f 273/417/44 288/422/44 285/426/44 +f 291/425/84 293/427/84 294/428/84 +f 290/429/10 295/430/10 292/431/10 +f 291/425/85 296/432/85 286/423/85 +f 276/405/45 295/433/45 289/434/45 +f 288/424/48 292/435/48 291/425/48 +f 280/436/46 296/437/46 287/416/46 +f 296/438/86 297/439/86 287/440/86 +f 294/428/87 298/441/87 297/439/87 +f 295/430/88 293/427/88 292/431/88 +f 320/442/89 277/419/89 284/418/89 +f 275/443/90 298/441/90 295/433/90 +f 275/443/91 287/444/91 297/445/91 +f 283/415/92 296/437/92 279/446/92 +f 306/447/93 308/448/93 281/449/93 +f 280/450/94 306/447/94 281/449/94 +f 279/451/95 299/452/95 283/453/95 +f 308/448/96 311/454/96 309/455/96 +f 305/456/97 311/457/97 312/458/98 +f 299/452/99 309/455/99 305/456/99 +f 281/449/100 309/455/100 282/411/100 +f 283/453/48 301/459/48 284/460/48 +f 319/461/7 312/462/101 318/463/102 +f 312/462/103 310/464/104 318/463/105 +f 284/460/48 302/465/48 320/466/48 +f 307/467/106 310/468/106 308/448/106 +f 301/469/76 313/470/76 321/471/76 +f 304/472/79 322/473/79 317/474/79 +f 300/475/75 314/476/75 313/470/75 +f 323/477/80 317/474/80 316/478/80 +f 324/479/81 316/478/81 315/480/81 +f 302/481/77 321/471/77 326/482/77 +f 303/483/78 326/482/78 322/473/78 +f 325/484/74 315/485/74 314/476/74 +f 299/452/48 305/456/48 324/486/48 +f 299/452/48 300/487/48 283/453/48 +f 303/488/48 312/458/107 320/466/48 +f 323/489/48 312/458/108 304/490/48 +f 326/491/45 277/492/45 319/493/45 +f 318/494/109 322/495/45 319/493/45 +f 318/494/110 316/496/45 317/497/45 +f 321/498/45 278/499/45 277/492/45 +f 306/447/45 313/500/45 314/501/45 +f 307/467/45 306/447/45 315/502/45 +f 327/503/45 329/504/45 330/505/45 +f 332/506/7 334/507/7 331/508/7 +f 336/509/44 338/510/44 335/511/44 +f 340/512/48 342/513/48 339/514/48 +f 344/515/44 346/516/44 343/517/44 +f 348/518/46 350/519/46 347/520/46 +f 352/521/45 354/522/45 351/523/45 +f 356/524/48 358/525/48 355/526/48 +f 360/527/10 362/528/10 359/529/10 +f 363/530/111 358/525/111 339/514/111 +f 357/531/112 343/517/112 340/512/112 +f 364/532/113 351/523/113 347/533/113 +f 336/509/114 327/503/114 344/515/114 +f 349/534/115 334/535/115 355/526/115 +f 338/510/116 356/524/116 333/536/116 +f 348/537/117 354/522/117 331/538/117 +f 335/511/118 332/539/118 353/540/118 +f 365/541/119 342/513/119 367/542/119 +f 341/543/120 369/544/120 368/545/120 +f 370/546/121 329/504/121 372/547/121 +f 373/548/122 330/505/122 374/549/122 +f 365/541/123 367/542/123 359/550/123 +f 368/545/124 369/544/124 360/551/124 +f 370/546/125 362/552/125 371/553/125 +f 373/548/126 374/549/126 361/554/126 +f 350/519/127 364/555/127 347/520/127 +f 357/531/48 339/514/48 358/525/48 +f 336/509/44 343/517/44 337/556/44 +f 352/521/45 328/557/45 327/503/45 +f 347/533/128 354/522/128 348/537/128 +f 335/511/114 352/521/114 336/509/114 +f 331/538/129 353/540/129 332/539/129 +f 348/518/130 334/507/130 349/558/130 +f 338/510/131 332/506/131 335/511/131 +f 355/526/132 333/536/132 356/524/132 +f 349/534/133 358/525/133 350/559/133 +f 337/556/112 356/524/112 338/510/112 +f 366/560/134 370/561/134 372/562/134 +f 341/543/48 367/542/48 342/513/48 +f 345/563/135 369/564/135 346/516/135 +f 330/505/45 371/553/45 374/549/45 +f 330/505/114 344/515/114 327/503/114 +f 340/512/112 346/516/112 341/543/112 +f 339/514/136 366/565/136 363/530/136 +f 328/557/137 372/547/137 329/504/137 +f 365/566/138 362/528/138 370/561/138 +f 368/545/139 359/550/139 367/542/139 +f 373/567/140 360/527/140 369/564/140 +f 374/549/141 362/552/141 361/554/141 +f 363/568/142 372/562/142 364/569/142 +f 376/570/10 378/571/10 375/572/10 +f 377/573/45 380/574/45 378/575/45 +f 379/576/7 382/577/7 380/578/7 +f 381/579/48 375/580/48 382/581/48 +f 375/580/143 383/582/143 384/583/143 +f 377/573/44 381/579/44 379/584/44 +f 387/585/46 383/586/46 386/587/46 +f 380/574/144 388/588/144 387/589/144 +f 378/571/145 383/586/145 375/572/145 +f 382/577/146 388/590/146 380/578/146 +f 390/591/45 392/592/45 389/593/45 +f 385/594/147 390/595/147 388/596/147 +f 384/597/48 393/598/48 385/599/48 +f 387/600/148 394/601/148 384/602/148 +f 387/603/45 390/591/45 389/593/45 +f 395/604/149 396/605/150 397/606/151 +f 393/607/152 391/608/152 390/595/152 +f 394/601/153 392/609/153 395/604/153 +f 393/598/48 395/610/48 398/611/48 +f 399/612/46 401/613/46 402/614/46 +f 395/610/48 402/615/48 398/611/48 +f 392/592/45 401/616/45 400/617/45 +f 398/618/154 401/613/154 391/608/154 +f 404/619/155 406/620/156 403/621/157 +f 400/617/158 396/622/159 392/592/158 +f 399/623/160 397/624/161 404/625/162 +f 399/612/163 403/621/164 400/626/163 +f 408/627/165 405/628/165 407/629/165 +f 396/622/166 406/630/167 408/631/167 +f 397/606/168 408/632/169 407/633/169 +f 404/625/170 407/634/171 405/635/171 +f 418/636/172 412/637/172 417/638/172 +f 409/639/48 417/640/48 412/641/48 +f 418/642/45 410/643/45 411/644/45 +f 415/645/48 417/640/48 414/646/48 +f 419/647/173 421/648/173 416/649/173 +f 418/642/45 422/650/45 413/651/45 +f 416/649/174 418/636/174 417/638/174 +f 422/652/175 414/653/175 413/654/175 +f 419/647/176 424/655/176 420/656/176 +f 424/655/177 415/657/177 422/652/177 +f 423/658/48 416/659/48 415/645/48 +f 421/660/45 424/655/45 422/650/45 +f 414/653/178 410/661/178 413/654/178 +f 466/662/179 427/663/179 465/664/179 +f 465/664/180 425/665/180 462/666/180 +f 425/665/181 428/667/181 429/668/181 +f 468/669/182 430/670/182 467/671/182 +f 461/672/183 432/673/183 468/669/183 +f 430/670/184 466/662/184 467/671/184 +f 433/674/48 435/675/48 436/676/48 +f 427/663/185 433/677/185 428/678/185 +f 432/673/186 434/679/186 430/670/186 +f 426/680/187 429/681/187 438/682/187 +f 430/670/188 433/674/188 431/683/188 +f 426/684/189 437/685/189 432/673/189 +f 436/686/190 441/687/190 439/688/190 +f 438/689/48 443/690/48 437/685/48 +f 429/668/48 439/691/48 444/692/48 +f 433/677/48 439/688/48 428/678/48 +f 437/693/48 435/694/48 434/679/48 +f 438/682/48 444/695/48 442/696/48 +f 445/697/48 447/698/48 440/699/48 +f 435/694/191 448/700/191 445/701/191 +f 444/695/192 450/702/192 442/696/192 +f 435/675/193 440/699/193 436/676/193 +f 443/690/194 450/703/194 448/704/194 +f 439/691/195 449/705/195 444/692/195 +f 447/706/183 453/707/183 451/708/183 +f 450/703/48 455/709/48 448/704/48 +f 449/705/48 451/710/48 456/711/48 +f 440/712/48 451/708/48 441/687/48 +f 445/701/48 455/713/48 446/714/48 +f 449/715/48 454/716/48 450/702/48 +f 458/717/48 459/718/48 460/719/48 +f 455/713/180 458/720/180 446/714/180 +f 456/721/184 460/722/184 454/716/184 +f 446/723/196 452/724/196 447/698/196 +f 454/725/179 459/726/179 455/709/179 +f 451/710/182 457/727/182 456/711/182 +f 462/666/197 464/728/197 465/664/197 +f 462/666/196 426/680/196 461/729/196 +f 470/730/45 472/731/45 469/732/45 +f 465/664/198 469/733/198 466/662/198 +f 467/671/199 473/734/199 468/669/199 +f 474/735/200 462/666/200 461/729/200 +f 466/662/201 472/731/201 467/671/201 +f 473/736/202 461/672/202 468/669/202 +f 476/737/203 470/738/203 475/739/203 +f 473/736/45 479/740/45 474/741/45 +f 463/742/45 475/743/45 464/728/45 +f 475/739/45 469/733/45 464/744/45 +f 471/745/45 473/734/45 472/746/45 +f 474/735/45 480/747/45 463/748/45 +f 481/749/45 483/750/45 477/751/45 +f 471/745/204 484/752/204 478/753/204 +f 485/754/205 480/747/205 479/755/205 +f 470/730/206 483/750/206 471/756/206 +f 478/757/207 485/758/207 479/740/207 +f 486/759/208 475/743/208 480/760/208 +f 488/761/183 481/762/183 487/763/183 +f 490/764/45 485/758/45 484/765/45 +f 486/759/45 487/766/45 476/767/45 +f 487/763/45 477/768/45 476/737/45 +f 483/769/45 490/770/45 484/752/45 +f 485/754/45 492/771/45 486/772/45 +f 496/773/45 489/774/45 488/775/45 +f 496/776/180 490/770/180 482/777/180 +f 494/778/184 492/771/184 491/779/184 +f 489/780/196 482/781/196 481/749/196 +f 495/782/179 491/783/179 490/764/179 +f 493/784/182 487/766/182 492/785/182 +f 498/786/209 500/787/209 497/788/209 +f 500/787/7 501/789/7 502/790/7 +f 502/790/210 503/791/210 504/792/210 +f 503/793/211 506/794/211 504/795/211 +f 505/796/10 508/797/10 506/794/10 +f 507/798/212 497/788/212 508/797/212 +f 498/786/213 510/799/213 499/800/213 +f 510/799/7 501/801/7 499/800/7 +f 511/802/214 503/803/214 501/801/214 +f 512/804/215 505/805/215 503/806/215 +f 505/805/10 514/807/10 507/798/10 +f 514/807/216 498/786/216 507/798/216 +f 515/808/217 510/799/217 509/809/217 +f 510/799/7 517/810/7 511/811/7 +f 517/810/218 512/812/218 511/811/218 +f 512/813/219 519/814/219 513/815/219 +f 519/814/10 514/807/10 513/815/10 +f 514/807/220 515/808/220 509/809/220 +f 521/816/210 516/817/210 515/808/210 +f 516/817/7 523/818/7 517/819/7 +f 517/819/209 524/820/209 518/821/209 +f 524/822/212 519/823/212 518/824/212 +f 525/825/10 520/826/10 519/823/10 +f 520/826/211 521/816/211 515/808/211 +f 527/827/214 522/828/214 521/816/214 +f 522/828/7 529/829/7 523/830/7 +f 529/829/213 524/831/213 523/830/213 +f 524/832/216 531/833/216 525/834/216 +f 531/833/10 526/835/10 525/834/10 +f 526/835/215 527/827/215 521/816/215 +f 497/836/218 528/837/218 527/827/218 +f 528/837/7 502/838/7 529/839/7 +f 502/838/217 530/840/217 529/839/217 +f 530/841/220 506/842/220 531/843/220 +f 506/842/10 532/844/10 531/843/10 +f 532/844/219 497/836/219 527/827/219 +f 533/845/221 538/846/222 534/847/223 +f 537/848/224 540/849/224 538/846/224 +f 539/850/225 542/851/225 540/852/225 +f 541/853/48 539/854/48 537/855/48 +f 541/856/226 545/857/226 542/851/226 +f 544/858/227 546/859/228 545/857/227 +f 540/860/45 542/861/45 545/862/45 +f 548/863/229 550/864/230 547/865/231 +f 533/845/232 546/859/233 543/866/234 +f 549/867/235 552/868/235 550/864/235 +f 547/869/236 552/868/45 535/870/237 +f 535/871/238 551/872/239 536/873/240 +f 548/874/241 551/872/48 549/867/48 +f 553/875/242 555/876/242 556/877/242 +f 555/876/243 558/878/243 556/877/243 +f 557/879/244 560/880/244 558/881/244 +f 559/882/245 562/883/245 560/880/245 +f 555/876/246 564/884/246 557/885/246 +f 561/886/247 566/887/247 562/883/247 +f 566/887/248 554/888/248 553/875/248 +f 560/880/249 568/889/249 558/881/249 +f 572/890/250 564/891/250 569/892/250 +f 565/893/251 571/894/251 570/895/251 +f 554/888/252 563/896/252 555/876/252 +f 559/882/253 564/897/253 572/898/253 +f 554/888/254 570/899/254 569/900/254 +f 559/882/255 571/901/255 561/886/255 +f 573/902/256 575/903/256 576/904/256 +f 566/887/257 577/905/257 574/906/257 +f 562/883/258 567/907/258 560/880/258 +f 556/877/259 568/908/259 578/909/259 +f 566/887/260 573/902/260 562/883/260 +f 553/875/261 578/910/261 577/911/261 +f 575/912/262 580/913/262 581/914/262 +f 567/915/256 583/916/256 568/889/256 +f 577/911/256 584/917/256 579/918/256 +f 574/906/256 579/919/256 575/920/256 +f 573/921/256 582/922/256 567/907/256 +f 578/909/256 583/923/256 584/924/256 +f 587/925/256 588/926/256 581/927/256 +f 576/928/263 587/929/263 582/930/263 +f 583/931/264 585/932/264 584/933/264 +f 575/934/265 588/935/265 576/936/265 +f 583/937/266 587/938/266 586/939/266 +f 584/940/267 580/941/267 579/942/267 +f 589/943/268 591/944/268 592/945/268 +f 593/946/269 595/947/269 596/948/269 +f 597/949/270 599/950/270 595/951/270 +f 601/952/271 602/953/271 600/954/271 +f 596/955/272 604/956/272 593/957/272 +f 590/958/273 601/959/273 605/960/273 +f 598/961/274 607/962/274 599/950/274 +f 596/948/275 599/963/275 608/964/275 +f 603/965/276 598/966/276 597/967/276 +f 603/968/277 608/969/277 609/970/277 +f 606/971/278 611/972/278 612/973/278 +f 599/963/279 613/974/279 608/964/279 +f 598/966/280 610/975/280 606/971/280 +f 608/969/281 610/976/281 609/970/281 +f 615/977/282 611/978/282 614/979/282 +f 613/980/283 611/978/283 610/976/283 +f 606/981/284 615/982/284 607/962/284 +f 607/983/285 614/984/285 613/974/285 +f 616/985/286 618/986/286 591/987/286 +f 602/988/287 616/989/287 619/990/287 +f 619/991/288 591/987/288 590/992/288 +f 602/953/289 592/993/289 620/994/289 +f 621/995/290 622/996/290 623/997/290 +f 620/994/291 621/998/291 624/999/291 +f 592/945/292 618/1000/292 621/995/292 +f 620/1001/293 617/1002/293 616/989/293 +f 623/997/294 626/1003/294 625/1004/294 +f 624/1005/295 626/1003/295 617/1002/295 +f 617/1006/296 622/1007/296 618/986/296 +f 624/999/297 623/1008/297 625/1009/297 +f 594/1010/298 597/949/298 595/951/298 +f 628/1011/299 627/1012/299 594/1010/299 +f 630/1013/300 629/1014/300 628/1011/300 +f 633/1015/272 635/1016/272 632/1017/272 +f 636/1018/272 634/1019/272 633/1015/272 +f 593/957/272 637/1020/272 636/1018/272 +f 597/967/301 604/1021/301 603/965/301 +f 627/1022/302 637/1023/302 604/1021/302 +f 629/1024/303 634/1025/303 637/1023/303 +f 632/1026/304 630/1027/304 633/1028/304 +f 633/1028/305 628/1029/305 636/1030/305 +f 636/1030/306 594/1031/306 593/946/306 +f 619/991/307 605/1032/307 639/1033/307 +f 639/1033/308 638/1034/308 632/1026/308 +f 619/990/309 600/1035/309 602/988/309 +f 632/1017/272 600/1035/272 639/1036/272 +f 630/1013/310 640/1037/310 631/1038/310 +f 605/960/311 640/1037/311 638/1039/311 +f 631/1040/312 635/1041/312 634/1025/312 +f 640/1042/313 600/954/313 635/1041/313 +f 642/1043/314 644/1044/314 641/1045/314 +f 646/1046/45 648/1047/45 645/1048/45 +f 648/1047/315 651/1049/315 649/1050/315 +f 653/1051/316 641/1045/48 652/1052/48 +f 648/1047/317 654/1053/317 650/1054/317 +f 646/1055/44 653/1056/318 647/1057/319 +f 656/1058/320 658/1059/321 655/1060/321 +f 641/1045/48 660/1061/48 652/1052/48 +f 645/1048/45 649/1050/45 661/1062/45 +f 662/1063/322 664/1064/322 665/1065/322 +f 652/1052/323 666/1066/323 667/1067/323 +f 669/1068/324 671/1069/324 668/1070/324 +f 659/1071/48 672/1072/325 660/1061/48 +f 661/1062/45 656/1058/326 668/1070/45 +f 662/1063/48 675/1073/48 673/1074/48 +f 663/1075/327 676/1076/327 664/1064/327 +f 663/1075/48 673/1074/48 672/1072/328 +f 668/1070/45 655/1060/45 669/1068/45 +f 682/1077/329 674/1078/329 683/1079/329 +f 688/1080/330 670/1081/330 669/1068/330 +f 652/1052/331 678/1082/331 653/1051/332 +f 646/1046/333 679/1083/333 680/1084/333 +f 643/1085/10 679/1083/10 644/1044/10 +f 679/1086/334 676/1087/334 644/1088/334 +f 681/1089/335 664/1064/335 676/1076/335 +f 671/1069/336 665/1065/336 664/1064/336 +f 670/1081/337 683/1079/337 665/1065/337 +f 659/1090/338 644/1088/338 676/1087/338 +f 675/1091/339 688/1092/339 677/1093/339 +f 646/1055/340 643/1085/340 642/1094/340 +f 661/1095/341 679/1086/341 645/1096/341 +f 669/1068/45 677/1097/45 688/1080/45 +f 668/1070/342 681/1089/342 661/1062/342 +f 674/1098/343 665/1065/343 683/1099/343 +f 654/1053/7 667/1100/7 650/1054/7 +f 667/1100/344 651/1049/344 650/1054/344 +f 666/1101/345 657/1102/346 651/1049/345 +f 684/1103/347 658/1059/348 657/1102/349 +f 685/1104/350 687/1105/350 658/1059/350 +f 675/1073/351 685/1106/351 673/1074/351 +f 660/1061/352 684/1107/353 666/1066/352 +f 675/1091/354 687/1108/354 686/1109/354 +f 677/1097/355 658/1059/355 687/1105/355 +f 649/1050/356 657/1102/357 656/1058/358 +f 653/1056/359 654/1110/360 647/1057/361 +f 672/1072/362 685/1106/363 684/1107/364 +f 689/1111/365 691/1112/365 692/1113/365 +f 691/1112/2 694/1114/2 692/1113/2 +f 693/1115/3 696/1116/3 694/1117/3 +f 695/1118/4 698/1119/4 696/1116/4 +f 697/1120/5 700/1121/5 698/1119/5 +f 699/1122/6 702/1123/6 700/1121/6 +f 695/1124/7 693/1125/7 701/1126/7 +f 701/1127/8 704/1128/8 702/1123/8 +f 703/1129/366 689/1111/366 704/1128/366 +f 706/1130/367 708/1131/367 705/1132/367 +f 710/1133/368 712/1134/368 709/1135/368 +f 713/1136/369 710/1137/369 709/1138/369 +f 715/1139/370 717/1140/370 718/1141/370 +f 705/1132/371 717/1142/371 716/1143/371 +f 706/1144/372 720/1145/372 707/1146/372 +f 714/1147/373 722/1148/373 710/1149/373 +f 719/1150/374 709/1151/374 720/1152/374 +f 721/1153/375 718/1154/375 722/1155/375 +f 724/1156/8 726/1157/8 723/1158/8 +f 720/1159/376 728/1160/376 707/1161/376 +f 708/1162/377 730/1163/377 717/1164/377 +f 717/1165/378 724/1156/378 718/1166/378 +f 722/1167/379 711/1168/379 710/1169/379 +f 720/1170/380 712/1134/380 727/1171/380 +f 708/1172/381 728/1173/381 729/1174/381 +f 718/1175/382 723/1158/382 722/1176/382 +f 726/1157/383 733/1177/383 731/1178/383 +f 712/1134/5 731/1178/5 734/1179/5 +f 727/1171/3 736/1180/3 728/1160/3 +f 729/1174/1 738/1181/1 730/1163/1 +f 730/1163/9 725/1182/9 724/1156/9 +f 723/1158/6 731/1178/6 711/1168/6 +f 712/1134/4 735/1183/4 727/1171/4 +f 728/1173/2 737/1184/2 729/1174/2 +f 739/1185/384 741/1186/384 742/1187/384 +f 734/1179/385 744/1188/385 735/1183/385 +f 736/1189/386 740/1190/386 737/1184/386 +f 726/1157/387 746/1191/387 732/1192/387 +f 734/1179/388 733/1193/388 743/1194/388 +f 736/1180/389 744/1195/389 745/1196/389 +f 737/1184/390 739/1197/390 738/1181/390 +f 738/1181/391 746/1198/391 725/1182/391 +f 748/1199/8 750/1200/8 747/1201/8 +f 739/1202/392 748/1199/392 746/1203/392 +f 732/1204/393 751/1205/393 733/1206/393 +f 743/1207/394 753/1208/394 744/1209/394 +f 745/1210/395 741/1186/395 740/1211/395 +f 732/1212/396 748/1199/396 747/1201/396 +f 733/1213/397 752/1214/397 743/1215/397 +f 745/1216/398 753/1208/398 754/1217/398 +f 755/1218/399 757/1219/399 758/1220/399 +f 751/1205/5 760/1221/5 752/1214/5 +f 753/1208/3 756/1222/3 754/1217/3 +f 741/1186/1 762/1223/1 742/1187/1 +f 742/1187/9 749/1224/9 748/1199/9 +f 747/1201/6 759/1225/6 751/1205/6 +f 752/1214/4 761/1226/4 753/1208/4 +f 754/1227/2 755/1218/2 741/1186/2 +f 764/1228/400 766/1229/400 763/1230/400 +f 749/1224/401 767/1231/401 750/1200/401 +f 759/1225/402 769/1232/402 760/1221/402 +f 761/1226/403 757/1233/403 756/1222/403 +f 755/1218/404 764/1234/404 762/1223/404 +f 749/1224/405 764/1228/405 763/1230/405 +f 750/1200/406 768/1235/406 759/1225/406 +f 761/1226/407 769/1236/407 770/1237/407 +f 766/1238/408 773/1239/408 771/1240/408 +f 767/1241/409 774/1242/409 768/1235/409 +f 769/1236/410 776/1243/410 770/1237/410 +f 757/1219/411 778/1244/411 758/1220/411 +f 767/1231/412 766/1238/412 771/1240/412 +f 769/1232/413 774/1245/413 775/1246/413 +f 757/1233/414 776/1247/414 777/1248/414 +f 764/1234/415 778/1249/415 765/1250/415 +f 773/1251/10 781/1252/10 779/1253/10 +f 774/1245/416 782/1254/416 775/1246/416 +f 776/1247/417 784/1255/417 777/1248/417 +f 778/1249/418 786/1256/418 765/1250/418 +f 766/1229/419 786/1257/419 772/1258/419 +f 774/1242/420 773/1251/420 779/1253/420 +f 776/1243/421 782/1259/421 783/1260/421 +f 778/1244/422 784/1261/422 785/1262/422 +f 788/1263/5 790/1264/5 787/1265/5 +f 782/1259/10 792/1266/10 783/1260/10 +f 784/1261/10 788/1267/10 785/1262/10 +f 773/1239/10 794/1268/10 780/1269/10 +f 782/1254/10 781/1270/10 791/1271/10 +f 784/1255/10 792/1272/10 793/1273/10 +f 786/1256/10 788/1263/10 787/1265/10 +f 786/1257/10 794/1274/10 772/1258/10 +f 799/1275/10 800/1276/10 796/1277/10 +f 787/1278/4 800/1279/4 794/1274/4 +f 780/1280/2 798/1281/2 781/1252/2 +f 791/1282/9 796/1283/9 792/1266/9 +f 793/1284/6 789/1285/6 788/1267/6 +f 794/1268/3 799/1286/3 780/1269/3 +f 781/1270/1 797/1287/1 791/1271/1 +f 792/1272/8 795/1288/8 793/1273/8 +f 715/1139/423 802/1289/423 716/1143/423 +f 803/1290/8 715/1139/8 721/1153/8 +f 714/1147/6 803/1290/6 721/1153/6 +f 805/1291/424 714/1147/424 713/1136/424 +f 719/1150/425 805/1291/425 713/1136/425 +f 807/1292/3 719/1150/3 706/1144/3 +f 705/1132/2 807/1293/2 706/1130/2 +f 802/1289/426 705/1132/426 716/1143/426 +f 704/1294/427 810/1295/427 809/1296/427 +f 702/1297/428 809/1296/428 811/1298/428 +f 812/1299/429 702/1297/429 811/1298/429 +f 813/1300/430 700/1301/430 812/1299/430 +f 696/1302/431 813/1300/431 814/1303/431 +f 815/1304/432 696/1302/432 814/1303/432 +f 692/1305/433 815/1306/433 816/1307/433 +f 810/1295/434 692/1305/434 816/1307/434 +f 802/1308/1 818/1309/1 808/1310/1 +f 819/1311/435 821/1312/435 822/1313/435 +f 824/1314/1 826/1315/1 823/1316/1 +f 809/1317/436 828/1318/436 811/1319/436 +f 818/1309/437 807/1320/437 808/1310/437 +f 830/1321/438 832/1322/438 826/1323/438 +f 825/1324/2 830/1325/2 826/1315/2 +f 813/1326/439 834/1327/439 835/1328/439 +f 807/1329/440 836/1330/440 806/1331/440 +f 837/1332/441 838/1333/441 839/1334/441 +f 833/1335/3 841/1336/3 830/1337/3 +f 843/1338/442 845/1339/442 842/1340/442 +f 836/1330/4 805/1341/4 806/1331/4 +f 829/1342/443 846/1343/443 847/1344/443 +f 840/1345/4 849/1346/4 841/1336/4 +f 814/1347/444 851/1348/444 815/1349/444 +f 837/1350/5 804/1351/5 805/1341/5 +f 852/1352/445 854/1353/445 855/1354/445 +f 848/1355/5 857/1356/5 849/1346/5 +f 848/1357/446 859/1358/446 856/1359/446 +f 820/1360/447 803/1361/447 804/1351/447 +f 857/1362/448 861/1363/448 849/1364/448 +f 856/1365/6 852/1366/6 857/1356/6 +f 810/1367/449 862/1368/449 863/1369/449 +f 803/1361/450 864/1370/450 801/1371/450 +f 864/1372/451 822/1313/451 865/1373/451 +f 843/1374/8 853/1375/8 852/1366/8 +f 833/1376/452 867/1377/452 840/1378/452 +f 864/1370/9 802/1308/9 801/1371/9 +f 830/1379/453 868/1380/453 831/1381/453 +f 842/1382/9 823/1316/9 853/1375/9 +f 824/1383/454 870/1384/454 825/1385/454 +f 863/1369/1 870/1384/1 869/1386/1 +f 862/1368/2 866/1387/2 870/1384/2 +f 851/1348/3 867/1377/3 866/1388/3 +f 850/1389/4 858/1390/4 867/1377/4 +f 835/1328/5 859/1358/5 858/1390/5 +f 834/1327/6 844/1391/6 859/1358/6 +f 828/1318/8 845/1339/8 844/1391/8 +f 827/1392/9 869/1386/9 845/1339/9 +f 825/1393/455 866/1387/455 833/1394/455 +f 848/1395/456 867/1377/456 858/1390/456 +f 816/1396/457 851/1397/457 862/1368/457 +f 856/1398/458 844/1391/458 843/1399/458 +f 813/1400/459 850/1389/459 814/1401/459 +f 824/1402/460 845/1339/460 869/1386/460 +f 812/1403/461 828/1318/461 834/1327/461 +f 810/1404/462 827/1392/462 809/1405/462 +f 871/1406/1 832/1322/1 846/1343/1 +f 832/1322/2 847/1344/2 846/1343/2 +f 831/1381/3 838/1333/3 847/1407/3 +f 868/1380/4 839/1334/4 838/1333/4 +f 861/1363/5 821/1312/5 839/1334/5 +f 860/1408/6 822/1313/6 821/1312/6 +f 855/1354/8 865/1373/8 822/1313/8 +f 854/1353/9 871/1406/9 865/1373/9 +f 841/1409/463 861/1363/463 868/1380/463 +f 864/1410/464 871/1406/464 817/1411/464 +f 852/1412/465 860/1408/465 857/1413/465 +f 853/1414/466 872/1415/466 854/1353/466 +f 817/1416/467 846/1343/467 818/1417/467 +f 829/1418/468 838/1333/468 836/1419/468 +f 826/1420/469 872/1415/469 823/1421/469 +f 837/1422/470 821/1312/470 820/1423/470 +f 874/1424/1 876/1425/1 873/1426/1 +f 875/1427/2 878/1428/2 876/1425/2 +f 877/1429/3 880/1430/3 878/1431/3 +f 879/1432/4 882/1433/4 880/1430/4 +f 881/1434/5 884/1435/5 882/1433/5 +f 883/1436/6 886/1437/6 884/1435/6 +f 881/1438/7 879/1439/7 877/1440/7 +f 885/1441/8 888/1442/8 886/1437/8 +f 887/1443/9 873/1426/9 888/1442/9 +f 884/1444/10 886/1445/10 888/1446/10 +f 890/1447/471 892/1448/471 889/1449/471 +f 890/1450/45 895/1451/45 893/1452/45 +f 894/1453/472 897/1454/472 898/1455/472 +f 896/1456/48 900/1457/48 899/1458/48 +f 895/1459/46 900/1457/46 893/1460/46 +f 890/1447/44 896/1456/44 894/1453/44 +f 898/1461/7 902/1462/7 901/1463/7 +f 894/1464/45 901/1463/45 895/1451/45 +f 899/1458/473 897/1465/473 896/1456/473 +f 895/1459/474 902/1466/474 899/1458/474 +f 892/1467/10 904/1468/10 903/1469/10 +f 893/1460/475 903/1470/475 904/1471/475 +f 890/1450/45 904/1472/45 891/1473/45 +f 889/1449/476 903/1469/476 900/1457/476 +f 906/1474/471 908/1475/471 905/1476/471 +f 910/1477/48 908/1478/48 909/1479/48 +f 911/1480/472 913/1481/472 914/1482/472 +f 916/1483/45 914/1482/45 915/1484/45 +f 916/1483/46 910/1485/46 909/1486/46 +f 914/1482/44 908/1475/44 911/1480/44 +f 918/1487/7 912/1488/7 917/1489/7 +f 917/1489/48 911/1490/48 910/1477/48 +f 914/1482/477 918/1487/477 915/1484/477 +f 918/1491/474 910/1485/474 915/1484/474 +f 920/1492/10 906/1493/10 919/1494/10 +f 909/1486/475 919/1495/475 916/1483/475 +f 908/1478/48 920/1496/48 909/1479/48 +f 916/1483/478 906/1493/478 905/1476/478 +f 921/1497/479 923/1498/479 924/1499/479 +f 922/1500/44 927/1501/44 925/1502/44 +f 926/1503/480 929/1504/480 930/1505/480 +f 928/1506/46 932/1507/46 931/1508/46 +f 925/1509/45 931/1508/45 932/1507/45 +f 922/1510/48 928/1506/48 926/1503/48 +f 930/1511/481 934/1512/481 933/1513/481 +f 927/1501/44 930/1511/44 933/1513/44 +f 931/1508/482 929/1514/482 928/1506/482 +f 927/1515/483 934/1516/483 931/1508/483 +f 924/1517/484 936/1518/484 935/1519/484 +f 932/1507/485 936/1520/485 925/1509/485 +f 925/1502/44 923/1521/44 922/1500/44 +f 932/1507/486 924/1517/486 935/1519/486 +f 937/1522/10 939/1523/10 940/1524/10 +f 941/1525/45 942/1526/45 943/1527/45 +f 945/1528/487 947/1529/487 948/1530/487 +f 951/1531/48 952/1532/48 953/1533/48 +f 956/1534/46 958/1535/46 955/1536/46 +f 960/1537/46 962/1538/46 959/1539/46 +f 964/1540/46 954/1541/46 963/1542/46 +f 940/1543/46 965/1544/46 937/1545/46 +f 967/1546/44 969/1547/44 966/1548/44 +f 970/1549/488 946/1550/488 945/1528/488 +f 973/1551/45 964/1552/45 974/1553/45 +f 945/1528/489 969/1554/489 950/1555/489 +f 964/1556/490 970/1557/490 949/1558/490 +f 945/1528/491 975/1559/491 969/1554/491 +f 973/1560/46 971/1561/46 970/1557/46 +f 972/1562/492 979/1563/492 977/1564/492 +f 972/1562/493 976/1565/493 973/1551/493 +f 981/1566/7 983/1567/7 980/1568/7 +f 976/1565/45 981/1569/45 980/1570/45 +f 971/1571/494 982/1572/494 946/1550/494 +f 976/1573/495 983/1567/495 971/1561/495 +f 975/1559/496 978/1574/496 984/1575/496 +f 947/1529/497 986/1576/497 979/1563/497 +f 948/1530/44 979/1563/44 978/1574/44 +f 946/1550/498 985/1577/498 947/1529/498 +f 981/1566/499 985/1578/499 982/1579/499 +f 969/1580/500 984/1575/500 966/1581/500 +f 972/1562/501 984/1575/501 978/1574/501 +f 977/1564/502 986/1582/502 981/1569/502 +f 990/1583/503 991/1584/503 969/1547/503 +f 938/1585/504 967/1546/504 939/1523/504 +f 966/1548/505 993/1586/505 994/1587/505 +f 997/1588/46 999/1589/46 942/1590/46 +f 1000/1591/10 955/1536/10 958/1535/10 +f 943/1592/7 965/1544/7 944/1593/7 +f 942/1590/506 1002/1594/506 943/1592/506 +f 997/1588/507 1000/1591/507 998/1595/507 +f 1004/1596/46 1006/1597/46 1003/1598/46 +f 1007/1599/10 959/1539/10 962/1538/10 +f 1009/1600/7 957/1601/7 956/1534/7 +f 1003/1598/506 1010/1602/506 1009/1600/506 +f 1007/1599/507 1004/1596/507 1008/1603/507 +f 1012/1604/46 1013/1605/46 1011/1606/46 +f 1014/1607/10 954/1541/10 953/1608/10 +f 1015/1609/7 961/1610/7 960/1537/7 +f 1015/1609/506 1013/1605/506 1016/1611/506 +f 1012/1604/507 953/1608/507 952/1612/507 +f 990/1583/48 1006/1613/48 1005/1614/48 +f 991/1584/48 1007/1615/48 1016/1616/48 +f 951/1531/48 1013/1617/48 952/1532/48 +f 989/1618/48 1000/1619/48 1010/1620/48 +f 988/1621/48 999/1622/48 998/1623/48 +f 937/1624/48 965/1625/48 1002/1626/48 +f 964/1627/45 963/1628/45 1014/1629/45 +f 993/1586/45 1012/1630/45 1011/1631/45 +f 994/1587/45 1015/1632/45 1008/1633/45 +f 995/1634/45 1004/1635/45 1003/1636/45 +f 996/1637/45 1009/1638/45 1001/1639/45 +f 941/1525/45 997/1640/45 942/1526/45 +f 1018/1641/1 1020/1642/1 1017/1643/1 +f 1022/1644/5 1024/1645/5 1021/1646/5 +f 1023/1647/6 1026/1648/6 1024/1645/6 +f 1028/1649/508 1030/1650/508 1027/1651/508 +f 1024/1645/509 1032/1652/509 1021/1646/509 +f 1018/1653/510 1034/1654/510 1035/1655/510 +f 1022/1656/511 1037/1657/511 1023/1658/511 +f 1038/1659/512 1040/1660/512 1041/1661/512 +f 1027/1662/513 1043/1663/513 1042/1664/513 +f 1044/1665/514 1046/1666/514 1042/1667/514 +f 1048/1668/515 1050/1669/515 1047/1670/515 +f 1048/1671/516 1051/1672/516 1049/1673/516 +f 1042/1674/517 1052/1675/517 1027/1676/517 +f 1044/1677/518 1053/1678/518 1045/1679/518 +f 1059/1680/3 1061/1681/3 1058/1682/3 +f 1060/1683/4 1063/1684/4 1061/1681/4 +f 1183/1685/519 1097/1686/519 1090/1687/519 +f 1067/1688/520 1068/1689/520 1069/1690/520 +f 1098/1691/9 1054/1692/9 1191/1693/9 +f 1074/1694/521 1075/1695/521 1073/1696/521 +f 1214/1697/522 1205/1698/522 1213/1699/522 +f 1079/1700/523 1070/1701/523 1074/1702/523 +f 1055/1703/524 1080/1704/524 1056/1705/524 +f 1081/1706/525 1075/1695/525 1064/1707/525 +f 1088/1708/526 1032/1709/526 1086/1710/526 +f 1083/1711/527 1080/1704/527 1079/1712/527 +f 1079/1700/528 1082/1713/528 1083/1714/528 +f 1031/1715/529 1069/1716/529 1032/1652/529 +f 1089/1717/530 1084/1718/530 1085/1719/530 +f 1071/1720/9 1055/1721/9 1098/1691/9 +f 1209/1722/531 1095/1723/531 1221/1724/531 +f 1095/1723/532 1077/1725/532 1076/1726/532 +f 1070/1727/9 1071/1720/9 1072/1728/9 +f 1099/1729/533 1100/1730/533 1101/1731/533 +f 1035/1732/534 1104/1733/534 1102/1734/534 +f 1105/1735/535 1107/1736/535 1029/1737/535 +f 1108/1738/536 1104/1733/536 1109/1739/536 +f 1110/1740/537 1111/1741/537 1112/1742/537 +f 1047/1743/538 1105/1744/538 1048/1745/538 +f 1023/1746/539 1099/1729/539 1025/1747/539 +f 1042/1748/540 1110/1740/540 1044/1749/540 +f 1028/1750/541 1105/1735/541 1029/1737/541 +f 1039/1751/542 1110/1752/542 1040/1753/542 +f 1018/1754/543 1102/1734/543 1019/1755/543 +f 1114/1756/544 1111/1741/544 1100/1730/544 +f 1115/1757/545 1106/1758/545 1103/1759/545 +f 1104/1733/546 1106/1758/546 1116/1760/546 +f 1034/1654/547 1103/1759/547 1035/1655/547 +f 1037/1657/548 1114/1756/548 1100/1730/548 +f 1030/1650/549 1107/1736/549 1117/1761/549 +f 1110/1752/550 1118/1762/550 1040/1753/550 +f 1105/1744/551 1116/1760/551 1106/1758/551 +f 1120/1763/552 1122/1764/552 1119/1765/552 +f 1051/1672/7 1120/1766/7 1049/1673/7 +f 1049/1767/7 1119/1765/7 1050/1669/7 +f 1052/1768/7 1123/1769/7 1051/1770/7 +f 1045/1771/7 1126/1772/7 1046/1666/7 +f 1045/1679/7 1127/1773/7 1125/1774/7 +f 1129/1775/553 1131/1776/553 1128/1777/553 +f 1125/1778/554 1133/1779/554 1126/1772/554 +f 1124/1780/555 1128/1781/555 1123/1769/555 +f 1124/1782/556 1133/1783/556 1129/1784/556 +f 1123/1785/557 1121/1786/557 1120/1766/557 +f 1134/1787/7 1136/1788/7 1137/1789/7 +f 1129/1790/558 1134/1791/558 1130/1792/558 +f 1128/1793/559 1138/1794/559 1121/1795/559 +f 1122/1796/560 1138/1797/560 1139/1798/560 +f 1140/1799/561 1135/1800/561 1132/1801/561 +f 1133/1802/562 1135/1803/562 1134/1787/562 +f 1131/1804/7 1143/1805/7 1138/1794/7 +f 1139/1798/7 1143/1806/7 1144/1807/7 +f 1141/1808/7 1136/1809/7 1135/1800/7 +f 1147/1810/9 1149/1811/9 1146/1812/9 +f 1150/1813/563 1151/1814/563 1152/1815/563 +f 1144/1807/564 1146/1816/564 1153/1817/564 +f 1145/1818/565 1155/1819/565 1136/1809/565 +f 1156/1820/566 1154/1821/566 1145/1822/566 +f 1137/1789/567 1155/1823/567 1151/1824/567 +f 1146/1816/1 1160/1825/1 1153/1817/1 +f 1154/1826/4 1164/1827/4 1155/1819/4 +f 1155/1823/5 1165/1828/5 1151/1824/5 +f 1166/1829/5 1162/1830/5 1161/1831/5 +f 1168/1832/6 1162/1830/6 1167/1833/6 +f 1170/1834/1 1172/1835/1 1169/1836/1 +f 1174/1837/3 1176/1838/3 1173/1839/3 +f 1175/1840/4 1161/1831/4 1176/1838/4 +f 1175/1841/7 1170/1842/7 1177/1843/7 +f 1178/1844/7 1180/1845/7 1181/1846/7 +f 1090/1687/568 1091/1847/568 1092/1848/568 +f 1064/1849/5 1185/1850/5 1067/1851/5 +f 1184/1852/569 1308/1853/569 1193/1854/569 +f 1064/1707/570 1069/1716/570 1081/1855/570 +f 1090/1687/571 1187/1856/571 1310/1857/571 +f 1191/1693/9 1054/1692/9 1180/1858/9 +f 1188/1859/8 1186/1860/8 1090/1687/8 +f 1162/1861/7 1159/1862/7 1160/1863/7 +f 1194/1864/9 1169/1836/9 1172/1835/9 +f 1189/1865/572 1195/1866/572 1196/1867/572 +f 1197/1868/7 1189/1865/7 1196/1867/7 +f 1097/1869/48 1093/1870/48 1096/1871/48 +f 1198/1872/573 1200/1873/573 1093/1874/573 +f 1201/1875/7 1145/1822/7 1141/1876/7 +f 1165/1877/6 1152/1815/6 1151/1814/6 +f 1183/1878/574 1198/1879/574 1097/1869/574 +f 1204/1880/10 1206/1881/10 1072/1882/10 +f 1082/1883/575 1073/1696/575 1087/1884/575 +f 1071/1885/10 1204/1886/10 1072/1887/10 +f 1099/1888/576 1115/1757/576 1034/1889/576 +f 1153/1890/2 1159/1862/2 1157/1891/2 +f 1208/1892/577 1071/1885/577 1098/1893/577 +f 1200/1894/578 1206/1881/578 1205/1895/578 +f 1065/1896/579 1093/1870/579 1078/1897/579 +f 1077/1898/10 1065/1896/10 1078/1897/10 +f 1185/1899/10 1077/1900/10 1095/1901/10 +f 1185/1899/577 1209/1902/577 1192/1903/577 +f 1195/1866/580 1192/1903/580 1209/1902/580 +f 1098/1893/580 1210/1904/580 1208/1892/580 +f 1211/1905/7 1127/1906/7 1053/1907/7 +f 1076/1726/581 1221/1724/581 1095/1723/581 +f 1237/1908/582 1209/1722/582 1221/1724/582 +f 1207/1909/583 1208/1910/583 1217/1911/583 +f 1104/1733/584 1215/1912/584 1109/1739/584 +f 1122/1913/585 1212/1914/585 1119/1915/585 +f 1142/1916/586 1146/1812/586 1143/1805/586 +f 1159/1917/3 1154/1821/3 1157/1918/3 +f 1236/1919/587 1217/1911/587 1208/1910/587 +f 1214/1697/46 1093/1874/46 1200/1873/46 +f 1038/1920/588 1113/1921/588 1047/1922/588 +f 1047/1923/589 1211/1924/589 1038/1925/589 +f 1032/1709/590 1068/1689/590 1086/1710/590 +f 1086/1926/591 1089/1927/591 1085/1928/591 +f 1215/1912/592 1113/1921/592 1041/1929/592 +f 1140/1930/593 1125/1774/593 1127/1773/593 +f 1131/1776/7 1150/1931/7 1142/1932/7 +f 1180/1845/594 1210/1904/594 1191/1933/594 +f 1219/1934/595 1221/1935/595 1094/1936/595 +f 1211/1924/7 1119/1915/7 1212/1914/7 +f 1101/1731/596 1107/1736/596 1115/1757/596 +f 1217/1911/597 1213/1699/597 1207/1909/597 +f 1086/1926/598 1222/1937/598 1088/1708/598 +f 1201/1875/599 1140/1938/599 1216/1939/599 +f 1134/1791/7 1150/1813/7 1130/1792/7 +f 1087/1940/600 1024/1645/600 1026/1648/600 +f 1224/1941/601 1203/1942/601 1223/1943/601 +f 1223/1943/602 1197/1944/602 1226/1945/602 +f 1178/1946/603 1227/1947/603 1179/1948/603 +f 1233/1949/604 1210/1950/604 1179/1948/604 +f 1224/1941/605 1178/1946/605 1225/1951/605 +f 1227/1947/606 1233/1949/606 1179/1948/606 +f 1229/1952/607 1226/1945/607 1196/1953/607 +f 1019/1954/2 1222/1955/2 1020/1642/2 +f 1019/1956/608 1108/1738/608 1228/1957/608 +f 1039/1958/609 1211/1905/609 1053/1907/609 +f 1111/1741/610 1101/1731/610 1100/1730/610 +f 1028/1959/611 1052/1768/611 1051/1770/611 +f 1040/1660/612 1215/1960/612 1041/1661/612 +f 1122/1961/613 1201/1962/613 1216/1963/613 +f 1201/1962/7 1144/1964/7 1156/1965/7 +f 1156/1965/614 1153/1890/614 1157/1891/614 +f 1056/1705/615 1089/1717/615 1059/1966/615 +f 1033/1967/616 1099/1888/616 1034/1889/616 +f 1194/1968/7 1159/1917/7 1158/1969/7 +f 1224/1970/617 1230/1971/617 1232/1972/617 +f 1195/1973/618 1234/1974/618 1229/1952/618 +f 1196/1953/619 1195/1973/619 1229/1952/619 +f 1076/1726/620 1077/1725/620 1078/1975/620 +f 1214/1697/621 1200/1873/621 1205/1698/621 +f 1210/1950/622 1236/1919/622 1208/1910/622 +f 1237/1908/623 1195/1973/623 1209/1722/623 +f 1231/1976/624 1239/1977/624 1232/1978/624 +f 1232/1978/625 1235/1979/625 1233/1949/625 +f 1230/1980/626 1234/1974/626 1240/1981/626 +f 1219/1982/627 1241/1983/627 1242/1984/627 +f 1219/1985/628 1243/1986/628 1220/1987/628 +f 1220/1987/629 1237/1908/629 1221/1724/629 +f 1237/1908/630 1240/1981/630 1234/1974/630 +f 1238/1988/631 1243/1986/631 1242/1989/631 +f 1238/1990/632 1241/1983/632 1239/1977/632 +f 1236/1919/633 1239/1977/633 1241/1983/633 +f 1281/1991/634 1367/1992/634 1245/1993/634 +f 1067/1851/4 1062/1994/4 1060/1683/4 +f 1061/1681/4 1244/1995/4 1193/1854/4 +f 1289/1996/635 1368/1997/635 1288/1998/635 +f 1284/1999/636 1370/2000/636 1289/2001/636 +f 1249/2002/637 1248/2003/637 1258/2004/637 +f 1282/2005/638 1371/2006/638 1281/2007/638 +f 1246/2008/639 1282/2009/639 1271/2010/639 +f 1367/2011/640 1372/2012/640 1246/2013/640 +f 1369/2014/8 1370/2015/8 1250/2016/8 +f 1248/2017/641 1250/2016/641 1251/2018/641 +f 1251/2018/642 1246/2013/642 1248/2017/642 +f 1368/2019/643 1249/2002/643 1288/2020/643 +f 1270/2021/644 1281/1991/644 1245/1993/644 +f 1286/2022/642 1245/1993/642 1285/2023/642 +f 1367/2024/645 1285/2023/645 1245/1993/645 +f 1258/2004/646 1246/2025/646 1271/2010/646 +f 1292/2026/8 1288/2020/8 1249/2002/8 +f 1249/2002/647 1262/2027/647 1265/2028/647 +f 1251/2029/648 1284/1999/648 1285/2023/648 +f 1253/2030/649 1277/2031/649 1278/2032/649 +f 1267/2033/650 1253/2030/650 1278/2032/650 +f 1277/2031/651 1269/2034/651 1276/2035/651 +f 1253/2030/652 1269/2034/652 1252/2036/652 +f 1273/2037/653 1255/2038/653 1272/2039/653 +f 1272/2039/654 1260/2040/654 1261/2041/654 +f 1259/2042/655 1273/2037/655 1262/2043/655 +f 1259/2042/656 1255/2038/656 1254/2044/656 +f 1275/2045/657 1257/2046/657 1274/2047/657 +f 1274/2047/658 1264/2048/658 1265/2049/658 +f 1263/2050/659 1275/2045/659 1266/2051/659 +f 1263/2050/652 1257/2046/652 1256/2052/652 +f 1258/2004/642 1272/2053/642 1261/2054/642 +f 1261/2041/660 1259/2042/660 1262/2043/660 +f 1262/2027/642 1274/2055/642 1265/2028/642 +f 1265/2049/661 1263/2050/661 1266/2051/661 +f 1267/2056/642 1275/2057/642 1276/2058/642 +f 1276/2035/662 1268/2059/662 1267/2033/662 +f 1279/2060/663 1291/2061/663 1292/2062/663 +f 1273/2063/664 1272/2053/664 1282/2009/664 +f 1279/2060/642 1277/2064/642 1280/2065/642 +f 1205/1698/665 1204/2066/665 1213/1699/665 +f 1290/2067/8 1284/1999/8 1289/2001/8 +f 1286/2022/666 1284/1999/666 1287/2068/667 +f 1293/2069/10 1291/2061/10 1295/2070/10 +f 1088/1708/4 1022/1644/4 1021/1646/4 +f 1297/2071/9 1018/1641/9 1017/1643/9 +f 1026/1648/8 1033/2072/8 1297/2071/8 +f 1083/1714/668 1297/2071/668 1017/1643/668 +f 1057/2073/2 1059/2074/2 1058/2075/2 +f 1298/2076/1 1056/2077/1 1057/2073/1 +f 1020/1642/669 1083/1711/669 1017/1643/669 +f 1301/2078/670 1036/2079/670 1300/2080/670 +f 1108/2081/671 1301/2078/671 1300/2082/671 +f 1300/2080/672 1022/2083/672 1296/2084/672 +f 1301/2078/673 1112/1742/673 1114/1756/673 +f 1117/1761/674 1043/1663/674 1030/2085/674 +f 1126/2086/7 1052/1675/7 1046/2087/7 +f 1150/1931/675 1147/2088/675 1142/1932/675 +f 1194/1864/8 1168/2089/8 1177/2090/8 +f 1171/2091/2 1174/1837/2 1173/1839/2 +f 1203/2092/7 1182/2093/7 1197/2094/7 +f 1225/2095/7 1181/2096/7 1188/2097/7 +f 1092/2098/45 1200/1894/45 1199/2099/45 +f 1152/2100/8 1148/2101/8 1147/2088/8 +f 1199/2099/676 1188/2097/676 1092/2098/676 +f 1031/2102/677 1073/2103/677 1081/1706/677 +f 1301/2078/678 1215/1960/678 1118/1762/678 +f 1212/2104/679 1140/2105/679 1127/1906/679 +f 1198/1872/680 1225/1951/680 1199/2106/680 +f 1222/1955/681 1084/1718/681 1020/1642/681 +f 1297/2071/682 1087/1884/682 1026/1648/682 +f 1222/1937/3 1296/2107/3 1088/1708/3 +f 1108/2081/683 1296/2108/683 1228/2109/683 +f 1060/2110/684 1089/1927/684 1068/2111/684 +f 1231/2112/685 1240/1981/685 1238/1988/685 +f 1218/2113/686 1236/1919/686 1241/1983/686 +f 1055/1721/1 1302/2114/1 1054/1692/1 +f 1299/2115/1 1055/1721/1 1056/2077/1 +f 1054/1692/1 1298/2076/1 1057/2073/1 +f 1283/2116/687 1290/2117/7 1294/2118/7 +f 1306/2119/10 1308/2120/10 1310/2121/10 +f 1057/2073/688 1306/2122/688 1305/2123/688 +f 1090/1687/689 1092/1848/689 1188/1859/689 +f 1091/1847/690 1075/2124/690 1206/2125/690 +f 1061/1681/691 1306/2126/691 1058/1682/691 +f 1090/1687/692 1309/2127/692 1184/1852/692 +f 1054/1692/693 1305/2128/693 1304/2129/693 +f 1193/1854/694 1307/2130/694 1061/1681/694 +f 1304/2131/695 1186/1860/695 1054/1692/695 +f 1206/2125/8 1070/1727/8 1072/1728/8 +f 1173/2132/7 1165/1877/7 1171/2133/7 +f 1173/2134/7 1148/2101/7 1202/2135/7 +f 1176/2136/7 1149/1811/7 1148/2137/7 +f 1161/2138/7 1160/1825/7 1149/2139/7 +f 1172/2140/7 1163/2141/7 1194/2142/7 +f 1164/2143/7 1171/2144/7 1165/1828/7 +f 1323/2145/696 1318/2146/7 1319/2147/697 +f 1287/2148/698 1270/2021/699 1286/2022/699 +f 1180/1858/9 1186/1860/9 1181/2149/9 +f 1065/2150/6 1064/1849/6 1075/2124/6 +f 1065/2150/700 1075/2124/700 1096/2151/700 +f 1185/1850/5 1192/2152/5 1067/1851/5 +f 1192/2152/5 1193/1854/5 1067/1851/5 +f 1193/1854/5 1190/2153/5 1189/2154/5 +f 1189/2154/5 1184/1852/5 1193/1854/5 +f 1090/1687/701 1096/2151/701 1075/2124/701 +f 1184/1852/6 1183/1685/6 1090/1687/6 +f 1244/1995/4 1067/1851/4 1193/1854/4 +f 1313/2155/10 1314/2156/10 1315/2157/10 +f 1320/2158/702 1322/2159/702 1319/2160/703 +f 1318/2161/6 1320/2158/6 1319/2160/704 +f 1311/2162/2 1324/2163/2 1325/2164/2 +f 1327/2165/705 1329/2166/705 1326/2167/705 +f 1335/2168/706 1314/2169/706 1334/2170/706 +f 1314/2156/707 1329/2166/707 1315/2157/707 +f 1335/2171/708 1338/2172/708 1339/2173/708 +f 1337/2174/705 1334/2170/705 1340/2175/705 +f 1341/2176/709 1342/2177/709 1343/2178/709 +f 1333/2179/705 1344/2180/705 1341/2181/705 +f 1345/2182/710 1346/2183/710 1347/2184/710 +f 1331/2185/705 1348/2186/705 1345/2187/705 +f 1342/2177/711 1350/2188/711 1343/2178/711 +f 1334/2189/712 1342/2177/712 1340/2190/712 +f 1333/2191/713 1343/2178/713 1350/2188/713 +f 1334/2189/714 1350/2188/714 1349/2192/714 +f 1346/2183/715 1352/2193/715 1347/2184/715 +f 1332/2194/716 1346/2183/716 1344/2195/716 +f 1331/2196/717 1347/2184/717 1352/2193/717 +f 1332/2194/718 1352/2193/718 1351/2197/718 +f 1353/2198/711 1339/2173/711 1338/2172/711 +f 1327/2199/719 1339/2173/719 1354/2200/719 +f 1337/2201/720 1353/2198/720 1338/2172/720 +f 1327/2199/721 1353/2198/721 1328/2202/721 +f 1320/2158/722 1356/2203/722 1321/2204/722 +f 1341/2181/723 1344/2180/723 1357/2205/723 +f 1316/2206/6 1315/2207/6 1357/2205/6 +f 1348/2186/724 1358/2208/724 1359/2209/724 +f 1321/2204/725 1361/2210/725 1360/2211/725 +f 1360/2211/705 1322/2159/705 1321/2204/705 +f 1324/2212/726 1336/2213/726 1360/2211/726 +f 1357/2205/727 1363/2214/727 1316/2206/727 +f 1358/2215/705 1356/2216/705 1359/2217/705 +f 1355/2218/728 1359/2217/728 1356/2216/728 +f 1364/2219/6 1362/2220/6 1355/2218/6 +f 1365/2221/729 1361/2222/729 1358/2215/729 +f 1325/2164/730 1358/2223/730 1330/2224/730 +f 1325/2225/731 1366/2226/731 1365/2221/731 +f 1357/2205/732 1359/2227/732 1362/2228/732 +f 1320/2158/733 1364/2229/733 1355/2230/733 +f 1317/2231/734 1363/2232/734 1364/2219/734 +f 1324/2212/735 1361/2233/735 1366/2234/735 +f 1319/2147/736 1336/2213/737 1323/2145/738 +f 1213/1699/4 1204/2066/4 1207/1909/4 +f 1294/2235/3 1295/2236/3 1282/2009/3 +f 1094/2237/739 1076/1726/739 1078/1975/739 +f 1078/1975/740 1093/1874/740 1094/2237/740 +f 1233/1949/741 1235/1979/741 1210/1950/741 +f 1226/1945/742 1197/1944/742 1196/1953/742 +f 1374/2238/1 1376/2239/1 1373/2240/1 +f 1375/2241/2 1378/2242/2 1376/2239/2 +f 1377/2243/3 1380/2244/3 1378/2245/3 +f 1379/2246/4 1382/2247/4 1380/2244/4 +f 1381/2248/5 1384/2249/5 1382/2247/5 +f 1383/2250/6 1386/2251/6 1384/2249/6 +f 1381/2248/5 1388/2252/5 1383/2250/5 +f 1385/2253/8 1390/2254/8 1386/2251/8 +f 1389/2255/9 1373/2240/9 1390/2254/9 +f 1384/2249/743 1391/2256/743 1392/2257/743 +f 1398/2258/10 1394/2259/10 1396/2260/10 +f 1380/2244/744 1397/2261/744 1396/2262/744 +f 1386/2251/745 1398/2263/745 1391/2264/745 +f 1378/2242/746 1394/2265/746 1376/2239/746 +f 1384/2249/747 1397/2266/747 1382/2247/747 +f 1390/2254/748 1393/2267/748 1398/2268/748 +f 1376/2239/749 1393/2269/749 1373/2240/749 +f 1380/2244/750 1395/2270/750 1378/2245/750 +f 1399/2271/751 1401/2272/751 1402/2273/751 +f 1389/2255/9 1399/2271/9 1374/2238/9 +f 1374/2238/1 1403/2274/1 1375/2241/1 +f 1377/2243/3 1405/2275/3 1379/2246/3 +f 1383/2250/6 1406/2276/6 1385/2253/6 +f 1379/2246/4 1387/2277/4 1381/2248/4 +f 1385/2253/8 1400/2278/8 1389/2255/8 +f 1375/2241/2 1404/2279/2 1377/2280/2 +f 1388/2252/752 1408/2281/752 1406/2276/752 +f 1387/2277/753 1409/2282/753 1410/2283/753 +f 1404/2279/754 1411/2284/754 1412/2285/754 +f 1400/2278/755 1408/2286/755 1401/2287/755 +f 1387/2277/756 1407/2288/756 1388/2252/756 +f 1405/2275/757 1412/2289/757 1409/2290/757 +f 1399/2271/758 1411/2291/758 1403/2274/758 +f 1412/2289/759 1414/2292/759 1409/2290/759 +f 1414/2293/7 1413/2294/7 1418/2295/7 +f 1402/2296/760 1415/2297/760 1411/2291/760 +f 1401/2272/761 1416/2298/761 1402/2273/761 +f 1408/2281/762 1419/2299/762 1418/2300/762 +f 1410/2283/763 1414/2301/763 1420/2302/763 +f 1412/2285/764 1415/2303/764 1413/2304/764 +f 1408/2286/765 1417/2305/765 1401/2287/765 +f 1407/2288/766 1420/2306/766 1419/2307/766 +f 1422/2308/4 1424/2309/4 1421/2310/4 +f 1422/2308/3 1426/2311/3 1423/2312/3 +f 1427/2313/2 1426/2314/2 1425/2315/2 +f 1429/2316/1 1428/2317/1 1427/2313/1 +f 1431/2318/9 1430/2319/9 1429/2316/9 +f 1433/2320/8 1432/2321/8 1431/2318/8 +f 1435/2322/9 1430/2319/9 1432/2321/9 +f 1437/2323/6 1434/2324/6 1433/2320/6 +f 1421/2310/5 1438/2325/5 1437/2323/5 +f 1431/2318/745 1440/2326/745 1433/2320/745 +f 1446/2327/10 1442/2328/10 1439/2329/10 +f 1427/2313/749 1443/2330/749 1429/2316/749 +f 1433/2320/743 1442/2331/743 1437/2323/743 +f 1446/2332/750 1425/2333/750 1422/2308/750 +f 1443/2334/748 1431/2318/748 1429/2316/748 +f 1437/2323/747 1441/2335/747 1421/2310/747 +f 1441/2336/744 1422/2308/744 1421/2310/744 +f 1445/2337/746 1427/2313/746 1425/2315/746 +f 1448/2338/756 1450/2339/756 1447/2340/756 +f 1447/2340/5 1438/2325/5 1424/2309/5 +f 1451/2341/4 1424/2309/4 1423/2312/4 +f 1452/2342/2 1426/2314/2 1428/2317/2 +f 1454/2343/8 1432/2321/8 1434/2324/8 +f 1436/2344/1 1428/2317/1 1430/2319/1 +f 1450/2339/6 1434/2324/6 1438/2325/6 +f 1453/2345/3 1423/2312/3 1426/2311/3 +f 1455/2346/767 1435/2322/767 1454/2343/767 +f 1436/2344/758 1458/2347/758 1452/2342/758 +f 1453/2345/757 1460/2348/757 1451/2341/757 +f 1449/2349/752 1454/2343/752 1450/2339/752 +f 1456/2350/751 1436/2344/751 1435/2322/751 +f 1452/2342/754 1459/2351/754 1453/2352/754 +f 1460/2353/753 1447/2340/753 1451/2341/753 +f 1461/2354/768 1459/2351/768 1458/2355/768 +f 1467/2356/7 1468/2357/7 1464/2358/7 +f 1463/2359/763 1448/2360/763 1460/2353/763 +f 1448/2338/766 1467/2361/766 1449/2362/766 +f 1455/2346/765 1465/2363/765 1456/2364/765 +f 1457/2365/760 1461/2366/760 1458/2347/760 +f 1459/2367/759 1463/2368/759 1460/2348/759 +f 1467/2369/762 1455/2370/762 1449/2349/762 +f 1456/2350/769 1464/2371/769 1457/2372/769 +f 1471/2373/770 1470/2374/770 1469/2375/770 +f 1473/2376/771 1471/2373/771 1469/2375/771 +f 1475/2377/772 1474/2378/772 1473/2376/772 +f 1478/2379/773 1470/2374/773 1472/2380/773 +f 1477/2381/774 1478/2379/774 1471/2373/774 +f 1475/2382/48 1473/2383/48 1469/2375/48 +f 1481/2384/775 1480/2385/775 1479/2386/775 +f 1483/2387/776 1481/2384/776 1479/2386/776 +f 1485/2388/777 1484/2389/777 1483/2387/777 +f 1482/2390/778 1487/2391/778 1480/2385/778 +f 1487/2391/779 1488/2392/779 1481/2384/779 +f 1485/2393/45 1483/2394/45 1479/2386/45 +f 1491/2395/780 1490/2396/780 1489/2397/780 +f 1493/2398/781 1491/2395/781 1489/2397/781 +f 1495/2399/782 1494/2400/782 1493/2398/782 +f 1498/2401/783 1490/2396/783 1492/2402/783 +f 1497/2403/784 1498/2401/784 1491/2395/784 +f 1495/2404/46 1493/2405/46 1489/2397/46 +f 1499/2406/785 1502/2407/785 1500/2408/785 +f 1503/2409/786 1501/2410/786 1499/2406/786 +f 1505/2411/787 1504/2412/787 1503/2409/787 +f 1508/2413/788 1500/2408/788 1502/2407/788 +f 1507/2414/789 1508/2413/789 1501/2410/789 +f 1505/2415/44 1503/2416/44 1499/2406/44 +f 1509/2417/790 1512/2418/790 1510/2419/790 +f 1513/2420/791 1511/2421/791 1509/2417/791 +f 1515/2422/792 1514/2423/792 1513/2420/792 +f 1512/2418/793 1517/2424/793 1510/2419/793 +f 1517/2424/794 1518/2425/794 1511/2421/794 +f 1515/2426/795 1513/2427/795 1509/2417/795 +f 1519/2428/796 1522/2429/796 1520/2430/796 +f 1523/2431/797 1521/2432/797 1519/2428/797 +f 1523/2431/798 1526/2433/798 1524/2434/798 +f 1528/2435/799 1520/2430/799 1522/2429/799 +f 1527/2436/800 1528/2435/800 1521/2432/800 +f 1525/2437/801 1523/2438/801 1519/2428/801 +f 1531/2439/802 1530/2440/802 1529/2441/802 +f 1529/2441/803 1534/2442/803 1531/2439/803 +f 1533/2443/804 1536/2444/804 1534/2442/804 +f 1532/2445/805 1537/2446/805 1530/2440/805 +f 1537/2446/806 1538/2447/806 1531/2439/806 +f 1535/2448/807 1533/2449/807 1529/2441/807 +f 1541/2450/808 1540/2451/808 1539/2452/808 +f 1539/2452/809 1544/2453/809 1541/2450/809 +f 1543/2454/810 1546/2455/810 1544/2453/810 +f 1548/2456/811 1540/2451/811 1542/2457/811 +f 1547/2458/812 1548/2456/812 1541/2450/812 +f 1545/2459/813 1543/2460/813 1539/2452/813 +f 2/1/1 3/4/1 4/2/1 +f 3/4/2 5/2461/2 6/5/2 +f 5/6/3 7/9/3 8/7/3 +f 7/9/4 9/11/4 10/10/4 +f 9/11/5 11/13/5 12/12/5 +f 11/13/6 13/18/6 14/14/6 +f 5/16/7 3/2462/7 2/2463/7 +f 2/2463/7 15/2464/7 5/16/7 +f 15/2464/7 13/17/7 5/16/7 +f 13/17/7 11/2465/7 9/2466/7 +f 9/2466/7 7/15/7 13/17/7 +f 13/18/8 15/20/8 16/19/8 +f 15/20/9 2/1/9 1/3/9 +f 16/23/10 1/2467/10 4/2468/10 +f 4/2468/10 6/2469/10 8/21/10 +f 8/21/10 10/2470/10 12/22/10 +f 12/22/10 14/2471/10 16/23/10 +f 16/23/10 4/2468/10 8/21/10 +f 18/24/1 19/27/1 20/25/1 +f 19/27/2 21/2472/2 22/28/2 +f 21/29/3 23/32/3 24/30/3 +f 23/32/4 25/34/4 26/33/4 +f 25/34/5 27/36/5 28/35/5 +f 27/36/6 29/41/6 30/37/6 +f 21/39/7 19/2473/7 18/2474/7 +f 18/2474/7 31/2475/7 21/39/7 +f 31/2475/7 29/40/7 21/39/7 +f 29/40/7 27/2476/7 25/2477/7 +f 25/2477/7 23/38/7 29/40/7 +f 29/41/8 31/43/8 32/42/8 +f 31/43/9 18/24/9 17/26/9 +f 32/46/10 17/2478/10 20/2479/10 +f 20/2479/10 22/2480/10 24/44/10 +f 24/44/10 26/2481/10 28/45/10 +f 28/45/10 30/2482/10 32/46/10 +f 32/46/10 20/2479/10 24/44/10 +f 34/47/1 35/50/1 36/48/1 +f 35/50/2 37/2483/2 38/51/2 +f 37/52/3 39/55/3 40/53/3 +f 39/55/4 41/57/4 42/56/4 +f 41/57/5 43/59/5 44/58/5 +f 43/59/6 45/64/6 46/60/6 +f 37/62/7 35/2484/7 34/2485/7 +f 34/2485/7 47/2486/7 37/62/7 +f 47/2486/7 45/63/7 37/62/7 +f 45/63/7 43/2487/7 41/2488/7 +f 41/2488/7 39/61/7 45/63/7 +f 45/64/8 47/66/8 48/65/8 +f 47/66/9 34/47/9 33/49/9 +f 48/69/10 33/2489/10 36/2490/10 +f 36/2490/10 38/2491/10 40/67/10 +f 40/67/10 42/2492/10 44/68/10 +f 44/68/10 46/2493/10 48/69/10 +f 48/69/10 36/2490/10 40/67/10 +f 50/70/1 51/73/1 52/71/1 +f 51/73/2 53/2494/2 54/74/2 +f 53/75/3 55/78/3 56/76/3 +f 55/78/4 57/80/4 58/79/4 +f 57/80/5 59/82/5 60/81/5 +f 59/82/6 61/87/6 62/83/6 +f 53/85/7 51/2495/7 50/2496/7 +f 50/2496/7 63/2497/7 53/85/7 +f 63/2497/7 61/86/7 53/85/7 +f 61/86/7 59/2498/7 57/2499/7 +f 57/2499/7 55/84/7 61/86/7 +f 61/87/8 63/89/8 64/88/8 +f 63/89/9 50/70/9 49/72/9 +f 64/92/10 49/2500/10 52/2501/10 +f 52/2501/10 54/2502/10 56/90/10 +f 56/90/10 58/2503/10 60/91/10 +f 60/91/10 62/2504/10 64/92/10 +f 64/92/10 52/2501/10 56/90/10 +f 66/93/1 67/96/1 68/94/1 +f 67/96/2 69/2505/2 70/97/2 +f 69/98/3 71/101/3 72/99/3 +f 71/101/4 73/103/4 74/102/4 +f 73/103/5 75/105/5 76/104/5 +f 75/105/6 77/110/6 78/106/6 +f 69/108/7 67/2506/7 66/2507/7 +f 66/2507/7 79/2508/7 69/108/7 +f 79/2508/7 77/109/7 69/108/7 +f 77/109/7 75/2509/7 73/2510/7 +f 73/2510/7 71/107/7 77/109/7 +f 77/110/8 79/112/8 80/111/8 +f 79/112/9 66/93/9 65/95/9 +f 80/115/10 65/2511/10 68/2512/10 +f 68/2512/10 70/2513/10 72/113/10 +f 72/113/10 74/2514/10 76/114/10 +f 76/114/10 78/2515/10 80/115/10 +f 80/115/10 68/2512/10 72/113/10 +f 81/116/11 82/2516/11 83/117/11 +f 84/118/7 83/117/7 85/119/7 +f 86/120/12 85/119/12 87/121/12 +f 87/121/13 89/127/13 90/123/13 +f 85/125/14 83/2517/14 82/126/14 +f 82/126/14 91/2518/14 89/2519/14 +f 89/2519/14 87/124/14 82/126/14 +f 89/127/10 91/129/10 92/128/10 +f 91/129/15 82/2520/15 81/130/15 +f 93/131/16 94/2521/16 95/132/16 +f 96/133/7 95/132/7 97/134/7 +f 98/135/17 97/134/17 99/136/17 +f 99/136/814 101/142/814 102/138/814 +f 97/140/14 95/2522/14 94/141/14 +f 94/141/14 103/2523/14 101/2524/14 +f 101/2524/14 99/139/14 94/141/14 +f 101/142/10 103/144/10 104/143/10 +f 103/144/19 94/2525/19 93/145/19 +f 105/146/16 106/2526/16 107/147/16 +f 108/148/7 107/147/7 109/149/7 +f 110/150/17 109/149/17 111/151/17 +f 111/151/814 113/157/814 114/153/814 +f 109/155/14 107/2527/14 106/156/14 +f 106/156/14 115/2528/14 113/2529/14 +f 113/2529/14 111/154/14 106/156/14 +f 113/157/10 115/159/10 116/158/10 +f 115/159/19 106/2530/19 105/160/19 +f 117/161/10 118/173/10 119/162/10 +f 119/164/20 121/179/20 122/165/20 +f 121/167/7 123/180/7 124/168/7 +f 123/170/21 118/178/21 117/171/21 +f 118/173/22 125/177/22 126/174/22 +f 126/174/23 125/177/23 128/175/23 +f 123/170/24 128/175/24 125/177/24 +f 121/179/25 119/164/25 126/174/25 +f 123/180/26 121/167/26 127/176/26 +f 129/181/27 130/184/27 131/182/27 +f 130/184/7 133/186/7 134/185/7 +f 133/186/28 135/189/28 136/187/28 +f 137/188/29 138/194/29 136/187/29 +f 132/192/30 131/2531/30 134/2532/30 +f 134/2532/30 136/2533/30 132/192/30 +f 136/2533/30 138/190/30 132/192/30 +f 140/193/10 139/196/10 138/194/10 +f 129/195/31 132/2534/31 139/196/31 +f 141/197/27 142/200/27 143/198/27 +f 142/200/7 145/202/7 146/201/7 +f 145/202/28 147/205/28 148/203/28 +f 149/204/815 150/210/815 148/203/815 +f 144/208/30 143/2535/30 146/2536/30 +f 146/2536/30 148/2537/30 144/208/30 +f 148/2537/30 150/206/30 144/208/30 +f 152/209/10 151/212/10 150/210/10 +f 141/211/31 144/2538/31 151/212/31 +f 153/213/32 154/216/32 155/214/32 +f 154/216/7 157/218/7 158/217/7 +f 157/218/816 159/221/816 160/219/816 +f 161/220/34 162/226/34 160/219/34 +f 156/224/30 155/2539/30 158/2540/30 +f 158/2540/30 160/2541/30 156/224/30 +f 160/2541/30 162/222/30 156/224/30 +f 164/225/10 163/228/10 162/226/10 +f 153/227/35 156/2542/35 163/228/35 +f 165/229/10 166/2543/10 167/230/10 +f 169/232/36 170/245/36 167/233/36 +f 171/235/7 172/246/7 170/236/7 +f 165/238/37 168/244/37 172/239/37 +f 173/241/38 174/2544/38 168/231/38 +f 176/242/39 174/2544/39 173/241/39 +f 168/244/40 174/2544/40 176/242/40 +f 175/243/817 173/241/817 167/233/817 +f 172/246/42 176/242/42 175/243/42 +f 178/247/43 179/2545/43 180/248/43 +f 208/250/44 210/2546/44 211/251/44 +f 211/253/45 216/2547/45 212/254/45 +f 188/256/46 184/298/46 181/257/46 +f 185/259/45 181/299/45 178/247/45 +f 183/261/47 186/272/47 187/262/47 +f 190/264/48 191/277/48 192/265/48 +f 188/267/49 190/264/49 189/266/49 +f 188/269/62 185/2548/62 187/270/62 +f 182/271/818 189/266/818 186/272/818 +f 193/274/63 192/265/63 194/275/63 +f 187/270/46 196/285/46 191/277/46 +f 189/266/44 192/265/44 193/274/44 +f 186/272/45 193/274/45 196/278/45 +f 194/279/53 197/290/53 198/280/53 +f 196/278/54 193/274/54 195/282/54 +f 191/277/55 197/2549/55 194/284/55 +f 196/285/819 200/2550/819 197/286/819 +f 202/287/7 199/2551/7 198/280/7 +f 200/289/57 201/288/57 198/280/57 +f 194/279/58 199/281/58 202/291/58 +f 195/292/59 202/291/59 201/293/59 +f 180/295/10 179/2552/10 204/296/10 +f 184/298/60 203/297/60 204/296/60 +f 181/299/45 204/2553/45 179/300/45 +f 184/298/48 177/249/48 180/301/48 +f 206/303/43 207/347/43 208/250/43 +f 216/304/46 213/2554/46 209/305/46 +f 213/307/48 210/2546/48 208/250/48 +f 188/309/48 182/2555/48 177/310/48 +f 213/312/49 214/329/49 215/313/49 +f 218/315/45 219/327/45 220/316/45 +f 217/317/61 220/316/61 216/318/61 +f 216/320/62 220/316/62 214/321/62 +f 215/313/51 217/317/51 211/323/51 +f 221/325/52 222/2556/52 223/326/52 +f 219/327/46 224/336/46 214/321/46 +f 221/325/44 218/315/44 217/317/44 +f 224/328/48 221/325/48 215/313/48 +f 223/330/59 225/2557/59 226/331/59 +f 224/328/64 228/2558/64 222/333/64 +f 223/334/65 227/2559/65 219/327/65 +f 227/335/819 228/2560/819 224/336/819 +f 226/331/7 225/2561/7 230/337/7 +f 226/331/57 229/338/57 228/339/57 +f 230/340/58 225/2557/58 223/330/58 +f 229/342/53 230/340/53 222/341/53 +f 232/344/10 207/2562/10 206/345/10 +f 232/344/60 231/346/60 212/306/60 +f 207/347/48 232/2563/48 209/308/48 +f 212/306/45 231/2564/45 206/348/45 +f 178/247/44 177/249/44 182/349/44 +f 234/350/1 235/353/1 236/351/1 +f 235/353/2 237/2565/2 238/354/2 +f 237/355/3 239/358/3 240/356/3 +f 239/358/4 241/360/4 242/359/4 +f 241/360/5 243/362/5 244/361/5 +f 243/362/6 245/364/6 246/363/6 +f 245/364/8 247/366/8 248/365/8 +f 247/366/9 234/350/9 233/352/9 +f 240/356/66 242/359/66 249/367/66 +f 256/370/10 251/2566/10 252/2567/10 +f 252/2567/10 253/2568/10 256/370/10 +f 253/2568/10 250/371/10 256/370/10 +f 250/371/10 249/2569/10 254/2570/10 +f 254/2570/10 255/369/10 250/371/10 +f 248/365/67 256/2571/67 255/372/67 +f 238/354/68 253/2572/68 252/373/68 +f 244/361/69 254/2573/69 249/374/69 +f 248/365/70 233/352/70 251/375/70 +f 236/351/71 252/2574/71 251/377/71 +f 238/357/72 240/356/72 250/378/72 +f 244/361/73 246/363/73 255/380/73 +f 258/382/74 259/385/74 260/383/74 +f 259/385/75 261/387/75 262/386/75 +f 261/387/76 263/389/76 264/388/76 +f 263/389/77 265/391/77 266/390/77 +f 265/391/78 267/393/78 268/392/78 +f 267/393/79 269/397/79 270/394/79 +f 261/395/48 259/385/48 258/382/48 +f 258/382/48 271/2575/48 269/396/48 +f 269/396/48 267/2576/48 265/2577/48 +f 265/2577/48 263/2578/48 269/396/48 +f 263/2578/48 261/395/48 269/396/48 +f 269/397/80 271/399/80 272/398/80 +f 271/399/81 258/2579/81 257/400/81 +f 272/402/45 257/384/45 264/403/45 +f 257/384/45 260/383/45 264/403/45 +f 260/383/45 262/2580/45 264/403/45 +f 264/403/45 266/2581/45 268/2582/45 +f 268/2582/45 270/401/45 264/403/45 +f 274/404/45 275/443/45 276/405/45 +f 273/407/45 277/2583/45 278/408/45 +f 280/410/82 281/449/82 282/411/82 +f 284/413/48 285/2584/48 286/414/48 +f 278/408/83 280/436/83 287/416/83 +f 273/417/44 285/426/44 284/418/44 +f 276/420/44 289/2585/44 290/421/44 +f 286/423/48 285/2586/48 288/424/48 +f 273/417/44 276/420/44 288/422/44 +f 291/425/84 292/435/84 293/427/84 +f 290/429/10 289/2587/10 295/430/10 +f 291/425/85 294/2588/85 296/432/85 +f 276/405/45 275/443/45 295/433/45 +f 288/424/48 290/2589/48 292/435/48 +f 280/436/46 279/446/46 296/437/46 +f 296/438/86 294/428/86 297/439/86 +f 294/428/87 293/427/87 298/441/87 +f 295/430/88 298/441/88 293/427/88 +f 320/442/89 319/2590/89 277/419/89 +f 275/443/90 297/439/90 298/441/90 +f 275/443/91 274/404/91 287/444/91 +f 283/415/92 286/414/92 296/437/92 +f 306/447/93 307/467/93 308/448/93 +f 280/450/94 278/499/94 306/447/94 +f 279/451/95 282/411/95 299/452/95 +f 308/448/96 310/464/96 311/454/96 +f 305/456/97 309/455/97 311/457/97 +f 299/452/99 282/411/99 309/455/99 +f 281/449/100 308/448/100 309/455/100 +f 283/453/48 300/487/48 301/459/48 +f 319/461/7 320/2591/7 312/462/820 +f 312/462/821 311/454/104 310/464/104 +f 284/460/48 301/459/48 302/465/48 +f 302/465/48 303/488/48 320/466/48 +f 307/467/106 318/494/822 310/468/106 +f 301/469/76 300/475/76 313/470/76 +f 304/472/79 303/483/79 322/473/79 +f 300/475/75 325/484/75 314/476/75 +f 323/477/80 304/472/80 317/474/80 +f 324/479/81 323/477/81 316/478/81 +f 302/481/77 301/469/77 321/471/77 +f 303/483/78 302/481/78 326/482/78 +f 325/484/74 324/2592/74 315/485/74 +f 305/456/48 323/489/48 324/486/48 +f 324/486/48 325/2593/48 299/452/48 +f 299/452/48 325/2593/48 300/487/48 +f 303/488/48 304/490/48 312/458/823 +f 323/489/48 305/456/48 312/458/824 +f 319/493/45 322/495/45 326/491/45 +f 326/491/45 321/498/45 277/492/45 +f 318/494/825 317/497/45 322/495/45 +f 318/494/826 307/467/45 316/496/45 +f 321/498/45 313/500/45 278/499/45 +f 306/447/45 278/499/45 313/500/45 +f 306/447/45 314/501/45 315/502/45 +f 315/502/45 316/496/45 307/467/45 +f 327/503/45 328/557/45 329/504/45 +f 332/506/7 333/2594/7 334/507/7 +f 336/509/44 337/556/44 338/510/44 +f 340/512/48 341/543/48 342/513/48 +f 344/515/44 345/563/44 346/516/44 +f 348/518/46 349/558/46 350/519/46 +f 352/521/45 353/540/45 354/522/45 +f 356/524/48 357/531/48 358/525/48 +f 360/527/10 361/2595/10 362/528/10 +f 363/530/827 350/559/827 358/525/827 +f 357/531/112 337/556/112 343/517/112 +f 364/532/828 328/557/828 351/523/828 +f 336/509/114 352/521/114 327/503/114 +f 365/541/829 366/565/829 342/513/829 +f 341/543/830 346/516/830 369/544/830 +f 370/546/831 371/553/831 329/504/831 +f 373/548/832 345/563/832 330/505/832 +f 350/519/127 363/2596/127 364/555/127 +f 357/531/48 340/512/48 339/514/48 +f 336/509/44 344/515/44 343/517/44 +f 352/521/45 351/523/45 328/557/45 +f 347/533/128 351/523/128 354/522/128 +f 335/511/114 353/540/114 352/521/114 +f 331/538/129 354/522/129 353/540/129 +f 348/518/130 331/508/130 334/507/130 +f 338/510/131 333/2594/131 332/506/131 +f 355/526/132 334/535/132 333/536/132 +f 349/534/133 355/526/133 358/525/133 +f 337/556/112 357/531/112 356/524/112 +f 366/560/134 365/566/134 370/561/134 +f 341/543/48 368/545/48 367/542/48 +f 345/563/833 373/567/833 369/564/833 +f 330/505/45 329/504/45 371/553/45 +f 330/505/114 345/563/114 344/515/114 +f 340/512/112 343/517/112 346/516/112 +f 339/514/136 342/513/136 366/565/136 +f 328/557/137 364/532/137 372/547/137 +f 365/566/138 359/529/138 362/528/138 +f 368/545/139 360/551/139 359/550/139 +f 373/567/834 361/2595/834 360/527/834 +f 374/549/141 371/553/141 362/552/141 +f 363/568/142 366/560/142 372/562/142 +f 376/570/10 377/2597/10 378/571/10 +f 377/573/45 379/584/45 380/574/45 +f 379/576/7 381/2598/7 382/577/7 +f 381/579/48 376/2599/48 375/580/48 +f 385/2600/143 382/581/143 384/583/143 +f 382/581/143 375/580/143 384/583/143 +f 377/573/44 376/2599/44 381/579/44 +f 387/585/46 384/2601/46 383/586/46 +f 386/2602/144 378/575/144 387/589/144 +f 378/575/144 380/574/144 387/589/144 +f 378/571/145 386/587/145 383/586/145 +f 382/577/146 385/2603/146 388/590/146 +f 390/591/45 391/2604/45 392/592/45 +f 385/594/147 393/607/147 390/595/147 +f 384/597/48 394/2605/48 393/598/48 +f 387/600/148 389/2606/148 394/601/148 +f 387/603/45 388/2607/45 390/591/45 +f 395/604/149 392/609/149 396/605/835 +f 393/607/152 398/618/152 391/608/152 +f 394/601/153 389/2606/153 392/609/153 +f 393/598/48 394/2605/48 395/610/48 +f 399/612/46 400/626/46 401/613/46 +f 395/610/48 399/623/48 402/615/48 +f 392/592/45 391/2604/45 401/616/45 +f 398/618/154 402/614/154 401/613/154 +f 404/619/836 405/628/156 406/620/156 +f 400/617/837 403/2608/838 396/622/839 +f 399/623/840 395/610/840 397/624/841 +f 399/612/163 404/619/842 403/621/843 +f 408/627/844 406/620/844 405/628/844 +f 396/622/845 403/2608/846 406/630/167 +f 397/606/847 396/605/848 408/632/169 +f 404/625/849 397/624/850 407/634/171 +f 418/636/172 411/2609/172 412/637/172 +f 409/639/48 414/646/48 417/640/48 +f 418/642/45 413/651/45 410/643/45 +f 415/645/48 416/659/48 417/640/48 +f 419/647/173 420/656/173 421/648/173 +f 418/642/45 421/660/45 422/650/45 +f 416/649/174 421/648/174 418/636/174 +f 422/652/175 415/657/175 414/653/175 +f 419/647/176 423/658/176 424/655/176 +f 424/655/177 423/658/177 415/657/177 +f 423/658/48 419/647/48 416/659/48 +f 421/660/45 420/656/45 424/655/45 +f 414/653/178 409/2610/178 410/661/178 +f 466/662/179 431/683/179 427/663/179 +f 465/664/180 427/663/180 425/665/180 +f 425/665/181 427/663/181 428/667/181 +f 468/669/182 432/673/182 430/670/182 +f 461/672/183 426/684/183 432/673/183 +f 430/670/184 431/683/184 466/662/184 +f 433/674/48 434/2611/48 435/675/48 +f 427/663/185 431/683/185 433/677/185 +f 432/673/186 437/693/186 434/679/186 +f 426/680/187 425/665/187 429/681/187 +f 430/670/188 434/2611/188 433/674/188 +f 426/684/189 438/689/189 437/685/189 +f 436/686/190 440/712/190 441/687/190 +f 438/689/48 442/2612/48 443/690/48 +f 429/668/48 428/667/48 439/691/48 +f 433/677/48 436/686/48 439/688/48 +f 437/693/48 443/2613/48 435/694/48 +f 438/682/48 429/681/48 444/695/48 +f 445/697/48 446/723/48 447/698/48 +f 435/694/191 443/2613/191 448/700/191 +f 444/695/192 449/715/192 450/702/192 +f 435/675/193 445/697/193 440/699/193 +f 443/690/851 442/2612/851 450/703/851 +f 439/691/852 441/2614/852 449/705/852 +f 447/706/183 452/2615/183 453/707/183 +f 450/703/48 454/725/48 455/709/48 +f 449/705/48 441/2614/48 451/710/48 +f 440/712/48 447/706/48 451/708/48 +f 445/701/48 448/700/48 455/713/48 +f 449/715/48 456/721/48 454/716/48 +f 460/719/48 457/2616/48 458/717/48 +f 457/2616/48 453/2617/48 458/717/48 +f 453/2617/48 452/2618/48 458/717/48 +f 455/713/180 459/2619/180 458/720/180 +f 456/721/184 457/2620/184 460/722/184 +f 446/723/196 458/2621/196 452/724/196 +f 454/725/179 460/2622/179 459/726/179 +f 451/710/182 453/2623/182 457/727/182 +f 462/666/197 463/742/197 464/728/197 +f 462/666/196 425/665/196 426/680/196 +f 470/730/45 471/756/45 472/731/45 +f 465/664/198 464/744/198 469/733/198 +f 467/671/199 472/746/199 473/734/199 +f 474/735/200 463/748/200 462/666/200 +f 466/662/201 469/732/201 472/731/201 +f 473/736/202 474/741/202 461/672/202 +f 476/737/203 477/768/203 470/738/203 +f 473/736/45 478/757/45 479/740/45 +f 463/742/45 480/760/45 475/743/45 +f 475/739/45 470/738/45 469/733/45 +f 471/745/45 478/753/45 473/734/45 +f 474/735/45 479/755/45 480/747/45 +f 481/749/45 482/781/45 483/750/45 +f 471/745/204 483/769/204 484/752/204 +f 485/754/205 486/772/205 480/747/205 +f 470/730/206 477/751/206 483/750/206 +f 478/757/853 484/765/853 485/758/853 +f 486/759/854 476/767/854 475/743/854 +f 488/761/183 489/2624/183 481/762/183 +f 490/764/45 491/783/45 485/758/45 +f 486/759/45 492/785/45 487/766/45 +f 487/763/45 481/762/45 477/768/45 +f 483/769/45 482/777/45 490/770/45 +f 485/754/45 491/779/45 492/771/45 +f 488/775/45 493/2625/45 496/773/45 +f 493/2625/45 494/2626/45 496/773/45 +f 494/2626/45 495/2627/45 496/773/45 +f 496/776/180 495/2628/180 490/770/180 +f 494/778/184 493/2629/184 492/771/184 +f 489/780/196 496/2630/196 482/781/196 +f 495/782/179 494/2631/179 491/783/179 +f 493/784/182 488/2632/182 487/766/182 +f 498/786/209 499/800/209 500/787/209 +f 500/787/7 499/800/7 501/789/7 +f 502/790/210 501/789/210 503/791/210 +f 503/793/211 505/796/211 506/794/211 +f 505/796/10 507/798/10 508/797/10 +f 507/798/212 498/786/212 497/788/212 +f 498/786/213 509/809/213 510/799/213 +f 510/799/7 511/802/7 501/801/7 +f 511/802/214 512/2633/214 503/803/214 +f 512/804/215 513/2634/215 505/805/215 +f 505/805/10 513/2634/10 514/807/10 +f 514/807/216 509/809/216 498/786/216 +f 515/808/217 516/817/217 510/799/217 +f 510/799/7 516/817/7 517/810/7 +f 517/810/218 518/2635/218 512/812/218 +f 512/813/219 518/2636/219 519/814/219 +f 519/814/10 520/826/10 514/807/10 +f 514/807/220 520/826/220 515/808/220 +f 521/816/210 522/828/210 516/817/210 +f 516/817/7 522/828/7 523/818/7 +f 517/819/209 523/818/209 524/820/209 +f 524/822/212 525/825/212 519/823/212 +f 525/825/10 526/835/10 520/826/10 +f 520/826/211 526/835/211 521/816/211 +f 527/827/214 528/837/214 522/828/214 +f 522/828/7 528/837/7 529/829/7 +f 529/829/213 530/2637/213 524/831/213 +f 524/832/216 530/2638/216 531/833/216 +f 531/833/10 532/844/10 526/835/10 +f 526/835/215 532/844/215 527/827/215 +f 497/836/218 500/2639/218 528/837/218 +f 528/837/7 500/2639/7 502/838/7 +f 502/838/217 504/2640/217 530/840/217 +f 530/841/220 504/2641/220 506/842/220 +f 506/842/10 508/2642/10 532/844/10 +f 532/844/219 508/2642/219 497/836/219 +f 533/845/855 537/848/222 538/846/222 +f 537/848/224 539/2643/224 540/849/224 +f 539/850/225 541/856/225 542/851/225 +f 537/855/48 533/845/856 543/866/857 +f 543/866/858 544/2644/48 537/855/48 +f 544/2644/48 541/853/48 537/855/48 +f 541/856/226 544/858/226 545/857/226 +f 544/858/227 543/866/859 546/859/860 +f 545/862/45 546/859/861 534/847/862 +f 534/847/863 538/2645/45 545/862/45 +f 538/2645/45 540/860/45 545/862/45 +f 548/863/864 549/867/230 550/864/230 +f 533/845/865 534/847/866 546/859/867 +f 549/867/235 551/872/235 552/868/235 +f 547/869/868 550/864/45 552/868/45 +f 535/871/869 552/868/239 551/872/239 +f 548/874/870 536/2646/871 551/872/48 +f 553/875/242 554/888/242 555/876/242 +f 555/876/243 557/885/243 558/878/243 +f 557/879/244 559/882/244 560/880/244 +f 559/882/245 561/886/245 562/883/245 +f 555/876/246 563/2647/246 564/884/246 +f 561/886/247 565/893/247 566/887/247 +f 566/887/248 565/893/248 554/888/248 +f 560/880/249 567/915/249 568/889/249 +f 564/891/250 563/2648/250 569/892/250 +f 569/892/250 570/2649/250 571/2650/250 +f 571/2650/250 572/890/250 569/892/250 +f 565/893/251 561/886/251 571/894/251 +f 554/888/252 569/2651/252 563/896/252 +f 559/882/253 557/879/253 564/897/253 +f 554/888/254 565/893/254 570/899/254 +f 559/882/255 572/2652/255 571/901/255 +f 573/902/256 574/2653/256 575/903/256 +f 566/887/872 553/875/872 577/905/872 +f 562/883/873 573/921/873 567/907/873 +f 556/877/259 558/878/259 568/908/259 +f 566/887/260 574/2653/260 573/902/260 +f 553/875/261 556/877/261 578/910/261 +f 575/912/262 579/2654/262 580/913/262 +f 567/915/256 582/2655/256 583/916/256 +f 577/911/256 578/910/256 584/917/256 +f 574/906/256 577/905/256 579/919/256 +f 573/921/256 576/2656/256 582/922/256 +f 578/909/256 568/908/256 583/923/256 +f 581/927/256 580/2657/256 587/925/256 +f 580/2657/256 585/2658/256 587/925/256 +f 585/2658/256 586/2659/256 587/925/256 +f 576/928/263 588/2660/263 587/929/263 +f 583/931/264 586/2661/264 585/932/264 +f 575/934/265 581/2662/265 588/935/265 +f 583/937/266 582/2663/266 587/938/266 +f 584/940/267 585/2664/267 580/941/267 +f 589/943/874 590/2665/874 591/944/874 +f 593/946/875 594/1031/875 595/947/875 +f 597/949/270 598/961/270 599/950/270 +f 601/952/876 589/2666/876 602/953/876 +f 596/955/272 603/968/272 604/956/272 +f 590/958/877 589/2667/877 601/959/877 +f 598/961/274 606/981/274 607/962/274 +f 596/948/275 595/947/275 599/963/275 +f 603/965/276 609/2668/276 598/966/276 +f 603/968/277 596/955/277 608/969/277 +f 606/971/278 610/975/278 611/972/278 +f 599/963/279 607/983/279 613/974/279 +f 598/966/280 609/2668/280 610/975/280 +f 608/969/281 613/980/281 610/976/281 +f 615/977/282 612/2669/282 611/978/282 +f 613/980/283 614/979/283 611/978/283 +f 606/981/284 612/2670/284 615/982/284 +f 607/983/285 615/2671/285 614/984/285 +f 616/985/878 617/1006/878 618/986/878 +f 602/988/879 620/1001/879 616/989/879 +f 619/991/880 616/985/880 591/987/880 +f 602/953/881 589/2666/881 592/993/881 +f 621/995/882 618/1000/882 622/996/882 +f 620/994/883 592/993/883 621/998/883 +f 592/945/884 591/944/884 618/1000/884 +f 620/1001/885 624/1005/885 617/1002/885 +f 623/997/886 622/996/886 626/1003/886 +f 624/1005/887 625/1004/887 626/1003/887 +f 617/1006/888 626/2672/888 622/1007/888 +f 624/999/889 621/998/889 623/1008/889 +f 594/1010/298 627/1012/298 597/949/298 +f 628/1011/299 629/1014/299 627/1012/299 +f 630/1013/300 631/1038/300 629/1014/300 +f 633/1015/272 634/1019/272 635/1016/272 +f 636/1018/272 637/1020/272 634/1019/272 +f 593/957/272 604/956/272 637/1020/272 +f 597/967/890 627/1022/890 604/1021/890 +f 627/1022/891 629/1024/891 637/1023/891 +f 629/1024/892 631/1040/892 634/1025/892 +f 632/1026/893 638/1034/893 630/1027/893 +f 633/1028/894 630/1027/894 628/1029/894 +f 636/1030/895 628/1029/895 594/1031/895 +f 619/991/896 590/992/896 605/1032/896 +f 639/1033/897 605/1032/897 638/1034/897 +f 619/990/898 639/1036/898 600/1035/898 +f 632/1017/272 635/1016/272 600/1035/272 +f 630/1013/310 638/1039/310 640/1037/310 +f 605/960/311 601/959/311 640/1037/311 +f 631/1040/899 640/1042/899 635/1041/899 +f 640/1042/900 601/952/900 600/954/900 +f 642/1043/314 643/1085/314 644/1044/314 +f 646/1046/45 647/2673/901 648/1047/45 +f 648/1047/315 650/1054/315 651/1049/315 +f 653/1051/902 642/1043/48 641/1045/48 +f 648/1047/317 647/2673/903 654/1053/317 +f 646/1055/44 642/1094/44 653/1056/904 +f 656/1058/905 657/1102/906 658/1059/321 +f 641/1045/48 659/1071/48 660/1061/48 +f 645/1048/45 648/1047/45 649/1050/45 +f 662/1063/322 663/1075/322 664/1064/322 +f 652/1052/323 660/1061/323 666/1066/323 +f 669/1068/324 670/1081/324 671/1069/324 +f 659/1071/48 663/1075/48 672/1072/907 +f 661/1062/45 649/1050/45 656/1058/908 +f 662/1063/48 674/1098/48 675/1073/48 +f 663/1075/327 659/1071/327 676/1076/327 +f 663/1075/48 662/1063/48 673/1074/48 +f 668/1070/45 656/1058/909 655/1060/45 +f 682/1077/329 688/1092/329 674/1078/329 +f 688/1080/910 682/2674/910 670/1081/910 +f 652/1052/331 667/1067/331 678/1082/331 +f 646/1046/333 645/1048/333 679/1083/333 +f 643/1085/10 680/1084/10 679/1083/10 +f 679/1086/334 681/2675/334 676/1087/334 +f 681/1089/335 671/1069/335 664/1064/335 +f 671/1069/336 670/1081/336 665/1065/336 +f 670/1081/337 682/1077/337 683/1079/337 +f 659/1090/338 641/2676/338 644/1088/338 +f 675/1091/339 674/1078/339 688/1092/339 +f 646/1055/340 680/1084/340 643/1085/340 +f 661/1095/341 681/2675/341 679/1086/341 +f 669/1068/45 655/1060/45 677/1097/45 +f 668/1070/342 671/1069/342 681/1089/342 +f 674/1098/911 662/1063/911 665/1065/911 +f 654/1053/7 678/2677/7 667/1100/7 +f 667/1100/344 666/1101/344 651/1049/344 +f 666/1101/345 684/1103/912 657/1102/913 +f 684/1103/914 685/1104/348 658/1059/348 +f 685/1104/350 686/2678/350 687/1105/350 +f 675/1073/915 686/2679/915 685/1106/915 +f 660/1061/352 672/1072/916 684/1107/917 +f 675/1091/354 677/1093/354 687/1108/354 +f 677/1097/918 655/1060/918 658/1059/918 +f 649/1050/356 651/1049/356 657/1102/919 +f 653/1056/920 678/2680/360 654/1110/360 +f 672/1072/921 673/1074/363 685/1106/363 +f 689/1111/922 690/2681/922 691/1112/922 +f 691/1112/2 693/2682/2 694/1114/2 +f 693/1115/3 695/1118/3 696/1116/3 +f 695/1118/4 697/1120/4 698/1119/4 +f 697/1120/5 699/1122/5 700/1121/5 +f 699/1122/6 701/1127/6 702/1123/6 +f 693/1125/7 691/2683/7 701/1126/7 +f 691/2683/7 690/2684/7 701/1126/7 +f 690/2684/7 703/2685/7 701/1126/7 +f 701/1126/7 699/2686/7 697/2687/7 +f 697/2687/7 695/1124/7 701/1126/7 +f 701/1127/8 703/1129/8 704/1128/8 +f 703/1129/923 690/2681/923 689/1111/923 +f 706/1130/367 707/2688/367 708/1131/367 +f 710/1133/368 711/1168/368 712/1134/368 +f 713/1136/369 714/1147/369 710/1137/369 +f 715/1139/370 716/1143/370 717/1140/370 +f 705/1132/371 708/2689/371 717/1142/371 +f 706/1144/372 719/1150/372 720/1145/372 +f 714/1147/373 721/1153/373 722/1148/373 +f 719/1150/374 713/1136/374 709/1151/374 +f 721/1153/375 715/1139/375 718/1154/375 +f 724/1156/8 725/1182/8 726/1157/8 +f 720/1159/376 727/1171/376 728/1160/376 +f 708/1162/377 729/1174/377 730/1163/377 +f 717/1165/378 730/1163/378 724/1156/378 +f 722/1167/379 723/1158/379 711/1168/379 +f 720/1170/380 709/2690/380 712/1134/380 +f 708/1172/381 707/2691/381 728/1173/381 +f 718/1175/382 724/1156/382 723/1158/382 +f 726/1157/383 732/2692/383 733/1177/383 +f 712/1134/5 711/1168/5 731/1178/5 +f 727/1171/3 735/1183/3 736/1180/3 +f 729/1174/1 737/1184/1 738/1181/1 +f 730/1163/9 738/1181/9 725/1182/9 +f 723/1158/6 726/1157/6 731/1178/6 +f 712/1134/4 734/1179/4 735/1183/4 +f 728/1173/2 736/1189/2 737/1184/2 +f 739/1185/384 740/2693/384 741/1186/384 +f 734/1179/385 743/2694/385 744/1188/385 +f 736/1189/386 745/2695/386 740/1190/386 +f 726/1157/387 725/1182/387 746/1191/387 +f 734/1179/388 731/1178/388 733/1193/388 +f 736/1180/389 735/1183/389 744/1195/389 +f 737/1184/390 740/2696/390 739/1197/390 +f 738/1181/391 739/2697/391 746/1198/391 +f 748/1199/8 749/1224/8 750/1200/8 +f 739/1202/392 742/1187/392 748/1199/392 +f 732/1204/393 747/1201/393 751/1205/393 +f 743/1207/394 752/1214/394 753/1208/394 +f 745/1210/395 754/1227/395 741/1186/395 +f 732/1212/396 746/2698/396 748/1199/396 +f 733/1213/397 751/1205/397 752/1214/397 +f 745/1216/398 744/2699/398 753/1208/398 +f 755/1218/399 756/2700/399 757/1219/399 +f 751/1205/5 759/1225/5 760/1221/5 +f 753/1208/3 761/1226/3 756/1222/3 +f 741/1186/1 755/1218/1 762/1223/1 +f 742/1187/9 762/1223/9 749/1224/9 +f 747/1201/6 750/1200/6 759/1225/6 +f 752/1214/4 760/1221/4 761/1226/4 +f 754/1227/2 756/2700/2 755/1218/2 +f 764/1228/400 765/2701/400 766/1229/400 +f 749/1224/401 763/2702/401 767/1231/401 +f 759/1225/402 768/2703/402 769/1232/402 +f 761/1226/403 770/2704/403 757/1233/403 +f 755/1218/404 758/2705/404 764/1234/404 +f 749/1224/405 762/1223/405 764/1228/405 +f 750/1200/406 767/1241/406 768/1235/406 +f 761/1226/407 760/1221/407 769/1236/407 +f 766/1238/408 772/2706/408 773/1239/408 +f 767/1241/409 771/2707/409 774/1242/409 +f 769/1236/410 775/2708/410 776/1243/410 +f 757/1219/411 777/2709/411 778/1244/411 +f 767/1231/412 763/2702/412 766/1238/412 +f 769/1232/413 768/2703/413 774/1245/413 +f 757/1233/414 770/2704/414 776/1247/414 +f 764/1234/415 758/2705/415 778/1249/415 +f 773/1251/10 780/1280/10 781/1252/10 +f 774/1245/416 779/2710/416 782/1254/416 +f 776/1247/417 783/2711/417 784/1255/417 +f 778/1249/418 785/2712/418 786/1256/418 +f 766/1229/419 765/2701/419 786/1257/419 +f 774/1242/420 771/2707/420 773/1251/420 +f 776/1243/421 775/2708/421 782/1259/421 +f 778/1244/422 777/2709/422 784/1261/422 +f 788/1263/5 789/2713/5 790/1264/5 +f 782/1259/10 791/1282/10 792/1266/10 +f 784/1261/10 793/1284/10 788/1267/10 +f 773/1239/10 772/2706/10 794/1268/10 +f 782/1254/10 779/2710/10 781/1270/10 +f 784/1255/10 783/2711/10 792/1272/10 +f 786/1256/10 785/2712/10 788/1263/10 +f 786/1257/10 787/1278/10 794/1274/10 +f 800/1276/10 790/2714/10 789/2715/10 +f 789/2715/10 795/2716/10 800/1276/10 +f 795/2716/10 796/1277/10 800/1276/10 +f 796/1277/10 797/2717/10 798/2718/10 +f 798/2718/10 799/1275/10 796/1277/10 +f 787/1278/4 790/2719/4 800/1279/4 +f 780/1280/2 799/2720/2 798/1281/2 +f 791/1282/9 797/2721/9 796/1283/9 +f 793/1284/6 795/2722/6 789/1285/6 +f 794/1268/3 800/2723/3 799/1286/3 +f 781/1270/1 798/2724/1 797/1287/1 +f 792/1272/8 796/2725/8 795/1288/8 +f 715/1139/423 801/2726/423 802/1289/423 +f 803/1290/924 801/2726/924 715/1139/924 +f 714/1147/925 804/2727/925 803/1290/925 +f 805/1291/424 804/2727/424 714/1147/424 +f 719/1150/425 806/2728/425 805/1291/425 +f 807/1292/926 806/2728/926 719/1150/926 +f 705/1132/927 808/2729/927 807/1293/927 +f 802/1289/426 808/2729/426 705/1132/426 +f 704/1294/366 689/2730/366 810/1295/366 +f 702/1297/428 704/1294/428 809/1296/428 +f 812/1299/429 700/1301/429 702/1297/429 +f 813/1300/928 698/2731/928 700/1301/928 +f 696/1302/929 698/2731/929 813/1300/929 +f 815/1304/930 694/2732/930 696/1302/930 +f 692/1305/931 694/2733/931 815/1306/931 +f 810/1295/365 689/2730/365 692/1305/365 +f 802/1308/1 817/2734/1 818/1309/1 +f 819/1311/435 820/2735/435 821/1312/435 +f 824/1314/1 825/1324/1 826/1315/1 +f 809/1317/436 827/1392/436 828/1318/436 +f 818/1309/932 829/2736/932 807/1320/932 +f 830/1321/438 831/2737/438 832/1322/438 +f 825/1324/2 833/2738/2 830/1325/2 +f 813/1326/439 812/2739/439 834/1327/439 +f 807/1329/933 829/2740/933 836/1330/933 +f 837/1332/441 836/2741/441 838/1333/441 +f 833/1335/3 840/1345/3 841/1336/3 +f 843/1338/934 844/1391/934 845/1339/934 +f 836/1330/4 837/1350/4 805/1341/4 +f 829/1342/935 818/2742/935 846/1343/935 +f 840/1345/4 848/1355/4 849/1346/4 +f 814/1347/936 850/1389/936 851/1348/936 +f 837/1350/5 820/1360/5 804/1351/5 +f 852/1352/445 853/2743/445 854/1353/445 +f 848/1355/5 856/1365/5 857/1356/5 +f 848/1357/937 858/1390/937 859/1358/937 +f 820/1360/938 819/2744/938 803/1361/938 +f 857/1362/448 860/1408/448 861/1363/448 +f 856/1365/6 843/1374/6 852/1366/6 +f 810/1367/449 816/2745/449 862/1368/449 +f 803/1361/939 819/2744/939 864/1370/939 +f 864/1372/451 819/2746/451 822/1313/451 +f 843/1374/8 842/1382/8 853/1375/8 +f 833/1376/940 866/1388/940 867/1377/940 +f 864/1370/9 817/2734/9 802/1308/9 +f 830/1379/453 841/2747/453 868/1380/453 +f 842/1382/9 824/1314/9 823/1316/9 +f 824/1383/941 869/1386/941 870/1384/941 +f 863/1369/1 862/1368/1 870/1384/1 +f 862/1368/2 851/1397/2 866/1387/2 +f 851/1348/3 850/1389/3 867/1377/3 +f 850/1389/4 835/1328/4 858/1390/4 +f 835/1328/5 834/1327/5 859/1358/5 +f 834/1327/6 828/1318/6 844/1391/6 +f 828/1318/8 827/1392/8 845/1339/8 +f 827/1392/9 863/1369/9 869/1386/9 +f 825/1393/942 870/1384/942 866/1387/942 +f 848/1395/943 840/2748/943 867/1377/943 +f 816/1396/944 815/2749/944 851/1397/944 +f 856/1398/945 859/1358/945 844/1391/945 +f 813/1400/946 835/1328/946 850/1389/946 +f 824/1402/947 842/2750/947 845/1339/947 +f 812/1403/461 811/2751/461 828/1318/461 +f 810/1404/462 863/1369/462 827/1392/462 +f 871/1406/1 872/1415/1 832/1322/1 +f 832/1322/2 831/2737/2 847/1344/2 +f 831/1381/3 868/1380/3 838/1333/3 +f 868/1380/4 861/1363/4 839/1334/4 +f 861/1363/5 860/1408/5 821/1312/5 +f 860/1408/6 855/1354/6 822/1313/6 +f 855/1354/8 854/1353/8 865/1373/8 +f 854/1353/9 872/1415/9 871/1406/9 +f 841/1409/463 849/2752/463 861/1363/463 +f 864/1410/948 865/1373/948 871/1406/948 +f 852/1412/465 855/1354/465 860/1408/465 +f 853/1414/949 823/2753/949 872/1415/949 +f 817/1416/950 871/1406/950 846/1343/950 +f 829/1418/951 847/1407/951 838/1333/951 +f 826/1420/952 832/1322/952 872/1415/952 +f 837/1422/470 839/1334/470 821/1312/470 +f 874/1424/1 875/1427/1 876/1425/1 +f 875/1427/2 877/2754/2 878/1428/2 +f 877/1429/3 879/1432/3 880/1430/3 +f 879/1432/4 881/1434/4 882/1433/4 +f 881/1434/5 883/1436/5 884/1435/5 +f 883/1436/6 885/1441/6 886/1437/6 +f 877/1440/7 875/2755/7 874/2756/7 +f 874/2756/7 887/2757/7 877/1440/7 +f 887/2757/7 885/2758/7 877/1440/7 +f 885/2758/7 883/2759/7 877/1440/7 +f 883/2759/7 881/1438/7 877/1440/7 +f 885/1441/8 887/1443/8 888/1442/8 +f 887/1443/9 874/1424/9 873/1426/9 +f 888/1446/10 873/2760/10 876/2761/10 +f 876/2761/10 878/2762/10 888/1446/10 +f 878/2762/10 880/2763/10 888/1446/10 +f 880/2763/10 882/2764/10 888/1446/10 +f 882/2764/10 884/1444/10 888/1446/10 +f 890/1447/471 891/2765/471 892/1448/471 +f 890/1450/45 894/1464/45 895/1451/45 +f 894/1453/472 896/1456/472 897/1454/472 +f 896/1456/48 889/1449/48 900/1457/48 +f 895/1459/46 899/1458/46 900/1457/46 +f 890/1447/44 889/1449/44 896/1456/44 +f 898/1461/7 897/1465/7 902/1462/7 +f 894/1464/45 898/1461/45 901/1463/45 +f 899/1458/473 902/1462/473 897/1465/473 +f 895/1459/474 901/2766/474 902/1466/474 +f 892/1467/10 891/2767/10 904/1468/10 +f 893/1460/475 900/1457/475 903/1470/475 +f 890/1450/45 893/1452/45 904/1472/45 +f 889/1449/476 892/1467/476 903/1469/476 +f 906/1474/471 907/2768/471 908/1475/471 +f 910/1477/48 911/1490/48 908/1478/48 +f 911/1480/472 912/2769/472 913/1481/472 +f 916/1483/45 905/1476/45 914/1482/45 +f 916/1483/46 915/1484/46 910/1485/46 +f 914/1482/44 905/1476/44 908/1475/44 +f 918/1487/7 913/2770/7 912/1488/7 +f 917/1489/48 912/1488/48 911/1490/48 +f 914/1482/477 913/2770/477 918/1487/477 +f 918/1491/474 917/2771/474 910/1485/474 +f 920/1492/10 907/2772/10 906/1493/10 +f 909/1486/475 920/2773/475 919/1495/475 +f 908/1478/48 907/2774/48 920/1496/48 +f 916/1483/478 919/1494/478 906/1493/478 +f 921/1497/953 922/1510/953 923/1498/953 +f 922/1500/44 926/2775/44 927/1501/44 +f 926/1503/954 928/1506/954 929/1504/954 +f 928/1506/46 921/1497/46 932/1507/46 +f 925/1509/45 927/1515/45 931/1508/45 +f 922/1510/48 921/1497/48 928/1506/48 +f 930/1511/481 929/1514/481 934/1512/481 +f 927/1501/44 926/2775/44 930/1511/44 +f 931/1508/482 934/1512/482 929/1514/482 +f 927/1515/955 933/2776/955 934/1516/955 +f 924/1517/484 923/2777/484 936/1518/484 +f 932/1507/956 935/2778/956 936/1520/956 +f 925/1502/44 936/2779/44 923/1521/44 +f 932/1507/486 921/1497/486 924/1517/486 +f 937/1522/10 938/1585/10 939/1523/10 +f 944/2780/45 940/2781/45 943/1527/45 +f 940/2781/45 939/2782/45 943/1527/45 +f 939/2782/45 941/1525/45 943/1527/45 +f 945/1528/487 946/1550/487 947/1529/487 +f 954/2783/48 949/2784/48 953/1533/48 +f 949/2784/48 950/2785/48 953/1533/48 +f 950/2785/48 951/1531/48 953/1533/48 +f 956/1534/46 957/1601/46 958/1535/46 +f 960/1537/46 961/1610/46 962/1538/46 +f 964/1540/46 949/2786/46 954/1541/46 +f 940/1543/46 944/1593/46 965/1544/46 +f 967/1546/44 968/2787/44 969/1547/44 +f 970/1549/488 971/1571/488 946/1550/488 +f 966/2788/957 972/1562/957 974/1553/957 +f 972/1562/958 973/1551/958 974/1553/958 +f 950/1555/48 949/2789/48 970/1549/48 +f 970/1549/959 945/1528/959 950/1555/959 +f 964/1556/490 973/1560/490 970/1557/490 +f 945/1528/960 948/1530/960 975/1559/960 +f 973/1560/46 976/1573/46 971/1561/46 +f 972/1562/492 978/1574/492 979/1563/492 +f 972/1562/493 977/1564/493 976/1565/493 +f 981/1566/7 982/1579/7 983/1567/7 +f 976/1565/961 977/1564/961 981/1569/961 +f 971/1571/48 983/2790/48 982/1572/48 +f 976/1573/495 980/1568/495 983/1567/495 +f 975/1559/496 948/1530/496 978/1574/496 +f 947/1529/962 985/1578/962 986/1576/962 +f 948/1530/44 947/1529/44 979/1563/44 +f 946/1550/963 982/1572/963 985/1577/963 +f 981/1566/499 986/1576/499 985/1578/499 +f 969/1580/500 975/1559/500 984/1575/500 +f 972/1562/964 966/2788/964 984/1575/964 +f 977/1564/965 979/1563/965 986/1582/965 +f 968/2787/503 938/2791/503 987/2792/503 +f 988/1621/503 989/1618/503 969/1547/503 +f 989/1618/503 990/1583/503 969/1547/503 +f 988/1621/503 969/1547/503 968/2787/503 +f 968/2787/503 987/2792/503 988/1621/503 +f 950/2785/503 969/1547/503 951/1531/503 +f 951/1531/503 969/1547/503 991/1584/503 +f 938/1585/966 968/2787/966 967/1546/966 +f 966/1548/505 974/2793/505 992/2794/505 +f 966/1548/505 992/2794/505 993/1586/505 +f 939/2782/967 967/1546/967 941/1525/967 +f 967/1546/968 966/1548/968 996/1637/968 +f 996/1637/967 941/1525/967 967/1546/967 +f 994/1587/505 995/1634/505 966/1548/505 +f 995/1634/505 996/1637/505 966/1548/505 +f 997/1588/46 998/1595/46 999/1589/46 +f 1000/1591/10 1001/2795/10 955/1536/10 +f 943/1592/7 1002/1594/7 965/1544/7 +f 942/1590/506 999/1589/506 1002/1594/506 +f 997/1588/507 1001/2795/507 1000/1591/507 +f 1004/1596/46 1005/2796/46 1006/1597/46 +f 1007/1599/10 1008/1603/10 959/1539/10 +f 1009/1600/7 1010/1602/7 957/1601/7 +f 1003/1598/506 1006/1597/506 1010/1602/506 +f 1007/1599/507 1005/2796/507 1004/1596/507 +f 1012/1604/46 952/1612/46 1013/1605/46 +f 1014/1607/10 963/1542/10 954/1541/10 +f 1015/1609/7 1016/1611/7 961/1610/7 +f 1015/1609/506 1011/1606/506 1013/1605/506 +f 1012/1604/507 1014/1607/507 953/1608/507 +f 990/1583/48 989/1618/48 1006/1613/48 +f 1016/1616/48 1013/1617/48 991/1584/48 +f 991/1584/48 990/1583/48 1007/1615/48 +f 990/1583/48 1005/1614/48 1007/1615/48 +f 1007/1615/48 962/2797/48 961/2798/48 +f 1007/1615/48 961/2798/48 1016/1616/48 +f 951/1531/48 991/1584/48 1013/1617/48 +f 1010/1620/48 1006/1613/48 989/1618/48 +f 989/1618/48 988/1621/48 1000/1619/48 +f 988/1621/48 998/1623/48 1000/1619/48 +f 1000/1619/48 958/2799/48 957/2800/48 +f 1000/1619/48 957/2800/48 1010/1620/48 +f 988/1621/48 987/2792/48 999/1622/48 +f 1002/1626/48 999/1622/48 987/2792/48 +f 987/2792/48 938/2791/48 1002/1626/48 +f 938/2791/48 937/1624/48 1002/1626/48 +f 1014/1629/45 1012/1630/45 992/2794/45 +f 992/2794/45 974/2793/45 1014/1629/45 +f 974/2793/45 964/1627/45 1014/1629/45 +f 993/1586/45 992/2794/45 1012/1630/45 +f 1008/1633/45 1004/1635/45 994/1587/45 +f 994/1587/45 993/1586/45 1015/1632/45 +f 993/1586/45 1011/1631/45 1015/1632/45 +f 1015/1632/45 960/2801/45 959/2802/45 +f 1015/1632/45 959/2802/45 1008/1633/45 +f 995/1634/45 994/1587/45 1004/1635/45 +f 1001/1639/45 997/1640/45 996/1637/45 +f 996/1637/45 995/1634/45 1009/1638/45 +f 995/1634/45 1003/1636/45 1009/1638/45 +f 1009/1638/45 956/2803/45 955/2804/45 +f 1009/1638/45 955/2804/45 1001/1639/45 +f 941/1525/45 996/1637/45 997/1640/45 +f 1018/1641/1 1019/1954/1 1020/1642/1 +f 1022/1644/5 1023/1647/5 1024/1645/5 +f 1023/1647/6 1025/2805/6 1026/1648/6 +f 1028/1649/508 1029/2806/508 1030/1650/508 +f 1024/1645/509 1031/1715/509 1032/1652/509 +f 1018/1653/510 1033/2807/510 1034/1654/510 +f 1022/1656/511 1036/2808/511 1037/1657/511 +f 1038/1659/512 1039/2809/512 1040/1660/512 +f 1027/1662/513 1030/2085/513 1043/1663/513 +f 1044/1665/514 1045/1771/514 1046/1666/514 +f 1048/1668/515 1049/1767/515 1050/1669/515 +f 1048/1671/516 1028/2810/516 1051/1672/516 +f 1042/1674/517 1046/2087/517 1052/1675/517 +f 1044/1677/518 1039/2811/518 1053/1678/518 +f 1059/1680/3 1060/1683/3 1061/1681/3 +f 1060/1683/4 1062/1994/4 1063/1684/4 +f 1067/1688/520 1060/2110/520 1068/1689/520 +f 1098/1691/9 1055/1721/9 1054/1692/9 +f 1074/1694/521 1070/1701/521 1075/1695/521 +f 1079/1700/523 1055/1703/523 1070/1701/523 +f 1055/1703/524 1079/1712/524 1080/1704/524 +f 1081/1706/525 1073/2103/525 1075/1695/525 +f 1088/1708/526 1021/1646/526 1032/1709/526 +f 1083/1711/969 1084/2812/969 1080/1704/969 +f 1079/1700/970 1074/1702/970 1082/1713/970 +f 1031/1715/971 1081/1855/971 1069/1716/971 +f 1089/1717/972 1080/2813/972 1084/1718/972 +f 1070/1727/9 1055/1721/9 1071/1720/9 +f 1099/1729/533 1037/2814/533 1100/1730/533 +f 1035/1732/534 1103/1759/534 1104/1733/534 +f 1105/1735/535 1106/1758/535 1107/1736/535 +f 1108/1738/536 1102/2815/536 1104/1733/536 +f 1110/1740/537 1043/2816/537 1111/1741/537 +f 1047/1743/538 1113/2817/538 1105/1744/538 +f 1023/1746/539 1037/2814/539 1099/1729/539 +f 1042/1748/540 1043/2816/540 1110/1740/540 +f 1028/1750/541 1048/2818/541 1105/1735/541 +f 1039/1751/542 1044/2819/542 1110/1752/542 +f 1018/1754/543 1035/1732/543 1102/1734/543 +f 1114/1756/544 1112/1742/544 1111/1741/544 +f 1115/1757/545 1107/1736/545 1106/1758/545 +f 1104/1733/546 1103/1759/546 1106/1758/546 +f 1034/1654/547 1115/1757/547 1103/1759/547 +f 1037/1657/548 1036/2808/548 1114/1756/548 +f 1030/1650/549 1029/2806/549 1107/1736/549 +f 1110/1752/550 1112/1742/550 1118/1762/550 +f 1105/1744/551 1113/2817/551 1116/1760/551 +f 1120/1763/552 1121/2820/552 1122/1764/552 +f 1051/1672/7 1123/1785/7 1120/1766/7 +f 1049/1767/7 1120/1763/7 1119/1765/7 +f 1052/1768/7 1124/1780/7 1123/1769/7 +f 1045/1771/7 1125/1778/7 1126/1772/7 +f 1045/1679/7 1053/1678/7 1127/1773/7 +f 1129/1775/553 1130/2821/553 1131/1776/553 +f 1125/1778/554 1132/2822/554 1133/1779/554 +f 1124/1780/555 1129/2823/555 1128/1781/555 +f 1124/1782/556 1126/2086/556 1133/1783/556 +f 1123/1785/557 1128/2824/557 1121/1786/557 +f 1134/1787/7 1135/1803/7 1136/1788/7 +f 1129/1790/558 1133/2825/558 1134/1791/558 +f 1128/1793/559 1131/1804/559 1138/1794/559 +f 1122/1796/560 1121/2826/560 1138/1797/560 +f 1140/1799/561 1141/1808/561 1135/1800/561 +f 1133/1802/562 1132/2827/562 1135/1803/562 +f 1131/1804/7 1142/1916/7 1143/1805/7 +f 1139/1798/7 1138/1797/7 1143/1806/7 +f 1141/1808/7 1145/1818/7 1136/1809/7 +f 1147/1810/9 1148/2137/9 1149/1811/9 +f 1150/1813/563 1137/2828/563 1151/1814/563 +f 1144/1807/564 1143/1806/564 1146/1816/564 +f 1145/1818/565 1154/1826/565 1155/1819/565 +f 1156/1820/566 1157/1918/566 1154/1821/566 +f 1137/1789/567 1136/1788/567 1155/1823/567 +f 1146/1816/1 1149/2139/1 1160/1825/1 +f 1154/1826/4 1163/2141/4 1164/1827/4 +f 1155/1823/5 1164/2143/5 1165/1828/5 +f 1166/1829/5 1167/1833/5 1162/1830/5 +f 1168/1832/6 1158/2829/6 1162/1830/6 +f 1170/1834/1 1171/2091/1 1172/1835/1 +f 1174/1837/3 1175/1840/3 1176/1838/3 +f 1175/1840/4 1166/1829/4 1161/1831/4 +f 1177/1843/7 1168/2830/7 1175/1841/7 +f 1168/2830/7 1167/2831/7 1175/1841/7 +f 1167/2831/7 1166/2832/7 1175/1841/7 +f 1175/1841/7 1174/2833/7 1170/1842/7 +f 1170/1842/7 1169/2834/7 1177/1843/7 +f 1178/1844/7 1179/2835/7 1180/1845/7 +f 1090/1687/568 1075/2124/568 1091/1847/568 +f 1064/1849/5 1066/2836/5 1185/1850/5 +f 1184/1852/569 1309/2837/569 1308/1853/569 +f 1064/1707/570 1067/1688/570 1069/1716/570 +f 1090/1687/571 1186/1860/571 1187/1856/571 +f 1188/1859/8 1181/2149/8 1186/1860/8 +f 1162/1861/7 1158/2838/7 1159/1862/7 +f 1194/1864/9 1177/2090/9 1169/1836/9 +f 1189/1865/973 1190/2839/973 1195/1866/973 +f 1197/1868/7 1182/2840/7 1189/1865/7 +f 1097/1869/48 1198/1879/48 1093/1870/48 +f 1198/1872/573 1199/2106/573 1200/1873/573 +f 1201/1875/7 1156/1820/7 1145/1822/7 +f 1165/1877/6 1202/2841/6 1152/1815/6 +f 1183/1878/574 1203/2092/574 1198/1879/574 +f 1204/1880/10 1205/1895/10 1206/1881/10 +f 1082/1883/974 1074/1694/974 1073/1696/974 +f 1071/1885/10 1207/2842/10 1204/1886/10 +f 1099/1888/576 1101/1731/576 1115/1757/576 +f 1153/1890/2 1160/1863/2 1159/1862/2 +f 1208/1892/975 1207/2842/975 1071/1885/975 +f 1200/1894/976 1091/2843/976 1206/1881/976 +f 1065/1896/977 1096/1871/977 1093/1870/977 +f 1077/1898/10 1066/2844/10 1065/1896/10 +f 1185/1899/10 1066/2845/10 1077/1900/10 +f 1185/1899/978 1095/1901/978 1209/1902/978 +f 1195/1866/979 1190/2839/979 1192/1903/979 +f 1098/1893/980 1191/1933/980 1210/1904/980 +f 1211/1905/7 1212/2104/7 1127/1906/7 +f 1104/1733/584 1116/1760/584 1215/1912/584 +f 1122/1913/585 1216/2846/585 1212/1914/585 +f 1142/1916/586 1147/1810/586 1146/1812/586 +f 1159/1917/3 1163/2847/3 1154/1821/3 +f 1214/1697/46 1094/2237/46 1093/1874/46 +f 1038/1920/588 1041/1929/588 1113/1921/588 +f 1047/1923/589 1050/2848/589 1211/1924/589 +f 1032/1709/981 1069/1690/981 1068/1689/981 +f 1086/1926/982 1068/2111/982 1089/1927/982 +f 1215/1912/592 1116/1760/592 1113/1921/592 +f 1140/1930/593 1132/2849/593 1125/1774/593 +f 1131/1776/7 1130/2821/7 1150/1931/7 +f 1180/1845/983 1179/2835/983 1210/1904/983 +f 1213/2850/984 1217/2851/984 1214/2852/984 +f 1217/2851/10 1218/2853/10 1219/1934/10 +f 1214/2852/985 1217/2851/985 1219/1934/985 +f 1219/1934/10 1220/2854/10 1221/1935/10 +f 1219/1934/986 1094/1936/986 1214/2852/986 +f 1221/1935/987 1076/2855/987 1094/1936/987 +f 1211/1924/7 1050/2848/7 1119/1915/7 +f 1101/1731/596 1117/1761/596 1107/1736/596 +f 1086/1926/598 1085/1928/598 1222/1937/598 +f 1201/1875/599 1141/1876/599 1140/1938/599 +f 1134/1791/7 1137/2828/7 1150/1813/7 +f 1087/1940/600 1031/2102/600 1024/1645/600 +f 1224/1941/601 1225/1951/601 1203/1942/601 +f 1223/1943/988 1203/1942/988 1197/1944/988 +f 1224/1941/989 1227/1947/989 1178/1946/989 +f 1019/1954/2 1228/2856/2 1222/1955/2 +f 1019/1956/608 1102/2815/608 1108/1738/608 +f 1039/1958/609 1038/2857/609 1211/1905/609 +f 1111/1741/610 1117/1761/610 1101/1731/610 +f 1028/1959/611 1027/2858/611 1052/1768/611 +f 1040/1660/612 1118/1762/612 1215/1960/612 +f 1122/1961/613 1139/2859/613 1201/1962/613 +f 1201/1962/7 1139/2859/7 1144/1964/7 +f 1156/1965/614 1144/1964/614 1153/1890/614 +f 1056/1705/615 1080/2813/615 1089/1717/615 +f 1033/1967/616 1025/2860/616 1099/1888/616 +f 1194/1968/7 1163/2847/7 1159/1917/7 +f 1233/2861/990 1227/2862/990 1224/1970/990 +f 1224/1970/617 1223/2863/617 1230/1971/617 +f 1223/2863/991 1226/2864/991 1229/2865/991 +f 1230/1971/992 1223/2863/992 1229/2865/992 +f 1230/1971/7 1231/2866/7 1232/1972/7 +f 1232/1972/993 1233/2861/993 1224/1970/993 +f 1210/1950/994 1235/1979/994 1236/1919/994 +f 1237/1908/995 1234/1974/995 1195/1973/995 +f 1231/1976/996 1238/1990/996 1239/1977/996 +f 1232/1978/997 1239/1977/997 1235/1979/997 +f 1230/1980/998 1229/1952/998 1234/1974/998 +f 1219/1982/999 1218/2113/999 1241/1983/999 +f 1219/1985/1000 1242/1989/1000 1243/1986/1000 +f 1220/1987/1001 1243/1986/1001 1237/1908/1001 +f 1237/1908/1002 1243/1986/1002 1240/1981/1002 +f 1238/1988/1003 1240/1981/1003 1243/1986/1003 +f 1238/1990/1004 1242/1984/1004 1241/1983/1004 +f 1236/1919/1005 1235/1979/1005 1239/1977/1005 +f 1281/1991/634 1371/2867/634 1367/1992/634 +f 1067/1851/4 1247/2868/4 1062/1994/4 +f 1061/1681/4 1063/1684/4 1244/1995/4 +f 1289/1996/635 1370/2015/635 1368/1997/635 +f 1284/1999/1006 1250/2869/1006 1370/2000/1006 +f 1249/2002/637 1369/2870/637 1248/2003/637 +f 1282/2005/638 1372/2012/638 1371/2006/638 +f 1246/2008/639 1372/2871/639 1282/2009/639 +f 1367/2011/1007 1371/2006/1007 1372/2012/1007 +f 1369/2014/8 1368/1997/8 1370/2015/8 +f 1248/2017/1008 1369/2014/1008 1250/2016/1008 +f 1251/2018/1009 1367/2011/1009 1246/2013/1009 +f 1368/2019/643 1369/2872/643 1249/2002/643 +f 1270/2021/1010 1283/2873/1011 1281/1991/1010 +f 1286/2022/642 1270/2021/642 1245/1993/642 +f 1367/2024/645 1251/2874/645 1285/2023/645 +f 1258/2004/646 1248/2875/646 1246/2025/646 +f 1292/2026/8 1293/2876/8 1288/2020/8 +f 1249/2002/1012 1258/2004/1012 1261/2054/1012 +f 1249/2002/647 1261/2054/647 1262/2027/647 +f 1279/2060/1013 1292/2026/1013 1278/2877/1013 +f 1292/2026/1014 1249/2002/1014 1266/2878/1014 +f 1267/2056/1013 1292/2026/1013 1266/2878/1013 +f 1267/2056/1013 1278/2877/1013 1292/2026/1013 +f 1265/2028/647 1266/2878/647 1249/2002/647 +f 1251/2029/648 1250/2879/648 1284/1999/648 +f 1253/2030/1015 1252/2036/1015 1277/2031/1015 +f 1267/2033/1016 1268/2059/1016 1253/2030/1016 +f 1277/2031/1017 1252/2036/1017 1269/2034/1017 +f 1253/2030/652 1268/2059/652 1269/2034/652 +f 1273/2037/1018 1254/2044/1018 1255/2038/1018 +f 1272/2039/654 1255/2038/654 1260/2040/654 +f 1259/2042/1019 1254/2044/1019 1273/2037/1019 +f 1259/2042/656 1260/2040/656 1255/2038/656 +f 1275/2045/1020 1256/2052/1020 1257/2046/1020 +f 1274/2047/1021 1257/2046/1021 1264/2048/1021 +f 1263/2050/1022 1256/2052/1022 1275/2045/1022 +f 1263/2050/652 1264/2048/652 1257/2046/652 +f 1258/2004/642 1271/2010/642 1272/2053/642 +f 1261/2041/1023 1260/2040/1023 1259/2042/1023 +f 1262/2027/642 1273/2063/642 1274/2055/642 +f 1265/2049/1024 1264/2048/1024 1263/2050/1024 +f 1267/2056/642 1266/2878/642 1275/2057/642 +f 1276/2035/1025 1269/2034/1025 1268/2059/1025 +f 1279/2060/1026 1280/2065/1026 1291/2061/1026 +f 1282/2009/1027 1291/2880/1027 1275/2057/1027 +f 1291/2880/1028 1280/2065/1028 1277/2064/1028 +f 1276/2058/1028 1291/2880/1028 1277/2064/1028 +f 1276/2058/1028 1275/2057/1028 1291/2880/1028 +f 1275/2057/664 1274/2055/664 1282/2009/664 +f 1274/2055/664 1273/2063/664 1282/2009/664 +f 1272/2053/640 1271/2010/640 1282/2009/640 +f 1279/2060/642 1278/2877/642 1277/2064/642 +f 1290/2067/8 1287/2068/1029 1284/1999/8 +f 1286/2022/641 1285/2023/641 1284/1999/641 +f 1293/2069/10 1292/2062/10 1291/2061/10 +f 1088/1708/4 1296/2107/4 1022/1644/4 +f 1297/2071/9 1033/2072/9 1018/1641/9 +f 1026/1648/8 1025/2805/8 1033/2072/8 +f 1083/1714/668 1082/1713/668 1297/2071/668 +f 1057/2073/2 1056/2077/2 1059/2074/2 +f 1298/2076/1 1299/2115/1 1056/2077/1 +f 1020/1642/669 1084/2812/669 1083/1711/669 +f 1301/2078/670 1114/1756/670 1036/2079/670 +f 1108/2081/671 1109/2881/671 1301/2078/671 +f 1300/2080/672 1036/2079/672 1022/2083/672 +f 1301/2078/673 1118/1762/673 1112/1742/673 +f 1117/1761/674 1111/1741/674 1043/1663/674 +f 1126/2086/7 1124/1782/7 1052/1675/7 +f 1150/1931/675 1152/2100/675 1147/2088/675 +f 1194/1864/8 1158/2882/8 1168/2089/8 +f 1171/2091/2 1170/1834/2 1174/1837/2 +f 1203/2092/7 1183/1878/7 1182/2093/7 +f 1225/2095/7 1178/2883/7 1181/2096/7 +f 1092/2098/45 1091/2843/45 1200/1894/45 +f 1152/2100/8 1202/2135/8 1148/2101/8 +f 1199/2099/676 1225/2095/676 1188/2097/676 +f 1031/2102/1030 1087/1940/1030 1073/2103/1030 +f 1301/2078/678 1109/2881/678 1215/1960/678 +f 1212/2104/679 1216/2884/679 1140/2105/679 +f 1198/1872/680 1203/1942/680 1225/1951/680 +f 1222/1955/681 1085/1719/681 1084/1718/681 +f 1297/2071/682 1082/1883/682 1087/1884/682 +f 1222/1937/3 1228/2885/3 1296/2107/3 +f 1108/2081/683 1300/2082/683 1296/2108/683 +f 1060/2110/684 1059/2886/684 1089/1927/684 +f 1231/2112/1031 1230/1980/1031 1240/1981/1031 +f 1218/2113/1032 1217/1911/1032 1236/1919/1032 +f 1055/1721/1 1303/2887/1 1302/2114/1 +f 1299/2115/1 1303/2887/1 1055/1721/1 +f 1054/1692/1 1302/2114/1 1298/2076/1 +f 1283/2116/1033 1287/2148/1034 1290/2117/7 +f 1310/2121/10 1187/2888/10 1304/2889/10 +f 1304/2889/10 1305/2890/10 1306/2119/10 +f 1306/2119/10 1307/2891/10 1308/2120/10 +f 1308/2120/10 1309/2892/10 1310/2121/10 +f 1310/2121/10 1304/2889/10 1306/2119/10 +f 1057/2073/688 1058/2075/688 1306/2122/688 +f 1061/1681/691 1307/2893/691 1306/2126/691 +f 1090/1687/692 1310/2894/692 1309/2127/692 +f 1054/1692/1035 1057/2073/1035 1305/2128/1035 +f 1193/1854/694 1308/2895/694 1307/2130/694 +f 1304/2131/695 1187/2896/695 1186/1860/695 +f 1206/2125/8 1075/2124/8 1070/1727/8 +f 1173/2132/7 1202/2841/7 1165/1877/7 +f 1173/2134/7 1176/2897/7 1148/2101/7 +f 1176/2136/7 1161/2898/7 1149/1811/7 +f 1161/2138/7 1162/2899/7 1160/1825/7 +f 1172/2140/7 1164/1827/7 1163/2141/7 +f 1164/2143/7 1172/2900/7 1171/2144/7 +f 1323/2145/1036 1311/2901/7 1318/2146/7 +f 1287/2148/1037 1283/2116/1038 1270/2021/1039 +f 1180/1858/9 1054/1692/9 1186/1860/9 +f 1065/2150/6 1066/2836/6 1064/1849/6 +f 1192/2152/5 1190/2153/5 1193/1854/5 +f 1189/2154/5 1182/2902/5 1184/1852/5 +f 1090/1687/701 1097/1686/701 1096/2151/701 +f 1184/1852/6 1182/2902/6 1183/1685/6 +f 1244/1995/4 1247/2868/4 1067/1851/4 +f 1313/2155/10 1312/2903/10 1314/2156/10 +f 1320/2158/728 1321/2204/728 1322/2159/728 +f 1318/2161/6 1317/2904/6 1320/2158/6 +f 1314/2169/2 1312/2905/2 1325/2164/2 +f 1312/2905/2 1311/2162/2 1325/2164/2 +f 1311/2162/2 1323/2906/1040 1324/2163/2 +f 1327/2165/705 1328/2907/705 1329/2166/705 +f 1326/2167/706 1314/2169/706 1327/2165/706 +f 1314/2169/1041 1325/2164/1041 1334/2170/1041 +f 1327/2165/706 1314/2169/706 1335/2168/706 +f 1325/2164/729 1330/2224/729 1331/2185/729 +f 1332/2908/1042 1333/2179/1042 1325/2164/1042 +f 1333/2179/1042 1334/2170/1042 1325/2164/1042 +f 1325/2164/1042 1331/2185/1042 1332/2908/1042 +f 1314/2156/1043 1326/2167/1043 1329/2166/1043 +f 1335/2171/1044 1337/2201/1044 1338/2172/1044 +f 1337/2174/705 1335/2168/705 1334/2170/705 +f 1341/2176/1045 1340/2190/1045 1342/2177/1045 +f 1333/2179/705 1332/2908/705 1344/2180/705 +f 1345/2182/1046 1344/2195/1046 1346/2183/1046 +f 1331/2185/705 1330/2224/705 1348/2186/705 +f 1342/2177/711 1349/2192/711 1350/2188/711 +f 1334/2189/1047 1349/2192/1047 1342/2177/1047 +f 1333/2191/1048 1341/2176/1048 1343/2178/1048 +f 1334/2189/1049 1333/2191/1049 1350/2188/1049 +f 1346/2183/715 1351/2197/715 1352/2193/715 +f 1332/2194/1050 1351/2197/1050 1346/2183/1050 +f 1331/2196/717 1345/2182/717 1347/2184/717 +f 1332/2194/1051 1331/2196/1051 1352/2193/1051 +f 1353/2198/711 1354/2200/711 1339/2173/711 +f 1327/2199/1052 1335/2171/1052 1339/2173/1052 +f 1337/2201/1053 1328/2202/1053 1353/2198/1053 +f 1327/2199/1054 1354/2200/1054 1353/2198/1054 +f 1320/2158/722 1355/2909/722 1356/2203/722 +f 1345/2187/1055 1348/2186/1055 1357/2205/1055 +f 1357/2205/1056 1315/2207/1056 1340/2175/1056 +f 1315/2207/1057 1329/2166/1057 1328/2907/1057 +f 1340/2175/1057 1315/2207/1057 1337/2174/1057 +f 1328/2907/1057 1337/2174/1057 1315/2207/1057 +f 1344/2180/723 1345/2187/723 1357/2205/723 +f 1340/2175/723 1341/2181/723 1357/2205/723 +f 1316/2206/6 1313/2910/6 1315/2207/6 +f 1348/2186/724 1330/2224/724 1358/2208/724 +f 1321/2204/725 1356/2911/725 1361/2210/725 +f 1360/2211/705 1336/2213/705 1322/2159/705 +f 1324/2212/1058 1323/2912/1059 1336/2213/1058 +f 1357/2205/727 1362/2913/727 1363/2214/727 +f 1358/2215/1060 1361/2222/1060 1356/2216/1060 +f 1355/2218/1061 1362/2220/1061 1359/2217/1061 +f 1364/2219/6 1363/2232/6 1362/2220/6 +f 1365/2221/1062 1366/2226/1062 1361/2222/1062 +f 1325/2164/730 1365/2914/730 1358/2223/730 +f 1325/2225/731 1324/2915/731 1366/2226/731 +f 1357/2205/732 1348/2186/732 1359/2227/732 +f 1320/2158/733 1317/2904/733 1364/2229/733 +f 1317/2231/734 1316/2916/734 1363/2232/734 +f 1324/2212/735 1360/2211/735 1361/2233/735 +f 1319/2147/1063 1322/2159/1064 1336/2213/1064 +f 1291/2880/3 1282/2009/3 1295/2236/3 +f 1282/2009/3 1281/2917/3 1294/2235/3 +f 1281/2917/3 1283/2918/1065 1294/2235/3 +f 1374/2238/1 1375/2241/1 1376/2239/1 +f 1375/2241/2 1377/2280/2 1378/2242/2 +f 1377/2243/3 1379/2246/3 1380/2244/3 +f 1379/2246/4 1381/2248/4 1382/2247/4 +f 1381/2248/5 1383/2250/5 1384/2249/5 +f 1383/2250/6 1385/2253/6 1386/2251/6 +f 1381/2248/5 1387/2277/5 1388/2252/5 +f 1385/2253/8 1389/2255/8 1390/2254/8 +f 1389/2255/9 1374/2238/9 1373/2240/9 +f 1384/2249/743 1386/2251/743 1391/2256/743 +f 1398/2258/10 1393/2919/10 1394/2259/10 +f 1394/2259/10 1395/2920/10 1396/2260/10 +f 1396/2260/10 1397/2921/10 1398/2258/10 +f 1397/2921/10 1392/2922/10 1398/2258/10 +f 1392/2922/10 1391/2923/10 1398/2258/10 +f 1380/2244/744 1382/2247/744 1397/2261/744 +f 1386/2251/745 1390/2254/745 1398/2263/745 +f 1378/2242/746 1395/2924/746 1394/2265/746 +f 1384/2249/747 1392/2925/747 1397/2266/747 +f 1390/2254/748 1373/2240/748 1393/2267/748 +f 1376/2239/749 1394/2926/749 1393/2269/749 +f 1380/2244/750 1396/2927/750 1395/2270/750 +f 1399/2271/751 1400/2278/751 1401/2272/751 +f 1389/2255/9 1400/2278/9 1399/2271/9 +f 1374/2238/1 1399/2271/1 1403/2274/1 +f 1377/2243/3 1404/2928/3 1405/2275/3 +f 1383/2250/6 1388/2252/6 1406/2276/6 +f 1379/2246/4 1405/2275/4 1387/2277/4 +f 1385/2253/8 1406/2276/8 1400/2278/8 +f 1375/2241/2 1403/2274/2 1404/2279/2 +f 1388/2252/752 1407/2929/752 1408/2281/752 +f 1387/2277/753 1405/2275/753 1409/2282/753 +f 1404/2279/754 1403/2274/754 1411/2284/754 +f 1400/2278/767 1406/2276/767 1408/2286/767 +f 1387/2277/756 1410/2930/756 1407/2288/756 +f 1405/2275/757 1404/2928/757 1412/2289/757 +f 1399/2271/758 1402/2296/758 1411/2291/758 +f 1412/2289/1066 1413/2931/1066 1414/2292/1066 +f 1413/2294/7 1415/2932/7 1418/2295/7 +f 1415/2932/7 1416/2933/7 1418/2295/7 +f 1416/2933/7 1417/2934/7 1418/2295/7 +f 1418/2295/7 1419/2935/7 1420/2936/7 +f 1420/2936/7 1414/2293/7 1418/2295/7 +f 1402/2296/1067 1416/2937/1067 1415/2297/1067 +f 1401/2272/769 1417/2938/769 1416/2298/769 +f 1408/2281/1068 1407/2929/1068 1419/2299/1068 +f 1410/2283/763 1409/2282/763 1414/2301/763 +f 1412/2285/768 1411/2284/768 1415/2303/768 +f 1408/2286/1069 1418/2939/1069 1417/2305/1069 +f 1407/2288/766 1410/2930/766 1420/2306/766 +f 1422/2308/4 1423/2312/4 1424/2309/4 +f 1422/2308/3 1425/2333/3 1426/2311/3 +f 1427/2313/2 1428/2317/2 1426/2314/2 +f 1429/2316/1 1430/2319/1 1428/2317/1 +f 1431/2318/9 1432/2321/9 1430/2319/9 +f 1433/2320/8 1434/2324/8 1432/2321/8 +f 1435/2322/9 1436/2344/9 1430/2319/9 +f 1437/2323/6 1438/2325/6 1434/2324/6 +f 1421/2310/5 1424/2309/5 1438/2325/5 +f 1431/2318/745 1439/2940/745 1440/2326/745 +f 1446/2327/10 1441/2941/10 1442/2328/10 +f 1442/2328/10 1440/2942/10 1439/2329/10 +f 1439/2329/10 1443/2943/10 1446/2327/10 +f 1443/2943/10 1444/2944/10 1446/2327/10 +f 1444/2944/10 1445/2945/10 1446/2327/10 +f 1427/2313/749 1444/2946/749 1443/2330/749 +f 1433/2320/743 1440/2947/743 1442/2331/743 +f 1446/2332/750 1445/2948/750 1425/2333/750 +f 1443/2334/748 1439/2949/748 1431/2318/748 +f 1437/2323/747 1442/2950/747 1441/2335/747 +f 1441/2336/744 1446/2951/744 1422/2308/744 +f 1445/2337/746 1444/2952/746 1427/2313/746 +f 1448/2338/756 1449/2362/756 1450/2339/756 +f 1447/2340/5 1450/2339/5 1438/2325/5 +f 1451/2341/4 1447/2340/4 1424/2309/4 +f 1452/2342/2 1453/2352/2 1426/2314/2 +f 1454/2343/8 1435/2322/8 1432/2321/8 +f 1436/2344/1 1452/2342/1 1428/2317/1 +f 1450/2339/6 1454/2343/6 1434/2324/6 +f 1453/2345/3 1451/2341/3 1423/2312/3 +f 1455/2346/767 1456/2364/767 1435/2322/767 +f 1436/2344/758 1457/2365/758 1458/2347/758 +f 1453/2345/757 1459/2367/757 1460/2348/757 +f 1449/2349/752 1455/2370/752 1454/2343/752 +f 1456/2350/751 1457/2372/751 1436/2344/751 +f 1452/2342/754 1458/2355/754 1459/2351/754 +f 1460/2353/753 1448/2360/753 1447/2340/753 +f 1461/2354/764 1462/2953/764 1459/2351/764 +f 1468/2357/7 1463/2954/7 1464/2358/7 +f 1463/2954/7 1462/2955/7 1464/2358/7 +f 1462/2955/7 1461/2956/7 1464/2358/7 +f 1464/2358/7 1465/2957/7 1466/2958/7 +f 1466/2958/7 1467/2356/7 1464/2358/7 +f 1463/2359/1070 1468/2959/1070 1448/2360/1070 +f 1448/2338/766 1468/2960/766 1467/2361/766 +f 1455/2346/1069 1466/2961/1069 1465/2363/1069 +f 1457/2365/760 1464/2962/760 1461/2366/760 +f 1459/2367/1066 1462/2963/1066 1463/2368/1066 +f 1467/2369/762 1466/2964/762 1455/2370/762 +f 1456/2350/769 1465/2965/769 1464/2371/769 +f 1471/2373/770 1472/2380/770 1470/2374/770 +f 1473/2376/771 1474/2378/771 1471/2373/771 +f 1475/2377/772 1476/2966/772 1474/2378/772 +f 1478/2379/773 1477/2381/773 1470/2374/773 +f 1478/2379/45 1472/2380/45 1471/2373/45 +f 1471/2373/45 1474/2967/45 1476/2968/45 +f 1476/2968/1071 1477/2381/1071 1471/2373/1071 +f 1469/2375/48 1470/2374/48 1477/2969/48 +f 1477/2969/48 1475/2382/48 1469/2375/48 +f 1481/2384/775 1482/2390/775 1480/2385/775 +f 1483/2387/776 1484/2389/776 1481/2384/776 +f 1485/2388/777 1486/2970/777 1484/2389/777 +f 1482/2390/778 1488/2392/778 1487/2391/778 +f 1488/2392/48 1482/2390/48 1481/2384/48 +f 1481/2384/48 1484/2971/48 1486/2972/48 +f 1486/2972/1072 1487/2391/1072 1481/2384/1072 +f 1479/2386/45 1480/2385/45 1487/2973/45 +f 1487/2973/45 1485/2393/45 1479/2386/45 +f 1491/2395/780 1492/2402/780 1490/2396/780 +f 1493/2398/781 1494/2400/781 1491/2395/781 +f 1495/2399/782 1496/2974/782 1494/2400/782 +f 1498/2401/783 1497/2403/783 1490/2396/783 +f 1498/2401/44 1492/2402/44 1491/2395/44 +f 1491/2395/44 1494/2975/44 1496/2976/44 +f 1496/2976/1073 1497/2403/1073 1491/2395/1073 +f 1489/2397/46 1490/2396/46 1497/2977/46 +f 1497/2977/46 1495/2404/46 1489/2397/46 +f 1499/2406/785 1501/2410/785 1502/2407/785 +f 1503/2409/786 1504/2412/786 1501/2410/786 +f 1505/2411/787 1506/2978/787 1504/2412/787 +f 1508/2413/788 1507/2414/788 1500/2408/788 +f 1508/2413/46 1502/2407/46 1501/2410/46 +f 1501/2410/46 1504/2979/46 1506/2980/46 +f 1506/2980/1074 1507/2414/1074 1501/2410/1074 +f 1499/2406/44 1500/2408/44 1507/2981/44 +f 1507/2981/44 1505/2415/44 1499/2406/44 +f 1509/2417/790 1511/2421/790 1512/2418/790 +f 1513/2420/791 1514/2423/791 1511/2421/791 +f 1515/2422/792 1516/2982/792 1514/2423/792 +f 1512/2418/793 1518/2425/793 1517/2424/793 +f 1518/2425/801 1512/2418/801 1511/2421/801 +f 1511/2421/801 1514/2983/801 1516/2984/801 +f 1516/2984/1075 1517/2424/1075 1511/2421/1075 +f 1509/2417/795 1510/2419/795 1517/2985/795 +f 1517/2985/795 1515/2426/795 1509/2417/795 +f 1519/2428/796 1521/2432/796 1522/2429/796 +f 1523/2431/797 1524/2434/797 1521/2432/797 +f 1523/2431/798 1525/2986/798 1526/2433/798 +f 1528/2435/799 1527/2436/799 1520/2430/799 +f 1528/2435/795 1522/2429/795 1521/2432/795 +f 1521/2432/795 1524/2987/795 1526/2988/795 +f 1526/2988/1076 1527/2436/1076 1521/2432/1076 +f 1519/2428/801 1520/2430/801 1527/2989/801 +f 1527/2989/801 1525/2437/801 1519/2428/801 +f 1531/2439/802 1532/2445/802 1530/2440/802 +f 1529/2441/803 1533/2443/803 1534/2442/803 +f 1533/2443/804 1535/2990/804 1536/2444/804 +f 1532/2445/805 1538/2447/805 1537/2446/805 +f 1538/2447/813 1532/2445/813 1531/2439/813 +f 1531/2439/813 1534/2991/813 1536/2992/813 +f 1536/2992/1077 1537/2446/1077 1531/2439/1077 +f 1529/2441/807 1530/2440/807 1537/2993/807 +f 1537/2993/807 1535/2448/807 1529/2441/807 +f 1541/2450/808 1542/2457/808 1540/2451/808 +f 1539/2452/809 1543/2454/809 1544/2453/809 +f 1543/2454/810 1545/2994/810 1546/2455/810 +f 1548/2456/811 1547/2458/811 1540/2451/811 +f 1548/2456/807 1542/2457/807 1541/2450/807 +f 1541/2450/807 1544/2995/807 1546/2996/807 +f 1546/2996/1078 1547/2458/1078 1541/2450/1078 +f 1539/2452/813 1540/2451/813 1547/2997/813 +f 1547/2997/813 1545/2459/813 1539/2452/813 diff --git a/src/main/resources/assets/hbm/sounds.json b/src/main/resources/assets/hbm/sounds.json index 189483beb..647cf0296 100644 --- a/src/main/resources/assets/hbm/sounds.json +++ b/src/main/resources/assets/hbm/sounds.json @@ -178,6 +178,8 @@ "weapon.shotgunPump": {"category": "player", "sounds": [{"name": "weapon/shotgunShootPump", "stream": false}]}, "weapon.explosionMedium": {"category": "player", "sounds": [{"name": "weapon/explosion_medium", "stream": false}]}, "weapon.hicalShot": {"category": "player", "sounds": [{"name": "weapon/hicalShot", "stream": false}]}, + "weapon.coilgunReload": {"category": "player", "sounds": [{"name": "weapon/coilgunReload", "stream": false}]}, + "weapon.coilgunShoot": {"category": "player", "sounds": [{"name": "weapon/coilgunShoot", "stream": false}]}, "weapon.dFlash": {"category": "player", "sounds": [{"name": "weapon/dFlash", "stream": false}]}, diff --git a/src/main/resources/assets/hbm/sounds/weapon/coilgunReload.ogg b/src/main/resources/assets/hbm/sounds/weapon/coilgunReload.ogg new file mode 100644 index 0000000000000000000000000000000000000000..d17beefde423ca62bf84a3214310ee6c54b330cc GIT binary patch literal 15803 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 BX}16X literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/machines/industrial_boiler.png b/src/main/resources/assets/hbm/textures/models/machines/industrial_boiler.png index af214e9dc41bab9c75367f2f41c82decdab2ecbd..92c535e6ea20c0324aa82ccf80d9d2ccc624f117 100644 GIT binary patch delta 2653 zcmZ{kX*|^H8^$Nus=?Trv7H$t%P4Es$u!1JOh~e1r%-81S^L=y+GupjF~-DL8#@tM zvU3_+vZbMp5}~YPCgaRG=f(fk|9SU(p3i+<*Z02f&od*mCGkiHIIM1MhH;L_T_KHx z$n?wgw&|4fyKfIDD|JX0sAY){+rwQ7Uie#=k5|;|G`ETHR$A6F zX8TyHe_p@a=2;Cal>g4BOLZ)r%Xq7C@!eMpBufHBw4s&^b?O&gc~kSE#32zeZPhO{ zrdxm#VfbrHX-iOKQA^?ofF68qJT{3~pVji9ZqtuGK9eE81V#{gh|R)Y`GE|qwK z*U=;Hz-7T=AyBA%Rjrf7n3FfS5zi)nAEny9sZp0MjXI;{oKSUD26)ABs($Th(RuXp zB#$YGME3?6_|ZcupzwXp^ZavVXkAk!aH4U6W0bbgM!}7+9&gxNRnnkaHeP6>IIu(N zU=VmK7!dN-UD-$gXCuI!ptvX2oSp9>b`C)uQa3FW4uq{vmTkU087kl2{-c1L+tchO z2liLd=))btNXvJlf9b+H3k~DHj~o&-a5_VWl|_f=qD~2eBD~5!TMe}DfQ9L@PTOu> zh(26e{7qrHA(%c~#RsN)hw;`+o9D`Io<*D4nqWJYHA9~d(YfPqRnNw29OU0K)Ms( zeCQujH@MK5{ZuXYA)n}IsGs=fh+RC?a`f}%Nw{w4dZw~}Nz$;Iyy;Ct5&PEuIoVvD zmhzUwEB4-jtFYT`(MM$H+N_tx0d{B4ej2xLYMMAFO<|qkj(8NON^gf*4$RTcg+w>s zo2c9l^F5xr_cB~JDXzmcWZo1IzJ{O5b=i&jXCd&;^SP7}$lLSADZxz-l9Sgu=fHt_ z_fx{YL@0lGK;Z=L#|fYKW9J{}r{xw7HG6MQf-mt0fpv5Y-<6*t1j6Z)@ma^(wIpck zTgSCh+`PP?&+Pbv=(z_#D1d{iTd|=g$mm~F*;9QSsX~YGibpg9FCXrXMHc21oZX%@ zo7gM*`hZg79ulI6{YM}@r>V(MNg{=W~JNByGF zXjTuJ8yhF}7Mw`Q$;oHf$^*D;8@>g+;pPgaWIXsI$=AY!+&enz_^x>VNY47Hi(Xz2 zZ(W>TX6j%6C_7%Nf~j^jD|L2^I`CY^zvOsrZLP}DjH_3vj)!DqWWWY7osmkn&-Y`6 zY%5!Ute7F=4V#UPji+St+7!B^mBC3g)goqG1J3Akhc^|f$Mr0VHR{E!cOot2tWC%Q za~_R{lM^06HO5(N`JYY)aB^wEx~M~ zVqalpE(BxF|*@MyxDgW8uTDg~DAe5K3rceUg2c^{BzDi;#$^H7FMP9ciGlAB2+ zHM`>#IX0_ncjK#owqxbqv@z_Fdcld`iVgW(wV(o%5HV+}gV72)T9cs2PR?W7V zjQm-z5o;=B`3KNF@ELq$yIjBo2ayVp=KmhT{| zK)@Ud7${yA7^_idI9233wPK#;=E|16cB3_HNx3M0V`1`9Lh_e1@h`A^aY09Vbs3>@)lxGluBh_uUwb&x3w7e|@R9 z{6b~eFXm6|ZvHWIAUs^M$wRo_jke`2i*8HJN*&cAi-nt5{YEB0Dc!hN3r^4J0^!`7 zfb*awL_UkD+*|f%@)4-_#iMy9u{JExMUjIi{y?Sx(WeG#)LSAqifC^uEznlzm_A(k ze1+)DhY#SoHfSN-L;|a7F^skv-m^x-B(S1pgkhosM!28{%nS=ZzQaISYhe-EA}y%UKr% z%m`+IC7R_e;jcTY;XdaNSdr+iiJRlLO~IInWa1g+kk`$ z)+_;)qA>k4O3XnPDSm5oC!r`NeICf(eHapuaFUfMix%X5TjCP~yq=q{^SRqmg-y9tDoZHmR2?%(ag_Ar%9WwjiK&i| z|CD*%^e#YVkpj0SM0lkB3*Vg|WV2Yn5aKo^F;A7!&F2;j>t3L%U|Tc-~B<{V{LA4R$=O$ F@HeT(4n+U} literal 1755 zcmZuydsGr=7AH_KeBlV14-A~q6fGQ6SM!C6nVJM9nQp#H^N~)>I3fXqkJ2!P$~LA+ z3K6#zb;iOeHkr(nF|BRYOvksFFG?jU6(9H*+CA;gnKR!x_q%`G^Sk%{e)l`~D<$AV zjUZMK003YVb^sTp^}Sk4(bv=7n=spKt<%W~3X9g)9)^Aj3jol&5{3(mrruDF9y(rlaPB+6;jqwH_JQHan6Q2B6M`jq&G01CrCqX?x1NmZqKhv?jW#%jY!H_H)eZUl2>9;6Gy z>lC7+@F>8nRXwNx3!j@yb$8P>9k1%En10H2UYj4>d!*KwYRp9jLdSX2>^L-+XaZZp zRzmJN1OvRv-rgHv2QW7)8^UwjAzW9!L0!}u&g$?BGqT;=2ai$lE^)kRw0W1yqtZvE z0trd?-1%>sTnXDJ&e#IngWoHLQ`IaKPKY`dv1L3=zna}o%6D~ywgub%Js1@B6B^vOLA1#x$D zdV49xy#xISRQ$Miq1pH)xor~DA51FFDT=Bw1W*;NmcFB7#&S$SJ96n4tUZf`>>f>B zfA{Xm_8ZUsAtu$l{PCxZUPy5LOE$-?P|-exjg2n&nVzGf zX#zTXd}T_<)_>%Ycu{Az<&7tBMzl*ywfr!v`&DPK*VvRdSfS&?^ZCBK9JjgX;>q_9 zEx2R7@q}i1{n>Wk1k7K?JY8D*+SbRk#{)kBTA-dAhFzHr4yG?x1{sXhL)<(=1PnUN#-!3Ar5urb)RPh-8=W`NA zu1-%+i}_zNNixhs4ReK2Bldljqm}Q?NaLpf^2S>3M(vPS1q9eTmz%UV%Pf))FMI6% zSwCZs-Tf~oOX}nu#M*jI4rspr$)3~l zhyRAW2(=*~-G0HET3YdfA0|v5WV6}98;nP)ImL^*HxXA-F(#2mTO=rb($QG|zHP{AC35Qx*twKD|C4R=m-2L_eNeiO*g@X!L?n_cu zfOZ67&{o>rIsiY%`tMM8|T!^%(}w;#Ou%(^4`?wEXcPezm2PTgtbe5_!tdH!_&7cTa+ zQl)Z8gYa~7)Uqzw;b<3Z_99IAU diff --git a/src/main/resources/assets/hbm/textures/models/weapons/coilgun.png b/src/main/resources/assets/hbm/textures/models/weapons/coilgun.png new file mode 100644 index 0000000000000000000000000000000000000000..8dfb5eaa8aa23b2d80c97f40ee74c52699c9e650 GIT binary patch literal 26194 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 literal 0 HcmV?d00001 From b443c3449d37db0017d86a1fe71cf92de3da026f Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 9 Jul 2023 19:46:38 +0200 Subject: [PATCH 189/432] fuck you fuck you fuck you fuck you fuck you fuck you fuck you fuck you --- changelog | 51 ------------------- .../machine/TileEntityMachineAssembler.java | 2 +- 2 files changed, 1 insertion(+), 52 deletions(-) diff --git a/changelog b/changelog index 241b94655..e69de29bb 100644 --- a/changelog +++ b/changelog @@ -1,51 +0,0 @@ -## Added -* Industrial boiler - * A slightly taller variant of the boiler with higher capacity - * Unlike the regular boiler, it can't explode - * This is ideal for applications where closed cycles are not possible, like crude oil refineries, as the machines after the boiler are usually the bottleneck, causing the boiler to run full -* Redstone-over-radio counter - * Can count and send the amount of an item stored in a container - * Counting supports filters by item ID, ID+meta and ore dictionary names - * Each torch can count up to three items and output the results on different channels - * This allows for more precise control over things like assembler chests, like turning off the ejector for an item that is already full but not other ejectors - * This process works fine with the chemical plant, chemical factory and the assembly factory. The small assembler currently still uses older code which doesn't limit the amount of items pulled, so fully preventing clogs is not possible as of now. - * Expect a fix next week - * This property makes automating things with multiple inputs a lot easier - * Due to the ore dictionary ability of the counter, buffered items can precisely match the requirements of the recipe -* Particle collider cooling unit - * A block that can replace coils in a particle collider - * Will increment a new "cooling" value which depletes over time and makes coils more effective - * Overcooling causes a penalty, so coolers cannot be spammed and need to be carefully spaced out - * Allows for even more compact particle accelerator setups - * Comes in two tiers - * The first tier has a flat bonus if the particle is cooled, with a penalty after the overcooling threshold has been crossed - * The second tier has a cooling function that peaks at a certain point and slowly decreases below 1 if overcooled, requiring more precise placement to get the full efficiency -* Benelli M4 - * Automatic 12 gauge shotgun with a drum mag -* Coilgun - * A single-shot gauss pistol that fires tungsten balls - * Shots penetrate blocks - -## Changed -* The regular boiler now only holds 16k instead of 64k (which is still a lot) -* Added labels to the large mining drill's levers -* Glyphid eggs can now be broken apart using an anvil, yielding glyphid meat, bones and experience bottles -* The assembler now uses the new multiblock system, making it less annoying to playe and less ear-piercing to break - * The conversion happens automatically so it's not necessary to remove the assemblers - * While this process has been tested, it's still good practice to make a backup of your world beforehand -* Reload canceling is no longer possible if no rounds have been loaded yet, preventing single round weapons like dart guns to be reload canceled -* The saturnite rifle now has a functional scope -* Rechambered the bolt action rifles to 7.62mm, with a mag of 5 rounds -* The compressor can now turn 4,000mB of petroleum into 2,000mB of LPG -* The lunatic marksman now has a crafting recipe -* Glyphid armor no longer absorbs all incoming damage when breaking off, instead 25% of the damage will bleed through, making it possible to oneshot them with powerful enough weapons - -## Fixed -* Fixed quantity of the fusion reactor's construction recipe not being displayed right -* Fixed fluid valve and redstone fluid valves having the wrong behaviors, being effectively switched -* Fixed mobs' max health getting buffed by pollution, but the actual health staying the same -* Fixed bug regarding the loot pools of satellite miners -* Fixed rocket artillery creating the wrong type of slag -* Fixed fluid valves not being able to have a fluid assigned by clicking directly on them -* Fixed the kyiv special not actually exploding -* Fixed combuston generator not properly syncing the burntime diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java index 8d73476b4..4c754fabe 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java @@ -55,7 +55,7 @@ public class TileEntityMachineAssembler extends TileEntityMachineBase implements int speed = 100; @SideOnly(Side.CLIENT) - public int recipe = -1; + public int recipe; //don't initialize this, retard private AudioWrapper audio; From de028bb5e132b5e5ad118d9bf89b62604cc60379 Mon Sep 17 00:00:00 2001 From: Boblet Date: Mon, 10 Jul 2023 15:48:09 +0200 Subject: [PATCH 190/432] UAC pistol, damage util crap, mk5 fix --- gradle.properties | 3 +- .../explosion/ExplosionNukeRayBatched.java | 2 + .../hbm/handler/guncfg/Gun45ACPFactory.java | 4 +- src/main/java/com/hbm/items/ModItems.java | 3 + src/main/java/com/hbm/main/ClientProxy.java | 1 + .../java/com/hbm/main/ResourceManager.java | 2 + .../item/weapon/ItemRenderUACPistol.java | 109 + .../java/com/hbm/util/EntityDamageUtil.java | 268 +- src/main/resources/META-INF/HBM_at.cfg | 4 + .../assets/hbm/models/weapons/UAC pistol.obj | 16884 ++++++++++++++++ .../models/weapons/pistol_texture.png | Bin 0 -> 320 bytes 11 files changed, 17248 insertions(+), 32 deletions(-) create mode 100644 src/main/java/com/hbm/render/item/weapon/ItemRenderUACPistol.java create mode 100644 src/main/resources/assets/hbm/models/weapons/UAC pistol.obj create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/pistol_texture.png diff --git a/gradle.properties b/gradle.properties index c54eba9d6..2882b656f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -14,4 +14,5 @@ credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion al \ Toshayo (satellite loot system, project settings, gradle curse task), Silly541 (config for safe ME drives),\ \ Voxelstice (OpenComputers integration, turbine spinup), BallOfEnergy1 (OpenComputers integration), martemen\ \ (project settings), Pvndols (thorium fuel recipe, gas turbine), JamesH2 (blood mechanics, nitric acid,\ - \ particle emitter), sdddddf80 (recipe configs, chinese localization), SuperCraftAlex (tooltips) + \ particle emitter), sdddddf80 (recipe configs, chinese localization), SuperCraftAlex (tooltips)\ + \ LePeep (coilgun model), Maksymisio (polish localization) diff --git a/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java b/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java index 8f0b72cd7..8077d7dc6 100644 --- a/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java +++ b/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java @@ -181,6 +181,8 @@ public class ExplosionNukeRayBatched { Math.abs(posX - (chunkX << 4)), Math.abs(posZ - (chunkZ << 4)))) - 16; //jump ahead to cut back on NOPs + enter = Math.max(enter, 0); + for(FloatTriplet triplet : list) { float x = triplet.xCoord; float y = triplet.yCoord; diff --git a/src/main/java/com/hbm/handler/guncfg/Gun45ACPFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun45ACPFactory.java index 21e3db275..3afc3fe5f 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun45ACPFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun45ACPFactory.java @@ -68,8 +68,8 @@ public class Gun45ACPFactory { config.allowsInfinity = true; config.hasSights = true; config.crosshair = Crosshair.CROSS; - config.reloadSound = "hbm:weapon.pistolReloadPB3"; - config.firingSound = "hbm:weapon.pistolFirePB3"; + config.reloadSound = GunConfiguration.RSOUND_MAG; + config.firingSound = "hbm:weapon.deagleShoot"; config.reloadSoundEnd = true; config.name = "uacPistol"; diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index ae099b4e1..1efbd5f96 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1617,6 +1617,7 @@ public class ModItems { public static Item gun_glass_cannon; public static Item gun_m2; public static Item gun_lunatic_marksman; + public static Item gun_uac_pistol; // We'll figure this part out later //public static Item gun_llr, gun_mlr, gun_hlr, gun_twr, gun_lunatic, gun_lunatic_shotty; @@ -4243,6 +4244,7 @@ public class ModItems { gun_glass_cannon = new ItemEnergyGunBase(GunPoweredFactory.getGlassCannonConfig()).setFull3D().setUnlocalizedName("gun_glass_cannon").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_darter"); gun_m2 = new ItemGunBase(Gun50BMGFactory.getM2Config()).setFull3D().setUnlocalizedName("gun_m2").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_darter"); gun_lunatic_marksman = new ItemGunBase(Gun50BMGFactory.getLunaticMarksman()).setFull3D().setUnlocalizedName("gun_lunatic_marksman").setCreativeTab(MainRegistry.weaponTab); + gun_uac_pistol = new ItemGunBase(Gun45ACPFactory.getUACPistolConfig()).setFull3D().setUnlocalizedName("gun_uac_pistol").setCreativeTab(MainRegistry.weaponTab); ToolMaterial matCrucible = EnumHelper.addToolMaterial("CRUCIBLE", 10, 3, 50.0F, 100.0F, 0); crucible = new ItemCrucible(5000, 1F, matCrucible).setUnlocalizedName("crucible").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":crucible"); @@ -6980,6 +6982,7 @@ public class ModItems { GameRegistry.registerItem(gun_revolver_red, gun_revolver_red.getUnlocalizedName()); GameRegistry.registerItem(gun_bio_revolver, gun_bio_revolver.getUnlocalizedName()); GameRegistry.registerItem(gun_deagle, gun_deagle.getUnlocalizedName()); + GameRegistry.registerItem(gun_uac_pistol, gun_uac_pistol.getUnlocalizedName()); GameRegistry.registerItem(gun_flechette, gun_flechette.getUnlocalizedName()); GameRegistry.registerItem(gun_ar15, gun_ar15.getUnlocalizedName()); GameRegistry.registerItem(gun_calamity, gun_calamity.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 5be6906a3..e76d700c5 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -521,6 +521,7 @@ public class ClientProxy extends ServerProxy { MinecraftForgeClient.registerItemRenderer(ModItems.gun_revolver_red, new ItemRenderWeaponNovac()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_lunatic_marksman, new ItemRenderLunaticSniper()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_benelli, new ItemRenderBenelli()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_uac_pistol, new ItemRenderUACPistol()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_coilgun, new ItemRenderWeaponCoilgun()); //multitool MinecraftForgeClient.registerItemRenderer(ModItems.multitool_dig, new ItemRenderMultitool()); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 681ed777f..c18f309c9 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -751,6 +751,7 @@ public class ResourceManager { public static final IModelCustom tau = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/tau.obj")); public static final IModelCustom benelli = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/benelli_new.obj")).asDisplayList(); public static final IModelCustom coilgun = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/coilgun.obj")).asDisplayList(); + public static final IModelCustom uac_pistol = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/UAC pistol.obj")).asDisplayList(); //TODO: reduce this fat fuck public static final IModelCustom lance = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/lance.obj")); @@ -843,6 +844,7 @@ public class ResourceManager { public static final ResourceLocation tau_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/tau.png"); public static final ResourceLocation benelli_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/benelli_tex.png"); public static final ResourceLocation coilgun_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/coilgun.png"); + public static final ResourceLocation uac_pistol_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/pistol_texture.png"); public static final ResourceLocation lance_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lance.png"); diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderUACPistol.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderUACPistol.java new file mode 100644 index 000000000..c2a33b7b4 --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderUACPistol.java @@ -0,0 +1,109 @@ +package com.hbm.render.item.weapon; + +import org.lwjgl.opengl.GL11; + +import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; + +import net.minecraft.client.Minecraft; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraftforge.client.IItemRenderer; + +public class ItemRenderUACPistol implements IItemRenderer { + Minecraft mc = Minecraft.getMinecraft(); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + return type == ItemRenderType.FIRST_PERSON_MAP ? false : true; + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { + return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_BOBBING || helper == ItemRendererHelper.ENTITY_ROTATION); + } + + static final String lower = "lower_pistol_0"; + static final String mag = "mag_pistol_0"; + static final String slide = "slide_pistol_0"; + static final String trigger = "trigger_pistol_0"; + static final String hammer = "bool_obj_bool_obj_data.002"; + + static final float scale1 = 0.05F; + static final float scale2 = 0.025F; + static final float scale3 = 0.05F; + static final float scale4 = 0.55F; + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + GL11.glPushMatrix(); + mc.renderEngine.bindTexture(ResourceManager.uac_pistol_tex); + EntityPlayer player = mc.thePlayer; + GL11.glShadeModel(GL11.GL_SMOOTH); + + double[] slideAnim = HbmAnimations.getRelevantTransformation("SLIDE"); + double[] hammerAnim = HbmAnimations.getRelevantTransformation("HAMMER"); + + switch(type) { + case ENTITY:// Dropped item + GL11.glScalef(scale1, scale1, scale1); + break; + case EQUIPPED:// In hand from other's POV + GL11.glScalef(scale2, scale2, scale2); + GL11.glRotatef(90F, 0F, 1F, 0F); + GL11.glRotatef(-45F, 1F, 0F, 0F); + GL11.glTranslatef(0F, -12F, 30F); + + GL11.glPushMatrix(); + ResourceManager.uac_pistol.renderOnly(trigger, mag, lower); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(slideAnim[0], slideAnim[1], slideAnim[2] * 2); + ResourceManager.uac_pistol.renderPart(slide); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glRotated(hammerAnim[0], 1F, 0F, 0F); + ResourceManager.uac_pistol.renderPart(hammer); + GL11.glPopMatrix(); + break; + case EQUIPPED_FIRST_PERSON:// In hand from POV + GL11.glScalef(scale3, scale3, scale3); + GL11.glRotatef(90F, 0F, 1F, 0F); + if(player.isSneaking()) { + GL11.glRotatef(-25F, 1F, 0F, 0F); + GL11.glRotatef(-5F, 0F, 1F, 0F); + GL11.glTranslatef(20.15F, 3.5F, 18F); + } else { + GL11.glRotatef(-35F, 1F, 0F, 0F); + GL11.glTranslatef(0F, -12F, 25F); + } + GL11.glPushMatrix(); + GL11.glTranslated(slideAnim[0], slideAnim[1], slideAnim[2] * 2); + ResourceManager.uac_pistol.renderPart(slide); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glRotated(hammerAnim[0], 1F, 0F, 0F); + ResourceManager.uac_pistol.renderPart(hammer); + GL11.glPopMatrix(); + break; + case INVENTORY: + GL11.glScalef(scale4, scale4, scale4); + GL11.glRotatef(90F, 0F, 1F, 0F); + GL11.glRotatef(150F, 1F, 0F, 0F); + GL11.glTranslatef(0F, -8F, -24F); + break; + default: + break; + } + if(type != ItemRenderType.EQUIPPED_FIRST_PERSON && type != ItemRenderType.EQUIPPED) + ResourceManager.uac_pistol.renderAll(); + else + ResourceManager.uac_pistol.renderOnly(trigger, mag, lower); + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glPopMatrix(); + } + +} \ No newline at end of file diff --git a/src/main/java/com/hbm/util/EntityDamageUtil.java b/src/main/java/com/hbm/util/EntityDamageUtil.java index f7cb5d36e..e1c299c7c 100644 --- a/src/main/java/com/hbm/util/EntityDamageUtil.java +++ b/src/main/java/com/hbm/util/EntityDamageUtil.java @@ -1,48 +1,24 @@ package com.hbm.util; -import java.lang.reflect.Field; +import java.lang.reflect.Method; import com.hbm.handler.ArmorModHandler; import com.hbm.items.ModItems; import cpw.mods.fml.relauncher.ReflectionHelper; +import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; import net.minecraft.util.DamageSource; import net.minecraft.util.EntityDamageSource; +import net.minecraftforge.common.ForgeHooks; public class EntityDamageUtil { - public static boolean attackEntityFromIgnoreIFrame(Entity victim, DamageSource src, float damage) { - - if(!victim.attackEntityFrom(src, damage)) { - try { - Field lastDamage = ReflectionHelper.findField(EntityLivingBase.class, "lastDamage", "field_110153_bc"); - - float dmg = (float) damage + lastDamage.getFloat(victim); - - return victim.attackEntityFrom(src, dmg); - } catch (Exception x) { - return false; - } - } else { - return true; - } - } - - public static float getLastDamage(Entity victim) { - - try { - Field lastDamage = ReflectionHelper.findField(EntityLivingBase.class, "lastDamage", "field_110153_bc"); - - return lastDamage.getFloat(victim); - } catch(Exception x) { - return 0F; - } - } - public static boolean wasAttackedByV1(DamageSource source) { if(source instanceof EntityDamageSource) { @@ -64,4 +40,238 @@ public class EntityDamageUtil { return false; } + + /** + * Attacks the given entity twice, based on a piecring percentage. The second hit sets the damage source to bypass armor. + * The damage source is modified, so you can't reuse damage source instances. + */ + public static boolean attackEntityFromArmorPiercing(Entity victim, DamageSource src, float damage, float piercing) { + + if(src.isUnblockable() || piercing == 0) return victim.attackEntityFrom(src, damage); + + if(piercing == 1) { + src.setDamageBypassesArmor(); + return victim.attackEntityFrom(src, damage); + } + + boolean ret = false; + + ret |= victim.attackEntityFrom(src, damage * (1F - piercing)); + src.setDamageBypassesArmor(); + ret |= victim.attackEntityFrom(src, damage * piercing); + return ret; + } + + public static boolean attackEntityFromIgnoreIFrame(Entity victim, DamageSource src, float damage) { + + if(!victim.attackEntityFrom(src, damage)) { + + if(victim instanceof EntityLivingBase) { + damage += ((EntityLivingBase) victim).lastDamage; + } + return victim.attackEntityFrom(src, damage); + } else { + return true; + } + } + + /** Currently just a copy of the vanilla damage code */ + public static boolean attackEntityFromNT(EntityLivingBase living, DamageSource source, float amount) { + + if(ForgeHooks.onLivingAttack(living, source, amount)) + return false; + if(living.isEntityInvulnerable()) { + return false; + } else if(living.worldObj.isRemote) { + return false; + } else { + living.entityAge = 0; + + if(living.getHealth() <= 0.0F) { + return false; + } else if(source.isFireDamage() && living.isPotionActive(Potion.fireResistance)) { + return false; + } else { + if((source == DamageSource.anvil || source == DamageSource.fallingBlock) && living.getEquipmentInSlot(4) != null) { + living.getEquipmentInSlot(4).damageItem((int) (amount * 4.0F + living.getRNG().nextFloat() * amount * 2.0F), living); + amount *= 0.75F; + } + + living.limbSwingAmount = 1.5F; + boolean flag = true; + + if((float) living.hurtResistantTime > (float) living.maxHurtResistantTime / 2.0F) { + if(amount <= living.lastDamage) { + return false; + } + + damageEntity(living, source, amount - living.lastDamage); //# + living.lastDamage = amount; + flag = false; + } else { + living.lastDamage = amount; + living.prevHealth = living.getHealth(); + living.hurtResistantTime = living.maxHurtResistantTime; + damageEntity(living, source, amount); //# + living.hurtTime = living.maxHurtTime = 10; + } + + living.attackedAtYaw = 0.0F; + Entity entity = source.getEntity(); + + if(entity != null) { + if(entity instanceof EntityLivingBase) { + living.setRevengeTarget((EntityLivingBase) entity); + } + + if(entity instanceof EntityPlayer) { + living.recentlyHit = 100; + living.attackingPlayer = (EntityPlayer) entity; + } else if(entity instanceof net.minecraft.entity.passive.EntityTameable) { + net.minecraft.entity.passive.EntityTameable entitywolf = (net.minecraft.entity.passive.EntityTameable) entity; + + if(entitywolf.isTamed()) { + living.recentlyHit = 100; + living.attackingPlayer = null; + } + } + } + + if(flag) { + living.worldObj.setEntityState(living, (byte) 2); + + if(source != DamageSource.drown) { + setBeenAttacked(living); //# + } + + if(entity != null) { + double d1 = entity.posX - living.posX; + double d0; + + for(d0 = entity.posZ - living.posZ; d1 * d1 + d0 * d0 < 1.0E-4D; d0 = (Math.random() - Math.random()) * 0.01D) { + d1 = (Math.random() - Math.random()) * 0.01D; + } + + living.attackedAtYaw = (float) (Math.atan2(d0, d1) * 180.0D / Math.PI) - living.rotationYaw; + living.knockBack(entity, amount, d1, d0); + } else { + living.attackedAtYaw = (float) ((int) (Math.random() * 2.0D) * 180); + } + } + + String s; + + if(living.getHealth() <= 0.0F) { + s = getDeathSound(living); //# + + if(flag && s != null) { + living.playSound(s, getSoundVolume(living), getSoundPitch(living)); //# + } + + living.onDeath(source); + } else { + s = getHurtSound(living); //# + + if(flag && s != null) { + living.playSound(s, getSoundVolume(living), getSoundPitch(living)); //# + } + } + + return true; + } + } + } + + // in this household we drink gasoline and sniff glue + public static String getDeathSound(EntityLivingBase living) { + Method m = ReflectionHelper.findMethod(EntityLivingBase.class, living, new String[] {"func_70673_aS", "getDeathSound"}); + try { return (String) m.invoke(living); } catch(Exception e) { } return "game.neutral.die"; + } + + public static String getHurtSound(EntityLivingBase living) { + Method m = ReflectionHelper.findMethod(EntityLivingBase.class, living, new String[] {"func_70621_aR", "getHurtSound"}); + try { return (String) m.invoke(living); } catch(Exception e) { } return "game.neutral.hurt"; + } + + public static float getSoundVolume(EntityLivingBase living) { + Method m = ReflectionHelper.findMethod(EntityLivingBase.class, living, new String[] {"func_70599_aP", "getSoundVolume"}); + try { return (float) m.invoke(living); } catch(Exception e) { } return 1F; + } + + public static float getSoundPitch(EntityLivingBase living) { + Method m = ReflectionHelper.findMethod(EntityLivingBase.class, living, new String[] {"func_70647_i", "getSoundPitch"}); + try { return (float) m.invoke(living); } catch(Exception e) { } return 1F; + } + + public static void damageEntity(EntityLivingBase living, DamageSource source, float amount) { + if(!living.isEntityInvulnerable()) { + amount = ForgeHooks.onLivingHurt(living, source, amount); + if(amount <= 0) + return; + amount = applyArmorCalculations(living, source, amount); //# + amount = applyPotionDamageCalculations(living, source, amount); //# + float f1 = amount; + amount = Math.max(amount - living.getAbsorptionAmount(), 0.0F); + living.setAbsorptionAmount(living.getAbsorptionAmount() - (f1 - amount)); + + if(amount != 0.0F) { + float f2 = living.getHealth(); + living.setHealth(f2 - amount); + living.func_110142_aN().func_94547_a(source, f2, amount); + living.setAbsorptionAmount(living.getAbsorptionAmount() - amount); + } + } + } + + public static float applyArmorCalculations(EntityLivingBase living, DamageSource source, float amount) { + if(!source.isUnblockable()) { + int i = 25 - living.getTotalArmorValue(); + float armor = amount * (float) i; + //living.damageArmor(p_70655_2_); //unused + amount = armor / 25.0F; + } + + return amount; + } + + public static float applyPotionDamageCalculations(EntityLivingBase living, DamageSource source, float amount) { + if(source.isDamageAbsolute()) { + return amount; + } else { + + int resistance; + int j; + float f1; + + if(living.isPotionActive(Potion.resistance) && source != DamageSource.outOfWorld) { + resistance = (living.getActivePotionEffect(Potion.resistance).getAmplifier() + 1) * 5; + j = 25 - resistance; + f1 = amount * (float) j; + amount = f1 / 25.0F; + } + + if(amount <= 0.0F) { + return 0.0F; + } else { + + resistance = EnchantmentHelper.getEnchantmentModifierDamage(living.getLastActiveItems(), source); + + if(resistance > 20) { + resistance = 20; + } + + if(resistance > 0 && resistance <= 20) { + j = 25 - resistance; + f1 = amount * (float) j; + amount = f1 / 25.0F; + } + + return amount; + } + } + } + + public static void setBeenAttacked(EntityLivingBase living) { + living.velocityChanged = living.getRNG().nextDouble() >= living.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).getAttributeValue(); + } } diff --git a/src/main/resources/META-INF/HBM_at.cfg b/src/main/resources/META-INF/HBM_at.cfg index 7fa1a50fe..ba62b1a85 100644 --- a/src/main/resources/META-INF/HBM_at.cfg +++ b/src/main/resources/META-INF/HBM_at.cfg @@ -2,6 +2,10 @@ # Cracks open stupid as shit keywords that are being used wrong because Mojang shouldn't be entrusted with computers. # After changing anything here, run `./gradlew clean setupDecompWorkspace`, this should scrap all the cached nonsense and patch the src to reflect changes made. +# EntityLivingBase +public net.minecraft.entity.EntityLivingBase * # everything because fuck i'm not doing 500 of these by hand +# public net.minecraft.entity.EntityLivingBase *() # ditto + # EntityCreeper public net.minecraft.entity.monster.EntityCreeper field_82225_f # fuseTime public net.minecraft.entity.monster.EntityCreeper func_146077_cc()V # explode diff --git a/src/main/resources/assets/hbm/models/weapons/UAC pistol.obj b/src/main/resources/assets/hbm/models/weapons/UAC pistol.obj new file mode 100644 index 000000000..b0fc57167 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/UAC pistol.obj @@ -0,0 +1,16884 @@ +# Blender v2.82 (sub 7) OBJ File: 'UAC pistol.blend' +# www.blender.org +mtllib UAC pistol.mtl +o lower_pistol_0 +v 1.709833 6.807340 5.318413 +v 1.709833 6.807340 5.149458 +v 1.965886 6.807340 5.149458 +v 1.363295 6.807340 7.165412 +v 1.363295 6.807340 5.318413 +v 1.882584 6.807340 5.848534 +v 2.253843 6.902664 -4.747440 +v 2.253843 6.534985 -3.056432 +v 1.924818 6.534985 -3.056432 +v 1.924818 6.930664 -2.831019 +v 1.924818 6.534985 -3.056432 +v 2.253843 6.534985 -3.056432 +v 2.253843 6.534985 -3.056432 +v 2.253843 6.902664 -4.747440 +v 2.253843 7.162437 -4.697546 +v 1.924818 6.930664 -2.831019 +v 1.592578 6.930664 -2.831019 +v 1.592578 7.603653 -2.269642 +v 1.592578 6.534985 -3.056432 +v 1.592578 6.902664 -4.747440 +v 1.924818 6.125614 -1.931486 +v 1.592578 6.902664 -4.747440 +v 1.592578 7.162437 -4.697546 +v 2.253843 7.162437 -4.697546 +v 2.253843 7.603653 -2.269642 +v 2.253843 7.371370 -2.466391 +v 1.924818 7.371370 -2.466391 +v 2.253843 7.371370 -2.466391 +v 2.253843 7.603653 -2.269642 +v 2.253843 6.966193 -1.398447 +v 2.253843 7.603653 -2.269642 +v 1.592578 7.603653 -2.269642 +v 1.592578 6.966193 -1.398447 +v 1.592578 7.162437 -4.697546 +v 1.592578 6.902664 -4.747440 +v 1.592578 6.534985 -3.056432 +v 2.253843 6.930664 -2.831019 +v 2.253843 7.162437 -4.697546 +v 1.592578 7.162437 -4.697546 +v 1.924818 7.371370 -2.466391 +v 1.924818 6.726052 -1.549974 +v 1.924818 6.125614 -1.931486 +v 2.253843 6.966193 -1.398447 +v 1.592578 6.966193 -1.398447 +v 1.924818 6.726052 -1.549974 +v 1.709833 7.483092 5.149458 +v 1.709833 6.807340 5.149458 +v 1.709833 7.118922 5.318413 +v 1.363295 7.118922 5.318413 +v 1.363295 6.807340 7.165412 +v 1.363295 7.118922 10.804636 +v 1.363295 6.201984 10.638463 +v 1.363295 6.617640 11.001136 +v 1.363295 7.118922 10.804636 +v 1.882584 7.118922 7.165412 +v 1.363295 7.118922 5.318413 +v 2.249606 7.118922 10.804636 +v 2.249606 7.118922 7.165412 +v 1.709833 7.483091 5.848534 +v 1.709833 7.483091 5.848534 +v 1.882584 7.118922 5.848534 +v 1.965886 7.483091 5.848534 +v 2.249606 7.118922 10.804636 +v 2.249606 6.617640 11.001136 +v 2.249606 6.201984 10.638463 +v 2.249606 7.118922 7.165412 +v 1.363295 6.915576 11.004508 +v 1.363295 6.411723 10.933466 +v 1.709833 7.118922 5.848534 +v 1.709833 7.118922 5.848534 +v 1.882584 6.807340 5.848534 +v 1.965886 6.807340 5.848534 +v 2.249606 6.411723 10.933466 +v 2.249606 6.807340 7.165412 +v 2.249606 6.807340 7.165412 +v 2.249606 6.201984 10.638463 +v 1.363295 6.201984 10.638463 +v 1.363295 6.915576 11.004508 +v 2.249606 6.915576 11.004508 +v 1.363295 6.617640 11.001136 +v 2.249606 6.617640 11.001136 +v 1.363295 6.411723 10.933466 +v 2.249606 6.411723 10.933466 +v 1.882584 6.807340 7.165412 +v 1.709833 7.118922 5.318413 +v 1.363295 6.807340 5.318413 +v 1.363295 7.118922 5.318413 +v 1.709833 7.118922 5.318413 +v 1.709833 6.807340 5.149458 +v 1.709833 7.483092 5.149458 +v 1.965886 7.483092 5.149458 +v 1.965886 7.483092 5.149458 +v 1.709833 7.483092 5.149458 +v 1.709833 7.483091 5.848534 +v 1.965886 6.807340 5.149458 +v 1.965886 7.483092 5.149458 +v 1.965886 7.483091 5.848534 +v 1.882584 6.807340 5.848534 +v 1.882584 7.118922 5.848534 +v 1.882584 7.118922 7.165412 +v 1.882584 6.807340 7.165412 +v 1.882584 7.118922 7.165412 +v 2.249606 7.118922 7.165412 +v 1.363295 6.807340 5.318413 +v 1.882584 7.118922 5.848534 +v 1.709833 6.807340 5.318413 +v 1.709833 7.118922 5.848534 +v 2.249606 6.915576 11.004508 +v 0.741864 8.870750 5.649786 +v 0.685393 8.586851 5.649786 +v 0.685393 8.586850 22.443676 +v -1.051055 4.245723 5.289183 +v -1.051055 4.815592 5.698347 +v -1.582758 4.978194 4.997455 +v -1.051055 0.126897 9.525374 +v -1.051055 0.126897 6.278877 +v -1.051055 -0.223472 3.408138 +v -1.051055 5.194826 19.361946 +v -1.051055 4.834129 12.349441 +v -1.051055 4.834129 19.361946 +v -1.582758 5.194827 5.282278 +v -1.373788 7.218983 19.361946 +v -1.373788 6.342138 19.361946 +v -0.857694 7.218983 19.361946 +v -1.051055 5.194826 19.361946 +v -0.857694 5.453606 19.361946 +v -1.373788 5.534110 19.361946 +v 0.741864 8.870749 22.443676 +v 0.685393 8.586850 22.443676 +v 0.912610 8.492734 22.443676 +v 0.987802 8.870749 22.443676 +v 0.912610 8.492734 22.443676 +v 0.912610 8.492735 5.649786 +v 0.987802 8.870750 5.649786 +v 0.912610 8.492735 5.649786 +v 0.685393 8.586851 5.649786 +v 0.524577 8.346173 5.649786 +v 0.524577 8.346172 22.443676 +v 0.524577 8.346172 22.443676 +v 0.698482 8.172268 22.443676 +v 0.698482 8.172268 22.443676 +v 0.698482 8.172269 5.649786 +v 0.698482 8.172269 5.649786 +v 0.524577 8.346173 5.649786 +v 0.283899 8.185357 5.649786 +v 0.283899 8.185356 22.443676 +v 0.283899 8.185356 22.443676 +v 0.378015 7.958139 22.443676 +v 0.378015 7.958139 22.443676 +v 0.378015 7.958139 5.649786 +v 0.378015 7.958139 5.649786 +v 0.283899 8.185357 5.649786 +v 0.000000 8.128886 5.649786 +v 0.000000 8.128885 22.443676 +v 0.000000 8.128885 22.443676 +v 0.000000 7.882947 22.443676 +v 0.000000 7.882947 22.443676 +v 0.000000 7.882947 5.649786 +v 0.000000 7.882947 5.649786 +v 0.000000 8.128886 5.649786 +v 0.000000 8.128886 5.649786 +v -0.283899 8.185357 5.649786 +v -0.283899 8.185356 22.443676 +v -0.283899 8.185356 22.443676 +v -0.378015 7.958139 22.443676 +v 0.000000 7.882947 22.443676 +v -0.378015 7.958139 22.443676 +v -0.378015 7.958139 5.649786 +v -0.378015 7.958139 5.649786 +v -0.283899 8.185357 5.649786 +v -0.524577 8.346173 5.649786 +v -0.524577 8.346172 22.443676 +v -0.524577 8.346172 22.443676 +v -0.698482 8.172268 22.443676 +v -0.698482 8.172268 22.443676 +v -0.698482 8.172269 5.649786 +v -0.698482 8.172269 5.649786 +v -0.524577 8.346173 5.649786 +v -0.685393 8.586851 5.649786 +v -0.685393 8.586850 22.443676 +v -0.685393 8.586850 22.443676 +v -0.912610 8.492734 22.443676 +v -0.912610 8.492734 22.443676 +v -0.912610 8.492735 5.649786 +v -0.912610 8.492735 5.649786 +v -0.685393 8.586851 5.649786 +v -0.741864 8.870750 5.649786 +v -0.741864 8.870749 22.443676 +v -0.741864 8.870749 22.443676 +v -0.987802 8.870749 22.443676 +v -0.987802 8.870749 22.443676 +v -0.987802 8.870750 5.649786 +v -0.987802 8.870750 5.649786 +v -0.741864 8.870750 5.649786 +v -0.685393 9.154650 5.649786 +v -0.685393 9.154649 22.443676 +v -0.685393 9.154649 22.443676 +v -0.912610 9.248765 22.443676 +v -0.912610 9.248765 22.443676 +v -0.912610 9.248766 5.649786 +v -0.912610 9.248766 5.649786 +v -0.685393 9.154650 5.649786 +v -0.524577 9.395328 5.649786 +v -0.524577 9.395327 22.443676 +v -0.524577 9.395327 22.443676 +v -0.698482 9.569231 22.443676 +v -0.698482 9.569231 22.443676 +v -0.698482 9.569232 5.649786 +v -0.698482 9.569232 5.649786 +v -0.524577 9.395328 5.649786 +v -0.283899 9.556144 5.649786 +v -0.283899 9.556143 22.443676 +v -0.283899 9.556143 22.443676 +v -0.378015 9.783359 22.443676 +v -0.378015 9.783359 22.443676 +v -0.378015 9.783360 5.649786 +v -0.378015 9.783360 5.649786 +v -0.283899 9.556144 5.649786 +v 0.000000 9.612615 5.649786 +v 0.000000 9.612614 22.443676 +v 0.000000 9.612614 22.443676 +v 0.000000 9.858551 22.443676 +v 0.000000 9.858551 22.443676 +v 0.000000 9.858552 5.649786 +v 0.000000 9.858552 5.649786 +v 0.000000 9.612615 5.649786 +v 0.283899 9.556144 5.649786 +v 0.283899 9.556143 22.443676 +v 0.283899 9.556143 22.443676 +v 0.378015 9.783359 22.443676 +v 0.378015 9.783359 22.443676 +v 0.378015 9.783360 5.649786 +v 0.378015 9.783360 5.649786 +v 0.283899 9.556144 5.649786 +v 0.524577 9.395328 5.649786 +v 0.524577 9.395327 22.443676 +v 0.524577 9.395327 22.443676 +v 0.698482 9.569231 22.443676 +v 0.698482 9.569231 22.443676 +v 0.698482 9.569232 5.649786 +v 0.698482 9.569232 5.649786 +v 0.524577 9.395328 5.649786 +v 0.685393 9.154650 5.649786 +v 0.685393 9.154649 22.443676 +v 0.685393 9.154649 22.443676 +v 0.912610 9.248765 22.443676 +v 0.912610 9.248765 22.443676 +v 0.912610 9.248766 5.649786 +v 0.912610 9.248766 5.649786 +v 0.685393 9.154650 5.649786 +v 0.741864 8.870749 22.443676 +v 0.987802 8.870749 22.443676 +v 0.987802 8.870750 5.649786 +v 0.741864 8.870750 5.649786 +v 1.133210 1.741260 4.213062 +v 1.133210 1.619134 4.668841 +v 1.133210 1.560808 4.635167 +v 1.133210 1.285481 5.002494 +v 1.133210 1.251807 4.944168 +v 1.133210 0.829702 5.124619 +v 1.133210 0.829702 5.057271 +v 1.133210 0.373924 5.002494 +v 1.133210 0.407598 4.944168 +v 1.133210 0.040271 4.668841 +v 1.133210 0.098596 4.635167 +v 1.133210 -0.081855 4.213062 +v 1.133210 -0.014506 4.213062 +v 1.133210 0.040271 3.757283 +v 1.133210 0.098596 3.790958 +v 1.133210 0.373924 3.423630 +v 1.133210 0.407598 3.481956 +v 1.133210 0.829702 3.301505 +v 1.133210 0.829702 3.368853 +v 1.133210 1.285481 3.423630 +v 1.133210 1.251807 3.481956 +v 1.133210 1.619134 3.757283 +v 1.133210 1.560808 3.790958 +v 1.133210 1.673911 4.213062 +v 1.133210 1.560808 3.790958 +v 1.133210 1.673911 4.213062 +v 1.469249 1.673911 4.213062 +v 1.020556 1.741260 4.213062 +v 1.020556 1.619134 4.668841 +v 1.133210 1.619134 4.668841 +v 1.469249 1.673911 4.213062 +v 1.469249 1.560808 4.635167 +v 1.469249 0.829702 4.213062 +v 1.133210 1.251807 3.481956 +v 1.469249 1.560808 3.790958 +v 1.020556 1.285481 5.002494 +v 1.133210 1.285481 5.002494 +v 1.469249 1.251807 4.944168 +v 1.133210 0.829702 3.368853 +v 1.469249 1.251807 3.481956 +v 1.020556 0.829702 5.124619 +v 1.133210 0.829702 5.124619 +v 1.469249 0.829702 5.057271 +v 1.133210 0.407598 3.481956 +v 1.133210 0.829702 3.368853 +v 1.469249 0.829702 3.368853 +v 1.020556 0.373924 5.002494 +v 1.133210 0.373924 5.002494 +v 1.469249 0.407598 4.944168 +v 1.133210 0.098596 3.790958 +v 1.469249 0.407598 3.481956 +v 1.020556 0.040271 4.668841 +v 1.133210 0.040271 4.668841 +v 1.469249 0.098596 4.635167 +v 1.133210 -0.014506 4.213062 +v 1.469249 0.098596 3.790958 +v 1.020556 -0.081855 4.213062 +v 1.133210 -0.081855 4.213062 +v 1.469249 -0.014506 4.213062 +v 1.133210 0.098596 4.635167 +v 1.469249 -0.014506 4.213062 +v 1.020556 0.040271 3.757283 +v 1.133210 0.040271 3.757283 +v 1.469249 0.098596 3.790958 +v 1.133210 0.407598 4.944168 +v 1.469249 0.098596 4.635167 +v 1.020556 0.373924 3.423630 +v 1.133210 0.373924 3.423630 +v 1.469249 0.407598 3.481956 +v 1.133210 0.829702 5.057271 +v 1.469249 0.407598 4.944168 +v 1.020556 0.829702 3.301505 +v 1.133210 0.829702 3.301505 +v 1.469249 0.829702 3.368853 +v 1.133210 1.251807 4.944168 +v 1.469249 0.829702 5.057271 +v 1.020556 0.829702 3.301505 +v 1.020556 1.285481 3.423630 +v 1.133210 1.285481 3.423630 +v 1.469249 1.251807 3.481956 +v 1.133210 1.560808 4.635167 +v 1.469249 1.251807 4.944168 +v 1.020556 1.619134 3.757283 +v 1.133210 1.619134 3.757283 +v 1.469249 1.560808 3.790958 +v 1.469249 1.560808 4.635167 +v 1.133210 1.741260 4.213062 +v -2.120367 6.032114 -1.127586 +v -2.168285 6.052625 -0.925915 +v -2.124553 6.332816 -1.081475 +v -1.803483 -8.183756 -0.940654 +v -1.550631 -8.207280 -0.940181 +v -1.803497 2.273637 3.302741 +v -2.107996 4.322828 -0.236828 +v -2.163024 4.259209 -0.066218 +v -2.116467 4.647215 -0.174769 +v -2.168202 1.521683 2.220641 +v -2.172835 -7.439816 -1.372818 +v -2.137654 1.534970 2.385706 +v -1.849792 2.296251 3.228978 +v -1.880736 2.578792 3.289423 +v -1.879857 2.017154 3.056580 +v -1.803508 -5.875544 -4.913877 +v -1.803499 -6.096515 -4.976788 +v -2.130997 -6.177512 -4.485743 +v -1.550631 -5.813593 -4.933243 +v -1.550631 -6.027862 -4.968081 +v -1.839455 4.411472 -0.653382 +v -2.137789 6.702975 -0.434405 +v -1.803504 7.006510 -0.872316 +v -1.803507 7.133335 -0.533682 +v -1.550631 7.026423 -0.881127 +v -1.803483 6.443164 -1.419198 +v -2.176839 -6.680809 -4.296602 +v -2.176541 -6.266698 -4.325728 +v -2.177566 -6.820210 -4.161257 +v -2.121354 -6.703000 -4.498363 +v -2.173862 1.655341 1.737604 +v -1.978566 2.889965 3.247607 +v -1.933436 2.830892 2.688685 +v -2.119590 3.136953 3.088691 +v -1.971355 2.842444 2.231860 +v -2.159245 3.192134 2.951774 +v -2.171134 2.757730 1.304274 +v -2.032148 2.748445 1.721616 +v -2.176745 2.987958 1.594733 +v -2.167308 3.176706 2.349641 +v -1.838198 2.378400 2.963018 +v -1.857113 2.122498 2.578046 +v -2.068853 1.609260 2.541311 +v -1.962750 1.737307 2.831918 +v -1.945670 1.985472 2.045092 +v -2.173443 2.217372 1.117763 +v -2.176554 1.911733 1.296362 +v -2.047754 2.044644 1.547692 +v -1.847373 2.496792 2.548999 +v -1.977065 2.428715 1.644999 +v -1.883795 2.419949 2.091068 +v -2.169390 2.475281 1.132310 +v -2.174314 6.129676 4.109241 +v -2.176527 6.514084 3.866836 +v -2.108078 6.117068 4.317321 +v -2.174668 5.841984 -0.795250 +v -2.179727 5.017104 -0.002164 +v -2.141465 5.765682 -0.955082 +v -2.145445 -6.930309 -4.281384 +v -2.119612 -7.822574 -1.480976 +v -2.176766 -7.604493 -1.548246 +v -2.174624 4.663060 0.053574 +v -2.163947 6.294227 -0.887580 +v -2.176857 6.557230 -0.328893 +v -1.803505 6.986403 4.265715 +v -2.129669 6.678270 3.948849 +v -1.550631 7.011675 4.277202 +v -1.803498 6.146345 4.785963 +v -1.550631 5.888644 4.797829 +v -1.550631 6.141139 4.807182 +v -1.803494 -8.338592 -1.148253 +v -2.121051 -7.647707 -1.285315 +v -1.284940 0.829702 3.740532 +v -1.284940 1.075818 2.934655 +v -1.284940 0.583586 2.934655 +v -1.284940 0.442691 4.456008 +v -1.284940 0.606261 4.619579 +v -1.353546 0.606261 4.619579 +v -1.284940 0.382820 4.232567 +v -1.353546 0.442691 4.456008 +v -1.284940 0.829702 4.679450 +v -1.353546 0.829702 4.679450 +v -1.284940 0.442691 4.009126 +v -1.353546 0.382820 4.232567 +v -1.284940 0.606261 3.845556 +v -1.353546 0.442691 4.009126 +v -1.284940 1.053144 4.619579 +v -1.353546 1.053144 4.619579 +v -1.284940 0.829702 3.785685 +v -1.353546 0.606261 3.845556 +v -1.284940 1.053144 3.845556 +v -1.353546 0.829702 3.785685 +v -1.284940 1.216714 4.456008 +v -1.353546 1.216714 4.456008 +v -1.284940 1.216714 4.009126 +v -1.353546 1.053144 3.845556 +v -1.284940 1.276585 4.232567 +v -1.353546 1.216714 4.009126 +v -1.353546 1.276585 4.232567 +v -1.284940 0.403587 4.478585 +v -1.284940 0.583685 4.658682 +v -1.284940 0.606261 4.619579 +v -1.284940 0.337667 4.232567 +v -1.284940 0.442691 4.456008 +v -1.284940 0.829702 4.724603 +v -1.284940 0.829702 4.679450 +v -1.284940 0.403587 3.986549 +v -1.284940 0.382820 4.232567 +v -1.284940 0.583685 3.806452 +v -1.284940 0.442691 4.009126 +v -1.284940 1.075720 4.658682 +v -1.284940 1.053144 4.619579 +v -1.284940 0.606261 3.845556 +v -1.284940 1.075720 3.806452 +v -1.284940 0.829702 3.785685 +v -1.284940 1.255818 4.478585 +v -1.284940 1.216714 4.456008 +v -1.284940 1.255818 3.986549 +v -1.284940 1.053144 3.845556 +v -1.284940 1.321738 4.232567 +v -1.284940 1.216714 4.009126 +v -1.284940 1.276585 4.232567 +v -1.353546 0.606261 4.619579 +v -1.353546 0.829702 4.232567 +v -1.353546 0.442691 4.456008 +v -1.284940 0.583685 4.658682 +v -1.284940 0.403587 4.478585 +v -0.991334 0.403587 4.478585 +v -1.284940 0.829702 4.724603 +v -0.991334 0.583685 4.658682 +v -1.353546 0.382820 4.232567 +v -1.284940 0.337667 4.232567 +v -0.991334 0.337667 4.232567 +v -1.353546 0.829702 4.679450 +v -1.353546 0.442691 4.009126 +v -1.284940 0.403587 3.986549 +v -0.991334 0.403587 3.986549 +v -1.284940 1.075720 4.658682 +v -0.991334 0.829702 4.724603 +v -1.353546 0.606261 3.845556 +v -1.284940 0.583685 3.806452 +v -0.991334 0.583685 3.806452 +v -1.353546 1.053144 4.619579 +v -1.353546 0.829702 3.785685 +v -1.284940 1.075720 3.806452 +v -0.991334 1.075720 3.806452 +v -0.991334 1.075818 2.934655 +v -1.284940 1.255818 4.478585 +v -0.991334 1.075720 4.658682 +v -1.353546 1.053144 3.845556 +v -1.284940 0.714416 2.803811 +v -1.284940 0.944989 2.803811 +v -0.991334 0.944989 2.803811 +v -1.353546 1.216714 4.456008 +v -1.353546 1.216714 4.009126 +v -1.284940 1.255818 3.986549 +v -0.991334 1.255818 3.986549 +v -1.284940 1.321738 4.232567 +v -0.991334 1.255818 4.478585 +v -1.353546 1.276585 4.232567 +v -0.991334 1.321738 4.232567 +v -1.284940 1.075818 2.934655 +v -1.284940 0.583586 2.934655 +v -0.991334 0.583586 2.934655 +v -1.284940 0.583586 2.934655 +v -1.284940 0.944989 2.803811 +v -1.702916 6.787141 -2.070845 +v -1.702916 6.582519 -2.070845 +v -1.702916 6.727209 -1.926155 +v -1.702916 6.787141 -2.070845 +v -1.702916 6.727209 -1.926155 +v 1.979996 6.727209 -1.926155 +v 1.979996 6.787141 -2.070845 +v 1.979996 6.727209 -1.926155 +v 1.979996 6.582519 -2.070845 +v -1.702916 6.582519 -1.866222 +v -1.702916 6.582519 -1.866222 +v 1.979996 6.582519 -1.866222 +v 1.979996 6.582519 -1.866222 +v -1.702916 6.437829 -1.926155 +v -1.702916 6.437829 -1.926155 +v 1.979996 6.437829 -1.926155 +v 1.979996 6.437829 -1.926155 +v -1.702916 6.377896 -2.070845 +v -1.702916 6.437829 -1.926155 +v -1.702916 6.377896 -2.070845 +v 1.979996 6.377896 -2.070845 +v 1.979996 6.377896 -2.070845 +v -1.702916 6.437829 -2.215535 +v -1.702916 6.437829 -2.215535 +v 1.979996 6.437829 -2.215535 +v 1.979996 6.437829 -2.215535 +v -1.702916 6.582519 -2.275468 +v -1.702916 6.582519 -2.275468 +v 1.979996 6.582519 -2.275468 +v -1.425465 5.714319 12.324278 +v -1.425465 5.534111 12.470450 +v -1.425465 6.342138 12.470450 +v 1.979996 6.582519 -2.275468 +v -1.702916 6.727209 -2.215535 +v -1.373788 5.534110 19.361946 +v -1.702916 6.727209 -2.215535 +v 1.979996 6.727209 -2.215535 +v 1.979996 6.727209 -2.215535 +v -1.425465 5.714319 12.324278 +v -1.425465 6.129148 12.324278 +v -1.582758 6.173631 12.234967 +v -1.425465 5.534111 12.470450 +v -1.582758 5.657322 12.234967 +v 1.979996 6.787141 -2.070845 +v 0.000000 6.215098 -5.421183 +v -1.582758 6.749187 -4.912820 +v 1.582758 6.749187 -4.912820 +v 1.488590 5.921739 -5.685919 +v 0.000000 6.031166 -5.736894 +v -1.582758 5.957942 -5.266877 +v -1.582758 5.870734 -4.399593 +v -1.582758 6.749187 -4.912820 +v 1.582758 5.957942 -5.266877 +v 1.582758 6.154639 -5.365935 +v 1.582758 6.749187 -4.912820 +v 1.582758 5.848901 -5.238700 +v 1.582758 5.870734 -4.399593 +v 0.983988 5.324528 -5.327059 +v -1.425465 6.342138 12.470450 +v -1.582758 6.342138 12.374792 +v -1.582758 5.848901 -5.238700 +v -1.484238 5.789522 -5.649559 +v -0.983988 5.324528 -5.327059 +v 1.488590 5.921739 -5.685919 +v -1.425465 6.342138 12.470450 +v -1.373788 6.342138 19.361946 +v -1.582758 6.342138 18.331852 +v -1.051055 0.805342 10.660654 +v -1.051055 0.446518 11.231197 +v -1.051055 3.374604 10.660654 +v -1.051055 -0.223473 11.574593 +v -1.051055 0.200441 10.158533 +v -0.836559 7.218984 0.486124 +v -1.148529 7.218984 0.843372 +v -1.148529 -7.632973 -5.164885 +v -1.092400 5.576505 -6.393808 +v -1.582758 6.342138 18.331852 +v -1.582758 7.218983 18.331852 +v -1.582758 6.342138 12.374792 +v -1.051055 5.194827 6.202400 +v -1.051055 5.194826 19.361946 +v -1.582758 5.194826 18.331852 +v -1.373788 5.194826 19.361946 +v -0.580398 3.816195 5.489355 +v -0.580398 5.143752 5.307025 +v -0.580398 4.250057 5.891657 +v -1.148529 7.218984 4.965837 +v -1.148529 -8.749960 -1.489985 +v -0.580398 4.410827 6.286258 +v -0.580398 4.410827 8.504850 +v -1.051055 4.410827 9.595867 +v -1.582758 7.218984 -4.804955 +v -0.843982 7.218984 5.409399 +v -1.148529 7.218984 4.965837 +v -0.957142 7.218984 5.409399 +v -1.582758 7.218984 5.409399 +v -1.582758 7.218984 5.409399 +v -1.582758 7.218983 18.331852 +v -0.857694 7.218984 12.938878 +v -1.213076 8.145895 -1.953275 +v -0.692288 8.145895 -1.953275 +v -0.427195 9.430100 -1.953275 +v -0.708688 7.624437 -1.953275 +v -0.397424 7.218984 -1.953275 +v -1.213076 7.624437 -1.953275 +v -1.213076 7.218984 -1.953275 +v -1.213076 7.218984 -1.953275 +v -0.836559 7.218984 0.486124 +v -0.397424 7.218984 -1.953275 +v -0.843982 7.218984 5.409399 +v -0.957142 7.218984 5.409399 +v -0.957142 7.863287 5.710876 +v -1.488590 5.921739 -5.685919 +v -1.582758 6.154639 -5.365935 +v -1.582758 5.957942 -5.266877 +v -1.488590 5.921739 -5.685919 +v 1.582758 5.957942 -5.266877 +v 1.484238 5.789522 -5.649559 +v -1.051055 0.730363 5.438924 +v -1.052369 1.419883 5.161799 +v -1.051770 1.087353 3.958939 +v -1.052369 2.312512 5.048415 +v -1.052369 3.020580 5.130578 +v -1.051055 4.245723 5.289183 +v -1.582758 0.545047 3.068055 +v -1.582758 -0.142682 2.781362 +v -1.051055 -0.223472 3.408138 +v -1.582758 4.606297 4.761065 +v -1.582758 1.087353 3.294126 +v -1.051770 1.087353 3.958939 +v 1.494327 1.329366 3.504859 +v 1.493618 0.998143 3.367662 +v 1.582758 -0.142682 2.781362 +v -1.582758 -2.770208 -4.057409 +v -1.582758 2.997752 -1.677936 +v -1.582758 0.676579 2.788985 +v -1.582758 0.955821 2.788985 +v -1.582758 1.087353 2.951361 +v -1.582758 7.218984 0.532610 +v -0.443586 5.533404 -6.767138 +v -0.528251 5.631947 -6.753191 +v 0.000000 5.631947 -6.801856 +v 1.239158 -6.459403 -6.210183 +v 1.239158 -6.716357 -6.316617 +v 1.239158 -5.908380 -6.182570 +v -1.239158 -6.459403 -6.210183 +v -1.239158 -6.352968 -5.953228 +v -1.239158 -5.908380 -6.182570 +v 1.239158 -7.503078 -5.592237 +v 1.239158 -6.973311 -5.696272 +v 1.239158 -6.751891 -5.355608 +v 1.239158 -7.188473 -6.627295 +v 1.239158 -7.079745 -5.953228 +v 1.239158 -6.352968 -5.953228 +v 1.239158 -6.111136 -5.821549 +v 1.239158 -6.459403 -5.696272 +v 1.239158 -6.353005 -5.417203 +v 1.239158 -6.716357 -5.589839 +v -1.239158 -7.503078 -5.592237 +v -1.239158 -7.079745 -5.953228 +v -1.239158 -7.188473 -6.627295 +v -1.239158 -6.716357 -5.589839 +v -1.239158 -6.973311 -5.696272 +v -1.239158 -6.751891 -5.355608 +v -1.239158 -6.459403 -5.696272 +v -1.239158 -6.353005 -5.417203 +v -1.239158 -6.111136 -5.821549 +v -1.239158 -6.716357 -6.316617 +v 1.239158 -6.973311 -6.210183 +v -1.239158 -6.973311 -6.210183 +v -1.148529 7.218984 0.843372 +v -1.582758 -8.611731 0.338328 +v -1.582758 -7.606416 0.140500 +v -1.539709 -9.237019 0.112444 +v -1.582758 -6.783546 -5.235445 +v -1.582758 -7.547009 -5.447708 +v -1.582758 -6.272798 -5.294007 +v -1.582758 -6.767919 0.122678 +v -1.582758 -5.973763 -5.781600 +v -1.582758 -3.887019 -5.026797 +v 0.000000 5.385466 -6.635780 +v 0.000000 5.533404 -6.815803 +v -0.957142 7.218984 7.609767 +v -1.582758 7.218984 -4.804955 +v -1.213076 7.218984 -4.804955 +v -1.582758 4.316335 -1.880566 +v -1.582758 5.060399 -2.393605 +v -1.213076 9.430100 -1.953275 +v -1.213076 9.430100 -4.335177 +v -1.213076 8.145895 -4.804955 +v -1.582758 5.060399 -2.393605 +v -1.582758 5.705916 -3.303000 +v -0.974568 4.768444 -3.230170 +v -1.113677 5.685023 -6.433601 +v -1.488590 5.921739 -5.685919 +v -1.582758 5.705916 -3.303000 +v -1.582758 7.218984 -4.804955 +v -1.213076 7.218984 -4.804955 +v -0.703050 7.624437 -4.804955 +v -0.702042 8.145895 -4.804955 +v -0.419459 8.845671 -4.804955 +v -1.239158 -7.188473 -6.627295 +v -1.239158 -5.908380 -6.182570 +v -0.974568 -7.096977 -6.928316 +v -1.239158 -5.908380 -6.182570 +v -1.239158 -6.111136 -5.821549 +v -1.582758 -5.973763 -5.781600 +v -1.582758 -7.547009 -5.447708 +v -1.582758 -6.783546 -5.235445 +v -1.239158 -6.751891 -5.355608 +v -1.582758 -6.272798 -5.294007 +v 2.119590 3.136953 3.088691 +v 2.108078 6.117068 4.317321 +v 1.803502 5.931036 4.779144 +v 1.880736 2.578792 3.289423 +v 1.978566 2.889965 3.247607 +v 1.803497 2.273637 3.302741 +v 1.962750 1.737307 2.831918 +v 1.879857 2.017154 3.056580 +v 1.803483 -8.183756 -0.940654 +v 2.068853 1.609260 2.541311 +v 2.137654 1.534970 2.385706 +v 1.803499 -6.096515 -4.976788 +v 2.130997 -6.177512 -4.485743 +v 2.121354 -6.703000 -4.498363 +v 1.550631 -7.022314 -4.915743 +v 1.550631 -6.027862 -4.968081 +v 2.116467 4.647215 -0.174769 +v 2.107996 4.322828 -0.236828 +v 1.839455 4.411472 -0.653382 +v 2.138861 4.925927 -0.212349 +v 1.832909 4.741830 -0.615315 +v 2.141465 5.765682 -0.955082 +v 1.803493 4.979961 -0.698811 +v 2.120367 6.032114 -1.127586 +v 1.803477 5.747915 -1.279529 +v 2.124553 6.332816 -1.081475 +v 1.803468 6.136785 -1.467315 +v 1.803507 7.133335 -0.533682 +v 1.803500 7.103070 4.086896 +v 2.129669 6.678270 3.948849 +v 1.550631 4.920799 -0.676702 +v 1.550631 5.750243 -1.260870 +v 1.550631 6.117420 -1.448276 +v 1.550631 6.431123 -1.427430 +v 1.803483 6.443164 -1.419198 +v 1.550631 4.711940 -0.618973 +v 1.839455 4.411472 -0.653382 +v 2.179727 5.017104 -0.002164 +v 2.174624 4.663060 0.053574 +v 2.119612 -7.822574 -1.480976 +v 2.176766 -7.604493 -1.548246 +v 2.121051 -7.647707 -1.285315 +v 1.803505 -7.014567 -4.882655 +v 2.137789 6.702975 -0.434405 +v 1.550631 4.418573 -0.651555 +v 1.550631 5.888644 4.797829 +v 1.550631 -8.207280 -0.940181 +v 2.163024 4.259209 -0.066218 +v 2.172835 -7.439816 -1.372818 +v 1.803508 -5.875544 -4.913877 +v 1.803504 7.006510 -0.872316 +v 1.550631 7.026423 -0.881127 +v 2.176857 6.557230 -0.328893 +v 2.163947 6.294227 -0.887580 +v 2.176527 6.514084 3.866836 +v 2.168285 6.052625 -0.925915 +v -0.823032 5.400963 -6.289593 +v -1.373788 7.218983 19.361946 +v -0.857694 7.218983 19.361946 +v 1.092400 5.576505 -6.393808 +v 0.443586 5.533404 -6.767138 +v 0.823032 5.400963 -6.289593 +v 0.403942 7.218984 -4.804955 +v 1.213076 7.218984 -4.804955 +v 0.974568 5.132455 -4.066989 +v 1.213076 8.145895 -4.804955 +v 1.213076 8.845671 -4.804955 +v 1.213076 9.430100 -4.335177 +v 0.703050 7.624437 -4.804955 +v 0.708688 7.624437 -1.953275 +v 1.213076 7.624437 -1.953275 +v 1.213076 7.624437 -1.953275 +v 1.213076 7.218984 -1.953275 +v 1.213076 7.218984 -4.804955 +v 0.703050 7.624437 -4.804955 +v 0.702042 8.145895 -4.804955 +v 0.692288 8.145895 -1.953275 +v 0.692288 8.145895 -1.953275 +v 0.702042 8.145895 -4.804955 +v 1.213076 8.145895 -4.804955 +v 1.213076 9.430100 -4.335177 +v 0.450662 9.430100 -4.335177 +v 0.427195 9.430100 -1.953275 +v 1.582758 7.218984 -4.804955 +v 0.528251 5.631947 -6.753191 +v 0.000000 5.631947 -6.801856 +v 1.113677 5.685023 -6.433601 +v 1.582758 6.154639 -5.365935 +v -0.403942 7.218984 -4.804955 +v 1.213076 7.218984 -1.953275 +v 1.582758 7.218984 -4.804955 +v 1.213076 7.218984 -4.804955 +v 0.703050 7.624437 -4.804955 +v 0.419459 8.845671 -4.804955 +v 1.213076 7.624437 -4.804955 +v 1.213076 8.845671 -4.804955 +v 1.213076 8.145895 -4.804955 +v 0.702042 8.145895 -4.804955 +v 0.450662 9.430100 -4.335177 +v 1.213076 9.430100 -4.335177 +v 0.836559 7.218984 0.486124 +v 0.397424 7.218984 -1.953275 +v -1.582758 6.154639 -5.365935 +v 1.582758 2.997752 -1.677936 +v 1.582758 4.606297 4.761065 +v 1.582758 5.060399 -2.393605 +v 1.582758 5.705916 -3.303000 +v 1.582758 7.218984 0.532610 +v 1.582758 4.978194 4.997455 +v 1.582758 7.218984 5.409399 +v 1.582758 6.173631 12.234967 +v 1.582758 5.194827 5.282278 +v 1.582758 5.194826 18.331852 +v 1.582758 5.534111 12.374792 +v 1.582758 4.316335 -1.880566 +v 1.582758 7.218984 -4.804955 +v 1.582758 6.342138 12.374792 +v 1.582758 5.657322 12.234967 +v 1.582758 7.218983 18.331852 +v 1.582758 7.218984 5.409399 +v 0.857694 7.218984 12.938878 +v 1.148529 7.218984 4.965837 +v 0.957142 7.218984 5.409399 +v 0.857694 7.218983 19.361946 +v 1.373788 7.218983 19.361946 +v 0.957142 7.218984 7.609767 +v 1.148529 7.218984 0.843372 +v 0.957142 7.218984 6.277361 +v 0.857694 5.453764 12.938878 +v 0.580191 5.127947 12.938878 +v 0.580398 5.127511 19.361946 +v 0.857694 7.218984 12.938878 +v 0.857694 5.453606 19.361946 +v -1.803494 -8.338592 -1.148253 +v -1.803496 -7.249153 -4.729249 +v -1.550631 -7.254866 -4.756800 +v -1.550631 -8.362582 -1.129572 +v -1.803505 -7.014567 -4.882655 +v -1.803500 7.103070 4.086896 +v -1.550631 7.159328 -0.581056 +v -1.839455 4.411472 -0.653382 +v -1.550631 4.418573 -0.651555 +v -1.803502 5.931036 4.779144 +v -2.138861 4.925927 -0.212349 +v -1.550631 -7.022314 -4.915743 +v -1.832909 4.741830 -0.615315 +v -1.803493 4.979961 -0.698811 +v -1.803477 5.747915 -1.279529 +v -1.803468 6.136785 -1.467315 +v -1.550631 4.920799 -0.676702 +v -1.550631 5.750243 -1.260870 +v -1.550631 6.117420 -1.448276 +v -1.550631 6.431123 -1.427430 +v -1.550631 4.711940 -0.618973 +v 2.168202 1.521683 2.220641 +v 1.849792 2.296251 3.228978 +v 1.550631 -5.813593 -4.933243 +v 2.176839 -6.680809 -4.296602 +v 2.177566 -6.820210 -4.161257 +v 2.145445 -6.930309 -4.281384 +v 2.173862 1.655341 1.737604 +v 1.933436 2.830892 2.688685 +v 1.971355 2.842444 2.231860 +v 2.167308 3.176706 2.349641 +v 2.159245 3.192134 2.951774 +v 2.032148 2.748445 1.721616 +v 2.171134 2.757730 1.304274 +v 2.176745 2.987958 1.594733 +v 1.838198 2.378400 2.963018 +v 1.857113 2.122498 2.578046 +v 1.945670 1.985472 2.045092 +v 2.047754 2.044644 1.547692 +v 2.176554 1.911733 1.296362 +v 2.173443 2.217372 1.117763 +v 1.847373 2.496792 2.548999 +v 1.977065 2.428715 1.644999 +v 1.883795 2.419949 2.091068 +v 2.169390 2.475281 1.132310 +v 2.174314 6.129676 4.109241 +v 2.174668 5.841984 -0.795250 +v 2.176541 -6.266698 -4.325728 +v 1.803505 6.986403 4.265715 +v 1.803498 6.146345 4.785963 +v 1.550631 7.011675 4.277202 +v 1.550631 6.141139 4.807182 +v 1.803494 -8.338592 -1.148253 +v 1.550631 -8.362582 -1.129572 +v 1.803494 -8.338592 -1.148253 +v 1.803496 -7.249153 -4.729249 +v 1.550631 -7.254866 -4.756800 +v 1.550631 7.159328 -0.581056 +v 1.550631 7.128137 4.054968 +v -1.239158 -6.353005 -5.417203 +v -1.113677 5.685023 -6.433601 +v -1.582758 6.173631 12.234967 +v -1.582758 5.657322 12.234967 +v -0.974568 4.193733 -2.693952 +v -1.582758 4.316335 -1.880566 +v -1.582758 5.870734 -4.399593 +v -0.974568 5.132455 -4.066989 +v -0.974568 2.986196 -2.567274 +v -1.582758 2.997752 -1.677936 +v -0.974568 -2.299957 -4.683156 +v -1.582758 -2.770208 -4.057409 +v -0.974568 -3.532901 -5.626941 +v -1.582758 -3.887019 -5.026797 +v -1.582758 -5.973763 -5.781600 +v -0.427195 9.430100 -1.953275 +v -0.397424 7.218984 -1.953275 +v -0.450662 9.430100 -4.335177 +v -0.580398 4.410827 6.286258 +v -0.580398 5.143752 8.504850 +v 0.403942 7.218984 -4.804955 +v -0.580398 3.410160 5.307025 +v 0.397424 7.218984 -1.953275 +v 0.450662 9.430100 -4.335177 +v 0.419459 8.845671 -4.804955 +v -0.857694 5.453764 12.938878 +v -0.857694 5.453606 19.361946 +v -0.580398 5.127511 19.361946 +v -0.857694 7.218984 12.938878 +v -0.857694 7.218983 19.361946 +v -0.957142 7.863287 7.609767 +v -0.957142 7.218984 5.409399 +v -0.957142 7.218984 6.277361 +v -0.957142 7.863287 5.710876 +v -1.213076 8.845671 -4.804955 +v -0.703050 7.624437 -4.804955 +v -1.213076 7.624437 -4.804955 +v -1.213076 7.624437 -1.953275 +v -1.213076 7.624437 -1.953275 +v -1.213076 7.624437 -4.804955 +v -1.213076 7.218984 -4.804955 +v -1.148529 -8.749960 -1.489985 +v -0.843982 -8.845317 -1.176260 +v -1.539709 -9.237019 0.112444 +v -0.703050 7.624437 -4.804955 +v -0.708688 7.624437 -1.953275 +v -0.692288 8.145895 -1.953275 +v -0.580398 3.410160 5.307025 +v -0.580398 3.816195 5.489355 +v -1.051055 3.816076 5.489355 +v -1.051055 4.250057 5.891657 +v -0.580398 4.250057 5.891657 +v -1.051055 4.410827 6.286258 +v -0.692288 8.145895 -1.953275 +v -1.213076 8.145895 -1.953275 +v -1.213076 8.145895 -4.804955 +v -1.052369 3.020580 5.130578 +v -1.582758 5.534110 18.331852 +v -1.582758 5.534111 12.374792 +v -1.582758 5.194826 18.331852 +v -1.051055 3.986079 11.231197 +v -1.213076 9.430100 -4.335177 +v -1.213076 9.430100 -1.953275 +v -0.427195 9.430100 -1.953275 +v -1.051055 4.197896 10.160744 +v -1.051055 4.410827 9.595867 +v -1.051055 5.194827 6.202400 +v -1.051055 4.410827 6.286258 +v -1.051055 4.815592 5.698347 +v -1.051055 4.250057 5.891657 +v 1.051203 0.060934 3.592092 +v 1.051055 -0.223472 3.408138 +v 1.358388 0.595196 3.367662 +v -1.051055 0.491167 10.501270 +v -1.051055 3.846210 10.532600 +v -1.051055 3.816076 5.489355 +v -1.051055 0.303245 5.858099 +v -1.051055 0.145062 11.660562 +v -0.403942 7.218984 -4.804955 +v -0.419459 8.845671 -4.804955 +v -0.580398 5.127511 19.361946 +v -1.213076 7.624437 -4.804955 +v -1.213076 8.845671 -4.804955 +v -1.213076 9.430100 -4.335177 +v -0.528251 5.631947 -6.753191 +v -1.051055 -7.663412 0.798394 +v -1.051055 -6.827383 0.859532 +v -1.051055 -9.408401 0.676293 +v -1.051055 -8.710466 0.929088 +v -0.832096 -2.281892 2.617995 +v -1.051055 -0.223472 3.408138 +v -1.051055 -6.827383 0.859532 +v -0.832096 -3.798709 2.025143 +v -0.832096 -3.666983 2.980051 +v -0.832096 -2.992427 3.243009 +v -1.051055 4.834129 19.361946 +v -1.582758 5.534111 12.374792 +v -1.582758 5.534110 18.331852 +v -1.373788 5.534110 19.361946 +v -1.373788 7.218983 19.361946 +v -1.373788 5.194826 19.361946 +v -0.372438 10.036927 5.890271 +v -0.372438 10.296735 5.890271 +v 0.372438 10.036927 5.890271 +v -0.570611 9.870735 5.890271 +v 0.570611 9.870735 5.890271 +v 0.667251 10.036927 5.890271 +v -0.667251 10.036927 5.890271 +v -0.372438 10.036927 5.890271 +v -0.667251 10.036927 5.890271 +v -0.666265 10.036926 11.908644 +v -1.159394 7.167400 5.890271 +v -1.159394 7.167400 11.908644 +v -1.159394 9.473120 11.908644 +v -1.018901 7.167400 11.908644 +v -1.018901 9.373808 11.908644 +v -1.159394 9.473120 11.908644 +v -1.018901 7.167400 5.890271 +v -1.159394 7.167400 5.890271 +v -1.159394 9.473121 5.890271 +v -0.570611 9.870734 11.908644 +v -0.666265 10.036926 11.908644 +v 1.018901 9.373809 5.890271 +v 1.018901 7.167400 5.890271 +v 1.018901 7.167400 11.908644 +v 1.018901 9.373808 11.908644 +v 0.570611 9.870734 11.908644 +v -0.372438 10.036927 8.085609 +v 0.372438 10.036927 8.085609 +v 0.372438 10.296735 5.890271 +v 1.018901 7.167400 5.890271 +v 1.018901 9.373809 5.890271 +v 1.159394 9.473121 5.890271 +v 0.372438 10.036927 5.890271 +v 0.372438 10.296735 5.890271 +v 0.372438 10.036927 8.085609 +v 0.372438 10.036927 5.890271 +v 0.372438 10.036927 8.085609 +v 0.666265 10.036926 11.908644 +v 1.159394 7.167400 5.890271 +v 1.159394 9.473121 5.890271 +v 1.159394 9.473120 11.908644 +v 1.018901 7.167400 11.908644 +v 1.159394 7.167400 11.908644 +v 1.159394 9.473120 11.908644 +v 0.570611 9.870734 11.908644 +v 1.018901 9.373808 11.908644 +v 0.667251 10.036927 5.890271 +v -1.018901 9.373809 5.890271 +v -1.018901 9.373808 11.908644 +v -1.018901 7.167400 11.908644 +v -0.372438 10.036927 8.085609 +v -0.372438 10.296735 5.890271 +v -0.372438 10.036927 5.890271 +v -0.372438 10.036927 8.085609 +v -0.570611 9.870735 5.890271 +v -0.570611 9.870734 11.908644 +v 0.570611 9.870735 5.890271 +v 0.372438 10.296735 5.890271 +v 1.592578 6.930664 -2.831019 +v 1.924818 6.930664 -2.831019 +v 1.924818 6.930664 -2.831019 +v 2.253843 6.726052 -1.549974 +v 1.592578 6.125614 -1.931486 +v 1.592578 6.966193 -1.398447 +v 1.924818 6.125614 -1.931486 +v 1.592578 6.125614 -1.931486 +v 1.592578 7.603653 -2.269642 +v 1.592578 6.930664 -2.831019 +v 1.924818 6.534985 -3.056432 +v 1.924818 6.726052 -1.549974 +v 1.924818 7.371370 -2.466391 +v 2.253843 7.371370 -2.466391 +v -1.051770 0.545047 3.730687 +v 1.360567 1.614293 3.789785 +v 1.051232 1.834943 4.322482 +v 1.050937 1.614293 3.789785 +v 1.360567 1.614293 3.789785 +v -1.582758 0.676579 2.788985 +v -1.582758 0.545047 3.068055 +v -1.051770 0.545047 2.951361 +v 1.050937 0.595196 3.367662 +v 1.050937 1.614293 3.789785 +v 1.052369 1.419883 5.161799 +v 1.051232 1.834943 4.322482 +v -1.051770 0.545047 3.730687 +v 1.051055 0.126897 6.278877 +v 1.051055 -0.223472 3.408138 +v 1.051055 0.303245 5.858099 +v 1.051232 1.834943 4.322482 +v 1.050937 0.998143 3.367662 +v 1.358388 0.595196 3.367662 +v 1.493618 0.998143 3.367662 +v 1.050937 0.998143 3.367662 +v -1.051770 1.087353 3.958939 +v -1.582758 1.087353 3.294126 +v -1.582758 1.087353 2.951361 +v 1.050937 0.062500 3.588312 +v 1.051055 0.730363 5.438924 +v 1.050937 1.329366 3.504859 +v 1.239158 -6.352968 -5.953228 +v -1.239158 -6.352968 -5.953228 +v -1.239158 -6.459403 -6.210183 +v -1.239158 -6.973311 -6.210183 +v 1.239158 -6.973311 -6.210183 +v 1.239158 -6.716357 -6.316617 +v -1.239158 -7.079745 -5.953228 +v -1.239158 -6.716357 -5.589839 +v 1.239158 -6.716357 -5.589839 +v 1.239158 -6.973311 -5.696272 +v -0.836559 -7.541790 -5.464878 +v -1.148529 -7.632973 -5.164885 +v -1.239158 -7.503078 -5.592237 +v -0.843982 -8.845317 -1.176260 +v -1.582758 -7.547009 -5.447708 +v -0.974568 -7.096977 -6.928316 +v -1.239158 -7.188473 -6.627295 +v -0.857694 5.453764 12.938878 +v 0.857694 5.453764 12.938878 +v 0.857694 7.218984 12.938878 +v -0.580191 5.127947 12.938878 +v 0.580191 5.127947 12.938878 +v 0.427195 9.430100 -1.953275 +v -1.051055 -9.408401 0.676293 +v -0.580191 5.127947 12.938878 +v 0.403942 7.218984 -4.804955 +v 1.239158 -6.459403 -6.210183 +v -1.239158 -6.459403 -5.696272 +v 1.239158 -6.459403 -5.696272 +v 1.239158 -7.079745 -5.953228 +v 1.239158 -6.352968 -5.953228 +v 0.957142 7.218984 5.409399 +v 0.843982 7.218984 5.409399 +v 0.957142 7.863287 5.710876 +v 1.213076 7.624437 -1.953275 +v 0.708688 7.624437 -1.953275 +v 0.397424 7.218984 -1.953275 +v 0.692288 8.145895 -1.953275 +v 0.427195 9.430100 -1.953275 +v 1.213076 8.145895 -1.953275 +v 1.213076 9.430100 -1.953275 +v -0.957142 7.218984 6.277361 +v 1.582758 7.218983 18.331852 +v 0.843982 7.218984 5.409399 +v 1.582758 5.870734 -4.399593 +v 0.580398 4.410827 6.286258 +v 1.051055 4.410827 6.286258 +v 1.051055 4.410827 9.595867 +v -0.580398 4.410827 8.504850 +v -0.580398 5.143752 8.504850 +v 0.580398 5.143752 8.504850 +v 0.580398 5.143752 5.307025 +v 0.580398 3.816195 5.489355 +v 0.580398 4.250057 5.891657 +v 1.582758 5.194826 18.331852 +v 1.373788 5.194826 19.361946 +v 1.051055 5.194826 19.361946 +v 1.051055 5.194827 6.202400 +v 1.582758 5.194827 5.282278 +v 1.582758 6.342138 18.331852 +v 1.051055 4.834129 12.349441 +v -1.051055 4.834129 12.349441 +v -1.051055 3.986079 11.231197 +v -1.051055 4.197896 10.160744 +v 1.051055 -0.223473 11.574593 +v 1.051055 0.126897 9.525374 +v 1.051055 0.200441 10.158533 +v -1.051770 0.545047 2.951361 +v -1.051770 1.087353 2.951361 +v -1.051770 0.955821 2.753111 +v 1.050937 0.062500 3.588312 +v 1.051203 0.060934 3.592092 +v 1.358388 0.595196 3.367662 +v -1.582758 0.955821 2.788985 +v -1.051770 0.955821 2.753111 +v 1.051055 0.446518 11.231197 +v 1.051055 0.805342 10.660654 +v 1.051055 3.374604 10.660654 +v 1.425465 6.342138 12.470450 +v 1.582758 6.342138 12.374792 +v 1.582758 6.342138 18.331852 +v 1.425465 6.129148 12.324278 +v 1.582758 6.173631 12.234967 +v 1.582758 6.342138 12.374792 +v 1.425465 5.534111 12.470450 +v 1.582758 5.534111 12.374792 +v 1.582758 5.657322 12.234967 +v 1.425465 5.714319 12.324278 +v 1.425465 6.342138 12.470450 +v 1.373788 6.342138 19.361946 +v 1.373788 5.534110 19.361946 +v 1.425465 5.714319 12.324278 +v 1.425465 6.129148 12.324278 +v 1.051055 5.194826 19.361946 +v 1.373788 5.194826 19.361946 +v 1.373788 5.534110 19.361946 +v 1.373788 6.342138 19.361946 +v 1.373788 7.218983 19.361946 +v 0.857694 7.218983 19.361946 +v -1.582758 0.676579 2.788985 +v -1.051770 0.676579 2.753111 +v 1.051055 5.194827 6.202400 +v 1.051055 4.815592 5.698347 +v 1.051055 4.834129 12.349441 +v 1.051055 5.194826 19.361946 +v 1.051055 4.834129 19.361946 +v 1.051203 0.060934 3.592092 +v 1.050937 0.062500 3.588312 +v 1.051055 -0.223472 3.408138 +v 1.051055 4.245723 5.289183 +v 1.582758 5.534110 18.331852 +v 1.373788 5.534110 19.361946 +v 1.373788 5.194826 19.361946 +v 1.373788 7.218983 19.361946 +v 1.373788 6.342138 19.361946 +v 1.373788 5.534110 19.361946 +v 1.051055 4.834129 19.361946 +v 0.857694 5.453606 19.361946 +v 0.580398 5.127511 19.361946 +v -1.051055 0.145062 11.660562 +v -1.051055 -0.223473 11.574593 +v 1.051055 -0.223473 11.574593 +v 1.494327 1.329366 3.504859 +v 1.051055 -0.223473 11.574593 +v -1.051055 -0.223473 11.574593 +v -1.051055 -0.223472 3.408138 +v -1.051055 0.446518 11.231197 +v -1.051055 0.145062 11.660562 +v 1.051055 0.145062 11.660562 +v 1.051055 0.446518 11.231197 +v -1.051055 4.834129 19.361946 +v -0.832096 -2.992427 3.243009 +v 0.832096 -2.992427 3.243009 +v 0.832096 -2.281892 2.617995 +v -0.832096 -3.666983 2.980051 +v 0.832096 -3.666983 2.980051 +v 0.832096 -2.992427 3.243009 +v 0.832096 -3.798709 2.025143 +v 0.832096 -2.281892 2.617995 +v 0.832096 -2.992427 3.243009 +v -0.832096 -3.798709 2.025143 +v 0.832096 -3.798709 2.025143 +v 0.832096 -3.666983 2.980051 +v 1.051055 -0.223472 3.408138 +v 1.051055 -6.827383 0.859532 +v 1.582758 -6.767919 0.122678 +v 1.582758 -7.606416 0.140500 +v 1.051055 -7.663412 0.798394 +v 1.051055 -8.710466 0.929088 +v 0.832096 -2.281892 2.617995 +v 0.832096 -3.798709 2.025143 +v 1.051055 -6.827383 0.859532 +v 1.051055 -9.408401 0.676293 +v 1.539709 -9.237019 0.112444 +v 1.582758 -8.611731 0.338328 +v 1.051055 -7.663412 0.798394 +v -1.051055 -7.663412 0.798394 +v -1.051055 -8.710466 0.929088 +v -0.832096 -3.798709 2.025143 +v -1.051055 -9.408401 0.676293 +v 1.051055 -9.408401 0.676293 +v 1.051055 -8.710466 0.929088 +v -0.403942 7.218984 -4.804955 +v 1.051055 0.491167 10.501270 +v 1.051055 0.145062 11.660562 +v 1.051055 4.245723 5.289183 +v 1.052369 3.020580 5.130578 +v 1.052369 2.312512 5.048415 +v 1.051055 3.816076 5.489355 +v 1.051055 4.250057 5.891657 +v 1.051055 4.410827 6.286258 +v 1.051055 4.815592 5.698347 +v 1.051055 5.194827 6.202400 +v 1.051055 4.410827 9.595867 +v 1.051055 4.197896 10.160744 +v 1.051055 3.986079 11.231197 +v 1.051055 3.846210 10.532600 +v 1.050937 1.329366 3.504859 +v -1.052369 3.020580 5.130578 +v -1.052369 2.312512 5.048415 +v 1.052369 2.312512 5.048415 +v 1.052369 3.020580 5.130578 +v 1.051055 3.816076 5.489355 +v 0.580398 3.410160 5.307025 +v 0.580398 4.250057 5.891657 +v 1.051055 4.250057 5.891657 +v 0.580398 3.816195 5.489355 +v -1.051055 0.126897 9.525374 +v -1.051055 0.200441 10.158533 +v 1.051055 0.200441 10.158533 +v -1.051055 0.491167 10.501270 +v 1.051055 0.491167 10.501270 +v -1.051055 0.126897 6.278877 +v 1.051055 0.126897 9.525374 +v -1.051055 0.805342 10.660654 +v 1.051055 0.805342 10.660654 +v -1.051055 0.303245 5.858099 +v 1.051055 0.126897 6.278877 +v -1.051055 3.374604 10.660654 +v 1.051055 3.374604 10.660654 +v -1.051055 0.730363 5.438924 +v 1.051055 0.303245 5.858099 +v -1.051055 3.846210 10.532600 +v 1.051055 3.846210 10.532600 +v -1.052369 1.419883 5.161799 +v 1.051055 0.730363 5.438924 +v 1.051055 4.197896 10.160744 +v 1.052369 1.419883 5.161799 +v 0.580398 5.143752 5.307025 +v -0.580398 5.143752 5.307025 +v -0.580398 3.410160 5.307025 +v 0.580398 3.410160 5.307025 +v 0.580398 4.410827 6.286258 +v 0.580398 5.143752 8.504850 +v -0.580398 5.143752 8.504850 +v -0.580398 5.143752 5.307025 +v 0.580398 4.410827 8.504850 +v 0.580398 5.143752 8.504850 +v 0.580398 4.410827 8.504850 +v 1.582758 -3.887019 -5.026797 +v 1.582758 -5.973763 -5.781600 +v 1.239158 -5.908380 -6.182570 +v 0.974568 -7.096977 -6.928316 +v 0.974568 -3.532901 -5.626941 +v 0.974568 -2.299957 -4.683156 +v 1.582758 -2.770208 -4.057409 +v 0.974568 2.986196 -2.567274 +v 1.582758 2.997752 -1.677936 +v 0.974568 4.768444 -3.230170 +v 1.582758 5.705916 -3.303000 +v 0.974568 4.193733 -2.693952 +v 1.582758 4.316335 -1.880566 +v 1.582758 5.060399 -2.393605 +v 1.113677 5.685023 -6.433601 +v 1.488590 5.921739 -5.685919 +v 0.528251 5.631947 -6.753191 +v 1.239158 -6.353005 -5.417203 +v 1.582758 -6.272798 -5.294007 +v 1.582758 -6.783546 -5.235445 +v 1.239158 -6.111136 -5.821549 +v 1.582758 -7.547009 -5.447708 +v 1.239158 -7.503078 -5.592237 +v 1.239158 -6.751891 -5.355608 +v 1.239158 -5.908380 -6.182570 +v 1.582758 -5.973763 -5.781600 +v 1.239158 -7.188473 -6.627295 +v 1.213076 9.430100 -1.953275 +v 1.213076 8.145895 -1.953275 +v 1.582758 -2.770208 -4.057409 +v 1.582758 -3.887019 -5.026797 +v 1.582758 -6.272798 -5.294007 +v 1.582758 -5.973763 -5.781600 +v 1.582758 -6.783546 -5.235445 +v 1.582758 -7.547009 -5.447708 +v 1.582758 -7.547009 -5.447708 +v 1.148529 -7.632973 -5.164885 +v 1.239158 -7.503078 -5.592237 +v 0.836559 -7.541790 -5.464878 +v 0.974568 -7.096977 -6.928316 +v 1.239158 -7.188473 -6.627295 +v 1.539709 -9.237019 0.112444 +v 1.051055 -9.408401 0.676293 +v 0.843982 -8.845317 -1.176260 +v 0.843982 -8.845317 -1.176260 +v 0.843982 7.218984 5.409399 +v 1.148529 7.218984 4.965837 +v 1.148529 7.218984 0.843372 +v 1.148529 -7.632973 -5.164885 +v 0.836559 7.218984 0.486124 +v 0.836559 -7.541790 -5.464878 +v 1.148529 -7.632973 -5.164885 +v -0.836559 -7.541790 -5.464878 +v -0.843982 7.218984 5.409399 +v 1.148529 -8.749960 -1.489985 +v 0.957142 7.863287 7.609767 +v -0.957142 7.863287 7.609767 +v -0.957142 7.218984 7.609767 +v 0.957142 7.218984 5.409399 +v 0.957142 7.863287 5.710876 +v 0.957142 7.863287 7.609767 +v -0.957142 7.863287 7.609767 +v 0.957142 7.863287 7.609767 +v 0.957142 7.863287 5.710876 +v 0.957142 7.218984 7.609767 +v 0.957142 7.218984 6.277361 +v 2.253843 6.930664 -2.831019 +v 2.253843 6.930664 -2.831019 +v 1.592578 6.125614 -1.931486 +v 2.253843 6.902664 -4.747440 +v 2.253843 6.726052 -1.549974 +v 2.253843 6.966193 -1.398447 +v 1.709833 6.807340 5.318413 +v 1.965886 6.807340 5.149458 +v 1.965886 7.483091 5.848534 +v 1.965886 6.807340 5.848534 +v 1.882584 6.807340 7.165412 +v 2.249606 6.807340 7.165412 +v -1.051055 5.194827 6.202400 +v -1.373788 5.194826 19.361946 +v 0.000000 8.128885 22.443676 +v 0.000000 7.882947 5.649786 +v 1.469249 0.829702 3.368853 +v 1.133210 0.829702 3.301505 +v -0.991334 0.714416 2.803811 +v -0.991334 0.583586 2.934655 +v -1.284940 0.714416 2.803811 +v 1.979996 6.437829 -1.926155 +v -1.425465 6.129148 12.324278 +v -1.373788 6.342138 19.361946 +v -1.582758 6.342138 12.374792 +v -1.582758 5.194827 5.282278 +v -1.213076 9.430100 -1.953275 +v -1.051770 0.545047 3.730687 +v -1.213076 8.145895 -1.953275 +v -1.239158 -7.503078 -5.592237 +v 1.213076 7.624437 -4.804955 +v 1.213076 7.624437 -4.804955 +v 0.708688 7.624437 -1.953275 +v 1.213076 8.145895 -1.953275 +v 1.213076 9.430100 -1.953275 +v 0.857694 7.218983 19.361946 +v -1.550631 -8.362582 -1.129572 +v -1.550631 7.128137 4.054968 +v 1.550631 -8.362582 -1.129572 +v -0.580398 4.410827 8.504850 +v -0.957142 7.218984 7.609767 +v -0.708688 7.624437 -1.953275 +v -1.213076 7.218984 -1.953275 +v -0.702042 8.145895 -4.804955 +v -0.702042 8.145895 -4.804955 +v -0.450662 9.430100 -4.335177 +v -1.213076 8.145895 -4.804955 +v -0.450662 9.430100 -4.335177 +v -0.832096 -2.281892 2.617995 +v -1.373788 6.342138 19.361946 +v -1.373788 5.534110 19.361946 +v -1.159394 9.473121 5.890271 +v -1.159394 7.167400 11.908644 +v -1.018901 9.373809 5.890271 +v -0.372438 10.296735 5.890271 +v 1.159394 7.167400 5.890271 +v 1.159394 7.167400 11.908644 +v 0.666265 10.036926 11.908644 +v -1.018901 7.167400 5.890271 +v 2.253843 6.726052 -1.549974 +v -1.051770 0.676579 2.753111 +v 1.050937 0.595196 3.367662 +v -1.051770 1.087353 2.951361 +v -1.239158 -6.716357 -6.316617 +v -1.239158 -6.973311 -5.696272 +v -0.857694 7.218984 12.938878 +v -1.239158 -6.352968 -5.953228 +v 1.213076 7.218984 -1.953275 +v 0.580398 4.410827 8.504850 +v 1.051055 3.986079 11.231197 +v -1.051770 0.676579 2.753111 +v 1.050937 0.062500 3.588312 +v 1.373788 6.342138 19.361946 +v 1.425465 6.342138 12.470450 +v 1.425465 5.534111 12.470450 +v 1.582758 5.534110 18.331852 +v 1.051055 0.145062 11.660562 +v 1.051055 -0.223472 3.408138 +v 1.051055 4.834129 19.361946 +v -0.832096 -2.281892 2.617995 +v -0.832096 -2.992427 3.243009 +v 0.832096 -3.666983 2.980051 +v -0.832096 -3.666983 2.980051 +v 1.052369 3.020580 5.130578 +v 0.580398 3.410160 5.307025 +v 0.580398 5.143752 5.307025 +v 1.148529 -8.749960 -1.489985 +v 1.148529 7.218984 0.843372 +v 0.957142 7.218984 7.609767 +v -0.957142 7.863287 5.710876 +v 1.965886 6.807340 5.848534 +vt 0.359688 0.958662 +vt 0.362249 0.958669 +vt 0.362239 0.962551 +vt 0.331697 0.953329 +vt 0.359702 0.953407 +vt 0.351642 0.961259 +vt 0.811898 0.853744 +vt 0.802908 0.853744 +vt 0.802908 0.855453 +vt 0.510231 0.845136 +vt 0.505784 0.850420 +vt 0.501968 0.847202 +vt 0.501968 0.847202 +vt 0.477758 0.837077 +vt 0.479214 0.833341 +vt 0.823042 0.855453 +vt 0.823042 0.857179 +vt 0.827595 0.857179 +vt 0.802908 0.857179 +vt 0.811898 0.857179 +vt 0.796689 0.855453 +vt 0.811898 0.857179 +vt 0.813272 0.857179 +vt 0.813272 0.853744 +vt 0.827595 0.853744 +vt 0.826014 0.853744 +vt 0.826014 0.855453 +vt 0.520442 0.836072 +vt 0.524015 0.833150 +vt 0.535257 0.845043 +vt 0.827595 0.853744 +vt 0.827595 0.857179 +vt 0.833203 0.857179 +vt 0.897698 0.596442 +vt 0.896258 0.600185 +vt 0.920512 0.610205 +vt 0.823042 0.853744 +vt 0.813272 0.853744 +vt 0.813272 0.857179 +vt 0.516880 0.839562 +vt 0.528775 0.851703 +vt 0.521438 0.859613 +vt 0.833202 0.853744 +vt 0.833203 0.857179 +vt 0.834678 0.855453 +vt 0.790690 0.954682 +vt 0.780443 0.954656 +vt 0.785161 0.957230 +vt 0.422440 0.965570 +vt 0.450495 0.970002 +vt 0.505626 0.964699 +vt 0.503252 0.978629 +vt 0.508685 0.972269 +vt 0.260623 0.953127 +vt 0.205415 0.960844 +vt 0.177430 0.952890 +vt 0.260584 0.966567 +vt 0.205400 0.966410 +vt 0.790662 0.965283 +vt 0.939733 0.972563 +vt 0.945259 0.969952 +vt 0.939739 0.968680 +vt 0.597353 0.964711 +vt 0.600376 0.972295 +vt 0.594912 0.978629 +vt 0.542169 0.965022 +vt 0.508689 0.967750 +vt 0.507691 0.975401 +vt 0.185454 0.958168 +vt 0.785140 0.965268 +vt 0.949984 0.969959 +vt 0.949986 0.968695 +vt 0.599367 0.975424 +vt 0.542195 0.969746 +vt 0.331659 0.966768 +vt 0.278202 0.966617 +vt 0.278240 0.953177 +vt 0.264946 0.953139 +vt 0.264908 0.966579 +vt 0.269464 0.953153 +vt 0.269426 0.966592 +vt 0.272751 0.953162 +vt 0.272713 0.966602 +vt 0.331675 0.961203 +vt 0.177415 0.958145 +vt 0.359702 0.953407 +vt 0.364426 0.953420 +vt 0.364412 0.958675 +vt 0.968179 0.972572 +vt 0.957932 0.972563 +vt 0.957935 0.968680 +vt 0.794573 0.954693 +vt 0.790690 0.954682 +vt 0.790662 0.965283 +vt 0.804820 0.954720 +vt 0.794573 0.954693 +vt 0.794545 0.965293 +vt 0.516662 0.969893 +vt 0.516635 0.965166 +vt 0.536604 0.965056 +vt 0.536631 0.969780 +vt 0.536604 0.965056 +vt 0.542169 0.965022 +vt 0.422489 0.970295 +vt 0.185446 0.960788 +vt 0.780437 0.957218 +vt 0.945255 0.972571 +vt 0.600401 0.967777 +vt 0.035908 0.941334 +vt 0.035908 0.941635 +vt 0.054072 0.941633 +vt 0.370583 0.810248 +vt 0.374948 0.806042 +vt 0.367858 0.802066 +vt 0.164734 0.678016 +vt 0.213982 0.678118 +vt 0.257519 0.683519 +vt 0.015729 0.600923 +vt 0.122051 0.606551 +vt 0.015721 0.606392 +vt 0.370634 0.800249 +vt 0.812069 0.443349 +vt 0.825366 0.443346 +vt 0.812071 0.451175 +vt 0.842764 0.448237 +vt 0.838841 0.451170 +vt 0.837618 0.443344 +vt 0.051468 0.951958 +vt 0.051191 0.952073 +vt 0.051240 0.952323 +vt 0.035954 0.945310 +vt 0.035954 0.944910 +vt 0.054117 0.944908 +vt 0.053269 0.945680 +vt 0.052868 0.945681 +vt 0.052918 0.945431 +vt 0.035908 0.941935 +vt 0.054072 0.941933 +vt 0.051191 0.945097 +vt 0.050890 0.945097 +vt 0.050841 0.945347 +vt 0.035954 0.944510 +vt 0.054117 0.944508 +vt 0.052499 0.945529 +vt 0.052640 0.945316 +vt 0.035908 0.942235 +vt 0.054072 0.942234 +vt 0.050890 0.952073 +vt 0.050613 0.951958 +vt 0.050471 0.952170 +vt 0.035954 0.944110 +vt 0.054117 0.944108 +vt 0.052215 0.945246 +vt 0.052428 0.945104 +vt 0.035908 0.942536 +vt 0.054072 0.942534 +vt 0.050400 0.951745 +vt 0.050188 0.951887 +vt 0.036076 0.944336 +vt 0.036076 0.943936 +vt 0.054239 0.943934 +vt 0.052062 0.944877 +vt 0.052312 0.944827 +vt 0.035908 0.937730 +vt 0.035908 0.938031 +vt 0.054072 0.938027 +vt 0.050286 0.951468 +vt 0.050035 0.951517 +vt 0.035954 0.943134 +vt 0.035954 0.942734 +vt 0.054117 0.942732 +vt 0.052061 0.944477 +vt 0.052312 0.944526 +vt 0.035908 0.945006 +vt 0.035908 0.945307 +vt 0.054072 0.945304 +vt 0.050286 0.951167 +vt 0.050035 0.951117 +vt 0.035954 0.942334 +vt 0.054117 0.942332 +vt 0.052214 0.944107 +vt 0.052426 0.944249 +vt 0.035908 0.945607 +vt 0.054072 0.945604 +vt 0.050401 0.950890 +vt 0.050188 0.950748 +vt 0.035954 0.941934 +vt 0.054117 0.941932 +vt 0.052496 0.943824 +vt 0.052638 0.944036 +vt 0.035908 0.938631 +vt 0.035908 0.938932 +vt 0.054072 0.938929 +vt 0.050613 0.950677 +vt 0.050471 0.950465 +vt 0.035954 0.941534 +vt 0.054117 0.941532 +vt 0.052865 0.943670 +vt 0.052915 0.943920 +vt 0.035908 0.939232 +vt 0.054072 0.939229 +vt 0.050891 0.950562 +vt 0.050841 0.950312 +vt 0.035954 0.941134 +vt 0.054117 0.941132 +vt 0.053265 0.943670 +vt 0.053216 0.943920 +vt 0.035908 0.939532 +vt 0.054072 0.939530 +vt 0.051191 0.950562 +vt 0.051241 0.950312 +vt 0.035954 0.940734 +vt 0.054117 0.940732 +vt 0.053635 0.943822 +vt 0.053494 0.944035 +vt 0.035908 0.939833 +vt 0.054072 0.939830 +vt 0.051468 0.950678 +vt 0.051610 0.950465 +vt 0.035954 0.940334 +vt 0.054117 0.940332 +vt 0.053918 0.944104 +vt 0.053706 0.944247 +vt 0.035908 0.940133 +vt 0.054072 0.940130 +vt 0.051681 0.950890 +vt 0.051893 0.950748 +vt 0.035954 0.939934 +vt 0.054117 0.939932 +vt 0.054072 0.944474 +vt 0.053822 0.944524 +vt 0.035908 0.940433 +vt 0.054072 0.940431 +vt 0.051796 0.951167 +vt 0.052046 0.951118 +vt 0.035954 0.946910 +vt 0.035954 0.946510 +vt 0.054117 0.946508 +vt 0.054073 0.944874 +vt 0.053822 0.944824 +vt 0.035908 0.940734 +vt 0.054072 0.940731 +vt 0.051796 0.951468 +vt 0.052046 0.951518 +vt 0.035954 0.946110 +vt 0.054117 0.946108 +vt 0.053920 0.945244 +vt 0.053708 0.945102 +vt 0.035908 0.941034 +vt 0.054072 0.941032 +vt 0.051681 0.951746 +vt 0.051893 0.951887 +vt 0.035954 0.945710 +vt 0.054117 0.945708 +vt 0.053638 0.945527 +vt 0.053496 0.945315 +vt 0.054072 0.941332 +vt 0.051610 0.952170 +vt 0.054117 0.945308 +vt 0.053218 0.945430 +vt 0.395541 0.956521 +vt 0.399095 0.962729 +vt 0.398106 0.962988 +vt 0.399068 0.969883 +vt 0.398081 0.969613 +vt 0.395468 0.976063 +vt 0.394748 0.975338 +vt 0.389257 0.979614 +vt 0.388998 0.978628 +vt 0.382104 0.979585 +vt 0.382373 0.978601 +vt 0.375923 0.975984 +vt 0.376648 0.975264 +vt 0.372372 0.969775 +vt 0.373359 0.969515 +vt 0.372399 0.962623 +vt 0.373386 0.962892 +vt 0.375999 0.956443 +vt 0.376720 0.957167 +vt 0.382206 0.952890 +vt 0.382469 0.953878 +vt 0.389360 0.952919 +vt 0.389091 0.953904 +vt 0.394817 0.957240 +vt 0.838965 0.931013 +vt 0.832339 0.930980 +vt 0.832314 0.936076 +vt 0.337664 0.995947 +vt 0.344817 0.995957 +vt 0.344820 0.994249 +vt 0.253929 0.963378 +vt 0.253961 0.970006 +vt 0.241579 0.966752 +vt 0.845592 0.931046 +vt 0.838941 0.936108 +vt 0.351970 0.995967 +vt 0.351972 0.994259 +vt 0.250678 0.975761 +vt 0.852219 0.931079 +vt 0.845567 0.936141 +vt 0.359124 0.995976 +vt 0.359126 0.994268 +vt 0.244954 0.979102 +vt 0.779328 0.930717 +vt 0.772701 0.930684 +vt 0.772676 0.935780 +vt 0.366278 0.995986 +vt 0.366281 0.994278 +vt 0.238328 0.979135 +vt 0.785955 0.930750 +vt 0.779303 0.935813 +vt 0.373434 0.995995 +vt 0.373437 0.994286 +vt 0.232572 0.975848 +vt 0.792581 0.930783 +vt 0.785929 0.935845 +vt 0.380592 0.996004 +vt 0.380594 0.994295 +vt 0.229232 0.970128 +vt 0.799208 0.930816 +vt 0.792556 0.935878 +vt 0.387750 0.996012 +vt 0.387752 0.994303 +vt 0.229199 0.963502 +vt 0.805834 0.930849 +vt 0.799183 0.935911 +vt 0.394910 0.996020 +vt 0.394911 0.994310 +vt 0.232484 0.957745 +vt 0.812460 0.930881 +vt 0.805809 0.935944 +vt 0.402070 0.996027 +vt 0.402072 0.994318 +vt 0.238206 0.954406 +vt 0.819087 0.930915 +vt 0.812435 0.935977 +vt 0.316208 0.995915 +vt 0.323359 0.995926 +vt 0.323362 0.994218 +vt 0.244832 0.954373 +vt 0.825713 0.930947 +vt 0.819061 0.936010 +vt 0.330512 0.995936 +vt 0.330514 0.994229 +vt 0.250586 0.957656 +vt 0.825687 0.936043 +vt 0.337666 0.994239 +vt 0.295338 0.103287 +vt 0.295221 0.104723 +vt 0.293302 0.103617 +vt 0.409234 0.135866 +vt 0.410611 0.137862 +vt 0.319804 0.145507 +vt 0.309657 0.110962 +vt 0.309823 0.112593 +vt 0.306707 0.110882 +vt 0.328674 0.137629 +vt 0.404333 0.130464 +vt 0.328247 0.138878 +vt 0.319775 0.144719 +vt 0.317240 0.144505 +vt 0.322554 0.143866 +vt 0.403938 0.100755 +vt 0.405721 0.101225 +vt 0.404279 0.105677 +vt 0.403791 0.098527 +vt 0.405876 0.098902 +vt 0.309891 0.106421 +vt 0.290334 0.107950 +vt 0.287801 0.103905 +vt 0.286363 0.106300 +vt 0.286167 0.102470 +vt 0.292374 0.100537 +vt 0.407173 0.108601 +vt 0.404441 0.107178 +vt 0.407718 0.109926 +vt 0.407977 0.107246 +vt 0.328434 0.133594 +vt 0.314711 0.143246 +vt 0.316677 0.139029 +vt 0.312958 0.141183 +vt 0.317532 0.135389 +vt 0.312794 0.139989 +vt 0.319955 0.127728 +vt 0.319269 0.131437 +vt 0.317360 0.129659 +vt 0.314226 0.135381 +vt 0.319718 0.142303 +vt 0.322593 0.139719 +vt 0.327219 0.140192 +vt 0.325454 0.142462 +vt 0.324800 0.135588 +vt 0.325027 0.127340 +vt 0.327174 0.129527 +vt 0.325386 0.131443 +vt 0.319686 0.138706 +vt 0.322039 0.131554 +vt 0.321220 0.135209 +vt 0.322767 0.126903 +vt 0.288842 0.142654 +vt 0.286523 0.140196 +vt 0.288488 0.144289 +vt 0.296744 0.105669 +vt 0.303415 0.111921 +vt 0.297301 0.104416 +vt 0.408817 0.109428 +vt 0.407352 0.130669 +vt 0.405962 0.129635 +vt 0.306196 0.112876 +vt 0.293525 0.104978 +vt 0.291353 0.108873 +vt 0.281673 0.142822 +vt 0.285169 0.140549 +vt 0.279556 0.143871 +vt 0.286951 0.148225 +vt 0.288440 0.150917 +vt 0.286064 0.150224 +vt 0.410802 0.134669 +vt 0.405654 0.131658 +vt 0.200676 0.976738 +vt 0.198506 0.962311 +vt 0.206953 0.963581 +vt 0.177491 0.953870 +vt 0.174541 0.955967 +vt 0.174214 0.955054 +vt 0.179011 0.950603 +vt 0.176755 0.953254 +vt 0.170974 0.956250 +vt 0.171141 0.955319 +vt 0.178740 0.946996 +vt 0.178071 0.950430 +vt 0.176717 0.943925 +vt 0.177824 0.947310 +vt 0.167756 0.954771 +vt 0.168348 0.954049 +vt 0.173219 0.942341 +vt 0.176033 0.944690 +vt 0.169417 0.942815 +vt 0.173064 0.943346 +vt 0.165672 0.951916 +vt 0.166544 0.951571 +vt 0.166596 0.945097 +vt 0.169843 0.943734 +vt 0.165246 0.948395 +vt 0.167364 0.945664 +vt 0.166181 0.948525 +vt 0.178034 0.954320 +vt 0.174785 0.956657 +vt 0.174541 0.955967 +vt 0.179705 0.950732 +vt 0.177491 0.953870 +vt 0.170851 0.956935 +vt 0.170974 0.956250 +vt 0.179415 0.946774 +vt 0.179011 0.950603 +vt 0.177257 0.943358 +vt 0.178740 0.946996 +vt 0.167318 0.955307 +vt 0.167756 0.954771 +vt 0.173333 0.941582 +vt 0.176717 0.943925 +vt 0.169069 0.942125 +vt 0.173219 0.942341 +vt 0.165031 0.952168 +vt 0.165672 0.951916 +vt 0.166033 0.944684 +vt 0.169417 0.942815 +vt 0.164562 0.948303 +vt 0.166596 0.945097 +vt 0.165246 0.948395 +vt 0.507413 0.952649 +vt 0.505313 0.947007 +vt 0.509953 0.950848 +vt 0.813137 0.936030 +vt 0.816999 0.936042 +vt 0.817012 0.931590 +vt 0.809275 0.936018 +vt 0.813150 0.931578 +vt 0.511269 0.948024 +vt 0.820861 0.936053 +vt 0.820874 0.931600 +vt 0.504339 0.952914 +vt 0.511023 0.944905 +vt 0.824723 0.936065 +vt 0.824738 0.931614 +vt 0.805411 0.936006 +vt 0.809288 0.931566 +vt 0.509232 0.942284 +vt 0.828587 0.936077 +vt 0.828600 0.931624 +vt 0.501546 0.951644 +vt 0.506263 0.940940 +vt 0.789963 0.935960 +vt 0.789976 0.931508 +vt 0.776758 0.931469 +vt 0.801550 0.935995 +vt 0.805426 0.931555 +vt 0.503041 0.941329 +vt 0.770442 0.935901 +vt 0.773938 0.935912 +vt 0.773952 0.931460 +vt 0.499743 0.949165 +vt 0.500563 0.943259 +vt 0.793825 0.935972 +vt 0.793838 0.931519 +vt 0.797687 0.935984 +vt 0.801564 0.931543 +vt 0.499379 0.946119 +vt 0.797702 0.931532 +vt 0.776744 0.935920 +vt 0.196413 0.977281 +vt 0.841807 0.936117 +vt 0.767649 0.931441 +vt 0.767636 0.935893 +vt 0.179609 0.928425 +vt 0.171162 0.927155 +vt 0.173740 0.925126 +vt 0.204601 0.978514 +vt 0.267733 0.946344 +vt 0.264866 0.947523 +vt 0.267728 0.948720 +vt 0.113559 0.986588 +vt 0.113545 0.988963 +vt 0.169391 0.989268 +vt 0.912369 0.968520 +vt 0.914046 0.966837 +vt 0.915237 0.969701 +vt 0.266045 0.950393 +vt 0.113533 0.991338 +vt 0.169378 0.991642 +vt 0.916421 0.966832 +vt 0.263670 0.950389 +vt 0.113520 0.993713 +vt 0.169365 0.994017 +vt 0.918104 0.968508 +vt 0.261993 0.948704 +vt 0.113623 0.974714 +vt 0.113610 0.977089 +vt 0.169456 0.977394 +vt 0.918104 0.970883 +vt 0.262000 0.946331 +vt 0.113597 0.979464 +vt 0.169443 0.979768 +vt 0.916433 0.972566 +vt 0.263683 0.944656 +vt 0.113584 0.981839 +vt 0.169430 0.982143 +vt 0.278275 0.840654 +vt 0.280295 0.842503 +vt 0.278989 0.832199 +vt 0.914053 0.972571 +vt 0.266059 0.944661 +vt 0.369894 0.831101 +vt 0.113571 0.984213 +vt 0.169417 0.984518 +vt 0.912375 0.970895 +vt 0.467682 0.428415 +vt 0.467409 0.426444 +vt 0.466533 0.426181 +vt 0.468381 0.429055 +vt 0.466914 0.428943 +vt 0.169404 0.986893 +vt 0.920370 0.565509 +vt 0.944401 0.554243 +vt 0.896376 0.554167 +vt 0.897668 0.571337 +vt 0.920362 0.571097 +vt 0.277841 0.781228 +vt 0.285343 0.783006 +vt 0.281869 0.774704 +vt 0.160089 0.800284 +vt 0.159623 0.798905 +vt 0.163138 0.795437 +vt 0.479286 0.894667 +vt 0.489683 0.897471 +vt 0.480471 0.884403 +vt 0.467929 0.425487 +vt 0.467205 0.425127 +vt 0.477729 0.848052 +vt 0.472954 0.850913 +vt 0.479582 0.858578 +vt 0.157244 0.800156 +vt 0.467929 0.425487 +vt 0.498939 0.421464 +vt 0.494112 0.421021 +vt 0.147537 0.667691 +vt 0.138873 0.673114 +vt 0.147618 0.628731 +vt 0.133643 0.683264 +vt 0.155132 0.676881 +vt 0.525965 0.426373 +vt 0.523581 0.425654 +vt 0.523015 0.509761 +vt 0.465526 0.858808 +vt 0.481265 0.779540 +vt 0.480607 0.772219 +vt 0.431532 0.784011 +vt 0.379766 0.803761 +vt 0.488548 0.791601 +vt 0.479552 0.788234 +vt 0.488196 0.788828 +vt 0.816605 0.798274 +vt 0.800394 0.810525 +vt 0.816251 0.807239 +vt 0.503573 0.417403 +vt 0.502943 0.507827 +vt 0.397927 0.482081 +vt 0.364284 0.482080 +vt 0.347740 0.489217 +vt 0.283364 0.770711 +vt 0.524484 0.428283 +vt 0.525220 0.427780 +vt 0.524484 0.428095 +vt 0.372721 0.781916 +vt 0.523960 0.436055 +vt 0.499903 0.435989 +vt 0.509939 0.437367 +vt 0.524487 0.427059 +vt 0.631458 0.968590 +vt 0.631414 0.976488 +vt 0.650864 0.980618 +vt 0.623508 0.976194 +vt 0.617333 0.980879 +vt 0.623551 0.968546 +vt 0.617403 0.968511 +vt 0.536680 0.427704 +vt 0.532638 0.428317 +vt 0.536677 0.429055 +vt 0.505929 0.440946 +vt 0.506151 0.441448 +vt 0.507140 0.440872 +vt 0.274031 0.781088 +vt 0.277202 0.779388 +vt 0.476868 0.846792 +vt 0.471771 0.849575 +vt 0.478536 0.895923 +vt 0.474524 0.892209 +vt 0.226741 0.668989 +vt 0.230965 0.658537 +vt 0.249203 0.663617 +vt 0.232711 0.644999 +vt 0.231484 0.634255 +vt 0.229111 0.615665 +vt 0.344606 0.838417 +vt 0.341288 0.844146 +vt 0.348270 0.846461 +vt 0.365181 0.805114 +vt 0.347197 0.834015 +vt 0.354449 0.835871 +vt 0.213549 0.839343 +vt 0.212248 0.841388 +vt 0.206815 0.848170 +vt 0.278298 0.859067 +vt 0.305848 0.811373 +vt 0.341603 0.836850 +vt 0.341929 0.834401 +vt 0.344203 0.833531 +vt 0.330160 0.776947 +vt 0.462094 0.867217 +vt 0.461172 0.865919 +vt 0.460357 0.872288 +vt 0.542334 0.734232 +vt 0.542982 0.739274 +vt 0.542761 0.725538 +vt 0.612699 0.710711 +vt 0.608902 0.708625 +vt 0.613102 0.701990 +vt 0.528420 0.748113 +vt 0.532710 0.740699 +vt 0.528989 0.736149 +vt 0.546000 0.748127 +vt 0.535991 0.743464 +vt 0.538550 0.732135 +vt 0.536918 0.728310 +vt 0.534592 0.733283 +vt 0.531071 0.731273 +vt 0.532323 0.736601 +vt 0.598796 0.724641 +vt 0.606324 0.719957 +vt 0.616313 0.724533 +vt 0.602661 0.713126 +vt 0.603047 0.717217 +vt 0.599324 0.712678 +vt 0.604936 0.709796 +vt 0.601402 0.707792 +vt 0.607249 0.704798 +vt 0.613286 0.715728 +vt 0.540303 0.742946 +vt 0.610621 0.719398 +vt 0.532048 0.427799 +vt 0.308951 0.916386 +vt 0.308804 0.907417 +vt 0.306065 0.921446 +vt 0.262659 0.892397 +vt 0.259718 0.898761 +vt 0.262865 0.887867 +vt 0.309964 0.899927 +vt 0.259034 0.884614 +vt 0.268399 0.867508 +vt 0.464315 0.872081 +vt 0.461623 0.872221 +vt 0.520840 0.428085 +vt 0.512013 0.428226 +vt 0.944412 0.546931 +vt 0.938804 0.546922 +vt 0.305612 0.799576 +vt 0.301983 0.792453 +vt 0.533427 0.430789 +vt 0.529482 0.430804 +vt 0.528712 0.432934 +vt 0.516798 0.838874 +vt 0.502642 0.840441 +vt 0.512413 0.853965 +vt 0.937195 0.583071 +vt 0.943054 0.571410 +vt 0.294765 0.785732 +vt 0.415487 0.757689 +vt 0.372231 0.763177 +vt 0.415472 0.763294 +vt 0.931076 0.540758 +vt 0.931073 0.532847 +vt 0.926803 0.522223 +vt 0.717079 0.850025 +vt 0.697889 0.850599 +vt 0.717428 0.855838 +vt 0.613102 0.701990 +vt 0.607249 0.704798 +vt 0.604947 0.699432 +vt 0.592611 0.724172 +vt 0.593958 0.711478 +vt 0.599324 0.712678 +vt 0.597415 0.704236 +vt 0.312958 0.141183 +vt 0.288488 0.144289 +vt 0.288507 0.148770 +vt 0.317240 0.144505 +vt 0.314711 0.143246 +vt 0.319804 0.145507 +vt 0.325454 0.142462 +vt 0.322554 0.143866 +vt 0.409234 0.135866 +vt 0.327219 0.140192 +vt 0.328247 0.138878 +vt 0.405721 0.101225 +vt 0.404279 0.105677 +vt 0.407977 0.107246 +vt 0.413761 0.103579 +vt 0.405876 0.098902 +vt 0.306707 0.110882 +vt 0.309657 0.110962 +vt 0.309891 0.106421 +vt 0.304331 0.110232 +vt 0.306789 0.105923 +vt 0.297301 0.104416 +vt 0.304667 0.104836 +vt 0.295338 0.103287 +vt 0.297557 0.100926 +vt 0.293302 0.103617 +vt 0.294488 0.100201 +vt 0.286363 0.106300 +vt 0.281002 0.141297 +vt 0.285169 0.140549 +vt 0.305962 0.103033 +vt 0.298304 0.099009 +vt 0.294755 0.098165 +vt 0.291840 0.098506 +vt 0.292374 0.100537 +vt 0.307621 0.103550 +vt 0.309891 0.106421 +vt 0.303415 0.111921 +vt 0.306196 0.112876 +vt 0.407352 0.130669 +vt 0.405962 0.129635 +vt 0.405654 0.131658 +vt 0.411997 0.105183 +vt 0.290334 0.107950 +vt 0.310018 0.103888 +vt 0.288440 0.150917 +vt 0.410611 0.137862 +vt 0.309823 0.112593 +vt 0.404333 0.130464 +vt 0.403938 0.100755 +vt 0.287801 0.103905 +vt 0.286167 0.102470 +vt 0.291353 0.108873 +vt 0.293525 0.104978 +vt 0.286523 0.140196 +vt 0.295221 0.104723 +vt 0.467771 0.862417 +vt 0.497984 0.436373 +vt 0.497981 0.437334 +vt 0.466787 0.885072 +vt 0.462614 0.877138 +vt 0.468717 0.881368 +vt 0.914272 0.546883 +vt 0.901996 0.546863 +vt 0.498218 0.886038 +vt 0.530203 0.432638 +vt 0.530198 0.431479 +vt 0.530971 0.430508 +vt 0.530207 0.434348 +vt 0.534930 0.434344 +vt 0.534933 0.435180 +vt 0.534933 0.435180 +vt 0.534935 0.435851 +vt 0.530211 0.435865 +vt 0.741145 0.587771 +vt 0.741138 0.579863 +vt 0.784380 0.579822 +vt 0.784380 0.579822 +vt 0.741138 0.579863 +vt 0.741104 0.572114 +vt 0.536277 0.431807 +vt 0.536268 0.430545 +vt 0.532323 0.430534 +vt 0.896388 0.546854 +vt 0.912374 0.587741 +vt 0.920334 0.588416 +vt 0.903490 0.583017 +vt 0.896258 0.565379 +vt 0.926528 0.546902 +vt 0.536670 0.431723 +vt 0.541392 0.432348 +vt 0.541394 0.431735 +vt 0.909744 0.540724 +vt 0.914078 0.522204 +vt 0.902006 0.540711 +vt 0.902038 0.522185 +vt 0.902020 0.532800 +vt 0.909773 0.532813 +vt 0.913623 0.510828 +vt 0.902057 0.510809 +vt 0.532631 0.431088 +vt 0.536673 0.430372 +vt 0.944483 0.565456 +vt 0.180820 0.822971 +vt 0.225631 0.818815 +vt 0.178050 0.808817 +vt 0.172700 0.803752 +vt 0.199189 0.797410 +vt 0.227672 0.816516 +vt 0.038689 0.814747 +vt 0.082486 0.817672 +vt 0.037050 0.828634 +vt 0.119684 0.819896 +vt 0.083750 0.821563 +vt 0.229782 0.815148 +vt 0.231420 0.801261 +vt 0.180716 0.814159 +vt 0.164279 0.792464 +vt 0.083280 0.816529 +vt 0.082798 0.820883 +vt 0.499887 0.441882 +vt 0.523943 0.441948 +vt 0.509930 0.440560 +vt 0.525209 0.431585 +vt 0.524475 0.431266 +vt 0.524472 0.432302 +vt 0.497973 0.440527 +vt 0.497970 0.441488 +vt 0.519850 0.440772 +vt 0.532038 0.431603 +vt 0.523038 0.431262 +vt 0.520831 0.431256 +vt 0.507889 0.443620 +vt 0.508686 0.443623 +vt 0.508723 0.431665 +vt 0.504603 0.443610 +vt 0.507926 0.431663 +vt 0.410802 0.134669 +vt 0.413032 0.107126 +vt 0.415337 0.106231 +vt 0.412617 0.135954 +vt 0.411997 0.105183 +vt 0.281002 0.141297 +vt 0.284455 0.105100 +vt 0.309891 0.106421 +vt 0.310018 0.103888 +vt 0.288507 0.148770 +vt 0.304331 0.110232 +vt 0.413761 0.103579 +vt 0.306789 0.105923 +vt 0.304667 0.104836 +vt 0.297557 0.100926 +vt 0.294488 0.100201 +vt 0.305962 0.103033 +vt 0.298304 0.099009 +vt 0.294755 0.098165 +vt 0.291840 0.098506 +vt 0.307621 0.103550 +vt 0.328674 0.137629 +vt 0.319775 0.144719 +vt 0.403791 0.098527 +vt 0.407173 0.108601 +vt 0.407718 0.109926 +vt 0.408817 0.109428 +vt 0.328434 0.133594 +vt 0.316677 0.139029 +vt 0.317532 0.135389 +vt 0.314226 0.135381 +vt 0.312794 0.139989 +vt 0.319269 0.131437 +vt 0.319955 0.127728 +vt 0.317360 0.129659 +vt 0.319718 0.142303 +vt 0.322593 0.139719 +vt 0.324800 0.135588 +vt 0.325386 0.131443 +vt 0.327174 0.129527 +vt 0.325027 0.127340 +vt 0.319686 0.138706 +vt 0.322039 0.131554 +vt 0.321220 0.135209 +vt 0.322767 0.126903 +vt 0.288842 0.142654 +vt 0.296744 0.105669 +vt 0.404441 0.107178 +vt 0.281673 0.142822 +vt 0.286951 0.148225 +vt 0.279556 0.143871 +vt 0.286064 0.150224 +vt 0.410802 0.134669 +vt 0.412617 0.135954 +vt 0.410802 0.134669 +vt 0.413032 0.107126 +vt 0.415337 0.106231 +vt 0.284455 0.105100 +vt 0.278808 0.141349 +vt 0.601402 0.707792 +vt 0.464288 0.857946 +vt 0.430491 0.785523 +vt 0.430922 0.789755 +vt 0.525633 0.853031 +vt 0.527890 0.837636 +vt 0.488410 0.844488 +vt 0.497813 0.855843 +vt 0.547036 0.854081 +vt 0.545883 0.836789 +vt 0.642072 0.855004 +vt 0.644582 0.840304 +vt 0.664836 0.856850 +vt 0.665550 0.844082 +vt 0.696641 0.843246 +vt 0.541561 0.435406 +vt 0.541562 0.439068 +vt 0.537616 0.435406 +vt 0.818748 0.813198 +vt 0.834622 0.844873 +vt 0.541397 0.430395 +vt 0.819014 0.791969 +vt 0.520041 0.434440 +vt 0.516080 0.430794 +vt 0.515306 0.431766 +vt 0.541405 0.427105 +vt 0.511643 0.443632 +vt 0.511681 0.431675 +vt 0.510884 0.431672 +vt 0.507074 0.443643 +vt 0.507113 0.431685 +vt 0.503826 0.431675 +vt 0.510646 0.441203 +vt 0.506151 0.441448 +vt 0.507810 0.441837 +vt 0.507140 0.440872 +vt 0.528708 0.431775 +vt 0.528715 0.434644 +vt 0.528717 0.435489 +vt 0.533441 0.435479 +vt 0.533441 0.435479 +vt 0.528717 0.435489 +vt 0.528719 0.436161 +vt 0.067244 0.893667 +vt 0.062278 0.889043 +vt 0.041841 0.899568 +vt 0.528715 0.434644 +vt 0.533439 0.434643 +vt 0.533438 0.433779 +vt 0.420110 0.482081 +vt 0.413360 0.482081 +vt 0.413362 0.489218 +vt 0.404388 0.489218 +vt 0.404388 0.482081 +vt 0.397926 0.489218 +vt 0.786497 0.853755 +vt 0.783792 0.853765 +vt 0.783848 0.868579 +vt 0.426594 0.489238 +vt 0.479489 0.785493 +vt 0.432181 0.790646 +vt 0.479552 0.788234 +vt 0.138986 0.619442 +vt 0.527793 0.430554 +vt 0.523847 0.430532 +vt 0.523840 0.431833 +vt 0.155225 0.616260 +vt 0.163798 0.613046 +vt 0.215285 0.601246 +vt 0.213992 0.613134 +vt 0.222920 0.607011 +vt 0.219973 0.615583 +vt 0.213518 0.848409 +vt 0.212031 0.850131 +vt 0.212061 0.844251 +vt 0.149944 0.672461 +vt 0.149575 0.621583 +vt 0.226063 0.622177 +vt 0.220370 0.675456 +vt 0.132351 0.677672 +vt 0.536839 0.439070 +vt 0.536838 0.436375 +vt 0.843786 0.455374 +vt 0.938814 0.540771 +vt 0.938843 0.522242 +vt 0.938861 0.510866 +vt 0.928295 0.587766 +vt 0.316290 0.909189 +vt 0.317939 0.901895 +vt 0.312259 0.924673 +vt 0.315534 0.918706 +vt 0.185045 0.846782 +vt 0.151621 0.850208 +vt 0.258963 0.849871 +vt 0.693736 0.480570 +vt 0.706500 0.473447 +vt 0.706497 0.462469 +vt 0.767028 0.809971 +vt 0.762580 0.817109 +vt 0.761558 0.809972 +vt 0.467778 0.429604 +vt 0.494848 0.426750 +vt 0.499402 0.425107 +vt 0.489382 0.771430 +vt 0.488196 0.788828 +vt 0.510766 0.435967 +vt 0.510768 0.435484 +vt 0.512152 0.435975 +vt 0.510395 0.436275 +vt 0.512519 0.436286 +vt 0.512701 0.435978 +vt 0.510217 0.435965 +vt 0.503404 0.438795 +vt 0.503403 0.439344 +vt 0.514607 0.439360 +vt 0.503395 0.445030 +vt 0.514599 0.445047 +vt 0.514605 0.440754 +vt 0.458385 0.056417 +vt 0.424924 0.056311 +vt 0.423411 0.058436 +vt 0.509540 0.441305 +vt 0.509278 0.441304 +vt 0.509296 0.437010 +vt 0.417408 0.049490 +vt 0.414883 0.050932 +vt 0.508711 0.419461 +vt 0.504603 0.419473 +vt 0.504635 0.430677 +vt 0.508743 0.430665 +vt 0.509989 0.430662 +vt 0.515352 0.424554 +vt 0.513966 0.424552 +vt 0.513960 0.428667 +vt 0.513321 0.441323 +vt 0.513348 0.437216 +vt 0.513611 0.437033 +vt 0.513479 0.428610 +vt 0.513960 0.428667 +vt 0.513966 0.424552 +vt 0.503406 0.437409 +vt 0.507493 0.437415 +vt 0.514611 0.436879 +vt 0.503416 0.431174 +vt 0.503409 0.435467 +vt 0.514613 0.435484 +vt 0.458463 0.025487 +vt 0.458468 0.023357 +vt 0.423510 0.023271 +vt 0.417457 0.032182 +vt 0.425010 0.025404 +vt 0.503407 0.436860 +vt 0.513327 0.419448 +vt 0.513359 0.430652 +vt 0.517467 0.430640 +vt 0.507491 0.438802 +vt 0.515346 0.428669 +vt 0.515827 0.428613 +vt 0.515352 0.424554 +vt 0.512081 0.419451 +vt 0.512113 0.430656 +vt 0.509957 0.419458 +vt 0.512155 0.435491 +vt 0.924937 0.604905 +vt 0.823042 0.855453 +vt 0.510231 0.845136 +vt 0.834678 0.853744 +vt 0.936206 0.619330 +vt 0.946414 0.608213 +vt 0.838373 0.855453 +vt 0.838373 0.857178 +vt 0.935119 0.596362 +vt 0.823042 0.857179 +vt 0.505784 0.850420 +vt 0.528775 0.851703 +vt 0.516880 0.839562 +vt 0.520442 0.836072 +vt 0.252649 0.671850 +vt 0.216060 0.837967 +vt 0.688976 0.721051 +vt 0.688964 0.729778 +vt 0.693650 0.729782 +vt 0.987930 0.703465 +vt 0.987937 0.709256 +vt 0.996010 0.707585 +vt 0.100906 0.686438 +vt 0.107408 0.671030 +vt 0.128190 0.674115 +vt 0.115506 0.667738 +vt 0.995866 0.719402 +vt 0.144996 0.693831 +vt 0.101437 0.698854 +vt 0.138634 0.691115 +vt 0.220429 0.837505 +vt 0.100946 0.680329 +vt 0.693601 0.747407 +vt 0.695654 0.741310 +vt 0.688953 0.741304 +vt 0.995821 0.679724 +vt 0.987837 0.689859 +vt 0.987873 0.695057 +vt 0.104197 0.694536 +vt 0.132322 0.684597 +vt 0.103059 0.675321 +vt 0.632078 0.866868 +vt 0.594498 0.866868 +vt 0.594498 0.862650 +vt 0.594498 0.854215 +vt 0.632078 0.854215 +vt 0.632078 0.858432 +vt 0.203347 0.487944 +vt 0.165767 0.487944 +vt 0.165767 0.483727 +vt 0.166763 0.745860 +vt 0.204344 0.745860 +vt 0.204344 0.750077 +vt 0.130247 0.889012 +vt 0.125486 0.893737 +vt 0.132258 0.895120 +vt 0.500600 0.507658 +vt 0.129961 0.900327 +vt 0.153438 0.891133 +vt 0.148662 0.895139 +vt 0.509791 0.440921 +vt 0.506598 0.440935 +vt 0.506583 0.437649 +vt 0.509277 0.441530 +vt 0.507117 0.441540 +vt 0.520025 0.430778 +vt 0.032914 0.892147 +vt 0.510846 0.443630 +vt 0.515317 0.434461 +vt 0.632078 0.862650 +vt 0.166763 0.741642 +vt 0.204344 0.741642 +vt 0.204344 0.754295 +vt 0.166763 0.754295 +vt 0.204344 0.737425 +vt 0.506125 0.436830 +vt 0.505931 0.437397 +vt 0.507183 0.437514 +vt 0.701232 0.980835 +vt 0.701178 0.973187 +vt 0.694996 0.968511 +vt 0.709083 0.972881 +vt 0.728527 0.968723 +vt 0.709139 0.980778 +vt 0.728612 0.980639 +vt 0.523046 0.428091 +vt 0.120536 0.807751 +vt 0.524476 0.431078 +vt 0.165680 0.801658 +vt 0.397927 0.464479 +vt 0.397927 0.457342 +vt 0.347741 0.457341 +vt 0.842467 0.852745 +vt 0.834622 0.844873 +vt 0.822154 0.857297 +vt 0.787926 0.822949 +vt 0.775618 0.839118 +vt 0.784584 0.838795 +vt 0.119684 0.819896 +vt 0.126237 0.820376 +vt 0.126494 0.822480 +vt 0.043968 0.831329 +vt 0.037050 0.828634 +vt 0.121011 0.813305 +vt 0.377326 0.801464 +vt 0.377276 0.833340 +vt 0.398558 0.833373 +vt 0.338586 0.489217 +vt 0.225253 0.699679 +vt 0.194218 0.694159 +vt 0.203825 0.693107 +vt 0.264472 0.671874 +vt 0.264488 0.663647 +vt 0.268153 0.665649 +vt 0.688940 0.756131 +vt 0.689025 0.756305 +vt 0.693601 0.747407 +vt 0.987901 0.699231 +vt 0.995953 0.699177 +vt 0.220114 0.689486 +vt 0.211500 0.683987 +vt 0.211760 0.645028 +vt 0.468430 0.425751 +vt 0.467704 0.425373 +vt 0.494826 0.421949 +vt 0.467887 0.426702 +vt 0.467013 0.426422 +vt 0.467704 0.425373 +vt 0.468799 0.429341 +vt 0.468185 0.429873 +vt 0.467346 0.429192 +vt 0.468121 0.428683 +vt 0.231220 0.830499 +vt 0.321420 0.821180 +vt 0.322517 0.831775 +vt 0.230329 0.838968 +vt 0.229651 0.833246 +vt 0.842765 0.480112 +vt 0.842765 0.485006 +vt 0.837620 0.485005 +vt 0.825367 0.485004 +vt 0.812070 0.485004 +vt 0.812071 0.477177 +vt 0.987930 0.703465 +vt 0.995981 0.703411 +vt 0.236699 0.817843 +vt 0.233036 0.819558 +vt 0.237514 0.623066 +vt 0.343890 0.618285 +vt 0.343855 0.623755 +vt 0.169223 0.700762 +vt 0.169246 0.700790 +vt 0.167737 0.702484 +vt 0.229706 0.822739 +vt 0.119645 0.817818 +vt 0.126369 0.818161 +vt 0.126237 0.820376 +vt 0.127194 0.807182 +vt 0.127669 0.812736 +vt 0.500038 0.426193 +vt 0.767029 0.841847 +vt 0.838841 0.477179 +vt 0.762580 0.834710 +vt 0.761559 0.841847 +vt 0.460186 0.833470 +vt 0.465924 0.833478 +vt 0.465974 0.801603 +vt 0.695669 0.735883 +vt 0.465974 0.801603 +vt 0.465924 0.833478 +vt 0.589758 0.833672 +vt 0.452231 0.833457 +vt 0.460186 0.833470 +vt 0.460236 0.801593 +vt 0.452281 0.801581 +vt 0.270941 0.833175 +vt 0.706497 0.462469 +vt 0.731733 0.462463 +vt 0.731730 0.448114 +vt 0.706500 0.473447 +vt 0.731735 0.473442 +vt 0.731733 0.462463 +vt 0.744502 0.480559 +vt 0.744475 0.455864 +vt 0.731733 0.462463 +vt 0.706503 0.488064 +vt 0.731738 0.488059 +vt 0.731735 0.473442 +vt 0.151521 0.818331 +vt 0.187828 0.891142 +vt 0.181881 0.889467 +vt 0.180828 0.895063 +vt 0.186407 0.896580 +vt 0.185602 0.903706 +vt 0.184965 0.821547 +vt 0.209662 0.821469 +vt 0.258863 0.817994 +vt 0.182995 0.908105 +vt 0.178426 0.905528 +vt 0.180717 0.901802 +vt 0.271574 0.817954 +vt 0.271675 0.849831 +vt 0.287676 0.849781 +vt 0.209741 0.846705 +vt 0.298932 0.849746 +vt 0.298832 0.817868 +vt 0.287576 0.817904 +vt 0.843786 0.472975 +vt 0.541400 0.429057 +vt 0.209051 0.688734 +vt 0.226594 0.694100 +vt 0.130403 0.631285 +vt 0.127876 0.649844 +vt 0.126560 0.660571 +vt 0.133395 0.637819 +vt 0.139538 0.631279 +vt 0.145537 0.628880 +vt 0.136663 0.622685 +vt 0.144343 0.616985 +vt 0.195720 0.629210 +vt 0.204263 0.632495 +vt 0.220473 0.635814 +vt 0.209866 0.637864 +vt 0.688958 0.735877 +vt 0.161690 0.489238 +vt 0.172499 0.489238 +vt 0.172498 0.457322 +vt 0.426595 0.457322 +vt 0.413362 0.457342 +vt 0.420110 0.464479 +vt 0.404388 0.464479 +vt 0.404389 0.457342 +vt 0.413361 0.464479 +vt 0.262632 0.489217 +vt 0.272298 0.489217 +vt 0.272298 0.457341 +vt 0.279113 0.489217 +vt 0.279113 0.457341 +vt 0.213404 0.489217 +vt 0.262632 0.457341 +vt 0.284455 0.489217 +vt 0.284455 0.457341 +vt 0.206486 0.489217 +vt 0.213404 0.457341 +vt 0.323415 0.489217 +vt 0.323415 0.457341 +vt 0.197411 0.489217 +vt 0.206485 0.457341 +vt 0.330825 0.489217 +vt 0.330825 0.457341 +vt 0.186143 0.489237 +vt 0.197411 0.457342 +vt 0.338586 0.457341 +vt 0.186142 0.457322 +vt 0.787926 0.822949 +vt 0.800394 0.810525 +vt 0.781838 0.791904 +vt 0.769305 0.841505 +vt 0.790535 0.841313 +vt 0.822154 0.857297 +vt 0.834622 0.844873 +vt 0.800394 0.810525 +vt 0.814282 0.865143 +vt 0.822154 0.857297 +vt 0.364285 0.464478 +vt 0.665099 0.895783 +vt 0.696240 0.896784 +vt 0.697528 0.889426 +vt 0.717390 0.884099 +vt 0.664335 0.883183 +vt 0.642311 0.884975 +vt 0.644805 0.899444 +vt 0.547257 0.887636 +vt 0.546159 0.904698 +vt 0.512670 0.887203 +vt 0.503448 0.900859 +vt 0.526257 0.888227 +vt 0.528278 0.903634 +vt 0.517264 0.902279 +vt 0.465653 0.886011 +vt 0.473472 0.893576 +vt 0.461836 0.878509 +vt 0.531071 0.731273 +vt 0.527098 0.727704 +vt 0.523628 0.734935 +vt 0.536918 0.728310 +vt 0.522247 0.747613 +vt 0.528420 0.748113 +vt 0.528989 0.736149 +vt 0.542761 0.725538 +vt 0.534645 0.722946 +vt 0.717036 0.890009 +vt 0.534917 0.430491 +vt 0.534926 0.432618 +vt 0.159128 0.858047 +vt 0.151495 0.864134 +vt 0.146839 0.879266 +vt 0.144046 0.876731 +vt 0.146573 0.882660 +vt 0.144209 0.887363 +vt 0.130019 0.852326 +vt 0.125529 0.858905 +vt 0.132303 0.857539 +vt 0.130277 0.863641 +vt 0.153474 0.861577 +vt 0.148708 0.857559 +vt 0.041897 0.852873 +vt 0.032952 0.860271 +vt 0.062309 0.863447 +vt 0.491739 0.507629 +vt 0.492032 0.416482 +vt 0.489346 0.417357 +vt 0.469285 0.425479 +vt 0.469311 0.509589 +vt 0.534748 0.426440 +vt 0.534114 0.509991 +vt 0.536433 0.509863 +vt 0.525331 0.509924 +vt 0.500893 0.416511 +vt 0.067286 0.858835 +vt 0.519860 0.437209 +vt 0.519310 0.440420 +vt 0.529931 0.440635 +vt 0.530292 0.436681 +vt 0.506125 0.436830 +vt 0.507183 0.437514 +vt 0.510722 0.437437 +vt 0.510646 0.441203 +vt 0.510722 0.437437 +vt 0.507183 0.437514 +vt 0.930383 0.894023 +vt 0.928759 0.883534 +vt 0.907068 0.886893 +vt 0.506415 0.841924 +vt 0.506415 0.841924 +vt 0.796689 0.857179 +vt 0.811898 0.853744 +vt 0.532339 0.848213 +vt 0.833202 0.853744 +vt 0.359688 0.958662 +vt 0.968182 0.968689 +vt 0.794545 0.965293 +vt 0.804792 0.965320 +vt 0.536631 0.969780 +vt 0.542195 0.969746 +vt 0.379766 0.803761 +vt 0.842763 0.443343 +vt 0.050841 0.952323 +vt 0.054072 0.949210 +vt 0.035908 0.949211 +vt 0.054072 0.949510 +vt 0.054605 0.944456 +vt 0.036442 0.944458 +vt 0.054605 0.944056 +vt 0.054072 0.944703 +vt 0.035908 0.944706 +vt 0.054072 0.945003 +vt 0.054117 0.943132 +vt 0.054072 0.945905 +vt 0.035908 0.945908 +vt 0.054072 0.946205 +vt 0.035908 0.946208 +vt 0.054072 0.946505 +vt 0.035908 0.946508 +vt 0.054072 0.946806 +vt 0.054117 0.946908 +vt 0.852193 0.936174 +vt 0.316211 0.994208 +vt 0.770455 0.931449 +vt 0.841820 0.931664 +vt 0.177713 0.925811 +vt 0.169469 0.975019 +vt 0.277487 0.834962 +vt 0.368558 0.820578 +vt 0.467205 0.425127 +vt 0.370634 0.800249 +vt 0.650931 0.968701 +vt 0.351976 0.840046 +vt 0.533435 0.432916 +vt 0.598796 0.724641 +vt 0.530209 0.435193 +vt 0.530209 0.435193 +vt 0.784387 0.587733 +vt 0.784346 0.571925 +vt 0.532332 0.431836 +vt 0.504640 0.431653 +vt 0.412617 0.135954 +vt 0.278808 0.141349 +vt 0.412617 0.135954 +vt 0.842494 0.837028 +vt 0.514929 0.443643 +vt 0.927409 0.934733 +vt 0.929762 0.924701 +vt 0.906663 0.929866 +vt 0.533439 0.434643 +vt 0.533442 0.436150 +vt 0.528715 0.433781 +vt 0.786503 0.868569 +vt 0.527785 0.431817 +vt 0.938826 0.532859 +vt 0.927294 0.510847 +vt 0.693752 0.455875 +vt 0.490040 0.778751 +vt 0.488357 0.785906 +vt 0.503401 0.440738 +vt 0.458378 0.058547 +vt 0.509556 0.437196 +vt 0.515346 0.428669 +vt 0.513582 0.441326 +vt 0.514620 0.431192 +vt 0.414941 0.030725 +vt 0.517435 0.419436 +vt 0.532339 0.848213 +vt 0.995981 0.703411 +vt 0.688948 0.747403 +vt 0.995924 0.695002 +vt 0.594498 0.858432 +vt 0.203347 0.483727 +vt 0.166763 0.750077 +vt 0.509776 0.437635 +vt 0.165767 0.466857 +vt 0.203347 0.466857 +vt 0.165767 0.471074 +vt 0.695084 0.980879 +vt 0.829999 0.865170 +vt 0.398608 0.801497 +vt 0.268144 0.669886 +vt 0.688940 0.756131 +vt 0.499658 0.422525 +vt 0.468430 0.425751 +vt 0.232286 0.840869 +vt 0.495422 0.427721 +vt 0.460236 0.801593 +vt 0.589808 0.801796 +vt 0.270991 0.801299 +vt 0.706494 0.448119 +vt 0.706497 0.462469 +vt 0.731735 0.473442 +vt 0.706500 0.473447 +vt 0.161689 0.457323 +vt 0.769370 0.804329 +vt 0.787926 0.822949 +vt 0.489394 0.507784 +vt 0.537143 0.425757 +vt 0.519297 0.436720 +vt 0.507140 0.440872 +vt 0.507859 0.436561 +vt 0.351639 0.962522 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 -0.9983 -0.0575 +vn 0.0000 -0.9772 -0.2125 +vn 0.0000 -0.9666 -0.2562 +vn 0.0000 -0.4950 0.8689 +vn 1.0000 0.0000 0.0000 +vn -0.0053 0.6390 -0.7692 +vn 0.0000 0.6406 -0.7679 +vn -0.0035 0.6415 -0.7671 +vn 0.0000 -0.9606 -0.2778 +vn 0.0000 -0.9397 -0.3420 +vn 0.0000 0.1886 -0.9821 +vn 0.0000 0.6463 -0.7631 +vn -0.0036 0.6433 -0.7656 +vn 0.0000 0.8070 0.5905 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.9924 0.1232 +vn 0.0000 -0.5336 0.8457 +vn -0.0011 -0.5347 0.8451 +vn -0.0007 -0.5346 0.8451 +vn 0.0002 0.9819 0.1892 +vn 0.0000 1.0000 -0.0000 +vn -0.0000 0.8598 0.5106 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -0.9851 -0.1717 +vn 0.0000 -0.9356 0.3532 +vn 0.0000 -0.9999 0.0171 +vn 0.0000 0.3735 0.9276 +vn 0.0000 -0.2142 0.9768 +vn 0.0000 -0.1128 0.9936 +vn 0.0000 -0.6774 0.7356 +vn 0.0000 -0.5021 0.8648 +vn 0.0000 -0.9934 -0.1149 +vn 0.0000 0.0000 -1.0000 +vn -0.9978 0.0662 0.0000 +vn -0.8965 0.4430 0.0000 +vn -0.9472 0.3207 -0.0000 +vn -0.9575 -0.1451 0.2492 +vn -0.9344 -0.2629 0.2404 +vn -0.9389 -0.2242 0.2612 +vn -0.8781 -0.1764 0.4448 +vn -0.9776 -0.1677 0.1269 +vn 0.9978 -0.0662 -0.0000 +vn 0.8965 -0.4430 -0.0000 +vn 0.9472 -0.3207 -0.0000 +vn -0.6588 0.7523 0.0000 +vn -0.7523 0.6588 0.0000 +vn 0.6588 -0.7523 -0.0000 +vn 0.7523 -0.6588 -0.0000 +vn -0.3207 0.9472 -0.0001 +vn -0.4430 0.8965 -0.0001 +vn 0.3207 -0.9472 -0.0000 +vn 0.4430 -0.8965 -0.0000 +vn 0.0662 0.9978 -0.0000 +vn -0.0661 0.9978 0.0000 +vn -0.0662 -0.9978 -0.0000 +vn 0.0661 -0.9978 0.0000 +vn 0.0661 0.9978 0.0000 +vn 0.4430 0.8965 0.0000 +vn 0.3207 0.9472 0.0000 +vn -0.0661 -0.9978 -0.0000 +vn -0.4430 -0.8965 -0.0000 +vn -0.3207 -0.9472 -0.0000 +vn 0.7523 0.6588 0.0000 +vn 0.6588 0.7523 0.0000 +vn -0.7523 -0.6588 -0.0000 +vn -0.6588 -0.7523 -0.0000 +vn 0.9472 0.3207 -0.0000 +vn 0.8965 0.4430 0.0000 +vn -0.9472 -0.3207 -0.0000 +vn -0.8965 -0.4430 -0.0000 +vn 0.9978 0.0662 -0.0000 +vn -0.9978 -0.0662 0.0000 +vn 0.8965 -0.4430 0.0001 +vn -0.3207 0.9472 0.0000 +vn -0.4430 0.8965 0.0000 +vn 0.0662 -0.9978 -0.0000 +vn -0.0662 0.9978 0.0000 +vn -0.4430 -0.8965 0.0001 +vn -0.3207 -0.9472 0.0001 +vn 0.0000 0.9071 -0.4210 +vn 0.0000 0.9960 0.0890 +vn 0.0000 0.9960 -0.0890 +vn 0.0000 0.9960 0.0889 +vn 0.0000 0.8181 0.5750 +vn 0.0000 0.9071 0.4210 +vn 0.0000 0.5751 -0.8181 +vn 0.0000 0.8181 -0.5751 +vn 0.0000 0.4210 0.9071 +vn 0.0000 0.5750 0.8181 +vn 0.0000 0.0890 -0.9960 +vn 0.0000 0.4210 -0.9071 +vn 0.0000 -0.0889 0.9960 +vn 0.0000 0.0889 0.9960 +vn 0.0000 -0.4210 -0.9071 +vn 0.0000 0.0889 -0.9960 +vn -0.0000 -0.0890 -0.9960 +vn 0.0000 -0.5750 0.8181 +vn 0.0000 -0.4210 0.9071 +vn 0.0000 -0.8181 -0.5751 +vn 0.0000 -0.5751 -0.8181 +vn 0.0000 -0.9071 0.4210 +vn 0.0000 -0.8181 0.5750 +vn 0.0000 -0.9960 -0.0890 +vn 0.0000 -0.9071 -0.4210 +vn 0.0000 -0.9960 -0.0889 +vn 0.0000 -0.9960 0.0889 +vn 0.0000 -0.9960 0.0890 +vn 0.0000 -0.8181 -0.5750 +vn 0.0000 -0.5751 0.8181 +vn 0.0000 -0.8181 0.5751 +vn 0.0000 -0.5750 -0.8181 +vn 0.0000 -0.0890 0.9960 +vn -0.0001 -0.0890 -0.9960 +vn 0.0000 0.0890 0.9960 +vn 0.0000 0.5750 -0.8181 +vn 0.0000 0.8181 0.5751 +vn 0.0000 0.5751 0.8181 +vn 0.0000 0.8181 -0.5750 +vn 0.0000 0.9960 -0.0889 +vn -0.8737 -0.1315 -0.4684 +vn -0.9862 -0.0041 -0.1656 +vn -0.8872 0.2205 -0.4054 +vn -0.7168 -0.3702 0.5909 +vn -0.0822 -0.6000 0.7957 +vn -0.6767 -0.2422 0.6953 +vn -0.9125 0.1216 -0.3905 +vn -0.9940 0.0221 -0.1068 +vn -0.9139 -0.0027 -0.4059 +vn -0.9673 0.2232 0.1202 +vn -0.9954 -0.0433 0.0853 +vn -0.9560 0.1006 0.2757 +vn -0.9685 -0.0991 0.2284 +vn -0.9504 -0.2074 0.2318 +vn -0.9883 0.1182 0.0969 +vn -0.4530 0.2801 -0.8464 +vn -0.4864 0.0390 -0.8729 +vn -0.9142 0.0704 -0.3992 +vn -0.1396 0.2721 -0.9521 +vn -0.0360 0.1283 -0.9911 +vn -0.8460 0.1204 -0.5194 +vn -0.9076 0.3995 -0.1294 +vn -0.4854 0.7468 -0.4545 +vn -0.5755 0.8091 -0.1186 +vn -0.0534 0.7747 -0.6301 +vn -0.3445 0.4756 -0.8094 +vn -0.9779 -0.0642 -0.1992 +vn -0.9947 0.0245 -0.0996 +vn -0.9931 -0.0834 -0.0820 +vn -0.9058 -0.1444 -0.3984 +vn -0.9566 0.2613 0.1289 +vn -0.9201 -0.3126 0.2362 +vn -0.9313 -0.3635 0.0218 +vn -0.9227 -0.2852 0.2592 +vn -0.9128 -0.3909 0.1182 +vn -0.9312 -0.3570 0.0740 +vn -0.9684 -0.1692 0.1830 +vn -0.9038 -0.3696 0.2156 +vn -0.9809 -0.1776 0.0789 +vn -0.9786 -0.2002 0.0480 +vn -0.9987 -0.0475 -0.0201 +vn -0.9688 0.2308 0.0903 +vn -0.9376 0.0952 0.3344 +vn -0.9649 0.1135 0.2367 +vn -0.9495 0.2763 0.1486 +vn -0.9832 0.0556 0.1736 +vn -0.9844 0.1276 0.1212 +vn -0.9290 0.2500 0.2729 +vn -0.9956 -0.0665 0.0653 +vn -0.9625 -0.0724 0.2614 +vn -0.9851 -0.1084 0.1335 +vn -0.9833 -0.0502 0.1751 +vn -0.9846 -0.0087 0.1745 +vn -0.9900 0.1007 0.0988 +vn -0.8989 0.0907 0.4287 +vn -0.9942 -0.0403 -0.1002 +vn -0.9968 -0.0448 -0.0663 +vn -0.8695 -0.2858 -0.4029 +vn -0.9335 -0.3023 -0.1926 +vn -0.9089 -0.4170 0.0072 +vn -0.9846 -0.1696 0.0430 +vn -0.9932 -0.0221 -0.1146 +vn -0.9900 0.0999 -0.0998 +vn -0.9920 0.1239 -0.0234 +vn -0.5747 0.5494 0.6065 +vn -0.8998 0.4026 0.1680 +vn -0.0745 0.7122 0.6980 +vn -0.3706 0.2403 0.8972 +vn -0.0963 -0.2070 0.9736 +vn -0.0758 0.2517 0.9648 +vn -0.6409 -0.7662 -0.0458 +vn -0.9298 -0.2330 0.2848 +vn 0.0000 -0.5750 0.8182 +vn 0.0000 -0.5750 -0.8182 +vn 0.0000 -0.8182 -0.5750 +vn 0.0000 0.5750 0.8182 +vn 0.0000 -0.0889 -0.9960 +vn 0.0000 -0.9239 -0.3826 +vn 0.0000 0.9239 -0.3826 +vn 0.0000 0.9675 -0.2527 +vn 0.0000 -0.3827 -0.9239 +vn 0.0000 0.3827 -0.9239 +vn -0.0000 0.8629 -0.5054 +vn 0.0000 -0.9676 -0.2526 +vn -0.0000 -0.8629 -0.5054 +vn 0.0002 -0.9676 -0.2526 +vn 0.0000 0.9906 0.1368 +vn 0.0000 0.6038 0.7972 +vn 0.0000 0.7972 0.6038 +vn 0.0000 -0.1368 0.9906 +vn 0.0000 0.1368 0.9906 +vn 0.0000 -0.7972 0.6037 +vn -0.0000 -0.6038 0.7972 +vn 0.0000 -0.7972 0.6038 +vn 0.0000 -0.9906 -0.1368 +vn 0.0000 -0.9906 0.1368 +vn 0.0000 -0.6038 -0.7972 +vn 0.0000 -0.7972 -0.6038 +vn 0.0000 0.1368 -0.9906 +vn 0.0000 -0.1368 -0.9906 +vn -1.0000 0.0000 0.0037 +vn -1.0000 0.0000 0.0075 +vn 0.0000 0.7972 -0.6038 +vn 0.0000 0.6038 -0.7972 +vn -0.5344 0.1812 0.8256 +vn -0.5073 -0.3627 0.7818 +vn -0.5247 -0.1884 0.8302 +vn -0.3422 0.8174 0.4635 +vn -0.5018 0.4301 0.7505 +vn 0.0000 0.9906 -0.1368 +vn 0.0138 0.7488 -0.6626 +vn -0.0105 0.4047 -0.9144 +vn 0.0087 0.3748 -0.9271 +vn 0.0713 0.8730 -0.4825 +vn -0.0055 0.9136 -0.4067 +vn -0.9958 -0.0324 -0.0853 +vn -0.9474 -0.3190 -0.0268 +vn 0.9932 -0.0426 -0.1083 +vn 0.9930 -0.0531 -0.1054 +vn 0.9015 -0.4270 -0.0701 +vn 0.9474 -0.3190 -0.0268 +vn 0.4260 -0.8999 -0.0934 +vn -0.4482 -0.5058 0.7370 +vn -0.4877 -0.5255 0.6971 +vn -0.9280 -0.3587 -0.1012 +vn -0.8534 -0.4727 -0.2197 +vn -0.4260 -0.8989 -0.1030 +vn 0.9394 -0.1625 -0.3019 +vn 0.5145 -0.3209 0.7952 +vn 0.9295 -0.1383 0.3419 +vn 0.9268 -0.1407 0.3483 +vn -0.6818 -0.5955 -0.4249 +vn -0.9911 0.0000 0.1331 +vn -0.9978 0.0000 0.0666 +vn 0.9404 0.1281 -0.3149 +vn 0.9304 0.1374 -0.3398 +vn -0.0000 -0.9918 0.1279 +vn -0.0000 -0.9960 -0.0893 +vn 0.1721 0.4024 -0.8991 +vn 0.0000 0.4238 -0.9058 +vn -0.9476 -0.1416 -0.2864 +vn -0.9930 -0.0531 -0.1054 +vn -0.9476 -0.1416 -0.2865 +vn 0.8934 -0.3903 -0.2225 +vn -1.0000 -0.0006 0.0001 +vn -1.0000 -0.0010 -0.0002 +vn -0.9886 -0.0584 0.1389 +vn -1.0000 0.0000 -0.0006 +vn -1.0000 0.0008 -0.0005 +vn -0.8859 -0.1792 0.4279 +vn -0.9569 -0.1081 0.2694 +vn -0.9391 -0.1502 0.3090 +vn -0.9371 -0.1343 0.3223 +vn 0.4203 -0.4751 0.7730 +vn 0.3339 -0.2816 0.8996 +vn 0.8896 -0.1729 0.4226 +vn -0.9473 0.1523 -0.2819 +vn -0.9802 0.0091 -0.1979 +vn -0.2835 -0.4795 -0.8305 +vn -0.2965 -0.1206 -0.9474 +vn -0.0364 0.1142 -0.9928 +vn 0.9363 0.1191 -0.3304 +vn -0.9363 0.1191 -0.3304 +vn 0.9910 0.0439 -0.1265 +vn -0.9910 0.0439 -0.1265 +vn -0.8724 -0.1036 0.4777 +vn -0.9603 0.0267 0.2778 +vn -0.9801 -0.1117 0.1641 +vn -0.9999 -0.0132 -0.0001 +vn -0.9719 -0.0333 0.2329 +vn -0.9376 0.1183 -0.3271 +vn -0.9212 0.1912 -0.3389 +vn 0.0000 -0.9072 -0.4206 +vn 0.0208 -0.2762 -0.9609 +vn 0.0000 0.2238 -0.9746 +vn 0.0000 0.1500 -0.9887 +vn -0.9257 -0.1856 -0.3295 +vn -0.9477 -0.2262 -0.2251 +vn -0.9436 -0.3063 -0.1256 +vn -0.5812 -0.6406 -0.5019 +vn -0.0857 0.9400 -0.3301 +vn -0.0807 0.8763 -0.4749 +vn 0.0006 0.2651 -0.9642 +vn -0.9910 0.0440 -0.1265 +vn -0.9363 0.1191 -0.3303 +vn -0.4139 0.3096 -0.8560 +vn -0.3758 -0.8080 -0.4538 +vn -0.3691 -0.8001 -0.4728 +vn -0.3743 -0.7996 -0.4696 +vn -0.3715 0.2637 -0.8902 +vn -0.3430 0.0002 -0.9393 +vn -0.3595 0.1300 -0.9240 +vn -0.3937 -0.6141 -0.6841 +vn 0.9227 -0.2852 0.2592 +vn 0.8989 0.0907 0.4287 +vn 0.6998 -0.1880 0.6892 +vn 0.9504 -0.2074 0.2318 +vn 0.9201 -0.3126 0.2362 +vn 0.6767 -0.2422 0.6953 +vn 0.9649 0.1135 0.2367 +vn 0.9883 0.1182 0.0969 +vn 0.7168 -0.3702 0.5909 +vn 0.9376 0.0952 0.3344 +vn 0.9560 0.1006 0.2757 +vn 0.4864 0.0390 -0.8729 +vn 0.9142 0.0704 -0.3992 +vn 0.9058 -0.1444 -0.3984 +vn 0.0717 -0.2461 -0.9666 +vn 0.0360 0.1283 -0.9911 +vn 0.9139 -0.0027 -0.4059 +vn 0.9125 0.1216 -0.3905 +vn 0.8460 0.1204 -0.5194 +vn 0.9083 -0.1711 -0.3818 +vn 0.4795 -0.1233 -0.8689 +vn 0.8695 -0.2858 -0.4029 +vn 0.3927 -0.4709 -0.7900 +vn 0.8737 -0.1315 -0.4684 +vn 0.3129 -0.4800 -0.8196 +vn 0.8872 0.2205 -0.4054 +vn 0.3805 -0.0664 -0.9224 +vn 0.5755 0.8091 -0.1186 +vn 0.3592 0.8985 0.2523 +vn 0.8999 0.4025 0.1679 +vn 0.0333 -0.3953 -0.9180 +vn -0.0238 -0.5460 -0.8375 +vn -0.0633 -0.2827 -0.9571 +vn -0.0221 0.3133 -0.9494 +vn 0.3445 0.4756 -0.8094 +vn 0.0128 -0.0140 -0.9998 +vn 0.0009 0.2043 -0.9789 +vn 0.9968 -0.0448 -0.0663 +vn 0.9932 -0.0221 -0.1146 +vn 0.9089 -0.4170 0.0072 +vn 0.9846 -0.1696 0.0430 +vn 0.9298 -0.2330 0.2848 +vn 0.4446 -0.3490 -0.8249 +vn 0.9076 0.3995 -0.1294 +vn 0.0550 0.2948 -0.9540 +vn 0.0963 -0.2070 0.9736 +vn 0.0822 -0.6000 0.7957 +vn 0.9940 0.0221 -0.1068 +vn 0.9954 -0.0433 0.0853 +vn 0.4530 0.2801 -0.8464 +vn 0.4854 0.7468 -0.4545 +vn 0.0534 0.7747 -0.6301 +vn 0.9920 0.1239 -0.0234 +vn 0.9900 0.0999 -0.0998 +vn 0.9900 0.1007 0.0988 +vn 0.9862 -0.0041 -0.1656 +vn -0.1765 -0.9638 -0.1996 +vn 0.6818 -0.5955 -0.4249 +vn 0.3051 -0.5726 -0.7609 +vn 0.2122 -0.9513 -0.2235 +vn 0.0000 0.0901 -0.9959 +vn 0.4259 -0.8802 -0.2092 +vn 0.9999 0.0167 0.0007 +vn 1.0000 0.0019 0.0034 +vn -0.0000 0.9018 -0.4322 +vn 0.0616 0.9395 -0.3370 +vn 0.0000 0.9364 -0.3510 +vn 0.0857 0.9400 -0.3301 +vn 0.0516 0.7096 -0.7027 +vn -0.0000 0.1126 -0.9936 +vn -0.0000 0.2651 -0.9642 +vn 0.0000 0.2199 -0.9755 +vn -0.0000 0.9018 -0.4321 +vn -0.0613 0.7646 -0.6415 +vn 0.9666 0.0118 -0.2559 +vn 0.9053 -0.1764 0.3864 +vn 0.9477 -0.2262 -0.2251 +vn 0.9436 -0.3063 -0.1256 +vn 0.9389 -0.2242 0.2612 +vn 0.9776 -0.1677 0.1269 +vn 0.9978 -0.0000 0.0666 +vn 0.9257 -0.1856 -0.3295 +vn -0.8895 0.4570 0.0000 +vn -0.2763 0.9611 0.0002 +vn -0.5527 0.8333 0.0001 +vn -0.9736 0.2284 -0.0000 +vn -0.0975 -0.7839 0.6132 +vn -0.6439 -0.6219 -0.4457 +vn -0.0928 -0.7999 -0.5929 +vn -0.0690 -0.9541 -0.2914 +vn -0.4446 -0.3490 -0.8249 +vn -0.3592 0.8985 0.2523 +vn -0.1134 0.9756 -0.1878 +vn -0.0002 0.2043 -0.9789 +vn -0.0550 0.2948 -0.9540 +vn -0.6998 -0.1881 0.6892 +vn -0.9083 -0.1711 -0.3818 +vn -0.0717 -0.2461 -0.9666 +vn -0.4795 -0.1233 -0.8689 +vn -0.3927 -0.4709 -0.7900 +vn -0.3129 -0.4800 -0.8196 +vn -0.3805 -0.0664 -0.9224 +vn -0.0333 -0.3953 -0.9180 +vn 0.0238 -0.5460 -0.8375 +vn 0.0633 -0.2827 -0.9571 +vn 0.0221 0.3133 -0.9494 +vn -0.0128 -0.0140 -0.9998 +vn 0.9673 0.2232 0.1202 +vn 0.9685 -0.0991 0.2284 +vn 0.1396 0.2721 -0.9521 +vn 0.9779 -0.0642 -0.1992 +vn 0.9931 -0.0834 -0.0820 +vn 0.9335 -0.3023 -0.1926 +vn 0.9566 0.2613 0.1289 +vn 0.9313 -0.3635 0.0219 +vn 0.9128 -0.3909 0.1182 +vn 0.9786 -0.2002 0.0480 +vn 0.9312 -0.3570 0.0740 +vn 0.9038 -0.3696 0.2156 +vn 0.9684 -0.1692 0.1830 +vn 0.9809 -0.1776 0.0789 +vn 0.9987 -0.0475 -0.0201 +vn 0.9688 0.2308 0.0903 +vn 0.9495 0.2763 0.1486 +vn 0.9290 0.2500 0.2729 +vn 0.9844 0.1276 0.1212 +vn 0.9832 0.0556 0.1736 +vn 0.9956 -0.0665 0.0653 +vn 0.9625 -0.0724 0.2614 +vn 0.9851 -0.1084 0.1335 +vn 0.9833 -0.0502 0.1751 +vn 0.9846 -0.0087 0.1745 +vn 0.9942 -0.0403 -0.1002 +vn 0.9947 0.0245 -0.0996 +vn 0.5747 0.5494 0.6065 +vn 0.3706 0.2403 0.8972 +vn 0.0745 0.7122 0.6980 +vn 0.0758 0.2517 0.9648 +vn 0.6409 -0.7662 -0.0458 +vn 0.1193 -0.7677 0.6296 +vn 0.0973 -0.7840 0.6130 +vn 0.6439 -0.6219 -0.4457 +vn 0.0928 -0.7999 -0.5929 +vn 0.1134 0.9756 -0.1878 +vn 0.0654 0.9680 0.2423 +vn -0.3723 -0.3800 -0.8468 +vn -0.6432 -0.3414 -0.6854 +vn -0.4592 -0.4012 -0.7925 +vn -0.4263 -0.8678 -0.2554 +vn -0.3935 0.1531 -0.9065 +vn -0.5149 0.4477 -0.7311 +vn -0.4133 0.4461 -0.7938 +vn -0.9212 0.1912 -0.3390 +vn -0.9375 0.1183 -0.3271 +vn 0.9999 0.0135 -0.0099 +vn 0.9998 0.0213 0.0011 +vn 0.9996 0.0271 0.0029 +vn -0.9998 0.0213 0.0011 +vn -0.9996 0.0271 0.0029 +vn -0.9997 0.0252 0.0067 +vn 0.8895 0.4570 0.0000 +vn 0.9736 0.2284 0.0000 +vn 0.4196 0.9077 0.0000 +vn -0.0000 -0.9568 -0.2908 +vn -0.9999 0.0167 0.0007 +vn -0.9995 0.0314 -0.0020 +vn -0.0004 -0.2799 0.9600 +vn 0.0001 -0.5968 0.8024 +vn -0.0004 -0.5061 0.8625 +vn 0.0001 -0.7783 0.6279 +vn 0.0000 -0.8622 0.5066 +vn 0.0000 -0.9667 0.2558 +vn -0.0004 -0.2668 0.9638 +vn -0.9911 -0.0000 0.1332 +vn -0.9894 -0.1160 0.0873 +vn 0.8417 -0.2936 0.4532 +vn 0.4395 -0.3448 0.8294 +vn 0.4540 -0.0806 0.8873 +vn -1.0000 0.0006 0.0012 +vn 1.0000 0.0095 -0.0023 +vn 0.9997 0.0252 0.0067 +vn 0.0001 0.2199 -0.9755 +vn -0.0616 0.9395 -0.3370 +vn -0.4392 0.0051 0.8984 +vn -0.3221 -0.2815 0.9039 +vn -0.4149 -0.3225 0.8508 +vn -0.4184 -0.0205 0.9080 +vn 0.0147 -0.3602 0.9328 +vn -0.3221 -0.2814 0.9039 +vn -0.1337 0.9663 0.2198 +vn -0.9800 0.0000 0.1988 +vn -0.5451 0.8383 0.0000 +vn -0.2015 0.9795 0.0001 +vn -0.9362 0.3516 0.0001 +vn -0.9334 -0.3588 -0.0000 +vn -0.5359 -0.8443 -0.0000 +vn -0.0000 0.9989 0.0471 +vn 0.0000 0.9992 0.0392 +vn 0.0000 0.9931 0.1175 +vn 0.0000 0.9992 0.0393 +vn 0.1595 0.9872 0.0003 +vn 0.9363 0.3512 0.0000 +vn 0.9362 0.3516 0.0001 +vn 0.5451 0.8383 0.0001 +vn 0.9334 -0.3588 -0.0000 +vn 0.4063 -0.9137 -0.0000 +vn -0.2679 -0.9634 -0.0000 +vn 0.0000 -0.5363 0.8440 +vn -0.0008 -0.5360 0.8442 +vn 0.0000 -0.8176 -0.5758 +vn -0.9850 -0.0671 0.1589 +vn 0.4464 -0.6134 0.6515 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 -0.7929 0.6094 +vn 0.4465 -0.6134 0.6515 +vn 0.0655 0.8693 0.4899 +vn 0.0479 0.9748 0.2177 +vn 0.0450 0.9407 0.3362 +vn 1.0000 -0.0001 -0.0003 +vn 1.0000 0.0004 -0.0008 +vn 1.0000 -0.0004 -0.0007 +vn 0.9756 -0.0842 0.2027 +vn 1.0000 0.0004 -0.0001 +vn 0.4540 -0.0805 0.8873 +vn 0.0000 -0.1298 0.9915 +vn 0.0112 -0.9503 0.3111 +vn 1.0000 0.0002 -0.0001 +vn 1.0000 -0.0007 -0.0000 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.6037 0.7972 +vn 0.0000 0.7972 0.6037 +vn 0.0000 0.7071 -0.7071 +vn 0.4240 0.3427 -0.8383 +vn -0.9999 0.0135 -0.0099 +vn 0.4193 0.9079 0.0001 +vn -1.0000 0.0095 -0.0023 +vn 0.0001 -0.7972 -0.6037 +vn 0.0000 -0.6037 -0.7972 +vn -0.1722 0.3928 -0.9033 +vn 0.0000 -0.9929 -0.1193 +vn 0.9911 -0.0000 0.1332 +vn 0.0000 -0.9478 0.3188 +vn 0.0000 -0.4448 0.8956 +vn 0.0000 -0.8814 -0.4724 +vn -0.9418 0.2820 0.1830 +vn -0.7726 0.5655 0.2886 +vn 0.0646 -0.2831 0.9569 +vn 0.0405 -0.5936 0.8037 +vn 0.5073 -0.3627 0.7818 +vn 0.5247 -0.1884 0.8302 +vn 0.4877 -0.5255 0.6971 +vn 0.3422 0.8174 0.4635 +vn 0.1337 0.9663 0.2198 +vn 0.5018 0.4301 0.7505 +vn 0.5344 0.1812 0.8256 +vn 1.0000 -0.0000 0.0037 +vn 1.0000 0.0000 0.0075 +vn 0.0674 0.0000 0.9977 +vn 0.9894 -0.1160 0.0873 +vn 0.9344 -0.2629 0.2404 +vn -0.9978 -0.0354 0.0555 +vn 0.9575 -0.1436 0.2500 +vn 0.9800 0.0000 0.1988 +vn 0.0000 -0.2272 0.9739 +vn 0.0001 0.6059 0.7955 +vn 0.0000 0.8184 0.5746 +vn -0.0001 0.3029 0.9530 +vn 0.0000 0.6605 0.7508 +vn 0.0000 -0.3632 0.9317 +vn 0.0000 -0.9906 0.1367 +vn 0.4395 -0.3449 0.8294 +vn 0.3228 -0.2420 0.9150 +vn 0.9719 -0.0333 0.2329 +vn 0.9603 0.0267 0.2778 +vn 0.4392 0.0417 0.8974 +vn 0.4198 -0.1075 0.9012 +vn -0.0197 -0.3607 0.9325 +vn -0.0257 -0.3607 0.9323 +vn 0.5470 -0.3017 0.7809 +vn 0.9801 -0.1117 0.1641 +vn 0.8724 -0.1036 0.4777 +vn -0.4184 -0.0204 0.9080 +vn 0.0385 -0.3613 0.9316 +vn 0.5470 -0.3018 0.7808 +vn 0.4198 -0.1076 0.9012 +vn 1.0000 0.0009 -0.0014 +vn 1.0000 0.0001 -0.0016 +vn 1.0000 0.0006 0.0012 +vn 0.0000 -0.4993 0.8664 +vn 0.0000 -0.2667 0.9638 +vn -0.0000 0.0459 0.9989 +vn 0.0000 -0.0351 0.9994 +vn 0.0006 -0.3409 0.9401 +vn 0.0003 -0.5061 0.8625 +vn 0.0003 -0.3136 0.9496 +vn -0.0000 -0.7783 0.6279 +vn -0.0001 -0.5968 0.8024 +vn 0.0000 0.9970 -0.0770 +vn 0.0000 0.8727 -0.4883 +vn -0.0001 0.9526 -0.3041 +vn -0.0000 0.5657 -0.8246 +vn -0.0000 0.6710 -0.7415 +vn 0.0000 0.9914 0.1311 +vn -0.0000 0.9993 -0.0385 +vn -0.0000 0.1546 -0.9880 +vn 0.0000 0.3091 -0.9510 +vn -0.0000 0.8635 0.5044 +vn -0.0000 0.9650 0.2623 +vn -0.0000 -0.1761 -0.9844 +vn 0.0000 -0.0880 -0.9961 +vn -0.0000 0.6016 0.7988 +vn 0.0000 0.7882 0.6154 +vn -0.0000 -0.5913 -0.8065 +vn 0.0000 -0.4311 -0.9023 +vn 0.0000 0.2927 0.9562 +vn -0.0000 0.4905 0.8714 +vn 0.0000 -0.8104 -0.5859 +vn 0.0000 0.2098 0.9777 +vn -0.0002 -0.2799 0.9600 +vn 0.9212 0.1912 -0.3390 +vn 0.9375 0.1183 -0.3271 +vn 0.9363 0.1191 -0.3303 +vn 0.5457 0.2840 -0.7884 +vn 0.4129 0.3969 -0.8198 +vn 0.3689 0.4766 -0.7979 +vn 0.9473 0.1523 -0.2819 +vn 0.5471 0.1521 -0.8231 +vn 0.4428 -0.7141 -0.5422 +vn 0.4578 -0.2885 -0.8409 +vn 0.6432 -0.3414 -0.6854 +vn 0.2347 -0.0372 -0.9713 +vn 0.3723 -0.3800 -0.8468 +vn 0.3937 -0.6141 -0.6841 +vn 0.3430 0.0002 -0.9393 +vn 0.3691 -0.8001 -0.4728 +vn 0.3715 0.2637 -0.8902 +vn 0.4024 0.2750 -0.8731 +vn 0.3595 0.1300 -0.9240 +vn 0.3758 -0.8080 -0.4538 +vn 0.3743 -0.7997 -0.4695 +vn 0.9910 0.0440 -0.1265 +vn 0.9212 0.1912 -0.3389 +vn 0.9376 0.1183 -0.3271 +vn 0.9999 -0.0132 -0.0001 +vn -0.5587 0.3131 -0.7680 +vn -0.1722 0.3928 -0.9034 +vn -0.9404 0.1281 -0.3149 +vn -0.9295 -0.1383 0.3419 +vn -0.9268 -0.1407 0.3483 +vn -0.3897 -0.3446 0.8541 +vn -0.3829 -0.3454 0.8568 +vn -0.9268 -0.1406 0.3483 +vn 0.2529 -0.3618 0.8973 +vn 0.1722 0.4024 -0.8991 +vn -0.0000 -0.6037 0.7972 +vn -0.4024 0.2750 -0.8731 +vn 0.9995 0.0314 -0.0020 +vn -0.1193 -0.7677 0.6296 +vn -0.0654 0.9680 0.2423 +vn 0.0690 -0.9541 -0.2914 +vn -1.0000 0.0019 0.0034 +vn -0.9363 0.3512 0.0000 +vn 0.0373 0.8327 0.5525 +vn 0.0000 0.1951 0.9808 +vn 0.0000 -0.9574 0.2887 +vn 0.0000 0.3827 0.9239 +vn 0.4482 -0.5058 0.7370 +vn 0.0004 -0.3409 0.9401 +vn -0.9304 0.1374 -0.3398 +usemtl Material.001 +s 1 +f 1/1/1 2/2/1 3/3/1 +f 4/4/2 5/5/1 6/6/1 +f 7/7/3 8/8/3 9/9/4 +f 10/10/5 11/11/5 12/12/5 +f 13/13/6 14/14/6 15/15/6 +f 16/16/7 17/17/8 18/18/9 +f 19/19/10 20/20/3 7/7/3 +f 19/19/10 9/9/4 21/21/11 +f 22/22/12 23/23/12 24/24/12 +f 25/25/13 26/26/13 27/27/14 +f 28/28/6 29/29/6 30/30/6 +f 31/31/15 32/32/15 33/33/15 +f 19/19/10 7/7/3 9/9/4 +f 34/34/16 35/35/16 36/36/16 +f 37/37/17 38/38/17 39/39/17 +f 40/40/6 41/41/6 42/42/6 +f 43/43/18 44/44/19 45/45/20 +f 46/46/16 47/47/16 48/48/16 +f 49/49/16 50/50/16 51/51/16 +f 51/51/16 52/52/16 53/53/16 +f 54/54/21 55/55/22 56/56/22 +f 57/57/23 58/58/22 54/54/21 +f 46/46/16 48/48/16 59/59/16 +f 60/60/24 61/61/24 62/62/24 +f 63/63/6 64/64/6 65/65/6 +f 63/63/6 65/65/6 66/66/6 +f 67/67/16 51/51/16 53/53/16 +f 50/50/16 52/52/16 51/51/16 +f 52/52/16 68/68/16 53/53/16 +f 55/55/22 69/69/22 56/56/22 +f 58/58/22 55/55/22 54/54/21 +f 48/48/16 70/70/16 59/59/16 +f 71/71/24 72/72/24 61/61/24 +f 61/61/24 72/72/24 62/62/24 +f 64/64/6 73/73/6 65/65/6 +f 65/65/6 74/74/6 66/66/6 +f 75/75/25 76/76/26 77/77/27 +f 78/78/28 79/79/28 57/57/23 +f 78/78/28 80/80/29 81/81/30 +f 80/80/29 82/82/31 83/83/32 +f 82/82/31 77/77/27 76/76/26 +f 84/84/33 77/77/27 4/4/2 +f 85/85/22 56/56/22 69/69/22 +f 86/86/34 87/87/34 88/88/34 +f 89/89/34 90/90/34 91/91/34 +f 92/92/22 93/93/22 94/94/22 +f 95/95/6 96/96/6 97/97/6 +f 98/98/6 99/99/6 100/100/6 +f 101/101/34 102/102/34 103/103/34 +f 49/49/16 104/104/16 50/50/16 +f 69/69/22 55/55/22 105/105/22 +f 47/47/16 106/106/16 48/48/16 +f 60/60/24 107/107/24 61/61/24 +f 63/63/6 108/108/6 64/64/6 +f 109/109/35 110/110/36 111/111/37 +f 112/112/38 113/113/39 114/114/40 +f 115/115/16 116/116/16 117/117/41 +f 118/118/16 119/119/16 120/120/16 +f 121/121/42 114/114/40 113/113/39 +f 122/122/24 123/123/24 124/124/24 +f 125/125/24 126/126/24 127/127/24 +f 128/128/24 129/129/24 130/130/24 +f 131/131/43 132/132/44 133/133/45 +f 134/134/34 135/135/34 136/136/34 +f 110/110/36 137/137/46 138/138/47 +f 129/139/24 139/140/24 140/141/24 +f 132/132/44 141/142/48 142/143/49 +f 135/135/34 143/144/34 144/145/34 +f 137/137/46 145/146/50 146/147/51 +f 139/148/24 147/149/24 148/150/24 +f 141/142/48 149/151/52 150/152/53 +f 143/144/34 151/153/34 152/154/34 +f 145/146/50 153/155/54 154/156/55 +f 147/149/24 155/157/24 156/158/24 +f 149/159/52 157/160/56 158/161/57 +f 151/153/34 159/162/34 160/163/34 +f 161/164/58 162/165/59 163/166/60 +f 155/157/24 164/167/24 165/168/24 +f 166/169/61 167/170/62 168/171/63 +f 159/162/34 169/172/34 170/173/34 +f 162/174/59 171/175/64 172/176/65 +f 164/167/24 173/177/24 174/178/24 +f 167/170/62 175/179/66 176/180/67 +f 169/172/34 177/181/34 178/182/34 +f 171/175/64 179/183/68 180/184/69 +f 173/177/24 181/185/24 182/186/24 +f 175/179/66 183/187/70 184/188/71 +f 177/181/34 185/189/34 186/190/34 +f 179/191/68 187/192/43 188/193/72 +f 181/185/24 189/194/24 190/195/24 +f 183/187/70 191/196/35 192/197/73 +f 185/189/34 193/198/34 194/199/34 +f 187/192/43 195/200/74 196/201/45 +f 189/194/24 197/202/24 198/203/24 +f 191/196/35 199/204/36 200/205/37 +f 193/198/34 201/206/34 202/207/34 +f 195/200/74 203/208/48 204/209/49 +f 197/202/24 205/210/24 206/211/24 +f 199/204/36 207/212/46 208/213/47 +f 201/206/34 209/214/34 210/215/34 +f 203/208/48 211/216/52 212/217/53 +f 205/210/24 213/218/24 214/219/24 +f 207/212/46 215/220/75 216/221/76 +f 209/214/34 217/222/34 218/223/34 +f 211/216/52 219/224/56 220/225/77 +f 213/218/24 221/226/24 222/227/24 +f 215/220/75 223/228/54 224/229/78 +f 217/222/34 225/230/34 226/231/34 +f 219/224/56 227/232/79 228/233/80 +f 221/226/24 229/234/24 230/235/24 +f 223/236/54 231/237/59 232/238/60 +f 225/230/34 233/239/34 234/240/34 +f 227/232/79 235/241/66 236/242/67 +f 229/234/24 237/243/24 238/244/24 +f 231/237/59 239/245/64 240/246/65 +f 233/239/34 241/247/34 242/248/34 +f 235/241/66 243/249/70 244/250/71 +f 237/243/24 245/251/24 246/252/24 +f 239/245/64 247/253/68 248/254/69 +f 241/247/34 249/255/34 250/256/34 +f 243/249/70 109/109/35 251/257/73 +f 245/251/24 128/128/24 252/258/24 +f 247/253/68 131/131/43 253/259/72 +f 249/255/34 134/134/34 254/260/34 +f 255/261/6 256/262/6 257/263/6 +f 256/262/6 258/264/6 259/265/6 +f 258/264/6 260/266/6 261/267/6 +f 260/266/6 262/268/6 263/269/6 +f 262/268/6 264/270/6 265/271/6 +f 264/270/6 266/272/6 267/273/6 +f 266/272/6 268/274/6 269/275/6 +f 268/274/6 270/276/6 271/277/6 +f 270/276/6 272/278/6 273/279/6 +f 272/278/6 274/280/6 275/281/6 +f 274/280/6 276/282/6 277/283/6 +f 276/282/6 255/261/6 278/284/6 +f 279/285/81 280/286/82 281/287/83 +f 282/288/84 283/289/85 284/290/86 +f 285/291/6 286/292/6 287/293/6 +f 288/294/87 279/285/81 289/295/88 +f 283/289/85 290/296/89 291/297/90 +f 286/292/6 292/298/6 287/293/6 +f 293/299/91 288/294/87 294/300/92 +f 290/296/89 295/301/93 296/302/94 +f 292/298/6 297/303/6 287/293/6 +f 298/304/95 299/305/96 300/306/97 +f 295/301/93 301/307/98 302/308/99 +f 297/303/6 303/309/6 287/293/6 +f 304/310/100 298/304/95 305/311/101 +f 301/307/98 306/312/102 307/313/103 +f 303/309/6 308/314/6 287/293/6 +f 309/315/104 304/310/100 310/316/105 +f 306/312/102 311/317/106 312/318/107 +f 308/314/6 313/319/6 287/293/6 +f 314/320/102 309/315/104 315/321/108 +f 311/317/106 316/322/109 317/323/105 +f 313/319/6 318/324/6 287/293/6 +f 319/325/110 314/320/102 320/326/111 +f 316/322/109 321/327/95 322/328/112 +f 318/324/6 323/329/6 287/293/6 +f 324/330/113 319/325/110 325/331/99 +f 321/327/95 326/332/96 327/333/114 +f 323/329/6 328/334/6 287/293/6 +f 329/335/89 324/330/113 330/336/115 +f 331/337/91 332/338/116 333/339/92 +f 328/334/6 334/340/6 287/293/6 +f 335/341/117 329/335/89 336/342/118 +f 332/338/116 337/343/81 338/344/119 +f 334/340/6 339/345/6 287/293/6 +f 280/286/82 335/341/117 340/346/86 +f 337/343/81 282/288/84 341/347/120 +f 339/345/6 285/291/6 287/293/6 +f 342/348/121 343/349/122 344/350/123 +f 345/351/124 346/352/125 347/353/126 +f 348/354/127 349/355/128 350/356/129 +f 351/357/130 352/358/131 353/359/132 +f 354/360/133 347/353/126 355/361/134 +f 356/362/135 347/353/126 354/360/133 +f 357/363/136 358/364/137 359/365/138 +f 360/366/139 361/367/140 357/363/136 +f 348/354/127 362/368/141 357/363/136 +f 363/369/142 364/370/143 344/350/123 +f 364/370/143 363/369/142 365/371/144 +f 364/370/143 366/372/145 367/373/146 +f 368/374/147 369/375/148 359/365/138 +f 370/376/149 368/374/147 371/377/150 +f 351/357/130 372/378/151 352/358/131 +f 373/379/152 374/380/153 355/361/134 +f 375/381/154 374/380/153 373/379/152 +f 376/382/155 374/380/153 377/383/156 +f 378/384/157 379/385/158 380/386/159 +f 381/387/160 380/386/159 379/385/158 +f 354/360/133 355/361/134 382/388/161 +f 383/389/162 353/359/132 384/390/163 +f 385/391/164 356/362/135 383/389/162 +f 351/357/130 353/359/132 386/392/165 +f 372/378/151 351/357/130 386/392/165 +f 386/392/165 353/359/132 383/389/162 +f 387/393/166 388/394/167 389/395/168 +f 374/380/153 382/388/161 355/361/134 +f 383/389/162 382/388/161 390/396/169 +f 391/397/170 392/398/171 376/382/155 +f 392/398/171 390/396/169 374/380/153 +f 386/392/165 392/398/171 391/397/170 +f 390/396/169 392/398/171 386/392/165 +f 389/395/168 391/397/170 387/393/166 +f 378/384/157 393/399/172 391/397/170 +f 394/400/173 377/383/156 375/381/154 +f 395/401/174 394/400/173 396/402/175 +f 397/403/176 343/349/122 342/348/121 +f 398/404/177 397/403/176 399/405/178 +f 369/375/148 349/355/128 348/354/127 +f 400/406/179 401/407/180 402/408/181 +f 377/383/156 374/380/153 375/381/154 +f 390/396/169 382/388/161 374/380/153 +f 356/362/135 354/360/133 382/388/161 +f 382/388/161 383/389/162 356/362/135 +f 385/391/164 383/389/162 384/390/163 +f 372/378/151 389/395/168 388/394/167 +f 393/399/172 387/393/166 391/397/170 +f 379/385/158 378/384/157 391/397/170 +f 402/408/181 352/358/131 370/376/149 +f 372/378/151 388/394/167 352/358/131 +f 352/358/131 388/394/167 369/375/148 +f 393/399/172 349/355/128 387/393/166 +f 378/384/157 349/355/128 393/399/172 +f 378/384/157 380/386/159 349/355/128 +f 380/386/159 381/387/160 403/409/182 +f 377/383/156 394/400/173 381/387/160 +f 381/387/160 395/401/174 398/404/177 +f 404/410/183 397/403/176 405/411/184 +f 343/349/122 397/403/176 404/410/183 +f 369/375/148 368/374/147 370/376/149 +f 352/358/131 369/375/148 370/376/149 +f 388/394/167 387/393/166 369/375/148 +f 349/355/128 369/375/148 387/393/166 +f 380/386/159 403/409/182 349/355/128 +f 381/387/160 398/404/177 403/409/182 +f 394/400/173 395/401/174 381/387/160 +f 395/401/174 405/411/184 398/404/177 +f 397/403/176 398/404/177 405/411/184 +f 406/412/185 407/413/186 396/402/175 +f 408/414/187 406/412/185 409/415/188 +f 410/416/189 411/417/190 409/415/188 +f 412/418/191 345/351/124 413/419/192 +f 414/420/16 415/421/16 416/422/16 +f 417/423/103 418/424/99 419/425/193 +f 420/426/107 417/423/103 421/427/102 +f 418/424/99 422/428/94 423/429/93 +f 424/430/105 420/426/107 425/431/106 +f 426/432/194 424/430/105 427/433/195 +f 422/428/94 428/434/196 429/435/89 +f 430/436/197 426/432/194 431/437/95 +f 432/438/92 430/436/197 433/439/96 +f 428/434/196 434/440/86 435/441/85 +f 436/442/119 432/438/92 437/443/116 +f 438/444/120 436/442/119 439/445/81 +f 434/440/86 438/444/120 440/446/84 +f 441/447/16 442/448/16 443/449/16 +f 444/450/16 441/447/16 445/451/16 +f 442/448/16 446/452/16 447/453/16 +f 448/454/16 444/450/16 449/455/16 +f 450/456/16 448/454/16 451/457/16 +f 446/452/16 452/458/16 453/459/16 +f 414/460/16 450/456/16 454/461/16 +f 455/462/16 414/460/16 456/463/16 +f 452/458/16 457/464/16 458/465/16 +f 459/466/16 455/462/16 460/467/16 +f 461/468/16 459/466/16 462/469/16 +f 457/464/16 461/468/16 463/470/16 +f 464/471/16 465/472/16 466/473/16 +f 467/474/98 468/475/102 469/476/103 +f 470/477/93 467/474/98 471/478/99 +f 466/473/16 465/472/16 472/479/16 +f 468/475/102 473/480/106 474/481/107 +f 475/482/16 465/472/16 464/471/16 +f 472/479/16 465/472/16 476/483/16 +f 473/480/106 477/484/109 478/485/105 +f 479/486/89 470/477/93 480/487/94 +f 476/483/16 465/472/16 481/488/16 +f 477/484/109 482/489/198 483/490/198 +f 484/491/16 465/472/16 475/482/16 +f 481/488/16 465/472/16 485/492/16 +f 486/493/199 487/494/199 488/495/200 +f 489/496/85 479/486/89 490/497/90 +f 485/492/16 465/472/16 491/498/16 +f 492/499/201 493/500/202 494/501/202 +f 495/502/16 465/472/16 484/491/16 +f 491/498/16 465/472/16 496/503/16 +f 486/493/199 497/504/81 498/505/119 +f 499/506/84 489/496/85 500/507/86 +f 496/503/16 465/472/16 501/508/16 +f 497/504/81 499/506/84 502/509/120 +f 501/508/16 465/472/16 495/502/16 +f 503/510/203 488/495/200 494/501/202 +f 414/420/16 455/511/16 415/421/16 +f 483/490/198 482/489/198 504/512/204 +f 505/513/205 506/514/206 492/499/201 +f 416/515/16 415/516/16 507/517/16 +f 416/422/16 450/518/16 414/420/16 +f 508/519/16 509/520/16 510/521/16 +f 511/522/207 512/523/208 513/524/209 +f 514/525/6 515/526/6 516/527/6 +f 510/521/16 509/520/16 517/528/16 +f 512/523/208 518/529/210 519/530/211 +f 515/526/6 520/531/6 516/527/6 +f 517/528/16 509/520/16 521/532/16 +f 518/529/210 522/533/212 523/534/213 +f 520/531/6 524/535/6 516/527/6 +f 521/532/16 509/520/16 525/536/16 +f 526/537/214 527/538/215 528/539/216 +f 524/535/6 529/540/6 516/527/6 +f 525/536/16 509/520/16 530/541/16 +f 527/538/215 531/542/217 532/543/218 +f 529/540/6 533/544/6 516/527/6 +f 530/541/16 509/520/16 534/545/16 +f 531/542/217 535/546/219 536/547/220 +f 537/548/16 538/549/221 539/550/221 +f 533/544/6 540/551/6 516/527/6 +f 534/545/16 509/520/16 541/552/16 +f 539/550/221 538/549/221 542/553/222 +f 535/546/219 543/554/223 544/555/224 +f 540/551/6 545/556/6 516/527/6 +f 546/557/225 547/558/226 548/559/227 +f 549/560/228 546/557/225 550/561/229 +f 541/552/16 509/520/16 508/519/16 +f 543/554/223 511/522/207 551/562/230 +f 545/556/6 514/525/6 516/527/6 +f 552/563/231 553/564/232 554/565/233 +f 555/566/234 556/567/235 552/563/231 +f 557/568/236 558/569/237 559/570/16 +f 560/571/238 561/572/239 562/573/6 +f 563/574/240 564/575/241 565/576/242 +f 547/558/226 566/577/243 567/578/244 +f 568/579/245 569/580/246 570/581/247 +f 560/571/238 571/582/248 561/572/239 +f 572/583/1 573/584/1 574/585/1 +f 575/586/16 576/587/16 577/588/16 +f 115/115/16 578/589/16 579/590/16 +f 580/591/249 581/592/250 582/593/251 +f 570/581/247 569/580/246 583/594/252 +f 584/595/253 585/596/254 586/597/16 +f 587/598/1 588/599/1 589/600/1 +f 590/601/1 589/600/1 588/599/1 +f 591/602/6 592/603/6 593/604/6 +f 594/605/255 595/606/256 582/593/251 +f 596/607/257 597/608/1 598/609/258 +f 559/570/16 558/569/237 599/610/16 +f 600/611/22 601/612/22 602/613/22 +f 585/596/254 603/614/16 586/597/16 +f 604/615/22 605/616/22 606/617/22 +f 602/613/22 601/612/22 604/618/22 +f 607/619/24 608/620/24 609/621/24 +f 608/620/24 610/622/24 611/623/24 +f 612/624/24 613/625/24 611/623/24 +f 614/626/22 615/627/22 616/628/22 +f 617/629/259 618/630/260 619/631/260 +f 620/632/261 557/568/236 621/633/262 +f 568/579/245 622/634/236 623/635/263 +f 624/636/238 563/574/240 625/637/264 +f 626/638/265 627/639/266 628/640/267 +f 628/640/267 627/639/266 629/641/268 +f 628/640/267 629/641/268 630/642/269 +f 628/640/267 630/642/269 631/643/38 +f 632/644/270 633/645/271 634/646/41 +f 635/647/272 636/648/273 637/649/267 +f 638/650/274 639/651/275 640/652/276 +f 641/653/277 633/645/271 642/654/278 +f 643/655/16 644/656/16 642/654/278 +f 644/656/16 645/657/16 642/654/278 +f 646/658/16 642/654/278 645/657/16 +f 633/645/271 643/655/16 642/654/278 +f 643/655/16 633/645/271 632/644/270 +f 647/659/279 648/660/280 649/661/281 +f 650/662/6 651/663/6 652/664/282 +f 653/665/16 654/666/16 655/667/283 +f 656/668/6 657/669/6 658/670/6 +f 656/668/6 659/671/284 660/672/6 +f 650/662/6 652/664/282 661/673/6 +f 661/673/6 662/674/6 663/675/6 +f 663/675/6 664/676/6 665/677/6 +f 666/678/16 667/679/16 668/680/285 +f 669/681/16 670/682/16 671/683/16 +f 672/684/16 669/681/16 673/685/16 +f 654/666/16 672/684/16 674/686/16 +f 653/665/16 655/667/283 675/687/16 +f 651/663/6 676/688/6 659/671/284 +f 660/672/6 657/669/6 656/668/6 +f 657/669/6 665/677/6 658/670/6 +f 659/671/284 676/688/6 660/672/6 +f 652/664/282 662/674/6 661/673/6 +f 662/674/6 664/676/6 663/675/6 +f 664/676/6 658/670/6 665/677/6 +f 677/689/16 675/687/16 668/680/285 +f 670/682/16 667/679/16 666/678/16 +f 667/679/16 677/689/16 668/680/285 +f 670/682/16 666/678/16 671/683/16 +f 669/681/16 671/683/16 673/685/16 +f 672/684/16 673/685/16 674/686/16 +f 655/667/283 668/680/285 675/687/16 +f 678/690/22 615/627/22 614/626/22 +f 679/691/286 680/692/287 681/693/288 +f 682/694/16 683/695/289 680/692/287 +f 684/696/16 682/694/16 685/697/290 +f 686/698/291 684/696/16 687/699/292 +f 641/653/277 687/699/292 685/697/290 +f 688/700/293 647/659/279 689/701/294 +f 690/702/22 604/618/22 606/703/22 +f 691/704/295 692/705/296 553/564/232 +f 693/706/297 642/654/278 646/658/16 +f 694/707/298 693/706/297 646/658/16 +f 559/570/16 621/633/262 557/568/236 +f 695/708/16 696/709/16 697/710/16 +f 698/711/298 699/712/299 700/713/300 +f 556/567/235 701/714/301 702/715/302 +f 599/610/16 703/716/299 646/658/16 +f 603/614/16 646/658/16 114/114/40 +f 704/717/22 614/718/22 705/719/22 +f 706/720/34 707/721/34 708/722/303 +f 709/723/304 710/724/305 711/725/306 +f 712/726/307 713/727/308 714/728/309 +f 715/729/310 716/730/311 717/731/312 +f 718/732/313 714/728/309 713/727/308 +f 719/733/314 720/734/315 721/735/316 +f 721/735/316 722/736/317 723/737/318 +f 724/738/319 725/739/320 726/740/321 +f 727/741/322 728/742/323 725/739/320 +f 729/743/324 728/742/323 727/741/322 +f 724/738/319 727/741/322 725/739/320 +f 730/744/325 731/745/326 732/746/327 +f 733/747/328 734/748/329 730/744/325 +f 735/749/330 736/750/331 737/751/332 +f 738/752/333 735/749/330 739/753/334 +f 740/754/335 738/752/333 741/755/336 +f 742/756/337 740/754/335 743/757/338 +f 744/758/339 742/756/337 745/759/340 +f 746/760/341 747/761/342 748/762/343 +f 749/763/344 741/755/336 739/753/334 +f 750/764/345 743/757/338 741/755/336 +f 751/765/346 745/759/340 743/757/338 +f 752/766/347 753/767/348 745/759/340 +f 754/768/349 739/753/334 755/769/350 +f 756/770/351 757/771/352 738/752/333 +f 758/772/353 759/773/354 760/774/355 +f 723/737/318 719/733/314 721/735/316 +f 760/774/355 729/743/324 727/741/322 +f 761/775/356 730/744/325 732/746/327 +f 761/775/356 733/747/328 730/744/325 +f 741/755/336 738/752/333 739/753/334 +f 743/757/338 740/754/335 741/755/336 +f 745/759/340 742/756/337 743/757/338 +f 753/767/348 744/758/339 745/759/340 +f 762/776/357 746/760/341 748/762/343 +f 754/768/349 749/763/344 739/753/334 +f 749/763/344 750/764/345 741/755/336 +f 750/764/345 751/765/346 743/757/338 +f 751/765/346 752/766/347 745/759/340 +f 763/777/358 754/768/349 755/769/350 +f 764/778/359 765/779/360 724/738/319 +f 757/771/352 766/780/361 735/749/330 +f 760/774/355 767/781/362 729/743/324 +f 721/735/316 724/738/319 722/736/317 +f 730/744/325 734/748/329 768/782/363 +f 753/767/348 769/783/364 744/758/339 +f 752/766/347 770/784/365 753/767/348 +f 771/785/366 762/776/357 748/762/343 +f 772/786/367 744/758/339 762/776/357 +f 773/787/368 771/785/366 748/762/343 +f 771/785/366 772/786/367 762/776/357 +f 772/786/367 774/788/369 744/758/339 +f 583/594/252 647/659/279 775/789/370 +f 776/790/22 777/791/22 605/616/22 +f 565/576/242 778/792/371 625/637/264 +f 779/793/372 778/792/371 780/794/373 +f 781/795/374 782/796/296 554/565/233 +f 783/797/375 565/576/242 564/575/241 +f 784/798/6 785/799/6 786/800/6 +f 787/801/22 788/802/22 789/803/22 +f 790/804/6 791/805/6 792/806/6 +f 793/807/376 794/808/377 795/809/376 +f 796/810/1 797/811/1 798/812/1 +f 799/813/378 800/814/378 801/815/22 +f 678/690/22 604/618/22 601/612/22 +f 782/796/296 802/816/295 554/565/233 +f 803/817/379 804/818/380 556/567/235 +f 556/567/235 555/566/234 805/819/381 +f 552/563/231 554/565/233 806/820/382 +f 554/565/233 553/564/232 807/821/383 +f 808/822/22 809/823/22 810/824/22 +f 811/825/34 781/795/374 812/826/384 +f 813/827/34 782/796/296 781/795/374 +f 814/828/385 815/829/34 816/830/34 +f 812/826/384 817/831/386 818/832/386 +f 805/819/381 803/817/379 556/567/235 +f 819/833/22 808/822/22 820/834/22 +f 556/567/235 702/715/302 821/835/387 +f 640/652/276 822/836/388 823/837/389 +f 824/838/390 825/839/391 826/840/6 +f 823/837/389 826/840/6 827/841/392 +f 828/842/6 829/843/6 830/844/393 +f 831/845/394 830/844/393 832/846/6 +f 830/847/393 827/841/392 828/848/6 +f 822/836/388 826/840/6 823/837/389 +f 822/836/388 833/849/395 826/840/6 +f 833/849/395 824/838/390 826/840/6 +f 825/839/391 834/850/6 826/840/6 +f 826/840/6 828/848/6 827/841/392 +f 828/842/6 835/851/6 829/843/6 +f 829/843/6 836/852/6 830/844/393 +f 830/844/393 836/852/6 832/846/6 +f 837/853/22 838/854/22 839/855/22 +f 840/856/22 841/857/22 838/858/22 +f 842/859/22 843/860/22 837/853/22 +f 838/854/22 844/861/22 839/855/22 +f 838/858/22 845/862/22 840/856/22 +f 846/863/22 844/864/22 838/858/22 +f 845/862/22 838/858/22 809/823/22 +f 847/865/396 848/866/397 849/867/398 +f 850/868/16 847/865/396 851/869/399 +f 346/352/125 345/351/124 852/870/400 +f 853/871/401 412/418/191 401/407/180 +f 854/872/402 855/873/403 412/418/191 +f 854/872/402 853/871/401 856/874/404 +f 371/377/150 856/874/404 853/871/401 +f 857/875/405 407/413/186 406/412/185 +f 858/876/406 366/372/145 364/370/143 +f 858/876/406 365/371/144 857/875/405 +f 857/875/405 406/412/185 408/414/187 +f 357/363/136 859/877/407 860/878/408 +f 347/353/126 410/416/189 861/879/409 +f 350/356/129 403/409/182 862/880/410 +f 352/358/131 402/408/181 413/419/192 +f 396/402/175 861/879/409 409/415/188 +f 396/402/175 375/381/154 861/879/409 +f 355/361/134 861/879/409 373/379/152 +f 385/391/164 347/353/126 356/362/135 +f 384/390/163 345/351/124 385/391/164 +f 384/390/163 353/359/132 345/351/124 +f 345/351/124 347/353/126 385/391/164 +f 359/365/138 358/364/137 371/377/150 +f 361/367/140 863/881/411 358/364/137 +f 350/356/129 864/882/412 362/368/141 +f 350/356/129 862/880/410 864/882/412 +f 862/880/410 399/405/178 865/883/413 +f 399/405/178 342/348/121 866/884/414 +f 342/348/121 344/350/123 867/885/415 +f 857/875/405 365/371/144 407/413/186 +f 865/883/413 868/886/416 864/882/412 +f 866/884/414 869/887/417 865/883/413 +f 867/885/415 870/888/418 866/884/414 +f 367/373/146 871/889/419 867/885/415 +f 864/882/412 872/890/420 859/877/407 +f 403/409/182 398/404/177 862/880/410 +f 402/408/181 401/407/180 413/419/192 +f 375/381/154 373/379/152 861/879/409 +f 353/359/132 413/419/192 345/351/124 +f 358/364/137 856/874/404 371/377/150 +f 863/881/411 856/874/404 358/364/137 +f 862/880/410 865/883/413 864/882/412 +f 399/405/178 866/884/414 865/883/413 +f 342/348/121 867/885/415 866/884/414 +f 344/350/123 367/373/146 867/885/415 +f 365/371/144 363/369/142 407/413/186 +f 868/886/416 872/890/420 864/882/412 +f 869/887/417 868/886/416 865/883/413 +f 870/888/418 869/887/417 866/884/414 +f 871/889/419 870/888/418 867/885/415 +f 872/890/420 860/878/408 859/877/407 +f 346/352/125 410/416/189 347/353/126 +f 349/355/128 403/409/182 350/356/129 +f 352/358/131 413/419/192 353/359/132 +f 347/353/126 861/879/409 355/361/134 +f 361/367/140 358/364/137 357/363/136 +f 364/370/143 367/373/146 344/350/123 +f 366/372/145 871/889/419 367/373/146 +f 363/369/142 405/411/184 407/413/186 +f 344/350/123 404/410/183 363/369/142 +f 405/411/184 395/401/174 407/413/186 +f 404/410/183 405/411/184 363/369/142 +f 343/349/122 404/410/183 344/350/123 +f 774/788/369 742/756/337 744/758/339 +f 765/779/360 727/741/322 724/738/319 +f 766/780/361 736/750/331 735/749/330 +f 767/781/362 873/891/421 729/743/324 +f 724/738/319 874/892/422 722/736/317 +f 724/738/319 726/740/321 874/892/422 +f 730/744/325 768/782/363 731/745/326 +f 734/748/329 875/893/423 768/782/363 +f 736/750/331 731/745/326 768/782/363 +f 769/783/364 762/776/357 744/758/339 +f 762/776/357 769/783/364 746/760/341 +f 770/784/365 769/783/364 753/767/348 +f 876/894/424 732/746/327 731/745/326 +f 877/895/425 878/896/426 732/746/327 +f 879/897/427 873/891/421 767/781/362 +f 880/898/428 723/737/318 722/736/317 +f 880/898/428 719/733/314 723/737/318 +f 881/899/429 882/900/430 883/901/431 +f 884/902/432 885/903/433 886/904/434 +f 882/900/430 881/899/429 884/902/432 +f 722/736/317 874/892/422 887/905/435 +f 729/743/324 888/906/436 728/742/323 +f 726/740/321 725/739/320 888/906/436 +f 729/743/324 873/891/421 889/907/437 +f 879/897/427 890/908/438 889/907/437 +f 729/743/324 889/907/437 888/906/436 +f 891/909/439 892/910/440 890/908/438 +f 887/905/435 880/898/428 722/736/317 +f 887/905/435 888/906/436 893/911/441 +f 894/912/442 884/902/432 881/899/429 +f 895/913/443 881/899/429 880/898/428 +f 889/907/437 890/908/438 894/912/442 +f 893/911/441 888/906/436 889/907/437 +f 894/912/442 890/908/438 892/910/440 +f 896/914/444 885/903/433 894/912/442 +f 897/915/445 720/734/315 719/733/314 +f 773/787/368 748/762/343 720/734/315 +f 898/916/446 740/754/335 742/756/337 +f 756/770/351 738/752/333 740/754/335 +f 899/917/447 731/745/326 736/750/331 +f 878/896/426 877/895/425 759/773/354 +f 880/898/428 883/901/431 719/733/314 +f 887/905/435 893/911/441 880/898/428 +f 874/892/422 726/740/321 887/905/435 +f 888/906/436 887/905/435 726/740/321 +f 888/906/436 725/739/320 728/742/323 +f 890/908/438 879/897/427 891/909/439 +f 892/910/440 896/914/444 894/912/442 +f 885/903/433 884/902/432 894/912/442 +f 767/781/362 759/773/354 877/895/425 +f 891/909/439 879/897/427 767/781/362 +f 891/909/439 767/781/362 899/917/447 +f 766/780/361 896/914/444 892/910/440 +f 766/780/361 885/903/433 896/914/444 +f 886/904/434 885/903/433 766/780/361 +f 882/900/430 886/904/434 757/771/352 +f 897/915/445 883/901/431 882/900/430 +f 773/787/368 882/900/430 756/770/351 +f 898/916/446 772/786/367 771/785/366 +f 898/916/446 774/788/369 772/786/367 +f 876/894/424 899/917/447 877/895/425 +f 899/917/447 767/781/362 877/895/425 +f 892/910/440 891/909/439 899/917/447 +f 899/917/447 766/780/361 892/910/440 +f 757/771/352 886/904/434 766/780/361 +f 756/770/351 882/900/430 757/771/352 +f 773/787/368 897/915/445 882/900/430 +f 771/785/366 773/787/368 756/770/351 +f 756/770/351 898/916/446 771/785/366 +f 900/918/448 901/919/449 720/734/315 +f 902/920/450 903/921/451 901/919/449 +f 764/778/359 721/735/316 901/919/449 +f 904/922/452 758/772/353 760/774/355 +f 765/779/360 905/923/453 906/924/454 +f 907/925/455 878/896/426 758/772/353 +f 908/926/456 907/925/455 904/922/452 +f 908/926/456 733/747/328 761/775/356 +f 732/746/327 878/896/426 907/925/455 +f 748/762/343 747/761/342 900/918/448 +f 909/927/457 746/760/341 769/783/364 +f 909/927/457 910/928/458 747/761/342 +f 747/761/342 910/928/458 902/920/450 +f 768/782/363 875/893/423 763/777/358 +f 764/778/359 724/738/319 721/735/316 +f 757/771/352 735/749/330 738/752/333 +f 759/773/354 767/781/362 760/774/355 +f 721/735/316 720/734/315 901/919/449 +f 911/929/459 717/731/312 716/730/311 +f 912/930/460 648/660/280 647/659/279 +f 586/597/16 603/614/16 913/931/16 +f 583/594/252 569/580/246 623/635/263 +f 775/789/370 647/659/279 688/700/293 +f 914/932/16 913/931/16 121/121/42 +f 775/789/370 570/581/247 583/594/252 +f 700/713/300 915/933/461 916/934/297 +f 917/935/237 918/936/462 699/712/299 +f 915/933/461 919/937/463 920/938/278 +f 568/579/245 570/581/247 917/935/237 +f 918/936/462 700/713/300 699/712/299 +f 919/937/463 921/939/464 922/940/277 +f 921/939/464 923/941/465 924/942/466 +f 924/942/466 923/941/465 710/724/305 +f 711/725/306 710/724/305 923/941/465 +f 925/943/467 924/942/466 710/724/305 +f 622/634/236 568/579/245 917/935/237 +f 926/944/468 927/945/469 928/946/470 +f 929/947/6 592/603/6 930/948/6 +f 616/628/22 820/834/22 931/949/22 +f 929/947/6 593/604/6 592/603/6 +f 591/602/6 932/950/6 592/603/6 +f 933/951/471 934/952/472 935/953/473 +f 604/618/22 678/690/22 704/954/22 +f 936/955/474 937/956/475 938/957/476 +f 939/958/6 940/959/6 937/960/475 +f 941/961/16 942/962/16 943/963/16 +f 692/705/296 807/821/383 553/564/232 +f 944/964/16 942/962/16 941/961/16 +f 945/965/16 697/710/16 696/709/16 +f 946/966/22 947/967/22 948/968/22 +f 949/969/16 950/970/16 951/971/16 +f 952/972/477 953/973/477 954/974/477 +f 955/975/478 956/976/479 957/977/478 +f 958/978/480 959/979/481 960/980/482 +f 961/981/483 960/980/482 959/979/481 +f 962/982/484 596/607/257 963/983/485 +f 964/984/1 965/985/1 966/986/1 +f 960/980/482 967/987/486 958/978/480 +f 777/791/22 606/617/22 605/616/22 +f 968/988/487 969/989/16 970/990/254 +f 576/587/16 971/991/16 577/588/16 +f 972/992/378 973/993/22 974/994/22 +f 975/995/16 971/991/16 119/119/16 +f 976/996/16 119/119/16 977/997/488 +f 978/998/16 977/997/488 979/999/39 +f 980/1000/16 979/999/39 631/643/38 +f 981/1001/489 982/1002/490 983/1003/491 +f 578/589/16 576/587/16 984/1004/16 +f 577/588/16 971/991/16 985/1005/16 +f 985/1005/16 971/991/16 975/995/16 +f 976/996/16 975/995/16 119/119/16 +f 978/998/16 976/996/16 977/997/488 +f 977/997/488 119/119/16 118/118/16 +f 980/1000/16 978/998/16 979/999/39 +f 986/1006/492 980/1000/16 631/643/38 +f 986/1006/492 631/643/38 630/642/269 +f 117/117/41 116/116/16 987/1007/16 +f 626/638/265 117/117/41 987/1007/16 +f 988/1008/16 576/587/16 578/589/16 +f 579/590/16 578/589/16 984/1004/16 +f 984/1004/16 576/587/16 575/586/16 +f 989/1009/493 990/1010/494 927/945/469 +f 991/1011/24 126/126/24 125/125/24 +f 124/124/24 123/123/24 126/126/24 +f 992/1012/34 706/720/34 807/821/383 +f 993/1013/495 708/722/303 707/721/34 +f 708/722/303 993/1013/495 994/1014/386 +f 995/1015/496 701/714/301 556/567/235 +f 685/697/290 680/692/287 996/1016/497 +f 633/645/271 997/1017/498 634/646/41 +f 998/1018/499 999/1019/500 679/691/286 +f 1000/1020/501 1001/1021/41 1002/1022/502 +f 680/692/287 679/691/286 999/1019/500 +f 685/697/290 997/1017/498 633/645/271 +f 914/932/16 121/121/42 969/989/16 +f 552/563/231 821/835/387 553/564/232 +f 804/818/380 995/1015/496 556/567/235 +f 1003/1023/16 1004/1024/16 1005/1025/16 +f 703/716/299 694/707/298 646/658/16 +f 646/658/16 635/647/272 114/114/40 +f 913/931/16 603/614/16 121/121/42 +f 121/121/42 970/990/254 969/989/16 +f 114/114/40 121/121/42 603/614/16 +f 570/581/247 918/936/462 917/935/237 +f 1006/1026/24 991/1027/24 125/1028/24 +f 127/127/24 126/126/24 123/123/24 +f 616/628/22 615/627/22 820/834/22 +f 1007/1029/503 1008/1030/22 1009/1031/22 +f 1010/1032/504 585/596/254 584/595/253 +f 968/988/487 970/990/254 1011/1033/504 +f 1012/1034/34 1013/1035/34 1014/1036/34 +f 1015/1037/34 1012/1034/34 1016/1038/34 +f 1014/1036/34 1017/1039/34 1016/1038/34 +f 1012/1034/34 1014/1036/34 1016/1038/34 +f 1015/1037/34 1018/1040/34 1012/1034/34 +f 1019/1041/22 1020/1042/505 1021/1043/506 +f 1022/1044/16 1023/1045/16 1024/1046/507 +f 1025/1047/24 1026/1048/24 1027/1049/24 +f 1028/1050/34 1029/1051/34 1030/1052/34 +f 1031/1053/24 1032/1054/24 1027/1049/24 +f 1024/1046/507 1021/1043/506 1020/1042/505 +f 1033/1055/508 1034/1056/16 1035/1057/16 +f 1033/1055/508 1036/1058/508 1037/1059/509 +f 1038/1060/510 1039/1061/511 1040/1062/512 +f 1041/1063/34 1042/1064/34 1043/1065/34 +f 1043/1065/34 1042/1064/34 1016/1038/34 +f 1044/1066/6 1045/1067/6 1046/1068/6 +f 1047/1069/22 1048/1070/513 1049/1071/514 +f 1050/1072/6 1051/1073/515 1052/1074/516 +f 1053/1075/24 1054/1076/24 1055/1077/24 +f 1032/1054/24 1031/1053/24 1056/1078/24 +f 1056/1078/24 1057/1079/24 1055/1077/24 +f 1052/1074/516 1051/1073/515 1058/1080/517 +f 1059/1081/518 1060/1082/518 1061/1083/6 +f 1049/1071/514 1048/1070/513 1062/1084/510 +f 1030/1052/34 1018/1040/34 1015/1037/34 +f 1063/1085/16 1064/1086/16 1065/1087/16 +f 1059/1081/518 1066/1088/519 1067/1089/519 +f 1068/1090/520 1037/1059/509 1067/1089/519 +f 1013/1035/34 1069/1091/34 1014/1036/34 +f 1070/1092/16 34/34/16 36/36/16 +f 1071/1093/17 37/37/17 39/39/17 +f 1072/1094/6 40/40/6 42/42/6 +f 1073/1095/18 43/43/18 45/45/20 +f 1074/1096/16 1075/1097/16 1070/1092/16 +f 1076/1098/521 45/45/20 1077/1099/522 +f 36/36/16 1074/1096/16 1070/1092/16 +f 1075/1097/16 1078/1100/16 1070/1092/16 +f 1071/1093/17 39/39/17 1079/1101/17 +f 42/42/6 1080/1102/6 1072/1094/6 +f 45/45/20 44/44/19 1077/1099/522 +f 1081/1103/523 1082/1104/523 1083/1105/523 +f 1084/1106/524 117/117/41 626/638/265 +f 823/837/389 1085/1107/525 638/650/274 +f 823/837/389 638/650/274 640/652/276 +f 639/651/275 983/1003/491 640/652/276 +f 645/657/16 636/648/273 635/647/272 +f 1086/1108/526 1087/1109/527 1088/1110/528 +f 1089/1111/529 1090/1112/530 1091/1113/531 +f 1092/1114/532 1093/1115/533 1094/1116/534 +f 1093/1115/533 1095/1117/535 1094/1116/534 +f 982/1002/490 640/652/276 983/1003/491 +f 1091/1113/531 1090/1112/530 1096/1118/22 +f 1097/1119/6 1098/1120/536 1099/1121/6 +f 1100/1122/535 1085/1107/525 823/837/389 +f 1092/1114/532 1101/1123/6 1093/1115/533 +f 1102/1124/537 1103/1125/275 1104/1126/538 +f 1105/1127/1 1106/1128/1 1107/1129/539 +f 1108/1130/540 1092/1114/532 1109/1131/541 +f 1101/1123/6 1110/1132/6 1093/1115/533 +f 654/666/16 674/686/16 655/667/283 +f 651/663/6 659/671/284 652/664/282 +f 1111/1133/1 1112/1134/1 1113/1135/542 +f 1114/1136/543 1115/1137/544 1116/1138/24 +f 1115/1139/544 1114/1140/543 1117/1141/22 +f 1118/1142/34 1119/1143/34 1120/1144/545 +f 1121/1145/477 1122/1146/477 1123/1147/477 +f 1124/1148/546 595/606/256 594/605/255 +f 1122/1146/477 1125/1149/477 1123/1147/477 +f 1126/1150/477 1121/1145/477 1127/1151/477 +f 558/569/237 703/716/299 599/610/16 +f 1128/1152/24 1129/1153/24 1130/1154/24 +f 1131/1155/24 1132/1156/24 1129/1153/24 +f 933/951/471 1133/1157/547 934/952/472 +f 641/653/277 685/697/290 633/645/271 +f 687/699/292 684/696/16 685/697/290 +f 1122/1146/477 952/972/477 954/974/477 +f 1134/1158/477 954/974/477 953/973/477 +f 682/694/16 680/692/287 685/697/290 +f 1127/1151/477 1121/1145/477 1123/1147/477 +f 683/695/289 681/693/288 680/692/287 +f 615/627/22 819/833/22 820/834/22 +f 990/1010/494 928/946/470 927/945/469 +f 848/866/397 1135/1159/548 938/957/476 +f 1136/1160/549 933/951/471 935/953/473 +f 1116/1138/24 1137/1161/542 1113/1135/542 +f 1118/1142/34 1138/1162/550 1139/1163/551 +f 1120/1144/545 1140/1164/22 1117/1165/22 +f 1141/1166/1 1139/1163/551 1138/1162/550 +f 1142/1167/260 1143/1168/552 1144/1169/260 +f 617/629/259 619/631/260 1144/1169/260 +f 1145/1170/24 1146/1171/24 1147/1172/24 +f 1148/1173/24 1149/1174/24 1147/1172/24 +f 1150/1175/24 1151/1176/24 1149/1174/24 +f 1152/1177/22 602/613/22 604/618/22 +f 828/842/6 1153/1178/394 835/851/6 +f 840/856/22 1154/1179/22 841/857/22 +f 1155/1180/241 562/573/6 834/850/6 +f 1156/1181/257 1157/1182/485 1158/1183/553 +f 1159/1184/34 1160/1185/34 1161/1186/34 +f 1162/1187/16 1163/1188/16 1164/1189/16 +f 1165/1190/1 1166/1191/1 1167/1192/1 +f 1168/1193/1 1169/1194/1 1165/1190/1 +f 1153/1178/394 1170/1195/554 835/851/6 +f 1171/1196/555 1172/1197/555 1173/1198/556 +f 1174/1199/557 598/609/258 1158/1183/553 +f 1175/1200/6 1176/1201/6 1177/1202/6 +f 1178/1203/16 1179/1204/16 1180/1205/16 +f 1181/1206/558 1182/1207/558 1183/1208/559 +f 1107/1129/539 1184/1209/560 1185/1210/561 +f 1186/1211/6 1187/1212/6 1188/1213/6 +f 1189/1214/1 1190/1215/1 1191/1216/1 +f 1192/1217/562 1193/1218/563 1194/1219/564 +f 1195/1220/565 1196/1221/566 1197/1222/567 +f 1198/1223/568 1197/1222/567 1193/1218/563 +f 1199/1224/569 1200/1225/570 1201/1226/570 +f 1202/1227/6 1203/1228/6 1199/1224/569 +f 1204/1229/24 1205/1230/24 1206/1231/24 +f 1207/1232/24 1208/1233/24 1209/1234/24 +f 1184/1209/560 1210/1235/571 1211/1236/571 +f 830/847/393 1212/1237/572 1213/1238/573 +f 1214/1239/6 1215/1240/6 1216/1241/6 +f 1217/1242/558 1218/1243/558 1219/1244/574 +f 1176/1201/6 1175/1200/6 1098/1120/536 +f 1098/1120/536 1108/1130/540 1099/1121/6 +f 1220/1245/575 823/837/389 827/841/392 +f 1221/1246/554 1222/1247/576 1223/1248/576 +f 1224/1249/576 1225/1250/576 1170/1195/554 +f 1196/1221/566 1195/1220/565 1226/1251/22 +f 991/1027/24 1006/1026/24 1227/1252/24 +f 1228/1253/24 1206/1231/24 1207/1232/24 +f 1229/1254/24 1227/1252/24 1204/1255/24 +f 1230/1256/577 1231/1257/577 1232/1258/577 +f 1220/1245/575 1100/1122/535 823/837/389 +f 635/647/272 646/658/16 645/657/16 +f 1233/1259/274 1088/1110/528 1087/1109/527 +f 1234/1260/1 1235/1261/1 1236/1262/1 +f 1092/1114/532 1094/1116/534 1109/1131/541 +f 1237/1263/578 1238/1264/579 1239/1265/579 +f 1173/1198/556 1237/1263/578 1240/1266/580 +f 1241/1267/1 1172/1197/555 1171/1196/555 +f 1242/1268/581 1243/1269/581 1244/1270/581 +f 1245/1271/582 1246/1272/582 1247/1273/582 +f 1248/1274/6 1249/1275/6 1250/1276/6 +f 1251/1277/583 1252/1278/583 1253/1279/583 +f 1254/1280/584 1001/1021/41 1000/1020/501 +f 1255/1281/585 1256/1282/586 640/652/276 +f 1257/1283/587 1258/1284/588 1259/1285/589 +f 1260/1286/590 1261/1287/591 1262/1288/585 +f 1263/1289/592 1264/1290/593 1265/1291/594 +f 1255/1281/585 640/652/276 982/1002/490 +f 1256/1282/586 1255/1281/585 1258/1284/588 +f 1266/1292/588 1267/1293/497 1268/1294/595 +f 1267/1293/497 1266/1292/588 1262/1288/585 +f 1261/1287/591 1269/1295/596 1002/1022/502 +f 1270/1296/499 1271/1297/597 1272/1298/598 +f 1207/1232/24 1209/1234/24 1228/1253/24 +f 1228/1253/24 1229/1299/24 1204/1229/24 +f 1273/1300/22 616/628/22 931/949/22 +f 1186/1211/6 1274/1301/6 1187/1212/6 +f 1175/1200/6 1177/1202/6 1274/1301/6 +f 1186/1211/6 1275/1302/6 1175/1200/6 +f 1084/1106/524 626/638/265 628/640/267 +f 628/640/267 1179/1204/16 1178/1203/16 +f 1095/1117/535 1276/1303/575 1277/1304/599 +f 1099/1121/6 1108/1130/540 1109/1131/541 +f 1278/1305/600 1094/1116/534 1095/1117/535 +f 1276/1303/575 1279/1306/601 1277/1304/599 +f 1280/1307/6 1279/1306/601 1276/1303/575 +f 1281/1308/6 1280/1307/6 1282/1309/573 +f 1214/1239/6 1283/1310/572 1215/1240/6 +f 1284/1311/6 1281/1308/6 1283/1310/572 +f 1285/1312/6 1284/1311/6 1214/1239/6 +f 1286/1313/6 1287/1314/6 1285/1312/6 +f 1286/1313/6 1188/1213/6 1287/1314/6 +f 1186/1211/6 1175/1200/6 1274/1301/6 +f 1103/1125/275 1233/1259/274 1288/1315/602 +f 1282/1309/573 1280/1307/6 1276/1303/575 +f 1283/1310/572 1281/1308/6 1282/1309/573 +f 1214/1239/6 1284/1311/6 1283/1310/572 +f 1286/1313/6 1285/1312/6 1214/1239/6 +f 1289/1316/603 1290/1317/604 1291/1318/605 +f 1286/1313/6 1186/1211/6 1188/1213/6 +f 832/846/6 1221/1246/554 831/845/394 +f 839/855/22 842/859/22 837/853/22 +f 1292/1319/606 1293/1320/607 1294/1321/608 +f 958/978/480 967/987/486 1292/1319/606 +f 1295/1322/484 1296/1323/609 1157/1182/485 +f 1296/1323/609 1295/1322/484 1297/1324/610 +f 1297/1324/610 1294/1321/608 1293/1320/607 +f 1298/1325/611 1299/1326/612 1300/1327/613 +f 1299/1326/612 1301/1328/614 1302/1329/615 +f 1303/1330/616 1298/1325/611 1304/1331/617 +f 1301/1328/614 1305/1332/618 1306/1333/619 +f 1307/1334/620 1303/1330/616 1308/1335/621 +f 1305/1332/618 1309/1336/622 1310/1337/623 +f 1311/1338/624 1307/1334/620 1312/1339/625 +f 1309/1336/622 1313/1340/626 1314/1341/627 +f 1315/1342/628 1311/1338/624 1316/1343/629 +f 1313/1340/626 1174/1199/557 1317/1344/630 +f 1290/1317/604 1315/1342/628 1318/1345/631 +f 1319/1346/24 1320/1347/24 1321/1348/632 +f 1322/1349/16 1163/1188/16 1162/1187/16 +f 1164/1189/16 1323/1350/16 1162/1187/16 +f 1324/1351/1 1325/1352/1 1326/1353/1 +f 1323/1350/16 1327/1354/16 1328/1355/16 +f 597/608/1 1329/1356/1 1158/1183/553 +f 560/571/238 562/573/6 1155/1180/241 +f 1330/1357/633 1331/1358/634 1332/1359/635 +f 1332/1359/635 1333/1360/636 1334/1361/637 +f 1334/1361/637 1330/1357/633 1332/1359/635 +f 1335/1362/638 1336/1363/639 1330/1357/633 +f 1337/1364/640 1338/1365/388 1336/1363/639 +f 1339/1366/641 783/797/375 1340/1367/391 +f 565/576/242 625/637/264 563/574/240 +f 1341/1368/642 1342/1369/395 1338/1365/388 +f 783/797/375 564/575/241 1340/1367/391 +f 1339/1366/641 1343/1370/390 1342/1369/395 +f 565/576/242 780/794/373 778/792/371 +f 689/701/294 779/793/372 688/700/293 +f 779/793/372 780/794/373 688/700/293 +f 778/792/371 1344/1371/643 1345/1372/248 +f 689/701/294 649/661/281 1346/1373/644 +f 1344/1371/643 778/792/371 779/793/372 +f 1347/1374/645 1348/1375/646 1349/1376/647 +f 1348/1375/646 1347/1374/645 1350/1377/648 +f 1351/1378/649 1352/1379/650 1353/1380/651 +f 1350/1377/648 1354/1381/652 1355/1382/653 +f 1332/1359/635 1356/1383/654 1333/1360/636 +f 711/725/306 923/941/465 1334/1361/637 +f 923/941/465 921/939/464 1335/1362/638 +f 919/937/463 915/933/461 1341/1368/642 +f 1335/1362/638 921/939/464 919/937/463 +f 915/933/461 700/713/300 1339/1366/641 +f 1340/1367/391 1343/1370/390 1339/1366/641 +f 1357/1384/6 1358/1385/6 784/798/6 +f 624/636/238 564/575/241 563/574/240 +f 775/789/370 688/700/293 780/794/373 +f 1339/1366/641 700/713/300 918/936/462 +f 775/789/370 780/794/373 565/576/242 +f 783/797/375 918/936/462 570/581/247 +f 1359/1386/639 822/836/388 640/652/276 +f 1360/1387/655 1359/1386/639 1256/1282/586 +f 1361/1388/6 1362/1389/656 1360/1387/655 +f 1363/1390/6 1361/1388/6 1256/1282/586 +f 1364/1391/657 1363/1390/6 1257/1283/587 +f 1257/1283/587 1265/1291/594 1264/1290/593 +f 845/862/22 809/823/22 808/822/22 +f 1256/1282/586 1359/1386/639 640/652/276 +f 1361/1388/6 1360/1387/655 1256/1282/586 +f 1257/1283/587 1363/1390/6 1256/1282/586 +f 1264/1290/593 1364/1391/657 1257/1283/587 +f 825/839/391 1155/1180/241 834/850/6 +f 1365/1392/477 1366/1393/477 1367/1394/477 +f 1368/1395/477 1369/1396/477 1370/1397/477 +f 1368/1395/477 1370/1397/477 1367/1394/477 +f 1366/1393/477 1368/1395/477 1367/1394/477 +f 1366/1393/477 1365/1392/477 1371/1398/477 +f 1371/1398/477 1372/1399/477 1373/1400/477 +f 1134/1158/477 953/973/477 1373/1400/477 +f 1374/1401/658 1375/1402/659 1376/1403/660 +f 1376/1403/660 1377/1404/661 1378/1405/662 +f 1379/1406/663 1380/1407/664 1381/1408/665 +f 1382/1409/666 1380/1407/664 1379/1406/663 +f 1124/1148/546 1383/1410/667 1375/1402/659 +f 1121/1145/477 1126/1150/477 1369/1396/477 +f 1373/1400/477 1384/1411/477 1371/1398/477 +f 690/1412/22 606/617/22 839/855/22 +f 1385/1413/24 1386/1414/24 1387/1415/24 +f 1388/1416/6 1389/1417/6 1390/1418/6 +f 1391/1419/22 1392/1420/22 1393/1421/22 +f 1390/1422/6 1394/1423/6 1395/1424/6 +f 1396/1425/5 10/10/5 12/12/5 +f 1397/1426/6 13/13/6 15/15/6 +f 27/27/14 16/16/7 18/18/9 +f 1398/1427/11 19/19/10 21/21/11 +f 1399/1428/12 22/22/12 24/24/12 +f 18/18/9 25/25/13 27/27/14 +f 1400/1429/6 28/28/6 30/30/6 +f 1401/1430/15 31/31/15 33/33/15 +f 84/84/33 75/75/25 77/77/27 +f 54/54/21 78/78/28 57/57/23 +f 79/79/28 78/78/28 81/81/30 +f 81/81/30 80/80/29 83/83/32 +f 83/83/32 82/82/31 76/76/26 +f 1402/1431/34 86/86/34 88/88/34 +f 1403/1432/34 89/89/34 91/91/34 +f 1404/1433/22 92/92/22 94/94/22 +f 1405/1434/6 95/95/6 97/97/6 +f 1406/1435/6 98/98/6 100/100/6 +f 1407/1436/34 101/101/34 103/103/34 +f 251/257/73 109/109/35 111/111/37 +f 635/647/272 112/112/38 114/114/40 +f 578/589/16 115/115/16 117/117/41 +f 1408/1437/488 121/121/42 113/113/39 +f 1409/1438/24 125/125/24 127/127/24 +f 252/258/24 128/128/24 130/130/24 +f 253/259/72 131/131/43 133/133/45 +f 254/260/34 134/134/34 136/136/34 +f 111/111/37 110/110/36 138/138/47 +f 130/130/24 129/129/24 140/1439/24 +f 133/133/45 132/132/44 142/143/49 +f 136/136/34 135/135/34 144/145/34 +f 138/138/47 137/137/46 146/147/51 +f 140/1439/24 139/148/24 148/150/24 +f 142/143/49 141/142/48 150/152/53 +f 144/145/34 143/144/34 152/154/34 +f 146/1440/51 145/1441/50 154/1442/55 +f 148/150/24 147/149/24 156/158/24 +f 150/1443/53 149/1444/52 158/1445/57 +f 152/154/34 151/153/34 160/163/34 +f 1410/1446/78 161/1447/58 163/1448/60 +f 156/158/24 155/157/24 165/168/24 +f 1411/1449/77 166/169/61 168/171/63 +f 160/163/34 159/162/34 170/173/34 +f 163/1448/60 162/174/59 172/176/65 +f 165/168/24 164/167/24 174/178/24 +f 168/171/63 167/170/62 176/180/67 +f 170/173/34 169/172/34 178/182/34 +f 172/176/65 171/175/64 180/184/69 +f 174/178/24 173/177/24 182/186/24 +f 176/180/67 175/179/66 184/188/71 +f 178/182/34 177/181/34 186/190/34 +f 180/184/69 179/183/68 188/1450/72 +f 182/186/24 181/185/24 190/195/24 +f 184/188/71 183/187/70 192/197/73 +f 186/190/34 185/189/34 194/199/34 +f 188/1450/72 187/1451/43 196/1452/45 +f 190/195/24 189/194/24 198/203/24 +f 192/197/73 191/196/35 200/205/37 +f 194/199/34 193/198/34 202/207/34 +f 196/1452/45 195/1453/74 204/1454/49 +f 198/203/24 197/202/24 206/211/24 +f 200/205/37 199/204/36 208/213/47 +f 202/207/34 201/206/34 210/215/34 +f 204/1454/49 203/1455/48 212/1456/53 +f 206/211/24 205/210/24 214/219/24 +f 208/213/47 207/212/46 216/221/76 +f 210/215/34 209/214/34 218/223/34 +f 212/217/53 211/216/52 220/225/77 +f 214/219/24 213/218/24 222/227/24 +f 216/221/76 215/220/75 224/229/78 +f 218/223/34 217/222/34 226/231/34 +f 220/225/77 219/224/56 228/233/80 +f 222/227/24 221/226/24 230/235/24 +f 224/1457/78 223/236/54 232/238/60 +f 226/231/34 225/230/34 234/240/34 +f 228/233/80 227/232/79 236/242/67 +f 230/235/24 229/234/24 238/244/24 +f 232/238/60 231/237/59 240/246/65 +f 234/240/34 233/239/34 242/248/34 +f 236/242/67 235/241/66 244/250/71 +f 238/244/24 237/243/24 246/252/24 +f 240/246/65 239/245/64 248/254/69 +f 242/248/34 241/247/34 250/256/34 +f 244/250/71 243/249/70 251/257/73 +f 246/252/24 245/251/24 252/258/24 +f 248/254/69 247/253/68 253/259/72 +f 250/256/34 249/255/34 254/260/34 +f 278/284/6 255/261/6 257/263/6 +f 257/263/6 256/262/6 259/265/6 +f 259/265/6 258/264/6 261/267/6 +f 261/267/6 260/266/6 263/269/6 +f 263/269/6 262/268/6 265/271/6 +f 265/271/6 264/270/6 267/273/6 +f 267/273/6 266/272/6 269/275/6 +f 269/275/6 268/274/6 271/277/6 +f 271/277/6 270/276/6 273/279/6 +f 273/279/6 272/278/6 275/281/6 +f 275/281/6 274/280/6 277/283/6 +f 277/283/6 276/282/6 278/284/6 +f 289/295/88 279/285/81 281/287/83 +f 341/347/120 282/288/84 284/290/86 +f 294/300/92 288/294/87 289/295/88 +f 284/290/86 283/289/85 291/297/90 +f 1412/1458/197 293/299/91 294/300/92 +f 291/297/90 290/296/89 296/302/94 +f 305/311/101 298/304/95 300/306/97 +f 296/302/94 295/301/93 302/308/99 +f 310/316/105 304/310/100 305/311/101 +f 302/308/99 301/307/98 307/313/103 +f 315/321/108 309/315/104 310/316/105 +f 307/313/103 306/312/102 312/318/107 +f 320/326/111 314/320/102 315/321/108 +f 312/318/107 311/317/106 317/323/105 +f 325/331/99 319/325/110 320/326/111 +f 317/323/105 316/322/109 322/328/112 +f 330/336/115 324/330/113 325/331/99 +f 322/328/112 321/327/95 327/333/114 +f 336/342/118 329/335/89 330/336/115 +f 1413/1459/197 331/337/91 333/339/92 +f 340/346/86 335/341/117 336/342/118 +f 333/339/92 332/338/116 338/344/119 +f 281/287/83 280/286/82 340/346/86 +f 338/344/119 337/343/81 341/347/120 +f 359/365/138 348/354/127 357/363/136 +f 371/377/150 368/374/147 359/365/138 +f 400/406/179 370/376/149 371/377/150 +f 381/387/160 376/382/155 377/383/156 +f 376/382/155 381/387/160 379/385/158 +f 389/395/168 372/378/151 386/392/165 +f 379/385/158 391/397/170 376/382/155 +f 376/382/155 392/398/171 374/380/153 +f 389/395/168 386/392/165 391/397/170 +f 383/389/162 390/396/169 386/392/165 +f 396/402/175 394/400/173 375/381/154 +f 407/413/186 395/401/174 396/402/175 +f 399/405/178 397/403/176 342/348/121 +f 862/880/410 398/404/177 399/405/178 +f 359/365/138 369/375/148 348/354/127 +f 370/376/149 400/406/179 402/408/181 +f 409/415/188 406/412/185 396/402/175 +f 411/417/190 408/414/187 409/415/188 +f 861/879/409 410/416/189 409/415/188 +f 401/407/180 412/418/191 413/419/192 +f 421/427/102 417/423/103 419/425/193 +f 425/431/106 420/426/107 421/427/102 +f 419/425/193 418/424/99 423/429/93 +f 427/433/195 424/430/105 425/431/106 +f 431/437/95 426/432/194 427/433/195 +f 423/429/93 422/428/94 429/435/89 +f 433/439/96 430/436/197 431/437/95 +f 437/443/116 432/438/92 433/439/96 +f 429/435/89 428/434/196 435/441/85 +f 439/445/81 436/442/119 437/443/116 +f 440/446/84 438/444/120 439/445/81 +f 435/441/85 434/440/86 440/446/84 +f 445/451/16 441/447/16 443/449/16 +f 449/455/16 444/450/16 445/451/16 +f 443/449/16 442/448/16 447/453/16 +f 451/457/16 448/454/16 449/455/16 +f 454/461/16 450/456/16 451/457/16 +f 447/453/16 446/452/16 453/459/16 +f 456/463/16 414/460/16 454/461/16 +f 460/467/16 455/462/16 456/463/16 +f 453/459/16 452/458/16 458/465/16 +f 462/469/16 459/466/16 460/467/16 +f 463/470/16 461/468/16 462/469/16 +f 458/465/16 457/464/16 463/470/16 +f 471/478/99 467/474/98 469/476/103 +f 480/487/94 470/477/93 471/478/99 +f 469/476/103 468/475/102 474/481/107 +f 474/481/107 473/480/106 478/485/105 +f 490/497/90 479/486/89 480/487/94 +f 478/485/105 477/484/109 483/490/198 +f 503/510/203 486/493/199 488/495/200 +f 500/507/86 489/496/85 490/497/90 +f 1414/1460/201 492/499/201 494/501/202 +f 487/494/199 486/493/199 498/505/119 +f 502/509/120 499/506/84 500/507/86 +f 498/505/119 497/504/81 502/509/120 +f 493/500/202 503/510/203 494/501/202 +f 1415/1461/205 483/490/198 504/512/204 +f 1414/1460/201 505/513/205 492/499/201 +f 1416/1462/16 416/515/16 507/517/16 +f 551/562/230 511/522/207 513/524/209 +f 513/524/209 512/523/208 519/530/211 +f 519/530/211 518/529/210 523/534/213 +f 1417/1463/668 526/537/214 528/539/216 +f 528/539/216 527/538/215 532/543/218 +f 532/543/218 531/542/217 536/547/220 +f 1418/1464/16 537/548/16 539/550/221 +f 1419/1465/222 539/550/221 542/553/222 +f 536/547/220 535/546/219 544/555/224 +f 550/561/229 546/557/225 548/559/227 +f 1007/1029/503 549/560/228 550/561/229 +f 544/555/224 543/554/223 551/562/230 +f 806/820/382 555/566/234 552/563/231 +f 548/559/227 547/558/226 567/578/244 +f 1420/1466/1 572/583/1 574/585/1 +f 1382/1409/666 580/591/249 582/593/251 +f 1421/1467/1 587/598/1 589/600/1 +f 581/592/250 594/605/255 582/593/251 +f 963/983/485 596/607/257 598/609/258 +f 1422/1468/24 607/619/24 609/621/24 +f 609/621/24 608/620/24 611/623/24 +f 610/622/24 612/624/24 611/623/24 +f 569/580/246 568/579/245 623/635/263 +f 1345/1372/248 624/636/238 625/637/264 +f 1423/1469/524 632/644/270 634/646/41 +f 112/112/38 635/647/272 637/649/267 +f 689/701/294 647/659/279 649/661/281 +f 704/954/22 678/690/22 614/626/22 +f 1424/1470/16 695/708/16 697/710/16 +f 807/821/383 706/720/34 708/722/303 +f 1425/1471/669 715/729/310 717/731/312 +f 911/929/459 718/732/313 713/727/308 +f 739/753/334 735/749/330 737/751/332 +f 1426/1472/22 787/801/22 789/803/22 +f 1427/1473/6 790/804/6 792/806/6 +f 1428/1474/670 793/807/376 795/809/376 +f 1429/1475/1 796/810/1 798/812/1 +f 1430/1476/22 799/813/378 801/815/22 +f 781/795/374 554/565/233 807/821/383 +f 816/830/34 811/825/34 812/826/384 +f 811/825/34 813/827/34 781/795/374 +f 812/826/384 814/828/385 816/830/34 +f 814/828/385 812/826/384 818/832/386 +f 552/563/231 556/567/235 821/835/387 +f 841/857/22 846/863/22 838/858/22 +f 851/869/399 847/865/396 849/867/398 +f 1431/1477/16 850/868/16 851/869/399 +f 1432/1478/671 346/352/125 852/870/400 +f 400/406/179 853/871/401 401/407/180 +f 853/871/401 854/872/402 412/418/191 +f 863/881/411 854/872/402 856/874/404 +f 400/406/179 371/377/150 853/871/401 +f 365/371/144 858/876/406 364/370/143 +f 1433/1479/672 858/876/406 857/875/405 +f 1433/1479/672 857/875/405 408/414/187 +f 360/366/139 357/363/136 860/878/408 +f 348/354/127 350/356/129 362/368/141 +f 737/751/332 736/750/331 768/782/363 +f 899/917/447 876/894/424 731/745/326 +f 876/894/424 877/895/425 732/746/327 +f 880/898/428 881/899/429 883/901/431 +f 886/904/434 882/900/430 884/902/432 +f 873/891/421 879/897/427 889/907/437 +f 895/913/443 894/912/442 881/899/429 +f 893/911/441 895/913/443 880/898/428 +f 895/913/443 889/907/437 894/912/442 +f 895/913/443 893/911/441 889/907/437 +f 883/901/431 897/915/445 719/733/314 +f 897/915/445 773/787/368 720/734/315 +f 774/788/369 898/916/446 742/756/337 +f 898/916/446 756/770/351 740/754/335 +f 766/780/361 899/917/447 736/750/331 +f 758/772/353 878/896/426 759/773/354 +f 748/762/343 900/918/448 720/734/315 +f 900/918/448 902/920/450 901/919/449 +f 903/921/451 764/778/359 901/919/449 +f 727/741/322 904/922/452 760/774/355 +f 727/741/322 765/779/360 906/924/454 +f 904/922/452 907/925/455 758/772/353 +f 1434/1480/673 908/926/456 904/922/452 +f 907/925/455 908/926/456 761/775/356 +f 761/775/356 732/746/327 907/925/455 +f 770/784/365 909/927/457 769/783/364 +f 746/760/341 909/927/457 747/761/342 +f 900/918/448 747/761/342 902/920/450 +f 755/769/350 768/782/363 763/777/358 +f 718/732/313 911/929/459 716/730/311 +f 583/594/252 912/930/460 647/659/279 +f 912/930/460 583/594/252 623/635/263 +f 698/711/298 700/713/300 916/934/297 +f 916/934/297 915/933/461 920/938/278 +f 920/938/278 919/937/463 922/940/277 +f 922/940/277 921/939/464 924/942/466 +f 1435/1481/6 929/947/6 930/948/6 +f 1135/1159/548 936/955/474 938/957/476 +f 936/955/474 939/1482/6 937/956/475 +f 1436/1483/16 941/1484/16 943/1485/16 +f 1437/1486/22 946/966/22 948/968/22 +f 1438/1487/16 949/969/16 951/971/16 +f 1439/1488/674 955/975/478 957/977/478 +f 962/982/484 961/981/483 959/979/481 +f 961/981/483 962/982/484 963/983/485 +f 1440/1489/1 964/984/1 966/986/1 +f 1441/1490/378 972/992/378 974/994/22 +f 692/705/296 992/1012/34 807/821/383 +f 1442/1491/34 993/1013/495 707/721/34 +f 1443/1492/386 708/722/303 994/1014/386 +f 997/1017/498 685/697/290 996/1016/497 +f 681/693/288 998/1018/499 679/691/286 +f 1269/1295/596 1000/1020/501 1002/1022/502 +f 996/1016/497 680/692/287 999/1019/500 +f 1444/1493/16 1003/1023/16 1005/1025/16 +f 549/560/228 1007/1029/503 1009/1031/22 +f 1445/1494/504 1010/1032/504 584/595/253 +f 1446/1495/504 968/988/487 1011/1033/504 +f 1062/1084/510 1019/1041/22 1021/1043/506 +f 1447/1496/675 1022/1044/16 1024/1046/507 +f 1448/1497/24 1025/1047/24 1027/1049/24 +f 1449/1498/34 1028/1050/34 1030/1052/34 +f 1026/1048/24 1031/1053/24 1027/1049/24 +f 1447/1496/675 1024/1046/507 1020/1042/505 +f 1036/1058/508 1033/1055/508 1035/1057/16 +f 1068/1090/520 1033/1055/508 1037/1059/509 +f 1450/1499/512 1038/1060/510 1040/1062/512 +f 1451/1500/34 1041/1063/34 1043/1065/34 +f 1017/1039/34 1043/1065/34 1016/1038/34 +f 1058/1080/517 1047/1069/22 1049/1071/514 +f 1452/1501/6 1050/1072/6 1052/1074/516 +f 1057/1079/24 1053/1075/24 1055/1077/24 +f 1453/1502/24 1032/1054/24 1056/1078/24 +f 1453/1502/24 1056/1078/24 1055/1077/24 +f 1049/1071/514 1052/1074/516 1058/1080/517 +f 1454/1503/6 1059/1081/518 1061/1083/6 +f 1021/1043/506 1049/1071/514 1062/1084/510 +f 1449/1498/34 1030/1052/34 1015/1037/34 +f 1060/1082/518 1059/1081/518 1067/1089/519 +f 1066/1088/519 1068/1090/520 1067/1089/519 +f 1455/1504/523 1081/1103/523 1083/1105/523 +f 1456/1505/676 1089/1111/529 1091/1113/531 +f 1457/1506/677 1102/1124/537 1104/1126/538 +f 1458/1507/678 1105/1127/1 1107/1129/539 +f 1137/1161/542 1111/1133/1 1113/1135/542 +f 1459/1508/24 1114/1136/543 1116/1138/24 +f 1140/1509/22 1115/1139/544 1117/1141/22 +f 1460/1510/545 1118/1142/34 1120/1144/545 +f 1383/1410/667 1124/1148/546 594/605/255 +f 1461/1511/24 1128/1152/24 1130/1154/24 +f 1128/1152/24 1131/1155/24 1129/1153/24 +f 1125/1149/477 1122/1146/477 954/974/477 +f 849/867/398 848/866/397 938/957/476 +f 1459/1508/24 1116/1138/24 1113/1135/542 +f 1119/1143/34 1118/1142/34 1139/1163/551 +f 1460/1510/545 1120/1144/545 1117/1165/22 +f 1462/1512/1 1141/1513/1 1138/1514/550 +f 1143/1168/552 617/629/259 1144/1169/260 +f 1463/1515/24 1145/1170/24 1147/1172/24 +f 1146/1171/24 1148/1173/24 1147/1172/24 +f 1148/1173/24 1150/1175/24 1149/1174/24 +f 690/702/22 1152/1177/22 604/618/22 +f 1329/1356/1 1156/1181/257 1158/1183/553 +f 1464/1516/34 1159/1184/34 1161/1186/34 +f 1167/1192/1 1168/1193/1 1165/1190/1 +f 1465/1517/556 1171/1196/555 1173/1198/556 +f 1317/1344/630 1174/1199/557 1158/1183/553 +f 1466/1518/16 1178/1203/16 1180/1205/16 +f 1457/1506/677 1467/1519/679 1102/1124/537 +f 1458/1507/678 1107/1129/539 1185/1210/561 +f 1468/1520/1 1189/1214/1 1191/1216/1 +f 1469/1521/680 1192/1217/562 1194/1219/564 +f 1198/1223/568 1195/1220/565 1197/1222/567 +f 1192/1217/562 1198/1223/568 1193/1218/563 +f 1470/1522/569 1199/1224/569 1201/1226/570 +f 1470/1522/569 1202/1227/6 1199/1224/569 +f 1228/1253/24 1204/1229/24 1206/1231/24 +f 1185/1210/561 1184/1209/560 1211/1236/571 +f 827/841/392 830/847/393 1213/1238/573 +f 1097/1119/6 1176/1201/6 1098/1120/536 +f 1213/1238/573 1220/1245/575 827/841/392 +f 831/845/394 1221/1246/554 1223/1248/576 +f 1153/1178/394 1224/1249/576 1170/1195/554 +f 1471/1523/22 1196/1221/566 1226/1251/22 +f 1229/1254/24 991/1027/24 1227/1252/24 +f 1472/1524/577 1230/1256/577 1232/1258/577 +f 1288/1315/602 1233/1259/274 1087/1109/527 +f 1473/1525/1 1234/1260/1 1236/1262/1 +f 1240/1266/580 1237/1263/578 1239/1265/579 +f 1465/1517/556 1173/1198/556 1240/1266/580 +f 1474/1526/1 1241/1267/1 1171/1196/555 +f 1475/1527/581 1242/1268/581 1244/1270/581 +f 1476/1528/582 1245/1271/582 1247/1273/582 +f 1477/1529/6 1248/1274/6 1250/1276/6 +f 1478/1530/583 1251/1277/583 1253/1279/583 +f 1260/1286/590 1254/1280/584 1000/1020/501 +f 1265/1291/594 1257/1283/587 1259/1285/589 +f 1254/1280/584 1260/1286/590 1262/1288/585 +f 1259/1285/589 1263/1289/592 1265/1291/594 +f 1257/1283/587 1256/1282/586 1258/1284/588 +f 1272/1298/598 1266/1292/588 1268/1294/595 +f 1002/1022/502 1267/1293/497 1262/1288/585 +f 1262/1288/585 1261/1287/591 1002/1022/502 +f 1268/1294/595 1270/1296/499 1272/1298/598 +f 1084/1106/524 628/640/267 1178/1203/16 +f 1277/1304/599 1278/1305/600 1095/1117/535 +f 1104/1126/538 1103/1125/275 1288/1315/602 +f 1479/1531/681 1289/1316/603 1291/1318/605 +f 1294/1321/608 958/978/480 1292/1319/606 +f 1156/1181/257 1295/1322/484 1157/1182/485 +f 1293/1320/607 1296/1323/609 1297/1324/610 +f 1304/1331/617 1298/1325/611 1300/1327/613 +f 1300/1327/613 1299/1326/612 1302/1329/615 +f 1308/1335/621 1303/1330/616 1304/1331/617 +f 1302/1329/615 1301/1328/614 1306/1333/619 +f 1312/1339/625 1307/1334/620 1308/1335/621 +f 1306/1333/619 1305/1332/618 1310/1337/623 +f 1316/1343/629 1311/1338/624 1312/1339/625 +f 1310/1337/623 1309/1336/622 1314/1341/627 +f 1318/1345/631 1315/1342/628 1316/1343/629 +f 1314/1341/627 1313/1340/626 1317/1344/630 +f 1291/1318/605 1290/1317/604 1318/1345/631 +f 1480/1532/608 1319/1346/24 1321/1348/632 +f 1481/1533/1 1324/1351/1 1326/1353/1 +f 1162/1187/16 1323/1350/16 1328/1355/16 +f 598/609/258 597/608/1 1158/1183/553 +f 1334/1361/637 1335/1362/638 1330/1357/633 +f 1335/1362/638 1337/1364/640 1336/1363/639 +f 1337/1364/640 1341/1368/642 1338/1365/388 +f 1341/1368/642 1339/1366/641 1342/1369/395 +f 625/637/264 778/792/371 1345/1372/248 +f 779/793/372 689/701/294 1346/1373/644 +f 1346/1373/644 1344/1371/643 779/793/372 +f 1353/1380/651 1347/1374/645 1349/1376/647 +f 1355/1382/653 1348/1375/646 1350/1377/648 +f 1349/1376/647 1351/1378/649 1353/1380/651 +f 1333/1360/636 711/725/306 1334/1361/637 +f 1334/1361/637 923/941/465 1335/1362/638 +f 1337/1364/640 919/937/463 1341/1368/642 +f 1337/1364/640 1335/1362/638 919/937/463 +f 1341/1368/642 915/933/461 1339/1366/641 +f 786/800/6 1357/1384/6 784/798/6 +f 783/797/375 1339/1366/641 918/936/462 +f 570/581/247 775/789/370 565/576/242 +f 565/576/242 783/797/375 570/581/247 +f 819/833/22 845/862/22 808/822/22 +f 1384/1411/477 1366/1393/477 1371/1398/477 +f 1372/1399/477 1134/1158/477 1373/1400/477 +f 1482/1534/682 1374/1401/658 1376/1403/660 +f 1482/1534/682 1376/1403/660 1378/1405/662 +f 1483/1535/661 1379/1406/663 1381/1408/665 +f 580/591/249 1382/1409/666 1379/1406/663 +f 1374/1401/658 1124/1148/546 1375/1402/659 +f 1368/1395/477 1121/1145/477 1369/1396/477 +f 844/861/22 690/1412/22 839/855/22 +f 1484/1536/24 1385/1413/24 1387/1415/24 +f 1485/1537/22 1391/1419/22 1393/1421/22 +f 1388/1416/6 1390/1418/6 1395/1538/6 +f 1/1/1 3/3/1 1486/1539/1 +f 1/1/1 6/6/1 5/5/1 +f 6/6/1 1/1/1 1486/1539/1 +f 84/84/33 4/4/2 6/6/1 +o mag_pistol_0 +v -1.109136 1.854146 1.546994 +v -1.109136 6.483851 2.313161 +v -1.109136 1.746315 1.309461 +v 1.109136 6.483851 2.313161 +v 1.109136 6.193875 2.563060 +v 1.109136 1.854146 1.546994 +v 1.109136 1.746315 1.309461 +v -1.109136 6.193875 2.563060 +v -1.109136 7.455005 0.432841 +v -0.855096 7.454038 0.681172 +v -0.637953 7.455005 0.432841 +v -1.109136 7.447666 2.316916 +v -0.851242 7.447666 2.316916 +v -0.645065 7.456246 0.114420 +v -0.808240 7.456246 0.114420 +v -0.882817 -7.449294 -6.242330 +v -1.332151 -7.578506 -5.806303 +v -1.109136 -7.583718 -5.788712 +v -1.260158 -8.694220 -2.041337 +v -1.109136 -8.686133 -2.068621 +v -0.818644 -8.777006 -1.761974 +v -0.549908 -9.201518 -0.329464 +v 0.549908 -9.201518 -0.329464 +v 0.855096 7.454038 0.681172 +v 1.109136 7.455005 0.432841 +v 0.637953 7.455005 0.432841 +v 0.645065 7.456246 0.114420 +v 0.808240 7.456246 0.114420 +v -0.413784 6.208827 -0.016872 +v 0.413784 6.208827 -0.016872 +v 0.440888 6.323021 -0.358271 +v 0.851242 7.447666 2.316916 +v -0.791829 -7.487273 -6.114169 +v 0.791829 -7.487273 -6.114169 +v 0.882817 -7.449294 -6.242330 +v 1.109136 -7.583718 -5.788712 +v 1.332151 -7.578506 -5.806303 +v 1.109136 -8.686133 -2.068621 +v -0.527911 -9.865828 -0.558223 +v 0.527911 -9.865828 -0.558223 +v 0.549908 -9.201518 -0.329464 +v 0.527911 -9.865828 -0.558223 +v -0.527911 -9.865828 -0.558223 +v -1.263812 -9.320386 -2.284041 +v -0.889556 -7.991922 -6.487401 +v 0.889556 -7.991922 -6.487401 +v 1.326758 -8.130615 -6.048566 +v 1.263812 -9.320386 -2.284041 +v -1.326758 -8.130615 -6.048566 +v 1.260158 -8.694220 -2.041337 +v 0.818644 -8.777006 -1.761974 +v -0.440888 6.323021 -0.358271 +v 1.109136 7.447666 2.316916 +v -0.549908 -9.201518 -0.329464 +v -0.330292 5.643600 3.823889 +v 0.330292 5.643600 3.823889 +v -0.639183 4.693711 3.350439 +v -0.784649 4.758710 3.184810 +v -0.823423 6.188930 3.832172 +v -0.613250 5.916148 3.869261 +v 0.639183 4.693711 3.350439 +v 0.613250 5.916148 3.869261 +v -0.791829 -7.487273 -6.114169 +v -0.440888 6.323021 -0.358271 +v 0.791829 -7.487273 -6.114169 +v 1.109136 6.187971 4.078715 +v 1.109136 1.608211 2.157616 +v 1.109136 7.455005 0.432841 +v 1.109136 -7.583718 -5.788712 +v 1.109136 1.421237 1.150594 +v 1.109136 1.152737 1.225781 +v 0.613250 6.186937 4.344060 +v 0.613250 5.905007 4.230343 +v 0.807799 6.186929 4.345726 +v -0.367306 5.610397 4.110493 +v -0.804550 1.432484 2.382775 +v 0.367306 5.610397 4.110493 +v -0.613250 6.186937 4.344060 +v -0.807799 6.186929 4.345726 +v -0.613250 5.905007 4.230343 +v -0.818644 -8.777006 -1.761974 +v 0.818644 -8.777006 -1.761974 +v -0.775337 0.764493 2.107609 +v -1.109136 1.608211 2.157616 +v -1.109136 7.455005 0.432841 +v -1.109136 1.421237 1.150594 +v -1.109136 -7.583718 -5.788712 +v -1.109136 1.152737 1.225781 +v -0.629678 6.747400 -0.181054 +v 0.440888 6.323021 -0.358271 +v 0.629678 6.747400 -0.181054 +v -0.784480 5.973367 0.123958 +v -0.784649 4.758710 3.184810 +v 0.784480 5.973367 0.123958 +v 1.109136 7.447666 2.316916 +v 1.109136 -8.686133 -2.068621 +v 0.804550 1.432484 2.382775 +v 0.775337 0.764493 2.107609 +v -1.109136 0.828570 1.868721 +v -1.109136 -8.686133 -2.068621 +v -1.109136 6.187971 4.078715 +v -0.613250 6.189570 3.985306 +v -1.109136 6.193875 2.563060 +v -1.109136 6.187971 4.078715 +v -0.823423 6.188930 3.832172 +v -0.808240 7.456246 0.114420 +v -1.109136 7.447666 2.316916 +v -1.109136 6.483851 2.313161 +v -0.839998 6.483851 2.313161 +v -0.855295 6.193875 2.563060 +v -0.855096 7.454038 0.681172 +v -0.851242 7.447666 2.316916 +v -0.839998 6.483851 2.313161 +v -0.613250 5.916148 3.869261 +v -0.613250 5.905007 4.230343 +v -0.367306 5.610397 4.110493 +v -0.613250 6.189570 3.985306 +v -0.613250 6.186937 4.344060 +v -0.804550 1.432484 2.382775 +v -0.804550 1.432484 2.382775 +v -0.836434 1.761413 1.534160 +v -0.864811 1.209287 1.297543 +v -0.866598 1.383340 1.228519 +v -1.109136 1.608211 2.157616 +v -1.109136 1.854146 1.546994 +v -0.836434 1.761413 1.534160 +v -1.109136 1.746315 1.309461 +v -0.853872 1.693580 1.365606 +v -1.109136 1.421237 1.150594 +v -0.866598 1.383340 1.228519 +v -1.109136 1.152737 1.225781 +v -0.864811 1.209287 1.297543 +v -1.109136 0.828570 1.868721 +v -0.775337 0.764493 2.107609 +v -0.818644 -8.777006 -1.761974 +v -1.326758 -8.130615 -6.048566 +v -1.332151 -7.578506 -5.806303 +v -0.882817 -7.449294 -6.242330 +v -1.263812 -9.320386 -2.284041 +v -1.260158 -8.694220 -2.041337 +v -0.527911 -9.865828 -0.558223 +v -0.549908 -9.201518 -0.329464 +v -0.855295 6.193875 2.563060 +v -0.637953 7.455005 0.432841 +v -0.610240 6.670014 0.107513 +v -0.586664 6.044359 -0.058251 +v -0.413784 6.208827 -0.016872 +v -0.629678 6.747400 -0.181054 +v -0.645065 7.456246 0.114420 +v -0.610240 6.670014 0.107513 +v -0.784480 5.973367 0.123958 +v -0.637953 7.455005 0.432841 +v -0.413784 6.208827 -0.016872 +v -0.440888 6.323021 -0.358271 +v -0.807799 6.186929 4.345726 +v -0.613250 6.189570 3.985306 +v 0.586664 6.044359 -0.058251 +v 0.889556 -7.991922 -6.487401 +v -0.889556 -7.991922 -6.487401 +v 0.784480 5.973367 0.123958 +v 0.855096 7.454038 0.681172 +v 0.610240 6.670014 0.107513 +v 0.637953 7.455005 0.432841 +v 0.645065 7.456246 0.114420 +v 0.610240 6.670014 0.107513 +v 1.109136 6.187971 4.078715 +v 1.109136 6.193875 2.563060 +v 0.823423 6.188930 3.832172 +v 0.851242 7.447666 2.316916 +v 0.839998 6.483851 2.313161 +v 0.855295 6.193875 2.563060 +v 0.413784 6.208827 -0.016872 +v 0.440888 6.323021 -0.358271 +v 0.413784 6.208827 -0.016872 +v 0.629678 6.747400 -0.181054 +v 0.807799 6.186929 4.345726 +v 0.613250 6.189570 3.985306 +v 0.784649 4.758710 3.184810 +v 0.586664 6.044359 -0.058251 +v 0.613250 6.186937 4.344060 +v 0.613250 6.189570 3.985306 +v 0.823423 6.188930 3.832172 +v 0.808240 7.456246 0.114420 +v 1.109136 7.447666 2.316916 +v 0.851242 7.447666 2.316916 +v 0.839998 6.483851 2.313161 +v 1.109136 6.483851 2.313161 +v 0.855295 6.193875 2.563060 +v -0.330292 5.643600 3.823889 +v 0.367306 5.610397 4.110493 +v 0.613250 5.916148 3.869261 +v 0.330292 5.643600 3.823889 +v 0.613250 5.905007 4.230343 +v 0.613250 6.186937 4.344060 +v 0.807799 6.186929 4.345726 +v 0.804550 1.432484 2.382775 +v 0.804550 1.432484 2.382775 +v 0.775337 0.764493 2.107609 +v 0.864811 1.209287 1.297543 +v 0.866598 1.383340 1.228519 +v 0.853872 1.693580 1.365606 +v 0.836434 1.761413 1.534160 +v 1.109136 1.608211 2.157616 +v 0.804550 1.432484 2.382775 +v 0.836434 1.761413 1.534160 +v 1.109136 1.854146 1.546994 +v 0.853872 1.693580 1.365606 +v 1.109136 1.746315 1.309461 +v 0.866598 1.383340 1.228519 +v 1.109136 1.421237 1.150594 +v 0.864811 1.209287 1.297543 +v 1.109136 1.152737 1.225781 +v 0.775337 0.764493 2.107609 +v 1.109136 0.828570 1.868721 +v 0.775337 0.764493 2.107609 +v 0.818644 -8.777006 -1.761974 +v -0.613250 6.186937 4.344060 +v 1.326758 -8.130615 -6.048566 +v 0.882817 -7.449294 -6.242330 +v 1.332151 -7.578506 -5.806303 +v 1.260158 -8.694220 -2.041337 +v 1.263812 -9.320386 -2.284041 +v 0.549908 -9.201518 -0.329464 +v 0.637953 7.455005 0.432841 +v 0.610240 6.670014 0.107513 +v 0.586664 6.044359 -0.058251 +v -0.586664 6.044359 -0.058251 +v -0.639183 4.693711 3.350439 +v 0.639183 4.693711 3.350439 +v 0.784649 4.758710 3.184810 +v -1.109136 7.447666 2.316916 +v -0.851242 7.447666 2.316916 +v -0.807799 6.186929 4.345726 +v -0.775337 0.764493 2.107609 +v -0.853872 1.693580 1.365606 +v -0.804550 1.432484 2.382775 +v -0.775337 0.764493 2.107609 +v 0.613250 6.189570 3.985306 +v 1.109136 0.828570 1.868721 +v 0.527911 -9.865828 -0.558223 +v 0.645065 7.456246 0.114420 +v -0.645065 7.456246 0.114420 +vt 0.318637 0.836460 +vt 0.322686 0.835525 +vt 0.318469 0.836302 +vt 0.322662 0.829447 +vt 0.322506 0.829146 +vt 0.318606 0.828545 +vt 0.318439 0.828704 +vt 0.322533 0.835828 +vt 0.335540 0.815841 +vt 0.335689 0.816068 +vt 0.335880 0.815923 +vt 0.335363 0.817407 +vt 0.335570 0.817415 +vt 0.335928 0.815727 +vt 0.335827 0.815658 +vt 0.338110 0.834998 +vt 0.338521 0.834581 +vt 0.338361 0.834565 +vt 0.338450 0.830987 +vt 0.338327 0.831013 +vt 0.338045 0.830721 +vt 0.337797 0.829353 +vt 0.336791 0.829355 +vt 0.338509 0.816056 +vt 0.338639 0.815806 +vt 0.338293 0.815922 +vt 0.338229 0.815719 +vt 0.338328 0.815642 +vt 0.336756 0.815704 +vt 0.337372 0.815710 +vt 0.337407 0.815436 +vt 0.338796 0.817419 +vt 0.338027 0.834876 +vt 0.336577 0.834878 +vt 0.336494 0.835000 +vt 0.336242 0.834568 +vt 0.336082 0.834585 +vt 0.336266 0.831016 +vt 0.351326 0.453820 +vt 0.352262 0.453765 +vt 0.352318 0.454386 +vt 0.365837 0.453882 +vt 0.365836 0.454819 +vt 0.367442 0.455473 +vt 0.371353 0.455145 +vt 0.371355 0.453566 +vt 0.370947 0.453178 +vt 0.367444 0.453230 +vt 0.370945 0.455532 +vt 0.336143 0.830990 +vt 0.336546 0.830723 +vt 0.336722 0.815432 +vt 0.339004 0.817387 +vt 0.351343 0.454443 +vt 0.336608 0.810165 +vt 0.336600 0.809579 +vt 0.335671 0.810452 +vt 0.335670 0.810656 +vt 0.337063 0.810641 +vt 0.336849 0.810420 +vt 0.335654 0.809318 +vt 0.336833 0.809316 +vt 0.308406 0.833228 +vt 0.321347 0.832873 +vt 0.308400 0.831858 +vt 0.323003 0.827899 +vt 0.318606 0.827962 +vt 0.322837 0.831313 +vt 0.308428 0.831448 +vt 0.318119 0.828727 +vt 0.317924 0.828577 +vt 0.334726 0.805815 +vt 0.334724 0.806084 +vt 0.334898 0.805815 +vt 0.333853 0.806363 +vt 0.333448 0.810373 +vt 0.334505 0.806366 +vt 0.333637 0.805810 +vt 0.333465 0.805809 +vt 0.333636 0.806080 +vt 0.333393 0.820149 +vt 0.334845 0.820155 +vt 0.333471 0.811014 +vt 0.318642 0.837043 +vt 0.322847 0.833658 +vt 0.318149 0.836281 +vt 0.308437 0.833638 +vt 0.317955 0.836433 +vt 0.321830 0.833071 +vt 0.321344 0.832110 +vt 0.321826 0.831909 +vt 0.338990 0.829527 +vt 0.338986 0.832448 +vt 0.340382 0.829528 +vt 0.323455 0.829763 +vt 0.308753 0.828027 +vt 0.334875 0.810379 +vt 0.334847 0.811020 +vt 0.317906 0.837069 +vt 0.308789 0.837056 +vt 0.323039 0.837070 +vt 0.337112 0.810416 +vt 0.335399 0.818676 +vt 0.335644 0.820232 +vt 0.335864 0.819933 +vt 0.322740 0.833285 +vt 0.335363 0.817407 +vt 0.335368 0.818297 +vt 0.335604 0.818285 +vt 0.335628 0.818648 +vt 0.336965 0.813654 +vt 0.337545 0.812323 +vt 0.336761 0.811981 +vt 0.336450 0.819974 +vt 0.336387 0.820399 +vt 0.336865 0.820333 +vt 0.336109 0.820051 +vt 0.336132 0.820332 +vt 0.318573 0.837406 +vt 0.297273 0.862936 +vt 0.296468 0.862987 +vt 0.296450 0.863484 +vt 0.296375 0.863361 +vt 0.296982 0.862655 +vt 0.296349 0.862774 +vt 0.296468 0.862987 +vt 0.296171 0.863007 +vt 0.296386 0.863086 +vt 0.296139 0.863393 +vt 0.296375 0.863361 +vt 0.296301 0.863656 +vt 0.296450 0.863484 +vt 0.296981 0.863857 +vt 0.297271 0.863612 +vt 0.308818 0.837437 +vt 0.360171 0.453244 +vt 0.360165 0.453779 +vt 0.359601 0.453718 +vt 0.363650 0.453662 +vt 0.363616 0.454257 +vt 0.365371 0.453864 +vt 0.365306 0.454484 +vt 0.336615 0.811674 +vt 0.336865 0.813929 +vt 0.336111 0.813900 +vt 0.335542 0.813822 +vt 0.335664 0.813999 +vt 0.336339 0.815514 +vt 0.335928 0.815727 +vt 0.336384 0.815738 +vt 0.335562 0.813576 +vt 0.335880 0.815923 +vt 0.336756 0.815704 +vt 0.336722 0.815432 +vt 0.335975 0.820462 +vt 0.336109 0.820051 +vt 0.335363 0.814848 +vt 0.358032 0.453178 +vt 0.359611 0.453190 +vt 0.335454 0.806199 +vt 0.336854 0.806081 +vt 0.335993 0.805859 +vt 0.338293 0.815922 +vt 0.338229 0.815719 +vt 0.337754 0.815749 +vt 0.338970 0.820225 +vt 0.339108 0.818663 +vt 0.338736 0.819939 +vt 0.337473 0.807394 +vt 0.336699 0.807758 +vt 0.336562 0.808069 +vt 0.335538 0.814723 +vt 0.337407 0.815436 +vt 0.337372 0.815710 +vt 0.337796 0.815517 +vt 0.338647 0.820469 +vt 0.338501 0.820063 +vt 0.335647 0.809115 +vt 0.335427 0.805954 +vt 0.338482 0.820342 +vt 0.337096 0.809313 +vt 0.337040 0.809089 +vt 0.322734 0.831687 +vt 0.339004 0.817387 +vt 0.338796 0.817419 +vt 0.338866 0.818294 +vt 0.339103 0.818281 +vt 0.338879 0.818655 +vt 0.336917 0.819991 +vt 0.337747 0.820341 +vt 0.338164 0.819987 +vt 0.337700 0.819998 +vt 0.338225 0.820410 +vt 0.338482 0.820342 +vt 0.323089 0.827553 +vt 0.318534 0.827599 +vt 0.299359 0.862966 +vt 0.299357 0.863640 +vt 0.300188 0.863503 +vt 0.300265 0.863381 +vt 0.300257 0.863103 +vt 0.300174 0.863004 +vt 0.299646 0.862698 +vt 0.299359 0.862966 +vt 0.300174 0.863004 +vt 0.300297 0.862779 +vt 0.300257 0.863103 +vt 0.300477 0.863024 +vt 0.300265 0.863381 +vt 0.300502 0.863417 +vt 0.300188 0.863503 +vt 0.300332 0.863678 +vt 0.299357 0.863640 +vt 0.317870 0.827942 +vt 0.317895 0.827574 +vt 0.308779 0.827646 +vt 0.336132 0.820332 +vt 0.357471 0.453223 +vt 0.358034 0.453706 +vt 0.357469 0.453758 +vt 0.354011 0.454184 +vt 0.353986 0.453589 +vt 0.352318 0.454386 +vt 0.336746 0.805809 +vt 0.335925 0.814967 +vt 0.340207 0.829355 +vt 0.339165 0.829353 +vt 0.339115 0.832606 +vt 0.340249 0.832608 +vt 0.340379 0.832450 +vt 0.323476 0.835203 +vt 0.335570 0.817415 +vt 0.323128 0.837416 +vt 0.297271 0.863612 +vt 0.296386 0.863086 +vt 0.297273 0.862936 +vt 0.317935 0.837436 +vt 0.338501 0.820063 +vt 0.299652 0.863857 +vt 0.352262 0.453765 +vt 0.322736 0.831880 +vt 0.322741 0.833092 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0039 +vn 0.0000 0.9588 0.2841 +vn 0.0000 0.9484 0.3172 +vn 0.0000 -0.3256 0.9455 +vn 0.0000 -0.9535 -0.3014 +vn 0.1103 0.4144 -0.9034 +vn -0.0735 0.4256 -0.9019 +vn 0.3275 0.3966 -0.8576 +vn 0.9708 0.1320 -0.2001 +vn 0.7758 0.2586 -0.5755 +vn 0.4477 0.3447 -0.8251 +vn -0.3560 0.3788 -0.8543 +vn -0.5482 0.3301 -0.7685 +vn -0.1944 0.3772 -0.9055 +vn -0.0010 0.3847 -0.9230 +vn 0.1540 0.3797 -0.9122 +vn 0.8357 -0.2111 0.5070 +vn 0.9636 -0.1035 0.2467 +vn 0.9886 0.0575 -0.1389 +vn 0.9535 0.1154 -0.2784 +vn -0.0080 -0.3741 0.9274 +vn 0.0012 -0.3791 0.9254 +vn 0.2219 -0.3696 0.9023 +vn -0.0034 -0.3819 0.9242 +vn -0.1726 -0.3764 0.9102 +vn 0.0022 -0.3819 0.9242 +vn 0.0080 -0.3741 0.9274 +vn -0.2219 -0.3696 0.9023 +vn -0.0011 -0.3791 0.9254 +vn -0.4729 -0.3319 0.8162 +vn 0.3572 -0.3516 0.8653 +vn -0.1539 -0.3721 0.9154 +vn -0.9636 -0.1035 0.2467 +vn -0.9886 0.0575 -0.1389 +vn -0.9535 0.1154 -0.2784 +vn -0.0009 0.3847 -0.9230 +vn 0.0010 0.3847 -0.9230 +vn 0.0009 0.3847 -0.9230 +vn 0.0000 0.9310 0.3650 +vn 0.0000 0.9300 0.3676 +vn 0.0000 0.9302 0.3669 +vn 0.9710 -0.0914 0.2209 +vn 0.2322 -0.3719 0.8988 +vn 0.1539 -0.3734 0.9148 +vn -0.8442 -0.2022 0.4964 +vn -0.9710 -0.0914 0.2209 +vn -0.8357 -0.2111 0.5070 +vn 0.5563 0.3246 -0.7649 +vn 0.0001 0.9608 0.2772 +vn -0.0015 1.0000 0.0040 +vn -0.0014 1.0000 0.0023 +vn -0.5115 0.3297 -0.7935 +vn 0.0000 -0.0039 1.0000 +vn 0.0001 0.4597 0.8881 +vn 0.0000 0.2278 0.9737 +vn -0.0000 0.8351 0.5501 +vn 0.9387 -0.0984 0.3305 +vn 0.9999 0.0117 -0.0023 +vn 0.9998 0.0092 0.0149 +vn 0.9323 0.3580 0.0512 +vn 0.9411 0.3379 0.0104 +vn 0.5309 0.8401 0.1116 +vn -0.9980 -0.0211 0.0598 +vn -0.9970 0.0146 0.0763 +vn -0.9979 -0.0076 0.0647 +vn -0.9959 0.0068 0.0899 +vn -0.2927 -0.8910 -0.3470 +vn -0.3083 -0.9391 0.1520 +vn -0.3077 -0.9451 -0.1103 +vn -0.3087 -0.5872 0.7483 +vn -0.2906 -0.7546 0.5883 +vn -0.3189 0.0702 0.9452 +vn -0.3014 -0.1559 0.9407 +vn -0.2877 0.6969 0.6569 +vn -0.3131 0.5002 0.8073 +vn -0.1491 0.8829 0.4452 +vn -0.2405 0.8515 0.4659 +vn -0.9295 0.1497 -0.3372 +vn -0.9281 0.1420 -0.3443 +vn -0.3883 0.3779 -0.8405 +vn -0.9660 -0.0947 0.2406 +vn -0.9906 -0.0493 0.1279 +vn -0.9257 -0.1502 0.3472 +vn -0.9273 -0.1397 0.3472 +vn 0.9997 0.0240 0.0100 +vn 0.9368 -0.1053 0.3338 +vn 0.8731 -0.0619 0.4836 +vn 0.2534 -0.2345 0.9385 +vn 0.0039 -0.2479 0.9688 +vn 0.9613 0.2751 0.0139 +vn 0.9983 0.0446 -0.0387 +vn 0.8731 -0.0618 0.4836 +vn 0.9557 -0.0568 0.2888 +vn 0.9367 -0.1053 0.3338 +vn 0.9220 0.3843 0.0482 +vn 0.9207 0.3862 0.0561 +vn -0.0011 1.0000 0.0067 +vn -0.0020 1.0000 0.0042 +vn -0.1880 -0.2385 0.9528 +vn 0.2591 0.4017 -0.8784 +vn -0.3925 0.3826 -0.8364 +vn -0.9557 -0.0568 0.2888 +vn -0.9387 -0.0984 0.3305 +vn -0.8731 -0.0618 0.4836 +vn -0.9367 -0.1053 0.3338 +vn -0.9983 0.0446 -0.0387 +vn 0.0015 1.0000 0.0040 +vn -0.0000 0.9608 0.2772 +vn 0.0012 1.0000 0.0025 +vn -0.9999 0.0117 -0.0023 +vn -0.9998 0.0092 0.0149 +vn -0.9997 0.0240 0.0100 +vn -0.0058 -0.2497 0.9683 +vn -0.9207 0.3862 0.0561 +vn -0.9220 0.3843 0.0482 +vn -0.9613 0.2751 0.0139 +vn 0.0011 1.0000 0.0067 +vn 0.0020 1.0000 0.0042 +vn -0.9140 0.1852 -0.3611 +vn -0.0000 1.0000 0.0073 +vn -0.5563 0.3246 -0.7649 +vn -0.7857 0.2615 -0.5606 +vn 0.5115 0.3297 -0.7935 +vn 0.0000 0.4597 0.8881 +vn 0.2491 0.9578 0.1431 +vn -0.4021 0.9083 0.1151 +vn -0.9323 0.3580 0.0512 +vn -0.3771 0.9132 0.1545 +vn -0.9411 0.3379 0.0104 +vn 0.9980 -0.0211 0.0598 +vn 0.9949 -0.0724 0.0701 +vn 0.9979 -0.0076 0.0647 +vn 0.9959 0.0068 0.0899 +vn 0.9944 -0.0057 0.1052 +vn 0.9970 0.0146 0.0763 +vn 0.2927 -0.8910 -0.3470 +vn 0.2692 -0.9013 -0.3393 +vn 0.3091 -0.9446 -0.1104 +vn 0.3083 -0.9391 0.1520 +vn 0.2906 -0.7546 0.5883 +vn 0.3087 -0.5872 0.7483 +vn 0.3014 -0.1559 0.9407 +vn 0.3189 0.0702 0.9452 +vn 0.3131 0.5002 0.8073 +vn 0.2877 0.6969 0.6569 +vn 0.2405 0.8515 0.4659 +vn 0.8442 -0.2022 0.4964 +vn 0.1539 -0.3733 0.9148 +vn 0.9294 0.1498 -0.3372 +vn 0.5126 0.3515 -0.7834 +vn 0.9281 0.1420 -0.3443 +vn 0.9906 -0.0493 0.1279 +vn 0.9660 -0.0947 0.2406 +vn 0.9273 -0.1397 0.3472 +vn -0.9368 -0.1053 0.3338 +vn -0.8731 -0.0619 0.4836 +vn 0.0000 0.9318 0.3630 +vn 0.0000 0.9309 0.3653 +vn -0.0000 0.9304 0.3666 +vn -0.9949 -0.0724 0.0701 +vn -0.9944 -0.0057 0.1052 +vn -0.2692 -0.9013 -0.3393 +vn -0.1539 -0.3720 0.9154 +vn 0.1491 0.8829 0.4452 +vn 0.9257 -0.1502 0.3472 +vn 0.0000 0.3847 -0.9230 +usemtl Material.001 +s off +f 1487/1540/683 1488/1541/683 1489/1542/683 +f 1490/1543/684 1491/1544/684 1492/1545/684 +f 1490/1543/684 1492/1545/684 1493/1546/684 +f 1487/1540/683 1494/1547/683 1488/1541/683 +f 1495/1548/685 1496/1549/685 1497/1550/685 +f 1495/1548/685 1498/1551/685 1499/1552/685 +f 1497/1550/685 1500/1553/685 1501/1554/685 +f 1502/1555/686 1503/1556/686 1504/1557/686 +f 1503/1556/686 1505/1558/686 1506/1559/686 +f 1501/1554/685 1495/1548/685 1497/1550/685 +f 1507/1560/686 1508/1561/686 1509/1562/686 +f 1510/1563/685 1511/1564/685 1512/1565/685 +f 1513/1566/685 1512/1565/685 1514/1567/685 +f 1515/1568/687 1516/1569/687 1517/1570/687 +f 1511/1564/685 1510/1563/685 1518/1571/685 +f 1502/1555/686 1519/1572/686 1520/1573/686 +f 1521/1574/686 1520/1573/686 1522/1575/686 +f 1523/1576/686 1522/1575/686 1524/1577/686 +f 1525/1578/688 1526/1579/688 1527/1580/688 +f 1511/1564/685 1514/1567/685 1512/1565/685 +f 1528/1581/689 1529/1582/689 1530/1583/689 +f 1531/1584/689 1532/1585/689 1533/1586/689 +f 1534/1587/689 1530/1583/689 1535/1588/689 +f 1536/1589/686 1524/1577/686 1537/1590/686 +f 1496/1549/685 1495/1548/685 1499/1552/685 +f 1519/1572/686 1502/1555/686 1504/1557/686 +f 1504/1557/686 1503/1556/686 1506/1559/686 +f 1537/1590/686 1507/1560/686 1509/1562/686 +f 1538/1591/687 1515/1568/687 1517/1570/687 +f 1539/1592/685 1511/1564/685 1518/1571/685 +f 1521/1574/686 1502/1555/686 1520/1573/686 +f 1523/1576/686 1521/1574/686 1522/1575/686 +f 1536/1589/686 1523/1576/686 1524/1577/686 +f 1540/1593/688 1525/1578/688 1527/1580/688 +f 1534/1587/689 1528/1581/689 1530/1583/689 +f 1535/1588/689 1531/1584/689 1533/1586/689 +f 1533/1586/689 1534/1587/689 1535/1588/689 +f 1509/1562/686 1536/1589/686 1537/1590/686 +f 1507/1560/686 1506/1559/686 1508/1561/686 +s 1 +f 1541/1594/690 1542/1595/691 1543/1596/692 +f 1543/1596/692 1544/1597/693 1545/1598/694 +f 1543/1596/692 1546/1599/695 1541/1594/690 +f 1542/1595/691 1547/1600/696 1543/1596/692 +f 1542/1595/691 1548/1601/697 1547/1600/696 +f 1549/1602/698 1550/1603/699 1551/1604/700 +f 1552/1605/701 1553/1606/702 1491/1544/684 +f 1554/1607/703 1490/1543/684 1493/1546/684 +f 1555/1608/704 1554/1607/703 1556/1609/684 +f 1556/1609/684 1557/1610/684 1555/1608/704 +f 1558/1611/705 1559/1612/706 1560/1613/707 +f 1561/1614/708 1562/1615/709 1563/1616/710 +f 1564/1617/711 1565/1618/712 1566/1619/713 +f 1567/1620/714 1568/1621/715 1569/1622/716 +f 1487/1540/683 1570/1623/717 1494/1547/683 +f 1489/1542/683 1571/1624/718 1572/1625/683 +f 1572/1625/683 1573/1626/719 1574/1627/683 +f 1549/1602/698 1575/1628/720 1550/1603/699 +f 1550/1603/699 1576/1629/721 1551/1604/700 +f 1551/1604/700 1576/1629/721 1577/1630/722 +f 1578/1631/723 1579/1632/724 1580/1633/725 +f 1554/1607/703 1581/1634/684 1490/1543/684 +f 1553/1606/702 1492/1545/684 1491/1544/684 +f 1554/1607/703 1493/1546/684 1556/1609/684 +f 1557/1610/684 1582/1635/726 1555/1608/704 +f 1559/1612/706 1583/1636/727 1560/1613/707 +f 1559/1612/706 1563/1616/710 1583/1636/727 +f 1562/1615/709 1583/1636/727 1563/1616/710 +f 1561/1614/708 1566/1619/713 1562/1615/709 +f 1565/1618/712 1562/1615/709 1566/1619/713 +f 1568/1621/715 1584/1637/728 1569/1622/716 +f 1585/1638/729 1574/1627/683 1586/1639/730 +f 1488/1541/683 1571/1624/718 1489/1542/683 +f 1570/1623/717 1587/1640/731 1494/1547/683 +f 1571/1624/718 1573/1626/719 1572/1625/683 +f 1573/1626/719 1586/1639/730 1574/1627/683 +f 1545/1598/694 1588/1641/732 1546/1599/695 +f 1589/1642/733 1590/1643/734 1591/1644/735 +f 1592/1645/736 1549/1602/698 1573/1626/719 +f 1593/1646/737 1594/1647/738 1595/1648/739 +f 1594/1647/738 1589/1642/733 1596/1649/740 +f 1597/1650/741 1598/1651/742 1599/1652/743 +f 1600/1653/744 1601/1654/745 1602/1655/746 +f 1600/1653/744 1603/1656/684 1604/1657/684 +f 1587/1640/731 1570/1623/717 1605/1658/709 +f 1606/1659/747 1607/1660/748 1608/1661/749 +f 1609/1662/750 1608/1661/749 1607/1660/748 +f 1610/1663/751 1611/1664/752 1612/1665/753 +f 1611/1664/752 1613/1666/754 1614/1667/755 +f 1613/1666/754 1615/1668/756 1616/1669/757 +f 1615/1668/756 1617/1670/758 1618/1671/759 +f 1617/1670/758 1619/1672/760 1620/1673/761 +f 1585/1638/729 1586/1639/730 1621/1674/714 +f 1622/1675/762 1623/1676/763 1624/1677/764 +f 1622/1675/762 1625/1678/765 1626/1679/766 +f 1625/1678/765 1627/1680/767 1628/1681/768 +f 1544/1597/693 1629/1682/769 1545/1598/694 +f 1630/1683/770 1597/1650/741 1631/1684/771 +f 1631/1684/771 1632/1685/772 1633/1686/773 +f 1634/1687/774 1635/1688/775 1636/1689/776 +f 1597/1650/741 1637/1690/777 1631/1684/771 +f 1635/1688/775 1638/1691/778 1636/1689/776 +f 1637/1690/777 1599/1652/743 1629/1682/769 +f 1639/1692/779 1640/1693/780 1634/1687/774 +f 1590/1643/734 1641/1694/781 1642/1695/782 +f 1637/1690/777 1597/1650/741 1599/1652/743 +f 1596/1649/740 1589/1642/733 1591/1644/735 +f 1544/1597/693 1637/1690/777 1629/1682/769 +f 1631/1684/771 1637/1690/777 1632/1685/772 +f 1632/1685/772 1643/1696/783 1633/1686/773 +f 1636/1689/776 1639/1692/779 1634/1687/774 +f 1644/1697/784 1645/1698/785 1624/1677/764 +f 1646/1699/786 1647/1700/787 1648/1701/788 +f 1649/1702/789 1650/1703/790 1651/1704/788 +f 1652/1705/791 1653/1706/792 1654/1707/793 +f 1655/1708/794 1647/1700/787 1656/1709/795 +f 1656/1709/795 1646/1699/786 1657/1710/796 +f 1633/1686/773 1643/1696/783 1658/1711/797 +f 1659/1712/798 1660/1713/799 1661/1714/800 +f 1662/1715/801 1652/1705/791 1663/1716/802 +f 1647/1700/787 1646/1699/786 1656/1709/795 +f 1646/1699/786 1664/1717/803 1657/1710/796 +f 1646/1699/786 1648/1701/788 1665/1718/783 +f 1660/1713/799 1651/1704/788 1661/1714/800 +f 1652/1705/791 1654/1707/793 1663/1716/802 +f 1662/1715/801 1663/1716/802 1666/1719/804 +f 1548/1601/697 1667/1720/805 1668/1721/806 +f 1591/1644/735 1590/1643/734 1642/1695/782 +f 1669/1722/807 1554/1607/703 1555/1608/704 +f 1670/1723/737 1671/1724/737 1672/1725/739 +f 1673/1726/808 1672/1725/739 1674/1727/740 +f 1675/1728/809 1602/1655/746 1676/1729/810 +f 1677/1730/811 1678/1731/812 1676/1729/810 +f 1677/1730/811 1679/1732/813 1680/1733/683 +f 1552/1605/701 1681/1734/707 1682/1735/727 +f 1683/1736/814 1684/1737/815 1685/1738/816 +f 1686/1739/817 1687/1740/818 1688/1741/819 +f 1689/1742/820 1690/1743/821 1691/1744/822 +f 1692/1745/823 1691/1744/822 1693/1746/824 +f 1694/1747/825 1693/1746/824 1695/1748/826 +f 1696/1749/827 1695/1748/826 1697/1750/828 +f 1698/1751/829 1697/1750/828 1699/1752/830 +f 1700/1753/831 1701/1754/832 1702/1755/715 +f 1642/1695/782 1641/1694/781 1703/1756/804 +f 1704/1757/833 1644/1697/784 1705/1758/834 +f 1704/1757/833 1706/1759/835 1707/1760/836 +f 1708/1761/837 1707/1760/836 1709/1762/838 +f 1657/1710/796 1664/1717/803 1668/1721/806 +f 1647/1700/787 1710/1763/839 1648/1701/788 +f 1643/1696/783 1711/1764/840 1658/1711/797 +f 1650/1703/790 1661/1714/800 1651/1704/788 +f 1653/1706/792 1674/1727/740 1654/1707/793 +f 1506/1559/686 1505/1558/686 1508/1561/686 +f 1569/1622/716 1584/1637/728 1562/1615/709 +f 1712/1765/841 1713/1766/841 1578/1631/723 +f 1714/1767/842 1715/1768/842 1716/1769/843 +f 1579/1632/724 1716/1769/843 1580/1633/725 +f 1668/1721/806 1664/1717/803 1548/1601/697 +f 1557/1610/684 1700/1753/831 1582/1635/726 +f 1584/1637/728 1583/1636/727 1562/1615/709 +f 1488/1541/683 1717/1770/683 1571/1624/718 +f 1664/1717/803 1547/1600/696 1548/1601/697 +f 1546/1599/695 1543/1596/692 1545/1598/694 +f 1571/1624/718 1592/1645/736 1573/1626/719 +f 1718/1771/737 1593/1646/737 1595/1648/739 +f 1595/1648/739 1594/1647/738 1596/1649/740 +f 1675/1728/809 1600/1653/744 1602/1655/746 +f 1601/1654/745 1600/1653/744 1604/1657/684 +f 1719/1772/712 1587/1640/731 1605/1658/709 +f 1720/1773/844 1606/1659/747 1608/1661/749 +f 1721/1774/845 1609/1662/750 1607/1660/748 +f 1722/1775/846 1610/1663/751 1612/1665/753 +f 1612/1665/753 1611/1664/752 1614/1667/755 +f 1614/1667/755 1613/1666/754 1616/1669/757 +f 1616/1669/757 1615/1668/756 1618/1671/759 +f 1618/1671/759 1617/1670/758 1620/1673/761 +f 1723/1776/847 1585/1638/729 1621/1674/714 +f 1645/1698/785 1622/1675/762 1624/1677/764 +f 1623/1676/763 1622/1675/762 1626/1679/766 +f 1626/1679/766 1625/1678/765 1628/1681/768 +f 1705/1758/834 1644/1697/784 1624/1677/764 +f 1551/1604/700 1669/1722/807 1555/1608/704 +f 1673/1726/808 1670/1723/737 1672/1725/739 +f 1653/1706/792 1673/1726/808 1674/1727/740 +f 1678/1731/812 1675/1728/809 1676/1729/810 +f 1679/1732/813 1677/1730/811 1676/1729/810 +f 1724/1777/683 1677/1730/811 1680/1733/683 +f 1553/1606/702 1552/1605/701 1682/1735/727 +f 1688/1741/819 1683/1736/814 1685/1738/816 +f 1685/1738/816 1686/1739/817 1688/1741/819 +f 1692/1745/823 1689/1742/820 1691/1744/822 +f 1694/1747/825 1692/1745/823 1693/1746/824 +f 1696/1749/827 1694/1747/825 1695/1748/826 +f 1698/1751/829 1696/1749/827 1697/1750/828 +f 1725/1778/848 1698/1751/829 1699/1752/830 +f 1582/1635/726 1700/1753/831 1702/1755/715 +f 1706/1759/835 1704/1757/833 1705/1758/834 +f 1708/1761/837 1704/1757/833 1707/1760/836 +f 1726/1779/849 1708/1761/837 1709/1762/838 +f 1580/1633/725 1712/1765/841 1578/1631/723 +f 1579/1632/724 1714/1767/842 1716/1769/843 +f 1551/1604/700 1577/1630/722 1727/1780/850 +f 1551/1604/700 1727/1780/850 1669/1722/807 +f 1549/1602/698 1592/1645/736 1728/1781/850 +f 1549/1602/698 1728/1781/850 1575/1628/720 +o trigger_pistol_0 +v 0.255916 1.582615 6.859656 +v 0.255916 1.449703 6.660409 +v 0.255916 1.810704 6.457509 +v 0.255916 2.466018 6.344805 +v 0.255916 1.892926 6.633237 +v 0.577175 1.435798 6.186546 +v 0.577175 1.810704 6.457509 +v 0.577175 1.449703 6.660409 +v 0.577175 3.484048 5.722968 +v 0.577175 3.243770 6.479860 +v 0.577175 2.895699 6.381779 +v 0.577175 1.924939 5.885275 +v 0.577175 2.439333 5.691723 +v 0.577175 2.466018 6.344805 +v 0.577175 3.484048 5.722968 +v 0.401255 3.484048 5.722968 +v 0.401255 3.243770 6.479860 +v 0.401255 3.588838 6.684444 +v 0.401255 3.243770 6.479860 +v 0.401255 3.484048 5.722968 +v 0.401255 4.331121 5.796535 +v 0.401255 4.331121 7.553139 +v 0.401255 3.911054 6.978125 +v 0.401255 4.776393 4.607953 +v 0.401255 5.500355 4.607954 +v 0.401255 5.500354 7.553140 +v -0.401255 4.331121 5.796535 +v -0.401255 4.776393 4.607953 +v 0.401255 4.776393 4.607953 +v -0.401255 5.500355 4.607954 +v 0.401255 5.500355 4.607954 +v 0.401255 4.776393 4.607953 +v 0.577175 2.851677 5.639833 +v -0.577175 3.484048 5.722968 +v -0.577175 3.243770 6.479860 +v -0.401255 3.243770 6.479860 +v -0.255916 1.582615 6.859656 +v -0.255916 1.892926 6.633237 +v -0.255916 1.810704 6.457509 +v -0.401255 3.243770 6.479860 +v -0.401255 3.588838 6.684444 +v -0.401255 3.484048 5.722968 +v -0.401255 4.331121 7.553139 +v -0.401255 4.331121 5.796535 +v -0.401255 3.911054 6.978125 +v -0.401255 4.776393 4.607953 +v -0.401255 5.500355 4.607954 +v -0.401255 5.500354 7.553140 +v -0.255916 2.466018 6.344805 +v -0.577175 2.466018 6.344805 +v -0.577175 2.895699 6.381779 +v -0.577175 2.851677 5.639833 +v -0.577175 1.810704 6.457509 +v -0.577175 1.435798 6.186546 +v -0.577175 1.449703 6.660409 +v -0.577175 3.484048 5.722968 +v -0.577175 1.924939 5.885275 +v -0.577175 2.439333 5.691723 +v 0.577175 3.243770 6.479860 +v 0.401255 4.331121 5.796535 +v -0.401255 4.776393 4.607953 +v -0.401255 3.484048 5.722968 +v -0.255916 1.449703 6.660409 +v -0.577175 3.243770 6.479860 +v -0.255916 1.892926 6.633237 +v 0.255916 1.892926 6.633237 +v 0.255916 2.466018 6.344805 +v 0.577175 2.895699 6.381779 +v 0.577175 3.243770 6.479860 +v 0.401255 3.243770 6.479860 +v -0.401255 3.243770 6.479860 +v -0.577175 2.895699 6.381779 +v -0.136434 1.170197 7.267153 +v 0.136434 1.170197 7.267153 +v 0.255916 1.274900 7.159120 +v -0.255916 1.274900 7.159120 +v 0.255916 1.582615 6.859656 +v -0.255916 1.582615 6.859656 +v -0.136434 1.170197 7.267153 +v -0.140214 0.908798 7.158844 +v 0.140214 0.908798 7.158844 +v 0.255916 1.049089 7.041913 +v 0.255916 1.274900 7.159120 +v 0.136434 1.170197 7.267153 +v 0.255916 2.466018 6.344805 +v 0.577175 2.466018 6.344805 +v 0.577175 1.049089 7.041913 +v 0.255916 1.049089 7.041913 +v 0.140214 0.908798 7.158844 +v -0.140214 0.908798 7.158844 +v -0.238265 0.780515 7.270253 +v 0.238265 0.780515 7.270253 +v 0.577175 1.810704 6.457509 +v 0.255916 1.810704 6.457509 +v 0.255916 1.449703 6.660409 +v 0.577175 1.449703 6.660409 +v -0.242153 0.574698 7.190140 +v 0.242153 0.574698 7.190140 +v 0.238265 0.780515 7.270253 +v 0.557295 0.748788 6.906375 +v 0.577175 1.049089 7.041913 +v 0.577175 1.022907 6.562050 +v -0.255916 2.466018 6.344805 +v -0.401255 4.331121 5.796535 +v 0.401255 4.331121 5.796535 +v 0.401255 3.484048 5.722968 +v 0.401255 3.588838 6.684444 +v -0.401255 3.588838 6.684444 +v 0.401255 3.911054 6.978125 +v 0.401255 4.331121 7.553139 +v -0.401255 4.331121 7.553139 +v -0.401255 3.911054 6.978125 +v 0.401255 5.500354 7.553140 +v -0.401255 5.500354 7.553140 +v 0.577175 2.851677 5.639833 +v 0.577175 3.484048 5.722968 +v -0.577175 2.851677 5.639833 +v -0.401255 3.484048 5.722968 +v 0.577175 1.022907 6.562050 +v -0.577175 1.022907 6.562050 +v -0.577175 1.435798 6.186546 +v 0.577175 1.435798 6.186546 +v -0.577175 1.924939 5.885275 +v -0.577175 2.439333 5.691723 +v 0.577175 2.439333 5.691723 +v 0.577175 1.924939 5.885275 +v 0.242153 0.574698 7.190140 +v -0.242153 0.574698 7.190140 +v -0.557295 0.748788 6.906375 +v 0.557295 0.748788 6.906375 +v -0.577175 3.243770 6.479860 +v -0.255916 1.049089 7.041913 +v -0.577175 2.466018 6.344805 +v -0.255916 1.274900 7.159120 +v -0.577175 1.049089 7.041913 +v -0.577175 3.484048 5.722968 +v -0.577175 1.810704 6.457509 +v -0.577175 1.449703 6.660409 +v -0.255916 1.449703 6.660409 +v -0.255916 1.810704 6.457509 +v -0.255916 1.049089 7.041913 +v -0.557295 0.748788 6.906375 +v -0.238265 0.780515 7.270253 +v -0.577175 1.022907 6.562050 +v -0.577175 1.049089 7.041913 +v -0.255916 2.466018 6.344805 +vt 0.482997 0.972676 +vt 0.483169 0.972693 +vt 0.483177 0.972380 +vt 0.483034 0.971858 +vt 0.483023 0.972386 +vt 0.471310 0.981774 +vt 0.471246 0.981454 +vt 0.471009 0.981626 +vt 0.472210 0.980596 +vt 0.471654 0.980527 +vt 0.471614 0.980779 +vt 0.471647 0.981549 +vt 0.471923 0.981275 +vt 0.471511 0.981066 +vt 0.472210 0.980596 +vt 0.472225 0.980472 +vt 0.471669 0.980404 +vt 0.471639 0.980122 +vt 0.471669 0.980404 +vt 0.472225 0.980472 +vt 0.472428 0.979907 +vt 0.471300 0.979390 +vt 0.471545 0.979829 +vt 0.473322 0.979971 +vt 0.473535 0.979507 +vt 0.471644 0.978639 +vt 0.480249 0.946278 +vt 0.480249 0.945382 +vt 0.480816 0.945382 +vt 0.480249 0.944870 +vt 0.480816 0.944870 +vt 0.480816 0.945382 +vt 0.472077 0.981026 +vt 0.468113 0.980573 +vt 0.468670 0.980511 +vt 0.468657 0.980387 +vt 0.482644 0.972678 +vt 0.482622 0.972386 +vt 0.482468 0.972377 +vt 0.468657 0.980387 +vt 0.468690 0.980106 +vt 0.468100 0.980449 +vt 0.469037 0.979378 +vt 0.467904 0.979882 +vt 0.468786 0.979814 +vt 0.467009 0.979936 +vt 0.466802 0.979469 +vt 0.468701 0.978624 +vt 0.482618 0.971864 +vt 0.468807 0.981051 +vt 0.468707 0.980763 +vt 0.468241 0.981005 +vt 0.469067 0.981441 +vt 0.469000 0.981761 +vt 0.469302 0.981616 +vt 0.468113 0.980573 +vt 0.468666 0.981532 +vt 0.468393 0.981256 +vt 0.471654 0.980527 +vt 0.480816 0.946278 +vt 0.480249 0.945382 +vt 0.468100 0.980449 +vt 0.482469 0.972694 +vt 0.468670 0.980511 +vt 0.482622 0.972386 +vt 0.483023 0.972386 +vt 0.483034 0.971858 +vt 0.480078 0.973332 +vt 0.480077 0.973077 +vt 0.479953 0.973077 +vt 0.479387 0.973079 +vt 0.479263 0.973334 +vt 0.482753 0.972998 +vt 0.482894 0.972996 +vt 0.482958 0.972932 +vt 0.482686 0.972938 +vt 0.482997 0.972676 +vt 0.482644 0.972678 +vt 0.482753 0.972998 +vt 0.482726 0.973162 +vt 0.482929 0.973155 +vt 0.483051 0.973046 +vt 0.482958 0.972932 +vt 0.482894 0.972996 +vt 0.479852 0.973637 +vt 0.480079 0.973637 +vt 0.480081 0.974789 +vt 0.479855 0.974790 +vt 0.479773 0.974919 +vt 0.479575 0.974919 +vt 0.479506 0.975040 +vt 0.479843 0.975039 +vt 0.480080 0.974106 +vt 0.479853 0.974107 +vt 0.479854 0.974399 +vt 0.480081 0.974399 +vt 0.469982 0.982043 +vt 0.470324 0.982045 +vt 0.470322 0.981889 +vt 0.470645 0.982004 +vt 0.470647 0.981771 +vt 0.470947 0.981928 +vt 0.479491 0.973638 +vt 0.480249 0.946278 +vt 0.480816 0.946278 +vt 0.480816 0.946878 +vt 0.479953 0.972794 +vt 0.479386 0.972795 +vt 0.479952 0.972486 +vt 0.479951 0.971983 +vt 0.479384 0.971985 +vt 0.479385 0.972488 +vt 0.479949 0.971158 +vt 0.479382 0.971159 +vt 0.480940 0.947328 +vt 0.480940 0.946878 +vt 0.480125 0.947328 +vt 0.480249 0.946878 +vt 0.480940 0.948810 +vt 0.480125 0.948810 +vt 0.480125 0.948416 +vt 0.480940 0.948415 +vt 0.480125 0.948010 +vt 0.480125 0.947622 +vt 0.480940 0.947622 +vt 0.480940 0.948010 +vt 0.480704 0.949355 +vt 0.480362 0.949355 +vt 0.480139 0.949120 +vt 0.480926 0.949120 +vt 0.479262 0.973079 +vt 0.482592 0.973062 +vt 0.479264 0.973639 +vt 0.482686 0.972938 +vt 0.479266 0.974791 +vt 0.480125 0.946878 +vt 0.479265 0.974108 +vt 0.479265 0.974401 +vt 0.479492 0.974400 +vt 0.479492 0.974108 +vt 0.479493 0.974791 +vt 0.469662 0.981998 +vt 0.469986 0.981887 +vt 0.469361 0.981919 +vt 0.469663 0.981765 +vt 0.482618 0.971864 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.9531 0.3026 +vn 0.0000 -0.9364 -0.3508 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 -0.0000 0.0000 +vn 0.0000 0.4977 0.8674 +vn 0.0000 0.5444 0.8388 +vn 0.0000 0.1395 0.9902 +vn 0.0000 -0.1979 0.9802 +vn 0.0000 -0.2712 0.9625 +vn 0.0000 -0.3535 0.9354 +vn -0.0000 -0.3697 0.9291 +vn 0.0000 -0.1606 0.9870 +vn 0.0000 0.7181 0.6960 +vn 0.0000 0.7113 0.7029 +vn -0.0000 0.7044 0.7098 +vn 0.0000 0.6629 0.7487 +vn 0.0000 0.6268 0.7792 +vn -0.4404 -0.3550 0.8247 +vn -0.4552 -0.3352 0.8249 +vn 0.2991 -0.3616 0.8831 +vn 0.9038 -0.1780 0.3893 +vn 0.9745 -0.1034 0.1993 +vn 0.5796 -0.3268 0.7465 +vn 0.0001 0.1395 0.9902 +vn 0.0000 0.0850 0.9964 +vn -0.0023 0.6611 0.7503 +vn -0.0000 0.6735 0.7392 +vn -0.0023 0.6496 0.7603 +vn 0.0017 0.6512 0.7589 +vn 0.0038 0.6541 0.7564 +vn -0.0023 0.6547 0.7559 +vn 0.0000 0.3882 0.9216 +vn 0.0000 0.2799 0.9600 +vn 0.0000 0.5604 0.8282 +vn 0.0000 0.6274 0.7787 +vn -0.2580 -0.3462 0.9020 +vn 0.3908 -0.3275 0.8603 +vn 0.3829 -0.3520 0.8541 +vn 0.8580 -0.2283 0.4601 +vn 0.9627 -0.1436 0.2294 +vn 0.9997 -0.0226 0.0012 +vn 0.0000 0.1148 0.9934 +vn 0.0000 0.0865 -0.9962 +vn 0.0000 0.1129 -0.9936 +vn 0.0000 -0.5671 0.8236 +vn 0.0000 -0.6219 0.7831 +vn 0.0000 -0.7215 0.6924 +vn 0.0000 -0.5953 0.8035 +vn 0.0001 -0.2977 0.9547 +vn 0.0000 -0.7663 0.6425 +vn 0.0000 -0.0000 1.0000 +vn 0.0000 0.0456 -0.9990 +vn 0.0000 0.1303 -0.9915 +vn 0.0000 0.0285 -0.9996 +vn 0.0000 0.1158 -0.9933 +vn -0.0000 -0.7114 -0.7028 +vn -0.0000 -0.7480 -0.6637 +vn 0.0000 -0.6258 -0.7800 +vn 0.0000 -0.5761 -0.8174 +vn -0.0000 -0.4689 -0.8832 +vn 0.0000 -0.2781 -0.9606 +vn 0.0000 -0.2019 -0.9794 +vn -0.0000 -0.4113 -0.9115 +vn 0.0000 -0.8524 -0.5229 +vn 0.0000 -0.8304 -0.5572 +vn 0.0000 -0.8071 -0.5904 +vn -0.9038 -0.1780 0.3893 +vn -0.9745 -0.1034 0.1993 +vn 0.0023 0.6611 0.7503 +vn -0.8580 -0.2283 0.4601 +vn -0.5059 -0.3351 0.7948 +vn -0.9997 -0.0226 0.0012 +vn -0.9627 -0.1436 0.2294 +vn 0.0000 0.1149 0.9934 +usemtl Material.001 +s off +f 1729/1782/851 1730/1783/851 1731/1784/851 +f 1731/1784/851 1732/1785/851 1733/1786/851 +f 1734/1787/851 1735/1788/851 1736/1789/851 +f 1737/1790/851 1738/1791/851 1739/1792/851 +f 1734/1787/851 1740/1793/851 1735/1788/851 +f 1741/1794/851 1742/1795/851 1735/1788/851 +f 1743/1796/852 1744/1797/852 1745/1798/852 +f 1746/1799/851 1747/1800/851 1748/1801/851 +f 1749/1802/851 1750/1803/851 1751/1804/851 +f 1746/1799/851 1748/1801/851 1749/1802/851 +f 1749/1802/851 1752/1805/851 1753/1806/851 +f 1754/1807/851 1750/1803/851 1749/1802/851 +f 1755/1808/853 1756/1809/853 1757/1810/853 +f 1758/1811/854 1759/1812/854 1760/1813/854 +f 1742/1795/851 1741/1794/851 1761/1814/851 +f 1762/1815/852 1763/1816/852 1764/1817/852 +f 1765/1818/855 1766/1819/855 1767/1820/855 +f 1768/1821/855 1769/1822/855 1770/1823/855 +f 1771/1824/855 1772/1825/855 1773/1826/855 +f 1769/1822/855 1773/1826/855 1772/1825/855 +f 1774/1827/855 1772/1825/855 1775/1828/855 +f 1776/1829/855 1775/1828/855 1772/1825/855 +f 1777/1830/855 1767/1820/855 1766/1819/855 +f 1778/1831/855 1779/1832/855 1780/1833/855 +f 1781/1834/855 1782/1835/855 1783/1836/855 +f 1784/1837/855 1780/1833/855 1779/1832/855 +f 1785/1838/855 1782/1835/855 1781/1834/855 +f 1786/1839/855 1785/1838/855 1781/1834/855 +f 1733/1786/851 1729/1782/851 1731/1784/851 +f 1761/1814/851 1737/1790/851 1739/1792/851 +f 1740/1793/851 1741/1794/851 1735/1788/851 +f 1787/1840/852 1743/1796/852 1745/1798/852 +f 1751/1804/851 1746/1799/851 1749/1802/851 +f 1753/1806/851 1754/1807/851 1749/1802/851 +f 1788/1841/853 1755/1808/853 1757/1810/853 +f 1789/1842/854 1758/1811/854 1760/1813/854 +f 1739/1792/851 1742/1795/851 1761/1814/851 +f 1790/1843/852 1762/1815/852 1764/1817/852 +f 1791/1844/855 1765/1818/855 1767/1820/855 +f 1770/1823/855 1769/1822/855 1772/1825/855 +f 1771/1824/855 1776/1829/855 1772/1825/855 +f 1786/1839/855 1778/1831/855 1780/1833/855 +f 1792/1845/855 1784/1837/855 1779/1832/855 +f 1778/1831/855 1786/1839/855 1781/1834/855 +s 1 +f 1793/1846/856 1794/1847/857 1795/1848/858 +f 1796/1849/859 1797/1850/860 1798/1851/861 +f 1799/1852/862 1800/1853/863 1796/1849/859 +f 1801/1854/864 1802/1855/864 1803/1856/865 +f 1804/1857/866 1803/1856/865 1805/1858/867 +f 1794/1847/857 1793/1846/856 1806/1859/868 +f 1807/1860/869 1808/1861/870 1809/1862/871 +f 1810/1863/872 1811/1864/873 1812/1865/874 +f 1813/1866/875 1814/1867/876 1796/1849/859 +f 1730/1783/851 1729/1782/851 1811/1864/873 +f 1815/1868/877 1816/1869/878 1817/1870/879 +f 1818/1871/880 1819/1872/881 1820/1873/882 +f 1821/1874/883 1822/1875/884 1823/1876/885 +f 1814/1867/876 1813/1866/875 1822/1875/884 +f 1816/1869/878 1815/1868/877 1824/1877/886 +f 1825/1878/887 1826/1879/888 1827/1880/889 +f 1828/1881/890 1829/1882/891 1827/1880/889 +f 1830/1883/892 1736/1789/851 1829/1882/891 +f 1830/1883/892 1734/1787/851 1736/1789/851 +f 1800/1853/863 1831/1884/893 1813/1866/875 +f 1832/1885/894 1833/1886/894 1834/1887/895 +f 1835/1888/896 1836/1889/897 1799/1852/862 +f 1836/1889/897 1835/1888/896 1837/1890/898 +f 1838/1891/899 1839/1892/900 1840/1893/901 +f 1841/1894/902 1842/1895/902 1839/1892/900 +f 1843/1896/903 1834/1887/895 1844/1897/904 +f 1845/1898/905 1846/1899/906 1834/1887/895 +f 1847/1900/907 1848/1901/908 1849/1902/909 +f 1850/1903/910 1849/1902/909 1851/1904/911 +f 1852/1905/912 1853/1906/913 1854/1907/914 +f 1845/1898/905 1843/1896/903 1853/1906/913 +f 1855/1908/915 1856/1909/915 1857/1910/916 +f 1848/1901/908 1847/1900/907 1858/1911/917 +f 1859/1912/860 1800/1853/863 1799/1852/862 +f 1860/1913/918 1808/1861/870 1807/1860/869 +f 1861/1914/876 1831/1884/893 1800/1853/863 +f 1791/1844/855 1860/1913/918 1862/1915/919 +f 1863/1916/920 1819/1872/881 1818/1871/880 +f 1846/1899/906 1845/1898/905 1864/1917/904 +f 1865/1918/883 1866/1919/886 1867/1920/885 +f 1861/1914/876 1865/1918/883 1868/1921/884 +f 1869/1922/878 1867/1920/885 1866/1919/886 +f 1870/1923/921 1825/1878/887 1871/1924/922 +f 1872/1925/923 1870/1923/921 1873/1926/924 +f 1782/1835/855 1872/1925/923 1783/1836/855 +f 1874/1927/925 1793/1846/856 1795/1848/858 +f 1798/1851/861 1799/1852/862 1796/1849/859 +f 1804/1857/866 1801/1854/864 1803/1856/865 +f 1806/1859/868 1804/1857/866 1805/1858/867 +f 1805/1858/867 1794/1847/857 1806/1859/868 +f 1812/1865/874 1807/1860/869 1809/1862/871 +f 1809/1862/871 1810/1863/872 1812/1865/874 +f 1810/1863/872 1730/1783/851 1811/1864/873 +f 1820/1873/882 1815/1868/877 1817/1870/879 +f 1817/1870/879 1818/1871/880 1820/1873/882 +f 1824/1877/886 1821/1874/883 1823/1876/885 +f 1821/1874/883 1814/1867/876 1822/1875/884 +f 1823/1876/885 1816/1869/878 1824/1877/886 +f 1871/1924/922 1825/1878/887 1827/1880/889 +f 1826/1879/888 1828/1881/890 1827/1880/889 +f 1828/1881/890 1830/1883/892 1829/1882/891 +f 1796/1849/859 1800/1853/863 1813/1866/875 +f 1846/1899/906 1832/1885/894 1834/1887/895 +f 1798/1851/861 1835/1888/896 1799/1852/862 +f 1840/1893/901 1836/1889/897 1837/1890/898 +f 1837/1890/898 1838/1891/899 1840/1893/901 +f 1838/1891/899 1841/1894/902 1839/1892/900 +f 1843/1896/903 1845/1898/905 1834/1887/895 +f 1850/1903/910 1847/1900/907 1849/1902/909 +f 1854/1907/914 1850/1903/910 1851/1904/911 +f 1851/1904/911 1852/1905/912 1854/1907/914 +f 1852/1905/912 1845/1898/905 1853/1906/913 +f 1858/1911/917 1855/1908/915 1857/1910/916 +f 1857/1910/916 1848/1901/908 1858/1911/917 +f 1862/1915/919 1860/1913/918 1807/1860/869 +f 1765/1818/855 1791/1844/855 1862/1915/919 +f 1869/1922/878 1863/1916/920 1818/1871/880 +f 1868/1921/884 1865/1918/883 1867/1920/885 +f 1831/1884/893 1861/1914/876 1868/1921/884 +f 1863/1916/920 1869/1922/878 1866/1919/886 +f 1873/1926/924 1870/1923/921 1871/1924/922 +f 1783/1836/855 1872/1925/923 1873/1926/924 +o slide_pistol_0 +v 1.014517 11.207904 -2.625850 +v 1.014517 11.207904 -2.300615 +v 1.014517 10.723700 -1.978914 +v -1.014517 10.157009 -2.625850 +v -1.014517 11.207904 -2.625850 +v -0.335502 10.613042 -2.625850 +v -1.526129 9.326169 3.920666 +v -1.526129 9.326169 3.413728 +v -1.526129 8.752565 3.413728 +v -1.705540 8.752565 3.920666 +v -1.705540 7.184847 3.920666 +v -1.705540 8.402288 6.532842 +v -1.526129 8.752565 3.920666 +v -1.705540 8.752565 3.920666 +v -1.705540 8.752759 6.288157 +v -1.526129 8.752565 3.920666 +v -1.524936 8.752759 6.288157 +v 1.705540 7.247200 -1.820036 +v 1.526129 7.247200 -1.820036 +v 1.526043 7.614016 -2.276281 +v 1.321148 7.184846 12.021435 +v -1.171832 7.184846 11.897297 +v 1.156401 7.184846 11.897297 +v 1.526043 7.614016 -2.276281 +v 1.526129 7.247200 -1.820036 +v 1.526043 7.184847 -2.765843 +v 1.321148 7.184846 11.214216 +v -1.705540 7.184847 2.105287 +v -1.705540 8.757562 2.105288 +v -1.705540 8.927025 1.935824 +v 1.526129 7.247200 -1.820036 +v 1.526129 7.184847 -1.313097 +v 1.526043 7.184847 -2.765843 +v -1.524936 9.326169 6.288157 +v -1.326382 10.025589 6.288157 +v -1.705540 9.660696 6.288157 +v -1.705540 9.326169 6.288157 +v 0.813732 7.184846 16.849926 +v 1.705540 7.184846 12.021435 +v 1.705540 7.184846 18.319260 +v 1.326382 7.184846 19.492821 +v -1.705540 7.967402 7.346316 +v -1.705540 8.055081 6.892088 +v 1.705540 7.637856 11.214216 +v 1.705540 7.184846 11.214216 +v 1.705540 7.967402 7.346316 +v -1.705540 7.184847 3.920666 +v -1.526129 7.184847 3.920666 +v -1.171832 7.184846 5.830759 +v 1.705540 7.184847 3.920666 +v 1.705540 7.184846 11.214216 +v 1.156401 7.184846 5.830759 +v 1.705540 7.184847 -2.765843 +v 1.705540 7.184847 -4.842922 +v 1.705540 8.782389 -4.842922 +v 1.705540 7.614016 -2.276281 +v 1.231429 7.184847 -4.842922 +v 1.526129 7.184847 -1.313097 +v 1.231024 7.184847 1.879624 +v -1.526129 7.184847 2.105287 +v -1.526129 7.184847 2.612226 +v -1.526129 8.752565 2.612226 +v 1.705540 7.184847 3.920666 +v 1.321148 7.184846 11.214216 +v 1.705540 7.184846 11.214216 +v 1.705540 7.637856 11.214216 +v -0.813732 7.184846 16.849926 +v 1.526129 7.184847 3.920666 +v 0.000000 9.832472 21.944122 +v 0.947015 10.390596 21.944122 +v -0.947015 10.390596 21.944122 +v 1.705540 8.055081 6.892088 +v -1.171832 7.184846 11.897297 +v -1.171832 8.402287 11.660704 +v -1.171832 8.578352 11.777046 +v 0.167762 11.355709 20.190464 +v -0.167762 11.355709 20.190464 +v -0.167762 10.787157 20.190464 +v 0.814306 10.492232 20.190464 +v 0.814306 10.492232 19.285318 +v 0.359371 10.492232 19.285318 +v 0.893030 10.492232 20.116810 +v 0.893030 10.492232 19.372772 +v -1.526129 7.184847 3.413727 +v 1.526129 7.184847 3.413727 +v -0.393269 7.184847 1.879624 +v 0.393269 7.184847 1.879624 +v -1.333642 8.402288 6.532842 +v -1.333642 8.055081 6.892088 +v -1.333642 7.967402 7.346316 +v -1.016029 10.321227 11.777046 +v -0.947015 10.390596 11.777046 +v -0.654714 10.019366 11.777046 +v -0.813732 7.184846 16.849926 +v 0.813732 7.184846 16.849926 +v 0.813732 5.420441 16.849926 +v 0.471660 5.087639 16.849926 +v -0.471660 5.087639 16.849926 +v -0.813732 5.420441 16.849926 +v -1.333642 7.184846 21.944122 +v -1.333642 7.184846 19.492821 +v -0.813732 7.184846 21.944122 +v -1.526129 7.184847 0.796846 +v -1.705540 7.184847 0.796846 +v -1.705540 7.184847 -0.004656 +v -0.728164 8.051682 1.879624 +v -0.393269 9.417000 1.879624 +v -0.393269 7.184847 1.879624 +v -0.728164 7.586768 1.879624 +v -1.238688 7.184847 1.879624 +v 1.231024 9.417000 1.879624 +v 1.231024 8.051682 1.879624 +v 0.728164 8.051682 1.879624 +v 1.526129 7.184847 2.105287 +v 1.526129 7.184847 2.612226 +v 1.705540 7.184847 -1.313097 +v 1.705540 7.184847 -0.511595 +v 1.526129 7.184847 -0.511595 +v 1.705540 7.184847 2.612226 +v 1.705540 7.184847 3.413727 +v 1.526129 7.184847 3.920666 +v 1.526129 9.833411 3.920666 +v 1.705540 9.660696 3.920666 +v 0.408756 10.107763 -3.259710 +v -0.409408 10.107763 -3.259710 +v -0.409408 10.390597 -3.172265 +v 1.705540 9.660696 3.413728 +v 1.526129 9.833411 3.413728 +v 1.526129 7.184847 3.413727 +v -0.392768 7.184847 -4.842922 +v 0.393269 9.417000 1.879624 +v 0.393269 7.184847 1.879624 +v 0.392768 7.184847 -4.842922 +v 1.705540 7.184847 2.612226 +v 1.526129 7.184847 2.612226 +v 1.526129 9.833411 2.612226 +v 1.526129 7.184847 2.105287 +v 1.705540 7.184847 2.105287 +v 1.705540 9.660696 2.105288 +v 0.392768 8.782389 -4.842922 +v 0.392768 9.417337 -4.333549 +v 1.231024 7.184847 1.879624 +v 1.231024 7.586768 1.879624 +v 1.231429 7.587345 -4.842922 +v 0.408756 10.390597 -3.531359 +v 0.408756 10.107763 -3.763226 +v 0.408756 10.107763 -3.259710 +v 1.526129 9.833411 1.303785 +v 1.705540 9.660696 1.303785 +v 1.705540 7.184847 1.303785 +v 0.728571 7.587345 -4.842922 +v 0.728571 8.051105 -4.842922 +v 1.231429 8.051105 -4.842922 +v 1.705540 9.660696 0.796846 +v 1.526129 9.833411 0.796846 +v 1.526129 7.184847 0.796846 +v 0.813732 7.184846 21.944122 +v 1.231024 9.417000 1.879624 +v 0.393269 9.417000 1.879624 +v 0.392768 9.417337 -4.333549 +v 1.231024 7.586768 1.879624 +v 0.728164 7.586768 1.879624 +v 0.728571 7.587345 -4.842922 +v 1.526129 9.833411 -0.004656 +v 1.705540 9.660696 -0.004656 +v 1.705540 7.184847 -0.004656 +v 1.705540 7.184847 -4.842922 +v 1.231429 7.184847 -4.842922 +v 1.231429 7.587345 -4.842922 +v 1.526129 7.184847 -0.511595 +v 1.705540 7.184847 -0.511595 +v 1.705540 9.660696 -0.511595 +v 1.231429 9.417337 -4.333549 +v 1.231429 8.782389 -4.842922 +v 1.231024 9.417000 1.879624 +v 0.728164 7.586768 1.879624 +v 0.728164 8.051682 1.879624 +v 0.728571 8.051105 -4.842922 +v 1.526129 9.833411 -1.313097 +v 1.705540 9.660696 -1.313097 +v 1.705540 7.184847 -1.313097 +v 1.231024 8.051682 1.879624 +v 0.728164 8.051682 1.879624 +v 1.231024 8.051682 1.879624 +v 1.231429 8.051105 -4.842922 +v 0.947015 10.390597 -2.821981 +v -0.947015 10.390597 -2.821981 +v -1.132077 10.212755 -2.753815 +v 1.526129 7.247200 -1.820036 +v 1.705540 7.247200 -1.820036 +v 1.705540 9.660696 -1.820036 +v 1.705540 8.752767 6.288157 +v 1.705540 8.402288 6.532842 +v -1.132077 10.212755 0.576711 +v -0.947015 10.390597 0.637665 +v 0.947015 10.390597 0.637665 +v 1.326382 7.184846 21.944122 +v 1.526129 7.184847 -0.004656 +v -1.526129 7.184847 2.612226 +v -1.238688 7.184847 1.879624 +v 1.705540 7.184847 2.105287 +v 1.526129 7.184847 1.303785 +v 1.705540 7.184847 1.303785 +v 1.526129 7.184847 0.796846 +v 1.705540 7.184847 -0.004656 +v 0.728164 7.586768 1.879624 +v 1.231024 7.586768 1.879624 +v 1.231024 7.184847 1.879624 +v 0.393269 7.184847 1.879624 +v -1.238688 9.417000 1.879624 +v -1.526129 7.184847 2.105287 +v -1.705540 7.184847 -1.313097 +v -1.526129 7.184847 -1.313097 +v -1.526129 7.184847 -0.511595 +v -1.705540 7.184847 2.612226 +v -1.526129 9.326169 3.920666 +v -1.705540 9.326169 3.920666 +v -1.705540 9.660696 3.920666 +v -1.526129 7.184847 3.920666 +v -1.705540 7.184847 3.920666 +v -1.705540 8.752565 3.920666 +v -1.705540 7.184847 3.413727 +v -1.526129 7.184847 3.413727 +v -1.526129 8.752565 3.413728 +v -1.705540 9.326169 3.413728 +v -1.526129 9.326169 3.413728 +v -1.526129 9.833411 3.413728 +v -1.705540 7.184847 2.612226 +v -1.705540 7.184847 3.413727 +v -1.705540 8.752565 3.413728 +v -0.393269 9.417000 1.879624 +v -0.392768 8.782389 -4.842922 +v -0.392768 7.184847 -4.842922 +v -1.526129 9.326169 2.612226 +v -1.705540 9.326169 2.612226 +v -1.705540 9.660696 2.612226 +v -1.526129 7.184847 2.612226 +v -1.705540 7.184847 2.612226 +v -1.705540 8.752565 2.612226 +v -0.392768 9.417337 -4.333549 +v -1.238688 7.184847 1.879624 +v -1.238688 7.184847 -4.842922 +v -1.238688 7.587345 -4.842922 +v -0.409408 10.390597 -3.531359 +v -0.409408 10.390597 -3.172265 +v -0.409408 10.107763 -3.259710 +v -1.526129 9.833411 1.303785 +v -1.526129 7.184847 1.303785 +v -1.705540 7.184847 1.303785 +v -0.728571 7.587345 -4.842922 +v -1.238688 7.587345 -4.842922 +v -1.238688 8.051105 -4.842922 +v -1.705540 9.660696 0.796846 +v -1.705540 7.184847 0.796846 +v -1.526129 7.184847 0.796846 +v -1.238688 9.417000 1.879624 +v -1.238688 9.417337 -4.333549 +v -0.392768 9.417337 -4.333549 +v -1.238688 7.586768 1.879624 +v -1.238688 7.587345 -4.842922 +v -0.728571 7.587345 -4.842922 +v -1.526129 9.833411 -0.004656 +v -1.526129 7.184847 -0.004656 +v -1.705540 7.184847 -0.004656 +v -1.238688 7.184847 -4.842922 +v -1.705540 7.184847 -4.842922 +v -1.526129 7.184847 -0.511595 +v -1.526129 9.833411 -0.511595 +v -1.705540 9.660696 -0.511595 +v -1.238688 8.782389 -4.842922 +v -1.238688 9.417337 -4.333549 +v -1.238688 9.417000 1.879624 +v -0.728164 7.586768 1.879624 +v -0.728571 7.587345 -4.842922 +v -0.728571 8.051105 -4.842922 +v -1.526129 7.184847 -0.004656 +v -1.238688 7.184847 -4.842922 +v -1.526129 9.833411 -1.313097 +v -1.526129 7.184847 -1.313097 +v -1.705540 7.184847 -1.313097 +v -1.238688 8.051682 1.879624 +v -1.238688 8.051105 -4.842922 +v -0.728164 8.051682 1.879624 +v -0.728571 8.051105 -4.842922 +v -1.238688 8.051105 -4.842922 +v -1.705540 7.184847 -4.842922 +v -1.526129 7.184847 -1.820036 +v -1.705540 7.184847 2.105287 +v -1.705540 7.184847 1.303785 +v -1.526129 7.184847 -1.820036 +v -1.526129 9.833411 -1.820036 +v -1.705540 9.660696 -1.820036 +v -1.526129 7.184847 1.303785 +v -1.526129 7.184847 3.413727 +v -1.526129 7.184847 3.920666 +v -1.526129 8.752565 3.920666 +v -0.947015 10.390597 6.288157 +v -0.654714 10.019367 6.288157 +v -0.409408 10.390597 6.288157 +v -1.171832 9.475291 6.288157 +v -0.409408 10.019367 5.830759 +v -0.409408 10.390597 5.830759 +v -0.409408 10.390597 6.288157 +v 0.408756 10.019367 5.830759 +v 0.408756 10.019367 6.288157 +v 0.408756 10.390597 6.288157 +v 0.408756 10.019367 5.830759 +v 0.408756 10.390597 5.830759 +v -0.409408 10.390597 5.830759 +v 0.408756 10.019367 6.288157 +v 0.632517 10.019367 6.288157 +v 0.408756 10.390597 6.288157 +v 0.958007 9.683089 6.288157 +v 1.018419 10.321527 6.288157 +v -1.171832 9.475290 11.777046 +v -1.171832 7.184846 5.830759 +v -1.171832 8.752774 6.288157 +v -1.171832 8.402288 6.532842 +v -0.409408 10.019367 6.288157 +v -1.333642 8.402287 11.660704 +v -1.171832 8.402287 11.660704 +v -1.171832 8.402288 6.532842 +v -0.409408 10.019367 5.830759 +v -0.654714 10.019367 5.830759 +v -1.171832 9.475291 5.830759 +v -1.171832 7.184846 5.830759 +v 1.156401 7.184846 5.830759 +v 1.156401 9.475291 5.830759 +v 1.014517 11.207904 -2.625850 +v 0.335502 10.613042 -2.625850 +v 0.335502 11.207904 -2.625850 +v -0.167762 11.355709 20.190464 +v 0.167762 11.355709 20.190464 +v 0.167762 11.355709 19.816681 +v 0.143185 11.207904 -2.300615 +v 0.143185 11.269897 -2.300615 +v 0.143185 11.269897 -2.690542 +v 1.014517 11.207904 -2.625850 +v 0.335502 11.207904 -2.625850 +v 0.335502 11.207904 -2.300615 +v 1.014517 11.207904 -2.300615 +v 0.335502 11.207904 -2.625850 +v 0.335502 11.269897 -2.690542 +v 0.335502 11.269897 -2.300615 +v 0.335502 10.613042 -2.625850 +v 0.335502 10.613042 -2.690542 +v 0.335502 11.269897 -2.690542 +v 0.143185 11.269897 -2.300615 +v 0.335502 11.269897 -2.300615 +v 0.335502 11.269897 -2.690542 +v -0.720340 8.093418 11.897297 +v -0.389845 7.872590 11.897297 +v -1.171832 7.184846 11.897297 +v -0.941169 8.423913 11.897297 +v -1.018714 8.813758 11.897297 +v 0.000000 7.795044 11.897297 +v 0.471660 5.087639 21.944122 +v 0.813732 5.420441 21.944122 +v -0.813732 5.420441 21.944122 +v 0.813732 7.184846 21.944122 +v -1.333642 7.184846 21.944122 +v -0.813732 7.184846 21.944122 +v -0.720340 8.093418 21.944122 +v -1.018714 8.813758 21.944122 +v -1.326382 10.025588 21.944122 +v -0.720340 9.534098 21.944122 +v 0.720340 9.534098 21.944122 +v 1.326382 10.025588 21.944122 +v 1.018714 8.813758 21.944122 +v 1.326382 7.184846 21.944122 +v 0.720340 8.093418 21.944122 +v 0.941169 9.203603 21.944122 +v 0.389845 9.754927 21.944122 +v -0.941169 9.203603 21.944122 +v -0.941169 8.423913 21.944122 +v -0.389845 7.872589 21.944122 +v 0.000000 7.795044 21.944122 +v 0.389845 7.872589 21.944122 +v 0.941169 8.423913 21.944122 +v -0.471660 5.087639 21.944122 +v -0.389845 9.754927 21.944122 +v 1.321148 7.637856 11.214216 +v 1.321148 7.444345 12.021435 +v 1.321148 7.184846 12.021435 +v 1.705540 7.184846 12.021435 +v 1.321148 7.184846 12.021435 +v 1.321148 7.444345 12.021435 +v 1.705540 7.637856 11.214216 +v 1.705540 7.444345 12.021435 +v 1.321148 7.444345 12.021435 +v -1.526129 9.326169 3.413728 +v -1.705540 9.326169 3.413728 +v -1.705540 9.326169 2.612226 +v -1.524936 9.326169 6.288157 +v -1.705540 9.326169 6.288157 +v -1.705540 9.326169 3.920666 +v -1.526129 8.752565 2.612226 +v -1.705540 8.752565 2.612226 +v -1.705540 8.752565 3.413728 +v -1.526129 8.752565 2.612226 +v 0.632517 10.019367 5.830759 +v 0.335502 10.613042 -2.690542 +v 0.143185 10.723700 -2.690542 +v 0.143185 11.269897 -2.690542 +v -0.335502 10.613042 -2.690542 +v -0.143185 10.723700 -2.690542 +v -0.335502 10.613042 -2.625850 +v -0.335502 10.613042 -2.690542 +v 0.335502 10.613042 -2.690542 +v 0.143185 10.723700 -2.690542 +v 0.143185 10.723700 -1.978914 +v -0.814306 10.492232 20.190464 +v -0.359371 10.492232 20.190464 +v -0.359371 10.492232 19.285318 +v -0.893030 10.492232 20.116810 +v -0.814306 10.492232 19.285318 +v -0.335502 11.207904 -2.625850 +v -0.335502 10.613042 -2.625850 +v -0.335502 11.207904 -2.625850 +v -0.335502 11.269897 -2.690542 +v -0.335502 11.269897 -2.690542 +v -0.143185 11.269897 -2.690542 +v -0.143185 10.723700 -2.690542 +v -0.143185 11.269897 -2.690542 +v -0.143185 11.207904 -2.300615 +v -0.335502 11.207904 -2.625850 +v -0.335502 11.207904 -2.300615 +v -0.335502 11.269897 -2.300615 +v -0.143185 11.269897 -2.300615 +v -0.143185 11.269897 -2.690542 +v -0.335502 11.269897 -2.690542 +v -0.143185 11.269897 -2.300615 +v -0.335502 11.207904 -2.625850 +v -1.014517 11.207904 -2.625850 +v -0.335502 11.207904 -2.300615 +v -1.014517 11.207904 -2.300615 +v 1.014517 10.157009 -2.625850 +v 1.014517 10.606321 -1.825947 +v 1.014517 10.491154 -1.431074 +v 1.014517 10.157009 -2.625850 +v 0.167762 10.787157 20.190464 +v -0.359371 10.492232 20.190464 +v -1.014517 11.207904 -2.625850 +v -1.014517 10.157009 -2.625850 +v -1.014517 10.723700 -1.978914 +v -1.014517 10.606321 -1.825947 +v -1.014517 10.491154 -1.431074 +v 0.359371 10.492232 20.190464 +v -1.014517 11.207904 -2.300615 +v -0.451145 8.974197 5.975873 +v 0.000000 8.787328 5.975873 +v -0.345291 9.132619 5.975873 +v 0.186870 8.336183 5.975873 +v 0.000000 8.299012 5.975873 +v -0.186870 9.238472 5.975873 +v 0.000000 9.275643 5.975873 +v 0.345291 8.442036 5.975873 +v 0.186870 9.238472 5.975873 +v 0.345291 9.132619 5.975873 +v 0.451145 8.600457 5.975873 +v 0.451145 8.974197 5.975873 +v 0.488316 8.787328 5.975873 +v -0.488316 8.787328 5.975873 +v -0.186870 8.336183 5.975873 +v -0.451145 8.600457 5.975873 +v -0.345291 8.442036 5.975873 +v -1.659889 9.270180 6.250484 +v -1.659889 9.270180 2.190356 +v -1.659889 8.796173 2.190356 +v -1.659889 9.139336 2.059511 +v -1.659889 8.927017 2.059511 +v -1.360494 9.270180 6.250484 +v -1.659889 9.270180 6.250484 +v -1.659889 8.796173 6.250484 +v -1.705540 8.752759 6.288157 +v -1.524936 8.752759 6.288157 +v -1.524936 9.326169 6.288157 +v 1.705540 7.614016 -2.276281 +v -1.705540 7.184847 1.303785 +v -1.705540 9.151711 1.935824 +v 1.321148 7.637856 11.214216 +v 0.359371 10.492232 20.190464 +v -1.238688 7.586768 1.879624 +v 0.393269 9.417000 1.879624 +v 1.705540 7.184847 3.920666 +v 0.408756 10.390597 -3.172265 +v 1.705540 7.184847 3.413727 +v 0.392768 7.184847 -4.842922 +v 1.705540 9.660696 2.612226 +v 1.526129 9.833411 2.105288 +v 1.231429 7.184847 -4.842922 +v 0.408756 10.390597 -3.172265 +v 1.526129 7.184847 1.303785 +v 1.705540 7.184847 0.796846 +v 1.231429 9.417337 -4.333549 +v 1.231429 7.587345 -4.842922 +v 1.526129 7.184847 -0.004656 +v 1.526129 9.833411 -0.511595 +v 0.728571 7.587345 -4.842922 +v 1.526129 7.184847 -1.313097 +v 1.231429 8.051105 -4.842922 +v 0.728571 8.051105 -4.842922 +v 1.132077 10.212755 -2.753815 +v 1.526129 9.833411 -1.820036 +v 1.132077 10.212755 0.576711 +v 1.705540 7.184847 0.796846 +v -1.238688 8.051682 1.879624 +v -1.705540 7.184847 -0.511595 +v -1.705540 7.184847 3.413727 +v -1.526129 9.833411 3.920666 +v -1.526129 8.752565 3.920666 +v -1.705540 8.752565 3.413728 +v -1.705540 9.660696 3.413728 +v -1.705540 8.752565 2.612226 +v -0.393269 7.184847 1.879624 +v -1.526129 9.833411 2.612226 +v -1.526129 8.752565 2.612226 +v -1.705540 7.184846 18.319260 +v -1.238688 7.586768 1.879624 +v -0.409408 10.107763 -3.763226 +v -1.705540 9.660696 1.303785 +v -0.728571 8.051105 -4.842922 +v -1.526129 9.833411 0.796846 +v -0.393269 9.417000 1.879624 +v -0.728164 7.586768 1.879624 +v -1.705540 9.660696 -0.004656 +v -1.705540 7.184847 -0.511595 +v -0.728164 8.051682 1.879624 +v -1.705540 9.660696 -1.313097 +v -1.238688 8.051682 1.879624 +v -1.705540 7.184847 -1.820036 +v -1.705540 7.184847 -1.820036 +v -1.705540 7.184847 -4.842922 +v -1.705540 7.184847 -1.820036 +v -1.705540 8.782389 -4.842922 +v -1.526129 8.752565 3.413728 +v -0.409408 10.019367 6.288157 +v 0.408756 10.390597 5.830759 +v -1.326382 10.025588 11.777046 +v -1.333642 8.402288 6.532842 +v -0.167762 11.355709 19.816681 +v 0.335502 11.207904 -2.300615 +v 0.335502 11.207904 -2.625850 +v 0.143185 11.269897 -2.690542 +v 1.321148 7.184846 11.214216 +v 1.705540 7.444345 12.021435 +v 1.321148 7.637856 11.214216 +v -1.526129 9.326169 2.612226 +v -1.526129 9.326169 3.920666 +v -1.526129 8.752565 3.413728 +v -1.526129 9.326169 2.612226 +v 0.335502 11.269897 -2.690542 +v 0.335502 10.613042 -2.625850 +v -0.893030 10.492232 19.372772 +v -0.335502 10.613042 -2.690542 +v -0.143185 10.723700 -1.978914 +v -0.335502 11.269897 -2.690542 +v -0.335502 11.269897 -2.300615 +v -1.659889 8.796173 6.250484 +v -1.360494 8.796173 6.250484 +v -1.705540 8.402288 6.532842 +v -1.333642 8.402288 6.532842 +v -1.524936 8.752759 6.288157 +v -1.171832 8.752774 6.288157 +v -0.654714 10.019366 11.897297 +v -0.654714 10.019366 11.777046 +v 0.632517 10.019366 11.777046 +v 0.632517 10.019366 11.777046 +v -1.705540 9.660696 6.288157 +v -1.705540 9.660696 3.920666 +v -1.705540 9.326169 3.920666 +v -1.526129 8.752565 2.110282 +v -1.526129 9.321173 2.105288 +v -1.524936 9.151711 1.935824 +v -1.526129 7.184847 1.303785 +v -1.526129 9.833411 1.303785 +v -1.526129 9.833411 0.796846 +v -1.705540 9.660696 1.303785 +v 1.526129 9.833411 -1.820036 +v 1.526129 9.833411 -1.313097 +v -1.171832 9.475290 11.777046 +v 1.705540 7.184846 18.319260 +v 1.705540 7.184846 12.021435 +v 1.705540 7.444345 12.021435 +v 1.705540 9.660696 -1.820036 +v 1.705540 7.247200 -1.820036 +v 1.705540 7.967401 18.319260 +v 1.526043 7.184847 -2.765843 +v 1.705540 7.184847 -4.842922 +v 1.705540 7.184847 -2.765843 +v -1.526129 9.321173 2.105288 +v -1.705540 9.321173 2.105288 +v -1.705540 9.151711 1.935824 +v -1.705540 8.927025 1.935824 +v -1.705540 8.757562 2.105288 +v -1.526129 8.752565 2.110282 +v 1.018714 8.813758 11.876558 +v 1.156401 9.475290 11.866871 +v 1.156401 7.184846 11.897297 +v -1.014517 10.157009 0.196241 +v -1.014517 10.369081 0.196241 +v 0.167762 10.787157 19.556133 +v 0.167762 11.355709 19.816681 +v 0.167762 11.355709 20.190464 +v 0.359371 10.492232 20.190464 +v 0.359371 10.492232 19.285318 +v 0.872165 9.770429 11.711023 +v 1.156401 9.475290 11.866871 +v 0.632517 10.019366 11.897297 +v 1.018419 10.321526 11.521421 +v 1.019789 10.321227 19.320282 +v 1.326382 10.025588 21.944122 +v 0.872165 9.770429 11.711023 +v 0.947015 10.390596 11.752501 +v 1.018419 10.321526 11.521421 +v 1.018419 10.321527 6.288157 +v 0.958007 9.683089 6.288157 +v 0.958007 9.683129 11.555180 +v 0.632517 10.019367 5.830759 +v 1.156401 9.475291 5.830759 +v 0.958007 9.683089 6.288157 +v 1.326382 7.967401 19.492821 +v 1.326382 7.967402 7.346316 +v 1.326382 8.055081 6.892088 +v 1.326382 8.402288 6.532842 +v 1.326382 10.025589 6.288157 +v -1.333642 7.967401 19.492821 +v -1.333642 8.578352 11.777046 +v -1.333642 8.402287 11.660704 +v -1.326382 10.025588 21.944122 +v -1.326382 10.025588 11.777046 +v 0.947015 10.390596 19.208494 +v 0.947015 10.390596 11.752501 +v 0.869641 10.390596 11.777046 +v -0.409408 10.390597 -3.531359 +v -0.409408 10.107763 -3.763226 +v -0.947015 10.390597 -3.531359 +v 0.869641 10.390596 11.777046 +v -1.238688 8.782389 -4.842922 +v -1.333642 8.578352 11.777046 +v -1.526129 7.184847 -0.004656 +v -1.526129 9.833411 -0.004656 +v -1.526129 9.833411 -0.511595 +v -0.947015 10.390597 0.637665 +v -0.947015 10.390597 6.288157 +v -0.409408 10.390597 5.830759 +v 0.408756 10.390597 5.830759 +v 0.947015 10.390597 0.637665 +v 0.408756 10.390597 6.288157 +v 1.018419 10.321527 6.288157 +v -1.171832 9.475291 5.830759 +v -1.171832 9.475291 6.288157 +v 1.018419 10.321527 6.288157 +v 1.326382 10.025589 6.288157 +v 1.132077 10.212755 0.576711 +v -0.409408 10.390597 6.288157 +v -1.526129 9.833411 2.105288 +v -1.526129 9.833411 2.612226 +v -1.132077 10.212755 0.576711 +v -1.526129 9.833411 3.920666 +v -1.326382 10.025589 6.288157 +v -1.526129 9.833411 3.413728 +v 0.947015 10.390597 -3.531359 +v 0.947015 10.390597 -2.821981 +v 1.132077 10.212755 -2.753815 +v 0.947015 10.390596 19.208494 +v -0.947015 10.390596 19.208494 +v -1.016029 10.321227 19.320282 +v 0.947015 10.390596 20.281315 +v -0.947015 10.390596 20.281315 +v -0.947015 10.390596 21.944122 +v 1.705540 7.184847 2.612226 +v 1.705540 9.660696 2.612226 +v 1.705540 9.660696 3.413728 +v 1.019789 10.321227 20.144449 +v -1.016029 10.321227 20.144449 +v 1.326382 7.967401 19.492821 +v 1.326382 7.184846 19.492821 +v 0.471660 5.087639 16.849926 +v 0.813732 5.420441 16.849926 +v 0.813732 5.420441 21.944122 +v 0.408756 10.390597 -3.531359 +v 0.408756 10.390597 -3.172265 +v 1.019789 10.321227 20.144449 +v -0.409408 10.107763 -3.763226 +v -0.409408 10.107763 -3.259710 +v 0.408756 10.107763 -3.259710 +v 1.705540 7.967402 7.346316 +v 1.326382 7.967402 7.346316 +v 1.326382 7.967401 19.492821 +v 1.326382 7.184846 21.944122 +v 1.326382 7.184846 19.492821 +v 1.526129 7.184847 1.303785 +v 1.526129 7.184847 0.796846 +v 1.526129 9.833411 0.796846 +v 1.705540 8.402288 6.532842 +v 1.326382 8.402288 6.532842 +v 1.326382 8.055081 6.892088 +v 1.705540 8.055081 6.892088 +v 1.705540 9.660696 6.288157 +v 1.326382 10.025589 6.288157 +v 1.326382 8.752767 6.288157 +v 1.705540 9.660696 -4.131680 +v 1.231429 9.417337 -4.333549 +v 0.408756 10.107763 -3.763226 +v -0.392768 9.417337 -4.333549 +v -0.409408 10.390597 -3.172265 +v -0.947015 10.390597 -2.821981 +v 0.392768 9.417337 -4.333549 +v 0.392768 8.782389 -4.842922 +v 1.231429 8.782389 -4.842922 +v 1.705540 8.782389 -4.842922 +v 1.705540 9.660696 -4.131680 +v 0.947015 10.390597 -3.531359 +v 1.526129 9.833411 2.612226 +v 1.705540 9.660696 6.288157 +v 1.705540 9.660696 3.920666 +v 1.526129 9.833411 3.920666 +v -1.132077 10.212755 0.576711 +v 1.132077 10.212755 0.576711 +v 1.132077 10.212755 -2.753815 +v 1.705540 9.660696 -1.313097 +v 1.705540 9.660696 -0.511595 +v 1.705540 7.184847 -0.511595 +v 1.705540 9.660696 -0.004656 +v 1.705540 9.660696 0.796846 +v 1.705540 7.184847 0.796846 +v 1.526129 7.184847 2.612226 +v 1.526129 7.184847 2.105287 +v 1.526129 9.833411 2.105288 +v 1.705540 9.660696 3.920666 +v 1.705540 9.660696 6.288157 +v 1.019789 10.321227 19.320282 +v -0.471660 5.087639 16.849926 +v 0.471660 5.087639 21.944122 +v 0.813732 7.184846 16.849926 +v 0.813732 7.184846 21.944122 +v 0.947015 10.390596 20.281315 +v 0.947015 10.390596 21.944122 +v 1.705540 8.752767 6.288157 +v 1.526129 7.184847 3.920666 +v 1.526129 7.184847 3.413727 +v 1.526129 9.833411 3.413728 +v 0.392768 7.184847 -4.842922 +v -0.392768 7.184847 -4.842922 +v -0.392768 8.782389 -4.842922 +v 0.408756 10.390597 -3.531359 +v 1.526129 7.184847 -0.004656 +v 1.526129 7.184847 -0.511595 +v 1.526129 9.833411 -0.511595 +v 1.705540 7.184847 1.303785 +v 1.705540 9.660696 1.303785 +v 1.705540 9.660696 2.105288 +v 1.526129 9.833411 3.413728 +v 1.526129 9.833411 -0.511595 +v 1.526129 9.833411 -1.313097 +v 1.526129 9.833411 -1.820036 +v 1.526129 9.833411 -0.004656 +v 1.526129 9.833411 2.105288 +v 1.526129 9.833411 1.303785 +v 1.705540 7.184847 -2.765843 +v 1.705540 7.614016 -2.276281 +v 1.526043 7.614016 -2.276281 +v -0.947015 10.390597 -3.531359 +v -1.705540 9.660696 -4.131680 +v -1.132077 10.212755 -2.753815 +v -1.705540 7.184846 18.319260 +v -1.705540 7.967401 18.319260 +v -1.526129 9.833411 -1.313097 +v -1.526129 9.833411 -0.511595 +v -1.705540 9.660696 -1.820036 +v -1.526129 9.833411 -1.820036 +v -1.705540 9.660696 3.413728 +v -1.705540 9.660696 2.612226 +v -1.705540 9.326169 2.612226 +v -1.333642 7.184846 19.492821 +v -0.471660 5.087639 21.944122 +v -0.813732 5.420441 21.944122 +v -0.409408 10.390597 -3.531359 +v -1.705540 7.184847 2.105287 +v -1.526129 7.184847 2.105287 +v -1.526129 9.833411 2.105288 +v -1.705540 7.967402 7.346316 +v -1.705540 7.967401 18.319260 +v -1.333642 7.967401 19.492821 +v -1.333642 7.184846 19.492821 +v -1.705540 9.321173 2.105288 +v -1.705540 9.660696 2.105288 +v -1.705540 8.055081 6.892088 +v -1.333642 8.055081 6.892088 +v -1.333642 7.967402 7.346316 +v -1.705540 9.660696 -0.511595 +v -1.238688 9.417337 -4.333549 +v -1.705540 9.660696 -4.131680 +v -1.526129 9.833411 1.303785 +v -1.705540 8.782389 -4.842922 +v -1.705540 9.660696 -1.313097 +v -1.705540 7.184847 -1.313097 +v -1.705540 7.184847 -0.511595 +v -1.705540 9.660696 -0.004656 +v -1.705540 7.184847 -0.004656 +v -1.705540 7.184847 0.796846 +v -1.526129 9.833411 -0.004656 +v -1.705540 9.660696 0.796846 +v -1.526129 9.833411 0.796846 +v -0.813732 5.420441 16.849926 +v -0.813732 7.184846 21.944122 +v -1.526129 7.184847 -1.313097 +v -1.526129 9.833411 -1.313097 +v -1.526129 9.833411 -1.820036 +v -0.947015 10.390596 11.777046 +v -1.016029 10.321227 11.777046 +v -1.705540 8.752759 6.288157 +v -1.526129 9.833411 3.920666 +v -1.526129 9.833411 3.413728 +v -1.526129 9.326169 3.413728 +v 1.326382 8.752767 6.288157 +v -1.171832 8.402288 6.532842 +v -1.171832 8.578352 11.777046 +v -1.171832 8.402287 11.660704 +v 0.632517 10.019367 5.830759 +v 0.632517 10.019367 6.288157 +v 0.408756 10.019367 6.288157 +v -0.654714 10.019367 5.830759 +v -0.409408 10.019367 5.830759 +v -0.409408 10.019367 6.288157 +v 0.632517 10.019367 6.288157 +v 0.958007 9.683129 11.555180 +v 1.156401 7.184846 5.830759 +v 1.156401 7.184846 11.897297 +v 0.941169 9.203603 11.872112 +v 1.018714 8.813758 11.876558 +v 1.018714 8.813758 21.944122 +v 0.720340 9.534098 11.876596 +v 0.941169 9.203603 21.944122 +v 0.389845 9.754927 11.891426 +v 0.720340 9.534098 21.944122 +v 0.000000 9.832472 11.897297 +v 0.389845 9.754927 21.944122 +v 0.814306 10.296813 20.190464 +v 0.814306 10.492232 20.190464 +v 0.000000 9.832472 21.944122 +v -0.389845 9.754927 21.944122 +v -0.389845 9.754927 11.897297 +v -0.720340 9.534098 21.944122 +v -0.720340 9.534098 11.896717 +v 0.893030 10.296813 20.116810 +v 0.893030 10.492232 20.116810 +v 0.893030 10.296813 19.372772 +v 0.893030 10.492232 19.372772 +v -0.941169 9.203603 11.897297 +v -0.941169 9.203603 21.944122 +v -1.018714 8.813758 21.944122 +v -1.018714 8.813758 11.897297 +v -0.941169 8.423913 21.944122 +v -0.941169 8.423913 11.897297 +v -0.720340 8.093418 21.944122 +v -0.720340 8.093418 11.897297 +v -0.389845 7.872589 21.944122 +v -0.389845 7.872590 11.897297 +v 0.000000 7.795044 21.944122 +v 0.000000 7.795044 11.897297 +v 0.000000 7.795044 21.944122 +v 0.389845 7.872589 21.944122 +v 0.389845 7.872590 11.897297 +v 0.720340 8.093418 21.944122 +v 0.720340 8.093418 11.890942 +v 0.814306 10.296813 19.285318 +v 0.814306 10.492232 19.285318 +v 0.893030 10.492232 19.372772 +v 0.941169 8.423913 11.883170 +v 0.941169 8.423913 21.944122 +v 0.359371 10.492232 19.285318 +v -0.814306 10.296813 19.285318 +v -0.359371 10.492232 19.285318 +v -0.167762 10.787157 19.556133 +v 0.167762 10.787157 19.556133 +v -0.167762 11.355709 19.816681 +v 0.167762 11.355709 19.816681 +v -0.814306 10.157009 0.372431 +v 0.814306 10.157009 0.372431 +v 0.814306 10.357646 0.372431 +v 1.014517 10.157009 0.196241 +v 1.014517 10.369081 0.196241 +v -0.143185 10.723700 -1.978914 +v 0.143185 10.723700 -1.978914 +v 0.143185 10.723700 -2.690542 +v 0.143185 11.207904 -2.300615 +v 0.143185 10.723700 -1.978914 +v 0.335502 11.207904 -2.300615 +v 1.014517 10.723700 -1.978914 +v 1.014517 11.207904 -2.300615 +v 1.014517 10.606321 -1.825947 +v -1.014517 10.606321 -1.825947 +v -1.014517 10.491154 -1.431074 +v 1.014517 10.491154 -1.431074 +v -0.814306 10.357646 0.372431 +v 0.814306 10.357646 0.372431 +v 1.014517 10.369081 0.196241 +v -1.014517 10.369081 0.196241 +v -1.171832 9.475290 11.897297 +v 0.632517 10.019366 11.897297 +v 0.720340 9.534098 11.876596 +v 0.000000 9.832472 11.897297 +v -0.654714 10.019366 11.897297 +v -0.720340 9.534098 11.896717 +v -1.171832 9.475290 11.897297 +v 0.941169 8.423913 11.883170 +v 0.720340 8.093418 11.890942 +v 0.389845 7.872590 11.897297 +v -0.941169 9.203603 11.897297 +v -0.389845 9.754927 11.897297 +v 0.389845 9.754927 11.891426 +v 0.941169 9.203603 11.872112 +v -1.524936 8.927025 1.935824 +v -1.526129 9.833411 2.105288 +v -1.526129 9.321173 2.105288 +v -1.526129 9.326169 2.612226 +v 0.335502 11.269897 -2.300615 +v 0.143185 11.269897 -2.300615 +v -0.167762 10.787157 19.556133 +v -0.167762 10.787157 20.190464 +v -0.167762 11.355709 20.190464 +v -0.359371 10.492232 20.190464 +v -0.814306 10.492232 20.190464 +v -0.814306 10.296813 20.190464 +v -0.893030 10.296813 20.116810 +v -0.893030 10.296813 19.372772 +v -0.893030 10.492232 20.116810 +v -0.893030 10.296813 19.372772 +v -0.893030 10.492232 19.372772 +v -0.814306 10.492232 19.285318 +v -0.143185 10.723700 -1.978914 +v -1.014517 10.723700 -1.978914 +v -0.814306 10.357646 0.372431 +v -0.335502 11.269897 -2.300615 +v -0.335502 11.207904 -2.300615 +v -0.143185 11.207904 -2.300615 +v 1.526129 9.833411 0.796846 +v -0.451145 8.974197 5.975873 +v -0.345291 9.132619 5.975873 +v -0.345291 9.132619 5.773401 +v -0.186870 9.238472 5.975873 +v -0.186870 9.238472 5.773401 +v 0.345291 8.442036 5.975873 +v 0.186870 8.336183 5.975873 +v 0.186870 8.336183 5.773401 +v 0.000000 9.275643 5.975873 +v 0.000000 9.275643 5.773401 +v 0.186870 9.238472 5.975873 +v 0.186870 9.238472 5.773401 +v 0.451145 8.600457 5.975873 +v 0.345291 8.442036 5.773401 +v 0.345291 9.132619 5.975873 +v 0.345291 9.132619 5.773401 +v 0.451145 8.974197 5.975873 +v 0.451145 8.974197 5.773401 +v 0.488316 8.787328 5.975873 +v 0.451145 8.600457 5.773401 +v 0.488316 8.787328 5.773401 +v -0.186870 8.336183 5.975873 +v -0.345291 8.442036 5.975873 +v -0.345291 8.442036 5.773401 +v -0.451145 8.600457 5.975873 +v -0.488316 8.787328 5.975873 +v -0.488316 8.787328 5.773401 +v 0.000000 8.299012 5.975873 +v -0.186870 8.336183 5.773401 +v 0.000000 8.299012 5.773401 +v -0.451145 8.974197 5.773401 +v -0.451145 8.600457 5.773401 +v -1.360494 8.796173 2.190356 +v -1.659889 8.796173 2.190356 +v -1.659889 8.927017 2.059511 +v -1.659889 9.139336 2.059511 +v -1.360494 9.139336 2.059511 +v -1.360494 8.927017 2.059511 +v -1.360494 9.270180 2.190356 +v -1.659889 9.270180 2.190356 +v -1.659889 9.270180 6.250484 +v -1.360494 8.796173 6.250484 +v -1.659889 8.796173 6.250484 +v -1.705540 9.326169 6.288157 +v -1.524936 8.927025 1.935824 +v -1.526129 7.184847 0.796846 +v -1.526129 8.752565 2.110282 +v -1.524936 9.151711 1.935824 +v 0.167762 10.787157 20.190464 +v -1.526129 7.184847 -0.511595 +v 0.947015 10.390596 21.944122 +v 1.705540 7.184847 3.413727 +v 0.408756 10.107763 -3.763226 +v 1.705540 7.967401 18.319260 +v 1.526129 9.833411 1.303785 +v -1.132077 10.212755 -2.753815 +v 1.705540 7.184847 -1.313097 +v 1.705540 7.184847 -0.004656 +v 1.526129 9.833411 2.612226 +v 1.526129 9.833411 3.920666 +v 1.526129 9.833411 -0.004656 +v 1.705540 7.184847 2.105287 +v 1.526043 7.184847 -2.765843 +v -1.705540 9.326169 3.413728 +v -1.333642 7.967401 19.492821 +v -1.705540 9.660696 2.105288 +v -1.333642 7.184846 21.944122 +v -0.813732 7.184846 16.849926 +v -1.526129 7.184847 -1.820036 +v -1.526129 9.326169 3.920666 +v -1.333642 8.402287 11.660704 +v 0.408756 10.019367 5.830759 +v -0.654714 10.019367 6.288157 +v 0.869641 10.390596 11.777046 +v 0.000000 7.795044 11.897297 +v 0.893030 10.296813 19.372772 +v -0.143185 10.723700 -2.690542 +v -1.526129 9.833411 2.612226 +v -0.167762 11.355709 19.816681 +v -0.359371 10.492232 19.285318 +v -0.893030 10.492232 19.372772 +v -0.143185 11.269897 -2.300615 +v -1.014517 11.207904 -2.300615 +v -1.360494 9.270180 6.250484 +vt 0.665882 0.347767 +vt 0.666023 0.347766 +vt 0.666162 0.347974 +vt 0.668422 0.348903 +vt 0.668420 0.348450 +vt 0.668128 0.348707 +vt 0.670331 0.347891 +vt 0.670113 0.347891 +vt 0.670112 0.348138 +vt 0.648961 0.347035 +vt 0.648963 0.347711 +vt 0.650088 0.347182 +vt 0.670330 0.348139 +vt 0.670330 0.348216 +vt 0.671351 0.348220 +vt 0.670330 0.348139 +vt 0.671351 0.348142 +vt 0.655673 0.344315 +vt 0.655725 0.344372 +vt 0.655911 0.344201 +vt 0.649593 0.340884 +vt 0.649645 0.341960 +vt 0.649646 0.340955 +vt 0.655911 0.344201 +vt 0.655725 0.344372 +vt 0.656134 0.344371 +vt 0.649941 0.340885 +vt 0.655073 0.340475 +vt 0.655070 0.339797 +vt 0.654996 0.339724 +vt 0.671575 0.327451 +vt 0.671356 0.327477 +vt 0.671982 0.327480 +vt 0.644693 0.340192 +vt 0.644385 0.340134 +vt 0.644557 0.340283 +vt 0.644700 0.340269 +vt 0.647509 0.341099 +vt 0.649593 0.340718 +vt 0.646875 0.340713 +vt 0.646368 0.340876 +vt 0.650439 0.347369 +vt 0.650243 0.347332 +vt 0.648903 0.346602 +vt 0.648902 0.346797 +vt 0.650571 0.346464 +vt 0.653087 0.342196 +vt 0.653087 0.342119 +vt 0.652263 0.341965 +vt 0.653089 0.340724 +vt 0.649942 0.340719 +vt 0.652265 0.340960 +vt 0.652957 0.336625 +vt 0.652061 0.336628 +vt 0.652064 0.337317 +vt 0.653168 0.336809 +vt 0.656866 0.340895 +vt 0.655346 0.340806 +vt 0.653970 0.340890 +vt 0.671253 0.338233 +vt 0.671472 0.338233 +vt 0.671470 0.337557 +vt 0.652046 0.346806 +vt 0.665497 0.338599 +vt 0.665663 0.338599 +vt 0.665663 0.338404 +vt 0.647507 0.341802 +vt 0.653089 0.340802 +vt 0.669772 0.341914 +vt 0.669364 0.341701 +vt 0.670181 0.341704 +vt 0.650766 0.346427 +vt 0.652276 0.346675 +vt 0.652808 0.346599 +vt 0.652882 0.346653 +vt 0.666531 0.348446 +vt 0.666675 0.348446 +vt 0.666674 0.348692 +vt 0.671544 0.335436 +vt 0.671154 0.335438 +vt 0.671154 0.335634 +vt 0.671512 0.335403 +vt 0.671191 0.335404 +vt 0.653306 0.342119 +vt 0.653308 0.340802 +vt 0.653969 0.341610 +vt 0.653969 0.341314 +vt 0.657096 0.340687 +vt 0.657251 0.340835 +vt 0.657446 0.340872 +vt 0.666338 0.341178 +vt 0.666344 0.341136 +vt 0.666141 0.341132 +vt 0.671982 0.327709 +vt 0.671281 0.327706 +vt 0.671277 0.328466 +vt 0.671424 0.328610 +vt 0.671831 0.328612 +vt 0.671979 0.328470 +vt 0.645308 0.342022 +vt 0.646366 0.342024 +vt 0.645309 0.341798 +vt 0.654435 0.342121 +vt 0.654435 0.342199 +vt 0.654781 0.342199 +vt 0.671983 0.325746 +vt 0.671796 0.325132 +vt 0.671793 0.326094 +vt 0.671982 0.325897 +vt 0.672220 0.326096 +vt 0.671777 0.334214 +vt 0.671776 0.334827 +vt 0.672010 0.334827 +vt 0.653873 0.340803 +vt 0.653654 0.340803 +vt 0.655346 0.340729 +vt 0.655001 0.340728 +vt 0.655001 0.340805 +vt 0.653654 0.340725 +vt 0.653308 0.340725 +vt 0.671788 0.332239 +vt 0.671789 0.331098 +vt 0.671711 0.331172 +vt 0.652553 0.348753 +vt 0.652553 0.349106 +vt 0.652681 0.349106 +vt 0.672085 0.331172 +vt 0.672007 0.331098 +vt 0.672006 0.332240 +vt 0.656870 0.341615 +vt 0.668193 0.332067 +vt 0.669156 0.332072 +vt 0.669169 0.329174 +vt 0.671795 0.322170 +vt 0.671872 0.322170 +vt 0.671867 0.321028 +vt 0.672090 0.322169 +vt 0.672168 0.322168 +vt 0.672163 0.321101 +vt 0.668481 0.329171 +vt 0.668206 0.329389 +vt 0.666338 0.332059 +vt 0.666535 0.332060 +vt 0.666549 0.329162 +vt 0.652436 0.348631 +vt 0.652336 0.348753 +vt 0.652553 0.348753 +vt 0.671870 0.322396 +vt 0.671793 0.322471 +vt 0.671795 0.323538 +vt 0.670269 0.345604 +vt 0.670270 0.345453 +vt 0.670505 0.345454 +vt 0.672166 0.322470 +vt 0.672088 0.322396 +vt 0.672090 0.323538 +vt 0.645310 0.341095 +vt 0.667770 0.332065 +vt 0.668193 0.332067 +vt 0.668206 0.329389 +vt 0.666535 0.332060 +vt 0.666770 0.332061 +vt 0.666784 0.329163 +vt 0.671056 0.346443 +vt 0.670979 0.346517 +vt 0.670974 0.347585 +vt 0.670666 0.345804 +vt 0.670503 0.345803 +vt 0.670504 0.345605 +vt 0.671270 0.347586 +vt 0.671347 0.347586 +vt 0.671352 0.346519 +vt 0.667782 0.329387 +vt 0.667509 0.329166 +vt 0.667770 0.332065 +vt 0.666770 0.332061 +vt 0.666922 0.332062 +vt 0.666935 0.329164 +vt 0.671361 0.326336 +vt 0.671283 0.326410 +vt 0.671279 0.327477 +vt 0.667157 0.332063 +vt 0.666922 0.332062 +vt 0.667157 0.332063 +vt 0.667170 0.329165 +vt 0.657272 0.345497 +vt 0.657273 0.344680 +vt 0.657191 0.344600 +vt 0.671575 0.327451 +vt 0.671652 0.327452 +vt 0.671656 0.326411 +vt 0.651028 0.346127 +vt 0.650922 0.346278 +vt 0.655755 0.344598 +vt 0.655674 0.344677 +vt 0.655673 0.345494 +vt 0.645310 0.340874 +vt 0.654782 0.340805 +vt 0.653652 0.342120 +vt 0.653968 0.342037 +vt 0.653873 0.340726 +vt 0.654218 0.340804 +vt 0.654219 0.340726 +vt 0.654437 0.340804 +vt 0.654782 0.340727 +vt 0.672010 0.334979 +vt 0.671775 0.334978 +vt 0.671775 0.335176 +vt 0.672199 0.335177 +vt 0.672223 0.325134 +vt 0.653871 0.342120 +vt 0.655345 0.342200 +vt 0.655345 0.342122 +vt 0.655000 0.342122 +vt 0.653652 0.342197 +vt 0.656756 0.344189 +vt 0.656833 0.344189 +vt 0.656833 0.344045 +vt 0.671877 0.347120 +vt 0.671954 0.347119 +vt 0.671951 0.346443 +vt 0.671581 0.347121 +vt 0.671659 0.347121 +vt 0.671655 0.346445 +vt 0.656460 0.344190 +vt 0.656538 0.344190 +vt 0.656537 0.343971 +vt 0.671606 0.348023 +vt 0.671952 0.348024 +vt 0.671954 0.347348 +vt 0.667304 0.332303 +vt 0.667016 0.335199 +vt 0.666328 0.335196 +vt 0.671469 0.337246 +vt 0.671546 0.337245 +vt 0.671544 0.337101 +vt 0.671472 0.338233 +vt 0.671549 0.338232 +vt 0.671547 0.337557 +vt 0.667291 0.334981 +vt 0.669169 0.332311 +vt 0.669156 0.335209 +vt 0.668958 0.335208 +vt 0.652436 0.349228 +vt 0.652591 0.349228 +vt 0.652553 0.349106 +vt 0.672007 0.329730 +vt 0.672007 0.330872 +vt 0.672084 0.330872 +vt 0.669596 0.345601 +vt 0.669357 0.345600 +vt 0.669358 0.345449 +vt 0.671711 0.329804 +vt 0.671711 0.330872 +vt 0.671788 0.330872 +vt 0.667731 0.332305 +vt 0.667718 0.334983 +vt 0.667291 0.334981 +vt 0.668972 0.332310 +vt 0.668958 0.335208 +vt 0.668720 0.335207 +vt 0.672007 0.332466 +vt 0.672006 0.333607 +vt 0.672083 0.333608 +vt 0.669356 0.345798 +vt 0.669196 0.345797 +vt 0.671787 0.333607 +vt 0.671789 0.332465 +vt 0.671711 0.332540 +vt 0.667991 0.335204 +vt 0.667718 0.334983 +vt 0.667731 0.332305 +vt 0.668734 0.332309 +vt 0.668720 0.335207 +vt 0.668569 0.335206 +vt 0.654781 0.342122 +vt 0.656868 0.342041 +vt 0.672089 0.323764 +vt 0.672090 0.324906 +vt 0.672168 0.324906 +vt 0.668344 0.332307 +vt 0.668331 0.335205 +vt 0.668582 0.332308 +vt 0.668569 0.335206 +vt 0.668331 0.335205 +vt 0.656869 0.342187 +vt 0.655687 0.342123 +vt 0.653870 0.342198 +vt 0.654216 0.342198 +vt 0.671872 0.324906 +vt 0.671870 0.323765 +vt 0.671793 0.323839 +vt 0.654216 0.342121 +vt 0.671659 0.347121 +vt 0.671877 0.347120 +vt 0.671874 0.346444 +vt 0.644214 0.339986 +vt 0.644362 0.339846 +vt 0.644193 0.339756 +vt 0.644615 0.340046 +vt 0.644334 0.339545 +vt 0.644175 0.339559 +vt 0.644193 0.339756 +vt 0.661765 0.343274 +vt 0.661774 0.343476 +vt 0.661938 0.343468 +vt 0.644761 0.345897 +vt 0.644761 0.345737 +vt 0.644408 0.345736 +vt 0.661774 0.343476 +vt 0.661779 0.343575 +vt 0.661938 0.343468 +vt 0.661664 0.343724 +vt 0.661914 0.343724 +vt 0.666088 0.341451 +vt 0.652408 0.344048 +vt 0.653077 0.344280 +vt 0.652920 0.344378 +vt 0.644352 0.339741 +vt 0.665748 0.341793 +vt 0.665706 0.341738 +vt 0.663936 0.343063 +vt 0.644408 0.345896 +vt 0.644302 0.345896 +vt 0.644079 0.346130 +vt 0.644077 0.347117 +vt 0.645080 0.347119 +vt 0.645082 0.346132 +vt 0.667545 0.348453 +vt 0.667839 0.348708 +vt 0.667838 0.348452 +vt 0.671547 0.336174 +vt 0.671546 0.336029 +vt 0.671385 0.336030 +vt 0.645949 0.348760 +vt 0.645922 0.348760 +vt 0.645922 0.348928 +vt 0.645519 0.348898 +vt 0.645812 0.348899 +vt 0.645813 0.348759 +vt 0.645520 0.348758 +vt 0.645812 0.348899 +vt 0.645839 0.348927 +vt 0.645839 0.348759 +vt 0.665999 0.338618 +vt 0.666027 0.338619 +vt 0.666027 0.338335 +vt 0.645922 0.348760 +vt 0.645839 0.348759 +vt 0.645839 0.348927 +vt 0.671398 0.339640 +vt 0.671245 0.339741 +vt 0.671571 0.340011 +vt 0.671500 0.339488 +vt 0.671536 0.339308 +vt 0.671066 0.339776 +vt 0.669561 0.343988 +vt 0.669414 0.343844 +vt 0.670116 0.343846 +vt 0.669417 0.343083 +vt 0.670343 0.343087 +vt 0.670119 0.343086 +vt 0.670101 0.342715 +vt 0.670239 0.342384 +vt 0.670344 0.341862 +vt 0.670103 0.342052 +vt 0.669440 0.342050 +vt 0.669200 0.341858 +vt 0.669301 0.342381 +vt 0.669196 0.343083 +vt 0.669438 0.342713 +vt 0.669338 0.342202 +vt 0.669592 0.341949 +vt 0.670204 0.342205 +vt 0.670203 0.342563 +vt 0.669948 0.342816 +vt 0.669769 0.342851 +vt 0.669589 0.342815 +vt 0.669336 0.342560 +vt 0.669968 0.343989 +vt 0.669951 0.341950 +vt 0.665497 0.338404 +vt 0.665149 0.338488 +vt 0.665150 0.338600 +vt 0.664984 0.338600 +vt 0.665150 0.338600 +vt 0.665149 0.338488 +vt 0.665458 0.338243 +vt 0.665110 0.338327 +vt 0.665149 0.338488 +vt 0.670113 0.347891 +vt 0.670113 0.347813 +vt 0.669767 0.347812 +vt 0.671352 0.347895 +vt 0.671352 0.347817 +vt 0.670331 0.347814 +vt 0.669766 0.348137 +vt 0.669766 0.348214 +vt 0.670112 0.348215 +vt 0.669766 0.348137 +vt 0.644857 0.345897 +vt 0.666027 0.338619 +vt 0.666110 0.338571 +vt 0.666110 0.338335 +vt 0.666316 0.338619 +vt 0.666233 0.338571 +vt 0.666316 0.338647 +vt 0.666316 0.338619 +vt 0.666027 0.338619 +vt 0.646157 0.348929 +vt 0.646158 0.348622 +vt 0.671549 0.336766 +vt 0.671548 0.336570 +vt 0.671158 0.336572 +vt 0.671517 0.336801 +vt 0.671159 0.336768 +vt 0.668127 0.348451 +vt 0.666344 0.338619 +vt 0.666344 0.338363 +vt 0.666317 0.338336 +vt 0.666317 0.338336 +vt 0.666234 0.338336 +vt 0.646280 0.348929 +vt 0.646516 0.348930 +vt 0.646490 0.348762 +vt 0.646626 0.348903 +vt 0.646626 0.348763 +vt 0.646599 0.348763 +vt 0.646517 0.348762 +vt 0.646516 0.348930 +vt 0.646599 0.348931 +vt 0.646517 0.348762 +vt 0.646626 0.348903 +vt 0.646918 0.348904 +vt 0.646626 0.348763 +vt 0.646919 0.348764 +vt 0.665884 0.348220 +vt 0.666228 0.348025 +vt 0.666399 0.348073 +vt 0.667547 0.348906 +vt 0.666529 0.348691 +vt 0.666756 0.348819 +vt 0.669247 0.347752 +vt 0.669249 0.348205 +vt 0.668969 0.347962 +vt 0.668904 0.348013 +vt 0.668734 0.348063 +vt 0.666446 0.348817 +vt 0.669107 0.347753 +vt 0.651009 0.348764 +vt 0.651047 0.348947 +vt 0.651082 0.348764 +vt 0.650945 0.349104 +vt 0.650893 0.349053 +vt 0.651150 0.348791 +vt 0.651202 0.348842 +vt 0.651013 0.349131 +vt 0.651231 0.348909 +vt 0.651231 0.348982 +vt 0.651086 0.349131 +vt 0.651204 0.349050 +vt 0.651153 0.349102 +vt 0.650942 0.348793 +vt 0.650864 0.348986 +vt 0.650891 0.348845 +vt 0.650864 0.348913 +vt 0.672001 0.336533 +vt 0.671992 0.338283 +vt 0.672197 0.338284 +vt 0.672049 0.338339 +vt 0.672140 0.338340 +vt 0.665496 0.328592 +vt 0.665496 0.328721 +vt 0.665700 0.328722 +vt 0.649982 0.347032 +vt 0.671351 0.348142 +vt 0.671352 0.347895 +vt 0.655858 0.344144 +vt 0.654727 0.340476 +vt 0.654996 0.339627 +vt 0.665497 0.338404 +vt 0.671545 0.335632 +vt 0.672221 0.325898 +vt 0.672200 0.334214 +vt 0.671711 0.332239 +vt 0.652681 0.348753 +vt 0.672084 0.332240 +vt 0.656871 0.341319 +vt 0.671790 0.321103 +vt 0.672085 0.321027 +vt 0.666351 0.329161 +vt 0.652591 0.348631 +vt 0.671872 0.323538 +vt 0.672168 0.323538 +vt 0.667782 0.329387 +vt 0.666549 0.329162 +vt 0.671051 0.347585 +vt 0.671275 0.346444 +vt 0.666784 0.329163 +vt 0.671356 0.327477 +vt 0.667170 0.329165 +vt 0.666935 0.329164 +vt 0.657189 0.345576 +vt 0.671579 0.326337 +vt 0.655754 0.345574 +vt 0.654437 0.340727 +vt 0.672221 0.325747 +vt 0.654999 0.342199 +vt 0.653306 0.342197 +vt 0.656755 0.343970 +vt 0.671874 0.346444 +vt 0.671578 0.346445 +vt 0.656460 0.344046 +vt 0.671609 0.347347 +vt 0.666342 0.332298 +vt 0.671466 0.337028 +vt 0.671470 0.337557 +vt 0.646872 0.342185 +vt 0.668972 0.332310 +vt 0.652336 0.349106 +vt 0.672085 0.329805 +vt 0.669596 0.345450 +vt 0.671789 0.329730 +vt 0.667304 0.332303 +vt 0.668734 0.332309 +vt 0.672085 0.332540 +vt 0.671710 0.333607 +vt 0.668582 0.332308 +vt 0.672166 0.323838 +vt 0.668344 0.332307 +vt 0.655687 0.342193 +vt 0.671795 0.324906 +vt 0.652075 0.340487 +vt 0.653379 0.340482 +vt 0.652073 0.339798 +vt 0.671655 0.346445 +vt 0.644352 0.339741 +vt 0.661929 0.343266 +vt 0.666317 0.341361 +vt 0.663978 0.343119 +vt 0.671386 0.336174 +vt 0.645813 0.348759 +vt 0.665999 0.338362 +vt 0.645922 0.348928 +vt 0.665497 0.338599 +vt 0.664984 0.338489 +vt 0.665497 0.338404 +vt 0.669767 0.347890 +vt 0.670331 0.347891 +vt 0.670112 0.348138 +vt 0.669767 0.347890 +vt 0.666027 0.338335 +vt 0.666027 0.338646 +vt 0.671197 0.336802 +vt 0.666316 0.338619 +vt 0.646282 0.348623 +vt 0.646599 0.348931 +vt 0.646599 0.348763 +vt 0.672205 0.336534 +vt 0.665701 0.328592 +vt 0.645130 0.340230 +vt 0.645115 0.340070 +vt 0.644939 0.340169 +vt 0.644925 0.340018 +vt 0.653589 0.346722 +vt 0.653589 0.346671 +vt 0.654138 0.346662 +vt 0.665807 0.340688 +vt 0.656870 0.339398 +vt 0.655850 0.339403 +vt 0.655851 0.339547 +vt 0.669550 0.348136 +vt 0.669549 0.347891 +vt 0.669475 0.347964 +vt 0.672007 0.330872 +vt 0.672007 0.329730 +vt 0.671789 0.329730 +vt 0.654722 0.339409 +vt 0.671579 0.326337 +vt 0.671361 0.326336 +vt 0.653268 0.346667 +vt 0.645840 0.346789 +vt 0.648555 0.346796 +vt 0.648555 0.346685 +vt 0.653368 0.337690 +vt 0.653364 0.336650 +vt 0.645841 0.346452 +vt 0.655971 0.340807 +vt 0.656866 0.340731 +vt 0.655971 0.340730 +vt 0.671250 0.337251 +vt 0.671173 0.337252 +vt 0.671174 0.337355 +vt 0.671175 0.337452 +vt 0.671176 0.337555 +vt 0.671254 0.337557 +vt 0.670598 0.339307 +vt 0.670569 0.339021 +vt 0.670567 0.340009 +vt 0.668033 0.348210 +vt 0.668032 0.348119 +vt 0.671272 0.335785 +vt 0.671385 0.336030 +vt 0.671546 0.336029 +vt 0.671545 0.335632 +vt 0.671154 0.335634 +vt 0.654284 0.346628 +vt 0.654463 0.346686 +vt 0.654139 0.346714 +vt 0.343293 0.494352 +vt 0.403663 0.495033 +vt 0.424011 0.491967 +vt 0.665656 0.340670 +vt 0.665851 0.340483 +vt 0.665756 0.340431 +vt 0.664125 0.338873 +vt 0.663934 0.339073 +vt 0.665576 0.340641 +vt 0.654003 0.344111 +vt 0.654328 0.344094 +vt 0.654215 0.344297 +vt 0.405218 0.475819 +vt 0.311194 0.474745 +vt 0.651779 0.345198 +vt 0.651935 0.345050 +vt 0.652048 0.344354 +vt 0.651583 0.345233 +vt 0.662656 0.340850 +vt 0.659345 0.340602 +vt 0.659296 0.340678 +vt 0.424375 0.496265 +vt 0.345807 0.496601 +vt 0.345855 0.507785 +vt 0.646508 0.344057 +vt 0.649684 0.344093 +vt 0.649669 0.344043 +vt 0.669763 0.344216 +vt 0.669762 0.344374 +vt 0.669531 0.344215 +vt 0.665873 0.340511 +vt 0.669360 0.345109 +vt 0.665821 0.341739 +vt 0.672006 0.333607 +vt 0.672007 0.332466 +vt 0.671789 0.332465 +vt 0.654433 0.338957 +vt 0.656867 0.338944 +vt 0.656669 0.338713 +vt 0.656667 0.338361 +vt 0.654429 0.338141 +vt 0.656864 0.338360 +vt 0.656863 0.338096 +vt 0.653400 0.344098 +vt 0.653390 0.344296 +vt 0.652050 0.344171 +vt 0.649802 0.344145 +vt 0.656863 0.337912 +vt 0.654402 0.338030 +vt 0.656866 0.338712 +vt 0.655067 0.339300 +vt 0.655286 0.339299 +vt 0.654407 0.339067 +vt 0.655849 0.339296 +vt 0.656869 0.339171 +vt 0.655631 0.339297 +vt 0.652632 0.338147 +vt 0.652938 0.338146 +vt 0.652967 0.338035 +vt 0.662503 0.338903 +vt 0.662477 0.339733 +vt 0.662538 0.339781 +vt 0.411117 0.477267 +vt 0.411370 0.492239 +vt 0.424354 0.492076 +vt 0.655278 0.336619 +vt 0.655279 0.337686 +vt 0.655624 0.337686 +vt 0.662902 0.338878 +vt 0.662914 0.339780 +vt 0.662981 0.339739 +vt 0.645309 0.346450 +vt 0.645308 0.346788 +vt 0.666773 0.346076 +vt 0.666773 0.346282 +vt 0.668969 0.346283 +vt 0.652633 0.338379 +vt 0.652788 0.338378 +vt 0.302821 0.490584 +vt 0.410043 0.495106 +vt 0.652336 0.349106 +vt 0.652553 0.349106 +vt 0.652553 0.348753 +vt 0.661163 0.348102 +vt 0.661163 0.347939 +vt 0.655926 0.347949 +vt 0.424262 0.469977 +vt 0.405287 0.469761 +vt 0.671872 0.323538 +vt 0.672090 0.323538 +vt 0.672088 0.322396 +vt 0.661578 0.348101 +vt 0.661577 0.347938 +vt 0.661362 0.347939 +vt 0.661362 0.348102 +vt 0.662153 0.348100 +vt 0.662310 0.347937 +vt 0.661761 0.347938 +vt 0.670672 0.344629 +vt 0.670508 0.344764 +vt 0.670115 0.344376 +vt 0.669789 0.344760 +vt 0.652789 0.338731 +vt 0.652941 0.338962 +vt 0.670084 0.344762 +vt 0.670082 0.345113 +vt 0.670506 0.345115 +vt 0.670670 0.345116 +vt 0.652372 0.337694 +vt 0.670348 0.344219 +vt 0.655279 0.337793 +vt 0.656863 0.337685 +vt 0.655843 0.337686 +vt 0.655843 0.337793 +vt 0.655755 0.344598 +vt 0.655754 0.345574 +vt 0.657189 0.345576 +vt 0.653587 0.337690 +vt 0.653932 0.337689 +vt 0.653928 0.336621 +vt 0.654151 0.337688 +vt 0.654496 0.337687 +vt 0.654493 0.336620 +vt 0.671872 0.322170 +vt 0.672090 0.322169 +vt 0.672085 0.321027 +vt 0.652049 0.345739 +vt 0.651029 0.345736 +vt 0.662560 0.338873 +vt 0.666774 0.345670 +vt 0.668969 0.346078 +vt 0.666773 0.347043 +vt 0.668969 0.347044 +vt 0.411093 0.495895 +vt 0.423965 0.496042 +vt 0.646451 0.344107 +vt 0.661762 0.348101 +vt 0.671788 0.332239 +vt 0.672006 0.332240 +vt 0.672007 0.331098 +vt 0.670079 0.345801 +vt 0.669784 0.345800 +vt 0.669787 0.345111 +vt 0.670116 0.344218 +vt 0.671051 0.347585 +vt 0.671270 0.347586 +vt 0.671275 0.346444 +vt 0.654713 0.336619 +vt 0.654715 0.337686 +vt 0.655060 0.337686 +vt 0.655624 0.337793 +vt 0.653933 0.337796 +vt 0.653587 0.337797 +vt 0.653369 0.337798 +vt 0.654151 0.337795 +vt 0.655060 0.337793 +vt 0.654715 0.337794 +vt 0.656181 0.344310 +vt 0.655958 0.344139 +vt 0.655911 0.344201 +vt 0.652635 0.338964 +vt 0.652378 0.339418 +vt 0.652971 0.339073 +vt 0.655170 0.347691 +vt 0.655169 0.347353 +vt 0.653593 0.339306 +vt 0.653939 0.339305 +vt 0.653375 0.339415 +vt 0.653374 0.339307 +vt 0.655631 0.339404 +vt 0.655286 0.339406 +vt 0.655287 0.339550 +vt 0.655701 0.347689 +vt 0.668970 0.345671 +vt 0.668970 0.345465 +vt 0.652634 0.338732 +vt 0.403381 0.492993 +vt 0.410153 0.492980 +vt 0.671176 0.338233 +vt 0.671253 0.338233 +vt 0.671248 0.337030 +vt 0.645543 0.340191 +vt 0.650254 0.339752 +vt 0.650742 0.339545 +vt 0.405500 0.512252 +vt 0.405526 0.518299 +vt 0.655068 0.339554 +vt 0.655068 0.339408 +vt 0.645344 0.340210 +vt 0.645329 0.340050 +vt 0.645528 0.340032 +vt 0.653939 0.339413 +vt 0.669362 0.344758 +vt 0.669202 0.344621 +vt 0.654722 0.339302 +vt 0.669200 0.345108 +vt 0.653593 0.339414 +vt 0.653597 0.340482 +vt 0.653943 0.340480 +vt 0.654158 0.339412 +vt 0.654162 0.340479 +vt 0.654508 0.340478 +vt 0.654157 0.339304 +vt 0.654504 0.339410 +vt 0.654503 0.339303 +vt 0.666774 0.345464 +vt 0.668970 0.344705 +vt 0.672090 0.324906 +vt 0.672089 0.323764 +vt 0.671870 0.323765 +vt 0.659341 0.339758 +vt 0.659342 0.339807 +vt 0.644946 0.340247 +vt 0.656755 0.343970 +vt 0.656537 0.343971 +vt 0.656538 0.344190 +vt 0.652042 0.344901 +vt 0.645109 0.340001 +vt 0.665779 0.341683 +vt 0.665706 0.341738 +vt 0.661666 0.343279 +vt 0.661676 0.343481 +vt 0.661774 0.343476 +vt 0.653725 0.344114 +vt 0.653832 0.344119 +vt 0.653822 0.344318 +vt 0.654014 0.344308 +vt 0.654333 0.346558 +vt 0.655311 0.344043 +vt 0.655447 0.346648 +vt 0.661438 0.342326 +vt 0.661436 0.342143 +vt 0.657096 0.342143 +vt 0.661436 0.342509 +vt 0.657096 0.342326 +vt 0.661430 0.342692 +vt 0.657096 0.342509 +vt 0.661427 0.342875 +vt 0.657096 0.342692 +vt 0.666250 0.348901 +vt 0.666250 0.348816 +vt 0.657096 0.342875 +vt 0.657096 0.343058 +vt 0.661427 0.343058 +vt 0.657096 0.343240 +vt 0.661427 0.343240 +vt 0.666203 0.348900 +vt 0.666204 0.348816 +vt 0.665882 0.348899 +vt 0.665883 0.348814 +vt 0.661427 0.343423 +vt 0.657096 0.343423 +vt 0.657096 0.343606 +vt 0.661427 0.343606 +vt 0.657096 0.343789 +vt 0.661427 0.343789 +vt 0.657096 0.343972 +vt 0.661427 0.343972 +vt 0.657096 0.344155 +vt 0.661427 0.344155 +vt 0.657096 0.344338 +vt 0.661427 0.344338 +vt 0.657096 0.341411 +vt 0.657096 0.341594 +vt 0.661427 0.341594 +vt 0.657096 0.341777 +vt 0.661430 0.341777 +vt 0.649012 0.349171 +vt 0.649012 0.349086 +vt 0.648961 0.349086 +vt 0.661433 0.341960 +vt 0.657096 0.341960 +vt 0.649208 0.349086 +vt 0.649714 0.349170 +vt 0.649518 0.349086 +vt 0.649435 0.348914 +vt 0.649290 0.348914 +vt 0.649435 0.348644 +vt 0.649290 0.348644 +vt 0.667918 0.348211 +vt 0.667216 0.348214 +vt 0.667216 0.348127 +vt 0.667101 0.348214 +vt 0.667100 0.348123 +vt 0.646282 0.348623 +vt 0.646158 0.348622 +vt 0.646157 0.348929 +vt 0.656458 0.342453 +vt 0.656457 0.342704 +vt 0.656541 0.342453 +vt 0.656833 0.342705 +vt 0.656833 0.342454 +vt 0.656832 0.342788 +vt 0.655958 0.342785 +vt 0.655957 0.342962 +vt 0.656832 0.342965 +vt 0.656041 0.343742 +vt 0.656743 0.343745 +vt 0.656829 0.343669 +vt 0.655955 0.343666 +vt 0.653267 0.346719 +vt 0.670795 0.338787 +vt 0.670736 0.338975 +vt 0.671068 0.338839 +vt 0.671350 0.338788 +vt 0.671399 0.338977 +vt 0.671573 0.339023 +vt 0.670633 0.339486 +vt 0.670735 0.339638 +vt 0.670887 0.339740 +vt 0.671500 0.339129 +vt 0.671247 0.338875 +vt 0.670888 0.338874 +vt 0.670634 0.339127 +vt 0.671253 0.337451 +vt 0.671248 0.337030 +vt 0.671250 0.337251 +vt 0.671469 0.337246 +vt 0.656541 0.342427 +vt 0.656458 0.342426 +vt 0.671274 0.336420 +vt 0.671548 0.336419 +vt 0.671547 0.336174 +vt 0.671548 0.336570 +vt 0.666952 0.348820 +vt 0.666952 0.348904 +vt 0.666998 0.348905 +vt 0.667319 0.348906 +vt 0.666998 0.348820 +vt 0.649765 0.349170 +vt 0.649765 0.349086 +vt 0.649714 0.349086 +vt 0.656334 0.342703 +vt 0.655958 0.342702 +vt 0.667918 0.348124 +vt 0.656252 0.342426 +vt 0.656251 0.342452 +vt 0.656334 0.342453 +vt 0.654496 0.337794 +vt 0.651009 0.348764 +vt 0.651082 0.348764 +vt 0.651103 0.348667 +vt 0.651150 0.348791 +vt 0.651206 0.348710 +vt 0.651013 0.349131 +vt 0.650945 0.349104 +vt 0.650889 0.349185 +vt 0.651202 0.348842 +vt 0.651285 0.348789 +vt 0.651231 0.348909 +vt 0.651328 0.348892 +vt 0.651086 0.349131 +vt 0.650992 0.349228 +vt 0.651231 0.348982 +vt 0.651328 0.349003 +vt 0.651204 0.349050 +vt 0.651285 0.349106 +vt 0.651153 0.349102 +vt 0.651103 0.349228 +vt 0.651206 0.349185 +vt 0.650864 0.348986 +vt 0.650864 0.348913 +vt 0.650767 0.348892 +vt 0.650891 0.348845 +vt 0.650942 0.348793 +vt 0.650889 0.348710 +vt 0.650893 0.349053 +vt 0.650767 0.349003 +vt 0.650810 0.349106 +vt 0.650992 0.348667 +vt 0.650810 0.348789 +vt 0.663495 0.328582 +vt 0.663495 0.328711 +vt 0.663575 0.328712 +vt 0.663666 0.328712 +vt 0.663667 0.328583 +vt 0.663575 0.328583 +vt 0.663746 0.328583 +vt 0.663746 0.328713 +vt 0.665496 0.328721 +vt 0.661745 0.328574 +vt 0.661745 0.328703 +vt 0.656871 0.339542 +vt 0.669475 0.348061 +vt 0.671788 0.330872 +vt 0.671254 0.337557 +vt 0.671252 0.337354 +vt 0.671545 0.335784 +vt 0.671787 0.333607 +vt 0.424233 0.477149 +vt 0.655624 0.336619 +vt 0.662967 0.338908 +vt 0.652336 0.348753 +vt 0.656433 0.348111 +vt 0.671870 0.322396 +vt 0.657191 0.344600 +vt 0.653583 0.336623 +vt 0.654148 0.336621 +vt 0.671867 0.321028 +vt 0.671789 0.331098 +vt 0.671056 0.346443 +vt 0.655059 0.336619 +vt 0.656134 0.344371 +vt 0.655632 0.339548 +vt 0.655699 0.347352 +vt 0.659343 0.339981 +vt 0.671171 0.337105 +vt 0.424469 0.518218 +vt 0.666774 0.344703 +vt 0.671872 0.324906 +vt 0.656756 0.344189 +vt 0.665748 0.341793 +vt 0.661765 0.343274 +vt 0.653715 0.344312 +vt 0.659330 0.338958 +vt 0.661427 0.341411 +vt 0.648961 0.349171 +vt 0.646280 0.348929 +vt 0.671466 0.337028 +vt 0.671386 0.336174 +vt 0.671158 0.336572 +vt 0.667319 0.348822 +vt 0.656334 0.342426 +vt 0.655959 0.342451 +vt 0.665496 0.328592 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 1.0000 -0.0001 +vn -1.0000 0.0000 0.0005 +vn 0.0000 -0.7793 -0.6266 +vn 0.0000 -1.0000 0.0000 +vn 1.0000 0.0001 -0.0001 +vn 1.0000 -0.0005 -0.0001 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.2954 -0.9554 +vn 1.0000 0.0000 -0.0001 +vn -1.0000 0.0000 -0.0001 +vn 0.0000 -1.0000 -0.0001 +vn -1.0000 0.0001 -0.0001 +vn 0.0000 0.3579 0.9338 +vn 0.0000 0.3242 -0.9460 +vn 0.0000 -0.9724 -0.2331 +vn -1.0000 0.0000 0.0002 +vn 0.0000 0.6488 0.7610 +vn -0.0000 0.6112 0.7915 +vn -0.0000 0.3594 0.9332 +vn -0.0000 0.3979 0.9174 +vn 0.3944 -0.9189 0.0000 +vn -0.2584 -0.9660 0.0000 +vn -0.0544 0.0347 -0.9979 +vn -0.9202 0.3915 0.0000 +vn -0.9202 0.3914 0.0000 +vn -1.0000 -0.0000 -0.0023 +vn -1.0000 -0.0001 -0.0070 +vn -0.7948 0.6069 -0.0000 +vn -0.8837 0.4681 0.0000 +vn -0.9815 0.1914 -0.0000 +vn 0.9202 0.3914 0.0000 +vn 0.7785 0.6277 -0.0000 +vn 0.8716 -0.4902 0.0001 +vn 0.9946 0.0000 0.1036 +vn 0.9501 0.3120 -0.0000 +vn 0.9922 0.0000 0.1244 +vn 0.0000 -0.9849 0.1730 +vn -0.0000 -0.8848 0.4659 +vn 0.0000 -0.5054 0.8629 +vn -0.0000 -0.2527 0.9675 +vn 0.0000 -0.3827 0.9239 +vn -0.0001 0.5055 0.8628 +vn -0.0151 0.3827 0.9237 +vn -0.0075 0.3820 0.9241 +vn -0.0098 -0.0134 -0.9999 +vn -0.0135 0.0030 -0.9999 +vn -0.0078 -0.0088 -0.9999 +vn -0.9112 -0.0000 0.4119 +vn 0.9588 0.2841 -0.0000 +vn 0.8386 0.5448 0.0000 +vn -0.8061 -0.3082 -0.5053 +vn -0.8143 -0.5805 -0.0013 +vn -0.5167 -0.8561 0.0000 +vn 0.6939 0.7201 0.0000 +vn 0.4341 0.8971 0.0825 +vn 0.9006 0.4347 0.0001 +vn -0.6892 0.1308 -0.7126 +vn -0.9536 0.0970 -0.2850 +vn -0.9956 0.0942 -0.0000 +vn -0.8233 -0.5676 0.0006 +vn -0.9600 -0.2555 -0.1143 +vn -0.3908 -0.9205 0.0012 +vn -0.9277 -0.3732 0.0009 +vn -0.8233 -0.5676 0.0008 +vn 0.8835 0.4684 0.0000 +vn -0.9987 0.0005 0.0512 +vn -1.0000 0.0021 0.0000 +vn -0.9199 0.3923 -0.0002 +vn -0.8535 0.5212 0.0001 +vn 0.1239 0.9740 0.1894 +vn 0.4932 0.8699 -0.0000 +vn -0.0000 0.9039 -0.4278 +vn 0.0000 0.8020 -0.5974 +vn -0.2691 0.9151 -0.3004 +vn -0.1559 0.0685 -0.9854 +vn 0.0000 0.2196 -0.9756 +vn 0.0000 0.2883 -0.9575 +vn -0.8561 0.5167 0.0000 +vn -0.2979 0.9546 0.0000 +vn -0.2469 0.9690 0.0000 +vn 0.0544 0.9985 0.0027 +vn 0.3979 0.9174 0.0029 +vn 0.1126 0.9936 0.0000 +vn 0.4234 0.9059 0.0029 +vn 0.9695 -0.2451 0.0000 +vn 0.8716 -0.4902 0.0000 +vn 0.4233 0.9060 0.0029 +vn 0.6497 0.7602 -0.0000 +vn -0.8837 0.4680 0.0000 +vn -0.6017 0.7987 -0.0000 +vn -0.8561 0.5168 0.0000 +vn -0.6934 0.7206 0.0000 +vn -0.8186 0.5743 0.0000 +vn 0.2692 0.9150 -0.3004 +vn 0.1831 0.9831 0.0000 +vn 0.5496 0.8354 0.0000 +vn -0.2622 0.9451 0.1950 +vn -0.4802 0.8651 0.1452 +vn 0.3027 0.9480 -0.0986 +vn -0.3083 0.9299 -0.2006 +vn -0.2470 0.9690 0.0000 +vn 0.3052 0.9313 -0.1990 +vn -0.3051 0.9470 -0.1000 +vn 0.9878 0.0000 0.1556 +vn 0.4972 -0.8676 0.0000 +vn 0.9665 -0.2568 0.0000 +vn 0.8580 -0.5136 0.0000 +vn 0.0000 0.9980 0.0635 +vn 0.0000 0.9919 0.1269 +vn 0.8837 0.4681 0.0000 +vn 0.0000 0.6730 0.7397 +vn 0.0000 0.6239 0.7815 +vn 0.0000 0.8374 0.5466 +vn 0.0000 0.9284 0.3717 +vn 0.0000 0.1989 0.9800 +vn 0.0033 0.6337 -0.7736 +vn 0.0022 0.6323 -0.7747 +vn -0.0001 0.7210 -0.6930 +vn -0.0000 0.6324 -0.7746 +vn -0.2468 0.9691 0.0000 +vn 0.0000 0.6332 -0.7740 +vn -0.0001 0.4392 -0.8984 +vn 0.0028 0.4406 -0.8977 +vn 0.8561 0.5169 -0.0001 +vn 0.2691 0.9151 -0.3004 +vn 0.7948 0.6069 -0.0000 +vn 0.8561 0.5168 0.0000 +vn 0.9660 0.2584 0.0000 +vn 0.8561 0.5168 -0.0001 +vn -0.3763 -0.9265 0.0000 +vn 0.2486 -0.9686 0.0000 +vn 0.3737 0.9275 -0.0000 +vn -0.0001 0.2196 -0.9756 +vn 0.8837 0.4680 0.0000 +vn 0.7785 0.6276 -0.0000 +vn 0.9202 0.3915 0.0000 +vn 0.0000 -0.7520 0.6592 +vn -0.8561 0.5169 -0.0001 +vn -0.6262 0.7797 -0.0000 +vn -0.9883 0.0000 0.1528 +vn -0.9881 0.0006 0.1536 +vn -0.8580 -0.5136 -0.0000 +vn -0.0139 -0.0016 0.9999 +vn 0.0000 -0.0032 1.0000 +vn -0.9881 0.0014 0.1536 +vn -0.0000 0.9284 0.3716 +vn -0.0000 0.8374 0.5465 +vn -0.0022 0.6324 -0.7746 +vn -0.0027 0.6339 -0.7734 +vn -0.0015 0.4406 -0.8977 +vn -0.9660 0.2584 -0.0000 +vn -0.9665 -0.2568 -0.0000 +vn -0.3839 0.9234 0.0000 +vn -0.6994 0.7147 0.0000 +vn 0.0000 0.5725 0.8199 +vn 0.0000 0.5724 0.8200 +vn 0.0000 0.2878 -0.9577 +vn 0.0000 0.5513 -0.8343 +vn -0.3908 -0.9205 0.0007 +vn -0.3902 -0.9207 0.0000 +vn -0.9601 -0.2554 -0.1143 +vn -0.9472 -0.3207 0.0000 +vn -0.9978 0.0661 -0.0000 +vn -0.9978 -0.0662 0.0000 +vn -0.7523 -0.6588 -0.0000 +vn -0.8965 -0.4430 -0.0000 +vn -0.4430 -0.8965 0.0000 +vn -0.6588 -0.7523 0.0000 +vn -0.0661 -0.9978 0.0000 +vn -0.3207 -0.9472 0.0000 +vn 0.1802 -0.0001 0.9836 +vn 0.4855 -0.0001 0.8742 +vn 0.0662 -0.9978 0.0000 +vn 0.3827 -0.9239 0.0000 +vn 0.3828 -0.9238 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.8510 -0.0001 0.5252 +vn 0.9649 0.0000 0.2626 +vn 0.9715 0.0000 -0.2369 +vn 0.8806 -0.0000 -0.4739 +vn 0.8965 -0.4430 -0.0000 +vn 0.9472 -0.3207 0.0000 +vn 0.9978 0.0662 -0.0000 +vn 0.9978 -0.0662 0.0000 +vn 0.8965 0.4430 -0.0000 +vn 0.9472 0.3207 0.0000 +vn 0.6588 0.7523 0.0000 +vn 0.7523 0.6588 -0.0000 +vn 0.3207 0.9472 0.0000 +vn 0.4430 0.8965 0.0000 +vn -0.0662 0.9978 0.0000 +vn 0.0661 0.9978 0.0000 +vn -0.0661 0.9978 0.0000 +vn -0.3827 0.9239 0.0000 +vn -0.3828 0.9238 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.4068 0.0000 -0.9135 +vn -0.8965 0.4430 0.0000 +vn -0.9472 0.3207 0.0000 +vn 0.0000 0.2895 -0.9572 +vn -0.3241 -0.0000 -0.9460 +vn -0.0000 0.2399 -0.9708 +vn 0.0000 0.5962 -0.8028 +vn -0.0000 0.5087 -0.8609 +vn 0.0000 0.4166 -0.9091 +vn -0.2336 0.0000 0.9723 +vn 0.3531 0.0000 0.9356 +vn 0.9112 -0.0000 0.4119 +vn 0.0000 0.8520 0.5235 +vn -0.0002 0.7892 0.6142 +vn 0.0000 0.1917 0.9814 +vn -0.0000 0.7892 0.6142 +vn 0.0000 0.4287 0.9035 +vn 0.0000 0.6411 0.7674 +vn 0.0000 0.5534 0.8329 +vn 0.0000 0.8920 0.4521 +vn 0.0000 0.8459 0.5334 +vn 0.0000 0.9771 0.2126 +vn 0.0000 0.9896 0.1439 +vn 0.0000 0.9979 0.0648 +vn 0.0000 0.9977 0.0682 +vn 0.0000 0.9974 0.0716 +vn 0.9695 -0.2451 -0.0001 +vn -0.0111 0.0273 -0.9996 +vn -0.0194 0.0258 -0.9995 +vn -0.0030 0.0101 -0.9999 +vn 0.0000 0.0008 -1.0000 +vn -0.0005 0.0005 -1.0000 +vn -0.0009 -0.0000 -1.0000 +vn -0.0148 -0.0140 -0.9998 +vn -0.0127 -0.0131 -0.9998 +vn -0.0055 -0.0061 -1.0000 +vn -0.0004 -0.0004 -1.0000 +vn 0.0004 0.0004 -1.0000 +vn -0.0138 0.0348 -0.9993 +vn -0.0152 -0.0072 -0.9999 +vn 0.0000 0.2527 0.9675 +vn -0.9588 0.2841 -0.0000 +vn -0.8386 0.5448 0.0000 +vn -0.4855 0.0000 0.8742 +vn -0.2428 0.0000 0.9701 +vn -0.8510 0.0000 0.5252 +vn -0.9715 0.0001 -0.2369 +vn -0.9649 0.0000 0.2626 +vn -0.9715 0.0000 -0.2370 +vn -0.8806 -0.0000 -0.4739 +vn -0.4068 0.0000 -0.9135 +vn 0.0000 0.8521 0.5234 +vn -0.4670 -0.0000 0.8842 +vn -0.6588 0.7523 0.0000 +vn -0.7523 0.6588 0.0000 +vn -0.3207 0.9472 0.0000 +vn -0.4430 0.8965 0.0000 +vn 0.6588 -0.7523 0.0000 +vn 0.3207 -0.9472 0.0000 +vn 0.4430 -0.8965 0.0000 +vn 0.7523 -0.6588 0.0000 +vn 0.9978 -0.0661 0.0000 +vn 0.9978 0.0661 0.0000 +vn -0.9978 -0.0661 0.0000 +vn 0.0661 -0.9978 0.0000 +vn -0.0001 -0.8629 -0.5054 +vn -0.0000 -0.9675 -0.2527 +vn -0.0001 -0.5054 -0.8629 +vn -0.0000 0.2527 -0.9675 +vn 0.0000 0.5054 -0.8629 +vn 0.0000 -0.2527 -0.9675 +vn 0.0000 0.9675 -0.2527 +vn 0.0001 0.8629 -0.5054 +vn -1.0000 0.0000 -0.0068 +vn -1.0000 0.0000 -0.0028 +vn -0.0000 -0.3824 0.9240 +vn 0.3738 0.9275 -0.0000 +vn 0.0001 0.7210 -0.6930 +vn 0.7948 0.6069 -0.0002 +vn -0.6262 0.7797 -0.0001 +vn 0.0000 -0.9849 0.1731 +vn -0.9987 0.0000 0.0512 +vn -1.0000 0.0026 0.0000 +vn 0.0662 0.9978 -0.0000 +vn 0.9715 0.0000 -0.2370 +usemtl Material.001 +s off +f 1875/1928/926 1876/1929/926 1877/1930/926 +f 1878/1931/927 1879/1932/927 1880/1933/927 +f 1881/1934/928 1882/1935/928 1883/1936/928 +f 1884/1937/928 1885/1938/928 1886/1939/928 +f 1887/1940/929 1888/1941/929 1889/1942/929 +f 1881/1934/930 1890/1943/928 1891/1944/930 +f 1892/1945/931 1893/1946/931 1894/1947/931 +f 1895/1948/932 1896/1949/932 1897/1950/932 +f 1898/1951/933 1899/1952/933 1900/1953/933 +f 1895/1948/932 1897/1950/932 1901/1954/932 +f 1902/1955/928 1903/1956/928 1904/1957/928 +f 1905/1958/934 1906/1959/934 1907/1960/934 +f 1908/1961/935 1909/1962/935 1910/1963/935 +f 1910/1963/935 1911/1964/935 1908/1961/935 +f 1912/1965/932 1895/1948/932 1913/1966/932 +f 1914/1967/932 1915/1968/932 1912/1965/932 +f 1885/1938/928 1916/1969/928 1917/1970/928 +f 1918/1971/926 1919/1972/926 1920/1973/926 +f 1921/1974/932 1922/1975/932 1923/1976/932 +f 1924/1977/932 1925/1978/932 1926/1979/932 +f 1914/1967/932 1912/1965/932 1913/1966/932 +f 1927/1980/926 1928/1981/926 1929/1982/926 +f 1929/1982/926 1930/1983/926 1927/1980/926 +f 1931/1984/932 1932/1985/932 1933/1986/932 +f 1934/1987/928 1935/1988/928 1936/1989/928 +f 1919/1972/926 1937/1990/926 1920/1973/926 +f 1938/1991/935 1939/1992/935 1940/1993/935 +f 1925/1978/932 1901/1954/932 1926/1979/932 +f 1897/1950/932 1926/1979/932 1901/1954/932 +f 1912/1965/932 1941/1994/932 1895/1948/932 +f 1926/1979/932 1942/1995/932 1924/1977/932 +f 1943/1996/935 1944/1997/935 1945/1998/935 +f 1946/1999/926 1920/1973/926 1937/1990/926 +f 1947/2000/926 1948/2001/926 1949/2002/926 +f 1950/2003/935 1951/2004/935 1952/2005/935 +f 1953/2006/936 1954/2007/936 1955/2008/936 +f 1956/2009/936 1957/2010/936 1954/2007/936 +f 1926/1979/932 1923/1976/932 1922/1975/932 +f 1958/2011/932 1959/2012/932 1942/1995/932 +f 1960/2013/932 1961/2014/932 1959/2012/932 +f 1962/2015/928 1963/2016/928 1964/2017/928 +f 1965/2018/927 1966/2019/927 1967/2020/927 +f 1968/2021/927 1969/2022/927 1970/2023/927 +f 1971/2024/927 1972/2025/927 1973/2026/927 +f 1974/2027/932 1975/2028/932 1976/2029/932 +f 1977/2030/932 1978/2031/932 1979/2032/932 +f 1980/2033/927 1981/2034/927 1982/2035/927 +f 1983/2036/927 1982/2035/927 1984/2037/927 +f 1985/2038/927 1986/2039/927 1987/2040/927 +f 1988/2041/932 1989/2042/932 1933/1986/932 +f 1990/2043/932 1991/2044/932 1992/2045/932 +f 1993/2046/932 1994/2047/932 1959/2012/932 +f 1995/2048/927 1996/2049/927 1997/2050/927 +f 1998/2051/937 1999/2052/937 2000/2053/937 +f 2001/2054/935 2002/2055/935 2003/2056/935 +f 1961/2014/932 1960/2013/932 2004/2057/932 +f 2005/2058/938 2006/2059/938 2007/2060/938 +f 2008/2061/927 2009/2062/927 2010/2063/927 +f 2011/2064/935 2012/2065/935 2013/2066/935 +f 2014/2067/933 2015/2068/933 2005/2058/933 +f 2016/2069/939 2017/2070/939 2018/2071/939 +f 2019/2072/928 2020/2073/928 2021/2074/928 +f 2022/2075/927 2023/2076/927 2024/2077/927 +f 2025/2078/927 2026/2079/927 2027/2080/927 +f 2028/2081/935 2029/2082/935 2030/2083/935 +f 1915/1968/932 2031/2084/932 1912/1965/932 +f 2032/2085/940 2033/2086/940 2034/2087/940 +f 2035/2088/940 2036/2089/940 2037/2090/940 +f 2038/2091/927 2039/2092/927 2040/2093/927 +f 2041/2094/927 2042/2095/927 2043/2096/927 +f 2044/2097/935 2045/2098/935 2046/2099/935 +f 2043/2096/927 2027/2080/927 2041/2094/927 +f 2047/2100/941 2048/2101/941 2049/2102/941 +f 2050/2103/939 2051/2104/939 2052/2105/939 +f 2053/2106/927 2054/2107/927 2055/2108/927 +f 2056/2109/939 2049/2102/939 2048/2101/939 +f 2057/2110/929 2058/2111/929 2059/2112/929 +f 2060/2113/942 2061/2114/942 2062/2115/942 +f 2063/2116/935 2064/2117/935 2065/2118/935 +f 2066/2119/926 2067/2120/926 1937/1990/926 +f 2068/2121/943 2069/2122/943 2070/2123/943 +f 1915/1968/932 2071/2124/932 2031/2084/932 +f 1992/2045/932 2072/2125/932 1933/1986/932 +f 1959/2012/932 1961/2014/932 1933/1986/932 +f 1958/2011/932 2073/2126/932 2074/2127/932 +f 2075/2128/932 1988/2041/932 1933/1986/932 +f 1933/1986/932 2076/2129/932 2077/2130/932 +f 2078/2131/932 2076/2129/932 1933/1986/932 +f 2078/2131/932 2072/2125/932 2079/2132/932 +f 2080/2133/927 2081/2134/927 2082/2135/927 +f 1987/2040/927 2080/2133/927 2083/2136/927 +f 2084/2137/927 1981/2034/927 1980/2033/927 +f 2073/2126/932 2085/2138/932 2074/2127/932 +f 2086/2139/932 2087/2140/932 2088/2141/932 +f 2089/2142/932 2073/2126/932 1958/2011/932 +f 2090/2143/927 2091/2144/927 2092/2145/927 +f 2093/2146/927 2094/2147/927 2095/2148/927 +f 2096/2149/935 2097/2150/935 2098/2151/935 +f 2099/2152/935 2100/2153/935 2101/2154/935 +f 2102/2155/928 2103/2156/928 2104/2157/928 +f 2105/2158/939 2106/2159/939 2107/2160/939 +f 2108/2161/927 2109/2162/927 2110/2163/927 +f 2111/2164/927 2112/2165/927 2113/2166/927 +f 1921/1974/932 1896/1949/932 1975/2028/932 +f 2114/2167/941 2106/2159/941 2105/2158/941 +f 2115/2168/926 2116/2169/926 2117/2170/926 +f 2118/2171/926 2119/2172/926 2120/2173/926 +f 2121/2174/927 2122/2175/927 2123/2176/927 +f 1941/1994/932 1975/2028/932 1896/1949/932 +f 2124/2177/927 2125/2178/927 2126/2179/927 +f 2127/2180/935 2128/2181/935 2129/2182/935 +f 1976/2029/932 1975/2028/932 1941/1994/932 +f 2130/2183/940 2131/2184/940 2132/2185/940 +f 2133/2186/940 2134/2187/940 2135/2188/940 +f 2136/2189/927 2137/2190/927 2138/2191/927 +f 2139/2192/927 2140/2193/927 2125/2178/927 +f 2141/2194/935 2142/2195/935 2143/2196/935 +f 2126/2179/927 2125/2178/927 2140/2193/927 +f 2144/2197/926 2145/2198/926 2146/2199/926 +f 2147/2200/938 2148/2201/938 2149/2202/938 +f 2074/2127/932 2150/2203/932 2088/2141/932 +f 2151/2204/932 2074/2127/932 2087/2140/932 +f 2152/2205/927 2153/2206/927 2154/2207/927 +f 2155/2208/926 2156/2209/926 2144/2197/926 +f 2157/2210/929 2158/2211/929 2159/2212/929 +f 2160/2213/932 2151/2204/932 2161/2214/932 +f 2162/2215/932 2163/2216/932 2074/2127/932 +f 2164/2217/935 2165/2218/935 2166/2219/935 +f 2167/2220/932 2074/2127/932 2163/2216/932 +f 2168/2221/928 2169/2222/928 2170/2223/928 +f 1977/2030/932 2150/2203/932 2074/2127/932 +f 2171/2224/935 2172/2225/935 2173/2226/935 +f 1909/1962/935 2174/2227/935 2172/2225/935 +f 1909/1962/935 1908/1961/935 2174/2227/935 +f 2175/2228/926 2176/2229/926 2177/2230/926 +f 2178/2231/928 2179/2232/928 2180/2233/928 +f 2181/2234/935 2182/2235/935 2183/2236/935 +f 2184/2237/935 2185/2238/935 2186/2239/935 +f 2187/2240/935 2188/2241/935 2186/2239/935 +f 1965/2018/927 1967/2020/927 2189/2242/927 +f 2190/2243/926 2191/2244/926 2192/2245/926 +f 2172/2225/935 2193/2246/935 2173/2226/935 +f 2194/2247/936 2195/2248/936 2196/2249/936 +f 2197/2250/935 2198/2251/935 2199/2252/935 +f 2200/2253/935 2201/2254/935 2202/2255/935 +f 2203/2256/927 2204/2257/927 2205/2258/927 +f 2206/2259/936 2207/2260/936 2208/2261/936 +f 2209/2262/928 2210/2263/928 2211/2264/928 +f 2212/2265/936 2213/2266/936 2214/2267/936 +f 2214/2267/936 2215/2268/936 2212/2265/936 +f 2216/2269/926 2217/2270/926 2218/2271/926 +f 2219/2272/926 2220/2273/926 2221/2274/926 +f 2222/2275/936 2223/2276/936 2224/2277/936 +f 2192/2245/926 1948/2001/926 1947/2000/926 +f 1923/1976/932 1896/1949/932 1921/1974/932 +f 2225/2278/927 2226/2279/927 2227/2280/927 +f 2228/2281/927 2225/2278/927 2227/2280/927 +f 2229/2282/927 2228/2281/927 2227/2280/927 +f 2190/2243/926 2192/2245/926 1947/2000/926 +f 2226/2279/927 2230/2283/927 2227/2280/927 +f 2231/2284/935 2232/2285/935 2233/2286/935 +f 2233/2286/935 2232/2285/935 2234/2287/935 +f 2235/2288/935 2236/2289/935 2237/2290/935 +f 2238/2291/935 2239/2292/935 2235/2288/935 +f 1945/1998/935 2239/2292/935 2240/2293/935 +f 2241/2294/935 2242/2295/935 1944/1997/935 +f 2243/2296/935 2244/2297/935 2242/2295/935 +f 2245/2298/935 2234/2287/935 2244/2297/935 +f 2246/2299/935 2243/2296/935 2242/2295/935 +f 2241/2294/935 2246/2299/935 2242/2295/935 +f 1943/1996/935 2247/2300/935 1944/1997/935 +f 2248/2301/935 2240/2293/935 2239/2292/935 +f 2238/2291/935 2248/2301/935 2239/2292/935 +f 2249/2302/935 2238/2291/935 2235/2288/935 +f 2250/2303/935 2237/2290/935 2236/2289/935 +f 2251/2304/935 2250/2303/935 2236/2289/935 +f 2251/2304/935 2236/2289/935 2234/2287/935 +f 2245/2298/935 2252/2305/935 2234/2287/935 +f 2243/2296/935 2253/2306/935 2244/2297/935 +f 2254/2307/935 2231/2284/935 2233/2286/935 +f 2236/2289/935 2233/2286/935 2234/2287/935 +f 2249/2302/935 2235/2288/935 2237/2290/935 +f 2255/2308/935 1945/1998/935 2240/2293/935 +f 2247/2300/935 2241/2294/935 1944/1997/935 +f 2253/2306/935 2245/2298/935 2244/2297/935 +f 2252/2305/935 2251/2304/935 2234/2287/935 +f 2255/2308/935 1943/1996/935 1945/1998/935 +f 2256/2309/926 2257/2310/926 2258/2311/926 +f 1941/1994/932 1896/1949/932 1895/1948/932 +f 2259/2312/927 2260/2313/927 2261/2314/927 +f 2262/2315/944 2263/2316/944 2264/2317/944 +f 2265/2318/932 2266/2319/932 2267/2320/932 +f 2268/2321/932 2269/2322/932 2270/2323/932 +f 2271/2324/936 2272/2325/936 2273/2326/936 +f 2274/2327/928 1883/1936/928 1882/1935/928 +f 2202/2255/935 2275/2328/935 2181/2234/935 +f 2197/2250/935 2199/2252/935 2202/2255/935 +f 2276/2329/927 2277/2330/927 2278/2331/927 +f 2276/2329/927 2279/2332/927 2280/2333/927 +f 2281/2334/932 2282/2335/932 2283/2336/932 +f 2284/2337/928 2285/2338/928 2209/2262/928 +f 2286/2339/936 2287/2340/936 2288/2341/936 +f 2289/2342/936 2286/2339/936 2290/2343/936 +f 1880/1933/927 1879/1932/927 2291/2344/927 +f 2292/2345/928 2293/2346/928 2294/2347/928 +f 2279/2332/927 2295/2348/927 2296/2349/927 +f 2297/2350/926 2298/2351/926 2299/2352/926 +f 2300/2353/928 2301/2354/928 2302/2355/928 +f 2303/2356/936 2304/2357/936 2305/2358/936 +f 2306/2359/926 2299/2352/926 2298/2351/926 +f 2307/2360/936 2308/2361/936 2309/2362/936 +f 2310/2363/936 2309/2362/936 2308/2361/936 +f 2311/2364/926 2312/2365/926 2313/2366/926 +f 2311/2364/926 1877/1930/926 2312/2365/926 +f 1880/1933/927 2204/2257/927 2314/2367/927 +f 2204/2257/927 2203/2256/927 2314/2367/927 +f 2315/2368/935 1952/2005/935 2316/2369/935 +f 2317/2370/928 2318/2371/928 2319/2372/928 +f 2320/2373/928 2319/2372/928 2318/2371/928 +f 2321/2374/928 2320/2373/928 2318/2371/928 +f 1878/1931/927 1880/1933/927 2314/2367/927 +f 2322/2375/935 2315/2368/935 2316/2369/935 +f 2323/2376/928 2317/2370/928 2319/2372/928 +f 2311/2364/926 1875/1928/926 1877/1930/926 +f 2315/2368/935 1950/2003/935 1952/2005/935 +f 2324/2377/935 2325/2378/935 2326/2379/935 +f 2327/2380/935 2325/2378/935 2328/2381/935 +f 2326/2379/935 2325/2378/935 2329/2382/935 +f 2329/2382/935 2325/2378/935 2330/2383/935 +f 2331/2384/935 2325/2378/935 2327/2380/935 +f 2330/2383/935 2325/2378/935 2332/2385/935 +f 2332/2385/935 2325/2378/935 2333/2386/935 +f 2334/2387/935 2325/2378/935 2331/2384/935 +f 2333/2386/935 2325/2378/935 2335/2388/935 +f 2335/2388/935 2325/2378/935 2336/2389/935 +f 2336/2389/935 2325/2378/935 2334/2387/935 +f 2337/2390/935 2325/2378/935 2324/2377/935 +f 2328/2381/935 2325/2378/935 2338/2391/935 +f 2339/2392/935 2325/2378/935 2337/2390/935 +f 2338/2391/935 2325/2378/935 2340/2393/935 +f 2340/2393/935 2325/2378/935 2339/2392/935 +f 2341/2394/928 2342/2395/928 2343/2396/928 +f 2344/2397/928 2345/2398/928 2343/2396/928 +f 2346/2399/935 2347/2400/935 2348/2401/935 +f 1890/1943/928 1881/1934/928 1883/1936/928 +f 2349/2402/928 1884/1937/928 1886/1939/928 +f 2350/2403/929 1887/1940/929 1889/1942/929 +f 2351/2404/930 1881/1934/945 1891/1944/930 +f 2352/2405/931 1892/1945/931 1894/1947/931 +f 2353/2406/928 1902/1955/928 1904/1957/928 +f 1904/1957/928 2354/2407/928 2353/2406/928 +f 1886/1939/928 1885/1938/928 1917/1970/928 +f 2355/2408/935 1938/1991/935 1940/1993/935 +f 2067/2120/926 1946/1999/926 1937/1990/926 +f 2356/2409/936 1953/2006/936 1955/2008/936 +f 1953/2006/936 1956/2009/936 1954/2007/936 +f 1942/1995/932 1926/1979/932 1922/1975/932 +f 1922/1975/932 1958/2011/932 1942/1995/932 +f 1958/2011/932 1960/2013/932 1959/2012/932 +f 1973/2026/927 1968/2021/927 1970/2023/927 +f 1970/2023/927 1971/2024/927 1973/2026/927 +f 2150/2203/932 1977/2030/932 1979/2032/932 +f 1983/2036/927 1980/2033/927 1982/2035/927 +f 2357/2410/927 1983/2036/927 1984/2037/927 +f 2358/2411/927 1985/2038/927 1987/2040/927 +f 1932/1985/932 1990/2043/932 1992/2045/932 +f 1989/2042/932 1993/2046/932 1959/2012/932 +f 2359/2412/927 1995/2048/927 1997/2050/927 +f 2360/2413/937 1998/2051/937 2000/2053/937 +f 2361/2414/935 2001/2054/935 2003/2056/935 +f 2362/2415/932 1961/2014/932 2004/2057/932 +f 2014/2067/938 2005/2058/938 2007/2060/938 +f 2363/2416/927 2008/2061/927 2010/2063/927 +f 2364/2417/935 2011/2064/935 2013/2066/935 +f 2365/2418/939 2016/2069/939 2018/2071/939 +f 2366/2419/928 2019/2072/928 2021/2074/928 +f 2367/2420/927 2022/2075/927 2024/2077/927 +f 2043/2096/927 2025/2078/927 2027/2080/927 +f 2368/2421/935 2028/2081/935 2030/2083/935 +f 2369/2422/940 2032/2085/940 2034/2087/940 +f 2370/2423/940 2035/2088/940 2037/2090/940 +f 2371/2424/927 2038/2091/927 2040/2093/927 +f 2372/2425/935 2044/2097/935 2046/2099/935 +f 2373/2426/939 2050/2103/939 2052/2105/939 +f 2374/2427/927 2053/2106/927 2055/2108/927 +f 2375/2428/939 2056/2109/939 2048/2101/939 +f 2376/2429/929 2057/2110/929 2059/2112/929 +f 2377/2430/942 2060/2113/942 2062/2115/942 +f 2378/2431/935 2063/2116/935 2065/2118/935 +f 2379/2432/943 2068/2121/943 2070/2123/943 +f 1932/1985/932 1992/2045/932 1933/1986/932 +f 1989/2042/932 1959/2012/932 1933/1986/932 +f 1960/2013/932 1958/2011/932 2074/2127/932 +f 2077/2130/932 2075/2128/932 1933/1986/932 +f 2072/2125/932 2078/2131/932 1933/1986/932 +f 2380/2433/932 2078/2131/932 2079/2132/932 +f 2083/2136/927 2080/2133/927 2082/2135/927 +f 2358/2411/927 1987/2040/927 2083/2136/927 +f 2381/2434/927 2084/2137/927 1980/2033/927 +f 2382/2435/932 2086/2139/932 2088/2141/932 +f 2383/2436/932 2089/2142/932 1958/2011/932 +f 2384/2437/927 2090/2143/927 2092/2145/927 +f 2385/2438/927 2093/2146/927 2095/2148/927 +f 2386/2439/935 2096/2149/935 2098/2151/935 +f 2387/2440/935 2099/2152/935 2101/2154/935 +f 2388/2441/928 2102/2155/928 2104/2157/928 +f 2389/2442/939 2105/2158/939 2107/2160/939 +f 2390/2443/927 2108/2161/927 2110/2163/927 +f 2391/2444/927 2111/2164/927 2113/2166/927 +f 2392/2445/932 1921/1974/932 1975/2028/932 +f 2393/2446/926 2115/2168/926 2117/2170/926 +f 2394/2447/926 2118/2171/926 2120/2173/926 +f 2395/2448/927 2121/2174/927 2123/2176/927 +f 2396/2449/927 2124/2177/927 2126/2179/927 +f 2397/2450/935 2127/2180/935 2129/2182/935 +f 2398/2451/940 2130/2183/940 2132/2185/940 +f 2399/2452/940 2133/2186/940 2135/2188/940 +f 2400/2453/927 2136/2189/927 2138/2191/927 +f 2401/2454/935 2141/2194/935 2143/2196/935 +f 2402/2455/938 2147/2200/938 2149/2202/938 +f 2087/2140/932 2074/2127/932 2088/2141/932 +f 2161/2214/932 2151/2204/932 2087/2140/932 +f 2403/2456/927 2152/2205/927 2154/2207/927 +f 2146/2199/926 2155/2208/926 2144/2197/926 +f 2404/2457/929 2157/2210/929 2159/2212/929 +f 2405/2458/932 2160/2213/932 2161/2214/932 +f 2085/2138/932 2162/2215/932 2074/2127/932 +f 2406/2459/935 2164/2217/935 2166/2219/935 +f 2407/2460/928 2408/2461/928 2409/2462/928 +f 2410/2463/928 2168/2221/928 2170/2223/928 +f 2167/2220/932 1977/2030/932 2074/2127/932 +f 2171/2224/935 1909/1962/935 2172/2225/935 +f 2411/2464/926 2175/2228/926 2177/2230/926 +f 2412/2465/928 2178/2231/928 2180/2233/928 +f 2197/2250/935 2181/2234/935 2183/2236/935 +f 2185/2238/935 2187/2240/935 2186/2239/935 +f 2413/2466/927 1965/2018/927 2189/2242/927 +f 2414/2467/936 2194/2247/936 2196/2249/936 +f 2199/2252/935 2200/2253/935 2202/2255/935 +f 2415/2468/936 2206/2259/936 2208/2261/936 +f 2416/2469/926 2216/2269/926 2218/2271/926 +f 2417/2470/926 2219/2272/926 2221/2274/926 +f 2418/2471/936 2222/2275/936 2224/2277/936 +f 2419/2472/926 2256/2309/926 2258/2311/926 +f 2420/2473/927 2259/2312/927 2261/2314/927 +f 2421/2474/944 2262/2315/944 2264/2317/944 +f 2422/2475/932 2265/2318/932 2267/2320/932 +f 2423/2476/932 2268/2321/932 2270/2323/932 +f 2424/2477/936 2271/2324/936 2273/2326/936 +f 2425/2478/928 2274/2327/928 1882/1935/928 +f 2181/2234/935 2197/2250/935 2202/2255/935 +f 2426/2479/927 2276/2329/927 2278/2331/927 +f 2277/2330/927 2276/2329/927 2280/2333/927 +f 2427/2480/932 2281/2334/932 2283/2336/932 +f 2211/2264/928 2284/2337/928 2209/2262/928 +f 2290/2343/936 2286/2339/936 2288/2341/936 +f 2428/2481/936 2289/2342/936 2290/2343/936 +f 2429/2482/928 2292/2345/928 2294/2347/928 +f 2280/2333/927 2279/2332/927 2296/2349/927 +f 2430/2483/926 2297/2350/926 2299/2352/926 +f 2431/2484/928 2300/2353/928 2302/2355/928 +f 2432/2485/936 2303/2356/936 2305/2358/936 +f 2433/2486/928 2341/2394/928 2343/2396/928 +f 2342/2395/928 2344/2397/928 2343/2396/928 +f 2434/2487/935 2346/2399/935 2348/2401/935 +s 1 +f 2435/2488/946 2436/2489/947 2437/2490/948 +f 2437/2490/948 2438/2491/949 2174/2227/935 +f 2439/2492/950 2440/2493/950 2441/2494/951 +f 2442/2495/952 1967/2020/927 1966/2019/927 +f 2443/2496/953 2444/2497/954 2445/2498/928 +f 2446/2499/955 2447/2500/955 2448/2501/956 +f 2449/2502/928 2450/2503/957 2451/2504/958 +f 2354/2407/928 2452/2505/959 2353/2406/928 +f 2453/2506/960 2454/2507/961 1906/1959/926 +f 2455/2508/962 2440/2493/950 2439/2492/950 +f 2456/2509/963 2457/2510/926 2458/2511/926 +f 1930/1983/926 1929/1982/926 2459/2512/964 +f 2459/2512/964 2460/2513/926 1930/1983/926 +f 2458/2511/926 1918/1971/926 2461/2514/965 +f 1918/1971/926 1920/1973/926 2461/2514/965 +f 1932/1985/932 1931/1984/932 2462/2515/966 +f 2463/2516/932 2464/2517/967 2462/2515/966 +f 2456/2509/963 2458/2511/926 2461/2514/965 +f 2465/2518/968 2466/2519/969 2467/2520/970 +f 2468/2521/971 2469/2522/972 2470/2523/973 +f 2471/2524/974 2472/2525/975 2473/2526/976 +f 2474/2527/977 2475/2528/977 2321/2374/928 +f 2476/2529/978 2477/2530/926 2478/2531/926 +f 2479/2532/979 2480/2533/979 2476/2529/978 +f 2481/2534/980 2482/2535/981 2483/2536/982 +f 2484/2537/983 2485/2538/984 2486/2539/985 +f 2487/2540/980 2488/2541/986 2489/2542/987 +f 2490/2543/988 2491/2544/989 2492/2545/990 +f 2493/2546/991 2494/2547/992 2495/2548/993 +f 2486/2539/985 2496/2549/963 2497/2550/926 +f 2498/2551/926 2499/2552/926 2500/2553/994 +f 2497/2554/926 2498/2551/926 2500/2553/994 +f 2501/2555/995 2502/2556/996 2503/2557/928 +f 2504/2558/997 2505/2559/998 2502/2560/996 +f 2501/2555/995 2503/2557/928 1962/2015/928 +f 2506/2561/999 2507/2562/1000 2508/2563/936 +f 2509/2564/1001 2510/2565/1002 2511/2566/1003 +f 2442/2495/952 2512/2567/1004 2487/2540/980 +f 2513/2568/1005 2126/2179/927 2140/2193/927 +f 2189/2242/927 2514/2569/1006 2413/2466/927 +f 2515/2570/928 2516/2571/957 2517/2572/1007 +f 2518/2573/1008 2519/2574/1009 2520/2575/936 +f 2521/2576/1010 2522/2577/1011 2518/2573/1008 +f 2521/2576/1010 2523/2578/1012 2524/2579/1013 +f 2525/2580/1014 2526/2581/1015 2191/2244/926 +f 2500/2553/994 2527/2582/1016 2484/2583/983 +f 2528/2584/994 2529/2585/1017 2522/2577/1011 +f 2530/2586/936 2520/2575/936 2519/2574/1009 +f 2531/2587/1018 2532/2588/957 2533/2589/1019 +f 2534/2590/1020 2535/2591/1021 2533/2589/1019 +f 2518/2573/1008 2533/2589/1019 2535/2591/1021 +f 2536/2592/1022 2534/2590/1020 2533/2589/1019 +f 2537/2593/1023 2538/2594/1024 2539/2595/1025 +f 2540/2596/999 2541/2597/1026 2542/2598/1027 +f 2543/2599/1028 2544/2600/1029 2545/2601/1030 +f 2546/2602/926 2547/2603/960 2548/2604/960 +f 2549/2605/1031 2550/2606/1032 2544/2607/1029 +f 2461/2514/965 2551/2608/963 2552/2609/1033 +f 2553/2610/1034 2554/2611/1035 2555/2612/1036 +f 2537/2593/1023 2556/2613/1001 2557/2614/936 +f 2486/2539/985 2500/2615/994 2484/2537/983 +f 2486/2539/985 2485/2538/984 2558/2616/1031 +f 2559/2617/1002 2560/2618/936 2561/2619/936 +f 2562/2620/1037 2563/2621/1038 2564/2622/936 +f 2486/2539/985 2565/2623/926 2566/2624/1033 +f 2567/2625/926 2568/2626/926 2569/2627/1039 +f 2570/2628/1040 2571/2629/1041 2572/2630/1042 +f 2573/2631/1043 2572/2630/1042 2563/2621/1038 +f 2574/2632/935 2575/2633/935 2576/2634/1044 +f 2577/2635/1045 2578/2636/1046 2579/2637/1047 +f 2580/2638/1048 2510/2565/1002 2579/2637/1047 +f 2581/2639/936 2582/2640/1049 2538/2594/1024 +f 2580/2638/1048 2583/2641/1050 2584/2642/1051 +f 2585/2643/1005 2578/2636/1046 2586/2644/1052 +f 2578/2636/1046 2583/2641/1050 2579/2637/1047 +f 2587/2645/1053 2459/2512/964 1929/1982/926 +f 2579/2637/1047 2588/2646/1054 2577/2635/1045 +f 2557/2614/936 2538/2594/1024 2537/2593/1023 +f 2548/2604/960 2547/2603/960 2589/2647/1055 +f 2590/2648/1056 2591/2649/1057 2592/2650/1055 +f 2593/2651/1019 2594/2652/1017 2595/2653/1025 +f 2596/2654/1057 2597/2655/1058 2598/2656/926 +f 2578/2636/1046 2577/2635/1045 2586/2644/1052 +f 2599/2657/1057 2600/2658/1058 2601/2659/926 +f 2602/2660/926 2603/2661/926 2604/2662/1039 +f 2605/2663/1057 2606/2664/1056 2066/2119/926 +f 2607/2665/984 2542/2598/1027 2550/2606/1032 +f 2608/2666/1059 2553/2610/1034 2609/2667/1060 +f 2554/2611/1035 2610/2668/926 2611/2669/926 +f 2612/2670/1028 2613/2671/1061 2486/2539/985 +f 2484/2583/983 2507/2562/1000 2485/2672/984 +f 2571/2629/1041 2570/2628/1040 2614/2673/949 +f 2615/2674/926 2616/2675/926 2617/2676/1039 +f 2618/2677/927 2619/2678/927 2620/2679/1062 +f 2579/2637/1047 2621/2680/1001 2588/2646/1054 +f 2585/2643/1005 2586/2644/1052 2041/2094/927 +f 2622/2681/926 2623/2682/926 2624/2683/1039 +f 2625/2684/926 2626/2685/960 2627/2686/960 +f 2066/2119/926 1937/1990/926 2605/2663/1057 +f 2628/2687/1063 2589/2647/1055 2529/2585/1017 +f 2629/2688/1063 2630/2689/1064 2529/2585/1017 +f 2459/2512/964 2587/2645/1053 2539/2595/1025 +f 2630/2689/1064 2631/2690/1065 2539/2595/1025 +f 2597/2655/1058 2596/2654/1057 2630/2689/1064 +f 2632/2691/1055 2629/2688/1063 2529/2585/1017 +f 2600/2658/1058 2599/2657/1057 2632/2691/1055 +f 2633/2692/1063 2634/2693/1055 2529/2585/1017 +f 2627/2686/960 2626/2685/960 2634/2693/1055 +f 2589/2647/1055 2633/2692/1063 2529/2585/1017 +f 2528/2584/994 2592/2650/1055 2529/2585/1017 +f 2635/2694/967 2636/2695/1066 2637/2696/1066 +f 2638/2697/1003 2639/2698/1067 2640/2699/1068 +f 1885/1938/928 2641/2700/1069 2642/2701/1069 +f 2640/2699/1068 2643/2702/957 2644/2703/1020 +f 2645/2704/954 2646/2705/953 2640/2699/1068 +f 2647/2706/954 2648/2707/954 2649/2708/928 +f 2646/2705/953 2643/2702/957 2640/2699/1068 +f 2642/2701/1069 2641/2700/1069 2650/2709/1070 +f 2608/2666/1059 2651/2710/1059 2652/2711/1071 +f 2653/2712/1001 2638/2697/1003 2581/2639/936 +f 2505/2559/998 2504/2558/997 2542/2713/1027 +f 2542/2713/1027 2504/2558/997 2550/2714/1032 +f 2654/2715/1072 2655/2716/1073 2470/2523/973 +f 2466/2519/969 2465/2518/968 2656/2717/935 +f 2524/2579/1013 2522/2577/1011 2521/2576/1010 +f 2657/2718/1037 2658/2719/936 2659/2720/936 +f 2504/2558/997 2501/2721/995 2660/2722/1074 +f 2661/2723/928 2662/2724/1020 2452/2505/959 +f 2435/2488/946 2663/2725/1075 2664/2726/1076 +f 2663/2725/1075 2657/2718/1037 2665/2727/1038 +f 2666/2728/1020 2644/2703/1020 2643/2702/957 +f 2667/2729/1077 2668/2730/1078 2510/2565/1002 +f 2662/2724/1020 2531/2587/1018 2669/2731/957 +f 2667/2729/1077 2513/2568/1005 2670/2732/1079 +f 2580/2638/1048 2667/2729/1077 2510/2565/1002 +f 2645/2704/954 2639/2698/1067 2409/2462/928 +f 2511/2566/1003 2510/2565/1002 2668/2730/1078 +f 2582/2640/1049 2581/2639/936 2638/2697/1003 +f 2647/2706/954 2536/2592/1022 2532/2588/957 +f 2443/2496/953 2535/2591/1021 2534/2590/1020 +f 2671/2733/1080 2672/2734/928 2673/2735/928 +f 2668/2730/1078 2667/2729/1077 2670/2732/1079 +f 2674/2736/1080 2675/2737/928 2676/2738/928 +f 2408/2461/928 2645/2704/954 2409/2462/928 +f 2644/2703/1020 2677/2739/957 2533/2589/1019 +f 2678/2740/1020 2679/2741/1018 2677/2739/957 +f 2680/2742/1081 2652/2711/1071 2681/2743/928 +f 2544/2600/1029 2550/2714/1032 2504/2558/997 +f 2682/2744/928 2683/2745/957 2684/2746/954 +f 2685/2747/1082 2686/2748/1083 2542/2598/1027 +f 2435/2488/946 2437/2490/948 2687/2749/1084 +f 2688/2750/1020 2689/2751/1022 2690/2752/928 +f 2669/2731/957 2531/2587/1018 2533/2589/1019 +f 2499/2552/926 2691/2753/926 2500/2553/994 +f 2512/2567/1004 2488/2541/986 2487/2540/980 +f 2191/2244/926 2190/2243/926 2525/2580/1014 +f 2436/2489/947 2692/2754/1085 2438/2491/949 +f 2514/2569/1006 2693/2755/1086 2694/2756/1087 +f 2514/2569/1006 2189/2242/927 2693/2755/1086 +f 2695/2757/1088 2696/2758/1089 2697/2759/932 +f 2698/2760/950 2699/2761/932 2700/2762/932 +f 2526/2581/1015 2525/2580/1014 2698/2760/950 +f 2493/2546/991 2495/2548/993 2701/2763/1089 +f 2685/2747/1082 2541/2597/1026 2540/2596/999 +f 2502/2560/996 2501/2721/995 2504/2558/997 +f 2507/2562/1000 2506/2561/999 2485/2672/984 +f 2482/2535/981 2702/2764/1090 2495/2548/993 +f 2494/2547/992 2703/2765/928 2704/2766/928 +f 2482/2535/981 2481/2534/980 2702/2764/1090 +f 2483/2536/982 2441/2494/951 2481/2534/980 +f 2705/2767/1091 2706/2768/1092 2707/2769/1093 +f 2708/2770/1094 2705/2767/1091 2709/2771/1095 +f 2710/2772/1096 2708/2770/1094 2711/2773/1097 +f 2712/2774/1098 2710/2772/1096 2713/2775/1099 +f 2714/2776/1100 2715/2777/1101 2322/2375/935 +f 2716/2778/1102 2717/2779/1103 2718/2780/1104 +f 2719/2781/1105 2720/2782/1105 2718/2780/1104 +f 2721/2783/1106 2722/2784/1107 2715/2777/1101 +f 2723/2785/1108 2724/2786/1109 2722/2784/1107 +f 2725/2787/1110 2720/2782/1105 2719/2781/1105 +f 2726/2788/1111 2727/2789/1112 2728/2790/1113 +f 2727/2789/1112 2729/2791/1114 2730/2792/1115 +f 2729/2791/1114 2731/2793/1116 2732/2794/1117 +f 2731/2793/1116 2733/2795/1118 2734/2796/1119 +f 2733/2795/1118 2735/2797/1120 2736/2798/1121 +f 2737/2799/1122 2738/2800/1123 2739/2801/1124 +f 2740/2802/1125 2741/2803/1125 2739/2801/1124 +f 2742/2804/1126 2743/2805/1126 2744/2806/1109 +f 2745/2807/1127 2741/2803/1125 2740/2802/1125 +f 2706/2768/1092 2745/2807/1127 2746/2808/1128 +f 2742/2804/1126 2747/2809/1129 2743/2805/1126 +f 2748/2810/1130 2749/2811/1131 2747/2809/1129 +f 2750/2812/1132 2751/2813/1133 2747/2809/1129 +f 2752/2814/1134 2753/2815/1134 2751/2813/1133 +f 2754/2816/1135 2755/2817/1136 2756/2818/1136 +f 2757/2819/1137 2758/2820/1137 2756/2818/1136 +f 2759/2821/1138 2760/2822/1139 2761/2823/936 +f 2762/2824/1140 2763/2825/1141 2764/2826/1142 +f 2765/2827/1143 2766/2828/1144 2764/2826/1142 +f 2763/2825/1141 2767/2829/1145 2765/2827/1143 +f 2768/2830/1146 2767/2829/1145 2763/2825/1141 +f 2769/2831/1147 2770/2832/1148 2767/2829/1145 +f 2771/2833/1149 2772/2834/1149 2773/2835/1150 +f 2774/2836/1151 2773/2835/1150 2770/2832/1148 +f 1949/2002/926 2455/2508/962 2775/2837/1152 +f 2776/2838/1153 2472/2525/975 2777/2839/1154 +f 2778/2840/1155 2779/2841/1156 2776/2838/1153 +f 2780/2842/1157 2781/2843/1158 2779/2841/1156 +f 2229/2282/927 2227/2280/927 2781/2843/1158 +f 2230/2283/927 2473/2526/976 2227/2280/927 +f 2782/2844/1159 2471/2524/974 2473/2526/976 +f 2783/2845/1160 2782/2844/1159 2473/2526/976 +f 2784/2846/1161 2783/2845/1160 2473/2526/976 +f 2230/2283/927 2784/2846/1161 2473/2526/976 +f 2785/2847/1162 2229/2282/927 2781/2843/1158 +f 2780/2842/1157 2785/2847/1162 2781/2843/1158 +f 2778/2840/1155 2786/2848/1163 2779/2841/1156 +f 2787/2849/1164 2778/2840/1155 2776/2838/1153 +f 2788/2850/1165 2777/2839/1154 2472/2525/975 +f 2471/2524/974 2788/2850/1165 2472/2525/975 +f 1947/2000/926 1949/2002/926 2775/2837/1152 +f 2787/2849/1164 2776/2838/1153 2777/2839/1154 +f 2786/2848/1163 2780/2842/1157 2779/2841/1156 +f 2467/2520/970 2468/2521/971 2789/2851/1166 +f 2446/2499/955 2274/2327/928 2425/2478/928 +f 2790/2852/958 2791/2853/955 2792/2854/928 +f 2793/2855/935 2794/2856/935 2762/2824/1140 +f 2795/2857/1167 2796/2858/1167 2797/2859/928 +f 2798/2860/1168 2796/2858/1167 2795/2857/1167 +f 2799/2861/1169 2800/2862/1170 2316/2369/935 +f 2801/2863/1171 2800/2862/1170 2799/2861/1169 +f 2802/2864/1172 2801/2863/1171 2803/2865/1173 +f 2748/2810/1130 2804/2866/1174 2805/2867/1175 +f 2749/2811/1131 2748/2810/1130 2806/2868/1176 +f 2768/2830/1146 2807/2869/1177 2808/2870/1143 +f 2474/2527/977 2754/2816/1135 2809/2871/1178 +f 2810/2872/935 2811/2873/1142 2812/2874/1140 +f 2807/2869/1177 2812/2874/1140 2811/2873/1142 +f 2808/2870/1143 2807/2869/1177 2811/2873/1142 +f 2313/2366/926 2758/2820/1137 2757/2819/1137 +f 2316/2369/935 2800/2862/1170 2714/2776/1100 +f 2311/2364/926 2313/2366/926 2757/2819/1137 +f 2322/2375/935 2316/2369/935 2714/2776/1100 +f 2318/2371/928 2474/2527/977 2321/2374/928 +f 2634/2693/1055 2813/2875/1063 2529/2585/1017 +f 2630/2689/1064 2539/2595/1025 2529/2585/1017 +f 2677/2739/957 2679/2741/1018 2533/2589/1019 +f 2644/2703/1020 2533/2589/1019 2640/2699/1068 +f 2814/2876/1127 2815/2877/1179 2816/2878/1180 +f 2815/2877/1179 2817/2879/1181 2818/2880/1182 +f 2819/2881/1183 2820/2882/1184 2821/2883/1185 +f 2817/2879/1181 2822/2884/1121 2823/2885/1122 +f 2822/2884/1121 2824/2886/1119 2825/2887/1118 +f 2826/2888/1110 2819/2881/1183 2827/2889/1186 +f 2824/2886/1119 2828/2890/1117 2829/2891/1116 +f 2828/2890/1117 2830/2892/1115 2831/2893/1114 +f 2832/2894/1187 2826/2888/1110 2833/2895/1111 +f 2830/2892/1115 2832/2894/1187 2834/2896/1188 +f 2835/2897/1096 2836/2898/1094 2837/2899/1097 +f 2838/2900/1091 2839/2901/1092 2840/2902/1189 +f 2841/2903/1098 2835/2897/1096 2842/2904/1099 +f 2820/2882/1184 2841/2903/1098 2843/2905/1190 +f 2839/2901/1092 2814/2876/1127 2844/2906/1128 +f 2836/2898/1094 2838/2900/1091 2845/2907/1095 +f 2846/2908/1191 2847/2909/1192 2848/2910/1193 +f 2849/2911/1194 2850/2912/1195 2851/2913/1196 +f 2852/2914/1197 2853/2915/1198 2854/2916/936 +f 2855/2917/932 2856/2918/932 2847/2909/1192 +f 2850/2912/1195 2849/2911/1194 2853/2915/1198 +f 1908/1961/935 2437/2490/948 2174/2227/935 +f 2483/2536/982 2439/2492/950 2441/2494/951 +f 2512/2567/1004 2442/2495/952 1966/2019/927 +f 2857/2919/928 2443/2496/953 2445/2498/928 +f 2858/2920/1199 2446/2499/955 2448/2501/956 +f 2859/2921/928 2449/2502/928 2451/2504/958 +f 1905/1958/926 2453/2506/960 1906/1959/926 +f 2775/2837/1152 2455/2508/962 2439/2492/950 +f 1931/1984/932 2463/2516/932 2462/2515/966 +f 2860/2922/1200 1934/1987/928 1936/1989/928 +f 2861/2923/1201 2465/2518/968 2467/2520/970 +f 2789/2851/1166 2468/2521/971 2470/2523/973 +f 2862/2924/978 2476/2529/978 2478/2531/926 +f 2862/2924/978 2479/2532/979 2476/2529/978 +f 2492/2545/990 2487/2540/980 2489/2542/987 +f 2489/2542/987 2490/2543/988 2492/2545/990 +f 2500/2615/994 2486/2539/985 2497/2550/926 +f 1964/2017/928 2501/2555/995 1962/2015/928 +f 2670/2732/1079 2513/2568/1005 2140/2193/927 +f 2863/2925/928 2515/2570/928 2517/2572/1007 +f 2520/2575/936 2521/2576/1010 2518/2573/1008 +f 2524/2579/1013 2528/2584/994 2522/2577/1011 +f 2519/2574/1009 2518/2573/1008 2535/2591/1021 +f 2532/2588/957 2536/2592/1022 2533/2589/1019 +f 2587/2645/1053 2537/2593/1023 2539/2595/1025 +f 2607/2665/984 2540/2596/999 2542/2598/1027 +f 2864/2926/1202 2543/2599/1028 2545/2601/1030 +f 2865/2927/926 2546/2602/926 2548/2604/960 +f 2543/2928/1028 2549/2605/1031 2544/2607/1029 +f 2456/2509/963 2461/2514/965 2552/2609/1033 +f 2609/2667/1060 2553/2610/1034 2555/2612/1036 +f 2866/2929/1203 2559/2617/1002 2561/2619/936 +f 2867/2930/936 2562/2620/1037 2564/2622/936 +f 2496/2549/963 2486/2539/985 2566/2624/1033 +f 2868/2931/1204 2567/2625/926 2569/2627/1039 +f 2573/2631/1043 2570/2628/1040 2572/2630/1042 +f 2562/2620/1037 2573/2631/1043 2563/2621/1038 +f 2614/2673/949 2574/2632/935 2576/2634/1044 +f 2583/2641/1050 2580/2638/1048 2579/2637/1047 +f 2557/2614/936 2581/2639/936 2538/2594/1024 +f 2620/2679/1062 2580/2638/1048 2584/2642/1051 +f 2628/2687/1063 2548/2604/960 2589/2647/1055 +f 2528/2584/994 2590/2648/1056 2592/2650/1055 +f 2869/2932/1205 2593/2651/1019 2595/2653/1025 +f 2870/2933/926 2596/2654/1057 2598/2656/926 +f 2871/2934/926 2599/2657/1057 2601/2659/926 +f 2872/2935/1204 2602/2660/926 2604/2662/1039 +f 2549/2605/1031 2607/2665/984 2550/2606/1032 +f 2651/2710/1059 2608/2666/1059 2609/2667/1060 +f 2555/2612/1036 2554/2611/1035 2611/2669/926 +f 2558/2616/1031 2612/2670/1028 2486/2539/985 +f 2576/2634/1044 2571/2629/1041 2614/2673/949 +f 2873/2936/1055 2615/2674/926 2617/2676/1039 +f 2584/2642/1051 2618/2677/927 2620/2679/1062 +f 2027/2080/927 2585/2643/1005 2041/2094/927 +f 2874/2937/1204 2622/2681/926 2624/2683/1039 +f 2875/2938/926 2625/2684/926 2627/2686/960 +f 2592/2650/1055 2628/2687/1063 2529/2585/1017 +f 2631/2690/1065 2459/2512/964 2539/2595/1025 +f 2629/2688/1063 2597/2655/1058 2630/2689/1064 +f 2813/2875/1063 2632/2691/1055 2529/2585/1017 +f 2813/2875/1063 2600/2658/1058 2632/2691/1055 +f 2633/2692/1063 2627/2686/960 2634/2693/1055 +f 2876/2939/1206 2635/2694/967 2637/2696/1066 +f 2582/2640/1049 2638/2697/1003 2640/2699/1068 +f 1916/1969/928 1885/1938/928 2642/2701/1069 +f 2639/2698/1067 2645/2704/954 2640/2699/1068 +f 2877/2940/928 2647/2706/954 2649/2708/928 +f 2878/2941/1207 2642/2701/1069 2650/2709/1070 +f 2680/2742/1081 2608/2666/1059 2652/2711/1071 +f 2686/2748/1083 2505/2942/998 2542/2598/1027 +f 2469/2522/972 2654/2715/1072 2470/2523/973 +f 2879/2943/935 2466/2519/969 2656/2717/935 +f 2665/2727/1038 2657/2718/1037 2659/2720/936 +f 2880/2944/1208 2504/2558/997 2660/2722/1074 +f 2354/2407/928 2661/2723/928 2452/2505/959 +f 2436/2489/947 2435/2488/946 2664/2726/1076 +f 2664/2726/1076 2663/2725/1075 2665/2727/1038 +f 2671/2733/1080 2666/2728/1020 2643/2702/957 +f 2452/2505/959 2662/2724/1020 2669/2731/957 +f 2648/2707/954 2647/2706/954 2532/2588/957 +f 2444/2497/954 2443/2496/953 2534/2590/1020 +f 2666/2728/1020 2671/2733/1080 2673/2735/928 +f 2678/2740/1020 2674/2736/1080 2676/2738/928 +f 2674/2736/1080 2678/2740/1020 2677/2739/957 +f 2881/2945/928 2680/2742/1081 2681/2743/928 +f 2545/2601/1030 2544/2600/1029 2504/2558/997 +f 2882/2946/928 2682/2744/928 2684/2746/954 +f 2541/2597/1026 2685/2747/1082 2542/2598/1027 +f 2883/2947/928 2688/2750/1020 2690/2752/928 +f 2679/2741/1018 2669/2731/957 2533/2589/1019 +f 2437/2490/948 2436/2489/947 2438/2491/949 +f 2884/2948/1087 2514/2569/1006 2694/2756/1087 +f 2885/2949/932 2695/2757/1088 2697/2759/932 +f 2886/2950/950 2698/2760/950 2700/2762/932 +f 2886/2950/950 2526/2581/1015 2698/2760/950 +f 2887/2951/936 2685/2747/1082 2540/2596/999 +f 2494/2547/992 2482/2535/981 2495/2548/993 +f 2482/2535/981 2494/2547/992 2704/2766/928 +f 2709/2771/1095 2705/2767/1091 2707/2769/1093 +f 2711/2773/1097 2708/2770/1094 2709/2771/1095 +f 2713/2775/1099 2710/2772/1096 2711/2773/1097 +f 2716/2778/1102 2712/2774/1098 2713/2775/1099 +f 2712/2774/1098 2716/2778/1102 2718/2780/1104 +f 2717/2779/1103 2719/2781/1105 2718/2780/1104 +f 2714/2776/1100 2721/2783/1106 2715/2777/1101 +f 2721/2783/1106 2723/2785/1108 2722/2784/1107 +f 2726/2788/1111 2725/2787/1110 2719/2781/1105 +f 2725/2787/1110 2726/2788/1111 2728/2790/1113 +f 2728/2790/1113 2727/2789/1112 2730/2792/1115 +f 2730/2792/1115 2729/2791/1114 2732/2794/1117 +f 2732/2794/1117 2731/2793/1116 2734/2796/1119 +f 2734/2796/1119 2733/2795/1118 2736/2798/1121 +f 2888/2952/1209 2737/2799/1122 2739/2801/1124 +f 2738/2800/1123 2740/2802/1125 2739/2801/1124 +f 2889/2953/1210 2742/2804/1126 2744/2806/1109 +f 2746/2808/1128 2745/2807/1127 2740/2802/1125 +f 2707/2769/1093 2706/2768/1092 2746/2808/1128 +f 2742/2804/1126 2748/2810/1130 2747/2809/1129 +f 2749/2811/1131 2750/2812/1132 2747/2809/1129 +f 2750/2812/1132 2752/2814/1134 2751/2813/1133 +f 2809/2871/1178 2754/2816/1135 2756/2818/1136 +f 2755/2817/1136 2757/2819/1137 2756/2818/1136 +f 2890/2954/936 2759/2821/1138 2761/2823/936 +f 2763/2825/1141 2765/2827/1143 2764/2826/1142 +f 2807/2869/1177 2768/2830/1146 2763/2825/1141 +f 2768/2830/1146 2769/2831/1147 2767/2829/1145 +f 2774/2836/1151 2771/2833/1149 2773/2835/1150 +f 2769/2831/1147 2774/2836/1151 2770/2832/1148 +f 2861/2923/1201 2467/2520/970 2789/2851/1166 +f 2447/2500/955 2446/2499/955 2425/2478/928 +f 2891/2955/957 2790/2852/958 2792/2854/928 +f 2764/2826/1142 2793/2855/935 2762/2824/1140 +f 2892/2956/928 2795/2857/1167 2797/2859/928 +f 2893/2957/1168 2798/2860/1168 2795/2857/1167 +f 2803/2865/1173 2801/2863/1171 2799/2861/1169 +f 2894/2958/1175 2802/2864/1172 2803/2865/1173 +f 2806/2868/1176 2748/2810/1130 2805/2867/1175 +f 2475/2528/977 2474/2527/977 2809/2871/1178 +f 2895/2959/935 2810/2872/935 2812/2874/1140 +f 2896/2960/1144 2808/2870/1143 2811/2873/1142 +f 2844/2906/1128 2814/2876/1127 2816/2878/1180 +f 2816/2878/1180 2815/2877/1179 2818/2880/1182 +f 2827/2889/1186 2819/2881/1183 2821/2883/1185 +f 2818/2880/1182 2817/2879/1181 2823/2885/1122 +f 2823/2885/1122 2822/2884/1121 2825/2887/1118 +f 2833/2895/1111 2826/2888/1110 2827/2889/1186 +f 2825/2887/1118 2824/2886/1119 2829/2891/1116 +f 2829/2891/1116 2828/2890/1117 2831/2893/1114 +f 2834/2896/1188 2832/2894/1187 2833/2895/1111 +f 2831/2893/1114 2830/2892/1115 2834/2896/1188 +f 2842/2904/1099 2835/2897/1096 2837/2899/1097 +f 2845/2907/1095 2838/2900/1091 2840/2902/1189 +f 2843/2905/1190 2841/2903/1098 2842/2904/1099 +f 2821/2883/1185 2820/2882/1184 2843/2905/1190 +f 2840/2902/1189 2839/2901/1092 2844/2906/1128 +f 2837/2899/1097 2836/2898/1094 2845/2907/1095 +f 2851/2913/1196 2846/2908/1191 2848/2910/1193 +f 2848/2910/1193 2849/2911/1194 2851/2913/1196 +f 2897/2961/936 2852/2914/1197 2854/2916/936 +f 2846/2908/1191 2855/2917/932 2847/2909/1192 +f 2852/2914/1197 2850/2912/1195 2853/2915/1198 +o bool_obj_bool_obj_data.002 +v 0.584592 7.687729 -3.606773 +v 0.584592 7.920867 -4.083088 +v -0.395192 7.920867 -4.083088 +v -0.395192 7.687729 -3.606773 +v 0.620113 7.889108 -4.099000 +v 0.620113 7.656415 -3.623594 +v 0.620113 7.645318 -3.604686 +v 0.620113 7.631242 -3.586817 +v 0.620113 7.613890 -3.569613 +v 0.620113 7.593882 -3.553847 +v 0.620113 7.571976 -3.540180 +v 0.620113 7.549021 -3.529142 +v 0.620113 7.525940 -3.521119 +v 0.620113 7.503702 -3.516331 +v 0.620113 7.481840 -3.514677 +v 0.620113 6.288866 -3.514677 +v 0.620113 6.268834 -3.516430 +v 0.620113 6.250914 -3.521231 +v 0.620113 6.234100 -3.529072 +v 0.620113 6.218904 -3.539712 +v 0.620113 6.205786 -3.552830 +v 0.620113 6.195146 -3.568026 +v 0.620113 6.187305 -3.584840 +v 0.620113 6.182504 -3.602759 +v 0.620113 6.180752 -3.622791 +v 0.620113 6.180752 -4.075539 +v 0.620113 6.182504 -4.095572 +v 0.620113 6.187305 -4.113491 +v 0.620113 6.195146 -4.130303 +v 0.620113 6.205786 -4.145500 +v 0.620113 6.218904 -4.158618 +v 0.620113 6.234100 -4.169259 +v 0.620113 6.250914 -4.177099 +v 0.620113 6.268834 -4.181901 +v 0.620113 6.288866 -4.183652 +v 0.620113 6.744428 -4.183652 +v 0.620113 6.773732 -4.185739 +v 0.620113 6.805163 -4.192020 +v 0.620113 6.836724 -4.202079 +v 0.620113 6.867739 -4.215590 +v 0.620113 6.897497 -4.232189 +v 0.620113 6.925284 -4.251482 +v 0.620113 6.950424 -4.273054 +v 0.620113 6.972281 -4.296497 +v 0.620113 6.989450 -4.320339 +v 0.620113 7.366812 -4.931571 +v 0.620113 8.193166 -5.908978 +v 0.620113 8.210030 -5.932884 +v 0.620113 8.222831 -5.960578 +v 0.620113 8.230137 -5.989985 +v 0.620113 8.231569 -6.020123 +v 0.620113 8.227003 -6.049901 +v 0.620113 8.216606 -6.078223 +v 0.620113 8.200825 -6.104090 +v 0.620113 8.180312 -6.126676 +v 0.620113 8.157060 -6.144431 +v 0.620113 7.763575 -6.393669 +v 0.620113 7.738557 -6.407856 +v 0.620113 7.709525 -6.421311 +v 0.620113 7.677958 -6.433376 +v 0.620113 7.644623 -6.443819 +v 0.620113 7.610356 -6.452397 +v 0.620113 7.576034 -6.458897 +v 0.620113 7.542509 -6.463129 +v 0.620113 7.510559 -6.464942 +v 0.620113 7.481810 -6.464217 +v 0.620113 7.300509 -6.450785 +v 0.620113 7.278323 -6.450760 +v 0.620113 7.255250 -6.453763 +v 0.620113 7.230896 -6.459853 +v 0.620113 7.206277 -6.468892 +v 0.620113 7.182374 -6.480568 +v 0.620113 7.160113 -6.494431 +v 0.620113 7.140339 -6.509898 +v 0.620113 7.123790 -6.526253 +v 0.620113 7.110170 -6.543768 +v 0.620113 7.071722 -6.601441 +v 0.620113 7.061349 -6.620097 +v 0.620113 7.053805 -6.640273 +v 0.620113 7.048820 -6.662560 +v 0.620113 7.046699 -6.686110 +v 0.620113 7.047573 -6.710011 +v 0.620113 7.051407 -6.733344 +v 0.620113 7.058005 -6.755208 +v 0.620113 7.067001 -6.774779 +v 0.620113 7.078706 -6.792627 +v 0.620113 7.179221 -6.921861 +v 0.620113 7.194191 -6.938533 +v 0.620113 7.212095 -6.954048 +v 0.620113 7.233200 -6.968604 +v 0.620113 7.256703 -6.981524 +v 0.620113 7.281717 -6.992267 +v 0.620113 7.307272 -7.000415 +v 0.620113 7.332359 -7.005698 +v 0.620113 7.355937 -7.007999 +v 0.620113 7.378335 -7.007376 +v 0.620113 7.893750 -6.956470 +v 0.620113 7.917890 -6.952994 +v 0.620113 7.944322 -6.947154 +v 0.620113 7.972809 -6.938970 +v 0.620113 8.002266 -6.928709 +v 0.620113 8.031621 -6.916725 +v 0.620113 8.059842 -6.903440 +v 0.620113 8.085919 -6.889347 +v 0.620113 8.108887 -6.875021 +v 0.620113 8.128563 -6.860609 +v 0.620113 8.624680 -6.462090 +v 0.620113 9.246017 -6.249527 +v 0.620113 9.267796 -6.240655 +v 0.620113 9.290505 -6.228703 +v 0.620113 9.314142 -6.213631 +v 0.620113 9.337729 -6.195972 +v 0.620113 9.360365 -6.176369 +v 0.620113 9.381210 -6.155543 +v 0.620113 9.399504 -6.134302 +v 0.620113 9.414577 -6.113533 +v 0.620113 9.426466 -6.093243 +v 0.620113 9.513233 -5.923651 +v 0.620113 9.521070 -5.904480 +v 0.620113 9.525558 -5.884883 +v 0.620113 9.527004 -5.864093 +v 0.620113 9.525276 -5.842852 +v 0.620113 9.520397 -5.821944 +v 0.620113 9.512546 -5.802133 +v 0.620113 9.502046 -5.784128 +v 0.620113 9.489350 -5.768544 +v 0.620113 9.473836 -5.754820 +v 0.620113 9.318781 -5.639523 +v 0.620113 9.299875 -5.627427 +v 0.620113 9.278429 -5.617201 +v 0.620113 9.254142 -5.608730 +v 0.620113 9.227964 -5.602454 +v 0.620113 9.200908 -5.598660 +v 0.620113 9.174013 -5.597497 +v 0.620113 9.148333 -5.598965 +v 0.620113 9.124902 -5.602899 +v 0.620113 9.103399 -5.609330 +v 0.620113 8.845378 -5.706697 +v 0.620113 8.817008 -5.714674 +v 0.620113 8.786029 -5.717874 +v 0.620113 8.754861 -5.715827 +v 0.620113 8.724404 -5.708625 +v 0.620113 8.695532 -5.696496 +v 0.620113 8.669072 -5.679782 +v 0.620113 8.645795 -5.658955 +v 0.620113 8.626398 -5.634590 +v 0.620113 8.612238 -5.608743 +v 0.620113 8.333163 -4.974390 +v 0.584592 6.145231 -4.077091 +v 0.584592 6.145231 -3.621240 +v -0.395192 6.145231 -3.621240 +v -0.395192 6.145231 -4.077091 +v 0.584592 6.164267 -4.148131 +v 0.584592 6.153800 -4.125686 +v -0.395192 6.153800 -4.125686 +v -0.395192 6.164267 -4.148131 +v 0.584592 6.178472 -4.168419 +v -0.395192 6.178472 -4.168419 +v 0.584592 6.195985 -4.185933 +v -0.395192 6.195985 -4.185933 +v 0.584592 6.216272 -4.200139 +v -0.395192 6.216272 -4.200139 +v 0.584592 6.238719 -4.210606 +v -0.395192 6.238719 -4.210606 +v 0.584592 6.262642 -4.217014 +v -0.395192 6.262642 -4.217014 +v 0.584592 6.768971 -4.221011 +v 0.584592 6.743165 -4.219173 +v -0.395192 6.743165 -4.219173 +v -0.395192 6.768971 -4.221011 +v 0.584592 6.287314 -4.219173 +v -0.395192 6.287314 -4.219173 +v 0.584592 6.147389 -4.101762 +v -0.395192 6.147389 -4.101762 +v 0.584592 6.959888 -4.340073 +v 0.584592 6.944769 -4.319078 +v -0.395192 6.944769 -4.319078 +v -0.395192 6.959888 -4.340073 +v 0.584592 6.824206 -4.235372 +v 0.584592 6.796262 -4.226465 +v -0.395192 6.796262 -4.226465 +v -0.395192 6.824206 -4.235372 +v 0.584592 6.851957 -4.247458 +v -0.395192 6.851957 -4.247458 +v 0.584592 6.878670 -4.262361 +v -0.395192 6.878670 -4.262361 +v 0.584592 6.903533 -4.279624 +v -0.395192 6.903533 -4.279624 +v 0.584592 6.925792 -4.298723 +v -0.395192 6.925792 -4.298723 +v 0.584592 8.179142 -5.950719 +v 0.584592 8.165036 -5.930724 +v -0.395191 8.165036 -5.930724 +v -0.395191 8.179142 -5.950719 +v 0.584592 7.337978 -4.952483 +v -0.395191 7.337978 -4.952483 +v 0.584592 8.136739 -6.115254 +v 0.584592 8.156188 -6.100403 +v -0.395191 8.156188 -6.100403 +v -0.395191 8.136739 -6.115254 +v 0.584592 8.194821 -5.995161 +v 0.584592 8.189172 -5.972418 +v -0.395191 8.189172 -5.972418 +v -0.395191 8.194821 -5.995161 +v 0.584592 8.195919 -6.018255 +v -0.395191 8.195919 -6.018255 +v 0.584592 8.192431 -6.040999 +v -0.395191 8.192431 -6.040999 +v 0.584592 8.184464 -6.062704 +v -0.395191 8.184464 -6.062704 +v 0.584592 8.172259 -6.082707 +v -0.395191 8.172259 -6.082707 +v 0.584592 7.722301 -6.376241 +v 0.584592 7.745296 -6.363197 +v -0.395191 7.745296 -6.363197 +v -0.395191 7.722301 -6.376241 +v 0.584592 7.483572 -6.428729 +v 0.584592 7.510001 -6.429397 +v -0.395191 7.510001 -6.429397 +v -0.395191 7.483572 -6.428729 +v 0.584592 7.666298 -6.399806 +v 0.584592 7.695698 -6.388568 +v -0.395191 7.695698 -6.388568 +v -0.395191 7.666298 -6.399806 +v 0.584592 7.634993 -6.409613 +v -0.395191 7.634993 -6.409613 +v 0.584592 7.602734 -6.417689 +v -0.395191 7.602734 -6.417689 +v 0.584592 7.570499 -6.423791 +v -0.395191 7.570499 -6.423791 +v 0.584592 7.539272 -6.427734 +v -0.395191 7.539272 -6.427734 +v 0.584592 7.276041 -6.415237 +v 0.584592 7.301843 -6.415265 +v -0.395191 7.301843 -6.415265 +v -0.395191 7.276041 -6.415237 +v 0.584592 7.081335 -6.522986 +v 0.584592 7.097172 -6.502617 +v -0.395191 7.097172 -6.502617 +v -0.395191 7.081335 -6.522986 +v 0.584592 7.220437 -6.425855 +v 0.584592 7.248628 -6.418804 +v -0.395191 7.248628 -6.418804 +v -0.395191 7.220437 -6.425855 +v 0.584592 7.192325 -6.436174 +v -0.395191 7.192325 -6.436174 +v 0.584592 7.165144 -6.449452 +v -0.395191 7.165144 -6.449452 +v 0.584592 7.139724 -6.465283 +v -0.395191 7.139724 -6.465283 +v 0.584592 7.116836 -6.483187 +v -0.395191 7.116836 -6.483187 +v 0.584592 7.029011 -6.605164 +v 0.584592 7.041371 -6.582931 +v -0.395191 7.041371 -6.582931 +v -0.395191 7.029011 -6.605164 +v 0.584592 7.049788 -6.813304 +v 0.584592 7.035839 -6.792034 +v -0.395191 7.035839 -6.792034 +v -0.395191 7.049788 -6.813304 +v 0.584592 7.013651 -6.657066 +v 0.584592 7.019677 -6.630127 +v -0.395191 7.019677 -6.630127 +v -0.395191 7.013651 -6.657066 +v 0.584592 7.011119 -6.685161 +v -0.395191 7.011119 -6.685161 +v 0.584592 7.012156 -6.713555 +v -0.395191 7.012156 -6.713555 +v 0.584592 7.016733 -6.741390 +v -0.395191 7.016733 -6.741390 +v 0.584592 7.024707 -6.767817 +v -0.395191 7.024707 -6.767817 +v 0.584592 7.169249 -6.963922 +v 0.584592 7.151952 -6.944659 +v -0.395191 7.151952 -6.944659 +v -0.395191 7.169249 -6.963922 +v 0.584592 7.380579 -7.042848 +v 0.584592 7.354702 -7.043569 +v -0.395191 7.354702 -7.043569 +v -0.395191 7.380579 -7.042848 +v 0.584592 7.214511 -6.998865 +v 0.584592 7.190314 -6.982175 +v -0.395191 7.190314 -6.982175 +v -0.395191 7.214511 -6.998865 +v 0.584592 7.241105 -7.013483 +v -0.395191 7.241105 -7.013483 +v 0.584592 7.269283 -7.025585 +v -0.395191 7.269283 -7.025585 +v 0.584592 7.298194 -7.034803 +v -0.395191 7.298194 -7.034803 +v 0.584592 7.326959 -7.040860 +v -0.395191 7.326959 -7.040860 +v 0.584592 7.924263 -6.987965 +v 0.584592 7.898026 -6.991742 +v -0.395191 7.898026 -6.991742 +v -0.395191 7.924263 -6.987965 +v 0.584592 8.150192 -6.888796 +v 0.584592 8.128809 -6.904459 +v -0.395191 8.128809 -6.904459 +v -0.395191 8.150192 -6.888796 +v 0.584592 7.983564 -6.972837 +v 0.584592 7.953066 -6.981598 +v -0.395191 7.953066 -6.981598 +v -0.395191 7.983564 -6.972837 +v 0.584592 8.014829 -6.961946 +v -0.395191 8.014829 -6.961946 +v 0.584592 8.045910 -6.949258 +v -0.395191 8.045910 -6.949258 +v 0.584592 8.075863 -6.935157 +v -0.395191 8.075863 -6.935157 +v 0.584592 8.103779 -6.920072 +v -0.395191 8.103779 -6.920072 +v 0.584592 9.282803 -6.272899 +v 0.584592 9.258475 -6.282805 +v -0.395191 9.258475 -6.282805 +v -0.395191 9.282803 -6.272899 +v 0.584592 8.642069 -6.493681 +v -0.395191 8.642069 -6.493681 +v 0.584592 9.457625 -6.110325 +v 0.584592 9.444345 -6.132988 +v -0.395191 9.444345 -6.132988 +v -0.395191 9.457625 -6.110325 +v 0.584592 9.334363 -6.242865 +v 0.584592 9.308357 -6.259449 +v -0.395191 9.308357 -6.259449 +v -0.395191 9.334363 -6.242865 +v 0.584592 9.360028 -6.223650 +v -0.395191 9.360028 -6.223650 +v 0.584592 9.384575 -6.202392 +v -0.395191 9.384575 -6.202392 +v 0.584592 9.407257 -6.179731 +v -0.395191 9.407257 -6.179731 +v 0.584592 9.427383 -6.156362 +v -0.395191 9.427383 -6.156362 +v 0.584592 9.555048 -5.915235 +v 0.584592 9.545543 -5.938488 +v -0.395191 9.545543 -5.938488 +v -0.395191 9.555048 -5.915235 +v 0.584592 9.496242 -5.727215 +v 0.584592 9.515058 -5.743859 +v -0.395191 9.515058 -5.743859 +v -0.395191 9.496242 -5.727215 +v 0.584592 9.562625 -5.863883 +v 0.584592 9.560801 -5.890111 +v -0.395191 9.560801 -5.890112 +v -0.395191 9.562625 -5.863883 +v 0.584592 9.560467 -5.837347 +v -0.395191 9.560467 -5.837347 +v 0.584592 9.554390 -5.811306 +v -0.395191 9.554390 -5.811306 +v 0.584592 9.544580 -5.786552 +v -0.395191 9.544580 -5.786553 +v 0.584592 9.531335 -5.763842 +v -0.395191 9.531335 -5.763842 +v 0.584592 9.317157 -5.596313 +v 0.584592 9.338975 -5.610274 +v -0.395191 9.338975 -5.610274 +v -0.395191 9.317157 -5.596313 +v 0.584592 9.092025 -5.575655 +v 0.584592 9.116840 -5.568233 +v -0.395191 9.116840 -5.568233 +v -0.395191 9.092025 -5.575656 +v 0.584592 9.264157 -5.574605 +v 0.584592 9.291963 -5.584302 +v -0.395191 9.291963 -5.584302 +v -0.395191 9.264157 -5.574605 +v 0.584592 9.234586 -5.567513 +v -0.395191 9.234586 -5.567513 +v 0.584592 9.204147 -5.563247 +v -0.395191 9.204147 -5.563247 +v 0.584592 9.173767 -5.561934 +v -0.395191 9.173767 -5.561934 +v 0.584592 9.144367 -5.563612 +v -0.395191 9.144367 -5.563612 +v 0.584592 8.810327 -5.679654 +v 0.584592 8.834279 -5.672918 +v -0.395191 8.834279 -5.672918 +v -0.395191 8.810327 -5.679654 +v 0.584592 8.644131 -5.593029 +v 0.584592 8.656086 -5.614850 +v -0.395191 8.656086 -5.614850 +v -0.395191 8.644131 -5.593029 +v 0.584592 8.760147 -5.680576 +v 0.584592 8.785363 -5.682232 +v -0.395191 8.785363 -5.682232 +v -0.395191 8.760147 -5.680576 +v 0.584592 8.735446 -5.674736 +v -0.395191 8.735446 -5.674736 +v 0.584592 8.712008 -5.664889 +v -0.395191 8.712008 -5.664889 +v 0.584592 8.690548 -5.651334 +v -0.395191 8.690548 -5.651334 +v 0.584592 8.671717 -5.634483 +v -0.395191 8.671717 -5.634483 +v 0.584592 7.674724 -3.584612 +v -0.395192 7.674724 -3.584612 +v 0.584592 8.365284 -4.959190 +v -0.395191 8.365284 -4.959190 +v 0.584592 7.483182 -3.479156 +v 0.584592 7.508804 -3.481095 +v -0.395192 7.508804 -3.481095 +v -0.395192 7.483182 -3.479156 +v 0.584592 7.637462 -3.542964 +v 0.584592 7.657797 -3.563125 +v -0.395192 7.657797 -3.563125 +v -0.395192 7.637462 -3.542964 +v 0.584592 7.614337 -3.524742 +v -0.395192 7.614337 -3.524742 +v 0.584592 7.589126 -3.509013 +v -0.395192 7.589126 -3.509013 +v 0.584592 7.562593 -3.496253 +v -0.395192 7.562593 -3.496253 +v 0.584592 7.535545 -3.486852 +v -0.395192 7.535545 -3.486852 +v 0.584592 6.262642 -3.481315 +v 0.584592 6.287314 -3.479156 +v -0.395192 6.287314 -3.479156 +v -0.395192 6.262642 -3.481315 +v 0.584592 6.147389 -3.596567 +v -0.395192 6.147389 -3.596567 +v 0.584592 6.216272 -3.498192 +v 0.584592 6.238719 -3.487725 +v -0.395192 6.238719 -3.487725 +v -0.395192 6.216272 -3.498192 +v 0.584592 6.195985 -3.512398 +v -0.395192 6.195985 -3.512398 +v 0.584592 6.178472 -3.529910 +v -0.395192 6.178472 -3.529910 +v 0.584592 6.164267 -3.550198 +v -0.395192 6.164267 -3.550198 +v 0.584592 6.153800 -3.572644 +v -0.395192 6.153800 -3.572644 +v -0.430712 7.889108 -4.099000 +v -0.430712 8.333163 -4.974390 +v -0.430712 8.612238 -5.608743 +v -0.430712 8.626398 -5.634590 +v -0.430712 8.645795 -5.658955 +v -0.430712 8.669072 -5.679782 +v -0.430712 8.695532 -5.696496 +v -0.430712 8.724404 -5.708625 +v -0.430712 8.754861 -5.715827 +v -0.430712 8.786029 -5.717874 +v -0.430712 8.817008 -5.714674 +v -0.430712 8.845378 -5.706697 +v -0.430712 9.103399 -5.609331 +v -0.430712 9.124902 -5.602899 +v -0.430712 9.148333 -5.598965 +v -0.430712 9.174013 -5.597497 +v -0.430712 9.200908 -5.598660 +v -0.430712 9.227964 -5.602454 +v -0.430712 9.254142 -5.608730 +v -0.430712 9.278429 -5.617201 +v -0.430712 9.299875 -5.627427 +v -0.430712 9.318781 -5.639523 +v -0.430712 9.473836 -5.754820 +v -0.430712 9.489350 -5.768544 +v -0.430712 9.502046 -5.784128 +v -0.430712 9.512546 -5.802133 +v -0.430712 9.520397 -5.821944 +v -0.430712 9.525276 -5.842852 +v -0.430712 9.527004 -5.864093 +v -0.430712 9.525558 -5.884883 +v -0.430712 9.521070 -5.904480 +v -0.430712 9.513233 -5.923651 +v -0.430712 9.426466 -6.093243 +v -0.430712 9.414577 -6.113533 +v -0.430712 9.399504 -6.134302 +v -0.430712 9.381210 -6.155543 +v -0.430712 9.360365 -6.176369 +v -0.430712 9.337729 -6.195972 +v -0.430712 9.314142 -6.213631 +v -0.430712 9.290505 -6.228703 +v -0.430712 9.267796 -6.240655 +v -0.430712 9.246017 -6.249527 +v -0.430712 8.624680 -6.462090 +v -0.430712 8.128563 -6.860609 +v -0.430712 8.108887 -6.875021 +v -0.430712 8.085919 -6.889347 +v -0.430712 8.059842 -6.903440 +v -0.430712 8.031621 -6.916725 +v -0.430712 8.002266 -6.928709 +v -0.430712 7.972809 -6.938970 +v -0.430712 7.944322 -6.947154 +v -0.430712 7.917890 -6.952994 +v -0.430712 7.893750 -6.956470 +v -0.430712 7.378335 -7.007376 +v -0.430712 7.355937 -7.007999 +v -0.430712 7.332359 -7.005698 +v -0.430712 7.307272 -7.000415 +v -0.430712 7.281717 -6.992267 +v -0.430712 7.256703 -6.981524 +v -0.430712 7.233200 -6.968604 +v -0.430712 7.212095 -6.954048 +v -0.430712 7.194191 -6.938533 +v -0.430712 7.179221 -6.921861 +v -0.430712 7.078706 -6.792627 +v -0.430712 7.067001 -6.774779 +v -0.430712 7.058005 -6.755208 +v -0.430712 7.051407 -6.733344 +v -0.430712 7.047573 -6.710011 +v -0.430712 7.046699 -6.686110 +v -0.430712 7.048820 -6.662560 +v -0.430712 7.053805 -6.640273 +v -0.430712 7.061349 -6.620097 +v -0.430712 7.071722 -6.601441 +v -0.430712 7.110170 -6.543768 +v -0.430712 7.123790 -6.526253 +v -0.430712 7.140339 -6.509898 +v -0.430712 7.160113 -6.494431 +v -0.430712 7.182374 -6.480568 +v -0.430712 7.206277 -6.468892 +v -0.430712 7.230896 -6.459853 +v -0.430712 7.255250 -6.453763 +v -0.430712 7.278323 -6.450760 +v -0.430712 7.300509 -6.450785 +v -0.430712 7.481810 -6.464217 +v -0.430712 7.510559 -6.464942 +v -0.430712 7.542509 -6.463129 +v -0.430712 7.576034 -6.458897 +v -0.430712 7.610356 -6.452397 +v -0.430712 7.644623 -6.443819 +v -0.430712 7.677958 -6.433376 +v -0.430712 7.709525 -6.421311 +v -0.430712 7.738557 -6.407856 +v -0.430712 7.763575 -6.393669 +v -0.430712 8.157060 -6.144431 +v -0.430712 8.180312 -6.126676 +v -0.430712 8.200825 -6.104090 +v -0.430712 8.216606 -6.078223 +v -0.430712 8.227003 -6.049901 +v -0.430712 8.231569 -6.020123 +v -0.430712 8.230137 -5.989985 +v -0.430712 8.222831 -5.960578 +v -0.430712 8.210030 -5.932884 +v -0.430712 8.193166 -5.908978 +v -0.430712 7.366812 -4.931571 +v -0.430712 6.989450 -4.320339 +v -0.430712 6.972281 -4.296497 +v -0.430712 6.950424 -4.273054 +v -0.430712 6.925284 -4.251482 +v -0.430712 6.897497 -4.232189 +v -0.430712 6.867739 -4.215590 +v -0.430712 6.836724 -4.202079 +v -0.430712 6.805163 -4.192020 +v -0.430712 6.773732 -4.185739 +v -0.430712 6.744428 -4.183652 +v -0.430712 6.288866 -4.183652 +v -0.430712 6.268834 -4.181901 +v -0.430712 6.250914 -4.177099 +v -0.430712 6.234100 -4.169259 +v -0.430712 6.218904 -4.158618 +v -0.430712 6.205786 -4.145500 +v -0.430712 6.195146 -4.130303 +v -0.430712 6.187305 -4.113491 +v -0.430712 6.182504 -4.095572 +v -0.430712 6.180752 -4.075539 +v -0.430712 6.180752 -3.622791 +v -0.430712 6.182504 -3.602759 +v -0.430712 6.187305 -3.584840 +v -0.430712 6.195146 -3.568026 +v -0.430712 6.205786 -3.552830 +v -0.430712 6.218904 -3.539712 +v -0.430712 6.234100 -3.529072 +v -0.430712 6.250914 -3.521231 +v -0.430712 6.268834 -3.516430 +v -0.430712 6.288866 -3.514677 +v -0.430712 7.481840 -3.514677 +v -0.430712 7.503702 -3.516331 +v -0.430712 7.525940 -3.521119 +v -0.430712 7.549021 -3.529142 +v -0.430712 7.571976 -3.540180 +v -0.430712 7.593882 -3.553847 +v -0.430712 7.613890 -3.569613 +v -0.430712 7.631242 -3.586817 +v -0.430712 7.645318 -3.604686 +v -0.430712 7.656415 -3.623594 +v 0.617409 8.345455 -4.968574 +v 0.617409 7.901262 -4.092910 +v 0.609709 8.355876 -4.963643 +v 0.609709 7.911565 -4.087749 +v 0.598185 8.362839 -4.960348 +v 0.598185 7.918450 -4.084300 +v 0.598185 6.150063 -4.101292 +v 0.598185 6.147934 -4.076972 +v 0.609709 6.157674 -4.099949 +v 0.609709 6.155634 -4.076635 +v 0.617409 6.169066 -4.097940 +v 0.617409 6.167158 -4.076132 +v 0.598185 6.156350 -4.124757 +v 0.609709 6.163613 -4.122114 +v 0.617409 6.174483 -4.118156 +v 0.598185 6.166617 -4.146774 +v 0.609709 6.173311 -4.142910 +v 0.617409 6.183329 -4.137126 +v 0.598185 6.180552 -4.166675 +v 0.609709 6.186472 -4.161706 +v 0.617409 6.195333 -4.154271 +v 0.598185 6.197730 -4.183854 +v 0.609709 6.202698 -4.177933 +v 0.617409 6.210134 -4.169071 +v 0.598185 6.217629 -4.197787 +v 0.609709 6.221494 -4.191093 +v 0.617409 6.227278 -4.181076 +v 0.598185 6.239647 -4.208055 +v 0.609709 6.242291 -4.200790 +v 0.617409 6.246247 -4.189920 +v 0.598185 6.263113 -4.214343 +v 0.609709 6.264455 -4.206729 +v 0.617409 6.266464 -4.195337 +v 0.598185 6.287432 -4.216469 +v 0.609709 6.287768 -4.208769 +v 0.617409 6.288272 -4.197247 +v 0.598185 6.743261 -4.216469 +v 0.609709 6.743535 -4.208769 +v 0.617409 6.743944 -4.197247 +v 0.598185 6.769334 -4.218326 +v 0.609709 6.770366 -4.210680 +v 0.617409 6.771910 -4.199236 +v 0.598185 6.796939 -4.223843 +v 0.609709 6.798869 -4.216375 +v 0.617409 6.801757 -4.205202 +v 0.598185 6.825159 -4.232837 +v 0.609709 6.827873 -4.225621 +v 0.617409 6.831934 -4.214819 +v 0.598185 6.853158 -4.245032 +v 0.609709 6.856579 -4.238124 +v 0.617409 6.861700 -4.227786 +v 0.598185 6.880103 -4.260064 +v 0.609709 6.884184 -4.253522 +v 0.617409 6.890292 -4.243734 +v 0.598185 6.905189 -4.277481 +v 0.609709 6.909904 -4.271380 +v 0.617409 6.916960 -4.262251 +v 0.598185 6.927667 -4.296769 +v 0.609709 6.933006 -4.291203 +v 0.617409 6.940998 -4.282876 +v 0.598185 6.946863 -4.317359 +v 0.609709 6.952827 -4.312465 +v 0.617409 6.961752 -4.305140 +v 0.598185 6.962139 -4.338571 +v 0.609709 6.968547 -4.334292 +v 0.617409 6.978137 -4.327890 +v 0.598185 7.340173 -4.950891 +v 0.609709 7.346423 -4.946358 +v 0.617409 7.355778 -4.939573 +v 0.598185 8.167177 -5.929069 +v 0.609709 8.173275 -5.924355 +v 0.617409 8.182401 -5.917300 +v 0.598185 8.181493 -5.949363 +v 0.609709 8.188189 -5.945496 +v 0.617409 8.198210 -5.939710 +v 0.598185 8.191734 -5.971518 +v 0.609709 8.199031 -5.968951 +v 0.617409 8.209950 -5.965109 +v 0.598185 8.197510 -5.994767 +v 0.609709 8.205165 -5.993646 +v 0.617409 8.216622 -5.991967 +v 0.598185 8.198633 -6.018396 +v 0.609709 8.206361 -6.018802 +v 0.617409 8.217927 -6.019408 +v 0.598185 8.195064 -6.041677 +v 0.609709 8.202558 -6.043607 +v 0.617409 8.213773 -6.046494 +v 0.598185 8.186911 -6.063885 +v 0.609709 8.193878 -6.067248 +v 0.617409 8.204306 -6.072284 +v 0.598185 8.174434 -6.084334 +v 0.609709 8.180626 -6.088971 +v 0.617409 8.189893 -6.095907 +v 0.598185 8.158025 -6.102404 +v 0.609709 8.163254 -6.108099 +v 0.617409 8.171081 -6.116621 +v 0.598185 8.138286 -6.117476 +v 0.609709 8.142691 -6.123799 +v 0.617409 8.149283 -6.133265 +v 0.598185 7.746688 -6.365518 +v 0.609709 7.750650 -6.372122 +v 0.617409 7.756579 -6.382008 +v 0.598185 7.723538 -6.378647 +v 0.609709 7.727063 -6.385500 +v 0.617409 7.732337 -6.395759 +v 0.598185 7.696752 -6.391060 +v 0.609709 7.699749 -6.398159 +v 0.617409 7.704234 -6.408782 +v 0.598185 7.667185 -6.402361 +v 0.609709 7.669713 -6.409638 +v 0.617409 7.673496 -6.420529 +v 0.598185 7.635725 -6.412217 +v 0.609709 7.637814 -6.419631 +v 0.617409 7.640937 -6.430728 +v 0.598185 7.603313 -6.420331 +v 0.609709 7.604967 -6.427855 +v 0.617409 7.607440 -6.439116 +v 0.598185 7.570921 -6.426465 +v 0.609709 7.572121 -6.434073 +v 0.617409 7.573915 -6.445463 +v 0.598185 7.539518 -6.430429 +v 0.609709 7.540220 -6.438100 +v 0.617409 7.541270 -6.449584 +v 0.598185 7.510043 -6.432103 +v 0.609709 7.510163 -6.439807 +v 0.617409 7.510345 -6.451341 +v 0.598185 7.483438 -6.431429 +v 0.609709 7.483056 -6.439123 +v 0.617409 7.482483 -6.450635 +v 0.598185 7.301742 -6.417969 +v 0.609709 7.301453 -6.425667 +v 0.617409 7.301021 -6.437191 +v 0.598185 7.276215 -6.417942 +v 0.609709 7.276709 -6.425642 +v 0.617409 7.277450 -6.437167 +v 0.598185 7.249132 -6.421464 +v 0.609709 7.250566 -6.429042 +v 0.617409 7.252716 -6.440384 +v 0.598185 7.221232 -6.428442 +v 0.609709 7.223499 -6.435812 +v 0.617409 7.226893 -6.446843 +v 0.598185 7.193387 -6.438665 +v 0.609709 7.196412 -6.445757 +v 0.617409 7.200937 -6.456371 +v 0.598185 7.166457 -6.451820 +v 0.609709 7.170191 -6.458567 +v 0.617409 7.175780 -6.468660 +v 0.598185 7.141276 -6.467503 +v 0.609709 7.145697 -6.473821 +v 0.617409 7.152310 -6.483276 +v 0.598185 7.118625 -6.485219 +v 0.609709 7.123720 -6.491010 +v 0.617409 7.131345 -6.499676 +v 0.598185 7.099198 -6.504416 +v 0.609709 7.104969 -6.509541 +v 0.617409 7.113605 -6.517209 +v 0.598185 7.083529 -6.524570 +v 0.609709 7.089779 -6.529074 +v 0.617409 7.099135 -6.535816 +v 0.598185 7.043683 -6.584340 +v 0.609709 7.050261 -6.588353 +v 0.617409 7.060108 -6.594357 +v 0.598185 7.031473 -6.606299 +v 0.609709 7.038484 -6.609538 +v 0.617409 7.048975 -6.614381 +v 0.598185 7.022274 -6.630899 +v 0.609709 7.029673 -6.633100 +v 0.617409 7.040745 -6.636391 +v 0.598185 7.016328 -6.657485 +v 0.609709 7.023952 -6.658676 +v 0.617409 7.035362 -6.660459 +v 0.598185 7.013827 -6.685233 +v 0.609709 7.021541 -6.685439 +v 0.617409 7.033082 -6.685747 +v 0.598185 7.014853 -6.713285 +v 0.609709 7.022530 -6.712518 +v 0.617409 7.034019 -6.711368 +v 0.598185 7.019372 -6.740777 +v 0.609709 7.026888 -6.739033 +v 0.617409 7.038137 -6.736423 +v 0.598185 7.027242 -6.766857 +v 0.609709 7.034461 -6.764123 +v 0.617409 7.045262 -6.760034 +v 0.598185 7.038210 -6.790720 +v 0.609709 7.044967 -6.786981 +v 0.617409 7.055077 -6.781383 +v 0.598185 7.051991 -6.811730 +v 0.609709 7.058259 -6.807249 +v 0.617409 7.067640 -6.800539 +v 0.598185 7.154028 -6.942924 +v 0.609709 7.159939 -6.937981 +v 0.617409 7.168787 -6.930584 +v 0.598185 7.171146 -6.961988 +v 0.609709 7.176555 -6.956486 +v 0.617409 7.184647 -6.948249 +v 0.598185 7.191972 -6.980033 +v 0.609709 7.196693 -6.973937 +v 0.617409 7.203761 -6.964811 +v 0.598185 7.215934 -6.996562 +v 0.609709 7.219985 -6.990002 +v 0.617409 7.226048 -6.980185 +v 0.598185 7.242291 -7.011050 +v 0.609709 7.245674 -7.004121 +v 0.617409 7.250733 -6.993753 +v 0.598185 7.270230 -7.023048 +v 0.609709 7.272925 -7.015827 +v 0.617409 7.276959 -7.005016 +v 0.598185 7.298885 -7.032187 +v 0.609709 7.300853 -7.024732 +v 0.617409 7.303799 -7.013576 +v 0.598185 7.327370 -7.038184 +v 0.609709 7.328540 -7.030560 +v 0.617409 7.330293 -7.019154 +v 0.598185 7.354795 -7.040861 +v 0.609709 7.355062 -7.033151 +v 0.617409 7.355464 -7.021612 +v 0.598185 7.380408 -7.040146 +v 0.609709 7.379921 -7.032457 +v 0.617409 7.379193 -7.020949 +v 0.598185 7.897700 -6.989057 +v 0.609709 7.896773 -6.981411 +v 0.617409 7.895387 -6.969967 +v 0.598185 7.923777 -6.985302 +v 0.609709 7.922396 -6.977723 +v 0.617409 7.920329 -6.966378 +v 0.598185 7.952401 -6.978977 +v 0.609709 7.950505 -6.971509 +v 0.617409 7.947669 -6.960336 +v 0.598185 7.982746 -6.970260 +v 0.609709 7.980414 -6.962917 +v 0.617409 7.976924 -6.951931 +v 0.598185 8.013872 -6.959416 +v 0.609709 8.011148 -6.952211 +v 0.617409 8.007073 -6.941429 +v 0.598185 8.044822 -6.946783 +v 0.609709 8.041724 -6.939730 +v 0.617409 8.037089 -6.929174 +v 0.598185 8.074643 -6.932743 +v 0.609709 8.071171 -6.925868 +v 0.617409 8.065972 -6.915577 +v 0.598185 8.102420 -6.917733 +v 0.609709 8.098548 -6.911073 +v 0.617409 8.092754 -6.901104 +v 0.598185 8.127293 -6.902218 +v 0.609709 8.122973 -6.895837 +v 0.617409 8.116510 -6.886287 +v 0.598185 8.148545 -6.886651 +v 0.609709 8.143857 -6.880540 +v 0.617409 8.136840 -6.871396 +v 0.598185 8.640745 -6.491277 +v 0.609709 8.636976 -6.484428 +v 0.617409 8.631334 -6.474178 +v 0.598185 9.257527 -6.280272 +v 0.609709 9.254827 -6.273058 +v 0.617409 9.250785 -6.262261 +v 0.598185 9.281660 -6.270443 +v 0.609709 9.278407 -6.263454 +v 0.617409 9.273539 -6.252995 +v 0.598185 9.306998 -6.257108 +v 0.609709 9.303128 -6.250443 +v 0.617409 9.297337 -6.240469 +v 0.598185 9.332824 -6.240639 +v 0.609709 9.328440 -6.234302 +v 0.617409 9.321880 -6.224818 +v 0.598185 9.358331 -6.221543 +v 0.609709 9.353498 -6.215544 +v 0.617409 9.346263 -6.206564 +v 0.598185 9.382732 -6.200410 +v 0.609709 9.377484 -6.194769 +v 0.617409 9.369630 -6.186327 +v 0.598185 9.405274 -6.177890 +v 0.609709 9.399628 -6.172647 +v 0.617409 9.391178 -6.164801 +v 0.598185 9.425261 -6.154683 +v 0.609709 9.419218 -6.149899 +v 0.617409 9.410173 -6.142744 +v 0.598185 9.442080 -6.131507 +v 0.609709 9.435626 -6.127291 +v 0.617409 9.425968 -6.120978 +v 0.598185 9.455254 -6.109025 +v 0.609709 9.448499 -6.105322 +v 0.617409 9.438390 -6.099781 +v 0.598185 9.543083 -5.937357 +v 0.609709 9.536079 -5.934142 +v 0.617409 9.525598 -5.929327 +v 0.598185 9.552462 -5.914415 +v 0.609709 9.545096 -5.912085 +v 0.617409 9.534074 -5.908595 +v 0.598185 9.558118 -5.889715 +v 0.609709 9.550478 -5.888580 +v 0.617409 9.539044 -5.886885 +v 0.598185 9.559914 -5.863900 +v 0.609709 9.552192 -5.863945 +v 0.617409 9.540636 -5.864014 +v 0.598185 9.557788 -5.837766 +v 0.609709 9.550159 -5.838959 +v 0.617409 9.538743 -5.840744 +v 0.598185 9.551802 -5.812116 +v 0.609709 9.544434 -5.814422 +v 0.617409 9.533405 -5.817873 +v 0.598185 9.542141 -5.787740 +v 0.609709 9.535197 -5.791117 +v 0.617409 9.524804 -5.796171 +v 0.598185 9.529105 -5.765386 +v 0.609709 9.522757 -5.769783 +v 0.617409 9.513254 -5.776364 +v 0.598185 9.513101 -5.745739 +v 0.609709 9.507528 -5.751090 +v 0.617409 9.499187 -5.759098 +v 0.598185 9.494536 -5.729318 +v 0.609709 9.489679 -5.735301 +v 0.617409 9.482410 -5.744256 +v 0.598185 9.337438 -5.612501 +v 0.609709 9.333060 -5.618841 +v 0.617409 9.326509 -5.628330 +v 0.598185 9.315842 -5.598682 +v 0.609709 9.312095 -5.605426 +v 0.617409 9.306488 -5.615520 +v 0.598185 9.290932 -5.586806 +v 0.609709 9.287998 -5.593938 +v 0.617409 9.283608 -5.604611 +v 0.598185 9.263394 -5.577201 +v 0.609709 9.261224 -5.584599 +v 0.617409 9.257975 -5.595671 +v 0.598185 9.234082 -5.570174 +v 0.609709 9.232647 -5.577747 +v 0.617409 9.230498 -5.589083 +v 0.598185 9.203901 -5.565942 +v 0.609709 9.203198 -5.573619 +v 0.617409 9.202147 -5.585109 +v 0.598185 9.173786 -5.564641 +v 0.609709 9.173840 -5.572350 +v 0.617409 9.173919 -5.583888 +v 0.598185 9.144669 -5.566304 +v 0.609709 9.145529 -5.573967 +v 0.617409 9.146814 -5.585435 +v 0.598185 9.117455 -5.570871 +v 0.609709 9.119202 -5.578386 +v 0.617409 9.121818 -5.589633 +v 0.598185 9.092891 -5.578219 +v 0.609709 9.095356 -5.585518 +v 0.617409 9.099047 -5.596444 +v 0.598185 8.835124 -5.675489 +v 0.609709 8.837530 -5.682812 +v 0.617409 8.841131 -5.693769 +v 0.598185 8.810835 -5.682320 +v 0.609709 8.812284 -5.689910 +v 0.617409 8.814451 -5.701272 +v 0.598185 8.785414 -5.684946 +v 0.609709 8.785558 -5.692671 +v 0.617409 8.785774 -5.704235 +v 0.598185 8.759745 -5.683259 +v 0.609709 8.758599 -5.690900 +v 0.617409 8.756884 -5.702336 +v 0.598185 8.734605 -5.677316 +v 0.609709 8.732212 -5.684662 +v 0.617409 8.728630 -5.695656 +v 0.598185 8.710754 -5.667295 +v 0.609709 8.707183 -5.674147 +v 0.617409 8.701838 -5.684401 +v 0.598185 8.688913 -5.653501 +v 0.609709 8.684258 -5.659667 +v 0.617409 8.677291 -5.668897 +v 0.598185 8.669744 -5.636346 +v 0.609709 8.664124 -5.641652 +v 0.617409 8.655714 -5.649590 +v 0.598185 8.653826 -5.616353 +v 0.609709 8.647390 -5.620632 +v 0.617409 8.637758 -5.627036 +v 0.598185 8.641703 -5.594223 +v 0.609709 8.634789 -5.597631 +v 0.617409 8.624443 -5.602728 +v 0.598185 7.685346 -3.608053 +v 0.609709 7.678558 -3.611700 +v 0.617409 7.668399 -3.617157 +v 0.598185 7.672486 -3.586141 +v 0.609709 7.666111 -3.590492 +v 0.617409 7.656571 -3.597004 +v 0.598185 7.655776 -3.564929 +v 0.609709 7.650019 -3.570065 +v 0.617409 7.641404 -3.577751 +v 0.598185 7.635668 -3.544993 +v 0.609709 7.630558 -3.550770 +v 0.617409 7.622910 -3.559415 +v 0.598185 7.612781 -3.526958 +v 0.609709 7.608346 -3.533267 +v 0.617409 7.601710 -3.542709 +v 0.598185 7.587820 -3.511385 +v 0.609709 7.584103 -3.518141 +v 0.617409 7.578539 -3.528253 +v 0.598185 7.561560 -3.498757 +v 0.609709 7.558618 -3.505886 +v 0.617409 7.554215 -3.516556 +v 0.598185 7.534814 -3.489461 +v 0.609709 7.532732 -3.496889 +v 0.617409 7.529615 -3.508006 +v 0.598185 7.508416 -3.483777 +v 0.609709 7.507310 -3.491415 +v 0.617409 7.505654 -3.502847 +v 0.598185 7.483080 -3.481860 +v 0.609709 7.482790 -3.489560 +v 0.617409 7.482354 -3.501084 +v 0.598185 6.287432 -3.481860 +v 0.609709 6.287768 -3.489560 +v 0.617409 6.288272 -3.501084 +v 0.598185 6.263113 -3.483988 +v 0.609709 6.264455 -3.491600 +v 0.617409 6.266464 -3.502992 +v 0.598185 6.239647 -3.490276 +v 0.609709 6.242291 -3.497539 +v 0.617409 6.246247 -3.508409 +v 0.598185 6.217629 -3.500542 +v 0.609709 6.221494 -3.507236 +v 0.617409 6.227278 -3.517254 +v 0.598185 6.197730 -3.514477 +v 0.609709 6.202698 -3.520398 +v 0.617409 6.210134 -3.529259 +v 0.598185 6.180552 -3.531655 +v 0.609709 6.186472 -3.536623 +v 0.617409 6.195333 -3.544059 +v 0.598185 6.166617 -3.551555 +v 0.609709 6.173311 -3.555420 +v 0.617409 6.183329 -3.561203 +v 0.598185 6.156350 -3.573573 +v 0.609709 6.163613 -3.576216 +v 0.617409 6.174483 -3.580173 +v 0.598185 6.150063 -3.597039 +v 0.609709 6.157674 -3.598381 +v 0.617409 6.169066 -3.600389 +v 0.598185 6.147934 -3.621358 +v 0.609709 6.155634 -3.621694 +v 0.617409 6.167158 -3.622198 +v -0.408785 8.362839 -4.960348 +v -0.408785 7.918450 -4.084300 +v -0.420308 8.355876 -4.963643 +v -0.420309 7.911565 -4.087749 +v -0.428008 8.345455 -4.968574 +v -0.428008 7.901262 -4.092910 +v -0.428008 6.169066 -4.097940 +v -0.428008 6.167158 -4.076132 +v -0.420309 6.157674 -4.099949 +v -0.420309 6.155634 -4.076635 +v -0.408785 6.150063 -4.101292 +v -0.408785 6.147934 -4.076972 +v -0.428008 6.174483 -4.118156 +v -0.420309 6.163613 -4.122114 +v -0.408785 6.156350 -4.124757 +v -0.428008 6.183329 -4.137126 +v -0.420309 6.173311 -4.142910 +v -0.408785 6.166617 -4.146774 +v -0.428008 6.195333 -4.154271 +v -0.420309 6.186472 -4.161706 +v -0.408785 6.180552 -4.166675 +v -0.428008 6.210134 -4.169071 +v -0.420309 6.202698 -4.177933 +v -0.408785 6.197730 -4.183854 +v -0.428008 6.227278 -4.181076 +v -0.420309 6.221494 -4.191093 +v -0.408785 6.217629 -4.197787 +v -0.428008 6.246247 -4.189920 +v -0.420309 6.242291 -4.200790 +v -0.408785 6.239647 -4.208055 +v -0.428008 6.266464 -4.195337 +v -0.420309 6.264455 -4.206729 +v -0.408785 6.263113 -4.214343 +v -0.428008 6.288272 -4.197247 +v -0.420309 6.287768 -4.208769 +v -0.408785 6.287432 -4.216469 +v -0.428008 6.743944 -4.197247 +v -0.420309 6.743535 -4.208769 +v -0.408785 6.743261 -4.216469 +v -0.428008 6.771910 -4.199236 +v -0.420309 6.770366 -4.210680 +v -0.408785 6.769334 -4.218326 +v -0.428008 6.801757 -4.205202 +v -0.420309 6.798869 -4.216375 +v -0.408785 6.796939 -4.223843 +v -0.428008 6.831934 -4.214819 +v -0.420309 6.827873 -4.225621 +v -0.408785 6.825159 -4.232837 +v -0.428008 6.861700 -4.227786 +v -0.420309 6.856579 -4.238124 +v -0.408785 6.853158 -4.245032 +v -0.428008 6.890292 -4.243734 +v -0.420309 6.884184 -4.253522 +v -0.408785 6.880103 -4.260064 +v -0.428008 6.916960 -4.262251 +v -0.420309 6.909904 -4.271380 +v -0.408785 6.905189 -4.277481 +v -0.428008 6.940998 -4.282876 +v -0.420309 6.933006 -4.291203 +v -0.408785 6.927667 -4.296769 +v -0.428008 6.961752 -4.305140 +v -0.420309 6.952827 -4.312465 +v -0.408785 6.946863 -4.317359 +v -0.428008 6.978137 -4.327890 +v -0.420309 6.968547 -4.334292 +v -0.408785 6.962139 -4.338571 +v -0.428008 7.355778 -4.939573 +v -0.420308 7.346423 -4.946358 +v -0.408785 7.340173 -4.950891 +v -0.428008 8.182401 -5.917300 +v -0.420308 8.173275 -5.924355 +v -0.408785 8.167177 -5.929069 +v -0.428008 8.198210 -5.939710 +v -0.420308 8.188189 -5.945497 +v -0.408785 8.181493 -5.949363 +v -0.428008 8.209950 -5.965109 +v -0.420308 8.199031 -5.968951 +v -0.408785 8.191734 -5.971518 +v -0.428008 8.216622 -5.991967 +v -0.420308 8.205165 -5.993646 +v -0.408785 8.197510 -5.994767 +v -0.428008 8.217927 -6.019408 +v -0.420308 8.206361 -6.018802 +v -0.408785 8.198633 -6.018396 +v -0.428008 8.213773 -6.046494 +v -0.420308 8.202558 -6.043607 +v -0.408785 8.195064 -6.041677 +v -0.428008 8.204306 -6.072284 +v -0.420308 8.193878 -6.067248 +v -0.408785 8.186911 -6.063885 +v -0.428008 8.189893 -6.095907 +v -0.420308 8.180626 -6.088971 +v -0.408785 8.174434 -6.084334 +v -0.428008 8.171081 -6.116621 +v -0.420308 8.163254 -6.108099 +v -0.408785 8.158025 -6.102404 +v -0.428008 8.149283 -6.133265 +v -0.420308 8.142691 -6.123799 +v -0.408785 8.138286 -6.117476 +v -0.428008 7.756579 -6.382008 +v -0.420308 7.750650 -6.372122 +v -0.408785 7.746688 -6.365518 +v -0.428008 7.732337 -6.395759 +v -0.420308 7.727063 -6.385500 +v -0.408785 7.723538 -6.378647 +v -0.428008 7.704234 -6.408782 +v -0.420308 7.699749 -6.398159 +v -0.408785 7.696752 -6.391060 +v -0.428008 7.673496 -6.420529 +v -0.420308 7.669713 -6.409638 +v -0.408785 7.667185 -6.402361 +v -0.428008 7.640937 -6.430728 +v -0.420308 7.637814 -6.419631 +v -0.408785 7.635725 -6.412217 +v -0.428008 7.607440 -6.439116 +v -0.420308 7.604967 -6.427855 +v -0.408785 7.603313 -6.420331 +v -0.428008 7.573915 -6.445463 +v -0.420308 7.572121 -6.434073 +v -0.408785 7.570921 -6.426465 +v -0.428008 7.541270 -6.449584 +v -0.420308 7.540220 -6.438100 +v -0.408785 7.539518 -6.430429 +v -0.428008 7.510345 -6.451341 +v -0.420308 7.510163 -6.439807 +v -0.408785 7.510043 -6.432103 +v -0.428008 7.482483 -6.450635 +v -0.420308 7.483056 -6.439123 +v -0.408785 7.483438 -6.431429 +v -0.428008 7.301021 -6.437191 +v -0.420308 7.301453 -6.425667 +v -0.408785 7.301742 -6.417969 +v -0.428008 7.277450 -6.437167 +v -0.420308 7.276709 -6.425642 +v -0.408785 7.276215 -6.417942 +v -0.428008 7.252716 -6.440384 +v -0.420308 7.250566 -6.429042 +v -0.408785 7.249132 -6.421464 +v -0.428008 7.226893 -6.446843 +v -0.420308 7.223499 -6.435812 +v -0.408785 7.221232 -6.428442 +v -0.428008 7.200937 -6.456371 +v -0.420308 7.196412 -6.445757 +v -0.408785 7.193387 -6.438665 +v -0.428008 7.175780 -6.468660 +v -0.420308 7.170191 -6.458567 +v -0.408785 7.166457 -6.451820 +v -0.428008 7.152310 -6.483276 +v -0.420308 7.145697 -6.473821 +v -0.408785 7.141276 -6.467503 +v -0.428008 7.131345 -6.499676 +v -0.420308 7.123720 -6.491011 +v -0.408785 7.118625 -6.485219 +v -0.428008 7.113605 -6.517209 +v -0.420308 7.104969 -6.509541 +v -0.408785 7.099198 -6.504416 +v -0.428008 7.099135 -6.535816 +v -0.420308 7.089779 -6.529074 +v -0.408785 7.083529 -6.524570 +v -0.428008 7.060108 -6.594357 +v -0.420308 7.050261 -6.588353 +v -0.408785 7.043683 -6.584340 +v -0.428008 7.048975 -6.614381 +v -0.420308 7.038484 -6.609538 +v -0.408785 7.031473 -6.606299 +v -0.428008 7.040745 -6.636391 +v -0.420308 7.029673 -6.633100 +v -0.408785 7.022274 -6.630899 +v -0.428008 7.035362 -6.660459 +v -0.420308 7.023952 -6.658676 +v -0.408785 7.016328 -6.657485 +v -0.428008 7.033082 -6.685747 +v -0.420308 7.021541 -6.685439 +v -0.408785 7.013827 -6.685233 +v -0.428008 7.034019 -6.711368 +v -0.420308 7.022530 -6.712518 +v -0.408785 7.014853 -6.713285 +v -0.428008 7.038137 -6.736423 +v -0.420308 7.026888 -6.739033 +v -0.408785 7.019372 -6.740777 +v -0.428008 7.045262 -6.760034 +v -0.420308 7.034461 -6.764123 +v -0.408785 7.027242 -6.766857 +v -0.428008 7.055077 -6.781383 +v -0.420308 7.044967 -6.786981 +v -0.408785 7.038210 -6.790720 +v -0.428008 7.067640 -6.800539 +v -0.420308 7.058259 -6.807249 +v -0.408785 7.051991 -6.811730 +v -0.428008 7.168787 -6.930584 +v -0.420308 7.159939 -6.937981 +v -0.408785 7.154028 -6.942924 +v -0.428008 7.184647 -6.948249 +v -0.420308 7.176555 -6.956486 +v -0.408785 7.171146 -6.961988 +v -0.428008 7.203761 -6.964811 +v -0.420308 7.196693 -6.973937 +v -0.408785 7.191972 -6.980033 +v -0.428008 7.226048 -6.980185 +v -0.420308 7.219985 -6.990002 +v -0.408785 7.215934 -6.996562 +v -0.428008 7.250733 -6.993753 +v -0.420308 7.245674 -7.004121 +v -0.408785 7.242291 -7.011050 +v -0.428008 7.276959 -7.005016 +v -0.420308 7.272925 -7.015827 +v -0.408785 7.270230 -7.023048 +v -0.428008 7.303799 -7.013576 +v -0.420308 7.300853 -7.024732 +v -0.408785 7.298885 -7.032187 +v -0.428008 7.330293 -7.019154 +v -0.420308 7.328540 -7.030560 +v -0.408785 7.327370 -7.038184 +v -0.428008 7.355464 -7.021612 +v -0.420308 7.355062 -7.033151 +v -0.408785 7.354795 -7.040861 +v -0.428008 7.379193 -7.020949 +v -0.420308 7.379921 -7.032457 +v -0.408785 7.380408 -7.040146 +v -0.428008 7.895387 -6.969967 +v -0.420308 7.896773 -6.981411 +v -0.408785 7.897700 -6.989057 +v -0.428008 7.920329 -6.966378 +v -0.420308 7.922396 -6.977723 +v -0.408785 7.923777 -6.985302 +v -0.428008 7.947669 -6.960336 +v -0.420308 7.950505 -6.971509 +v -0.408785 7.952401 -6.978977 +v -0.428008 7.976924 -6.951931 +v -0.420308 7.980414 -6.962917 +v -0.408785 7.982746 -6.970260 +v -0.428008 8.007073 -6.941429 +v -0.420308 8.011148 -6.952211 +v -0.408785 8.013872 -6.959416 +v -0.428008 8.037089 -6.929174 +v -0.420308 8.041724 -6.939730 +v -0.408785 8.044822 -6.946783 +v -0.428008 8.065972 -6.915577 +v -0.420308 8.071171 -6.925868 +v -0.408785 8.074643 -6.932743 +v -0.428008 8.092754 -6.901104 +v -0.420308 8.098548 -6.911073 +v -0.408785 8.102420 -6.917733 +v -0.428008 8.116510 -6.886287 +v -0.420308 8.122973 -6.895837 +v -0.408785 8.127293 -6.902218 +v -0.428008 8.136840 -6.871396 +v -0.420308 8.143857 -6.880540 +v -0.408785 8.148545 -6.886651 +v -0.428008 8.631334 -6.474178 +v -0.420308 8.636976 -6.484428 +v -0.408785 8.640745 -6.491277 +v -0.428008 9.250785 -6.262261 +v -0.420308 9.254827 -6.273058 +v -0.408785 9.257527 -6.280272 +v -0.428008 9.273539 -6.252995 +v -0.420308 9.278407 -6.263454 +v -0.408785 9.281660 -6.270443 +v -0.428008 9.297337 -6.240469 +v -0.420308 9.303128 -6.250443 +v -0.408785 9.306998 -6.257108 +v -0.428008 9.321880 -6.224818 +v -0.420308 9.328440 -6.234302 +v -0.408785 9.332824 -6.240639 +v -0.428008 9.346263 -6.206564 +v -0.420308 9.353498 -6.215544 +v -0.408785 9.358331 -6.221543 +v -0.428008 9.369630 -6.186327 +v -0.420308 9.377484 -6.194769 +v -0.408785 9.382732 -6.200410 +v -0.428008 9.391178 -6.164801 +v -0.420308 9.399628 -6.172647 +v -0.408785 9.405274 -6.177890 +v -0.428008 9.410173 -6.142744 +v -0.420308 9.419218 -6.149899 +v -0.408785 9.425261 -6.154683 +v -0.428008 9.425968 -6.120978 +v -0.420308 9.435626 -6.127291 +v -0.408785 9.442080 -6.131507 +v -0.428008 9.438390 -6.099781 +v -0.420308 9.448499 -6.105322 +v -0.408785 9.455254 -6.109025 +v -0.428008 9.525598 -5.929327 +v -0.420308 9.536079 -5.934142 +v -0.408785 9.543083 -5.937357 +v -0.428008 9.534074 -5.908596 +v -0.420308 9.545096 -5.912085 +v -0.408785 9.552462 -5.914415 +v -0.428008 9.539044 -5.886885 +v -0.420308 9.550478 -5.888580 +v -0.408785 9.558118 -5.889715 +v -0.428008 9.540636 -5.864014 +v -0.420308 9.552192 -5.863945 +v -0.408785 9.559914 -5.863900 +v -0.428008 9.538743 -5.840744 +v -0.420308 9.550159 -5.838959 +v -0.408785 9.557788 -5.837766 +v -0.428008 9.533405 -5.817873 +v -0.420308 9.544434 -5.814422 +v -0.408785 9.551802 -5.812116 +v -0.428008 9.524804 -5.796171 +v -0.420308 9.535197 -5.791117 +v -0.408785 9.542141 -5.787740 +v -0.428008 9.513254 -5.776364 +v -0.420308 9.522757 -5.769783 +v -0.408785 9.529105 -5.765386 +v -0.428008 9.499187 -5.759098 +v -0.420308 9.507528 -5.751090 +v -0.408785 9.513101 -5.745739 +v -0.428008 9.482410 -5.744256 +v -0.420308 9.489679 -5.735301 +v -0.408785 9.494536 -5.729318 +v -0.428008 9.326509 -5.628330 +v -0.420308 9.333060 -5.618841 +v -0.408785 9.337438 -5.612501 +v -0.428008 9.306488 -5.615520 +v -0.420308 9.312095 -5.605426 +v -0.408785 9.315842 -5.598682 +v -0.428008 9.283608 -5.604611 +v -0.420308 9.287998 -5.593938 +v -0.408785 9.290932 -5.586806 +v -0.428008 9.257975 -5.595671 +v -0.420308 9.261224 -5.584599 +v -0.408785 9.263394 -5.577201 +v -0.428008 9.230498 -5.589083 +v -0.420308 9.232647 -5.577747 +v -0.408785 9.234082 -5.570174 +v -0.428008 9.202147 -5.585109 +v -0.420308 9.203198 -5.573619 +v -0.408785 9.203901 -5.565942 +v -0.428008 9.173919 -5.583888 +v -0.420308 9.173840 -5.572350 +v -0.408785 9.173786 -5.564641 +v -0.428008 9.146814 -5.585435 +v -0.420308 9.145529 -5.573967 +v -0.408785 9.144669 -5.566304 +v -0.428008 9.121818 -5.589633 +v -0.420308 9.119202 -5.578386 +v -0.408785 9.117455 -5.570872 +v -0.428008 9.099047 -5.596444 +v -0.420308 9.095356 -5.585518 +v -0.408785 9.092891 -5.578219 +v -0.428008 8.841131 -5.693769 +v -0.420308 8.837530 -5.682812 +v -0.408785 8.835124 -5.675489 +v -0.428008 8.814451 -5.701272 +v -0.420308 8.812284 -5.689910 +v -0.408785 8.810835 -5.682320 +v -0.428008 8.785774 -5.704235 +v -0.420308 8.785558 -5.692671 +v -0.408785 8.785414 -5.684946 +v -0.428008 8.756884 -5.702336 +v -0.420308 8.758599 -5.690900 +v -0.408785 8.759745 -5.683259 +v -0.428008 8.728630 -5.695656 +v -0.420308 8.732212 -5.684662 +v -0.408785 8.734605 -5.677316 +v -0.428008 8.701838 -5.684401 +v -0.420308 8.707183 -5.674147 +v -0.408785 8.710754 -5.667295 +v -0.428008 8.677291 -5.668897 +v -0.420308 8.684258 -5.659667 +v -0.408785 8.688913 -5.653501 +v -0.428008 8.655714 -5.649590 +v -0.420308 8.664124 -5.641652 +v -0.408785 8.669744 -5.636346 +v -0.428008 8.637758 -5.627036 +v -0.420308 8.647390 -5.620632 +v -0.408785 8.653826 -5.616353 +v -0.428008 8.624443 -5.602728 +v -0.420308 8.634789 -5.597631 +v -0.408785 8.641703 -5.594223 +v -0.428008 7.668399 -3.617157 +v -0.420309 7.678558 -3.611700 +v -0.408785 7.685346 -3.608053 +v -0.428008 7.656571 -3.597004 +v -0.420309 7.666111 -3.590492 +v -0.408785 7.672486 -3.586141 +v -0.428008 7.641404 -3.577751 +v -0.420309 7.650019 -3.570065 +v -0.408785 7.655776 -3.564929 +v -0.428008 7.622910 -3.559415 +v -0.420309 7.630558 -3.550770 +v -0.408785 7.635668 -3.544993 +v -0.428008 7.601710 -3.542709 +v -0.420309 7.608346 -3.533267 +v -0.408785 7.612781 -3.526958 +v -0.428008 7.578539 -3.528253 +v -0.420309 7.584103 -3.518142 +v -0.408785 7.587820 -3.511385 +v -0.428009 7.554215 -3.516556 +v -0.420309 7.558618 -3.505886 +v -0.408785 7.561560 -3.498757 +v -0.428009 7.529615 -3.508006 +v -0.420309 7.532732 -3.496889 +v -0.408785 7.534814 -3.489461 +v -0.428009 7.505654 -3.502847 +v -0.420309 7.507310 -3.491415 +v -0.408785 7.508416 -3.483777 +v -0.428009 7.482354 -3.501084 +v -0.420309 7.482790 -3.489560 +v -0.408785 7.483080 -3.481860 +v -0.428009 6.288272 -3.501084 +v -0.420309 6.287768 -3.489560 +v -0.408785 6.287432 -3.481860 +v -0.428009 6.266464 -3.502992 +v -0.420309 6.264455 -3.491600 +v -0.408785 6.263113 -3.483988 +v -0.428009 6.246247 -3.508409 +v -0.420309 6.242291 -3.497539 +v -0.408785 6.239647 -3.490276 +v -0.428009 6.227278 -3.517254 +v -0.420309 6.221494 -3.507236 +v -0.408785 6.217629 -3.500542 +v -0.428009 6.210134 -3.529259 +v -0.420309 6.202698 -3.520398 +v -0.408785 6.197730 -3.514477 +v -0.428009 6.195333 -3.544059 +v -0.420309 6.186472 -3.536623 +v -0.408785 6.180552 -3.531655 +v -0.428009 6.183329 -3.561203 +v -0.420309 6.173311 -3.555420 +v -0.408785 6.166617 -3.551555 +v -0.428009 6.174483 -3.580173 +v -0.420309 6.163613 -3.576216 +v -0.408785 6.156350 -3.573573 +v -0.428009 6.169066 -3.600389 +v -0.420309 6.157674 -3.598381 +v -0.408785 6.150063 -3.597039 +v -0.428009 6.167158 -3.622198 +v -0.420309 6.155634 -3.621694 +v -0.408785 6.147934 -3.621358 +vt 0.367483 0.626132 +vt 0.378188 0.625005 +vt 0.378188 0.625005 +vt 0.329686 0.655656 +vt 0.318363 0.657586 +vt 0.329553 0.654983 +vt 0.394574 0.651686 +vt 0.386735 0.656602 +vt 0.386735 0.656602 +vt 0.385807 0.656979 +vt 0.385308 0.657041 +vt 0.385308 0.657041 +vt 0.384806 0.657016 +vt 0.384806 0.657016 +vt 0.384316 0.656903 +vt 0.384316 0.656903 +vt 0.383853 0.656708 +vt 0.383853 0.656708 +vt 0.383430 0.656434 +vt 0.383430 0.656434 +vt 0.383062 0.656092 +vt 0.383062 0.656092 +vt 0.377843 0.647852 +vt 0.377533 0.647428 +vt 0.377533 0.647428 +vt 0.382759 0.655691 +vt 0.377843 0.647852 +vt 0.386287 0.656831 +vt 0.385807 0.656979 +vt 0.373951 0.645463 +vt 0.373427 0.645429 +vt 0.373427 0.645429 +vt 0.377145 0.647018 +vt 0.376691 0.646633 +vt 0.376691 0.646633 +vt 0.376183 0.646286 +vt 0.376183 0.646286 +vt 0.375639 0.645988 +vt 0.375639 0.645988 +vt 0.375074 0.645746 +vt 0.375074 0.645746 +vt 0.374506 0.645570 +vt 0.374506 0.645570 +vt 0.373951 0.645463 +vt 0.333077 0.641859 +vt 0.332581 0.641832 +vt 0.332581 0.641832 +vt 0.377145 0.647018 +vt 0.358818 0.645532 +vt 0.333077 0.641859 +vt 0.386287 0.656831 +vt 0.330254 0.643841 +vt 0.330209 0.644335 +vt 0.330209 0.644335 +vt 0.332099 0.641894 +vt 0.331647 0.642042 +vt 0.331647 0.642042 +vt 0.331238 0.642272 +vt 0.331238 0.642272 +vt 0.330885 0.642577 +vt 0.330885 0.642577 +vt 0.330598 0.642948 +vt 0.330598 0.642948 +vt 0.330385 0.643374 +vt 0.330385 0.643374 +vt 0.330254 0.643841 +vt 0.330166 0.653741 +vt 0.330190 0.654277 +vt 0.330190 0.654277 +vt 0.330166 0.653741 +vt 0.332099 0.641894 +vt 0.331565 0.658501 +vt 0.331862 0.658948 +vt 0.331862 0.658948 +vt 0.330265 0.654868 +vt 0.330389 0.655494 +vt 0.330389 0.655494 +vt 0.330558 0.656138 +vt 0.330558 0.656138 +vt 0.330767 0.656780 +vt 0.330767 0.656780 +vt 0.331009 0.657400 +vt 0.331009 0.657400 +vt 0.331278 0.657980 +vt 0.331278 0.657980 +vt 0.331565 0.658501 +vt 0.334053 0.661928 +vt 0.334332 0.662371 +vt 0.334332 0.662371 +vt 0.334053 0.661928 +vt 0.330265 0.654867 +vt 0.334758 0.666390 +vt 0.334579 0.666882 +vt 0.334579 0.666882 +vt 0.334566 0.662881 +vt 0.334749 0.663442 +vt 0.334749 0.663442 +vt 0.334875 0.664037 +vt 0.334875 0.664037 +vt 0.334940 0.664648 +vt 0.334940 0.664648 +vt 0.334941 0.665255 +vt 0.334941 0.665255 +vt 0.334880 0.665842 +vt 0.334880 0.665842 +vt 0.334758 0.666390 +vt 0.333979 0.668216 +vt 0.333730 0.668668 +vt 0.333730 0.668668 +vt 0.333979 0.668215 +vt 0.334566 0.662881 +vt 0.330443 0.670566 +vt 0.329927 0.670555 +vt 0.329927 0.670555 +vt 0.333401 0.669098 +vt 0.333003 0.669492 +vt 0.333003 0.669492 +vt 0.332547 0.669838 +vt 0.332547 0.669838 +vt 0.332048 0.670126 +vt 0.332048 0.670126 +vt 0.331520 0.670348 +vt 0.331520 0.670348 +vt 0.330979 0.670496 +vt 0.330979 0.670496 +vt 0.330443 0.670566 +vt 0.326566 0.670215 +vt 0.326048 0.670125 +vt 0.326048 0.670125 +vt 0.326566 0.670215 +vt 0.333401 0.669098 +vt 0.322679 0.667795 +vt 0.322412 0.667342 +vt 0.322412 0.667342 +vt 0.325507 0.669960 +vt 0.324959 0.669724 +vt 0.324959 0.669724 +vt 0.324421 0.669424 +vt 0.324421 0.669424 +vt 0.323909 0.669070 +vt 0.323909 0.669070 +vt 0.323439 0.668672 +vt 0.323439 0.668672 +vt 0.323024 0.668243 +vt 0.323024 0.668243 +vt 0.322679 0.667795 +vt 0.317710 0.657893 +vt 0.317492 0.657401 +vt 0.317492 0.657401 +vt 0.317710 0.657893 +vt 0.325507 0.669960 +vt 0.316723 0.652983 +vt 0.316761 0.652446 +vt 0.316761 0.652446 +vt 0.317291 0.656837 +vt 0.317113 0.656218 +vt 0.317113 0.656218 +vt 0.316963 0.655563 +vt 0.316963 0.655563 +vt 0.316846 0.654891 +vt 0.316846 0.654891 +vt 0.316766 0.654224 +vt 0.316766 0.654224 +vt 0.316724 0.653582 +vt 0.316724 0.653582 +vt 0.316723 0.652983 +vt 0.315230 0.626853 +vt 0.315138 0.626327 +vt 0.315138 0.626327 +vt 0.317291 0.656837 +vt 0.318251 0.639727 +vt 0.315230 0.626853 +vt 0.358818 0.645532 +vt 0.315802 0.622041 +vt 0.316049 0.621568 +vt 0.316049 0.621568 +vt 0.315094 0.625743 +vt 0.315099 0.625117 +vt 0.315099 0.625117 +vt 0.315152 0.624468 +vt 0.315152 0.624468 +vt 0.315253 0.623817 +vt 0.315253 0.623817 +vt 0.315398 0.623183 +vt 0.315398 0.623182 +vt 0.315583 0.622584 +vt 0.315583 0.622584 +vt 0.315802 0.622041 +vt 0.318056 0.618203 +vt 0.318353 0.617789 +vt 0.318353 0.617789 +vt 0.318056 0.618203 +vt 0.315094 0.625743 +vt 0.321731 0.616628 +vt 0.322220 0.616772 +vt 0.322220 0.616772 +vt 0.318723 0.617419 +vt 0.319154 0.617105 +vt 0.319154 0.617104 +vt 0.319634 0.616855 +vt 0.319634 0.616855 +vt 0.320147 0.616679 +vt 0.320147 0.616679 +vt 0.320679 0.616581 +vt 0.320679 0.616581 +vt 0.321212 0.616564 +vt 0.321212 0.616564 +vt 0.321731 0.616628 +vt 0.325927 0.618216 +vt 0.326403 0.618440 +vt 0.326403 0.618440 +vt 0.325927 0.618215 +vt 0.318723 0.617419 +vt 0.329046 0.621582 +vt 0.329186 0.622089 +vt 0.329186 0.622089 +vt 0.326881 0.618744 +vt 0.327348 0.619117 +vt 0.327348 0.619117 +vt 0.327788 0.619549 +vt 0.327788 0.619549 +vt 0.328190 0.620027 +vt 0.328190 0.620027 +vt 0.328540 0.620535 +vt 0.328540 0.620535 +vt 0.328828 0.621059 +vt 0.328828 0.621059 +vt 0.329046 0.621582 +vt 0.330293 0.627570 +vt 0.330435 0.628055 +vt 0.330435 0.628054 +vt 0.330293 0.627570 +vt 0.326881 0.618744 +vt 0.333213 0.630008 +vt 0.333717 0.629978 +vt 0.333717 0.629978 +vt 0.330660 0.628512 +vt 0.330961 0.628928 +vt 0.330961 0.628927 +vt 0.331327 0.629289 +vt 0.331327 0.629289 +vt 0.331749 0.629586 +vt 0.331749 0.629586 +vt 0.332214 0.629809 +vt 0.332214 0.629809 +vt 0.332707 0.629951 +vt 0.332707 0.629951 +vt 0.333213 0.630008 +vt 0.378709 0.624989 +vt 0.378709 0.624989 +vt 0.330660 0.628512 +vt 0.318251 0.639727 +vt 0.347624 0.627938 +vt 0.347624 0.627938 +vt 0.382279 0.626727 +vt 0.382588 0.627146 +vt 0.382588 0.627146 +vt 0.379261 0.625049 +vt 0.379827 0.625181 +vt 0.379827 0.625181 +vt 0.380390 0.625382 +vt 0.380390 0.625382 +vt 0.380932 0.625646 +vt 0.380932 0.625646 +vt 0.381438 0.625965 +vt 0.381438 0.625965 +vt 0.381891 0.626329 +vt 0.381891 0.626329 +vt 0.382279 0.626727 +vt 0.395485 0.647711 +vt 0.395714 0.648158 +vt 0.395714 0.648158 +vt 0.395485 0.647711 +vt 0.379261 0.625049 +vt 0.394975 0.651383 +vt 0.394574 0.651686 +vt 0.395861 0.648639 +vt 0.395924 0.649138 +vt 0.395924 0.649138 +vt 0.395898 0.649640 +vt 0.395898 0.649640 +vt 0.395786 0.650130 +vt 0.395786 0.650130 +vt 0.395590 0.650593 +vt 0.395590 0.650593 +vt 0.395317 0.651015 +vt 0.395317 0.651015 +vt 0.394975 0.651383 +vt 0.318363 0.657586 +vt 0.329686 0.655656 +vt 0.329553 0.654983 +vt 0.395861 0.648639 +vt 0.382759 0.655691 +vt 0.347709 0.628654 +vt 0.367525 0.626575 +vt 0.367551 0.626850 +vt 0.347677 0.628380 +vt 0.367483 0.626132 +vt 0.347624 0.627938 +vt 0.367483 0.626132 +vt 0.347624 0.627938 +vt 0.386287 0.656831 +vt 0.386735 0.656602 +vt 0.386287 0.656830 +vt 0.386735 0.656602 +vt 0.386119 0.656417 +vt 0.386515 0.656214 +vt 0.386015 0.656161 +vt 0.386378 0.655975 +vt 0.385806 0.656977 +vt 0.385713 0.656542 +vt 0.385308 0.657041 +vt 0.385807 0.656978 +vt 0.385292 0.656595 +vt 0.385655 0.656271 +vt 0.384806 0.657015 +vt 0.385308 0.657040 +vt 0.384867 0.656573 +vt 0.384905 0.656299 +vt 0.385281 0.656317 +vt 0.384316 0.656902 +vt 0.384806 0.657014 +vt 0.384453 0.656478 +vt 0.383853 0.656707 +vt 0.384316 0.656903 +vt 0.383853 0.656706 +vt 0.384191 0.656068 +vt 0.384538 0.656214 +vt 0.383431 0.656434 +vt 0.383431 0.656433 +vt 0.384062 0.656313 +vt 0.383705 0.656082 +vt 0.383063 0.656092 +vt 0.383063 0.656091 +vt 0.383394 0.655793 +vt 0.383875 0.655863 +vt 0.382759 0.655691 +vt 0.382759 0.655691 +vt 0.383126 0.655438 +vt 0.383599 0.655607 +vt 0.377843 0.647852 +vt 0.377843 0.647852 +vt 0.378212 0.647602 +vt 0.383353 0.655282 +vt 0.377533 0.647428 +vt 0.377533 0.647428 +vt 0.377876 0.647143 +vt 0.378440 0.647448 +vt 0.377145 0.647018 +vt 0.377145 0.647018 +vt 0.377451 0.646694 +vt 0.377641 0.646494 +vt 0.378088 0.646966 +vt 0.376691 0.646633 +vt 0.376691 0.646633 +vt 0.376961 0.646278 +vt 0.377128 0.646059 +vt 0.376184 0.646286 +vt 0.376183 0.646286 +vt 0.376417 0.645907 +vt 0.376561 0.645672 +vt 0.375639 0.645988 +vt 0.375639 0.645988 +vt 0.375834 0.645587 +vt 0.375074 0.645746 +vt 0.375074 0.645746 +vt 0.375228 0.645327 +vt 0.375955 0.645339 +vt 0.374506 0.645570 +vt 0.374506 0.645570 +vt 0.374614 0.645138 +vt 0.375324 0.645069 +vt 0.373951 0.645463 +vt 0.373951 0.645463 +vt 0.374007 0.645020 +vt 0.374681 0.644869 +vt 0.373427 0.645429 +vt 0.373427 0.645429 +vt 0.373440 0.644984 +vt 0.373447 0.644708 +vt 0.374043 0.644746 +vt 0.358818 0.645531 +vt 0.358818 0.645531 +vt 0.358848 0.645087 +vt 0.358867 0.644810 +vt 0.333077 0.641859 +vt 0.333077 0.641859 +vt 0.333120 0.641415 +vt 0.332581 0.641832 +vt 0.332581 0.641832 +vt 0.332564 0.641385 +vt 0.333147 0.641141 +vt 0.332099 0.641893 +vt 0.332099 0.641894 +vt 0.332001 0.641457 +vt 0.332554 0.641109 +vt 0.331647 0.642041 +vt 0.331647 0.642042 +vt 0.331467 0.641633 +vt 0.331940 0.641187 +vt 0.331238 0.642271 +vt 0.331238 0.642272 +vt 0.330981 0.641905 +vt 0.331356 0.641378 +vt 0.330885 0.642577 +vt 0.330560 0.642269 +vt 0.330822 0.641679 +vt 0.330597 0.642948 +vt 0.330598 0.642948 +vt 0.330885 0.642577 +vt 0.330219 0.642710 +vt 0.329984 0.642563 +vt 0.330359 0.642078 +vt 0.330385 0.643374 +vt 0.330385 0.643374 +vt 0.329968 0.643212 +vt 0.329709 0.643113 +vt 0.330254 0.643841 +vt 0.330254 0.643841 +vt 0.329815 0.643759 +vt 0.329542 0.643709 +vt 0.330208 0.644335 +vt 0.330209 0.644335 +vt 0.329764 0.644314 +vt 0.329488 0.644301 +vt 0.330166 0.653741 +vt 0.330166 0.653741 +vt 0.329721 0.653750 +vt 0.329445 0.653755 +vt 0.330190 0.654277 +vt 0.330190 0.654277 +vt 0.329746 0.654315 +vt 0.330265 0.654867 +vt 0.330265 0.654867 +vt 0.329825 0.654939 +vt 0.329471 0.654339 +vt 0.330389 0.655494 +vt 0.330389 0.655494 +vt 0.329955 0.655594 +vt 0.330558 0.656138 +vt 0.330558 0.656138 +vt 0.330131 0.656264 +vt 0.329866 0.656342 +vt 0.330767 0.656780 +vt 0.330087 0.657023 +vt 0.330767 0.656780 +vt 0.331009 0.657400 +vt 0.331009 0.657400 +vt 0.330347 0.656930 +vt 0.330600 0.657575 +vt 0.331278 0.657980 +vt 0.331278 0.657980 +vt 0.330881 0.658181 +vt 0.330346 0.657683 +vt 0.331565 0.658501 +vt 0.331565 0.658501 +vt 0.331184 0.658732 +vt 0.330635 0.658306 +vt 0.331862 0.658948 +vt 0.331862 0.658948 +vt 0.331497 0.659204 +vt 0.331271 0.659362 +vt 0.330948 0.658875 +vt 0.334053 0.661928 +vt 0.334053 0.661928 +vt 0.333685 0.662179 +vt 0.333457 0.662334 +vt 0.334332 0.662372 +vt 0.334331 0.662372 +vt 0.333940 0.662584 +vt 0.333696 0.662715 +vt 0.334566 0.662881 +vt 0.334566 0.662882 +vt 0.334151 0.663044 +vt 0.334749 0.663442 +vt 0.334748 0.663442 +vt 0.334318 0.663558 +vt 0.333894 0.663144 +vt 0.334875 0.664037 +vt 0.334874 0.664037 +vt 0.334435 0.664106 +vt 0.334052 0.663629 +vt 0.334939 0.664648 +vt 0.334939 0.664648 +vt 0.334219 0.664687 +vt 0.334162 0.664150 +vt 0.334941 0.665255 +vt 0.334941 0.665255 +vt 0.334496 0.665233 +vt 0.334495 0.664672 +vt 0.334220 0.665219 +vt 0.334880 0.665842 +vt 0.334880 0.665842 +vt 0.334440 0.665770 +vt 0.334168 0.665726 +vt 0.334758 0.666390 +vt 0.334757 0.666390 +vt 0.334330 0.666264 +vt 0.334065 0.666187 +vt 0.334579 0.666882 +vt 0.334579 0.666882 +vt 0.334166 0.666714 +vt 0.333979 0.668216 +vt 0.333979 0.668215 +vt 0.333581 0.668017 +vt 0.333333 0.667893 +vt 0.333911 0.666610 +vt 0.333730 0.668668 +vt 0.333729 0.668667 +vt 0.333356 0.668424 +vt 0.333124 0.668273 +vt 0.333401 0.669097 +vt 0.333401 0.669097 +vt 0.333066 0.668803 +vt 0.333003 0.669492 +vt 0.333002 0.669491 +vt 0.332711 0.669155 +vt 0.332859 0.668620 +vt 0.332547 0.669838 +vt 0.332547 0.669837 +vt 0.332300 0.669467 +vt 0.332529 0.668946 +vt 0.332048 0.670126 +vt 0.331850 0.669727 +vt 0.332147 0.669236 +vt 0.331520 0.670348 +vt 0.331519 0.670347 +vt 0.332047 0.670126 +vt 0.331374 0.669926 +vt 0.331284 0.669665 +vt 0.331727 0.669480 +vt 0.330979 0.670496 +vt 0.330979 0.670495 +vt 0.330891 0.670058 +vt 0.330837 0.669787 +vt 0.330443 0.670565 +vt 0.330443 0.670564 +vt 0.330419 0.670120 +vt 0.330403 0.669843 +vt 0.329927 0.670555 +vt 0.329927 0.670555 +vt 0.329954 0.670110 +vt 0.326566 0.670215 +vt 0.326566 0.670215 +vt 0.326626 0.669773 +vt 0.329970 0.669835 +vt 0.326048 0.670125 +vt 0.326048 0.670124 +vt 0.326152 0.669691 +vt 0.326216 0.669422 +vt 0.326664 0.669500 +vt 0.325507 0.669960 +vt 0.325507 0.669959 +vt 0.325661 0.669541 +vt 0.324959 0.669724 +vt 0.324959 0.669723 +vt 0.325156 0.669324 +vt 0.325756 0.669282 +vt 0.324421 0.669424 +vt 0.324421 0.669424 +vt 0.324657 0.669046 +vt 0.325278 0.669076 +vt 0.323909 0.669070 +vt 0.323909 0.669069 +vt 0.324180 0.668716 +vt 0.324802 0.668811 +vt 0.323439 0.668672 +vt 0.323439 0.668672 +vt 0.323743 0.668347 +vt 0.323932 0.668146 +vt 0.324348 0.668497 +vt 0.323024 0.668243 +vt 0.323025 0.668242 +vt 0.323362 0.667951 +vt 0.323571 0.667771 +vt 0.322679 0.667795 +vt 0.322679 0.667794 +vt 0.323048 0.667545 +vt 0.323277 0.667390 +vt 0.322412 0.667342 +vt 0.322412 0.667342 +vt 0.322803 0.667130 +vt 0.317711 0.657893 +vt 0.317711 0.657893 +vt 0.318113 0.657703 +vt 0.323046 0.666998 +vt 0.317493 0.657401 +vt 0.317493 0.657401 +vt 0.317906 0.657236 +vt 0.318163 0.657133 +vt 0.317291 0.656837 +vt 0.317292 0.656837 +vt 0.317715 0.656700 +vt 0.317113 0.656218 +vt 0.317113 0.656218 +vt 0.317544 0.656107 +vt 0.317978 0.656616 +vt 0.316963 0.655563 +vt 0.316963 0.655563 +vt 0.317400 0.655475 +vt 0.317811 0.656038 +vt 0.316846 0.654891 +vt 0.317560 0.654786 +vt 0.317670 0.655420 +vt 0.316766 0.654225 +vt 0.316846 0.654891 +vt 0.316766 0.654224 +vt 0.317209 0.654184 +vt 0.317287 0.654826 +vt 0.317484 0.654158 +vt 0.316724 0.653582 +vt 0.316724 0.653582 +vt 0.317169 0.653567 +vt 0.317445 0.653557 +vt 0.316723 0.652983 +vt 0.316723 0.652983 +vt 0.317168 0.652998 +vt 0.317444 0.653008 +vt 0.316761 0.652446 +vt 0.316761 0.652446 +vt 0.317205 0.652488 +vt 0.318253 0.639727 +vt 0.318251 0.639727 +vt 0.318702 0.639701 +vt 0.317479 0.652514 +vt 0.315230 0.626853 +vt 0.315230 0.626853 +vt 0.315666 0.626763 +vt 0.315937 0.626708 +vt 0.318982 0.639685 +vt 0.315138 0.626327 +vt 0.315139 0.626327 +vt 0.315581 0.626272 +vt 0.315855 0.626238 +vt 0.315094 0.625743 +vt 0.315094 0.625743 +vt 0.315539 0.625728 +vt 0.315099 0.625117 +vt 0.315099 0.625117 +vt 0.315544 0.625137 +vt 0.315815 0.625718 +vt 0.315152 0.624468 +vt 0.315153 0.624468 +vt 0.315595 0.624521 +vt 0.315819 0.625149 +vt 0.315253 0.623817 +vt 0.315691 0.623900 +vt 0.315962 0.623953 +vt 0.315869 0.624553 +vt 0.315398 0.623182 +vt 0.315399 0.623183 +vt 0.315253 0.623817 +vt 0.315828 0.623298 +vt 0.316095 0.623369 +vt 0.315583 0.622584 +vt 0.315583 0.622584 +vt 0.316003 0.622733 +vt 0.316263 0.622826 +vt 0.315802 0.622041 +vt 0.315803 0.622041 +vt 0.316207 0.622227 +vt 0.316458 0.622343 +vt 0.316049 0.621568 +vt 0.316049 0.621568 +vt 0.316437 0.621785 +vt 0.318056 0.618203 +vt 0.318056 0.618203 +vt 0.318428 0.618447 +vt 0.318659 0.618598 +vt 0.316678 0.621919 +vt 0.318353 0.617789 +vt 0.318354 0.617790 +vt 0.318693 0.618078 +vt 0.318904 0.618257 +vt 0.318723 0.617419 +vt 0.318724 0.617420 +vt 0.319013 0.617758 +vt 0.319154 0.617105 +vt 0.319155 0.617105 +vt 0.319389 0.617484 +vt 0.319193 0.617969 +vt 0.319634 0.616856 +vt 0.319634 0.616856 +vt 0.319810 0.617266 +vt 0.319535 0.617719 +vt 0.320147 0.616679 +vt 0.320148 0.616680 +vt 0.320331 0.617378 +vt 0.319919 0.617520 +vt 0.320679 0.616581 +vt 0.320679 0.616582 +vt 0.320727 0.617025 +vt 0.320261 0.617111 +vt 0.320756 0.617300 +vt 0.321212 0.616564 +vt 0.321212 0.616565 +vt 0.321192 0.617010 +vt 0.321179 0.617286 +vt 0.321731 0.616628 +vt 0.321731 0.616629 +vt 0.321640 0.617065 +vt 0.321584 0.617337 +vt 0.322220 0.616772 +vt 0.322220 0.616773 +vt 0.322076 0.617194 +vt 0.325927 0.618215 +vt 0.325927 0.618216 +vt 0.325751 0.618625 +vt 0.321987 0.617455 +vt 0.326403 0.618440 +vt 0.326402 0.618441 +vt 0.326187 0.618831 +vt 0.326054 0.619073 +vt 0.325642 0.618878 +vt 0.326881 0.618744 +vt 0.326881 0.618744 +vt 0.326622 0.619107 +vt 0.327347 0.619117 +vt 0.327347 0.619118 +vt 0.327052 0.619451 +vt 0.326461 0.619331 +vt 0.327788 0.619550 +vt 0.327788 0.619550 +vt 0.327462 0.619852 +vt 0.326869 0.619658 +vt 0.328190 0.620027 +vt 0.328190 0.620027 +vt 0.327616 0.620464 +vt 0.327259 0.620040 +vt 0.328540 0.620535 +vt 0.328540 0.620535 +vt 0.328161 0.620769 +vt 0.327836 0.620297 +vt 0.327926 0.620915 +vt 0.328828 0.621059 +vt 0.328828 0.621059 +vt 0.328427 0.621252 +vt 0.328178 0.621372 +vt 0.329046 0.621582 +vt 0.329045 0.621582 +vt 0.328624 0.621727 +vt 0.328363 0.621817 +vt 0.329186 0.622089 +vt 0.329185 0.622089 +vt 0.328753 0.622192 +vt 0.330293 0.627570 +vt 0.330293 0.627570 +vt 0.329860 0.627677 +vt 0.328484 0.622256 +vt 0.330435 0.628055 +vt 0.330435 0.628054 +vt 0.330019 0.628217 +vt 0.329592 0.627743 +vt 0.330660 0.628512 +vt 0.330660 0.628512 +vt 0.330277 0.628742 +vt 0.330040 0.628884 +vt 0.329761 0.628317 +vt 0.330960 0.628928 +vt 0.330961 0.628927 +vt 0.330622 0.629218 +vt 0.330411 0.629398 +vt 0.331327 0.629289 +vt 0.331327 0.629289 +vt 0.331041 0.629632 +vt 0.330864 0.629845 +vt 0.331749 0.629586 +vt 0.331749 0.629586 +vt 0.331524 0.629971 +vt 0.332214 0.629809 +vt 0.332214 0.629809 +vt 0.332055 0.630226 +vt 0.331384 0.630210 +vt 0.332707 0.629951 +vt 0.332707 0.629951 +vt 0.332620 0.630389 +vt 0.331956 0.630485 +vt 0.333213 0.630008 +vt 0.333213 0.630008 +vt 0.333201 0.630455 +vt 0.332566 0.630661 +vt 0.333717 0.629978 +vt 0.333717 0.629978 +vt 0.333763 0.630422 +vt 0.333791 0.630696 +vt 0.333194 0.630731 +vt 0.378188 0.625005 +vt 0.378188 0.625005 +vt 0.378218 0.625449 +vt 0.378236 0.625724 +vt 0.378709 0.624990 +vt 0.378709 0.624990 +vt 0.378692 0.625435 +vt 0.378681 0.625712 +vt 0.379261 0.625049 +vt 0.379261 0.625049 +vt 0.379186 0.625489 +vt 0.379827 0.625181 +vt 0.379827 0.625182 +vt 0.379701 0.625609 +vt 0.379140 0.625761 +vt 0.380390 0.625383 +vt 0.380390 0.625383 +vt 0.380217 0.625793 +vt 0.379623 0.625874 +vt 0.380932 0.625646 +vt 0.380932 0.625647 +vt 0.380716 0.626036 +vt 0.380110 0.626048 +vt 0.381438 0.625965 +vt 0.381438 0.625966 +vt 0.381179 0.626328 +vt 0.381018 0.626553 +vt 0.380582 0.626277 +vt 0.381891 0.626329 +vt 0.381891 0.626330 +vt 0.381592 0.626659 +vt 0.381406 0.626864 +vt 0.382279 0.626727 +vt 0.382278 0.626727 +vt 0.381939 0.627016 +vt 0.381728 0.627194 +vt 0.382588 0.627146 +vt 0.382588 0.627146 +vt 0.382220 0.627397 +vt 0.395485 0.647711 +vt 0.395484 0.647711 +vt 0.395097 0.647930 +vt 0.394857 0.648067 +vt 0.381992 0.627552 +vt 0.395713 0.648158 +vt 0.395712 0.648159 +vt 0.395300 0.648326 +vt 0.395043 0.648431 +vt 0.395861 0.648639 +vt 0.395424 0.648732 +vt 0.395154 0.648790 +vt 0.395923 0.649138 +vt 0.395922 0.649138 +vt 0.395860 0.648639 +vt 0.395477 0.649154 +vt 0.395898 0.649640 +vt 0.395896 0.649640 +vt 0.395455 0.649578 +vt 0.395200 0.649164 +vt 0.395786 0.650130 +vt 0.395360 0.649992 +vt 0.395181 0.649540 +vt 0.395590 0.650592 +vt 0.395589 0.650592 +vt 0.395784 0.650129 +vt 0.395195 0.650384 +vt 0.395097 0.649908 +vt 0.395316 0.651014 +vt 0.394964 0.650741 +vt 0.394746 0.650570 +vt 0.394950 0.650254 +vt 0.395317 0.651015 +vt 0.394974 0.651382 +vt 0.394675 0.651052 +vt 0.394974 0.651383 +vt 0.394574 0.651686 +vt 0.394574 0.651686 +vt 0.394321 0.651320 +vt 0.394489 0.650846 +vt 0.394164 0.651092 +vt 0.367483 0.626132 +vt 0.347624 0.627938 +vt 0.367483 0.626132 +vt 0.347624 0.627938 +vt 0.367483 0.626132 +vt 0.347677 0.628381 +vt 0.367525 0.626575 +vt 0.347709 0.628655 +vt 0.367551 0.626850 +vt 0.386015 0.656160 +vt 0.386515 0.656215 +vt 0.386378 0.655975 +vt 0.386119 0.656417 +vt 0.386735 0.656602 +vt 0.386287 0.656830 +vt 0.386735 0.656602 +vt 0.386287 0.656831 +vt 0.385713 0.656542 +vt 0.385806 0.656977 +vt 0.385655 0.656271 +vt 0.385292 0.656595 +vt 0.385308 0.657041 +vt 0.385807 0.656978 +vt 0.384905 0.656299 +vt 0.385281 0.656318 +vt 0.384867 0.656573 +vt 0.385308 0.657040 +vt 0.384806 0.657015 +vt 0.384453 0.656478 +vt 0.384806 0.657014 +vt 0.384316 0.656902 +vt 0.384191 0.656068 +vt 0.384538 0.656215 +vt 0.384062 0.656313 +vt 0.383853 0.656707 +vt 0.384316 0.656903 +vt 0.383875 0.655863 +vt 0.383431 0.656433 +vt 0.383853 0.656706 +vt 0.383431 0.656434 +vt 0.383394 0.655793 +vt 0.383705 0.656082 +vt 0.383063 0.656091 +vt 0.383063 0.656092 +vt 0.383599 0.655607 +vt 0.383126 0.655438 +vt 0.382759 0.655691 +vt 0.382759 0.655691 +vt 0.383353 0.655282 +vt 0.378212 0.647602 +vt 0.377843 0.647852 +vt 0.377843 0.647852 +vt 0.378440 0.647447 +vt 0.377876 0.647143 +vt 0.377533 0.647428 +vt 0.377533 0.647428 +vt 0.377641 0.646493 +vt 0.378088 0.646966 +vt 0.377451 0.646694 +vt 0.377145 0.647018 +vt 0.377145 0.647018 +vt 0.377128 0.646059 +vt 0.376961 0.646279 +vt 0.376691 0.646633 +vt 0.376691 0.646633 +vt 0.376561 0.645671 +vt 0.376417 0.645907 +vt 0.376183 0.646286 +vt 0.376184 0.646286 +vt 0.375834 0.645587 +vt 0.375639 0.645988 +vt 0.375639 0.645988 +vt 0.375955 0.645339 +vt 0.375228 0.645328 +vt 0.375074 0.645746 +vt 0.375074 0.645746 +vt 0.375324 0.645069 +vt 0.374614 0.645137 +vt 0.374506 0.645570 +vt 0.374506 0.645570 +vt 0.374681 0.644869 +vt 0.374007 0.645020 +vt 0.373951 0.645463 +vt 0.373951 0.645463 +vt 0.373447 0.644708 +vt 0.374042 0.644746 +vt 0.373440 0.644984 +vt 0.373427 0.645429 +vt 0.373427 0.645429 +vt 0.358867 0.644810 +vt 0.358848 0.645086 +vt 0.358818 0.645531 +vt 0.358818 0.645531 +vt 0.333120 0.641416 +vt 0.333077 0.641859 +vt 0.333077 0.641859 +vt 0.333147 0.641141 +vt 0.332564 0.641385 +vt 0.332581 0.641832 +vt 0.332581 0.641832 +vt 0.332554 0.641108 +vt 0.332001 0.641457 +vt 0.332099 0.641894 +vt 0.332099 0.641893 +vt 0.331940 0.641187 +vt 0.331467 0.641632 +vt 0.331647 0.642042 +vt 0.331647 0.642041 +vt 0.331356 0.641378 +vt 0.330981 0.641905 +vt 0.331238 0.642272 +vt 0.331238 0.642271 +vt 0.330822 0.641679 +vt 0.330560 0.642269 +vt 0.330885 0.642577 +vt 0.329984 0.642563 +vt 0.330359 0.642079 +vt 0.330219 0.642710 +vt 0.330885 0.642577 +vt 0.330598 0.642948 +vt 0.330597 0.642948 +vt 0.329710 0.643113 +vt 0.329968 0.643213 +vt 0.330385 0.643374 +vt 0.330385 0.643374 +vt 0.329542 0.643709 +vt 0.329815 0.643760 +vt 0.330254 0.643841 +vt 0.330254 0.643841 +vt 0.329488 0.644300 +vt 0.329764 0.644314 +vt 0.330209 0.644335 +vt 0.330208 0.644336 +vt 0.329445 0.653755 +vt 0.329721 0.653750 +vt 0.330166 0.653741 +vt 0.330166 0.653741 +vt 0.329746 0.654315 +vt 0.330190 0.654277 +vt 0.330190 0.654277 +vt 0.329471 0.654338 +vt 0.329825 0.654938 +vt 0.330265 0.654867 +vt 0.330265 0.654867 +vt 0.329955 0.655594 +vt 0.330389 0.655494 +vt 0.330389 0.655494 +vt 0.329865 0.656341 +vt 0.330130 0.656264 +vt 0.330558 0.656138 +vt 0.330558 0.656138 +vt 0.330088 0.657023 +vt 0.330767 0.656780 +vt 0.330600 0.657575 +vt 0.330347 0.656930 +vt 0.331009 0.657400 +vt 0.331009 0.657400 +vt 0.330767 0.656780 +vt 0.330346 0.657684 +vt 0.330881 0.658181 +vt 0.331278 0.657980 +vt 0.331278 0.657980 +vt 0.330635 0.658306 +vt 0.331184 0.658732 +vt 0.331565 0.658501 +vt 0.331565 0.658501 +vt 0.331271 0.659361 +vt 0.330948 0.658875 +vt 0.331497 0.659203 +vt 0.331862 0.658948 +vt 0.331862 0.658948 +vt 0.333457 0.662334 +vt 0.333685 0.662179 +vt 0.334053 0.661928 +vt 0.334053 0.661928 +vt 0.333697 0.662716 +vt 0.333940 0.662584 +vt 0.334331 0.662372 +vt 0.334332 0.662372 +vt 0.334151 0.663044 +vt 0.334566 0.662882 +vt 0.334566 0.662881 +vt 0.333894 0.663144 +vt 0.334318 0.663557 +vt 0.334748 0.663442 +vt 0.334749 0.663442 +vt 0.334052 0.663629 +vt 0.334435 0.664106 +vt 0.334874 0.664037 +vt 0.334875 0.664037 +vt 0.334161 0.664150 +vt 0.334494 0.664672 +vt 0.334939 0.664648 +vt 0.334939 0.664648 +vt 0.334220 0.665219 +vt 0.334219 0.664687 +vt 0.334496 0.665233 +vt 0.334941 0.665255 +vt 0.334941 0.665255 +vt 0.334167 0.665726 +vt 0.334440 0.665771 +vt 0.334880 0.665842 +vt 0.334880 0.665842 +vt 0.334065 0.666187 +vt 0.334330 0.666265 +vt 0.334757 0.666389 +vt 0.334758 0.666390 +vt 0.334166 0.666714 +vt 0.334579 0.666882 +vt 0.334579 0.666882 +vt 0.333333 0.667893 +vt 0.333910 0.666610 +vt 0.333580 0.668017 +vt 0.333979 0.668215 +vt 0.333979 0.668215 +vt 0.333124 0.668273 +vt 0.333356 0.668424 +vt 0.333729 0.668667 +vt 0.333730 0.668668 +vt 0.333066 0.668803 +vt 0.333401 0.669097 +vt 0.333401 0.669097 +vt 0.332859 0.668620 +vt 0.332711 0.669155 +vt 0.333002 0.669491 +vt 0.333003 0.669492 +vt 0.332529 0.668946 +vt 0.332300 0.669467 +vt 0.332547 0.669837 +vt 0.332547 0.669838 +vt 0.332147 0.669237 +vt 0.331850 0.669727 +vt 0.332048 0.670126 +vt 0.331284 0.669665 +vt 0.331727 0.669479 +vt 0.331374 0.669926 +vt 0.332047 0.670126 +vt 0.331519 0.670347 +vt 0.331520 0.670348 +vt 0.330837 0.669787 +vt 0.330892 0.670058 +vt 0.330979 0.670495 +vt 0.330979 0.670496 +vt 0.330403 0.669843 +vt 0.330418 0.670120 +vt 0.330443 0.670564 +vt 0.330443 0.670565 +vt 0.329953 0.670111 +vt 0.329927 0.670555 +vt 0.329927 0.670555 +vt 0.329970 0.669834 +vt 0.326626 0.669774 +vt 0.326566 0.670215 +vt 0.326566 0.670215 +vt 0.326216 0.669422 +vt 0.326664 0.669500 +vt 0.326152 0.669692 +vt 0.326048 0.670124 +vt 0.326048 0.670125 +vt 0.325661 0.669541 +vt 0.325507 0.669959 +vt 0.325507 0.669960 +vt 0.325756 0.669282 +vt 0.325156 0.669324 +vt 0.324959 0.669723 +vt 0.324959 0.669724 +vt 0.325278 0.669076 +vt 0.324657 0.669046 +vt 0.324421 0.669424 +vt 0.324421 0.669424 +vt 0.324802 0.668811 +vt 0.324180 0.668716 +vt 0.323909 0.669070 +vt 0.323932 0.668145 +vt 0.324348 0.668497 +vt 0.323743 0.668347 +vt 0.323909 0.669069 +vt 0.323439 0.668672 +vt 0.323439 0.668672 +vt 0.323571 0.667771 +vt 0.323362 0.667951 +vt 0.323025 0.668242 +vt 0.323024 0.668243 +vt 0.323277 0.667390 +vt 0.323048 0.667545 +vt 0.322679 0.667794 +vt 0.322679 0.667795 +vt 0.322803 0.667130 +vt 0.322412 0.667342 +vt 0.322412 0.667342 +vt 0.323046 0.666998 +vt 0.318113 0.657703 +vt 0.317711 0.657893 +vt 0.317711 0.657893 +vt 0.318163 0.657133 +vt 0.317906 0.657236 +vt 0.317493 0.657401 +vt 0.317493 0.657401 +vt 0.317715 0.656701 +vt 0.317292 0.656837 +vt 0.317291 0.656837 +vt 0.317978 0.656616 +vt 0.317544 0.656106 +vt 0.317113 0.656218 +vt 0.317113 0.656218 +vt 0.317811 0.656038 +vt 0.317400 0.655475 +vt 0.316963 0.655563 +vt 0.316963 0.655563 +vt 0.317560 0.654786 +vt 0.317670 0.655421 +vt 0.316846 0.654891 +vt 0.316846 0.654891 +vt 0.317484 0.654158 +vt 0.317287 0.654827 +vt 0.317209 0.654183 +vt 0.316766 0.654224 +vt 0.316766 0.654224 +vt 0.317445 0.653557 +vt 0.317169 0.653567 +vt 0.316724 0.653582 +vt 0.316724 0.653582 +vt 0.317444 0.653008 +vt 0.317168 0.652998 +vt 0.316723 0.652983 +vt 0.316723 0.652983 +vt 0.317205 0.652488 +vt 0.316761 0.652446 +vt 0.316761 0.652446 +vt 0.317479 0.652515 +vt 0.318703 0.639701 +vt 0.318251 0.639727 +vt 0.318253 0.639727 +vt 0.315937 0.626707 +vt 0.318982 0.639685 +vt 0.315667 0.626763 +vt 0.315230 0.626852 +vt 0.315230 0.626853 +vt 0.315854 0.626238 +vt 0.315581 0.626272 +vt 0.315139 0.626327 +vt 0.315138 0.626327 +vt 0.315539 0.625728 +vt 0.315094 0.625743 +vt 0.315094 0.625743 +vt 0.315815 0.625719 +vt 0.315544 0.625137 +vt 0.315099 0.625117 +vt 0.315099 0.625117 +vt 0.315820 0.625149 +vt 0.315595 0.624521 +vt 0.315153 0.624468 +vt 0.315152 0.624468 +vt 0.315962 0.623952 +vt 0.315869 0.624553 +vt 0.315691 0.623900 +vt 0.315253 0.623817 +vt 0.316095 0.623370 +vt 0.315828 0.623298 +vt 0.315253 0.623817 +vt 0.315399 0.623183 +vt 0.315398 0.623182 +vt 0.316263 0.622826 +vt 0.316003 0.622733 +vt 0.315583 0.622584 +vt 0.315583 0.622584 +vt 0.316458 0.622343 +vt 0.316207 0.622227 +vt 0.315803 0.622041 +vt 0.315802 0.622041 +vt 0.316437 0.621785 +vt 0.316049 0.621568 +vt 0.316049 0.621568 +vt 0.318659 0.618599 +vt 0.316678 0.621920 +vt 0.318428 0.618447 +vt 0.318056 0.618203 +vt 0.318056 0.618203 +vt 0.318904 0.618257 +vt 0.318693 0.618077 +vt 0.318354 0.617789 +vt 0.318353 0.617789 +vt 0.319013 0.617758 +vt 0.318724 0.617420 +vt 0.318723 0.617419 +vt 0.319193 0.617968 +vt 0.319389 0.617484 +vt 0.319155 0.617105 +vt 0.319154 0.617105 +vt 0.319535 0.617719 +vt 0.319810 0.617266 +vt 0.319634 0.616856 +vt 0.319634 0.616856 +vt 0.320331 0.617378 +vt 0.319918 0.617520 +vt 0.320147 0.616680 +vt 0.320147 0.616679 +vt 0.320756 0.617299 +vt 0.320260 0.617110 +vt 0.320727 0.617024 +vt 0.320679 0.616582 +vt 0.320679 0.616581 +vt 0.321179 0.617286 +vt 0.321192 0.617010 +vt 0.321212 0.616565 +vt 0.321212 0.616564 +vt 0.321584 0.617336 +vt 0.321640 0.617066 +vt 0.321731 0.616629 +vt 0.321731 0.616629 +vt 0.322076 0.617193 +vt 0.322220 0.616773 +vt 0.322220 0.616772 +vt 0.321987 0.617456 +vt 0.325751 0.618624 +vt 0.325927 0.618216 +vt 0.325927 0.618216 +vt 0.326054 0.619073 +vt 0.325642 0.618878 +vt 0.326188 0.618831 +vt 0.326402 0.618441 +vt 0.326403 0.618440 +vt 0.326622 0.619107 +vt 0.326881 0.618744 +vt 0.326881 0.618744 +vt 0.326461 0.619331 +vt 0.327052 0.619451 +vt 0.327347 0.619118 +vt 0.327347 0.619117 +vt 0.326869 0.619658 +vt 0.327461 0.619852 +vt 0.327788 0.619550 +vt 0.327788 0.619550 +vt 0.327616 0.620464 +vt 0.327259 0.620040 +vt 0.328190 0.620027 +vt 0.328190 0.620027 +vt 0.327926 0.620915 +vt 0.327835 0.620297 +vt 0.328161 0.620769 +vt 0.328540 0.620535 +vt 0.328540 0.620535 +vt 0.328178 0.621372 +vt 0.328427 0.621252 +vt 0.328828 0.621059 +vt 0.328828 0.621059 +vt 0.328363 0.621817 +vt 0.328624 0.621727 +vt 0.329045 0.621582 +vt 0.329046 0.621582 +vt 0.328753 0.622193 +vt 0.329185 0.622089 +vt 0.329186 0.622089 +vt 0.328484 0.622257 +vt 0.329860 0.627677 +vt 0.330293 0.627570 +vt 0.330293 0.627570 +vt 0.329592 0.627743 +vt 0.330019 0.628217 +vt 0.330435 0.628054 +vt 0.330435 0.628055 +vt 0.330040 0.628884 +vt 0.329761 0.628317 +vt 0.330277 0.628741 +vt 0.330660 0.628512 +vt 0.330660 0.628512 +vt 0.330411 0.629399 +vt 0.330622 0.629218 +vt 0.330961 0.628927 +vt 0.330960 0.628928 +vt 0.330864 0.629845 +vt 0.331041 0.629632 +vt 0.331327 0.629289 +vt 0.331327 0.629289 +vt 0.331524 0.629972 +vt 0.331749 0.629586 +vt 0.331749 0.629586 +vt 0.331383 0.630210 +vt 0.332055 0.630227 +vt 0.332214 0.629809 +vt 0.332214 0.629809 +vt 0.331956 0.630485 +vt 0.332620 0.630389 +vt 0.332707 0.629951 +vt 0.332707 0.629951 +vt 0.332566 0.630661 +vt 0.333201 0.630455 +vt 0.333213 0.630008 +vt 0.333213 0.630008 +vt 0.333791 0.630697 +vt 0.333194 0.630732 +vt 0.333763 0.630421 +vt 0.333717 0.629978 +vt 0.333717 0.629978 +vt 0.378236 0.625725 +vt 0.378218 0.625449 +vt 0.378188 0.625005 +vt 0.378188 0.625005 +vt 0.378681 0.625712 +vt 0.378692 0.625435 +vt 0.378709 0.624990 +vt 0.378709 0.624990 +vt 0.379187 0.625488 +vt 0.379261 0.625049 +vt 0.379261 0.625049 +vt 0.379140 0.625761 +vt 0.379701 0.625609 +vt 0.379827 0.625182 +vt 0.379827 0.625181 +vt 0.379623 0.625874 +vt 0.380217 0.625793 +vt 0.380390 0.625383 +vt 0.380390 0.625383 +vt 0.380110 0.626048 +vt 0.380716 0.626036 +vt 0.380932 0.625647 +vt 0.380932 0.625646 +vt 0.381019 0.626553 +vt 0.380581 0.626277 +vt 0.381179 0.626328 +vt 0.381438 0.625966 +vt 0.381438 0.625965 +vt 0.381406 0.626864 +vt 0.381592 0.626659 +vt 0.381891 0.626330 +vt 0.381891 0.626329 +vt 0.381728 0.627194 +vt 0.381939 0.627015 +vt 0.382278 0.626727 +vt 0.382279 0.626727 +vt 0.382220 0.627397 +vt 0.382588 0.627146 +vt 0.382588 0.627146 +vt 0.394857 0.648067 +vt 0.381992 0.627552 +vt 0.395097 0.647931 +vt 0.395484 0.647711 +vt 0.395485 0.647711 +vt 0.395043 0.648430 +vt 0.395300 0.648326 +vt 0.395712 0.648159 +vt 0.395713 0.648158 +vt 0.395154 0.648790 +vt 0.395860 0.648639 +vt 0.395477 0.649154 +vt 0.395425 0.648732 +vt 0.395922 0.649138 +vt 0.395861 0.648639 +vt 0.395200 0.649164 +vt 0.395456 0.649578 +vt 0.395896 0.649640 +vt 0.395898 0.649640 +vt 0.395923 0.649138 +vt 0.395181 0.649540 +vt 0.395361 0.649993 +vt 0.395786 0.650130 +vt 0.395097 0.649907 +vt 0.395195 0.650384 +vt 0.395784 0.650129 +vt 0.395589 0.650592 +vt 0.394746 0.650570 +vt 0.394951 0.650254 +vt 0.394964 0.650741 +vt 0.395316 0.651014 +vt 0.395590 0.650592 +vt 0.394675 0.651052 +vt 0.394974 0.651382 +vt 0.395317 0.651015 +vt 0.394490 0.650846 +vt 0.394321 0.651320 +vt 0.394574 0.651686 +vt 0.394574 0.651686 +vt 0.394974 0.651383 +vt 0.394164 0.651092 +vn 0.0155 0.8728 0.4877 +vn -0.0022 0.8967 0.4426 +vn 0.0023 0.8967 0.4426 +vn 0.9897 0.0588 0.1308 +vn 0.9880 -0.0847 -0.1291 +vn 1.0000 0.0012 -0.0027 +vn 0.0279 -0.9991 -0.0324 +vn -0.0022 -1.0000 -0.0043 +vn 0.0023 -1.0000 -0.0043 +vn 0.0022 -0.9389 -0.3443 +vn -0.0026 -0.8660 -0.5000 +vn 0.0026 -0.8660 -0.5000 +vn -0.0024 -0.7661 -0.6428 +vn 0.0024 -0.7660 -0.6428 +vn -0.0023 -0.6428 -0.7660 +vn 0.0021 -0.6428 -0.7660 +vn -0.0021 -0.5000 -0.8660 +vn 0.0023 -0.5000 -0.8660 +vn -0.0023 -0.3420 -0.9397 +vn 0.0023 -0.3420 -0.9397 +vn -0.0026 -0.1736 -0.9848 +vn 0.0026 -0.1736 -0.9848 +vn 0.0035 -0.0013 -1.0000 +vn -0.0025 -0.1360 -0.9907 +vn 0.0025 -0.1360 -0.9907 +vn 0.0278 0.0326 -0.9991 +vn -0.0660 -0.1305 -0.9893 +vn 0.0026 -0.9844 -0.1760 +vn -0.0983 -0.9635 -0.2489 +vn 0.0027 -0.7699 -0.6382 +vn -0.0027 -0.8496 -0.5274 +vn 0.0031 -0.8495 -0.5275 +vn 0.0024 -0.2488 -0.9685 +vn -0.0022 -0.3520 -0.9360 +vn 0.0023 -0.3527 -0.9357 +vn -0.0023 -0.4438 -0.8961 +vn 0.0023 -0.4440 -0.8960 +vn -0.0019 -0.5294 -0.8484 +vn 0.0019 -0.5292 -0.8485 +vn -0.0024 -0.6116 -0.7912 +vn 0.0024 -0.6109 -0.7917 +vn -0.0024 -0.6913 -0.7225 +vn 0.0024 -0.6913 -0.7225 +vn -0.0952 -0.8268 -0.5543 +vn 0.0038 -0.7631 -0.6462 +vn -0.0022 -0.8660 -0.5000 +vn 0.0022 -0.8654 -0.5010 +vn -0.0990 -0.3409 -0.9349 +vn 0.0567 -0.7529 -0.6557 +vn -0.0558 -0.8443 -0.5330 +vn -0.0982 -0.9921 -0.0782 +vn 0.0023 -0.6781 0.7349 +vn -0.0026 -0.5388 0.8424 +vn 0.0029 -0.5389 0.8424 +vn 0.0022 -0.9426 -0.3340 +vn -0.0022 -0.9894 -0.1450 +vn 0.0022 -0.9893 -0.1456 +vn -0.0026 -0.9986 0.0523 +vn 0.0026 -0.9986 0.0521 +vn -0.0022 -0.9684 0.2493 +vn 0.0022 -0.9684 0.2495 +vn -0.0022 -0.9005 0.4348 +vn 0.0022 -0.9002 0.4354 +vn -0.0021 -0.8005 0.5993 +vn 0.0021 -0.8000 0.6000 +vn -0.0987 -0.5986 0.7950 +vn 0.0026 -0.5352 0.8447 +vn -0.0025 -0.4554 0.8903 +vn 0.0025 -0.4554 0.8903 +vn -0.0758 -0.4284 0.9004 +vn -0.0967 -0.9666 -0.2374 +vn 0.0026 -0.0205 0.9998 +vn -0.0026 0.0677 0.9977 +vn 0.0027 0.0677 0.9977 +vn 0.0024 -0.3918 0.9200 +vn -0.0023 -0.3281 0.9446 +vn 0.0023 -0.3275 0.9448 +vn -0.0020 -0.2710 0.9626 +vn 0.0020 -0.2708 0.9626 +vn -0.0023 -0.2145 0.9767 +vn 0.0023 -0.2147 0.9767 +vn -0.0023 -0.1557 0.9878 +vn 0.0023 -0.1563 0.9877 +vn -0.0023 -0.0910 0.9958 +vn 0.0023 -0.0922 0.9957 +vn -0.0954 0.0803 0.9922 +vn 0.0016 0.0625 0.9980 +vn -0.0025 -0.0664 0.9978 +vn 0.0025 -0.0663 0.9978 +vn -0.1252 0.1325 0.9833 +vn -0.0988 -0.2968 0.9498 +vn 0.0025 -0.7480 0.6637 +vn -0.0024 -0.8212 0.5706 +vn 0.0024 -0.8212 0.5706 +vn 0.0024 -0.1903 0.9817 +vn -0.0023 -0.2940 0.9558 +vn 0.0023 -0.2948 0.9556 +vn -0.0024 -0.3923 0.9198 +vn 0.0023 -0.3925 0.9197 +vn -0.0023 -0.4844 0.8748 +vn 0.0024 -0.4842 0.8750 +vn -0.0023 -0.5732 0.8194 +vn 0.0024 -0.5725 0.8199 +vn -0.0023 -0.6595 0.7517 +vn 0.0023 -0.6595 0.7517 +vn -0.1002 -0.6773 0.7289 +vn 0.0018 -0.8448 0.5351 +vn -0.0025 -0.9086 0.4176 +vn 0.0026 -0.9086 0.4176 +vn -0.1171 -0.7942 0.5963 +vn -0.0965 -0.0906 0.9912 +vn 0.0026 -0.8745 -0.4850 +vn -0.0023 -0.7958 -0.6056 +vn 0.0023 -0.7958 -0.6056 +vn 0.0024 -0.9593 0.2823 +vn -0.0023 -0.9880 0.1543 +vn 0.0024 -0.9881 0.1536 +vn -0.0022 -0.9996 0.0267 +vn 0.0022 -0.9996 0.0264 +vn -0.0024 -0.9950 -0.0996 +vn 0.0023 -0.9951 -0.0993 +vn -0.0024 -0.9741 -0.2260 +vn 0.0023 -0.9743 -0.2253 +vn -0.0023 -0.9352 -0.3541 +vn 0.0023 -0.9356 -0.3530 +vn -0.0999 -0.9126 -0.3964 +vn 0.0019 -0.7819 -0.6233 +vn -0.0024 -0.6992 -0.7149 +vn 0.0024 -0.6992 -0.7149 +vn -0.1235 -0.8189 -0.5605 +vn -0.0968 -0.9224 0.3738 +vn 0.0024 -0.0345 -0.9994 +vn -0.0023 0.0951 -0.9955 +vn 0.0023 0.0952 -0.9955 +vn 0.0024 -0.6088 -0.7933 +vn -0.0023 -0.5254 -0.8508 +vn 0.0023 -0.5247 -0.8513 +vn -0.0023 -0.4387 -0.8986 +vn 0.0023 -0.4384 -0.8988 +vn -0.0023 -0.3496 -0.9369 +vn 0.0024 -0.3499 -0.9368 +vn -0.0024 -0.2552 -0.9669 +vn 0.0023 -0.2560 -0.9667 +vn -0.0023 -0.1533 -0.9882 +vn 0.0023 -0.1533 -0.9882 +vn -0.1002 -0.1297 -0.9865 +vn 0.0021 0.1030 -0.9947 +vn -0.0023 0.1812 -0.9834 +vn 0.0023 0.1812 -0.9834 +vn -0.1177 0.0245 -0.9927 +vn -0.0964 -0.6821 -0.7249 +vn 0.0023 0.5609 -0.8279 +vn -0.0023 0.6250 -0.7806 +vn 0.0023 0.6250 -0.7806 +vn 0.0024 0.2491 -0.9685 +vn -0.0023 0.3026 -0.9531 +vn 0.0024 0.3032 -0.9529 +vn -0.0024 0.3536 -0.9354 +vn 0.0024 0.3537 -0.9353 +vn -0.0024 0.4021 -0.9156 +vn 0.0024 0.4019 -0.9157 +vn -0.0024 0.4508 -0.8926 +vn 0.0023 0.4503 -0.8929 +vn -0.0023 0.5026 -0.8645 +vn 0.0023 0.5016 -0.8651 +vn -0.0998 0.4760 -0.8738 +vn 0.0016 0.3281 -0.9446 +vn -0.0024 0.4241 -0.9056 +vn 0.0024 0.4241 -0.9056 +vn -0.0966 0.1512 -0.9838 +vn 0.0189 0.5252 -0.8508 +vn -0.1239 0.2568 -0.9585 +vn -0.0772 -0.8596 -0.5052 +vn 0.0024 0.8372 -0.5468 +vn -0.0026 0.8871 -0.4616 +vn 0.0025 0.8871 -0.4616 +vn 0.0023 0.5047 -0.8633 +vn -0.0023 0.5689 -0.8224 +vn 0.0023 0.5695 -0.8220 +vn -0.0024 0.6274 -0.7787 +vn 0.0023 0.6276 -0.7786 +vn -0.0023 0.6812 -0.7321 +vn 0.0024 0.6810 -0.7323 +vn -0.0023 0.7328 -0.6805 +vn 0.0023 0.7323 -0.6810 +vn -0.0023 0.7833 -0.6216 +vn 0.0023 0.7834 -0.6216 +vn -0.1002 0.7768 -0.6217 +vn 0.0015 0.8957 -0.4447 +vn -0.0026 0.9534 -0.3018 +vn 0.0026 0.9537 -0.3008 +vn -0.1304 0.8570 -0.4986 +vn -0.0965 0.4149 -0.9048 +vn 0.0026 0.7196 0.6943 +vn -0.0023 0.6043 0.7968 +vn 0.0022 0.6043 0.7968 +vn 0.0024 0.9895 -0.1442 +vn -0.0023 1.0000 0.0058 +vn 0.0023 1.0000 0.0063 +vn -0.0023 0.9880 0.1546 +vn 0.0022 0.9880 0.1547 +vn -0.0022 0.9544 0.2987 +vn 0.0023 0.9544 0.2985 +vn -0.0023 0.8993 0.4373 +vn 0.0024 0.8995 0.4369 +vn -0.0023 0.8221 0.5694 +vn 0.0023 0.8225 0.5688 +vn -0.0993 0.7804 0.6173 +vn 0.0018 0.5881 0.8088 +vn -0.0025 0.4836 0.8753 +vn 0.0025 0.4836 0.8753 +vn -0.1245 0.6395 0.7586 +vn -0.0973 0.9659 -0.2398 +vn 0.0024 -0.2267 0.9740 +vn -0.0020 -0.3476 0.9376 +vn 0.0026 -0.3474 0.9377 +vn 0.0024 0.3764 0.9264 +vn -0.0023 0.2816 0.9595 +vn 0.0023 0.2808 0.9598 +vn -0.0023 0.1862 0.9825 +vn 0.0023 0.1860 0.9826 +vn -0.0023 0.0911 0.9958 +vn 0.0023 0.0914 0.9958 +vn -0.0024 -0.0069 1.0000 +vn 0.0023 -0.0061 1.0000 +vn -0.0023 -0.1100 0.9939 +vn 0.0023 -0.1100 0.9939 +vn -0.1003 -0.1315 0.9862 +vn 0.0032 -0.3488 0.9372 +vn -0.0026 -0.1874 0.9823 +vn 0.0026 -0.1870 0.9824 +vn -0.0618 -0.2202 0.9735 +vn -0.0964 0.4652 0.8799 +vn 0.0026 0.8314 0.5557 +vn -0.0026 0.9141 0.4054 +vn 0.0031 0.9141 0.4056 +vn 0.0023 -0.0212 0.9998 +vn -0.0023 0.1483 0.9889 +vn 0.0022 0.1485 0.9889 +vn -0.0023 0.3098 0.9508 +vn 0.0023 0.3098 0.9508 +vn -0.0016 0.4622 0.8868 +vn 0.0016 0.4622 0.8868 +vn -0.0023 0.6025 0.7981 +vn 0.0022 0.6024 0.7982 +vn -0.0022 0.7272 0.6865 +vn 0.0023 0.7270 0.6867 +vn -0.0973 0.8782 0.4683 +vn -0.0025 0.8247 0.5656 +vn 0.0025 0.8247 0.5656 +vn -0.0979 0.0781 0.9921 +vn -0.1012 0.3938 -0.9136 +vn -0.0021 0.9019 0.4320 +vn 0.0027 0.9019 0.4320 +vn 0.0025 0.1429 0.9897 +vn -0.0026 0.0016 1.0000 +vn 0.0026 0.0016 1.0000 +vn 0.0024 0.7434 0.6689 +vn -0.0023 0.6626 0.7490 +vn 0.0024 0.6620 0.7495 +vn -0.0024 0.5750 0.8182 +vn 0.0023 0.5748 0.8183 +vn -0.0023 0.4821 0.8761 +vn 0.0024 0.4823 0.8760 +vn -0.0024 0.3815 0.9244 +vn 0.0024 0.3822 0.9241 +vn -0.0023 0.2713 0.9625 +vn 0.0023 0.2712 0.9625 +vn -0.1001 0.2362 0.9665 +vn 0.0013 -0.0040 1.0000 +vn -0.0026 -0.1737 0.9848 +vn 0.0026 -0.1736 0.9848 +vn -0.1395 0.0522 0.9888 +vn -0.0965 0.8029 0.5883 +vn 0.0024 -0.9852 0.1713 +vn -0.0587 -0.9886 0.1387 +vn 0.0021 -0.3443 0.9389 +vn -0.0021 -0.5000 0.8660 +vn 0.0023 -0.5000 0.8660 +vn -0.0024 -0.6428 0.7660 +vn 0.0024 -0.6428 0.7660 +vn -0.0026 -0.7660 0.6428 +vn 0.0023 -0.7660 0.6428 +vn -0.0023 -0.8660 0.5000 +vn 0.0026 -0.8660 0.5000 +vn -0.0023 -0.9397 0.3420 +vn 0.0023 -0.9397 0.3420 +vn -0.0982 -0.9589 0.2661 +vn -0.9928 0.1048 -0.0574 +vn -1.0000 0.0009 -0.0025 +vn -0.9896 -0.1315 0.0589 +vn -0.0982 -0.2490 0.9635 +vn -0.0586 -0.1389 -0.9886 +vn 1.0000 0.0003 0.0017 +vn 0.9239 0.3421 0.1712 +vn 0.9808 0.1739 0.0883 +vn 0.9239 0.3451 0.1653 +vn 0.7071 0.6322 0.3166 +vn 0.7072 0.6377 0.3054 +vn 0.3827 0.8260 0.4139 +vn 0.3827 0.8332 0.3991 +vn 0.3807 -0.9107 -0.1603 +vn 0.3825 -0.9239 -0.0045 +vn 0.7039 -0.6996 -0.1228 +vn 0.7069 -0.7073 -0.0032 +vn 0.9210 -0.3839 -0.0670 +vn 0.9237 -0.3832 -0.0015 +vn 0.9788 -0.2041 -0.0178 +vn 0.9895 -0.1000 -0.1048 +vn 0.7030 -0.6683 -0.2432 +vn 0.9203 -0.3676 -0.1337 +vn 0.3806 -0.8009 -0.4624 +vn 0.3800 -0.8694 -0.3159 +vn 0.9205 -0.3384 -0.1954 +vn 0.9884 -0.0695 -0.1349 +vn 0.3806 -0.7082 -0.5947 +vn 0.7030 -0.6162 -0.3551 +vn 0.9205 -0.2993 -0.2511 +vn 0.9788 -0.1676 -0.1173 +vn 0.9885 -0.0452 -0.1443 +vn 0.7030 -0.4572 -0.5448 +vn 0.7029 -0.5448 -0.4572 +vn 0.9205 -0.2511 -0.2993 +vn 0.3805 -0.4624 -0.8009 +vn 0.3801 -0.5946 -0.7086 +vn 0.7032 -0.3553 -0.6159 +vn 0.9788 -0.1175 -0.1677 +vn 0.9885 0.0068 -0.1511 +vn 0.3805 -0.3163 -0.8690 +vn 0.7032 -0.2430 -0.6682 +vn 0.9205 -0.1950 -0.3385 +vn 0.9205 -0.1336 -0.3671 +vn 0.3810 -0.1603 -0.9106 +vn 0.7040 -0.1227 -0.6995 +vn 0.9207 -0.0665 -0.3845 +vn 0.9885 0.0584 -0.1398 +vn 0.3658 -0.0085 -0.9307 +vn 0.6964 -0.0058 -0.7176 +vn 0.9202 -0.0019 -0.3914 +vn 0.9884 0.0823 -0.1277 +vn 0.3820 -0.0041 -0.9241 +vn 0.7069 -0.0032 -0.7073 +vn 0.9239 -0.0017 -0.3827 +vn 0.9893 0.0968 -0.1088 +vn 0.3862 -0.1257 -0.9138 +vn 0.7111 -0.0963 -0.6965 +vn 0.9261 -0.0524 -0.3735 +vn 0.9909 0.0950 -0.0953 +vn 0.3851 -0.2321 -0.8932 +vn 0.7102 -0.1769 -0.6814 +vn 0.9258 -0.0950 -0.3659 +vn 0.9814 -0.0374 -0.1882 +vn 0.9913 0.0861 -0.0997 +vn 0.3848 -0.3255 -0.8637 +vn 0.7098 -0.2484 -0.6591 +vn 0.9256 -0.1335 -0.3542 +vn 0.9813 -0.0582 -0.1833 +vn 0.3848 -0.4098 -0.8271 +vn 0.7096 -0.3128 -0.6313 +vn 0.9255 -0.1682 -0.3394 +vn 0.9813 -0.0767 -0.1765 +vn 0.3846 -0.4885 -0.7832 +vn 0.7097 -0.3728 -0.5978 +vn 0.9255 -0.2009 -0.3210 +vn 0.3847 -0.5642 -0.7306 +vn 0.7098 -0.4308 -0.5573 +vn 0.9256 -0.2318 -0.2992 +vn 0.9911 0.0363 -0.1283 +vn 0.3846 -0.6385 -0.6666 +vn 0.7100 -0.4873 -0.5083 +vn 0.9258 -0.2619 -0.2725 +vn 0.9911 0.0235 -0.1310 +vn 0.3846 -0.7126 -0.5868 +vn 0.7101 -0.5438 -0.4473 +vn 0.9258 -0.2922 -0.2396 +vn 0.9912 0.0099 -0.1322 +vn 0.3828 -0.7847 -0.4876 +vn 0.7072 -0.6005 -0.3732 +vn 0.9239 -0.3249 -0.2019 +vn 0.9811 -0.1570 -0.1132 +vn 0.9912 -0.0045 -0.1321 +vn 0.3835 -0.7363 -0.5576 +vn 0.7079 -0.5630 -0.4264 +vn 0.9242 -0.3046 -0.2306 +vn 0.9794 -0.1720 -0.1063 +vn 0.3824 -0.7070 -0.5950 +vn 0.7070 -0.5411 -0.4553 +vn 0.9239 -0.2928 -0.2464 +vn 0.3872 -0.7984 -0.4611 +vn 0.7129 -0.6077 -0.3499 +vn 0.9273 -0.3249 -0.1857 +vn 0.9910 -0.0114 -0.1333 +vn 0.3878 -0.8694 -0.3062 +vn 0.7136 -0.6609 -0.2324 +vn 0.9277 -0.3523 -0.1231 +vn 0.9917 -0.0222 -0.1269 +vn 0.3879 -0.9119 -0.1340 +vn 0.7141 -0.6927 -0.1013 +vn 0.9279 -0.3689 -0.0532 +vn 0.9917 -0.0446 -0.1203 +vn 0.3884 -0.9203 0.0482 +vn 0.7143 -0.6989 0.0370 +vn 0.9281 -0.3719 0.0204 +vn 0.9918 -0.0663 -0.1093 +vn 0.3884 -0.8923 0.2299 +vn 0.9280 -0.3609 0.0930 +vn 0.9918 -0.0862 -0.0941 +vn 0.3882 -0.8297 0.4011 +vn 0.7139 -0.6304 0.3048 +vn 0.7148 -0.6775 0.1731 +vn 0.9279 -0.3357 0.1623 +vn 0.9821 -0.1771 0.0643 +vn 0.9919 -0.1031 -0.0747 +vn 0.3879 -0.7374 0.5530 +vn 0.7136 -0.5605 0.4202 +vn 0.9277 -0.2987 0.2239 +vn 0.9820 -0.1614 0.0977 +vn 0.3871 -0.6231 0.6796 +vn 0.7127 -0.4744 0.5167 +vn 0.9272 -0.2536 0.2758 +vn 0.9820 -0.1404 0.1267 +vn 0.3829 -0.4982 0.7779 +vn 0.7075 -0.3812 0.5951 +vn 0.9241 -0.2061 0.3218 +vn 0.9812 -0.1172 0.1532 +vn 0.3828 -0.4921 0.7818 +vn 0.7073 -0.3765 0.5983 +vn 0.9240 -0.2036 0.3236 +vn 0.9808 -0.1045 0.1649 +vn 0.3851 -0.4202 0.8217 +vn 0.7097 -0.3206 0.6274 +vn 0.9253 -0.1721 0.3378 +vn 0.3840 -0.3581 0.8511 +vn 0.7088 -0.2736 0.6502 +vn 0.9251 -0.1474 0.3501 +vn 0.9908 -0.1308 0.0349 +vn 0.3838 -0.3024 0.8725 +vn 0.7086 -0.2312 0.6666 +vn 0.9248 -0.1246 0.3594 +vn 0.3837 -0.2501 0.8890 +vn 0.7084 -0.1912 0.6794 +vn 0.9247 -0.1031 0.3664 +vn 0.9810 -0.0581 0.1851 +vn 0.7085 -0.1515 0.6892 +vn 0.9810 -0.0472 0.1881 +vn 0.3841 -0.1981 0.9018 +vn 0.3838 -0.1440 0.9121 +vn 0.7085 -0.1099 0.6971 +vn 0.9252 -0.0826 0.3703 +vn 0.9248 -0.0590 0.3758 +vn 0.3836 -0.0849 0.9196 +vn 0.7086 -0.0646 0.7027 +vn 0.9250 -0.0345 0.3784 +vn 0.9908 -0.1122 0.0760 +vn 0.3834 -0.0161 0.9234 +vn 0.7087 -0.0119 0.7054 +vn 0.9251 -0.0060 0.3797 +vn 0.9909 -0.1066 0.0826 +vn 0.3829 0.0623 0.9217 +vn 0.7073 0.0477 0.7053 +vn 0.9240 0.0257 0.3815 +vn 0.9809 0.0049 0.1947 +vn 0.9909 -0.1003 0.0894 +vn 0.3825 0.0598 0.9220 +vn 0.7068 0.0460 0.7059 +vn 0.9237 0.0250 0.3824 +vn 0.9799 0.0147 0.1989 +vn 0.3813 -0.0613 0.9224 +vn 0.7048 -0.0469 0.7078 +vn 0.9219 -0.0256 0.3865 +vn 0.9792 0.0003 0.2027 +vn 0.3806 -0.1735 0.9083 +vn 0.7043 -0.1334 0.6973 +vn 0.9217 -0.0732 0.3809 +vn 0.3810 -0.2728 0.8834 +vn 0.7048 -0.2097 0.6778 +vn 0.9220 -0.1146 0.3698 +vn 0.9891 -0.1193 0.0860 +vn 0.3814 -0.3632 0.8501 +vn 0.7049 -0.2788 0.6522 +vn 0.9221 -0.1523 0.3557 +vn 0.9892 -0.1277 0.0716 +vn 0.3813 -0.4477 0.8088 +vn 0.7049 -0.3435 0.6206 +vn 0.9796 -0.0882 0.1804 +vn 0.9893 -0.1340 0.0577 +vn 0.3813 -0.5294 0.7579 +vn 0.7049 -0.4061 0.5815 +vn 0.9221 -0.2216 0.3173 +vn 0.9217 -0.1868 0.3399 +vn 0.9796 -0.1062 0.1706 +vn 0.3811 -0.6097 0.6950 +vn 0.7048 -0.4678 0.5334 +vn 0.9219 -0.2553 0.2913 +vn 0.9795 -0.1241 0.1586 +vn 0.3813 -0.6899 0.6154 +vn 0.7049 -0.5294 0.4721 +vn 0.9220 -0.2891 0.2577 +vn 0.9792 -0.1424 0.1442 +vn 0.3748 -0.7605 0.5302 +vn 0.7015 -0.5849 0.4073 +vn 0.9216 -0.3189 0.2213 +vn 0.3819 -0.7795 0.4965 +vn 0.7060 -0.5972 0.3807 +vn 0.9230 -0.3244 0.2070 +vn 0.9799 -0.1659 0.1106 +vn 0.9896 -0.1422 -0.0207 +vn 0.3812 -0.8400 0.3862 +vn 0.7044 -0.6447 0.2968 +vn 0.9216 -0.3526 0.1624 +vn 0.9791 -0.1779 0.0990 +vn 0.3804 -0.8869 0.2621 +vn 0.7039 -0.6813 0.2011 +vn 0.9212 -0.3731 0.1101 +vn 0.3807 -0.9137 0.1420 +vn 0.7041 -0.7017 0.1088 +vn 0.9215 -0.3838 0.0592 +vn 0.9889 -0.1330 -0.0666 +vn 0.3810 -0.9243 0.0242 +vn 0.7045 -0.7095 0.0182 +vn 0.9216 -0.3880 0.0098 +vn 0.9890 -0.1223 -0.0838 +vn 0.3811 -0.9200 -0.0918 +vn 0.9217 -0.3859 -0.0385 +vn 0.9890 -0.1102 -0.0987 +vn 0.3811 -0.9008 -0.2083 +vn 0.7045 -0.6915 -0.1598 +vn 0.7037 -0.7070 -0.0698 +vn 0.9216 -0.3782 -0.0875 +vn 0.9793 -0.1995 -0.0328 +vn 0.9890 -0.0969 -0.1116 +vn 0.3810 -0.8651 -0.3262 +vn 0.7042 -0.6643 -0.2506 +vn 0.9214 -0.3637 -0.1372 +vn 0.9793 -0.1939 -0.0585 +vn 0.3812 -0.8095 -0.4465 +vn 0.7046 -0.6213 -0.3428 +vn 0.9216 -0.3398 -0.1876 +vn 0.9791 -0.1850 -0.0850 +vn 0.3699 -0.7412 -0.5602 +vn 0.6988 -0.5703 -0.4318 +vn 0.9209 -0.3102 -0.2361 +vn 0.3841 -0.7233 -0.5739 +vn 0.7077 -0.5535 -0.4392 +vn 0.9238 -0.2999 -0.2380 +vn 0.9895 -0.0261 -0.1422 +vn 0.3814 -0.6464 -0.6609 +vn 0.7049 -0.4960 -0.5070 +vn 0.9220 -0.2707 -0.2767 +vn 0.9793 -0.1506 -0.1352 +vn 0.9896 -0.0148 -0.1432 +vn 0.3807 -0.5649 -0.7321 +vn 0.7044 -0.4334 -0.5621 +vn 0.9218 -0.2366 -0.3070 +vn 0.3810 -0.4851 -0.7871 +vn 0.7049 -0.3718 -0.6040 +vn 0.9221 -0.2026 -0.3296 +vn 0.9892 0.0148 -0.1459 +vn 0.3813 -0.4051 -0.8309 +vn 0.7052 -0.3104 -0.6374 +vn 0.9223 -0.1689 -0.3476 +vn 0.9893 0.0303 -0.1428 +vn 0.3816 -0.3234 -0.8659 +vn 0.7051 -0.2481 -0.6643 +vn 0.9224 -0.1352 -0.3618 +vn 0.9893 0.0443 -0.1387 +vn 0.3813 -0.2366 -0.8937 +vn 0.7050 -0.1816 -0.6855 +vn 0.9223 -0.0990 -0.3737 +vn 0.9797 -0.0610 -0.1912 +vn 0.9893 0.0574 -0.1338 +vn 0.3812 -0.1417 -0.9136 +vn 0.7048 -0.1088 -0.7010 +vn 0.9220 -0.0595 -0.3825 +vn 0.9796 -0.0414 -0.1968 +vn 0.3814 -0.0342 -0.9238 +vn 0.7050 -0.0262 -0.7088 +vn 0.9221 -0.0142 -0.3868 +vn 0.9793 -0.0197 -0.2014 +vn 0.3695 0.0851 -0.9253 +vn 0.6988 0.0660 -0.7122 +vn 0.9211 0.0368 -0.3875 +vn 0.3830 0.0929 -0.9191 +vn 0.7072 0.0712 -0.7034 +vn 0.9238 0.0385 -0.3808 +vn 0.9896 0.1068 -0.0966 +vn 0.3818 0.1675 -0.9090 +vn 0.7058 0.1284 -0.6967 +vn 0.9228 0.0698 -0.3788 +vn 0.9797 0.0285 -0.1983 +vn 0.3814 0.2285 -0.8957 +vn 0.7055 0.1753 -0.6867 +vn 0.9228 0.0956 -0.3733 +vn 0.3817 0.2804 -0.8807 +vn 0.7058 0.2149 -0.6750 +vn 0.9231 0.1171 -0.3664 +vn 0.9896 0.1229 -0.0745 +vn 0.3821 0.3271 -0.8643 +vn 0.7060 0.2508 -0.6624 +vn 0.9231 0.1364 -0.3597 +vn 0.9897 0.1267 -0.0667 +vn 0.7062 0.2845 -0.6483 +vn 0.9800 0.0752 -0.1842 +vn 0.9897 0.1305 -0.0594 +vn 0.3820 0.4161 -0.8252 +vn 0.3815 0.3714 -0.8465 +vn 0.7059 0.3191 -0.6324 +vn 0.9230 0.1732 -0.3435 +vn 0.9228 0.1543 -0.3532 +vn 0.9800 0.0848 -0.1803 +vn 0.3818 0.4636 -0.7996 +vn 0.7058 0.3553 -0.6129 +vn 0.9229 0.1930 -0.3331 +vn 0.9799 0.0949 -0.1756 +vn 0.3819 0.5164 -0.7665 +vn 0.7057 0.3961 -0.5875 +vn 0.9227 0.2155 -0.3196 +vn 0.9797 0.1060 -0.1700 +vn 0.3746 0.5779 -0.7250 +vn 0.7022 0.4441 -0.5565 +vn 0.9224 0.2416 -0.3015 +vn 0.3881 0.4421 -0.8086 +vn 0.7130 0.3362 -0.6154 +vn 0.9262 0.1805 -0.3310 +vn 0.9899 0.1407 -0.0195 +vn 0.3827 0.3011 -0.8734 +vn 0.7072 0.2304 -0.6684 +vn 0.9239 0.1247 -0.3617 +vn 0.9800 0.0644 -0.1881 +vn 0.9929 0.1180 -0.0135 +vn 0.3816 0.3919 -0.8372 +vn 0.7054 0.3006 -0.6419 +vn 0.9225 0.1637 -0.3496 +vn 0.9796 0.0758 -0.1861 +vn 0.3810 0.4654 -0.7989 +vn 0.7050 0.3572 -0.6127 +vn 0.9224 0.1948 -0.3335 +vn 0.3814 0.5264 -0.7599 +vn 0.7054 0.4039 -0.5825 +vn 0.9226 0.2200 -0.3168 +vn 0.9895 0.1390 -0.0397 +vn 0.3815 0.5801 -0.7196 +vn 0.7056 0.4449 -0.5515 +vn 0.9228 0.2422 -0.2996 +vn 0.9895 0.1417 -0.0278 +vn 0.3819 0.6295 -0.6766 +vn 0.9229 0.2623 -0.2820 +vn 0.9798 0.1309 -0.1512 +vn 0.9895 0.1434 -0.0170 +vn 0.3818 0.6768 -0.6295 +vn 0.7056 0.5189 -0.4826 +vn 0.7050 0.4825 -0.5198 +vn 0.9227 0.2822 -0.2625 +vn 0.9798 0.1412 -0.1414 +vn 0.3816 0.7240 -0.5746 +vn 0.7054 0.5552 -0.4406 +vn 0.9225 0.3023 -0.2399 +vn 0.9799 0.1513 -0.1303 +vn 0.3816 0.7725 -0.5075 +vn 0.7054 0.5925 -0.3891 +vn 0.9224 0.3229 -0.2119 +vn 0.9796 0.1626 -0.1181 +vn 0.3736 0.8219 -0.4299 +vn 0.7013 0.6319 -0.3300 +vn 0.9219 0.3438 -0.1789 +vn 0.3824 0.8267 -0.4128 +vn 0.7066 0.6330 -0.3163 +vn 0.9235 0.3431 -0.1717 +vn 0.9799 0.1777 -0.0908 +vn 0.9898 0.1375 0.0385 +vn 0.3812 0.8817 -0.2782 +vn 0.7042 0.6770 -0.2140 +vn 0.9213 0.3708 -0.1174 +vn 0.9789 0.1890 -0.0773 +vn 0.3803 0.9150 -0.1346 +vn 0.7035 0.7031 -0.1034 +vn 0.9208 0.3858 -0.0567 +vn 0.3806 0.9247 0.0063 +vn 0.7037 0.7105 0.0048 +vn 0.9210 0.3896 0.0026 +vn 0.9887 0.1237 0.0850 +vn 0.3808 0.9135 0.1434 +vn 0.7038 0.7018 0.1102 +vn 0.9210 0.3850 0.0602 +vn 0.9887 0.1089 0.1028 +vn 0.3809 0.8825 0.2761 +vn 0.7039 0.6778 0.2124 +vn 0.9791 0.1979 0.0462 +vn 0.9888 0.0922 0.1176 +vn 0.3808 0.8318 0.4040 +vn 0.7039 0.6389 0.3103 +vn 0.9211 0.3502 0.1700 +vn 0.9210 0.3720 0.1160 +vn 0.9791 0.1889 0.0749 +vn 0.3806 0.7605 0.5260 +vn 0.7037 0.5844 0.4040 +vn 0.9209 0.3206 0.2215 +vn 0.9791 0.1757 0.1025 +vn 0.3810 0.6674 0.6398 +vn 0.7043 0.5123 0.4914 +vn 0.9213 0.2805 0.2694 +vn 0.9789 0.1584 0.1290 +vn 0.3684 0.5646 0.7386 +vn 0.6978 0.4345 0.5694 +vn 0.9206 0.2360 0.3111 +vn 0.3840 0.5448 0.7455 +vn 0.7076 0.4169 0.5705 +vn 0.9238 0.2259 0.3092 +vn 0.9895 -0.0123 0.1442 +vn 0.3814 0.4471 0.8091 +vn 0.7049 0.3430 0.6208 +vn 0.9221 0.1872 0.3388 +vn 0.9793 0.1091 0.1704 +vn 0.9897 -0.0236 0.1415 +vn 0.3806 0.3503 0.8558 +vn 0.7044 0.2687 0.6569 +vn 0.9219 0.1464 0.3587 +vn 0.3811 0.2594 0.8874 +vn 0.7049 0.1988 0.6809 +vn 0.9222 0.1081 0.3714 +vn 0.9892 -0.0530 0.1366 +vn 0.3815 0.1716 0.9083 +vn 0.7051 0.1314 0.6968 +vn 0.9223 0.0713 0.3799 +vn 0.9893 -0.0670 0.1296 +vn 0.3809 0.0843 0.9208 +vn 0.7051 0.0648 0.7062 +vn 0.9797 0.0278 0.1984 +vn 0.9894 -0.0792 0.1220 +vn 0.3814 -0.0056 0.9244 +vn 0.7051 -0.0043 0.7091 +vn 0.9223 -0.0023 0.3865 +vn 0.9218 0.0366 0.3858 +vn 0.9797 0.0087 0.2004 +vn 0.3813 -0.1017 0.9188 +vn 0.7049 -0.0779 0.7050 +vn 0.9221 -0.0424 0.3847 +vn 0.9796 -0.0115 0.2006 +vn 0.3814 -0.2073 0.9009 +vn 0.7050 -0.1591 0.6911 +vn 0.9221 -0.0868 0.3771 +vn 0.9793 -0.0335 0.1995 +vn 0.3706 -0.3201 0.8719 +vn 0.6996 -0.2469 0.6706 +vn 0.9213 -0.1352 0.3645 +vn 0.3816 -0.3195 0.8674 +vn 0.7067 -0.2443 0.6640 +vn 0.9239 -0.1319 0.3592 +vn 0.9895 -0.1290 0.0653 +vn 0.3870 -0.1718 0.9059 +vn 0.7126 -0.1299 0.6894 +vn 0.9271 -0.0685 0.3685 +vn 0.9910 -0.1219 0.0553 +vn 0.3869 -0.0170 0.9220 +vn 0.7126 -0.0129 0.7014 +vn 0.9271 -0.0069 0.3747 +vn 0.9819 -0.0200 0.1885 +vn 0.9916 -0.1127 0.0636 +vn 0.3870 0.1369 0.9119 +vn 0.7125 0.1042 0.6939 +vn 0.9271 0.0557 0.3708 +vn 0.9819 0.0119 0.1893 +vn 0.3869 0.2857 0.8768 +vn 0.7124 0.2174 0.6672 +vn 0.9271 0.1162 0.3564 +vn 0.9818 0.0432 0.1849 +vn 0.3866 0.4262 0.8178 +vn 0.7124 0.3244 0.6223 +vn 0.9271 0.1740 0.3319 +vn 0.3868 0.5558 0.7359 +vn 0.7125 0.4232 0.5597 +vn 0.9272 0.2264 0.2985 +vn 0.9916 -0.0486 0.1201 +vn 0.3869 0.6706 0.6330 +vn 0.7127 0.5104 0.4812 +vn 0.9272 0.2730 0.2566 +vn 0.9916 -0.0282 0.1265 +vn 0.3866 0.7679 0.5107 +vn 0.7121 0.5848 0.3885 +vn 0.9269 0.3130 0.2071 +vn 0.9916 -0.0069 0.1294 +vn 0.3828 0.8443 0.3750 +vn 0.7073 0.6460 0.2870 +vn 0.9240 0.3494 0.1553 +vn 0.9813 0.1688 0.0927 +vn 0.9916 0.0147 0.1287 +vn 0.3826 0.8283 0.4092 +vn 0.7070 0.6341 0.3131 +vn 0.9238 0.3434 0.1696 +vn 0.9799 0.1791 0.0877 +vn 0.3813 0.7624 0.5228 +vn 0.7048 0.5852 0.4011 +vn 0.9218 0.3198 0.2191 +vn 0.9792 0.1750 0.1027 +vn 0.3805 0.6891 0.6167 +vn 0.7042 0.5289 0.4737 +vn 0.9216 0.2889 0.2592 +vn 0.3809 0.6117 0.6933 +vn 0.7046 0.4694 0.5322 +vn 0.9218 0.2562 0.2908 +vn 0.9891 0.0126 0.1470 +vn 0.3811 0.5313 0.7566 +vn 0.7048 0.4073 0.5808 +vn 0.9221 0.2219 0.3171 +vn 0.9891 -0.0052 0.1468 +vn 0.3815 0.4459 0.8097 +vn 0.7050 0.3416 0.6215 +vn 0.9220 0.1862 0.3393 +vn 0.9892 -0.0217 0.1451 +vn 0.3813 0.3533 0.8543 +vn 0.7048 0.2712 0.6555 +vn 0.9220 0.1480 0.3577 +vn 0.9795 0.0873 0.1815 +vn 0.9892 -0.0372 0.1417 +vn 0.3811 0.2508 0.8899 +vn 0.7046 0.1927 0.6829 +vn 0.9218 0.1053 0.3732 +vn 0.9794 0.0662 0.1905 +vn 0.3813 0.1344 0.9146 +vn 0.7048 0.1030 0.7018 +vn 0.9218 0.0562 0.3835 +vn 0.9792 0.0428 0.1984 +vn 0.3677 0.0052 0.9299 +vn 0.6977 0.0035 0.7163 +vn 0.9208 0.0009 0.3900 +vn 0.3826 -0.0018 0.9239 +vn 0.7070 -0.0014 0.7072 +vn 0.9238 -0.0007 0.3829 +vn 0.9797 -0.0000 0.2006 +vn 0.9895 -0.0967 0.1073 +vn 0.3809 -0.1603 0.9106 +vn 0.7039 -0.1228 0.6996 +vn 0.9210 -0.0670 0.3838 +vn 0.9788 -0.0178 0.2039 +vn 0.3804 -0.3165 0.8690 +vn 0.9205 -0.1336 0.3671 +vn 0.9788 -0.0530 0.1979 +vn 0.3805 -0.4624 0.8009 +vn 0.7033 -0.3554 0.6156 +vn 0.7029 -0.2428 0.6685 +vn 0.9204 -0.1953 0.3387 +vn 0.3800 -0.5946 0.7086 +vn 0.7030 -0.4572 0.5448 +vn 0.9205 -0.2511 0.2993 +vn 0.9885 -0.1445 0.0452 +vn 0.3804 -0.7085 0.5945 +vn 0.9203 -0.2996 0.2514 +vn 0.9884 -0.1506 0.0191 +vn 0.3805 -0.8009 0.4624 +vn 0.7030 -0.6159 0.3556 +vn 0.7029 -0.5448 0.4572 +vn 0.9205 -0.3384 0.1954 +vn 0.9885 -0.1512 -0.0070 +vn 0.7032 -0.6681 0.2432 +vn 0.9205 -0.3671 0.1336 +vn 0.9788 -0.1854 0.0865 +vn 0.9885 -0.1478 -0.0332 +vn 0.3800 -0.8690 0.3168 +vn 0.7040 -0.6995 0.1227 +vn 0.9207 -0.3845 0.0666 +vn 0.3803 -0.9107 0.1616 +vn 0.3655 -0.9308 0.0082 +vn 0.6963 -0.7177 0.0059 +vn 0.9202 -0.3915 0.0022 +vn 0.9884 -0.1276 -0.0823 +vn 0.9894 -0.1088 -0.0961 +vn -0.1916 0.8788 0.4370 +vn -0.3828 0.8332 0.3991 +vn -0.3827 0.8260 0.4138 +vn -0.7072 0.6377 0.3054 +vn -0.7071 0.6322 0.3166 +vn -0.9239 0.3451 0.1653 +vn -0.9240 0.3421 0.1712 +vn -0.9803 0.1760 0.0892 +vn -0.9905 0.1303 -0.0450 +vn -0.9982 -0.0262 0.0539 +vn -0.9237 -0.3832 -0.0015 +vn -0.9799 -0.1989 -0.0174 +vn -0.9207 -0.3845 -0.0668 +vn -0.7069 -0.7073 -0.0033 +vn -0.7036 -0.7000 -0.1222 +vn -0.3825 -0.9239 -0.0043 +vn -0.3807 -0.9108 -0.1599 +vn -0.9205 -0.3671 -0.1336 +vn -0.7030 -0.6683 -0.2432 +vn -0.9797 -0.1989 -0.0258 +vn -0.9205 -0.3383 -0.1953 +vn -0.3804 -0.8009 -0.4624 +vn -0.3800 -0.8690 -0.3169 +vn -0.9981 -0.0521 0.0337 +vn -0.9790 -0.1672 -0.1170 +vn -0.9204 -0.2994 -0.2514 +vn -0.7030 -0.6159 -0.3556 +vn -0.3800 -0.7086 -0.5946 +vn -0.9205 -0.2511 -0.2993 +vn -0.7030 -0.5448 -0.4572 +vn -0.7030 -0.4571 -0.5448 +vn -0.9981 -0.0604 0.0133 +vn -0.9789 -0.1171 -0.1673 +vn -0.9205 -0.1953 -0.3383 +vn -0.3801 -0.4625 -0.8010 +vn -0.3801 -0.5942 -0.7088 +vn -0.9981 -0.0620 0.0034 +vn -0.7030 -0.2432 -0.6683 +vn -0.7030 -0.3556 -0.6159 +vn -0.3805 -0.3163 -0.8690 +vn -0.9210 -0.0670 -0.3839 +vn -0.9205 -0.1336 -0.3671 +vn -0.7040 -0.1227 -0.6995 +vn -0.3807 -0.1607 -0.9106 +vn -0.9796 -0.0752 -0.1864 +vn -0.9237 -0.0016 -0.3830 +vn -0.7070 -0.0032 -0.7072 +vn -0.3826 -0.0043 -0.9239 +vn -0.9797 -0.0031 -0.2007 +vn -0.9240 -0.0016 -0.3824 +vn -0.7073 -0.0031 -0.7069 +vn -0.3828 -0.0040 -0.9238 +vn -0.9824 -0.0554 -0.1784 +vn -0.9259 -0.0515 -0.3742 +vn -0.7104 -0.0958 -0.6972 +vn -0.3852 -0.1256 -0.9143 +vn -0.9992 -0.0396 0.0060 +vn -0.9815 -0.0378 -0.1877 +vn -0.9259 -0.0942 -0.3659 +vn -0.7100 -0.1764 -0.6817 +vn -0.3846 -0.2318 -0.8935 +vn -0.9992 -0.0376 0.0101 +vn -0.9256 -0.1327 -0.3545 +vn -0.7098 -0.2479 -0.6593 +vn -0.3846 -0.3252 -0.8639 +vn -0.9993 -0.0356 0.0134 +vn -0.9255 -0.1675 -0.3397 +vn -0.7096 -0.3123 -0.6316 +vn -0.3846 -0.4096 -0.8272 +vn -0.9255 -0.2005 -0.3214 +vn -0.7097 -0.3728 -0.5978 +vn -0.3847 -0.4882 -0.7833 +vn -0.9824 -0.1355 -0.1290 +vn -0.9256 -0.2313 -0.2997 +vn -0.7099 -0.4304 -0.5575 +vn -0.3849 -0.5639 -0.7307 +vn -0.9824 -0.1481 -0.1135 +vn -0.9258 -0.2614 -0.2729 +vn -0.7102 -0.4868 -0.5086 +vn -0.3850 -0.6381 -0.6668 +vn -0.9826 -0.1598 -0.0948 +vn -0.9259 -0.2914 -0.2404 +vn -0.7104 -0.5429 -0.4478 +vn -0.3852 -0.7120 -0.5871 +vn -0.9991 -0.0295 0.0321 +vn -0.9814 -0.1561 -0.1120 +vn -0.9220 -0.3272 -0.2071 +vn -0.7000 -0.6043 -0.3805 +vn -0.3701 -0.7868 -0.4940 +vn -1.0000 -0.0019 0.0010 +vn -0.9242 -0.3046 -0.2304 +vn -0.7081 -0.5630 -0.4261 +vn -0.3838 -0.7362 -0.5574 +vn -0.9239 -0.2927 -0.2463 +vn -0.7073 -0.5409 -0.4552 +vn -0.3828 -0.7068 -0.5949 +vn -0.9826 -0.1727 -0.0689 +vn -0.9272 -0.3245 -0.1871 +vn -0.7127 -0.6075 -0.3508 +vn -0.3870 -0.7982 -0.4616 +vn -0.9834 -0.1777 -0.0360 +vn -0.9277 -0.3521 -0.1241 +vn -0.7137 -0.6606 -0.2329 +vn -0.3878 -0.8692 -0.3067 +vn -0.9835 -0.1806 -0.0015 +vn -0.9279 -0.3690 -0.0542 +vn -0.7140 -0.6927 -0.1019 +vn -0.3881 -0.9118 -0.1343 +vn -0.9837 -0.1767 0.0339 +vn -0.9280 -0.3722 0.0194 +vn -0.7142 -0.6990 0.0365 +vn -0.3883 -0.9203 0.0479 +vn -0.9837 -0.1663 0.0683 +vn -0.9280 -0.3609 0.0930 +vn -0.3883 -0.8924 0.2300 +vn -0.9991 0.0162 0.0394 +vn -0.9821 -0.1764 0.0655 +vn -0.9279 -0.3361 0.1612 +vn -0.7151 -0.6767 0.1753 +vn -0.7140 -0.6306 0.3042 +vn -0.3878 -0.8299 0.4011 +vn -0.9991 0.0233 0.0355 +vn -0.9277 -0.2993 0.2229 +vn -0.7135 -0.5610 0.4197 +vn -0.3876 -0.7377 0.5527 +vn -0.9991 0.0292 0.0305 +vn -0.9273 -0.2543 0.2746 +vn -0.7129 -0.4750 0.5159 +vn -0.3869 -0.6236 0.6793 +vn -0.9990 0.0321 0.0303 +vn -0.9218 -0.2124 0.3244 +vn -0.6987 -0.3902 0.5996 +vn -0.3672 -0.5063 0.7803 +vn -1.0000 0.0042 -0.0012 +vn -0.9241 -0.2035 0.3234 +vn -0.7076 -0.3763 0.5980 +vn -0.3833 -0.4920 0.7816 +vn -0.9251 -0.1729 0.3380 +vn -0.7091 -0.3211 0.6278 +vn -0.3842 -0.4204 0.8220 +vn -0.9808 -0.0817 0.1768 +vn -0.9250 -0.1479 0.3499 +vn -0.7086 -0.2741 0.6502 +vn -0.3835 -0.3584 0.8511 +vn -0.9248 -0.1251 0.3592 +vn -0.7086 -0.2315 0.6666 +vn -0.3836 -0.3027 0.8725 +vn -0.9993 0.0341 0.0141 +vn -0.9248 -0.1035 0.3662 +vn -0.7084 -0.1916 0.6793 +vn -0.3841 -0.2502 0.8887 +vn -0.9993 0.0345 0.0120 +vn -0.7084 -0.1515 0.6894 +vn -0.9249 -0.0595 0.3756 +vn -0.9252 -0.0802 0.3709 +vn -0.7086 -0.1102 0.6969 +vn -0.3836 -0.1445 0.9121 +vn -0.3841 -0.1981 0.9018 +vn -0.9819 0.0142 0.1888 +vn -0.9250 -0.0350 0.3783 +vn -0.7088 -0.0650 0.7024 +vn -0.3839 -0.0851 0.9194 +vn -0.9822 0.0289 0.1858 +vn -0.9251 -0.0068 0.3796 +vn -0.7091 -0.0125 0.7050 +vn -0.3841 -0.0165 0.9231 +vn -0.9990 0.0439 0.0051 +vn -0.9811 0.0050 0.1932 +vn -0.9230 0.0240 0.3841 +vn -0.7034 0.0456 0.7093 +vn -0.3761 0.0602 0.9246 +vn -1.0000 0.0076 -0.0002 +vn -0.9234 0.0253 0.3831 +vn -0.7058 0.0461 0.7069 +vn -0.3807 0.0599 0.9227 +vn -0.9985 0.0522 0.0177 +vn -0.9220 -0.0247 0.3864 +vn -0.7053 -0.0461 0.7075 +vn -0.3821 -0.0606 0.9221 +vn -0.9219 -0.0728 0.3805 +vn -0.7048 -0.1332 0.6968 +vn -0.3813 -0.1735 0.9080 +vn -0.9802 0.0003 0.1982 +vn -0.9221 -0.1141 0.3696 +vn -0.7049 -0.2091 0.6777 +vn -0.3812 -0.2724 0.8834 +vn -0.9802 -0.0225 0.1966 +vn -0.9223 -0.1517 0.3556 +vn -0.7051 -0.2784 0.6522 +vn -0.3815 -0.3629 0.8502 +vn -0.9803 -0.0430 0.1929 +vn -0.9222 -0.1872 0.3383 +vn -0.7052 -0.3433 0.6204 +vn -0.3813 -0.4477 0.8088 +vn -0.9989 0.0314 0.0356 +vn -0.9797 -0.1060 0.1703 +vn -0.9220 -0.2212 0.3177 +vn -0.7047 -0.4059 0.5819 +vn -0.3810 -0.5291 0.7582 +vn -0.9988 0.0279 0.0406 +vn -0.9217 -0.2555 0.2918 +vn -0.7043 -0.4679 0.5339 +vn -0.3806 -0.6097 0.6953 +vn -0.9986 0.0241 0.0467 +vn -0.9217 -0.2890 0.2586 +vn -0.7043 -0.5295 0.4729 +vn -0.3804 -0.6901 0.6157 +vn -0.9230 -0.3161 0.2194 +vn -0.7060 -0.5818 0.4039 +vn -0.3820 -0.7590 0.5272 +vn -0.9998 0.0082 0.0177 +vn -0.9800 -0.1656 0.1104 +vn -0.9224 -0.3255 0.2080 +vn -0.7041 -0.5988 0.3817 +vn -0.3788 -0.7807 0.4970 +vn -0.9984 0.0092 0.0562 +vn -0.9216 -0.3523 0.1632 +vn -0.7046 -0.6442 0.2974 +vn -0.3818 -0.8395 0.3867 +vn -0.9214 -0.3727 0.1102 +vn -0.7043 -0.6808 0.2012 +vn -0.3809 -0.8866 0.2623 +vn -0.9800 -0.1762 0.0928 +vn -0.9215 -0.3837 0.0596 +vn -0.7045 -0.7013 0.1089 +vn -0.3810 -0.9136 0.1421 +vn -0.9800 -0.1871 0.0678 +vn -0.9217 -0.3878 0.0102 +vn -0.7046 -0.7094 0.0187 +vn -0.3811 -0.9242 0.0244 +vn -0.9800 -0.1940 0.0432 +vn -0.9217 -0.3859 -0.0385 +vn -0.3811 -0.9200 -0.0918 +vn -0.9987 -0.0240 0.0458 +vn -0.9794 -0.1992 -0.0327 +vn -0.9215 -0.3784 -0.0870 +vn -0.7040 -0.7066 -0.0716 +vn -0.7042 -0.6918 -0.1596 +vn -0.3807 -0.9010 -0.2081 +vn -0.9986 -0.0311 0.0431 +vn -0.9212 -0.3641 -0.1371 +vn -0.7039 -0.6648 -0.2503 +vn -0.3804 -0.8654 -0.3262 +vn -0.9984 -0.0389 0.0400 +vn -0.9214 -0.3406 -0.1873 +vn -0.7041 -0.6220 -0.3426 +vn -0.3805 -0.8099 -0.4464 +vn -0.9234 -0.3053 -0.2326 +vn -0.7066 -0.5631 -0.4286 +vn -0.3823 -0.7354 -0.5595 +vn -0.9798 -0.1629 -0.1160 +vn -0.9235 -0.3007 -0.2383 +vn -0.7066 -0.5544 -0.4397 +vn -0.3823 -0.7239 -0.5742 +vn -0.9985 -0.0475 0.0269 +vn -0.9799 -0.1484 -0.1333 +vn -0.9221 -0.2713 -0.2760 +vn -0.7053 -0.4964 -0.5061 +vn -0.3822 -0.6467 -0.6601 +vn -0.9220 -0.2366 -0.3065 +vn -0.7048 -0.4334 -0.5616 +vn -0.3813 -0.5649 -0.7318 +vn -0.9802 -0.1482 -0.1312 +vn -0.9222 -0.2029 -0.3292 +vn -0.7051 -0.3720 -0.6036 +vn -0.3815 -0.4850 -0.7869 +vn -0.9803 -0.1327 -0.1464 +vn -0.9224 -0.1694 -0.3472 +vn -0.7052 -0.3109 -0.6372 +vn -0.3815 -0.4052 -0.8308 +vn -0.9803 -0.1173 -0.1587 +vn -0.9223 -0.1352 -0.3620 +vn -0.3813 -0.3234 -0.8660 +vn -0.9989 -0.0465 0.0012 +vn -0.9797 -0.0609 -0.1909 +vn -0.9221 -0.0994 -0.3739 +vn -0.7046 -0.2473 -0.6651 +vn -0.7048 -0.1819 -0.6857 +vn -0.3810 -0.2368 -0.8937 +vn -0.9988 -0.0482 -0.0044 +vn -0.9218 -0.0598 -0.3829 +vn -0.7044 -0.1091 -0.7014 +vn -0.3807 -0.1418 -0.9137 +vn -0.9987 -0.0506 -0.0109 +vn -0.9218 -0.0150 -0.3873 +vn -0.7043 -0.0266 -0.7094 +vn -0.3804 -0.0344 -0.9242 +vn -0.9238 0.0364 -0.3812 +vn -0.7069 0.0670 -0.7041 +vn -0.3826 0.0876 -0.9197 +vn -0.9799 0.0170 -0.1989 +vn -0.9238 0.0385 -0.3810 +vn -0.7070 0.0711 -0.7037 +vn -0.3826 0.0929 -0.9192 +vn -0.9987 -0.0465 -0.0205 +vn -0.9229 0.0691 -0.3788 +vn -0.7062 0.1277 -0.6964 +vn -0.3825 0.1670 -0.9088 +vn -0.9229 0.0952 -0.3731 +vn -0.7058 0.1751 -0.6865 +vn -0.3817 0.2283 -0.8956 +vn -0.9805 0.0122 -0.1960 +vn -0.9231 0.1166 -0.3665 +vn -0.7059 0.2147 -0.6750 +vn -0.3820 0.2802 -0.8807 +vn -0.9806 0.0249 -0.1946 +vn -0.9230 0.1361 -0.3598 +vn -0.7061 0.2505 -0.6623 +vn -0.3817 0.3268 -0.8646 +vn -0.9992 -0.0334 -0.0226 +vn -0.9798 0.0755 -0.1849 +vn -0.7061 0.2846 -0.6484 +vn -0.3820 0.3713 -0.8463 +vn -0.9992 -0.0326 -0.0249 +vn -0.9228 0.1556 -0.3524 +vn -0.9230 0.1731 -0.3437 +vn -0.7057 0.3191 -0.6326 +vn -0.3817 0.4163 -0.8252 +vn -0.9991 -0.0323 -0.0283 +vn -0.9228 0.1930 -0.3335 +vn -0.7055 0.3553 -0.6132 +vn -0.3815 0.4639 -0.7996 +vn -0.9989 -0.0322 -0.0335 +vn -0.9226 0.2152 -0.3201 +vn -0.7052 0.3960 -0.5881 +vn -0.3810 0.5166 -0.7668 +vn -0.9240 0.2390 -0.2987 +vn -0.7072 0.4417 -0.5521 +vn -0.3828 0.5772 -0.7214 +vn -0.9802 0.1223 -0.1559 +vn -0.9262 0.1809 -0.3308 +vn -0.7129 0.3365 -0.6153 +vn -0.3881 0.4422 -0.8086 +vn -1.0000 -0.0021 -0.0004 +vn -0.9835 0.0566 -0.1718 +vn -0.9238 0.1247 -0.3619 +vn -0.7069 0.2305 -0.6687 +vn -0.3822 0.3011 -0.8736 +vn -0.9986 -0.0404 -0.0333 +vn -0.9226 0.1628 -0.3497 +vn -0.7058 0.2996 -0.6420 +vn -0.3824 0.3912 -0.8371 +vn -0.9225 0.1943 -0.3336 +vn -0.7055 0.3569 -0.6124 +vn -0.3816 0.4653 -0.7987 +vn -0.9805 0.0658 -0.1851 +vn -0.9227 0.2195 -0.3168 +vn -0.7057 0.4035 -0.5824 +vn -0.3817 0.5262 -0.7599 +vn -0.9804 0.0812 -0.1793 +vn -0.9228 0.2418 -0.2999 +vn -0.7056 0.4446 -0.5518 +vn -0.3816 0.5800 -0.7197 +vn -0.9991 -0.0250 -0.0344 +vn -0.9798 0.1310 -0.1513 +vn -0.9228 0.2621 -0.2825 +vn -0.3818 0.6294 -0.6768 +vn -0.9991 -0.0223 -0.0368 +vn -0.9226 0.2821 -0.2630 +vn -0.7053 0.4836 -0.5183 +vn -0.7054 0.5189 -0.4829 +vn -0.3814 0.6769 -0.6296 +vn -0.9990 -0.0192 -0.0405 +vn -0.9224 0.3023 -0.2404 +vn -0.7051 0.5553 -0.4410 +vn -0.3811 0.7242 -0.5748 +vn -0.9988 -0.0164 -0.0456 +vn -0.9223 0.3228 -0.2127 +vn -0.7048 0.5927 -0.3898 +vn -0.3807 0.7728 -0.5077 +vn -0.9236 0.3402 -0.1770 +vn -0.7067 0.6276 -0.3265 +vn -0.3824 0.8197 -0.4265 +vn -1.0000 -0.0024 -0.0069 +vn -0.9801 0.1768 -0.0904 +vn -0.9231 0.3438 -0.1722 +vn -0.7054 0.6340 -0.3169 +vn -0.3805 0.8274 -0.4131 +vn -0.9983 -0.0018 -0.0584 +vn -0.9212 0.3708 -0.1182 +vn -0.7041 0.6768 -0.2147 +vn -0.3811 0.8815 -0.2788 +vn -0.9210 0.3855 -0.0568 +vn -0.7038 0.7028 -0.1036 +vn -0.3807 0.9148 -0.1349 +vn -0.9798 0.1875 -0.0690 +vn -0.9211 0.3892 0.0026 +vn -0.7040 0.7101 0.0046 +vn -0.3809 0.9246 0.0060 +vn -0.9799 0.1958 -0.0391 +vn -0.9211 0.3846 0.0602 +vn -0.7041 0.7015 0.1099 +vn -0.3807 0.9136 0.1431 +vn -0.9984 0.0302 -0.0467 +vn -0.9792 0.1976 0.0461 +vn -0.7040 0.6778 0.2120 +vn -0.3806 0.8825 0.2761 +vn -0.9984 0.0372 -0.0418 +vn -0.9210 0.3715 0.1171 +vn -0.9209 0.3505 0.1705 +vn -0.7038 0.6392 0.3100 +vn -0.3806 0.8319 0.4038 +vn -0.9984 0.0441 -0.0360 +vn -0.9208 0.3208 0.2217 +vn -0.7034 0.5847 0.4040 +vn -0.3804 0.7609 0.5257 +vn -0.9983 0.0507 -0.0295 +vn -0.9212 0.2811 0.2690 +vn -0.7040 0.5130 0.4912 +vn -0.3806 0.6679 0.6395 +vn -0.9235 0.2317 0.3058 +vn -0.7066 0.4276 0.5638 +vn -0.3824 0.5585 0.7361 +vn -0.9798 0.1250 0.1562 +vn -0.9235 0.2265 0.3096 +vn -0.7067 0.4176 0.5712 +vn -0.3824 0.5453 0.7460 +vn -0.9985 0.0529 -0.0132 +vn -0.9800 0.1072 0.1675 +vn -0.9221 0.1879 0.3381 +vn -0.7054 0.3436 0.6200 +vn -0.3822 0.4476 0.8085 +vn -0.9220 0.1466 0.3582 +vn -0.7049 0.2688 0.6564 +vn -0.3813 0.3503 0.8555 +vn -0.9802 0.1080 0.1658 +vn -0.9223 0.1085 0.3710 +vn -0.7052 0.1990 0.6805 +vn -0.3813 0.2597 0.8872 +vn -0.9803 0.0892 0.1763 +vn -0.9224 0.0718 0.3796 +vn -0.7053 0.1318 0.6966 +vn -0.3815 0.1719 0.9082 +vn -0.9990 0.0453 0.0064 +vn -0.9797 0.0278 0.1983 +vn -0.7052 0.0648 0.7060 +vn -0.3813 0.0847 0.9206 +vn -0.9989 0.0451 0.0110 +vn -0.9220 0.0340 0.3858 +vn -0.9221 -0.0018 0.3868 +vn -0.7048 -0.0040 0.7094 +vn -0.3811 -0.0054 0.9245 +vn -0.9988 0.0452 0.0168 +vn -0.9219 -0.0422 0.3852 +vn -0.7045 -0.0776 0.7054 +vn -0.3807 -0.1015 0.9191 +vn -0.9987 0.0459 0.0237 +vn -0.9218 -0.0863 0.3778 +vn -0.7043 -0.1589 0.6919 +vn -0.3804 -0.2072 0.9013 +vn -0.9237 -0.1331 0.3591 +vn -0.7070 -0.2457 0.6632 +vn -0.3825 -0.3209 0.8664 +vn -0.9797 -0.0660 0.1892 +vn -0.9241 -0.1320 0.3585 +vn -0.7076 -0.2442 0.6631 +vn -0.3830 -0.3194 0.8668 +vn -0.9825 -0.0077 0.1859 +vn -0.9269 -0.0698 0.3688 +vn -0.7122 -0.1308 0.6897 +vn -0.3867 -0.1723 0.9060 +vn -0.9991 0.0411 0.0036 +vn -0.9818 -0.0189 0.1890 +vn -0.9272 -0.0079 0.3745 +vn -0.7126 -0.0136 0.7015 +vn -0.3869 -0.0173 0.9220 +vn -0.9992 0.0410 -0.0033 +vn -0.9272 0.0547 0.3706 +vn -0.7126 0.1036 0.6939 +vn -0.3870 0.1366 0.9119 +vn -0.9992 0.0398 -0.0102 +vn -0.9271 0.1152 0.3566 +vn -0.7126 0.2168 0.6672 +vn -0.3874 0.2856 0.8765 +vn -0.9271 0.1733 0.3325 +vn -0.7125 0.3244 0.6222 +vn -0.3871 0.4260 0.8178 +vn -0.9832 0.1294 0.1285 +vn -0.9271 0.2258 0.2992 +vn -0.7125 0.4227 0.5600 +vn -0.3869 0.5555 0.7360 +vn -0.9832 0.1490 0.1052 +vn -0.9271 0.2724 0.2572 +vn -0.7126 0.5101 0.4817 +vn -0.3872 0.6703 0.6331 +vn -0.9832 0.1646 0.0785 +vn -0.9269 0.3122 0.2083 +vn -0.7122 0.5842 0.3893 +vn -0.3867 0.7676 0.5111 +vn -0.9990 0.0251 -0.0357 +vn -0.9817 0.1671 0.0909 +vn -0.9216 0.3530 0.1613 +vn -0.6984 0.6519 0.2954 +vn -0.3669 0.8478 0.3828 +vn -1.0000 0.0012 -0.0022 +vn -0.9236 0.3437 0.1697 +vn -0.7065 0.6346 0.3133 +vn -0.3818 0.8286 0.4093 +vn -0.9984 0.0424 -0.0361 +vn -0.9219 0.3202 0.2183 +vn -0.7051 0.5854 0.4002 +vn -0.3821 0.7625 0.5221 +vn -0.9218 0.2888 0.2586 +vn -0.7046 0.5287 0.4732 +vn -0.3811 0.6890 0.6165 +vn -0.9801 0.1704 0.1017 +vn -0.9220 0.2563 0.2903 +vn -0.7049 0.4695 0.5317 +vn -0.3813 0.6119 0.6930 +vn -0.9802 0.1566 0.1215 +vn -0.9221 0.2224 0.3166 +vn -0.7050 0.4076 0.5804 +vn -0.3813 0.5314 0.7565 +vn -0.9802 0.1419 0.1382 +vn -0.9221 0.1867 0.3389 +vn -0.7050 0.3421 0.6213 +vn -0.3813 0.4459 0.8098 +vn -0.9988 0.0481 -0.0072 +vn -0.9796 0.0871 0.1811 +vn -0.9219 0.1485 0.3579 +vn -0.7045 0.2715 0.6557 +vn -0.3809 0.3536 0.8543 +vn -0.9987 0.0503 -0.0011 +vn -0.9216 0.1057 0.3734 +vn -0.7042 0.1929 0.6833 +vn -0.3805 0.2509 0.8901 +vn -0.9986 0.0531 0.0059 +vn -0.9216 0.0570 0.3838 +vn -0.7042 0.1037 0.7023 +vn -0.3804 0.1347 0.9150 +vn -0.9238 0.0006 0.3828 +vn -0.7070 0.0013 0.7072 +vn -0.3826 0.0017 0.9239 +vn -1.0000 0.0012 -0.0008 +vn -0.9798 0.0000 0.1997 +vn -0.9237 -0.0007 0.3831 +vn -0.7068 -0.0014 0.7075 +vn -0.3822 -0.0018 0.9241 +vn -0.9982 0.0537 0.0265 +vn -0.9207 -0.0666 0.3844 +vn -0.7036 -0.1223 0.7000 +vn -0.3807 -0.1599 0.9108 +vn -0.9981 0.0495 0.0373 +vn -0.7033 -0.2432 0.6680 +vn -0.9202 -0.1957 0.3389 +vn -0.9205 -0.1333 0.3673 +vn -0.7030 -0.3556 0.6159 +vn -0.3801 -0.3167 0.8691 +vn -0.9797 -0.0599 0.1913 +vn -0.9205 -0.2511 0.2993 +vn -0.7030 -0.4572 0.5448 +vn -0.3805 -0.5945 0.7084 +vn -0.3800 -0.4631 0.8007 +vn -0.9798 -0.0921 0.1775 +vn -0.9203 -0.2997 0.2515 +vn -0.3800 -0.7086 0.5946 +vn -0.9797 -0.1217 0.1592 +vn -0.9204 -0.3386 0.1955 +vn -0.7030 -0.5451 0.4568 +vn -0.7030 -0.6159 0.3556 +vn -0.9981 0.0034 0.0620 +vn -0.9790 -0.1846 0.0861 +vn -0.9203 -0.3677 0.1334 +vn -0.7030 -0.6683 0.2433 +vn -0.3800 -0.8013 0.4621 +vn -0.9209 -0.3839 0.0670 +vn -0.7040 -0.6994 0.1235 +vn -0.3800 -0.8692 0.3164 +vn -0.9796 -0.1864 0.0752 +vn -0.9237 -0.3832 0.0017 +vn -0.7069 -0.7073 0.0030 +vn -0.3825 -0.9239 0.0043 +vn -0.3798 -0.9112 0.1598 +vn -0.9798 -0.2002 0.0000 +usemtl Material.001 +s 1 +f 2899/2962/1211 2901/2963/1212 2898/2964/1213 +f 2957/2965/1214 2994/2966/1215 2956/2967/1216 +f 3047/2968/1217 3049/2969/1218 3046/2970/1219 +f 3051/2971/1220 3053/2972/1221 3050/2973/1222 +f 3050/2973/1222 3055/2974/1223 3054/2975/1224 +f 3054/2975/1224 3057/2976/1225 3056/2977/1226 +f 3056/2977/1226 3059/2978/1227 3058/2979/1228 +f 3058/2979/1228 3061/2980/1229 3060/2981/1230 +f 3060/2981/1230 3063/2982/1231 3062/2983/1232 +f 3065/2984/1233 3067/2985/1234 3064/2986/1235 +f 3068/2987/1236 3066/2988/1237 3065/2984/1233 +f 3070/2989/1238 3052/2990/1239 3051/2971/1220 +f 3073/2991/1240 3075/2992/1241 3072/2993/1242 +f 3077/2994/1243 3079/2995/1244 3076/2996/1245 +f 3076/2996/1245 3081/2997/1246 3080/2998/1247 +f 3080/2998/1247 3083/2999/1248 3082/3000/1249 +f 3082/3000/1249 3085/3001/1250 3084/3002/1251 +f 3084/3002/1251 3087/3003/1252 3086/3004/1253 +f 3086/3004/1253 3074/3005/1254 3073/2991/1240 +f 3089/3006/1255 3091/3007/1256 3088/3008/1257 +f 3064/2986/1235 3078/3009/1258 3077/2994/1243 +f 3092/3010/1259 3090/3011/1260 3089/3006/1255 +f 3046/2970/1219 3071/3012/1261 3070/2989/1238 +f 3095/3013/1262 3097/3014/1263 3094/3015/1264 +f 3099/3016/1265 3101/3017/1266 3098/3018/1267 +f 3098/3018/1267 3103/3019/1268 3102/3020/1269 +f 3102/3020/1269 3105/3021/1270 3104/3022/1271 +f 3104/3022/1271 3107/3023/1272 3106/3024/1273 +f 3106/3024/1273 3109/3025/1274 3108/3026/1275 +f 3108/3026/1275 3096/3027/1276 3095/3013/1262 +f 3111/3028/1277 3113/3029/1278 3110/3030/1279 +f 3094/3015/1264 3112/3031/1280 3111/3028/1277 +f 3088/3008/1257 3100/3032/1281 3099/3016/1265 +f 3115/3033/1282 3117/3034/1283 3114/3035/1284 +f 3119/3036/1285 3121/3037/1286 3118/3038/1287 +f 3118/3038/1287 3123/3039/1288 3122/3040/1289 +f 3122/3040/1289 3125/3041/1290 3124/3042/1291 +f 3124/3042/1291 3127/3043/1292 3126/3044/1293 +f 3126/3044/1293 3129/3045/1294 3128/3046/1295 +f 3128/3046/1295 3116/3047/1296 3115/3033/1282 +f 3131/3048/1297 3133/3049/1298 3130/3050/1299 +f 3114/3035/1284 3132/3051/1300 3131/3048/1297 +f 3110/3030/1279 3120/3052/1301 3119/3036/1285 +f 3135/3053/1302 3137/3054/1303 3134/3055/1304 +f 3139/3056/1305 3141/3057/1306 3138/3058/1307 +f 3138/3058/1307 3143/3059/1308 3142/3060/1309 +f 3142/3060/1309 3145/3061/1310 3144/3062/1311 +f 3144/3062/1311 3147/3063/1312 3146/3064/1313 +f 3146/3064/1313 3149/3065/1314 3148/3066/1315 +f 3148/3066/1315 3136/3067/1316 3135/3053/1302 +f 3151/3068/1317 3153/3069/1318 3150/3070/1319 +f 3134/3055/1304 3152/3071/1320 3151/3068/1317 +f 3130/3050/1299 3140/3072/1321 3139/3056/1305 +f 3155/3073/1322 3157/3074/1323 3154/3075/1324 +f 3159/3076/1325 3161/3077/1326 3158/3078/1327 +f 3158/3078/1327 3163/3079/1328 3162/3080/1329 +f 3162/3080/1329 3165/3081/1330 3164/3082/1331 +f 3164/3082/1331 3167/3083/1332 3166/3084/1333 +f 3166/3084/1333 3169/3085/1334 3168/3086/1335 +f 3168/3086/1335 3156/3087/1336 3155/3073/1322 +f 3171/3088/1337 3173/3089/1338 3170/3090/1339 +f 3154/3075/1324 3172/3091/1340 3171/3088/1337 +f 3150/3070/1319 3160/3092/1341 3159/3076/1325 +f 3175/3093/1342 3177/3094/1343 3174/3095/1344 +f 3179/3096/1345 3181/3097/1346 3178/3098/1347 +f 3178/3098/1347 3183/3099/1348 3182/3100/1349 +f 3182/3100/1349 3185/3101/1350 3184/3102/1351 +f 3184/3102/1351 3187/3103/1352 3186/3104/1353 +f 3186/3104/1353 3189/3105/1354 3188/3106/1355 +f 3188/3106/1355 3176/3107/1356 3175/3093/1342 +f 3191/3108/1357 3193/3109/1358 3190/3110/1359 +f 3174/3095/1344 3192/3111/1360 3191/3108/1357 +f 3170/3090/1339 3180/3112/1361 3179/3096/1345 +f 3195/3113/1362 3197/3114/1363 3194/3115/1364 +f 3199/3116/1365 3201/3117/1366 3198/3118/1367 +f 3198/3118/1367 3203/3119/1368 3202/3120/1369 +f 3202/3120/1369 3205/3121/1370 3204/3122/1371 +f 3204/3122/1371 3207/3123/1372 3206/3124/1373 +f 3206/3124/1373 3209/3125/1374 3208/3126/1375 +f 3208/3126/1375 3196/3127/1376 3195/3113/1362 +f 3211/3128/1377 3213/3129/1378 3210/3130/1379 +f 3190/3110/1359 3200/3131/1380 3199/3116/1365 +f 3214/3132/1381 3212/3133/1382 3211/3128/1377 +f 3072/2993/1242 3093/3134/1383 3092/3010/1259 +f 3217/3135/1384 3219/3136/1385 3216/3137/1386 +f 3221/3138/1387 3223/3139/1388 3220/3140/1389 +f 3220/3140/1389 3225/3141/1390 3224/3142/1391 +f 3224/3142/1391 3227/3143/1392 3226/3144/1393 +f 3226/3144/1393 3229/3145/1394 3228/3146/1395 +f 3228/3146/1395 3231/3147/1396 3230/3148/1397 +f 3230/3148/1397 3218/3149/1398 3217/3135/1384 +f 3233/3150/1399 3235/3151/1400 3232/3152/1401 +f 3216/3137/1386 3234/3153/1402 3233/3150/1399 +f 3210/3130/1379 3222/3154/1403 3221/3138/1387 +f 3237/3155/1404 3239/3156/1405 3236/3157/1406 +f 3241/3158/1407 3243/3159/1408 3240/3160/1409 +f 3240/3160/1409 3245/3161/1410 3244/3162/1411 +f 3244/3162/1411 3247/3163/1412 3246/3164/1413 +f 3246/3164/1413 3249/3165/1414 3248/3166/1415 +f 3248/3166/1415 3251/3167/1416 3250/3168/1417 +f 3250/3168/1417 3238/3169/1418 3237/3155/1404 +f 3253/3170/1419 3255/3171/1420 3252/3172/1421 +f 3236/3157/1406 3254/3173/1422 3253/3170/1419 +f 3232/3152/1401 3242/3174/1423 3241/3158/1407 +f 3257/3175/1424 3259/3176/1425 3256/3177/1426 +f 3261/3178/1427 3263/3179/1428 3260/3180/1429 +f 3260/3180/1429 3265/3181/1430 3264/3182/1431 +f 3264/3182/1431 3267/3183/1432 3266/3184/1433 +f 3266/3184/1433 3269/3185/1434 3268/3186/1435 +f 3268/3186/1435 3271/3187/1436 3270/3188/1437 +f 3270/3188/1437 3258/3189/1438 3257/3175/1424 +f 3273/3190/1439 3275/3191/1440 3272/3192/1441 +f 3273/3190/1439 3259/3176/1425 3274/3193/1442 +f 3252/3172/1421 3262/3194/1443 3261/3178/1427 +f 3277/3195/1444 3279/3196/1445 3276/3197/1446 +f 3281/3198/1447 3283/3199/1448 3280/3200/1449 +f 3280/3200/1449 3285/3201/1450 3284/3202/1451 +f 3284/3202/1451 3287/3203/1452 3286/3204/1453 +f 3286/3204/1453 3289/3205/1454 3288/3206/1455 +f 3288/3206/1455 3291/3207/1456 3290/3208/1457 +f 3290/3208/1457 3278/3209/1458 3277/3195/1444 +f 2898/2964/1213 3293/3210/1459 3292/3211/1460 +f 3272/3192/1441 3282/3212/1461 3281/3198/1447 +f 3194/3115/1364 3215/3213/1462 3214/3132/1381 +f 3276/3197/1446 3295/3214/1463 3294/3215/1464 +f 3297/3216/1465 3299/3217/1466 3296/3218/1467 +f 3301/3219/1468 3303/3220/1469 3300/3221/1470 +f 3300/3221/1470 3305/3222/1471 3304/3223/1472 +f 3304/3223/1472 3307/3224/1473 3306/3225/1474 +f 3306/3225/1474 3309/3226/1475 3308/3227/1476 +f 3308/3227/1476 3311/3228/1477 3310/3229/1478 +f 3310/3229/1478 3298/3230/1479 3297/3216/1465 +f 3313/3231/1480 3315/3232/1481 3312/3233/1482 +f 3296/3218/1467 3314/3234/1483 3313/3231/1480 +f 3292/3211/1460 3302/3235/1484 3301/3219/1468 +f 3316/3236/1485 3048/3237/1486 3047/2968/1217 +f 3319/3238/1487 3321/3239/1488 3318/3240/1489 +f 3318/3240/1489 3323/3241/1490 3322/3242/1491 +f 3322/3242/1491 3325/3243/1492 3324/3244/1493 +f 3324/3244/1493 3327/3245/1494 3326/3246/1495 +f 3326/3246/1495 3329/3247/1496 3328/3248/1497 +f 3328/3248/1497 3317/3249/1498 3316/3236/1485 +f 3382/3250/1499 3419/3251/1500 3420/3252/1501 +f 3312/3233/1482 3320/3253/1502 3319/3238/1487 +f 3062/2983/1232 3069/3254/1503 3068/2987/1236 +f 3045/3255/1504 3475/3256/1505 2902/3257/1506 +f 3474/3258/1507 3477/3259/1508 3475/3256/1505 +f 3476/3260/1509 3479/3261/1510 3477/3259/1508 +f 3478/3262/1511 2899/2962/1211 3479/3261/1510 +f 3046/2970/1219 3480/3263/1512 3481/3264/1513 +f 3481/3264/1513 3482/3265/1514 3483/3266/1515 +f 3483/3266/1515 3484/3267/1516 3485/3268/1517 +f 3485/3268/1517 2924/3269/1518 2923/3270/1519 +f 3051/2971/1220 3480/3263/1512 3070/2989/1238 +f 3480/3263/1512 3487/3271/1520 3482/3265/1514 +f 3482/3265/1514 3488/3272/1521 3484/3267/1516 +f 3488/3272/1521 2924/3269/1518 3484/3267/1516 +f 3051/2971/1220 3489/3273/1522 3486/3274/1523 +f 3489/3273/1522 3487/3271/1520 3486/3274/1523 +f 3487/3271/1520 3491/3275/1524 3488/3272/1521 +f 3491/3275/1524 2925/3276/1525 3488/3272/1521 +f 3054/2975/1224 3489/3273/1522 3050/2973/1222 +f 3492/3277/1526 3490/3278/1527 3489/3273/1522 +f 3490/3278/1527 3494/3279/1528 3491/3275/1524 +f 3491/3275/1524 2927/3280/1529 2926/3281/1530 +f 3056/2977/1226 3492/3277/1526 3054/2975/1224 +f 3492/3277/1526 3496/3282/1531 3493/3283/1532 +f 3493/3283/1532 3497/3284/1533 3494/3279/1528 +f 3497/3284/1533 2927/3280/1529 3494/3279/1528 +f 3056/2977/1226 3498/3285/1534 3495/3286/1535 +f 3498/3285/1534 3496/3282/1531 3495/3286/1535 +f 3499/3287/1536 3497/3284/1533 3496/3282/1531 +f 3497/3284/1533 2929/3288/1537 2928/3289/1538 +f 3058/2979/1228 3501/3290/1539 3498/3285/1534 +f 3501/3290/1539 3499/3287/1536 3498/3285/1534 +f 3502/3291/1540 3500/3292/1541 3499/3287/1536 +f 3503/3293/1542 2929/3288/1537 3500/3292/1541 +f 3060/2981/1230 3504/3294/1543 3501/3290/1539 +f 3501/3290/1539 3505/3295/1544 3502/3291/1540 +f 3505/3295/1544 3503/3293/1542 3502/3291/1540 +f 3506/3296/1545 2930/3297/1546 3503/3293/1542 +f 3068/2987/1236 3504/3294/1543 3062/2983/1232 +f 3507/3298/1547 3505/3295/1544 3504/3294/1543 +f 3508/3299/1548 3506/3296/1545 3505/3295/1544 +f 3509/3300/1549 2931/3301/1550 3506/3296/1545 +f 3065/2984/1233 3507/3298/1547 3068/2987/1236 +f 3510/3302/1551 3508/3299/1548 3507/3298/1547 +f 3511/3303/1552 3509/3300/1549 3508/3299/1548 +f 3512/3304/1553 2932/3305/1554 3509/3300/1549 +f 3064/2986/1235 3510/3302/1551 3065/2984/1233 +f 3513/3306/1555 3511/3303/1552 3510/3302/1551 +f 3514/3307/1556 3512/3304/1553 3511/3303/1552 +f 3515/3308/1557 2933/3309/1558 3512/3304/1553 +f 3064/2986/1235 3516/3310/1559 3513/3306/1555 +f 3513/3306/1555 3517/3311/1560 3514/3307/1556 +f 3514/3307/1556 3518/3312/1561 3515/3308/1557 +f 3515/3308/1557 2935/3313/1562 2934/3314/1563 +f 3077/2994/1243 3519/3315/1564 3516/3310/1559 +f 3516/3310/1559 3520/3316/1565 3517/3311/1560 +f 3517/3311/1560 3521/3317/1566 3518/3312/1561 +f 3518/3312/1561 2936/3318/1567 2935/3313/1562 +f 3076/2996/1245 3522/3319/1568 3519/3315/1564 +f 3519/3315/1564 3523/3320/1569 3520/3316/1565 +f 3520/3316/1565 3524/3321/1570 3521/3317/1566 +f 3521/3317/1566 2937/3322/1571 2936/3318/1567 +f 3080/2998/1247 3525/3323/1572 3522/3319/1568 +f 3522/3319/1568 3526/3324/1573 3523/3320/1569 +f 3526/3324/1573 3524/3321/1570 3523/3320/1569 +f 3527/3325/1574 2937/3322/1571 3524/3321/1570 +f 3084/3002/1251 3525/3323/1572 3082/3000/1249 +f 3528/3326/1575 3526/3324/1573 3525/3323/1572 +f 3529/3327/1576 3527/3325/1574 3526/3324/1573 +f 3530/3328/1577 2938/3329/1578 3527/3325/1574 +f 3086/3004/1253 3528/3326/1575 3084/3002/1251 +f 3531/3330/1579 3529/3327/1576 3528/3326/1575 +f 3532/3331/1580 3530/3328/1577 3529/3327/1576 +f 3533/3332/1581 2939/3333/1582 3530/3328/1577 +f 3073/2991/1240 3531/3330/1579 3086/3004/1253 +f 3534/3334/1583 3532/3331/1580 3531/3330/1579 +f 3535/3335/1584 3533/3332/1581 3532/3331/1580 +f 3536/3336/1585 2940/3337/1586 3533/3332/1581 +f 3073/2991/1240 3537/3338/1587 3534/3334/1583 +f 3534/3334/1583 3538/3339/1588 3535/3335/1584 +f 3535/3335/1584 3539/3340/1589 3536/3336/1585 +f 3536/3336/1585 2942/3341/1590 2941/3342/1591 +f 3072/2993/1242 3540/3343/1592 3537/3338/1587 +f 3537/3338/1587 3541/3344/1593 3538/3339/1588 +f 3538/3339/1588 3542/3345/1594 3539/3340/1589 +f 3539/3340/1589 2943/3346/1595 2942/3341/1590 +f 3089/3006/1255 3540/3343/1592 3092/3010/1259 +f 3543/3347/1596 3541/3344/1593 3540/3343/1592 +f 3544/3348/1597 3542/3345/1594 3541/3344/1593 +f 3545/3349/1598 2943/3346/1595 3542/3345/1594 +f 3088/3008/1257 3543/3347/1596 3089/3006/1255 +f 3546/3350/1599 3544/3348/1597 3543/3347/1596 +f 3547/3351/1600 3545/3349/1598 3544/3348/1597 +f 3548/3352/1601 2944/3353/1602 3545/3349/1598 +f 3099/3016/1265 3546/3350/1599 3088/3008/1257 +f 3549/3354/1603 3547/3351/1600 3546/3350/1599 +f 3550/3355/1604 3548/3352/1601 3547/3351/1600 +f 3551/3356/1605 2945/3357/1606 3548/3352/1601 +f 3098/3018/1267 3549/3354/1603 3099/3016/1265 +f 3552/3358/1607 3550/3355/1604 3549/3354/1603 +f 3553/3359/1608 3551/3356/1605 3550/3355/1604 +f 3554/3360/1609 2946/3361/1610 3551/3356/1605 +f 3102/3020/1269 3552/3358/1607 3098/3018/1267 +f 3555/3362/1611 3553/3359/1608 3552/3358/1607 +f 3556/3363/1612 3554/3360/1609 3553/3359/1608 +f 3557/3364/1613 2947/3365/1614 3554/3360/1609 +f 3102/3020/1269 3558/3366/1615 3555/3362/1611 +f 3558/3366/1615 3556/3363/1612 3555/3362/1611 +f 3556/3363/1612 3560/3367/1616 3557/3364/1613 +f 3560/3367/1616 2948/3368/1617 3557/3364/1613 +f 3104/3022/1271 3561/3369/1618 3558/3366/1615 +f 3558/3366/1615 3562/3370/1619 3559/3371/1620 +f 3559/3371/1620 3563/3372/1621 3560/3367/1616 +f 3560/3367/1616 2950/3373/1622 2949/3374/1623 +f 3106/3024/1273 3564/3375/1624 3561/3369/1618 +f 3561/3369/1618 3565/3376/1625 3562/3370/1619 +f 3562/3370/1619 3566/3377/1626 3563/3372/1621 +f 3563/3372/1621 2951/3378/1627 2950/3373/1622 +f 3108/3026/1275 3567/3379/1628 3564/3375/1624 +f 3564/3375/1624 3568/3380/1629 3565/3376/1625 +f 3565/3376/1625 3569/3381/1630 3566/3377/1626 +f 3566/3377/1626 2952/3382/1631 2951/3378/1627 +f 3095/3013/1262 3570/3383/1632 3567/3379/1628 +f 3567/3379/1628 3571/3384/1633 3568/3380/1629 +f 3568/3380/1629 3572/3385/1634 3569/3381/1630 +f 3569/3381/1630 2953/3386/1635 2952/3382/1631 +f 3094/3015/1264 3573/3387/1636 3570/3383/1632 +f 3570/3383/1632 3574/3388/1637 3571/3384/1633 +f 3571/3384/1633 3575/3389/1638 3572/3385/1634 +f 3572/3385/1634 2954/3390/1639 2953/3386/1635 +f 3110/3030/1279 3573/3387/1636 3111/3028/1277 +f 3576/3391/1640 3574/3388/1637 3573/3387/1636 +f 3577/3392/1641 3575/3389/1638 3574/3388/1637 +f 3578/3393/1642 2954/3390/1639 3575/3389/1638 +f 3110/3030/1279 3579/3394/1643 3576/3391/1640 +f 3576/3391/1640 3580/3395/1644 3577/3392/1641 +f 3577/3392/1641 3581/3396/1645 3578/3393/1642 +f 3578/3393/1642 2956/2967/1216 2955/3397/1646 +f 3119/3036/1285 3582/3398/1647 3579/3394/1643 +f 3579/3394/1643 3583/3399/1648 3580/3395/1644 +f 3580/3395/1644 3584/3400/1649 3581/3396/1645 +f 3581/3396/1645 2957/2965/1214 2956/2967/1216 +f 3118/3038/1287 3585/3401/1650 3582/3398/1647 +f 3582/3398/1647 3586/3402/1651 3583/3399/1648 +f 3583/3399/1648 3587/3403/1652 3584/3400/1649 +f 3584/3400/1649 2958/3404/1653 2957/2965/1214 +f 3124/3042/1291 3585/3401/1650 3122/3040/1289 +f 3585/3401/1650 3589/3405/1654 3586/3402/1651 +f 3589/3405/1654 3587/3403/1652 3586/3402/1651 +f 3587/3403/1652 2959/3406/1655 2958/3404/1653 +f 3126/3044/1293 3588/3407/1656 3124/3042/1291 +f 3591/3408/1657 3589/3405/1654 3588/3407/1656 +f 3592/3409/1658 3590/3410/1659 3589/3405/1654 +f 3593/3411/1660 2959/3406/1655 3590/3410/1659 +f 3128/3046/1295 3591/3408/1657 3126/3044/1293 +f 3594/3412/1661 3592/3409/1658 3591/3408/1657 +f 3595/3413/1662 3593/3411/1660 3592/3409/1658 +f 3596/3414/1663 2960/3415/1664 3593/3411/1660 +f 3115/3033/1282 3594/3412/1661 3128/3046/1295 +f 3597/3416/1665 3595/3413/1662 3594/3412/1661 +f 3598/3417/1666 3596/3414/1663 3595/3413/1662 +f 3599/3418/1667 2961/3419/1668 3596/3414/1663 +f 3115/3033/1282 3600/3420/1669 3597/3416/1665 +f 3597/3416/1665 3601/3421/1670 3598/3417/1666 +f 3598/3417/1666 3602/3422/1671 3599/3418/1667 +f 3599/3418/1667 2963/3423/1672 2962/3424/1673 +f 3114/3035/1284 3603/3425/1674 3600/3420/1669 +f 3600/3420/1669 3604/3426/1675 3601/3421/1670 +f 3601/3421/1670 3605/3427/1676 3602/3422/1671 +f 3602/3422/1671 2964/3428/1677 2963/3423/1672 +f 3131/3048/1297 3606/3429/1678 3603/3425/1674 +f 3603/3425/1674 3607/3430/1679 3604/3426/1675 +f 3604/3426/1675 3608/3431/1680 3605/3427/1676 +f 3605/3427/1676 2965/3432/1681 2964/3428/1677 +f 3139/3056/1305 3606/3429/1678 3130/3050/1299 +f 3609/3433/1682 3607/3430/1679 3606/3429/1678 +f 3610/3434/1683 3608/3431/1680 3607/3430/1679 +f 3611/3435/1684 2965/3432/1681 3608/3431/1680 +f 3138/3058/1307 3609/3433/1682 3139/3056/1305 +f 3612/3436/1685 3610/3434/1683 3609/3433/1682 +f 3613/3437/1686 3611/3435/1684 3610/3434/1683 +f 3614/3438/1687 2966/3439/1688 3611/3435/1684 +f 3142/3060/1309 3612/3436/1685 3138/3058/1307 +f 3615/3440/1689 3613/3437/1686 3612/3436/1685 +f 3616/3441/1690 3614/3438/1687 3613/3437/1686 +f 3617/3442/1691 2967/3443/1692 3614/3438/1687 +f 3142/3060/1309 3618/3444/1693 3615/3440/1689 +f 3615/3440/1689 3619/3445/1694 3616/3441/1690 +f 3619/3445/1694 3617/3442/1691 3616/3441/1690 +f 3617/3442/1691 2969/3446/1695 2968/3447/1696 +f 3144/3062/1311 3621/3448/1697 3618/3444/1693 +f 3618/3444/1693 3622/3449/1698 3619/3445/1694 +f 3619/3445/1694 3623/3450/1699 3620/3451/1700 +f 3620/3451/1700 2970/3452/1701 2969/3446/1695 +f 3146/3064/1313 3624/3453/1702 3621/3448/1697 +f 3621/3448/1697 3625/3454/1703 3622/3449/1698 +f 3622/3449/1698 3626/3455/1704 3623/3450/1699 +f 3623/3450/1699 2971/3456/1705 2970/3452/1701 +f 3148/3066/1315 3627/3457/1706 3624/3453/1702 +f 3624/3453/1702 3628/3458/1707 3625/3454/1703 +f 3625/3454/1703 3629/3459/1708 3626/3455/1704 +f 3626/3455/1704 2972/3460/1709 2971/3456/1705 +f 3134/3055/1304 3627/3457/1706 3135/3053/1302 +f 3630/3461/1710 3628/3458/1707 3627/3457/1706 +f 3631/3462/1711 3629/3459/1708 3628/3458/1707 +f 3632/3463/1712 2972/3460/1709 3629/3459/1708 +f 3134/3055/1304 3633/3464/1713 3630/3461/1710 +f 3630/3461/1710 3634/3465/1714 3631/3462/1711 +f 3631/3462/1711 3635/3466/1715 3632/3463/1712 +f 3632/3463/1712 2974/3467/1716 2973/3468/1717 +f 3151/3068/1317 3636/3469/1718 3633/3464/1713 +f 3633/3464/1713 3637/3470/1719 3634/3465/1714 +f 3634/3465/1714 3638/3471/1720 3635/3466/1715 +f 3635/3466/1715 2975/3472/1721 2974/3467/1716 +f 3159/3076/1325 3636/3469/1718 3150/3070/1319 +f 3639/3473/1722 3637/3470/1719 3636/3469/1718 +f 3640/3474/1723 3638/3471/1720 3637/3470/1719 +f 3641/3475/1724 2975/3472/1721 3638/3471/1720 +f 3158/3078/1327 3639/3473/1722 3159/3076/1325 +f 3642/3476/1725 3640/3474/1723 3639/3473/1722 +f 3643/3477/1726 3641/3475/1724 3640/3474/1723 +f 3644/3478/1727 2976/3479/1728 3641/3475/1724 +f 3162/3080/1329 3642/3476/1725 3158/3078/1327 +f 3645/3480/1729 3643/3477/1726 3642/3476/1725 +f 3646/3481/1730 3644/3478/1727 3643/3477/1726 +f 3647/3482/1731 2977/3483/1732 3644/3478/1727 +f 3162/3080/1329 3648/3484/1733 3645/3480/1729 +f 3648/3484/1733 3646/3481/1730 3645/3480/1729 +f 3646/3481/1730 3650/3485/1734 3647/3482/1731 +f 3650/3485/1734 2978/3486/1735 3647/3482/1731 +f 3164/3082/1331 3651/3487/1736 3648/3484/1733 +f 3648/3484/1733 3652/3488/1737 3649/3489/1738 +f 3649/3489/1738 3653/3490/1739 3650/3485/1734 +f 3650/3485/1734 2980/3491/1740 2979/3492/1741 +f 3166/3084/1333 3654/3493/1742 3651/3487/1736 +f 3651/3487/1736 3655/3494/1743 3652/3488/1737 +f 3652/3488/1737 3656/3495/1744 3653/3490/1739 +f 3653/3490/1739 2981/3496/1745 2980/3491/1740 +f 3168/3086/1335 3657/3497/1746 3654/3493/1742 +f 3654/3493/1742 3658/3498/1747 3655/3494/1743 +f 3655/3494/1743 3659/3499/1748 3656/3495/1744 +f 3656/3495/1744 2982/3500/1749 2981/3496/1745 +f 3154/3075/1324 3657/3497/1746 3155/3073/1322 +f 3660/3501/1750 3658/3498/1747 3657/3497/1746 +f 3661/3502/1751 3659/3499/1748 3658/3498/1747 +f 3662/3503/1752 2982/3500/1749 3659/3499/1748 +f 3171/3088/1337 3660/3501/1750 3154/3075/1324 +f 3663/3504/1753 3661/3502/1751 3660/3501/1750 +f 3664/3505/1754 3662/3503/1752 3661/3502/1751 +f 3665/3506/1755 2983/3507/1756 3662/3503/1752 +f 3171/3088/1337 3666/3508/1757 3663/3504/1753 +f 3663/3504/1753 3667/3509/1758 3664/3505/1754 +f 3664/3505/1754 3668/3510/1759 3665/3506/1755 +f 3665/3506/1755 2985/3511/1760 2984/3512/1761 +f 3179/3096/1345 3666/3508/1757 3170/3090/1339 +f 3669/3513/1762 3667/3509/1758 3666/3508/1757 +f 3670/3514/1763 3668/3510/1759 3667/3509/1758 +f 3671/3515/1764 2985/3511/1760 3668/3510/1759 +f 3178/3098/1347 3669/3513/1762 3179/3096/1345 +f 3672/3516/1765 3670/3514/1763 3669/3513/1762 +f 3673/3517/1766 3671/3515/1764 3670/3514/1763 +f 3674/3518/1767 2986/3519/1768 3671/3515/1764 +f 3182/3100/1349 3672/3516/1765 3178/3098/1347 +f 3675/3520/1769 3673/3517/1766 3672/3516/1765 +f 3676/3521/1770 3674/3518/1767 3673/3517/1766 +f 3677/3522/1771 2987/3523/1772 3674/3518/1767 +f 3182/3100/1349 3678/3524/1773 3675/3520/1769 +f 3675/3520/1769 3679/3525/1774 3676/3521/1770 +f 3676/3521/1770 3680/3526/1775 3677/3522/1771 +f 3680/3526/1775 2988/3527/1776 3677/3522/1771 +f 3184/3102/1351 3681/3528/1777 3678/3524/1773 +f 3678/3524/1773 3682/3529/1778 3679/3525/1774 +f 3679/3525/1774 3683/3530/1779 3680/3526/1775 +f 3680/3526/1775 2990/3531/1780 2989/3532/1781 +f 3186/3104/1353 3684/3533/1782 3681/3528/1777 +f 3681/3528/1777 3685/3534/1783 3682/3529/1778 +f 3682/3529/1778 3686/3535/1784 3683/3530/1779 +f 3683/3530/1779 2991/3536/1785 2990/3531/1780 +f 3188/3106/1355 3687/3537/1786 3684/3533/1782 +f 3684/3533/1782 3688/3538/1787 3685/3534/1783 +f 3685/3534/1783 3689/3539/1788 3686/3535/1784 +f 3686/3535/1784 2992/3540/1789 2991/3536/1785 +f 3174/3095/1344 3687/3537/1786 3175/3093/1342 +f 3690/3541/1790 3688/3538/1787 3687/3537/1786 +f 3691/3542/1791 3689/3539/1788 3688/3538/1787 +f 3692/3543/1792 2992/3540/1789 3689/3539/1788 +f 3191/3108/1357 3690/3541/1790 3174/3095/1344 +f 3693/3544/1793 3691/3542/1791 3690/3541/1790 +f 3694/3545/1794 3692/3543/1792 3691/3542/1791 +f 3695/3546/1795 2993/3547/1796 3692/3543/1792 +f 3191/3108/1357 3696/3548/1797 3693/3544/1793 +f 3693/3544/1793 3697/3549/1798 3694/3545/1794 +f 3694/3545/1794 3698/3550/1799 3695/3546/1795 +f 3695/3546/1795 2995/3551/1800 2994/2966/1215 +f 3199/3116/1365 3696/3548/1797 3190/3110/1359 +f 3699/3552/1801 3697/3549/1798 3696/3548/1797 +f 3700/3553/1802 3698/3550/1799 3697/3549/1798 +f 3701/3554/1803 2995/3551/1800 3698/3550/1799 +f 3198/3118/1367 3699/3552/1801 3199/3116/1365 +f 3702/3555/1804 3700/3553/1802 3699/3552/1801 +f 3703/3556/1805 3701/3554/1803 3700/3553/1802 +f 3704/3557/1806 2996/3558/1807 3701/3554/1803 +f 3202/3120/1369 3702/3555/1804 3198/3118/1367 +f 3705/3559/1808 3703/3556/1805 3702/3555/1804 +f 3706/3560/1809 3704/3557/1806 3703/3556/1805 +f 3707/3561/1810 2997/3562/1811 3704/3557/1806 +f 3204/3122/1371 3705/3559/1808 3202/3120/1369 +f 3705/3559/1808 3709/3563/1812 3706/3560/1809 +f 3709/3563/1812 3707/3561/1810 3706/3560/1809 +f 3707/3561/1810 2999/3564/1813 2998/3565/1814 +f 3204/3122/1371 3711/3566/1815 3708/3567/1816 +f 3708/3567/1816 3712/3568/1817 3709/3563/1812 +f 3709/3563/1812 3713/3569/1818 3710/3570/1819 +f 3710/3570/1819 3000/3571/1820 2999/3564/1813 +f 3206/3124/1373 3714/3572/1821 3711/3566/1815 +f 3711/3566/1815 3715/3573/1822 3712/3568/1817 +f 3712/3568/1817 3716/3574/1823 3713/3569/1818 +f 3713/3569/1818 3001/3575/1824 3000/3571/1820 +f 3208/3126/1375 3717/3576/1825 3714/3572/1821 +f 3714/3572/1821 3718/3577/1826 3715/3573/1822 +f 3715/3573/1822 3719/3578/1827 3716/3574/1823 +f 3716/3574/1823 3002/3579/1828 3001/3575/1824 +f 3194/3115/1364 3717/3576/1825 3195/3113/1362 +f 3720/3580/1829 3718/3577/1826 3717/3576/1825 +f 3721/3581/1830 3719/3578/1827 3718/3577/1826 +f 3722/3582/1831 3002/3579/1828 3719/3578/1827 +f 3214/3132/1381 3720/3580/1829 3194/3115/1364 +f 3723/3583/1832 3721/3581/1830 3720/3580/1829 +f 3724/3584/1833 3722/3582/1831 3721/3581/1830 +f 3725/3585/1834 3003/3586/1835 3722/3582/1831 +f 3214/3132/1381 3726/3587/1836 3723/3583/1832 +f 3723/3583/1832 3727/3588/1837 3724/3584/1833 +f 3724/3584/1833 3728/3589/1838 3725/3585/1834 +f 3725/3585/1834 3005/3590/1839 3004/3591/1840 +f 3211/3128/1377 3729/3592/1841 3726/3587/1836 +f 3726/3587/1836 3730/3593/1842 3727/3588/1837 +f 3727/3588/1837 3731/3594/1843 3728/3589/1838 +f 3728/3589/1838 3006/3595/1844 3005/3590/1839 +f 3221/3138/1387 3729/3592/1841 3210/3130/1379 +f 3732/3596/1845 3730/3593/1842 3729/3592/1841 +f 3733/3597/1846 3731/3594/1843 3730/3593/1842 +f 3734/3598/1847 3006/3595/1844 3731/3594/1843 +f 3220/3140/1389 3732/3596/1845 3221/3138/1387 +f 3735/3599/1848 3733/3597/1846 3732/3596/1845 +f 3736/3600/1849 3734/3598/1847 3733/3597/1846 +f 3737/3601/1850 3007/3602/1851 3734/3598/1847 +f 3224/3142/1391 3735/3599/1848 3220/3140/1389 +f 3738/3603/1852 3736/3600/1849 3735/3599/1848 +f 3739/3604/1853 3737/3601/1850 3736/3600/1849 +f 3740/3605/1854 3008/3606/1855 3737/3601/1850 +f 3226/3144/1393 3738/3603/1852 3224/3142/1391 +f 3741/3607/1856 3739/3604/1853 3738/3603/1852 +f 3739/3604/1853 3743/3608/1857 3740/3605/1854 +f 3740/3605/1854 3010/3609/1858 3009/3610/1859 +f 3226/3144/1393 3744/3611/1860 3741/3607/1856 +f 3741/3607/1856 3745/3612/1861 3742/3613/1862 +f 3742/3613/1862 3746/3614/1863 3743/3608/1857 +f 3743/3608/1857 3011/3615/1864 3010/3609/1858 +f 3228/3146/1395 3747/3616/1865 3744/3611/1860 +f 3744/3611/1860 3748/3617/1866 3745/3612/1861 +f 3745/3612/1861 3749/3618/1867 3746/3614/1863 +f 3746/3614/1863 3012/3619/1868 3011/3615/1864 +f 3230/3148/1397 3750/3620/1869 3747/3616/1865 +f 3747/3616/1865 3751/3621/1870 3748/3617/1866 +f 3748/3617/1866 3752/3622/1871 3749/3618/1867 +f 3749/3618/1867 3013/3623/1872 3012/3619/1868 +f 3216/3137/1386 3750/3620/1869 3217/3135/1384 +f 3753/3624/1873 3751/3621/1870 3750/3620/1869 +f 3754/3625/1874 3752/3622/1871 3751/3621/1870 +f 3755/3626/1875 3013/3623/1872 3752/3622/1871 +f 3216/3137/1386 3756/3627/1876 3753/3624/1873 +f 3753/3624/1873 3757/3628/1877 3754/3625/1874 +f 3754/3625/1874 3758/3629/1878 3755/3626/1875 +f 3755/3626/1875 3015/3630/1879 3014/3631/1880 +f 3233/3150/1399 3759/3632/1881 3756/3627/1876 +f 3756/3627/1876 3760/3633/1882 3757/3628/1877 +f 3757/3628/1877 3761/3634/1883 3758/3629/1878 +f 3758/3629/1878 3016/3635/1884 3015/3630/1879 +f 3241/3158/1407 3759/3632/1881 3232/3152/1401 +f 3762/3636/1885 3760/3633/1882 3759/3632/1881 +f 3763/3637/1886 3761/3634/1883 3760/3633/1882 +f 3764/3638/1887 3016/3635/1884 3761/3634/1883 +f 3240/3160/1409 3762/3636/1885 3241/3158/1407 +f 3765/3639/1888 3763/3637/1886 3762/3636/1885 +f 3766/3640/1889 3764/3638/1887 3763/3637/1886 +f 3767/3641/1890 3017/3642/1891 3764/3638/1887 +f 3244/3162/1411 3765/3639/1888 3240/3160/1409 +f 3768/3643/1892 3766/3640/1889 3765/3639/1888 +f 3769/3644/1893 3767/3641/1890 3766/3640/1889 +f 3770/3645/1894 3018/3646/1895 3767/3641/1890 +f 3244/3162/1411 3771/3647/1896 3768/3643/1892 +f 3771/3647/1896 3769/3644/1893 3768/3643/1892 +f 3772/3648/1897 3770/3645/1894 3769/3644/1893 +f 3770/3645/1894 3020/3649/1898 3019/3650/1899 +f 3246/3164/1413 3774/3651/1900 3771/3647/1896 +f 3771/3647/1896 3775/3652/1901 3772/3648/1897 +f 3772/3648/1897 3776/3653/1902 3773/3654/1903 +f 3773/3654/1903 3021/3655/1904 3020/3649/1898 +f 3248/3166/1415 3777/3656/1905 3774/3651/1900 +f 3774/3651/1900 3778/3657/1906 3775/3652/1901 +f 3775/3652/1901 3779/3658/1907 3776/3653/1902 +f 3776/3653/1902 3022/3659/1908 3021/3655/1904 +f 3250/3168/1417 3780/3660/1909 3777/3656/1905 +f 3777/3656/1905 3781/3661/1910 3778/3657/1906 +f 3778/3657/1906 3782/3662/1911 3779/3658/1907 +f 3779/3658/1907 3023/3663/1912 3022/3659/1908 +f 3236/3157/1406 3780/3660/1909 3237/3155/1404 +f 3783/3664/1913 3781/3661/1910 3780/3660/1909 +f 3784/3665/1914 3782/3662/1911 3781/3661/1910 +f 3785/3666/1915 3023/3663/1912 3782/3662/1911 +f 3253/3170/1419 3783/3664/1913 3236/3157/1406 +f 3786/3667/1916 3784/3665/1914 3783/3664/1913 +f 3787/3668/1917 3785/3666/1915 3784/3665/1914 +f 3788/3669/1918 3024/3670/1919 3785/3666/1915 +f 3253/3170/1419 3789/3671/1920 3786/3667/1916 +f 3786/3667/1916 3790/3672/1921 3787/3668/1917 +f 3787/3668/1917 3791/3673/1922 3788/3669/1918 +f 3788/3669/1918 3026/3674/1923 3025/3675/1924 +f 3261/3178/1427 3789/3671/1920 3252/3172/1421 +f 3792/3676/1925 3790/3672/1921 3789/3671/1920 +f 3793/3677/1926 3791/3673/1922 3790/3672/1921 +f 3794/3678/1927 3026/3674/1923 3791/3673/1922 +f 3260/3180/1429 3792/3676/1925 3261/3178/1427 +f 3795/3679/1928 3793/3677/1926 3792/3676/1925 +f 3796/3680/1929 3794/3678/1927 3793/3677/1926 +f 3797/3681/1930 3027/3682/1931 3794/3678/1927 +f 3264/3182/1431 3795/3679/1928 3260/3180/1429 +f 3798/3683/1932 3796/3680/1929 3795/3679/1928 +f 3799/3684/1933 3797/3681/1930 3796/3680/1929 +f 3800/3685/1934 3028/3686/1935 3797/3681/1930 +f 3264/3182/1431 3801/3687/1936 3798/3683/1932 +f 3798/3683/1932 3802/3688/1937 3799/3684/1933 +f 3802/3688/1937 3800/3685/1934 3799/3684/1933 +f 3800/3685/1934 3030/3689/1938 3029/3690/1939 +f 3266/3184/1433 3804/3691/1940 3801/3687/1936 +f 3801/3687/1936 3805/3692/1941 3802/3688/1937 +f 3802/3688/1937 3806/3693/1942 3803/3694/1943 +f 3803/3694/1943 3031/3695/1944 3030/3689/1938 +f 3268/3186/1435 3807/3696/1945 3804/3691/1940 +f 3804/3691/1940 3808/3697/1946 3805/3692/1941 +f 3805/3692/1941 3809/3698/1947 3806/3693/1942 +f 3806/3693/1942 3032/3699/1948 3031/3695/1944 +f 3270/3188/1437 3810/3700/1949 3807/3696/1945 +f 3807/3696/1945 3811/3701/1950 3808/3697/1946 +f 3808/3697/1946 3812/3702/1951 3809/3698/1947 +f 3809/3698/1947 3033/3703/1952 3032/3699/1948 +f 3256/3177/1426 3810/3700/1949 3257/3175/1424 +f 3813/3704/1953 3811/3701/1950 3810/3700/1949 +f 3814/3705/1954 3812/3702/1951 3811/3701/1950 +f 3815/3706/1955 3033/3703/1952 3812/3702/1951 +f 3273/3190/1439 3813/3704/1953 3256/3177/1426 +f 3816/3707/1956 3814/3705/1954 3813/3704/1953 +f 3817/3708/1957 3815/3706/1955 3814/3705/1954 +f 3818/3709/1958 3034/3710/1959 3815/3706/1955 +f 3272/3192/1441 3816/3707/1956 3273/3190/1439 +f 3819/3711/1960 3817/3708/1957 3816/3707/1956 +f 3820/3712/1961 3818/3709/1958 3817/3708/1957 +f 3821/3713/1962 3035/3714/1963 3818/3709/1958 +f 3272/3192/1441 3822/3715/1964 3819/3711/1960 +f 3819/3711/1960 3823/3716/1965 3820/3712/1961 +f 3820/3712/1961 3824/3717/1966 3821/3713/1962 +f 3821/3713/1962 3037/3718/1967 3036/3719/1968 +f 3281/3198/1447 3825/3720/1969 3822/3715/1964 +f 3822/3715/1964 3826/3721/1970 3823/3716/1965 +f 3823/3716/1965 3827/3722/1971 3824/3717/1966 +f 3824/3717/1966 3038/3723/1972 3037/3718/1967 +f 3280/3200/1449 3828/3724/1973 3825/3720/1969 +f 3825/3720/1969 3829/3725/1974 3826/3721/1970 +f 3826/3721/1970 3830/3726/1975 3827/3722/1971 +f 3827/3722/1971 3039/3727/1976 3038/3723/1972 +f 3284/3202/1451 3831/3728/1977 3828/3724/1973 +f 3828/3724/1973 3832/3729/1978 3829/3725/1974 +f 3832/3729/1978 3830/3726/1975 3829/3725/1974 +f 3833/3730/1979 3039/3727/1976 3830/3726/1975 +f 3288/3206/1455 3831/3728/1977 3286/3204/1453 +f 3834/3731/1980 3832/3729/1978 3831/3728/1977 +f 3835/3732/1981 3833/3730/1979 3832/3729/1978 +f 3836/3733/1982 3040/3734/1983 3833/3730/1979 +f 3290/3208/1457 3834/3731/1980 3288/3206/1455 +f 3837/3735/1984 3835/3732/1981 3834/3731/1980 +f 3838/3736/1985 3836/3733/1982 3835/3732/1981 +f 3839/3737/1986 3041/3738/1987 3836/3733/1982 +f 3277/3195/1444 3837/3735/1984 3290/3208/1457 +f 3840/3739/1988 3838/3736/1985 3837/3735/1984 +f 3841/3740/1989 3839/3737/1986 3838/3736/1985 +f 3842/3741/1990 3042/3742/1991 3839/3737/1986 +f 3277/3195/1444 3843/3743/1992 3840/3739/1988 +f 3840/3739/1988 3844/3744/1993 3841/3740/1989 +f 3841/3740/1989 3845/3745/1994 3842/3741/1990 +f 3842/3741/1990 3044/3746/1995 3043/3747/1996 +f 3276/3197/1446 3478/3262/1511 3843/3743/1992 +f 3843/3743/1992 3476/3260/1509 3844/3744/1993 +f 3844/3744/1993 3474/3258/1507 3845/3745/1994 +f 3845/3745/1994 3045/3255/1504 3044/3746/1995 +f 2899/2962/1211 3846/3748/1997 3479/3261/1510 +f 3479/3261/1510 3847/3749/1998 3477/3259/1508 +f 3477/3259/1508 3848/3750/1999 3475/3256/1505 +f 3475/3256/1505 2903/3751/2000 2902/3257/1506 +f 2898/2964/1213 3849/3752/2001 3846/3748/1997 +f 3846/3748/1997 3850/3753/2002 3847/3749/1998 +f 3847/3749/1998 3851/3754/2003 3848/3750/1999 +f 3848/3750/1999 2904/3755/2004 2903/3751/2000 +f 3301/3219/1468 3849/3752/2001 3292/3211/1460 +f 3852/3756/2005 3850/3753/2002 3849/3752/2001 +f 3853/3757/2006 3851/3754/2003 3850/3753/2002 +f 3854/3758/2007 2904/3755/2004 3851/3754/2003 +f 3300/3221/1470 3852/3756/2005 3301/3219/1468 +f 3855/3759/2008 3853/3757/2006 3852/3756/2005 +f 3856/3760/2009 3854/3758/2007 3853/3757/2006 +f 3857/3761/2010 2905/3762/2011 3854/3758/2007 +f 3304/3223/1472 3855/3759/2008 3300/3221/1470 +f 3858/3763/2012 3856/3760/2009 3855/3759/2008 +f 3859/3764/2013 3857/3761/2010 3856/3760/2009 +f 3860/3765/2014 2906/3766/2015 3857/3761/2010 +f 3304/3223/1472 3861/3767/2016 3858/3763/2012 +f 3861/3767/2016 3859/3764/2013 3858/3763/2012 +f 3862/3768/2017 3860/3765/2014 3859/3764/2013 +f 3863/3769/2018 2907/3770/2019 3860/3765/2014 +f 3306/3225/1474 3864/3771/2020 3861/3767/2016 +f 3861/3767/2016 3865/3772/2021 3862/3768/2017 +f 3862/3768/2017 3866/3773/2022 3863/3769/2018 +f 3863/3769/2018 2909/3774/2023 2908/3775/2024 +f 3308/3227/1476 3867/3776/2025 3864/3771/2020 +f 3864/3771/2020 3868/3777/2026 3865/3772/2021 +f 3865/3772/2021 3869/3778/2027 3866/3773/2022 +f 3866/3773/2022 2910/3779/2028 2909/3774/2023 +f 3310/3229/1478 3870/3780/2029 3867/3776/2025 +f 3867/3776/2025 3871/3781/2030 3868/3777/2026 +f 3868/3777/2026 3872/3782/2031 3869/3778/2027 +f 3869/3778/2027 2911/3783/2032 2910/3779/2028 +f 3296/3218/1467 3870/3780/2029 3297/3216/1465 +f 3873/3784/2033 3871/3781/2030 3870/3780/2029 +f 3874/3785/2034 3872/3782/2031 3871/3781/2030 +f 3875/3786/2035 2911/3783/2032 3872/3782/2031 +f 3296/3218/1467 3876/3787/2036 3873/3784/2033 +f 3873/3784/2033 3877/3788/2037 3874/3785/2034 +f 3874/3785/2034 3878/3789/2038 3875/3786/2035 +f 3875/3786/2035 2913/3790/2039 2912/3791/2040 +f 3313/3231/1480 3879/3792/2041 3876/3787/2036 +f 3876/3787/2036 3880/3793/2042 3877/3788/2037 +f 3877/3788/2037 3881/3794/2043 3878/3789/2038 +f 3878/3789/2038 2914/3795/2044 2913/3790/2039 +f 3319/3238/1487 3879/3792/2041 3312/3233/1482 +f 3882/3796/2045 3880/3793/2042 3879/3792/2041 +f 3880/3793/2042 3884/3797/2046 3881/3794/2043 +f 3881/3794/2043 2915/3798/2047 2914/3795/2044 +f 3319/3238/1487 3885/3799/2048 3882/3796/2045 +f 3882/3796/2045 3886/3800/2049 3883/3801/2050 +f 3886/3800/2049 3884/3797/2046 3883/3801/2050 +f 3887/3802/2051 2915/3798/2047 3884/3797/2046 +f 3318/3240/1489 3888/3803/2052 3885/3799/2048 +f 3888/3803/2052 3886/3800/2049 3885/3799/2048 +f 3889/3804/2053 3887/3802/2051 3886/3800/2049 +f 3890/3805/2054 2916/3806/2055 3887/3802/2051 +f 3322/3242/1491 3891/3807/2056 3888/3803/2052 +f 3891/3807/2056 3889/3804/2053 3888/3803/2052 +f 3889/3804/2053 3893/3808/2057 3890/3805/2054 +f 3893/3808/2057 2917/3809/2058 3890/3805/2054 +f 3324/3244/1493 3894/3810/2059 3891/3807/2056 +f 3891/3807/2056 3895/3811/2060 3892/3812/2061 +f 3895/3811/2060 3893/3808/2057 3892/3812/2061 +f 3896/3813/2062 2918/3814/2063 3893/3808/2057 +f 3328/3248/1497 3894/3810/2059 3326/3246/1495 +f 3894/3810/2059 3898/3815/2064 3895/3811/2060 +f 3895/3811/2060 3899/3816/2065 3896/3813/2062 +f 3896/3813/2062 2920/3817/2066 2919/3818/2067 +f 3316/3236/1485 3897/3819/2068 3328/3248/1497 +f 3897/3819/2068 3901/3820/2069 3898/3815/2064 +f 3901/3820/2069 3899/3816/2065 3898/3815/2064 +f 3902/3821/2070 2920/3817/2066 3899/3816/2065 +f 3047/2968/1217 3900/3822/2071 3316/3236/1485 +f 3903/3823/2072 3901/3820/2069 3900/3822/2071 +f 3904/3824/2073 3902/3821/2070 3901/3820/2069 +f 3905/3825/2074 2921/3826/2075 3902/3821/2070 +f 3047/2968/1217 3481/3264/1513 3903/3823/2072 +f 3481/3264/1513 3904/3824/2073 3903/3823/2072 +f 3483/3266/1515 3905/3825/2074 3904/3824/2073 +f 3905/3825/2074 2923/3270/1519 2922/3827/2076 +f 2900/3828/2077 3906/3829/2078 3907/3830/2079 +f 3907/3830/2079 3908/3831/2080 3909/3832/2081 +f 3909/3832/2081 3910/3833/2082 3911/3834/2083 +f 3911/3834/2083 3331/3835/2084 3330/3836/2085 +f 3452/3837/2086 3913/3838/2087 3453/3839/2088 +f 3912/3840/2089 3915/3841/2090 3913/3838/2087 +f 3914/3842/2091 3917/3843/2092 3915/3841/2090 +f 3916/3844/2093 3049/2969/1218 3917/3843/2092 +f 3452/3837/2086 3918/3845/2094 3912/3840/2089 +f 3918/3845/2094 3914/3842/2091 3912/3840/2089 +f 3919/3846/2095 3916/3844/2093 3914/3842/2091 +f 3916/3844/2093 3052/2990/1239 3071/3012/1261 +f 3451/3847/2096 3921/3848/2097 3918/3845/2094 +f 3921/3848/2097 3919/3846/2095 3918/3845/2094 +f 3919/3846/2095 3923/3849/2098 3920/3850/2099 +f 3923/3849/2098 3052/2990/1239 3920/3850/2099 +f 3449/3851/2100 3921/3848/2097 3450/3852/2101 +f 3924/3853/2102 3922/3854/2103 3921/3848/2097 +f 3922/3854/2103 3926/3855/2104 3923/3849/2098 +f 3923/3849/2098 3055/2974/1223 3053/2972/1221 +f 3449/3851/2100 3927/3856/2105 3924/3853/2102 +f 3927/3856/2105 3925/3857/2106 3924/3853/2102 +f 3928/3858/2107 3926/3855/2104 3925/3857/2106 +f 3926/3855/2104 3057/2976/1225 3055/2974/1223 +f 3447/3859/2108 3927/3856/2105 3448/3860/2109 +f 3930/3861/2110 3928/3858/2107 3927/3856/2105 +f 3928/3858/2107 3932/3862/2111 3929/3863/2112 +f 3929/3863/2112 3059/2978/1227 3057/2976/1225 +f 3446/3864/2113 3930/3861/2110 3447/3859/2108 +f 3930/3861/2110 3934/3865/2114 3931/3866/2115 +f 3931/3866/2115 3935/3867/2116 3932/3862/2111 +f 3935/3867/2116 3059/2978/1227 3932/3862/2111 +f 3446/3864/2113 3936/3868/2117 3933/3869/2118 +f 3933/3869/2118 3937/3870/2119 3934/3865/2114 +f 3937/3870/2119 3935/3867/2116 3934/3865/2114 +f 3938/3871/2120 3061/2980/1229 3935/3867/2116 +f 3445/3872/2121 3939/3873/2122 3936/3868/2117 +f 3936/3868/2117 3940/3874/2123 3937/3870/2119 +f 3937/3870/2119 3941/3875/2124 3938/3871/2120 +f 3938/3871/2120 3069/3254/1503 3063/2982/1231 +f 3444/3876/2125 3942/3877/2126 3939/3873/2122 +f 3939/3873/2122 3943/3878/2127 3940/3874/2123 +f 3940/3874/2123 3944/3879/2128 3941/3875/2124 +f 3941/3875/2124 3066/2988/1237 3069/3254/1503 +f 3443/3880/2129 3945/3881/2130 3942/3877/2126 +f 3942/3877/2126 3946/3882/2131 3943/3878/2127 +f 3943/3878/2127 3947/3883/2132 3944/3879/2128 +f 3944/3879/2128 3067/2985/1234 3066/2988/1237 +f 3441/3884/2133 3945/3881/2130 3442/3885/2134 +f 3948/3886/2135 3946/3882/2131 3945/3881/2130 +f 3949/3887/2136 3947/3883/2132 3946/3882/2131 +f 3950/3888/2137 3067/2985/1234 3947/3883/2132 +f 3440/3889/2138 3948/3886/2135 3441/3884/2133 +f 3951/3890/2139 3949/3887/2136 3948/3886/2135 +f 3952/3891/2140 3950/3888/2137 3949/3887/2136 +f 3953/3892/2141 3078/3009/1258 3950/3888/2137 +f 3439/3893/2142 3951/3890/2139 3440/3889/2138 +f 3954/3894/2143 3952/3891/2140 3951/3890/2139 +f 3955/3895/2144 3953/3892/2141 3952/3891/2140 +f 3956/3896/2145 3079/2995/1244 3953/3892/2141 +f 3439/3893/2142 3957/3897/2146 3954/3894/2143 +f 3954/3894/2143 3958/3898/2147 3955/3895/2144 +f 3958/3898/2147 3956/3896/2145 3955/3895/2144 +f 3959/3899/2148 3081/2997/1246 3956/3896/2145 +f 3438/3900/2149 3960/3901/2150 3957/3897/2146 +f 3957/3897/2146 3961/3902/2151 3958/3898/2147 +f 3958/3898/2147 3962/3903/2152 3959/3899/2148 +f 3959/3899/2148 3085/3001/1250 3083/2999/1248 +f 3437/3904/2153 3963/3905/2154 3960/3901/2150 +f 3960/3901/2150 3964/3906/2155 3961/3902/2151 +f 3961/3902/2151 3965/3907/2156 3962/3903/2152 +f 3962/3903/2152 3087/3003/1252 3085/3001/1250 +f 3436/3908/2157 3966/3909/2158 3963/3905/2154 +f 3963/3905/2154 3967/3910/2159 3964/3906/2155 +f 3964/3906/2155 3968/3911/2160 3965/3907/2156 +f 3965/3907/2156 3074/3005/1254 3087/3003/1252 +f 3434/3912/2161 3966/3909/2158 3435/3913/2162 +f 3969/3914/2163 3967/3910/2159 3966/3909/2158 +f 3970/3915/2164 3968/3911/2160 3967/3910/2159 +f 3971/3916/2165 3074/3005/1254 3968/3911/2160 +f 3433/3917/2166 3969/3914/2163 3434/3912/2161 +f 3972/3918/2167 3970/3915/2164 3969/3914/2163 +f 3973/3919/2168 3971/3916/2165 3970/3915/2164 +f 3974/3920/2169 3075/2992/1241 3971/3916/2165 +f 3433/3917/2166 3975/3921/2170 3972/3918/2167 +f 3972/3918/2167 3976/3922/2171 3973/3919/2168 +f 3973/3919/2168 3977/3923/2172 3974/3920/2169 +f 3974/3920/2169 3090/3011/1260 3093/3134/1383 +f 3432/3924/2173 3978/3925/2174 3975/3921/2170 +f 3975/3921/2170 3979/3926/2175 3976/3922/2171 +f 3976/3922/2171 3980/3927/2176 3977/3923/2172 +f 3977/3923/2172 3091/3007/1256 3090/3011/1260 +f 3431/3928/2177 3981/3929/2178 3978/3925/2174 +f 3978/3925/2174 3982/3930/2179 3979/3926/2175 +f 3979/3926/2175 3983/3931/2180 3980/3927/2176 +f 3980/3927/2176 3100/3032/1281 3091/3007/1256 +f 3430/3932/2181 3984/3933/2182 3981/3929/2178 +f 3981/3929/2178 3985/3934/2183 3982/3930/2179 +f 3982/3930/2179 3986/3935/2184 3983/3931/2180 +f 3983/3931/2180 3101/3017/1266 3100/3032/1281 +f 3429/3936/2185 3987/3937/2186 3984/3933/2182 +f 3984/3933/2182 3988/3938/2187 3985/3934/2183 +f 3985/3934/2183 3989/3939/2188 3986/3935/2184 +f 3986/3935/2184 3103/3019/1268 3101/3017/1266 +f 3428/3940/2189 3990/3941/2190 3987/3937/2186 +f 3990/3941/2190 3988/3938/2187 3987/3937/2186 +f 3988/3938/2187 3992/3942/2191 3989/3939/2188 +f 3992/3942/2191 3103/3019/1268 3989/3939/2188 +f 3426/3943/2192 3990/3941/2190 3427/3944/2193 +f 3993/3945/2194 3991/3946/2195 3990/3941/2190 +f 3994/3947/2196 3992/3942/2191 3991/3946/2195 +f 3995/3948/2197 3105/3021/1270 3992/3942/2191 +f 3425/3949/2198 3993/3945/2194 3426/3943/2192 +f 3996/3950/2199 3994/3947/2196 3993/3945/2194 +f 3997/3951/2200 3995/3948/2197 3994/3947/2196 +f 3998/3952/2201 3107/3023/1272 3995/3948/2197 +f 3424/3953/2202 3996/3950/2199 3425/3949/2198 +f 3999/3954/2203 3997/3951/2200 3996/3950/2199 +f 4000/3955/2204 3998/3952/2201 3997/3951/2200 +f 4001/3956/2205 3109/3025/1274 3998/3952/2201 +f 3423/3957/2206 3999/3954/2203 3424/3953/2202 +f 4002/3958/2207 4000/3955/2204 3999/3954/2203 +f 4003/3959/2208 4001/3956/2205 4000/3955/2204 +f 4004/3960/2209 3096/3027/1276 4001/3956/2205 +f 3422/3961/2210 4002/3958/2207 3423/3957/2206 +f 4005/3962/2211 4003/3959/2208 4002/3958/2207 +f 4006/3963/2212 4004/3960/2209 4003/3959/2208 +f 4007/3964/2213 3097/3014/1263 4004/3960/2209 +f 3422/3961/2210 4008/3965/2214 4005/3962/2211 +f 4005/3962/2211 4009/3966/2215 4006/3963/2212 +f 4006/3963/2212 4010/3967/2216 4007/3964/2213 +f 4007/3964/2213 3113/3029/1278 3112/3031/1280 +f 3420/3252/1501 4008/3965/2214 3421/3968/2217 +f 4011/3969/2218 4009/3966/2215 4008/3965/2214 +f 4012/3970/2219 4010/3967/2216 4009/3966/2215 +f 4013/3971/2220 3113/3029/1278 4010/3967/2216 +f 3419/3251/1500 4011/3969/2218 3420/3252/1501 +f 4014/3972/2221 4012/3970/2219 4011/3969/2218 +f 4015/3973/2222 4013/3971/2220 4012/3970/2219 +f 4016/3974/2223 3120/3052/1301 4013/3971/2220 +f 3418/3975/2224 4014/3972/2221 3419/3251/1500 +f 4017/3976/2225 4015/3973/2222 4014/3972/2221 +f 4018/3977/2226 4016/3974/2223 4015/3973/2222 +f 4019/3978/2227 3121/3037/1286 4016/3974/2223 +f 3417/3979/2228 4017/3976/2225 3418/3975/2224 +f 4017/3976/2225 4021/3980/2229 4018/3977/2226 +f 4021/3980/2229 4019/3978/2227 4018/3977/2226 +f 4019/3978/2227 3125/3041/1290 3123/3039/1288 +f 3417/3979/2228 4023/3981/2230 4020/3982/2231 +f 4020/3982/2231 4024/3983/2232 4021/3980/2229 +f 4021/3980/2229 4025/3984/2233 4022/3985/2234 +f 4022/3985/2234 3127/3043/1292 3125/3041/1290 +f 3416/3986/2235 4026/3987/2236 4023/3981/2230 +f 4023/3981/2230 4027/3988/2237 4024/3983/2232 +f 4024/3983/2232 4028/3989/2238 4025/3984/2233 +f 4025/3984/2233 3129/3045/1294 3127/3043/1292 +f 3415/3990/2239 4029/3991/2240 4026/3987/2236 +f 4026/3987/2236 4030/3992/2241 4027/3988/2237 +f 4027/3988/2237 4031/3993/2242 4028/3989/2238 +f 4028/3989/2238 3116/3047/1296 3129/3045/1294 +f 3413/3994/2243 4029/3991/2240 3414/3995/2244 +f 4032/3996/2245 4030/3992/2241 4029/3991/2240 +f 4033/3997/2246 4031/3993/2242 4030/3992/2241 +f 4034/3998/2247 3116/3047/1296 4031/3993/2242 +f 3412/3999/2248 4032/3996/2245 3413/3994/2243 +f 4035/4000/2249 4033/3997/2246 4032/3996/2245 +f 4036/4001/2250 4034/3998/2247 4033/3997/2246 +f 4037/4002/2251 3117/3034/1283 4034/3998/2247 +f 3411/4003/2252 4035/4000/2249 3412/3999/2248 +f 4038/4004/2253 4036/4001/2250 4035/4000/2249 +f 4039/4005/2254 4037/4002/2251 4036/4001/2250 +f 4040/4006/2255 3132/3051/1300 4037/4002/2251 +f 3411/4003/2252 4041/4007/2256 4038/4004/2253 +f 4038/4004/2253 4042/4008/2257 4039/4005/2254 +f 4039/4005/2254 4043/4009/2258 4040/4006/2255 +f 4040/4006/2255 3140/3072/1321 3133/3049/1298 +f 3410/4010/2259 4044/4011/2260 4041/4007/2256 +f 4041/4007/2256 4045/4012/2261 4042/4008/2257 +f 4042/4008/2257 4046/4013/2262 4043/4009/2258 +f 4043/4009/2258 3141/3057/1306 3140/3072/1321 +f 3409/4014/2263 4047/4015/2264 4044/4011/2260 +f 4044/4011/2260 4048/4016/2265 4045/4012/2261 +f 4045/4012/2261 4049/4017/2266 4046/4013/2262 +f 4046/4013/2262 3143/3059/1308 3141/3057/1306 +f 3408/4018/2267 4050/4019/2268 4047/4015/2264 +f 4047/4015/2264 4051/4020/2269 4048/4016/2265 +f 4048/4016/2265 4052/4021/2270 4049/4017/2266 +f 4049/4017/2266 3145/3061/1310 3143/3059/1308 +f 3406/4022/2271 4050/4019/2268 3407/4023/2272 +f 4053/4024/2273 4051/4020/2269 4050/4019/2268 +f 4054/4025/2274 4052/4021/2270 4051/4020/2269 +f 4055/4026/2275 3145/3061/1310 4052/4021/2270 +f 3405/4027/2276 4053/4024/2273 3406/4022/2271 +f 4056/4028/2277 4054/4025/2274 4053/4024/2273 +f 4057/4029/2278 4055/4026/2275 4054/4025/2274 +f 4058/4030/2279 3147/3063/1312 4055/4026/2275 +f 3404/4031/2280 4056/4028/2277 3405/4027/2276 +f 4059/4032/2281 4057/4029/2278 4056/4028/2277 +f 4060/4033/2282 4058/4030/2279 4057/4029/2278 +f 4061/4034/2283 3149/3065/1314 4058/4030/2279 +f 3404/4031/2280 4062/4035/2284 4059/4032/2281 +f 4059/4032/2281 4063/4036/2285 4060/4033/2282 +f 4060/4033/2282 4064/4037/2286 4061/4034/2283 +f 4061/4034/2283 3137/3054/1303 3136/3067/1316 +f 3402/4038/2287 4062/4035/2284 3403/4039/2288 +f 4065/4040/2289 4063/4036/2285 4062/4035/2284 +f 4066/4041/2290 4064/4037/2286 4063/4036/2285 +f 4067/4042/2291 3137/3054/1303 4064/4037/2286 +f 3401/4043/2292 4065/4040/2289 3402/4038/2287 +f 4068/4044/2293 4066/4041/2290 4065/4040/2289 +f 4069/4045/2294 4067/4042/2291 4066/4041/2290 +f 4070/4046/2295 3152/3071/1320 4067/4042/2291 +f 3401/4043/2292 4071/4047/2296 4068/4044/2293 +f 4068/4044/2293 4072/4048/2297 4069/4045/2294 +f 4069/4045/2294 4073/4049/2298 4070/4046/2295 +f 4070/4046/2295 3160/3092/1341 3153/3069/1318 +f 3400/4050/2299 4074/4051/2300 4071/4047/2296 +f 4071/4047/2296 4075/4052/2301 4072/4048/2297 +f 4072/4048/2297 4076/4053/2302 4073/4049/2298 +f 4073/4049/2298 3161/3077/1326 3160/3092/1341 +f 3399/4054/2303 4077/4055/2304 4074/4051/2300 +f 4074/4051/2300 4078/4056/2305 4075/4052/2301 +f 4075/4052/2301 4079/4057/2306 4076/4053/2302 +f 4076/4053/2302 3163/3079/1328 3161/3077/1326 +f 3398/4058/2307 4080/4059/2308 4077/4055/2304 +f 4080/4059/2308 4078/4056/2305 4077/4055/2304 +f 4078/4056/2305 4082/4060/2309 4079/4057/2306 +f 4082/4060/2309 3163/3079/1328 4079/4057/2306 +f 3396/4061/2310 4080/4059/2308 3397/4062/2311 +f 4083/4063/2312 4081/4064/2313 4080/4059/2308 +f 4084/4065/2314 4082/4060/2309 4081/4064/2313 +f 4085/4066/2315 3165/3081/1330 4082/4060/2309 +f 3395/4067/2316 4083/4063/2312 3396/4061/2310 +f 4086/4068/2317 4084/4065/2314 4083/4063/2312 +f 4087/4069/2318 4085/4066/2315 4084/4065/2314 +f 4088/4070/2319 3167/3083/1332 4085/4066/2315 +f 3394/4071/2320 4086/4068/2317 3395/4067/2316 +f 4089/4072/2321 4087/4069/2318 4086/4068/2317 +f 4090/4073/2322 4088/4070/2319 4087/4069/2318 +f 4091/4074/2323 3169/3085/1334 4088/4070/2319 +f 3394/4071/2320 4092/4075/2324 4089/4072/2321 +f 4089/4072/2321 4093/4076/2325 4090/4073/2322 +f 4090/4073/2322 4094/4077/2326 4091/4074/2323 +f 4091/4074/2323 3157/3074/1323 3156/3087/1336 +f 3393/4078/2327 4095/4079/2328 4092/4075/2324 +f 4092/4075/2324 4096/4080/2329 4093/4076/2325 +f 4093/4076/2325 4097/4081/2330 4094/4077/2326 +f 4094/4077/2326 3172/3091/1340 3157/3074/1323 +f 3391/4082/2331 4095/4079/2328 3392/4083/2332 +f 4098/4084/2333 4096/4080/2329 4095/4079/2328 +f 4099/4085/2334 4097/4081/2330 4096/4080/2329 +f 4100/4086/2335 3172/3091/1340 4097/4081/2330 +f 3391/4082/2331 4101/4087/2336 4098/4084/2333 +f 4098/4084/2333 4102/4088/2337 4099/4085/2334 +f 4099/4085/2334 4103/4089/2338 4100/4086/2335 +f 4100/4086/2335 3180/3112/1361 3173/3089/1338 +f 3390/4090/2339 4104/4091/2340 4101/4087/2336 +f 4101/4087/2336 4105/4092/2341 4102/4088/2337 +f 4102/4088/2337 4106/4093/2342 4103/4089/2338 +f 4103/4089/2338 3181/3097/1346 3180/3112/1361 +f 3389/4094/2343 4107/4095/2344 4104/4091/2340 +f 4104/4091/2340 4108/4096/2345 4105/4092/2341 +f 4105/4092/2341 4109/4097/2346 4106/4093/2342 +f 4106/4093/2342 3183/3099/1348 3181/3097/1346 +f 3388/4098/2347 4110/4099/2348 4107/4095/2344 +f 4110/4099/2348 4108/4096/2345 4107/4095/2344 +f 4108/4096/2345 4112/4100/2349 4109/4097/2346 +f 4112/4100/2349 3183/3099/1348 4109/4097/2346 +f 3386/4101/2350 4110/4099/2348 3387/4102/2351 +f 4113/4103/2352 4111/4104/2353 4110/4099/2348 +f 4114/4105/2354 4112/4100/2349 4111/4104/2353 +f 4115/4106/2355 3185/3101/1350 4112/4100/2349 +f 3385/4107/2356 4113/4103/2352 3386/4101/2350 +f 4116/4108/2357 4114/4105/2354 4113/4103/2352 +f 4117/4109/2358 4115/4106/2355 4114/4105/2354 +f 4118/4110/2359 3187/3103/1352 4115/4106/2355 +f 3384/4111/2360 4116/4108/2357 3385/4107/2356 +f 4119/4112/2361 4117/4109/2358 4116/4108/2357 +f 4120/4113/2362 4118/4110/2359 4117/4109/2358 +f 4121/4114/2363 3189/3105/1354 4118/4110/2359 +f 3384/4111/2360 4122/4115/2364 4119/4112/2361 +f 4119/4112/2361 4123/4116/2365 4120/4113/2362 +f 4120/4113/2362 4124/4117/2366 4121/4114/2363 +f 4121/4114/2363 3177/3094/1343 3176/3107/1356 +f 3383/4118/2367 4125/4119/2368 4122/4115/2364 +f 4122/4115/2364 4126/4120/2369 4123/4116/2365 +f 4123/4116/2365 4127/4121/2370 4124/4117/2366 +f 4124/4117/2366 3192/3111/1360 3177/3094/1343 +f 3381/4122/2371 4125/4119/2368 3382/3250/1499 +f 4128/4123/2372 4126/4120/2369 4125/4119/2368 +f 4129/4124/2373 4127/4121/2370 4126/4120/2369 +f 4130/4125/2374 3192/3111/1360 4127/4121/2370 +f 3381/4122/2371 4131/4126/2375 4128/4123/2372 +f 4128/4123/2372 4132/4127/2376 4129/4124/2373 +f 4129/4124/2373 4133/4128/2377 4130/4125/2374 +f 4130/4125/2374 3200/3131/1380 3193/3109/1358 +f 3380/4129/2378 4134/4130/2379 4131/4126/2375 +f 4131/4126/2375 4135/4131/2380 4132/4127/2376 +f 4132/4127/2376 4136/4132/2381 4133/4128/2377 +f 4133/4128/2377 3201/3117/1366 3200/3131/1380 +f 3379/4133/2382 4137/4134/2383 4134/4130/2379 +f 4134/4130/2379 4138/4135/2384 4135/4131/2380 +f 4135/4131/2380 4139/4136/2385 4136/4132/2381 +f 4136/4132/2381 3203/3119/1368 3201/3117/1366 +f 3377/4137/2386 4137/4134/2383 3378/4138/2387 +f 4137/4134/2383 4141/4139/2388 4138/4135/2384 +f 4141/4139/2388 4139/4136/2385 4138/4135/2384 +f 4142/4140/2389 3203/3119/1368 4139/4136/2385 +f 3376/4141/2390 4140/4142/2391 3377/4137/2386 +f 4143/4143/2392 4141/4139/2388 4140/4142/2391 +f 4144/4144/2393 4142/4140/2389 4141/4139/2388 +f 4145/4145/2394 3205/3121/1370 4142/4140/2389 +f 3375/4146/2395 4143/4143/2392 3376/4141/2390 +f 4146/4147/2396 4144/4144/2393 4143/4143/2392 +f 4147/4148/2397 4145/4145/2394 4144/4144/2393 +f 4148/4149/2398 3207/3123/1372 4145/4145/2394 +f 3374/4150/2399 4146/4147/2396 3375/4146/2395 +f 4149/4151/2400 4147/4148/2397 4146/4147/2396 +f 4150/4152/2401 4148/4149/2398 4147/4148/2397 +f 4151/4153/2402 3209/3125/1374 4148/4149/2398 +f 3374/4150/2399 4152/4154/2403 4149/4151/2400 +f 4149/4151/2400 4153/4155/2404 4150/4152/2401 +f 4150/4152/2401 4154/4156/2405 4151/4153/2402 +f 4151/4153/2402 3197/3114/1363 3196/3127/1376 +f 3373/4157/2406 4155/4158/2407 4152/4154/2403 +f 4152/4154/2403 4156/4159/2408 4153/4155/2404 +f 4153/4155/2404 4157/4160/2409 4154/4156/2405 +f 4154/4156/2405 3215/3213/1462 3197/3114/1363 +f 3371/4161/2410 4155/4158/2407 3372/4162/2411 +f 4158/4163/2412 4156/4159/2408 4155/4158/2407 +f 4159/4164/2413 4157/4160/2409 4156/4159/2408 +f 4160/4165/2414 3215/3213/1462 4157/4160/2409 +f 3370/4166/2415 4158/4163/2412 3371/4161/2410 +f 4161/4167/2416 4159/4164/2413 4158/4163/2412 +f 4162/4168/2417 4160/4165/2414 4159/4164/2413 +f 4163/4169/2418 3212/3133/1382 4160/4165/2414 +f 3370/4166/2415 4164/4170/2419 4161/4167/2416 +f 4161/4167/2416 4165/4171/2420 4162/4168/2417 +f 4162/4168/2417 4166/4172/2421 4163/4169/2418 +f 4163/4169/2418 3222/3154/1403 3213/3129/1378 +f 3369/4173/2422 4167/4174/2423 4164/4170/2419 +f 4164/4170/2419 4168/4175/2424 4165/4171/2420 +f 4165/4171/2420 4169/4176/2425 4166/4172/2421 +f 4166/4172/2421 3223/3139/1388 3222/3154/1403 +f 3368/4177/2426 4170/4178/2427 4167/4174/2423 +f 4167/4174/2423 4171/4179/2428 4168/4175/2424 +f 4168/4175/2424 4172/4180/2429 4169/4176/2425 +f 4169/4176/2425 3225/3141/1390 3223/3139/1388 +f 3366/4181/2430 4170/4178/2427 3367/4182/2431 +f 4173/4183/2432 4171/4179/2428 4170/4178/2427 +f 4171/4179/2428 4175/4184/2433 4172/4180/2429 +f 4175/4184/2433 3225/3141/1390 4172/4180/2429 +f 3365/4185/2434 4173/4183/2432 3366/4181/2430 +f 4176/4186/2435 4174/4187/2436 4173/4183/2432 +f 4177/4188/2437 4175/4184/2433 4174/4187/2436 +f 4178/4189/2438 3227/3143/1392 4175/4184/2433 +f 3364/4190/2439 4176/4186/2435 3365/4185/2434 +f 4179/4191/2440 4177/4188/2437 4176/4186/2435 +f 4180/4192/2441 4178/4189/2438 4177/4188/2437 +f 4181/4193/2442 3229/3145/1394 4178/4189/2438 +f 3363/4194/2443 4179/4191/2440 3364/4190/2439 +f 4182/4195/2444 4180/4192/2441 4179/4191/2440 +f 4183/4196/2445 4181/4193/2442 4180/4192/2441 +f 4184/4197/2446 3231/3147/1396 4181/4193/2442 +f 3363/4194/2443 4185/4198/2447 4182/4195/2444 +f 4182/4195/2444 4186/4199/2448 4183/4196/2445 +f 4183/4196/2445 4187/4200/2449 4184/4197/2446 +f 4184/4197/2446 3219/3136/1385 3218/3149/1398 +f 3361/4201/2450 4185/4198/2447 3362/4202/2451 +f 4188/4203/2452 4186/4199/2448 4185/4198/2447 +f 4189/4204/2453 4187/4200/2449 4186/4199/2448 +f 4190/4205/2454 3219/3136/1385 4187/4200/2449 +f 3360/4206/2455 4188/4203/2452 3361/4201/2450 +f 4191/4207/2456 4189/4204/2453 4188/4203/2452 +f 4192/4208/2457 4190/4205/2454 4189/4204/2453 +f 4193/4209/2458 3234/3153/1402 4190/4205/2454 +f 3360/4206/2455 4194/4210/2459 4191/4207/2456 +f 4191/4207/2456 4195/4211/2460 4192/4208/2457 +f 4192/4208/2457 4196/4212/2461 4193/4209/2458 +f 4193/4209/2458 3242/3174/1423 3235/3151/1400 +f 3359/4213/2462 4197/4214/2463 4194/4210/2459 +f 4194/4210/2459 4198/4215/2464 4195/4211/2460 +f 4195/4211/2460 4199/4216/2465 4196/4212/2461 +f 4196/4212/2461 3243/3159/1408 3242/3174/1423 +f 3358/4217/2466 4200/4218/2467 4197/4214/2463 +f 4197/4214/2463 4201/4219/2468 4198/4215/2464 +f 4198/4215/2464 4202/4220/2469 4199/4216/2465 +f 4199/4216/2465 3245/3161/1410 3243/3159/1408 +f 3356/4221/2470 4200/4218/2467 3357/4222/2471 +f 4200/4218/2467 4204/4223/2472 4201/4219/2468 +f 4201/4219/2468 4205/4224/2473 4202/4220/2469 +f 4202/4220/2469 3247/3163/1412 3245/3161/1410 +f 3355/4225/2474 4203/4226/2475 3356/4221/2470 +f 4206/4227/2476 4204/4223/2472 4203/4226/2475 +f 4207/4228/2477 4205/4224/2473 4204/4223/2472 +f 4208/4229/2478 3247/3163/1412 4205/4224/2473 +f 3354/4230/2479 4206/4227/2476 3355/4225/2474 +f 4209/4231/2480 4207/4228/2477 4206/4227/2476 +f 4210/4232/2481 4208/4229/2478 4207/4228/2477 +f 4211/4233/2482 3249/3165/1414 4208/4229/2478 +f 3353/4234/2483 4209/4231/2480 3354/4230/2479 +f 4212/4235/2484 4210/4232/2481 4209/4231/2480 +f 4213/4236/2485 4211/4233/2482 4210/4232/2481 +f 4214/4237/2486 3251/3167/1416 4211/4233/2482 +f 3353/4234/2483 4215/4238/2487 4212/4235/2484 +f 4212/4235/2484 4216/4239/2488 4213/4236/2485 +f 4213/4236/2485 4217/4240/2489 4214/4237/2486 +f 4214/4237/2486 3239/3156/1405 3238/3169/1418 +f 3352/4241/2490 4218/4242/2491 4215/4238/2487 +f 4215/4238/2487 4219/4243/2492 4216/4239/2488 +f 4216/4239/2488 4220/4244/2493 4217/4240/2489 +f 4217/4240/2489 3254/3173/1422 3239/3156/1405 +f 3350/4245/2494 4218/4242/2491 3351/4246/2495 +f 4221/4247/2496 4219/4243/2492 4218/4242/2491 +f 4222/4248/2497 4220/4244/2493 4219/4243/2492 +f 4223/4249/2498 3254/3173/1422 4220/4244/2493 +f 3350/4245/2494 4224/4250/2499 4221/4247/2496 +f 4221/4247/2496 4225/4251/2500 4222/4248/2497 +f 4222/4248/2497 4226/4252/2501 4223/4249/2498 +f 4223/4249/2498 3262/3194/1443 3255/3171/1420 +f 3349/4253/2502 4227/4254/2503 4224/4250/2499 +f 4224/4250/2499 4228/4255/2504 4225/4251/2500 +f 4225/4251/2500 4229/4256/2505 4226/4252/2501 +f 4226/4252/2501 3263/3179/1428 3262/3194/1443 +f 3348/4257/2506 4230/4258/2507 4227/4254/2503 +f 4227/4254/2503 4231/4259/2508 4228/4255/2504 +f 4228/4255/2504 4232/4260/2509 4229/4256/2505 +f 4229/4256/2505 3265/3181/1430 3263/3179/1428 +f 3346/4261/2510 4230/4258/2507 3347/4262/2511 +f 4230/4258/2507 4234/4263/2512 4231/4259/2508 +f 4234/4263/2512 4232/4260/2509 4231/4259/2508 +f 4235/4264/2513 3265/3181/1430 4232/4260/2509 +f 3345/4265/2514 4233/4266/2515 3346/4261/2510 +f 4236/4267/2516 4234/4263/2512 4233/4266/2515 +f 4237/4268/2517 4235/4264/2513 4234/4263/2512 +f 4238/4269/2518 3267/3183/1432 4235/4264/2513 +f 3344/4270/2519 4236/4267/2516 3345/4265/2514 +f 4239/4271/2520 4237/4268/2517 4236/4267/2516 +f 4240/4272/2521 4238/4269/2518 4237/4268/2517 +f 4241/4273/2522 3269/3185/1434 4238/4269/2518 +f 3343/4274/2523 4239/4271/2520 3344/4270/2519 +f 4242/4275/2524 4240/4272/2521 4239/4271/2520 +f 4243/4276/2525 4241/4273/2522 4240/4272/2521 +f 4244/4277/2526 3271/3187/1436 4241/4273/2522 +f 3343/4274/2523 4245/4278/2527 4242/4275/2524 +f 4242/4275/2524 4246/4279/2528 4243/4276/2525 +f 4243/4276/2525 4247/4280/2529 4244/4277/2526 +f 4244/4277/2526 3259/3176/1425 3258/3189/1438 +f 3342/4281/2530 4248/4282/2531 4245/4278/2527 +f 4245/4278/2527 4249/4283/2532 4246/4279/2528 +f 4246/4279/2528 4250/4284/2533 4247/4280/2529 +f 4247/4280/2529 3274/3193/1442 3259/3176/1425 +f 3341/4285/2534 4251/4286/2535 4248/4282/2531 +f 4248/4282/2531 4252/4287/2536 4249/4283/2532 +f 4249/4283/2532 4253/4288/2537 4250/4284/2533 +f 4250/4284/2533 3275/3191/1440 3274/3193/1442 +f 3339/4289/2538 4251/4286/2535 3340/4290/2539 +f 4254/4291/2540 4252/4287/2536 4251/4286/2535 +f 4255/4292/2541 4253/4288/2537 4252/4287/2536 +f 4256/4293/2542 3275/3191/1440 4253/4288/2537 +f 3338/4294/2543 4254/4291/2540 3339/4289/2538 +f 4257/4295/2544 4255/4292/2541 4254/4291/2540 +f 4258/4296/2545 4256/4293/2542 4255/4292/2541 +f 4259/4297/2546 3282/3212/1461 4256/4293/2542 +f 3337/4298/2547 4257/4295/2544 3338/4294/2543 +f 4260/4299/2548 4258/4296/2545 4257/4295/2544 +f 4261/4300/2549 4259/4297/2546 4258/4296/2545 +f 4262/4301/2550 3283/3199/1448 4259/4297/2546 +f 3337/4298/2547 4263/4302/2551 4260/4299/2548 +f 4260/4299/2548 4264/4303/2552 4261/4300/2549 +f 4264/4303/2552 4262/4301/2550 4261/4300/2549 +f 4265/4304/2553 3285/3201/1450 4262/4301/2550 +f 3336/4305/2554 4266/4306/2555 4263/4302/2551 +f 4263/4302/2551 4267/4307/2556 4264/4303/2552 +f 4264/4303/2552 4268/4308/2557 4265/4304/2553 +f 4265/4304/2553 3289/3205/1454 3287/3203/1452 +f 3335/4309/2558 4269/4310/2559 4266/4306/2555 +f 4266/4306/2555 4270/4311/2560 4267/4307/2556 +f 4267/4307/2556 4271/4312/2561 4268/4308/2557 +f 4268/4308/2557 3291/3207/1456 3289/3205/1454 +f 3334/4313/2562 4272/4314/2563 4269/4310/2559 +f 4269/4310/2559 4273/4315/2564 4270/4311/2560 +f 4270/4311/2560 4274/4316/2565 4271/4312/2561 +f 4271/4312/2561 3278/3209/1458 3291/3207/1456 +f 3332/4317/2566 4272/4314/2563 3333/4318/2567 +f 4275/4319/2568 4273/4315/2564 4272/4314/2563 +f 4276/4320/2569 4274/4316/2565 4273/4315/2564 +f 4277/4321/2570 3278/3209/1458 4274/4316/2565 +f 3331/3835/2084 4275/4319/2568 3332/4317/2566 +f 3910/3833/2082 4276/4320/2569 4275/4319/2568 +f 3908/3831/2080 4277/4321/2570 4276/4320/2569 +f 3906/3829/2078 3279/3196/1445 4277/4321/2570 +f 3473/4322/2571 3911/3834/2083 3330/3836/2085 +f 4278/4323/2572 3909/3832/2081 3911/3834/2083 +f 4279/4324/2573 3907/3830/2079 3909/3832/2081 +f 4280/4325/2574 2900/3828/2077 3907/3830/2079 +f 3472/4326/2575 4278/4323/2572 3473/4322/2571 +f 4281/4327/2576 4279/4324/2573 4278/4323/2572 +f 4282/4328/2577 4280/4325/2574 4279/4324/2573 +f 4283/4329/2578 2901/2963/1212 4280/4325/2574 +f 3472/4326/2575 4284/4330/2579 4281/4327/2576 +f 4281/4327/2576 4285/4331/2580 4282/4328/2577 +f 4282/4328/2577 4286/4332/2581 4283/4329/2578 +f 4283/4329/2578 3302/3235/1484 3293/3210/1459 +f 3471/4333/2582 4287/4334/2583 4284/4330/2579 +f 4284/4330/2579 4288/4335/2584 4285/4331/2580 +f 4285/4331/2580 4289/4336/2585 4286/4332/2581 +f 4286/4332/2581 3303/3220/1469 3302/3235/1484 +f 3470/4337/2586 4290/4338/2587 4287/4334/2583 +f 4287/4334/2583 4291/4339/2588 4288/4335/2584 +f 4288/4335/2584 4292/4340/2589 4289/4336/2585 +f 4289/4336/2585 3305/3222/1471 3303/3220/1469 +f 3469/4341/2590 4293/4342/2591 4290/4338/2587 +f 4290/4338/2587 4294/4343/2592 4291/4339/2588 +f 4291/4339/2588 4295/4344/2593 4292/4340/2589 +f 4292/4340/2589 3307/3224/1473 3305/3222/1471 +f 3467/4345/2594 4293/4342/2591 3468/4346/2595 +f 4296/4347/2596 4294/4343/2592 4293/4342/2591 +f 4297/4348/2597 4295/4344/2593 4294/4343/2592 +f 4298/4349/2598 3307/3224/1473 4295/4344/2593 +f 3466/4350/2599 4296/4347/2596 3467/4345/2594 +f 4299/4351/2600 4297/4348/2597 4296/4347/2596 +f 4300/4352/2601 4298/4349/2598 4297/4348/2597 +f 4301/4353/2602 3309/3226/1475 4298/4349/2598 +f 3465/4354/2603 4299/4351/2600 3466/4350/2599 +f 4302/4355/2604 4300/4352/2601 4299/4351/2600 +f 4303/4356/2605 4301/4353/2602 4300/4352/2601 +f 4304/4357/2606 3311/3228/1477 4301/4353/2602 +f 3465/4354/2603 4305/4358/2607 4302/4355/2604 +f 4302/4355/2604 4306/4359/2608 4303/4356/2605 +f 4303/4356/2605 4307/4360/2609 4304/4357/2606 +f 4304/4357/2606 3299/3217/1466 3298/3230/1479 +f 3463/4361/2610 4305/4358/2607 3464/4362/2611 +f 4308/4363/2612 4306/4359/2608 4305/4358/2607 +f 4309/4364/2613 4307/4360/2609 4306/4359/2608 +f 4310/4365/2614 3299/3217/1466 4307/4360/2609 +f 3462/4366/2615 4308/4363/2612 3463/4361/2610 +f 4311/4367/2616 4309/4364/2613 4308/4363/2612 +f 4312/4368/2617 4310/4365/2614 4309/4364/2613 +f 4313/4369/2618 3314/3234/1483 4310/4365/2614 +f 3461/4370/2619 4311/4367/2616 3462/4366/2615 +f 4311/4367/2616 4315/4371/2620 4312/4368/2617 +f 4315/4371/2620 4313/4369/2618 4312/4368/2617 +f 4313/4369/2618 3320/3253/1502 3315/3232/1481 +f 3461/4370/2619 4317/4372/2621 4314/4373/2622 +f 4314/4373/2622 4318/4374/2623 4315/4371/2620 +f 4318/4374/2623 4316/4375/2624 4315/4371/2620 +f 4316/4375/2624 3321/3239/1488 3320/3253/1502 +f 3460/4376/2625 4320/4377/2626 4317/4372/2621 +f 4317/4372/2621 4321/4378/2627 4318/4374/2623 +f 4318/4374/2623 4322/4379/2628 4319/4380/2629 +f 4322/4379/2628 3321/3239/1488 4319/4380/2629 +f 3459/4381/2630 4323/4382/2631 4320/4377/2626 +f 4323/4382/2631 4321/4378/2627 4320/4377/2626 +f 4321/4378/2627 4325/4383/2632 4322/4379/2628 +f 4325/4383/2632 3323/3241/1490 4322/4379/2628 +f 3458/4384/2633 4326/4385/2634 4323/4382/2631 +f 4326/4385/2634 4324/4386/2635 4323/4382/2631 +f 4327/4387/2636 4325/4383/2632 4324/4386/2635 +f 4325/4383/2632 3327/3245/1494 3325/3243/1492 +f 3456/4388/2637 4326/4385/2634 3457/4389/2638 +f 4329/4390/2639 4327/4387/2636 4326/4385/2634 +f 4330/4391/2640 4328/4392/2641 4327/4387/2636 +f 4328/4392/2641 3329/3247/1496 3327/3245/1494 +f 3456/4388/2637 4332/4393/2642 4329/4390/2639 +f 4332/4393/2642 4330/4391/2640 4329/4390/2639 +f 4333/4394/2643 4331/4395/2644 4330/4391/2640 +f 4331/4395/2644 3317/3249/1498 3329/3247/1496 +f 3455/4396/2645 4335/4397/2646 4332/4393/2642 +f 4332/4393/2642 4336/4398/2647 4333/4394/2643 +f 4333/4394/2643 4337/4399/2648 4334/4400/2649 +f 4334/4400/2649 3048/3237/1486 3317/3249/1498 +f 3453/3839/2088 4335/4397/2646 3454/4401/2650 +f 4335/4397/2646 3915/3841/2090 4336/4398/2647 +f 3915/3841/2090 4337/4399/2648 4336/4398/2647 +f 3917/3843/2092 3048/3237/1486 4337/4399/2648 +f 2899/2962/1211 3295/3214/1463 2900/3828/2077 +f 2899/2962/1211 2900/3828/2077 2901/2963/1212 +f 2902/3257/1506 2903/3751/2000 2942/3341/1590 +f 2903/3751/2000 2904/3755/2004 2905/3762/2011 +f 2912/3791/2040 2903/3751/2000 2908/3775/2024 +f 2905/3762/2011 2906/3766/2015 2903/3751/2000 +f 2906/3766/2015 2907/3770/2019 2903/3751/2000 +f 2907/3770/2019 2908/3775/2024 2903/3751/2000 +f 2908/3775/2024 2909/3774/2023 2912/3791/2040 +f 2909/3774/2023 2910/3779/2028 2912/3791/2040 +f 2910/3779/2028 2911/3783/2032 2912/3791/2040 +f 2912/3791/2040 2913/3790/2039 2934/3314/1563 +f 2913/3790/2039 2914/3795/2044 2922/3827/2076 +f 2914/3795/2044 2915/3798/2047 2916/3806/2055 +f 2916/3806/2055 2917/3809/2058 2918/3814/2063 +f 2918/3814/2063 2919/3818/2067 2920/3817/2066 +f 2920/3817/2066 2921/3826/2075 2914/3795/2044 +f 2921/3826/2075 2922/3827/2076 2914/3795/2044 +f 2922/3827/2076 2923/3270/1519 2932/3305/1554 +f 2923/3270/1519 2924/3269/1518 2932/3305/1554 +f 2924/3269/1518 2925/3276/1525 2926/3281/1530 +f 2926/3281/1530 2927/3280/1529 2930/3297/1546 +f 2927/3280/1529 2928/3289/1538 2930/3297/1546 +f 2928/3289/1538 2929/3288/1537 2930/3297/1546 +f 2930/3297/1546 2931/3301/1550 2924/3269/1518 +f 2931/3301/1550 2932/3305/1554 2924/3269/1518 +f 2932/3305/1554 2933/3309/1558 2913/3790/2039 +f 2922/3827/2076 2932/3305/1554 2913/3790/2039 +f 2924/3269/1518 2926/3281/1530 2930/3297/1546 +f 2918/3814/2063 2920/3817/2066 2914/3795/2044 +f 2914/3795/2044 2916/3806/2055 2918/3814/2063 +f 2903/3751/2000 2912/3791/2040 2941/3342/1591 +f 3044/3746/1995 3045/3255/1504 2944/3353/1602 +f 3045/3255/1504 2902/3257/1506 2943/3346/1595 +f 2941/3342/1591 2912/3791/2040 2940/3337/1586 +f 2939/3333/1582 2912/3791/2040 2938/3329/1578 +f 2938/3329/1578 2912/3791/2040 2937/3322/1571 +f 2912/3791/2040 2939/3333/1582 2940/3337/1586 +f 2933/3309/1558 2934/3314/1563 2913/3790/2039 +f 2934/3314/1563 2935/3313/1562 2912/3791/2040 +f 3043/3747/1996 3044/3746/1995 2944/3353/1602 +f 2903/3751/2000 2941/3342/1591 2942/3341/1590 +f 3042/3742/1991 3043/3747/1996 2945/3357/1606 +f 2935/3313/1562 2936/3318/1567 2912/3791/2040 +f 2936/3318/1567 2937/3322/1571 2912/3791/2040 +f 3041/3738/1987 3042/3742/1991 2946/3361/1610 +f 2902/3257/1506 2942/3341/1590 2943/3346/1595 +f 3045/3255/1504 2943/3346/1595 2944/3353/1602 +f 3043/3747/1996 2944/3353/1602 2945/3357/1606 +f 3042/3742/1991 2945/3357/1606 2946/3361/1610 +f 3040/3734/1983 3041/3738/1987 2947/3365/1614 +f 3041/3738/1987 2946/3361/1610 2947/3365/1614 +f 3039/3727/1976 3040/3734/1983 2948/3368/1617 +f 3040/3734/1983 2947/3365/1614 2948/3368/1617 +f 3038/3723/1972 3039/3727/1976 3004/3591/1840 +f 3039/3727/1976 2948/3368/1617 3004/3591/1840 +f 3037/3718/1967 3038/3723/1972 3004/3591/1840 +f 2948/3368/1617 2949/3374/1623 3004/3591/1840 +f 3036/3719/1968 3037/3718/1967 3004/3591/1840 +f 2949/3374/1623 2950/3373/1622 3004/3591/1840 +f 3033/3703/1952 3034/3710/1959 3032/3699/1948 +f 3034/3710/1959 3035/3714/1963 3005/3590/1839 +f 3010/3609/1858 3034/3710/1959 3009/3610/1859 +f 3035/3714/1963 3036/3719/1968 3005/3590/1839 +f 3036/3719/1968 3004/3591/1840 3005/3590/1839 +f 2950/3373/1622 2951/3378/1627 3004/3591/1840 +f 3034/3710/1959 3010/3609/1858 3011/3615/1864 +f 3014/3631/1880 3034/3710/1959 3011/3615/1864 +f 3030/3689/1938 3031/3695/1944 3034/3710/1959 +f 3031/3695/1944 3032/3699/1948 3034/3710/1959 +f 3028/3686/1935 3029/3690/1939 3025/3675/1924 +f 3029/3690/1939 3030/3689/1938 3025/3675/1924 +f 3026/3674/1923 3027/3682/1931 3025/3675/1924 +f 3027/3682/1931 3028/3686/1935 3025/3675/1924 +f 3024/3670/1919 3025/3675/1924 3014/3631/1880 +f 3014/3631/1880 3025/3675/1924 3034/3710/1959 +f 3022/3659/1908 3023/3663/1912 3024/3670/1919 +f 3020/3649/1898 3021/3655/1904 3024/3670/1919 +f 3021/3655/1904 3022/3659/1908 3024/3670/1919 +f 3018/3646/1895 3019/3650/1899 3015/3630/1879 +f 3019/3650/1899 3020/3649/1898 3015/3630/1879 +f 3016/3635/1884 3017/3642/1891 3015/3630/1879 +f 3017/3642/1891 3018/3646/1895 3015/3630/1879 +f 3014/3631/1880 3015/3630/1879 3024/3670/1919 +f 3024/3670/1919 3015/3630/1879 3020/3649/1898 +f 3012/3619/1868 3013/3623/1872 3014/3631/1880 +f 3011/3615/1864 3012/3619/1868 3014/3631/1880 +f 3008/3606/1855 3009/3610/1859 3034/3710/1959 +f 3006/3595/1844 3007/3602/1851 3005/3590/1839 +f 3007/3602/1851 3008/3606/1855 3005/3590/1839 +f 3002/3579/1828 3003/3586/1835 2954/3390/1639 +f 3003/3586/1835 3004/3591/1840 2953/3386/1635 +f 3000/3571/1820 3001/3575/1824 2954/3390/1639 +f 3001/3575/1824 3002/3579/1828 2954/3390/1639 +f 3000/3571/1820 2954/3390/1639 2999/3564/1813 +f 2998/3565/1814 2999/3564/1813 2954/3390/1639 +f 2998/3565/1814 2955/3397/1646 2997/3562/1811 +f 2996/3558/1807 2997/3562/1811 2955/3397/1646 +f 2996/3558/1807 2955/3397/1646 2995/3551/1800 +f 2994/2966/1215 2995/3551/1800 2955/3397/1646 +f 2992/3540/1789 2993/3547/1796 2991/3536/1785 +f 2993/3547/1796 2994/2966/1215 2960/3415/1664 +f 2961/3419/1668 2993/3547/1796 2960/3415/1664 +f 2990/3531/1780 2991/3536/1785 2993/3547/1796 +f 2988/3527/1776 2989/3532/1781 2993/3547/1796 +f 2989/3532/1781 2990/3531/1780 2993/3547/1796 +f 2986/3519/1768 2987/3523/1772 2984/3512/1761 +f 2987/3523/1772 2988/3527/1776 2984/3512/1761 +f 2984/3512/1761 2985/3511/1760 2986/3519/1768 +f 2982/3500/1749 2983/3507/1756 2981/3496/1745 +f 2983/3507/1756 2984/3512/1761 2964/3428/1677 +f 2973/3468/1717 2968/3447/1696 2969/3446/1695 +f 2980/3491/1740 2981/3496/1745 2983/3507/1756 +f 2978/3486/1735 2979/3492/1741 2983/3507/1756 +f 2979/3492/1741 2980/3491/1740 2983/3507/1756 +f 2976/3479/1728 2977/3483/1732 2974/3467/1716 +f 2977/3483/1732 2978/3486/1735 2974/3467/1716 +f 2974/3467/1716 2975/3472/1721 2976/3479/1728 +f 2972/3460/1709 2973/3468/1717 2971/3456/1705 +f 2973/3468/1717 2974/3467/1716 2983/3507/1756 +f 2970/3452/1701 2971/3456/1705 2973/3468/1717 +f 2969/3446/1695 2970/3452/1701 2973/3468/1717 +f 2966/3439/1688 2967/3443/1692 2964/3428/1677 +f 2967/3443/1692 2968/3447/1696 2964/3428/1677 +f 2964/3428/1677 2965/3432/1681 2966/3439/1688 +f 2963/3423/1672 2964/3428/1677 2984/3512/1761 +f 2963/3423/1672 2984/3512/1761 2993/3547/1796 +f 2964/3428/1677 2968/3447/1696 2973/3468/1717 +f 2973/3468/1717 2983/3507/1756 2964/3428/1677 +f 2984/3512/1761 2988/3527/1776 2993/3547/1796 +f 2993/3547/1796 2961/3419/1668 2962/3424/1673 +f 2994/2966/1215 2955/3397/1646 2956/2967/1216 +f 2955/3397/1646 2998/3565/1814 2954/3390/1639 +f 3003/3586/1835 2953/3386/1635 2954/3390/1639 +f 2959/3406/1655 2994/2966/1215 2958/3404/1653 +f 2993/3547/1796 2962/3424/1673 2963/3423/1672 +f 2974/3467/1716 2978/3486/1735 2983/3507/1756 +f 2994/2966/1215 2959/3406/1655 2960/3415/1664 +f 3034/3710/1959 3005/3590/1839 3008/3606/1855 +f 2951/3378/1627 2952/3382/1631 3004/3591/1840 +f 2952/3382/1631 2953/3386/1635 3004/3591/1840 +f 3034/3710/1959 3025/3675/1924 3030/3689/1938 +f 2958/3404/1653 2994/2966/1215 2957/2965/1214 +f 3047/2968/1217 3048/3237/1486 3049/2969/1218 +f 3051/2971/1220 3052/2990/1239 3053/2972/1221 +f 3050/2973/1222 3053/2972/1221 3055/2974/1223 +f 3054/2975/1224 3055/2974/1223 3057/2976/1225 +f 3056/2977/1226 3057/2976/1225 3059/2978/1227 +f 3058/2979/1228 3059/2978/1227 3061/2980/1229 +f 3060/2981/1230 3061/2980/1229 3063/2982/1231 +f 3065/2984/1233 3066/2988/1237 3067/2985/1234 +f 3068/2987/1236 3069/3254/1503 3066/2988/1237 +f 3070/2989/1238 3071/3012/1261 3052/2990/1239 +f 3073/2991/1240 3074/3005/1254 3075/2992/1241 +f 3077/2994/1243 3078/3009/1258 3079/2995/1244 +f 3076/2996/1245 3079/2995/1244 3081/2997/1246 +f 3080/2998/1247 3081/2997/1246 3083/2999/1248 +f 3082/3000/1249 3083/2999/1248 3085/3001/1250 +f 3084/3002/1251 3085/3001/1250 3087/3003/1252 +f 3086/3004/1253 3087/3003/1252 3074/3005/1254 +f 3089/3006/1255 3090/3011/1260 3091/3007/1256 +f 3064/2986/1235 3067/2985/1234 3078/3009/1258 +f 3092/3010/1259 3093/3134/1383 3090/3011/1260 +f 3046/2970/1219 3049/2969/1218 3071/3012/1261 +f 3095/3013/1262 3096/3027/1276 3097/3014/1263 +f 3099/3016/1265 3100/3032/1281 3101/3017/1266 +f 3098/3018/1267 3101/3017/1266 3103/3019/1268 +f 3102/3020/1269 3103/3019/1268 3105/3021/1270 +f 3104/3022/1271 3105/3021/1270 3107/3023/1272 +f 3106/3024/1273 3107/3023/1272 3109/3025/1274 +f 3108/3026/1275 3109/3025/1274 3096/3027/1276 +f 3111/3028/1277 3112/3031/1280 3113/3029/1278 +f 3094/3015/1264 3097/3014/1263 3112/3031/1280 +f 3088/3008/1257 3091/3007/1256 3100/3032/1281 +f 3115/3033/1282 3116/3047/1296 3117/3034/1283 +f 3119/3036/1285 3120/3052/1301 3121/3037/1286 +f 3118/3038/1287 3121/3037/1286 3123/3039/1288 +f 3122/3040/1289 3123/3039/1288 3125/3041/1290 +f 3124/3042/1291 3125/3041/1290 3127/3043/1292 +f 3126/3044/1293 3127/3043/1292 3129/3045/1294 +f 3128/3046/1295 3129/3045/1294 3116/3047/1296 +f 3131/3048/1297 3132/3051/1300 3133/3049/1298 +f 3114/3035/1284 3117/3034/1283 3132/3051/1300 +f 3110/3030/1279 3113/3029/1278 3120/3052/1301 +f 3135/3053/1302 3136/3067/1316 3137/3054/1303 +f 3139/3056/1305 3140/3072/1321 3141/3057/1306 +f 3138/3058/1307 3141/3057/1306 3143/3059/1308 +f 3142/3060/1309 3143/3059/1308 3145/3061/1310 +f 3144/3062/1311 3145/3061/1310 3147/3063/1312 +f 3146/3064/1313 3147/3063/1312 3149/3065/1314 +f 3148/3066/1315 3149/3065/1314 3136/3067/1316 +f 3151/3068/1317 3152/3071/1320 3153/3069/1318 +f 3134/3055/1304 3137/3054/1303 3152/3071/1320 +f 3130/3050/1299 3133/3049/1298 3140/3072/1321 +f 3155/3073/1322 3156/3087/1336 3157/3074/1323 +f 3159/3076/1325 3160/3092/1341 3161/3077/1326 +f 3158/3078/1327 3161/3077/1326 3163/3079/1328 +f 3162/3080/1329 3163/3079/1328 3165/3081/1330 +f 3164/3082/1331 3165/3081/1330 3167/3083/1332 +f 3166/3084/1333 3167/3083/1332 3169/3085/1334 +f 3168/3086/1335 3169/3085/1334 3156/3087/1336 +f 3171/3088/1337 3172/3091/1340 3173/3089/1338 +f 3154/3075/1324 3157/3074/1323 3172/3091/1340 +f 3150/3070/1319 3153/3069/1318 3160/3092/1341 +f 3175/3093/1342 3176/3107/1356 3177/3094/1343 +f 3179/3096/1345 3180/3112/1361 3181/3097/1346 +f 3178/3098/1347 3181/3097/1346 3183/3099/1348 +f 3182/3100/1349 3183/3099/1348 3185/3101/1350 +f 3184/3102/1351 3185/3101/1350 3187/3103/1352 +f 3186/3104/1353 3187/3103/1352 3189/3105/1354 +f 3188/3106/1355 3189/3105/1354 3176/3107/1356 +f 3191/3108/1357 3192/3111/1360 3193/3109/1358 +f 3174/3095/1344 3177/3094/1343 3192/3111/1360 +f 3170/3090/1339 3173/3089/1338 3180/3112/1361 +f 3195/3113/1362 3196/3127/1376 3197/3114/1363 +f 3199/3116/1365 3200/3131/1380 3201/3117/1366 +f 3198/3118/1367 3201/3117/1366 3203/3119/1368 +f 3202/3120/1369 3203/3119/1368 3205/3121/1370 +f 3204/3122/1371 3205/3121/1370 3207/3123/1372 +f 3206/3124/1373 3207/3123/1372 3209/3125/1374 +f 3208/3126/1375 3209/3125/1374 3196/3127/1376 +f 3211/3128/1377 3212/3133/1382 3213/3129/1378 +f 3190/3110/1359 3193/3109/1358 3200/3131/1380 +f 3214/3132/1381 3215/3213/1462 3212/3133/1382 +f 3072/2993/1242 3075/2992/1241 3093/3134/1383 +f 3217/3135/1384 3218/3149/1398 3219/3136/1385 +f 3221/3138/1387 3222/3154/1403 3223/3139/1388 +f 3220/3140/1389 3223/3139/1388 3225/3141/1390 +f 3224/3142/1391 3225/3141/1390 3227/3143/1392 +f 3226/3144/1393 3227/3143/1392 3229/3145/1394 +f 3228/3146/1395 3229/3145/1394 3231/3147/1396 +f 3230/3148/1397 3231/3147/1396 3218/3149/1398 +f 3233/3150/1399 3234/3153/1402 3235/3151/1400 +f 3216/3137/1386 3219/3136/1385 3234/3153/1402 +f 3210/3130/1379 3213/3129/1378 3222/3154/1403 +f 3237/3155/1404 3238/3169/1418 3239/3156/1405 +f 3241/3158/1407 3242/3174/1423 3243/3159/1408 +f 3240/3160/1409 3243/3159/1408 3245/3161/1410 +f 3244/3162/1411 3245/3161/1410 3247/3163/1412 +f 3246/3164/1413 3247/3163/1412 3249/3165/1414 +f 3248/3166/1415 3249/3165/1414 3251/3167/1416 +f 3250/3168/1417 3251/3167/1416 3238/3169/1418 +f 3253/3170/1419 3254/3173/1422 3255/3171/1420 +f 3236/3157/1406 3239/3156/1405 3254/3173/1422 +f 3232/3152/1401 3235/3151/1400 3242/3174/1423 +f 3257/3175/1424 3258/3189/1438 3259/3176/1425 +f 3261/3178/1427 3262/3194/1443 3263/3179/1428 +f 3260/3180/1429 3263/3179/1428 3265/3181/1430 +f 3264/3182/1431 3265/3181/1430 3267/3183/1432 +f 3266/3184/1433 3267/3183/1432 3269/3185/1434 +f 3268/3186/1435 3269/3185/1434 3271/3187/1436 +f 3270/3188/1437 3271/3187/1436 3258/3189/1438 +f 3273/3190/1439 3274/3193/1442 3275/3191/1440 +f 3273/3190/1439 3256/3177/1426 3259/3176/1425 +f 3252/3172/1421 3255/3171/1420 3262/3194/1443 +f 3277/3195/1444 3278/3209/1458 3279/3196/1445 +f 3281/3198/1447 3282/3212/1461 3283/3199/1448 +f 3280/3200/1449 3283/3199/1448 3285/3201/1450 +f 3284/3202/1451 3285/3201/1450 3287/3203/1452 +f 3286/3204/1453 3287/3203/1452 3289/3205/1454 +f 3288/3206/1455 3289/3205/1454 3291/3207/1456 +f 3290/3208/1457 3291/3207/1456 3278/3209/1458 +f 2898/2964/1213 2901/2963/1212 3293/3210/1459 +f 3272/3192/1441 3275/3191/1440 3282/3212/1461 +f 3194/3115/1364 3197/3114/1363 3215/3213/1462 +f 3276/3197/1446 3279/3196/1445 3295/3214/1463 +f 3297/3216/1465 3298/3230/1479 3299/3217/1466 +f 3301/3219/1468 3302/3235/1484 3303/3220/1469 +f 3300/3221/1470 3303/3220/1469 3305/3222/1471 +f 3304/3223/1472 3305/3222/1471 3307/3224/1473 +f 3306/3225/1474 3307/3224/1473 3309/3226/1475 +f 3308/3227/1476 3309/3226/1475 3311/3228/1477 +f 3310/3229/1478 3311/3228/1477 3298/3230/1479 +f 3313/3231/1480 3314/3234/1483 3315/3232/1481 +f 3296/3218/1467 3299/3217/1466 3314/3234/1483 +f 3292/3211/1460 3293/3210/1459 3302/3235/1484 +f 3316/3236/1485 3317/3249/1498 3048/3237/1486 +f 3319/3238/1487 3320/3253/1502 3321/3239/1488 +f 3318/3240/1489 3321/3239/1488 3323/3241/1490 +f 3322/3242/1491 3323/3241/1490 3325/3243/1492 +f 3324/3244/1493 3325/3243/1492 3327/3245/1494 +f 3326/3246/1495 3327/3245/1494 3329/3247/1496 +f 3328/3248/1497 3329/3247/1496 3317/3249/1498 +f 3330/3836/2085 3331/3835/2084 3433/3917/2166 +f 3331/3835/2084 3332/4317/2566 3432/3924/2173 +f 3435/3913/2162 3473/4322/2571 3434/3912/2161 +f 3473/4322/2571 3330/3836/2085 3434/3912/2161 +f 3473/4322/2571 3435/3913/2162 3464/4362/2611 +f 3471/4333/2582 3472/4326/2575 3473/4322/2571 +f 3469/4341/2590 3470/4337/2586 3473/4322/2571 +f 3470/4337/2586 3471/4333/2582 3473/4322/2571 +f 3467/4345/2594 3468/4346/2595 3464/4362/2611 +f 3468/4346/2595 3469/4341/2590 3464/4362/2611 +f 3465/4354/2603 3466/4350/2599 3464/4362/2611 +f 3466/4350/2599 3467/4345/2594 3464/4362/2611 +f 3463/4361/2610 3464/4362/2611 3442/3885/2134 +f 3442/3885/2134 3464/4362/2611 3441/3884/2133 +f 3461/4370/2619 3462/4366/2615 3455/4396/2645 +f 3462/4366/2615 3463/4361/2610 3455/4396/2645 +f 3459/4381/2630 3460/4376/2625 3461/4370/2619 +f 3457/4389/2638 3458/4384/2633 3459/4381/2630 +f 3455/4396/2645 3456/4388/2637 3457/4389/2638 +f 3453/3839/2088 3454/4401/2650 3463/4361/2610 +f 3454/4401/2650 3455/4396/2645 3463/4361/2610 +f 3451/3847/2096 3452/3837/2086 3445/3872/2121 +f 3452/3837/2086 3453/3839/2088 3444/3876/2125 +f 3449/3851/2100 3450/3852/2101 3447/3859/2108 +f 3450/3852/2101 3451/3847/2096 3447/3859/2108 +f 3447/3859/2108 3448/3860/2109 3449/3851/2100 +f 3445/3872/2121 3446/3864/2113 3447/3859/2108 +f 3443/3880/2129 3444/3876/2125 3463/4361/2610 +f 3444/3876/2125 3445/3872/2121 3452/3837/2086 +f 3445/3872/2121 3447/3859/2108 3451/3847/2096 +f 3455/4396/2645 3457/4389/2638 3459/4381/2630 +f 3459/4381/2630 3461/4370/2619 3455/4396/2645 +f 3464/4362/2611 3435/3913/2162 3436/3908/2157 +f 3464/4362/2611 3436/3908/2157 3437/3904/2153 +f 3469/4341/2590 3473/4322/2571 3464/4362/2611 +f 3453/3839/2088 3463/4361/2610 3444/3876/2125 +f 3442/3885/2134 3443/3880/2129 3463/4361/2610 +f 3441/3884/2133 3464/4362/2611 3440/3889/2138 +f 3440/3889/2138 3464/4362/2611 3439/3893/2142 +f 3439/3893/2142 3464/4362/2611 3438/3900/2149 +f 3438/3900/2149 3464/4362/2611 3437/3904/2153 +f 3434/3912/2161 3330/3836/2085 3433/3917/2166 +f 3332/4317/2566 3333/4318/2567 3432/3924/2173 +f 3433/3917/2166 3331/3835/2084 3432/3924/2173 +f 3333/4318/2567 3334/4313/2562 3431/3928/2177 +f 3333/4318/2567 3431/3928/2177 3432/3924/2173 +f 3334/4313/2562 3335/4309/2558 3430/3932/2181 +f 3431/3928/2177 3334/4313/2562 3430/3932/2181 +f 3335/4309/2558 3336/4305/2554 3429/3936/2185 +f 3430/3932/2181 3335/4309/2558 3429/3936/2185 +f 3336/4305/2554 3337/4298/2547 3428/3940/2189 +f 3429/3936/2185 3336/4305/2554 3428/3940/2189 +f 3337/4298/2547 3338/4294/2543 3372/4162/2411 +f 3428/3940/2189 3337/4298/2547 3372/4162/2411 +f 3338/4294/2543 3339/4289/2538 3372/4162/2411 +f 3339/4289/2538 3340/4290/2539 3372/4162/2411 +f 3427/3944/2193 3428/3940/2189 3372/4162/2411 +f 3341/4285/2534 3342/4281/2530 3371/4161/2410 +f 3342/4281/2530 3343/4274/2523 3344/4270/2519 +f 3366/4181/2430 3342/4281/2530 3365/4185/2434 +f 3340/4290/2539 3341/4285/2534 3371/4161/2410 +f 3372/4162/2411 3340/4290/2539 3371/4161/2410 +f 3426/3943/2192 3427/3944/2193 3372/4162/2411 +f 3342/4281/2530 3366/4181/2430 3367/4182/2431 +f 3342/4281/2530 3362/4202/2451 3365/4185/2434 +f 3344/4270/2519 3345/4265/2514 3342/4281/2530 +f 3345/4265/2514 3346/4261/2510 3342/4281/2530 +f 3346/4261/2510 3347/4262/2511 3351/4246/2495 +f 3347/4262/2511 3348/4257/2506 3351/4246/2495 +f 3348/4257/2506 3349/4253/2502 3351/4246/2495 +f 3349/4253/2502 3350/4245/2494 3351/4246/2495 +f 3351/4246/2495 3352/4241/2490 3362/4202/2451 +f 3352/4241/2490 3353/4234/2483 3354/4230/2479 +f 3354/4230/2479 3355/4225/2474 3352/4241/2490 +f 3355/4225/2474 3356/4221/2470 3352/4241/2490 +f 3356/4221/2470 3357/4222/2471 3361/4201/2450 +f 3357/4222/2471 3358/4217/2466 3361/4201/2450 +f 3358/4217/2466 3359/4213/2462 3361/4201/2450 +f 3359/4213/2462 3360/4206/2455 3361/4201/2450 +f 3361/4201/2450 3362/4202/2451 3352/4241/2490 +f 3362/4202/2451 3363/4194/2443 3364/4190/2439 +f 3364/4190/2439 3365/4185/2434 3362/4202/2451 +f 3367/4182/2431 3368/4177/2426 3342/4281/2530 +f 3368/4177/2426 3369/4173/2422 3371/4161/2410 +f 3369/4173/2422 3370/4166/2415 3371/4161/2410 +f 3372/4162/2411 3373/4157/2406 3423/3957/2206 +f 3373/4157/2406 3374/4150/2399 3422/3961/2210 +f 3423/3957/2206 3373/4157/2406 3422/3961/2210 +f 3374/4150/2399 3375/4146/2395 3422/3961/2210 +f 3375/4146/2395 3376/4141/2390 3422/3961/2210 +f 3422/3961/2210 3376/4141/2390 3377/4137/2386 +f 3377/4137/2386 3378/4138/2387 3422/3961/2210 +f 3421/3968/2217 3378/4138/2387 3379/4133/2382 +f 3379/4133/2382 3380/4129/2378 3421/3968/2217 +f 3421/3968/2217 3380/4129/2378 3381/4122/2371 +f 3381/4122/2371 3382/3250/1499 3421/3968/2217 +f 3382/3250/1499 3383/4118/2367 3416/3986/2235 +f 3383/4118/2367 3384/4111/2360 3385/4107/2356 +f 3415/3990/2239 3383/4118/2367 3414/3995/2244 +f 3385/4107/2356 3386/4101/2350 3383/4118/2367 +f 3386/4101/2350 3387/4102/2351 3383/4118/2367 +f 3387/4102/2351 3388/4098/2347 3383/4118/2367 +f 3388/4098/2347 3389/4094/2343 3392/4083/2332 +f 3389/4094/2343 3390/4090/2339 3392/4083/2332 +f 3390/4090/2339 3391/4082/2331 3392/4083/2332 +f 3392/4083/2332 3393/4078/2327 3412/3999/2248 +f 3393/4078/2327 3394/4071/2320 3395/4067/2316 +f 3403/4039/2288 3408/4018/2267 3412/3999/2248 +f 3395/4067/2316 3396/4061/2310 3393/4078/2327 +f 3396/4061/2310 3397/4062/2311 3393/4078/2327 +f 3397/4062/2311 3398/4058/2307 3393/4078/2327 +f 3398/4058/2307 3399/4054/2303 3402/4038/2287 +f 3399/4054/2303 3400/4050/2299 3402/4038/2287 +f 3400/4050/2299 3401/4043/2292 3402/4038/2287 +f 3402/4038/2287 3403/4039/2288 3393/4078/2327 +f 3403/4039/2288 3404/4031/2280 3405/4027/2276 +f 3393/4078/2327 3403/4039/2288 3412/3999/2248 +f 3405/4027/2276 3406/4022/2271 3403/4039/2288 +f 3406/4022/2271 3407/4023/2272 3403/4039/2288 +f 3407/4023/2272 3408/4018/2267 3403/4039/2288 +f 3408/4018/2267 3409/4014/2263 3412/3999/2248 +f 3409/4014/2263 3410/4010/2259 3412/3999/2248 +f 3410/4010/2259 3411/4003/2252 3412/3999/2248 +f 3412/3999/2248 3413/3994/2243 3392/4083/2332 +f 3392/4083/2332 3413/3994/2243 3383/4118/2367 +f 3383/4118/2367 3415/3990/2239 3416/3986/2235 +f 3421/3968/2217 3382/3250/1499 3420/3252/1501 +f 3378/4138/2387 3421/3968/2217 3422/3961/2210 +f 3417/3979/2228 3382/3250/1499 3416/3986/2235 +f 3414/3995/2244 3383/4118/2367 3413/3994/2243 +f 3388/4098/2347 3392/4083/2332 3383/4118/2367 +f 3398/4058/2307 3402/4038/2287 3393/4078/2327 +f 3382/3250/1499 3417/3979/2228 3418/3975/2224 +f 3371/4161/2410 3342/4281/2530 3368/4177/2426 +f 3361/4201/2450 3352/4241/2490 3356/4221/2470 +f 3351/4246/2495 3362/4202/2451 3342/4281/2530 +f 3351/4246/2495 3342/4281/2530 3346/4261/2510 +f 3425/3949/2198 3426/3943/2192 3372/4162/2411 +f 3424/3953/2202 3425/3949/2198 3372/4162/2411 +f 3423/3957/2206 3424/3953/2202 3372/4162/2411 +f 3382/3250/1499 3418/3975/2224 3419/3251/1500 +f 3312/3233/1482 3315/3232/1481 3320/3253/1502 +f 3062/2983/1232 3063/2982/1231 3069/3254/1503 +f 3045/3255/1504 3474/3258/1507 3475/3256/1505 +f 3474/3258/1507 3476/3260/1509 3477/3259/1508 +f 3476/3260/1509 3478/3262/1511 3479/3261/1510 +f 3478/3262/1511 3294/3215/1464 2899/2962/1211 +f 3046/2970/1219 3070/2989/1238 3480/3263/1512 +f 3481/3264/1513 3480/3263/1512 3482/3265/1514 +f 3483/3266/1515 3482/3265/1514 3484/3267/1516 +f 3485/3268/1517 3484/3267/1516 2924/3269/1518 +f 3051/2971/1220 3486/3274/1523 3480/3263/1512 +f 3480/3263/1512 3486/3274/1523 3487/3271/1520 +f 3482/3265/1514 3487/3271/1520 3488/3272/1521 +f 3488/3272/1521 2925/3276/1525 2924/3269/1518 +f 3051/2971/1220 3050/2973/1222 3489/3273/1522 +f 3489/3273/1522 3490/3278/1527 3487/3271/1520 +f 3487/3271/1520 3490/3278/1527 3491/3275/1524 +f 3491/3275/1524 2926/3281/1530 2925/3276/1525 +f 3054/2975/1224 3492/3277/1526 3489/3273/1522 +f 3492/3277/1526 3493/3283/1532 3490/3278/1527 +f 3490/3278/1527 3493/3283/1532 3494/3279/1528 +f 3491/3275/1524 3494/3279/1528 2927/3280/1529 +f 3056/2977/1226 3495/3286/1535 3492/3277/1526 +f 3492/3277/1526 3495/3286/1535 3496/3282/1531 +f 3493/3283/1532 3496/3282/1531 3497/3284/1533 +f 3497/3284/1533 2928/3289/1538 2927/3280/1529 +f 3056/2977/1226 3058/2979/1228 3498/3285/1534 +f 3498/3285/1534 3499/3287/1536 3496/3282/1531 +f 3499/3287/1536 3500/3292/1541 3497/3284/1533 +f 3497/3284/1533 3500/3292/1541 2929/3288/1537 +f 3058/2979/1228 3060/2981/1230 3501/3290/1539 +f 3501/3290/1539 3502/3291/1540 3499/3287/1536 +f 3502/3291/1540 3503/3293/1542 3500/3292/1541 +f 3503/3293/1542 2930/3297/1546 2929/3288/1537 +f 3060/2981/1230 3062/2983/1232 3504/3294/1543 +f 3501/3290/1539 3504/3294/1543 3505/3295/1544 +f 3505/3295/1544 3506/3296/1545 3503/3293/1542 +f 3506/3296/1545 2931/3301/1550 2930/3297/1546 +f 3068/2987/1236 3507/3298/1547 3504/3294/1543 +f 3507/3298/1547 3508/3299/1548 3505/3295/1544 +f 3508/3299/1548 3509/3300/1549 3506/3296/1545 +f 3509/3300/1549 2932/3305/1554 2931/3301/1550 +f 3065/2984/1233 3510/3302/1551 3507/3298/1547 +f 3510/3302/1551 3511/3303/1552 3508/3299/1548 +f 3511/3303/1552 3512/3304/1553 3509/3300/1549 +f 3512/3304/1553 2933/3309/1558 2932/3305/1554 +f 3064/2986/1235 3513/3306/1555 3510/3302/1551 +f 3513/3306/1555 3514/3307/1556 3511/3303/1552 +f 3514/3307/1556 3515/3308/1557 3512/3304/1553 +f 3515/3308/1557 2934/3314/1563 2933/3309/1558 +f 3064/2986/1235 3077/2994/1243 3516/3310/1559 +f 3513/3306/1555 3516/3310/1559 3517/3311/1560 +f 3514/3307/1556 3517/3311/1560 3518/3312/1561 +f 3515/3308/1557 3518/3312/1561 2935/3313/1562 +f 3077/2994/1243 3076/2996/1245 3519/3315/1564 +f 3516/3310/1559 3519/3315/1564 3520/3316/1565 +f 3517/3311/1560 3520/3316/1565 3521/3317/1566 +f 3518/3312/1561 3521/3317/1566 2936/3318/1567 +f 3076/2996/1245 3080/2998/1247 3522/3319/1568 +f 3519/3315/1564 3522/3319/1568 3523/3320/1569 +f 3520/3316/1565 3523/3320/1569 3524/3321/1570 +f 3521/3317/1566 3524/3321/1570 2937/3322/1571 +f 3080/2998/1247 3082/3000/1249 3525/3323/1572 +f 3522/3319/1568 3525/3323/1572 3526/3324/1573 +f 3526/3324/1573 3527/3325/1574 3524/3321/1570 +f 3527/3325/1574 2938/3329/1578 2937/3322/1571 +f 3084/3002/1251 3528/3326/1575 3525/3323/1572 +f 3528/3326/1575 3529/3327/1576 3526/3324/1573 +f 3529/3327/1576 3530/3328/1577 3527/3325/1574 +f 3530/3328/1577 2939/3333/1582 2938/3329/1578 +f 3086/3004/1253 3531/3330/1579 3528/3326/1575 +f 3531/3330/1579 3532/3331/1580 3529/3327/1576 +f 3532/3331/1580 3533/3332/1581 3530/3328/1577 +f 3533/3332/1581 2940/3337/1586 2939/3333/1582 +f 3073/2991/1240 3534/3334/1583 3531/3330/1579 +f 3534/3334/1583 3535/3335/1584 3532/3331/1580 +f 3535/3335/1584 3536/3336/1585 3533/3332/1581 +f 3536/3336/1585 2941/3342/1591 2940/3337/1586 +f 3073/2991/1240 3072/2993/1242 3537/3338/1587 +f 3534/3334/1583 3537/3338/1587 3538/3339/1588 +f 3535/3335/1584 3538/3339/1588 3539/3340/1589 +f 3536/3336/1585 3539/3340/1589 2942/3341/1590 +f 3072/2993/1242 3092/3010/1259 3540/3343/1592 +f 3537/3338/1587 3540/3343/1592 3541/3344/1593 +f 3538/3339/1588 3541/3344/1593 3542/3345/1594 +f 3539/3340/1589 3542/3345/1594 2943/3346/1595 +f 3089/3006/1255 3543/3347/1596 3540/3343/1592 +f 3543/3347/1596 3544/3348/1597 3541/3344/1593 +f 3544/3348/1597 3545/3349/1598 3542/3345/1594 +f 3545/3349/1598 2944/3353/1602 2943/3346/1595 +f 3088/3008/1257 3546/3350/1599 3543/3347/1596 +f 3546/3350/1599 3547/3351/1600 3544/3348/1597 +f 3547/3351/1600 3548/3352/1601 3545/3349/1598 +f 3548/3352/1601 2945/3357/1606 2944/3353/1602 +f 3099/3016/1265 3549/3354/1603 3546/3350/1599 +f 3549/3354/1603 3550/3355/1604 3547/3351/1600 +f 3550/3355/1604 3551/3356/1605 3548/3352/1601 +f 3551/3356/1605 2946/3361/1610 2945/3357/1606 +f 3098/3018/1267 3552/3358/1607 3549/3354/1603 +f 3552/3358/1607 3553/3359/1608 3550/3355/1604 +f 3553/3359/1608 3554/3360/1609 3551/3356/1605 +f 3554/3360/1609 2947/3365/1614 2946/3361/1610 +f 3102/3020/1269 3555/3362/1611 3552/3358/1607 +f 3555/3362/1611 3556/3363/1612 3553/3359/1608 +f 3556/3363/1612 3557/3364/1613 3554/3360/1609 +f 3557/3364/1613 2948/3368/1617 2947/3365/1614 +f 3102/3020/1269 3104/3022/1271 3558/3366/1615 +f 3558/3366/1615 3559/3371/1620 3556/3363/1612 +f 3556/3363/1612 3559/3371/1620 3560/3367/1616 +f 3560/3367/1616 2949/3374/1623 2948/3368/1617 +f 3104/3022/1271 3106/3024/1273 3561/3369/1618 +f 3558/3366/1615 3561/3369/1618 3562/3370/1619 +f 3559/3371/1620 3562/3370/1619 3563/3372/1621 +f 3560/3367/1616 3563/3372/1621 2950/3373/1622 +f 3106/3024/1273 3108/3026/1275 3564/3375/1624 +f 3561/3369/1618 3564/3375/1624 3565/3376/1625 +f 3562/3370/1619 3565/3376/1625 3566/3377/1626 +f 3563/3372/1621 3566/3377/1626 2951/3378/1627 +f 3108/3026/1275 3095/3013/1262 3567/3379/1628 +f 3564/3375/1624 3567/3379/1628 3568/3380/1629 +f 3565/3376/1625 3568/3380/1629 3569/3381/1630 +f 3566/3377/1626 3569/3381/1630 2952/3382/1631 +f 3095/3013/1262 3094/3015/1264 3570/3383/1632 +f 3567/3379/1628 3570/3383/1632 3571/3384/1633 +f 3568/3380/1629 3571/3384/1633 3572/3385/1634 +f 3569/3381/1630 3572/3385/1634 2953/3386/1635 +f 3094/3015/1264 3111/3028/1277 3573/3387/1636 +f 3570/3383/1632 3573/3387/1636 3574/3388/1637 +f 3571/3384/1633 3574/3388/1637 3575/3389/1638 +f 3572/3385/1634 3575/3389/1638 2954/3390/1639 +f 3110/3030/1279 3576/3391/1640 3573/3387/1636 +f 3576/3391/1640 3577/3392/1641 3574/3388/1637 +f 3577/3392/1641 3578/3393/1642 3575/3389/1638 +f 3578/3393/1642 2955/3397/1646 2954/3390/1639 +f 3110/3030/1279 3119/3036/1285 3579/3394/1643 +f 3576/3391/1640 3579/3394/1643 3580/3395/1644 +f 3577/3392/1641 3580/3395/1644 3581/3396/1645 +f 3578/3393/1642 3581/3396/1645 2956/2967/1216 +f 3119/3036/1285 3118/3038/1287 3582/3398/1647 +f 3579/3394/1643 3582/3398/1647 3583/3399/1648 +f 3580/3395/1644 3583/3399/1648 3584/3400/1649 +f 3581/3396/1645 3584/3400/1649 2957/2965/1214 +f 3118/3038/1287 3122/3040/1289 3585/3401/1650 +f 3582/3398/1647 3585/3401/1650 3586/3402/1651 +f 3583/3399/1648 3586/3402/1651 3587/3403/1652 +f 3584/3400/1649 3587/3403/1652 2958/3404/1653 +f 3124/3042/1291 3588/3407/1656 3585/3401/1650 +f 3585/3401/1650 3588/3407/1656 3589/3405/1654 +f 3589/3405/1654 3590/3410/1659 3587/3403/1652 +f 3587/3403/1652 3590/3410/1659 2959/3406/1655 +f 3126/3044/1293 3591/3408/1657 3588/3407/1656 +f 3591/3408/1657 3592/3409/1658 3589/3405/1654 +f 3592/3409/1658 3593/3411/1660 3590/3410/1659 +f 3593/3411/1660 2960/3415/1664 2959/3406/1655 +f 3128/3046/1295 3594/3412/1661 3591/3408/1657 +f 3594/3412/1661 3595/3413/1662 3592/3409/1658 +f 3595/3413/1662 3596/3414/1663 3593/3411/1660 +f 3596/3414/1663 2961/3419/1668 2960/3415/1664 +f 3115/3033/1282 3597/3416/1665 3594/3412/1661 +f 3597/3416/1665 3598/3417/1666 3595/3413/1662 +f 3598/3417/1666 3599/3418/1667 3596/3414/1663 +f 3599/3418/1667 2962/3424/1673 2961/3419/1668 +f 3115/3033/1282 3114/3035/1284 3600/3420/1669 +f 3597/3416/1665 3600/3420/1669 3601/3421/1670 +f 3598/3417/1666 3601/3421/1670 3602/3422/1671 +f 3599/3418/1667 3602/3422/1671 2963/3423/1672 +f 3114/3035/1284 3131/3048/1297 3603/3425/1674 +f 3600/3420/1669 3603/3425/1674 3604/3426/1675 +f 3601/3421/1670 3604/3426/1675 3605/3427/1676 +f 3602/3422/1671 3605/3427/1676 2964/3428/1677 +f 3131/3048/1297 3130/3050/1299 3606/3429/1678 +f 3603/3425/1674 3606/3429/1678 3607/3430/1679 +f 3604/3426/1675 3607/3430/1679 3608/3431/1680 +f 3605/3427/1676 3608/3431/1680 2965/3432/1681 +f 3139/3056/1305 3609/3433/1682 3606/3429/1678 +f 3609/3433/1682 3610/3434/1683 3607/3430/1679 +f 3610/3434/1683 3611/3435/1684 3608/3431/1680 +f 3611/3435/1684 2966/3439/1688 2965/3432/1681 +f 3138/3058/1307 3612/3436/1685 3609/3433/1682 +f 3612/3436/1685 3613/3437/1686 3610/3434/1683 +f 3613/3437/1686 3614/3438/1687 3611/3435/1684 +f 3614/3438/1687 2967/3443/1692 2966/3439/1688 +f 3142/3060/1309 3615/3440/1689 3612/3436/1685 +f 3615/3440/1689 3616/3441/1690 3613/3437/1686 +f 3616/3441/1690 3617/3442/1691 3614/3438/1687 +f 3617/3442/1691 2968/3447/1696 2967/3443/1692 +f 3142/3060/1309 3144/3062/1311 3618/3444/1693 +f 3615/3440/1689 3618/3444/1693 3619/3445/1694 +f 3619/3445/1694 3620/3451/1700 3617/3442/1691 +f 3617/3442/1691 3620/3451/1700 2969/3446/1695 +f 3144/3062/1311 3146/3064/1313 3621/3448/1697 +f 3618/3444/1693 3621/3448/1697 3622/3449/1698 +f 3619/3445/1694 3622/3449/1698 3623/3450/1699 +f 3620/3451/1700 3623/3450/1699 2970/3452/1701 +f 3146/3064/1313 3148/3066/1315 3624/3453/1702 +f 3621/3448/1697 3624/3453/1702 3625/3454/1703 +f 3622/3449/1698 3625/3454/1703 3626/3455/1704 +f 3623/3450/1699 3626/3455/1704 2971/3456/1705 +f 3148/3066/1315 3135/3053/1302 3627/3457/1706 +f 3624/3453/1702 3627/3457/1706 3628/3458/1707 +f 3625/3454/1703 3628/3458/1707 3629/3459/1708 +f 3626/3455/1704 3629/3459/1708 2972/3460/1709 +f 3134/3055/1304 3630/3461/1710 3627/3457/1706 +f 3630/3461/1710 3631/3462/1711 3628/3458/1707 +f 3631/3462/1711 3632/3463/1712 3629/3459/1708 +f 3632/3463/1712 2973/3468/1717 2972/3460/1709 +f 3134/3055/1304 3151/3068/1317 3633/3464/1713 +f 3630/3461/1710 3633/3464/1713 3634/3465/1714 +f 3631/3462/1711 3634/3465/1714 3635/3466/1715 +f 3632/3463/1712 3635/3466/1715 2974/3467/1716 +f 3151/3068/1317 3150/3070/1319 3636/3469/1718 +f 3633/3464/1713 3636/3469/1718 3637/3470/1719 +f 3634/3465/1714 3637/3470/1719 3638/3471/1720 +f 3635/3466/1715 3638/3471/1720 2975/3472/1721 +f 3159/3076/1325 3639/3473/1722 3636/3469/1718 +f 3639/3473/1722 3640/3474/1723 3637/3470/1719 +f 3640/3474/1723 3641/3475/1724 3638/3471/1720 +f 3641/3475/1724 2976/3479/1728 2975/3472/1721 +f 3158/3078/1327 3642/3476/1725 3639/3473/1722 +f 3642/3476/1725 3643/3477/1726 3640/3474/1723 +f 3643/3477/1726 3644/3478/1727 3641/3475/1724 +f 3644/3478/1727 2977/3483/1732 2976/3479/1728 +f 3162/3080/1329 3645/3480/1729 3642/3476/1725 +f 3645/3480/1729 3646/3481/1730 3643/3477/1726 +f 3646/3481/1730 3647/3482/1731 3644/3478/1727 +f 3647/3482/1731 2978/3486/1735 2977/3483/1732 +f 3162/3080/1329 3164/3082/1331 3648/3484/1733 +f 3648/3484/1733 3649/3489/1738 3646/3481/1730 +f 3646/3481/1730 3649/3489/1738 3650/3485/1734 +f 3650/3485/1734 2979/3492/1741 2978/3486/1735 +f 3164/3082/1331 3166/3084/1333 3651/3487/1736 +f 3648/3484/1733 3651/3487/1736 3652/3488/1737 +f 3649/3489/1738 3652/3488/1737 3653/3490/1739 +f 3650/3485/1734 3653/3490/1739 2980/3491/1740 +f 3166/3084/1333 3168/3086/1335 3654/3493/1742 +f 3651/3487/1736 3654/3493/1742 3655/3494/1743 +f 3652/3488/1737 3655/3494/1743 3656/3495/1744 +f 3653/3490/1739 3656/3495/1744 2981/3496/1745 +f 3168/3086/1335 3155/3073/1322 3657/3497/1746 +f 3654/3493/1742 3657/3497/1746 3658/3498/1747 +f 3655/3494/1743 3658/3498/1747 3659/3499/1748 +f 3656/3495/1744 3659/3499/1748 2982/3500/1749 +f 3154/3075/1324 3660/3501/1750 3657/3497/1746 +f 3660/3501/1750 3661/3502/1751 3658/3498/1747 +f 3661/3502/1751 3662/3503/1752 3659/3499/1748 +f 3662/3503/1752 2983/3507/1756 2982/3500/1749 +f 3171/3088/1337 3663/3504/1753 3660/3501/1750 +f 3663/3504/1753 3664/3505/1754 3661/3502/1751 +f 3664/3505/1754 3665/3506/1755 3662/3503/1752 +f 3665/3506/1755 2984/3512/1761 2983/3507/1756 +f 3171/3088/1337 3170/3090/1339 3666/3508/1757 +f 3663/3504/1753 3666/3508/1757 3667/3509/1758 +f 3664/3505/1754 3667/3509/1758 3668/3510/1759 +f 3665/3506/1755 3668/3510/1759 2985/3511/1760 +f 3179/3096/1345 3669/3513/1762 3666/3508/1757 +f 3669/3513/1762 3670/3514/1763 3667/3509/1758 +f 3670/3514/1763 3671/3515/1764 3668/3510/1759 +f 3671/3515/1764 2986/3519/1768 2985/3511/1760 +f 3178/3098/1347 3672/3516/1765 3669/3513/1762 +f 3672/3516/1765 3673/3517/1766 3670/3514/1763 +f 3673/3517/1766 3674/3518/1767 3671/3515/1764 +f 3674/3518/1767 2987/3523/1772 2986/3519/1768 +f 3182/3100/1349 3675/3520/1769 3672/3516/1765 +f 3675/3520/1769 3676/3521/1770 3673/3517/1766 +f 3676/3521/1770 3677/3522/1771 3674/3518/1767 +f 3677/3522/1771 2988/3527/1776 2987/3523/1772 +f 3182/3100/1349 3184/3102/1351 3678/3524/1773 +f 3675/3520/1769 3678/3524/1773 3679/3525/1774 +f 3676/3521/1770 3679/3525/1774 3680/3526/1775 +f 3680/3526/1775 2989/3532/1781 2988/3527/1776 +f 3184/3102/1351 3186/3104/1353 3681/3528/1777 +f 3678/3524/1773 3681/3528/1777 3682/3529/1778 +f 3679/3525/1774 3682/3529/1778 3683/3530/1779 +f 3680/3526/1775 3683/3530/1779 2990/3531/1780 +f 3186/3104/1353 3188/3106/1355 3684/3533/1782 +f 3681/3528/1777 3684/3533/1782 3685/3534/1783 +f 3682/3529/1778 3685/3534/1783 3686/3535/1784 +f 3683/3530/1779 3686/3535/1784 2991/3536/1785 +f 3188/3106/1355 3175/3093/1342 3687/3537/1786 +f 3684/3533/1782 3687/3537/1786 3688/3538/1787 +f 3685/3534/1783 3688/3538/1787 3689/3539/1788 +f 3686/3535/1784 3689/3539/1788 2992/3540/1789 +f 3174/3095/1344 3690/3541/1790 3687/3537/1786 +f 3690/3541/1790 3691/3542/1791 3688/3538/1787 +f 3691/3542/1791 3692/3543/1792 3689/3539/1788 +f 3692/3543/1792 2993/3547/1796 2992/3540/1789 +f 3191/3108/1357 3693/3544/1793 3690/3541/1790 +f 3693/3544/1793 3694/3545/1794 3691/3542/1791 +f 3694/3545/1794 3695/3546/1795 3692/3543/1792 +f 3695/3546/1795 2994/2966/1215 2993/3547/1796 +f 3191/3108/1357 3190/3110/1359 3696/3548/1797 +f 3693/3544/1793 3696/3548/1797 3697/3549/1798 +f 3694/3545/1794 3697/3549/1798 3698/3550/1799 +f 3695/3546/1795 3698/3550/1799 2995/3551/1800 +f 3199/3116/1365 3699/3552/1801 3696/3548/1797 +f 3699/3552/1801 3700/3553/1802 3697/3549/1798 +f 3700/3553/1802 3701/3554/1803 3698/3550/1799 +f 3701/3554/1803 2996/3558/1807 2995/3551/1800 +f 3198/3118/1367 3702/3555/1804 3699/3552/1801 +f 3702/3555/1804 3703/3556/1805 3700/3553/1802 +f 3703/3556/1805 3704/3557/1806 3701/3554/1803 +f 3704/3557/1806 2997/3562/1811 2996/3558/1807 +f 3202/3120/1369 3705/3559/1808 3702/3555/1804 +f 3705/3559/1808 3706/3560/1809 3703/3556/1805 +f 3706/3560/1809 3707/3561/1810 3704/3557/1806 +f 3707/3561/1810 2998/3565/1814 2997/3562/1811 +f 3204/3122/1371 3708/3567/1816 3705/3559/1808 +f 3705/3559/1808 3708/3567/1816 3709/3563/1812 +f 3709/3563/1812 3710/3570/1819 3707/3561/1810 +f 3707/3561/1810 3710/3570/1819 2999/3564/1813 +f 3204/3122/1371 3206/3124/1373 3711/3566/1815 +f 3708/3567/1816 3711/3566/1815 3712/3568/1817 +f 3709/3563/1812 3712/3568/1817 3713/3569/1818 +f 3710/3570/1819 3713/3569/1818 3000/3571/1820 +f 3206/3124/1373 3208/3126/1375 3714/3572/1821 +f 3711/3566/1815 3714/3572/1821 3715/3573/1822 +f 3712/3568/1817 3715/3573/1822 3716/3574/1823 +f 3713/3569/1818 3716/3574/1823 3001/3575/1824 +f 3208/3126/1375 3195/3113/1362 3717/3576/1825 +f 3714/3572/1821 3717/3576/1825 3718/3577/1826 +f 3715/3573/1822 3718/3577/1826 3719/3578/1827 +f 3716/3574/1823 3719/3578/1827 3002/3579/1828 +f 3194/3115/1364 3720/3580/1829 3717/3576/1825 +f 3720/3580/1829 3721/3581/1830 3718/3577/1826 +f 3721/3581/1830 3722/3582/1831 3719/3578/1827 +f 3722/3582/1831 3003/3586/1835 3002/3579/1828 +f 3214/3132/1381 3723/3583/1832 3720/3580/1829 +f 3723/3583/1832 3724/3584/1833 3721/3581/1830 +f 3724/3584/1833 3725/3585/1834 3722/3582/1831 +f 3725/3585/1834 3004/3591/1840 3003/3586/1835 +f 3214/3132/1381 3211/3128/1377 3726/3587/1836 +f 3723/3583/1832 3726/3587/1836 3727/3588/1837 +f 3724/3584/1833 3727/3588/1837 3728/3589/1838 +f 3725/3585/1834 3728/3589/1838 3005/3590/1839 +f 3211/3128/1377 3210/3130/1379 3729/3592/1841 +f 3726/3587/1836 3729/3592/1841 3730/3593/1842 +f 3727/3588/1837 3730/3593/1842 3731/3594/1843 +f 3728/3589/1838 3731/3594/1843 3006/3595/1844 +f 3221/3138/1387 3732/3596/1845 3729/3592/1841 +f 3732/3596/1845 3733/3597/1846 3730/3593/1842 +f 3733/3597/1846 3734/3598/1847 3731/3594/1843 +f 3734/3598/1847 3007/3602/1851 3006/3595/1844 +f 3220/3140/1389 3735/3599/1848 3732/3596/1845 +f 3735/3599/1848 3736/3600/1849 3733/3597/1846 +f 3736/3600/1849 3737/3601/1850 3734/3598/1847 +f 3737/3601/1850 3008/3606/1855 3007/3602/1851 +f 3224/3142/1391 3738/3603/1852 3735/3599/1848 +f 3738/3603/1852 3739/3604/1853 3736/3600/1849 +f 3739/3604/1853 3740/3605/1854 3737/3601/1850 +f 3740/3605/1854 3009/3610/1859 3008/3606/1855 +f 3226/3144/1393 3741/3607/1856 3738/3603/1852 +f 3741/3607/1856 3742/3613/1862 3739/3604/1853 +f 3739/3604/1853 3742/3613/1862 3743/3608/1857 +f 3740/3605/1854 3743/3608/1857 3010/3609/1858 +f 3226/3144/1393 3228/3146/1395 3744/3611/1860 +f 3741/3607/1856 3744/3611/1860 3745/3612/1861 +f 3742/3613/1862 3745/3612/1861 3746/3614/1863 +f 3743/3608/1857 3746/3614/1863 3011/3615/1864 +f 3228/3146/1395 3230/3148/1397 3747/3616/1865 +f 3744/3611/1860 3747/3616/1865 3748/3617/1866 +f 3745/3612/1861 3748/3617/1866 3749/3618/1867 +f 3746/3614/1863 3749/3618/1867 3012/3619/1868 +f 3230/3148/1397 3217/3135/1384 3750/3620/1869 +f 3747/3616/1865 3750/3620/1869 3751/3621/1870 +f 3748/3617/1866 3751/3621/1870 3752/3622/1871 +f 3749/3618/1867 3752/3622/1871 3013/3623/1872 +f 3216/3137/1386 3753/3624/1873 3750/3620/1869 +f 3753/3624/1873 3754/3625/1874 3751/3621/1870 +f 3754/3625/1874 3755/3626/1875 3752/3622/1871 +f 3755/3626/1875 3014/3631/1880 3013/3623/1872 +f 3216/3137/1386 3233/3150/1399 3756/3627/1876 +f 3753/3624/1873 3756/3627/1876 3757/3628/1877 +f 3754/3625/1874 3757/3628/1877 3758/3629/1878 +f 3755/3626/1875 3758/3629/1878 3015/3630/1879 +f 3233/3150/1399 3232/3152/1401 3759/3632/1881 +f 3756/3627/1876 3759/3632/1881 3760/3633/1882 +f 3757/3628/1877 3760/3633/1882 3761/3634/1883 +f 3758/3629/1878 3761/3634/1883 3016/3635/1884 +f 3241/3158/1407 3762/3636/1885 3759/3632/1881 +f 3762/3636/1885 3763/3637/1886 3760/3633/1882 +f 3763/3637/1886 3764/3638/1887 3761/3634/1883 +f 3764/3638/1887 3017/3642/1891 3016/3635/1884 +f 3240/3160/1409 3765/3639/1888 3762/3636/1885 +f 3765/3639/1888 3766/3640/1889 3763/3637/1886 +f 3766/3640/1889 3767/3641/1890 3764/3638/1887 +f 3767/3641/1890 3018/3646/1895 3017/3642/1891 +f 3244/3162/1411 3768/3643/1892 3765/3639/1888 +f 3768/3643/1892 3769/3644/1893 3766/3640/1889 +f 3769/3644/1893 3770/3645/1894 3767/3641/1890 +f 3770/3645/1894 3019/3650/1899 3018/3646/1895 +f 3244/3162/1411 3246/3164/1413 3771/3647/1896 +f 3771/3647/1896 3772/3648/1897 3769/3644/1893 +f 3772/3648/1897 3773/3654/1903 3770/3645/1894 +f 3770/3645/1894 3773/3654/1903 3020/3649/1898 +f 3246/3164/1413 3248/3166/1415 3774/3651/1900 +f 3771/3647/1896 3774/3651/1900 3775/3652/1901 +f 3772/3648/1897 3775/3652/1901 3776/3653/1902 +f 3773/3654/1903 3776/3653/1902 3021/3655/1904 +f 3248/3166/1415 3250/3168/1417 3777/3656/1905 +f 3774/3651/1900 3777/3656/1905 3778/3657/1906 +f 3775/3652/1901 3778/3657/1906 3779/3658/1907 +f 3776/3653/1902 3779/3658/1907 3022/3659/1908 +f 3250/3168/1417 3237/3155/1404 3780/3660/1909 +f 3777/3656/1905 3780/3660/1909 3781/3661/1910 +f 3778/3657/1906 3781/3661/1910 3782/3662/1911 +f 3779/3658/1907 3782/3662/1911 3023/3663/1912 +f 3236/3157/1406 3783/3664/1913 3780/3660/1909 +f 3783/3664/1913 3784/3665/1914 3781/3661/1910 +f 3784/3665/1914 3785/3666/1915 3782/3662/1911 +f 3785/3666/1915 3024/3670/1919 3023/3663/1912 +f 3253/3170/1419 3786/3667/1916 3783/3664/1913 +f 3786/3667/1916 3787/3668/1917 3784/3665/1914 +f 3787/3668/1917 3788/3669/1918 3785/3666/1915 +f 3788/3669/1918 3025/3675/1924 3024/3670/1919 +f 3253/3170/1419 3252/3172/1421 3789/3671/1920 +f 3786/3667/1916 3789/3671/1920 3790/3672/1921 +f 3787/3668/1917 3790/3672/1921 3791/3673/1922 +f 3788/3669/1918 3791/3673/1922 3026/3674/1923 +f 3261/3178/1427 3792/3676/1925 3789/3671/1920 +f 3792/3676/1925 3793/3677/1926 3790/3672/1921 +f 3793/3677/1926 3794/3678/1927 3791/3673/1922 +f 3794/3678/1927 3027/3682/1931 3026/3674/1923 +f 3260/3180/1429 3795/3679/1928 3792/3676/1925 +f 3795/3679/1928 3796/3680/1929 3793/3677/1926 +f 3796/3680/1929 3797/3681/1930 3794/3678/1927 +f 3797/3681/1930 3028/3686/1935 3027/3682/1931 +f 3264/3182/1431 3798/3683/1932 3795/3679/1928 +f 3798/3683/1932 3799/3684/1933 3796/3680/1929 +f 3799/3684/1933 3800/3685/1934 3797/3681/1930 +f 3800/3685/1934 3029/3690/1939 3028/3686/1935 +f 3264/3182/1431 3266/3184/1433 3801/3687/1936 +f 3798/3683/1932 3801/3687/1936 3802/3688/1937 +f 3802/3688/1937 3803/3694/1943 3800/3685/1934 +f 3800/3685/1934 3803/3694/1943 3030/3689/1938 +f 3266/3184/1433 3268/3186/1435 3804/3691/1940 +f 3801/3687/1936 3804/3691/1940 3805/3692/1941 +f 3802/3688/1937 3805/3692/1941 3806/3693/1942 +f 3803/3694/1943 3806/3693/1942 3031/3695/1944 +f 3268/3186/1435 3270/3188/1437 3807/3696/1945 +f 3804/3691/1940 3807/3696/1945 3808/3697/1946 +f 3805/3692/1941 3808/3697/1946 3809/3698/1947 +f 3806/3693/1942 3809/3698/1947 3032/3699/1948 +f 3270/3188/1437 3257/3175/1424 3810/3700/1949 +f 3807/3696/1945 3810/3700/1949 3811/3701/1950 +f 3808/3697/1946 3811/3701/1950 3812/3702/1951 +f 3809/3698/1947 3812/3702/1951 3033/3703/1952 +f 3256/3177/1426 3813/3704/1953 3810/3700/1949 +f 3813/3704/1953 3814/3705/1954 3811/3701/1950 +f 3814/3705/1954 3815/3706/1955 3812/3702/1951 +f 3815/3706/1955 3034/3710/1959 3033/3703/1952 +f 3273/3190/1439 3816/3707/1956 3813/3704/1953 +f 3816/3707/1956 3817/3708/1957 3814/3705/1954 +f 3817/3708/1957 3818/3709/1958 3815/3706/1955 +f 3818/3709/1958 3035/3714/1963 3034/3710/1959 +f 3272/3192/1441 3819/3711/1960 3816/3707/1956 +f 3819/3711/1960 3820/3712/1961 3817/3708/1957 +f 3820/3712/1961 3821/3713/1962 3818/3709/1958 +f 3821/3713/1962 3036/3719/1968 3035/3714/1963 +f 3272/3192/1441 3281/3198/1447 3822/3715/1964 +f 3819/3711/1960 3822/3715/1964 3823/3716/1965 +f 3820/3712/1961 3823/3716/1965 3824/3717/1966 +f 3821/3713/1962 3824/3717/1966 3037/3718/1967 +f 3281/3198/1447 3280/3200/1449 3825/3720/1969 +f 3822/3715/1964 3825/3720/1969 3826/3721/1970 +f 3823/3716/1965 3826/3721/1970 3827/3722/1971 +f 3824/3717/1966 3827/3722/1971 3038/3723/1972 +f 3280/3200/1449 3284/3202/1451 3828/3724/1973 +f 3825/3720/1969 3828/3724/1973 3829/3725/1974 +f 3826/3721/1970 3829/3725/1974 3830/3726/1975 +f 3827/3722/1971 3830/3726/1975 3039/3727/1976 +f 3284/3202/1451 3286/3204/1453 3831/3728/1977 +f 3828/3724/1973 3831/3728/1977 3832/3729/1978 +f 3832/3729/1978 3833/3730/1979 3830/3726/1975 +f 3833/3730/1979 3040/3734/1983 3039/3727/1976 +f 3288/3206/1455 3834/3731/1980 3831/3728/1977 +f 3834/3731/1980 3835/3732/1981 3832/3729/1978 +f 3835/3732/1981 3836/3733/1982 3833/3730/1979 +f 3836/3733/1982 3041/3738/1987 3040/3734/1983 +f 3290/3208/1457 3837/3735/1984 3834/3731/1980 +f 3837/3735/1984 3838/3736/1985 3835/3732/1981 +f 3838/3736/1985 3839/3737/1986 3836/3733/1982 +f 3839/3737/1986 3042/3742/1991 3041/3738/1987 +f 3277/3195/1444 3840/3739/1988 3837/3735/1984 +f 3840/3739/1988 3841/3740/1989 3838/3736/1985 +f 3841/3740/1989 3842/3741/1990 3839/3737/1986 +f 3842/3741/1990 3043/3747/1996 3042/3742/1991 +f 3277/3195/1444 3276/3197/1446 3843/3743/1992 +f 3840/3739/1988 3843/3743/1992 3844/3744/1993 +f 3841/3740/1989 3844/3744/1993 3845/3745/1994 +f 3842/3741/1990 3845/3745/1994 3044/3746/1995 +f 3276/3197/1446 3294/3215/1464 3478/3262/1511 +f 3843/3743/1992 3478/3262/1511 3476/3260/1509 +f 3844/3744/1993 3476/3260/1509 3474/3258/1507 +f 3845/3745/1994 3474/3258/1507 3045/3255/1504 +f 2899/2962/1211 2898/2964/1213 3846/3748/1997 +f 3479/3261/1510 3846/3748/1997 3847/3749/1998 +f 3477/3259/1508 3847/3749/1998 3848/3750/1999 +f 3475/3256/1505 3848/3750/1999 2903/3751/2000 +f 2898/2964/1213 3292/3211/1460 3849/3752/2001 +f 3846/3748/1997 3849/3752/2001 3850/3753/2002 +f 3847/3749/1998 3850/3753/2002 3851/3754/2003 +f 3848/3750/1999 3851/3754/2003 2904/3755/2004 +f 3301/3219/1468 3852/3756/2005 3849/3752/2001 +f 3852/3756/2005 3853/3757/2006 3850/3753/2002 +f 3853/3757/2006 3854/3758/2007 3851/3754/2003 +f 3854/3758/2007 2905/3762/2011 2904/3755/2004 +f 3300/3221/1470 3855/3759/2008 3852/3756/2005 +f 3855/3759/2008 3856/3760/2009 3853/3757/2006 +f 3856/3760/2009 3857/3761/2010 3854/3758/2007 +f 3857/3761/2010 2906/3766/2015 2905/3762/2011 +f 3304/3223/1472 3858/3763/2012 3855/3759/2008 +f 3858/3763/2012 3859/3764/2013 3856/3760/2009 +f 3859/3764/2013 3860/3765/2014 3857/3761/2010 +f 3860/3765/2014 2907/3770/2019 2906/3766/2015 +f 3304/3223/1472 3306/3225/1474 3861/3767/2016 +f 3861/3767/2016 3862/3768/2017 3859/3764/2013 +f 3862/3768/2017 3863/3769/2018 3860/3765/2014 +f 3863/3769/2018 2908/3775/2024 2907/3770/2019 +f 3306/3225/1474 3308/3227/1476 3864/3771/2020 +f 3861/3767/2016 3864/3771/2020 3865/3772/2021 +f 3862/3768/2017 3865/3772/2021 3866/3773/2022 +f 3863/3769/2018 3866/3773/2022 2909/3774/2023 +f 3308/3227/1476 3310/3229/1478 3867/3776/2025 +f 3864/3771/2020 3867/3776/2025 3868/3777/2026 +f 3865/3772/2021 3868/3777/2026 3869/3778/2027 +f 3866/3773/2022 3869/3778/2027 2910/3779/2028 +f 3310/3229/1478 3297/3216/1465 3870/3780/2029 +f 3867/3776/2025 3870/3780/2029 3871/3781/2030 +f 3868/3777/2026 3871/3781/2030 3872/3782/2031 +f 3869/3778/2027 3872/3782/2031 2911/3783/2032 +f 3296/3218/1467 3873/3784/2033 3870/3780/2029 +f 3873/3784/2033 3874/3785/2034 3871/3781/2030 +f 3874/3785/2034 3875/3786/2035 3872/3782/2031 +f 3875/3786/2035 2912/3791/2040 2911/3783/2032 +f 3296/3218/1467 3313/3231/1480 3876/3787/2036 +f 3873/3784/2033 3876/3787/2036 3877/3788/2037 +f 3874/3785/2034 3877/3788/2037 3878/3789/2038 +f 3875/3786/2035 3878/3789/2038 2913/3790/2039 +f 3313/3231/1480 3312/3233/1482 3879/3792/2041 +f 3876/3787/2036 3879/3792/2041 3880/3793/2042 +f 3877/3788/2037 3880/3793/2042 3881/3794/2043 +f 3878/3789/2038 3881/3794/2043 2914/3795/2044 +f 3319/3238/1487 3882/3796/2045 3879/3792/2041 +f 3882/3796/2045 3883/3801/2050 3880/3793/2042 +f 3880/3793/2042 3883/3801/2050 3884/3797/2046 +f 3881/3794/2043 3884/3797/2046 2915/3798/2047 +f 3319/3238/1487 3318/3240/1489 3885/3799/2048 +f 3882/3796/2045 3885/3799/2048 3886/3800/2049 +f 3886/3800/2049 3887/3802/2051 3884/3797/2046 +f 3887/3802/2051 2916/3806/2055 2915/3798/2047 +f 3318/3240/1489 3322/3242/1491 3888/3803/2052 +f 3888/3803/2052 3889/3804/2053 3886/3800/2049 +f 3889/3804/2053 3890/3805/2054 3887/3802/2051 +f 3890/3805/2054 2917/3809/2058 2916/3806/2055 +f 3322/3242/1491 3324/3244/1493 3891/3807/2056 +f 3891/3807/2056 3892/3812/2061 3889/3804/2053 +f 3889/3804/2053 3892/3812/2061 3893/3808/2057 +f 3893/3808/2057 2918/3814/2063 2917/3809/2058 +f 3324/3244/1493 3326/3246/1495 3894/3810/2059 +f 3891/3807/2056 3894/3810/2059 3895/3811/2060 +f 3895/3811/2060 3896/3813/2062 3893/3808/2057 +f 3896/3813/2062 2919/3818/2067 2918/3814/2063 +f 3328/3248/1497 3897/3819/2068 3894/3810/2059 +f 3894/3810/2059 3897/3819/2068 3898/3815/2064 +f 3895/3811/2060 3898/3815/2064 3899/3816/2065 +f 3896/3813/2062 3899/3816/2065 2920/3817/2066 +f 3316/3236/1485 3900/3822/2071 3897/3819/2068 +f 3897/3819/2068 3900/3822/2071 3901/3820/2069 +f 3901/3820/2069 3902/3821/2070 3899/3816/2065 +f 3902/3821/2070 2921/3826/2075 2920/3817/2066 +f 3047/2968/1217 3903/3823/2072 3900/3822/2071 +f 3903/3823/2072 3904/3824/2073 3901/3820/2069 +f 3904/3824/2073 3905/3825/2074 3902/3821/2070 +f 3905/3825/2074 2922/3827/2076 2921/3826/2075 +f 3047/2968/1217 3046/2970/1219 3481/3264/1513 +f 3481/3264/1513 3483/3266/1515 3904/3824/2073 +f 3483/3266/1515 3485/3268/1517 3905/3825/2074 +f 3905/3825/2074 3485/3268/1517 2923/3270/1519 +f 2900/3828/2077 3295/3214/1463 3906/3829/2078 +f 3907/3830/2079 3906/3829/2078 3908/3831/2080 +f 3909/3832/2081 3908/3831/2080 3910/3833/2082 +f 3911/3834/2083 3910/3833/2082 3331/3835/2084 +f 3452/3837/2086 3912/3840/2089 3913/3838/2087 +f 3912/3840/2089 3914/3842/2091 3915/3841/2090 +f 3914/3842/2091 3916/3844/2093 3917/3843/2092 +f 3916/3844/2093 3071/3012/1261 3049/2969/1218 +f 3452/3837/2086 3451/3847/2096 3918/3845/2094 +f 3918/3845/2094 3919/3846/2095 3914/3842/2091 +f 3919/3846/2095 3920/3850/2099 3916/3844/2093 +f 3916/3844/2093 3920/3850/2099 3052/2990/1239 +f 3451/3847/2096 3450/3852/2101 3921/3848/2097 +f 3921/3848/2097 3922/3854/2103 3919/3846/2095 +f 3919/3846/2095 3922/3854/2103 3923/3849/2098 +f 3923/3849/2098 3053/2972/1221 3052/2990/1239 +f 3449/3851/2100 3924/3853/2102 3921/3848/2097 +f 3924/3853/2102 3925/3857/2106 3922/3854/2103 +f 3922/3854/2103 3925/3857/2106 3926/3855/2104 +f 3923/3849/2098 3926/3855/2104 3055/2974/1223 +f 3449/3851/2100 3448/3860/2109 3927/3856/2105 +f 3927/3856/2105 3928/3858/2107 3925/3857/2106 +f 3928/3858/2107 3929/3863/2112 3926/3855/2104 +f 3926/3855/2104 3929/3863/2112 3057/2976/1225 +f 3447/3859/2108 3930/3861/2110 3927/3856/2105 +f 3930/3861/2110 3931/3866/2115 3928/3858/2107 +f 3928/3858/2107 3931/3866/2115 3932/3862/2111 +f 3929/3863/2112 3932/3862/2111 3059/2978/1227 +f 3446/3864/2113 3933/3869/2118 3930/3861/2110 +f 3930/3861/2110 3933/3869/2118 3934/3865/2114 +f 3931/3866/2115 3934/3865/2114 3935/3867/2116 +f 3935/3867/2116 3061/2980/1229 3059/2978/1227 +f 3446/3864/2113 3445/3872/2121 3936/3868/2117 +f 3933/3869/2118 3936/3868/2117 3937/3870/2119 +f 3937/3870/2119 3938/3871/2120 3935/3867/2116 +f 3938/3871/2120 3063/2982/1231 3061/2980/1229 +f 3445/3872/2121 3444/3876/2125 3939/3873/2122 +f 3936/3868/2117 3939/3873/2122 3940/3874/2123 +f 3937/3870/2119 3940/3874/2123 3941/3875/2124 +f 3938/3871/2120 3941/3875/2124 3069/3254/1503 +f 3444/3876/2125 3443/3880/2129 3942/3877/2126 +f 3939/3873/2122 3942/3877/2126 3943/3878/2127 +f 3940/3874/2123 3943/3878/2127 3944/3879/2128 +f 3941/3875/2124 3944/3879/2128 3066/2988/1237 +f 3443/3880/2129 3442/3885/2134 3945/3881/2130 +f 3942/3877/2126 3945/3881/2130 3946/3882/2131 +f 3943/3878/2127 3946/3882/2131 3947/3883/2132 +f 3944/3879/2128 3947/3883/2132 3067/2985/1234 +f 3441/3884/2133 3948/3886/2135 3945/3881/2130 +f 3948/3886/2135 3949/3887/2136 3946/3882/2131 +f 3949/3887/2136 3950/3888/2137 3947/3883/2132 +f 3950/3888/2137 3078/3009/1258 3067/2985/1234 +f 3440/3889/2138 3951/3890/2139 3948/3886/2135 +f 3951/3890/2139 3952/3891/2140 3949/3887/2136 +f 3952/3891/2140 3953/3892/2141 3950/3888/2137 +f 3953/3892/2141 3079/2995/1244 3078/3009/1258 +f 3439/3893/2142 3954/3894/2143 3951/3890/2139 +f 3954/3894/2143 3955/3895/2144 3952/3891/2140 +f 3955/3895/2144 3956/3896/2145 3953/3892/2141 +f 3956/3896/2145 3081/2997/1246 3079/2995/1244 +f 3439/3893/2142 3438/3900/2149 3957/3897/2146 +f 3954/3894/2143 3957/3897/2146 3958/3898/2147 +f 3958/3898/2147 3959/3899/2148 3956/3896/2145 +f 3959/3899/2148 3083/2999/1248 3081/2997/1246 +f 3438/3900/2149 3437/3904/2153 3960/3901/2150 +f 3957/3897/2146 3960/3901/2150 3961/3902/2151 +f 3958/3898/2147 3961/3902/2151 3962/3903/2152 +f 3959/3899/2148 3962/3903/2152 3085/3001/1250 +f 3437/3904/2153 3436/3908/2157 3963/3905/2154 +f 3960/3901/2150 3963/3905/2154 3964/3906/2155 +f 3961/3902/2151 3964/3906/2155 3965/3907/2156 +f 3962/3903/2152 3965/3907/2156 3087/3003/1252 +f 3436/3908/2157 3435/3913/2162 3966/3909/2158 +f 3963/3905/2154 3966/3909/2158 3967/3910/2159 +f 3964/3906/2155 3967/3910/2159 3968/3911/2160 +f 3965/3907/2156 3968/3911/2160 3074/3005/1254 +f 3434/3912/2161 3969/3914/2163 3966/3909/2158 +f 3969/3914/2163 3970/3915/2164 3967/3910/2159 +f 3970/3915/2164 3971/3916/2165 3968/3911/2160 +f 3971/3916/2165 3075/2992/1241 3074/3005/1254 +f 3433/3917/2166 3972/3918/2167 3969/3914/2163 +f 3972/3918/2167 3973/3919/2168 3970/3915/2164 +f 3973/3919/2168 3974/3920/2169 3971/3916/2165 +f 3974/3920/2169 3093/3134/1383 3075/2992/1241 +f 3433/3917/2166 3432/3924/2173 3975/3921/2170 +f 3972/3918/2167 3975/3921/2170 3976/3922/2171 +f 3973/3919/2168 3976/3922/2171 3977/3923/2172 +f 3974/3920/2169 3977/3923/2172 3090/3011/1260 +f 3432/3924/2173 3431/3928/2177 3978/3925/2174 +f 3975/3921/2170 3978/3925/2174 3979/3926/2175 +f 3976/3922/2171 3979/3926/2175 3980/3927/2176 +f 3977/3923/2172 3980/3927/2176 3091/3007/1256 +f 3431/3928/2177 3430/3932/2181 3981/3929/2178 +f 3978/3925/2174 3981/3929/2178 3982/3930/2179 +f 3979/3926/2175 3982/3930/2179 3983/3931/2180 +f 3980/3927/2176 3983/3931/2180 3100/3032/1281 +f 3430/3932/2181 3429/3936/2185 3984/3933/2182 +f 3981/3929/2178 3984/3933/2182 3985/3934/2183 +f 3982/3930/2179 3985/3934/2183 3986/3935/2184 +f 3983/3931/2180 3986/3935/2184 3101/3017/1266 +f 3429/3936/2185 3428/3940/2189 3987/3937/2186 +f 3984/3933/2182 3987/3937/2186 3988/3938/2187 +f 3985/3934/2183 3988/3938/2187 3989/3939/2188 +f 3986/3935/2184 3989/3939/2188 3103/3019/1268 +f 3428/3940/2189 3427/3944/2193 3990/3941/2190 +f 3990/3941/2190 3991/3946/2195 3988/3938/2187 +f 3988/3938/2187 3991/3946/2195 3992/3942/2191 +f 3992/3942/2191 3105/3021/1270 3103/3019/1268 +f 3426/3943/2192 3993/3945/2194 3990/3941/2190 +f 3993/3945/2194 3994/3947/2196 3991/3946/2195 +f 3994/3947/2196 3995/3948/2197 3992/3942/2191 +f 3995/3948/2197 3107/3023/1272 3105/3021/1270 +f 3425/3949/2198 3996/3950/2199 3993/3945/2194 +f 3996/3950/2199 3997/3951/2200 3994/3947/2196 +f 3997/3951/2200 3998/3952/2201 3995/3948/2197 +f 3998/3952/2201 3109/3025/1274 3107/3023/1272 +f 3424/3953/2202 3999/3954/2203 3996/3950/2199 +f 3999/3954/2203 4000/3955/2204 3997/3951/2200 +f 4000/3955/2204 4001/3956/2205 3998/3952/2201 +f 4001/3956/2205 3096/3027/1276 3109/3025/1274 +f 3423/3957/2206 4002/3958/2207 3999/3954/2203 +f 4002/3958/2207 4003/3959/2208 4000/3955/2204 +f 4003/3959/2208 4004/3960/2209 4001/3956/2205 +f 4004/3960/2209 3097/3014/1263 3096/3027/1276 +f 3422/3961/2210 4005/3962/2211 4002/3958/2207 +f 4005/3962/2211 4006/3963/2212 4003/3959/2208 +f 4006/3963/2212 4007/3964/2213 4004/3960/2209 +f 4007/3964/2213 3112/3031/1280 3097/3014/1263 +f 3422/3961/2210 3421/3968/2217 4008/3965/2214 +f 4005/3962/2211 4008/3965/2214 4009/3966/2215 +f 4006/3963/2212 4009/3966/2215 4010/3967/2216 +f 4007/3964/2213 4010/3967/2216 3113/3029/1278 +f 3420/3252/1501 4011/3969/2218 4008/3965/2214 +f 4011/3969/2218 4012/3970/2219 4009/3966/2215 +f 4012/3970/2219 4013/3971/2220 4010/3967/2216 +f 4013/3971/2220 3120/3052/1301 3113/3029/1278 +f 3419/3251/1500 4014/3972/2221 4011/3969/2218 +f 4014/3972/2221 4015/3973/2222 4012/3970/2219 +f 4015/3973/2222 4016/3974/2223 4013/3971/2220 +f 4016/3974/2223 3121/3037/1286 3120/3052/1301 +f 3418/3975/2224 4017/3976/2225 4014/3972/2221 +f 4017/3976/2225 4018/3977/2226 4015/3973/2222 +f 4018/3977/2226 4019/3978/2227 4016/3974/2223 +f 4019/3978/2227 3123/3039/1288 3121/3037/1286 +f 3417/3979/2228 4020/3982/2231 4017/3976/2225 +f 4017/3976/2225 4020/3982/2231 4021/3980/2229 +f 4021/3980/2229 4022/3985/2234 4019/3978/2227 +f 4019/3978/2227 4022/3985/2234 3125/3041/1290 +f 3417/3979/2228 3416/3986/2235 4023/3981/2230 +f 4020/3982/2231 4023/3981/2230 4024/3983/2232 +f 4021/3980/2229 4024/3983/2232 4025/3984/2233 +f 4022/3985/2234 4025/3984/2233 3127/3043/1292 +f 3416/3986/2235 3415/3990/2239 4026/3987/2236 +f 4023/3981/2230 4026/3987/2236 4027/3988/2237 +f 4024/3983/2232 4027/3988/2237 4028/3989/2238 +f 4025/3984/2233 4028/3989/2238 3129/3045/1294 +f 3415/3990/2239 3414/3995/2244 4029/3991/2240 +f 4026/3987/2236 4029/3991/2240 4030/3992/2241 +f 4027/3988/2237 4030/3992/2241 4031/3993/2242 +f 4028/3989/2238 4031/3993/2242 3116/3047/1296 +f 3413/3994/2243 4032/3996/2245 4029/3991/2240 +f 4032/3996/2245 4033/3997/2246 4030/3992/2241 +f 4033/3997/2246 4034/3998/2247 4031/3993/2242 +f 4034/3998/2247 3117/3034/1283 3116/3047/1296 +f 3412/3999/2248 4035/4000/2249 4032/3996/2245 +f 4035/4000/2249 4036/4001/2250 4033/3997/2246 +f 4036/4001/2250 4037/4002/2251 4034/3998/2247 +f 4037/4002/2251 3132/3051/1300 3117/3034/1283 +f 3411/4003/2252 4038/4004/2253 4035/4000/2249 +f 4038/4004/2253 4039/4005/2254 4036/4001/2250 +f 4039/4005/2254 4040/4006/2255 4037/4002/2251 +f 4040/4006/2255 3133/3049/1298 3132/3051/1300 +f 3411/4003/2252 3410/4010/2259 4041/4007/2256 +f 4038/4004/2253 4041/4007/2256 4042/4008/2257 +f 4039/4005/2254 4042/4008/2257 4043/4009/2258 +f 4040/4006/2255 4043/4009/2258 3140/3072/1321 +f 3410/4010/2259 3409/4014/2263 4044/4011/2260 +f 4041/4007/2256 4044/4011/2260 4045/4012/2261 +f 4042/4008/2257 4045/4012/2261 4046/4013/2262 +f 4043/4009/2258 4046/4013/2262 3141/3057/1306 +f 3409/4014/2263 3408/4018/2267 4047/4015/2264 +f 4044/4011/2260 4047/4015/2264 4048/4016/2265 +f 4045/4012/2261 4048/4016/2265 4049/4017/2266 +f 4046/4013/2262 4049/4017/2266 3143/3059/1308 +f 3408/4018/2267 3407/4023/2272 4050/4019/2268 +f 4047/4015/2264 4050/4019/2268 4051/4020/2269 +f 4048/4016/2265 4051/4020/2269 4052/4021/2270 +f 4049/4017/2266 4052/4021/2270 3145/3061/1310 +f 3406/4022/2271 4053/4024/2273 4050/4019/2268 +f 4053/4024/2273 4054/4025/2274 4051/4020/2269 +f 4054/4025/2274 4055/4026/2275 4052/4021/2270 +f 4055/4026/2275 3147/3063/1312 3145/3061/1310 +f 3405/4027/2276 4056/4028/2277 4053/4024/2273 +f 4056/4028/2277 4057/4029/2278 4054/4025/2274 +f 4057/4029/2278 4058/4030/2279 4055/4026/2275 +f 4058/4030/2279 3149/3065/1314 3147/3063/1312 +f 3404/4031/2280 4059/4032/2281 4056/4028/2277 +f 4059/4032/2281 4060/4033/2282 4057/4029/2278 +f 4060/4033/2282 4061/4034/2283 4058/4030/2279 +f 4061/4034/2283 3136/3067/1316 3149/3065/1314 +f 3404/4031/2280 3403/4039/2288 4062/4035/2284 +f 4059/4032/2281 4062/4035/2284 4063/4036/2285 +f 4060/4033/2282 4063/4036/2285 4064/4037/2286 +f 4061/4034/2283 4064/4037/2286 3137/3054/1303 +f 3402/4038/2287 4065/4040/2289 4062/4035/2284 +f 4065/4040/2289 4066/4041/2290 4063/4036/2285 +f 4066/4041/2290 4067/4042/2291 4064/4037/2286 +f 4067/4042/2291 3152/3071/1320 3137/3054/1303 +f 3401/4043/2292 4068/4044/2293 4065/4040/2289 +f 4068/4044/2293 4069/4045/2294 4066/4041/2290 +f 4069/4045/2294 4070/4046/2295 4067/4042/2291 +f 4070/4046/2295 3153/3069/1318 3152/3071/1320 +f 3401/4043/2292 3400/4050/2299 4071/4047/2296 +f 4068/4044/2293 4071/4047/2296 4072/4048/2297 +f 4069/4045/2294 4072/4048/2297 4073/4049/2298 +f 4070/4046/2295 4073/4049/2298 3160/3092/1341 +f 3400/4050/2299 3399/4054/2303 4074/4051/2300 +f 4071/4047/2296 4074/4051/2300 4075/4052/2301 +f 4072/4048/2297 4075/4052/2301 4076/4053/2302 +f 4073/4049/2298 4076/4053/2302 3161/3077/1326 +f 3399/4054/2303 3398/4058/2307 4077/4055/2304 +f 4074/4051/2300 4077/4055/2304 4078/4056/2305 +f 4075/4052/2301 4078/4056/2305 4079/4057/2306 +f 4076/4053/2302 4079/4057/2306 3163/3079/1328 +f 3398/4058/2307 3397/4062/2311 4080/4059/2308 +f 4080/4059/2308 4081/4064/2313 4078/4056/2305 +f 4078/4056/2305 4081/4064/2313 4082/4060/2309 +f 4082/4060/2309 3165/3081/1330 3163/3079/1328 +f 3396/4061/2310 4083/4063/2312 4080/4059/2308 +f 4083/4063/2312 4084/4065/2314 4081/4064/2313 +f 4084/4065/2314 4085/4066/2315 4082/4060/2309 +f 4085/4066/2315 3167/3083/1332 3165/3081/1330 +f 3395/4067/2316 4086/4068/2317 4083/4063/2312 +f 4086/4068/2317 4087/4069/2318 4084/4065/2314 +f 4087/4069/2318 4088/4070/2319 4085/4066/2315 +f 4088/4070/2319 3169/3085/1334 3167/3083/1332 +f 3394/4071/2320 4089/4072/2321 4086/4068/2317 +f 4089/4072/2321 4090/4073/2322 4087/4069/2318 +f 4090/4073/2322 4091/4074/2323 4088/4070/2319 +f 4091/4074/2323 3156/3087/1336 3169/3085/1334 +f 3394/4071/2320 3393/4078/2327 4092/4075/2324 +f 4089/4072/2321 4092/4075/2324 4093/4076/2325 +f 4090/4073/2322 4093/4076/2325 4094/4077/2326 +f 4091/4074/2323 4094/4077/2326 3157/3074/1323 +f 3393/4078/2327 3392/4083/2332 4095/4079/2328 +f 4092/4075/2324 4095/4079/2328 4096/4080/2329 +f 4093/4076/2325 4096/4080/2329 4097/4081/2330 +f 4094/4077/2326 4097/4081/2330 3172/3091/1340 +f 3391/4082/2331 4098/4084/2333 4095/4079/2328 +f 4098/4084/2333 4099/4085/2334 4096/4080/2329 +f 4099/4085/2334 4100/4086/2335 4097/4081/2330 +f 4100/4086/2335 3173/3089/1338 3172/3091/1340 +f 3391/4082/2331 3390/4090/2339 4101/4087/2336 +f 4098/4084/2333 4101/4087/2336 4102/4088/2337 +f 4099/4085/2334 4102/4088/2337 4103/4089/2338 +f 4100/4086/2335 4103/4089/2338 3180/3112/1361 +f 3390/4090/2339 3389/4094/2343 4104/4091/2340 +f 4101/4087/2336 4104/4091/2340 4105/4092/2341 +f 4102/4088/2337 4105/4092/2341 4106/4093/2342 +f 4103/4089/2338 4106/4093/2342 3181/3097/1346 +f 3389/4094/2343 3388/4098/2347 4107/4095/2344 +f 4104/4091/2340 4107/4095/2344 4108/4096/2345 +f 4105/4092/2341 4108/4096/2345 4109/4097/2346 +f 4106/4093/2342 4109/4097/2346 3183/3099/1348 +f 3388/4098/2347 3387/4102/2351 4110/4099/2348 +f 4110/4099/2348 4111/4104/2353 4108/4096/2345 +f 4108/4096/2345 4111/4104/2353 4112/4100/2349 +f 4112/4100/2349 3185/3101/1350 3183/3099/1348 +f 3386/4101/2350 4113/4103/2352 4110/4099/2348 +f 4113/4103/2352 4114/4105/2354 4111/4104/2353 +f 4114/4105/2354 4115/4106/2355 4112/4100/2349 +f 4115/4106/2355 3187/3103/1352 3185/3101/1350 +f 3385/4107/2356 4116/4108/2357 4113/4103/2352 +f 4116/4108/2357 4117/4109/2358 4114/4105/2354 +f 4117/4109/2358 4118/4110/2359 4115/4106/2355 +f 4118/4110/2359 3189/3105/1354 3187/3103/1352 +f 3384/4111/2360 4119/4112/2361 4116/4108/2357 +f 4119/4112/2361 4120/4113/2362 4117/4109/2358 +f 4120/4113/2362 4121/4114/2363 4118/4110/2359 +f 4121/4114/2363 3176/3107/1356 3189/3105/1354 +f 3384/4111/2360 3383/4118/2367 4122/4115/2364 +f 4119/4112/2361 4122/4115/2364 4123/4116/2365 +f 4120/4113/2362 4123/4116/2365 4124/4117/2366 +f 4121/4114/2363 4124/4117/2366 3177/3094/1343 +f 3383/4118/2367 3382/3250/1499 4125/4119/2368 +f 4122/4115/2364 4125/4119/2368 4126/4120/2369 +f 4123/4116/2365 4126/4120/2369 4127/4121/2370 +f 4124/4117/2366 4127/4121/2370 3192/3111/1360 +f 3381/4122/2371 4128/4123/2372 4125/4119/2368 +f 4128/4123/2372 4129/4124/2373 4126/4120/2369 +f 4129/4124/2373 4130/4125/2374 4127/4121/2370 +f 4130/4125/2374 3193/3109/1358 3192/3111/1360 +f 3381/4122/2371 3380/4129/2378 4131/4126/2375 +f 4128/4123/2372 4131/4126/2375 4132/4127/2376 +f 4129/4124/2373 4132/4127/2376 4133/4128/2377 +f 4130/4125/2374 4133/4128/2377 3200/3131/1380 +f 3380/4129/2378 3379/4133/2382 4134/4130/2379 +f 4131/4126/2375 4134/4130/2379 4135/4131/2380 +f 4132/4127/2376 4135/4131/2380 4136/4132/2381 +f 4133/4128/2377 4136/4132/2381 3201/3117/1366 +f 3379/4133/2382 3378/4138/2387 4137/4134/2383 +f 4134/4130/2379 4137/4134/2383 4138/4135/2384 +f 4135/4131/2380 4138/4135/2384 4139/4136/2385 +f 4136/4132/2381 4139/4136/2385 3203/3119/1368 +f 3377/4137/2386 4140/4142/2391 4137/4134/2383 +f 4137/4134/2383 4140/4142/2391 4141/4139/2388 +f 4141/4139/2388 4142/4140/2389 4139/4136/2385 +f 4142/4140/2389 3205/3121/1370 3203/3119/1368 +f 3376/4141/2390 4143/4143/2392 4140/4142/2391 +f 4143/4143/2392 4144/4144/2393 4141/4139/2388 +f 4144/4144/2393 4145/4145/2394 4142/4140/2389 +f 4145/4145/2394 3207/3123/1372 3205/3121/1370 +f 3375/4146/2395 4146/4147/2396 4143/4143/2392 +f 4146/4147/2396 4147/4148/2397 4144/4144/2393 +f 4147/4148/2397 4148/4149/2398 4145/4145/2394 +f 4148/4149/2398 3209/3125/1374 3207/3123/1372 +f 3374/4150/2399 4149/4151/2400 4146/4147/2396 +f 4149/4151/2400 4150/4152/2401 4147/4148/2397 +f 4150/4152/2401 4151/4153/2402 4148/4149/2398 +f 4151/4153/2402 3196/3127/1376 3209/3125/1374 +f 3374/4150/2399 3373/4157/2406 4152/4154/2403 +f 4149/4151/2400 4152/4154/2403 4153/4155/2404 +f 4150/4152/2401 4153/4155/2404 4154/4156/2405 +f 4151/4153/2402 4154/4156/2405 3197/3114/1363 +f 3373/4157/2406 3372/4162/2411 4155/4158/2407 +f 4152/4154/2403 4155/4158/2407 4156/4159/2408 +f 4153/4155/2404 4156/4159/2408 4157/4160/2409 +f 4154/4156/2405 4157/4160/2409 3215/3213/1462 +f 3371/4161/2410 4158/4163/2412 4155/4158/2407 +f 4158/4163/2412 4159/4164/2413 4156/4159/2408 +f 4159/4164/2413 4160/4165/2414 4157/4160/2409 +f 4160/4165/2414 3212/3133/1382 3215/3213/1462 +f 3370/4166/2415 4161/4167/2416 4158/4163/2412 +f 4161/4167/2416 4162/4168/2417 4159/4164/2413 +f 4162/4168/2417 4163/4169/2418 4160/4165/2414 +f 4163/4169/2418 3213/3129/1378 3212/3133/1382 +f 3370/4166/2415 3369/4173/2422 4164/4170/2419 +f 4161/4167/2416 4164/4170/2419 4165/4171/2420 +f 4162/4168/2417 4165/4171/2420 4166/4172/2421 +f 4163/4169/2418 4166/4172/2421 3222/3154/1403 +f 3369/4173/2422 3368/4177/2426 4167/4174/2423 +f 4164/4170/2419 4167/4174/2423 4168/4175/2424 +f 4165/4171/2420 4168/4175/2424 4169/4176/2425 +f 4166/4172/2421 4169/4176/2425 3223/3139/1388 +f 3368/4177/2426 3367/4182/2431 4170/4178/2427 +f 4167/4174/2423 4170/4178/2427 4171/4179/2428 +f 4168/4175/2424 4171/4179/2428 4172/4180/2429 +f 4169/4176/2425 4172/4180/2429 3225/3141/1390 +f 3366/4181/2430 4173/4183/2432 4170/4178/2427 +f 4173/4183/2432 4174/4187/2436 4171/4179/2428 +f 4171/4179/2428 4174/4187/2436 4175/4184/2433 +f 4175/4184/2433 3227/3143/1392 3225/3141/1390 +f 3365/4185/2434 4176/4186/2435 4173/4183/2432 +f 4176/4186/2435 4177/4188/2437 4174/4187/2436 +f 4177/4188/2437 4178/4189/2438 4175/4184/2433 +f 4178/4189/2438 3229/3145/1394 3227/3143/1392 +f 3364/4190/2439 4179/4191/2440 4176/4186/2435 +f 4179/4191/2440 4180/4192/2441 4177/4188/2437 +f 4180/4192/2441 4181/4193/2442 4178/4189/2438 +f 4181/4193/2442 3231/3147/1396 3229/3145/1394 +f 3363/4194/2443 4182/4195/2444 4179/4191/2440 +f 4182/4195/2444 4183/4196/2445 4180/4192/2441 +f 4183/4196/2445 4184/4197/2446 4181/4193/2442 +f 4184/4197/2446 3218/3149/1398 3231/3147/1396 +f 3363/4194/2443 3362/4202/2451 4185/4198/2447 +f 4182/4195/2444 4185/4198/2447 4186/4199/2448 +f 4183/4196/2445 4186/4199/2448 4187/4200/2449 +f 4184/4197/2446 4187/4200/2449 3219/3136/1385 +f 3361/4201/2450 4188/4203/2452 4185/4198/2447 +f 4188/4203/2452 4189/4204/2453 4186/4199/2448 +f 4189/4204/2453 4190/4205/2454 4187/4200/2449 +f 4190/4205/2454 3234/3153/1402 3219/3136/1385 +f 3360/4206/2455 4191/4207/2456 4188/4203/2452 +f 4191/4207/2456 4192/4208/2457 4189/4204/2453 +f 4192/4208/2457 4193/4209/2458 4190/4205/2454 +f 4193/4209/2458 3235/3151/1400 3234/3153/1402 +f 3360/4206/2455 3359/4213/2462 4194/4210/2459 +f 4191/4207/2456 4194/4210/2459 4195/4211/2460 +f 4192/4208/2457 4195/4211/2460 4196/4212/2461 +f 4193/4209/2458 4196/4212/2461 3242/3174/1423 +f 3359/4213/2462 3358/4217/2466 4197/4214/2463 +f 4194/4210/2459 4197/4214/2463 4198/4215/2464 +f 4195/4211/2460 4198/4215/2464 4199/4216/2465 +f 4196/4212/2461 4199/4216/2465 3243/3159/1408 +f 3358/4217/2466 3357/4222/2471 4200/4218/2467 +f 4197/4214/2463 4200/4218/2467 4201/4219/2468 +f 4198/4215/2464 4201/4219/2468 4202/4220/2469 +f 4199/4216/2465 4202/4220/2469 3245/3161/1410 +f 3356/4221/2470 4203/4226/2475 4200/4218/2467 +f 4200/4218/2467 4203/4226/2475 4204/4223/2472 +f 4201/4219/2468 4204/4223/2472 4205/4224/2473 +f 4202/4220/2469 4205/4224/2473 3247/3163/1412 +f 3355/4225/2474 4206/4227/2476 4203/4226/2475 +f 4206/4227/2476 4207/4228/2477 4204/4223/2472 +f 4207/4228/2477 4208/4229/2478 4205/4224/2473 +f 4208/4229/2478 3249/3165/1414 3247/3163/1412 +f 3354/4230/2479 4209/4231/2480 4206/4227/2476 +f 4209/4231/2480 4210/4232/2481 4207/4228/2477 +f 4210/4232/2481 4211/4233/2482 4208/4229/2478 +f 4211/4233/2482 3251/3167/1416 3249/3165/1414 +f 3353/4234/2483 4212/4235/2484 4209/4231/2480 +f 4212/4235/2484 4213/4236/2485 4210/4232/2481 +f 4213/4236/2485 4214/4237/2486 4211/4233/2482 +f 4214/4237/2486 3238/3169/1418 3251/3167/1416 +f 3353/4234/2483 3352/4241/2490 4215/4238/2487 +f 4212/4235/2484 4215/4238/2487 4216/4239/2488 +f 4213/4236/2485 4216/4239/2488 4217/4240/2489 +f 4214/4237/2486 4217/4240/2489 3239/3156/1405 +f 3352/4241/2490 3351/4246/2495 4218/4242/2491 +f 4215/4238/2487 4218/4242/2491 4219/4243/2492 +f 4216/4239/2488 4219/4243/2492 4220/4244/2493 +f 4217/4240/2489 4220/4244/2493 3254/3173/1422 +f 3350/4245/2494 4221/4247/2496 4218/4242/2491 +f 4221/4247/2496 4222/4248/2497 4219/4243/2492 +f 4222/4248/2497 4223/4249/2498 4220/4244/2493 +f 4223/4249/2498 3255/3171/1420 3254/3173/1422 +f 3350/4245/2494 3349/4253/2502 4224/4250/2499 +f 4221/4247/2496 4224/4250/2499 4225/4251/2500 +f 4222/4248/2497 4225/4251/2500 4226/4252/2501 +f 4223/4249/2498 4226/4252/2501 3262/3194/1443 +f 3349/4253/2502 3348/4257/2506 4227/4254/2503 +f 4224/4250/2499 4227/4254/2503 4228/4255/2504 +f 4225/4251/2500 4228/4255/2504 4229/4256/2505 +f 4226/4252/2501 4229/4256/2505 3263/3179/1428 +f 3348/4257/2506 3347/4262/2511 4230/4258/2507 +f 4227/4254/2503 4230/4258/2507 4231/4259/2508 +f 4228/4255/2504 4231/4259/2508 4232/4260/2509 +f 4229/4256/2505 4232/4260/2509 3265/3181/1430 +f 3346/4261/2510 4233/4266/2515 4230/4258/2507 +f 4230/4258/2507 4233/4266/2515 4234/4263/2512 +f 4234/4263/2512 4235/4264/2513 4232/4260/2509 +f 4235/4264/2513 3267/3183/1432 3265/3181/1430 +f 3345/4265/2514 4236/4267/2516 4233/4266/2515 +f 4236/4267/2516 4237/4268/2517 4234/4263/2512 +f 4237/4268/2517 4238/4269/2518 4235/4264/2513 +f 4238/4269/2518 3269/3185/1434 3267/3183/1432 +f 3344/4270/2519 4239/4271/2520 4236/4267/2516 +f 4239/4271/2520 4240/4272/2521 4237/4268/2517 +f 4240/4272/2521 4241/4273/2522 4238/4269/2518 +f 4241/4273/2522 3271/3187/1436 3269/3185/1434 +f 3343/4274/2523 4242/4275/2524 4239/4271/2520 +f 4242/4275/2524 4243/4276/2525 4240/4272/2521 +f 4243/4276/2525 4244/4277/2526 4241/4273/2522 +f 4244/4277/2526 3258/3189/1438 3271/3187/1436 +f 3343/4274/2523 3342/4281/2530 4245/4278/2527 +f 4242/4275/2524 4245/4278/2527 4246/4279/2528 +f 4243/4276/2525 4246/4279/2528 4247/4280/2529 +f 4244/4277/2526 4247/4280/2529 3259/3176/1425 +f 3342/4281/2530 3341/4285/2534 4248/4282/2531 +f 4245/4278/2527 4248/4282/2531 4249/4283/2532 +f 4246/4279/2528 4249/4283/2532 4250/4284/2533 +f 4247/4280/2529 4250/4284/2533 3274/3193/1442 +f 3341/4285/2534 3340/4290/2539 4251/4286/2535 +f 4248/4282/2531 4251/4286/2535 4252/4287/2536 +f 4249/4283/2532 4252/4287/2536 4253/4288/2537 +f 4250/4284/2533 4253/4288/2537 3275/3191/1440 +f 3339/4289/2538 4254/4291/2540 4251/4286/2535 +f 4254/4291/2540 4255/4292/2541 4252/4287/2536 +f 4255/4292/2541 4256/4293/2542 4253/4288/2537 +f 4256/4293/2542 3282/3212/1461 3275/3191/1440 +f 3338/4294/2543 4257/4295/2544 4254/4291/2540 +f 4257/4295/2544 4258/4296/2545 4255/4292/2541 +f 4258/4296/2545 4259/4297/2546 4256/4293/2542 +f 4259/4297/2546 3283/3199/1448 3282/3212/1461 +f 3337/4298/2547 4260/4299/2548 4257/4295/2544 +f 4260/4299/2548 4261/4300/2549 4258/4296/2545 +f 4261/4300/2549 4262/4301/2550 4259/4297/2546 +f 4262/4301/2550 3285/3201/1450 3283/3199/1448 +f 3337/4298/2547 3336/4305/2554 4263/4302/2551 +f 4260/4299/2548 4263/4302/2551 4264/4303/2552 +f 4264/4303/2552 4265/4304/2553 4262/4301/2550 +f 4265/4304/2553 3287/3203/1452 3285/3201/1450 +f 3336/4305/2554 3335/4309/2558 4266/4306/2555 +f 4263/4302/2551 4266/4306/2555 4267/4307/2556 +f 4264/4303/2552 4267/4307/2556 4268/4308/2557 +f 4265/4304/2553 4268/4308/2557 3289/3205/1454 +f 3335/4309/2558 3334/4313/2562 4269/4310/2559 +f 4266/4306/2555 4269/4310/2559 4270/4311/2560 +f 4267/4307/2556 4270/4311/2560 4271/4312/2561 +f 4268/4308/2557 4271/4312/2561 3291/3207/1456 +f 3334/4313/2562 3333/4318/2567 4272/4314/2563 +f 4269/4310/2559 4272/4314/2563 4273/4315/2564 +f 4270/4311/2560 4273/4315/2564 4274/4316/2565 +f 4271/4312/2561 4274/4316/2565 3278/3209/1458 +f 3332/4317/2566 4275/4319/2568 4272/4314/2563 +f 4275/4319/2568 4276/4320/2569 4273/4315/2564 +f 4276/4320/2569 4277/4321/2570 4274/4316/2565 +f 4277/4321/2570 3279/3196/1445 3278/3209/1458 +f 3331/3835/2084 3910/3833/2082 4275/4319/2568 +f 3910/3833/2082 3908/3831/2080 4276/4320/2569 +f 3908/3831/2080 3906/3829/2078 4277/4321/2570 +f 3906/3829/2078 3295/3214/1463 3279/3196/1445 +f 3473/4322/2571 4278/4323/2572 3911/3834/2083 +f 4278/4323/2572 4279/4324/2573 3909/3832/2081 +f 4279/4324/2573 4280/4325/2574 3907/3830/2079 +f 4280/4325/2574 2901/2963/1212 2900/3828/2077 +f 3472/4326/2575 4281/4327/2576 4278/4323/2572 +f 4281/4327/2576 4282/4328/2577 4279/4324/2573 +f 4282/4328/2577 4283/4329/2578 4280/4325/2574 +f 4283/4329/2578 3293/3210/1459 2901/2963/1212 +f 3472/4326/2575 3471/4333/2582 4284/4330/2579 +f 4281/4327/2576 4284/4330/2579 4285/4331/2580 +f 4282/4328/2577 4285/4331/2580 4286/4332/2581 +f 4283/4329/2578 4286/4332/2581 3302/3235/1484 +f 3471/4333/2582 3470/4337/2586 4287/4334/2583 +f 4284/4330/2579 4287/4334/2583 4288/4335/2584 +f 4285/4331/2580 4288/4335/2584 4289/4336/2585 +f 4286/4332/2581 4289/4336/2585 3303/3220/1469 +f 3470/4337/2586 3469/4341/2590 4290/4338/2587 +f 4287/4334/2583 4290/4338/2587 4291/4339/2588 +f 4288/4335/2584 4291/4339/2588 4292/4340/2589 +f 4289/4336/2585 4292/4340/2589 3305/3222/1471 +f 3469/4341/2590 3468/4346/2595 4293/4342/2591 +f 4290/4338/2587 4293/4342/2591 4294/4343/2592 +f 4291/4339/2588 4294/4343/2592 4295/4344/2593 +f 4292/4340/2589 4295/4344/2593 3307/3224/1473 +f 3467/4345/2594 4296/4347/2596 4293/4342/2591 +f 4296/4347/2596 4297/4348/2597 4294/4343/2592 +f 4297/4348/2597 4298/4349/2598 4295/4344/2593 +f 4298/4349/2598 3309/3226/1475 3307/3224/1473 +f 3466/4350/2599 4299/4351/2600 4296/4347/2596 +f 4299/4351/2600 4300/4352/2601 4297/4348/2597 +f 4300/4352/2601 4301/4353/2602 4298/4349/2598 +f 4301/4353/2602 3311/3228/1477 3309/3226/1475 +f 3465/4354/2603 4302/4355/2604 4299/4351/2600 +f 4302/4355/2604 4303/4356/2605 4300/4352/2601 +f 4303/4356/2605 4304/4357/2606 4301/4353/2602 +f 4304/4357/2606 3298/3230/1479 3311/3228/1477 +f 3465/4354/2603 3464/4362/2611 4305/4358/2607 +f 4302/4355/2604 4305/4358/2607 4306/4359/2608 +f 4303/4356/2605 4306/4359/2608 4307/4360/2609 +f 4304/4357/2606 4307/4360/2609 3299/3217/1466 +f 3463/4361/2610 4308/4363/2612 4305/4358/2607 +f 4308/4363/2612 4309/4364/2613 4306/4359/2608 +f 4309/4364/2613 4310/4365/2614 4307/4360/2609 +f 4310/4365/2614 3314/3234/1483 3299/3217/1466 +f 3462/4366/2615 4311/4367/2616 4308/4363/2612 +f 4311/4367/2616 4312/4368/2617 4309/4364/2613 +f 4312/4368/2617 4313/4369/2618 4310/4365/2614 +f 4313/4369/2618 3315/3232/1481 3314/3234/1483 +f 3461/4370/2619 4314/4373/2622 4311/4367/2616 +f 4311/4367/2616 4314/4373/2622 4315/4371/2620 +f 4315/4371/2620 4316/4375/2624 4313/4369/2618 +f 4313/4369/2618 4316/4375/2624 3320/3253/1502 +f 3461/4370/2619 3460/4376/2625 4317/4372/2621 +f 4314/4373/2622 4317/4372/2621 4318/4374/2623 +f 4318/4374/2623 4319/4380/2629 4316/4375/2624 +f 4316/4375/2624 4319/4380/2629 3321/3239/1488 +f 3460/4376/2625 3459/4381/2630 4320/4377/2626 +f 4317/4372/2621 4320/4377/2626 4321/4378/2627 +f 4318/4374/2623 4321/4378/2627 4322/4379/2628 +f 4322/4379/2628 3323/3241/1490 3321/3239/1488 +f 3459/4381/2630 3458/4384/2633 4323/4382/2631 +f 4323/4382/2631 4324/4386/2635 4321/4378/2627 +f 4321/4378/2627 4324/4386/2635 4325/4383/2632 +f 4325/4383/2632 3325/3243/1492 3323/3241/1490 +f 3458/4384/2633 3457/4389/2638 4326/4385/2634 +f 4326/4385/2634 4327/4387/2636 4324/4386/2635 +f 4327/4387/2636 4328/4392/2641 4325/4383/2632 +f 4325/4383/2632 4328/4392/2641 3327/3245/1494 +f 3456/4388/2637 4329/4390/2639 4326/4385/2634 +f 4329/4390/2639 4330/4391/2640 4327/4387/2636 +f 4330/4391/2640 4331/4395/2644 4328/4392/2641 +f 4328/4392/2641 4331/4395/2644 3329/3247/1496 +f 3456/4388/2637 3455/4396/2645 4332/4393/2642 +f 4332/4393/2642 4333/4394/2643 4330/4391/2640 +f 4333/4394/2643 4334/4400/2649 4331/4395/2644 +f 4331/4395/2644 4334/4400/2649 3317/3249/1498 +f 3455/4396/2645 3454/4401/2650 4335/4397/2646 +f 4332/4393/2642 4335/4397/2646 4336/4398/2647 +f 4333/4394/2643 4336/4398/2647 4337/4399/2648 +f 4334/4400/2649 4337/4399/2648 3048/3237/1486 +f 3453/3839/2088 3913/3838/2087 4335/4397/2646 +f 4335/4397/2646 3913/3838/2087 3915/3841/2090 +f 3915/3841/2090 3917/3843/2092 4337/4399/2648 +f 3917/3843/2092 3049/2969/1218 3048/3237/1486 +f 2899/2962/1211 3294/3215/1464 3295/3214/1463 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/pistol_texture.png b/src/main/resources/assets/hbm/textures/models/weapons/pistol_texture.png new file mode 100644 index 0000000000000000000000000000000000000000..926d076b97a91b07c831a742631487f9b7fa8a41 GIT binary patch literal 320 zcmV-G0l)rpF@<~KNR45gdk=<&-Fcim=^t3bT*idQ9sI?c_1FY-;%Eq3>x79Zg zH+Nyih5;)|OOqW4gWZ^tT%3gD_y2&b3{1u^PSvo4kas2Z7rc^EWyY+g7WRC!eBuNIGzi+qJ7wqPkQc8U7 zK|#WGOsCcC8ZL3z4;pCjek9&{{LbTnQ+^E>U!29g)UE&&OHx|NI4c4o3$H S0e*u30000 Date: Mon, 10 Jul 2023 21:38:41 +0200 Subject: [PATCH 191/432] some pistol tweaks, compressor fix, cryo cannon texture --- changelog | 10 + .../hbm/handler/guncfg/Gun45ACPFactory.java | 2 + .../inventory/recipes/CompressorRecipes.java | 12 +- .../item/weapon/ItemRenderUACPistol.java | 4 +- .../machine/TileEntityMachineCompressor.java | 9 +- .../assets/hbm/models/weapons/UAC pistol.obj | 20184 +++++----------- .../textures/models/weapons/cryo_cannon.png | Bin 2283 -> 7611 bytes 7 files changed, 6622 insertions(+), 13599 deletions(-) diff --git a/changelog b/changelog index e69de29bb..26bf4f45d 100644 --- a/changelog +++ b/changelog @@ -0,0 +1,10 @@ +## Added +* UAC pistol + * Uses the .45 caliber + +## Changed +* Making LPG in the compressor now requires two compression steps + * This fixes an issue where polymer is unobtainable in 528 mode since petroleum at 1PU not being obtainable + +## Fixed +* Fixed issue where mk5 explosions would behave weirdly in their origin chunk, often blowing through bedrock and thick layers of concrete diff --git a/src/main/java/com/hbm/handler/guncfg/Gun45ACPFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun45ACPFactory.java index 3afc3fe5f..b4f25aa06 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun45ACPFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun45ACPFactory.java @@ -67,6 +67,8 @@ public class Gun45ACPFactory { config.reloadType = 1; config.allowsInfinity = true; config.hasSights = true; + config.absoluteFOV = true; + config.zoomFOV = 0.5F; config.crosshair = Crosshair.CROSS; config.reloadSound = GunConfiguration.RSOUND_MAG; config.firingSound = "hbm:weapon.deagleShoot"; diff --git a/src/main/java/com/hbm/inventory/recipes/CompressorRecipes.java b/src/main/java/com/hbm/inventory/recipes/CompressorRecipes.java index 62a686e56..c1cc077d9 100644 --- a/src/main/java/com/hbm/inventory/recipes/CompressorRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CompressorRecipes.java @@ -22,17 +22,25 @@ public class CompressorRecipes extends SerializableRecipe { recipes.put(new Pair(Fluids.STEAM, 0), new CompressorRecipe(1_000, new FluidStack(Fluids.HOTSTEAM, 100))); recipes.put(new Pair(Fluids.HOTSTEAM, 0), new CompressorRecipe(1_000, new FluidStack(Fluids.SUPERHOTSTEAM, 100))); recipes.put(new Pair(Fluids.SUPERHOTSTEAM, 0), new CompressorRecipe(1_000, new FluidStack(Fluids.ULTRAHOTSTEAM, 100))); - recipes.put(new Pair(Fluids.PETROLEUM, 0), new CompressorRecipe(4_000, new FluidStack(Fluids.LPG, 2_000))); + + recipes.put(new Pair(Fluids.PETROLEUM, 0), new CompressorRecipe(2_000, new FluidStack(Fluids.PETROLEUM, 2_000, 1), 20)); + recipes.put(new Pair(Fluids.PETROLEUM, 1), new CompressorRecipe(2_000, new FluidStack(Fluids.LPG, 1_000, 0), 20)); } public static class CompressorRecipe { public FluidStack output; public int inputAmount; + public int duration; - public CompressorRecipe(int input, FluidStack output) { + public CompressorRecipe(int input, FluidStack output, int duration) { this.output = output; this.inputAmount = input; + this.duration = duration; + } + + public CompressorRecipe(int input, FluidStack output) { + this(input, output, 100); } } diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderUACPistol.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderUACPistol.java index c2a33b7b4..2ce940cc0 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderUACPistol.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderUACPistol.java @@ -76,8 +76,8 @@ public class ItemRenderUACPistol implements IItemRenderer { GL11.glRotatef(-5F, 0F, 1F, 0F); GL11.glTranslatef(20.15F, 3.5F, 18F); } else { - GL11.glRotatef(-35F, 1F, 0F, 0F); - GL11.glTranslatef(0F, -12F, 25F); + GL11.glRotatef(-25F, 1F, 0F, 0F); + GL11.glTranslatef(-3F, -5F, 20F); } GL11.glPushMatrix(); GL11.glTranslated(slideAnim[0], slideAnim[1], slideAnim[2] * 2); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java index b3282a3d7..89be677fc 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java @@ -78,13 +78,20 @@ public class TileEntityMachineCompressor extends TileEntityMachineBase implement int speedLevel = Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 3); int powerLevel = Math.min(UpgradeManager.getLevel(UpgradeType.POWER), 3); int overLevel = UpgradeManager.getLevel(UpgradeType.OVERDRIVE); + + CompressorRecipe rec = CompressorRecipes.recipes.get(new Pair(tanks[0].getTankType(), tanks[0].getPressure())); + int timeBase = this.processTimeBase; + if(rec != null) timeBase = rec.duration; //there is a reason to do this but i'm not telling you - this.processTime = speedLevel == 3 ? 10 : speedLevel == 2 ? 20 : speedLevel == 1 ? 60 : this.processTimeBase; + if(timeBase == this.processTimeBase) this.processTime = speedLevel == 3 ? 10 : speedLevel == 2 ? 20 : speedLevel == 1 ? 60 : timeBase; + else this.processTime = timeBase / (speedLevel + 1); this.powerRequirement = this.powerRequirementBase / (powerLevel + 1); this.processTime = this.processTime / (overLevel + 1); this.powerRequirement = this.powerRequirement * ((overLevel * 2) + 1); + if(processTime <= 0) processTime = 1; + if(canProcess()) { this.progress++; this.isOn = true; diff --git a/src/main/resources/assets/hbm/models/weapons/UAC pistol.obj b/src/main/resources/assets/hbm/models/weapons/UAC pistol.obj index b0fc57167..6e34a53d1 100644 --- a/src/main/resources/assets/hbm/models/weapons/UAC pistol.obj +++ b/src/main/resources/assets/hbm/models/weapons/UAC pistol.obj @@ -1,29 +1,4723 @@ -# Blender v2.82 (sub 7) OBJ File: 'UAC pistol.blend' +# Blender v2.79 (sub 0) OBJ File: '' # www.blender.org -mtllib UAC pistol.mtl +o bool_obj_bool_obj_data.002 +v -0.395192 7.596701 -3.479156 +v 0.584592 7.596701 -3.479156 +v 0.584592 6.166869 -3.479156 +v -0.395192 6.166869 -3.479156 +v -0.395192 8.736673 -5.713195 +v 0.584592 8.736673 -5.713195 +v -0.395192 9.164925 -5.571519 +v 0.584592 9.164925 -5.571519 +v -0.395192 9.566045 -5.817649 +v 0.584592 9.566045 -5.817649 +v -0.395192 9.328085 -6.240386 +v 0.584592 9.328085 -6.240386 +v -0.395192 8.650140 -6.472072 +v 0.584592 8.650140 -6.472072 +v -0.395192 8.023211 -6.974553 +v 0.584592 8.023211 -6.974553 +v -0.395192 7.262578 -7.039774 +v 0.584592 7.262578 -7.039774 +v -0.395192 7.029797 -6.702052 +v 0.584592 7.029797 -6.702052 +v -0.395192 7.269282 -6.422195 +v 0.584592 7.269282 -6.422195 +v -0.395192 7.572930 -6.422195 +v 0.584592 7.572930 -6.422195 +v -0.395192 8.226030 -6.011783 +v 0.584592 8.226030 -6.011783 +v -0.395192 6.903951 -4.234123 +v 0.584592 6.903951 -4.234123 +v -0.395192 6.148036 -4.191928 +v 0.584592 6.148036 -4.191928 +v -0.395192 7.596701 -3.479156 +v 0.584592 7.596701 -3.479156 +v 0.584592 6.166869 -3.479156 +v -0.395192 6.166869 -3.479156 +v -0.395192 8.736673 -5.713195 +v 0.584592 8.736673 -5.713195 +v -0.395192 9.164925 -5.571519 +v 0.584592 9.164925 -5.571519 +v -0.395192 9.566045 -5.817649 +v 0.584592 9.566045 -5.817649 +v -0.395192 9.328085 -6.240386 +v 0.584592 9.328085 -6.240386 +v -0.395192 8.650140 -6.472072 +v 0.584592 8.650140 -6.472072 +v -0.395192 8.023211 -6.974553 +v 0.584592 8.023211 -6.974553 +v -0.395192 7.262578 -7.039774 +v 0.584592 7.262578 -7.039774 +v -0.395192 7.029797 -6.702052 +v 0.584592 7.029797 -6.702052 +v -0.395192 7.269282 -6.422195 +v 0.584592 7.269282 -6.422195 +v -0.395192 7.572930 -6.422195 +v 0.584592 7.572930 -6.422195 +v -0.395192 8.226030 -6.011783 +v 0.584592 8.226030 -6.011783 +v -0.395192 6.903951 -4.234123 +v 0.584592 6.903951 -4.234123 +v -0.395192 6.148036 -4.191928 +v 0.584592 6.148036 -4.191928 +vt 0.382588 0.627146 +vt 0.382588 0.627146 +vt 0.382588 0.627146 +vt 0.382588 0.627146 +vt 0.382588 0.627146 +vt 0.382588 0.627146 +vt 0.382588 0.627146 +vt 0.382588 0.627146 +vt 0.382588 0.627146 +vt 0.382588 0.627146 +vt 0.382588 0.627146 +vt 0.382588 0.627146 +vt 0.382588 0.627146 +vt 0.382588 0.627146 +vt 0.382588 0.627146 +vt 0.382588 0.627146 +vt 0.382588 0.627146 +vt 0.382588 0.627146 +vt 0.382588 0.627146 +vt 0.382588 0.627146 +vt 0.382588 0.627146 +vt 0.382588 0.627146 +vt 0.395485 0.647711 +vt 0.382588 0.627146 +vt 0.382588 0.627146 +vt 0.395485 0.647711 +vt 0.382588 0.627146 +vt 0.382588 0.627146 +vt 0.382588 0.627146 +vt 0.382588 0.627146 +vt 0.382588 0.627146 +vt 0.395485 0.647711 +vt 0.382588 0.627146 +vt 0.382588 0.627146 +vt 0.382588 0.627146 +vt 0.382588 0.627146 +vt 0.382588 0.627146 +vt 0.382588 0.627146 +vt 0.382588 0.627146 +vt 0.382588 0.627146 +vt 0.382588 0.627146 +vt 0.382588 0.627146 +vt 0.382588 0.627146 +vt 0.382588 0.627146 +vt 0.382588 0.627146 +vt 0.382588 0.627146 +vt 0.382588 0.627146 +vt 0.382588 0.627146 +vt 0.382588 0.627146 +vt 0.382588 0.627146 +vt 0.382588 0.627146 +vt 0.382588 0.627146 +vt 0.382588 0.627146 +vt 0.382588 0.627146 +vt 0.382588 0.627146 +vt 0.382588 0.627146 +vt 0.382588 0.627146 +vt 0.382588 0.627146 +vt 0.395485 0.647711 +vt 0.382588 0.627146 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.5222 0.8528 +vn 0.0000 -0.6977 0.7164 +vn 0.0000 0.3799 0.9250 +vn 0.0000 0.1152 0.9933 +vn 0.0000 0.9679 0.2512 +vn 0.0000 0.6394 -0.7689 +vn 0.0000 0.4816 -0.8764 +vn 0.0000 0.3715 -0.9284 +vn 0.0000 -0.4267 -0.9044 +vn 0.0000 -0.9986 0.0521 +vn 0.0000 -0.4182 0.9083 +vn 0.0000 -0.2769 0.9609 +vn 0.0000 -0.9829 0.1841 +vn 0.0000 -0.4738 -0.8807 +vn 0.0000 -0.4737 -0.8807 +vn 0.0000 -0.7356 -0.6775 +s off +f 22/1/1 20/2/1 18/3/1 +f 17/4/2 21/5/2 23/6/2 +f 25/7/2 15/8/2 23/6/2 +f 16/9/1 26/10/1 24/11/1 +f 14/12/1 6/13/1 26/10/1 +f 13/14/2 25/7/2 5/15/2 +f 5/15/2 11/16/2 13/14/2 +f 12/17/1 6/13/1 14/12/1 +f 7/18/2 9/19/2 11/16/2 +f 12/17/1 10/20/1 8/21/1 +f 6/13/1 28/22/1 26/10/1 +f 28/22/1 3/23/1 30/24/1 +f 27/25/2 5/15/2 25/7/2 +f 27/25/2 4/26/2 1/27/2 +f 16/9/1 24/11/1 18/3/1 +f 24/11/1 22/1/1 18/3/1 +f 23/6/2 15/8/2 17/4/2 +f 17/4/2 19/28/2 21/5/2 +f 25/7/2 13/14/2 15/8/2 +f 16/9/1 14/12/1 26/10/1 +f 5/15/2 7/18/2 11/16/2 +f 12/17/1 8/21/1 6/13/1 +f 6/13/1 2/29/1 28/22/1 +f 28/22/1 2/29/1 3/23/1 +f 27/25/2 1/27/2 5/15/2 +f 27/25/2 29/30/2 4/26/2 +s 1 +f 31/31/3 33/32/4 32/33/3 +f 32/33/3 35/34/5 31/31/3 +f 36/35/5 37/36/6 35/34/5 +f 38/37/6 39/38/7 37/36/6 +f 40/39/7 41/40/8 39/38/7 +f 42/41/8 43/42/9 41/40/8 +f 44/43/9 45/44/10 43/42/9 +f 46/45/10 47/46/11 45/44/10 +f 48/47/11 49/48/12 47/46/11 +f 50/49/12 51/50/13 49/48/12 +f 52/51/13 53/52/14 51/50/13 +f 54/53/14 55/54/15 53/52/14 +f 56/55/15 57/56/16 55/54/15 +f 58/57/17 59/58/18 57/56/16 +f 34/59/4 60/60/18 33/32/4 +f 31/31/3 34/59/4 33/32/4 +f 32/33/3 36/35/5 35/34/5 +f 36/35/5 38/37/6 37/36/6 +f 38/37/6 40/39/7 39/38/7 +f 40/39/7 42/41/8 41/40/8 +f 42/41/8 44/43/9 43/42/9 +f 44/43/9 46/45/10 45/44/10 +f 46/45/10 48/47/11 47/46/11 +f 48/47/11 50/49/12 49/48/12 +f 50/49/12 52/51/13 51/50/13 +f 52/51/13 54/53/14 53/52/14 +f 54/53/14 56/55/15 55/54/15 +f 56/55/15 58/57/17 57/56/16 +f 58/57/17 60/60/18 59/58/18 +f 34/59/4 59/58/18 60/60/18 +o slide_pistol_0 +v 1.014517 11.207904 -2.625849 +v 1.014517 11.207904 -2.300615 +v 1.014517 10.723700 -1.978914 +v -1.014517 10.157009 -2.625849 +v -1.014517 11.207904 -2.625849 +v -0.335502 10.613042 -2.625849 +v -1.526129 9.326169 3.920666 +v -1.526129 9.326169 3.413728 +v -1.526129 8.752565 3.413728 +v -1.705540 8.752565 3.920666 +v -1.705540 7.184847 3.920666 +v -1.705540 8.402288 6.532843 +v -1.526129 8.752565 3.920666 +v -1.705540 8.752565 3.920666 +v -1.705540 8.752759 6.288157 +v -1.526129 8.752565 3.920666 +v -1.524936 8.752759 6.288157 +v 1.705540 7.247200 -1.820036 +v 1.526129 7.247200 -1.820036 +v 1.526043 7.614016 -2.276281 +v 1.321148 7.184845 12.021435 +v -1.171832 7.184845 11.897297 +v 1.156401 7.184845 11.897297 +v 1.526043 7.614016 -2.276281 +v 1.526129 7.247200 -1.820036 +v 1.526043 7.184847 -2.765843 +v 1.321148 7.184845 11.214216 +v -1.705540 7.184847 2.105287 +v -1.705540 8.757562 2.105289 +v -1.705540 8.927025 1.935824 +v 1.526129 7.247200 -1.820036 +v 1.526129 7.184847 -1.313097 +v 1.526043 7.184847 -2.765843 +v -1.524936 9.326169 6.288157 +v -1.326382 10.025589 6.288157 +v -1.705540 9.660696 6.288157 +v -1.705540 9.326169 6.288157 +v 0.813732 7.184845 16.849926 +v 1.705540 7.184845 12.021435 +v 1.705540 7.184845 18.319260 +v 1.326382 7.184845 19.492821 +v -1.705540 7.967402 7.346316 +v -1.705540 8.055081 6.892088 +v 1.705540 7.637856 11.214216 +v 1.705540 7.184845 11.214216 +v 1.705540 7.967402 7.346316 +v -1.705540 7.184847 3.920666 +v -1.526129 7.184847 3.920666 +v -1.171832 7.184845 5.830760 +v 1.705540 7.184847 3.920666 +v 1.705540 7.184845 11.214216 +v 1.156401 7.184845 5.830760 +v 1.705540 7.184847 -2.765843 +v 1.705540 7.184847 -4.842922 +v 1.705540 8.782389 -4.842922 +v 1.705540 7.614016 -2.276281 +v 1.231429 7.184847 -4.842922 +v 1.526129 7.184847 -1.313097 +v 1.231024 7.184847 1.879624 +v -1.526129 7.184847 2.105287 +v -1.526129 7.184847 2.612226 +v -1.526129 8.752565 2.612226 +v 1.705540 7.184847 3.920666 +v 1.321148 7.184845 11.214216 +v 1.705540 7.184845 11.214216 +v 1.705540 7.637856 11.214216 +v -0.813732 7.184845 16.849926 +v 1.526129 7.184847 3.920666 +v 0.000000 9.832471 21.944122 +v 0.947015 10.390595 21.944122 +v -0.947015 10.390595 21.944122 +v 1.705540 8.055081 6.892088 +v -1.171832 7.184845 11.897297 +v -1.171832 8.402286 11.660704 +v -1.171832 8.578351 11.777046 +v 0.167762 11.355708 20.190464 +v -0.167762 11.355708 20.190464 +v -0.167762 10.787156 20.190464 +v 0.814306 10.492231 20.190464 +v 0.814306 10.492231 19.285318 +v 0.359371 10.492231 19.285318 +v 0.893030 10.492231 20.116810 +v 0.893030 10.492231 19.372772 +v -1.526129 7.184847 3.413727 +v 1.526129 7.184847 3.413727 +v -0.393269 7.184847 1.879624 +v 0.393269 7.184847 1.879624 +v -1.333642 8.402288 6.532843 +v -1.333642 8.055081 6.892088 +v -1.333642 7.967402 7.346316 +v -1.016029 10.321226 11.777046 +v -0.947015 10.390595 11.777046 +v -0.654714 10.019365 11.777046 +v -0.813732 7.184845 16.849926 +v 0.813732 7.184845 16.849926 +v 0.813732 5.420440 16.849926 +v 0.471660 5.087638 16.849926 +v -0.471660 5.087638 16.849926 +v -0.813732 5.420440 16.849926 +v -1.333642 7.184845 21.944122 +v -1.333642 7.184845 19.492821 +v -0.813732 7.184845 21.944122 +v -1.526129 7.184847 0.796846 +v -1.705540 7.184847 0.796846 +v -1.705540 7.184847 -0.004656 +v -0.728164 8.051682 1.879624 +v -0.393269 9.417000 1.879624 +v -0.393269 7.184847 1.879624 +v -0.728164 7.586768 1.879624 +v -1.238688 7.184847 1.879624 +v 1.231024 9.417000 1.879624 +v 1.231024 8.051682 1.879624 +v 0.728164 8.051682 1.879624 +v 1.526129 7.184847 2.105287 +v 1.526129 7.184847 2.612226 +v 1.705540 7.184847 -1.313097 +v 1.705540 7.184847 -0.511595 +v 1.526129 7.184847 -0.511595 +v 1.705540 7.184847 2.612226 +v 1.705540 7.184847 3.413727 +v 1.526129 7.184847 3.920666 +v 1.526129 9.833411 3.920666 +v 1.705540 9.660696 3.920666 +v 0.408756 10.107763 -3.259710 +v -0.409408 10.107763 -3.259710 +v -0.409408 10.390597 -3.172265 +v 1.705540 9.660696 3.413728 +v 1.526129 9.833411 3.413728 +v 1.526129 7.184847 3.413727 +v -0.392768 7.184847 -4.842922 +v 0.393269 9.417000 1.879624 +v 0.393269 7.184847 1.879624 +v 0.392768 7.184847 -4.842922 +v 1.705540 7.184847 2.612226 +v 1.526129 7.184847 2.612226 +v 1.526129 9.833411 2.612226 +v 1.526129 7.184847 2.105287 +v 1.705540 7.184847 2.105287 +v 1.705540 9.660696 2.105289 +v 0.392768 8.782389 -4.842922 +v 0.392768 9.417337 -4.333549 +v 1.231024 7.184847 1.879624 +v 1.231024 7.586768 1.879624 +v 1.231429 7.587345 -4.842922 +v 0.408756 10.390597 -3.531358 +v 0.408756 10.107763 -3.763226 +v 0.408756 10.107763 -3.259710 +v 1.526129 9.833411 1.303785 +v 1.705540 9.660696 1.303785 +v 1.705540 7.184847 1.303785 +v 0.728571 7.587345 -4.842922 +v 0.728571 8.051105 -4.842922 +v 1.231429 8.051105 -4.842922 +v 1.705540 9.660696 0.796846 +v 1.526129 9.833411 0.796846 +v 1.526129 7.184847 0.796846 +v 0.813732 7.184845 21.944122 +v 1.231024 9.417000 1.879624 +v 0.393269 9.417000 1.879624 +v 0.392768 9.417337 -4.333549 +v 1.231024 7.586768 1.879624 +v 0.728164 7.586768 1.879624 +v 0.728571 7.587345 -4.842922 +v 1.526129 9.833411 -0.004656 +v 1.705540 9.660696 -0.004656 +v 1.705540 7.184847 -0.004656 +v 1.705540 7.184847 -4.842922 +v 1.231429 7.184847 -4.842922 +v 1.231429 7.587345 -4.842922 +v 1.526129 7.184847 -0.511595 +v 1.705540 7.184847 -0.511595 +v 1.705540 9.660696 -0.511595 +v 1.231429 9.417337 -4.333549 +v 1.231429 8.782389 -4.842922 +v 1.231024 9.417000 1.879624 +v 0.728164 7.586768 1.879624 +v 0.728164 8.051682 1.879624 +v 0.728571 8.051105 -4.842922 +v 1.526129 9.833411 -1.313097 +v 1.705540 9.660696 -1.313097 +v 1.705540 7.184847 -1.313097 +v 1.231024 8.051682 1.879624 +v 0.728164 8.051682 1.879624 +v 1.231024 8.051682 1.879624 +v 1.231429 8.051105 -4.842922 +v 0.947015 10.390597 -2.821980 +v -0.947015 10.390597 -2.821980 +v -1.132077 10.212755 -2.753814 +v 1.526129 7.247200 -1.820036 +v 1.705540 7.247200 -1.820036 +v 1.705540 9.660696 -1.820036 +v 1.705540 8.752767 6.288157 +v 1.705540 8.402288 6.532843 +v -1.132077 10.212755 0.576711 +v -0.947015 10.390597 0.637665 +v 0.947015 10.390597 0.637665 +v 1.326382 7.184845 21.944122 +v 1.526129 7.184847 -0.004656 +v -1.526129 7.184847 2.612226 +v -1.238688 7.184847 1.879624 +v 1.705540 7.184847 2.105287 +v 1.526129 7.184847 1.303785 +v 1.705540 7.184847 1.303785 +v 1.526129 7.184847 0.796846 +v 1.705540 7.184847 -0.004656 +v 0.728164 7.586768 1.879624 +v 1.231024 7.586768 1.879624 +v 1.231024 7.184847 1.879624 +v 0.393269 7.184847 1.879624 +v -1.238688 9.417000 1.879624 +v -1.526129 7.184847 2.105287 +v -1.705540 7.184847 -1.313097 +v -1.526129 7.184847 -1.313097 +v -1.526129 7.184847 -0.511595 +v -1.705540 7.184847 2.612226 +v -1.526129 9.326169 3.920666 +v -1.705540 9.326169 3.920666 +v -1.705540 9.660696 3.920666 +v -1.526129 7.184847 3.920666 +v -1.705540 7.184847 3.920666 +v -1.705540 8.752565 3.920666 +v -1.705540 7.184847 3.413727 +v -1.526129 7.184847 3.413727 +v -1.526129 8.752565 3.413728 +v -1.705540 9.326169 3.413728 +v -1.526129 9.326169 3.413728 +v -1.526129 9.833411 3.413728 +v -1.705540 7.184847 2.612226 +v -1.705540 7.184847 3.413727 +v -1.705540 8.752565 3.413728 +v -0.393269 9.417000 1.879624 +v -0.392768 8.782389 -4.842922 +v -0.392768 7.184847 -4.842922 +v -1.526129 9.326169 2.612226 +v -1.705540 9.326169 2.612226 +v -1.705540 9.660696 2.612226 +v -1.526129 7.184847 2.612226 +v -1.705540 7.184847 2.612226 +v -1.705540 8.752565 2.612226 +v -0.392768 9.417337 -4.333549 +v -1.238688 7.184847 1.879624 +v -1.238688 7.184847 -4.842922 +v -1.238688 7.587345 -4.842922 +v -0.409408 10.390597 -3.531358 +v -0.409408 10.390597 -3.172265 +v -0.409408 10.107763 -3.259710 +v -1.526129 9.833411 1.303785 +v -1.526129 7.184847 1.303785 +v -1.705540 7.184847 1.303785 +v -0.728571 7.587345 -4.842922 +v -1.238688 7.587345 -4.842922 +v -1.238688 8.051105 -4.842922 +v -1.705540 9.660696 0.796846 +v -1.705540 7.184847 0.796846 +v -1.526129 7.184847 0.796846 +v -1.238688 9.417000 1.879624 +v -1.238688 9.417337 -4.333549 +v -0.392768 9.417337 -4.333549 +v -1.238688 7.586768 1.879624 +v -1.238688 7.587345 -4.842922 +v -0.728571 7.587345 -4.842922 +v -1.526129 9.833411 -0.004656 +v -1.526129 7.184847 -0.004656 +v -1.705540 7.184847 -0.004656 +v -1.238688 7.184847 -4.842922 +v -1.705540 7.184847 -4.842922 +v -1.526129 7.184847 -0.511595 +v -1.526129 9.833411 -0.511595 +v -1.705540 9.660696 -0.511595 +v -1.238688 8.782389 -4.842922 +v -1.238688 9.417337 -4.333549 +v -1.238688 9.417000 1.879624 +v -0.728164 7.586768 1.879624 +v -0.728571 7.587345 -4.842922 +v -0.728571 8.051105 -4.842922 +v -1.526129 7.184847 -0.004656 +v -1.238688 7.184847 -4.842922 +v -1.526129 9.833411 -1.313097 +v -1.526129 7.184847 -1.313097 +v -1.705540 7.184847 -1.313097 +v -1.238688 8.051682 1.879624 +v -1.238688 8.051105 -4.842922 +v -0.728164 8.051682 1.879624 +v -0.728571 8.051105 -4.842922 +v -1.238688 8.051105 -4.842922 +v -1.705540 7.184847 -4.842922 +v -1.526129 7.184847 -1.820036 +v -1.705540 7.184847 2.105287 +v -1.705540 7.184847 1.303785 +v -1.526129 7.184847 -1.820036 +v -1.526129 9.833411 -1.820036 +v -1.705540 9.660696 -1.820036 +v -1.526129 7.184847 1.303785 +v -1.526129 7.184847 3.413727 +v -1.526129 7.184847 3.920666 +v -1.526129 8.752565 3.920666 +v -0.947015 10.390597 6.288157 +v -0.654714 10.019367 6.288157 +v -0.409408 10.390597 6.288157 +v -1.171832 9.475291 6.288157 +v -0.409408 10.019367 5.830760 +v -0.409408 10.390597 5.830760 +v -0.409408 10.390597 6.288157 +v 0.408756 10.019367 5.830760 +v 0.408756 10.019367 6.288157 +v 0.408756 10.390597 6.288157 +v 0.408756 10.019367 5.830760 +v 0.408756 10.390597 5.830760 +v -0.409408 10.390597 5.830760 +v 0.408756 10.019367 6.288157 +v 0.632517 10.019367 6.288157 +v 0.408756 10.390597 6.288157 +v 0.958007 9.683089 6.288157 +v 1.018419 10.321527 6.288157 +v -1.171832 9.475289 11.777046 +v -1.171832 7.184845 5.830760 +v -1.171832 8.752774 6.288157 +v -1.171832 8.402288 6.532843 +v -0.409408 10.019367 6.288157 +v -1.333642 8.402286 11.660704 +v -1.171832 8.402286 11.660704 +v -1.171832 8.402288 6.532843 +v -0.409408 10.019367 5.830760 +v -0.654714 10.019367 5.830760 +v -1.171832 9.475291 5.830760 +v -1.171832 7.184845 5.830760 +v 1.156401 7.184845 5.830760 +v 1.156401 9.475291 5.830760 +v 1.014517 11.207904 -2.625849 +v 0.335502 10.613042 -2.625849 +v 0.335502 11.207904 -2.625849 +v -0.167762 11.355708 20.190464 +v 0.167762 11.355708 20.190464 +v 0.167762 11.355708 19.816681 +v 0.143185 11.207904 -2.300615 +v 0.143185 11.269897 -2.300615 +v 0.143185 11.269897 -2.690542 +v 1.014517 11.207904 -2.625849 +v 0.335502 11.207904 -2.625849 +v 0.335502 11.207904 -2.300615 +v 1.014517 11.207904 -2.300615 +v 0.335502 11.207904 -2.625849 +v 0.335502 11.269897 -2.690542 +v 0.335502 11.269897 -2.300615 +v 0.335502 10.613042 -2.625849 +v 0.335502 10.613042 -2.690542 +v 0.335502 11.269897 -2.690542 +v 0.143185 11.269897 -2.300615 +v 0.335502 11.269897 -2.300615 +v 0.335502 11.269897 -2.690542 +v -0.720340 8.093417 11.897297 +v -0.389845 7.872590 11.897297 +v -1.171832 7.184845 11.897297 +v -0.941169 8.423912 11.897297 +v -1.018714 8.813757 11.897297 +v 0.000000 7.795043 11.897297 +v 0.471660 5.087638 21.944122 +v 0.813732 5.420440 21.944122 +v -0.813732 5.420440 21.944122 +v 0.813732 7.184845 21.944122 +v -1.333642 7.184845 21.944122 +v -0.813732 7.184845 21.944122 +v -0.720340 8.093417 21.944122 +v -1.018714 8.813757 21.944122 +v -1.326382 10.025587 21.944122 +v -0.720340 9.534097 21.944122 +v 0.720340 9.534097 21.944122 +v 1.326382 10.025587 21.944122 +v 1.018714 8.813757 21.944122 +v 1.326382 7.184845 21.944122 +v 0.720340 8.093417 21.944122 +v 0.941169 9.203602 21.944122 +v 0.389845 9.754926 21.944122 +v -0.941169 9.203602 21.944122 +v -0.941169 8.423912 21.944122 +v -0.389845 7.872588 21.944122 +v 0.000000 7.795043 21.944122 +v 0.389845 7.872588 21.944122 +v 0.941169 8.423912 21.944122 +v -0.471660 5.087638 21.944122 +v -0.389845 9.754926 21.944122 +v 1.321148 7.637856 11.214216 +v 1.321148 7.444345 12.021435 +v 1.321148 7.184845 12.021435 +v 1.705540 7.184845 12.021435 +v 1.321148 7.184845 12.021435 +v 1.321148 7.444345 12.021435 +v 1.705540 7.637856 11.214216 +v 1.705540 7.444345 12.021435 +v 1.321148 7.444345 12.021435 +v -1.526129 9.326169 3.413728 +v -1.705540 9.326169 3.413728 +v -1.705540 9.326169 2.612226 +v -1.524936 9.326169 6.288157 +v -1.705540 9.326169 6.288157 +v -1.705540 9.326169 3.920666 +v -1.526129 8.752565 2.612226 +v -1.705540 8.752565 2.612226 +v -1.705540 8.752565 3.413728 +v -1.526129 8.752565 2.612226 +v 0.632517 10.019367 5.830760 +v 0.335502 10.613042 -2.690542 +v 0.143185 10.723700 -2.690542 +v 0.143185 11.269897 -2.690542 +v -0.335502 10.613042 -2.690542 +v -0.143185 10.723700 -2.690542 +v -0.335502 10.613042 -2.625849 +v -0.335502 10.613042 -2.690542 +v 0.335502 10.613042 -2.690542 +v 0.143185 10.723700 -2.690542 +v 0.143185 10.723700 -1.978914 +v -0.814306 10.492231 20.190464 +v -0.359371 10.492231 20.190464 +v -0.359371 10.492231 19.285318 +v -0.893030 10.492231 20.116810 +v -0.814306 10.492231 19.285318 +v -0.335502 11.207904 -2.625849 +v -0.335502 10.613042 -2.625849 +v -0.335502 11.207904 -2.625849 +v -0.335502 11.269897 -2.690542 +v -0.335502 11.269897 -2.690542 +v -0.143185 11.269897 -2.690542 +v -0.143185 10.723700 -2.690542 +v -0.143185 11.269897 -2.690542 +v -0.143185 11.207904 -2.300615 +v -0.335502 11.207904 -2.625849 +v -0.335502 11.207904 -2.300615 +v -0.335502 11.269897 -2.300615 +v -0.143185 11.269897 -2.300615 +v -0.143185 11.269897 -2.690542 +v -0.335502 11.269897 -2.690542 +v -0.143185 11.269897 -2.300615 +v -0.335502 11.207904 -2.625849 +v -1.014517 11.207904 -2.625849 +v -0.335502 11.207904 -2.300615 +v -1.014517 11.207904 -2.300615 +v 1.014517 10.157009 -2.625849 +v 1.014517 10.606321 -1.825947 +v 1.014517 10.491154 -1.431074 +v 1.014517 10.157009 -2.625849 +v 0.167762 10.787156 20.190464 +v -0.359371 10.492231 20.190464 +v -1.014517 11.207904 -2.625849 +v -1.014517 10.157009 -2.625849 +v -1.014517 10.723700 -1.978914 +v -1.014517 10.606321 -1.825947 +v -1.014517 10.491154 -1.431074 +v 0.359371 10.492231 20.190464 +v -1.014517 11.207904 -2.300615 +v -0.451145 8.974197 5.975873 +v 0.000000 8.787328 5.975873 +v -0.345291 9.132619 5.975873 +v 0.186870 8.336183 5.975873 +v 0.000000 8.299012 5.975873 +v -0.186870 9.238472 5.975873 +v 0.000000 9.275643 5.975873 +v 0.345291 8.442036 5.975873 +v 0.186870 9.238472 5.975873 +v 0.345291 9.132619 5.975873 +v 0.451145 8.600457 5.975873 +v 0.451145 8.974197 5.975873 +v 0.488316 8.787328 5.975873 +v -0.488316 8.787328 5.975873 +v -0.186870 8.336183 5.975873 +v -0.451145 8.600457 5.975873 +v -0.345291 8.442036 5.975873 +v -1.659889 9.270180 6.250484 +v -1.659889 9.270180 2.190356 +v -1.659889 8.796173 2.190356 +v -1.659889 9.139336 2.059511 +v -1.659889 8.927017 2.059511 +v -1.360494 9.270180 6.250484 +v -1.659889 9.270180 6.250484 +v -1.659889 8.796173 6.250484 +v -1.705540 8.752759 6.288157 +v -1.524936 8.752759 6.288157 +v -1.524936 9.326169 6.288157 +v 1.705540 7.614016 -2.276281 +v -1.705540 7.184847 1.303785 +v -1.705540 9.151711 1.935824 +v 1.321148 7.637856 11.214216 +v 0.359371 10.492231 20.190464 +v -1.238688 7.586768 1.879624 +v 0.393269 9.417000 1.879624 +v 1.705540 7.184847 3.920666 +v 0.408756 10.390597 -3.172265 +v 1.705540 7.184847 3.413727 +v 0.392768 7.184847 -4.842922 +v 1.705540 9.660696 2.612226 +v 1.526129 9.833411 2.105289 +v 1.231429 7.184847 -4.842922 +v 0.408756 10.390597 -3.172265 +v 1.526129 7.184847 1.303785 +v 1.705540 7.184847 0.796846 +v 1.231429 9.417337 -4.333549 +v 1.231429 7.587345 -4.842922 +v 1.526129 7.184847 -0.004656 +v 1.526129 9.833411 -0.511595 +v 0.728571 7.587345 -4.842922 +v 1.526129 7.184847 -1.313097 +v 1.231429 8.051105 -4.842922 +v 0.728571 8.051105 -4.842922 +v 1.132077 10.212755 -2.753814 +v 1.526129 9.833411 -1.820036 +v 1.132077 10.212755 0.576711 +v 1.705540 7.184847 0.796846 +v -1.238688 8.051682 1.879624 +v -1.705540 7.184847 -0.511595 +v -1.705540 7.184847 3.413727 +v -1.526129 9.833411 3.920666 +v -1.526129 8.752565 3.920666 +v -1.705540 8.752565 3.413728 +v -1.705540 9.660696 3.413728 +v -1.705540 8.752565 2.612226 +v -0.393269 7.184847 1.879624 +v -1.526129 9.833411 2.612226 +v -1.526129 8.752565 2.612226 +v -1.705540 7.184845 18.319260 +v -1.238688 7.586768 1.879624 +v -0.409408 10.107763 -3.763226 +v -1.705540 9.660696 1.303785 +v -0.728571 8.051105 -4.842922 +v -1.526129 9.833411 0.796846 +v -0.393269 9.417000 1.879624 +v -0.728164 7.586768 1.879624 +v -1.705540 9.660696 -0.004656 +v -1.705540 7.184847 -0.511595 +v -0.728164 8.051682 1.879624 +v -1.705540 9.660696 -1.313097 +v -1.238688 8.051682 1.879624 +v -1.705540 7.184847 -1.820036 +v -1.705540 7.184847 -1.820036 +v -1.705540 7.184847 -4.842922 +v -1.705540 7.184847 -1.820036 +v -1.705540 8.782389 -4.842922 +v -1.526129 8.752565 3.413728 +v -0.409408 10.019367 6.288157 +v 0.408756 10.390597 5.830760 +v -1.326382 10.025587 11.777046 +v -1.333642 8.402288 6.532843 +v -0.167762 11.355708 19.816681 +v 0.335502 11.207904 -2.300615 +v 0.335502 11.207904 -2.625849 +v 0.143185 11.269897 -2.690542 +v 1.321148 7.184845 11.214216 +v 1.705540 7.444345 12.021435 +v 1.321148 7.637856 11.214216 +v -1.526129 9.326169 2.612226 +v -1.526129 9.326169 3.920666 +v -1.526129 8.752565 3.413728 +v -1.526129 9.326169 2.612226 +v 0.335502 11.269897 -2.690542 +v 0.335502 10.613042 -2.625849 +v -0.893030 10.492231 19.372772 +v -0.335502 10.613042 -2.690542 +v -0.143185 10.723700 -1.978914 +v -0.335502 11.269897 -2.690542 +v -0.335502 11.269897 -2.300615 +v -1.659889 8.796173 6.250484 +v -1.360494 8.796173 6.250484 +v -1.705540 8.402288 6.532843 +v -1.333642 8.402288 6.532843 +v -1.524936 8.752759 6.288157 +v -1.171832 8.752774 6.288157 +v -0.654714 10.019365 11.897297 +v -0.654714 10.019365 11.777046 +v 0.632517 10.019365 11.777046 +v 0.632517 10.019365 11.777046 +v -1.705540 9.660696 6.288157 +v -1.705540 9.660696 3.920666 +v -1.705540 9.326169 3.920666 +v -1.526129 8.752565 2.110282 +v -1.526129 9.321173 2.105289 +v -1.524936 9.151711 1.935824 +v -1.526129 7.184847 1.303785 +v -1.526129 9.833411 1.303785 +v -1.526129 9.833411 0.796846 +v -1.705540 9.660696 1.303785 +v 1.526129 9.833411 -1.820036 +v 1.526129 9.833411 -1.313097 +v -1.171832 9.475289 11.777046 +v 1.705540 7.184845 18.319260 +v 1.705540 7.184845 12.021435 +v 1.705540 7.444345 12.021435 +v 1.705540 9.660696 -1.820036 +v 1.705540 7.247200 -1.820036 +v 1.705540 7.967400 18.319260 +v 1.526043 7.184847 -2.765843 +v 1.705540 7.184847 -4.842922 +v 1.705540 7.184847 -2.765843 +v -1.526129 9.321173 2.105289 +v -1.705540 9.321173 2.105289 +v -1.705540 9.151711 1.935824 +v -1.705540 8.927025 1.935824 +v -1.705540 8.757562 2.105289 +v -1.526129 8.752565 2.110282 +v 1.018714 8.813757 11.876558 +v 1.156401 9.475289 11.866871 +v 1.156401 7.184845 11.897297 +v -1.014517 10.157009 0.196241 +v -1.014517 10.369081 0.196241 +v 0.167762 10.787156 19.556133 +v 0.167762 11.355708 19.816681 +v 0.167762 11.355708 20.190464 +v 0.359371 10.492231 20.190464 +v 0.359371 10.492231 19.285318 +v 0.872165 9.770428 11.711023 +v 1.156401 9.475289 11.866871 +v 0.632517 10.019365 11.897297 +v 1.018419 10.321525 11.521421 +v 1.019789 10.321226 19.320282 +v 1.326382 10.025587 21.944122 +v 0.872165 9.770428 11.711023 +v 0.947015 10.390595 11.752501 +v 1.018419 10.321525 11.521421 +v 1.018419 10.321527 6.288157 +v 0.958007 9.683089 6.288157 +v 0.958007 9.683128 11.555180 +v 0.632517 10.019367 5.830760 +v 1.156401 9.475291 5.830760 +v 0.958007 9.683089 6.288157 +v 1.326382 7.967400 19.492821 +v 1.326382 7.967402 7.346316 +v 1.326382 8.055081 6.892088 +v 1.326382 8.402288 6.532843 +v 1.326382 10.025589 6.288157 +v -1.333642 7.967400 19.492821 +v -1.333642 8.578351 11.777046 +v -1.333642 8.402286 11.660704 +v -1.326382 10.025587 21.944122 +v -1.326382 10.025587 11.777046 +v 0.947015 10.390595 19.208494 +v 0.947015 10.390595 11.752501 +v 0.869641 10.390595 11.777046 +v -0.409408 10.390597 -3.531358 +v -0.409408 10.107763 -3.763226 +v -0.947015 10.390597 -3.531358 +v 0.869641 10.390595 11.777046 +v -1.238688 8.782389 -4.842922 +v -1.333642 8.578351 11.777046 +v -1.526129 7.184847 -0.004656 +v -1.526129 9.833411 -0.004656 +v -1.526129 9.833411 -0.511595 +v -0.947015 10.390597 0.637665 +v -0.947015 10.390597 6.288157 +v -0.409408 10.390597 5.830760 +v 0.408756 10.390597 5.830760 +v 0.947015 10.390597 0.637665 +v 0.408756 10.390597 6.288157 +v 1.018419 10.321527 6.288157 +v -1.171832 9.475291 5.830760 +v -1.171832 9.475291 6.288157 +v 1.018419 10.321527 6.288157 +v 1.326382 10.025589 6.288157 +v 1.132077 10.212755 0.576711 +v -0.409408 10.390597 6.288157 +v -1.526129 9.833411 2.105289 +v -1.526129 9.833411 2.612226 +v -1.132077 10.212755 0.576711 +v -1.526129 9.833411 3.920666 +v -1.326382 10.025589 6.288157 +v -1.526129 9.833411 3.413728 +v 0.947015 10.390597 -3.531358 +v 0.947015 10.390597 -2.821980 +v 1.132077 10.212755 -2.753814 +v 0.947015 10.390595 19.208494 +v -0.947015 10.390595 19.208494 +v -1.016029 10.321226 19.320282 +v 0.947015 10.390595 20.281315 +v -0.947015 10.390595 20.281315 +v -0.947015 10.390595 21.944122 +v 1.705540 7.184847 2.612226 +v 1.705540 9.660696 2.612226 +v 1.705540 9.660696 3.413728 +v 1.019789 10.321226 20.144449 +v -1.016029 10.321226 20.144449 +v 1.326382 7.967400 19.492821 +v 1.326382 7.184845 19.492821 +v 0.471660 5.087638 16.849926 +v 0.813732 5.420440 16.849926 +v 0.813732 5.420440 21.944122 +v 0.408756 10.390597 -3.531358 +v 0.408756 10.390597 -3.172265 +v 1.019789 10.321226 20.144449 +v -0.409408 10.107763 -3.763226 +v -0.409408 10.107763 -3.259710 +v 0.408756 10.107763 -3.259710 +v 1.705540 7.967402 7.346316 +v 1.326382 7.967402 7.346316 +v 1.326382 7.967400 19.492821 +v 1.326382 7.184845 21.944122 +v 1.326382 7.184845 19.492821 +v 1.526129 7.184847 1.303785 +v 1.526129 7.184847 0.796846 +v 1.526129 9.833411 0.796846 +v 1.705540 8.402288 6.532843 +v 1.326382 8.402288 6.532843 +v 1.326382 8.055081 6.892088 +v 1.705540 8.055081 6.892088 +v 1.705540 9.660696 6.288157 +v 1.326382 10.025589 6.288157 +v 1.326382 8.752767 6.288157 +v 1.705540 9.660696 -4.131680 +v 1.231429 9.417337 -4.333549 +v 0.408756 10.107763 -3.763226 +v -0.392768 9.417337 -4.333549 +v -0.409408 10.390597 -3.172265 +v -0.947015 10.390597 -2.821980 +v 0.392768 9.417337 -4.333549 +v 0.392768 8.782389 -4.842922 +v 1.231429 8.782389 -4.842922 +v 1.705540 8.782389 -4.842922 +v 1.705540 9.660696 -4.131680 +v 0.947015 10.390597 -3.531358 +v 1.526129 9.833411 2.612226 +v 1.705540 9.660696 6.288157 +v 1.705540 9.660696 3.920666 +v 1.526129 9.833411 3.920666 +v -1.132077 10.212755 0.576711 +v 1.132077 10.212755 0.576711 +v 1.132077 10.212755 -2.753814 +v 1.705540 9.660696 -1.313097 +v 1.705540 9.660696 -0.511595 +v 1.705540 7.184847 -0.511595 +v 1.705540 9.660696 -0.004656 +v 1.705540 9.660696 0.796846 +v 1.705540 7.184847 0.796846 +v 1.526129 7.184847 2.612226 +v 1.526129 7.184847 2.105287 +v 1.526129 9.833411 2.105289 +v 1.705540 9.660696 3.920666 +v 1.705540 9.660696 6.288157 +v 1.019789 10.321226 19.320282 +v -0.471660 5.087638 16.849926 +v 0.471660 5.087638 21.944122 +v 0.813732 7.184845 16.849926 +v 0.813732 7.184845 21.944122 +v 0.947015 10.390595 20.281315 +v 0.947015 10.390595 21.944122 +v 1.705540 8.752767 6.288157 +v 1.526129 7.184847 3.920666 +v 1.526129 7.184847 3.413727 +v 1.526129 9.833411 3.413728 +v 0.392768 7.184847 -4.842922 +v -0.392768 7.184847 -4.842922 +v -0.392768 8.782389 -4.842922 +v 0.408756 10.390597 -3.531358 +v 1.526129 7.184847 -0.004656 +v 1.526129 7.184847 -0.511595 +v 1.526129 9.833411 -0.511595 +v 1.705540 7.184847 1.303785 +v 1.705540 9.660696 1.303785 +v 1.705540 9.660696 2.105289 +v 1.526129 9.833411 3.413728 +v 1.526129 9.833411 -0.511595 +v 1.526129 9.833411 -1.313097 +v 1.526129 9.833411 -1.820036 +v 1.526129 9.833411 -0.004656 +v 1.526129 9.833411 2.105289 +v 1.526129 9.833411 1.303785 +v 1.705540 7.184847 -2.765843 +v 1.705540 7.614016 -2.276281 +v 1.526043 7.614016 -2.276281 +v -0.947015 10.390597 -3.531358 +v -1.705540 9.660696 -4.131680 +v -1.132077 10.212755 -2.753814 +v -1.705540 7.184845 18.319260 +v -1.705540 7.967400 18.319260 +v -1.526129 9.833411 -1.313097 +v -1.526129 9.833411 -0.511595 +v -1.705540 9.660696 -1.820036 +v -1.526129 9.833411 -1.820036 +v -1.705540 9.660696 3.413728 +v -1.705540 9.660696 2.612226 +v -1.705540 9.326169 2.612226 +v -1.333642 7.184845 19.492821 +v -0.471660 5.087638 21.944122 +v -0.813732 5.420440 21.944122 +v -0.409408 10.390597 -3.531358 +v -1.705540 7.184847 2.105287 +v -1.526129 7.184847 2.105287 +v -1.526129 9.833411 2.105289 +v -1.705540 7.967402 7.346316 +v -1.705540 7.967400 18.319260 +v -1.333642 7.967400 19.492821 +v -1.333642 7.184845 19.492821 +v -1.705540 9.321173 2.105289 +v -1.705540 9.660696 2.105289 +v -1.705540 8.055081 6.892088 +v -1.333642 8.055081 6.892088 +v -1.333642 7.967402 7.346316 +v -1.705540 9.660696 -0.511595 +v -1.238688 9.417337 -4.333549 +v -1.705540 9.660696 -4.131680 +v -1.526129 9.833411 1.303785 +v -1.705540 8.782389 -4.842922 +v -1.705540 9.660696 -1.313097 +v -1.705540 7.184847 -1.313097 +v -1.705540 7.184847 -0.511595 +v -1.705540 9.660696 -0.004656 +v -1.705540 7.184847 -0.004656 +v -1.705540 7.184847 0.796846 +v -1.526129 9.833411 -0.004656 +v -1.705540 9.660696 0.796846 +v -1.526129 9.833411 0.796846 +v -0.813732 5.420440 16.849926 +v -0.813732 7.184845 21.944122 +v -1.526129 7.184847 -1.313097 +v -1.526129 9.833411 -1.313097 +v -1.526129 9.833411 -1.820036 +v -0.947015 10.390595 11.777046 +v -1.016029 10.321226 11.777046 +v -1.705540 8.752759 6.288157 +v -1.526129 9.833411 3.920666 +v -1.526129 9.833411 3.413728 +v -1.526129 9.326169 3.413728 +v 1.326382 8.752767 6.288157 +v -1.171832 8.402288 6.532843 +v -1.171832 8.578351 11.777046 +v -1.171832 8.402286 11.660704 +v 0.632517 10.019367 5.830760 +v 0.632517 10.019367 6.288157 +v 0.408756 10.019367 6.288157 +v -0.654714 10.019367 5.830760 +v -0.409408 10.019367 5.830760 +v -0.409408 10.019367 6.288157 +v 0.632517 10.019367 6.288157 +v 0.958007 9.683128 11.555180 +v 1.156401 7.184845 5.830760 +v 1.156401 7.184845 11.897297 +v 0.941169 9.203602 11.872112 +v 1.018714 8.813757 11.876558 +v 1.018714 8.813757 21.944122 +v 0.720340 9.534097 11.876596 +v 0.941169 9.203602 21.944122 +v 0.389845 9.754926 11.891426 +v 0.720340 9.534097 21.944122 +v 0.000000 9.832471 11.897297 +v 0.389845 9.754926 21.944122 +v 0.814306 10.296812 20.190464 +v 0.814306 10.492231 20.190464 +v 0.000000 9.832471 21.944122 +v -0.389845 9.754926 21.944122 +v -0.389845 9.754926 11.897297 +v -0.720340 9.534097 21.944122 +v -0.720340 9.534097 11.896717 +v 0.893030 10.296812 20.116810 +v 0.893030 10.492231 20.116810 +v 0.893030 10.296812 19.372772 +v 0.893030 10.492231 19.372772 +v -0.941169 9.203602 11.897297 +v -0.941169 9.203602 21.944122 +v -1.018714 8.813757 21.944122 +v -1.018714 8.813757 11.897297 +v -0.941169 8.423912 21.944122 +v -0.941169 8.423912 11.897297 +v -0.720340 8.093417 21.944122 +v -0.720340 8.093417 11.897297 +v -0.389845 7.872588 21.944122 +v -0.389845 7.872590 11.897297 +v 0.000000 7.795043 21.944122 +v 0.000000 7.795043 11.897297 +v 0.000000 7.795043 21.944122 +v 0.389845 7.872588 21.944122 +v 0.389845 7.872590 11.897297 +v 0.720340 8.093417 21.944122 +v 0.720340 8.093417 11.890942 +v 0.814306 10.296812 19.285318 +v 0.814306 10.492231 19.285318 +v 0.893030 10.492231 19.372772 +v 0.941169 8.423912 11.883170 +v 0.941169 8.423912 21.944122 +v 0.359371 10.492231 19.285318 +v -0.814306 10.296812 19.285318 +v -0.359371 10.492231 19.285318 +v -0.167762 10.787156 19.556133 +v 0.167762 10.787156 19.556133 +v -0.167762 11.355708 19.816681 +v 0.167762 11.355708 19.816681 +v -0.814306 10.157009 0.372431 +v 0.814306 10.157009 0.372431 +v 0.814306 10.357646 0.372431 +v 1.014517 10.157009 0.196241 +v 1.014517 10.369081 0.196241 +v -0.143185 10.723700 -1.978914 +v 0.143185 10.723700 -1.978914 +v 0.143185 10.723700 -2.690542 +v 0.143185 11.207904 -2.300615 +v 0.143185 10.723700 -1.978914 +v 0.335502 11.207904 -2.300615 +v 1.014517 10.723700 -1.978914 +v 1.014517 11.207904 -2.300615 +v 1.014517 10.606321 -1.825947 +v -1.014517 10.606321 -1.825947 +v -1.014517 10.491154 -1.431074 +v 1.014517 10.491154 -1.431074 +v -0.814306 10.357646 0.372431 +v 0.814306 10.357646 0.372431 +v 1.014517 10.369081 0.196241 +v -1.014517 10.369081 0.196241 +v -1.171832 9.475289 11.897297 +v 0.632517 10.019365 11.897297 +v 0.720340 9.534097 11.876596 +v 0.000000 9.832471 11.897297 +v -0.654714 10.019365 11.897297 +v -0.720340 9.534097 11.896717 +v -1.171832 9.475289 11.897297 +v 0.941169 8.423912 11.883170 +v 0.720340 8.093417 11.890942 +v 0.389845 7.872590 11.897297 +v -0.941169 9.203602 11.897297 +v -0.389845 9.754926 11.897297 +v 0.389845 9.754926 11.891426 +v 0.941169 9.203602 11.872112 +v -1.524936 8.927025 1.935824 +v -1.526129 9.833411 2.105289 +v -1.526129 9.321173 2.105289 +v -1.526129 9.326169 2.612226 +v 0.335502 11.269897 -2.300615 +v 0.143185 11.269897 -2.300615 +v -0.167762 10.787156 19.556133 +v -0.167762 10.787156 20.190464 +v -0.167762 11.355708 20.190464 +v -0.359371 10.492231 20.190464 +v -0.814306 10.492231 20.190464 +v -0.814306 10.296812 20.190464 +v -0.893030 10.296812 20.116810 +v -0.893030 10.296812 19.372772 +v -0.893030 10.492231 20.116810 +v -0.893030 10.296812 19.372772 +v -0.893030 10.492231 19.372772 +v -0.814306 10.492231 19.285318 +v -0.143185 10.723700 -1.978914 +v -1.014517 10.723700 -1.978914 +v -0.814306 10.357646 0.372431 +v -0.335502 11.269897 -2.300615 +v -0.335502 11.207904 -2.300615 +v -0.143185 11.207904 -2.300615 +v 1.526129 9.833411 0.796846 +v -0.451145 8.974197 5.975873 +v -0.345291 9.132619 5.975873 +v -0.345291 9.132619 5.773401 +v -0.186870 9.238472 5.975873 +v -0.186870 9.238472 5.773401 +v 0.345291 8.442036 5.975873 +v 0.186870 8.336183 5.975873 +v 0.186870 8.336183 5.773401 +v 0.000000 9.275643 5.975873 +v 0.000000 9.275643 5.773401 +v 0.186870 9.238472 5.975873 +v 0.186870 9.238472 5.773401 +v 0.451145 8.600457 5.975873 +v 0.345291 8.442036 5.773401 +v 0.345291 9.132619 5.975873 +v 0.345291 9.132619 5.773401 +v 0.451145 8.974197 5.975873 +v 0.451145 8.974197 5.773401 +v 0.488316 8.787328 5.975873 +v 0.451145 8.600457 5.773401 +v 0.488316 8.787328 5.773401 +v -0.186870 8.336183 5.975873 +v -0.345291 8.442036 5.975873 +v -0.345291 8.442036 5.773401 +v -0.451145 8.600457 5.975873 +v -0.488316 8.787328 5.975873 +v -0.488316 8.787328 5.773401 +v 0.000000 8.299012 5.975873 +v -0.186870 8.336183 5.773401 +v 0.000000 8.299012 5.773401 +v -0.451145 8.974197 5.773401 +v -0.451145 8.600457 5.773401 +v -1.360494 8.796173 2.190356 +v -1.659889 8.796173 2.190356 +v -1.659889 8.927017 2.059511 +v -1.659889 9.139336 2.059511 +v -1.360494 9.139336 2.059511 +v -1.360494 8.927017 2.059511 +v -1.360494 9.270180 2.190356 +v -1.659889 9.270180 2.190356 +v -1.659889 9.270180 6.250484 +v -1.360494 8.796173 6.250484 +v -1.659889 8.796173 6.250484 +v -1.705540 9.326169 6.288157 +v -1.524936 8.927025 1.935824 +v -1.526129 7.184847 0.796846 +v -1.526129 8.752565 2.110282 +v -1.524936 9.151711 1.935824 +v 0.167762 10.787156 20.190464 +v -1.526129 7.184847 -0.511595 +v 0.947015 10.390595 21.944122 +v 1.705540 7.184847 3.413727 +v 0.408756 10.107763 -3.763226 +v 1.705540 7.967400 18.319260 +v 1.526129 9.833411 1.303785 +v -1.132077 10.212755 -2.753814 +v 1.705540 7.184847 -1.313097 +v 1.705540 7.184847 -0.004656 +v 1.526129 9.833411 2.612226 +v 1.526129 9.833411 3.920666 +v 1.526129 9.833411 -0.004656 +v 1.705540 7.184847 2.105287 +v 1.526043 7.184847 -2.765843 +v -1.705540 9.326169 3.413728 +v -1.333642 7.967400 19.492821 +v -1.705540 9.660696 2.105289 +v -1.333642 7.184845 21.944122 +v -0.813732 7.184845 16.849926 +v -1.526129 7.184847 -1.820036 +v -1.526129 9.326169 3.920666 +v -1.333642 8.402286 11.660704 +v 0.408756 10.019367 5.830760 +v -0.654714 10.019367 6.288157 +v 0.869641 10.390595 11.777046 +v 0.000000 7.795043 11.897297 +v 0.893030 10.296812 19.372772 +v -0.143185 10.723700 -2.690542 +v -1.526129 9.833411 2.612226 +v -0.167762 11.355708 19.816681 +v -0.359371 10.492231 19.285318 +v -0.893030 10.492231 19.372772 +v -0.143185 11.269897 -2.300615 +v -1.014517 11.207904 -2.300615 +v -1.360494 9.270180 6.250484 +vt 0.665882 0.347767 +vt 0.666023 0.347766 +vt 0.666162 0.347974 +vt 0.668422 0.348903 +vt 0.668420 0.348450 +vt 0.668128 0.348707 +vt 0.670331 0.347891 +vt 0.670113 0.347891 +vt 0.670112 0.348138 +vt 0.648961 0.347035 +vt 0.648963 0.347711 +vt 0.650088 0.347182 +vt 0.670330 0.348139 +vt 0.670330 0.348216 +vt 0.671351 0.348220 +vt 0.670330 0.348139 +vt 0.671351 0.348142 +vt 0.655673 0.344315 +vt 0.655725 0.344372 +vt 0.655911 0.344201 +vt 0.649593 0.340884 +vt 0.649645 0.341960 +vt 0.649646 0.340955 +vt 0.655911 0.344201 +vt 0.655725 0.344372 +vt 0.656134 0.344371 +vt 0.649941 0.340885 +vt 0.655073 0.340475 +vt 0.655070 0.339797 +vt 0.654996 0.339724 +vt 0.671575 0.327451 +vt 0.671356 0.327477 +vt 0.671982 0.327480 +vt 0.644693 0.340192 +vt 0.644385 0.340134 +vt 0.644557 0.340283 +vt 0.644700 0.340269 +vt 0.647509 0.341099 +vt 0.649593 0.340718 +vt 0.646875 0.340713 +vt 0.646368 0.340876 +vt 0.650439 0.347369 +vt 0.650243 0.347332 +vt 0.648903 0.346602 +vt 0.648902 0.346797 +vt 0.650571 0.346464 +vt 0.653087 0.342196 +vt 0.653087 0.342119 +vt 0.652263 0.341965 +vt 0.653089 0.340724 +vt 0.649942 0.340719 +vt 0.652265 0.340960 +vt 0.652957 0.336625 +vt 0.652061 0.336628 +vt 0.652064 0.337317 +vt 0.653168 0.336809 +vt 0.656866 0.340895 +vt 0.655346 0.340806 +vt 0.653970 0.340890 +vt 0.671253 0.338233 +vt 0.671472 0.338233 +vt 0.671470 0.337557 +vt 0.652046 0.346806 +vt 0.665497 0.338599 +vt 0.665663 0.338599 +vt 0.665663 0.338404 +vt 0.647507 0.341802 +vt 0.653089 0.340802 +vt 0.669772 0.341914 +vt 0.669364 0.341701 +vt 0.670181 0.341704 +vt 0.650766 0.346427 +vt 0.652276 0.346675 +vt 0.652808 0.346599 +vt 0.652882 0.346653 +vt 0.666531 0.348446 +vt 0.666675 0.348446 +vt 0.666674 0.348692 +vt 0.671544 0.335436 +vt 0.671154 0.335438 +vt 0.671154 0.335634 +vt 0.671512 0.335403 +vt 0.671191 0.335404 +vt 0.653306 0.342119 +vt 0.653308 0.340802 +vt 0.653969 0.341610 +vt 0.653969 0.341314 +vt 0.657096 0.340687 +vt 0.657251 0.340835 +vt 0.657446 0.340872 +vt 0.666338 0.341178 +vt 0.666344 0.341136 +vt 0.666141 0.341132 +vt 0.671982 0.327709 +vt 0.671281 0.327706 +vt 0.671277 0.328466 +vt 0.671424 0.328610 +vt 0.671831 0.328612 +vt 0.671979 0.328470 +vt 0.645308 0.342022 +vt 0.646366 0.342024 +vt 0.645309 0.341798 +vt 0.654435 0.342121 +vt 0.654435 0.342199 +vt 0.654781 0.342199 +vt 0.671983 0.325746 +vt 0.671796 0.325132 +vt 0.671793 0.326094 +vt 0.671982 0.325897 +vt 0.672220 0.326096 +vt 0.671777 0.334214 +vt 0.671776 0.334827 +vt 0.672010 0.334827 +vt 0.653873 0.340803 +vt 0.653654 0.340803 +vt 0.655346 0.340729 +vt 0.655001 0.340728 +vt 0.655001 0.340805 +vt 0.653654 0.340725 +vt 0.653308 0.340725 +vt 0.671788 0.332239 +vt 0.671789 0.331098 +vt 0.671711 0.331172 +vt 0.652553 0.348753 +vt 0.652553 0.349106 +vt 0.652681 0.349106 +vt 0.672085 0.331172 +vt 0.672007 0.331098 +vt 0.672006 0.332240 +vt 0.656870 0.341615 +vt 0.668193 0.332067 +vt 0.669156 0.332072 +vt 0.669169 0.329174 +vt 0.671795 0.322170 +vt 0.671872 0.322170 +vt 0.671867 0.321028 +vt 0.672090 0.322169 +vt 0.672168 0.322168 +vt 0.672163 0.321101 +vt 0.668481 0.329171 +vt 0.668206 0.329389 +vt 0.666338 0.332059 +vt 0.666535 0.332060 +vt 0.666549 0.329162 +vt 0.652436 0.348631 +vt 0.652336 0.348753 +vt 0.652553 0.348753 +vt 0.671870 0.322396 +vt 0.671793 0.322471 +vt 0.671795 0.323538 +vt 0.670269 0.345604 +vt 0.670270 0.345453 +vt 0.670505 0.345454 +vt 0.672166 0.322470 +vt 0.672088 0.322396 +vt 0.672090 0.323538 +vt 0.645310 0.341095 +vt 0.667770 0.332065 +vt 0.668193 0.332067 +vt 0.668206 0.329389 +vt 0.666535 0.332060 +vt 0.666770 0.332061 +vt 0.666784 0.329163 +vt 0.671056 0.346443 +vt 0.670979 0.346517 +vt 0.670974 0.347585 +vt 0.670666 0.345804 +vt 0.670503 0.345803 +vt 0.670504 0.345605 +vt 0.671270 0.347586 +vt 0.671347 0.347586 +vt 0.671352 0.346519 +vt 0.667782 0.329387 +vt 0.667509 0.329166 +vt 0.667770 0.332065 +vt 0.666770 0.332061 +vt 0.666922 0.332062 +vt 0.666935 0.329164 +vt 0.671361 0.326336 +vt 0.671283 0.326410 +vt 0.671279 0.327477 +vt 0.667157 0.332063 +vt 0.666922 0.332062 +vt 0.667157 0.332063 +vt 0.667170 0.329165 +vt 0.657272 0.345497 +vt 0.657273 0.344680 +vt 0.657191 0.344600 +vt 0.671575 0.327451 +vt 0.671652 0.327452 +vt 0.671656 0.326411 +vt 0.651028 0.346127 +vt 0.650922 0.346278 +vt 0.655755 0.344598 +vt 0.655674 0.344677 +vt 0.655673 0.345494 +vt 0.645310 0.340874 +vt 0.654782 0.340805 +vt 0.653652 0.342120 +vt 0.653968 0.342037 +vt 0.653873 0.340726 +vt 0.654218 0.340804 +vt 0.654219 0.340726 +vt 0.654437 0.340804 +vt 0.654782 0.340727 +vt 0.672010 0.334979 +vt 0.671775 0.334978 +vt 0.671775 0.335176 +vt 0.672199 0.335177 +vt 0.672223 0.325134 +vt 0.653871 0.342120 +vt 0.655345 0.342200 +vt 0.655345 0.342122 +vt 0.655000 0.342122 +vt 0.653652 0.342197 +vt 0.656756 0.344189 +vt 0.656833 0.344189 +vt 0.656833 0.344045 +vt 0.671877 0.347120 +vt 0.671954 0.347119 +vt 0.671951 0.346443 +vt 0.671581 0.347121 +vt 0.671659 0.347121 +vt 0.671655 0.346445 +vt 0.656460 0.344190 +vt 0.656538 0.344190 +vt 0.656537 0.343971 +vt 0.671606 0.348023 +vt 0.671952 0.348024 +vt 0.671954 0.347348 +vt 0.667304 0.332303 +vt 0.667016 0.335199 +vt 0.666328 0.335196 +vt 0.671469 0.337246 +vt 0.671546 0.337245 +vt 0.671544 0.337101 +vt 0.671472 0.338233 +vt 0.671549 0.338232 +vt 0.671547 0.337557 +vt 0.667291 0.334981 +vt 0.669169 0.332311 +vt 0.669156 0.335209 +vt 0.668958 0.335208 +vt 0.652436 0.349228 +vt 0.652591 0.349228 +vt 0.652553 0.349106 +vt 0.672007 0.329730 +vt 0.672007 0.330872 +vt 0.672084 0.330872 +vt 0.669596 0.345601 +vt 0.669357 0.345600 +vt 0.669358 0.345449 +vt 0.671711 0.329804 +vt 0.671711 0.330872 +vt 0.671788 0.330872 +vt 0.667731 0.332305 +vt 0.667718 0.334983 +vt 0.667291 0.334981 +vt 0.668972 0.332310 +vt 0.668958 0.335208 +vt 0.668720 0.335207 +vt 0.672007 0.332466 +vt 0.672006 0.333607 +vt 0.672083 0.333608 +vt 0.669356 0.345798 +vt 0.669196 0.345797 +vt 0.671787 0.333607 +vt 0.671789 0.332465 +vt 0.671711 0.332540 +vt 0.667991 0.335204 +vt 0.667718 0.334983 +vt 0.667731 0.332305 +vt 0.668734 0.332309 +vt 0.668720 0.335207 +vt 0.668569 0.335206 +vt 0.654781 0.342122 +vt 0.656868 0.342041 +vt 0.672089 0.323764 +vt 0.672090 0.324906 +vt 0.672168 0.324906 +vt 0.668344 0.332307 +vt 0.668331 0.335205 +vt 0.668582 0.332308 +vt 0.668569 0.335206 +vt 0.668331 0.335205 +vt 0.656869 0.342187 +vt 0.655687 0.342123 +vt 0.653870 0.342198 +vt 0.654216 0.342198 +vt 0.671872 0.324906 +vt 0.671870 0.323765 +vt 0.671793 0.323839 +vt 0.654216 0.342121 +vt 0.671659 0.347121 +vt 0.671877 0.347120 +vt 0.671874 0.346444 +vt 0.644214 0.339986 +vt 0.644362 0.339846 +vt 0.644193 0.339756 +vt 0.644615 0.340046 +vt 0.644334 0.339545 +vt 0.644175 0.339559 +vt 0.644193 0.339756 +vt 0.661765 0.343274 +vt 0.661774 0.343476 +vt 0.661938 0.343468 +vt 0.644761 0.345897 +vt 0.644761 0.345737 +vt 0.644408 0.345736 +vt 0.661774 0.343476 +vt 0.661779 0.343575 +vt 0.661938 0.343468 +vt 0.661664 0.343724 +vt 0.661914 0.343724 +vt 0.666088 0.341451 +vt 0.652408 0.344048 +vt 0.653077 0.344280 +vt 0.652920 0.344378 +vt 0.644352 0.339741 +vt 0.665748 0.341793 +vt 0.665706 0.341738 +vt 0.663936 0.343063 +vt 0.644408 0.345896 +vt 0.644302 0.345896 +vt 0.644079 0.346130 +vt 0.644077 0.347117 +vt 0.645080 0.347119 +vt 0.645082 0.346132 +vt 0.667545 0.348453 +vt 0.667839 0.348708 +vt 0.667838 0.348452 +vt 0.671547 0.336174 +vt 0.671546 0.336029 +vt 0.671385 0.336030 +vt 0.645949 0.348760 +vt 0.645922 0.348760 +vt 0.645922 0.348928 +vt 0.645519 0.348898 +vt 0.645812 0.348899 +vt 0.645813 0.348759 +vt 0.645520 0.348758 +vt 0.645812 0.348899 +vt 0.645839 0.348927 +vt 0.645839 0.348759 +vt 0.665999 0.338618 +vt 0.666027 0.338619 +vt 0.666027 0.338335 +vt 0.645922 0.348760 +vt 0.645839 0.348759 +vt 0.645839 0.348927 +vt 0.671398 0.339640 +vt 0.671245 0.339741 +vt 0.671571 0.340011 +vt 0.671500 0.339488 +vt 0.671536 0.339308 +vt 0.671066 0.339776 +vt 0.669561 0.343988 +vt 0.669414 0.343844 +vt 0.670116 0.343846 +vt 0.669417 0.343083 +vt 0.670343 0.343087 +vt 0.670119 0.343086 +vt 0.670101 0.342715 +vt 0.670239 0.342384 +vt 0.670344 0.341862 +vt 0.670103 0.342052 +vt 0.669440 0.342050 +vt 0.669200 0.341858 +vt 0.669301 0.342381 +vt 0.669196 0.343083 +vt 0.669438 0.342713 +vt 0.669338 0.342202 +vt 0.669592 0.341949 +vt 0.670204 0.342205 +vt 0.670203 0.342563 +vt 0.669948 0.342816 +vt 0.669769 0.342851 +vt 0.669589 0.342815 +vt 0.669336 0.342560 +vt 0.669968 0.343989 +vt 0.669951 0.341950 +vt 0.665497 0.338404 +vt 0.665149 0.338488 +vt 0.665150 0.338600 +vt 0.664984 0.338600 +vt 0.665150 0.338600 +vt 0.665149 0.338488 +vt 0.665458 0.338243 +vt 0.665110 0.338327 +vt 0.665149 0.338488 +vt 0.670113 0.347891 +vt 0.670113 0.347813 +vt 0.669767 0.347812 +vt 0.671352 0.347895 +vt 0.671352 0.347817 +vt 0.670331 0.347814 +vt 0.669766 0.348137 +vt 0.669766 0.348214 +vt 0.670112 0.348215 +vt 0.669766 0.348137 +vt 0.644857 0.345897 +vt 0.666027 0.338619 +vt 0.666110 0.338571 +vt 0.666110 0.338335 +vt 0.666316 0.338619 +vt 0.666233 0.338571 +vt 0.666316 0.338647 +vt 0.666316 0.338619 +vt 0.666027 0.338619 +vt 0.646157 0.348929 +vt 0.646158 0.348622 +vt 0.671549 0.336766 +vt 0.671548 0.336570 +vt 0.671158 0.336572 +vt 0.671517 0.336801 +vt 0.671159 0.336768 +vt 0.668127 0.348451 +vt 0.666344 0.338619 +vt 0.666344 0.338363 +vt 0.666317 0.338336 +vt 0.666317 0.338336 +vt 0.666234 0.338336 +vt 0.646280 0.348929 +vt 0.646516 0.348930 +vt 0.646490 0.348762 +vt 0.646626 0.348903 +vt 0.646626 0.348763 +vt 0.646599 0.348763 +vt 0.646517 0.348762 +vt 0.646516 0.348930 +vt 0.646599 0.348931 +vt 0.646517 0.348762 +vt 0.646626 0.348903 +vt 0.646918 0.348904 +vt 0.646626 0.348763 +vt 0.646919 0.348764 +vt 0.665884 0.348220 +vt 0.666228 0.348025 +vt 0.666399 0.348073 +vt 0.667547 0.348906 +vt 0.666529 0.348691 +vt 0.666756 0.348819 +vt 0.669247 0.347752 +vt 0.669249 0.348205 +vt 0.668969 0.347962 +vt 0.668904 0.348013 +vt 0.668734 0.348063 +vt 0.666446 0.348817 +vt 0.669107 0.347753 +vt 0.651009 0.348764 +vt 0.651047 0.348947 +vt 0.651082 0.348764 +vt 0.650945 0.349104 +vt 0.650893 0.349053 +vt 0.651150 0.348791 +vt 0.651202 0.348842 +vt 0.651013 0.349131 +vt 0.651231 0.348909 +vt 0.651231 0.348982 +vt 0.651086 0.349131 +vt 0.651204 0.349050 +vt 0.651153 0.349102 +vt 0.650942 0.348793 +vt 0.650864 0.348986 +vt 0.650891 0.348845 +vt 0.650864 0.348913 +vt 0.672001 0.336533 +vt 0.671992 0.338283 +vt 0.672197 0.338284 +vt 0.672049 0.338339 +vt 0.672140 0.338340 +vt 0.665496 0.328592 +vt 0.665496 0.328721 +vt 0.665700 0.328722 +vt 0.649982 0.347032 +vt 0.671351 0.348142 +vt 0.671352 0.347895 +vt 0.655858 0.344144 +vt 0.654727 0.340476 +vt 0.654996 0.339627 +vt 0.665497 0.338404 +vt 0.671545 0.335632 +vt 0.672221 0.325898 +vt 0.672200 0.334214 +vt 0.671711 0.332239 +vt 0.652681 0.348753 +vt 0.672084 0.332240 +vt 0.656871 0.341319 +vt 0.671790 0.321103 +vt 0.672085 0.321027 +vt 0.666351 0.329161 +vt 0.652591 0.348631 +vt 0.671872 0.323538 +vt 0.672168 0.323538 +vt 0.667782 0.329387 +vt 0.666549 0.329162 +vt 0.671051 0.347585 +vt 0.671275 0.346444 +vt 0.666784 0.329163 +vt 0.671356 0.327477 +vt 0.667170 0.329165 +vt 0.666935 0.329164 +vt 0.657189 0.345576 +vt 0.671579 0.326337 +vt 0.655754 0.345574 +vt 0.654437 0.340727 +vt 0.672221 0.325747 +vt 0.654999 0.342199 +vt 0.653306 0.342197 +vt 0.656755 0.343970 +vt 0.671874 0.346444 +vt 0.671578 0.346445 +vt 0.656460 0.344046 +vt 0.671609 0.347347 +vt 0.666342 0.332298 +vt 0.671466 0.337028 +vt 0.671470 0.337557 +vt 0.646872 0.342185 +vt 0.668972 0.332310 +vt 0.652336 0.349106 +vt 0.672085 0.329805 +vt 0.669596 0.345450 +vt 0.671789 0.329730 +vt 0.667304 0.332303 +vt 0.668734 0.332309 +vt 0.672085 0.332540 +vt 0.671710 0.333607 +vt 0.668582 0.332308 +vt 0.672166 0.323838 +vt 0.668344 0.332307 +vt 0.655687 0.342193 +vt 0.671795 0.324906 +vt 0.652075 0.340487 +vt 0.653379 0.340482 +vt 0.652073 0.339798 +vt 0.671655 0.346445 +vt 0.644352 0.339741 +vt 0.661929 0.343266 +vt 0.666317 0.341361 +vt 0.663978 0.343119 +vt 0.671386 0.336174 +vt 0.645813 0.348759 +vt 0.665999 0.338362 +vt 0.645922 0.348928 +vt 0.665497 0.338599 +vt 0.664984 0.338489 +vt 0.665497 0.338404 +vt 0.669767 0.347890 +vt 0.670331 0.347891 +vt 0.670112 0.348138 +vt 0.669767 0.347890 +vt 0.666027 0.338335 +vt 0.666027 0.338646 +vt 0.671197 0.336802 +vt 0.666316 0.338619 +vt 0.646282 0.348623 +vt 0.646599 0.348931 +vt 0.646599 0.348763 +vt 0.672205 0.336534 +vt 0.665701 0.328592 +vt 0.645130 0.340230 +vt 0.645115 0.340070 +vt 0.644939 0.340169 +vt 0.644925 0.340018 +vt 0.653589 0.346722 +vt 0.653589 0.346671 +vt 0.654138 0.346662 +vt 0.665807 0.340688 +vt 0.656870 0.339398 +vt 0.655850 0.339403 +vt 0.655851 0.339547 +vt 0.669550 0.348136 +vt 0.669549 0.347891 +vt 0.669475 0.347964 +vt 0.672007 0.330872 +vt 0.672007 0.329730 +vt 0.671789 0.329730 +vt 0.654722 0.339409 +vt 0.671579 0.326337 +vt 0.671361 0.326336 +vt 0.653268 0.346667 +vt 0.645840 0.346789 +vt 0.648555 0.346796 +vt 0.648555 0.346685 +vt 0.653368 0.337690 +vt 0.653364 0.336650 +vt 0.645841 0.346452 +vt 0.655971 0.340807 +vt 0.656866 0.340731 +vt 0.655971 0.340730 +vt 0.671250 0.337251 +vt 0.671173 0.337252 +vt 0.671174 0.337355 +vt 0.671175 0.337452 +vt 0.671176 0.337555 +vt 0.671254 0.337557 +vt 0.670598 0.339307 +vt 0.670569 0.339021 +vt 0.670567 0.340009 +vt 0.668033 0.348210 +vt 0.668032 0.348119 +vt 0.671272 0.335785 +vt 0.671385 0.336030 +vt 0.671546 0.336029 +vt 0.671545 0.335632 +vt 0.671154 0.335634 +vt 0.654284 0.346628 +vt 0.654463 0.346686 +vt 0.654139 0.346714 +vt 0.343293 0.494352 +vt 0.403663 0.495033 +vt 0.424011 0.491967 +vt 0.665656 0.340670 +vt 0.665851 0.340483 +vt 0.665756 0.340431 +vt 0.664125 0.338873 +vt 0.663934 0.339073 +vt 0.665576 0.340641 +vt 0.654003 0.344111 +vt 0.654328 0.344094 +vt 0.654215 0.344297 +vt 0.405218 0.475819 +vt 0.311194 0.474745 +vt 0.651779 0.345198 +vt 0.651935 0.345050 +vt 0.652048 0.344354 +vt 0.651583 0.345233 +vt 0.662656 0.340850 +vt 0.659345 0.340602 +vt 0.659296 0.340678 +vt 0.424375 0.496265 +vt 0.345807 0.496601 +vt 0.345855 0.507785 +vt 0.646508 0.344057 +vt 0.649684 0.344093 +vt 0.649669 0.344043 +vt 0.669763 0.344216 +vt 0.669762 0.344374 +vt 0.669531 0.344215 +vt 0.665873 0.340511 +vt 0.669360 0.345109 +vt 0.665821 0.341739 +vt 0.672006 0.333607 +vt 0.672007 0.332466 +vt 0.671789 0.332465 +vt 0.654433 0.338957 +vt 0.656867 0.338944 +vt 0.656669 0.338713 +vt 0.656667 0.338361 +vt 0.654429 0.338141 +vt 0.656864 0.338360 +vt 0.656863 0.338096 +vt 0.653400 0.344098 +vt 0.653390 0.344296 +vt 0.652050 0.344171 +vt 0.649802 0.344145 +vt 0.656863 0.337912 +vt 0.654402 0.338030 +vt 0.656866 0.338712 +vt 0.655067 0.339300 +vt 0.655286 0.339299 +vt 0.654407 0.339067 +vt 0.655849 0.339296 +vt 0.656869 0.339171 +vt 0.655631 0.339297 +vt 0.652632 0.338147 +vt 0.652938 0.338146 +vt 0.652967 0.338035 +vt 0.662503 0.338903 +vt 0.662477 0.339733 +vt 0.662538 0.339781 +vt 0.411117 0.477267 +vt 0.411370 0.492239 +vt 0.424354 0.492076 +vt 0.655278 0.336619 +vt 0.655279 0.337686 +vt 0.655624 0.337686 +vt 0.662902 0.338878 +vt 0.662914 0.339780 +vt 0.662981 0.339739 +vt 0.645309 0.346450 +vt 0.645308 0.346788 +vt 0.666773 0.346076 +vt 0.666773 0.346282 +vt 0.668969 0.346283 +vt 0.652633 0.338379 +vt 0.652788 0.338378 +vt 0.302821 0.490584 +vt 0.410043 0.495106 +vt 0.652336 0.349106 +vt 0.652553 0.349106 +vt 0.652553 0.348753 +vt 0.661163 0.348102 +vt 0.661163 0.347939 +vt 0.655926 0.347949 +vt 0.424262 0.469977 +vt 0.405287 0.469761 +vt 0.671872 0.323538 +vt 0.672090 0.323538 +vt 0.672088 0.322396 +vt 0.661578 0.348101 +vt 0.661577 0.347938 +vt 0.661362 0.347939 +vt 0.661362 0.348102 +vt 0.662153 0.348100 +vt 0.662310 0.347937 +vt 0.661761 0.347938 +vt 0.670672 0.344629 +vt 0.670508 0.344764 +vt 0.670115 0.344376 +vt 0.669789 0.344760 +vt 0.652789 0.338731 +vt 0.652941 0.338962 +vt 0.670084 0.344762 +vt 0.670082 0.345113 +vt 0.670506 0.345115 +vt 0.670670 0.345116 +vt 0.652372 0.337694 +vt 0.670348 0.344219 +vt 0.655279 0.337793 +vt 0.656863 0.337685 +vt 0.655843 0.337686 +vt 0.655843 0.337793 +vt 0.655755 0.344598 +vt 0.655754 0.345574 +vt 0.657189 0.345576 +vt 0.653587 0.337690 +vt 0.653932 0.337689 +vt 0.653928 0.336621 +vt 0.654151 0.337688 +vt 0.654496 0.337687 +vt 0.654493 0.336620 +vt 0.671872 0.322170 +vt 0.672090 0.322169 +vt 0.672085 0.321027 +vt 0.652049 0.345739 +vt 0.651029 0.345736 +vt 0.662560 0.338873 +vt 0.666774 0.345670 +vt 0.668969 0.346078 +vt 0.666773 0.347043 +vt 0.668969 0.347044 +vt 0.411093 0.495895 +vt 0.423965 0.496042 +vt 0.646451 0.344107 +vt 0.661762 0.348101 +vt 0.671788 0.332239 +vt 0.672006 0.332240 +vt 0.672007 0.331098 +vt 0.670079 0.345801 +vt 0.669784 0.345800 +vt 0.669787 0.345111 +vt 0.670116 0.344218 +vt 0.671051 0.347585 +vt 0.671270 0.347586 +vt 0.671275 0.346444 +vt 0.654713 0.336619 +vt 0.654715 0.337686 +vt 0.655060 0.337686 +vt 0.655624 0.337793 +vt 0.653933 0.337796 +vt 0.653587 0.337797 +vt 0.653369 0.337798 +vt 0.654151 0.337795 +vt 0.655060 0.337793 +vt 0.654715 0.337794 +vt 0.656181 0.344310 +vt 0.655958 0.344139 +vt 0.655911 0.344201 +vt 0.652635 0.338964 +vt 0.652378 0.339418 +vt 0.652971 0.339073 +vt 0.655170 0.347691 +vt 0.655169 0.347353 +vt 0.653593 0.339306 +vt 0.653939 0.339305 +vt 0.653375 0.339415 +vt 0.653374 0.339307 +vt 0.655631 0.339404 +vt 0.655286 0.339406 +vt 0.655287 0.339550 +vt 0.655701 0.347689 +vt 0.668970 0.345671 +vt 0.668970 0.345465 +vt 0.652634 0.338732 +vt 0.403381 0.492993 +vt 0.410153 0.492980 +vt 0.671176 0.338233 +vt 0.671253 0.338233 +vt 0.671248 0.337030 +vt 0.645543 0.340191 +vt 0.650254 0.339752 +vt 0.650742 0.339545 +vt 0.405500 0.512252 +vt 0.405526 0.518299 +vt 0.655068 0.339554 +vt 0.655068 0.339408 +vt 0.645344 0.340210 +vt 0.645329 0.340050 +vt 0.645528 0.340032 +vt 0.653939 0.339413 +vt 0.669362 0.344758 +vt 0.669202 0.344621 +vt 0.654722 0.339302 +vt 0.669200 0.345108 +vt 0.653593 0.339414 +vt 0.653597 0.340482 +vt 0.653943 0.340480 +vt 0.654158 0.339412 +vt 0.654162 0.340479 +vt 0.654508 0.340478 +vt 0.654157 0.339304 +vt 0.654504 0.339410 +vt 0.654503 0.339303 +vt 0.666774 0.345464 +vt 0.668970 0.344705 +vt 0.672090 0.324906 +vt 0.672089 0.323764 +vt 0.671870 0.323765 +vt 0.659341 0.339758 +vt 0.659342 0.339807 +vt 0.644946 0.340247 +vt 0.656755 0.343970 +vt 0.656537 0.343971 +vt 0.656538 0.344190 +vt 0.652042 0.344901 +vt 0.645109 0.340001 +vt 0.665779 0.341683 +vt 0.665706 0.341738 +vt 0.661666 0.343279 +vt 0.661676 0.343481 +vt 0.661774 0.343476 +vt 0.653725 0.344114 +vt 0.653832 0.344119 +vt 0.653822 0.344318 +vt 0.654014 0.344308 +vt 0.654333 0.346558 +vt 0.655311 0.344043 +vt 0.655447 0.346648 +vt 0.661438 0.342326 +vt 0.661436 0.342143 +vt 0.657096 0.342143 +vt 0.661436 0.342509 +vt 0.657096 0.342326 +vt 0.661430 0.342692 +vt 0.657096 0.342509 +vt 0.661427 0.342875 +vt 0.657096 0.342692 +vt 0.666250 0.348901 +vt 0.666250 0.348816 +vt 0.657096 0.342875 +vt 0.657096 0.343058 +vt 0.661427 0.343058 +vt 0.657096 0.343240 +vt 0.661427 0.343240 +vt 0.666203 0.348900 +vt 0.666204 0.348816 +vt 0.665882 0.348899 +vt 0.665883 0.348814 +vt 0.661427 0.343423 +vt 0.657096 0.343423 +vt 0.657096 0.343606 +vt 0.661427 0.343606 +vt 0.657096 0.343789 +vt 0.661427 0.343789 +vt 0.657096 0.343972 +vt 0.661427 0.343972 +vt 0.657096 0.344155 +vt 0.661427 0.344155 +vt 0.657096 0.344338 +vt 0.661427 0.344338 +vt 0.657096 0.341411 +vt 0.657096 0.341594 +vt 0.661427 0.341594 +vt 0.657096 0.341777 +vt 0.661430 0.341777 +vt 0.649012 0.349171 +vt 0.649012 0.349086 +vt 0.648961 0.349086 +vt 0.661433 0.341960 +vt 0.657096 0.341960 +vt 0.649208 0.349086 +vt 0.649714 0.349170 +vt 0.649518 0.349086 +vt 0.649435 0.348914 +vt 0.649290 0.348914 +vt 0.649435 0.348644 +vt 0.649290 0.348644 +vt 0.667918 0.348211 +vt 0.667216 0.348214 +vt 0.667216 0.348127 +vt 0.667101 0.348214 +vt 0.667100 0.348123 +vt 0.646282 0.348623 +vt 0.646158 0.348622 +vt 0.646157 0.348929 +vt 0.656458 0.342453 +vt 0.656457 0.342704 +vt 0.656541 0.342453 +vt 0.656833 0.342705 +vt 0.656833 0.342454 +vt 0.656832 0.342788 +vt 0.655958 0.342785 +vt 0.655957 0.342962 +vt 0.656832 0.342965 +vt 0.656041 0.343742 +vt 0.656743 0.343745 +vt 0.656829 0.343669 +vt 0.655955 0.343666 +vt 0.653267 0.346719 +vt 0.670795 0.338787 +vt 0.670736 0.338975 +vt 0.671068 0.338839 +vt 0.671350 0.338788 +vt 0.671399 0.338977 +vt 0.671573 0.339023 +vt 0.670633 0.339486 +vt 0.670735 0.339638 +vt 0.670887 0.339740 +vt 0.671500 0.339129 +vt 0.671247 0.338875 +vt 0.670888 0.338874 +vt 0.670634 0.339127 +vt 0.671253 0.337451 +vt 0.671248 0.337030 +vt 0.671250 0.337251 +vt 0.671469 0.337246 +vt 0.656541 0.342427 +vt 0.656458 0.342426 +vt 0.671274 0.336420 +vt 0.671548 0.336419 +vt 0.671547 0.336174 +vt 0.671548 0.336570 +vt 0.666952 0.348820 +vt 0.666952 0.348904 +vt 0.666998 0.348905 +vt 0.667319 0.348906 +vt 0.666998 0.348820 +vt 0.649765 0.349170 +vt 0.649765 0.349086 +vt 0.649714 0.349086 +vt 0.656334 0.342703 +vt 0.655958 0.342702 +vt 0.667918 0.348124 +vt 0.656252 0.342426 +vt 0.656251 0.342452 +vt 0.656334 0.342453 +vt 0.654496 0.337794 +vt 0.651009 0.348764 +vt 0.651082 0.348764 +vt 0.651103 0.348667 +vt 0.651150 0.348791 +vt 0.651206 0.348710 +vt 0.651013 0.349131 +vt 0.650945 0.349104 +vt 0.650889 0.349185 +vt 0.651202 0.348842 +vt 0.651285 0.348789 +vt 0.651231 0.348909 +vt 0.651328 0.348892 +vt 0.651086 0.349131 +vt 0.650992 0.349228 +vt 0.651231 0.348982 +vt 0.651328 0.349003 +vt 0.651204 0.349050 +vt 0.651285 0.349106 +vt 0.651153 0.349102 +vt 0.651103 0.349228 +vt 0.651206 0.349185 +vt 0.650864 0.348986 +vt 0.650864 0.348913 +vt 0.650767 0.348892 +vt 0.650891 0.348845 +vt 0.650942 0.348793 +vt 0.650889 0.348710 +vt 0.650893 0.349053 +vt 0.650767 0.349003 +vt 0.650810 0.349106 +vt 0.650992 0.348667 +vt 0.650810 0.348789 +vt 0.663495 0.328582 +vt 0.663495 0.328711 +vt 0.663575 0.328712 +vt 0.663666 0.328712 +vt 0.663667 0.328583 +vt 0.663575 0.328583 +vt 0.663746 0.328583 +vt 0.663746 0.328713 +vt 0.665496 0.328721 +vt 0.661745 0.328574 +vt 0.661745 0.328703 +vt 0.656871 0.339542 +vt 0.669475 0.348061 +vt 0.671788 0.330872 +vt 0.671254 0.337557 +vt 0.671252 0.337354 +vt 0.671545 0.335784 +vt 0.671787 0.333607 +vt 0.424233 0.477149 +vt 0.655624 0.336619 +vt 0.662967 0.338908 +vt 0.652336 0.348753 +vt 0.656433 0.348111 +vt 0.671870 0.322396 +vt 0.657191 0.344600 +vt 0.653583 0.336623 +vt 0.654148 0.336621 +vt 0.671867 0.321028 +vt 0.671789 0.331098 +vt 0.671056 0.346443 +vt 0.655059 0.336619 +vt 0.656134 0.344371 +vt 0.655632 0.339548 +vt 0.655699 0.347352 +vt 0.659343 0.339981 +vt 0.671171 0.337105 +vt 0.424469 0.518218 +vt 0.666774 0.344703 +vt 0.671872 0.324906 +vt 0.656756 0.344189 +vt 0.665748 0.341793 +vt 0.661765 0.343274 +vt 0.653715 0.344312 +vt 0.659330 0.338958 +vt 0.661427 0.341411 +vt 0.648961 0.349171 +vt 0.646280 0.348929 +vt 0.671466 0.337028 +vt 0.671386 0.336174 +vt 0.671158 0.336572 +vt 0.667319 0.348822 +vt 0.656334 0.342426 +vt 0.655959 0.342451 +vt 0.665496 0.328592 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 1.0000 -0.0001 +vn -1.0000 0.0000 0.0005 +vn -1.0000 0.0000 0.0002 +vn 0.0000 -0.7793 -0.6266 +vn 0.0000 -1.0000 0.0000 +vn 1.0000 0.0001 -0.0001 +vn 1.0000 -0.0005 -0.0001 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.2954 -0.9554 +vn 1.0000 0.0000 -0.0001 +vn -1.0000 0.0000 -0.0001 +vn 0.0000 -1.0000 -0.0001 +vn -1.0000 0.0001 -0.0001 +vn 0.0000 0.3579 0.9338 +vn 0.0000 0.3242 -0.9460 +vn 0.0000 -0.9724 -0.2331 +vn 0.0000 0.6488 0.7610 +vn -0.0000 0.6112 0.7915 +vn -0.0000 0.3594 0.9332 +vn -0.0000 0.3979 0.9174 +vn 0.3944 -0.9189 0.0000 +vn -0.2584 -0.9660 0.0000 +vn -0.0544 0.0347 -0.9979 +vn -0.9202 0.3915 0.0000 +vn -0.9202 0.3914 0.0000 +vn -1.0000 -0.0000 -0.0023 +vn -1.0000 -0.0001 -0.0070 +vn -0.7948 0.6069 -0.0000 +vn -0.8837 0.4681 0.0000 +vn -0.9815 0.1914 -0.0000 +vn 0.9202 0.3914 0.0000 +vn 0.7785 0.6277 -0.0000 +vn 0.8716 -0.4902 0.0001 +vn 0.9946 0.0000 0.1036 +vn 0.9501 0.3120 -0.0000 +vn 0.9922 0.0000 0.1244 +vn 0.0000 -0.9849 0.1730 +vn -0.0000 -0.8848 0.4659 +vn -0.0000 -0.5054 0.8629 +vn 0.0001 -0.2527 0.9675 +vn 0.0000 -0.3827 0.9239 +vn -0.0001 0.5055 0.8628 +vn -0.0151 0.3827 0.9237 +vn -0.0075 0.3820 0.9241 +vn -0.0098 -0.0134 -0.9999 +vn -0.0135 0.0030 -0.9999 +vn -0.0078 -0.0088 -0.9999 +vn -0.9112 -0.0000 0.4119 +vn 0.9588 0.2841 -0.0000 +vn 0.8386 0.5448 0.0000 +vn -0.8061 -0.3082 -0.5053 +vn -0.8143 -0.5805 -0.0013 +vn -0.5167 -0.8561 0.0000 +vn 0.6939 0.7201 -0.0000 +vn 0.4341 0.8971 0.0825 +vn 0.9006 0.4347 0.0001 +vn -0.6892 0.1308 -0.7126 +vn -0.9536 0.0970 -0.2850 +vn -0.9956 0.0942 -0.0000 +vn -0.8233 -0.5676 0.0006 +vn -0.9600 -0.2555 -0.1143 +vn -0.3908 -0.9205 0.0012 +vn -0.9277 -0.3732 0.0009 +vn -0.8233 -0.5676 0.0008 +vn 0.8835 0.4684 0.0000 +vn -0.9987 0.0005 0.0512 +vn -1.0000 0.0021 0.0000 +vn -0.9198 0.3923 -0.0002 +vn -0.8535 0.5212 0.0001 +vn 0.1239 0.9740 0.1894 +vn 0.4932 0.8699 -0.0000 +vn -0.0000 0.9039 -0.4278 +vn 0.0000 0.8020 -0.5974 +vn -0.2691 0.9151 -0.3004 +vn -0.1559 0.0685 -0.9854 +vn 0.0000 0.2196 -0.9756 +vn 0.0000 0.2883 -0.9575 +vn -0.8561 0.5167 0.0000 +vn -0.2979 0.9546 0.0000 +vn -0.2469 0.9690 0.0000 +vn 0.0544 0.9985 0.0027 +vn 0.3979 0.9174 0.0029 +vn 0.1126 0.9936 0.0000 +vn 0.4235 0.9059 0.0029 +vn 0.9695 -0.2451 0.0000 +vn 0.8716 -0.4902 0.0000 +vn 0.4233 0.9060 0.0029 +vn 0.6497 0.7602 -0.0000 +vn -0.8837 0.4680 0.0000 +vn -0.6017 0.7987 -0.0000 +vn -0.8561 0.5168 0.0000 +vn -0.6934 0.7206 0.0000 +vn -0.8186 0.5743 0.0000 +vn 0.2692 0.9150 -0.3004 +vn 0.1831 0.9831 -0.0000 +vn 0.5496 0.8354 0.0000 +vn -0.2622 0.9451 0.1950 +vn -0.4802 0.8651 0.1452 +vn 0.3027 0.9480 -0.0986 +vn -0.3083 0.9299 -0.2006 +vn -0.2470 0.9690 0.0000 +vn 0.3052 0.9313 -0.1990 +vn -0.3051 0.9470 -0.1000 +vn 0.9878 0.0000 0.1556 +vn 0.4972 -0.8676 0.0000 +vn 0.9665 -0.2568 0.0000 +vn 0.8580 -0.5136 0.0000 +vn 0.0000 0.9980 0.0635 +vn 0.0000 0.9919 0.1269 +vn 0.8837 0.4681 0.0000 +vn 0.0000 0.6730 0.7397 +vn 0.0000 0.6239 0.7815 +vn 0.0000 0.8374 0.5466 +vn 0.0000 0.9284 0.3717 +vn 0.0000 0.1989 0.9800 +vn 0.0033 0.6337 -0.7736 +vn 0.0022 0.6323 -0.7747 +vn -0.0001 0.7210 -0.6930 +vn -0.0000 0.6324 -0.7747 +vn -0.2468 0.9691 0.0000 +vn 0.0000 0.6332 -0.7740 +vn -0.0001 0.4392 -0.8984 +vn 0.0028 0.4406 -0.8977 +vn 0.8561 0.5169 -0.0001 +vn 0.2691 0.9151 -0.3004 +vn 0.7948 0.6069 -0.0000 +vn 0.8561 0.5168 0.0000 +vn 0.9660 0.2584 0.0000 +vn 0.8561 0.5168 -0.0002 +vn 0.8561 0.5168 -0.0001 +vn -0.3763 -0.9265 0.0000 +vn 0.2486 -0.9686 0.0000 +vn 0.3737 0.9275 -0.0000 +vn -0.0001 0.2196 -0.9756 +vn 0.8837 0.4680 0.0000 +vn 0.7785 0.6276 -0.0000 +vn 0.9202 0.3915 0.0000 +vn 0.0000 -0.7520 0.6592 +vn -0.8561 0.5169 -0.0001 +vn -0.6262 0.7797 -0.0000 +vn -0.9883 0.0000 0.1528 +vn -0.9881 0.0006 0.1536 +vn -0.8580 -0.5136 -0.0000 +vn -0.0139 -0.0016 0.9999 +vn 0.0000 -0.0032 1.0000 +vn -0.9881 0.0014 0.1536 +vn 0.0000 0.9284 0.3716 +vn -0.0000 0.8374 0.5465 +vn -0.0022 0.6324 -0.7746 +vn -0.0027 0.6339 -0.7734 +vn -0.0015 0.4406 -0.8977 +vn -0.9660 0.2584 -0.0000 +vn -0.9665 -0.2568 -0.0000 +vn -0.3839 0.9234 0.0000 +vn -0.6994 0.7147 0.0000 +vn 0.0000 0.5725 0.8199 +vn 0.0000 0.5724 0.8200 +vn 0.0000 0.2878 -0.9577 +vn 0.0000 0.5513 -0.8343 +vn -0.3908 -0.9205 0.0007 +vn -0.3902 -0.9207 0.0000 +vn -0.9601 -0.2554 -0.1143 +vn -0.9472 -0.3207 0.0000 +vn -0.9978 0.0661 -0.0000 +vn -0.9978 -0.0662 0.0000 +vn -0.7523 -0.6588 -0.0000 +vn -0.8965 -0.4430 -0.0000 +vn -0.4430 -0.8965 0.0000 +vn -0.6588 -0.7523 0.0000 +vn -0.0661 -0.9978 0.0000 +vn -0.3207 -0.9472 0.0000 +vn 0.1802 -0.0001 0.9836 +vn 0.4855 -0.0001 0.8742 +vn 0.0662 -0.9978 0.0000 +vn 0.3827 -0.9239 0.0000 +vn 0.3828 -0.9238 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.8510 -0.0001 0.5252 +vn 0.9649 0.0000 0.2626 +vn 0.9715 0.0000 -0.2369 +vn 0.8806 -0.0000 -0.4739 +vn 0.8965 -0.4430 -0.0000 +vn 0.9472 -0.3207 0.0000 +vn 0.9978 0.0662 -0.0000 +vn 0.9978 -0.0662 0.0000 +vn 0.8965 0.4430 -0.0000 +vn 0.9472 0.3207 0.0000 +vn 0.6588 0.7523 0.0000 +vn 0.7523 0.6588 0.0001 +vn 0.3207 0.9472 0.0000 +vn 0.4430 0.8965 0.0000 +vn -0.0662 0.9978 0.0000 +vn 0.0661 0.9978 0.0000 +vn -0.0661 0.9978 0.0000 +vn -0.3827 0.9239 0.0000 +vn -0.3829 0.9238 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.4068 0.0000 -0.9135 +vn -0.8965 0.4430 0.0000 +vn -0.9472 0.3207 0.0000 +vn 0.0000 0.2895 -0.9572 +vn -0.3241 -0.0000 -0.9460 +vn -0.0000 0.2399 -0.9708 +vn 0.0000 0.5962 -0.8028 +vn -0.0000 0.5087 -0.8609 +vn 0.0000 0.4166 -0.9091 +vn -0.2336 0.0000 0.9723 +vn 0.3531 0.0000 0.9356 +vn 0.9112 -0.0000 0.4119 +vn 0.0000 0.8520 0.5235 +vn -0.0003 0.7892 0.6142 +vn 0.0000 0.1917 0.9814 +vn -0.0000 0.7892 0.6142 +vn 0.0000 0.4287 0.9035 +vn 0.0000 0.6411 0.7674 +vn 0.0000 0.5534 0.8329 +vn 0.0000 0.8920 0.4521 +vn 0.0000 0.8459 0.5334 +vn 0.0000 0.9771 0.2126 +vn 0.0000 0.9896 0.1439 +vn 0.0000 0.9979 0.0648 +vn 0.0000 0.9977 0.0682 +vn 0.0000 0.9974 0.0716 +vn 0.9695 -0.2451 -0.0001 +vn -0.0111 0.0273 -0.9996 +vn -0.0194 0.0258 -0.9995 +vn -0.0030 0.0101 -0.9999 +vn 0.0000 0.0008 -1.0000 +vn -0.0005 0.0005 -1.0000 +vn -0.0009 -0.0000 -1.0000 +vn -0.0148 -0.0140 -0.9998 +vn -0.0127 -0.0131 -0.9998 +vn -0.0055 -0.0061 -1.0000 +vn -0.0004 -0.0004 -1.0000 +vn 0.0004 0.0004 -1.0000 +vn -0.0138 0.0348 -0.9993 +vn -0.0152 -0.0072 -0.9999 +vn 0.0000 0.2527 0.9675 +vn -0.9588 0.2841 -0.0000 +vn -0.8386 0.5448 0.0000 +vn -0.4855 0.0000 0.8742 +vn -0.2428 0.0000 0.9701 +vn -0.8510 0.0000 0.5252 +vn -0.9715 0.0001 -0.2369 +vn -0.9649 0.0000 0.2626 +vn -0.9715 0.0000 -0.2370 +vn -0.8806 -0.0000 -0.4739 +vn -0.4068 0.0000 -0.9135 +vn 0.0000 0.8521 0.5234 +vn -0.4670 -0.0000 0.8842 +vn -0.6588 0.7523 0.0000 +vn -0.7523 0.6588 0.0000 +vn -0.3207 0.9472 0.0000 +vn -0.4430 0.8965 0.0000 +vn 0.6588 -0.7523 0.0000 +vn 0.3207 -0.9472 0.0000 +vn 0.4430 -0.8965 0.0000 +vn 0.7523 -0.6588 0.0000 +vn 0.7523 0.6588 0.0000 +vn 0.9978 -0.0661 0.0000 +vn 0.9978 0.0661 0.0000 +vn -0.9978 -0.0661 0.0000 +vn 0.0661 -0.9978 0.0000 +vn -0.0001 -0.8629 -0.5054 +vn -0.0000 -0.9675 -0.2527 +vn -0.0001 -0.5054 -0.8629 +vn -0.0000 0.2527 -0.9675 +vn 0.0000 0.5054 -0.8629 +vn 0.0000 -0.2527 -0.9675 +vn 0.0000 0.9675 -0.2527 +vn 0.0001 0.8629 -0.5054 +vn -1.0000 0.0000 -0.0068 +vn -1.0000 0.0000 -0.0028 +vn 0.0000 -0.3821 0.9241 +vn 0.3738 0.9275 -0.0000 +vn 0.0001 0.7210 -0.6930 +vn 0.7948 0.6069 -0.0002 +vn -0.6262 0.7797 -0.0001 +vn 0.0000 -0.9849 0.1731 +vn -0.9987 0.0000 0.0512 +vn -1.0000 0.0026 0.0000 +vn 0.0662 0.9978 -0.0000 +vn 0.9715 0.0000 -0.2370 +s off +f 61/61/19 62/62/19 63/63/19 +f 64/64/20 65/65/20 66/66/20 +f 67/67/21 68/68/21 69/69/21 +f 70/70/21 71/71/21 72/72/21 +f 73/73/22 74/74/22 75/75/22 +f 67/67/23 76/76/24 77/77/23 +f 78/78/25 79/79/25 80/80/25 +f 81/81/26 82/82/26 83/83/26 +f 84/84/27 85/85/27 86/86/27 +f 81/81/26 83/83/26 87/87/26 +f 88/88/21 89/89/21 90/90/21 +f 91/91/28 92/92/28 93/93/28 +f 94/94/29 95/95/29 96/96/29 +f 96/96/29 97/97/29 94/94/29 +f 98/98/26 81/81/26 99/99/26 +f 100/100/26 101/101/26 98/98/26 +f 71/71/21 102/102/21 103/103/21 +f 104/104/19 105/105/19 106/106/19 +f 107/107/26 108/108/26 109/109/26 +f 110/110/26 111/111/26 112/112/26 +f 100/100/26 98/98/26 99/99/26 +f 113/113/19 114/114/19 115/115/19 +f 115/115/19 116/116/19 113/113/19 +f 117/117/26 118/118/26 119/119/26 +f 120/120/21 121/121/21 122/122/21 +f 105/105/19 123/123/19 106/106/19 +f 124/124/29 125/125/29 126/126/29 +f 111/111/26 87/87/26 112/112/26 +f 83/83/26 112/112/26 87/87/26 +f 98/98/26 127/127/26 81/81/26 +f 112/112/26 128/128/26 110/110/26 +f 129/129/29 130/130/29 131/131/29 +f 132/132/19 106/106/19 123/123/19 +f 133/133/19 134/134/19 135/135/19 +f 136/136/29 137/137/29 138/138/29 +f 139/139/30 140/140/30 141/141/30 +f 142/142/30 143/143/30 140/140/30 +f 112/112/26 109/109/26 108/108/26 +f 144/144/26 145/145/26 128/128/26 +f 146/146/26 147/147/26 145/145/26 +f 148/148/21 149/149/21 150/150/21 +f 151/151/20 152/152/20 153/153/20 +f 154/154/20 155/155/20 156/156/20 +f 157/157/20 158/158/20 159/159/20 +f 160/160/26 161/161/26 162/162/26 +f 163/163/26 164/164/26 165/165/26 +f 166/166/20 167/167/20 168/168/20 +f 169/169/20 168/168/20 170/170/20 +f 171/171/20 172/172/20 173/173/20 +f 174/174/26 175/175/26 119/119/26 +f 176/176/26 177/177/26 178/178/26 +f 179/179/26 180/180/26 145/145/26 +f 181/181/20 182/182/20 183/183/20 +f 184/184/31 185/185/31 186/186/31 +f 187/187/29 188/188/29 189/189/29 +f 147/147/26 146/146/26 190/190/26 +f 191/191/32 192/192/32 193/193/32 +f 194/194/20 195/195/20 196/196/20 +f 197/197/29 198/198/29 199/199/29 +f 200/200/27 201/201/27 191/191/27 +f 202/202/33 203/203/33 204/204/33 +f 205/205/21 206/206/21 207/207/21 +f 208/208/20 209/209/20 210/210/20 +f 211/211/20 212/212/20 213/213/20 +f 214/214/29 215/215/29 216/216/29 +f 101/101/26 217/217/26 98/98/26 +f 218/218/34 219/219/34 220/220/34 +f 221/221/34 222/222/34 223/223/34 +f 224/224/20 225/225/20 226/226/20 +f 227/227/20 228/228/20 229/229/20 +f 230/230/29 231/231/29 232/232/29 +f 229/229/20 213/213/20 227/227/20 +f 233/233/35 234/234/35 235/235/35 +f 236/236/33 237/237/33 238/238/33 +f 239/239/20 240/240/20 241/241/20 +f 242/242/33 235/235/33 234/234/33 +f 243/243/22 244/244/22 245/245/22 +f 246/246/36 247/247/36 248/248/36 +f 249/249/29 250/250/29 251/251/29 +f 252/252/19 253/253/19 123/123/19 +f 254/254/37 255/255/37 256/256/37 +f 101/101/26 257/257/26 217/217/26 +f 178/178/26 258/258/26 119/119/26 +f 145/145/26 147/147/26 119/119/26 +f 144/144/26 259/259/26 260/260/26 +f 261/261/26 174/174/26 119/119/26 +f 119/119/26 262/262/26 263/263/26 +f 264/264/26 262/262/26 119/119/26 +f 264/264/26 258/258/26 265/265/26 +f 266/266/20 267/267/20 268/268/20 +f 173/173/20 266/266/20 269/269/20 +f 270/270/20 167/167/20 166/166/20 +f 259/259/26 271/271/26 260/260/26 +f 272/272/26 273/273/26 274/274/26 +f 275/275/26 259/259/26 144/144/26 +f 276/276/20 277/277/20 278/278/20 +f 279/279/20 280/280/20 281/281/20 +f 282/282/29 283/283/29 284/284/29 +f 285/285/29 286/286/29 287/287/29 +f 288/288/21 289/289/21 290/290/21 +f 291/291/33 292/292/33 293/293/33 +f 294/294/20 295/295/20 296/296/20 +f 297/297/20 298/298/20 299/299/20 +f 107/107/26 82/82/26 161/161/26 +f 300/300/35 292/292/35 291/291/35 +f 301/301/19 302/302/19 303/303/19 +f 304/304/19 305/305/19 306/306/19 +f 307/307/20 308/308/20 309/309/20 +f 127/127/26 161/161/26 82/82/26 +f 310/310/20 311/311/20 312/312/20 +f 313/313/29 314/314/29 315/315/29 +f 162/162/26 161/161/26 127/127/26 +f 316/316/34 317/317/34 318/318/34 +f 319/319/34 320/320/34 321/321/34 +f 322/322/20 323/323/20 324/324/20 +f 325/325/20 326/326/20 311/311/20 +f 327/327/29 328/328/29 329/329/29 +f 312/312/20 311/311/20 326/326/20 +f 330/330/19 331/331/19 332/332/19 +f 333/333/32 334/334/32 335/335/32 +f 260/260/26 336/336/26 274/274/26 +f 337/337/26 260/260/26 273/273/26 +f 338/338/20 339/339/20 340/340/20 +f 341/341/19 342/342/19 330/330/19 +f 343/343/22 344/344/22 345/345/22 +f 346/346/26 337/337/26 347/347/26 +f 348/348/26 349/349/26 260/260/26 +f 350/350/29 351/351/29 352/352/29 +f 353/353/26 260/260/26 349/349/26 +f 354/354/21 355/355/21 356/356/21 +f 163/163/26 336/336/26 260/260/26 +f 357/357/29 358/358/29 359/359/29 +f 95/95/29 360/360/29 358/358/29 +f 95/95/29 94/94/29 360/360/29 +f 361/361/19 362/362/19 363/363/19 +f 364/364/21 365/365/21 366/366/21 +f 367/367/29 368/368/29 369/369/29 +f 370/370/29 371/371/29 372/372/29 +f 373/373/29 374/374/29 372/372/29 +f 151/151/20 153/153/20 375/375/20 +f 376/376/19 377/377/19 378/378/19 +f 358/358/29 379/379/29 359/359/29 +f 380/380/30 381/381/30 382/382/30 +f 383/383/29 384/384/29 385/385/29 +f 386/386/29 387/387/29 388/388/29 +f 389/389/20 390/390/20 391/391/20 +f 392/392/30 393/393/30 394/394/30 +f 395/395/21 396/396/21 397/397/21 +f 398/398/30 399/399/30 400/400/30 +f 400/400/30 401/401/30 398/398/30 +f 402/402/19 403/403/19 404/404/19 +f 405/405/19 406/406/19 407/407/19 +f 408/408/30 409/409/30 410/410/30 +f 378/378/19 134/134/19 133/133/19 +f 109/109/26 82/82/26 107/107/26 +f 411/411/20 412/412/20 413/413/20 +f 414/414/20 411/411/20 413/413/20 +f 415/415/20 414/414/20 413/413/20 +f 376/376/19 378/378/19 133/133/19 +f 412/412/20 416/416/20 413/413/20 +f 417/417/29 418/418/29 419/419/29 +f 419/419/29 418/418/29 420/420/29 +f 421/421/29 422/422/29 423/423/29 +f 424/424/29 425/425/29 421/421/29 +f 131/131/29 425/425/29 426/426/29 +f 427/427/29 428/428/29 130/130/29 +f 429/429/29 430/430/29 428/428/29 +f 431/431/29 420/420/29 430/430/29 +f 432/432/29 429/429/29 428/428/29 +f 427/427/29 432/432/29 428/428/29 +f 129/129/29 433/433/29 130/130/29 +f 434/434/29 426/426/29 425/425/29 +f 424/424/29 434/434/29 425/425/29 +f 435/435/29 424/424/29 421/421/29 +f 436/436/29 423/423/29 422/422/29 +f 437/437/29 436/436/29 422/422/29 +f 437/437/29 422/422/29 420/420/29 +f 431/431/29 438/438/29 420/420/29 +f 429/429/29 439/439/29 430/430/29 +f 440/440/29 417/417/29 419/419/29 +f 422/422/29 419/419/29 420/420/29 +f 435/435/29 421/421/29 423/423/29 +f 441/441/29 131/131/29 426/426/29 +f 433/433/29 427/427/29 130/130/29 +f 439/439/29 431/431/29 430/430/29 +f 438/438/29 437/437/29 420/420/29 +f 441/441/29 129/129/29 131/131/29 +f 442/442/19 443/443/19 444/444/19 +f 127/127/26 82/82/26 81/81/26 +f 445/445/20 446/446/20 447/447/20 +f 448/448/38 449/449/38 450/450/38 +f 451/451/26 452/452/26 453/453/26 +f 454/454/26 455/455/26 456/456/26 +f 457/457/30 458/458/30 459/459/30 +f 460/460/21 69/69/21 68/68/21 +f 388/388/29 461/461/29 367/367/29 +f 383/383/29 385/385/29 388/388/29 +f 462/462/20 463/463/20 464/464/20 +f 462/462/20 465/465/20 466/466/20 +f 467/467/26 468/468/26 469/469/26 +f 470/470/21 471/471/21 395/395/21 +f 472/472/30 473/473/30 474/474/30 +f 475/475/30 472/472/30 476/476/30 +f 66/66/20 65/65/20 477/477/20 +f 478/478/21 479/479/21 480/480/21 +f 465/465/20 481/481/20 482/482/20 +f 483/483/19 484/484/19 485/485/19 +f 486/486/21 487/487/21 488/488/21 +f 489/489/30 490/490/30 491/491/30 +f 492/492/19 485/485/19 484/484/19 +f 493/493/30 494/494/30 495/495/30 +f 496/496/30 495/495/30 494/494/30 +f 497/497/19 498/498/19 499/499/19 +f 497/497/19 63/63/19 498/498/19 +f 66/66/20 390/390/20 500/500/20 +f 390/390/20 389/389/20 500/500/20 +f 501/501/29 138/138/29 502/502/29 +f 503/503/21 504/504/21 505/505/21 +f 506/506/21 505/505/21 504/504/21 +f 507/507/21 506/506/21 504/504/21 +f 64/64/20 66/66/20 500/500/20 +f 508/508/29 501/501/29 502/502/29 +f 509/509/21 503/503/21 505/505/21 +f 497/497/19 61/61/19 63/63/19 +f 501/501/29 136/136/29 138/138/29 +f 510/510/29 511/511/29 512/512/29 +f 513/513/29 511/511/29 514/514/29 +f 512/512/29 511/511/29 515/515/29 +f 515/515/29 511/511/29 516/516/29 +f 517/517/29 511/511/29 513/513/29 +f 516/516/29 511/511/29 518/518/29 +f 518/518/29 511/511/29 519/519/29 +f 520/520/29 511/511/29 517/517/29 +f 519/519/29 511/511/29 521/521/29 +f 521/521/29 511/511/29 522/522/29 +f 522/522/29 511/511/29 520/520/29 +f 523/523/29 511/511/29 510/510/29 +f 514/514/29 511/511/29 524/524/29 +f 525/525/29 511/511/29 523/523/29 +f 524/524/29 511/511/29 526/526/29 +f 526/526/29 511/511/29 525/525/29 +f 527/527/21 528/528/21 529/529/21 +f 530/530/21 531/531/21 529/529/21 +f 532/532/29 533/533/29 534/534/29 +f 76/76/21 67/67/21 69/69/21 +f 535/535/21 70/70/21 72/72/21 +f 536/536/22 73/73/22 75/75/22 +f 537/537/23 67/67/23 77/77/23 +f 538/538/25 78/78/25 80/80/25 +f 539/539/21 88/88/21 90/90/21 +f 90/90/21 540/540/21 539/539/21 +f 72/72/21 71/71/21 103/103/21 +f 541/541/29 124/124/29 126/126/29 +f 253/253/19 132/132/19 123/123/19 +f 542/542/30 139/139/30 141/141/30 +f 139/139/30 142/142/30 140/140/30 +f 128/128/26 112/112/26 108/108/26 +f 108/108/26 144/144/26 128/128/26 +f 144/144/26 146/146/26 145/145/26 +f 159/159/20 154/154/20 156/156/20 +f 156/156/20 157/157/20 159/159/20 +f 336/336/26 163/163/26 165/165/26 +f 169/169/20 166/166/20 168/168/20 +f 543/543/20 169/169/20 170/170/20 +f 544/544/20 171/171/20 173/173/20 +f 118/118/26 176/176/26 178/178/26 +f 175/175/26 179/179/26 145/145/26 +f 545/545/20 181/181/20 183/183/20 +f 546/546/31 184/184/31 186/186/31 +f 547/547/29 187/187/29 189/189/29 +f 548/548/26 147/147/26 190/190/26 +f 200/200/32 191/191/32 193/193/32 +f 549/549/20 194/194/20 196/196/20 +f 550/550/29 197/197/29 199/199/29 +f 551/551/33 202/202/33 204/204/33 +f 552/552/21 205/205/21 207/207/21 +f 553/553/20 208/208/20 210/210/20 +f 229/229/20 211/211/20 213/213/20 +f 554/554/29 214/214/29 216/216/29 +f 555/555/34 218/218/34 220/220/34 +f 556/556/34 221/221/34 223/223/34 +f 557/557/20 224/224/20 226/226/20 +f 558/558/29 230/230/29 232/232/29 +f 559/559/33 236/236/33 238/238/33 +f 560/560/20 239/239/20 241/241/20 +f 561/561/33 242/242/33 234/234/33 +f 562/562/22 243/243/22 245/245/22 +f 563/563/36 246/246/36 248/248/36 +f 564/564/29 249/249/29 251/251/29 +f 565/565/37 254/254/37 256/256/37 +f 118/118/26 178/178/26 119/119/26 +f 175/175/26 145/145/26 119/119/26 +f 146/146/26 144/144/26 260/260/26 +f 263/263/26 261/261/26 119/119/26 +f 258/258/26 264/264/26 119/119/26 +f 566/566/26 264/264/26 265/265/26 +f 269/269/20 266/266/20 268/268/20 +f 544/544/20 173/173/20 269/269/20 +f 567/567/20 270/270/20 166/166/20 +f 568/568/26 272/272/26 274/274/26 +f 569/569/26 275/275/26 144/144/26 +f 570/570/20 276/276/20 278/278/20 +f 571/571/20 279/279/20 281/281/20 +f 572/572/29 282/282/29 284/284/29 +f 573/573/29 285/285/29 287/287/29 +f 574/574/21 288/288/21 290/290/21 +f 575/575/33 291/291/33 293/293/33 +f 576/576/20 294/294/20 296/296/20 +f 577/577/20 297/297/20 299/299/20 +f 578/578/26 107/107/26 161/161/26 +f 579/579/19 301/301/19 303/303/19 +f 580/580/19 304/304/19 306/306/19 +f 581/581/20 307/307/20 309/309/20 +f 582/582/20 310/310/20 312/312/20 +f 583/583/29 313/313/29 315/315/29 +f 584/584/34 316/316/34 318/318/34 +f 585/585/34 319/319/34 321/321/34 +f 586/586/20 322/322/20 324/324/20 +f 587/587/29 327/327/29 329/329/29 +f 588/588/32 333/333/32 335/335/32 +f 273/273/26 260/260/26 274/274/26 +f 347/347/26 337/337/26 273/273/26 +f 589/589/20 338/338/20 340/340/20 +f 332/332/19 341/341/19 330/330/19 +f 590/590/22 343/343/22 345/345/22 +f 591/591/26 346/346/26 347/347/26 +f 271/271/26 348/348/26 260/260/26 +f 592/592/29 350/350/29 352/352/29 +f 593/593/21 594/594/21 595/595/21 +f 596/596/21 354/354/21 356/356/21 +f 353/353/26 163/163/26 260/260/26 +f 357/357/29 95/95/29 358/358/29 +f 597/597/19 361/361/19 363/363/19 +f 598/598/21 364/364/21 366/366/21 +f 383/383/29 367/367/29 369/369/29 +f 371/371/29 373/373/29 372/372/29 +f 599/599/20 151/151/20 375/375/20 +f 600/600/30 380/380/30 382/382/30 +f 385/385/29 386/386/29 388/388/29 +f 601/601/30 392/392/30 394/394/30 +f 602/602/19 402/402/19 404/404/19 +f 603/603/19 405/405/19 407/407/19 +f 604/604/30 408/408/30 410/410/30 +f 605/605/19 442/442/19 444/444/19 +f 606/606/20 445/445/20 447/447/20 +f 607/607/38 448/448/38 450/450/38 +f 608/608/26 451/451/26 453/453/26 +f 609/609/26 454/454/26 456/456/26 +f 610/610/30 457/457/30 459/459/30 +f 611/611/21 460/460/21 68/68/21 +f 367/367/29 383/383/29 388/388/29 +f 612/612/20 462/462/20 464/464/20 +f 463/463/20 462/462/20 466/466/20 +f 613/613/26 467/467/26 469/469/26 +f 397/397/21 470/470/21 395/395/21 +f 476/476/30 472/472/30 474/474/30 +f 614/614/30 475/475/30 476/476/30 +f 615/615/21 478/478/21 480/480/21 +f 466/466/20 465/465/20 482/482/20 +f 616/616/19 483/483/19 485/485/19 +f 617/617/21 486/486/21 488/488/21 +f 618/618/30 489/489/30 491/491/30 +f 619/619/21 527/527/21 529/529/21 +f 528/528/21 530/530/21 529/529/21 +f 620/620/29 532/532/29 534/534/29 +s 1 +f 621/621/39 622/622/40 623/623/41 +f 623/623/41 624/624/42 360/360/29 +f 625/625/43 626/626/43 627/627/44 +f 628/628/45 153/153/20 152/152/20 +f 629/629/46 630/630/47 631/631/21 +f 632/632/48 633/633/48 634/634/49 +f 635/635/21 636/636/50 637/637/51 +f 540/540/21 638/638/52 539/539/21 +f 639/639/53 640/640/54 92/92/19 +f 641/641/55 626/626/43 625/625/43 +f 642/642/56 643/643/19 644/644/19 +f 116/116/19 115/115/19 645/645/57 +f 645/645/57 646/646/19 116/116/19 +f 644/644/19 104/104/19 647/647/58 +f 104/104/19 106/106/19 647/647/58 +f 118/118/26 117/117/26 648/648/59 +f 649/649/26 650/650/60 648/648/59 +f 642/642/56 644/644/19 647/647/58 +f 651/651/61 652/652/62 653/653/63 +f 654/654/64 655/655/65 656/656/66 +f 657/657/67 658/658/68 659/659/69 +f 660/660/70 661/661/70 507/507/21 +f 662/662/71 663/663/19 664/664/19 +f 665/665/72 666/666/72 662/662/71 +f 667/667/73 668/668/74 669/669/75 +f 670/670/76 671/671/77 672/672/78 +f 673/673/73 674/674/79 675/675/80 +f 676/676/81 677/677/82 678/678/83 +f 679/679/84 680/680/85 681/681/86 +f 672/672/78 682/682/56 683/683/19 +f 684/684/19 685/685/19 686/686/87 +f 683/687/19 684/684/19 686/686/87 +f 687/688/88 688/689/89 689/690/21 +f 690/691/90 691/692/91 688/693/89 +f 687/688/88 689/690/21 148/148/21 +f 692/694/92 693/695/93 694/696/30 +f 695/697/94 696/698/95 697/699/96 +f 628/628/45 698/700/97 673/673/73 +f 699/701/98 312/312/20 326/326/20 +f 375/375/20 700/702/99 599/599/20 +f 701/703/21 702/704/50 703/705/100 +f 704/706/101 705/707/102 706/708/30 +f 707/709/103 708/710/104 704/706/101 +f 707/709/103 709/711/105 710/712/106 +f 711/713/107 712/714/108 377/377/19 +f 686/686/87 713/715/109 670/716/76 +f 714/717/87 715/718/110 708/710/104 +f 716/719/30 706/708/30 705/707/102 +f 717/720/111 718/721/50 719/722/112 +f 720/723/113 721/724/114 719/722/112 +f 704/706/101 719/722/112 721/724/114 +f 722/725/115 720/723/113 719/722/112 +f 723/726/116 724/727/117 725/728/118 +f 726/729/92 727/730/119 728/731/120 +f 729/732/121 730/733/122 731/734/123 +f 732/735/19 733/736/53 734/737/53 +f 735/738/124 736/739/125 730/740/122 +f 647/647/58 737/741/56 738/742/126 +f 739/743/127 740/744/128 741/745/129 +f 723/726/116 742/746/94 743/747/30 +f 672/672/78 686/748/87 670/670/76 +f 672/672/78 671/671/77 744/749/124 +f 745/750/95 746/751/30 747/752/30 +f 748/753/130 749/754/131 750/755/30 +f 672/672/78 751/756/19 752/757/126 +f 753/758/19 754/759/19 755/760/132 +f 756/761/133 757/762/134 758/763/135 +f 759/764/136 758/763/135 749/754/131 +f 760/765/29 761/766/29 762/767/137 +f 763/768/138 764/769/139 765/770/140 +f 766/771/141 696/698/95 765/770/140 +f 767/772/30 768/773/142 724/727/117 +f 766/771/141 769/774/143 770/775/144 +f 771/776/98 764/769/139 772/777/145 +f 764/769/139 769/774/143 765/770/140 +f 773/778/146 645/645/57 115/115/19 +f 765/770/140 774/779/147 763/768/138 +f 743/747/30 724/727/117 723/726/116 +f 734/737/53 733/736/53 775/780/148 +f 776/781/149 777/782/150 778/783/148 +f 779/784/112 780/785/110 781/786/118 +f 782/787/150 783/788/151 784/789/19 +f 764/769/139 763/768/138 772/777/145 +f 785/790/150 786/791/152 787/792/19 +f 788/793/19 789/794/19 790/795/132 +f 791/796/150 792/797/149 252/252/19 +f 793/798/77 728/731/120 736/739/125 +f 794/799/153 739/743/127 795/800/154 +f 740/744/128 796/801/19 797/802/19 +f 798/803/121 799/804/155 672/672/78 +f 670/716/76 693/695/93 671/805/77 +f 757/762/134 756/761/133 800/806/42 +f 801/807/19 802/808/19 803/809/132 +f 804/810/20 805/811/20 806/812/156 +f 765/770/140 807/813/94 774/779/147 +f 771/776/98 772/777/145 227/227/20 +f 808/814/19 809/815/19 810/816/132 +f 811/817/19 812/818/53 813/819/53 +f 252/252/19 123/123/19 791/796/150 +f 814/820/157 775/780/148 715/718/110 +f 815/821/157 816/822/158 715/718/110 +f 645/645/57 773/778/146 725/728/118 +f 816/822/158 817/823/159 725/728/118 +f 783/788/151 782/787/150 816/822/158 +f 818/824/148 815/821/157 715/718/110 +f 786/791/152 785/790/150 818/824/148 +f 819/825/157 820/826/148 715/718/110 +f 813/819/53 812/818/53 820/826/148 +f 775/780/148 819/825/157 715/718/110 +f 714/717/87 778/783/148 715/718/110 +f 821/827/60 822/828/160 823/829/160 +f 824/830/96 825/831/161 826/832/162 +f 71/71/21 827/833/163 828/834/163 +f 826/832/162 829/835/50 830/836/113 +f 831/837/47 832/838/46 826/832/162 +f 833/839/47 834/840/47 835/841/21 +f 832/838/46 829/835/50 826/832/162 +f 828/834/163 827/833/163 836/842/164 +f 794/799/153 837/843/153 838/844/165 +f 839/845/94 824/830/96 767/772/30 +f 691/692/91 690/691/90 728/846/120 +f 728/846/120 690/691/90 736/847/125 +f 840/848/166 841/849/167 656/656/66 +f 652/652/62 651/651/61 842/850/29 +f 710/712/106 708/710/104 707/709/103 +f 843/851/130 844/852/30 845/853/30 +f 690/691/90 687/854/88 846/855/168 +f 847/856/21 848/857/113 638/638/52 +f 621/621/39 849/858/169 850/859/170 +f 849/858/169 843/851/130 851/860/131 +f 852/861/113 830/836/113 829/835/50 +f 853/862/171 854/863/172 696/698/95 +f 848/857/113 717/720/111 855/864/50 +f 853/862/171 699/701/98 856/865/173 +f 766/771/141 853/862/171 696/698/95 +f 831/837/47 825/831/161 595/595/21 +f 697/699/96 696/698/95 854/863/172 +f 768/773/142 767/772/30 824/830/96 +f 833/839/47 722/725/115 718/721/50 +f 629/629/46 721/724/114 720/723/113 +f 857/866/174 858/867/21 859/868/21 +f 854/863/172 853/862/171 856/865/173 +f 860/869/174 861/870/21 862/871/21 +f 594/594/21 831/837/47 595/595/21 +f 830/836/113 863/872/50 719/722/112 +f 864/873/113 865/874/111 863/872/50 +f 866/875/175 838/844/165 867/876/21 +f 730/733/122 736/847/125 690/691/90 +f 868/877/21 869/878/50 870/879/47 +f 871/880/176 872/881/177 728/731/120 +f 621/621/39 623/623/41 873/882/178 +f 874/883/113 875/884/115 876/885/21 +f 855/864/50 717/720/111 719/722/112 +f 685/685/19 877/886/19 686/686/87 +f 698/700/97 674/674/79 673/673/73 +f 377/377/19 376/376/19 711/713/107 +f 622/622/40 878/887/179 624/624/42 +f 700/702/99 879/888/180 880/889/181 +f 700/702/99 375/375/20 879/888/180 +f 881/890/182 882/891/183 883/892/26 +f 884/893/43 885/894/26 886/895/26 +f 712/714/108 711/713/107 884/893/43 +f 679/679/84 681/681/86 887/896/183 +f 871/880/176 727/730/119 726/729/92 +f 688/693/89 687/854/88 690/691/90 +f 693/695/93 692/694/92 671/805/77 +f 668/668/74 888/897/184 681/681/86 +f 680/680/85 889/898/21 890/899/21 +f 668/668/74 667/667/73 888/897/184 +f 669/669/75 627/627/44 667/667/73 +f 891/900/185 892/901/186 893/902/187 +f 894/903/188 891/900/185 895/904/189 +f 896/905/190 894/903/188 897/906/191 +f 898/907/192 896/905/190 899/908/193 +f 900/909/194 901/910/195 508/508/29 +f 902/911/196 903/912/197 904/913/198 +f 905/914/199 906/915/199 904/913/198 +f 907/916/200 908/917/201 901/910/195 +f 909/918/202 910/919/203 908/917/201 +f 911/920/204 906/915/199 905/914/199 +f 912/921/205 913/922/206 914/923/207 +f 913/922/206 915/924/208 916/925/209 +f 915/924/208 917/926/210 918/927/211 +f 917/926/210 919/928/212 920/929/213 +f 919/928/212 921/930/214 922/931/215 +f 923/932/216 924/933/217 925/934/218 +f 926/935/219 927/936/219 925/934/218 +f 928/937/220 929/938/220 930/939/203 +f 931/940/221 927/936/219 926/935/219 +f 892/901/186 931/940/221 932/941/222 +f 928/937/220 933/942/223 929/938/220 +f 934/943/224 935/944/225 933/942/223 +f 936/945/226 937/946/227 933/942/223 +f 938/947/228 939/948/228 937/946/227 +f 940/949/229 941/950/230 942/951/230 +f 943/952/231 944/953/231 942/951/230 +f 945/954/232 946/955/233 947/956/30 +f 948/957/234 949/958/235 950/959/236 +f 951/960/237 952/961/238 950/959/236 +f 949/958/235 953/962/239 951/960/237 +f 954/963/240 953/962/239 949/958/235 +f 955/964/241 956/965/242 953/962/239 +f 957/966/243 958/967/243 959/968/244 +f 960/969/245 959/968/244 956/965/242 +f 135/135/19 641/641/55 961/970/246 +f 962/971/247 658/658/68 963/972/248 +f 964/973/249 965/974/250 962/971/247 +f 966/975/251 967/976/252 965/974/250 +f 415/415/20 413/413/20 967/976/252 +f 416/416/20 659/659/69 413/413/20 +f 968/977/253 657/657/67 659/659/69 +f 969/978/254 968/977/253 659/659/69 +f 970/979/255 969/978/254 659/659/69 +f 416/416/20 970/979/255 659/659/69 +f 971/980/256 415/415/20 967/976/252 +f 966/975/251 971/980/256 967/976/252 +f 964/973/249 972/981/257 965/974/250 +f 973/982/258 964/973/249 962/971/247 +f 974/983/259 963/972/248 658/658/68 +f 657/657/67 974/983/259 658/658/68 +f 133/133/19 135/135/19 961/970/246 +f 973/982/258 962/971/247 963/972/248 +f 972/981/257 966/975/251 965/974/250 +f 653/653/63 654/654/64 975/984/260 +f 632/632/48 460/460/21 611/611/21 +f 976/985/51 977/986/48 978/987/21 +f 979/988/29 980/989/29 948/957/234 +f 981/990/261 982/991/261 983/992/21 +f 984/993/262 982/991/261 981/990/261 +f 985/994/263 986/995/264 502/502/29 +f 987/996/265 986/995/264 985/994/263 +f 988/997/266 987/996/265 989/998/267 +f 934/943/224 990/999/268 991/1000/269 +f 935/944/225 934/943/224 992/1001/270 +f 954/963/240 993/1002/271 994/1003/237 +f 660/660/70 940/949/229 995/1004/272 +f 996/1005/29 997/1006/236 998/1007/234 +f 993/1002/271 998/1007/234 997/1006/236 +f 994/1003/237 993/1002/271 997/1006/236 +f 499/499/19 944/953/231 943/952/231 +f 502/502/29 986/995/264 900/909/194 +f 497/497/19 499/499/19 943/952/231 +f 508/508/29 502/502/29 900/909/194 +f 504/504/21 660/660/70 507/507/21 +f 820/826/148 999/1008/157 715/718/110 +f 816/822/158 725/728/118 715/718/110 +f 863/872/50 865/874/111 719/722/112 +f 830/836/113 719/722/112 826/832/162 +f 1000/1009/221 1001/1010/273 1002/1011/274 +f 1001/1010/273 1003/1012/275 1004/1013/276 +f 1005/1014/277 1006/1015/278 1007/1016/279 +f 1003/1012/275 1008/1017/215 1009/1018/216 +f 1008/1017/215 1010/1019/213 1011/1020/212 +f 1012/1021/204 1005/1014/277 1013/1022/280 +f 1010/1019/213 1014/1023/281 1015/1024/210 +f 1014/1023/281 1016/1025/209 1017/1026/208 +f 1018/1027/282 1012/1021/204 1019/1028/205 +f 1016/1025/209 1018/1027/282 1020/1029/283 +f 1021/1030/190 1022/1031/188 1023/1032/191 +f 1024/1033/185 1025/1034/186 1026/1035/284 +f 1027/1036/192 1021/1030/190 1028/1037/193 +f 1006/1015/278 1027/1036/192 1029/1038/285 +f 1025/1034/186 1000/1009/221 1030/1039/222 +f 1022/1031/188 1024/1033/185 1031/1040/189 +f 1032/1041/286 1033/1042/287 1034/1043/288 +f 1035/1044/289 1036/1045/290 1037/1046/291 +f 1038/1047/292 1039/1048/293 1040/1049/30 +f 1041/1050/26 1042/1051/26 1033/1042/287 +f 1036/1045/290 1035/1044/289 1039/1048/293 +f 94/94/29 623/623/41 360/360/29 +f 669/669/75 625/625/43 627/627/44 +f 698/700/97 628/628/45 152/152/20 +f 1043/1052/21 629/629/46 631/631/21 +f 1044/1053/294 632/632/48 634/634/49 +f 1045/1054/21 635/635/21 637/637/51 +f 91/91/19 639/639/53 92/92/19 +f 961/970/246 641/641/55 625/625/43 +f 117/117/26 649/649/26 648/648/59 +f 1046/1055/295 120/120/21 122/122/21 +f 1047/1056/296 651/651/61 653/653/63 +f 975/984/260 654/654/64 656/656/66 +f 1048/1057/71 662/662/71 664/664/19 +f 1048/1057/71 665/665/72 662/662/71 +f 678/678/83 673/673/73 675/675/80 +f 675/675/80 676/676/81 678/678/83 +f 686/748/87 672/672/78 683/683/19 +f 150/150/21 687/688/88 148/148/21 +f 856/865/173 699/701/98 326/326/20 +f 1049/1058/21 701/703/21 703/705/100 +f 706/708/30 707/709/103 704/706/101 +f 710/712/106 714/717/87 708/710/104 +f 705/707/102 704/706/101 721/724/114 +f 718/721/50 722/725/115 719/722/112 +f 773/778/146 723/726/116 725/728/118 +f 793/798/77 726/729/92 728/731/120 +f 1050/1059/297 729/732/121 731/734/123 +f 1051/1060/19 732/735/19 734/737/53 +f 729/1061/121 735/738/124 730/740/122 +f 642/642/56 647/647/58 738/742/126 +f 795/800/154 739/743/127 741/745/129 +f 1052/1062/298 745/750/95 747/752/30 +f 1053/1063/30 748/753/130 750/755/30 +f 682/682/56 672/672/78 752/757/126 +f 1054/1064/299 753/758/19 755/760/132 +f 759/764/136 756/761/133 758/763/135 +f 748/753/130 759/764/136 749/754/131 +f 800/806/42 760/765/29 762/767/137 +f 769/774/143 766/771/141 765/770/140 +f 743/747/30 767/772/30 724/727/117 +f 806/812/156 766/771/141 770/775/144 +f 814/820/157 734/737/53 775/780/148 +f 714/717/87 776/781/149 778/783/148 +f 1055/1065/300 779/784/112 781/786/118 +f 1056/1066/19 782/787/150 784/789/19 +f 1057/1067/19 785/790/150 787/792/19 +f 1058/1068/299 788/793/19 790/795/132 +f 735/738/124 793/798/77 736/739/125 +f 837/843/153 794/799/153 795/800/154 +f 741/745/129 740/744/128 797/802/19 +f 744/749/124 798/803/121 672/672/78 +f 762/767/137 757/762/134 800/806/42 +f 1059/1069/148 801/807/19 803/809/132 +f 770/775/144 804/810/20 806/812/156 +f 213/213/20 771/776/98 227/227/20 +f 1060/1070/299 808/814/19 810/816/132 +f 1061/1071/19 811/817/19 813/819/53 +f 778/783/148 814/820/157 715/718/110 +f 817/823/159 645/645/57 725/728/118 +f 815/821/157 783/788/151 816/822/158 +f 999/1008/157 818/824/148 715/718/110 +f 999/1008/157 786/791/152 818/824/148 +f 819/825/157 813/819/53 820/826/148 +f 1062/1072/301 821/827/60 823/829/160 +f 768/773/142 824/830/96 826/832/162 +f 102/102/21 71/71/21 828/834/163 +f 825/831/161 831/837/47 826/832/162 +f 1063/1073/21 833/839/47 835/841/21 +f 1064/1074/302 828/834/163 836/842/164 +f 866/875/175 794/799/153 838/844/165 +f 872/881/177 691/1075/91 728/731/120 +f 655/655/65 840/848/166 656/656/66 +f 1065/1076/29 652/652/62 842/850/29 +f 851/860/131 843/851/130 845/853/30 +f 1066/1077/303 690/691/90 846/855/168 +f 540/540/21 847/856/21 638/638/52 +f 622/622/40 621/621/39 850/859/170 +f 850/859/170 849/858/169 851/860/131 +f 857/866/174 852/861/113 829/835/50 +f 638/638/52 848/857/113 855/864/50 +f 834/840/47 833/839/47 718/721/50 +f 630/630/47 629/629/46 720/723/113 +f 852/861/113 857/866/174 859/868/21 +f 864/873/113 860/869/174 862/871/21 +f 860/869/174 864/873/113 863/872/50 +f 1067/1078/21 866/875/175 867/876/21 +f 731/734/123 730/733/122 690/691/90 +f 1068/1079/21 868/877/21 870/879/47 +f 727/730/119 871/880/176 728/731/120 +f 1069/1080/21 874/883/113 876/885/21 +f 865/874/111 855/864/50 719/722/112 +f 623/623/41 622/622/40 624/624/42 +f 1070/1081/181 700/702/99 880/889/181 +f 1071/1082/26 881/890/182 883/892/26 +f 1072/1083/43 884/893/43 886/895/26 +f 1072/1083/43 712/714/108 884/893/43 +f 1073/1084/30 871/880/176 726/729/92 +f 680/680/85 668/668/74 681/681/86 +f 668/668/74 680/680/85 890/899/21 +f 895/904/189 891/900/185 893/902/187 +f 897/906/191 894/903/188 895/904/189 +f 899/908/193 896/905/190 897/906/191 +f 902/911/196 898/907/192 899/908/193 +f 898/907/192 902/911/196 904/913/198 +f 903/912/197 905/914/199 904/913/198 +f 900/909/194 907/916/200 901/910/195 +f 907/916/200 909/918/202 908/917/201 +f 912/921/205 911/920/204 905/914/199 +f 911/920/204 912/921/205 914/923/207 +f 914/923/207 913/922/206 916/925/209 +f 916/925/209 915/924/208 918/927/211 +f 918/927/211 917/926/210 920/929/213 +f 920/929/213 919/928/212 922/931/215 +f 1074/1085/304 923/932/216 925/934/218 +f 924/933/217 926/935/219 925/934/218 +f 1075/1086/305 928/937/220 930/939/203 +f 932/941/222 931/940/221 926/935/219 +f 893/902/187 892/901/186 932/941/222 +f 928/937/220 934/943/224 933/942/223 +f 935/944/225 936/945/226 933/942/223 +f 936/945/226 938/947/228 937/946/227 +f 995/1004/272 940/949/229 942/951/230 +f 941/950/230 943/952/231 942/951/230 +f 1076/1087/30 945/954/232 947/956/30 +f 949/958/235 951/960/237 950/959/236 +f 993/1002/271 954/963/240 949/958/235 +f 954/963/240 955/964/241 953/962/239 +f 960/969/245 957/966/243 959/968/244 +f 955/964/241 960/969/245 956/965/242 +f 1047/1056/296 653/653/63 975/984/260 +f 633/633/48 632/632/48 611/611/21 +f 1077/1088/50 976/985/51 978/987/21 +f 950/959/236 979/988/29 948/957/234 +f 1078/1089/21 981/990/261 983/992/21 +f 1079/1090/262 984/993/262 981/990/261 +f 989/998/267 987/996/265 985/994/263 +f 1080/1091/269 988/997/266 989/998/267 +f 992/1001/270 934/943/224 991/1000/269 +f 661/661/70 660/660/70 995/1004/272 +f 1081/1092/29 996/1005/29 998/1007/234 +f 1082/1093/238 994/1003/237 997/1006/236 +f 1030/1039/222 1000/1009/221 1002/1011/274 +f 1002/1011/274 1001/1010/273 1004/1013/276 +f 1013/1022/280 1005/1014/277 1007/1016/279 +f 1004/1013/276 1003/1012/275 1009/1018/216 +f 1009/1018/216 1008/1017/215 1011/1020/212 +f 1019/1028/205 1012/1021/204 1013/1022/280 +f 1011/1020/212 1010/1019/213 1015/1024/210 +f 1015/1024/210 1014/1023/281 1017/1026/208 +f 1020/1029/283 1018/1027/282 1019/1028/205 +f 1017/1026/208 1016/1025/209 1020/1029/283 +f 1028/1037/193 1021/1030/190 1023/1032/191 +f 1031/1040/189 1024/1033/185 1026/1035/284 +f 1029/1038/285 1027/1036/192 1028/1037/193 +f 1007/1016/279 1006/1015/278 1029/1038/285 +f 1026/1035/284 1025/1034/186 1030/1039/222 +f 1023/1032/191 1022/1031/188 1031/1040/189 +f 1037/1046/291 1032/1041/286 1034/1043/288 +f 1034/1043/288 1035/1044/289 1037/1046/291 +f 1083/1094/30 1038/1047/292 1040/1049/30 +f 1032/1041/286 1041/1050/26 1033/1042/287 +f 1038/1047/292 1036/1045/290 1039/1048/293 +o trigger_pistol_0 +v 0.255916 1.582615 6.859656 +v 0.255916 1.449703 6.660409 +v 0.255916 1.810704 6.457509 +v 0.255916 2.466018 6.344805 +v 0.255916 1.892926 6.633237 +v 0.577175 1.435798 6.186546 +v 0.577175 1.810704 6.457509 +v 0.577175 1.449703 6.660409 +v 0.577175 3.484048 5.722968 +v 0.577175 3.243770 6.479860 +v 0.577175 2.895699 6.381779 +v 0.577175 1.924939 5.885275 +v 0.577175 2.439333 5.691723 +v 0.577175 2.466018 6.344805 +v 0.577175 3.484048 5.722968 +v 0.401255 3.484048 5.722968 +v 0.401255 3.243770 6.479860 +v 0.401255 3.588838 6.684444 +v 0.401255 3.243770 6.479860 +v 0.401255 3.484048 5.722968 +v 0.401255 4.331120 5.796535 +v 0.401255 4.331120 7.553139 +v 0.401255 3.911054 6.978125 +v 0.401255 4.776393 4.607953 +v 0.401255 5.500355 4.607955 +v 0.401255 5.500353 7.553141 +v -0.401255 4.331120 5.796535 +v -0.401255 4.776393 4.607953 +v 0.401255 4.776393 4.607953 +v -0.401255 5.500355 4.607955 +v 0.401255 5.500355 4.607955 +v 0.401255 4.776393 4.607953 +v 0.577175 2.851677 5.639833 +v -0.577175 3.484048 5.722968 +v -0.577175 3.243770 6.479860 +v -0.401255 3.243770 6.479860 +v -0.255916 1.582615 6.859656 +v -0.255916 1.892926 6.633237 +v -0.255916 1.810704 6.457509 +v -0.401255 3.243770 6.479860 +v -0.401255 3.588838 6.684444 +v -0.401255 3.484048 5.722968 +v -0.401255 4.331120 7.553139 +v -0.401255 4.331120 5.796535 +v -0.401255 3.911054 6.978125 +v -0.401255 4.776393 4.607953 +v -0.401255 5.500355 4.607955 +v -0.401255 5.500353 7.553141 +v -0.255916 2.466018 6.344805 +v -0.577175 2.466018 6.344805 +v -0.577175 2.895699 6.381779 +v -0.577175 2.851677 5.639833 +v -0.577175 1.810704 6.457509 +v -0.577175 1.435798 6.186546 +v -0.577175 1.449703 6.660409 +v -0.577175 3.484048 5.722968 +v -0.577175 1.924939 5.885275 +v -0.577175 2.439333 5.691723 +v 0.577175 3.243770 6.479860 +v 0.401255 4.331120 5.796535 +v -0.401255 4.776393 4.607953 +v -0.401255 3.484048 5.722968 +v -0.255916 1.449703 6.660409 +v -0.577175 3.243770 6.479860 +v -0.255916 1.892926 6.633237 +v 0.255916 1.892926 6.633237 +v 0.255916 2.466018 6.344805 +v 0.577175 2.895699 6.381779 +v 0.577175 3.243770 6.479860 +v 0.401255 3.243770 6.479860 +v -0.401255 3.243770 6.479860 +v -0.577175 2.895699 6.381779 +v -0.136434 1.170197 7.267153 +v 0.136434 1.170197 7.267153 +v 0.255916 1.274900 7.159120 +v -0.255916 1.274900 7.159120 +v 0.255916 1.582615 6.859656 +v -0.255916 1.582615 6.859656 +v -0.136434 1.170197 7.267153 +v -0.140214 0.908798 7.158844 +v 0.140214 0.908798 7.158844 +v 0.255916 1.049089 7.041913 +v 0.255916 1.274900 7.159120 +v 0.136434 1.170197 7.267153 +v 0.255916 2.466018 6.344805 +v 0.577175 2.466018 6.344805 +v 0.577175 1.049089 7.041913 +v 0.255916 1.049089 7.041913 +v 0.140214 0.908798 7.158844 +v -0.140214 0.908798 7.158844 +v -0.238265 0.780515 7.270253 +v 0.238265 0.780515 7.270253 +v 0.577175 1.810704 6.457509 +v 0.255916 1.810704 6.457509 +v 0.255916 1.449703 6.660409 +v 0.577175 1.449703 6.660409 +v -0.242153 0.574698 7.190140 +v 0.242153 0.574698 7.190140 +v 0.238265 0.780515 7.270253 +v 0.557295 0.748788 6.906375 +v 0.577175 1.049089 7.041913 +v 0.577175 1.022907 6.562050 +v -0.255916 2.466018 6.344805 +v -0.401255 4.331120 5.796535 +v 0.401255 4.331120 5.796535 +v 0.401255 3.484048 5.722968 +v 0.401255 3.588838 6.684444 +v -0.401255 3.588838 6.684444 +v 0.401255 3.911054 6.978125 +v 0.401255 4.331120 7.553139 +v -0.401255 4.331120 7.553139 +v -0.401255 3.911054 6.978125 +v 0.401255 5.500353 7.553141 +v -0.401255 5.500353 7.553141 +v 0.577175 2.851677 5.639833 +v 0.577175 3.484048 5.722968 +v -0.577175 2.851677 5.639833 +v -0.401255 3.484048 5.722968 +v 0.577175 1.022907 6.562050 +v -0.577175 1.022907 6.562050 +v -0.577175 1.435798 6.186546 +v 0.577175 1.435798 6.186546 +v -0.577175 1.924939 5.885275 +v -0.577175 2.439333 5.691723 +v 0.577175 2.439333 5.691723 +v 0.577175 1.924939 5.885275 +v 0.242153 0.574698 7.190140 +v -0.242153 0.574698 7.190140 +v -0.557295 0.748788 6.906375 +v 0.557295 0.748788 6.906375 +v -0.577175 3.243770 6.479860 +v -0.255916 1.049089 7.041913 +v -0.577175 2.466018 6.344805 +v -0.255916 1.274900 7.159120 +v -0.577175 1.049089 7.041913 +v -0.577175 3.484048 5.722968 +v -0.577175 1.810704 6.457509 +v -0.577175 1.449703 6.660409 +v -0.255916 1.449703 6.660409 +v -0.255916 1.810704 6.457509 +v -0.255916 1.049089 7.041913 +v -0.557295 0.748788 6.906375 +v -0.238265 0.780515 7.270253 +v -0.577175 1.022907 6.562050 +v -0.577175 1.049089 7.041913 +v -0.255916 2.466018 6.344805 +vt 0.482997 0.972676 +vt 0.483169 0.972693 +vt 0.483177 0.972380 +vt 0.483034 0.971858 +vt 0.483023 0.972386 +vt 0.471310 0.981774 +vt 0.471246 0.981454 +vt 0.471009 0.981626 +vt 0.472210 0.980596 +vt 0.471654 0.980527 +vt 0.471614 0.980779 +vt 0.471647 0.981549 +vt 0.471923 0.981275 +vt 0.471511 0.981066 +vt 0.472210 0.980596 +vt 0.472225 0.980472 +vt 0.471669 0.980404 +vt 0.471639 0.980122 +vt 0.471669 0.980404 +vt 0.472225 0.980472 +vt 0.472428 0.979907 +vt 0.471300 0.979390 +vt 0.471545 0.979829 +vt 0.473322 0.979971 +vt 0.473535 0.979507 +vt 0.471644 0.978639 +vt 0.480249 0.946278 +vt 0.480249 0.945382 +vt 0.480816 0.945382 +vt 0.480249 0.944870 +vt 0.480816 0.944870 +vt 0.480816 0.945382 +vt 0.472077 0.981026 +vt 0.468113 0.980573 +vt 0.468670 0.980511 +vt 0.468657 0.980387 +vt 0.482644 0.972678 +vt 0.482622 0.972386 +vt 0.482468 0.972377 +vt 0.468657 0.980387 +vt 0.468690 0.980106 +vt 0.468100 0.980449 +vt 0.469037 0.979378 +vt 0.467904 0.979882 +vt 0.468786 0.979814 +vt 0.467009 0.979936 +vt 0.466802 0.979469 +vt 0.468701 0.978624 +vt 0.482618 0.971864 +vt 0.468807 0.981051 +vt 0.468707 0.980763 +vt 0.468241 0.981005 +vt 0.469067 0.981441 +vt 0.469000 0.981761 +vt 0.469302 0.981616 +vt 0.468113 0.980573 +vt 0.468666 0.981532 +vt 0.468393 0.981256 +vt 0.471654 0.980527 +vt 0.480816 0.946278 +vt 0.480249 0.945382 +vt 0.468100 0.980449 +vt 0.482469 0.972694 +vt 0.468670 0.980511 +vt 0.482622 0.972386 +vt 0.483023 0.972386 +vt 0.483034 0.971858 +vt 0.480078 0.973332 +vt 0.480077 0.973077 +vt 0.479953 0.973077 +vt 0.479387 0.973079 +vt 0.479263 0.973334 +vt 0.482753 0.972998 +vt 0.482894 0.972996 +vt 0.482958 0.972932 +vt 0.482686 0.972938 +vt 0.482997 0.972676 +vt 0.482644 0.972678 +vt 0.482753 0.972998 +vt 0.482726 0.973162 +vt 0.482929 0.973155 +vt 0.483051 0.973046 +vt 0.482958 0.972932 +vt 0.482894 0.972996 +vt 0.479852 0.973637 +vt 0.480079 0.973637 +vt 0.480081 0.974789 +vt 0.479855 0.974790 +vt 0.479773 0.974919 +vt 0.479575 0.974919 +vt 0.479506 0.975040 +vt 0.479843 0.975039 +vt 0.480080 0.974106 +vt 0.479853 0.974107 +vt 0.479854 0.974399 +vt 0.480081 0.974399 +vt 0.469982 0.982043 +vt 0.470324 0.982045 +vt 0.470322 0.981889 +vt 0.470645 0.982004 +vt 0.470647 0.981771 +vt 0.470947 0.981928 +vt 0.479491 0.973638 +vt 0.480249 0.946278 +vt 0.480816 0.946278 +vt 0.480816 0.946878 +vt 0.479953 0.972794 +vt 0.479386 0.972795 +vt 0.479952 0.972486 +vt 0.479951 0.971983 +vt 0.479384 0.971985 +vt 0.479385 0.972488 +vt 0.479949 0.971158 +vt 0.479382 0.971159 +vt 0.480940 0.947328 +vt 0.480940 0.946878 +vt 0.480125 0.947328 +vt 0.480249 0.946878 +vt 0.480940 0.948810 +vt 0.480125 0.948810 +vt 0.480125 0.948416 +vt 0.480940 0.948415 +vt 0.480125 0.948010 +vt 0.480125 0.947622 +vt 0.480940 0.947622 +vt 0.480940 0.948010 +vt 0.480704 0.949355 +vt 0.480362 0.949355 +vt 0.480139 0.949120 +vt 0.480926 0.949120 +vt 0.479262 0.973079 +vt 0.482592 0.973062 +vt 0.479264 0.973639 +vt 0.482686 0.972938 +vt 0.479266 0.974791 +vt 0.480125 0.946878 +vt 0.479265 0.974108 +vt 0.479265 0.974401 +vt 0.479492 0.974400 +vt 0.479492 0.974108 +vt 0.479493 0.974791 +vt 0.469662 0.981998 +vt 0.469986 0.981887 +vt 0.469361 0.981919 +vt 0.469663 0.981765 +vt 0.482618 0.971864 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.9531 0.3026 +vn 0.0000 -0.9364 -0.3508 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 -0.0000 0.0000 +vn 0.0000 0.4977 0.8674 +vn 0.0000 0.5444 0.8388 +vn 0.0000 0.1395 0.9902 +vn 0.0000 -0.1979 0.9802 +vn 0.0000 -0.2712 0.9625 +vn 0.0000 -0.3535 0.9354 +vn -0.0000 -0.3697 0.9291 +vn 0.0000 -0.1606 0.9870 +vn 0.0000 0.7181 0.6960 +vn 0.0000 0.7113 0.7029 +vn -0.0000 0.7044 0.7098 +vn 0.0000 0.6629 0.7487 +vn 0.0000 0.6268 0.7792 +vn -0.4404 -0.3550 0.8247 +vn -0.4552 -0.3352 0.8249 +vn 0.2991 -0.3616 0.8831 +vn 0.9038 -0.1780 0.3893 +vn 0.9745 -0.1034 0.1993 +vn 0.5796 -0.3268 0.7465 +vn 0.0001 0.1395 0.9902 +vn 0.0000 0.0850 0.9964 +vn -0.0023 0.6611 0.7503 +vn -0.0000 0.6735 0.7392 +vn -0.0023 0.6496 0.7603 +vn 0.0017 0.6512 0.7589 +vn 0.0038 0.6541 0.7564 +vn -0.0023 0.6547 0.7559 +vn 0.0000 0.3882 0.9216 +vn 0.0000 0.2799 0.9600 +vn 0.0000 0.5604 0.8282 +vn 0.0000 0.6274 0.7787 +vn -0.2580 -0.3462 0.9020 +vn 0.3908 -0.3275 0.8603 +vn 0.3829 -0.3520 0.8541 +vn 0.8580 -0.2283 0.4601 +vn 0.9627 -0.1436 0.2294 +vn 0.9997 -0.0226 0.0012 +vn 0.0000 0.1148 0.9934 +vn 0.0000 0.0865 -0.9962 +vn 0.0000 0.1129 -0.9936 +vn 0.0000 -0.5671 0.8236 +vn 0.0000 -0.6219 0.7831 +vn 0.0000 -0.7215 0.6924 +vn -0.0001 -0.5953 0.8035 +vn 0.0001 -0.2977 0.9547 +vn 0.0000 -0.7663 0.6425 +vn 0.0000 -0.0000 1.0000 +vn 0.0000 0.0456 -0.9990 +vn 0.0000 0.1303 -0.9915 +vn 0.0000 0.0285 -0.9996 +vn 0.0000 0.1158 -0.9933 +vn -0.0000 -0.7114 -0.7028 +vn -0.0000 -0.7480 -0.6637 +vn 0.0000 -0.6258 -0.7800 +vn 0.0000 -0.5761 -0.8174 +vn -0.0000 -0.4689 -0.8832 +vn 0.0000 -0.2781 -0.9606 +vn 0.0000 -0.2019 -0.9794 +vn -0.0000 -0.4113 -0.9115 +vn 0.0000 -0.8524 -0.5229 +vn 0.0000 -0.8304 -0.5572 +vn 0.0000 -0.8071 -0.5904 +vn -0.9038 -0.1780 0.3893 +vn -0.9745 -0.1034 0.1993 +vn 0.0023 0.6611 0.7503 +vn -0.8580 -0.2283 0.4601 +vn -0.5059 -0.3351 0.7948 +vn -0.9997 -0.0226 0.0012 +vn -0.9627 -0.1436 0.2294 +vn 0.0000 0.1149 0.9934 +s off +f 1084/1095/306 1085/1096/306 1086/1097/306 +f 1086/1097/306 1087/1098/306 1088/1099/306 +f 1089/1100/306 1090/1101/306 1091/1102/306 +f 1092/1103/306 1093/1104/306 1094/1105/306 +f 1089/1100/306 1095/1106/306 1090/1101/306 +f 1096/1107/306 1097/1108/306 1090/1101/306 +f 1098/1109/307 1099/1110/307 1100/1111/307 +f 1101/1112/306 1102/1113/306 1103/1114/306 +f 1104/1115/306 1105/1116/306 1106/1117/306 +f 1101/1112/306 1103/1114/306 1104/1115/306 +f 1104/1115/306 1107/1118/306 1108/1119/306 +f 1109/1120/306 1105/1116/306 1104/1115/306 +f 1110/1121/308 1111/1122/308 1112/1123/308 +f 1113/1124/309 1114/1125/309 1115/1126/309 +f 1097/1108/306 1096/1107/306 1116/1127/306 +f 1117/1128/307 1118/1129/307 1119/1130/307 +f 1120/1131/310 1121/1132/310 1122/1133/310 +f 1123/1134/310 1124/1135/310 1125/1136/310 +f 1126/1137/310 1127/1138/310 1128/1139/310 +f 1124/1135/310 1128/1139/310 1127/1138/310 +f 1129/1140/310 1127/1138/310 1130/1141/310 +f 1131/1142/310 1130/1141/310 1127/1138/310 +f 1132/1143/310 1122/1133/310 1121/1132/310 +f 1133/1144/310 1134/1145/310 1135/1146/310 +f 1136/1147/310 1137/1148/310 1138/1149/310 +f 1139/1150/310 1135/1146/310 1134/1145/310 +f 1140/1151/310 1137/1148/310 1136/1147/310 +f 1141/1152/310 1140/1151/310 1136/1147/310 +f 1088/1099/306 1084/1095/306 1086/1097/306 +f 1116/1127/306 1092/1103/306 1094/1105/306 +f 1095/1106/306 1096/1107/306 1090/1101/306 +f 1142/1153/307 1098/1109/307 1100/1111/307 +f 1106/1117/306 1101/1112/306 1104/1115/306 +f 1108/1119/306 1109/1120/306 1104/1115/306 +f 1143/1154/308 1110/1121/308 1112/1123/308 +f 1144/1155/309 1113/1124/309 1115/1126/309 +f 1094/1105/306 1097/1108/306 1116/1127/306 +f 1145/1156/307 1117/1128/307 1119/1130/307 +f 1146/1157/310 1120/1131/310 1122/1133/310 +f 1125/1136/310 1124/1135/310 1127/1138/310 +f 1126/1137/310 1131/1142/310 1127/1138/310 +f 1141/1152/310 1133/1144/310 1135/1146/310 +f 1147/1158/310 1139/1150/310 1134/1145/310 +f 1133/1144/310 1141/1152/310 1136/1147/310 +s 1 +f 1148/1159/311 1149/1160/312 1150/1161/313 +f 1151/1162/314 1152/1163/315 1153/1164/316 +f 1154/1165/317 1155/1166/318 1151/1162/314 +f 1156/1167/319 1157/1168/319 1158/1169/320 +f 1159/1170/321 1158/1169/320 1160/1171/322 +f 1149/1160/312 1148/1159/311 1161/1172/323 +f 1162/1173/324 1163/1174/325 1164/1175/326 +f 1165/1176/327 1166/1177/328 1167/1178/329 +f 1168/1179/330 1169/1180/331 1151/1162/314 +f 1085/1096/306 1084/1095/306 1166/1177/328 +f 1170/1181/332 1171/1182/333 1172/1183/334 +f 1173/1184/335 1174/1185/336 1175/1186/337 +f 1176/1187/338 1177/1188/339 1178/1189/340 +f 1169/1180/331 1168/1179/330 1177/1188/339 +f 1171/1182/333 1170/1181/332 1179/1190/341 +f 1180/1191/342 1181/1192/343 1182/1193/344 +f 1183/1194/345 1184/1195/346 1182/1193/344 +f 1185/1196/347 1091/1102/306 1184/1195/346 +f 1185/1196/347 1089/1100/306 1091/1102/306 +f 1155/1166/318 1186/1197/348 1168/1179/330 +f 1187/1198/349 1188/1199/349 1189/1200/350 +f 1190/1201/351 1191/1202/352 1154/1165/317 +f 1191/1202/352 1190/1201/351 1192/1203/353 +f 1193/1204/354 1194/1205/355 1195/1206/356 +f 1196/1207/357 1197/1208/357 1194/1205/355 +f 1198/1209/358 1189/1200/350 1199/1210/359 +f 1200/1211/360 1201/1212/361 1189/1200/350 +f 1202/1213/362 1203/1214/363 1204/1215/364 +f 1205/1216/365 1204/1215/364 1206/1217/366 +f 1207/1218/367 1208/1219/368 1209/1220/369 +f 1200/1211/360 1198/1209/358 1208/1219/368 +f 1210/1221/370 1211/1222/370 1212/1223/371 +f 1203/1214/363 1202/1213/362 1213/1224/372 +f 1214/1225/315 1155/1166/318 1154/1165/317 +f 1215/1226/373 1163/1174/325 1162/1173/324 +f 1216/1227/331 1186/1197/348 1155/1166/318 +f 1146/1157/310 1215/1226/373 1217/1228/374 +f 1218/1229/375 1174/1185/336 1173/1184/335 +f 1201/1212/361 1200/1211/360 1219/1230/359 +f 1220/1231/338 1221/1232/341 1222/1233/340 +f 1216/1227/331 1220/1231/338 1223/1234/339 +f 1224/1235/333 1222/1233/340 1221/1232/341 +f 1225/1236/376 1180/1191/342 1226/1237/377 +f 1227/1238/378 1225/1236/376 1228/1239/379 +f 1137/1148/310 1227/1238/378 1138/1149/310 +f 1229/1240/380 1148/1159/311 1150/1161/313 +f 1153/1164/316 1154/1165/317 1151/1162/314 +f 1159/1170/321 1156/1167/319 1158/1169/320 +f 1161/1172/323 1159/1170/321 1160/1171/322 +f 1160/1171/322 1149/1160/312 1161/1172/323 +f 1167/1178/329 1162/1173/324 1164/1175/326 +f 1164/1175/326 1165/1176/327 1167/1178/329 +f 1165/1176/327 1085/1096/306 1166/1177/328 +f 1175/1186/337 1170/1181/332 1172/1183/334 +f 1172/1183/334 1173/1184/335 1175/1186/337 +f 1179/1190/341 1176/1187/338 1178/1189/340 +f 1176/1187/338 1169/1180/331 1177/1188/339 +f 1178/1189/340 1171/1182/333 1179/1190/341 +f 1226/1237/377 1180/1191/342 1182/1193/344 +f 1181/1192/343 1183/1194/345 1182/1193/344 +f 1183/1194/345 1185/1196/347 1184/1195/346 +f 1151/1162/314 1155/1166/318 1168/1179/330 +f 1201/1212/361 1187/1198/349 1189/1200/350 +f 1153/1164/316 1190/1201/351 1154/1165/317 +f 1195/1206/356 1191/1202/352 1192/1203/353 +f 1192/1203/353 1193/1204/354 1195/1206/356 +f 1193/1204/354 1196/1207/357 1194/1205/355 +f 1198/1209/358 1200/1211/360 1189/1200/350 +f 1205/1216/365 1202/1213/362 1204/1215/364 +f 1209/1220/369 1205/1216/365 1206/1217/366 +f 1206/1217/366 1207/1218/367 1209/1220/369 +f 1207/1218/367 1200/1211/360 1208/1219/368 +f 1213/1224/372 1210/1221/370 1212/1223/371 +f 1212/1223/371 1203/1214/363 1213/1224/372 +f 1217/1228/374 1215/1226/373 1162/1173/324 +f 1120/1131/310 1146/1157/310 1217/1228/374 +f 1224/1235/333 1218/1229/375 1173/1184/335 +f 1223/1234/339 1220/1231/338 1222/1233/340 +f 1186/1197/348 1216/1227/331 1223/1234/339 +f 1218/1229/375 1224/1235/333 1221/1232/341 +f 1228/1239/379 1225/1236/376 1226/1237/377 +f 1138/1149/310 1227/1238/378 1228/1239/379 +o mag_pistol_0 +v -1.109136 1.854146 1.546994 +v -1.109136 6.483851 2.313161 +v -1.109136 1.746315 1.309461 +v 1.109136 6.483851 2.313161 +v 1.109136 6.193875 2.563060 +v 1.109136 1.854146 1.546994 +v 1.109136 1.746315 1.309461 +v -1.109136 6.193875 2.563060 +v -1.109136 7.455005 0.432841 +v -0.855096 7.454038 0.681172 +v -0.637953 7.455005 0.432841 +v -1.109136 7.447666 2.316916 +v -0.851242 7.447666 2.316916 +v -0.645065 7.456246 0.114420 +v -0.808240 7.456246 0.114420 +v -0.882817 -7.449294 -6.242331 +v -1.332151 -7.578506 -5.806304 +v -1.109136 -7.583717 -5.788713 +v -1.260158 -8.694220 -2.041337 +v -1.109136 -8.686133 -2.068621 +v -0.818644 -8.777006 -1.761974 +v -0.549908 -9.201518 -0.329464 +v 0.549908 -9.201518 -0.329464 +v 0.855096 7.454038 0.681172 +v 1.109136 7.455005 0.432841 +v 0.637953 7.455005 0.432841 +v 0.645065 7.456246 0.114420 +v 0.808240 7.456246 0.114420 +v -0.413784 6.208827 -0.016872 +v 0.413784 6.208827 -0.016872 +v 0.440888 6.323021 -0.358271 +v 0.851242 7.447666 2.316916 +v -0.791829 -7.487273 -6.114170 +v 0.791829 -7.487273 -6.114170 +v 0.882817 -7.449294 -6.242331 +v 1.109136 -7.583717 -5.788713 +v 1.332151 -7.578506 -5.806304 +v 1.109136 -8.686133 -2.068621 +v -0.527911 -9.865828 -0.558223 +v 0.527911 -9.865828 -0.558223 +v 0.549908 -9.201518 -0.329464 +v 0.527911 -9.865828 -0.558223 +v -0.527911 -9.865828 -0.558223 +v -1.263812 -9.320386 -2.284041 +v -0.889556 -7.991921 -6.487401 +v 0.889556 -7.991921 -6.487401 +v 1.326758 -8.130615 -6.048566 +v 1.263812 -9.320386 -2.284041 +v -1.326758 -8.130615 -6.048566 +v 1.260158 -8.694220 -2.041337 +v 0.818644 -8.777006 -1.761974 +v -0.440888 6.323021 -0.358271 +v 1.109136 7.447666 2.316916 +v -0.549908 -9.201518 -0.329464 +v -0.330292 5.643600 3.823889 +v 0.330292 5.643600 3.823889 +v -0.639183 4.693711 3.350439 +v -0.784649 4.758710 3.184810 +v -0.823423 6.188930 3.832172 +v -0.613250 5.916148 3.869261 +v 0.639183 4.693711 3.350439 +v 0.613250 5.916148 3.869261 +v -0.791829 -7.487273 -6.114170 +v -0.440888 6.323021 -0.358271 +v 0.791829 -7.487273 -6.114170 +v 1.109136 6.187971 4.078715 +v 1.109136 1.608211 2.157616 +v 1.109136 7.455005 0.432841 +v 1.109136 -7.583717 -5.788713 +v 1.109136 1.421237 1.150594 +v 1.109136 1.152737 1.225781 +v 0.613250 6.186937 4.344060 +v 0.613250 5.905007 4.230343 +v 0.807799 6.186929 4.345726 +v -0.367306 5.610397 4.110494 +v -0.804550 1.432484 2.382775 +v 0.367306 5.610397 4.110494 +v -0.613250 6.186937 4.344060 +v -0.807799 6.186929 4.345726 +v -0.613250 5.905007 4.230343 +v -0.818644 -8.777006 -1.761974 +v 0.818644 -8.777006 -1.761974 +v -0.775337 0.764493 2.107609 +v -1.109136 1.608211 2.157616 +v -1.109136 7.455005 0.432841 +v -1.109136 1.421237 1.150594 +v -1.109136 -7.583717 -5.788713 +v -1.109136 1.152737 1.225781 +v -0.629678 6.747400 -0.181054 +v 0.440888 6.323021 -0.358271 +v 0.629678 6.747400 -0.181054 +v -0.784480 5.973367 0.123958 +v -0.784649 4.758710 3.184810 +v 0.784480 5.973367 0.123958 +v 1.109136 7.447666 2.316916 +v 1.109136 -8.686133 -2.068621 +v 0.804550 1.432484 2.382775 +v 0.775337 0.764493 2.107609 +v -1.109136 0.828570 1.868721 +v -1.109136 -8.686133 -2.068621 +v -1.109136 6.187971 4.078715 +v -0.613250 6.189570 3.985306 +v -1.109136 6.193875 2.563060 +v -1.109136 6.187971 4.078715 +v -0.823423 6.188930 3.832172 +v -0.808240 7.456246 0.114420 +v -1.109136 7.447666 2.316916 +v -1.109136 6.483851 2.313161 +v -0.839998 6.483851 2.313161 +v -0.855295 6.193875 2.563060 +v -0.855096 7.454038 0.681172 +v -0.851242 7.447666 2.316916 +v -0.839998 6.483851 2.313161 +v -0.613250 5.916148 3.869261 +v -0.613250 5.905007 4.230343 +v -0.367306 5.610397 4.110494 +v -0.613250 6.189570 3.985306 +v -0.613250 6.186937 4.344060 +v -0.804550 1.432484 2.382775 +v -0.804550 1.432484 2.382775 +v -0.836434 1.761413 1.534160 +v -0.864811 1.209287 1.297543 +v -0.866598 1.383340 1.228519 +v -1.109136 1.608211 2.157616 +v -1.109136 1.854146 1.546994 +v -0.836434 1.761413 1.534160 +v -1.109136 1.746315 1.309461 +v -0.853872 1.693580 1.365606 +v -1.109136 1.421237 1.150594 +v -0.866598 1.383340 1.228519 +v -1.109136 1.152737 1.225781 +v -0.864811 1.209287 1.297543 +v -1.109136 0.828570 1.868721 +v -0.775337 0.764493 2.107609 +v -0.818644 -8.777006 -1.761974 +v -1.326758 -8.130615 -6.048566 +v -1.332151 -7.578506 -5.806304 +v -0.882817 -7.449294 -6.242331 +v -1.263812 -9.320386 -2.284041 +v -1.260158 -8.694220 -2.041337 +v -0.527911 -9.865828 -0.558223 +v -0.549908 -9.201518 -0.329464 +v -0.855295 6.193875 2.563060 +v -0.637953 7.455005 0.432841 +v -0.610240 6.670014 0.107513 +v -0.586664 6.044359 -0.058251 +v -0.413784 6.208827 -0.016872 +v -0.629678 6.747400 -0.181054 +v -0.645065 7.456246 0.114420 +v -0.610240 6.670014 0.107513 +v -0.784480 5.973367 0.123958 +v -0.637953 7.455005 0.432841 +v -0.413784 6.208827 -0.016872 +v -0.440888 6.323021 -0.358271 +v -0.807799 6.186929 4.345726 +v -0.613250 6.189570 3.985306 +v 0.586664 6.044359 -0.058251 +v 0.889556 -7.991921 -6.487401 +v -0.889556 -7.991921 -6.487401 +v 0.784480 5.973367 0.123958 +v 0.855096 7.454038 0.681172 +v 0.610240 6.670014 0.107513 +v 0.637953 7.455005 0.432841 +v 0.645065 7.456246 0.114420 +v 0.610240 6.670014 0.107513 +v 1.109136 6.187971 4.078715 +v 1.109136 6.193875 2.563060 +v 0.823423 6.188930 3.832172 +v 0.851242 7.447666 2.316916 +v 0.839998 6.483851 2.313161 +v 0.855295 6.193875 2.563060 +v 0.413784 6.208827 -0.016872 +v 0.440888 6.323021 -0.358271 +v 0.413784 6.208827 -0.016872 +v 0.629678 6.747400 -0.181054 +v 0.807799 6.186929 4.345726 +v 0.613250 6.189570 3.985306 +v 0.784649 4.758710 3.184810 +v 0.586664 6.044359 -0.058251 +v 0.613250 6.186937 4.344060 +v 0.613250 6.189570 3.985306 +v 0.823423 6.188930 3.832172 +v 0.808240 7.456246 0.114420 +v 1.109136 7.447666 2.316916 +v 0.851242 7.447666 2.316916 +v 0.839998 6.483851 2.313161 +v 1.109136 6.483851 2.313161 +v 0.855295 6.193875 2.563060 +v -0.330292 5.643600 3.823889 +v 0.367306 5.610397 4.110494 +v 0.613250 5.916148 3.869261 +v 0.330292 5.643600 3.823889 +v 0.613250 5.905007 4.230343 +v 0.613250 6.186937 4.344060 +v 0.807799 6.186929 4.345726 +v 0.804550 1.432484 2.382775 +v 0.804550 1.432484 2.382775 +v 0.775337 0.764493 2.107609 +v 0.864811 1.209287 1.297543 +v 0.866598 1.383340 1.228519 +v 0.853872 1.693580 1.365606 +v 0.836434 1.761413 1.534160 +v 1.109136 1.608211 2.157616 +v 0.804550 1.432484 2.382775 +v 0.836434 1.761413 1.534160 +v 1.109136 1.854146 1.546994 +v 0.853872 1.693580 1.365606 +v 1.109136 1.746315 1.309461 +v 0.866598 1.383340 1.228519 +v 1.109136 1.421237 1.150594 +v 0.864811 1.209287 1.297543 +v 1.109136 1.152737 1.225781 +v 0.775337 0.764493 2.107609 +v 1.109136 0.828570 1.868721 +v 0.775337 0.764493 2.107609 +v 0.818644 -8.777006 -1.761974 +v -0.613250 6.186937 4.344060 +v 1.326758 -8.130615 -6.048566 +v 0.882817 -7.449294 -6.242331 +v 1.332151 -7.578506 -5.806304 +v 1.260158 -8.694220 -2.041337 +v 1.263812 -9.320386 -2.284041 +v 0.549908 -9.201518 -0.329464 +v 0.637953 7.455005 0.432841 +v 0.610240 6.670014 0.107513 +v 0.586664 6.044359 -0.058251 +v -0.586664 6.044359 -0.058251 +v -0.639183 4.693711 3.350439 +v 0.639183 4.693711 3.350439 +v 0.784649 4.758710 3.184810 +v -1.109136 7.447666 2.316916 +v -0.851242 7.447666 2.316916 +v -0.807799 6.186929 4.345726 +v -0.775337 0.764493 2.107609 +v -0.853872 1.693580 1.365606 +v -0.804550 1.432484 2.382775 +v -0.775337 0.764493 2.107609 +v 0.613250 6.189570 3.985306 +v 1.109136 0.828570 1.868721 +v 0.527911 -9.865828 -0.558223 +v 0.645065 7.456246 0.114420 +v -0.645065 7.456246 0.114420 +vt 0.318637 0.836460 +vt 0.322686 0.835525 +vt 0.318469 0.836302 +vt 0.322662 0.829447 +vt 0.322506 0.829146 +vt 0.318606 0.828545 +vt 0.318439 0.828704 +vt 0.322533 0.835828 +vt 0.335540 0.815841 +vt 0.335689 0.816068 +vt 0.335880 0.815923 +vt 0.335363 0.817407 +vt 0.335570 0.817415 +vt 0.335928 0.815727 +vt 0.335827 0.815658 +vt 0.338110 0.834998 +vt 0.338521 0.834581 +vt 0.338361 0.834565 +vt 0.338450 0.830987 +vt 0.338327 0.831013 +vt 0.338045 0.830721 +vt 0.337797 0.829353 +vt 0.336791 0.829355 +vt 0.338509 0.816056 +vt 0.338639 0.815806 +vt 0.338293 0.815922 +vt 0.338229 0.815719 +vt 0.338328 0.815642 +vt 0.336756 0.815704 +vt 0.337372 0.815710 +vt 0.337407 0.815436 +vt 0.338796 0.817419 +vt 0.338027 0.834876 +vt 0.336577 0.834878 +vt 0.336494 0.835000 +vt 0.336242 0.834568 +vt 0.336082 0.834585 +vt 0.336266 0.831016 +vt 0.351326 0.453820 +vt 0.352262 0.453765 +vt 0.352318 0.454386 +vt 0.365837 0.453882 +vt 0.365836 0.454819 +vt 0.367442 0.455473 +vt 0.371353 0.455145 +vt 0.371355 0.453566 +vt 0.370947 0.453178 +vt 0.367444 0.453230 +vt 0.370945 0.455532 +vt 0.336143 0.830990 +vt 0.336546 0.830723 +vt 0.336722 0.815432 +vt 0.339004 0.817387 +vt 0.351343 0.454443 +vt 0.336608 0.810165 +vt 0.336600 0.809579 +vt 0.335671 0.810452 +vt 0.335670 0.810656 +vt 0.337063 0.810641 +vt 0.336849 0.810420 +vt 0.335654 0.809318 +vt 0.336833 0.809316 +vt 0.308406 0.833228 +vt 0.321347 0.832873 +vt 0.308400 0.831858 +vt 0.323003 0.827899 +vt 0.318606 0.827962 +vt 0.322837 0.831313 +vt 0.308428 0.831448 +vt 0.318119 0.828727 +vt 0.317924 0.828577 +vt 0.334726 0.805815 +vt 0.334724 0.806084 +vt 0.334898 0.805815 +vt 0.333853 0.806363 +vt 0.333448 0.810373 +vt 0.334505 0.806366 +vt 0.333637 0.805810 +vt 0.333465 0.805809 +vt 0.333636 0.806080 +vt 0.333393 0.820149 +vt 0.334845 0.820155 +vt 0.333471 0.811014 +vt 0.318642 0.837043 +vt 0.322847 0.833658 +vt 0.318149 0.836281 +vt 0.308437 0.833638 +vt 0.317955 0.836433 +vt 0.321830 0.833071 +vt 0.321344 0.832110 +vt 0.321826 0.831909 +vt 0.338990 0.829527 +vt 0.338986 0.832448 +vt 0.340382 0.829528 +vt 0.323455 0.829763 +vt 0.308753 0.828027 +vt 0.334875 0.810379 +vt 0.334847 0.811020 +vt 0.317906 0.837069 +vt 0.308789 0.837056 +vt 0.323039 0.837070 +vt 0.337112 0.810416 +vt 0.335399 0.818676 +vt 0.335644 0.820232 +vt 0.335864 0.819933 +vt 0.322740 0.833285 +vt 0.335363 0.817407 +vt 0.335368 0.818297 +vt 0.335604 0.818285 +vt 0.335628 0.818648 +vt 0.336965 0.813654 +vt 0.337545 0.812323 +vt 0.336761 0.811981 +vt 0.336450 0.819974 +vt 0.336387 0.820399 +vt 0.336865 0.820333 +vt 0.336109 0.820051 +vt 0.336132 0.820332 +vt 0.318573 0.837406 +vt 0.297273 0.862936 +vt 0.296468 0.862987 +vt 0.296450 0.863484 +vt 0.296375 0.863361 +vt 0.296982 0.862655 +vt 0.296349 0.862774 +vt 0.296468 0.862987 +vt 0.296171 0.863007 +vt 0.296386 0.863086 +vt 0.296139 0.863393 +vt 0.296375 0.863361 +vt 0.296301 0.863656 +vt 0.296450 0.863484 +vt 0.296981 0.863857 +vt 0.297271 0.863612 +vt 0.308818 0.837437 +vt 0.360171 0.453244 +vt 0.360165 0.453779 +vt 0.359601 0.453718 +vt 0.363650 0.453662 +vt 0.363616 0.454257 +vt 0.365371 0.453864 +vt 0.365306 0.454484 +vt 0.336615 0.811674 +vt 0.336865 0.813929 +vt 0.336111 0.813900 +vt 0.335542 0.813822 +vt 0.335664 0.813999 +vt 0.336339 0.815514 +vt 0.335928 0.815727 +vt 0.336384 0.815738 +vt 0.335562 0.813576 +vt 0.335880 0.815923 +vt 0.336756 0.815704 +vt 0.336722 0.815432 +vt 0.335975 0.820462 +vt 0.336109 0.820051 +vt 0.335363 0.814848 +vt 0.358032 0.453178 +vt 0.359611 0.453190 +vt 0.335454 0.806199 +vt 0.336854 0.806081 +vt 0.335993 0.805859 +vt 0.338293 0.815922 +vt 0.338229 0.815719 +vt 0.337754 0.815749 +vt 0.338970 0.820225 +vt 0.339108 0.818663 +vt 0.338736 0.819939 +vt 0.337473 0.807394 +vt 0.336699 0.807758 +vt 0.336562 0.808069 +vt 0.335538 0.814723 +vt 0.337407 0.815436 +vt 0.337372 0.815710 +vt 0.337796 0.815517 +vt 0.338647 0.820469 +vt 0.338501 0.820063 +vt 0.335647 0.809115 +vt 0.335427 0.805954 +vt 0.338482 0.820342 +vt 0.337096 0.809313 +vt 0.337040 0.809089 +vt 0.322734 0.831687 +vt 0.339004 0.817387 +vt 0.338796 0.817419 +vt 0.338866 0.818294 +vt 0.339103 0.818281 +vt 0.338879 0.818655 +vt 0.336917 0.819991 +vt 0.337747 0.820341 +vt 0.338164 0.819987 +vt 0.337700 0.819998 +vt 0.338225 0.820410 +vt 0.338482 0.820342 +vt 0.323089 0.827553 +vt 0.318534 0.827599 +vt 0.299359 0.862966 +vt 0.299357 0.863640 +vt 0.300188 0.863503 +vt 0.300265 0.863381 +vt 0.300257 0.863103 +vt 0.300174 0.863004 +vt 0.299646 0.862698 +vt 0.299359 0.862966 +vt 0.300174 0.863004 +vt 0.300297 0.862779 +vt 0.300257 0.863103 +vt 0.300477 0.863024 +vt 0.300265 0.863381 +vt 0.300502 0.863417 +vt 0.300188 0.863503 +vt 0.300332 0.863678 +vt 0.299357 0.863640 +vt 0.317870 0.827942 +vt 0.317895 0.827574 +vt 0.308779 0.827646 +vt 0.336132 0.820332 +vt 0.357471 0.453223 +vt 0.358034 0.453706 +vt 0.357469 0.453758 +vt 0.354011 0.454184 +vt 0.353986 0.453589 +vt 0.352318 0.454386 +vt 0.336746 0.805809 +vt 0.335925 0.814967 +vt 0.340207 0.829355 +vt 0.339165 0.829353 +vt 0.339115 0.832606 +vt 0.340249 0.832608 +vt 0.340379 0.832450 +vt 0.323476 0.835203 +vt 0.335570 0.817415 +vt 0.323128 0.837416 +vt 0.297271 0.863612 +vt 0.296386 0.863086 +vt 0.297273 0.862936 +vt 0.317935 0.837436 +vt 0.338501 0.820063 +vt 0.299652 0.863857 +vt 0.352262 0.453765 +vt 0.322736 0.831880 +vt 0.322741 0.833092 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0039 +vn -0.0000 0.9588 0.2841 +vn 0.0000 0.9484 0.3172 +vn 0.0000 -0.3256 0.9455 +vn 0.0000 -0.9535 -0.3014 +vn 0.1103 0.4144 -0.9034 +vn -0.0735 0.4256 -0.9019 +vn 0.3275 0.3966 -0.8576 +vn 0.9708 0.1320 -0.2001 +vn 0.7758 0.2586 -0.5755 +vn 0.4477 0.3447 -0.8251 +vn -0.3560 0.3788 -0.8543 +vn -0.5482 0.3301 -0.7685 +vn -0.1944 0.3772 -0.9055 +vn -0.0010 0.3847 -0.9230 +vn 0.1540 0.3797 -0.9122 +vn 0.8357 -0.2111 0.5070 +vn 0.9636 -0.1035 0.2467 +vn 0.9886 0.0575 -0.1389 +vn 0.9535 0.1154 -0.2784 +vn -0.0080 -0.3741 0.9274 +vn 0.0012 -0.3791 0.9254 +vn 0.2219 -0.3696 0.9023 +vn -0.0034 -0.3819 0.9242 +vn -0.1726 -0.3764 0.9102 +vn 0.0022 -0.3819 0.9242 +vn 0.0080 -0.3741 0.9274 +vn -0.2219 -0.3696 0.9023 +vn -0.0011 -0.3791 0.9254 +vn -0.4729 -0.3319 0.8162 +vn 0.3572 -0.3516 0.8653 +vn -0.1539 -0.3721 0.9154 +vn -0.9636 -0.1035 0.2467 +vn -0.9886 0.0575 -0.1389 +vn -0.9535 0.1154 -0.2784 +vn -0.0009 0.3847 -0.9230 +vn 0.0010 0.3847 -0.9230 +vn 0.0009 0.3847 -0.9230 +vn 0.0000 0.9310 0.3650 +vn 0.0000 0.9300 0.3676 +vn 0.0000 0.9302 0.3669 +vn 0.9710 -0.0914 0.2209 +vn 0.2322 -0.3719 0.8988 +vn 0.1539 -0.3734 0.9148 +vn -0.8442 -0.2022 0.4964 +vn -0.9710 -0.0914 0.2209 +vn -0.8357 -0.2111 0.5070 +vn 0.5563 0.3246 -0.7649 +vn 0.0001 0.9608 0.2772 +vn -0.0015 1.0000 0.0040 +vn -0.0014 1.0000 0.0023 +vn -0.5115 0.3297 -0.7935 +vn 0.0000 -0.0039 1.0000 +vn 0.0001 0.4597 0.8881 +vn 0.0000 0.2278 0.9737 +vn -0.0000 0.8351 0.5501 +vn 0.9387 -0.0984 0.3305 +vn 0.9999 0.0117 -0.0023 +vn 0.9998 0.0092 0.0149 +vn 0.9323 0.3580 0.0512 +vn 0.9411 0.3379 0.0104 +vn 0.5309 0.8401 0.1116 +vn -0.9980 -0.0211 0.0598 +vn -0.9970 0.0146 0.0763 +vn -0.9979 -0.0076 0.0647 +vn -0.9959 0.0068 0.0899 +vn -0.2927 -0.8910 -0.3470 +vn -0.3083 -0.9391 0.1520 +vn -0.3077 -0.9451 -0.1103 +vn -0.3087 -0.5872 0.7483 +vn -0.2906 -0.7546 0.5883 +vn -0.3189 0.0702 0.9452 +vn -0.3014 -0.1559 0.9407 +vn -0.2877 0.6969 0.6569 +vn -0.3131 0.5002 0.8073 +vn -0.1491 0.8829 0.4452 +vn -0.2405 0.8515 0.4659 +vn -0.9295 0.1497 -0.3372 +vn -0.9281 0.1420 -0.3443 +vn -0.3883 0.3779 -0.8405 +vn -0.9660 -0.0947 0.2406 +vn -0.9906 -0.0493 0.1279 +vn -0.9257 -0.1502 0.3472 +vn -0.9273 -0.1397 0.3472 +vn 0.9997 0.0240 0.0100 +vn 0.9368 -0.1053 0.3338 +vn 0.8731 -0.0619 0.4836 +vn 0.2534 -0.2345 0.9385 +vn 0.0038 -0.2478 0.9688 +vn 0.9613 0.2751 0.0139 +vn 0.9983 0.0446 -0.0387 +vn 0.8731 -0.0618 0.4836 +vn 0.9557 -0.0568 0.2888 +vn 0.9367 -0.1053 0.3338 +vn 0.9220 0.3843 0.0482 +vn 0.9207 0.3862 0.0561 +vn -0.0011 1.0000 0.0067 +vn -0.0020 1.0000 0.0042 +vn -0.1880 -0.2385 0.9528 +vn 0.2591 0.4017 -0.8784 +vn -0.3925 0.3826 -0.8364 +vn -0.9557 -0.0568 0.2888 +vn -0.9387 -0.0984 0.3305 +vn -0.8731 -0.0618 0.4836 +vn -0.9367 -0.1053 0.3338 +vn -0.9983 0.0446 -0.0387 +vn 0.0015 1.0000 0.0040 +vn -0.0000 0.9608 0.2772 +vn 0.0012 1.0000 0.0025 +vn -0.9999 0.0117 -0.0023 +vn -0.9998 0.0092 0.0149 +vn -0.9997 0.0240 0.0100 +vn -0.0058 -0.2497 0.9683 +vn -0.9207 0.3862 0.0561 +vn -0.9220 0.3843 0.0482 +vn -0.9613 0.2751 0.0139 +vn 0.0011 1.0000 0.0067 +vn 0.0020 1.0000 0.0042 +vn -0.9140 0.1852 -0.3611 +vn -0.0000 1.0000 0.0073 +vn -0.5563 0.3246 -0.7649 +vn -0.7857 0.2615 -0.5606 +vn 0.5115 0.3297 -0.7935 +vn 0.0000 0.4597 0.8881 +vn 0.2491 0.9578 0.1431 +vn -0.4021 0.9083 0.1151 +vn -0.9323 0.3580 0.0512 +vn -0.3771 0.9132 0.1545 +vn -0.9411 0.3379 0.0104 +vn 0.9980 -0.0211 0.0598 +vn 0.9949 -0.0724 0.0701 +vn 0.9979 -0.0076 0.0647 +vn 0.9959 0.0068 0.0899 +vn 0.9944 -0.0057 0.1052 +vn 0.9970 0.0146 0.0763 +vn 0.2927 -0.8910 -0.3470 +vn 0.2692 -0.9013 -0.3393 +vn 0.3091 -0.9446 -0.1104 +vn 0.3083 -0.9391 0.1520 +vn 0.2906 -0.7546 0.5883 +vn 0.3087 -0.5872 0.7483 +vn 0.3014 -0.1559 0.9407 +vn 0.3189 0.0702 0.9452 +vn 0.3131 0.5002 0.8073 +vn 0.2877 0.6969 0.6569 +vn 0.2405 0.8515 0.4659 +vn 0.8442 -0.2022 0.4964 +vn 0.1539 -0.3733 0.9148 +vn 0.9294 0.1498 -0.3372 +vn 0.5126 0.3515 -0.7834 +vn 0.9281 0.1420 -0.3443 +vn 0.9906 -0.0493 0.1279 +vn 0.9660 -0.0947 0.2406 +vn 0.9273 -0.1397 0.3472 +vn -0.9368 -0.1053 0.3338 +vn -0.8731 -0.0619 0.4836 +vn 0.0000 0.9318 0.3630 +vn 0.0000 0.9309 0.3653 +vn -0.0000 0.9303 0.3668 +vn -0.9949 -0.0724 0.0701 +vn -0.9944 -0.0057 0.1052 +vn -0.2692 -0.9013 -0.3393 +vn -0.1539 -0.3720 0.9154 +vn 0.1491 0.8829 0.4452 +vn 0.9257 -0.1502 0.3472 +vn 0.0000 0.3847 -0.9230 +s off +f 1230/1241/381 1231/1242/381 1232/1243/381 +f 1233/1244/382 1234/1245/382 1235/1246/382 +f 1233/1244/382 1235/1246/382 1236/1247/382 +f 1230/1241/381 1237/1248/381 1231/1242/381 +f 1238/1249/383 1239/1250/383 1240/1251/383 +f 1238/1249/383 1241/1252/383 1242/1253/383 +f 1240/1251/383 1243/1254/383 1244/1255/383 +f 1245/1256/384 1246/1257/384 1247/1258/384 +f 1246/1257/384 1248/1259/384 1249/1260/384 +f 1244/1255/383 1238/1249/383 1240/1251/383 +f 1250/1261/384 1251/1262/384 1252/1263/384 +f 1253/1264/383 1254/1265/383 1255/1266/383 +f 1256/1267/383 1255/1266/383 1257/1268/383 +f 1258/1269/385 1259/1270/385 1260/1271/385 +f 1254/1265/383 1253/1264/383 1261/1272/383 +f 1245/1256/384 1262/1273/384 1263/1274/384 +f 1264/1275/384 1263/1274/384 1265/1276/384 +f 1266/1277/384 1265/1276/384 1267/1278/384 +f 1268/1279/386 1269/1280/386 1270/1281/386 +f 1254/1265/383 1257/1268/383 1255/1266/383 +f 1271/1282/387 1272/1283/387 1273/1284/387 +f 1274/1285/387 1275/1286/387 1276/1287/387 +f 1277/1288/387 1273/1284/387 1278/1289/387 +f 1279/1290/384 1267/1278/384 1280/1291/384 +f 1239/1250/383 1238/1249/383 1242/1253/383 +f 1262/1273/384 1245/1256/384 1247/1258/384 +f 1247/1258/384 1246/1257/384 1249/1260/384 +f 1280/1291/384 1250/1261/384 1252/1263/384 +f 1281/1292/385 1258/1269/385 1260/1271/385 +f 1282/1293/383 1254/1265/383 1261/1272/383 +f 1264/1275/384 1245/1256/384 1263/1274/384 +f 1266/1277/384 1264/1275/384 1265/1276/384 +f 1279/1290/384 1266/1277/384 1267/1278/384 +f 1283/1294/386 1268/1279/386 1270/1281/386 +f 1277/1288/387 1271/1282/387 1273/1284/387 +f 1278/1289/387 1274/1285/387 1276/1287/387 +f 1276/1287/387 1277/1288/387 1278/1289/387 +f 1252/1263/384 1279/1290/384 1280/1291/384 +f 1250/1261/384 1249/1260/384 1251/1262/384 +s 1 +f 1284/1295/388 1285/1296/389 1286/1297/390 +f 1286/1297/390 1287/1298/391 1288/1299/392 +f 1286/1297/390 1289/1300/393 1284/1295/388 +f 1285/1296/389 1290/1301/394 1286/1297/390 +f 1285/1296/389 1291/1302/395 1290/1301/394 +f 1292/1303/396 1293/1304/397 1294/1305/398 +f 1295/1306/399 1296/1307/400 1234/1245/382 +f 1297/1308/401 1233/1244/382 1236/1247/382 +f 1298/1309/402 1297/1308/401 1299/1310/382 +f 1299/1310/382 1300/1311/382 1298/1309/402 +f 1301/1312/403 1302/1313/404 1303/1314/405 +f 1304/1315/406 1305/1316/407 1306/1317/408 +f 1307/1318/409 1308/1319/410 1309/1320/411 +f 1310/1321/412 1311/1322/413 1312/1323/414 +f 1230/1241/381 1313/1324/415 1237/1248/381 +f 1232/1243/381 1314/1325/416 1315/1326/381 +f 1315/1326/381 1316/1327/417 1317/1328/381 +f 1292/1303/396 1318/1329/418 1293/1304/397 +f 1293/1304/397 1319/1330/419 1294/1305/398 +f 1294/1305/398 1319/1330/419 1320/1331/420 +f 1321/1332/421 1322/1333/422 1323/1334/423 +f 1297/1308/401 1324/1335/382 1233/1244/382 +f 1296/1307/400 1235/1246/382 1234/1245/382 +f 1297/1308/401 1236/1247/382 1299/1310/382 +f 1300/1311/382 1325/1336/424 1298/1309/402 +f 1302/1313/404 1326/1337/425 1303/1314/405 +f 1302/1313/404 1306/1317/408 1326/1337/425 +f 1305/1316/407 1326/1337/425 1306/1317/408 +f 1304/1315/406 1309/1320/411 1305/1316/407 +f 1308/1319/410 1305/1316/407 1309/1320/411 +f 1311/1322/413 1327/1338/426 1312/1323/414 +f 1328/1339/427 1317/1328/381 1329/1340/428 +f 1231/1242/381 1314/1325/416 1232/1243/381 +f 1313/1324/415 1330/1341/429 1237/1248/381 +f 1314/1325/416 1316/1327/417 1315/1326/381 +f 1316/1327/417 1329/1340/428 1317/1328/381 +f 1288/1299/392 1331/1342/430 1289/1300/393 +f 1332/1343/431 1333/1344/432 1334/1345/433 +f 1335/1346/434 1292/1303/396 1316/1327/417 +f 1336/1347/435 1337/1348/436 1338/1349/437 +f 1337/1348/436 1332/1343/431 1339/1350/438 +f 1340/1351/439 1341/1352/440 1342/1353/441 +f 1343/1354/442 1344/1355/443 1345/1356/444 +f 1343/1354/442 1346/1357/382 1347/1358/382 +f 1330/1341/429 1313/1324/415 1348/1359/407 +f 1349/1360/445 1350/1361/446 1351/1362/447 +f 1352/1363/448 1351/1362/447 1350/1361/446 +f 1353/1364/449 1354/1365/450 1355/1366/451 +f 1354/1365/450 1356/1367/452 1357/1368/453 +f 1356/1367/452 1358/1369/454 1359/1370/455 +f 1358/1369/454 1360/1371/456 1361/1372/457 +f 1360/1371/456 1362/1373/458 1363/1374/459 +f 1328/1339/427 1329/1340/428 1364/1375/412 +f 1365/1376/460 1366/1377/461 1367/1378/462 +f 1365/1376/460 1368/1379/463 1369/1380/464 +f 1368/1379/463 1370/1381/465 1371/1382/466 +f 1287/1298/391 1372/1383/467 1288/1299/392 +f 1373/1384/468 1340/1351/439 1374/1385/469 +f 1374/1385/469 1375/1386/470 1376/1387/471 +f 1377/1388/472 1378/1389/473 1379/1390/474 +f 1340/1351/439 1380/1391/475 1374/1385/469 +f 1378/1389/473 1381/1392/476 1379/1390/474 +f 1380/1391/475 1342/1353/441 1372/1383/467 +f 1382/1393/477 1383/1394/478 1377/1388/472 +f 1333/1344/432 1384/1395/479 1385/1396/480 +f 1380/1391/475 1340/1351/439 1342/1353/441 +f 1339/1350/438 1332/1343/431 1334/1345/433 +f 1287/1298/391 1380/1391/475 1372/1383/467 +f 1374/1385/469 1380/1391/475 1375/1386/470 +f 1375/1386/470 1386/1397/481 1376/1387/471 +f 1379/1390/474 1382/1393/477 1377/1388/472 +f 1387/1398/482 1388/1399/483 1367/1378/462 +f 1389/1400/484 1390/1401/485 1391/1402/486 +f 1392/1403/487 1393/1404/488 1394/1405/486 +f 1395/1406/489 1396/1407/490 1397/1408/491 +f 1398/1409/492 1390/1401/485 1399/1410/493 +f 1399/1410/493 1389/1400/484 1400/1411/494 +f 1376/1387/471 1386/1397/481 1401/1412/495 +f 1402/1413/496 1403/1414/497 1404/1415/498 +f 1405/1416/499 1395/1406/489 1406/1417/500 +f 1390/1401/485 1389/1400/484 1399/1410/493 +f 1389/1400/484 1407/1418/501 1400/1411/494 +f 1389/1400/484 1391/1402/486 1408/1419/481 +f 1403/1414/497 1394/1405/486 1404/1415/498 +f 1395/1406/489 1397/1408/491 1406/1417/500 +f 1405/1416/499 1406/1417/500 1409/1420/502 +f 1291/1302/395 1410/1421/503 1411/1422/504 +f 1334/1345/433 1333/1344/432 1385/1396/480 +f 1412/1423/505 1297/1308/401 1298/1309/402 +f 1413/1424/435 1414/1425/435 1415/1426/437 +f 1416/1427/506 1415/1426/437 1417/1428/438 +f 1418/1429/507 1345/1356/444 1419/1430/508 +f 1420/1431/509 1421/1432/510 1419/1430/508 +f 1420/1431/509 1422/1433/511 1423/1434/381 +f 1295/1306/399 1424/1435/405 1425/1436/425 +f 1426/1437/512 1427/1438/513 1428/1439/514 +f 1429/1440/515 1430/1441/516 1431/1442/517 +f 1432/1443/518 1433/1444/519 1434/1445/520 +f 1435/1446/521 1434/1445/520 1436/1447/522 +f 1437/1448/523 1436/1447/522 1438/1449/524 +f 1439/1450/525 1438/1449/524 1440/1451/526 +f 1441/1452/527 1440/1451/526 1442/1453/528 +f 1443/1454/529 1444/1455/530 1445/1456/413 +f 1385/1396/480 1384/1395/479 1446/1457/502 +f 1447/1458/531 1387/1398/482 1448/1459/532 +f 1447/1458/531 1449/1460/533 1450/1461/534 +f 1451/1462/535 1450/1461/534 1452/1463/536 +f 1400/1411/494 1407/1418/501 1411/1422/504 +f 1390/1401/485 1453/1464/537 1391/1402/486 +f 1386/1397/481 1454/1465/538 1401/1412/495 +f 1393/1404/488 1404/1415/498 1394/1405/486 +f 1396/1407/490 1417/1428/438 1397/1408/491 +f 1249/1260/384 1248/1259/384 1251/1262/384 +f 1312/1323/414 1327/1338/426 1305/1316/407 +f 1455/1466/539 1456/1467/539 1321/1332/421 +f 1457/1468/540 1458/1469/540 1459/1470/541 +f 1322/1333/422 1459/1470/541 1323/1334/423 +f 1411/1422/504 1407/1418/501 1291/1302/395 +f 1300/1311/382 1443/1454/529 1325/1336/424 +f 1327/1338/426 1326/1337/425 1305/1316/407 +f 1231/1242/381 1460/1471/381 1314/1325/416 +f 1407/1418/501 1290/1301/394 1291/1302/395 +f 1289/1300/393 1286/1297/390 1288/1299/392 +f 1314/1325/416 1335/1346/434 1316/1327/417 +f 1461/1472/435 1336/1347/435 1338/1349/437 +f 1338/1349/437 1337/1348/436 1339/1350/438 +f 1418/1429/507 1343/1354/442 1345/1356/444 +f 1344/1355/443 1343/1354/442 1347/1358/382 +f 1462/1473/410 1330/1341/429 1348/1359/407 +f 1463/1474/542 1349/1360/445 1351/1362/447 +f 1464/1475/543 1352/1363/448 1350/1361/446 +f 1465/1476/544 1353/1364/449 1355/1366/451 +f 1355/1366/451 1354/1365/450 1357/1368/453 +f 1357/1368/453 1356/1367/452 1359/1370/455 +f 1359/1370/455 1358/1369/454 1361/1372/457 +f 1361/1372/457 1360/1371/456 1363/1374/459 +f 1466/1477/545 1328/1339/427 1364/1375/412 +f 1388/1399/483 1365/1376/460 1367/1378/462 +f 1366/1377/461 1365/1376/460 1369/1380/464 +f 1369/1380/464 1368/1379/463 1371/1382/466 +f 1448/1459/532 1387/1398/482 1367/1378/462 +f 1294/1305/398 1412/1423/505 1298/1309/402 +f 1416/1427/506 1413/1424/435 1415/1426/437 +f 1396/1407/490 1416/1427/506 1417/1428/438 +f 1421/1432/510 1418/1429/507 1419/1430/508 +f 1422/1433/511 1420/1431/509 1419/1430/508 +f 1467/1478/381 1420/1431/509 1423/1434/381 +f 1296/1307/400 1295/1306/399 1425/1436/425 +f 1431/1442/517 1426/1437/512 1428/1439/514 +f 1428/1439/514 1429/1440/515 1431/1442/517 +f 1435/1446/521 1432/1443/518 1434/1445/520 +f 1437/1448/523 1435/1446/521 1436/1447/522 +f 1439/1450/525 1437/1448/523 1438/1449/524 +f 1441/1452/527 1439/1450/525 1440/1451/526 +f 1468/1479/546 1441/1452/527 1442/1453/528 +f 1325/1336/424 1443/1454/529 1445/1456/413 +f 1449/1460/533 1447/1458/531 1448/1459/532 +f 1451/1462/535 1447/1458/531 1450/1461/534 +f 1469/1480/547 1451/1462/535 1452/1463/536 +f 1323/1334/423 1455/1466/539 1321/1332/421 +f 1322/1333/422 1457/1468/540 1459/1470/541 +f 1294/1305/398 1320/1331/420 1470/1481/548 +f 1294/1305/398 1470/1481/548 1412/1423/505 +f 1292/1303/396 1335/1346/434 1471/1482/548 +f 1292/1303/396 1471/1482/548 1318/1329/418 o lower_pistol_0 v 1.709833 6.807340 5.318413 v 1.709833 6.807340 5.149458 v 1.965886 6.807340 5.149458 v 1.363295 6.807340 7.165412 v 1.363295 6.807340 5.318413 -v 1.882584 6.807340 5.848534 -v 2.253843 6.902664 -4.747440 +v 1.882584 6.807340 5.848535 +v 2.253843 6.902664 -4.747439 v 2.253843 6.534985 -3.056432 v 1.924818 6.534985 -3.056432 v 1.924818 6.930664 -2.831019 v 1.924818 6.534985 -3.056432 v 2.253843 6.534985 -3.056432 v 2.253843 6.534985 -3.056432 -v 2.253843 6.902664 -4.747440 +v 2.253843 6.902664 -4.747439 v 2.253843 7.162437 -4.697546 v 1.924818 6.930664 -2.831019 v 1.592578 6.930664 -2.831019 v 1.592578 7.603653 -2.269642 v 1.592578 6.534985 -3.056432 -v 1.592578 6.902664 -4.747440 +v 1.592578 6.902664 -4.747439 v 1.924818 6.125614 -1.931486 -v 1.592578 6.902664 -4.747440 +v 1.592578 6.902664 -4.747439 v 1.592578 7.162437 -4.697546 v 2.253843 7.162437 -4.697546 v 2.253843 7.603653 -2.269642 @@ -36,7 +4730,7 @@ v 2.253843 7.603653 -2.269642 v 1.592578 7.603653 -2.269642 v 1.592578 6.966193 -1.398447 v 1.592578 7.162437 -4.697546 -v 1.592578 6.902664 -4.747440 +v 1.592578 6.902664 -4.747439 v 1.592578 6.534985 -3.056432 v 2.253843 6.930664 -2.831019 v 2.253843 7.162437 -4.697546 @@ -53,32 +4747,32 @@ v 1.709833 7.118922 5.318413 v 1.363295 7.118922 5.318413 v 1.363295 6.807340 7.165412 v 1.363295 7.118922 10.804636 -v 1.363295 6.201984 10.638463 +v 1.363295 6.201983 10.638463 v 1.363295 6.617640 11.001136 v 1.363295 7.118922 10.804636 v 1.882584 7.118922 7.165412 v 1.363295 7.118922 5.318413 v 2.249606 7.118922 10.804636 v 2.249606 7.118922 7.165412 -v 1.709833 7.483091 5.848534 -v 1.709833 7.483091 5.848534 -v 1.882584 7.118922 5.848534 -v 1.965886 7.483091 5.848534 +v 1.709833 7.483090 5.848535 +v 1.709833 7.483090 5.848535 +v 1.882584 7.118922 5.848535 +v 1.965886 7.483090 5.848535 v 2.249606 7.118922 10.804636 v 2.249606 6.617640 11.001136 -v 2.249606 6.201984 10.638463 +v 2.249606 6.201983 10.638463 v 2.249606 7.118922 7.165412 v 1.363295 6.915576 11.004508 v 1.363295 6.411723 10.933466 -v 1.709833 7.118922 5.848534 -v 1.709833 7.118922 5.848534 -v 1.882584 6.807340 5.848534 -v 1.965886 6.807340 5.848534 +v 1.709833 7.118922 5.848535 +v 1.709833 7.118922 5.848535 +v 1.882584 6.807340 5.848535 +v 1.965886 6.807340 5.848535 v 2.249606 6.411723 10.933466 v 2.249606 6.807340 7.165412 v 2.249606 6.807340 7.165412 -v 2.249606 6.201984 10.638463 -v 1.363295 6.201984 10.638463 +v 2.249606 6.201983 10.638463 +v 1.363295 6.201983 10.638463 v 1.363295 6.915576 11.004508 v 2.249606 6.915576 11.004508 v 1.363295 6.617640 11.001136 @@ -95,96 +4789,96 @@ v 1.709833 7.483092 5.149458 v 1.965886 7.483092 5.149458 v 1.965886 7.483092 5.149458 v 1.709833 7.483092 5.149458 -v 1.709833 7.483091 5.848534 +v 1.709833 7.483090 5.848535 v 1.965886 6.807340 5.149458 v 1.965886 7.483092 5.149458 -v 1.965886 7.483091 5.848534 -v 1.882584 6.807340 5.848534 -v 1.882584 7.118922 5.848534 +v 1.965886 7.483090 5.848535 +v 1.882584 6.807340 5.848535 +v 1.882584 7.118922 5.848535 v 1.882584 7.118922 7.165412 v 1.882584 6.807340 7.165412 v 1.882584 7.118922 7.165412 v 2.249606 7.118922 7.165412 v 1.363295 6.807340 5.318413 -v 1.882584 7.118922 5.848534 +v 1.882584 7.118922 5.848535 v 1.709833 6.807340 5.318413 -v 1.709833 7.118922 5.848534 +v 1.709833 7.118922 5.848535 v 2.249606 6.915576 11.004508 v 0.741864 8.870750 5.649786 v 0.685393 8.586851 5.649786 -v 0.685393 8.586850 22.443676 +v 0.685393 8.586849 22.443676 v -1.051055 4.245723 5.289183 -v -1.051055 4.815592 5.698347 +v -1.051055 4.815591 5.698347 v -1.582758 4.978194 4.997455 v -1.051055 0.126897 9.525374 v -1.051055 0.126897 6.278877 v -1.051055 -0.223472 3.408138 -v -1.051055 5.194826 19.361946 -v -1.051055 4.834129 12.349441 -v -1.051055 4.834129 19.361946 +v -1.051055 5.194825 19.361946 +v -1.051055 4.834128 12.349441 +v -1.051055 4.834128 19.361946 v -1.582758 5.194827 5.282278 -v -1.373788 7.218983 19.361946 -v -1.373788 6.342138 19.361946 -v -0.857694 7.218983 19.361946 -v -1.051055 5.194826 19.361946 -v -0.857694 5.453606 19.361946 -v -1.373788 5.534110 19.361946 +v -1.373788 7.218982 19.361946 +v -1.373788 6.342137 19.361946 +v -0.857694 7.218982 19.361946 +v -1.051055 5.194825 19.361946 +v -0.857694 5.453605 19.361946 +v -1.373788 5.534109 19.361946 v 0.741864 8.870749 22.443676 -v 0.685393 8.586850 22.443676 -v 0.912610 8.492734 22.443676 +v 0.685393 8.586849 22.443676 +v 0.912610 8.492733 22.443676 v 0.987802 8.870749 22.443676 -v 0.912610 8.492734 22.443676 +v 0.912610 8.492733 22.443676 v 0.912610 8.492735 5.649786 v 0.987802 8.870750 5.649786 v 0.912610 8.492735 5.649786 v 0.685393 8.586851 5.649786 v 0.524577 8.346173 5.649786 -v 0.524577 8.346172 22.443676 -v 0.524577 8.346172 22.443676 -v 0.698482 8.172268 22.443676 -v 0.698482 8.172268 22.443676 +v 0.524577 8.346171 22.443676 +v 0.524577 8.346171 22.443676 +v 0.698482 8.172267 22.443676 +v 0.698482 8.172267 22.443676 v 0.698482 8.172269 5.649786 v 0.698482 8.172269 5.649786 v 0.524577 8.346173 5.649786 v 0.283899 8.185357 5.649786 -v 0.283899 8.185356 22.443676 -v 0.283899 8.185356 22.443676 -v 0.378015 7.958139 22.443676 -v 0.378015 7.958139 22.443676 -v 0.378015 7.958139 5.649786 -v 0.378015 7.958139 5.649786 +v 0.283899 8.185355 22.443676 +v 0.283899 8.185355 22.443676 +v 0.378015 7.958138 22.443676 +v 0.378015 7.958138 22.443676 +v 0.378015 7.958138 5.649786 +v 0.378015 7.958138 5.649786 v 0.283899 8.185357 5.649786 v 0.000000 8.128886 5.649786 -v 0.000000 8.128885 22.443676 -v 0.000000 8.128885 22.443676 -v 0.000000 7.882947 22.443676 -v 0.000000 7.882947 22.443676 -v 0.000000 7.882947 5.649786 -v 0.000000 7.882947 5.649786 +v 0.000000 8.128884 22.443676 +v 0.000000 8.128884 22.443676 +v 0.000000 7.882946 22.443676 +v 0.000000 7.882946 22.443676 +v 0.000000 7.882946 5.649786 +v 0.000000 7.882946 5.649786 v 0.000000 8.128886 5.649786 v 0.000000 8.128886 5.649786 v -0.283899 8.185357 5.649786 -v -0.283899 8.185356 22.443676 -v -0.283899 8.185356 22.443676 -v -0.378015 7.958139 22.443676 -v 0.000000 7.882947 22.443676 -v -0.378015 7.958139 22.443676 -v -0.378015 7.958139 5.649786 -v -0.378015 7.958139 5.649786 +v -0.283899 8.185355 22.443676 +v -0.283899 8.185355 22.443676 +v -0.378015 7.958138 22.443676 +v 0.000000 7.882946 22.443676 +v -0.378015 7.958138 22.443676 +v -0.378015 7.958138 5.649786 +v -0.378015 7.958138 5.649786 v -0.283899 8.185357 5.649786 v -0.524577 8.346173 5.649786 -v -0.524577 8.346172 22.443676 -v -0.524577 8.346172 22.443676 -v -0.698482 8.172268 22.443676 -v -0.698482 8.172268 22.443676 +v -0.524577 8.346171 22.443676 +v -0.524577 8.346171 22.443676 +v -0.698482 8.172267 22.443676 +v -0.698482 8.172267 22.443676 v -0.698482 8.172269 5.649786 v -0.698482 8.172269 5.649786 v -0.524577 8.346173 5.649786 v -0.685393 8.586851 5.649786 -v -0.685393 8.586850 22.443676 -v -0.685393 8.586850 22.443676 -v -0.912610 8.492734 22.443676 -v -0.912610 8.492734 22.443676 +v -0.685393 8.586849 22.443676 +v -0.685393 8.586849 22.443676 +v -0.912610 8.492733 22.443676 +v -0.912610 8.492733 22.443676 v -0.912610 8.492735 5.649786 v -0.912610 8.492735 5.649786 v -0.685393 8.586851 5.649786 @@ -197,58 +4891,58 @@ v -0.987802 8.870750 5.649786 v -0.987802 8.870750 5.649786 v -0.741864 8.870750 5.649786 v -0.685393 9.154650 5.649786 -v -0.685393 9.154649 22.443676 -v -0.685393 9.154649 22.443676 -v -0.912610 9.248765 22.443676 -v -0.912610 9.248765 22.443676 +v -0.685393 9.154648 22.443676 +v -0.685393 9.154648 22.443676 +v -0.912610 9.248764 22.443676 +v -0.912610 9.248764 22.443676 v -0.912610 9.248766 5.649786 v -0.912610 9.248766 5.649786 v -0.685393 9.154650 5.649786 v -0.524577 9.395328 5.649786 -v -0.524577 9.395327 22.443676 -v -0.524577 9.395327 22.443676 -v -0.698482 9.569231 22.443676 -v -0.698482 9.569231 22.443676 +v -0.524577 9.395326 22.443676 +v -0.524577 9.395326 22.443676 +v -0.698482 9.569230 22.443676 +v -0.698482 9.569230 22.443676 v -0.698482 9.569232 5.649786 v -0.698482 9.569232 5.649786 v -0.524577 9.395328 5.649786 v -0.283899 9.556144 5.649786 -v -0.283899 9.556143 22.443676 -v -0.283899 9.556143 22.443676 -v -0.378015 9.783359 22.443676 -v -0.378015 9.783359 22.443676 +v -0.283899 9.556142 22.443676 +v -0.283899 9.556142 22.443676 +v -0.378015 9.783358 22.443676 +v -0.378015 9.783358 22.443676 v -0.378015 9.783360 5.649786 v -0.378015 9.783360 5.649786 v -0.283899 9.556144 5.649786 v 0.000000 9.612615 5.649786 -v 0.000000 9.612614 22.443676 -v 0.000000 9.612614 22.443676 -v 0.000000 9.858551 22.443676 -v 0.000000 9.858551 22.443676 +v 0.000000 9.612613 22.443676 +v 0.000000 9.612613 22.443676 +v 0.000000 9.858550 22.443676 +v 0.000000 9.858550 22.443676 v 0.000000 9.858552 5.649786 v 0.000000 9.858552 5.649786 v 0.000000 9.612615 5.649786 v 0.283899 9.556144 5.649786 -v 0.283899 9.556143 22.443676 -v 0.283899 9.556143 22.443676 -v 0.378015 9.783359 22.443676 -v 0.378015 9.783359 22.443676 +v 0.283899 9.556142 22.443676 +v 0.283899 9.556142 22.443676 +v 0.378015 9.783358 22.443676 +v 0.378015 9.783358 22.443676 v 0.378015 9.783360 5.649786 v 0.378015 9.783360 5.649786 v 0.283899 9.556144 5.649786 v 0.524577 9.395328 5.649786 -v 0.524577 9.395327 22.443676 -v 0.524577 9.395327 22.443676 -v 0.698482 9.569231 22.443676 -v 0.698482 9.569231 22.443676 +v 0.524577 9.395326 22.443676 +v 0.524577 9.395326 22.443676 +v 0.698482 9.569230 22.443676 +v 0.698482 9.569230 22.443676 v 0.698482 9.569232 5.649786 v 0.698482 9.569232 5.649786 v 0.524577 9.395328 5.649786 v 0.685393 9.154650 5.649786 -v 0.685393 9.154649 22.443676 -v 0.685393 9.154649 22.443676 -v 0.912610 9.248765 22.443676 -v 0.912610 9.248765 22.443676 +v 0.685393 9.154648 22.443676 +v 0.685393 9.154648 22.443676 +v 0.912610 9.248764 22.443676 +v 0.912610 9.248764 22.443676 v 0.912610 9.248766 5.649786 v 0.912610 9.248766 5.649786 v 0.685393 9.154650 5.649786 @@ -359,8 +5053,8 @@ v -1.849792 2.296251 3.228978 v -1.880736 2.578792 3.289423 v -1.879857 2.017154 3.056580 v -1.803508 -5.875544 -4.913877 -v -1.803499 -6.096515 -4.976788 -v -2.130997 -6.177512 -4.485743 +v -1.803499 -6.096515 -4.976789 +v -2.130997 -6.177512 -4.485744 v -1.550631 -5.813593 -4.933243 v -1.550631 -6.027862 -4.968081 v -1.839455 4.411472 -0.653382 @@ -407,11 +5101,11 @@ v -2.176766 -7.604493 -1.548246 v -2.174624 4.663060 0.053574 v -2.163947 6.294227 -0.887580 v -2.176857 6.557230 -0.328893 -v -1.803505 6.986403 4.265715 +v -1.803505 6.986403 4.265716 v -2.129669 6.678270 3.948849 -v -1.550631 7.011675 4.277202 -v -1.803498 6.146345 4.785963 -v -1.550631 5.888644 4.797829 +v -1.550631 7.011675 4.277203 +v -1.803498 6.146345 4.785964 +v -1.550631 5.888644 4.797830 v -1.550631 6.141139 4.807182 v -1.803494 -8.338592 -1.148253 v -2.121051 -7.647707 -1.285315 @@ -540,10 +5234,10 @@ v -1.702916 6.582519 -2.275468 v 1.979996 6.582519 -2.275468 v -1.425465 5.714319 12.324278 v -1.425465 5.534111 12.470450 -v -1.425465 6.342138 12.470450 +v -1.425465 6.342137 12.470450 v 1.979996 6.582519 -2.275468 v -1.702916 6.727209 -2.215535 -v -1.373788 5.534110 19.361946 +v -1.373788 5.534109 19.361946 v -1.702916 6.727209 -2.215535 v 1.979996 6.727209 -2.215535 v 1.979996 6.727209 -2.215535 @@ -551,47 +5245,47 @@ v -1.425465 5.714319 12.324278 v -1.425465 6.129148 12.324278 v -1.582758 6.173631 12.234967 v -1.425465 5.534111 12.470450 -v -1.582758 5.657322 12.234967 +v -1.582758 5.657321 12.234967 v 1.979996 6.787141 -2.070845 v 0.000000 6.215098 -5.421183 -v -1.582758 6.749187 -4.912820 -v 1.582758 6.749187 -4.912820 -v 1.488590 5.921739 -5.685919 -v 0.000000 6.031166 -5.736894 +v -1.582758 6.749187 -4.912819 +v 1.582758 6.749187 -4.912819 +v 1.488590 5.921740 -5.685918 +v 0.000000 6.031167 -5.736894 v -1.582758 5.957942 -5.266877 -v -1.582758 5.870734 -4.399593 -v -1.582758 6.749187 -4.912820 +v -1.582758 5.870734 -4.399592 +v -1.582758 6.749187 -4.912819 v 1.582758 5.957942 -5.266877 -v 1.582758 6.154639 -5.365935 -v 1.582758 6.749187 -4.912820 -v 1.582758 5.848901 -5.238700 -v 1.582758 5.870734 -4.399593 +v 1.582758 6.154639 -5.365934 +v 1.582758 6.749187 -4.912819 +v 1.582758 5.848901 -5.238699 +v 1.582758 5.870734 -4.399592 v 0.983988 5.324528 -5.327059 -v -1.425465 6.342138 12.470450 -v -1.582758 6.342138 12.374792 -v -1.582758 5.848901 -5.238700 -v -1.484238 5.789522 -5.649559 +v -1.425465 6.342137 12.470450 +v -1.582758 6.342137 12.374792 +v -1.582758 5.848901 -5.238699 +v -1.484238 5.789523 -5.649559 v -0.983988 5.324528 -5.327059 -v 1.488590 5.921739 -5.685919 -v -1.425465 6.342138 12.470450 -v -1.373788 6.342138 19.361946 -v -1.582758 6.342138 18.331852 +v 1.488590 5.921740 -5.685918 +v -1.425465 6.342137 12.470450 +v -1.373788 6.342137 19.361946 +v -1.582758 6.342137 18.331852 v -1.051055 0.805342 10.660654 v -1.051055 0.446518 11.231197 v -1.051055 3.374604 10.660654 -v -1.051055 -0.223473 11.574593 +v -1.051055 -0.223474 11.574593 v -1.051055 0.200441 10.158533 v -0.836559 7.218984 0.486124 v -1.148529 7.218984 0.843372 -v -1.148529 -7.632973 -5.164885 -v -1.092400 5.576505 -6.393808 -v -1.582758 6.342138 18.331852 -v -1.582758 7.218983 18.331852 -v -1.582758 6.342138 12.374792 +v -1.148529 -7.632973 -5.164886 +v -1.092400 5.576506 -6.393807 +v -1.582758 6.342137 18.331852 +v -1.582758 7.218982 18.331852 +v -1.582758 6.342137 12.374792 v -1.051055 5.194827 6.202400 -v -1.051055 5.194826 19.361946 -v -1.582758 5.194826 18.331852 -v -1.373788 5.194826 19.361946 +v -1.051055 5.194825 19.361946 +v -1.582758 5.194825 18.331852 +v -1.373788 5.194825 19.361946 v -0.580398 3.816195 5.489355 v -0.580398 5.143752 5.307025 v -0.580398 4.250057 5.891657 @@ -601,12 +5295,12 @@ v -0.580398 4.410827 6.286258 v -0.580398 4.410827 8.504850 v -1.051055 4.410827 9.595867 v -1.582758 7.218984 -4.804955 -v -0.843982 7.218984 5.409399 +v -0.843982 7.218984 5.409400 v -1.148529 7.218984 4.965837 -v -0.957142 7.218984 5.409399 -v -1.582758 7.218984 5.409399 -v -1.582758 7.218984 5.409399 -v -1.582758 7.218983 18.331852 +v -0.957142 7.218984 5.409400 +v -1.582758 7.218984 5.409400 +v -1.582758 7.218984 5.409400 +v -1.582758 7.218982 18.331852 v -0.857694 7.218984 12.938878 v -1.213076 8.145895 -1.953275 v -0.692288 8.145895 -1.953275 @@ -618,15 +5312,15 @@ v -1.213076 7.218984 -1.953275 v -1.213076 7.218984 -1.953275 v -0.836559 7.218984 0.486124 v -0.397424 7.218984 -1.953275 -v -0.843982 7.218984 5.409399 -v -0.957142 7.218984 5.409399 -v -0.957142 7.863287 5.710876 -v -1.488590 5.921739 -5.685919 -v -1.582758 6.154639 -5.365935 +v -0.843982 7.218984 5.409400 +v -0.957142 7.218984 5.409400 +v -0.957142 7.863286 5.710876 +v -1.488590 5.921740 -5.685918 +v -1.582758 6.154639 -5.365934 v -1.582758 5.957942 -5.266877 -v -1.488590 5.921739 -5.685919 +v -1.488590 5.921740 -5.685918 v 1.582758 5.957942 -5.266877 -v 1.484238 5.789522 -5.649559 +v 1.484238 5.789523 -5.649559 v -1.051055 0.730363 5.438924 v -1.052369 1.419883 5.161799 v -1.051770 1.087353 3.958939 @@ -649,47 +5343,47 @@ v -1.582758 0.955821 2.788985 v -1.582758 1.087353 2.951361 v -1.582758 7.218984 0.532610 v -0.443586 5.533404 -6.767138 -v -0.528251 5.631947 -6.753191 -v 0.000000 5.631947 -6.801856 -v 1.239158 -6.459403 -6.210183 +v -0.528251 5.631948 -6.753191 +v 0.000000 5.631948 -6.801856 +v 1.239158 -6.459403 -6.210184 v 1.239158 -6.716357 -6.316617 v 1.239158 -5.908380 -6.182570 -v -1.239158 -6.459403 -6.210183 +v -1.239158 -6.459403 -6.210184 v -1.239158 -6.352968 -5.953228 v -1.239158 -5.908380 -6.182570 v 1.239158 -7.503078 -5.592237 -v 1.239158 -6.973311 -5.696272 +v 1.239158 -6.973310 -5.696272 v 1.239158 -6.751891 -5.355608 v 1.239158 -7.188473 -6.627295 -v 1.239158 -7.079745 -5.953228 +v 1.239158 -7.079744 -5.953228 v 1.239158 -6.352968 -5.953228 -v 1.239158 -6.111136 -5.821549 +v 1.239158 -6.111135 -5.821549 v 1.239158 -6.459403 -5.696272 v 1.239158 -6.353005 -5.417203 v 1.239158 -6.716357 -5.589839 v -1.239158 -7.503078 -5.592237 -v -1.239158 -7.079745 -5.953228 +v -1.239158 -7.079744 -5.953228 v -1.239158 -7.188473 -6.627295 v -1.239158 -6.716357 -5.589839 -v -1.239158 -6.973311 -5.696272 +v -1.239158 -6.973310 -5.696272 v -1.239158 -6.751891 -5.355608 v -1.239158 -6.459403 -5.696272 v -1.239158 -6.353005 -5.417203 -v -1.239158 -6.111136 -5.821549 +v -1.239158 -6.111135 -5.821549 v -1.239158 -6.716357 -6.316617 -v 1.239158 -6.973311 -6.210183 -v -1.239158 -6.973311 -6.210183 +v 1.239158 -6.973310 -6.210184 +v -1.239158 -6.973310 -6.210184 v -1.148529 7.218984 0.843372 v -1.582758 -8.611731 0.338328 v -1.582758 -7.606416 0.140500 v -1.539709 -9.237019 0.112444 v -1.582758 -6.783546 -5.235445 -v -1.582758 -7.547009 -5.447708 +v -1.582758 -7.547009 -5.447709 v -1.582758 -6.272798 -5.294007 v -1.582758 -6.767919 0.122678 v -1.582758 -5.973763 -5.781600 v -1.582758 -3.887019 -5.026797 -v 0.000000 5.385466 -6.635780 +v 0.000000 5.385467 -6.635780 v 0.000000 5.533404 -6.815803 v -0.957142 7.218984 7.609767 v -1.582758 7.218984 -4.804955 @@ -697,13 +5391,13 @@ v -1.213076 7.218984 -4.804955 v -1.582758 4.316335 -1.880566 v -1.582758 5.060399 -2.393605 v -1.213076 9.430100 -1.953275 -v -1.213076 9.430100 -4.335177 +v -1.213076 9.430100 -4.335176 v -1.213076 8.145895 -4.804955 v -1.582758 5.060399 -2.393605 v -1.582758 5.705916 -3.303000 v -0.974568 4.768444 -3.230170 -v -1.113677 5.685023 -6.433601 -v -1.488590 5.921739 -5.685919 +v -1.113677 5.685023 -6.433600 +v -1.488590 5.921740 -5.685918 v -1.582758 5.705916 -3.303000 v -1.582758 7.218984 -4.804955 v -1.213076 7.218984 -4.804955 @@ -712,11 +5406,11 @@ v -0.702042 8.145895 -4.804955 v -0.419459 8.845671 -4.804955 v -1.239158 -7.188473 -6.627295 v -1.239158 -5.908380 -6.182570 -v -0.974568 -7.096977 -6.928316 +v -0.974568 -7.096977 -6.928317 v -1.239158 -5.908380 -6.182570 -v -1.239158 -6.111136 -5.821549 +v -1.239158 -6.111135 -5.821549 v -1.582758 -5.973763 -5.781600 -v -1.582758 -7.547009 -5.447708 +v -1.582758 -7.547009 -5.447709 v -1.582758 -6.783546 -5.235445 v -1.239158 -6.751891 -5.355608 v -1.582758 -6.272798 -5.294007 @@ -731,8 +5425,8 @@ v 1.879857 2.017154 3.056580 v 1.803483 -8.183756 -0.940654 v 2.068853 1.609260 2.541311 v 2.137654 1.534970 2.385706 -v 1.803499 -6.096515 -4.976788 -v 2.130997 -6.177512 -4.485743 +v 1.803499 -6.096515 -4.976789 +v 2.130997 -6.177512 -4.485744 v 2.121354 -6.703000 -4.498363 v 1.550631 -7.022314 -4.915743 v 1.550631 -6.027862 -4.968081 @@ -762,10 +5456,10 @@ v 2.174624 4.663060 0.053574 v 2.119612 -7.822574 -1.480976 v 2.176766 -7.604493 -1.548246 v 2.121051 -7.647707 -1.285315 -v 1.803505 -7.014567 -4.882655 +v 1.803505 -7.014567 -4.882656 v 2.137789 6.702975 -0.434405 v 1.550631 4.418573 -0.651555 -v 1.550631 5.888644 4.797829 +v 1.550631 5.888644 4.797830 v 1.550631 -8.207280 -0.940181 v 2.163024 4.259209 -0.066218 v 2.172835 -7.439816 -1.372818 @@ -777,9 +5471,9 @@ v 2.163947 6.294227 -0.887580 v 2.176527 6.514084 3.866836 v 2.168285 6.052625 -0.925915 v -0.823032 5.400963 -6.289593 -v -1.373788 7.218983 19.361946 -v -0.857694 7.218983 19.361946 -v 1.092400 5.576505 -6.393808 +v -1.373788 7.218982 19.361946 +v -0.857694 7.218982 19.361946 +v 1.092400 5.576506 -6.393807 v 0.443586 5.533404 -6.767138 v 0.823032 5.400963 -6.289593 v 0.403942 7.218984 -4.804955 @@ -787,7 +5481,7 @@ v 1.213076 7.218984 -4.804955 v 0.974568 5.132455 -4.066989 v 1.213076 8.145895 -4.804955 v 1.213076 8.845671 -4.804955 -v 1.213076 9.430100 -4.335177 +v 1.213076 9.430100 -4.335176 v 0.703050 7.624437 -4.804955 v 0.708688 7.624437 -1.953275 v 1.213076 7.624437 -1.953275 @@ -800,14 +5494,14 @@ v 0.692288 8.145895 -1.953275 v 0.692288 8.145895 -1.953275 v 0.702042 8.145895 -4.804955 v 1.213076 8.145895 -4.804955 -v 1.213076 9.430100 -4.335177 -v 0.450662 9.430100 -4.335177 +v 1.213076 9.430100 -4.335176 +v 0.450662 9.430100 -4.335176 v 0.427195 9.430100 -1.953275 v 1.582758 7.218984 -4.804955 -v 0.528251 5.631947 -6.753191 -v 0.000000 5.631947 -6.801856 -v 1.113677 5.685023 -6.433601 -v 1.582758 6.154639 -5.365935 +v 0.528251 5.631948 -6.753191 +v 0.000000 5.631948 -6.801856 +v 1.113677 5.685023 -6.433600 +v 1.582758 6.154639 -5.365934 v -0.403942 7.218984 -4.804955 v 1.213076 7.218984 -1.953275 v 1.582758 7.218984 -4.804955 @@ -818,46 +5512,46 @@ v 1.213076 7.624437 -4.804955 v 1.213076 8.845671 -4.804955 v 1.213076 8.145895 -4.804955 v 0.702042 8.145895 -4.804955 -v 0.450662 9.430100 -4.335177 -v 1.213076 9.430100 -4.335177 +v 0.450662 9.430100 -4.335176 +v 1.213076 9.430100 -4.335176 v 0.836559 7.218984 0.486124 v 0.397424 7.218984 -1.953275 -v -1.582758 6.154639 -5.365935 +v -1.582758 6.154639 -5.365934 v 1.582758 2.997752 -1.677936 v 1.582758 4.606297 4.761065 v 1.582758 5.060399 -2.393605 v 1.582758 5.705916 -3.303000 v 1.582758 7.218984 0.532610 v 1.582758 4.978194 4.997455 -v 1.582758 7.218984 5.409399 +v 1.582758 7.218984 5.409400 v 1.582758 6.173631 12.234967 v 1.582758 5.194827 5.282278 -v 1.582758 5.194826 18.331852 +v 1.582758 5.194825 18.331852 v 1.582758 5.534111 12.374792 v 1.582758 4.316335 -1.880566 v 1.582758 7.218984 -4.804955 -v 1.582758 6.342138 12.374792 -v 1.582758 5.657322 12.234967 -v 1.582758 7.218983 18.331852 -v 1.582758 7.218984 5.409399 +v 1.582758 6.342137 12.374792 +v 1.582758 5.657321 12.234967 +v 1.582758 7.218982 18.331852 +v 1.582758 7.218984 5.409400 v 0.857694 7.218984 12.938878 v 1.148529 7.218984 4.965837 -v 0.957142 7.218984 5.409399 -v 0.857694 7.218983 19.361946 -v 1.373788 7.218983 19.361946 +v 0.957142 7.218984 5.409400 +v 0.857694 7.218982 19.361946 +v 1.373788 7.218982 19.361946 v 0.957142 7.218984 7.609767 v 1.148529 7.218984 0.843372 v 0.957142 7.218984 6.277361 -v 0.857694 5.453764 12.938878 -v 0.580191 5.127947 12.938878 -v 0.580398 5.127511 19.361946 +v 0.857694 5.453763 12.938878 +v 0.580191 5.127946 12.938878 +v 0.580398 5.127510 19.361946 v 0.857694 7.218984 12.938878 -v 0.857694 5.453606 19.361946 +v 0.857694 5.453605 19.361946 v -1.803494 -8.338592 -1.148253 v -1.803496 -7.249153 -4.729249 -v -1.550631 -7.254866 -4.756800 +v -1.550631 -7.254866 -4.756801 v -1.550631 -8.362582 -1.129572 -v -1.803505 -7.014567 -4.882655 +v -1.803505 -7.014567 -4.882656 v -1.803500 7.103070 4.086896 v -1.550631 7.159328 -0.581056 v -1.839455 4.411472 -0.653382 @@ -901,24 +5595,24 @@ v 2.169390 2.475281 1.132310 v 2.174314 6.129676 4.109241 v 2.174668 5.841984 -0.795250 v 2.176541 -6.266698 -4.325728 -v 1.803505 6.986403 4.265715 -v 1.803498 6.146345 4.785963 -v 1.550631 7.011675 4.277202 +v 1.803505 6.986403 4.265716 +v 1.803498 6.146345 4.785964 +v 1.550631 7.011675 4.277203 v 1.550631 6.141139 4.807182 v 1.803494 -8.338592 -1.148253 v 1.550631 -8.362582 -1.129572 v 1.803494 -8.338592 -1.148253 v 1.803496 -7.249153 -4.729249 -v 1.550631 -7.254866 -4.756800 +v 1.550631 -7.254866 -4.756801 v 1.550631 7.159328 -0.581056 v 1.550631 7.128137 4.054968 v -1.239158 -6.353005 -5.417203 -v -1.113677 5.685023 -6.433601 +v -1.113677 5.685023 -6.433600 v -1.582758 6.173631 12.234967 -v -1.582758 5.657322 12.234967 +v -1.582758 5.657321 12.234967 v -0.974568 4.193733 -2.693952 v -1.582758 4.316335 -1.880566 -v -1.582758 5.870734 -4.399593 +v -1.582758 5.870734 -4.399592 v -0.974568 5.132455 -4.066989 v -0.974568 2.986196 -2.567274 v -1.582758 2.997752 -1.677936 @@ -929,23 +5623,23 @@ v -1.582758 -3.887019 -5.026797 v -1.582758 -5.973763 -5.781600 v -0.427195 9.430100 -1.953275 v -0.397424 7.218984 -1.953275 -v -0.450662 9.430100 -4.335177 +v -0.450662 9.430100 -4.335176 v -0.580398 4.410827 6.286258 v -0.580398 5.143752 8.504850 v 0.403942 7.218984 -4.804955 v -0.580398 3.410160 5.307025 v 0.397424 7.218984 -1.953275 -v 0.450662 9.430100 -4.335177 +v 0.450662 9.430100 -4.335176 v 0.419459 8.845671 -4.804955 -v -0.857694 5.453764 12.938878 -v -0.857694 5.453606 19.361946 -v -0.580398 5.127511 19.361946 +v -0.857694 5.453763 12.938878 +v -0.857694 5.453605 19.361946 +v -0.580398 5.127510 19.361946 v -0.857694 7.218984 12.938878 -v -0.857694 7.218983 19.361946 -v -0.957142 7.863287 7.609767 -v -0.957142 7.218984 5.409399 +v -0.857694 7.218982 19.361946 +v -0.957142 7.863286 7.609767 +v -0.957142 7.218984 5.409400 v -0.957142 7.218984 6.277361 -v -0.957142 7.863287 5.710876 +v -0.957142 7.863286 5.710876 v -1.213076 8.845671 -4.804955 v -0.703050 7.624437 -4.804955 v -1.213076 7.624437 -4.804955 @@ -969,18 +5663,18 @@ v -0.692288 8.145895 -1.953275 v -1.213076 8.145895 -1.953275 v -1.213076 8.145895 -4.804955 v -1.052369 3.020580 5.130578 -v -1.582758 5.534110 18.331852 +v -1.582758 5.534109 18.331852 v -1.582758 5.534111 12.374792 -v -1.582758 5.194826 18.331852 +v -1.582758 5.194825 18.331852 v -1.051055 3.986079 11.231197 -v -1.213076 9.430100 -4.335177 +v -1.213076 9.430100 -4.335176 v -1.213076 9.430100 -1.953275 v -0.427195 9.430100 -1.953275 v -1.051055 4.197896 10.160744 v -1.051055 4.410827 9.595867 v -1.051055 5.194827 6.202400 v -1.051055 4.410827 6.286258 -v -1.051055 4.815592 5.698347 +v -1.051055 4.815591 5.698347 v -1.051055 4.250057 5.891657 v 1.051203 0.060934 3.592092 v 1.051055 -0.223472 3.408138 @@ -989,14 +5683,14 @@ v -1.051055 0.491167 10.501270 v -1.051055 3.846210 10.532600 v -1.051055 3.816076 5.489355 v -1.051055 0.303245 5.858099 -v -1.051055 0.145062 11.660562 +v -1.051055 0.145061 11.660562 v -0.403942 7.218984 -4.804955 v -0.419459 8.845671 -4.804955 -v -0.580398 5.127511 19.361946 +v -0.580398 5.127510 19.361946 v -1.213076 7.624437 -4.804955 v -1.213076 8.845671 -4.804955 -v -1.213076 9.430100 -4.335177 -v -0.528251 5.631947 -6.753191 +v -1.213076 9.430100 -4.335176 +v -0.528251 5.631948 -6.753191 v -1.051055 -7.663412 0.798394 v -1.051055 -6.827383 0.859532 v -1.051055 -9.408401 0.676293 @@ -1007,70 +5701,70 @@ v -1.051055 -6.827383 0.859532 v -0.832096 -3.798709 2.025143 v -0.832096 -3.666983 2.980051 v -0.832096 -2.992427 3.243009 -v -1.051055 4.834129 19.361946 +v -1.051055 4.834128 19.361946 v -1.582758 5.534111 12.374792 -v -1.582758 5.534110 18.331852 -v -1.373788 5.534110 19.361946 -v -1.373788 7.218983 19.361946 -v -1.373788 5.194826 19.361946 -v -0.372438 10.036927 5.890271 -v -0.372438 10.296735 5.890271 -v 0.372438 10.036927 5.890271 -v -0.570611 9.870735 5.890271 -v 0.570611 9.870735 5.890271 -v 0.667251 10.036927 5.890271 -v -0.667251 10.036927 5.890271 -v -0.372438 10.036927 5.890271 -v -0.667251 10.036927 5.890271 -v -0.666265 10.036926 11.908644 -v -1.159394 7.167400 5.890271 -v -1.159394 7.167400 11.908644 -v -1.159394 9.473120 11.908644 -v -1.018901 7.167400 11.908644 -v -1.018901 9.373808 11.908644 -v -1.159394 9.473120 11.908644 -v -1.018901 7.167400 5.890271 -v -1.159394 7.167400 5.890271 -v -1.159394 9.473121 5.890271 -v -0.570611 9.870734 11.908644 -v -0.666265 10.036926 11.908644 -v 1.018901 9.373809 5.890271 -v 1.018901 7.167400 5.890271 -v 1.018901 7.167400 11.908644 -v 1.018901 9.373808 11.908644 -v 0.570611 9.870734 11.908644 +v -1.582758 5.534109 18.331852 +v -1.373788 5.534109 19.361946 +v -1.373788 7.218982 19.361946 +v -1.373788 5.194825 19.361946 +v -0.372438 10.036927 5.890272 +v -0.372438 10.296735 5.890272 +v 0.372438 10.036927 5.890272 +v -0.570611 9.870735 5.890272 +v 0.570611 9.870735 5.890272 +v 0.667251 10.036927 5.890272 +v -0.667251 10.036927 5.890272 +v -0.372438 10.036927 5.890272 +v -0.667251 10.036927 5.890272 +v -0.666265 10.036925 11.908644 +v -1.159394 7.167399 5.890272 +v -1.159394 7.167399 11.908644 +v -1.159394 9.473119 11.908644 +v -1.018901 7.167399 11.908644 +v -1.018901 9.373807 11.908644 +v -1.159394 9.473119 11.908644 +v -1.018901 7.167399 5.890272 +v -1.159394 7.167399 5.890272 +v -1.159394 9.473121 5.890272 +v -0.570611 9.870733 11.908644 +v -0.666265 10.036925 11.908644 +v 1.018901 9.373809 5.890272 +v 1.018901 7.167399 5.890272 +v 1.018901 7.167399 11.908644 +v 1.018901 9.373807 11.908644 +v 0.570611 9.870733 11.908644 v -0.372438 10.036927 8.085609 v 0.372438 10.036927 8.085609 -v 0.372438 10.296735 5.890271 -v 1.018901 7.167400 5.890271 -v 1.018901 9.373809 5.890271 -v 1.159394 9.473121 5.890271 -v 0.372438 10.036927 5.890271 -v 0.372438 10.296735 5.890271 +v 0.372438 10.296735 5.890272 +v 1.018901 7.167399 5.890272 +v 1.018901 9.373809 5.890272 +v 1.159394 9.473121 5.890272 +v 0.372438 10.036927 5.890272 +v 0.372438 10.296735 5.890272 v 0.372438 10.036927 8.085609 -v 0.372438 10.036927 5.890271 +v 0.372438 10.036927 5.890272 v 0.372438 10.036927 8.085609 -v 0.666265 10.036926 11.908644 -v 1.159394 7.167400 5.890271 -v 1.159394 9.473121 5.890271 -v 1.159394 9.473120 11.908644 -v 1.018901 7.167400 11.908644 -v 1.159394 7.167400 11.908644 -v 1.159394 9.473120 11.908644 -v 0.570611 9.870734 11.908644 -v 1.018901 9.373808 11.908644 -v 0.667251 10.036927 5.890271 -v -1.018901 9.373809 5.890271 -v -1.018901 9.373808 11.908644 -v -1.018901 7.167400 11.908644 +v 0.666265 10.036925 11.908644 +v 1.159394 7.167399 5.890272 +v 1.159394 9.473121 5.890272 +v 1.159394 9.473119 11.908644 +v 1.018901 7.167399 11.908644 +v 1.159394 7.167399 11.908644 +v 1.159394 9.473119 11.908644 +v 0.570611 9.870733 11.908644 +v 1.018901 9.373807 11.908644 +v 0.667251 10.036927 5.890272 +v -1.018901 9.373809 5.890272 +v -1.018901 9.373807 11.908644 +v -1.018901 7.167399 11.908644 v -0.372438 10.036927 8.085609 -v -0.372438 10.296735 5.890271 -v -0.372438 10.036927 5.890271 +v -0.372438 10.296735 5.890272 +v -0.372438 10.036927 5.890272 v -0.372438 10.036927 8.085609 -v -0.570611 9.870735 5.890271 -v -0.570611 9.870734 11.908644 -v 0.570611 9.870735 5.890271 -v 0.372438 10.296735 5.890271 +v -0.570611 9.870735 5.890272 +v -0.570611 9.870733 11.908644 +v 0.570611 9.870735 5.890272 +v 0.372438 10.296735 5.890272 v 1.592578 6.930664 -2.831019 v 1.924818 6.930664 -2.831019 v 1.924818 6.930664 -2.831019 @@ -1114,38 +5808,38 @@ v 1.051055 0.730363 5.438924 v 1.050937 1.329366 3.504859 v 1.239158 -6.352968 -5.953228 v -1.239158 -6.352968 -5.953228 -v -1.239158 -6.459403 -6.210183 -v -1.239158 -6.973311 -6.210183 -v 1.239158 -6.973311 -6.210183 +v -1.239158 -6.459403 -6.210184 +v -1.239158 -6.973310 -6.210184 +v 1.239158 -6.973310 -6.210184 v 1.239158 -6.716357 -6.316617 -v -1.239158 -7.079745 -5.953228 +v -1.239158 -7.079744 -5.953228 v -1.239158 -6.716357 -5.589839 v 1.239158 -6.716357 -5.589839 -v 1.239158 -6.973311 -5.696272 -v -0.836559 -7.541790 -5.464878 -v -1.148529 -7.632973 -5.164885 +v 1.239158 -6.973310 -5.696272 +v -0.836559 -7.541790 -5.464879 +v -1.148529 -7.632973 -5.164886 v -1.239158 -7.503078 -5.592237 v -0.843982 -8.845317 -1.176260 -v -1.582758 -7.547009 -5.447708 -v -0.974568 -7.096977 -6.928316 +v -1.582758 -7.547009 -5.447709 +v -0.974568 -7.096977 -6.928317 v -1.239158 -7.188473 -6.627295 -v -0.857694 5.453764 12.938878 -v 0.857694 5.453764 12.938878 +v -0.857694 5.453763 12.938878 +v 0.857694 5.453763 12.938878 v 0.857694 7.218984 12.938878 -v -0.580191 5.127947 12.938878 -v 0.580191 5.127947 12.938878 +v -0.580191 5.127946 12.938878 +v 0.580191 5.127946 12.938878 v 0.427195 9.430100 -1.953275 v -1.051055 -9.408401 0.676293 -v -0.580191 5.127947 12.938878 +v -0.580191 5.127946 12.938878 v 0.403942 7.218984 -4.804955 -v 1.239158 -6.459403 -6.210183 +v 1.239158 -6.459403 -6.210184 v -1.239158 -6.459403 -5.696272 v 1.239158 -6.459403 -5.696272 -v 1.239158 -7.079745 -5.953228 +v 1.239158 -7.079744 -5.953228 v 1.239158 -6.352968 -5.953228 -v 0.957142 7.218984 5.409399 -v 0.843982 7.218984 5.409399 -v 0.957142 7.863287 5.710876 +v 0.957142 7.218984 5.409400 +v 0.843982 7.218984 5.409400 +v 0.957142 7.863286 5.710876 v 1.213076 7.624437 -1.953275 v 0.708688 7.624437 -1.953275 v 0.397424 7.218984 -1.953275 @@ -1154,9 +5848,9 @@ v 0.427195 9.430100 -1.953275 v 1.213076 8.145895 -1.953275 v 1.213076 9.430100 -1.953275 v -0.957142 7.218984 6.277361 -v 1.582758 7.218983 18.331852 -v 0.843982 7.218984 5.409399 -v 1.582758 5.870734 -4.399593 +v 1.582758 7.218982 18.331852 +v 0.843982 7.218984 5.409400 +v 1.582758 5.870734 -4.399592 v 0.580398 4.410827 6.286258 v 1.051055 4.410827 6.286258 v 1.051055 4.410827 9.595867 @@ -1166,17 +5860,17 @@ v 0.580398 5.143752 8.504850 v 0.580398 5.143752 5.307025 v 0.580398 3.816195 5.489355 v 0.580398 4.250057 5.891657 -v 1.582758 5.194826 18.331852 -v 1.373788 5.194826 19.361946 -v 1.051055 5.194826 19.361946 +v 1.582758 5.194825 18.331852 +v 1.373788 5.194825 19.361946 +v 1.051055 5.194825 19.361946 v 1.051055 5.194827 6.202400 v 1.582758 5.194827 5.282278 -v 1.582758 6.342138 18.331852 -v 1.051055 4.834129 12.349441 -v -1.051055 4.834129 12.349441 +v 1.582758 6.342137 18.331852 +v 1.051055 4.834128 12.349441 +v -1.051055 4.834128 12.349441 v -1.051055 3.986079 11.231197 v -1.051055 4.197896 10.160744 -v 1.051055 -0.223473 11.574593 +v 1.051055 -0.223474 11.574593 v 1.051055 0.126897 9.525374 v 1.051055 0.200441 10.158533 v -1.051770 0.545047 2.951361 @@ -1190,59 +5884,59 @@ v -1.051770 0.955821 2.753111 v 1.051055 0.446518 11.231197 v 1.051055 0.805342 10.660654 v 1.051055 3.374604 10.660654 -v 1.425465 6.342138 12.470450 -v 1.582758 6.342138 12.374792 -v 1.582758 6.342138 18.331852 +v 1.425465 6.342137 12.470450 +v 1.582758 6.342137 12.374792 +v 1.582758 6.342137 18.331852 v 1.425465 6.129148 12.324278 v 1.582758 6.173631 12.234967 -v 1.582758 6.342138 12.374792 +v 1.582758 6.342137 12.374792 v 1.425465 5.534111 12.470450 v 1.582758 5.534111 12.374792 -v 1.582758 5.657322 12.234967 +v 1.582758 5.657321 12.234967 v 1.425465 5.714319 12.324278 -v 1.425465 6.342138 12.470450 -v 1.373788 6.342138 19.361946 -v 1.373788 5.534110 19.361946 +v 1.425465 6.342137 12.470450 +v 1.373788 6.342137 19.361946 +v 1.373788 5.534109 19.361946 v 1.425465 5.714319 12.324278 v 1.425465 6.129148 12.324278 -v 1.051055 5.194826 19.361946 -v 1.373788 5.194826 19.361946 -v 1.373788 5.534110 19.361946 -v 1.373788 6.342138 19.361946 -v 1.373788 7.218983 19.361946 -v 0.857694 7.218983 19.361946 +v 1.051055 5.194825 19.361946 +v 1.373788 5.194825 19.361946 +v 1.373788 5.534109 19.361946 +v 1.373788 6.342137 19.361946 +v 1.373788 7.218982 19.361946 +v 0.857694 7.218982 19.361946 v -1.582758 0.676579 2.788985 v -1.051770 0.676579 2.753111 v 1.051055 5.194827 6.202400 -v 1.051055 4.815592 5.698347 -v 1.051055 4.834129 12.349441 -v 1.051055 5.194826 19.361946 -v 1.051055 4.834129 19.361946 +v 1.051055 4.815591 5.698347 +v 1.051055 4.834128 12.349441 +v 1.051055 5.194825 19.361946 +v 1.051055 4.834128 19.361946 v 1.051203 0.060934 3.592092 v 1.050937 0.062500 3.588312 v 1.051055 -0.223472 3.408138 v 1.051055 4.245723 5.289183 -v 1.582758 5.534110 18.331852 -v 1.373788 5.534110 19.361946 -v 1.373788 5.194826 19.361946 -v 1.373788 7.218983 19.361946 -v 1.373788 6.342138 19.361946 -v 1.373788 5.534110 19.361946 -v 1.051055 4.834129 19.361946 -v 0.857694 5.453606 19.361946 -v 0.580398 5.127511 19.361946 -v -1.051055 0.145062 11.660562 -v -1.051055 -0.223473 11.574593 -v 1.051055 -0.223473 11.574593 +v 1.582758 5.534109 18.331852 +v 1.373788 5.534109 19.361946 +v 1.373788 5.194825 19.361946 +v 1.373788 7.218982 19.361946 +v 1.373788 6.342137 19.361946 +v 1.373788 5.534109 19.361946 +v 1.051055 4.834128 19.361946 +v 0.857694 5.453605 19.361946 +v 0.580398 5.127510 19.361946 +v -1.051055 0.145061 11.660562 +v -1.051055 -0.223474 11.574593 +v 1.051055 -0.223474 11.574593 v 1.494327 1.329366 3.504859 -v 1.051055 -0.223473 11.574593 -v -1.051055 -0.223473 11.574593 +v 1.051055 -0.223474 11.574593 +v -1.051055 -0.223474 11.574593 v -1.051055 -0.223472 3.408138 v -1.051055 0.446518 11.231197 -v -1.051055 0.145062 11.660562 -v 1.051055 0.145062 11.660562 +v -1.051055 0.145061 11.660562 +v 1.051055 0.145061 11.660562 v 1.051055 0.446518 11.231197 -v -1.051055 4.834129 19.361946 +v -1.051055 4.834128 19.361946 v -0.832096 -2.992427 3.243009 v 0.832096 -2.992427 3.243009 v 0.832096 -2.281892 2.617995 @@ -1276,14 +5970,14 @@ v 1.051055 -9.408401 0.676293 v 1.051055 -8.710466 0.929088 v -0.403942 7.218984 -4.804955 v 1.051055 0.491167 10.501270 -v 1.051055 0.145062 11.660562 +v 1.051055 0.145061 11.660562 v 1.051055 4.245723 5.289183 v 1.052369 3.020580 5.130578 v 1.052369 2.312512 5.048415 v 1.051055 3.816076 5.489355 v 1.051055 4.250057 5.891657 v 1.051055 4.410827 6.286258 -v 1.051055 4.815592 5.698347 +v 1.051055 4.815591 5.698347 v 1.051055 5.194827 6.202400 v 1.051055 4.410827 9.595867 v 1.051055 4.197896 10.160744 @@ -1334,7 +6028,7 @@ v 0.580398 4.410827 8.504850 v 1.582758 -3.887019 -5.026797 v 1.582758 -5.973763 -5.781600 v 1.239158 -5.908380 -6.182570 -v 0.974568 -7.096977 -6.928316 +v 0.974568 -7.096977 -6.928317 v 0.974568 -3.532901 -5.626941 v 0.974568 -2.299957 -4.683156 v 1.582758 -2.770208 -4.057409 @@ -1345,14 +6039,14 @@ v 1.582758 5.705916 -3.303000 v 0.974568 4.193733 -2.693952 v 1.582758 4.316335 -1.880566 v 1.582758 5.060399 -2.393605 -v 1.113677 5.685023 -6.433601 -v 1.488590 5.921739 -5.685919 -v 0.528251 5.631947 -6.753191 +v 1.113677 5.685023 -6.433600 +v 1.488590 5.921740 -5.685918 +v 0.528251 5.631948 -6.753191 v 1.239158 -6.353005 -5.417203 v 1.582758 -6.272798 -5.294007 v 1.582758 -6.783546 -5.235445 -v 1.239158 -6.111136 -5.821549 -v 1.582758 -7.547009 -5.447708 +v 1.239158 -6.111135 -5.821549 +v 1.582758 -7.547009 -5.447709 v 1.239158 -7.503078 -5.592237 v 1.239158 -6.751891 -5.355608 v 1.239158 -5.908380 -6.182570 @@ -1365,54 +6059,54 @@ v 1.582758 -3.887019 -5.026797 v 1.582758 -6.272798 -5.294007 v 1.582758 -5.973763 -5.781600 v 1.582758 -6.783546 -5.235445 -v 1.582758 -7.547009 -5.447708 -v 1.582758 -7.547009 -5.447708 -v 1.148529 -7.632973 -5.164885 +v 1.582758 -7.547009 -5.447709 +v 1.582758 -7.547009 -5.447709 +v 1.148529 -7.632973 -5.164886 v 1.239158 -7.503078 -5.592237 -v 0.836559 -7.541790 -5.464878 -v 0.974568 -7.096977 -6.928316 +v 0.836559 -7.541790 -5.464879 +v 0.974568 -7.096977 -6.928317 v 1.239158 -7.188473 -6.627295 v 1.539709 -9.237019 0.112444 v 1.051055 -9.408401 0.676293 v 0.843982 -8.845317 -1.176260 v 0.843982 -8.845317 -1.176260 -v 0.843982 7.218984 5.409399 +v 0.843982 7.218984 5.409400 v 1.148529 7.218984 4.965837 v 1.148529 7.218984 0.843372 -v 1.148529 -7.632973 -5.164885 +v 1.148529 -7.632973 -5.164886 v 0.836559 7.218984 0.486124 -v 0.836559 -7.541790 -5.464878 -v 1.148529 -7.632973 -5.164885 -v -0.836559 -7.541790 -5.464878 -v -0.843982 7.218984 5.409399 +v 0.836559 -7.541790 -5.464879 +v 1.148529 -7.632973 -5.164886 +v -0.836559 -7.541790 -5.464879 +v -0.843982 7.218984 5.409400 v 1.148529 -8.749960 -1.489985 -v 0.957142 7.863287 7.609767 -v -0.957142 7.863287 7.609767 +v 0.957142 7.863286 7.609767 +v -0.957142 7.863286 7.609767 v -0.957142 7.218984 7.609767 -v 0.957142 7.218984 5.409399 -v 0.957142 7.863287 5.710876 -v 0.957142 7.863287 7.609767 -v -0.957142 7.863287 7.609767 -v 0.957142 7.863287 7.609767 -v 0.957142 7.863287 5.710876 +v 0.957142 7.218984 5.409400 +v 0.957142 7.863286 5.710876 +v 0.957142 7.863286 7.609767 +v -0.957142 7.863286 7.609767 +v 0.957142 7.863286 7.609767 +v 0.957142 7.863286 5.710876 v 0.957142 7.218984 7.609767 v 0.957142 7.218984 6.277361 v 2.253843 6.930664 -2.831019 v 2.253843 6.930664 -2.831019 v 1.592578 6.125614 -1.931486 -v 2.253843 6.902664 -4.747440 +v 2.253843 6.902664 -4.747439 v 2.253843 6.726052 -1.549974 v 2.253843 6.966193 -1.398447 v 1.709833 6.807340 5.318413 v 1.965886 6.807340 5.149458 -v 1.965886 7.483091 5.848534 -v 1.965886 6.807340 5.848534 +v 1.965886 7.483090 5.848535 +v 1.965886 6.807340 5.848535 v 1.882584 6.807340 7.165412 v 2.249606 6.807340 7.165412 v -1.051055 5.194827 6.202400 -v -1.373788 5.194826 19.361946 -v 0.000000 8.128885 22.443676 -v 0.000000 7.882947 5.649786 +v -1.373788 5.194825 19.361946 +v 0.000000 8.128884 22.443676 +v 0.000000 7.882946 5.649786 v 1.469249 0.829702 3.368853 v 1.133210 0.829702 3.301505 v -0.991334 0.714416 2.803811 @@ -1420,8 +6114,8 @@ v -0.991334 0.583586 2.934655 v -1.284940 0.714416 2.803811 v 1.979996 6.437829 -1.926155 v -1.425465 6.129148 12.324278 -v -1.373788 6.342138 19.361946 -v -1.582758 6.342138 12.374792 +v -1.373788 6.342137 19.361946 +v -1.582758 6.342137 12.374792 v -1.582758 5.194827 5.282278 v -1.213076 9.430100 -1.953275 v -1.051770 0.545047 3.730687 @@ -1432,7 +6126,7 @@ v 1.213076 7.624437 -4.804955 v 0.708688 7.624437 -1.953275 v 1.213076 8.145895 -1.953275 v 1.213076 9.430100 -1.953275 -v 0.857694 7.218983 19.361946 +v 0.857694 7.218982 19.361946 v -1.550631 -8.362582 -1.129572 v -1.550631 7.128137 4.054968 v 1.550631 -8.362582 -1.129572 @@ -1442,26 +6136,26 @@ v -0.708688 7.624437 -1.953275 v -1.213076 7.218984 -1.953275 v -0.702042 8.145895 -4.804955 v -0.702042 8.145895 -4.804955 -v -0.450662 9.430100 -4.335177 +v -0.450662 9.430100 -4.335176 v -1.213076 8.145895 -4.804955 -v -0.450662 9.430100 -4.335177 +v -0.450662 9.430100 -4.335176 v -0.832096 -2.281892 2.617995 -v -1.373788 6.342138 19.361946 -v -1.373788 5.534110 19.361946 -v -1.159394 9.473121 5.890271 -v -1.159394 7.167400 11.908644 -v -1.018901 9.373809 5.890271 -v -0.372438 10.296735 5.890271 -v 1.159394 7.167400 5.890271 -v 1.159394 7.167400 11.908644 -v 0.666265 10.036926 11.908644 -v -1.018901 7.167400 5.890271 +v -1.373788 6.342137 19.361946 +v -1.373788 5.534109 19.361946 +v -1.159394 9.473121 5.890272 +v -1.159394 7.167399 11.908644 +v -1.018901 9.373809 5.890272 +v -0.372438 10.296735 5.890272 +v 1.159394 7.167399 5.890272 +v 1.159394 7.167399 11.908644 +v 0.666265 10.036925 11.908644 +v -1.018901 7.167399 5.890272 v 2.253843 6.726052 -1.549974 v -1.051770 0.676579 2.753111 v 1.050937 0.595196 3.367662 v -1.051770 1.087353 2.951361 v -1.239158 -6.716357 -6.316617 -v -1.239158 -6.973311 -5.696272 +v -1.239158 -6.973310 -5.696272 v -0.857694 7.218984 12.938878 v -1.239158 -6.352968 -5.953228 v 1.213076 7.218984 -1.953275 @@ -1469,13 +6163,13 @@ v 0.580398 4.410827 8.504850 v 1.051055 3.986079 11.231197 v -1.051770 0.676579 2.753111 v 1.050937 0.062500 3.588312 -v 1.373788 6.342138 19.361946 -v 1.425465 6.342138 12.470450 +v 1.373788 6.342137 19.361946 +v 1.425465 6.342137 12.470450 v 1.425465 5.534111 12.470450 -v 1.582758 5.534110 18.331852 -v 1.051055 0.145062 11.660562 +v 1.582758 5.534109 18.331852 +v 1.051055 0.145061 11.660562 v 1.051055 -0.223472 3.408138 -v 1.051055 4.834129 19.361946 +v 1.051055 4.834128 19.361946 v -0.832096 -2.281892 2.617995 v -0.832096 -2.992427 3.243009 v 0.832096 -3.666983 2.980051 @@ -1486,8 +6180,8 @@ v 0.580398 5.143752 5.307025 v 1.148529 -8.749960 -1.489985 v 1.148529 7.218984 0.843372 v 0.957142 7.218984 7.609767 -v -0.957142 7.863287 5.710876 -v 1.965886 6.807340 5.848534 +v -0.957142 7.863286 5.710876 +v 1.965886 6.807340 5.848535 vt 0.359688 0.958662 vt 0.362249 0.958669 vt 0.362239 0.962551 @@ -3032,7 +7726,7 @@ vn -0.0000 -0.9983 -0.0575 vn 0.0000 -0.9772 -0.2125 vn 0.0000 -0.9666 -0.2562 vn 0.0000 -0.4950 0.8689 -vn 1.0000 0.0000 0.0000 +vn 1.0000 -0.0000 0.0000 vn -0.0053 0.6390 -0.7692 vn 0.0000 0.6406 -0.7679 vn -0.0035 0.6415 -0.7671 @@ -3061,7 +7755,7 @@ vn 0.0000 -0.6774 0.7356 vn 0.0000 -0.5021 0.8648 vn 0.0000 -0.9934 -0.1149 vn 0.0000 0.0000 -1.0000 -vn -0.9978 0.0662 0.0000 +vn -0.9978 0.0662 -0.0000 vn -0.8965 0.4430 0.0000 vn -0.9472 0.3207 -0.0000 vn -0.9575 -0.1451 0.2492 @@ -3069,33 +7763,33 @@ vn -0.9344 -0.2629 0.2404 vn -0.9389 -0.2242 0.2612 vn -0.8781 -0.1764 0.4448 vn -0.9776 -0.1677 0.1269 -vn 0.9978 -0.0662 -0.0000 +vn 0.9978 -0.0662 0.0000 vn 0.8965 -0.4430 -0.0000 vn 0.9472 -0.3207 -0.0000 vn -0.6588 0.7523 0.0000 -vn -0.7523 0.6588 0.0000 +vn -0.7523 0.6588 -0.0000 vn 0.6588 -0.7523 -0.0000 vn 0.7523 -0.6588 -0.0000 vn -0.3207 0.9472 -0.0001 vn -0.4430 0.8965 -0.0001 vn 0.3207 -0.9472 -0.0000 vn 0.4430 -0.8965 -0.0000 -vn 0.0662 0.9978 -0.0000 +vn 0.0662 0.9978 0.0000 vn -0.0661 0.9978 0.0000 vn -0.0662 -0.9978 -0.0000 vn 0.0661 -0.9978 0.0000 vn 0.0661 0.9978 0.0000 -vn 0.4430 0.8965 0.0000 +vn 0.4430 0.8965 -0.0000 vn 0.3207 0.9472 0.0000 vn -0.0661 -0.9978 -0.0000 vn -0.4430 -0.8965 -0.0000 vn -0.3207 -0.9472 -0.0000 -vn 0.7523 0.6588 0.0000 +vn 0.7523 0.6588 -0.0000 vn 0.6588 0.7523 0.0000 vn -0.7523 -0.6588 -0.0000 vn -0.6588 -0.7523 -0.0000 vn 0.9472 0.3207 -0.0000 -vn 0.8965 0.4430 0.0000 +vn 0.8965 0.4430 -0.0001 vn -0.9472 -0.3207 -0.0000 vn -0.8965 -0.4430 -0.0000 vn 0.9978 0.0662 -0.0000 @@ -3107,6 +7801,7 @@ vn 0.0662 -0.9978 -0.0000 vn -0.0662 0.9978 0.0000 vn -0.4430 -0.8965 0.0001 vn -0.3207 -0.9472 0.0001 +vn 0.8965 0.4430 0.0000 vn 0.0000 0.9071 -0.4210 vn 0.0000 0.9960 0.0890 vn 0.0000 0.9960 -0.0890 @@ -3280,7 +7975,7 @@ vn 0.9295 -0.1383 0.3419 vn 0.9268 -0.1407 0.3483 vn -0.6818 -0.5955 -0.4249 vn -0.9911 0.0000 0.1331 -vn -0.9978 0.0000 0.0666 +vn -0.9978 -0.0000 0.0666 vn 0.9404 0.1281 -0.3149 vn 0.9304 0.1374 -0.3398 vn -0.0000 -0.9918 0.1279 @@ -3327,7 +8022,7 @@ vn -0.9257 -0.1856 -0.3295 vn -0.9477 -0.2262 -0.2251 vn -0.9436 -0.3063 -0.1256 vn -0.5812 -0.6406 -0.5019 -vn -0.0857 0.9400 -0.3301 +vn -0.0857 0.9400 -0.3302 vn -0.0807 0.8763 -0.4749 vn 0.0006 0.2651 -0.9642 vn -0.9910 0.0440 -0.1265 @@ -3407,7 +8102,7 @@ vn 1.0000 0.0019 0.0034 vn -0.0000 0.9018 -0.4322 vn 0.0616 0.9395 -0.3370 vn 0.0000 0.9364 -0.3510 -vn 0.0857 0.9400 -0.3301 +vn 0.0857 0.9400 -0.3302 vn 0.0516 0.7096 -0.7027 vn -0.0000 0.1126 -0.9936 vn -0.0000 0.2651 -0.9642 @@ -3426,7 +8121,7 @@ vn -0.8895 0.4570 0.0000 vn -0.2763 0.9611 0.0002 vn -0.5527 0.8333 0.0001 vn -0.9736 0.2284 -0.0000 -vn -0.0975 -0.7839 0.6132 +vn -0.0976 -0.7838 0.6132 vn -0.6439 -0.6219 -0.4457 vn -0.0928 -0.7999 -0.5929 vn -0.0690 -0.9541 -0.2914 @@ -3548,7 +8243,7 @@ vn 0.9334 -0.3588 -0.0000 vn 0.4063 -0.9137 -0.0000 vn -0.2679 -0.9634 -0.0000 vn 0.0000 -0.5363 0.8440 -vn -0.0008 -0.5360 0.8442 +vn -0.0005 -0.5361 0.8442 vn 0.0000 -0.8176 -0.5758 vn -0.9850 -0.0671 0.1589 vn 0.4464 -0.6134 0.6515 @@ -3560,7 +8255,7 @@ vn 0.0479 0.9748 0.2177 vn 0.0450 0.9407 0.3362 vn 1.0000 -0.0001 -0.0003 vn 1.0000 0.0004 -0.0008 -vn 1.0000 -0.0004 -0.0007 +vn 1.0000 -0.0007 -0.0006 vn 0.9756 -0.0842 0.2027 vn 1.0000 0.0004 -0.0001 vn 0.4540 -0.0805 0.8873 @@ -3580,10 +8275,10 @@ vn 0.0001 -0.7972 -0.6037 vn 0.0000 -0.6037 -0.7972 vn -0.1722 0.3928 -0.9033 vn 0.0000 -0.9929 -0.1193 -vn 0.9911 -0.0000 0.1332 +vn 0.9911 0.0000 0.1332 vn 0.0000 -0.9478 0.3188 vn 0.0000 -0.4448 0.8956 -vn 0.0000 -0.8814 -0.4724 +vn -0.0000 -0.8814 -0.4724 vn -0.9418 0.2820 0.1830 vn -0.7726 0.5655 0.2886 vn 0.0646 -0.2831 0.9569 @@ -3604,9 +8299,9 @@ vn -0.9978 -0.0354 0.0555 vn 0.9575 -0.1436 0.2500 vn 0.9800 0.0000 0.1988 vn 0.0000 -0.2272 0.9739 -vn 0.0001 0.6059 0.7955 +vn 0.0002 0.6059 0.7955 vn 0.0000 0.8184 0.5746 -vn -0.0001 0.3029 0.9530 +vn -0.0002 0.3029 0.9530 vn 0.0000 0.6605 0.7508 vn 0.0000 -0.3632 0.9317 vn 0.0000 -0.9906 0.1367 @@ -3625,7 +8320,7 @@ vn -0.4184 -0.0204 0.9080 vn 0.0385 -0.3613 0.9316 vn 0.5470 -0.3018 0.7808 vn 0.4198 -0.1076 0.9012 -vn 1.0000 0.0009 -0.0014 +vn 1.0000 0.0009 -0.0015 vn 1.0000 0.0001 -0.0016 vn 1.0000 0.0006 0.0012 vn 0.0000 -0.4993 0.8664 @@ -3641,14 +8336,14 @@ vn 0.0000 0.9970 -0.0770 vn 0.0000 0.8727 -0.4883 vn -0.0001 0.9526 -0.3041 vn -0.0000 0.5657 -0.8246 -vn -0.0000 0.6710 -0.7415 +vn 0.0000 0.6710 -0.7415 vn 0.0000 0.9914 0.1311 vn -0.0000 0.9993 -0.0385 -vn -0.0000 0.1546 -0.9880 +vn 0.0000 0.1546 -0.9880 vn 0.0000 0.3091 -0.9510 vn -0.0000 0.8635 0.5044 vn -0.0000 0.9650 0.2623 -vn -0.0000 -0.1761 -0.9844 +vn 0.0000 -0.1761 -0.9844 vn 0.0000 -0.0880 -0.9961 vn -0.0000 0.6016 0.7988 vn 0.0000 0.7882 0.6154 @@ -3709,13176 +8404,1477 @@ vn 0.0000 0.3827 0.9239 vn 0.4482 -0.5058 0.7370 vn 0.0004 -0.3409 0.9401 vn -0.9304 0.1374 -0.3398 -usemtl Material.001 s 1 -f 1/1/1 2/2/1 3/3/1 -f 4/4/2 5/5/1 6/6/1 -f 7/7/3 8/8/3 9/9/4 -f 10/10/5 11/11/5 12/12/5 -f 13/13/6 14/14/6 15/15/6 -f 16/16/7 17/17/8 18/18/9 -f 19/19/10 20/20/3 7/7/3 -f 19/19/10 9/9/4 21/21/11 -f 22/22/12 23/23/12 24/24/12 -f 25/25/13 26/26/13 27/27/14 -f 28/28/6 29/29/6 30/30/6 -f 31/31/15 32/32/15 33/33/15 -f 19/19/10 7/7/3 9/9/4 -f 34/34/16 35/35/16 36/36/16 -f 37/37/17 38/38/17 39/39/17 -f 40/40/6 41/41/6 42/42/6 -f 43/43/18 44/44/19 45/45/20 -f 46/46/16 47/47/16 48/48/16 -f 49/49/16 50/50/16 51/51/16 -f 51/51/16 52/52/16 53/53/16 -f 54/54/21 55/55/22 56/56/22 -f 57/57/23 58/58/22 54/54/21 -f 46/46/16 48/48/16 59/59/16 -f 60/60/24 61/61/24 62/62/24 -f 63/63/6 64/64/6 65/65/6 -f 63/63/6 65/65/6 66/66/6 -f 67/67/16 51/51/16 53/53/16 -f 50/50/16 52/52/16 51/51/16 -f 52/52/16 68/68/16 53/53/16 -f 55/55/22 69/69/22 56/56/22 -f 58/58/22 55/55/22 54/54/21 -f 48/48/16 70/70/16 59/59/16 -f 71/71/24 72/72/24 61/61/24 -f 61/61/24 72/72/24 62/62/24 -f 64/64/6 73/73/6 65/65/6 -f 65/65/6 74/74/6 66/66/6 -f 75/75/25 76/76/26 77/77/27 -f 78/78/28 79/79/28 57/57/23 -f 78/78/28 80/80/29 81/81/30 -f 80/80/29 82/82/31 83/83/32 -f 82/82/31 77/77/27 76/76/26 -f 84/84/33 77/77/27 4/4/2 -f 85/85/22 56/56/22 69/69/22 -f 86/86/34 87/87/34 88/88/34 -f 89/89/34 90/90/34 91/91/34 -f 92/92/22 93/93/22 94/94/22 -f 95/95/6 96/96/6 97/97/6 -f 98/98/6 99/99/6 100/100/6 -f 101/101/34 102/102/34 103/103/34 -f 49/49/16 104/104/16 50/50/16 -f 69/69/22 55/55/22 105/105/22 -f 47/47/16 106/106/16 48/48/16 -f 60/60/24 107/107/24 61/61/24 -f 63/63/6 108/108/6 64/64/6 -f 109/109/35 110/110/36 111/111/37 -f 112/112/38 113/113/39 114/114/40 -f 115/115/16 116/116/16 117/117/41 -f 118/118/16 119/119/16 120/120/16 -f 121/121/42 114/114/40 113/113/39 -f 122/122/24 123/123/24 124/124/24 -f 125/125/24 126/126/24 127/127/24 -f 128/128/24 129/129/24 130/130/24 -f 131/131/43 132/132/44 133/133/45 -f 134/134/34 135/135/34 136/136/34 -f 110/110/36 137/137/46 138/138/47 -f 129/139/24 139/140/24 140/141/24 -f 132/132/44 141/142/48 142/143/49 -f 135/135/34 143/144/34 144/145/34 -f 137/137/46 145/146/50 146/147/51 -f 139/148/24 147/149/24 148/150/24 -f 141/142/48 149/151/52 150/152/53 -f 143/144/34 151/153/34 152/154/34 -f 145/146/50 153/155/54 154/156/55 -f 147/149/24 155/157/24 156/158/24 -f 149/159/52 157/160/56 158/161/57 -f 151/153/34 159/162/34 160/163/34 -f 161/164/58 162/165/59 163/166/60 -f 155/157/24 164/167/24 165/168/24 -f 166/169/61 167/170/62 168/171/63 -f 159/162/34 169/172/34 170/173/34 -f 162/174/59 171/175/64 172/176/65 -f 164/167/24 173/177/24 174/178/24 -f 167/170/62 175/179/66 176/180/67 -f 169/172/34 177/181/34 178/182/34 -f 171/175/64 179/183/68 180/184/69 -f 173/177/24 181/185/24 182/186/24 -f 175/179/66 183/187/70 184/188/71 -f 177/181/34 185/189/34 186/190/34 -f 179/191/68 187/192/43 188/193/72 -f 181/185/24 189/194/24 190/195/24 -f 183/187/70 191/196/35 192/197/73 -f 185/189/34 193/198/34 194/199/34 -f 187/192/43 195/200/74 196/201/45 -f 189/194/24 197/202/24 198/203/24 -f 191/196/35 199/204/36 200/205/37 -f 193/198/34 201/206/34 202/207/34 -f 195/200/74 203/208/48 204/209/49 -f 197/202/24 205/210/24 206/211/24 -f 199/204/36 207/212/46 208/213/47 -f 201/206/34 209/214/34 210/215/34 -f 203/208/48 211/216/52 212/217/53 -f 205/210/24 213/218/24 214/219/24 -f 207/212/46 215/220/75 216/221/76 -f 209/214/34 217/222/34 218/223/34 -f 211/216/52 219/224/56 220/225/77 -f 213/218/24 221/226/24 222/227/24 -f 215/220/75 223/228/54 224/229/78 -f 217/222/34 225/230/34 226/231/34 -f 219/224/56 227/232/79 228/233/80 -f 221/226/24 229/234/24 230/235/24 -f 223/236/54 231/237/59 232/238/60 -f 225/230/34 233/239/34 234/240/34 -f 227/232/79 235/241/66 236/242/67 -f 229/234/24 237/243/24 238/244/24 -f 231/237/59 239/245/64 240/246/65 -f 233/239/34 241/247/34 242/248/34 -f 235/241/66 243/249/70 244/250/71 -f 237/243/24 245/251/24 246/252/24 -f 239/245/64 247/253/68 248/254/69 -f 241/247/34 249/255/34 250/256/34 -f 243/249/70 109/109/35 251/257/73 -f 245/251/24 128/128/24 252/258/24 -f 247/253/68 131/131/43 253/259/72 -f 249/255/34 134/134/34 254/260/34 -f 255/261/6 256/262/6 257/263/6 -f 256/262/6 258/264/6 259/265/6 -f 258/264/6 260/266/6 261/267/6 -f 260/266/6 262/268/6 263/269/6 -f 262/268/6 264/270/6 265/271/6 -f 264/270/6 266/272/6 267/273/6 -f 266/272/6 268/274/6 269/275/6 -f 268/274/6 270/276/6 271/277/6 -f 270/276/6 272/278/6 273/279/6 -f 272/278/6 274/280/6 275/281/6 -f 274/280/6 276/282/6 277/283/6 -f 276/282/6 255/261/6 278/284/6 -f 279/285/81 280/286/82 281/287/83 -f 282/288/84 283/289/85 284/290/86 -f 285/291/6 286/292/6 287/293/6 -f 288/294/87 279/285/81 289/295/88 -f 283/289/85 290/296/89 291/297/90 -f 286/292/6 292/298/6 287/293/6 -f 293/299/91 288/294/87 294/300/92 -f 290/296/89 295/301/93 296/302/94 -f 292/298/6 297/303/6 287/293/6 -f 298/304/95 299/305/96 300/306/97 -f 295/301/93 301/307/98 302/308/99 -f 297/303/6 303/309/6 287/293/6 -f 304/310/100 298/304/95 305/311/101 -f 301/307/98 306/312/102 307/313/103 -f 303/309/6 308/314/6 287/293/6 -f 309/315/104 304/310/100 310/316/105 -f 306/312/102 311/317/106 312/318/107 -f 308/314/6 313/319/6 287/293/6 -f 314/320/102 309/315/104 315/321/108 -f 311/317/106 316/322/109 317/323/105 -f 313/319/6 318/324/6 287/293/6 -f 319/325/110 314/320/102 320/326/111 -f 316/322/109 321/327/95 322/328/112 -f 318/324/6 323/329/6 287/293/6 -f 324/330/113 319/325/110 325/331/99 -f 321/327/95 326/332/96 327/333/114 -f 323/329/6 328/334/6 287/293/6 -f 329/335/89 324/330/113 330/336/115 -f 331/337/91 332/338/116 333/339/92 -f 328/334/6 334/340/6 287/293/6 -f 335/341/117 329/335/89 336/342/118 -f 332/338/116 337/343/81 338/344/119 -f 334/340/6 339/345/6 287/293/6 -f 280/286/82 335/341/117 340/346/86 -f 337/343/81 282/288/84 341/347/120 -f 339/345/6 285/291/6 287/293/6 -f 342/348/121 343/349/122 344/350/123 -f 345/351/124 346/352/125 347/353/126 -f 348/354/127 349/355/128 350/356/129 -f 351/357/130 352/358/131 353/359/132 -f 354/360/133 347/353/126 355/361/134 -f 356/362/135 347/353/126 354/360/133 -f 357/363/136 358/364/137 359/365/138 -f 360/366/139 361/367/140 357/363/136 -f 348/354/127 362/368/141 357/363/136 -f 363/369/142 364/370/143 344/350/123 -f 364/370/143 363/369/142 365/371/144 -f 364/370/143 366/372/145 367/373/146 -f 368/374/147 369/375/148 359/365/138 -f 370/376/149 368/374/147 371/377/150 -f 351/357/130 372/378/151 352/358/131 -f 373/379/152 374/380/153 355/361/134 -f 375/381/154 374/380/153 373/379/152 -f 376/382/155 374/380/153 377/383/156 -f 378/384/157 379/385/158 380/386/159 -f 381/387/160 380/386/159 379/385/158 -f 354/360/133 355/361/134 382/388/161 -f 383/389/162 353/359/132 384/390/163 -f 385/391/164 356/362/135 383/389/162 -f 351/357/130 353/359/132 386/392/165 -f 372/378/151 351/357/130 386/392/165 -f 386/392/165 353/359/132 383/389/162 -f 387/393/166 388/394/167 389/395/168 -f 374/380/153 382/388/161 355/361/134 -f 383/389/162 382/388/161 390/396/169 -f 391/397/170 392/398/171 376/382/155 -f 392/398/171 390/396/169 374/380/153 -f 386/392/165 392/398/171 391/397/170 -f 390/396/169 392/398/171 386/392/165 -f 389/395/168 391/397/170 387/393/166 -f 378/384/157 393/399/172 391/397/170 -f 394/400/173 377/383/156 375/381/154 -f 395/401/174 394/400/173 396/402/175 -f 397/403/176 343/349/122 342/348/121 -f 398/404/177 397/403/176 399/405/178 -f 369/375/148 349/355/128 348/354/127 -f 400/406/179 401/407/180 402/408/181 -f 377/383/156 374/380/153 375/381/154 -f 390/396/169 382/388/161 374/380/153 -f 356/362/135 354/360/133 382/388/161 -f 382/388/161 383/389/162 356/362/135 -f 385/391/164 383/389/162 384/390/163 -f 372/378/151 389/395/168 388/394/167 -f 393/399/172 387/393/166 391/397/170 -f 379/385/158 378/384/157 391/397/170 -f 402/408/181 352/358/131 370/376/149 -f 372/378/151 388/394/167 352/358/131 -f 352/358/131 388/394/167 369/375/148 -f 393/399/172 349/355/128 387/393/166 -f 378/384/157 349/355/128 393/399/172 -f 378/384/157 380/386/159 349/355/128 -f 380/386/159 381/387/160 403/409/182 -f 377/383/156 394/400/173 381/387/160 -f 381/387/160 395/401/174 398/404/177 -f 404/410/183 397/403/176 405/411/184 -f 343/349/122 397/403/176 404/410/183 -f 369/375/148 368/374/147 370/376/149 -f 352/358/131 369/375/148 370/376/149 -f 388/394/167 387/393/166 369/375/148 -f 349/355/128 369/375/148 387/393/166 -f 380/386/159 403/409/182 349/355/128 -f 381/387/160 398/404/177 403/409/182 -f 394/400/173 395/401/174 381/387/160 -f 395/401/174 405/411/184 398/404/177 -f 397/403/176 398/404/177 405/411/184 -f 406/412/185 407/413/186 396/402/175 -f 408/414/187 406/412/185 409/415/188 -f 410/416/189 411/417/190 409/415/188 -f 412/418/191 345/351/124 413/419/192 -f 414/420/16 415/421/16 416/422/16 -f 417/423/103 418/424/99 419/425/193 -f 420/426/107 417/423/103 421/427/102 -f 418/424/99 422/428/94 423/429/93 -f 424/430/105 420/426/107 425/431/106 -f 426/432/194 424/430/105 427/433/195 -f 422/428/94 428/434/196 429/435/89 -f 430/436/197 426/432/194 431/437/95 -f 432/438/92 430/436/197 433/439/96 -f 428/434/196 434/440/86 435/441/85 -f 436/442/119 432/438/92 437/443/116 -f 438/444/120 436/442/119 439/445/81 -f 434/440/86 438/444/120 440/446/84 -f 441/447/16 442/448/16 443/449/16 -f 444/450/16 441/447/16 445/451/16 -f 442/448/16 446/452/16 447/453/16 -f 448/454/16 444/450/16 449/455/16 -f 450/456/16 448/454/16 451/457/16 -f 446/452/16 452/458/16 453/459/16 -f 414/460/16 450/456/16 454/461/16 -f 455/462/16 414/460/16 456/463/16 -f 452/458/16 457/464/16 458/465/16 -f 459/466/16 455/462/16 460/467/16 -f 461/468/16 459/466/16 462/469/16 -f 457/464/16 461/468/16 463/470/16 -f 464/471/16 465/472/16 466/473/16 -f 467/474/98 468/475/102 469/476/103 -f 470/477/93 467/474/98 471/478/99 -f 466/473/16 465/472/16 472/479/16 -f 468/475/102 473/480/106 474/481/107 -f 475/482/16 465/472/16 464/471/16 -f 472/479/16 465/472/16 476/483/16 -f 473/480/106 477/484/109 478/485/105 -f 479/486/89 470/477/93 480/487/94 -f 476/483/16 465/472/16 481/488/16 -f 477/484/109 482/489/198 483/490/198 -f 484/491/16 465/472/16 475/482/16 -f 481/488/16 465/472/16 485/492/16 -f 486/493/199 487/494/199 488/495/200 -f 489/496/85 479/486/89 490/497/90 -f 485/492/16 465/472/16 491/498/16 -f 492/499/201 493/500/202 494/501/202 -f 495/502/16 465/472/16 484/491/16 -f 491/498/16 465/472/16 496/503/16 -f 486/493/199 497/504/81 498/505/119 -f 499/506/84 489/496/85 500/507/86 -f 496/503/16 465/472/16 501/508/16 -f 497/504/81 499/506/84 502/509/120 -f 501/508/16 465/472/16 495/502/16 -f 503/510/203 488/495/200 494/501/202 -f 414/420/16 455/511/16 415/421/16 -f 483/490/198 482/489/198 504/512/204 -f 505/513/205 506/514/206 492/499/201 -f 416/515/16 415/516/16 507/517/16 -f 416/422/16 450/518/16 414/420/16 -f 508/519/16 509/520/16 510/521/16 -f 511/522/207 512/523/208 513/524/209 -f 514/525/6 515/526/6 516/527/6 -f 510/521/16 509/520/16 517/528/16 -f 512/523/208 518/529/210 519/530/211 -f 515/526/6 520/531/6 516/527/6 -f 517/528/16 509/520/16 521/532/16 -f 518/529/210 522/533/212 523/534/213 -f 520/531/6 524/535/6 516/527/6 -f 521/532/16 509/520/16 525/536/16 -f 526/537/214 527/538/215 528/539/216 -f 524/535/6 529/540/6 516/527/6 -f 525/536/16 509/520/16 530/541/16 -f 527/538/215 531/542/217 532/543/218 -f 529/540/6 533/544/6 516/527/6 -f 530/541/16 509/520/16 534/545/16 -f 531/542/217 535/546/219 536/547/220 -f 537/548/16 538/549/221 539/550/221 -f 533/544/6 540/551/6 516/527/6 -f 534/545/16 509/520/16 541/552/16 -f 539/550/221 538/549/221 542/553/222 -f 535/546/219 543/554/223 544/555/224 -f 540/551/6 545/556/6 516/527/6 -f 546/557/225 547/558/226 548/559/227 -f 549/560/228 546/557/225 550/561/229 -f 541/552/16 509/520/16 508/519/16 -f 543/554/223 511/522/207 551/562/230 -f 545/556/6 514/525/6 516/527/6 -f 552/563/231 553/564/232 554/565/233 -f 555/566/234 556/567/235 552/563/231 -f 557/568/236 558/569/237 559/570/16 -f 560/571/238 561/572/239 562/573/6 -f 563/574/240 564/575/241 565/576/242 -f 547/558/226 566/577/243 567/578/244 -f 568/579/245 569/580/246 570/581/247 -f 560/571/238 571/582/248 561/572/239 -f 572/583/1 573/584/1 574/585/1 -f 575/586/16 576/587/16 577/588/16 -f 115/115/16 578/589/16 579/590/16 -f 580/591/249 581/592/250 582/593/251 -f 570/581/247 569/580/246 583/594/252 -f 584/595/253 585/596/254 586/597/16 -f 587/598/1 588/599/1 589/600/1 -f 590/601/1 589/600/1 588/599/1 -f 591/602/6 592/603/6 593/604/6 -f 594/605/255 595/606/256 582/593/251 -f 596/607/257 597/608/1 598/609/258 -f 559/570/16 558/569/237 599/610/16 -f 600/611/22 601/612/22 602/613/22 -f 585/596/254 603/614/16 586/597/16 -f 604/615/22 605/616/22 606/617/22 -f 602/613/22 601/612/22 604/618/22 -f 607/619/24 608/620/24 609/621/24 -f 608/620/24 610/622/24 611/623/24 -f 612/624/24 613/625/24 611/623/24 -f 614/626/22 615/627/22 616/628/22 -f 617/629/259 618/630/260 619/631/260 -f 620/632/261 557/568/236 621/633/262 -f 568/579/245 622/634/236 623/635/263 -f 624/636/238 563/574/240 625/637/264 -f 626/638/265 627/639/266 628/640/267 -f 628/640/267 627/639/266 629/641/268 -f 628/640/267 629/641/268 630/642/269 -f 628/640/267 630/642/269 631/643/38 -f 632/644/270 633/645/271 634/646/41 -f 635/647/272 636/648/273 637/649/267 -f 638/650/274 639/651/275 640/652/276 -f 641/653/277 633/645/271 642/654/278 -f 643/655/16 644/656/16 642/654/278 -f 644/656/16 645/657/16 642/654/278 -f 646/658/16 642/654/278 645/657/16 -f 633/645/271 643/655/16 642/654/278 -f 643/655/16 633/645/271 632/644/270 -f 647/659/279 648/660/280 649/661/281 -f 650/662/6 651/663/6 652/664/282 -f 653/665/16 654/666/16 655/667/283 -f 656/668/6 657/669/6 658/670/6 -f 656/668/6 659/671/284 660/672/6 -f 650/662/6 652/664/282 661/673/6 -f 661/673/6 662/674/6 663/675/6 -f 663/675/6 664/676/6 665/677/6 -f 666/678/16 667/679/16 668/680/285 -f 669/681/16 670/682/16 671/683/16 -f 672/684/16 669/681/16 673/685/16 -f 654/666/16 672/684/16 674/686/16 -f 653/665/16 655/667/283 675/687/16 -f 651/663/6 676/688/6 659/671/284 -f 660/672/6 657/669/6 656/668/6 -f 657/669/6 665/677/6 658/670/6 -f 659/671/284 676/688/6 660/672/6 -f 652/664/282 662/674/6 661/673/6 -f 662/674/6 664/676/6 663/675/6 -f 664/676/6 658/670/6 665/677/6 -f 677/689/16 675/687/16 668/680/285 -f 670/682/16 667/679/16 666/678/16 -f 667/679/16 677/689/16 668/680/285 -f 670/682/16 666/678/16 671/683/16 -f 669/681/16 671/683/16 673/685/16 -f 672/684/16 673/685/16 674/686/16 -f 655/667/283 668/680/285 675/687/16 -f 678/690/22 615/627/22 614/626/22 -f 679/691/286 680/692/287 681/693/288 -f 682/694/16 683/695/289 680/692/287 -f 684/696/16 682/694/16 685/697/290 -f 686/698/291 684/696/16 687/699/292 -f 641/653/277 687/699/292 685/697/290 -f 688/700/293 647/659/279 689/701/294 -f 690/702/22 604/618/22 606/703/22 -f 691/704/295 692/705/296 553/564/232 -f 693/706/297 642/654/278 646/658/16 -f 694/707/298 693/706/297 646/658/16 -f 559/570/16 621/633/262 557/568/236 -f 695/708/16 696/709/16 697/710/16 -f 698/711/298 699/712/299 700/713/300 -f 556/567/235 701/714/301 702/715/302 -f 599/610/16 703/716/299 646/658/16 -f 603/614/16 646/658/16 114/114/40 -f 704/717/22 614/718/22 705/719/22 -f 706/720/34 707/721/34 708/722/303 -f 709/723/304 710/724/305 711/725/306 -f 712/726/307 713/727/308 714/728/309 -f 715/729/310 716/730/311 717/731/312 -f 718/732/313 714/728/309 713/727/308 -f 719/733/314 720/734/315 721/735/316 -f 721/735/316 722/736/317 723/737/318 -f 724/738/319 725/739/320 726/740/321 -f 727/741/322 728/742/323 725/739/320 -f 729/743/324 728/742/323 727/741/322 -f 724/738/319 727/741/322 725/739/320 -f 730/744/325 731/745/326 732/746/327 -f 733/747/328 734/748/329 730/744/325 -f 735/749/330 736/750/331 737/751/332 -f 738/752/333 735/749/330 739/753/334 -f 740/754/335 738/752/333 741/755/336 -f 742/756/337 740/754/335 743/757/338 -f 744/758/339 742/756/337 745/759/340 -f 746/760/341 747/761/342 748/762/343 -f 749/763/344 741/755/336 739/753/334 -f 750/764/345 743/757/338 741/755/336 -f 751/765/346 745/759/340 743/757/338 -f 752/766/347 753/767/348 745/759/340 -f 754/768/349 739/753/334 755/769/350 -f 756/770/351 757/771/352 738/752/333 -f 758/772/353 759/773/354 760/774/355 -f 723/737/318 719/733/314 721/735/316 -f 760/774/355 729/743/324 727/741/322 -f 761/775/356 730/744/325 732/746/327 -f 761/775/356 733/747/328 730/744/325 -f 741/755/336 738/752/333 739/753/334 -f 743/757/338 740/754/335 741/755/336 -f 745/759/340 742/756/337 743/757/338 -f 753/767/348 744/758/339 745/759/340 -f 762/776/357 746/760/341 748/762/343 -f 754/768/349 749/763/344 739/753/334 -f 749/763/344 750/764/345 741/755/336 -f 750/764/345 751/765/346 743/757/338 -f 751/765/346 752/766/347 745/759/340 -f 763/777/358 754/768/349 755/769/350 -f 764/778/359 765/779/360 724/738/319 -f 757/771/352 766/780/361 735/749/330 -f 760/774/355 767/781/362 729/743/324 -f 721/735/316 724/738/319 722/736/317 -f 730/744/325 734/748/329 768/782/363 -f 753/767/348 769/783/364 744/758/339 -f 752/766/347 770/784/365 753/767/348 -f 771/785/366 762/776/357 748/762/343 -f 772/786/367 744/758/339 762/776/357 -f 773/787/368 771/785/366 748/762/343 -f 771/785/366 772/786/367 762/776/357 -f 772/786/367 774/788/369 744/758/339 -f 583/594/252 647/659/279 775/789/370 -f 776/790/22 777/791/22 605/616/22 -f 565/576/242 778/792/371 625/637/264 -f 779/793/372 778/792/371 780/794/373 -f 781/795/374 782/796/296 554/565/233 -f 783/797/375 565/576/242 564/575/241 -f 784/798/6 785/799/6 786/800/6 -f 787/801/22 788/802/22 789/803/22 -f 790/804/6 791/805/6 792/806/6 -f 793/807/376 794/808/377 795/809/376 -f 796/810/1 797/811/1 798/812/1 -f 799/813/378 800/814/378 801/815/22 -f 678/690/22 604/618/22 601/612/22 -f 782/796/296 802/816/295 554/565/233 -f 803/817/379 804/818/380 556/567/235 -f 556/567/235 555/566/234 805/819/381 -f 552/563/231 554/565/233 806/820/382 -f 554/565/233 553/564/232 807/821/383 -f 808/822/22 809/823/22 810/824/22 -f 811/825/34 781/795/374 812/826/384 -f 813/827/34 782/796/296 781/795/374 -f 814/828/385 815/829/34 816/830/34 -f 812/826/384 817/831/386 818/832/386 -f 805/819/381 803/817/379 556/567/235 -f 819/833/22 808/822/22 820/834/22 -f 556/567/235 702/715/302 821/835/387 -f 640/652/276 822/836/388 823/837/389 -f 824/838/390 825/839/391 826/840/6 -f 823/837/389 826/840/6 827/841/392 -f 828/842/6 829/843/6 830/844/393 -f 831/845/394 830/844/393 832/846/6 -f 830/847/393 827/841/392 828/848/6 -f 822/836/388 826/840/6 823/837/389 -f 822/836/388 833/849/395 826/840/6 -f 833/849/395 824/838/390 826/840/6 -f 825/839/391 834/850/6 826/840/6 -f 826/840/6 828/848/6 827/841/392 -f 828/842/6 835/851/6 829/843/6 -f 829/843/6 836/852/6 830/844/393 -f 830/844/393 836/852/6 832/846/6 -f 837/853/22 838/854/22 839/855/22 -f 840/856/22 841/857/22 838/858/22 -f 842/859/22 843/860/22 837/853/22 -f 838/854/22 844/861/22 839/855/22 -f 838/858/22 845/862/22 840/856/22 -f 846/863/22 844/864/22 838/858/22 -f 845/862/22 838/858/22 809/823/22 -f 847/865/396 848/866/397 849/867/398 -f 850/868/16 847/865/396 851/869/399 -f 346/352/125 345/351/124 852/870/400 -f 853/871/401 412/418/191 401/407/180 -f 854/872/402 855/873/403 412/418/191 -f 854/872/402 853/871/401 856/874/404 -f 371/377/150 856/874/404 853/871/401 -f 857/875/405 407/413/186 406/412/185 -f 858/876/406 366/372/145 364/370/143 -f 858/876/406 365/371/144 857/875/405 -f 857/875/405 406/412/185 408/414/187 -f 357/363/136 859/877/407 860/878/408 -f 347/353/126 410/416/189 861/879/409 -f 350/356/129 403/409/182 862/880/410 -f 352/358/131 402/408/181 413/419/192 -f 396/402/175 861/879/409 409/415/188 -f 396/402/175 375/381/154 861/879/409 -f 355/361/134 861/879/409 373/379/152 -f 385/391/164 347/353/126 356/362/135 -f 384/390/163 345/351/124 385/391/164 -f 384/390/163 353/359/132 345/351/124 -f 345/351/124 347/353/126 385/391/164 -f 359/365/138 358/364/137 371/377/150 -f 361/367/140 863/881/411 358/364/137 -f 350/356/129 864/882/412 362/368/141 -f 350/356/129 862/880/410 864/882/412 -f 862/880/410 399/405/178 865/883/413 -f 399/405/178 342/348/121 866/884/414 -f 342/348/121 344/350/123 867/885/415 -f 857/875/405 365/371/144 407/413/186 -f 865/883/413 868/886/416 864/882/412 -f 866/884/414 869/887/417 865/883/413 -f 867/885/415 870/888/418 866/884/414 -f 367/373/146 871/889/419 867/885/415 -f 864/882/412 872/890/420 859/877/407 -f 403/409/182 398/404/177 862/880/410 -f 402/408/181 401/407/180 413/419/192 -f 375/381/154 373/379/152 861/879/409 -f 353/359/132 413/419/192 345/351/124 -f 358/364/137 856/874/404 371/377/150 -f 863/881/411 856/874/404 358/364/137 -f 862/880/410 865/883/413 864/882/412 -f 399/405/178 866/884/414 865/883/413 -f 342/348/121 867/885/415 866/884/414 -f 344/350/123 367/373/146 867/885/415 -f 365/371/144 363/369/142 407/413/186 -f 868/886/416 872/890/420 864/882/412 -f 869/887/417 868/886/416 865/883/413 -f 870/888/418 869/887/417 866/884/414 -f 871/889/419 870/888/418 867/885/415 -f 872/890/420 860/878/408 859/877/407 -f 346/352/125 410/416/189 347/353/126 -f 349/355/128 403/409/182 350/356/129 -f 352/358/131 413/419/192 353/359/132 -f 347/353/126 861/879/409 355/361/134 -f 361/367/140 358/364/137 357/363/136 -f 364/370/143 367/373/146 344/350/123 -f 366/372/145 871/889/419 367/373/146 -f 363/369/142 405/411/184 407/413/186 -f 344/350/123 404/410/183 363/369/142 -f 405/411/184 395/401/174 407/413/186 -f 404/410/183 405/411/184 363/369/142 -f 343/349/122 404/410/183 344/350/123 -f 774/788/369 742/756/337 744/758/339 -f 765/779/360 727/741/322 724/738/319 -f 766/780/361 736/750/331 735/749/330 -f 767/781/362 873/891/421 729/743/324 -f 724/738/319 874/892/422 722/736/317 -f 724/738/319 726/740/321 874/892/422 -f 730/744/325 768/782/363 731/745/326 -f 734/748/329 875/893/423 768/782/363 -f 736/750/331 731/745/326 768/782/363 -f 769/783/364 762/776/357 744/758/339 -f 762/776/357 769/783/364 746/760/341 -f 770/784/365 769/783/364 753/767/348 -f 876/894/424 732/746/327 731/745/326 -f 877/895/425 878/896/426 732/746/327 -f 879/897/427 873/891/421 767/781/362 -f 880/898/428 723/737/318 722/736/317 -f 880/898/428 719/733/314 723/737/318 -f 881/899/429 882/900/430 883/901/431 -f 884/902/432 885/903/433 886/904/434 -f 882/900/430 881/899/429 884/902/432 -f 722/736/317 874/892/422 887/905/435 -f 729/743/324 888/906/436 728/742/323 -f 726/740/321 725/739/320 888/906/436 -f 729/743/324 873/891/421 889/907/437 -f 879/897/427 890/908/438 889/907/437 -f 729/743/324 889/907/437 888/906/436 -f 891/909/439 892/910/440 890/908/438 -f 887/905/435 880/898/428 722/736/317 -f 887/905/435 888/906/436 893/911/441 -f 894/912/442 884/902/432 881/899/429 -f 895/913/443 881/899/429 880/898/428 -f 889/907/437 890/908/438 894/912/442 -f 893/911/441 888/906/436 889/907/437 -f 894/912/442 890/908/438 892/910/440 -f 896/914/444 885/903/433 894/912/442 -f 897/915/445 720/734/315 719/733/314 -f 773/787/368 748/762/343 720/734/315 -f 898/916/446 740/754/335 742/756/337 -f 756/770/351 738/752/333 740/754/335 -f 899/917/447 731/745/326 736/750/331 -f 878/896/426 877/895/425 759/773/354 -f 880/898/428 883/901/431 719/733/314 -f 887/905/435 893/911/441 880/898/428 -f 874/892/422 726/740/321 887/905/435 -f 888/906/436 887/905/435 726/740/321 -f 888/906/436 725/739/320 728/742/323 -f 890/908/438 879/897/427 891/909/439 -f 892/910/440 896/914/444 894/912/442 -f 885/903/433 884/902/432 894/912/442 -f 767/781/362 759/773/354 877/895/425 -f 891/909/439 879/897/427 767/781/362 -f 891/909/439 767/781/362 899/917/447 -f 766/780/361 896/914/444 892/910/440 -f 766/780/361 885/903/433 896/914/444 -f 886/904/434 885/903/433 766/780/361 -f 882/900/430 886/904/434 757/771/352 -f 897/915/445 883/901/431 882/900/430 -f 773/787/368 882/900/430 756/770/351 -f 898/916/446 772/786/367 771/785/366 -f 898/916/446 774/788/369 772/786/367 -f 876/894/424 899/917/447 877/895/425 -f 899/917/447 767/781/362 877/895/425 -f 892/910/440 891/909/439 899/917/447 -f 899/917/447 766/780/361 892/910/440 -f 757/771/352 886/904/434 766/780/361 -f 756/770/351 882/900/430 757/771/352 -f 773/787/368 897/915/445 882/900/430 -f 771/785/366 773/787/368 756/770/351 -f 756/770/351 898/916/446 771/785/366 -f 900/918/448 901/919/449 720/734/315 -f 902/920/450 903/921/451 901/919/449 -f 764/778/359 721/735/316 901/919/449 -f 904/922/452 758/772/353 760/774/355 -f 765/779/360 905/923/453 906/924/454 -f 907/925/455 878/896/426 758/772/353 -f 908/926/456 907/925/455 904/922/452 -f 908/926/456 733/747/328 761/775/356 -f 732/746/327 878/896/426 907/925/455 -f 748/762/343 747/761/342 900/918/448 -f 909/927/457 746/760/341 769/783/364 -f 909/927/457 910/928/458 747/761/342 -f 747/761/342 910/928/458 902/920/450 -f 768/782/363 875/893/423 763/777/358 -f 764/778/359 724/738/319 721/735/316 -f 757/771/352 735/749/330 738/752/333 -f 759/773/354 767/781/362 760/774/355 -f 721/735/316 720/734/315 901/919/449 -f 911/929/459 717/731/312 716/730/311 -f 912/930/460 648/660/280 647/659/279 -f 586/597/16 603/614/16 913/931/16 -f 583/594/252 569/580/246 623/635/263 -f 775/789/370 647/659/279 688/700/293 -f 914/932/16 913/931/16 121/121/42 -f 775/789/370 570/581/247 583/594/252 -f 700/713/300 915/933/461 916/934/297 -f 917/935/237 918/936/462 699/712/299 -f 915/933/461 919/937/463 920/938/278 -f 568/579/245 570/581/247 917/935/237 -f 918/936/462 700/713/300 699/712/299 -f 919/937/463 921/939/464 922/940/277 -f 921/939/464 923/941/465 924/942/466 -f 924/942/466 923/941/465 710/724/305 -f 711/725/306 710/724/305 923/941/465 -f 925/943/467 924/942/466 710/724/305 -f 622/634/236 568/579/245 917/935/237 -f 926/944/468 927/945/469 928/946/470 -f 929/947/6 592/603/6 930/948/6 -f 616/628/22 820/834/22 931/949/22 -f 929/947/6 593/604/6 592/603/6 -f 591/602/6 932/950/6 592/603/6 -f 933/951/471 934/952/472 935/953/473 -f 604/618/22 678/690/22 704/954/22 -f 936/955/474 937/956/475 938/957/476 -f 939/958/6 940/959/6 937/960/475 -f 941/961/16 942/962/16 943/963/16 -f 692/705/296 807/821/383 553/564/232 -f 944/964/16 942/962/16 941/961/16 -f 945/965/16 697/710/16 696/709/16 -f 946/966/22 947/967/22 948/968/22 -f 949/969/16 950/970/16 951/971/16 -f 952/972/477 953/973/477 954/974/477 -f 955/975/478 956/976/479 957/977/478 -f 958/978/480 959/979/481 960/980/482 -f 961/981/483 960/980/482 959/979/481 -f 962/982/484 596/607/257 963/983/485 -f 964/984/1 965/985/1 966/986/1 -f 960/980/482 967/987/486 958/978/480 -f 777/791/22 606/617/22 605/616/22 -f 968/988/487 969/989/16 970/990/254 -f 576/587/16 971/991/16 577/588/16 -f 972/992/378 973/993/22 974/994/22 -f 975/995/16 971/991/16 119/119/16 -f 976/996/16 119/119/16 977/997/488 -f 978/998/16 977/997/488 979/999/39 -f 980/1000/16 979/999/39 631/643/38 -f 981/1001/489 982/1002/490 983/1003/491 -f 578/589/16 576/587/16 984/1004/16 -f 577/588/16 971/991/16 985/1005/16 -f 985/1005/16 971/991/16 975/995/16 -f 976/996/16 975/995/16 119/119/16 -f 978/998/16 976/996/16 977/997/488 -f 977/997/488 119/119/16 118/118/16 -f 980/1000/16 978/998/16 979/999/39 -f 986/1006/492 980/1000/16 631/643/38 -f 986/1006/492 631/643/38 630/642/269 -f 117/117/41 116/116/16 987/1007/16 -f 626/638/265 117/117/41 987/1007/16 -f 988/1008/16 576/587/16 578/589/16 -f 579/590/16 578/589/16 984/1004/16 -f 984/1004/16 576/587/16 575/586/16 -f 989/1009/493 990/1010/494 927/945/469 -f 991/1011/24 126/126/24 125/125/24 -f 124/124/24 123/123/24 126/126/24 -f 992/1012/34 706/720/34 807/821/383 -f 993/1013/495 708/722/303 707/721/34 -f 708/722/303 993/1013/495 994/1014/386 -f 995/1015/496 701/714/301 556/567/235 -f 685/697/290 680/692/287 996/1016/497 -f 633/645/271 997/1017/498 634/646/41 -f 998/1018/499 999/1019/500 679/691/286 -f 1000/1020/501 1001/1021/41 1002/1022/502 -f 680/692/287 679/691/286 999/1019/500 -f 685/697/290 997/1017/498 633/645/271 -f 914/932/16 121/121/42 969/989/16 -f 552/563/231 821/835/387 553/564/232 -f 804/818/380 995/1015/496 556/567/235 -f 1003/1023/16 1004/1024/16 1005/1025/16 -f 703/716/299 694/707/298 646/658/16 -f 646/658/16 635/647/272 114/114/40 -f 913/931/16 603/614/16 121/121/42 -f 121/121/42 970/990/254 969/989/16 -f 114/114/40 121/121/42 603/614/16 -f 570/581/247 918/936/462 917/935/237 -f 1006/1026/24 991/1027/24 125/1028/24 -f 127/127/24 126/126/24 123/123/24 -f 616/628/22 615/627/22 820/834/22 -f 1007/1029/503 1008/1030/22 1009/1031/22 -f 1010/1032/504 585/596/254 584/595/253 -f 968/988/487 970/990/254 1011/1033/504 -f 1012/1034/34 1013/1035/34 1014/1036/34 -f 1015/1037/34 1012/1034/34 1016/1038/34 -f 1014/1036/34 1017/1039/34 1016/1038/34 -f 1012/1034/34 1014/1036/34 1016/1038/34 -f 1015/1037/34 1018/1040/34 1012/1034/34 -f 1019/1041/22 1020/1042/505 1021/1043/506 -f 1022/1044/16 1023/1045/16 1024/1046/507 -f 1025/1047/24 1026/1048/24 1027/1049/24 -f 1028/1050/34 1029/1051/34 1030/1052/34 -f 1031/1053/24 1032/1054/24 1027/1049/24 -f 1024/1046/507 1021/1043/506 1020/1042/505 -f 1033/1055/508 1034/1056/16 1035/1057/16 -f 1033/1055/508 1036/1058/508 1037/1059/509 -f 1038/1060/510 1039/1061/511 1040/1062/512 -f 1041/1063/34 1042/1064/34 1043/1065/34 -f 1043/1065/34 1042/1064/34 1016/1038/34 -f 1044/1066/6 1045/1067/6 1046/1068/6 -f 1047/1069/22 1048/1070/513 1049/1071/514 -f 1050/1072/6 1051/1073/515 1052/1074/516 -f 1053/1075/24 1054/1076/24 1055/1077/24 -f 1032/1054/24 1031/1053/24 1056/1078/24 -f 1056/1078/24 1057/1079/24 1055/1077/24 -f 1052/1074/516 1051/1073/515 1058/1080/517 -f 1059/1081/518 1060/1082/518 1061/1083/6 -f 1049/1071/514 1048/1070/513 1062/1084/510 -f 1030/1052/34 1018/1040/34 1015/1037/34 -f 1063/1085/16 1064/1086/16 1065/1087/16 -f 1059/1081/518 1066/1088/519 1067/1089/519 -f 1068/1090/520 1037/1059/509 1067/1089/519 -f 1013/1035/34 1069/1091/34 1014/1036/34 -f 1070/1092/16 34/34/16 36/36/16 -f 1071/1093/17 37/37/17 39/39/17 -f 1072/1094/6 40/40/6 42/42/6 -f 1073/1095/18 43/43/18 45/45/20 -f 1074/1096/16 1075/1097/16 1070/1092/16 -f 1076/1098/521 45/45/20 1077/1099/522 -f 36/36/16 1074/1096/16 1070/1092/16 -f 1075/1097/16 1078/1100/16 1070/1092/16 -f 1071/1093/17 39/39/17 1079/1101/17 -f 42/42/6 1080/1102/6 1072/1094/6 -f 45/45/20 44/44/19 1077/1099/522 -f 1081/1103/523 1082/1104/523 1083/1105/523 -f 1084/1106/524 117/117/41 626/638/265 -f 823/837/389 1085/1107/525 638/650/274 -f 823/837/389 638/650/274 640/652/276 -f 639/651/275 983/1003/491 640/652/276 -f 645/657/16 636/648/273 635/647/272 -f 1086/1108/526 1087/1109/527 1088/1110/528 -f 1089/1111/529 1090/1112/530 1091/1113/531 -f 1092/1114/532 1093/1115/533 1094/1116/534 -f 1093/1115/533 1095/1117/535 1094/1116/534 -f 982/1002/490 640/652/276 983/1003/491 -f 1091/1113/531 1090/1112/530 1096/1118/22 -f 1097/1119/6 1098/1120/536 1099/1121/6 -f 1100/1122/535 1085/1107/525 823/837/389 -f 1092/1114/532 1101/1123/6 1093/1115/533 -f 1102/1124/537 1103/1125/275 1104/1126/538 -f 1105/1127/1 1106/1128/1 1107/1129/539 -f 1108/1130/540 1092/1114/532 1109/1131/541 -f 1101/1123/6 1110/1132/6 1093/1115/533 -f 654/666/16 674/686/16 655/667/283 -f 651/663/6 659/671/284 652/664/282 -f 1111/1133/1 1112/1134/1 1113/1135/542 -f 1114/1136/543 1115/1137/544 1116/1138/24 -f 1115/1139/544 1114/1140/543 1117/1141/22 -f 1118/1142/34 1119/1143/34 1120/1144/545 -f 1121/1145/477 1122/1146/477 1123/1147/477 -f 1124/1148/546 595/606/256 594/605/255 -f 1122/1146/477 1125/1149/477 1123/1147/477 -f 1126/1150/477 1121/1145/477 1127/1151/477 -f 558/569/237 703/716/299 599/610/16 -f 1128/1152/24 1129/1153/24 1130/1154/24 -f 1131/1155/24 1132/1156/24 1129/1153/24 -f 933/951/471 1133/1157/547 934/952/472 -f 641/653/277 685/697/290 633/645/271 -f 687/699/292 684/696/16 685/697/290 -f 1122/1146/477 952/972/477 954/974/477 -f 1134/1158/477 954/974/477 953/973/477 -f 682/694/16 680/692/287 685/697/290 -f 1127/1151/477 1121/1145/477 1123/1147/477 -f 683/695/289 681/693/288 680/692/287 -f 615/627/22 819/833/22 820/834/22 -f 990/1010/494 928/946/470 927/945/469 -f 848/866/397 1135/1159/548 938/957/476 -f 1136/1160/549 933/951/471 935/953/473 -f 1116/1138/24 1137/1161/542 1113/1135/542 -f 1118/1142/34 1138/1162/550 1139/1163/551 -f 1120/1144/545 1140/1164/22 1117/1165/22 -f 1141/1166/1 1139/1163/551 1138/1162/550 -f 1142/1167/260 1143/1168/552 1144/1169/260 -f 617/629/259 619/631/260 1144/1169/260 -f 1145/1170/24 1146/1171/24 1147/1172/24 -f 1148/1173/24 1149/1174/24 1147/1172/24 -f 1150/1175/24 1151/1176/24 1149/1174/24 -f 1152/1177/22 602/613/22 604/618/22 -f 828/842/6 1153/1178/394 835/851/6 -f 840/856/22 1154/1179/22 841/857/22 -f 1155/1180/241 562/573/6 834/850/6 -f 1156/1181/257 1157/1182/485 1158/1183/553 -f 1159/1184/34 1160/1185/34 1161/1186/34 -f 1162/1187/16 1163/1188/16 1164/1189/16 -f 1165/1190/1 1166/1191/1 1167/1192/1 -f 1168/1193/1 1169/1194/1 1165/1190/1 -f 1153/1178/394 1170/1195/554 835/851/6 -f 1171/1196/555 1172/1197/555 1173/1198/556 -f 1174/1199/557 598/609/258 1158/1183/553 -f 1175/1200/6 1176/1201/6 1177/1202/6 -f 1178/1203/16 1179/1204/16 1180/1205/16 -f 1181/1206/558 1182/1207/558 1183/1208/559 -f 1107/1129/539 1184/1209/560 1185/1210/561 -f 1186/1211/6 1187/1212/6 1188/1213/6 -f 1189/1214/1 1190/1215/1 1191/1216/1 -f 1192/1217/562 1193/1218/563 1194/1219/564 -f 1195/1220/565 1196/1221/566 1197/1222/567 -f 1198/1223/568 1197/1222/567 1193/1218/563 -f 1199/1224/569 1200/1225/570 1201/1226/570 -f 1202/1227/6 1203/1228/6 1199/1224/569 -f 1204/1229/24 1205/1230/24 1206/1231/24 -f 1207/1232/24 1208/1233/24 1209/1234/24 -f 1184/1209/560 1210/1235/571 1211/1236/571 -f 830/847/393 1212/1237/572 1213/1238/573 -f 1214/1239/6 1215/1240/6 1216/1241/6 -f 1217/1242/558 1218/1243/558 1219/1244/574 -f 1176/1201/6 1175/1200/6 1098/1120/536 -f 1098/1120/536 1108/1130/540 1099/1121/6 -f 1220/1245/575 823/837/389 827/841/392 -f 1221/1246/554 1222/1247/576 1223/1248/576 -f 1224/1249/576 1225/1250/576 1170/1195/554 -f 1196/1221/566 1195/1220/565 1226/1251/22 -f 991/1027/24 1006/1026/24 1227/1252/24 -f 1228/1253/24 1206/1231/24 1207/1232/24 -f 1229/1254/24 1227/1252/24 1204/1255/24 -f 1230/1256/577 1231/1257/577 1232/1258/577 -f 1220/1245/575 1100/1122/535 823/837/389 -f 635/647/272 646/658/16 645/657/16 -f 1233/1259/274 1088/1110/528 1087/1109/527 -f 1234/1260/1 1235/1261/1 1236/1262/1 -f 1092/1114/532 1094/1116/534 1109/1131/541 -f 1237/1263/578 1238/1264/579 1239/1265/579 -f 1173/1198/556 1237/1263/578 1240/1266/580 -f 1241/1267/1 1172/1197/555 1171/1196/555 -f 1242/1268/581 1243/1269/581 1244/1270/581 -f 1245/1271/582 1246/1272/582 1247/1273/582 -f 1248/1274/6 1249/1275/6 1250/1276/6 -f 1251/1277/583 1252/1278/583 1253/1279/583 -f 1254/1280/584 1001/1021/41 1000/1020/501 -f 1255/1281/585 1256/1282/586 640/652/276 -f 1257/1283/587 1258/1284/588 1259/1285/589 -f 1260/1286/590 1261/1287/591 1262/1288/585 -f 1263/1289/592 1264/1290/593 1265/1291/594 -f 1255/1281/585 640/652/276 982/1002/490 -f 1256/1282/586 1255/1281/585 1258/1284/588 -f 1266/1292/588 1267/1293/497 1268/1294/595 -f 1267/1293/497 1266/1292/588 1262/1288/585 -f 1261/1287/591 1269/1295/596 1002/1022/502 -f 1270/1296/499 1271/1297/597 1272/1298/598 -f 1207/1232/24 1209/1234/24 1228/1253/24 -f 1228/1253/24 1229/1299/24 1204/1229/24 -f 1273/1300/22 616/628/22 931/949/22 -f 1186/1211/6 1274/1301/6 1187/1212/6 -f 1175/1200/6 1177/1202/6 1274/1301/6 -f 1186/1211/6 1275/1302/6 1175/1200/6 -f 1084/1106/524 626/638/265 628/640/267 -f 628/640/267 1179/1204/16 1178/1203/16 -f 1095/1117/535 1276/1303/575 1277/1304/599 -f 1099/1121/6 1108/1130/540 1109/1131/541 -f 1278/1305/600 1094/1116/534 1095/1117/535 -f 1276/1303/575 1279/1306/601 1277/1304/599 -f 1280/1307/6 1279/1306/601 1276/1303/575 -f 1281/1308/6 1280/1307/6 1282/1309/573 -f 1214/1239/6 1283/1310/572 1215/1240/6 -f 1284/1311/6 1281/1308/6 1283/1310/572 -f 1285/1312/6 1284/1311/6 1214/1239/6 -f 1286/1313/6 1287/1314/6 1285/1312/6 -f 1286/1313/6 1188/1213/6 1287/1314/6 -f 1186/1211/6 1175/1200/6 1274/1301/6 -f 1103/1125/275 1233/1259/274 1288/1315/602 -f 1282/1309/573 1280/1307/6 1276/1303/575 -f 1283/1310/572 1281/1308/6 1282/1309/573 -f 1214/1239/6 1284/1311/6 1283/1310/572 -f 1286/1313/6 1285/1312/6 1214/1239/6 -f 1289/1316/603 1290/1317/604 1291/1318/605 -f 1286/1313/6 1186/1211/6 1188/1213/6 -f 832/846/6 1221/1246/554 831/845/394 -f 839/855/22 842/859/22 837/853/22 -f 1292/1319/606 1293/1320/607 1294/1321/608 -f 958/978/480 967/987/486 1292/1319/606 -f 1295/1322/484 1296/1323/609 1157/1182/485 -f 1296/1323/609 1295/1322/484 1297/1324/610 -f 1297/1324/610 1294/1321/608 1293/1320/607 -f 1298/1325/611 1299/1326/612 1300/1327/613 -f 1299/1326/612 1301/1328/614 1302/1329/615 -f 1303/1330/616 1298/1325/611 1304/1331/617 -f 1301/1328/614 1305/1332/618 1306/1333/619 -f 1307/1334/620 1303/1330/616 1308/1335/621 -f 1305/1332/618 1309/1336/622 1310/1337/623 -f 1311/1338/624 1307/1334/620 1312/1339/625 -f 1309/1336/622 1313/1340/626 1314/1341/627 -f 1315/1342/628 1311/1338/624 1316/1343/629 -f 1313/1340/626 1174/1199/557 1317/1344/630 -f 1290/1317/604 1315/1342/628 1318/1345/631 -f 1319/1346/24 1320/1347/24 1321/1348/632 -f 1322/1349/16 1163/1188/16 1162/1187/16 -f 1164/1189/16 1323/1350/16 1162/1187/16 -f 1324/1351/1 1325/1352/1 1326/1353/1 -f 1323/1350/16 1327/1354/16 1328/1355/16 -f 597/608/1 1329/1356/1 1158/1183/553 -f 560/571/238 562/573/6 1155/1180/241 -f 1330/1357/633 1331/1358/634 1332/1359/635 -f 1332/1359/635 1333/1360/636 1334/1361/637 -f 1334/1361/637 1330/1357/633 1332/1359/635 -f 1335/1362/638 1336/1363/639 1330/1357/633 -f 1337/1364/640 1338/1365/388 1336/1363/639 -f 1339/1366/641 783/797/375 1340/1367/391 -f 565/576/242 625/637/264 563/574/240 -f 1341/1368/642 1342/1369/395 1338/1365/388 -f 783/797/375 564/575/241 1340/1367/391 -f 1339/1366/641 1343/1370/390 1342/1369/395 -f 565/576/242 780/794/373 778/792/371 -f 689/701/294 779/793/372 688/700/293 -f 779/793/372 780/794/373 688/700/293 -f 778/792/371 1344/1371/643 1345/1372/248 -f 689/701/294 649/661/281 1346/1373/644 -f 1344/1371/643 778/792/371 779/793/372 -f 1347/1374/645 1348/1375/646 1349/1376/647 -f 1348/1375/646 1347/1374/645 1350/1377/648 -f 1351/1378/649 1352/1379/650 1353/1380/651 -f 1350/1377/648 1354/1381/652 1355/1382/653 -f 1332/1359/635 1356/1383/654 1333/1360/636 -f 711/725/306 923/941/465 1334/1361/637 -f 923/941/465 921/939/464 1335/1362/638 -f 919/937/463 915/933/461 1341/1368/642 -f 1335/1362/638 921/939/464 919/937/463 -f 915/933/461 700/713/300 1339/1366/641 -f 1340/1367/391 1343/1370/390 1339/1366/641 -f 1357/1384/6 1358/1385/6 784/798/6 -f 624/636/238 564/575/241 563/574/240 -f 775/789/370 688/700/293 780/794/373 -f 1339/1366/641 700/713/300 918/936/462 -f 775/789/370 780/794/373 565/576/242 -f 783/797/375 918/936/462 570/581/247 -f 1359/1386/639 822/836/388 640/652/276 -f 1360/1387/655 1359/1386/639 1256/1282/586 -f 1361/1388/6 1362/1389/656 1360/1387/655 -f 1363/1390/6 1361/1388/6 1256/1282/586 -f 1364/1391/657 1363/1390/6 1257/1283/587 -f 1257/1283/587 1265/1291/594 1264/1290/593 -f 845/862/22 809/823/22 808/822/22 -f 1256/1282/586 1359/1386/639 640/652/276 -f 1361/1388/6 1360/1387/655 1256/1282/586 -f 1257/1283/587 1363/1390/6 1256/1282/586 -f 1264/1290/593 1364/1391/657 1257/1283/587 -f 825/839/391 1155/1180/241 834/850/6 -f 1365/1392/477 1366/1393/477 1367/1394/477 -f 1368/1395/477 1369/1396/477 1370/1397/477 -f 1368/1395/477 1370/1397/477 1367/1394/477 -f 1366/1393/477 1368/1395/477 1367/1394/477 -f 1366/1393/477 1365/1392/477 1371/1398/477 -f 1371/1398/477 1372/1399/477 1373/1400/477 -f 1134/1158/477 953/973/477 1373/1400/477 -f 1374/1401/658 1375/1402/659 1376/1403/660 -f 1376/1403/660 1377/1404/661 1378/1405/662 -f 1379/1406/663 1380/1407/664 1381/1408/665 -f 1382/1409/666 1380/1407/664 1379/1406/663 -f 1124/1148/546 1383/1410/667 1375/1402/659 -f 1121/1145/477 1126/1150/477 1369/1396/477 -f 1373/1400/477 1384/1411/477 1371/1398/477 -f 690/1412/22 606/617/22 839/855/22 -f 1385/1413/24 1386/1414/24 1387/1415/24 -f 1388/1416/6 1389/1417/6 1390/1418/6 -f 1391/1419/22 1392/1420/22 1393/1421/22 -f 1390/1422/6 1394/1423/6 1395/1424/6 -f 1396/1425/5 10/10/5 12/12/5 -f 1397/1426/6 13/13/6 15/15/6 -f 27/27/14 16/16/7 18/18/9 -f 1398/1427/11 19/19/10 21/21/11 -f 1399/1428/12 22/22/12 24/24/12 -f 18/18/9 25/25/13 27/27/14 -f 1400/1429/6 28/28/6 30/30/6 -f 1401/1430/15 31/31/15 33/33/15 -f 84/84/33 75/75/25 77/77/27 -f 54/54/21 78/78/28 57/57/23 -f 79/79/28 78/78/28 81/81/30 -f 81/81/30 80/80/29 83/83/32 -f 83/83/32 82/82/31 76/76/26 -f 1402/1431/34 86/86/34 88/88/34 -f 1403/1432/34 89/89/34 91/91/34 -f 1404/1433/22 92/92/22 94/94/22 -f 1405/1434/6 95/95/6 97/97/6 -f 1406/1435/6 98/98/6 100/100/6 -f 1407/1436/34 101/101/34 103/103/34 -f 251/257/73 109/109/35 111/111/37 -f 635/647/272 112/112/38 114/114/40 -f 578/589/16 115/115/16 117/117/41 -f 1408/1437/488 121/121/42 113/113/39 -f 1409/1438/24 125/125/24 127/127/24 -f 252/258/24 128/128/24 130/130/24 -f 253/259/72 131/131/43 133/133/45 -f 254/260/34 134/134/34 136/136/34 -f 111/111/37 110/110/36 138/138/47 -f 130/130/24 129/129/24 140/1439/24 -f 133/133/45 132/132/44 142/143/49 -f 136/136/34 135/135/34 144/145/34 -f 138/138/47 137/137/46 146/147/51 -f 140/1439/24 139/148/24 148/150/24 -f 142/143/49 141/142/48 150/152/53 -f 144/145/34 143/144/34 152/154/34 -f 146/1440/51 145/1441/50 154/1442/55 -f 148/150/24 147/149/24 156/158/24 -f 150/1443/53 149/1444/52 158/1445/57 -f 152/154/34 151/153/34 160/163/34 -f 1410/1446/78 161/1447/58 163/1448/60 -f 156/158/24 155/157/24 165/168/24 -f 1411/1449/77 166/169/61 168/171/63 -f 160/163/34 159/162/34 170/173/34 -f 163/1448/60 162/174/59 172/176/65 -f 165/168/24 164/167/24 174/178/24 -f 168/171/63 167/170/62 176/180/67 -f 170/173/34 169/172/34 178/182/34 -f 172/176/65 171/175/64 180/184/69 -f 174/178/24 173/177/24 182/186/24 -f 176/180/67 175/179/66 184/188/71 -f 178/182/34 177/181/34 186/190/34 -f 180/184/69 179/183/68 188/1450/72 -f 182/186/24 181/185/24 190/195/24 -f 184/188/71 183/187/70 192/197/73 -f 186/190/34 185/189/34 194/199/34 -f 188/1450/72 187/1451/43 196/1452/45 -f 190/195/24 189/194/24 198/203/24 -f 192/197/73 191/196/35 200/205/37 -f 194/199/34 193/198/34 202/207/34 -f 196/1452/45 195/1453/74 204/1454/49 -f 198/203/24 197/202/24 206/211/24 -f 200/205/37 199/204/36 208/213/47 -f 202/207/34 201/206/34 210/215/34 -f 204/1454/49 203/1455/48 212/1456/53 -f 206/211/24 205/210/24 214/219/24 -f 208/213/47 207/212/46 216/221/76 -f 210/215/34 209/214/34 218/223/34 -f 212/217/53 211/216/52 220/225/77 -f 214/219/24 213/218/24 222/227/24 -f 216/221/76 215/220/75 224/229/78 -f 218/223/34 217/222/34 226/231/34 -f 220/225/77 219/224/56 228/233/80 -f 222/227/24 221/226/24 230/235/24 -f 224/1457/78 223/236/54 232/238/60 -f 226/231/34 225/230/34 234/240/34 -f 228/233/80 227/232/79 236/242/67 -f 230/235/24 229/234/24 238/244/24 -f 232/238/60 231/237/59 240/246/65 -f 234/240/34 233/239/34 242/248/34 -f 236/242/67 235/241/66 244/250/71 -f 238/244/24 237/243/24 246/252/24 -f 240/246/65 239/245/64 248/254/69 -f 242/248/34 241/247/34 250/256/34 -f 244/250/71 243/249/70 251/257/73 -f 246/252/24 245/251/24 252/258/24 -f 248/254/69 247/253/68 253/259/72 -f 250/256/34 249/255/34 254/260/34 -f 278/284/6 255/261/6 257/263/6 -f 257/263/6 256/262/6 259/265/6 -f 259/265/6 258/264/6 261/267/6 -f 261/267/6 260/266/6 263/269/6 -f 263/269/6 262/268/6 265/271/6 -f 265/271/6 264/270/6 267/273/6 -f 267/273/6 266/272/6 269/275/6 -f 269/275/6 268/274/6 271/277/6 -f 271/277/6 270/276/6 273/279/6 -f 273/279/6 272/278/6 275/281/6 -f 275/281/6 274/280/6 277/283/6 -f 277/283/6 276/282/6 278/284/6 -f 289/295/88 279/285/81 281/287/83 -f 341/347/120 282/288/84 284/290/86 -f 294/300/92 288/294/87 289/295/88 -f 284/290/86 283/289/85 291/297/90 -f 1412/1458/197 293/299/91 294/300/92 -f 291/297/90 290/296/89 296/302/94 -f 305/311/101 298/304/95 300/306/97 -f 296/302/94 295/301/93 302/308/99 -f 310/316/105 304/310/100 305/311/101 -f 302/308/99 301/307/98 307/313/103 -f 315/321/108 309/315/104 310/316/105 -f 307/313/103 306/312/102 312/318/107 -f 320/326/111 314/320/102 315/321/108 -f 312/318/107 311/317/106 317/323/105 -f 325/331/99 319/325/110 320/326/111 -f 317/323/105 316/322/109 322/328/112 -f 330/336/115 324/330/113 325/331/99 -f 322/328/112 321/327/95 327/333/114 -f 336/342/118 329/335/89 330/336/115 -f 1413/1459/197 331/337/91 333/339/92 -f 340/346/86 335/341/117 336/342/118 -f 333/339/92 332/338/116 338/344/119 -f 281/287/83 280/286/82 340/346/86 -f 338/344/119 337/343/81 341/347/120 -f 359/365/138 348/354/127 357/363/136 -f 371/377/150 368/374/147 359/365/138 -f 400/406/179 370/376/149 371/377/150 -f 381/387/160 376/382/155 377/383/156 -f 376/382/155 381/387/160 379/385/158 -f 389/395/168 372/378/151 386/392/165 -f 379/385/158 391/397/170 376/382/155 -f 376/382/155 392/398/171 374/380/153 -f 389/395/168 386/392/165 391/397/170 -f 383/389/162 390/396/169 386/392/165 -f 396/402/175 394/400/173 375/381/154 -f 407/413/186 395/401/174 396/402/175 -f 399/405/178 397/403/176 342/348/121 -f 862/880/410 398/404/177 399/405/178 -f 359/365/138 369/375/148 348/354/127 -f 370/376/149 400/406/179 402/408/181 -f 409/415/188 406/412/185 396/402/175 -f 411/417/190 408/414/187 409/415/188 -f 861/879/409 410/416/189 409/415/188 -f 401/407/180 412/418/191 413/419/192 -f 421/427/102 417/423/103 419/425/193 -f 425/431/106 420/426/107 421/427/102 -f 419/425/193 418/424/99 423/429/93 -f 427/433/195 424/430/105 425/431/106 -f 431/437/95 426/432/194 427/433/195 -f 423/429/93 422/428/94 429/435/89 -f 433/439/96 430/436/197 431/437/95 -f 437/443/116 432/438/92 433/439/96 -f 429/435/89 428/434/196 435/441/85 -f 439/445/81 436/442/119 437/443/116 -f 440/446/84 438/444/120 439/445/81 -f 435/441/85 434/440/86 440/446/84 -f 445/451/16 441/447/16 443/449/16 -f 449/455/16 444/450/16 445/451/16 -f 443/449/16 442/448/16 447/453/16 -f 451/457/16 448/454/16 449/455/16 -f 454/461/16 450/456/16 451/457/16 -f 447/453/16 446/452/16 453/459/16 -f 456/463/16 414/460/16 454/461/16 -f 460/467/16 455/462/16 456/463/16 -f 453/459/16 452/458/16 458/465/16 -f 462/469/16 459/466/16 460/467/16 -f 463/470/16 461/468/16 462/469/16 -f 458/465/16 457/464/16 463/470/16 -f 471/478/99 467/474/98 469/476/103 -f 480/487/94 470/477/93 471/478/99 -f 469/476/103 468/475/102 474/481/107 -f 474/481/107 473/480/106 478/485/105 -f 490/497/90 479/486/89 480/487/94 -f 478/485/105 477/484/109 483/490/198 -f 503/510/203 486/493/199 488/495/200 -f 500/507/86 489/496/85 490/497/90 -f 1414/1460/201 492/499/201 494/501/202 -f 487/494/199 486/493/199 498/505/119 -f 502/509/120 499/506/84 500/507/86 -f 498/505/119 497/504/81 502/509/120 -f 493/500/202 503/510/203 494/501/202 -f 1415/1461/205 483/490/198 504/512/204 -f 1414/1460/201 505/513/205 492/499/201 -f 1416/1462/16 416/515/16 507/517/16 -f 551/562/230 511/522/207 513/524/209 -f 513/524/209 512/523/208 519/530/211 -f 519/530/211 518/529/210 523/534/213 -f 1417/1463/668 526/537/214 528/539/216 -f 528/539/216 527/538/215 532/543/218 -f 532/543/218 531/542/217 536/547/220 -f 1418/1464/16 537/548/16 539/550/221 -f 1419/1465/222 539/550/221 542/553/222 -f 536/547/220 535/546/219 544/555/224 -f 550/561/229 546/557/225 548/559/227 -f 1007/1029/503 549/560/228 550/561/229 -f 544/555/224 543/554/223 551/562/230 -f 806/820/382 555/566/234 552/563/231 -f 548/559/227 547/558/226 567/578/244 -f 1420/1466/1 572/583/1 574/585/1 -f 1382/1409/666 580/591/249 582/593/251 -f 1421/1467/1 587/598/1 589/600/1 -f 581/592/250 594/605/255 582/593/251 -f 963/983/485 596/607/257 598/609/258 -f 1422/1468/24 607/619/24 609/621/24 -f 609/621/24 608/620/24 611/623/24 -f 610/622/24 612/624/24 611/623/24 -f 569/580/246 568/579/245 623/635/263 -f 1345/1372/248 624/636/238 625/637/264 -f 1423/1469/524 632/644/270 634/646/41 -f 112/112/38 635/647/272 637/649/267 -f 689/701/294 647/659/279 649/661/281 -f 704/954/22 678/690/22 614/626/22 -f 1424/1470/16 695/708/16 697/710/16 -f 807/821/383 706/720/34 708/722/303 -f 1425/1471/669 715/729/310 717/731/312 -f 911/929/459 718/732/313 713/727/308 -f 739/753/334 735/749/330 737/751/332 -f 1426/1472/22 787/801/22 789/803/22 -f 1427/1473/6 790/804/6 792/806/6 -f 1428/1474/670 793/807/376 795/809/376 -f 1429/1475/1 796/810/1 798/812/1 -f 1430/1476/22 799/813/378 801/815/22 -f 781/795/374 554/565/233 807/821/383 -f 816/830/34 811/825/34 812/826/384 -f 811/825/34 813/827/34 781/795/374 -f 812/826/384 814/828/385 816/830/34 -f 814/828/385 812/826/384 818/832/386 -f 552/563/231 556/567/235 821/835/387 -f 841/857/22 846/863/22 838/858/22 -f 851/869/399 847/865/396 849/867/398 -f 1431/1477/16 850/868/16 851/869/399 -f 1432/1478/671 346/352/125 852/870/400 -f 400/406/179 853/871/401 401/407/180 -f 853/871/401 854/872/402 412/418/191 -f 863/881/411 854/872/402 856/874/404 -f 400/406/179 371/377/150 853/871/401 -f 365/371/144 858/876/406 364/370/143 -f 1433/1479/672 858/876/406 857/875/405 -f 1433/1479/672 857/875/405 408/414/187 -f 360/366/139 357/363/136 860/878/408 -f 348/354/127 350/356/129 362/368/141 -f 737/751/332 736/750/331 768/782/363 -f 899/917/447 876/894/424 731/745/326 -f 876/894/424 877/895/425 732/746/327 -f 880/898/428 881/899/429 883/901/431 -f 886/904/434 882/900/430 884/902/432 -f 873/891/421 879/897/427 889/907/437 -f 895/913/443 894/912/442 881/899/429 -f 893/911/441 895/913/443 880/898/428 -f 895/913/443 889/907/437 894/912/442 -f 895/913/443 893/911/441 889/907/437 -f 883/901/431 897/915/445 719/733/314 -f 897/915/445 773/787/368 720/734/315 -f 774/788/369 898/916/446 742/756/337 -f 898/916/446 756/770/351 740/754/335 -f 766/780/361 899/917/447 736/750/331 -f 758/772/353 878/896/426 759/773/354 -f 748/762/343 900/918/448 720/734/315 -f 900/918/448 902/920/450 901/919/449 -f 903/921/451 764/778/359 901/919/449 -f 727/741/322 904/922/452 760/774/355 -f 727/741/322 765/779/360 906/924/454 -f 904/922/452 907/925/455 758/772/353 -f 1434/1480/673 908/926/456 904/922/452 -f 907/925/455 908/926/456 761/775/356 -f 761/775/356 732/746/327 907/925/455 -f 770/784/365 909/927/457 769/783/364 -f 746/760/341 909/927/457 747/761/342 -f 900/918/448 747/761/342 902/920/450 -f 755/769/350 768/782/363 763/777/358 -f 718/732/313 911/929/459 716/730/311 -f 583/594/252 912/930/460 647/659/279 -f 912/930/460 583/594/252 623/635/263 -f 698/711/298 700/713/300 916/934/297 -f 916/934/297 915/933/461 920/938/278 -f 920/938/278 919/937/463 922/940/277 -f 922/940/277 921/939/464 924/942/466 -f 1435/1481/6 929/947/6 930/948/6 -f 1135/1159/548 936/955/474 938/957/476 -f 936/955/474 939/1482/6 937/956/475 -f 1436/1483/16 941/1484/16 943/1485/16 -f 1437/1486/22 946/966/22 948/968/22 -f 1438/1487/16 949/969/16 951/971/16 -f 1439/1488/674 955/975/478 957/977/478 -f 962/982/484 961/981/483 959/979/481 -f 961/981/483 962/982/484 963/983/485 -f 1440/1489/1 964/984/1 966/986/1 -f 1441/1490/378 972/992/378 974/994/22 -f 692/705/296 992/1012/34 807/821/383 -f 1442/1491/34 993/1013/495 707/721/34 -f 1443/1492/386 708/722/303 994/1014/386 -f 997/1017/498 685/697/290 996/1016/497 -f 681/693/288 998/1018/499 679/691/286 -f 1269/1295/596 1000/1020/501 1002/1022/502 -f 996/1016/497 680/692/287 999/1019/500 -f 1444/1493/16 1003/1023/16 1005/1025/16 -f 549/560/228 1007/1029/503 1009/1031/22 -f 1445/1494/504 1010/1032/504 584/595/253 -f 1446/1495/504 968/988/487 1011/1033/504 -f 1062/1084/510 1019/1041/22 1021/1043/506 -f 1447/1496/675 1022/1044/16 1024/1046/507 -f 1448/1497/24 1025/1047/24 1027/1049/24 -f 1449/1498/34 1028/1050/34 1030/1052/34 -f 1026/1048/24 1031/1053/24 1027/1049/24 -f 1447/1496/675 1024/1046/507 1020/1042/505 -f 1036/1058/508 1033/1055/508 1035/1057/16 -f 1068/1090/520 1033/1055/508 1037/1059/509 -f 1450/1499/512 1038/1060/510 1040/1062/512 -f 1451/1500/34 1041/1063/34 1043/1065/34 -f 1017/1039/34 1043/1065/34 1016/1038/34 -f 1058/1080/517 1047/1069/22 1049/1071/514 -f 1452/1501/6 1050/1072/6 1052/1074/516 -f 1057/1079/24 1053/1075/24 1055/1077/24 -f 1453/1502/24 1032/1054/24 1056/1078/24 -f 1453/1502/24 1056/1078/24 1055/1077/24 -f 1049/1071/514 1052/1074/516 1058/1080/517 -f 1454/1503/6 1059/1081/518 1061/1083/6 -f 1021/1043/506 1049/1071/514 1062/1084/510 -f 1449/1498/34 1030/1052/34 1015/1037/34 -f 1060/1082/518 1059/1081/518 1067/1089/519 -f 1066/1088/519 1068/1090/520 1067/1089/519 -f 1455/1504/523 1081/1103/523 1083/1105/523 -f 1456/1505/676 1089/1111/529 1091/1113/531 -f 1457/1506/677 1102/1124/537 1104/1126/538 -f 1458/1507/678 1105/1127/1 1107/1129/539 -f 1137/1161/542 1111/1133/1 1113/1135/542 -f 1459/1508/24 1114/1136/543 1116/1138/24 -f 1140/1509/22 1115/1139/544 1117/1141/22 -f 1460/1510/545 1118/1142/34 1120/1144/545 -f 1383/1410/667 1124/1148/546 594/605/255 -f 1461/1511/24 1128/1152/24 1130/1154/24 -f 1128/1152/24 1131/1155/24 1129/1153/24 -f 1125/1149/477 1122/1146/477 954/974/477 -f 849/867/398 848/866/397 938/957/476 -f 1459/1508/24 1116/1138/24 1113/1135/542 -f 1119/1143/34 1118/1142/34 1139/1163/551 -f 1460/1510/545 1120/1144/545 1117/1165/22 -f 1462/1512/1 1141/1513/1 1138/1514/550 -f 1143/1168/552 617/629/259 1144/1169/260 -f 1463/1515/24 1145/1170/24 1147/1172/24 -f 1146/1171/24 1148/1173/24 1147/1172/24 -f 1148/1173/24 1150/1175/24 1149/1174/24 -f 690/702/22 1152/1177/22 604/618/22 -f 1329/1356/1 1156/1181/257 1158/1183/553 -f 1464/1516/34 1159/1184/34 1161/1186/34 -f 1167/1192/1 1168/1193/1 1165/1190/1 -f 1465/1517/556 1171/1196/555 1173/1198/556 -f 1317/1344/630 1174/1199/557 1158/1183/553 -f 1466/1518/16 1178/1203/16 1180/1205/16 -f 1457/1506/677 1467/1519/679 1102/1124/537 -f 1458/1507/678 1107/1129/539 1185/1210/561 -f 1468/1520/1 1189/1214/1 1191/1216/1 -f 1469/1521/680 1192/1217/562 1194/1219/564 -f 1198/1223/568 1195/1220/565 1197/1222/567 -f 1192/1217/562 1198/1223/568 1193/1218/563 -f 1470/1522/569 1199/1224/569 1201/1226/570 -f 1470/1522/569 1202/1227/6 1199/1224/569 -f 1228/1253/24 1204/1229/24 1206/1231/24 -f 1185/1210/561 1184/1209/560 1211/1236/571 -f 827/841/392 830/847/393 1213/1238/573 -f 1097/1119/6 1176/1201/6 1098/1120/536 -f 1213/1238/573 1220/1245/575 827/841/392 -f 831/845/394 1221/1246/554 1223/1248/576 -f 1153/1178/394 1224/1249/576 1170/1195/554 -f 1471/1523/22 1196/1221/566 1226/1251/22 -f 1229/1254/24 991/1027/24 1227/1252/24 -f 1472/1524/577 1230/1256/577 1232/1258/577 -f 1288/1315/602 1233/1259/274 1087/1109/527 -f 1473/1525/1 1234/1260/1 1236/1262/1 -f 1240/1266/580 1237/1263/578 1239/1265/579 -f 1465/1517/556 1173/1198/556 1240/1266/580 -f 1474/1526/1 1241/1267/1 1171/1196/555 -f 1475/1527/581 1242/1268/581 1244/1270/581 -f 1476/1528/582 1245/1271/582 1247/1273/582 -f 1477/1529/6 1248/1274/6 1250/1276/6 -f 1478/1530/583 1251/1277/583 1253/1279/583 -f 1260/1286/590 1254/1280/584 1000/1020/501 -f 1265/1291/594 1257/1283/587 1259/1285/589 -f 1254/1280/584 1260/1286/590 1262/1288/585 -f 1259/1285/589 1263/1289/592 1265/1291/594 -f 1257/1283/587 1256/1282/586 1258/1284/588 -f 1272/1298/598 1266/1292/588 1268/1294/595 -f 1002/1022/502 1267/1293/497 1262/1288/585 -f 1262/1288/585 1261/1287/591 1002/1022/502 -f 1268/1294/595 1270/1296/499 1272/1298/598 -f 1084/1106/524 628/640/267 1178/1203/16 -f 1277/1304/599 1278/1305/600 1095/1117/535 -f 1104/1126/538 1103/1125/275 1288/1315/602 -f 1479/1531/681 1289/1316/603 1291/1318/605 -f 1294/1321/608 958/978/480 1292/1319/606 -f 1156/1181/257 1295/1322/484 1157/1182/485 -f 1293/1320/607 1296/1323/609 1297/1324/610 -f 1304/1331/617 1298/1325/611 1300/1327/613 -f 1300/1327/613 1299/1326/612 1302/1329/615 -f 1308/1335/621 1303/1330/616 1304/1331/617 -f 1302/1329/615 1301/1328/614 1306/1333/619 -f 1312/1339/625 1307/1334/620 1308/1335/621 -f 1306/1333/619 1305/1332/618 1310/1337/623 -f 1316/1343/629 1311/1338/624 1312/1339/625 -f 1310/1337/623 1309/1336/622 1314/1341/627 -f 1318/1345/631 1315/1342/628 1316/1343/629 -f 1314/1341/627 1313/1340/626 1317/1344/630 -f 1291/1318/605 1290/1317/604 1318/1345/631 -f 1480/1532/608 1319/1346/24 1321/1348/632 -f 1481/1533/1 1324/1351/1 1326/1353/1 -f 1162/1187/16 1323/1350/16 1328/1355/16 -f 598/609/258 597/608/1 1158/1183/553 -f 1334/1361/637 1335/1362/638 1330/1357/633 -f 1335/1362/638 1337/1364/640 1336/1363/639 -f 1337/1364/640 1341/1368/642 1338/1365/388 -f 1341/1368/642 1339/1366/641 1342/1369/395 -f 625/637/264 778/792/371 1345/1372/248 -f 779/793/372 689/701/294 1346/1373/644 -f 1346/1373/644 1344/1371/643 779/793/372 -f 1353/1380/651 1347/1374/645 1349/1376/647 -f 1355/1382/653 1348/1375/646 1350/1377/648 -f 1349/1376/647 1351/1378/649 1353/1380/651 -f 1333/1360/636 711/725/306 1334/1361/637 -f 1334/1361/637 923/941/465 1335/1362/638 -f 1337/1364/640 919/937/463 1341/1368/642 -f 1337/1364/640 1335/1362/638 919/937/463 -f 1341/1368/642 915/933/461 1339/1366/641 -f 786/800/6 1357/1384/6 784/798/6 -f 783/797/375 1339/1366/641 918/936/462 -f 570/581/247 775/789/370 565/576/242 -f 565/576/242 783/797/375 570/581/247 -f 819/833/22 845/862/22 808/822/22 -f 1384/1411/477 1366/1393/477 1371/1398/477 -f 1372/1399/477 1134/1158/477 1373/1400/477 -f 1482/1534/682 1374/1401/658 1376/1403/660 -f 1482/1534/682 1376/1403/660 1378/1405/662 -f 1483/1535/661 1379/1406/663 1381/1408/665 -f 580/591/249 1382/1409/666 1379/1406/663 -f 1374/1401/658 1124/1148/546 1375/1402/659 -f 1368/1395/477 1121/1145/477 1369/1396/477 -f 844/861/22 690/1412/22 839/855/22 -f 1484/1536/24 1385/1413/24 1387/1415/24 -f 1485/1537/22 1391/1419/22 1393/1421/22 -f 1388/1416/6 1390/1418/6 1395/1538/6 -f 1/1/1 3/3/1 1486/1539/1 -f 1/1/1 6/6/1 5/5/1 -f 6/6/1 1/1/1 1486/1539/1 -f 84/84/33 4/4/2 6/6/1 -o mag_pistol_0 -v -1.109136 1.854146 1.546994 -v -1.109136 6.483851 2.313161 -v -1.109136 1.746315 1.309461 -v 1.109136 6.483851 2.313161 -v 1.109136 6.193875 2.563060 -v 1.109136 1.854146 1.546994 -v 1.109136 1.746315 1.309461 -v -1.109136 6.193875 2.563060 -v -1.109136 7.455005 0.432841 -v -0.855096 7.454038 0.681172 -v -0.637953 7.455005 0.432841 -v -1.109136 7.447666 2.316916 -v -0.851242 7.447666 2.316916 -v -0.645065 7.456246 0.114420 -v -0.808240 7.456246 0.114420 -v -0.882817 -7.449294 -6.242330 -v -1.332151 -7.578506 -5.806303 -v -1.109136 -7.583718 -5.788712 -v -1.260158 -8.694220 -2.041337 -v -1.109136 -8.686133 -2.068621 -v -0.818644 -8.777006 -1.761974 -v -0.549908 -9.201518 -0.329464 -v 0.549908 -9.201518 -0.329464 -v 0.855096 7.454038 0.681172 -v 1.109136 7.455005 0.432841 -v 0.637953 7.455005 0.432841 -v 0.645065 7.456246 0.114420 -v 0.808240 7.456246 0.114420 -v -0.413784 6.208827 -0.016872 -v 0.413784 6.208827 -0.016872 -v 0.440888 6.323021 -0.358271 -v 0.851242 7.447666 2.316916 -v -0.791829 -7.487273 -6.114169 -v 0.791829 -7.487273 -6.114169 -v 0.882817 -7.449294 -6.242330 -v 1.109136 -7.583718 -5.788712 -v 1.332151 -7.578506 -5.806303 -v 1.109136 -8.686133 -2.068621 -v -0.527911 -9.865828 -0.558223 -v 0.527911 -9.865828 -0.558223 -v 0.549908 -9.201518 -0.329464 -v 0.527911 -9.865828 -0.558223 -v -0.527911 -9.865828 -0.558223 -v -1.263812 -9.320386 -2.284041 -v -0.889556 -7.991922 -6.487401 -v 0.889556 -7.991922 -6.487401 -v 1.326758 -8.130615 -6.048566 -v 1.263812 -9.320386 -2.284041 -v -1.326758 -8.130615 -6.048566 -v 1.260158 -8.694220 -2.041337 -v 0.818644 -8.777006 -1.761974 -v -0.440888 6.323021 -0.358271 -v 1.109136 7.447666 2.316916 -v -0.549908 -9.201518 -0.329464 -v -0.330292 5.643600 3.823889 -v 0.330292 5.643600 3.823889 -v -0.639183 4.693711 3.350439 -v -0.784649 4.758710 3.184810 -v -0.823423 6.188930 3.832172 -v -0.613250 5.916148 3.869261 -v 0.639183 4.693711 3.350439 -v 0.613250 5.916148 3.869261 -v -0.791829 -7.487273 -6.114169 -v -0.440888 6.323021 -0.358271 -v 0.791829 -7.487273 -6.114169 -v 1.109136 6.187971 4.078715 -v 1.109136 1.608211 2.157616 -v 1.109136 7.455005 0.432841 -v 1.109136 -7.583718 -5.788712 -v 1.109136 1.421237 1.150594 -v 1.109136 1.152737 1.225781 -v 0.613250 6.186937 4.344060 -v 0.613250 5.905007 4.230343 -v 0.807799 6.186929 4.345726 -v -0.367306 5.610397 4.110493 -v -0.804550 1.432484 2.382775 -v 0.367306 5.610397 4.110493 -v -0.613250 6.186937 4.344060 -v -0.807799 6.186929 4.345726 -v -0.613250 5.905007 4.230343 -v -0.818644 -8.777006 -1.761974 -v 0.818644 -8.777006 -1.761974 -v -0.775337 0.764493 2.107609 -v -1.109136 1.608211 2.157616 -v -1.109136 7.455005 0.432841 -v -1.109136 1.421237 1.150594 -v -1.109136 -7.583718 -5.788712 -v -1.109136 1.152737 1.225781 -v -0.629678 6.747400 -0.181054 -v 0.440888 6.323021 -0.358271 -v 0.629678 6.747400 -0.181054 -v -0.784480 5.973367 0.123958 -v -0.784649 4.758710 3.184810 -v 0.784480 5.973367 0.123958 -v 1.109136 7.447666 2.316916 -v 1.109136 -8.686133 -2.068621 -v 0.804550 1.432484 2.382775 -v 0.775337 0.764493 2.107609 -v -1.109136 0.828570 1.868721 -v -1.109136 -8.686133 -2.068621 -v -1.109136 6.187971 4.078715 -v -0.613250 6.189570 3.985306 -v -1.109136 6.193875 2.563060 -v -1.109136 6.187971 4.078715 -v -0.823423 6.188930 3.832172 -v -0.808240 7.456246 0.114420 -v -1.109136 7.447666 2.316916 -v -1.109136 6.483851 2.313161 -v -0.839998 6.483851 2.313161 -v -0.855295 6.193875 2.563060 -v -0.855096 7.454038 0.681172 -v -0.851242 7.447666 2.316916 -v -0.839998 6.483851 2.313161 -v -0.613250 5.916148 3.869261 -v -0.613250 5.905007 4.230343 -v -0.367306 5.610397 4.110493 -v -0.613250 6.189570 3.985306 -v -0.613250 6.186937 4.344060 -v -0.804550 1.432484 2.382775 -v -0.804550 1.432484 2.382775 -v -0.836434 1.761413 1.534160 -v -0.864811 1.209287 1.297543 -v -0.866598 1.383340 1.228519 -v -1.109136 1.608211 2.157616 -v -1.109136 1.854146 1.546994 -v -0.836434 1.761413 1.534160 -v -1.109136 1.746315 1.309461 -v -0.853872 1.693580 1.365606 -v -1.109136 1.421237 1.150594 -v -0.866598 1.383340 1.228519 -v -1.109136 1.152737 1.225781 -v -0.864811 1.209287 1.297543 -v -1.109136 0.828570 1.868721 -v -0.775337 0.764493 2.107609 -v -0.818644 -8.777006 -1.761974 -v -1.326758 -8.130615 -6.048566 -v -1.332151 -7.578506 -5.806303 -v -0.882817 -7.449294 -6.242330 -v -1.263812 -9.320386 -2.284041 -v -1.260158 -8.694220 -2.041337 -v -0.527911 -9.865828 -0.558223 -v -0.549908 -9.201518 -0.329464 -v -0.855295 6.193875 2.563060 -v -0.637953 7.455005 0.432841 -v -0.610240 6.670014 0.107513 -v -0.586664 6.044359 -0.058251 -v -0.413784 6.208827 -0.016872 -v -0.629678 6.747400 -0.181054 -v -0.645065 7.456246 0.114420 -v -0.610240 6.670014 0.107513 -v -0.784480 5.973367 0.123958 -v -0.637953 7.455005 0.432841 -v -0.413784 6.208827 -0.016872 -v -0.440888 6.323021 -0.358271 -v -0.807799 6.186929 4.345726 -v -0.613250 6.189570 3.985306 -v 0.586664 6.044359 -0.058251 -v 0.889556 -7.991922 -6.487401 -v -0.889556 -7.991922 -6.487401 -v 0.784480 5.973367 0.123958 -v 0.855096 7.454038 0.681172 -v 0.610240 6.670014 0.107513 -v 0.637953 7.455005 0.432841 -v 0.645065 7.456246 0.114420 -v 0.610240 6.670014 0.107513 -v 1.109136 6.187971 4.078715 -v 1.109136 6.193875 2.563060 -v 0.823423 6.188930 3.832172 -v 0.851242 7.447666 2.316916 -v 0.839998 6.483851 2.313161 -v 0.855295 6.193875 2.563060 -v 0.413784 6.208827 -0.016872 -v 0.440888 6.323021 -0.358271 -v 0.413784 6.208827 -0.016872 -v 0.629678 6.747400 -0.181054 -v 0.807799 6.186929 4.345726 -v 0.613250 6.189570 3.985306 -v 0.784649 4.758710 3.184810 -v 0.586664 6.044359 -0.058251 -v 0.613250 6.186937 4.344060 -v 0.613250 6.189570 3.985306 -v 0.823423 6.188930 3.832172 -v 0.808240 7.456246 0.114420 -v 1.109136 7.447666 2.316916 -v 0.851242 7.447666 2.316916 -v 0.839998 6.483851 2.313161 -v 1.109136 6.483851 2.313161 -v 0.855295 6.193875 2.563060 -v -0.330292 5.643600 3.823889 -v 0.367306 5.610397 4.110493 -v 0.613250 5.916148 3.869261 -v 0.330292 5.643600 3.823889 -v 0.613250 5.905007 4.230343 -v 0.613250 6.186937 4.344060 -v 0.807799 6.186929 4.345726 -v 0.804550 1.432484 2.382775 -v 0.804550 1.432484 2.382775 -v 0.775337 0.764493 2.107609 -v 0.864811 1.209287 1.297543 -v 0.866598 1.383340 1.228519 -v 0.853872 1.693580 1.365606 -v 0.836434 1.761413 1.534160 -v 1.109136 1.608211 2.157616 -v 0.804550 1.432484 2.382775 -v 0.836434 1.761413 1.534160 -v 1.109136 1.854146 1.546994 -v 0.853872 1.693580 1.365606 -v 1.109136 1.746315 1.309461 -v 0.866598 1.383340 1.228519 -v 1.109136 1.421237 1.150594 -v 0.864811 1.209287 1.297543 -v 1.109136 1.152737 1.225781 -v 0.775337 0.764493 2.107609 -v 1.109136 0.828570 1.868721 -v 0.775337 0.764493 2.107609 -v 0.818644 -8.777006 -1.761974 -v -0.613250 6.186937 4.344060 -v 1.326758 -8.130615 -6.048566 -v 0.882817 -7.449294 -6.242330 -v 1.332151 -7.578506 -5.806303 -v 1.260158 -8.694220 -2.041337 -v 1.263812 -9.320386 -2.284041 -v 0.549908 -9.201518 -0.329464 -v 0.637953 7.455005 0.432841 -v 0.610240 6.670014 0.107513 -v 0.586664 6.044359 -0.058251 -v -0.586664 6.044359 -0.058251 -v -0.639183 4.693711 3.350439 -v 0.639183 4.693711 3.350439 -v 0.784649 4.758710 3.184810 -v -1.109136 7.447666 2.316916 -v -0.851242 7.447666 2.316916 -v -0.807799 6.186929 4.345726 -v -0.775337 0.764493 2.107609 -v -0.853872 1.693580 1.365606 -v -0.804550 1.432484 2.382775 -v -0.775337 0.764493 2.107609 -v 0.613250 6.189570 3.985306 -v 1.109136 0.828570 1.868721 -v 0.527911 -9.865828 -0.558223 -v 0.645065 7.456246 0.114420 -v -0.645065 7.456246 0.114420 -vt 0.318637 0.836460 -vt 0.322686 0.835525 -vt 0.318469 0.836302 -vt 0.322662 0.829447 -vt 0.322506 0.829146 -vt 0.318606 0.828545 -vt 0.318439 0.828704 -vt 0.322533 0.835828 -vt 0.335540 0.815841 -vt 0.335689 0.816068 -vt 0.335880 0.815923 -vt 0.335363 0.817407 -vt 0.335570 0.817415 -vt 0.335928 0.815727 -vt 0.335827 0.815658 -vt 0.338110 0.834998 -vt 0.338521 0.834581 -vt 0.338361 0.834565 -vt 0.338450 0.830987 -vt 0.338327 0.831013 -vt 0.338045 0.830721 -vt 0.337797 0.829353 -vt 0.336791 0.829355 -vt 0.338509 0.816056 -vt 0.338639 0.815806 -vt 0.338293 0.815922 -vt 0.338229 0.815719 -vt 0.338328 0.815642 -vt 0.336756 0.815704 -vt 0.337372 0.815710 -vt 0.337407 0.815436 -vt 0.338796 0.817419 -vt 0.338027 0.834876 -vt 0.336577 0.834878 -vt 0.336494 0.835000 -vt 0.336242 0.834568 -vt 0.336082 0.834585 -vt 0.336266 0.831016 -vt 0.351326 0.453820 -vt 0.352262 0.453765 -vt 0.352318 0.454386 -vt 0.365837 0.453882 -vt 0.365836 0.454819 -vt 0.367442 0.455473 -vt 0.371353 0.455145 -vt 0.371355 0.453566 -vt 0.370947 0.453178 -vt 0.367444 0.453230 -vt 0.370945 0.455532 -vt 0.336143 0.830990 -vt 0.336546 0.830723 -vt 0.336722 0.815432 -vt 0.339004 0.817387 -vt 0.351343 0.454443 -vt 0.336608 0.810165 -vt 0.336600 0.809579 -vt 0.335671 0.810452 -vt 0.335670 0.810656 -vt 0.337063 0.810641 -vt 0.336849 0.810420 -vt 0.335654 0.809318 -vt 0.336833 0.809316 -vt 0.308406 0.833228 -vt 0.321347 0.832873 -vt 0.308400 0.831858 -vt 0.323003 0.827899 -vt 0.318606 0.827962 -vt 0.322837 0.831313 -vt 0.308428 0.831448 -vt 0.318119 0.828727 -vt 0.317924 0.828577 -vt 0.334726 0.805815 -vt 0.334724 0.806084 -vt 0.334898 0.805815 -vt 0.333853 0.806363 -vt 0.333448 0.810373 -vt 0.334505 0.806366 -vt 0.333637 0.805810 -vt 0.333465 0.805809 -vt 0.333636 0.806080 -vt 0.333393 0.820149 -vt 0.334845 0.820155 -vt 0.333471 0.811014 -vt 0.318642 0.837043 -vt 0.322847 0.833658 -vt 0.318149 0.836281 -vt 0.308437 0.833638 -vt 0.317955 0.836433 -vt 0.321830 0.833071 -vt 0.321344 0.832110 -vt 0.321826 0.831909 -vt 0.338990 0.829527 -vt 0.338986 0.832448 -vt 0.340382 0.829528 -vt 0.323455 0.829763 -vt 0.308753 0.828027 -vt 0.334875 0.810379 -vt 0.334847 0.811020 -vt 0.317906 0.837069 -vt 0.308789 0.837056 -vt 0.323039 0.837070 -vt 0.337112 0.810416 -vt 0.335399 0.818676 -vt 0.335644 0.820232 -vt 0.335864 0.819933 -vt 0.322740 0.833285 -vt 0.335363 0.817407 -vt 0.335368 0.818297 -vt 0.335604 0.818285 -vt 0.335628 0.818648 -vt 0.336965 0.813654 -vt 0.337545 0.812323 -vt 0.336761 0.811981 -vt 0.336450 0.819974 -vt 0.336387 0.820399 -vt 0.336865 0.820333 -vt 0.336109 0.820051 -vt 0.336132 0.820332 -vt 0.318573 0.837406 -vt 0.297273 0.862936 -vt 0.296468 0.862987 -vt 0.296450 0.863484 -vt 0.296375 0.863361 -vt 0.296982 0.862655 -vt 0.296349 0.862774 -vt 0.296468 0.862987 -vt 0.296171 0.863007 -vt 0.296386 0.863086 -vt 0.296139 0.863393 -vt 0.296375 0.863361 -vt 0.296301 0.863656 -vt 0.296450 0.863484 -vt 0.296981 0.863857 -vt 0.297271 0.863612 -vt 0.308818 0.837437 -vt 0.360171 0.453244 -vt 0.360165 0.453779 -vt 0.359601 0.453718 -vt 0.363650 0.453662 -vt 0.363616 0.454257 -vt 0.365371 0.453864 -vt 0.365306 0.454484 -vt 0.336615 0.811674 -vt 0.336865 0.813929 -vt 0.336111 0.813900 -vt 0.335542 0.813822 -vt 0.335664 0.813999 -vt 0.336339 0.815514 -vt 0.335928 0.815727 -vt 0.336384 0.815738 -vt 0.335562 0.813576 -vt 0.335880 0.815923 -vt 0.336756 0.815704 -vt 0.336722 0.815432 -vt 0.335975 0.820462 -vt 0.336109 0.820051 -vt 0.335363 0.814848 -vt 0.358032 0.453178 -vt 0.359611 0.453190 -vt 0.335454 0.806199 -vt 0.336854 0.806081 -vt 0.335993 0.805859 -vt 0.338293 0.815922 -vt 0.338229 0.815719 -vt 0.337754 0.815749 -vt 0.338970 0.820225 -vt 0.339108 0.818663 -vt 0.338736 0.819939 -vt 0.337473 0.807394 -vt 0.336699 0.807758 -vt 0.336562 0.808069 -vt 0.335538 0.814723 -vt 0.337407 0.815436 -vt 0.337372 0.815710 -vt 0.337796 0.815517 -vt 0.338647 0.820469 -vt 0.338501 0.820063 -vt 0.335647 0.809115 -vt 0.335427 0.805954 -vt 0.338482 0.820342 -vt 0.337096 0.809313 -vt 0.337040 0.809089 -vt 0.322734 0.831687 -vt 0.339004 0.817387 -vt 0.338796 0.817419 -vt 0.338866 0.818294 -vt 0.339103 0.818281 -vt 0.338879 0.818655 -vt 0.336917 0.819991 -vt 0.337747 0.820341 -vt 0.338164 0.819987 -vt 0.337700 0.819998 -vt 0.338225 0.820410 -vt 0.338482 0.820342 -vt 0.323089 0.827553 -vt 0.318534 0.827599 -vt 0.299359 0.862966 -vt 0.299357 0.863640 -vt 0.300188 0.863503 -vt 0.300265 0.863381 -vt 0.300257 0.863103 -vt 0.300174 0.863004 -vt 0.299646 0.862698 -vt 0.299359 0.862966 -vt 0.300174 0.863004 -vt 0.300297 0.862779 -vt 0.300257 0.863103 -vt 0.300477 0.863024 -vt 0.300265 0.863381 -vt 0.300502 0.863417 -vt 0.300188 0.863503 -vt 0.300332 0.863678 -vt 0.299357 0.863640 -vt 0.317870 0.827942 -vt 0.317895 0.827574 -vt 0.308779 0.827646 -vt 0.336132 0.820332 -vt 0.357471 0.453223 -vt 0.358034 0.453706 -vt 0.357469 0.453758 -vt 0.354011 0.454184 -vt 0.353986 0.453589 -vt 0.352318 0.454386 -vt 0.336746 0.805809 -vt 0.335925 0.814967 -vt 0.340207 0.829355 -vt 0.339165 0.829353 -vt 0.339115 0.832606 -vt 0.340249 0.832608 -vt 0.340379 0.832450 -vt 0.323476 0.835203 -vt 0.335570 0.817415 -vt 0.323128 0.837416 -vt 0.297271 0.863612 -vt 0.296386 0.863086 -vt 0.297273 0.862936 -vt 0.317935 0.837436 -vt 0.338501 0.820063 -vt 0.299652 0.863857 -vt 0.352262 0.453765 -vt 0.322736 0.831880 -vt 0.322741 0.833092 -vn -1.0000 0.0000 0.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0000 1.0000 0.0039 -vn 0.0000 0.9588 0.2841 -vn 0.0000 0.9484 0.3172 -vn 0.0000 -0.3256 0.9455 -vn 0.0000 -0.9535 -0.3014 -vn 0.1103 0.4144 -0.9034 -vn -0.0735 0.4256 -0.9019 -vn 0.3275 0.3966 -0.8576 -vn 0.9708 0.1320 -0.2001 -vn 0.7758 0.2586 -0.5755 -vn 0.4477 0.3447 -0.8251 -vn -0.3560 0.3788 -0.8543 -vn -0.5482 0.3301 -0.7685 -vn -0.1944 0.3772 -0.9055 -vn -0.0010 0.3847 -0.9230 -vn 0.1540 0.3797 -0.9122 -vn 0.8357 -0.2111 0.5070 -vn 0.9636 -0.1035 0.2467 -vn 0.9886 0.0575 -0.1389 -vn 0.9535 0.1154 -0.2784 -vn -0.0080 -0.3741 0.9274 -vn 0.0012 -0.3791 0.9254 -vn 0.2219 -0.3696 0.9023 -vn -0.0034 -0.3819 0.9242 -vn -0.1726 -0.3764 0.9102 -vn 0.0022 -0.3819 0.9242 -vn 0.0080 -0.3741 0.9274 -vn -0.2219 -0.3696 0.9023 -vn -0.0011 -0.3791 0.9254 -vn -0.4729 -0.3319 0.8162 -vn 0.3572 -0.3516 0.8653 -vn -0.1539 -0.3721 0.9154 -vn -0.9636 -0.1035 0.2467 -vn -0.9886 0.0575 -0.1389 -vn -0.9535 0.1154 -0.2784 -vn -0.0009 0.3847 -0.9230 -vn 0.0010 0.3847 -0.9230 -vn 0.0009 0.3847 -0.9230 -vn 0.0000 0.9310 0.3650 -vn 0.0000 0.9300 0.3676 -vn 0.0000 0.9302 0.3669 -vn 0.9710 -0.0914 0.2209 -vn 0.2322 -0.3719 0.8988 -vn 0.1539 -0.3734 0.9148 -vn -0.8442 -0.2022 0.4964 -vn -0.9710 -0.0914 0.2209 -vn -0.8357 -0.2111 0.5070 -vn 0.5563 0.3246 -0.7649 -vn 0.0001 0.9608 0.2772 -vn -0.0015 1.0000 0.0040 -vn -0.0014 1.0000 0.0023 -vn -0.5115 0.3297 -0.7935 -vn 0.0000 -0.0039 1.0000 -vn 0.0001 0.4597 0.8881 -vn 0.0000 0.2278 0.9737 -vn -0.0000 0.8351 0.5501 -vn 0.9387 -0.0984 0.3305 -vn 0.9999 0.0117 -0.0023 -vn 0.9998 0.0092 0.0149 -vn 0.9323 0.3580 0.0512 -vn 0.9411 0.3379 0.0104 -vn 0.5309 0.8401 0.1116 -vn -0.9980 -0.0211 0.0598 -vn -0.9970 0.0146 0.0763 -vn -0.9979 -0.0076 0.0647 -vn -0.9959 0.0068 0.0899 -vn -0.2927 -0.8910 -0.3470 -vn -0.3083 -0.9391 0.1520 -vn -0.3077 -0.9451 -0.1103 -vn -0.3087 -0.5872 0.7483 -vn -0.2906 -0.7546 0.5883 -vn -0.3189 0.0702 0.9452 -vn -0.3014 -0.1559 0.9407 -vn -0.2877 0.6969 0.6569 -vn -0.3131 0.5002 0.8073 -vn -0.1491 0.8829 0.4452 -vn -0.2405 0.8515 0.4659 -vn -0.9295 0.1497 -0.3372 -vn -0.9281 0.1420 -0.3443 -vn -0.3883 0.3779 -0.8405 -vn -0.9660 -0.0947 0.2406 -vn -0.9906 -0.0493 0.1279 -vn -0.9257 -0.1502 0.3472 -vn -0.9273 -0.1397 0.3472 -vn 0.9997 0.0240 0.0100 -vn 0.9368 -0.1053 0.3338 -vn 0.8731 -0.0619 0.4836 -vn 0.2534 -0.2345 0.9385 -vn 0.0039 -0.2479 0.9688 -vn 0.9613 0.2751 0.0139 -vn 0.9983 0.0446 -0.0387 -vn 0.8731 -0.0618 0.4836 -vn 0.9557 -0.0568 0.2888 -vn 0.9367 -0.1053 0.3338 -vn 0.9220 0.3843 0.0482 -vn 0.9207 0.3862 0.0561 -vn -0.0011 1.0000 0.0067 -vn -0.0020 1.0000 0.0042 -vn -0.1880 -0.2385 0.9528 -vn 0.2591 0.4017 -0.8784 -vn -0.3925 0.3826 -0.8364 -vn -0.9557 -0.0568 0.2888 -vn -0.9387 -0.0984 0.3305 -vn -0.8731 -0.0618 0.4836 -vn -0.9367 -0.1053 0.3338 -vn -0.9983 0.0446 -0.0387 -vn 0.0015 1.0000 0.0040 -vn -0.0000 0.9608 0.2772 -vn 0.0012 1.0000 0.0025 -vn -0.9999 0.0117 -0.0023 -vn -0.9998 0.0092 0.0149 -vn -0.9997 0.0240 0.0100 -vn -0.0058 -0.2497 0.9683 -vn -0.9207 0.3862 0.0561 -vn -0.9220 0.3843 0.0482 -vn -0.9613 0.2751 0.0139 -vn 0.0011 1.0000 0.0067 -vn 0.0020 1.0000 0.0042 -vn -0.9140 0.1852 -0.3611 -vn -0.0000 1.0000 0.0073 -vn -0.5563 0.3246 -0.7649 -vn -0.7857 0.2615 -0.5606 -vn 0.5115 0.3297 -0.7935 -vn 0.0000 0.4597 0.8881 -vn 0.2491 0.9578 0.1431 -vn -0.4021 0.9083 0.1151 -vn -0.9323 0.3580 0.0512 -vn -0.3771 0.9132 0.1545 -vn -0.9411 0.3379 0.0104 -vn 0.9980 -0.0211 0.0598 -vn 0.9949 -0.0724 0.0701 -vn 0.9979 -0.0076 0.0647 -vn 0.9959 0.0068 0.0899 -vn 0.9944 -0.0057 0.1052 -vn 0.9970 0.0146 0.0763 -vn 0.2927 -0.8910 -0.3470 -vn 0.2692 -0.9013 -0.3393 -vn 0.3091 -0.9446 -0.1104 -vn 0.3083 -0.9391 0.1520 -vn 0.2906 -0.7546 0.5883 -vn 0.3087 -0.5872 0.7483 -vn 0.3014 -0.1559 0.9407 -vn 0.3189 0.0702 0.9452 -vn 0.3131 0.5002 0.8073 -vn 0.2877 0.6969 0.6569 -vn 0.2405 0.8515 0.4659 -vn 0.8442 -0.2022 0.4964 -vn 0.1539 -0.3733 0.9148 -vn 0.9294 0.1498 -0.3372 -vn 0.5126 0.3515 -0.7834 -vn 0.9281 0.1420 -0.3443 -vn 0.9906 -0.0493 0.1279 -vn 0.9660 -0.0947 0.2406 -vn 0.9273 -0.1397 0.3472 -vn -0.9368 -0.1053 0.3338 -vn -0.8731 -0.0619 0.4836 -vn 0.0000 0.9318 0.3630 -vn 0.0000 0.9309 0.3653 -vn -0.0000 0.9304 0.3666 -vn -0.9949 -0.0724 0.0701 -vn -0.9944 -0.0057 0.1052 -vn -0.2692 -0.9013 -0.3393 -vn -0.1539 -0.3720 0.9154 -vn 0.1491 0.8829 0.4452 -vn 0.9257 -0.1502 0.3472 -vn 0.0000 0.3847 -0.9230 -usemtl Material.001 -s off -f 1487/1540/683 1488/1541/683 1489/1542/683 -f 1490/1543/684 1491/1544/684 1492/1545/684 -f 1490/1543/684 1492/1545/684 1493/1546/684 -f 1487/1540/683 1494/1547/683 1488/1541/683 -f 1495/1548/685 1496/1549/685 1497/1550/685 -f 1495/1548/685 1498/1551/685 1499/1552/685 -f 1497/1550/685 1500/1553/685 1501/1554/685 -f 1502/1555/686 1503/1556/686 1504/1557/686 -f 1503/1556/686 1505/1558/686 1506/1559/686 -f 1501/1554/685 1495/1548/685 1497/1550/685 -f 1507/1560/686 1508/1561/686 1509/1562/686 -f 1510/1563/685 1511/1564/685 1512/1565/685 -f 1513/1566/685 1512/1565/685 1514/1567/685 -f 1515/1568/687 1516/1569/687 1517/1570/687 -f 1511/1564/685 1510/1563/685 1518/1571/685 -f 1502/1555/686 1519/1572/686 1520/1573/686 -f 1521/1574/686 1520/1573/686 1522/1575/686 -f 1523/1576/686 1522/1575/686 1524/1577/686 -f 1525/1578/688 1526/1579/688 1527/1580/688 -f 1511/1564/685 1514/1567/685 1512/1565/685 -f 1528/1581/689 1529/1582/689 1530/1583/689 -f 1531/1584/689 1532/1585/689 1533/1586/689 -f 1534/1587/689 1530/1583/689 1535/1588/689 -f 1536/1589/686 1524/1577/686 1537/1590/686 -f 1496/1549/685 1495/1548/685 1499/1552/685 -f 1519/1572/686 1502/1555/686 1504/1557/686 -f 1504/1557/686 1503/1556/686 1506/1559/686 -f 1537/1590/686 1507/1560/686 1509/1562/686 -f 1538/1591/687 1515/1568/687 1517/1570/687 -f 1539/1592/685 1511/1564/685 1518/1571/685 -f 1521/1574/686 1502/1555/686 1520/1573/686 -f 1523/1576/686 1521/1574/686 1522/1575/686 -f 1536/1589/686 1523/1576/686 1524/1577/686 -f 1540/1593/688 1525/1578/688 1527/1580/688 -f 1534/1587/689 1528/1581/689 1530/1583/689 -f 1535/1588/689 1531/1584/689 1533/1586/689 -f 1533/1586/689 1534/1587/689 1535/1588/689 -f 1509/1562/686 1536/1589/686 1537/1590/686 -f 1507/1560/686 1506/1559/686 1508/1561/686 -s 1 -f 1541/1594/690 1542/1595/691 1543/1596/692 -f 1543/1596/692 1544/1597/693 1545/1598/694 -f 1543/1596/692 1546/1599/695 1541/1594/690 -f 1542/1595/691 1547/1600/696 1543/1596/692 -f 1542/1595/691 1548/1601/697 1547/1600/696 -f 1549/1602/698 1550/1603/699 1551/1604/700 -f 1552/1605/701 1553/1606/702 1491/1544/684 -f 1554/1607/703 1490/1543/684 1493/1546/684 -f 1555/1608/704 1554/1607/703 1556/1609/684 -f 1556/1609/684 1557/1610/684 1555/1608/704 -f 1558/1611/705 1559/1612/706 1560/1613/707 -f 1561/1614/708 1562/1615/709 1563/1616/710 -f 1564/1617/711 1565/1618/712 1566/1619/713 -f 1567/1620/714 1568/1621/715 1569/1622/716 -f 1487/1540/683 1570/1623/717 1494/1547/683 -f 1489/1542/683 1571/1624/718 1572/1625/683 -f 1572/1625/683 1573/1626/719 1574/1627/683 -f 1549/1602/698 1575/1628/720 1550/1603/699 -f 1550/1603/699 1576/1629/721 1551/1604/700 -f 1551/1604/700 1576/1629/721 1577/1630/722 -f 1578/1631/723 1579/1632/724 1580/1633/725 -f 1554/1607/703 1581/1634/684 1490/1543/684 -f 1553/1606/702 1492/1545/684 1491/1544/684 -f 1554/1607/703 1493/1546/684 1556/1609/684 -f 1557/1610/684 1582/1635/726 1555/1608/704 -f 1559/1612/706 1583/1636/727 1560/1613/707 -f 1559/1612/706 1563/1616/710 1583/1636/727 -f 1562/1615/709 1583/1636/727 1563/1616/710 -f 1561/1614/708 1566/1619/713 1562/1615/709 -f 1565/1618/712 1562/1615/709 1566/1619/713 -f 1568/1621/715 1584/1637/728 1569/1622/716 -f 1585/1638/729 1574/1627/683 1586/1639/730 -f 1488/1541/683 1571/1624/718 1489/1542/683 -f 1570/1623/717 1587/1640/731 1494/1547/683 -f 1571/1624/718 1573/1626/719 1572/1625/683 -f 1573/1626/719 1586/1639/730 1574/1627/683 -f 1545/1598/694 1588/1641/732 1546/1599/695 -f 1589/1642/733 1590/1643/734 1591/1644/735 -f 1592/1645/736 1549/1602/698 1573/1626/719 -f 1593/1646/737 1594/1647/738 1595/1648/739 -f 1594/1647/738 1589/1642/733 1596/1649/740 -f 1597/1650/741 1598/1651/742 1599/1652/743 -f 1600/1653/744 1601/1654/745 1602/1655/746 -f 1600/1653/744 1603/1656/684 1604/1657/684 -f 1587/1640/731 1570/1623/717 1605/1658/709 -f 1606/1659/747 1607/1660/748 1608/1661/749 -f 1609/1662/750 1608/1661/749 1607/1660/748 -f 1610/1663/751 1611/1664/752 1612/1665/753 -f 1611/1664/752 1613/1666/754 1614/1667/755 -f 1613/1666/754 1615/1668/756 1616/1669/757 -f 1615/1668/756 1617/1670/758 1618/1671/759 -f 1617/1670/758 1619/1672/760 1620/1673/761 -f 1585/1638/729 1586/1639/730 1621/1674/714 -f 1622/1675/762 1623/1676/763 1624/1677/764 -f 1622/1675/762 1625/1678/765 1626/1679/766 -f 1625/1678/765 1627/1680/767 1628/1681/768 -f 1544/1597/693 1629/1682/769 1545/1598/694 -f 1630/1683/770 1597/1650/741 1631/1684/771 -f 1631/1684/771 1632/1685/772 1633/1686/773 -f 1634/1687/774 1635/1688/775 1636/1689/776 -f 1597/1650/741 1637/1690/777 1631/1684/771 -f 1635/1688/775 1638/1691/778 1636/1689/776 -f 1637/1690/777 1599/1652/743 1629/1682/769 -f 1639/1692/779 1640/1693/780 1634/1687/774 -f 1590/1643/734 1641/1694/781 1642/1695/782 -f 1637/1690/777 1597/1650/741 1599/1652/743 -f 1596/1649/740 1589/1642/733 1591/1644/735 -f 1544/1597/693 1637/1690/777 1629/1682/769 -f 1631/1684/771 1637/1690/777 1632/1685/772 -f 1632/1685/772 1643/1696/783 1633/1686/773 -f 1636/1689/776 1639/1692/779 1634/1687/774 -f 1644/1697/784 1645/1698/785 1624/1677/764 -f 1646/1699/786 1647/1700/787 1648/1701/788 -f 1649/1702/789 1650/1703/790 1651/1704/788 -f 1652/1705/791 1653/1706/792 1654/1707/793 -f 1655/1708/794 1647/1700/787 1656/1709/795 -f 1656/1709/795 1646/1699/786 1657/1710/796 -f 1633/1686/773 1643/1696/783 1658/1711/797 -f 1659/1712/798 1660/1713/799 1661/1714/800 -f 1662/1715/801 1652/1705/791 1663/1716/802 -f 1647/1700/787 1646/1699/786 1656/1709/795 -f 1646/1699/786 1664/1717/803 1657/1710/796 -f 1646/1699/786 1648/1701/788 1665/1718/783 -f 1660/1713/799 1651/1704/788 1661/1714/800 -f 1652/1705/791 1654/1707/793 1663/1716/802 -f 1662/1715/801 1663/1716/802 1666/1719/804 -f 1548/1601/697 1667/1720/805 1668/1721/806 -f 1591/1644/735 1590/1643/734 1642/1695/782 -f 1669/1722/807 1554/1607/703 1555/1608/704 -f 1670/1723/737 1671/1724/737 1672/1725/739 -f 1673/1726/808 1672/1725/739 1674/1727/740 -f 1675/1728/809 1602/1655/746 1676/1729/810 -f 1677/1730/811 1678/1731/812 1676/1729/810 -f 1677/1730/811 1679/1732/813 1680/1733/683 -f 1552/1605/701 1681/1734/707 1682/1735/727 -f 1683/1736/814 1684/1737/815 1685/1738/816 -f 1686/1739/817 1687/1740/818 1688/1741/819 -f 1689/1742/820 1690/1743/821 1691/1744/822 -f 1692/1745/823 1691/1744/822 1693/1746/824 -f 1694/1747/825 1693/1746/824 1695/1748/826 -f 1696/1749/827 1695/1748/826 1697/1750/828 -f 1698/1751/829 1697/1750/828 1699/1752/830 -f 1700/1753/831 1701/1754/832 1702/1755/715 -f 1642/1695/782 1641/1694/781 1703/1756/804 -f 1704/1757/833 1644/1697/784 1705/1758/834 -f 1704/1757/833 1706/1759/835 1707/1760/836 -f 1708/1761/837 1707/1760/836 1709/1762/838 -f 1657/1710/796 1664/1717/803 1668/1721/806 -f 1647/1700/787 1710/1763/839 1648/1701/788 -f 1643/1696/783 1711/1764/840 1658/1711/797 -f 1650/1703/790 1661/1714/800 1651/1704/788 -f 1653/1706/792 1674/1727/740 1654/1707/793 -f 1506/1559/686 1505/1558/686 1508/1561/686 -f 1569/1622/716 1584/1637/728 1562/1615/709 -f 1712/1765/841 1713/1766/841 1578/1631/723 -f 1714/1767/842 1715/1768/842 1716/1769/843 -f 1579/1632/724 1716/1769/843 1580/1633/725 -f 1668/1721/806 1664/1717/803 1548/1601/697 -f 1557/1610/684 1700/1753/831 1582/1635/726 -f 1584/1637/728 1583/1636/727 1562/1615/709 -f 1488/1541/683 1717/1770/683 1571/1624/718 -f 1664/1717/803 1547/1600/696 1548/1601/697 -f 1546/1599/695 1543/1596/692 1545/1598/694 -f 1571/1624/718 1592/1645/736 1573/1626/719 -f 1718/1771/737 1593/1646/737 1595/1648/739 -f 1595/1648/739 1594/1647/738 1596/1649/740 -f 1675/1728/809 1600/1653/744 1602/1655/746 -f 1601/1654/745 1600/1653/744 1604/1657/684 -f 1719/1772/712 1587/1640/731 1605/1658/709 -f 1720/1773/844 1606/1659/747 1608/1661/749 -f 1721/1774/845 1609/1662/750 1607/1660/748 -f 1722/1775/846 1610/1663/751 1612/1665/753 -f 1612/1665/753 1611/1664/752 1614/1667/755 -f 1614/1667/755 1613/1666/754 1616/1669/757 -f 1616/1669/757 1615/1668/756 1618/1671/759 -f 1618/1671/759 1617/1670/758 1620/1673/761 -f 1723/1776/847 1585/1638/729 1621/1674/714 -f 1645/1698/785 1622/1675/762 1624/1677/764 -f 1623/1676/763 1622/1675/762 1626/1679/766 -f 1626/1679/766 1625/1678/765 1628/1681/768 -f 1705/1758/834 1644/1697/784 1624/1677/764 -f 1551/1604/700 1669/1722/807 1555/1608/704 -f 1673/1726/808 1670/1723/737 1672/1725/739 -f 1653/1706/792 1673/1726/808 1674/1727/740 -f 1678/1731/812 1675/1728/809 1676/1729/810 -f 1679/1732/813 1677/1730/811 1676/1729/810 -f 1724/1777/683 1677/1730/811 1680/1733/683 -f 1553/1606/702 1552/1605/701 1682/1735/727 -f 1688/1741/819 1683/1736/814 1685/1738/816 -f 1685/1738/816 1686/1739/817 1688/1741/819 -f 1692/1745/823 1689/1742/820 1691/1744/822 -f 1694/1747/825 1692/1745/823 1693/1746/824 -f 1696/1749/827 1694/1747/825 1695/1748/826 -f 1698/1751/829 1696/1749/827 1697/1750/828 -f 1725/1778/848 1698/1751/829 1699/1752/830 -f 1582/1635/726 1700/1753/831 1702/1755/715 -f 1706/1759/835 1704/1757/833 1705/1758/834 -f 1708/1761/837 1704/1757/833 1707/1760/836 -f 1726/1779/849 1708/1761/837 1709/1762/838 -f 1580/1633/725 1712/1765/841 1578/1631/723 -f 1579/1632/724 1714/1767/842 1716/1769/843 -f 1551/1604/700 1577/1630/722 1727/1780/850 -f 1551/1604/700 1727/1780/850 1669/1722/807 -f 1549/1602/698 1592/1645/736 1728/1781/850 -f 1549/1602/698 1728/1781/850 1575/1628/720 -o trigger_pistol_0 -v 0.255916 1.582615 6.859656 -v 0.255916 1.449703 6.660409 -v 0.255916 1.810704 6.457509 -v 0.255916 2.466018 6.344805 -v 0.255916 1.892926 6.633237 -v 0.577175 1.435798 6.186546 -v 0.577175 1.810704 6.457509 -v 0.577175 1.449703 6.660409 -v 0.577175 3.484048 5.722968 -v 0.577175 3.243770 6.479860 -v 0.577175 2.895699 6.381779 -v 0.577175 1.924939 5.885275 -v 0.577175 2.439333 5.691723 -v 0.577175 2.466018 6.344805 -v 0.577175 3.484048 5.722968 -v 0.401255 3.484048 5.722968 -v 0.401255 3.243770 6.479860 -v 0.401255 3.588838 6.684444 -v 0.401255 3.243770 6.479860 -v 0.401255 3.484048 5.722968 -v 0.401255 4.331121 5.796535 -v 0.401255 4.331121 7.553139 -v 0.401255 3.911054 6.978125 -v 0.401255 4.776393 4.607953 -v 0.401255 5.500355 4.607954 -v 0.401255 5.500354 7.553140 -v -0.401255 4.331121 5.796535 -v -0.401255 4.776393 4.607953 -v 0.401255 4.776393 4.607953 -v -0.401255 5.500355 4.607954 -v 0.401255 5.500355 4.607954 -v 0.401255 4.776393 4.607953 -v 0.577175 2.851677 5.639833 -v -0.577175 3.484048 5.722968 -v -0.577175 3.243770 6.479860 -v -0.401255 3.243770 6.479860 -v -0.255916 1.582615 6.859656 -v -0.255916 1.892926 6.633237 -v -0.255916 1.810704 6.457509 -v -0.401255 3.243770 6.479860 -v -0.401255 3.588838 6.684444 -v -0.401255 3.484048 5.722968 -v -0.401255 4.331121 7.553139 -v -0.401255 4.331121 5.796535 -v -0.401255 3.911054 6.978125 -v -0.401255 4.776393 4.607953 -v -0.401255 5.500355 4.607954 -v -0.401255 5.500354 7.553140 -v -0.255916 2.466018 6.344805 -v -0.577175 2.466018 6.344805 -v -0.577175 2.895699 6.381779 -v -0.577175 2.851677 5.639833 -v -0.577175 1.810704 6.457509 -v -0.577175 1.435798 6.186546 -v -0.577175 1.449703 6.660409 -v -0.577175 3.484048 5.722968 -v -0.577175 1.924939 5.885275 -v -0.577175 2.439333 5.691723 -v 0.577175 3.243770 6.479860 -v 0.401255 4.331121 5.796535 -v -0.401255 4.776393 4.607953 -v -0.401255 3.484048 5.722968 -v -0.255916 1.449703 6.660409 -v -0.577175 3.243770 6.479860 -v -0.255916 1.892926 6.633237 -v 0.255916 1.892926 6.633237 -v 0.255916 2.466018 6.344805 -v 0.577175 2.895699 6.381779 -v 0.577175 3.243770 6.479860 -v 0.401255 3.243770 6.479860 -v -0.401255 3.243770 6.479860 -v -0.577175 2.895699 6.381779 -v -0.136434 1.170197 7.267153 -v 0.136434 1.170197 7.267153 -v 0.255916 1.274900 7.159120 -v -0.255916 1.274900 7.159120 -v 0.255916 1.582615 6.859656 -v -0.255916 1.582615 6.859656 -v -0.136434 1.170197 7.267153 -v -0.140214 0.908798 7.158844 -v 0.140214 0.908798 7.158844 -v 0.255916 1.049089 7.041913 -v 0.255916 1.274900 7.159120 -v 0.136434 1.170197 7.267153 -v 0.255916 2.466018 6.344805 -v 0.577175 2.466018 6.344805 -v 0.577175 1.049089 7.041913 -v 0.255916 1.049089 7.041913 -v 0.140214 0.908798 7.158844 -v -0.140214 0.908798 7.158844 -v -0.238265 0.780515 7.270253 -v 0.238265 0.780515 7.270253 -v 0.577175 1.810704 6.457509 -v 0.255916 1.810704 6.457509 -v 0.255916 1.449703 6.660409 -v 0.577175 1.449703 6.660409 -v -0.242153 0.574698 7.190140 -v 0.242153 0.574698 7.190140 -v 0.238265 0.780515 7.270253 -v 0.557295 0.748788 6.906375 -v 0.577175 1.049089 7.041913 -v 0.577175 1.022907 6.562050 -v -0.255916 2.466018 6.344805 -v -0.401255 4.331121 5.796535 -v 0.401255 4.331121 5.796535 -v 0.401255 3.484048 5.722968 -v 0.401255 3.588838 6.684444 -v -0.401255 3.588838 6.684444 -v 0.401255 3.911054 6.978125 -v 0.401255 4.331121 7.553139 -v -0.401255 4.331121 7.553139 -v -0.401255 3.911054 6.978125 -v 0.401255 5.500354 7.553140 -v -0.401255 5.500354 7.553140 -v 0.577175 2.851677 5.639833 -v 0.577175 3.484048 5.722968 -v -0.577175 2.851677 5.639833 -v -0.401255 3.484048 5.722968 -v 0.577175 1.022907 6.562050 -v -0.577175 1.022907 6.562050 -v -0.577175 1.435798 6.186546 -v 0.577175 1.435798 6.186546 -v -0.577175 1.924939 5.885275 -v -0.577175 2.439333 5.691723 -v 0.577175 2.439333 5.691723 -v 0.577175 1.924939 5.885275 -v 0.242153 0.574698 7.190140 -v -0.242153 0.574698 7.190140 -v -0.557295 0.748788 6.906375 -v 0.557295 0.748788 6.906375 -v -0.577175 3.243770 6.479860 -v -0.255916 1.049089 7.041913 -v -0.577175 2.466018 6.344805 -v -0.255916 1.274900 7.159120 -v -0.577175 1.049089 7.041913 -v -0.577175 3.484048 5.722968 -v -0.577175 1.810704 6.457509 -v -0.577175 1.449703 6.660409 -v -0.255916 1.449703 6.660409 -v -0.255916 1.810704 6.457509 -v -0.255916 1.049089 7.041913 -v -0.557295 0.748788 6.906375 -v -0.238265 0.780515 7.270253 -v -0.577175 1.022907 6.562050 -v -0.577175 1.049089 7.041913 -v -0.255916 2.466018 6.344805 -vt 0.482997 0.972676 -vt 0.483169 0.972693 -vt 0.483177 0.972380 -vt 0.483034 0.971858 -vt 0.483023 0.972386 -vt 0.471310 0.981774 -vt 0.471246 0.981454 -vt 0.471009 0.981626 -vt 0.472210 0.980596 -vt 0.471654 0.980527 -vt 0.471614 0.980779 -vt 0.471647 0.981549 -vt 0.471923 0.981275 -vt 0.471511 0.981066 -vt 0.472210 0.980596 -vt 0.472225 0.980472 -vt 0.471669 0.980404 -vt 0.471639 0.980122 -vt 0.471669 0.980404 -vt 0.472225 0.980472 -vt 0.472428 0.979907 -vt 0.471300 0.979390 -vt 0.471545 0.979829 -vt 0.473322 0.979971 -vt 0.473535 0.979507 -vt 0.471644 0.978639 -vt 0.480249 0.946278 -vt 0.480249 0.945382 -vt 0.480816 0.945382 -vt 0.480249 0.944870 -vt 0.480816 0.944870 -vt 0.480816 0.945382 -vt 0.472077 0.981026 -vt 0.468113 0.980573 -vt 0.468670 0.980511 -vt 0.468657 0.980387 -vt 0.482644 0.972678 -vt 0.482622 0.972386 -vt 0.482468 0.972377 -vt 0.468657 0.980387 -vt 0.468690 0.980106 -vt 0.468100 0.980449 -vt 0.469037 0.979378 -vt 0.467904 0.979882 -vt 0.468786 0.979814 -vt 0.467009 0.979936 -vt 0.466802 0.979469 -vt 0.468701 0.978624 -vt 0.482618 0.971864 -vt 0.468807 0.981051 -vt 0.468707 0.980763 -vt 0.468241 0.981005 -vt 0.469067 0.981441 -vt 0.469000 0.981761 -vt 0.469302 0.981616 -vt 0.468113 0.980573 -vt 0.468666 0.981532 -vt 0.468393 0.981256 -vt 0.471654 0.980527 -vt 0.480816 0.946278 -vt 0.480249 0.945382 -vt 0.468100 0.980449 -vt 0.482469 0.972694 -vt 0.468670 0.980511 -vt 0.482622 0.972386 -vt 0.483023 0.972386 -vt 0.483034 0.971858 -vt 0.480078 0.973332 -vt 0.480077 0.973077 -vt 0.479953 0.973077 -vt 0.479387 0.973079 -vt 0.479263 0.973334 -vt 0.482753 0.972998 -vt 0.482894 0.972996 -vt 0.482958 0.972932 -vt 0.482686 0.972938 -vt 0.482997 0.972676 -vt 0.482644 0.972678 -vt 0.482753 0.972998 -vt 0.482726 0.973162 -vt 0.482929 0.973155 -vt 0.483051 0.973046 -vt 0.482958 0.972932 -vt 0.482894 0.972996 -vt 0.479852 0.973637 -vt 0.480079 0.973637 -vt 0.480081 0.974789 -vt 0.479855 0.974790 -vt 0.479773 0.974919 -vt 0.479575 0.974919 -vt 0.479506 0.975040 -vt 0.479843 0.975039 -vt 0.480080 0.974106 -vt 0.479853 0.974107 -vt 0.479854 0.974399 -vt 0.480081 0.974399 -vt 0.469982 0.982043 -vt 0.470324 0.982045 -vt 0.470322 0.981889 -vt 0.470645 0.982004 -vt 0.470647 0.981771 -vt 0.470947 0.981928 -vt 0.479491 0.973638 -vt 0.480249 0.946278 -vt 0.480816 0.946278 -vt 0.480816 0.946878 -vt 0.479953 0.972794 -vt 0.479386 0.972795 -vt 0.479952 0.972486 -vt 0.479951 0.971983 -vt 0.479384 0.971985 -vt 0.479385 0.972488 -vt 0.479949 0.971158 -vt 0.479382 0.971159 -vt 0.480940 0.947328 -vt 0.480940 0.946878 -vt 0.480125 0.947328 -vt 0.480249 0.946878 -vt 0.480940 0.948810 -vt 0.480125 0.948810 -vt 0.480125 0.948416 -vt 0.480940 0.948415 -vt 0.480125 0.948010 -vt 0.480125 0.947622 -vt 0.480940 0.947622 -vt 0.480940 0.948010 -vt 0.480704 0.949355 -vt 0.480362 0.949355 -vt 0.480139 0.949120 -vt 0.480926 0.949120 -vt 0.479262 0.973079 -vt 0.482592 0.973062 -vt 0.479264 0.973639 -vt 0.482686 0.972938 -vt 0.479266 0.974791 -vt 0.480125 0.946878 -vt 0.479265 0.974108 -vt 0.479265 0.974401 -vt 0.479492 0.974400 -vt 0.479492 0.974108 -vt 0.479493 0.974791 -vt 0.469662 0.981998 -vt 0.469986 0.981887 -vt 0.469361 0.981919 -vt 0.469663 0.981765 -vt 0.482618 0.971864 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.9531 0.3026 -vn 0.0000 -0.9364 -0.3508 -vn 0.0000 0.0000 -1.0000 -vn -1.0000 -0.0000 0.0000 -vn 0.0000 0.4977 0.8674 -vn 0.0000 0.5444 0.8388 -vn 0.0000 0.1395 0.9902 -vn 0.0000 -0.1979 0.9802 -vn 0.0000 -0.2712 0.9625 -vn 0.0000 -0.3535 0.9354 -vn -0.0000 -0.3697 0.9291 -vn 0.0000 -0.1606 0.9870 -vn 0.0000 0.7181 0.6960 -vn 0.0000 0.7113 0.7029 -vn -0.0000 0.7044 0.7098 -vn 0.0000 0.6629 0.7487 -vn 0.0000 0.6268 0.7792 -vn -0.4404 -0.3550 0.8247 -vn -0.4552 -0.3352 0.8249 -vn 0.2991 -0.3616 0.8831 -vn 0.9038 -0.1780 0.3893 -vn 0.9745 -0.1034 0.1993 -vn 0.5796 -0.3268 0.7465 -vn 0.0001 0.1395 0.9902 -vn 0.0000 0.0850 0.9964 -vn -0.0023 0.6611 0.7503 -vn -0.0000 0.6735 0.7392 -vn -0.0023 0.6496 0.7603 -vn 0.0017 0.6512 0.7589 -vn 0.0038 0.6541 0.7564 -vn -0.0023 0.6547 0.7559 -vn 0.0000 0.3882 0.9216 -vn 0.0000 0.2799 0.9600 -vn 0.0000 0.5604 0.8282 -vn 0.0000 0.6274 0.7787 -vn -0.2580 -0.3462 0.9020 -vn 0.3908 -0.3275 0.8603 -vn 0.3829 -0.3520 0.8541 -vn 0.8580 -0.2283 0.4601 -vn 0.9627 -0.1436 0.2294 -vn 0.9997 -0.0226 0.0012 -vn 0.0000 0.1148 0.9934 -vn 0.0000 0.0865 -0.9962 -vn 0.0000 0.1129 -0.9936 -vn 0.0000 -0.5671 0.8236 -vn 0.0000 -0.6219 0.7831 -vn 0.0000 -0.7215 0.6924 -vn 0.0000 -0.5953 0.8035 -vn 0.0001 -0.2977 0.9547 -vn 0.0000 -0.7663 0.6425 -vn 0.0000 -0.0000 1.0000 -vn 0.0000 0.0456 -0.9990 -vn 0.0000 0.1303 -0.9915 -vn 0.0000 0.0285 -0.9996 -vn 0.0000 0.1158 -0.9933 -vn -0.0000 -0.7114 -0.7028 -vn -0.0000 -0.7480 -0.6637 -vn 0.0000 -0.6258 -0.7800 -vn 0.0000 -0.5761 -0.8174 -vn -0.0000 -0.4689 -0.8832 -vn 0.0000 -0.2781 -0.9606 -vn 0.0000 -0.2019 -0.9794 -vn -0.0000 -0.4113 -0.9115 -vn 0.0000 -0.8524 -0.5229 -vn 0.0000 -0.8304 -0.5572 -vn 0.0000 -0.8071 -0.5904 -vn -0.9038 -0.1780 0.3893 -vn -0.9745 -0.1034 0.1993 -vn 0.0023 0.6611 0.7503 -vn -0.8580 -0.2283 0.4601 -vn -0.5059 -0.3351 0.7948 -vn -0.9997 -0.0226 0.0012 -vn -0.9627 -0.1436 0.2294 -vn 0.0000 0.1149 0.9934 -usemtl Material.001 -s off -f 1729/1782/851 1730/1783/851 1731/1784/851 -f 1731/1784/851 1732/1785/851 1733/1786/851 -f 1734/1787/851 1735/1788/851 1736/1789/851 -f 1737/1790/851 1738/1791/851 1739/1792/851 -f 1734/1787/851 1740/1793/851 1735/1788/851 -f 1741/1794/851 1742/1795/851 1735/1788/851 -f 1743/1796/852 1744/1797/852 1745/1798/852 -f 1746/1799/851 1747/1800/851 1748/1801/851 -f 1749/1802/851 1750/1803/851 1751/1804/851 -f 1746/1799/851 1748/1801/851 1749/1802/851 -f 1749/1802/851 1752/1805/851 1753/1806/851 -f 1754/1807/851 1750/1803/851 1749/1802/851 -f 1755/1808/853 1756/1809/853 1757/1810/853 -f 1758/1811/854 1759/1812/854 1760/1813/854 -f 1742/1795/851 1741/1794/851 1761/1814/851 -f 1762/1815/852 1763/1816/852 1764/1817/852 -f 1765/1818/855 1766/1819/855 1767/1820/855 -f 1768/1821/855 1769/1822/855 1770/1823/855 -f 1771/1824/855 1772/1825/855 1773/1826/855 -f 1769/1822/855 1773/1826/855 1772/1825/855 -f 1774/1827/855 1772/1825/855 1775/1828/855 -f 1776/1829/855 1775/1828/855 1772/1825/855 -f 1777/1830/855 1767/1820/855 1766/1819/855 -f 1778/1831/855 1779/1832/855 1780/1833/855 -f 1781/1834/855 1782/1835/855 1783/1836/855 -f 1784/1837/855 1780/1833/855 1779/1832/855 -f 1785/1838/855 1782/1835/855 1781/1834/855 -f 1786/1839/855 1785/1838/855 1781/1834/855 -f 1733/1786/851 1729/1782/851 1731/1784/851 -f 1761/1814/851 1737/1790/851 1739/1792/851 -f 1740/1793/851 1741/1794/851 1735/1788/851 -f 1787/1840/852 1743/1796/852 1745/1798/852 -f 1751/1804/851 1746/1799/851 1749/1802/851 -f 1753/1806/851 1754/1807/851 1749/1802/851 -f 1788/1841/853 1755/1808/853 1757/1810/853 -f 1789/1842/854 1758/1811/854 1760/1813/854 -f 1739/1792/851 1742/1795/851 1761/1814/851 -f 1790/1843/852 1762/1815/852 1764/1817/852 -f 1791/1844/855 1765/1818/855 1767/1820/855 -f 1770/1823/855 1769/1822/855 1772/1825/855 -f 1771/1824/855 1776/1829/855 1772/1825/855 -f 1786/1839/855 1778/1831/855 1780/1833/855 -f 1792/1845/855 1784/1837/855 1779/1832/855 -f 1778/1831/855 1786/1839/855 1781/1834/855 -s 1 -f 1793/1846/856 1794/1847/857 1795/1848/858 -f 1796/1849/859 1797/1850/860 1798/1851/861 -f 1799/1852/862 1800/1853/863 1796/1849/859 -f 1801/1854/864 1802/1855/864 1803/1856/865 -f 1804/1857/866 1803/1856/865 1805/1858/867 -f 1794/1847/857 1793/1846/856 1806/1859/868 -f 1807/1860/869 1808/1861/870 1809/1862/871 -f 1810/1863/872 1811/1864/873 1812/1865/874 -f 1813/1866/875 1814/1867/876 1796/1849/859 -f 1730/1783/851 1729/1782/851 1811/1864/873 -f 1815/1868/877 1816/1869/878 1817/1870/879 -f 1818/1871/880 1819/1872/881 1820/1873/882 -f 1821/1874/883 1822/1875/884 1823/1876/885 -f 1814/1867/876 1813/1866/875 1822/1875/884 -f 1816/1869/878 1815/1868/877 1824/1877/886 -f 1825/1878/887 1826/1879/888 1827/1880/889 -f 1828/1881/890 1829/1882/891 1827/1880/889 -f 1830/1883/892 1736/1789/851 1829/1882/891 -f 1830/1883/892 1734/1787/851 1736/1789/851 -f 1800/1853/863 1831/1884/893 1813/1866/875 -f 1832/1885/894 1833/1886/894 1834/1887/895 -f 1835/1888/896 1836/1889/897 1799/1852/862 -f 1836/1889/897 1835/1888/896 1837/1890/898 -f 1838/1891/899 1839/1892/900 1840/1893/901 -f 1841/1894/902 1842/1895/902 1839/1892/900 -f 1843/1896/903 1834/1887/895 1844/1897/904 -f 1845/1898/905 1846/1899/906 1834/1887/895 -f 1847/1900/907 1848/1901/908 1849/1902/909 -f 1850/1903/910 1849/1902/909 1851/1904/911 -f 1852/1905/912 1853/1906/913 1854/1907/914 -f 1845/1898/905 1843/1896/903 1853/1906/913 -f 1855/1908/915 1856/1909/915 1857/1910/916 -f 1848/1901/908 1847/1900/907 1858/1911/917 -f 1859/1912/860 1800/1853/863 1799/1852/862 -f 1860/1913/918 1808/1861/870 1807/1860/869 -f 1861/1914/876 1831/1884/893 1800/1853/863 -f 1791/1844/855 1860/1913/918 1862/1915/919 -f 1863/1916/920 1819/1872/881 1818/1871/880 -f 1846/1899/906 1845/1898/905 1864/1917/904 -f 1865/1918/883 1866/1919/886 1867/1920/885 -f 1861/1914/876 1865/1918/883 1868/1921/884 -f 1869/1922/878 1867/1920/885 1866/1919/886 -f 1870/1923/921 1825/1878/887 1871/1924/922 -f 1872/1925/923 1870/1923/921 1873/1926/924 -f 1782/1835/855 1872/1925/923 1783/1836/855 -f 1874/1927/925 1793/1846/856 1795/1848/858 -f 1798/1851/861 1799/1852/862 1796/1849/859 -f 1804/1857/866 1801/1854/864 1803/1856/865 -f 1806/1859/868 1804/1857/866 1805/1858/867 -f 1805/1858/867 1794/1847/857 1806/1859/868 -f 1812/1865/874 1807/1860/869 1809/1862/871 -f 1809/1862/871 1810/1863/872 1812/1865/874 -f 1810/1863/872 1730/1783/851 1811/1864/873 -f 1820/1873/882 1815/1868/877 1817/1870/879 -f 1817/1870/879 1818/1871/880 1820/1873/882 -f 1824/1877/886 1821/1874/883 1823/1876/885 -f 1821/1874/883 1814/1867/876 1822/1875/884 -f 1823/1876/885 1816/1869/878 1824/1877/886 -f 1871/1924/922 1825/1878/887 1827/1880/889 -f 1826/1879/888 1828/1881/890 1827/1880/889 -f 1828/1881/890 1830/1883/892 1829/1882/891 -f 1796/1849/859 1800/1853/863 1813/1866/875 -f 1846/1899/906 1832/1885/894 1834/1887/895 -f 1798/1851/861 1835/1888/896 1799/1852/862 -f 1840/1893/901 1836/1889/897 1837/1890/898 -f 1837/1890/898 1838/1891/899 1840/1893/901 -f 1838/1891/899 1841/1894/902 1839/1892/900 -f 1843/1896/903 1845/1898/905 1834/1887/895 -f 1850/1903/910 1847/1900/907 1849/1902/909 -f 1854/1907/914 1850/1903/910 1851/1904/911 -f 1851/1904/911 1852/1905/912 1854/1907/914 -f 1852/1905/912 1845/1898/905 1853/1906/913 -f 1858/1911/917 1855/1908/915 1857/1910/916 -f 1857/1910/916 1848/1901/908 1858/1911/917 -f 1862/1915/919 1860/1913/918 1807/1860/869 -f 1765/1818/855 1791/1844/855 1862/1915/919 -f 1869/1922/878 1863/1916/920 1818/1871/880 -f 1868/1921/884 1865/1918/883 1867/1920/885 -f 1831/1884/893 1861/1914/876 1868/1921/884 -f 1863/1916/920 1869/1922/878 1866/1919/886 -f 1873/1926/924 1870/1923/921 1871/1924/922 -f 1783/1836/855 1872/1925/923 1873/1926/924 -o slide_pistol_0 -v 1.014517 11.207904 -2.625850 -v 1.014517 11.207904 -2.300615 -v 1.014517 10.723700 -1.978914 -v -1.014517 10.157009 -2.625850 -v -1.014517 11.207904 -2.625850 -v -0.335502 10.613042 -2.625850 -v -1.526129 9.326169 3.920666 -v -1.526129 9.326169 3.413728 -v -1.526129 8.752565 3.413728 -v -1.705540 8.752565 3.920666 -v -1.705540 7.184847 3.920666 -v -1.705540 8.402288 6.532842 -v -1.526129 8.752565 3.920666 -v -1.705540 8.752565 3.920666 -v -1.705540 8.752759 6.288157 -v -1.526129 8.752565 3.920666 -v -1.524936 8.752759 6.288157 -v 1.705540 7.247200 -1.820036 -v 1.526129 7.247200 -1.820036 -v 1.526043 7.614016 -2.276281 -v 1.321148 7.184846 12.021435 -v -1.171832 7.184846 11.897297 -v 1.156401 7.184846 11.897297 -v 1.526043 7.614016 -2.276281 -v 1.526129 7.247200 -1.820036 -v 1.526043 7.184847 -2.765843 -v 1.321148 7.184846 11.214216 -v -1.705540 7.184847 2.105287 -v -1.705540 8.757562 2.105288 -v -1.705540 8.927025 1.935824 -v 1.526129 7.247200 -1.820036 -v 1.526129 7.184847 -1.313097 -v 1.526043 7.184847 -2.765843 -v -1.524936 9.326169 6.288157 -v -1.326382 10.025589 6.288157 -v -1.705540 9.660696 6.288157 -v -1.705540 9.326169 6.288157 -v 0.813732 7.184846 16.849926 -v 1.705540 7.184846 12.021435 -v 1.705540 7.184846 18.319260 -v 1.326382 7.184846 19.492821 -v -1.705540 7.967402 7.346316 -v -1.705540 8.055081 6.892088 -v 1.705540 7.637856 11.214216 -v 1.705540 7.184846 11.214216 -v 1.705540 7.967402 7.346316 -v -1.705540 7.184847 3.920666 -v -1.526129 7.184847 3.920666 -v -1.171832 7.184846 5.830759 -v 1.705540 7.184847 3.920666 -v 1.705540 7.184846 11.214216 -v 1.156401 7.184846 5.830759 -v 1.705540 7.184847 -2.765843 -v 1.705540 7.184847 -4.842922 -v 1.705540 8.782389 -4.842922 -v 1.705540 7.614016 -2.276281 -v 1.231429 7.184847 -4.842922 -v 1.526129 7.184847 -1.313097 -v 1.231024 7.184847 1.879624 -v -1.526129 7.184847 2.105287 -v -1.526129 7.184847 2.612226 -v -1.526129 8.752565 2.612226 -v 1.705540 7.184847 3.920666 -v 1.321148 7.184846 11.214216 -v 1.705540 7.184846 11.214216 -v 1.705540 7.637856 11.214216 -v -0.813732 7.184846 16.849926 -v 1.526129 7.184847 3.920666 -v 0.000000 9.832472 21.944122 -v 0.947015 10.390596 21.944122 -v -0.947015 10.390596 21.944122 -v 1.705540 8.055081 6.892088 -v -1.171832 7.184846 11.897297 -v -1.171832 8.402287 11.660704 -v -1.171832 8.578352 11.777046 -v 0.167762 11.355709 20.190464 -v -0.167762 11.355709 20.190464 -v -0.167762 10.787157 20.190464 -v 0.814306 10.492232 20.190464 -v 0.814306 10.492232 19.285318 -v 0.359371 10.492232 19.285318 -v 0.893030 10.492232 20.116810 -v 0.893030 10.492232 19.372772 -v -1.526129 7.184847 3.413727 -v 1.526129 7.184847 3.413727 -v -0.393269 7.184847 1.879624 -v 0.393269 7.184847 1.879624 -v -1.333642 8.402288 6.532842 -v -1.333642 8.055081 6.892088 -v -1.333642 7.967402 7.346316 -v -1.016029 10.321227 11.777046 -v -0.947015 10.390596 11.777046 -v -0.654714 10.019366 11.777046 -v -0.813732 7.184846 16.849926 -v 0.813732 7.184846 16.849926 -v 0.813732 5.420441 16.849926 -v 0.471660 5.087639 16.849926 -v -0.471660 5.087639 16.849926 -v -0.813732 5.420441 16.849926 -v -1.333642 7.184846 21.944122 -v -1.333642 7.184846 19.492821 -v -0.813732 7.184846 21.944122 -v -1.526129 7.184847 0.796846 -v -1.705540 7.184847 0.796846 -v -1.705540 7.184847 -0.004656 -v -0.728164 8.051682 1.879624 -v -0.393269 9.417000 1.879624 -v -0.393269 7.184847 1.879624 -v -0.728164 7.586768 1.879624 -v -1.238688 7.184847 1.879624 -v 1.231024 9.417000 1.879624 -v 1.231024 8.051682 1.879624 -v 0.728164 8.051682 1.879624 -v 1.526129 7.184847 2.105287 -v 1.526129 7.184847 2.612226 -v 1.705540 7.184847 -1.313097 -v 1.705540 7.184847 -0.511595 -v 1.526129 7.184847 -0.511595 -v 1.705540 7.184847 2.612226 -v 1.705540 7.184847 3.413727 -v 1.526129 7.184847 3.920666 -v 1.526129 9.833411 3.920666 -v 1.705540 9.660696 3.920666 -v 0.408756 10.107763 -3.259710 -v -0.409408 10.107763 -3.259710 -v -0.409408 10.390597 -3.172265 -v 1.705540 9.660696 3.413728 -v 1.526129 9.833411 3.413728 -v 1.526129 7.184847 3.413727 -v -0.392768 7.184847 -4.842922 -v 0.393269 9.417000 1.879624 -v 0.393269 7.184847 1.879624 -v 0.392768 7.184847 -4.842922 -v 1.705540 7.184847 2.612226 -v 1.526129 7.184847 2.612226 -v 1.526129 9.833411 2.612226 -v 1.526129 7.184847 2.105287 -v 1.705540 7.184847 2.105287 -v 1.705540 9.660696 2.105288 -v 0.392768 8.782389 -4.842922 -v 0.392768 9.417337 -4.333549 -v 1.231024 7.184847 1.879624 -v 1.231024 7.586768 1.879624 -v 1.231429 7.587345 -4.842922 -v 0.408756 10.390597 -3.531359 -v 0.408756 10.107763 -3.763226 -v 0.408756 10.107763 -3.259710 -v 1.526129 9.833411 1.303785 -v 1.705540 9.660696 1.303785 -v 1.705540 7.184847 1.303785 -v 0.728571 7.587345 -4.842922 -v 0.728571 8.051105 -4.842922 -v 1.231429 8.051105 -4.842922 -v 1.705540 9.660696 0.796846 -v 1.526129 9.833411 0.796846 -v 1.526129 7.184847 0.796846 -v 0.813732 7.184846 21.944122 -v 1.231024 9.417000 1.879624 -v 0.393269 9.417000 1.879624 -v 0.392768 9.417337 -4.333549 -v 1.231024 7.586768 1.879624 -v 0.728164 7.586768 1.879624 -v 0.728571 7.587345 -4.842922 -v 1.526129 9.833411 -0.004656 -v 1.705540 9.660696 -0.004656 -v 1.705540 7.184847 -0.004656 -v 1.705540 7.184847 -4.842922 -v 1.231429 7.184847 -4.842922 -v 1.231429 7.587345 -4.842922 -v 1.526129 7.184847 -0.511595 -v 1.705540 7.184847 -0.511595 -v 1.705540 9.660696 -0.511595 -v 1.231429 9.417337 -4.333549 -v 1.231429 8.782389 -4.842922 -v 1.231024 9.417000 1.879624 -v 0.728164 7.586768 1.879624 -v 0.728164 8.051682 1.879624 -v 0.728571 8.051105 -4.842922 -v 1.526129 9.833411 -1.313097 -v 1.705540 9.660696 -1.313097 -v 1.705540 7.184847 -1.313097 -v 1.231024 8.051682 1.879624 -v 0.728164 8.051682 1.879624 -v 1.231024 8.051682 1.879624 -v 1.231429 8.051105 -4.842922 -v 0.947015 10.390597 -2.821981 -v -0.947015 10.390597 -2.821981 -v -1.132077 10.212755 -2.753815 -v 1.526129 7.247200 -1.820036 -v 1.705540 7.247200 -1.820036 -v 1.705540 9.660696 -1.820036 -v 1.705540 8.752767 6.288157 -v 1.705540 8.402288 6.532842 -v -1.132077 10.212755 0.576711 -v -0.947015 10.390597 0.637665 -v 0.947015 10.390597 0.637665 -v 1.326382 7.184846 21.944122 -v 1.526129 7.184847 -0.004656 -v -1.526129 7.184847 2.612226 -v -1.238688 7.184847 1.879624 -v 1.705540 7.184847 2.105287 -v 1.526129 7.184847 1.303785 -v 1.705540 7.184847 1.303785 -v 1.526129 7.184847 0.796846 -v 1.705540 7.184847 -0.004656 -v 0.728164 7.586768 1.879624 -v 1.231024 7.586768 1.879624 -v 1.231024 7.184847 1.879624 -v 0.393269 7.184847 1.879624 -v -1.238688 9.417000 1.879624 -v -1.526129 7.184847 2.105287 -v -1.705540 7.184847 -1.313097 -v -1.526129 7.184847 -1.313097 -v -1.526129 7.184847 -0.511595 -v -1.705540 7.184847 2.612226 -v -1.526129 9.326169 3.920666 -v -1.705540 9.326169 3.920666 -v -1.705540 9.660696 3.920666 -v -1.526129 7.184847 3.920666 -v -1.705540 7.184847 3.920666 -v -1.705540 8.752565 3.920666 -v -1.705540 7.184847 3.413727 -v -1.526129 7.184847 3.413727 -v -1.526129 8.752565 3.413728 -v -1.705540 9.326169 3.413728 -v -1.526129 9.326169 3.413728 -v -1.526129 9.833411 3.413728 -v -1.705540 7.184847 2.612226 -v -1.705540 7.184847 3.413727 -v -1.705540 8.752565 3.413728 -v -0.393269 9.417000 1.879624 -v -0.392768 8.782389 -4.842922 -v -0.392768 7.184847 -4.842922 -v -1.526129 9.326169 2.612226 -v -1.705540 9.326169 2.612226 -v -1.705540 9.660696 2.612226 -v -1.526129 7.184847 2.612226 -v -1.705540 7.184847 2.612226 -v -1.705540 8.752565 2.612226 -v -0.392768 9.417337 -4.333549 -v -1.238688 7.184847 1.879624 -v -1.238688 7.184847 -4.842922 -v -1.238688 7.587345 -4.842922 -v -0.409408 10.390597 -3.531359 -v -0.409408 10.390597 -3.172265 -v -0.409408 10.107763 -3.259710 -v -1.526129 9.833411 1.303785 -v -1.526129 7.184847 1.303785 -v -1.705540 7.184847 1.303785 -v -0.728571 7.587345 -4.842922 -v -1.238688 7.587345 -4.842922 -v -1.238688 8.051105 -4.842922 -v -1.705540 9.660696 0.796846 -v -1.705540 7.184847 0.796846 -v -1.526129 7.184847 0.796846 -v -1.238688 9.417000 1.879624 -v -1.238688 9.417337 -4.333549 -v -0.392768 9.417337 -4.333549 -v -1.238688 7.586768 1.879624 -v -1.238688 7.587345 -4.842922 -v -0.728571 7.587345 -4.842922 -v -1.526129 9.833411 -0.004656 -v -1.526129 7.184847 -0.004656 -v -1.705540 7.184847 -0.004656 -v -1.238688 7.184847 -4.842922 -v -1.705540 7.184847 -4.842922 -v -1.526129 7.184847 -0.511595 -v -1.526129 9.833411 -0.511595 -v -1.705540 9.660696 -0.511595 -v -1.238688 8.782389 -4.842922 -v -1.238688 9.417337 -4.333549 -v -1.238688 9.417000 1.879624 -v -0.728164 7.586768 1.879624 -v -0.728571 7.587345 -4.842922 -v -0.728571 8.051105 -4.842922 -v -1.526129 7.184847 -0.004656 -v -1.238688 7.184847 -4.842922 -v -1.526129 9.833411 -1.313097 -v -1.526129 7.184847 -1.313097 -v -1.705540 7.184847 -1.313097 -v -1.238688 8.051682 1.879624 -v -1.238688 8.051105 -4.842922 -v -0.728164 8.051682 1.879624 -v -0.728571 8.051105 -4.842922 -v -1.238688 8.051105 -4.842922 -v -1.705540 7.184847 -4.842922 -v -1.526129 7.184847 -1.820036 -v -1.705540 7.184847 2.105287 -v -1.705540 7.184847 1.303785 -v -1.526129 7.184847 -1.820036 -v -1.526129 9.833411 -1.820036 -v -1.705540 9.660696 -1.820036 -v -1.526129 7.184847 1.303785 -v -1.526129 7.184847 3.413727 -v -1.526129 7.184847 3.920666 -v -1.526129 8.752565 3.920666 -v -0.947015 10.390597 6.288157 -v -0.654714 10.019367 6.288157 -v -0.409408 10.390597 6.288157 -v -1.171832 9.475291 6.288157 -v -0.409408 10.019367 5.830759 -v -0.409408 10.390597 5.830759 -v -0.409408 10.390597 6.288157 -v 0.408756 10.019367 5.830759 -v 0.408756 10.019367 6.288157 -v 0.408756 10.390597 6.288157 -v 0.408756 10.019367 5.830759 -v 0.408756 10.390597 5.830759 -v -0.409408 10.390597 5.830759 -v 0.408756 10.019367 6.288157 -v 0.632517 10.019367 6.288157 -v 0.408756 10.390597 6.288157 -v 0.958007 9.683089 6.288157 -v 1.018419 10.321527 6.288157 -v -1.171832 9.475290 11.777046 -v -1.171832 7.184846 5.830759 -v -1.171832 8.752774 6.288157 -v -1.171832 8.402288 6.532842 -v -0.409408 10.019367 6.288157 -v -1.333642 8.402287 11.660704 -v -1.171832 8.402287 11.660704 -v -1.171832 8.402288 6.532842 -v -0.409408 10.019367 5.830759 -v -0.654714 10.019367 5.830759 -v -1.171832 9.475291 5.830759 -v -1.171832 7.184846 5.830759 -v 1.156401 7.184846 5.830759 -v 1.156401 9.475291 5.830759 -v 1.014517 11.207904 -2.625850 -v 0.335502 10.613042 -2.625850 -v 0.335502 11.207904 -2.625850 -v -0.167762 11.355709 20.190464 -v 0.167762 11.355709 20.190464 -v 0.167762 11.355709 19.816681 -v 0.143185 11.207904 -2.300615 -v 0.143185 11.269897 -2.300615 -v 0.143185 11.269897 -2.690542 -v 1.014517 11.207904 -2.625850 -v 0.335502 11.207904 -2.625850 -v 0.335502 11.207904 -2.300615 -v 1.014517 11.207904 -2.300615 -v 0.335502 11.207904 -2.625850 -v 0.335502 11.269897 -2.690542 -v 0.335502 11.269897 -2.300615 -v 0.335502 10.613042 -2.625850 -v 0.335502 10.613042 -2.690542 -v 0.335502 11.269897 -2.690542 -v 0.143185 11.269897 -2.300615 -v 0.335502 11.269897 -2.300615 -v 0.335502 11.269897 -2.690542 -v -0.720340 8.093418 11.897297 -v -0.389845 7.872590 11.897297 -v -1.171832 7.184846 11.897297 -v -0.941169 8.423913 11.897297 -v -1.018714 8.813758 11.897297 -v 0.000000 7.795044 11.897297 -v 0.471660 5.087639 21.944122 -v 0.813732 5.420441 21.944122 -v -0.813732 5.420441 21.944122 -v 0.813732 7.184846 21.944122 -v -1.333642 7.184846 21.944122 -v -0.813732 7.184846 21.944122 -v -0.720340 8.093418 21.944122 -v -1.018714 8.813758 21.944122 -v -1.326382 10.025588 21.944122 -v -0.720340 9.534098 21.944122 -v 0.720340 9.534098 21.944122 -v 1.326382 10.025588 21.944122 -v 1.018714 8.813758 21.944122 -v 1.326382 7.184846 21.944122 -v 0.720340 8.093418 21.944122 -v 0.941169 9.203603 21.944122 -v 0.389845 9.754927 21.944122 -v -0.941169 9.203603 21.944122 -v -0.941169 8.423913 21.944122 -v -0.389845 7.872589 21.944122 -v 0.000000 7.795044 21.944122 -v 0.389845 7.872589 21.944122 -v 0.941169 8.423913 21.944122 -v -0.471660 5.087639 21.944122 -v -0.389845 9.754927 21.944122 -v 1.321148 7.637856 11.214216 -v 1.321148 7.444345 12.021435 -v 1.321148 7.184846 12.021435 -v 1.705540 7.184846 12.021435 -v 1.321148 7.184846 12.021435 -v 1.321148 7.444345 12.021435 -v 1.705540 7.637856 11.214216 -v 1.705540 7.444345 12.021435 -v 1.321148 7.444345 12.021435 -v -1.526129 9.326169 3.413728 -v -1.705540 9.326169 3.413728 -v -1.705540 9.326169 2.612226 -v -1.524936 9.326169 6.288157 -v -1.705540 9.326169 6.288157 -v -1.705540 9.326169 3.920666 -v -1.526129 8.752565 2.612226 -v -1.705540 8.752565 2.612226 -v -1.705540 8.752565 3.413728 -v -1.526129 8.752565 2.612226 -v 0.632517 10.019367 5.830759 -v 0.335502 10.613042 -2.690542 -v 0.143185 10.723700 -2.690542 -v 0.143185 11.269897 -2.690542 -v -0.335502 10.613042 -2.690542 -v -0.143185 10.723700 -2.690542 -v -0.335502 10.613042 -2.625850 -v -0.335502 10.613042 -2.690542 -v 0.335502 10.613042 -2.690542 -v 0.143185 10.723700 -2.690542 -v 0.143185 10.723700 -1.978914 -v -0.814306 10.492232 20.190464 -v -0.359371 10.492232 20.190464 -v -0.359371 10.492232 19.285318 -v -0.893030 10.492232 20.116810 -v -0.814306 10.492232 19.285318 -v -0.335502 11.207904 -2.625850 -v -0.335502 10.613042 -2.625850 -v -0.335502 11.207904 -2.625850 -v -0.335502 11.269897 -2.690542 -v -0.335502 11.269897 -2.690542 -v -0.143185 11.269897 -2.690542 -v -0.143185 10.723700 -2.690542 -v -0.143185 11.269897 -2.690542 -v -0.143185 11.207904 -2.300615 -v -0.335502 11.207904 -2.625850 -v -0.335502 11.207904 -2.300615 -v -0.335502 11.269897 -2.300615 -v -0.143185 11.269897 -2.300615 -v -0.143185 11.269897 -2.690542 -v -0.335502 11.269897 -2.690542 -v -0.143185 11.269897 -2.300615 -v -0.335502 11.207904 -2.625850 -v -1.014517 11.207904 -2.625850 -v -0.335502 11.207904 -2.300615 -v -1.014517 11.207904 -2.300615 -v 1.014517 10.157009 -2.625850 -v 1.014517 10.606321 -1.825947 -v 1.014517 10.491154 -1.431074 -v 1.014517 10.157009 -2.625850 -v 0.167762 10.787157 20.190464 -v -0.359371 10.492232 20.190464 -v -1.014517 11.207904 -2.625850 -v -1.014517 10.157009 -2.625850 -v -1.014517 10.723700 -1.978914 -v -1.014517 10.606321 -1.825947 -v -1.014517 10.491154 -1.431074 -v 0.359371 10.492232 20.190464 -v -1.014517 11.207904 -2.300615 -v -0.451145 8.974197 5.975873 -v 0.000000 8.787328 5.975873 -v -0.345291 9.132619 5.975873 -v 0.186870 8.336183 5.975873 -v 0.000000 8.299012 5.975873 -v -0.186870 9.238472 5.975873 -v 0.000000 9.275643 5.975873 -v 0.345291 8.442036 5.975873 -v 0.186870 9.238472 5.975873 -v 0.345291 9.132619 5.975873 -v 0.451145 8.600457 5.975873 -v 0.451145 8.974197 5.975873 -v 0.488316 8.787328 5.975873 -v -0.488316 8.787328 5.975873 -v -0.186870 8.336183 5.975873 -v -0.451145 8.600457 5.975873 -v -0.345291 8.442036 5.975873 -v -1.659889 9.270180 6.250484 -v -1.659889 9.270180 2.190356 -v -1.659889 8.796173 2.190356 -v -1.659889 9.139336 2.059511 -v -1.659889 8.927017 2.059511 -v -1.360494 9.270180 6.250484 -v -1.659889 9.270180 6.250484 -v -1.659889 8.796173 6.250484 -v -1.705540 8.752759 6.288157 -v -1.524936 8.752759 6.288157 -v -1.524936 9.326169 6.288157 -v 1.705540 7.614016 -2.276281 -v -1.705540 7.184847 1.303785 -v -1.705540 9.151711 1.935824 -v 1.321148 7.637856 11.214216 -v 0.359371 10.492232 20.190464 -v -1.238688 7.586768 1.879624 -v 0.393269 9.417000 1.879624 -v 1.705540 7.184847 3.920666 -v 0.408756 10.390597 -3.172265 -v 1.705540 7.184847 3.413727 -v 0.392768 7.184847 -4.842922 -v 1.705540 9.660696 2.612226 -v 1.526129 9.833411 2.105288 -v 1.231429 7.184847 -4.842922 -v 0.408756 10.390597 -3.172265 -v 1.526129 7.184847 1.303785 -v 1.705540 7.184847 0.796846 -v 1.231429 9.417337 -4.333549 -v 1.231429 7.587345 -4.842922 -v 1.526129 7.184847 -0.004656 -v 1.526129 9.833411 -0.511595 -v 0.728571 7.587345 -4.842922 -v 1.526129 7.184847 -1.313097 -v 1.231429 8.051105 -4.842922 -v 0.728571 8.051105 -4.842922 -v 1.132077 10.212755 -2.753815 -v 1.526129 9.833411 -1.820036 -v 1.132077 10.212755 0.576711 -v 1.705540 7.184847 0.796846 -v -1.238688 8.051682 1.879624 -v -1.705540 7.184847 -0.511595 -v -1.705540 7.184847 3.413727 -v -1.526129 9.833411 3.920666 -v -1.526129 8.752565 3.920666 -v -1.705540 8.752565 3.413728 -v -1.705540 9.660696 3.413728 -v -1.705540 8.752565 2.612226 -v -0.393269 7.184847 1.879624 -v -1.526129 9.833411 2.612226 -v -1.526129 8.752565 2.612226 -v -1.705540 7.184846 18.319260 -v -1.238688 7.586768 1.879624 -v -0.409408 10.107763 -3.763226 -v -1.705540 9.660696 1.303785 -v -0.728571 8.051105 -4.842922 -v -1.526129 9.833411 0.796846 -v -0.393269 9.417000 1.879624 -v -0.728164 7.586768 1.879624 -v -1.705540 9.660696 -0.004656 -v -1.705540 7.184847 -0.511595 -v -0.728164 8.051682 1.879624 -v -1.705540 9.660696 -1.313097 -v -1.238688 8.051682 1.879624 -v -1.705540 7.184847 -1.820036 -v -1.705540 7.184847 -1.820036 -v -1.705540 7.184847 -4.842922 -v -1.705540 7.184847 -1.820036 -v -1.705540 8.782389 -4.842922 -v -1.526129 8.752565 3.413728 -v -0.409408 10.019367 6.288157 -v 0.408756 10.390597 5.830759 -v -1.326382 10.025588 11.777046 -v -1.333642 8.402288 6.532842 -v -0.167762 11.355709 19.816681 -v 0.335502 11.207904 -2.300615 -v 0.335502 11.207904 -2.625850 -v 0.143185 11.269897 -2.690542 -v 1.321148 7.184846 11.214216 -v 1.705540 7.444345 12.021435 -v 1.321148 7.637856 11.214216 -v -1.526129 9.326169 2.612226 -v -1.526129 9.326169 3.920666 -v -1.526129 8.752565 3.413728 -v -1.526129 9.326169 2.612226 -v 0.335502 11.269897 -2.690542 -v 0.335502 10.613042 -2.625850 -v -0.893030 10.492232 19.372772 -v -0.335502 10.613042 -2.690542 -v -0.143185 10.723700 -1.978914 -v -0.335502 11.269897 -2.690542 -v -0.335502 11.269897 -2.300615 -v -1.659889 8.796173 6.250484 -v -1.360494 8.796173 6.250484 -v -1.705540 8.402288 6.532842 -v -1.333642 8.402288 6.532842 -v -1.524936 8.752759 6.288157 -v -1.171832 8.752774 6.288157 -v -0.654714 10.019366 11.897297 -v -0.654714 10.019366 11.777046 -v 0.632517 10.019366 11.777046 -v 0.632517 10.019366 11.777046 -v -1.705540 9.660696 6.288157 -v -1.705540 9.660696 3.920666 -v -1.705540 9.326169 3.920666 -v -1.526129 8.752565 2.110282 -v -1.526129 9.321173 2.105288 -v -1.524936 9.151711 1.935824 -v -1.526129 7.184847 1.303785 -v -1.526129 9.833411 1.303785 -v -1.526129 9.833411 0.796846 -v -1.705540 9.660696 1.303785 -v 1.526129 9.833411 -1.820036 -v 1.526129 9.833411 -1.313097 -v -1.171832 9.475290 11.777046 -v 1.705540 7.184846 18.319260 -v 1.705540 7.184846 12.021435 -v 1.705540 7.444345 12.021435 -v 1.705540 9.660696 -1.820036 -v 1.705540 7.247200 -1.820036 -v 1.705540 7.967401 18.319260 -v 1.526043 7.184847 -2.765843 -v 1.705540 7.184847 -4.842922 -v 1.705540 7.184847 -2.765843 -v -1.526129 9.321173 2.105288 -v -1.705540 9.321173 2.105288 -v -1.705540 9.151711 1.935824 -v -1.705540 8.927025 1.935824 -v -1.705540 8.757562 2.105288 -v -1.526129 8.752565 2.110282 -v 1.018714 8.813758 11.876558 -v 1.156401 9.475290 11.866871 -v 1.156401 7.184846 11.897297 -v -1.014517 10.157009 0.196241 -v -1.014517 10.369081 0.196241 -v 0.167762 10.787157 19.556133 -v 0.167762 11.355709 19.816681 -v 0.167762 11.355709 20.190464 -v 0.359371 10.492232 20.190464 -v 0.359371 10.492232 19.285318 -v 0.872165 9.770429 11.711023 -v 1.156401 9.475290 11.866871 -v 0.632517 10.019366 11.897297 -v 1.018419 10.321526 11.521421 -v 1.019789 10.321227 19.320282 -v 1.326382 10.025588 21.944122 -v 0.872165 9.770429 11.711023 -v 0.947015 10.390596 11.752501 -v 1.018419 10.321526 11.521421 -v 1.018419 10.321527 6.288157 -v 0.958007 9.683089 6.288157 -v 0.958007 9.683129 11.555180 -v 0.632517 10.019367 5.830759 -v 1.156401 9.475291 5.830759 -v 0.958007 9.683089 6.288157 -v 1.326382 7.967401 19.492821 -v 1.326382 7.967402 7.346316 -v 1.326382 8.055081 6.892088 -v 1.326382 8.402288 6.532842 -v 1.326382 10.025589 6.288157 -v -1.333642 7.967401 19.492821 -v -1.333642 8.578352 11.777046 -v -1.333642 8.402287 11.660704 -v -1.326382 10.025588 21.944122 -v -1.326382 10.025588 11.777046 -v 0.947015 10.390596 19.208494 -v 0.947015 10.390596 11.752501 -v 0.869641 10.390596 11.777046 -v -0.409408 10.390597 -3.531359 -v -0.409408 10.107763 -3.763226 -v -0.947015 10.390597 -3.531359 -v 0.869641 10.390596 11.777046 -v -1.238688 8.782389 -4.842922 -v -1.333642 8.578352 11.777046 -v -1.526129 7.184847 -0.004656 -v -1.526129 9.833411 -0.004656 -v -1.526129 9.833411 -0.511595 -v -0.947015 10.390597 0.637665 -v -0.947015 10.390597 6.288157 -v -0.409408 10.390597 5.830759 -v 0.408756 10.390597 5.830759 -v 0.947015 10.390597 0.637665 -v 0.408756 10.390597 6.288157 -v 1.018419 10.321527 6.288157 -v -1.171832 9.475291 5.830759 -v -1.171832 9.475291 6.288157 -v 1.018419 10.321527 6.288157 -v 1.326382 10.025589 6.288157 -v 1.132077 10.212755 0.576711 -v -0.409408 10.390597 6.288157 -v -1.526129 9.833411 2.105288 -v -1.526129 9.833411 2.612226 -v -1.132077 10.212755 0.576711 -v -1.526129 9.833411 3.920666 -v -1.326382 10.025589 6.288157 -v -1.526129 9.833411 3.413728 -v 0.947015 10.390597 -3.531359 -v 0.947015 10.390597 -2.821981 -v 1.132077 10.212755 -2.753815 -v 0.947015 10.390596 19.208494 -v -0.947015 10.390596 19.208494 -v -1.016029 10.321227 19.320282 -v 0.947015 10.390596 20.281315 -v -0.947015 10.390596 20.281315 -v -0.947015 10.390596 21.944122 -v 1.705540 7.184847 2.612226 -v 1.705540 9.660696 2.612226 -v 1.705540 9.660696 3.413728 -v 1.019789 10.321227 20.144449 -v -1.016029 10.321227 20.144449 -v 1.326382 7.967401 19.492821 -v 1.326382 7.184846 19.492821 -v 0.471660 5.087639 16.849926 -v 0.813732 5.420441 16.849926 -v 0.813732 5.420441 21.944122 -v 0.408756 10.390597 -3.531359 -v 0.408756 10.390597 -3.172265 -v 1.019789 10.321227 20.144449 -v -0.409408 10.107763 -3.763226 -v -0.409408 10.107763 -3.259710 -v 0.408756 10.107763 -3.259710 -v 1.705540 7.967402 7.346316 -v 1.326382 7.967402 7.346316 -v 1.326382 7.967401 19.492821 -v 1.326382 7.184846 21.944122 -v 1.326382 7.184846 19.492821 -v 1.526129 7.184847 1.303785 -v 1.526129 7.184847 0.796846 -v 1.526129 9.833411 0.796846 -v 1.705540 8.402288 6.532842 -v 1.326382 8.402288 6.532842 -v 1.326382 8.055081 6.892088 -v 1.705540 8.055081 6.892088 -v 1.705540 9.660696 6.288157 -v 1.326382 10.025589 6.288157 -v 1.326382 8.752767 6.288157 -v 1.705540 9.660696 -4.131680 -v 1.231429 9.417337 -4.333549 -v 0.408756 10.107763 -3.763226 -v -0.392768 9.417337 -4.333549 -v -0.409408 10.390597 -3.172265 -v -0.947015 10.390597 -2.821981 -v 0.392768 9.417337 -4.333549 -v 0.392768 8.782389 -4.842922 -v 1.231429 8.782389 -4.842922 -v 1.705540 8.782389 -4.842922 -v 1.705540 9.660696 -4.131680 -v 0.947015 10.390597 -3.531359 -v 1.526129 9.833411 2.612226 -v 1.705540 9.660696 6.288157 -v 1.705540 9.660696 3.920666 -v 1.526129 9.833411 3.920666 -v -1.132077 10.212755 0.576711 -v 1.132077 10.212755 0.576711 -v 1.132077 10.212755 -2.753815 -v 1.705540 9.660696 -1.313097 -v 1.705540 9.660696 -0.511595 -v 1.705540 7.184847 -0.511595 -v 1.705540 9.660696 -0.004656 -v 1.705540 9.660696 0.796846 -v 1.705540 7.184847 0.796846 -v 1.526129 7.184847 2.612226 -v 1.526129 7.184847 2.105287 -v 1.526129 9.833411 2.105288 -v 1.705540 9.660696 3.920666 -v 1.705540 9.660696 6.288157 -v 1.019789 10.321227 19.320282 -v -0.471660 5.087639 16.849926 -v 0.471660 5.087639 21.944122 -v 0.813732 7.184846 16.849926 -v 0.813732 7.184846 21.944122 -v 0.947015 10.390596 20.281315 -v 0.947015 10.390596 21.944122 -v 1.705540 8.752767 6.288157 -v 1.526129 7.184847 3.920666 -v 1.526129 7.184847 3.413727 -v 1.526129 9.833411 3.413728 -v 0.392768 7.184847 -4.842922 -v -0.392768 7.184847 -4.842922 -v -0.392768 8.782389 -4.842922 -v 0.408756 10.390597 -3.531359 -v 1.526129 7.184847 -0.004656 -v 1.526129 7.184847 -0.511595 -v 1.526129 9.833411 -0.511595 -v 1.705540 7.184847 1.303785 -v 1.705540 9.660696 1.303785 -v 1.705540 9.660696 2.105288 -v 1.526129 9.833411 3.413728 -v 1.526129 9.833411 -0.511595 -v 1.526129 9.833411 -1.313097 -v 1.526129 9.833411 -1.820036 -v 1.526129 9.833411 -0.004656 -v 1.526129 9.833411 2.105288 -v 1.526129 9.833411 1.303785 -v 1.705540 7.184847 -2.765843 -v 1.705540 7.614016 -2.276281 -v 1.526043 7.614016 -2.276281 -v -0.947015 10.390597 -3.531359 -v -1.705540 9.660696 -4.131680 -v -1.132077 10.212755 -2.753815 -v -1.705540 7.184846 18.319260 -v -1.705540 7.967401 18.319260 -v -1.526129 9.833411 -1.313097 -v -1.526129 9.833411 -0.511595 -v -1.705540 9.660696 -1.820036 -v -1.526129 9.833411 -1.820036 -v -1.705540 9.660696 3.413728 -v -1.705540 9.660696 2.612226 -v -1.705540 9.326169 2.612226 -v -1.333642 7.184846 19.492821 -v -0.471660 5.087639 21.944122 -v -0.813732 5.420441 21.944122 -v -0.409408 10.390597 -3.531359 -v -1.705540 7.184847 2.105287 -v -1.526129 7.184847 2.105287 -v -1.526129 9.833411 2.105288 -v -1.705540 7.967402 7.346316 -v -1.705540 7.967401 18.319260 -v -1.333642 7.967401 19.492821 -v -1.333642 7.184846 19.492821 -v -1.705540 9.321173 2.105288 -v -1.705540 9.660696 2.105288 -v -1.705540 8.055081 6.892088 -v -1.333642 8.055081 6.892088 -v -1.333642 7.967402 7.346316 -v -1.705540 9.660696 -0.511595 -v -1.238688 9.417337 -4.333549 -v -1.705540 9.660696 -4.131680 -v -1.526129 9.833411 1.303785 -v -1.705540 8.782389 -4.842922 -v -1.705540 9.660696 -1.313097 -v -1.705540 7.184847 -1.313097 -v -1.705540 7.184847 -0.511595 -v -1.705540 9.660696 -0.004656 -v -1.705540 7.184847 -0.004656 -v -1.705540 7.184847 0.796846 -v -1.526129 9.833411 -0.004656 -v -1.705540 9.660696 0.796846 -v -1.526129 9.833411 0.796846 -v -0.813732 5.420441 16.849926 -v -0.813732 7.184846 21.944122 -v -1.526129 7.184847 -1.313097 -v -1.526129 9.833411 -1.313097 -v -1.526129 9.833411 -1.820036 -v -0.947015 10.390596 11.777046 -v -1.016029 10.321227 11.777046 -v -1.705540 8.752759 6.288157 -v -1.526129 9.833411 3.920666 -v -1.526129 9.833411 3.413728 -v -1.526129 9.326169 3.413728 -v 1.326382 8.752767 6.288157 -v -1.171832 8.402288 6.532842 -v -1.171832 8.578352 11.777046 -v -1.171832 8.402287 11.660704 -v 0.632517 10.019367 5.830759 -v 0.632517 10.019367 6.288157 -v 0.408756 10.019367 6.288157 -v -0.654714 10.019367 5.830759 -v -0.409408 10.019367 5.830759 -v -0.409408 10.019367 6.288157 -v 0.632517 10.019367 6.288157 -v 0.958007 9.683129 11.555180 -v 1.156401 7.184846 5.830759 -v 1.156401 7.184846 11.897297 -v 0.941169 9.203603 11.872112 -v 1.018714 8.813758 11.876558 -v 1.018714 8.813758 21.944122 -v 0.720340 9.534098 11.876596 -v 0.941169 9.203603 21.944122 -v 0.389845 9.754927 11.891426 -v 0.720340 9.534098 21.944122 -v 0.000000 9.832472 11.897297 -v 0.389845 9.754927 21.944122 -v 0.814306 10.296813 20.190464 -v 0.814306 10.492232 20.190464 -v 0.000000 9.832472 21.944122 -v -0.389845 9.754927 21.944122 -v -0.389845 9.754927 11.897297 -v -0.720340 9.534098 21.944122 -v -0.720340 9.534098 11.896717 -v 0.893030 10.296813 20.116810 -v 0.893030 10.492232 20.116810 -v 0.893030 10.296813 19.372772 -v 0.893030 10.492232 19.372772 -v -0.941169 9.203603 11.897297 -v -0.941169 9.203603 21.944122 -v -1.018714 8.813758 21.944122 -v -1.018714 8.813758 11.897297 -v -0.941169 8.423913 21.944122 -v -0.941169 8.423913 11.897297 -v -0.720340 8.093418 21.944122 -v -0.720340 8.093418 11.897297 -v -0.389845 7.872589 21.944122 -v -0.389845 7.872590 11.897297 -v 0.000000 7.795044 21.944122 -v 0.000000 7.795044 11.897297 -v 0.000000 7.795044 21.944122 -v 0.389845 7.872589 21.944122 -v 0.389845 7.872590 11.897297 -v 0.720340 8.093418 21.944122 -v 0.720340 8.093418 11.890942 -v 0.814306 10.296813 19.285318 -v 0.814306 10.492232 19.285318 -v 0.893030 10.492232 19.372772 -v 0.941169 8.423913 11.883170 -v 0.941169 8.423913 21.944122 -v 0.359371 10.492232 19.285318 -v -0.814306 10.296813 19.285318 -v -0.359371 10.492232 19.285318 -v -0.167762 10.787157 19.556133 -v 0.167762 10.787157 19.556133 -v -0.167762 11.355709 19.816681 -v 0.167762 11.355709 19.816681 -v -0.814306 10.157009 0.372431 -v 0.814306 10.157009 0.372431 -v 0.814306 10.357646 0.372431 -v 1.014517 10.157009 0.196241 -v 1.014517 10.369081 0.196241 -v -0.143185 10.723700 -1.978914 -v 0.143185 10.723700 -1.978914 -v 0.143185 10.723700 -2.690542 -v 0.143185 11.207904 -2.300615 -v 0.143185 10.723700 -1.978914 -v 0.335502 11.207904 -2.300615 -v 1.014517 10.723700 -1.978914 -v 1.014517 11.207904 -2.300615 -v 1.014517 10.606321 -1.825947 -v -1.014517 10.606321 -1.825947 -v -1.014517 10.491154 -1.431074 -v 1.014517 10.491154 -1.431074 -v -0.814306 10.357646 0.372431 -v 0.814306 10.357646 0.372431 -v 1.014517 10.369081 0.196241 -v -1.014517 10.369081 0.196241 -v -1.171832 9.475290 11.897297 -v 0.632517 10.019366 11.897297 -v 0.720340 9.534098 11.876596 -v 0.000000 9.832472 11.897297 -v -0.654714 10.019366 11.897297 -v -0.720340 9.534098 11.896717 -v -1.171832 9.475290 11.897297 -v 0.941169 8.423913 11.883170 -v 0.720340 8.093418 11.890942 -v 0.389845 7.872590 11.897297 -v -0.941169 9.203603 11.897297 -v -0.389845 9.754927 11.897297 -v 0.389845 9.754927 11.891426 -v 0.941169 9.203603 11.872112 -v -1.524936 8.927025 1.935824 -v -1.526129 9.833411 2.105288 -v -1.526129 9.321173 2.105288 -v -1.526129 9.326169 2.612226 -v 0.335502 11.269897 -2.300615 -v 0.143185 11.269897 -2.300615 -v -0.167762 10.787157 19.556133 -v -0.167762 10.787157 20.190464 -v -0.167762 11.355709 20.190464 -v -0.359371 10.492232 20.190464 -v -0.814306 10.492232 20.190464 -v -0.814306 10.296813 20.190464 -v -0.893030 10.296813 20.116810 -v -0.893030 10.296813 19.372772 -v -0.893030 10.492232 20.116810 -v -0.893030 10.296813 19.372772 -v -0.893030 10.492232 19.372772 -v -0.814306 10.492232 19.285318 -v -0.143185 10.723700 -1.978914 -v -1.014517 10.723700 -1.978914 -v -0.814306 10.357646 0.372431 -v -0.335502 11.269897 -2.300615 -v -0.335502 11.207904 -2.300615 -v -0.143185 11.207904 -2.300615 -v 1.526129 9.833411 0.796846 -v -0.451145 8.974197 5.975873 -v -0.345291 9.132619 5.975873 -v -0.345291 9.132619 5.773401 -v -0.186870 9.238472 5.975873 -v -0.186870 9.238472 5.773401 -v 0.345291 8.442036 5.975873 -v 0.186870 8.336183 5.975873 -v 0.186870 8.336183 5.773401 -v 0.000000 9.275643 5.975873 -v 0.000000 9.275643 5.773401 -v 0.186870 9.238472 5.975873 -v 0.186870 9.238472 5.773401 -v 0.451145 8.600457 5.975873 -v 0.345291 8.442036 5.773401 -v 0.345291 9.132619 5.975873 -v 0.345291 9.132619 5.773401 -v 0.451145 8.974197 5.975873 -v 0.451145 8.974197 5.773401 -v 0.488316 8.787328 5.975873 -v 0.451145 8.600457 5.773401 -v 0.488316 8.787328 5.773401 -v -0.186870 8.336183 5.975873 -v -0.345291 8.442036 5.975873 -v -0.345291 8.442036 5.773401 -v -0.451145 8.600457 5.975873 -v -0.488316 8.787328 5.975873 -v -0.488316 8.787328 5.773401 -v 0.000000 8.299012 5.975873 -v -0.186870 8.336183 5.773401 -v 0.000000 8.299012 5.773401 -v -0.451145 8.974197 5.773401 -v -0.451145 8.600457 5.773401 -v -1.360494 8.796173 2.190356 -v -1.659889 8.796173 2.190356 -v -1.659889 8.927017 2.059511 -v -1.659889 9.139336 2.059511 -v -1.360494 9.139336 2.059511 -v -1.360494 8.927017 2.059511 -v -1.360494 9.270180 2.190356 -v -1.659889 9.270180 2.190356 -v -1.659889 9.270180 6.250484 -v -1.360494 8.796173 6.250484 -v -1.659889 8.796173 6.250484 -v -1.705540 9.326169 6.288157 -v -1.524936 8.927025 1.935824 -v -1.526129 7.184847 0.796846 -v -1.526129 8.752565 2.110282 -v -1.524936 9.151711 1.935824 -v 0.167762 10.787157 20.190464 -v -1.526129 7.184847 -0.511595 -v 0.947015 10.390596 21.944122 -v 1.705540 7.184847 3.413727 -v 0.408756 10.107763 -3.763226 -v 1.705540 7.967401 18.319260 -v 1.526129 9.833411 1.303785 -v -1.132077 10.212755 -2.753815 -v 1.705540 7.184847 -1.313097 -v 1.705540 7.184847 -0.004656 -v 1.526129 9.833411 2.612226 -v 1.526129 9.833411 3.920666 -v 1.526129 9.833411 -0.004656 -v 1.705540 7.184847 2.105287 -v 1.526043 7.184847 -2.765843 -v -1.705540 9.326169 3.413728 -v -1.333642 7.967401 19.492821 -v -1.705540 9.660696 2.105288 -v -1.333642 7.184846 21.944122 -v -0.813732 7.184846 16.849926 -v -1.526129 7.184847 -1.820036 -v -1.526129 9.326169 3.920666 -v -1.333642 8.402287 11.660704 -v 0.408756 10.019367 5.830759 -v -0.654714 10.019367 6.288157 -v 0.869641 10.390596 11.777046 -v 0.000000 7.795044 11.897297 -v 0.893030 10.296813 19.372772 -v -0.143185 10.723700 -2.690542 -v -1.526129 9.833411 2.612226 -v -0.167762 11.355709 19.816681 -v -0.359371 10.492232 19.285318 -v -0.893030 10.492232 19.372772 -v -0.143185 11.269897 -2.300615 -v -1.014517 11.207904 -2.300615 -v -1.360494 9.270180 6.250484 -vt 0.665882 0.347767 -vt 0.666023 0.347766 -vt 0.666162 0.347974 -vt 0.668422 0.348903 -vt 0.668420 0.348450 -vt 0.668128 0.348707 -vt 0.670331 0.347891 -vt 0.670113 0.347891 -vt 0.670112 0.348138 -vt 0.648961 0.347035 -vt 0.648963 0.347711 -vt 0.650088 0.347182 -vt 0.670330 0.348139 -vt 0.670330 0.348216 -vt 0.671351 0.348220 -vt 0.670330 0.348139 -vt 0.671351 0.348142 -vt 0.655673 0.344315 -vt 0.655725 0.344372 -vt 0.655911 0.344201 -vt 0.649593 0.340884 -vt 0.649645 0.341960 -vt 0.649646 0.340955 -vt 0.655911 0.344201 -vt 0.655725 0.344372 -vt 0.656134 0.344371 -vt 0.649941 0.340885 -vt 0.655073 0.340475 -vt 0.655070 0.339797 -vt 0.654996 0.339724 -vt 0.671575 0.327451 -vt 0.671356 0.327477 -vt 0.671982 0.327480 -vt 0.644693 0.340192 -vt 0.644385 0.340134 -vt 0.644557 0.340283 -vt 0.644700 0.340269 -vt 0.647509 0.341099 -vt 0.649593 0.340718 -vt 0.646875 0.340713 -vt 0.646368 0.340876 -vt 0.650439 0.347369 -vt 0.650243 0.347332 -vt 0.648903 0.346602 -vt 0.648902 0.346797 -vt 0.650571 0.346464 -vt 0.653087 0.342196 -vt 0.653087 0.342119 -vt 0.652263 0.341965 -vt 0.653089 0.340724 -vt 0.649942 0.340719 -vt 0.652265 0.340960 -vt 0.652957 0.336625 -vt 0.652061 0.336628 -vt 0.652064 0.337317 -vt 0.653168 0.336809 -vt 0.656866 0.340895 -vt 0.655346 0.340806 -vt 0.653970 0.340890 -vt 0.671253 0.338233 -vt 0.671472 0.338233 -vt 0.671470 0.337557 -vt 0.652046 0.346806 -vt 0.665497 0.338599 -vt 0.665663 0.338599 -vt 0.665663 0.338404 -vt 0.647507 0.341802 -vt 0.653089 0.340802 -vt 0.669772 0.341914 -vt 0.669364 0.341701 -vt 0.670181 0.341704 -vt 0.650766 0.346427 -vt 0.652276 0.346675 -vt 0.652808 0.346599 -vt 0.652882 0.346653 -vt 0.666531 0.348446 -vt 0.666675 0.348446 -vt 0.666674 0.348692 -vt 0.671544 0.335436 -vt 0.671154 0.335438 -vt 0.671154 0.335634 -vt 0.671512 0.335403 -vt 0.671191 0.335404 -vt 0.653306 0.342119 -vt 0.653308 0.340802 -vt 0.653969 0.341610 -vt 0.653969 0.341314 -vt 0.657096 0.340687 -vt 0.657251 0.340835 -vt 0.657446 0.340872 -vt 0.666338 0.341178 -vt 0.666344 0.341136 -vt 0.666141 0.341132 -vt 0.671982 0.327709 -vt 0.671281 0.327706 -vt 0.671277 0.328466 -vt 0.671424 0.328610 -vt 0.671831 0.328612 -vt 0.671979 0.328470 -vt 0.645308 0.342022 -vt 0.646366 0.342024 -vt 0.645309 0.341798 -vt 0.654435 0.342121 -vt 0.654435 0.342199 -vt 0.654781 0.342199 -vt 0.671983 0.325746 -vt 0.671796 0.325132 -vt 0.671793 0.326094 -vt 0.671982 0.325897 -vt 0.672220 0.326096 -vt 0.671777 0.334214 -vt 0.671776 0.334827 -vt 0.672010 0.334827 -vt 0.653873 0.340803 -vt 0.653654 0.340803 -vt 0.655346 0.340729 -vt 0.655001 0.340728 -vt 0.655001 0.340805 -vt 0.653654 0.340725 -vt 0.653308 0.340725 -vt 0.671788 0.332239 -vt 0.671789 0.331098 -vt 0.671711 0.331172 -vt 0.652553 0.348753 -vt 0.652553 0.349106 -vt 0.652681 0.349106 -vt 0.672085 0.331172 -vt 0.672007 0.331098 -vt 0.672006 0.332240 -vt 0.656870 0.341615 -vt 0.668193 0.332067 -vt 0.669156 0.332072 -vt 0.669169 0.329174 -vt 0.671795 0.322170 -vt 0.671872 0.322170 -vt 0.671867 0.321028 -vt 0.672090 0.322169 -vt 0.672168 0.322168 -vt 0.672163 0.321101 -vt 0.668481 0.329171 -vt 0.668206 0.329389 -vt 0.666338 0.332059 -vt 0.666535 0.332060 -vt 0.666549 0.329162 -vt 0.652436 0.348631 -vt 0.652336 0.348753 -vt 0.652553 0.348753 -vt 0.671870 0.322396 -vt 0.671793 0.322471 -vt 0.671795 0.323538 -vt 0.670269 0.345604 -vt 0.670270 0.345453 -vt 0.670505 0.345454 -vt 0.672166 0.322470 -vt 0.672088 0.322396 -vt 0.672090 0.323538 -vt 0.645310 0.341095 -vt 0.667770 0.332065 -vt 0.668193 0.332067 -vt 0.668206 0.329389 -vt 0.666535 0.332060 -vt 0.666770 0.332061 -vt 0.666784 0.329163 -vt 0.671056 0.346443 -vt 0.670979 0.346517 -vt 0.670974 0.347585 -vt 0.670666 0.345804 -vt 0.670503 0.345803 -vt 0.670504 0.345605 -vt 0.671270 0.347586 -vt 0.671347 0.347586 -vt 0.671352 0.346519 -vt 0.667782 0.329387 -vt 0.667509 0.329166 -vt 0.667770 0.332065 -vt 0.666770 0.332061 -vt 0.666922 0.332062 -vt 0.666935 0.329164 -vt 0.671361 0.326336 -vt 0.671283 0.326410 -vt 0.671279 0.327477 -vt 0.667157 0.332063 -vt 0.666922 0.332062 -vt 0.667157 0.332063 -vt 0.667170 0.329165 -vt 0.657272 0.345497 -vt 0.657273 0.344680 -vt 0.657191 0.344600 -vt 0.671575 0.327451 -vt 0.671652 0.327452 -vt 0.671656 0.326411 -vt 0.651028 0.346127 -vt 0.650922 0.346278 -vt 0.655755 0.344598 -vt 0.655674 0.344677 -vt 0.655673 0.345494 -vt 0.645310 0.340874 -vt 0.654782 0.340805 -vt 0.653652 0.342120 -vt 0.653968 0.342037 -vt 0.653873 0.340726 -vt 0.654218 0.340804 -vt 0.654219 0.340726 -vt 0.654437 0.340804 -vt 0.654782 0.340727 -vt 0.672010 0.334979 -vt 0.671775 0.334978 -vt 0.671775 0.335176 -vt 0.672199 0.335177 -vt 0.672223 0.325134 -vt 0.653871 0.342120 -vt 0.655345 0.342200 -vt 0.655345 0.342122 -vt 0.655000 0.342122 -vt 0.653652 0.342197 -vt 0.656756 0.344189 -vt 0.656833 0.344189 -vt 0.656833 0.344045 -vt 0.671877 0.347120 -vt 0.671954 0.347119 -vt 0.671951 0.346443 -vt 0.671581 0.347121 -vt 0.671659 0.347121 -vt 0.671655 0.346445 -vt 0.656460 0.344190 -vt 0.656538 0.344190 -vt 0.656537 0.343971 -vt 0.671606 0.348023 -vt 0.671952 0.348024 -vt 0.671954 0.347348 -vt 0.667304 0.332303 -vt 0.667016 0.335199 -vt 0.666328 0.335196 -vt 0.671469 0.337246 -vt 0.671546 0.337245 -vt 0.671544 0.337101 -vt 0.671472 0.338233 -vt 0.671549 0.338232 -vt 0.671547 0.337557 -vt 0.667291 0.334981 -vt 0.669169 0.332311 -vt 0.669156 0.335209 -vt 0.668958 0.335208 -vt 0.652436 0.349228 -vt 0.652591 0.349228 -vt 0.652553 0.349106 -vt 0.672007 0.329730 -vt 0.672007 0.330872 -vt 0.672084 0.330872 -vt 0.669596 0.345601 -vt 0.669357 0.345600 -vt 0.669358 0.345449 -vt 0.671711 0.329804 -vt 0.671711 0.330872 -vt 0.671788 0.330872 -vt 0.667731 0.332305 -vt 0.667718 0.334983 -vt 0.667291 0.334981 -vt 0.668972 0.332310 -vt 0.668958 0.335208 -vt 0.668720 0.335207 -vt 0.672007 0.332466 -vt 0.672006 0.333607 -vt 0.672083 0.333608 -vt 0.669356 0.345798 -vt 0.669196 0.345797 -vt 0.671787 0.333607 -vt 0.671789 0.332465 -vt 0.671711 0.332540 -vt 0.667991 0.335204 -vt 0.667718 0.334983 -vt 0.667731 0.332305 -vt 0.668734 0.332309 -vt 0.668720 0.335207 -vt 0.668569 0.335206 -vt 0.654781 0.342122 -vt 0.656868 0.342041 -vt 0.672089 0.323764 -vt 0.672090 0.324906 -vt 0.672168 0.324906 -vt 0.668344 0.332307 -vt 0.668331 0.335205 -vt 0.668582 0.332308 -vt 0.668569 0.335206 -vt 0.668331 0.335205 -vt 0.656869 0.342187 -vt 0.655687 0.342123 -vt 0.653870 0.342198 -vt 0.654216 0.342198 -vt 0.671872 0.324906 -vt 0.671870 0.323765 -vt 0.671793 0.323839 -vt 0.654216 0.342121 -vt 0.671659 0.347121 -vt 0.671877 0.347120 -vt 0.671874 0.346444 -vt 0.644214 0.339986 -vt 0.644362 0.339846 -vt 0.644193 0.339756 -vt 0.644615 0.340046 -vt 0.644334 0.339545 -vt 0.644175 0.339559 -vt 0.644193 0.339756 -vt 0.661765 0.343274 -vt 0.661774 0.343476 -vt 0.661938 0.343468 -vt 0.644761 0.345897 -vt 0.644761 0.345737 -vt 0.644408 0.345736 -vt 0.661774 0.343476 -vt 0.661779 0.343575 -vt 0.661938 0.343468 -vt 0.661664 0.343724 -vt 0.661914 0.343724 -vt 0.666088 0.341451 -vt 0.652408 0.344048 -vt 0.653077 0.344280 -vt 0.652920 0.344378 -vt 0.644352 0.339741 -vt 0.665748 0.341793 -vt 0.665706 0.341738 -vt 0.663936 0.343063 -vt 0.644408 0.345896 -vt 0.644302 0.345896 -vt 0.644079 0.346130 -vt 0.644077 0.347117 -vt 0.645080 0.347119 -vt 0.645082 0.346132 -vt 0.667545 0.348453 -vt 0.667839 0.348708 -vt 0.667838 0.348452 -vt 0.671547 0.336174 -vt 0.671546 0.336029 -vt 0.671385 0.336030 -vt 0.645949 0.348760 -vt 0.645922 0.348760 -vt 0.645922 0.348928 -vt 0.645519 0.348898 -vt 0.645812 0.348899 -vt 0.645813 0.348759 -vt 0.645520 0.348758 -vt 0.645812 0.348899 -vt 0.645839 0.348927 -vt 0.645839 0.348759 -vt 0.665999 0.338618 -vt 0.666027 0.338619 -vt 0.666027 0.338335 -vt 0.645922 0.348760 -vt 0.645839 0.348759 -vt 0.645839 0.348927 -vt 0.671398 0.339640 -vt 0.671245 0.339741 -vt 0.671571 0.340011 -vt 0.671500 0.339488 -vt 0.671536 0.339308 -vt 0.671066 0.339776 -vt 0.669561 0.343988 -vt 0.669414 0.343844 -vt 0.670116 0.343846 -vt 0.669417 0.343083 -vt 0.670343 0.343087 -vt 0.670119 0.343086 -vt 0.670101 0.342715 -vt 0.670239 0.342384 -vt 0.670344 0.341862 -vt 0.670103 0.342052 -vt 0.669440 0.342050 -vt 0.669200 0.341858 -vt 0.669301 0.342381 -vt 0.669196 0.343083 -vt 0.669438 0.342713 -vt 0.669338 0.342202 -vt 0.669592 0.341949 -vt 0.670204 0.342205 -vt 0.670203 0.342563 -vt 0.669948 0.342816 -vt 0.669769 0.342851 -vt 0.669589 0.342815 -vt 0.669336 0.342560 -vt 0.669968 0.343989 -vt 0.669951 0.341950 -vt 0.665497 0.338404 -vt 0.665149 0.338488 -vt 0.665150 0.338600 -vt 0.664984 0.338600 -vt 0.665150 0.338600 -vt 0.665149 0.338488 -vt 0.665458 0.338243 -vt 0.665110 0.338327 -vt 0.665149 0.338488 -vt 0.670113 0.347891 -vt 0.670113 0.347813 -vt 0.669767 0.347812 -vt 0.671352 0.347895 -vt 0.671352 0.347817 -vt 0.670331 0.347814 -vt 0.669766 0.348137 -vt 0.669766 0.348214 -vt 0.670112 0.348215 -vt 0.669766 0.348137 -vt 0.644857 0.345897 -vt 0.666027 0.338619 -vt 0.666110 0.338571 -vt 0.666110 0.338335 -vt 0.666316 0.338619 -vt 0.666233 0.338571 -vt 0.666316 0.338647 -vt 0.666316 0.338619 -vt 0.666027 0.338619 -vt 0.646157 0.348929 -vt 0.646158 0.348622 -vt 0.671549 0.336766 -vt 0.671548 0.336570 -vt 0.671158 0.336572 -vt 0.671517 0.336801 -vt 0.671159 0.336768 -vt 0.668127 0.348451 -vt 0.666344 0.338619 -vt 0.666344 0.338363 -vt 0.666317 0.338336 -vt 0.666317 0.338336 -vt 0.666234 0.338336 -vt 0.646280 0.348929 -vt 0.646516 0.348930 -vt 0.646490 0.348762 -vt 0.646626 0.348903 -vt 0.646626 0.348763 -vt 0.646599 0.348763 -vt 0.646517 0.348762 -vt 0.646516 0.348930 -vt 0.646599 0.348931 -vt 0.646517 0.348762 -vt 0.646626 0.348903 -vt 0.646918 0.348904 -vt 0.646626 0.348763 -vt 0.646919 0.348764 -vt 0.665884 0.348220 -vt 0.666228 0.348025 -vt 0.666399 0.348073 -vt 0.667547 0.348906 -vt 0.666529 0.348691 -vt 0.666756 0.348819 -vt 0.669247 0.347752 -vt 0.669249 0.348205 -vt 0.668969 0.347962 -vt 0.668904 0.348013 -vt 0.668734 0.348063 -vt 0.666446 0.348817 -vt 0.669107 0.347753 -vt 0.651009 0.348764 -vt 0.651047 0.348947 -vt 0.651082 0.348764 -vt 0.650945 0.349104 -vt 0.650893 0.349053 -vt 0.651150 0.348791 -vt 0.651202 0.348842 -vt 0.651013 0.349131 -vt 0.651231 0.348909 -vt 0.651231 0.348982 -vt 0.651086 0.349131 -vt 0.651204 0.349050 -vt 0.651153 0.349102 -vt 0.650942 0.348793 -vt 0.650864 0.348986 -vt 0.650891 0.348845 -vt 0.650864 0.348913 -vt 0.672001 0.336533 -vt 0.671992 0.338283 -vt 0.672197 0.338284 -vt 0.672049 0.338339 -vt 0.672140 0.338340 -vt 0.665496 0.328592 -vt 0.665496 0.328721 -vt 0.665700 0.328722 -vt 0.649982 0.347032 -vt 0.671351 0.348142 -vt 0.671352 0.347895 -vt 0.655858 0.344144 -vt 0.654727 0.340476 -vt 0.654996 0.339627 -vt 0.665497 0.338404 -vt 0.671545 0.335632 -vt 0.672221 0.325898 -vt 0.672200 0.334214 -vt 0.671711 0.332239 -vt 0.652681 0.348753 -vt 0.672084 0.332240 -vt 0.656871 0.341319 -vt 0.671790 0.321103 -vt 0.672085 0.321027 -vt 0.666351 0.329161 -vt 0.652591 0.348631 -vt 0.671872 0.323538 -vt 0.672168 0.323538 -vt 0.667782 0.329387 -vt 0.666549 0.329162 -vt 0.671051 0.347585 -vt 0.671275 0.346444 -vt 0.666784 0.329163 -vt 0.671356 0.327477 -vt 0.667170 0.329165 -vt 0.666935 0.329164 -vt 0.657189 0.345576 -vt 0.671579 0.326337 -vt 0.655754 0.345574 -vt 0.654437 0.340727 -vt 0.672221 0.325747 -vt 0.654999 0.342199 -vt 0.653306 0.342197 -vt 0.656755 0.343970 -vt 0.671874 0.346444 -vt 0.671578 0.346445 -vt 0.656460 0.344046 -vt 0.671609 0.347347 -vt 0.666342 0.332298 -vt 0.671466 0.337028 -vt 0.671470 0.337557 -vt 0.646872 0.342185 -vt 0.668972 0.332310 -vt 0.652336 0.349106 -vt 0.672085 0.329805 -vt 0.669596 0.345450 -vt 0.671789 0.329730 -vt 0.667304 0.332303 -vt 0.668734 0.332309 -vt 0.672085 0.332540 -vt 0.671710 0.333607 -vt 0.668582 0.332308 -vt 0.672166 0.323838 -vt 0.668344 0.332307 -vt 0.655687 0.342193 -vt 0.671795 0.324906 -vt 0.652075 0.340487 -vt 0.653379 0.340482 -vt 0.652073 0.339798 -vt 0.671655 0.346445 -vt 0.644352 0.339741 -vt 0.661929 0.343266 -vt 0.666317 0.341361 -vt 0.663978 0.343119 -vt 0.671386 0.336174 -vt 0.645813 0.348759 -vt 0.665999 0.338362 -vt 0.645922 0.348928 -vt 0.665497 0.338599 -vt 0.664984 0.338489 -vt 0.665497 0.338404 -vt 0.669767 0.347890 -vt 0.670331 0.347891 -vt 0.670112 0.348138 -vt 0.669767 0.347890 -vt 0.666027 0.338335 -vt 0.666027 0.338646 -vt 0.671197 0.336802 -vt 0.666316 0.338619 -vt 0.646282 0.348623 -vt 0.646599 0.348931 -vt 0.646599 0.348763 -vt 0.672205 0.336534 -vt 0.665701 0.328592 -vt 0.645130 0.340230 -vt 0.645115 0.340070 -vt 0.644939 0.340169 -vt 0.644925 0.340018 -vt 0.653589 0.346722 -vt 0.653589 0.346671 -vt 0.654138 0.346662 -vt 0.665807 0.340688 -vt 0.656870 0.339398 -vt 0.655850 0.339403 -vt 0.655851 0.339547 -vt 0.669550 0.348136 -vt 0.669549 0.347891 -vt 0.669475 0.347964 -vt 0.672007 0.330872 -vt 0.672007 0.329730 -vt 0.671789 0.329730 -vt 0.654722 0.339409 -vt 0.671579 0.326337 -vt 0.671361 0.326336 -vt 0.653268 0.346667 -vt 0.645840 0.346789 -vt 0.648555 0.346796 -vt 0.648555 0.346685 -vt 0.653368 0.337690 -vt 0.653364 0.336650 -vt 0.645841 0.346452 -vt 0.655971 0.340807 -vt 0.656866 0.340731 -vt 0.655971 0.340730 -vt 0.671250 0.337251 -vt 0.671173 0.337252 -vt 0.671174 0.337355 -vt 0.671175 0.337452 -vt 0.671176 0.337555 -vt 0.671254 0.337557 -vt 0.670598 0.339307 -vt 0.670569 0.339021 -vt 0.670567 0.340009 -vt 0.668033 0.348210 -vt 0.668032 0.348119 -vt 0.671272 0.335785 -vt 0.671385 0.336030 -vt 0.671546 0.336029 -vt 0.671545 0.335632 -vt 0.671154 0.335634 -vt 0.654284 0.346628 -vt 0.654463 0.346686 -vt 0.654139 0.346714 -vt 0.343293 0.494352 -vt 0.403663 0.495033 -vt 0.424011 0.491967 -vt 0.665656 0.340670 -vt 0.665851 0.340483 -vt 0.665756 0.340431 -vt 0.664125 0.338873 -vt 0.663934 0.339073 -vt 0.665576 0.340641 -vt 0.654003 0.344111 -vt 0.654328 0.344094 -vt 0.654215 0.344297 -vt 0.405218 0.475819 -vt 0.311194 0.474745 -vt 0.651779 0.345198 -vt 0.651935 0.345050 -vt 0.652048 0.344354 -vt 0.651583 0.345233 -vt 0.662656 0.340850 -vt 0.659345 0.340602 -vt 0.659296 0.340678 -vt 0.424375 0.496265 -vt 0.345807 0.496601 -vt 0.345855 0.507785 -vt 0.646508 0.344057 -vt 0.649684 0.344093 -vt 0.649669 0.344043 -vt 0.669763 0.344216 -vt 0.669762 0.344374 -vt 0.669531 0.344215 -vt 0.665873 0.340511 -vt 0.669360 0.345109 -vt 0.665821 0.341739 -vt 0.672006 0.333607 -vt 0.672007 0.332466 -vt 0.671789 0.332465 -vt 0.654433 0.338957 -vt 0.656867 0.338944 -vt 0.656669 0.338713 -vt 0.656667 0.338361 -vt 0.654429 0.338141 -vt 0.656864 0.338360 -vt 0.656863 0.338096 -vt 0.653400 0.344098 -vt 0.653390 0.344296 -vt 0.652050 0.344171 -vt 0.649802 0.344145 -vt 0.656863 0.337912 -vt 0.654402 0.338030 -vt 0.656866 0.338712 -vt 0.655067 0.339300 -vt 0.655286 0.339299 -vt 0.654407 0.339067 -vt 0.655849 0.339296 -vt 0.656869 0.339171 -vt 0.655631 0.339297 -vt 0.652632 0.338147 -vt 0.652938 0.338146 -vt 0.652967 0.338035 -vt 0.662503 0.338903 -vt 0.662477 0.339733 -vt 0.662538 0.339781 -vt 0.411117 0.477267 -vt 0.411370 0.492239 -vt 0.424354 0.492076 -vt 0.655278 0.336619 -vt 0.655279 0.337686 -vt 0.655624 0.337686 -vt 0.662902 0.338878 -vt 0.662914 0.339780 -vt 0.662981 0.339739 -vt 0.645309 0.346450 -vt 0.645308 0.346788 -vt 0.666773 0.346076 -vt 0.666773 0.346282 -vt 0.668969 0.346283 -vt 0.652633 0.338379 -vt 0.652788 0.338378 -vt 0.302821 0.490584 -vt 0.410043 0.495106 -vt 0.652336 0.349106 -vt 0.652553 0.349106 -vt 0.652553 0.348753 -vt 0.661163 0.348102 -vt 0.661163 0.347939 -vt 0.655926 0.347949 -vt 0.424262 0.469977 -vt 0.405287 0.469761 -vt 0.671872 0.323538 -vt 0.672090 0.323538 -vt 0.672088 0.322396 -vt 0.661578 0.348101 -vt 0.661577 0.347938 -vt 0.661362 0.347939 -vt 0.661362 0.348102 -vt 0.662153 0.348100 -vt 0.662310 0.347937 -vt 0.661761 0.347938 -vt 0.670672 0.344629 -vt 0.670508 0.344764 -vt 0.670115 0.344376 -vt 0.669789 0.344760 -vt 0.652789 0.338731 -vt 0.652941 0.338962 -vt 0.670084 0.344762 -vt 0.670082 0.345113 -vt 0.670506 0.345115 -vt 0.670670 0.345116 -vt 0.652372 0.337694 -vt 0.670348 0.344219 -vt 0.655279 0.337793 -vt 0.656863 0.337685 -vt 0.655843 0.337686 -vt 0.655843 0.337793 -vt 0.655755 0.344598 -vt 0.655754 0.345574 -vt 0.657189 0.345576 -vt 0.653587 0.337690 -vt 0.653932 0.337689 -vt 0.653928 0.336621 -vt 0.654151 0.337688 -vt 0.654496 0.337687 -vt 0.654493 0.336620 -vt 0.671872 0.322170 -vt 0.672090 0.322169 -vt 0.672085 0.321027 -vt 0.652049 0.345739 -vt 0.651029 0.345736 -vt 0.662560 0.338873 -vt 0.666774 0.345670 -vt 0.668969 0.346078 -vt 0.666773 0.347043 -vt 0.668969 0.347044 -vt 0.411093 0.495895 -vt 0.423965 0.496042 -vt 0.646451 0.344107 -vt 0.661762 0.348101 -vt 0.671788 0.332239 -vt 0.672006 0.332240 -vt 0.672007 0.331098 -vt 0.670079 0.345801 -vt 0.669784 0.345800 -vt 0.669787 0.345111 -vt 0.670116 0.344218 -vt 0.671051 0.347585 -vt 0.671270 0.347586 -vt 0.671275 0.346444 -vt 0.654713 0.336619 -vt 0.654715 0.337686 -vt 0.655060 0.337686 -vt 0.655624 0.337793 -vt 0.653933 0.337796 -vt 0.653587 0.337797 -vt 0.653369 0.337798 -vt 0.654151 0.337795 -vt 0.655060 0.337793 -vt 0.654715 0.337794 -vt 0.656181 0.344310 -vt 0.655958 0.344139 -vt 0.655911 0.344201 -vt 0.652635 0.338964 -vt 0.652378 0.339418 -vt 0.652971 0.339073 -vt 0.655170 0.347691 -vt 0.655169 0.347353 -vt 0.653593 0.339306 -vt 0.653939 0.339305 -vt 0.653375 0.339415 -vt 0.653374 0.339307 -vt 0.655631 0.339404 -vt 0.655286 0.339406 -vt 0.655287 0.339550 -vt 0.655701 0.347689 -vt 0.668970 0.345671 -vt 0.668970 0.345465 -vt 0.652634 0.338732 -vt 0.403381 0.492993 -vt 0.410153 0.492980 -vt 0.671176 0.338233 -vt 0.671253 0.338233 -vt 0.671248 0.337030 -vt 0.645543 0.340191 -vt 0.650254 0.339752 -vt 0.650742 0.339545 -vt 0.405500 0.512252 -vt 0.405526 0.518299 -vt 0.655068 0.339554 -vt 0.655068 0.339408 -vt 0.645344 0.340210 -vt 0.645329 0.340050 -vt 0.645528 0.340032 -vt 0.653939 0.339413 -vt 0.669362 0.344758 -vt 0.669202 0.344621 -vt 0.654722 0.339302 -vt 0.669200 0.345108 -vt 0.653593 0.339414 -vt 0.653597 0.340482 -vt 0.653943 0.340480 -vt 0.654158 0.339412 -vt 0.654162 0.340479 -vt 0.654508 0.340478 -vt 0.654157 0.339304 -vt 0.654504 0.339410 -vt 0.654503 0.339303 -vt 0.666774 0.345464 -vt 0.668970 0.344705 -vt 0.672090 0.324906 -vt 0.672089 0.323764 -vt 0.671870 0.323765 -vt 0.659341 0.339758 -vt 0.659342 0.339807 -vt 0.644946 0.340247 -vt 0.656755 0.343970 -vt 0.656537 0.343971 -vt 0.656538 0.344190 -vt 0.652042 0.344901 -vt 0.645109 0.340001 -vt 0.665779 0.341683 -vt 0.665706 0.341738 -vt 0.661666 0.343279 -vt 0.661676 0.343481 -vt 0.661774 0.343476 -vt 0.653725 0.344114 -vt 0.653832 0.344119 -vt 0.653822 0.344318 -vt 0.654014 0.344308 -vt 0.654333 0.346558 -vt 0.655311 0.344043 -vt 0.655447 0.346648 -vt 0.661438 0.342326 -vt 0.661436 0.342143 -vt 0.657096 0.342143 -vt 0.661436 0.342509 -vt 0.657096 0.342326 -vt 0.661430 0.342692 -vt 0.657096 0.342509 -vt 0.661427 0.342875 -vt 0.657096 0.342692 -vt 0.666250 0.348901 -vt 0.666250 0.348816 -vt 0.657096 0.342875 -vt 0.657096 0.343058 -vt 0.661427 0.343058 -vt 0.657096 0.343240 -vt 0.661427 0.343240 -vt 0.666203 0.348900 -vt 0.666204 0.348816 -vt 0.665882 0.348899 -vt 0.665883 0.348814 -vt 0.661427 0.343423 -vt 0.657096 0.343423 -vt 0.657096 0.343606 -vt 0.661427 0.343606 -vt 0.657096 0.343789 -vt 0.661427 0.343789 -vt 0.657096 0.343972 -vt 0.661427 0.343972 -vt 0.657096 0.344155 -vt 0.661427 0.344155 -vt 0.657096 0.344338 -vt 0.661427 0.344338 -vt 0.657096 0.341411 -vt 0.657096 0.341594 -vt 0.661427 0.341594 -vt 0.657096 0.341777 -vt 0.661430 0.341777 -vt 0.649012 0.349171 -vt 0.649012 0.349086 -vt 0.648961 0.349086 -vt 0.661433 0.341960 -vt 0.657096 0.341960 -vt 0.649208 0.349086 -vt 0.649714 0.349170 -vt 0.649518 0.349086 -vt 0.649435 0.348914 -vt 0.649290 0.348914 -vt 0.649435 0.348644 -vt 0.649290 0.348644 -vt 0.667918 0.348211 -vt 0.667216 0.348214 -vt 0.667216 0.348127 -vt 0.667101 0.348214 -vt 0.667100 0.348123 -vt 0.646282 0.348623 -vt 0.646158 0.348622 -vt 0.646157 0.348929 -vt 0.656458 0.342453 -vt 0.656457 0.342704 -vt 0.656541 0.342453 -vt 0.656833 0.342705 -vt 0.656833 0.342454 -vt 0.656832 0.342788 -vt 0.655958 0.342785 -vt 0.655957 0.342962 -vt 0.656832 0.342965 -vt 0.656041 0.343742 -vt 0.656743 0.343745 -vt 0.656829 0.343669 -vt 0.655955 0.343666 -vt 0.653267 0.346719 -vt 0.670795 0.338787 -vt 0.670736 0.338975 -vt 0.671068 0.338839 -vt 0.671350 0.338788 -vt 0.671399 0.338977 -vt 0.671573 0.339023 -vt 0.670633 0.339486 -vt 0.670735 0.339638 -vt 0.670887 0.339740 -vt 0.671500 0.339129 -vt 0.671247 0.338875 -vt 0.670888 0.338874 -vt 0.670634 0.339127 -vt 0.671253 0.337451 -vt 0.671248 0.337030 -vt 0.671250 0.337251 -vt 0.671469 0.337246 -vt 0.656541 0.342427 -vt 0.656458 0.342426 -vt 0.671274 0.336420 -vt 0.671548 0.336419 -vt 0.671547 0.336174 -vt 0.671548 0.336570 -vt 0.666952 0.348820 -vt 0.666952 0.348904 -vt 0.666998 0.348905 -vt 0.667319 0.348906 -vt 0.666998 0.348820 -vt 0.649765 0.349170 -vt 0.649765 0.349086 -vt 0.649714 0.349086 -vt 0.656334 0.342703 -vt 0.655958 0.342702 -vt 0.667918 0.348124 -vt 0.656252 0.342426 -vt 0.656251 0.342452 -vt 0.656334 0.342453 -vt 0.654496 0.337794 -vt 0.651009 0.348764 -vt 0.651082 0.348764 -vt 0.651103 0.348667 -vt 0.651150 0.348791 -vt 0.651206 0.348710 -vt 0.651013 0.349131 -vt 0.650945 0.349104 -vt 0.650889 0.349185 -vt 0.651202 0.348842 -vt 0.651285 0.348789 -vt 0.651231 0.348909 -vt 0.651328 0.348892 -vt 0.651086 0.349131 -vt 0.650992 0.349228 -vt 0.651231 0.348982 -vt 0.651328 0.349003 -vt 0.651204 0.349050 -vt 0.651285 0.349106 -vt 0.651153 0.349102 -vt 0.651103 0.349228 -vt 0.651206 0.349185 -vt 0.650864 0.348986 -vt 0.650864 0.348913 -vt 0.650767 0.348892 -vt 0.650891 0.348845 -vt 0.650942 0.348793 -vt 0.650889 0.348710 -vt 0.650893 0.349053 -vt 0.650767 0.349003 -vt 0.650810 0.349106 -vt 0.650992 0.348667 -vt 0.650810 0.348789 -vt 0.663495 0.328582 -vt 0.663495 0.328711 -vt 0.663575 0.328712 -vt 0.663666 0.328712 -vt 0.663667 0.328583 -vt 0.663575 0.328583 -vt 0.663746 0.328583 -vt 0.663746 0.328713 -vt 0.665496 0.328721 -vt 0.661745 0.328574 -vt 0.661745 0.328703 -vt 0.656871 0.339542 -vt 0.669475 0.348061 -vt 0.671788 0.330872 -vt 0.671254 0.337557 -vt 0.671252 0.337354 -vt 0.671545 0.335784 -vt 0.671787 0.333607 -vt 0.424233 0.477149 -vt 0.655624 0.336619 -vt 0.662967 0.338908 -vt 0.652336 0.348753 -vt 0.656433 0.348111 -vt 0.671870 0.322396 -vt 0.657191 0.344600 -vt 0.653583 0.336623 -vt 0.654148 0.336621 -vt 0.671867 0.321028 -vt 0.671789 0.331098 -vt 0.671056 0.346443 -vt 0.655059 0.336619 -vt 0.656134 0.344371 -vt 0.655632 0.339548 -vt 0.655699 0.347352 -vt 0.659343 0.339981 -vt 0.671171 0.337105 -vt 0.424469 0.518218 -vt 0.666774 0.344703 -vt 0.671872 0.324906 -vt 0.656756 0.344189 -vt 0.665748 0.341793 -vt 0.661765 0.343274 -vt 0.653715 0.344312 -vt 0.659330 0.338958 -vt 0.661427 0.341411 -vt 0.648961 0.349171 -vt 0.646280 0.348929 -vt 0.671466 0.337028 -vt 0.671386 0.336174 -vt 0.671158 0.336572 -vt 0.667319 0.348822 -vt 0.656334 0.342426 -vt 0.655959 0.342451 -vt 0.665496 0.328592 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 1.0000 -0.0001 -vn -1.0000 0.0000 0.0005 -vn 0.0000 -0.7793 -0.6266 -vn 0.0000 -1.0000 0.0000 -vn 1.0000 0.0001 -0.0001 -vn 1.0000 -0.0005 -0.0001 -vn 0.0000 0.0000 1.0000 -vn 0.0000 1.0000 0.0000 -vn 0.0000 0.2954 -0.9554 -vn 1.0000 0.0000 -0.0001 -vn -1.0000 0.0000 -0.0001 -vn 0.0000 -1.0000 -0.0001 -vn -1.0000 0.0001 -0.0001 -vn 0.0000 0.3579 0.9338 -vn 0.0000 0.3242 -0.9460 -vn 0.0000 -0.9724 -0.2331 -vn -1.0000 0.0000 0.0002 -vn 0.0000 0.6488 0.7610 -vn -0.0000 0.6112 0.7915 -vn -0.0000 0.3594 0.9332 -vn -0.0000 0.3979 0.9174 -vn 0.3944 -0.9189 0.0000 -vn -0.2584 -0.9660 0.0000 -vn -0.0544 0.0347 -0.9979 -vn -0.9202 0.3915 0.0000 -vn -0.9202 0.3914 0.0000 -vn -1.0000 -0.0000 -0.0023 -vn -1.0000 -0.0001 -0.0070 -vn -0.7948 0.6069 -0.0000 -vn -0.8837 0.4681 0.0000 -vn -0.9815 0.1914 -0.0000 -vn 0.9202 0.3914 0.0000 -vn 0.7785 0.6277 -0.0000 -vn 0.8716 -0.4902 0.0001 -vn 0.9946 0.0000 0.1036 -vn 0.9501 0.3120 -0.0000 -vn 0.9922 0.0000 0.1244 -vn 0.0000 -0.9849 0.1730 -vn -0.0000 -0.8848 0.4659 -vn 0.0000 -0.5054 0.8629 -vn -0.0000 -0.2527 0.9675 -vn 0.0000 -0.3827 0.9239 -vn -0.0001 0.5055 0.8628 -vn -0.0151 0.3827 0.9237 -vn -0.0075 0.3820 0.9241 -vn -0.0098 -0.0134 -0.9999 -vn -0.0135 0.0030 -0.9999 -vn -0.0078 -0.0088 -0.9999 -vn -0.9112 -0.0000 0.4119 -vn 0.9588 0.2841 -0.0000 -vn 0.8386 0.5448 0.0000 -vn -0.8061 -0.3082 -0.5053 -vn -0.8143 -0.5805 -0.0013 -vn -0.5167 -0.8561 0.0000 -vn 0.6939 0.7201 0.0000 -vn 0.4341 0.8971 0.0825 -vn 0.9006 0.4347 0.0001 -vn -0.6892 0.1308 -0.7126 -vn -0.9536 0.0970 -0.2850 -vn -0.9956 0.0942 -0.0000 -vn -0.8233 -0.5676 0.0006 -vn -0.9600 -0.2555 -0.1143 -vn -0.3908 -0.9205 0.0012 -vn -0.9277 -0.3732 0.0009 -vn -0.8233 -0.5676 0.0008 -vn 0.8835 0.4684 0.0000 -vn -0.9987 0.0005 0.0512 -vn -1.0000 0.0021 0.0000 -vn -0.9199 0.3923 -0.0002 -vn -0.8535 0.5212 0.0001 -vn 0.1239 0.9740 0.1894 -vn 0.4932 0.8699 -0.0000 -vn -0.0000 0.9039 -0.4278 -vn 0.0000 0.8020 -0.5974 -vn -0.2691 0.9151 -0.3004 -vn -0.1559 0.0685 -0.9854 -vn 0.0000 0.2196 -0.9756 -vn 0.0000 0.2883 -0.9575 -vn -0.8561 0.5167 0.0000 -vn -0.2979 0.9546 0.0000 -vn -0.2469 0.9690 0.0000 -vn 0.0544 0.9985 0.0027 -vn 0.3979 0.9174 0.0029 -vn 0.1126 0.9936 0.0000 -vn 0.4234 0.9059 0.0029 -vn 0.9695 -0.2451 0.0000 -vn 0.8716 -0.4902 0.0000 -vn 0.4233 0.9060 0.0029 -vn 0.6497 0.7602 -0.0000 -vn -0.8837 0.4680 0.0000 -vn -0.6017 0.7987 -0.0000 -vn -0.8561 0.5168 0.0000 -vn -0.6934 0.7206 0.0000 -vn -0.8186 0.5743 0.0000 -vn 0.2692 0.9150 -0.3004 -vn 0.1831 0.9831 0.0000 -vn 0.5496 0.8354 0.0000 -vn -0.2622 0.9451 0.1950 -vn -0.4802 0.8651 0.1452 -vn 0.3027 0.9480 -0.0986 -vn -0.3083 0.9299 -0.2006 -vn -0.2470 0.9690 0.0000 -vn 0.3052 0.9313 -0.1990 -vn -0.3051 0.9470 -0.1000 -vn 0.9878 0.0000 0.1556 -vn 0.4972 -0.8676 0.0000 -vn 0.9665 -0.2568 0.0000 -vn 0.8580 -0.5136 0.0000 -vn 0.0000 0.9980 0.0635 -vn 0.0000 0.9919 0.1269 -vn 0.8837 0.4681 0.0000 -vn 0.0000 0.6730 0.7397 -vn 0.0000 0.6239 0.7815 -vn 0.0000 0.8374 0.5466 -vn 0.0000 0.9284 0.3717 -vn 0.0000 0.1989 0.9800 -vn 0.0033 0.6337 -0.7736 -vn 0.0022 0.6323 -0.7747 -vn -0.0001 0.7210 -0.6930 -vn -0.0000 0.6324 -0.7746 -vn -0.2468 0.9691 0.0000 -vn 0.0000 0.6332 -0.7740 -vn -0.0001 0.4392 -0.8984 -vn 0.0028 0.4406 -0.8977 -vn 0.8561 0.5169 -0.0001 -vn 0.2691 0.9151 -0.3004 -vn 0.7948 0.6069 -0.0000 -vn 0.8561 0.5168 0.0000 -vn 0.9660 0.2584 0.0000 -vn 0.8561 0.5168 -0.0001 -vn -0.3763 -0.9265 0.0000 -vn 0.2486 -0.9686 0.0000 -vn 0.3737 0.9275 -0.0000 -vn -0.0001 0.2196 -0.9756 -vn 0.8837 0.4680 0.0000 -vn 0.7785 0.6276 -0.0000 -vn 0.9202 0.3915 0.0000 -vn 0.0000 -0.7520 0.6592 -vn -0.8561 0.5169 -0.0001 -vn -0.6262 0.7797 -0.0000 -vn -0.9883 0.0000 0.1528 -vn -0.9881 0.0006 0.1536 -vn -0.8580 -0.5136 -0.0000 -vn -0.0139 -0.0016 0.9999 -vn 0.0000 -0.0032 1.0000 -vn -0.9881 0.0014 0.1536 -vn -0.0000 0.9284 0.3716 -vn -0.0000 0.8374 0.5465 -vn -0.0022 0.6324 -0.7746 -vn -0.0027 0.6339 -0.7734 -vn -0.0015 0.4406 -0.8977 -vn -0.9660 0.2584 -0.0000 -vn -0.9665 -0.2568 -0.0000 -vn -0.3839 0.9234 0.0000 -vn -0.6994 0.7147 0.0000 -vn 0.0000 0.5725 0.8199 -vn 0.0000 0.5724 0.8200 -vn 0.0000 0.2878 -0.9577 -vn 0.0000 0.5513 -0.8343 -vn -0.3908 -0.9205 0.0007 -vn -0.3902 -0.9207 0.0000 -vn -0.9601 -0.2554 -0.1143 -vn -0.9472 -0.3207 0.0000 -vn -0.9978 0.0661 -0.0000 -vn -0.9978 -0.0662 0.0000 -vn -0.7523 -0.6588 -0.0000 -vn -0.8965 -0.4430 -0.0000 -vn -0.4430 -0.8965 0.0000 -vn -0.6588 -0.7523 0.0000 -vn -0.0661 -0.9978 0.0000 -vn -0.3207 -0.9472 0.0000 -vn 0.1802 -0.0001 0.9836 -vn 0.4855 -0.0001 0.8742 -vn 0.0662 -0.9978 0.0000 -vn 0.3827 -0.9239 0.0000 -vn 0.3828 -0.9238 0.0000 -vn 0.7071 -0.7071 0.0000 -vn 0.8510 -0.0001 0.5252 -vn 0.9649 0.0000 0.2626 -vn 0.9715 0.0000 -0.2369 -vn 0.8806 -0.0000 -0.4739 -vn 0.8965 -0.4430 -0.0000 -vn 0.9472 -0.3207 0.0000 -vn 0.9978 0.0662 -0.0000 -vn 0.9978 -0.0662 0.0000 -vn 0.8965 0.4430 -0.0000 -vn 0.9472 0.3207 0.0000 -vn 0.6588 0.7523 0.0000 -vn 0.7523 0.6588 -0.0000 -vn 0.3207 0.9472 0.0000 -vn 0.4430 0.8965 0.0000 -vn -0.0662 0.9978 0.0000 -vn 0.0661 0.9978 0.0000 -vn -0.0661 0.9978 0.0000 -vn -0.3827 0.9239 0.0000 -vn -0.3828 0.9238 0.0000 -vn -0.7071 0.7071 0.0000 -vn 0.4068 0.0000 -0.9135 -vn -0.8965 0.4430 0.0000 -vn -0.9472 0.3207 0.0000 -vn 0.0000 0.2895 -0.9572 -vn -0.3241 -0.0000 -0.9460 -vn -0.0000 0.2399 -0.9708 -vn 0.0000 0.5962 -0.8028 -vn -0.0000 0.5087 -0.8609 -vn 0.0000 0.4166 -0.9091 -vn -0.2336 0.0000 0.9723 -vn 0.3531 0.0000 0.9356 -vn 0.9112 -0.0000 0.4119 -vn 0.0000 0.8520 0.5235 -vn -0.0002 0.7892 0.6142 -vn 0.0000 0.1917 0.9814 -vn -0.0000 0.7892 0.6142 -vn 0.0000 0.4287 0.9035 -vn 0.0000 0.6411 0.7674 -vn 0.0000 0.5534 0.8329 -vn 0.0000 0.8920 0.4521 -vn 0.0000 0.8459 0.5334 -vn 0.0000 0.9771 0.2126 -vn 0.0000 0.9896 0.1439 -vn 0.0000 0.9979 0.0648 -vn 0.0000 0.9977 0.0682 -vn 0.0000 0.9974 0.0716 -vn 0.9695 -0.2451 -0.0001 -vn -0.0111 0.0273 -0.9996 -vn -0.0194 0.0258 -0.9995 -vn -0.0030 0.0101 -0.9999 -vn 0.0000 0.0008 -1.0000 -vn -0.0005 0.0005 -1.0000 -vn -0.0009 -0.0000 -1.0000 -vn -0.0148 -0.0140 -0.9998 -vn -0.0127 -0.0131 -0.9998 -vn -0.0055 -0.0061 -1.0000 -vn -0.0004 -0.0004 -1.0000 -vn 0.0004 0.0004 -1.0000 -vn -0.0138 0.0348 -0.9993 -vn -0.0152 -0.0072 -0.9999 -vn 0.0000 0.2527 0.9675 -vn -0.9588 0.2841 -0.0000 -vn -0.8386 0.5448 0.0000 -vn -0.4855 0.0000 0.8742 -vn -0.2428 0.0000 0.9701 -vn -0.8510 0.0000 0.5252 -vn -0.9715 0.0001 -0.2369 -vn -0.9649 0.0000 0.2626 -vn -0.9715 0.0000 -0.2370 -vn -0.8806 -0.0000 -0.4739 -vn -0.4068 0.0000 -0.9135 -vn 0.0000 0.8521 0.5234 -vn -0.4670 -0.0000 0.8842 -vn -0.6588 0.7523 0.0000 -vn -0.7523 0.6588 0.0000 -vn -0.3207 0.9472 0.0000 -vn -0.4430 0.8965 0.0000 -vn 0.6588 -0.7523 0.0000 -vn 0.3207 -0.9472 0.0000 -vn 0.4430 -0.8965 0.0000 -vn 0.7523 -0.6588 0.0000 -vn 0.9978 -0.0661 0.0000 -vn 0.9978 0.0661 0.0000 -vn -0.9978 -0.0661 0.0000 -vn 0.0661 -0.9978 0.0000 -vn -0.0001 -0.8629 -0.5054 -vn -0.0000 -0.9675 -0.2527 -vn -0.0001 -0.5054 -0.8629 -vn -0.0000 0.2527 -0.9675 -vn 0.0000 0.5054 -0.8629 -vn 0.0000 -0.2527 -0.9675 -vn 0.0000 0.9675 -0.2527 -vn 0.0001 0.8629 -0.5054 -vn -1.0000 0.0000 -0.0068 -vn -1.0000 0.0000 -0.0028 -vn -0.0000 -0.3824 0.9240 -vn 0.3738 0.9275 -0.0000 -vn 0.0001 0.7210 -0.6930 -vn 0.7948 0.6069 -0.0002 -vn -0.6262 0.7797 -0.0001 -vn 0.0000 -0.9849 0.1731 -vn -0.9987 0.0000 0.0512 -vn -1.0000 0.0026 0.0000 -vn 0.0662 0.9978 -0.0000 -vn 0.9715 0.0000 -0.2370 -usemtl Material.001 -s off -f 1875/1928/926 1876/1929/926 1877/1930/926 -f 1878/1931/927 1879/1932/927 1880/1933/927 -f 1881/1934/928 1882/1935/928 1883/1936/928 -f 1884/1937/928 1885/1938/928 1886/1939/928 -f 1887/1940/929 1888/1941/929 1889/1942/929 -f 1881/1934/930 1890/1943/928 1891/1944/930 -f 1892/1945/931 1893/1946/931 1894/1947/931 -f 1895/1948/932 1896/1949/932 1897/1950/932 -f 1898/1951/933 1899/1952/933 1900/1953/933 -f 1895/1948/932 1897/1950/932 1901/1954/932 -f 1902/1955/928 1903/1956/928 1904/1957/928 -f 1905/1958/934 1906/1959/934 1907/1960/934 -f 1908/1961/935 1909/1962/935 1910/1963/935 -f 1910/1963/935 1911/1964/935 1908/1961/935 -f 1912/1965/932 1895/1948/932 1913/1966/932 -f 1914/1967/932 1915/1968/932 1912/1965/932 -f 1885/1938/928 1916/1969/928 1917/1970/928 -f 1918/1971/926 1919/1972/926 1920/1973/926 -f 1921/1974/932 1922/1975/932 1923/1976/932 -f 1924/1977/932 1925/1978/932 1926/1979/932 -f 1914/1967/932 1912/1965/932 1913/1966/932 -f 1927/1980/926 1928/1981/926 1929/1982/926 -f 1929/1982/926 1930/1983/926 1927/1980/926 -f 1931/1984/932 1932/1985/932 1933/1986/932 -f 1934/1987/928 1935/1988/928 1936/1989/928 -f 1919/1972/926 1937/1990/926 1920/1973/926 -f 1938/1991/935 1939/1992/935 1940/1993/935 -f 1925/1978/932 1901/1954/932 1926/1979/932 -f 1897/1950/932 1926/1979/932 1901/1954/932 -f 1912/1965/932 1941/1994/932 1895/1948/932 -f 1926/1979/932 1942/1995/932 1924/1977/932 -f 1943/1996/935 1944/1997/935 1945/1998/935 -f 1946/1999/926 1920/1973/926 1937/1990/926 -f 1947/2000/926 1948/2001/926 1949/2002/926 -f 1950/2003/935 1951/2004/935 1952/2005/935 -f 1953/2006/936 1954/2007/936 1955/2008/936 -f 1956/2009/936 1957/2010/936 1954/2007/936 -f 1926/1979/932 1923/1976/932 1922/1975/932 -f 1958/2011/932 1959/2012/932 1942/1995/932 -f 1960/2013/932 1961/2014/932 1959/2012/932 -f 1962/2015/928 1963/2016/928 1964/2017/928 -f 1965/2018/927 1966/2019/927 1967/2020/927 -f 1968/2021/927 1969/2022/927 1970/2023/927 -f 1971/2024/927 1972/2025/927 1973/2026/927 -f 1974/2027/932 1975/2028/932 1976/2029/932 -f 1977/2030/932 1978/2031/932 1979/2032/932 -f 1980/2033/927 1981/2034/927 1982/2035/927 -f 1983/2036/927 1982/2035/927 1984/2037/927 -f 1985/2038/927 1986/2039/927 1987/2040/927 -f 1988/2041/932 1989/2042/932 1933/1986/932 -f 1990/2043/932 1991/2044/932 1992/2045/932 -f 1993/2046/932 1994/2047/932 1959/2012/932 -f 1995/2048/927 1996/2049/927 1997/2050/927 -f 1998/2051/937 1999/2052/937 2000/2053/937 -f 2001/2054/935 2002/2055/935 2003/2056/935 -f 1961/2014/932 1960/2013/932 2004/2057/932 -f 2005/2058/938 2006/2059/938 2007/2060/938 -f 2008/2061/927 2009/2062/927 2010/2063/927 -f 2011/2064/935 2012/2065/935 2013/2066/935 -f 2014/2067/933 2015/2068/933 2005/2058/933 -f 2016/2069/939 2017/2070/939 2018/2071/939 -f 2019/2072/928 2020/2073/928 2021/2074/928 -f 2022/2075/927 2023/2076/927 2024/2077/927 -f 2025/2078/927 2026/2079/927 2027/2080/927 -f 2028/2081/935 2029/2082/935 2030/2083/935 -f 1915/1968/932 2031/2084/932 1912/1965/932 -f 2032/2085/940 2033/2086/940 2034/2087/940 -f 2035/2088/940 2036/2089/940 2037/2090/940 -f 2038/2091/927 2039/2092/927 2040/2093/927 -f 2041/2094/927 2042/2095/927 2043/2096/927 -f 2044/2097/935 2045/2098/935 2046/2099/935 -f 2043/2096/927 2027/2080/927 2041/2094/927 -f 2047/2100/941 2048/2101/941 2049/2102/941 -f 2050/2103/939 2051/2104/939 2052/2105/939 -f 2053/2106/927 2054/2107/927 2055/2108/927 -f 2056/2109/939 2049/2102/939 2048/2101/939 -f 2057/2110/929 2058/2111/929 2059/2112/929 -f 2060/2113/942 2061/2114/942 2062/2115/942 -f 2063/2116/935 2064/2117/935 2065/2118/935 -f 2066/2119/926 2067/2120/926 1937/1990/926 -f 2068/2121/943 2069/2122/943 2070/2123/943 -f 1915/1968/932 2071/2124/932 2031/2084/932 -f 1992/2045/932 2072/2125/932 1933/1986/932 -f 1959/2012/932 1961/2014/932 1933/1986/932 -f 1958/2011/932 2073/2126/932 2074/2127/932 -f 2075/2128/932 1988/2041/932 1933/1986/932 -f 1933/1986/932 2076/2129/932 2077/2130/932 -f 2078/2131/932 2076/2129/932 1933/1986/932 -f 2078/2131/932 2072/2125/932 2079/2132/932 -f 2080/2133/927 2081/2134/927 2082/2135/927 -f 1987/2040/927 2080/2133/927 2083/2136/927 -f 2084/2137/927 1981/2034/927 1980/2033/927 -f 2073/2126/932 2085/2138/932 2074/2127/932 -f 2086/2139/932 2087/2140/932 2088/2141/932 -f 2089/2142/932 2073/2126/932 1958/2011/932 -f 2090/2143/927 2091/2144/927 2092/2145/927 -f 2093/2146/927 2094/2147/927 2095/2148/927 -f 2096/2149/935 2097/2150/935 2098/2151/935 -f 2099/2152/935 2100/2153/935 2101/2154/935 -f 2102/2155/928 2103/2156/928 2104/2157/928 -f 2105/2158/939 2106/2159/939 2107/2160/939 -f 2108/2161/927 2109/2162/927 2110/2163/927 -f 2111/2164/927 2112/2165/927 2113/2166/927 -f 1921/1974/932 1896/1949/932 1975/2028/932 -f 2114/2167/941 2106/2159/941 2105/2158/941 -f 2115/2168/926 2116/2169/926 2117/2170/926 -f 2118/2171/926 2119/2172/926 2120/2173/926 -f 2121/2174/927 2122/2175/927 2123/2176/927 -f 1941/1994/932 1975/2028/932 1896/1949/932 -f 2124/2177/927 2125/2178/927 2126/2179/927 -f 2127/2180/935 2128/2181/935 2129/2182/935 -f 1976/2029/932 1975/2028/932 1941/1994/932 -f 2130/2183/940 2131/2184/940 2132/2185/940 -f 2133/2186/940 2134/2187/940 2135/2188/940 -f 2136/2189/927 2137/2190/927 2138/2191/927 -f 2139/2192/927 2140/2193/927 2125/2178/927 -f 2141/2194/935 2142/2195/935 2143/2196/935 -f 2126/2179/927 2125/2178/927 2140/2193/927 -f 2144/2197/926 2145/2198/926 2146/2199/926 -f 2147/2200/938 2148/2201/938 2149/2202/938 -f 2074/2127/932 2150/2203/932 2088/2141/932 -f 2151/2204/932 2074/2127/932 2087/2140/932 -f 2152/2205/927 2153/2206/927 2154/2207/927 -f 2155/2208/926 2156/2209/926 2144/2197/926 -f 2157/2210/929 2158/2211/929 2159/2212/929 -f 2160/2213/932 2151/2204/932 2161/2214/932 -f 2162/2215/932 2163/2216/932 2074/2127/932 -f 2164/2217/935 2165/2218/935 2166/2219/935 -f 2167/2220/932 2074/2127/932 2163/2216/932 -f 2168/2221/928 2169/2222/928 2170/2223/928 -f 1977/2030/932 2150/2203/932 2074/2127/932 -f 2171/2224/935 2172/2225/935 2173/2226/935 -f 1909/1962/935 2174/2227/935 2172/2225/935 -f 1909/1962/935 1908/1961/935 2174/2227/935 -f 2175/2228/926 2176/2229/926 2177/2230/926 -f 2178/2231/928 2179/2232/928 2180/2233/928 -f 2181/2234/935 2182/2235/935 2183/2236/935 -f 2184/2237/935 2185/2238/935 2186/2239/935 -f 2187/2240/935 2188/2241/935 2186/2239/935 -f 1965/2018/927 1967/2020/927 2189/2242/927 -f 2190/2243/926 2191/2244/926 2192/2245/926 -f 2172/2225/935 2193/2246/935 2173/2226/935 -f 2194/2247/936 2195/2248/936 2196/2249/936 -f 2197/2250/935 2198/2251/935 2199/2252/935 -f 2200/2253/935 2201/2254/935 2202/2255/935 -f 2203/2256/927 2204/2257/927 2205/2258/927 -f 2206/2259/936 2207/2260/936 2208/2261/936 -f 2209/2262/928 2210/2263/928 2211/2264/928 -f 2212/2265/936 2213/2266/936 2214/2267/936 -f 2214/2267/936 2215/2268/936 2212/2265/936 -f 2216/2269/926 2217/2270/926 2218/2271/926 -f 2219/2272/926 2220/2273/926 2221/2274/926 -f 2222/2275/936 2223/2276/936 2224/2277/936 -f 2192/2245/926 1948/2001/926 1947/2000/926 -f 1923/1976/932 1896/1949/932 1921/1974/932 -f 2225/2278/927 2226/2279/927 2227/2280/927 -f 2228/2281/927 2225/2278/927 2227/2280/927 -f 2229/2282/927 2228/2281/927 2227/2280/927 -f 2190/2243/926 2192/2245/926 1947/2000/926 -f 2226/2279/927 2230/2283/927 2227/2280/927 -f 2231/2284/935 2232/2285/935 2233/2286/935 -f 2233/2286/935 2232/2285/935 2234/2287/935 -f 2235/2288/935 2236/2289/935 2237/2290/935 -f 2238/2291/935 2239/2292/935 2235/2288/935 -f 1945/1998/935 2239/2292/935 2240/2293/935 -f 2241/2294/935 2242/2295/935 1944/1997/935 -f 2243/2296/935 2244/2297/935 2242/2295/935 -f 2245/2298/935 2234/2287/935 2244/2297/935 -f 2246/2299/935 2243/2296/935 2242/2295/935 -f 2241/2294/935 2246/2299/935 2242/2295/935 -f 1943/1996/935 2247/2300/935 1944/1997/935 -f 2248/2301/935 2240/2293/935 2239/2292/935 -f 2238/2291/935 2248/2301/935 2239/2292/935 -f 2249/2302/935 2238/2291/935 2235/2288/935 -f 2250/2303/935 2237/2290/935 2236/2289/935 -f 2251/2304/935 2250/2303/935 2236/2289/935 -f 2251/2304/935 2236/2289/935 2234/2287/935 -f 2245/2298/935 2252/2305/935 2234/2287/935 -f 2243/2296/935 2253/2306/935 2244/2297/935 -f 2254/2307/935 2231/2284/935 2233/2286/935 -f 2236/2289/935 2233/2286/935 2234/2287/935 -f 2249/2302/935 2235/2288/935 2237/2290/935 -f 2255/2308/935 1945/1998/935 2240/2293/935 -f 2247/2300/935 2241/2294/935 1944/1997/935 -f 2253/2306/935 2245/2298/935 2244/2297/935 -f 2252/2305/935 2251/2304/935 2234/2287/935 -f 2255/2308/935 1943/1996/935 1945/1998/935 -f 2256/2309/926 2257/2310/926 2258/2311/926 -f 1941/1994/932 1896/1949/932 1895/1948/932 -f 2259/2312/927 2260/2313/927 2261/2314/927 -f 2262/2315/944 2263/2316/944 2264/2317/944 -f 2265/2318/932 2266/2319/932 2267/2320/932 -f 2268/2321/932 2269/2322/932 2270/2323/932 -f 2271/2324/936 2272/2325/936 2273/2326/936 -f 2274/2327/928 1883/1936/928 1882/1935/928 -f 2202/2255/935 2275/2328/935 2181/2234/935 -f 2197/2250/935 2199/2252/935 2202/2255/935 -f 2276/2329/927 2277/2330/927 2278/2331/927 -f 2276/2329/927 2279/2332/927 2280/2333/927 -f 2281/2334/932 2282/2335/932 2283/2336/932 -f 2284/2337/928 2285/2338/928 2209/2262/928 -f 2286/2339/936 2287/2340/936 2288/2341/936 -f 2289/2342/936 2286/2339/936 2290/2343/936 -f 1880/1933/927 1879/1932/927 2291/2344/927 -f 2292/2345/928 2293/2346/928 2294/2347/928 -f 2279/2332/927 2295/2348/927 2296/2349/927 -f 2297/2350/926 2298/2351/926 2299/2352/926 -f 2300/2353/928 2301/2354/928 2302/2355/928 -f 2303/2356/936 2304/2357/936 2305/2358/936 -f 2306/2359/926 2299/2352/926 2298/2351/926 -f 2307/2360/936 2308/2361/936 2309/2362/936 -f 2310/2363/936 2309/2362/936 2308/2361/936 -f 2311/2364/926 2312/2365/926 2313/2366/926 -f 2311/2364/926 1877/1930/926 2312/2365/926 -f 1880/1933/927 2204/2257/927 2314/2367/927 -f 2204/2257/927 2203/2256/927 2314/2367/927 -f 2315/2368/935 1952/2005/935 2316/2369/935 -f 2317/2370/928 2318/2371/928 2319/2372/928 -f 2320/2373/928 2319/2372/928 2318/2371/928 -f 2321/2374/928 2320/2373/928 2318/2371/928 -f 1878/1931/927 1880/1933/927 2314/2367/927 -f 2322/2375/935 2315/2368/935 2316/2369/935 -f 2323/2376/928 2317/2370/928 2319/2372/928 -f 2311/2364/926 1875/1928/926 1877/1930/926 -f 2315/2368/935 1950/2003/935 1952/2005/935 -f 2324/2377/935 2325/2378/935 2326/2379/935 -f 2327/2380/935 2325/2378/935 2328/2381/935 -f 2326/2379/935 2325/2378/935 2329/2382/935 -f 2329/2382/935 2325/2378/935 2330/2383/935 -f 2331/2384/935 2325/2378/935 2327/2380/935 -f 2330/2383/935 2325/2378/935 2332/2385/935 -f 2332/2385/935 2325/2378/935 2333/2386/935 -f 2334/2387/935 2325/2378/935 2331/2384/935 -f 2333/2386/935 2325/2378/935 2335/2388/935 -f 2335/2388/935 2325/2378/935 2336/2389/935 -f 2336/2389/935 2325/2378/935 2334/2387/935 -f 2337/2390/935 2325/2378/935 2324/2377/935 -f 2328/2381/935 2325/2378/935 2338/2391/935 -f 2339/2392/935 2325/2378/935 2337/2390/935 -f 2338/2391/935 2325/2378/935 2340/2393/935 -f 2340/2393/935 2325/2378/935 2339/2392/935 -f 2341/2394/928 2342/2395/928 2343/2396/928 -f 2344/2397/928 2345/2398/928 2343/2396/928 -f 2346/2399/935 2347/2400/935 2348/2401/935 -f 1890/1943/928 1881/1934/928 1883/1936/928 -f 2349/2402/928 1884/1937/928 1886/1939/928 -f 2350/2403/929 1887/1940/929 1889/1942/929 -f 2351/2404/930 1881/1934/945 1891/1944/930 -f 2352/2405/931 1892/1945/931 1894/1947/931 -f 2353/2406/928 1902/1955/928 1904/1957/928 -f 1904/1957/928 2354/2407/928 2353/2406/928 -f 1886/1939/928 1885/1938/928 1917/1970/928 -f 2355/2408/935 1938/1991/935 1940/1993/935 -f 2067/2120/926 1946/1999/926 1937/1990/926 -f 2356/2409/936 1953/2006/936 1955/2008/936 -f 1953/2006/936 1956/2009/936 1954/2007/936 -f 1942/1995/932 1926/1979/932 1922/1975/932 -f 1922/1975/932 1958/2011/932 1942/1995/932 -f 1958/2011/932 1960/2013/932 1959/2012/932 -f 1973/2026/927 1968/2021/927 1970/2023/927 -f 1970/2023/927 1971/2024/927 1973/2026/927 -f 2150/2203/932 1977/2030/932 1979/2032/932 -f 1983/2036/927 1980/2033/927 1982/2035/927 -f 2357/2410/927 1983/2036/927 1984/2037/927 -f 2358/2411/927 1985/2038/927 1987/2040/927 -f 1932/1985/932 1990/2043/932 1992/2045/932 -f 1989/2042/932 1993/2046/932 1959/2012/932 -f 2359/2412/927 1995/2048/927 1997/2050/927 -f 2360/2413/937 1998/2051/937 2000/2053/937 -f 2361/2414/935 2001/2054/935 2003/2056/935 -f 2362/2415/932 1961/2014/932 2004/2057/932 -f 2014/2067/938 2005/2058/938 2007/2060/938 -f 2363/2416/927 2008/2061/927 2010/2063/927 -f 2364/2417/935 2011/2064/935 2013/2066/935 -f 2365/2418/939 2016/2069/939 2018/2071/939 -f 2366/2419/928 2019/2072/928 2021/2074/928 -f 2367/2420/927 2022/2075/927 2024/2077/927 -f 2043/2096/927 2025/2078/927 2027/2080/927 -f 2368/2421/935 2028/2081/935 2030/2083/935 -f 2369/2422/940 2032/2085/940 2034/2087/940 -f 2370/2423/940 2035/2088/940 2037/2090/940 -f 2371/2424/927 2038/2091/927 2040/2093/927 -f 2372/2425/935 2044/2097/935 2046/2099/935 -f 2373/2426/939 2050/2103/939 2052/2105/939 -f 2374/2427/927 2053/2106/927 2055/2108/927 -f 2375/2428/939 2056/2109/939 2048/2101/939 -f 2376/2429/929 2057/2110/929 2059/2112/929 -f 2377/2430/942 2060/2113/942 2062/2115/942 -f 2378/2431/935 2063/2116/935 2065/2118/935 -f 2379/2432/943 2068/2121/943 2070/2123/943 -f 1932/1985/932 1992/2045/932 1933/1986/932 -f 1989/2042/932 1959/2012/932 1933/1986/932 -f 1960/2013/932 1958/2011/932 2074/2127/932 -f 2077/2130/932 2075/2128/932 1933/1986/932 -f 2072/2125/932 2078/2131/932 1933/1986/932 -f 2380/2433/932 2078/2131/932 2079/2132/932 -f 2083/2136/927 2080/2133/927 2082/2135/927 -f 2358/2411/927 1987/2040/927 2083/2136/927 -f 2381/2434/927 2084/2137/927 1980/2033/927 -f 2382/2435/932 2086/2139/932 2088/2141/932 -f 2383/2436/932 2089/2142/932 1958/2011/932 -f 2384/2437/927 2090/2143/927 2092/2145/927 -f 2385/2438/927 2093/2146/927 2095/2148/927 -f 2386/2439/935 2096/2149/935 2098/2151/935 -f 2387/2440/935 2099/2152/935 2101/2154/935 -f 2388/2441/928 2102/2155/928 2104/2157/928 -f 2389/2442/939 2105/2158/939 2107/2160/939 -f 2390/2443/927 2108/2161/927 2110/2163/927 -f 2391/2444/927 2111/2164/927 2113/2166/927 -f 2392/2445/932 1921/1974/932 1975/2028/932 -f 2393/2446/926 2115/2168/926 2117/2170/926 -f 2394/2447/926 2118/2171/926 2120/2173/926 -f 2395/2448/927 2121/2174/927 2123/2176/927 -f 2396/2449/927 2124/2177/927 2126/2179/927 -f 2397/2450/935 2127/2180/935 2129/2182/935 -f 2398/2451/940 2130/2183/940 2132/2185/940 -f 2399/2452/940 2133/2186/940 2135/2188/940 -f 2400/2453/927 2136/2189/927 2138/2191/927 -f 2401/2454/935 2141/2194/935 2143/2196/935 -f 2402/2455/938 2147/2200/938 2149/2202/938 -f 2087/2140/932 2074/2127/932 2088/2141/932 -f 2161/2214/932 2151/2204/932 2087/2140/932 -f 2403/2456/927 2152/2205/927 2154/2207/927 -f 2146/2199/926 2155/2208/926 2144/2197/926 -f 2404/2457/929 2157/2210/929 2159/2212/929 -f 2405/2458/932 2160/2213/932 2161/2214/932 -f 2085/2138/932 2162/2215/932 2074/2127/932 -f 2406/2459/935 2164/2217/935 2166/2219/935 -f 2407/2460/928 2408/2461/928 2409/2462/928 -f 2410/2463/928 2168/2221/928 2170/2223/928 -f 2167/2220/932 1977/2030/932 2074/2127/932 -f 2171/2224/935 1909/1962/935 2172/2225/935 -f 2411/2464/926 2175/2228/926 2177/2230/926 -f 2412/2465/928 2178/2231/928 2180/2233/928 -f 2197/2250/935 2181/2234/935 2183/2236/935 -f 2185/2238/935 2187/2240/935 2186/2239/935 -f 2413/2466/927 1965/2018/927 2189/2242/927 -f 2414/2467/936 2194/2247/936 2196/2249/936 -f 2199/2252/935 2200/2253/935 2202/2255/935 -f 2415/2468/936 2206/2259/936 2208/2261/936 -f 2416/2469/926 2216/2269/926 2218/2271/926 -f 2417/2470/926 2219/2272/926 2221/2274/926 -f 2418/2471/936 2222/2275/936 2224/2277/936 -f 2419/2472/926 2256/2309/926 2258/2311/926 -f 2420/2473/927 2259/2312/927 2261/2314/927 -f 2421/2474/944 2262/2315/944 2264/2317/944 -f 2422/2475/932 2265/2318/932 2267/2320/932 -f 2423/2476/932 2268/2321/932 2270/2323/932 -f 2424/2477/936 2271/2324/936 2273/2326/936 -f 2425/2478/928 2274/2327/928 1882/1935/928 -f 2181/2234/935 2197/2250/935 2202/2255/935 -f 2426/2479/927 2276/2329/927 2278/2331/927 -f 2277/2330/927 2276/2329/927 2280/2333/927 -f 2427/2480/932 2281/2334/932 2283/2336/932 -f 2211/2264/928 2284/2337/928 2209/2262/928 -f 2290/2343/936 2286/2339/936 2288/2341/936 -f 2428/2481/936 2289/2342/936 2290/2343/936 -f 2429/2482/928 2292/2345/928 2294/2347/928 -f 2280/2333/927 2279/2332/927 2296/2349/927 -f 2430/2483/926 2297/2350/926 2299/2352/926 -f 2431/2484/928 2300/2353/928 2302/2355/928 -f 2432/2485/936 2303/2356/936 2305/2358/936 -f 2433/2486/928 2341/2394/928 2343/2396/928 -f 2342/2395/928 2344/2397/928 2343/2396/928 -f 2434/2487/935 2346/2399/935 2348/2401/935 -s 1 -f 2435/2488/946 2436/2489/947 2437/2490/948 -f 2437/2490/948 2438/2491/949 2174/2227/935 -f 2439/2492/950 2440/2493/950 2441/2494/951 -f 2442/2495/952 1967/2020/927 1966/2019/927 -f 2443/2496/953 2444/2497/954 2445/2498/928 -f 2446/2499/955 2447/2500/955 2448/2501/956 -f 2449/2502/928 2450/2503/957 2451/2504/958 -f 2354/2407/928 2452/2505/959 2353/2406/928 -f 2453/2506/960 2454/2507/961 1906/1959/926 -f 2455/2508/962 2440/2493/950 2439/2492/950 -f 2456/2509/963 2457/2510/926 2458/2511/926 -f 1930/1983/926 1929/1982/926 2459/2512/964 -f 2459/2512/964 2460/2513/926 1930/1983/926 -f 2458/2511/926 1918/1971/926 2461/2514/965 -f 1918/1971/926 1920/1973/926 2461/2514/965 -f 1932/1985/932 1931/1984/932 2462/2515/966 -f 2463/2516/932 2464/2517/967 2462/2515/966 -f 2456/2509/963 2458/2511/926 2461/2514/965 -f 2465/2518/968 2466/2519/969 2467/2520/970 -f 2468/2521/971 2469/2522/972 2470/2523/973 -f 2471/2524/974 2472/2525/975 2473/2526/976 -f 2474/2527/977 2475/2528/977 2321/2374/928 -f 2476/2529/978 2477/2530/926 2478/2531/926 -f 2479/2532/979 2480/2533/979 2476/2529/978 -f 2481/2534/980 2482/2535/981 2483/2536/982 -f 2484/2537/983 2485/2538/984 2486/2539/985 -f 2487/2540/980 2488/2541/986 2489/2542/987 -f 2490/2543/988 2491/2544/989 2492/2545/990 -f 2493/2546/991 2494/2547/992 2495/2548/993 -f 2486/2539/985 2496/2549/963 2497/2550/926 -f 2498/2551/926 2499/2552/926 2500/2553/994 -f 2497/2554/926 2498/2551/926 2500/2553/994 -f 2501/2555/995 2502/2556/996 2503/2557/928 -f 2504/2558/997 2505/2559/998 2502/2560/996 -f 2501/2555/995 2503/2557/928 1962/2015/928 -f 2506/2561/999 2507/2562/1000 2508/2563/936 -f 2509/2564/1001 2510/2565/1002 2511/2566/1003 -f 2442/2495/952 2512/2567/1004 2487/2540/980 -f 2513/2568/1005 2126/2179/927 2140/2193/927 -f 2189/2242/927 2514/2569/1006 2413/2466/927 -f 2515/2570/928 2516/2571/957 2517/2572/1007 -f 2518/2573/1008 2519/2574/1009 2520/2575/936 -f 2521/2576/1010 2522/2577/1011 2518/2573/1008 -f 2521/2576/1010 2523/2578/1012 2524/2579/1013 -f 2525/2580/1014 2526/2581/1015 2191/2244/926 -f 2500/2553/994 2527/2582/1016 2484/2583/983 -f 2528/2584/994 2529/2585/1017 2522/2577/1011 -f 2530/2586/936 2520/2575/936 2519/2574/1009 -f 2531/2587/1018 2532/2588/957 2533/2589/1019 -f 2534/2590/1020 2535/2591/1021 2533/2589/1019 -f 2518/2573/1008 2533/2589/1019 2535/2591/1021 -f 2536/2592/1022 2534/2590/1020 2533/2589/1019 -f 2537/2593/1023 2538/2594/1024 2539/2595/1025 -f 2540/2596/999 2541/2597/1026 2542/2598/1027 -f 2543/2599/1028 2544/2600/1029 2545/2601/1030 -f 2546/2602/926 2547/2603/960 2548/2604/960 -f 2549/2605/1031 2550/2606/1032 2544/2607/1029 -f 2461/2514/965 2551/2608/963 2552/2609/1033 -f 2553/2610/1034 2554/2611/1035 2555/2612/1036 -f 2537/2593/1023 2556/2613/1001 2557/2614/936 -f 2486/2539/985 2500/2615/994 2484/2537/983 -f 2486/2539/985 2485/2538/984 2558/2616/1031 -f 2559/2617/1002 2560/2618/936 2561/2619/936 -f 2562/2620/1037 2563/2621/1038 2564/2622/936 -f 2486/2539/985 2565/2623/926 2566/2624/1033 -f 2567/2625/926 2568/2626/926 2569/2627/1039 -f 2570/2628/1040 2571/2629/1041 2572/2630/1042 -f 2573/2631/1043 2572/2630/1042 2563/2621/1038 -f 2574/2632/935 2575/2633/935 2576/2634/1044 -f 2577/2635/1045 2578/2636/1046 2579/2637/1047 -f 2580/2638/1048 2510/2565/1002 2579/2637/1047 -f 2581/2639/936 2582/2640/1049 2538/2594/1024 -f 2580/2638/1048 2583/2641/1050 2584/2642/1051 -f 2585/2643/1005 2578/2636/1046 2586/2644/1052 -f 2578/2636/1046 2583/2641/1050 2579/2637/1047 -f 2587/2645/1053 2459/2512/964 1929/1982/926 -f 2579/2637/1047 2588/2646/1054 2577/2635/1045 -f 2557/2614/936 2538/2594/1024 2537/2593/1023 -f 2548/2604/960 2547/2603/960 2589/2647/1055 -f 2590/2648/1056 2591/2649/1057 2592/2650/1055 -f 2593/2651/1019 2594/2652/1017 2595/2653/1025 -f 2596/2654/1057 2597/2655/1058 2598/2656/926 -f 2578/2636/1046 2577/2635/1045 2586/2644/1052 -f 2599/2657/1057 2600/2658/1058 2601/2659/926 -f 2602/2660/926 2603/2661/926 2604/2662/1039 -f 2605/2663/1057 2606/2664/1056 2066/2119/926 -f 2607/2665/984 2542/2598/1027 2550/2606/1032 -f 2608/2666/1059 2553/2610/1034 2609/2667/1060 -f 2554/2611/1035 2610/2668/926 2611/2669/926 -f 2612/2670/1028 2613/2671/1061 2486/2539/985 -f 2484/2583/983 2507/2562/1000 2485/2672/984 -f 2571/2629/1041 2570/2628/1040 2614/2673/949 -f 2615/2674/926 2616/2675/926 2617/2676/1039 -f 2618/2677/927 2619/2678/927 2620/2679/1062 -f 2579/2637/1047 2621/2680/1001 2588/2646/1054 -f 2585/2643/1005 2586/2644/1052 2041/2094/927 -f 2622/2681/926 2623/2682/926 2624/2683/1039 -f 2625/2684/926 2626/2685/960 2627/2686/960 -f 2066/2119/926 1937/1990/926 2605/2663/1057 -f 2628/2687/1063 2589/2647/1055 2529/2585/1017 -f 2629/2688/1063 2630/2689/1064 2529/2585/1017 -f 2459/2512/964 2587/2645/1053 2539/2595/1025 -f 2630/2689/1064 2631/2690/1065 2539/2595/1025 -f 2597/2655/1058 2596/2654/1057 2630/2689/1064 -f 2632/2691/1055 2629/2688/1063 2529/2585/1017 -f 2600/2658/1058 2599/2657/1057 2632/2691/1055 -f 2633/2692/1063 2634/2693/1055 2529/2585/1017 -f 2627/2686/960 2626/2685/960 2634/2693/1055 -f 2589/2647/1055 2633/2692/1063 2529/2585/1017 -f 2528/2584/994 2592/2650/1055 2529/2585/1017 -f 2635/2694/967 2636/2695/1066 2637/2696/1066 -f 2638/2697/1003 2639/2698/1067 2640/2699/1068 -f 1885/1938/928 2641/2700/1069 2642/2701/1069 -f 2640/2699/1068 2643/2702/957 2644/2703/1020 -f 2645/2704/954 2646/2705/953 2640/2699/1068 -f 2647/2706/954 2648/2707/954 2649/2708/928 -f 2646/2705/953 2643/2702/957 2640/2699/1068 -f 2642/2701/1069 2641/2700/1069 2650/2709/1070 -f 2608/2666/1059 2651/2710/1059 2652/2711/1071 -f 2653/2712/1001 2638/2697/1003 2581/2639/936 -f 2505/2559/998 2504/2558/997 2542/2713/1027 -f 2542/2713/1027 2504/2558/997 2550/2714/1032 -f 2654/2715/1072 2655/2716/1073 2470/2523/973 -f 2466/2519/969 2465/2518/968 2656/2717/935 -f 2524/2579/1013 2522/2577/1011 2521/2576/1010 -f 2657/2718/1037 2658/2719/936 2659/2720/936 -f 2504/2558/997 2501/2721/995 2660/2722/1074 -f 2661/2723/928 2662/2724/1020 2452/2505/959 -f 2435/2488/946 2663/2725/1075 2664/2726/1076 -f 2663/2725/1075 2657/2718/1037 2665/2727/1038 -f 2666/2728/1020 2644/2703/1020 2643/2702/957 -f 2667/2729/1077 2668/2730/1078 2510/2565/1002 -f 2662/2724/1020 2531/2587/1018 2669/2731/957 -f 2667/2729/1077 2513/2568/1005 2670/2732/1079 -f 2580/2638/1048 2667/2729/1077 2510/2565/1002 -f 2645/2704/954 2639/2698/1067 2409/2462/928 -f 2511/2566/1003 2510/2565/1002 2668/2730/1078 -f 2582/2640/1049 2581/2639/936 2638/2697/1003 -f 2647/2706/954 2536/2592/1022 2532/2588/957 -f 2443/2496/953 2535/2591/1021 2534/2590/1020 -f 2671/2733/1080 2672/2734/928 2673/2735/928 -f 2668/2730/1078 2667/2729/1077 2670/2732/1079 -f 2674/2736/1080 2675/2737/928 2676/2738/928 -f 2408/2461/928 2645/2704/954 2409/2462/928 -f 2644/2703/1020 2677/2739/957 2533/2589/1019 -f 2678/2740/1020 2679/2741/1018 2677/2739/957 -f 2680/2742/1081 2652/2711/1071 2681/2743/928 -f 2544/2600/1029 2550/2714/1032 2504/2558/997 -f 2682/2744/928 2683/2745/957 2684/2746/954 -f 2685/2747/1082 2686/2748/1083 2542/2598/1027 -f 2435/2488/946 2437/2490/948 2687/2749/1084 -f 2688/2750/1020 2689/2751/1022 2690/2752/928 -f 2669/2731/957 2531/2587/1018 2533/2589/1019 -f 2499/2552/926 2691/2753/926 2500/2553/994 -f 2512/2567/1004 2488/2541/986 2487/2540/980 -f 2191/2244/926 2190/2243/926 2525/2580/1014 -f 2436/2489/947 2692/2754/1085 2438/2491/949 -f 2514/2569/1006 2693/2755/1086 2694/2756/1087 -f 2514/2569/1006 2189/2242/927 2693/2755/1086 -f 2695/2757/1088 2696/2758/1089 2697/2759/932 -f 2698/2760/950 2699/2761/932 2700/2762/932 -f 2526/2581/1015 2525/2580/1014 2698/2760/950 -f 2493/2546/991 2495/2548/993 2701/2763/1089 -f 2685/2747/1082 2541/2597/1026 2540/2596/999 -f 2502/2560/996 2501/2721/995 2504/2558/997 -f 2507/2562/1000 2506/2561/999 2485/2672/984 -f 2482/2535/981 2702/2764/1090 2495/2548/993 -f 2494/2547/992 2703/2765/928 2704/2766/928 -f 2482/2535/981 2481/2534/980 2702/2764/1090 -f 2483/2536/982 2441/2494/951 2481/2534/980 -f 2705/2767/1091 2706/2768/1092 2707/2769/1093 -f 2708/2770/1094 2705/2767/1091 2709/2771/1095 -f 2710/2772/1096 2708/2770/1094 2711/2773/1097 -f 2712/2774/1098 2710/2772/1096 2713/2775/1099 -f 2714/2776/1100 2715/2777/1101 2322/2375/935 -f 2716/2778/1102 2717/2779/1103 2718/2780/1104 -f 2719/2781/1105 2720/2782/1105 2718/2780/1104 -f 2721/2783/1106 2722/2784/1107 2715/2777/1101 -f 2723/2785/1108 2724/2786/1109 2722/2784/1107 -f 2725/2787/1110 2720/2782/1105 2719/2781/1105 -f 2726/2788/1111 2727/2789/1112 2728/2790/1113 -f 2727/2789/1112 2729/2791/1114 2730/2792/1115 -f 2729/2791/1114 2731/2793/1116 2732/2794/1117 -f 2731/2793/1116 2733/2795/1118 2734/2796/1119 -f 2733/2795/1118 2735/2797/1120 2736/2798/1121 -f 2737/2799/1122 2738/2800/1123 2739/2801/1124 -f 2740/2802/1125 2741/2803/1125 2739/2801/1124 -f 2742/2804/1126 2743/2805/1126 2744/2806/1109 -f 2745/2807/1127 2741/2803/1125 2740/2802/1125 -f 2706/2768/1092 2745/2807/1127 2746/2808/1128 -f 2742/2804/1126 2747/2809/1129 2743/2805/1126 -f 2748/2810/1130 2749/2811/1131 2747/2809/1129 -f 2750/2812/1132 2751/2813/1133 2747/2809/1129 -f 2752/2814/1134 2753/2815/1134 2751/2813/1133 -f 2754/2816/1135 2755/2817/1136 2756/2818/1136 -f 2757/2819/1137 2758/2820/1137 2756/2818/1136 -f 2759/2821/1138 2760/2822/1139 2761/2823/936 -f 2762/2824/1140 2763/2825/1141 2764/2826/1142 -f 2765/2827/1143 2766/2828/1144 2764/2826/1142 -f 2763/2825/1141 2767/2829/1145 2765/2827/1143 -f 2768/2830/1146 2767/2829/1145 2763/2825/1141 -f 2769/2831/1147 2770/2832/1148 2767/2829/1145 -f 2771/2833/1149 2772/2834/1149 2773/2835/1150 -f 2774/2836/1151 2773/2835/1150 2770/2832/1148 -f 1949/2002/926 2455/2508/962 2775/2837/1152 -f 2776/2838/1153 2472/2525/975 2777/2839/1154 -f 2778/2840/1155 2779/2841/1156 2776/2838/1153 -f 2780/2842/1157 2781/2843/1158 2779/2841/1156 -f 2229/2282/927 2227/2280/927 2781/2843/1158 -f 2230/2283/927 2473/2526/976 2227/2280/927 -f 2782/2844/1159 2471/2524/974 2473/2526/976 -f 2783/2845/1160 2782/2844/1159 2473/2526/976 -f 2784/2846/1161 2783/2845/1160 2473/2526/976 -f 2230/2283/927 2784/2846/1161 2473/2526/976 -f 2785/2847/1162 2229/2282/927 2781/2843/1158 -f 2780/2842/1157 2785/2847/1162 2781/2843/1158 -f 2778/2840/1155 2786/2848/1163 2779/2841/1156 -f 2787/2849/1164 2778/2840/1155 2776/2838/1153 -f 2788/2850/1165 2777/2839/1154 2472/2525/975 -f 2471/2524/974 2788/2850/1165 2472/2525/975 -f 1947/2000/926 1949/2002/926 2775/2837/1152 -f 2787/2849/1164 2776/2838/1153 2777/2839/1154 -f 2786/2848/1163 2780/2842/1157 2779/2841/1156 -f 2467/2520/970 2468/2521/971 2789/2851/1166 -f 2446/2499/955 2274/2327/928 2425/2478/928 -f 2790/2852/958 2791/2853/955 2792/2854/928 -f 2793/2855/935 2794/2856/935 2762/2824/1140 -f 2795/2857/1167 2796/2858/1167 2797/2859/928 -f 2798/2860/1168 2796/2858/1167 2795/2857/1167 -f 2799/2861/1169 2800/2862/1170 2316/2369/935 -f 2801/2863/1171 2800/2862/1170 2799/2861/1169 -f 2802/2864/1172 2801/2863/1171 2803/2865/1173 -f 2748/2810/1130 2804/2866/1174 2805/2867/1175 -f 2749/2811/1131 2748/2810/1130 2806/2868/1176 -f 2768/2830/1146 2807/2869/1177 2808/2870/1143 -f 2474/2527/977 2754/2816/1135 2809/2871/1178 -f 2810/2872/935 2811/2873/1142 2812/2874/1140 -f 2807/2869/1177 2812/2874/1140 2811/2873/1142 -f 2808/2870/1143 2807/2869/1177 2811/2873/1142 -f 2313/2366/926 2758/2820/1137 2757/2819/1137 -f 2316/2369/935 2800/2862/1170 2714/2776/1100 -f 2311/2364/926 2313/2366/926 2757/2819/1137 -f 2322/2375/935 2316/2369/935 2714/2776/1100 -f 2318/2371/928 2474/2527/977 2321/2374/928 -f 2634/2693/1055 2813/2875/1063 2529/2585/1017 -f 2630/2689/1064 2539/2595/1025 2529/2585/1017 -f 2677/2739/957 2679/2741/1018 2533/2589/1019 -f 2644/2703/1020 2533/2589/1019 2640/2699/1068 -f 2814/2876/1127 2815/2877/1179 2816/2878/1180 -f 2815/2877/1179 2817/2879/1181 2818/2880/1182 -f 2819/2881/1183 2820/2882/1184 2821/2883/1185 -f 2817/2879/1181 2822/2884/1121 2823/2885/1122 -f 2822/2884/1121 2824/2886/1119 2825/2887/1118 -f 2826/2888/1110 2819/2881/1183 2827/2889/1186 -f 2824/2886/1119 2828/2890/1117 2829/2891/1116 -f 2828/2890/1117 2830/2892/1115 2831/2893/1114 -f 2832/2894/1187 2826/2888/1110 2833/2895/1111 -f 2830/2892/1115 2832/2894/1187 2834/2896/1188 -f 2835/2897/1096 2836/2898/1094 2837/2899/1097 -f 2838/2900/1091 2839/2901/1092 2840/2902/1189 -f 2841/2903/1098 2835/2897/1096 2842/2904/1099 -f 2820/2882/1184 2841/2903/1098 2843/2905/1190 -f 2839/2901/1092 2814/2876/1127 2844/2906/1128 -f 2836/2898/1094 2838/2900/1091 2845/2907/1095 -f 2846/2908/1191 2847/2909/1192 2848/2910/1193 -f 2849/2911/1194 2850/2912/1195 2851/2913/1196 -f 2852/2914/1197 2853/2915/1198 2854/2916/936 -f 2855/2917/932 2856/2918/932 2847/2909/1192 -f 2850/2912/1195 2849/2911/1194 2853/2915/1198 -f 1908/1961/935 2437/2490/948 2174/2227/935 -f 2483/2536/982 2439/2492/950 2441/2494/951 -f 2512/2567/1004 2442/2495/952 1966/2019/927 -f 2857/2919/928 2443/2496/953 2445/2498/928 -f 2858/2920/1199 2446/2499/955 2448/2501/956 -f 2859/2921/928 2449/2502/928 2451/2504/958 -f 1905/1958/926 2453/2506/960 1906/1959/926 -f 2775/2837/1152 2455/2508/962 2439/2492/950 -f 1931/1984/932 2463/2516/932 2462/2515/966 -f 2860/2922/1200 1934/1987/928 1936/1989/928 -f 2861/2923/1201 2465/2518/968 2467/2520/970 -f 2789/2851/1166 2468/2521/971 2470/2523/973 -f 2862/2924/978 2476/2529/978 2478/2531/926 -f 2862/2924/978 2479/2532/979 2476/2529/978 -f 2492/2545/990 2487/2540/980 2489/2542/987 -f 2489/2542/987 2490/2543/988 2492/2545/990 -f 2500/2615/994 2486/2539/985 2497/2550/926 -f 1964/2017/928 2501/2555/995 1962/2015/928 -f 2670/2732/1079 2513/2568/1005 2140/2193/927 -f 2863/2925/928 2515/2570/928 2517/2572/1007 -f 2520/2575/936 2521/2576/1010 2518/2573/1008 -f 2524/2579/1013 2528/2584/994 2522/2577/1011 -f 2519/2574/1009 2518/2573/1008 2535/2591/1021 -f 2532/2588/957 2536/2592/1022 2533/2589/1019 -f 2587/2645/1053 2537/2593/1023 2539/2595/1025 -f 2607/2665/984 2540/2596/999 2542/2598/1027 -f 2864/2926/1202 2543/2599/1028 2545/2601/1030 -f 2865/2927/926 2546/2602/926 2548/2604/960 -f 2543/2928/1028 2549/2605/1031 2544/2607/1029 -f 2456/2509/963 2461/2514/965 2552/2609/1033 -f 2609/2667/1060 2553/2610/1034 2555/2612/1036 -f 2866/2929/1203 2559/2617/1002 2561/2619/936 -f 2867/2930/936 2562/2620/1037 2564/2622/936 -f 2496/2549/963 2486/2539/985 2566/2624/1033 -f 2868/2931/1204 2567/2625/926 2569/2627/1039 -f 2573/2631/1043 2570/2628/1040 2572/2630/1042 -f 2562/2620/1037 2573/2631/1043 2563/2621/1038 -f 2614/2673/949 2574/2632/935 2576/2634/1044 -f 2583/2641/1050 2580/2638/1048 2579/2637/1047 -f 2557/2614/936 2581/2639/936 2538/2594/1024 -f 2620/2679/1062 2580/2638/1048 2584/2642/1051 -f 2628/2687/1063 2548/2604/960 2589/2647/1055 -f 2528/2584/994 2590/2648/1056 2592/2650/1055 -f 2869/2932/1205 2593/2651/1019 2595/2653/1025 -f 2870/2933/926 2596/2654/1057 2598/2656/926 -f 2871/2934/926 2599/2657/1057 2601/2659/926 -f 2872/2935/1204 2602/2660/926 2604/2662/1039 -f 2549/2605/1031 2607/2665/984 2550/2606/1032 -f 2651/2710/1059 2608/2666/1059 2609/2667/1060 -f 2555/2612/1036 2554/2611/1035 2611/2669/926 -f 2558/2616/1031 2612/2670/1028 2486/2539/985 -f 2576/2634/1044 2571/2629/1041 2614/2673/949 -f 2873/2936/1055 2615/2674/926 2617/2676/1039 -f 2584/2642/1051 2618/2677/927 2620/2679/1062 -f 2027/2080/927 2585/2643/1005 2041/2094/927 -f 2874/2937/1204 2622/2681/926 2624/2683/1039 -f 2875/2938/926 2625/2684/926 2627/2686/960 -f 2592/2650/1055 2628/2687/1063 2529/2585/1017 -f 2631/2690/1065 2459/2512/964 2539/2595/1025 -f 2629/2688/1063 2597/2655/1058 2630/2689/1064 -f 2813/2875/1063 2632/2691/1055 2529/2585/1017 -f 2813/2875/1063 2600/2658/1058 2632/2691/1055 -f 2633/2692/1063 2627/2686/960 2634/2693/1055 -f 2876/2939/1206 2635/2694/967 2637/2696/1066 -f 2582/2640/1049 2638/2697/1003 2640/2699/1068 -f 1916/1969/928 1885/1938/928 2642/2701/1069 -f 2639/2698/1067 2645/2704/954 2640/2699/1068 -f 2877/2940/928 2647/2706/954 2649/2708/928 -f 2878/2941/1207 2642/2701/1069 2650/2709/1070 -f 2680/2742/1081 2608/2666/1059 2652/2711/1071 -f 2686/2748/1083 2505/2942/998 2542/2598/1027 -f 2469/2522/972 2654/2715/1072 2470/2523/973 -f 2879/2943/935 2466/2519/969 2656/2717/935 -f 2665/2727/1038 2657/2718/1037 2659/2720/936 -f 2880/2944/1208 2504/2558/997 2660/2722/1074 -f 2354/2407/928 2661/2723/928 2452/2505/959 -f 2436/2489/947 2435/2488/946 2664/2726/1076 -f 2664/2726/1076 2663/2725/1075 2665/2727/1038 -f 2671/2733/1080 2666/2728/1020 2643/2702/957 -f 2452/2505/959 2662/2724/1020 2669/2731/957 -f 2648/2707/954 2647/2706/954 2532/2588/957 -f 2444/2497/954 2443/2496/953 2534/2590/1020 -f 2666/2728/1020 2671/2733/1080 2673/2735/928 -f 2678/2740/1020 2674/2736/1080 2676/2738/928 -f 2674/2736/1080 2678/2740/1020 2677/2739/957 -f 2881/2945/928 2680/2742/1081 2681/2743/928 -f 2545/2601/1030 2544/2600/1029 2504/2558/997 -f 2882/2946/928 2682/2744/928 2684/2746/954 -f 2541/2597/1026 2685/2747/1082 2542/2598/1027 -f 2883/2947/928 2688/2750/1020 2690/2752/928 -f 2679/2741/1018 2669/2731/957 2533/2589/1019 -f 2437/2490/948 2436/2489/947 2438/2491/949 -f 2884/2948/1087 2514/2569/1006 2694/2756/1087 -f 2885/2949/932 2695/2757/1088 2697/2759/932 -f 2886/2950/950 2698/2760/950 2700/2762/932 -f 2886/2950/950 2526/2581/1015 2698/2760/950 -f 2887/2951/936 2685/2747/1082 2540/2596/999 -f 2494/2547/992 2482/2535/981 2495/2548/993 -f 2482/2535/981 2494/2547/992 2704/2766/928 -f 2709/2771/1095 2705/2767/1091 2707/2769/1093 -f 2711/2773/1097 2708/2770/1094 2709/2771/1095 -f 2713/2775/1099 2710/2772/1096 2711/2773/1097 -f 2716/2778/1102 2712/2774/1098 2713/2775/1099 -f 2712/2774/1098 2716/2778/1102 2718/2780/1104 -f 2717/2779/1103 2719/2781/1105 2718/2780/1104 -f 2714/2776/1100 2721/2783/1106 2715/2777/1101 -f 2721/2783/1106 2723/2785/1108 2722/2784/1107 -f 2726/2788/1111 2725/2787/1110 2719/2781/1105 -f 2725/2787/1110 2726/2788/1111 2728/2790/1113 -f 2728/2790/1113 2727/2789/1112 2730/2792/1115 -f 2730/2792/1115 2729/2791/1114 2732/2794/1117 -f 2732/2794/1117 2731/2793/1116 2734/2796/1119 -f 2734/2796/1119 2733/2795/1118 2736/2798/1121 -f 2888/2952/1209 2737/2799/1122 2739/2801/1124 -f 2738/2800/1123 2740/2802/1125 2739/2801/1124 -f 2889/2953/1210 2742/2804/1126 2744/2806/1109 -f 2746/2808/1128 2745/2807/1127 2740/2802/1125 -f 2707/2769/1093 2706/2768/1092 2746/2808/1128 -f 2742/2804/1126 2748/2810/1130 2747/2809/1129 -f 2749/2811/1131 2750/2812/1132 2747/2809/1129 -f 2750/2812/1132 2752/2814/1134 2751/2813/1133 -f 2809/2871/1178 2754/2816/1135 2756/2818/1136 -f 2755/2817/1136 2757/2819/1137 2756/2818/1136 -f 2890/2954/936 2759/2821/1138 2761/2823/936 -f 2763/2825/1141 2765/2827/1143 2764/2826/1142 -f 2807/2869/1177 2768/2830/1146 2763/2825/1141 -f 2768/2830/1146 2769/2831/1147 2767/2829/1145 -f 2774/2836/1151 2771/2833/1149 2773/2835/1150 -f 2769/2831/1147 2774/2836/1151 2770/2832/1148 -f 2861/2923/1201 2467/2520/970 2789/2851/1166 -f 2447/2500/955 2446/2499/955 2425/2478/928 -f 2891/2955/957 2790/2852/958 2792/2854/928 -f 2764/2826/1142 2793/2855/935 2762/2824/1140 -f 2892/2956/928 2795/2857/1167 2797/2859/928 -f 2893/2957/1168 2798/2860/1168 2795/2857/1167 -f 2803/2865/1173 2801/2863/1171 2799/2861/1169 -f 2894/2958/1175 2802/2864/1172 2803/2865/1173 -f 2806/2868/1176 2748/2810/1130 2805/2867/1175 -f 2475/2528/977 2474/2527/977 2809/2871/1178 -f 2895/2959/935 2810/2872/935 2812/2874/1140 -f 2896/2960/1144 2808/2870/1143 2811/2873/1142 -f 2844/2906/1128 2814/2876/1127 2816/2878/1180 -f 2816/2878/1180 2815/2877/1179 2818/2880/1182 -f 2827/2889/1186 2819/2881/1183 2821/2883/1185 -f 2818/2880/1182 2817/2879/1181 2823/2885/1122 -f 2823/2885/1122 2822/2884/1121 2825/2887/1118 -f 2833/2895/1111 2826/2888/1110 2827/2889/1186 -f 2825/2887/1118 2824/2886/1119 2829/2891/1116 -f 2829/2891/1116 2828/2890/1117 2831/2893/1114 -f 2834/2896/1188 2832/2894/1187 2833/2895/1111 -f 2831/2893/1114 2830/2892/1115 2834/2896/1188 -f 2842/2904/1099 2835/2897/1096 2837/2899/1097 -f 2845/2907/1095 2838/2900/1091 2840/2902/1189 -f 2843/2905/1190 2841/2903/1098 2842/2904/1099 -f 2821/2883/1185 2820/2882/1184 2843/2905/1190 -f 2840/2902/1189 2839/2901/1092 2844/2906/1128 -f 2837/2899/1097 2836/2898/1094 2845/2907/1095 -f 2851/2913/1196 2846/2908/1191 2848/2910/1193 -f 2848/2910/1193 2849/2911/1194 2851/2913/1196 -f 2897/2961/936 2852/2914/1197 2854/2916/936 -f 2846/2908/1191 2855/2917/932 2847/2909/1192 -f 2852/2914/1197 2850/2912/1195 2853/2915/1198 -o bool_obj_bool_obj_data.002 -v 0.584592 7.687729 -3.606773 -v 0.584592 7.920867 -4.083088 -v -0.395192 7.920867 -4.083088 -v -0.395192 7.687729 -3.606773 -v 0.620113 7.889108 -4.099000 -v 0.620113 7.656415 -3.623594 -v 0.620113 7.645318 -3.604686 -v 0.620113 7.631242 -3.586817 -v 0.620113 7.613890 -3.569613 -v 0.620113 7.593882 -3.553847 -v 0.620113 7.571976 -3.540180 -v 0.620113 7.549021 -3.529142 -v 0.620113 7.525940 -3.521119 -v 0.620113 7.503702 -3.516331 -v 0.620113 7.481840 -3.514677 -v 0.620113 6.288866 -3.514677 -v 0.620113 6.268834 -3.516430 -v 0.620113 6.250914 -3.521231 -v 0.620113 6.234100 -3.529072 -v 0.620113 6.218904 -3.539712 -v 0.620113 6.205786 -3.552830 -v 0.620113 6.195146 -3.568026 -v 0.620113 6.187305 -3.584840 -v 0.620113 6.182504 -3.602759 -v 0.620113 6.180752 -3.622791 -v 0.620113 6.180752 -4.075539 -v 0.620113 6.182504 -4.095572 -v 0.620113 6.187305 -4.113491 -v 0.620113 6.195146 -4.130303 -v 0.620113 6.205786 -4.145500 -v 0.620113 6.218904 -4.158618 -v 0.620113 6.234100 -4.169259 -v 0.620113 6.250914 -4.177099 -v 0.620113 6.268834 -4.181901 -v 0.620113 6.288866 -4.183652 -v 0.620113 6.744428 -4.183652 -v 0.620113 6.773732 -4.185739 -v 0.620113 6.805163 -4.192020 -v 0.620113 6.836724 -4.202079 -v 0.620113 6.867739 -4.215590 -v 0.620113 6.897497 -4.232189 -v 0.620113 6.925284 -4.251482 -v 0.620113 6.950424 -4.273054 -v 0.620113 6.972281 -4.296497 -v 0.620113 6.989450 -4.320339 -v 0.620113 7.366812 -4.931571 -v 0.620113 8.193166 -5.908978 -v 0.620113 8.210030 -5.932884 -v 0.620113 8.222831 -5.960578 -v 0.620113 8.230137 -5.989985 -v 0.620113 8.231569 -6.020123 -v 0.620113 8.227003 -6.049901 -v 0.620113 8.216606 -6.078223 -v 0.620113 8.200825 -6.104090 -v 0.620113 8.180312 -6.126676 -v 0.620113 8.157060 -6.144431 -v 0.620113 7.763575 -6.393669 -v 0.620113 7.738557 -6.407856 -v 0.620113 7.709525 -6.421311 -v 0.620113 7.677958 -6.433376 -v 0.620113 7.644623 -6.443819 -v 0.620113 7.610356 -6.452397 -v 0.620113 7.576034 -6.458897 -v 0.620113 7.542509 -6.463129 -v 0.620113 7.510559 -6.464942 -v 0.620113 7.481810 -6.464217 -v 0.620113 7.300509 -6.450785 -v 0.620113 7.278323 -6.450760 -v 0.620113 7.255250 -6.453763 -v 0.620113 7.230896 -6.459853 -v 0.620113 7.206277 -6.468892 -v 0.620113 7.182374 -6.480568 -v 0.620113 7.160113 -6.494431 -v 0.620113 7.140339 -6.509898 -v 0.620113 7.123790 -6.526253 -v 0.620113 7.110170 -6.543768 -v 0.620113 7.071722 -6.601441 -v 0.620113 7.061349 -6.620097 -v 0.620113 7.053805 -6.640273 -v 0.620113 7.048820 -6.662560 -v 0.620113 7.046699 -6.686110 -v 0.620113 7.047573 -6.710011 -v 0.620113 7.051407 -6.733344 -v 0.620113 7.058005 -6.755208 -v 0.620113 7.067001 -6.774779 -v 0.620113 7.078706 -6.792627 -v 0.620113 7.179221 -6.921861 -v 0.620113 7.194191 -6.938533 -v 0.620113 7.212095 -6.954048 -v 0.620113 7.233200 -6.968604 -v 0.620113 7.256703 -6.981524 -v 0.620113 7.281717 -6.992267 -v 0.620113 7.307272 -7.000415 -v 0.620113 7.332359 -7.005698 -v 0.620113 7.355937 -7.007999 -v 0.620113 7.378335 -7.007376 -v 0.620113 7.893750 -6.956470 -v 0.620113 7.917890 -6.952994 -v 0.620113 7.944322 -6.947154 -v 0.620113 7.972809 -6.938970 -v 0.620113 8.002266 -6.928709 -v 0.620113 8.031621 -6.916725 -v 0.620113 8.059842 -6.903440 -v 0.620113 8.085919 -6.889347 -v 0.620113 8.108887 -6.875021 -v 0.620113 8.128563 -6.860609 -v 0.620113 8.624680 -6.462090 -v 0.620113 9.246017 -6.249527 -v 0.620113 9.267796 -6.240655 -v 0.620113 9.290505 -6.228703 -v 0.620113 9.314142 -6.213631 -v 0.620113 9.337729 -6.195972 -v 0.620113 9.360365 -6.176369 -v 0.620113 9.381210 -6.155543 -v 0.620113 9.399504 -6.134302 -v 0.620113 9.414577 -6.113533 -v 0.620113 9.426466 -6.093243 -v 0.620113 9.513233 -5.923651 -v 0.620113 9.521070 -5.904480 -v 0.620113 9.525558 -5.884883 -v 0.620113 9.527004 -5.864093 -v 0.620113 9.525276 -5.842852 -v 0.620113 9.520397 -5.821944 -v 0.620113 9.512546 -5.802133 -v 0.620113 9.502046 -5.784128 -v 0.620113 9.489350 -5.768544 -v 0.620113 9.473836 -5.754820 -v 0.620113 9.318781 -5.639523 -v 0.620113 9.299875 -5.627427 -v 0.620113 9.278429 -5.617201 -v 0.620113 9.254142 -5.608730 -v 0.620113 9.227964 -5.602454 -v 0.620113 9.200908 -5.598660 -v 0.620113 9.174013 -5.597497 -v 0.620113 9.148333 -5.598965 -v 0.620113 9.124902 -5.602899 -v 0.620113 9.103399 -5.609330 -v 0.620113 8.845378 -5.706697 -v 0.620113 8.817008 -5.714674 -v 0.620113 8.786029 -5.717874 -v 0.620113 8.754861 -5.715827 -v 0.620113 8.724404 -5.708625 -v 0.620113 8.695532 -5.696496 -v 0.620113 8.669072 -5.679782 -v 0.620113 8.645795 -5.658955 -v 0.620113 8.626398 -5.634590 -v 0.620113 8.612238 -5.608743 -v 0.620113 8.333163 -4.974390 -v 0.584592 6.145231 -4.077091 -v 0.584592 6.145231 -3.621240 -v -0.395192 6.145231 -3.621240 -v -0.395192 6.145231 -4.077091 -v 0.584592 6.164267 -4.148131 -v 0.584592 6.153800 -4.125686 -v -0.395192 6.153800 -4.125686 -v -0.395192 6.164267 -4.148131 -v 0.584592 6.178472 -4.168419 -v -0.395192 6.178472 -4.168419 -v 0.584592 6.195985 -4.185933 -v -0.395192 6.195985 -4.185933 -v 0.584592 6.216272 -4.200139 -v -0.395192 6.216272 -4.200139 -v 0.584592 6.238719 -4.210606 -v -0.395192 6.238719 -4.210606 -v 0.584592 6.262642 -4.217014 -v -0.395192 6.262642 -4.217014 -v 0.584592 6.768971 -4.221011 -v 0.584592 6.743165 -4.219173 -v -0.395192 6.743165 -4.219173 -v -0.395192 6.768971 -4.221011 -v 0.584592 6.287314 -4.219173 -v -0.395192 6.287314 -4.219173 -v 0.584592 6.147389 -4.101762 -v -0.395192 6.147389 -4.101762 -v 0.584592 6.959888 -4.340073 -v 0.584592 6.944769 -4.319078 -v -0.395192 6.944769 -4.319078 -v -0.395192 6.959888 -4.340073 -v 0.584592 6.824206 -4.235372 -v 0.584592 6.796262 -4.226465 -v -0.395192 6.796262 -4.226465 -v -0.395192 6.824206 -4.235372 -v 0.584592 6.851957 -4.247458 -v -0.395192 6.851957 -4.247458 -v 0.584592 6.878670 -4.262361 -v -0.395192 6.878670 -4.262361 -v 0.584592 6.903533 -4.279624 -v -0.395192 6.903533 -4.279624 -v 0.584592 6.925792 -4.298723 -v -0.395192 6.925792 -4.298723 -v 0.584592 8.179142 -5.950719 -v 0.584592 8.165036 -5.930724 -v -0.395191 8.165036 -5.930724 -v -0.395191 8.179142 -5.950719 -v 0.584592 7.337978 -4.952483 -v -0.395191 7.337978 -4.952483 -v 0.584592 8.136739 -6.115254 -v 0.584592 8.156188 -6.100403 -v -0.395191 8.156188 -6.100403 -v -0.395191 8.136739 -6.115254 -v 0.584592 8.194821 -5.995161 -v 0.584592 8.189172 -5.972418 -v -0.395191 8.189172 -5.972418 -v -0.395191 8.194821 -5.995161 -v 0.584592 8.195919 -6.018255 -v -0.395191 8.195919 -6.018255 -v 0.584592 8.192431 -6.040999 -v -0.395191 8.192431 -6.040999 -v 0.584592 8.184464 -6.062704 -v -0.395191 8.184464 -6.062704 -v 0.584592 8.172259 -6.082707 -v -0.395191 8.172259 -6.082707 -v 0.584592 7.722301 -6.376241 -v 0.584592 7.745296 -6.363197 -v -0.395191 7.745296 -6.363197 -v -0.395191 7.722301 -6.376241 -v 0.584592 7.483572 -6.428729 -v 0.584592 7.510001 -6.429397 -v -0.395191 7.510001 -6.429397 -v -0.395191 7.483572 -6.428729 -v 0.584592 7.666298 -6.399806 -v 0.584592 7.695698 -6.388568 -v -0.395191 7.695698 -6.388568 -v -0.395191 7.666298 -6.399806 -v 0.584592 7.634993 -6.409613 -v -0.395191 7.634993 -6.409613 -v 0.584592 7.602734 -6.417689 -v -0.395191 7.602734 -6.417689 -v 0.584592 7.570499 -6.423791 -v -0.395191 7.570499 -6.423791 -v 0.584592 7.539272 -6.427734 -v -0.395191 7.539272 -6.427734 -v 0.584592 7.276041 -6.415237 -v 0.584592 7.301843 -6.415265 -v -0.395191 7.301843 -6.415265 -v -0.395191 7.276041 -6.415237 -v 0.584592 7.081335 -6.522986 -v 0.584592 7.097172 -6.502617 -v -0.395191 7.097172 -6.502617 -v -0.395191 7.081335 -6.522986 -v 0.584592 7.220437 -6.425855 -v 0.584592 7.248628 -6.418804 -v -0.395191 7.248628 -6.418804 -v -0.395191 7.220437 -6.425855 -v 0.584592 7.192325 -6.436174 -v -0.395191 7.192325 -6.436174 -v 0.584592 7.165144 -6.449452 -v -0.395191 7.165144 -6.449452 -v 0.584592 7.139724 -6.465283 -v -0.395191 7.139724 -6.465283 -v 0.584592 7.116836 -6.483187 -v -0.395191 7.116836 -6.483187 -v 0.584592 7.029011 -6.605164 -v 0.584592 7.041371 -6.582931 -v -0.395191 7.041371 -6.582931 -v -0.395191 7.029011 -6.605164 -v 0.584592 7.049788 -6.813304 -v 0.584592 7.035839 -6.792034 -v -0.395191 7.035839 -6.792034 -v -0.395191 7.049788 -6.813304 -v 0.584592 7.013651 -6.657066 -v 0.584592 7.019677 -6.630127 -v -0.395191 7.019677 -6.630127 -v -0.395191 7.013651 -6.657066 -v 0.584592 7.011119 -6.685161 -v -0.395191 7.011119 -6.685161 -v 0.584592 7.012156 -6.713555 -v -0.395191 7.012156 -6.713555 -v 0.584592 7.016733 -6.741390 -v -0.395191 7.016733 -6.741390 -v 0.584592 7.024707 -6.767817 -v -0.395191 7.024707 -6.767817 -v 0.584592 7.169249 -6.963922 -v 0.584592 7.151952 -6.944659 -v -0.395191 7.151952 -6.944659 -v -0.395191 7.169249 -6.963922 -v 0.584592 7.380579 -7.042848 -v 0.584592 7.354702 -7.043569 -v -0.395191 7.354702 -7.043569 -v -0.395191 7.380579 -7.042848 -v 0.584592 7.214511 -6.998865 -v 0.584592 7.190314 -6.982175 -v -0.395191 7.190314 -6.982175 -v -0.395191 7.214511 -6.998865 -v 0.584592 7.241105 -7.013483 -v -0.395191 7.241105 -7.013483 -v 0.584592 7.269283 -7.025585 -v -0.395191 7.269283 -7.025585 -v 0.584592 7.298194 -7.034803 -v -0.395191 7.298194 -7.034803 -v 0.584592 7.326959 -7.040860 -v -0.395191 7.326959 -7.040860 -v 0.584592 7.924263 -6.987965 -v 0.584592 7.898026 -6.991742 -v -0.395191 7.898026 -6.991742 -v -0.395191 7.924263 -6.987965 -v 0.584592 8.150192 -6.888796 -v 0.584592 8.128809 -6.904459 -v -0.395191 8.128809 -6.904459 -v -0.395191 8.150192 -6.888796 -v 0.584592 7.983564 -6.972837 -v 0.584592 7.953066 -6.981598 -v -0.395191 7.953066 -6.981598 -v -0.395191 7.983564 -6.972837 -v 0.584592 8.014829 -6.961946 -v -0.395191 8.014829 -6.961946 -v 0.584592 8.045910 -6.949258 -v -0.395191 8.045910 -6.949258 -v 0.584592 8.075863 -6.935157 -v -0.395191 8.075863 -6.935157 -v 0.584592 8.103779 -6.920072 -v -0.395191 8.103779 -6.920072 -v 0.584592 9.282803 -6.272899 -v 0.584592 9.258475 -6.282805 -v -0.395191 9.258475 -6.282805 -v -0.395191 9.282803 -6.272899 -v 0.584592 8.642069 -6.493681 -v -0.395191 8.642069 -6.493681 -v 0.584592 9.457625 -6.110325 -v 0.584592 9.444345 -6.132988 -v -0.395191 9.444345 -6.132988 -v -0.395191 9.457625 -6.110325 -v 0.584592 9.334363 -6.242865 -v 0.584592 9.308357 -6.259449 -v -0.395191 9.308357 -6.259449 -v -0.395191 9.334363 -6.242865 -v 0.584592 9.360028 -6.223650 -v -0.395191 9.360028 -6.223650 -v 0.584592 9.384575 -6.202392 -v -0.395191 9.384575 -6.202392 -v 0.584592 9.407257 -6.179731 -v -0.395191 9.407257 -6.179731 -v 0.584592 9.427383 -6.156362 -v -0.395191 9.427383 -6.156362 -v 0.584592 9.555048 -5.915235 -v 0.584592 9.545543 -5.938488 -v -0.395191 9.545543 -5.938488 -v -0.395191 9.555048 -5.915235 -v 0.584592 9.496242 -5.727215 -v 0.584592 9.515058 -5.743859 -v -0.395191 9.515058 -5.743859 -v -0.395191 9.496242 -5.727215 -v 0.584592 9.562625 -5.863883 -v 0.584592 9.560801 -5.890111 -v -0.395191 9.560801 -5.890112 -v -0.395191 9.562625 -5.863883 -v 0.584592 9.560467 -5.837347 -v -0.395191 9.560467 -5.837347 -v 0.584592 9.554390 -5.811306 -v -0.395191 9.554390 -5.811306 -v 0.584592 9.544580 -5.786552 -v -0.395191 9.544580 -5.786553 -v 0.584592 9.531335 -5.763842 -v -0.395191 9.531335 -5.763842 -v 0.584592 9.317157 -5.596313 -v 0.584592 9.338975 -5.610274 -v -0.395191 9.338975 -5.610274 -v -0.395191 9.317157 -5.596313 -v 0.584592 9.092025 -5.575655 -v 0.584592 9.116840 -5.568233 -v -0.395191 9.116840 -5.568233 -v -0.395191 9.092025 -5.575656 -v 0.584592 9.264157 -5.574605 -v 0.584592 9.291963 -5.584302 -v -0.395191 9.291963 -5.584302 -v -0.395191 9.264157 -5.574605 -v 0.584592 9.234586 -5.567513 -v -0.395191 9.234586 -5.567513 -v 0.584592 9.204147 -5.563247 -v -0.395191 9.204147 -5.563247 -v 0.584592 9.173767 -5.561934 -v -0.395191 9.173767 -5.561934 -v 0.584592 9.144367 -5.563612 -v -0.395191 9.144367 -5.563612 -v 0.584592 8.810327 -5.679654 -v 0.584592 8.834279 -5.672918 -v -0.395191 8.834279 -5.672918 -v -0.395191 8.810327 -5.679654 -v 0.584592 8.644131 -5.593029 -v 0.584592 8.656086 -5.614850 -v -0.395191 8.656086 -5.614850 -v -0.395191 8.644131 -5.593029 -v 0.584592 8.760147 -5.680576 -v 0.584592 8.785363 -5.682232 -v -0.395191 8.785363 -5.682232 -v -0.395191 8.760147 -5.680576 -v 0.584592 8.735446 -5.674736 -v -0.395191 8.735446 -5.674736 -v 0.584592 8.712008 -5.664889 -v -0.395191 8.712008 -5.664889 -v 0.584592 8.690548 -5.651334 -v -0.395191 8.690548 -5.651334 -v 0.584592 8.671717 -5.634483 -v -0.395191 8.671717 -5.634483 -v 0.584592 7.674724 -3.584612 -v -0.395192 7.674724 -3.584612 -v 0.584592 8.365284 -4.959190 -v -0.395191 8.365284 -4.959190 -v 0.584592 7.483182 -3.479156 -v 0.584592 7.508804 -3.481095 -v -0.395192 7.508804 -3.481095 -v -0.395192 7.483182 -3.479156 -v 0.584592 7.637462 -3.542964 -v 0.584592 7.657797 -3.563125 -v -0.395192 7.657797 -3.563125 -v -0.395192 7.637462 -3.542964 -v 0.584592 7.614337 -3.524742 -v -0.395192 7.614337 -3.524742 -v 0.584592 7.589126 -3.509013 -v -0.395192 7.589126 -3.509013 -v 0.584592 7.562593 -3.496253 -v -0.395192 7.562593 -3.496253 -v 0.584592 7.535545 -3.486852 -v -0.395192 7.535545 -3.486852 -v 0.584592 6.262642 -3.481315 -v 0.584592 6.287314 -3.479156 -v -0.395192 6.287314 -3.479156 -v -0.395192 6.262642 -3.481315 -v 0.584592 6.147389 -3.596567 -v -0.395192 6.147389 -3.596567 -v 0.584592 6.216272 -3.498192 -v 0.584592 6.238719 -3.487725 -v -0.395192 6.238719 -3.487725 -v -0.395192 6.216272 -3.498192 -v 0.584592 6.195985 -3.512398 -v -0.395192 6.195985 -3.512398 -v 0.584592 6.178472 -3.529910 -v -0.395192 6.178472 -3.529910 -v 0.584592 6.164267 -3.550198 -v -0.395192 6.164267 -3.550198 -v 0.584592 6.153800 -3.572644 -v -0.395192 6.153800 -3.572644 -v -0.430712 7.889108 -4.099000 -v -0.430712 8.333163 -4.974390 -v -0.430712 8.612238 -5.608743 -v -0.430712 8.626398 -5.634590 -v -0.430712 8.645795 -5.658955 -v -0.430712 8.669072 -5.679782 -v -0.430712 8.695532 -5.696496 -v -0.430712 8.724404 -5.708625 -v -0.430712 8.754861 -5.715827 -v -0.430712 8.786029 -5.717874 -v -0.430712 8.817008 -5.714674 -v -0.430712 8.845378 -5.706697 -v -0.430712 9.103399 -5.609331 -v -0.430712 9.124902 -5.602899 -v -0.430712 9.148333 -5.598965 -v -0.430712 9.174013 -5.597497 -v -0.430712 9.200908 -5.598660 -v -0.430712 9.227964 -5.602454 -v -0.430712 9.254142 -5.608730 -v -0.430712 9.278429 -5.617201 -v -0.430712 9.299875 -5.627427 -v -0.430712 9.318781 -5.639523 -v -0.430712 9.473836 -5.754820 -v -0.430712 9.489350 -5.768544 -v -0.430712 9.502046 -5.784128 -v -0.430712 9.512546 -5.802133 -v -0.430712 9.520397 -5.821944 -v -0.430712 9.525276 -5.842852 -v -0.430712 9.527004 -5.864093 -v -0.430712 9.525558 -5.884883 -v -0.430712 9.521070 -5.904480 -v -0.430712 9.513233 -5.923651 -v -0.430712 9.426466 -6.093243 -v -0.430712 9.414577 -6.113533 -v -0.430712 9.399504 -6.134302 -v -0.430712 9.381210 -6.155543 -v -0.430712 9.360365 -6.176369 -v -0.430712 9.337729 -6.195972 -v -0.430712 9.314142 -6.213631 -v -0.430712 9.290505 -6.228703 -v -0.430712 9.267796 -6.240655 -v -0.430712 9.246017 -6.249527 -v -0.430712 8.624680 -6.462090 -v -0.430712 8.128563 -6.860609 -v -0.430712 8.108887 -6.875021 -v -0.430712 8.085919 -6.889347 -v -0.430712 8.059842 -6.903440 -v -0.430712 8.031621 -6.916725 -v -0.430712 8.002266 -6.928709 -v -0.430712 7.972809 -6.938970 -v -0.430712 7.944322 -6.947154 -v -0.430712 7.917890 -6.952994 -v -0.430712 7.893750 -6.956470 -v -0.430712 7.378335 -7.007376 -v -0.430712 7.355937 -7.007999 -v -0.430712 7.332359 -7.005698 -v -0.430712 7.307272 -7.000415 -v -0.430712 7.281717 -6.992267 -v -0.430712 7.256703 -6.981524 -v -0.430712 7.233200 -6.968604 -v -0.430712 7.212095 -6.954048 -v -0.430712 7.194191 -6.938533 -v -0.430712 7.179221 -6.921861 -v -0.430712 7.078706 -6.792627 -v -0.430712 7.067001 -6.774779 -v -0.430712 7.058005 -6.755208 -v -0.430712 7.051407 -6.733344 -v -0.430712 7.047573 -6.710011 -v -0.430712 7.046699 -6.686110 -v -0.430712 7.048820 -6.662560 -v -0.430712 7.053805 -6.640273 -v -0.430712 7.061349 -6.620097 -v -0.430712 7.071722 -6.601441 -v -0.430712 7.110170 -6.543768 -v -0.430712 7.123790 -6.526253 -v -0.430712 7.140339 -6.509898 -v -0.430712 7.160113 -6.494431 -v -0.430712 7.182374 -6.480568 -v -0.430712 7.206277 -6.468892 -v -0.430712 7.230896 -6.459853 -v -0.430712 7.255250 -6.453763 -v -0.430712 7.278323 -6.450760 -v -0.430712 7.300509 -6.450785 -v -0.430712 7.481810 -6.464217 -v -0.430712 7.510559 -6.464942 -v -0.430712 7.542509 -6.463129 -v -0.430712 7.576034 -6.458897 -v -0.430712 7.610356 -6.452397 -v -0.430712 7.644623 -6.443819 -v -0.430712 7.677958 -6.433376 -v -0.430712 7.709525 -6.421311 -v -0.430712 7.738557 -6.407856 -v -0.430712 7.763575 -6.393669 -v -0.430712 8.157060 -6.144431 -v -0.430712 8.180312 -6.126676 -v -0.430712 8.200825 -6.104090 -v -0.430712 8.216606 -6.078223 -v -0.430712 8.227003 -6.049901 -v -0.430712 8.231569 -6.020123 -v -0.430712 8.230137 -5.989985 -v -0.430712 8.222831 -5.960578 -v -0.430712 8.210030 -5.932884 -v -0.430712 8.193166 -5.908978 -v -0.430712 7.366812 -4.931571 -v -0.430712 6.989450 -4.320339 -v -0.430712 6.972281 -4.296497 -v -0.430712 6.950424 -4.273054 -v -0.430712 6.925284 -4.251482 -v -0.430712 6.897497 -4.232189 -v -0.430712 6.867739 -4.215590 -v -0.430712 6.836724 -4.202079 -v -0.430712 6.805163 -4.192020 -v -0.430712 6.773732 -4.185739 -v -0.430712 6.744428 -4.183652 -v -0.430712 6.288866 -4.183652 -v -0.430712 6.268834 -4.181901 -v -0.430712 6.250914 -4.177099 -v -0.430712 6.234100 -4.169259 -v -0.430712 6.218904 -4.158618 -v -0.430712 6.205786 -4.145500 -v -0.430712 6.195146 -4.130303 -v -0.430712 6.187305 -4.113491 -v -0.430712 6.182504 -4.095572 -v -0.430712 6.180752 -4.075539 -v -0.430712 6.180752 -3.622791 -v -0.430712 6.182504 -3.602759 -v -0.430712 6.187305 -3.584840 -v -0.430712 6.195146 -3.568026 -v -0.430712 6.205786 -3.552830 -v -0.430712 6.218904 -3.539712 -v -0.430712 6.234100 -3.529072 -v -0.430712 6.250914 -3.521231 -v -0.430712 6.268834 -3.516430 -v -0.430712 6.288866 -3.514677 -v -0.430712 7.481840 -3.514677 -v -0.430712 7.503702 -3.516331 -v -0.430712 7.525940 -3.521119 -v -0.430712 7.549021 -3.529142 -v -0.430712 7.571976 -3.540180 -v -0.430712 7.593882 -3.553847 -v -0.430712 7.613890 -3.569613 -v -0.430712 7.631242 -3.586817 -v -0.430712 7.645318 -3.604686 -v -0.430712 7.656415 -3.623594 -v 0.617409 8.345455 -4.968574 -v 0.617409 7.901262 -4.092910 -v 0.609709 8.355876 -4.963643 -v 0.609709 7.911565 -4.087749 -v 0.598185 8.362839 -4.960348 -v 0.598185 7.918450 -4.084300 -v 0.598185 6.150063 -4.101292 -v 0.598185 6.147934 -4.076972 -v 0.609709 6.157674 -4.099949 -v 0.609709 6.155634 -4.076635 -v 0.617409 6.169066 -4.097940 -v 0.617409 6.167158 -4.076132 -v 0.598185 6.156350 -4.124757 -v 0.609709 6.163613 -4.122114 -v 0.617409 6.174483 -4.118156 -v 0.598185 6.166617 -4.146774 -v 0.609709 6.173311 -4.142910 -v 0.617409 6.183329 -4.137126 -v 0.598185 6.180552 -4.166675 -v 0.609709 6.186472 -4.161706 -v 0.617409 6.195333 -4.154271 -v 0.598185 6.197730 -4.183854 -v 0.609709 6.202698 -4.177933 -v 0.617409 6.210134 -4.169071 -v 0.598185 6.217629 -4.197787 -v 0.609709 6.221494 -4.191093 -v 0.617409 6.227278 -4.181076 -v 0.598185 6.239647 -4.208055 -v 0.609709 6.242291 -4.200790 -v 0.617409 6.246247 -4.189920 -v 0.598185 6.263113 -4.214343 -v 0.609709 6.264455 -4.206729 -v 0.617409 6.266464 -4.195337 -v 0.598185 6.287432 -4.216469 -v 0.609709 6.287768 -4.208769 -v 0.617409 6.288272 -4.197247 -v 0.598185 6.743261 -4.216469 -v 0.609709 6.743535 -4.208769 -v 0.617409 6.743944 -4.197247 -v 0.598185 6.769334 -4.218326 -v 0.609709 6.770366 -4.210680 -v 0.617409 6.771910 -4.199236 -v 0.598185 6.796939 -4.223843 -v 0.609709 6.798869 -4.216375 -v 0.617409 6.801757 -4.205202 -v 0.598185 6.825159 -4.232837 -v 0.609709 6.827873 -4.225621 -v 0.617409 6.831934 -4.214819 -v 0.598185 6.853158 -4.245032 -v 0.609709 6.856579 -4.238124 -v 0.617409 6.861700 -4.227786 -v 0.598185 6.880103 -4.260064 -v 0.609709 6.884184 -4.253522 -v 0.617409 6.890292 -4.243734 -v 0.598185 6.905189 -4.277481 -v 0.609709 6.909904 -4.271380 -v 0.617409 6.916960 -4.262251 -v 0.598185 6.927667 -4.296769 -v 0.609709 6.933006 -4.291203 -v 0.617409 6.940998 -4.282876 -v 0.598185 6.946863 -4.317359 -v 0.609709 6.952827 -4.312465 -v 0.617409 6.961752 -4.305140 -v 0.598185 6.962139 -4.338571 -v 0.609709 6.968547 -4.334292 -v 0.617409 6.978137 -4.327890 -v 0.598185 7.340173 -4.950891 -v 0.609709 7.346423 -4.946358 -v 0.617409 7.355778 -4.939573 -v 0.598185 8.167177 -5.929069 -v 0.609709 8.173275 -5.924355 -v 0.617409 8.182401 -5.917300 -v 0.598185 8.181493 -5.949363 -v 0.609709 8.188189 -5.945496 -v 0.617409 8.198210 -5.939710 -v 0.598185 8.191734 -5.971518 -v 0.609709 8.199031 -5.968951 -v 0.617409 8.209950 -5.965109 -v 0.598185 8.197510 -5.994767 -v 0.609709 8.205165 -5.993646 -v 0.617409 8.216622 -5.991967 -v 0.598185 8.198633 -6.018396 -v 0.609709 8.206361 -6.018802 -v 0.617409 8.217927 -6.019408 -v 0.598185 8.195064 -6.041677 -v 0.609709 8.202558 -6.043607 -v 0.617409 8.213773 -6.046494 -v 0.598185 8.186911 -6.063885 -v 0.609709 8.193878 -6.067248 -v 0.617409 8.204306 -6.072284 -v 0.598185 8.174434 -6.084334 -v 0.609709 8.180626 -6.088971 -v 0.617409 8.189893 -6.095907 -v 0.598185 8.158025 -6.102404 -v 0.609709 8.163254 -6.108099 -v 0.617409 8.171081 -6.116621 -v 0.598185 8.138286 -6.117476 -v 0.609709 8.142691 -6.123799 -v 0.617409 8.149283 -6.133265 -v 0.598185 7.746688 -6.365518 -v 0.609709 7.750650 -6.372122 -v 0.617409 7.756579 -6.382008 -v 0.598185 7.723538 -6.378647 -v 0.609709 7.727063 -6.385500 -v 0.617409 7.732337 -6.395759 -v 0.598185 7.696752 -6.391060 -v 0.609709 7.699749 -6.398159 -v 0.617409 7.704234 -6.408782 -v 0.598185 7.667185 -6.402361 -v 0.609709 7.669713 -6.409638 -v 0.617409 7.673496 -6.420529 -v 0.598185 7.635725 -6.412217 -v 0.609709 7.637814 -6.419631 -v 0.617409 7.640937 -6.430728 -v 0.598185 7.603313 -6.420331 -v 0.609709 7.604967 -6.427855 -v 0.617409 7.607440 -6.439116 -v 0.598185 7.570921 -6.426465 -v 0.609709 7.572121 -6.434073 -v 0.617409 7.573915 -6.445463 -v 0.598185 7.539518 -6.430429 -v 0.609709 7.540220 -6.438100 -v 0.617409 7.541270 -6.449584 -v 0.598185 7.510043 -6.432103 -v 0.609709 7.510163 -6.439807 -v 0.617409 7.510345 -6.451341 -v 0.598185 7.483438 -6.431429 -v 0.609709 7.483056 -6.439123 -v 0.617409 7.482483 -6.450635 -v 0.598185 7.301742 -6.417969 -v 0.609709 7.301453 -6.425667 -v 0.617409 7.301021 -6.437191 -v 0.598185 7.276215 -6.417942 -v 0.609709 7.276709 -6.425642 -v 0.617409 7.277450 -6.437167 -v 0.598185 7.249132 -6.421464 -v 0.609709 7.250566 -6.429042 -v 0.617409 7.252716 -6.440384 -v 0.598185 7.221232 -6.428442 -v 0.609709 7.223499 -6.435812 -v 0.617409 7.226893 -6.446843 -v 0.598185 7.193387 -6.438665 -v 0.609709 7.196412 -6.445757 -v 0.617409 7.200937 -6.456371 -v 0.598185 7.166457 -6.451820 -v 0.609709 7.170191 -6.458567 -v 0.617409 7.175780 -6.468660 -v 0.598185 7.141276 -6.467503 -v 0.609709 7.145697 -6.473821 -v 0.617409 7.152310 -6.483276 -v 0.598185 7.118625 -6.485219 -v 0.609709 7.123720 -6.491010 -v 0.617409 7.131345 -6.499676 -v 0.598185 7.099198 -6.504416 -v 0.609709 7.104969 -6.509541 -v 0.617409 7.113605 -6.517209 -v 0.598185 7.083529 -6.524570 -v 0.609709 7.089779 -6.529074 -v 0.617409 7.099135 -6.535816 -v 0.598185 7.043683 -6.584340 -v 0.609709 7.050261 -6.588353 -v 0.617409 7.060108 -6.594357 -v 0.598185 7.031473 -6.606299 -v 0.609709 7.038484 -6.609538 -v 0.617409 7.048975 -6.614381 -v 0.598185 7.022274 -6.630899 -v 0.609709 7.029673 -6.633100 -v 0.617409 7.040745 -6.636391 -v 0.598185 7.016328 -6.657485 -v 0.609709 7.023952 -6.658676 -v 0.617409 7.035362 -6.660459 -v 0.598185 7.013827 -6.685233 -v 0.609709 7.021541 -6.685439 -v 0.617409 7.033082 -6.685747 -v 0.598185 7.014853 -6.713285 -v 0.609709 7.022530 -6.712518 -v 0.617409 7.034019 -6.711368 -v 0.598185 7.019372 -6.740777 -v 0.609709 7.026888 -6.739033 -v 0.617409 7.038137 -6.736423 -v 0.598185 7.027242 -6.766857 -v 0.609709 7.034461 -6.764123 -v 0.617409 7.045262 -6.760034 -v 0.598185 7.038210 -6.790720 -v 0.609709 7.044967 -6.786981 -v 0.617409 7.055077 -6.781383 -v 0.598185 7.051991 -6.811730 -v 0.609709 7.058259 -6.807249 -v 0.617409 7.067640 -6.800539 -v 0.598185 7.154028 -6.942924 -v 0.609709 7.159939 -6.937981 -v 0.617409 7.168787 -6.930584 -v 0.598185 7.171146 -6.961988 -v 0.609709 7.176555 -6.956486 -v 0.617409 7.184647 -6.948249 -v 0.598185 7.191972 -6.980033 -v 0.609709 7.196693 -6.973937 -v 0.617409 7.203761 -6.964811 -v 0.598185 7.215934 -6.996562 -v 0.609709 7.219985 -6.990002 -v 0.617409 7.226048 -6.980185 -v 0.598185 7.242291 -7.011050 -v 0.609709 7.245674 -7.004121 -v 0.617409 7.250733 -6.993753 -v 0.598185 7.270230 -7.023048 -v 0.609709 7.272925 -7.015827 -v 0.617409 7.276959 -7.005016 -v 0.598185 7.298885 -7.032187 -v 0.609709 7.300853 -7.024732 -v 0.617409 7.303799 -7.013576 -v 0.598185 7.327370 -7.038184 -v 0.609709 7.328540 -7.030560 -v 0.617409 7.330293 -7.019154 -v 0.598185 7.354795 -7.040861 -v 0.609709 7.355062 -7.033151 -v 0.617409 7.355464 -7.021612 -v 0.598185 7.380408 -7.040146 -v 0.609709 7.379921 -7.032457 -v 0.617409 7.379193 -7.020949 -v 0.598185 7.897700 -6.989057 -v 0.609709 7.896773 -6.981411 -v 0.617409 7.895387 -6.969967 -v 0.598185 7.923777 -6.985302 -v 0.609709 7.922396 -6.977723 -v 0.617409 7.920329 -6.966378 -v 0.598185 7.952401 -6.978977 -v 0.609709 7.950505 -6.971509 -v 0.617409 7.947669 -6.960336 -v 0.598185 7.982746 -6.970260 -v 0.609709 7.980414 -6.962917 -v 0.617409 7.976924 -6.951931 -v 0.598185 8.013872 -6.959416 -v 0.609709 8.011148 -6.952211 -v 0.617409 8.007073 -6.941429 -v 0.598185 8.044822 -6.946783 -v 0.609709 8.041724 -6.939730 -v 0.617409 8.037089 -6.929174 -v 0.598185 8.074643 -6.932743 -v 0.609709 8.071171 -6.925868 -v 0.617409 8.065972 -6.915577 -v 0.598185 8.102420 -6.917733 -v 0.609709 8.098548 -6.911073 -v 0.617409 8.092754 -6.901104 -v 0.598185 8.127293 -6.902218 -v 0.609709 8.122973 -6.895837 -v 0.617409 8.116510 -6.886287 -v 0.598185 8.148545 -6.886651 -v 0.609709 8.143857 -6.880540 -v 0.617409 8.136840 -6.871396 -v 0.598185 8.640745 -6.491277 -v 0.609709 8.636976 -6.484428 -v 0.617409 8.631334 -6.474178 -v 0.598185 9.257527 -6.280272 -v 0.609709 9.254827 -6.273058 -v 0.617409 9.250785 -6.262261 -v 0.598185 9.281660 -6.270443 -v 0.609709 9.278407 -6.263454 -v 0.617409 9.273539 -6.252995 -v 0.598185 9.306998 -6.257108 -v 0.609709 9.303128 -6.250443 -v 0.617409 9.297337 -6.240469 -v 0.598185 9.332824 -6.240639 -v 0.609709 9.328440 -6.234302 -v 0.617409 9.321880 -6.224818 -v 0.598185 9.358331 -6.221543 -v 0.609709 9.353498 -6.215544 -v 0.617409 9.346263 -6.206564 -v 0.598185 9.382732 -6.200410 -v 0.609709 9.377484 -6.194769 -v 0.617409 9.369630 -6.186327 -v 0.598185 9.405274 -6.177890 -v 0.609709 9.399628 -6.172647 -v 0.617409 9.391178 -6.164801 -v 0.598185 9.425261 -6.154683 -v 0.609709 9.419218 -6.149899 -v 0.617409 9.410173 -6.142744 -v 0.598185 9.442080 -6.131507 -v 0.609709 9.435626 -6.127291 -v 0.617409 9.425968 -6.120978 -v 0.598185 9.455254 -6.109025 -v 0.609709 9.448499 -6.105322 -v 0.617409 9.438390 -6.099781 -v 0.598185 9.543083 -5.937357 -v 0.609709 9.536079 -5.934142 -v 0.617409 9.525598 -5.929327 -v 0.598185 9.552462 -5.914415 -v 0.609709 9.545096 -5.912085 -v 0.617409 9.534074 -5.908595 -v 0.598185 9.558118 -5.889715 -v 0.609709 9.550478 -5.888580 -v 0.617409 9.539044 -5.886885 -v 0.598185 9.559914 -5.863900 -v 0.609709 9.552192 -5.863945 -v 0.617409 9.540636 -5.864014 -v 0.598185 9.557788 -5.837766 -v 0.609709 9.550159 -5.838959 -v 0.617409 9.538743 -5.840744 -v 0.598185 9.551802 -5.812116 -v 0.609709 9.544434 -5.814422 -v 0.617409 9.533405 -5.817873 -v 0.598185 9.542141 -5.787740 -v 0.609709 9.535197 -5.791117 -v 0.617409 9.524804 -5.796171 -v 0.598185 9.529105 -5.765386 -v 0.609709 9.522757 -5.769783 -v 0.617409 9.513254 -5.776364 -v 0.598185 9.513101 -5.745739 -v 0.609709 9.507528 -5.751090 -v 0.617409 9.499187 -5.759098 -v 0.598185 9.494536 -5.729318 -v 0.609709 9.489679 -5.735301 -v 0.617409 9.482410 -5.744256 -v 0.598185 9.337438 -5.612501 -v 0.609709 9.333060 -5.618841 -v 0.617409 9.326509 -5.628330 -v 0.598185 9.315842 -5.598682 -v 0.609709 9.312095 -5.605426 -v 0.617409 9.306488 -5.615520 -v 0.598185 9.290932 -5.586806 -v 0.609709 9.287998 -5.593938 -v 0.617409 9.283608 -5.604611 -v 0.598185 9.263394 -5.577201 -v 0.609709 9.261224 -5.584599 -v 0.617409 9.257975 -5.595671 -v 0.598185 9.234082 -5.570174 -v 0.609709 9.232647 -5.577747 -v 0.617409 9.230498 -5.589083 -v 0.598185 9.203901 -5.565942 -v 0.609709 9.203198 -5.573619 -v 0.617409 9.202147 -5.585109 -v 0.598185 9.173786 -5.564641 -v 0.609709 9.173840 -5.572350 -v 0.617409 9.173919 -5.583888 -v 0.598185 9.144669 -5.566304 -v 0.609709 9.145529 -5.573967 -v 0.617409 9.146814 -5.585435 -v 0.598185 9.117455 -5.570871 -v 0.609709 9.119202 -5.578386 -v 0.617409 9.121818 -5.589633 -v 0.598185 9.092891 -5.578219 -v 0.609709 9.095356 -5.585518 -v 0.617409 9.099047 -5.596444 -v 0.598185 8.835124 -5.675489 -v 0.609709 8.837530 -5.682812 -v 0.617409 8.841131 -5.693769 -v 0.598185 8.810835 -5.682320 -v 0.609709 8.812284 -5.689910 -v 0.617409 8.814451 -5.701272 -v 0.598185 8.785414 -5.684946 -v 0.609709 8.785558 -5.692671 -v 0.617409 8.785774 -5.704235 -v 0.598185 8.759745 -5.683259 -v 0.609709 8.758599 -5.690900 -v 0.617409 8.756884 -5.702336 -v 0.598185 8.734605 -5.677316 -v 0.609709 8.732212 -5.684662 -v 0.617409 8.728630 -5.695656 -v 0.598185 8.710754 -5.667295 -v 0.609709 8.707183 -5.674147 -v 0.617409 8.701838 -5.684401 -v 0.598185 8.688913 -5.653501 -v 0.609709 8.684258 -5.659667 -v 0.617409 8.677291 -5.668897 -v 0.598185 8.669744 -5.636346 -v 0.609709 8.664124 -5.641652 -v 0.617409 8.655714 -5.649590 -v 0.598185 8.653826 -5.616353 -v 0.609709 8.647390 -5.620632 -v 0.617409 8.637758 -5.627036 -v 0.598185 8.641703 -5.594223 -v 0.609709 8.634789 -5.597631 -v 0.617409 8.624443 -5.602728 -v 0.598185 7.685346 -3.608053 -v 0.609709 7.678558 -3.611700 -v 0.617409 7.668399 -3.617157 -v 0.598185 7.672486 -3.586141 -v 0.609709 7.666111 -3.590492 -v 0.617409 7.656571 -3.597004 -v 0.598185 7.655776 -3.564929 -v 0.609709 7.650019 -3.570065 -v 0.617409 7.641404 -3.577751 -v 0.598185 7.635668 -3.544993 -v 0.609709 7.630558 -3.550770 -v 0.617409 7.622910 -3.559415 -v 0.598185 7.612781 -3.526958 -v 0.609709 7.608346 -3.533267 -v 0.617409 7.601710 -3.542709 -v 0.598185 7.587820 -3.511385 -v 0.609709 7.584103 -3.518141 -v 0.617409 7.578539 -3.528253 -v 0.598185 7.561560 -3.498757 -v 0.609709 7.558618 -3.505886 -v 0.617409 7.554215 -3.516556 -v 0.598185 7.534814 -3.489461 -v 0.609709 7.532732 -3.496889 -v 0.617409 7.529615 -3.508006 -v 0.598185 7.508416 -3.483777 -v 0.609709 7.507310 -3.491415 -v 0.617409 7.505654 -3.502847 -v 0.598185 7.483080 -3.481860 -v 0.609709 7.482790 -3.489560 -v 0.617409 7.482354 -3.501084 -v 0.598185 6.287432 -3.481860 -v 0.609709 6.287768 -3.489560 -v 0.617409 6.288272 -3.501084 -v 0.598185 6.263113 -3.483988 -v 0.609709 6.264455 -3.491600 -v 0.617409 6.266464 -3.502992 -v 0.598185 6.239647 -3.490276 -v 0.609709 6.242291 -3.497539 -v 0.617409 6.246247 -3.508409 -v 0.598185 6.217629 -3.500542 -v 0.609709 6.221494 -3.507236 -v 0.617409 6.227278 -3.517254 -v 0.598185 6.197730 -3.514477 -v 0.609709 6.202698 -3.520398 -v 0.617409 6.210134 -3.529259 -v 0.598185 6.180552 -3.531655 -v 0.609709 6.186472 -3.536623 -v 0.617409 6.195333 -3.544059 -v 0.598185 6.166617 -3.551555 -v 0.609709 6.173311 -3.555420 -v 0.617409 6.183329 -3.561203 -v 0.598185 6.156350 -3.573573 -v 0.609709 6.163613 -3.576216 -v 0.617409 6.174483 -3.580173 -v 0.598185 6.150063 -3.597039 -v 0.609709 6.157674 -3.598381 -v 0.617409 6.169066 -3.600389 -v 0.598185 6.147934 -3.621358 -v 0.609709 6.155634 -3.621694 -v 0.617409 6.167158 -3.622198 -v -0.408785 8.362839 -4.960348 -v -0.408785 7.918450 -4.084300 -v -0.420308 8.355876 -4.963643 -v -0.420309 7.911565 -4.087749 -v -0.428008 8.345455 -4.968574 -v -0.428008 7.901262 -4.092910 -v -0.428008 6.169066 -4.097940 -v -0.428008 6.167158 -4.076132 -v -0.420309 6.157674 -4.099949 -v -0.420309 6.155634 -4.076635 -v -0.408785 6.150063 -4.101292 -v -0.408785 6.147934 -4.076972 -v -0.428008 6.174483 -4.118156 -v -0.420309 6.163613 -4.122114 -v -0.408785 6.156350 -4.124757 -v -0.428008 6.183329 -4.137126 -v -0.420309 6.173311 -4.142910 -v -0.408785 6.166617 -4.146774 -v -0.428008 6.195333 -4.154271 -v -0.420309 6.186472 -4.161706 -v -0.408785 6.180552 -4.166675 -v -0.428008 6.210134 -4.169071 -v -0.420309 6.202698 -4.177933 -v -0.408785 6.197730 -4.183854 -v -0.428008 6.227278 -4.181076 -v -0.420309 6.221494 -4.191093 -v -0.408785 6.217629 -4.197787 -v -0.428008 6.246247 -4.189920 -v -0.420309 6.242291 -4.200790 -v -0.408785 6.239647 -4.208055 -v -0.428008 6.266464 -4.195337 -v -0.420309 6.264455 -4.206729 -v -0.408785 6.263113 -4.214343 -v -0.428008 6.288272 -4.197247 -v -0.420309 6.287768 -4.208769 -v -0.408785 6.287432 -4.216469 -v -0.428008 6.743944 -4.197247 -v -0.420309 6.743535 -4.208769 -v -0.408785 6.743261 -4.216469 -v -0.428008 6.771910 -4.199236 -v -0.420309 6.770366 -4.210680 -v -0.408785 6.769334 -4.218326 -v -0.428008 6.801757 -4.205202 -v -0.420309 6.798869 -4.216375 -v -0.408785 6.796939 -4.223843 -v -0.428008 6.831934 -4.214819 -v -0.420309 6.827873 -4.225621 -v -0.408785 6.825159 -4.232837 -v -0.428008 6.861700 -4.227786 -v -0.420309 6.856579 -4.238124 -v -0.408785 6.853158 -4.245032 -v -0.428008 6.890292 -4.243734 -v -0.420309 6.884184 -4.253522 -v -0.408785 6.880103 -4.260064 -v -0.428008 6.916960 -4.262251 -v -0.420309 6.909904 -4.271380 -v -0.408785 6.905189 -4.277481 -v -0.428008 6.940998 -4.282876 -v -0.420309 6.933006 -4.291203 -v -0.408785 6.927667 -4.296769 -v -0.428008 6.961752 -4.305140 -v -0.420309 6.952827 -4.312465 -v -0.408785 6.946863 -4.317359 -v -0.428008 6.978137 -4.327890 -v -0.420309 6.968547 -4.334292 -v -0.408785 6.962139 -4.338571 -v -0.428008 7.355778 -4.939573 -v -0.420308 7.346423 -4.946358 -v -0.408785 7.340173 -4.950891 -v -0.428008 8.182401 -5.917300 -v -0.420308 8.173275 -5.924355 -v -0.408785 8.167177 -5.929069 -v -0.428008 8.198210 -5.939710 -v -0.420308 8.188189 -5.945497 -v -0.408785 8.181493 -5.949363 -v -0.428008 8.209950 -5.965109 -v -0.420308 8.199031 -5.968951 -v -0.408785 8.191734 -5.971518 -v -0.428008 8.216622 -5.991967 -v -0.420308 8.205165 -5.993646 -v -0.408785 8.197510 -5.994767 -v -0.428008 8.217927 -6.019408 -v -0.420308 8.206361 -6.018802 -v -0.408785 8.198633 -6.018396 -v -0.428008 8.213773 -6.046494 -v -0.420308 8.202558 -6.043607 -v -0.408785 8.195064 -6.041677 -v -0.428008 8.204306 -6.072284 -v -0.420308 8.193878 -6.067248 -v -0.408785 8.186911 -6.063885 -v -0.428008 8.189893 -6.095907 -v -0.420308 8.180626 -6.088971 -v -0.408785 8.174434 -6.084334 -v -0.428008 8.171081 -6.116621 -v -0.420308 8.163254 -6.108099 -v -0.408785 8.158025 -6.102404 -v -0.428008 8.149283 -6.133265 -v -0.420308 8.142691 -6.123799 -v -0.408785 8.138286 -6.117476 -v -0.428008 7.756579 -6.382008 -v -0.420308 7.750650 -6.372122 -v -0.408785 7.746688 -6.365518 -v -0.428008 7.732337 -6.395759 -v -0.420308 7.727063 -6.385500 -v -0.408785 7.723538 -6.378647 -v -0.428008 7.704234 -6.408782 -v -0.420308 7.699749 -6.398159 -v -0.408785 7.696752 -6.391060 -v -0.428008 7.673496 -6.420529 -v -0.420308 7.669713 -6.409638 -v -0.408785 7.667185 -6.402361 -v -0.428008 7.640937 -6.430728 -v -0.420308 7.637814 -6.419631 -v -0.408785 7.635725 -6.412217 -v -0.428008 7.607440 -6.439116 -v -0.420308 7.604967 -6.427855 -v -0.408785 7.603313 -6.420331 -v -0.428008 7.573915 -6.445463 -v -0.420308 7.572121 -6.434073 -v -0.408785 7.570921 -6.426465 -v -0.428008 7.541270 -6.449584 -v -0.420308 7.540220 -6.438100 -v -0.408785 7.539518 -6.430429 -v -0.428008 7.510345 -6.451341 -v -0.420308 7.510163 -6.439807 -v -0.408785 7.510043 -6.432103 -v -0.428008 7.482483 -6.450635 -v -0.420308 7.483056 -6.439123 -v -0.408785 7.483438 -6.431429 -v -0.428008 7.301021 -6.437191 -v -0.420308 7.301453 -6.425667 -v -0.408785 7.301742 -6.417969 -v -0.428008 7.277450 -6.437167 -v -0.420308 7.276709 -6.425642 -v -0.408785 7.276215 -6.417942 -v -0.428008 7.252716 -6.440384 -v -0.420308 7.250566 -6.429042 -v -0.408785 7.249132 -6.421464 -v -0.428008 7.226893 -6.446843 -v -0.420308 7.223499 -6.435812 -v -0.408785 7.221232 -6.428442 -v -0.428008 7.200937 -6.456371 -v -0.420308 7.196412 -6.445757 -v -0.408785 7.193387 -6.438665 -v -0.428008 7.175780 -6.468660 -v -0.420308 7.170191 -6.458567 -v -0.408785 7.166457 -6.451820 -v -0.428008 7.152310 -6.483276 -v -0.420308 7.145697 -6.473821 -v -0.408785 7.141276 -6.467503 -v -0.428008 7.131345 -6.499676 -v -0.420308 7.123720 -6.491011 -v -0.408785 7.118625 -6.485219 -v -0.428008 7.113605 -6.517209 -v -0.420308 7.104969 -6.509541 -v -0.408785 7.099198 -6.504416 -v -0.428008 7.099135 -6.535816 -v -0.420308 7.089779 -6.529074 -v -0.408785 7.083529 -6.524570 -v -0.428008 7.060108 -6.594357 -v -0.420308 7.050261 -6.588353 -v -0.408785 7.043683 -6.584340 -v -0.428008 7.048975 -6.614381 -v -0.420308 7.038484 -6.609538 -v -0.408785 7.031473 -6.606299 -v -0.428008 7.040745 -6.636391 -v -0.420308 7.029673 -6.633100 -v -0.408785 7.022274 -6.630899 -v -0.428008 7.035362 -6.660459 -v -0.420308 7.023952 -6.658676 -v -0.408785 7.016328 -6.657485 -v -0.428008 7.033082 -6.685747 -v -0.420308 7.021541 -6.685439 -v -0.408785 7.013827 -6.685233 -v -0.428008 7.034019 -6.711368 -v -0.420308 7.022530 -6.712518 -v -0.408785 7.014853 -6.713285 -v -0.428008 7.038137 -6.736423 -v -0.420308 7.026888 -6.739033 -v -0.408785 7.019372 -6.740777 -v -0.428008 7.045262 -6.760034 -v -0.420308 7.034461 -6.764123 -v -0.408785 7.027242 -6.766857 -v -0.428008 7.055077 -6.781383 -v -0.420308 7.044967 -6.786981 -v -0.408785 7.038210 -6.790720 -v -0.428008 7.067640 -6.800539 -v -0.420308 7.058259 -6.807249 -v -0.408785 7.051991 -6.811730 -v -0.428008 7.168787 -6.930584 -v -0.420308 7.159939 -6.937981 -v -0.408785 7.154028 -6.942924 -v -0.428008 7.184647 -6.948249 -v -0.420308 7.176555 -6.956486 -v -0.408785 7.171146 -6.961988 -v -0.428008 7.203761 -6.964811 -v -0.420308 7.196693 -6.973937 -v -0.408785 7.191972 -6.980033 -v -0.428008 7.226048 -6.980185 -v -0.420308 7.219985 -6.990002 -v -0.408785 7.215934 -6.996562 -v -0.428008 7.250733 -6.993753 -v -0.420308 7.245674 -7.004121 -v -0.408785 7.242291 -7.011050 -v -0.428008 7.276959 -7.005016 -v -0.420308 7.272925 -7.015827 -v -0.408785 7.270230 -7.023048 -v -0.428008 7.303799 -7.013576 -v -0.420308 7.300853 -7.024732 -v -0.408785 7.298885 -7.032187 -v -0.428008 7.330293 -7.019154 -v -0.420308 7.328540 -7.030560 -v -0.408785 7.327370 -7.038184 -v -0.428008 7.355464 -7.021612 -v -0.420308 7.355062 -7.033151 -v -0.408785 7.354795 -7.040861 -v -0.428008 7.379193 -7.020949 -v -0.420308 7.379921 -7.032457 -v -0.408785 7.380408 -7.040146 -v -0.428008 7.895387 -6.969967 -v -0.420308 7.896773 -6.981411 -v -0.408785 7.897700 -6.989057 -v -0.428008 7.920329 -6.966378 -v -0.420308 7.922396 -6.977723 -v -0.408785 7.923777 -6.985302 -v -0.428008 7.947669 -6.960336 -v -0.420308 7.950505 -6.971509 -v -0.408785 7.952401 -6.978977 -v -0.428008 7.976924 -6.951931 -v -0.420308 7.980414 -6.962917 -v -0.408785 7.982746 -6.970260 -v -0.428008 8.007073 -6.941429 -v -0.420308 8.011148 -6.952211 -v -0.408785 8.013872 -6.959416 -v -0.428008 8.037089 -6.929174 -v -0.420308 8.041724 -6.939730 -v -0.408785 8.044822 -6.946783 -v -0.428008 8.065972 -6.915577 -v -0.420308 8.071171 -6.925868 -v -0.408785 8.074643 -6.932743 -v -0.428008 8.092754 -6.901104 -v -0.420308 8.098548 -6.911073 -v -0.408785 8.102420 -6.917733 -v -0.428008 8.116510 -6.886287 -v -0.420308 8.122973 -6.895837 -v -0.408785 8.127293 -6.902218 -v -0.428008 8.136840 -6.871396 -v -0.420308 8.143857 -6.880540 -v -0.408785 8.148545 -6.886651 -v -0.428008 8.631334 -6.474178 -v -0.420308 8.636976 -6.484428 -v -0.408785 8.640745 -6.491277 -v -0.428008 9.250785 -6.262261 -v -0.420308 9.254827 -6.273058 -v -0.408785 9.257527 -6.280272 -v -0.428008 9.273539 -6.252995 -v -0.420308 9.278407 -6.263454 -v -0.408785 9.281660 -6.270443 -v -0.428008 9.297337 -6.240469 -v -0.420308 9.303128 -6.250443 -v -0.408785 9.306998 -6.257108 -v -0.428008 9.321880 -6.224818 -v -0.420308 9.328440 -6.234302 -v -0.408785 9.332824 -6.240639 -v -0.428008 9.346263 -6.206564 -v -0.420308 9.353498 -6.215544 -v -0.408785 9.358331 -6.221543 -v -0.428008 9.369630 -6.186327 -v -0.420308 9.377484 -6.194769 -v -0.408785 9.382732 -6.200410 -v -0.428008 9.391178 -6.164801 -v -0.420308 9.399628 -6.172647 -v -0.408785 9.405274 -6.177890 -v -0.428008 9.410173 -6.142744 -v -0.420308 9.419218 -6.149899 -v -0.408785 9.425261 -6.154683 -v -0.428008 9.425968 -6.120978 -v -0.420308 9.435626 -6.127291 -v -0.408785 9.442080 -6.131507 -v -0.428008 9.438390 -6.099781 -v -0.420308 9.448499 -6.105322 -v -0.408785 9.455254 -6.109025 -v -0.428008 9.525598 -5.929327 -v -0.420308 9.536079 -5.934142 -v -0.408785 9.543083 -5.937357 -v -0.428008 9.534074 -5.908596 -v -0.420308 9.545096 -5.912085 -v -0.408785 9.552462 -5.914415 -v -0.428008 9.539044 -5.886885 -v -0.420308 9.550478 -5.888580 -v -0.408785 9.558118 -5.889715 -v -0.428008 9.540636 -5.864014 -v -0.420308 9.552192 -5.863945 -v -0.408785 9.559914 -5.863900 -v -0.428008 9.538743 -5.840744 -v -0.420308 9.550159 -5.838959 -v -0.408785 9.557788 -5.837766 -v -0.428008 9.533405 -5.817873 -v -0.420308 9.544434 -5.814422 -v -0.408785 9.551802 -5.812116 -v -0.428008 9.524804 -5.796171 -v -0.420308 9.535197 -5.791117 -v -0.408785 9.542141 -5.787740 -v -0.428008 9.513254 -5.776364 -v -0.420308 9.522757 -5.769783 -v -0.408785 9.529105 -5.765386 -v -0.428008 9.499187 -5.759098 -v -0.420308 9.507528 -5.751090 -v -0.408785 9.513101 -5.745739 -v -0.428008 9.482410 -5.744256 -v -0.420308 9.489679 -5.735301 -v -0.408785 9.494536 -5.729318 -v -0.428008 9.326509 -5.628330 -v -0.420308 9.333060 -5.618841 -v -0.408785 9.337438 -5.612501 -v -0.428008 9.306488 -5.615520 -v -0.420308 9.312095 -5.605426 -v -0.408785 9.315842 -5.598682 -v -0.428008 9.283608 -5.604611 -v -0.420308 9.287998 -5.593938 -v -0.408785 9.290932 -5.586806 -v -0.428008 9.257975 -5.595671 -v -0.420308 9.261224 -5.584599 -v -0.408785 9.263394 -5.577201 -v -0.428008 9.230498 -5.589083 -v -0.420308 9.232647 -5.577747 -v -0.408785 9.234082 -5.570174 -v -0.428008 9.202147 -5.585109 -v -0.420308 9.203198 -5.573619 -v -0.408785 9.203901 -5.565942 -v -0.428008 9.173919 -5.583888 -v -0.420308 9.173840 -5.572350 -v -0.408785 9.173786 -5.564641 -v -0.428008 9.146814 -5.585435 -v -0.420308 9.145529 -5.573967 -v -0.408785 9.144669 -5.566304 -v -0.428008 9.121818 -5.589633 -v -0.420308 9.119202 -5.578386 -v -0.408785 9.117455 -5.570872 -v -0.428008 9.099047 -5.596444 -v -0.420308 9.095356 -5.585518 -v -0.408785 9.092891 -5.578219 -v -0.428008 8.841131 -5.693769 -v -0.420308 8.837530 -5.682812 -v -0.408785 8.835124 -5.675489 -v -0.428008 8.814451 -5.701272 -v -0.420308 8.812284 -5.689910 -v -0.408785 8.810835 -5.682320 -v -0.428008 8.785774 -5.704235 -v -0.420308 8.785558 -5.692671 -v -0.408785 8.785414 -5.684946 -v -0.428008 8.756884 -5.702336 -v -0.420308 8.758599 -5.690900 -v -0.408785 8.759745 -5.683259 -v -0.428008 8.728630 -5.695656 -v -0.420308 8.732212 -5.684662 -v -0.408785 8.734605 -5.677316 -v -0.428008 8.701838 -5.684401 -v -0.420308 8.707183 -5.674147 -v -0.408785 8.710754 -5.667295 -v -0.428008 8.677291 -5.668897 -v -0.420308 8.684258 -5.659667 -v -0.408785 8.688913 -5.653501 -v -0.428008 8.655714 -5.649590 -v -0.420308 8.664124 -5.641652 -v -0.408785 8.669744 -5.636346 -v -0.428008 8.637758 -5.627036 -v -0.420308 8.647390 -5.620632 -v -0.408785 8.653826 -5.616353 -v -0.428008 8.624443 -5.602728 -v -0.420308 8.634789 -5.597631 -v -0.408785 8.641703 -5.594223 -v -0.428008 7.668399 -3.617157 -v -0.420309 7.678558 -3.611700 -v -0.408785 7.685346 -3.608053 -v -0.428008 7.656571 -3.597004 -v -0.420309 7.666111 -3.590492 -v -0.408785 7.672486 -3.586141 -v -0.428008 7.641404 -3.577751 -v -0.420309 7.650019 -3.570065 -v -0.408785 7.655776 -3.564929 -v -0.428008 7.622910 -3.559415 -v -0.420309 7.630558 -3.550770 -v -0.408785 7.635668 -3.544993 -v -0.428008 7.601710 -3.542709 -v -0.420309 7.608346 -3.533267 -v -0.408785 7.612781 -3.526958 -v -0.428008 7.578539 -3.528253 -v -0.420309 7.584103 -3.518142 -v -0.408785 7.587820 -3.511385 -v -0.428009 7.554215 -3.516556 -v -0.420309 7.558618 -3.505886 -v -0.408785 7.561560 -3.498757 -v -0.428009 7.529615 -3.508006 -v -0.420309 7.532732 -3.496889 -v -0.408785 7.534814 -3.489461 -v -0.428009 7.505654 -3.502847 -v -0.420309 7.507310 -3.491415 -v -0.408785 7.508416 -3.483777 -v -0.428009 7.482354 -3.501084 -v -0.420309 7.482790 -3.489560 -v -0.408785 7.483080 -3.481860 -v -0.428009 6.288272 -3.501084 -v -0.420309 6.287768 -3.489560 -v -0.408785 6.287432 -3.481860 -v -0.428009 6.266464 -3.502992 -v -0.420309 6.264455 -3.491600 -v -0.408785 6.263113 -3.483988 -v -0.428009 6.246247 -3.508409 -v -0.420309 6.242291 -3.497539 -v -0.408785 6.239647 -3.490276 -v -0.428009 6.227278 -3.517254 -v -0.420309 6.221494 -3.507236 -v -0.408785 6.217629 -3.500542 -v -0.428009 6.210134 -3.529259 -v -0.420309 6.202698 -3.520398 -v -0.408785 6.197730 -3.514477 -v -0.428009 6.195333 -3.544059 -v -0.420309 6.186472 -3.536623 -v -0.408785 6.180552 -3.531655 -v -0.428009 6.183329 -3.561203 -v -0.420309 6.173311 -3.555420 -v -0.408785 6.166617 -3.551555 -v -0.428009 6.174483 -3.580173 -v -0.420309 6.163613 -3.576216 -v -0.408785 6.156350 -3.573573 -v -0.428009 6.169066 -3.600389 -v -0.420309 6.157674 -3.598381 -v -0.408785 6.150063 -3.597039 -v -0.428009 6.167158 -3.622198 -v -0.420309 6.155634 -3.621694 -v -0.408785 6.147934 -3.621358 -vt 0.367483 0.626132 -vt 0.378188 0.625005 -vt 0.378188 0.625005 -vt 0.329686 0.655656 -vt 0.318363 0.657586 -vt 0.329553 0.654983 -vt 0.394574 0.651686 -vt 0.386735 0.656602 -vt 0.386735 0.656602 -vt 0.385807 0.656979 -vt 0.385308 0.657041 -vt 0.385308 0.657041 -vt 0.384806 0.657016 -vt 0.384806 0.657016 -vt 0.384316 0.656903 -vt 0.384316 0.656903 -vt 0.383853 0.656708 -vt 0.383853 0.656708 -vt 0.383430 0.656434 -vt 0.383430 0.656434 -vt 0.383062 0.656092 -vt 0.383062 0.656092 -vt 0.377843 0.647852 -vt 0.377533 0.647428 -vt 0.377533 0.647428 -vt 0.382759 0.655691 -vt 0.377843 0.647852 -vt 0.386287 0.656831 -vt 0.385807 0.656979 -vt 0.373951 0.645463 -vt 0.373427 0.645429 -vt 0.373427 0.645429 -vt 0.377145 0.647018 -vt 0.376691 0.646633 -vt 0.376691 0.646633 -vt 0.376183 0.646286 -vt 0.376183 0.646286 -vt 0.375639 0.645988 -vt 0.375639 0.645988 -vt 0.375074 0.645746 -vt 0.375074 0.645746 -vt 0.374506 0.645570 -vt 0.374506 0.645570 -vt 0.373951 0.645463 -vt 0.333077 0.641859 -vt 0.332581 0.641832 -vt 0.332581 0.641832 -vt 0.377145 0.647018 -vt 0.358818 0.645532 -vt 0.333077 0.641859 -vt 0.386287 0.656831 -vt 0.330254 0.643841 -vt 0.330209 0.644335 -vt 0.330209 0.644335 -vt 0.332099 0.641894 -vt 0.331647 0.642042 -vt 0.331647 0.642042 -vt 0.331238 0.642272 -vt 0.331238 0.642272 -vt 0.330885 0.642577 -vt 0.330885 0.642577 -vt 0.330598 0.642948 -vt 0.330598 0.642948 -vt 0.330385 0.643374 -vt 0.330385 0.643374 -vt 0.330254 0.643841 -vt 0.330166 0.653741 -vt 0.330190 0.654277 -vt 0.330190 0.654277 -vt 0.330166 0.653741 -vt 0.332099 0.641894 -vt 0.331565 0.658501 -vt 0.331862 0.658948 -vt 0.331862 0.658948 -vt 0.330265 0.654868 -vt 0.330389 0.655494 -vt 0.330389 0.655494 -vt 0.330558 0.656138 -vt 0.330558 0.656138 -vt 0.330767 0.656780 -vt 0.330767 0.656780 -vt 0.331009 0.657400 -vt 0.331009 0.657400 -vt 0.331278 0.657980 -vt 0.331278 0.657980 -vt 0.331565 0.658501 -vt 0.334053 0.661928 -vt 0.334332 0.662371 -vt 0.334332 0.662371 -vt 0.334053 0.661928 -vt 0.330265 0.654867 -vt 0.334758 0.666390 -vt 0.334579 0.666882 -vt 0.334579 0.666882 -vt 0.334566 0.662881 -vt 0.334749 0.663442 -vt 0.334749 0.663442 -vt 0.334875 0.664037 -vt 0.334875 0.664037 -vt 0.334940 0.664648 -vt 0.334940 0.664648 -vt 0.334941 0.665255 -vt 0.334941 0.665255 -vt 0.334880 0.665842 -vt 0.334880 0.665842 -vt 0.334758 0.666390 -vt 0.333979 0.668216 -vt 0.333730 0.668668 -vt 0.333730 0.668668 -vt 0.333979 0.668215 -vt 0.334566 0.662881 -vt 0.330443 0.670566 -vt 0.329927 0.670555 -vt 0.329927 0.670555 -vt 0.333401 0.669098 -vt 0.333003 0.669492 -vt 0.333003 0.669492 -vt 0.332547 0.669838 -vt 0.332547 0.669838 -vt 0.332048 0.670126 -vt 0.332048 0.670126 -vt 0.331520 0.670348 -vt 0.331520 0.670348 -vt 0.330979 0.670496 -vt 0.330979 0.670496 -vt 0.330443 0.670566 -vt 0.326566 0.670215 -vt 0.326048 0.670125 -vt 0.326048 0.670125 -vt 0.326566 0.670215 -vt 0.333401 0.669098 -vt 0.322679 0.667795 -vt 0.322412 0.667342 -vt 0.322412 0.667342 -vt 0.325507 0.669960 -vt 0.324959 0.669724 -vt 0.324959 0.669724 -vt 0.324421 0.669424 -vt 0.324421 0.669424 -vt 0.323909 0.669070 -vt 0.323909 0.669070 -vt 0.323439 0.668672 -vt 0.323439 0.668672 -vt 0.323024 0.668243 -vt 0.323024 0.668243 -vt 0.322679 0.667795 -vt 0.317710 0.657893 -vt 0.317492 0.657401 -vt 0.317492 0.657401 -vt 0.317710 0.657893 -vt 0.325507 0.669960 -vt 0.316723 0.652983 -vt 0.316761 0.652446 -vt 0.316761 0.652446 -vt 0.317291 0.656837 -vt 0.317113 0.656218 -vt 0.317113 0.656218 -vt 0.316963 0.655563 -vt 0.316963 0.655563 -vt 0.316846 0.654891 -vt 0.316846 0.654891 -vt 0.316766 0.654224 -vt 0.316766 0.654224 -vt 0.316724 0.653582 -vt 0.316724 0.653582 -vt 0.316723 0.652983 -vt 0.315230 0.626853 -vt 0.315138 0.626327 -vt 0.315138 0.626327 -vt 0.317291 0.656837 -vt 0.318251 0.639727 -vt 0.315230 0.626853 -vt 0.358818 0.645532 -vt 0.315802 0.622041 -vt 0.316049 0.621568 -vt 0.316049 0.621568 -vt 0.315094 0.625743 -vt 0.315099 0.625117 -vt 0.315099 0.625117 -vt 0.315152 0.624468 -vt 0.315152 0.624468 -vt 0.315253 0.623817 -vt 0.315253 0.623817 -vt 0.315398 0.623183 -vt 0.315398 0.623182 -vt 0.315583 0.622584 -vt 0.315583 0.622584 -vt 0.315802 0.622041 -vt 0.318056 0.618203 -vt 0.318353 0.617789 -vt 0.318353 0.617789 -vt 0.318056 0.618203 -vt 0.315094 0.625743 -vt 0.321731 0.616628 -vt 0.322220 0.616772 -vt 0.322220 0.616772 -vt 0.318723 0.617419 -vt 0.319154 0.617105 -vt 0.319154 0.617104 -vt 0.319634 0.616855 -vt 0.319634 0.616855 -vt 0.320147 0.616679 -vt 0.320147 0.616679 -vt 0.320679 0.616581 -vt 0.320679 0.616581 -vt 0.321212 0.616564 -vt 0.321212 0.616564 -vt 0.321731 0.616628 -vt 0.325927 0.618216 -vt 0.326403 0.618440 -vt 0.326403 0.618440 -vt 0.325927 0.618215 -vt 0.318723 0.617419 -vt 0.329046 0.621582 -vt 0.329186 0.622089 -vt 0.329186 0.622089 -vt 0.326881 0.618744 -vt 0.327348 0.619117 -vt 0.327348 0.619117 -vt 0.327788 0.619549 -vt 0.327788 0.619549 -vt 0.328190 0.620027 -vt 0.328190 0.620027 -vt 0.328540 0.620535 -vt 0.328540 0.620535 -vt 0.328828 0.621059 -vt 0.328828 0.621059 -vt 0.329046 0.621582 -vt 0.330293 0.627570 -vt 0.330435 0.628055 -vt 0.330435 0.628054 -vt 0.330293 0.627570 -vt 0.326881 0.618744 -vt 0.333213 0.630008 -vt 0.333717 0.629978 -vt 0.333717 0.629978 -vt 0.330660 0.628512 -vt 0.330961 0.628928 -vt 0.330961 0.628927 -vt 0.331327 0.629289 -vt 0.331327 0.629289 -vt 0.331749 0.629586 -vt 0.331749 0.629586 -vt 0.332214 0.629809 -vt 0.332214 0.629809 -vt 0.332707 0.629951 -vt 0.332707 0.629951 -vt 0.333213 0.630008 -vt 0.378709 0.624989 -vt 0.378709 0.624989 -vt 0.330660 0.628512 -vt 0.318251 0.639727 -vt 0.347624 0.627938 -vt 0.347624 0.627938 -vt 0.382279 0.626727 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.379261 0.625049 -vt 0.379827 0.625181 -vt 0.379827 0.625181 -vt 0.380390 0.625382 -vt 0.380390 0.625382 -vt 0.380932 0.625646 -vt 0.380932 0.625646 -vt 0.381438 0.625965 -vt 0.381438 0.625965 -vt 0.381891 0.626329 -vt 0.381891 0.626329 -vt 0.382279 0.626727 -vt 0.395485 0.647711 -vt 0.395714 0.648158 -vt 0.395714 0.648158 -vt 0.395485 0.647711 -vt 0.379261 0.625049 -vt 0.394975 0.651383 -vt 0.394574 0.651686 -vt 0.395861 0.648639 -vt 0.395924 0.649138 -vt 0.395924 0.649138 -vt 0.395898 0.649640 -vt 0.395898 0.649640 -vt 0.395786 0.650130 -vt 0.395786 0.650130 -vt 0.395590 0.650593 -vt 0.395590 0.650593 -vt 0.395317 0.651015 -vt 0.395317 0.651015 -vt 0.394975 0.651383 -vt 0.318363 0.657586 -vt 0.329686 0.655656 -vt 0.329553 0.654983 -vt 0.395861 0.648639 -vt 0.382759 0.655691 -vt 0.347709 0.628654 -vt 0.367525 0.626575 -vt 0.367551 0.626850 -vt 0.347677 0.628380 -vt 0.367483 0.626132 -vt 0.347624 0.627938 -vt 0.367483 0.626132 -vt 0.347624 0.627938 -vt 0.386287 0.656831 -vt 0.386735 0.656602 -vt 0.386287 0.656830 -vt 0.386735 0.656602 -vt 0.386119 0.656417 -vt 0.386515 0.656214 -vt 0.386015 0.656161 -vt 0.386378 0.655975 -vt 0.385806 0.656977 -vt 0.385713 0.656542 -vt 0.385308 0.657041 -vt 0.385807 0.656978 -vt 0.385292 0.656595 -vt 0.385655 0.656271 -vt 0.384806 0.657015 -vt 0.385308 0.657040 -vt 0.384867 0.656573 -vt 0.384905 0.656299 -vt 0.385281 0.656317 -vt 0.384316 0.656902 -vt 0.384806 0.657014 -vt 0.384453 0.656478 -vt 0.383853 0.656707 -vt 0.384316 0.656903 -vt 0.383853 0.656706 -vt 0.384191 0.656068 -vt 0.384538 0.656214 -vt 0.383431 0.656434 -vt 0.383431 0.656433 -vt 0.384062 0.656313 -vt 0.383705 0.656082 -vt 0.383063 0.656092 -vt 0.383063 0.656091 -vt 0.383394 0.655793 -vt 0.383875 0.655863 -vt 0.382759 0.655691 -vt 0.382759 0.655691 -vt 0.383126 0.655438 -vt 0.383599 0.655607 -vt 0.377843 0.647852 -vt 0.377843 0.647852 -vt 0.378212 0.647602 -vt 0.383353 0.655282 -vt 0.377533 0.647428 -vt 0.377533 0.647428 -vt 0.377876 0.647143 -vt 0.378440 0.647448 -vt 0.377145 0.647018 -vt 0.377145 0.647018 -vt 0.377451 0.646694 -vt 0.377641 0.646494 -vt 0.378088 0.646966 -vt 0.376691 0.646633 -vt 0.376691 0.646633 -vt 0.376961 0.646278 -vt 0.377128 0.646059 -vt 0.376184 0.646286 -vt 0.376183 0.646286 -vt 0.376417 0.645907 -vt 0.376561 0.645672 -vt 0.375639 0.645988 -vt 0.375639 0.645988 -vt 0.375834 0.645587 -vt 0.375074 0.645746 -vt 0.375074 0.645746 -vt 0.375228 0.645327 -vt 0.375955 0.645339 -vt 0.374506 0.645570 -vt 0.374506 0.645570 -vt 0.374614 0.645138 -vt 0.375324 0.645069 -vt 0.373951 0.645463 -vt 0.373951 0.645463 -vt 0.374007 0.645020 -vt 0.374681 0.644869 -vt 0.373427 0.645429 -vt 0.373427 0.645429 -vt 0.373440 0.644984 -vt 0.373447 0.644708 -vt 0.374043 0.644746 -vt 0.358818 0.645531 -vt 0.358818 0.645531 -vt 0.358848 0.645087 -vt 0.358867 0.644810 -vt 0.333077 0.641859 -vt 0.333077 0.641859 -vt 0.333120 0.641415 -vt 0.332581 0.641832 -vt 0.332581 0.641832 -vt 0.332564 0.641385 -vt 0.333147 0.641141 -vt 0.332099 0.641893 -vt 0.332099 0.641894 -vt 0.332001 0.641457 -vt 0.332554 0.641109 -vt 0.331647 0.642041 -vt 0.331647 0.642042 -vt 0.331467 0.641633 -vt 0.331940 0.641187 -vt 0.331238 0.642271 -vt 0.331238 0.642272 -vt 0.330981 0.641905 -vt 0.331356 0.641378 -vt 0.330885 0.642577 -vt 0.330560 0.642269 -vt 0.330822 0.641679 -vt 0.330597 0.642948 -vt 0.330598 0.642948 -vt 0.330885 0.642577 -vt 0.330219 0.642710 -vt 0.329984 0.642563 -vt 0.330359 0.642078 -vt 0.330385 0.643374 -vt 0.330385 0.643374 -vt 0.329968 0.643212 -vt 0.329709 0.643113 -vt 0.330254 0.643841 -vt 0.330254 0.643841 -vt 0.329815 0.643759 -vt 0.329542 0.643709 -vt 0.330208 0.644335 -vt 0.330209 0.644335 -vt 0.329764 0.644314 -vt 0.329488 0.644301 -vt 0.330166 0.653741 -vt 0.330166 0.653741 -vt 0.329721 0.653750 -vt 0.329445 0.653755 -vt 0.330190 0.654277 -vt 0.330190 0.654277 -vt 0.329746 0.654315 -vt 0.330265 0.654867 -vt 0.330265 0.654867 -vt 0.329825 0.654939 -vt 0.329471 0.654339 -vt 0.330389 0.655494 -vt 0.330389 0.655494 -vt 0.329955 0.655594 -vt 0.330558 0.656138 -vt 0.330558 0.656138 -vt 0.330131 0.656264 -vt 0.329866 0.656342 -vt 0.330767 0.656780 -vt 0.330087 0.657023 -vt 0.330767 0.656780 -vt 0.331009 0.657400 -vt 0.331009 0.657400 -vt 0.330347 0.656930 -vt 0.330600 0.657575 -vt 0.331278 0.657980 -vt 0.331278 0.657980 -vt 0.330881 0.658181 -vt 0.330346 0.657683 -vt 0.331565 0.658501 -vt 0.331565 0.658501 -vt 0.331184 0.658732 -vt 0.330635 0.658306 -vt 0.331862 0.658948 -vt 0.331862 0.658948 -vt 0.331497 0.659204 -vt 0.331271 0.659362 -vt 0.330948 0.658875 -vt 0.334053 0.661928 -vt 0.334053 0.661928 -vt 0.333685 0.662179 -vt 0.333457 0.662334 -vt 0.334332 0.662372 -vt 0.334331 0.662372 -vt 0.333940 0.662584 -vt 0.333696 0.662715 -vt 0.334566 0.662881 -vt 0.334566 0.662882 -vt 0.334151 0.663044 -vt 0.334749 0.663442 -vt 0.334748 0.663442 -vt 0.334318 0.663558 -vt 0.333894 0.663144 -vt 0.334875 0.664037 -vt 0.334874 0.664037 -vt 0.334435 0.664106 -vt 0.334052 0.663629 -vt 0.334939 0.664648 -vt 0.334939 0.664648 -vt 0.334219 0.664687 -vt 0.334162 0.664150 -vt 0.334941 0.665255 -vt 0.334941 0.665255 -vt 0.334496 0.665233 -vt 0.334495 0.664672 -vt 0.334220 0.665219 -vt 0.334880 0.665842 -vt 0.334880 0.665842 -vt 0.334440 0.665770 -vt 0.334168 0.665726 -vt 0.334758 0.666390 -vt 0.334757 0.666390 -vt 0.334330 0.666264 -vt 0.334065 0.666187 -vt 0.334579 0.666882 -vt 0.334579 0.666882 -vt 0.334166 0.666714 -vt 0.333979 0.668216 -vt 0.333979 0.668215 -vt 0.333581 0.668017 -vt 0.333333 0.667893 -vt 0.333911 0.666610 -vt 0.333730 0.668668 -vt 0.333729 0.668667 -vt 0.333356 0.668424 -vt 0.333124 0.668273 -vt 0.333401 0.669097 -vt 0.333401 0.669097 -vt 0.333066 0.668803 -vt 0.333003 0.669492 -vt 0.333002 0.669491 -vt 0.332711 0.669155 -vt 0.332859 0.668620 -vt 0.332547 0.669838 -vt 0.332547 0.669837 -vt 0.332300 0.669467 -vt 0.332529 0.668946 -vt 0.332048 0.670126 -vt 0.331850 0.669727 -vt 0.332147 0.669236 -vt 0.331520 0.670348 -vt 0.331519 0.670347 -vt 0.332047 0.670126 -vt 0.331374 0.669926 -vt 0.331284 0.669665 -vt 0.331727 0.669480 -vt 0.330979 0.670496 -vt 0.330979 0.670495 -vt 0.330891 0.670058 -vt 0.330837 0.669787 -vt 0.330443 0.670565 -vt 0.330443 0.670564 -vt 0.330419 0.670120 -vt 0.330403 0.669843 -vt 0.329927 0.670555 -vt 0.329927 0.670555 -vt 0.329954 0.670110 -vt 0.326566 0.670215 -vt 0.326566 0.670215 -vt 0.326626 0.669773 -vt 0.329970 0.669835 -vt 0.326048 0.670125 -vt 0.326048 0.670124 -vt 0.326152 0.669691 -vt 0.326216 0.669422 -vt 0.326664 0.669500 -vt 0.325507 0.669960 -vt 0.325507 0.669959 -vt 0.325661 0.669541 -vt 0.324959 0.669724 -vt 0.324959 0.669723 -vt 0.325156 0.669324 -vt 0.325756 0.669282 -vt 0.324421 0.669424 -vt 0.324421 0.669424 -vt 0.324657 0.669046 -vt 0.325278 0.669076 -vt 0.323909 0.669070 -vt 0.323909 0.669069 -vt 0.324180 0.668716 -vt 0.324802 0.668811 -vt 0.323439 0.668672 -vt 0.323439 0.668672 -vt 0.323743 0.668347 -vt 0.323932 0.668146 -vt 0.324348 0.668497 -vt 0.323024 0.668243 -vt 0.323025 0.668242 -vt 0.323362 0.667951 -vt 0.323571 0.667771 -vt 0.322679 0.667795 -vt 0.322679 0.667794 -vt 0.323048 0.667545 -vt 0.323277 0.667390 -vt 0.322412 0.667342 -vt 0.322412 0.667342 -vt 0.322803 0.667130 -vt 0.317711 0.657893 -vt 0.317711 0.657893 -vt 0.318113 0.657703 -vt 0.323046 0.666998 -vt 0.317493 0.657401 -vt 0.317493 0.657401 -vt 0.317906 0.657236 -vt 0.318163 0.657133 -vt 0.317291 0.656837 -vt 0.317292 0.656837 -vt 0.317715 0.656700 -vt 0.317113 0.656218 -vt 0.317113 0.656218 -vt 0.317544 0.656107 -vt 0.317978 0.656616 -vt 0.316963 0.655563 -vt 0.316963 0.655563 -vt 0.317400 0.655475 -vt 0.317811 0.656038 -vt 0.316846 0.654891 -vt 0.317560 0.654786 -vt 0.317670 0.655420 -vt 0.316766 0.654225 -vt 0.316846 0.654891 -vt 0.316766 0.654224 -vt 0.317209 0.654184 -vt 0.317287 0.654826 -vt 0.317484 0.654158 -vt 0.316724 0.653582 -vt 0.316724 0.653582 -vt 0.317169 0.653567 -vt 0.317445 0.653557 -vt 0.316723 0.652983 -vt 0.316723 0.652983 -vt 0.317168 0.652998 -vt 0.317444 0.653008 -vt 0.316761 0.652446 -vt 0.316761 0.652446 -vt 0.317205 0.652488 -vt 0.318253 0.639727 -vt 0.318251 0.639727 -vt 0.318702 0.639701 -vt 0.317479 0.652514 -vt 0.315230 0.626853 -vt 0.315230 0.626853 -vt 0.315666 0.626763 -vt 0.315937 0.626708 -vt 0.318982 0.639685 -vt 0.315138 0.626327 -vt 0.315139 0.626327 -vt 0.315581 0.626272 -vt 0.315855 0.626238 -vt 0.315094 0.625743 -vt 0.315094 0.625743 -vt 0.315539 0.625728 -vt 0.315099 0.625117 -vt 0.315099 0.625117 -vt 0.315544 0.625137 -vt 0.315815 0.625718 -vt 0.315152 0.624468 -vt 0.315153 0.624468 -vt 0.315595 0.624521 -vt 0.315819 0.625149 -vt 0.315253 0.623817 -vt 0.315691 0.623900 -vt 0.315962 0.623953 -vt 0.315869 0.624553 -vt 0.315398 0.623182 -vt 0.315399 0.623183 -vt 0.315253 0.623817 -vt 0.315828 0.623298 -vt 0.316095 0.623369 -vt 0.315583 0.622584 -vt 0.315583 0.622584 -vt 0.316003 0.622733 -vt 0.316263 0.622826 -vt 0.315802 0.622041 -vt 0.315803 0.622041 -vt 0.316207 0.622227 -vt 0.316458 0.622343 -vt 0.316049 0.621568 -vt 0.316049 0.621568 -vt 0.316437 0.621785 -vt 0.318056 0.618203 -vt 0.318056 0.618203 -vt 0.318428 0.618447 -vt 0.318659 0.618598 -vt 0.316678 0.621919 -vt 0.318353 0.617789 -vt 0.318354 0.617790 -vt 0.318693 0.618078 -vt 0.318904 0.618257 -vt 0.318723 0.617419 -vt 0.318724 0.617420 -vt 0.319013 0.617758 -vt 0.319154 0.617105 -vt 0.319155 0.617105 -vt 0.319389 0.617484 -vt 0.319193 0.617969 -vt 0.319634 0.616856 -vt 0.319634 0.616856 -vt 0.319810 0.617266 -vt 0.319535 0.617719 -vt 0.320147 0.616679 -vt 0.320148 0.616680 -vt 0.320331 0.617378 -vt 0.319919 0.617520 -vt 0.320679 0.616581 -vt 0.320679 0.616582 -vt 0.320727 0.617025 -vt 0.320261 0.617111 -vt 0.320756 0.617300 -vt 0.321212 0.616564 -vt 0.321212 0.616565 -vt 0.321192 0.617010 -vt 0.321179 0.617286 -vt 0.321731 0.616628 -vt 0.321731 0.616629 -vt 0.321640 0.617065 -vt 0.321584 0.617337 -vt 0.322220 0.616772 -vt 0.322220 0.616773 -vt 0.322076 0.617194 -vt 0.325927 0.618215 -vt 0.325927 0.618216 -vt 0.325751 0.618625 -vt 0.321987 0.617455 -vt 0.326403 0.618440 -vt 0.326402 0.618441 -vt 0.326187 0.618831 -vt 0.326054 0.619073 -vt 0.325642 0.618878 -vt 0.326881 0.618744 -vt 0.326881 0.618744 -vt 0.326622 0.619107 -vt 0.327347 0.619117 -vt 0.327347 0.619118 -vt 0.327052 0.619451 -vt 0.326461 0.619331 -vt 0.327788 0.619550 -vt 0.327788 0.619550 -vt 0.327462 0.619852 -vt 0.326869 0.619658 -vt 0.328190 0.620027 -vt 0.328190 0.620027 -vt 0.327616 0.620464 -vt 0.327259 0.620040 -vt 0.328540 0.620535 -vt 0.328540 0.620535 -vt 0.328161 0.620769 -vt 0.327836 0.620297 -vt 0.327926 0.620915 -vt 0.328828 0.621059 -vt 0.328828 0.621059 -vt 0.328427 0.621252 -vt 0.328178 0.621372 -vt 0.329046 0.621582 -vt 0.329045 0.621582 -vt 0.328624 0.621727 -vt 0.328363 0.621817 -vt 0.329186 0.622089 -vt 0.329185 0.622089 -vt 0.328753 0.622192 -vt 0.330293 0.627570 -vt 0.330293 0.627570 -vt 0.329860 0.627677 -vt 0.328484 0.622256 -vt 0.330435 0.628055 -vt 0.330435 0.628054 -vt 0.330019 0.628217 -vt 0.329592 0.627743 -vt 0.330660 0.628512 -vt 0.330660 0.628512 -vt 0.330277 0.628742 -vt 0.330040 0.628884 -vt 0.329761 0.628317 -vt 0.330960 0.628928 -vt 0.330961 0.628927 -vt 0.330622 0.629218 -vt 0.330411 0.629398 -vt 0.331327 0.629289 -vt 0.331327 0.629289 -vt 0.331041 0.629632 -vt 0.330864 0.629845 -vt 0.331749 0.629586 -vt 0.331749 0.629586 -vt 0.331524 0.629971 -vt 0.332214 0.629809 -vt 0.332214 0.629809 -vt 0.332055 0.630226 -vt 0.331384 0.630210 -vt 0.332707 0.629951 -vt 0.332707 0.629951 -vt 0.332620 0.630389 -vt 0.331956 0.630485 -vt 0.333213 0.630008 -vt 0.333213 0.630008 -vt 0.333201 0.630455 -vt 0.332566 0.630661 -vt 0.333717 0.629978 -vt 0.333717 0.629978 -vt 0.333763 0.630422 -vt 0.333791 0.630696 -vt 0.333194 0.630731 -vt 0.378188 0.625005 -vt 0.378188 0.625005 -vt 0.378218 0.625449 -vt 0.378236 0.625724 -vt 0.378709 0.624990 -vt 0.378709 0.624990 -vt 0.378692 0.625435 -vt 0.378681 0.625712 -vt 0.379261 0.625049 -vt 0.379261 0.625049 -vt 0.379186 0.625489 -vt 0.379827 0.625181 -vt 0.379827 0.625182 -vt 0.379701 0.625609 -vt 0.379140 0.625761 -vt 0.380390 0.625383 -vt 0.380390 0.625383 -vt 0.380217 0.625793 -vt 0.379623 0.625874 -vt 0.380932 0.625646 -vt 0.380932 0.625647 -vt 0.380716 0.626036 -vt 0.380110 0.626048 -vt 0.381438 0.625965 -vt 0.381438 0.625966 -vt 0.381179 0.626328 -vt 0.381018 0.626553 -vt 0.380582 0.626277 -vt 0.381891 0.626329 -vt 0.381891 0.626330 -vt 0.381592 0.626659 -vt 0.381406 0.626864 -vt 0.382279 0.626727 -vt 0.382278 0.626727 -vt 0.381939 0.627016 -vt 0.381728 0.627194 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382220 0.627397 -vt 0.395485 0.647711 -vt 0.395484 0.647711 -vt 0.395097 0.647930 -vt 0.394857 0.648067 -vt 0.381992 0.627552 -vt 0.395713 0.648158 -vt 0.395712 0.648159 -vt 0.395300 0.648326 -vt 0.395043 0.648431 -vt 0.395861 0.648639 -vt 0.395424 0.648732 -vt 0.395154 0.648790 -vt 0.395923 0.649138 -vt 0.395922 0.649138 -vt 0.395860 0.648639 -vt 0.395477 0.649154 -vt 0.395898 0.649640 -vt 0.395896 0.649640 -vt 0.395455 0.649578 -vt 0.395200 0.649164 -vt 0.395786 0.650130 -vt 0.395360 0.649992 -vt 0.395181 0.649540 -vt 0.395590 0.650592 -vt 0.395589 0.650592 -vt 0.395784 0.650129 -vt 0.395195 0.650384 -vt 0.395097 0.649908 -vt 0.395316 0.651014 -vt 0.394964 0.650741 -vt 0.394746 0.650570 -vt 0.394950 0.650254 -vt 0.395317 0.651015 -vt 0.394974 0.651382 -vt 0.394675 0.651052 -vt 0.394974 0.651383 -vt 0.394574 0.651686 -vt 0.394574 0.651686 -vt 0.394321 0.651320 -vt 0.394489 0.650846 -vt 0.394164 0.651092 -vt 0.367483 0.626132 -vt 0.347624 0.627938 -vt 0.367483 0.626132 -vt 0.347624 0.627938 -vt 0.367483 0.626132 -vt 0.347677 0.628381 -vt 0.367525 0.626575 -vt 0.347709 0.628655 -vt 0.367551 0.626850 -vt 0.386015 0.656160 -vt 0.386515 0.656215 -vt 0.386378 0.655975 -vt 0.386119 0.656417 -vt 0.386735 0.656602 -vt 0.386287 0.656830 -vt 0.386735 0.656602 -vt 0.386287 0.656831 -vt 0.385713 0.656542 -vt 0.385806 0.656977 -vt 0.385655 0.656271 -vt 0.385292 0.656595 -vt 0.385308 0.657041 -vt 0.385807 0.656978 -vt 0.384905 0.656299 -vt 0.385281 0.656318 -vt 0.384867 0.656573 -vt 0.385308 0.657040 -vt 0.384806 0.657015 -vt 0.384453 0.656478 -vt 0.384806 0.657014 -vt 0.384316 0.656902 -vt 0.384191 0.656068 -vt 0.384538 0.656215 -vt 0.384062 0.656313 -vt 0.383853 0.656707 -vt 0.384316 0.656903 -vt 0.383875 0.655863 -vt 0.383431 0.656433 -vt 0.383853 0.656706 -vt 0.383431 0.656434 -vt 0.383394 0.655793 -vt 0.383705 0.656082 -vt 0.383063 0.656091 -vt 0.383063 0.656092 -vt 0.383599 0.655607 -vt 0.383126 0.655438 -vt 0.382759 0.655691 -vt 0.382759 0.655691 -vt 0.383353 0.655282 -vt 0.378212 0.647602 -vt 0.377843 0.647852 -vt 0.377843 0.647852 -vt 0.378440 0.647447 -vt 0.377876 0.647143 -vt 0.377533 0.647428 -vt 0.377533 0.647428 -vt 0.377641 0.646493 -vt 0.378088 0.646966 -vt 0.377451 0.646694 -vt 0.377145 0.647018 -vt 0.377145 0.647018 -vt 0.377128 0.646059 -vt 0.376961 0.646279 -vt 0.376691 0.646633 -vt 0.376691 0.646633 -vt 0.376561 0.645671 -vt 0.376417 0.645907 -vt 0.376183 0.646286 -vt 0.376184 0.646286 -vt 0.375834 0.645587 -vt 0.375639 0.645988 -vt 0.375639 0.645988 -vt 0.375955 0.645339 -vt 0.375228 0.645328 -vt 0.375074 0.645746 -vt 0.375074 0.645746 -vt 0.375324 0.645069 -vt 0.374614 0.645137 -vt 0.374506 0.645570 -vt 0.374506 0.645570 -vt 0.374681 0.644869 -vt 0.374007 0.645020 -vt 0.373951 0.645463 -vt 0.373951 0.645463 -vt 0.373447 0.644708 -vt 0.374042 0.644746 -vt 0.373440 0.644984 -vt 0.373427 0.645429 -vt 0.373427 0.645429 -vt 0.358867 0.644810 -vt 0.358848 0.645086 -vt 0.358818 0.645531 -vt 0.358818 0.645531 -vt 0.333120 0.641416 -vt 0.333077 0.641859 -vt 0.333077 0.641859 -vt 0.333147 0.641141 -vt 0.332564 0.641385 -vt 0.332581 0.641832 -vt 0.332581 0.641832 -vt 0.332554 0.641108 -vt 0.332001 0.641457 -vt 0.332099 0.641894 -vt 0.332099 0.641893 -vt 0.331940 0.641187 -vt 0.331467 0.641632 -vt 0.331647 0.642042 -vt 0.331647 0.642041 -vt 0.331356 0.641378 -vt 0.330981 0.641905 -vt 0.331238 0.642272 -vt 0.331238 0.642271 -vt 0.330822 0.641679 -vt 0.330560 0.642269 -vt 0.330885 0.642577 -vt 0.329984 0.642563 -vt 0.330359 0.642079 -vt 0.330219 0.642710 -vt 0.330885 0.642577 -vt 0.330598 0.642948 -vt 0.330597 0.642948 -vt 0.329710 0.643113 -vt 0.329968 0.643213 -vt 0.330385 0.643374 -vt 0.330385 0.643374 -vt 0.329542 0.643709 -vt 0.329815 0.643760 -vt 0.330254 0.643841 -vt 0.330254 0.643841 -vt 0.329488 0.644300 -vt 0.329764 0.644314 -vt 0.330209 0.644335 -vt 0.330208 0.644336 -vt 0.329445 0.653755 -vt 0.329721 0.653750 -vt 0.330166 0.653741 -vt 0.330166 0.653741 -vt 0.329746 0.654315 -vt 0.330190 0.654277 -vt 0.330190 0.654277 -vt 0.329471 0.654338 -vt 0.329825 0.654938 -vt 0.330265 0.654867 -vt 0.330265 0.654867 -vt 0.329955 0.655594 -vt 0.330389 0.655494 -vt 0.330389 0.655494 -vt 0.329865 0.656341 -vt 0.330130 0.656264 -vt 0.330558 0.656138 -vt 0.330558 0.656138 -vt 0.330088 0.657023 -vt 0.330767 0.656780 -vt 0.330600 0.657575 -vt 0.330347 0.656930 -vt 0.331009 0.657400 -vt 0.331009 0.657400 -vt 0.330767 0.656780 -vt 0.330346 0.657684 -vt 0.330881 0.658181 -vt 0.331278 0.657980 -vt 0.331278 0.657980 -vt 0.330635 0.658306 -vt 0.331184 0.658732 -vt 0.331565 0.658501 -vt 0.331565 0.658501 -vt 0.331271 0.659361 -vt 0.330948 0.658875 -vt 0.331497 0.659203 -vt 0.331862 0.658948 -vt 0.331862 0.658948 -vt 0.333457 0.662334 -vt 0.333685 0.662179 -vt 0.334053 0.661928 -vt 0.334053 0.661928 -vt 0.333697 0.662716 -vt 0.333940 0.662584 -vt 0.334331 0.662372 -vt 0.334332 0.662372 -vt 0.334151 0.663044 -vt 0.334566 0.662882 -vt 0.334566 0.662881 -vt 0.333894 0.663144 -vt 0.334318 0.663557 -vt 0.334748 0.663442 -vt 0.334749 0.663442 -vt 0.334052 0.663629 -vt 0.334435 0.664106 -vt 0.334874 0.664037 -vt 0.334875 0.664037 -vt 0.334161 0.664150 -vt 0.334494 0.664672 -vt 0.334939 0.664648 -vt 0.334939 0.664648 -vt 0.334220 0.665219 -vt 0.334219 0.664687 -vt 0.334496 0.665233 -vt 0.334941 0.665255 -vt 0.334941 0.665255 -vt 0.334167 0.665726 -vt 0.334440 0.665771 -vt 0.334880 0.665842 -vt 0.334880 0.665842 -vt 0.334065 0.666187 -vt 0.334330 0.666265 -vt 0.334757 0.666389 -vt 0.334758 0.666390 -vt 0.334166 0.666714 -vt 0.334579 0.666882 -vt 0.334579 0.666882 -vt 0.333333 0.667893 -vt 0.333910 0.666610 -vt 0.333580 0.668017 -vt 0.333979 0.668215 -vt 0.333979 0.668215 -vt 0.333124 0.668273 -vt 0.333356 0.668424 -vt 0.333729 0.668667 -vt 0.333730 0.668668 -vt 0.333066 0.668803 -vt 0.333401 0.669097 -vt 0.333401 0.669097 -vt 0.332859 0.668620 -vt 0.332711 0.669155 -vt 0.333002 0.669491 -vt 0.333003 0.669492 -vt 0.332529 0.668946 -vt 0.332300 0.669467 -vt 0.332547 0.669837 -vt 0.332547 0.669838 -vt 0.332147 0.669237 -vt 0.331850 0.669727 -vt 0.332048 0.670126 -vt 0.331284 0.669665 -vt 0.331727 0.669479 -vt 0.331374 0.669926 -vt 0.332047 0.670126 -vt 0.331519 0.670347 -vt 0.331520 0.670348 -vt 0.330837 0.669787 -vt 0.330892 0.670058 -vt 0.330979 0.670495 -vt 0.330979 0.670496 -vt 0.330403 0.669843 -vt 0.330418 0.670120 -vt 0.330443 0.670564 -vt 0.330443 0.670565 -vt 0.329953 0.670111 -vt 0.329927 0.670555 -vt 0.329927 0.670555 -vt 0.329970 0.669834 -vt 0.326626 0.669774 -vt 0.326566 0.670215 -vt 0.326566 0.670215 -vt 0.326216 0.669422 -vt 0.326664 0.669500 -vt 0.326152 0.669692 -vt 0.326048 0.670124 -vt 0.326048 0.670125 -vt 0.325661 0.669541 -vt 0.325507 0.669959 -vt 0.325507 0.669960 -vt 0.325756 0.669282 -vt 0.325156 0.669324 -vt 0.324959 0.669723 -vt 0.324959 0.669724 -vt 0.325278 0.669076 -vt 0.324657 0.669046 -vt 0.324421 0.669424 -vt 0.324421 0.669424 -vt 0.324802 0.668811 -vt 0.324180 0.668716 -vt 0.323909 0.669070 -vt 0.323932 0.668145 -vt 0.324348 0.668497 -vt 0.323743 0.668347 -vt 0.323909 0.669069 -vt 0.323439 0.668672 -vt 0.323439 0.668672 -vt 0.323571 0.667771 -vt 0.323362 0.667951 -vt 0.323025 0.668242 -vt 0.323024 0.668243 -vt 0.323277 0.667390 -vt 0.323048 0.667545 -vt 0.322679 0.667794 -vt 0.322679 0.667795 -vt 0.322803 0.667130 -vt 0.322412 0.667342 -vt 0.322412 0.667342 -vt 0.323046 0.666998 -vt 0.318113 0.657703 -vt 0.317711 0.657893 -vt 0.317711 0.657893 -vt 0.318163 0.657133 -vt 0.317906 0.657236 -vt 0.317493 0.657401 -vt 0.317493 0.657401 -vt 0.317715 0.656701 -vt 0.317292 0.656837 -vt 0.317291 0.656837 -vt 0.317978 0.656616 -vt 0.317544 0.656106 -vt 0.317113 0.656218 -vt 0.317113 0.656218 -vt 0.317811 0.656038 -vt 0.317400 0.655475 -vt 0.316963 0.655563 -vt 0.316963 0.655563 -vt 0.317560 0.654786 -vt 0.317670 0.655421 -vt 0.316846 0.654891 -vt 0.316846 0.654891 -vt 0.317484 0.654158 -vt 0.317287 0.654827 -vt 0.317209 0.654183 -vt 0.316766 0.654224 -vt 0.316766 0.654224 -vt 0.317445 0.653557 -vt 0.317169 0.653567 -vt 0.316724 0.653582 -vt 0.316724 0.653582 -vt 0.317444 0.653008 -vt 0.317168 0.652998 -vt 0.316723 0.652983 -vt 0.316723 0.652983 -vt 0.317205 0.652488 -vt 0.316761 0.652446 -vt 0.316761 0.652446 -vt 0.317479 0.652515 -vt 0.318703 0.639701 -vt 0.318251 0.639727 -vt 0.318253 0.639727 -vt 0.315937 0.626707 -vt 0.318982 0.639685 -vt 0.315667 0.626763 -vt 0.315230 0.626852 -vt 0.315230 0.626853 -vt 0.315854 0.626238 -vt 0.315581 0.626272 -vt 0.315139 0.626327 -vt 0.315138 0.626327 -vt 0.315539 0.625728 -vt 0.315094 0.625743 -vt 0.315094 0.625743 -vt 0.315815 0.625719 -vt 0.315544 0.625137 -vt 0.315099 0.625117 -vt 0.315099 0.625117 -vt 0.315820 0.625149 -vt 0.315595 0.624521 -vt 0.315153 0.624468 -vt 0.315152 0.624468 -vt 0.315962 0.623952 -vt 0.315869 0.624553 -vt 0.315691 0.623900 -vt 0.315253 0.623817 -vt 0.316095 0.623370 -vt 0.315828 0.623298 -vt 0.315253 0.623817 -vt 0.315399 0.623183 -vt 0.315398 0.623182 -vt 0.316263 0.622826 -vt 0.316003 0.622733 -vt 0.315583 0.622584 -vt 0.315583 0.622584 -vt 0.316458 0.622343 -vt 0.316207 0.622227 -vt 0.315803 0.622041 -vt 0.315802 0.622041 -vt 0.316437 0.621785 -vt 0.316049 0.621568 -vt 0.316049 0.621568 -vt 0.318659 0.618599 -vt 0.316678 0.621920 -vt 0.318428 0.618447 -vt 0.318056 0.618203 -vt 0.318056 0.618203 -vt 0.318904 0.618257 -vt 0.318693 0.618077 -vt 0.318354 0.617789 -vt 0.318353 0.617789 -vt 0.319013 0.617758 -vt 0.318724 0.617420 -vt 0.318723 0.617419 -vt 0.319193 0.617968 -vt 0.319389 0.617484 -vt 0.319155 0.617105 -vt 0.319154 0.617105 -vt 0.319535 0.617719 -vt 0.319810 0.617266 -vt 0.319634 0.616856 -vt 0.319634 0.616856 -vt 0.320331 0.617378 -vt 0.319918 0.617520 -vt 0.320147 0.616680 -vt 0.320147 0.616679 -vt 0.320756 0.617299 -vt 0.320260 0.617110 -vt 0.320727 0.617024 -vt 0.320679 0.616582 -vt 0.320679 0.616581 -vt 0.321179 0.617286 -vt 0.321192 0.617010 -vt 0.321212 0.616565 -vt 0.321212 0.616564 -vt 0.321584 0.617336 -vt 0.321640 0.617066 -vt 0.321731 0.616629 -vt 0.321731 0.616629 -vt 0.322076 0.617193 -vt 0.322220 0.616773 -vt 0.322220 0.616772 -vt 0.321987 0.617456 -vt 0.325751 0.618624 -vt 0.325927 0.618216 -vt 0.325927 0.618216 -vt 0.326054 0.619073 -vt 0.325642 0.618878 -vt 0.326188 0.618831 -vt 0.326402 0.618441 -vt 0.326403 0.618440 -vt 0.326622 0.619107 -vt 0.326881 0.618744 -vt 0.326881 0.618744 -vt 0.326461 0.619331 -vt 0.327052 0.619451 -vt 0.327347 0.619118 -vt 0.327347 0.619117 -vt 0.326869 0.619658 -vt 0.327461 0.619852 -vt 0.327788 0.619550 -vt 0.327788 0.619550 -vt 0.327616 0.620464 -vt 0.327259 0.620040 -vt 0.328190 0.620027 -vt 0.328190 0.620027 -vt 0.327926 0.620915 -vt 0.327835 0.620297 -vt 0.328161 0.620769 -vt 0.328540 0.620535 -vt 0.328540 0.620535 -vt 0.328178 0.621372 -vt 0.328427 0.621252 -vt 0.328828 0.621059 -vt 0.328828 0.621059 -vt 0.328363 0.621817 -vt 0.328624 0.621727 -vt 0.329045 0.621582 -vt 0.329046 0.621582 -vt 0.328753 0.622193 -vt 0.329185 0.622089 -vt 0.329186 0.622089 -vt 0.328484 0.622257 -vt 0.329860 0.627677 -vt 0.330293 0.627570 -vt 0.330293 0.627570 -vt 0.329592 0.627743 -vt 0.330019 0.628217 -vt 0.330435 0.628054 -vt 0.330435 0.628055 -vt 0.330040 0.628884 -vt 0.329761 0.628317 -vt 0.330277 0.628741 -vt 0.330660 0.628512 -vt 0.330660 0.628512 -vt 0.330411 0.629399 -vt 0.330622 0.629218 -vt 0.330961 0.628927 -vt 0.330960 0.628928 -vt 0.330864 0.629845 -vt 0.331041 0.629632 -vt 0.331327 0.629289 -vt 0.331327 0.629289 -vt 0.331524 0.629972 -vt 0.331749 0.629586 -vt 0.331749 0.629586 -vt 0.331383 0.630210 -vt 0.332055 0.630227 -vt 0.332214 0.629809 -vt 0.332214 0.629809 -vt 0.331956 0.630485 -vt 0.332620 0.630389 -vt 0.332707 0.629951 -vt 0.332707 0.629951 -vt 0.332566 0.630661 -vt 0.333201 0.630455 -vt 0.333213 0.630008 -vt 0.333213 0.630008 -vt 0.333791 0.630697 -vt 0.333194 0.630732 -vt 0.333763 0.630421 -vt 0.333717 0.629978 -vt 0.333717 0.629978 -vt 0.378236 0.625725 -vt 0.378218 0.625449 -vt 0.378188 0.625005 -vt 0.378188 0.625005 -vt 0.378681 0.625712 -vt 0.378692 0.625435 -vt 0.378709 0.624990 -vt 0.378709 0.624990 -vt 0.379187 0.625488 -vt 0.379261 0.625049 -vt 0.379261 0.625049 -vt 0.379140 0.625761 -vt 0.379701 0.625609 -vt 0.379827 0.625182 -vt 0.379827 0.625181 -vt 0.379623 0.625874 -vt 0.380217 0.625793 -vt 0.380390 0.625383 -vt 0.380390 0.625383 -vt 0.380110 0.626048 -vt 0.380716 0.626036 -vt 0.380932 0.625647 -vt 0.380932 0.625646 -vt 0.381019 0.626553 -vt 0.380581 0.626277 -vt 0.381179 0.626328 -vt 0.381438 0.625966 -vt 0.381438 0.625965 -vt 0.381406 0.626864 -vt 0.381592 0.626659 -vt 0.381891 0.626330 -vt 0.381891 0.626329 -vt 0.381728 0.627194 -vt 0.381939 0.627015 -vt 0.382278 0.626727 -vt 0.382279 0.626727 -vt 0.382220 0.627397 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.394857 0.648067 -vt 0.381992 0.627552 -vt 0.395097 0.647931 -vt 0.395484 0.647711 -vt 0.395485 0.647711 -vt 0.395043 0.648430 -vt 0.395300 0.648326 -vt 0.395712 0.648159 -vt 0.395713 0.648158 -vt 0.395154 0.648790 -vt 0.395860 0.648639 -vt 0.395477 0.649154 -vt 0.395425 0.648732 -vt 0.395922 0.649138 -vt 0.395861 0.648639 -vt 0.395200 0.649164 -vt 0.395456 0.649578 -vt 0.395896 0.649640 -vt 0.395898 0.649640 -vt 0.395923 0.649138 -vt 0.395181 0.649540 -vt 0.395361 0.649993 -vt 0.395786 0.650130 -vt 0.395097 0.649907 -vt 0.395195 0.650384 -vt 0.395784 0.650129 -vt 0.395589 0.650592 -vt 0.394746 0.650570 -vt 0.394951 0.650254 -vt 0.394964 0.650741 -vt 0.395316 0.651014 -vt 0.395590 0.650592 -vt 0.394675 0.651052 -vt 0.394974 0.651382 -vt 0.395317 0.651015 -vt 0.394490 0.650846 -vt 0.394321 0.651320 -vt 0.394574 0.651686 -vt 0.394574 0.651686 -vt 0.394974 0.651383 -vt 0.394164 0.651092 -vn 0.0155 0.8728 0.4877 -vn -0.0022 0.8967 0.4426 -vn 0.0023 0.8967 0.4426 -vn 0.9897 0.0588 0.1308 -vn 0.9880 -0.0847 -0.1291 -vn 1.0000 0.0012 -0.0027 -vn 0.0279 -0.9991 -0.0324 -vn -0.0022 -1.0000 -0.0043 -vn 0.0023 -1.0000 -0.0043 -vn 0.0022 -0.9389 -0.3443 -vn -0.0026 -0.8660 -0.5000 -vn 0.0026 -0.8660 -0.5000 -vn -0.0024 -0.7661 -0.6428 -vn 0.0024 -0.7660 -0.6428 -vn -0.0023 -0.6428 -0.7660 -vn 0.0021 -0.6428 -0.7660 -vn -0.0021 -0.5000 -0.8660 -vn 0.0023 -0.5000 -0.8660 -vn -0.0023 -0.3420 -0.9397 -vn 0.0023 -0.3420 -0.9397 -vn -0.0026 -0.1736 -0.9848 -vn 0.0026 -0.1736 -0.9848 -vn 0.0035 -0.0013 -1.0000 -vn -0.0025 -0.1360 -0.9907 -vn 0.0025 -0.1360 -0.9907 -vn 0.0278 0.0326 -0.9991 -vn -0.0660 -0.1305 -0.9893 -vn 0.0026 -0.9844 -0.1760 -vn -0.0983 -0.9635 -0.2489 -vn 0.0027 -0.7699 -0.6382 -vn -0.0027 -0.8496 -0.5274 -vn 0.0031 -0.8495 -0.5275 -vn 0.0024 -0.2488 -0.9685 -vn -0.0022 -0.3520 -0.9360 -vn 0.0023 -0.3527 -0.9357 -vn -0.0023 -0.4438 -0.8961 -vn 0.0023 -0.4440 -0.8960 -vn -0.0019 -0.5294 -0.8484 -vn 0.0019 -0.5292 -0.8485 -vn -0.0024 -0.6116 -0.7912 -vn 0.0024 -0.6109 -0.7917 -vn -0.0024 -0.6913 -0.7225 -vn 0.0024 -0.6913 -0.7225 -vn -0.0952 -0.8268 -0.5543 -vn 0.0038 -0.7631 -0.6462 -vn -0.0022 -0.8660 -0.5000 -vn 0.0022 -0.8654 -0.5010 -vn -0.0990 -0.3409 -0.9349 -vn 0.0567 -0.7529 -0.6557 -vn -0.0558 -0.8443 -0.5330 -vn -0.0982 -0.9921 -0.0782 -vn 0.0023 -0.6781 0.7349 -vn -0.0026 -0.5388 0.8424 -vn 0.0029 -0.5389 0.8424 -vn 0.0022 -0.9426 -0.3340 -vn -0.0022 -0.9894 -0.1450 -vn 0.0022 -0.9893 -0.1456 -vn -0.0026 -0.9986 0.0523 -vn 0.0026 -0.9986 0.0521 -vn -0.0022 -0.9684 0.2493 -vn 0.0022 -0.9684 0.2495 -vn -0.0022 -0.9005 0.4348 -vn 0.0022 -0.9002 0.4354 -vn -0.0021 -0.8005 0.5993 -vn 0.0021 -0.8000 0.6000 -vn -0.0987 -0.5986 0.7950 -vn 0.0026 -0.5352 0.8447 -vn -0.0025 -0.4554 0.8903 -vn 0.0025 -0.4554 0.8903 -vn -0.0758 -0.4284 0.9004 -vn -0.0967 -0.9666 -0.2374 -vn 0.0026 -0.0205 0.9998 -vn -0.0026 0.0677 0.9977 -vn 0.0027 0.0677 0.9977 -vn 0.0024 -0.3918 0.9200 -vn -0.0023 -0.3281 0.9446 -vn 0.0023 -0.3275 0.9448 -vn -0.0020 -0.2710 0.9626 -vn 0.0020 -0.2708 0.9626 -vn -0.0023 -0.2145 0.9767 -vn 0.0023 -0.2147 0.9767 -vn -0.0023 -0.1557 0.9878 -vn 0.0023 -0.1563 0.9877 -vn -0.0023 -0.0910 0.9958 -vn 0.0023 -0.0922 0.9957 -vn -0.0954 0.0803 0.9922 -vn 0.0016 0.0625 0.9980 -vn -0.0025 -0.0664 0.9978 -vn 0.0025 -0.0663 0.9978 -vn -0.1252 0.1325 0.9833 -vn -0.0988 -0.2968 0.9498 -vn 0.0025 -0.7480 0.6637 -vn -0.0024 -0.8212 0.5706 -vn 0.0024 -0.8212 0.5706 -vn 0.0024 -0.1903 0.9817 -vn -0.0023 -0.2940 0.9558 -vn 0.0023 -0.2948 0.9556 -vn -0.0024 -0.3923 0.9198 -vn 0.0023 -0.3925 0.9197 -vn -0.0023 -0.4844 0.8748 -vn 0.0024 -0.4842 0.8750 -vn -0.0023 -0.5732 0.8194 -vn 0.0024 -0.5725 0.8199 -vn -0.0023 -0.6595 0.7517 -vn 0.0023 -0.6595 0.7517 -vn -0.1002 -0.6773 0.7289 -vn 0.0018 -0.8448 0.5351 -vn -0.0025 -0.9086 0.4176 -vn 0.0026 -0.9086 0.4176 -vn -0.1171 -0.7942 0.5963 -vn -0.0965 -0.0906 0.9912 -vn 0.0026 -0.8745 -0.4850 -vn -0.0023 -0.7958 -0.6056 -vn 0.0023 -0.7958 -0.6056 -vn 0.0024 -0.9593 0.2823 -vn -0.0023 -0.9880 0.1543 -vn 0.0024 -0.9881 0.1536 -vn -0.0022 -0.9996 0.0267 -vn 0.0022 -0.9996 0.0264 -vn -0.0024 -0.9950 -0.0996 -vn 0.0023 -0.9951 -0.0993 -vn -0.0024 -0.9741 -0.2260 -vn 0.0023 -0.9743 -0.2253 -vn -0.0023 -0.9352 -0.3541 -vn 0.0023 -0.9356 -0.3530 -vn -0.0999 -0.9126 -0.3964 -vn 0.0019 -0.7819 -0.6233 -vn -0.0024 -0.6992 -0.7149 -vn 0.0024 -0.6992 -0.7149 -vn -0.1235 -0.8189 -0.5605 -vn -0.0968 -0.9224 0.3738 -vn 0.0024 -0.0345 -0.9994 -vn -0.0023 0.0951 -0.9955 -vn 0.0023 0.0952 -0.9955 -vn 0.0024 -0.6088 -0.7933 -vn -0.0023 -0.5254 -0.8508 -vn 0.0023 -0.5247 -0.8513 -vn -0.0023 -0.4387 -0.8986 -vn 0.0023 -0.4384 -0.8988 -vn -0.0023 -0.3496 -0.9369 -vn 0.0024 -0.3499 -0.9368 -vn -0.0024 -0.2552 -0.9669 -vn 0.0023 -0.2560 -0.9667 -vn -0.0023 -0.1533 -0.9882 -vn 0.0023 -0.1533 -0.9882 -vn -0.1002 -0.1297 -0.9865 -vn 0.0021 0.1030 -0.9947 -vn -0.0023 0.1812 -0.9834 -vn 0.0023 0.1812 -0.9834 -vn -0.1177 0.0245 -0.9927 -vn -0.0964 -0.6821 -0.7249 -vn 0.0023 0.5609 -0.8279 -vn -0.0023 0.6250 -0.7806 -vn 0.0023 0.6250 -0.7806 -vn 0.0024 0.2491 -0.9685 -vn -0.0023 0.3026 -0.9531 -vn 0.0024 0.3032 -0.9529 -vn -0.0024 0.3536 -0.9354 -vn 0.0024 0.3537 -0.9353 -vn -0.0024 0.4021 -0.9156 -vn 0.0024 0.4019 -0.9157 -vn -0.0024 0.4508 -0.8926 -vn 0.0023 0.4503 -0.8929 -vn -0.0023 0.5026 -0.8645 -vn 0.0023 0.5016 -0.8651 -vn -0.0998 0.4760 -0.8738 -vn 0.0016 0.3281 -0.9446 -vn -0.0024 0.4241 -0.9056 -vn 0.0024 0.4241 -0.9056 -vn -0.0966 0.1512 -0.9838 -vn 0.0189 0.5252 -0.8508 -vn -0.1239 0.2568 -0.9585 -vn -0.0772 -0.8596 -0.5052 -vn 0.0024 0.8372 -0.5468 -vn -0.0026 0.8871 -0.4616 -vn 0.0025 0.8871 -0.4616 -vn 0.0023 0.5047 -0.8633 -vn -0.0023 0.5689 -0.8224 -vn 0.0023 0.5695 -0.8220 -vn -0.0024 0.6274 -0.7787 -vn 0.0023 0.6276 -0.7786 -vn -0.0023 0.6812 -0.7321 -vn 0.0024 0.6810 -0.7323 -vn -0.0023 0.7328 -0.6805 -vn 0.0023 0.7323 -0.6810 -vn -0.0023 0.7833 -0.6216 -vn 0.0023 0.7834 -0.6216 -vn -0.1002 0.7768 -0.6217 -vn 0.0015 0.8957 -0.4447 -vn -0.0026 0.9534 -0.3018 -vn 0.0026 0.9537 -0.3008 -vn -0.1304 0.8570 -0.4986 -vn -0.0965 0.4149 -0.9048 -vn 0.0026 0.7196 0.6943 -vn -0.0023 0.6043 0.7968 -vn 0.0022 0.6043 0.7968 -vn 0.0024 0.9895 -0.1442 -vn -0.0023 1.0000 0.0058 -vn 0.0023 1.0000 0.0063 -vn -0.0023 0.9880 0.1546 -vn 0.0022 0.9880 0.1547 -vn -0.0022 0.9544 0.2987 -vn 0.0023 0.9544 0.2985 -vn -0.0023 0.8993 0.4373 -vn 0.0024 0.8995 0.4369 -vn -0.0023 0.8221 0.5694 -vn 0.0023 0.8225 0.5688 -vn -0.0993 0.7804 0.6173 -vn 0.0018 0.5881 0.8088 -vn -0.0025 0.4836 0.8753 -vn 0.0025 0.4836 0.8753 -vn -0.1245 0.6395 0.7586 -vn -0.0973 0.9659 -0.2398 -vn 0.0024 -0.2267 0.9740 -vn -0.0020 -0.3476 0.9376 -vn 0.0026 -0.3474 0.9377 -vn 0.0024 0.3764 0.9264 -vn -0.0023 0.2816 0.9595 -vn 0.0023 0.2808 0.9598 -vn -0.0023 0.1862 0.9825 -vn 0.0023 0.1860 0.9826 -vn -0.0023 0.0911 0.9958 -vn 0.0023 0.0914 0.9958 -vn -0.0024 -0.0069 1.0000 -vn 0.0023 -0.0061 1.0000 -vn -0.0023 -0.1100 0.9939 -vn 0.0023 -0.1100 0.9939 -vn -0.1003 -0.1315 0.9862 -vn 0.0032 -0.3488 0.9372 -vn -0.0026 -0.1874 0.9823 -vn 0.0026 -0.1870 0.9824 -vn -0.0618 -0.2202 0.9735 -vn -0.0964 0.4652 0.8799 -vn 0.0026 0.8314 0.5557 -vn -0.0026 0.9141 0.4054 -vn 0.0031 0.9141 0.4056 -vn 0.0023 -0.0212 0.9998 -vn -0.0023 0.1483 0.9889 -vn 0.0022 0.1485 0.9889 -vn -0.0023 0.3098 0.9508 -vn 0.0023 0.3098 0.9508 -vn -0.0016 0.4622 0.8868 -vn 0.0016 0.4622 0.8868 -vn -0.0023 0.6025 0.7981 -vn 0.0022 0.6024 0.7982 -vn -0.0022 0.7272 0.6865 -vn 0.0023 0.7270 0.6867 -vn -0.0973 0.8782 0.4683 -vn -0.0025 0.8247 0.5656 -vn 0.0025 0.8247 0.5656 -vn -0.0979 0.0781 0.9921 -vn -0.1012 0.3938 -0.9136 -vn -0.0021 0.9019 0.4320 -vn 0.0027 0.9019 0.4320 -vn 0.0025 0.1429 0.9897 -vn -0.0026 0.0016 1.0000 -vn 0.0026 0.0016 1.0000 -vn 0.0024 0.7434 0.6689 -vn -0.0023 0.6626 0.7490 -vn 0.0024 0.6620 0.7495 -vn -0.0024 0.5750 0.8182 -vn 0.0023 0.5748 0.8183 -vn -0.0023 0.4821 0.8761 -vn 0.0024 0.4823 0.8760 -vn -0.0024 0.3815 0.9244 -vn 0.0024 0.3822 0.9241 -vn -0.0023 0.2713 0.9625 -vn 0.0023 0.2712 0.9625 -vn -0.1001 0.2362 0.9665 -vn 0.0013 -0.0040 1.0000 -vn -0.0026 -0.1737 0.9848 -vn 0.0026 -0.1736 0.9848 -vn -0.1395 0.0522 0.9888 -vn -0.0965 0.8029 0.5883 -vn 0.0024 -0.9852 0.1713 -vn -0.0587 -0.9886 0.1387 -vn 0.0021 -0.3443 0.9389 -vn -0.0021 -0.5000 0.8660 -vn 0.0023 -0.5000 0.8660 -vn -0.0024 -0.6428 0.7660 -vn 0.0024 -0.6428 0.7660 -vn -0.0026 -0.7660 0.6428 -vn 0.0023 -0.7660 0.6428 -vn -0.0023 -0.8660 0.5000 -vn 0.0026 -0.8660 0.5000 -vn -0.0023 -0.9397 0.3420 -vn 0.0023 -0.9397 0.3420 -vn -0.0982 -0.9589 0.2661 -vn -0.9928 0.1048 -0.0574 -vn -1.0000 0.0009 -0.0025 -vn -0.9896 -0.1315 0.0589 -vn -0.0982 -0.2490 0.9635 -vn -0.0586 -0.1389 -0.9886 -vn 1.0000 0.0003 0.0017 -vn 0.9239 0.3421 0.1712 -vn 0.9808 0.1739 0.0883 -vn 0.9239 0.3451 0.1653 -vn 0.7071 0.6322 0.3166 -vn 0.7072 0.6377 0.3054 -vn 0.3827 0.8260 0.4139 -vn 0.3827 0.8332 0.3991 -vn 0.3807 -0.9107 -0.1603 -vn 0.3825 -0.9239 -0.0045 -vn 0.7039 -0.6996 -0.1228 -vn 0.7069 -0.7073 -0.0032 -vn 0.9210 -0.3839 -0.0670 -vn 0.9237 -0.3832 -0.0015 -vn 0.9788 -0.2041 -0.0178 -vn 0.9895 -0.1000 -0.1048 -vn 0.7030 -0.6683 -0.2432 -vn 0.9203 -0.3676 -0.1337 -vn 0.3806 -0.8009 -0.4624 -vn 0.3800 -0.8694 -0.3159 -vn 0.9205 -0.3384 -0.1954 -vn 0.9884 -0.0695 -0.1349 -vn 0.3806 -0.7082 -0.5947 -vn 0.7030 -0.6162 -0.3551 -vn 0.9205 -0.2993 -0.2511 -vn 0.9788 -0.1676 -0.1173 -vn 0.9885 -0.0452 -0.1443 -vn 0.7030 -0.4572 -0.5448 -vn 0.7029 -0.5448 -0.4572 -vn 0.9205 -0.2511 -0.2993 -vn 0.3805 -0.4624 -0.8009 -vn 0.3801 -0.5946 -0.7086 -vn 0.7032 -0.3553 -0.6159 -vn 0.9788 -0.1175 -0.1677 -vn 0.9885 0.0068 -0.1511 -vn 0.3805 -0.3163 -0.8690 -vn 0.7032 -0.2430 -0.6682 -vn 0.9205 -0.1950 -0.3385 -vn 0.9205 -0.1336 -0.3671 -vn 0.3810 -0.1603 -0.9106 -vn 0.7040 -0.1227 -0.6995 -vn 0.9207 -0.0665 -0.3845 -vn 0.9885 0.0584 -0.1398 -vn 0.3658 -0.0085 -0.9307 -vn 0.6964 -0.0058 -0.7176 -vn 0.9202 -0.0019 -0.3914 -vn 0.9884 0.0823 -0.1277 -vn 0.3820 -0.0041 -0.9241 -vn 0.7069 -0.0032 -0.7073 -vn 0.9239 -0.0017 -0.3827 -vn 0.9893 0.0968 -0.1088 -vn 0.3862 -0.1257 -0.9138 -vn 0.7111 -0.0963 -0.6965 -vn 0.9261 -0.0524 -0.3735 -vn 0.9909 0.0950 -0.0953 -vn 0.3851 -0.2321 -0.8932 -vn 0.7102 -0.1769 -0.6814 -vn 0.9258 -0.0950 -0.3659 -vn 0.9814 -0.0374 -0.1882 -vn 0.9913 0.0861 -0.0997 -vn 0.3848 -0.3255 -0.8637 -vn 0.7098 -0.2484 -0.6591 -vn 0.9256 -0.1335 -0.3542 -vn 0.9813 -0.0582 -0.1833 -vn 0.3848 -0.4098 -0.8271 -vn 0.7096 -0.3128 -0.6313 -vn 0.9255 -0.1682 -0.3394 -vn 0.9813 -0.0767 -0.1765 -vn 0.3846 -0.4885 -0.7832 -vn 0.7097 -0.3728 -0.5978 -vn 0.9255 -0.2009 -0.3210 -vn 0.3847 -0.5642 -0.7306 -vn 0.7098 -0.4308 -0.5573 -vn 0.9256 -0.2318 -0.2992 -vn 0.9911 0.0363 -0.1283 -vn 0.3846 -0.6385 -0.6666 -vn 0.7100 -0.4873 -0.5083 -vn 0.9258 -0.2619 -0.2725 -vn 0.9911 0.0235 -0.1310 -vn 0.3846 -0.7126 -0.5868 -vn 0.7101 -0.5438 -0.4473 -vn 0.9258 -0.2922 -0.2396 -vn 0.9912 0.0099 -0.1322 -vn 0.3828 -0.7847 -0.4876 -vn 0.7072 -0.6005 -0.3732 -vn 0.9239 -0.3249 -0.2019 -vn 0.9811 -0.1570 -0.1132 -vn 0.9912 -0.0045 -0.1321 -vn 0.3835 -0.7363 -0.5576 -vn 0.7079 -0.5630 -0.4264 -vn 0.9242 -0.3046 -0.2306 -vn 0.9794 -0.1720 -0.1063 -vn 0.3824 -0.7070 -0.5950 -vn 0.7070 -0.5411 -0.4553 -vn 0.9239 -0.2928 -0.2464 -vn 0.3872 -0.7984 -0.4611 -vn 0.7129 -0.6077 -0.3499 -vn 0.9273 -0.3249 -0.1857 -vn 0.9910 -0.0114 -0.1333 -vn 0.3878 -0.8694 -0.3062 -vn 0.7136 -0.6609 -0.2324 -vn 0.9277 -0.3523 -0.1231 -vn 0.9917 -0.0222 -0.1269 -vn 0.3879 -0.9119 -0.1340 -vn 0.7141 -0.6927 -0.1013 -vn 0.9279 -0.3689 -0.0532 -vn 0.9917 -0.0446 -0.1203 -vn 0.3884 -0.9203 0.0482 -vn 0.7143 -0.6989 0.0370 -vn 0.9281 -0.3719 0.0204 -vn 0.9918 -0.0663 -0.1093 -vn 0.3884 -0.8923 0.2299 -vn 0.9280 -0.3609 0.0930 -vn 0.9918 -0.0862 -0.0941 -vn 0.3882 -0.8297 0.4011 -vn 0.7139 -0.6304 0.3048 -vn 0.7148 -0.6775 0.1731 -vn 0.9279 -0.3357 0.1623 -vn 0.9821 -0.1771 0.0643 -vn 0.9919 -0.1031 -0.0747 -vn 0.3879 -0.7374 0.5530 -vn 0.7136 -0.5605 0.4202 -vn 0.9277 -0.2987 0.2239 -vn 0.9820 -0.1614 0.0977 -vn 0.3871 -0.6231 0.6796 -vn 0.7127 -0.4744 0.5167 -vn 0.9272 -0.2536 0.2758 -vn 0.9820 -0.1404 0.1267 -vn 0.3829 -0.4982 0.7779 -vn 0.7075 -0.3812 0.5951 -vn 0.9241 -0.2061 0.3218 -vn 0.9812 -0.1172 0.1532 -vn 0.3828 -0.4921 0.7818 -vn 0.7073 -0.3765 0.5983 -vn 0.9240 -0.2036 0.3236 -vn 0.9808 -0.1045 0.1649 -vn 0.3851 -0.4202 0.8217 -vn 0.7097 -0.3206 0.6274 -vn 0.9253 -0.1721 0.3378 -vn 0.3840 -0.3581 0.8511 -vn 0.7088 -0.2736 0.6502 -vn 0.9251 -0.1474 0.3501 -vn 0.9908 -0.1308 0.0349 -vn 0.3838 -0.3024 0.8725 -vn 0.7086 -0.2312 0.6666 -vn 0.9248 -0.1246 0.3594 -vn 0.3837 -0.2501 0.8890 -vn 0.7084 -0.1912 0.6794 -vn 0.9247 -0.1031 0.3664 -vn 0.9810 -0.0581 0.1851 -vn 0.7085 -0.1515 0.6892 -vn 0.9810 -0.0472 0.1881 -vn 0.3841 -0.1981 0.9018 -vn 0.3838 -0.1440 0.9121 -vn 0.7085 -0.1099 0.6971 -vn 0.9252 -0.0826 0.3703 -vn 0.9248 -0.0590 0.3758 -vn 0.3836 -0.0849 0.9196 -vn 0.7086 -0.0646 0.7027 -vn 0.9250 -0.0345 0.3784 -vn 0.9908 -0.1122 0.0760 -vn 0.3834 -0.0161 0.9234 -vn 0.7087 -0.0119 0.7054 -vn 0.9251 -0.0060 0.3797 -vn 0.9909 -0.1066 0.0826 -vn 0.3829 0.0623 0.9217 -vn 0.7073 0.0477 0.7053 -vn 0.9240 0.0257 0.3815 -vn 0.9809 0.0049 0.1947 -vn 0.9909 -0.1003 0.0894 -vn 0.3825 0.0598 0.9220 -vn 0.7068 0.0460 0.7059 -vn 0.9237 0.0250 0.3824 -vn 0.9799 0.0147 0.1989 -vn 0.3813 -0.0613 0.9224 -vn 0.7048 -0.0469 0.7078 -vn 0.9219 -0.0256 0.3865 -vn 0.9792 0.0003 0.2027 -vn 0.3806 -0.1735 0.9083 -vn 0.7043 -0.1334 0.6973 -vn 0.9217 -0.0732 0.3809 -vn 0.3810 -0.2728 0.8834 -vn 0.7048 -0.2097 0.6778 -vn 0.9220 -0.1146 0.3698 -vn 0.9891 -0.1193 0.0860 -vn 0.3814 -0.3632 0.8501 -vn 0.7049 -0.2788 0.6522 -vn 0.9221 -0.1523 0.3557 -vn 0.9892 -0.1277 0.0716 -vn 0.3813 -0.4477 0.8088 -vn 0.7049 -0.3435 0.6206 -vn 0.9796 -0.0882 0.1804 -vn 0.9893 -0.1340 0.0577 -vn 0.3813 -0.5294 0.7579 -vn 0.7049 -0.4061 0.5815 -vn 0.9221 -0.2216 0.3173 -vn 0.9217 -0.1868 0.3399 -vn 0.9796 -0.1062 0.1706 -vn 0.3811 -0.6097 0.6950 -vn 0.7048 -0.4678 0.5334 -vn 0.9219 -0.2553 0.2913 -vn 0.9795 -0.1241 0.1586 -vn 0.3813 -0.6899 0.6154 -vn 0.7049 -0.5294 0.4721 -vn 0.9220 -0.2891 0.2577 -vn 0.9792 -0.1424 0.1442 -vn 0.3748 -0.7605 0.5302 -vn 0.7015 -0.5849 0.4073 -vn 0.9216 -0.3189 0.2213 -vn 0.3819 -0.7795 0.4965 -vn 0.7060 -0.5972 0.3807 -vn 0.9230 -0.3244 0.2070 -vn 0.9799 -0.1659 0.1106 -vn 0.9896 -0.1422 -0.0207 -vn 0.3812 -0.8400 0.3862 -vn 0.7044 -0.6447 0.2968 -vn 0.9216 -0.3526 0.1624 -vn 0.9791 -0.1779 0.0990 -vn 0.3804 -0.8869 0.2621 -vn 0.7039 -0.6813 0.2011 -vn 0.9212 -0.3731 0.1101 -vn 0.3807 -0.9137 0.1420 -vn 0.7041 -0.7017 0.1088 -vn 0.9215 -0.3838 0.0592 -vn 0.9889 -0.1330 -0.0666 -vn 0.3810 -0.9243 0.0242 -vn 0.7045 -0.7095 0.0182 -vn 0.9216 -0.3880 0.0098 -vn 0.9890 -0.1223 -0.0838 -vn 0.3811 -0.9200 -0.0918 -vn 0.9217 -0.3859 -0.0385 -vn 0.9890 -0.1102 -0.0987 -vn 0.3811 -0.9008 -0.2083 -vn 0.7045 -0.6915 -0.1598 -vn 0.7037 -0.7070 -0.0698 -vn 0.9216 -0.3782 -0.0875 -vn 0.9793 -0.1995 -0.0328 -vn 0.9890 -0.0969 -0.1116 -vn 0.3810 -0.8651 -0.3262 -vn 0.7042 -0.6643 -0.2506 -vn 0.9214 -0.3637 -0.1372 -vn 0.9793 -0.1939 -0.0585 -vn 0.3812 -0.8095 -0.4465 -vn 0.7046 -0.6213 -0.3428 -vn 0.9216 -0.3398 -0.1876 -vn 0.9791 -0.1850 -0.0850 -vn 0.3699 -0.7412 -0.5602 -vn 0.6988 -0.5703 -0.4318 -vn 0.9209 -0.3102 -0.2361 -vn 0.3841 -0.7233 -0.5739 -vn 0.7077 -0.5535 -0.4392 -vn 0.9238 -0.2999 -0.2380 -vn 0.9895 -0.0261 -0.1422 -vn 0.3814 -0.6464 -0.6609 -vn 0.7049 -0.4960 -0.5070 -vn 0.9220 -0.2707 -0.2767 -vn 0.9793 -0.1506 -0.1352 -vn 0.9896 -0.0148 -0.1432 -vn 0.3807 -0.5649 -0.7321 -vn 0.7044 -0.4334 -0.5621 -vn 0.9218 -0.2366 -0.3070 -vn 0.3810 -0.4851 -0.7871 -vn 0.7049 -0.3718 -0.6040 -vn 0.9221 -0.2026 -0.3296 -vn 0.9892 0.0148 -0.1459 -vn 0.3813 -0.4051 -0.8309 -vn 0.7052 -0.3104 -0.6374 -vn 0.9223 -0.1689 -0.3476 -vn 0.9893 0.0303 -0.1428 -vn 0.3816 -0.3234 -0.8659 -vn 0.7051 -0.2481 -0.6643 -vn 0.9224 -0.1352 -0.3618 -vn 0.9893 0.0443 -0.1387 -vn 0.3813 -0.2366 -0.8937 -vn 0.7050 -0.1816 -0.6855 -vn 0.9223 -0.0990 -0.3737 -vn 0.9797 -0.0610 -0.1912 -vn 0.9893 0.0574 -0.1338 -vn 0.3812 -0.1417 -0.9136 -vn 0.7048 -0.1088 -0.7010 -vn 0.9220 -0.0595 -0.3825 -vn 0.9796 -0.0414 -0.1968 -vn 0.3814 -0.0342 -0.9238 -vn 0.7050 -0.0262 -0.7088 -vn 0.9221 -0.0142 -0.3868 -vn 0.9793 -0.0197 -0.2014 -vn 0.3695 0.0851 -0.9253 -vn 0.6988 0.0660 -0.7122 -vn 0.9211 0.0368 -0.3875 -vn 0.3830 0.0929 -0.9191 -vn 0.7072 0.0712 -0.7034 -vn 0.9238 0.0385 -0.3808 -vn 0.9896 0.1068 -0.0966 -vn 0.3818 0.1675 -0.9090 -vn 0.7058 0.1284 -0.6967 -vn 0.9228 0.0698 -0.3788 -vn 0.9797 0.0285 -0.1983 -vn 0.3814 0.2285 -0.8957 -vn 0.7055 0.1753 -0.6867 -vn 0.9228 0.0956 -0.3733 -vn 0.3817 0.2804 -0.8807 -vn 0.7058 0.2149 -0.6750 -vn 0.9231 0.1171 -0.3664 -vn 0.9896 0.1229 -0.0745 -vn 0.3821 0.3271 -0.8643 -vn 0.7060 0.2508 -0.6624 -vn 0.9231 0.1364 -0.3597 -vn 0.9897 0.1267 -0.0667 -vn 0.7062 0.2845 -0.6483 -vn 0.9800 0.0752 -0.1842 -vn 0.9897 0.1305 -0.0594 -vn 0.3820 0.4161 -0.8252 -vn 0.3815 0.3714 -0.8465 -vn 0.7059 0.3191 -0.6324 -vn 0.9230 0.1732 -0.3435 -vn 0.9228 0.1543 -0.3532 -vn 0.9800 0.0848 -0.1803 -vn 0.3818 0.4636 -0.7996 -vn 0.7058 0.3553 -0.6129 -vn 0.9229 0.1930 -0.3331 -vn 0.9799 0.0949 -0.1756 -vn 0.3819 0.5164 -0.7665 -vn 0.7057 0.3961 -0.5875 -vn 0.9227 0.2155 -0.3196 -vn 0.9797 0.1060 -0.1700 -vn 0.3746 0.5779 -0.7250 -vn 0.7022 0.4441 -0.5565 -vn 0.9224 0.2416 -0.3015 -vn 0.3881 0.4421 -0.8086 -vn 0.7130 0.3362 -0.6154 -vn 0.9262 0.1805 -0.3310 -vn 0.9899 0.1407 -0.0195 -vn 0.3827 0.3011 -0.8734 -vn 0.7072 0.2304 -0.6684 -vn 0.9239 0.1247 -0.3617 -vn 0.9800 0.0644 -0.1881 -vn 0.9929 0.1180 -0.0135 -vn 0.3816 0.3919 -0.8372 -vn 0.7054 0.3006 -0.6419 -vn 0.9225 0.1637 -0.3496 -vn 0.9796 0.0758 -0.1861 -vn 0.3810 0.4654 -0.7989 -vn 0.7050 0.3572 -0.6127 -vn 0.9224 0.1948 -0.3335 -vn 0.3814 0.5264 -0.7599 -vn 0.7054 0.4039 -0.5825 -vn 0.9226 0.2200 -0.3168 -vn 0.9895 0.1390 -0.0397 -vn 0.3815 0.5801 -0.7196 -vn 0.7056 0.4449 -0.5515 -vn 0.9228 0.2422 -0.2996 -vn 0.9895 0.1417 -0.0278 -vn 0.3819 0.6295 -0.6766 -vn 0.9229 0.2623 -0.2820 -vn 0.9798 0.1309 -0.1512 -vn 0.9895 0.1434 -0.0170 -vn 0.3818 0.6768 -0.6295 -vn 0.7056 0.5189 -0.4826 -vn 0.7050 0.4825 -0.5198 -vn 0.9227 0.2822 -0.2625 -vn 0.9798 0.1412 -0.1414 -vn 0.3816 0.7240 -0.5746 -vn 0.7054 0.5552 -0.4406 -vn 0.9225 0.3023 -0.2399 -vn 0.9799 0.1513 -0.1303 -vn 0.3816 0.7725 -0.5075 -vn 0.7054 0.5925 -0.3891 -vn 0.9224 0.3229 -0.2119 -vn 0.9796 0.1626 -0.1181 -vn 0.3736 0.8219 -0.4299 -vn 0.7013 0.6319 -0.3300 -vn 0.9219 0.3438 -0.1789 -vn 0.3824 0.8267 -0.4128 -vn 0.7066 0.6330 -0.3163 -vn 0.9235 0.3431 -0.1717 -vn 0.9799 0.1777 -0.0908 -vn 0.9898 0.1375 0.0385 -vn 0.3812 0.8817 -0.2782 -vn 0.7042 0.6770 -0.2140 -vn 0.9213 0.3708 -0.1174 -vn 0.9789 0.1890 -0.0773 -vn 0.3803 0.9150 -0.1346 -vn 0.7035 0.7031 -0.1034 -vn 0.9208 0.3858 -0.0567 -vn 0.3806 0.9247 0.0063 -vn 0.7037 0.7105 0.0048 -vn 0.9210 0.3896 0.0026 -vn 0.9887 0.1237 0.0850 -vn 0.3808 0.9135 0.1434 -vn 0.7038 0.7018 0.1102 -vn 0.9210 0.3850 0.0602 -vn 0.9887 0.1089 0.1028 -vn 0.3809 0.8825 0.2761 -vn 0.7039 0.6778 0.2124 -vn 0.9791 0.1979 0.0462 -vn 0.9888 0.0922 0.1176 -vn 0.3808 0.8318 0.4040 -vn 0.7039 0.6389 0.3103 -vn 0.9211 0.3502 0.1700 -vn 0.9210 0.3720 0.1160 -vn 0.9791 0.1889 0.0749 -vn 0.3806 0.7605 0.5260 -vn 0.7037 0.5844 0.4040 -vn 0.9209 0.3206 0.2215 -vn 0.9791 0.1757 0.1025 -vn 0.3810 0.6674 0.6398 -vn 0.7043 0.5123 0.4914 -vn 0.9213 0.2805 0.2694 -vn 0.9789 0.1584 0.1290 -vn 0.3684 0.5646 0.7386 -vn 0.6978 0.4345 0.5694 -vn 0.9206 0.2360 0.3111 -vn 0.3840 0.5448 0.7455 -vn 0.7076 0.4169 0.5705 -vn 0.9238 0.2259 0.3092 -vn 0.9895 -0.0123 0.1442 -vn 0.3814 0.4471 0.8091 -vn 0.7049 0.3430 0.6208 -vn 0.9221 0.1872 0.3388 -vn 0.9793 0.1091 0.1704 -vn 0.9897 -0.0236 0.1415 -vn 0.3806 0.3503 0.8558 -vn 0.7044 0.2687 0.6569 -vn 0.9219 0.1464 0.3587 -vn 0.3811 0.2594 0.8874 -vn 0.7049 0.1988 0.6809 -vn 0.9222 0.1081 0.3714 -vn 0.9892 -0.0530 0.1366 -vn 0.3815 0.1716 0.9083 -vn 0.7051 0.1314 0.6968 -vn 0.9223 0.0713 0.3799 -vn 0.9893 -0.0670 0.1296 -vn 0.3809 0.0843 0.9208 -vn 0.7051 0.0648 0.7062 -vn 0.9797 0.0278 0.1984 -vn 0.9894 -0.0792 0.1220 -vn 0.3814 -0.0056 0.9244 -vn 0.7051 -0.0043 0.7091 -vn 0.9223 -0.0023 0.3865 -vn 0.9218 0.0366 0.3858 -vn 0.9797 0.0087 0.2004 -vn 0.3813 -0.1017 0.9188 -vn 0.7049 -0.0779 0.7050 -vn 0.9221 -0.0424 0.3847 -vn 0.9796 -0.0115 0.2006 -vn 0.3814 -0.2073 0.9009 -vn 0.7050 -0.1591 0.6911 -vn 0.9221 -0.0868 0.3771 -vn 0.9793 -0.0335 0.1995 -vn 0.3706 -0.3201 0.8719 -vn 0.6996 -0.2469 0.6706 -vn 0.9213 -0.1352 0.3645 -vn 0.3816 -0.3195 0.8674 -vn 0.7067 -0.2443 0.6640 -vn 0.9239 -0.1319 0.3592 -vn 0.9895 -0.1290 0.0653 -vn 0.3870 -0.1718 0.9059 -vn 0.7126 -0.1299 0.6894 -vn 0.9271 -0.0685 0.3685 -vn 0.9910 -0.1219 0.0553 -vn 0.3869 -0.0170 0.9220 -vn 0.7126 -0.0129 0.7014 -vn 0.9271 -0.0069 0.3747 -vn 0.9819 -0.0200 0.1885 -vn 0.9916 -0.1127 0.0636 -vn 0.3870 0.1369 0.9119 -vn 0.7125 0.1042 0.6939 -vn 0.9271 0.0557 0.3708 -vn 0.9819 0.0119 0.1893 -vn 0.3869 0.2857 0.8768 -vn 0.7124 0.2174 0.6672 -vn 0.9271 0.1162 0.3564 -vn 0.9818 0.0432 0.1849 -vn 0.3866 0.4262 0.8178 -vn 0.7124 0.3244 0.6223 -vn 0.9271 0.1740 0.3319 -vn 0.3868 0.5558 0.7359 -vn 0.7125 0.4232 0.5597 -vn 0.9272 0.2264 0.2985 -vn 0.9916 -0.0486 0.1201 -vn 0.3869 0.6706 0.6330 -vn 0.7127 0.5104 0.4812 -vn 0.9272 0.2730 0.2566 -vn 0.9916 -0.0282 0.1265 -vn 0.3866 0.7679 0.5107 -vn 0.7121 0.5848 0.3885 -vn 0.9269 0.3130 0.2071 -vn 0.9916 -0.0069 0.1294 -vn 0.3828 0.8443 0.3750 -vn 0.7073 0.6460 0.2870 -vn 0.9240 0.3494 0.1553 -vn 0.9813 0.1688 0.0927 -vn 0.9916 0.0147 0.1287 -vn 0.3826 0.8283 0.4092 -vn 0.7070 0.6341 0.3131 -vn 0.9238 0.3434 0.1696 -vn 0.9799 0.1791 0.0877 -vn 0.3813 0.7624 0.5228 -vn 0.7048 0.5852 0.4011 -vn 0.9218 0.3198 0.2191 -vn 0.9792 0.1750 0.1027 -vn 0.3805 0.6891 0.6167 -vn 0.7042 0.5289 0.4737 -vn 0.9216 0.2889 0.2592 -vn 0.3809 0.6117 0.6933 -vn 0.7046 0.4694 0.5322 -vn 0.9218 0.2562 0.2908 -vn 0.9891 0.0126 0.1470 -vn 0.3811 0.5313 0.7566 -vn 0.7048 0.4073 0.5808 -vn 0.9221 0.2219 0.3171 -vn 0.9891 -0.0052 0.1468 -vn 0.3815 0.4459 0.8097 -vn 0.7050 0.3416 0.6215 -vn 0.9220 0.1862 0.3393 -vn 0.9892 -0.0217 0.1451 -vn 0.3813 0.3533 0.8543 -vn 0.7048 0.2712 0.6555 -vn 0.9220 0.1480 0.3577 -vn 0.9795 0.0873 0.1815 -vn 0.9892 -0.0372 0.1417 -vn 0.3811 0.2508 0.8899 -vn 0.7046 0.1927 0.6829 -vn 0.9218 0.1053 0.3732 -vn 0.9794 0.0662 0.1905 -vn 0.3813 0.1344 0.9146 -vn 0.7048 0.1030 0.7018 -vn 0.9218 0.0562 0.3835 -vn 0.9792 0.0428 0.1984 -vn 0.3677 0.0052 0.9299 -vn 0.6977 0.0035 0.7163 -vn 0.9208 0.0009 0.3900 -vn 0.3826 -0.0018 0.9239 -vn 0.7070 -0.0014 0.7072 -vn 0.9238 -0.0007 0.3829 -vn 0.9797 -0.0000 0.2006 -vn 0.9895 -0.0967 0.1073 -vn 0.3809 -0.1603 0.9106 -vn 0.7039 -0.1228 0.6996 -vn 0.9210 -0.0670 0.3838 -vn 0.9788 -0.0178 0.2039 -vn 0.3804 -0.3165 0.8690 -vn 0.9205 -0.1336 0.3671 -vn 0.9788 -0.0530 0.1979 -vn 0.3805 -0.4624 0.8009 -vn 0.7033 -0.3554 0.6156 -vn 0.7029 -0.2428 0.6685 -vn 0.9204 -0.1953 0.3387 -vn 0.3800 -0.5946 0.7086 -vn 0.7030 -0.4572 0.5448 -vn 0.9205 -0.2511 0.2993 -vn 0.9885 -0.1445 0.0452 -vn 0.3804 -0.7085 0.5945 -vn 0.9203 -0.2996 0.2514 -vn 0.9884 -0.1506 0.0191 -vn 0.3805 -0.8009 0.4624 -vn 0.7030 -0.6159 0.3556 -vn 0.7029 -0.5448 0.4572 -vn 0.9205 -0.3384 0.1954 -vn 0.9885 -0.1512 -0.0070 -vn 0.7032 -0.6681 0.2432 -vn 0.9205 -0.3671 0.1336 -vn 0.9788 -0.1854 0.0865 -vn 0.9885 -0.1478 -0.0332 -vn 0.3800 -0.8690 0.3168 -vn 0.7040 -0.6995 0.1227 -vn 0.9207 -0.3845 0.0666 -vn 0.3803 -0.9107 0.1616 -vn 0.3655 -0.9308 0.0082 -vn 0.6963 -0.7177 0.0059 -vn 0.9202 -0.3915 0.0022 -vn 0.9884 -0.1276 -0.0823 -vn 0.9894 -0.1088 -0.0961 -vn -0.1916 0.8788 0.4370 -vn -0.3828 0.8332 0.3991 -vn -0.3827 0.8260 0.4138 -vn -0.7072 0.6377 0.3054 -vn -0.7071 0.6322 0.3166 -vn -0.9239 0.3451 0.1653 -vn -0.9240 0.3421 0.1712 -vn -0.9803 0.1760 0.0892 -vn -0.9905 0.1303 -0.0450 -vn -0.9982 -0.0262 0.0539 -vn -0.9237 -0.3832 -0.0015 -vn -0.9799 -0.1989 -0.0174 -vn -0.9207 -0.3845 -0.0668 -vn -0.7069 -0.7073 -0.0033 -vn -0.7036 -0.7000 -0.1222 -vn -0.3825 -0.9239 -0.0043 -vn -0.3807 -0.9108 -0.1599 -vn -0.9205 -0.3671 -0.1336 -vn -0.7030 -0.6683 -0.2432 -vn -0.9797 -0.1989 -0.0258 -vn -0.9205 -0.3383 -0.1953 -vn -0.3804 -0.8009 -0.4624 -vn -0.3800 -0.8690 -0.3169 -vn -0.9981 -0.0521 0.0337 -vn -0.9790 -0.1672 -0.1170 -vn -0.9204 -0.2994 -0.2514 -vn -0.7030 -0.6159 -0.3556 -vn -0.3800 -0.7086 -0.5946 -vn -0.9205 -0.2511 -0.2993 -vn -0.7030 -0.5448 -0.4572 -vn -0.7030 -0.4571 -0.5448 -vn -0.9981 -0.0604 0.0133 -vn -0.9789 -0.1171 -0.1673 -vn -0.9205 -0.1953 -0.3383 -vn -0.3801 -0.4625 -0.8010 -vn -0.3801 -0.5942 -0.7088 -vn -0.9981 -0.0620 0.0034 -vn -0.7030 -0.2432 -0.6683 -vn -0.7030 -0.3556 -0.6159 -vn -0.3805 -0.3163 -0.8690 -vn -0.9210 -0.0670 -0.3839 -vn -0.9205 -0.1336 -0.3671 -vn -0.7040 -0.1227 -0.6995 -vn -0.3807 -0.1607 -0.9106 -vn -0.9796 -0.0752 -0.1864 -vn -0.9237 -0.0016 -0.3830 -vn -0.7070 -0.0032 -0.7072 -vn -0.3826 -0.0043 -0.9239 -vn -0.9797 -0.0031 -0.2007 -vn -0.9240 -0.0016 -0.3824 -vn -0.7073 -0.0031 -0.7069 -vn -0.3828 -0.0040 -0.9238 -vn -0.9824 -0.0554 -0.1784 -vn -0.9259 -0.0515 -0.3742 -vn -0.7104 -0.0958 -0.6972 -vn -0.3852 -0.1256 -0.9143 -vn -0.9992 -0.0396 0.0060 -vn -0.9815 -0.0378 -0.1877 -vn -0.9259 -0.0942 -0.3659 -vn -0.7100 -0.1764 -0.6817 -vn -0.3846 -0.2318 -0.8935 -vn -0.9992 -0.0376 0.0101 -vn -0.9256 -0.1327 -0.3545 -vn -0.7098 -0.2479 -0.6593 -vn -0.3846 -0.3252 -0.8639 -vn -0.9993 -0.0356 0.0134 -vn -0.9255 -0.1675 -0.3397 -vn -0.7096 -0.3123 -0.6316 -vn -0.3846 -0.4096 -0.8272 -vn -0.9255 -0.2005 -0.3214 -vn -0.7097 -0.3728 -0.5978 -vn -0.3847 -0.4882 -0.7833 -vn -0.9824 -0.1355 -0.1290 -vn -0.9256 -0.2313 -0.2997 -vn -0.7099 -0.4304 -0.5575 -vn -0.3849 -0.5639 -0.7307 -vn -0.9824 -0.1481 -0.1135 -vn -0.9258 -0.2614 -0.2729 -vn -0.7102 -0.4868 -0.5086 -vn -0.3850 -0.6381 -0.6668 -vn -0.9826 -0.1598 -0.0948 -vn -0.9259 -0.2914 -0.2404 -vn -0.7104 -0.5429 -0.4478 -vn -0.3852 -0.7120 -0.5871 -vn -0.9991 -0.0295 0.0321 -vn -0.9814 -0.1561 -0.1120 -vn -0.9220 -0.3272 -0.2071 -vn -0.7000 -0.6043 -0.3805 -vn -0.3701 -0.7868 -0.4940 -vn -1.0000 -0.0019 0.0010 -vn -0.9242 -0.3046 -0.2304 -vn -0.7081 -0.5630 -0.4261 -vn -0.3838 -0.7362 -0.5574 -vn -0.9239 -0.2927 -0.2463 -vn -0.7073 -0.5409 -0.4552 -vn -0.3828 -0.7068 -0.5949 -vn -0.9826 -0.1727 -0.0689 -vn -0.9272 -0.3245 -0.1871 -vn -0.7127 -0.6075 -0.3508 -vn -0.3870 -0.7982 -0.4616 -vn -0.9834 -0.1777 -0.0360 -vn -0.9277 -0.3521 -0.1241 -vn -0.7137 -0.6606 -0.2329 -vn -0.3878 -0.8692 -0.3067 -vn -0.9835 -0.1806 -0.0015 -vn -0.9279 -0.3690 -0.0542 -vn -0.7140 -0.6927 -0.1019 -vn -0.3881 -0.9118 -0.1343 -vn -0.9837 -0.1767 0.0339 -vn -0.9280 -0.3722 0.0194 -vn -0.7142 -0.6990 0.0365 -vn -0.3883 -0.9203 0.0479 -vn -0.9837 -0.1663 0.0683 -vn -0.9280 -0.3609 0.0930 -vn -0.3883 -0.8924 0.2300 -vn -0.9991 0.0162 0.0394 -vn -0.9821 -0.1764 0.0655 -vn -0.9279 -0.3361 0.1612 -vn -0.7151 -0.6767 0.1753 -vn -0.7140 -0.6306 0.3042 -vn -0.3878 -0.8299 0.4011 -vn -0.9991 0.0233 0.0355 -vn -0.9277 -0.2993 0.2229 -vn -0.7135 -0.5610 0.4197 -vn -0.3876 -0.7377 0.5527 -vn -0.9991 0.0292 0.0305 -vn -0.9273 -0.2543 0.2746 -vn -0.7129 -0.4750 0.5159 -vn -0.3869 -0.6236 0.6793 -vn -0.9990 0.0321 0.0303 -vn -0.9218 -0.2124 0.3244 -vn -0.6987 -0.3902 0.5996 -vn -0.3672 -0.5063 0.7803 -vn -1.0000 0.0042 -0.0012 -vn -0.9241 -0.2035 0.3234 -vn -0.7076 -0.3763 0.5980 -vn -0.3833 -0.4920 0.7816 -vn -0.9251 -0.1729 0.3380 -vn -0.7091 -0.3211 0.6278 -vn -0.3842 -0.4204 0.8220 -vn -0.9808 -0.0817 0.1768 -vn -0.9250 -0.1479 0.3499 -vn -0.7086 -0.2741 0.6502 -vn -0.3835 -0.3584 0.8511 -vn -0.9248 -0.1251 0.3592 -vn -0.7086 -0.2315 0.6666 -vn -0.3836 -0.3027 0.8725 -vn -0.9993 0.0341 0.0141 -vn -0.9248 -0.1035 0.3662 -vn -0.7084 -0.1916 0.6793 -vn -0.3841 -0.2502 0.8887 -vn -0.9993 0.0345 0.0120 -vn -0.7084 -0.1515 0.6894 -vn -0.9249 -0.0595 0.3756 -vn -0.9252 -0.0802 0.3709 -vn -0.7086 -0.1102 0.6969 -vn -0.3836 -0.1445 0.9121 -vn -0.3841 -0.1981 0.9018 -vn -0.9819 0.0142 0.1888 -vn -0.9250 -0.0350 0.3783 -vn -0.7088 -0.0650 0.7024 -vn -0.3839 -0.0851 0.9194 -vn -0.9822 0.0289 0.1858 -vn -0.9251 -0.0068 0.3796 -vn -0.7091 -0.0125 0.7050 -vn -0.3841 -0.0165 0.9231 -vn -0.9990 0.0439 0.0051 -vn -0.9811 0.0050 0.1932 -vn -0.9230 0.0240 0.3841 -vn -0.7034 0.0456 0.7093 -vn -0.3761 0.0602 0.9246 -vn -1.0000 0.0076 -0.0002 -vn -0.9234 0.0253 0.3831 -vn -0.7058 0.0461 0.7069 -vn -0.3807 0.0599 0.9227 -vn -0.9985 0.0522 0.0177 -vn -0.9220 -0.0247 0.3864 -vn -0.7053 -0.0461 0.7075 -vn -0.3821 -0.0606 0.9221 -vn -0.9219 -0.0728 0.3805 -vn -0.7048 -0.1332 0.6968 -vn -0.3813 -0.1735 0.9080 -vn -0.9802 0.0003 0.1982 -vn -0.9221 -0.1141 0.3696 -vn -0.7049 -0.2091 0.6777 -vn -0.3812 -0.2724 0.8834 -vn -0.9802 -0.0225 0.1966 -vn -0.9223 -0.1517 0.3556 -vn -0.7051 -0.2784 0.6522 -vn -0.3815 -0.3629 0.8502 -vn -0.9803 -0.0430 0.1929 -vn -0.9222 -0.1872 0.3383 -vn -0.7052 -0.3433 0.6204 -vn -0.3813 -0.4477 0.8088 -vn -0.9989 0.0314 0.0356 -vn -0.9797 -0.1060 0.1703 -vn -0.9220 -0.2212 0.3177 -vn -0.7047 -0.4059 0.5819 -vn -0.3810 -0.5291 0.7582 -vn -0.9988 0.0279 0.0406 -vn -0.9217 -0.2555 0.2918 -vn -0.7043 -0.4679 0.5339 -vn -0.3806 -0.6097 0.6953 -vn -0.9986 0.0241 0.0467 -vn -0.9217 -0.2890 0.2586 -vn -0.7043 -0.5295 0.4729 -vn -0.3804 -0.6901 0.6157 -vn -0.9230 -0.3161 0.2194 -vn -0.7060 -0.5818 0.4039 -vn -0.3820 -0.7590 0.5272 -vn -0.9998 0.0082 0.0177 -vn -0.9800 -0.1656 0.1104 -vn -0.9224 -0.3255 0.2080 -vn -0.7041 -0.5988 0.3817 -vn -0.3788 -0.7807 0.4970 -vn -0.9984 0.0092 0.0562 -vn -0.9216 -0.3523 0.1632 -vn -0.7046 -0.6442 0.2974 -vn -0.3818 -0.8395 0.3867 -vn -0.9214 -0.3727 0.1102 -vn -0.7043 -0.6808 0.2012 -vn -0.3809 -0.8866 0.2623 -vn -0.9800 -0.1762 0.0928 -vn -0.9215 -0.3837 0.0596 -vn -0.7045 -0.7013 0.1089 -vn -0.3810 -0.9136 0.1421 -vn -0.9800 -0.1871 0.0678 -vn -0.9217 -0.3878 0.0102 -vn -0.7046 -0.7094 0.0187 -vn -0.3811 -0.9242 0.0244 -vn -0.9800 -0.1940 0.0432 -vn -0.9217 -0.3859 -0.0385 -vn -0.3811 -0.9200 -0.0918 -vn -0.9987 -0.0240 0.0458 -vn -0.9794 -0.1992 -0.0327 -vn -0.9215 -0.3784 -0.0870 -vn -0.7040 -0.7066 -0.0716 -vn -0.7042 -0.6918 -0.1596 -vn -0.3807 -0.9010 -0.2081 -vn -0.9986 -0.0311 0.0431 -vn -0.9212 -0.3641 -0.1371 -vn -0.7039 -0.6648 -0.2503 -vn -0.3804 -0.8654 -0.3262 -vn -0.9984 -0.0389 0.0400 -vn -0.9214 -0.3406 -0.1873 -vn -0.7041 -0.6220 -0.3426 -vn -0.3805 -0.8099 -0.4464 -vn -0.9234 -0.3053 -0.2326 -vn -0.7066 -0.5631 -0.4286 -vn -0.3823 -0.7354 -0.5595 -vn -0.9798 -0.1629 -0.1160 -vn -0.9235 -0.3007 -0.2383 -vn -0.7066 -0.5544 -0.4397 -vn -0.3823 -0.7239 -0.5742 -vn -0.9985 -0.0475 0.0269 -vn -0.9799 -0.1484 -0.1333 -vn -0.9221 -0.2713 -0.2760 -vn -0.7053 -0.4964 -0.5061 -vn -0.3822 -0.6467 -0.6601 -vn -0.9220 -0.2366 -0.3065 -vn -0.7048 -0.4334 -0.5616 -vn -0.3813 -0.5649 -0.7318 -vn -0.9802 -0.1482 -0.1312 -vn -0.9222 -0.2029 -0.3292 -vn -0.7051 -0.3720 -0.6036 -vn -0.3815 -0.4850 -0.7869 -vn -0.9803 -0.1327 -0.1464 -vn -0.9224 -0.1694 -0.3472 -vn -0.7052 -0.3109 -0.6372 -vn -0.3815 -0.4052 -0.8308 -vn -0.9803 -0.1173 -0.1587 -vn -0.9223 -0.1352 -0.3620 -vn -0.3813 -0.3234 -0.8660 -vn -0.9989 -0.0465 0.0012 -vn -0.9797 -0.0609 -0.1909 -vn -0.9221 -0.0994 -0.3739 -vn -0.7046 -0.2473 -0.6651 -vn -0.7048 -0.1819 -0.6857 -vn -0.3810 -0.2368 -0.8937 -vn -0.9988 -0.0482 -0.0044 -vn -0.9218 -0.0598 -0.3829 -vn -0.7044 -0.1091 -0.7014 -vn -0.3807 -0.1418 -0.9137 -vn -0.9987 -0.0506 -0.0109 -vn -0.9218 -0.0150 -0.3873 -vn -0.7043 -0.0266 -0.7094 -vn -0.3804 -0.0344 -0.9242 -vn -0.9238 0.0364 -0.3812 -vn -0.7069 0.0670 -0.7041 -vn -0.3826 0.0876 -0.9197 -vn -0.9799 0.0170 -0.1989 -vn -0.9238 0.0385 -0.3810 -vn -0.7070 0.0711 -0.7037 -vn -0.3826 0.0929 -0.9192 -vn -0.9987 -0.0465 -0.0205 -vn -0.9229 0.0691 -0.3788 -vn -0.7062 0.1277 -0.6964 -vn -0.3825 0.1670 -0.9088 -vn -0.9229 0.0952 -0.3731 -vn -0.7058 0.1751 -0.6865 -vn -0.3817 0.2283 -0.8956 -vn -0.9805 0.0122 -0.1960 -vn -0.9231 0.1166 -0.3665 -vn -0.7059 0.2147 -0.6750 -vn -0.3820 0.2802 -0.8807 -vn -0.9806 0.0249 -0.1946 -vn -0.9230 0.1361 -0.3598 -vn -0.7061 0.2505 -0.6623 -vn -0.3817 0.3268 -0.8646 -vn -0.9992 -0.0334 -0.0226 -vn -0.9798 0.0755 -0.1849 -vn -0.7061 0.2846 -0.6484 -vn -0.3820 0.3713 -0.8463 -vn -0.9992 -0.0326 -0.0249 -vn -0.9228 0.1556 -0.3524 -vn -0.9230 0.1731 -0.3437 -vn -0.7057 0.3191 -0.6326 -vn -0.3817 0.4163 -0.8252 -vn -0.9991 -0.0323 -0.0283 -vn -0.9228 0.1930 -0.3335 -vn -0.7055 0.3553 -0.6132 -vn -0.3815 0.4639 -0.7996 -vn -0.9989 -0.0322 -0.0335 -vn -0.9226 0.2152 -0.3201 -vn -0.7052 0.3960 -0.5881 -vn -0.3810 0.5166 -0.7668 -vn -0.9240 0.2390 -0.2987 -vn -0.7072 0.4417 -0.5521 -vn -0.3828 0.5772 -0.7214 -vn -0.9802 0.1223 -0.1559 -vn -0.9262 0.1809 -0.3308 -vn -0.7129 0.3365 -0.6153 -vn -0.3881 0.4422 -0.8086 -vn -1.0000 -0.0021 -0.0004 -vn -0.9835 0.0566 -0.1718 -vn -0.9238 0.1247 -0.3619 -vn -0.7069 0.2305 -0.6687 -vn -0.3822 0.3011 -0.8736 -vn -0.9986 -0.0404 -0.0333 -vn -0.9226 0.1628 -0.3497 -vn -0.7058 0.2996 -0.6420 -vn -0.3824 0.3912 -0.8371 -vn -0.9225 0.1943 -0.3336 -vn -0.7055 0.3569 -0.6124 -vn -0.3816 0.4653 -0.7987 -vn -0.9805 0.0658 -0.1851 -vn -0.9227 0.2195 -0.3168 -vn -0.7057 0.4035 -0.5824 -vn -0.3817 0.5262 -0.7599 -vn -0.9804 0.0812 -0.1793 -vn -0.9228 0.2418 -0.2999 -vn -0.7056 0.4446 -0.5518 -vn -0.3816 0.5800 -0.7197 -vn -0.9991 -0.0250 -0.0344 -vn -0.9798 0.1310 -0.1513 -vn -0.9228 0.2621 -0.2825 -vn -0.3818 0.6294 -0.6768 -vn -0.9991 -0.0223 -0.0368 -vn -0.9226 0.2821 -0.2630 -vn -0.7053 0.4836 -0.5183 -vn -0.7054 0.5189 -0.4829 -vn -0.3814 0.6769 -0.6296 -vn -0.9990 -0.0192 -0.0405 -vn -0.9224 0.3023 -0.2404 -vn -0.7051 0.5553 -0.4410 -vn -0.3811 0.7242 -0.5748 -vn -0.9988 -0.0164 -0.0456 -vn -0.9223 0.3228 -0.2127 -vn -0.7048 0.5927 -0.3898 -vn -0.3807 0.7728 -0.5077 -vn -0.9236 0.3402 -0.1770 -vn -0.7067 0.6276 -0.3265 -vn -0.3824 0.8197 -0.4265 -vn -1.0000 -0.0024 -0.0069 -vn -0.9801 0.1768 -0.0904 -vn -0.9231 0.3438 -0.1722 -vn -0.7054 0.6340 -0.3169 -vn -0.3805 0.8274 -0.4131 -vn -0.9983 -0.0018 -0.0584 -vn -0.9212 0.3708 -0.1182 -vn -0.7041 0.6768 -0.2147 -vn -0.3811 0.8815 -0.2788 -vn -0.9210 0.3855 -0.0568 -vn -0.7038 0.7028 -0.1036 -vn -0.3807 0.9148 -0.1349 -vn -0.9798 0.1875 -0.0690 -vn -0.9211 0.3892 0.0026 -vn -0.7040 0.7101 0.0046 -vn -0.3809 0.9246 0.0060 -vn -0.9799 0.1958 -0.0391 -vn -0.9211 0.3846 0.0602 -vn -0.7041 0.7015 0.1099 -vn -0.3807 0.9136 0.1431 -vn -0.9984 0.0302 -0.0467 -vn -0.9792 0.1976 0.0461 -vn -0.7040 0.6778 0.2120 -vn -0.3806 0.8825 0.2761 -vn -0.9984 0.0372 -0.0418 -vn -0.9210 0.3715 0.1171 -vn -0.9209 0.3505 0.1705 -vn -0.7038 0.6392 0.3100 -vn -0.3806 0.8319 0.4038 -vn -0.9984 0.0441 -0.0360 -vn -0.9208 0.3208 0.2217 -vn -0.7034 0.5847 0.4040 -vn -0.3804 0.7609 0.5257 -vn -0.9983 0.0507 -0.0295 -vn -0.9212 0.2811 0.2690 -vn -0.7040 0.5130 0.4912 -vn -0.3806 0.6679 0.6395 -vn -0.9235 0.2317 0.3058 -vn -0.7066 0.4276 0.5638 -vn -0.3824 0.5585 0.7361 -vn -0.9798 0.1250 0.1562 -vn -0.9235 0.2265 0.3096 -vn -0.7067 0.4176 0.5712 -vn -0.3824 0.5453 0.7460 -vn -0.9985 0.0529 -0.0132 -vn -0.9800 0.1072 0.1675 -vn -0.9221 0.1879 0.3381 -vn -0.7054 0.3436 0.6200 -vn -0.3822 0.4476 0.8085 -vn -0.9220 0.1466 0.3582 -vn -0.7049 0.2688 0.6564 -vn -0.3813 0.3503 0.8555 -vn -0.9802 0.1080 0.1658 -vn -0.9223 0.1085 0.3710 -vn -0.7052 0.1990 0.6805 -vn -0.3813 0.2597 0.8872 -vn -0.9803 0.0892 0.1763 -vn -0.9224 0.0718 0.3796 -vn -0.7053 0.1318 0.6966 -vn -0.3815 0.1719 0.9082 -vn -0.9990 0.0453 0.0064 -vn -0.9797 0.0278 0.1983 -vn -0.7052 0.0648 0.7060 -vn -0.3813 0.0847 0.9206 -vn -0.9989 0.0451 0.0110 -vn -0.9220 0.0340 0.3858 -vn -0.9221 -0.0018 0.3868 -vn -0.7048 -0.0040 0.7094 -vn -0.3811 -0.0054 0.9245 -vn -0.9988 0.0452 0.0168 -vn -0.9219 -0.0422 0.3852 -vn -0.7045 -0.0776 0.7054 -vn -0.3807 -0.1015 0.9191 -vn -0.9987 0.0459 0.0237 -vn -0.9218 -0.0863 0.3778 -vn -0.7043 -0.1589 0.6919 -vn -0.3804 -0.2072 0.9013 -vn -0.9237 -0.1331 0.3591 -vn -0.7070 -0.2457 0.6632 -vn -0.3825 -0.3209 0.8664 -vn -0.9797 -0.0660 0.1892 -vn -0.9241 -0.1320 0.3585 -vn -0.7076 -0.2442 0.6631 -vn -0.3830 -0.3194 0.8668 -vn -0.9825 -0.0077 0.1859 -vn -0.9269 -0.0698 0.3688 -vn -0.7122 -0.1308 0.6897 -vn -0.3867 -0.1723 0.9060 -vn -0.9991 0.0411 0.0036 -vn -0.9818 -0.0189 0.1890 -vn -0.9272 -0.0079 0.3745 -vn -0.7126 -0.0136 0.7015 -vn -0.3869 -0.0173 0.9220 -vn -0.9992 0.0410 -0.0033 -vn -0.9272 0.0547 0.3706 -vn -0.7126 0.1036 0.6939 -vn -0.3870 0.1366 0.9119 -vn -0.9992 0.0398 -0.0102 -vn -0.9271 0.1152 0.3566 -vn -0.7126 0.2168 0.6672 -vn -0.3874 0.2856 0.8765 -vn -0.9271 0.1733 0.3325 -vn -0.7125 0.3244 0.6222 -vn -0.3871 0.4260 0.8178 -vn -0.9832 0.1294 0.1285 -vn -0.9271 0.2258 0.2992 -vn -0.7125 0.4227 0.5600 -vn -0.3869 0.5555 0.7360 -vn -0.9832 0.1490 0.1052 -vn -0.9271 0.2724 0.2572 -vn -0.7126 0.5101 0.4817 -vn -0.3872 0.6703 0.6331 -vn -0.9832 0.1646 0.0785 -vn -0.9269 0.3122 0.2083 -vn -0.7122 0.5842 0.3893 -vn -0.3867 0.7676 0.5111 -vn -0.9990 0.0251 -0.0357 -vn -0.9817 0.1671 0.0909 -vn -0.9216 0.3530 0.1613 -vn -0.6984 0.6519 0.2954 -vn -0.3669 0.8478 0.3828 -vn -1.0000 0.0012 -0.0022 -vn -0.9236 0.3437 0.1697 -vn -0.7065 0.6346 0.3133 -vn -0.3818 0.8286 0.4093 -vn -0.9984 0.0424 -0.0361 -vn -0.9219 0.3202 0.2183 -vn -0.7051 0.5854 0.4002 -vn -0.3821 0.7625 0.5221 -vn -0.9218 0.2888 0.2586 -vn -0.7046 0.5287 0.4732 -vn -0.3811 0.6890 0.6165 -vn -0.9801 0.1704 0.1017 -vn -0.9220 0.2563 0.2903 -vn -0.7049 0.4695 0.5317 -vn -0.3813 0.6119 0.6930 -vn -0.9802 0.1566 0.1215 -vn -0.9221 0.2224 0.3166 -vn -0.7050 0.4076 0.5804 -vn -0.3813 0.5314 0.7565 -vn -0.9802 0.1419 0.1382 -vn -0.9221 0.1867 0.3389 -vn -0.7050 0.3421 0.6213 -vn -0.3813 0.4459 0.8098 -vn -0.9988 0.0481 -0.0072 -vn -0.9796 0.0871 0.1811 -vn -0.9219 0.1485 0.3579 -vn -0.7045 0.2715 0.6557 -vn -0.3809 0.3536 0.8543 -vn -0.9987 0.0503 -0.0011 -vn -0.9216 0.1057 0.3734 -vn -0.7042 0.1929 0.6833 -vn -0.3805 0.2509 0.8901 -vn -0.9986 0.0531 0.0059 -vn -0.9216 0.0570 0.3838 -vn -0.7042 0.1037 0.7023 -vn -0.3804 0.1347 0.9150 -vn -0.9238 0.0006 0.3828 -vn -0.7070 0.0013 0.7072 -vn -0.3826 0.0017 0.9239 -vn -1.0000 0.0012 -0.0008 -vn -0.9798 0.0000 0.1997 -vn -0.9237 -0.0007 0.3831 -vn -0.7068 -0.0014 0.7075 -vn -0.3822 -0.0018 0.9241 -vn -0.9982 0.0537 0.0265 -vn -0.9207 -0.0666 0.3844 -vn -0.7036 -0.1223 0.7000 -vn -0.3807 -0.1599 0.9108 -vn -0.9981 0.0495 0.0373 -vn -0.7033 -0.2432 0.6680 -vn -0.9202 -0.1957 0.3389 -vn -0.9205 -0.1333 0.3673 -vn -0.7030 -0.3556 0.6159 -vn -0.3801 -0.3167 0.8691 -vn -0.9797 -0.0599 0.1913 -vn -0.9205 -0.2511 0.2993 -vn -0.7030 -0.4572 0.5448 -vn -0.3805 -0.5945 0.7084 -vn -0.3800 -0.4631 0.8007 -vn -0.9798 -0.0921 0.1775 -vn -0.9203 -0.2997 0.2515 -vn -0.3800 -0.7086 0.5946 -vn -0.9797 -0.1217 0.1592 -vn -0.9204 -0.3386 0.1955 -vn -0.7030 -0.5451 0.4568 -vn -0.7030 -0.6159 0.3556 -vn -0.9981 0.0034 0.0620 -vn -0.9790 -0.1846 0.0861 -vn -0.9203 -0.3677 0.1334 -vn -0.7030 -0.6683 0.2433 -vn -0.3800 -0.8013 0.4621 -vn -0.9209 -0.3839 0.0670 -vn -0.7040 -0.6994 0.1235 -vn -0.3800 -0.8692 0.3164 -vn -0.9796 -0.1864 0.0752 -vn -0.9237 -0.3832 0.0017 -vn -0.7069 -0.7073 0.0030 -vn -0.3825 -0.9239 0.0043 -vn -0.3798 -0.9112 0.1598 -vn -0.9798 -0.2002 0.0000 -usemtl Material.001 -s 1 -f 2899/2962/1211 2901/2963/1212 2898/2964/1213 -f 2957/2965/1214 2994/2966/1215 2956/2967/1216 -f 3047/2968/1217 3049/2969/1218 3046/2970/1219 -f 3051/2971/1220 3053/2972/1221 3050/2973/1222 -f 3050/2973/1222 3055/2974/1223 3054/2975/1224 -f 3054/2975/1224 3057/2976/1225 3056/2977/1226 -f 3056/2977/1226 3059/2978/1227 3058/2979/1228 -f 3058/2979/1228 3061/2980/1229 3060/2981/1230 -f 3060/2981/1230 3063/2982/1231 3062/2983/1232 -f 3065/2984/1233 3067/2985/1234 3064/2986/1235 -f 3068/2987/1236 3066/2988/1237 3065/2984/1233 -f 3070/2989/1238 3052/2990/1239 3051/2971/1220 -f 3073/2991/1240 3075/2992/1241 3072/2993/1242 -f 3077/2994/1243 3079/2995/1244 3076/2996/1245 -f 3076/2996/1245 3081/2997/1246 3080/2998/1247 -f 3080/2998/1247 3083/2999/1248 3082/3000/1249 -f 3082/3000/1249 3085/3001/1250 3084/3002/1251 -f 3084/3002/1251 3087/3003/1252 3086/3004/1253 -f 3086/3004/1253 3074/3005/1254 3073/2991/1240 -f 3089/3006/1255 3091/3007/1256 3088/3008/1257 -f 3064/2986/1235 3078/3009/1258 3077/2994/1243 -f 3092/3010/1259 3090/3011/1260 3089/3006/1255 -f 3046/2970/1219 3071/3012/1261 3070/2989/1238 -f 3095/3013/1262 3097/3014/1263 3094/3015/1264 -f 3099/3016/1265 3101/3017/1266 3098/3018/1267 -f 3098/3018/1267 3103/3019/1268 3102/3020/1269 -f 3102/3020/1269 3105/3021/1270 3104/3022/1271 -f 3104/3022/1271 3107/3023/1272 3106/3024/1273 -f 3106/3024/1273 3109/3025/1274 3108/3026/1275 -f 3108/3026/1275 3096/3027/1276 3095/3013/1262 -f 3111/3028/1277 3113/3029/1278 3110/3030/1279 -f 3094/3015/1264 3112/3031/1280 3111/3028/1277 -f 3088/3008/1257 3100/3032/1281 3099/3016/1265 -f 3115/3033/1282 3117/3034/1283 3114/3035/1284 -f 3119/3036/1285 3121/3037/1286 3118/3038/1287 -f 3118/3038/1287 3123/3039/1288 3122/3040/1289 -f 3122/3040/1289 3125/3041/1290 3124/3042/1291 -f 3124/3042/1291 3127/3043/1292 3126/3044/1293 -f 3126/3044/1293 3129/3045/1294 3128/3046/1295 -f 3128/3046/1295 3116/3047/1296 3115/3033/1282 -f 3131/3048/1297 3133/3049/1298 3130/3050/1299 -f 3114/3035/1284 3132/3051/1300 3131/3048/1297 -f 3110/3030/1279 3120/3052/1301 3119/3036/1285 -f 3135/3053/1302 3137/3054/1303 3134/3055/1304 -f 3139/3056/1305 3141/3057/1306 3138/3058/1307 -f 3138/3058/1307 3143/3059/1308 3142/3060/1309 -f 3142/3060/1309 3145/3061/1310 3144/3062/1311 -f 3144/3062/1311 3147/3063/1312 3146/3064/1313 -f 3146/3064/1313 3149/3065/1314 3148/3066/1315 -f 3148/3066/1315 3136/3067/1316 3135/3053/1302 -f 3151/3068/1317 3153/3069/1318 3150/3070/1319 -f 3134/3055/1304 3152/3071/1320 3151/3068/1317 -f 3130/3050/1299 3140/3072/1321 3139/3056/1305 -f 3155/3073/1322 3157/3074/1323 3154/3075/1324 -f 3159/3076/1325 3161/3077/1326 3158/3078/1327 -f 3158/3078/1327 3163/3079/1328 3162/3080/1329 -f 3162/3080/1329 3165/3081/1330 3164/3082/1331 -f 3164/3082/1331 3167/3083/1332 3166/3084/1333 -f 3166/3084/1333 3169/3085/1334 3168/3086/1335 -f 3168/3086/1335 3156/3087/1336 3155/3073/1322 -f 3171/3088/1337 3173/3089/1338 3170/3090/1339 -f 3154/3075/1324 3172/3091/1340 3171/3088/1337 -f 3150/3070/1319 3160/3092/1341 3159/3076/1325 -f 3175/3093/1342 3177/3094/1343 3174/3095/1344 -f 3179/3096/1345 3181/3097/1346 3178/3098/1347 -f 3178/3098/1347 3183/3099/1348 3182/3100/1349 -f 3182/3100/1349 3185/3101/1350 3184/3102/1351 -f 3184/3102/1351 3187/3103/1352 3186/3104/1353 -f 3186/3104/1353 3189/3105/1354 3188/3106/1355 -f 3188/3106/1355 3176/3107/1356 3175/3093/1342 -f 3191/3108/1357 3193/3109/1358 3190/3110/1359 -f 3174/3095/1344 3192/3111/1360 3191/3108/1357 -f 3170/3090/1339 3180/3112/1361 3179/3096/1345 -f 3195/3113/1362 3197/3114/1363 3194/3115/1364 -f 3199/3116/1365 3201/3117/1366 3198/3118/1367 -f 3198/3118/1367 3203/3119/1368 3202/3120/1369 -f 3202/3120/1369 3205/3121/1370 3204/3122/1371 -f 3204/3122/1371 3207/3123/1372 3206/3124/1373 -f 3206/3124/1373 3209/3125/1374 3208/3126/1375 -f 3208/3126/1375 3196/3127/1376 3195/3113/1362 -f 3211/3128/1377 3213/3129/1378 3210/3130/1379 -f 3190/3110/1359 3200/3131/1380 3199/3116/1365 -f 3214/3132/1381 3212/3133/1382 3211/3128/1377 -f 3072/2993/1242 3093/3134/1383 3092/3010/1259 -f 3217/3135/1384 3219/3136/1385 3216/3137/1386 -f 3221/3138/1387 3223/3139/1388 3220/3140/1389 -f 3220/3140/1389 3225/3141/1390 3224/3142/1391 -f 3224/3142/1391 3227/3143/1392 3226/3144/1393 -f 3226/3144/1393 3229/3145/1394 3228/3146/1395 -f 3228/3146/1395 3231/3147/1396 3230/3148/1397 -f 3230/3148/1397 3218/3149/1398 3217/3135/1384 -f 3233/3150/1399 3235/3151/1400 3232/3152/1401 -f 3216/3137/1386 3234/3153/1402 3233/3150/1399 -f 3210/3130/1379 3222/3154/1403 3221/3138/1387 -f 3237/3155/1404 3239/3156/1405 3236/3157/1406 -f 3241/3158/1407 3243/3159/1408 3240/3160/1409 -f 3240/3160/1409 3245/3161/1410 3244/3162/1411 -f 3244/3162/1411 3247/3163/1412 3246/3164/1413 -f 3246/3164/1413 3249/3165/1414 3248/3166/1415 -f 3248/3166/1415 3251/3167/1416 3250/3168/1417 -f 3250/3168/1417 3238/3169/1418 3237/3155/1404 -f 3253/3170/1419 3255/3171/1420 3252/3172/1421 -f 3236/3157/1406 3254/3173/1422 3253/3170/1419 -f 3232/3152/1401 3242/3174/1423 3241/3158/1407 -f 3257/3175/1424 3259/3176/1425 3256/3177/1426 -f 3261/3178/1427 3263/3179/1428 3260/3180/1429 -f 3260/3180/1429 3265/3181/1430 3264/3182/1431 -f 3264/3182/1431 3267/3183/1432 3266/3184/1433 -f 3266/3184/1433 3269/3185/1434 3268/3186/1435 -f 3268/3186/1435 3271/3187/1436 3270/3188/1437 -f 3270/3188/1437 3258/3189/1438 3257/3175/1424 -f 3273/3190/1439 3275/3191/1440 3272/3192/1441 -f 3273/3190/1439 3259/3176/1425 3274/3193/1442 -f 3252/3172/1421 3262/3194/1443 3261/3178/1427 -f 3277/3195/1444 3279/3196/1445 3276/3197/1446 -f 3281/3198/1447 3283/3199/1448 3280/3200/1449 -f 3280/3200/1449 3285/3201/1450 3284/3202/1451 -f 3284/3202/1451 3287/3203/1452 3286/3204/1453 -f 3286/3204/1453 3289/3205/1454 3288/3206/1455 -f 3288/3206/1455 3291/3207/1456 3290/3208/1457 -f 3290/3208/1457 3278/3209/1458 3277/3195/1444 -f 2898/2964/1213 3293/3210/1459 3292/3211/1460 -f 3272/3192/1441 3282/3212/1461 3281/3198/1447 -f 3194/3115/1364 3215/3213/1462 3214/3132/1381 -f 3276/3197/1446 3295/3214/1463 3294/3215/1464 -f 3297/3216/1465 3299/3217/1466 3296/3218/1467 -f 3301/3219/1468 3303/3220/1469 3300/3221/1470 -f 3300/3221/1470 3305/3222/1471 3304/3223/1472 -f 3304/3223/1472 3307/3224/1473 3306/3225/1474 -f 3306/3225/1474 3309/3226/1475 3308/3227/1476 -f 3308/3227/1476 3311/3228/1477 3310/3229/1478 -f 3310/3229/1478 3298/3230/1479 3297/3216/1465 -f 3313/3231/1480 3315/3232/1481 3312/3233/1482 -f 3296/3218/1467 3314/3234/1483 3313/3231/1480 -f 3292/3211/1460 3302/3235/1484 3301/3219/1468 -f 3316/3236/1485 3048/3237/1486 3047/2968/1217 -f 3319/3238/1487 3321/3239/1488 3318/3240/1489 -f 3318/3240/1489 3323/3241/1490 3322/3242/1491 -f 3322/3242/1491 3325/3243/1492 3324/3244/1493 -f 3324/3244/1493 3327/3245/1494 3326/3246/1495 -f 3326/3246/1495 3329/3247/1496 3328/3248/1497 -f 3328/3248/1497 3317/3249/1498 3316/3236/1485 -f 3382/3250/1499 3419/3251/1500 3420/3252/1501 -f 3312/3233/1482 3320/3253/1502 3319/3238/1487 -f 3062/2983/1232 3069/3254/1503 3068/2987/1236 -f 3045/3255/1504 3475/3256/1505 2902/3257/1506 -f 3474/3258/1507 3477/3259/1508 3475/3256/1505 -f 3476/3260/1509 3479/3261/1510 3477/3259/1508 -f 3478/3262/1511 2899/2962/1211 3479/3261/1510 -f 3046/2970/1219 3480/3263/1512 3481/3264/1513 -f 3481/3264/1513 3482/3265/1514 3483/3266/1515 -f 3483/3266/1515 3484/3267/1516 3485/3268/1517 -f 3485/3268/1517 2924/3269/1518 2923/3270/1519 -f 3051/2971/1220 3480/3263/1512 3070/2989/1238 -f 3480/3263/1512 3487/3271/1520 3482/3265/1514 -f 3482/3265/1514 3488/3272/1521 3484/3267/1516 -f 3488/3272/1521 2924/3269/1518 3484/3267/1516 -f 3051/2971/1220 3489/3273/1522 3486/3274/1523 -f 3489/3273/1522 3487/3271/1520 3486/3274/1523 -f 3487/3271/1520 3491/3275/1524 3488/3272/1521 -f 3491/3275/1524 2925/3276/1525 3488/3272/1521 -f 3054/2975/1224 3489/3273/1522 3050/2973/1222 -f 3492/3277/1526 3490/3278/1527 3489/3273/1522 -f 3490/3278/1527 3494/3279/1528 3491/3275/1524 -f 3491/3275/1524 2927/3280/1529 2926/3281/1530 -f 3056/2977/1226 3492/3277/1526 3054/2975/1224 -f 3492/3277/1526 3496/3282/1531 3493/3283/1532 -f 3493/3283/1532 3497/3284/1533 3494/3279/1528 -f 3497/3284/1533 2927/3280/1529 3494/3279/1528 -f 3056/2977/1226 3498/3285/1534 3495/3286/1535 -f 3498/3285/1534 3496/3282/1531 3495/3286/1535 -f 3499/3287/1536 3497/3284/1533 3496/3282/1531 -f 3497/3284/1533 2929/3288/1537 2928/3289/1538 -f 3058/2979/1228 3501/3290/1539 3498/3285/1534 -f 3501/3290/1539 3499/3287/1536 3498/3285/1534 -f 3502/3291/1540 3500/3292/1541 3499/3287/1536 -f 3503/3293/1542 2929/3288/1537 3500/3292/1541 -f 3060/2981/1230 3504/3294/1543 3501/3290/1539 -f 3501/3290/1539 3505/3295/1544 3502/3291/1540 -f 3505/3295/1544 3503/3293/1542 3502/3291/1540 -f 3506/3296/1545 2930/3297/1546 3503/3293/1542 -f 3068/2987/1236 3504/3294/1543 3062/2983/1232 -f 3507/3298/1547 3505/3295/1544 3504/3294/1543 -f 3508/3299/1548 3506/3296/1545 3505/3295/1544 -f 3509/3300/1549 2931/3301/1550 3506/3296/1545 -f 3065/2984/1233 3507/3298/1547 3068/2987/1236 -f 3510/3302/1551 3508/3299/1548 3507/3298/1547 -f 3511/3303/1552 3509/3300/1549 3508/3299/1548 -f 3512/3304/1553 2932/3305/1554 3509/3300/1549 -f 3064/2986/1235 3510/3302/1551 3065/2984/1233 -f 3513/3306/1555 3511/3303/1552 3510/3302/1551 -f 3514/3307/1556 3512/3304/1553 3511/3303/1552 -f 3515/3308/1557 2933/3309/1558 3512/3304/1553 -f 3064/2986/1235 3516/3310/1559 3513/3306/1555 -f 3513/3306/1555 3517/3311/1560 3514/3307/1556 -f 3514/3307/1556 3518/3312/1561 3515/3308/1557 -f 3515/3308/1557 2935/3313/1562 2934/3314/1563 -f 3077/2994/1243 3519/3315/1564 3516/3310/1559 -f 3516/3310/1559 3520/3316/1565 3517/3311/1560 -f 3517/3311/1560 3521/3317/1566 3518/3312/1561 -f 3518/3312/1561 2936/3318/1567 2935/3313/1562 -f 3076/2996/1245 3522/3319/1568 3519/3315/1564 -f 3519/3315/1564 3523/3320/1569 3520/3316/1565 -f 3520/3316/1565 3524/3321/1570 3521/3317/1566 -f 3521/3317/1566 2937/3322/1571 2936/3318/1567 -f 3080/2998/1247 3525/3323/1572 3522/3319/1568 -f 3522/3319/1568 3526/3324/1573 3523/3320/1569 -f 3526/3324/1573 3524/3321/1570 3523/3320/1569 -f 3527/3325/1574 2937/3322/1571 3524/3321/1570 -f 3084/3002/1251 3525/3323/1572 3082/3000/1249 -f 3528/3326/1575 3526/3324/1573 3525/3323/1572 -f 3529/3327/1576 3527/3325/1574 3526/3324/1573 -f 3530/3328/1577 2938/3329/1578 3527/3325/1574 -f 3086/3004/1253 3528/3326/1575 3084/3002/1251 -f 3531/3330/1579 3529/3327/1576 3528/3326/1575 -f 3532/3331/1580 3530/3328/1577 3529/3327/1576 -f 3533/3332/1581 2939/3333/1582 3530/3328/1577 -f 3073/2991/1240 3531/3330/1579 3086/3004/1253 -f 3534/3334/1583 3532/3331/1580 3531/3330/1579 -f 3535/3335/1584 3533/3332/1581 3532/3331/1580 -f 3536/3336/1585 2940/3337/1586 3533/3332/1581 -f 3073/2991/1240 3537/3338/1587 3534/3334/1583 -f 3534/3334/1583 3538/3339/1588 3535/3335/1584 -f 3535/3335/1584 3539/3340/1589 3536/3336/1585 -f 3536/3336/1585 2942/3341/1590 2941/3342/1591 -f 3072/2993/1242 3540/3343/1592 3537/3338/1587 -f 3537/3338/1587 3541/3344/1593 3538/3339/1588 -f 3538/3339/1588 3542/3345/1594 3539/3340/1589 -f 3539/3340/1589 2943/3346/1595 2942/3341/1590 -f 3089/3006/1255 3540/3343/1592 3092/3010/1259 -f 3543/3347/1596 3541/3344/1593 3540/3343/1592 -f 3544/3348/1597 3542/3345/1594 3541/3344/1593 -f 3545/3349/1598 2943/3346/1595 3542/3345/1594 -f 3088/3008/1257 3543/3347/1596 3089/3006/1255 -f 3546/3350/1599 3544/3348/1597 3543/3347/1596 -f 3547/3351/1600 3545/3349/1598 3544/3348/1597 -f 3548/3352/1601 2944/3353/1602 3545/3349/1598 -f 3099/3016/1265 3546/3350/1599 3088/3008/1257 -f 3549/3354/1603 3547/3351/1600 3546/3350/1599 -f 3550/3355/1604 3548/3352/1601 3547/3351/1600 -f 3551/3356/1605 2945/3357/1606 3548/3352/1601 -f 3098/3018/1267 3549/3354/1603 3099/3016/1265 -f 3552/3358/1607 3550/3355/1604 3549/3354/1603 -f 3553/3359/1608 3551/3356/1605 3550/3355/1604 -f 3554/3360/1609 2946/3361/1610 3551/3356/1605 -f 3102/3020/1269 3552/3358/1607 3098/3018/1267 -f 3555/3362/1611 3553/3359/1608 3552/3358/1607 -f 3556/3363/1612 3554/3360/1609 3553/3359/1608 -f 3557/3364/1613 2947/3365/1614 3554/3360/1609 -f 3102/3020/1269 3558/3366/1615 3555/3362/1611 -f 3558/3366/1615 3556/3363/1612 3555/3362/1611 -f 3556/3363/1612 3560/3367/1616 3557/3364/1613 -f 3560/3367/1616 2948/3368/1617 3557/3364/1613 -f 3104/3022/1271 3561/3369/1618 3558/3366/1615 -f 3558/3366/1615 3562/3370/1619 3559/3371/1620 -f 3559/3371/1620 3563/3372/1621 3560/3367/1616 -f 3560/3367/1616 2950/3373/1622 2949/3374/1623 -f 3106/3024/1273 3564/3375/1624 3561/3369/1618 -f 3561/3369/1618 3565/3376/1625 3562/3370/1619 -f 3562/3370/1619 3566/3377/1626 3563/3372/1621 -f 3563/3372/1621 2951/3378/1627 2950/3373/1622 -f 3108/3026/1275 3567/3379/1628 3564/3375/1624 -f 3564/3375/1624 3568/3380/1629 3565/3376/1625 -f 3565/3376/1625 3569/3381/1630 3566/3377/1626 -f 3566/3377/1626 2952/3382/1631 2951/3378/1627 -f 3095/3013/1262 3570/3383/1632 3567/3379/1628 -f 3567/3379/1628 3571/3384/1633 3568/3380/1629 -f 3568/3380/1629 3572/3385/1634 3569/3381/1630 -f 3569/3381/1630 2953/3386/1635 2952/3382/1631 -f 3094/3015/1264 3573/3387/1636 3570/3383/1632 -f 3570/3383/1632 3574/3388/1637 3571/3384/1633 -f 3571/3384/1633 3575/3389/1638 3572/3385/1634 -f 3572/3385/1634 2954/3390/1639 2953/3386/1635 -f 3110/3030/1279 3573/3387/1636 3111/3028/1277 -f 3576/3391/1640 3574/3388/1637 3573/3387/1636 -f 3577/3392/1641 3575/3389/1638 3574/3388/1637 -f 3578/3393/1642 2954/3390/1639 3575/3389/1638 -f 3110/3030/1279 3579/3394/1643 3576/3391/1640 -f 3576/3391/1640 3580/3395/1644 3577/3392/1641 -f 3577/3392/1641 3581/3396/1645 3578/3393/1642 -f 3578/3393/1642 2956/2967/1216 2955/3397/1646 -f 3119/3036/1285 3582/3398/1647 3579/3394/1643 -f 3579/3394/1643 3583/3399/1648 3580/3395/1644 -f 3580/3395/1644 3584/3400/1649 3581/3396/1645 -f 3581/3396/1645 2957/2965/1214 2956/2967/1216 -f 3118/3038/1287 3585/3401/1650 3582/3398/1647 -f 3582/3398/1647 3586/3402/1651 3583/3399/1648 -f 3583/3399/1648 3587/3403/1652 3584/3400/1649 -f 3584/3400/1649 2958/3404/1653 2957/2965/1214 -f 3124/3042/1291 3585/3401/1650 3122/3040/1289 -f 3585/3401/1650 3589/3405/1654 3586/3402/1651 -f 3589/3405/1654 3587/3403/1652 3586/3402/1651 -f 3587/3403/1652 2959/3406/1655 2958/3404/1653 -f 3126/3044/1293 3588/3407/1656 3124/3042/1291 -f 3591/3408/1657 3589/3405/1654 3588/3407/1656 -f 3592/3409/1658 3590/3410/1659 3589/3405/1654 -f 3593/3411/1660 2959/3406/1655 3590/3410/1659 -f 3128/3046/1295 3591/3408/1657 3126/3044/1293 -f 3594/3412/1661 3592/3409/1658 3591/3408/1657 -f 3595/3413/1662 3593/3411/1660 3592/3409/1658 -f 3596/3414/1663 2960/3415/1664 3593/3411/1660 -f 3115/3033/1282 3594/3412/1661 3128/3046/1295 -f 3597/3416/1665 3595/3413/1662 3594/3412/1661 -f 3598/3417/1666 3596/3414/1663 3595/3413/1662 -f 3599/3418/1667 2961/3419/1668 3596/3414/1663 -f 3115/3033/1282 3600/3420/1669 3597/3416/1665 -f 3597/3416/1665 3601/3421/1670 3598/3417/1666 -f 3598/3417/1666 3602/3422/1671 3599/3418/1667 -f 3599/3418/1667 2963/3423/1672 2962/3424/1673 -f 3114/3035/1284 3603/3425/1674 3600/3420/1669 -f 3600/3420/1669 3604/3426/1675 3601/3421/1670 -f 3601/3421/1670 3605/3427/1676 3602/3422/1671 -f 3602/3422/1671 2964/3428/1677 2963/3423/1672 -f 3131/3048/1297 3606/3429/1678 3603/3425/1674 -f 3603/3425/1674 3607/3430/1679 3604/3426/1675 -f 3604/3426/1675 3608/3431/1680 3605/3427/1676 -f 3605/3427/1676 2965/3432/1681 2964/3428/1677 -f 3139/3056/1305 3606/3429/1678 3130/3050/1299 -f 3609/3433/1682 3607/3430/1679 3606/3429/1678 -f 3610/3434/1683 3608/3431/1680 3607/3430/1679 -f 3611/3435/1684 2965/3432/1681 3608/3431/1680 -f 3138/3058/1307 3609/3433/1682 3139/3056/1305 -f 3612/3436/1685 3610/3434/1683 3609/3433/1682 -f 3613/3437/1686 3611/3435/1684 3610/3434/1683 -f 3614/3438/1687 2966/3439/1688 3611/3435/1684 -f 3142/3060/1309 3612/3436/1685 3138/3058/1307 -f 3615/3440/1689 3613/3437/1686 3612/3436/1685 -f 3616/3441/1690 3614/3438/1687 3613/3437/1686 -f 3617/3442/1691 2967/3443/1692 3614/3438/1687 -f 3142/3060/1309 3618/3444/1693 3615/3440/1689 -f 3615/3440/1689 3619/3445/1694 3616/3441/1690 -f 3619/3445/1694 3617/3442/1691 3616/3441/1690 -f 3617/3442/1691 2969/3446/1695 2968/3447/1696 -f 3144/3062/1311 3621/3448/1697 3618/3444/1693 -f 3618/3444/1693 3622/3449/1698 3619/3445/1694 -f 3619/3445/1694 3623/3450/1699 3620/3451/1700 -f 3620/3451/1700 2970/3452/1701 2969/3446/1695 -f 3146/3064/1313 3624/3453/1702 3621/3448/1697 -f 3621/3448/1697 3625/3454/1703 3622/3449/1698 -f 3622/3449/1698 3626/3455/1704 3623/3450/1699 -f 3623/3450/1699 2971/3456/1705 2970/3452/1701 -f 3148/3066/1315 3627/3457/1706 3624/3453/1702 -f 3624/3453/1702 3628/3458/1707 3625/3454/1703 -f 3625/3454/1703 3629/3459/1708 3626/3455/1704 -f 3626/3455/1704 2972/3460/1709 2971/3456/1705 -f 3134/3055/1304 3627/3457/1706 3135/3053/1302 -f 3630/3461/1710 3628/3458/1707 3627/3457/1706 -f 3631/3462/1711 3629/3459/1708 3628/3458/1707 -f 3632/3463/1712 2972/3460/1709 3629/3459/1708 -f 3134/3055/1304 3633/3464/1713 3630/3461/1710 -f 3630/3461/1710 3634/3465/1714 3631/3462/1711 -f 3631/3462/1711 3635/3466/1715 3632/3463/1712 -f 3632/3463/1712 2974/3467/1716 2973/3468/1717 -f 3151/3068/1317 3636/3469/1718 3633/3464/1713 -f 3633/3464/1713 3637/3470/1719 3634/3465/1714 -f 3634/3465/1714 3638/3471/1720 3635/3466/1715 -f 3635/3466/1715 2975/3472/1721 2974/3467/1716 -f 3159/3076/1325 3636/3469/1718 3150/3070/1319 -f 3639/3473/1722 3637/3470/1719 3636/3469/1718 -f 3640/3474/1723 3638/3471/1720 3637/3470/1719 -f 3641/3475/1724 2975/3472/1721 3638/3471/1720 -f 3158/3078/1327 3639/3473/1722 3159/3076/1325 -f 3642/3476/1725 3640/3474/1723 3639/3473/1722 -f 3643/3477/1726 3641/3475/1724 3640/3474/1723 -f 3644/3478/1727 2976/3479/1728 3641/3475/1724 -f 3162/3080/1329 3642/3476/1725 3158/3078/1327 -f 3645/3480/1729 3643/3477/1726 3642/3476/1725 -f 3646/3481/1730 3644/3478/1727 3643/3477/1726 -f 3647/3482/1731 2977/3483/1732 3644/3478/1727 -f 3162/3080/1329 3648/3484/1733 3645/3480/1729 -f 3648/3484/1733 3646/3481/1730 3645/3480/1729 -f 3646/3481/1730 3650/3485/1734 3647/3482/1731 -f 3650/3485/1734 2978/3486/1735 3647/3482/1731 -f 3164/3082/1331 3651/3487/1736 3648/3484/1733 -f 3648/3484/1733 3652/3488/1737 3649/3489/1738 -f 3649/3489/1738 3653/3490/1739 3650/3485/1734 -f 3650/3485/1734 2980/3491/1740 2979/3492/1741 -f 3166/3084/1333 3654/3493/1742 3651/3487/1736 -f 3651/3487/1736 3655/3494/1743 3652/3488/1737 -f 3652/3488/1737 3656/3495/1744 3653/3490/1739 -f 3653/3490/1739 2981/3496/1745 2980/3491/1740 -f 3168/3086/1335 3657/3497/1746 3654/3493/1742 -f 3654/3493/1742 3658/3498/1747 3655/3494/1743 -f 3655/3494/1743 3659/3499/1748 3656/3495/1744 -f 3656/3495/1744 2982/3500/1749 2981/3496/1745 -f 3154/3075/1324 3657/3497/1746 3155/3073/1322 -f 3660/3501/1750 3658/3498/1747 3657/3497/1746 -f 3661/3502/1751 3659/3499/1748 3658/3498/1747 -f 3662/3503/1752 2982/3500/1749 3659/3499/1748 -f 3171/3088/1337 3660/3501/1750 3154/3075/1324 -f 3663/3504/1753 3661/3502/1751 3660/3501/1750 -f 3664/3505/1754 3662/3503/1752 3661/3502/1751 -f 3665/3506/1755 2983/3507/1756 3662/3503/1752 -f 3171/3088/1337 3666/3508/1757 3663/3504/1753 -f 3663/3504/1753 3667/3509/1758 3664/3505/1754 -f 3664/3505/1754 3668/3510/1759 3665/3506/1755 -f 3665/3506/1755 2985/3511/1760 2984/3512/1761 -f 3179/3096/1345 3666/3508/1757 3170/3090/1339 -f 3669/3513/1762 3667/3509/1758 3666/3508/1757 -f 3670/3514/1763 3668/3510/1759 3667/3509/1758 -f 3671/3515/1764 2985/3511/1760 3668/3510/1759 -f 3178/3098/1347 3669/3513/1762 3179/3096/1345 -f 3672/3516/1765 3670/3514/1763 3669/3513/1762 -f 3673/3517/1766 3671/3515/1764 3670/3514/1763 -f 3674/3518/1767 2986/3519/1768 3671/3515/1764 -f 3182/3100/1349 3672/3516/1765 3178/3098/1347 -f 3675/3520/1769 3673/3517/1766 3672/3516/1765 -f 3676/3521/1770 3674/3518/1767 3673/3517/1766 -f 3677/3522/1771 2987/3523/1772 3674/3518/1767 -f 3182/3100/1349 3678/3524/1773 3675/3520/1769 -f 3675/3520/1769 3679/3525/1774 3676/3521/1770 -f 3676/3521/1770 3680/3526/1775 3677/3522/1771 -f 3680/3526/1775 2988/3527/1776 3677/3522/1771 -f 3184/3102/1351 3681/3528/1777 3678/3524/1773 -f 3678/3524/1773 3682/3529/1778 3679/3525/1774 -f 3679/3525/1774 3683/3530/1779 3680/3526/1775 -f 3680/3526/1775 2990/3531/1780 2989/3532/1781 -f 3186/3104/1353 3684/3533/1782 3681/3528/1777 -f 3681/3528/1777 3685/3534/1783 3682/3529/1778 -f 3682/3529/1778 3686/3535/1784 3683/3530/1779 -f 3683/3530/1779 2991/3536/1785 2990/3531/1780 -f 3188/3106/1355 3687/3537/1786 3684/3533/1782 -f 3684/3533/1782 3688/3538/1787 3685/3534/1783 -f 3685/3534/1783 3689/3539/1788 3686/3535/1784 -f 3686/3535/1784 2992/3540/1789 2991/3536/1785 -f 3174/3095/1344 3687/3537/1786 3175/3093/1342 -f 3690/3541/1790 3688/3538/1787 3687/3537/1786 -f 3691/3542/1791 3689/3539/1788 3688/3538/1787 -f 3692/3543/1792 2992/3540/1789 3689/3539/1788 -f 3191/3108/1357 3690/3541/1790 3174/3095/1344 -f 3693/3544/1793 3691/3542/1791 3690/3541/1790 -f 3694/3545/1794 3692/3543/1792 3691/3542/1791 -f 3695/3546/1795 2993/3547/1796 3692/3543/1792 -f 3191/3108/1357 3696/3548/1797 3693/3544/1793 -f 3693/3544/1793 3697/3549/1798 3694/3545/1794 -f 3694/3545/1794 3698/3550/1799 3695/3546/1795 -f 3695/3546/1795 2995/3551/1800 2994/2966/1215 -f 3199/3116/1365 3696/3548/1797 3190/3110/1359 -f 3699/3552/1801 3697/3549/1798 3696/3548/1797 -f 3700/3553/1802 3698/3550/1799 3697/3549/1798 -f 3701/3554/1803 2995/3551/1800 3698/3550/1799 -f 3198/3118/1367 3699/3552/1801 3199/3116/1365 -f 3702/3555/1804 3700/3553/1802 3699/3552/1801 -f 3703/3556/1805 3701/3554/1803 3700/3553/1802 -f 3704/3557/1806 2996/3558/1807 3701/3554/1803 -f 3202/3120/1369 3702/3555/1804 3198/3118/1367 -f 3705/3559/1808 3703/3556/1805 3702/3555/1804 -f 3706/3560/1809 3704/3557/1806 3703/3556/1805 -f 3707/3561/1810 2997/3562/1811 3704/3557/1806 -f 3204/3122/1371 3705/3559/1808 3202/3120/1369 -f 3705/3559/1808 3709/3563/1812 3706/3560/1809 -f 3709/3563/1812 3707/3561/1810 3706/3560/1809 -f 3707/3561/1810 2999/3564/1813 2998/3565/1814 -f 3204/3122/1371 3711/3566/1815 3708/3567/1816 -f 3708/3567/1816 3712/3568/1817 3709/3563/1812 -f 3709/3563/1812 3713/3569/1818 3710/3570/1819 -f 3710/3570/1819 3000/3571/1820 2999/3564/1813 -f 3206/3124/1373 3714/3572/1821 3711/3566/1815 -f 3711/3566/1815 3715/3573/1822 3712/3568/1817 -f 3712/3568/1817 3716/3574/1823 3713/3569/1818 -f 3713/3569/1818 3001/3575/1824 3000/3571/1820 -f 3208/3126/1375 3717/3576/1825 3714/3572/1821 -f 3714/3572/1821 3718/3577/1826 3715/3573/1822 -f 3715/3573/1822 3719/3578/1827 3716/3574/1823 -f 3716/3574/1823 3002/3579/1828 3001/3575/1824 -f 3194/3115/1364 3717/3576/1825 3195/3113/1362 -f 3720/3580/1829 3718/3577/1826 3717/3576/1825 -f 3721/3581/1830 3719/3578/1827 3718/3577/1826 -f 3722/3582/1831 3002/3579/1828 3719/3578/1827 -f 3214/3132/1381 3720/3580/1829 3194/3115/1364 -f 3723/3583/1832 3721/3581/1830 3720/3580/1829 -f 3724/3584/1833 3722/3582/1831 3721/3581/1830 -f 3725/3585/1834 3003/3586/1835 3722/3582/1831 -f 3214/3132/1381 3726/3587/1836 3723/3583/1832 -f 3723/3583/1832 3727/3588/1837 3724/3584/1833 -f 3724/3584/1833 3728/3589/1838 3725/3585/1834 -f 3725/3585/1834 3005/3590/1839 3004/3591/1840 -f 3211/3128/1377 3729/3592/1841 3726/3587/1836 -f 3726/3587/1836 3730/3593/1842 3727/3588/1837 -f 3727/3588/1837 3731/3594/1843 3728/3589/1838 -f 3728/3589/1838 3006/3595/1844 3005/3590/1839 -f 3221/3138/1387 3729/3592/1841 3210/3130/1379 -f 3732/3596/1845 3730/3593/1842 3729/3592/1841 -f 3733/3597/1846 3731/3594/1843 3730/3593/1842 -f 3734/3598/1847 3006/3595/1844 3731/3594/1843 -f 3220/3140/1389 3732/3596/1845 3221/3138/1387 -f 3735/3599/1848 3733/3597/1846 3732/3596/1845 -f 3736/3600/1849 3734/3598/1847 3733/3597/1846 -f 3737/3601/1850 3007/3602/1851 3734/3598/1847 -f 3224/3142/1391 3735/3599/1848 3220/3140/1389 -f 3738/3603/1852 3736/3600/1849 3735/3599/1848 -f 3739/3604/1853 3737/3601/1850 3736/3600/1849 -f 3740/3605/1854 3008/3606/1855 3737/3601/1850 -f 3226/3144/1393 3738/3603/1852 3224/3142/1391 -f 3741/3607/1856 3739/3604/1853 3738/3603/1852 -f 3739/3604/1853 3743/3608/1857 3740/3605/1854 -f 3740/3605/1854 3010/3609/1858 3009/3610/1859 -f 3226/3144/1393 3744/3611/1860 3741/3607/1856 -f 3741/3607/1856 3745/3612/1861 3742/3613/1862 -f 3742/3613/1862 3746/3614/1863 3743/3608/1857 -f 3743/3608/1857 3011/3615/1864 3010/3609/1858 -f 3228/3146/1395 3747/3616/1865 3744/3611/1860 -f 3744/3611/1860 3748/3617/1866 3745/3612/1861 -f 3745/3612/1861 3749/3618/1867 3746/3614/1863 -f 3746/3614/1863 3012/3619/1868 3011/3615/1864 -f 3230/3148/1397 3750/3620/1869 3747/3616/1865 -f 3747/3616/1865 3751/3621/1870 3748/3617/1866 -f 3748/3617/1866 3752/3622/1871 3749/3618/1867 -f 3749/3618/1867 3013/3623/1872 3012/3619/1868 -f 3216/3137/1386 3750/3620/1869 3217/3135/1384 -f 3753/3624/1873 3751/3621/1870 3750/3620/1869 -f 3754/3625/1874 3752/3622/1871 3751/3621/1870 -f 3755/3626/1875 3013/3623/1872 3752/3622/1871 -f 3216/3137/1386 3756/3627/1876 3753/3624/1873 -f 3753/3624/1873 3757/3628/1877 3754/3625/1874 -f 3754/3625/1874 3758/3629/1878 3755/3626/1875 -f 3755/3626/1875 3015/3630/1879 3014/3631/1880 -f 3233/3150/1399 3759/3632/1881 3756/3627/1876 -f 3756/3627/1876 3760/3633/1882 3757/3628/1877 -f 3757/3628/1877 3761/3634/1883 3758/3629/1878 -f 3758/3629/1878 3016/3635/1884 3015/3630/1879 -f 3241/3158/1407 3759/3632/1881 3232/3152/1401 -f 3762/3636/1885 3760/3633/1882 3759/3632/1881 -f 3763/3637/1886 3761/3634/1883 3760/3633/1882 -f 3764/3638/1887 3016/3635/1884 3761/3634/1883 -f 3240/3160/1409 3762/3636/1885 3241/3158/1407 -f 3765/3639/1888 3763/3637/1886 3762/3636/1885 -f 3766/3640/1889 3764/3638/1887 3763/3637/1886 -f 3767/3641/1890 3017/3642/1891 3764/3638/1887 -f 3244/3162/1411 3765/3639/1888 3240/3160/1409 -f 3768/3643/1892 3766/3640/1889 3765/3639/1888 -f 3769/3644/1893 3767/3641/1890 3766/3640/1889 -f 3770/3645/1894 3018/3646/1895 3767/3641/1890 -f 3244/3162/1411 3771/3647/1896 3768/3643/1892 -f 3771/3647/1896 3769/3644/1893 3768/3643/1892 -f 3772/3648/1897 3770/3645/1894 3769/3644/1893 -f 3770/3645/1894 3020/3649/1898 3019/3650/1899 -f 3246/3164/1413 3774/3651/1900 3771/3647/1896 -f 3771/3647/1896 3775/3652/1901 3772/3648/1897 -f 3772/3648/1897 3776/3653/1902 3773/3654/1903 -f 3773/3654/1903 3021/3655/1904 3020/3649/1898 -f 3248/3166/1415 3777/3656/1905 3774/3651/1900 -f 3774/3651/1900 3778/3657/1906 3775/3652/1901 -f 3775/3652/1901 3779/3658/1907 3776/3653/1902 -f 3776/3653/1902 3022/3659/1908 3021/3655/1904 -f 3250/3168/1417 3780/3660/1909 3777/3656/1905 -f 3777/3656/1905 3781/3661/1910 3778/3657/1906 -f 3778/3657/1906 3782/3662/1911 3779/3658/1907 -f 3779/3658/1907 3023/3663/1912 3022/3659/1908 -f 3236/3157/1406 3780/3660/1909 3237/3155/1404 -f 3783/3664/1913 3781/3661/1910 3780/3660/1909 -f 3784/3665/1914 3782/3662/1911 3781/3661/1910 -f 3785/3666/1915 3023/3663/1912 3782/3662/1911 -f 3253/3170/1419 3783/3664/1913 3236/3157/1406 -f 3786/3667/1916 3784/3665/1914 3783/3664/1913 -f 3787/3668/1917 3785/3666/1915 3784/3665/1914 -f 3788/3669/1918 3024/3670/1919 3785/3666/1915 -f 3253/3170/1419 3789/3671/1920 3786/3667/1916 -f 3786/3667/1916 3790/3672/1921 3787/3668/1917 -f 3787/3668/1917 3791/3673/1922 3788/3669/1918 -f 3788/3669/1918 3026/3674/1923 3025/3675/1924 -f 3261/3178/1427 3789/3671/1920 3252/3172/1421 -f 3792/3676/1925 3790/3672/1921 3789/3671/1920 -f 3793/3677/1926 3791/3673/1922 3790/3672/1921 -f 3794/3678/1927 3026/3674/1923 3791/3673/1922 -f 3260/3180/1429 3792/3676/1925 3261/3178/1427 -f 3795/3679/1928 3793/3677/1926 3792/3676/1925 -f 3796/3680/1929 3794/3678/1927 3793/3677/1926 -f 3797/3681/1930 3027/3682/1931 3794/3678/1927 -f 3264/3182/1431 3795/3679/1928 3260/3180/1429 -f 3798/3683/1932 3796/3680/1929 3795/3679/1928 -f 3799/3684/1933 3797/3681/1930 3796/3680/1929 -f 3800/3685/1934 3028/3686/1935 3797/3681/1930 -f 3264/3182/1431 3801/3687/1936 3798/3683/1932 -f 3798/3683/1932 3802/3688/1937 3799/3684/1933 -f 3802/3688/1937 3800/3685/1934 3799/3684/1933 -f 3800/3685/1934 3030/3689/1938 3029/3690/1939 -f 3266/3184/1433 3804/3691/1940 3801/3687/1936 -f 3801/3687/1936 3805/3692/1941 3802/3688/1937 -f 3802/3688/1937 3806/3693/1942 3803/3694/1943 -f 3803/3694/1943 3031/3695/1944 3030/3689/1938 -f 3268/3186/1435 3807/3696/1945 3804/3691/1940 -f 3804/3691/1940 3808/3697/1946 3805/3692/1941 -f 3805/3692/1941 3809/3698/1947 3806/3693/1942 -f 3806/3693/1942 3032/3699/1948 3031/3695/1944 -f 3270/3188/1437 3810/3700/1949 3807/3696/1945 -f 3807/3696/1945 3811/3701/1950 3808/3697/1946 -f 3808/3697/1946 3812/3702/1951 3809/3698/1947 -f 3809/3698/1947 3033/3703/1952 3032/3699/1948 -f 3256/3177/1426 3810/3700/1949 3257/3175/1424 -f 3813/3704/1953 3811/3701/1950 3810/3700/1949 -f 3814/3705/1954 3812/3702/1951 3811/3701/1950 -f 3815/3706/1955 3033/3703/1952 3812/3702/1951 -f 3273/3190/1439 3813/3704/1953 3256/3177/1426 -f 3816/3707/1956 3814/3705/1954 3813/3704/1953 -f 3817/3708/1957 3815/3706/1955 3814/3705/1954 -f 3818/3709/1958 3034/3710/1959 3815/3706/1955 -f 3272/3192/1441 3816/3707/1956 3273/3190/1439 -f 3819/3711/1960 3817/3708/1957 3816/3707/1956 -f 3820/3712/1961 3818/3709/1958 3817/3708/1957 -f 3821/3713/1962 3035/3714/1963 3818/3709/1958 -f 3272/3192/1441 3822/3715/1964 3819/3711/1960 -f 3819/3711/1960 3823/3716/1965 3820/3712/1961 -f 3820/3712/1961 3824/3717/1966 3821/3713/1962 -f 3821/3713/1962 3037/3718/1967 3036/3719/1968 -f 3281/3198/1447 3825/3720/1969 3822/3715/1964 -f 3822/3715/1964 3826/3721/1970 3823/3716/1965 -f 3823/3716/1965 3827/3722/1971 3824/3717/1966 -f 3824/3717/1966 3038/3723/1972 3037/3718/1967 -f 3280/3200/1449 3828/3724/1973 3825/3720/1969 -f 3825/3720/1969 3829/3725/1974 3826/3721/1970 -f 3826/3721/1970 3830/3726/1975 3827/3722/1971 -f 3827/3722/1971 3039/3727/1976 3038/3723/1972 -f 3284/3202/1451 3831/3728/1977 3828/3724/1973 -f 3828/3724/1973 3832/3729/1978 3829/3725/1974 -f 3832/3729/1978 3830/3726/1975 3829/3725/1974 -f 3833/3730/1979 3039/3727/1976 3830/3726/1975 -f 3288/3206/1455 3831/3728/1977 3286/3204/1453 -f 3834/3731/1980 3832/3729/1978 3831/3728/1977 -f 3835/3732/1981 3833/3730/1979 3832/3729/1978 -f 3836/3733/1982 3040/3734/1983 3833/3730/1979 -f 3290/3208/1457 3834/3731/1980 3288/3206/1455 -f 3837/3735/1984 3835/3732/1981 3834/3731/1980 -f 3838/3736/1985 3836/3733/1982 3835/3732/1981 -f 3839/3737/1986 3041/3738/1987 3836/3733/1982 -f 3277/3195/1444 3837/3735/1984 3290/3208/1457 -f 3840/3739/1988 3838/3736/1985 3837/3735/1984 -f 3841/3740/1989 3839/3737/1986 3838/3736/1985 -f 3842/3741/1990 3042/3742/1991 3839/3737/1986 -f 3277/3195/1444 3843/3743/1992 3840/3739/1988 -f 3840/3739/1988 3844/3744/1993 3841/3740/1989 -f 3841/3740/1989 3845/3745/1994 3842/3741/1990 -f 3842/3741/1990 3044/3746/1995 3043/3747/1996 -f 3276/3197/1446 3478/3262/1511 3843/3743/1992 -f 3843/3743/1992 3476/3260/1509 3844/3744/1993 -f 3844/3744/1993 3474/3258/1507 3845/3745/1994 -f 3845/3745/1994 3045/3255/1504 3044/3746/1995 -f 2899/2962/1211 3846/3748/1997 3479/3261/1510 -f 3479/3261/1510 3847/3749/1998 3477/3259/1508 -f 3477/3259/1508 3848/3750/1999 3475/3256/1505 -f 3475/3256/1505 2903/3751/2000 2902/3257/1506 -f 2898/2964/1213 3849/3752/2001 3846/3748/1997 -f 3846/3748/1997 3850/3753/2002 3847/3749/1998 -f 3847/3749/1998 3851/3754/2003 3848/3750/1999 -f 3848/3750/1999 2904/3755/2004 2903/3751/2000 -f 3301/3219/1468 3849/3752/2001 3292/3211/1460 -f 3852/3756/2005 3850/3753/2002 3849/3752/2001 -f 3853/3757/2006 3851/3754/2003 3850/3753/2002 -f 3854/3758/2007 2904/3755/2004 3851/3754/2003 -f 3300/3221/1470 3852/3756/2005 3301/3219/1468 -f 3855/3759/2008 3853/3757/2006 3852/3756/2005 -f 3856/3760/2009 3854/3758/2007 3853/3757/2006 -f 3857/3761/2010 2905/3762/2011 3854/3758/2007 -f 3304/3223/1472 3855/3759/2008 3300/3221/1470 -f 3858/3763/2012 3856/3760/2009 3855/3759/2008 -f 3859/3764/2013 3857/3761/2010 3856/3760/2009 -f 3860/3765/2014 2906/3766/2015 3857/3761/2010 -f 3304/3223/1472 3861/3767/2016 3858/3763/2012 -f 3861/3767/2016 3859/3764/2013 3858/3763/2012 -f 3862/3768/2017 3860/3765/2014 3859/3764/2013 -f 3863/3769/2018 2907/3770/2019 3860/3765/2014 -f 3306/3225/1474 3864/3771/2020 3861/3767/2016 -f 3861/3767/2016 3865/3772/2021 3862/3768/2017 -f 3862/3768/2017 3866/3773/2022 3863/3769/2018 -f 3863/3769/2018 2909/3774/2023 2908/3775/2024 -f 3308/3227/1476 3867/3776/2025 3864/3771/2020 -f 3864/3771/2020 3868/3777/2026 3865/3772/2021 -f 3865/3772/2021 3869/3778/2027 3866/3773/2022 -f 3866/3773/2022 2910/3779/2028 2909/3774/2023 -f 3310/3229/1478 3870/3780/2029 3867/3776/2025 -f 3867/3776/2025 3871/3781/2030 3868/3777/2026 -f 3868/3777/2026 3872/3782/2031 3869/3778/2027 -f 3869/3778/2027 2911/3783/2032 2910/3779/2028 -f 3296/3218/1467 3870/3780/2029 3297/3216/1465 -f 3873/3784/2033 3871/3781/2030 3870/3780/2029 -f 3874/3785/2034 3872/3782/2031 3871/3781/2030 -f 3875/3786/2035 2911/3783/2032 3872/3782/2031 -f 3296/3218/1467 3876/3787/2036 3873/3784/2033 -f 3873/3784/2033 3877/3788/2037 3874/3785/2034 -f 3874/3785/2034 3878/3789/2038 3875/3786/2035 -f 3875/3786/2035 2913/3790/2039 2912/3791/2040 -f 3313/3231/1480 3879/3792/2041 3876/3787/2036 -f 3876/3787/2036 3880/3793/2042 3877/3788/2037 -f 3877/3788/2037 3881/3794/2043 3878/3789/2038 -f 3878/3789/2038 2914/3795/2044 2913/3790/2039 -f 3319/3238/1487 3879/3792/2041 3312/3233/1482 -f 3882/3796/2045 3880/3793/2042 3879/3792/2041 -f 3880/3793/2042 3884/3797/2046 3881/3794/2043 -f 3881/3794/2043 2915/3798/2047 2914/3795/2044 -f 3319/3238/1487 3885/3799/2048 3882/3796/2045 -f 3882/3796/2045 3886/3800/2049 3883/3801/2050 -f 3886/3800/2049 3884/3797/2046 3883/3801/2050 -f 3887/3802/2051 2915/3798/2047 3884/3797/2046 -f 3318/3240/1489 3888/3803/2052 3885/3799/2048 -f 3888/3803/2052 3886/3800/2049 3885/3799/2048 -f 3889/3804/2053 3887/3802/2051 3886/3800/2049 -f 3890/3805/2054 2916/3806/2055 3887/3802/2051 -f 3322/3242/1491 3891/3807/2056 3888/3803/2052 -f 3891/3807/2056 3889/3804/2053 3888/3803/2052 -f 3889/3804/2053 3893/3808/2057 3890/3805/2054 -f 3893/3808/2057 2917/3809/2058 3890/3805/2054 -f 3324/3244/1493 3894/3810/2059 3891/3807/2056 -f 3891/3807/2056 3895/3811/2060 3892/3812/2061 -f 3895/3811/2060 3893/3808/2057 3892/3812/2061 -f 3896/3813/2062 2918/3814/2063 3893/3808/2057 -f 3328/3248/1497 3894/3810/2059 3326/3246/1495 -f 3894/3810/2059 3898/3815/2064 3895/3811/2060 -f 3895/3811/2060 3899/3816/2065 3896/3813/2062 -f 3896/3813/2062 2920/3817/2066 2919/3818/2067 -f 3316/3236/1485 3897/3819/2068 3328/3248/1497 -f 3897/3819/2068 3901/3820/2069 3898/3815/2064 -f 3901/3820/2069 3899/3816/2065 3898/3815/2064 -f 3902/3821/2070 2920/3817/2066 3899/3816/2065 -f 3047/2968/1217 3900/3822/2071 3316/3236/1485 -f 3903/3823/2072 3901/3820/2069 3900/3822/2071 -f 3904/3824/2073 3902/3821/2070 3901/3820/2069 -f 3905/3825/2074 2921/3826/2075 3902/3821/2070 -f 3047/2968/1217 3481/3264/1513 3903/3823/2072 -f 3481/3264/1513 3904/3824/2073 3903/3823/2072 -f 3483/3266/1515 3905/3825/2074 3904/3824/2073 -f 3905/3825/2074 2923/3270/1519 2922/3827/2076 -f 2900/3828/2077 3906/3829/2078 3907/3830/2079 -f 3907/3830/2079 3908/3831/2080 3909/3832/2081 -f 3909/3832/2081 3910/3833/2082 3911/3834/2083 -f 3911/3834/2083 3331/3835/2084 3330/3836/2085 -f 3452/3837/2086 3913/3838/2087 3453/3839/2088 -f 3912/3840/2089 3915/3841/2090 3913/3838/2087 -f 3914/3842/2091 3917/3843/2092 3915/3841/2090 -f 3916/3844/2093 3049/2969/1218 3917/3843/2092 -f 3452/3837/2086 3918/3845/2094 3912/3840/2089 -f 3918/3845/2094 3914/3842/2091 3912/3840/2089 -f 3919/3846/2095 3916/3844/2093 3914/3842/2091 -f 3916/3844/2093 3052/2990/1239 3071/3012/1261 -f 3451/3847/2096 3921/3848/2097 3918/3845/2094 -f 3921/3848/2097 3919/3846/2095 3918/3845/2094 -f 3919/3846/2095 3923/3849/2098 3920/3850/2099 -f 3923/3849/2098 3052/2990/1239 3920/3850/2099 -f 3449/3851/2100 3921/3848/2097 3450/3852/2101 -f 3924/3853/2102 3922/3854/2103 3921/3848/2097 -f 3922/3854/2103 3926/3855/2104 3923/3849/2098 -f 3923/3849/2098 3055/2974/1223 3053/2972/1221 -f 3449/3851/2100 3927/3856/2105 3924/3853/2102 -f 3927/3856/2105 3925/3857/2106 3924/3853/2102 -f 3928/3858/2107 3926/3855/2104 3925/3857/2106 -f 3926/3855/2104 3057/2976/1225 3055/2974/1223 -f 3447/3859/2108 3927/3856/2105 3448/3860/2109 -f 3930/3861/2110 3928/3858/2107 3927/3856/2105 -f 3928/3858/2107 3932/3862/2111 3929/3863/2112 -f 3929/3863/2112 3059/2978/1227 3057/2976/1225 -f 3446/3864/2113 3930/3861/2110 3447/3859/2108 -f 3930/3861/2110 3934/3865/2114 3931/3866/2115 -f 3931/3866/2115 3935/3867/2116 3932/3862/2111 -f 3935/3867/2116 3059/2978/1227 3932/3862/2111 -f 3446/3864/2113 3936/3868/2117 3933/3869/2118 -f 3933/3869/2118 3937/3870/2119 3934/3865/2114 -f 3937/3870/2119 3935/3867/2116 3934/3865/2114 -f 3938/3871/2120 3061/2980/1229 3935/3867/2116 -f 3445/3872/2121 3939/3873/2122 3936/3868/2117 -f 3936/3868/2117 3940/3874/2123 3937/3870/2119 -f 3937/3870/2119 3941/3875/2124 3938/3871/2120 -f 3938/3871/2120 3069/3254/1503 3063/2982/1231 -f 3444/3876/2125 3942/3877/2126 3939/3873/2122 -f 3939/3873/2122 3943/3878/2127 3940/3874/2123 -f 3940/3874/2123 3944/3879/2128 3941/3875/2124 -f 3941/3875/2124 3066/2988/1237 3069/3254/1503 -f 3443/3880/2129 3945/3881/2130 3942/3877/2126 -f 3942/3877/2126 3946/3882/2131 3943/3878/2127 -f 3943/3878/2127 3947/3883/2132 3944/3879/2128 -f 3944/3879/2128 3067/2985/1234 3066/2988/1237 -f 3441/3884/2133 3945/3881/2130 3442/3885/2134 -f 3948/3886/2135 3946/3882/2131 3945/3881/2130 -f 3949/3887/2136 3947/3883/2132 3946/3882/2131 -f 3950/3888/2137 3067/2985/1234 3947/3883/2132 -f 3440/3889/2138 3948/3886/2135 3441/3884/2133 -f 3951/3890/2139 3949/3887/2136 3948/3886/2135 -f 3952/3891/2140 3950/3888/2137 3949/3887/2136 -f 3953/3892/2141 3078/3009/1258 3950/3888/2137 -f 3439/3893/2142 3951/3890/2139 3440/3889/2138 -f 3954/3894/2143 3952/3891/2140 3951/3890/2139 -f 3955/3895/2144 3953/3892/2141 3952/3891/2140 -f 3956/3896/2145 3079/2995/1244 3953/3892/2141 -f 3439/3893/2142 3957/3897/2146 3954/3894/2143 -f 3954/3894/2143 3958/3898/2147 3955/3895/2144 -f 3958/3898/2147 3956/3896/2145 3955/3895/2144 -f 3959/3899/2148 3081/2997/1246 3956/3896/2145 -f 3438/3900/2149 3960/3901/2150 3957/3897/2146 -f 3957/3897/2146 3961/3902/2151 3958/3898/2147 -f 3958/3898/2147 3962/3903/2152 3959/3899/2148 -f 3959/3899/2148 3085/3001/1250 3083/2999/1248 -f 3437/3904/2153 3963/3905/2154 3960/3901/2150 -f 3960/3901/2150 3964/3906/2155 3961/3902/2151 -f 3961/3902/2151 3965/3907/2156 3962/3903/2152 -f 3962/3903/2152 3087/3003/1252 3085/3001/1250 -f 3436/3908/2157 3966/3909/2158 3963/3905/2154 -f 3963/3905/2154 3967/3910/2159 3964/3906/2155 -f 3964/3906/2155 3968/3911/2160 3965/3907/2156 -f 3965/3907/2156 3074/3005/1254 3087/3003/1252 -f 3434/3912/2161 3966/3909/2158 3435/3913/2162 -f 3969/3914/2163 3967/3910/2159 3966/3909/2158 -f 3970/3915/2164 3968/3911/2160 3967/3910/2159 -f 3971/3916/2165 3074/3005/1254 3968/3911/2160 -f 3433/3917/2166 3969/3914/2163 3434/3912/2161 -f 3972/3918/2167 3970/3915/2164 3969/3914/2163 -f 3973/3919/2168 3971/3916/2165 3970/3915/2164 -f 3974/3920/2169 3075/2992/1241 3971/3916/2165 -f 3433/3917/2166 3975/3921/2170 3972/3918/2167 -f 3972/3918/2167 3976/3922/2171 3973/3919/2168 -f 3973/3919/2168 3977/3923/2172 3974/3920/2169 -f 3974/3920/2169 3090/3011/1260 3093/3134/1383 -f 3432/3924/2173 3978/3925/2174 3975/3921/2170 -f 3975/3921/2170 3979/3926/2175 3976/3922/2171 -f 3976/3922/2171 3980/3927/2176 3977/3923/2172 -f 3977/3923/2172 3091/3007/1256 3090/3011/1260 -f 3431/3928/2177 3981/3929/2178 3978/3925/2174 -f 3978/3925/2174 3982/3930/2179 3979/3926/2175 -f 3979/3926/2175 3983/3931/2180 3980/3927/2176 -f 3980/3927/2176 3100/3032/1281 3091/3007/1256 -f 3430/3932/2181 3984/3933/2182 3981/3929/2178 -f 3981/3929/2178 3985/3934/2183 3982/3930/2179 -f 3982/3930/2179 3986/3935/2184 3983/3931/2180 -f 3983/3931/2180 3101/3017/1266 3100/3032/1281 -f 3429/3936/2185 3987/3937/2186 3984/3933/2182 -f 3984/3933/2182 3988/3938/2187 3985/3934/2183 -f 3985/3934/2183 3989/3939/2188 3986/3935/2184 -f 3986/3935/2184 3103/3019/1268 3101/3017/1266 -f 3428/3940/2189 3990/3941/2190 3987/3937/2186 -f 3990/3941/2190 3988/3938/2187 3987/3937/2186 -f 3988/3938/2187 3992/3942/2191 3989/3939/2188 -f 3992/3942/2191 3103/3019/1268 3989/3939/2188 -f 3426/3943/2192 3990/3941/2190 3427/3944/2193 -f 3993/3945/2194 3991/3946/2195 3990/3941/2190 -f 3994/3947/2196 3992/3942/2191 3991/3946/2195 -f 3995/3948/2197 3105/3021/1270 3992/3942/2191 -f 3425/3949/2198 3993/3945/2194 3426/3943/2192 -f 3996/3950/2199 3994/3947/2196 3993/3945/2194 -f 3997/3951/2200 3995/3948/2197 3994/3947/2196 -f 3998/3952/2201 3107/3023/1272 3995/3948/2197 -f 3424/3953/2202 3996/3950/2199 3425/3949/2198 -f 3999/3954/2203 3997/3951/2200 3996/3950/2199 -f 4000/3955/2204 3998/3952/2201 3997/3951/2200 -f 4001/3956/2205 3109/3025/1274 3998/3952/2201 -f 3423/3957/2206 3999/3954/2203 3424/3953/2202 -f 4002/3958/2207 4000/3955/2204 3999/3954/2203 -f 4003/3959/2208 4001/3956/2205 4000/3955/2204 -f 4004/3960/2209 3096/3027/1276 4001/3956/2205 -f 3422/3961/2210 4002/3958/2207 3423/3957/2206 -f 4005/3962/2211 4003/3959/2208 4002/3958/2207 -f 4006/3963/2212 4004/3960/2209 4003/3959/2208 -f 4007/3964/2213 3097/3014/1263 4004/3960/2209 -f 3422/3961/2210 4008/3965/2214 4005/3962/2211 -f 4005/3962/2211 4009/3966/2215 4006/3963/2212 -f 4006/3963/2212 4010/3967/2216 4007/3964/2213 -f 4007/3964/2213 3113/3029/1278 3112/3031/1280 -f 3420/3252/1501 4008/3965/2214 3421/3968/2217 -f 4011/3969/2218 4009/3966/2215 4008/3965/2214 -f 4012/3970/2219 4010/3967/2216 4009/3966/2215 -f 4013/3971/2220 3113/3029/1278 4010/3967/2216 -f 3419/3251/1500 4011/3969/2218 3420/3252/1501 -f 4014/3972/2221 4012/3970/2219 4011/3969/2218 -f 4015/3973/2222 4013/3971/2220 4012/3970/2219 -f 4016/3974/2223 3120/3052/1301 4013/3971/2220 -f 3418/3975/2224 4014/3972/2221 3419/3251/1500 -f 4017/3976/2225 4015/3973/2222 4014/3972/2221 -f 4018/3977/2226 4016/3974/2223 4015/3973/2222 -f 4019/3978/2227 3121/3037/1286 4016/3974/2223 -f 3417/3979/2228 4017/3976/2225 3418/3975/2224 -f 4017/3976/2225 4021/3980/2229 4018/3977/2226 -f 4021/3980/2229 4019/3978/2227 4018/3977/2226 -f 4019/3978/2227 3125/3041/1290 3123/3039/1288 -f 3417/3979/2228 4023/3981/2230 4020/3982/2231 -f 4020/3982/2231 4024/3983/2232 4021/3980/2229 -f 4021/3980/2229 4025/3984/2233 4022/3985/2234 -f 4022/3985/2234 3127/3043/1292 3125/3041/1290 -f 3416/3986/2235 4026/3987/2236 4023/3981/2230 -f 4023/3981/2230 4027/3988/2237 4024/3983/2232 -f 4024/3983/2232 4028/3989/2238 4025/3984/2233 -f 4025/3984/2233 3129/3045/1294 3127/3043/1292 -f 3415/3990/2239 4029/3991/2240 4026/3987/2236 -f 4026/3987/2236 4030/3992/2241 4027/3988/2237 -f 4027/3988/2237 4031/3993/2242 4028/3989/2238 -f 4028/3989/2238 3116/3047/1296 3129/3045/1294 -f 3413/3994/2243 4029/3991/2240 3414/3995/2244 -f 4032/3996/2245 4030/3992/2241 4029/3991/2240 -f 4033/3997/2246 4031/3993/2242 4030/3992/2241 -f 4034/3998/2247 3116/3047/1296 4031/3993/2242 -f 3412/3999/2248 4032/3996/2245 3413/3994/2243 -f 4035/4000/2249 4033/3997/2246 4032/3996/2245 -f 4036/4001/2250 4034/3998/2247 4033/3997/2246 -f 4037/4002/2251 3117/3034/1283 4034/3998/2247 -f 3411/4003/2252 4035/4000/2249 3412/3999/2248 -f 4038/4004/2253 4036/4001/2250 4035/4000/2249 -f 4039/4005/2254 4037/4002/2251 4036/4001/2250 -f 4040/4006/2255 3132/3051/1300 4037/4002/2251 -f 3411/4003/2252 4041/4007/2256 4038/4004/2253 -f 4038/4004/2253 4042/4008/2257 4039/4005/2254 -f 4039/4005/2254 4043/4009/2258 4040/4006/2255 -f 4040/4006/2255 3140/3072/1321 3133/3049/1298 -f 3410/4010/2259 4044/4011/2260 4041/4007/2256 -f 4041/4007/2256 4045/4012/2261 4042/4008/2257 -f 4042/4008/2257 4046/4013/2262 4043/4009/2258 -f 4043/4009/2258 3141/3057/1306 3140/3072/1321 -f 3409/4014/2263 4047/4015/2264 4044/4011/2260 -f 4044/4011/2260 4048/4016/2265 4045/4012/2261 -f 4045/4012/2261 4049/4017/2266 4046/4013/2262 -f 4046/4013/2262 3143/3059/1308 3141/3057/1306 -f 3408/4018/2267 4050/4019/2268 4047/4015/2264 -f 4047/4015/2264 4051/4020/2269 4048/4016/2265 -f 4048/4016/2265 4052/4021/2270 4049/4017/2266 -f 4049/4017/2266 3145/3061/1310 3143/3059/1308 -f 3406/4022/2271 4050/4019/2268 3407/4023/2272 -f 4053/4024/2273 4051/4020/2269 4050/4019/2268 -f 4054/4025/2274 4052/4021/2270 4051/4020/2269 -f 4055/4026/2275 3145/3061/1310 4052/4021/2270 -f 3405/4027/2276 4053/4024/2273 3406/4022/2271 -f 4056/4028/2277 4054/4025/2274 4053/4024/2273 -f 4057/4029/2278 4055/4026/2275 4054/4025/2274 -f 4058/4030/2279 3147/3063/1312 4055/4026/2275 -f 3404/4031/2280 4056/4028/2277 3405/4027/2276 -f 4059/4032/2281 4057/4029/2278 4056/4028/2277 -f 4060/4033/2282 4058/4030/2279 4057/4029/2278 -f 4061/4034/2283 3149/3065/1314 4058/4030/2279 -f 3404/4031/2280 4062/4035/2284 4059/4032/2281 -f 4059/4032/2281 4063/4036/2285 4060/4033/2282 -f 4060/4033/2282 4064/4037/2286 4061/4034/2283 -f 4061/4034/2283 3137/3054/1303 3136/3067/1316 -f 3402/4038/2287 4062/4035/2284 3403/4039/2288 -f 4065/4040/2289 4063/4036/2285 4062/4035/2284 -f 4066/4041/2290 4064/4037/2286 4063/4036/2285 -f 4067/4042/2291 3137/3054/1303 4064/4037/2286 -f 3401/4043/2292 4065/4040/2289 3402/4038/2287 -f 4068/4044/2293 4066/4041/2290 4065/4040/2289 -f 4069/4045/2294 4067/4042/2291 4066/4041/2290 -f 4070/4046/2295 3152/3071/1320 4067/4042/2291 -f 3401/4043/2292 4071/4047/2296 4068/4044/2293 -f 4068/4044/2293 4072/4048/2297 4069/4045/2294 -f 4069/4045/2294 4073/4049/2298 4070/4046/2295 -f 4070/4046/2295 3160/3092/1341 3153/3069/1318 -f 3400/4050/2299 4074/4051/2300 4071/4047/2296 -f 4071/4047/2296 4075/4052/2301 4072/4048/2297 -f 4072/4048/2297 4076/4053/2302 4073/4049/2298 -f 4073/4049/2298 3161/3077/1326 3160/3092/1341 -f 3399/4054/2303 4077/4055/2304 4074/4051/2300 -f 4074/4051/2300 4078/4056/2305 4075/4052/2301 -f 4075/4052/2301 4079/4057/2306 4076/4053/2302 -f 4076/4053/2302 3163/3079/1328 3161/3077/1326 -f 3398/4058/2307 4080/4059/2308 4077/4055/2304 -f 4080/4059/2308 4078/4056/2305 4077/4055/2304 -f 4078/4056/2305 4082/4060/2309 4079/4057/2306 -f 4082/4060/2309 3163/3079/1328 4079/4057/2306 -f 3396/4061/2310 4080/4059/2308 3397/4062/2311 -f 4083/4063/2312 4081/4064/2313 4080/4059/2308 -f 4084/4065/2314 4082/4060/2309 4081/4064/2313 -f 4085/4066/2315 3165/3081/1330 4082/4060/2309 -f 3395/4067/2316 4083/4063/2312 3396/4061/2310 -f 4086/4068/2317 4084/4065/2314 4083/4063/2312 -f 4087/4069/2318 4085/4066/2315 4084/4065/2314 -f 4088/4070/2319 3167/3083/1332 4085/4066/2315 -f 3394/4071/2320 4086/4068/2317 3395/4067/2316 -f 4089/4072/2321 4087/4069/2318 4086/4068/2317 -f 4090/4073/2322 4088/4070/2319 4087/4069/2318 -f 4091/4074/2323 3169/3085/1334 4088/4070/2319 -f 3394/4071/2320 4092/4075/2324 4089/4072/2321 -f 4089/4072/2321 4093/4076/2325 4090/4073/2322 -f 4090/4073/2322 4094/4077/2326 4091/4074/2323 -f 4091/4074/2323 3157/3074/1323 3156/3087/1336 -f 3393/4078/2327 4095/4079/2328 4092/4075/2324 -f 4092/4075/2324 4096/4080/2329 4093/4076/2325 -f 4093/4076/2325 4097/4081/2330 4094/4077/2326 -f 4094/4077/2326 3172/3091/1340 3157/3074/1323 -f 3391/4082/2331 4095/4079/2328 3392/4083/2332 -f 4098/4084/2333 4096/4080/2329 4095/4079/2328 -f 4099/4085/2334 4097/4081/2330 4096/4080/2329 -f 4100/4086/2335 3172/3091/1340 4097/4081/2330 -f 3391/4082/2331 4101/4087/2336 4098/4084/2333 -f 4098/4084/2333 4102/4088/2337 4099/4085/2334 -f 4099/4085/2334 4103/4089/2338 4100/4086/2335 -f 4100/4086/2335 3180/3112/1361 3173/3089/1338 -f 3390/4090/2339 4104/4091/2340 4101/4087/2336 -f 4101/4087/2336 4105/4092/2341 4102/4088/2337 -f 4102/4088/2337 4106/4093/2342 4103/4089/2338 -f 4103/4089/2338 3181/3097/1346 3180/3112/1361 -f 3389/4094/2343 4107/4095/2344 4104/4091/2340 -f 4104/4091/2340 4108/4096/2345 4105/4092/2341 -f 4105/4092/2341 4109/4097/2346 4106/4093/2342 -f 4106/4093/2342 3183/3099/1348 3181/3097/1346 -f 3388/4098/2347 4110/4099/2348 4107/4095/2344 -f 4110/4099/2348 4108/4096/2345 4107/4095/2344 -f 4108/4096/2345 4112/4100/2349 4109/4097/2346 -f 4112/4100/2349 3183/3099/1348 4109/4097/2346 -f 3386/4101/2350 4110/4099/2348 3387/4102/2351 -f 4113/4103/2352 4111/4104/2353 4110/4099/2348 -f 4114/4105/2354 4112/4100/2349 4111/4104/2353 -f 4115/4106/2355 3185/3101/1350 4112/4100/2349 -f 3385/4107/2356 4113/4103/2352 3386/4101/2350 -f 4116/4108/2357 4114/4105/2354 4113/4103/2352 -f 4117/4109/2358 4115/4106/2355 4114/4105/2354 -f 4118/4110/2359 3187/3103/1352 4115/4106/2355 -f 3384/4111/2360 4116/4108/2357 3385/4107/2356 -f 4119/4112/2361 4117/4109/2358 4116/4108/2357 -f 4120/4113/2362 4118/4110/2359 4117/4109/2358 -f 4121/4114/2363 3189/3105/1354 4118/4110/2359 -f 3384/4111/2360 4122/4115/2364 4119/4112/2361 -f 4119/4112/2361 4123/4116/2365 4120/4113/2362 -f 4120/4113/2362 4124/4117/2366 4121/4114/2363 -f 4121/4114/2363 3177/3094/1343 3176/3107/1356 -f 3383/4118/2367 4125/4119/2368 4122/4115/2364 -f 4122/4115/2364 4126/4120/2369 4123/4116/2365 -f 4123/4116/2365 4127/4121/2370 4124/4117/2366 -f 4124/4117/2366 3192/3111/1360 3177/3094/1343 -f 3381/4122/2371 4125/4119/2368 3382/3250/1499 -f 4128/4123/2372 4126/4120/2369 4125/4119/2368 -f 4129/4124/2373 4127/4121/2370 4126/4120/2369 -f 4130/4125/2374 3192/3111/1360 4127/4121/2370 -f 3381/4122/2371 4131/4126/2375 4128/4123/2372 -f 4128/4123/2372 4132/4127/2376 4129/4124/2373 -f 4129/4124/2373 4133/4128/2377 4130/4125/2374 -f 4130/4125/2374 3200/3131/1380 3193/3109/1358 -f 3380/4129/2378 4134/4130/2379 4131/4126/2375 -f 4131/4126/2375 4135/4131/2380 4132/4127/2376 -f 4132/4127/2376 4136/4132/2381 4133/4128/2377 -f 4133/4128/2377 3201/3117/1366 3200/3131/1380 -f 3379/4133/2382 4137/4134/2383 4134/4130/2379 -f 4134/4130/2379 4138/4135/2384 4135/4131/2380 -f 4135/4131/2380 4139/4136/2385 4136/4132/2381 -f 4136/4132/2381 3203/3119/1368 3201/3117/1366 -f 3377/4137/2386 4137/4134/2383 3378/4138/2387 -f 4137/4134/2383 4141/4139/2388 4138/4135/2384 -f 4141/4139/2388 4139/4136/2385 4138/4135/2384 -f 4142/4140/2389 3203/3119/1368 4139/4136/2385 -f 3376/4141/2390 4140/4142/2391 3377/4137/2386 -f 4143/4143/2392 4141/4139/2388 4140/4142/2391 -f 4144/4144/2393 4142/4140/2389 4141/4139/2388 -f 4145/4145/2394 3205/3121/1370 4142/4140/2389 -f 3375/4146/2395 4143/4143/2392 3376/4141/2390 -f 4146/4147/2396 4144/4144/2393 4143/4143/2392 -f 4147/4148/2397 4145/4145/2394 4144/4144/2393 -f 4148/4149/2398 3207/3123/1372 4145/4145/2394 -f 3374/4150/2399 4146/4147/2396 3375/4146/2395 -f 4149/4151/2400 4147/4148/2397 4146/4147/2396 -f 4150/4152/2401 4148/4149/2398 4147/4148/2397 -f 4151/4153/2402 3209/3125/1374 4148/4149/2398 -f 3374/4150/2399 4152/4154/2403 4149/4151/2400 -f 4149/4151/2400 4153/4155/2404 4150/4152/2401 -f 4150/4152/2401 4154/4156/2405 4151/4153/2402 -f 4151/4153/2402 3197/3114/1363 3196/3127/1376 -f 3373/4157/2406 4155/4158/2407 4152/4154/2403 -f 4152/4154/2403 4156/4159/2408 4153/4155/2404 -f 4153/4155/2404 4157/4160/2409 4154/4156/2405 -f 4154/4156/2405 3215/3213/1462 3197/3114/1363 -f 3371/4161/2410 4155/4158/2407 3372/4162/2411 -f 4158/4163/2412 4156/4159/2408 4155/4158/2407 -f 4159/4164/2413 4157/4160/2409 4156/4159/2408 -f 4160/4165/2414 3215/3213/1462 4157/4160/2409 -f 3370/4166/2415 4158/4163/2412 3371/4161/2410 -f 4161/4167/2416 4159/4164/2413 4158/4163/2412 -f 4162/4168/2417 4160/4165/2414 4159/4164/2413 -f 4163/4169/2418 3212/3133/1382 4160/4165/2414 -f 3370/4166/2415 4164/4170/2419 4161/4167/2416 -f 4161/4167/2416 4165/4171/2420 4162/4168/2417 -f 4162/4168/2417 4166/4172/2421 4163/4169/2418 -f 4163/4169/2418 3222/3154/1403 3213/3129/1378 -f 3369/4173/2422 4167/4174/2423 4164/4170/2419 -f 4164/4170/2419 4168/4175/2424 4165/4171/2420 -f 4165/4171/2420 4169/4176/2425 4166/4172/2421 -f 4166/4172/2421 3223/3139/1388 3222/3154/1403 -f 3368/4177/2426 4170/4178/2427 4167/4174/2423 -f 4167/4174/2423 4171/4179/2428 4168/4175/2424 -f 4168/4175/2424 4172/4180/2429 4169/4176/2425 -f 4169/4176/2425 3225/3141/1390 3223/3139/1388 -f 3366/4181/2430 4170/4178/2427 3367/4182/2431 -f 4173/4183/2432 4171/4179/2428 4170/4178/2427 -f 4171/4179/2428 4175/4184/2433 4172/4180/2429 -f 4175/4184/2433 3225/3141/1390 4172/4180/2429 -f 3365/4185/2434 4173/4183/2432 3366/4181/2430 -f 4176/4186/2435 4174/4187/2436 4173/4183/2432 -f 4177/4188/2437 4175/4184/2433 4174/4187/2436 -f 4178/4189/2438 3227/3143/1392 4175/4184/2433 -f 3364/4190/2439 4176/4186/2435 3365/4185/2434 -f 4179/4191/2440 4177/4188/2437 4176/4186/2435 -f 4180/4192/2441 4178/4189/2438 4177/4188/2437 -f 4181/4193/2442 3229/3145/1394 4178/4189/2438 -f 3363/4194/2443 4179/4191/2440 3364/4190/2439 -f 4182/4195/2444 4180/4192/2441 4179/4191/2440 -f 4183/4196/2445 4181/4193/2442 4180/4192/2441 -f 4184/4197/2446 3231/3147/1396 4181/4193/2442 -f 3363/4194/2443 4185/4198/2447 4182/4195/2444 -f 4182/4195/2444 4186/4199/2448 4183/4196/2445 -f 4183/4196/2445 4187/4200/2449 4184/4197/2446 -f 4184/4197/2446 3219/3136/1385 3218/3149/1398 -f 3361/4201/2450 4185/4198/2447 3362/4202/2451 -f 4188/4203/2452 4186/4199/2448 4185/4198/2447 -f 4189/4204/2453 4187/4200/2449 4186/4199/2448 -f 4190/4205/2454 3219/3136/1385 4187/4200/2449 -f 3360/4206/2455 4188/4203/2452 3361/4201/2450 -f 4191/4207/2456 4189/4204/2453 4188/4203/2452 -f 4192/4208/2457 4190/4205/2454 4189/4204/2453 -f 4193/4209/2458 3234/3153/1402 4190/4205/2454 -f 3360/4206/2455 4194/4210/2459 4191/4207/2456 -f 4191/4207/2456 4195/4211/2460 4192/4208/2457 -f 4192/4208/2457 4196/4212/2461 4193/4209/2458 -f 4193/4209/2458 3242/3174/1423 3235/3151/1400 -f 3359/4213/2462 4197/4214/2463 4194/4210/2459 -f 4194/4210/2459 4198/4215/2464 4195/4211/2460 -f 4195/4211/2460 4199/4216/2465 4196/4212/2461 -f 4196/4212/2461 3243/3159/1408 3242/3174/1423 -f 3358/4217/2466 4200/4218/2467 4197/4214/2463 -f 4197/4214/2463 4201/4219/2468 4198/4215/2464 -f 4198/4215/2464 4202/4220/2469 4199/4216/2465 -f 4199/4216/2465 3245/3161/1410 3243/3159/1408 -f 3356/4221/2470 4200/4218/2467 3357/4222/2471 -f 4200/4218/2467 4204/4223/2472 4201/4219/2468 -f 4201/4219/2468 4205/4224/2473 4202/4220/2469 -f 4202/4220/2469 3247/3163/1412 3245/3161/1410 -f 3355/4225/2474 4203/4226/2475 3356/4221/2470 -f 4206/4227/2476 4204/4223/2472 4203/4226/2475 -f 4207/4228/2477 4205/4224/2473 4204/4223/2472 -f 4208/4229/2478 3247/3163/1412 4205/4224/2473 -f 3354/4230/2479 4206/4227/2476 3355/4225/2474 -f 4209/4231/2480 4207/4228/2477 4206/4227/2476 -f 4210/4232/2481 4208/4229/2478 4207/4228/2477 -f 4211/4233/2482 3249/3165/1414 4208/4229/2478 -f 3353/4234/2483 4209/4231/2480 3354/4230/2479 -f 4212/4235/2484 4210/4232/2481 4209/4231/2480 -f 4213/4236/2485 4211/4233/2482 4210/4232/2481 -f 4214/4237/2486 3251/3167/1416 4211/4233/2482 -f 3353/4234/2483 4215/4238/2487 4212/4235/2484 -f 4212/4235/2484 4216/4239/2488 4213/4236/2485 -f 4213/4236/2485 4217/4240/2489 4214/4237/2486 -f 4214/4237/2486 3239/3156/1405 3238/3169/1418 -f 3352/4241/2490 4218/4242/2491 4215/4238/2487 -f 4215/4238/2487 4219/4243/2492 4216/4239/2488 -f 4216/4239/2488 4220/4244/2493 4217/4240/2489 -f 4217/4240/2489 3254/3173/1422 3239/3156/1405 -f 3350/4245/2494 4218/4242/2491 3351/4246/2495 -f 4221/4247/2496 4219/4243/2492 4218/4242/2491 -f 4222/4248/2497 4220/4244/2493 4219/4243/2492 -f 4223/4249/2498 3254/3173/1422 4220/4244/2493 -f 3350/4245/2494 4224/4250/2499 4221/4247/2496 -f 4221/4247/2496 4225/4251/2500 4222/4248/2497 -f 4222/4248/2497 4226/4252/2501 4223/4249/2498 -f 4223/4249/2498 3262/3194/1443 3255/3171/1420 -f 3349/4253/2502 4227/4254/2503 4224/4250/2499 -f 4224/4250/2499 4228/4255/2504 4225/4251/2500 -f 4225/4251/2500 4229/4256/2505 4226/4252/2501 -f 4226/4252/2501 3263/3179/1428 3262/3194/1443 -f 3348/4257/2506 4230/4258/2507 4227/4254/2503 -f 4227/4254/2503 4231/4259/2508 4228/4255/2504 -f 4228/4255/2504 4232/4260/2509 4229/4256/2505 -f 4229/4256/2505 3265/3181/1430 3263/3179/1428 -f 3346/4261/2510 4230/4258/2507 3347/4262/2511 -f 4230/4258/2507 4234/4263/2512 4231/4259/2508 -f 4234/4263/2512 4232/4260/2509 4231/4259/2508 -f 4235/4264/2513 3265/3181/1430 4232/4260/2509 -f 3345/4265/2514 4233/4266/2515 3346/4261/2510 -f 4236/4267/2516 4234/4263/2512 4233/4266/2515 -f 4237/4268/2517 4235/4264/2513 4234/4263/2512 -f 4238/4269/2518 3267/3183/1432 4235/4264/2513 -f 3344/4270/2519 4236/4267/2516 3345/4265/2514 -f 4239/4271/2520 4237/4268/2517 4236/4267/2516 -f 4240/4272/2521 4238/4269/2518 4237/4268/2517 -f 4241/4273/2522 3269/3185/1434 4238/4269/2518 -f 3343/4274/2523 4239/4271/2520 3344/4270/2519 -f 4242/4275/2524 4240/4272/2521 4239/4271/2520 -f 4243/4276/2525 4241/4273/2522 4240/4272/2521 -f 4244/4277/2526 3271/3187/1436 4241/4273/2522 -f 3343/4274/2523 4245/4278/2527 4242/4275/2524 -f 4242/4275/2524 4246/4279/2528 4243/4276/2525 -f 4243/4276/2525 4247/4280/2529 4244/4277/2526 -f 4244/4277/2526 3259/3176/1425 3258/3189/1438 -f 3342/4281/2530 4248/4282/2531 4245/4278/2527 -f 4245/4278/2527 4249/4283/2532 4246/4279/2528 -f 4246/4279/2528 4250/4284/2533 4247/4280/2529 -f 4247/4280/2529 3274/3193/1442 3259/3176/1425 -f 3341/4285/2534 4251/4286/2535 4248/4282/2531 -f 4248/4282/2531 4252/4287/2536 4249/4283/2532 -f 4249/4283/2532 4253/4288/2537 4250/4284/2533 -f 4250/4284/2533 3275/3191/1440 3274/3193/1442 -f 3339/4289/2538 4251/4286/2535 3340/4290/2539 -f 4254/4291/2540 4252/4287/2536 4251/4286/2535 -f 4255/4292/2541 4253/4288/2537 4252/4287/2536 -f 4256/4293/2542 3275/3191/1440 4253/4288/2537 -f 3338/4294/2543 4254/4291/2540 3339/4289/2538 -f 4257/4295/2544 4255/4292/2541 4254/4291/2540 -f 4258/4296/2545 4256/4293/2542 4255/4292/2541 -f 4259/4297/2546 3282/3212/1461 4256/4293/2542 -f 3337/4298/2547 4257/4295/2544 3338/4294/2543 -f 4260/4299/2548 4258/4296/2545 4257/4295/2544 -f 4261/4300/2549 4259/4297/2546 4258/4296/2545 -f 4262/4301/2550 3283/3199/1448 4259/4297/2546 -f 3337/4298/2547 4263/4302/2551 4260/4299/2548 -f 4260/4299/2548 4264/4303/2552 4261/4300/2549 -f 4264/4303/2552 4262/4301/2550 4261/4300/2549 -f 4265/4304/2553 3285/3201/1450 4262/4301/2550 -f 3336/4305/2554 4266/4306/2555 4263/4302/2551 -f 4263/4302/2551 4267/4307/2556 4264/4303/2552 -f 4264/4303/2552 4268/4308/2557 4265/4304/2553 -f 4265/4304/2553 3289/3205/1454 3287/3203/1452 -f 3335/4309/2558 4269/4310/2559 4266/4306/2555 -f 4266/4306/2555 4270/4311/2560 4267/4307/2556 -f 4267/4307/2556 4271/4312/2561 4268/4308/2557 -f 4268/4308/2557 3291/3207/1456 3289/3205/1454 -f 3334/4313/2562 4272/4314/2563 4269/4310/2559 -f 4269/4310/2559 4273/4315/2564 4270/4311/2560 -f 4270/4311/2560 4274/4316/2565 4271/4312/2561 -f 4271/4312/2561 3278/3209/1458 3291/3207/1456 -f 3332/4317/2566 4272/4314/2563 3333/4318/2567 -f 4275/4319/2568 4273/4315/2564 4272/4314/2563 -f 4276/4320/2569 4274/4316/2565 4273/4315/2564 -f 4277/4321/2570 3278/3209/1458 4274/4316/2565 -f 3331/3835/2084 4275/4319/2568 3332/4317/2566 -f 3910/3833/2082 4276/4320/2569 4275/4319/2568 -f 3908/3831/2080 4277/4321/2570 4276/4320/2569 -f 3906/3829/2078 3279/3196/1445 4277/4321/2570 -f 3473/4322/2571 3911/3834/2083 3330/3836/2085 -f 4278/4323/2572 3909/3832/2081 3911/3834/2083 -f 4279/4324/2573 3907/3830/2079 3909/3832/2081 -f 4280/4325/2574 2900/3828/2077 3907/3830/2079 -f 3472/4326/2575 4278/4323/2572 3473/4322/2571 -f 4281/4327/2576 4279/4324/2573 4278/4323/2572 -f 4282/4328/2577 4280/4325/2574 4279/4324/2573 -f 4283/4329/2578 2901/2963/1212 4280/4325/2574 -f 3472/4326/2575 4284/4330/2579 4281/4327/2576 -f 4281/4327/2576 4285/4331/2580 4282/4328/2577 -f 4282/4328/2577 4286/4332/2581 4283/4329/2578 -f 4283/4329/2578 3302/3235/1484 3293/3210/1459 -f 3471/4333/2582 4287/4334/2583 4284/4330/2579 -f 4284/4330/2579 4288/4335/2584 4285/4331/2580 -f 4285/4331/2580 4289/4336/2585 4286/4332/2581 -f 4286/4332/2581 3303/3220/1469 3302/3235/1484 -f 3470/4337/2586 4290/4338/2587 4287/4334/2583 -f 4287/4334/2583 4291/4339/2588 4288/4335/2584 -f 4288/4335/2584 4292/4340/2589 4289/4336/2585 -f 4289/4336/2585 3305/3222/1471 3303/3220/1469 -f 3469/4341/2590 4293/4342/2591 4290/4338/2587 -f 4290/4338/2587 4294/4343/2592 4291/4339/2588 -f 4291/4339/2588 4295/4344/2593 4292/4340/2589 -f 4292/4340/2589 3307/3224/1473 3305/3222/1471 -f 3467/4345/2594 4293/4342/2591 3468/4346/2595 -f 4296/4347/2596 4294/4343/2592 4293/4342/2591 -f 4297/4348/2597 4295/4344/2593 4294/4343/2592 -f 4298/4349/2598 3307/3224/1473 4295/4344/2593 -f 3466/4350/2599 4296/4347/2596 3467/4345/2594 -f 4299/4351/2600 4297/4348/2597 4296/4347/2596 -f 4300/4352/2601 4298/4349/2598 4297/4348/2597 -f 4301/4353/2602 3309/3226/1475 4298/4349/2598 -f 3465/4354/2603 4299/4351/2600 3466/4350/2599 -f 4302/4355/2604 4300/4352/2601 4299/4351/2600 -f 4303/4356/2605 4301/4353/2602 4300/4352/2601 -f 4304/4357/2606 3311/3228/1477 4301/4353/2602 -f 3465/4354/2603 4305/4358/2607 4302/4355/2604 -f 4302/4355/2604 4306/4359/2608 4303/4356/2605 -f 4303/4356/2605 4307/4360/2609 4304/4357/2606 -f 4304/4357/2606 3299/3217/1466 3298/3230/1479 -f 3463/4361/2610 4305/4358/2607 3464/4362/2611 -f 4308/4363/2612 4306/4359/2608 4305/4358/2607 -f 4309/4364/2613 4307/4360/2609 4306/4359/2608 -f 4310/4365/2614 3299/3217/1466 4307/4360/2609 -f 3462/4366/2615 4308/4363/2612 3463/4361/2610 -f 4311/4367/2616 4309/4364/2613 4308/4363/2612 -f 4312/4368/2617 4310/4365/2614 4309/4364/2613 -f 4313/4369/2618 3314/3234/1483 4310/4365/2614 -f 3461/4370/2619 4311/4367/2616 3462/4366/2615 -f 4311/4367/2616 4315/4371/2620 4312/4368/2617 -f 4315/4371/2620 4313/4369/2618 4312/4368/2617 -f 4313/4369/2618 3320/3253/1502 3315/3232/1481 -f 3461/4370/2619 4317/4372/2621 4314/4373/2622 -f 4314/4373/2622 4318/4374/2623 4315/4371/2620 -f 4318/4374/2623 4316/4375/2624 4315/4371/2620 -f 4316/4375/2624 3321/3239/1488 3320/3253/1502 -f 3460/4376/2625 4320/4377/2626 4317/4372/2621 -f 4317/4372/2621 4321/4378/2627 4318/4374/2623 -f 4318/4374/2623 4322/4379/2628 4319/4380/2629 -f 4322/4379/2628 3321/3239/1488 4319/4380/2629 -f 3459/4381/2630 4323/4382/2631 4320/4377/2626 -f 4323/4382/2631 4321/4378/2627 4320/4377/2626 -f 4321/4378/2627 4325/4383/2632 4322/4379/2628 -f 4325/4383/2632 3323/3241/1490 4322/4379/2628 -f 3458/4384/2633 4326/4385/2634 4323/4382/2631 -f 4326/4385/2634 4324/4386/2635 4323/4382/2631 -f 4327/4387/2636 4325/4383/2632 4324/4386/2635 -f 4325/4383/2632 3327/3245/1494 3325/3243/1492 -f 3456/4388/2637 4326/4385/2634 3457/4389/2638 -f 4329/4390/2639 4327/4387/2636 4326/4385/2634 -f 4330/4391/2640 4328/4392/2641 4327/4387/2636 -f 4328/4392/2641 3329/3247/1496 3327/3245/1494 -f 3456/4388/2637 4332/4393/2642 4329/4390/2639 -f 4332/4393/2642 4330/4391/2640 4329/4390/2639 -f 4333/4394/2643 4331/4395/2644 4330/4391/2640 -f 4331/4395/2644 3317/3249/1498 3329/3247/1496 -f 3455/4396/2645 4335/4397/2646 4332/4393/2642 -f 4332/4393/2642 4336/4398/2647 4333/4394/2643 -f 4333/4394/2643 4337/4399/2648 4334/4400/2649 -f 4334/4400/2649 3048/3237/1486 3317/3249/1498 -f 3453/3839/2088 4335/4397/2646 3454/4401/2650 -f 4335/4397/2646 3915/3841/2090 4336/4398/2647 -f 3915/3841/2090 4337/4399/2648 4336/4398/2647 -f 3917/3843/2092 3048/3237/1486 4337/4399/2648 -f 2899/2962/1211 3295/3214/1463 2900/3828/2077 -f 2899/2962/1211 2900/3828/2077 2901/2963/1212 -f 2902/3257/1506 2903/3751/2000 2942/3341/1590 -f 2903/3751/2000 2904/3755/2004 2905/3762/2011 -f 2912/3791/2040 2903/3751/2000 2908/3775/2024 -f 2905/3762/2011 2906/3766/2015 2903/3751/2000 -f 2906/3766/2015 2907/3770/2019 2903/3751/2000 -f 2907/3770/2019 2908/3775/2024 2903/3751/2000 -f 2908/3775/2024 2909/3774/2023 2912/3791/2040 -f 2909/3774/2023 2910/3779/2028 2912/3791/2040 -f 2910/3779/2028 2911/3783/2032 2912/3791/2040 -f 2912/3791/2040 2913/3790/2039 2934/3314/1563 -f 2913/3790/2039 2914/3795/2044 2922/3827/2076 -f 2914/3795/2044 2915/3798/2047 2916/3806/2055 -f 2916/3806/2055 2917/3809/2058 2918/3814/2063 -f 2918/3814/2063 2919/3818/2067 2920/3817/2066 -f 2920/3817/2066 2921/3826/2075 2914/3795/2044 -f 2921/3826/2075 2922/3827/2076 2914/3795/2044 -f 2922/3827/2076 2923/3270/1519 2932/3305/1554 -f 2923/3270/1519 2924/3269/1518 2932/3305/1554 -f 2924/3269/1518 2925/3276/1525 2926/3281/1530 -f 2926/3281/1530 2927/3280/1529 2930/3297/1546 -f 2927/3280/1529 2928/3289/1538 2930/3297/1546 -f 2928/3289/1538 2929/3288/1537 2930/3297/1546 -f 2930/3297/1546 2931/3301/1550 2924/3269/1518 -f 2931/3301/1550 2932/3305/1554 2924/3269/1518 -f 2932/3305/1554 2933/3309/1558 2913/3790/2039 -f 2922/3827/2076 2932/3305/1554 2913/3790/2039 -f 2924/3269/1518 2926/3281/1530 2930/3297/1546 -f 2918/3814/2063 2920/3817/2066 2914/3795/2044 -f 2914/3795/2044 2916/3806/2055 2918/3814/2063 -f 2903/3751/2000 2912/3791/2040 2941/3342/1591 -f 3044/3746/1995 3045/3255/1504 2944/3353/1602 -f 3045/3255/1504 2902/3257/1506 2943/3346/1595 -f 2941/3342/1591 2912/3791/2040 2940/3337/1586 -f 2939/3333/1582 2912/3791/2040 2938/3329/1578 -f 2938/3329/1578 2912/3791/2040 2937/3322/1571 -f 2912/3791/2040 2939/3333/1582 2940/3337/1586 -f 2933/3309/1558 2934/3314/1563 2913/3790/2039 -f 2934/3314/1563 2935/3313/1562 2912/3791/2040 -f 3043/3747/1996 3044/3746/1995 2944/3353/1602 -f 2903/3751/2000 2941/3342/1591 2942/3341/1590 -f 3042/3742/1991 3043/3747/1996 2945/3357/1606 -f 2935/3313/1562 2936/3318/1567 2912/3791/2040 -f 2936/3318/1567 2937/3322/1571 2912/3791/2040 -f 3041/3738/1987 3042/3742/1991 2946/3361/1610 -f 2902/3257/1506 2942/3341/1590 2943/3346/1595 -f 3045/3255/1504 2943/3346/1595 2944/3353/1602 -f 3043/3747/1996 2944/3353/1602 2945/3357/1606 -f 3042/3742/1991 2945/3357/1606 2946/3361/1610 -f 3040/3734/1983 3041/3738/1987 2947/3365/1614 -f 3041/3738/1987 2946/3361/1610 2947/3365/1614 -f 3039/3727/1976 3040/3734/1983 2948/3368/1617 -f 3040/3734/1983 2947/3365/1614 2948/3368/1617 -f 3038/3723/1972 3039/3727/1976 3004/3591/1840 -f 3039/3727/1976 2948/3368/1617 3004/3591/1840 -f 3037/3718/1967 3038/3723/1972 3004/3591/1840 -f 2948/3368/1617 2949/3374/1623 3004/3591/1840 -f 3036/3719/1968 3037/3718/1967 3004/3591/1840 -f 2949/3374/1623 2950/3373/1622 3004/3591/1840 -f 3033/3703/1952 3034/3710/1959 3032/3699/1948 -f 3034/3710/1959 3035/3714/1963 3005/3590/1839 -f 3010/3609/1858 3034/3710/1959 3009/3610/1859 -f 3035/3714/1963 3036/3719/1968 3005/3590/1839 -f 3036/3719/1968 3004/3591/1840 3005/3590/1839 -f 2950/3373/1622 2951/3378/1627 3004/3591/1840 -f 3034/3710/1959 3010/3609/1858 3011/3615/1864 -f 3014/3631/1880 3034/3710/1959 3011/3615/1864 -f 3030/3689/1938 3031/3695/1944 3034/3710/1959 -f 3031/3695/1944 3032/3699/1948 3034/3710/1959 -f 3028/3686/1935 3029/3690/1939 3025/3675/1924 -f 3029/3690/1939 3030/3689/1938 3025/3675/1924 -f 3026/3674/1923 3027/3682/1931 3025/3675/1924 -f 3027/3682/1931 3028/3686/1935 3025/3675/1924 -f 3024/3670/1919 3025/3675/1924 3014/3631/1880 -f 3014/3631/1880 3025/3675/1924 3034/3710/1959 -f 3022/3659/1908 3023/3663/1912 3024/3670/1919 -f 3020/3649/1898 3021/3655/1904 3024/3670/1919 -f 3021/3655/1904 3022/3659/1908 3024/3670/1919 -f 3018/3646/1895 3019/3650/1899 3015/3630/1879 -f 3019/3650/1899 3020/3649/1898 3015/3630/1879 -f 3016/3635/1884 3017/3642/1891 3015/3630/1879 -f 3017/3642/1891 3018/3646/1895 3015/3630/1879 -f 3014/3631/1880 3015/3630/1879 3024/3670/1919 -f 3024/3670/1919 3015/3630/1879 3020/3649/1898 -f 3012/3619/1868 3013/3623/1872 3014/3631/1880 -f 3011/3615/1864 3012/3619/1868 3014/3631/1880 -f 3008/3606/1855 3009/3610/1859 3034/3710/1959 -f 3006/3595/1844 3007/3602/1851 3005/3590/1839 -f 3007/3602/1851 3008/3606/1855 3005/3590/1839 -f 3002/3579/1828 3003/3586/1835 2954/3390/1639 -f 3003/3586/1835 3004/3591/1840 2953/3386/1635 -f 3000/3571/1820 3001/3575/1824 2954/3390/1639 -f 3001/3575/1824 3002/3579/1828 2954/3390/1639 -f 3000/3571/1820 2954/3390/1639 2999/3564/1813 -f 2998/3565/1814 2999/3564/1813 2954/3390/1639 -f 2998/3565/1814 2955/3397/1646 2997/3562/1811 -f 2996/3558/1807 2997/3562/1811 2955/3397/1646 -f 2996/3558/1807 2955/3397/1646 2995/3551/1800 -f 2994/2966/1215 2995/3551/1800 2955/3397/1646 -f 2992/3540/1789 2993/3547/1796 2991/3536/1785 -f 2993/3547/1796 2994/2966/1215 2960/3415/1664 -f 2961/3419/1668 2993/3547/1796 2960/3415/1664 -f 2990/3531/1780 2991/3536/1785 2993/3547/1796 -f 2988/3527/1776 2989/3532/1781 2993/3547/1796 -f 2989/3532/1781 2990/3531/1780 2993/3547/1796 -f 2986/3519/1768 2987/3523/1772 2984/3512/1761 -f 2987/3523/1772 2988/3527/1776 2984/3512/1761 -f 2984/3512/1761 2985/3511/1760 2986/3519/1768 -f 2982/3500/1749 2983/3507/1756 2981/3496/1745 -f 2983/3507/1756 2984/3512/1761 2964/3428/1677 -f 2973/3468/1717 2968/3447/1696 2969/3446/1695 -f 2980/3491/1740 2981/3496/1745 2983/3507/1756 -f 2978/3486/1735 2979/3492/1741 2983/3507/1756 -f 2979/3492/1741 2980/3491/1740 2983/3507/1756 -f 2976/3479/1728 2977/3483/1732 2974/3467/1716 -f 2977/3483/1732 2978/3486/1735 2974/3467/1716 -f 2974/3467/1716 2975/3472/1721 2976/3479/1728 -f 2972/3460/1709 2973/3468/1717 2971/3456/1705 -f 2973/3468/1717 2974/3467/1716 2983/3507/1756 -f 2970/3452/1701 2971/3456/1705 2973/3468/1717 -f 2969/3446/1695 2970/3452/1701 2973/3468/1717 -f 2966/3439/1688 2967/3443/1692 2964/3428/1677 -f 2967/3443/1692 2968/3447/1696 2964/3428/1677 -f 2964/3428/1677 2965/3432/1681 2966/3439/1688 -f 2963/3423/1672 2964/3428/1677 2984/3512/1761 -f 2963/3423/1672 2984/3512/1761 2993/3547/1796 -f 2964/3428/1677 2968/3447/1696 2973/3468/1717 -f 2973/3468/1717 2983/3507/1756 2964/3428/1677 -f 2984/3512/1761 2988/3527/1776 2993/3547/1796 -f 2993/3547/1796 2961/3419/1668 2962/3424/1673 -f 2994/2966/1215 2955/3397/1646 2956/2967/1216 -f 2955/3397/1646 2998/3565/1814 2954/3390/1639 -f 3003/3586/1835 2953/3386/1635 2954/3390/1639 -f 2959/3406/1655 2994/2966/1215 2958/3404/1653 -f 2993/3547/1796 2962/3424/1673 2963/3423/1672 -f 2974/3467/1716 2978/3486/1735 2983/3507/1756 -f 2994/2966/1215 2959/3406/1655 2960/3415/1664 -f 3034/3710/1959 3005/3590/1839 3008/3606/1855 -f 2951/3378/1627 2952/3382/1631 3004/3591/1840 -f 2952/3382/1631 2953/3386/1635 3004/3591/1840 -f 3034/3710/1959 3025/3675/1924 3030/3689/1938 -f 2958/3404/1653 2994/2966/1215 2957/2965/1214 -f 3047/2968/1217 3048/3237/1486 3049/2969/1218 -f 3051/2971/1220 3052/2990/1239 3053/2972/1221 -f 3050/2973/1222 3053/2972/1221 3055/2974/1223 -f 3054/2975/1224 3055/2974/1223 3057/2976/1225 -f 3056/2977/1226 3057/2976/1225 3059/2978/1227 -f 3058/2979/1228 3059/2978/1227 3061/2980/1229 -f 3060/2981/1230 3061/2980/1229 3063/2982/1231 -f 3065/2984/1233 3066/2988/1237 3067/2985/1234 -f 3068/2987/1236 3069/3254/1503 3066/2988/1237 -f 3070/2989/1238 3071/3012/1261 3052/2990/1239 -f 3073/2991/1240 3074/3005/1254 3075/2992/1241 -f 3077/2994/1243 3078/3009/1258 3079/2995/1244 -f 3076/2996/1245 3079/2995/1244 3081/2997/1246 -f 3080/2998/1247 3081/2997/1246 3083/2999/1248 -f 3082/3000/1249 3083/2999/1248 3085/3001/1250 -f 3084/3002/1251 3085/3001/1250 3087/3003/1252 -f 3086/3004/1253 3087/3003/1252 3074/3005/1254 -f 3089/3006/1255 3090/3011/1260 3091/3007/1256 -f 3064/2986/1235 3067/2985/1234 3078/3009/1258 -f 3092/3010/1259 3093/3134/1383 3090/3011/1260 -f 3046/2970/1219 3049/2969/1218 3071/3012/1261 -f 3095/3013/1262 3096/3027/1276 3097/3014/1263 -f 3099/3016/1265 3100/3032/1281 3101/3017/1266 -f 3098/3018/1267 3101/3017/1266 3103/3019/1268 -f 3102/3020/1269 3103/3019/1268 3105/3021/1270 -f 3104/3022/1271 3105/3021/1270 3107/3023/1272 -f 3106/3024/1273 3107/3023/1272 3109/3025/1274 -f 3108/3026/1275 3109/3025/1274 3096/3027/1276 -f 3111/3028/1277 3112/3031/1280 3113/3029/1278 -f 3094/3015/1264 3097/3014/1263 3112/3031/1280 -f 3088/3008/1257 3091/3007/1256 3100/3032/1281 -f 3115/3033/1282 3116/3047/1296 3117/3034/1283 -f 3119/3036/1285 3120/3052/1301 3121/3037/1286 -f 3118/3038/1287 3121/3037/1286 3123/3039/1288 -f 3122/3040/1289 3123/3039/1288 3125/3041/1290 -f 3124/3042/1291 3125/3041/1290 3127/3043/1292 -f 3126/3044/1293 3127/3043/1292 3129/3045/1294 -f 3128/3046/1295 3129/3045/1294 3116/3047/1296 -f 3131/3048/1297 3132/3051/1300 3133/3049/1298 -f 3114/3035/1284 3117/3034/1283 3132/3051/1300 -f 3110/3030/1279 3113/3029/1278 3120/3052/1301 -f 3135/3053/1302 3136/3067/1316 3137/3054/1303 -f 3139/3056/1305 3140/3072/1321 3141/3057/1306 -f 3138/3058/1307 3141/3057/1306 3143/3059/1308 -f 3142/3060/1309 3143/3059/1308 3145/3061/1310 -f 3144/3062/1311 3145/3061/1310 3147/3063/1312 -f 3146/3064/1313 3147/3063/1312 3149/3065/1314 -f 3148/3066/1315 3149/3065/1314 3136/3067/1316 -f 3151/3068/1317 3152/3071/1320 3153/3069/1318 -f 3134/3055/1304 3137/3054/1303 3152/3071/1320 -f 3130/3050/1299 3133/3049/1298 3140/3072/1321 -f 3155/3073/1322 3156/3087/1336 3157/3074/1323 -f 3159/3076/1325 3160/3092/1341 3161/3077/1326 -f 3158/3078/1327 3161/3077/1326 3163/3079/1328 -f 3162/3080/1329 3163/3079/1328 3165/3081/1330 -f 3164/3082/1331 3165/3081/1330 3167/3083/1332 -f 3166/3084/1333 3167/3083/1332 3169/3085/1334 -f 3168/3086/1335 3169/3085/1334 3156/3087/1336 -f 3171/3088/1337 3172/3091/1340 3173/3089/1338 -f 3154/3075/1324 3157/3074/1323 3172/3091/1340 -f 3150/3070/1319 3153/3069/1318 3160/3092/1341 -f 3175/3093/1342 3176/3107/1356 3177/3094/1343 -f 3179/3096/1345 3180/3112/1361 3181/3097/1346 -f 3178/3098/1347 3181/3097/1346 3183/3099/1348 -f 3182/3100/1349 3183/3099/1348 3185/3101/1350 -f 3184/3102/1351 3185/3101/1350 3187/3103/1352 -f 3186/3104/1353 3187/3103/1352 3189/3105/1354 -f 3188/3106/1355 3189/3105/1354 3176/3107/1356 -f 3191/3108/1357 3192/3111/1360 3193/3109/1358 -f 3174/3095/1344 3177/3094/1343 3192/3111/1360 -f 3170/3090/1339 3173/3089/1338 3180/3112/1361 -f 3195/3113/1362 3196/3127/1376 3197/3114/1363 -f 3199/3116/1365 3200/3131/1380 3201/3117/1366 -f 3198/3118/1367 3201/3117/1366 3203/3119/1368 -f 3202/3120/1369 3203/3119/1368 3205/3121/1370 -f 3204/3122/1371 3205/3121/1370 3207/3123/1372 -f 3206/3124/1373 3207/3123/1372 3209/3125/1374 -f 3208/3126/1375 3209/3125/1374 3196/3127/1376 -f 3211/3128/1377 3212/3133/1382 3213/3129/1378 -f 3190/3110/1359 3193/3109/1358 3200/3131/1380 -f 3214/3132/1381 3215/3213/1462 3212/3133/1382 -f 3072/2993/1242 3075/2992/1241 3093/3134/1383 -f 3217/3135/1384 3218/3149/1398 3219/3136/1385 -f 3221/3138/1387 3222/3154/1403 3223/3139/1388 -f 3220/3140/1389 3223/3139/1388 3225/3141/1390 -f 3224/3142/1391 3225/3141/1390 3227/3143/1392 -f 3226/3144/1393 3227/3143/1392 3229/3145/1394 -f 3228/3146/1395 3229/3145/1394 3231/3147/1396 -f 3230/3148/1397 3231/3147/1396 3218/3149/1398 -f 3233/3150/1399 3234/3153/1402 3235/3151/1400 -f 3216/3137/1386 3219/3136/1385 3234/3153/1402 -f 3210/3130/1379 3213/3129/1378 3222/3154/1403 -f 3237/3155/1404 3238/3169/1418 3239/3156/1405 -f 3241/3158/1407 3242/3174/1423 3243/3159/1408 -f 3240/3160/1409 3243/3159/1408 3245/3161/1410 -f 3244/3162/1411 3245/3161/1410 3247/3163/1412 -f 3246/3164/1413 3247/3163/1412 3249/3165/1414 -f 3248/3166/1415 3249/3165/1414 3251/3167/1416 -f 3250/3168/1417 3251/3167/1416 3238/3169/1418 -f 3253/3170/1419 3254/3173/1422 3255/3171/1420 -f 3236/3157/1406 3239/3156/1405 3254/3173/1422 -f 3232/3152/1401 3235/3151/1400 3242/3174/1423 -f 3257/3175/1424 3258/3189/1438 3259/3176/1425 -f 3261/3178/1427 3262/3194/1443 3263/3179/1428 -f 3260/3180/1429 3263/3179/1428 3265/3181/1430 -f 3264/3182/1431 3265/3181/1430 3267/3183/1432 -f 3266/3184/1433 3267/3183/1432 3269/3185/1434 -f 3268/3186/1435 3269/3185/1434 3271/3187/1436 -f 3270/3188/1437 3271/3187/1436 3258/3189/1438 -f 3273/3190/1439 3274/3193/1442 3275/3191/1440 -f 3273/3190/1439 3256/3177/1426 3259/3176/1425 -f 3252/3172/1421 3255/3171/1420 3262/3194/1443 -f 3277/3195/1444 3278/3209/1458 3279/3196/1445 -f 3281/3198/1447 3282/3212/1461 3283/3199/1448 -f 3280/3200/1449 3283/3199/1448 3285/3201/1450 -f 3284/3202/1451 3285/3201/1450 3287/3203/1452 -f 3286/3204/1453 3287/3203/1452 3289/3205/1454 -f 3288/3206/1455 3289/3205/1454 3291/3207/1456 -f 3290/3208/1457 3291/3207/1456 3278/3209/1458 -f 2898/2964/1213 2901/2963/1212 3293/3210/1459 -f 3272/3192/1441 3275/3191/1440 3282/3212/1461 -f 3194/3115/1364 3197/3114/1363 3215/3213/1462 -f 3276/3197/1446 3279/3196/1445 3295/3214/1463 -f 3297/3216/1465 3298/3230/1479 3299/3217/1466 -f 3301/3219/1468 3302/3235/1484 3303/3220/1469 -f 3300/3221/1470 3303/3220/1469 3305/3222/1471 -f 3304/3223/1472 3305/3222/1471 3307/3224/1473 -f 3306/3225/1474 3307/3224/1473 3309/3226/1475 -f 3308/3227/1476 3309/3226/1475 3311/3228/1477 -f 3310/3229/1478 3311/3228/1477 3298/3230/1479 -f 3313/3231/1480 3314/3234/1483 3315/3232/1481 -f 3296/3218/1467 3299/3217/1466 3314/3234/1483 -f 3292/3211/1460 3293/3210/1459 3302/3235/1484 -f 3316/3236/1485 3317/3249/1498 3048/3237/1486 -f 3319/3238/1487 3320/3253/1502 3321/3239/1488 -f 3318/3240/1489 3321/3239/1488 3323/3241/1490 -f 3322/3242/1491 3323/3241/1490 3325/3243/1492 -f 3324/3244/1493 3325/3243/1492 3327/3245/1494 -f 3326/3246/1495 3327/3245/1494 3329/3247/1496 -f 3328/3248/1497 3329/3247/1496 3317/3249/1498 -f 3330/3836/2085 3331/3835/2084 3433/3917/2166 -f 3331/3835/2084 3332/4317/2566 3432/3924/2173 -f 3435/3913/2162 3473/4322/2571 3434/3912/2161 -f 3473/4322/2571 3330/3836/2085 3434/3912/2161 -f 3473/4322/2571 3435/3913/2162 3464/4362/2611 -f 3471/4333/2582 3472/4326/2575 3473/4322/2571 -f 3469/4341/2590 3470/4337/2586 3473/4322/2571 -f 3470/4337/2586 3471/4333/2582 3473/4322/2571 -f 3467/4345/2594 3468/4346/2595 3464/4362/2611 -f 3468/4346/2595 3469/4341/2590 3464/4362/2611 -f 3465/4354/2603 3466/4350/2599 3464/4362/2611 -f 3466/4350/2599 3467/4345/2594 3464/4362/2611 -f 3463/4361/2610 3464/4362/2611 3442/3885/2134 -f 3442/3885/2134 3464/4362/2611 3441/3884/2133 -f 3461/4370/2619 3462/4366/2615 3455/4396/2645 -f 3462/4366/2615 3463/4361/2610 3455/4396/2645 -f 3459/4381/2630 3460/4376/2625 3461/4370/2619 -f 3457/4389/2638 3458/4384/2633 3459/4381/2630 -f 3455/4396/2645 3456/4388/2637 3457/4389/2638 -f 3453/3839/2088 3454/4401/2650 3463/4361/2610 -f 3454/4401/2650 3455/4396/2645 3463/4361/2610 -f 3451/3847/2096 3452/3837/2086 3445/3872/2121 -f 3452/3837/2086 3453/3839/2088 3444/3876/2125 -f 3449/3851/2100 3450/3852/2101 3447/3859/2108 -f 3450/3852/2101 3451/3847/2096 3447/3859/2108 -f 3447/3859/2108 3448/3860/2109 3449/3851/2100 -f 3445/3872/2121 3446/3864/2113 3447/3859/2108 -f 3443/3880/2129 3444/3876/2125 3463/4361/2610 -f 3444/3876/2125 3445/3872/2121 3452/3837/2086 -f 3445/3872/2121 3447/3859/2108 3451/3847/2096 -f 3455/4396/2645 3457/4389/2638 3459/4381/2630 -f 3459/4381/2630 3461/4370/2619 3455/4396/2645 -f 3464/4362/2611 3435/3913/2162 3436/3908/2157 -f 3464/4362/2611 3436/3908/2157 3437/3904/2153 -f 3469/4341/2590 3473/4322/2571 3464/4362/2611 -f 3453/3839/2088 3463/4361/2610 3444/3876/2125 -f 3442/3885/2134 3443/3880/2129 3463/4361/2610 -f 3441/3884/2133 3464/4362/2611 3440/3889/2138 -f 3440/3889/2138 3464/4362/2611 3439/3893/2142 -f 3439/3893/2142 3464/4362/2611 3438/3900/2149 -f 3438/3900/2149 3464/4362/2611 3437/3904/2153 -f 3434/3912/2161 3330/3836/2085 3433/3917/2166 -f 3332/4317/2566 3333/4318/2567 3432/3924/2173 -f 3433/3917/2166 3331/3835/2084 3432/3924/2173 -f 3333/4318/2567 3334/4313/2562 3431/3928/2177 -f 3333/4318/2567 3431/3928/2177 3432/3924/2173 -f 3334/4313/2562 3335/4309/2558 3430/3932/2181 -f 3431/3928/2177 3334/4313/2562 3430/3932/2181 -f 3335/4309/2558 3336/4305/2554 3429/3936/2185 -f 3430/3932/2181 3335/4309/2558 3429/3936/2185 -f 3336/4305/2554 3337/4298/2547 3428/3940/2189 -f 3429/3936/2185 3336/4305/2554 3428/3940/2189 -f 3337/4298/2547 3338/4294/2543 3372/4162/2411 -f 3428/3940/2189 3337/4298/2547 3372/4162/2411 -f 3338/4294/2543 3339/4289/2538 3372/4162/2411 -f 3339/4289/2538 3340/4290/2539 3372/4162/2411 -f 3427/3944/2193 3428/3940/2189 3372/4162/2411 -f 3341/4285/2534 3342/4281/2530 3371/4161/2410 -f 3342/4281/2530 3343/4274/2523 3344/4270/2519 -f 3366/4181/2430 3342/4281/2530 3365/4185/2434 -f 3340/4290/2539 3341/4285/2534 3371/4161/2410 -f 3372/4162/2411 3340/4290/2539 3371/4161/2410 -f 3426/3943/2192 3427/3944/2193 3372/4162/2411 -f 3342/4281/2530 3366/4181/2430 3367/4182/2431 -f 3342/4281/2530 3362/4202/2451 3365/4185/2434 -f 3344/4270/2519 3345/4265/2514 3342/4281/2530 -f 3345/4265/2514 3346/4261/2510 3342/4281/2530 -f 3346/4261/2510 3347/4262/2511 3351/4246/2495 -f 3347/4262/2511 3348/4257/2506 3351/4246/2495 -f 3348/4257/2506 3349/4253/2502 3351/4246/2495 -f 3349/4253/2502 3350/4245/2494 3351/4246/2495 -f 3351/4246/2495 3352/4241/2490 3362/4202/2451 -f 3352/4241/2490 3353/4234/2483 3354/4230/2479 -f 3354/4230/2479 3355/4225/2474 3352/4241/2490 -f 3355/4225/2474 3356/4221/2470 3352/4241/2490 -f 3356/4221/2470 3357/4222/2471 3361/4201/2450 -f 3357/4222/2471 3358/4217/2466 3361/4201/2450 -f 3358/4217/2466 3359/4213/2462 3361/4201/2450 -f 3359/4213/2462 3360/4206/2455 3361/4201/2450 -f 3361/4201/2450 3362/4202/2451 3352/4241/2490 -f 3362/4202/2451 3363/4194/2443 3364/4190/2439 -f 3364/4190/2439 3365/4185/2434 3362/4202/2451 -f 3367/4182/2431 3368/4177/2426 3342/4281/2530 -f 3368/4177/2426 3369/4173/2422 3371/4161/2410 -f 3369/4173/2422 3370/4166/2415 3371/4161/2410 -f 3372/4162/2411 3373/4157/2406 3423/3957/2206 -f 3373/4157/2406 3374/4150/2399 3422/3961/2210 -f 3423/3957/2206 3373/4157/2406 3422/3961/2210 -f 3374/4150/2399 3375/4146/2395 3422/3961/2210 -f 3375/4146/2395 3376/4141/2390 3422/3961/2210 -f 3422/3961/2210 3376/4141/2390 3377/4137/2386 -f 3377/4137/2386 3378/4138/2387 3422/3961/2210 -f 3421/3968/2217 3378/4138/2387 3379/4133/2382 -f 3379/4133/2382 3380/4129/2378 3421/3968/2217 -f 3421/3968/2217 3380/4129/2378 3381/4122/2371 -f 3381/4122/2371 3382/3250/1499 3421/3968/2217 -f 3382/3250/1499 3383/4118/2367 3416/3986/2235 -f 3383/4118/2367 3384/4111/2360 3385/4107/2356 -f 3415/3990/2239 3383/4118/2367 3414/3995/2244 -f 3385/4107/2356 3386/4101/2350 3383/4118/2367 -f 3386/4101/2350 3387/4102/2351 3383/4118/2367 -f 3387/4102/2351 3388/4098/2347 3383/4118/2367 -f 3388/4098/2347 3389/4094/2343 3392/4083/2332 -f 3389/4094/2343 3390/4090/2339 3392/4083/2332 -f 3390/4090/2339 3391/4082/2331 3392/4083/2332 -f 3392/4083/2332 3393/4078/2327 3412/3999/2248 -f 3393/4078/2327 3394/4071/2320 3395/4067/2316 -f 3403/4039/2288 3408/4018/2267 3412/3999/2248 -f 3395/4067/2316 3396/4061/2310 3393/4078/2327 -f 3396/4061/2310 3397/4062/2311 3393/4078/2327 -f 3397/4062/2311 3398/4058/2307 3393/4078/2327 -f 3398/4058/2307 3399/4054/2303 3402/4038/2287 -f 3399/4054/2303 3400/4050/2299 3402/4038/2287 -f 3400/4050/2299 3401/4043/2292 3402/4038/2287 -f 3402/4038/2287 3403/4039/2288 3393/4078/2327 -f 3403/4039/2288 3404/4031/2280 3405/4027/2276 -f 3393/4078/2327 3403/4039/2288 3412/3999/2248 -f 3405/4027/2276 3406/4022/2271 3403/4039/2288 -f 3406/4022/2271 3407/4023/2272 3403/4039/2288 -f 3407/4023/2272 3408/4018/2267 3403/4039/2288 -f 3408/4018/2267 3409/4014/2263 3412/3999/2248 -f 3409/4014/2263 3410/4010/2259 3412/3999/2248 -f 3410/4010/2259 3411/4003/2252 3412/3999/2248 -f 3412/3999/2248 3413/3994/2243 3392/4083/2332 -f 3392/4083/2332 3413/3994/2243 3383/4118/2367 -f 3383/4118/2367 3415/3990/2239 3416/3986/2235 -f 3421/3968/2217 3382/3250/1499 3420/3252/1501 -f 3378/4138/2387 3421/3968/2217 3422/3961/2210 -f 3417/3979/2228 3382/3250/1499 3416/3986/2235 -f 3414/3995/2244 3383/4118/2367 3413/3994/2243 -f 3388/4098/2347 3392/4083/2332 3383/4118/2367 -f 3398/4058/2307 3402/4038/2287 3393/4078/2327 -f 3382/3250/1499 3417/3979/2228 3418/3975/2224 -f 3371/4161/2410 3342/4281/2530 3368/4177/2426 -f 3361/4201/2450 3352/4241/2490 3356/4221/2470 -f 3351/4246/2495 3362/4202/2451 3342/4281/2530 -f 3351/4246/2495 3342/4281/2530 3346/4261/2510 -f 3425/3949/2198 3426/3943/2192 3372/4162/2411 -f 3424/3953/2202 3425/3949/2198 3372/4162/2411 -f 3423/3957/2206 3424/3953/2202 3372/4162/2411 -f 3382/3250/1499 3418/3975/2224 3419/3251/1500 -f 3312/3233/1482 3315/3232/1481 3320/3253/1502 -f 3062/2983/1232 3063/2982/1231 3069/3254/1503 -f 3045/3255/1504 3474/3258/1507 3475/3256/1505 -f 3474/3258/1507 3476/3260/1509 3477/3259/1508 -f 3476/3260/1509 3478/3262/1511 3479/3261/1510 -f 3478/3262/1511 3294/3215/1464 2899/2962/1211 -f 3046/2970/1219 3070/2989/1238 3480/3263/1512 -f 3481/3264/1513 3480/3263/1512 3482/3265/1514 -f 3483/3266/1515 3482/3265/1514 3484/3267/1516 -f 3485/3268/1517 3484/3267/1516 2924/3269/1518 -f 3051/2971/1220 3486/3274/1523 3480/3263/1512 -f 3480/3263/1512 3486/3274/1523 3487/3271/1520 -f 3482/3265/1514 3487/3271/1520 3488/3272/1521 -f 3488/3272/1521 2925/3276/1525 2924/3269/1518 -f 3051/2971/1220 3050/2973/1222 3489/3273/1522 -f 3489/3273/1522 3490/3278/1527 3487/3271/1520 -f 3487/3271/1520 3490/3278/1527 3491/3275/1524 -f 3491/3275/1524 2926/3281/1530 2925/3276/1525 -f 3054/2975/1224 3492/3277/1526 3489/3273/1522 -f 3492/3277/1526 3493/3283/1532 3490/3278/1527 -f 3490/3278/1527 3493/3283/1532 3494/3279/1528 -f 3491/3275/1524 3494/3279/1528 2927/3280/1529 -f 3056/2977/1226 3495/3286/1535 3492/3277/1526 -f 3492/3277/1526 3495/3286/1535 3496/3282/1531 -f 3493/3283/1532 3496/3282/1531 3497/3284/1533 -f 3497/3284/1533 2928/3289/1538 2927/3280/1529 -f 3056/2977/1226 3058/2979/1228 3498/3285/1534 -f 3498/3285/1534 3499/3287/1536 3496/3282/1531 -f 3499/3287/1536 3500/3292/1541 3497/3284/1533 -f 3497/3284/1533 3500/3292/1541 2929/3288/1537 -f 3058/2979/1228 3060/2981/1230 3501/3290/1539 -f 3501/3290/1539 3502/3291/1540 3499/3287/1536 -f 3502/3291/1540 3503/3293/1542 3500/3292/1541 -f 3503/3293/1542 2930/3297/1546 2929/3288/1537 -f 3060/2981/1230 3062/2983/1232 3504/3294/1543 -f 3501/3290/1539 3504/3294/1543 3505/3295/1544 -f 3505/3295/1544 3506/3296/1545 3503/3293/1542 -f 3506/3296/1545 2931/3301/1550 2930/3297/1546 -f 3068/2987/1236 3507/3298/1547 3504/3294/1543 -f 3507/3298/1547 3508/3299/1548 3505/3295/1544 -f 3508/3299/1548 3509/3300/1549 3506/3296/1545 -f 3509/3300/1549 2932/3305/1554 2931/3301/1550 -f 3065/2984/1233 3510/3302/1551 3507/3298/1547 -f 3510/3302/1551 3511/3303/1552 3508/3299/1548 -f 3511/3303/1552 3512/3304/1553 3509/3300/1549 -f 3512/3304/1553 2933/3309/1558 2932/3305/1554 -f 3064/2986/1235 3513/3306/1555 3510/3302/1551 -f 3513/3306/1555 3514/3307/1556 3511/3303/1552 -f 3514/3307/1556 3515/3308/1557 3512/3304/1553 -f 3515/3308/1557 2934/3314/1563 2933/3309/1558 -f 3064/2986/1235 3077/2994/1243 3516/3310/1559 -f 3513/3306/1555 3516/3310/1559 3517/3311/1560 -f 3514/3307/1556 3517/3311/1560 3518/3312/1561 -f 3515/3308/1557 3518/3312/1561 2935/3313/1562 -f 3077/2994/1243 3076/2996/1245 3519/3315/1564 -f 3516/3310/1559 3519/3315/1564 3520/3316/1565 -f 3517/3311/1560 3520/3316/1565 3521/3317/1566 -f 3518/3312/1561 3521/3317/1566 2936/3318/1567 -f 3076/2996/1245 3080/2998/1247 3522/3319/1568 -f 3519/3315/1564 3522/3319/1568 3523/3320/1569 -f 3520/3316/1565 3523/3320/1569 3524/3321/1570 -f 3521/3317/1566 3524/3321/1570 2937/3322/1571 -f 3080/2998/1247 3082/3000/1249 3525/3323/1572 -f 3522/3319/1568 3525/3323/1572 3526/3324/1573 -f 3526/3324/1573 3527/3325/1574 3524/3321/1570 -f 3527/3325/1574 2938/3329/1578 2937/3322/1571 -f 3084/3002/1251 3528/3326/1575 3525/3323/1572 -f 3528/3326/1575 3529/3327/1576 3526/3324/1573 -f 3529/3327/1576 3530/3328/1577 3527/3325/1574 -f 3530/3328/1577 2939/3333/1582 2938/3329/1578 -f 3086/3004/1253 3531/3330/1579 3528/3326/1575 -f 3531/3330/1579 3532/3331/1580 3529/3327/1576 -f 3532/3331/1580 3533/3332/1581 3530/3328/1577 -f 3533/3332/1581 2940/3337/1586 2939/3333/1582 -f 3073/2991/1240 3534/3334/1583 3531/3330/1579 -f 3534/3334/1583 3535/3335/1584 3532/3331/1580 -f 3535/3335/1584 3536/3336/1585 3533/3332/1581 -f 3536/3336/1585 2941/3342/1591 2940/3337/1586 -f 3073/2991/1240 3072/2993/1242 3537/3338/1587 -f 3534/3334/1583 3537/3338/1587 3538/3339/1588 -f 3535/3335/1584 3538/3339/1588 3539/3340/1589 -f 3536/3336/1585 3539/3340/1589 2942/3341/1590 -f 3072/2993/1242 3092/3010/1259 3540/3343/1592 -f 3537/3338/1587 3540/3343/1592 3541/3344/1593 -f 3538/3339/1588 3541/3344/1593 3542/3345/1594 -f 3539/3340/1589 3542/3345/1594 2943/3346/1595 -f 3089/3006/1255 3543/3347/1596 3540/3343/1592 -f 3543/3347/1596 3544/3348/1597 3541/3344/1593 -f 3544/3348/1597 3545/3349/1598 3542/3345/1594 -f 3545/3349/1598 2944/3353/1602 2943/3346/1595 -f 3088/3008/1257 3546/3350/1599 3543/3347/1596 -f 3546/3350/1599 3547/3351/1600 3544/3348/1597 -f 3547/3351/1600 3548/3352/1601 3545/3349/1598 -f 3548/3352/1601 2945/3357/1606 2944/3353/1602 -f 3099/3016/1265 3549/3354/1603 3546/3350/1599 -f 3549/3354/1603 3550/3355/1604 3547/3351/1600 -f 3550/3355/1604 3551/3356/1605 3548/3352/1601 -f 3551/3356/1605 2946/3361/1610 2945/3357/1606 -f 3098/3018/1267 3552/3358/1607 3549/3354/1603 -f 3552/3358/1607 3553/3359/1608 3550/3355/1604 -f 3553/3359/1608 3554/3360/1609 3551/3356/1605 -f 3554/3360/1609 2947/3365/1614 2946/3361/1610 -f 3102/3020/1269 3555/3362/1611 3552/3358/1607 -f 3555/3362/1611 3556/3363/1612 3553/3359/1608 -f 3556/3363/1612 3557/3364/1613 3554/3360/1609 -f 3557/3364/1613 2948/3368/1617 2947/3365/1614 -f 3102/3020/1269 3104/3022/1271 3558/3366/1615 -f 3558/3366/1615 3559/3371/1620 3556/3363/1612 -f 3556/3363/1612 3559/3371/1620 3560/3367/1616 -f 3560/3367/1616 2949/3374/1623 2948/3368/1617 -f 3104/3022/1271 3106/3024/1273 3561/3369/1618 -f 3558/3366/1615 3561/3369/1618 3562/3370/1619 -f 3559/3371/1620 3562/3370/1619 3563/3372/1621 -f 3560/3367/1616 3563/3372/1621 2950/3373/1622 -f 3106/3024/1273 3108/3026/1275 3564/3375/1624 -f 3561/3369/1618 3564/3375/1624 3565/3376/1625 -f 3562/3370/1619 3565/3376/1625 3566/3377/1626 -f 3563/3372/1621 3566/3377/1626 2951/3378/1627 -f 3108/3026/1275 3095/3013/1262 3567/3379/1628 -f 3564/3375/1624 3567/3379/1628 3568/3380/1629 -f 3565/3376/1625 3568/3380/1629 3569/3381/1630 -f 3566/3377/1626 3569/3381/1630 2952/3382/1631 -f 3095/3013/1262 3094/3015/1264 3570/3383/1632 -f 3567/3379/1628 3570/3383/1632 3571/3384/1633 -f 3568/3380/1629 3571/3384/1633 3572/3385/1634 -f 3569/3381/1630 3572/3385/1634 2953/3386/1635 -f 3094/3015/1264 3111/3028/1277 3573/3387/1636 -f 3570/3383/1632 3573/3387/1636 3574/3388/1637 -f 3571/3384/1633 3574/3388/1637 3575/3389/1638 -f 3572/3385/1634 3575/3389/1638 2954/3390/1639 -f 3110/3030/1279 3576/3391/1640 3573/3387/1636 -f 3576/3391/1640 3577/3392/1641 3574/3388/1637 -f 3577/3392/1641 3578/3393/1642 3575/3389/1638 -f 3578/3393/1642 2955/3397/1646 2954/3390/1639 -f 3110/3030/1279 3119/3036/1285 3579/3394/1643 -f 3576/3391/1640 3579/3394/1643 3580/3395/1644 -f 3577/3392/1641 3580/3395/1644 3581/3396/1645 -f 3578/3393/1642 3581/3396/1645 2956/2967/1216 -f 3119/3036/1285 3118/3038/1287 3582/3398/1647 -f 3579/3394/1643 3582/3398/1647 3583/3399/1648 -f 3580/3395/1644 3583/3399/1648 3584/3400/1649 -f 3581/3396/1645 3584/3400/1649 2957/2965/1214 -f 3118/3038/1287 3122/3040/1289 3585/3401/1650 -f 3582/3398/1647 3585/3401/1650 3586/3402/1651 -f 3583/3399/1648 3586/3402/1651 3587/3403/1652 -f 3584/3400/1649 3587/3403/1652 2958/3404/1653 -f 3124/3042/1291 3588/3407/1656 3585/3401/1650 -f 3585/3401/1650 3588/3407/1656 3589/3405/1654 -f 3589/3405/1654 3590/3410/1659 3587/3403/1652 -f 3587/3403/1652 3590/3410/1659 2959/3406/1655 -f 3126/3044/1293 3591/3408/1657 3588/3407/1656 -f 3591/3408/1657 3592/3409/1658 3589/3405/1654 -f 3592/3409/1658 3593/3411/1660 3590/3410/1659 -f 3593/3411/1660 2960/3415/1664 2959/3406/1655 -f 3128/3046/1295 3594/3412/1661 3591/3408/1657 -f 3594/3412/1661 3595/3413/1662 3592/3409/1658 -f 3595/3413/1662 3596/3414/1663 3593/3411/1660 -f 3596/3414/1663 2961/3419/1668 2960/3415/1664 -f 3115/3033/1282 3597/3416/1665 3594/3412/1661 -f 3597/3416/1665 3598/3417/1666 3595/3413/1662 -f 3598/3417/1666 3599/3418/1667 3596/3414/1663 -f 3599/3418/1667 2962/3424/1673 2961/3419/1668 -f 3115/3033/1282 3114/3035/1284 3600/3420/1669 -f 3597/3416/1665 3600/3420/1669 3601/3421/1670 -f 3598/3417/1666 3601/3421/1670 3602/3422/1671 -f 3599/3418/1667 3602/3422/1671 2963/3423/1672 -f 3114/3035/1284 3131/3048/1297 3603/3425/1674 -f 3600/3420/1669 3603/3425/1674 3604/3426/1675 -f 3601/3421/1670 3604/3426/1675 3605/3427/1676 -f 3602/3422/1671 3605/3427/1676 2964/3428/1677 -f 3131/3048/1297 3130/3050/1299 3606/3429/1678 -f 3603/3425/1674 3606/3429/1678 3607/3430/1679 -f 3604/3426/1675 3607/3430/1679 3608/3431/1680 -f 3605/3427/1676 3608/3431/1680 2965/3432/1681 -f 3139/3056/1305 3609/3433/1682 3606/3429/1678 -f 3609/3433/1682 3610/3434/1683 3607/3430/1679 -f 3610/3434/1683 3611/3435/1684 3608/3431/1680 -f 3611/3435/1684 2966/3439/1688 2965/3432/1681 -f 3138/3058/1307 3612/3436/1685 3609/3433/1682 -f 3612/3436/1685 3613/3437/1686 3610/3434/1683 -f 3613/3437/1686 3614/3438/1687 3611/3435/1684 -f 3614/3438/1687 2967/3443/1692 2966/3439/1688 -f 3142/3060/1309 3615/3440/1689 3612/3436/1685 -f 3615/3440/1689 3616/3441/1690 3613/3437/1686 -f 3616/3441/1690 3617/3442/1691 3614/3438/1687 -f 3617/3442/1691 2968/3447/1696 2967/3443/1692 -f 3142/3060/1309 3144/3062/1311 3618/3444/1693 -f 3615/3440/1689 3618/3444/1693 3619/3445/1694 -f 3619/3445/1694 3620/3451/1700 3617/3442/1691 -f 3617/3442/1691 3620/3451/1700 2969/3446/1695 -f 3144/3062/1311 3146/3064/1313 3621/3448/1697 -f 3618/3444/1693 3621/3448/1697 3622/3449/1698 -f 3619/3445/1694 3622/3449/1698 3623/3450/1699 -f 3620/3451/1700 3623/3450/1699 2970/3452/1701 -f 3146/3064/1313 3148/3066/1315 3624/3453/1702 -f 3621/3448/1697 3624/3453/1702 3625/3454/1703 -f 3622/3449/1698 3625/3454/1703 3626/3455/1704 -f 3623/3450/1699 3626/3455/1704 2971/3456/1705 -f 3148/3066/1315 3135/3053/1302 3627/3457/1706 -f 3624/3453/1702 3627/3457/1706 3628/3458/1707 -f 3625/3454/1703 3628/3458/1707 3629/3459/1708 -f 3626/3455/1704 3629/3459/1708 2972/3460/1709 -f 3134/3055/1304 3630/3461/1710 3627/3457/1706 -f 3630/3461/1710 3631/3462/1711 3628/3458/1707 -f 3631/3462/1711 3632/3463/1712 3629/3459/1708 -f 3632/3463/1712 2973/3468/1717 2972/3460/1709 -f 3134/3055/1304 3151/3068/1317 3633/3464/1713 -f 3630/3461/1710 3633/3464/1713 3634/3465/1714 -f 3631/3462/1711 3634/3465/1714 3635/3466/1715 -f 3632/3463/1712 3635/3466/1715 2974/3467/1716 -f 3151/3068/1317 3150/3070/1319 3636/3469/1718 -f 3633/3464/1713 3636/3469/1718 3637/3470/1719 -f 3634/3465/1714 3637/3470/1719 3638/3471/1720 -f 3635/3466/1715 3638/3471/1720 2975/3472/1721 -f 3159/3076/1325 3639/3473/1722 3636/3469/1718 -f 3639/3473/1722 3640/3474/1723 3637/3470/1719 -f 3640/3474/1723 3641/3475/1724 3638/3471/1720 -f 3641/3475/1724 2976/3479/1728 2975/3472/1721 -f 3158/3078/1327 3642/3476/1725 3639/3473/1722 -f 3642/3476/1725 3643/3477/1726 3640/3474/1723 -f 3643/3477/1726 3644/3478/1727 3641/3475/1724 -f 3644/3478/1727 2977/3483/1732 2976/3479/1728 -f 3162/3080/1329 3645/3480/1729 3642/3476/1725 -f 3645/3480/1729 3646/3481/1730 3643/3477/1726 -f 3646/3481/1730 3647/3482/1731 3644/3478/1727 -f 3647/3482/1731 2978/3486/1735 2977/3483/1732 -f 3162/3080/1329 3164/3082/1331 3648/3484/1733 -f 3648/3484/1733 3649/3489/1738 3646/3481/1730 -f 3646/3481/1730 3649/3489/1738 3650/3485/1734 -f 3650/3485/1734 2979/3492/1741 2978/3486/1735 -f 3164/3082/1331 3166/3084/1333 3651/3487/1736 -f 3648/3484/1733 3651/3487/1736 3652/3488/1737 -f 3649/3489/1738 3652/3488/1737 3653/3490/1739 -f 3650/3485/1734 3653/3490/1739 2980/3491/1740 -f 3166/3084/1333 3168/3086/1335 3654/3493/1742 -f 3651/3487/1736 3654/3493/1742 3655/3494/1743 -f 3652/3488/1737 3655/3494/1743 3656/3495/1744 -f 3653/3490/1739 3656/3495/1744 2981/3496/1745 -f 3168/3086/1335 3155/3073/1322 3657/3497/1746 -f 3654/3493/1742 3657/3497/1746 3658/3498/1747 -f 3655/3494/1743 3658/3498/1747 3659/3499/1748 -f 3656/3495/1744 3659/3499/1748 2982/3500/1749 -f 3154/3075/1324 3660/3501/1750 3657/3497/1746 -f 3660/3501/1750 3661/3502/1751 3658/3498/1747 -f 3661/3502/1751 3662/3503/1752 3659/3499/1748 -f 3662/3503/1752 2983/3507/1756 2982/3500/1749 -f 3171/3088/1337 3663/3504/1753 3660/3501/1750 -f 3663/3504/1753 3664/3505/1754 3661/3502/1751 -f 3664/3505/1754 3665/3506/1755 3662/3503/1752 -f 3665/3506/1755 2984/3512/1761 2983/3507/1756 -f 3171/3088/1337 3170/3090/1339 3666/3508/1757 -f 3663/3504/1753 3666/3508/1757 3667/3509/1758 -f 3664/3505/1754 3667/3509/1758 3668/3510/1759 -f 3665/3506/1755 3668/3510/1759 2985/3511/1760 -f 3179/3096/1345 3669/3513/1762 3666/3508/1757 -f 3669/3513/1762 3670/3514/1763 3667/3509/1758 -f 3670/3514/1763 3671/3515/1764 3668/3510/1759 -f 3671/3515/1764 2986/3519/1768 2985/3511/1760 -f 3178/3098/1347 3672/3516/1765 3669/3513/1762 -f 3672/3516/1765 3673/3517/1766 3670/3514/1763 -f 3673/3517/1766 3674/3518/1767 3671/3515/1764 -f 3674/3518/1767 2987/3523/1772 2986/3519/1768 -f 3182/3100/1349 3675/3520/1769 3672/3516/1765 -f 3675/3520/1769 3676/3521/1770 3673/3517/1766 -f 3676/3521/1770 3677/3522/1771 3674/3518/1767 -f 3677/3522/1771 2988/3527/1776 2987/3523/1772 -f 3182/3100/1349 3184/3102/1351 3678/3524/1773 -f 3675/3520/1769 3678/3524/1773 3679/3525/1774 -f 3676/3521/1770 3679/3525/1774 3680/3526/1775 -f 3680/3526/1775 2989/3532/1781 2988/3527/1776 -f 3184/3102/1351 3186/3104/1353 3681/3528/1777 -f 3678/3524/1773 3681/3528/1777 3682/3529/1778 -f 3679/3525/1774 3682/3529/1778 3683/3530/1779 -f 3680/3526/1775 3683/3530/1779 2990/3531/1780 -f 3186/3104/1353 3188/3106/1355 3684/3533/1782 -f 3681/3528/1777 3684/3533/1782 3685/3534/1783 -f 3682/3529/1778 3685/3534/1783 3686/3535/1784 -f 3683/3530/1779 3686/3535/1784 2991/3536/1785 -f 3188/3106/1355 3175/3093/1342 3687/3537/1786 -f 3684/3533/1782 3687/3537/1786 3688/3538/1787 -f 3685/3534/1783 3688/3538/1787 3689/3539/1788 -f 3686/3535/1784 3689/3539/1788 2992/3540/1789 -f 3174/3095/1344 3690/3541/1790 3687/3537/1786 -f 3690/3541/1790 3691/3542/1791 3688/3538/1787 -f 3691/3542/1791 3692/3543/1792 3689/3539/1788 -f 3692/3543/1792 2993/3547/1796 2992/3540/1789 -f 3191/3108/1357 3693/3544/1793 3690/3541/1790 -f 3693/3544/1793 3694/3545/1794 3691/3542/1791 -f 3694/3545/1794 3695/3546/1795 3692/3543/1792 -f 3695/3546/1795 2994/2966/1215 2993/3547/1796 -f 3191/3108/1357 3190/3110/1359 3696/3548/1797 -f 3693/3544/1793 3696/3548/1797 3697/3549/1798 -f 3694/3545/1794 3697/3549/1798 3698/3550/1799 -f 3695/3546/1795 3698/3550/1799 2995/3551/1800 -f 3199/3116/1365 3699/3552/1801 3696/3548/1797 -f 3699/3552/1801 3700/3553/1802 3697/3549/1798 -f 3700/3553/1802 3701/3554/1803 3698/3550/1799 -f 3701/3554/1803 2996/3558/1807 2995/3551/1800 -f 3198/3118/1367 3702/3555/1804 3699/3552/1801 -f 3702/3555/1804 3703/3556/1805 3700/3553/1802 -f 3703/3556/1805 3704/3557/1806 3701/3554/1803 -f 3704/3557/1806 2997/3562/1811 2996/3558/1807 -f 3202/3120/1369 3705/3559/1808 3702/3555/1804 -f 3705/3559/1808 3706/3560/1809 3703/3556/1805 -f 3706/3560/1809 3707/3561/1810 3704/3557/1806 -f 3707/3561/1810 2998/3565/1814 2997/3562/1811 -f 3204/3122/1371 3708/3567/1816 3705/3559/1808 -f 3705/3559/1808 3708/3567/1816 3709/3563/1812 -f 3709/3563/1812 3710/3570/1819 3707/3561/1810 -f 3707/3561/1810 3710/3570/1819 2999/3564/1813 -f 3204/3122/1371 3206/3124/1373 3711/3566/1815 -f 3708/3567/1816 3711/3566/1815 3712/3568/1817 -f 3709/3563/1812 3712/3568/1817 3713/3569/1818 -f 3710/3570/1819 3713/3569/1818 3000/3571/1820 -f 3206/3124/1373 3208/3126/1375 3714/3572/1821 -f 3711/3566/1815 3714/3572/1821 3715/3573/1822 -f 3712/3568/1817 3715/3573/1822 3716/3574/1823 -f 3713/3569/1818 3716/3574/1823 3001/3575/1824 -f 3208/3126/1375 3195/3113/1362 3717/3576/1825 -f 3714/3572/1821 3717/3576/1825 3718/3577/1826 -f 3715/3573/1822 3718/3577/1826 3719/3578/1827 -f 3716/3574/1823 3719/3578/1827 3002/3579/1828 -f 3194/3115/1364 3720/3580/1829 3717/3576/1825 -f 3720/3580/1829 3721/3581/1830 3718/3577/1826 -f 3721/3581/1830 3722/3582/1831 3719/3578/1827 -f 3722/3582/1831 3003/3586/1835 3002/3579/1828 -f 3214/3132/1381 3723/3583/1832 3720/3580/1829 -f 3723/3583/1832 3724/3584/1833 3721/3581/1830 -f 3724/3584/1833 3725/3585/1834 3722/3582/1831 -f 3725/3585/1834 3004/3591/1840 3003/3586/1835 -f 3214/3132/1381 3211/3128/1377 3726/3587/1836 -f 3723/3583/1832 3726/3587/1836 3727/3588/1837 -f 3724/3584/1833 3727/3588/1837 3728/3589/1838 -f 3725/3585/1834 3728/3589/1838 3005/3590/1839 -f 3211/3128/1377 3210/3130/1379 3729/3592/1841 -f 3726/3587/1836 3729/3592/1841 3730/3593/1842 -f 3727/3588/1837 3730/3593/1842 3731/3594/1843 -f 3728/3589/1838 3731/3594/1843 3006/3595/1844 -f 3221/3138/1387 3732/3596/1845 3729/3592/1841 -f 3732/3596/1845 3733/3597/1846 3730/3593/1842 -f 3733/3597/1846 3734/3598/1847 3731/3594/1843 -f 3734/3598/1847 3007/3602/1851 3006/3595/1844 -f 3220/3140/1389 3735/3599/1848 3732/3596/1845 -f 3735/3599/1848 3736/3600/1849 3733/3597/1846 -f 3736/3600/1849 3737/3601/1850 3734/3598/1847 -f 3737/3601/1850 3008/3606/1855 3007/3602/1851 -f 3224/3142/1391 3738/3603/1852 3735/3599/1848 -f 3738/3603/1852 3739/3604/1853 3736/3600/1849 -f 3739/3604/1853 3740/3605/1854 3737/3601/1850 -f 3740/3605/1854 3009/3610/1859 3008/3606/1855 -f 3226/3144/1393 3741/3607/1856 3738/3603/1852 -f 3741/3607/1856 3742/3613/1862 3739/3604/1853 -f 3739/3604/1853 3742/3613/1862 3743/3608/1857 -f 3740/3605/1854 3743/3608/1857 3010/3609/1858 -f 3226/3144/1393 3228/3146/1395 3744/3611/1860 -f 3741/3607/1856 3744/3611/1860 3745/3612/1861 -f 3742/3613/1862 3745/3612/1861 3746/3614/1863 -f 3743/3608/1857 3746/3614/1863 3011/3615/1864 -f 3228/3146/1395 3230/3148/1397 3747/3616/1865 -f 3744/3611/1860 3747/3616/1865 3748/3617/1866 -f 3745/3612/1861 3748/3617/1866 3749/3618/1867 -f 3746/3614/1863 3749/3618/1867 3012/3619/1868 -f 3230/3148/1397 3217/3135/1384 3750/3620/1869 -f 3747/3616/1865 3750/3620/1869 3751/3621/1870 -f 3748/3617/1866 3751/3621/1870 3752/3622/1871 -f 3749/3618/1867 3752/3622/1871 3013/3623/1872 -f 3216/3137/1386 3753/3624/1873 3750/3620/1869 -f 3753/3624/1873 3754/3625/1874 3751/3621/1870 -f 3754/3625/1874 3755/3626/1875 3752/3622/1871 -f 3755/3626/1875 3014/3631/1880 3013/3623/1872 -f 3216/3137/1386 3233/3150/1399 3756/3627/1876 -f 3753/3624/1873 3756/3627/1876 3757/3628/1877 -f 3754/3625/1874 3757/3628/1877 3758/3629/1878 -f 3755/3626/1875 3758/3629/1878 3015/3630/1879 -f 3233/3150/1399 3232/3152/1401 3759/3632/1881 -f 3756/3627/1876 3759/3632/1881 3760/3633/1882 -f 3757/3628/1877 3760/3633/1882 3761/3634/1883 -f 3758/3629/1878 3761/3634/1883 3016/3635/1884 -f 3241/3158/1407 3762/3636/1885 3759/3632/1881 -f 3762/3636/1885 3763/3637/1886 3760/3633/1882 -f 3763/3637/1886 3764/3638/1887 3761/3634/1883 -f 3764/3638/1887 3017/3642/1891 3016/3635/1884 -f 3240/3160/1409 3765/3639/1888 3762/3636/1885 -f 3765/3639/1888 3766/3640/1889 3763/3637/1886 -f 3766/3640/1889 3767/3641/1890 3764/3638/1887 -f 3767/3641/1890 3018/3646/1895 3017/3642/1891 -f 3244/3162/1411 3768/3643/1892 3765/3639/1888 -f 3768/3643/1892 3769/3644/1893 3766/3640/1889 -f 3769/3644/1893 3770/3645/1894 3767/3641/1890 -f 3770/3645/1894 3019/3650/1899 3018/3646/1895 -f 3244/3162/1411 3246/3164/1413 3771/3647/1896 -f 3771/3647/1896 3772/3648/1897 3769/3644/1893 -f 3772/3648/1897 3773/3654/1903 3770/3645/1894 -f 3770/3645/1894 3773/3654/1903 3020/3649/1898 -f 3246/3164/1413 3248/3166/1415 3774/3651/1900 -f 3771/3647/1896 3774/3651/1900 3775/3652/1901 -f 3772/3648/1897 3775/3652/1901 3776/3653/1902 -f 3773/3654/1903 3776/3653/1902 3021/3655/1904 -f 3248/3166/1415 3250/3168/1417 3777/3656/1905 -f 3774/3651/1900 3777/3656/1905 3778/3657/1906 -f 3775/3652/1901 3778/3657/1906 3779/3658/1907 -f 3776/3653/1902 3779/3658/1907 3022/3659/1908 -f 3250/3168/1417 3237/3155/1404 3780/3660/1909 -f 3777/3656/1905 3780/3660/1909 3781/3661/1910 -f 3778/3657/1906 3781/3661/1910 3782/3662/1911 -f 3779/3658/1907 3782/3662/1911 3023/3663/1912 -f 3236/3157/1406 3783/3664/1913 3780/3660/1909 -f 3783/3664/1913 3784/3665/1914 3781/3661/1910 -f 3784/3665/1914 3785/3666/1915 3782/3662/1911 -f 3785/3666/1915 3024/3670/1919 3023/3663/1912 -f 3253/3170/1419 3786/3667/1916 3783/3664/1913 -f 3786/3667/1916 3787/3668/1917 3784/3665/1914 -f 3787/3668/1917 3788/3669/1918 3785/3666/1915 -f 3788/3669/1918 3025/3675/1924 3024/3670/1919 -f 3253/3170/1419 3252/3172/1421 3789/3671/1920 -f 3786/3667/1916 3789/3671/1920 3790/3672/1921 -f 3787/3668/1917 3790/3672/1921 3791/3673/1922 -f 3788/3669/1918 3791/3673/1922 3026/3674/1923 -f 3261/3178/1427 3792/3676/1925 3789/3671/1920 -f 3792/3676/1925 3793/3677/1926 3790/3672/1921 -f 3793/3677/1926 3794/3678/1927 3791/3673/1922 -f 3794/3678/1927 3027/3682/1931 3026/3674/1923 -f 3260/3180/1429 3795/3679/1928 3792/3676/1925 -f 3795/3679/1928 3796/3680/1929 3793/3677/1926 -f 3796/3680/1929 3797/3681/1930 3794/3678/1927 -f 3797/3681/1930 3028/3686/1935 3027/3682/1931 -f 3264/3182/1431 3798/3683/1932 3795/3679/1928 -f 3798/3683/1932 3799/3684/1933 3796/3680/1929 -f 3799/3684/1933 3800/3685/1934 3797/3681/1930 -f 3800/3685/1934 3029/3690/1939 3028/3686/1935 -f 3264/3182/1431 3266/3184/1433 3801/3687/1936 -f 3798/3683/1932 3801/3687/1936 3802/3688/1937 -f 3802/3688/1937 3803/3694/1943 3800/3685/1934 -f 3800/3685/1934 3803/3694/1943 3030/3689/1938 -f 3266/3184/1433 3268/3186/1435 3804/3691/1940 -f 3801/3687/1936 3804/3691/1940 3805/3692/1941 -f 3802/3688/1937 3805/3692/1941 3806/3693/1942 -f 3803/3694/1943 3806/3693/1942 3031/3695/1944 -f 3268/3186/1435 3270/3188/1437 3807/3696/1945 -f 3804/3691/1940 3807/3696/1945 3808/3697/1946 -f 3805/3692/1941 3808/3697/1946 3809/3698/1947 -f 3806/3693/1942 3809/3698/1947 3032/3699/1948 -f 3270/3188/1437 3257/3175/1424 3810/3700/1949 -f 3807/3696/1945 3810/3700/1949 3811/3701/1950 -f 3808/3697/1946 3811/3701/1950 3812/3702/1951 -f 3809/3698/1947 3812/3702/1951 3033/3703/1952 -f 3256/3177/1426 3813/3704/1953 3810/3700/1949 -f 3813/3704/1953 3814/3705/1954 3811/3701/1950 -f 3814/3705/1954 3815/3706/1955 3812/3702/1951 -f 3815/3706/1955 3034/3710/1959 3033/3703/1952 -f 3273/3190/1439 3816/3707/1956 3813/3704/1953 -f 3816/3707/1956 3817/3708/1957 3814/3705/1954 -f 3817/3708/1957 3818/3709/1958 3815/3706/1955 -f 3818/3709/1958 3035/3714/1963 3034/3710/1959 -f 3272/3192/1441 3819/3711/1960 3816/3707/1956 -f 3819/3711/1960 3820/3712/1961 3817/3708/1957 -f 3820/3712/1961 3821/3713/1962 3818/3709/1958 -f 3821/3713/1962 3036/3719/1968 3035/3714/1963 -f 3272/3192/1441 3281/3198/1447 3822/3715/1964 -f 3819/3711/1960 3822/3715/1964 3823/3716/1965 -f 3820/3712/1961 3823/3716/1965 3824/3717/1966 -f 3821/3713/1962 3824/3717/1966 3037/3718/1967 -f 3281/3198/1447 3280/3200/1449 3825/3720/1969 -f 3822/3715/1964 3825/3720/1969 3826/3721/1970 -f 3823/3716/1965 3826/3721/1970 3827/3722/1971 -f 3824/3717/1966 3827/3722/1971 3038/3723/1972 -f 3280/3200/1449 3284/3202/1451 3828/3724/1973 -f 3825/3720/1969 3828/3724/1973 3829/3725/1974 -f 3826/3721/1970 3829/3725/1974 3830/3726/1975 -f 3827/3722/1971 3830/3726/1975 3039/3727/1976 -f 3284/3202/1451 3286/3204/1453 3831/3728/1977 -f 3828/3724/1973 3831/3728/1977 3832/3729/1978 -f 3832/3729/1978 3833/3730/1979 3830/3726/1975 -f 3833/3730/1979 3040/3734/1983 3039/3727/1976 -f 3288/3206/1455 3834/3731/1980 3831/3728/1977 -f 3834/3731/1980 3835/3732/1981 3832/3729/1978 -f 3835/3732/1981 3836/3733/1982 3833/3730/1979 -f 3836/3733/1982 3041/3738/1987 3040/3734/1983 -f 3290/3208/1457 3837/3735/1984 3834/3731/1980 -f 3837/3735/1984 3838/3736/1985 3835/3732/1981 -f 3838/3736/1985 3839/3737/1986 3836/3733/1982 -f 3839/3737/1986 3042/3742/1991 3041/3738/1987 -f 3277/3195/1444 3840/3739/1988 3837/3735/1984 -f 3840/3739/1988 3841/3740/1989 3838/3736/1985 -f 3841/3740/1989 3842/3741/1990 3839/3737/1986 -f 3842/3741/1990 3043/3747/1996 3042/3742/1991 -f 3277/3195/1444 3276/3197/1446 3843/3743/1992 -f 3840/3739/1988 3843/3743/1992 3844/3744/1993 -f 3841/3740/1989 3844/3744/1993 3845/3745/1994 -f 3842/3741/1990 3845/3745/1994 3044/3746/1995 -f 3276/3197/1446 3294/3215/1464 3478/3262/1511 -f 3843/3743/1992 3478/3262/1511 3476/3260/1509 -f 3844/3744/1993 3476/3260/1509 3474/3258/1507 -f 3845/3745/1994 3474/3258/1507 3045/3255/1504 -f 2899/2962/1211 2898/2964/1213 3846/3748/1997 -f 3479/3261/1510 3846/3748/1997 3847/3749/1998 -f 3477/3259/1508 3847/3749/1998 3848/3750/1999 -f 3475/3256/1505 3848/3750/1999 2903/3751/2000 -f 2898/2964/1213 3292/3211/1460 3849/3752/2001 -f 3846/3748/1997 3849/3752/2001 3850/3753/2002 -f 3847/3749/1998 3850/3753/2002 3851/3754/2003 -f 3848/3750/1999 3851/3754/2003 2904/3755/2004 -f 3301/3219/1468 3852/3756/2005 3849/3752/2001 -f 3852/3756/2005 3853/3757/2006 3850/3753/2002 -f 3853/3757/2006 3854/3758/2007 3851/3754/2003 -f 3854/3758/2007 2905/3762/2011 2904/3755/2004 -f 3300/3221/1470 3855/3759/2008 3852/3756/2005 -f 3855/3759/2008 3856/3760/2009 3853/3757/2006 -f 3856/3760/2009 3857/3761/2010 3854/3758/2007 -f 3857/3761/2010 2906/3766/2015 2905/3762/2011 -f 3304/3223/1472 3858/3763/2012 3855/3759/2008 -f 3858/3763/2012 3859/3764/2013 3856/3760/2009 -f 3859/3764/2013 3860/3765/2014 3857/3761/2010 -f 3860/3765/2014 2907/3770/2019 2906/3766/2015 -f 3304/3223/1472 3306/3225/1474 3861/3767/2016 -f 3861/3767/2016 3862/3768/2017 3859/3764/2013 -f 3862/3768/2017 3863/3769/2018 3860/3765/2014 -f 3863/3769/2018 2908/3775/2024 2907/3770/2019 -f 3306/3225/1474 3308/3227/1476 3864/3771/2020 -f 3861/3767/2016 3864/3771/2020 3865/3772/2021 -f 3862/3768/2017 3865/3772/2021 3866/3773/2022 -f 3863/3769/2018 3866/3773/2022 2909/3774/2023 -f 3308/3227/1476 3310/3229/1478 3867/3776/2025 -f 3864/3771/2020 3867/3776/2025 3868/3777/2026 -f 3865/3772/2021 3868/3777/2026 3869/3778/2027 -f 3866/3773/2022 3869/3778/2027 2910/3779/2028 -f 3310/3229/1478 3297/3216/1465 3870/3780/2029 -f 3867/3776/2025 3870/3780/2029 3871/3781/2030 -f 3868/3777/2026 3871/3781/2030 3872/3782/2031 -f 3869/3778/2027 3872/3782/2031 2911/3783/2032 -f 3296/3218/1467 3873/3784/2033 3870/3780/2029 -f 3873/3784/2033 3874/3785/2034 3871/3781/2030 -f 3874/3785/2034 3875/3786/2035 3872/3782/2031 -f 3875/3786/2035 2912/3791/2040 2911/3783/2032 -f 3296/3218/1467 3313/3231/1480 3876/3787/2036 -f 3873/3784/2033 3876/3787/2036 3877/3788/2037 -f 3874/3785/2034 3877/3788/2037 3878/3789/2038 -f 3875/3786/2035 3878/3789/2038 2913/3790/2039 -f 3313/3231/1480 3312/3233/1482 3879/3792/2041 -f 3876/3787/2036 3879/3792/2041 3880/3793/2042 -f 3877/3788/2037 3880/3793/2042 3881/3794/2043 -f 3878/3789/2038 3881/3794/2043 2914/3795/2044 -f 3319/3238/1487 3882/3796/2045 3879/3792/2041 -f 3882/3796/2045 3883/3801/2050 3880/3793/2042 -f 3880/3793/2042 3883/3801/2050 3884/3797/2046 -f 3881/3794/2043 3884/3797/2046 2915/3798/2047 -f 3319/3238/1487 3318/3240/1489 3885/3799/2048 -f 3882/3796/2045 3885/3799/2048 3886/3800/2049 -f 3886/3800/2049 3887/3802/2051 3884/3797/2046 -f 3887/3802/2051 2916/3806/2055 2915/3798/2047 -f 3318/3240/1489 3322/3242/1491 3888/3803/2052 -f 3888/3803/2052 3889/3804/2053 3886/3800/2049 -f 3889/3804/2053 3890/3805/2054 3887/3802/2051 -f 3890/3805/2054 2917/3809/2058 2916/3806/2055 -f 3322/3242/1491 3324/3244/1493 3891/3807/2056 -f 3891/3807/2056 3892/3812/2061 3889/3804/2053 -f 3889/3804/2053 3892/3812/2061 3893/3808/2057 -f 3893/3808/2057 2918/3814/2063 2917/3809/2058 -f 3324/3244/1493 3326/3246/1495 3894/3810/2059 -f 3891/3807/2056 3894/3810/2059 3895/3811/2060 -f 3895/3811/2060 3896/3813/2062 3893/3808/2057 -f 3896/3813/2062 2919/3818/2067 2918/3814/2063 -f 3328/3248/1497 3897/3819/2068 3894/3810/2059 -f 3894/3810/2059 3897/3819/2068 3898/3815/2064 -f 3895/3811/2060 3898/3815/2064 3899/3816/2065 -f 3896/3813/2062 3899/3816/2065 2920/3817/2066 -f 3316/3236/1485 3900/3822/2071 3897/3819/2068 -f 3897/3819/2068 3900/3822/2071 3901/3820/2069 -f 3901/3820/2069 3902/3821/2070 3899/3816/2065 -f 3902/3821/2070 2921/3826/2075 2920/3817/2066 -f 3047/2968/1217 3903/3823/2072 3900/3822/2071 -f 3903/3823/2072 3904/3824/2073 3901/3820/2069 -f 3904/3824/2073 3905/3825/2074 3902/3821/2070 -f 3905/3825/2074 2922/3827/2076 2921/3826/2075 -f 3047/2968/1217 3046/2970/1219 3481/3264/1513 -f 3481/3264/1513 3483/3266/1515 3904/3824/2073 -f 3483/3266/1515 3485/3268/1517 3905/3825/2074 -f 3905/3825/2074 3485/3268/1517 2923/3270/1519 -f 2900/3828/2077 3295/3214/1463 3906/3829/2078 -f 3907/3830/2079 3906/3829/2078 3908/3831/2080 -f 3909/3832/2081 3908/3831/2080 3910/3833/2082 -f 3911/3834/2083 3910/3833/2082 3331/3835/2084 -f 3452/3837/2086 3912/3840/2089 3913/3838/2087 -f 3912/3840/2089 3914/3842/2091 3915/3841/2090 -f 3914/3842/2091 3916/3844/2093 3917/3843/2092 -f 3916/3844/2093 3071/3012/1261 3049/2969/1218 -f 3452/3837/2086 3451/3847/2096 3918/3845/2094 -f 3918/3845/2094 3919/3846/2095 3914/3842/2091 -f 3919/3846/2095 3920/3850/2099 3916/3844/2093 -f 3916/3844/2093 3920/3850/2099 3052/2990/1239 -f 3451/3847/2096 3450/3852/2101 3921/3848/2097 -f 3921/3848/2097 3922/3854/2103 3919/3846/2095 -f 3919/3846/2095 3922/3854/2103 3923/3849/2098 -f 3923/3849/2098 3053/2972/1221 3052/2990/1239 -f 3449/3851/2100 3924/3853/2102 3921/3848/2097 -f 3924/3853/2102 3925/3857/2106 3922/3854/2103 -f 3922/3854/2103 3925/3857/2106 3926/3855/2104 -f 3923/3849/2098 3926/3855/2104 3055/2974/1223 -f 3449/3851/2100 3448/3860/2109 3927/3856/2105 -f 3927/3856/2105 3928/3858/2107 3925/3857/2106 -f 3928/3858/2107 3929/3863/2112 3926/3855/2104 -f 3926/3855/2104 3929/3863/2112 3057/2976/1225 -f 3447/3859/2108 3930/3861/2110 3927/3856/2105 -f 3930/3861/2110 3931/3866/2115 3928/3858/2107 -f 3928/3858/2107 3931/3866/2115 3932/3862/2111 -f 3929/3863/2112 3932/3862/2111 3059/2978/1227 -f 3446/3864/2113 3933/3869/2118 3930/3861/2110 -f 3930/3861/2110 3933/3869/2118 3934/3865/2114 -f 3931/3866/2115 3934/3865/2114 3935/3867/2116 -f 3935/3867/2116 3061/2980/1229 3059/2978/1227 -f 3446/3864/2113 3445/3872/2121 3936/3868/2117 -f 3933/3869/2118 3936/3868/2117 3937/3870/2119 -f 3937/3870/2119 3938/3871/2120 3935/3867/2116 -f 3938/3871/2120 3063/2982/1231 3061/2980/1229 -f 3445/3872/2121 3444/3876/2125 3939/3873/2122 -f 3936/3868/2117 3939/3873/2122 3940/3874/2123 -f 3937/3870/2119 3940/3874/2123 3941/3875/2124 -f 3938/3871/2120 3941/3875/2124 3069/3254/1503 -f 3444/3876/2125 3443/3880/2129 3942/3877/2126 -f 3939/3873/2122 3942/3877/2126 3943/3878/2127 -f 3940/3874/2123 3943/3878/2127 3944/3879/2128 -f 3941/3875/2124 3944/3879/2128 3066/2988/1237 -f 3443/3880/2129 3442/3885/2134 3945/3881/2130 -f 3942/3877/2126 3945/3881/2130 3946/3882/2131 -f 3943/3878/2127 3946/3882/2131 3947/3883/2132 -f 3944/3879/2128 3947/3883/2132 3067/2985/1234 -f 3441/3884/2133 3948/3886/2135 3945/3881/2130 -f 3948/3886/2135 3949/3887/2136 3946/3882/2131 -f 3949/3887/2136 3950/3888/2137 3947/3883/2132 -f 3950/3888/2137 3078/3009/1258 3067/2985/1234 -f 3440/3889/2138 3951/3890/2139 3948/3886/2135 -f 3951/3890/2139 3952/3891/2140 3949/3887/2136 -f 3952/3891/2140 3953/3892/2141 3950/3888/2137 -f 3953/3892/2141 3079/2995/1244 3078/3009/1258 -f 3439/3893/2142 3954/3894/2143 3951/3890/2139 -f 3954/3894/2143 3955/3895/2144 3952/3891/2140 -f 3955/3895/2144 3956/3896/2145 3953/3892/2141 -f 3956/3896/2145 3081/2997/1246 3079/2995/1244 -f 3439/3893/2142 3438/3900/2149 3957/3897/2146 -f 3954/3894/2143 3957/3897/2146 3958/3898/2147 -f 3958/3898/2147 3959/3899/2148 3956/3896/2145 -f 3959/3899/2148 3083/2999/1248 3081/2997/1246 -f 3438/3900/2149 3437/3904/2153 3960/3901/2150 -f 3957/3897/2146 3960/3901/2150 3961/3902/2151 -f 3958/3898/2147 3961/3902/2151 3962/3903/2152 -f 3959/3899/2148 3962/3903/2152 3085/3001/1250 -f 3437/3904/2153 3436/3908/2157 3963/3905/2154 -f 3960/3901/2150 3963/3905/2154 3964/3906/2155 -f 3961/3902/2151 3964/3906/2155 3965/3907/2156 -f 3962/3903/2152 3965/3907/2156 3087/3003/1252 -f 3436/3908/2157 3435/3913/2162 3966/3909/2158 -f 3963/3905/2154 3966/3909/2158 3967/3910/2159 -f 3964/3906/2155 3967/3910/2159 3968/3911/2160 -f 3965/3907/2156 3968/3911/2160 3074/3005/1254 -f 3434/3912/2161 3969/3914/2163 3966/3909/2158 -f 3969/3914/2163 3970/3915/2164 3967/3910/2159 -f 3970/3915/2164 3971/3916/2165 3968/3911/2160 -f 3971/3916/2165 3075/2992/1241 3074/3005/1254 -f 3433/3917/2166 3972/3918/2167 3969/3914/2163 -f 3972/3918/2167 3973/3919/2168 3970/3915/2164 -f 3973/3919/2168 3974/3920/2169 3971/3916/2165 -f 3974/3920/2169 3093/3134/1383 3075/2992/1241 -f 3433/3917/2166 3432/3924/2173 3975/3921/2170 -f 3972/3918/2167 3975/3921/2170 3976/3922/2171 -f 3973/3919/2168 3976/3922/2171 3977/3923/2172 -f 3974/3920/2169 3977/3923/2172 3090/3011/1260 -f 3432/3924/2173 3431/3928/2177 3978/3925/2174 -f 3975/3921/2170 3978/3925/2174 3979/3926/2175 -f 3976/3922/2171 3979/3926/2175 3980/3927/2176 -f 3977/3923/2172 3980/3927/2176 3091/3007/1256 -f 3431/3928/2177 3430/3932/2181 3981/3929/2178 -f 3978/3925/2174 3981/3929/2178 3982/3930/2179 -f 3979/3926/2175 3982/3930/2179 3983/3931/2180 -f 3980/3927/2176 3983/3931/2180 3100/3032/1281 -f 3430/3932/2181 3429/3936/2185 3984/3933/2182 -f 3981/3929/2178 3984/3933/2182 3985/3934/2183 -f 3982/3930/2179 3985/3934/2183 3986/3935/2184 -f 3983/3931/2180 3986/3935/2184 3101/3017/1266 -f 3429/3936/2185 3428/3940/2189 3987/3937/2186 -f 3984/3933/2182 3987/3937/2186 3988/3938/2187 -f 3985/3934/2183 3988/3938/2187 3989/3939/2188 -f 3986/3935/2184 3989/3939/2188 3103/3019/1268 -f 3428/3940/2189 3427/3944/2193 3990/3941/2190 -f 3990/3941/2190 3991/3946/2195 3988/3938/2187 -f 3988/3938/2187 3991/3946/2195 3992/3942/2191 -f 3992/3942/2191 3105/3021/1270 3103/3019/1268 -f 3426/3943/2192 3993/3945/2194 3990/3941/2190 -f 3993/3945/2194 3994/3947/2196 3991/3946/2195 -f 3994/3947/2196 3995/3948/2197 3992/3942/2191 -f 3995/3948/2197 3107/3023/1272 3105/3021/1270 -f 3425/3949/2198 3996/3950/2199 3993/3945/2194 -f 3996/3950/2199 3997/3951/2200 3994/3947/2196 -f 3997/3951/2200 3998/3952/2201 3995/3948/2197 -f 3998/3952/2201 3109/3025/1274 3107/3023/1272 -f 3424/3953/2202 3999/3954/2203 3996/3950/2199 -f 3999/3954/2203 4000/3955/2204 3997/3951/2200 -f 4000/3955/2204 4001/3956/2205 3998/3952/2201 -f 4001/3956/2205 3096/3027/1276 3109/3025/1274 -f 3423/3957/2206 4002/3958/2207 3999/3954/2203 -f 4002/3958/2207 4003/3959/2208 4000/3955/2204 -f 4003/3959/2208 4004/3960/2209 4001/3956/2205 -f 4004/3960/2209 3097/3014/1263 3096/3027/1276 -f 3422/3961/2210 4005/3962/2211 4002/3958/2207 -f 4005/3962/2211 4006/3963/2212 4003/3959/2208 -f 4006/3963/2212 4007/3964/2213 4004/3960/2209 -f 4007/3964/2213 3112/3031/1280 3097/3014/1263 -f 3422/3961/2210 3421/3968/2217 4008/3965/2214 -f 4005/3962/2211 4008/3965/2214 4009/3966/2215 -f 4006/3963/2212 4009/3966/2215 4010/3967/2216 -f 4007/3964/2213 4010/3967/2216 3113/3029/1278 -f 3420/3252/1501 4011/3969/2218 4008/3965/2214 -f 4011/3969/2218 4012/3970/2219 4009/3966/2215 -f 4012/3970/2219 4013/3971/2220 4010/3967/2216 -f 4013/3971/2220 3120/3052/1301 3113/3029/1278 -f 3419/3251/1500 4014/3972/2221 4011/3969/2218 -f 4014/3972/2221 4015/3973/2222 4012/3970/2219 -f 4015/3973/2222 4016/3974/2223 4013/3971/2220 -f 4016/3974/2223 3121/3037/1286 3120/3052/1301 -f 3418/3975/2224 4017/3976/2225 4014/3972/2221 -f 4017/3976/2225 4018/3977/2226 4015/3973/2222 -f 4018/3977/2226 4019/3978/2227 4016/3974/2223 -f 4019/3978/2227 3123/3039/1288 3121/3037/1286 -f 3417/3979/2228 4020/3982/2231 4017/3976/2225 -f 4017/3976/2225 4020/3982/2231 4021/3980/2229 -f 4021/3980/2229 4022/3985/2234 4019/3978/2227 -f 4019/3978/2227 4022/3985/2234 3125/3041/1290 -f 3417/3979/2228 3416/3986/2235 4023/3981/2230 -f 4020/3982/2231 4023/3981/2230 4024/3983/2232 -f 4021/3980/2229 4024/3983/2232 4025/3984/2233 -f 4022/3985/2234 4025/3984/2233 3127/3043/1292 -f 3416/3986/2235 3415/3990/2239 4026/3987/2236 -f 4023/3981/2230 4026/3987/2236 4027/3988/2237 -f 4024/3983/2232 4027/3988/2237 4028/3989/2238 -f 4025/3984/2233 4028/3989/2238 3129/3045/1294 -f 3415/3990/2239 3414/3995/2244 4029/3991/2240 -f 4026/3987/2236 4029/3991/2240 4030/3992/2241 -f 4027/3988/2237 4030/3992/2241 4031/3993/2242 -f 4028/3989/2238 4031/3993/2242 3116/3047/1296 -f 3413/3994/2243 4032/3996/2245 4029/3991/2240 -f 4032/3996/2245 4033/3997/2246 4030/3992/2241 -f 4033/3997/2246 4034/3998/2247 4031/3993/2242 -f 4034/3998/2247 3117/3034/1283 3116/3047/1296 -f 3412/3999/2248 4035/4000/2249 4032/3996/2245 -f 4035/4000/2249 4036/4001/2250 4033/3997/2246 -f 4036/4001/2250 4037/4002/2251 4034/3998/2247 -f 4037/4002/2251 3132/3051/1300 3117/3034/1283 -f 3411/4003/2252 4038/4004/2253 4035/4000/2249 -f 4038/4004/2253 4039/4005/2254 4036/4001/2250 -f 4039/4005/2254 4040/4006/2255 4037/4002/2251 -f 4040/4006/2255 3133/3049/1298 3132/3051/1300 -f 3411/4003/2252 3410/4010/2259 4041/4007/2256 -f 4038/4004/2253 4041/4007/2256 4042/4008/2257 -f 4039/4005/2254 4042/4008/2257 4043/4009/2258 -f 4040/4006/2255 4043/4009/2258 3140/3072/1321 -f 3410/4010/2259 3409/4014/2263 4044/4011/2260 -f 4041/4007/2256 4044/4011/2260 4045/4012/2261 -f 4042/4008/2257 4045/4012/2261 4046/4013/2262 -f 4043/4009/2258 4046/4013/2262 3141/3057/1306 -f 3409/4014/2263 3408/4018/2267 4047/4015/2264 -f 4044/4011/2260 4047/4015/2264 4048/4016/2265 -f 4045/4012/2261 4048/4016/2265 4049/4017/2266 -f 4046/4013/2262 4049/4017/2266 3143/3059/1308 -f 3408/4018/2267 3407/4023/2272 4050/4019/2268 -f 4047/4015/2264 4050/4019/2268 4051/4020/2269 -f 4048/4016/2265 4051/4020/2269 4052/4021/2270 -f 4049/4017/2266 4052/4021/2270 3145/3061/1310 -f 3406/4022/2271 4053/4024/2273 4050/4019/2268 -f 4053/4024/2273 4054/4025/2274 4051/4020/2269 -f 4054/4025/2274 4055/4026/2275 4052/4021/2270 -f 4055/4026/2275 3147/3063/1312 3145/3061/1310 -f 3405/4027/2276 4056/4028/2277 4053/4024/2273 -f 4056/4028/2277 4057/4029/2278 4054/4025/2274 -f 4057/4029/2278 4058/4030/2279 4055/4026/2275 -f 4058/4030/2279 3149/3065/1314 3147/3063/1312 -f 3404/4031/2280 4059/4032/2281 4056/4028/2277 -f 4059/4032/2281 4060/4033/2282 4057/4029/2278 -f 4060/4033/2282 4061/4034/2283 4058/4030/2279 -f 4061/4034/2283 3136/3067/1316 3149/3065/1314 -f 3404/4031/2280 3403/4039/2288 4062/4035/2284 -f 4059/4032/2281 4062/4035/2284 4063/4036/2285 -f 4060/4033/2282 4063/4036/2285 4064/4037/2286 -f 4061/4034/2283 4064/4037/2286 3137/3054/1303 -f 3402/4038/2287 4065/4040/2289 4062/4035/2284 -f 4065/4040/2289 4066/4041/2290 4063/4036/2285 -f 4066/4041/2290 4067/4042/2291 4064/4037/2286 -f 4067/4042/2291 3152/3071/1320 3137/3054/1303 -f 3401/4043/2292 4068/4044/2293 4065/4040/2289 -f 4068/4044/2293 4069/4045/2294 4066/4041/2290 -f 4069/4045/2294 4070/4046/2295 4067/4042/2291 -f 4070/4046/2295 3153/3069/1318 3152/3071/1320 -f 3401/4043/2292 3400/4050/2299 4071/4047/2296 -f 4068/4044/2293 4071/4047/2296 4072/4048/2297 -f 4069/4045/2294 4072/4048/2297 4073/4049/2298 -f 4070/4046/2295 4073/4049/2298 3160/3092/1341 -f 3400/4050/2299 3399/4054/2303 4074/4051/2300 -f 4071/4047/2296 4074/4051/2300 4075/4052/2301 -f 4072/4048/2297 4075/4052/2301 4076/4053/2302 -f 4073/4049/2298 4076/4053/2302 3161/3077/1326 -f 3399/4054/2303 3398/4058/2307 4077/4055/2304 -f 4074/4051/2300 4077/4055/2304 4078/4056/2305 -f 4075/4052/2301 4078/4056/2305 4079/4057/2306 -f 4076/4053/2302 4079/4057/2306 3163/3079/1328 -f 3398/4058/2307 3397/4062/2311 4080/4059/2308 -f 4080/4059/2308 4081/4064/2313 4078/4056/2305 -f 4078/4056/2305 4081/4064/2313 4082/4060/2309 -f 4082/4060/2309 3165/3081/1330 3163/3079/1328 -f 3396/4061/2310 4083/4063/2312 4080/4059/2308 -f 4083/4063/2312 4084/4065/2314 4081/4064/2313 -f 4084/4065/2314 4085/4066/2315 4082/4060/2309 -f 4085/4066/2315 3167/3083/1332 3165/3081/1330 -f 3395/4067/2316 4086/4068/2317 4083/4063/2312 -f 4086/4068/2317 4087/4069/2318 4084/4065/2314 -f 4087/4069/2318 4088/4070/2319 4085/4066/2315 -f 4088/4070/2319 3169/3085/1334 3167/3083/1332 -f 3394/4071/2320 4089/4072/2321 4086/4068/2317 -f 4089/4072/2321 4090/4073/2322 4087/4069/2318 -f 4090/4073/2322 4091/4074/2323 4088/4070/2319 -f 4091/4074/2323 3156/3087/1336 3169/3085/1334 -f 3394/4071/2320 3393/4078/2327 4092/4075/2324 -f 4089/4072/2321 4092/4075/2324 4093/4076/2325 -f 4090/4073/2322 4093/4076/2325 4094/4077/2326 -f 4091/4074/2323 4094/4077/2326 3157/3074/1323 -f 3393/4078/2327 3392/4083/2332 4095/4079/2328 -f 4092/4075/2324 4095/4079/2328 4096/4080/2329 -f 4093/4076/2325 4096/4080/2329 4097/4081/2330 -f 4094/4077/2326 4097/4081/2330 3172/3091/1340 -f 3391/4082/2331 4098/4084/2333 4095/4079/2328 -f 4098/4084/2333 4099/4085/2334 4096/4080/2329 -f 4099/4085/2334 4100/4086/2335 4097/4081/2330 -f 4100/4086/2335 3173/3089/1338 3172/3091/1340 -f 3391/4082/2331 3390/4090/2339 4101/4087/2336 -f 4098/4084/2333 4101/4087/2336 4102/4088/2337 -f 4099/4085/2334 4102/4088/2337 4103/4089/2338 -f 4100/4086/2335 4103/4089/2338 3180/3112/1361 -f 3390/4090/2339 3389/4094/2343 4104/4091/2340 -f 4101/4087/2336 4104/4091/2340 4105/4092/2341 -f 4102/4088/2337 4105/4092/2341 4106/4093/2342 -f 4103/4089/2338 4106/4093/2342 3181/3097/1346 -f 3389/4094/2343 3388/4098/2347 4107/4095/2344 -f 4104/4091/2340 4107/4095/2344 4108/4096/2345 -f 4105/4092/2341 4108/4096/2345 4109/4097/2346 -f 4106/4093/2342 4109/4097/2346 3183/3099/1348 -f 3388/4098/2347 3387/4102/2351 4110/4099/2348 -f 4110/4099/2348 4111/4104/2353 4108/4096/2345 -f 4108/4096/2345 4111/4104/2353 4112/4100/2349 -f 4112/4100/2349 3185/3101/1350 3183/3099/1348 -f 3386/4101/2350 4113/4103/2352 4110/4099/2348 -f 4113/4103/2352 4114/4105/2354 4111/4104/2353 -f 4114/4105/2354 4115/4106/2355 4112/4100/2349 -f 4115/4106/2355 3187/3103/1352 3185/3101/1350 -f 3385/4107/2356 4116/4108/2357 4113/4103/2352 -f 4116/4108/2357 4117/4109/2358 4114/4105/2354 -f 4117/4109/2358 4118/4110/2359 4115/4106/2355 -f 4118/4110/2359 3189/3105/1354 3187/3103/1352 -f 3384/4111/2360 4119/4112/2361 4116/4108/2357 -f 4119/4112/2361 4120/4113/2362 4117/4109/2358 -f 4120/4113/2362 4121/4114/2363 4118/4110/2359 -f 4121/4114/2363 3176/3107/1356 3189/3105/1354 -f 3384/4111/2360 3383/4118/2367 4122/4115/2364 -f 4119/4112/2361 4122/4115/2364 4123/4116/2365 -f 4120/4113/2362 4123/4116/2365 4124/4117/2366 -f 4121/4114/2363 4124/4117/2366 3177/3094/1343 -f 3383/4118/2367 3382/3250/1499 4125/4119/2368 -f 4122/4115/2364 4125/4119/2368 4126/4120/2369 -f 4123/4116/2365 4126/4120/2369 4127/4121/2370 -f 4124/4117/2366 4127/4121/2370 3192/3111/1360 -f 3381/4122/2371 4128/4123/2372 4125/4119/2368 -f 4128/4123/2372 4129/4124/2373 4126/4120/2369 -f 4129/4124/2373 4130/4125/2374 4127/4121/2370 -f 4130/4125/2374 3193/3109/1358 3192/3111/1360 -f 3381/4122/2371 3380/4129/2378 4131/4126/2375 -f 4128/4123/2372 4131/4126/2375 4132/4127/2376 -f 4129/4124/2373 4132/4127/2376 4133/4128/2377 -f 4130/4125/2374 4133/4128/2377 3200/3131/1380 -f 3380/4129/2378 3379/4133/2382 4134/4130/2379 -f 4131/4126/2375 4134/4130/2379 4135/4131/2380 -f 4132/4127/2376 4135/4131/2380 4136/4132/2381 -f 4133/4128/2377 4136/4132/2381 3201/3117/1366 -f 3379/4133/2382 3378/4138/2387 4137/4134/2383 -f 4134/4130/2379 4137/4134/2383 4138/4135/2384 -f 4135/4131/2380 4138/4135/2384 4139/4136/2385 -f 4136/4132/2381 4139/4136/2385 3203/3119/1368 -f 3377/4137/2386 4140/4142/2391 4137/4134/2383 -f 4137/4134/2383 4140/4142/2391 4141/4139/2388 -f 4141/4139/2388 4142/4140/2389 4139/4136/2385 -f 4142/4140/2389 3205/3121/1370 3203/3119/1368 -f 3376/4141/2390 4143/4143/2392 4140/4142/2391 -f 4143/4143/2392 4144/4144/2393 4141/4139/2388 -f 4144/4144/2393 4145/4145/2394 4142/4140/2389 -f 4145/4145/2394 3207/3123/1372 3205/3121/1370 -f 3375/4146/2395 4146/4147/2396 4143/4143/2392 -f 4146/4147/2396 4147/4148/2397 4144/4144/2393 -f 4147/4148/2397 4148/4149/2398 4145/4145/2394 -f 4148/4149/2398 3209/3125/1374 3207/3123/1372 -f 3374/4150/2399 4149/4151/2400 4146/4147/2396 -f 4149/4151/2400 4150/4152/2401 4147/4148/2397 -f 4150/4152/2401 4151/4153/2402 4148/4149/2398 -f 4151/4153/2402 3196/3127/1376 3209/3125/1374 -f 3374/4150/2399 3373/4157/2406 4152/4154/2403 -f 4149/4151/2400 4152/4154/2403 4153/4155/2404 -f 4150/4152/2401 4153/4155/2404 4154/4156/2405 -f 4151/4153/2402 4154/4156/2405 3197/3114/1363 -f 3373/4157/2406 3372/4162/2411 4155/4158/2407 -f 4152/4154/2403 4155/4158/2407 4156/4159/2408 -f 4153/4155/2404 4156/4159/2408 4157/4160/2409 -f 4154/4156/2405 4157/4160/2409 3215/3213/1462 -f 3371/4161/2410 4158/4163/2412 4155/4158/2407 -f 4158/4163/2412 4159/4164/2413 4156/4159/2408 -f 4159/4164/2413 4160/4165/2414 4157/4160/2409 -f 4160/4165/2414 3212/3133/1382 3215/3213/1462 -f 3370/4166/2415 4161/4167/2416 4158/4163/2412 -f 4161/4167/2416 4162/4168/2417 4159/4164/2413 -f 4162/4168/2417 4163/4169/2418 4160/4165/2414 -f 4163/4169/2418 3213/3129/1378 3212/3133/1382 -f 3370/4166/2415 3369/4173/2422 4164/4170/2419 -f 4161/4167/2416 4164/4170/2419 4165/4171/2420 -f 4162/4168/2417 4165/4171/2420 4166/4172/2421 -f 4163/4169/2418 4166/4172/2421 3222/3154/1403 -f 3369/4173/2422 3368/4177/2426 4167/4174/2423 -f 4164/4170/2419 4167/4174/2423 4168/4175/2424 -f 4165/4171/2420 4168/4175/2424 4169/4176/2425 -f 4166/4172/2421 4169/4176/2425 3223/3139/1388 -f 3368/4177/2426 3367/4182/2431 4170/4178/2427 -f 4167/4174/2423 4170/4178/2427 4171/4179/2428 -f 4168/4175/2424 4171/4179/2428 4172/4180/2429 -f 4169/4176/2425 4172/4180/2429 3225/3141/1390 -f 3366/4181/2430 4173/4183/2432 4170/4178/2427 -f 4173/4183/2432 4174/4187/2436 4171/4179/2428 -f 4171/4179/2428 4174/4187/2436 4175/4184/2433 -f 4175/4184/2433 3227/3143/1392 3225/3141/1390 -f 3365/4185/2434 4176/4186/2435 4173/4183/2432 -f 4176/4186/2435 4177/4188/2437 4174/4187/2436 -f 4177/4188/2437 4178/4189/2438 4175/4184/2433 -f 4178/4189/2438 3229/3145/1394 3227/3143/1392 -f 3364/4190/2439 4179/4191/2440 4176/4186/2435 -f 4179/4191/2440 4180/4192/2441 4177/4188/2437 -f 4180/4192/2441 4181/4193/2442 4178/4189/2438 -f 4181/4193/2442 3231/3147/1396 3229/3145/1394 -f 3363/4194/2443 4182/4195/2444 4179/4191/2440 -f 4182/4195/2444 4183/4196/2445 4180/4192/2441 -f 4183/4196/2445 4184/4197/2446 4181/4193/2442 -f 4184/4197/2446 3218/3149/1398 3231/3147/1396 -f 3363/4194/2443 3362/4202/2451 4185/4198/2447 -f 4182/4195/2444 4185/4198/2447 4186/4199/2448 -f 4183/4196/2445 4186/4199/2448 4187/4200/2449 -f 4184/4197/2446 4187/4200/2449 3219/3136/1385 -f 3361/4201/2450 4188/4203/2452 4185/4198/2447 -f 4188/4203/2452 4189/4204/2453 4186/4199/2448 -f 4189/4204/2453 4190/4205/2454 4187/4200/2449 -f 4190/4205/2454 3234/3153/1402 3219/3136/1385 -f 3360/4206/2455 4191/4207/2456 4188/4203/2452 -f 4191/4207/2456 4192/4208/2457 4189/4204/2453 -f 4192/4208/2457 4193/4209/2458 4190/4205/2454 -f 4193/4209/2458 3235/3151/1400 3234/3153/1402 -f 3360/4206/2455 3359/4213/2462 4194/4210/2459 -f 4191/4207/2456 4194/4210/2459 4195/4211/2460 -f 4192/4208/2457 4195/4211/2460 4196/4212/2461 -f 4193/4209/2458 4196/4212/2461 3242/3174/1423 -f 3359/4213/2462 3358/4217/2466 4197/4214/2463 -f 4194/4210/2459 4197/4214/2463 4198/4215/2464 -f 4195/4211/2460 4198/4215/2464 4199/4216/2465 -f 4196/4212/2461 4199/4216/2465 3243/3159/1408 -f 3358/4217/2466 3357/4222/2471 4200/4218/2467 -f 4197/4214/2463 4200/4218/2467 4201/4219/2468 -f 4198/4215/2464 4201/4219/2468 4202/4220/2469 -f 4199/4216/2465 4202/4220/2469 3245/3161/1410 -f 3356/4221/2470 4203/4226/2475 4200/4218/2467 -f 4200/4218/2467 4203/4226/2475 4204/4223/2472 -f 4201/4219/2468 4204/4223/2472 4205/4224/2473 -f 4202/4220/2469 4205/4224/2473 3247/3163/1412 -f 3355/4225/2474 4206/4227/2476 4203/4226/2475 -f 4206/4227/2476 4207/4228/2477 4204/4223/2472 -f 4207/4228/2477 4208/4229/2478 4205/4224/2473 -f 4208/4229/2478 3249/3165/1414 3247/3163/1412 -f 3354/4230/2479 4209/4231/2480 4206/4227/2476 -f 4209/4231/2480 4210/4232/2481 4207/4228/2477 -f 4210/4232/2481 4211/4233/2482 4208/4229/2478 -f 4211/4233/2482 3251/3167/1416 3249/3165/1414 -f 3353/4234/2483 4212/4235/2484 4209/4231/2480 -f 4212/4235/2484 4213/4236/2485 4210/4232/2481 -f 4213/4236/2485 4214/4237/2486 4211/4233/2482 -f 4214/4237/2486 3238/3169/1418 3251/3167/1416 -f 3353/4234/2483 3352/4241/2490 4215/4238/2487 -f 4212/4235/2484 4215/4238/2487 4216/4239/2488 -f 4213/4236/2485 4216/4239/2488 4217/4240/2489 -f 4214/4237/2486 4217/4240/2489 3239/3156/1405 -f 3352/4241/2490 3351/4246/2495 4218/4242/2491 -f 4215/4238/2487 4218/4242/2491 4219/4243/2492 -f 4216/4239/2488 4219/4243/2492 4220/4244/2493 -f 4217/4240/2489 4220/4244/2493 3254/3173/1422 -f 3350/4245/2494 4221/4247/2496 4218/4242/2491 -f 4221/4247/2496 4222/4248/2497 4219/4243/2492 -f 4222/4248/2497 4223/4249/2498 4220/4244/2493 -f 4223/4249/2498 3255/3171/1420 3254/3173/1422 -f 3350/4245/2494 3349/4253/2502 4224/4250/2499 -f 4221/4247/2496 4224/4250/2499 4225/4251/2500 -f 4222/4248/2497 4225/4251/2500 4226/4252/2501 -f 4223/4249/2498 4226/4252/2501 3262/3194/1443 -f 3349/4253/2502 3348/4257/2506 4227/4254/2503 -f 4224/4250/2499 4227/4254/2503 4228/4255/2504 -f 4225/4251/2500 4228/4255/2504 4229/4256/2505 -f 4226/4252/2501 4229/4256/2505 3263/3179/1428 -f 3348/4257/2506 3347/4262/2511 4230/4258/2507 -f 4227/4254/2503 4230/4258/2507 4231/4259/2508 -f 4228/4255/2504 4231/4259/2508 4232/4260/2509 -f 4229/4256/2505 4232/4260/2509 3265/3181/1430 -f 3346/4261/2510 4233/4266/2515 4230/4258/2507 -f 4230/4258/2507 4233/4266/2515 4234/4263/2512 -f 4234/4263/2512 4235/4264/2513 4232/4260/2509 -f 4235/4264/2513 3267/3183/1432 3265/3181/1430 -f 3345/4265/2514 4236/4267/2516 4233/4266/2515 -f 4236/4267/2516 4237/4268/2517 4234/4263/2512 -f 4237/4268/2517 4238/4269/2518 4235/4264/2513 -f 4238/4269/2518 3269/3185/1434 3267/3183/1432 -f 3344/4270/2519 4239/4271/2520 4236/4267/2516 -f 4239/4271/2520 4240/4272/2521 4237/4268/2517 -f 4240/4272/2521 4241/4273/2522 4238/4269/2518 -f 4241/4273/2522 3271/3187/1436 3269/3185/1434 -f 3343/4274/2523 4242/4275/2524 4239/4271/2520 -f 4242/4275/2524 4243/4276/2525 4240/4272/2521 -f 4243/4276/2525 4244/4277/2526 4241/4273/2522 -f 4244/4277/2526 3258/3189/1438 3271/3187/1436 -f 3343/4274/2523 3342/4281/2530 4245/4278/2527 -f 4242/4275/2524 4245/4278/2527 4246/4279/2528 -f 4243/4276/2525 4246/4279/2528 4247/4280/2529 -f 4244/4277/2526 4247/4280/2529 3259/3176/1425 -f 3342/4281/2530 3341/4285/2534 4248/4282/2531 -f 4245/4278/2527 4248/4282/2531 4249/4283/2532 -f 4246/4279/2528 4249/4283/2532 4250/4284/2533 -f 4247/4280/2529 4250/4284/2533 3274/3193/1442 -f 3341/4285/2534 3340/4290/2539 4251/4286/2535 -f 4248/4282/2531 4251/4286/2535 4252/4287/2536 -f 4249/4283/2532 4252/4287/2536 4253/4288/2537 -f 4250/4284/2533 4253/4288/2537 3275/3191/1440 -f 3339/4289/2538 4254/4291/2540 4251/4286/2535 -f 4254/4291/2540 4255/4292/2541 4252/4287/2536 -f 4255/4292/2541 4256/4293/2542 4253/4288/2537 -f 4256/4293/2542 3282/3212/1461 3275/3191/1440 -f 3338/4294/2543 4257/4295/2544 4254/4291/2540 -f 4257/4295/2544 4258/4296/2545 4255/4292/2541 -f 4258/4296/2545 4259/4297/2546 4256/4293/2542 -f 4259/4297/2546 3283/3199/1448 3282/3212/1461 -f 3337/4298/2547 4260/4299/2548 4257/4295/2544 -f 4260/4299/2548 4261/4300/2549 4258/4296/2545 -f 4261/4300/2549 4262/4301/2550 4259/4297/2546 -f 4262/4301/2550 3285/3201/1450 3283/3199/1448 -f 3337/4298/2547 3336/4305/2554 4263/4302/2551 -f 4260/4299/2548 4263/4302/2551 4264/4303/2552 -f 4264/4303/2552 4265/4304/2553 4262/4301/2550 -f 4265/4304/2553 3287/3203/1452 3285/3201/1450 -f 3336/4305/2554 3335/4309/2558 4266/4306/2555 -f 4263/4302/2551 4266/4306/2555 4267/4307/2556 -f 4264/4303/2552 4267/4307/2556 4268/4308/2557 -f 4265/4304/2553 4268/4308/2557 3289/3205/1454 -f 3335/4309/2558 3334/4313/2562 4269/4310/2559 -f 4266/4306/2555 4269/4310/2559 4270/4311/2560 -f 4267/4307/2556 4270/4311/2560 4271/4312/2561 -f 4268/4308/2557 4271/4312/2561 3291/3207/1456 -f 3334/4313/2562 3333/4318/2567 4272/4314/2563 -f 4269/4310/2559 4272/4314/2563 4273/4315/2564 -f 4270/4311/2560 4273/4315/2564 4274/4316/2565 -f 4271/4312/2561 4274/4316/2565 3278/3209/1458 -f 3332/4317/2566 4275/4319/2568 4272/4314/2563 -f 4275/4319/2568 4276/4320/2569 4273/4315/2564 -f 4276/4320/2569 4277/4321/2570 4274/4316/2565 -f 4277/4321/2570 3279/3196/1445 3278/3209/1458 -f 3331/3835/2084 3910/3833/2082 4275/4319/2568 -f 3910/3833/2082 3908/3831/2080 4276/4320/2569 -f 3908/3831/2080 3906/3829/2078 4277/4321/2570 -f 3906/3829/2078 3295/3214/1463 3279/3196/1445 -f 3473/4322/2571 4278/4323/2572 3911/3834/2083 -f 4278/4323/2572 4279/4324/2573 3909/3832/2081 -f 4279/4324/2573 4280/4325/2574 3907/3830/2079 -f 4280/4325/2574 2901/2963/1212 2900/3828/2077 -f 3472/4326/2575 4281/4327/2576 4278/4323/2572 -f 4281/4327/2576 4282/4328/2577 4279/4324/2573 -f 4282/4328/2577 4283/4329/2578 4280/4325/2574 -f 4283/4329/2578 3293/3210/1459 2901/2963/1212 -f 3472/4326/2575 3471/4333/2582 4284/4330/2579 -f 4281/4327/2576 4284/4330/2579 4285/4331/2580 -f 4282/4328/2577 4285/4331/2580 4286/4332/2581 -f 4283/4329/2578 4286/4332/2581 3302/3235/1484 -f 3471/4333/2582 3470/4337/2586 4287/4334/2583 -f 4284/4330/2579 4287/4334/2583 4288/4335/2584 -f 4285/4331/2580 4288/4335/2584 4289/4336/2585 -f 4286/4332/2581 4289/4336/2585 3303/3220/1469 -f 3470/4337/2586 3469/4341/2590 4290/4338/2587 -f 4287/4334/2583 4290/4338/2587 4291/4339/2588 -f 4288/4335/2584 4291/4339/2588 4292/4340/2589 -f 4289/4336/2585 4292/4340/2589 3305/3222/1471 -f 3469/4341/2590 3468/4346/2595 4293/4342/2591 -f 4290/4338/2587 4293/4342/2591 4294/4343/2592 -f 4291/4339/2588 4294/4343/2592 4295/4344/2593 -f 4292/4340/2589 4295/4344/2593 3307/3224/1473 -f 3467/4345/2594 4296/4347/2596 4293/4342/2591 -f 4296/4347/2596 4297/4348/2597 4294/4343/2592 -f 4297/4348/2597 4298/4349/2598 4295/4344/2593 -f 4298/4349/2598 3309/3226/1475 3307/3224/1473 -f 3466/4350/2599 4299/4351/2600 4296/4347/2596 -f 4299/4351/2600 4300/4352/2601 4297/4348/2597 -f 4300/4352/2601 4301/4353/2602 4298/4349/2598 -f 4301/4353/2602 3311/3228/1477 3309/3226/1475 -f 3465/4354/2603 4302/4355/2604 4299/4351/2600 -f 4302/4355/2604 4303/4356/2605 4300/4352/2601 -f 4303/4356/2605 4304/4357/2606 4301/4353/2602 -f 4304/4357/2606 3298/3230/1479 3311/3228/1477 -f 3465/4354/2603 3464/4362/2611 4305/4358/2607 -f 4302/4355/2604 4305/4358/2607 4306/4359/2608 -f 4303/4356/2605 4306/4359/2608 4307/4360/2609 -f 4304/4357/2606 4307/4360/2609 3299/3217/1466 -f 3463/4361/2610 4308/4363/2612 4305/4358/2607 -f 4308/4363/2612 4309/4364/2613 4306/4359/2608 -f 4309/4364/2613 4310/4365/2614 4307/4360/2609 -f 4310/4365/2614 3314/3234/1483 3299/3217/1466 -f 3462/4366/2615 4311/4367/2616 4308/4363/2612 -f 4311/4367/2616 4312/4368/2617 4309/4364/2613 -f 4312/4368/2617 4313/4369/2618 4310/4365/2614 -f 4313/4369/2618 3315/3232/1481 3314/3234/1483 -f 3461/4370/2619 4314/4373/2622 4311/4367/2616 -f 4311/4367/2616 4314/4373/2622 4315/4371/2620 -f 4315/4371/2620 4316/4375/2624 4313/4369/2618 -f 4313/4369/2618 4316/4375/2624 3320/3253/1502 -f 3461/4370/2619 3460/4376/2625 4317/4372/2621 -f 4314/4373/2622 4317/4372/2621 4318/4374/2623 -f 4318/4374/2623 4319/4380/2629 4316/4375/2624 -f 4316/4375/2624 4319/4380/2629 3321/3239/1488 -f 3460/4376/2625 3459/4381/2630 4320/4377/2626 -f 4317/4372/2621 4320/4377/2626 4321/4378/2627 -f 4318/4374/2623 4321/4378/2627 4322/4379/2628 -f 4322/4379/2628 3323/3241/1490 3321/3239/1488 -f 3459/4381/2630 3458/4384/2633 4323/4382/2631 -f 4323/4382/2631 4324/4386/2635 4321/4378/2627 -f 4321/4378/2627 4324/4386/2635 4325/4383/2632 -f 4325/4383/2632 3325/3243/1492 3323/3241/1490 -f 3458/4384/2633 3457/4389/2638 4326/4385/2634 -f 4326/4385/2634 4327/4387/2636 4324/4386/2635 -f 4327/4387/2636 4328/4392/2641 4325/4383/2632 -f 4325/4383/2632 4328/4392/2641 3327/3245/1494 -f 3456/4388/2637 4329/4390/2639 4326/4385/2634 -f 4329/4390/2639 4330/4391/2640 4327/4387/2636 -f 4330/4391/2640 4331/4395/2644 4328/4392/2641 -f 4328/4392/2641 4331/4395/2644 3329/3247/1496 -f 3456/4388/2637 3455/4396/2645 4332/4393/2642 -f 4332/4393/2642 4333/4394/2643 4330/4391/2640 -f 4333/4394/2643 4334/4400/2649 4331/4395/2644 -f 4331/4395/2644 4334/4400/2649 3317/3249/1498 -f 3455/4396/2645 3454/4401/2650 4335/4397/2646 -f 4332/4393/2642 4335/4397/2646 4336/4398/2647 -f 4333/4394/2643 4336/4398/2647 4337/4399/2648 -f 4334/4400/2649 4337/4399/2648 3048/3237/1486 -f 3453/3839/2088 3913/3838/2087 4335/4397/2646 -f 4335/4397/2646 3913/3838/2087 3915/3841/2090 -f 3915/3841/2090 3917/3843/2092 4337/4399/2648 -f 3917/3843/2092 3049/2969/1218 3048/3237/1486 -f 2899/2962/1211 3294/3215/1464 3295/3214/1463 +f 1472/1483/549 1473/1484/549 1474/1485/549 +f 1475/1486/550 1476/1487/549 1477/1488/549 +f 1478/1489/551 1479/1490/551 1480/1491/552 +f 1481/1492/553 1482/1493/553 1483/1494/553 +f 1484/1495/554 1485/1496/554 1486/1497/554 +f 1487/1498/555 1488/1499/556 1489/1500/557 +f 1490/1501/558 1491/1502/551 1478/1489/551 +f 1490/1501/558 1480/1491/552 1492/1503/559 +f 1493/1504/560 1494/1505/560 1495/1506/560 +f 1496/1507/561 1497/1508/561 1498/1509/562 +f 1499/1510/554 1500/1511/554 1501/1512/554 +f 1502/1513/563 1503/1514/563 1504/1515/563 +f 1490/1501/558 1478/1489/551 1480/1491/552 +f 1505/1516/564 1506/1517/564 1507/1518/564 +f 1508/1519/565 1509/1520/565 1510/1521/565 +f 1511/1522/554 1512/1523/554 1513/1524/554 +f 1514/1525/566 1515/1526/567 1516/1527/568 +f 1517/1528/564 1518/1529/564 1519/1530/564 +f 1520/1531/564 1521/1532/564 1522/1533/564 +f 1522/1533/564 1523/1534/564 1524/1535/564 +f 1525/1536/569 1526/1537/570 1527/1538/570 +f 1528/1539/571 1529/1540/570 1525/1536/569 +f 1517/1528/564 1519/1530/564 1530/1541/564 +f 1531/1542/572 1532/1543/572 1533/1544/572 +f 1534/1545/554 1535/1546/554 1536/1547/554 +f 1534/1545/554 1536/1547/554 1537/1548/554 +f 1538/1549/564 1522/1533/564 1524/1535/564 +f 1521/1532/564 1523/1534/564 1522/1533/564 +f 1523/1534/564 1539/1550/564 1524/1535/564 +f 1526/1537/570 1540/1551/570 1527/1538/570 +f 1529/1540/570 1526/1537/570 1525/1536/569 +f 1519/1530/564 1541/1552/564 1530/1541/564 +f 1542/1553/572 1543/1554/572 1532/1543/572 +f 1532/1543/572 1543/1554/572 1533/1544/572 +f 1535/1546/554 1544/1555/554 1536/1547/554 +f 1536/1547/554 1545/1556/554 1537/1548/554 +f 1546/1557/573 1547/1558/574 1548/1559/575 +f 1549/1560/576 1550/1561/576 1528/1539/571 +f 1549/1560/576 1551/1562/577 1552/1563/578 +f 1551/1562/577 1553/1564/579 1554/1565/580 +f 1553/1564/579 1548/1559/575 1547/1558/574 +f 1555/1566/581 1548/1559/575 1475/1486/550 +f 1556/1567/570 1527/1538/570 1540/1551/570 +f 1557/1568/582 1558/1569/582 1559/1570/582 +f 1560/1571/582 1561/1572/582 1562/1573/582 +f 1563/1574/570 1564/1575/570 1565/1576/570 +f 1566/1577/554 1567/1578/554 1568/1579/554 +f 1569/1580/554 1570/1581/554 1571/1582/554 +f 1572/1583/582 1573/1584/582 1574/1585/582 +f 1520/1531/564 1575/1586/564 1521/1532/564 +f 1540/1551/570 1526/1537/570 1576/1587/570 +f 1518/1529/564 1577/1588/564 1519/1530/564 +f 1531/1542/572 1578/1589/572 1532/1543/572 +f 1534/1545/554 1579/1590/554 1535/1546/554 +f 1580/1591/583 1581/1592/584 1582/1593/585 +f 1583/1594/586 1584/1595/587 1585/1596/588 +f 1586/1597/564 1587/1598/564 1588/1599/589 +f 1589/1600/564 1590/1601/564 1591/1602/564 +f 1592/1603/590 1585/1596/588 1584/1595/587 +f 1593/1604/572 1594/1605/572 1595/1606/572 +f 1596/1607/572 1597/1608/572 1598/1609/572 +f 1599/1610/572 1600/1611/572 1601/1612/572 +f 1602/1613/591 1603/1614/592 1604/1615/593 +f 1605/1616/582 1606/1617/582 1607/1618/582 +f 1581/1592/584 1608/1619/594 1609/1620/595 +f 1600/1621/572 1610/1622/572 1611/1623/572 +f 1603/1614/592 1612/1624/596 1613/1625/597 +f 1606/1617/582 1614/1626/582 1615/1627/582 +f 1608/1619/594 1616/1628/598 1617/1629/599 +f 1610/1630/572 1618/1631/572 1619/1632/572 +f 1612/1624/596 1620/1633/600 1621/1634/601 +f 1614/1626/582 1622/1635/582 1623/1636/582 +f 1616/1628/598 1624/1637/602 1625/1638/603 +f 1618/1631/572 1626/1639/572 1627/1640/572 +f 1620/1641/600 1628/1642/604 1629/1643/605 +f 1622/1635/582 1630/1644/582 1631/1645/582 +f 1632/1646/606 1633/1647/607 1634/1648/608 +f 1626/1639/572 1635/1649/572 1636/1650/572 +f 1637/1651/609 1638/1652/610 1639/1653/611 +f 1630/1644/582 1640/1654/582 1641/1655/582 +f 1633/1656/607 1642/1657/612 1643/1658/613 +f 1635/1649/572 1644/1659/572 1645/1660/572 +f 1638/1652/610 1646/1661/614 1647/1662/615 +f 1640/1654/582 1648/1663/582 1649/1664/582 +f 1642/1657/612 1650/1665/616 1651/1666/617 +f 1644/1659/572 1652/1667/572 1653/1668/572 +f 1646/1661/614 1654/1669/618 1655/1670/619 +f 1648/1663/582 1656/1671/582 1657/1672/582 +f 1650/1673/616 1658/1674/591 1659/1675/620 +f 1652/1667/572 1660/1676/572 1661/1677/572 +f 1654/1669/618 1662/1678/583 1663/1679/621 +f 1656/1671/582 1664/1680/582 1665/1681/582 +f 1658/1674/591 1666/1682/622 1667/1683/593 +f 1660/1676/572 1668/1684/572 1669/1685/572 +f 1662/1678/583 1670/1686/584 1671/1687/585 +f 1664/1680/582 1672/1688/582 1673/1689/582 +f 1666/1682/622 1674/1690/596 1675/1691/597 +f 1668/1684/572 1676/1692/572 1677/1693/572 +f 1670/1686/584 1678/1694/594 1679/1695/595 +f 1672/1688/582 1680/1696/582 1681/1697/582 +f 1674/1690/596 1682/1698/600 1683/1699/601 +f 1676/1692/572 1684/1700/572 1685/1701/572 +f 1678/1694/594 1686/1702/623 1687/1703/624 +f 1680/1696/582 1688/1704/582 1689/1705/582 +f 1682/1698/600 1690/1706/604 1691/1707/625 +f 1684/1700/572 1692/1708/572 1693/1709/572 +f 1686/1702/623 1694/1710/602 1695/1711/626 +f 1688/1704/582 1696/1712/582 1697/1713/582 +f 1690/1706/604 1698/1714/627 1699/1715/628 +f 1692/1708/572 1700/1716/572 1701/1717/572 +f 1694/1718/602 1702/1719/607 1703/1720/608 +f 1696/1712/582 1704/1721/582 1705/1722/582 +f 1698/1714/627 1706/1723/614 1707/1724/615 +f 1700/1716/572 1708/1725/572 1709/1726/572 +f 1702/1719/607 1710/1727/612 1711/1728/613 +f 1704/1721/582 1712/1729/582 1713/1730/582 +f 1706/1723/614 1714/1731/618 1715/1732/619 +f 1708/1725/572 1716/1733/572 1717/1734/572 +f 1710/1727/612 1718/1735/616 1719/1736/629 +f 1712/1729/582 1720/1737/582 1721/1738/582 +f 1714/1731/618 1580/1591/583 1722/1739/621 +f 1716/1733/572 1599/1610/572 1723/1740/572 +f 1718/1735/616 1602/1613/591 1724/1741/620 +f 1720/1737/582 1605/1616/582 1725/1742/582 +f 1726/1743/554 1727/1744/554 1728/1745/554 +f 1727/1744/554 1729/1746/554 1730/1747/554 +f 1729/1746/554 1731/1748/554 1732/1749/554 +f 1731/1748/554 1733/1750/554 1734/1751/554 +f 1733/1750/554 1735/1752/554 1736/1753/554 +f 1735/1752/554 1737/1754/554 1738/1755/554 +f 1737/1754/554 1739/1756/554 1740/1757/554 +f 1739/1756/554 1741/1758/554 1742/1759/554 +f 1741/1758/554 1743/1760/554 1744/1761/554 +f 1743/1760/554 1745/1762/554 1746/1763/554 +f 1745/1762/554 1747/1764/554 1748/1765/554 +f 1747/1764/554 1726/1743/554 1749/1766/554 +f 1750/1767/630 1751/1768/631 1752/1769/632 +f 1753/1770/633 1754/1771/634 1755/1772/635 +f 1756/1773/554 1757/1774/554 1758/1775/554 +f 1759/1776/636 1750/1767/630 1760/1777/637 +f 1754/1771/634 1761/1778/638 1762/1779/639 +f 1757/1774/554 1763/1780/554 1758/1775/554 +f 1764/1781/640 1759/1776/636 1765/1782/641 +f 1761/1778/638 1766/1783/642 1767/1784/643 +f 1763/1780/554 1768/1785/554 1758/1775/554 +f 1769/1786/644 1770/1787/645 1771/1788/646 +f 1766/1783/642 1772/1789/647 1773/1790/648 +f 1768/1785/554 1774/1791/554 1758/1775/554 +f 1775/1792/649 1769/1786/644 1776/1793/650 +f 1772/1789/647 1777/1794/651 1778/1795/652 +f 1774/1791/554 1779/1796/554 1758/1775/554 +f 1780/1797/653 1775/1792/649 1781/1798/654 +f 1777/1794/651 1782/1799/655 1783/1800/656 +f 1779/1796/554 1784/1801/554 1758/1775/554 +f 1785/1802/651 1780/1797/653 1786/1803/657 +f 1782/1799/655 1787/1804/658 1788/1805/654 +f 1784/1801/554 1789/1806/554 1758/1775/554 +f 1790/1807/659 1785/1802/651 1791/1808/660 +f 1787/1804/658 1792/1809/644 1793/1810/661 +f 1789/1806/554 1794/1811/554 1758/1775/554 +f 1795/1812/662 1790/1807/659 1796/1813/648 +f 1792/1809/644 1797/1814/645 1798/1815/663 +f 1794/1811/554 1799/1816/554 1758/1775/554 +f 1800/1817/638 1795/1812/662 1801/1818/664 +f 1802/1819/640 1803/1820/665 1804/1821/641 +f 1799/1816/554 1805/1822/554 1758/1775/554 +f 1806/1823/666 1800/1817/638 1807/1824/667 +f 1803/1820/665 1808/1825/630 1809/1826/668 +f 1805/1822/554 1810/1827/554 1758/1775/554 +f 1751/1768/631 1806/1823/666 1811/1828/635 +f 1808/1825/630 1753/1770/633 1812/1829/669 +f 1810/1827/554 1756/1773/554 1758/1775/554 +f 1813/1830/670 1814/1831/671 1815/1832/672 +f 1816/1833/673 1817/1834/674 1818/1835/675 +f 1819/1836/676 1820/1837/677 1821/1838/678 +f 1822/1839/679 1823/1840/680 1824/1841/681 +f 1825/1842/682 1818/1835/675 1826/1843/683 +f 1827/1844/684 1818/1835/675 1825/1842/682 +f 1828/1845/685 1829/1846/686 1830/1847/687 +f 1831/1848/688 1832/1849/689 1828/1845/685 +f 1819/1836/676 1833/1850/690 1828/1845/685 +f 1834/1851/691 1835/1852/692 1815/1832/672 +f 1835/1852/692 1834/1851/691 1836/1853/693 +f 1835/1852/692 1837/1854/694 1838/1855/695 +f 1839/1856/696 1840/1857/697 1830/1847/687 +f 1841/1858/698 1839/1856/696 1842/1859/699 +f 1822/1839/679 1843/1860/700 1823/1840/680 +f 1844/1861/701 1845/1862/702 1826/1843/683 +f 1846/1863/703 1845/1862/702 1844/1861/701 +f 1847/1864/704 1845/1862/702 1848/1865/705 +f 1849/1866/706 1850/1867/707 1851/1868/708 +f 1852/1869/709 1851/1868/708 1850/1867/707 +f 1825/1842/682 1826/1843/683 1853/1870/710 +f 1854/1871/711 1824/1841/681 1855/1872/712 +f 1856/1873/713 1827/1844/684 1854/1871/711 +f 1822/1839/679 1824/1841/681 1857/1874/714 +f 1843/1860/700 1822/1839/679 1857/1874/714 +f 1857/1874/714 1824/1841/681 1854/1871/711 +f 1858/1875/715 1859/1876/716 1860/1877/717 +f 1845/1862/702 1853/1870/710 1826/1843/683 +f 1854/1871/711 1853/1870/710 1861/1878/718 +f 1862/1879/719 1863/1880/720 1847/1864/704 +f 1863/1880/720 1861/1878/718 1845/1862/702 +f 1857/1874/714 1863/1880/720 1862/1879/719 +f 1861/1878/718 1863/1880/720 1857/1874/714 +f 1860/1877/717 1862/1879/719 1858/1875/715 +f 1849/1866/706 1864/1881/721 1862/1879/719 +f 1865/1882/722 1848/1865/705 1846/1863/703 +f 1866/1883/723 1865/1882/722 1867/1884/724 +f 1868/1885/725 1814/1831/671 1813/1830/670 +f 1869/1886/726 1868/1885/725 1870/1887/727 +f 1840/1857/697 1820/1837/677 1819/1836/676 +f 1871/1888/728 1872/1889/729 1873/1890/730 +f 1848/1865/705 1845/1862/702 1846/1863/703 +f 1861/1878/718 1853/1870/710 1845/1862/702 +f 1827/1844/684 1825/1842/682 1853/1870/710 +f 1853/1870/710 1854/1871/711 1827/1844/684 +f 1856/1873/713 1854/1871/711 1855/1872/712 +f 1843/1860/700 1860/1877/717 1859/1876/716 +f 1864/1881/721 1858/1875/715 1862/1879/719 +f 1850/1867/707 1849/1866/706 1862/1879/719 +f 1873/1890/730 1823/1840/680 1841/1858/698 +f 1843/1860/700 1859/1876/716 1823/1840/680 +f 1823/1840/680 1859/1876/716 1840/1857/697 +f 1864/1881/721 1820/1837/677 1858/1875/715 +f 1849/1866/706 1820/1837/677 1864/1881/721 +f 1849/1866/706 1851/1868/708 1820/1837/677 +f 1851/1868/708 1852/1869/709 1874/1891/731 +f 1848/1865/705 1865/1882/722 1852/1869/709 +f 1852/1869/709 1866/1883/723 1869/1886/726 +f 1875/1892/732 1868/1885/725 1876/1893/733 +f 1814/1831/671 1868/1885/725 1875/1892/732 +f 1840/1857/697 1839/1856/696 1841/1858/698 +f 1823/1840/680 1840/1857/697 1841/1858/698 +f 1859/1876/716 1858/1875/715 1840/1857/697 +f 1820/1837/677 1840/1857/697 1858/1875/715 +f 1851/1868/708 1874/1891/731 1820/1837/677 +f 1852/1869/709 1869/1886/726 1874/1891/731 +f 1865/1882/722 1866/1883/723 1852/1869/709 +f 1866/1883/723 1876/1893/733 1869/1886/726 +f 1868/1885/725 1869/1886/726 1876/1893/733 +f 1877/1894/734 1878/1895/735 1867/1884/724 +f 1879/1896/736 1877/1894/734 1880/1897/737 +f 1881/1898/738 1882/1899/739 1880/1897/737 +f 1883/1900/740 1816/1833/673 1884/1901/741 +f 1885/1902/564 1886/1903/564 1887/1904/564 +f 1888/1905/652 1889/1906/648 1890/1907/742 +f 1891/1908/656 1888/1905/652 1892/1909/651 +f 1889/1906/648 1893/1910/643 1894/1911/642 +f 1895/1912/654 1891/1908/656 1896/1913/655 +f 1897/1914/743 1895/1912/654 1898/1915/744 +f 1893/1910/643 1899/1916/745 1900/1917/638 +f 1901/1918/746 1897/1914/743 1902/1919/644 +f 1903/1920/641 1901/1918/746 1904/1921/645 +f 1899/1916/745 1905/1922/635 1906/1923/634 +f 1907/1924/668 1903/1920/641 1908/1925/665 +f 1909/1926/669 1907/1924/668 1910/1927/630 +f 1905/1922/635 1909/1926/669 1911/1928/633 +f 1912/1929/564 1913/1930/564 1914/1931/564 +f 1915/1932/564 1912/1929/564 1916/1933/564 +f 1913/1930/564 1917/1934/564 1918/1935/564 +f 1919/1936/564 1915/1932/564 1920/1937/564 +f 1921/1938/564 1919/1936/564 1922/1939/564 +f 1917/1934/564 1923/1940/564 1924/1941/564 +f 1885/1942/564 1921/1938/564 1925/1943/564 +f 1926/1944/564 1885/1942/564 1927/1945/564 +f 1923/1940/564 1928/1946/564 1929/1947/564 +f 1930/1948/564 1926/1944/564 1931/1949/564 +f 1932/1950/564 1930/1948/564 1933/1951/564 +f 1928/1946/564 1932/1950/564 1934/1952/564 +f 1935/1953/564 1936/1954/564 1937/1955/564 +f 1938/1956/647 1939/1957/651 1940/1958/652 +f 1941/1959/642 1938/1956/647 1942/1960/648 +f 1937/1955/564 1936/1954/564 1943/1961/564 +f 1939/1957/651 1944/1962/655 1945/1963/656 +f 1946/1964/564 1936/1954/564 1935/1953/564 +f 1943/1961/564 1936/1954/564 1947/1965/564 +f 1944/1962/655 1948/1966/658 1949/1967/654 +f 1950/1968/638 1941/1959/642 1951/1969/643 +f 1947/1965/564 1936/1954/564 1952/1970/564 +f 1948/1966/658 1953/1971/747 1954/1972/747 +f 1955/1973/564 1936/1954/564 1946/1964/564 +f 1952/1970/564 1936/1954/564 1956/1974/564 +f 1957/1975/748 1958/1976/748 1959/1977/749 +f 1960/1978/634 1950/1968/638 1961/1979/639 +f 1956/1974/564 1936/1954/564 1962/1980/564 +f 1963/1981/750 1964/1982/751 1965/1983/751 +f 1966/1984/564 1936/1954/564 1955/1973/564 +f 1962/1980/564 1936/1954/564 1967/1985/564 +f 1957/1975/748 1968/1986/630 1969/1987/668 +f 1970/1988/633 1960/1978/634 1971/1989/635 +f 1967/1985/564 1936/1954/564 1972/1990/564 +f 1968/1986/630 1970/1988/633 1973/1991/669 +f 1972/1990/564 1936/1954/564 1966/1984/564 +f 1974/1992/752 1959/1977/749 1965/1983/751 +f 1885/1902/564 1926/1993/564 1886/1903/564 +f 1954/1972/747 1953/1971/747 1975/1994/753 +f 1976/1995/754 1977/1996/755 1963/1981/750 +f 1887/1997/564 1886/1998/564 1978/1999/564 +f 1887/1904/564 1921/2000/564 1885/1902/564 +f 1979/2001/564 1980/2002/564 1981/2003/564 +f 1982/2004/756 1983/2005/757 1984/2006/758 +f 1985/2007/554 1986/2008/554 1987/2009/554 +f 1981/2003/564 1980/2002/564 1988/2010/564 +f 1983/2005/757 1989/2011/759 1990/2012/760 +f 1986/2008/554 1991/2013/554 1987/2009/554 +f 1988/2010/564 1980/2002/564 1992/2014/564 +f 1989/2011/759 1993/2015/761 1994/2016/762 +f 1991/2013/554 1995/2017/554 1987/2009/554 +f 1992/2014/564 1980/2002/564 1996/2018/564 +f 1997/2019/763 1998/2020/764 1999/2021/765 +f 1995/2017/554 2000/2022/554 1987/2009/554 +f 1996/2018/564 1980/2002/564 2001/2023/564 +f 1998/2020/764 2002/2024/766 2003/2025/767 +f 2000/2022/554 2004/2026/554 1987/2009/554 +f 2001/2023/564 1980/2002/564 2005/2027/564 +f 2002/2024/766 2006/2028/768 2007/2029/769 +f 2008/2030/564 2009/2031/770 2010/2032/770 +f 2004/2026/554 2011/2033/554 1987/2009/554 +f 2005/2027/564 1980/2002/564 2012/2034/564 +f 2010/2032/770 2009/2031/770 2013/2035/771 +f 2006/2028/768 2014/2036/772 2015/2037/773 +f 2011/2033/554 2016/2038/554 1987/2009/554 +f 2017/2039/774 2018/2040/775 2019/2041/776 +f 2020/2042/777 2017/2039/774 2021/2043/778 +f 2012/2034/564 1980/2002/564 1979/2001/564 +f 2014/2036/772 1982/2004/756 2022/2044/779 +f 2016/2038/554 1985/2007/554 1987/2009/554 +f 2023/2045/780 2024/2046/781 2025/2047/782 +f 2026/2048/783 2027/2049/784 2023/2045/780 +f 2028/2050/785 2029/2051/786 2030/2052/564 +f 2031/2053/787 2032/2054/788 2033/2055/554 +f 2034/2056/789 2035/2057/790 2036/2058/791 +f 2018/2040/775 2037/2059/792 2038/2060/793 +f 2039/2061/794 2040/2062/795 2041/2063/796 +f 2031/2053/787 2042/2064/797 2032/2054/788 +f 2043/2065/549 2044/2066/549 2045/2067/549 +f 2046/2068/564 2047/2069/564 2048/2070/564 +f 1586/1597/564 2049/2071/564 2050/2072/564 +f 2051/2073/798 2052/2074/799 2053/2075/800 +f 2041/2063/796 2040/2062/795 2054/2076/801 +f 2055/2077/802 2056/2078/803 2057/2079/564 +f 2058/2080/549 2059/2081/549 2060/2082/549 +f 2061/2083/549 2060/2082/549 2059/2081/549 +f 2062/2084/554 2063/2085/554 2064/2086/554 +f 2065/2087/804 2066/2088/805 2053/2075/800 +f 2067/2089/806 2068/2090/549 2069/2091/807 +f 2030/2052/564 2029/2051/786 2070/2092/564 +f 2071/2093/570 2072/2094/570 2073/2095/570 +f 2056/2078/803 2074/2096/564 2057/2079/564 +f 2075/2097/570 2076/2098/570 2077/2099/570 +f 2073/2095/570 2072/2094/570 2075/2100/570 +f 2078/2101/572 2079/2102/572 2080/2103/572 +f 2079/2102/572 2081/2104/572 2082/2105/572 +f 2083/2106/572 2084/2107/572 2082/2105/572 +f 2085/2108/570 2086/2109/570 2087/2110/570 +f 2088/2111/808 2089/2112/809 2090/2113/809 +f 2091/2114/810 2028/2050/785 2092/2115/811 +f 2039/2061/794 2093/2116/785 2094/2117/812 +f 2095/2118/787 2034/2056/789 2096/2119/813 +f 2097/2120/814 2098/2121/815 2099/2122/816 +f 2099/2122/816 2098/2121/815 2100/2123/817 +f 2099/2122/816 2100/2123/817 2101/2124/818 +f 2099/2122/816 2101/2124/818 2102/2125/586 +f 2103/2126/819 2104/2127/820 2105/2128/589 +f 2106/2129/821 2107/2130/822 2108/2131/816 +f 2109/2132/823 2110/2133/824 2111/2134/825 +f 2112/2135/826 2104/2127/820 2113/2136/827 +f 2114/2137/564 2115/2138/564 2113/2136/827 +f 2115/2138/564 2116/2139/564 2113/2136/827 +f 2117/2140/564 2113/2136/827 2116/2139/564 +f 2104/2127/820 2114/2137/564 2113/2136/827 +f 2114/2137/564 2104/2127/820 2103/2126/819 +f 2118/2141/828 2119/2142/829 2120/2143/830 +f 2121/2144/554 2122/2145/554 2123/2146/831 +f 2124/2147/564 2125/2148/564 2126/2149/832 +f 2127/2150/554 2128/2151/554 2129/2152/554 +f 2127/2150/554 2130/2153/833 2131/2154/554 +f 2121/2144/554 2123/2146/831 2132/2155/554 +f 2132/2155/554 2133/2156/554 2134/2157/554 +f 2134/2157/554 2135/2158/554 2136/2159/554 +f 2137/2160/564 2138/2161/564 2139/2162/834 +f 2140/2163/564 2141/2164/564 2142/2165/564 +f 2143/2166/564 2140/2163/564 2144/2167/564 +f 2125/2148/564 2143/2166/564 2145/2168/564 +f 2124/2147/564 2126/2149/832 2146/2169/564 +f 2122/2145/554 2147/2170/554 2130/2153/833 +f 2131/2154/554 2128/2151/554 2127/2150/554 +f 2128/2151/554 2136/2159/554 2129/2152/554 +f 2130/2153/833 2147/2170/554 2131/2154/554 +f 2123/2146/831 2133/2156/554 2132/2155/554 +f 2133/2156/554 2135/2158/554 2134/2157/554 +f 2135/2158/554 2129/2152/554 2136/2159/554 +f 2148/2171/564 2146/2169/564 2139/2162/834 +f 2141/2164/564 2138/2161/564 2137/2160/564 +f 2138/2161/564 2148/2171/564 2139/2162/834 +f 2141/2164/564 2137/2160/564 2142/2165/564 +f 2140/2163/564 2142/2165/564 2144/2167/564 +f 2143/2166/564 2144/2167/564 2145/2168/564 +f 2126/2149/832 2139/2162/834 2146/2169/564 +f 2149/2172/570 2086/2109/570 2085/2108/570 +f 2150/2173/835 2151/2174/836 2152/2175/837 +f 2153/2176/564 2154/2177/838 2151/2174/836 +f 2155/2178/564 2153/2176/564 2156/2179/839 +f 2157/2180/840 2155/2178/564 2158/2181/841 +f 2112/2135/826 2158/2181/841 2156/2179/839 +f 2159/2182/842 2118/2141/828 2160/2183/843 +f 2161/2184/570 2075/2100/570 2077/2185/570 +f 2162/2186/844 2163/2187/845 2024/2046/781 +f 2164/2188/846 2113/2136/827 2117/2140/564 +f 2165/2189/847 2164/2188/846 2117/2140/564 +f 2030/2052/564 2092/2115/811 2028/2050/785 +f 2166/2190/564 2167/2191/564 2168/2192/564 +f 2169/2193/847 2170/2194/848 2171/2195/849 +f 2027/2049/784 2172/2196/850 2173/2197/851 +f 2070/2092/564 2174/2198/848 2117/2140/564 +f 2074/2096/564 2117/2140/564 1585/1596/588 +f 2175/2199/570 2085/2200/570 2176/2201/570 +f 2177/2202/582 2178/2203/582 2179/2204/852 +f 2180/2205/853 2181/2206/854 2182/2207/855 +f 2183/2208/856 2184/2209/857 2185/2210/858 +f 2186/2211/859 2187/2212/860 2188/2213/861 +f 2189/2214/862 2185/2210/858 2184/2209/857 +f 2190/2215/863 2191/2216/864 2192/2217/865 +f 2192/2217/865 2193/2218/866 2194/2219/867 +f 2195/2220/868 2196/2221/869 2197/2222/870 +f 2198/2223/871 2199/2224/872 2196/2221/869 +f 2200/2225/873 2199/2224/872 2198/2223/871 +f 2195/2220/868 2198/2223/871 2196/2221/869 +f 2201/2226/874 2202/2227/875 2203/2228/876 +f 2204/2229/877 2205/2230/878 2201/2226/874 +f 2206/2231/879 2207/2232/880 2208/2233/881 +f 2209/2234/882 2206/2231/879 2210/2235/883 +f 2211/2236/884 2209/2234/882 2212/2237/885 +f 2213/2238/886 2211/2236/884 2214/2239/887 +f 2215/2240/888 2213/2238/886 2216/2241/889 +f 2217/2242/890 2218/2243/891 2219/2244/892 +f 2220/2245/893 2212/2237/885 2210/2235/883 +f 2221/2246/894 2214/2239/887 2212/2237/885 +f 2222/2247/895 2216/2241/889 2214/2239/887 +f 2223/2248/896 2224/2249/897 2216/2241/889 +f 2225/2250/898 2210/2235/883 2226/2251/899 +f 2227/2252/900 2228/2253/901 2209/2234/882 +f 2229/2254/902 2230/2255/903 2231/2256/904 +f 2194/2219/867 2190/2215/863 2192/2217/865 +f 2231/2256/904 2200/2225/873 2198/2223/871 +f 2232/2257/905 2201/2226/874 2203/2228/876 +f 2232/2257/905 2204/2229/877 2201/2226/874 +f 2212/2237/885 2209/2234/882 2210/2235/883 +f 2214/2239/887 2211/2236/884 2212/2237/885 +f 2216/2241/889 2213/2238/886 2214/2239/887 +f 2224/2249/897 2215/2240/888 2216/2241/889 +f 2233/2258/906 2217/2242/890 2219/2244/892 +f 2225/2250/898 2220/2245/893 2210/2235/883 +f 2220/2245/893 2221/2246/894 2212/2237/885 +f 2221/2246/894 2222/2247/895 2214/2239/887 +f 2222/2247/895 2223/2248/896 2216/2241/889 +f 2234/2259/907 2225/2250/898 2226/2251/899 +f 2235/2260/908 2236/2261/909 2195/2220/868 +f 2228/2253/901 2237/2262/910 2206/2231/879 +f 2231/2256/904 2238/2263/911 2200/2225/873 +f 2192/2217/865 2195/2220/868 2193/2218/866 +f 2201/2226/874 2205/2230/878 2239/2264/912 +f 2224/2249/897 2240/2265/913 2215/2240/888 +f 2223/2248/896 2241/2266/914 2224/2249/897 +f 2242/2267/915 2233/2258/906 2219/2244/892 +f 2243/2268/916 2215/2240/888 2233/2258/906 +f 2244/2269/917 2242/2267/915 2219/2244/892 +f 2242/2267/915 2243/2268/916 2233/2258/906 +f 2243/2268/916 2245/2270/918 2215/2240/888 +f 2054/2076/801 2118/2141/828 2246/2271/919 +f 2247/2272/570 2248/2273/570 2076/2098/570 +f 2036/2058/791 2249/2274/920 2096/2119/813 +f 2250/2275/921 2249/2274/920 2251/2276/922 +f 2252/2277/923 2253/2278/845 2025/2047/782 +f 2254/2279/924 2036/2058/791 2035/2057/790 +f 2255/2280/554 2256/2281/554 2257/2282/554 +f 2258/2283/570 2259/2284/570 2260/2285/570 +f 2261/2286/554 2262/2287/554 2263/2288/554 +f 2264/2289/925 2265/2290/926 2266/2291/925 +f 2267/2292/549 2268/2293/549 2269/2294/549 +f 2270/2295/927 2271/2296/927 2272/2297/570 +f 2149/2172/570 2075/2100/570 2072/2094/570 +f 2253/2278/845 2273/2298/844 2025/2047/782 +f 2274/2299/928 2275/2300/929 2027/2049/784 +f 2027/2049/784 2026/2048/783 2276/2301/930 +f 2023/2045/780 2025/2047/782 2277/2302/931 +f 2025/2047/782 2024/2046/781 2278/2303/932 +f 2279/2304/570 2280/2305/570 2281/2306/570 +f 2282/2307/582 2252/2277/923 2283/2308/933 +f 2284/2309/582 2253/2278/845 2252/2277/923 +f 2285/2310/934 2286/2311/582 2287/2312/582 +f 2283/2308/933 2288/2313/935 2289/2314/935 +f 2276/2301/930 2274/2299/928 2027/2049/784 +f 2290/2315/570 2279/2304/570 2291/2316/570 +f 2027/2049/784 2173/2197/851 2292/2317/936 +f 2111/2134/825 2293/2318/937 2294/2319/938 +f 2295/2320/939 2296/2321/940 2297/2322/554 +f 2294/2319/938 2297/2322/554 2298/2323/941 +f 2299/2324/554 2300/2325/554 2301/2326/942 +f 2302/2327/943 2301/2326/942 2303/2328/554 +f 2301/2329/942 2298/2323/941 2299/2330/554 +f 2293/2318/937 2297/2322/554 2294/2319/938 +f 2293/2318/937 2304/2331/944 2297/2322/554 +f 2304/2331/944 2295/2320/939 2297/2322/554 +f 2296/2321/940 2305/2332/554 2297/2322/554 +f 2297/2322/554 2299/2330/554 2298/2323/941 +f 2299/2324/554 2306/2333/554 2300/2325/554 +f 2300/2325/554 2307/2334/554 2301/2326/942 +f 2301/2326/942 2307/2334/554 2303/2328/554 +f 2308/2335/570 2309/2336/570 2310/2337/570 +f 2311/2338/570 2312/2339/570 2309/2340/570 +f 2313/2341/570 2314/2342/570 2308/2335/570 +f 2309/2336/570 2315/2343/570 2310/2337/570 +f 2309/2340/570 2316/2344/570 2311/2338/570 +f 2317/2345/570 2315/2346/570 2309/2340/570 +f 2316/2344/570 2309/2340/570 2280/2305/570 +f 2318/2347/945 2319/2348/946 2320/2349/947 +f 2321/2350/564 2318/2347/945 2322/2351/948 +f 1817/1834/674 1816/1833/673 2323/2352/949 +f 2324/2353/950 1883/1900/740 1872/1889/729 +f 2325/2354/951 2326/2355/952 1883/1900/740 +f 2325/2354/951 2324/2353/950 2327/2356/953 +f 1842/1859/699 2327/2356/953 2324/2353/950 +f 2328/2357/954 1878/1895/735 1877/1894/734 +f 2329/2358/955 1837/1854/694 1835/1852/692 +f 2329/2358/955 1836/1853/693 2328/2357/954 +f 2328/2357/954 1877/1894/734 1879/1896/736 +f 1828/1845/685 2330/2359/956 2331/2360/957 +f 1818/1835/675 1881/1898/738 2332/2361/958 +f 1821/1838/678 1874/1891/731 2333/2362/959 +f 1823/1840/680 1873/1890/730 1884/1901/741 +f 1867/1884/724 2332/2361/958 1880/1897/737 +f 1867/1884/724 1846/1863/703 2332/2361/958 +f 1826/1843/683 2332/2361/958 1844/1861/701 +f 1856/1873/713 1818/1835/675 1827/1844/684 +f 1855/1872/712 1816/1833/673 1856/1873/713 +f 1855/1872/712 1824/1841/681 1816/1833/673 +f 1816/1833/673 1818/1835/675 1856/1873/713 +f 1830/1847/687 1829/1846/686 1842/1859/699 +f 1832/1849/689 2334/2363/960 1829/1846/686 +f 1821/1838/678 2335/2364/961 1833/1850/690 +f 1821/1838/678 2333/2362/959 2335/2364/961 +f 2333/2362/959 1870/1887/727 2336/2365/962 +f 1870/1887/727 1813/1830/670 2337/2366/963 +f 1813/1830/670 1815/1832/672 2338/2367/964 +f 2328/2357/954 1836/1853/693 1878/1895/735 +f 2336/2365/962 2339/2368/965 2335/2364/961 +f 2337/2366/963 2340/2369/966 2336/2365/962 +f 2338/2367/964 2341/2370/967 2337/2366/963 +f 1838/1855/695 2342/2371/968 2338/2367/964 +f 2335/2364/961 2343/2372/969 2330/2359/956 +f 1874/1891/731 1869/1886/726 2333/2362/959 +f 1873/1890/730 1872/1889/729 1884/1901/741 +f 1846/1863/703 1844/1861/701 2332/2361/958 +f 1824/1841/681 1884/1901/741 1816/1833/673 +f 1829/1846/686 2327/2356/953 1842/1859/699 +f 2334/2363/960 2327/2356/953 1829/1846/686 +f 2333/2362/959 2336/2365/962 2335/2364/961 +f 1870/1887/727 2337/2366/963 2336/2365/962 +f 1813/1830/670 2338/2367/964 2337/2366/963 +f 1815/1832/672 1838/1855/695 2338/2367/964 +f 1836/1853/693 1834/1851/691 1878/1895/735 +f 2339/2368/965 2343/2372/969 2335/2364/961 +f 2340/2369/966 2339/2368/965 2336/2365/962 +f 2341/2370/967 2340/2369/966 2337/2366/963 +f 2342/2371/968 2341/2370/967 2338/2367/964 +f 2343/2372/969 2331/2360/957 2330/2359/956 +f 1817/1834/674 1881/1898/738 1818/1835/675 +f 1820/1837/677 1874/1891/731 1821/1838/678 +f 1823/1840/680 1884/1901/741 1824/1841/681 +f 1818/1835/675 2332/2361/958 1826/1843/683 +f 1832/1849/689 1829/1846/686 1828/1845/685 +f 1835/1852/692 1838/1855/695 1815/1832/672 +f 1837/1854/694 2342/2371/968 1838/1855/695 +f 1834/1851/691 1876/1893/733 1878/1895/735 +f 1815/1832/672 1875/1892/732 1834/1851/691 +f 1876/1893/733 1866/1883/723 1878/1895/735 +f 1875/1892/732 1876/1893/733 1834/1851/691 +f 1814/1831/671 1875/1892/732 1815/1832/672 +f 2245/2270/918 2213/2238/886 2215/2240/888 +f 2236/2261/909 2198/2223/871 2195/2220/868 +f 2237/2262/910 2207/2232/880 2206/2231/879 +f 2238/2263/911 2344/2373/970 2200/2225/873 +f 2195/2220/868 2345/2374/971 2193/2218/866 +f 2195/2220/868 2197/2222/870 2345/2374/971 +f 2201/2226/874 2239/2264/912 2202/2227/875 +f 2205/2230/878 2346/2375/972 2239/2264/912 +f 2207/2232/880 2202/2227/875 2239/2264/912 +f 2240/2265/913 2233/2258/906 2215/2240/888 +f 2233/2258/906 2240/2265/913 2217/2242/890 +f 2241/2266/914 2240/2265/913 2224/2249/897 +f 2347/2376/973 2203/2228/876 2202/2227/875 +f 2348/2377/974 2349/2378/975 2203/2228/876 +f 2350/2379/976 2344/2373/970 2238/2263/911 +f 2351/2380/977 2194/2219/867 2193/2218/866 +f 2351/2380/977 2190/2215/863 2194/2219/867 +f 2352/2381/978 2353/2382/979 2354/2383/980 +f 2355/2384/981 2356/2385/982 2357/2386/983 +f 2353/2382/979 2352/2381/978 2355/2384/981 +f 2193/2218/866 2345/2374/971 2358/2387/984 +f 2200/2225/873 2359/2388/985 2199/2224/872 +f 2197/2222/870 2196/2221/869 2359/2388/985 +f 2200/2225/873 2344/2373/970 2360/2389/986 +f 2350/2379/976 2361/2390/987 2360/2389/986 +f 2200/2225/873 2360/2389/986 2359/2388/985 +f 2362/2391/988 2363/2392/989 2361/2390/987 +f 2358/2387/984 2351/2380/977 2193/2218/866 +f 2358/2387/984 2359/2388/985 2364/2393/990 +f 2365/2394/991 2355/2384/981 2352/2381/978 +f 2366/2395/992 2352/2381/978 2351/2380/977 +f 2360/2389/986 2361/2390/987 2365/2394/991 +f 2364/2393/990 2359/2388/985 2360/2389/986 +f 2365/2394/991 2361/2390/987 2363/2392/989 +f 2367/2396/993 2356/2385/982 2365/2394/991 +f 2368/2397/994 2191/2216/864 2190/2215/863 +f 2244/2269/917 2219/2244/892 2191/2216/864 +f 2369/2398/995 2211/2236/884 2213/2238/886 +f 2227/2252/900 2209/2234/882 2211/2236/884 +f 2370/2399/996 2202/2227/875 2207/2232/880 +f 2349/2378/975 2348/2377/974 2230/2255/903 +f 2351/2380/977 2354/2383/980 2190/2215/863 +f 2358/2387/984 2364/2393/990 2351/2380/977 +f 2345/2374/971 2197/2222/870 2358/2387/984 +f 2359/2388/985 2358/2387/984 2197/2222/870 +f 2359/2388/985 2196/2221/869 2199/2224/872 +f 2361/2390/987 2350/2379/976 2362/2391/988 +f 2363/2392/989 2367/2396/993 2365/2394/991 +f 2356/2385/982 2355/2384/981 2365/2394/991 +f 2238/2263/911 2230/2255/903 2348/2377/974 +f 2362/2391/988 2350/2379/976 2238/2263/911 +f 2362/2391/988 2238/2263/911 2370/2399/996 +f 2237/2262/910 2367/2396/993 2363/2392/989 +f 2237/2262/910 2356/2385/982 2367/2396/993 +f 2357/2386/983 2356/2385/982 2237/2262/910 +f 2353/2382/979 2357/2386/983 2228/2253/901 +f 2368/2397/994 2354/2383/980 2353/2382/979 +f 2244/2269/917 2353/2382/979 2227/2252/900 +f 2369/2398/995 2243/2268/916 2242/2267/915 +f 2369/2398/995 2245/2270/918 2243/2268/916 +f 2347/2376/973 2370/2399/996 2348/2377/974 +f 2370/2399/996 2238/2263/911 2348/2377/974 +f 2363/2392/989 2362/2391/988 2370/2399/996 +f 2370/2399/996 2237/2262/910 2363/2392/989 +f 2228/2253/901 2357/2386/983 2237/2262/910 +f 2227/2252/900 2353/2382/979 2228/2253/901 +f 2244/2269/917 2368/2397/994 2353/2382/979 +f 2242/2267/915 2244/2269/917 2227/2252/900 +f 2227/2252/900 2369/2398/995 2242/2267/915 +f 2371/2400/997 2372/2401/998 2191/2216/864 +f 2373/2402/999 2374/2403/1000 2372/2401/998 +f 2235/2260/908 2192/2217/865 2372/2401/998 +f 2375/2404/1001 2229/2254/902 2231/2256/904 +f 2236/2261/909 2376/2405/1002 2377/2406/1003 +f 2378/2407/1004 2349/2378/975 2229/2254/902 +f 2379/2408/1005 2378/2407/1004 2375/2404/1001 +f 2379/2408/1005 2204/2229/877 2232/2257/905 +f 2203/2228/876 2349/2378/975 2378/2407/1004 +f 2219/2244/892 2218/2243/891 2371/2400/997 +f 2380/2409/1006 2217/2242/890 2240/2265/913 +f 2380/2409/1006 2381/2410/1007 2218/2243/891 +f 2218/2243/891 2381/2410/1007 2373/2402/999 +f 2239/2264/912 2346/2375/972 2234/2259/907 +f 2235/2260/908 2195/2220/868 2192/2217/865 +f 2228/2253/901 2206/2231/879 2209/2234/882 +f 2230/2255/903 2238/2263/911 2231/2256/904 +f 2192/2217/865 2191/2216/864 2372/2401/998 +f 2382/2411/1008 2188/2213/861 2187/2212/860 +f 2383/2412/1009 2119/2142/829 2118/2141/828 +f 2057/2079/564 2074/2096/564 2384/2413/564 +f 2054/2076/801 2040/2062/795 2094/2117/812 +f 2246/2271/919 2118/2141/828 2159/2182/842 +f 2385/2414/564 2384/2413/564 1592/1603/590 +f 2246/2271/919 2041/2063/796 2054/2076/801 +f 2171/2195/849 2386/2415/1010 2387/2416/846 +f 2388/2417/786 2389/2418/1011 2170/2194/848 +f 2386/2415/1010 2390/2419/1012 2391/2420/827 +f 2039/2061/794 2041/2063/796 2388/2417/786 +f 2389/2418/1011 2171/2195/849 2170/2194/848 +f 2390/2419/1012 2392/2421/1013 2393/2422/826 +f 2392/2421/1013 2394/2423/1014 2395/2424/1015 +f 2395/2424/1015 2394/2423/1014 2181/2206/854 +f 2182/2207/855 2181/2206/854 2394/2423/1014 +f 2396/2425/1016 2395/2424/1015 2181/2206/854 +f 2093/2116/785 2039/2061/794 2388/2417/786 +f 2397/2426/1017 2398/2427/1018 2399/2428/1019 +f 2400/2429/554 2063/2085/554 2401/2430/554 +f 2087/2110/570 2291/2316/570 2402/2431/570 +f 2400/2429/554 2064/2086/554 2063/2085/554 +f 2062/2084/554 2403/2432/554 2063/2085/554 +f 2404/2433/1020 2405/2434/1021 2406/2435/1022 +f 2075/2100/570 2149/2172/570 2175/2436/570 +f 2407/2437/1023 2408/2438/1024 2409/2439/1025 +f 2410/2440/554 2411/2441/554 2408/2442/1024 +f 2412/2443/564 2413/2444/564 2414/2445/564 +f 2163/2187/845 2278/2303/932 2024/2046/781 +f 2415/2446/564 2413/2444/564 2412/2443/564 +f 2416/2447/564 2168/2192/564 2167/2191/564 +f 2417/2448/570 2418/2449/570 2419/2450/570 +f 2420/2451/564 2421/2452/564 2422/2453/564 +f 2423/2454/1026 2424/2455/1026 2425/2456/1026 +f 2426/2457/1027 2427/2458/1028 2428/2459/1027 +f 2429/2460/1029 2430/2461/1030 2431/2462/1031 +f 2432/2463/1032 2431/2462/1031 2430/2461/1030 +f 2433/2464/1033 2067/2089/806 2434/2465/1034 +f 2435/2466/549 2436/2467/549 2437/2468/549 +f 2431/2462/1031 2438/2469/1035 2429/2460/1029 +f 2248/2273/570 2077/2099/570 2076/2098/570 +f 2439/2470/1036 2440/2471/564 2441/2472/803 +f 2047/2069/564 2442/2473/564 2048/2070/564 +f 2443/2474/927 2444/2475/570 2445/2476/570 +f 2446/2477/564 2442/2473/564 1590/1601/564 +f 2447/2478/564 1590/1601/564 2448/2479/1037 +f 2449/2480/564 2448/2479/1037 2450/2481/587 +f 2451/2482/564 2450/2481/587 2102/2125/586 +f 2452/2483/1038 2453/2484/1039 2454/2485/1040 +f 2049/2071/564 2047/2069/564 2455/2486/564 +f 2048/2070/564 2442/2473/564 2456/2487/564 +f 2456/2487/564 2442/2473/564 2446/2477/564 +f 2447/2478/564 2446/2477/564 1590/1601/564 +f 2449/2480/564 2447/2478/564 2448/2479/1037 +f 2448/2479/1037 1590/1601/564 1589/1600/564 +f 2451/2482/564 2449/2480/564 2450/2481/587 +f 2457/2488/1041 2451/2482/564 2102/2125/586 +f 2457/2488/1041 2102/2125/586 2101/2124/818 +f 1588/1599/589 1587/1598/564 2458/2489/564 +f 2097/2120/814 1588/1599/589 2458/2489/564 +f 2459/2490/564 2047/2069/564 2049/2071/564 +f 2050/2072/564 2049/2071/564 2455/2486/564 +f 2455/2486/564 2047/2069/564 2046/2068/564 +f 2460/2491/1042 2461/2492/1043 2398/2427/1018 +f 2462/2493/572 1597/1608/572 1596/1607/572 +f 1595/1606/572 1594/1605/572 1597/1608/572 +f 2463/2494/582 2177/2202/582 2278/2303/932 +f 2464/2495/1044 2179/2204/852 2178/2203/582 +f 2179/2204/852 2464/2495/1044 2465/2496/935 +f 2466/2497/1045 2172/2196/850 2027/2049/784 +f 2156/2179/839 2151/2174/836 2467/2498/1046 +f 2104/2127/820 2468/2499/1047 2105/2128/589 +f 2469/2500/1048 2470/2501/1049 2150/2173/835 +f 2471/2502/1050 2472/2503/589 2473/2504/1051 +f 2151/2174/836 2150/2173/835 2470/2501/1049 +f 2156/2179/839 2468/2499/1047 2104/2127/820 +f 2385/2414/564 1592/1603/590 2440/2471/564 +f 2023/2045/780 2292/2317/936 2024/2046/781 +f 2275/2300/929 2466/2497/1045 2027/2049/784 +f 2474/2505/564 2475/2506/564 2476/2507/564 +f 2174/2198/848 2165/2189/847 2117/2140/564 +f 2117/2140/564 2106/2129/821 1585/1596/588 +f 2384/2413/564 2074/2096/564 1592/1603/590 +f 1592/1603/590 2441/2472/803 2440/2471/564 +f 1585/1596/588 1592/1603/590 2074/2096/564 +f 2041/2063/796 2389/2418/1011 2388/2417/786 +f 2477/2508/572 2462/2509/572 1596/2510/572 +f 1598/1609/572 1597/1608/572 1594/1605/572 +f 2087/2110/570 2086/2109/570 2291/2316/570 +f 2478/2511/1052 2479/2512/570 2480/2513/570 +f 2481/2514/1053 2056/2078/803 2055/2077/802 +f 2439/2470/1036 2441/2472/803 2482/2515/1053 +f 2483/2516/582 2484/2517/582 2485/2518/582 +f 2486/2519/582 2483/2516/582 2487/2520/582 +f 2485/2518/582 2488/2521/582 2487/2520/582 +f 2483/2516/582 2485/2518/582 2487/2520/582 +f 2486/2519/582 2489/2522/582 2483/2516/582 +f 2490/2523/570 2491/2524/1054 2492/2525/1055 +f 2493/2526/564 2494/2527/564 2495/2528/1056 +f 2496/2529/572 2497/2530/572 2498/2531/572 +f 2499/2532/582 2500/2533/582 2501/2534/582 +f 2502/2535/572 2503/2536/572 2498/2531/572 +f 2495/2528/1056 2492/2525/1055 2491/2524/1054 +f 2504/2537/1057 2505/2538/564 2506/2539/564 +f 2504/2537/1057 2507/2540/1057 2508/2541/1058 +f 2509/2542/1059 2510/2543/1060 2511/2544/1061 +f 2512/2545/582 2513/2546/582 2514/2547/582 +f 2514/2547/582 2513/2546/582 2487/2520/582 +f 2515/2548/554 2516/2549/554 2517/2550/554 +f 2518/2551/570 2519/2552/1062 2520/2553/1063 +f 2521/2554/554 2522/2555/1064 2523/2556/1065 +f 2524/2557/572 2525/2558/572 2526/2559/572 +f 2503/2536/572 2502/2535/572 2527/2560/572 +f 2527/2560/572 2528/2561/572 2526/2559/572 +f 2523/2556/1065 2522/2555/1064 2529/2562/1066 +f 2530/2563/1067 2531/2564/1067 2532/2565/554 +f 2520/2553/1063 2519/2552/1062 2533/2566/1059 +f 2501/2534/582 2489/2522/582 2486/2519/582 +f 2534/2567/564 2535/2568/564 2536/2569/564 +f 2530/2563/1067 2537/2570/1068 2538/2571/1068 +f 2539/2572/1069 2508/2541/1058 2538/2571/1068 +f 2484/2517/582 2540/2573/582 2485/2518/582 +f 2541/2574/564 1505/1516/564 1507/1518/564 +f 2542/2575/565 1508/1519/565 1510/1521/565 +f 2543/2576/554 1511/1522/554 1513/1524/554 +f 2544/2577/566 1514/1525/566 1516/1527/568 +f 2545/2578/564 2546/2579/564 2541/2574/564 +f 2547/2580/1070 1516/1527/568 2548/2581/1071 +f 1507/1518/564 2545/2578/564 2541/2574/564 +f 2546/2579/564 2549/2582/564 2541/2574/564 +f 2542/2575/565 1510/1521/565 2550/2583/565 +f 1513/1524/554 2551/2584/554 2543/2576/554 +f 1516/1527/568 1515/1526/567 2548/2581/1071 +f 2552/2585/1072 2553/2586/1072 2554/2587/1072 +f 2555/2588/1073 1588/1599/589 2097/2120/814 +f 2294/2319/938 2556/2589/1074 2109/2132/823 +f 2294/2319/938 2109/2132/823 2111/2134/825 +f 2110/2133/824 2454/2485/1040 2111/2134/825 +f 2116/2139/564 2107/2130/822 2106/2129/821 +f 2557/2590/1075 2558/2591/1076 2559/2592/1077 +f 2560/2593/1078 2561/2594/1079 2562/2595/1080 +f 2563/2596/1081 2564/2597/1082 2565/2598/1083 +f 2564/2597/1082 2566/2599/1084 2565/2598/1083 +f 2453/2484/1039 2111/2134/825 2454/2485/1040 +f 2562/2595/1080 2561/2594/1079 2567/2600/570 +f 2568/2601/554 2569/2602/1085 2570/2603/554 +f 2571/2604/1084 2556/2589/1074 2294/2319/938 +f 2563/2596/1081 2572/2605/554 2564/2597/1082 +f 2573/2606/1086 2574/2607/824 2575/2608/1087 +f 2576/2609/549 2577/2610/549 2578/2611/1088 +f 2579/2612/1089 2563/2596/1081 2580/2613/1090 +f 2572/2605/554 2581/2614/554 2564/2597/1082 +f 2125/2148/564 2145/2168/564 2126/2149/832 +f 2122/2145/554 2130/2153/833 2123/2146/831 +f 2582/2615/549 2583/2616/549 2584/2617/1091 +f 2585/2618/1092 2586/2619/1093 2587/2620/572 +f 2586/2621/1093 2585/2622/1092 2588/2623/570 +f 2589/2624/582 2590/2625/582 2591/2626/1094 +f 2592/2627/1026 2593/2628/1026 2594/2629/1026 +f 2595/2630/1095 2066/2088/805 2065/2087/804 +f 2593/2628/1026 2596/2631/1026 2594/2629/1026 +f 2597/2632/1026 2592/2627/1026 2598/2633/1026 +f 2029/2051/786 2174/2198/848 2070/2092/564 +f 2599/2634/572 2600/2635/572 2601/2636/572 +f 2602/2637/572 2603/2638/572 2600/2635/572 +f 2404/2433/1020 2604/2639/1096 2405/2434/1021 +f 2112/2135/826 2156/2179/839 2104/2127/820 +f 2158/2181/841 2155/2178/564 2156/2179/839 +f 2593/2628/1026 2423/2454/1026 2425/2456/1026 +f 2605/2640/1026 2425/2456/1026 2424/2455/1026 +f 2153/2176/564 2151/2174/836 2156/2179/839 +f 2598/2633/1026 2592/2627/1026 2594/2629/1026 +f 2154/2177/838 2152/2175/837 2151/2174/836 +f 2086/2109/570 2290/2315/570 2291/2316/570 +f 2461/2492/1043 2399/2428/1019 2398/2427/1018 +f 2319/2348/946 2606/2641/1097 2409/2439/1025 +f 2607/2642/1098 2404/2433/1020 2406/2435/1022 +f 2587/2620/572 2608/2643/1091 2584/2617/1091 +f 2589/2624/582 2609/2644/1099 2610/2645/1100 +f 2591/2626/1094 2611/2646/570 2588/2647/570 +f 2612/2648/549 2610/2645/1100 2609/2644/1099 +f 2613/2649/809 2614/2650/1101 2615/2651/809 +f 2088/2111/808 2090/2113/809 2615/2651/809 +f 2616/2652/572 2617/2653/572 2618/2654/572 +f 2619/2655/572 2620/2656/572 2618/2654/572 +f 2621/2657/572 2622/2658/572 2620/2656/572 +f 2623/2659/570 2073/2095/570 2075/2100/570 +f 2299/2324/554 2624/2660/943 2306/2333/554 +f 2311/2338/570 2625/2661/570 2312/2339/570 +f 2626/2662/790 2033/2055/554 2305/2332/554 +f 2627/2663/806 2628/2664/1034 2629/2665/1102 +f 2630/2666/582 2631/2667/582 2632/2668/582 +f 2633/2669/564 2634/2670/564 2635/2671/564 +f 2636/2672/549 2637/2673/549 2638/2674/549 +f 2639/2675/549 2640/2676/549 2636/2672/549 +f 2624/2660/943 2641/2677/1103 2306/2333/554 +f 2642/2678/1104 2643/2679/1104 2644/2680/1105 +f 2645/2681/1106 2069/2091/807 2629/2665/1102 +f 2646/2682/554 2647/2683/554 2648/2684/554 +f 2649/2685/564 2650/2686/564 2651/2687/564 +f 2652/2688/1107 2653/2689/1107 2654/2690/1108 +f 2578/2611/1088 2655/2691/1109 2656/2692/1110 +f 2657/2693/554 2658/2694/554 2659/2695/554 +f 2660/2696/549 2661/2697/549 2662/2698/549 +f 2663/2699/1111 2664/2700/1112 2665/2701/1113 +f 2666/2702/1114 2667/2703/1115 2668/2704/1116 +f 2669/2705/1117 2668/2704/1116 2664/2700/1112 +f 2670/2706/1118 2671/2707/1119 2672/2708/1119 +f 2673/2709/554 2674/2710/554 2670/2706/1118 +f 2675/2711/572 2676/2712/572 2677/2713/572 +f 2678/2714/572 2679/2715/572 2680/2716/572 +f 2655/2691/1109 2681/2717/1120 2682/2718/1120 +f 2301/2329/942 2683/2719/1121 2684/2720/1122 +f 2685/2721/554 2686/2722/554 2687/2723/554 +f 2688/2724/1107 2689/2725/1107 2690/2726/1123 +f 2647/2683/554 2646/2682/554 2569/2602/1085 +f 2569/2602/1085 2579/2612/1089 2570/2603/554 +f 2691/2727/1124 2294/2319/938 2298/2323/941 +f 2692/2728/1103 2693/2729/1125 2694/2730/1125 +f 2695/2731/1125 2696/2732/1125 2641/2677/1103 +f 2667/2703/1115 2666/2702/1114 2697/2733/570 +f 2462/2509/572 2477/2508/572 2698/2734/572 +f 2699/2735/572 2677/2713/572 2678/2714/572 +f 2700/2736/572 2698/2734/572 2675/2737/572 +f 2701/2738/1126 2702/2739/1126 2703/2740/1126 +f 2691/2727/1124 2571/2604/1084 2294/2319/938 +f 2106/2129/821 2117/2140/564 2116/2139/564 +f 2704/2741/823 2559/2592/1077 2558/2591/1076 +f 2705/2742/549 2706/2743/549 2707/2744/549 +f 2563/2596/1081 2565/2598/1083 2580/2613/1090 +f 2708/2745/1127 2709/2746/1128 2710/2747/1128 +f 2644/2680/1105 2708/2745/1127 2711/2748/1129 +f 2712/2749/549 2643/2679/1104 2642/2678/1104 +f 2713/2750/1130 2714/2751/1130 2715/2752/1130 +f 2716/2753/1131 2717/2754/1131 2718/2755/1131 +f 2719/2756/554 2720/2757/554 2721/2758/554 +f 2722/2759/1132 2723/2760/1132 2724/2761/1132 +f 2725/2762/1133 2472/2503/589 2471/2502/1050 +f 2726/2763/1134 2727/2764/1135 2111/2134/825 +f 2728/2765/1136 2729/2766/1137 2730/2767/1138 +f 2731/2768/1139 2732/2769/1140 2733/2770/1134 +f 2734/2771/1141 2735/2772/1142 2736/2773/1143 +f 2726/2763/1134 2111/2134/825 2453/2484/1039 +f 2727/2764/1135 2726/2763/1134 2729/2766/1137 +f 2737/2774/1137 2738/2775/1046 2739/2776/1144 +f 2738/2775/1046 2737/2774/1137 2733/2770/1134 +f 2732/2769/1140 2740/2777/1145 2473/2504/1051 +f 2741/2778/1048 2742/2779/1146 2743/2780/1147 +f 2678/2714/572 2680/2716/572 2699/2735/572 +f 2699/2735/572 2700/2781/572 2675/2711/572 +f 2744/2782/570 2087/2110/570 2402/2431/570 +f 2657/2693/554 2745/2783/554 2658/2694/554 +f 2646/2682/554 2648/2684/554 2745/2783/554 +f 2657/2693/554 2746/2784/554 2646/2682/554 +f 2555/2588/1073 2097/2120/814 2099/2122/816 +f 2099/2122/816 2650/2686/564 2649/2685/564 +f 2566/2599/1084 2747/2785/1124 2748/2786/1148 +f 2570/2603/554 2579/2612/1089 2580/2613/1090 +f 2749/2787/1149 2565/2598/1083 2566/2599/1084 +f 2747/2785/1124 2750/2788/1150 2748/2786/1148 +f 2751/2789/554 2750/2788/1150 2747/2785/1124 +f 2752/2790/554 2751/2789/554 2753/2791/1122 +f 2685/2721/554 2754/2792/1121 2686/2722/554 +f 2755/2793/554 2752/2790/554 2754/2792/1121 +f 2756/2794/554 2755/2793/554 2685/2721/554 +f 2757/2795/554 2758/2796/554 2756/2794/554 +f 2757/2795/554 2659/2695/554 2758/2796/554 +f 2657/2693/554 2646/2682/554 2745/2783/554 +f 2574/2607/824 2704/2741/823 2759/2797/1151 +f 2753/2791/1122 2751/2789/554 2747/2785/1124 +f 2754/2792/1121 2752/2790/554 2753/2791/1122 +f 2685/2721/554 2755/2793/554 2754/2792/1121 +f 2757/2795/554 2756/2794/554 2685/2721/554 +f 2760/2798/1152 2761/2799/1153 2762/2800/1154 +f 2757/2795/554 2657/2693/554 2659/2695/554 +f 2303/2328/554 2692/2728/1103 2302/2327/943 +f 2310/2337/570 2313/2341/570 2308/2335/570 +f 2763/2801/1155 2764/2802/1156 2765/2803/1157 +f 2429/2460/1029 2438/2469/1035 2763/2801/1155 +f 2766/2804/1033 2767/2805/1158 2628/2664/1034 +f 2767/2805/1158 2766/2804/1033 2768/2806/1159 +f 2768/2806/1159 2765/2803/1157 2764/2802/1156 +f 2769/2807/1160 2770/2808/1161 2771/2809/1162 +f 2770/2808/1161 2772/2810/1163 2773/2811/1164 +f 2774/2812/1165 2769/2807/1160 2775/2813/1166 +f 2772/2810/1163 2776/2814/1167 2777/2815/1168 +f 2778/2816/1169 2774/2812/1165 2779/2817/1170 +f 2776/2814/1167 2780/2818/1171 2781/2819/1172 +f 2782/2820/1173 2778/2816/1169 2783/2821/1174 +f 2780/2818/1171 2784/2822/1175 2785/2823/1176 +f 2786/2824/1177 2782/2820/1173 2787/2825/1178 +f 2784/2822/1175 2645/2681/1106 2788/2826/1179 +f 2761/2799/1153 2786/2824/1177 2789/2827/1180 +f 2790/2828/572 2791/2829/572 2792/2830/1181 +f 2793/2831/564 2634/2670/564 2633/2669/564 +f 2635/2671/564 2794/2832/564 2633/2669/564 +f 2795/2833/549 2796/2834/549 2797/2835/549 +f 2794/2832/564 2798/2836/564 2799/2837/564 +f 2068/2090/549 2800/2838/549 2629/2665/1102 +f 2031/2053/787 2033/2055/554 2626/2662/790 +f 2801/2839/1182 2802/2840/1183 2803/2841/1184 +f 2803/2841/1184 2804/2842/1185 2805/2843/1186 +f 2805/2843/1186 2801/2839/1182 2803/2841/1184 +f 2806/2844/1187 2807/2845/1188 2801/2839/1182 +f 2808/2846/1189 2809/2847/937 2807/2845/1188 +f 2810/2848/1190 2254/2279/924 2811/2849/940 +f 2036/2058/791 2096/2119/813 2034/2056/789 +f 2812/2850/1191 2813/2851/944 2809/2847/937 +f 2254/2279/924 2035/2057/790 2811/2849/940 +f 2810/2848/1190 2814/2852/939 2813/2851/944 +f 2036/2058/791 2251/2276/922 2249/2274/920 +f 2160/2183/843 2250/2275/921 2159/2182/842 +f 2250/2275/921 2251/2276/922 2159/2182/842 +f 2249/2274/920 2815/2853/1192 2816/2854/797 +f 2160/2183/843 2120/2143/830 2817/2855/1193 +f 2815/2853/1192 2249/2274/920 2250/2275/921 +f 2818/2856/1194 2819/2857/1195 2820/2858/1196 +f 2819/2857/1195 2818/2856/1194 2821/2859/1197 +f 2822/2860/1198 2823/2861/1199 2824/2862/1200 +f 2821/2859/1197 2825/2863/1201 2826/2864/1202 +f 2803/2841/1184 2827/2865/1203 2804/2842/1185 +f 2182/2207/855 2394/2423/1014 2805/2843/1186 +f 2394/2423/1014 2392/2421/1013 2806/2844/1187 +f 2390/2419/1012 2386/2415/1010 2812/2850/1191 +f 2806/2844/1187 2392/2421/1013 2390/2419/1012 +f 2386/2415/1010 2171/2195/849 2810/2848/1190 +f 2811/2849/940 2814/2852/939 2810/2848/1190 +f 2828/2866/554 2829/2867/554 2255/2280/554 +f 2095/2118/787 2035/2057/790 2034/2056/789 +f 2246/2271/919 2159/2182/842 2251/2276/922 +f 2810/2848/1190 2171/2195/849 2389/2418/1011 +f 2246/2271/919 2251/2276/922 2036/2058/791 +f 2254/2279/924 2389/2418/1011 2041/2063/796 +f 2830/2868/1188 2293/2318/937 2111/2134/825 +f 2831/2869/1204 2830/2868/1188 2727/2764/1135 +f 2832/2870/554 2833/2871/1205 2831/2869/1204 +f 2834/2872/554 2832/2870/554 2727/2764/1135 +f 2835/2873/1206 2834/2872/554 2728/2765/1136 +f 2728/2765/1136 2736/2773/1143 2735/2772/1142 +f 2316/2344/570 2280/2305/570 2279/2304/570 +f 2727/2764/1135 2830/2868/1188 2111/2134/825 +f 2832/2870/554 2831/2869/1204 2727/2764/1135 +f 2728/2765/1136 2834/2872/554 2727/2764/1135 +f 2735/2772/1142 2835/2873/1206 2728/2765/1136 +f 2296/2321/940 2626/2662/790 2305/2332/554 +f 2836/2874/1026 2837/2875/1026 2838/2876/1026 +f 2839/2877/1026 2840/2878/1026 2841/2879/1026 +f 2839/2877/1026 2841/2879/1026 2838/2876/1026 +f 2837/2875/1026 2839/2877/1026 2838/2876/1026 +f 2837/2875/1026 2836/2874/1026 2842/2880/1026 +f 2842/2880/1026 2843/2881/1026 2844/2882/1026 +f 2605/2640/1026 2424/2455/1026 2844/2882/1026 +f 2845/2883/1207 2846/2884/1208 2847/2885/1209 +f 2847/2885/1209 2848/2886/1210 2849/2887/1211 +f 2850/2888/1212 2851/2889/1213 2852/2890/1214 +f 2853/2891/1215 2851/2889/1213 2850/2888/1212 +f 2595/2630/1095 2854/2892/1216 2846/2884/1208 +f 2592/2627/1026 2597/2632/1026 2840/2878/1026 +f 2844/2882/1026 2855/2893/1026 2842/2880/1026 +f 2161/2894/570 2077/2099/570 2310/2337/570 +f 2856/2895/572 2857/2896/572 2858/2897/572 +f 2859/2898/554 2860/2899/554 2861/2900/554 +f 2862/2901/570 2863/2902/570 2864/2903/570 +f 2861/2904/554 2865/2905/554 2866/2906/554 +f 2867/2907/553 1481/1492/553 1483/1494/553 +f 2868/2908/554 1484/1495/554 1486/1497/554 +f 1498/1509/562 1487/1498/555 1489/1500/557 +f 2869/2909/559 1490/1501/558 1492/1503/559 +f 2870/2910/560 1493/1504/560 1495/1506/560 +f 1489/1500/557 1496/1507/561 1498/1509/562 +f 2871/2911/554 1499/1510/554 1501/1512/554 +f 2872/2912/563 1502/1513/563 1504/1515/563 +f 1555/1566/581 1546/1557/573 1548/1559/575 +f 1525/1536/569 1549/1560/576 1528/1539/571 +f 1550/1561/576 1549/1560/576 1552/1563/578 +f 1552/1563/578 1551/1562/577 1554/1565/580 +f 1554/1565/580 1553/1564/579 1547/1558/574 +f 2873/2913/582 1557/1568/582 1559/1570/582 +f 2874/2914/582 1560/1571/582 1562/1573/582 +f 2875/2915/570 1563/1574/570 1565/1576/570 +f 2876/2916/554 1566/1577/554 1568/1579/554 +f 2877/2917/554 1569/1580/554 1571/1582/554 +f 2878/2918/582 1572/1583/582 1574/1585/582 +f 1722/1739/621 1580/1591/583 1582/1593/585 +f 2106/2129/821 1583/1594/586 1585/1596/588 +f 2049/2071/564 1586/1597/564 1588/1599/589 +f 2879/2919/1037 1592/1603/590 1584/1595/587 +f 2880/2920/572 1596/1607/572 1598/1609/572 +f 1723/1740/572 1599/1610/572 1601/1612/572 +f 1724/1741/620 1602/1613/591 1604/1615/593 +f 1725/1742/582 1605/1616/582 1607/1618/582 +f 1582/1593/585 1581/1592/584 1609/1620/595 +f 1601/1612/572 1600/1611/572 1611/2921/572 +f 1604/1615/593 1603/1614/592 1613/1625/597 +f 1607/1618/582 1606/1617/582 1615/1627/582 +f 1609/1620/595 1608/1619/594 1617/1629/599 +f 1611/2921/572 1610/1630/572 1619/1632/572 +f 1613/1625/597 1612/1624/596 1621/1634/601 +f 1615/1627/582 1614/1626/582 1623/1636/582 +f 1617/2922/599 1616/2923/598 1625/2924/603 +f 1619/1632/572 1618/1631/572 1627/1640/572 +f 1621/2925/601 1620/2926/600 1629/2927/605 +f 1623/1636/582 1622/1635/582 1631/1645/582 +f 2881/2928/626 1632/2929/606 1634/2930/608 +f 1627/1640/572 1626/1639/572 1636/1650/572 +f 2882/2931/625 1637/1651/609 1639/1653/611 +f 1631/1645/582 1630/1644/582 1641/1655/582 +f 1634/2930/608 1633/1656/607 1643/1658/613 +f 1636/1650/572 1635/1649/572 1645/1660/572 +f 1639/1653/611 1638/1652/610 1647/1662/615 +f 1641/1655/582 1640/1654/582 1649/1664/582 +f 1643/1658/613 1642/1657/612 1651/1666/617 +f 1645/1660/572 1644/1659/572 1653/1668/572 +f 1647/1662/615 1646/1661/614 1655/1670/619 +f 1649/1664/582 1648/1663/582 1657/1672/582 +f 1651/1666/617 1650/1665/616 1659/2932/620 +f 1653/1668/572 1652/1667/572 1661/1677/572 +f 1655/1670/619 1654/1669/618 1663/1679/621 +f 1657/1672/582 1656/1671/582 1665/1681/582 +f 1659/2932/620 1658/2933/591 1667/2934/593 +f 1661/1677/572 1660/1676/572 1669/1685/572 +f 1663/1679/621 1662/1678/583 1671/1687/585 +f 1665/1681/582 1664/1680/582 1673/1689/582 +f 1667/2934/593 1666/2935/622 1675/2936/597 +f 1669/1685/572 1668/1684/572 1677/1693/572 +f 1671/1687/585 1670/1686/584 1679/1695/595 +f 1673/1689/582 1672/1688/582 1681/1697/582 +f 1675/2936/597 1674/2937/596 1683/2938/601 +f 1677/1693/572 1676/1692/572 1685/1701/572 +f 1679/1695/595 1678/1694/594 1687/1703/624 +f 1681/1697/582 1680/1696/582 1689/1705/582 +f 1683/1699/601 1682/1698/600 1691/1707/625 +f 1685/1701/572 1684/1700/572 1693/1709/572 +f 1687/1703/624 1686/1702/623 1695/1711/626 +f 1689/1705/582 1688/1704/582 1697/1713/582 +f 1691/1707/625 1690/1706/604 1699/1715/628 +f 1693/1709/572 1692/1708/572 1701/1717/572 +f 1695/2939/626 1694/1718/602 1703/1720/608 +f 1697/1713/582 1696/1712/582 1705/1722/582 +f 1699/1715/628 1698/1714/627 1707/1724/615 +f 1701/1717/572 1700/1716/572 1709/1726/572 +f 1703/1720/608 1702/1719/607 1711/1728/613 +f 1705/1722/582 1704/1721/582 1713/1730/582 +f 1707/1724/615 1706/1723/614 1715/1732/619 +f 1709/1726/572 1708/1725/572 1717/1734/572 +f 1711/1728/613 1710/1727/612 1719/1736/629 +f 1713/1730/582 1712/1729/582 1721/1738/582 +f 1715/1732/619 1714/1731/618 1722/1739/621 +f 1717/1734/572 1716/1733/572 1723/1740/572 +f 1719/1736/629 1718/1735/616 1724/1741/620 +f 1721/1738/582 1720/1737/582 1725/1742/582 +f 1749/1766/554 1726/1743/554 1728/1745/554 +f 1728/1745/554 1727/1744/554 1730/1747/554 +f 1730/1747/554 1729/1746/554 1732/1749/554 +f 1732/1749/554 1731/1748/554 1734/1751/554 +f 1734/1751/554 1733/1750/554 1736/1753/554 +f 1736/1753/554 1735/1752/554 1738/1755/554 +f 1738/1755/554 1737/1754/554 1740/1757/554 +f 1740/1757/554 1739/1756/554 1742/1759/554 +f 1742/1759/554 1741/1758/554 1744/1761/554 +f 1744/1761/554 1743/1760/554 1746/1763/554 +f 1746/1763/554 1745/1762/554 1748/1765/554 +f 1748/1765/554 1747/1764/554 1749/1766/554 +f 1760/1777/637 1750/1767/630 1752/1769/632 +f 1812/1829/669 1753/1770/633 1755/1772/635 +f 1765/1782/641 1759/1776/636 1760/1777/637 +f 1755/1772/635 1754/1771/634 1762/1779/639 +f 2883/2940/746 1764/1781/640 1765/1782/641 +f 1762/1779/639 1761/1778/638 1767/1784/643 +f 1776/1793/650 1769/1786/644 1771/1788/646 +f 1767/1784/643 1766/1783/642 1773/1790/648 +f 1781/1798/654 1775/1792/649 1776/1793/650 +f 1773/1790/648 1772/1789/647 1778/1795/652 +f 1786/1803/657 1780/1797/653 1781/1798/654 +f 1778/1795/652 1777/1794/651 1783/1800/656 +f 1791/1808/660 1785/1802/651 1786/1803/657 +f 1783/1800/656 1782/1799/655 1788/1805/654 +f 1796/1813/648 1790/1807/659 1791/1808/660 +f 1788/1805/654 1787/1804/658 1793/1810/661 +f 1801/1818/664 1795/1812/662 1796/1813/648 +f 1793/1810/661 1792/1809/644 1798/1815/663 +f 1807/1824/667 1800/1817/638 1801/1818/664 +f 2884/2941/746 1802/1819/640 1804/1821/641 +f 1811/1828/635 1806/1823/666 1807/1824/667 +f 1804/1821/641 1803/1820/665 1809/1826/668 +f 1752/1769/632 1751/1768/631 1811/1828/635 +f 1809/1826/668 1808/1825/630 1812/1829/669 +f 1830/1847/687 1819/1836/676 1828/1845/685 +f 1842/1859/699 1839/1856/696 1830/1847/687 +f 1871/1888/728 1841/1858/698 1842/1859/699 +f 1852/1869/709 1847/1864/704 1848/1865/705 +f 1847/1864/704 1852/1869/709 1850/1867/707 +f 1860/1877/717 1843/1860/700 1857/1874/714 +f 1850/1867/707 1862/1879/719 1847/1864/704 +f 1847/1864/704 1863/1880/720 1845/1862/702 +f 1860/1877/717 1857/1874/714 1862/1879/719 +f 1854/1871/711 1861/1878/718 1857/1874/714 +f 1867/1884/724 1865/1882/722 1846/1863/703 +f 1878/1895/735 1866/1883/723 1867/1884/724 +f 1870/1887/727 1868/1885/725 1813/1830/670 +f 2333/2362/959 1869/1886/726 1870/1887/727 +f 1830/1847/687 1840/1857/697 1819/1836/676 +f 1841/1858/698 1871/1888/728 1873/1890/730 +f 1880/1897/737 1877/1894/734 1867/1884/724 +f 1882/1899/739 1879/1896/736 1880/1897/737 +f 2332/2361/958 1881/1898/738 1880/1897/737 +f 1872/1889/729 1883/1900/740 1884/1901/741 +f 1892/1909/651 1888/1905/652 1890/1907/742 +f 1896/1913/655 1891/1908/656 1892/1909/651 +f 1890/1907/742 1889/1906/648 1894/1911/642 +f 1898/1915/744 1895/1912/654 1896/1913/655 +f 1902/1919/644 1897/1914/743 1898/1915/744 +f 1894/1911/642 1893/1910/643 1900/1917/638 +f 1904/1921/645 1901/1918/746 1902/1919/644 +f 1908/1925/665 1903/1920/641 1904/1921/645 +f 1900/1917/638 1899/1916/745 1906/1923/634 +f 1910/1927/630 1907/1924/668 1908/1925/665 +f 1911/1928/633 1909/1926/669 1910/1927/630 +f 1906/1923/634 1905/1922/635 1911/1928/633 +f 1916/1933/564 1912/1929/564 1914/1931/564 +f 1920/1937/564 1915/1932/564 1916/1933/564 +f 1914/1931/564 1913/1930/564 1918/1935/564 +f 1922/1939/564 1919/1936/564 1920/1937/564 +f 1925/1943/564 1921/1938/564 1922/1939/564 +f 1918/1935/564 1917/1934/564 1924/1941/564 +f 1927/1945/564 1885/1942/564 1925/1943/564 +f 1931/1949/564 1926/1944/564 1927/1945/564 +f 1924/1941/564 1923/1940/564 1929/1947/564 +f 1933/1951/564 1930/1948/564 1931/1949/564 +f 1934/1952/564 1932/1950/564 1933/1951/564 +f 1929/1947/564 1928/1946/564 1934/1952/564 +f 1942/1960/648 1938/1956/647 1940/1958/652 +f 1951/1969/643 1941/1959/642 1942/1960/648 +f 1940/1958/652 1939/1957/651 1945/1963/656 +f 1945/1963/656 1944/1962/655 1949/1967/654 +f 1961/1979/639 1950/1968/638 1951/1969/643 +f 1949/1967/654 1948/1966/658 1954/1972/747 +f 1974/1992/752 1957/1975/748 1959/1977/749 +f 1971/1989/635 1960/1978/634 1961/1979/639 +f 2885/2942/750 1963/1981/750 1965/1983/751 +f 1958/1976/748 1957/1975/748 1969/1987/668 +f 1973/1991/669 1970/1988/633 1971/1989/635 +f 1969/1987/668 1968/1986/630 1973/1991/669 +f 1964/1982/751 1974/1992/752 1965/1983/751 +f 2886/2943/754 1954/1972/747 1975/1994/753 +f 2885/2942/750 1976/1995/754 1963/1981/750 +f 2887/2944/564 1887/1997/564 1978/1999/564 +f 2022/2044/779 1982/2004/756 1984/2006/758 +f 1984/2006/758 1983/2005/757 1990/2012/760 +f 1990/2012/760 1989/2011/759 1994/2016/762 +f 2888/2945/1217 1997/2019/763 1999/2021/765 +f 1999/2021/765 1998/2020/764 2003/2025/767 +f 2003/2025/767 2002/2024/766 2007/2029/769 +f 2889/2946/564 2008/2030/564 2010/2032/770 +f 2890/2947/771 2010/2032/770 2013/2035/771 +f 2007/2029/769 2006/2028/768 2015/2037/773 +f 2021/2043/778 2017/2039/774 2019/2041/776 +f 2478/2511/1052 2020/2042/777 2021/2043/778 +f 2015/2037/773 2014/2036/772 2022/2044/779 +f 2277/2302/931 2026/2048/783 2023/2045/780 +f 2019/2041/776 2018/2040/775 2038/2060/793 +f 2891/2948/549 2043/2065/549 2045/2067/549 +f 2853/2891/1215 2051/2073/798 2053/2075/800 +f 2892/2949/549 2058/2080/549 2060/2082/549 +f 2052/2074/799 2065/2087/804 2053/2075/800 +f 2434/2465/1034 2067/2089/806 2069/2091/807 +f 2893/2950/572 2078/2101/572 2080/2103/572 +f 2080/2103/572 2079/2102/572 2082/2105/572 +f 2081/2104/572 2083/2106/572 2082/2105/572 +f 2040/2062/795 2039/2061/794 2094/2117/812 +f 2816/2854/797 2095/2118/787 2096/2119/813 +f 2894/2951/1073 2103/2126/819 2105/2128/589 +f 1583/1594/586 2106/2129/821 2108/2131/816 +f 2160/2183/843 2118/2141/828 2120/2143/830 +f 2175/2436/570 2149/2172/570 2085/2108/570 +f 2895/2952/564 2166/2190/564 2168/2192/564 +f 2278/2303/932 2177/2202/582 2179/2204/852 +f 2896/2953/1218 2186/2211/859 2188/2213/861 +f 2382/2411/1008 2189/2214/862 2184/2209/857 +f 2210/2235/883 2206/2231/879 2208/2233/881 +f 2897/2954/570 2258/2283/570 2260/2285/570 +f 2898/2955/554 2261/2286/554 2263/2288/554 +f 2899/2956/1219 2264/2289/925 2266/2291/925 +f 2900/2957/549 2267/2292/549 2269/2294/549 +f 2901/2958/570 2270/2295/927 2272/2297/570 +f 2252/2277/923 2025/2047/782 2278/2303/932 +f 2287/2312/582 2282/2307/582 2283/2308/933 +f 2282/2307/582 2284/2309/582 2252/2277/923 +f 2283/2308/933 2285/2310/934 2287/2312/582 +f 2285/2310/934 2283/2308/933 2289/2314/935 +f 2023/2045/780 2027/2049/784 2292/2317/936 +f 2312/2339/570 2317/2345/570 2309/2340/570 +f 2322/2351/948 2318/2347/945 2320/2349/947 +f 2902/2959/564 2321/2350/564 2322/2351/948 +f 2903/2960/1220 1817/1834/674 2323/2352/949 +f 1871/1888/728 2324/2353/950 1872/1889/729 +f 2324/2353/950 2325/2354/951 1883/1900/740 +f 2334/2363/960 2325/2354/951 2327/2356/953 +f 1871/1888/728 1842/1859/699 2324/2353/950 +f 1836/1853/693 2329/2358/955 1835/1852/692 +f 2904/2961/1221 2329/2358/955 2328/2357/954 +f 2904/2961/1221 2328/2357/954 1879/1896/736 +f 1831/1848/688 1828/1845/685 2331/2360/957 +f 1819/1836/676 1821/1838/678 1833/1850/690 +f 2208/2233/881 2207/2232/880 2239/2264/912 +f 2370/2399/996 2347/2376/973 2202/2227/875 +f 2347/2376/973 2348/2377/974 2203/2228/876 +f 2351/2380/977 2352/2381/978 2354/2383/980 +f 2357/2386/983 2353/2382/979 2355/2384/981 +f 2344/2373/970 2350/2379/976 2360/2389/986 +f 2366/2395/992 2365/2394/991 2352/2381/978 +f 2364/2393/990 2366/2395/992 2351/2380/977 +f 2366/2395/992 2360/2389/986 2365/2394/991 +f 2366/2395/992 2364/2393/990 2360/2389/986 +f 2354/2383/980 2368/2397/994 2190/2215/863 +f 2368/2397/994 2244/2269/917 2191/2216/864 +f 2245/2270/918 2369/2398/995 2213/2238/886 +f 2369/2398/995 2227/2252/900 2211/2236/884 +f 2237/2262/910 2370/2399/996 2207/2232/880 +f 2229/2254/902 2349/2378/975 2230/2255/903 +f 2219/2244/892 2371/2400/997 2191/2216/864 +f 2371/2400/997 2373/2402/999 2372/2401/998 +f 2374/2403/1000 2235/2260/908 2372/2401/998 +f 2198/2223/871 2375/2404/1001 2231/2256/904 +f 2198/2223/871 2236/2261/909 2377/2406/1003 +f 2375/2404/1001 2378/2407/1004 2229/2254/902 +f 2905/2962/1222 2379/2408/1005 2375/2404/1001 +f 2378/2407/1004 2379/2408/1005 2232/2257/905 +f 2232/2257/905 2203/2228/876 2378/2407/1004 +f 2241/2266/914 2380/2409/1006 2240/2265/913 +f 2217/2242/890 2380/2409/1006 2218/2243/891 +f 2371/2400/997 2218/2243/891 2373/2402/999 +f 2226/2251/899 2239/2264/912 2234/2259/907 +f 2189/2214/862 2382/2411/1008 2187/2212/860 +f 2054/2076/801 2383/2412/1009 2118/2141/828 +f 2383/2412/1009 2054/2076/801 2094/2117/812 +f 2169/2193/847 2171/2195/849 2387/2416/846 +f 2387/2416/846 2386/2415/1010 2391/2420/827 +f 2391/2420/827 2390/2419/1012 2393/2422/826 +f 2393/2422/826 2392/2421/1013 2395/2424/1015 +f 2906/2963/554 2400/2429/554 2401/2430/554 +f 2606/2641/1097 2407/2437/1023 2409/2439/1025 +f 2407/2437/1023 2410/2964/554 2408/2438/1024 +f 2907/2965/564 2412/2966/564 2414/2967/564 +f 2908/2968/570 2417/2448/570 2419/2450/570 +f 2909/2969/564 2420/2451/564 2422/2453/564 +f 2910/2970/1223 2426/2457/1027 2428/2459/1027 +f 2433/2464/1033 2432/2463/1032 2430/2461/1030 +f 2432/2463/1032 2433/2464/1033 2434/2465/1034 +f 2911/2971/549 2435/2466/549 2437/2468/549 +f 2912/2972/927 2443/2474/927 2445/2476/570 +f 2163/2187/845 2463/2494/582 2278/2303/932 +f 2913/2973/582 2464/2495/1044 2178/2203/582 +f 2914/2974/935 2179/2204/852 2465/2496/935 +f 2468/2499/1047 2156/2179/839 2467/2498/1046 +f 2152/2175/837 2469/2500/1048 2150/2173/835 +f 2740/2777/1145 2471/2502/1050 2473/2504/1051 +f 2467/2498/1046 2151/2174/836 2470/2501/1049 +f 2915/2975/564 2474/2505/564 2476/2507/564 +f 2020/2042/777 2478/2511/1052 2480/2513/570 +f 2916/2976/1053 2481/2514/1053 2055/2077/802 +f 2917/2977/1053 2439/2470/1036 2482/2515/1053 +f 2533/2566/1059 2490/2523/570 2492/2525/1055 +f 2918/2978/1224 2493/2526/564 2495/2528/1056 +f 2919/2979/572 2496/2529/572 2498/2531/572 +f 2920/2980/582 2499/2532/582 2501/2534/582 +f 2497/2530/572 2502/2535/572 2498/2531/572 +f 2918/2978/1224 2495/2528/1056 2491/2524/1054 +f 2507/2540/1057 2504/2537/1057 2506/2539/564 +f 2539/2572/1069 2504/2537/1057 2508/2541/1058 +f 2921/2981/1061 2509/2542/1059 2511/2544/1061 +f 2922/2982/582 2512/2545/582 2514/2547/582 +f 2488/2521/582 2514/2547/582 2487/2520/582 +f 2529/2562/1066 2518/2551/570 2520/2553/1063 +f 2923/2983/554 2521/2554/554 2523/2556/1065 +f 2528/2561/572 2524/2557/572 2526/2559/572 +f 2924/2984/572 2503/2536/572 2527/2560/572 +f 2924/2984/572 2527/2560/572 2526/2559/572 +f 2520/2553/1063 2523/2556/1065 2529/2562/1066 +f 2925/2985/554 2530/2563/1067 2532/2565/554 +f 2492/2525/1055 2520/2553/1063 2533/2566/1059 +f 2920/2980/582 2501/2534/582 2486/2519/582 +f 2531/2564/1067 2530/2563/1067 2538/2571/1068 +f 2537/2570/1068 2539/2572/1069 2538/2571/1068 +f 2926/2986/1072 2552/2585/1072 2554/2587/1072 +f 2927/2987/1225 2560/2593/1078 2562/2595/1080 +f 2928/2988/1226 2573/2606/1086 2575/2608/1087 +f 2929/2989/1227 2576/2609/549 2578/2611/1088 +f 2608/2643/1091 2582/2615/549 2584/2617/1091 +f 2930/2990/572 2585/2618/1092 2587/2620/572 +f 2611/2991/570 2586/2621/1093 2588/2623/570 +f 2931/2992/1094 2589/2624/582 2591/2626/1094 +f 2854/2892/1216 2595/2630/1095 2065/2087/804 +f 2932/2993/572 2599/2634/572 2601/2636/572 +f 2599/2634/572 2602/2637/572 2600/2635/572 +f 2596/2631/1026 2593/2628/1026 2425/2456/1026 +f 2320/2349/947 2319/2348/946 2409/2439/1025 +f 2930/2990/572 2587/2620/572 2584/2617/1091 +f 2590/2625/582 2589/2624/582 2610/2645/1100 +f 2931/2992/1094 2591/2626/1094 2588/2647/570 +f 2933/2994/549 2612/2995/549 2609/2996/1099 +f 2614/2650/1101 2088/2111/808 2615/2651/809 +f 2934/2997/572 2616/2652/572 2618/2654/572 +f 2617/2653/572 2619/2655/572 2618/2654/572 +f 2619/2655/572 2621/2657/572 2620/2656/572 +f 2161/2184/570 2623/2659/570 2075/2100/570 +f 2800/2838/549 2627/2663/806 2629/2665/1102 +f 2935/2998/582 2630/2666/582 2632/2668/582 +f 2638/2674/549 2639/2675/549 2636/2672/549 +f 2936/2999/1105 2642/2678/1104 2644/2680/1105 +f 2788/2826/1179 2645/2681/1106 2629/2665/1102 +f 2937/3000/564 2649/2685/564 2651/2687/564 +f 2928/2988/1226 2938/3001/1228 2573/2606/1086 +f 2929/2989/1227 2578/2611/1088 2656/2692/1110 +f 2939/3002/549 2660/2696/549 2662/2698/549 +f 2940/3003/1229 2663/2699/1111 2665/2701/1113 +f 2669/2705/1117 2666/2702/1114 2668/2704/1116 +f 2663/2699/1111 2669/2705/1117 2664/2700/1112 +f 2941/3004/1118 2670/2706/1118 2672/2708/1119 +f 2941/3004/1118 2673/2709/554 2670/2706/1118 +f 2699/2735/572 2675/2711/572 2677/2713/572 +f 2656/2692/1110 2655/2691/1109 2682/2718/1120 +f 2298/2323/941 2301/2329/942 2684/2720/1122 +f 2568/2601/554 2647/2683/554 2569/2602/1085 +f 2684/2720/1122 2691/2727/1124 2298/2323/941 +f 2302/2327/943 2692/2728/1103 2694/2730/1125 +f 2624/2660/943 2695/2731/1125 2641/2677/1103 +f 2942/3005/570 2667/2703/1115 2697/2733/570 +f 2700/2736/572 2462/2509/572 2698/2734/572 +f 2943/3006/1126 2701/2738/1126 2703/2740/1126 +f 2759/2797/1151 2704/2741/823 2558/2591/1076 +f 2944/3007/549 2705/2742/549 2707/2744/549 +f 2711/2748/1129 2708/2745/1127 2710/2747/1128 +f 2936/2999/1105 2644/2680/1105 2711/2748/1129 +f 2945/3008/549 2712/2749/549 2642/2678/1104 +f 2946/3009/1130 2713/2750/1130 2715/2752/1130 +f 2947/3010/1131 2716/2753/1131 2718/2755/1131 +f 2948/3011/554 2719/2756/554 2721/2758/554 +f 2949/3012/1132 2722/2759/1132 2724/2761/1132 +f 2731/2768/1139 2725/2762/1133 2471/2502/1050 +f 2736/2773/1143 2728/2765/1136 2730/2767/1138 +f 2725/2762/1133 2731/2768/1139 2733/2770/1134 +f 2730/2767/1138 2734/2771/1141 2736/2773/1143 +f 2728/2765/1136 2727/2764/1135 2729/2766/1137 +f 2743/2780/1147 2737/2774/1137 2739/2776/1144 +f 2473/2504/1051 2738/2775/1046 2733/2770/1134 +f 2733/2770/1134 2732/2769/1140 2473/2504/1051 +f 2739/2776/1144 2741/2778/1048 2743/2780/1147 +f 2555/2588/1073 2099/2122/816 2649/2685/564 +f 2748/2786/1148 2749/2787/1149 2566/2599/1084 +f 2575/2608/1087 2574/2607/824 2759/2797/1151 +f 2950/3013/1230 2760/2798/1152 2762/2800/1154 +f 2765/2803/1157 2429/2460/1029 2763/2801/1155 +f 2627/2663/806 2766/2804/1033 2628/2664/1034 +f 2764/2802/1156 2767/2805/1158 2768/2806/1159 +f 2775/2813/1166 2769/2807/1160 2771/2809/1162 +f 2771/2809/1162 2770/2808/1161 2773/2811/1164 +f 2779/2817/1170 2774/2812/1165 2775/2813/1166 +f 2773/2811/1164 2772/2810/1163 2777/2815/1168 +f 2783/2821/1174 2778/2816/1169 2779/2817/1170 +f 2777/2815/1168 2776/2814/1167 2781/2819/1172 +f 2787/2825/1178 2782/2820/1173 2783/2821/1174 +f 2781/2819/1172 2780/2818/1171 2785/2823/1176 +f 2789/2827/1180 2786/2824/1177 2787/2825/1178 +f 2785/2823/1176 2784/2822/1175 2788/2826/1179 +f 2762/2800/1154 2761/2799/1153 2789/2827/1180 +f 2951/3014/1157 2790/2828/572 2792/2830/1181 +f 2952/3015/549 2795/2833/549 2797/2835/549 +f 2633/2669/564 2794/2832/564 2799/2837/564 +f 2069/2091/807 2068/2090/549 2629/2665/1102 +f 2805/2843/1186 2806/2844/1187 2801/2839/1182 +f 2806/2844/1187 2808/2846/1189 2807/2845/1188 +f 2808/2846/1189 2812/2850/1191 2809/2847/937 +f 2812/2850/1191 2810/2848/1190 2813/2851/944 +f 2096/2119/813 2249/2274/920 2816/2854/797 +f 2250/2275/921 2160/2183/843 2817/2855/1193 +f 2817/2855/1193 2815/2853/1192 2250/2275/921 +f 2824/2862/1200 2818/2856/1194 2820/2858/1196 +f 2826/2864/1202 2819/2857/1195 2821/2859/1197 +f 2820/2858/1196 2822/2860/1198 2824/2862/1200 +f 2804/2842/1185 2182/2207/855 2805/2843/1186 +f 2805/2843/1186 2394/2423/1014 2806/2844/1187 +f 2808/2846/1189 2390/2419/1012 2812/2850/1191 +f 2808/2846/1189 2806/2844/1187 2390/2419/1012 +f 2812/2850/1191 2386/2415/1010 2810/2848/1190 +f 2257/2282/554 2828/2866/554 2255/2280/554 +f 2254/2279/924 2810/2848/1190 2389/2418/1011 +f 2041/2063/796 2246/2271/919 2036/2058/791 +f 2036/2058/791 2254/2279/924 2041/2063/796 +f 2290/2315/570 2316/2344/570 2279/2304/570 +f 2855/2893/1026 2837/2875/1026 2842/2880/1026 +f 2843/2881/1026 2605/2640/1026 2844/2882/1026 +f 2953/3016/1231 2845/2883/1207 2847/2885/1209 +f 2953/3016/1231 2847/2885/1209 2849/2887/1211 +f 2954/3017/1210 2850/2888/1212 2852/2890/1214 +f 2051/2073/798 2853/2891/1215 2850/2888/1212 +f 2845/2883/1207 2595/2630/1095 2846/2884/1208 +f 2839/2877/1026 2592/2627/1026 2840/2878/1026 +f 2315/2343/570 2161/2894/570 2310/2337/570 +f 2955/3018/572 2856/2895/572 2858/2897/572 +f 2956/3019/570 2862/2901/570 2864/2903/570 +f 2859/2898/554 2861/2900/554 2866/3020/554 +f 1472/1483/549 1474/1485/549 2957/3021/549 +f 1472/1483/549 1477/1488/549 1476/1487/549 +f 1477/1488/549 1472/1483/549 2957/3021/549 +f 1555/1566/581 1475/1486/550 1477/1488/549 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon.png index 93e7958ea079061f61a8271916cacd7c2472ee19..a3ff7b54353c1b1734e810502a00e4d93521396b 100644 GIT binary patch literal 7611 zcmV;s9Yo@ZP)4UHt=rvXfSqW9VFE*pWYaX5rPc%tQ?omi;XK8l zK|c7Eau~>V0tBXHC6T}diSTEMCAbh3M<#_J2m}GLsTV)^K|%x=Fd)Dtmn#c2RwJ%A z5!N9rKO`JytRd{-blsIxx?yBBhQ^)~!d%C;+y6V*V`ObGvsmC9Cn6|dJ z@ye^ODSSY(e_@vb5p<;h51e`CO6yq8?tY9)>%Dp9`-6`8@y8xc>woR*-@2v0^ZKPd zGFrh0g3$_g!hgF3!5W1?z`dV;{R2CK&+?U5u9g*a-I-s!v2fr=*&}>|G!nF>MLKpwRh$wGOt7W zdv-_F`tHpu-&Z$liEgI^B50+c6(5QRAF5jf=t{xWK7DtqrF&lPKYe%l``v>h0Kmb) zdxOu@wU^EjJOBe|5TG=Uj~xKOXoUx!{Z4T^Rq4YILcCWnW?5HOov8ay-%Uer0E-~q3Ip_ao3f;P>fcA^pH0ZtM8oE6CVfa{m`=)Nc4xNSy5md!x4D0{{hB5CRl5fIIKBaJ2_~|9X1-;of?gRvNRZhBXR)5mqkSJyAm> zcVo^I+#(hjs}|8q9i*zr&{mFDAdv6A&w3YVU2>F zXiO^&qgCTRNlu_&C~Q%yFN z`*xr?QSTlc;o#uCmb>fo{rPVS1nBsytyXXgzSCgXjaj2$^ze(V6$jH=@wVB$u{(eV zKmpbm*y!@EU)rNUoV{tKaOOX*cAM8;I!C9^Usn4UcIm0_nAW-2**Vox91&3tZBV`*_S6!O+^6uBAkM3RL<|-j7wJ(mtFg00cX!U`;zryK83)eQ{4;z`aUz#g@Z6 zN_JQqf)5&?0JqSXhkEe#0s+%0Z^$hI91(m_2+p$$2%3K%1$LQWtE3SS1{}SQ@l>b@ zckOK9-Gif|=%d?$mkCs#V=VrE5WSN2n4)+?T0OY-)D(#W}m>YV1AwCcO@cn z4RFQ=51;}<%|SMwbOpqVaq|9px5?SjaQ9l0C3mJY0#G!cLb*aECTd2o`Zc22E~iN?xX z&+U?(=q8Aa^(|2jL7)LNwJ=8vA`(TD-W-n6Dw%iZ8{}F7X=5~7+UO2oz%FF&*QU+@ zUvRBhStX#B-(6Cs{JV8AqbGt10YMwiQcXPWn&U%6MFJWq!$n+;<0y9H70_JJ+Z`9l z_PbVrO(-qZ%>Y)UK1;Moc4id85L*aH#z6r-URViw0l+GSv(N40&F9YG3xD)?X&b+} zH%os@d4rWnA=CsP0Am%rCm6I*ZMVo=s1LaI(mC>r0OvVd^FAuDA!uUYPgg1_y_}PE z^7geK7C+zFIRzJL%ql=z4Pz9C5}IJOii#gGF7M%jO2DaB3fAbPNOHX@0I7nXSG#k$ znacMoufC=v`vckvB>VmB%MYb&q4c9mmZg)378oFs~CUsfjCQ>@V2BVD>9vBP9SDS!4qsnFvhTDR`D3>02s5BX^lxJa#&zy z|At-e9r3q#j@ukqc?A^pL1ShGLFE^Ag(@kK^8?)3t*U&l!j()s(0Lu;T^kI0^pU-y zVoR_%rU-j2Qy_{c zxM52dl{8u4NhBgCf*vh2wlnVzWi<+1MQ3A zKJaXFEN?xxOIiT|&4ud9{)JsK6OG^8o3&14I`(K`e4um@#Pzs32CzZF69MqhnF7kX zS^=1vSo9>A%0L@}j-{EgvI>j@fRjZH@8fY)8uOC?OR5DjN-Susft!~8(I^l>v{w1P1zmalu3nMf^7VJ<*iCS1bsIP>(C z;)%I_X^#vM0FC?3x3Q?}m-a}j#(GVs8uODHPyjp!^|=m}0_DCNX;lW7z(u8iI>1&2 zcA^p_k>4oZN%koe7mi)|l|SoMqEe8}cU*aS$!>rcv?>Oo9D2=kXdQi z0+r|?e!*#dpSTFvdDnj&Vr|wjAiD{MBo?{Cly0mpSo@Wp?eD*Mj(jZ9m{?%U8Ji#d ztv@LqUopq*%hIM(%^KU?`3vW0UNgOdO}d7$NHK?23a+j(U!X{bkd#?Ktgigv3lCAA z4!hdJIf5~S5IBwsF{>F%xA^We50dPgi=~2z0M=4N=P-&%TV2WAS4l!mI6ki7>M~&H zJR{wrKsky&R>V>r9K5%gm8OuY_HH4mylUWyp5q(MP3WGm>zDS(SiU2*QYl-3M?^-s zqHT?4KW}L1K;!_m!cq)y{n8%!z=3Iqm3~_p%qEQ+bal<#AOyJDWE|5s$yP{F$jT)VLC?UxgwP;>;8pZvN~Ep z3Vh-~jDZ*cbwF@Fk^9MmrAD?>&D9uk%`n430%`T z*pR3v6^_fk@?KL2r=*CA1I zrH3^Cz8rKK{Dv&O{h|e|DXTWFE1^)wY`nceB>Pfd}j)j zFDKxh&kbvf5i+<};JZC$2_^wt4JI)^siCz-2mwET;ZFx`fB(WR8KW6cB&L>p;q3Wx009e5^2&goqi0=a+u1kKaUj*2x zNoAKjaJ_zMkK|&BVZQhCulF`A^hp;ZTBk&bs1LUG48kt2(!JJ$ERkR=l8$PnVhmE= z=qfpV{<6CE(m67b`>mBqWd_DfqQ+~2BaBiYfP2-|H#7=VKUKx*Mk)Z zV7iEuDN2B&)@)@H;or03*vdrGo9DPLDiFZu)0*YXN8p6KUbV{NbiXTsjH|%PcMp#6 zYkyFJ4=81YVj;V-Qi-}03h89=kuuDEZ4#~ZUQgoFi|67XIeK^so;_W)O=saOIOPNFNE-rzPKf6wBI&%*3bUC`9TW1MxP_S=uS6j1fp^Z1G7SkG(Ax0U;JIb>|A12#Xu7RwB)PqLsp(Q^Q>F5UHg@ ze6G@f_RPmNhN-i0y)MA&78KzOgX4LfmRseDO0us1Y!%6^M8y>ka^I70s60LzoZ=rH z9>RQtsSZXfXz%%MAIQ+lMXKJ`D0ndS;3R7z6pE(VkhaQDgirL&TzrTGGp`cEZ;aR} zSK<*ENVU)izMq0C5-4Un6_erbwp9Le7k*$mx{$` zm>0mv+L@gwXcuV$#=yCN5XN5!38du)bc>L%o!}MbHM@vSf@**{F~%@7u+)dBblP7o zLj!9GdbJ|BI=~B%x<(ihq14ov7y*SFg}F$9xz1}&LRWc)wg>e|*X1o8R{^pfY>BqE zw{dcElu}Ob1B}(MYCOX>xy6ckJL1x?Fhc8rjv1g2<1O7{5jcehAVpOXJJB$t(=iMs z+{toJJDLq;opAvFW`TIS*337VXGgdedwy8kO+?l2HaiYmUqwCj7juUkyU|o zDNEZ#R;~NuRo?gGk3CG!TxmYvysy`Dx5E6S#{LV#i=NkCI@>~F0i>7+Xm?;R`!JLX zpFQ&3XC5SJanTWQ%*7hj&{-?hi+vQ2Ju9VfcGZxya%sIc?QRmOwS~H=83Jt#h6C5g zA~Z-@aVd6@3!cX}ckOH~Db>!-Dcpbh?pE7%pU5)u@6kv0=+Q^^Xlr}B94nVLk}sIA zDCDct=PxVq@y-*VL#v+DC;Km)qxn1}q}u2PWXmn(y`O(w*?5h#l>RsMUV48l!&%<#MM+v^qS+QoB}ilxN$wVc*+`ut^e=Bdl-^!dx`%rjTi z>8CHN`<{G5oj!kA2@S+A*n(TlH9E=i#H~v`(bb+yNQ!@ZDP{t&q%7T(U6eo+D_^Fo zWcf1rHcFpwZEv?M_^9km#;^cfo!-B=OY=FW{?;h$U)UuniEzD$AQ^gy8J*Q8Ss|&l zNh6)mFy*`Jm-YxAsqlLJrL!b~x7?`#`6Lkntbu=@iCsbz>&AC^b|G}tzx0uf~ z9Oj&|Du4SxfL~@R$no^awTtJ7iCw%JQ*up1?)S~U?*07hN-MR*&Ky(U>yvj6j_~%i zAEuN($B_DBt*#ZzydD#xldu#)dtB%M8x3%bHE9 z;wTk2_n6N)M#%ApwEY-+2x4jtGc0XHwC$wHf=ZN*RUIoI{jEPy^Lc2Pd=rh?jQ^!$ ziHyfmp*an4=n=`@yju{{f3bXnfkKMm;dUXwFlX24z+X{s1_kBms>Hau1}e6=X6&_$eZ$u^pwdsn(0(Wm!`4*B3rEl z3)Bpl%5N_z!n)E&SGsY~y7luhejoklPmWijt^@*n&qeO*ZXF^LINy#=5@7rcr70GAZr}HSw^h*jJX<34shdl2J3UxNR%5-18PCPwh+iQJ(_!DNVNkTiVx$ zPL)HPQA#8&!+o;ph06QAON{{Q~pv6Te zcV{%hBEU}cQk#^xJid_>f|1^@_2*;Apoet@+wS^Z{ArbpQX(DzHD-V%j*WyFcN}SEj(yd+*6XiI475NmZ^`pS5%_jK=d|UWZ^@@>$UASw_CbAn>us|p?`7FOZp}Mi`UFXkIiH7CYCWCmND}+;GDrXZKRnS=s-OF%_H#zU zRmaoJvZAt?sFp$iF|ChOUn%dT7;w^1jscaZAc&wOFpRg=4W9c(6_2U#=gWTRRI`mi zwKJeS4h8`9-TVXhFYc19juI#4sh>Sd#_-O3IO1B;U0{B+2cWr6{`ha3p_n;P>^%>e z;&k@5K{kU#=0%EZ4T!}9H5@6oAUH!z8;%oV85VJ7qvPrQCeAgI>OCtMGZBo@ zIC;M=CLHVPTYb|(?mvC^p!rU#llqAyeUeE?4L=_SjTV_@RXid}?nk@i$MQMIqvokR9g%c(#TXuLKlY53Sg#Q#I*yrZ zn1ZDO@2wVbqZ*An66-kjgc_sM)O;Nq15Qrb4VfZ=%2s@coO$L-YNPIpRq{Z3l~w9% zeguXM(&~QS>u7UEqrAG>wO()>iD?6tq4 zFsLs-@rwii-}{UA@UuU4s`Uy0|MkEB+0t*4^O8R>W|L{MBI{;e=WejOZZFsfEXNX| zZh*90yvk+^$q?{Tk3I#2TEoOA9r6IIhL4joA4{hD(MR@3h6`+>KqB)wcdo)n4_MsP z29`qNA>l#G&~%_p#4n8jY!vFa`_lZMN719IT^>is_SFj*iC@oQ27*(O(yEg zxEF0r>oJ`&2pt}9MC@KofUBE%kUW*Gtrd1^THvWe@ zIz?I~gHrr76~uEYnm_dA=kpMu^r-_R@-7kPm>H*O*QCbflqMp6g=VE*?SELU!7E?1IoZDlV+9 zVq}iBM17Oe^7kc+-IsB#L%d7-D9NZ^eB4#|tRST-|JL?4{>xwS`z}p(|H3ZuJVcJC zk_+u9NnW!XV~JWZUM!Saqf;N9A;2k}rndn|{2pTroT+&zrp$B9#4QNc5}en#^9}>} z&^*6m%|r2qTB1iE*&F;cC7=yD4ppFBy8Ub2ku_ZzjHPdFZ?^*GvFZ1!4ibQ^6j$?^ z_4dlEuc@E8=We`t<@@SGry4HH*S`L()QtGxgAd@%E8kDc4Vp0&yG~9{Lh9gko<|vr z0=WSGJT#N?eN><>j>X4qVjVF)<17;UOQ37+PQLQhZ>b?Hfp2{C4b@E=x{Zq>`3T~^ zjBA~{8ym!r8~kZEpXswo0ue%dhWx6>5OlM}O?cg*=BMd6A26>a@b!$iM?$^T6frMe zM_a?6p?rKk5bR8+fLb0b*Jp{uQfy+0ax1cm4pMS$eHLg)c6Qg!*3DZYAZBMZ-4qDe zyKby0*~;`T(`6NGvTvEbW+$45iV~WPkOEtgscAju;?9XY!m@d?qDZ$~B2b6S)$U4u zA;wywp*613zJ{*52|sC6Of>t5#_@4~VPgo=TpS3X6r=@O)LLBAx>pJE<#FseMWG~T zp1Bf-cSh!b5~?bIMZ0h;(_(@Cwjx2Ly6E?i| d0`5MA{eN@cN281!6S@EZ002ovPDHLkV1m!}pUwaP delta 2256 zcmV;>2ru`$JL?gUGk*x8Nkl--#vh`Klj|n6FToY2!8<6&S&57WNHRnc!feN zLAK4pTaYG%0K`5EQuabr2}ztL+Edsxv<~mB2(syj-&9X*I__Yoq*yCw?iK-y#l8yCH&Zik!0w~1i3*2JRG#Rl z^%Bftie{qW?UTi6XD`bx~!u7AQ`h(d-77-Q08MIj@fXe~?+#a;#R|B0&M}CP05etCg6R|e$oe-bjw|8B8)C)zi=JDT^OPU&aYN8#4 zZTLd0?tGDwJeGQ+($!nHi(_h7kYtx5T*=NlZInQlg3>feOE8#gBXv3ZYy%9k!k zrB5;)NcjQfI|6{n=q%DT?cue|Z^X?1j4~=<@SP(jX5rBkwq92vpa6?Z4 z04MaN)#m)ms3yd(x@Nnyhd}kqNLin=U;zn*ND2zj6`s1ijXNqi?nSYN^tjc@C zx`l6UBpW-Ef&$nz5%5Ldt)#29hsv5B3U_>njNeaWqh+ESJ9g%X?pmpkA=n#DR26My zms<%1wVR`#Q-}tV2o|FGd|n@Pv)Qm1O{61G5Q3ki1N>0sh3W`RA}Bih?XS5wIy$P? z&*yV-L;u$8DKyc(XrP=?Xn!Go^5`t3CNkIm`lC~i>{CxvL09WZW=QNgf`n+Z*)ZLl zZRly;wrQd_yey|!Rmw2st8iJFyJGspzgUO|2)Zb>FkJxr4^h4r`5BeVPkS74Y9QsO zrX9kfGaL3O_oCPb$94Hbo`eGekb+tti7DoAgy%!ielQ2&UFb552ePvldg zp_(!}2lzELrtBGkwqVXAkIot(2V(O~i@%H7ndShnE?Y^)&Qinm1)vlY25jSHy2&_> zKU6eA28u^RDL71>Vt*1rVq;$g$R9N z=$M*lr~p;7JcTrA)thWZZPLCr7$$jUIqytP&sEb1<@!xaDAnyU`FVSL+Z9~3#@dx9 zqIUcEV`YBIW%2~Asn*-w5FVlu4BxO&{^ta+2hU=5*X#pOEbe{DGLY|j-oXS(prZTa?# z!J_1lg$QccOMk99sbA=2H=wASa(_ zEg;r`M+l0}TqY0;D($Cj>A)iaj~who+=?3pHY*^?Hh;to<7FGbw}0NEyFKqw_ZXij zrf>{M5ZzhsU9=`*&(Zyce4hY$yuxKxb$O()_O75fh4ArreEUs>6wz7NmL||dKq(xL ze0aNqo;;D8o3x1WiDETTG%P+*P;{okXscbCXx*Qnn-MT0h(`iu1;o(yV^1NOa~!Je zYYEHxBuS9h&gD|bey`u9<{%BS96Jj&V|Ck+M4n1GCnj< e^kH0fg7H5WcW1F8TR-^#0000 Date: Tue, 11 Jul 2023 16:06:44 +0200 Subject: [PATCH 192/432] cryo cannon --- .../hbm/handler/BulletConfigSyncingUtil.java | 4 + .../hbm/handler/guncfg/GunEnergyFactory.java | 35 ++++++- src/main/java/com/hbm/items/ModItems.java | 3 + .../com/hbm/items/weapon/ItemCryoCannon.java | 30 ++++++ .../hbm/items/weapon/ItemGunChemthrower.java | 4 +- src/main/java/com/hbm/main/ClientProxy.java | 1 + .../java/com/hbm/main/ResourceManager.java | 2 + .../weapon/ItemRenderWeaponCryoCannon.java | 91 +++++++++++++++++++ src/main/resources/assets/hbm/lang/de_DE.lang | 1 + src/main/resources/assets/hbm/lang/en_US.lang | 1 + 10 files changed, 170 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/hbm/items/weapon/ItemCryoCannon.java create mode 100644 src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponCryoCannon.java diff --git a/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java b/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java index d3262d8b9..c37a03eed 100644 --- a/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java +++ b/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java @@ -167,6 +167,8 @@ public class BulletConfigSyncingUtil { public static int FLAMER_VAPORIZER = i++; public static int FLAMER_GAS = i++; + public static int CRYO_NORMAL = i++; + public static int FEXT_NORMAL = i++; public static int FEXT_FOAM = i++; public static int FEXT_SAND = i++; @@ -458,6 +460,8 @@ public class BulletConfigSyncingUtil { configSet.put(FLAMER_VAPORIZER, GunEnergyFactory.getVaporizerConfig()); configSet.put(FLAMER_GAS, GunEnergyFactory.getGasConfig()); + configSet.put(CRYO_NORMAL, GunEnergyFactory.getCryoConfig()); + configSet.put(FEXT_NORMAL, GunEnergyFactory.getFextConfig()); configSet.put(FEXT_FOAM, GunEnergyFactory.getFextFoamConfig()); configSet.put(FEXT_SAND, GunEnergyFactory.getFextSandConfig()); diff --git a/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java b/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java index 55335e415..1ecf00f06 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java @@ -191,7 +191,7 @@ public class GunEnergyFactory { config.reloadDuration = 20; config.firingDuration = 0; config.ammoCap = 1; - config.durability = 1500; + config.durability = 2_500; config.reloadType = GunConfiguration.RELOAD_FULL; config.allowsInfinity = true; config.crosshair = Crosshair.CIRCLE; @@ -207,6 +207,30 @@ public class GunEnergyFactory { return config; } + + public static GunConfiguration getCryoCannonConfig() { + + GunConfiguration config = new GunConfiguration(); + + config.rateOfFire = 1; + config.roundsPerCycle = 1; + config.gunMode = GunConfiguration.MODE_NORMAL; + config.firingMode = GunConfiguration.FIRE_AUTO; + config.firingDuration = 0; + config.ammoCap = 1_000; + config.durability = 10_000; + config.reloadType = GunConfiguration.RELOAD_FULL; + config.allowsInfinity = true; + config.crosshair = Crosshair.L_CIRCLE; + + config.name = "Cryo Cannon"; + config.manufacturer = EnumGunManufacturer.DRG; + + config.config = new ArrayList(); + config.config.add(BulletConfigSyncingUtil.CRYO_NORMAL); + + return config; + } public static GunConfiguration getVortexConfig() { @@ -698,6 +722,15 @@ public class GunEnergyFactory { return bullet; } + + public static BulletConfiguration getCryoConfig() { + BulletConfiguration bullet = new BulletConfiguration(); + bullet.ammo = new ComparableStack(ModItems.gun_cryolator_ammo); + bullet.ammoCount = 100; + bullet.bulletsMin = 1; + bullet.bulletsMax = 1; + return bullet; + } public static BulletConfiguration getTurbineConfig() { diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 1efbd5f96..50a667323 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1584,6 +1584,7 @@ public class ModItems { public static Item gun_immolator_ammo; public static Item gun_flamer; public static Item gun_cryolator; + public static Item gun_cryocannon; public static Item gun_cryolator_ammo; public static Item gun_fireext; public static Item gun_mp; @@ -4213,6 +4214,7 @@ public class ModItems { gun_flamer = new ItemGunBase(GunEnergyFactory.getFlamerConfig()).setUnlocalizedName("gun_flamer").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_flamer"); gun_cryolator_ammo = new Item().setUnlocalizedName("gun_cryolator_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_cryolator_ammo"); gun_cryolator = new GunCryolator().setUnlocalizedName("gun_cryolator").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_cryolator"); + gun_cryocannon = new ItemCryoCannon(GunEnergyFactory.getCryoCannonConfig()).setUnlocalizedName("gun_cryocannon").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_cryocannon"); gun_fireext = new ItemGunBase(GunEnergyFactory.getExtConfig()).setUnlocalizedName("gun_fireext").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_fireext"); gun_mp = new ItemGunBase(Gun556mmFactory.getEuphieConfig()).setUnlocalizedName("gun_mp").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_pm"); gun_bolter = new ItemGunBase(Gun75BoltFactory.getBolterConfig()).setUnlocalizedName("gun_bolter").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_bolter"); @@ -7030,6 +7032,7 @@ public class ModItems { GameRegistry.registerItem(gun_immolator, gun_immolator.getUnlocalizedName()); GameRegistry.registerItem(gun_flamer, gun_flamer.getUnlocalizedName()); GameRegistry.registerItem(gun_cryolator, gun_cryolator.getUnlocalizedName()); + GameRegistry.registerItem(gun_cryocannon, gun_cryocannon.getUnlocalizedName()); GameRegistry.registerItem(gun_fireext, gun_fireext.getUnlocalizedName()); GameRegistry.registerItem(gun_mp, gun_mp.getUnlocalizedName()); GameRegistry.registerItem(gun_bolter, gun_bolter.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/weapon/ItemCryoCannon.java b/src/main/java/com/hbm/items/weapon/ItemCryoCannon.java new file mode 100644 index 000000000..5fabc3e32 --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/ItemCryoCannon.java @@ -0,0 +1,30 @@ +package com.hbm.items.weapon; + +import com.hbm.entity.projectile.EntityChemical; +import com.hbm.handler.GunConfiguration; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.packet.GunAnimationPacket; +import com.hbm.packet.PacketDispatcher; +import com.hbm.render.anim.HbmAnimations.AnimType; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class ItemCryoCannon extends ItemGunBase { + + public ItemCryoCannon(GunConfiguration config) { + super(config); + } + + @Override + protected void spawnProjectile(World world, EntityPlayer player, ItemStack stack, int config) { + + EntityChemical chem = new EntityChemical(world, player); + chem.setFluid(Fluids.OXYGEN); + world.spawnEntityInWorld(chem); + + if(player instanceof EntityPlayerMP) PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(AnimType.CYCLE.ordinal()), (EntityPlayerMP) player); + } +} diff --git a/src/main/java/com/hbm/items/weapon/ItemGunChemthrower.java b/src/main/java/com/hbm/items/weapon/ItemGunChemthrower.java index 880813acd..e58c89eee 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGunChemthrower.java +++ b/src/main/java/com/hbm/items/weapon/ItemGunChemthrower.java @@ -84,7 +84,8 @@ public class ItemGunChemthrower extends ItemGunBase implements IFillableItem { public boolean canReload(ItemStack stack, World world, EntityPlayer player) { return false; } - + + @Override protected void spawnProjectile(World world, EntityPlayer player, ItemStack stack, int config) { //spawn fluid projectile @@ -96,6 +97,7 @@ public class ItemGunChemthrower extends ItemGunBase implements IFillableItem { if(player instanceof EntityPlayerMP) PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(AnimType.CYCLE.ordinal()), (EntityPlayerMP) player); } + @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index e76d700c5..a262b8fb9 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -523,6 +523,7 @@ public class ClientProxy extends ServerProxy { MinecraftForgeClient.registerItemRenderer(ModItems.gun_benelli, new ItemRenderBenelli()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_uac_pistol, new ItemRenderUACPistol()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_coilgun, new ItemRenderWeaponCoilgun()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_cryocannon, new ItemRenderWeaponCryoCannon()); //multitool MinecraftForgeClient.registerItemRenderer(ModItems.multitool_dig, new ItemRenderMultitool()); MinecraftForgeClient.registerItemRenderer(ModItems.multitool_silk, new ItemRenderMultitool()); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index c18f309c9..faf9b227a 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -751,6 +751,7 @@ public class ResourceManager { public static final IModelCustom tau = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/tau.obj")); public static final IModelCustom benelli = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/benelli_new.obj")).asDisplayList(); public static final IModelCustom coilgun = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/coilgun.obj")).asDisplayList(); + public static final IModelCustom cryocannon = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/cryo_cannon_alt.obj")).asDisplayList(); public static final IModelCustom uac_pistol = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/UAC pistol.obj")).asDisplayList(); //TODO: reduce this fat fuck public static final IModelCustom lance = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/lance.obj")); @@ -844,6 +845,7 @@ public class ResourceManager { public static final ResourceLocation tau_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/tau.png"); public static final ResourceLocation benelli_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/benelli_tex.png"); public static final ResourceLocation coilgun_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/coilgun.png"); + public static final ResourceLocation cryocannon_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/cryo_cannon.png"); public static final ResourceLocation uac_pistol_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/pistol_texture.png"); public static final ResourceLocation lance_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lance.png"); diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponCryoCannon.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponCryoCannon.java new file mode 100644 index 000000000..437df58bd --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponCryoCannon.java @@ -0,0 +1,91 @@ +package com.hbm.render.item.weapon; + +import org.lwjgl.opengl.GL11; + +import com.hbm.main.ResourceManager; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraftforge.client.IItemRenderer; + +public class ItemRenderWeaponCryoCannon implements IItemRenderer { + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + switch(type) { + case EQUIPPED: + case EQUIPPED_FIRST_PERSON: + case ENTITY: + case INVENTORY: + return true; + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { + + return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + GL11.glPushMatrix(); + + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glEnable(GL11.GL_LIGHTING); + + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.cryocannon_tex); + + switch(type) { + + case EQUIPPED_FIRST_PERSON: + + double s0 = 0.25D; + GL11.glRotated(25, 0, 0, 1); + GL11.glTranslated(1, 0, -0.3); + GL11.glRotated(80, 0, 1, 0); + GL11.glScaled(s0, s0, s0); + + break; + + case EQUIPPED: + + double scale = 0.5D; + GL11.glScaled(scale, scale, scale); + GL11.glRotatef(15F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(10F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(15F, 1.0F, 0.0F, 0.0F); + GL11.glTranslatef(0.75F, -2.5F, 3.5F); + + break; + + case ENTITY: + + double s1 = 0.25D; + GL11.glScaled(s1, s1, s1); + GL11.glTranslated(0, 0, 3); + + break; + + case INVENTORY: + + double s = 2.5D; + GL11.glTranslated(1, 6, 0); + GL11.glRotated(-135, 0, 0, 1); + GL11.glRotated(-90, 0, 1, 0); + GL11.glScaled(s, s, -s); + + break; + + default: break; + } + + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.cryocannon.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPopMatrix(); + } +} diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index d11971bbd..544d8c28f 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -1966,6 +1966,7 @@ item.gun_stinger_ammo.name=Stinger-Rakete (LEGACY) item.gun_super_shotgun.name=Super Shotgun item.gun_supershotgun.name=Super Shotgun item.gun_thompson.name=Thompson Maschinenpistole +item.gun_uac_pistol.name=UAC .45 Pistole item.gun_uboinik.name=Ubojnik item.gun_uboinik_ammo.name=12x70 Schrotmunition (LEGACY) item.gun_uzi.name=IMI Uzi diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 3f126767e..18ca110d5 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -2660,6 +2660,7 @@ item.gun_super_shotgun.name=Super Shotgun item.gun_super_shotgun.desc=It's super broken! item.gun_supershotgun.name=Super Shotgun item.gun_thompson.name=Thompson Submachine Gun +item.gun_uac_pistol.name=UAC .45 Pistol item.gun_uboinik.name=Uboinik item.gun_uboinik_ammo.name=12x70 Buckshot (LEGACY) item.gun_uzi.name=IMI Uzi From 6bd552f3be3bb475c9817c6927e8cd742288349d Mon Sep 17 00:00:00 2001 From: Bob Date: Wed, 12 Jul 2023 23:23:14 +0200 Subject: [PATCH 193/432] cryo cannon, bullet stuff --- changelog | 9 + .../com/hbm/entity/mob/EntityGlyphid.java | 5 +- .../entity/projectile/EntityBulletBaseNT.java | 231 + .../hbm/entity/projectile/EntityChemical.java | 12 +- .../entity/projectile/EntityThrowableNT.java | 31 +- .../java/com/hbm/extprop/HbmLivingProps.java | 22 + .../com/hbm/handler/BulletConfiguration.java | 6 + .../com/hbm/handler/EntityEffectHandler.java | 40 +- .../com/hbm/items/weapon/ItemCryoCannon.java | 88 + src/main/java/com/hbm/main/ClientProxy.java | 8 + .../java/com/hbm/main/ResourceManager.java | 4 +- .../weapon/ItemRenderWeaponCryoCannon.java | 31 +- .../item/weapon/ItemRenderWeaponFFBolt.java | 7 +- .../assets/hbm/models/weapons/cryo_cannon.obj | 14127 +++++++++------- .../hbm/models/weapons/cryo_cannon_alt.obj | 8217 --------- .../textures/models/weapons/cryo_cannon.png | Bin 7611 -> 7619 bytes .../models/weapons/cryo_cannon/fill_0.png | Bin 144 -> 117 bytes .../models/weapons/cryo_cannon/fill_1.png | Bin 148 -> 124 bytes .../models/weapons/cryo_cannon/fill_10.png | Bin 153 -> 126 bytes .../models/weapons/cryo_cannon/fill_11.png | Bin 140 -> 125 bytes .../models/weapons/cryo_cannon/fill_12.png | Bin 142 -> 124 bytes .../models/weapons/cryo_cannon/fill_13.png | Bin 141 -> 124 bytes .../models/weapons/cryo_cannon/fill_14.png | Bin 138 -> 117 bytes .../models/weapons/cryo_cannon/fill_2.png | Bin 147 -> 123 bytes .../models/weapons/cryo_cannon/fill_3.png | Bin 152 -> 124 bytes .../models/weapons/cryo_cannon/fill_4.png | Bin 153 -> 124 bytes .../models/weapons/cryo_cannon/fill_5.png | Bin 156 -> 124 bytes .../models/weapons/cryo_cannon/fill_6.png | Bin 156 -> 124 bytes .../models/weapons/cryo_cannon/fill_7.png | Bin 151 -> 124 bytes .../models/weapons/cryo_cannon/fill_8.png | Bin 153 -> 126 bytes .../models/weapons/cryo_cannon/fill_9.png | Bin 154 -> 126 bytes .../models/weapons/cryo_cannon/pressure_0.png | Bin 220 -> 235 bytes .../models/weapons/cryo_cannon/pressure_1.png | Bin 225 -> 241 bytes .../weapons/cryo_cannon/pressure_10.png | Bin 227 -> 241 bytes .../weapons/cryo_cannon/pressure_11.png | Bin 227 -> 239 bytes .../models/weapons/cryo_cannon/pressure_2.png | Bin 225 -> 238 bytes .../models/weapons/cryo_cannon/pressure_3.png | Bin 219 -> 226 bytes .../models/weapons/cryo_cannon/pressure_4.png | Bin 224 -> 231 bytes .../models/weapons/cryo_cannon/pressure_5.png | Bin 208 -> 221 bytes .../models/weapons/cryo_cannon/pressure_6.png | Bin 204 -> 221 bytes .../models/weapons/cryo_cannon/pressure_7.png | Bin 222 -> 235 bytes .../models/weapons/cryo_cannon/pressure_8.png | Bin 213 -> 227 bytes .../models/weapons/cryo_cannon/pressure_9.png | Bin 227 -> 243 bytes .../weapons/cryo_cannon/pressure_empty.png | Bin 213 -> 220 bytes .../models/weapons/cryo_cannon/turbine_0.png | Bin 235 -> 249 bytes .../models/weapons/cryo_cannon/turbine_1.png | Bin 242 -> 256 bytes .../models/weapons/cryo_cannon/turbine_2.png | Bin 247 -> 262 bytes .../models/weapons/cryo_cannon/turbine_3.png | Bin 237 -> 252 bytes .../models/weapons/cryo_cannon/turbine_4.png | Bin 250 -> 268 bytes .../models/weapons/cryo_cannon/turbine_5.png | Bin 249 -> 262 bytes .../models/weapons/cryo_cannon/turbine_6.png | Bin 247 -> 261 bytes .../models/weapons/cryo_cannon/turbine_7.png | Bin 243 -> 258 bytes .../models/weapons/cryo_cannon/turbine_8.png | Bin 234 -> 245 bytes .../weapons/cryo_cannon/turbine_empty.png | Bin 206 -> 214 bytes 54 files changed, 8374 insertions(+), 14464 deletions(-) create mode 100644 src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java delete mode 100644 src/main/resources/assets/hbm/models/weapons/cryo_cannon_alt.obj diff --git a/changelog b/changelog index 26bf4f45d..5d72f98ae 100644 --- a/changelog +++ b/changelog @@ -1,10 +1,19 @@ ## Added * UAC pistol * Uses the .45 caliber +* Cryo cannon + * Freezes entities + * Can only deal damage to already frozen entities + * Damage is proportional to max health, dealing more damage the stronger the mob is ## Changed * Making LPG in the compressor now requires two compression steps * This fixes an issue where polymer is unobtainable in 528 mode since petroleum at 1PU not being obtainable +* Fire and cryo damage now bypasses glyphid's armor, being unaffected by the armor's damage reduction and not being able to break off armor either +* Fire now deals 4x more damage to glyphids +* Cryogenic fluids from the chemthrower no longer deal direct damage, instead freezing the target + * Once the target is already frozen, it will deal damage and apply the same effects as it used to ## Fixed * Fixed issue where mk5 explosions would behave weirdly in their origin chunk, often blowing through bedrock and thick layers of concrete +* Fixed saturnite rifle disappearing in third person when scoping diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java index a28de4aa4..5dcac2356 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java @@ -6,6 +6,7 @@ import java.util.List; import com.hbm.entity.pathfinder.PathFinderUtils; import com.hbm.items.ModItems; +import com.hbm.lib.ModDamageSource; import com.hbm.main.ResourceManager; import net.minecraft.entity.Entity; @@ -86,7 +87,7 @@ public class EntityGlyphid extends EntityMob { @Override public boolean attackEntityFrom(DamageSource source, float amount) { - if(!source.isDamageAbsolute() && !source.isUnblockable() && !worldObj.isRemote) { + if(!source.isDamageAbsolute() && !source.isUnblockable() && !worldObj.isRemote && !source.isFireDamage() && !source.getDamageType().equals(ModDamageSource.s_cryolator)) { byte armor = this.dataWatcher.getWatchableObjectByte(17); if(armor != 0) { //if at least one bit of armor is present @@ -106,6 +107,8 @@ public class EntityGlyphid extends EntityMob { amount = this.calculateDamage(amount); } + if(source.isFireDamage()) amount *= 4F; + return super.attackEntityFrom(source, amount); } diff --git a/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java b/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java new file mode 100644 index 000000000..d793af58d --- /dev/null +++ b/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java @@ -0,0 +1,231 @@ +package com.hbm.entity.projectile; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.handler.BulletConfigSyncingUtil; +import com.hbm.handler.BulletConfiguration; +import com.hbm.handler.GunConfiguration; +import com.hbm.interfaces.IBulletHitBehavior; +import com.hbm.interfaces.IBulletHurtBehavior; +import com.hbm.interfaces.IBulletImpactBehavior; +import com.hbm.interfaces.IBulletRicochetBehavior; +import com.hbm.interfaces.IBulletUpdateBehavior; +import com.hbm.items.weapon.ItemGunBase; +import com.hbm.main.MainRegistry; +import com.hbm.util.Tuple.Pair; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public class EntityBulletBaseNT extends EntityThrowableInterp { + + private BulletConfiguration config; + public float overrideDamage; + + public double prevRenderX; + public double prevRenderY; + public double prevRenderZ; + public final List> trailNodes = new ArrayList(); + + public BulletConfiguration getConfig() { + return config; + } + + public EntityBulletBaseNT(World world) { + super(world); + this.renderDistanceWeight = 10.0D; + this.setSize(0.5F, 0.5F); + } + + public EntityBulletBaseNT(World world, int config) { + super(world); + this.config = BulletConfigSyncingUtil.pullConfig(config); + this.dataWatcher.updateObject(18, config); + this.renderDistanceWeight = 10.0D; + + if(this.config == null) { + this.setDead(); + return; + } + + this.dataWatcher.updateObject(16, (byte)this.config.style); + this.dataWatcher.updateObject(17, (byte)this.config.trail); + + this.setSize(0.5F, 0.5F); + } + + public EntityBulletBaseNT(World world, int config, EntityLivingBase entity) { + super(world); + this.config = BulletConfigSyncingUtil.pullConfig(config); + this.dataWatcher.updateObject(18, config); + thrower = entity; + + ItemStack gun = entity.getHeldItem(); + boolean offsetShot = true; + + if(gun != null && gun.getItem() instanceof ItemGunBase) { + GunConfiguration cfg = ((ItemGunBase) gun.getItem()).mainConfig; + + if(cfg != null && cfg.hasSights && entity.isSneaking()) { + offsetShot = false; + } + } + + this.setLocationAndAngles(entity.posX, entity.posY + entity.getEyeHeight(), entity.posZ, entity.rotationYaw, entity.rotationPitch); + + if(offsetShot) { + double sideOffset = 0.16D; + + this.posX -= MathHelper.cos(this.rotationYaw / 180.0F * (float) Math.PI) * sideOffset; + this.posY -= 0.1D; + this.posZ -= MathHelper.sin(this.rotationYaw / 180.0F * (float) Math.PI) * sideOffset; + } else { + this.posY -= 0.1D; + } + this.setPosition(this.posX, this.posY, this.posZ); + + this.motionX = -MathHelper.sin(this.rotationYaw / 180.0F * (float) Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float) Math.PI); + this.motionZ = MathHelper.cos(this.rotationYaw / 180.0F * (float) Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float) Math.PI); + this.motionY = (-MathHelper.sin(this.rotationPitch / 180.0F * (float) Math.PI)); + + this.renderDistanceWeight = 10.0D; + this.setSize(0.5F, 0.5F); + + this.setThrowableHeading(this.motionX, this.motionY, this.motionZ, 1.0F, this.config.spread * (offsetShot ? 1F : 0.25F)); + + this.dataWatcher.updateObject(16, (byte)this.config.style); + this.dataWatcher.updateObject(17, (byte)this.config.trail); + } + + public EntityBulletBaseNT(World world, int config, EntityLivingBase entity, EntityLivingBase target, float motion, float deviation) { + super(world); + + this.config = BulletConfigSyncingUtil.pullConfig(config); + this.dataWatcher.updateObject(18, config); + this.thrower = entity; + + this.renderDistanceWeight = 10.0D; + this.setSize(0.5F, 0.5F); + + this.posY = entity.posY + entity.getEyeHeight() - 0.10000000149011612D; + double d0 = target.posX - entity.posX; + double d1 = target.boundingBox.minY + target.height / 3.0F - this.posY; + double d2 = target.posZ - entity.posZ; + double d3 = MathHelper.sqrt_double(d0 * d0 + d2 * d2); + + if (d3 >= 1.0E-7D) { + float f2 = (float) (Math.atan2(d2, d0) * 180.0D / Math.PI) - 90.0F; + float f3 = (float) (-(Math.atan2(d1, d3) * 180.0D / Math.PI)); + double d4 = d0 / d3; + double d5 = d2 / d3; + this.setLocationAndAngles(entity.posX + d4, this.posY, entity.posZ + d5, f2, f3); + this.yOffset = 0.0F; + this.setThrowableHeading(d0, d1, d2, motion, deviation); + } + + this.dataWatcher.updateObject(16, (byte)this.config.style); + this.dataWatcher.updateObject(17, (byte)this.config.trail); + } + + @Override + public void onUpdate() { + + if(config == null) config = BulletConfigSyncingUtil.pullConfig(dataWatcher.getWatchableObjectInt(18)); + + if(config == null){ + this.setDead(); + return; + } + + if(worldObj.isRemote && config.style == config.STYLE_TAU) { + if(trailNodes.isEmpty()) { + this.ignoreFrustumCheck = true; + trailNodes.add(new Pair(Vec3.createVectorHelper(-motionX * 2, -motionY * 2, -motionZ * 2), 0D)); + } else { + trailNodes.add(new Pair(Vec3.createVectorHelper(0, 0, 0), 1D)); + } + } + + if(worldObj.isRemote && this.config.blackPowder && this.ticksExisted == 1) { + + for(int i = 0; i < 15; i++) { + double mod = rand.nextDouble(); + this.worldObj.spawnParticle("smoke", this.posX, this.posY, this.posZ, + (this.motionX + rand.nextGaussian() * 0.05) * mod, + (this.motionY + rand.nextGaussian() * 0.05) * mod, + (this.motionZ + rand.nextGaussian() * 0.05) * mod); + } + + double mod = 0.5; + this.worldObj.spawnParticle("flame", this.posX + this.motionX * mod, this.posY + this.motionY * mod, this.posZ + this.motionZ * mod, 0, 0, 0); + } + + if(!worldObj.isRemote) { + + if(config.maxAge == 0) { + if(this.config.bUpdate != null) this.config.bntUpdate.behaveUpdate(this); + this.setDead(); + return; + } + + if(this.config.bUpdate != null) this.config.bntUpdate.behaveUpdate(this); + } + + super.onUpdate(); + + if(worldObj.isRemote && !config.vPFX.isEmpty()) { + + Vec3 vec = Vec3.createVectorHelper(posX - prevPosX, posY - prevPosY, posZ - prevPosZ); + double motion = Math.max(vec.lengthVector(), 0.1); + vec = vec.normalize(); + + for(double d = 0; d < motion; d += 0.5) { + + NBTTagCompound nbt = new NBTTagCompound(); + nbt.setString("type", "vanillaExt"); + nbt.setString("mode", config.vPFX); + nbt.setDouble("posX", this.posX - vec.xCoord * d); + nbt.setDouble("posY", this.posY - vec.yCoord * d); + nbt.setDouble("posZ", this.posZ - vec.zCoord * d); + MainRegistry.proxy.effectNT(nbt); + } + } + } + + @Override + protected void onImpact(MovingObjectPosition mop) { + + if(mop.typeOfHit == mop.typeOfHit.BLOCK) { + + } + } + + @Override + public boolean doesPenetrate() { + return this.config.doesPenetrate; + } + + @Override + public boolean isSpectral() { + return this.config.isSpectral; + } + + public IBulletHurtBehavior bHurt; + public IBulletHitBehavior bHit; + public IBulletRicochetBehavior bRicochet; + public IBulletImpactBehavior bImpact; + public IBulletUpdateBehavior bUpdate; + + public interface IBulletHurtBehaviorNT { public void behaveEntityHurt(EntityBulletBaseNT bullet, Entity hit); } + public interface IBulletHitBehaviorNT { public void behaveEntityHit(EntityBulletBaseNT bullet, Entity hit); } + public interface IBulletRicochetBehaviorNT { public void behaveBlockRicochet(EntityBulletBaseNT bullet, int x, int y, int z); } + public interface IBulletImpactBehaviorNT { public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z); } + public interface IBulletUpdateBehaviorNT { public void behaveUpdate(EntityBulletBaseNT bullet); } +} diff --git a/src/main/java/com/hbm/entity/projectile/EntityChemical.java b/src/main/java/com/hbm/entity/projectile/EntityChemical.java index 003414be6..d64e64d74 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityChemical.java +++ b/src/main/java/com/hbm/entity/projectile/EntityChemical.java @@ -185,9 +185,15 @@ public class EntityChemical extends EntityThrowableNT { if(style == ChemicalStyle.LIQUID || style == ChemicalStyle.GAS) { if(type.temperature < -20) { if(living != null) { //only living things are affected - EntityDamageUtil.attackEntityFromIgnoreIFrame(e, getDamage(ModDamageSource.s_cryolator), 5F + (type.temperature + 20) * -0.05F); //5 damage at -20°C with one extra damage every -20°C - living.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 100, 2)); - living.addPotionEffect(new PotionEffect(Potion.digSlowdown.id, 100, 4)); + + HbmLivingProps.setTemperature(living, HbmLivingProps.getTemperature(living) + type.temperature / 20); + + if(HbmLivingProps.isFrozen(living)) { + if(!EntityDamageUtil.attackEntityFromIgnoreIFrame(e, getDamage(ModDamageSource.s_cryolator), living.getMaxHealth() * -type.temperature / 273 * 0.01F)) + e.attackEntityFrom(getDamage(ModDamageSource.s_cryolator), living.getMaxHealth() * -type.temperature / 273); + living.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 100, 2)); + living.addPotionEffect(new PotionEffect(Potion.digSlowdown.id, 100, 4)); + } } } diff --git a/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java b/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java index 608f999d5..8136defa8 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java +++ b/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java @@ -156,7 +156,8 @@ public abstract class EntityThrowableNT extends Entity implements IProjectile { Vec3 pos = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); Vec3 nextPos = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ); - MovingObjectPosition mop = this.worldObj.rayTraceBlocks(pos, nextPos); + MovingObjectPosition mop = null; + if(!this.isSpectral()) mop = this.worldObj.rayTraceBlocks(pos, nextPos); pos = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); nextPos = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ); @@ -180,17 +181,25 @@ public abstract class EntityThrowableNT extends Entity implements IProjectile { MovingObjectPosition hitMop = aabb.calculateIntercept(pos, nextPos); if(hitMop != null) { - double dist = pos.distanceTo(hitMop.hitVec); - - if(dist < nearest || nearest == 0.0D) { - hitEntity = entity; - nearest = dist; + + // if penetration is enabled, run impact for all intersecting entities + if(this.doesPenetrate()) { + this.onImpact(hitMop); + } else { + + double dist = pos.distanceTo(hitMop.hitVec); + + if(dist < nearest || nearest == 0.0D) { + hitEntity = entity; + nearest = dist; + } } } } } - if(hitEntity != null) { + // if not, only run it for the closest MOP + if(!this.doesPenetrate() && hitEntity != null) { mop = new MovingObjectPosition(hitEntity); } } @@ -249,8 +258,12 @@ public abstract class EntityThrowableNT extends Entity implements IProjectile { } } - public boolean alowMultiImpact() { - return false; //TODO + public boolean doesPenetrate() { + return false; + } + + public boolean isSpectral() { + return false; } public void getStuck(int x, int y, int z) { diff --git a/src/main/java/com/hbm/extprop/HbmLivingProps.java b/src/main/java/com/hbm/extprop/HbmLivingProps.java index da9d1d0c6..81a44a47a 100644 --- a/src/main/java/com/hbm/extprop/HbmLivingProps.java +++ b/src/main/java/com/hbm/extprop/HbmLivingProps.java @@ -25,6 +25,7 @@ import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.init.Blocks; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraftforge.common.IExtendedEntityProperties; @@ -46,6 +47,9 @@ public class HbmLivingProps implements IExtendedEntityProperties { private int bombTimer; private int contagion; private int oil; + private int temperature; + private boolean frozen = false; + private boolean burning = false; private List contamination = new ArrayList(); public HbmLivingProps(EntityLivingBase entity) { @@ -270,6 +274,24 @@ public class HbmLivingProps implements IExtendedEntityProperties { public static void setOil(EntityLivingBase entity, int oil) { getData(entity).oil = oil; } + + /// TEMPERATURE /// + public static int getTemperature(EntityLivingBase entity) { + return getData(entity).temperature; + } + + public static void setTemperature(EntityLivingBase entity, int temperature) { + HbmLivingProps data = getData(entity); + temperature = MathHelper.clamp_int(temperature, -2500, 2500); + data.temperature = temperature; + if(temperature > 1000) data.burning = true; + if(temperature < 800) data.burning = false; + if(temperature < -1000) data.frozen = true; + if(temperature > -800) data.frozen = false; + } + + public static boolean isFrozen(EntityLivingBase entity) { return getData(entity).frozen; }; + public static boolean isBurning(EntityLivingBase entity) { return getData(entity).burning; }; @Override public void init(Entity entity, World world) { } diff --git a/src/main/java/com/hbm/handler/BulletConfiguration.java b/src/main/java/com/hbm/handler/BulletConfiguration.java index a55ffe030..53ebc9546 100644 --- a/src/main/java/com/hbm/handler/BulletConfiguration.java +++ b/src/main/java/com/hbm/handler/BulletConfiguration.java @@ -3,6 +3,7 @@ package com.hbm.handler; import java.util.List; import com.hbm.entity.projectile.EntityBulletBase; +import com.hbm.entity.projectile.EntityBulletBaseNT.*; import com.hbm.handler.guncfg.BulletConfigFactory; import com.hbm.interfaces.IBulletHitBehavior; import com.hbm.interfaces.IBulletHurtBehavior; @@ -92,6 +93,11 @@ public class BulletConfiguration implements Cloneable { public IBulletRicochetBehavior bRicochet; public IBulletImpactBehavior bImpact; public IBulletUpdateBehavior bUpdate; + public IBulletHurtBehaviorNT bntHurt; + public IBulletHitBehaviorNT bntHit; + public IBulletRicochetBehaviorNT bntRicochet; + public IBulletImpactBehaviorNT bntImpact; + public IBulletUpdateBehaviorNT bntUpdate; //appearance public int style; diff --git a/src/main/java/com/hbm/handler/EntityEffectHandler.java b/src/main/java/com/hbm/handler/EntityEffectHandler.java index ff9607611..3396b2472 100644 --- a/src/main/java/com/hbm/handler/EntityEffectHandler.java +++ b/src/main/java/com/hbm/handler/EntityEffectHandler.java @@ -97,6 +97,7 @@ public class EntityEffectHandler { handleLungDisease(entity); handleOil(entity); handlePollution(entity); + handleTemperature(entity); handleDashing(entity); handlePlinking(entity); @@ -444,7 +445,7 @@ public class EntityEffectHandler { nbt.setInteger("count", 1); nbt.setInteger("block", Block.getIdFromBlock(Blocks.coal_block)); nbt.setInteger("entity", entity.getEntityId()); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(nbt, 0, 0, 0), new TargetPoint(entity.dimension, entity.posX, entity.posY, entity.posZ, 25)); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(nbt, 0, 0, 0), new TargetPoint(entity.dimension, entity.posX, entity.posY, entity.posZ, 25)); } } } @@ -486,6 +487,43 @@ public class EntityEffectHandler { } } + private static void handleTemperature(Entity entity) { + + if(!(entity instanceof EntityLivingBase)) return; + if(entity.worldObj.isRemote) return; + + EntityLivingBase living = (EntityLivingBase) entity; + int temp = HbmLivingProps.getTemperature(living); + + if(temp < 0) HbmLivingProps.setTemperature(living, temp + Math.min(-temp, 5)); + if(temp > 0) HbmLivingProps.setTemperature(living, temp - Math.min(temp, 5)); + + if(HbmLivingProps.isFrozen(living)) { + living.motionX = 0; + living.motionZ = 0; + living.motionY = Math.min(living.motionY, 0); + + if(entity.ticksExisted % 5 == 0) { + NBTTagCompound nbt0 = new NBTTagCompound(); + nbt0.setString("type", "sweat"); + nbt0.setInteger("count", 1); + nbt0.setInteger("block", Block.getIdFromBlock(Blocks.snow)); + nbt0.setInteger("entity", entity.getEntityId()); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(nbt0, 0, 0, 0), new TargetPoint(entity.dimension, entity.posX, entity.posY, entity.posZ, 25)); + + if(entity instanceof EntityPlayerMP) { + NBTTagCompound nbt1 = new NBTTagCompound(); + nbt1.setString("type", "frozen"); + PacketDispatcher.wrapper.sendTo(new AuxParticlePacketNT(nbt1, 0, 0, 0), (EntityPlayerMP) entity); + } + } + } + + if(HbmLivingProps.isBurning(living)) { + living.setFire(1); + } + } + private static void handleDashing(Entity entity) { //AAAAAAAAAAAAAAAAAAAAEEEEEEEEEEEEEEEEEEEE diff --git a/src/main/java/com/hbm/items/weapon/ItemCryoCannon.java b/src/main/java/com/hbm/items/weapon/ItemCryoCannon.java index 5fabc3e32..6e9bf1de7 100644 --- a/src/main/java/com/hbm/items/weapon/ItemCryoCannon.java +++ b/src/main/java/com/hbm/items/weapon/ItemCryoCannon.java @@ -1,15 +1,20 @@ package com.hbm.items.weapon; import com.hbm.entity.projectile.EntityChemical; +import com.hbm.handler.BulletConfigSyncingUtil; +import com.hbm.handler.BulletConfiguration; import com.hbm.handler.GunConfiguration; import com.hbm.inventory.fluid.Fluids; import com.hbm.packet.GunAnimationPacket; import com.hbm.packet.PacketDispatcher; import com.hbm.render.anim.HbmAnimations.AnimType; +import net.minecraft.enchantment.Enchantment; +import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.ItemStack; +import net.minecraft.util.MathHelper; import net.minecraft.world.World; public class ItemCryoCannon extends ItemGunBase { @@ -18,13 +23,96 @@ public class ItemCryoCannon extends ItemGunBase { super(config); } + @Override + protected void fire(ItemStack stack, World world, EntityPlayer player) { + + if(this.getPressure(stack) >= 1000) return; + if(this.getTurbine(stack) < 100) return; + + BulletConfiguration config = null; + + if(mainConfig.reloadType == mainConfig.RELOAD_NONE) { + config = getBeltCfg(player, stack, true); + } else { + config = BulletConfigSyncingUtil.pullConfig(mainConfig.config.get(getMagType(stack))); + } + + int bullets = config.bulletsMin; + + for(int k = 0; k < mainConfig.roundsPerCycle; k++) { + + if(!hasAmmo(stack, player, true)) + break; + + if(config.bulletsMax > config.bulletsMin) + bullets += world.rand.nextInt(config.bulletsMax - config.bulletsMin); + + for(int i = 0; i < bullets; i++) { + spawnProjectile(world, player, stack, BulletConfigSyncingUtil.getKey(config)); + } + + useUpAmmo(player, stack, true); + player.inventoryContainer.detectAndSendChanges(); + + int wear = (int) Math.ceil(config.wear / (1F + EnchantmentHelper.getEnchantmentLevel(Enchantment.unbreaking.effectId, stack))); + setItemWear(stack, getItemWear(stack) + wear); + } + + world.playSoundAtEntity(player, mainConfig.firingSound, mainConfig.firingVolume, mainConfig.firingPitch); + + if(mainConfig.ejector != null && !mainConfig.ejector.getAfterReload()) + queueCasing(player, mainConfig.ejector, config, stack); + } + @Override protected void spawnProjectile(World world, EntityPlayer player, ItemStack stack, int config) { EntityChemical chem = new EntityChemical(world, player); chem.setFluid(Fluids.OXYGEN); world.spawnEntityInWorld(chem); + + int pressure = this.getPressure(stack); + pressure += 5; + pressure = MathHelper.clamp_int(pressure, 0, 1000); + this.setPressure(stack, pressure); if(player instanceof EntityPlayerMP) PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(AnimType.CYCLE.ordinal()), (EntityPlayerMP) player); } + + @Override + protected void updateServer(ItemStack stack, World world, EntityPlayer player, int slot, boolean isCurrentItem) { + + int turbine = this.getTurbine(stack); + int pressure = this.getPressure(stack); + + if(this.getIsMouseDown(stack)) { + turbine += 10; + } else { + turbine -= 5; + pressure -= 5; + } + + turbine = MathHelper.clamp_int(turbine, 0, 100); + pressure = MathHelper.clamp_int(pressure, 0, 1000); + this.setTurbine(stack, turbine); + this.setPressure(stack, pressure); + + super.updateServer(stack, world, player, slot, isCurrentItem); + } + + public static void setTurbine(ItemStack stack, int i) { + writeNBT(stack, "turbine", i); + } + + public static int getTurbine(ItemStack stack) { + return readNBT(stack, "turbine"); + } + + public static void setPressure(ItemStack stack, int i) { + writeNBT(stack, "pressure", i); + } + + public static int getPressure(ItemStack stack) { + return readNBT(stack, "pressure"); + } } diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index a262b8fb9..a3b34fa22 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -1883,6 +1883,14 @@ public class ClientProxy extends ServerProxy { ParticleFoundry sploosh = new ParticleFoundry(man, world, x, y, z, color, dir, length, base, offset); Minecraft.getMinecraft().effectRenderer.addEffect(sploosh); } + + if("frozen".equals(type)) { + player.motionX = 0; + player.motionZ = 0; + player.motionY = Math.min(player.motionY, 0); + player.moveForward = 0; + player.moveStrafing = 0; + } } private HashMap vanished = new HashMap(); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index faf9b227a..82995ce32 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -751,8 +751,8 @@ public class ResourceManager { public static final IModelCustom tau = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/tau.obj")); public static final IModelCustom benelli = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/benelli_new.obj")).asDisplayList(); public static final IModelCustom coilgun = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/coilgun.obj")).asDisplayList(); - public static final IModelCustom cryocannon = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/cryo_cannon_alt.obj")).asDisplayList(); - public static final IModelCustom uac_pistol = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/UAC pistol.obj")).asDisplayList(); //TODO: reduce this fat fuck + public static final IModelCustom cryocannon = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/cryo_cannon.obj")).asDisplayList(); + public static final IModelCustom uac_pistol = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/UAC pistol.obj")).asDisplayList(); public static final IModelCustom lance = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/lance.obj")); diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponCryoCannon.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponCryoCannon.java index 437df58bd..b368c30f5 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponCryoCannon.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponCryoCannon.java @@ -2,13 +2,28 @@ package com.hbm.render.item.weapon; import org.lwjgl.opengl.GL11; +import com.hbm.items.weapon.ItemCryoCannon; +import com.hbm.items.weapon.ItemGunBase; +import com.hbm.lib.RefStrings; import com.hbm.main.ResourceManager; import net.minecraft.client.Minecraft; import net.minecraft.item.ItemStack; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.IItemRenderer; public class ItemRenderWeaponCryoCannon implements IItemRenderer { + + public static final ResourceLocation[] fill_tex = new ResourceLocation[15]; + public static final ResourceLocation[] pressure_tex = new ResourceLocation[12]; + public static final ResourceLocation[] turbine_tex = new ResourceLocation[9]; + + public ItemRenderWeaponCryoCannon() { + for(int i = 0; i < fill_tex.length; i++) fill_tex[i] = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/cryo_cannon/fill_" + i + ".png"); + for(int i = 0; i < pressure_tex.length; i++) pressure_tex[i] = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/cryo_cannon/pressure_" + i + ".png"); + for(int i = 0; i < turbine_tex.length; i++) turbine_tex[i] = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/cryo_cannon/turbine_" + i + ".png"); + } @Override public boolean handleRenderType(ItemStack item, ItemRenderType type) { @@ -35,6 +50,7 @@ public class ItemRenderWeaponCryoCannon implements IItemRenderer { GL11.glEnable(GL11.GL_CULL_FACE); GL11.glEnable(GL11.GL_LIGHTING); + GL11.glShadeModel(GL11.GL_SMOOTH); Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.cryocannon_tex); @@ -48,6 +64,17 @@ public class ItemRenderWeaponCryoCannon implements IItemRenderer { GL11.glRotated(80, 0, 1, 0); GL11.glScaled(s0, s0, s0); + ItemGunBase gun = (ItemGunBase) item.getItem(); + + ResourceManager.cryocannon.renderPart("Gun"); + ResourceManager.cryocannon.renderPart("Rotor"); + Minecraft.getMinecraft().renderEngine.bindTexture(fill_tex[MathHelper.clamp_int(ItemGunBase.getMag(item) * fill_tex.length / gun.mainConfig.ammoCap, 0, fill_tex.length - 1)]); + ResourceManager.cryocannon.renderPart("Fuel"); + Minecraft.getMinecraft().renderEngine.bindTexture(turbine_tex[MathHelper.clamp_int(turbine_tex.length - 1 - ItemCryoCannon.getTurbine(item) * turbine_tex.length / 100, 0, turbine_tex.length - 1)]); + ResourceManager.cryocannon.renderPart("Spin"); + Minecraft.getMinecraft().renderEngine.bindTexture(pressure_tex[MathHelper.clamp_int(ItemCryoCannon.getPressure(item) * pressure_tex.length / 1000, 0, pressure_tex.length - 1)]); + ResourceManager.cryocannon.renderPart("Pressure"); + break; case EQUIPPED: @@ -82,8 +109,8 @@ public class ItemRenderWeaponCryoCannon implements IItemRenderer { default: break; } - GL11.glShadeModel(GL11.GL_SMOOTH); - ResourceManager.cryocannon.renderAll(); + if(type != ItemRenderType.EQUIPPED_FIRST_PERSON) ResourceManager.cryocannon.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); GL11.glPopMatrix(); diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFBolt.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFBolt.java index b88c87063..d1c7b88aa 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFBolt.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponFFBolt.java @@ -42,8 +42,6 @@ public class ItemRenderWeaponFFBolt implements IItemRenderer { @Override public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - if(item.getItem() == ModItems.gun_bolt_action_saturnite && Minecraft.getMinecraft().thePlayer.isSneaking()) return; - GL11.glPushMatrix(); GL11.glEnable(GL11.GL_CULL_FACE); @@ -55,6 +53,11 @@ public class ItemRenderWeaponFFBolt implements IItemRenderer { case EQUIPPED_FIRST_PERSON: + if(item.getItem() == ModItems.gun_bolt_action_saturnite && Minecraft.getMinecraft().thePlayer.isSneaking()) { + GL11.glPopMatrix(); + return; + } + double s0 = 0.5D; GL11.glTranslated(0.5, 0.25, -0.2); GL11.glScaled(s0, s0, s0); diff --git a/src/main/resources/assets/hbm/models/weapons/cryo_cannon.obj b/src/main/resources/assets/hbm/models/weapons/cryo_cannon.obj index 32f6af5ba..8f4413807 100644 --- a/src/main/resources/assets/hbm/models/weapons/cryo_cannon.obj +++ b/src/main/resources/assets/hbm/models/weapons/cryo_cannon.obj @@ -1,552 +1,7799 @@ # Blender v2.79 (sub 0) OBJ File: 'cryo_cannon.blend' # www.blender.org -o Plane.004 -v -0.437500 2.102596 -3.042822 -v -0.483253 2.144063 -3.023486 -v -0.500000 2.200707 -2.997072 -v -0.483253 2.257351 -2.970659 -v -0.437500 2.298818 -2.951323 -v -0.375000 2.313995 -2.944245 -v -0.312500 2.298818 -2.951323 -v -0.266747 2.257351 -2.970659 -v -0.250000 2.200707 -2.997072 -v -0.266747 2.144063 -3.023486 -v -0.312500 2.102596 -3.042822 -v -0.375000 2.087419 -3.049900 -vt 0.750000 0.933013 -vt 0.933013 0.750000 -vt 1.000000 0.500000 -vt 0.933013 0.250000 -vt 0.750000 0.066987 -vt 0.500000 0.000000 -vt 0.250000 0.066987 -vt 0.066987 0.250000 -vt 0.000000 0.500000 -vt 0.066987 0.750000 -vt 0.250000 0.933013 -vt 0.500000 1.000000 -vn -0.0000 0.4226 -0.9063 -s off -f 1/1/1 2/2/1 3/3/1 4/4/1 5/5/1 6/6/1 7/7/1 8/8/1 9/9/1 10/10/1 11/11/1 12/12/1 -o Plane.003 -v -0.216506 2.340409 -3.000889 -v -0.250000 2.227120 -3.053716 -v -0.216506 2.113832 -3.106544 +o Gun +v -1.312500 0.501000 -2.750000 +v -1.312500 0.626000 -3.500000 +v -1.312500 0.501000 -3.500000 +v -1.312500 0.751000 -2.750000 +v -1.312500 0.876000 -3.500000 +v -1.312500 0.751000 -3.500000 +v -1.312500 1.001000 -2.750000 +v -1.312500 1.126000 -3.500000 +v -1.312500 1.001000 -3.500000 +v -1.312500 1.251000 -3.500000 +v -1.312500 1.376000 -2.625000 +v -1.312500 1.376000 -3.625000 +v -1.312500 0.251000 -2.625000 +v -1.312500 0.376000 -3.500000 +v -1.312500 0.251000 -3.625000 +v -1.312500 0.626000 -2.750000 +v -1.187500 1.001000 -2.750000 +v -1.187500 1.001000 -3.500000 +v -1.187500 0.626000 -3.500000 +v -1.187500 0.751000 -3.500000 +v -1.187500 1.126000 -3.500000 +v -1.187500 1.251000 -2.750000 +v -1.187500 1.251000 -3.500000 +v -1.187500 0.876000 -2.750000 +v -1.187500 0.876000 -3.500000 +v -1.187500 0.751000 -2.750000 +v -1.187500 0.376000 -2.750000 +v -1.187500 0.501000 -3.500000 +v -1.187500 0.376000 -3.500000 +v -1.312500 1.126000 -2.750000 +v -1.312500 1.251000 -2.750000 +v -1.187500 1.126000 -2.750000 +v -1.312500 0.876000 -2.750000 +v -1.187500 0.626000 -2.750000 +v -1.312500 0.376000 -2.750000 +v -1.187500 0.501000 -2.750000 +v -0.344030 0.708152 -0.175597 +v -0.388541 0.618205 -0.128904 +v -0.328091 0.674453 -0.163924 +v -0.334466 0.442528 -0.062870 +v -0.385571 0.535686 -0.093884 +v -0.420670 0.523129 -0.082211 +v -0.216518 0.438567 -0.082211 +v -0.172007 0.528513 -0.128904 +v -0.232457 0.472265 -0.093884 +v -0.135918 0.513565 -0.128904 +v -0.174978 0.611032 -0.163924 +v -0.226082 0.704190 -0.194938 +v -0.239630 0.671482 -0.178429 +v -0.424630 0.633153 -0.128904 +v -0.320918 0.475236 -0.079378 +v -0.139879 0.623590 -0.175597 +v -0.248396 0.505963 -0.105557 +v -0.210077 0.598474 -0.152250 +v -0.312152 0.640755 -0.152250 +v -0.161900 0.552916 -0.072260 +v -0.238288 0.530366 -0.048913 +v -0.222349 0.496668 -0.037240 +v -0.199968 0.622877 -0.095606 +v -0.197989 0.567865 -0.072260 +v -0.229523 0.695885 -0.121785 +v -0.164869 0.635435 -0.107280 +v -0.317984 0.698857 -0.107280 +v -0.243071 0.663178 -0.105277 +v -0.378433 0.642608 -0.072260 +v -0.302044 0.665158 -0.095606 +v -0.340364 0.572647 -0.048913 +v -0.342344 0.627659 -0.072260 +v -0.375462 0.560089 -0.037240 +v -0.297262 0.532347 -0.039243 +v -0.310810 0.499639 -0.022734 +v -0.014465 0.192905 0.136894 +v -0.349313 0.368885 -0.081856 +v -0.391169 0.267836 0.136894 +v -0.025414 0.247242 -0.109375 +v -0.014465 0.302280 -0.081856 +v -0.025414 0.137868 0.109375 +v -0.402117 0.212799 0.109375 +v -0.360261 0.313848 -0.109375 +v 0.095671 1.480970 -0.500000 +v 0.173227 1.321753 -0.500000 +v 0.230970 1.345671 -0.500000 +v 0.115485 1.202165 -0.500000 +v 0.115485 1.297835 -0.500000 +v 0.047834 1.365485 -0.500000 +v 0.173227 1.178247 -0.500000 +v 0.230970 1.154329 -0.500000 +v 0.095671 1.019030 -0.500000 +v 0.071753 1.076773 -0.500000 +v -0.071753 1.076773 -0.500000 +v -0.095671 1.019030 -0.500000 +v -0.173227 1.178247 -0.500000 +v -0.230970 1.154329 -0.500000 +v -0.173227 1.321753 -0.500000 +v -0.230970 1.345671 -0.500000 +v -0.095671 1.480970 -0.500000 +v -0.071753 1.423227 -0.500000 +v 0.071753 1.423227 -0.500000 +v 0.115485 1.297835 -0.375000 +v 0.071753 1.423227 -0.375000 +v 0.047834 1.365485 -0.375000 +v 0.115485 1.202165 -0.375000 +v 0.173227 1.321753 -0.375000 +v 0.071753 1.076773 -0.375000 +v 0.047834 1.134515 -0.375000 +v -0.071753 1.076773 -0.375000 +v -0.047836 1.134515 -0.375000 +v -0.173227 1.178247 -0.375000 +v -0.115485 1.202165 -0.375000 +v -0.115485 1.297835 -0.375000 +v -0.047836 1.365485 -0.375000 +v -0.173227 1.321753 -0.375000 +v -0.071753 1.423227 -0.375000 +v -1.000000 0.938500 -4.125000 +v -1.000000 -0.061500 -3.125000 +v -1.000000 0.938500 -2.125000 +v -1.000000 1.376000 -2.625000 +v -1.000000 0.251000 -2.625000 +v -1.000000 0.251000 -3.625000 +v -1.000000 1.376000 -3.625000 +v 1.000000 0.938500 -2.125000 +v 1.000000 -0.061500 -3.125000 +v 1.000000 0.938500 -4.125000 +v -1.000000 0.231393 -3.832107 +v -1.000000 0.231393 -2.417893 +v 1.000000 1.938500 -3.125000 +v -1.000000 1.645607 -3.832107 +v -1.000000 1.938500 -3.125000 +v 1.000000 0.231393 -3.832107 +v 1.000000 0.231393 -2.417893 +v 1.000000 1.645607 -2.417893 +v -1.000000 1.645607 -2.417893 +v 1.000000 1.645607 -3.832107 +v 0.731694 2.179917 0.187500 +v 0.643306 2.445082 0.187500 +v 0.554916 2.356694 0.187500 +v 0.643306 2.445082 -0.312500 +v 0.731694 2.179917 -0.312500 +v 0.554916 2.356694 -0.312500 +v 0.820084 2.268306 -0.312500 +v 0.820084 2.268306 0.187500 +v -1.106694 0.695083 0.187500 +v -1.018306 0.429918 0.187500 +v -0.929916 0.518306 0.187500 +v -1.018306 0.429918 -0.312500 +v -1.106694 0.695083 -0.312500 +v -0.929916 0.518306 -0.312500 +v -1.195084 0.606694 -0.312500 +v -1.195084 0.606694 0.187500 +v 1.106694 0.695082 0.187500 +v 1.018306 0.429917 0.187500 +v 1.195082 0.606694 0.187500 +v 1.106694 0.695082 -0.312500 +v 1.018306 0.429917 -0.312500 +v 0.929916 0.518306 -0.312500 +v 0.929916 0.518306 0.187500 +v 1.195082 0.606694 -0.312500 +v -0.731694 2.179918 0.187500 +v -0.643306 2.445083 0.187500 +v -0.820082 2.268306 0.187500 +v -0.731694 2.179918 -0.312500 +v -0.643306 2.445083 -0.312500 +v -0.554916 2.356694 -0.312500 +v -0.554916 2.356694 0.187500 +v -0.820082 2.268306 -0.312500 +v 0.731694 2.179917 -2.375000 +v 0.643306 2.445082 -2.375000 +v 0.554916 2.356694 -2.375000 +v 0.643306 2.445082 -2.750000 +v 0.731694 2.179917 -2.875000 +v 0.554916 2.356694 -2.750000 +v 0.820084 2.268306 -2.875000 +v 0.820084 2.268306 -2.375000 +v 0.750000 1.887724 -3.247583 +v -0.750000 2.039915 -3.445922 +v -0.750000 1.887724 -3.247583 +v 0.750000 1.696383 -3.709523 +v 0.750000 2.039915 -3.445922 +v 0.750000 1.639863 -3.280215 +v -0.750000 1.944244 -3.676892 +v 0.750000 1.944244 -3.676892 +v -0.750000 1.696383 -3.709523 +v 0.500000 0.125000 -2.750000 +v -0.500000 0.125000 -1.750000 +v -0.500000 0.125000 -2.750000 +v 0.500000 0.500000 -1.750000 +v 0.500000 0.125000 -1.750000 +v -0.500000 0.500000 -2.750000 +v -0.625000 1.687500 -4.125000 +v 0.625000 0.187500 -4.125000 +v -0.625000 0.187500 -4.125000 +v 0.625000 0.187500 -3.625000 +v 0.625000 1.687500 -4.125000 +v 0.625000 1.687500 -3.625000 +v -0.625000 1.687500 -3.625000 +v -0.625000 0.187500 -3.625000 +v 0.875000 1.658494 -2.187500 +v 1.375000 1.658494 -2.437500 +v 1.375000 1.658494 -2.187500 +v 0.875000 2.091506 -2.187500 +v 1.375000 1.875000 -2.062500 +v 1.375000 2.091506 -2.187500 +v 0.875000 1.875000 -2.562500 +v 1.375000 2.091506 -2.437500 +v 1.375000 1.875000 -2.562500 +v 0.875000 1.658494 -2.437500 +v 0.875000 1.875000 -2.062500 +v 0.875000 2.091506 -2.437500 +v 1.375000 1.983253 -2.250000 +v 1.562500 1.983253 -2.375000 +v 1.375000 1.983253 -2.375000 +v 1.375000 1.766747 -2.375000 +v 1.562500 1.766747 -2.250000 +v 1.375000 1.766747 -2.250000 +v 1.375000 1.875000 -2.187500 +v 1.562500 1.983253 -2.250000 +v 1.562500 1.875000 -2.437500 +v 1.375000 1.875000 -2.437500 +v 1.562500 1.766747 -2.375000 +v 1.562500 1.875000 -2.187500 +v 1.562500 1.712620 -2.218750 +v 1.562500 1.875000 -2.125000 +v 1.562500 2.037380 -2.218750 +v 1.562500 1.875000 -2.500000 +v 1.562500 1.712620 -2.406250 +v 1.562500 2.037380 -2.406250 +v 2.312500 1.712620 -2.406250 +v 2.312500 1.875000 -2.125000 +v 2.312500 2.037380 -2.406250 +v 2.312500 1.712620 -2.218750 +v 2.312500 2.037380 -2.218750 +v 2.312500 1.875000 -2.500000 +v 2.312500 1.983253 -2.250000 +v 2.312500 1.983253 -2.375000 +v 2.312500 1.875000 -2.437500 +v 2.312500 1.766747 -2.375000 +v 2.312500 1.766747 -2.250000 +v 2.312500 1.875000 -2.187500 +v 2.500000 1.875000 -2.187500 +v 2.500000 1.983253 -2.375000 +v 2.500000 1.766747 -2.250000 +v 2.500000 1.983253 -2.250000 +v 2.500000 1.875000 -2.437500 +v 2.500000 1.766747 -2.375000 +v 2.500000 2.091506 -2.187500 +v 2.500000 2.091506 -2.437500 +v 2.500000 1.875000 -2.562500 +v 2.500000 1.658494 -2.437500 +v 2.500000 1.658494 -2.187500 +v 2.500000 1.875000 -2.062500 +v 2.625000 2.091506 -2.437500 +v 2.625000 1.658494 -2.187500 +v 2.625000 2.091506 -2.187500 +v 2.625000 1.875000 -2.562500 +v 2.625000 1.658494 -2.437500 +v 2.625000 1.875000 -2.062500 +v 2.750000 1.875000 -2.437500 +v 2.750000 1.766747 -2.375000 +v 2.750000 1.766747 -2.250000 +v 2.750000 1.875000 -2.187500 +v 2.750000 1.983253 -2.375000 +v 2.750000 1.983253 -2.250000 +v 0.125000 1.625000 -4.734835 +v -0.125000 1.978553 -5.088388 +v -0.125000 1.625000 -4.734835 +v -0.125000 1.713388 -5.353553 +v -0.125000 1.359835 -5.000000 +v 0.125000 1.713388 -5.353553 +v 0.125000 1.359835 -5.000000 +v 0.125000 1.978553 -5.088388 +v 0.062500 2.597272 -4.558058 +v -0.062500 2.774049 -4.734835 +v -0.062500 2.597272 -4.558058 +v 0.062500 2.066942 -5.088388 +v 0.062500 2.774049 -4.734835 +v -0.062500 2.066942 -5.088388 +v -0.062500 2.243718 -5.265165 +v 0.062500 2.243718 -5.265165 +v -0.137500 2.062500 -3.749900 +v -0.137500 2.062500 -3.437400 +v -0.137500 2.187500 -3.437400 +v -0.012500 1.937500 -3.749900 +v -0.137500 1.937500 -3.749900 +v 0.137500 2.062500 -3.749900 +v 0.137500 2.062500 -3.437400 +v 0.137500 1.937500 -3.749900 +v -0.012500 2.187500 -3.437400 +v -0.012500 2.062500 -3.749900 +v 0.137500 2.134191 -3.062400 +v 0.137500 2.009191 -3.062400 +v -0.012500 2.062500 -3.437400 +v -0.137500 2.009191 -3.062400 +v -0.012500 1.937500 -3.874900 +v -0.137500 1.937500 -3.874900 +v 0.137500 1.937500 -3.874900 +v 0.012500 1.937500 -3.874900 +v 0.012500 1.937500 -3.749900 +v 0.012500 2.062500 -3.749900 +v -0.137500 1.687500 -3.874900 +v -0.012500 1.687500 -3.874900 +v -0.012500 1.687500 -3.749900 +v -0.137500 1.687500 -3.749900 +v 0.137500 1.687500 -3.874900 +v 0.137500 1.687500 -3.749900 +v 0.012500 1.687500 -3.749900 +v 0.012500 1.687500 -3.874900 +v 0.012500 2.062500 -3.437400 +v 0.625000 2.001000 -3.062500 +v 0.875000 2.001000 -3.187500 +v 0.625000 2.001000 -3.187500 +v 0.012500 2.187500 -3.437400 +v 0.137500 2.187500 -3.437400 +v 0.012500 2.134191 -3.062400 +v -0.137500 2.134191 -3.062400 +v 0.012500 2.009191 -3.062400 +v -0.012500 2.134191 -3.062400 +v -0.012500 2.009191 -3.062400 +v 0.625000 1.938500 -3.250000 +v -0.625000 1.830247 -3.187500 +v -0.625000 1.938500 -3.250000 +v 0.625000 1.876000 -3.062500 +v 0.875000 2.001000 -3.062500 +v 0.625000 1.830247 -3.187500 +v -0.625000 1.830247 -3.062500 +v 0.625000 1.876000 -3.187500 +v 0.875000 1.876000 -3.062500 +v 0.625000 1.830247 -3.062500 +v -0.625000 1.938500 -3.000000 +v 0.875000 1.876000 -3.187500 +v 0.625000 1.938500 -3.000000 +v -0.625000 2.046753 -3.062500 +v 0.625000 2.046753 -3.062500 +v -0.625000 2.046753 -3.187500 +v 0.625000 2.046753 -3.187500 +v 1.000000 2.001000 -3.062500 +v 1.000000 2.001000 -3.187500 +v 1.000000 2.126000 -3.187500 +v 0.875000 2.126000 -3.187500 +v 1.000000 2.126000 -3.312500 +v 1.000000 2.126000 -3.062500 +v 0.875000 2.126000 -3.062500 +v 1.000000 2.251000 -3.187500 +v 0.875000 2.251000 -3.187500 +v 1.000000 2.251000 -3.312500 +v 0.875000 2.001000 -3.937500 +v 0.875000 2.251000 -3.312500 +v 0.875000 2.126000 -3.312500 +v 1.000000 1.876000 -3.937500 +v 1.000000 1.876000 -4.062500 +v 1.000000 2.001000 -3.937500 +v 0.875000 1.876000 -3.937500 +v 0.875000 1.876000 -4.062500 +v 0.875000 1.626000 -3.937500 +v 0.625000 1.501000 -3.937500 +v 0.875000 1.501000 -3.937500 +v 1.000000 1.626000 -3.937500 +v 1.000000 1.626000 -4.062500 +v 0.875000 1.626000 -4.062500 +v 0.875000 1.501000 -4.062500 +v 0.625000 1.626000 -3.937500 +v 0.625000 1.626000 -4.062500 +v 0.625000 1.501000 -4.062500 +v 0.344030 1.791848 -0.175597 +v 0.388541 1.881795 -0.128904 +v 0.328091 1.825547 -0.163924 +v 0.334466 2.057472 -0.062870 +v 0.385571 1.964314 -0.093884 +v 0.420670 1.976871 -0.082211 +v 0.216518 2.061433 -0.082211 +v 0.172007 1.971487 -0.128904 +v 0.232457 2.027735 -0.093884 +v 0.135918 1.986435 -0.128904 +v 0.174978 1.888968 -0.163924 +v 0.226082 1.795810 -0.194938 +v 0.239630 1.828518 -0.178429 +v 0.424630 1.866847 -0.128904 +v 0.320918 2.024764 -0.079378 +v 0.139879 1.876410 -0.175597 +v 0.248396 1.994037 -0.105557 +v 0.210077 1.901526 -0.152250 +v 0.312152 1.859245 -0.152250 +v 0.161900 1.947084 -0.072260 +v 0.238288 1.969634 -0.048913 +v 0.222349 2.003332 -0.037240 +v 0.199968 1.877123 -0.095606 +v 0.197989 1.932135 -0.072260 +v 0.229523 1.804115 -0.121785 +v 0.164869 1.864565 -0.107280 +v 0.317984 1.801143 -0.107280 +v 0.243071 1.836822 -0.105277 +v 0.342344 1.872341 -0.072260 +v 0.302044 1.834842 -0.095606 +v 0.378433 1.857392 -0.072260 +v 0.340365 1.927353 -0.048913 +v 0.375462 1.939911 -0.037240 +v 0.297262 1.967653 -0.039243 +v 0.310810 2.000361 -0.022734 +v -0.541848 1.594031 -0.175597 +v -0.631795 1.638541 -0.128904 +v -0.575547 1.578091 -0.163924 +v -0.807472 1.584466 -0.062870 +v -0.714314 1.635571 -0.093884 +v -0.726871 1.670670 -0.082211 +v -0.811433 1.466519 -0.082211 +v -0.721487 1.422007 -0.128904 +v -0.777735 1.482457 -0.093884 +v -0.736435 1.385918 -0.128904 +v -0.638968 1.424978 -0.163924 +v -0.545810 1.476082 -0.194938 +v -0.578518 1.489630 -0.178429 +v -0.616847 1.674630 -0.128904 +v -0.774764 1.570918 -0.079378 +v -0.626410 1.389879 -0.175597 +v -0.744037 1.498396 -0.105557 +v -0.651526 1.460078 -0.152250 +v -0.609245 1.562152 -0.152250 +v -0.697084 1.411900 -0.072260 +v -0.719634 1.488288 -0.048913 +v -0.753332 1.472349 -0.037240 +v -0.627123 1.449969 -0.095606 +v -0.682135 1.447989 -0.072260 +v -0.554115 1.479523 -0.121785 +v -0.614565 1.414870 -0.107280 +v -0.551143 1.567984 -0.107280 +v -0.586822 1.493071 -0.105277 +v -0.607392 1.628433 -0.072260 +v -0.584842 1.552044 -0.095606 +v -0.677353 1.590365 -0.048913 +v -0.622341 1.592345 -0.072260 +v -0.689911 1.625462 -0.037240 +v -0.717653 1.547262 -0.039243 +v -0.750361 1.560810 -0.022734 +v 0.541848 0.905970 -0.175597 +v 0.631795 0.861459 -0.128904 +v 0.575547 0.921909 -0.163924 +v 0.807472 0.915534 -0.062870 +v 0.714314 0.864429 -0.093884 +v 0.726871 0.829330 -0.082211 +v 0.811433 1.033482 -0.082211 +v 0.721487 1.077993 -0.128904 +v 0.777735 1.017543 -0.093884 +v 0.736435 1.114082 -0.128904 +v 0.638968 1.075022 -0.163924 +v 0.545810 1.023918 -0.194938 +v 0.578518 1.010370 -0.178429 +v 0.616847 0.825370 -0.128904 +v 0.774764 0.929082 -0.079378 +v 0.626410 1.110121 -0.175597 +v 0.744037 1.001604 -0.105557 +v 0.651526 1.039923 -0.152250 +v 0.609245 0.937848 -0.152250 +v 0.697084 1.088100 -0.072260 +v 0.719634 1.011712 -0.048913 +v 0.753332 1.027651 -0.037240 +v 0.627123 1.050032 -0.095606 +v 0.682135 1.052011 -0.072260 +v 0.554115 1.020477 -0.121785 +v 0.614565 1.085131 -0.107280 +v 0.551143 0.932016 -0.107280 +v 0.586822 1.006929 -0.105277 +v 0.607392 0.871567 -0.072260 +v 0.584842 0.947956 -0.095606 +v 0.677353 0.909636 -0.048913 +v 0.622341 0.907656 -0.072260 +v 0.689911 0.874539 -0.037240 +v 0.717653 0.952738 -0.039243 +v 0.750361 0.939190 -0.022734 +v -0.626411 1.110122 -0.175597 +v -0.721487 1.077994 -0.128904 +v -0.638968 1.075022 -0.163924 +v -0.807472 0.915534 -0.062870 +v -0.777736 1.017543 -0.093884 +v -0.811434 1.033483 -0.082211 +v -0.726871 0.829332 -0.082211 +v -0.631795 0.861459 -0.128904 +v -0.714314 0.864430 -0.093884 +v -0.616847 0.825370 -0.128904 +v -0.575547 0.921910 -0.163924 +v -0.545810 1.023918 -0.194938 +v -0.578518 1.010370 -0.178429 +v -0.736436 1.114082 -0.128904 +v -0.774764 0.929083 -0.079378 +v -0.541848 0.905971 -0.175597 +v -0.701756 0.899529 -0.105557 +v -0.609246 0.937849 -0.152250 +v -0.651526 1.039924 -0.152250 +v -0.607393 0.871567 -0.072260 +v -0.677353 0.909637 -0.048913 +v -0.689911 0.874538 -0.037240 +v -0.584842 0.947956 -0.095606 +v -0.622341 0.907657 -0.072260 +v -0.554116 1.020479 -0.121785 +v -0.551143 0.932017 -0.107280 +v -0.614565 1.085132 -0.107280 +v -0.586823 1.006931 -0.105277 +v -0.697084 1.088102 -0.072260 +v -0.627123 1.050032 -0.095606 +v -0.719635 1.011713 -0.048913 +v -0.682136 1.052012 -0.072260 +v -0.753332 1.027651 -0.037240 +v -0.717654 0.952739 -0.039243 +v -0.750361 0.939191 -0.022734 +v 0.626411 1.389878 -0.175597 +v 0.721487 1.422006 -0.128904 +v 0.638968 1.424978 -0.163924 +v 0.807472 1.584466 -0.062870 +v 0.777736 1.482457 -0.093884 +v 0.811434 1.466517 -0.082211 +v 0.726872 1.670668 -0.082211 +v 0.631796 1.638541 -0.128904 +v 0.714314 1.635570 -0.093884 +v 0.616847 1.674630 -0.128904 +v 0.575547 1.578090 -0.163924 +v 0.545810 1.476082 -0.194938 +v 0.578518 1.489630 -0.178429 +v 0.736436 1.385918 -0.128904 +v 0.774764 1.570918 -0.079378 +v 0.541848 1.594029 -0.175597 +v 0.701756 1.600471 -0.105557 +v 0.609246 1.562152 -0.152250 +v 0.651526 1.460077 -0.152250 +v 0.607393 1.628433 -0.072260 +v 0.677353 1.590363 -0.048913 +v 0.689911 1.625462 -0.037240 +v 0.584842 1.552044 -0.095606 +v 0.622342 1.592343 -0.072260 +v 0.554116 1.479522 -0.121785 +v 0.551144 1.567983 -0.107280 +v 0.614566 1.414869 -0.107280 +v 0.586823 1.493069 -0.105277 +v 0.697084 1.411898 -0.072260 +v 0.627123 1.449969 -0.095606 +v 0.719635 1.488287 -0.048913 +v 0.682136 1.447988 -0.072260 +v 0.753332 1.472350 -0.037240 +v 0.717654 1.547261 -0.039243 +v 0.750361 1.560810 -0.022734 +v -0.139878 1.876411 -0.175597 +v -0.172006 1.971487 -0.128904 +v -0.174978 1.888969 -0.163924 +v -0.334466 2.057472 -0.062870 +v -0.232457 2.027736 -0.093884 +v -0.216517 2.061434 -0.082211 +v -0.420668 1.976872 -0.082211 +v -0.388541 1.881796 -0.128904 +v -0.385570 1.964314 -0.093884 +v -0.424630 1.866847 -0.128904 +v -0.328090 1.825547 -0.163924 +v -0.226082 1.795810 -0.194938 +v -0.239630 1.828518 -0.178429 +v -0.135918 1.986436 -0.128904 +v -0.320918 2.024765 -0.079378 +v -0.344029 1.791849 -0.175597 +v -0.350471 1.951756 -0.105557 +v -0.312151 1.859246 -0.152250 +v -0.210077 1.901526 -0.152250 +v -0.378433 1.857393 -0.072260 +v -0.340363 1.927353 -0.048913 +v -0.375462 1.939911 -0.037240 +v -0.302044 1.834842 -0.095606 +v -0.342343 1.872342 -0.072260 +v -0.229521 1.804116 -0.121785 +v -0.317983 1.801144 -0.107280 +v -0.164869 1.864566 -0.107280 +v -0.243069 1.836823 -0.105277 +v -0.161898 1.947084 -0.072260 +v -0.199968 1.877123 -0.095606 +v -0.238287 1.969635 -0.048913 +v -0.197988 1.932136 -0.072260 +v -0.222349 2.003333 -0.037240 +v -0.297261 1.967654 -0.039243 +v -0.310809 2.000361 -0.022734 +v 0.139878 0.623589 -0.175597 +v 0.172006 0.528513 -0.128904 +v 0.174978 0.611032 -0.163924 +v 0.334466 0.442528 -0.062870 +v 0.232457 0.472264 -0.093884 +v 0.216517 0.438566 -0.082211 +v 0.420668 0.523129 -0.082211 +v 0.388541 0.618205 -0.128904 +v 0.385570 0.535686 -0.093884 +v 0.344029 0.708152 -0.175597 +v 0.424630 0.633153 -0.128904 +v 0.226082 0.704190 -0.194938 +v 0.239630 0.671482 -0.178429 +v 0.135918 0.513564 -0.128904 +v 0.320918 0.475236 -0.079378 +v 0.328090 0.674453 -0.163924 +v 0.350471 0.548244 -0.105557 +v 0.312151 0.640754 -0.152250 +v 0.210077 0.598474 -0.152250 +v 0.378433 0.642607 -0.072260 +v 0.340363 0.572647 -0.048913 +v 0.375462 0.560089 -0.037240 +v 0.302044 0.665158 -0.095606 +v 0.342343 0.627659 -0.072260 +v 0.229521 0.695884 -0.121785 +v 0.317983 0.698857 -0.107280 +v 0.164869 0.635435 -0.107280 +v 0.243069 0.663177 -0.105277 +v 0.161898 0.552916 -0.072260 +v 0.199969 0.622877 -0.095606 +v 0.238287 0.530365 -0.048913 +v 0.197988 0.567865 -0.072260 +v 0.222349 0.496668 -0.037240 +v 0.297261 0.532347 -0.039243 +v 0.310809 0.499639 -0.022734 +v 0.391169 2.232164 0.136894 +v 0.014465 2.197720 -0.081856 +v 0.349313 2.131115 -0.081856 +v 0.025414 2.252758 -0.109375 +v 0.025414 2.362132 0.109375 +v 0.014465 2.307096 0.136894 +v 0.402117 2.287201 0.109375 +v 0.360261 2.186152 -0.109375 +v -1.057095 1.264466 0.136894 +v -0.881115 1.599313 -0.081856 +v -0.982164 1.641169 0.136894 +v -1.002758 1.275414 -0.109375 +v -0.947720 1.264466 -0.081856 +v -1.112132 1.275414 0.109375 +v -1.037201 1.652117 0.109375 +v -0.936152 1.610261 -0.109375 +v 0.982164 0.858831 0.136894 +v 0.947720 1.235535 -0.081856 +v 0.881115 0.900687 -0.081856 +v 1.002758 1.224586 -0.109375 +v 1.112132 1.224586 0.109375 +v 1.057095 1.235535 0.136894 +v 1.037201 0.847883 0.109375 +v 0.936152 0.889739 -0.109375 +v -0.971093 0.832103 0.136894 +v -0.680368 0.590089 -0.081856 +v -0.870044 0.873959 -0.081856 +v -0.727027 0.558913 -0.109375 +v -0.804366 0.481574 0.109375 +v -0.757708 0.512749 0.136894 +v -1.017751 0.800928 0.109375 +v -0.916702 0.842784 -0.109375 +v 0.971093 1.667897 0.136894 +v 0.680368 1.909911 -0.081856 +v 0.870044 1.626041 -0.081856 +v 0.727027 1.941087 -0.109375 +v 0.804366 2.018426 0.109375 +v 0.757708 1.987251 0.136894 +v 1.017752 1.699073 0.109375 +v 0.916703 1.657217 -0.109375 +v -0.737251 2.007708 0.136894 +v -0.376041 2.120044 -0.081856 +v -0.417897 2.221093 0.136894 +v -0.691087 1.977027 -0.109375 +v -0.659911 1.930368 -0.081856 +v -0.768426 2.054366 0.109375 +v -0.449072 2.267752 0.109375 +v -0.407216 2.166703 -0.109375 +v 0.417897 0.278907 0.136894 +v 0.659911 0.569632 -0.081856 +v 0.376041 0.379956 -0.081856 +v 0.691087 0.522973 -0.109375 +v 0.768426 0.445634 0.109375 +v 0.737251 0.492292 0.136894 +v 0.449072 0.232249 0.109375 +v 0.407216 0.333298 -0.109375 +v -0.417897 0.278907 0.136894 +v -0.659911 0.569632 -0.081856 +v -0.737251 0.492293 0.136894 +v -0.407218 0.333298 -0.109375 +v -0.376041 0.379957 -0.081856 +v -0.449074 0.232249 0.109375 +v -0.768427 0.445635 0.109375 +v -0.691088 0.522974 -0.109375 +v 0.737251 2.007708 0.136894 +v 0.376041 2.120044 -0.081856 +v 0.659911 1.930368 -0.081856 +v 0.407218 2.166703 -0.109375 +v 0.449074 2.267751 0.109375 +v 0.417897 2.221093 0.136894 +v 0.768427 2.054366 0.109375 +v 0.691088 1.977026 -0.109375 +v -0.757708 1.987251 0.136894 +v -0.870044 1.626041 -0.081856 +v -0.680368 1.909911 -0.081856 +v -0.916702 1.657218 -0.109375 +v -1.017751 1.699074 0.109375 +v -0.971093 1.667897 0.136894 +v -0.804365 2.018427 0.109375 +v -0.727026 1.941088 -0.109375 +v 0.757708 0.512749 0.136894 +v 0.870044 0.873959 -0.081856 +v 0.680368 0.590089 -0.081856 +v 0.916702 0.842782 -0.109375 +v 1.017751 0.800926 0.109375 +v 0.971093 0.832103 0.136894 +v 0.804366 0.481573 0.109375 +v 0.727026 0.558912 -0.109375 +v -1.057095 1.235535 0.136894 +v -0.881115 0.900688 -0.081856 +v -0.947720 1.235535 -0.081856 +v -0.936153 0.889740 -0.109375 +v -1.037201 0.847885 0.109375 +v -0.982164 0.858832 0.136894 +v -1.112132 1.224588 0.109375 +v -1.002758 1.224588 -0.109375 +v 1.057095 1.264465 0.136894 +v 0.881115 1.599313 -0.081856 +v 0.947720 1.264465 -0.081856 +v 0.936153 1.610260 -0.109375 +v 1.037202 1.652116 0.109375 +v 0.982164 1.641169 0.136894 +v 1.112132 1.275412 0.109375 +v 1.002758 1.275412 -0.109375 +v -0.391168 2.232164 0.136894 +v -0.014465 2.197721 -0.081856 +v -0.014465 2.307096 0.136894 +v -0.360260 2.186153 -0.109375 +v -0.349312 2.131115 -0.081856 +v -0.402115 2.287201 0.109375 +v -0.025412 2.362133 0.109375 +v -0.025412 2.252758 -0.109375 +v 0.014465 0.192905 0.136894 +v 0.349312 0.368885 -0.081856 +v 0.014465 0.302280 -0.081856 +v 0.360260 0.313847 -0.109375 +v 0.402115 0.212799 0.109375 +v 0.391169 0.267836 0.136894 +v 0.025412 0.137868 0.109375 +v 0.025412 0.247242 -0.109375 +v 1.125000 1.875000 -0.625000 +v 0.625000 2.375000 -0.875000 +v 0.625000 2.375000 -0.625000 +v -0.375000 2.500000 -0.875000 +v 0.375000 2.500000 -0.625000 +v 0.375000 2.500000 -0.875000 +v -0.625000 2.375000 -0.625000 +v -1.125000 1.875000 -0.875000 +v -1.125000 1.875000 -0.625000 +v -0.208096 0.543462 -0.128904 +v -0.253178 0.638775 -0.161921 +v -0.352451 0.603256 -0.128904 +v -0.350471 0.548244 -0.105557 +v -0.307370 0.507944 -0.095887 +v -0.047836 1.365485 -0.500000 +v -0.115485 1.297835 -0.500000 +v -0.115485 1.202165 -0.500000 +v -0.047836 1.134515 -0.500000 +v 0.047834 1.134515 -0.500000 +v 0.173227 1.178247 -0.375000 +v 0.750000 1.544192 -3.511185 +v -0.750000 1.544192 -3.511185 +v -0.750000 1.639863 -3.280215 +v 0.500000 0.500000 -2.750000 +v -0.500000 0.500000 -1.750000 +v 0.208096 1.956538 -0.128904 +v 0.253178 1.861225 -0.161921 +v 0.352451 1.896744 -0.128904 +v 0.350472 1.951756 -0.105557 +v 0.307370 1.992056 -0.095887 +v -0.706538 1.458096 -0.128904 +v -0.611225 1.503178 -0.161921 +v -0.646744 1.602452 -0.128904 +v -0.701756 1.600472 -0.105557 +v -0.742056 1.557370 -0.095887 +v 0.706538 1.041904 -0.128904 +v 0.611225 0.996822 -0.161921 +v 0.646744 0.897549 -0.128904 +v 0.701756 0.899529 -0.105557 +v 0.742056 0.942630 -0.095887 +v -0.646744 0.897548 -0.128904 +v -0.611225 0.996822 -0.161921 +v -0.706538 1.041904 -0.128904 +v -0.744037 1.001604 -0.105557 +v -0.742056 0.942631 -0.095887 +v 0.646744 1.602452 -0.128904 +v 0.611225 1.503178 -0.161921 +v 0.706538 1.458097 -0.128904 +v 0.744037 1.498396 -0.105557 +v 0.742057 1.557369 -0.095887 +v -0.352452 1.896744 -0.128904 +v -0.253178 1.861225 -0.161921 +v -0.208096 1.956538 -0.128904 +v -0.248396 1.994038 -0.105557 +v -0.307369 1.992057 -0.095887 +v 0.352452 0.603256 -0.128904 +v 0.253178 0.638775 -0.161921 +v 0.208096 0.543462 -0.128904 +v 0.248396 0.505963 -0.105557 +v 0.307369 0.507944 -0.095887 +v 1.125000 1.875000 -0.875000 +v -0.375000 2.500000 -0.625000 +v -0.625000 2.375000 -0.875000 +v 0.110485 0.764515 -0.750000 +v 0.156250 0.737706 -0.418544 +v 0.110485 0.659581 -0.496669 +v 0.000000 1.031250 -0.750000 +v 0.110485 0.815831 -0.340419 +v 0.110485 0.985485 -0.750000 +v -0.156250 0.875000 -0.750000 +v -0.110486 0.815831 -0.340419 +v -0.110486 0.985485 -0.750000 +v -0.110486 0.764515 -0.750000 +v -0.156250 0.737706 -0.418544 +v 0.000000 0.718750 -0.750000 +v 0.000000 0.627221 -0.529029 +v 0.156250 0.875000 -0.750000 +v 0.000000 0.848192 -0.308058 +v -0.110486 0.659581 -0.496669 +v -0.156250 0.585633 -0.316931 +v -0.110486 0.627914 -0.214856 +v 0.110485 0.627914 -0.214856 +v 0.110485 0.543352 -0.419007 +v -0.110486 0.543352 -0.419007 +v 0.000000 0.645427 -0.172575 +v 0.156250 0.585633 -0.316931 +v 0.000000 0.525838 -0.461288 +v 0.110485 0.406250 -0.391735 +v 0.000000 0.406250 -0.437500 +v -0.110486 0.406250 -0.391735 +v -0.156250 0.406250 -0.281250 +v -0.110486 0.406250 -0.170765 +v 0.110485 0.406250 -0.170765 +v 0.000000 0.406250 -0.125000 +v 0.156250 0.406250 -0.281250 +v 0.000000 0.167073 -0.172575 +v 0.110485 0.184586 -0.214856 +v 0.156250 0.226867 -0.316932 +v 0.110485 0.269148 -0.419007 +v 0.000000 0.286661 -0.461288 +v -0.156250 0.226867 -0.316932 +v -0.110486 0.184586 -0.214856 +v -0.110486 0.269148 -0.419007 +v -0.200528 0.477172 -0.515462 +v -0.196566 0.367147 -0.468769 +v -0.404678 0.561734 -0.515462 +v -0.286731 0.557772 -0.534803 +v -0.485279 0.486735 -0.468769 +v -0.277166 0.292148 -0.422076 +v -0.395115 0.296110 -0.402735 +v -0.481318 0.376710 -0.422076 +v 0.095671 1.480970 -0.750000 +v 0.230970 1.345671 -0.750000 +v 0.230970 1.154329 -0.750000 +v 0.095671 1.019030 -0.750000 +v -0.095671 1.019030 -0.750000 +v -0.230970 1.154329 -0.750000 +v -0.230970 1.345671 -0.750000 +v -0.095671 1.480970 -0.750000 +v 0.875000 2.125000 -1.125000 +v 0.867418 1.992418 -0.974112 +v 0.911612 2.036612 -1.125000 +v 0.698223 2.125000 -1.125000 +v 0.742418 2.117417 -0.974112 +v 0.786612 2.161612 -1.125000 +v -0.742418 2.117417 -0.974112 +v -0.698223 2.125000 -1.125000 +v -0.786612 2.161612 -1.125000 +v -0.867418 1.992418 -0.974112 +v -0.875000 2.125000 -1.125000 +v -0.911612 2.036612 -1.125000 +v -0.875000 1.948223 -1.125000 +v -0.823223 2.073223 -0.948223 +v -0.635723 2.010723 -0.911612 +v -0.849112 1.922335 -1.036612 +v -0.760723 1.885723 -0.911612 +v -0.609835 2.036612 -1.000000 +v -0.672335 2.099112 -1.036612 +v -0.565641 2.294194 -0.974112 +v -0.521447 2.301777 -1.125000 +v -0.609835 2.338388 -1.125000 +v -0.690641 2.169194 -0.974112 +v -0.698223 2.301777 -1.125000 +v -0.734835 2.213388 -1.125000 +v -0.672335 2.099112 -1.036612 +v -0.698223 2.125000 -1.125000 +v -0.646447 2.250000 -0.948223 +v -0.458947 2.187500 -0.911612 +v -0.583947 2.062500 -0.911612 +v -0.495558 2.275888 -1.036612 +v -0.919194 1.940641 -0.974112 +v -0.875000 1.948223 -1.125000 +v -0.963388 1.984835 -1.125000 +v -1.044194 1.815641 -0.974112 +v -1.051777 1.948223 -1.125000 +v -1.088388 1.859835 -1.125000 +v -1.025888 1.745558 -1.036612 +v -1.051777 1.771446 -1.125000 +v -1.000000 1.896446 -0.948223 +v -0.812500 1.833946 -0.911612 +v -0.963388 1.683058 -1.000000 +v -0.786612 1.859835 -1.000000 +v -0.849112 1.922335 -1.036612 +v -0.937500 1.708946 -0.911612 +v -0.786612 2.161612 -1.812500 +v -0.609835 2.338388 -1.875000 +v -0.875000 2.125000 -1.812500 +v -0.911612 2.036612 -1.812500 +v -0.963388 1.984835 -1.750000 +v -0.698223 2.301777 -1.875000 +v -0.875000 1.948223 -1.812500 +v -0.734835 2.213388 -1.875000 +v -1.051777 1.948223 -1.750000 +v -1.088388 1.859835 -1.750000 +v -0.698223 2.125000 -1.875000 +v -1.051777 1.771446 -1.750000 +v 0.823223 2.073223 -0.948223 +v 0.875000 1.948223 -1.125000 +v 0.849112 1.922335 -1.036612 +v 0.635723 2.010723 -0.911612 +v 0.698223 1.948223 -0.875000 +v 0.760723 1.885723 -0.911612 +v 0.786612 1.859835 -1.000000 +v 0.609835 2.036612 -1.000000 +v 0.521447 2.301777 -1.125000 +v 0.565641 2.294194 -0.974112 +v 0.609835 2.338388 -1.125000 +v 0.698223 2.301777 -1.125000 +v 0.690641 2.169194 -0.974112 +v 0.734835 2.213388 -1.125000 +v 0.646447 2.250000 -0.948223 +v 0.672335 2.099112 -1.036612 +v 0.698223 2.125000 -1.125000 +v 0.458947 2.187500 -0.911612 +v 0.521447 2.125000 -0.875000 +v 0.583947 2.062500 -0.911612 +v 0.609835 2.036612 -1.000000 +v 0.495558 2.275888 -1.036612 +v 0.875000 1.948223 -1.125000 +v 0.919194 1.940641 -0.974112 +v 0.963388 1.984835 -1.125000 +v 1.051777 1.948223 -1.125000 +v 1.044194 1.815641 -0.974112 +v 1.088388 1.859835 -1.125000 +v 1.000000 1.896446 -0.948223 +v 1.025888 1.745558 -1.036612 +v 1.051777 1.771446 -1.125000 +v 0.812500 1.833946 -0.911612 +v 0.875000 1.771446 -0.875000 +v 0.963388 1.683058 -1.000000 +v 0.786612 1.859835 -1.000000 +v 0.937500 1.708946 -0.911612 +v 0.786612 2.161612 -1.812500 +v 0.609835 2.338388 -1.875000 +v 0.875000 2.125000 -1.812500 +v 0.911612 2.036612 -1.812500 +v 0.963388 1.984835 -1.750000 +v 0.698223 2.301777 -1.875000 +v 0.875000 1.948223 -1.812500 +v 0.734835 2.213388 -1.875000 +v 1.051777 1.948223 -1.750000 +v 1.088388 1.859835 -1.750000 +v 0.698223 2.125000 -1.875000 +v 1.051777 1.771446 -1.750000 +v -0.110485 1.735485 -0.750000 +v -0.156250 1.762294 -0.418544 +v -0.110485 1.840419 -0.496669 +v 0.000000 1.468750 -0.750000 +v -0.110485 1.684169 -0.340419 +v -0.110485 1.514515 -0.750000 +v 0.156250 1.625000 -0.750000 +v 0.110486 1.684169 -0.340419 +v 0.110486 1.514515 -0.750000 +v 0.110486 1.735485 -0.750000 +v 0.156250 1.762294 -0.418544 +v 0.000000 1.781250 -0.750000 +v 0.000000 1.872779 -0.529029 +v -0.156250 1.625000 -0.750000 +v 0.000000 1.651808 -0.308058 +v 0.110486 1.840419 -0.496669 +v 0.156250 1.914367 -0.316931 +v 0.110486 1.872086 -0.214856 +v -0.110485 1.872086 -0.214856 +v -0.110485 1.956648 -0.419007 +v 0.110486 1.956648 -0.419007 +v 0.000000 1.854573 -0.172575 +v -0.156250 1.914367 -0.316931 +v 0.000000 1.974162 -0.461288 +v -0.110485 2.093750 -0.391735 +v 0.000000 2.093750 -0.437500 +v 0.110486 2.093750 -0.391735 +v 0.156250 2.093750 -0.281250 +v 0.110486 2.093750 -0.170765 +v -0.110485 2.093750 -0.170765 +v 0.000000 2.093750 -0.125000 +v -0.156250 2.093750 -0.281250 +v 0.000000 2.332927 -0.172575 +v -0.110485 2.315414 -0.214856 +v -0.156250 2.273133 -0.316932 +v -0.110485 2.230852 -0.419007 +v 0.000000 2.213339 -0.461288 +v 0.156250 2.273133 -0.316932 +v 0.110486 2.315414 -0.214856 +v 0.110486 2.230852 -0.419007 +v 0.200528 2.022828 -0.515462 +v 0.196566 2.132853 -0.468769 +v 0.404678 1.938266 -0.515462 +v 0.286731 1.942228 -0.534803 +v 0.485279 2.013265 -0.468769 +v 0.277166 2.207852 -0.422076 +v 0.395115 2.203890 -0.402735 +v 0.481318 2.123290 -0.422076 +v -0.485485 1.139515 -0.750000 +v -0.512294 1.093750 -0.418544 +v -0.590419 1.139515 -0.496669 +v -0.218750 1.250000 -0.750000 +v -0.434169 1.139515 -0.340419 +v -0.264515 1.139515 -0.750000 +v -0.375000 1.406250 -0.750000 +v -0.434169 1.360486 -0.340419 +v -0.264515 1.360486 -0.750000 +v -0.485485 1.360486 -0.750000 +v -0.512294 1.406250 -0.418544 +v -0.531250 1.250000 -0.750000 +v -0.622779 1.250000 -0.529029 +v -0.375000 1.093750 -0.750000 +v -0.401808 1.250000 -0.308058 +v -0.590419 1.360486 -0.496669 +v -0.664367 1.406250 -0.316931 +v -0.622086 1.360486 -0.214856 +v -0.622086 1.139515 -0.214856 +v -0.706648 1.139515 -0.419007 +v -0.706648 1.360486 -0.419007 +v -0.604573 1.250000 -0.172575 +v -0.664367 1.093750 -0.316931 +v -0.724162 1.250000 -0.461288 +v -0.843750 1.139515 -0.391735 +v -0.843750 1.250000 -0.437500 +v -0.843750 1.360486 -0.391735 +v -0.843750 1.406250 -0.281250 +v -0.843750 1.360486 -0.170765 +v -0.843750 1.139515 -0.170765 +v -0.843750 1.250000 -0.125000 +v -0.843750 1.093750 -0.281250 +v -1.082927 1.250000 -0.172575 +v -1.065414 1.139515 -0.214856 +v -1.023133 1.093750 -0.316932 +v -0.980852 1.139515 -0.419007 +v -0.963339 1.250000 -0.461288 +v -1.023133 1.406250 -0.316932 +v -1.065414 1.360486 -0.214856 +v -0.980852 1.360486 -0.419007 +v -0.772828 1.450528 -0.515462 +v -0.882853 1.446566 -0.468769 +v -0.688266 1.654678 -0.515462 +v -0.692228 1.536731 -0.534803 +v -0.763265 1.735279 -0.468769 +v -0.957852 1.527166 -0.422076 +v -0.953890 1.645115 -0.402735 +v -0.873290 1.731318 -0.422076 +v 0.485485 1.360485 -0.750000 +v 0.512294 1.406250 -0.418544 +v 0.590419 1.360485 -0.496669 +v 0.218750 1.250000 -0.750000 +v 0.434169 1.360485 -0.340419 +v 0.264515 1.360485 -0.750000 +v 0.375000 1.093750 -0.750000 +v 0.434169 1.139514 -0.340419 +v 0.264515 1.139514 -0.750000 +v 0.485485 1.139514 -0.750000 +v 0.512294 1.093750 -0.418544 +v 0.531250 1.250000 -0.750000 +v 0.622779 1.250000 -0.529029 +v 0.375000 1.406250 -0.750000 +v 0.401808 1.250000 -0.308058 +v 0.590419 1.139514 -0.496669 +v 0.664367 1.093750 -0.316931 +v 0.622086 1.139514 -0.214856 +v 0.622086 1.360485 -0.214856 +v 0.706648 1.360485 -0.419007 +v 0.706648 1.139514 -0.419007 +v 0.604573 1.250000 -0.172575 +v 0.664367 1.406250 -0.316931 +v 0.724162 1.250000 -0.461288 +v 0.843750 1.360485 -0.391735 +v 0.843750 1.250000 -0.437500 +v 0.843750 1.139514 -0.391735 +v 0.843750 1.093750 -0.281250 +v 0.843750 1.139514 -0.170765 +v 0.843750 1.360485 -0.170765 +v 0.843750 1.250000 -0.125000 +v 0.843750 1.406250 -0.281250 +v 1.082927 1.250000 -0.172575 +v 1.065414 1.360485 -0.214856 +v 1.023133 1.406250 -0.316932 +v 0.980852 1.360485 -0.419007 +v 0.963339 1.250000 -0.461288 +v 1.023133 1.093750 -0.316932 +v 1.065414 1.139514 -0.214856 +v 0.980852 1.139514 -0.419007 +v 0.772828 1.049472 -0.515462 +v 0.882853 1.053434 -0.468769 +v 0.688266 0.845322 -0.515462 +v 0.692228 0.963269 -0.534803 +v 0.763265 0.764721 -0.468769 +v 0.953890 0.854885 -0.402735 +v 0.873290 0.768682 -0.422076 +v 0.957852 0.972834 -0.422076 +v -0.265165 0.828586 -0.750000 +v -0.251761 0.777268 -0.418544 +v -0.339365 0.754386 -0.496669 +v -0.154680 1.095320 -0.750000 +v -0.228879 0.864871 -0.340419 +v -0.108916 0.984835 -0.750000 +v -0.375651 1.095320 -0.750000 +v -0.385129 1.021122 -0.340419 +v -0.265166 1.141085 -0.750000 +v -0.421415 0.984836 -0.750000 +v -0.472732 0.998239 -0.418544 +v -0.375651 0.874350 -0.750000 +v -0.440371 0.809629 -0.529029 +v -0.154680 0.874350 -0.750000 +v -0.284121 0.965879 -0.308058 +v -0.495615 0.910636 -0.496669 +v -0.580264 0.890707 -0.316931 +v -0.518007 0.888244 -0.214856 +v -0.361757 0.731994 -0.214856 +v -0.421551 0.672200 -0.419007 +v -0.577801 0.828450 -0.419007 +v -0.427498 0.822502 -0.172575 +v -0.359293 0.669736 -0.316931 +v -0.512060 0.737940 -0.461288 +v -0.518497 0.575254 -0.391735 +v -0.596621 0.653379 -0.437500 +v -0.674747 0.731504 -0.391735 +v -0.707107 0.763864 -0.281250 +v -0.674747 0.731504 -0.170765 +v -0.518497 0.575254 -0.170765 +v -0.596621 0.653379 -0.125000 +v -0.486136 0.542893 -0.281250 +v -0.765745 0.484255 -0.172575 +v -0.675237 0.418514 -0.214856 +v -0.612979 0.416050 -0.316932 +v -0.615442 0.478308 -0.419007 +v -0.681184 0.568817 -0.461288 +v -0.833950 0.637021 -0.316932 +v -0.831487 0.574764 -0.214856 +v -0.771693 0.634558 -0.419007 +v -0.688267 0.845323 -0.515462 +v -0.763264 0.764722 -0.468769 +v -0.772828 1.049473 -0.515462 +v -0.692228 0.963270 -0.534803 +v -0.882854 1.053434 -0.468769 +v -0.873290 0.768683 -0.422076 +v -0.953891 0.854886 -0.402735 +v -0.957852 0.972834 -0.422076 +v 0.265165 1.671415 -0.750000 +v 0.251761 1.722732 -0.418544 +v 0.339365 1.745614 -0.496669 +v 0.154680 1.404680 -0.750000 +v 0.228879 1.635129 -0.340419 +v 0.108916 1.515165 -0.750000 +v 0.375651 1.404680 -0.750000 +v 0.385129 1.478879 -0.340419 +v 0.265166 1.358915 -0.750000 +v 0.421415 1.515165 -0.750000 +v 0.472732 1.501761 -0.418544 +v 0.375651 1.625651 -0.750000 +v 0.440371 1.690371 -0.529029 +v 0.154680 1.625651 -0.750000 +v 0.284121 1.534121 -0.308058 +v 0.495615 1.589364 -0.496669 +v 0.580264 1.609293 -0.316931 +v 0.518007 1.611756 -0.214856 +v 0.361757 1.768006 -0.214856 +v 0.421551 1.827801 -0.419007 +v 0.577801 1.671550 -0.419007 +v 0.427498 1.677498 -0.172575 +v 0.359293 1.830264 -0.316931 +v 0.512060 1.762060 -0.461288 +v 0.596621 1.846622 -0.437500 +v 0.674747 1.768496 -0.391735 +v 0.707107 1.736136 -0.281250 +v 0.674747 1.768496 -0.170765 +v 0.518497 1.924746 -0.170765 +v 0.518497 1.924746 -0.391735 +v 0.596621 1.846622 -0.125000 +v 0.486136 1.957107 -0.281250 +v 0.765745 2.015745 -0.172575 +v 0.675237 2.081486 -0.214856 +v 0.612979 2.083950 -0.316932 +v 0.615442 2.021692 -0.419007 +v 0.681184 1.931184 -0.461288 +v 0.833950 1.862979 -0.316932 +v 0.831487 1.925236 -0.214856 +v 0.771693 1.865442 -0.419007 +v 0.688267 1.654677 -0.515462 +v 0.763264 1.735279 -0.468769 +v 0.772828 1.450527 -0.515462 +v 0.692229 1.536730 -0.534803 +v 0.882854 1.446566 -0.468769 +v 0.873290 1.731318 -0.422076 +v 0.953891 1.645114 -0.402735 +v 0.957852 1.527166 -0.422076 +v -0.421415 1.515165 -0.750000 +v -0.472732 1.501761 -0.418544 +v -0.495614 1.589365 -0.496669 +v -0.154680 1.404680 -0.750000 +v -0.385129 1.478879 -0.340419 +v -0.265165 1.358916 -0.750000 +v -0.154680 1.625651 -0.750000 +v -0.228879 1.635129 -0.340419 +v -0.108915 1.515166 -0.750000 +v -0.265164 1.671415 -0.750000 +v -0.251761 1.722732 -0.418544 +v -0.375651 1.625651 -0.750000 +v -0.440371 1.690372 -0.529029 +v -0.375651 1.404680 -0.750000 +v -0.284121 1.534121 -0.308058 +v -0.339364 1.745615 -0.496669 +v -0.359293 1.830264 -0.316931 +v -0.361756 1.768007 -0.214856 +v -0.518006 1.611757 -0.214856 +v -0.577800 1.671551 -0.419007 +v -0.421550 1.827801 -0.419007 +v -0.427498 1.677498 -0.172575 +v -0.580264 1.609293 -0.316931 +v -0.512060 1.762060 -0.461288 +v -0.674746 1.768497 -0.391735 +v -0.596621 1.846622 -0.437500 +v -0.518496 1.924747 -0.391735 +v -0.486136 1.957107 -0.281250 +v -0.518496 1.924747 -0.170765 +v -0.674746 1.768497 -0.170765 +v -0.596621 1.846622 -0.125000 +v -0.707107 1.736136 -0.281250 +v -0.765745 2.015745 -0.172575 +v -0.831486 1.925237 -0.214856 +v -0.833950 1.862979 -0.316932 +v -0.771692 1.865443 -0.419007 +v -0.681184 1.931184 -0.461288 +v -0.612979 2.083950 -0.316932 +v -0.675236 2.081487 -0.214856 +v -0.615442 2.021693 -0.419007 +v -0.404677 1.938267 -0.515462 +v -0.485278 2.013265 -0.468769 +v -0.200527 2.022829 -0.515462 +v -0.286730 1.942229 -0.534803 +v -0.196566 2.132854 -0.468769 +v -0.481318 2.123290 -0.422076 +v -0.395114 2.203891 -0.402735 +v -0.277167 2.207852 -0.422076 +v 0.421415 0.984835 -0.750000 +v 0.472732 0.998239 -0.418544 +v 0.495614 0.910635 -0.496669 +v 0.154680 1.095320 -0.750000 +v 0.385129 1.021121 -0.340419 +v 0.265165 1.141084 -0.750000 +v 0.154680 0.874350 -0.750000 +v 0.228879 0.864871 -0.340419 +v 0.108915 0.984834 -0.750000 +v 0.265164 0.828585 -0.750000 +v 0.251761 0.777268 -0.418544 +v 0.375650 0.874350 -0.750000 +v 0.440371 0.809629 -0.529029 +v 0.375651 1.095320 -0.750000 +v 0.284121 0.965879 -0.308058 +v 0.339364 0.754385 -0.496669 +v 0.359293 0.669736 -0.316931 +v 0.361756 0.731993 -0.214856 +v 0.518006 0.888243 -0.214856 +v 0.577800 0.828449 -0.419007 +v 0.421550 0.672199 -0.419007 +v 0.427498 0.822502 -0.172575 +v 0.580264 0.890707 -0.316931 +v 0.512060 0.737940 -0.461288 +v 0.674746 0.731503 -0.391735 +v 0.596621 0.653379 -0.437500 +v 0.518496 0.575253 -0.391735 +v 0.486136 0.542893 -0.281250 +v 0.518496 0.575253 -0.170765 +v 0.674746 0.731503 -0.170765 +v 0.596621 0.653379 -0.125000 +v 0.707107 0.763864 -0.281250 +v 0.765745 0.484255 -0.172575 +v 0.831486 0.574763 -0.214856 +v 0.833950 0.637021 -0.316932 +v 0.771692 0.634558 -0.419007 +v 0.681184 0.568816 -0.461288 +v 0.612979 0.416050 -0.316932 +v 0.675236 0.418513 -0.214856 +v 0.615442 0.478308 -0.419007 +v 0.404677 0.561733 -0.515462 +v 0.485278 0.486736 -0.468769 +v 0.200527 0.477172 -0.515462 +v 0.286730 0.557772 -0.534803 +v 0.196566 0.367146 -0.468769 +v 0.395114 0.296109 -0.402735 +v 0.277166 0.292148 -0.422076 +v 0.481317 0.376710 -0.422076 +v 0.000000 2.500000 -1.875000 +v 0.088388 2.463388 -1.125000 +v 0.088388 2.463388 -1.875000 +v -0.125000 2.375000 -1.875000 +v -0.088388 2.463388 -1.125000 +v -0.088388 2.463388 -1.875000 +v 0.125000 2.375000 -1.125000 +v 0.125000 2.375000 -1.875000 +v 0.000000 2.500000 -1.125000 +v -0.125000 2.338388 -1.036612 +v -0.088388 2.400888 -0.974111 +v 0.125000 2.338388 -1.036612 +v 0.000000 2.426777 -0.948223 +v 0.088388 2.400888 -0.974111 +v 0.088388 2.250000 -0.911611 +v -0.125000 2.250000 -1.000000 +v -0.088388 2.250000 -0.911611 +v 0.125000 2.250000 -1.000000 +v 0.000000 2.250000 -0.875000 +v 0.250000 2.500000 -1.875000 +v 0.338388 2.463388 -1.125000 +v 0.338388 2.463388 -1.875000 +v 0.125000 2.375000 -1.875000 +v 0.161612 2.463388 -1.125000 +v 0.161612 2.463388 -1.875000 +v 0.375000 2.375000 -1.125000 +v 0.375000 2.375000 -1.875000 +v 0.250000 2.500000 -1.125000 +v 0.125000 2.338388 -1.036612 +v 0.161612 2.400888 -0.974111 +v 0.375000 2.338388 -1.036612 +v 0.250000 2.426777 -0.948223 +v 0.338388 2.400888 -0.974111 +v 0.338388 2.250000 -0.911611 +v 0.125000 2.250000 -1.000000 +v 0.161612 2.250000 -0.911611 +v 0.375000 2.250000 -1.000000 +v 0.250000 2.250000 -0.875000 +v -0.250000 2.500000 -1.875000 +v -0.161612 2.463388 -1.125000 +v -0.161612 2.463388 -1.875000 +v -0.375000 2.375000 -1.875000 +v -0.338388 2.463388 -1.125000 +v -0.338388 2.463388 -1.875000 +v -0.125000 2.375000 -1.125000 +v -0.125000 2.375000 -1.875000 +v -0.250000 2.500000 -1.125000 +v -0.375000 2.338388 -1.036612 +v -0.338388 2.400888 -0.974111 +v -0.125000 2.338388 -1.036612 +v -0.250000 2.426777 -0.948223 +v -0.161612 2.400888 -0.974111 +v -0.161612 2.250000 -0.911611 +v -0.375000 2.250000 -1.000000 +v -0.338388 2.250000 -0.911611 +v -0.125000 2.250000 -1.000000 +v -0.250000 2.250000 -0.875000 +v 0.672335 2.099112 -1.036612 +v -0.698223 1.948223 -0.875000 +v -0.786612 1.859835 -1.000000 +v -0.521447 2.125000 -0.875000 +v -0.609835 2.036612 -1.000000 +v -0.433058 2.213388 -1.000000 +v -0.875000 1.771446 -0.875000 +v -0.698223 2.125000 -1.812500 +v -0.521447 2.301777 -1.875000 +v -0.875000 1.948223 -1.750000 +v 0.433058 2.213388 -1.000000 +v 0.849112 1.922335 -1.036612 +v 0.698223 2.125000 -1.812500 +v 0.521447 2.301777 -1.875000 +v 0.875000 1.948223 -1.750000 +v -0.125000 2.375000 -1.125000 +v 0.125000 2.375000 -1.125000 +v -0.375000 2.375000 -1.125000 +v -1.250000 1.376000 -2.625000 +v -1.250000 0.751000 -2.625000 +v -1.250000 0.750000 -0.625000 +v 1.000000 0.500000 -2.125000 +v 1.250000 0.750000 -3.750000 +v 1.250000 0.750000 -0.625000 +v 1.250000 1.625000 -3.750000 +v 1.250000 1.750000 -3.375000 +v -0.500000 0.000000 -1.625000 +v 0.500000 0.000000 -0.625000 +v -0.500000 0.000000 -0.625000 +v -1.000000 0.500000 -2.125000 +v 0.500000 0.000000 -1.625000 +v 1.000000 1.750000 -3.000000 +v 1.000000 1.750000 -3.375000 +v -1.250000 0.750000 -3.750000 +v -1.250000 1.376000 -3.625000 +v -1.250000 1.625000 -3.750000 +v -1.250000 1.750000 -3.000000 +v -1.000000 0.501000 -3.625000 +v -1.250000 0.751000 -3.625000 +v 1.000000 1.625000 -3.750000 +v 1.000000 0.500000 -3.750000 +v 1.000000 0.750000 -3.750000 +v -1.000000 0.750000 -3.750000 +v -1.000000 0.500000 -3.750000 +v -1.000000 1.625000 -3.750000 +v -1.250000 1.750000 -3.375000 +v -1.000000 1.750000 -3.375000 +v -1.000000 1.750000 -3.000000 +v 0.500000 2.500000 -2.625000 +v -0.500000 2.250000 -2.750000 +v -0.500000 2.500000 -2.625000 +v 1.250000 1.750000 -3.000000 +v 0.500000 2.250000 -2.750000 +v 0.948223 1.698223 -0.875000 +v 0.536612 2.286612 -0.875000 +v 1.036612 1.786612 -0.875000 +v -1.036612 1.786612 -0.875000 +v -0.536612 2.286612 -0.625000 +v -0.536612 2.286612 -0.875000 +v 1.250000 1.750000 -0.625000 +v 1.039364 1.680519 -0.625000 +v 1.125000 1.250000 -0.625000 +v 1.039364 0.819481 -0.625000 +v 0.795495 0.454505 -0.625000 +v 0.430519 0.210635 -0.625000 +v 0.000000 0.125000 -0.625000 +v -0.430519 0.210636 -0.625000 +v -0.795495 0.454505 -0.625000 +v -1.039364 0.819481 -0.625000 +v -1.125000 1.250000 -0.625000 +v -0.375000 2.375000 -0.875000 +v 0.375000 2.375000 -0.625000 +v 0.375000 2.375000 -0.875000 +v -1.000000 1.750000 -2.875000 +v 1.000000 1.750000 -2.875000 +v 0.500000 2.250000 -2.625000 +v -0.500000 2.250000 -2.625000 +v 0.500000 1.819230 -2.900848 +v 0.500000 2.268567 -2.829241 +v 0.500000 2.215740 -2.715952 +v -0.500000 2.268567 -2.829241 +v -0.500000 1.819230 -2.900848 +v -0.500000 2.215740 -2.715952 +v 0.312500 2.438500 -2.750000 +v -0.500000 1.872057 -3.014137 +v -0.312500 2.438500 -2.750000 +v 0.312500 2.385673 -2.636712 +v -0.312500 2.385673 -2.636712 +v 1.000000 0.500000 -2.625000 +v 0.500000 1.562500 -4.875000 +v -0.500000 0.312500 -4.875000 +v -0.500000 1.562500 -4.875000 +v -0.500000 0.312500 -4.125000 +v 0.500000 0.312500 -4.875000 +v 0.500000 0.312500 -4.125000 +v 0.500000 1.562500 -4.125000 +v -0.500000 1.562500 -4.125000 +v 0.187500 1.625000 -4.125000 +v -0.187500 1.625000 -5.000000 +v -0.187500 1.625000 -4.125000 +v -0.187500 2.022748 -5.044194 +v -0.187500 2.022748 -5.574524 +v -0.187500 1.845971 -5.574524 +v 0.187500 1.625000 -5.000000 +v -0.187500 1.250000 -5.000000 +v 0.187500 1.250000 -5.000000 +v -0.187500 1.250000 -4.125000 +v -0.187500 1.669194 -5.397748 +v 0.187500 2.022748 -5.044194 +v 0.187500 1.845971 -5.574524 +v 0.187500 1.669194 -5.397748 +v 0.187500 2.022748 -5.574524 +v -0.187500 2.287913 -5.309359 +v 0.187500 2.287913 -5.309359 +v 0.000000 2.453697 -2.948062 +v 0.000000 2.487745 -2.725302 +v 0.000000 2.566986 -2.895234 +v 0.324759 1.977947 -2.963025 +v 0.216506 2.113832 -3.106544 +v 0.324759 2.057188 -3.132957 +v 0.000000 2.374456 -2.778129 +v 0.187500 2.442212 -2.746534 +v -0.500000 2.500000 -0.625000 +v -0.375000 2.500000 -1.875000 +v -1.125000 1.875000 -1.875000 +v -0.625000 2.375000 -1.875000 +v -0.625000 2.375000 -2.125000 +v 1.036612 1.786612 -0.625000 +v -1.125000 1.875000 -2.625000 +v -0.625000 2.375000 -2.375000 +v -0.625000 2.375000 -0.625000 +v -0.625000 2.375000 -0.875000 +v 1.125000 1.875000 -1.625000 +v 0.625000 2.375000 -1.875000 +v 0.500000 2.500000 -0.625000 +v 0.448223 2.198223 -1.875000 +v 0.948223 1.698223 -1.625000 +v -1.036612 1.786612 -2.625000 +v -1.125000 1.875000 -1.625000 +v -0.448223 2.198223 -1.875000 +v -0.536612 2.286612 -2.125000 +v -0.536612 2.286612 -2.375000 +v -0.448223 2.198223 -0.875000 +v 0.448223 2.198223 -0.875000 +v -1.036612 1.786612 -1.875000 +v -0.948223 1.698223 -1.625000 +v 0.625000 2.375000 -0.875000 +v 1.125000 1.875000 -0.875000 +v 0.375000 2.500000 -0.625000 +v 0.375000 2.500000 -0.875000 +v 0.536612 2.286612 -0.625000 +v 0.430518 2.289365 -0.625000 +v -1.039364 1.680519 -0.625000 +v -1.036612 1.786612 -0.625000 +v 0.625000 2.375000 -0.625000 +v -0.375000 2.375000 -0.625000 +v -0.430519 2.289364 -0.625000 +v 0.187500 1.250000 -4.125000 +v 0.375000 2.250000 -1.875000 +v 0.375000 2.250000 -0.875000 +v 0.375000 2.500000 -1.875000 +v -1.125000 1.875000 -0.875000 +v -0.375000 2.250000 -0.875000 +v -0.375000 2.250000 -1.875000 +v -0.375000 2.500000 -0.875000 +v 1.125000 1.875000 -0.625000 +v -0.375000 2.500000 -0.625000 +v -1.250000 1.750000 -0.625000 +v -1.125000 1.875000 -0.625000 +v -0.500000 0.000000 -0.375000 +v 0.500000 -0.000000 0.125000 +v -0.500000 -0.000000 0.125000 +v 0.500000 2.500000 0.125000 +v -0.500000 2.500000 -0.375000 +v -0.500000 2.500000 0.125000 +v -1.250000 1.750000 -0.375000 +v -1.250000 0.750000 0.125000 +v -1.250000 1.750000 0.125000 +v 1.250000 0.750000 0.125000 +v 1.250000 1.750000 -0.375000 +v 1.250000 1.750000 0.125000 +v 0.500000 2.500000 -0.375000 +v 1.250000 0.750000 -0.375000 +v 0.500000 0.000000 -0.375000 +v -1.250000 0.750000 -0.375000 +v 1.039364 1.680519 0.125000 +v 1.125000 1.250000 0.125000 +v 0.430518 2.289365 0.125000 +v 0.795495 2.045496 0.125000 +v -0.430519 2.289364 0.125000 +v 0.000000 2.375000 0.125000 +v -1.039364 1.680519 0.125000 +v -0.795495 2.045495 0.125000 +v -1.039364 0.819481 0.125000 +v -1.125000 1.250000 0.125000 +v -0.430519 0.210636 0.125000 +v -0.795495 0.454505 0.125000 +v 0.430519 0.210635 0.125000 +v 0.000000 0.125000 0.125000 +v 1.039364 0.819481 0.125000 +v 0.795495 0.454505 0.125000 +v 0.000000 0.750000 -0.750000 +v 0.500000 1.250000 -0.750000 +v 0.000000 1.750000 -0.750000 +v 0.795495 2.045496 -0.375000 +v 0.430518 2.289365 -0.375000 +v 1.125000 1.250000 -0.375000 +v 1.039364 1.680519 -0.375000 +v 0.795495 0.454505 -0.375000 +v 1.039364 0.819481 -0.375000 +v 0.000000 0.125000 -0.375000 +v 0.430519 0.210635 -0.375000 +v -0.795495 0.454505 -0.375000 +v -0.430519 0.210636 -0.375000 +v -1.125000 1.250000 -0.375000 +v -1.039364 0.819481 -0.375000 +v -0.795495 2.045495 -0.375000 +v -1.039364 1.680519 -0.375000 +v 0.000000 2.375000 -0.375000 +v -0.430519 2.289364 -0.375000 +v -1.000000 0.500000 -2.625000 +v 0.500000 1.872057 -3.014137 +v 0.216506 2.034591 -2.936611 +v 0.324760 2.317812 -2.804543 +v -0.948223 1.698223 -0.875000 +v -0.191341 1.711940 -0.750000 +v -0.353553 1.603553 -0.750000 +v -0.461940 1.441342 -0.750000 +v -0.500000 1.250000 -0.750000 +v -0.461940 1.058658 -0.750000 +v -0.353553 0.896447 -0.750000 +v -0.191341 0.788060 -0.750000 +v 0.191341 0.788060 -0.750000 +v 0.353553 0.896446 -0.750000 +v 0.461940 1.058658 -0.750000 +v 0.461940 1.441342 -0.750000 +v 0.353553 1.603554 -0.750000 +v 0.191341 1.711940 -0.750000 +v 0.000000 1.921303 -2.989438 v -0.125000 2.030899 -3.145216 v 0.000000 2.000544 -3.159371 +v -0.250000 2.147880 -2.883784 +v -0.216506 2.340409 -3.000889 +v -0.250000 2.227120 -3.053716 +v 0.187500 2.521452 -2.916467 v 0.125000 2.030899 -3.145216 -v 0.216506 2.113832 -3.106544 +v 0.125000 1.951658 -2.975283 +v -0.216506 2.034591 -2.936611 +v -0.216506 2.113832 -3.106544 +v 0.324760 2.397053 -2.974475 +v -0.125000 2.344101 -2.792284 +v -0.125000 2.423342 -2.962217 +v -0.125000 1.951658 -2.975283 +v 0.375000 2.227120 -3.053716 +v -0.216506 2.261168 -2.830956 +v 0.375000 2.147880 -2.883783 +v -0.312500 2.245990 -2.838034 +v -0.375000 2.313995 -2.944245 +v -0.375000 2.261168 -2.830956 +v -0.500000 2.147880 -2.883784 +v -0.483253 2.257351 -2.970659 +v -0.500000 2.200707 -2.997072 +v -0.266747 2.091235 -2.910197 +v -0.312500 2.102596 -3.042822 +v -0.266747 2.144063 -3.023486 +v -0.375000 2.034591 -2.936611 +v -0.437500 2.102596 -3.042822 +v -0.375000 2.087419 -3.049900 +v -0.266747 2.257351 -2.970659 +v -0.312500 2.298818 -2.951323 +v -0.437500 2.245990 -2.838034 +v -0.483253 2.204524 -2.857370 +v -0.312500 2.049769 -2.929533 +v -0.483253 2.091235 -2.910197 +v -0.437500 2.049769 -2.929533 +v -0.250000 2.147880 -2.883784 +v -0.266747 2.204524 -2.857370 +v -0.437500 2.298818 -2.951323 +v -0.483253 2.144063 -3.023486 +v -0.250000 2.200707 -2.997072 +v -0.382683 2.173880 -0.125000 +v 0.000000 2.250000 -0.125000 +v 0.382683 2.173880 -0.125000 +v 0.707106 1.957107 -0.125000 +v 0.923880 1.632684 -0.125000 +v 1.000000 1.250000 -0.125000 +v 0.923880 0.867316 -0.125000 +v 0.707106 0.542893 -0.125000 +v 0.382683 0.326120 -0.125000 +v 0.000000 0.250000 -0.125000 +v -0.382684 0.326120 -0.125000 +v -0.707108 0.542893 -0.125000 +v -0.923880 0.867316 -0.125000 +v -1.000000 1.250000 -0.125000 +v -0.923880 1.632683 -0.125000 +v -0.707108 1.957107 -0.125000 +v 0.000000 2.250000 -0.500000 +v 0.382683 2.173880 -0.500000 +v 0.000000 0.250000 -0.500000 +v -0.382683 2.173880 -0.500000 +v 0.382683 0.326120 -0.500000 +v -0.707108 1.957107 -0.500000 +v 0.707106 0.542893 -0.500000 +v -0.923880 1.632683 -0.500000 +v 0.923880 0.867316 -0.500000 +v -1.000000 1.250000 -0.500000 +v 1.000000 1.250000 -0.500000 +v -0.923880 0.867316 -0.500000 +v 0.923880 1.632684 -0.500000 +v -0.707108 0.542893 -0.500000 +v 0.707106 1.957107 -0.500000 +v -0.382684 0.326120 -0.500000 +v 0.000000 0.125000 -0.625000 +v -0.430519 2.289364 -0.625000 +v 0.000000 2.375000 -0.625000 +v 0.430519 0.210635 -0.625000 +v -0.795495 2.045495 -0.625000 +v 0.795495 0.454505 -0.625000 +v -1.039364 1.680519 -0.625000 +v 1.039364 0.819481 -0.625000 +v -1.125000 1.250000 -0.625000 +v 1.125000 1.250000 -0.625000 +v -1.039364 0.819481 -0.625000 +v 1.039364 1.680519 -0.625000 +v -0.795495 0.454505 -0.625000 +v 0.795495 2.045496 -0.625000 +v -0.430519 0.210636 -0.625000 +v 0.430518 2.289365 -0.625000 +vt 0.324138 0.796875 +vt 0.282759 0.812500 +vt 0.282759 0.796875 +vt 0.324138 0.828125 +vt 0.282759 0.843750 +vt 0.282759 0.828125 +vt 0.324138 0.859375 +vt 0.282759 0.875000 +vt 0.282759 0.859375 +vt 0.282759 0.890625 +vt 0.331034 0.906250 +vt 0.275862 0.906250 +vt 0.331034 0.765625 +vt 0.282759 0.781250 +vt 0.275862 0.765625 +vt 0.324138 0.812500 +vt 0.282759 1.000000 +vt 0.324138 0.984375 +vt 0.324138 1.000000 +vt 0.275862 0.968750 +vt 0.282759 0.984375 +vt 0.275862 0.984375 +vt 0.324138 0.953125 +vt 0.282759 0.968750 +vt 0.282759 0.953125 +vt 0.275862 0.968750 +vt 0.282759 0.984375 +vt 0.275862 0.984375 +vt 0.282759 0.968750 +vt 0.324138 0.984375 +vt 0.282759 0.984375 +vt 0.324138 0.968750 +vt 0.282759 0.968750 +vt 0.324138 0.984375 +vt 0.324138 0.968750 +vt 0.282759 0.984375 +vt 0.282759 0.968750 +vt 0.275862 0.968750 +vt 0.275862 0.984375 +vt 0.324138 0.953125 +vt 0.282759 0.953125 +vt 0.331034 0.984375 +vt 0.324138 0.968750 +vt 0.331034 0.968750 +vt 0.282759 1.000000 +vt 0.324138 1.000000 +vt 0.331034 0.984375 +vt 0.331034 0.968750 +vt 0.324138 0.953125 +vt 0.282759 0.953125 +vt 0.331034 0.984375 +vt 0.324138 0.968750 +vt 0.331034 0.968750 +vt 0.282759 1.000000 +vt 0.324138 1.000000 +vt 0.331034 0.984375 +vt 0.331034 0.968750 +vt 0.324138 0.953125 +vt 0.282759 0.953125 +vt 0.275862 0.968750 +vt 0.275862 0.984375 +vt 0.282759 1.000000 +vt 0.324138 0.984375 +vt 0.324138 1.000000 +vt 0.151724 0.046875 +vt 0.158621 0.062500 +vt 0.151724 0.062500 +vt 0.172414 0.046875 +vt 0.165517 0.062500 +vt 0.165517 0.046875 +vt 0.179310 0.046875 +vt 0.186207 0.062500 +vt 0.179310 0.062500 +vt 0.186207 0.046875 +vt 0.193103 0.062500 +vt 0.144828 0.046875 +vt 0.144828 0.062500 +vt 0.158621 0.046875 +vt 0.172414 0.062500 +vt 0.193103 0.046875 +vt 0.200000 0.062500 +vt 0.170248 0.114281 +vt 0.170248 0.135718 +vt 0.160786 0.135718 +vt 0.186207 0.078125 +vt 0.179310 0.093750 +vt 0.179310 0.078125 +vt 0.193103 0.093750 +vt 0.186207 0.093750 +vt 0.200000 0.078125 +vt 0.193103 0.078125 +vt 0.151724 0.078125 +vt 0.144828 0.093750 +vt 0.144828 0.078125 +vt 0.158621 0.078125 +vt 0.151724 0.093750 +vt 0.165517 0.093750 +vt 0.158621 0.093750 +vt 0.165517 0.078125 +vt 0.172414 0.093750 +vt 0.172414 0.078125 +vt 0.117241 0.296875 +vt 0.096552 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.343750 +vt 0.117241 0.328125 +vt 0.124138 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.310345 0.031250 +vt 0.296552 0.046875 +vt 0.296552 0.031250 +vt 0.268584 0.103261 +vt 0.268584 0.115489 +vt 0.264768 0.124136 +vt 0.282759 0.046875 +vt 0.282759 0.031250 +vt 0.268966 0.031250 +vt 0.275862 0.046875 +vt 0.268966 0.046875 +vt 0.255172 0.046875 +vt 0.255172 0.031250 +vt 0.365517 0.031250 +vt 0.351724 0.046875 +vt 0.351724 0.031250 +vt 0.337931 0.046875 +vt 0.337931 0.031250 +vt 0.324138 0.031250 +vt 0.331034 0.046875 +vt 0.324138 0.046875 +vt 0.310345 0.046875 +vt 0.296552 0.078125 +vt 0.303448 0.062500 +vt 0.303448 0.078125 +vt 0.282759 0.078125 +vt 0.289655 0.062500 +vt 0.289655 0.078125 +vt 0.268966 0.062500 +vt 0.275862 0.078125 +vt 0.268966 0.078125 +vt 0.255172 0.062500 +vt 0.262069 0.078125 +vt 0.255172 0.078125 +vt 0.351724 0.062500 +vt 0.358621 0.078125 +vt 0.351724 0.078125 +vt 0.337931 0.078125 +vt 0.344828 0.062500 +vt 0.344828 0.078125 +vt 0.324138 0.078125 +vt 0.331034 0.062500 +vt 0.331034 0.078125 +vt 0.310345 0.078125 +vt 0.317241 0.062500 +vt 0.317241 0.078125 +vt 0.848515 0.125000 +vt 0.903448 0.000542 +vt 0.958382 0.125000 +vt 0.351724 0.906250 +vt 0.331034 0.718750 +vt 0.255172 0.765625 +vt 0.275862 0.953125 +vt 0.848515 0.375000 +vt 0.903448 0.250541 +vt 0.958382 0.375000 +vt 0.737931 0.375000 +vt 0.848276 0.281250 +vt 0.848276 0.375000 +vt 0.737931 0.187500 +vt 0.848276 0.093750 +vt 0.848276 0.187500 +vt 0.737931 0.562500 +vt 0.848276 0.468750 +vt 0.848276 0.562500 +vt 0.737931 0.281250 +vt 0.737931 0.093750 +vt 0.848276 -0.000000 +vt 0.737931 0.656250 +vt 0.848276 0.656250 +vt 0.737931 0.468750 +vt 0.262069 0.140625 +vt 0.268966 0.171875 +vt 0.262069 0.171875 +vt 0.296552 0.171875 +vt 0.303448 0.140625 +vt 0.303448 0.171875 +vt 0.268966 0.125000 +vt 0.296552 0.140625 +vt 0.268966 0.140625 +vt 0.296552 0.187500 +vt 0.268966 0.187500 +vt 0.268966 0.093750 +vt 0.296552 0.125000 +vt 0.303448 0.171875 +vt 0.296552 0.140625 +vt 0.303448 0.140625 +vt 0.268966 0.140625 +vt 0.262069 0.171875 +vt 0.262069 0.140625 +vt 0.296552 0.187500 +vt 0.268966 0.171875 +vt 0.296552 0.171875 +vt 0.268966 0.125000 +vt 0.296552 0.125000 +vt 0.268966 0.093750 +vt 0.296552 0.093750 +vt 0.262069 0.171875 +vt 0.268966 0.140625 +vt 0.268966 0.171875 +vt 0.303448 0.171875 +vt 0.296552 0.140625 +vt 0.303448 0.140625 +vt 0.268966 0.125000 +vt 0.296552 0.187500 +vt 0.268966 0.187500 +vt 0.296552 0.171875 +vt 0.268966 0.093750 +vt 0.296552 0.125000 +vt 0.303448 0.140625 +vt 0.296552 0.171875 +vt 0.296552 0.140625 +vt 0.262069 0.140625 +vt 0.268966 0.171875 +vt 0.262069 0.171875 +vt 0.296552 0.187500 +vt 0.268966 0.125000 +vt 0.296552 0.125000 +vt 0.268966 0.140625 +vt 0.268966 0.093750 +vt 0.296552 0.093750 +vt 0.317241 0.140625 +vt 0.324138 0.171875 +vt 0.317241 0.171875 +vt 0.344828 0.171875 +vt 0.358621 0.187500 +vt 0.344828 0.187500 +vt 0.324138 0.125000 +vt 0.351724 0.140625 +vt 0.324138 0.140625 +vt 0.324138 0.187500 +vt 0.344828 0.093750 +vt 0.351724 0.125000 +vt 0.255172 0.343750 +vt 0.337931 0.312500 +vt 0.337931 0.343750 +vt 0.363190 0.328752 +vt 0.351724 0.373746 +vt 0.340258 0.328752 +vt 0.255172 0.312500 +vt 0.337931 0.281250 +vt 0.255172 0.281250 +vt 0.337931 0.250000 +vt 0.363190 0.296248 +vt 0.351724 0.311246 +vt 0.340258 0.296248 +vt 0.868966 0.625000 +vt 0.924138 0.500000 +vt 0.924138 0.625000 +vt 0.848276 0.500000 +vt 0.868966 0.500000 +vt 0.944828 0.625000 +vt 0.834483 0.906250 +vt 0.765517 0.718750 +vt 0.834483 0.718750 +vt 0.737931 0.718750 +vt 0.765517 0.906250 +vt 0.737931 0.906250 +vt 0.862069 0.906250 +vt 0.862069 0.718750 +vt 0.765517 0.968750 +vt 0.834483 0.968750 +vt 0.834483 0.656250 +vt 0.765517 0.656250 +vt 0.958621 0.187500 +vt 0.986207 0.156250 +vt 0.986207 0.187500 +vt 0.958621 0.062500 +vt 0.986207 0.031250 +vt 0.986207 0.062500 +vt 0.958621 0.125000 +vt 0.986207 0.093750 +vt 0.986207 0.125000 +vt 0.958621 0.156250 +vt 0.958621 0.031250 +vt 0.986207 0.000000 +vt 0.958621 0.093750 +vt 0.965937 0.193335 +vt 0.978890 0.193335 +vt 0.985367 0.218750 +vt 0.737931 0.109375 +vt 0.724138 0.093750 +vt 0.737931 0.093750 +vt 0.737931 0.015625 +vt 0.724138 0.000000 +vt 0.737931 0.000000 +vt 0.737931 0.140625 +vt 0.724138 0.125000 +vt 0.737931 0.125000 +vt 0.737931 0.078125 +vt 0.724138 0.062500 +vt 0.737931 0.062500 +vt 0.737931 0.046875 +vt 0.724138 0.031250 +vt 0.737931 0.031250 +vt 0.737931 0.171875 +vt 0.724138 0.156250 +vt 0.737931 0.156250 +vt 0.724138 0.015625 +vt 0.717241 0.000000 +vt 0.717241 0.156250 +vt 0.717241 0.125000 +vt 0.724138 0.078125 +vt 0.717241 0.062500 +vt 0.717241 0.031250 +vt 0.724138 0.171875 +vt 0.724138 0.109375 +vt 0.717241 0.093750 +vt 0.675862 0.031250 +vt 0.717241 0.187500 +vt 0.675862 0.156250 +vt 0.675862 0.093750 +vt 0.675862 0.000000 +vt 0.675862 0.125000 +vt 0.675862 0.062500 +vt 0.668966 0.125000 +vt 0.668966 0.093750 +vt 0.668966 0.078125 +vt 0.668966 0.062500 +vt 0.668966 0.031250 +vt 0.668966 0.000000 +vt 0.668966 0.171875 +vt 0.668966 0.156250 +vt 0.655172 0.156250 +vt 0.668966 0.109375 +vt 0.655172 0.093750 +vt 0.668966 0.015625 +vt 0.655172 0.000000 +vt 0.668966 0.140625 +vt 0.655172 0.125000 +vt 0.655172 0.062500 +vt 0.668966 0.046875 +vt 0.655172 0.031250 +vt 0.655172 0.140625 +vt 0.648276 0.125000 +vt 0.655172 0.109375 +vt 0.648276 0.093750 +vt 0.648276 0.062500 +vt 0.655172 0.046875 +vt 0.648276 0.031250 +vt 0.655172 0.015625 +vt 0.648276 0.000000 +vt 0.648276 0.187500 +vt 0.648276 0.156250 +vt 0.641379 0.093750 +vt 0.641379 -0.000000 +vt 0.641379 0.125000 +vt 0.641379 0.062500 +vt 0.641379 0.031250 +vt 0.641379 0.156250 +vt 0.634483 0.062500 +vt 0.634483 0.031250 +vt 0.634483 0.171875 +vt 0.634483 0.156250 +vt 0.634483 0.093750 +vt 0.634483 0.000000 +vt 0.634483 0.140625 +vt 0.634483 0.125000 +vt 0.624290 0.002689 +vt 0.630883 0.002689 +vt 0.634179 0.015625 +vt 0.496552 0.187500 +vt 0.468966 0.156250 +vt 0.496552 0.156250 +vt 0.496552 0.312500 +vt 0.468966 0.265625 +vt 0.496552 0.265625 +vt 0.468966 0.234375 +vt 0.496552 0.234375 +vt 0.468966 0.187500 +vt 0.537931 0.828125 +vt 0.524138 0.812500 +vt 0.537931 0.812500 +vt 0.503448 0.718750 +vt 0.517241 0.812500 +vt 0.503448 0.812500 +vt 0.537931 0.718750 +vt 0.524138 0.718750 +vt 0.517241 0.718750 +vt 0.496552 0.812500 +vt 0.496552 0.718750 +vt 0.544828 0.203125 +vt 0.551724 0.250000 +vt 0.544828 0.250000 +vt 0.531034 0.203125 +vt 0.524138 0.250000 +vt 0.524138 0.203125 +vt 0.510345 0.203125 +vt 0.503448 0.250000 +vt 0.503448 0.203125 +vt 0.537931 0.250000 +vt 0.537931 0.203125 +vt 0.510345 0.296875 +vt 0.503448 0.296875 +vt 0.531034 0.250000 +vt 0.524138 0.296875 +vt 0.531034 0.203125 +vt 0.531034 0.187500 +vt 0.537931 0.187500 +vt 0.544828 0.187500 +vt 0.551724 0.187500 +vt 0.551724 0.203125 +vt 0.503448 0.203125 +vt 0.503448 0.187500 +vt 0.510345 0.187500 +vt 0.517241 0.187500 +vt 0.524138 0.187500 +vt 0.524138 0.203125 +vt 0.544828 0.156250 +vt 0.537931 0.156250 +vt 0.531034 0.156250 +vt 0.524138 0.187500 +vt 0.524138 0.156250 +vt 0.510345 0.156250 +vt 0.503448 0.156250 +vt 0.524138 0.156250 +vt 0.517241 0.156250 +vt 0.551724 0.156250 +vt 0.496552 0.187500 +vt 0.496552 0.156250 +vt 0.496552 0.250000 +vt 0.496552 0.203125 +vt 0.979310 0.515625 +vt 0.986207 0.484375 +vt 0.986207 0.515625 +vt 0.517241 0.250000 +vt 0.510345 0.250000 +vt 0.524138 0.250000 +vt 0.517241 0.296875 +vt 0.544828 0.296875 +vt 0.496552 0.296875 +vt 0.537931 0.296875 +vt 0.531034 0.296875 +vt 0.517241 0.203125 +vt 0.213793 0.109375 +vt 0.220690 0.265625 +vt 0.213793 0.265625 +vt 0.972414 0.515625 +vt 0.979310 0.484375 +vt 0.220690 0.109375 +vt 0.227586 0.265625 +vt 0.965517 0.515625 +vt 0.972414 0.484375 +vt 0.186207 0.109375 +vt 0.193103 0.265625 +vt 0.186207 0.265625 +vt 0.958621 0.515625 +vt 0.965517 0.484375 +vt 0.193103 0.109375 +vt 0.200000 0.265625 +vt 0.198836 0.288749 +vt 0.193103 0.296248 +vt 0.187370 0.288749 +vt 0.200000 0.109375 +vt 0.206897 0.265625 +vt 0.206897 0.109375 +vt 0.201164 0.288749 +vt 0.201164 0.273751 +vt 0.212630 0.273751 +vt 0.972414 0.468750 +vt 0.979310 0.484375 +vt 0.979310 0.468750 +vt 0.958621 0.468750 +vt 0.965517 0.468750 +vt 0.958621 0.484375 +vt 0.965517 0.453125 +vt 0.958621 0.437500 +vt 0.965517 0.421875 +vt 0.965517 0.437500 +vt 0.972414 0.453125 +vt 0.979310 0.453125 +vt 0.986207 0.453125 +vt 0.986207 0.468750 +vt 0.972414 0.437500 +vt 0.965517 0.453125 +vt 0.986207 0.453125 +vt 0.979310 0.437500 +vt 0.986207 0.437500 +vt 0.972414 0.421875 +vt 0.979310 0.343750 +vt 0.979310 0.421875 +vt 0.986207 0.421875 +vt 0.965517 0.328125 +vt 0.972414 0.328125 +vt 0.965517 0.343750 +vt 0.986207 0.343750 +vt 0.958621 0.421875 +vt 0.965517 0.343750 +vt 0.972414 0.343750 +vt 0.979310 0.328125 +vt 0.986207 0.296875 +vt 0.986207 0.328125 +vt 0.986207 0.343750 +vt 0.958621 0.281250 +vt 0.965517 0.250000 +vt 0.965517 0.281250 +vt 0.958621 0.328125 +vt 0.965517 0.296875 +vt 0.972414 0.296875 +vt 0.979310 0.296875 +vt 0.979310 0.296875 +vt 0.972414 0.281250 +vt 0.979310 0.281250 +vt 0.958621 0.296875 +vt 0.986207 0.250000 +vt 0.986207 0.281250 +vt 0.979310 0.250000 +vt 0.972414 0.250000 +vt 0.151724 0.046875 +vt 0.158621 0.062500 +vt 0.151724 0.062500 +vt 0.172414 0.046875 +vt 0.165517 0.062500 +vt 0.165517 0.046875 +vt 0.179310 0.046875 +vt 0.186207 0.062500 +vt 0.179310 0.062500 +vt 0.186207 0.046875 +vt 0.193103 0.062500 +vt 0.144828 0.046875 +vt 0.144828 0.062500 +vt 0.158621 0.046875 +vt 0.172414 0.062500 +vt 0.193103 0.046875 +vt 0.200000 0.062500 +vt 0.170248 0.114281 +vt 0.170248 0.135718 +vt 0.160786 0.135718 +vt 0.186207 0.078125 +vt 0.179310 0.093750 +vt 0.179310 0.078125 +vt 0.193103 0.093750 +vt 0.186207 0.093750 +vt 0.200000 0.078125 +vt 0.193103 0.078125 +vt 0.151724 0.078125 +vt 0.144828 0.093750 +vt 0.144828 0.078125 +vt 0.158621 0.093750 +vt 0.151724 0.093750 +vt 0.158621 0.078125 +vt 0.165517 0.093750 +vt 0.165517 0.078125 +vt 0.172414 0.093750 +vt 0.172414 0.078125 +vt 0.151724 0.046875 +vt 0.158621 0.062500 +vt 0.151724 0.062500 +vt 0.172414 0.046875 +vt 0.165517 0.062500 +vt 0.165517 0.046875 +vt 0.179310 0.046875 +vt 0.186207 0.062500 +vt 0.179310 0.062500 +vt 0.186207 0.046875 +vt 0.193103 0.062500 +vt 0.144828 0.046875 +vt 0.144828 0.062500 +vt 0.158621 0.046875 +vt 0.172414 0.062500 +vt 0.193103 0.046875 +vt 0.200000 0.062500 +vt 0.170248 0.114281 +vt 0.170248 0.135718 +vt 0.160786 0.135718 +vt 0.186207 0.078125 +vt 0.179310 0.093750 +vt 0.179310 0.078125 +vt 0.193103 0.093750 +vt 0.186207 0.093750 +vt 0.200000 0.078125 +vt 0.193103 0.078125 +vt 0.151724 0.078125 +vt 0.144828 0.093750 +vt 0.144828 0.078125 +vt 0.158621 0.078125 +vt 0.151724 0.093750 +vt 0.165517 0.093750 +vt 0.158621 0.093750 +vt 0.165517 0.078125 +vt 0.172414 0.093750 +vt 0.172414 0.078125 +vt 0.151724 0.046875 +vt 0.158621 0.062500 +vt 0.151724 0.062500 +vt 0.172414 0.046875 +vt 0.165517 0.062500 +vt 0.165517 0.046875 +vt 0.179310 0.046875 +vt 0.186207 0.062500 +vt 0.179310 0.062500 +vt 0.186207 0.046875 +vt 0.193103 0.062500 +vt 0.144828 0.046875 +vt 0.144828 0.062500 +vt 0.158621 0.046875 +vt 0.172414 0.062500 +vt 0.193103 0.046875 +vt 0.200000 0.062500 +vt 0.170248 0.114281 +vt 0.170248 0.135718 +vt 0.160786 0.135718 +vt 0.186207 0.078125 +vt 0.179310 0.093750 +vt 0.179310 0.078125 +vt 0.193103 0.093750 +vt 0.186207 0.093750 +vt 0.200000 0.078125 +vt 0.193103 0.078125 +vt 0.151724 0.078125 +vt 0.144828 0.093750 +vt 0.144828 0.078125 +vt 0.158621 0.078125 +vt 0.151724 0.093750 +vt 0.165517 0.093750 +vt 0.158621 0.093750 +vt 0.165517 0.078125 +vt 0.172414 0.093750 +vt 0.172414 0.078125 +vt 0.151724 0.046875 +vt 0.158621 0.062500 +vt 0.151724 0.062500 +vt 0.172414 0.046875 +vt 0.165517 0.062500 +vt 0.165517 0.046875 +vt 0.179310 0.046875 +vt 0.186207 0.062500 +vt 0.179310 0.062500 +vt 0.186207 0.046875 +vt 0.193103 0.062500 +vt 0.144828 0.046875 +vt 0.144828 0.062500 +vt 0.158621 0.046875 +vt 0.172414 0.062500 +vt 0.193103 0.046875 +vt 0.200000 0.062500 +vt 0.170248 0.114281 +vt 0.170248 0.135718 +vt 0.160786 0.135718 +vt 0.186207 0.078125 +vt 0.179310 0.093750 +vt 0.179310 0.078125 +vt 0.193103 0.093750 +vt 0.186207 0.093750 +vt 0.200000 0.078125 +vt 0.193103 0.078125 +vt 0.151724 0.078125 +vt 0.144828 0.093750 +vt 0.144828 0.078125 +vt 0.158621 0.078125 +vt 0.151724 0.093750 +vt 0.165517 0.093750 +vt 0.158621 0.093750 +vt 0.165517 0.078125 +vt 0.172414 0.093750 +vt 0.172414 0.078125 +vt 0.151724 0.046875 +vt 0.158621 0.062500 +vt 0.151724 0.062500 +vt 0.172414 0.046875 +vt 0.165517 0.062500 +vt 0.165517 0.046875 +vt 0.179310 0.046875 +vt 0.186207 0.062500 +vt 0.179310 0.062500 +vt 0.186207 0.046875 +vt 0.193103 0.062500 +vt 0.144828 0.046875 +vt 0.144828 0.062500 +vt 0.158621 0.046875 +vt 0.172414 0.062500 +vt 0.193103 0.046875 +vt 0.200000 0.062500 +vt 0.170248 0.114281 +vt 0.170248 0.135718 +vt 0.160786 0.135718 +vt 0.186207 0.078125 +vt 0.179310 0.093750 +vt 0.179310 0.078125 +vt 0.193103 0.093750 +vt 0.186207 0.093750 +vt 0.200000 0.078125 +vt 0.193103 0.078125 +vt 0.151724 0.078125 +vt 0.144828 0.093750 +vt 0.144828 0.078125 +vt 0.158621 0.078125 +vt 0.151724 0.093750 +vt 0.165517 0.093750 +vt 0.158621 0.093750 +vt 0.165517 0.078125 +vt 0.172414 0.093750 +vt 0.172414 0.078125 +vt 0.151724 0.046875 +vt 0.158621 0.062500 +vt 0.151724 0.062500 +vt 0.172414 0.046875 +vt 0.165517 0.062500 +vt 0.165517 0.046875 +vt 0.179310 0.046875 +vt 0.186207 0.062500 +vt 0.179310 0.062500 +vt 0.186207 0.046875 +vt 0.193103 0.062500 +vt 0.144828 0.046875 +vt 0.144828 0.062500 +vt 0.158621 0.046875 +vt 0.172414 0.062500 +vt 0.193103 0.046875 +vt 0.200000 0.062500 +vt 0.170248 0.114281 +vt 0.170248 0.135718 +vt 0.160786 0.135718 +vt 0.186207 0.078125 +vt 0.179310 0.093750 +vt 0.179310 0.078125 +vt 0.193103 0.093750 +vt 0.186207 0.093750 +vt 0.200000 0.078125 +vt 0.193103 0.078125 +vt 0.151724 0.078125 +vt 0.144828 0.093750 +vt 0.144828 0.078125 +vt 0.158621 0.078125 +vt 0.151724 0.093750 +vt 0.165517 0.093750 +vt 0.158621 0.093750 +vt 0.165517 0.078125 +vt 0.172414 0.093750 +vt 0.172414 0.078125 +vt 0.151724 0.046875 +vt 0.158621 0.062500 +vt 0.151724 0.062500 +vt 0.172414 0.046875 +vt 0.165517 0.062500 +vt 0.165517 0.046875 +vt 0.179310 0.046875 +vt 0.186207 0.062500 +vt 0.179310 0.062500 +vt 0.193103 0.046875 +vt 0.186207 0.046875 +vt 0.144828 0.046875 +vt 0.144828 0.062500 +vt 0.158621 0.046875 +vt 0.172414 0.062500 +vt 0.200000 0.062500 +vt 0.193103 0.062500 +vt 0.170248 0.114281 +vt 0.170248 0.135718 +vt 0.160786 0.135718 +vt 0.186207 0.078125 +vt 0.179310 0.093750 +vt 0.179310 0.078125 +vt 0.193103 0.093750 +vt 0.186207 0.093750 +vt 0.200000 0.078125 +vt 0.193103 0.078125 +vt 0.151724 0.078125 +vt 0.144828 0.093750 +vt 0.144828 0.078125 +vt 0.158621 0.078125 +vt 0.151724 0.093750 +vt 0.165517 0.093750 +vt 0.158621 0.093750 +vt 0.165517 0.078125 +vt 0.172414 0.093750 +vt 0.172414 0.078125 +vt 0.096552 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.124138 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.117241 0.296875 +vt 0.096552 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.343750 +vt 0.117241 0.328125 +vt 0.124138 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.124138 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.124138 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.124138 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.117241 0.296875 +vt 0.096552 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.343750 +vt 0.117241 0.328125 +vt 0.124138 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.124138 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.117241 0.296875 +vt 0.096552 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.343750 +vt 0.117241 0.328125 +vt 0.124138 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.124138 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.124138 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.124138 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.124138 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.124138 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.117241 0.296875 +vt 0.096552 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.343750 +vt 0.117241 0.328125 +vt 0.124138 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.096552 0.296875 +vt 0.117241 0.328125 +vt 0.096552 0.328125 +vt 0.117241 0.343750 +vt 0.124138 0.296875 +vt 0.117241 0.296875 +vt 0.117241 0.281250 +vt 0.096552 0.281250 +vt 0.089655 0.296875 +vt 0.089655 0.328125 +vt 0.551724 0.390625 +vt 0.565517 0.484375 +vt 0.551724 0.484375 +vt 0.565517 0.609375 +vt 0.551724 0.515625 +vt 0.565517 0.515625 +vt 0.551724 0.640625 +vt 0.565517 0.734375 +vt 0.551724 0.734375 +vt 0.324138 0.843750 +vt 0.324138 0.875000 +vt 0.324138 0.890625 +vt 0.324138 0.781250 +vt 0.200000 0.046875 +vt 0.172208 0.125000 +vt 0.165517 0.140158 +vt 0.158827 0.125000 +vt 0.160786 0.114281 +vt 0.165517 0.109842 +vt 0.200000 0.093750 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.303448 0.046875 +vt 0.259370 0.124136 +vt 0.255554 0.115489 +vt 0.255554 0.103261 +vt 0.259370 0.094614 +vt 0.264768 0.094614 +vt 0.289655 0.046875 +vt 0.262069 0.046875 +vt 0.358621 0.046875 +vt 0.344828 0.046875 +vt 0.317241 0.046875 +vt 0.296552 0.062500 +vt 0.282759 0.062500 +vt 0.275862 0.062500 +vt 0.262069 0.062500 +vt 0.358621 0.062500 +vt 0.337931 0.062500 +vt 0.324138 0.062500 +vt 0.310345 0.062500 +vt 0.903448 0.249458 +vt 0.864604 0.213006 +vt 0.864604 0.036995 +vt 0.942292 0.036994 +vt 0.942292 0.213005 +vt 0.351724 0.765625 +vt 0.275862 0.718750 +vt 0.255172 0.906250 +vt 0.331034 0.953125 +vt 0.942292 0.463005 +vt 0.903448 0.499458 +vt 0.864604 0.463005 +vt 0.864604 0.286994 +vt 0.942292 0.286994 +vt 0.737931 -0.000000 +vt 0.296552 0.093750 +vt 0.268966 0.187500 +vt 0.262069 0.140625 +vt 0.296552 0.093750 +vt 0.303448 0.171875 +vt 0.268966 0.187500 +vt 0.358621 0.171875 +vt 0.324138 0.093750 +vt 0.351724 0.313754 +vt 0.363190 0.358748 +vt 0.340258 0.358748 +vt 0.255172 0.250000 +vt 0.340258 0.266252 +vt 0.351724 0.251254 +vt 0.363190 0.266252 +vt 0.848276 0.625000 +vt 0.944828 0.500000 +vt 0.958621 0.000000 +vt 0.978890 0.244165 +vt 0.965937 0.244165 +vt 0.959461 0.218750 +vt 0.724138 0.140625 +vt 0.724138 0.046875 +vt 0.675862 0.187500 +vt 0.655172 0.171875 +vt 0.655172 0.078125 +vt 0.641379 0.187500 +vt 0.634483 0.078125 +vt 0.634483 0.046875 +vt 0.634483 0.109375 +vt 0.634483 0.015625 +vt 0.630883 0.028561 +vt 0.624290 0.028561 +vt 0.620993 0.015625 +vt 0.468966 0.312500 +vt 0.524138 0.828125 +vt 0.551724 0.203125 +vt 0.524138 0.296875 +vt 0.551724 0.296875 +vt 0.524138 0.203125 +vt 0.227586 0.109375 +vt 0.958621 0.484375 +vt 0.187370 0.273751 +vt 0.193103 0.266252 +vt 0.198836 0.273751 +vt 0.206897 0.266252 +vt 0.212630 0.288749 +vt 0.206897 0.296248 +vt 0.958621 0.453125 +vt 0.958621 0.343750 +vt 0.958621 0.250000 +vt 0.958621 0.296875 +vt 0.200000 0.046875 +vt 0.172208 0.125000 +vt 0.165517 0.140158 +vt 0.158827 0.125000 +vt 0.160786 0.114281 +vt 0.165517 0.109842 +vt 0.200000 0.093750 +vt 0.200000 0.046875 +vt 0.172208 0.125000 +vt 0.165517 0.140158 +vt 0.158827 0.125000 +vt 0.160786 0.114281 +vt 0.165517 0.109842 +vt 0.200000 0.093750 +vt 0.200000 0.046875 +vt 0.172208 0.125000 +vt 0.165517 0.140158 +vt 0.158827 0.125000 +vt 0.160786 0.114281 +vt 0.165517 0.109842 +vt 0.200000 0.093750 +vt 0.200000 0.046875 +vt 0.172208 0.125000 +vt 0.165517 0.140158 +vt 0.158827 0.125000 +vt 0.160786 0.114281 +vt 0.165517 0.109842 +vt 0.200000 0.093750 +vt 0.200000 0.046875 +vt 0.172208 0.125000 +vt 0.165517 0.140158 +vt 0.158827 0.125000 +vt 0.160786 0.114281 +vt 0.165517 0.109842 +vt 0.200000 0.093750 +vt 0.200000 0.046875 +vt 0.172208 0.125000 +vt 0.165517 0.140158 +vt 0.158827 0.125000 +vt 0.160786 0.114281 +vt 0.165517 0.109842 +vt 0.200000 0.093750 +vt 0.200000 0.046875 +vt 0.172208 0.125000 +vt 0.165517 0.140158 +vt 0.158827 0.125000 +vt 0.160786 0.114281 +vt 0.165517 0.109842 +vt 0.200000 0.093750 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.096552 0.343750 +vt 0.124138 0.328125 +vt 0.565517 0.390625 +vt 0.551724 0.609375 +vt 0.565517 0.640625 +vt 0.662069 0.796875 +vt 0.662069 0.875000 +vt 0.551724 0.875000 +vt 0.634483 0.218750 +vt 0.724138 0.250000 +vt 0.551724 0.250000 +vt 0.724138 0.359375 +vt 0.703448 0.375000 +vt 0.606897 -0.000000 +vt 0.551724 0.125000 +vt 0.551724 -0.000000 +vt 0.634483 0.906250 +vt 0.606897 1.000000 +vt 0.413793 0.062500 +vt 0.441379 0.250000 +vt 0.413793 0.187500 +vt 0.682759 0.406250 +vt 0.703448 0.406250 +vt 0.724138 0.875000 +vt 0.717241 0.796875 +vt 0.724138 0.765625 +vt 0.682759 0.750000 +vt 0.717241 0.906250 +vt 0.717241 0.875000 +vt 0.737931 0.359375 +vt 0.737931 0.218750 +vt 0.737931 0.250000 +vt 0.737931 0.875000 +vt 0.737931 0.906250 +vt 0.724138 0.375000 +vt 0.724138 0.718750 +vt 0.703448 0.750000 +vt 0.703448 0.718750 +vt 0.682759 0.718750 +vt 0.662069 0.500000 +vt 0.675862 0.625000 +vt 0.662069 0.625000 +vt 0.696552 0.421875 +vt 0.675862 0.500000 +vt 0.696552 0.703125 +vt 0.020690 0.781250 +vt 0.013793 0.875000 +vt 0.013793 0.781250 +vt 0.213793 0.781250 +vt 0.227586 0.875000 +vt 0.213793 0.875000 +vt 0.510209 0.406422 +vt 0.506394 0.432721 +vt 0.482676 0.422118 +vt 0.455123 0.406613 +vt 0.458988 0.432863 +vt 0.438078 0.465736 +vt 0.414116 0.500678 +vt 0.425220 0.509148 +vt 0.420595 0.561221 +vt 0.413934 0.622365 +vt 0.425067 0.614088 +vt 0.437826 0.657998 +vt 0.454859 0.718112 +vt 0.458836 0.691761 +vt 0.482625 0.702699 +vt 0.455172 0.609375 +vt 0.441379 0.515625 +vt 0.455172 0.515625 +vt 0.696552 0.625000 +vt 0.703448 0.687500 +vt 0.696552 0.687500 +vt 0.696552 0.500000 +vt 0.703448 0.437500 +vt 0.703448 0.500000 +vt 0.703448 0.625000 +vt 0.731034 0.687500 +vt 0.413793 0.859375 +vt 0.420690 0.914062 +vt 0.413793 0.914062 +vt 0.475862 0.914062 +vt 0.482759 0.859375 +vt 0.482759 0.914062 +vt 0.431034 0.937500 +vt 0.475862 0.859375 +vt 0.465517 0.937500 +vt 0.431034 0.953125 +vt 0.479310 0.937500 +vt 0.465517 0.953125 +vt 0.417241 0.937500 +vt 0.417241 0.953125 +vt 0.441379 -0.000000 +vt 0.468966 0.250000 +vt 0.903448 0.875000 +vt 0.958621 0.718750 +vt 0.958621 0.875000 +vt 0.958621 0.625000 +vt 0.903448 0.718750 +vt 0.903448 0.625000 +vt 0.903448 0.968750 +vt 0.958621 0.968750 +vt 0.862069 0.718750 +vt 0.862069 0.875000 +vt 1.000000 0.875000 +vt 1.000000 0.718750 +vt 0.489655 0.156250 +vt 0.510345 0.046875 +vt 0.510345 0.156250 +vt 0.434483 0.812500 +vt 0.413793 0.765625 +vt 0.420690 0.750000 +vt 0.489655 0.046875 +vt 0.510345 0.000000 +vt 0.468966 0.046875 +vt 0.531034 0.156250 +vt 0.434483 0.750000 +vt 0.455172 0.812500 +vt 0.496552 0.765625 +vt 0.475862 0.750000 +vt 0.496552 0.750000 +vt 0.455172 0.750000 +vt 0.468966 0.750000 +vt 0.475862 0.765625 +vt 0.434483 0.859375 +vt 0.475862 0.812500 +vt 0.496552 0.812500 +vt 0.455172 0.718750 +vt 0.986207 0.609375 +vt 0.979310 0.593750 +vt 0.986207 0.593750 +vt 0.979310 0.531250 +vt 0.986207 0.515625 +vt 0.986207 0.531250 +vt 0.972414 0.593750 +vt 0.979310 0.578125 +vt 0.551724 0.625000 +vt 0.620690 0.609375 +vt 0.620690 0.734375 +vt 0.620690 0.640625 +vt 0.634483 0.640625 +vt 0.020690 0.875000 +vt 0.006897 0.781250 +vt 0.020690 0.781250 +vt 0.662069 0.734375 +vt 0.648276 0.640625 +vt 0.565517 0.640625 +vt 0.551724 0.625000 +vt 0.565517 0.625000 +vt 0.606897 0.390625 +vt 0.551724 0.375000 +vt 0.682759 0.375000 +vt 0.662069 0.375000 +vt 0.620690 0.484375 +vt 0.551724 0.500000 +vt 0.117241 0.906250 +vt 0.075862 0.875000 +vt 0.117241 0.875000 +vt 0.158621 0.125000 +vt 0.117241 0.156250 +vt 0.117241 0.125000 +vt 0.117241 0.906250 +vt 0.158621 0.875000 +vt 0.158621 0.906250 +vt 0.144828 0.250000 +vt 0.131034 0.250000 +vt 0.213793 0.875000 +vt 0.220690 0.781250 +vt 0.220690 0.875000 +vt 0.062069 0.781250 +vt 0.020690 0.875000 +vt 0.144828 0.281250 +vt 0.186207 0.250000 +vt 0.186207 0.281250 +vt 0.213793 0.765625 +vt 0.172414 0.781250 +vt 0.172414 0.750000 +vt 0.131034 0.281250 +vt 0.089655 0.250000 +vt 0.075862 0.906250 +vt 0.020690 0.906250 +vt 0.020690 0.890625 +vt 0.020690 0.765625 +vt 0.020690 0.750000 +vt 0.062069 0.750000 +vt 0.213793 0.890625 +vt 0.565517 0.515625 +vt 0.551724 0.500000 +vt 0.565517 0.500000 +vt 0.539805 0.495450 +vt 0.539959 0.508696 +vt 0.506403 0.692192 +vt 0.539824 0.629444 +vt 0.512254 0.691859 +vt 0.544674 0.484410 +vt 0.551565 0.500009 +vt 0.544695 0.609268 +vt 0.539977 0.616199 +vt 0.489655 0.156250 +vt 0.510345 0.046875 +vt 0.510345 0.156250 +vt 0.510345 0.562500 +vt 0.455172 0.562500 +vt 0.455172 0.546875 +vt 0.620690 0.515625 +vt 0.565517 0.515625 +vt 0.565517 0.750000 +vt 0.551724 0.734375 +vt 0.565517 0.734375 +vt 0.620690 0.515625 +vt 0.565517 0.609375 +vt 0.565517 0.515625 +vt 0.448276 0.515625 +vt 0.455172 0.609375 +vt 0.448276 0.609375 +vt 0.524138 0.609375 +vt 0.510345 0.515625 +vt 0.524138 0.515625 +vt 0.455172 0.578125 +vt 0.455172 0.562500 +vt 0.510345 0.562500 +vt 0.565517 0.625000 +vt 0.551724 0.609375 +vt 0.565517 0.609375 +vt 0.565517 0.500000 +vt 0.551724 0.484375 +vt 0.565517 0.484375 +vt 0.565517 0.390625 +vt 0.551724 0.375000 +vt 0.565517 0.375000 +vt 0.565517 0.484375 +vt 0.551724 0.484375 +vt 0.551724 0.515625 +vt 0.565517 0.609375 +vt 0.551724 0.609375 +vt 0.565517 0.640625 +vt 0.551724 0.640625 +vt 0.565517 0.390625 +vt 0.551724 0.390625 +vt 0.565517 0.734375 +vt 0.551724 0.750000 +vt 0.551724 0.734375 +vt 0.551583 0.624874 +vt 0.510212 0.718578 +vt 0.512238 0.433055 +vt 0.255172 -0.000000 +vt 0.227586 0.125000 +vt 0.227586 -0.000000 +vt 0.227586 0.500000 +vt 0.255172 0.625000 +vt 0.227586 0.625000 +vt 0.255172 0.750000 +vt 0.227586 0.875000 +vt 0.227586 0.750000 +vt 0.227586 0.250000 +vt 0.255172 0.375000 +vt 0.227586 0.375000 +vt 0.255172 0.500000 +vt 0.255172 0.250000 +vt 0.255172 0.125000 +vt 0.227586 1.000000 +vt 0.255172 0.875000 +vt 0.255172 1.000000 +vt 0.185647 0.407982 +vt 0.181809 0.433762 +vt 0.158206 0.423338 +vt 0.227246 0.501121 +vt 0.215680 0.509781 +vt 0.201106 0.462288 +vt 0.226770 0.624909 +vt 0.215543 0.616068 +vt 0.220300 0.563004 +vt 0.185661 0.717018 +vt 0.181941 0.690910 +vt 0.202736 0.659045 +vt 0.131028 0.716313 +vt 0.134829 0.690268 +vt 0.158386 0.701199 +vt 0.089995 0.623885 +vt 0.101155 0.615205 +vt 0.113984 0.658150 +vt 0.089997 0.501305 +vt 0.101178 0.509856 +vt 0.096611 0.562314 +vt 0.130816 0.408077 +vt 0.134644 0.434152 +vt 0.113890 0.466628 +vt 0.117241 0.000640 +vt 0.144545 0.062500 +vt 0.117241 0.124360 +vt 0.282000 0.461238 +vt 0.267164 0.508207 +vt 0.255663 0.499249 +vt 0.324503 0.423194 +vt 0.301337 0.432859 +vt 0.297766 0.407469 +vt 0.368692 0.466561 +vt 0.347882 0.434234 +vt 0.351705 0.408442 +vt 0.386036 0.561123 +vt 0.381418 0.509360 +vt 0.392481 0.500826 +vt 0.368830 0.657546 +vt 0.381587 0.613816 +vt 0.392687 0.622102 +vt 0.324106 0.701882 +vt 0.347834 0.691162 +vt 0.351758 0.717531 +vt 0.279544 0.658120 +vt 0.300333 0.691179 +vt 0.296432 0.717486 +vt 0.262317 0.561201 +vt 0.266830 0.614350 +vt 0.255589 0.622775 +vt 0.606897 0.125000 +vt 0.662069 0.218750 +vt 0.724138 0.218750 +vt 0.551724 1.000000 +vt 0.662069 0.906250 +vt 0.724138 0.906250 +vt 0.737931 0.765625 +vt 0.724138 0.406250 +vt 0.724138 0.750000 +vt 0.696552 0.453125 +vt 0.696552 0.671875 +vt 0.227586 0.781250 +vt 0.441379 0.609375 +vt 0.696552 0.437500 +vt 0.731034 0.437500 +vt 0.420690 0.859375 +vt 0.479310 0.953125 +vt 0.468966 -0.000000 +vt 0.413793 0.812500 +vt 0.489655 0.000000 +vt 0.468966 0.156250 +vt 0.531034 0.046875 +vt 0.455172 0.859375 +vt 0.434483 0.718750 +vt 0.979310 0.609375 +vt 0.979310 0.515625 +vt 0.972414 0.562500 +vt 0.606897 0.734375 +vt 0.006897 0.875000 +vt 0.551724 0.640625 +vt 0.158621 0.156250 +vt 0.117241 0.875000 +vt 0.213793 0.781250 +vt 0.213793 0.750000 +vt 0.089655 0.281250 +vt 0.213793 0.906250 +vt 0.551724 0.515625 +vt 0.551568 0.515616 +vt 0.544680 0.515623 +vt 0.489655 0.046875 +vt 0.455172 0.531250 +vt 0.510345 0.531250 +vt 0.551724 0.750000 +vt 0.620690 0.609375 +vt 0.455172 0.515625 +vt 0.510345 0.609375 +vt 0.510345 0.593750 +vt 0.455172 0.593750 +vt 0.551724 0.625000 +vt 0.551724 0.500000 +vt 0.551724 0.390625 +vt 0.551583 0.609269 +vt 0.544695 0.640480 +vt 0.517133 0.702938 +vt 0.517104 0.422013 +vt 0.106793 0.119651 +vt 0.097935 0.106242 +vt 0.092016 0.086173 +vt 0.089938 0.062500 +vt 0.092016 0.038827 +vt 0.097935 0.018758 +vt 0.106793 0.005349 +vt 0.127690 0.005349 +vt 0.136548 0.018758 +vt 0.142467 0.038827 +vt 0.142467 0.086173 +vt 0.136548 0.106242 +vt 0.127690 0.119651 +vt 0.124138 0.390625 +vt 0.144828 0.375000 +vt 0.144828 0.390625 +vt 0.124138 0.343750 +vt 0.144828 0.359375 +vt 0.124138 0.359375 +vt 0.124138 0.312500 +vt 0.144828 0.328125 +vt 0.124138 0.328125 +vt 0.124138 0.296875 +vt 0.144828 0.312500 +vt 0.124138 0.406250 +vt 0.144828 0.406250 +vt 0.124138 0.375000 +vt 0.144828 0.343750 +vt 0.124138 0.281250 +vt 0.144828 0.296875 +vt 0.158621 0.312500 +vt 0.158621 0.328125 +vt 0.158621 0.359375 +vt 0.158621 0.390625 +vt 0.144828 0.281250 +vt 0.158621 0.296875 +vt 0.158621 0.343750 +vt 0.158621 0.375000 +vt 0.158621 0.406250 +vt 0.172414 0.390625 +vt 0.172414 0.406250 +vt 0.172414 0.296875 +vt 0.172414 0.312500 +vt 0.172414 0.328125 +vt 0.172414 0.359375 +vt 0.158621 0.281250 +vt 0.172414 0.343750 +vt 0.172414 0.375000 +vt 0.186207 0.343750 +vt 0.186207 0.359375 +vt 0.186207 0.375000 +vt 0.186207 0.390625 +vt 0.186207 0.406250 +vt 0.186207 0.312500 +vt 0.186207 0.328125 +vt 0.172414 0.281250 +vt 0.186207 0.296875 +vt 0.193103 -0.000000 +vt 0.186207 -0.000000 +vt 0.151724 -0.000000 +vt 0.144828 -0.000000 +vt 0.158621 -0.000000 +vt 0.179310 -0.000000 +vt 0.172414 -0.000000 +vt 0.165517 -0.000000 +vt 0.193103 0.109375 +vt 0.200000 0.109375 +vt 0.151724 0.109375 +vt 0.158621 0.109375 +vt 0.179310 0.109375 +vt 0.186207 0.109375 +vt 0.165517 0.109375 +vt 0.172414 0.109375 +vt 0.310345 0.000000 +vt 0.296552 0.000000 +vt 0.282759 0.000000 +vt 0.268966 0.000000 +vt 0.365517 0.000000 +vt 0.351724 0.000000 +vt 0.337931 0.000000 +vt 0.324138 0.000000 +vt 0.255172 0.000000 +vt 0.310345 0.093750 +vt 0.317241 0.093750 +vt 0.296552 0.093750 +vt 0.303448 0.093750 +vt 0.282759 0.093750 +vt 0.289655 0.093750 +vt 0.268966 0.093750 +vt 0.275862 0.093750 +vt 0.324138 0.093750 +vt 0.331034 0.093750 +vt 0.337931 0.093750 +vt 0.344828 0.093750 +vt 0.351724 0.093750 +vt 0.358621 0.093750 +vt 0.255172 0.093750 +vt 0.262069 0.093750 +vt 0.296552 0.218750 +vt 0.310345 0.234375 +vt 0.296552 0.234375 +vt 0.296552 0.187500 +vt 0.310345 0.203125 +vt 0.296552 0.203125 +vt 0.310345 0.234375 +vt 0.296552 0.250000 +vt 0.296552 0.234375 +vt 0.310345 0.203125 +vt 0.296552 0.218750 +vt 0.296552 0.203125 +vt 0.296552 0.187500 +vt 0.310345 0.218750 +vt 0.324138 0.234375 +vt 0.310345 0.187500 +vt 0.324138 0.203125 +vt 0.324138 0.250000 +vt 0.310345 0.250000 +vt 0.310345 0.234375 +vt 0.296552 0.250000 +vt 0.296552 0.234375 +vt 0.310345 0.203125 +vt 0.296552 0.218750 +vt 0.296552 0.203125 +vt 0.310345 0.187500 +vt 0.296552 0.187500 +vt 0.310345 0.218750 +vt 0.324138 0.234375 +vt 0.324138 0.203125 +vt 0.310345 0.250000 +vt 0.310345 0.234375 +vt 0.296552 0.250000 +vt 0.296552 0.234375 +vt 0.310345 0.203125 +vt 0.296552 0.218750 +vt 0.296552 0.203125 +vt 0.310345 0.187500 +vt 0.296552 0.187500 +vt 0.310345 0.218750 +vt 0.324138 0.234375 +vt 0.324138 0.187500 +vt 0.324138 0.250000 +vt 0.310345 0.250000 +vt 0.324138 0.203125 +vt 0.255172 0.234375 +vt 0.255172 0.234375 +vt 0.255172 0.218750 +vt 0.255172 0.203125 +vt 0.255172 0.234375 +vt 0.255172 0.218750 +vt 0.255172 0.187500 +vt 0.255172 0.203125 +vt 0.255172 0.218750 +vt 0.255172 0.203125 +vt 0.255172 0.187500 +vt 0.255172 0.187500 +vt 0.310345 0.218750 +vt 0.296552 0.250000 +vt 0.310345 0.250000 +vt 0.324138 0.203125 +vt 0.324138 0.218750 +vt 0.324138 0.234375 +vt 0.324138 0.250000 +vt 0.324138 0.187500 +vt 0.296552 0.187500 +vt 0.310345 0.203125 +vt 0.296552 0.203125 +vt 0.296552 0.218750 +vt 0.310345 0.234375 +vt 0.296552 0.234375 +vt 0.310345 0.218750 +vt 0.310345 0.250000 +vt 0.296552 0.250000 +vt 0.324138 0.203125 +vt 0.324138 0.218750 +vt 0.324138 0.234375 +vt 0.324138 0.250000 +vt 0.310345 0.187500 +vt 0.296552 0.187500 +vt 0.310345 0.203125 +vt 0.296552 0.203125 +vt 0.296552 0.218750 +vt 0.310345 0.234375 +vt 0.296552 0.234375 +vt 0.310345 0.218750 +vt 0.310345 0.250000 +vt 0.296552 0.250000 +vt 0.324138 0.203125 +vt 0.324138 0.218750 +vt 0.324138 0.250000 +vt 0.324138 0.187500 +vt 0.324138 0.234375 +vt 0.255172 0.203125 +vt 0.255172 0.203125 +vt 0.255172 0.218750 +vt 0.255172 0.234375 +vt 0.255172 0.203125 +vt 0.255172 0.218750 +vt 0.255172 0.250000 +vt 0.255172 0.234375 +vt 0.255172 0.218750 +vt 0.255172 0.234375 +vt 0.255172 0.250000 +vt 0.255172 0.250000 +vt 0.124138 0.390625 +vt 0.144828 0.375000 +vt 0.144828 0.390625 +vt 0.124138 0.343750 +vt 0.144828 0.359375 +vt 0.124138 0.359375 +vt 0.124138 0.312500 +vt 0.144828 0.328125 +vt 0.124138 0.328125 +vt 0.124138 0.296875 +vt 0.144828 0.312500 +vt 0.124138 0.406250 +vt 0.144828 0.406250 +vt 0.124138 0.375000 +vt 0.144828 0.343750 +vt 0.124138 0.281250 +vt 0.144828 0.296875 +vt 0.158621 0.312500 +vt 0.158621 0.328125 +vt 0.158621 0.359375 +vt 0.158621 0.390625 +vt 0.144828 0.281250 +vt 0.158621 0.296875 +vt 0.158621 0.343750 +vt 0.158621 0.375000 +vt 0.158621 0.406250 +vt 0.172414 0.390625 +vt 0.172414 0.406250 +vt 0.172414 0.296875 +vt 0.172414 0.312500 +vt 0.172414 0.328125 +vt 0.172414 0.359375 +vt 0.158621 0.281250 +vt 0.172414 0.343750 +vt 0.172414 0.375000 +vt 0.186207 0.343750 +vt 0.186207 0.359375 +vt 0.186207 0.375000 +vt 0.186207 0.390625 +vt 0.186207 0.406250 +vt 0.186207 0.312500 +vt 0.186207 0.328125 +vt 0.172414 0.281250 +vt 0.186207 0.296875 +vt 0.193103 -0.000000 +vt 0.186207 -0.000000 +vt 0.151724 -0.000000 +vt 0.144828 -0.000000 +vt 0.158621 -0.000000 +vt 0.179310 -0.000000 +vt 0.172414 -0.000000 +vt 0.165517 -0.000000 +vt 0.193103 0.109375 +vt 0.200000 0.109375 +vt 0.151724 0.109375 +vt 0.158621 0.109375 +vt 0.179310 0.109375 +vt 0.186207 0.109375 +vt 0.165517 0.109375 +vt 0.172414 0.109375 +vt 0.124138 0.390625 +vt 0.144828 0.375000 +vt 0.144828 0.390625 +vt 0.124138 0.343750 +vt 0.144828 0.359375 +vt 0.124138 0.359375 +vt 0.124138 0.312500 +vt 0.144828 0.328125 +vt 0.124138 0.328125 +vt 0.124138 0.296875 +vt 0.144828 0.312500 +vt 0.124138 0.406250 +vt 0.144828 0.406250 +vt 0.124138 0.375000 +vt 0.144828 0.343750 +vt 0.124138 0.281250 +vt 0.144828 0.296875 +vt 0.158621 0.312500 +vt 0.158621 0.328125 +vt 0.158621 0.359375 +vt 0.158621 0.390625 +vt 0.144828 0.281250 +vt 0.158621 0.296875 +vt 0.158621 0.343750 +vt 0.158621 0.375000 +vt 0.158621 0.406250 +vt 0.172414 0.390625 +vt 0.172414 0.406250 +vt 0.172414 0.296875 +vt 0.172414 0.312500 +vt 0.172414 0.328125 +vt 0.172414 0.359375 +vt 0.158621 0.281250 +vt 0.172414 0.343750 +vt 0.172414 0.375000 +vt 0.186207 0.343750 +vt 0.186207 0.359375 +vt 0.186207 0.375000 +vt 0.186207 0.390625 +vt 0.186207 0.406250 +vt 0.186207 0.312500 +vt 0.186207 0.328125 +vt 0.172414 0.281250 +vt 0.186207 0.296875 +vt 0.193103 -0.000000 +vt 0.186207 -0.000000 +vt 0.151724 -0.000000 +vt 0.144828 -0.000000 +vt 0.158621 -0.000000 +vt 0.179310 -0.000000 +vt 0.172414 -0.000000 +vt 0.165517 -0.000000 +vt 0.193103 0.109375 +vt 0.200000 0.109375 +vt 0.151724 0.109375 +vt 0.158621 0.109375 +vt 0.179310 0.109375 +vt 0.186207 0.109375 +vt 0.165517 0.109375 +vt 0.172414 0.109375 +vt 0.124138 0.390625 +vt 0.144828 0.375000 +vt 0.144828 0.390625 +vt 0.124138 0.343750 +vt 0.144828 0.359375 +vt 0.124138 0.359375 +vt 0.124138 0.312500 +vt 0.144828 0.328125 +vt 0.124138 0.328125 +vt 0.124138 0.296875 +vt 0.144828 0.312500 +vt 0.124138 0.406250 +vt 0.144828 0.406250 +vt 0.124138 0.375000 +vt 0.144828 0.343750 +vt 0.124138 0.281250 +vt 0.144828 0.296875 +vt 0.158621 0.312500 +vt 0.158621 0.328125 +vt 0.158621 0.359375 +vt 0.158621 0.390625 +vt 0.144828 0.281250 +vt 0.158621 0.296875 +vt 0.158621 0.343750 +vt 0.158621 0.375000 +vt 0.158621 0.406250 +vt 0.172414 0.390625 +vt 0.172414 0.406250 +vt 0.172414 0.296875 +vt 0.172414 0.312500 +vt 0.172414 0.328125 +vt 0.172414 0.359375 +vt 0.158621 0.281250 +vt 0.172414 0.343750 +vt 0.172414 0.375000 +vt 0.186207 0.343750 +vt 0.186207 0.359375 +vt 0.186207 0.375000 +vt 0.186207 0.390625 +vt 0.186207 0.406250 +vt 0.186207 0.312500 +vt 0.186207 0.328125 +vt 0.172414 0.281250 +vt 0.186207 0.296875 +vt 0.193103 -0.000000 +vt 0.186207 -0.000000 +vt 0.151724 -0.000000 +vt 0.144828 -0.000000 +vt 0.158621 -0.000000 +vt 0.172414 -0.000000 +vt 0.165517 -0.000000 +vt 0.179310 -0.000000 +vt 0.193103 0.109375 +vt 0.200000 0.109375 +vt 0.151724 0.109375 +vt 0.158621 0.109375 +vt 0.179310 0.109375 +vt 0.186207 0.109375 +vt 0.165517 0.109375 +vt 0.172414 0.109375 +vt 0.124138 0.390625 +vt 0.144828 0.375000 +vt 0.144828 0.390625 +vt 0.124138 0.343750 +vt 0.144828 0.359375 +vt 0.124138 0.359375 +vt 0.124138 0.312500 +vt 0.144828 0.328125 +vt 0.124138 0.328125 +vt 0.124138 0.296875 +vt 0.144828 0.312500 +vt 0.124138 0.406250 +vt 0.144828 0.406250 +vt 0.124138 0.375000 +vt 0.144828 0.343750 +vt 0.124138 0.281250 +vt 0.144828 0.296875 +vt 0.158621 0.312500 +vt 0.158621 0.328125 +vt 0.158621 0.359375 +vt 0.158621 0.390625 +vt 0.144828 0.281250 +vt 0.158621 0.296875 +vt 0.158621 0.343750 +vt 0.158621 0.375000 +vt 0.158621 0.406250 +vt 0.172414 0.390625 +vt 0.172414 0.406250 +vt 0.172414 0.296875 +vt 0.172414 0.312500 +vt 0.172414 0.328125 +vt 0.172414 0.359375 +vt 0.158621 0.281250 +vt 0.172414 0.343750 +vt 0.172414 0.375000 +vt 0.186207 0.343750 +vt 0.186207 0.359375 +vt 0.186207 0.375000 +vt 0.186207 0.390625 +vt 0.186207 0.406250 +vt 0.186207 0.312500 +vt 0.186207 0.328125 +vt 0.172414 0.281250 +vt 0.186207 0.296875 +vt 0.193103 -0.000000 +vt 0.186207 -0.000000 +vt 0.151724 -0.000000 +vt 0.144828 -0.000000 +vt 0.158621 -0.000000 +vt 0.179310 -0.000000 +vt 0.172414 -0.000000 +vt 0.165517 -0.000000 +vt 0.193103 0.109375 +vt 0.200000 0.109375 +vt 0.151724 0.109375 +vt 0.158621 0.109375 +vt 0.179310 0.109375 +vt 0.186207 0.109375 +vt 0.165517 0.109375 +vt 0.172414 0.109375 +vt 0.124138 0.390625 +vt 0.144828 0.375000 +vt 0.144828 0.390625 +vt 0.124138 0.343750 +vt 0.144828 0.359375 +vt 0.124138 0.359375 +vt 0.124138 0.312500 +vt 0.144828 0.328125 +vt 0.124138 0.328125 +vt 0.124138 0.296875 +vt 0.144828 0.312500 +vt 0.124138 0.406250 +vt 0.144828 0.406250 +vt 0.124138 0.375000 +vt 0.144828 0.343750 +vt 0.124138 0.281250 +vt 0.144828 0.296875 +vt 0.158621 0.312500 +vt 0.158621 0.328125 +vt 0.158621 0.359375 +vt 0.158621 0.390625 +vt 0.144828 0.281250 +vt 0.158621 0.296875 +vt 0.158621 0.343750 +vt 0.158621 0.375000 +vt 0.158621 0.406250 +vt 0.172414 0.406250 +vt 0.172414 0.296875 +vt 0.172414 0.312500 +vt 0.172414 0.328125 +vt 0.172414 0.359375 +vt 0.172414 0.390625 +vt 0.158621 0.281250 +vt 0.172414 0.343750 +vt 0.172414 0.375000 +vt 0.186207 0.343750 +vt 0.186207 0.359375 +vt 0.186207 0.375000 +vt 0.186207 0.390625 +vt 0.186207 0.406250 +vt 0.186207 0.312500 +vt 0.186207 0.328125 +vt 0.172414 0.281250 +vt 0.186207 0.296875 +vt 0.193103 -0.000000 +vt 0.186207 -0.000000 +vt 0.151724 -0.000000 +vt 0.144828 -0.000000 +vt 0.158621 -0.000000 +vt 0.179310 -0.000000 +vt 0.172414 -0.000000 +vt 0.165517 -0.000000 +vt 0.193103 0.109375 +vt 0.200000 0.109375 +vt 0.151724 0.109375 +vt 0.158621 0.109375 +vt 0.179310 0.109375 +vt 0.186207 0.109375 +vt 0.165517 0.109375 +vt 0.172414 0.109375 +vt 0.124138 0.390625 +vt 0.144828 0.375000 +vt 0.144828 0.390625 +vt 0.124138 0.343750 +vt 0.144828 0.359375 +vt 0.124138 0.359375 +vt 0.124138 0.312500 +vt 0.144828 0.328125 +vt 0.124138 0.328125 +vt 0.124138 0.296875 +vt 0.144828 0.312500 +vt 0.124138 0.406250 +vt 0.144828 0.406250 +vt 0.124138 0.375000 +vt 0.144828 0.343750 +vt 0.124138 0.281250 +vt 0.144828 0.296875 +vt 0.158621 0.312500 +vt 0.158621 0.328125 +vt 0.158621 0.359375 +vt 0.158621 0.390625 +vt 0.144828 0.281250 +vt 0.158621 0.296875 +vt 0.158621 0.343750 +vt 0.158621 0.375000 +vt 0.158621 0.406250 +vt 0.172414 0.390625 +vt 0.172414 0.406250 +vt 0.172414 0.296875 +vt 0.172414 0.312500 +vt 0.172414 0.328125 +vt 0.172414 0.359375 +vt 0.158621 0.281250 +vt 0.172414 0.343750 +vt 0.172414 0.375000 +vt 0.186207 0.343750 +vt 0.186207 0.359375 +vt 0.186207 0.375000 +vt 0.186207 0.390625 +vt 0.186207 0.406250 +vt 0.186207 0.312500 +vt 0.186207 0.328125 +vt 0.172414 0.281250 +vt 0.186207 0.296875 +vt 0.193103 -0.000000 +vt 0.186207 -0.000000 +vt 0.151724 -0.000000 +vt 0.144828 -0.000000 +vt 0.158621 -0.000000 +vt 0.179310 -0.000000 +vt 0.172414 -0.000000 +vt 0.165517 -0.000000 +vt 0.193103 0.109375 +vt 0.200000 0.109375 +vt 0.151724 0.109375 +vt 0.158621 0.109375 +vt 0.179310 0.109375 +vt 0.186207 0.109375 +vt 0.165517 0.109375 +vt 0.172414 0.109375 +vt 0.124138 0.390625 +vt 0.144828 0.375000 +vt 0.144828 0.390625 +vt 0.124138 0.343750 +vt 0.144828 0.359375 +vt 0.124138 0.359375 +vt 0.124138 0.312500 +vt 0.144828 0.328125 +vt 0.124138 0.328125 +vt 0.124138 0.296875 +vt 0.144828 0.312500 +vt 0.124138 0.406250 +vt 0.144828 0.406250 +vt 0.124138 0.375000 +vt 0.144828 0.343750 +vt 0.124138 0.281250 +vt 0.144828 0.296875 +vt 0.158621 0.312500 +vt 0.158621 0.328125 +vt 0.158621 0.359375 +vt 0.158621 0.390625 +vt 0.144828 0.281250 +vt 0.158621 0.296875 +vt 0.158621 0.343750 +vt 0.158621 0.375000 +vt 0.158621 0.406250 +vt 0.172414 0.390625 +vt 0.172414 0.406250 +vt 0.172414 0.296875 +vt 0.172414 0.312500 +vt 0.172414 0.328125 +vt 0.172414 0.359375 +vt 0.158621 0.281250 +vt 0.172414 0.343750 +vt 0.172414 0.375000 +vt 0.186207 0.343750 +vt 0.186207 0.359375 +vt 0.186207 0.375000 +vt 0.186207 0.390625 +vt 0.186207 0.406250 +vt 0.186207 0.312500 +vt 0.186207 0.328125 +vt 0.172414 0.281250 +vt 0.186207 0.296875 +vt 0.193103 -0.000000 +vt 0.186207 -0.000000 +vt 0.151724 -0.000000 +vt 0.144828 -0.000000 +vt 0.158621 -0.000000 +vt 0.172414 -0.000000 +vt 0.165517 -0.000000 +vt 0.179310 -0.000000 +vt 0.193103 0.109375 +vt 0.200000 0.109375 +vt 0.151724 0.109375 +vt 0.158621 0.109375 +vt 0.179310 0.109375 +vt 0.186207 0.109375 +vt 0.165517 0.109375 +vt 0.172414 0.109375 +vt 0.255172 0.218750 +vt 0.296552 0.234375 +vt 0.255172 0.234375 +vt 0.255172 0.187500 +vt 0.296552 0.203125 +vt 0.255172 0.203125 +vt 0.296552 0.250000 +vt 0.255172 0.250000 +vt 0.296552 0.218750 +vt 0.310345 0.187500 +vt 0.310345 0.203125 +vt 0.310345 0.250000 +vt 0.310345 0.218750 +vt 0.310345 0.234375 +vt 0.324138 0.234375 +vt 0.324138 0.187500 +vt 0.324138 0.203125 +vt 0.324138 0.250000 +vt 0.324138 0.218750 +vt 0.255172 0.218750 +vt 0.296552 0.234375 +vt 0.255172 0.234375 +vt 0.255172 0.187500 +vt 0.296552 0.203125 +vt 0.255172 0.203125 +vt 0.296552 0.250000 +vt 0.255172 0.250000 +vt 0.296552 0.218750 +vt 0.310345 0.187500 +vt 0.310345 0.203125 +vt 0.310345 0.250000 +vt 0.310345 0.218750 +vt 0.310345 0.234375 +vt 0.324138 0.234375 +vt 0.324138 0.187500 +vt 0.324138 0.203125 +vt 0.324138 0.250000 +vt 0.324138 0.218750 +vt 0.255172 0.218750 +vt 0.296552 0.234375 +vt 0.255172 0.234375 +vt 0.255172 0.187500 +vt 0.296552 0.203125 +vt 0.255172 0.203125 +vt 0.296552 0.250000 +vt 0.255172 0.250000 +vt 0.296552 0.218750 +vt 0.310345 0.187500 +vt 0.310345 0.203125 +vt 0.310345 0.250000 +vt 0.310345 0.218750 +vt 0.310345 0.234375 +vt 0.324138 0.234375 +vt 0.324138 0.187500 +vt 0.324138 0.203125 +vt 0.324138 0.250000 +vt 0.324138 0.218750 +vt 0.186207 0.281250 +vt 0.200000 -0.000000 +vt 0.144828 0.109375 +vt 0.310345 0.187500 +vt 0.324138 0.218750 +vt 0.324138 0.187500 +vt 0.324138 0.218750 +vt 0.324138 0.187500 +vt 0.324138 0.250000 +vt 0.324138 0.218750 +vt 0.255172 0.250000 +vt 0.255172 0.250000 +vt 0.255172 0.250000 +vt 0.324138 0.187500 +vt 0.310345 0.187500 +vt 0.255172 0.187500 +vt 0.255172 0.187500 +vt 0.255172 0.187500 +vt 0.186207 0.281250 +vt 0.200000 -0.000000 +vt 0.144828 0.109375 +vt 0.186207 0.281250 +vt 0.200000 -0.000000 +vt 0.144828 0.109375 +vt 0.186207 0.281250 +vt 0.200000 -0.000000 +vt 0.144828 0.109375 +vt 0.186207 0.281250 +vt 0.200000 -0.000000 +vt 0.144828 0.109375 +vt 0.186207 0.281250 +vt 0.200000 -0.000000 +vt 0.144828 0.109375 +vt 0.186207 0.281250 +vt 0.200000 -0.000000 +vt 0.144828 0.109375 +vt 0.186207 0.281250 +vt 0.200000 -0.000000 +vt 0.144828 0.109375 +vt 0.296552 0.187500 +vt 0.296552 0.187500 +vt 0.296552 0.187500 +vt 0.958621 0.609375 +vt 0.965517 0.593750 +vt 0.965517 0.609375 +vt 0.958621 0.562500 +vt 0.965517 0.546875 +vt 0.965517 0.562500 +vt 0.986207 0.578125 +vt 0.965517 0.625000 +vt 0.958621 0.625000 +vt 0.958621 0.578125 +vt 0.965517 0.578125 +vt 0.986207 0.562500 +vt 0.958621 0.531250 +vt 0.965517 0.515625 +vt 0.965517 0.531250 +vt 0.958621 0.640625 +vt 0.965517 0.640625 +vt 0.958621 0.593750 +vt 0.979310 0.562500 +vt 0.986207 0.546875 +vt 0.958621 0.546875 +vt 0.979310 0.546875 +vt 0.965517 0.593750 +vt 0.972414 0.609375 +vt 0.965517 0.609375 +vt 0.965517 0.656250 +vt 0.972414 0.640625 +vt 0.972414 0.656250 +vt 0.965517 0.546875 +vt 0.972414 0.531250 +vt 0.972414 0.546875 +vt 0.965517 0.703125 +vt 0.972414 0.687500 +vt 0.972414 0.703125 +vt 0.972414 0.578125 +vt 0.972414 0.593750 +vt 0.965517 0.625000 +vt 0.965517 0.640625 +vt 0.965517 0.515625 +vt 0.965517 0.531250 +vt 0.965517 0.671875 +vt 0.965517 0.687500 +vt 0.965517 0.562500 +vt 0.965517 0.578125 +vt 0.972414 0.625000 +vt 0.972414 0.671875 +vt 0.972414 0.562500 +vt 0.089655 0.375000 +vt 0.075862 0.421875 +vt 0.075862 0.375000 +vt 0.075862 0.328125 +vt 0.089655 0.328125 +vt 0.075862 0.281250 +vt 0.089655 0.281250 +vt 0.075862 0.234375 +vt 0.089655 0.234375 +vt 0.075862 0.187500 +vt 0.089655 0.187500 +vt 0.089655 0.140625 +vt 0.075862 0.140625 +vt 0.089655 0.093750 +vt 0.075862 0.093750 +vt 0.089655 0.046875 +vt 0.075862 0.046875 +vt 0.089655 -0.000000 +vt 0.075862 0.000000 +vt 0.089655 0.750000 +vt 0.075862 0.703125 +vt 0.089655 0.703125 +vt 0.075862 0.656250 +vt 0.089655 0.656250 +vt 0.089655 0.609375 +vt 0.075862 0.609375 +vt 0.075862 0.562500 +vt 0.089655 0.562500 +vt 0.075862 0.515625 +vt 0.089655 0.515625 +vt 0.075862 0.468750 +vt 0.089655 0.468750 +vt 0.089655 0.421875 +vt 0.055172 0.375000 +vt 0.055172 0.328125 +vt 0.055172 -0.000000 +vt 0.055172 0.421875 +vt 0.055172 0.046875 +vt 0.055172 0.468750 +vt 0.055172 0.093750 +vt 0.055172 0.515625 +vt 0.055172 0.140625 +vt 0.055172 0.562500 +vt 0.055172 0.187500 +vt 0.055172 0.609375 +vt 0.055172 0.234375 +vt 0.055172 0.656250 +vt 0.055172 0.281250 +vt 0.075862 0.750000 +vt 0.055172 0.703125 +vt 0.000000 0.125000 +vt 0.000000 0.093750 +vt -0.000000 0.546875 +vt 0.000000 0.515625 +vt -0.000000 0.140625 +vt -0.000000 0.593750 +vt -0.000000 0.562500 +vt 0.000000 0.218750 +vt 0.000000 0.187500 +vt 0.000000 0.609375 +vt -0.000000 0.234375 +vt 0.000000 0.687500 +vt 0.000000 0.656250 +vt -0.000000 0.281250 +vt 0.055172 0.750000 +vt 0.000000 0.703125 +vt -0.000000 0.406250 +vt -0.000000 0.375000 +vt 0.000000 0.328125 +vt 0.000000 0.031250 +vt -0.000000 0.000000 +vt 0.000000 0.421875 +vt -0.000000 0.046875 +vt -0.000000 0.500000 +vt 0.000000 0.468750 +vt 0.393103 0.937500 +vt 0.413793 1.000000 +vt 0.393103 1.000000 +vt 0.393103 0.500000 +vt 0.413793 0.562500 +vt 0.393103 0.562500 +vt 0.393103 0.437500 +vt 0.413793 0.500000 +vt 0.393103 -0.000000 +vt 0.413793 0.062500 +vt 0.393103 0.062500 +vt 0.413793 0.625000 +vt 0.393103 0.625000 +vt 0.413793 0.125000 +vt 0.393103 0.125000 +vt 0.413793 0.687500 +vt 0.393103 0.687500 +vt 0.413793 0.187500 +vt 0.393103 0.187500 +vt 0.413793 0.750000 +vt 0.393103 0.750000 +vt 0.413793 0.250000 +vt 0.393103 0.250000 +vt 0.413793 0.812500 +vt 0.393103 0.812500 +vt 0.413793 0.312500 +vt 0.393103 0.312500 +vt 0.413793 0.875000 +vt 0.393103 0.875000 +vt 0.413793 0.375000 +vt 0.393103 0.375000 +vt 0.413793 0.937500 +vt 0.413793 0.437500 +vt 0.958621 0.515625 +vt 0.972414 0.515625 +vt -0.000000 0.171875 +vt 0.000000 0.640625 +vt -0.000000 0.265625 +vt -0.000000 0.312500 +vt -0.000000 0.734375 +vt 0.000000 0.359375 +vt -0.000000 0.453125 +vt -0.000000 0.078125 +vt 0.413793 -0.000000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.1617 0.3904 0.9063 +vn 0.1617 0.3905 0.9063 +vn 0.1752 0.8806 0.4403 +vn 0.0859 0.4318 -0.8979 +vn 0.9845 -0.1567 -0.0783 +vn -0.0859 -0.4318 0.8978 +vn -0.9695 0.2320 -0.0783 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -0.3827 -0.9239 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 0.9239 -0.3827 +vn 0.0000 -0.9239 -0.3827 +vn 0.0000 -0.3827 0.9239 +vn 0.0000 0.9239 0.3827 +vn 0.0000 0.3827 -0.9239 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn -0.3162 0.3162 -0.8944 +vn 0.0000 0.7934 0.6088 +vn 0.0000 0.1305 -0.9914 +vn 0.0000 0.5000 0.8660 +vn 0.0000 0.5000 -0.8660 +vn 0.0000 -0.5000 -0.8660 +vn 0.0000 -0.5000 0.8660 +vn 0.6547 0.3780 -0.6547 +vn 0.6547 -0.3780 -0.6547 +vn 0.6547 -0.3780 0.6547 +vn 0.6547 0.7559 0.0000 +vn 0.6547 -0.7559 0.0000 +vn 0.6547 0.3780 0.6547 +vn 0.0000 0.7071 0.7071 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 -0.9285 0.3714 +vn 0.0000 0.9285 -0.3714 +vn 0.0000 -0.9900 -0.1407 +vn 0.0000 0.9900 0.1407 +vn -0.1617 -0.3904 0.9063 +vn -0.1617 -0.3905 0.9063 +vn 0.3904 -0.1617 0.9063 +vn 0.3905 -0.1617 0.9063 +vn -0.3904 0.1617 0.9063 +vn -0.3905 0.1617 0.9063 +vn 0.3905 0.1617 0.9063 +vn 0.3904 0.1617 0.9063 +vn 0.3905 0.1618 0.9063 +vn -0.3904 -0.1617 0.9063 +vn -0.3905 -0.1617 0.9063 +vn 0.1617 -0.3905 0.9063 +vn 0.1617 -0.3904 0.9063 +vn 0.1618 -0.3905 0.9063 +vn -0.1617 0.3904 0.9063 +vn -0.1617 0.3905 0.9063 +vn -0.1752 -0.8806 0.4403 +vn -0.0859 -0.4318 -0.8979 +vn -0.9845 0.1567 -0.0783 +vn 0.0859 0.4318 0.8978 +vn 0.9695 -0.2320 -0.0783 +vn 0.8806 -0.1752 0.4403 +vn 0.4318 -0.0859 -0.8979 +vn -0.1567 -0.9845 -0.0783 +vn -0.4318 0.0859 0.8978 +vn 0.2320 0.9695 -0.0783 +vn -0.8806 0.1752 0.4403 +vn -0.4318 0.0859 -0.8979 +vn 0.1567 0.9845 -0.0783 +vn 0.4318 -0.0859 0.8978 +vn -0.2320 -0.9695 -0.0783 +vn 0.7465 0.4988 0.4403 +vn 0.3661 0.2446 -0.8979 +vn 0.5854 -0.8070 -0.0783 +vn -0.3661 -0.2446 0.8978 +vn -0.5215 0.8496 -0.0783 +vn -0.7465 -0.4988 0.4403 +vn -0.3661 -0.2446 -0.8979 +vn -0.5854 0.8070 -0.0783 +vn 0.3661 0.2446 0.8978 +vn 0.5215 -0.8496 -0.0783 +vn 0.4988 -0.7465 0.4403 +vn 0.2446 -0.3661 -0.8978 +vn -0.8070 -0.5854 -0.0783 +vn -0.2446 0.3661 0.8978 +vn 0.8497 0.5215 -0.0783 +vn -0.4988 0.7465 0.4403 +vn -0.2446 0.3661 -0.8979 +vn 0.8070 0.5854 -0.0783 +vn 0.2446 -0.3661 0.8978 +vn -0.8496 -0.5215 -0.0783 +vn 0.4988 0.7465 0.4403 +vn 0.2446 0.3661 -0.8979 +vn 0.8496 -0.5215 -0.0783 +vn -0.2446 -0.3661 0.8978 +vn -0.8069 0.5854 -0.0783 +vn -0.4988 -0.7465 0.4403 +vn -0.2446 -0.3661 -0.8979 +vn -0.8496 0.5215 -0.0783 +vn 0.2446 0.3661 0.8978 +vn 0.8069 -0.5854 -0.0783 +vn 0.7465 -0.4988 0.4403 +vn 0.3661 -0.2446 -0.8978 +vn -0.5215 -0.8496 -0.0783 +vn -0.3661 0.2446 0.8978 +vn 0.5854 0.8069 -0.0783 +vn -0.7465 0.4988 0.4403 +vn -0.3661 0.2446 -0.8978 +vn 0.5215 0.8496 -0.0783 +vn 0.3661 -0.2446 0.8978 +vn -0.5854 -0.8069 -0.0783 +vn 0.8806 0.1752 0.4403 +vn 0.4318 0.0859 -0.8979 +vn 0.2320 -0.9696 -0.0783 +vn -0.4318 -0.0859 0.8978 +vn -0.1567 0.9845 -0.0783 +vn -0.8806 -0.1752 0.4403 +vn -0.4318 -0.0859 -0.8979 +vn -0.2320 0.9696 -0.0783 +vn 0.4318 0.0859 0.8978 +vn 0.1567 -0.9845 -0.0783 +vn 0.1752 -0.8806 0.4403 +vn 0.0859 -0.4318 -0.8979 +vn -0.9696 -0.2320 -0.0783 +vn -0.0859 0.4318 0.8978 +vn 0.9845 0.1567 -0.0783 +vn -0.1752 0.8806 0.4403 +vn -0.0859 0.4318 -0.8979 +vn 0.9696 0.2320 -0.0783 +vn 0.0859 -0.4318 0.8978 +vn -0.9845 -0.1567 -0.0783 +vn 0.0859 0.4318 -0.8978 +vn -0.0859 -0.4318 -0.8978 +vn 0.4318 -0.0859 -0.8978 +vn -0.4318 0.0859 -0.8978 +vn 0.3661 0.2446 -0.8978 +vn -0.3661 -0.2446 -0.8978 +vn -0.2446 0.3661 -0.8978 +vn 0.2446 0.3661 -0.8978 +vn -0.8070 0.5854 -0.0783 +vn 0.8070 -0.5854 -0.0783 +vn 0.5854 0.8070 -0.0783 +vn -0.5854 -0.8070 -0.0783 +vn 0.4318 0.0859 0.8979 +vn 0.0859 -0.4318 -0.8978 +vn -0.7071 -0.7071 0.0057 +vn 0.0000 0.9487 -0.3162 +vn 0.0000 0.4472 -0.8944 +vn 0.0000 0.4226 -0.9063 +vn 0.0000 0.9063 0.4226 +vn -0.7071 0.6409 0.2988 +vn 0.7071 0.6409 0.2988 +vn -0.5000 -0.7849 -0.3660 +vn -0.0000 -0.4226 0.9063 +vn -0.2357 0.2357 0.9428 +vn 0.2357 0.2357 0.9428 +vn -0.2357 -0.2357 -0.9428 +vn -0.2357 -0.2357 0.9428 +vn -0.7082 -0.7060 -0.0004 +vn -0.7085 -0.7057 0.0000 +vn 0.7311 -0.6303 -0.2611 +vn 0.9973 0.0609 0.0399 +vn 0.7430 -0.5190 -0.4226 +vn 0.6721 0.5735 0.4683 +vn 0.6333 0.7150 0.2962 +vn -0.9947 0.0948 0.0393 +vn -0.6721 0.5735 0.4683 +vn -0.6333 0.7150 0.2962 +vn -0.7311 -0.6303 -0.2611 +vn -0.9973 0.0609 0.0399 +vn 0.0000 -0.7779 -0.6284 +vn 0.9947 0.0948 0.0393 +vn 0.0000 0.7690 0.6392 +vn -0.7430 -0.5190 -0.4226 +vn -0.9989 0.0183 0.0441 +vn -0.6840 0.2791 0.6739 +vn 0.6840 0.2791 0.6739 +vn 0.7317 -0.2608 -0.6297 +vn -0.7317 -0.2608 -0.6297 +vn 0.0000 0.3827 0.9239 +vn 0.9989 0.0183 0.0441 +vn 0.7317 0.0000 -0.6816 +vn -0.7317 0.0000 -0.6816 +vn -0.9989 0.0000 0.0477 +vn -0.6841 0.0000 0.7294 +vn 0.6840 -0.0000 0.7294 +vn 0.9989 0.0000 0.0477 +vn 0.0000 -0.1951 0.9808 +vn 0.6770 -0.1436 0.7219 +vn 0.9988 -0.0095 0.0477 +vn 0.7251 0.1344 -0.6754 +vn 0.0000 0.1951 -0.9808 +vn -0.9988 -0.0095 0.0477 +vn -0.6770 -0.1436 0.7219 +vn -0.7251 0.1344 -0.6754 +vn 0.8985 0.3215 -0.2988 +vn 0.9239 -0.3827 -0.0000 +vn -0.4080 0.8627 -0.2988 +vn 0.3468 0.8373 -0.4226 +vn -0.9239 0.3827 0.0000 +vn -0.8985 -0.3215 0.2988 +vn 0.4080 -0.8627 0.2988 +vn -0.3468 -0.8373 0.4226 +vn -0.4080 0.8627 -0.2989 +vn 0.3827 0.9239 0.0000 +vn 0.9239 0.3827 0.0000 +vn 0.3827 -0.9239 0.0000 +vn -0.3827 -0.9239 0.0000 +vn -0.9239 -0.3827 0.0000 +vn -0.3827 0.9239 0.0000 +vn 0.6947 0.6947 0.1866 +vn 0.8431 -0.0945 0.5294 +vn 0.9891 0.0283 0.1448 +vn -0.3812 0.9204 0.0866 +vn -0.0945 0.8431 0.5294 +vn 0.0283 0.9891 0.1448 +vn 0.0945 0.8431 0.5294 +vn 0.3812 0.9204 0.0866 +vn -0.0283 0.9891 0.1448 +vn -0.8431 -0.0945 0.5294 +vn -0.6947 0.6947 0.1866 +vn -0.9891 0.0283 0.1448 +vn -0.9204 -0.3812 0.0866 +vn -0.5000 0.5000 0.7071 +vn 0.2384 0.6572 0.7150 +vn -0.8446 -0.4619 0.2706 +vn -0.6572 -0.2384 0.7150 +vn 0.5345 0.7559 0.3780 +vn 0.4619 0.8446 0.2706 +vn 0.0945 0.8431 0.5293 +vn -0.8431 -0.0945 0.5293 +vn -0.9204 -0.3813 0.0866 +vn -0.7559 -0.5345 0.3780 +vn 0.5000 0.5000 0.7071 +vn 0.9204 -0.3812 0.0866 +vn 0.8446 -0.4619 0.2706 +vn -0.2384 0.6572 0.7150 +vn 0.2706 0.2706 0.9239 +vn 0.6572 -0.2384 0.7150 +vn 0.7559 -0.5345 0.3780 +vn -0.5345 0.7559 0.3780 +vn -0.0945 0.8431 0.5293 +vn 0.8431 -0.0945 0.5293 +vn 0.9204 -0.3813 0.0866 +vn -0.4619 0.8446 0.2706 +vn -0.7311 0.6303 -0.2611 +vn -0.9973 -0.0609 0.0399 +vn -0.7430 0.5190 -0.4226 +vn -0.6721 -0.5735 0.4683 +vn -0.6333 -0.7150 0.2962 +vn 0.9947 -0.0948 0.0393 +vn 0.6721 -0.5735 0.4683 +vn 0.6333 -0.7150 0.2962 +vn 0.7311 0.6303 -0.2611 +vn 0.9973 -0.0609 0.0399 +vn -0.0000 0.7779 -0.6284 +vn -0.9947 -0.0948 0.0393 +vn -0.0000 -0.7690 0.6392 +vn 0.7430 0.5190 -0.4226 +vn 0.9989 -0.0183 0.0441 +vn 0.6840 -0.2791 0.6739 +vn -0.6840 -0.2791 0.6739 +vn -0.7317 0.2608 -0.6297 +vn 0.7317 0.2608 -0.6297 +vn -0.9989 -0.0183 0.0441 +vn 0.6841 -0.0000 0.7294 +vn -0.6840 -0.0000 0.7294 +vn -0.0000 0.1951 0.9808 +vn -0.6770 0.1436 0.7219 +vn -0.9988 0.0095 0.0477 +vn -0.7251 -0.1344 -0.6754 +vn -0.0000 -0.1951 -0.9808 +vn 0.9988 0.0095 0.0477 +vn 0.6770 0.1436 0.7219 +vn 0.7251 -0.1344 -0.6754 +vn -0.8985 -0.3215 -0.2988 +vn 0.4080 -0.8627 -0.2988 +vn -0.3468 -0.8373 -0.4226 +vn 0.8985 0.3215 0.2988 +vn -0.4080 0.8627 0.2988 +vn 0.3468 0.8373 0.4226 +vn 0.4080 -0.8627 -0.2989 +vn -0.6303 -0.7311 -0.2611 +vn 0.0609 -0.9973 0.0399 +vn -0.5190 -0.7430 -0.4226 +vn 0.9239 -0.0000 0.3827 +vn 0.5735 -0.6721 0.4683 +vn 0.7150 -0.6333 0.2962 +vn 0.0948 0.9947 0.0393 +vn 0.5735 0.6721 0.4683 +vn 0.7150 0.6333 0.2962 +vn -0.6303 0.7311 -0.2611 +vn 0.0609 0.9973 0.0399 +vn -0.9239 -0.0000 -0.3827 +vn -0.7779 -0.0000 -0.6284 +vn 0.0948 -0.9947 0.0393 +vn 0.7690 -0.0000 0.6392 +vn -0.5190 0.7430 -0.4226 +vn 0.0183 0.9989 0.0441 +vn 0.2791 0.6841 0.6739 +vn 0.2791 -0.6840 0.6739 +vn -0.2608 -0.7317 -0.6297 +vn -0.2608 0.7317 -0.6297 +vn 0.3827 -0.0000 0.9239 +vn 0.0183 -0.9989 0.0441 +vn -0.3827 -0.0000 -0.9239 +vn 0.0000 -0.7317 -0.6816 +vn 0.0000 0.7317 -0.6816 +vn 0.0000 0.9989 0.0477 +vn 0.0000 0.6841 0.7294 +vn 0.0000 -0.6840 0.7294 +vn 0.0000 -0.9989 0.0477 +vn -0.1951 -0.0000 0.9808 +vn -0.1436 -0.6770 0.7219 +vn -0.0095 -0.9988 0.0477 +vn 0.1344 -0.7251 -0.6754 +vn 0.1951 -0.0000 -0.9808 +vn -0.0095 0.9988 0.0477 +vn -0.1436 0.6770 0.7219 +vn 0.1344 0.7251 -0.6754 +vn 0.3215 -0.8985 -0.2988 +vn 0.8627 0.4080 -0.2988 +vn 0.8373 -0.3468 -0.4226 +vn -0.3215 0.8985 0.2988 +vn -0.8627 -0.4080 0.2988 +vn -0.8373 0.3468 0.4226 +vn 0.8627 0.4080 -0.2989 +vn -0.3215 0.8985 0.2989 +vn 0.6303 0.7311 -0.2611 +vn -0.0609 0.9973 0.0399 +vn 0.5190 0.7430 -0.4226 +vn -0.9239 0.0000 0.3827 +vn -0.5735 0.6721 0.4683 +vn -0.7150 0.6333 0.2962 +vn -0.0948 -0.9947 0.0393 +vn -0.5735 -0.6721 0.4683 +vn -0.7150 -0.6333 0.2962 +vn 0.6303 -0.7311 -0.2611 +vn -0.0609 -0.9973 0.0399 +vn 0.9239 0.0000 -0.3827 +vn 0.7779 0.0000 -0.6284 +vn -0.0948 0.9947 0.0393 +vn -0.7690 0.0000 0.6392 +vn 0.5190 -0.7430 -0.4226 +vn -0.0183 -0.9989 0.0441 +vn -0.2791 -0.6841 0.6739 +vn -0.2791 0.6840 0.6739 +vn 0.2608 0.7317 -0.6297 +vn 0.2608 -0.7317 -0.6297 +vn -0.3827 0.0000 0.9239 +vn -0.0183 0.9989 0.0441 +vn 0.3827 0.0000 -0.9239 +vn -0.0000 -0.6841 0.7294 +vn -0.0000 0.6840 0.7294 +vn 0.1951 0.0000 0.9808 +vn 0.1436 0.6770 0.7219 +vn 0.0095 0.9988 0.0477 +vn -0.1344 0.7251 -0.6754 +vn -0.1951 0.0000 -0.9808 +vn 0.0095 -0.9988 0.0477 +vn 0.1436 -0.6770 0.7219 +vn -0.1344 -0.7251 -0.6754 +vn -0.3215 0.8985 -0.2988 +vn -0.8627 -0.4080 -0.2988 +vn -0.8373 0.3468 -0.4226 +vn 0.3215 -0.8985 0.2988 +vn 0.8373 -0.3468 0.4226 +vn 0.8627 0.4080 0.2988 +vn -0.8627 -0.4080 -0.2989 +vn 0.3215 -0.8985 0.2989 +vn 0.0712 -0.9627 -0.2611 +vn 0.7483 -0.6622 0.0399 +vn 0.1584 -0.8924 -0.4226 +vn 0.6533 0.6533 0.3827 +vn 0.8808 -0.0697 0.4683 +vn 0.9534 0.0578 0.2962 +vn -0.6364 0.7704 0.0393 +vn -0.0697 0.8808 0.4683 +vn 0.0578 0.9534 0.2962 +vn -0.9627 0.0713 -0.2611 +vn -0.6622 0.7483 0.0399 +vn -0.6533 -0.6533 -0.3827 +vn -0.5501 -0.5501 -0.6284 +vn 0.7704 -0.6363 0.0393 +vn 0.5438 0.5438 0.6392 +vn -0.8924 0.1584 -0.4226 +vn -0.6934 0.7192 0.0441 +vn -0.2863 0.6811 0.6739 +vn 0.6811 -0.2863 0.6739 +vn 0.3330 -0.7018 -0.6297 +vn -0.7018 0.3330 -0.6297 +vn 0.7192 -0.6934 0.0441 +vn -0.2706 -0.2706 -0.9239 +vn 0.5174 -0.5174 -0.6816 +vn -0.5174 0.5174 -0.6816 +vn -0.7063 0.7063 0.0477 +vn -0.4837 0.4837 0.7294 +vn 0.4837 -0.4837 0.7294 +vn 0.7063 -0.7063 0.0477 +vn -0.1379 -0.1379 0.9808 +vn 0.3772 -0.5802 0.7219 +vn 0.6996 -0.7130 0.0477 +vn 0.6077 -0.4177 -0.6754 +vn 0.1379 0.1380 -0.9808 +vn -0.7130 0.6996 0.0477 +vn -0.5802 0.3772 0.7219 +vn -0.4177 0.6077 -0.6754 +vn 0.8627 -0.4080 -0.2988 +vn 0.3215 0.8985 -0.2988 +vn 0.8373 0.3468 -0.4226 +vn -0.8627 0.4080 0.2988 +vn -0.3215 -0.8985 0.2988 +vn -0.8373 -0.3468 0.4226 +vn -0.8627 0.4080 0.2989 +vn 0.3215 0.8985 -0.2989 +vn -0.0712 0.9627 -0.2611 +vn -0.7483 0.6622 0.0399 +vn -0.1584 0.8924 -0.4226 +vn -0.6533 -0.6533 0.3827 +vn -0.8808 0.0697 0.4683 +vn -0.9534 -0.0578 0.2962 +vn 0.6364 -0.7704 0.0393 +vn 0.0697 -0.8808 0.4683 +vn -0.0578 -0.9534 0.2962 +vn 0.9627 -0.0712 -0.2611 +vn 0.6622 -0.7483 0.0399 +vn 0.6533 0.6533 -0.3827 +vn 0.5501 0.5501 -0.6284 +vn -0.7704 0.6363 0.0393 +vn -0.5438 -0.5438 0.6392 +vn 0.8924 -0.1584 -0.4226 +vn 0.6934 -0.7192 0.0441 +vn 0.2863 -0.6811 0.6739 +vn -0.6811 0.2863 0.6739 +vn -0.3330 0.7018 -0.6297 +vn 0.7018 -0.3330 -0.6297 +vn -0.2706 -0.2706 0.9239 +vn -0.7192 0.6934 0.0441 +vn 0.2706 0.2706 -0.9239 +vn 0.1379 0.1379 0.9808 +vn -0.3772 0.5802 0.7219 +vn -0.6996 0.7130 0.0477 +vn -0.6077 0.4177 -0.6754 +vn -0.1379 -0.1380 -0.9808 +vn 0.7130 -0.6996 0.0477 +vn 0.5802 -0.3772 0.7219 +vn 0.4177 -0.6077 -0.6754 +vn -0.8627 0.4080 -0.2988 +vn -0.3215 -0.8985 -0.2988 +vn -0.8373 -0.3468 -0.4226 +vn 0.8627 -0.4080 0.2988 +vn 0.3215 0.8985 0.2988 +vn 0.8373 0.3468 0.4226 +vn 0.8627 -0.4080 0.2989 +vn -0.9627 -0.0712 -0.2611 +vn -0.6622 -0.7483 0.0399 +vn -0.8924 -0.1584 -0.4226 +vn 0.6533 -0.6533 0.3827 +vn -0.0697 -0.8808 0.4683 +vn 0.0578 -0.9534 0.2962 +vn 0.7704 0.6364 0.0393 +vn 0.8808 0.0697 0.4683 +vn 0.9534 -0.0578 0.2962 +vn 0.0713 0.9627 -0.2611 +vn 0.7483 0.6622 0.0399 +vn -0.6533 0.6533 -0.3827 +vn -0.5501 0.5501 -0.6284 +vn -0.6363 -0.7704 0.0393 +vn 0.5438 -0.5438 0.6392 +vn 0.1584 0.8924 -0.4226 +vn 0.7192 0.6934 0.0441 +vn 0.6811 0.2863 0.6739 +vn -0.2863 -0.6811 0.6739 +vn -0.7018 -0.3330 -0.6297 +vn 0.3330 0.7018 -0.6297 +vn 0.2706 -0.2706 0.9239 +vn -0.6934 -0.7192 0.0441 +vn -0.2706 0.2706 -0.9239 +vn -0.5174 -0.5174 -0.6816 +vn 0.5174 0.5174 -0.6816 +vn 0.7063 0.7063 0.0477 +vn 0.4837 0.4837 0.7294 +vn -0.4837 -0.4837 0.7294 +vn -0.7063 -0.7063 0.0477 +vn -0.1379 0.1379 0.9808 +vn -0.5802 -0.3772 0.7219 +vn -0.7130 -0.6996 0.0477 +vn -0.4177 -0.6077 -0.6754 +vn 0.1379 -0.1380 -0.9808 +vn 0.6996 0.7130 0.0477 +vn 0.3772 0.5802 0.7219 +vn 0.6077 0.4177 -0.6754 +vn -0.4080 -0.8627 -0.2988 +vn 0.8985 -0.3215 -0.2988 +vn 0.3468 -0.8373 -0.4226 +vn 0.4080 0.8627 0.2988 +vn -0.8985 0.3215 0.2988 +vn -0.3468 0.8373 0.4226 +vn 0.4081 0.8627 0.2989 +vn 0.9627 0.0712 -0.2611 +vn 0.6622 0.7483 0.0399 +vn 0.8924 0.1584 -0.4226 +vn -0.6533 0.6533 0.3827 +vn 0.0697 0.8808 0.4683 +vn -0.0578 0.9534 0.2962 +vn -0.7704 -0.6364 0.0393 +vn -0.8808 -0.0697 0.4683 +vn -0.9534 0.0578 0.2962 +vn -0.0713 -0.9627 -0.2611 +vn -0.7483 -0.6622 0.0399 +vn 0.6533 -0.6533 -0.3827 +vn 0.5501 -0.5501 -0.6284 +vn 0.6363 0.7704 0.0393 +vn -0.5438 0.5438 0.6392 +vn -0.1584 -0.8924 -0.4226 +vn -0.7192 -0.6934 0.0441 +vn -0.6811 -0.2863 0.6739 +vn 0.2863 0.6811 0.6739 +vn 0.7018 0.3330 -0.6297 +vn -0.3330 -0.7018 -0.6297 +vn -0.2706 0.2706 0.9239 +vn 0.6934 0.7192 0.0441 +vn 0.2706 -0.2706 -0.9239 +vn 0.1379 -0.1379 0.9808 +vn 0.5802 0.3772 0.7219 +vn 0.7130 0.6996 0.0477 +vn 0.4177 0.6077 -0.6754 +vn -0.1379 0.1380 -0.9808 +vn -0.6996 -0.7130 0.0477 +vn -0.3772 -0.5802 0.7219 +vn -0.6077 -0.4177 -0.6754 +vn 0.4080 0.8627 -0.2988 +vn -0.8985 0.3215 -0.2988 +vn -0.3468 0.8373 -0.4226 +vn -0.4080 -0.8627 0.2988 +vn 0.3468 -0.8373 0.4226 +vn 0.8985 -0.3215 0.2988 +vn -0.4080 -0.8627 0.2989 +vn 0.4080 0.8627 -0.2989 +vn -0.8985 0.3215 -0.2989 +vn 0.6794 0.7194 0.1448 +vn -0.6794 0.7194 0.1448 +vn 0.9204 0.3812 0.0866 +vn 0.0000 0.9824 0.1866 +vn -0.9239 0.2706 0.2706 +vn -0.6630 0.5294 0.5294 +vn 0.9239 0.2706 0.2706 +vn 0.6630 0.5294 0.5294 +vn 0.6333 0.2962 0.7150 +vn -0.9125 0.1566 0.3780 +vn -0.6333 0.2962 0.7150 +vn 0.9125 0.1566 0.3780 +vn -0.9204 0.3812 0.0866 +vn 0.0000 -0.9063 -0.4226 +vn -0.8660 0.4532 0.2113 +vn 0.2588 0.8754 0.4082 +vn 0.5000 0.7849 0.3660 +vn 0.5000 -0.7849 -0.3660 +vn -0.8660 -0.4532 -0.2113 +vn 0.8660 0.4532 0.2113 +vn -0.5000 0.7849 0.3660 +vn -0.2588 0.8754 0.4082 +vn 0.7071 -0.6409 -0.2988 +vn 0.9659 -0.2346 -0.1094 +vn 0.8660 -0.4532 -0.2113 +vn 0.0000 -0.8944 0.4472 +vn 0.3423 -0.8263 0.4472 +vn -0.3423 -0.8263 0.4472 +vn -0.6325 -0.6325 0.4472 +vn -0.8263 -0.3423 0.4472 +vn -0.8944 -0.0000 0.4472 +vn -0.8263 0.3423 0.4472 +vn -0.6325 0.6325 0.4472 +vn -0.3423 0.8263 0.4472 +vn 0.0000 0.8944 0.4472 +vn 0.3423 0.8263 0.4472 +vn 0.6325 0.6325 0.4472 +vn 0.8263 0.3423 0.4472 +vn 0.8944 0.0000 0.4472 +vn 0.8263 -0.3423 0.4472 +vn 0.6325 -0.6325 0.4472 +vn -0.3162 0.3162 0.8944 +vn -0.4132 0.1711 0.8944 +vn 0.4132 -0.1711 0.8944 +vn 0.4472 -0.0000 0.8944 +vn -0.4472 -0.0000 0.8944 +vn 0.4132 0.1711 0.8944 +vn -0.4132 -0.1711 0.8944 +vn 0.3162 0.3162 0.8944 +vn -0.3162 -0.3162 0.8944 +vn 0.1711 0.4132 0.8944 +vn -0.1711 -0.4132 0.8944 +vn -0.0000 0.4472 0.8944 +vn 0.0000 -0.4472 0.8944 +vn 0.1711 -0.4132 0.8944 +vn -0.1711 0.4132 0.8944 +vn 0.3162 -0.3162 0.8944 +s off +f 1/1/1 2/2/1 3/3/1 +f 4/4/1 5/5/1 6/6/1 +f 7/7/1 8/8/1 9/9/1 +f 10/10/1 11/11/1 12/12/1 +f 13/13/1 14/14/1 15/15/1 +f 9/9/1 12/12/1 5/5/1 +f 16/16/1 1/1/1 13/13/1 +f 9/17/2 17/18/2 7/19/2 +f 5/20/3 18/21/3 9/22/3 +f 16/23/4 19/24/4 2/25/4 +f 2/26/3 20/27/3 6/28/3 +f 21/29/1 22/30/1 23/31/1 +f 24/32/1 18/21/1 25/33/1 +f 19/24/1 26/34/1 20/27/1 +f 27/35/1 28/36/1 29/37/1 +f 8/38/3 23/31/3 10/39/3 +f 30/40/4 21/29/4 8/41/4 +f 31/42/5 32/43/5 30/44/5 +f 6/45/2 26/34/2 4/46/2 +f 7/47/5 24/32/5 33/48/5 +f 33/49/4 25/33/4 5/50/4 +f 4/51/5 34/52/5 16/53/5 +f 10/54/2 22/30/2 31/55/2 +f 1/56/5 27/35/5 35/57/5 +f 35/58/4 29/37/4 14/59/4 +f 14/60/3 28/36/3 3/61/3 +f 3/62/2 36/63/2 1/64/2 +f 37/65/6 38/66/6 39/67/6 +f 40/68/6 41/69/6 42/70/6 +f 43/71/6 44/72/6 45/73/6 +f 46/74/6 47/75/6 44/72/6 +f 48/76/7 39/67/7 49/77/7 +f 50/78/6 41/69/6 38/66/6 +f 43/71/6 51/79/6 40/68/6 +f 52/80/6 49/81/6 47/75/6 +f 53/82/6 54/83/6 55/84/6 +f 56/85/6 57/86/6 58/87/6 +f 56/85/6 59/88/6 60/89/6 +f 61/90/7 59/88/7 62/91/7 +f 63/92/6 64/93/6 61/94/6 +f 65/95/7 66/96/7 63/92/7 +f 65/95/7 67/97/7 68/98/7 +f 69/99/6 70/100/6 67/97/6 +f 71/101/7 57/86/7 70/100/7 +f 72/102/8 73/103/8 74/104/8 +f 75/105/9 73/103/9 76/106/9 +f 77/107/10 76/106/10 72/102/10 +f 77/108/11 74/104/11 78/109/11 +f 78/110/12 73/103/12 79/111/12 +f 80/112/3 81/113/3 82/114/3 +f 83/115/3 84/116/3 85/117/3 +f 82/114/3 86/118/3 87/119/3 +f 88/120/3 86/121/3 89/122/3 +f 88/120/3 90/123/3 91/124/3 +f 91/125/3 92/126/3 93/127/3 +f 93/127/3 94/128/3 95/129/3 +f 96/130/3 94/131/3 97/132/3 +f 96/130/3 98/133/3 80/112/3 +f 99/134/3 100/135/3 101/136/3 +f 102/137/3 103/138/3 99/139/3 +f 104/140/3 102/141/3 105/142/3 +f 106/143/3 105/144/3 107/145/3 +f 108/146/3 107/147/3 109/148/3 +f 110/149/3 108/150/3 109/151/3 +f 111/152/3 112/153/3 110/154/3 +f 101/155/3 113/156/3 111/157/3 +f 114/158/1 115/159/1 116/160/1 +f 13/13/3 117/161/3 11/11/3 +f 15/15/2 118/162/2 13/13/2 +f 12/12/5 119/163/5 15/15/5 +f 11/11/4 120/164/4 12/12/4 +f 121/165/13 122/166/13 123/167/13 +f 123/168/14 124/169/14 114/170/14 +f 122/171/15 125/172/15 115/173/15 +f 126/174/16 127/175/16 128/176/16 +f 129/177/17 115/173/17 124/169/17 +f 130/178/18 116/179/18 125/172/18 +f 131/180/19 128/176/19 132/181/19 +f 133/182/20 114/170/20 127/175/20 +f 134/183/3 135/184/3 136/185/3 +f 137/186/5 138/187/5 139/188/5 +f 134/189/21 140/190/21 141/191/21 +f 135/184/22 139/192/22 136/193/22 +f 141/191/23 137/186/23 135/184/23 +f 136/194/24 138/195/24 134/189/24 +f 142/196/3 143/197/3 144/198/3 +f 145/199/5 146/200/5 147/201/5 +f 142/202/22 148/203/22 149/204/22 +f 143/197/21 147/205/21 144/206/21 +f 149/204/24 145/199/24 143/197/24 +f 144/206/23 146/207/23 142/208/23 +f 150/209/3 151/210/3 152/211/3 +f 153/212/5 154/213/5 155/214/5 +f 156/215/24 154/213/24 151/210/24 +f 152/211/23 153/216/23 150/217/23 +f 151/210/21 157/218/21 152/211/21 +f 150/219/22 155/220/22 156/215/22 +f 158/221/3 159/222/3 160/223/3 +f 161/224/5 162/225/5 163/226/5 +f 164/227/23 162/225/23 159/222/23 +f 160/223/24 161/228/24 158/229/24 +f 159/222/22 165/230/22 160/223/22 +f 158/229/21 163/231/21 164/232/21 +f 166/233/3 167/234/3 168/235/3 +f 169/236/25 170/237/25 171/238/25 +f 166/239/21 172/240/21 173/241/21 +f 167/234/22 171/238/22 168/242/22 +f 173/241/23 169/236/23 167/234/23 +f 166/239/24 171/243/24 170/244/24 +f 174/245/26 175/246/26 176/247/26 +f 177/248/13 178/249/13 179/250/13 +f 178/251/16 180/252/16 175/246/16 +f 181/253/27 182/254/27 180/252/27 +f 176/255/1 175/256/1 180/257/1 +f 183/258/2 184/259/2 185/260/2 +f 183/258/13 186/261/13 187/262/13 +f 184/259/1 188/263/1 185/260/1 +f 189/264/5 190/265/5 191/266/5 +f 192/267/13 193/268/13 194/269/13 +f 195/270/1 191/266/1 196/271/1 +f 194/272/4 189/264/4 195/273/4 +f 196/274/2 190/265/2 192/275/2 +f 197/276/2 198/277/2 199/278/2 +f 200/279/28 201/280/28 202/281/28 +f 203/282/29 204/283/29 205/284/29 +f 206/285/30 205/284/30 198/277/30 +f 207/286/31 199/287/31 201/280/31 +f 208/288/4 202/281/4 204/283/4 +f 199/289/13 198/290/13 205/291/13 +f 209/292/4 210/293/4 211/294/4 +f 212/295/2 213/296/2 214/297/2 +f 215/298/28 216/299/28 209/300/28 +f 211/301/29 217/302/29 218/303/29 +f 218/304/30 219/305/30 212/306/30 +f 214/307/31 220/308/31 215/309/31 +f 219/310/1 221/311/1 213/296/1 +f 216/299/1 222/312/1 223/313/1 +f 210/314/1 224/315/1 217/302/1 +f 219/305/1 224/315/1 225/316/1 +f 213/317/1 222/312/1 220/308/1 +f 216/318/1 226/319/1 210/293/1 +f 224/315/30 227/320/30 225/316/30 +f 221/321/31 228/322/31 222/312/31 +f 223/313/4 229/323/4 226/319/4 +f 225/316/2 230/324/2 221/311/2 +f 222/312/28 231/325/28 223/313/28 +f 226/319/29 232/326/29 224/315/29 +f 228/322/13 233/327/13 231/325/13 +f 231/325/13 234/328/13 229/323/13 +f 232/326/13 234/329/13 235/330/13 +f 232/326/13 236/331/13 227/320/13 +f 227/320/13 237/332/13 230/324/13 +f 228/322/13 237/333/13 238/334/13 +f 237/333/31 239/335/31 238/334/31 +f 233/336/4 240/337/4 234/328/4 +f 236/338/2 241/339/2 237/332/2 +f 238/340/28 242/341/28 233/327/28 +f 234/329/29 243/342/29 235/330/29 +f 235/343/30 244/344/30 236/331/30 +f 239/345/1 245/346/1 242/341/1 +f 242/347/1 246/348/1 240/337/1 +f 243/342/1 246/348/1 247/349/1 +f 243/350/1 248/351/1 244/344/1 +f 244/352/1 249/353/1 241/339/1 +f 239/335/1 249/354/1 250/355/1 +f 245/346/4 251/356/4 246/348/4 +f 248/351/2 252/357/2 249/353/2 +f 250/355/28 253/358/28 245/346/28 +f 246/348/29 254/359/29 247/349/29 +f 247/349/30 255/360/30 248/351/30 +f 249/354/31 256/361/31 250/355/31 +f 251/356/32 257/362/32 254/359/32 +f 254/359/33 258/363/33 255/360/33 +f 256/361/34 259/364/34 260/365/34 +f 253/358/35 261/366/35 251/356/35 +f 255/360/36 259/367/36 252/357/36 +f 253/358/37 260/368/37 262/369/37 +f 259/370/13 258/371/13 257/372/13 +f 263/373/38 264/374/38 265/375/38 +f 265/376/1 266/377/1 267/378/1 +f 267/378/39 268/379/39 269/380/39 +f 263/373/13 268/379/13 270/381/13 +f 271/382/38 272/383/38 273/384/38 +f 274/385/13 275/386/13 271/387/13 +f 276/388/1 272/383/1 277/389/1 +f 277/389/40 275/386/40 278/390/40 +f 274/385/41 273/391/41 276/392/41 +f 279/393/1 280/394/1 281/395/1 +f 282/396/42 280/397/42 283/398/42 +f 284/399/13 285/400/13 286/401/13 +f 279/393/43 287/402/43 288/403/43 +f 285/400/13 289/404/13 290/405/13 +f 291/406/44 292/407/44 280/397/44 +f 288/408/13 282/409/13 293/410/13 +f 294/411/40 288/403/40 293/410/40 +f 294/411/1 283/412/1 279/413/1 +f 284/414/13 286/415/13 295/416/13 +f 296/417/40 284/399/40 295/416/40 +f 296/417/1 297/418/1 298/419/1 +f 299/420/5 293/410/5 300/421/5 +f 301/422/3 283/423/3 302/424/3 +f 303/425/13 286/415/13 304/426/13 +f 305/427/1 296/417/1 306/428/1 +f 302/429/1 294/411/1 299/420/1 +f 306/428/5 295/416/5 303/425/5 +f 304/426/3 297/430/3 305/431/3 +f 300/421/13 282/409/13 301/422/13 +f 286/401/42 307/432/42 297/433/42 +f 288/403/13 291/406/13 282/396/13 +f 308/434/4 309/435/4 310/436/4 +f 311/437/45 289/404/45 312/438/45 +f 307/439/1 313/440/1 311/437/1 +f 280/394/1 314/441/1 281/395/1 +f 285/400/44 315/442/44 307/432/44 +f 291/406/13 316/443/13 317/444/13 +f 281/395/45 316/443/45 287/402/45 +f 298/445/1 307/439/1 311/437/1 +f 298/445/43 312/438/43 284/399/43 +f 318/446/30 319/447/30 320/448/30 +f 321/449/3 322/450/3 308/434/3 +f 323/451/2 324/452/2 319/447/2 +f 325/453/2 326/454/2 321/449/2 +f 327/455/31 328/456/31 324/457/31 +f 310/458/5 329/459/5 325/453/5 +f 330/460/28 331/461/28 328/456/28 +f 332/462/13 330/463/13 327/464/13 +f 332/465/4 333/466/4 331/461/4 +f 334/467/29 320/448/29 333/466/29 +f 331/468/1 333/469/1 319/470/1 +f 329/459/21 335/471/21 326/454/21 +f 326/472/3 335/471/3 322/473/3 +f 309/474/5 336/475/5 329/476/5 +f 309/474/5 337/477/5 336/475/5 +f 338/478/2 339/479/2 337/480/2 +f 336/475/13 340/481/13 335/471/13 +f 335/471/3 341/482/3 322/473/3 +f 322/473/1 338/483/1 309/484/1 +f 337/480/13 342/485/13 340/486/13 +f 341/487/1 343/488/1 338/489/1 +f 342/485/38 341/482/38 340/481/38 +f 344/490/43 345/491/43 346/492/43 +f 337/480/13 344/490/13 342/485/13 +f 342/485/4 346/492/4 343/488/4 +f 343/488/1 347/493/1 338/489/1 +f 348/494/13 349/495/13 350/496/13 +f 347/493/1 345/491/1 351/497/1 +f 347/498/42 348/499/42 339/479/42 +f 339/479/13 350/500/13 344/490/13 +f 349/495/40 345/491/40 350/500/40 +f 352/501/1 353/502/1 351/503/1 +f 351/503/1 345/504/1 352/501/1 +f 353/505/3 354/506/3 355/507/3 +f 351/508/3 356/509/3 348/494/3 +f 348/494/13 357/510/13 349/495/13 +f 349/495/5 358/511/5 352/501/5 +f 357/512/5 359/513/5 358/514/5 +f 355/507/21 357/510/21 356/509/21 +f 353/505/3 355/507/3 356/515/3 +f 358/514/4 360/516/4 353/517/4 +f 359/513/5 361/518/5 358/514/5 +f 355/507/2 362/519/2 359/513/2 +f 363/520/46 364/521/46 365/522/46 +f 366/523/46 367/524/46 368/525/46 +f 369/526/46 370/527/46 371/528/46 +f 372/529/46 373/530/46 370/527/46 +f 374/531/47 365/522/47 375/532/47 +f 376/533/46 367/524/46 364/521/46 +f 366/523/46 371/528/46 377/534/46 +f 378/535/46 375/536/46 373/530/46 +f 379/537/46 380/538/46 381/539/46 +f 382/540/46 383/541/46 384/542/46 +f 382/540/46 385/543/46 386/544/46 +f 387/545/47 385/543/47 388/546/47 +f 389/547/46 390/548/46 387/549/46 +f 389/547/47 391/550/47 392/551/47 +f 393/552/47 394/553/47 391/550/47 +f 395/554/46 396/555/46 394/553/46 +f 397/556/47 383/541/47 396/555/47 +f 398/557/48 399/558/48 400/559/48 +f 401/560/48 402/561/48 403/562/48 +f 404/563/48 405/564/48 406/565/48 +f 407/566/48 408/567/48 405/564/48 +f 409/568/49 400/559/49 410/569/49 +f 411/570/48 402/561/48 399/558/48 +f 404/563/48 412/571/48 401/560/48 +f 413/572/48 410/573/48 408/567/48 +f 414/574/48 415/575/48 416/576/48 +f 417/577/48 418/578/48 419/579/48 +f 417/577/48 420/580/48 421/581/48 +f 422/582/49 420/580/49 423/583/49 +f 424/584/48 425/585/48 422/586/48 +f 426/587/49 427/588/49 424/584/49 +f 426/587/49 428/589/49 429/590/49 +f 430/591/48 431/592/48 428/589/48 +f 432/593/49 418/578/49 431/592/49 +f 433/594/50 434/595/50 435/596/50 +f 436/597/50 437/598/50 438/599/50 +f 439/600/50 440/601/50 441/602/50 +f 442/603/50 443/604/50 440/601/50 +f 444/605/51 435/596/51 445/606/51 +f 446/607/50 437/598/50 434/595/50 +f 439/600/50 447/608/50 436/597/50 +f 448/609/50 445/610/50 443/604/50 +f 449/611/50 450/612/50 451/613/50 +f 452/614/50 453/615/50 454/616/50 +f 452/614/50 455/617/50 456/618/50 +f 457/619/51 455/617/51 458/620/51 +f 459/621/50 460/622/50 457/623/50 +f 461/624/51 462/625/51 459/621/51 +f 461/624/51 463/626/51 464/627/51 +f 465/628/50 466/629/50 463/626/50 +f 467/630/51 453/615/51 466/629/51 +f 468/631/52 469/632/52 470/633/52 +f 471/634/53 472/635/53 473/636/53 +f 474/637/53 475/638/53 476/639/53 +f 477/640/52 478/641/52 475/638/52 +f 479/642/52 470/633/52 480/643/52 +f 481/644/53 472/635/53 469/632/53 +f 474/637/53 482/645/53 471/634/53 +f 483/646/53 480/647/53 478/641/53 +f 484/648/52 485/649/52 486/650/52 +f 487/651/52 488/652/52 489/653/52 +f 487/651/52 490/654/52 491/655/52 +f 492/656/52 490/654/52 493/657/52 +f 494/658/53 495/659/53 492/660/53 +f 496/661/53 497/662/53 494/658/53 +f 496/661/52 498/663/52 499/664/52 +f 500/665/53 501/666/53 498/663/53 +f 502/667/54 488/652/54 501/666/54 +f 503/668/55 504/669/55 505/670/55 +f 506/671/55 507/672/55 508/673/55 +f 509/674/56 510/675/56 511/676/56 +f 512/677/55 513/678/55 510/675/55 +f 514/679/56 505/670/56 515/680/56 +f 516/681/55 507/672/55 504/669/55 +f 509/674/55 517/682/55 506/671/55 +f 518/683/55 515/684/55 513/678/55 +f 519/685/56 520/686/56 521/687/56 +f 522/688/56 523/689/56 524/690/56 +f 522/688/55 525/691/55 526/692/55 +f 527/693/56 525/691/56 528/694/56 +f 529/695/55 530/696/55 527/697/55 +f 531/698/56 532/699/56 529/695/56 +f 531/698/56 533/700/56 534/701/56 +f 535/702/55 536/703/55 533/700/55 +f 537/704/56 523/689/56 536/703/56 +f 538/705/57 539/706/57 540/707/57 +f 541/708/58 542/709/58 543/710/58 +f 544/711/57 545/712/57 546/713/57 +f 547/714/58 548/715/58 545/712/58 +f 549/716/57 540/707/57 550/717/57 +f 551/718/58 542/709/58 539/706/58 +f 541/708/58 546/713/58 552/719/58 +f 553/720/58 550/721/58 548/715/58 +f 554/722/57 555/723/57 556/724/57 +f 557/725/57 558/726/57 559/727/57 +f 557/725/58 560/728/58 561/729/58 +f 562/730/57 560/728/57 563/731/57 +f 564/732/58 565/733/58 562/734/58 +f 566/735/57 567/736/57 564/732/57 +f 566/735/57 568/737/57 569/738/57 +f 570/739/58 571/740/58 568/737/58 +f 572/741/59 558/726/59 571/740/59 +f 573/742/60 574/743/60 575/744/60 +f 576/745/60 577/746/60 578/747/60 +f 579/748/60 580/749/60 581/750/60 +f 582/751/60 580/749/60 583/752/60 +f 584/753/61 575/744/61 585/754/61 +f 586/755/60 577/746/60 574/743/60 +f 579/748/60 587/756/60 576/745/60 +f 582/751/60 585/757/60 588/758/60 +f 589/759/61 590/760/61 591/761/61 +f 592/762/61 593/763/61 594/764/61 +f 592/762/61 595/765/61 596/766/61 +f 597/767/61 595/765/61 598/768/61 +f 599/769/60 600/770/60 597/771/60 +f 601/772/60 602/773/60 599/769/60 +f 601/772/61 603/774/61 604/775/61 +f 605/776/61 606/777/61 603/774/61 +f 607/778/61 593/763/61 606/777/61 +f 608/779/62 609/780/62 610/781/62 +f 611/782/63 610/781/63 609/780/63 +f 612/783/64 609/780/64 613/784/64 +f 612/785/65 608/779/65 614/786/65 +f 614/787/66 610/781/66 615/788/66 +f 616/789/67 617/790/67 618/791/67 +f 619/792/68 617/790/68 620/793/68 +f 621/794/69 620/793/69 616/789/69 +f 621/795/70 618/791/70 622/796/70 +f 622/797/71 617/790/71 623/798/71 +f 624/799/72 625/800/72 626/801/72 +f 627/802/73 626/801/73 625/800/73 +f 628/803/74 625/800/74 629/804/74 +f 628/805/75 624/799/75 630/806/75 +f 630/807/76 626/801/76 631/808/76 +f 632/809/77 633/810/77 634/811/77 +f 635/812/78 634/811/78 633/810/78 +f 636/813/79 633/810/79 637/814/79 +f 636/815/80 632/809/80 638/816/80 +f 638/817/81 634/811/81 639/818/81 +f 640/819/82 641/820/82 642/821/82 +f 643/822/83 642/821/83 641/820/83 +f 644/823/84 641/820/84 645/824/84 +f 644/825/85 640/819/85 646/826/85 +f 646/827/86 642/821/86 647/828/86 +f 648/829/87 649/830/87 650/831/87 +f 651/832/88 649/830/88 652/833/88 +f 653/834/89 652/833/89 648/829/89 +f 653/835/90 650/831/90 654/836/90 +f 654/837/91 649/830/91 655/838/91 +f 656/839/92 657/840/92 658/841/92 +f 659/842/93 658/841/93 657/840/93 +f 660/843/94 657/840/94 661/844/94 +f 660/845/95 656/839/95 662/846/95 +f 662/847/96 658/841/96 663/848/96 +f 664/849/97 665/850/97 666/851/97 +f 667/852/98 665/850/98 668/853/98 +f 669/854/99 668/853/99 664/849/99 +f 669/855/100 666/851/100 670/856/100 +f 670/857/101 665/850/101 671/858/101 +f 672/859/102 673/860/102 674/861/102 +f 675/862/103 674/861/103 673/860/103 +f 676/863/104 673/860/104 677/864/104 +f 676/865/105 672/859/105 678/866/105 +f 678/867/106 674/861/106 679/868/106 +f 680/869/107 681/870/107 682/871/107 +f 683/872/108 682/871/108 681/870/108 +f 684/873/109 681/870/109 685/874/109 +f 684/875/110 680/869/110 686/876/110 +f 686/877/111 682/871/111 687/878/111 +f 688/879/112 689/880/112 690/881/112 +f 691/882/113 690/881/113 689/880/113 +f 692/883/114 689/880/114 693/884/114 +f 692/885/115 688/879/115 694/886/115 +f 694/887/116 690/881/116 695/888/116 +f 696/889/117 697/890/117 698/891/117 +f 699/892/118 698/891/118 697/890/118 +f 700/893/119 697/890/119 701/894/119 +f 700/895/120 696/889/120 702/896/120 +f 702/897/121 698/891/121 703/898/121 +f 704/899/122 705/900/122 706/901/122 +f 707/902/123 706/901/123 705/900/123 +f 708/903/124 705/900/124 709/904/124 +f 708/905/125 704/899/125 710/906/125 +f 710/907/126 706/901/126 711/908/126 +f 712/909/127 713/910/127 714/911/127 +f 715/912/128 713/910/128 716/913/128 +f 717/914/129 716/913/129 712/909/129 +f 717/915/130 714/911/130 718/916/130 +f 718/917/131 713/910/131 719/918/131 +f 720/919/132 721/920/132 722/921/132 +f 723/922/133 722/921/133 721/920/133 +f 724/923/134 721/920/134 725/924/134 +f 724/925/135 720/919/135 726/926/135 +f 726/927/136 722/921/136 727/928/136 +f 728/929/23 729/930/23 730/931/23 +f 731/932/4 732/933/4 733/934/4 +f 734/935/22 735/936/22 736/937/22 +f 1/1/1 16/16/1 2/2/1 +f 4/4/1 33/938/1 5/5/1 +f 7/7/1 30/939/1 8/8/1 +f 10/10/1 31/940/1 11/11/1 +f 13/13/1 35/941/1 14/14/1 +f 10/10/1 12/12/1 8/8/1 +f 12/12/1 15/15/1 5/5/1 +f 8/8/1 12/12/1 9/9/1 +f 15/15/1 14/14/1 3/3/1 +f 2/2/1 6/6/1 15/15/1 +f 6/6/1 5/5/1 15/15/1 +f 15/15/1 3/3/1 2/2/1 +f 13/13/1 11/11/1 33/938/1 +f 11/11/1 31/940/1 30/939/1 +f 30/939/1 7/7/1 11/11/1 +f 7/7/1 33/938/1 11/11/1 +f 1/1/1 35/941/1 13/13/1 +f 33/938/1 4/4/1 13/13/1 +f 4/4/1 16/16/1 13/13/1 +f 9/17/2 18/21/2 17/18/2 +f 5/20/3 25/33/3 18/21/3 +f 16/23/4 34/52/4 19/24/4 +f 2/26/3 19/24/3 20/27/3 +f 21/29/1 32/43/1 22/30/1 +f 24/32/1 17/18/1 18/21/1 +f 19/24/1 34/52/1 26/34/1 +f 27/35/1 36/63/1 28/36/1 +f 8/38/3 21/29/3 23/31/3 +f 30/40/4 32/43/4 21/29/4 +f 31/42/5 22/30/5 32/43/5 +f 6/45/2 20/27/2 26/34/2 +f 7/47/5 17/18/5 24/32/5 +f 33/49/4 24/32/4 25/33/4 +f 4/51/5 26/34/5 34/52/5 +f 10/54/2 23/31/2 22/30/2 +f 1/56/5 36/63/5 27/35/5 +f 35/58/4 27/35/4 29/37/4 +f 14/60/3 29/37/3 28/36/3 +f 3/62/2 28/36/2 36/63/2 +f 37/65/6 50/78/6 38/66/6 +f 40/68/6 51/79/6 41/69/6 +f 43/71/7 46/74/7 44/72/7 +f 46/74/6 52/80/6 47/75/6 +f 48/76/6 37/65/6 39/67/6 +f 50/78/6 42/70/6 41/69/6 +f 43/71/6 45/73/6 51/79/6 +f 52/80/7 48/942/7 49/81/7 +f 53/82/6 737/943/6 54/83/6 +f 54/83/7 738/944/7 55/84/7 +f 55/84/6 739/945/6 53/82/6 +f 739/945/7 740/946/7 53/82/7 +f 740/946/6 741/947/6 53/82/6 +f 56/85/7 60/89/7 57/86/7 +f 56/85/6 62/91/6 59/88/6 +f 61/90/6 64/948/6 59/88/6 +f 63/92/7 66/96/7 64/93/7 +f 65/95/6 68/98/6 66/96/6 +f 65/95/6 69/99/6 67/97/6 +f 69/99/7 71/101/7 70/100/7 +f 71/101/6 58/87/6 57/86/6 +f 72/102/8 76/106/8 73/103/8 +f 75/105/137 79/949/137 73/103/137 +f 77/107/10 75/950/10 76/106/10 +f 77/108/11 72/102/11 74/104/11 +f 78/110/12 74/104/12 73/103/12 +f 80/112/3 98/951/3 81/113/3 +f 85/117/3 742/952/3 743/953/3 +f 743/953/3 744/954/3 85/117/3 +f 744/954/3 745/955/3 85/117/3 +f 745/955/3 746/956/3 85/117/3 +f 746/956/3 83/115/3 85/117/3 +f 82/114/3 81/957/3 86/118/3 +f 88/120/3 87/119/3 86/121/3 +f 88/120/3 89/958/3 90/123/3 +f 91/125/3 90/959/3 92/126/3 +f 93/127/3 92/960/3 94/128/3 +f 96/130/3 95/129/3 94/131/3 +f 96/130/3 97/961/3 98/133/3 +f 99/134/3 103/962/3 100/135/3 +f 102/137/3 747/963/3 103/138/3 +f 104/140/3 747/964/3 102/141/3 +f 106/143/3 104/965/3 105/144/3 +f 108/146/3 106/966/3 107/147/3 +f 110/149/3 112/967/3 108/150/3 +f 111/152/3 113/968/3 112/153/3 +f 101/155/3 100/969/3 113/156/3 +f 128/970/1 127/971/1 114/158/1 +f 114/158/1 124/972/1 115/159/1 +f 115/159/1 125/973/1 116/160/1 +f 116/160/1 132/974/1 128/970/1 +f 128/970/1 114/158/1 116/160/1 +f 13/13/3 118/975/3 117/161/3 +f 15/15/2 119/976/2 118/162/2 +f 12/12/5 120/977/5 119/163/5 +f 11/11/4 117/978/4 120/164/4 +f 123/167/13 133/979/13 126/980/13 +f 126/980/13 131/981/13 121/165/13 +f 121/165/13 130/982/13 122/166/13 +f 122/166/13 129/983/13 123/167/13 +f 123/167/13 126/980/13 121/165/13 +f 123/168/14 129/177/14 124/169/14 +f 122/171/15 130/178/15 125/172/15 +f 126/174/16 133/182/16 127/175/16 +f 129/177/17 122/171/17 115/173/17 +f 130/178/18 121/984/18 116/179/18 +f 131/180/19 126/174/19 128/176/19 +f 133/182/20 123/168/20 114/170/20 +f 134/183/3 141/191/3 135/184/3 +f 137/186/5 140/190/5 138/187/5 +f 134/189/21 138/195/21 140/190/21 +f 135/184/22 137/186/22 139/192/22 +f 141/191/23 140/190/23 137/186/23 +f 136/194/24 139/985/24 138/195/24 +f 142/196/3 149/204/3 143/197/3 +f 145/199/5 148/203/5 146/200/5 +f 142/202/22 146/986/22 148/203/22 +f 143/197/21 145/199/21 147/205/21 +f 149/204/24 148/203/24 145/199/24 +f 144/206/23 147/205/23 146/207/23 +f 150/209/3 156/987/3 151/210/3 +f 153/212/5 157/218/5 154/213/5 +f 156/215/24 155/220/24 154/213/24 +f 152/211/23 157/218/23 153/216/23 +f 151/210/21 154/213/21 157/218/21 +f 150/219/22 153/988/22 155/220/22 +f 158/221/3 164/989/3 159/222/3 +f 161/224/5 165/230/5 162/225/5 +f 164/227/23 163/990/23 162/225/23 +f 160/223/24 165/230/24 161/228/24 +f 159/222/22 162/225/22 165/230/22 +f 158/229/21 161/228/21 163/231/21 +f 166/233/3 173/241/3 167/234/3 +f 169/236/25 172/991/25 170/237/25 +f 166/239/21 170/244/21 172/240/21 +f 167/234/22 169/236/22 171/238/22 +f 173/241/23 172/240/23 169/236/23 +f 166/239/24 168/992/24 171/243/24 +f 174/245/26 178/251/26 175/246/26 +f 179/250/13 748/993/13 177/248/13 +f 177/248/13 181/994/13 178/249/13 +f 178/249/13 174/995/13 179/250/13 +f 178/251/16 181/253/16 180/252/16 +f 181/253/27 177/996/27 182/254/27 +f 180/257/1 182/997/1 176/255/1 +f 182/997/1 749/998/1 176/255/1 +f 749/998/1 750/999/1 176/255/1 +f 183/258/2 187/262/2 184/259/2 +f 183/258/13 751/1000/13 186/261/13 +f 184/259/1 752/1001/1 188/263/1 +f 189/264/5 193/268/5 190/265/5 +f 192/267/13 190/265/13 193/268/13 +f 195/270/1 189/264/1 191/266/1 +f 194/272/4 193/268/4 189/264/4 +f 196/274/2 191/266/2 190/265/2 +f 197/276/2 206/285/2 198/277/2 +f 200/279/28 207/286/28 201/280/28 +f 203/282/29 208/288/29 204/283/29 +f 206/285/30 203/282/30 205/284/30 +f 207/286/31 197/1002/31 199/287/31 +f 208/288/4 200/279/4 202/281/4 +f 205/291/13 204/1003/13 199/289/13 +f 204/1003/13 202/1004/13 199/289/13 +f 202/1004/13 201/1005/13 199/289/13 +f 209/292/4 216/318/4 210/293/4 +f 212/295/2 219/310/2 213/296/2 +f 215/298/28 220/1006/28 216/299/28 +f 211/301/29 210/314/29 217/302/29 +f 218/304/30 217/1007/30 219/305/30 +f 214/307/31 213/317/31 220/308/31 +f 219/310/1 225/316/1 221/311/1 +f 216/299/1 220/1006/1 222/312/1 +f 210/314/1 226/319/1 224/315/1 +f 219/305/1 217/1007/1 224/315/1 +f 213/317/1 221/321/1 222/312/1 +f 216/318/1 223/313/1 226/319/1 +f 224/315/30 232/326/30 227/320/30 +f 221/321/31 230/1008/31 228/322/31 +f 223/313/4 231/325/4 229/323/4 +f 225/316/2 227/320/2 230/324/2 +f 222/312/28 228/322/28 231/325/28 +f 226/319/29 229/323/29 232/326/29 +f 228/322/13 238/340/13 233/327/13 +f 231/325/13 233/336/13 234/328/13 +f 232/326/13 229/323/13 234/329/13 +f 232/326/13 235/343/13 236/331/13 +f 227/320/13 236/338/13 237/332/13 +f 228/322/13 230/1008/13 237/333/13 +f 237/333/31 241/1009/31 239/335/31 +f 233/336/4 242/347/4 240/337/4 +f 236/338/2 244/352/2 241/339/2 +f 238/340/28 239/345/28 242/341/28 +f 234/329/29 240/1010/29 243/342/29 +f 235/343/30 243/350/30 244/344/30 +f 239/345/1 250/355/1 245/346/1 +f 242/347/1 245/346/1 246/348/1 +f 243/342/1 240/1010/1 246/348/1 +f 243/350/1 247/349/1 248/351/1 +f 244/352/1 248/351/1 249/353/1 +f 239/335/1 241/1009/1 249/354/1 +f 245/346/4 253/358/4 251/356/4 +f 248/351/2 255/360/2 252/357/2 +f 250/355/28 256/361/28 253/358/28 +f 246/348/29 251/356/29 254/359/29 +f 247/349/30 254/359/30 255/360/30 +f 249/354/31 252/1011/31 256/361/31 +f 251/356/32 261/1012/32 257/362/32 +f 254/359/33 257/1013/33 258/363/33 +f 256/361/34 252/1011/34 259/364/34 +f 253/358/35 262/1014/35 261/366/35 +f 255/360/36 258/1015/36 259/367/36 +f 253/358/37 256/361/37 260/368/37 +f 257/372/13 261/1016/13 259/370/13 +f 261/1016/13 262/1017/13 259/370/13 +f 262/1017/13 260/1018/13 259/370/13 +f 263/373/38 270/381/38 264/374/38 +f 265/376/1 264/1019/1 266/377/1 +f 267/378/39 266/377/39 268/379/39 +f 263/373/13 269/380/13 268/379/13 +f 271/382/38 275/1020/38 272/383/38 +f 274/385/13 278/390/13 275/386/13 +f 276/388/1 273/384/1 272/383/1 +f 277/389/40 272/383/40 275/386/40 +f 274/385/41 271/387/41 273/391/41 +f 279/393/1 283/1021/1 280/394/1 +f 282/396/42 291/406/42 280/397/42 +f 284/399/13 312/438/13 285/400/13 +f 279/393/43 281/395/43 287/402/43 +f 285/400/13 312/438/13 289/404/13 +f 291/406/44 317/444/44 292/407/44 +f 294/411/40 279/393/40 288/403/40 +f 296/417/40 298/445/40 284/399/40 +f 299/420/5 294/411/5 293/410/5 +f 301/422/3 282/409/3 283/423/3 +f 303/425/13 295/416/13 286/415/13 +f 305/427/1 297/418/1 296/417/1 +f 302/429/1 283/412/1 294/411/1 +f 306/428/5 296/417/5 295/416/5 +f 304/426/3 286/415/3 297/430/3 +f 300/421/13 293/410/13 282/409/13 +f 286/401/42 285/400/42 307/432/42 +f 288/403/13 287/402/13 291/406/13 +f 308/434/4 322/450/4 309/435/4 +f 311/437/45 313/440/45 289/404/45 +f 307/439/1 315/1022/1 313/440/1 +f 280/394/1 292/1023/1 314/441/1 +f 285/400/44 290/405/44 315/442/44 +f 291/406/13 287/402/13 316/443/13 +f 281/395/45 314/441/45 316/443/45 +f 298/445/1 297/1024/1 307/439/1 +f 298/445/43 311/437/43 312/438/43 +f 318/446/30 323/451/30 319/447/30 +f 321/449/3 326/454/3 322/450/3 +f 323/451/2 327/1025/2 324/452/2 +f 325/453/2 329/459/2 326/454/2 +f 327/455/31 330/460/31 328/456/31 +f 310/458/5 309/1026/5 329/459/5 +f 330/460/28 332/465/28 331/461/28 +f 327/464/13 323/1027/13 318/1028/13 +f 318/1028/13 334/1029/13 327/464/13 +f 334/1029/13 332/462/13 327/464/13 +f 332/465/4 334/467/4 333/466/4 +f 334/467/29 318/446/29 320/448/29 +f 333/469/1 320/1030/1 319/470/1 +f 319/470/1 324/1031/1 328/1032/1 +f 328/1032/1 331/468/1 319/470/1 +f 329/459/21 336/475/21 335/471/21 +f 309/474/5 338/1033/5 337/477/5 +f 338/478/2 347/498/2 339/479/2 +f 336/475/13 337/477/13 340/481/13 +f 335/471/3 340/481/3 341/482/3 +f 322/473/1 341/482/1 338/483/1 +f 342/485/38 343/488/38 341/482/38 +f 344/490/43 350/500/43 345/491/43 +f 337/480/13 339/479/13 344/490/13 +f 342/485/4 344/490/4 346/492/4 +f 343/488/1 346/492/1 347/493/1 +f 347/493/1 346/492/1 345/491/1 +f 347/498/42 351/1034/42 348/499/42 +f 339/479/13 348/499/13 350/500/13 +f 349/495/40 352/501/40 345/491/40 +f 352/501/1 358/511/1 353/502/1 +f 353/505/3 360/1035/3 354/506/3 +f 351/508/3 353/1036/3 356/509/3 +f 348/494/13 356/509/13 357/510/13 +f 349/495/5 357/510/5 358/511/5 +f 355/507/21 359/513/21 357/510/21 +f 358/514/4 361/518/4 360/516/4 +f 359/513/5 362/519/5 361/518/5 +f 355/507/2 354/506/2 362/519/2 +f 363/520/46 376/533/46 364/521/46 +f 366/523/46 377/534/46 367/524/46 +f 369/526/47 372/529/47 370/527/47 +f 372/529/46 378/535/46 373/530/46 +f 374/531/46 363/520/46 365/522/46 +f 376/533/46 368/525/46 367/524/46 +f 366/523/46 369/526/46 371/528/46 +f 378/535/47 374/1037/47 375/536/47 +f 379/537/46 753/1038/46 380/538/46 +f 380/538/47 754/1039/47 381/539/47 +f 381/539/47 755/1040/47 756/1041/47 +f 756/1041/46 757/1042/46 381/539/46 +f 757/1042/46 379/537/46 381/539/46 +f 382/540/47 386/544/47 383/541/47 +f 382/540/46 388/546/46 385/543/46 +f 387/545/46 390/1043/46 385/543/46 +f 389/547/47 392/551/47 390/548/47 +f 389/547/46 393/552/46 391/550/46 +f 393/552/46 395/554/46 394/553/46 +f 395/554/47 397/556/47 396/555/47 +f 397/556/46 384/542/46 383/541/46 +f 398/557/49 411/570/49 399/558/49 +f 401/560/48 412/571/48 402/561/48 +f 404/563/49 407/566/49 405/564/49 +f 407/566/48 413/572/48 408/567/48 +f 409/568/48 398/557/48 400/559/48 +f 411/570/48 403/562/48 402/561/48 +f 404/563/48 406/565/48 412/571/48 +f 413/572/49 409/1044/49 410/573/49 +f 414/574/48 758/1045/48 415/575/48 +f 415/575/49 759/1046/49 416/576/49 +f 416/576/48 760/1047/48 414/574/48 +f 760/1047/49 761/1048/49 414/574/49 +f 761/1048/48 762/1049/48 414/574/48 +f 417/577/49 421/581/49 418/578/49 +f 417/577/48 423/583/48 420/580/48 +f 422/582/48 425/1050/48 420/580/48 +f 424/584/49 427/588/49 425/585/49 +f 426/587/48 429/590/48 427/588/48 +f 426/587/49 430/591/49 428/589/49 +f 430/591/49 432/593/49 431/592/49 +f 432/593/48 419/579/48 418/578/48 +f 433/594/50 446/607/50 434/595/50 +f 436/597/50 447/608/50 437/598/50 +f 439/600/51 442/603/51 440/601/51 +f 442/603/50 448/609/50 443/604/50 +f 444/605/50 433/594/50 435/596/50 +f 446/607/50 438/599/50 437/598/50 +f 439/600/50 441/602/50 447/608/50 +f 448/609/51 444/1051/51 445/610/51 +f 449/611/50 763/1052/50 450/612/50 +f 450/612/51 764/1053/51 451/613/51 +f 451/613/50 765/1054/50 449/611/50 +f 765/1054/51 766/1055/51 449/611/51 +f 766/1055/50 767/1056/50 449/611/50 +f 452/614/51 456/618/51 453/615/51 +f 452/614/50 458/620/50 455/617/50 +f 457/619/50 460/1057/50 455/617/50 +f 459/621/51 462/625/51 460/622/51 +f 461/624/50 464/627/50 462/625/50 +f 461/624/50 465/628/50 463/626/50 +f 465/628/51 467/630/51 466/629/51 +f 467/630/50 454/616/50 453/615/50 +f 468/631/53 481/644/53 469/632/53 +f 471/634/53 482/645/53 472/635/53 +f 474/637/52 477/640/52 475/638/52 +f 477/640/53 483/646/53 478/641/53 +f 479/642/53 468/631/53 470/633/53 +f 481/644/53 473/636/53 472/635/53 +f 474/637/52 476/639/52 482/645/52 +f 483/646/52 479/1058/52 480/647/52 +f 484/648/52 768/1059/52 485/649/52 +f 485/649/52 769/1060/52 486/650/52 +f 486/650/53 770/1061/53 484/648/53 +f 770/1061/52 771/1062/52 484/648/52 +f 771/1062/53 772/1063/53 484/648/53 +f 487/651/52 491/655/52 488/652/52 +f 487/651/52 493/657/52 490/654/52 +f 492/656/53 495/1064/53 490/654/53 +f 494/658/52 497/662/52 495/659/52 +f 496/661/53 499/664/53 497/662/53 +f 496/661/53 500/665/53 498/663/53 +f 500/665/52 502/667/52 501/666/52 +f 502/667/53 489/653/53 488/652/53 +f 503/668/55 516/681/55 504/669/55 +f 506/671/55 517/682/55 507/672/55 +f 509/674/55 512/677/55 510/675/55 +f 512/677/55 518/683/55 513/678/55 +f 514/679/55 503/668/55 505/670/55 +f 516/681/55 508/673/55 507/672/55 +f 509/674/55 511/676/55 517/682/55 +f 518/683/56 514/1065/56 515/684/56 +f 519/685/56 773/1066/56 520/686/56 +f 520/686/55 774/1067/55 521/687/55 +f 521/687/55 775/1068/55 519/685/55 +f 775/1068/56 776/1069/56 519/685/56 +f 776/1069/55 777/1070/55 519/685/55 +f 522/688/56 526/692/56 523/689/56 +f 522/688/56 528/694/56 525/691/56 +f 527/693/55 530/1071/55 525/691/55 +f 529/695/56 532/699/56 530/696/56 +f 531/698/55 534/701/55 532/699/55 +f 531/698/55 535/702/55 533/700/55 +f 535/702/56 537/704/56 536/703/56 +f 537/704/55 524/690/55 523/689/55 +f 538/705/58 551/718/58 539/706/58 +f 541/708/58 552/719/58 542/709/58 +f 544/711/58 547/714/58 545/712/58 +f 547/714/58 553/720/58 548/715/58 +f 549/716/58 538/705/58 540/707/58 +f 551/718/58 543/710/58 542/709/58 +f 541/708/58 544/711/58 546/713/58 +f 553/720/57 549/1072/57 550/721/57 +f 554/722/57 778/1073/57 555/723/57 +f 555/723/58 779/1074/58 556/724/58 +f 556/724/58 780/1075/58 781/1076/58 +f 781/1076/58 782/1077/58 556/724/58 +f 782/1077/58 554/722/58 556/724/58 +f 557/725/57 561/729/57 558/726/57 +f 557/725/57 563/731/57 560/728/57 +f 562/730/58 565/1078/58 560/728/58 +f 564/732/57 567/736/57 565/733/57 +f 566/735/58 569/738/58 567/736/58 +f 566/735/58 570/739/58 568/737/58 +f 570/739/57 572/741/57 571/740/57 +f 572/741/58 559/727/58 558/726/58 +f 573/742/60 586/755/60 574/743/60 +f 576/745/60 587/756/60 577/746/60 +f 579/748/61 583/752/61 580/749/61 +f 582/751/60 588/758/60 580/749/60 +f 584/753/60 573/742/60 575/744/60 +f 586/755/60 578/747/60 577/746/60 +f 579/748/61 581/750/61 587/756/61 +f 582/751/61 584/1079/61 585/757/61 +f 589/759/61 783/1080/61 590/760/61 +f 590/760/61 784/1081/61 591/761/61 +f 591/761/60 785/1082/60 589/759/60 +f 785/1082/61 786/1083/61 589/759/61 +f 786/1083/60 787/1084/60 589/759/60 +f 592/762/61 596/766/61 593/763/61 +f 592/762/61 598/768/61 595/765/61 +f 597/767/60 600/1085/60 595/765/60 +f 599/769/61 602/773/61 600/770/61 +f 601/772/60 604/775/60 602/773/60 +f 601/772/61 605/776/61 603/774/61 +f 605/776/61 607/778/61 606/777/61 +f 607/778/60 594/764/60 593/763/60 +f 608/779/62 613/784/62 609/780/62 +f 611/782/138 615/1086/138 610/781/138 +f 612/783/64 611/1087/64 609/780/64 +f 612/785/65 613/784/65 608/779/65 +f 614/787/66 608/779/66 610/781/66 +f 616/789/67 620/793/67 617/790/67 +f 619/792/139 623/1088/139 617/790/139 +f 621/794/69 619/1089/69 620/793/69 +f 621/795/70 616/789/70 618/791/70 +f 622/797/71 618/791/71 617/790/71 +f 624/799/72 629/804/72 625/800/72 +f 627/802/140 631/1090/140 626/801/140 +f 628/803/74 627/1091/74 625/800/74 +f 628/805/75 629/804/75 624/799/75 +f 630/807/76 624/799/76 626/801/76 +f 632/809/77 637/814/77 633/810/77 +f 635/812/141 639/1092/141 634/811/141 +f 636/813/79 635/1093/79 633/810/79 +f 636/815/80 637/814/80 632/809/80 +f 638/817/81 632/809/81 634/811/81 +f 640/819/82 645/824/82 641/820/82 +f 643/822/142 647/1094/142 642/821/142 +f 644/823/84 643/1095/84 641/820/84 +f 644/825/85 645/824/85 640/819/85 +f 646/827/86 640/819/86 642/821/86 +f 648/829/87 652/833/87 649/830/87 +f 651/832/88 655/1096/88 649/830/88 +f 653/834/89 651/1097/89 652/833/89 +f 653/835/90 648/829/90 650/831/90 +f 654/837/91 650/831/91 649/830/91 +f 656/839/92 661/844/92 657/840/92 +f 659/842/143 663/1098/143 658/841/143 +f 660/843/94 659/1099/94 657/840/94 +f 660/845/95 661/844/95 656/839/95 +f 662/847/96 656/839/96 658/841/96 +f 664/849/97 668/853/97 665/850/97 +f 667/852/144 671/1100/144 665/850/144 +f 669/854/99 667/1101/99 668/853/99 +f 669/855/100 664/849/100 666/851/100 +f 670/857/145 666/851/145 665/850/145 +f 672/859/102 677/864/102 673/860/102 +f 675/862/103 679/1102/103 674/861/103 +f 676/863/104 675/1103/104 673/860/104 +f 676/865/105 677/864/105 672/859/105 +f 678/867/146 672/859/146 674/861/146 +f 680/869/107 685/874/107 681/870/107 +f 683/872/108 687/1104/108 682/871/108 +f 684/873/109 683/1105/109 681/870/109 +f 684/875/110 685/874/110 680/869/110 +f 686/877/147 680/869/147 682/871/147 +f 688/879/112 693/884/112 689/880/112 +f 691/882/113 695/1106/113 690/881/113 +f 692/883/114 691/1107/114 689/880/114 +f 692/885/115 693/884/115 688/879/115 +f 694/887/148 688/879/148 690/881/148 +f 696/889/117 701/894/117 697/890/117 +f 699/892/118 703/1108/118 698/891/118 +f 700/893/119 699/1109/119 697/890/119 +f 700/895/120 701/894/120 696/889/120 +f 702/897/121 696/889/121 698/891/121 +f 704/899/122 709/904/122 705/900/122 +f 707/902/123 711/1110/123 706/901/123 +f 708/903/124 707/1111/124 705/900/124 +f 708/905/149 709/904/149 704/899/149 +f 710/907/126 704/899/126 706/901/126 +f 712/909/127 716/913/127 713/910/127 +f 715/912/150 719/1112/150 713/910/150 +f 717/914/129 715/1113/129 716/913/129 +f 717/915/130 712/909/130 714/911/130 +f 718/917/131 714/911/131 713/910/131 +f 720/919/132 725/924/132 721/920/132 +f 723/922/133 727/1114/133 722/921/133 +f 724/923/134 723/1115/134 721/920/134 +f 724/925/135 725/924/135 720/919/135 +f 726/927/136 720/919/136 722/921/136 +f 728/929/23 788/1116/23 729/930/23 +f 731/932/4 789/1117/4 732/933/4 +f 734/935/22 790/1118/22 735/936/22 +f 1363/1119/1 1364/1120/1 1365/1121/1 +f 1366/1122/21 1367/1123/21 1368/1124/21 +f 1367/1123/13 1369/1125/13 1370/1126/13 +f 1371/1127/2 1372/1128/2 1373/1129/2 +f 1374/1130/24 1371/1131/24 1365/1121/24 +f 1371/1132/39 1366/1133/39 1375/1134/39 +f 1376/1135/4 1370/1126/4 1377/1136/4 +f 1378/1137/1 1379/1138/1 1380/1139/1 +f 1379/1138/1 1363/1119/1 1381/1140/1 +f 1378/1137/151 1382/1141/151 1383/1142/151 +f 1367/1123/5 1384/1143/5 1369/1125/5 +f 1367/1123/5 1385/1144/5 1386/1145/5 +f 1380/1139/5 1387/1146/5 1378/1137/5 +f 1378/1137/5 1387/1146/5 1388/1147/5 +f 1369/1148/152 1377/1136/152 1370/1126/152 +f 1389/1149/152 1390/1150/152 1391/1151/152 +f 1391/1151/4 1381/1140/4 1392/1152/4 +f 1393/1153/153 1394/1154/153 1395/1155/153 +f 1396/1156/153 1397/1157/153 1393/1153/153 +f 1394/1154/153 1381/1158/153 1395/1155/153 +f 1398/1159/5 1399/1160/5 1400/1161/5 +f 1401/1162/22 1402/1163/22 1403/1164/22 +f 1404/1165/3 1405/1166/3 1406/1167/3 +f 1368/1168/3 1407/1169/3 1408/1170/3 +f 1372/1171/3 1409/1172/3 1410/1173/3 +f 1373/1174/3 1411/1175/3 1412/1176/3 +f 1365/1177/3 1413/1178/3 1414/1179/3 +f 1415/1180/4 1416/1181/4 1417/1182/4 +f 1394/1183/21 1418/1184/21 1392/1185/21 +f 1397/1186/24 1419/1187/24 1420/1188/24 +f 1397/1186/2 1421/1189/2 1394/1183/2 +f 1420/1188/153 1418/1190/153 1421/1189/153 +f 1422/1191/13 1423/1192/13 1424/1193/13 +f 1425/1194/1 1426/1195/1 1427/1196/1 +f 1428/1197/154 1429/1198/154 1430/1199/154 +f 1430/1199/155 1431/1200/155 1428/1197/155 +f 1425/1201/156 1432/1202/156 1430/1199/156 +f 1423/1203/157 1431/1200/157 1424/1204/157 +f 1374/1205/2 1433/1206/2 1366/1133/2 +f 1434/1207/5 1435/1208/5 1436/1209/5 +f 1437/1210/2 1438/1211/2 1439/1212/2 +f 1440/1213/4 1436/1209/4 1441/1214/4 +f 1439/1215/13 1434/1207/13 1440/1216/13 +f 1441/1217/1 1435/1208/1 1437/1218/1 +f 1442/1219/4 1443/1220/4 1444/1221/4 +f 1445/1222/1 1446/1223/1 1447/1224/1 +f 1448/1225/5 1449/1226/5 1443/1220/5 +f 1442/1219/13 1450/1227/13 1448/1225/13 +f 1443/1220/1 1451/1228/1 1444/1221/1 +f 1452/1229/41 1453/1230/41 1445/1222/41 +f 1446/1231/5 1454/1232/5 1447/1233/5 +f 1455/1234/13 1454/1235/13 1456/1236/13 +f 1453/1230/38 1457/1237/38 1445/1222/38 +f 1458/1238/40 1446/1231/40 1457/1239/40 +f 1452/1229/39 1454/1240/39 1455/1234/39 +f 1459/1241/1 1460/1242/1 1461/1243/1 +f 1462/1244/158 1463/1245/158 1464/1246/158 +f 1465/1247/159 1466/1248/159 1460/1242/159 +f 1467/1249/4 1468/1250/4 1395/1155/4 +f 1469/1251/22 1470/1252/22 1471/1253/22 +f 1399/1254/23 1472/1255/23 1400/1256/23 +f 1395/1155/22 1473/1257/22 1474/1258/22 +f 1469/1251/22 1473/1257/22 1381/1140/22 +f 1395/1155/22 1471/1253/22 1470/1252/22 +f 1403/1259/24 1475/1260/24 1476/1261/24 +f 1477/1262/23 1404/1263/23 1396/1264/23 +f 1396/1265/23 1478/1266/23 1477/1262/23 +f 1479/1267/23 1478/1266/23 1393/1153/23 +f 1477/1268/160 1480/1269/160 1481/1270/160 +f 1469/1271/23 1482/1272/23 1473/1273/23 +f 1483/1274/161 1484/1275/161 1470/1276/161 +f 1482/1272/22 1485/1277/22 1486/1278/22 +f 1487/1279/5 1401/1280/5 1403/1281/5 +f 1481/1282/23 1488/1283/23 1398/1159/23 +f 1471/1284/162 1489/1285/162 1469/1286/162 +f 1401/1287/23 1490/1288/23 1483/1289/23 +f 1474/1290/163 1482/1291/163 1486/1278/163 +f 1474/1290/24 1485/1277/24 1471/1284/24 +f 1478/1292/21 1491/1293/21 1399/1294/21 +f 1400/1295/22 1492/1296/22 1477/1297/22 +f 1490/1288/22 1487/1279/22 1484/1275/22 +f 1484/1275/24 1487/1279/24 1403/1298/24 +f 1417/1299/1 1493/1300/1 1494/1301/1 +f 1405/1166/3 1495/1302/3 1496/1303/3 +f 1497/1304/3 1402/1305/3 1498/1306/3 +f 1495/1302/3 1499/1307/3 1479/1308/3 +f 1496/1303/3 1500/1309/3 1501/1310/3 +f 1451/1311/2 1450/1312/2 1502/1313/2 +f 1503/1314/1 1504/1315/1 1417/1316/1 +f 1395/1155/4 1505/1317/4 1393/1153/4 +f 1479/1267/4 1505/1317/4 1494/1318/4 +f 1506/1319/23 1498/1320/23 1401/1321/23 +f 1503/1322/4 1507/1323/4 1504/1324/4 +f 1417/1325/5 1507/1326/5 1415/1327/5 +f 1468/1328/3 1503/1329/3 1505/1330/3 +f 1415/1331/13 1507/1332/13 1508/1333/13 +f 1509/1334/13 1500/1335/13 1415/1336/13 +f 1491/1337/21 1495/1338/21 1399/1339/21 +f 1400/1340/22 1510/1341/22 1492/1342/22 +f 1491/1343/23 1479/1267/23 1499/1344/23 +f 1494/1318/4 1493/1345/4 1479/1267/4 +f 1509/1346/4 1467/1249/4 1511/1347/4 +f 1476/1348/22 1475/1349/22 1467/1249/22 +f 1492/1350/23 1510/1351/23 1404/1263/23 +f 1506/1352/22 1512/1353/22 1513/1354/22 +f 1467/1355/3 1402/1305/3 1500/1309/3 +f 1498/1306/3 1512/1356/3 1497/1304/3 +f 1404/1165/3 1472/1357/3 1405/1166/3 +f 1514/1358/2 1515/1359/2 1516/1360/2 +f 1517/1361/4 1518/1362/4 1519/1363/4 +f 1520/1364/1 1521/1365/1 1522/1366/1 +f 1523/1367/13 1524/1368/13 1525/1369/13 +f 1525/1369/23 1526/1370/23 1517/1361/23 +f 1527/1371/21 1515/1359/21 1528/1372/21 +f 1516/1373/24 1529/1374/24 1514/1375/24 +f 1518/1362/22 1522/1366/22 1519/1363/22 +f 1525/1376/3 1530/1377/3 1531/1378/3 +f 1517/1379/3 1532/1380/3 1533/1381/3 +f 1519/1382/3 1534/1383/3 1535/1384/3 +f 1522/1385/3 1536/1386/3 1537/1387/3 +f 1521/1388/3 1538/1389/3 1539/1390/3 +f 1516/1391/3 1540/1392/3 1541/1393/3 +f 1515/1394/3 1542/1395/3 1543/1396/3 +f 1523/1397/3 1544/1398/3 1545/1399/3 +f 1546/1400/3 1547/1401/3 1548/1402/3 +f 1549/1403/5 1550/1404/5 1526/1405/5 +f 1551/1406/5 1552/1407/5 1524/1408/5 +f 1553/1409/5 1554/1410/5 1527/1411/5 +f 1555/1412/5 1556/1413/5 1528/1414/5 +f 1557/1415/5 1558/1416/5 1514/1417/5 +f 1559/1418/5 1560/1419/5 1529/1420/5 +f 1561/1421/5 1562/1422/5 1520/1423/5 +f 1563/1424/5 1564/1425/5 1518/1426/5 +f 1365/1121/1 1512/1353/1 1363/1119/1 +f 1512/1353/1 1381/1140/1 1363/1119/1 +f 1372/1128/21 1375/1427/21 1368/1124/21 +f 1375/1427/21 1366/1122/21 1368/1124/21 +f 1433/1428/21 1385/1429/21 1367/1123/21 +f 1366/1122/21 1433/1428/21 1367/1123/21 +f 1370/1126/13 1396/1264/13 1367/1123/13 +f 1396/1264/13 1404/1263/13 1368/1124/13 +f 1367/1123/13 1396/1264/13 1368/1124/13 +f 1371/1127/2 1375/1427/2 1372/1128/2 +f 1373/1430/24 1365/1121/24 1371/1131/24 +f 1365/1121/164 1364/1120/164 1374/1130/164 +f 1364/1120/165 1565/1431/165 1374/1130/165 +f 1371/1132/39 1374/1205/39 1366/1133/39 +f 1376/1135/4 1396/1264/4 1370/1126/4 +f 1378/1137/1 1383/1142/1 1379/1138/1 +f 1381/1140/1 1390/1150/1 1379/1138/1 +f 1390/1150/1 1380/1139/1 1379/1138/1 +f 1378/1137/151 1388/1432/151 1382/1141/151 +f 1367/1123/5 1386/1145/5 1384/1143/5 +f 1380/1139/5 1389/1433/5 1387/1146/5 +f 1369/1148/152 1384/1434/152 1377/1136/152 +f 1389/1149/152 1380/1435/152 1390/1150/152 +f 1391/1151/4 1390/1150/4 1381/1140/4 +f 1393/1153/153 1397/1157/153 1394/1154/153 +f 1396/1156/153 1376/1436/153 1397/1157/153 +f 1394/1154/153 1392/1437/153 1381/1158/153 +f 1398/1159/5 1488/1283/5 1399/1160/5 +f 1401/1162/22 1498/1438/22 1402/1163/22 +f 1407/1169/3 1368/1168/3 1406/1167/3 +f 1368/1168/3 1404/1165/3 1406/1167/3 +f 1409/1172/3 1372/1171/3 1408/1170/3 +f 1372/1171/3 1368/1168/3 1408/1170/3 +f 1411/1175/3 1373/1174/3 1410/1173/3 +f 1373/1174/3 1372/1171/3 1410/1173/3 +f 1413/1178/3 1365/1177/3 1412/1176/3 +f 1365/1177/3 1373/1174/3 1412/1176/3 +f 1497/1304/3 1512/1356/3 1414/1179/3 +f 1512/1356/3 1365/1177/3 1414/1179/3 +f 1415/1180/4 1500/1439/4 1416/1181/4 +f 1394/1183/21 1421/1189/21 1418/1184/21 +f 1397/1186/24 1376/1440/24 1419/1187/24 +f 1397/1186/2 1420/1188/2 1421/1189/2 +f 1420/1188/153 1419/1441/153 1418/1190/153 +f 1422/1191/13 1566/1442/13 1423/1192/13 +f 1425/1194/1 1429/1198/1 1426/1195/1 +f 1428/1197/154 1423/1192/154 1566/1442/154 +f 1566/1442/154 1429/1198/154 1428/1197/154 +f 1429/1198/154 1425/1194/154 1430/1199/154 +f 1430/1199/155 1432/1202/155 1431/1200/155 +f 1425/1201/156 1427/1443/156 1432/1202/156 +f 1423/1203/157 1428/1197/157 1431/1200/157 +f 1374/1205/2 1565/1444/2 1433/1206/2 +f 1434/1207/5 1438/1211/5 1435/1208/5 +f 1437/1210/2 1435/1208/2 1438/1211/2 +f 1440/1213/4 1434/1207/4 1436/1209/4 +f 1439/1215/13 1438/1211/13 1434/1207/13 +f 1441/1217/1 1436/1209/1 1435/1208/1 +f 1442/1219/4 1448/1225/4 1443/1220/4 +f 1447/1224/1 1452/1229/1 1445/1222/1 +f 1445/1222/1 1457/1445/1 1446/1223/1 +f 1448/1225/5 1450/1446/5 1449/1226/5 +f 1442/1219/13 1502/1447/13 1450/1227/13 +f 1443/1220/1 1449/1448/1 1451/1228/1 +f 1452/1229/41 1455/1234/41 1453/1230/41 +f 1446/1231/5 1456/1236/5 1454/1232/5 +f 1458/1238/13 1453/1230/13 1456/1236/13 +f 1453/1230/13 1455/1234/13 1456/1236/13 +f 1453/1230/38 1458/1449/38 1457/1237/38 +f 1458/1238/40 1456/1236/40 1446/1231/40 +f 1452/1229/39 1447/1450/39 1454/1240/39 +f 1459/1241/1 1465/1451/1 1460/1242/1 +f 1462/1244/158 1567/1452/158 1463/1245/158 +f 1465/1247/159 1568/1453/159 1466/1248/159 +f 1467/1249/4 1509/1346/4 1468/1250/4 +f 1469/1251/22 1483/1454/22 1470/1252/22 +f 1399/1254/23 1495/1455/23 1472/1255/23 +f 1395/1155/22 1381/1140/22 1473/1257/22 +f 1381/1140/22 1512/1353/22 1469/1251/22 +f 1512/1353/22 1506/1352/22 1483/1454/22 +f 1483/1454/22 1469/1251/22 1512/1353/22 +f 1476/1348/22 1467/1249/22 1470/1252/22 +f 1467/1249/22 1395/1155/22 1470/1252/22 +f 1395/1155/22 1474/1258/22 1471/1253/22 +f 1403/1259/24 1402/1456/24 1475/1260/24 +f 1477/1262/23 1492/1350/23 1404/1263/23 +f 1396/1265/23 1393/1153/23 1478/1266/23 +f 1479/1267/23 1491/1343/23 1478/1266/23 +f 1477/1268/160 1478/1292/160 1480/1269/160 +f 1469/1271/23 1489/1457/23 1482/1272/23 +f 1483/1274/161 1490/1458/161 1484/1275/161 +f 1482/1272/22 1489/1457/22 1485/1277/22 +f 1487/1279/5 1569/1459/5 1401/1280/5 +f 1481/1282/23 1480/1269/23 1488/1283/23 +f 1471/1284/162 1485/1277/162 1489/1285/162 +f 1483/1289/23 1506/1460/23 1401/1287/23 +f 1401/1287/23 1569/1459/23 1490/1288/23 +f 1474/1290/163 1473/1461/163 1482/1291/163 +f 1474/1290/24 1486/1278/24 1485/1277/24 +f 1399/1294/21 1488/1283/21 1480/1269/21 +f 1480/1269/21 1478/1292/21 1399/1294/21 +f 1477/1297/22 1481/1282/22 1400/1295/22 +f 1481/1282/22 1398/1159/22 1400/1295/22 +f 1490/1288/22 1569/1459/22 1487/1279/22 +f 1476/1462/24 1470/1276/24 1403/1298/24 +f 1470/1276/24 1484/1275/24 1403/1298/24 +f 1417/1299/1 1416/1463/1 1493/1300/1 +f 1405/1166/3 1472/1357/3 1495/1302/3 +f 1497/1304/3 1501/1310/3 1402/1305/3 +f 1493/1464/3 1416/1465/3 1479/1308/3 +f 1416/1465/3 1496/1303/3 1495/1302/3 +f 1479/1308/3 1416/1465/3 1495/1302/3 +f 1496/1303/3 1416/1465/3 1500/1309/3 +f 1451/1311/2 1449/1466/2 1450/1312/2 +f 1417/1316/1 1494/1467/1 1505/1468/1 +f 1505/1468/1 1503/1314/1 1417/1316/1 +f 1395/1155/4 1468/1250/4 1505/1317/4 +f 1479/1267/4 1393/1153/4 1505/1317/4 +f 1506/1319/23 1513/1469/23 1498/1320/23 +f 1503/1322/4 1508/1470/4 1507/1323/4 +f 1417/1325/5 1504/1471/5 1507/1326/5 +f 1468/1328/3 1508/1472/3 1503/1329/3 +f 1508/1333/13 1468/1473/13 1415/1331/13 +f 1468/1473/13 1509/1474/13 1415/1331/13 +f 1509/1334/13 1511/1475/13 1500/1335/13 +f 1491/1337/21 1499/1476/21 1495/1338/21 +f 1400/1340/22 1472/1477/22 1510/1341/22 +f 1501/1310/3 1500/1309/3 1402/1305/3 +f 1500/1309/3 1511/1478/3 1467/1355/3 +f 1467/1355/3 1475/1479/3 1402/1305/3 +f 1498/1306/3 1513/1480/3 1512/1356/3 +f 1404/1165/3 1510/1481/3 1472/1357/3 +f 1514/1358/2 1528/1372/2 1515/1359/2 +f 1517/1361/4 1526/1370/4 1518/1362/4 +f 1520/1364/1 1529/1374/1 1521/1365/1 +f 1523/1367/13 1527/1371/13 1524/1368/13 +f 1525/1369/23 1524/1368/23 1526/1370/23 +f 1527/1371/21 1523/1367/21 1515/1359/21 +f 1516/1373/24 1521/1365/24 1529/1374/24 +f 1518/1362/22 1520/1364/22 1522/1366/22 +f 1544/1398/3 1523/1397/3 1531/1378/3 +f 1523/1397/3 1525/1376/3 1531/1378/3 +f 1530/1377/3 1525/1376/3 1533/1381/3 +f 1525/1376/3 1517/1379/3 1533/1381/3 +f 1532/1380/3 1517/1379/3 1535/1384/3 +f 1517/1379/3 1519/1382/3 1535/1384/3 +f 1534/1383/3 1519/1382/3 1537/1387/3 +f 1519/1382/3 1522/1385/3 1537/1387/3 +f 1536/1386/3 1522/1385/3 1539/1390/3 +f 1522/1385/3 1521/1388/3 1539/1390/3 +f 1538/1389/3 1521/1388/3 1541/1393/3 +f 1521/1388/3 1516/1391/3 1541/1393/3 +f 1540/1392/3 1516/1391/3 1543/1396/3 +f 1516/1391/3 1515/1394/3 1543/1396/3 +f 1542/1395/3 1515/1394/3 1545/1399/3 +f 1515/1394/3 1523/1397/3 1545/1399/3 +f 1548/1402/3 1570/1482/3 1571/1483/3 +f 1571/1483/3 1572/1484/3 1573/1485/3 +f 1573/1485/3 1574/1486/3 1575/1487/3 +f 1575/1487/3 1576/1488/3 1546/1400/3 +f 1546/1400/3 1577/1489/3 1578/1490/3 +f 1578/1490/3 1579/1491/3 1547/1401/3 +f 1547/1401/3 1580/1492/3 1581/1493/3 +f 1581/1493/3 1582/1494/3 1548/1402/3 +f 1548/1402/3 1571/1483/3 1546/1400/3 +f 1571/1483/3 1573/1485/3 1546/1400/3 +f 1573/1485/3 1575/1487/3 1546/1400/3 +f 1546/1400/3 1578/1490/3 1547/1401/3 +f 1547/1401/3 1581/1493/3 1548/1402/3 +f 1526/1405/5 1524/1408/5 1549/1403/5 +f 1524/1408/5 1552/1407/5 1549/1403/5 +f 1524/1408/5 1527/1411/5 1551/1406/5 +f 1527/1411/5 1554/1410/5 1551/1406/5 +f 1527/1411/5 1528/1414/5 1553/1409/5 +f 1528/1414/5 1556/1413/5 1553/1409/5 +f 1528/1414/5 1514/1417/5 1555/1412/5 +f 1514/1417/5 1558/1416/5 1555/1412/5 +f 1514/1417/5 1529/1420/5 1557/1415/5 +f 1529/1420/5 1560/1419/5 1557/1415/5 +f 1529/1420/5 1520/1423/5 1559/1418/5 +f 1520/1423/5 1562/1422/5 1559/1418/5 +f 1520/1423/5 1518/1426/5 1561/1421/5 +f 1518/1426/5 1564/1425/5 1561/1421/5 +f 1518/1426/5 1526/1405/5 1563/1424/5 +f 1526/1405/5 1550/1404/5 1563/1424/5 +s 1 +f 791/1495/166 792/1496/167 793/1497/168 +f 794/1498/19 795/1499/169 796/1500/170 +f 797/1501/171 798/1502/172 799/1503/173 +f 800/1504/174 801/1505/175 797/1501/171 +f 802/1506/17 793/1497/168 803/1507/176 +f 804/1508/177 795/1499/169 792/1496/167 +f 794/1498/19 798/1502/172 805/1509/178 +f 802/1510/17 806/1511/179 800/1504/174 +f 798/1502/172 807/1512/180 808/1513/181 +f 805/1509/178 809/1514/182 795/1499/169 +f 792/1496/167 810/1515/183 793/1497/168 +f 803/1516/176 811/1517/184 806/1511/179 +f 805/1509/178 808/1513/181 812/1518/185 +f 795/1499/169 813/1519/186 792/1496/167 +f 803/1507/176 810/1515/183 814/1520/14 +f 801/1505/175 811/1517/184 807/1512/180 +f 814/1520/14 815/1521/187 816/1522/5 +f 807/1512/180 817/1523/188 818/1524/189 +f 807/1512/180 819/1525/190 808/1513/181 +f 812/1518/185 820/1526/191 809/1514/182 +f 813/1519/186 815/1521/187 810/1515/183 +f 814/1527/14 817/1523/188 811/1517/184 +f 812/1518/185 819/1525/190 821/1528/3 +f 813/1519/186 820/1526/191 822/1529/192 +f 819/1525/190 823/1530/193 821/1528/3 +f 822/1529/192 824/1531/194 825/1532/195 +f 816/1522/5 826/1533/196 827/1534/197 +f 817/1523/188 828/1535/198 818/1524/189 +f 818/1524/189 829/1536/199 819/1525/190 +f 820/1526/191 823/1530/193 824/1531/194 +f 815/1521/187 825/1532/195 826/1533/196 +f 816/1537/5 830/1538/200 817/1523/188 +f 831/1539/201 46/74/202 832/1540/202 +f 833/1541/203 48/76/204 834/1542/204 +f 835/1543/205 42/70/206 50/78/205 +f 836/1544/207 40/68/208 837/1545/208 +f 831/1539/201 48/942/204 52/80/201 +f 833/1541/203 50/78/205 37/65/203 +f 837/1545/208 42/70/206 838/1546/206 +f 832/1540/202 43/71/207 836/1544/207 +f 54/1547/206 60/89/205 59/88/206 +f 45/73/207 56/85/202 58/87/207 +f 54/1547/206 64/948/208 738/1548/208 +f 47/75/201 56/85/202 44/72/202 +f 55/1549/207 64/93/208 66/96/207 +f 49/81/204 62/91/201 47/75/201 +f 55/1549/207 68/98/202 739/1550/202 +f 39/67/209 61/94/204 49/77/204 +f 51/79/208 58/87/207 71/101/208 +f 53/1551/203 60/89/205 737/1552/205 +f 51/79/208 69/99/206 41/69/206 +f 53/1551/203 70/100/204 57/86/203 +f 38/66/205 69/99/206 65/95/205 +f 740/1553/201 70/100/204 741/1554/204 +f 38/66/205 63/92/209 39/67/209 +f 740/1553/201 68/98/202 67/97/201 +f 839/1555/210 82/114/211 840/1556/211 +f 841/1557/202 88/120/212 842/1558/212 +f 843/1559/213 93/127/214 844/1560/214 +f 845/1561/205 96/130/215 846/1562/215 +f 840/1556/211 87/119/202 841/1557/202 +f 842/1558/212 91/124/213 843/1563/213 +f 844/1560/214 95/129/205 845/1561/205 +f 846/1562/215 80/112/210 839/1555/210 +f 98/951/210 103/962/211 81/113/211 +f 85/1564/213 111/157/212 742/1565/212 +f 84/1566/214 101/136/213 85/1567/213 +f 81/957/211 747/963/202 86/118/202 +f 83/1568/205 99/139/214 84/1569/214 +f 86/121/202 104/140/212 89/122/212 +f 746/1570/215 102/141/205 83/1571/205 +f 89/958/212 106/143/213 90/123/213 +f 97/961/215 100/969/210 98/133/210 +f 742/1572/212 110/154/202 743/1573/202 +f 94/131/205 113/968/215 97/132/215 +f 743/1574/202 109/151/211 744/1575/211 +f 92/960/214 112/967/205 94/128/205 +f 744/1576/211 107/147/210 745/1577/210 +f 90/959/213 108/146/214 92/126/214 +f 745/1578/210 105/144/215 746/1579/215 +f 847/1580/216 848/1581/217 849/1582/218 +f 850/1583/219 851/1584/220 852/1585/221 +f 853/1586/222 854/1587/223 855/1588/224 +f 856/1589/225 857/1590/226 858/1591/227 +f 857/1590/226 853/1586/222 855/1588/224 +f 859/1592/228 856/1589/225 858/1591/227 +f 860/1593/229 861/1594/230 853/1586/222 +f 862/1595/231 863/1596/232 856/1589/225 +f 853/1586/222 864/1597/233 865/1598/234 +f 863/1596/232 860/1593/229 856/1589/225 +f 866/1599/235 867/1600/223 868/1601/224 +f 869/1602/236 870/1603/226 871/1604/227 +f 870/1603/226 866/1599/235 868/1601/224 +f 872/1605/231 871/1604/227 873/1606/237 +f 874/1607/229 875/1608/230 866/1599/235 +f 872/1605/231 876/1609/232 869/1602/236 +f 875/1608/230 877/1610/234 866/1599/235 +f 876/1609/232 874/1607/229 869/1602/236 +f 878/1611/222 879/1612/223 880/1613/224 +f 881/1614/236 882/1615/226 883/1616/227 +f 882/1615/226 878/1611/222 880/1613/224 +f 884/1617/231 883/1616/227 885/1618/228 +f 886/1619/229 887/1620/230 878/1611/222 +f 888/1621/238 881/1614/236 884/1617/231 +f 878/1611/222 889/1622/233 890/1623/234 +f 891/1624/232 886/1619/229 881/1614/236 +f 854/1587/223 892/1625/4 855/1588/224 +f 867/1600/223 893/1626/4 868/1601/224 +f 855/1588/224 894/1627/22 857/1590/226 +f 857/1590/226 895/1628/1 858/1591/227 +f 879/1612/223 896/1629/4 880/1613/224 +f 868/1601/224 897/1630/22 870/1603/226 +f 858/1591/227 898/1631/214 859/1592/228 +f 870/1603/226 899/1632/1 871/1604/227 +f 880/1613/224 900/1633/22 882/1615/226 +f 882/1615/226 901/1634/1 883/1616/227 +f 871/1604/227 902/1635/214 873/1606/237 +f 883/1616/227 903/1636/214 885/1618/228 +f 847/1580/216 851/1584/220 904/1637/239 +f 905/1638/240 848/1581/217 906/1639/241 +f 904/1637/239 907/1640/242 908/1641/243 +f 906/1639/241 909/1642/244 910/1643/245 +f 851/1584/220 911/1644/246 907/1640/242 +f 904/1637/239 909/1642/244 848/1581/217 +f 912/1645/219 913/1646/247 914/1647/221 +f 915/1648/216 916/1649/248 917/1650/218 +f 915/1648/216 913/1646/247 918/1651/239 +f 917/1650/218 919/1652/241 920/1653/249 +f 918/1651/239 921/1654/242 922/1655/243 +f 919/1652/241 923/1656/244 924/1657/245 +f 925/1658/250 921/1654/242 913/1646/247 +f 918/1651/239 923/1656/244 916/1649/248 +f 926/1659/219 927/1660/220 928/1661/221 +f 929/1662/216 930/1663/248 931/1664/218 +f 929/1662/216 927/1660/220 932/1665/239 +f 931/1664/218 933/1666/241 934/1667/240 +f 932/1665/239 935/1668/242 936/1669/243 +f 930/1663/248 937/1670/245 933/1666/241 +f 927/1660/220 938/1671/246 935/1668/242 +f 932/1665/239 939/1672/244 930/1663/248 +f 940/1673/4 850/1583/219 852/1585/221 +f 941/1674/4 912/1645/219 914/1647/221 +f 942/1675/23 852/1585/221 847/1580/216 +f 943/1676/13 847/1580/216 849/1582/218 +f 944/1677/4 926/1659/219 928/1661/221 +f 945/1678/23 914/1647/221 915/1648/216 +f 946/1679/202 849/1582/218 905/1638/240 +f 947/1680/13 915/1648/216 917/1650/218 +f 948/1681/23 928/1661/221 929/1662/216 +f 949/1682/13 929/1662/216 931/1664/218 +f 950/1683/202 917/1650/218 920/1653/249 +f 951/1684/202 931/1664/218 934/1667/240 +f 952/1685/251 953/1686/252 954/1687/253 +f 955/1688/15 956/1689/254 957/1690/255 +f 958/1691/256 959/1692/257 960/1693/258 +f 961/1694/259 962/1695/260 958/1691/256 +f 963/1696/16 954/1687/253 964/1697/261 +f 957/1690/255 953/1686/252 965/1698/262 +f 955/1688/15 959/1692/257 966/1699/263 +f 963/1700/16 967/1701/264 961/1694/259 +f 959/1692/257 968/1702/265 969/1703/266 +f 966/1699/263 970/1704/267 956/1689/254 +f 953/1686/252 971/1705/268 954/1687/253 +f 964/1706/261 972/1707/269 967/1701/264 +f 966/1699/263 969/1703/266 973/1708/18 +f 956/1689/254 974/1709/270 953/1686/252 +f 964/1697/261 971/1705/268 975/1710/20 +f 962/1695/260 972/1707/269 968/1702/265 +f 975/1710/20 976/1711/188 977/1712/5 +f 968/1702/265 978/1713/187 979/1714/192 +f 968/1702/265 980/1715/271 969/1703/266 +f 973/1708/18 981/1716/272 970/1704/267 +f 974/1709/270 976/1711/188 971/1705/268 +f 975/1717/20 978/1713/187 972/1707/269 +f 973/1708/18 980/1715/271 982/1718/3 +f 974/1709/270 981/1716/272 983/1719/189 +f 980/1715/271 984/1720/273 982/1718/3 +f 983/1719/189 985/1721/274 986/1722/275 +f 977/1712/5 987/1723/276 988/1724/277 +f 978/1713/187 989/1725/278 979/1714/192 +f 979/1714/192 990/1726/279 980/1715/271 +f 981/1716/272 984/1720/273 985/1721/274 +f 976/1711/188 986/1722/275 987/1723/276 +f 977/1727/5 991/1728/280 978/1713/187 +f 992/1729/281 372/529/205 993/1730/205 +f 994/1731/282 374/531/283 995/1732/283 +f 996/1733/202 368/525/284 376/533/202 +f 997/1734/285 366/523/286 998/1735/286 +f 992/1729/281 374/1037/283 378/535/281 +f 994/1731/282 376/533/202 363/520/282 +f 998/1735/286 368/525/284 999/1736/284 +f 993/1730/205 369/526/285 997/1734/285 +f 380/1737/284 386/544/202 385/543/284 +f 371/528/285 382/540/205 384/542/285 +f 380/1737/284 390/1043/286 754/1738/286 +f 373/530/281 382/540/205 370/527/205 +f 381/1739/285 390/548/286 392/551/285 +f 375/536/283 388/546/281 373/530/281 +f 381/1739/285 391/550/205 755/1740/205 +f 365/522/287 387/549/283 375/532/283 +f 377/534/286 384/542/285 397/556/286 +f 379/1741/282 386/544/202 753/1742/202 +f 377/534/286 395/554/284 367/524/284 +f 379/1741/282 396/555/283 383/541/282 +f 364/521/202 395/554/284 393/552/202 +f 756/1743/281 396/555/283 757/1744/283 +f 364/521/202 389/547/287 365/522/287 +f 756/1743/281 391/550/205 394/553/281 +f 1000/1745/288 1001/1746/289 1002/1747/290 +f 1003/1748/291 1004/1749/292 1005/1750/293 +f 1006/1751/294 1007/1752/295 1008/1753/296 +f 1009/1754/297 1010/1755/298 1006/1751/294 +f 1011/1756/299 1002/1747/290 1012/1757/300 +f 1005/1750/293 1001/1746/289 1013/1758/301 +f 1003/1748/291 1007/1752/295 1014/1759/302 +f 1011/1760/299 1015/1761/303 1009/1754/297 +f 1007/1752/295 1016/1762/304 1017/1763/305 +f 1014/1759/302 1018/1764/306 1004/1749/292 +f 1001/1746/289 1019/1765/307 1002/1747/290 +f 1012/1766/300 1020/1767/308 1015/1761/303 +f 1014/1759/302 1017/1763/305 1021/1768/309 +f 1004/1749/292 1022/1769/310 1001/1746/289 +f 1012/1757/300 1019/1765/307 1023/1770/311 +f 1010/1755/298 1020/1767/308 1016/1762/304 +f 1023/1770/311 1024/1771/312 1025/1772/5 +f 1016/1762/304 1026/1773/313 1027/1774/314 +f 1016/1762/304 1028/1775/315 1017/1763/305 +f 1021/1768/309 1029/1776/316 1018/1764/306 +f 1022/1769/310 1024/1771/312 1019/1765/307 +f 1023/1777/311 1026/1773/313 1020/1767/308 +f 1021/1768/309 1028/1775/315 1030/1778/3 +f 1022/1769/310 1029/1776/316 1031/1779/317 +f 1028/1775/315 1032/1780/318 1030/1778/3 +f 1031/1779/317 1033/1781/319 1034/1782/320 +f 1025/1772/5 1035/1783/321 1036/1784/322 +f 1026/1773/313 1037/1785/323 1027/1774/314 +f 1027/1774/314 1038/1786/324 1028/1775/315 +f 1029/1776/316 1032/1780/318 1033/1781/319 +f 1024/1771/312 1034/1782/320 1035/1783/321 +f 1025/1787/5 1039/1788/325 1026/1773/313 +f 1040/1789/326 407/566/213 1041/1790/213 +f 1042/1791/327 409/568/328 1043/1792/328 +f 1044/1793/210 403/562/329 411/570/210 +f 1045/1794/330 401/560/331 1046/1795/331 +f 1040/1789/326 409/1044/328 413/572/326 +f 1042/1791/327 411/570/210 398/557/327 +f 1047/1796/329 401/560/331 403/562/329 +f 1041/1790/213 404/563/330 1045/1794/330 +f 415/1797/329 421/581/210 420/580/329 +f 406/565/330 417/577/213 419/579/330 +f 415/1797/329 425/1050/331 759/1798/331 +f 408/567/326 417/577/213 405/564/213 +f 416/1799/330 425/585/331 427/588/330 +f 410/573/328 423/583/326 408/567/326 +f 416/1799/330 429/590/213 760/1800/213 +f 400/559/332 422/586/328 410/569/328 +f 412/571/331 419/579/330 432/593/331 +f 414/1801/327 421/581/210 758/1802/210 +f 412/571/331 430/591/333 402/561/329 +f 414/1801/327 431/592/328 418/578/327 +f 402/561/329 426/587/210 399/558/210 +f 761/1803/326 431/592/328 762/1804/328 +f 399/558/210 424/584/332 400/559/332 +f 761/1803/326 429/590/213 428/589/326 +f 1048/1805/334 1049/1806/335 1050/1807/336 +f 1051/1808/337 1052/1809/338 1053/1810/339 +f 1054/1811/340 1055/1812/341 1056/1813/342 +f 1057/1814/343 1058/1815/344 1054/1811/340 +f 1059/1816/345 1050/1807/336 1060/1817/346 +f 1061/1818/347 1052/1809/338 1049/1806/335 +f 1051/1808/337 1055/1812/341 1062/1819/348 +f 1059/1820/345 1063/1821/349 1057/1814/343 +f 1055/1812/341 1064/1822/350 1065/1823/351 +f 1062/1819/348 1066/1824/352 1052/1809/338 +f 1049/1806/335 1067/1825/353 1050/1807/336 +f 1060/1826/346 1068/1827/354 1063/1821/349 +f 1062/1819/348 1065/1823/351 1069/1828/355 +f 1052/1809/338 1070/1829/356 1049/1806/335 +f 1060/1817/346 1067/1825/353 1071/1830/357 +f 1058/1815/344 1068/1827/354 1064/1822/350 +f 1071/1830/357 1072/1831/313 1073/1832/5 +f 1064/1822/350 1074/1833/312 1075/1834/317 +f 1064/1822/350 1076/1835/358 1065/1823/351 +f 1069/1828/355 1077/1836/359 1066/1824/352 +f 1070/1829/356 1072/1831/313 1067/1825/353 +f 1071/1837/357 1074/1833/312 1068/1827/354 +f 1069/1828/355 1076/1835/358 1078/1838/3 +f 1070/1829/356 1077/1836/359 1079/1839/314 +f 1076/1835/358 1080/1840/360 1078/1838/3 +f 1079/1839/314 1081/1841/361 1082/1842/362 +f 1073/1832/5 1083/1843/363 1084/1844/364 +f 1074/1833/312 1085/1845/365 1075/1834/317 +f 1075/1834/317 1086/1846/366 1076/1835/358 +f 1077/1836/359 1080/1840/360 1081/1841/361 +f 1072/1831/313 1082/1842/362 1083/1843/363 +f 1073/1847/5 1087/1848/367 1074/1833/312 +f 1088/1849/368 442/603/210 1089/1850/210 +f 1090/1851/369 444/605/370 1091/1852/370 +f 1092/1853/213 438/599/371 446/607/213 +f 1093/1854/372 439/600/373 436/597/372 +f 1088/1849/368 444/1051/370 448/609/368 +f 1090/1851/369 446/607/213 433/594/369 +f 1093/1854/372 438/599/371 1094/1855/371 +f 1089/1850/210 439/600/373 1095/1856/373 +f 450/1857/371 456/618/213 455/617/371 +f 441/602/373 452/614/210 454/616/373 +f 450/1857/371 460/1057/372 764/1858/372 +f 443/604/368 452/614/210 440/601/210 +f 451/1859/373 460/622/372 462/625/373 +f 445/610/370 458/620/368 443/604/368 +f 451/1859/373 464/627/210 765/1860/210 +f 435/596/374 457/623/370 445/606/370 +f 447/608/372 454/616/373 467/630/372 +f 449/1861/369 456/618/213 763/1862/213 +f 447/608/372 465/628/375 437/598/375 +f 449/1861/369 466/629/370 453/615/369 +f 437/598/375 461/624/213 434/595/213 +f 766/1863/368 466/629/370 767/1864/370 +f 434/595/213 459/621/374 435/596/374 +f 766/1863/368 464/627/210 463/626/368 +f 1096/1865/376 1097/1866/377 1098/1867/378 +f 1099/1868/379 1100/1869/380 1101/1870/381 +f 1102/1871/382 1103/1872/383 1104/1873/384 +f 1105/1874/385 1106/1875/386 1102/1871/382 +f 1107/1876/387 1098/1867/378 1108/1877/388 +f 1109/1878/389 1100/1869/380 1097/1866/377 +f 1099/1868/379 1103/1872/383 1110/1879/390 +f 1107/1880/387 1111/1881/391 1105/1874/385 +f 1103/1872/383 1112/1882/392 1113/1883/393 +f 1110/1879/390 1114/1884/394 1100/1869/380 +f 1097/1866/377 1115/1885/395 1098/1867/378 +f 1108/1886/388 1116/1887/396 1111/1881/391 +f 1110/1879/390 1113/1883/393 1117/1888/243 +f 1100/1869/380 1118/1889/397 1097/1866/377 +f 1108/1877/388 1115/1885/395 1119/1890/398 +f 1106/1875/386 1116/1887/396 1112/1882/392 +f 1119/1890/398 1120/1891/399 1121/1892/5 +f 1112/1882/392 1122/1893/400 1123/1894/401 +f 1112/1882/392 1124/1895/402 1113/1883/393 +f 1117/1888/243 1125/1896/403 1114/1884/394 +f 1118/1889/397 1120/1891/399 1115/1885/395 +f 1119/1897/398 1122/1893/400 1116/1887/396 +f 1117/1888/243 1124/1895/402 1126/1898/3 +f 1118/1889/397 1125/1896/403 1127/1899/404 +f 1124/1895/402 1128/1900/405 1126/1898/3 +f 1127/1899/404 1129/1901/406 1130/1902/407 +f 1121/1892/5 1131/1903/408 1132/1904/409 +f 1122/1893/400 1133/1905/410 1123/1894/401 +f 1123/1894/401 1134/1906/411 1124/1895/402 +f 1125/1896/403 1128/1900/405 1129/1901/406 +f 1120/1891/399 1130/1902/407 1131/1903/408 +f 1121/1907/5 1135/1908/412 1122/1893/400 +f 1136/1909/413 477/640/212 1137/1910/212 +f 1138/1911/414 479/642/415 1139/1912/415 +f 1140/1913/215 473/636/416 481/644/215 +f 1141/1914/417 471/634/418 1142/1915/418 +f 1136/1909/413 479/1058/415 483/646/413 +f 1138/1911/414 481/644/215 468/631/414 +f 1143/1916/416 471/634/418 473/636/416 +f 1137/1910/212 474/637/417 1141/1914/417 +f 485/1917/416 491/655/215 490/654/419 +f 476/639/417 487/651/212 489/653/417 +f 485/1917/416 495/1064/418 769/1918/418 +f 478/641/413 487/651/212 475/638/212 +f 486/1919/417 495/659/418 497/662/417 +f 480/647/415 493/657/413 478/641/413 +f 486/1919/417 499/664/212 770/1920/212 +f 470/633/420 492/660/415 480/643/415 +f 482/645/418 489/653/417 502/667/418 +f 484/1921/414 491/655/215 768/1922/215 +f 482/645/418 500/665/416 472/635/419 +f 484/1921/414 501/666/415 488/652/414 +f 472/635/419 496/661/215 469/632/215 +f 771/1923/413 501/666/415 772/1924/415 +f 469/632/215 494/658/420 470/633/420 +f 771/1923/413 499/664/212 498/663/413 +f 1144/1925/421 1145/1926/422 1146/1927/423 +f 1147/1928/424 1148/1929/425 1149/1930/426 +f 1150/1931/427 1151/1932/428 1152/1933/429 +f 1153/1934/430 1154/1935/431 1150/1931/427 +f 1155/1936/432 1146/1927/423 1156/1937/433 +f 1157/1938/434 1148/1929/425 1145/1926/422 +f 1152/1933/429 1158/1939/435 1147/1928/424 +f 1155/1940/432 1159/1941/436 1153/1934/430 +f 1151/1932/428 1160/1942/437 1161/1943/438 +f 1158/1939/435 1162/1944/439 1148/1929/425 +f 1145/1926/422 1163/1945/440 1146/1927/423 +f 1156/1946/433 1164/1947/441 1159/1941/436 +f 1158/1939/435 1161/1943/438 1165/1948/442 +f 1148/1929/425 1166/1949/443 1145/1926/422 +f 1156/1937/433 1163/1945/440 1167/1950/444 +f 1154/1935/431 1164/1947/441 1160/1942/437 +f 1163/1945/440 1168/1951/5 1167/1950/444 +f 1160/1942/437 1169/1952/399 1170/1953/404 +f 1160/1942/437 1171/1954/403 1161/1943/438 +f 1165/1948/442 1172/1955/402 1162/1944/439 +f 1166/1949/443 1173/1956/400 1163/1945/440 +f 1167/1957/444 1169/1952/399 1164/1947/441 +f 1165/1948/442 1171/1954/403 1174/1958/3 +f 1166/1949/443 1172/1955/402 1175/1959/401 +f 1171/1954/403 1176/1960/445 1174/1958/3 +f 1175/1959/401 1177/1961/446 1178/1962/447 +f 1168/1951/5 1179/1963/448 1180/1964/449 +f 1169/1952/399 1181/1965/450 1170/1953/404 +f 1170/1953/404 1182/1966/451 1171/1954/403 +f 1172/1955/402 1176/1960/445 1177/1961/446 +f 1173/1956/400 1178/1962/447 1179/1963/448 +f 1168/1967/5 1183/1968/452 1169/1952/399 +f 1184/1969/453 512/677/215 1185/1970/215 +f 1186/1971/454 514/679/455 1187/1972/455 +f 1188/1973/212 508/673/456 516/681/212 +f 1189/1974/457 506/671/458 1190/1975/458 +f 1184/1969/453 514/1065/455 518/683/453 +f 1186/1971/454 516/681/212 503/668/454 +f 1190/1975/458 508/673/456 1191/1976/456 +f 1185/1970/215 509/674/457 1189/1974/457 +f 520/1977/456 526/692/212 525/691/456 +f 511/676/457 522/688/215 524/690/457 +f 520/1977/456 530/1071/458 774/1978/458 +f 510/675/215 528/694/453 522/688/215 +f 521/1979/457 530/696/458 532/699/457 +f 515/684/455 528/694/453 513/678/453 +f 521/1979/457 534/701/215 775/1980/215 +f 505/670/454 527/697/455 515/680/455 +f 517/682/458 524/690/457 537/704/458 +f 519/1981/454 526/692/212 773/1982/212 +f 517/682/458 535/702/459 507/672/459 +f 519/1981/454 536/703/455 523/689/454 +f 507/672/459 531/698/212 504/669/212 +f 776/1983/453 536/703/455 777/1984/455 +f 504/669/212 529/695/454 505/670/454 +f 776/1983/453 534/701/215 533/700/453 +f 1192/1985/460 1193/1986/461 1194/1987/462 +f 1195/1988/463 1196/1989/464 1197/1990/465 +f 1198/1991/466 1199/1992/467 1200/1993/468 +f 1201/1994/469 1202/1995/470 1198/1991/466 +f 1203/1996/471 1194/1987/462 1204/1997/472 +f 1197/1990/465 1193/1986/461 1205/1998/473 +f 1195/1988/463 1199/1992/467 1206/1999/474 +f 1203/2000/471 1207/2001/475 1201/1994/469 +f 1199/1992/467 1208/2002/476 1209/2003/477 +f 1206/1999/474 1210/2004/478 1196/1989/464 +f 1193/1986/461 1211/2005/479 1194/1987/462 +f 1204/2006/472 1212/2007/480 1207/2001/475 +f 1206/1999/474 1209/2003/477 1213/2008/481 +f 1196/1989/464 1214/2009/482 1193/1986/461 +f 1204/1997/472 1211/2005/479 1215/2010/483 +f 1202/1995/470 1212/2007/480 1208/2002/476 +f 1215/2010/483 1216/2011/484 1217/2012/5 +f 1208/2002/476 1218/2013/485 1219/2014/486 +f 1208/2002/476 1220/2015/487 1209/2003/477 +f 1213/2008/481 1221/2016/488 1210/2004/478 +f 1214/2009/482 1216/2011/484 1211/2005/479 +f 1215/2017/483 1218/2013/485 1212/2007/480 +f 1213/2008/481 1220/2015/487 1222/2018/3 +f 1214/2009/482 1221/2016/488 1223/2019/489 +f 1220/2015/487 1224/2020/490 1222/2018/3 +f 1223/2019/489 1225/2021/491 1226/2022/492 +f 1217/2012/5 1227/2023/493 1228/2024/494 +f 1218/2013/485 1229/2025/495 1219/2014/486 +f 1219/2014/486 1230/2026/496 1220/2015/487 +f 1221/2016/488 1224/2020/490 1225/2021/491 +f 1216/2011/484 1226/2022/492 1227/2023/493 +f 1217/2027/5 1231/2028/497 1218/2013/485 +f 1232/2029/498 547/714/214 1233/2030/214 +f 1234/2031/499 549/716/500 1235/2032/500 +f 1236/2033/211 543/710/501 551/718/211 +f 1237/2034/502 541/708/503 1238/2035/503 +f 1232/2029/498 549/1072/500 553/720/498 +f 1234/2031/499 551/718/211 538/705/499 +f 1238/2035/503 543/710/501 1239/2036/501 +f 1233/2030/214 544/711/502 1237/2034/502 +f 555/2037/501 561/729/211 560/728/504 +f 546/713/502 557/725/214 559/727/502 +f 555/2037/501 565/1078/503 779/2038/503 +f 548/715/498 557/725/214 545/712/214 +f 556/2039/502 565/733/503 567/736/502 +f 550/721/500 563/731/498 548/715/498 +f 556/2039/502 569/738/214 780/2040/214 +f 540/707/499 562/734/500 550/717/500 +f 552/719/503 559/727/502 572/741/503 +f 554/2041/499 561/729/211 778/2042/211 +f 552/719/503 570/739/501 542/709/501 +f 554/2041/499 571/740/500 558/726/499 +f 542/709/501 566/735/211 539/706/211 +f 781/2043/498 571/740/500 782/2044/500 +f 539/706/211 564/732/499 540/707/499 +f 781/2043/498 569/738/214 568/737/498 +f 1240/2045/505 1241/2046/506 1242/2047/507 +f 1243/2048/508 1244/2049/509 1245/2050/510 +f 1246/2051/511 1247/2052/512 1248/2053/513 +f 1249/2054/514 1250/2055/515 1246/2051/511 +f 1251/2056/516 1242/2047/507 1252/2057/517 +f 1253/2058/518 1244/2049/509 1241/2046/506 +f 1243/2048/508 1247/2052/512 1254/2059/519 +f 1251/2060/516 1255/2061/520 1249/2054/514 +f 1247/2052/512 1256/2062/521 1257/2063/522 +f 1254/2059/519 1258/2064/523 1244/2049/509 +f 1241/2046/506 1259/2065/524 1242/2047/507 +f 1252/2066/517 1260/2067/525 1255/2061/520 +f 1247/2052/512 1261/2068/526 1254/2059/519 +f 1244/2049/509 1262/2069/527 1241/2046/506 +f 1252/2057/517 1259/2065/524 1263/2070/528 +f 1250/2055/515 1260/2067/525 1256/2062/521 +f 1263/2070/528 1264/2071/485 1265/2072/5 +f 1256/2062/521 1266/2073/484 1267/2074/489 +f 1256/2062/521 1268/2075/488 1257/2063/522 +f 1261/2068/526 1269/2076/487 1258/2064/523 +f 1262/2069/527 1264/2071/485 1259/2065/524 +f 1263/2077/528 1266/2073/484 1260/2067/525 +f 1261/2068/526 1268/2075/488 1270/2078/3 +f 1262/2069/527 1269/2076/487 1271/2079/486 +f 1268/2075/488 1272/2080/529 1270/2078/3 +f 1271/2079/486 1273/2081/530 1274/2082/531 +f 1265/2072/5 1275/2083/532 1276/2084/533 +f 1266/2073/484 1277/2085/534 1267/2074/489 +f 1267/2074/489 1278/2086/535 1268/2075/488 +f 1269/2076/487 1272/2080/529 1273/2081/530 +f 1264/2071/485 1274/2082/531 1275/2083/532 +f 1265/2087/5 1279/2088/536 1266/2073/484 +f 1280/2089/537 583/752/211 1281/2090/211 +f 1282/2091/538 584/753/539 1283/2092/539 +f 1284/2093/214 578/747/540 586/755/214 +f 1285/2094/541 579/748/542 576/745/541 +f 1280/2089/537 584/1079/539 582/751/537 +f 1282/2091/538 586/755/214 573/742/538 +f 1286/2095/540 576/745/541 578/747/540 +f 1281/2090/211 579/748/542 1287/2096/542 +f 590/2097/540 596/766/214 595/765/543 +f 581/750/542 592/762/211 594/764/542 +f 590/2097/540 600/1085/541 784/2098/541 +f 580/749/211 598/768/537 592/762/211 +f 591/2099/542 600/770/541 602/773/542 +f 585/757/539 598/768/537 588/758/544 +f 591/2099/542 604/775/211 785/2100/211 +f 575/744/545 597/771/539 585/754/539 +f 587/756/541 594/764/542 607/778/541 +f 589/2101/538 596/766/214 783/2102/214 +f 587/756/541 605/776/540 577/746/543 +f 589/2101/538 606/777/539 593/763/538 +f 577/746/543 601/772/214 574/743/214 +f 786/2103/537 606/777/539 787/2104/539 +f 574/743/214 599/769/538 575/744/545 +f 786/2103/537 604/775/211 603/774/537 +f 1288/2105/4 1289/2106/546 1290/2107/23 +f 1291/2108/205 1292/2109/547 1293/2110/22 +f 1290/2107/23 1294/2111/548 1295/2112/211 +f 1293/2110/22 1296/2113/549 1288/2105/4 +f 1292/2109/547 1297/2114/550 1298/2115/551 +f 1289/2106/546 1299/2116/552 1294/2111/548 +f 1292/2109/547 1300/2117/38 1296/2113/549 +f 1289/2106/546 1300/2117/38 1301/2118/553 +f 1300/2117/38 1302/2119/554 1301/2118/553 +f 1298/2115/551 1303/2120/555 1304/2121/556 +f 1301/2118/553 1305/2122/557 1299/2116/552 +f 1300/2117/38 1304/2121/556 1306/2123/185 +f 1307/2124/4 1308/2125/546 1309/2126/23 +f 1310/2127/205 1311/2128/547 1312/2129/22 +f 1309/2126/23 1313/2130/548 1314/2131/211 +f 1312/2129/22 1315/2132/549 1307/2124/4 +f 1311/2128/547 1316/2133/550 1317/2134/551 +f 1308/2125/546 1318/2135/552 1313/2130/548 +f 1311/2128/547 1319/2136/38 1315/2132/549 +f 1308/2125/546 1319/2136/38 1320/2137/553 +f 1319/2136/38 1321/2138/554 1320/2137/553 +f 1317/2134/551 1322/2139/555 1323/2140/556 +f 1320/2137/553 1324/2141/557 1318/2135/552 +f 1317/2134/551 1325/2142/185 1319/2136/38 +f 1326/2143/4 1327/2144/546 1328/2145/23 +f 1329/2146/205 1330/2147/547 1331/2148/22 +f 1328/2145/23 1332/2149/548 1333/2150/211 +f 1331/2148/22 1334/2151/549 1326/2143/4 +f 1330/2147/547 1335/2152/550 1336/2153/551 +f 1327/2144/546 1337/2154/552 1332/2149/548 +f 1330/2147/547 1338/2155/38 1334/2151/549 +f 1327/2144/546 1338/2155/38 1339/2156/553 +f 1338/2155/38 1340/2157/554 1339/2156/553 +f 1336/2153/551 1341/2158/555 1342/2159/556 +f 1339/2156/553 1343/2160/557 1337/2154/552 +f 1336/2153/551 1344/2161/185 1338/2155/38 +f 791/1495/166 804/1508/177 792/1496/167 +f 794/1498/19 805/1509/178 795/1499/169 +f 797/1501/171 801/1505/175 798/1502/172 +f 800/1504/174 806/1511/179 801/1505/175 +f 802/1506/17 791/1495/166 793/1497/168 +f 804/1508/177 796/1500/170 795/1499/169 +f 794/1498/19 799/1503/173 798/1502/172 +f 802/1510/17 803/1516/176 806/1511/179 +f 798/1502/172 801/1505/175 807/1512/180 +f 805/1509/178 812/1518/185 809/1514/182 +f 792/1496/167 813/1519/186 810/1515/183 +f 803/1516/176 814/1527/14 811/1517/184 +f 805/1509/178 798/1502/172 808/1513/181 +f 795/1499/169 809/1514/182 813/1519/186 +f 803/1507/176 793/1497/168 810/1515/183 +f 801/1505/175 806/1511/179 811/1517/184 +f 814/1520/14 810/1515/183 815/1521/187 +f 807/1512/180 811/1517/184 817/1523/188 +f 807/1512/180 818/1524/189 819/1525/190 +f 812/1518/185 821/1528/3 820/1526/191 +f 813/1519/186 822/1529/192 815/1521/187 +f 814/1527/14 816/1537/5 817/1523/188 +f 812/1518/185 808/1513/181 819/1525/190 +f 813/1519/186 809/1514/182 820/1526/191 +f 819/1525/190 829/1536/199 823/1530/193 +f 822/1529/192 820/1526/191 824/1531/194 +f 816/1522/5 815/1521/187 826/1533/196 +f 817/1523/188 830/1538/200 828/1535/198 +f 818/1524/189 828/1535/198 829/1536/199 +f 820/1526/191 821/1528/3 823/1530/193 +f 815/1521/187 822/1529/192 825/1532/195 +f 816/1537/5 827/2162/197 830/1538/200 +f 831/1539/201 52/80/201 46/74/202 +f 833/1541/203 37/65/203 48/76/204 +f 835/1543/205 838/1546/206 42/70/206 +f 836/1544/207 43/71/207 40/68/208 +f 831/1539/201 834/2163/204 48/942/204 +f 833/1541/203 835/1543/205 50/78/205 +f 837/1545/208 40/68/208 42/70/206 +f 832/1540/202 46/74/202 43/71/207 +f 54/1547/206 737/1552/205 60/89/205 +f 45/73/207 44/72/202 56/85/202 +f 54/1547/206 59/88/206 64/948/208 +f 47/75/201 62/91/201 56/85/202 +f 55/1549/207 738/2164/208 64/93/208 +f 49/81/204 61/90/204 62/91/201 +f 55/1549/207 66/96/207 68/98/202 +f 39/67/209 63/92/209 61/94/204 +f 51/79/208 45/73/207 58/87/207 +f 53/1551/203 57/86/203 60/89/205 +f 51/79/208 71/101/208 69/99/206 +f 53/1551/203 741/1554/204 70/100/204 +f 38/66/205 41/69/206 69/99/206 +f 740/1553/201 67/97/201 70/100/204 +f 38/66/205 65/95/205 63/92/209 +f 740/1553/201 739/1550/202 68/98/202 +f 839/1555/210 80/112/210 82/114/211 +f 841/1557/202 87/119/202 88/120/212 +f 843/1559/213 91/125/213 93/127/214 +f 845/1561/205 95/129/205 96/130/215 +f 840/1556/211 82/114/211 87/119/202 +f 842/1558/212 88/120/212 91/124/213 +f 844/1560/214 93/127/214 95/129/205 +f 846/1562/215 96/130/215 80/112/210 +f 98/951/210 100/135/210 103/962/211 +f 85/1564/213 101/155/213 111/157/212 +f 84/1566/214 99/134/214 101/136/213 +f 81/957/211 103/138/211 747/963/202 +f 83/1568/205 102/137/205 99/139/214 +f 86/121/202 747/964/202 104/140/212 +f 746/1570/215 105/142/215 102/141/205 +f 89/958/212 104/965/212 106/143/213 +f 97/961/215 113/156/215 100/969/210 +f 742/1572/212 111/152/212 110/154/202 +f 94/131/205 112/153/205 113/968/215 +f 743/1574/202 110/149/202 109/151/211 +f 92/960/214 108/150/214 112/967/205 +f 744/1576/211 109/148/211 107/147/210 +f 90/959/213 106/966/213 108/146/214 +f 745/1578/210 107/145/210 105/144/215 +f 847/1580/216 904/1637/239 848/1581/217 +f 850/1583/219 1345/2165/250 851/1584/220 +f 853/1586/222 865/1598/234 854/1587/223 +f 856/1589/225 860/1593/229 857/1590/226 +f 857/1590/226 860/1593/229 853/1586/222 +f 859/1592/228 862/1595/231 856/1589/225 +f 860/1593/229 1346/2166/526 861/1594/230 +f 862/1595/231 1347/2167/238 863/1596/232 +f 853/1586/222 861/1594/230 864/1597/233 +f 863/1596/232 1346/2166/526 860/1593/229 +f 866/1599/235 877/1610/234 867/1600/223 +f 869/1602/236 874/1607/229 870/1603/226 +f 870/1603/226 874/1607/229 866/1599/235 +f 872/1605/231 869/1602/236 871/1604/227 +f 874/1607/229 1348/2168/526 875/1608/230 +f 872/1605/231 1349/2169/238 876/1609/232 +f 875/1608/230 1350/2170/233 877/1610/234 +f 876/1609/232 1348/2168/526 874/1607/229 +f 878/1611/222 890/1623/234 879/1612/223 +f 881/1614/236 886/1619/229 882/1615/226 +f 882/1615/226 886/1619/229 878/1611/222 +f 884/1617/231 881/1614/236 883/1616/227 +f 886/1619/229 1351/2171/526 887/1620/230 +f 888/1621/238 891/1624/232 881/1614/236 +f 878/1611/222 887/1620/230 889/1622/233 +f 891/1624/232 1351/2171/526 886/1619/229 +f 854/1587/223 1352/2172/210 892/1625/4 +f 867/1600/223 1353/2173/210 893/1626/4 +f 855/1588/224 892/1625/4 894/1627/22 +f 857/1590/226 894/1627/22 895/1628/1 +f 879/1612/223 1354/2174/210 896/1629/4 +f 868/1601/224 893/1626/4 897/1630/22 +f 858/1591/227 895/1628/1 898/1631/214 +f 870/1603/226 897/1630/22 899/1632/1 +f 880/1613/224 896/1629/4 900/1633/22 +f 882/1615/226 900/1633/22 901/1634/1 +f 871/1604/227 899/1632/1 902/1635/214 +f 883/1616/227 901/1634/1 903/1636/214 +f 847/1580/216 852/1585/221 851/1584/220 +f 905/1638/240 849/1582/218 848/1581/217 +f 904/1637/239 851/1584/220 907/1640/242 +f 906/1639/241 848/1581/217 909/1642/244 +f 851/1584/220 1345/2165/250 911/1644/246 +f 904/1637/239 908/1641/243 909/1642/244 +f 912/1645/219 925/1658/250 913/1646/247 +f 915/1648/216 918/1651/239 916/1649/248 +f 915/1648/216 914/1647/221 913/1646/247 +f 917/1650/218 916/1649/248 919/1652/241 +f 918/1651/239 913/1646/247 921/1654/242 +f 919/1652/241 916/1649/248 923/1656/244 +f 925/1658/250 1355/2175/246 921/1654/242 +f 918/1651/239 922/1655/243 923/1656/244 +f 926/1659/219 1356/2176/250 927/1660/220 +f 929/1662/216 932/1665/239 930/1663/248 +f 929/1662/216 928/1661/221 927/1660/220 +f 931/1664/218 930/1663/248 933/1666/241 +f 932/1665/239 927/1660/220 935/1668/242 +f 930/1663/248 939/1672/244 937/1670/245 +f 927/1660/220 1356/2176/250 938/1671/246 +f 932/1665/239 936/1669/243 939/1672/244 +f 940/1673/4 1357/2177/215 850/1583/219 +f 941/1674/4 1358/2178/215 912/1645/219 +f 942/1675/23 940/1673/4 852/1585/221 +f 943/1676/13 942/1675/23 847/1580/216 +f 944/1677/4 1359/2179/215 926/1659/219 +f 945/1678/23 941/1674/4 914/1647/221 +f 946/1679/202 943/1676/13 849/1582/218 +f 947/1680/13 945/1678/23 915/1648/216 +f 948/1681/23 944/1677/4 928/1661/221 +f 949/1682/13 948/1681/23 929/1662/216 +f 950/1683/202 947/1680/13 917/1650/218 +f 951/1684/202 949/1682/13 931/1664/218 +f 952/1685/251 965/1698/262 953/1686/252 +f 955/1688/15 966/1699/263 956/1689/254 +f 958/1691/256 962/1695/260 959/1692/257 +f 961/1694/259 967/1701/264 962/1695/260 +f 963/1696/16 952/1685/251 954/1687/253 +f 957/1690/255 956/1689/254 953/1686/252 +f 955/1688/15 960/1693/258 959/1692/257 +f 963/1700/16 964/1706/261 967/1701/264 +f 959/1692/257 962/1695/260 968/1702/265 +f 966/1699/263 973/1708/18 970/1704/267 +f 953/1686/252 974/1709/270 971/1705/268 +f 964/1706/261 975/1717/20 972/1707/269 +f 966/1699/263 959/1692/257 969/1703/266 +f 956/1689/254 970/1704/267 974/1709/270 +f 964/1697/261 954/1687/253 971/1705/268 +f 962/1695/260 967/1701/264 972/1707/269 +f 975/1710/20 971/1705/268 976/1711/188 +f 968/1702/265 972/1707/269 978/1713/187 +f 968/1702/265 979/1714/192 980/1715/271 +f 973/1708/18 982/1718/3 981/1716/272 +f 974/1709/270 983/1719/189 976/1711/188 +f 975/1717/20 977/1727/5 978/1713/187 +f 973/1708/18 969/1703/266 980/1715/271 +f 974/1709/270 970/1704/267 981/1716/272 +f 980/1715/271 990/1726/279 984/1720/273 +f 983/1719/189 981/1716/272 985/1721/274 +f 977/1712/5 976/1711/188 987/1723/276 +f 978/1713/187 991/1728/280 989/1725/278 +f 979/1714/192 989/1725/278 990/1726/279 +f 981/1716/272 982/1718/3 984/1720/273 +f 976/1711/188 983/1719/189 986/1722/275 +f 977/1727/5 988/2180/277 991/1728/280 +f 992/1729/281 378/535/281 372/529/205 +f 994/1731/282 363/520/282 374/531/283 +f 996/1733/202 999/1736/284 368/525/284 +f 997/1734/285 369/526/285 366/523/286 +f 992/1729/281 995/2181/283 374/1037/283 +f 994/1731/282 996/1733/202 376/533/202 +f 998/1735/286 366/523/286 368/525/284 +f 993/1730/205 372/529/205 369/526/285 +f 380/1737/284 753/1742/202 386/544/202 +f 371/528/285 370/527/205 382/540/205 +f 380/1737/284 385/543/284 390/1043/286 +f 373/530/281 388/546/281 382/540/205 +f 381/1739/285 754/2182/286 390/548/286 +f 375/536/283 387/545/283 388/546/281 +f 381/1739/285 392/551/285 391/550/205 +f 365/522/287 389/547/287 387/549/283 +f 377/534/286 371/528/285 384/542/285 +f 379/1741/282 383/541/282 386/544/202 +f 377/534/286 397/556/286 395/554/284 +f 379/1741/282 757/1744/283 396/555/283 +f 364/521/202 367/524/284 395/554/284 +f 756/1743/281 394/553/281 396/555/283 +f 364/521/202 393/552/202 389/547/287 +f 756/1743/281 755/1740/205 391/550/205 +f 1000/1745/288 1013/1758/301 1001/1746/289 +f 1003/1748/291 1014/1759/302 1004/1749/292 +f 1006/1751/294 1010/1755/298 1007/1752/295 +f 1009/1754/297 1015/1761/303 1010/1755/298 +f 1011/1756/299 1000/1745/288 1002/1747/290 +f 1005/1750/293 1004/1749/292 1001/1746/289 +f 1003/1748/291 1008/1753/296 1007/1752/295 +f 1011/1760/299 1012/1766/300 1015/1761/303 +f 1007/1752/295 1010/1755/298 1016/1762/304 +f 1014/1759/302 1021/1768/309 1018/1764/306 +f 1001/1746/289 1022/1769/310 1019/1765/307 +f 1012/1766/300 1023/1777/311 1020/1767/308 +f 1014/1759/302 1007/1752/295 1017/1763/305 +f 1004/1749/292 1018/1764/306 1022/1769/310 +f 1012/1757/300 1002/1747/290 1019/1765/307 +f 1010/1755/298 1015/1761/303 1020/1767/308 +f 1023/1770/311 1019/1765/307 1024/1771/312 +f 1016/1762/304 1020/1767/308 1026/1773/313 +f 1016/1762/304 1027/1774/314 1028/1775/315 +f 1021/1768/309 1030/1778/3 1029/1776/316 +f 1022/1769/310 1031/1779/317 1024/1771/312 +f 1023/1777/311 1025/1787/5 1026/1773/313 +f 1021/1768/309 1017/1763/305 1028/1775/315 +f 1022/1769/310 1018/1764/306 1029/1776/316 +f 1028/1775/315 1038/1786/324 1032/1780/318 +f 1031/1779/317 1029/1776/316 1033/1781/319 +f 1025/1772/5 1024/1771/312 1035/1783/321 +f 1026/1773/313 1039/1788/325 1037/1785/323 +f 1027/1774/314 1037/1785/323 1038/1786/324 +f 1029/1776/316 1030/1778/3 1032/1780/318 +f 1024/1771/312 1031/1779/317 1034/1782/320 +f 1025/1787/5 1036/2183/322 1039/1788/325 +f 1040/1789/326 413/572/326 407/566/213 +f 1042/1791/327 398/557/327 409/568/328 +f 1044/1793/210 1047/1796/329 403/562/329 +f 1045/1794/330 404/563/330 401/560/331 +f 1040/1789/326 1043/2184/328 409/1044/328 +f 1042/1791/327 1044/1793/210 411/570/210 +f 1047/1796/329 1046/1795/331 401/560/331 +f 1041/1790/213 407/566/213 404/563/330 +f 415/1797/329 758/1802/210 421/581/210 +f 406/565/330 405/564/213 417/577/213 +f 415/1797/329 420/580/329 425/1050/331 +f 408/567/326 423/583/326 417/577/213 +f 416/1799/330 759/2185/331 425/585/331 +f 410/573/328 422/582/328 423/583/326 +f 416/1799/330 427/588/330 429/590/213 +f 400/559/332 424/584/332 422/586/328 +f 412/571/331 406/565/330 419/579/330 +f 414/1801/327 418/578/327 421/581/210 +f 412/571/331 432/593/331 430/591/333 +f 414/1801/327 762/1804/328 431/592/328 +f 402/561/329 430/591/333 426/587/210 +f 761/1803/326 428/589/326 431/592/328 +f 399/558/210 426/587/210 424/584/332 +f 761/1803/326 760/1800/213 429/590/213 +f 1048/1805/334 1061/1818/347 1049/1806/335 +f 1051/1808/337 1062/1819/348 1052/1809/338 +f 1054/1811/340 1058/1815/344 1055/1812/341 +f 1057/1814/343 1063/1821/349 1058/1815/344 +f 1059/1816/345 1048/1805/334 1050/1807/336 +f 1061/1818/347 1053/1810/339 1052/1809/338 +f 1051/1808/337 1056/1813/342 1055/1812/341 +f 1059/1820/345 1060/1826/346 1063/1821/349 +f 1055/1812/341 1058/1815/344 1064/1822/350 +f 1062/1819/348 1069/1828/355 1066/1824/352 +f 1049/1806/335 1070/1829/356 1067/1825/353 +f 1060/1826/346 1071/1837/357 1068/1827/354 +f 1062/1819/348 1055/1812/341 1065/1823/351 +f 1052/1809/338 1066/1824/352 1070/1829/356 +f 1060/1817/346 1050/1807/336 1067/1825/353 +f 1058/1815/344 1063/1821/349 1068/1827/354 +f 1071/1830/357 1067/1825/353 1072/1831/313 +f 1064/1822/350 1068/1827/354 1074/1833/312 +f 1064/1822/350 1075/1834/317 1076/1835/358 +f 1069/1828/355 1078/1838/3 1077/1836/359 +f 1070/1829/356 1079/1839/314 1072/1831/313 +f 1071/1837/357 1073/1847/5 1074/1833/312 +f 1069/1828/355 1065/1823/351 1076/1835/358 +f 1070/1829/356 1066/1824/352 1077/1836/359 +f 1076/1835/358 1086/1846/366 1080/1840/360 +f 1079/1839/314 1077/1836/359 1081/1841/361 +f 1073/1832/5 1072/1831/313 1083/1843/363 +f 1074/1833/312 1087/1848/367 1085/1845/365 +f 1075/1834/317 1085/1845/365 1086/1846/366 +f 1077/1836/359 1078/1838/3 1080/1840/360 +f 1072/1831/313 1079/1839/314 1082/1842/362 +f 1073/1847/5 1084/2186/364 1087/1848/367 +f 1088/1849/368 448/609/368 442/603/210 +f 1090/1851/369 433/594/369 444/605/370 +f 1092/1853/213 1094/1855/371 438/599/371 +f 1093/1854/372 1095/1856/373 439/600/373 +f 1088/1849/368 1091/2187/370 444/1051/370 +f 1090/1851/369 1092/1853/213 446/607/213 +f 1093/1854/372 436/597/372 438/599/371 +f 1089/1850/210 442/603/210 439/600/373 +f 450/1857/371 763/1862/213 456/618/213 +f 441/602/373 440/601/210 452/614/210 +f 450/1857/371 455/617/371 460/1057/372 +f 443/604/368 458/620/368 452/614/210 +f 451/1859/373 764/2188/372 460/622/372 +f 445/610/370 457/619/370 458/620/368 +f 451/1859/373 462/625/373 464/627/210 +f 435/596/374 459/621/374 457/623/370 +f 447/608/372 441/602/373 454/616/373 +f 449/1861/369 453/615/369 456/618/213 +f 447/608/372 467/630/372 465/628/375 +f 449/1861/369 767/1864/370 466/629/370 +f 437/598/375 465/628/375 461/624/213 +f 766/1863/368 463/626/368 466/629/370 +f 434/595/213 461/624/213 459/621/374 +f 766/1863/368 765/1860/210 464/627/210 +f 1096/1865/376 1109/1878/389 1097/1866/377 +f 1099/1868/379 1110/1879/390 1100/1869/380 +f 1102/1871/382 1106/1875/386 1103/1872/383 +f 1105/1874/385 1111/1881/391 1106/1875/386 +f 1107/1876/387 1096/1865/376 1098/1867/378 +f 1109/1878/389 1101/1870/381 1100/1869/380 +f 1099/1868/379 1104/1873/384 1103/1872/383 +f 1107/1880/387 1108/1886/388 1111/1881/391 +f 1103/1872/383 1106/1875/386 1112/1882/392 +f 1110/1879/390 1117/1888/243 1114/1884/394 +f 1097/1866/377 1118/1889/397 1115/1885/395 +f 1108/1886/388 1119/1897/398 1116/1887/396 +f 1110/1879/390 1103/1872/383 1113/1883/393 +f 1100/1869/380 1114/1884/394 1118/1889/397 +f 1108/1877/388 1098/1867/378 1115/1885/395 +f 1106/1875/386 1111/1881/391 1116/1887/396 +f 1119/1890/398 1115/1885/395 1120/1891/399 +f 1112/1882/392 1116/1887/396 1122/1893/400 +f 1112/1882/392 1123/1894/401 1124/1895/402 +f 1117/1888/243 1126/1898/3 1125/1896/403 +f 1118/1889/397 1127/1899/404 1120/1891/399 +f 1119/1897/398 1121/1907/5 1122/1893/400 +f 1117/1888/243 1113/1883/393 1124/1895/402 +f 1118/1889/397 1114/1884/394 1125/1896/403 +f 1124/1895/402 1134/1906/411 1128/1900/405 +f 1127/1899/404 1125/1896/403 1129/1901/406 +f 1121/1892/5 1120/1891/399 1131/1903/408 +f 1122/1893/400 1135/1908/412 1133/1905/410 +f 1123/1894/401 1133/1905/410 1134/1906/411 +f 1125/1896/403 1126/1898/3 1128/1900/405 +f 1120/1891/399 1127/1899/404 1130/1902/407 +f 1121/1907/5 1132/2189/409 1135/1908/412 +f 1136/1909/413 483/646/413 477/640/212 +f 1138/1911/414 468/631/414 479/642/415 +f 1140/1913/215 1143/1916/416 473/636/416 +f 1141/1914/417 474/637/417 471/634/418 +f 1136/1909/413 1139/2190/415 479/1058/415 +f 1138/1911/414 1140/1913/215 481/644/215 +f 1143/1916/416 1142/1915/418 471/634/418 +f 1137/1910/212 477/640/212 474/637/417 +f 485/1917/416 768/1922/215 491/655/215 +f 476/639/417 475/638/212 487/651/212 +f 485/1917/416 490/654/419 495/1064/418 +f 478/641/413 493/657/413 487/651/212 +f 486/1919/417 769/2191/418 495/659/418 +f 480/647/415 492/656/415 493/657/413 +f 486/1919/417 497/662/417 499/664/212 +f 470/633/420 494/658/420 492/660/415 +f 482/645/418 476/639/417 489/653/417 +f 484/1921/414 488/652/414 491/655/215 +f 482/645/418 502/667/418 500/665/416 +f 484/1921/414 772/1924/415 501/666/415 +f 472/635/419 500/665/416 496/661/215 +f 771/1923/413 498/663/413 501/666/415 +f 469/632/215 496/661/215 494/658/420 +f 771/1923/413 770/1920/212 499/664/212 +f 1144/1925/421 1157/1938/434 1145/1926/422 +f 1147/1928/424 1158/1939/435 1148/1929/425 +f 1150/1931/427 1154/1935/431 1151/1932/428 +f 1153/1934/430 1159/1941/436 1154/1935/431 +f 1155/1936/432 1144/1925/421 1146/1927/423 +f 1157/1938/434 1149/1930/426 1148/1929/425 +f 1152/1933/429 1151/1932/428 1158/1939/435 +f 1155/1940/432 1156/1946/433 1159/1941/436 +f 1151/1932/428 1154/1935/431 1160/1942/437 +f 1158/1939/435 1165/1948/442 1162/1944/439 +f 1145/1926/422 1166/1949/443 1163/1945/440 +f 1156/1946/433 1167/1957/444 1164/1947/441 +f 1158/1939/435 1151/1932/428 1161/1943/438 +f 1148/1929/425 1162/1944/439 1166/1949/443 +f 1156/1937/433 1146/1927/423 1163/1945/440 +f 1154/1935/431 1159/1941/436 1164/1947/441 +f 1163/1945/440 1173/1956/400 1168/1951/5 +f 1160/1942/437 1164/1947/441 1169/1952/399 +f 1160/1942/437 1170/1953/404 1171/1954/403 +f 1165/1948/442 1174/1958/3 1172/1955/402 +f 1166/1949/443 1175/1959/401 1173/1956/400 +f 1167/1957/444 1168/1967/5 1169/1952/399 +f 1165/1948/442 1161/1943/438 1171/1954/403 +f 1166/1949/443 1162/1944/439 1172/1955/402 +f 1171/1954/403 1182/1966/451 1176/1960/445 +f 1175/1959/401 1172/1955/402 1177/1961/446 +f 1168/1951/5 1173/1956/400 1179/1963/448 +f 1169/1952/399 1183/1968/452 1181/1965/450 +f 1170/1953/404 1181/1965/450 1182/1966/451 +f 1172/1955/402 1174/1958/3 1176/1960/445 +f 1173/1956/400 1175/1959/401 1178/1962/447 +f 1168/1967/5 1180/2192/449 1183/1968/452 +f 1184/1969/453 518/683/453 512/677/215 +f 1186/1971/454 503/668/454 514/679/455 +f 1188/1973/212 1191/1976/456 508/673/456 +f 1189/1974/457 509/674/457 506/671/458 +f 1184/1969/453 1187/2193/455 514/1065/455 +f 1186/1971/454 1188/1973/212 516/681/212 +f 1190/1975/458 506/671/458 508/673/456 +f 1185/1970/215 512/677/215 509/674/457 +f 520/1977/456 773/1982/212 526/692/212 +f 511/676/457 510/675/215 522/688/215 +f 520/1977/456 525/691/456 530/1071/458 +f 510/675/215 513/678/453 528/694/453 +f 521/1979/457 774/2194/458 530/696/458 +f 515/684/455 527/693/455 528/694/453 +f 521/1979/457 532/699/457 534/701/215 +f 505/670/454 529/695/454 527/697/455 +f 517/682/458 511/676/457 524/690/457 +f 519/1981/454 523/689/454 526/692/212 +f 517/682/458 537/704/458 535/702/459 +f 519/1981/454 777/1984/455 536/703/455 +f 507/672/459 535/702/459 531/698/212 +f 776/1983/453 533/700/453 536/703/455 +f 504/669/212 531/698/212 529/695/454 +f 776/1983/453 775/1980/215 534/701/215 +f 1192/1985/460 1205/1998/473 1193/1986/461 +f 1195/1988/463 1206/1999/474 1196/1989/464 +f 1198/1991/466 1202/1995/470 1199/1992/467 +f 1201/1994/469 1207/2001/475 1202/1995/470 +f 1203/1996/471 1192/1985/460 1194/1987/462 +f 1197/1990/465 1196/1989/464 1193/1986/461 +f 1195/1988/463 1200/1993/468 1199/1992/467 +f 1203/2000/471 1204/2006/472 1207/2001/475 +f 1199/1992/467 1202/1995/470 1208/2002/476 +f 1206/1999/474 1213/2008/481 1210/2004/478 +f 1193/1986/461 1214/2009/482 1211/2005/479 +f 1204/2006/472 1215/2017/483 1212/2007/480 +f 1206/1999/474 1199/1992/467 1209/2003/477 +f 1196/1989/464 1210/2004/478 1214/2009/482 +f 1204/1997/472 1194/1987/462 1211/2005/479 +f 1202/1995/470 1207/2001/475 1212/2007/480 +f 1215/2010/483 1211/2005/479 1216/2011/484 +f 1208/2002/476 1212/2007/480 1218/2013/485 +f 1208/2002/476 1219/2014/486 1220/2015/487 +f 1213/2008/481 1222/2018/3 1221/2016/488 +f 1214/2009/482 1223/2019/489 1216/2011/484 +f 1215/2017/483 1217/2027/5 1218/2013/485 +f 1213/2008/481 1209/2003/477 1220/2015/487 +f 1214/2009/482 1210/2004/478 1221/2016/488 +f 1220/2015/487 1230/2026/496 1224/2020/490 +f 1223/2019/489 1221/2016/488 1225/2021/491 +f 1217/2012/5 1216/2011/484 1227/2023/493 +f 1218/2013/485 1231/2028/497 1229/2025/495 +f 1219/2014/486 1229/2025/495 1230/2026/496 +f 1221/2016/488 1222/2018/3 1224/2020/490 +f 1216/2011/484 1223/2019/489 1226/2022/492 +f 1217/2027/5 1228/2195/494 1231/2028/497 +f 1232/2029/498 553/720/498 547/714/214 +f 1234/2031/499 538/705/499 549/716/500 +f 1236/2033/211 1239/2036/501 543/710/501 +f 1237/2034/502 544/711/502 541/708/503 +f 1232/2029/498 1235/2196/500 549/1072/500 +f 1234/2031/499 1236/2033/211 551/718/211 +f 1238/2035/503 541/708/503 543/710/501 +f 1233/2030/214 547/714/214 544/711/502 +f 555/2037/501 778/2042/211 561/729/211 +f 546/713/502 545/712/214 557/725/214 +f 555/2037/501 560/728/504 565/1078/503 +f 548/715/498 563/731/498 557/725/214 +f 556/2039/502 779/2197/503 565/733/503 +f 550/721/500 562/730/500 563/731/498 +f 556/2039/502 567/736/502 569/738/214 +f 540/707/499 564/732/499 562/734/500 +f 552/719/503 546/713/502 559/727/502 +f 554/2041/499 558/726/499 561/729/211 +f 552/719/503 572/741/503 570/739/501 +f 554/2041/499 782/2044/500 571/740/500 +f 542/709/501 570/739/501 566/735/211 +f 781/2043/498 568/737/498 571/740/500 +f 539/706/211 566/735/211 564/732/499 +f 781/2043/498 780/2040/214 569/738/214 +f 1240/2045/505 1253/2058/518 1241/2046/506 +f 1243/2048/508 1254/2059/519 1244/2049/509 +f 1246/2051/511 1250/2055/515 1247/2052/512 +f 1249/2054/514 1255/2061/520 1250/2055/515 +f 1251/2056/516 1240/2045/505 1242/2047/507 +f 1253/2058/518 1245/2050/510 1244/2049/509 +f 1243/2048/508 1248/2053/513 1247/2052/512 +f 1251/2060/516 1252/2066/517 1255/2061/520 +f 1247/2052/512 1250/2055/515 1256/2062/521 +f 1254/2059/519 1261/2068/526 1258/2064/523 +f 1241/2046/506 1262/2069/527 1259/2065/524 +f 1252/2066/517 1263/2077/528 1260/2067/525 +f 1247/2052/512 1257/2063/522 1261/2068/526 +f 1244/2049/509 1258/2064/523 1262/2069/527 +f 1252/2057/517 1242/2047/507 1259/2065/524 +f 1250/2055/515 1255/2061/520 1260/2067/525 +f 1263/2070/528 1259/2065/524 1264/2071/485 +f 1256/2062/521 1260/2067/525 1266/2073/484 +f 1256/2062/521 1267/2074/489 1268/2075/488 +f 1261/2068/526 1270/2078/3 1269/2076/487 +f 1262/2069/527 1271/2079/486 1264/2071/485 +f 1263/2077/528 1265/2087/5 1266/2073/484 +f 1261/2068/526 1257/2063/522 1268/2075/488 +f 1262/2069/527 1258/2064/523 1269/2076/487 +f 1268/2075/488 1278/2086/535 1272/2080/529 +f 1271/2079/486 1269/2076/487 1273/2081/530 +f 1265/2072/5 1264/2071/485 1275/2083/532 +f 1266/2073/484 1279/2088/536 1277/2085/534 +f 1267/2074/489 1277/2085/534 1278/2086/535 +f 1269/2076/487 1270/2078/3 1272/2080/529 +f 1264/2071/485 1271/2079/486 1274/2082/531 +f 1265/2087/5 1276/2198/533 1279/2088/536 +f 1280/2089/537 582/751/537 583/752/211 +f 1282/2091/538 573/742/538 584/753/539 +f 1284/2093/214 1286/2095/540 578/747/540 +f 1285/2094/541 1287/2096/542 579/748/542 +f 1280/2089/537 1283/2199/539 584/1079/539 +f 1282/2091/538 1284/2093/214 586/755/214 +f 1286/2095/540 1285/2094/541 576/745/541 +f 1281/2090/211 583/752/211 579/748/542 +f 590/2097/540 783/2102/214 596/766/214 +f 581/750/542 580/749/211 592/762/211 +f 590/2097/540 595/765/543 600/1085/541 +f 580/749/211 588/758/544 598/768/537 +f 591/2099/542 784/2200/541 600/770/541 +f 585/757/539 597/767/539 598/768/537 +f 591/2099/542 602/773/542 604/775/211 +f 575/744/545 599/769/538 597/771/539 +f 587/756/541 581/750/542 594/764/542 +f 589/2101/538 593/763/538 596/766/214 +f 587/756/541 607/778/541 605/776/540 +f 589/2101/538 787/2104/539 606/777/539 +f 577/746/543 605/776/540 601/772/214 +f 786/2103/537 603/774/537 606/777/539 +f 574/743/214 601/772/214 599/769/538 +f 786/2103/537 785/2100/211 604/775/211 +f 1288/2105/4 1296/2113/549 1289/2106/546 +f 1291/2108/205 1360/2201/558 1292/2109/547 +f 1290/2107/23 1289/2106/546 1294/2111/548 +f 1293/2110/22 1292/2109/547 1296/2113/549 +f 1292/2109/547 1360/2201/558 1297/2114/550 +f 1289/2106/546 1301/2118/553 1299/2116/552 +f 1292/2109/547 1298/2115/551 1300/2117/38 +f 1289/2106/546 1296/2113/549 1300/2117/38 +f 1300/2117/38 1306/2123/185 1302/2119/554 +f 1298/2115/551 1297/2114/550 1303/2120/555 +f 1301/2118/553 1302/2119/554 1305/2122/557 +f 1300/2117/38 1298/2115/551 1304/2121/556 +f 1307/2124/4 1315/2132/549 1308/2125/546 +f 1310/2127/205 1361/2202/558 1311/2128/547 +f 1309/2126/23 1308/2125/546 1313/2130/548 +f 1312/2129/22 1311/2128/547 1315/2132/549 +f 1311/2128/547 1361/2202/558 1316/2133/550 +f 1308/2125/546 1320/2137/553 1318/2135/552 +f 1311/2128/547 1317/2134/551 1319/2136/38 +f 1308/2125/546 1315/2132/549 1319/2136/38 +f 1319/2136/38 1325/2142/185 1321/2138/554 +f 1317/2134/551 1316/2133/550 1322/2139/555 +f 1320/2137/553 1321/2138/554 1324/2141/557 +f 1317/2134/551 1323/2140/556 1325/2142/185 +f 1326/2143/4 1334/2151/549 1327/2144/546 +f 1329/2146/205 1362/2203/558 1330/2147/547 +f 1328/2145/23 1327/2144/546 1332/2149/548 +f 1331/2148/22 1330/2147/547 1334/2151/549 +f 1330/2147/547 1362/2203/558 1335/2152/550 +f 1327/2144/546 1339/2156/553 1337/2154/552 +f 1330/2147/547 1336/2153/551 1338/2155/38 +f 1327/2144/546 1334/2151/549 1338/2155/38 +f 1338/2155/38 1344/2161/185 1340/2157/554 +f 1336/2153/551 1335/2152/550 1341/2158/555 +f 1339/2156/553 1340/2157/554 1343/2160/557 +f 1336/2153/551 1342/2159/556 1344/2161/185 +f 1583/2204/559 1584/2205/158 1585/2206/559 +f 1586/2207/1 1587/2208/560 1588/2209/1 +f 1460/1242/561 1589/2210/562 1461/1243/561 +f 1583/2204/559 1590/2211/563 1591/2212/563 +f 1592/2213/564 1588/2209/1 1593/2214/564 +f 1466/1248/562 1594/2215/565 1589/2210/562 +f 1595/2216/566 1459/2217/567 1596/2218/566 +f 1567/2219/568 1590/2211/563 1463/2220/568 +f 1592/2213/564 1584/2205/158 1597/2221/158 +f 1568/2222/565 1598/2223/13 1594/2215/565 +f 1595/2216/566 1587/2208/560 1599/2224/560 +f 1462/1244/569 1598/2223/13 1600/2225/13 +f 1601/2226/562 1602/2227/155 1603/2228/155 +f 1604/2229/1 1605/2230/560 1606/2231/1 +f 1607/2232/570 1608/2233/563 1609/2234/570 +f 1610/2235/559 1611/2236/158 1612/2237/559 +f 1601/2226/562 1613/2238/565 1614/2239/562 +f 1615/2240/566 1605/2230/560 1616/2241/560 +f 1610/2242/559 1608/2233/563 1617/2243/563 +f 1618/2244/564 1611/2236/158 1619/2245/158 +f 1620/2246/13 1613/2238/565 1621/2247/565 +f 1615/2240/566 1602/2227/155 1622/2248/566 +f 1604/2229/1 1623/2249/564 1618/2244/564 +f 1620/2246/13 1609/2234/570 1624/2250/13 +f 1535/2251/571 1625/2252/572 1626/2253/571 +f 1535/2251/571 1627/2254/573 1532/2255/573 +f 1532/2255/573 1628/2256/574 1533/2257/574 +f 1533/2257/574 1629/2258/575 1530/2259/575 +f 1530/2259/575 1630/2260/576 1531/2261/576 +f 1544/2262/577 1630/2260/576 1631/2263/577 +f 1545/2264/578 1631/2263/577 1632/2265/578 +f 1542/2266/579 1632/2265/578 1633/2267/579 +f 1543/2268/580 1633/2267/579 1634/2269/580 +f 1543/2270/580 1635/2271/581 1540/2272/581 +f 1540/2272/581 1636/2273/582 1541/2274/582 +f 1538/2275/583 1636/2273/582 1637/2276/583 +f 1538/2275/583 1638/2277/584 1539/2278/584 +f 1539/2278/584 1639/2279/585 1536/2280/585 +f 1536/2280/585 1640/2281/586 1537/2282/586 +f 1534/2283/572 1640/2281/586 1625/2252/572 +f 1625/2252/212 1641/2284/2 1626/2253/2 +f 1626/2253/2 1642/2285/213 1627/2254/213 +f 1633/2267/215 1643/2286/4 1634/2269/4 +f 1640/2281/21 1644/2287/212 1625/2252/212 +f 1632/2265/22 1645/2288/215 1633/2267/215 +f 1639/2279/202 1646/2289/21 1640/2281/21 +f 1631/2263/205 1647/2290/22 1632/2265/22 +f 1638/2277/13 1648/2291/202 1639/2279/202 +f 1630/2260/1 1649/2292/205 1631/2263/205 +f 1637/2276/211 1650/2293/13 1638/2277/13 +f 1629/2258/214 1651/2294/1 1630/2260/1 +f 1636/2273/23 1652/2295/211 1637/2276/211 +f 1628/2256/24 1653/2296/214 1629/2258/214 +f 1635/2271/210 1654/2297/23 1636/2273/23 +f 1627/2254/213 1655/2298/24 1628/2256/24 +f 1634/2299/4 1656/2300/210 1635/2271/210 +f 1647/2290/587 1579/2301/588 1578/2302/587 +f 1648/2291/589 1573/2303/590 1572/2304/589 +f 1651/2294/591 1579/2305/588 1649/2292/588 +f 1650/2293/590 1574/2306/592 1573/2307/590 +f 1651/2294/591 1580/2308/593 1547/2309/591 +f 1654/2297/594 1574/2310/592 1652/2295/592 +f 1655/2298/595 1580/2311/593 1653/2296/593 +f 1654/2297/594 1576/2312/596 1575/2313/594 +f 1642/2285/597 1581/2314/595 1655/2298/595 +f 1643/2315/598 1576/2316/596 1656/2300/596 +f 1641/2284/599 1570/2317/600 1548/2318/599 +f 1641/2284/599 1582/2319/597 1642/2285/597 +f 1643/2286/598 1577/2320/601 1546/2321/598 +f 1646/2289/602 1570/2322/600 1644/2287/600 +f 1647/2290/587 1577/2323/601 1645/2288/601 +f 1646/2289/602 1572/2324/589 1571/2325/602 +f 1558/2326/213 1657/2327/2 1555/2328/2 +f 1563/2329/4 1658/2330/215 1564/2331/215 +f 1550/2332/210 1659/2333/4 1563/2329/4 +f 1555/2334/2 1660/2335/212 1556/2336/212 +f 1564/2331/215 1661/2337/22 1561/2338/22 +f 1556/2336/212 1662/2339/21 1553/2340/21 +f 1561/2338/22 1663/2341/205 1562/2342/205 +f 1553/2340/21 1664/2343/202 1554/2344/202 +f 1562/2342/205 1665/2345/1 1559/2346/1 +f 1554/2344/202 1666/2347/13 1551/2348/13 +f 1559/2346/1 1667/2349/214 1560/2350/214 +f 1551/2348/13 1668/2351/211 1552/2352/211 +f 1560/2350/214 1669/2353/24 1557/2354/24 +f 1552/2352/211 1670/2355/23 1549/2356/23 +f 1557/2354/24 1671/2357/213 1558/2326/213 +f 1549/2356/23 1672/2358/210 1550/2332/210 +f 1583/2204/559 1597/2221/158 1584/2205/158 +f 1586/2207/1 1599/2224/560 1587/2208/560 +f 1460/1242/561 1466/1248/562 1589/2210/562 +f 1583/2204/559 1585/2206/559 1590/2211/563 +f 1592/2213/564 1586/2207/1 1588/2209/1 +f 1466/1248/562 1568/2222/565 1594/2215/565 +f 1595/2216/566 1465/2359/567 1459/2217/567 +f 1567/2219/568 1591/2212/563 1590/2211/563 +f 1592/2213/564 1593/2214/564 1584/2205/158 +f 1568/2222/565 1600/2225/13 1598/2223/13 +f 1595/2216/566 1596/2218/566 1587/2208/560 +f 1462/1244/569 1464/1246/569 1598/2223/13 +f 1601/2226/562 1614/2239/562 1602/2227/155 +f 1604/2229/1 1616/2241/560 1605/2230/560 +f 1607/2232/570 1617/2243/563 1608/2233/563 +f 1610/2235/559 1619/2245/158 1611/2236/158 +f 1601/2226/562 1621/2247/565 1613/2238/565 +f 1615/2240/566 1622/2248/566 1605/2230/560 +f 1610/2242/559 1612/2360/559 1608/2233/563 +f 1618/2244/564 1623/2249/564 1611/2236/158 +f 1620/2246/13 1624/2250/13 1613/2238/565 +f 1615/2240/566 1603/2228/155 1602/2227/155 +f 1604/2229/1 1606/2231/1 1623/2249/564 +f 1620/2246/13 1607/2232/570 1609/2234/570 +f 1535/2251/571 1534/2283/572 1625/2252/572 +f 1535/2251/571 1626/2253/571 1627/2254/573 +f 1532/2255/573 1627/2254/573 1628/2256/574 +f 1533/2257/574 1628/2256/574 1629/2258/575 +f 1530/2259/575 1629/2258/575 1630/2260/576 +f 1544/2262/577 1531/2261/576 1630/2260/576 +f 1545/2264/578 1544/2262/577 1631/2263/577 +f 1542/2266/579 1545/2264/578 1632/2265/578 +f 1543/2268/580 1542/2266/579 1633/2267/579 +f 1543/2270/580 1634/2299/580 1635/2271/581 +f 1540/2272/581 1635/2271/581 1636/2273/582 +f 1538/2275/583 1541/2274/582 1636/2273/582 +f 1538/2275/583 1637/2276/583 1638/2277/584 +f 1539/2278/584 1638/2277/584 1639/2279/585 +f 1536/2280/585 1639/2279/585 1640/2281/586 +f 1534/2283/572 1537/2282/586 1640/2281/586 +f 1625/2252/212 1644/2287/212 1641/2284/2 +f 1626/2253/2 1641/2284/2 1642/2285/213 +f 1633/2267/215 1645/2288/215 1643/2286/4 +f 1640/2281/21 1646/2289/21 1644/2287/212 +f 1632/2265/22 1647/2290/22 1645/2288/215 +f 1639/2279/202 1648/2291/202 1646/2289/21 +f 1631/2263/205 1649/2292/205 1647/2290/22 +f 1638/2277/13 1650/2293/13 1648/2291/202 +f 1630/2260/1 1651/2294/1 1649/2292/205 +f 1637/2276/211 1652/2295/211 1650/2293/13 +f 1629/2258/214 1653/2296/214 1651/2294/1 +f 1636/2273/23 1654/2297/23 1652/2295/211 +f 1628/2256/24 1655/2298/24 1653/2296/214 +f 1635/2271/210 1656/2300/210 1654/2297/23 +f 1627/2254/213 1642/2285/213 1655/2298/24 +f 1634/2299/4 1643/2315/4 1656/2300/210 +f 1647/2290/587 1649/2292/588 1579/2301/588 +f 1648/2291/589 1650/2293/590 1573/2303/590 +f 1651/2294/591 1547/2361/591 1579/2305/588 +f 1650/2293/590 1652/2295/592 1574/2306/592 +f 1651/2294/591 1653/2296/593 1580/2308/593 +f 1654/2297/594 1575/2362/594 1574/2310/592 +f 1655/2298/595 1581/2363/595 1580/2311/593 +f 1654/2297/594 1656/2300/596 1576/2312/596 +f 1642/2285/597 1582/2364/597 1581/2314/595 +f 1643/2315/598 1546/2365/598 1576/2316/596 +f 1641/2284/599 1644/2287/600 1570/2317/600 +f 1641/2284/599 1548/2366/599 1582/2319/597 +f 1643/2286/598 1645/2288/601 1577/2320/601 +f 1646/2289/602 1571/2367/602 1570/2322/600 +f 1647/2290/587 1578/2368/587 1577/2323/601 +f 1646/2289/602 1648/2291/589 1572/2324/589 +f 1558/2326/213 1671/2357/213 1657/2327/2 +f 1563/2329/4 1659/2333/4 1658/2330/215 +f 1550/2332/210 1672/2358/210 1659/2333/4 +f 1555/2334/2 1657/2369/2 1660/2335/212 +f 1564/2331/215 1658/2330/215 1661/2337/22 +f 1556/2336/212 1660/2335/212 1662/2339/21 +f 1561/2338/22 1661/2337/22 1663/2341/205 +f 1553/2340/21 1662/2339/21 1664/2343/202 +f 1562/2342/205 1663/2341/205 1665/2345/1 +f 1554/2344/202 1664/2343/202 1666/2347/13 +f 1559/2346/1 1665/2345/1 1667/2349/214 +f 1551/2348/13 1666/2347/13 1668/2351/211 +f 1560/2350/214 1667/2349/214 1669/2353/24 +f 1552/2352/211 1668/2351/211 1670/2355/23 +f 1557/2354/24 1669/2353/24 1671/2357/213 +f 1549/2356/23 1670/2355/23 1672/2358/210 +o Fuel v 0.250000 2.227120 -3.053716 +v 0.324759 2.057188 -3.132957 +v 0.216506 2.113832 -3.106544 +v 0.324760 2.397053 -2.974475 +v 0.375000 2.227120 -3.053716 v 0.216506 2.340409 -3.000889 +v 0.187500 2.521452 -2.916467 +v 0.000000 2.566986 -2.895234 v 0.125000 2.423342 -2.962217 v 0.000000 2.453697 -2.948062 -v -0.125000 2.423342 -2.962217 -vt 0.250000 0.933013 -vt 0.500000 1.000000 -vt 0.750000 0.933013 -vt 0.933013 0.750000 +vt 1.000000 0.250000 +vt -0.000000 -0.000000 +vt 1.000000 0.000000 +vt -0.000000 0.500000 +vt 0.000000 0.250000 vt 1.000000 0.500000 -vt 0.933013 0.250000 -vt 0.750000 0.066987 -vt 0.500000 0.000000 -vt 0.250000 0.066987 -vt 0.066987 0.250000 -vt 0.000000 0.500000 -vt 0.066987 0.750000 +vt -0.000000 0.750000 +vt 0.000000 1.000000 +vt 1.000000 0.750000 +vt 1.000000 1.000000 vn 0.0000 0.4226 -0.9063 s off -f 24/13/2 23/14/2 22/15/2 21/16/2 20/17/2 19/18/2 18/19/2 17/20/2 16/21/2 15/22/2 14/23/2 13/24/2 -o Plane.002 -v -0.109472 2.437500 -0.413125 +f 1673/2370/603 1674/2371/603 1675/2372/603 +f 1673/2370/603 1676/2373/603 1677/2374/603 +f 1678/2375/603 1679/2376/603 1676/2373/603 +f 1680/2377/603 1681/2378/603 1682/2379/603 +f 1673/2370/603 1677/2374/603 1674/2371/603 +f 1673/2370/603 1678/2375/603 1676/2373/603 +f 1678/2375/603 1681/2378/603 1679/2376/603 +f 1680/2377/603 1679/2376/603 1681/2378/603 +o Rotor v 0.003817 2.437500 -0.360298 -v 0.109472 2.437500 -0.586875 v -0.003817 2.437500 -0.639702 -v 0.109472 2.312500 -0.586875 +v -0.109472 2.437500 -0.413125 +v 0.109472 2.437500 -0.586875 v -0.003817 2.312500 -0.639702 -v -0.109472 2.312500 -0.413125 v 0.003817 2.312500 -0.360298 -v 0.109472 0.062500 -0.413125 +v 0.109472 2.312500 -0.586875 +v -0.109472 2.312500 -0.413125 v -0.003817 0.062500 -0.360298 -v -0.109472 0.062500 -0.586875 v 0.003816 0.062500 -0.639702 -v -0.109472 0.187500 -0.586875 +v 0.109472 0.062500 -0.413125 +v -0.109472 0.062500 -0.586875 v 0.003816 0.187500 -0.639702 -v 0.109472 0.187500 -0.413125 v -0.003817 0.187500 -0.360298 -v 1.187500 1.359472 -0.413125 +v -0.109472 0.187500 -0.586875 +v 0.109472 0.187500 -0.413125 v 1.187500 1.246183 -0.360298 -v 1.187500 1.140528 -0.586875 v 1.187500 1.253817 -0.639702 -v 1.062500 1.140528 -0.586875 +v 1.187500 1.359472 -0.413125 +v 1.187500 1.140528 -0.586875 v 1.062500 1.253817 -0.639702 -v 1.062500 1.359472 -0.413125 v 1.062500 1.246183 -0.360298 -v -1.187500 1.140528 -0.413125 +v 1.062500 1.140528 -0.586875 +v 1.062500 1.359472 -0.413125 v -1.187500 1.253817 -0.360298 -v -1.187500 1.359473 -0.586875 v -1.187500 1.246184 -0.639702 +v -1.187500 1.140528 -0.413125 v -1.062500 1.359473 -0.586875 v -1.062500 1.246184 -0.639702 -v -1.062500 1.140528 -0.413125 v -1.062500 1.253817 -0.360298 -v 0.762281 2.167098 -0.413125 +v -1.187500 1.359473 -0.586875 +v -1.062500 1.140528 -0.413125 v 0.842388 2.086991 -0.360298 -v 0.917098 2.012281 -0.586875 v 0.836990 2.092388 -0.639702 -v 0.828709 1.923892 -0.586875 +v 0.762281 2.167098 -0.413125 +v 0.917098 2.012281 -0.586875 v 0.748602 2.004000 -0.639702 v 0.673892 2.078710 -0.413125 v 0.754000 1.998602 -0.360298 -v -0.762281 0.332902 -0.413125 +v 0.828709 1.923892 -0.586875 v -0.842388 0.413010 -0.360298 -v -0.917098 0.487720 -0.586875 v -0.836991 0.407612 -0.639702 +v -0.762281 0.332902 -0.413125 v -0.828710 0.576108 -0.586875 v -0.748602 0.496001 -0.639702 v -0.673892 0.421291 -0.413125 v -0.754000 0.501398 -0.360298 -v 0.917098 0.487720 -0.413125 +v -0.917098 0.487720 -0.586875 v 0.836990 0.407612 -0.360298 -v 0.762280 0.332902 -0.586875 v 0.842388 0.413010 -0.639702 -v 0.673892 0.421291 -0.586875 +v 0.917098 0.487720 -0.413125 +v 0.762280 0.332902 -0.586875 v 0.753999 0.501398 -0.639702 -v 0.828709 0.576108 -0.413125 v 0.748602 0.496001 -0.360298 -v -0.917098 2.012281 -0.413125 +v 0.673892 0.421291 -0.586875 +v 0.828709 0.576108 -0.413125 v -0.836990 2.092388 -0.360298 -v -0.762281 2.167098 -0.586875 v -0.842388 2.086991 -0.639702 +v -0.917098 2.012281 -0.413125 v -0.673892 2.078710 -0.586875 v -0.754000 1.998602 -0.639702 -v -0.828709 1.923893 -0.413125 v -0.748602 2.004000 -0.360298 -v 1.083141 0.751056 -0.413125 +v -0.762281 2.167098 -0.586875 +v -0.828709 1.923893 -0.413125 v 1.026497 0.652945 -0.360298 -v 0.973669 0.561444 -0.586875 v 1.030313 0.659555 -0.639702 -v 0.865416 0.623944 -0.586875 +v 1.083141 0.751056 -0.413125 +v 0.973669 0.561444 -0.586875 v 0.922060 0.722055 -0.639702 -v 0.974888 0.813556 -0.413125 v 0.918243 0.715445 -0.360298 -v -1.083141 1.748945 -0.413125 +v 0.865416 0.623944 -0.586875 +v 0.974888 0.813556 -0.413125 v -1.026497 1.847056 -0.360298 -v -0.973669 1.938556 -0.586875 v -1.030313 1.840445 -0.639702 +v -1.083141 1.748945 -0.413125 v -0.865416 1.876056 -0.586875 v -0.922060 1.777945 -0.639702 v -0.974888 1.686445 -0.413125 v -0.918244 1.784556 -0.360298 -v -0.498944 0.166859 -0.413125 +v -0.973669 1.938556 -0.586875 v -0.597055 0.223504 -0.360298 -v -0.688556 0.276331 -0.586875 v -0.590445 0.219687 -0.639702 -v -0.626056 0.384585 -0.586875 +v -0.498944 0.166859 -0.413125 +v -0.688556 0.276331 -0.586875 v -0.527945 0.327940 -0.639702 -v -0.436444 0.275112 -0.413125 v -0.534555 0.331757 -0.360298 -v 0.498944 2.333141 -0.413125 +v -0.626056 0.384585 -0.586875 +v -0.436444 0.275112 -0.413125 v 0.597055 2.276497 -0.360298 -v 0.688556 2.223669 -0.586875 v 0.590445 2.280313 -0.639702 -v 0.626056 2.115416 -0.586875 +v 0.498944 2.333141 -0.413125 +v 0.688556 2.223669 -0.586875 v 0.527945 2.172060 -0.639702 v 0.436444 2.224888 -0.413125 v 0.534555 2.168244 -0.360298 -v 0.413089 0.131297 -0.413125 +v 0.626056 2.115416 -0.586875 v 0.303661 0.101975 -0.360298 -v 0.201605 0.074630 -0.586875 v 0.311034 0.103951 -0.639702 -v 0.169253 0.195371 -0.586875 +v 0.413089 0.131297 -0.413125 +v 0.201605 0.074630 -0.586875 v 0.278682 0.224692 -0.639702 -v 0.380737 0.252038 -0.413125 v 0.271308 0.222716 -0.360298 -v -0.413090 2.368703 -0.413125 +v 0.169253 0.195371 -0.586875 +v 0.380737 0.252038 -0.413125 v -0.303661 2.398025 -0.360298 -v -0.201605 2.425371 -0.586875 v -0.311034 2.396049 -0.639702 +v -0.413090 2.368703 -0.413125 v -0.169253 2.304630 -0.586875 v -0.278682 2.275309 -0.639702 -v -0.380737 2.247963 -0.413125 v -0.271308 2.277284 -0.360298 -v -1.118703 0.836911 -0.413125 +v -0.201605 2.425371 -0.586875 +v -0.380737 2.247963 -0.413125 v -1.148025 0.946339 -0.360298 -v -1.175370 1.048395 -0.586875 v -1.146049 0.938966 -0.639702 +v -1.118703 0.836911 -0.413125 v -1.054630 1.080747 -0.586875 v -1.025308 0.971319 -0.639702 -v -0.997963 0.869263 -0.413125 v -1.027284 0.978692 -0.360298 -v 1.118703 1.663090 -0.413125 +v -1.175370 1.048395 -0.586875 +v -0.997963 0.869263 -0.413125 v 1.148025 1.553661 -0.360298 -v 1.175370 1.451605 -0.586875 v 1.146049 1.561034 -0.639702 -v 1.054630 1.419253 -0.586875 +v 1.118703 1.663090 -0.413125 +v 1.175370 1.451605 -0.586875 v 1.025308 1.528682 -0.639702 -v 0.997963 1.630737 -0.413125 v 1.027284 1.521308 -0.360298 -v -0.973669 0.561445 -0.413125 +v 1.054630 1.419253 -0.586875 +v 0.997963 1.630737 -0.413125 v -1.030313 0.659556 -0.360298 -v -1.083141 0.751056 -0.586875 v -1.026497 0.652945 -0.639702 +v -0.973669 0.561445 -0.413125 v -0.974888 0.813556 -0.586875 v -0.918244 0.715445 -0.639702 -v -0.865416 0.623945 -0.413125 v -0.922060 0.722056 -0.360298 -v 0.973669 1.938556 -0.413125 +v -1.083141 0.751056 -0.586875 +v -0.865416 0.623945 -0.413125 v 1.030313 1.840445 -0.360298 -v 1.083141 1.748944 -0.586875 v 1.026497 1.847055 -0.639702 +v 0.973669 1.938556 -0.413125 v 0.974888 1.686444 -0.586875 v 0.918244 1.784555 -0.639702 -v 0.865416 1.876056 -0.413125 v 0.922060 1.777945 -0.360298 -v -0.688556 2.223669 -0.413125 +v 1.083141 1.748944 -0.586875 +v 0.865416 1.876056 -0.413125 v -0.590444 2.280313 -0.360298 -v -0.498944 2.333141 -0.586875 v -0.597055 2.276497 -0.639702 -v -0.436444 2.224888 -0.586875 +v -0.688556 2.223669 -0.413125 +v -0.498944 2.333141 -0.586875 v -0.534555 2.168244 -0.639702 -v -0.626056 2.115416 -0.413125 v -0.527944 2.172060 -0.360298 -v 0.688555 0.276331 -0.413125 +v -0.436444 2.224888 -0.586875 +v -0.626056 2.115416 -0.413125 v 0.590444 0.219687 -0.360298 -v 0.498944 0.166859 -0.586875 v 0.597055 0.223503 -0.639702 -v 0.436444 0.275112 -0.586875 +v 0.688555 0.276331 -0.413125 +v 0.498944 0.166859 -0.586875 v 0.534555 0.331756 -0.639702 v 0.626055 0.384584 -0.413125 v 0.527944 0.327940 -0.360298 -v -1.175370 1.451606 -0.413125 +v 0.436444 0.275112 -0.586875 v -1.146049 1.561034 -0.360298 -v -1.118703 1.663090 -0.586875 v -1.148025 1.553661 -0.639702 -v -0.997963 1.630738 -0.586875 +v -1.175370 1.451606 -0.413125 +v -1.118703 1.663090 -0.586875 v -1.027284 1.521309 -0.639702 v -1.054630 1.419253 -0.413125 v -1.025308 1.528682 -0.360298 -v 1.175370 1.048394 -0.413125 +v -0.997963 1.630738 -0.586875 v 1.146049 0.938966 -0.360298 -v 1.118703 0.836910 -0.586875 v 1.148024 0.946339 -0.639702 +v 1.175370 1.048394 -0.413125 v 0.997963 0.869263 -0.586875 v 1.027284 0.978691 -0.639702 v 1.054630 1.080747 -0.413125 v 1.025308 0.971318 -0.360298 -v 0.201606 2.425370 -0.413125 +v 1.118703 0.836910 -0.586875 v 0.311034 2.396049 -0.360298 -v 0.413090 2.368703 -0.586875 v 0.303661 2.398025 -0.639702 -v 0.380738 2.247962 -0.586875 +v 0.201606 2.425370 -0.413125 +v 0.413090 2.368703 -0.586875 v 0.271309 2.277284 -0.639702 v 0.169253 2.304630 -0.413125 v 0.278682 2.275308 -0.360298 -v -0.201606 0.074630 -0.413125 +v 0.380738 2.247962 -0.586875 v -0.311035 0.103951 -0.360298 -v -0.413090 0.131297 -0.586875 v -0.303662 0.101975 -0.639702 -v -0.380738 0.252038 -0.586875 +v -0.201606 0.074630 -0.413125 +v -0.413090 0.131297 -0.586875 v -0.271309 0.222716 -0.639702 v -0.169254 0.195371 -0.413125 v -0.278682 0.224692 -0.360298 -vt 0.317241 0.109375 +v -0.380738 0.252038 -0.586875 vt 0.317241 0.125000 -vt 0.303448 0.125000 vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.140625 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.140625 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 vt 0.296552 0.125000 vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.140625 +vt 0.303448 0.125000 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.140625 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.140625 +vt 0.303448 0.125000 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.140625 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.140625 +vt 0.303448 0.125000 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.140625 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.303448 0.093750 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.140625 +vt 0.303448 0.125000 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.140625 +vt 0.303448 0.125000 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.140625 +vt 0.303448 0.125000 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.296552 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.140625 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.317241 0.140625 +vt 0.303448 0.140625 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 vt 0.324138 0.109375 vt 0.324138 0.125000 vt 0.317241 0.140625 vt 0.303448 0.140625 vt 0.303448 0.093750 vt 0.317241 0.093750 -vt 0.317241 0.109375 vt 0.317241 0.125000 -vt 0.303448 0.125000 vt 0.303448 0.109375 +vt 0.317241 0.109375 vt 0.296552 0.125000 vt 0.296552 0.109375 vt 0.324138 0.109375 vt 0.324138 0.125000 +vt 0.303448 0.140625 +vt 0.303448 0.125000 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 +vt 0.303448 0.140625 +vt 0.317241 0.093750 +vt 0.317241 0.125000 +vt 0.303448 0.109375 +vt 0.317241 0.109375 +vt 0.303448 0.125000 +vt 0.296552 0.109375 +vt 0.324138 0.109375 +vt 0.324138 0.125000 vt 0.317241 0.140625 vt 0.303448 0.140625 vt 0.303448 0.093750 vt 0.317241 0.093750 -vt 0.317241 0.109375 -vt 0.317241 0.125000 -vt 0.303448 0.125000 -vt 0.303448 0.109375 vt 0.296552 0.125000 -vt 0.296552 0.109375 vt 0.324138 0.109375 -vt 0.324138 0.125000 vt 0.317241 0.140625 -vt 0.303448 0.140625 vt 0.303448 0.093750 -vt 0.317241 0.093750 -vt 0.317241 0.109375 -vt 0.317241 0.125000 -vt 0.303448 0.125000 -vt 0.303448 0.109375 vt 0.296552 0.125000 -vt 0.296552 0.109375 vt 0.324138 0.109375 -vt 0.324138 0.125000 -vt 0.317241 0.140625 -vt 0.303448 0.140625 vt 0.303448 0.093750 -vt 0.317241 0.093750 -vt 0.317241 0.109375 -vt 0.317241 0.125000 -vt 0.303448 0.125000 -vt 0.303448 0.109375 vt 0.296552 0.125000 -vt 0.296552 0.109375 vt 0.324138 0.109375 -vt 0.324138 0.125000 vt 0.317241 0.140625 -vt 0.303448 0.140625 vt 0.303448 0.093750 -vt 0.317241 0.093750 -vt 0.317241 0.109375 -vt 0.317241 0.125000 -vt 0.303448 0.125000 -vt 0.303448 0.109375 +vt 0.324138 0.109375 +vt 0.317241 0.140625 +vt 0.303448 0.093750 vt 0.296552 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.109375 -vt 0.324138 0.125000 vt 0.317241 0.140625 -vt 0.303448 0.140625 vt 0.303448 0.093750 -vt 0.317241 0.093750 -vt 0.317241 0.109375 -vt 0.317241 0.125000 -vt 0.303448 0.125000 -vt 0.303448 0.109375 +vt 0.317241 0.140625 +vt 0.303448 0.093750 vt 0.296552 0.125000 -vt 0.296552 0.109375 vt 0.324138 0.109375 -vt 0.324138 0.125000 -vt 0.317241 0.140625 -vt 0.303448 0.140625 vt 0.303448 0.093750 -vt 0.317241 0.093750 -vt 0.317241 0.109375 -vt 0.317241 0.125000 -vt 0.303448 0.125000 -vt 0.303448 0.109375 +vt 0.324138 0.109375 +vt 0.303448 0.093750 vt 0.296552 0.125000 -vt 0.296552 0.109375 vt 0.324138 0.109375 -vt 0.324138 0.125000 vt 0.317241 0.140625 -vt 0.303448 0.140625 vt 0.303448 0.093750 -vt 0.317241 0.093750 -vt 0.317241 0.109375 -vt 0.317241 0.125000 -vt 0.303448 0.125000 -vt 0.303448 0.109375 +vt 0.317241 0.140625 +vt 0.303448 0.093750 vt 0.296552 0.125000 -vt 0.296552 0.109375 vt 0.324138 0.109375 -vt 0.324138 0.125000 vt 0.317241 0.140625 -vt 0.303448 0.140625 vt 0.303448 0.093750 -vt 0.317241 0.093750 -vt 0.317241 0.109375 -vt 0.317241 0.125000 -vt 0.303448 0.125000 -vt 0.303448 0.109375 vt 0.296552 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.109375 -vt 0.324138 0.125000 -vt 0.317241 0.140625 -vt 0.303448 0.140625 vt 0.303448 0.093750 -vt 0.317241 0.093750 -vt 0.317241 0.109375 -vt 0.317241 0.125000 -vt 0.303448 0.125000 -vt 0.303448 0.109375 vt 0.296552 0.125000 -vt 0.296552 0.109375 vt 0.324138 0.109375 -vt 0.324138 0.125000 +vt 0.324138 0.109375 +vt 0.317241 0.140625 +vt 0.303448 0.093750 +vt 0.324138 0.109375 vt 0.317241 0.140625 -vt 0.303448 0.140625 vt 0.303448 0.093750 -vt 0.317241 0.093750 -vt 0.317241 0.109375 -vt 0.317241 0.125000 -vt 0.303448 0.125000 -vt 0.303448 0.109375 vt 0.296552 0.125000 -vt 0.296552 0.109375 vt 0.324138 0.109375 -vt 0.324138 0.125000 -vt 0.317241 0.140625 -vt 0.303448 0.140625 vt 0.303448 0.093750 -vt 0.317241 0.093750 -vt 0.317241 0.109375 -vt 0.317241 0.125000 -vt 0.303448 0.125000 -vt 0.303448 0.109375 +vt 0.324138 0.109375 +vt 0.317241 0.140625 +vt 0.303448 0.093750 +vt 0.324138 0.109375 +vt 0.303448 0.093750 vt 0.296552 0.125000 -vt 0.296552 0.109375 vt 0.324138 0.109375 -vt 0.324138 0.125000 vt 0.317241 0.140625 -vt 0.303448 0.140625 vt 0.303448 0.093750 -vt 0.317241 0.093750 -vt 0.317241 0.109375 -vt 0.317241 0.125000 -vt 0.303448 0.125000 -vt 0.303448 0.109375 vt 0.296552 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.109375 -vt 0.324138 0.125000 -vt 0.317241 0.140625 -vt 0.303448 0.140625 vt 0.303448 0.093750 -vt 0.317241 0.093750 -vt 0.317241 0.109375 -vt 0.317241 0.125000 -vt 0.303448 0.125000 -vt 0.303448 0.109375 vt 0.296552 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.109375 -vt 0.324138 0.125000 vt 0.317241 0.140625 -vt 0.303448 0.140625 vt 0.303448 0.093750 -vt 0.317241 0.093750 -vt 0.317241 0.109375 -vt 0.317241 0.125000 -vt 0.303448 0.125000 -vt 0.303448 0.109375 vt 0.296552 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.109375 -vt 0.324138 0.125000 vt 0.317241 0.140625 -vt 0.303448 0.140625 vt 0.303448 0.093750 -vt 0.317241 0.093750 -vt 0.317241 0.109375 -vt 0.317241 0.125000 -vt 0.303448 0.125000 -vt 0.303448 0.109375 vt 0.296552 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.109375 -vt 0.324138 0.125000 -vt 0.317241 0.140625 -vt 0.303448 0.140625 -vt 0.303448 0.093750 -vt 0.317241 0.093750 -vt 0.317241 0.109375 -vt 0.317241 0.125000 -vt 0.303448 0.125000 -vt 0.303448 0.109375 -vt 0.296552 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.109375 -vt 0.324138 0.125000 -vt 0.317241 0.140625 -vt 0.303448 0.140625 -vt 0.303448 0.093750 -vt 0.317241 0.093750 -vt 0.317241 0.109375 -vt 0.317241 0.125000 -vt 0.303448 0.125000 -vt 0.303448 0.109375 -vt 0.296552 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.109375 -vt 0.324138 0.125000 -vt 0.317241 0.140625 -vt 0.303448 0.140625 -vt 0.303448 0.093750 -vt 0.317241 0.093750 -vt 0.317241 0.109375 -vt 0.317241 0.125000 -vt 0.303448 0.125000 -vt 0.303448 0.109375 -vt 0.296552 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.109375 -vt 0.324138 0.125000 -vt 0.317241 0.140625 -vt 0.303448 0.140625 -vt 0.303448 0.093750 -vt 0.317241 0.093750 -vt 0.317241 0.109375 -vt 0.317241 0.125000 -vt 0.303448 0.125000 -vt 0.303448 0.109375 -vt 0.296552 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.109375 -vt 0.324138 0.125000 -vt 0.317241 0.140625 -vt 0.303448 0.140625 -vt 0.303448 0.093750 -vt 0.317241 0.093750 -vt 0.317241 0.109375 -vt 0.317241 0.125000 -vt 0.303448 0.125000 -vt 0.303448 0.109375 -vt 0.296552 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.109375 -vt 0.324138 0.125000 -vt 0.317241 0.140625 -vt 0.303448 0.140625 -vt 0.303448 0.093750 -vt 0.317241 0.093750 -vt 0.317241 0.109375 -vt 0.317241 0.125000 -vt 0.303448 0.125000 -vt 0.303448 0.109375 -vt 0.296552 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.109375 -vt 0.324138 0.125000 -vt 0.317241 0.140625 -vt 0.303448 0.140625 -vt 0.303448 0.093750 -vt 0.317241 0.093750 -vt 0.317241 0.109375 -vt 0.317241 0.125000 -vt 0.303448 0.125000 -vt 0.303448 0.109375 -vt 0.296552 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.109375 -vt 0.324138 0.125000 -vt 0.317241 0.140625 -vt 0.303448 0.140625 -vt 0.303448 0.093750 -vt 0.317241 0.093750 vn 0.0000 1.0000 0.0000 vn 0.4226 0.0000 -0.9063 vn -0.4226 -0.0000 0.9063 -vn 0.9063 -0.0000 0.4226 +vn 0.9063 0.0000 0.4226 vn -0.9063 0.0000 -0.4226 -vn 0.0000 -1.0000 -0.0000 -vn -0.4226 -0.0000 -0.9063 -vn 0.4226 -0.0000 0.9063 +vn -0.0000 -1.0000 -0.0000 +vn -0.4226 0.0000 -0.9063 +vn 0.4226 0.0000 0.9063 vn -0.9063 0.0000 0.4226 -vn 0.9063 -0.0000 -0.4226 +vn 0.9063 0.0000 -0.4226 vn 1.0000 0.0000 0.0000 vn 0.0000 -0.4226 -0.9063 vn 0.0000 0.4226 0.9063 @@ -557,7 +7804,7 @@ vn 0.0000 0.4226 -0.9063 vn 0.0000 -0.4226 0.9063 vn 0.0000 0.9063 0.4226 vn 0.0000 -0.9063 -0.4226 -vn 0.7071 0.7071 0.0000 +vn 0.7071 0.7071 -0.0000 vn 0.2988 -0.2988 -0.9063 vn -0.2988 0.2988 0.9063 vn 0.6409 -0.6409 0.4226 @@ -577,7 +7824,7 @@ vn 0.2988 0.2988 -0.9063 vn -0.2988 -0.2988 0.9063 vn 0.6409 0.6409 0.4226 vn -0.6409 -0.6409 -0.4226 -vn 0.8660 -0.5000 0.0000 +vn 0.8660 -0.5000 -0.0000 vn -0.2113 -0.3660 -0.9063 vn 0.2113 0.3660 0.9063 vn -0.4532 -0.7849 0.4226 @@ -592,7 +7839,7 @@ vn -0.3660 0.2113 -0.9063 vn 0.3660 -0.2113 0.9063 vn -0.7849 0.4532 0.4226 vn 0.7849 -0.4532 -0.4226 -vn 0.5000 0.8660 0.0000 +vn 0.5000 0.8660 -0.0000 vn 0.3660 -0.2113 -0.9063 vn -0.3660 0.2113 0.9063 vn 0.7849 -0.4532 0.4226 @@ -607,12 +7854,12 @@ vn 0.4082 0.1094 -0.9063 vn -0.4082 -0.1094 0.9063 vn 0.8754 0.2346 0.4226 vn -0.8754 -0.2346 -0.4226 -vn -0.9659 -0.2588 0.0000 +vn -0.9659 -0.2588 -0.0000 vn -0.1094 0.4082 -0.9063 vn 0.1094 -0.4082 0.9063 vn -0.2346 0.8754 0.4226 vn 0.2346 -0.8754 -0.4226 -vn 0.9659 0.2588 0.0000 +vn 0.9659 0.2588 -0.0000 vn 0.1094 -0.4082 -0.9063 vn -0.1094 0.4082 0.9063 vn 0.2346 -0.8754 0.4226 @@ -632,7 +7879,7 @@ vn 0.3660 0.2113 -0.9063 vn -0.3660 -0.2113 0.9063 vn 0.7849 0.4532 0.4226 vn -0.7849 -0.4532 -0.4226 -vn 0.5000 -0.8660 -0.0000 +vn 0.5000 -0.8660 0.0000 vn -0.3660 -0.2113 -0.9063 vn 0.3660 0.2113 0.9063 vn -0.7849 -0.4532 0.4226 @@ -658,5891 +7905,317 @@ vn 0.4082 -0.1094 0.9063 vn -0.8754 0.2346 0.4226 vn 0.8754 -0.2346 -0.4226 s off -f 25/25/3 26/26/3 27/27/3 28/28/3 -f 28/28/4 27/27/4 29/29/4 30/30/4 -f 26/26/5 25/25/5 31/31/5 32/32/5 -f 27/27/6 26/26/6 32/33/6 29/34/6 -f 25/25/7 28/28/7 30/35/7 31/36/7 -f 33/37/8 34/38/8 35/39/8 36/40/8 -f 36/40/9 35/39/9 37/41/9 38/42/9 -f 34/38/10 33/37/10 39/43/10 40/44/10 -f 35/39/11 34/38/11 40/45/11 37/46/11 -f 33/37/12 36/40/12 38/47/12 39/48/12 -f 41/49/13 42/50/13 43/51/13 44/52/13 -f 44/52/14 43/51/14 45/53/14 46/54/14 -f 42/50/15 41/49/15 47/55/15 48/56/15 -f 43/51/16 42/50/16 48/57/16 45/58/16 -f 41/49/17 44/52/17 46/59/17 47/60/17 -f 49/61/18 50/62/18 51/63/18 52/64/18 -f 52/64/19 51/63/19 53/65/19 54/66/19 -f 50/62/20 49/61/20 55/67/20 56/68/20 -f 51/63/21 50/62/21 56/69/21 53/70/21 -f 49/61/22 52/64/22 54/71/22 55/72/22 -f 57/73/23 58/74/23 59/75/23 60/76/23 -f 60/76/24 59/75/24 61/77/24 62/78/24 -f 58/74/25 57/73/25 63/79/25 64/80/25 -f 59/75/26 58/74/26 64/81/26 61/82/26 -f 57/73/27 60/76/27 62/83/27 63/84/27 -f 65/85/28 66/86/28 67/87/28 68/88/28 -f 68/88/29 67/87/29 69/89/29 70/90/29 -f 66/86/30 65/85/30 71/91/30 72/92/30 -f 67/87/31 66/86/31 72/93/31 69/94/31 -f 65/85/32 68/88/32 70/95/32 71/96/32 -f 73/97/33 74/98/33 75/99/33 76/100/33 -f 76/100/34 75/99/34 77/101/34 78/102/34 -f 74/98/35 73/97/35 79/103/35 80/104/35 -f 75/99/36 74/98/36 80/105/36 77/106/36 -f 73/97/37 76/100/37 78/107/37 79/108/37 -f 81/109/38 82/110/38 83/111/38 84/112/38 -f 84/112/39 83/111/39 85/113/39 86/114/39 -f 82/110/40 81/109/40 87/115/40 88/116/40 -f 83/111/41 82/110/41 88/117/41 85/118/41 -f 81/109/42 84/112/42 86/119/42 87/120/42 -f 89/121/43 90/122/43 91/123/43 92/124/43 -f 92/124/44 91/123/44 93/125/44 94/126/44 -f 90/122/45 89/121/45 95/127/45 96/128/45 -f 91/123/46 90/122/46 96/129/46 93/130/46 -f 89/121/47 92/124/47 94/131/47 95/132/47 -f 97/133/48 98/134/48 99/135/48 100/136/48 -f 100/136/49 99/135/49 101/137/49 102/138/49 -f 98/134/50 97/133/50 103/139/50 104/140/50 -f 99/135/51 98/134/51 104/141/51 101/142/51 -f 97/133/52 100/136/52 102/143/52 103/144/52 -f 105/145/53 106/146/53 107/147/53 108/148/53 -f 108/148/54 107/147/54 109/149/54 110/150/54 -f 106/146/55 105/145/55 111/151/55 112/152/55 -f 107/147/56 106/146/56 112/153/56 109/154/56 -f 105/145/57 108/148/57 110/155/57 111/156/57 -f 113/157/58 114/158/58 115/159/58 116/160/58 -f 116/160/59 115/159/59 117/161/59 118/162/59 -f 114/158/60 113/157/60 119/163/60 120/164/60 -f 115/159/61 114/158/61 120/165/61 117/166/61 -f 113/157/62 116/160/62 118/167/62 119/168/62 -f 121/169/63 122/170/63 123/171/63 124/172/63 -f 124/172/64 123/171/64 125/173/64 126/174/64 -f 122/170/65 121/169/65 127/175/65 128/176/65 -f 123/171/66 122/170/66 128/177/66 125/178/66 -f 121/169/67 124/172/67 126/179/67 127/180/67 -f 129/181/68 130/182/68 131/183/68 132/184/68 -f 132/184/69 131/183/69 133/185/69 134/186/69 -f 130/182/70 129/181/70 135/187/70 136/188/70 -f 131/183/71 130/182/71 136/189/71 133/190/71 -f 129/181/72 132/184/72 134/191/72 135/192/72 -f 137/193/73 138/194/73 139/195/73 140/196/73 -f 140/196/74 139/195/74 141/197/74 142/198/74 -f 138/194/75 137/193/75 143/199/75 144/200/75 -f 139/195/76 138/194/76 144/201/76 141/202/76 -f 137/193/77 140/196/77 142/203/77 143/204/77 -f 145/205/78 146/206/78 147/207/78 148/208/78 -f 148/208/79 147/207/79 149/209/79 150/210/79 -f 146/206/80 145/205/80 151/211/80 152/212/80 -f 147/207/81 146/206/81 152/213/81 149/214/81 -f 145/205/82 148/208/82 150/215/82 151/216/82 -f 153/217/83 154/218/83 155/219/83 156/220/83 -f 156/220/84 155/219/84 157/221/84 158/222/84 -f 154/218/85 153/217/85 159/223/85 160/224/85 -f 155/219/86 154/218/86 160/225/86 157/226/86 -f 153/217/87 156/220/87 158/227/87 159/228/87 -f 161/229/88 162/230/88 163/231/88 164/232/88 -f 164/232/89 163/231/89 165/233/89 166/234/89 -f 162/230/90 161/229/90 167/235/90 168/236/90 -f 163/231/91 162/230/91 168/237/91 165/238/91 -f 161/229/92 164/232/92 166/239/92 167/240/92 -f 169/241/93 170/242/93 171/243/93 172/244/93 -f 172/244/94 171/243/94 173/245/94 174/246/94 -f 170/242/95 169/241/95 175/247/95 176/248/95 -f 171/243/96 170/242/96 176/249/96 173/250/96 -f 169/241/97 172/244/97 174/251/97 175/252/97 -f 177/253/98 178/254/98 179/255/98 180/256/98 -f 180/256/99 179/255/99 181/257/99 182/258/99 -f 178/254/100 177/253/100 183/259/100 184/260/100 -f 179/255/101 178/254/101 184/261/101 181/262/101 -f 177/253/102 180/256/102 182/263/102 183/264/102 -f 185/265/103 186/266/103 187/267/103 188/268/103 -f 188/268/104 187/267/104 189/269/104 190/270/104 -f 186/266/105 185/265/105 191/271/105 192/272/105 -f 187/267/106 186/266/106 192/273/106 189/274/106 -f 185/265/107 188/268/107 190/275/107 191/276/107 -f 193/277/108 194/278/108 195/279/108 196/280/108 -f 196/280/109 195/279/109 197/281/109 198/282/109 -f 194/278/110 193/277/110 199/283/110 200/284/110 -f 195/279/111 194/278/111 200/285/111 197/286/111 -f 193/277/112 196/280/112 198/287/112 199/288/112 -f 201/289/113 202/290/113 203/291/113 204/292/113 -f 204/292/114 203/291/114 205/293/114 206/294/114 -f 202/290/115 201/289/115 207/295/115 208/296/115 -f 203/291/116 202/290/116 208/297/116 205/298/116 -f 201/289/117 204/292/117 206/299/117 207/300/117 -f 209/301/118 210/302/118 211/303/118 212/304/118 -f 212/304/119 211/303/119 213/305/119 214/306/119 -f 210/302/120 209/301/120 215/307/120 216/308/120 -f 211/303/121 210/302/121 216/309/121 213/310/121 -f 209/301/122 212/304/122 214/311/122 215/312/122 -o Plane.001 +f 1683/2380/604 1684/2381/604 1685/2382/604 +f 1686/2383/605 1687/2384/605 1684/2381/605 +f 1685/2382/606 1688/2385/606 1683/2380/606 +f 1683/2380/607 1689/2386/607 1686/2383/607 +f 1684/2381/608 1690/2387/608 1685/2382/608 +f 1691/2388/609 1692/2389/609 1693/2390/609 +f 1694/2391/610 1695/2392/610 1692/2389/610 +f 1693/2390/611 1696/2393/611 1691/2388/611 +f 1694/2391/612 1696/2394/612 1697/2395/612 +f 1692/2389/613 1698/2396/613 1693/2390/613 +f 1699/2397/614 1700/2398/614 1701/2399/614 +f 1702/2400/615 1703/2401/615 1700/2398/615 +f 1701/2399/616 1704/2402/616 1699/2397/616 +f 1699/2397/617 1705/2403/617 1702/2400/617 +f 1700/2398/618 1706/2404/618 1701/2399/618 +f 1707/2405/619 1708/2406/619 1709/2407/619 +f 1708/2406/620 1710/2408/620 1711/2409/620 +f 1709/2407/621 1712/2410/621 1707/2405/621 +f 1707/2405/622 1710/2411/622 1713/2412/622 +f 1708/2406/623 1714/2413/623 1709/2407/623 +f 1715/2414/624 1716/2415/624 1717/2416/624 +f 1718/2417/625 1719/2418/625 1716/2415/625 +f 1715/2414/626 1720/2419/626 1721/2420/626 +f 1715/2414/627 1722/2421/627 1718/2417/627 +f 1716/2415/628 1720/2422/628 1717/2416/628 +f 1723/2423/629 1724/2424/629 1725/2425/629 +f 1724/2424/630 1726/2426/630 1727/2427/630 +f 1723/2423/631 1728/2428/631 1729/2429/631 +f 1723/2423/632 1726/2430/632 1730/2431/632 +f 1724/2424/633 1728/2432/633 1725/2425/633 +f 1731/2433/634 1732/2434/634 1733/2435/634 +f 1734/2436/635 1735/2437/635 1732/2434/635 +f 1733/2435/636 1736/2438/636 1731/2433/636 +f 1734/2436/637 1736/2439/637 1737/2440/637 +f 1732/2434/638 1738/2441/638 1733/2435/638 +f 1739/2442/639 1740/2443/639 1741/2444/639 +f 1740/2443/640 1742/2445/640 1743/2446/640 +f 1741/2444/641 1744/2447/641 1739/2442/641 +f 1745/2448/642 1744/2449/642 1742/2450/642 +f 1740/2443/643 1746/2451/643 1741/2444/643 +f 1747/2452/644 1748/2453/644 1749/2454/644 +f 1750/2455/645 1751/2456/645 1748/2453/645 +f 1749/2454/646 1752/2457/646 1747/2452/646 +f 1747/2452/647 1753/2458/647 1750/2455/647 +f 1748/2453/648 1754/2459/648 1749/2454/648 +f 1755/2460/649 1756/2461/649 1757/2462/649 +f 1756/2461/650 1758/2463/650 1759/2464/650 +f 1755/2460/651 1760/2465/651 1761/2466/651 +f 1755/2460/652 1758/2467/652 1762/2468/652 +f 1756/2461/653 1760/2469/653 1757/2462/653 +f 1763/2470/654 1764/2471/654 1765/2472/654 +f 1766/2473/655 1767/2474/655 1764/2471/655 +f 1765/2472/656 1768/2475/656 1763/2470/656 +f 1763/2470/657 1769/2476/657 1766/2473/657 +f 1764/2471/658 1770/2477/658 1765/2472/658 +f 1771/2478/659 1772/2479/659 1773/2480/659 +f 1774/2481/660 1775/2482/660 1772/2479/660 +f 1771/2478/661 1776/2483/661 1777/2484/661 +f 1774/2481/662 1777/2485/662 1778/2486/662 +f 1772/2479/663 1776/2487/663 1773/2480/663 +f 1779/2488/664 1780/2489/664 1781/2490/664 +f 1782/2491/665 1783/2492/665 1780/2489/665 +f 1781/2490/666 1784/2493/666 1779/2488/666 +f 1782/2491/667 1784/2494/667 1785/2495/667 +f 1781/2490/668 1783/2496/668 1786/2497/668 +f 1787/2498/669 1788/2499/669 1789/2500/669 +f 1788/2499/670 1790/2501/670 1791/2502/670 +f 1789/2500/671 1792/2503/671 1787/2498/671 +f 1787/2498/672 1790/2504/672 1793/2505/672 +f 1788/2499/673 1794/2506/673 1789/2500/673 +f 1795/2507/674 1796/2508/674 1797/2509/674 +f 1796/2508/675 1798/2510/675 1799/2511/675 +f 1797/2509/676 1800/2512/676 1795/2507/676 +f 1795/2507/677 1798/2513/677 1801/2514/677 +f 1796/2508/678 1802/2515/678 1797/2509/678 +f 1803/2516/679 1804/2517/679 1805/2518/679 +f 1806/2519/680 1807/2520/680 1804/2517/680 +f 1805/2518/681 1808/2521/681 1803/2516/681 +f 1806/2519/682 1808/2522/682 1809/2523/682 +f 1804/2517/683 1810/2524/683 1805/2518/683 +f 1811/2525/684 1812/2526/684 1813/2527/684 +f 1812/2526/685 1814/2528/685 1815/2529/685 +f 1813/2527/686 1816/2530/686 1811/2525/686 +f 1811/2525/687 1814/2531/687 1817/2532/687 +f 1812/2526/688 1818/2533/688 1813/2527/688 +f 1819/2534/689 1820/2535/689 1821/2536/689 +f 1820/2535/690 1822/2537/690 1823/2538/690 +f 1821/2536/691 1824/2539/691 1819/2534/691 +f 1825/2540/692 1824/2541/692 1822/2542/692 +f 1820/2535/693 1826/2543/693 1821/2536/693 +f 1827/2544/694 1828/2545/694 1829/2546/694 +f 1830/2547/695 1831/2548/695 1828/2545/695 +f 1829/2546/696 1832/2549/696 1827/2544/696 +f 1827/2544/697 1833/2550/697 1830/2547/697 +f 1828/2545/698 1834/2551/698 1829/2546/698 +f 1835/2552/699 1836/2553/699 1837/2554/699 +f 1838/2555/700 1839/2556/700 1836/2553/700 +f 1835/2552/701 1840/2557/701 1841/2558/701 +f 1838/2555/702 1841/2559/702 1842/2560/702 +f 1836/2553/703 1840/2561/703 1837/2554/703 +f 1843/2562/704 1844/2563/704 1845/2564/704 +f 1846/2565/705 1847/2566/705 1844/2563/705 +f 1843/2562/706 1848/2567/706 1849/2568/706 +f 1846/2565/707 1849/2569/707 1850/2570/707 +f 1845/2564/708 1847/2571/708 1848/2572/708 +f 1851/2573/709 1852/2574/709 1853/2575/709 +f 1852/2574/710 1854/2576/710 1855/2577/710 +f 1851/2573/711 1856/2578/711 1857/2579/711 +f 1851/2573/712 1854/2580/712 1858/2581/712 +f 1852/2574/713 1856/2582/713 1853/2575/713 +f 1859/2583/714 1860/2584/714 1861/2585/714 +f 1862/2586/715 1863/2587/715 1860/2584/715 +f 1859/2583/716 1864/2588/716 1865/2589/716 +f 1859/2583/717 1866/2590/717 1862/2586/717 +f 1860/2584/718 1864/2591/718 1861/2585/718 +f 1867/2592/719 1868/2593/719 1869/2594/719 +f 1870/2595/720 1871/2596/720 1868/2593/720 +f 1867/2592/721 1872/2597/721 1873/2598/721 +f 1870/2595/722 1873/2599/722 1874/2600/722 +f 1869/2594/723 1871/2601/723 1872/2602/723 +f 1683/2380/604 1686/2383/604 1684/2381/604 +f 1686/2383/605 1689/2603/605 1687/2384/605 +f 1685/2382/606 1690/2604/606 1688/2385/606 +f 1683/2380/607 1688/2605/607 1689/2386/607 +f 1684/2381/608 1687/2606/608 1690/2387/608 +f 1691/2388/609 1694/2391/609 1692/2389/609 +f 1694/2391/610 1697/2607/610 1695/2392/610 +f 1693/2390/611 1698/2608/611 1696/2393/611 +f 1694/2391/612 1691/2388/612 1696/2394/612 +f 1692/2389/613 1695/2609/613 1698/2396/613 +f 1699/2397/614 1702/2400/614 1700/2398/614 +f 1702/2400/615 1705/2610/615 1703/2401/615 +f 1701/2399/616 1706/2611/616 1704/2402/616 +f 1699/2397/617 1704/2612/617 1705/2403/617 +f 1700/2398/618 1703/2613/618 1706/2404/618 +f 1707/2405/619 1713/2412/619 1708/2406/619 +f 1708/2406/620 1713/2412/620 1710/2408/620 +f 1709/2407/621 1714/2614/621 1712/2410/621 +f 1707/2405/622 1712/2615/622 1710/2411/622 +f 1708/2406/623 1711/2616/623 1714/2413/623 +f 1715/2414/624 1718/2417/624 1716/2415/624 +f 1718/2417/625 1722/2617/625 1719/2418/625 +f 1715/2414/626 1717/2416/626 1720/2419/626 +f 1715/2414/627 1721/2618/627 1722/2421/627 +f 1716/2415/628 1719/2619/628 1720/2422/628 +f 1723/2423/629 1730/2431/629 1724/2424/629 +f 1724/2424/630 1730/2431/630 1726/2426/630 +f 1723/2423/631 1725/2425/631 1728/2428/631 +f 1723/2423/632 1729/2620/632 1726/2430/632 +f 1724/2424/633 1727/2621/633 1728/2432/633 +f 1731/2433/634 1734/2436/634 1732/2434/634 +f 1734/2436/635 1737/2622/635 1735/2437/635 +f 1733/2435/636 1738/2623/636 1736/2438/636 +f 1734/2436/637 1731/2433/637 1736/2439/637 +f 1732/2434/638 1735/2624/638 1738/2441/638 +f 1739/2442/639 1745/2448/639 1740/2443/639 +f 1740/2443/640 1745/2448/640 1742/2445/640 +f 1741/2444/641 1746/2625/641 1744/2447/641 +f 1745/2448/642 1739/2442/642 1744/2449/642 +f 1740/2443/643 1743/2626/643 1746/2451/643 +f 1747/2452/644 1750/2455/644 1748/2453/644 +f 1750/2455/645 1753/2627/645 1751/2456/645 +f 1749/2454/646 1754/2628/646 1752/2457/646 +f 1747/2452/647 1752/2629/647 1753/2458/647 +f 1748/2453/648 1751/2630/648 1754/2459/648 +f 1755/2460/649 1762/2468/649 1756/2461/649 +f 1756/2461/650 1762/2468/650 1758/2463/650 +f 1755/2460/651 1757/2462/651 1760/2465/651 +f 1755/2460/652 1761/2631/652 1758/2467/652 +f 1756/2461/653 1759/2632/653 1760/2469/653 +f 1763/2470/654 1766/2473/654 1764/2471/654 +f 1766/2473/655 1769/2633/655 1767/2474/655 +f 1765/2472/656 1770/2634/656 1768/2475/656 +f 1763/2470/657 1768/2635/657 1769/2476/657 +f 1764/2471/658 1767/2636/658 1770/2477/658 +f 1771/2478/659 1774/2481/659 1772/2479/659 +f 1774/2481/660 1778/2637/660 1775/2482/660 +f 1771/2478/661 1773/2480/661 1776/2483/661 +f 1774/2481/662 1771/2478/662 1777/2485/662 +f 1772/2479/663 1775/2638/663 1776/2487/663 +f 1779/2488/664 1782/2491/664 1780/2489/664 +f 1782/2491/665 1785/2639/665 1783/2492/665 +f 1781/2490/666 1786/2640/666 1784/2493/666 +f 1782/2491/667 1779/2488/667 1784/2494/667 +f 1781/2490/668 1780/2489/668 1783/2496/668 +f 1787/2498/669 1793/2505/669 1788/2499/669 +f 1788/2499/670 1793/2505/670 1790/2501/670 +f 1789/2500/671 1794/2641/671 1792/2503/671 +f 1787/2498/672 1792/2642/672 1790/2504/672 +f 1788/2499/673 1791/2643/673 1794/2506/673 +f 1795/2507/674 1801/2514/674 1796/2508/674 +f 1796/2508/675 1801/2514/675 1798/2510/675 +f 1797/2509/676 1802/2644/676 1800/2512/676 +f 1795/2507/677 1800/2645/677 1798/2513/677 +f 1796/2508/678 1799/2646/678 1802/2515/678 +f 1803/2516/679 1806/2519/679 1804/2517/679 +f 1806/2519/680 1809/2647/680 1807/2520/680 +f 1805/2518/681 1810/2648/681 1808/2521/681 +f 1806/2519/682 1803/2516/682 1808/2522/682 +f 1804/2517/683 1807/2649/683 1810/2524/683 +f 1811/2525/684 1817/2532/684 1812/2526/684 +f 1812/2526/685 1817/2532/685 1814/2528/685 +f 1813/2527/686 1818/2650/686 1816/2530/686 +f 1811/2525/687 1816/2651/687 1814/2531/687 +f 1812/2526/688 1815/2652/688 1818/2533/688 +f 1819/2534/689 1825/2540/689 1820/2535/689 +f 1820/2535/690 1825/2540/690 1822/2537/690 +f 1821/2536/691 1826/2653/691 1824/2539/691 +f 1825/2540/692 1819/2534/692 1824/2541/692 +f 1820/2535/693 1823/2654/693 1826/2543/693 +f 1827/2544/694 1830/2547/694 1828/2545/694 +f 1830/2547/695 1833/2655/695 1831/2548/695 +f 1829/2546/696 1834/2656/696 1832/2549/696 +f 1827/2544/697 1832/2657/697 1833/2550/697 +f 1828/2545/698 1831/2658/698 1834/2551/698 +f 1835/2552/699 1838/2555/699 1836/2553/699 +f 1838/2555/700 1842/2659/700 1839/2556/700 +f 1835/2552/701 1837/2554/701 1840/2557/701 +f 1838/2555/702 1835/2552/702 1841/2559/702 +f 1836/2553/703 1839/2660/703 1840/2561/703 +f 1843/2562/704 1846/2565/704 1844/2563/704 +f 1846/2565/705 1850/2661/705 1847/2566/705 +f 1843/2562/706 1845/2564/706 1848/2567/706 +f 1846/2565/707 1843/2562/707 1849/2569/707 +f 1845/2564/708 1844/2563/708 1847/2571/708 +f 1851/2573/709 1858/2581/709 1852/2574/709 +f 1852/2574/710 1858/2581/710 1854/2576/710 +f 1851/2573/711 1853/2575/711 1856/2578/711 +f 1851/2573/712 1857/2662/712 1854/2580/712 +f 1852/2574/713 1855/2663/713 1856/2582/713 +f 1859/2583/714 1862/2586/714 1860/2584/714 +f 1862/2586/715 1866/2664/715 1863/2587/715 +f 1859/2583/716 1861/2585/716 1864/2588/716 +f 1859/2583/717 1865/2665/717 1866/2590/717 +f 1860/2584/718 1863/2666/718 1864/2591/718 +f 1867/2592/719 1870/2595/719 1868/2593/719 +f 1870/2595/720 1874/2667/720 1871/2596/720 +f 1867/2592/721 1869/2594/721 1872/2597/721 +f 1870/2595/722 1867/2592/722 1873/2599/722 +f 1869/2594/723 1868/2593/723 1871/2601/723 +o Pressure +v 0.000000 2.000544 -3.159371 +v -0.216506 2.113832 -3.106544 +v -0.216506 2.340409 -3.000889 +v -0.125000 2.423342 -2.962217 v 0.000000 2.453697 -2.948062 v 0.125000 2.423342 -2.962217 v 0.216506 2.340409 -3.000889 v 0.250000 2.227120 -3.053716 v 0.216506 2.113832 -3.106544 -v 0.000000 2.566986 -2.895234 -v 0.324759 2.057188 -3.132957 -v 0.375000 2.227120 -3.053716 -v 0.324760 2.397053 -2.974475 -v 0.187500 2.521452 -2.916467 -vt 1.000000 0.000000 -vt 1.000000 0.250000 -vt 0.000000 0.250000 -vt -0.000000 -0.000000 +v 0.125000 2.030899 -3.145216 +v -0.125000 2.030899 -3.145216 +v -0.250000 2.227120 -3.053716 +vt 0.500000 0.000000 +vt 0.066987 0.250000 +vt 0.066987 0.750000 +vt 0.250000 0.933013 +vt 0.500000 1.000000 +vt 0.750000 0.933013 +vt 0.933013 0.750000 vt 1.000000 0.500000 -vt -0.000000 0.500000 -vt 1.000000 0.750000 -vt -0.000000 0.750000 -vt 0.000000 1.000000 -vt 1.000000 1.000000 +vt 0.933013 0.250000 +vt 0.750000 0.066987 +vt 0.250000 0.066987 +vt 0.000000 0.500000 vn 0.0000 0.4226 -0.9063 s off -f 221/313/123 220/314/123 224/315/123 223/316/123 -f 220/314/123 219/317/123 225/318/123 224/315/123 -f 219/317/123 218/319/123 226/320/123 225/318/123 -f 222/321/123 226/320/123 218/319/123 217/322/123 -o Plane -v -0.500000 -0.000000 0.125000 -v -0.500000 0.000000 -0.375000 -v 0.500000 0.000000 -0.375000 -v 0.500000 -0.000000 0.125000 -v -0.500000 2.500000 0.125000 -v 0.500000 2.500000 0.125000 -v 0.500000 2.500000 -0.375000 -v -0.500000 2.500000 -0.375000 -v -1.250000 1.750000 0.125000 -v -1.250000 1.750000 -0.375000 -v -1.250000 0.750000 -0.375000 -v -1.250000 0.750000 0.125000 -v 1.250000 1.750000 0.125000 -v 1.250000 0.750000 0.125000 -v 1.250000 0.750000 -0.375000 -v 1.250000 1.750000 -0.375000 -v 1.039364 1.680519 0.125000 -v 1.125000 1.250000 0.125000 -v 1.039364 0.819481 0.125000 -v 0.430518 2.289365 0.125000 -v 0.795495 2.045496 0.125000 -v -0.430519 2.289364 0.125000 -v 0.000000 2.375000 0.125000 -v -1.039364 1.680519 0.125000 -v -0.795495 2.045495 0.125000 -v -1.039364 0.819481 0.125000 -v -1.125000 1.250000 0.125000 -v -0.430519 0.210636 0.125000 -v -0.795495 0.454505 0.125000 -v 0.430519 0.210635 0.125000 -v 0.000000 0.125000 0.125000 -v 0.795495 0.454505 0.125000 -v -1.250000 1.750000 -0.625000 -v -1.250000 1.750000 -3.000000 -v -1.250000 1.376000 -2.625000 -v -1.250000 0.751000 -2.625000 -v -1.250000 0.750000 -0.625000 -v 0.500000 0.000000 -1.625000 -v 1.000000 0.500000 -2.125000 -v 1.000000 0.500000 -3.750000 -v 1.250000 0.750000 -3.750000 -v 1.250000 0.750000 -0.625000 -v 0.500000 0.000000 -0.625000 -v 1.250000 1.750000 -3.000000 -v 1.250000 1.750000 -0.625000 -v 1.250000 1.625000 -3.750000 -v 1.250000 1.750000 -3.375000 -v -0.500000 0.000000 -0.625000 -v -0.500000 0.000000 -1.625000 -v -1.000000 0.500000 -2.625000 -v -1.000000 0.500000 -2.125000 -v 1.000000 1.750000 -3.375000 -v 1.000000 1.750000 -3.000000 -v -1.250000 0.750000 -3.750000 -v -1.250000 0.751000 -3.625000 -v -1.250000 1.376000 -3.625000 -v -1.250000 1.625000 -3.750000 -v -1.250000 1.750000 -3.375000 -v -1.000000 0.500000 -3.750000 -v -1.000000 0.501000 -3.625000 -v -1.312500 0.501000 -3.500000 -v -1.312500 0.501000 -2.750000 -v -1.312500 0.626000 -2.750000 -v -1.312500 0.626000 -3.500000 -v -1.312500 0.751000 -3.500000 -v -1.312500 0.751000 -2.750000 -v -1.312500 0.876000 -2.750000 -v -1.312500 0.876000 -3.500000 -v -1.312500 1.001000 -3.500000 -v -1.312500 1.001000 -2.750000 -v -1.312500 1.126000 -2.750000 -v -1.312500 1.126000 -3.500000 -v -1.312500 1.376000 -3.625000 -v -1.312500 1.251000 -3.500000 -v -1.312500 1.251000 -2.750000 -v -1.312500 1.376000 -2.625000 -v -1.312500 0.251000 -3.625000 -v -1.312500 0.251000 -2.625000 -v -1.312500 0.376000 -2.750000 -v -1.312500 0.376000 -3.500000 -v -1.187500 1.001000 -3.500000 -v -1.187500 1.001000 -2.750000 -v -1.187500 0.876000 -3.500000 -v -1.187500 0.626000 -2.750000 -v -1.187500 0.626000 -3.500000 -v -1.187500 0.751000 -3.500000 -v -1.187500 1.251000 -3.500000 -v -1.187500 1.126000 -3.500000 -v -1.187500 1.126000 -2.750000 -v -1.187500 1.251000 -2.750000 -v -1.187500 0.876000 -2.750000 -v -1.187500 0.751000 -2.750000 -v -1.187500 0.376000 -3.500000 -v -1.187500 0.376000 -2.750000 -v -1.187500 0.501000 -2.750000 -v -1.187500 0.501000 -3.500000 -v 1.000000 0.750000 -3.750000 -v 1.000000 1.625000 -3.750000 -v -1.000000 1.625000 -3.750000 -v -1.000000 0.750000 -3.750000 -v -1.000000 1.750000 -3.375000 -v -1.000000 1.750000 -3.000000 -v -0.500000 2.500000 -2.625000 -v 0.500000 2.500000 -2.625000 -v 0.500000 2.250000 -2.750000 -v -0.500000 2.250000 -2.750000 -v -0.344030 0.708152 -0.175597 -v -0.424630 0.633153 -0.128904 -v -0.388541 0.618205 -0.128904 -v -0.328091 0.674453 -0.163924 -v -0.420670 0.523129 -0.082211 -v -0.334466 0.442528 -0.062870 -v -0.320918 0.475236 -0.079378 -v -0.385571 0.535686 -0.093884 -v -0.216518 0.438567 -0.082211 -v -0.135918 0.513565 -0.128904 -v -0.172007 0.528513 -0.128904 -v -0.232457 0.472265 -0.093884 -v -0.139879 0.623590 -0.175597 -v -0.174978 0.611032 -0.163924 -v -0.226082 0.704190 -0.194938 -v -0.239630 0.671482 -0.178429 -v -0.208096 0.543462 -0.128904 -v -0.210077 0.598474 -0.152250 -v -0.253178 0.638775 -0.161921 -v -0.312152 0.640755 -0.152250 -v -0.352451 0.603256 -0.128904 -v -0.350471 0.548244 -0.105557 -v -0.307370 0.507944 -0.095887 -v -0.248396 0.505963 -0.105557 -v -0.222349 0.496668 -0.037240 -v -0.161900 0.552916 -0.072260 -v -0.197989 0.567865 -0.072260 -v -0.238288 0.530366 -0.048913 -v -0.164869 0.635435 -0.107280 -v -0.199968 0.622877 -0.095606 -v -0.229523 0.695885 -0.121785 -v -0.243071 0.663178 -0.105277 -v -0.317984 0.698857 -0.107280 -v -0.302044 0.665158 -0.095606 -v -0.378433 0.642608 -0.072260 -v -0.342344 0.627659 -0.072260 -v -0.375462 0.560089 -0.037240 -v -0.340364 0.572647 -0.048913 -v -0.310810 0.499639 -0.022734 -v -0.297262 0.532347 -0.039243 -v -0.391169 0.267836 0.136894 -v -0.014465 0.192905 0.136894 -v -0.014465 0.302280 -0.081856 -v -0.349313 0.368885 -0.081856 -v -0.025414 0.247242 -0.109375 -v -0.360261 0.313848 -0.109375 -v -0.025414 0.137868 0.109375 -v -0.402117 0.212799 0.109375 -v 0.230970 1.345671 -0.500000 -v 0.095671 1.480970 -0.500000 -v 0.071753 1.423227 -0.500000 -v 0.173227 1.321753 -0.500000 -v -0.047836 1.365485 -0.500000 -v -0.115485 1.297835 -0.500000 -v -0.115485 1.202165 -0.500000 -v -0.047836 1.134515 -0.500000 -v 0.047834 1.134515 -0.500000 -v 0.115485 1.202165 -0.500000 -v 0.115485 1.297835 -0.500000 -v 0.047834 1.365485 -0.500000 -v 0.230970 1.154329 -0.500000 -v 0.173227 1.178247 -0.500000 -v 0.095671 1.019030 -0.500000 -v 0.071753 1.076773 -0.500000 -v -0.095671 1.019030 -0.500000 -v -0.071753 1.076773 -0.500000 -v -0.230970 1.154329 -0.500000 -v -0.173227 1.178247 -0.500000 -v -0.230970 1.345671 -0.500000 -v -0.173227 1.321753 -0.500000 -v -0.095671 1.480970 -0.500000 -v -0.071753 1.423227 -0.500000 -v 0.115485 1.297835 -0.375000 -v 0.173227 1.321753 -0.375000 -v 0.071753 1.423227 -0.375000 -v 0.047834 1.365485 -0.375000 -v 0.115485 1.202165 -0.375000 -v 0.173227 1.178247 -0.375000 -v 0.047834 1.134515 -0.375000 -v 0.071753 1.076773 -0.375000 -v -0.047836 1.134515 -0.375000 -v -0.071753 1.076773 -0.375000 -v -0.115485 1.202165 -0.375000 -v -0.173227 1.178247 -0.375000 -v -0.115485 1.297835 -0.375000 -v -0.173227 1.321753 -0.375000 -v -0.047836 1.365485 -0.375000 -v -0.071753 1.423227 -0.375000 -v -0.191341 1.711940 -0.750000 -v -0.353553 1.603553 -0.750000 -v -0.461940 1.441342 -0.750000 -v -0.500000 1.250000 -0.750000 -v -0.461940 1.058658 -0.750000 -v -0.353553 0.896447 -0.750000 -v -0.191341 0.788060 -0.750000 -v 0.000000 0.750000 -0.750000 -v 0.191341 0.788060 -0.750000 -v 0.353553 0.896446 -0.750000 -v 0.461940 1.058658 -0.750000 -v 0.500000 1.250000 -0.750000 -v 0.461940 1.441342 -0.750000 -v 0.353553 1.603554 -0.750000 -v 0.191341 1.711940 -0.750000 -v 0.000000 1.750000 -0.750000 -v 1.039364 1.680519 -0.375000 -v 0.795495 2.045496 -0.375000 -v 0.430518 2.289365 -0.375000 -v 1.039364 0.819481 -0.375000 -v 1.125000 1.250000 -0.375000 -v 0.430519 0.210635 -0.375000 -v 0.795495 0.454505 -0.375000 -v -0.430519 0.210636 -0.375000 -v 0.000000 0.125000 -0.375000 -v -1.039364 0.819481 -0.375000 -v -0.795495 0.454505 -0.375000 -v -1.039364 1.680519 -0.375000 -v -1.125000 1.250000 -0.375000 -v -0.430519 2.289364 -0.375000 -v -0.795495 2.045495 -0.375000 -v 0.000000 2.375000 -0.375000 -v 0.500000 2.500000 -0.625000 -v -0.500000 2.500000 -0.625000 -v -0.430519 2.289364 -0.625000 -v 0.000000 2.375000 -0.625000 -v 0.430518 2.289365 -0.625000 -v 0.795495 2.045496 -0.625000 -v 1.039364 1.680519 -0.625000 -v 1.125000 1.250000 -0.625000 -v 1.039364 0.819481 -0.625000 -v 0.795495 0.454505 -0.625000 -v 0.430519 0.210635 -0.625000 -v 0.000000 0.125000 -0.625000 -v -0.430519 0.210636 -0.625000 -v -0.795495 0.454505 -0.625000 -v -1.039364 0.819481 -0.625000 -v -1.125000 1.250000 -0.625000 -v -1.039364 1.680519 -0.625000 -v -0.795495 2.045495 -0.625000 -v -1.000000 1.645607 -3.832107 -v -1.000000 0.938500 -4.125000 -v -1.000000 0.231393 -3.832107 -v -1.000000 -0.061500 -3.125000 -v -1.000000 0.231393 -2.417893 -v -1.000000 0.938500 -2.125000 -v -1.000000 1.645607 -2.417893 -v -1.000000 1.938500 -3.125000 -v -1.000000 0.251000 -2.625000 -v -1.000000 1.376000 -2.625000 -v -1.000000 0.251000 -3.625000 -v -1.000000 1.376000 -3.625000 -v 1.000000 1.645607 -3.832107 -v 1.000000 1.938500 -3.125000 -v 1.000000 1.645607 -2.417893 -v 1.000000 0.938500 -2.125000 -v 1.000000 0.231393 -2.417893 -v 1.000000 -0.061500 -3.125000 -v 1.000000 0.231393 -3.832107 -v 1.000000 0.938500 -4.125000 -v 0.554916 2.356694 0.187500 -v 0.731694 2.179917 0.187500 -v 0.820084 2.268306 0.187500 -v 0.643306 2.445082 0.187500 -v 0.554916 2.356694 -0.312500 -v 0.643306 2.445082 -0.312500 -v 0.820084 2.268306 -0.312500 -v 0.731694 2.179917 -0.312500 -v -0.929916 0.518306 0.187500 -v -1.106694 0.695083 0.187500 -v -1.195084 0.606694 0.187500 -v -1.018306 0.429918 0.187500 -v -0.929916 0.518306 -0.312500 -v -1.018306 0.429918 -0.312500 -v -1.195084 0.606694 -0.312500 -v -1.106694 0.695083 -0.312500 -v 1.106694 0.695082 0.187500 -v 0.929916 0.518306 0.187500 -v 1.018306 0.429917 0.187500 -v 1.195082 0.606694 0.187500 -v 1.106694 0.695082 -0.312500 -v 1.195082 0.606694 -0.312500 -v 1.018306 0.429917 -0.312500 -v 0.929916 0.518306 -0.312500 -v -0.731694 2.179918 0.187500 -v -0.554916 2.356694 0.187500 -v -0.643306 2.445083 0.187500 -v -0.820082 2.268306 0.187500 -v -0.731694 2.179918 -0.312500 -v -0.820082 2.268306 -0.312500 -v -0.643306 2.445083 -0.312500 -v -0.554916 2.356694 -0.312500 -v 0.554916 2.356694 -2.375000 -v 0.731694 2.179917 -2.375000 -v 0.820084 2.268306 -2.375000 -v 0.643306 2.445082 -2.375000 -v 0.554916 2.356694 -2.750000 -v 0.643306 2.445082 -2.750000 -v 0.820084 2.268306 -2.875000 -v 0.731694 2.179917 -2.875000 -v -0.500000 2.250000 -2.625000 -v -1.000000 1.750000 -2.875000 -v 1.000000 1.750000 -2.875000 -v 0.500000 2.250000 -2.625000 -v 0.500000 2.215740 -2.715952 -v 0.500000 1.819230 -2.900848 -v 0.500000 1.872057 -3.014137 -v 0.500000 2.268567 -2.829241 -v -0.500000 2.268567 -2.829241 -v -0.500000 1.872057 -3.014137 -v -0.500000 1.819230 -2.900848 -v -0.500000 2.215740 -2.715952 -v -0.312500 2.438500 -2.750000 -v 0.312500 2.438500 -2.750000 -v -0.312500 2.385673 -2.636712 -v 0.312500 2.385673 -2.636712 -v -0.750000 1.887724 -3.247583 -v 0.750000 1.887724 -3.247583 -v 0.750000 2.039915 -3.445922 -v -0.750000 2.039915 -3.445922 -v 0.750000 1.544192 -3.511185 -v 0.750000 1.696383 -3.709523 -v 0.750000 1.944244 -3.676892 -v 0.750000 1.639863 -3.280215 -v -0.750000 1.944244 -3.676892 -v -0.750000 1.696383 -3.709523 -v -0.750000 1.544192 -3.511185 -v -0.750000 1.639863 -3.280215 -v -0.500000 0.125000 -2.750000 -v 0.500000 0.125000 -2.750000 -v 0.500000 0.125000 -1.750000 -v -0.500000 0.125000 -1.750000 -v 0.500000 0.500000 -2.750000 -v 0.500000 0.500000 -1.750000 -v -0.500000 0.500000 -1.750000 -v -0.500000 0.500000 -2.750000 -v -0.625000 0.187500 -4.125000 -v -0.625000 1.687500 -4.125000 -v 0.625000 1.687500 -4.125000 -v 0.625000 0.187500 -4.125000 -v 0.625000 1.687500 -3.625000 -v 0.625000 0.187500 -3.625000 -v -0.625000 0.187500 -3.625000 -v -0.625000 1.687500 -3.625000 -v -0.500000 1.562500 -4.875000 -v 0.500000 1.562500 -4.875000 -v 0.500000 0.312500 -4.875000 -v -0.500000 0.312500 -4.875000 -v 0.500000 0.312500 -4.125000 -v -0.500000 0.312500 -4.125000 -v -0.500000 1.562500 -4.125000 -v 0.500000 1.562500 -4.125000 -v 1.375000 1.658494 -2.187500 -v 0.875000 1.658494 -2.187500 -v 0.875000 1.658494 -2.437500 -v 1.375000 1.658494 -2.437500 -v 1.375000 2.091506 -2.187500 -v 0.875000 2.091506 -2.187500 -v 0.875000 1.875000 -2.062500 -v 1.375000 1.875000 -2.062500 -v 1.375000 1.875000 -2.562500 -v 0.875000 1.875000 -2.562500 -v 0.875000 2.091506 -2.437500 -v 1.375000 2.091506 -2.437500 -v 1.375000 1.983253 -2.375000 -v 1.375000 1.983253 -2.250000 -v 1.562500 1.983253 -2.250000 -v 1.562500 1.983253 -2.375000 -v 1.375000 1.766747 -2.250000 -v 1.375000 1.766747 -2.375000 -v 1.562500 1.766747 -2.375000 -v 1.562500 1.766747 -2.250000 -v 1.375000 1.875000 -2.187500 -v 1.562500 1.875000 -2.187500 -v 1.375000 1.875000 -2.437500 -v 1.562500 1.875000 -2.437500 -v 1.562500 1.712620 -2.406250 -v 1.562500 1.712620 -2.218750 -v 1.562500 1.875000 -2.125000 -v 1.562500 2.037380 -2.218750 -v 1.562500 2.037380 -2.406250 -v 1.562500 1.875000 -2.500000 -v 2.312500 1.875000 -2.500000 -v 2.312500 1.712620 -2.406250 -v 2.312500 1.712620 -2.218750 -v 2.312500 1.875000 -2.125000 -v 2.312500 2.037380 -2.218750 -v 2.312500 2.037380 -2.406250 -v 2.312500 1.875000 -2.187500 -v 2.312500 1.983253 -2.250000 -v 2.312500 1.983253 -2.375000 -v 2.312500 1.875000 -2.437500 -v 2.312500 1.766747 -2.375000 -v 2.312500 1.766747 -2.250000 -v 2.500000 1.766747 -2.250000 -v 2.500000 1.875000 -2.187500 -v 2.500000 1.983253 -2.250000 -v 2.500000 1.983253 -2.375000 -v 2.500000 1.766747 -2.375000 -v 2.500000 1.875000 -2.437500 -v 2.500000 1.875000 -2.062500 -v 2.500000 2.091506 -2.187500 -v 2.500000 2.091506 -2.437500 -v 2.500000 1.875000 -2.562500 -v 2.500000 1.658494 -2.437500 -v 2.500000 1.658494 -2.187500 -v 2.625000 2.091506 -2.187500 -v 2.625000 2.091506 -2.437500 -v 2.625000 1.658494 -2.437500 -v 2.625000 1.658494 -2.187500 -v 2.625000 1.875000 -2.062500 -v 2.625000 1.875000 -2.562500 -v 2.750000 1.983253 -2.375000 -v 2.750000 1.875000 -2.437500 -v 2.750000 1.766747 -2.375000 -v 2.750000 1.766747 -2.250000 -v 2.750000 1.875000 -2.187500 -v 2.750000 1.983253 -2.250000 -v -0.187500 1.625000 -4.125000 -v 0.187500 1.625000 -4.125000 -v 0.187500 1.625000 -5.000000 -v -0.187500 1.625000 -5.000000 -v -0.187500 1.669194 -5.397748 -v -0.187500 2.022748 -5.044194 -v -0.187500 2.287913 -5.309359 -v -0.187500 2.022748 -5.574524 -v -0.187500 1.845971 -5.574524 -v 0.187500 1.250000 -5.000000 -v -0.187500 1.250000 -5.000000 -v 0.187500 1.250000 -4.125000 -v -0.187500 1.250000 -4.125000 -v -0.125000 1.625000 -4.734835 -v 0.125000 1.625000 -4.734835 -v 0.125000 1.978553 -5.088388 -v -0.125000 1.978553 -5.088388 -v -0.125000 1.359835 -5.000000 -v -0.125000 1.713388 -5.353553 -v 0.125000 1.359835 -5.000000 -v 0.125000 1.713388 -5.353553 -v 0.187500 1.669194 -5.397748 -v 0.187500 2.022748 -5.044194 -v 0.187500 2.022748 -5.574524 -v 0.187500 1.845971 -5.574524 -v 0.187500 2.287913 -5.309359 -v -0.062500 2.597272 -4.558058 -v 0.062500 2.597272 -4.558058 -v 0.062500 2.774049 -4.734835 -v -0.062500 2.774049 -4.734835 -v 0.062500 2.066942 -5.088388 -v 0.062500 2.243718 -5.265165 -v -0.062500 2.243718 -5.265165 -v -0.062500 2.066942 -5.088388 -v -0.125000 2.423342 -2.962217 -v 0.000000 2.453697 -2.948062 -v 0.216506 2.113832 -3.106544 -v 0.125000 2.030899 -3.145216 -v 0.000000 2.000544 -3.159371 -v -0.125000 2.030899 -3.145216 -v -0.216506 2.113832 -3.106544 -v -0.250000 2.227120 -3.053716 -v -0.216506 2.340409 -3.000889 -v 0.000000 2.374456 -2.778129 -v 0.000000 2.487745 -2.725302 -v 0.000000 2.566986 -2.895234 -v 0.324759 1.977947 -2.963025 -v 0.216506 2.034591 -2.936611 -v 0.324759 2.057188 -3.132957 -v 0.375000 2.227120 -3.053716 -v 0.324760 2.397053 -2.974475 -v 0.187500 2.521452 -2.916467 -v 0.324760 2.317812 -2.804543 -v 0.187500 2.442212 -2.746534 +f 1875/2668/724 1876/2669/724 1877/2670/724 +f 1877/2670/724 1878/2671/724 1879/2672/724 +f 1879/2672/724 1880/2673/724 1881/2674/724 +f 1881/2674/724 1882/2675/724 1883/2676/724 +f 1883/2676/724 1884/2677/724 1875/2668/724 +f 1875/2668/724 1885/2678/724 1876/2669/724 +f 1876/2669/724 1886/2679/724 1877/2670/724 +f 1877/2670/724 1879/2672/724 1875/2668/724 +f 1879/2672/724 1881/2674/724 1875/2668/724 +f 1881/2674/724 1883/2676/724 1875/2668/724 +o Spin +v -0.375000 2.313995 -2.944245 +v -0.266747 2.257351 -2.970659 +v -0.375000 2.087419 -3.049900 v -0.437500 2.102596 -3.042822 v -0.483253 2.144063 -3.023486 v -0.500000 2.200707 -2.997072 v -0.483253 2.257351 -2.970659 v -0.437500 2.298818 -2.951323 -v -0.375000 2.313995 -2.944245 v -0.312500 2.298818 -2.951323 -v -0.266747 2.257351 -2.970659 v -0.250000 2.200707 -2.997072 v -0.266747 2.144063 -3.023486 v -0.312500 2.102596 -3.042822 -v -0.375000 2.087419 -3.049900 -v -1.125000 1.875000 -1.875000 -v -1.125000 1.875000 -1.625000 -v -0.625000 2.375000 -1.875000 -v -0.625000 2.375000 -2.125000 -v -0.625000 2.375000 -0.875000 -v -1.125000 1.875000 -0.875000 -v -1.125000 1.875000 -2.625000 -v -0.625000 2.375000 -2.375000 -v 1.125000 1.875000 -0.875000 -v 0.625000 2.375000 -0.875000 -v 1.125000 1.875000 -1.625000 -v 0.625000 2.375000 -1.875000 -v 0.448223 2.198223 -1.875000 -v 0.948223 1.698223 -1.625000 -v -1.036612 1.786612 -1.875000 -v -1.036612 1.786612 -2.625000 -v -0.948223 1.698223 -1.625000 -v -0.448223 2.198223 -1.875000 -v -0.536612 2.286612 -2.375000 -v -0.536612 2.286612 -2.125000 -v -0.448223 2.198223 -0.875000 -v -0.948223 1.698223 -0.875000 -v 0.948223 1.698223 -0.875000 -v 0.448223 2.198223 -0.875000 -v -0.137500 2.062500 -3.749900 -v -0.137500 1.937500 -3.749900 -v -0.137500 2.062500 -3.437400 -v -0.137500 2.187500 -3.437400 -v -0.012500 1.937500 -3.749900 -v -0.012500 2.062500 -3.437400 -v 0.137500 1.937500 -3.749900 -v 0.137500 2.062500 -3.749900 -v 0.137500 2.187500 -3.437400 -v 0.137500 2.062500 -3.437400 -v -0.012500 2.062500 -3.749900 -v -0.012500 2.187500 -3.437400 -v 0.137500 2.134191 -3.062400 -v 0.137500 2.009191 -3.062400 -v -0.012500 2.009191 -3.062400 -v -0.137500 2.009191 -3.062400 -v -0.012500 1.937500 -3.874900 -v -0.137500 1.937500 -3.874900 -v 0.137500 1.937500 -3.874900 -v 0.012500 1.937500 -3.874900 -v 0.012500 2.062500 -3.749900 -v 0.012500 1.937500 -3.749900 -v -0.012500 1.687500 -3.874900 -v -0.137500 1.687500 -3.874900 -v -0.137500 1.687500 -3.749900 -v -0.012500 1.687500 -3.749900 -v 0.137500 1.687500 -3.749900 -v 0.137500 1.687500 -3.874900 -v 0.012500 1.687500 -3.874900 -v 0.012500 1.687500 -3.749900 -v 0.012500 2.062500 -3.437400 -v 0.625000 2.001000 -3.187500 -v 0.625000 2.001000 -3.062500 -v 0.875000 2.001000 -3.062500 -v 0.875000 2.001000 -3.187500 -v 0.012500 2.187500 -3.437400 -v 0.012500 2.134191 -3.062400 -v 0.012500 2.009191 -3.062400 -v -0.137500 2.134191 -3.062400 -v -0.012500 2.134191 -3.062400 -v -0.625000 1.938500 -3.250000 -v 0.625000 1.938500 -3.250000 -v 0.625000 1.830247 -3.187500 -v -0.625000 1.830247 -3.187500 -v 0.625000 1.876000 -3.062500 -v 0.875000 1.876000 -3.062500 -v 0.625000 1.830247 -3.062500 -v -0.625000 1.830247 -3.062500 -v 0.625000 1.876000 -3.187500 -v 0.875000 1.876000 -3.187500 -v 0.625000 1.938500 -3.000000 -v -0.625000 1.938500 -3.000000 -v 0.625000 2.046753 -3.062500 -v -0.625000 2.046753 -3.062500 -v 0.625000 2.046753 -3.187500 -v -0.625000 2.046753 -3.187500 -v 1.000000 2.001000 -3.187500 -v 1.000000 2.001000 -3.062500 -v 0.875000 2.126000 -3.187500 -v 1.000000 2.126000 -3.187500 -v 0.875000 2.126000 -3.312500 -v 1.000000 2.126000 -3.312500 -v 1.000000 2.126000 -3.062500 -v 0.875000 2.126000 -3.062500 -v 1.000000 2.251000 -3.187500 -v 0.875000 2.251000 -3.187500 -v 0.875000 2.251000 -3.312500 -v 1.000000 2.251000 -3.312500 -v 1.000000 2.001000 -3.937500 -v 0.875000 2.001000 -3.937500 -v 1.000000 1.876000 -3.937500 -v 1.000000 1.876000 -4.062500 -v 0.875000 1.876000 -3.937500 -v 0.875000 1.876000 -4.062500 -v 0.875000 1.626000 -4.062500 -v 0.875000 1.626000 -3.937500 -v 0.875000 1.501000 -3.937500 -v 0.625000 1.626000 -3.937500 -v 0.625000 1.501000 -3.937500 -v 1.000000 1.626000 -3.937500 -v 1.000000 1.626000 -4.062500 -v 0.875000 1.501000 -4.062500 -v 0.625000 1.626000 -4.062500 -v 0.625000 1.501000 -4.062500 -v -0.382683 2.173880 -0.125000 -v 0.000000 2.250000 -0.125000 -v 0.382683 2.173880 -0.125000 -v 0.707106 1.957107 -0.125000 -v 0.923880 1.632684 -0.125000 -v 1.000000 1.250000 -0.125000 -v 0.923880 0.867316 -0.125000 -v 0.707106 0.542893 -0.125000 -v 0.382683 0.326120 -0.125000 -v 0.000000 0.250000 -0.125000 -v -0.382684 0.326120 -0.125000 -v -0.707108 0.542893 -0.125000 -v -0.923880 0.867316 -0.125000 -v -1.000000 1.250000 -0.125000 -v -0.923880 1.632683 -0.125000 -v -0.707108 1.957107 -0.125000 -v -0.382683 2.173880 -0.500000 -v 0.000000 2.250000 -0.500000 -v 0.382683 2.173880 -0.500000 -v 0.382683 0.326120 -0.500000 -v 0.000000 0.250000 -0.500000 -v -0.707108 1.957107 -0.500000 -v 0.707106 0.542893 -0.500000 -v -0.923880 1.632683 -0.500000 -v 0.923880 0.867316 -0.500000 -v -1.000000 1.250000 -0.500000 -v 1.000000 1.250000 -0.500000 -v -0.923880 0.867316 -0.500000 -v 0.923880 1.632684 -0.500000 -v -0.707108 0.542893 -0.500000 -v 0.707106 1.957107 -0.500000 -v -0.382684 0.326120 -0.500000 -v 0.110485 0.764515 -0.750000 -v 0.156250 0.875000 -0.750000 -v 0.156250 0.737706 -0.418544 -v 0.110485 0.659581 -0.496669 -v 0.110485 0.985485 -0.750000 -v 0.000000 1.031250 -0.750000 -v 0.000000 0.848192 -0.308058 -v 0.110485 0.815831 -0.340419 -v -0.110486 0.985485 -0.750000 -v -0.156250 0.875000 -0.750000 -v -0.156250 0.737706 -0.418544 -v -0.110486 0.815831 -0.340419 -v -0.110486 0.764515 -0.750000 -v -0.110486 0.659581 -0.496669 -v 0.000000 0.718750 -0.750000 -v 0.000000 0.627221 -0.529029 -v -0.156250 0.585633 -0.316931 -v -0.110486 0.627914 -0.214856 -v 0.000000 0.645427 -0.172575 -v 0.110485 0.627914 -0.214856 -v 0.156250 0.585633 -0.316931 -v 0.110485 0.543352 -0.419007 -v 0.000000 0.525838 -0.461288 -v -0.110486 0.543352 -0.419007 -v 0.110485 0.406250 -0.391735 -v 0.000000 0.406250 -0.437500 -v -0.110486 0.406250 -0.391735 -v -0.156250 0.406250 -0.281250 -v -0.110486 0.406250 -0.170765 -v 0.000000 0.406250 -0.125000 -v 0.110485 0.406250 -0.170765 -v 0.156250 0.406250 -0.281250 -v -0.110486 0.184586 -0.214856 -v 0.000000 0.167073 -0.172575 -v 0.110485 0.184586 -0.214856 -v 0.156250 0.226867 -0.316932 -v 0.110485 0.269148 -0.419007 -v 0.000000 0.286661 -0.461288 -v -0.110486 0.269148 -0.419007 -v -0.156250 0.226867 -0.316932 -v -0.196566 0.367147 -0.468769 -v -0.200528 0.477172 -0.515462 -v -0.286731 0.557772 -0.534803 -v -0.404678 0.561734 -0.515462 -v -0.485279 0.486735 -0.468769 -v -0.481318 0.376710 -0.422076 -v -0.395115 0.296110 -0.402735 -v -0.277166 0.292148 -0.422076 -v 0.230970 1.345671 -0.750000 -v 0.095671 1.480970 -0.750000 -v 0.095671 1.019030 -0.750000 -v 0.230970 1.154329 -0.750000 -v -0.230970 1.154329 -0.750000 -v -0.095671 1.019030 -0.750000 -v -0.095671 1.480970 -0.750000 -v -0.230970 1.345671 -0.750000 -v 0.000000 1.921303 -2.989438 -v -0.125000 1.951658 -2.975283 -v -0.250000 2.147880 -2.883784 -v -0.216506 2.261168 -2.830956 -v 0.125000 1.951658 -2.975283 -v -0.216506 2.034591 -2.936611 -v -0.125000 2.344101 -2.792284 -v 0.375000 2.147880 -2.883783 -v -0.375000 2.261168 -2.830956 -v -0.312500 2.245990 -2.838034 -v -0.500000 2.147880 -2.883784 -v -0.483253 2.204524 -2.857370 -v -0.266747 2.091235 -2.910197 -v -0.312500 2.049769 -2.929533 -v -0.375000 2.034591 -2.936611 -v -0.437500 2.049769 -2.929533 -v -0.266747 2.204524 -2.857370 -v -0.437500 2.245990 -2.838034 -v -0.483253 2.091235 -2.910197 -v -0.250000 2.147880 -2.883784 -v 0.911612 2.036612 -1.125000 -v 0.875000 2.125000 -1.125000 -v 0.823223 2.073223 -0.948223 -v 0.867418 1.992418 -0.974112 -v 0.786612 2.161612 -1.125000 -v 0.698223 2.125000 -1.125000 -v 0.672335 2.099112 -1.036612 -v 0.742418 2.117417 -0.974112 -v -0.786612 2.161612 -1.125000 -v -0.742418 2.117417 -0.974112 -v -0.672335 2.099112 -1.036612 -v -0.698223 2.125000 -1.125000 -v -0.911612 2.036612 -1.125000 -v -0.867418 1.992418 -0.974112 -v -0.823223 2.073223 -0.948223 -v -0.875000 2.125000 -1.125000 -v -0.875000 1.948223 -1.125000 -v -0.849112 1.922335 -1.036612 -v -0.698223 1.948223 -0.875000 -v -0.635723 2.010723 -0.911612 -v -0.786612 1.859835 -1.000000 -v -0.760723 1.885723 -0.911612 -v -0.609835 2.036612 -1.000000 -v -0.609835 2.338388 -1.125000 -v -0.565641 2.294194 -0.974112 -v -0.495558 2.275888 -1.036612 -v -0.521447 2.301777 -1.125000 -v -0.734835 2.213388 -1.125000 -v -0.690641 2.169194 -0.974112 -v -0.646447 2.250000 -0.948223 -v -0.698223 2.301777 -1.125000 -v -0.698223 2.125000 -1.125000 -v -0.672335 2.099112 -1.036612 -v -0.521447 2.125000 -0.875000 -v -0.458947 2.187500 -0.911612 -v -0.609835 2.036612 -1.000000 -v -0.583947 2.062500 -0.911612 -v -0.433058 2.213388 -1.000000 -v -0.963388 1.984835 -1.125000 -v -0.919194 1.940641 -0.974112 -v -0.849112 1.922335 -1.036612 -v -0.875000 1.948223 -1.125000 -v -1.088388 1.859835 -1.125000 -v -1.044194 1.815641 -0.974112 -v -1.000000 1.896446 -0.948223 -v -1.051777 1.948223 -1.125000 -v -1.051777 1.771446 -1.125000 -v -1.025888 1.745558 -1.036612 -v -0.875000 1.771446 -0.875000 -v -0.812500 1.833946 -0.911612 -v -0.963388 1.683058 -1.000000 -v -0.937500 1.708946 -0.911612 -v -0.786612 1.859835 -1.000000 -v -0.698223 2.125000 -1.812500 -v -0.786612 2.161612 -1.812500 -v -0.521447 2.301777 -1.875000 -v -0.609835 2.338388 -1.875000 -v -0.875000 2.125000 -1.812500 -v -0.911612 2.036612 -1.812500 -v -0.875000 1.948223 -1.750000 -v -0.963388 1.984835 -1.750000 -v -0.698223 2.301777 -1.875000 -v -0.875000 1.948223 -1.812500 -v -0.734835 2.213388 -1.875000 -v -1.051777 1.948223 -1.750000 -v -1.088388 1.859835 -1.750000 -v -0.698223 2.125000 -1.875000 -v -1.051777 1.771446 -1.750000 -v 0.875000 1.948223 -1.125000 -v 0.849112 1.922335 -1.036612 -v 0.635723 2.010723 -0.911612 -v 0.698223 1.948223 -0.875000 -v 0.760723 1.885723 -0.911612 -v 0.786612 1.859835 -1.000000 -v 0.609835 2.036612 -1.000000 -v 0.609835 2.338388 -1.125000 -v 0.521447 2.301777 -1.125000 -v 0.495558 2.275888 -1.036612 -v 0.565641 2.294194 -0.974112 -v 0.734835 2.213388 -1.125000 -v 0.698223 2.301777 -1.125000 -v 0.646447 2.250000 -0.948223 -v 0.690641 2.169194 -0.974112 -v 0.698223 2.125000 -1.125000 -v 0.672335 2.099112 -1.036612 -v 0.458947 2.187500 -0.911612 -v 0.521447 2.125000 -0.875000 -v 0.583947 2.062500 -0.911612 -v 0.609835 2.036612 -1.000000 -v 0.433058 2.213388 -1.000000 -v 0.963388 1.984835 -1.125000 -v 0.875000 1.948223 -1.125000 -v 0.849112 1.922335 -1.036612 -v 0.919194 1.940641 -0.974112 -v 1.088388 1.859835 -1.125000 -v 1.051777 1.948223 -1.125000 -v 1.000000 1.896446 -0.948223 -v 1.044194 1.815641 -0.974112 -v 1.051777 1.771446 -1.125000 -v 1.025888 1.745558 -1.036612 -v 0.812500 1.833946 -0.911612 -v 0.875000 1.771446 -0.875000 -v 0.937500 1.708946 -0.911612 -v 0.963388 1.683058 -1.000000 -v 0.786612 1.859835 -1.000000 -v 0.786612 2.161612 -1.812500 -v 0.698223 2.125000 -1.812500 -v 0.609835 2.338388 -1.875000 -v 0.521447 2.301777 -1.875000 -v 0.875000 2.125000 -1.812500 -v 0.911612 2.036612 -1.812500 -v 0.963388 1.984835 -1.750000 -v 0.875000 1.948223 -1.750000 -v 0.698223 2.301777 -1.875000 -v 0.875000 1.948223 -1.812500 -v 0.734835 2.213388 -1.875000 -v 1.051777 1.948223 -1.750000 -v 1.088388 1.859835 -1.750000 -v 0.698223 2.125000 -1.875000 -v 1.051777 1.771446 -1.750000 -v 1.000000 0.500000 -2.625000 -v 0.344030 1.791848 -0.175597 -v 0.424630 1.866847 -0.128904 -v 0.388541 1.881795 -0.128904 -v 0.328091 1.825547 -0.163924 -v 0.420670 1.976871 -0.082211 -v 0.334466 2.057472 -0.062870 -v 0.320918 2.024764 -0.079378 -v 0.385571 1.964314 -0.093884 -v 0.216518 2.061433 -0.082211 -v 0.135918 1.986435 -0.128904 -v 0.172007 1.971487 -0.128904 -v 0.232457 2.027735 -0.093884 -v 0.139879 1.876410 -0.175597 -v 0.174978 1.888968 -0.163924 -v 0.226082 1.795810 -0.194938 -v 0.239630 1.828518 -0.178429 -v 0.208096 1.956538 -0.128904 -v 0.210077 1.901526 -0.152250 -v 0.253178 1.861225 -0.161921 -v 0.312152 1.859245 -0.152250 -v 0.352451 1.896744 -0.128904 -v 0.350472 1.951756 -0.105557 -v 0.307370 1.992056 -0.095887 -v 0.248396 1.994037 -0.105557 -v 0.222349 2.003332 -0.037240 -v 0.161900 1.947084 -0.072260 -v 0.197989 1.932135 -0.072260 -v 0.238288 1.969634 -0.048913 -v 0.164869 1.864565 -0.107280 -v 0.199968 1.877123 -0.095606 -v 0.229523 1.804115 -0.121785 -v 0.243071 1.836822 -0.105277 -v 0.317984 1.801143 -0.107280 -v 0.302044 1.834842 -0.095606 -v 0.378433 1.857392 -0.072260 -v 0.342344 1.872341 -0.072260 -v 0.375462 1.939911 -0.037240 -v 0.340365 1.927353 -0.048913 -v 0.310810 2.000361 -0.022734 -v 0.297262 1.967653 -0.039243 -v -0.110485 1.735485 -0.750000 -v -0.156250 1.625000 -0.750000 -v -0.156250 1.762294 -0.418544 -v -0.110485 1.840419 -0.496669 -v -0.110485 1.514515 -0.750000 -v 0.000000 1.468750 -0.750000 -v 0.000000 1.651808 -0.308058 -v -0.110485 1.684169 -0.340419 -v 0.110486 1.514515 -0.750000 -v 0.156250 1.625000 -0.750000 -v 0.156250 1.762294 -0.418544 -v 0.110486 1.684169 -0.340419 -v 0.110486 1.735485 -0.750000 -v 0.110486 1.840419 -0.496669 -v 0.000000 1.781250 -0.750000 -v 0.000000 1.872779 -0.529029 -v 0.156250 1.914367 -0.316931 -v 0.110486 1.872086 -0.214856 -v 0.000000 1.854573 -0.172575 -v -0.110485 1.872086 -0.214856 -v -0.156250 1.914367 -0.316931 -v -0.110485 1.956648 -0.419007 -v 0.000000 1.974162 -0.461288 -v 0.110486 1.956648 -0.419007 -v -0.110485 2.093750 -0.391735 -v 0.000000 2.093750 -0.437500 -v 0.110486 2.093750 -0.391735 -v 0.156250 2.093750 -0.281250 -v 0.110486 2.093750 -0.170765 -v 0.000000 2.093750 -0.125000 -v -0.110485 2.093750 -0.170765 -v -0.156250 2.093750 -0.281250 -v 0.110486 2.315414 -0.214856 -v 0.000000 2.332927 -0.172575 -v -0.110485 2.315414 -0.214856 -v -0.156250 2.273133 -0.316932 -v -0.110485 2.230852 -0.419007 -v 0.000000 2.213339 -0.461288 -v 0.110486 2.230852 -0.419007 -v 0.156250 2.273133 -0.316932 -v 0.196566 2.132853 -0.468769 -v 0.200528 2.022828 -0.515462 -v 0.286731 1.942228 -0.534803 -v 0.404678 1.938266 -0.515462 -v 0.485279 2.013265 -0.468769 -v 0.481318 2.123290 -0.422076 -v 0.395115 2.203890 -0.402735 -v 0.277166 2.207852 -0.422076 -v -0.541848 1.594031 -0.175597 -v -0.616847 1.674630 -0.128904 -v -0.631795 1.638541 -0.128904 -v -0.575547 1.578091 -0.163924 -v -0.726871 1.670670 -0.082211 -v -0.807472 1.584466 -0.062870 -v -0.774764 1.570918 -0.079378 -v -0.714314 1.635571 -0.093884 -v -0.811433 1.466519 -0.082211 -v -0.736435 1.385918 -0.128904 -v -0.721487 1.422007 -0.128904 -v -0.777735 1.482457 -0.093884 -v -0.626410 1.389879 -0.175597 -v -0.638968 1.424978 -0.163924 -v -0.545810 1.476082 -0.194938 -v -0.578518 1.489630 -0.178429 -v -0.706538 1.458096 -0.128904 -v -0.651526 1.460078 -0.152250 -v -0.611225 1.503178 -0.161921 -v -0.609245 1.562152 -0.152250 -v -0.646744 1.602452 -0.128904 -v -0.701756 1.600472 -0.105557 -v -0.742056 1.557370 -0.095887 -v -0.744037 1.498396 -0.105557 -v -0.753332 1.472349 -0.037240 -v -0.697084 1.411900 -0.072260 -v -0.682135 1.447989 -0.072260 -v -0.719634 1.488288 -0.048913 -v -0.614565 1.414870 -0.107280 -v -0.627123 1.449969 -0.095606 -v -0.554115 1.479523 -0.121785 -v -0.586822 1.493071 -0.105277 -v -0.551143 1.567984 -0.107280 -v -0.584842 1.552044 -0.095606 -v -0.607392 1.628433 -0.072260 -v -0.622341 1.592345 -0.072260 -v -0.689911 1.625462 -0.037240 -v -0.677353 1.590365 -0.048913 -v -0.750361 1.560810 -0.022734 -v -0.717653 1.547262 -0.039243 -v -0.485485 1.139515 -0.750000 -v -0.375000 1.093750 -0.750000 -v -0.512294 1.093750 -0.418544 -v -0.590419 1.139515 -0.496669 -v -0.264515 1.139515 -0.750000 -v -0.218750 1.250000 -0.750000 -v -0.401808 1.250000 -0.308058 -v -0.434169 1.139515 -0.340419 -v -0.264515 1.360486 -0.750000 -v -0.375000 1.406250 -0.750000 -v -0.512294 1.406250 -0.418544 -v -0.434169 1.360486 -0.340419 -v -0.485485 1.360486 -0.750000 -v -0.590419 1.360486 -0.496669 -v -0.531250 1.250000 -0.750000 -v -0.622779 1.250000 -0.529029 -v -0.664367 1.406250 -0.316931 -v -0.622086 1.360486 -0.214856 -v -0.604573 1.250000 -0.172575 -v -0.622086 1.139515 -0.214856 -v -0.664367 1.093750 -0.316931 -v -0.706648 1.139515 -0.419007 -v -0.724162 1.250000 -0.461288 -v -0.706648 1.360486 -0.419007 -v -0.843750 1.139515 -0.391735 -v -0.843750 1.250000 -0.437500 -v -0.843750 1.360486 -0.391735 -v -0.843750 1.406250 -0.281250 -v -0.843750 1.360486 -0.170765 -v -0.843750 1.250000 -0.125000 -v -0.843750 1.139515 -0.170765 -v -0.843750 1.093750 -0.281250 -v -1.065414 1.360486 -0.214856 -v -1.082927 1.250000 -0.172575 -v -1.065414 1.139515 -0.214856 -v -1.023133 1.093750 -0.316932 -v -0.980852 1.139515 -0.419007 -v -0.963339 1.250000 -0.461288 -v -0.980852 1.360486 -0.419007 -v -1.023133 1.406250 -0.316932 -v -0.882853 1.446566 -0.468769 -v -0.772828 1.450528 -0.515462 -v -0.692228 1.536731 -0.534803 -v -0.688266 1.654678 -0.515462 -v -0.763265 1.735279 -0.468769 -v -0.873290 1.731318 -0.422076 -v -0.953890 1.645115 -0.402735 -v -0.957852 1.527166 -0.422076 -v 0.541848 0.905970 -0.175597 -v 0.616847 0.825370 -0.128904 -v 0.631795 0.861459 -0.128904 -v 0.575547 0.921909 -0.163924 -v 0.726871 0.829330 -0.082211 -v 0.807472 0.915534 -0.062870 -v 0.774764 0.929082 -0.079378 -v 0.714314 0.864429 -0.093884 -v 0.811433 1.033482 -0.082211 -v 0.736435 1.114082 -0.128904 -v 0.721487 1.077993 -0.128904 -v 0.777735 1.017543 -0.093884 -v 0.626410 1.110121 -0.175597 -v 0.638968 1.075022 -0.163924 -v 0.545810 1.023918 -0.194938 -v 0.578518 1.010370 -0.178429 -v 0.706538 1.041904 -0.128904 -v 0.651526 1.039923 -0.152250 -v 0.611225 0.996822 -0.161921 -v 0.609245 0.937848 -0.152250 -v 0.646744 0.897549 -0.128904 -v 0.701756 0.899529 -0.105557 -v 0.742056 0.942630 -0.095887 -v 0.744037 1.001604 -0.105557 -v 0.753332 1.027651 -0.037240 -v 0.697084 1.088100 -0.072260 -v 0.682135 1.052011 -0.072260 -v 0.719634 1.011712 -0.048913 -v 0.614565 1.085131 -0.107280 -v 0.627123 1.050032 -0.095606 -v 0.554115 1.020477 -0.121785 -v 0.586822 1.006929 -0.105277 -v 0.551143 0.932016 -0.107280 -v 0.584842 0.947956 -0.095606 -v 0.607392 0.871567 -0.072260 -v 0.622341 0.907656 -0.072260 -v 0.689911 0.874539 -0.037240 -v 0.677353 0.909636 -0.048913 -v 0.750361 0.939190 -0.022734 -v 0.717653 0.952738 -0.039243 -v 0.485485 1.360485 -0.750000 -v 0.375000 1.406250 -0.750000 -v 0.512294 1.406250 -0.418544 -v 0.590419 1.360485 -0.496669 -v 0.264515 1.360485 -0.750000 -v 0.218750 1.250000 -0.750000 -v 0.401808 1.250000 -0.308058 -v 0.434169 1.360485 -0.340419 -v 0.264515 1.139514 -0.750000 -v 0.375000 1.093750 -0.750000 -v 0.512294 1.093750 -0.418544 -v 0.434169 1.139514 -0.340419 -v 0.485485 1.139514 -0.750000 -v 0.590419 1.139514 -0.496669 -v 0.531250 1.250000 -0.750000 -v 0.622779 1.250000 -0.529029 -v 0.664367 1.093750 -0.316931 -v 0.622086 1.139514 -0.214856 -v 0.604573 1.250000 -0.172575 -v 0.622086 1.360485 -0.214856 -v 0.664367 1.406250 -0.316931 -v 0.706648 1.360485 -0.419007 -v 0.724162 1.250000 -0.461288 -v 0.706648 1.139514 -0.419007 -v 0.843750 1.360485 -0.391735 -v 0.843750 1.250000 -0.437500 -v 0.843750 1.139514 -0.391735 -v 0.843750 1.093750 -0.281250 -v 0.843750 1.139514 -0.170765 -v 0.843750 1.250000 -0.125000 -v 0.843750 1.360485 -0.170765 -v 0.843750 1.406250 -0.281250 -v 1.065414 1.139514 -0.214856 -v 1.082927 1.250000 -0.172575 -v 1.065414 1.360485 -0.214856 -v 1.023133 1.406250 -0.316932 -v 0.980852 1.360485 -0.419007 -v 0.963339 1.250000 -0.461288 -v 0.980852 1.139514 -0.419007 -v 1.023133 1.093750 -0.316932 -v 0.882853 1.053434 -0.468769 -v 0.772828 1.049472 -0.515462 -v 0.692228 0.963269 -0.534803 -v 0.688266 0.845322 -0.515462 -v 0.763265 0.764721 -0.468769 -v 0.873290 0.768682 -0.422076 -v 0.953890 0.854885 -0.402735 -v 0.957852 0.972834 -0.422076 -v -0.626411 1.110122 -0.175597 -v -0.736436 1.114082 -0.128904 -v -0.721487 1.077994 -0.128904 -v -0.638968 1.075022 -0.163924 -v -0.811434 1.033483 -0.082211 -v -0.807472 0.915534 -0.062870 -v -0.774764 0.929083 -0.079378 -v -0.777736 1.017543 -0.093884 -v -0.726871 0.829332 -0.082211 -v -0.616847 0.825370 -0.128904 -v -0.631795 0.861459 -0.128904 -v -0.714314 0.864430 -0.093884 -v -0.541848 0.905971 -0.175597 -v -0.575547 0.921910 -0.163924 -v -0.545810 1.023918 -0.194938 -v -0.578518 1.010370 -0.178429 -v -0.646744 0.897548 -0.128904 -v -0.609246 0.937849 -0.152250 -v -0.611225 0.996822 -0.161921 -v -0.651526 1.039924 -0.152250 -v -0.706538 1.041904 -0.128904 -v -0.744037 1.001604 -0.105557 -v -0.742056 0.942631 -0.095887 -v -0.701756 0.899529 -0.105557 -v -0.689911 0.874538 -0.037240 -v -0.607393 0.871567 -0.072260 -v -0.622341 0.907657 -0.072260 -v -0.677353 0.909637 -0.048913 -v -0.551143 0.932017 -0.107280 -v -0.584842 0.947956 -0.095606 -v -0.554116 1.020479 -0.121785 -v -0.586823 1.006931 -0.105277 -v -0.614565 1.085132 -0.107280 -v -0.627123 1.050032 -0.095606 -v -0.697084 1.088102 -0.072260 -v -0.682136 1.052012 -0.072260 -v -0.753332 1.027651 -0.037240 -v -0.719635 1.011713 -0.048913 -v -0.750361 0.939191 -0.022734 -v -0.717654 0.952739 -0.039243 -v -0.265165 0.828586 -0.750000 -v -0.154680 0.874350 -0.750000 -v -0.251761 0.777268 -0.418544 -v -0.339365 0.754386 -0.496669 -v -0.108916 0.984835 -0.750000 -v -0.154680 1.095320 -0.750000 -v -0.284121 0.965879 -0.308058 -v -0.228879 0.864871 -0.340419 -v -0.265166 1.141085 -0.750000 -v -0.375651 1.095320 -0.750000 -v -0.472732 0.998239 -0.418544 -v -0.385129 1.021122 -0.340419 -v -0.421415 0.984836 -0.750000 -v -0.495615 0.910636 -0.496669 -v -0.375651 0.874350 -0.750000 -v -0.440371 0.809629 -0.529029 -v -0.580264 0.890707 -0.316931 -v -0.518007 0.888244 -0.214856 -v -0.427498 0.822502 -0.172575 -v -0.361757 0.731994 -0.214856 -v -0.359293 0.669736 -0.316931 -v -0.421551 0.672200 -0.419007 -v -0.512060 0.737940 -0.461288 -v -0.577801 0.828450 -0.419007 -v -0.518497 0.575254 -0.391735 -v -0.596621 0.653379 -0.437500 -v -0.674747 0.731504 -0.391735 -v -0.707107 0.763864 -0.281250 -v -0.674747 0.731504 -0.170765 -v -0.596621 0.653379 -0.125000 -v -0.518497 0.575254 -0.170765 -v -0.486136 0.542893 -0.281250 -v -0.831487 0.574764 -0.214856 -v -0.765745 0.484255 -0.172575 -v -0.675237 0.418514 -0.214856 -v -0.612979 0.416050 -0.316932 -v -0.615442 0.478308 -0.419007 -v -0.681184 0.568817 -0.461288 -v -0.771693 0.634558 -0.419007 -v -0.833950 0.637021 -0.316932 -v -0.763264 0.764722 -0.468769 -v -0.688267 0.845323 -0.515462 -v -0.692228 0.963270 -0.534803 -v -0.772828 1.049473 -0.515462 -v -0.882854 1.053434 -0.468769 -v -0.957852 0.972834 -0.422076 -v -0.953891 0.854886 -0.402735 -v -0.873290 0.768683 -0.422076 -v 0.626411 1.389878 -0.175597 -v 0.736436 1.385918 -0.128904 -v 0.721487 1.422006 -0.128904 -v 0.638968 1.424978 -0.163924 -v 0.811434 1.466517 -0.082211 -v 0.807472 1.584466 -0.062870 -v 0.774764 1.570918 -0.079378 -v 0.777736 1.482457 -0.093884 -v 0.726872 1.670668 -0.082211 -v 0.616847 1.674630 -0.128904 -v 0.631796 1.638541 -0.128904 -v 0.714314 1.635570 -0.093884 -v 0.541848 1.594029 -0.175597 -v 0.575547 1.578090 -0.163924 -v 0.545810 1.476082 -0.194938 -v 0.578518 1.489630 -0.178429 -v 0.646744 1.602452 -0.128904 -v 0.609246 1.562152 -0.152250 -v 0.611225 1.503178 -0.161921 -v 0.651526 1.460077 -0.152250 -v 0.706538 1.458097 -0.128904 -v 0.744037 1.498396 -0.105557 -v 0.742057 1.557369 -0.095887 -v 0.701756 1.600471 -0.105557 -v 0.689911 1.625462 -0.037240 -v 0.607393 1.628433 -0.072260 -v 0.622342 1.592343 -0.072260 -v 0.677353 1.590363 -0.048913 -v 0.551144 1.567983 -0.107280 -v 0.584842 1.552044 -0.095606 -v 0.554116 1.479522 -0.121785 -v 0.586823 1.493069 -0.105277 -v 0.614566 1.414869 -0.107280 -v 0.627123 1.449969 -0.095606 -v 0.697084 1.411898 -0.072260 -v 0.682136 1.447988 -0.072260 -v 0.753332 1.472350 -0.037240 -v 0.719635 1.488287 -0.048913 -v 0.750361 1.560810 -0.022734 -v 0.717654 1.547261 -0.039243 -v 0.265165 1.671415 -0.750000 -v 0.154680 1.625651 -0.750000 -v 0.251761 1.722732 -0.418544 -v 0.339365 1.745614 -0.496669 -v 0.108916 1.515165 -0.750000 -v 0.154680 1.404680 -0.750000 -v 0.284121 1.534121 -0.308058 -v 0.228879 1.635129 -0.340419 -v 0.265166 1.358915 -0.750000 -v 0.375651 1.404680 -0.750000 -v 0.472732 1.501761 -0.418544 -v 0.385129 1.478879 -0.340419 -v 0.421415 1.515165 -0.750000 -v 0.495615 1.589364 -0.496669 -v 0.375651 1.625651 -0.750000 -v 0.440371 1.690371 -0.529029 -v 0.580264 1.609293 -0.316931 -v 0.518007 1.611756 -0.214856 -v 0.427498 1.677498 -0.172575 -v 0.361757 1.768006 -0.214856 -v 0.359293 1.830264 -0.316931 -v 0.421551 1.827801 -0.419007 -v 0.512060 1.762060 -0.461288 -v 0.577801 1.671550 -0.419007 -v 0.518497 1.924746 -0.391735 -v 0.596621 1.846622 -0.437500 -v 0.674747 1.768496 -0.391735 -v 0.707107 1.736136 -0.281250 -v 0.674747 1.768496 -0.170765 -v 0.596621 1.846622 -0.125000 -v 0.518497 1.924746 -0.170765 -v 0.486136 1.957107 -0.281250 -v 0.831487 1.925236 -0.214856 -v 0.765745 2.015745 -0.172575 -v 0.675237 2.081486 -0.214856 -v 0.612979 2.083950 -0.316932 -v 0.615442 2.021692 -0.419007 -v 0.681184 1.931184 -0.461288 -v 0.771693 1.865442 -0.419007 -v 0.833950 1.862979 -0.316932 -v 0.763264 1.735279 -0.468769 -v 0.688267 1.654677 -0.515462 -v 0.692229 1.536730 -0.534803 -v 0.772828 1.450527 -0.515462 -v 0.882854 1.446566 -0.468769 -v 0.957852 1.527166 -0.422076 -v 0.953891 1.645114 -0.402735 -v 0.873290 1.731318 -0.422076 -v -0.139878 1.876411 -0.175597 -v -0.135918 1.986436 -0.128904 -v -0.172006 1.971487 -0.128904 -v -0.174978 1.888969 -0.163924 -v -0.216517 2.061434 -0.082211 -v -0.334466 2.057472 -0.062870 -v -0.320918 2.024765 -0.079378 -v -0.232457 2.027736 -0.093884 -v -0.420668 1.976872 -0.082211 -v -0.424630 1.866847 -0.128904 -v -0.388541 1.881796 -0.128904 -v -0.385570 1.964314 -0.093884 -v -0.344029 1.791849 -0.175597 -v -0.328090 1.825547 -0.163924 -v -0.226082 1.795810 -0.194938 -v -0.239630 1.828518 -0.178429 -v -0.352452 1.896744 -0.128904 -v -0.312151 1.859246 -0.152250 -v -0.253178 1.861225 -0.161921 -v -0.210077 1.901526 -0.152250 -v -0.208096 1.956538 -0.128904 -v -0.248396 1.994038 -0.105557 -v -0.307369 1.992057 -0.095887 -v -0.350471 1.951756 -0.105557 -v -0.375462 1.939911 -0.037240 -v -0.378433 1.857393 -0.072260 -v -0.342343 1.872342 -0.072260 -v -0.340363 1.927353 -0.048913 -v -0.317983 1.801144 -0.107280 -v -0.302044 1.834842 -0.095606 -v -0.229521 1.804116 -0.121785 -v -0.243069 1.836823 -0.105277 -v -0.164869 1.864566 -0.107280 -v -0.199968 1.877123 -0.095606 -v -0.161898 1.947084 -0.072260 -v -0.197988 1.932136 -0.072260 -v -0.222349 2.003333 -0.037240 -v -0.238287 1.969635 -0.048913 -v -0.310809 2.000361 -0.022734 -v -0.297261 1.967654 -0.039243 -v -0.421415 1.515165 -0.750000 -v -0.375651 1.404680 -0.750000 -v -0.472732 1.501761 -0.418544 -v -0.495614 1.589365 -0.496669 -v -0.265165 1.358916 -0.750000 -v -0.154680 1.404680 -0.750000 -v -0.284121 1.534121 -0.308058 -v -0.385129 1.478879 -0.340419 -v -0.108915 1.515166 -0.750000 -v -0.154680 1.625651 -0.750000 -v -0.251761 1.722732 -0.418544 -v -0.228879 1.635129 -0.340419 -v -0.265164 1.671415 -0.750000 -v -0.339364 1.745615 -0.496669 -v -0.375651 1.625651 -0.750000 -v -0.440371 1.690372 -0.529029 -v -0.359293 1.830264 -0.316931 -v -0.361756 1.768007 -0.214856 -v -0.427498 1.677498 -0.172575 -v -0.518006 1.611757 -0.214856 -v -0.580264 1.609293 -0.316931 -v -0.577800 1.671551 -0.419007 -v -0.512060 1.762060 -0.461288 -v -0.421550 1.827801 -0.419007 -v -0.674746 1.768497 -0.391735 -v -0.596621 1.846622 -0.437500 -v -0.518496 1.924747 -0.391735 -v -0.486136 1.957107 -0.281250 -v -0.518496 1.924747 -0.170765 -v -0.596621 1.846622 -0.125000 -v -0.674746 1.768497 -0.170765 -v -0.707107 1.736136 -0.281250 -v -0.675236 2.081487 -0.214856 -v -0.765745 2.015745 -0.172575 -v -0.831486 1.925237 -0.214856 -v -0.833950 1.862979 -0.316932 -v -0.771692 1.865443 -0.419007 -v -0.681184 1.931184 -0.461288 -v -0.615442 2.021693 -0.419007 -v -0.612979 2.083950 -0.316932 -v -0.485278 2.013265 -0.468769 -v -0.404677 1.938267 -0.515462 -v -0.286730 1.942229 -0.534803 -v -0.200527 2.022829 -0.515462 -v -0.196566 2.132854 -0.468769 -v -0.277167 2.207852 -0.422076 -v -0.395114 2.203891 -0.402735 -v -0.481318 2.123290 -0.422076 -v 0.139878 0.623589 -0.175597 -v 0.135918 0.513564 -0.128904 -v 0.172006 0.528513 -0.128904 -v 0.174978 0.611032 -0.163924 -v 0.216517 0.438566 -0.082211 -v 0.334466 0.442528 -0.062870 -v 0.320918 0.475236 -0.079378 -v 0.232457 0.472264 -0.093884 -v 0.420668 0.523129 -0.082211 -v 0.424630 0.633153 -0.128904 -v 0.388541 0.618205 -0.128904 -v 0.385570 0.535686 -0.093884 -v 0.344029 0.708152 -0.175597 -v 0.328090 0.674453 -0.163924 -v 0.226082 0.704190 -0.194938 -v 0.239630 0.671482 -0.178429 -v 0.352452 0.603256 -0.128904 -v 0.312151 0.640754 -0.152250 -v 0.253178 0.638775 -0.161921 -v 0.210077 0.598474 -0.152250 -v 0.208096 0.543462 -0.128904 -v 0.248396 0.505963 -0.105557 -v 0.307369 0.507944 -0.095887 -v 0.350471 0.548244 -0.105557 -v 0.375462 0.560089 -0.037240 -v 0.378433 0.642607 -0.072260 -v 0.342343 0.627659 -0.072260 -v 0.340363 0.572647 -0.048913 -v 0.317983 0.698857 -0.107280 -v 0.302044 0.665158 -0.095606 -v 0.229521 0.695884 -0.121785 -v 0.243069 0.663177 -0.105277 -v 0.164869 0.635435 -0.107280 -v 0.199969 0.622877 -0.095606 -v 0.161898 0.552916 -0.072260 -v 0.197988 0.567865 -0.072260 -v 0.222349 0.496668 -0.037240 -v 0.238287 0.530365 -0.048913 -v 0.310809 0.499639 -0.022734 -v 0.297261 0.532347 -0.039243 -v 0.421415 0.984835 -0.750000 -v 0.375651 1.095320 -0.750000 -v 0.472732 0.998239 -0.418544 -v 0.495614 0.910635 -0.496669 -v 0.265165 1.141084 -0.750000 -v 0.154680 1.095320 -0.750000 -v 0.284121 0.965879 -0.308058 -v 0.385129 1.021121 -0.340419 -v 0.108915 0.984834 -0.750000 -v 0.154680 0.874350 -0.750000 -v 0.251761 0.777268 -0.418544 -v 0.228879 0.864871 -0.340419 -v 0.265164 0.828585 -0.750000 -v 0.339364 0.754385 -0.496669 -v 0.375650 0.874350 -0.750000 -v 0.440371 0.809629 -0.529029 -v 0.359293 0.669736 -0.316931 -v 0.361756 0.731993 -0.214856 -v 0.427498 0.822502 -0.172575 -v 0.518006 0.888243 -0.214856 -v 0.580264 0.890707 -0.316931 -v 0.577800 0.828449 -0.419007 -v 0.512060 0.737940 -0.461288 -v 0.421550 0.672199 -0.419007 -v 0.674746 0.731503 -0.391735 -v 0.596621 0.653379 -0.437500 -v 0.518496 0.575253 -0.391735 -v 0.486136 0.542893 -0.281250 -v 0.518496 0.575253 -0.170765 -v 0.596621 0.653379 -0.125000 -v 0.674746 0.731503 -0.170765 -v 0.707107 0.763864 -0.281250 -v 0.675236 0.418513 -0.214856 -v 0.765745 0.484255 -0.172575 -v 0.831486 0.574763 -0.214856 -v 0.833950 0.637021 -0.316932 -v 0.771692 0.634558 -0.419007 -v 0.681184 0.568816 -0.461288 -v 0.615442 0.478308 -0.419007 -v 0.612979 0.416050 -0.316932 -v 0.485278 0.486736 -0.468769 -v 0.404677 0.561733 -0.515462 -v 0.286730 0.557772 -0.534803 -v 0.200527 0.477172 -0.515462 -v 0.196566 0.367146 -0.468769 -v 0.277166 0.292148 -0.422076 -v 0.395114 0.296109 -0.402735 -v 0.481317 0.376710 -0.422076 -v 0.391169 2.232164 0.136894 -v 0.014465 2.307096 0.136894 -v 0.014465 2.197720 -0.081856 -v 0.349313 2.131115 -0.081856 -v 0.025414 2.252758 -0.109375 -v 0.360261 2.186152 -0.109375 -v 0.025414 2.362132 0.109375 -v 0.402117 2.287201 0.109375 -v -0.982164 1.641169 0.136894 -v -1.057095 1.264466 0.136894 -v -0.947720 1.264466 -0.081856 -v -0.881115 1.599313 -0.081856 -v -1.002758 1.275414 -0.109375 -v -0.936152 1.610261 -0.109375 -v -1.112132 1.275414 0.109375 -v -1.037201 1.652117 0.109375 -v 0.982164 0.858831 0.136894 -v 1.057095 1.235535 0.136894 -v 0.947720 1.235535 -0.081856 -v 0.881115 0.900687 -0.081856 -v 1.002758 1.224586 -0.109375 -v 0.936152 0.889739 -0.109375 -v 1.112132 1.224586 0.109375 -v 1.037201 0.847883 0.109375 -v -0.971093 0.832103 0.136894 -v -0.757708 0.512749 0.136894 -v -0.680368 0.590089 -0.081856 -v -0.870044 0.873959 -0.081856 -v -0.727027 0.558913 -0.109375 -v -0.916702 0.842784 -0.109375 -v -0.804366 0.481574 0.109375 -v -1.017751 0.800928 0.109375 -v 0.971093 1.667897 0.136894 -v 0.757708 1.987251 0.136894 -v 0.680368 1.909911 -0.081856 -v 0.870044 1.626041 -0.081856 -v 0.727027 1.941087 -0.109375 -v 0.916703 1.657217 -0.109375 -v 0.804366 2.018426 0.109375 -v 1.017752 1.699073 0.109375 -v -0.417897 2.221093 0.136894 -v -0.737251 2.007708 0.136894 -v -0.659911 1.930368 -0.081856 -v -0.376041 2.120044 -0.081856 -v -0.691087 1.977027 -0.109375 -v -0.407216 2.166703 -0.109375 -v -0.768426 2.054366 0.109375 -v -0.449072 2.267752 0.109375 -v 0.417897 0.278907 0.136894 -v 0.737251 0.492292 0.136894 -v 0.659911 0.569632 -0.081856 -v 0.376041 0.379956 -0.081856 -v 0.691087 0.522973 -0.109375 -v 0.407216 0.333298 -0.109375 -v 0.768426 0.445634 0.109375 -v 0.449072 0.232249 0.109375 -v -0.737251 0.492293 0.136894 -v -0.417897 0.278907 0.136894 -v -0.376041 0.379957 -0.081856 -v -0.659911 0.569632 -0.081856 -v -0.407218 0.333298 -0.109375 -v -0.691088 0.522974 -0.109375 -v -0.449074 0.232249 0.109375 -v -0.768427 0.445635 0.109375 -v 0.737251 2.007708 0.136894 -v 0.417897 2.221093 0.136894 -v 0.376041 2.120044 -0.081856 -v 0.659911 1.930368 -0.081856 -v 0.407218 2.166703 -0.109375 -v 0.691088 1.977026 -0.109375 -v 0.449074 2.267751 0.109375 -v 0.768427 2.054366 0.109375 -v -0.757708 1.987251 0.136894 -v -0.971093 1.667897 0.136894 -v -0.870044 1.626041 -0.081856 -v -0.680368 1.909911 -0.081856 -v -0.916702 1.657218 -0.109375 -v -0.727026 1.941088 -0.109375 -v -1.017751 1.699074 0.109375 -v -0.804365 2.018427 0.109375 -v 0.757708 0.512749 0.136894 -v 0.971093 0.832103 0.136894 -v 0.870044 0.873959 -0.081856 -v 0.680368 0.590089 -0.081856 -v 0.916702 0.842782 -0.109375 -v 0.727026 0.558912 -0.109375 -v 1.017751 0.800926 0.109375 -v 0.804366 0.481573 0.109375 -v -1.057095 1.235535 0.136894 -v -0.982164 0.858832 0.136894 -v -0.881115 0.900688 -0.081856 -v -0.947720 1.235535 -0.081856 -v -0.936153 0.889740 -0.109375 -v -1.002758 1.224588 -0.109375 -v -1.037201 0.847885 0.109375 -v -1.112132 1.224588 0.109375 -v 1.057095 1.264465 0.136894 -v 0.982164 1.641169 0.136894 -v 0.881115 1.599313 -0.081856 -v 0.947720 1.264465 -0.081856 -v 0.936153 1.610260 -0.109375 -v 1.002758 1.275412 -0.109375 -v 1.037202 1.652116 0.109375 -v 1.112132 1.275412 0.109375 -v -0.014465 2.307096 0.136894 -v -0.391168 2.232164 0.136894 -v -0.349312 2.131115 -0.081856 -v -0.014465 2.197721 -0.081856 -v -0.360260 2.186153 -0.109375 -v -0.025412 2.252758 -0.109375 -v -0.402115 2.287201 0.109375 -v -0.025412 2.362133 0.109375 -v 0.014465 0.192905 0.136894 -v 0.391169 0.267836 0.136894 -v 0.349312 0.368885 -0.081856 -v 0.014465 0.302280 -0.081856 -v 0.360260 0.313847 -0.109375 -v 0.025412 0.247242 -0.109375 -v 0.402115 0.212799 0.109375 -v 0.025412 0.137868 0.109375 -v 0.375000 2.500000 -1.875000 -v 0.375000 2.500000 -0.875000 -v -0.375000 2.500000 -1.875000 -v -0.375000 2.500000 -0.875000 -v 0.375000 2.250000 -1.875000 -v 0.375000 2.250000 -0.875000 -v -0.375000 2.250000 -1.875000 -v -0.375000 2.250000 -0.875000 -v 0.000000 2.500000 -1.875000 -v -0.088388 2.463388 -1.875000 -v -0.125000 2.375000 -1.875000 -v 0.125000 2.375000 -1.875000 -v 0.088388 2.463388 -1.875000 -v 0.000000 2.500000 -1.125000 -v -0.088388 2.463388 -1.125000 -v -0.125000 2.375000 -1.125000 -v 0.125000 2.375000 -1.125000 -v 0.088388 2.463388 -1.125000 -v 0.000000 2.426777 -0.948223 -v -0.088388 2.400888 -0.974111 -v -0.125000 2.338388 -1.036612 -v 0.125000 2.338388 -1.036612 -v 0.088388 2.400888 -0.974111 -v 0.000000 2.250000 -0.875000 -v -0.088388 2.250000 -0.911611 -v -0.125000 2.250000 -1.000000 -v 0.125000 2.250000 -1.000000 -v 0.088388 2.250000 -0.911611 -v 0.250000 2.500000 -1.875000 -v 0.161612 2.463388 -1.875000 -v 0.125000 2.375000 -1.875000 -v 0.375000 2.375000 -1.875000 -v 0.338388 2.463388 -1.875000 -v 0.250000 2.500000 -1.125000 -v 0.161612 2.463388 -1.125000 -v 0.125000 2.375000 -1.125000 -v 0.375000 2.375000 -1.125000 -v 0.338388 2.463388 -1.125000 -v 0.250000 2.426777 -0.948223 -v 0.161612 2.400888 -0.974111 -v 0.125000 2.338388 -1.036612 -v 0.375000 2.338388 -1.036612 -v 0.338388 2.400888 -0.974111 -v 0.250000 2.250000 -0.875000 -v 0.161612 2.250000 -0.911611 -v 0.125000 2.250000 -1.000000 -v 0.375000 2.250000 -1.000000 -v 0.338388 2.250000 -0.911611 -v -0.250000 2.500000 -1.875000 -v -0.338388 2.463388 -1.875000 -v -0.375000 2.375000 -1.875000 -v -0.125000 2.375000 -1.875000 -v -0.161612 2.463388 -1.875000 -v -0.250000 2.500000 -1.125000 -v -0.338388 2.463388 -1.125000 -v -0.375000 2.375000 -1.125000 -v -0.125000 2.375000 -1.125000 -v -0.161612 2.463388 -1.125000 -v -0.250000 2.426777 -0.948223 -v -0.338388 2.400888 -0.974111 -v -0.375000 2.338388 -1.036612 -v -0.125000 2.338388 -1.036612 -v -0.161612 2.400888 -0.974111 -v -0.250000 2.250000 -0.875000 -v -0.338388 2.250000 -0.911611 -v -0.375000 2.250000 -1.000000 -v -0.125000 2.250000 -1.000000 -v -0.161612 2.250000 -0.911611 -vt 0.227586 -0.000000 -vt 0.255172 -0.000000 -vt 0.255172 0.125000 -vt 0.227586 0.125000 -vt 0.227586 0.625000 -vt 0.227586 0.500000 -vt 0.255172 0.500000 -vt 0.255172 0.625000 -vt 0.227586 0.750000 -vt 0.255172 0.750000 -vt 0.255172 0.875000 -vt 0.227586 0.875000 -vt 0.227586 0.375000 -vt 0.227586 0.250000 -vt 0.255172 0.250000 -vt 0.255172 0.375000 -vt 0.255172 1.000000 -vt 0.227586 1.000000 -vt 0.130816 0.408077 -vt 0.185647 0.407982 -vt 0.181809 0.433762 -vt 0.158206 0.423338 -vt 0.134644 0.434152 -vt 0.227246 0.501121 -vt 0.215680 0.509781 -vt 0.201106 0.462288 -vt 0.226770 0.624909 -vt 0.215543 0.616068 -vt 0.220300 0.563004 -vt 0.185661 0.717018 -vt 0.181941 0.690910 -vt 0.202736 0.659045 -vt 0.131028 0.716313 -vt 0.134829 0.690268 -vt 0.158386 0.701199 -vt 0.089995 0.623885 -vt 0.101155 0.615205 -vt 0.113984 0.658150 -vt 0.089997 0.501305 -vt 0.101178 0.509856 -vt 0.096611 0.562314 -vt 0.113890 0.466628 -vt 0.551724 0.750000 -vt 0.682759 0.750000 -vt 0.662069 0.796875 -vt 0.662069 0.875000 -vt 0.551724 0.875000 -vt 0.606897 0.125000 -vt 0.634483 0.218750 -vt 0.662069 0.218750 -vt 0.724138 0.218750 -vt 0.724138 0.250000 -vt 0.551724 0.250000 -vt 0.551724 0.125000 -vt 0.682759 0.375000 -vt 0.551724 0.375000 -vt 0.724138 0.359375 -vt 0.703448 0.375000 -vt 0.551724 -0.000000 -vt 0.606897 -0.000000 -vt 0.662069 0.906250 -vt 0.634483 0.906250 -vt 0.606897 1.000000 -vt 0.551724 1.000000 -vt 0.413793 0.187500 -vt 0.413793 0.062500 -vt 0.441379 -0.000000 -vt 0.441379 0.250000 -vt 0.703448 0.406250 -vt 0.682759 0.406250 -vt 0.724138 0.875000 -vt 0.717241 0.875000 -vt 0.717241 0.796875 -vt 0.724138 0.765625 -vt 0.703448 0.750000 -vt 0.724138 0.906250 -vt 0.717241 0.906250 -vt 0.282759 0.796875 -vt 0.324138 0.796875 -vt 0.324138 0.812500 -vt 0.282759 0.812500 -vt 0.282759 0.828125 -vt 0.324138 0.828125 -vt 0.324138 0.843750 -vt 0.282759 0.843750 -vt 0.282759 0.859375 -vt 0.324138 0.859375 -vt 0.324138 0.875000 -vt 0.282759 0.875000 -vt 0.275862 0.906250 -vt 0.282759 0.890625 -vt 0.324138 0.890625 -vt 0.331034 0.906250 -vt 0.275862 0.765625 -vt 0.331034 0.765625 -vt 0.324138 0.781250 -vt 0.282759 0.781250 -vt 0.324138 1.000000 -vt 0.282759 1.000000 -vt 0.282759 0.984375 -vt 0.324138 0.984375 -vt 0.275862 0.984375 -vt 0.275862 0.968750 -vt 0.282759 0.968750 -vt 0.282759 0.953125 -vt 0.324138 0.953125 -vt 0.324138 0.968750 -vt 0.282759 0.968750 -vt 0.275862 0.984375 -vt 0.275862 0.968750 -vt 0.282759 0.984375 -vt 0.282759 0.984375 -vt 0.282759 0.968750 -vt 0.324138 0.968750 -vt 0.324138 0.984375 -vt 0.324138 0.968750 -vt 0.324138 0.984375 -vt 0.282759 0.968750 -vt 0.324138 0.968750 -vt 0.324138 0.984375 -vt 0.282759 0.984375 -vt 0.275862 0.984375 -vt 0.275862 0.968750 -vt 0.282759 0.953125 -vt 0.324138 0.953125 -vt 0.331034 0.968750 -vt 0.331034 0.984375 -vt 0.324138 1.000000 -vt 0.282759 1.000000 -vt 0.331034 0.968750 -vt 0.331034 0.984375 -vt 0.282759 0.953125 -vt 0.324138 0.953125 -vt 0.331034 0.968750 -vt 0.331034 0.984375 -vt 0.324138 1.000000 -vt 0.282759 1.000000 -vt 0.331034 0.968750 -vt 0.331034 0.984375 -vt 0.282759 0.953125 -vt 0.324138 0.953125 -vt 0.275862 0.984375 -vt 0.275862 0.968750 -vt 0.324138 1.000000 -vt 0.282759 1.000000 -vt 0.737931 0.250000 -vt 0.737931 0.359375 -vt 0.737931 0.218750 -vt 0.737931 0.765625 -vt 0.737931 0.875000 -vt 0.737931 0.906250 -vt 0.724138 0.375000 -vt 0.724138 0.406250 -vt 0.703448 0.718750 -vt 0.724138 0.718750 -vt 0.724138 0.750000 -vt 0.682759 0.718750 -vt 0.662069 0.625000 -vt 0.662069 0.500000 -vt 0.675862 0.500000 -vt 0.675862 0.625000 -vt 0.696552 0.421875 -vt 0.696552 0.453125 -vt 0.696552 0.671875 -vt 0.696552 0.703125 -vt 0.151724 0.046875 -vt 0.158621 0.046875 -vt 0.158621 0.062500 -vt 0.151724 0.062500 -vt 0.165517 0.046875 -vt 0.172414 0.046875 -vt 0.172414 0.062500 -vt 0.165517 0.062500 -vt 0.179310 0.046875 -vt 0.186207 0.046875 -vt 0.186207 0.062500 -vt 0.179310 0.062500 -vt 0.193103 0.046875 -vt 0.193103 0.062500 -vt 0.144828 0.046875 -vt 0.144828 0.062500 -vt 0.200000 0.046875 -vt 0.200000 0.062500 -vt 0.172208 0.125000 -vt 0.170248 0.135718 -vt 0.165517 0.140158 -vt 0.160786 0.135718 -vt 0.158827 0.125000 -vt 0.160786 0.114281 -vt 0.165517 0.109842 -vt 0.170248 0.114281 -vt 0.179310 0.078125 -vt 0.186207 0.078125 -vt 0.186207 0.093750 -vt 0.179310 0.093750 -vt 0.193103 0.078125 -vt 0.193103 0.093750 -vt 0.200000 0.078125 -vt 0.200000 0.093750 -vt 0.144828 0.078125 -vt 0.151724 0.078125 -vt 0.151724 0.093750 -vt 0.144828 0.093750 -vt 0.158621 0.078125 -vt 0.158621 0.093750 -vt 0.165517 0.078125 -vt 0.165517 0.093750 -vt 0.172414 0.078125 -vt 0.172414 0.093750 -vt 0.096552 0.296875 -vt 0.117241 0.296875 -vt 0.117241 0.328125 -vt 0.096552 0.328125 -vt 0.117241 0.343750 -vt 0.096552 0.343750 -vt 0.124138 0.296875 -vt 0.124138 0.328125 -vt 0.096552 0.281250 -vt 0.117241 0.281250 -vt 0.089655 0.328125 -vt 0.089655 0.296875 -vt 0.296552 0.031250 -vt 0.310345 0.031250 -vt 0.303448 0.046875 -vt 0.296552 0.046875 -vt 0.259370 0.124136 -vt 0.255554 0.115489 -vt 0.255554 0.103261 -vt 0.259370 0.094614 -vt 0.264768 0.094614 -vt 0.268584 0.103261 -vt 0.268584 0.115489 -vt 0.264768 0.124136 -vt 0.282759 0.031250 -vt 0.289655 0.046875 -vt 0.282759 0.046875 -vt 0.268966 0.031250 -vt 0.275862 0.046875 -vt 0.268966 0.046875 -vt 0.255172 0.031250 -vt 0.262069 0.046875 -vt 0.255172 0.046875 -vt 0.351724 0.031250 -vt 0.365517 0.031250 -vt 0.358621 0.046875 -vt 0.351724 0.046875 -vt 0.337931 0.031250 -vt 0.344828 0.046875 -vt 0.337931 0.046875 -vt 0.324138 0.031250 -vt 0.331034 0.046875 -vt 0.324138 0.046875 -vt 0.317241 0.046875 -vt 0.310345 0.046875 -vt 0.296552 0.078125 -vt 0.296552 0.062500 -vt 0.303448 0.062500 -vt 0.303448 0.078125 -vt 0.282759 0.078125 -vt 0.282759 0.062500 -vt 0.289655 0.062500 -vt 0.289655 0.078125 -vt 0.268966 0.078125 -vt 0.268966 0.062500 -vt 0.275862 0.062500 -vt 0.275862 0.078125 -vt 0.255172 0.078125 -vt 0.255172 0.062500 -vt 0.262069 0.062500 -vt 0.262069 0.078125 -vt 0.351724 0.078125 -vt 0.351724 0.062500 -vt 0.358621 0.062500 -vt 0.358621 0.078125 -vt 0.337931 0.078125 -vt 0.337931 0.062500 -vt 0.344828 0.062500 -vt 0.344828 0.078125 -vt 0.324138 0.078125 -vt 0.324138 0.062500 -vt 0.331034 0.062500 -vt 0.331034 0.078125 -vt 0.310345 0.078125 -vt 0.310345 0.062500 -vt 0.317241 0.062500 -vt 0.317241 0.078125 -vt 0.106793 0.119651 -vt 0.097935 0.106242 -vt 0.092016 0.086173 -vt 0.089938 0.062500 -vt 0.092016 0.038827 -vt 0.097935 0.018758 -vt 0.106793 0.005349 -vt 0.117241 0.000640 -vt 0.127690 0.005349 -vt 0.136548 0.018758 -vt 0.142467 0.038827 -vt 0.144545 0.062500 -vt 0.142467 0.086173 -vt 0.136548 0.106242 -vt 0.127690 0.119651 -vt 0.117241 0.124360 -vt 0.297766 0.407469 -vt 0.301337 0.432859 -vt 0.282000 0.461238 -vt 0.267164 0.508207 -vt 0.255663 0.499249 -vt 0.351705 0.408442 -vt 0.347882 0.434234 -vt 0.324503 0.423194 -vt 0.392481 0.500826 -vt 0.381418 0.509360 -vt 0.368692 0.466561 -vt 0.392687 0.622102 -vt 0.381587 0.613816 -vt 0.386036 0.561123 -vt 0.351758 0.717531 -vt 0.347834 0.691162 -vt 0.368830 0.657546 -vt 0.296432 0.717486 -vt 0.300333 0.691179 -vt 0.324106 0.701882 -vt 0.255589 0.622775 -vt 0.266830 0.614350 -vt 0.279544 0.658120 -vt 0.262317 0.561201 -vt 0.455702 0.407223 -vt 0.510269 0.408300 -vt 0.506371 0.433702 -vt 0.482981 0.422939 -vt 0.459519 0.433393 -vt 0.414646 0.501350 -vt 0.438585 0.466370 -vt 0.426010 0.510034 -vt 0.414688 0.625413 -vt 0.421416 0.563439 -vt 0.426182 0.616753 -vt 0.455784 0.717773 -vt 0.440498 0.663712 -vt 0.459554 0.692474 -vt 0.509818 0.717777 -vt 0.482677 0.702808 -vt 0.505992 0.692526 -vt 0.550560 0.624932 -vt 0.524922 0.663497 -vt 0.539080 0.616333 -vt 0.550871 0.501314 -vt 0.543898 0.563031 -vt 0.539362 0.509732 -vt 0.525316 0.462681 -vt 0.864604 0.213006 -vt 0.848515 0.125000 -vt 0.864604 0.036995 -vt 0.903448 0.000542 -vt 0.942292 0.036994 -vt 0.958382 0.125000 -vt 0.942292 0.213005 -vt 0.903448 0.249458 -vt 0.351724 0.765625 -vt 0.351724 0.906250 -vt 0.275862 0.718750 -vt 0.331034 0.718750 -vt 0.255172 0.906250 -vt 0.255172 0.765625 -vt 0.331034 0.953125 -vt 0.275862 0.953125 -vt 0.942292 0.463005 -vt 0.903448 0.499458 -vt 0.864604 0.463005 -vt 0.848515 0.375000 -vt 0.864604 0.286994 -vt 0.903448 0.250541 -vt 0.942292 0.286994 -vt 0.958382 0.375000 -vt 0.848276 0.375000 -vt 0.737931 0.375000 -vt 0.737931 0.281250 -vt 0.848276 0.281250 -vt 0.848276 0.187500 -vt 0.737931 0.187500 -vt 0.737931 0.093750 -vt 0.848276 0.093750 -vt 0.848276 0.562500 -vt 0.737931 0.562500 -vt 0.737931 0.468750 -vt 0.848276 0.468750 -vt 0.737931 -0.000000 -vt 0.848276 -0.000000 -vt 0.848276 0.656250 -vt 0.737931 0.656250 -vt 0.262069 0.171875 -vt 0.262069 0.140625 -vt 0.268966 0.140625 -vt 0.268966 0.171875 -vt 0.303448 0.171875 -vt 0.296552 0.171875 -vt 0.296552 0.140625 -vt 0.303448 0.140625 -vt 0.268966 0.125000 -vt 0.296552 0.125000 -vt 0.268966 0.187500 -vt 0.296552 0.187500 -vt 0.268966 0.093750 -vt 0.296552 0.093750 -vt 0.303448 0.140625 -vt 0.303448 0.171875 -vt 0.296552 0.171875 -vt 0.296552 0.140625 -vt 0.262069 0.140625 -vt 0.268966 0.140625 -vt 0.268966 0.171875 -vt 0.262069 0.171875 -vt 0.296552 0.187500 -vt 0.268966 0.187500 -vt 0.296552 0.125000 -vt 0.268966 0.125000 -vt 0.296552 0.093750 -vt 0.268966 0.093750 -vt 0.262069 0.171875 -vt 0.262069 0.140625 -vt 0.268966 0.140625 -vt 0.268966 0.171875 -vt 0.303448 0.171875 -vt 0.296552 0.171875 -vt 0.296552 0.140625 -vt 0.303448 0.140625 -vt 0.268966 0.125000 -vt 0.296552 0.125000 -vt 0.268966 0.187500 -vt 0.296552 0.187500 -vt 0.268966 0.093750 -vt 0.296552 0.093750 -vt 0.303448 0.140625 -vt 0.303448 0.171875 -vt 0.296552 0.171875 -vt 0.296552 0.140625 -vt 0.262069 0.140625 -vt 0.268966 0.140625 -vt 0.268966 0.171875 -vt 0.262069 0.171875 -vt 0.296552 0.187500 -vt 0.268966 0.187500 -vt 0.296552 0.125000 -vt 0.268966 0.125000 -vt 0.296552 0.093750 -vt 0.268966 0.093750 -vt 0.317241 0.171875 -vt 0.317241 0.140625 -vt 0.324138 0.140625 -vt 0.324138 0.171875 -vt 0.344828 0.187500 -vt 0.344828 0.171875 -vt 0.358621 0.171875 -vt 0.358621 0.187500 -vt 0.324138 0.125000 -vt 0.351724 0.125000 -vt 0.351724 0.140625 -vt 0.324138 0.187500 -vt 0.324138 0.093750 -vt 0.344828 0.093750 -vt 0.696552 0.687500 -vt 0.696552 0.625000 -vt 0.703448 0.625000 -vt 0.703448 0.687500 -vt 0.696552 0.500000 -vt 0.696552 0.437500 -vt 0.703448 0.437500 -vt 0.703448 0.500000 -vt 0.731034 0.437500 -vt 0.731034 0.687500 -vt 0.413793 0.914062 -vt 0.413793 0.859375 -vt 0.420690 0.859375 -vt 0.420690 0.914062 -vt 0.475862 0.914062 -vt 0.475862 0.859375 -vt 0.482759 0.859375 -vt 0.482759 0.914062 -vt 0.465517 0.937500 -vt 0.431034 0.937500 -vt 0.465517 0.953125 -vt 0.431034 0.953125 -vt 0.479310 0.937500 -vt 0.479310 0.953125 -vt 0.417241 0.953125 -vt 0.417241 0.937500 -vt 0.468966 -0.000000 -vt 0.468966 0.250000 -vt 0.337931 0.343750 -vt 0.255172 0.343750 -vt 0.255172 0.312500 -vt 0.337931 0.312500 -vt 0.351724 0.313754 -vt 0.363190 0.328752 -vt 0.363190 0.358748 -vt 0.351724 0.373746 -vt 0.340258 0.358748 -vt 0.340258 0.328752 -vt 0.255172 0.281250 -vt 0.337931 0.281250 -vt 0.255172 0.250000 -vt 0.337931 0.250000 -vt 0.340258 0.266252 -vt 0.351724 0.251254 -vt 0.363190 0.266252 -vt 0.363190 0.296248 -vt 0.351724 0.311246 -vt 0.340258 0.296248 -vt 0.924138 0.625000 -vt 0.868966 0.625000 -vt 0.868966 0.500000 -vt 0.924138 0.500000 -vt 0.848276 0.625000 -vt 0.848276 0.500000 -vt 0.944828 0.500000 -vt 0.944828 0.625000 -vt 0.834483 0.718750 -vt 0.834483 0.906250 -vt 0.765517 0.906250 -vt 0.765517 0.718750 -vt 0.737931 0.906250 -vt 0.737931 0.718750 -vt 0.862069 0.718750 -vt 0.862069 0.906250 -vt 0.834483 0.968750 -vt 0.765517 0.968750 -vt 0.765517 0.656250 -vt 0.834483 0.656250 -vt 0.958621 0.875000 -vt 0.903448 0.875000 -vt 0.903448 0.718750 -vt 0.958621 0.718750 -vt 0.903448 0.625000 -vt 0.958621 0.625000 -vt 0.958621 0.968750 -vt 0.903448 0.968750 -vt 0.862069 0.875000 -vt 0.862069 0.718750 -vt 1.000000 0.718750 -vt 1.000000 0.875000 -vt 0.986207 0.187500 -vt 0.958621 0.187500 -vt 0.958621 0.156250 -vt 0.986207 0.156250 -vt 0.986207 0.062500 -vt 0.958621 0.062500 -vt 0.958621 0.031250 -vt 0.986207 0.031250 -vt 0.986207 0.125000 -vt 0.958621 0.125000 -vt 0.958621 0.093750 -vt 0.986207 0.093750 -vt 0.958621 0.000000 -vt 0.986207 0.000000 -vt 0.978890 0.244165 -vt 0.965937 0.244165 -vt 0.959461 0.218750 -vt 0.965937 0.193335 -vt 0.978890 0.193335 -vt 0.985367 0.218750 -vt 0.737931 0.093750 -vt 0.737931 0.109375 -vt 0.724138 0.109375 -vt 0.724138 0.093750 -vt 0.737931 0.000000 -vt 0.737931 0.015625 -vt 0.724138 0.015625 -vt 0.724138 0.000000 -vt 0.737931 0.125000 -vt 0.737931 0.140625 -vt 0.724138 0.140625 -vt 0.724138 0.125000 -vt 0.737931 0.062500 -vt 0.737931 0.078125 -vt 0.724138 0.078125 -vt 0.724138 0.062500 -vt 0.737931 0.031250 -vt 0.737931 0.046875 -vt 0.724138 0.046875 -vt 0.724138 0.031250 -vt 0.737931 0.156250 -vt 0.737931 0.171875 -vt 0.724138 0.171875 -vt 0.724138 0.156250 -vt 0.717241 0.031250 -vt 0.717241 0.000000 -vt 0.717241 0.156250 -vt 0.717241 0.125000 -vt 0.717241 0.093750 -vt 0.717241 0.062500 -vt 0.717241 0.187500 -vt 0.675862 0.062500 -vt 0.675862 0.031250 -vt 0.675862 0.187500 -vt 0.675862 0.156250 -vt 0.675862 0.125000 -vt 0.675862 0.093750 -vt 0.675862 0.000000 -vt 0.668966 0.140625 -vt 0.668966 0.125000 -vt 0.668966 0.109375 -vt 0.668966 0.093750 -vt 0.668966 0.078125 -vt 0.668966 0.062500 -vt 0.668966 0.046875 -vt 0.668966 0.031250 -vt 0.668966 0.015625 -vt 0.668966 0.000000 -vt 0.668966 0.171875 -vt 0.668966 0.156250 -vt 0.655172 0.171875 -vt 0.655172 0.156250 -vt 0.655172 0.109375 -vt 0.655172 0.093750 -vt 0.655172 0.015625 -vt 0.655172 0.000000 -vt 0.655172 0.140625 -vt 0.655172 0.125000 -vt 0.655172 0.078125 -vt 0.655172 0.062500 -vt 0.655172 0.046875 -vt 0.655172 0.031250 -vt 0.648276 0.156250 -vt 0.648276 0.125000 -vt 0.648276 0.093750 -vt 0.648276 0.062500 -vt 0.648276 0.031250 -vt 0.648276 0.000000 -vt 0.648276 0.187500 -vt 0.641379 0.125000 -vt 0.641379 0.093750 -vt 0.641379 0.031250 -vt 0.641379 -0.000000 -vt 0.641379 0.156250 -vt 0.641379 0.062500 -vt 0.641379 0.187500 -vt 0.634483 0.078125 -vt 0.634483 0.062500 -vt 0.634483 0.046875 -vt 0.634483 0.031250 -vt 0.634483 0.171875 -vt 0.634483 0.156250 -vt 0.634483 0.109375 -vt 0.634483 0.093750 -vt 0.634483 0.015625 -vt 0.634483 0.000000 -vt 0.634483 0.140625 -vt 0.634483 0.125000 -vt 0.630883 0.028561 -vt 0.624290 0.028561 -vt 0.620993 0.015625 -vt 0.624290 0.002689 -vt 0.630883 0.002689 -vt 0.634179 0.015625 -vt 0.510345 0.156250 -vt 0.489655 0.156250 -vt 0.489655 0.046875 -vt 0.510345 0.046875 -vt 0.434483 0.750000 -vt 0.434483 0.812500 -vt 0.413793 0.812500 -vt 0.413793 0.765625 -vt 0.420690 0.750000 -vt 0.489655 0.000000 -vt 0.510345 0.000000 -vt 0.468966 0.156250 -vt 0.468966 0.046875 -vt 0.531034 0.046875 -vt 0.531034 0.156250 -vt 0.496552 0.156250 -vt 0.496552 0.187500 -vt 0.468966 0.187500 -vt 0.468966 0.156250 -vt 0.496552 0.265625 -vt 0.496552 0.312500 -vt 0.468966 0.312500 -vt 0.468966 0.265625 -vt 0.496552 0.234375 -vt 0.468966 0.234375 -vt 0.455172 0.750000 -vt 0.455172 0.812500 -vt 0.496552 0.750000 -vt 0.496552 0.765625 -vt 0.475862 0.765625 -vt 0.475862 0.750000 -vt 0.468966 0.750000 -vt 0.475862 0.812500 -vt 0.455172 0.859375 -vt 0.434483 0.859375 -vt 0.496552 0.812500 -vt 0.434483 0.718750 -vt 0.455172 0.718750 -vt 0.537931 0.812500 -vt 0.537931 0.828125 -vt 0.524138 0.828125 -vt 0.524138 0.812500 -vt 0.503448 0.718750 -vt 0.517241 0.718750 -vt 0.517241 0.812500 -vt 0.503448 0.812500 -vt 0.524138 0.718750 -vt 0.537931 0.718750 -vt 0.496552 0.718750 -vt 0.496552 0.812500 -vt 0.986207 0.609375 -vt 0.979310 0.609375 -vt 0.979310 0.593750 -vt 0.986207 0.593750 -vt 0.979310 0.531250 -vt 0.979310 0.515625 -vt 0.986207 0.515625 -vt 0.986207 0.531250 -vt 0.972414 0.593750 -vt 0.972414 0.562500 -vt 0.979310 0.578125 -vt 0.551724 0.625000 -vt 0.565517 0.609375 -vt 0.620690 0.609375 -vt 0.620690 0.734375 -vt 0.606897 0.734375 -vt 0.620690 0.640625 -vt 0.634483 0.640625 -vt 0.565517 0.640625 -vt 0.565517 0.734375 -vt 0.662069 0.734375 -vt 0.648276 0.640625 -vt 0.565517 0.390625 -vt 0.565517 0.484375 -vt 0.551724 0.500000 -vt 0.662069 0.375000 -vt 0.606897 0.390625 -vt 0.620690 0.484375 -vt 0.117241 0.906250 -vt 0.075862 0.906250 -vt 0.075862 0.875000 -vt 0.117241 0.875000 -vt 0.117241 0.125000 -vt 0.158621 0.125000 -vt 0.158621 0.156250 -vt 0.117241 0.156250 -vt 0.117241 0.906250 -vt 0.117241 0.875000 -vt 0.158621 0.875000 -vt 0.158621 0.906250 -vt 0.131034 0.250000 -vt 0.144828 0.250000 -vt 0.227586 0.875000 -vt 0.213793 0.875000 -vt 0.213793 0.781250 -vt 0.227586 0.781250 -vt 0.020690 0.781250 -vt 0.062069 0.781250 -vt 0.020690 0.875000 -vt 0.186207 0.281250 -vt 0.144828 0.281250 -vt 0.186207 0.250000 -vt 0.213793 0.750000 -vt 0.172414 0.781250 -vt 0.172414 0.750000 -vt 0.131034 0.281250 -vt 0.089655 0.281250 -vt 0.089655 0.250000 -vt 0.020690 0.906250 -vt 0.020690 0.750000 -vt 0.062069 0.750000 -vt 0.544828 0.203125 -vt 0.551724 0.203125 -vt 0.551724 0.250000 -vt 0.544828 0.250000 -vt 0.524138 0.203125 -vt 0.531034 0.203125 -vt 0.531034 0.250000 -vt 0.524138 0.250000 -vt 0.503448 0.203125 -vt 0.510345 0.203125 -vt 0.510345 0.250000 -vt 0.503448 0.250000 -vt 0.537931 0.203125 -vt 0.537931 0.250000 -vt 0.510345 0.296875 -vt 0.503448 0.296875 -vt 0.531034 0.296875 -vt 0.524138 0.296875 -vt 0.531034 0.203125 -vt 0.531034 0.187500 -vt 0.537931 0.187500 -vt 0.544828 0.187500 -vt 0.551724 0.187500 -vt 0.551724 0.203125 -vt 0.503448 0.203125 -vt 0.503448 0.187500 -vt 0.510345 0.187500 -vt 0.517241 0.187500 -vt 0.517241 0.203125 -vt 0.524138 0.187500 -vt 0.524138 0.203125 -vt 0.537931 0.156250 -vt 0.544828 0.156250 -vt 0.524138 0.156250 -vt 0.531034 0.156250 -vt 0.524138 0.187500 -vt 0.503448 0.156250 -vt 0.510345 0.156250 -vt 0.517241 0.156250 -vt 0.524138 0.156250 -vt 0.551724 0.156250 -vt 0.496552 0.156250 -vt 0.496552 0.187500 -vt 0.496552 0.203125 -vt 0.496552 0.250000 -vt 0.986207 0.515625 -vt 0.979310 0.515625 -vt 0.979310 0.484375 -vt 0.986207 0.484375 -vt 0.213793 0.906250 -vt 0.006897 0.875000 -vt 0.006897 0.781250 -vt 0.517241 0.250000 -vt 0.517241 0.296875 -vt 0.524138 0.250000 -vt 0.524138 0.296875 -vt 0.551724 0.296875 -vt 0.544828 0.296875 -vt 0.496552 0.296875 -vt 0.537931 0.296875 -vt 0.524138 0.203125 -vt 0.213793 0.265625 -vt 0.213793 0.109375 -vt 0.220690 0.109375 -vt 0.220690 0.265625 -vt 0.972414 0.515625 -vt 0.972414 0.484375 -vt 0.227586 0.109375 -vt 0.227586 0.265625 -vt 0.965517 0.515625 -vt 0.965517 0.484375 -vt 0.186207 0.265625 -vt 0.186207 0.109375 -vt 0.193103 0.109375 -vt 0.193103 0.265625 -vt 0.958621 0.515625 -vt 0.958621 0.484375 -vt 0.200000 0.109375 -vt 0.200000 0.265625 -vt 0.187370 0.273751 -vt 0.193103 0.266252 -vt 0.198836 0.273751 -vt 0.198836 0.288749 -vt 0.193103 0.296248 -vt 0.187370 0.288749 -vt 0.206897 0.109375 -vt 0.206897 0.265625 -vt 0.206897 0.266252 -vt 0.212630 0.273751 -vt 0.212630 0.288749 -vt 0.206897 0.296248 -vt 0.201164 0.288749 -vt 0.201164 0.273751 -vt 0.965517 0.468750 -vt 0.972414 0.468750 -vt 0.979310 0.484375 -vt 0.979310 0.468750 -vt 0.958621 0.468750 -vt 0.958621 0.484375 -vt 0.958621 0.453125 -vt 0.965517 0.453125 -vt 0.965517 0.437500 -vt 0.958621 0.437500 -vt 0.958621 0.421875 -vt 0.965517 0.421875 -vt 0.972414 0.453125 -vt 0.979310 0.453125 -vt 0.986207 0.468750 -vt 0.986207 0.453125 -vt 0.972414 0.437500 -vt 0.965517 0.453125 -vt 0.986207 0.453125 -vt 0.979310 0.437500 -vt 0.986207 0.437500 -vt 0.979310 0.421875 -vt 0.972414 0.421875 -vt 0.972414 0.343750 -vt 0.979310 0.343750 -vt 0.986207 0.421875 -vt 0.965517 0.328125 -vt 0.972414 0.328125 -vt 0.965517 0.343750 -vt 0.986207 0.343750 -vt 0.958621 0.343750 -vt 0.965517 0.343750 -vt 0.979310 0.328125 -vt 0.986207 0.328125 -vt 0.979310 0.296875 -vt 0.986207 0.296875 -vt 0.986207 0.343750 -vt 0.965517 0.281250 -vt 0.958621 0.281250 -vt 0.958621 0.250000 -vt 0.965517 0.250000 -vt 0.958621 0.328125 -vt 0.958621 0.296875 -vt 0.965517 0.296875 -vt 0.972414 0.296875 -vt 0.979310 0.296875 -vt 0.972414 0.281250 -vt 0.979310 0.281250 -vt 0.958621 0.296875 -vt 0.986207 0.281250 -vt 0.979310 0.250000 -vt 0.986207 0.250000 -vt 0.972414 0.250000 -vt 0.510345 0.156250 -vt 0.489655 0.156250 -vt 0.489655 0.046875 -vt 0.510345 0.046875 -vt 0.151724 0.046875 -vt 0.158621 0.046875 -vt 0.158621 0.062500 -vt 0.151724 0.062500 -vt 0.165517 0.046875 -vt 0.172414 0.046875 -vt 0.172414 0.062500 -vt 0.165517 0.062500 -vt 0.179310 0.046875 -vt 0.186207 0.046875 -vt 0.186207 0.062500 -vt 0.179310 0.062500 -vt 0.193103 0.046875 -vt 0.193103 0.062500 -vt 0.144828 0.046875 -vt 0.144828 0.062500 -vt 0.200000 0.046875 -vt 0.200000 0.062500 -vt 0.172208 0.125000 -vt 0.170248 0.135718 -vt 0.165517 0.140158 -vt 0.160786 0.135718 -vt 0.158827 0.125000 -vt 0.160786 0.114281 -vt 0.165517 0.109842 -vt 0.170248 0.114281 -vt 0.179310 0.078125 -vt 0.186207 0.078125 -vt 0.186207 0.093750 -vt 0.179310 0.093750 -vt 0.193103 0.078125 -vt 0.193103 0.093750 -vt 0.200000 0.078125 -vt 0.200000 0.093750 -vt 0.144828 0.078125 -vt 0.151724 0.078125 -vt 0.151724 0.093750 -vt 0.144828 0.093750 -vt 0.158621 0.078125 -vt 0.158621 0.093750 -vt 0.165517 0.078125 -vt 0.165517 0.093750 -vt 0.172414 0.078125 -vt 0.172414 0.093750 -vt 0.151724 0.046875 -vt 0.158621 0.046875 -vt 0.158621 0.062500 -vt 0.151724 0.062500 -vt 0.165517 0.046875 -vt 0.172414 0.046875 -vt 0.172414 0.062500 -vt 0.165517 0.062500 -vt 0.179310 0.046875 -vt 0.186207 0.046875 -vt 0.186207 0.062500 -vt 0.179310 0.062500 -vt 0.193103 0.046875 -vt 0.193103 0.062500 -vt 0.144828 0.046875 -vt 0.144828 0.062500 -vt 0.200000 0.046875 -vt 0.200000 0.062500 -vt 0.172208 0.125000 -vt 0.170248 0.135718 -vt 0.165517 0.140158 -vt 0.160786 0.135718 -vt 0.158827 0.125000 -vt 0.160786 0.114281 -vt 0.165517 0.109842 -vt 0.170248 0.114281 -vt 0.179310 0.078125 -vt 0.186207 0.078125 -vt 0.186207 0.093750 -vt 0.179310 0.093750 -vt 0.193103 0.078125 -vt 0.193103 0.093750 -vt 0.200000 0.078125 -vt 0.200000 0.093750 -vt 0.144828 0.078125 -vt 0.151724 0.078125 -vt 0.151724 0.093750 -vt 0.144828 0.093750 -vt 0.158621 0.078125 -vt 0.158621 0.093750 -vt 0.165517 0.078125 -vt 0.165517 0.093750 -vt 0.172414 0.078125 -vt 0.172414 0.093750 -vt 0.151724 0.046875 -vt 0.158621 0.046875 -vt 0.158621 0.062500 -vt 0.151724 0.062500 -vt 0.165517 0.046875 -vt 0.172414 0.046875 -vt 0.172414 0.062500 -vt 0.165517 0.062500 -vt 0.179310 0.046875 -vt 0.186207 0.046875 -vt 0.186207 0.062500 -vt 0.179310 0.062500 -vt 0.193103 0.046875 -vt 0.193103 0.062500 -vt 0.144828 0.046875 -vt 0.144828 0.062500 -vt 0.200000 0.046875 -vt 0.200000 0.062500 -vt 0.172208 0.125000 -vt 0.170248 0.135718 -vt 0.165517 0.140158 -vt 0.160786 0.135718 -vt 0.158827 0.125000 -vt 0.160786 0.114281 -vt 0.165517 0.109842 -vt 0.170248 0.114281 -vt 0.179310 0.078125 -vt 0.186207 0.078125 -vt 0.186207 0.093750 -vt 0.179310 0.093750 -vt 0.193103 0.078125 -vt 0.193103 0.093750 -vt 0.200000 0.078125 -vt 0.200000 0.093750 -vt 0.144828 0.078125 -vt 0.151724 0.078125 -vt 0.151724 0.093750 -vt 0.144828 0.093750 -vt 0.158621 0.078125 -vt 0.158621 0.093750 -vt 0.165517 0.078125 -vt 0.165517 0.093750 -vt 0.172414 0.078125 -vt 0.172414 0.093750 -vt 0.151724 0.046875 -vt 0.158621 0.046875 -vt 0.158621 0.062500 -vt 0.151724 0.062500 -vt 0.165517 0.046875 -vt 0.172414 0.046875 -vt 0.172414 0.062500 -vt 0.165517 0.062500 -vt 0.179310 0.046875 -vt 0.186207 0.046875 -vt 0.186207 0.062500 -vt 0.179310 0.062500 -vt 0.193103 0.046875 -vt 0.193103 0.062500 -vt 0.144828 0.046875 -vt 0.144828 0.062500 -vt 0.200000 0.046875 -vt 0.200000 0.062500 -vt 0.172208 0.125000 -vt 0.170248 0.135718 -vt 0.165517 0.140158 -vt 0.160786 0.135718 -vt 0.158827 0.125000 -vt 0.160786 0.114281 -vt 0.165517 0.109842 -vt 0.170248 0.114281 -vt 0.179310 0.078125 -vt 0.186207 0.078125 -vt 0.186207 0.093750 -vt 0.179310 0.093750 -vt 0.193103 0.078125 -vt 0.193103 0.093750 -vt 0.200000 0.078125 -vt 0.200000 0.093750 -vt 0.144828 0.078125 -vt 0.151724 0.078125 -vt 0.151724 0.093750 -vt 0.144828 0.093750 -vt 0.158621 0.078125 -vt 0.158621 0.093750 -vt 0.165517 0.078125 -vt 0.165517 0.093750 -vt 0.172414 0.078125 -vt 0.172414 0.093750 -vt 0.151724 0.046875 -vt 0.158621 0.046875 -vt 0.158621 0.062500 -vt 0.151724 0.062500 -vt 0.165517 0.046875 -vt 0.172414 0.046875 -vt 0.172414 0.062500 -vt 0.165517 0.062500 -vt 0.179310 0.046875 -vt 0.186207 0.046875 -vt 0.186207 0.062500 -vt 0.179310 0.062500 -vt 0.193103 0.046875 -vt 0.193103 0.062500 -vt 0.144828 0.046875 -vt 0.144828 0.062500 -vt 0.200000 0.046875 -vt 0.200000 0.062500 -vt 0.172208 0.125000 -vt 0.170248 0.135718 -vt 0.165517 0.140158 -vt 0.160786 0.135718 -vt 0.158827 0.125000 -vt 0.160786 0.114281 -vt 0.165517 0.109842 -vt 0.170248 0.114281 -vt 0.179310 0.078125 -vt 0.186207 0.078125 -vt 0.186207 0.093750 -vt 0.179310 0.093750 -vt 0.193103 0.078125 -vt 0.193103 0.093750 -vt 0.200000 0.078125 -vt 0.200000 0.093750 -vt 0.144828 0.078125 -vt 0.151724 0.078125 -vt 0.151724 0.093750 -vt 0.144828 0.093750 -vt 0.158621 0.078125 -vt 0.158621 0.093750 -vt 0.165517 0.078125 -vt 0.165517 0.093750 -vt 0.172414 0.078125 -vt 0.172414 0.093750 -vt 0.151724 0.046875 -vt 0.158621 0.046875 -vt 0.158621 0.062500 -vt 0.151724 0.062500 -vt 0.165517 0.046875 -vt 0.172414 0.046875 -vt 0.172414 0.062500 -vt 0.165517 0.062500 -vt 0.179310 0.046875 -vt 0.186207 0.046875 -vt 0.186207 0.062500 -vt 0.179310 0.062500 -vt 0.193103 0.046875 -vt 0.193103 0.062500 -vt 0.144828 0.046875 -vt 0.144828 0.062500 -vt 0.200000 0.046875 -vt 0.200000 0.062500 -vt 0.172208 0.125000 -vt 0.170248 0.135718 -vt 0.165517 0.140158 -vt 0.160786 0.135718 -vt 0.158827 0.125000 -vt 0.160786 0.114281 -vt 0.165517 0.109842 -vt 0.170248 0.114281 -vt 0.179310 0.078125 -vt 0.186207 0.078125 -vt 0.186207 0.093750 -vt 0.179310 0.093750 -vt 0.193103 0.078125 -vt 0.193103 0.093750 -vt 0.200000 0.078125 -vt 0.200000 0.093750 -vt 0.144828 0.078125 -vt 0.151724 0.078125 -vt 0.151724 0.093750 -vt 0.144828 0.093750 -vt 0.158621 0.078125 -vt 0.158621 0.093750 -vt 0.165517 0.078125 -vt 0.165517 0.093750 -vt 0.172414 0.078125 -vt 0.172414 0.093750 -vt 0.151724 0.046875 -vt 0.158621 0.046875 -vt 0.158621 0.062500 -vt 0.151724 0.062500 -vt 0.165517 0.046875 -vt 0.172414 0.046875 -vt 0.172414 0.062500 -vt 0.165517 0.062500 -vt 0.179310 0.046875 -vt 0.186207 0.046875 -vt 0.186207 0.062500 -vt 0.179310 0.062500 -vt 0.193103 0.046875 -vt 0.193103 0.062500 -vt 0.144828 0.046875 -vt 0.144828 0.062500 -vt 0.200000 0.046875 -vt 0.200000 0.062500 -vt 0.172208 0.125000 -vt 0.170248 0.135718 -vt 0.165517 0.140158 -vt 0.160786 0.135718 -vt 0.158827 0.125000 -vt 0.160786 0.114281 -vt 0.165517 0.109842 -vt 0.170248 0.114281 -vt 0.179310 0.078125 -vt 0.186207 0.078125 -vt 0.186207 0.093750 -vt 0.179310 0.093750 -vt 0.193103 0.078125 -vt 0.193103 0.093750 -vt 0.200000 0.078125 -vt 0.200000 0.093750 -vt 0.144828 0.078125 -vt 0.151724 0.078125 -vt 0.151724 0.093750 -vt 0.144828 0.093750 -vt 0.158621 0.078125 -vt 0.158621 0.093750 -vt 0.165517 0.078125 -vt 0.165517 0.093750 -vt 0.172414 0.078125 -vt 0.172414 0.093750 -vt 0.096552 0.296875 -vt 0.117241 0.296875 -vt 0.117241 0.328125 -vt 0.096552 0.328125 -vt 0.117241 0.343750 -vt 0.096552 0.343750 -vt 0.124138 0.296875 -vt 0.124138 0.328125 -vt 0.096552 0.281250 -vt 0.117241 0.281250 -vt 0.089655 0.328125 -vt 0.089655 0.296875 -vt 0.096552 0.296875 -vt 0.117241 0.296875 -vt 0.117241 0.328125 -vt 0.096552 0.328125 -vt 0.117241 0.343750 -vt 0.096552 0.343750 -vt 0.124138 0.296875 -vt 0.124138 0.328125 -vt 0.096552 0.281250 -vt 0.117241 0.281250 -vt 0.089655 0.328125 -vt 0.089655 0.296875 -vt 0.096552 0.296875 -vt 0.117241 0.296875 -vt 0.117241 0.328125 -vt 0.096552 0.328125 -vt 0.117241 0.343750 -vt 0.096552 0.343750 -vt 0.124138 0.296875 -vt 0.124138 0.328125 -vt 0.096552 0.281250 -vt 0.117241 0.281250 -vt 0.089655 0.328125 -vt 0.089655 0.296875 -vt 0.096552 0.296875 -vt 0.117241 0.296875 -vt 0.117241 0.328125 -vt 0.096552 0.328125 -vt 0.117241 0.343750 -vt 0.096552 0.343750 -vt 0.124138 0.296875 -vt 0.124138 0.328125 -vt 0.096552 0.281250 -vt 0.117241 0.281250 -vt 0.089655 0.328125 -vt 0.089655 0.296875 -vt 0.096552 0.296875 -vt 0.117241 0.296875 -vt 0.117241 0.328125 -vt 0.096552 0.328125 -vt 0.117241 0.343750 -vt 0.096552 0.343750 -vt 0.124138 0.296875 -vt 0.124138 0.328125 -vt 0.096552 0.281250 -vt 0.117241 0.281250 -vt 0.089655 0.328125 -vt 0.089655 0.296875 -vt 0.096552 0.296875 -vt 0.117241 0.296875 -vt 0.117241 0.328125 -vt 0.096552 0.328125 -vt 0.117241 0.343750 -vt 0.096552 0.343750 -vt 0.124138 0.296875 -vt 0.124138 0.328125 -vt 0.096552 0.281250 -vt 0.117241 0.281250 -vt 0.089655 0.328125 -vt 0.089655 0.296875 -vt 0.096552 0.296875 -vt 0.117241 0.296875 -vt 0.117241 0.328125 -vt 0.096552 0.328125 -vt 0.117241 0.343750 -vt 0.096552 0.343750 -vt 0.124138 0.296875 -vt 0.124138 0.328125 -vt 0.096552 0.281250 -vt 0.117241 0.281250 -vt 0.089655 0.328125 -vt 0.089655 0.296875 -vt 0.096552 0.296875 -vt 0.117241 0.296875 -vt 0.117241 0.328125 -vt 0.096552 0.328125 -vt 0.117241 0.343750 -vt 0.096552 0.343750 -vt 0.124138 0.296875 -vt 0.124138 0.328125 -vt 0.096552 0.281250 -vt 0.117241 0.281250 -vt 0.089655 0.328125 -vt 0.089655 0.296875 -vt 0.096552 0.296875 -vt 0.117241 0.296875 -vt 0.117241 0.328125 -vt 0.096552 0.328125 -vt 0.117241 0.343750 -vt 0.096552 0.343750 -vt 0.124138 0.296875 -vt 0.124138 0.328125 -vt 0.096552 0.281250 -vt 0.117241 0.281250 -vt 0.089655 0.328125 -vt 0.089655 0.296875 -vt 0.096552 0.296875 -vt 0.117241 0.296875 -vt 0.117241 0.328125 -vt 0.096552 0.328125 -vt 0.117241 0.343750 -vt 0.096552 0.343750 -vt 0.124138 0.296875 -vt 0.124138 0.328125 -vt 0.096552 0.281250 -vt 0.117241 0.281250 -vt 0.089655 0.328125 -vt 0.089655 0.296875 -vt 0.096552 0.296875 -vt 0.117241 0.296875 -vt 0.117241 0.328125 -vt 0.096552 0.328125 -vt 0.117241 0.343750 -vt 0.096552 0.343750 -vt 0.124138 0.296875 -vt 0.124138 0.328125 -vt 0.096552 0.281250 -vt 0.117241 0.281250 -vt 0.089655 0.328125 -vt 0.089655 0.296875 -vt 0.096552 0.296875 -vt 0.117241 0.296875 -vt 0.117241 0.328125 -vt 0.096552 0.328125 -vt 0.117241 0.343750 -vt 0.096552 0.343750 -vt 0.124138 0.296875 -vt 0.124138 0.328125 -vt 0.096552 0.281250 -vt 0.117241 0.281250 -vt 0.089655 0.328125 -vt 0.089655 0.296875 -vt 0.096552 0.296875 -vt 0.117241 0.296875 -vt 0.117241 0.328125 -vt 0.096552 0.328125 -vt 0.117241 0.343750 -vt 0.096552 0.343750 -vt 0.124138 0.296875 -vt 0.124138 0.328125 -vt 0.096552 0.281250 -vt 0.117241 0.281250 -vt 0.089655 0.328125 -vt 0.089655 0.296875 -vt 0.096552 0.296875 -vt 0.117241 0.296875 -vt 0.117241 0.328125 -vt 0.096552 0.328125 -vt 0.117241 0.343750 -vt 0.096552 0.343750 -vt 0.124138 0.296875 -vt 0.124138 0.328125 -vt 0.096552 0.281250 -vt 0.117241 0.281250 -vt 0.089655 0.328125 -vt 0.089655 0.296875 -vt 0.096552 0.296875 -vt 0.117241 0.296875 -vt 0.117241 0.328125 -vt 0.096552 0.328125 -vt 0.117241 0.343750 -vt 0.096552 0.343750 -vt 0.124138 0.296875 -vt 0.124138 0.328125 -vt 0.096552 0.281250 -vt 0.117241 0.281250 -vt 0.089655 0.328125 -vt 0.089655 0.296875 -vt 0.455172 0.531250 -vt 0.510345 0.531250 -vt 0.510345 0.562500 -vt 0.455172 0.562500 -vt 0.620690 0.515625 -vt 0.565517 0.515625 -vt 0.565517 0.515625 -vt 0.620690 0.515625 -vt 0.620690 0.609375 -vt 0.565517 0.609375 -vt 0.441379 0.609375 -vt 0.441379 0.515625 -vt 0.455172 0.515625 -vt 0.455172 0.609375 -vt 0.524138 0.515625 -vt 0.524138 0.609375 -vt 0.510345 0.609375 -vt 0.510345 0.515625 -vt 0.510345 0.593750 -vt 0.455172 0.593750 -vt 0.455172 0.562500 -vt 0.510345 0.562500 -vt 0.089655 0.375000 -vt 0.089655 0.421875 -vt 0.075862 0.421875 -vt 0.075862 0.375000 -vt 0.089655 0.328125 -vt 0.075862 0.328125 -vt 0.089655 0.281250 -vt 0.075862 0.281250 -vt 0.089655 0.234375 -vt 0.075862 0.234375 -vt 0.089655 0.187500 -vt 0.075862 0.187500 -vt 0.089655 0.140625 -vt 0.075862 0.140625 -vt 0.089655 0.093750 -vt 0.075862 0.093750 -vt 0.089655 0.046875 -vt 0.075862 0.046875 -vt 0.089655 -0.000000 -vt 0.075862 0.000000 -vt 0.089655 0.703125 -vt 0.089655 0.750000 -vt 0.075862 0.750000 -vt 0.075862 0.703125 -vt 0.089655 0.656250 -vt 0.075862 0.656250 -vt 0.089655 0.609375 -vt 0.075862 0.609375 -vt 0.089655 0.562500 -vt 0.075862 0.562500 -vt 0.089655 0.515625 -vt 0.075862 0.515625 -vt 0.089655 0.468750 -vt 0.075862 0.468750 -vt 0.055172 0.421875 -vt 0.055172 0.375000 -vt 0.055172 0.328125 -vt 0.055172 0.046875 -vt 0.055172 -0.000000 -vt 0.055172 0.468750 -vt 0.055172 0.093750 -vt 0.055172 0.515625 -vt 0.055172 0.140625 -vt 0.055172 0.562500 -vt 0.055172 0.187500 -vt 0.055172 0.609375 -vt 0.055172 0.234375 -vt 0.055172 0.656250 -vt 0.055172 0.281250 -vt 0.055172 0.703125 -vt 0.055172 0.750000 -vt 0.124138 0.390625 -vt 0.124138 0.375000 -vt 0.144828 0.375000 -vt 0.144828 0.390625 -vt 0.124138 0.359375 -vt 0.124138 0.343750 -vt 0.144828 0.343750 -vt 0.144828 0.359375 -vt 0.124138 0.328125 -vt 0.124138 0.312500 -vt 0.144828 0.312500 -vt 0.144828 0.328125 -vt 0.124138 0.296875 -vt 0.144828 0.296875 -vt 0.124138 0.406250 -vt 0.144828 0.406250 -vt 0.124138 0.281250 -vt 0.144828 0.281250 -vt 0.158621 0.312500 -vt 0.158621 0.328125 -vt 0.158621 0.343750 -vt 0.158621 0.359375 -vt 0.158621 0.375000 -vt 0.158621 0.390625 -vt 0.158621 0.281250 -vt 0.158621 0.296875 -vt 0.158621 0.406250 -vt 0.172414 0.390625 -vt 0.172414 0.406250 -vt 0.172414 0.296875 -vt 0.172414 0.312500 -vt 0.172414 0.328125 -vt 0.172414 0.343750 -vt 0.172414 0.359375 -vt 0.172414 0.375000 -vt 0.172414 0.281250 -vt 0.186207 0.328125 -vt 0.186207 0.343750 -vt 0.186207 0.359375 -vt 0.186207 0.375000 -vt 0.186207 0.390625 -vt 0.186207 0.406250 -vt 0.186207 0.296875 -vt 0.186207 0.312500 -vt 0.186207 0.281250 -vt 0.186207 -0.000000 -vt 0.193103 -0.000000 -vt 0.144828 -0.000000 -vt 0.151724 -0.000000 -vt 0.158621 -0.000000 -vt 0.165517 -0.000000 -vt 0.172414 -0.000000 -vt 0.179310 -0.000000 -vt 0.200000 -0.000000 -vt 0.193103 0.109375 -vt 0.186207 0.109375 -vt 0.200000 0.109375 -vt 0.151724 0.109375 -vt 0.144828 0.109375 -vt 0.158621 0.109375 -vt 0.179310 0.109375 -vt 0.172414 0.109375 -vt 0.165517 0.109375 -vt 0.000000 0.125000 -vt 0.000000 0.093750 -vt -0.000000 0.546875 -vt 0.000000 0.515625 -vt -0.000000 0.171875 -vt -0.000000 0.140625 -vt -0.000000 0.593750 -vt -0.000000 0.562500 -vt 0.000000 0.218750 -vt 0.000000 0.187500 -vt 0.000000 0.640625 -vt 0.000000 0.609375 -vt -0.000000 0.265625 -vt -0.000000 0.234375 -vt 0.000000 0.687500 -vt 0.000000 0.656250 -vt -0.000000 0.312500 -vt -0.000000 0.281250 -vt -0.000000 0.734375 -vt 0.000000 0.703125 -vt -0.000000 0.406250 -vt -0.000000 0.375000 -vt 0.000000 0.359375 -vt 0.000000 0.328125 -vt 0.000000 0.031250 -vt -0.000000 0.000000 -vt -0.000000 0.453125 -vt 0.000000 0.421875 -vt -0.000000 0.078125 -vt -0.000000 0.046875 -vt -0.000000 0.500000 -vt 0.000000 0.468750 -vt 0.296552 0.000000 -vt 0.310345 0.000000 -vt 0.268966 0.000000 -vt 0.282759 0.000000 -vt 0.351724 0.000000 -vt 0.365517 0.000000 -vt 0.324138 0.000000 -vt 0.337931 0.000000 -vt 0.255172 0.000000 -vt 0.317241 0.093750 -vt 0.310345 0.093750 -vt 0.303448 0.093750 -vt 0.296552 0.093750 -vt 0.289655 0.093750 -vt 0.282759 0.093750 -vt 0.275862 0.093750 -vt 0.268966 0.093750 -vt 0.331034 0.093750 -vt 0.324138 0.093750 -vt 0.344828 0.093750 -vt 0.337931 0.093750 -vt 0.358621 0.093750 -vt 0.351724 0.093750 -vt 0.262069 0.093750 -vt 0.255172 0.093750 -vt 0.393103 1.000000 -vt 0.393103 0.937500 -vt 0.413793 0.937500 -vt 0.413793 1.000000 -vt 0.393103 0.562500 -vt 0.393103 0.500000 -vt 0.413793 0.500000 -vt 0.413793 0.562500 -vt 0.393103 0.437500 -vt 0.413793 0.437500 -vt 0.393103 0.062500 -vt 0.393103 -0.000000 -vt 0.413793 -0.000000 -vt 0.413793 0.062500 -vt 0.393103 0.625000 -vt 0.413793 0.625000 -vt 0.393103 0.125000 -vt 0.413793 0.125000 -vt 0.393103 0.687500 -vt 0.413793 0.687500 -vt 0.393103 0.187500 -vt 0.413793 0.187500 -vt 0.393103 0.750000 -vt 0.413793 0.750000 -vt 0.393103 0.250000 -vt 0.413793 0.250000 -vt 0.393103 0.812500 -vt 0.413793 0.812500 -vt 0.393103 0.312500 -vt 0.413793 0.312500 -vt 0.393103 0.875000 -vt 0.413793 0.875000 -vt 0.393103 0.375000 -vt 0.413793 0.375000 -vt 0.958621 0.609375 -vt 0.958621 0.593750 -vt 0.965517 0.593750 -vt 0.965517 0.609375 -vt 0.958621 0.562500 -vt 0.958621 0.546875 -vt 0.965517 0.546875 -vt 0.965517 0.562500 -vt 0.986207 0.578125 -vt 0.958621 0.625000 -vt 0.965517 0.625000 -vt 0.958621 0.578125 -vt 0.965517 0.578125 -vt 0.979310 0.562500 -vt 0.986207 0.562500 -vt 0.958621 0.531250 -vt 0.958621 0.515625 -vt 0.965517 0.515625 -vt 0.965517 0.531250 -vt 0.958621 0.640625 -vt 0.965517 0.640625 -vt 0.979310 0.546875 -vt 0.986207 0.546875 -vt 0.965517 0.609375 -vt 0.965517 0.593750 -vt 0.972414 0.593750 -vt 0.972414 0.609375 -vt 0.965517 0.656250 -vt 0.965517 0.640625 -vt 0.972414 0.640625 -vt 0.972414 0.656250 -vt 0.965517 0.546875 -vt 0.965517 0.531250 -vt 0.972414 0.531250 -vt 0.972414 0.546875 -vt 0.965517 0.703125 -vt 0.965517 0.687500 -vt 0.972414 0.687500 -vt 0.972414 0.703125 -vt 0.965517 0.578125 -vt 0.972414 0.578125 -vt 0.965517 0.625000 -vt 0.972414 0.625000 -vt 0.965517 0.515625 -vt 0.972414 0.515625 -vt 0.965517 0.671875 -vt 0.972414 0.671875 -vt 0.965517 0.562500 -vt 0.972414 0.562500 -vt 0.296552 0.234375 -vt 0.296552 0.218750 -vt 0.310345 0.218750 -vt 0.310345 0.234375 -vt 0.296552 0.203125 -vt 0.296552 0.187500 -vt 0.310345 0.187500 -vt 0.310345 0.203125 -vt 0.296552 0.234375 -vt 0.310345 0.234375 -vt 0.310345 0.250000 -vt 0.296552 0.250000 -vt 0.296552 0.203125 -vt 0.310345 0.203125 -vt 0.310345 0.218750 -vt 0.296552 0.218750 -vt 0.296552 0.187500 -vt 0.310345 0.187500 -vt 0.324138 0.218750 -vt 0.324138 0.234375 -vt 0.324138 0.187500 -vt 0.324138 0.203125 -vt 0.324138 0.250000 -vt 0.296552 0.234375 -vt 0.310345 0.234375 -vt 0.310345 0.250000 -vt 0.296552 0.250000 -vt 0.296552 0.203125 -vt 0.310345 0.203125 -vt 0.310345 0.218750 -vt 0.296552 0.218750 -vt 0.296552 0.187500 -vt 0.310345 0.187500 -vt 0.324138 0.218750 -vt 0.324138 0.234375 -vt 0.324138 0.187500 -vt 0.324138 0.203125 -vt 0.324138 0.250000 -vt 0.296552 0.234375 -vt 0.310345 0.234375 -vt 0.310345 0.250000 -vt 0.296552 0.250000 -vt 0.296552 0.203125 -vt 0.310345 0.203125 -vt 0.310345 0.218750 -vt 0.296552 0.218750 -vt 0.296552 0.187500 -vt 0.310345 0.187500 -vt 0.324138 0.218750 -vt 0.324138 0.234375 -vt 0.324138 0.187500 -vt 0.324138 0.203125 -vt 0.324138 0.250000 -vt 0.255172 0.250000 -vt 0.255172 0.234375 -vt 0.255172 0.250000 -vt 0.255172 0.234375 -vt 0.255172 0.218750 -vt 0.255172 0.203125 -vt 0.255172 0.250000 -vt 0.255172 0.234375 -vt 0.255172 0.218750 -vt 0.255172 0.187500 -vt 0.255172 0.203125 -vt 0.255172 0.218750 -vt 0.255172 0.203125 -vt 0.255172 0.187500 -vt 0.255172 0.187500 -vt 0.296552 0.250000 -vt 0.310345 0.250000 -vt 0.324138 0.203125 -vt 0.324138 0.218750 -vt 0.324138 0.234375 -vt 0.324138 0.250000 -vt 0.324138 0.187500 -vt 0.296552 0.203125 -vt 0.296552 0.187500 -vt 0.310345 0.187500 -vt 0.310345 0.203125 -vt 0.296552 0.234375 -vt 0.296552 0.218750 -vt 0.310345 0.218750 -vt 0.310345 0.234375 -vt 0.296552 0.250000 -vt 0.310345 0.250000 -vt 0.324138 0.203125 -vt 0.324138 0.218750 -vt 0.324138 0.234375 -vt 0.324138 0.250000 -vt 0.324138 0.187500 -vt 0.296552 0.203125 -vt 0.296552 0.187500 -vt 0.310345 0.187500 -vt 0.310345 0.203125 -vt 0.296552 0.234375 -vt 0.296552 0.218750 -vt 0.310345 0.218750 -vt 0.310345 0.234375 -vt 0.296552 0.250000 -vt 0.310345 0.250000 -vt 0.324138 0.203125 -vt 0.324138 0.218750 -vt 0.324138 0.234375 -vt 0.324138 0.250000 -vt 0.324138 0.187500 -vt 0.255172 0.203125 -vt 0.255172 0.187500 -vt 0.255172 0.203125 -vt 0.255172 0.187500 -vt 0.255172 0.218750 -vt 0.255172 0.234375 -vt 0.255172 0.203125 -vt 0.255172 0.187500 -vt 0.255172 0.218750 -vt 0.255172 0.250000 -vt 0.255172 0.234375 -vt 0.255172 0.218750 -vt 0.255172 0.234375 -vt 0.255172 0.250000 -vt 0.255172 0.250000 -vt 0.124138 0.390625 -vt 0.124138 0.375000 -vt 0.144828 0.375000 -vt 0.144828 0.390625 -vt 0.124138 0.359375 -vt 0.124138 0.343750 -vt 0.144828 0.343750 -vt 0.144828 0.359375 -vt 0.124138 0.328125 -vt 0.124138 0.312500 -vt 0.144828 0.312500 -vt 0.144828 0.328125 -vt 0.124138 0.296875 -vt 0.144828 0.296875 -vt 0.124138 0.406250 -vt 0.144828 0.406250 -vt 0.124138 0.281250 -vt 0.144828 0.281250 -vt 0.158621 0.312500 -vt 0.158621 0.328125 -vt 0.158621 0.343750 -vt 0.158621 0.359375 -vt 0.158621 0.375000 -vt 0.158621 0.390625 -vt 0.158621 0.281250 -vt 0.158621 0.296875 -vt 0.158621 0.406250 -vt 0.172414 0.390625 -vt 0.172414 0.406250 -vt 0.172414 0.296875 -vt 0.172414 0.312500 -vt 0.172414 0.328125 -vt 0.172414 0.343750 -vt 0.172414 0.359375 -vt 0.172414 0.375000 -vt 0.172414 0.281250 -vt 0.186207 0.328125 -vt 0.186207 0.343750 -vt 0.186207 0.359375 -vt 0.186207 0.375000 -vt 0.186207 0.390625 -vt 0.186207 0.406250 -vt 0.186207 0.296875 -vt 0.186207 0.312500 -vt 0.186207 0.281250 -vt 0.186207 -0.000000 -vt 0.193103 -0.000000 -vt 0.144828 -0.000000 -vt 0.151724 -0.000000 -vt 0.158621 -0.000000 -vt 0.165517 -0.000000 -vt 0.172414 -0.000000 -vt 0.179310 -0.000000 -vt 0.200000 -0.000000 -vt 0.193103 0.109375 -vt 0.186207 0.109375 -vt 0.200000 0.109375 -vt 0.151724 0.109375 -vt 0.144828 0.109375 -vt 0.158621 0.109375 -vt 0.179310 0.109375 -vt 0.172414 0.109375 -vt 0.165517 0.109375 -vt 0.124138 0.390625 -vt 0.124138 0.375000 -vt 0.144828 0.375000 -vt 0.144828 0.390625 -vt 0.124138 0.359375 -vt 0.124138 0.343750 -vt 0.144828 0.343750 -vt 0.144828 0.359375 -vt 0.124138 0.328125 -vt 0.124138 0.312500 -vt 0.144828 0.312500 -vt 0.144828 0.328125 -vt 0.124138 0.296875 -vt 0.144828 0.296875 -vt 0.124138 0.406250 -vt 0.144828 0.406250 -vt 0.124138 0.281250 -vt 0.144828 0.281250 -vt 0.158621 0.312500 -vt 0.158621 0.328125 -vt 0.158621 0.343750 -vt 0.158621 0.359375 -vt 0.158621 0.375000 -vt 0.158621 0.390625 -vt 0.158621 0.281250 -vt 0.158621 0.296875 -vt 0.158621 0.406250 -vt 0.172414 0.390625 -vt 0.172414 0.406250 -vt 0.172414 0.296875 -vt 0.172414 0.312500 -vt 0.172414 0.328125 -vt 0.172414 0.343750 -vt 0.172414 0.359375 -vt 0.172414 0.375000 -vt 0.172414 0.281250 -vt 0.186207 0.328125 -vt 0.186207 0.343750 -vt 0.186207 0.359375 -vt 0.186207 0.375000 -vt 0.186207 0.390625 -vt 0.186207 0.406250 -vt 0.186207 0.296875 -vt 0.186207 0.312500 -vt 0.186207 0.281250 -vt 0.186207 -0.000000 -vt 0.193103 -0.000000 -vt 0.144828 -0.000000 -vt 0.151724 -0.000000 -vt 0.158621 -0.000000 -vt 0.165517 -0.000000 -vt 0.172414 -0.000000 -vt 0.179310 -0.000000 -vt 0.200000 -0.000000 -vt 0.193103 0.109375 -vt 0.186207 0.109375 -vt 0.200000 0.109375 -vt 0.151724 0.109375 -vt 0.144828 0.109375 -vt 0.158621 0.109375 -vt 0.179310 0.109375 -vt 0.172414 0.109375 -vt 0.165517 0.109375 -vt 0.124138 0.390625 -vt 0.124138 0.375000 -vt 0.144828 0.375000 -vt 0.144828 0.390625 -vt 0.124138 0.359375 -vt 0.124138 0.343750 -vt 0.144828 0.343750 -vt 0.144828 0.359375 -vt 0.124138 0.328125 -vt 0.124138 0.312500 -vt 0.144828 0.312500 -vt 0.144828 0.328125 -vt 0.124138 0.296875 -vt 0.144828 0.296875 -vt 0.124138 0.406250 -vt 0.144828 0.406250 -vt 0.124138 0.281250 -vt 0.144828 0.281250 -vt 0.158621 0.312500 -vt 0.158621 0.328125 -vt 0.158621 0.343750 -vt 0.158621 0.359375 -vt 0.158621 0.375000 -vt 0.158621 0.390625 -vt 0.158621 0.281250 -vt 0.158621 0.296875 -vt 0.158621 0.406250 -vt 0.172414 0.390625 -vt 0.172414 0.406250 -vt 0.172414 0.296875 -vt 0.172414 0.312500 -vt 0.172414 0.328125 -vt 0.172414 0.343750 -vt 0.172414 0.359375 -vt 0.172414 0.375000 -vt 0.172414 0.281250 -vt 0.186207 0.328125 -vt 0.186207 0.343750 -vt 0.186207 0.359375 -vt 0.186207 0.375000 -vt 0.186207 0.390625 -vt 0.186207 0.406250 -vt 0.186207 0.296875 -vt 0.186207 0.312500 -vt 0.186207 0.281250 -vt 0.186207 -0.000000 -vt 0.193103 -0.000000 -vt 0.144828 -0.000000 -vt 0.151724 -0.000000 -vt 0.158621 -0.000000 -vt 0.165517 -0.000000 -vt 0.172414 -0.000000 -vt 0.179310 -0.000000 -vt 0.200000 -0.000000 -vt 0.193103 0.109375 -vt 0.186207 0.109375 -vt 0.200000 0.109375 -vt 0.151724 0.109375 -vt 0.144828 0.109375 -vt 0.158621 0.109375 -vt 0.179310 0.109375 -vt 0.172414 0.109375 -vt 0.165517 0.109375 -vt 0.124138 0.390625 -vt 0.124138 0.375000 -vt 0.144828 0.375000 -vt 0.144828 0.390625 -vt 0.124138 0.359375 -vt 0.124138 0.343750 -vt 0.144828 0.343750 -vt 0.144828 0.359375 -vt 0.124138 0.328125 -vt 0.124138 0.312500 -vt 0.144828 0.312500 -vt 0.144828 0.328125 -vt 0.124138 0.296875 -vt 0.144828 0.296875 -vt 0.124138 0.406250 -vt 0.144828 0.406250 -vt 0.124138 0.281250 -vt 0.144828 0.281250 -vt 0.158621 0.312500 -vt 0.158621 0.328125 -vt 0.158621 0.343750 -vt 0.158621 0.359375 -vt 0.158621 0.375000 -vt 0.158621 0.390625 -vt 0.158621 0.281250 -vt 0.158621 0.296875 -vt 0.158621 0.406250 -vt 0.172414 0.390625 -vt 0.172414 0.406250 -vt 0.172414 0.296875 -vt 0.172414 0.312500 -vt 0.172414 0.328125 -vt 0.172414 0.343750 -vt 0.172414 0.359375 -vt 0.172414 0.375000 -vt 0.172414 0.281250 -vt 0.186207 0.328125 -vt 0.186207 0.343750 -vt 0.186207 0.359375 -vt 0.186207 0.375000 -vt 0.186207 0.390625 -vt 0.186207 0.406250 -vt 0.186207 0.296875 -vt 0.186207 0.312500 -vt 0.186207 0.281250 -vt 0.186207 -0.000000 -vt 0.193103 -0.000000 -vt 0.144828 -0.000000 -vt 0.151724 -0.000000 -vt 0.158621 -0.000000 -vt 0.165517 -0.000000 -vt 0.172414 -0.000000 -vt 0.179310 -0.000000 -vt 0.200000 -0.000000 -vt 0.193103 0.109375 -vt 0.186207 0.109375 -vt 0.200000 0.109375 -vt 0.151724 0.109375 -vt 0.144828 0.109375 -vt 0.158621 0.109375 -vt 0.179310 0.109375 -vt 0.172414 0.109375 -vt 0.165517 0.109375 -vt 0.124138 0.390625 -vt 0.124138 0.375000 -vt 0.144828 0.375000 -vt 0.144828 0.390625 -vt 0.124138 0.359375 -vt 0.124138 0.343750 -vt 0.144828 0.343750 -vt 0.144828 0.359375 -vt 0.124138 0.328125 -vt 0.124138 0.312500 -vt 0.144828 0.312500 -vt 0.144828 0.328125 -vt 0.124138 0.296875 -vt 0.144828 0.296875 -vt 0.124138 0.406250 -vt 0.144828 0.406250 -vt 0.124138 0.281250 -vt 0.144828 0.281250 -vt 0.158621 0.312500 -vt 0.158621 0.328125 -vt 0.158621 0.343750 -vt 0.158621 0.359375 -vt 0.158621 0.375000 -vt 0.158621 0.390625 -vt 0.158621 0.281250 -vt 0.158621 0.296875 -vt 0.158621 0.406250 -vt 0.172414 0.390625 -vt 0.172414 0.406250 -vt 0.172414 0.296875 -vt 0.172414 0.312500 -vt 0.172414 0.328125 -vt 0.172414 0.343750 -vt 0.172414 0.359375 -vt 0.172414 0.375000 -vt 0.172414 0.281250 -vt 0.186207 0.328125 -vt 0.186207 0.343750 -vt 0.186207 0.359375 -vt 0.186207 0.375000 -vt 0.186207 0.390625 -vt 0.186207 0.406250 -vt 0.186207 0.296875 -vt 0.186207 0.312500 -vt 0.186207 0.281250 -vt 0.186207 -0.000000 -vt 0.193103 -0.000000 -vt 0.144828 -0.000000 -vt 0.151724 -0.000000 -vt 0.158621 -0.000000 -vt 0.165517 -0.000000 -vt 0.172414 -0.000000 -vt 0.179310 -0.000000 -vt 0.200000 -0.000000 -vt 0.193103 0.109375 -vt 0.186207 0.109375 -vt 0.200000 0.109375 -vt 0.151724 0.109375 -vt 0.144828 0.109375 -vt 0.158621 0.109375 -vt 0.179310 0.109375 -vt 0.172414 0.109375 -vt 0.165517 0.109375 -vt 0.124138 0.390625 -vt 0.124138 0.375000 -vt 0.144828 0.375000 -vt 0.144828 0.390625 -vt 0.124138 0.359375 -vt 0.124138 0.343750 -vt 0.144828 0.343750 -vt 0.144828 0.359375 -vt 0.124138 0.328125 -vt 0.124138 0.312500 -vt 0.144828 0.312500 -vt 0.144828 0.328125 -vt 0.124138 0.296875 -vt 0.144828 0.296875 -vt 0.124138 0.406250 -vt 0.144828 0.406250 -vt 0.124138 0.281250 -vt 0.144828 0.281250 -vt 0.158621 0.312500 -vt 0.158621 0.328125 -vt 0.158621 0.343750 -vt 0.158621 0.359375 -vt 0.158621 0.375000 -vt 0.158621 0.390625 -vt 0.158621 0.281250 -vt 0.158621 0.296875 -vt 0.158621 0.406250 -vt 0.172414 0.390625 -vt 0.172414 0.406250 -vt 0.172414 0.296875 -vt 0.172414 0.312500 -vt 0.172414 0.328125 -vt 0.172414 0.343750 -vt 0.172414 0.359375 -vt 0.172414 0.375000 -vt 0.172414 0.281250 -vt 0.186207 0.328125 -vt 0.186207 0.343750 -vt 0.186207 0.359375 -vt 0.186207 0.375000 -vt 0.186207 0.390625 -vt 0.186207 0.406250 -vt 0.186207 0.296875 -vt 0.186207 0.312500 -vt 0.186207 0.281250 -vt 0.186207 -0.000000 -vt 0.193103 -0.000000 -vt 0.144828 -0.000000 -vt 0.151724 -0.000000 -vt 0.158621 -0.000000 -vt 0.165517 -0.000000 -vt 0.172414 -0.000000 -vt 0.179310 -0.000000 -vt 0.200000 -0.000000 -vt 0.193103 0.109375 -vt 0.186207 0.109375 -vt 0.200000 0.109375 -vt 0.151724 0.109375 -vt 0.144828 0.109375 -vt 0.158621 0.109375 -vt 0.179310 0.109375 -vt 0.172414 0.109375 -vt 0.165517 0.109375 -vt 0.124138 0.390625 -vt 0.124138 0.375000 -vt 0.144828 0.375000 -vt 0.144828 0.390625 -vt 0.124138 0.359375 -vt 0.124138 0.343750 -vt 0.144828 0.343750 -vt 0.144828 0.359375 -vt 0.124138 0.328125 -vt 0.124138 0.312500 -vt 0.144828 0.312500 -vt 0.144828 0.328125 -vt 0.124138 0.296875 -vt 0.144828 0.296875 -vt 0.124138 0.406250 -vt 0.144828 0.406250 -vt 0.124138 0.281250 -vt 0.144828 0.281250 -vt 0.158621 0.312500 -vt 0.158621 0.328125 -vt 0.158621 0.343750 -vt 0.158621 0.359375 -vt 0.158621 0.375000 -vt 0.158621 0.390625 -vt 0.158621 0.281250 -vt 0.158621 0.296875 -vt 0.158621 0.406250 -vt 0.172414 0.390625 -vt 0.172414 0.406250 -vt 0.172414 0.296875 -vt 0.172414 0.312500 -vt 0.172414 0.328125 -vt 0.172414 0.343750 -vt 0.172414 0.359375 -vt 0.172414 0.375000 -vt 0.172414 0.281250 -vt 0.186207 0.328125 -vt 0.186207 0.343750 -vt 0.186207 0.359375 -vt 0.186207 0.375000 -vt 0.186207 0.390625 -vt 0.186207 0.406250 -vt 0.186207 0.296875 -vt 0.186207 0.312500 -vt 0.186207 0.281250 -vt 0.186207 -0.000000 -vt 0.193103 -0.000000 -vt 0.144828 -0.000000 -vt 0.151724 -0.000000 -vt 0.158621 -0.000000 -vt 0.165517 -0.000000 -vt 0.172414 -0.000000 -vt 0.179310 -0.000000 -vt 0.200000 -0.000000 -vt 0.193103 0.109375 -vt 0.186207 0.109375 -vt 0.200000 0.109375 -vt 0.151724 0.109375 -vt 0.144828 0.109375 -vt 0.158621 0.109375 -vt 0.179310 0.109375 -vt 0.172414 0.109375 -vt 0.165517 0.109375 -vt 0.255172 0.234375 -vt 0.255172 0.218750 -vt 0.296552 0.218750 -vt 0.296552 0.234375 -vt 0.255172 0.203125 -vt 0.255172 0.187500 -vt 0.296552 0.187500 -vt 0.296552 0.203125 -vt 0.255172 0.250000 -vt 0.296552 0.250000 -vt 0.310345 0.187500 -vt 0.310345 0.203125 -vt 0.310345 0.234375 -vt 0.310345 0.250000 -vt 0.310345 0.218750 -vt 0.324138 0.218750 -vt 0.324138 0.234375 -vt 0.324138 0.187500 -vt 0.324138 0.203125 -vt 0.324138 0.250000 -vt 0.255172 0.234375 -vt 0.255172 0.218750 -vt 0.296552 0.218750 -vt 0.296552 0.234375 -vt 0.255172 0.203125 -vt 0.255172 0.187500 -vt 0.296552 0.187500 -vt 0.296552 0.203125 -vt 0.255172 0.250000 -vt 0.296552 0.250000 -vt 0.310345 0.187500 -vt 0.310345 0.203125 -vt 0.310345 0.234375 -vt 0.310345 0.250000 -vt 0.310345 0.218750 -vt 0.324138 0.218750 -vt 0.324138 0.234375 -vt 0.324138 0.187500 -vt 0.324138 0.203125 -vt 0.324138 0.250000 -vt 0.255172 0.234375 -vt 0.255172 0.218750 -vt 0.296552 0.218750 -vt 0.296552 0.234375 -vt 0.255172 0.203125 -vt 0.255172 0.187500 -vt 0.296552 0.187500 -vt 0.296552 0.203125 -vt 0.255172 0.250000 -vt 0.296552 0.250000 -vt 0.310345 0.187500 -vt 0.310345 0.203125 -vt 0.310345 0.234375 -vt 0.310345 0.250000 -vt 0.310345 0.218750 -vt 0.324138 0.218750 -vt 0.324138 0.234375 -vt 0.324138 0.187500 -vt 0.324138 0.203125 -vt 0.324138 0.250000 -vn 0.0000 -1.0000 -0.0000 -vn 0.0000 1.0000 0.0000 -vn -1.0000 0.0000 0.0000 -vn 1.0000 -0.0000 0.0000 -vn 0.7071 0.7071 0.0000 -vn 0.7071 -0.7071 0.0000 -vn -0.7071 -0.7071 0.0000 -vn -0.7071 0.7071 0.0000 -vn -0.0000 -0.0000 1.0000 -vn -0.7074 -0.7068 -0.0001 -vn 0.0000 -0.7071 -0.7071 -vn -0.7071 -0.7071 0.0057 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 0.9487 -0.3162 -vn 0.0000 0.4472 -0.8944 -vn 0.1617 0.3904 0.9063 -vn 0.1617 0.3905 0.9063 -vn 0.1752 0.8806 0.4403 -vn 0.0859 0.4318 -0.8978 -vn 0.9845 -0.1567 -0.0783 -vn -0.0859 -0.4318 0.8978 -vn -0.9695 0.2320 -0.0783 -vn 0.0000 -0.3827 -0.9239 -vn 0.0000 -0.9239 0.3827 -vn 0.0000 0.9239 -0.3827 -vn 0.0000 -0.9239 -0.3827 -vn 0.0000 -0.3827 0.9239 -vn 0.0000 0.9239 0.3827 -vn 0.0000 0.3827 -0.9239 -vn -0.3162 0.3162 -0.8944 -vn 0.0000 0.4226 -0.9063 -vn 0.0000 0.9063 0.4226 -vn -0.7071 0.6409 0.2988 -vn 0.7071 0.6409 0.2988 -vn 0.0000 0.7934 0.6088 -vn 0.0000 0.1305 -0.9914 -vn 0.0000 0.5000 0.8660 -vn 0.0000 0.5000 -0.8660 -vn 0.0000 -0.5000 -0.8660 -vn 0.0000 -0.5000 0.8660 -vn 0.6547 0.3780 -0.6547 -vn 0.6547 -0.3780 -0.6547 -vn 0.6547 -0.3780 0.6547 -vn 0.6547 0.7559 0.0000 -vn 0.6547 -0.7559 0.0000 -vn 0.6547 0.3780 0.6547 -vn 0.0000 0.7071 0.7071 -vn 0.0000 -0.7071 0.7071 -vn 0.0000 0.7071 -0.7071 -vn -0.5000 -0.7849 -0.3660 -vn -0.0000 -0.4226 0.9063 -vn -0.2357 0.2357 0.9428 -vn 0.2357 0.2357 0.9428 -vn -0.2357 -0.2357 -0.9428 -vn -0.2357 -0.2357 0.9428 -vn 0.0000 -0.9285 0.3714 -vn 0.0000 0.9285 -0.3714 -vn 0.0000 -0.9900 -0.1407 -vn 0.0000 0.9900 0.1407 -vn -0.1617 -0.3904 0.9063 -vn -0.1617 -0.3905 0.9063 -vn 0.3904 -0.1617 0.9063 -vn 0.3905 -0.1617 0.9063 -vn -0.3904 0.1617 0.9063 -vn -0.3905 0.1617 0.9063 -vn 0.3904 0.1617 0.9063 -vn 0.3905 0.1617 0.9063 -vn -0.3904 -0.1617 0.9063 -vn -0.3905 -0.1617 0.9063 -vn 0.1617 -0.3904 0.9063 -vn 0.1617 -0.3905 0.9063 -vn -0.1617 0.3904 0.9063 -vn -0.1617 0.3905 0.9063 -vn -0.1752 -0.8806 0.4403 -vn -0.0859 -0.4318 -0.8979 -vn -0.9845 0.1567 -0.0783 -vn 0.0859 0.4318 0.8978 -vn 0.9695 -0.2320 -0.0783 -vn 0.8806 -0.1752 0.4403 -vn 0.4318 -0.0859 -0.8978 -vn -0.1567 -0.9845 -0.0783 -vn -0.4318 0.0859 0.8978 -vn 0.2320 0.9695 -0.0783 -vn -0.8806 0.1752 0.4403 -vn -0.4318 0.0859 -0.8978 -vn 0.1567 0.9845 -0.0783 -vn 0.4318 -0.0859 0.8978 -vn -0.2320 -0.9695 -0.0783 -vn 0.7465 0.4988 0.4403 -vn 0.3661 0.2446 -0.8978 -vn 0.5854 -0.8070 -0.0783 -vn -0.3661 -0.2446 0.8978 -vn -0.5215 0.8496 -0.0783 -vn -0.7465 -0.4988 0.4403 -vn -0.3661 -0.2446 -0.8978 -vn -0.5854 0.8070 -0.0783 -vn 0.3661 0.2446 0.8978 -vn 0.5215 -0.8496 -0.0783 -vn 0.4988 -0.7465 0.4403 -vn 0.2446 -0.3661 -0.8979 -vn -0.8070 -0.5854 -0.0783 -vn -0.2446 0.3661 0.8978 -vn 0.8496 0.5215 -0.0783 -vn -0.4988 0.7465 0.4403 -vn -0.2446 0.3661 -0.8978 -vn 0.8070 0.5854 -0.0783 -vn 0.2446 -0.3661 0.8978 -vn -0.8496 -0.5215 -0.0783 -vn 0.4988 0.7465 0.4403 -vn 0.2446 0.3661 -0.8979 -vn 0.8496 -0.5215 -0.0783 -vn -0.2446 -0.3661 0.8978 -vn -0.8070 0.5854 -0.0783 -vn -0.4988 -0.7465 0.4403 -vn -0.2446 -0.3661 -0.8978 -vn -0.8496 0.5215 -0.0783 -vn 0.2446 0.3661 0.8978 -vn 0.8070 -0.5854 -0.0783 -vn 0.7465 -0.4988 0.4403 -vn 0.3661 -0.2446 -0.8978 -vn -0.5215 -0.8496 -0.0783 -vn -0.3661 0.2446 0.8978 -vn 0.5854 0.8070 -0.0783 -vn -0.7465 0.4988 0.4403 -vn -0.3661 0.2446 -0.8978 -vn 0.5215 0.8496 -0.0783 -vn 0.3661 -0.2446 0.8978 -vn -0.5854 -0.8070 -0.0783 -vn 0.8806 0.1752 0.4403 -vn 0.4318 0.0859 -0.8978 -vn 0.2320 -0.9696 -0.0783 -vn -0.4318 -0.0859 0.8978 -vn -0.1567 0.9845 -0.0783 -vn -0.8806 -0.1752 0.4403 -vn -0.4318 -0.0859 -0.8978 -vn -0.2320 0.9696 -0.0783 -vn 0.4318 0.0859 0.8978 -vn 0.1567 -0.9845 -0.0783 -vn 0.1752 -0.8806 0.4403 -vn 0.0859 -0.4318 -0.8979 -vn -0.9696 -0.2320 -0.0783 -vn -0.0859 0.4318 0.8978 -vn 0.9845 0.1567 -0.0783 -vn -0.1752 0.8806 0.4403 -vn -0.0859 0.4318 -0.8978 -vn 0.9696 0.2320 -0.0783 -vn 0.0859 -0.4318 0.8978 -vn -0.9845 -0.1567 -0.0783 -vn 0.0000 -0.8944 0.4472 -vn 0.3423 -0.8263 0.4472 -vn -0.3423 -0.8263 0.4472 -vn -0.6325 -0.6325 0.4472 -vn -0.8263 -0.3423 0.4472 -vn -0.8944 -0.0000 0.4472 -vn -0.8263 0.3423 0.4472 -vn -0.6325 0.6325 0.4472 -vn -0.3423 0.8263 0.4472 -vn 0.0000 0.8944 0.4472 -vn 0.3423 0.8263 0.4472 -vn 0.6325 0.6325 0.4472 -vn 0.8263 0.3423 0.4472 -vn 0.8944 -0.0000 0.4472 -vn 0.8263 -0.3423 0.4472 -vn 0.6325 -0.6325 0.4472 -vn 0.3827 -0.9239 0.0000 -vn -0.3827 -0.9239 0.0000 -vn -0.3827 0.9239 0.0000 -vn 0.9239 -0.3827 0.0000 -vn -0.9239 0.3827 0.0000 -vn 0.9239 0.3827 0.0000 -vn -0.9239 -0.3827 0.0000 -vn 0.3827 0.9239 0.0000 -vn 0.7311 -0.6303 -0.2611 -vn 0.9947 0.0948 0.0393 -vn 0.9973 0.0609 0.0399 -vn 0.7430 -0.5190 -0.4226 -vn 0.6333 0.7150 0.2962 -vn 0.0000 0.7690 0.6392 -vn 0.6721 0.5735 0.4683 -vn -0.6333 0.7150 0.2962 -vn -0.9947 0.0948 0.0393 -vn -0.9973 0.0609 0.0399 -vn -0.6721 0.5735 0.4683 -vn -0.7311 -0.6303 -0.2611 -vn -0.7430 -0.5190 -0.4226 -vn 0.0000 -0.7779 -0.6284 -vn -0.9989 0.0183 0.0441 -vn -0.6841 0.2791 0.6739 -vn 0.0000 0.3827 0.9239 -vn 0.6840 0.2791 0.6739 -vn 0.9989 0.0183 0.0441 -vn 0.7317 -0.2608 -0.6297 -vn -0.7317 -0.2608 -0.6297 -vn 0.7317 0.0000 -0.6816 -vn -0.7317 0.0000 -0.6816 -vn -0.9989 0.0000 0.0477 -vn -0.6841 -0.0000 0.7294 -vn 0.6840 -0.0000 0.7294 -vn 0.9989 0.0000 0.0477 -vn -0.6770 -0.1436 0.7219 -vn 0.0000 -0.1951 0.9808 -vn 0.6770 -0.1436 0.7219 -vn 0.9988 -0.0095 0.0477 -vn 0.7251 0.1344 -0.6754 -vn 0.0000 0.1951 -0.9808 -vn -0.7251 0.1344 -0.6754 -vn -0.9988 -0.0095 0.0477 -vn 0.8985 0.3215 -0.2988 -vn 0.3468 0.8373 -0.4226 -vn -0.4080 0.8627 -0.2988 -vn -0.8985 -0.3215 0.2988 -vn -0.3468 -0.8373 0.4226 -vn 0.4080 -0.8627 0.2988 -vn -0.3162 0.3162 0.8944 -vn -0.4132 0.1711 0.8944 -vn 0.4132 -0.1711 0.8944 -vn 0.4472 -0.0000 0.8944 -vn -0.4472 -0.0000 0.8944 -vn 0.4132 0.1711 0.8944 -vn -0.4132 -0.1711 0.8944 -vn 0.3162 0.3162 0.8944 -vn -0.3162 -0.3162 0.8944 -vn 0.1711 0.4132 0.8944 -vn -0.1711 -0.4132 0.8944 -vn 0.0000 0.4472 0.8944 -vn 0.0000 -0.4472 0.8944 -vn 0.1711 -0.4132 0.8944 -vn -0.1711 0.4132 0.8944 -vn 0.3162 -0.3162 0.8944 -vn 0.0000 -0.9063 -0.4226 -vn -0.8660 0.4532 0.2113 -vn 0.2588 0.8754 0.4082 -vn 0.5000 0.7849 0.3660 -vn 0.5000 -0.7849 -0.3660 -vn -0.8660 -0.4532 -0.2113 -vn 0.8660 0.4532 0.2113 -vn -0.5000 0.7849 0.3660 -vn -0.2588 0.8754 0.4082 -vn 0.7071 -0.6409 -0.2988 -vn 0.9659 -0.2346 -0.1094 -vn 0.8660 -0.4532 -0.2113 -vn 0.9891 0.0283 0.1448 -vn 0.6947 0.6947 0.1866 -vn 0.5000 0.5000 0.7071 -vn 0.8431 -0.0945 0.5293 -vn 0.0283 0.9891 0.1448 -vn -0.3812 0.9204 0.0866 -vn -0.4619 0.8446 0.2706 -vn -0.0945 0.8431 0.5294 -vn -0.0283 0.9891 0.1448 -vn 0.0945 0.8431 0.5294 -vn 0.4619 0.8446 0.2706 -vn 0.3812 0.9204 0.0866 -vn -0.9891 0.0283 0.1448 -vn -0.8431 -0.0945 0.5293 -vn -0.5000 0.5000 0.7071 -vn -0.6947 0.6947 0.1866 -vn -0.9204 -0.3812 0.0866 -vn -0.8446 -0.4619 0.2706 -vn -0.2706 0.2706 0.9239 -vn 0.2384 0.6572 0.7150 -vn -0.7559 -0.5345 0.3780 -vn -0.6572 -0.2384 0.7150 -vn 0.5345 0.7559 0.3780 -vn -0.8431 -0.0945 0.5294 -vn 0.9204 -0.3812 0.0866 -vn 0.8446 -0.4619 0.2706 -vn -0.2384 0.6572 0.7150 -vn 0.2706 0.2706 0.9239 -vn 0.6572 -0.2384 0.7150 -vn 0.7559 -0.5345 0.3780 -vn -0.5345 0.7559 0.3780 -vn -0.0945 0.8431 0.5293 -vn 0.8431 -0.0945 0.5294 -vn -0.7311 0.6303 -0.2611 -vn -0.9947 -0.0948 0.0393 -vn -0.9973 -0.0609 0.0399 -vn -0.7430 0.5190 -0.4226 -vn -0.6333 -0.7150 0.2962 -vn -0.0000 -0.7690 0.6392 -vn -0.6721 -0.5735 0.4683 -vn 0.6333 -0.7150 0.2962 -vn 0.9947 -0.0948 0.0393 -vn 0.9973 -0.0609 0.0399 -vn 0.6721 -0.5735 0.4683 -vn 0.7311 0.6303 -0.2611 -vn 0.7430 0.5190 -0.4226 -vn -0.0000 0.7779 -0.6284 -vn 0.9989 -0.0183 0.0441 -vn 0.6841 -0.2791 0.6739 -vn -0.6840 -0.2791 0.6739 -vn -0.9989 -0.0183 0.0441 -vn -0.7317 0.2608 -0.6297 -vn 0.7317 0.2608 -0.6297 -vn 0.6841 0.0000 0.7294 -vn -0.6840 0.0000 0.7294 -vn 0.6770 0.1436 0.7219 -vn -0.0000 0.1951 0.9808 -vn -0.6770 0.1436 0.7219 -vn -0.9988 0.0095 0.0477 -vn -0.7251 -0.1344 -0.6754 -vn -0.0000 -0.1951 -0.9808 -vn 0.7251 -0.1344 -0.6754 -vn 0.9988 0.0095 0.0477 -vn -0.8985 -0.3215 -0.2988 -vn -0.3468 -0.8373 -0.4226 -vn 0.4080 -0.8627 -0.2988 -vn 0.8985 0.3215 0.2988 -vn 0.3468 0.8373 0.4226 -vn -0.4080 0.8627 0.2988 -vn -0.6303 -0.7311 -0.2611 -vn 0.0948 -0.9947 0.0393 -vn 0.0609 -0.9973 0.0399 -vn -0.5190 -0.7430 -0.4226 -vn 0.7150 -0.6333 0.2962 -vn 0.9239 -0.0000 0.3827 -vn 0.7690 -0.0000 0.6392 -vn 0.5735 -0.6721 0.4683 -vn 0.7150 0.6333 0.2962 -vn 0.0948 0.9947 0.0393 -vn 0.0609 0.9973 0.0399 -vn 0.5735 0.6721 0.4683 -vn -0.6303 0.7311 -0.2611 -vn -0.5190 0.7430 -0.4226 -vn -0.9239 -0.0000 -0.3827 -vn -0.7779 -0.0000 -0.6284 -vn 0.0183 0.9989 0.0441 -vn 0.2791 0.6841 0.6739 -vn 0.3827 -0.0000 0.9239 -vn 0.2791 -0.6840 0.6739 -vn 0.0183 -0.9989 0.0441 -vn -0.2608 -0.7317 -0.6297 -vn -0.3827 -0.0000 -0.9239 -vn -0.2608 0.7317 -0.6297 -vn 0.0000 -0.7317 -0.6816 -vn 0.0000 0.7317 -0.6816 -vn 0.0000 0.9989 0.0477 -vn 0.0000 0.6841 0.7294 -vn -0.0000 -0.6840 0.7294 -vn -0.0000 -0.9989 0.0477 -vn -0.1436 0.6770 0.7219 -vn -0.1951 -0.0000 0.9808 -vn -0.1436 -0.6770 0.7219 -vn -0.0095 -0.9988 0.0477 -vn 0.1344 -0.7251 -0.6754 -vn 0.1951 -0.0000 -0.9808 -vn 0.1344 0.7251 -0.6754 -vn -0.0095 0.9988 0.0477 -vn 0.3215 -0.8985 -0.2988 -vn 0.8373 -0.3468 -0.4226 -vn 0.8627 0.4080 -0.2988 -vn -0.3215 0.8985 0.2988 -vn -0.8373 0.3468 0.4226 -vn -0.8627 -0.4080 0.2988 -vn 0.6303 0.7311 -0.2611 -vn -0.0948 0.9947 0.0393 -vn -0.0609 0.9973 0.0399 -vn 0.5190 0.7430 -0.4226 -vn -0.7150 0.6333 0.2962 -vn -0.9239 0.0000 0.3827 -vn -0.7690 0.0000 0.6392 -vn -0.5735 0.6721 0.4683 -vn -0.7150 -0.6333 0.2962 -vn -0.0948 -0.9947 0.0393 -vn -0.0609 -0.9973 0.0399 -vn -0.5735 -0.6721 0.4683 -vn 0.6303 -0.7311 -0.2611 -vn 0.5190 -0.7430 -0.4226 -vn 0.9239 0.0000 -0.3827 -vn 0.7779 0.0000 -0.6284 -vn -0.0183 -0.9989 0.0441 -vn -0.2791 -0.6841 0.6739 -vn -0.3827 0.0000 0.9239 -vn -0.2791 0.6840 0.6739 -vn -0.0183 0.9989 0.0441 -vn 0.2608 0.7317 -0.6297 -vn 0.3827 0.0000 -0.9239 -vn 0.2608 -0.7317 -0.6297 -vn 0.0000 -0.6841 0.7294 -vn 0.0000 0.6840 0.7294 -vn 0.1436 -0.6770 0.7219 -vn 0.1951 0.0000 0.9808 -vn 0.1436 0.6770 0.7219 -vn 0.0095 0.9988 0.0477 -vn -0.1344 0.7251 -0.6754 -vn -0.1951 0.0000 -0.9808 -vn -0.1344 -0.7251 -0.6754 -vn 0.0095 -0.9988 0.0477 -vn -0.3215 0.8985 -0.2988 -vn -0.8373 0.3468 -0.4226 -vn -0.8627 -0.4080 -0.2988 -vn 0.3215 -0.8985 0.2988 -vn 0.8373 -0.3468 0.4226 -vn 0.8627 0.4080 0.2988 -vn 0.0712 -0.9627 -0.2611 -vn 0.7704 -0.6363 0.0393 -vn 0.7483 -0.6622 0.0399 -vn 0.1584 -0.8924 -0.4226 -vn 0.9534 0.0578 0.2962 -vn 0.6533 0.6533 0.3827 -vn 0.5438 0.5438 0.6392 -vn 0.8808 -0.0697 0.4683 -vn 0.0578 0.9534 0.2962 -vn -0.6364 0.7704 0.0393 -vn -0.6622 0.7483 0.0399 -vn -0.0697 0.8808 0.4683 -vn -0.9627 0.0712 -0.2611 -vn -0.8924 0.1584 -0.4226 -vn -0.6533 -0.6533 -0.3827 -vn -0.5501 -0.5501 -0.6284 -vn -0.6934 0.7192 0.0441 -vn -0.2863 0.6811 0.6739 -vn 0.6811 -0.2863 0.6739 -vn 0.7192 -0.6934 0.0441 -vn 0.3330 -0.7018 -0.6297 -vn -0.2706 -0.2706 -0.9239 -vn -0.7018 0.3330 -0.6297 -vn 0.5174 -0.5174 -0.6816 -vn -0.5174 0.5174 -0.6816 -vn -0.7063 0.7063 0.0477 -vn -0.4837 0.4837 0.7294 -vn 0.4837 -0.4837 0.7294 -vn 0.7063 -0.7063 0.0477 -vn -0.5802 0.3772 0.7219 -vn -0.1379 -0.1379 0.9808 -vn 0.3772 -0.5802 0.7219 -vn 0.6996 -0.7130 0.0477 -vn 0.6077 -0.4177 -0.6754 -vn 0.1380 0.1380 -0.9808 -vn -0.4177 0.6077 -0.6754 -vn -0.7130 0.6996 0.0477 -vn 0.8627 -0.4080 -0.2988 -vn 0.8373 0.3468 -0.4226 -vn 0.3215 0.8985 -0.2988 -vn -0.8627 0.4080 0.2988 -vn -0.8373 -0.3468 0.4226 -vn -0.3215 -0.8985 0.2988 -vn -0.0712 0.9627 -0.2611 -vn -0.7704 0.6363 0.0393 -vn -0.7483 0.6622 0.0399 -vn -0.1584 0.8924 -0.4226 -vn -0.9534 -0.0578 0.2962 -vn -0.6533 -0.6533 0.3827 -vn -0.5438 -0.5438 0.6392 -vn -0.8808 0.0697 0.4683 -vn -0.0578 -0.9534 0.2962 -vn 0.6364 -0.7704 0.0393 -vn 0.6622 -0.7483 0.0399 -vn 0.0697 -0.8808 0.4683 -vn 0.9627 -0.0712 -0.2611 -vn 0.8924 -0.1584 -0.4226 -vn 0.6533 0.6533 -0.3827 -vn 0.5501 0.5501 -0.6284 -vn 0.6934 -0.7192 0.0441 -vn 0.2863 -0.6811 0.6739 -vn -0.2706 -0.2706 0.9239 -vn -0.6811 0.2863 0.6739 -vn -0.7192 0.6934 0.0441 -vn -0.3330 0.7018 -0.6297 -vn 0.2706 0.2706 -0.9239 -vn 0.7018 -0.3330 -0.6297 -vn 0.5802 -0.3772 0.7219 -vn 0.1379 0.1379 0.9808 -vn -0.3772 0.5802 0.7219 -vn -0.6996 0.7130 0.0477 -vn -0.6077 0.4177 -0.6754 -vn -0.1380 -0.1380 -0.9808 -vn 0.4177 -0.6077 -0.6754 -vn 0.7130 -0.6996 0.0477 -vn -0.8627 0.4080 -0.2988 -vn -0.8373 -0.3468 -0.4226 -vn -0.3215 -0.8985 -0.2988 -vn 0.8627 -0.4080 0.2988 -vn 0.8373 0.3468 0.4226 -vn 0.3215 0.8985 0.2988 -vn -0.9627 -0.0712 -0.2611 -vn -0.6363 -0.7704 0.0393 -vn -0.6622 -0.7483 0.0399 -vn -0.8924 -0.1584 -0.4226 -vn 0.0578 -0.9534 0.2962 -vn 0.6533 -0.6533 0.3827 -vn 0.5438 -0.5438 0.6392 -vn -0.0697 -0.8808 0.4683 -vn 0.9534 -0.0578 0.2962 -vn 0.7704 0.6364 0.0393 -vn 0.7483 0.6622 0.0399 -vn 0.8808 0.0697 0.4683 -vn 0.0712 0.9627 -0.2611 -vn 0.1584 0.8924 -0.4226 -vn -0.6533 0.6533 -0.3827 -vn -0.5501 0.5501 -0.6284 -vn 0.7192 0.6934 0.0441 -vn 0.6811 0.2863 0.6739 -vn 0.2706 -0.2706 0.9239 -vn -0.2863 -0.6811 0.6739 -vn -0.6934 -0.7192 0.0441 -vn -0.7018 -0.3330 -0.6297 -vn -0.2706 0.2706 -0.9239 -vn 0.3330 0.7018 -0.6297 -vn -0.5174 -0.5174 -0.6816 -vn 0.5174 0.5174 -0.6816 -vn 0.7063 0.7063 0.0477 -vn 0.4837 0.4837 0.7294 -vn -0.4837 -0.4837 0.7294 -vn -0.7063 -0.7063 0.0477 -vn 0.3772 0.5802 0.7219 -vn -0.1379 0.1379 0.9808 -vn -0.5802 -0.3772 0.7219 -vn -0.7130 -0.6996 0.0477 -vn -0.4177 -0.6077 -0.6754 -vn 0.1380 -0.1380 -0.9808 -vn 0.6077 0.4177 -0.6754 -vn 0.6996 0.7130 0.0477 -vn -0.4080 -0.8627 -0.2988 -vn 0.3468 -0.8373 -0.4226 -vn 0.8985 -0.3215 -0.2988 -vn 0.4080 0.8627 0.2988 -vn -0.3468 0.8373 0.4226 -vn -0.8985 0.3215 0.2988 -vn 0.9627 0.0712 -0.2611 -vn 0.6363 0.7704 0.0393 -vn 0.6622 0.7483 0.0399 -vn 0.8924 0.1584 -0.4226 -vn -0.0578 0.9534 0.2962 -vn -0.6533 0.6533 0.3827 -vn -0.5438 0.5438 0.6392 -vn 0.0697 0.8808 0.4683 -vn -0.9534 0.0578 0.2962 -vn -0.7704 -0.6363 0.0393 -vn -0.7483 -0.6622 0.0399 -vn -0.8808 -0.0697 0.4683 -vn -0.0712 -0.9627 -0.2611 -vn -0.1584 -0.8924 -0.4226 -vn 0.6533 -0.6533 -0.3827 -vn 0.5501 -0.5501 -0.6284 -vn -0.7192 -0.6934 0.0441 -vn -0.6811 -0.2863 0.6739 -vn 0.2863 0.6811 0.6739 -vn 0.6934 0.7192 0.0441 -vn 0.7018 0.3330 -0.6297 -vn 0.2706 -0.2706 -0.9239 -vn -0.3330 -0.7018 -0.6297 -vn -0.3772 -0.5802 0.7219 -vn 0.1379 -0.1379 0.9808 -vn 0.5802 0.3772 0.7219 -vn 0.7130 0.6996 0.0477 -vn 0.4177 0.6077 -0.6754 -vn -0.1380 0.1380 -0.9808 -vn -0.6077 -0.4177 -0.6754 -vn -0.6996 -0.7130 0.0477 -vn 0.4080 0.8627 -0.2988 -vn -0.3468 0.8373 -0.4226 -vn -0.8985 0.3215 -0.2988 -vn -0.4080 -0.8627 0.2988 -vn 0.3468 -0.8373 0.4226 -vn 0.8985 -0.3215 0.2988 -vn -0.0000 0.9824 0.1866 -vn 0.6794 0.7194 0.1448 -vn -0.9204 0.3812 0.0866 -vn -0.6794 0.7194 0.1448 -vn 0.9204 0.3812 0.0866 -vn -0.9239 0.2706 0.2706 -vn -0.6630 0.5294 0.5294 -vn 0.6630 0.5294 0.5294 -vn 0.9239 0.2706 0.2706 -vn 0.6333 0.2962 0.7150 -vn -0.9125 0.1566 0.3780 -vn -0.6333 0.2962 0.7150 -vn 0.9125 0.1566 0.3780 +vt 0.500000 0.000000 +vt 0.066987 0.250000 +vt 0.500000 1.000000 +vt 0.750000 0.933013 +vt 0.933013 0.750000 +vt 1.000000 0.500000 +vt 0.933013 0.250000 +vt 0.750000 0.066987 +vt 0.250000 0.066987 +vt 0.000000 0.500000 +vt 0.066987 0.750000 +vt 0.250000 0.933013 +vn -0.0000 0.4226 -0.9063 s off -f 227/323/124 228/324/124 229/325/124 230/326/124 -f 231/327/125 232/328/125 233/329/125 234/330/125 -f 235/331/126 236/332/126 237/333/126 238/334/126 -f 239/335/127 240/336/127 241/337/127 242/338/127 -f 232/328/128 239/335/128 242/338/128 233/329/128 -f 229/325/129 241/337/129 240/336/129 230/326/129 -f 228/339/130 227/340/130 238/334/130 237/333/130 -f 231/327/131 234/330/131 236/332/131 235/331/131 -f 240/341/132 239/342/132 243/343/132 244/344/132 245/345/132 -f 239/342/132 232/346/132 246/347/132 247/348/132 243/343/132 -f 232/346/132 231/349/132 248/350/132 249/351/132 246/347/132 -f 231/349/132 235/352/132 250/353/132 251/354/132 248/350/132 -f 235/352/132 238/355/132 252/356/132 253/357/132 250/353/132 -f 238/355/132 227/358/132 254/359/132 255/360/132 252/356/132 -f 227/358/132 230/361/132 256/362/132 257/363/132 254/359/132 -f 230/361/132 240/341/132 245/345/132 258/364/132 256/362/132 -f 259/365/126 260/366/126 261/367/126 262/368/126 263/369/126 -f 264/370/129 265/371/129 1051/372/129 266/373/129 267/374/129 268/375/129 269/376/129 -f 270/377/127 271/378/127 268/375/127 267/374/127 272/379/127 273/380/127 -f 274/381/124 275/382/124 264/370/124 269/376/124 -f 263/369/133 262/368/133 276/383/133 277/384/133 275/385/133 274/386/133 -f 264/387/134 275/388/134 277/389/134 265/390/134 -f 278/391/125 279/392/125 270/377/125 273/380/125 -f 280/393/126 281/394/126 282/395/126 283/396/126 -f 284/397/126 283/396/126 282/395/126 261/367/126 260/366/126 -f 281/394/135 280/393/135 285/398/135 286/399/135 -f 287/400/126 288/401/126 289/402/126 290/403/126 -f 291/404/126 292/405/126 293/406/126 294/407/126 -f 295/408/126 296/409/126 297/410/126 298/411/126 -f 299/412/126 300/413/126 301/414/126 302/415/126 -f 303/416/126 304/417/126 305/418/126 306/419/126 -f 299/412/126 303/416/126 306/419/126 287/400/126 290/403/126 291/404/126 294/407/126 295/408/126 298/411/126 300/413/126 -f 302/415/126 301/414/126 297/410/126 296/409/126 293/406/126 292/405/126 289/402/126 288/401/126 305/418/126 304/417/126 -f 296/420/124 295/421/124 307/422/124 308/423/124 -f 295/424/132 294/425/132 309/426/132 307/422/132 -f 290/427/125 289/428/125 310/429/125 311/430/125 -f 291/431/132 290/432/132 311/430/132 312/433/132 -f 313/434/126 314/435/126 315/436/126 316/437/126 -f 309/426/126 317/438/126 308/423/126 307/422/126 -f 312/433/126 311/430/126 310/429/126 318/439/126 -f 319/440/126 320/441/126 321/442/126 322/443/126 -f 300/444/132 298/445/132 314/435/132 313/434/132 -f 298/446/125 297/447/125 315/436/125 314/435/125 -f 297/448/136 301/449/136 316/437/136 315/436/136 -f 292/450/124 291/451/124 312/433/124 318/439/124 -f 293/452/136 296/453/136 308/423/136 317/438/136 -f 294/454/125 293/455/125 317/438/125 309/426/125 -f 289/456/136 292/457/136 318/439/136 310/429/136 -f 301/458/124 300/459/124 313/434/124 316/437/124 -f 305/460/136 288/461/136 321/442/136 320/441/136 -f 306/462/125 305/463/125 320/441/125 319/440/125 -f 287/464/132 306/465/132 319/440/132 322/443/132 -f 288/466/124 287/467/124 322/443/124 321/442/124 -f 272/379/136 267/374/136 323/468/136 324/469/136 -f 267/374/136 266/470/136 323/468/136 -f 280/393/136 283/396/136 325/471/136 326/472/136 -f 280/393/136 326/472/136 285/473/136 -f 273/380/137 272/474/137 324/475/137 278/391/137 -f 327/476/137 325/477/137 283/478/137 284/397/137 -f 328/479/125 327/476/125 284/397/125 260/366/125 -f 329/480/138 330/481/138 331/482/138 332/483/138 -f 330/481/138 270/484/138 279/485/138 331/482/138 -f 329/480/138 332/483/138 328/486/138 260/487/138 -f 333/488/139 334/489/139 335/490/139 336/491/139 -f 337/492/139 338/493/139 339/494/139 340/495/139 -f 341/496/139 342/497/139 343/498/139 344/499/139 -f 342/497/139 345/500/139 346/501/139 343/498/139 -f 347/502/139 333/488/139 336/491/139 348/503/139 -f 334/489/139 337/492/139 340/495/139 335/490/139 -f 338/493/139 341/496/139 344/499/139 339/494/139 -f 345/500/139 347/504/139 348/505/139 346/501/139 -f 349/506/139 350/507/139 351/508/139 352/509/139 353/510/139 354/511/139 355/512/139 356/513/139 -f 357/514/139 358/515/139 359/516/139 360/517/139 -f 358/515/139 361/518/139 362/519/139 359/516/139 -f 361/518/140 363/520/140 364/521/140 362/519/140 -f 363/522/140 365/523/140 366/524/140 364/525/140 -f 365/523/139 367/526/139 368/527/139 366/524/139 -f 367/526/140 369/528/140 370/529/140 368/527/140 -f 369/528/140 371/530/140 372/531/140 370/529/140 -f 371/530/140 357/514/140 360/517/140 372/531/140 -f 373/532/141 374/533/141 375/534/141 376/535/141 -f 377/536/142 378/537/142 376/535/142 375/534/142 -f 379/538/143 377/539/143 375/534/143 374/533/143 -f 380/540/144 379/541/144 374/533/144 373/532/144 -f 378/542/145 380/543/145 373/532/145 376/535/145 -f 381/544/132 382/545/132 383/546/132 384/547/132 -f 385/548/132 386/549/132 387/550/132 388/551/132 389/552/132 390/553/132 391/554/132 392/555/132 -f 393/556/132 381/544/132 384/557/132 394/558/132 -f 395/559/132 393/556/132 394/560/132 396/561/132 -f 397/562/132 395/559/132 396/563/132 398/564/132 -f 399/565/132 397/566/132 398/567/132 400/568/132 -f 401/569/132 399/565/132 400/570/132 402/571/132 -f 403/572/132 401/569/132 402/573/132 404/574/132 -f 382/545/132 403/572/132 404/575/132 383/576/132 -f 405/577/132 406/578/132 407/579/132 408/580/132 -f 409/581/132 410/582/132 406/583/132 405/584/132 -f 411/585/132 412/586/132 410/587/132 409/588/132 -f 413/589/132 414/590/132 412/591/132 411/592/132 -f 415/593/132 416/594/132 414/595/132 413/596/132 -f 417/597/132 418/598/132 416/599/132 415/600/132 -f 419/601/132 420/602/132 418/603/132 417/604/132 -f 408/605/132 407/606/132 420/607/132 419/608/132 -f 421/609/132 422/610/132 423/611/132 424/612/132 425/613/132 426/614/132 427/615/132 428/616/132 429/617/132 430/618/132 431/619/132 432/620/132 433/621/132 434/622/132 435/623/132 436/624/132 -f 242/625/136 437/626/136 438/627/136 439/628/136 233/629/136 -f 241/630/136 440/631/136 441/632/136 437/626/136 242/625/136 -f 229/633/136 442/634/136 443/635/136 440/631/136 241/630/136 -f 228/636/136 444/637/136 445/638/136 442/634/136 229/633/136 -f 237/639/136 446/640/136 447/641/136 444/637/136 228/636/136 -f 236/642/136 448/643/136 449/644/136 446/640/136 237/639/136 -f 234/645/136 450/646/136 451/647/136 448/643/136 236/642/136 -f 233/629/136 439/628/136 452/648/136 450/646/136 234/645/136 -f 453/649/132 454/650/132 455/651/132 456/652/132 457/653/132 -f 271/654/132 453/649/132 457/653/132 458/655/132 459/656/132 -f 268/657/132 271/654/132 459/656/132 460/658/132 461/659/132 -f 269/660/132 268/657/132 461/659/132 462/661/132 463/662/132 -f 274/663/132 269/660/132 463/662/132 464/664/132 465/665/132 -f 263/666/132 274/663/132 465/665/132 466/667/132 467/668/132 -f 259/669/132 263/666/132 467/668/132 468/670/132 469/671/132 -f 454/650/132 259/669/132 469/671/132 470/672/132 455/651/132 -f 471/673/126 472/674/126 473/675/126 474/676/126 475/677/126 476/678/126 477/679/126 478/680/126 -f 302/415/132 304/417/132 479/681/132 480/682/132 -f 304/417/124 303/416/124 481/683/124 479/684/124 -f 303/416/136 299/412/136 482/685/136 481/686/136 -f 299/412/125 302/415/125 480/687/125 482/688/125 -f 483/689/127 484/690/127 485/691/127 486/692/127 487/693/127 488/694/127 489/695/127 490/696/127 -f 472/697/146 490/698/146 489/699/146 473/700/146 -f 474/701/147 488/702/147 487/703/147 475/704/147 -f 478/705/148 484/706/148 483/707/148 471/708/148 -f 473/700/149 489/699/149 488/702/149 474/701/149 -f 475/704/150 487/703/150 486/709/150 476/710/150 -f 477/711/151 485/712/151 484/706/151 478/705/151 -f 471/708/152 483/707/152 490/698/152 472/697/152 -f 491/713/132 492/714/132 493/715/132 494/716/132 -f 495/717/136 496/718/136 497/719/136 498/720/136 -f 493/715/129 492/721/129 498/722/129 497/719/129 -f 491/723/131 494/716/131 496/718/131 495/724/131 -f 494/716/128 493/715/128 497/719/128 496/718/128 -f 492/721/130 491/725/130 495/726/130 498/722/130 -f 499/727/132 500/728/132 501/729/132 502/730/132 -f 503/731/136 504/732/136 505/733/136 506/734/136 -f 501/729/131 500/735/131 506/736/131 505/733/131 -f 499/737/129 502/730/129 504/732/129 503/738/129 -f 502/730/130 501/729/130 505/733/130 504/732/130 -f 500/739/128 499/737/128 503/738/128 506/740/128 -f 507/741/132 508/742/132 509/743/132 510/744/132 -f 511/745/136 512/746/136 513/747/136 514/748/136 -f 509/743/130 508/749/130 514/750/130 513/747/130 -f 507/751/128 510/744/128 512/746/128 511/752/128 -f 510/744/129 509/743/129 513/747/129 512/746/129 -f 508/749/131 507/753/131 511/754/131 514/750/131 -f 515/755/132 516/756/132 517/757/132 518/758/132 -f 519/759/136 520/760/136 521/761/136 522/762/136 -f 517/757/128 516/763/128 522/764/128 521/761/128 -f 515/765/130 518/758/130 520/760/130 519/766/130 -f 518/758/131 517/757/131 521/761/131 520/760/131 -f 516/767/129 515/765/129 519/766/129 522/768/129 -f 523/769/132 524/770/132 525/771/132 526/772/132 -f 527/773/153 528/774/153 529/775/153 530/776/153 -f 525/771/129 524/777/129 530/778/129 529/779/129 -f 523/780/131 526/772/131 528/774/131 527/773/131 -f 526/772/128 525/771/128 529/779/128 528/774/128 -f 524/777/130 523/781/130 527/782/130 530/778/130 -f 328/783/129 332/784/129 531/785/129 532/786/129 -f 331/787/130 279/788/130 533/789/130 534/790/130 -f 332/784/124 331/787/124 534/790/124 531/785/124 -f 531/785/138 534/790/138 533/791/138 532/792/138 -f 535/793/127 536/794/127 537/795/127 538/796/127 -f 539/797/126 540/798/126 541/799/126 542/800/126 -f 538/796/154 537/795/154 540/798/154 539/797/154 543/801/154 544/802/154 -f 544/802/155 543/801/155 545/803/155 546/804/155 -f 539/805/156 542/806/156 545/803/156 543/801/156 -f 535/807/157 538/808/157 544/802/157 546/804/157 -f 265/390/124 277/389/124 276/809/124 1051/810/124 -f 547/811/158 548/812/158 549/813/158 550/814/158 -f 551/815/127 552/816/127 553/817/127 549/818/127 548/819/127 554/820/127 -f 550/814/148 549/813/148 553/821/148 555/822/148 -f 555/822/159 553/821/159 552/823/159 556/824/159 -f 556/825/126 557/826/126 558/827/126 547/828/126 550/829/126 555/830/126 -f 559/831/124 560/832/124 561/833/124 562/834/124 -f 561/833/127 560/832/127 563/835/127 564/836/127 -f 559/831/126 562/834/126 565/837/126 566/838/126 -f 567/839/136 568/840/136 569/841/136 570/842/136 -f 571/843/127 572/844/127 570/842/127 569/841/127 -f 573/845/126 574/846/126 568/840/126 567/839/126 -f 574/847/125 571/848/125 569/841/125 568/840/125 -f 572/849/124 573/850/124 567/839/124 570/842/124 -f 575/851/136 576/852/136 577/853/136 578/854/136 -f 579/855/124 580/856/124 578/854/124 577/853/124 -f 581/857/125 582/858/125 576/852/125 575/851/125 -f 582/859/127 579/860/127 577/853/127 576/852/127 -f 580/861/126 581/862/126 575/851/126 578/854/126 -f 583/863/124 584/864/124 585/865/124 586/866/124 -f 587/867/160 588/868/160 589/869/160 590/870/160 -f 591/871/161 592/872/161 593/873/161 594/874/161 -f 586/866/162 585/865/162 592/872/162 591/871/162 -f 590/870/163 589/869/163 584/875/163 583/876/163 -f 594/874/125 593/873/125 588/868/125 587/867/125 -f 594/877/127 587/878/127 590/879/127 583/880/127 586/881/127 591/882/127 -f 595/883/125 596/884/125 597/885/125 598/886/125 -f 599/887/124 600/888/124 601/889/124 602/890/124 -f 596/891/160 603/892/160 604/893/160 597/894/160 -f 605/895/161 595/896/161 598/897/161 606/898/161 -f 600/899/162 605/900/162 606/901/162 601/902/162 -f 603/903/163 599/904/163 602/905/163 604/906/163 -f 602/890/126 601/889/126 607/907/126 608/908/126 -f 597/894/126 604/893/126 609/909/126 610/910/126 -f 606/898/126 598/897/126 611/911/126 612/912/126 -f 601/902/126 606/901/126 612/912/126 607/907/126 -f 604/906/126 602/905/126 608/913/126 609/909/126 -f 598/886/126 597/885/126 610/910/126 611/911/126 -f 607/907/162 612/912/162 613/914/162 614/915/162 -f 609/909/163 608/913/163 615/916/163 616/917/163 -f 611/911/125 610/910/125 617/918/125 618/919/125 -f 608/908/124 607/907/124 614/915/124 615/920/124 -f 610/910/160 609/909/160 616/917/160 617/918/160 -f 612/912/161 611/911/161 618/919/161 613/914/161 -f 617/918/127 616/917/127 619/921/127 620/922/127 -f 618/919/127 617/918/127 620/923/127 621/924/127 -f 613/914/127 618/919/127 621/925/127 622/926/127 -f 614/915/127 613/914/127 622/927/127 623/928/127 -f 615/920/127 614/915/127 623/929/127 624/930/127 -f 616/917/127 615/916/127 624/931/127 619/932/127 -f 619/932/163 624/931/163 625/933/163 626/934/163 -f 621/924/125 620/923/125 627/935/125 628/936/125 -f 624/930/124 623/929/124 629/937/124 625/938/124 -f 620/922/160 619/921/160 626/939/160 627/940/160 -f 622/926/161 621/925/161 628/941/161 630/942/161 -f 623/928/162 622/927/162 630/943/162 629/944/162 -f 627/940/126 626/939/126 631/945/126 632/946/126 -f 628/936/126 627/935/126 632/946/126 633/947/126 -f 630/942/126 628/941/126 633/947/126 634/948/126 -f 629/944/126 630/943/126 634/948/126 635/949/126 -f 625/938/126 629/937/126 635/949/126 636/950/126 -f 626/934/126 625/933/126 636/951/126 631/945/126 -f 633/947/125 632/946/125 637/952/125 638/953/125 -f 636/950/124 635/949/124 639/954/124 640/955/124 -f 632/946/160 631/945/160 641/956/160 637/952/160 -f 634/948/161 633/947/161 638/953/161 642/957/161 -f 635/949/162 634/948/162 642/957/162 639/954/162 -f 631/945/163 636/951/163 640/958/163 641/956/163 -f 642/957/164 638/953/164 643/959/164 644/960/164 -f 639/954/165 642/957/165 644/961/165 645/962/165 -f 641/956/166 640/958/166 646/963/166 647/964/166 -f 638/953/167 637/952/167 648/965/167 643/966/167 -f 640/955/168 639/954/168 645/967/168 646/968/168 -f 637/952/169 641/956/169 647/969/169 648/970/169 -f 643/971/127 648/972/127 647/973/127 646/974/127 645/975/127 644/976/127 -f 649/977/125 650/978/125 651/979/125 652/980/125 -f 653/981/126 654/982/126 655/983/126 656/984/126 657/985/126 -f 652/980/136 651/979/136 658/986/136 659/987/136 -f 651/979/127 650/978/127 660/988/127 658/989/127 -f 649/977/126 652/980/126 659/990/126 661/991/126 -f 662/992/170 663/993/170 664/994/170 665/995/170 -f 666/996/126 662/997/126 665/998/126 667/999/126 -f 668/1000/134 666/996/134 667/999/134 669/1001/134 -f 663/993/127 668/1000/127 669/1001/127 664/994/127 -f 654/982/171 653/981/171 670/1002/171 671/1003/171 -f 657/1004/136 656/1005/136 672/1006/136 673/1007/136 -f 671/1003/127 670/1002/127 673/1008/127 672/1006/127 674/1009/127 -f 654/982/170 671/1003/170 674/1010/170 655/1011/170 -f 655/1012/172 674/1009/172 672/1006/172 656/1005/172 -f 670/1002/134 653/981/134 657/1013/134 673/1014/134 -f 675/1015/170 676/1016/170 677/1017/170 678/1018/170 -f 679/1019/127 680/1020/127 677/1021/127 676/1022/127 -f 681/1023/126 682/1024/126 675/1015/126 678/1018/126 -f 680/1020/172 681/1023/172 678/1018/172 677/1021/172 -f 682/1025/171 679/1019/171 676/1022/171 675/1026/171 -f 684/1027/126 692/1028/126 693/1029/126 694/1030/126 -f 695/1031/173 696/1032/173 685/1033/173 697/1034/173 -f 692/1035/174 701/1036/174 702/1037/174 693/1029/174 -f 329/480/125 454/1038/125 1791/1039/125 1790/1040/125 -f 715/1041/131 716/1042/131 717/1043/131 718/1044/131 -f 259/365/131 454/1038/131 719/1045/131 720/1046/131 -f 329/480/131 260/366/131 721/1047/131 722/1048/131 -f 259/365/131 720/1046/131 716/1042/131 715/1041/131 721/1047/131 260/366/131 -f 454/1038/131 329/480/131 722/1048/131 718/1044/131 717/1043/131 719/1045/131 -f 271/378/128 723/1049/128 724/1050/128 453/1051/128 -f 270/1052/128 725/1053/128 723/1049/128 271/378/128 -f 270/1052/128 330/481/128 726/1054/128 725/1053/128 -f 453/1051/128 724/1050/128 726/1054/128 330/481/128 -f 725/1055/175 726/1056/175 727/1057/175 728/1058/175 -f 721/1059/128 715/1060/128 729/1061/128 730/1062/128 -f 716/1063/176 731/1064/176 732/1065/176 717/1066/176 -f 733/1067/131 730/1062/131 729/1061/131 734/1068/131 -f 719/1069/136 735/1070/136 736/1071/136 720/1072/136 -f 737/1073/128 728/1074/128 727/1057/128 738/1075/128 -f 715/1076/177 718/1077/177 734/1068/177 729/1078/177 -f 720/1079/128 736/1071/128 731/1080/128 716/1081/128 -f 722/1082/178 721/1083/178 730/1084/178 733/1067/178 -f 718/1077/130 722/1082/130 733/1067/130 734/1068/130 -f 738/1075/129 727/1057/129 726/1056/129 724/1085/129 -f 728/1074/131 737/1073/131 723/1086/131 725/1087/131 -f 739/1088/126 740/1089/126 741/1090/126 742/1091/126 -f 740/1092/179 743/1093/179 744/1094/179 741/1095/179 -f 745/1096/127 746/1097/127 747/1098/127 748/1099/127 -f 749/1100/180 739/1088/180 742/1091/180 750/1101/180 -f 748/1099/127 747/1098/127 751/1102/127 752/1103/127 -f 741/1095/181 744/1094/181 753/1104/181 754/1105/181 -f 749/1106/127 743/1107/127 755/1108/127 -f 755/1108/172 756/1109/172 739/1088/172 749/1100/172 -f 756/1109/126 740/1110/126 739/1111/126 -f 746/1112/127 745/1113/127 757/1114/127 -f 757/1114/172 758/1115/172 759/1116/172 746/1097/172 -f 758/1115/126 760/1117/126 759/1118/126 -f 761/1119/136 762/1120/136 756/1109/136 755/1108/136 -f 763/1121/132 764/1122/132 743/1107/132 740/1123/132 -f 765/1124/127 766/1125/127 757/1114/127 745/1113/127 -f 767/1126/126 768/1127/126 760/1117/126 758/1115/126 -f 762/1120/126 763/1128/126 740/1110/126 756/1109/126 -f 766/1125/136 767/1126/136 758/1115/136 757/1114/136 -f 768/1129/132 765/1124/132 745/1113/132 760/1130/132 -f 764/1122/127 761/1119/127 755/1108/127 743/1107/127 -f 760/1131/179 745/1096/179 748/1099/179 769/1132/179 -f 743/1093/127 749/1100/127 750/1101/127 744/1094/127 -f 770/1133/125 771/1134/125 772/1135/125 773/1136/125 -f 732/1065/131 731/1080/131 736/1071/131 735/1070/131 -f 717/1066/130 732/1065/130 735/1070/130 719/1137/130 -f 737/1073/136 738/1075/136 724/1138/136 723/1139/136 -f 747/1098/182 774/1140/182 775/1141/182 751/1102/182 -f 774/1140/126 769/1142/126 776/1143/126 775/1141/126 -f 742/1091/126 741/1090/126 754/1144/126 777/1145/126 -f 769/1132/181 748/1099/181 752/1103/181 776/1146/181 -f 744/1094/127 750/1101/127 778/1147/127 753/1104/127 -f 750/1101/182 742/1091/182 777/1145/182 778/1147/182 -f 759/1116/126 760/1148/126 769/1142/126 774/1140/126 -f 746/1097/180 759/1116/180 774/1140/180 747/1098/180 -f 779/1149/162 780/1150/162 781/1151/162 782/1152/162 -f 771/1134/132 783/1153/132 784/1154/132 772/1135/132 -f 782/1152/124 781/1151/124 785/1155/124 786/1156/124 -f 783/1153/124 787/1157/124 788/1158/124 784/1154/124 -f 786/1159/163 785/1160/163 789/1161/163 790/1162/163 -f 787/1157/136 770/1163/136 773/1164/136 788/1158/136 -f 790/1162/160 789/1161/160 791/1165/160 792/1166/160 -f 781/1167/127 780/1168/127 793/1169/127 791/1170/127 789/1171/127 785/1172/127 -f 792/1166/125 791/1165/125 793/1173/125 794/1174/125 -f 794/1174/161 793/1173/161 780/1150/161 779/1149/161 -f 779/1175/126 782/1176/126 786/1177/126 790/1178/126 792/1179/126 794/1180/126 -f 784/1154/129 788/1158/129 795/1181/129 796/1182/129 -f 784/1183/132 796/1182/132 772/1184/132 -f 773/1185/136 795/1181/136 788/1186/136 -f 795/1181/136 773/1185/136 797/1187/136 798/1188/136 -f 798/1189/124 797/1190/124 799/1191/124 800/1192/124 -f 796/1182/127 795/1181/127 798/1188/127 801/1193/127 -f 772/1184/132 796/1182/132 801/1193/132 802/1194/132 -f 773/1195/126 772/1184/126 802/1194/126 797/1196/126 -f 798/1189/127 803/1197/127 801/1198/127 -f 802/1199/126 804/1200/126 797/1201/126 -f 801/1193/170 803/1197/170 804/1200/170 802/1194/170 -f 805/1202/180 806/1203/180 807/1204/180 808/1205/180 -f 803/1197/127 798/1189/127 800/1192/127 806/1203/127 -f 804/1200/125 803/1197/125 806/1203/125 805/1202/125 -f 797/1201/126 804/1200/126 805/1202/126 799/1206/126 -f 809/1207/127 810/1208/127 807/1209/127 -f 799/1206/126 805/1202/126 808/1205/126 811/1210/126 -f 800/1192/179 799/1191/179 811/1211/179 809/1212/179 -f 806/1203/127 800/1192/127 809/1212/127 807/1204/127 -f 807/1204/172 810/1208/172 812/1213/172 808/1205/172 -f 811/1214/126 812/1213/126 813/1215/126 814/1216/126 -f 811/1214/126 808/1217/126 812/1213/126 -f 815/1218/132 814/1219/132 816/1220/132 817/1221/132 -f 809/1207/132 811/1222/132 814/1223/132 818/1224/132 -f 810/1208/127 809/1207/127 818/1224/127 819/1225/127 -f 812/1213/136 810/1208/136 819/1225/136 813/1215/136 -f 819/1226/136 820/1227/136 813/1228/136 -f 818/1224/129 815/1218/129 820/1227/129 819/1225/129 -f 814/1219/132 815/1218/132 818/1229/132 -f 814/1230/125 813/1228/125 821/1231/125 816/1232/125 -f 813/1228/136 820/1227/136 822/1233/136 821/1231/136 -f 820/1227/124 815/1218/124 817/1221/124 822/1233/124 -f 660/1234/124 661/1235/124 659/1236/124 658/1237/124 -f 1052/1238/183 1053/1239/183 1054/1240/183 1055/1241/183 -f 1056/1242/183 1057/1243/183 1058/1244/183 1059/1245/183 -f 1060/1246/183 1061/1247/183 1062/1248/183 1063/1249/183 -f 1061/1247/183 1064/1250/183 1065/1251/183 1062/1248/183 -f 1066/1252/183 1052/1238/183 1055/1241/183 1067/1253/183 -f 1053/1239/183 1056/1242/183 1059/1245/183 1054/1240/183 -f 1057/1243/183 1060/1246/183 1063/1249/183 1058/1244/183 -f 1064/1250/183 1066/1254/183 1067/1255/183 1065/1251/183 -f 1068/1256/183 1069/1257/183 1070/1258/183 1071/1259/183 1072/1260/183 1073/1261/183 1074/1262/183 1075/1263/183 -f 1076/1264/183 1077/1265/183 1078/1266/183 1079/1267/183 -f 1077/1265/183 1080/1268/183 1081/1269/183 1078/1266/183 -f 1080/1268/184 1082/1270/184 1083/1271/184 1081/1269/184 -f 1082/1272/184 1084/1273/184 1085/1274/184 1083/1275/184 -f 1084/1273/183 1086/1276/183 1087/1277/183 1085/1274/183 -f 1086/1276/184 1088/1278/184 1089/1279/184 1087/1277/184 -f 1088/1278/184 1090/1280/184 1091/1281/184 1089/1279/184 -f 1090/1280/184 1076/1264/184 1079/1267/184 1091/1281/184 -f 1140/1282/185 1141/1283/185 1142/1284/185 1143/1285/185 -f 1144/1286/185 1145/1287/185 1146/1288/185 1147/1289/185 -f 1148/1290/185 1149/1291/185 1150/1292/185 1151/1293/185 -f 1149/1291/185 1152/1294/185 1153/1295/185 1150/1292/185 -f 1154/1296/185 1140/1282/185 1143/1285/185 1155/1297/185 -f 1141/1283/185 1144/1286/185 1147/1289/185 1142/1284/185 -f 1145/1287/185 1148/1290/185 1151/1293/185 1146/1288/185 -f 1152/1294/185 1154/1298/185 1155/1299/185 1153/1295/185 -f 1156/1300/185 1157/1301/185 1158/1302/185 1159/1303/185 1160/1304/185 1161/1305/185 1162/1306/185 1163/1307/185 -f 1164/1308/185 1165/1309/185 1166/1310/185 1167/1311/185 -f 1165/1309/185 1168/1312/185 1169/1313/185 1166/1310/185 -f 1168/1312/186 1170/1314/186 1171/1315/186 1169/1313/186 -f 1170/1316/186 1172/1317/186 1173/1318/186 1171/1319/186 -f 1172/1317/185 1174/1320/185 1175/1321/185 1173/1318/185 -f 1174/1320/185 1176/1322/185 1177/1323/185 1175/1321/185 -f 1176/1322/186 1178/1324/186 1179/1325/186 1177/1323/186 -f 1178/1324/185 1164/1308/185 1167/1311/185 1179/1325/185 -f 1228/1326/187 1229/1327/187 1230/1328/187 1231/1329/187 -f 1232/1330/187 1233/1331/187 1234/1332/187 1235/1333/187 -f 1236/1334/187 1237/1335/187 1238/1336/187 1239/1337/187 -f 1237/1335/187 1240/1338/187 1241/1339/187 1238/1336/187 -f 1242/1340/187 1228/1326/187 1231/1329/187 1243/1341/187 -f 1229/1327/187 1232/1330/187 1235/1333/187 1230/1328/187 -f 1233/1331/187 1236/1334/187 1239/1337/187 1234/1332/187 -f 1240/1338/187 1242/1342/187 1243/1343/187 1241/1339/187 -f 1244/1344/187 1245/1345/187 1246/1346/187 1247/1347/187 1248/1348/187 1249/1349/187 1250/1350/187 1251/1351/187 -f 1252/1352/187 1253/1353/187 1254/1354/187 1255/1355/187 -f 1253/1353/187 1256/1356/187 1257/1357/187 1254/1354/187 -f 1256/1356/188 1258/1358/188 1259/1359/188 1257/1357/188 -f 1258/1360/188 1260/1361/188 1261/1362/188 1259/1363/188 -f 1260/1361/188 1262/1364/188 1263/1365/188 1261/1362/188 -f 1262/1364/188 1264/1366/188 1265/1367/188 1263/1365/188 -f 1264/1366/188 1266/1368/188 1267/1369/188 1265/1367/188 -f 1266/1368/187 1252/1352/187 1255/1355/187 1267/1369/187 -f 1316/1370/189 1317/1371/189 1318/1372/189 1319/1373/189 -f 1320/1374/189 1321/1375/189 1322/1376/189 1323/1377/189 -f 1324/1378/190 1325/1379/190 1326/1380/190 1327/1381/190 -f 1325/1379/189 1328/1382/189 1329/1383/189 1326/1380/189 -f 1330/1384/189 1316/1370/189 1319/1373/189 1331/1385/189 -f 1317/1371/189 1320/1374/189 1323/1377/189 1318/1372/189 -f 1321/1375/189 1324/1378/189 1327/1381/189 1322/1376/189 -f 1328/1382/189 1330/1386/189 1331/1387/189 1329/1383/189 -f 1332/1388/189 1333/1389/189 1334/1390/189 1335/1391/189 1336/1392/189 1337/1393/189 1338/1394/189 1339/1395/189 -f 1340/1396/190 1341/1397/190 1342/1398/190 1343/1399/190 -f 1341/1397/190 1344/1400/190 1345/1401/190 1342/1398/190 -f 1344/1400/190 1346/1402/190 1347/1403/190 1345/1401/190 -f 1346/1404/190 1348/1405/190 1349/1406/190 1347/1407/190 -f 1348/1405/189 1350/1408/189 1351/1409/189 1349/1406/189 -f 1350/1408/190 1352/1410/190 1353/1411/190 1351/1409/190 -f 1352/1410/190 1354/1412/190 1355/1413/190 1353/1411/190 -f 1354/1412/189 1340/1396/189 1343/1399/189 1355/1413/189 -f 1404/1414/191 1405/1415/191 1406/1416/191 1407/1417/191 -f 1408/1418/191 1409/1419/191 1410/1420/191 1411/1421/191 -f 1412/1422/192 1413/1423/192 1414/1424/192 1415/1425/192 -f 1413/1423/191 1416/1426/191 1417/1427/191 1414/1424/191 -f 1418/1428/191 1404/1414/191 1407/1417/191 1419/1429/191 -f 1405/1415/191 1408/1418/191 1411/1421/191 1406/1416/191 -f 1409/1419/191 1412/1422/191 1415/1425/191 1410/1420/191 -f 1416/1426/191 1418/1430/191 1419/1431/191 1417/1427/191 -f 1420/1432/191 1421/1433/191 1422/1434/191 1423/1435/191 1424/1436/191 1425/1437/191 1426/1438/191 1427/1439/191 -f 1428/1440/192 1429/1441/192 1430/1442/192 1431/1443/192 -f 1429/1441/192 1432/1444/192 1433/1445/192 1430/1442/192 -f 1432/1444/192 1434/1446/192 1435/1447/192 1433/1445/192 -f 1434/1448/192 1436/1449/192 1437/1450/192 1435/1451/192 -f 1436/1449/191 1438/1452/191 1439/1453/191 1437/1450/191 -f 1438/1452/192 1440/1454/192 1441/1455/192 1439/1453/192 -f 1440/1454/192 1442/1456/192 1443/1457/192 1441/1455/192 -f 1442/1456/191 1428/1440/191 1431/1443/191 1443/1457/191 -f 1492/1458/193 1493/1459/193 1494/1460/193 1495/1461/193 -f 1496/1462/193 1497/1463/193 1498/1464/193 1499/1465/193 -f 1500/1466/194 1501/1467/194 1502/1468/194 1503/1469/194 -f 1501/1467/193 1504/1470/193 1505/1471/193 1502/1468/193 -f 1506/1472/193 1492/1458/193 1495/1461/193 1507/1473/193 -f 1493/1459/193 1496/1462/193 1499/1465/193 1494/1460/193 -f 1497/1463/193 1500/1466/193 1503/1469/193 1498/1464/193 -f 1504/1470/193 1506/1474/193 1507/1475/193 1505/1471/193 -f 1508/1476/193 1509/1477/193 1510/1478/193 1511/1479/193 1512/1480/193 1513/1481/193 1514/1482/193 1515/1483/193 -f 1516/1484/194 1517/1485/194 1518/1486/194 1519/1487/194 -f 1517/1485/194 1520/1488/194 1521/1489/194 1518/1486/194 -f 1520/1488/194 1522/1490/194 1523/1491/194 1521/1489/194 -f 1522/1492/194 1524/1493/194 1525/1494/194 1523/1495/194 -f 1524/1493/193 1526/1496/193 1527/1497/193 1525/1494/193 -f 1526/1496/194 1528/1498/194 1529/1499/194 1527/1497/194 -f 1528/1498/194 1530/1500/194 1531/1501/194 1529/1499/194 -f 1530/1500/194 1516/1484/194 1519/1487/194 1531/1501/194 -f 1580/1502/195 1581/1503/195 1582/1504/195 1583/1505/195 -f 1584/1506/195 1585/1507/195 1586/1508/195 1587/1509/195 -f 1588/1510/195 1589/1511/195 1590/1512/195 1591/1513/195 -f 1589/1511/195 1592/1514/195 1593/1515/195 1590/1512/195 -f 1594/1516/195 1580/1502/195 1583/1505/195 1595/1517/195 -f 1581/1503/195 1584/1506/195 1587/1509/195 1582/1504/195 -f 1585/1507/195 1588/1510/195 1591/1513/195 1586/1508/195 -f 1592/1514/195 1594/1518/195 1595/1519/195 1593/1515/195 -f 1596/1520/195 1597/1521/195 1598/1522/195 1599/1523/195 1600/1524/195 1601/1525/195 1602/1526/195 1603/1527/195 -f 1604/1528/196 1605/1529/196 1606/1530/196 1607/1531/196 -f 1605/1529/196 1608/1532/196 1609/1533/196 1606/1530/196 -f 1608/1532/196 1610/1534/196 1611/1535/196 1609/1533/196 -f 1610/1536/196 1612/1537/196 1613/1538/196 1611/1539/196 -f 1612/1537/195 1614/1540/195 1615/1541/195 1613/1538/195 -f 1614/1540/196 1616/1542/196 1617/1543/196 1615/1541/196 -f 1616/1542/196 1618/1544/196 1619/1545/196 1617/1543/196 -f 1618/1544/195 1604/1528/195 1607/1531/195 1619/1545/195 -f 1668/1546/197 1669/1547/197 1670/1548/197 1671/1549/197 -f 1672/1550/198 1673/1551/198 1671/1549/198 1670/1548/198 -f 1674/1552/199 1672/1553/199 1670/1548/199 1669/1547/199 -f 1675/1554/200 1674/1555/200 1669/1547/200 1668/1546/200 -f 1673/1556/201 1675/1557/201 1668/1546/201 1671/1549/201 -f 1676/1558/202 1677/1559/202 1678/1560/202 1679/1561/202 -f 1680/1562/203 1681/1563/203 1679/1561/203 1678/1560/203 -f 1682/1564/204 1680/1565/204 1678/1560/204 1677/1559/204 -f 1683/1566/205 1682/1567/205 1677/1559/205 1676/1558/205 -f 1681/1568/206 1683/1569/206 1676/1558/206 1679/1561/206 -f 1684/1570/207 1685/1571/207 1686/1572/207 1687/1573/207 -f 1688/1574/208 1689/1575/208 1687/1573/208 1686/1572/208 -f 1690/1576/209 1688/1577/209 1686/1572/209 1685/1571/209 -f 1691/1578/210 1690/1579/210 1685/1571/210 1684/1570/210 -f 1689/1580/211 1691/1581/211 1684/1570/211 1687/1573/211 -f 1692/1582/212 1693/1583/212 1694/1584/212 1695/1585/212 -f 1696/1586/213 1697/1587/213 1695/1585/213 1694/1584/213 -f 1698/1588/214 1696/1589/214 1694/1584/214 1693/1583/214 -f 1699/1590/215 1698/1591/215 1693/1583/215 1692/1582/215 -f 1697/1592/216 1699/1593/216 1692/1582/216 1695/1585/216 -f 1700/1594/217 1701/1595/217 1702/1596/217 1703/1597/217 -f 1704/1598/218 1705/1599/218 1703/1597/218 1702/1596/218 -f 1706/1600/219 1704/1601/219 1702/1596/219 1701/1595/219 -f 1707/1602/220 1706/1603/220 1701/1595/220 1700/1594/220 -f 1705/1604/221 1707/1605/221 1700/1594/221 1703/1597/221 -f 1708/1606/222 1709/1607/222 1710/1608/222 1711/1609/222 -f 1712/1610/223 1713/1611/223 1711/1609/223 1710/1608/223 -f 1714/1612/224 1712/1613/224 1710/1608/224 1709/1607/224 -f 1715/1614/225 1714/1615/225 1709/1607/225 1708/1606/225 -f 1713/1616/226 1715/1617/226 1708/1606/226 1711/1609/226 -f 1716/1618/227 1717/1619/227 1718/1620/227 1719/1621/227 -f 1720/1622/228 1721/1623/228 1719/1621/228 1718/1620/228 -f 1722/1624/229 1720/1625/229 1718/1620/229 1717/1619/229 -f 1723/1626/230 1722/1627/230 1717/1619/230 1716/1618/230 -f 1721/1628/231 1723/1629/231 1716/1618/231 1719/1621/231 -f 1724/1630/232 1725/1631/232 1726/1632/232 1727/1633/232 -f 1728/1634/233 1729/1635/233 1727/1633/233 1726/1632/233 -f 1730/1636/234 1728/1637/234 1726/1632/234 1725/1631/234 -f 1731/1638/235 1730/1639/235 1725/1631/235 1724/1630/235 -f 1729/1640/236 1731/1641/236 1724/1630/236 1727/1633/236 -f 1732/1642/237 1733/1643/237 1734/1644/237 1735/1645/237 -f 1736/1646/238 1737/1647/238 1735/1645/238 1734/1644/238 -f 1738/1648/239 1736/1649/239 1734/1644/239 1733/1643/239 -f 1739/1650/240 1738/1651/240 1733/1643/240 1732/1642/240 -f 1737/1652/241 1739/1653/241 1732/1642/241 1735/1645/241 -f 1740/1654/242 1741/1655/242 1742/1656/242 1743/1657/242 -f 1744/1658/243 1745/1659/243 1743/1657/243 1742/1656/243 -f 1746/1660/244 1744/1661/244 1742/1656/244 1741/1655/244 -f 1747/1662/245 1746/1663/245 1741/1655/245 1740/1654/245 -f 1745/1664/246 1747/1665/246 1740/1654/246 1743/1657/246 -f 1748/1666/247 1749/1667/247 1750/1668/247 1751/1669/247 -f 1752/1670/248 1753/1671/248 1751/1669/248 1750/1668/248 -f 1754/1672/249 1752/1673/249 1750/1668/249 1749/1667/249 -f 1755/1674/250 1754/1675/250 1749/1667/250 1748/1666/250 -f 1753/1676/251 1755/1677/251 1748/1666/251 1751/1669/251 -f 1756/1678/252 1757/1679/252 1758/1680/252 1759/1681/252 -f 1760/1682/253 1761/1683/253 1759/1681/253 1758/1680/253 -f 1762/1684/254 1760/1685/254 1758/1680/254 1757/1679/254 -f 1763/1686/255 1762/1687/255 1757/1679/255 1756/1678/255 -f 1761/1688/256 1763/1689/256 1756/1678/256 1759/1681/256 -f 1764/1690/257 1765/1691/257 1766/1692/257 1767/1693/257 -f 1768/1694/258 1769/1695/258 1767/1693/258 1766/1692/258 -f 1770/1696/259 1768/1697/259 1766/1692/259 1765/1691/259 -f 1771/1698/260 1770/1699/260 1765/1691/260 1764/1690/260 -f 1769/1700/261 1771/1701/261 1764/1690/261 1767/1693/261 -f 1772/1702/262 1773/1703/262 1774/1704/262 1775/1705/262 -f 1776/1706/263 1777/1707/263 1775/1705/263 1774/1704/263 -f 1778/1708/264 1776/1709/264 1774/1704/264 1773/1703/264 -f 1779/1710/265 1778/1711/265 1773/1703/265 1772/1702/265 -f 1777/1712/266 1779/1713/266 1772/1702/266 1775/1705/266 -f 1780/1714/267 1781/1715/267 1782/1716/267 1783/1717/267 -f 1784/1718/268 1785/1719/268 1783/1717/268 1782/1716/268 -f 1786/1720/269 1784/1721/269 1782/1716/269 1781/1715/269 -f 1787/1722/270 1786/1723/270 1781/1715/270 1780/1714/270 -f 1785/1724/271 1787/1725/271 1780/1714/271 1783/1717/271 -f 1789/1726/126 1788/1727/126 1792/1728/126 1793/1729/126 -f 330/481/125 329/480/125 1790/1040/125 1788/1730/125 -f 453/1051/125 330/481/125 1788/1730/125 1789/1731/125 -f 454/1038/125 453/1051/125 1789/1731/125 1791/1039/125 -f 1793/1732/125 1792/1733/125 1794/1734/125 1795/1735/125 -f 1791/1736/136 1789/1737/136 1793/1738/136 1795/1739/136 -f 1788/1740/132 1790/1741/132 1794/1742/132 1792/1743/132 -f 1790/1744/127 1791/1745/127 1795/1746/127 1794/1747/127 -s 1 -f 249/1748/272 248/1749/273 823/1750/273 824/1751/272 -f 246/1752/274 249/1748/272 824/1751/272 825/1753/274 -f 247/1754/275 246/1752/274 825/1753/274 826/1755/275 -f 243/1756/276 247/1754/275 826/1755/275 827/1757/276 -f 244/1758/277 243/1756/276 827/1757/276 828/1759/277 -f 245/1760/278 244/1758/277 828/1759/277 829/1761/278 -f 258/1762/279 245/1760/278 829/1761/278 830/1763/279 -f 256/1764/280 258/1762/279 830/1763/279 831/1765/280 -f 257/1766/281 256/1764/280 831/1765/280 832/1767/281 -f 254/1768/282 257/1769/281 832/1770/281 833/1771/282 -f 255/1772/283 254/1768/282 833/1771/282 834/1773/283 -f 252/1774/284 255/1772/283 834/1773/283 835/1775/284 -f 253/1776/285 252/1774/284 835/1775/284 836/1777/285 -f 250/1778/286 253/1776/285 836/1777/285 837/1779/286 -f 251/1780/287 250/1778/286 837/1779/286 838/1781/287 -f 248/1749/273 251/1780/287 838/1781/287 823/1750/273 -f 824/1751/124 823/1750/288 839/1782/288 840/1783/124 -f 825/1753/289 824/1751/124 840/1783/124 841/1784/289 -f 832/1767/125 831/1765/290 842/1785/290 843/1786/125 -f 823/1750/288 838/1781/129 844/1787/129 839/1782/288 -f 831/1765/290 830/1763/131 845/1788/131 842/1785/290 -f 838/1781/129 837/1779/291 846/1789/291 844/1787/129 -f 830/1763/131 829/1761/292 847/1790/292 845/1788/131 -f 837/1779/291 836/1777/127 848/1791/127 846/1789/291 -f 829/1761/292 828/1759/126 849/1792/126 847/1790/292 -f 836/1777/127 835/1775/293 850/1793/293 848/1791/127 -f 828/1759/126 827/1757/294 851/1794/294 849/1792/126 -f 835/1775/293 834/1773/128 852/1795/128 850/1793/293 -f 827/1757/294 826/1755/130 853/1796/130 851/1794/294 -f 834/1773/128 833/1771/295 854/1797/295 852/1795/128 -f 826/1755/130 825/1753/289 841/1784/289 853/1796/130 -f 833/1771/295 832/1770/125 843/1798/125 854/1797/295 -f 855/1799/296 856/1800/297 857/1801/298 858/1802/299 -f 859/1803/300 860/1804/151 861/1805/301 862/1806/302 -f 863/1807/303 864/1808/304 865/1809/305 866/1810/306 -f 864/1808/304 867/1811/307 868/1812/308 865/1809/305 -f 869/1813/149 855/1799/296 858/1802/299 870/1814/309 -f 856/1800/297 859/1803/300 862/1806/302 857/1801/298 -f 860/1804/151 863/1807/303 866/1810/306 861/1805/301 -f 867/1811/307 869/1815/149 870/1816/309 868/1812/308 -f 866/1810/306 865/1809/305 871/1817/310 872/1818/311 -f 862/1806/302 861/1805/301 873/1819/312 874/1820/313 -f 858/1802/299 857/1801/298 875/1821/314 876/1822/315 -f 868/1812/308 870/1816/309 877/1823/146 878/1824/316 -f 861/1805/301 866/1810/306 872/1818/311 873/1819/312 -f 857/1801/298 862/1806/302 874/1820/313 875/1821/314 -f 870/1814/309 858/1802/299 876/1822/315 877/1825/146 -f 865/1809/305 868/1812/308 878/1824/316 871/1817/310 -f 877/1825/146 876/1822/315 879/1826/317 880/1827/136 -f 871/1817/310 878/1824/316 881/1828/318 882/1829/319 -f 872/1818/311 871/1817/310 882/1829/319 883/1830/320 -f 874/1820/313 873/1819/312 884/1831/132 885/1832/321 -f 876/1822/315 875/1821/314 886/1833/322 879/1826/317 -f 878/1824/316 877/1823/146 880/1834/136 881/1828/318 -f 873/1819/312 872/1818/311 883/1830/320 884/1831/132 -f 875/1821/314 874/1820/313 885/1832/321 886/1833/322 -f 884/1831/132 883/1830/320 887/1835/323 888/1836/324 -f 886/1833/322 885/1832/321 889/1837/325 890/1838/326 -f 880/1827/136 879/1826/317 891/1839/327 892/1840/328 -f 882/1829/319 881/1828/318 893/1841/329 894/1842/330 -f 883/1830/320 882/1829/319 894/1842/330 887/1835/323 -f 885/1832/321 884/1831/132 888/1836/324 889/1837/325 -f 879/1826/317 886/1833/322 890/1838/326 891/1839/327 -f 881/1828/318 880/1834/136 892/1843/328 893/1841/329 -f 895/1844/291 896/1845/331 345/500/331 342/497/291 -f 897/1846/332 898/1847/333 333/488/333 347/502/332 -f 899/1848/292 900/1849/334 337/492/334 334/489/292 -f 901/1850/335 902/1851/336 341/496/336 338/493/335 -f 896/1845/331 897/1852/332 347/504/332 345/500/331 -f 898/1847/333 899/1848/292 334/489/292 333/488/333 -f 900/1849/334 901/1850/335 338/493/335 337/492/334 -f 902/1851/336 895/1844/291 342/497/291 341/496/336 -f 350/1853/334 349/1854/292 359/516/292 362/519/334 -f 344/499/336 343/498/291 358/515/291 357/514/336 -f 351/1855/335 350/1853/334 362/519/334 364/521/335 -f 343/498/291 346/501/331 361/518/331 358/515/291 -f 352/1856/336 351/1857/335 364/525/335 366/524/336 -f 346/501/331 348/505/332 363/520/332 361/518/331 -f 353/1858/291 352/1856/336 366/524/336 368/527/291 -f 348/503/332 336/491/333 365/523/333 363/522/332 -f 339/494/335 344/499/336 357/514/336 371/530/335 -f 349/1854/292 356/1859/333 360/517/333 359/516/292 -f 340/495/334 339/494/335 371/530/335 369/528/334 -f 356/1859/333 355/1860/332 372/531/332 360/517/333 -f 335/490/292 340/495/334 369/528/334 367/526/292 -f 355/1860/332 354/1861/331 370/529/331 372/531/332 -f 336/491/333 335/490/292 367/526/292 365/523/333 -f 354/1861/331 353/1858/291 368/527/291 370/529/331 -f 845/1788/337 847/1790/338 431/1862/338 430/1863/337 -f 846/1789/339 848/1791/340 424/1864/340 423/1865/339 -f 847/1790/338 849/1792/341 432/1866/341 431/1867/338 -f 848/1791/340 850/1793/342 425/1868/342 424/1869/340 -f 849/1792/341 851/1794/343 433/1870/343 432/1871/341 -f 850/1793/342 852/1795/344 426/1872/344 425/1873/342 -f 851/1794/343 853/1796/345 434/1874/345 433/1875/343 -f 852/1795/344 854/1797/346 427/1876/346 426/1877/344 -f 853/1796/345 841/1784/347 435/1878/347 434/1879/345 -f 854/1797/346 843/1798/348 428/1880/348 427/1881/346 -f 840/1783/349 839/1782/350 421/1882/350 436/1883/349 -f 841/1784/347 840/1783/349 436/1884/349 435/1885/347 -f 843/1786/348 842/1785/351 429/1886/351 428/1887/348 -f 839/1782/350 844/1787/352 422/1888/352 421/1889/350 -f 842/1785/351 845/1788/337 430/1890/337 429/1891/351 -f 844/1787/352 846/1789/339 423/1892/339 422/1893/352 -f 903/1894/293 904/1895/295 382/545/295 381/544/293 -f 905/1896/288 906/1897/291 393/556/291 395/559/288 -f 907/1898/294 908/1899/289 397/566/289 399/565/294 -f 909/1900/290 910/1901/292 401/569/292 403/572/290 -f 906/1897/291 903/1894/293 381/544/293 393/556/291 -f 908/1902/289 905/1896/288 395/559/288 397/562/289 -f 910/1901/292 907/1898/294 399/565/294 401/569/292 -f 904/1895/295 909/1900/290 403/572/290 382/545/295 -f 384/547/293 383/546/295 407/579/295 406/578/293 -f 385/1903/288 392/1904/289 408/605/289 419/608/288 -f 392/1905/289 391/1906/294 405/577/294 408/580/289 -f 394/558/291 384/557/293 406/583/293 410/582/291 -f 391/1907/294 390/1908/292 409/581/292 405/584/294 -f 396/561/288 394/560/291 410/587/291 412/586/288 -f 390/1909/292 389/1910/290 411/585/290 409/588/292 -f 398/564/289 396/563/288 412/591/288 414/590/289 -f 383/576/295 404/575/290 420/607/290 407/606/295 -f 386/1911/291 385/1912/288 419/601/288 417/604/291 -f 404/574/290 402/573/292 418/603/292 420/602/290 -f 387/1913/293 386/1914/291 417/597/291 415/600/293 -f 402/571/292 400/570/294 416/599/294 418/598/292 -f 388/1915/295 387/1916/293 415/593/293 413/596/295 -f 400/568/294 398/567/289 414/595/289 416/594/294 -f 389/1917/290 388/1918/295 413/589/295 411/592/290 -f 445/1919/124 444/1920/289 465/1921/289 464/1922/124 -f 450/1923/290 452/1924/125 456/1925/125 455/1926/290 -f 452/1924/125 439/1927/295 457/1928/295 456/1925/125 -f 442/1929/288 445/1930/124 464/1931/124 463/1932/288 -f 451/1933/131 450/1923/290 455/1926/290 470/1934/131 -f 443/1935/129 442/1929/288 463/1932/288 462/1936/129 -f 448/1937/292 451/1933/131 470/1934/131 469/1938/292 -f 440/1939/291 443/1935/129 462/1936/129 461/1940/291 -f 449/1941/126 448/1937/292 469/1938/292 468/1942/126 -f 441/1943/127 440/1939/291 461/1940/291 460/1944/127 -f 446/1945/294 449/1941/126 468/1942/126 467/1946/294 -f 437/1947/293 441/1943/127 460/1944/127 459/1948/293 -f 447/1949/130 446/1945/294 467/1946/294 466/1950/130 -f 438/1951/128 437/1947/293 459/1948/293 458/1952/128 -f 444/1920/289 447/1949/130 466/1950/130 465/1921/289 -f 439/1927/295 438/1951/128 458/1952/128 457/1928/295 -f 911/1953/353 912/1954/173 688/1955/173 687/1956/353 -f 913/1957/126 914/1958/354 691/1959/354 690/1960/126 -f 694/1030/355 693/1029/355 702/1037/356 700/1961/356 -f 915/1962/357 911/1953/353 687/1956/353 686/1963/357 -f 916/1964/358 913/1957/126 690/1960/126 689/1965/358 -f 700/1961/356 702/1037/356 701/1966/359 699/1967/359 -f 917/1968/360 692/1969/361 684/1970/361 683/1971/360 -f 696/1972/362 915/1962/357 686/1963/357 685/1973/362 -f 912/1954/173 916/1964/358 689/1965/358 688/1955/173 -f 699/1967/359 701/1966/359 918/1974/127 698/1975/127 -f 914/1958/354 917/1968/360 683/1971/360 691/1959/354 -f 695/1031/363 697/1034/363 698/1975/127 918/1974/127 -f 919/1976/155 920/1977/356 709/1978/356 708/1979/155 -f 921/1980/126 922/1981/354 706/1982/354 705/1983/126 -f 923/1984/364 924/1985/357 713/1986/357 712/1987/364 -f 925/1988/353 926/1989/173 703/1990/173 714/1991/353 -f 920/1977/356 927/1992/359 710/1993/359 709/1978/356 -f 922/1981/354 928/1994/360 707/1995/360 706/1982/354 -f 924/1985/357 925/1996/353 714/1997/353 713/1986/357 -f 926/1989/173 929/1998/358 704/1999/358 703/1990/173 -f 927/1992/359 930/2000/127 711/2001/127 710/1993/359 -f 928/1994/360 919/1976/155 708/1979/155 707/1995/360 -f 929/1998/358 921/1980/126 705/1983/126 704/1999/358 -f 930/2000/127 923/1984/364 712/1987/364 711/2001/127 -f 931/2002/365 932/2003/366 933/2004/367 934/2005/368 -f 935/2006/369 936/2007/370 937/2008/371 938/2009/372 -f 939/2010/373 940/2011/374 941/2012/375 942/2013/376 -f 943/2014/377 944/2015/378 945/2016/379 946/2017/380 -f 946/2017/380 945/2016/379 940/2011/374 939/2010/373 -f 947/2018/381 948/2019/382 944/2015/378 943/2014/377 -f 945/2016/379 949/2020/383 950/2021/384 940/2011/374 -f 948/2019/382 951/2022/385 952/2023/386 944/2015/378 -f 940/2011/374 950/2021/384 953/2024/387 941/2012/375 -f 944/2015/378 952/2023/386 949/2020/383 945/2016/379 -f 954/2025/373 955/2026/374 956/2027/375 957/2028/376 -f 958/2029/377 959/2030/378 960/2031/379 961/2032/380 -f 961/2032/380 960/2031/379 955/2026/374 954/2025/373 -f 962/2033/381 963/2034/382 959/2030/378 958/2029/377 -f 960/2031/379 964/2035/383 965/2036/384 955/2026/374 -f 963/2034/382 966/2037/385 967/2038/386 959/2030/378 -f 955/2026/374 965/2036/384 968/2039/387 956/2027/375 -f 959/2030/378 967/2038/386 964/2035/383 960/2031/379 -f 969/2040/373 970/2041/374 971/2042/375 972/2043/376 -f 973/2044/377 974/2045/388 975/2046/379 976/2047/380 -f 976/2047/380 975/2046/379 970/2041/374 969/2040/373 -f 977/2048/381 978/2049/382 974/2045/388 973/2044/377 -f 975/2046/379 979/2050/383 980/2051/384 970/2041/374 -f 978/2049/382 981/2052/385 982/2053/386 974/2045/388 -f 970/2041/374 980/2051/384 983/2054/387 971/2042/375 -f 974/2045/388 982/2053/386 979/2050/383 975/2046/379 -f 939/2010/373 942/2013/376 984/2055/295 985/2056/125 -f 954/2025/373 957/2028/376 986/2057/295 987/2058/125 -f 946/2017/380 939/2010/373 985/2056/125 988/2059/131 -f 943/2014/377 946/2017/380 988/2059/131 989/2060/126 -f 969/2040/373 972/2043/376 990/2061/295 991/2062/125 -f 961/2032/380 954/2025/373 987/2058/125 992/2063/131 -f 947/2018/381 943/2014/377 989/2060/126 993/2064/294 -f 958/2029/377 961/2032/380 992/2063/131 994/2065/126 -f 976/2047/380 969/2040/373 991/2062/125 995/2066/131 -f 973/2044/377 976/2047/380 995/2066/131 996/2067/126 -f 962/2033/381 958/2029/377 994/2065/126 997/2068/294 -f 977/2048/381 973/2044/377 996/2067/126 998/2069/294 -f 932/2003/366 935/2006/369 938/2009/372 933/2004/367 -f 999/2070/389 931/2002/365 934/2005/368 1000/2071/390 -f 933/2004/367 938/2009/372 1001/2072/391 1002/2073/392 -f 1000/2071/390 934/2005/368 1003/2074/393 1004/2075/394 -f 938/2009/372 937/2008/371 1005/2076/395 1001/2072/391 -f 934/2005/368 933/2004/367 1002/2073/392 1003/2074/393 -f 1006/2077/369 1007/2078/370 1008/2079/371 1009/2080/396 -f 1010/2081/365 1011/2082/366 1012/2083/367 1013/2084/368 -f 1011/2082/366 1006/2077/369 1009/2080/396 1012/2083/367 -f 1014/2085/389 1010/2081/365 1013/2084/368 1015/2086/390 -f 1012/2083/367 1009/2080/396 1016/2087/391 1017/2088/392 -f 1015/2086/390 1013/2084/368 1018/2089/393 1019/2090/394 -f 1009/2080/396 1008/2079/371 1020/2091/395 1016/2087/391 -f 1013/2084/368 1012/2083/367 1017/2088/392 1018/2089/393 -f 1021/2092/369 1022/2093/370 1023/2094/371 1024/2095/372 -f 1025/2096/365 1026/2097/366 1027/2098/367 1028/2099/397 -f 1026/2097/366 1021/2092/369 1024/2095/372 1027/2098/367 -f 1029/2100/389 1025/2096/365 1028/2099/397 1030/2101/390 -f 1027/2098/367 1024/2095/372 1031/2102/391 1032/2103/392 -f 1030/2101/390 1028/2099/397 1033/2104/393 1034/2105/394 -f 1024/2095/372 1023/2094/371 1035/2106/395 1031/2102/391 -f 1028/2099/397 1027/2098/367 1032/2103/392 1033/2104/393 -f 935/2006/369 1036/2107/125 1037/2108/290 936/2007/370 -f 1006/2077/369 1038/2109/125 1039/2110/290 1007/2078/370 -f 932/2003/366 1040/2111/128 1036/2107/125 935/2006/369 -f 931/2002/365 1041/2112/127 1040/2111/128 932/2003/366 -f 1021/2092/369 1042/2113/125 1043/2114/290 1022/2093/370 -f 1011/2082/366 1044/2115/128 1038/2109/125 1006/2077/369 -f 999/2070/389 1045/2116/291 1041/2112/127 931/2002/365 -f 1010/2081/365 1046/2117/127 1044/2115/128 1011/2082/366 -f 1026/2097/366 1047/2118/128 1042/2113/125 1021/2092/369 -f 1025/2096/365 1048/2119/127 1047/2118/128 1026/2097/366 -f 1014/2085/389 1049/2120/291 1046/2117/127 1010/2081/365 -f 1029/2100/389 1050/2121/291 1048/2119/127 1025/2096/365 -f 1092/2122/398 1093/2123/399 1094/2124/400 1095/2125/401 -f 1096/2126/402 1097/2127/147 1098/2128/403 1099/2129/404 -f 1100/2130/405 1101/2131/406 1102/2132/407 1103/2133/408 -f 1101/2131/406 1104/2134/409 1105/2135/410 1102/2132/407 -f 1106/2136/148 1092/2122/398 1095/2125/401 1107/2137/411 -f 1093/2123/399 1096/2126/402 1099/2129/404 1094/2124/400 -f 1097/2127/147 1100/2130/405 1103/2133/408 1098/2128/403 -f 1104/2134/409 1106/2138/148 1107/2139/411 1105/2135/410 -f 1103/2133/408 1102/2132/407 1108/2140/412 1109/2141/413 -f 1099/2129/404 1098/2128/403 1110/2142/150 1111/2143/414 -f 1095/2125/401 1094/2124/400 1112/2144/415 1113/2145/416 -f 1105/2135/410 1107/2139/411 1114/2146/152 1115/2147/417 -f 1098/2128/403 1103/2133/408 1109/2141/413 1110/2142/150 -f 1094/2124/400 1099/2129/404 1111/2143/414 1112/2144/415 -f 1107/2137/411 1095/2125/401 1113/2145/416 1114/2148/152 -f 1102/2132/407 1105/2135/410 1115/2147/417 1108/2140/412 -f 1114/2148/152 1113/2145/416 1116/2149/318 1117/2150/136 -f 1108/2140/412 1115/2147/417 1118/2151/317 1119/2152/322 -f 1109/2141/413 1108/2140/412 1119/2152/322 1120/2153/418 -f 1111/2143/414 1110/2142/150 1121/2154/132 1122/2155/419 -f 1113/2145/416 1112/2144/415 1123/2156/319 1116/2149/318 -f 1115/2147/417 1114/2146/152 1117/2157/136 1118/2151/317 -f 1110/2142/150 1109/2141/413 1120/2153/418 1121/2154/132 -f 1112/2144/415 1111/2143/414 1122/2155/419 1123/2156/319 -f 1121/2154/132 1120/2153/418 1124/2158/420 1125/2159/421 -f 1123/2156/319 1122/2155/419 1126/2160/422 1127/2161/423 -f 1117/2150/136 1116/2149/318 1128/2162/424 1129/2163/425 -f 1119/2152/322 1118/2151/317 1130/2164/426 1131/2165/427 -f 1120/2153/418 1119/2152/322 1131/2165/427 1124/2158/420 -f 1122/2155/419 1121/2154/132 1125/2159/421 1126/2160/422 -f 1116/2149/318 1123/2156/319 1127/2161/423 1128/2162/424 -f 1118/2151/317 1117/2157/136 1129/2166/425 1130/2164/426 -f 1132/2167/292 1133/2168/428 1064/1250/428 1061/1247/292 -f 1134/2169/429 1135/2170/430 1052/1238/430 1066/1252/429 -f 1136/2171/291 1137/2172/431 1056/1242/431 1053/1239/291 -f 1138/2173/432 1139/2174/433 1060/1246/433 1057/1243/432 -f 1133/2168/428 1134/2175/429 1066/1254/429 1064/1250/428 -f 1135/2170/430 1136/2171/291 1053/1239/291 1052/1238/430 -f 1137/2172/431 1138/2173/432 1057/1243/432 1056/1242/431 -f 1139/2174/433 1132/2167/292 1061/1247/292 1060/1246/433 -f 1069/2176/431 1068/2177/291 1078/1266/291 1081/1269/431 -f 1063/1249/433 1062/1248/292 1077/1265/292 1076/1264/433 -f 1070/2178/432 1069/2176/431 1081/1269/431 1083/1271/432 -f 1062/1248/292 1065/1251/428 1080/1268/428 1077/1265/292 -f 1071/2179/433 1070/2180/432 1083/1275/432 1085/1274/433 -f 1065/1251/428 1067/1255/429 1082/1270/429 1080/1268/428 -f 1072/2181/292 1071/2179/433 1085/1274/433 1087/1277/292 -f 1067/1253/429 1055/1241/430 1084/1273/430 1082/1272/429 -f 1058/1244/432 1063/1249/433 1076/1264/433 1090/1280/432 -f 1068/2177/291 1075/2182/430 1079/1267/430 1078/1266/291 -f 1059/1245/431 1058/1244/432 1090/1280/432 1088/1278/431 -f 1075/2182/430 1074/2183/429 1091/1281/429 1079/1267/430 -f 1054/1240/291 1059/1245/431 1088/1278/431 1086/1276/291 -f 1074/2183/429 1073/2184/428 1089/1279/428 1091/1281/429 -f 1055/1241/430 1054/1240/291 1086/1276/291 1084/1273/430 -f 1073/2184/428 1072/2181/292 1087/1277/292 1089/1279/428 -f 1180/2185/434 1181/2186/435 1182/2187/436 1183/2188/437 -f 1184/2189/438 1185/2190/439 1186/2191/440 1187/2192/441 -f 1188/2193/442 1189/2194/443 1190/2195/444 1191/2196/445 -f 1189/2194/443 1192/2197/446 1193/2198/447 1190/2195/444 -f 1194/2199/448 1180/2185/434 1183/2188/437 1195/2200/449 -f 1181/2186/435 1184/2189/438 1187/2192/441 1182/2187/436 -f 1185/2190/439 1188/2193/442 1191/2196/445 1186/2191/440 -f 1192/2197/446 1194/2201/448 1195/2202/449 1193/2198/447 -f 1191/2196/445 1190/2195/444 1196/2203/450 1197/2204/451 -f 1187/2192/441 1186/2191/440 1198/2205/452 1199/2206/453 -f 1183/2188/437 1182/2187/436 1200/2207/454 1201/2208/455 -f 1193/2198/447 1195/2202/449 1202/2209/456 1203/2210/457 -f 1186/2191/440 1191/2196/445 1197/2204/451 1198/2205/452 -f 1182/2187/436 1187/2192/441 1199/2206/453 1200/2207/454 -f 1195/2200/449 1183/2188/437 1201/2208/455 1202/2211/456 -f 1190/2195/444 1193/2198/447 1203/2210/457 1196/2203/450 -f 1202/2211/456 1201/2208/455 1204/2212/458 1205/2213/136 -f 1196/2203/450 1203/2210/457 1206/2214/459 1207/2215/460 -f 1197/2204/451 1196/2203/450 1207/2215/460 1208/2216/461 -f 1199/2206/453 1198/2205/452 1209/2217/132 1210/2218/462 -f 1201/2208/455 1200/2207/454 1211/2219/463 1204/2212/458 -f 1203/2210/457 1202/2209/456 1205/2220/136 1206/2214/459 -f 1198/2205/452 1197/2204/451 1208/2216/461 1209/2217/132 -f 1200/2207/454 1199/2206/453 1210/2218/462 1211/2219/463 -f 1209/2217/132 1208/2216/461 1212/2221/464 1213/2222/465 -f 1211/2219/463 1210/2218/462 1214/2223/466 1215/2224/467 -f 1205/2213/136 1204/2212/458 1216/2225/468 1217/2226/469 -f 1207/2215/460 1206/2214/459 1218/2227/470 1219/2228/471 -f 1208/2216/461 1207/2215/460 1219/2228/471 1212/2221/464 -f 1210/2218/462 1209/2217/132 1213/2222/465 1214/2223/466 -f 1204/2212/458 1211/2219/463 1215/2224/467 1216/2225/468 -f 1206/2214/459 1205/2220/136 1217/2229/469 1218/2227/470 -f 1220/2230/289 1221/2231/472 1152/1294/472 1149/1291/289 -f 1222/2232/473 1223/2233/474 1140/1282/474 1154/1296/473 -f 1224/2234/295 1225/2235/475 1144/1286/475 1141/1283/295 -f 1226/2236/476 1227/2237/477 1148/1290/477 1145/1287/476 -f 1221/2231/472 1222/2238/473 1154/1298/473 1152/1294/472 -f 1223/2233/474 1224/2234/295 1141/1283/295 1140/1282/474 -f 1225/2235/475 1226/2236/476 1145/1287/476 1144/1286/475 -f 1227/2237/477 1220/2230/289 1149/1291/289 1148/1290/477 -f 1157/2239/475 1156/2240/295 1166/1310/295 1169/1313/475 -f 1151/1293/477 1150/1292/289 1165/1309/289 1164/1308/477 -f 1158/2241/476 1157/2239/475 1169/1313/475 1171/1315/476 -f 1150/1292/289 1153/1295/472 1168/1312/472 1165/1309/289 -f 1159/2242/477 1158/2243/476 1171/1319/476 1173/1318/477 -f 1153/1295/472 1155/1299/473 1170/1314/473 1168/1312/472 -f 1160/2244/289 1159/2242/477 1173/1318/477 1175/1321/289 -f 1155/1297/473 1143/1285/474 1172/1317/474 1170/1316/473 -f 1146/1288/476 1151/1293/477 1164/1308/477 1178/1324/476 -f 1156/2240/295 1163/2245/474 1167/1311/474 1166/1310/295 -f 1147/1289/475 1146/1288/476 1178/1324/476 1176/1322/475 -f 1163/2245/474 1162/2246/473 1179/1325/473 1167/1311/474 -f 1142/1284/295 1147/1289/475 1176/1322/475 1174/1320/295 -f 1162/2246/473 1161/2247/472 1177/1323/472 1179/1325/473 -f 1143/1285/474 1142/1284/295 1174/1320/295 1172/1317/474 -f 1161/2247/472 1160/2244/289 1175/1321/289 1177/1323/472 -f 1268/2248/478 1269/2249/479 1270/2250/480 1271/2251/481 -f 1272/2252/482 1273/2253/483 1274/2254/484 1275/2255/485 -f 1276/2256/486 1277/2257/487 1278/2258/488 1279/2259/489 -f 1277/2257/487 1280/2260/490 1281/2261/491 1278/2258/488 -f 1282/2262/492 1268/2248/478 1271/2251/481 1283/2263/493 -f 1269/2249/479 1272/2252/482 1275/2255/485 1270/2250/480 -f 1273/2253/483 1276/2256/486 1279/2259/489 1274/2254/484 -f 1280/2260/490 1282/2264/492 1283/2265/493 1281/2261/491 -f 1279/2259/489 1278/2258/488 1284/2266/494 1285/2267/495 -f 1275/2255/485 1274/2254/484 1286/2268/496 1287/2269/497 -f 1271/2251/481 1270/2250/480 1288/2270/498 1289/2271/499 -f 1281/2261/491 1283/2265/493 1290/2272/500 1291/2273/501 -f 1274/2254/484 1279/2259/489 1285/2267/495 1286/2268/496 -f 1270/2250/480 1275/2255/485 1287/2269/497 1288/2270/498 -f 1283/2263/493 1271/2251/481 1289/2271/499 1290/2274/500 -f 1278/2258/488 1281/2261/491 1291/2273/501 1284/2266/494 -f 1290/2274/500 1289/2271/499 1292/2275/459 1293/2276/136 -f 1284/2266/494 1291/2273/501 1294/2277/458 1295/2278/463 -f 1285/2267/495 1284/2266/494 1295/2278/463 1296/2279/502 -f 1287/2269/497 1286/2268/496 1297/2280/132 1298/2281/503 -f 1289/2271/499 1288/2270/498 1299/2282/460 1292/2275/459 -f 1291/2273/501 1290/2272/500 1293/2283/136 1294/2277/458 -f 1286/2268/496 1285/2267/495 1296/2279/502 1297/2280/132 -f 1288/2270/498 1287/2269/497 1298/2281/503 1299/2282/460 -f 1297/2280/132 1296/2279/502 1300/2284/504 1301/2285/505 -f 1299/2282/460 1298/2281/503 1302/2286/506 1303/2287/507 -f 1293/2276/136 1292/2275/459 1304/2288/508 1305/2289/509 -f 1295/2278/463 1294/2277/458 1306/2290/510 1307/2291/511 -f 1296/2279/502 1295/2278/463 1307/2291/511 1300/2284/504 -f 1298/2281/503 1297/2280/132 1301/2285/505 1302/2286/506 -f 1292/2275/459 1299/2282/460 1303/2287/507 1304/2288/508 -f 1294/2277/458 1293/2283/136 1305/2292/509 1306/2290/510 -f 1308/2293/295 1309/2294/512 1240/1338/512 1237/1335/295 -f 1310/2295/513 1311/2296/514 1228/1326/514 1242/1340/513 -f 1312/2297/289 1313/2298/515 1232/1330/515 1229/1327/289 -f 1314/2299/516 1315/2300/517 1236/1334/517 1233/1331/516 -f 1309/2294/512 1310/2301/513 1242/1342/513 1240/1338/512 -f 1311/2296/514 1312/2297/289 1229/1327/289 1228/1326/514 -f 1313/2298/515 1314/2299/516 1233/1331/516 1232/1330/515 -f 1315/2300/517 1308/2293/295 1237/1335/295 1236/1334/517 -f 1245/2302/515 1244/2303/289 1254/1354/289 1257/1357/515 -f 1239/1337/517 1238/1336/295 1253/1353/295 1252/1352/517 -f 1246/2304/516 1245/2302/515 1257/1357/515 1259/1359/516 -f 1238/1336/295 1241/1339/512 1256/1356/512 1253/1353/295 -f 1247/2305/517 1246/2306/516 1259/1363/516 1261/1362/517 -f 1241/1339/512 1243/1343/513 1258/1358/513 1256/1356/512 -f 1248/2307/295 1247/2305/517 1261/1362/517 1263/1365/295 -f 1243/1341/513 1231/1329/514 1260/1361/514 1258/1360/513 -f 1234/1332/516 1239/1337/517 1252/1352/517 1266/1368/516 -f 1244/2303/289 1251/2308/514 1255/1355/514 1254/1354/289 -f 1235/1333/515 1234/1332/516 1266/1368/516 1264/1366/515 -f 1251/2308/514 1250/2309/513 1267/1369/513 1255/1355/514 -f 1230/1328/289 1235/1333/515 1264/1366/515 1262/1364/289 -f 1250/2309/513 1249/2310/512 1265/1367/512 1267/1369/513 -f 1231/1329/514 1230/1328/289 1262/1364/289 1260/1361/514 -f 1249/2310/512 1248/2307/295 1263/1365/295 1265/1367/512 -f 1356/2311/518 1357/2312/519 1358/2313/520 1359/2314/521 -f 1360/2315/522 1361/2316/523 1362/2317/524 1363/2318/525 -f 1364/2319/526 1365/2320/527 1366/2321/528 1367/2322/529 -f 1365/2320/527 1368/2323/530 1369/2324/531 1366/2321/528 -f 1370/2325/532 1356/2311/518 1359/2314/521 1371/2326/533 -f 1357/2312/519 1360/2315/522 1363/2318/525 1358/2313/520 -f 1361/2316/523 1364/2319/526 1367/2322/529 1362/2317/524 -f 1368/2323/530 1370/2327/532 1371/2328/533 1369/2324/531 -f 1367/2322/529 1366/2321/528 1372/2329/534 1373/2330/535 -f 1363/2318/525 1362/2317/524 1374/2331/392 1375/2332/536 -f 1359/2314/521 1358/2313/520 1376/2333/537 1377/2334/538 -f 1369/2324/531 1371/2328/533 1378/2335/539 1379/2336/540 -f 1362/2317/524 1367/2322/529 1373/2330/535 1374/2331/392 -f 1358/2313/520 1363/2318/525 1375/2332/536 1376/2333/537 -f 1371/2326/533 1359/2314/521 1377/2334/538 1378/2337/539 -f 1366/2321/528 1369/2324/531 1379/2336/540 1372/2329/534 -f 1378/2337/539 1377/2334/538 1380/2338/541 1381/2339/136 -f 1372/2329/534 1379/2336/540 1382/2340/542 1383/2341/543 -f 1373/2330/535 1372/2329/534 1383/2341/543 1384/2342/544 -f 1375/2332/536 1374/2331/392 1385/2343/132 1386/2344/545 -f 1377/2334/538 1376/2333/537 1387/2345/546 1380/2338/541 -f 1379/2336/540 1378/2335/539 1381/2346/136 1382/2340/542 -f 1374/2331/392 1373/2330/535 1384/2342/544 1385/2343/132 -f 1376/2333/537 1375/2332/536 1386/2344/545 1387/2345/546 -f 1385/2343/132 1384/2342/544 1388/2347/547 1389/2348/548 -f 1387/2345/546 1386/2344/545 1390/2349/549 1391/2350/550 -f 1381/2339/136 1380/2338/541 1392/2351/551 1393/2352/552 -f 1383/2341/543 1382/2340/542 1394/2353/553 1395/2354/554 -f 1384/2342/544 1383/2341/543 1395/2354/554 1388/2347/547 -f 1386/2344/545 1385/2343/132 1389/2348/548 1390/2349/549 -f 1380/2338/541 1387/2345/546 1391/2350/550 1392/2351/551 -f 1382/2340/542 1381/2346/136 1393/2355/552 1394/2353/553 -f 1396/2356/288 1397/2357/555 1328/1382/555 1325/1379/288 -f 1398/2358/556 1399/2359/557 1316/1370/557 1330/1384/556 -f 1400/2360/290 1401/2361/558 1320/1374/558 1317/1371/290 -f 1402/2362/559 1403/2363/560 1324/1378/560 1321/1375/559 -f 1397/2357/555 1398/2364/556 1330/1386/556 1328/1382/555 -f 1399/2359/557 1400/2360/290 1317/1371/290 1316/1370/557 -f 1401/2361/558 1402/2362/559 1321/1375/559 1320/1374/558 -f 1403/2363/560 1396/2356/288 1325/1379/288 1324/1378/560 -f 1333/2365/558 1332/2366/290 1342/1398/290 1345/1401/558 -f 1327/1381/560 1326/1380/288 1341/1397/288 1340/1396/560 -f 1334/2367/559 1333/2365/558 1345/1401/558 1347/1403/559 -f 1326/1380/288 1329/1383/555 1344/1400/555 1341/1397/288 -f 1335/2368/560 1334/2369/559 1347/1407/559 1349/1406/560 -f 1329/1383/555 1331/1387/556 1346/1402/556 1344/1400/555 -f 1336/2370/288 1335/2368/560 1349/1406/560 1351/1409/288 -f 1331/1385/556 1319/1373/557 1348/1405/557 1346/1404/556 -f 1322/1376/559 1327/1381/560 1340/1396/560 1354/1412/559 -f 1332/2366/290 1339/2371/557 1343/1399/557 1342/1398/290 -f 1323/1377/558 1322/1376/559 1354/1412/559 1352/1410/558 -f 1339/2371/557 1338/2372/556 1355/1413/556 1343/1399/557 -f 1318/1372/290 1323/1377/558 1352/1410/558 1350/1408/290 -f 1338/2372/556 1337/2373/555 1353/1411/555 1355/1413/556 -f 1319/1373/557 1318/1372/290 1350/1408/290 1348/1405/557 -f 1337/2373/555 1336/2370/288 1351/1409/288 1353/1411/555 -f 1444/2374/561 1445/2375/562 1446/2376/563 1447/2377/564 -f 1448/2378/565 1449/2379/566 1450/2380/567 1451/2381/568 -f 1452/2382/569 1453/2383/570 1454/2384/571 1455/2385/572 -f 1453/2383/570 1456/2386/573 1457/2387/574 1454/2384/571 -f 1458/2388/575 1444/2374/561 1447/2377/564 1459/2389/576 -f 1445/2375/562 1448/2378/565 1451/2381/568 1446/2376/563 -f 1449/2379/566 1452/2382/569 1455/2385/572 1450/2380/567 -f 1456/2386/573 1458/2390/575 1459/2391/576 1457/2387/574 -f 1455/2385/572 1454/2384/571 1460/2392/577 1461/2393/578 -f 1451/2381/568 1450/2380/567 1462/2394/579 1463/2395/580 -f 1447/2377/564 1446/2376/563 1464/2396/581 1465/2397/582 -f 1457/2387/574 1459/2391/576 1466/2398/583 1467/2399/584 -f 1450/2380/567 1455/2385/572 1461/2393/578 1462/2394/579 -f 1446/2376/563 1451/2381/568 1463/2395/580 1464/2396/581 -f 1459/2389/576 1447/2377/564 1465/2397/582 1466/2400/583 -f 1454/2384/571 1457/2387/574 1467/2399/584 1460/2392/577 -f 1466/2400/583 1465/2397/582 1468/2401/542 1469/2402/136 -f 1460/2392/577 1467/2399/584 1470/2403/541 1471/2404/546 -f 1461/2393/578 1460/2392/577 1471/2404/546 1472/2405/545 -f 1463/2395/580 1462/2394/579 1473/2406/132 1474/2407/544 -f 1465/2397/582 1464/2396/581 1475/2408/543 1468/2401/542 -f 1467/2399/584 1466/2398/583 1469/2409/136 1470/2403/541 -f 1462/2394/579 1461/2393/578 1472/2405/545 1473/2406/132 -f 1464/2396/581 1463/2395/580 1474/2407/544 1475/2408/543 -f 1473/2406/132 1472/2405/545 1476/2410/585 1477/2411/586 -f 1475/2408/543 1474/2407/544 1478/2412/587 1479/2413/588 -f 1469/2402/136 1468/2401/542 1480/2414/589 1481/2415/590 -f 1471/2404/546 1470/2403/541 1482/2416/591 1483/2417/592 -f 1472/2405/545 1471/2404/546 1483/2417/592 1476/2410/585 -f 1474/2407/544 1473/2406/132 1477/2411/586 1478/2412/587 -f 1468/2401/542 1475/2408/543 1479/2413/588 1480/2414/589 -f 1470/2403/541 1469/2409/136 1481/2418/590 1482/2416/591 -f 1484/2419/290 1485/2420/593 1416/1426/593 1413/1423/290 -f 1486/2421/594 1487/2422/595 1404/1414/595 1418/1428/594 -f 1488/2423/288 1489/2424/596 1408/1418/596 1405/1415/288 -f 1490/2425/597 1491/2426/598 1412/1422/598 1409/1419/597 -f 1485/2420/593 1486/2427/594 1418/1430/594 1416/1426/593 -f 1487/2422/595 1488/2423/288 1405/1415/288 1404/1414/595 -f 1489/2424/596 1490/2425/597 1409/1419/597 1408/1418/596 -f 1491/2426/598 1484/2419/290 1413/1423/290 1412/1422/598 -f 1421/2428/596 1420/2429/288 1430/1442/288 1433/1445/596 -f 1415/1425/598 1414/1424/290 1429/1441/290 1428/1440/598 -f 1422/2430/597 1421/2428/596 1433/1445/596 1435/1447/597 -f 1414/1424/290 1417/1427/593 1432/1444/593 1429/1441/290 -f 1423/2431/598 1422/2432/597 1435/1451/597 1437/1450/598 -f 1417/1427/593 1419/1431/594 1434/1446/594 1432/1444/593 -f 1424/2433/290 1423/2431/598 1437/1450/598 1439/1453/290 -f 1419/1429/594 1407/1417/595 1436/1449/595 1434/1448/594 -f 1410/1420/597 1415/1425/598 1428/1440/598 1442/1456/597 -f 1420/2429/288 1427/2434/595 1431/1443/595 1430/1442/288 -f 1411/1421/596 1410/1420/597 1442/1456/597 1440/1454/596 -f 1427/2434/595 1426/2435/594 1443/1457/594 1431/1443/595 -f 1406/1416/288 1411/1421/596 1440/1454/596 1438/1452/288 -f 1426/2435/594 1425/2436/593 1441/1455/593 1443/1457/594 -f 1407/1417/595 1406/1416/288 1438/1452/288 1436/1449/595 -f 1425/2436/593 1424/2433/290 1439/1453/290 1441/1455/593 -f 1532/2437/599 1533/2438/600 1534/2439/601 1535/2440/602 -f 1536/2441/603 1537/2442/604 1538/2443/605 1539/2444/606 -f 1540/2445/607 1541/2446/608 1542/2447/609 1543/2448/610 -f 1541/2446/608 1544/2449/611 1545/2450/612 1542/2447/609 -f 1546/2451/613 1532/2437/599 1535/2440/602 1547/2452/614 -f 1533/2438/600 1536/2441/603 1539/2444/606 1534/2439/601 -f 1537/2442/604 1540/2445/607 1543/2448/610 1538/2443/605 -f 1544/2449/611 1546/2453/613 1547/2454/614 1545/2450/612 -f 1543/2448/610 1542/2447/609 1548/2455/615 1549/2456/616 -f 1539/2444/606 1538/2443/605 1550/2457/617 1551/2458/618 -f 1535/2440/602 1534/2439/601 1552/2459/619 1553/2460/620 -f 1545/2450/612 1547/2454/614 1554/2461/621 1555/2462/622 -f 1538/2443/605 1543/2448/610 1549/2456/616 1550/2457/617 -f 1534/2439/601 1539/2444/606 1551/2458/618 1552/2459/619 -f 1547/2452/614 1535/2440/602 1553/2460/620 1554/2463/621 -f 1542/2447/609 1545/2450/612 1555/2462/622 1548/2455/615 -f 1554/2463/621 1553/2460/620 1556/2464/623 1557/2465/136 -f 1548/2455/615 1555/2462/622 1558/2466/624 1559/2467/625 -f 1549/2456/616 1548/2455/615 1559/2467/625 1560/2468/626 -f 1551/2458/618 1550/2457/617 1561/2469/132 1562/2470/627 -f 1553/2460/620 1552/2459/619 1563/2471/628 1556/2464/623 -f 1555/2462/622 1554/2461/621 1557/2472/136 1558/2466/624 -f 1550/2457/617 1549/2456/616 1560/2468/626 1561/2469/132 -f 1552/2459/619 1551/2458/618 1562/2470/627 1563/2471/628 -f 1561/2469/132 1560/2468/626 1564/2473/629 1565/2474/630 -f 1563/2471/628 1562/2470/627 1566/2475/631 1567/2476/632 -f 1557/2465/136 1556/2464/623 1568/2477/633 1569/2478/634 -f 1559/2467/625 1558/2466/624 1570/2479/635 1571/2480/636 -f 1560/2468/626 1559/2467/625 1571/2480/636 1564/2473/629 -f 1562/2470/627 1561/2469/132 1565/2474/630 1566/2475/631 -f 1556/2464/623 1563/2471/628 1567/2476/632 1568/2477/633 -f 1558/2466/624 1557/2472/136 1569/2481/634 1570/2479/635 -f 1572/2482/294 1573/2483/637 1504/1470/637 1501/1467/294 -f 1574/2484/638 1575/2485/639 1492/1458/639 1506/1472/638 -f 1576/2486/293 1577/2487/640 1496/1462/640 1493/1459/293 -f 1578/2488/641 1579/2489/642 1500/1466/642 1497/1463/641 -f 1573/2483/637 1574/2490/638 1506/1474/638 1504/1470/637 -f 1575/2485/639 1576/2486/293 1493/1459/293 1492/1458/639 -f 1577/2487/640 1578/2488/641 1497/1463/641 1496/1462/640 -f 1579/2489/642 1572/2482/294 1501/1467/294 1500/1466/642 -f 1509/2491/640 1508/2492/293 1518/1486/293 1521/1489/640 -f 1503/1469/642 1502/1468/294 1517/1485/294 1516/1484/642 -f 1510/2493/641 1509/2491/640 1521/1489/640 1523/1491/641 -f 1502/1468/294 1505/1471/637 1520/1488/637 1517/1485/294 -f 1511/2494/642 1510/2495/641 1523/1495/641 1525/1494/642 -f 1505/1471/637 1507/1475/638 1522/1490/638 1520/1488/637 -f 1512/2496/294 1511/2494/642 1525/1494/642 1527/1497/294 -f 1507/1473/638 1495/1461/639 1524/1493/639 1522/1492/638 -f 1498/1464/641 1503/1469/642 1516/1484/642 1530/1500/641 -f 1508/2492/293 1515/2497/639 1519/1487/639 1518/1486/293 -f 1499/1465/640 1498/1464/641 1530/1500/641 1528/1498/640 -f 1515/2497/639 1514/2498/638 1531/1501/638 1519/1487/639 -f 1494/1460/293 1499/1465/640 1528/1498/640 1526/1496/293 -f 1514/2498/638 1513/2499/637 1529/1499/637 1531/1501/638 -f 1495/1461/639 1494/1460/293 1526/1496/293 1524/1493/639 -f 1513/2499/637 1512/2496/294 1527/1497/294 1529/1499/637 -f 1620/2500/643 1621/2501/644 1622/2502/645 1623/2503/646 -f 1624/2504/647 1625/2505/648 1626/2506/649 1627/2507/650 -f 1628/2508/651 1629/2509/652 1630/2510/653 1631/2511/654 -f 1629/2509/652 1632/2512/655 1633/2513/656 1630/2510/653 -f 1634/2514/657 1620/2500/643 1623/2503/646 1635/2515/658 -f 1621/2501/644 1624/2504/647 1627/2507/650 1622/2502/645 -f 1625/2505/648 1628/2508/651 1631/2511/654 1626/2506/649 -f 1632/2512/655 1634/2516/657 1635/2517/658 1633/2513/656 -f 1631/2511/654 1630/2510/653 1636/2518/659 1637/2519/660 -f 1627/2507/650 1626/2506/649 1638/2520/383 1639/2521/661 -f 1623/2503/646 1622/2502/645 1640/2522/662 1641/2523/663 -f 1633/2513/656 1635/2517/658 1642/2524/664 1643/2525/665 -f 1626/2506/649 1631/2511/654 1637/2519/660 1638/2520/383 -f 1622/2502/645 1627/2507/650 1639/2521/661 1640/2522/662 -f 1635/2515/658 1623/2503/646 1641/2523/663 1642/2526/664 -f 1630/2510/653 1633/2513/656 1643/2525/665 1636/2518/659 -f 1642/2526/664 1641/2523/663 1644/2527/624 1645/2528/136 -f 1636/2518/659 1643/2525/665 1646/2529/623 1647/2530/628 -f 1637/2519/660 1636/2518/659 1647/2530/628 1648/2531/627 -f 1639/2521/661 1638/2520/383 1649/2532/132 1650/2533/626 -f 1641/2523/663 1640/2522/662 1651/2534/625 1644/2527/624 -f 1643/2525/665 1642/2524/664 1645/2535/136 1646/2529/623 -f 1638/2520/383 1637/2519/660 1648/2531/627 1649/2532/132 -f 1640/2522/662 1639/2521/661 1650/2533/626 1651/2534/625 -f 1649/2532/132 1648/2531/627 1652/2536/666 1653/2537/667 -f 1651/2534/625 1650/2533/626 1654/2538/668 1655/2539/669 -f 1645/2528/136 1644/2527/624 1656/2540/670 1657/2541/671 -f 1647/2530/628 1646/2529/623 1658/2542/672 1659/2543/673 -f 1648/2531/627 1647/2530/628 1659/2543/673 1652/2536/666 -f 1650/2533/626 1649/2532/132 1653/2537/667 1654/2538/668 -f 1644/2527/624 1651/2534/625 1655/2539/669 1656/2540/670 -f 1646/2529/623 1645/2535/136 1657/2544/671 1658/2542/672 -f 1660/2545/293 1661/2546/674 1592/1514/674 1589/1511/293 -f 1662/2547/675 1663/2548/676 1580/1502/676 1594/1516/675 -f 1664/2549/294 1665/2550/677 1584/1506/677 1581/1503/294 -f 1666/2551/678 1667/2552/679 1588/1510/679 1585/1507/678 -f 1661/2546/674 1662/2553/675 1594/1518/675 1592/1514/674 -f 1663/2548/676 1664/2549/294 1581/1503/294 1580/1502/676 -f 1665/2550/677 1666/2551/678 1585/1507/678 1584/1506/677 -f 1667/2552/679 1660/2545/293 1589/1511/293 1588/1510/679 -f 1597/2554/677 1596/2555/294 1606/1530/294 1609/1533/677 -f 1591/1513/679 1590/1512/293 1605/1529/293 1604/1528/679 -f 1598/2556/678 1597/2554/677 1609/1533/677 1611/1535/678 -f 1590/1512/293 1593/1515/674 1608/1532/674 1605/1529/293 -f 1599/2557/679 1598/2558/678 1611/1539/678 1613/1538/679 -f 1593/1515/674 1595/1519/675 1610/1534/675 1608/1532/674 -f 1600/2559/293 1599/2557/679 1613/1538/679 1615/1541/293 -f 1595/1517/675 1583/1505/676 1612/1537/676 1610/1536/675 -f 1586/1508/678 1591/1513/679 1604/1528/679 1618/1544/678 -f 1596/2555/294 1603/2560/676 1607/1531/676 1606/1530/294 -f 1587/1509/677 1586/1508/678 1618/1544/678 1616/1542/677 -f 1603/2560/676 1602/2561/675 1619/1545/675 1607/1531/676 -f 1582/1504/294 1587/1509/677 1616/1542/677 1614/1540/294 -f 1602/2561/675 1601/2562/674 1617/1543/674 1619/1545/675 -f 1583/1505/676 1582/1504/294 1614/1540/294 1612/1537/676 -f 1601/2562/674 1600/2559/293 1615/1541/293 1617/1543/674 -f 1800/2563/128 1796/2564/125 1801/2565/680 1805/2566/681 -f 1797/2567/131 1798/2568/292 1803/2569/682 1802/2570/683 -f 1799/2571/293 1800/2563/128 1805/2566/681 1804/2572/684 -f 1796/2564/125 1797/2567/131 1802/2570/683 1801/2565/680 -f 1802/2570/683 1803/2569/682 1808/2573/685 1807/2574/686 -f 1804/2572/684 1805/2566/681 1810/2575/687 1809/2576/688 -f 1801/2565/680 1802/2570/683 1807/2574/686 1806/2577/170 -f 1805/2566/681 1801/2565/680 1806/2577/170 1810/2575/687 -f 1810/2575/687 1806/2577/170 1811/2578/312 1815/2579/689 -f 1807/2574/686 1808/2573/685 1813/2580/690 1812/2581/691 -f 1809/2576/688 1810/2575/687 1815/2579/689 1814/2582/692 -f 1806/2577/170 1807/2574/686 1812/2581/691 1811/2578/312 -f 1820/2583/128 1816/2584/125 1821/2585/680 1825/2586/681 -f 1817/2587/131 1818/2588/292 1823/2589/682 1822/2590/683 -f 1819/2591/293 1820/2583/128 1825/2586/681 1824/2592/684 -f 1816/2584/125 1817/2587/131 1822/2590/683 1821/2585/680 -f 1822/2590/683 1823/2589/682 1828/2593/685 1827/2594/686 -f 1824/2592/684 1825/2586/681 1830/2595/687 1829/2596/688 -f 1821/2585/680 1822/2590/683 1827/2594/686 1826/2597/170 -f 1825/2586/681 1821/2585/680 1826/2597/170 1830/2595/687 -f 1830/2595/687 1826/2597/170 1831/2598/312 1835/2599/689 -f 1827/2594/686 1828/2593/685 1833/2600/690 1832/2601/691 -f 1829/2596/688 1830/2595/687 1835/2599/689 1834/2602/692 -f 1826/2597/170 1827/2594/686 1832/2601/691 1831/2598/312 -f 1840/2603/128 1836/2604/125 1841/2605/680 1845/2606/681 -f 1837/2607/131 1838/2608/292 1843/2609/682 1842/2610/683 -f 1839/2611/293 1840/2603/128 1845/2606/681 1844/2612/684 -f 1836/2604/125 1837/2607/131 1842/2610/683 1841/2605/680 -f 1842/2610/683 1843/2609/682 1848/2613/685 1847/2614/686 -f 1844/2612/684 1845/2606/681 1850/2615/687 1849/2616/688 -f 1841/2605/680 1842/2610/683 1847/2614/686 1846/2617/170 -f 1845/2606/681 1841/2605/680 1846/2617/170 1850/2615/687 -f 1850/2615/687 1846/2617/170 1851/2618/312 1855/2619/689 -f 1847/2614/686 1848/2613/685 1853/2620/690 1852/2621/691 -f 1849/2616/688 1850/2615/687 1855/2619/689 1854/2622/692 -f 1846/2617/170 1847/2614/686 1852/2621/691 1851/2618/312 +f 1887/2680/725 1888/2681/725 1889/2682/725 +f 1889/2682/725 1890/2683/725 1891/2684/725 +f 1891/2684/725 1892/2685/725 1889/2682/725 +f 1892/2685/725 1893/2686/725 1889/2682/725 +f 1893/2686/725 1894/2687/725 1887/2680/725 +f 1887/2680/725 1895/2688/725 1888/2681/725 +f 1888/2681/725 1896/2689/725 1889/2682/725 +f 1896/2689/725 1897/2690/725 1889/2682/725 +f 1897/2690/725 1898/2691/725 1889/2682/725 +f 1893/2686/725 1887/2680/725 1889/2682/725 diff --git a/src/main/resources/assets/hbm/models/weapons/cryo_cannon_alt.obj b/src/main/resources/assets/hbm/models/weapons/cryo_cannon_alt.obj deleted file mode 100644 index 9276f71a0..000000000 --- a/src/main/resources/assets/hbm/models/weapons/cryo_cannon_alt.obj +++ /dev/null @@ -1,8217 +0,0 @@ -# Blender v2.79 (sub 0) OBJ File: 'cryo_cannon_alt.blend' -# www.blender.org -o Plane.004 -v -0.437500 2.102596 -3.042822 -v -0.483253 2.144063 -3.023486 -v -0.500000 2.200707 -2.997072 -v -0.483253 2.257351 -2.970659 -v -0.437500 2.298818 -2.951323 -v -0.375000 2.313995 -2.944245 -v -0.312500 2.298818 -2.951323 -v -0.266747 2.257351 -2.970659 -v -0.250000 2.200707 -2.997072 -v -0.266747 2.144063 -3.023486 -v -0.312500 2.102596 -3.042822 -v -0.375000 2.087419 -3.049900 -vt 0.500000 0.000000 -vt 0.066987 0.250000 -vt 0.500000 1.000000 -vt 0.750000 0.933013 -vt 0.933013 0.750000 -vt 1.000000 0.500000 -vt 0.933013 0.250000 -vt 0.750000 0.066987 -vt 0.250000 0.066987 -vt 0.000000 0.500000 -vt 0.066987 0.750000 -vt 0.250000 0.933013 -vn -0.0000 0.4226 -0.9063 -s off -f 6/1/1 8/2/1 12/3/1 -f 12/3/1 1/4/1 2/5/1 -f 2/5/1 3/6/1 12/3/1 -f 3/6/1 4/7/1 12/3/1 -f 4/7/1 5/8/1 6/1/1 -f 6/1/1 7/9/1 8/2/1 -f 8/2/1 9/10/1 12/3/1 -f 9/10/1 10/11/1 12/3/1 -f 10/11/1 11/12/1 12/3/1 -f 4/7/1 6/1/1 12/3/1 -o Plane.003 -v -0.216506 2.340409 -3.000889 -v -0.250000 2.227120 -3.053716 -v -0.216506 2.113832 -3.106544 -v -0.125000 2.030899 -3.145216 -v 0.000000 2.000544 -3.159371 -v 0.125000 2.030899 -3.145216 -v 0.216506 2.113832 -3.106544 -v 0.250000 2.227120 -3.053716 -v 0.216506 2.340409 -3.000889 -v 0.125000 2.423342 -2.962217 -v 0.000000 2.453697 -2.948062 -v -0.125000 2.423342 -2.962217 -vt 0.500000 0.000000 -vt 0.066987 0.250000 -vt 0.066987 0.750000 -vt 0.250000 0.933013 -vt 0.500000 1.000000 -vt 0.750000 0.933013 -vt 0.933013 0.750000 -vt 1.000000 0.500000 -vt 0.933013 0.250000 -vt 0.750000 0.066987 -vt 0.250000 0.066987 -vt 0.000000 0.500000 -vn 0.0000 0.4226 -0.9063 -s off -f 17/13/2 15/14/2 13/15/2 -f 13/15/2 24/16/2 23/17/2 -f 23/17/2 22/18/2 21/19/2 -f 21/19/2 20/20/2 19/21/2 -f 19/21/2 18/22/2 17/13/2 -f 17/13/2 16/23/2 15/14/2 -f 15/14/2 14/24/2 13/15/2 -f 13/15/2 23/17/2 17/13/2 -f 23/17/2 21/19/2 17/13/2 -f 21/19/2 19/21/2 17/13/2 -o Plane.002 -v -0.109472 2.437500 -0.413125 -v 0.003817 2.437500 -0.360298 -v 0.109472 2.437500 -0.586875 -v -0.003817 2.437500 -0.639702 -v 0.109472 2.312500 -0.586875 -v -0.003817 2.312500 -0.639702 -v -0.109472 2.312500 -0.413125 -v 0.003817 2.312500 -0.360298 -v 0.109472 0.062500 -0.413125 -v -0.003817 0.062500 -0.360298 -v -0.109472 0.062500 -0.586875 -v 0.003816 0.062500 -0.639702 -v -0.109472 0.187500 -0.586875 -v 0.003816 0.187500 -0.639702 -v 0.109472 0.187500 -0.413125 -v -0.003817 0.187500 -0.360298 -v 1.187500 1.359472 -0.413125 -v 1.187500 1.246183 -0.360298 -v 1.187500 1.140528 -0.586875 -v 1.187500 1.253817 -0.639702 -v 1.062500 1.140528 -0.586875 -v 1.062500 1.253817 -0.639702 -v 1.062500 1.359472 -0.413125 -v 1.062500 1.246183 -0.360298 -v -1.187500 1.140528 -0.413125 -v -1.187500 1.253817 -0.360298 -v -1.187500 1.359473 -0.586875 -v -1.187500 1.246184 -0.639702 -v -1.062500 1.359473 -0.586875 -v -1.062500 1.246184 -0.639702 -v -1.062500 1.140528 -0.413125 -v -1.062500 1.253817 -0.360298 -v 0.762281 2.167098 -0.413125 -v 0.842388 2.086991 -0.360298 -v 0.917098 2.012281 -0.586875 -v 0.836990 2.092388 -0.639702 -v 0.828709 1.923892 -0.586875 -v 0.748602 2.004000 -0.639702 -v 0.673892 2.078710 -0.413125 -v 0.754000 1.998602 -0.360298 -v -0.762281 0.332902 -0.413125 -v -0.842388 0.413010 -0.360298 -v -0.917098 0.487720 -0.586875 -v -0.836991 0.407612 -0.639702 -v -0.828710 0.576108 -0.586875 -v -0.748602 0.496001 -0.639702 -v -0.673892 0.421291 -0.413125 -v -0.754000 0.501398 -0.360298 -v 0.917098 0.487720 -0.413125 -v 0.836990 0.407612 -0.360298 -v 0.762280 0.332902 -0.586875 -v 0.842388 0.413010 -0.639702 -v 0.673892 0.421291 -0.586875 -v 0.753999 0.501398 -0.639702 -v 0.828709 0.576108 -0.413125 -v 0.748602 0.496001 -0.360298 -v -0.917098 2.012281 -0.413125 -v -0.836990 2.092388 -0.360298 -v -0.762281 2.167098 -0.586875 -v -0.842388 2.086991 -0.639702 -v -0.673892 2.078710 -0.586875 -v -0.754000 1.998602 -0.639702 -v -0.828709 1.923893 -0.413125 -v -0.748602 2.004000 -0.360298 -v 1.083141 0.751056 -0.413125 -v 1.026497 0.652945 -0.360298 -v 0.973669 0.561444 -0.586875 -v 1.030313 0.659555 -0.639702 -v 0.865416 0.623944 -0.586875 -v 0.922060 0.722055 -0.639702 -v 0.974888 0.813556 -0.413125 -v 0.918243 0.715445 -0.360298 -v -1.083141 1.748945 -0.413125 -v -1.026497 1.847056 -0.360298 -v -0.973669 1.938556 -0.586875 -v -1.030313 1.840445 -0.639702 -v -0.865416 1.876056 -0.586875 -v -0.922060 1.777945 -0.639702 -v -0.974888 1.686445 -0.413125 -v -0.918244 1.784556 -0.360298 -v -0.498944 0.166859 -0.413125 -v -0.597055 0.223504 -0.360298 -v -0.688556 0.276331 -0.586875 -v -0.590445 0.219687 -0.639702 -v -0.626056 0.384585 -0.586875 -v -0.527945 0.327940 -0.639702 -v -0.436444 0.275112 -0.413125 -v -0.534555 0.331757 -0.360298 -v 0.498944 2.333141 -0.413125 -v 0.597055 2.276497 -0.360298 -v 0.688556 2.223669 -0.586875 -v 0.590445 2.280313 -0.639702 -v 0.626056 2.115416 -0.586875 -v 0.527945 2.172060 -0.639702 -v 0.436444 2.224888 -0.413125 -v 0.534555 2.168244 -0.360298 -v 0.413089 0.131297 -0.413125 -v 0.303661 0.101975 -0.360298 -v 0.201605 0.074630 -0.586875 -v 0.311034 0.103951 -0.639702 -v 0.169253 0.195371 -0.586875 -v 0.278682 0.224692 -0.639702 -v 0.380737 0.252038 -0.413125 -v 0.271308 0.222716 -0.360298 -v -0.413090 2.368703 -0.413125 -v -0.303661 2.398025 -0.360298 -v -0.201605 2.425371 -0.586875 -v -0.311034 2.396049 -0.639702 -v -0.169253 2.304630 -0.586875 -v -0.278682 2.275309 -0.639702 -v -0.380737 2.247963 -0.413125 -v -0.271308 2.277284 -0.360298 -v -1.118703 0.836911 -0.413125 -v -1.148025 0.946339 -0.360298 -v -1.175370 1.048395 -0.586875 -v -1.146049 0.938966 -0.639702 -v -1.054630 1.080747 -0.586875 -v -1.025308 0.971319 -0.639702 -v -0.997963 0.869263 -0.413125 -v -1.027284 0.978692 -0.360298 -v 1.118703 1.663090 -0.413125 -v 1.148025 1.553661 -0.360298 -v 1.175370 1.451605 -0.586875 -v 1.146049 1.561034 -0.639702 -v 1.054630 1.419253 -0.586875 -v 1.025308 1.528682 -0.639702 -v 0.997963 1.630737 -0.413125 -v 1.027284 1.521308 -0.360298 -v -0.973669 0.561445 -0.413125 -v -1.030313 0.659556 -0.360298 -v -1.083141 0.751056 -0.586875 -v -1.026497 0.652945 -0.639702 -v -0.974888 0.813556 -0.586875 -v -0.918244 0.715445 -0.639702 -v -0.865416 0.623945 -0.413125 -v -0.922060 0.722056 -0.360298 -v 0.973669 1.938556 -0.413125 -v 1.030313 1.840445 -0.360298 -v 1.083141 1.748944 -0.586875 -v 1.026497 1.847055 -0.639702 -v 0.974888 1.686444 -0.586875 -v 0.918244 1.784555 -0.639702 -v 0.865416 1.876056 -0.413125 -v 0.922060 1.777945 -0.360298 -v -0.688556 2.223669 -0.413125 -v -0.590444 2.280313 -0.360298 -v -0.498944 2.333141 -0.586875 -v -0.597055 2.276497 -0.639702 -v -0.436444 2.224888 -0.586875 -v -0.534555 2.168244 -0.639702 -v -0.626056 2.115416 -0.413125 -v -0.527944 2.172060 -0.360298 -v 0.688555 0.276331 -0.413125 -v 0.590444 0.219687 -0.360298 -v 0.498944 0.166859 -0.586875 -v 0.597055 0.223503 -0.639702 -v 0.436444 0.275112 -0.586875 -v 0.534555 0.331756 -0.639702 -v 0.626055 0.384584 -0.413125 -v 0.527944 0.327940 -0.360298 -v -1.175370 1.451606 -0.413125 -v -1.146049 1.561034 -0.360298 -v -1.118703 1.663090 -0.586875 -v -1.148025 1.553661 -0.639702 -v -0.997963 1.630738 -0.586875 -v -1.027284 1.521309 -0.639702 -v -1.054630 1.419253 -0.413125 -v -1.025308 1.528682 -0.360298 -v 1.175370 1.048394 -0.413125 -v 1.146049 0.938966 -0.360298 -v 1.118703 0.836910 -0.586875 -v 1.148024 0.946339 -0.639702 -v 0.997963 0.869263 -0.586875 -v 1.027284 0.978691 -0.639702 -v 1.054630 1.080747 -0.413125 -v 1.025308 0.971318 -0.360298 -v 0.201606 2.425370 -0.413125 -v 0.311034 2.396049 -0.360298 -v 0.413090 2.368703 -0.586875 -v 0.303661 2.398025 -0.639702 -v 0.380738 2.247962 -0.586875 -v 0.271309 2.277284 -0.639702 -v 0.169253 2.304630 -0.413125 -v 0.278682 2.275308 -0.360298 -v -0.201606 0.074630 -0.413125 -v -0.311035 0.103951 -0.360298 -v -0.413090 0.131297 -0.586875 -v -0.303662 0.101975 -0.639702 -v -0.380738 0.252038 -0.586875 -v -0.271309 0.222716 -0.639702 -v -0.169254 0.195371 -0.413125 -v -0.278682 0.224692 -0.360298 -vt 0.317241 0.125000 -vt 0.303448 0.109375 -vt 0.317241 0.109375 -vt 0.303448 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.125000 -vt 0.303448 0.140625 -vt 0.317241 0.093750 -vt 0.317241 0.125000 -vt 0.303448 0.109375 -vt 0.317241 0.109375 -vt 0.303448 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.125000 -vt 0.317241 0.140625 -vt 0.303448 0.140625 -vt 0.317241 0.093750 -vt 0.317241 0.125000 -vt 0.303448 0.109375 -vt 0.317241 0.109375 -vt 0.303448 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.125000 -vt 0.303448 0.140625 -vt 0.317241 0.093750 -vt 0.317241 0.125000 -vt 0.303448 0.109375 -vt 0.317241 0.109375 -vt 0.296552 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.125000 -vt 0.303448 0.140625 -vt 0.303448 0.125000 -vt 0.317241 0.093750 -vt 0.317241 0.125000 -vt 0.303448 0.109375 -vt 0.317241 0.109375 -vt 0.303448 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.109375 -vt 0.324138 0.125000 -vt 0.303448 0.140625 -vt 0.317241 0.093750 -vt 0.317241 0.125000 -vt 0.303448 0.109375 -vt 0.317241 0.109375 -vt 0.296552 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.109375 -vt 0.324138 0.125000 -vt 0.303448 0.140625 -vt 0.303448 0.125000 -vt 0.317241 0.093750 -vt 0.317241 0.125000 -vt 0.303448 0.109375 -vt 0.317241 0.109375 -vt 0.303448 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.125000 -vt 0.317241 0.140625 -vt 0.303448 0.140625 -vt 0.317241 0.093750 -vt 0.317241 0.125000 -vt 0.303448 0.109375 -vt 0.317241 0.109375 -vt 0.296552 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.125000 -vt 0.303448 0.125000 -vt 0.317241 0.140625 -vt 0.303448 0.140625 -vt 0.317241 0.093750 -vt 0.317241 0.125000 -vt 0.303448 0.109375 -vt 0.317241 0.109375 -vt 0.303448 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.125000 -vt 0.303448 0.140625 -vt 0.317241 0.093750 -vt 0.317241 0.125000 -vt 0.303448 0.109375 -vt 0.317241 0.109375 -vt 0.296552 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.109375 -vt 0.324138 0.125000 -vt 0.303448 0.140625 -vt 0.303448 0.125000 -vt 0.317241 0.093750 -vt 0.317241 0.125000 -vt 0.303448 0.109375 -vt 0.317241 0.109375 -vt 0.303448 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.125000 -vt 0.303448 0.140625 -vt 0.317241 0.093750 -vt 0.317241 0.125000 -vt 0.303448 0.109375 -vt 0.317241 0.109375 -vt 0.303448 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.109375 -vt 0.324138 0.125000 -vt 0.317241 0.140625 -vt 0.303448 0.140625 -vt 0.317241 0.093750 -vt 0.317241 0.125000 -vt 0.303448 0.109375 -vt 0.317241 0.109375 -vt 0.303448 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.125000 -vt 0.317241 0.140625 -vt 0.303448 0.140625 -vt 0.303448 0.093750 -vt 0.317241 0.093750 -vt 0.317241 0.125000 -vt 0.303448 0.109375 -vt 0.317241 0.109375 -vt 0.296552 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.125000 -vt 0.303448 0.140625 -vt 0.303448 0.125000 -vt 0.317241 0.093750 -vt 0.317241 0.125000 -vt 0.303448 0.109375 -vt 0.317241 0.109375 -vt 0.296552 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.125000 -vt 0.303448 0.140625 -vt 0.303448 0.125000 -vt 0.317241 0.093750 -vt 0.317241 0.125000 -vt 0.303448 0.109375 -vt 0.317241 0.109375 -vt 0.303448 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.125000 -vt 0.317241 0.140625 -vt 0.303448 0.140625 -vt 0.317241 0.093750 -vt 0.317241 0.125000 -vt 0.303448 0.109375 -vt 0.317241 0.109375 -vt 0.296552 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.125000 -vt 0.303448 0.140625 -vt 0.303448 0.125000 -vt 0.317241 0.093750 -vt 0.317241 0.125000 -vt 0.303448 0.109375 -vt 0.317241 0.109375 -vt 0.296552 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.125000 -vt 0.303448 0.125000 -vt 0.317241 0.140625 -vt 0.303448 0.140625 -vt 0.317241 0.093750 -vt 0.317241 0.125000 -vt 0.303448 0.109375 -vt 0.317241 0.109375 -vt 0.303448 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.125000 -vt 0.303448 0.140625 -vt 0.317241 0.093750 -vt 0.317241 0.125000 -vt 0.303448 0.109375 -vt 0.317241 0.109375 -vt 0.303448 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.109375 -vt 0.324138 0.125000 -vt 0.317241 0.140625 -vt 0.303448 0.140625 -vt 0.317241 0.093750 -vt 0.317241 0.125000 -vt 0.303448 0.109375 -vt 0.317241 0.109375 -vt 0.303448 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.109375 -vt 0.324138 0.125000 -vt 0.317241 0.140625 -vt 0.303448 0.140625 -vt 0.303448 0.093750 -vt 0.317241 0.093750 -vt 0.317241 0.125000 -vt 0.303448 0.109375 -vt 0.317241 0.109375 -vt 0.296552 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.109375 -vt 0.324138 0.125000 -vt 0.303448 0.140625 -vt 0.303448 0.125000 -vt 0.317241 0.093750 -vt 0.317241 0.125000 -vt 0.303448 0.109375 -vt 0.317241 0.109375 -vt 0.303448 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.109375 -vt 0.324138 0.125000 -vt 0.303448 0.140625 -vt 0.317241 0.093750 -vt 0.317241 0.125000 -vt 0.303448 0.109375 -vt 0.317241 0.109375 -vt 0.303448 0.125000 -vt 0.296552 0.109375 -vt 0.324138 0.109375 -vt 0.324138 0.125000 -vt 0.317241 0.140625 -vt 0.303448 0.140625 -vt 0.303448 0.093750 -vt 0.317241 0.093750 -vt 0.296552 0.125000 -vt 0.324138 0.109375 -vt 0.317241 0.140625 -vt 0.303448 0.093750 -vt 0.296552 0.125000 -vt 0.324138 0.109375 -vt 0.303448 0.093750 -vt 0.296552 0.125000 -vt 0.324138 0.109375 -vt 0.317241 0.140625 -vt 0.303448 0.093750 -vt 0.324138 0.109375 -vt 0.317241 0.140625 -vt 0.303448 0.093750 -vt 0.296552 0.125000 -vt 0.317241 0.140625 -vt 0.303448 0.093750 -vt 0.317241 0.140625 -vt 0.303448 0.093750 -vt 0.296552 0.125000 -vt 0.324138 0.109375 -vt 0.303448 0.093750 -vt 0.324138 0.109375 -vt 0.303448 0.093750 -vt 0.296552 0.125000 -vt 0.324138 0.109375 -vt 0.317241 0.140625 -vt 0.303448 0.093750 -vt 0.317241 0.140625 -vt 0.303448 0.093750 -vt 0.296552 0.125000 -vt 0.324138 0.109375 -vt 0.317241 0.140625 -vt 0.303448 0.093750 -vt 0.296552 0.125000 -vt 0.303448 0.093750 -vt 0.296552 0.125000 -vt 0.324138 0.109375 -vt 0.324138 0.109375 -vt 0.317241 0.140625 -vt 0.303448 0.093750 -vt 0.324138 0.109375 -vt 0.317241 0.140625 -vt 0.303448 0.093750 -vt 0.296552 0.125000 -vt 0.324138 0.109375 -vt 0.303448 0.093750 -vt 0.324138 0.109375 -vt 0.317241 0.140625 -vt 0.303448 0.093750 -vt 0.324138 0.109375 -vt 0.303448 0.093750 -vt 0.296552 0.125000 -vt 0.324138 0.109375 -vt 0.317241 0.140625 -vt 0.303448 0.093750 -vt 0.296552 0.125000 -vt 0.303448 0.093750 -vt 0.296552 0.125000 -vt 0.317241 0.140625 -vt 0.303448 0.093750 -vt 0.296552 0.125000 -vt 0.317241 0.140625 -vt 0.303448 0.093750 -vt 0.296552 0.125000 -vn 0.0000 1.0000 0.0000 -vn 0.4226 0.0000 -0.9063 -vn -0.4226 -0.0000 0.9063 -vn 0.9063 0.0000 0.4226 -vn -0.9063 0.0000 -0.4226 -vn -0.0000 -1.0000 -0.0000 -vn -0.4226 -0.0000 -0.9063 -vn 0.4226 -0.0000 0.9063 -vn -0.9063 0.0000 0.4226 -vn 0.9063 -0.0000 -0.4226 -vn 1.0000 0.0000 0.0000 -vn 0.0000 -0.4226 -0.9063 -vn 0.0000 0.4226 0.9063 -vn 0.0000 -0.9063 0.4226 -vn 0.0000 0.9063 -0.4226 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.4226 -0.9063 -vn 0.0000 -0.4226 0.9063 -vn 0.0000 0.9063 0.4226 -vn 0.0000 -0.9063 -0.4226 -vn 0.7071 0.7071 0.0000 -vn 0.2988 -0.2988 -0.9063 -vn -0.2988 0.2988 0.9063 -vn 0.6409 -0.6409 0.4226 -vn -0.6409 0.6409 -0.4226 -vn -0.7071 -0.7071 0.0000 -vn -0.2988 0.2988 -0.9063 -vn 0.2988 -0.2988 0.9063 -vn -0.6409 0.6409 0.4226 -vn 0.6409 -0.6409 -0.4226 -vn 0.7071 -0.7071 0.0000 -vn -0.2988 -0.2988 -0.9063 -vn 0.2988 0.2988 0.9063 -vn -0.6409 -0.6409 0.4226 -vn 0.6409 0.6409 -0.4226 -vn -0.7071 0.7071 -0.0000 -vn 0.2988 0.2988 -0.9063 -vn -0.2988 -0.2988 0.9063 -vn 0.6409 0.6409 0.4226 -vn -0.6409 -0.6409 -0.4226 -vn 0.8660 -0.5000 0.0000 -vn -0.2113 -0.3660 -0.9063 -vn 0.2113 0.3660 0.9063 -vn -0.4532 -0.7849 0.4226 -vn 0.4532 0.7849 -0.4226 -vn -0.8660 0.5000 -0.0000 -vn 0.2113 0.3660 -0.9063 -vn -0.2113 -0.3660 0.9063 -vn 0.4532 0.7849 0.4226 -vn -0.4532 -0.7849 -0.4226 -vn -0.5000 -0.8660 0.0000 -vn -0.3660 0.2113 -0.9063 -vn 0.3660 -0.2113 0.9063 -vn -0.7849 0.4532 0.4226 -vn 0.7849 -0.4532 -0.4226 -vn 0.5000 0.8660 -0.0000 -vn 0.3660 -0.2113 -0.9063 -vn -0.3660 0.2113 0.9063 -vn 0.7849 -0.4532 0.4226 -vn -0.7849 0.4532 -0.4226 -vn 0.2588 -0.9659 -0.0000 -vn -0.4082 -0.1094 -0.9063 -vn 0.4082 0.1094 0.9063 -vn -0.8754 -0.2346 0.4226 -vn 0.8754 0.2346 -0.4226 -vn -0.2588 0.9659 -0.0000 -vn 0.4082 0.1094 -0.9063 -vn -0.4082 -0.1094 0.9063 -vn 0.8754 0.2346 0.4226 -vn -0.8754 -0.2346 -0.4226 -vn -0.9659 -0.2588 0.0000 -vn -0.1094 0.4082 -0.9063 -vn 0.1094 -0.4082 0.9063 -vn -0.2346 0.8754 0.4226 -vn 0.2346 -0.8754 -0.4226 -vn 0.9659 0.2588 0.0000 -vn 0.1094 -0.4082 -0.9063 -vn -0.1094 0.4082 0.9063 -vn 0.2346 -0.8754 0.4226 -vn -0.2346 0.8754 -0.4226 -vn -0.8660 -0.5000 0.0000 -vn -0.2113 0.3660 -0.9063 -vn 0.2113 -0.3660 0.9063 -vn -0.4532 0.7849 0.4226 -vn 0.4532 -0.7849 -0.4226 -vn 0.8660 0.5000 0.0000 -vn 0.2113 -0.3660 -0.9063 -vn -0.2113 0.3660 0.9063 -vn 0.4532 -0.7849 0.4226 -vn -0.4532 0.7849 -0.4226 -vn -0.5000 0.8660 0.0000 -vn 0.3660 0.2113 -0.9063 -vn -0.3660 -0.2113 0.9063 -vn 0.7849 0.4532 0.4226 -vn -0.7849 -0.4532 -0.4226 -vn 0.5000 -0.8660 -0.0000 -vn -0.3660 -0.2113 -0.9063 -vn 0.3660 0.2113 0.9063 -vn -0.7849 -0.4532 0.4226 -vn 0.7849 0.4532 -0.4226 -vn -0.9659 0.2588 0.0000 -vn 0.1094 0.4082 -0.9063 -vn -0.1094 -0.4082 0.9063 -vn 0.2346 0.8754 0.4226 -vn -0.2346 -0.8754 -0.4226 -vn 0.9659 -0.2588 -0.0000 -vn -0.1094 -0.4082 -0.9063 -vn 0.1094 0.4082 0.9063 -vn -0.2346 -0.8754 0.4226 -vn 0.2346 0.8754 -0.4226 -vn 0.2588 0.9659 -0.0000 -vn 0.4082 -0.1094 -0.9063 -vn -0.4082 0.1094 0.9063 -vn 0.8754 -0.2346 0.4226 -vn -0.8754 0.2346 -0.4226 -vn -0.2588 -0.9659 0.0000 -vn -0.4082 0.1094 -0.9063 -vn 0.4082 -0.1094 0.9063 -vn -0.8754 0.2346 0.4226 -vn 0.8754 -0.2346 -0.4226 -s off -f 26/25/3 28/26/3 25/27/3 -f 27/28/4 30/29/4 28/26/4 -f 25/27/5 32/30/5 26/25/5 -f 26/25/6 29/31/6 27/28/6 -f 28/26/7 31/32/7 25/27/7 -f 34/33/8 36/34/8 33/35/8 -f 35/36/9 38/37/9 36/34/9 -f 33/35/10 40/38/10 34/33/10 -f 35/36/11 40/39/11 37/40/11 -f 36/34/12 39/41/12 33/35/12 -f 42/42/13 44/43/13 41/44/13 -f 43/45/14 46/46/14 44/43/14 -f 41/44/15 48/47/15 42/42/15 -f 42/42/16 45/48/16 43/45/16 -f 44/43/17 47/49/17 41/44/17 -f 50/50/18 52/51/18 49/52/18 -f 52/51/19 53/53/19 54/54/19 -f 49/52/20 56/55/20 50/50/20 -f 50/50/21 53/56/21 51/57/21 -f 52/51/22 55/58/22 49/52/22 -f 58/59/23 60/60/23 57/61/23 -f 59/62/24 62/63/24 60/60/24 -f 58/59/25 63/64/25 64/65/25 -f 58/59/26 61/66/26 59/62/26 -f 60/60/27 63/67/27 57/61/27 -f 66/68/28 68/69/28 65/70/28 -f 68/69/29 69/71/29 70/72/29 -f 66/68/30 71/73/30 72/74/30 -f 66/68/31 69/75/31 67/76/31 -f 68/69/32 71/77/32 65/70/32 -f 74/78/33 76/79/33 73/80/33 -f 75/81/34 78/82/34 76/79/34 -f 73/80/35 80/83/35 74/78/35 -f 75/81/36 80/84/36 77/85/36 -f 76/79/37 79/86/37 73/80/37 -f 82/87/38 84/88/38 81/89/38 -f 84/88/39 85/90/39 86/91/39 -f 81/89/40 88/92/40 82/87/40 -f 83/93/41 88/94/41 85/95/41 -f 84/88/42 87/96/42 81/89/42 -f 90/97/43 92/98/43 89/99/43 -f 91/100/44 94/101/44 92/98/44 -f 89/99/45 96/102/45 90/97/45 -f 90/97/46 93/103/46 91/100/46 -f 92/98/47 95/104/47 89/99/47 -f 98/105/48 100/106/48 97/107/48 -f 100/106/49 101/108/49 102/109/49 -f 98/105/50 103/110/50 104/111/50 -f 98/105/51 101/112/51 99/113/51 -f 100/106/52 103/114/52 97/107/52 -f 106/115/53 108/116/53 105/117/53 -f 107/118/54 110/119/54 108/116/54 -f 105/117/55 112/120/55 106/115/55 -f 106/115/56 109/121/56 107/118/56 -f 108/116/57 111/122/57 105/117/57 -f 114/123/58 116/124/58 113/125/58 -f 115/126/59 118/127/59 116/124/59 -f 114/123/60 119/128/60 120/129/60 -f 115/126/61 120/130/61 117/131/61 -f 116/124/62 119/132/62 113/125/62 -f 122/133/63 124/134/63 121/135/63 -f 123/136/64 126/137/64 124/134/64 -f 121/135/65 128/138/65 122/133/65 -f 123/136/66 128/139/66 125/140/66 -f 121/135/67 126/141/67 127/142/67 -f 130/143/68 132/144/68 129/145/68 -f 132/144/69 133/146/69 134/147/69 -f 129/145/70 136/148/70 130/143/70 -f 130/143/71 133/149/71 131/150/71 -f 132/144/72 135/151/72 129/145/72 -f 138/152/73 140/153/73 137/154/73 -f 140/153/74 141/155/74 142/156/74 -f 137/154/75 144/157/75 138/152/75 -f 138/152/76 141/158/76 139/159/76 -f 140/153/77 143/160/77 137/154/77 -f 146/161/78 148/162/78 145/163/78 -f 147/164/79 150/165/79 148/162/79 -f 145/163/80 152/166/80 146/161/80 -f 147/164/81 152/167/81 149/168/81 -f 148/162/82 151/169/82 145/163/82 -f 154/170/83 156/171/83 153/172/83 -f 156/171/84 157/173/84 158/174/84 -f 153/172/85 160/175/85 154/170/85 -f 154/170/86 157/176/86 155/177/86 -f 156/171/87 159/178/87 153/172/87 -f 162/179/88 164/180/88 161/181/88 -f 164/180/89 165/182/89 166/183/89 -f 161/181/90 168/184/90 162/179/90 -f 163/185/91 168/186/91 165/187/91 -f 164/180/92 167/188/92 161/181/92 -f 170/189/93 172/190/93 169/191/93 -f 171/192/94 174/193/94 172/190/94 -f 169/191/95 176/194/95 170/189/95 -f 170/189/96 173/195/96 171/192/96 -f 172/190/97 175/196/97 169/191/97 -f 178/197/98 180/198/98 177/199/98 -f 179/200/99 182/201/99 180/198/99 -f 178/197/100 183/202/100 184/203/100 -f 179/200/101 184/204/101 181/205/101 -f 180/198/102 183/206/102 177/199/102 -f 186/207/103 188/208/103 185/209/103 -f 187/210/104 190/211/104 188/208/104 -f 186/207/105 191/212/105 192/213/105 -f 187/210/106 192/214/106 189/215/106 -f 185/209/107 190/216/107 191/217/107 -f 194/218/108 196/219/108 193/220/108 -f 196/219/109 197/221/109 198/222/109 -f 194/218/110 199/223/110 200/224/110 -f 194/218/111 197/225/111 195/226/111 -f 196/219/112 199/227/112 193/220/112 -f 202/228/113 204/229/113 201/230/113 -f 203/231/114 206/232/114 204/229/114 -f 202/228/115 207/233/115 208/234/115 -f 202/228/116 205/235/116 203/231/116 -f 204/229/117 207/236/117 201/230/117 -f 210/237/118 212/238/118 209/239/118 -f 211/240/119 214/241/119 212/238/119 -f 210/237/120 215/242/120 216/243/120 -f 211/240/121 216/244/121 213/245/121 -f 209/239/122 214/246/122 215/247/122 -f 26/25/3 27/28/3 28/26/3 -f 27/28/4 29/248/4 30/29/4 -f 25/27/5 31/249/5 32/30/5 -f 26/25/6 32/250/6 29/31/6 -f 28/26/7 30/251/7 31/32/7 -f 34/33/8 35/36/8 36/34/8 -f 35/36/9 37/252/9 38/37/9 -f 33/35/10 39/253/10 40/38/10 -f 35/36/11 34/33/11 40/39/11 -f 36/34/12 38/254/12 39/41/12 -f 42/42/13 43/45/13 44/43/13 -f 43/45/14 45/255/14 46/46/14 -f 41/44/15 47/256/15 48/47/15 -f 42/42/16 48/257/16 45/48/16 -f 44/43/17 46/258/17 47/49/17 -f 50/50/18 51/57/18 52/51/18 -f 52/51/19 51/57/19 53/53/19 -f 49/52/20 55/259/20 56/55/20 -f 50/50/21 56/260/21 53/56/21 -f 52/51/22 54/261/22 55/58/22 -f 58/59/23 59/62/23 60/60/23 -f 59/62/24 61/262/24 62/63/24 -f 58/59/25 57/61/25 63/64/25 -f 58/59/26 64/263/26 61/66/26 -f 60/60/27 62/264/27 63/67/27 -f 66/68/28 67/76/28 68/69/28 -f 68/69/29 67/76/29 69/71/29 -f 66/68/30 65/70/30 71/73/30 -f 66/68/31 72/265/31 69/75/31 -f 68/69/32 70/266/32 71/77/32 -f 74/78/33 75/81/33 76/79/33 -f 75/81/34 77/267/34 78/82/34 -f 73/80/35 79/268/35 80/83/35 -f 75/81/36 74/78/36 80/84/36 -f 76/79/37 78/269/37 79/86/37 -f 82/87/38 83/93/38 84/88/38 -f 84/88/39 83/93/39 85/90/39 -f 81/89/40 87/270/40 88/92/40 -f 83/93/41 82/87/41 88/94/41 -f 84/88/42 86/271/42 87/96/42 -f 90/97/43 91/100/43 92/98/43 -f 91/100/44 93/272/44 94/101/44 -f 89/99/45 95/273/45 96/102/45 -f 90/97/46 96/274/46 93/103/46 -f 92/98/47 94/275/47 95/104/47 -f 98/105/48 99/113/48 100/106/48 -f 100/106/49 99/113/49 101/108/49 -f 98/105/50 97/107/50 103/110/50 -f 98/105/51 104/276/51 101/112/51 -f 100/106/52 102/277/52 103/114/52 -f 106/115/53 107/118/53 108/116/53 -f 107/118/54 109/278/54 110/119/54 -f 105/117/55 111/279/55 112/120/55 -f 106/115/56 112/280/56 109/121/56 -f 108/116/57 110/281/57 111/122/57 -f 114/123/58 115/126/58 116/124/58 -f 115/126/59 117/282/59 118/127/59 -f 114/123/60 113/125/60 119/128/60 -f 115/126/61 114/123/61 120/130/61 -f 116/124/62 118/283/62 119/132/62 -f 122/133/63 123/136/63 124/134/63 -f 123/136/64 125/284/64 126/137/64 -f 121/135/65 127/285/65 128/138/65 -f 123/136/66 122/133/66 128/139/66 -f 121/135/67 124/134/67 126/141/67 -f 130/143/68 131/150/68 132/144/68 -f 132/144/69 131/150/69 133/146/69 -f 129/145/70 135/286/70 136/148/70 -f 130/143/71 136/287/71 133/149/71 -f 132/144/72 134/288/72 135/151/72 -f 138/152/73 139/159/73 140/153/73 -f 140/153/74 139/159/74 141/155/74 -f 137/154/75 143/289/75 144/157/75 -f 138/152/76 144/290/76 141/158/76 -f 140/153/77 142/291/77 143/160/77 -f 146/161/78 147/164/78 148/162/78 -f 147/164/79 149/292/79 150/165/79 -f 145/163/80 151/293/80 152/166/80 -f 147/164/81 146/161/81 152/167/81 -f 148/162/82 150/294/82 151/169/82 -f 154/170/83 155/177/83 156/171/83 -f 156/171/84 155/177/84 157/173/84 -f 153/172/85 159/295/85 160/175/85 -f 154/170/86 160/296/86 157/176/86 -f 156/171/87 158/297/87 159/178/87 -f 162/179/88 163/185/88 164/180/88 -f 164/180/89 163/185/89 165/182/89 -f 161/181/90 167/298/90 168/184/90 -f 163/185/91 162/179/91 168/186/91 -f 164/180/92 166/299/92 167/188/92 -f 170/189/93 171/192/93 172/190/93 -f 171/192/94 173/300/94 174/193/94 -f 169/191/95 175/301/95 176/194/95 -f 170/189/96 176/302/96 173/195/96 -f 172/190/97 174/303/97 175/196/97 -f 178/197/98 179/200/98 180/198/98 -f 179/200/99 181/304/99 182/201/99 -f 178/197/100 177/199/100 183/202/100 -f 179/200/101 178/197/101 184/204/101 -f 180/198/102 182/305/102 183/206/102 -f 186/207/103 187/210/103 188/208/103 -f 187/210/104 189/306/104 190/211/104 -f 186/207/105 185/209/105 191/212/105 -f 187/210/106 186/207/106 192/214/106 -f 185/209/107 188/208/107 190/216/107 -f 194/218/108 195/226/108 196/219/108 -f 196/219/109 195/226/109 197/221/109 -f 194/218/110 193/220/110 199/223/110 -f 194/218/111 200/307/111 197/225/111 -f 196/219/112 198/308/112 199/227/112 -f 202/228/113 203/231/113 204/229/113 -f 203/231/114 205/309/114 206/232/114 -f 202/228/115 201/230/115 207/233/115 -f 202/228/116 208/310/116 205/235/116 -f 204/229/117 206/311/117 207/236/117 -f 210/237/118 211/240/118 212/238/118 -f 211/240/119 213/312/119 214/241/119 -f 210/237/120 209/239/120 215/242/120 -f 211/240/121 210/237/121 216/244/121 -f 209/239/122 212/238/122 214/246/122 -o Plane.001 -v 0.000000 2.453697 -2.948062 -v 0.125000 2.423342 -2.962217 -v 0.216506 2.340409 -3.000889 -v 0.250000 2.227120 -3.053716 -v 0.216506 2.113832 -3.106544 -v 0.000000 2.566986 -2.895234 -v 0.324759 2.057188 -3.132957 -v 0.375000 2.227120 -3.053716 -v 0.324760 2.397053 -2.974475 -v 0.187500 2.521452 -2.916467 -vt 1.000000 0.250000 -vt -0.000000 -0.000000 -vt 1.000000 0.000000 -vt -0.000000 0.500000 -vt 0.000000 0.250000 -vt 1.000000 0.500000 -vt -0.000000 0.750000 -vt 0.000000 1.000000 -vt 1.000000 0.750000 -vt 1.000000 1.000000 -vn 0.0000 0.4226 -0.9063 -s off -f 220/313/123 223/314/123 221/315/123 -f 220/313/123 225/316/123 224/317/123 -f 219/318/123 226/319/123 225/316/123 -f 222/320/123 218/321/123 217/322/123 -f 220/313/123 224/317/123 223/314/123 -f 220/313/123 219/318/123 225/316/123 -f 219/318/123 218/321/123 226/319/123 -f 222/320/123 226/319/123 218/321/123 -o Plane -v -1.250000 1.750000 -0.625000 -v -1.250000 1.750000 -3.000000 -v -1.250000 1.376000 -2.625000 -v -1.250000 0.751000 -2.625000 -v -1.250000 0.750000 -0.625000 -v 0.500000 0.000000 -1.625000 -v 1.000000 0.500000 -2.125000 -v 1.000000 0.500000 -3.750000 -v 1.250000 0.750000 -3.750000 -v 1.250000 0.750000 -0.625000 -v 0.500000 0.000000 -0.625000 -v 1.250000 1.750000 -3.000000 -v 1.250000 1.750000 -0.625000 -v 1.250000 1.625000 -3.750000 -v 1.250000 1.750000 -3.375000 -v -0.500000 0.000000 -0.625000 -v -0.500000 0.000000 -1.625000 -v -1.000000 0.500000 -2.625000 -v -1.000000 0.500000 -2.125000 -v 1.000000 1.750000 -3.375000 -v 1.000000 1.750000 -3.000000 -v -1.250000 0.750000 -3.750000 -v -1.250000 0.751000 -3.625000 -v -1.250000 1.376000 -3.625000 -v -1.250000 1.625000 -3.750000 -v -1.250000 1.750000 -3.375000 -v -1.000000 0.500000 -3.750000 -v -1.000000 0.501000 -3.625000 -v -1.312500 0.501000 -3.500000 -v -1.312500 0.501000 -2.750000 -v -1.312500 0.626000 -2.750000 -v -1.312500 0.626000 -3.500000 -v -1.312500 0.751000 -3.500000 -v -1.312500 0.751000 -2.750000 -v -1.312500 0.876000 -2.750000 -v -1.312500 0.876000 -3.500000 -v -1.312500 1.001000 -3.500000 -v -1.312500 1.001000 -2.750000 -v -1.312500 1.126000 -2.750000 -v -1.312500 1.126000 -3.500000 -v -1.312500 1.376000 -3.625000 -v -1.312500 1.251000 -3.500000 -v -1.312500 1.251000 -2.750000 -v -1.312500 1.376000 -2.625000 -v -1.312500 0.251000 -3.625000 -v -1.312500 0.251000 -2.625000 -v -1.312500 0.376000 -2.750000 -v -1.312500 0.376000 -3.500000 -v -1.187500 1.001000 -3.500000 -v -1.187500 1.001000 -2.750000 -v -1.187500 0.876000 -3.500000 -v -1.187500 0.626000 -2.750000 -v -1.187500 0.626000 -3.500000 -v -1.187500 0.751000 -3.500000 -v -1.187500 1.251000 -3.500000 -v -1.187500 1.126000 -3.500000 -v -1.187500 1.126000 -2.750000 -v -1.187500 1.251000 -2.750000 -v -1.187500 0.876000 -2.750000 -v -1.187500 0.751000 -2.750000 -v -1.187500 0.376000 -3.500000 -v -1.187500 0.376000 -2.750000 -v -1.187500 0.501000 -2.750000 -v -1.187500 0.501000 -3.500000 -v 1.000000 0.750000 -3.750000 -v 1.000000 1.625000 -3.750000 -v -1.000000 1.625000 -3.750000 -v -1.000000 0.750000 -3.750000 -v -1.000000 1.750000 -3.375000 -v -1.000000 1.750000 -3.000000 -v -0.500000 2.500000 -2.625000 -v 0.500000 2.500000 -2.625000 -v 0.500000 2.250000 -2.750000 -v -0.500000 2.250000 -2.750000 -v -0.344030 0.708152 -0.175597 -v -0.424630 0.633153 -0.128904 -v -0.388541 0.618205 -0.128904 -v -0.328091 0.674453 -0.163924 -v -0.420670 0.523129 -0.082211 -v -0.334466 0.442528 -0.062870 -v -0.320918 0.475236 -0.079378 -v -0.385571 0.535686 -0.093884 -v -0.216518 0.438567 -0.082211 -v -0.135918 0.513565 -0.128904 -v -0.172007 0.528513 -0.128904 -v -0.232457 0.472265 -0.093884 -v -0.139879 0.623590 -0.175597 -v -0.174978 0.611032 -0.163924 -v -0.226082 0.704190 -0.194938 -v -0.239630 0.671482 -0.178429 -v -0.208096 0.543462 -0.128904 -v -0.210077 0.598474 -0.152250 -v -0.253178 0.638775 -0.161921 -v -0.312152 0.640755 -0.152250 -v -0.352451 0.603256 -0.128904 -v -0.350471 0.548244 -0.105557 -v -0.307370 0.507944 -0.095887 -v -0.248396 0.505963 -0.105557 -v -0.222349 0.496668 -0.037240 -v -0.161900 0.552916 -0.072260 -v -0.197989 0.567865 -0.072260 -v -0.238288 0.530366 -0.048913 -v -0.164869 0.635435 -0.107280 -v -0.199968 0.622877 -0.095606 -v -0.229523 0.695885 -0.121785 -v -0.243071 0.663178 -0.105277 -v -0.317984 0.698857 -0.107280 -v -0.302044 0.665158 -0.095606 -v -0.378433 0.642608 -0.072260 -v -0.342344 0.627659 -0.072260 -v -0.375462 0.560089 -0.037240 -v -0.340364 0.572647 -0.048913 -v -0.310810 0.499639 -0.022734 -v -0.297262 0.532347 -0.039243 -v -0.391169 0.267836 0.136894 -v -0.014465 0.192905 0.136894 -v -0.014465 0.302280 -0.081856 -v -0.349313 0.368885 -0.081856 -v -0.025414 0.247242 -0.109375 -v -0.360261 0.313848 -0.109375 -v -0.025414 0.137868 0.109375 -v -0.402117 0.212799 0.109375 -v 0.230970 1.345671 -0.500000 -v 0.095671 1.480970 -0.500000 -v 0.071753 1.423227 -0.500000 -v 0.173227 1.321753 -0.500000 -v -0.047836 1.365485 -0.500000 -v -0.115485 1.297835 -0.500000 -v -0.115485 1.202165 -0.500000 -v -0.047836 1.134515 -0.500000 -v 0.047834 1.134515 -0.500000 -v 0.115485 1.202165 -0.500000 -v 0.115485 1.297835 -0.500000 -v 0.047834 1.365485 -0.500000 -v 0.230970 1.154329 -0.500000 -v 0.173227 1.178247 -0.500000 -v 0.095671 1.019030 -0.500000 -v 0.071753 1.076773 -0.500000 -v -0.095671 1.019030 -0.500000 -v -0.071753 1.076773 -0.500000 -v -0.230970 1.154329 -0.500000 -v -0.173227 1.178247 -0.500000 -v -0.230970 1.345671 -0.500000 -v -0.173227 1.321753 -0.500000 -v -0.095671 1.480970 -0.500000 -v -0.071753 1.423227 -0.500000 -v 0.115485 1.297835 -0.375000 -v 0.173227 1.321753 -0.375000 -v 0.071753 1.423227 -0.375000 -v 0.047834 1.365485 -0.375000 -v 0.115485 1.202165 -0.375000 -v 0.173227 1.178247 -0.375000 -v 0.047834 1.134515 -0.375000 -v 0.071753 1.076773 -0.375000 -v -0.047836 1.134515 -0.375000 -v -0.071753 1.076773 -0.375000 -v -0.115485 1.202165 -0.375000 -v -0.173227 1.178247 -0.375000 -v -0.115485 1.297835 -0.375000 -v -0.173227 1.321753 -0.375000 -v -0.047836 1.365485 -0.375000 -v -0.071753 1.423227 -0.375000 -v 0.500000 2.500000 -0.625000 -v -0.500000 2.500000 -0.625000 -v 1.039364 1.680519 -0.625000 -v 1.125000 1.250000 -0.625000 -v 1.039364 0.819481 -0.625000 -v 0.795495 0.454505 -0.625000 -v 0.430519 0.210635 -0.625000 -v 0.000000 0.125000 -0.625000 -v -0.430519 0.210636 -0.625000 -v -0.795495 0.454505 -0.625000 -v -1.039364 0.819481 -0.625000 -v -1.125000 1.250000 -0.625000 -v -1.039364 1.680519 -0.625000 -v -1.000000 1.645607 -3.832107 -v -1.000000 0.938500 -4.125000 -v -1.000000 0.231393 -3.832107 -v -1.000000 -0.061500 -3.125000 -v -1.000000 0.231393 -2.417893 -v -1.000000 0.938500 -2.125000 -v -1.000000 1.645607 -2.417893 -v -1.000000 1.938500 -3.125000 -v -1.000000 0.251000 -2.625000 -v -1.000000 1.376000 -2.625000 -v -1.000000 0.251000 -3.625000 -v -1.000000 1.376000 -3.625000 -v 1.000000 1.645607 -3.832107 -v 1.000000 1.938500 -3.125000 -v 1.000000 1.645607 -2.417893 -v 1.000000 0.938500 -2.125000 -v 1.000000 0.231393 -2.417893 -v 1.000000 -0.061500 -3.125000 -v 1.000000 0.231393 -3.832107 -v 1.000000 0.938500 -4.125000 -v 0.554916 2.356694 0.187500 -v 0.731694 2.179917 0.187500 -v 0.820084 2.268306 0.187500 -v 0.643306 2.445082 0.187500 -v 0.554916 2.356694 -0.312500 -v 0.643306 2.445082 -0.312500 -v 0.820084 2.268306 -0.312500 -v 0.731694 2.179917 -0.312500 -v -0.929916 0.518306 0.187500 -v -1.106694 0.695083 0.187500 -v -1.195084 0.606694 0.187500 -v -1.018306 0.429918 0.187500 -v -0.929916 0.518306 -0.312500 -v -1.018306 0.429918 -0.312500 -v -1.195084 0.606694 -0.312500 -v -1.106694 0.695083 -0.312500 -v 1.106694 0.695082 0.187500 -v 0.929916 0.518306 0.187500 -v 1.018306 0.429917 0.187500 -v 1.195082 0.606694 0.187500 -v 1.106694 0.695082 -0.312500 -v 1.195082 0.606694 -0.312500 -v 1.018306 0.429917 -0.312500 -v 0.929916 0.518306 -0.312500 -v -0.731694 2.179918 0.187500 -v -0.554916 2.356694 0.187500 -v -0.643306 2.445083 0.187500 -v -0.820082 2.268306 0.187500 -v -0.731694 2.179918 -0.312500 -v -0.820082 2.268306 -0.312500 -v -0.643306 2.445083 -0.312500 -v -0.554916 2.356694 -0.312500 -v 0.554916 2.356694 -2.375000 -v 0.731694 2.179917 -2.375000 -v 0.820084 2.268306 -2.375000 -v 0.643306 2.445082 -2.375000 -v 0.554916 2.356694 -2.750000 -v 0.643306 2.445082 -2.750000 -v 0.820084 2.268306 -2.875000 -v 0.731694 2.179917 -2.875000 -v -0.500000 2.250000 -2.625000 -v -1.000000 1.750000 -2.875000 -v 1.000000 1.750000 -2.875000 -v 0.500000 2.250000 -2.625000 -v 0.500000 2.215740 -2.715952 -v 0.500000 1.819230 -2.900848 -v 0.500000 1.872057 -3.014137 -v 0.500000 2.268567 -2.829241 -v -0.500000 2.268567 -2.829241 -v -0.500000 1.872057 -3.014137 -v -0.500000 1.819230 -2.900848 -v -0.500000 2.215740 -2.715952 -v -0.312500 2.438500 -2.750000 -v 0.312500 2.438500 -2.750000 -v -0.312500 2.385673 -2.636712 -v 0.312500 2.385673 -2.636712 -v -0.750000 1.887724 -3.247583 -v 0.750000 1.887724 -3.247583 -v 0.750000 2.039915 -3.445922 -v -0.750000 2.039915 -3.445922 -v 0.750000 1.544192 -3.511185 -v 0.750000 1.696383 -3.709523 -v 0.750000 1.944244 -3.676892 -v 0.750000 1.639863 -3.280215 -v -0.750000 1.944244 -3.676892 -v -0.750000 1.696383 -3.709523 -v -0.750000 1.544192 -3.511185 -v -0.750000 1.639863 -3.280215 -v -0.500000 0.125000 -2.750000 -v 0.500000 0.125000 -2.750000 -v 0.500000 0.125000 -1.750000 -v -0.500000 0.125000 -1.750000 -v 0.500000 0.500000 -2.750000 -v 0.500000 0.500000 -1.750000 -v -0.500000 0.500000 -1.750000 -v -0.500000 0.500000 -2.750000 -v -0.625000 0.187500 -4.125000 -v -0.625000 1.687500 -4.125000 -v 0.625000 1.687500 -4.125000 -v 0.625000 0.187500 -4.125000 -v 0.625000 1.687500 -3.625000 -v 0.625000 0.187500 -3.625000 -v -0.625000 0.187500 -3.625000 -v -0.625000 1.687500 -3.625000 -v -0.500000 1.562500 -4.875000 -v 0.500000 1.562500 -4.875000 -v 0.500000 0.312500 -4.875000 -v -0.500000 0.312500 -4.875000 -v 0.500000 0.312500 -4.125000 -v -0.500000 0.312500 -4.125000 -v -0.500000 1.562500 -4.125000 -v 0.500000 1.562500 -4.125000 -v 1.375000 1.658494 -2.187500 -v 0.875000 1.658494 -2.187500 -v 0.875000 1.658494 -2.437500 -v 1.375000 1.658494 -2.437500 -v 1.375000 2.091506 -2.187500 -v 0.875000 2.091506 -2.187500 -v 0.875000 1.875000 -2.062500 -v 1.375000 1.875000 -2.062500 -v 1.375000 1.875000 -2.562500 -v 0.875000 1.875000 -2.562500 -v 0.875000 2.091506 -2.437500 -v 1.375000 2.091506 -2.437500 -v 1.375000 1.983253 -2.375000 -v 1.375000 1.983253 -2.250000 -v 1.562500 1.983253 -2.250000 -v 1.562500 1.983253 -2.375000 -v 1.375000 1.766747 -2.250000 -v 1.375000 1.766747 -2.375000 -v 1.562500 1.766747 -2.375000 -v 1.562500 1.766747 -2.250000 -v 1.375000 1.875000 -2.187500 -v 1.562500 1.875000 -2.187500 -v 1.375000 1.875000 -2.437500 -v 1.562500 1.875000 -2.437500 -v 1.562500 1.712620 -2.406250 -v 1.562500 1.712620 -2.218750 -v 1.562500 1.875000 -2.125000 -v 1.562500 2.037380 -2.218750 -v 1.562500 2.037380 -2.406250 -v 1.562500 1.875000 -2.500000 -v 2.312500 1.875000 -2.500000 -v 2.312500 1.712620 -2.406250 -v 2.312500 1.712620 -2.218750 -v 2.312500 1.875000 -2.125000 -v 2.312500 2.037380 -2.218750 -v 2.312500 2.037380 -2.406250 -v 2.312500 1.875000 -2.187500 -v 2.312500 1.983253 -2.250000 -v 2.312500 1.983253 -2.375000 -v 2.312500 1.875000 -2.437500 -v 2.312500 1.766747 -2.375000 -v 2.312500 1.766747 -2.250000 -v 2.500000 1.766747 -2.250000 -v 2.500000 1.875000 -2.187500 -v 2.500000 1.983253 -2.250000 -v 2.500000 1.983253 -2.375000 -v 2.500000 1.766747 -2.375000 -v 2.500000 1.875000 -2.437500 -v 2.500000 1.875000 -2.062500 -v 2.500000 2.091506 -2.187500 -v 2.500000 2.091506 -2.437500 -v 2.500000 1.875000 -2.562500 -v 2.500000 1.658494 -2.437500 -v 2.500000 1.658494 -2.187500 -v 2.625000 2.091506 -2.187500 -v 2.625000 2.091506 -2.437500 -v 2.625000 1.658494 -2.437500 -v 2.625000 1.658494 -2.187500 -v 2.625000 1.875000 -2.062500 -v 2.625000 1.875000 -2.562500 -v 2.750000 1.983253 -2.375000 -v 2.750000 1.875000 -2.437500 -v 2.750000 1.766747 -2.375000 -v 2.750000 1.766747 -2.250000 -v 2.750000 1.875000 -2.187500 -v 2.750000 1.983253 -2.250000 -v -0.187500 1.625000 -4.125000 -v 0.187500 1.625000 -4.125000 -v 0.187500 1.625000 -5.000000 -v -0.187500 1.625000 -5.000000 -v -0.187500 1.669194 -5.397748 -v -0.187500 2.022748 -5.044194 -v -0.187500 2.287913 -5.309359 -v -0.187500 2.022748 -5.574524 -v -0.187500 1.845971 -5.574524 -v 0.187500 1.250000 -5.000000 -v -0.187500 1.250000 -5.000000 -v 0.187500 1.250000 -4.125000 -v -0.187500 1.250000 -4.125000 -v -0.125000 1.625000 -4.734835 -v 0.125000 1.625000 -4.734835 -v 0.125000 1.978553 -5.088388 -v -0.125000 1.978553 -5.088388 -v -0.125000 1.359835 -5.000000 -v -0.125000 1.713388 -5.353553 -v 0.125000 1.359835 -5.000000 -v 0.125000 1.713388 -5.353553 -v 0.187500 1.669194 -5.397748 -v 0.187500 2.022748 -5.044194 -v 0.187500 2.022748 -5.574524 -v 0.187500 1.845971 -5.574524 -v 0.187500 2.287913 -5.309359 -v -0.062500 2.597272 -4.558058 -v 0.062500 2.597272 -4.558058 -v 0.062500 2.774049 -4.734835 -v -0.062500 2.774049 -4.734835 -v 0.062500 2.066942 -5.088388 -v 0.062500 2.243718 -5.265165 -v -0.062500 2.243718 -5.265165 -v -0.062500 2.066942 -5.088388 -v -0.125000 2.423342 -2.962217 -v 0.000000 2.453697 -2.948062 -v 0.216506 2.113832 -3.106544 -v 0.125000 2.030899 -3.145216 -v 0.000000 2.000544 -3.159371 -v -0.125000 2.030899 -3.145216 -v -0.216506 2.113832 -3.106544 -v -0.250000 2.227120 -3.053716 -v -0.216506 2.340409 -3.000889 -v 0.000000 2.374456 -2.778129 -v 0.000000 2.487745 -2.725302 -v 0.000000 2.566986 -2.895234 -v 0.324759 1.977947 -2.963025 -v 0.216506 2.034591 -2.936611 -v 0.324759 2.057188 -3.132957 -v 0.375000 2.227120 -3.053716 -v 0.324760 2.397053 -2.974475 -v 0.187500 2.521452 -2.916467 -v 0.324760 2.317812 -2.804543 -v 0.187500 2.442212 -2.746534 -v -0.437500 2.102596 -3.042822 -v -0.483253 2.144063 -3.023486 -v -0.500000 2.200707 -2.997072 -v -0.483253 2.257351 -2.970659 -v -0.437500 2.298818 -2.951323 -v -0.375000 2.313995 -2.944245 -v -0.312500 2.298818 -2.951323 -v -0.266747 2.257351 -2.970659 -v -0.250000 2.200707 -2.997072 -v -0.266747 2.144063 -3.023486 -v -0.312500 2.102596 -3.042822 -v -0.375000 2.087419 -3.049900 -v -1.125000 1.875000 -1.875000 -v -1.125000 1.875000 -1.625000 -v -0.625000 2.375000 -1.875000 -v -0.625000 2.375000 -2.125000 -v -0.625000 2.375000 -0.875000 -v -1.125000 1.875000 -0.875000 -v -1.125000 1.875000 -2.625000 -v -0.625000 2.375000 -2.375000 -v 1.125000 1.875000 -0.875000 -v 0.625000 2.375000 -0.875000 -v 1.125000 1.875000 -1.625000 -v 0.625000 2.375000 -1.875000 -v 0.448223 2.198223 -1.875000 -v 0.948223 1.698223 -1.625000 -v -1.036612 1.786612 -1.875000 -v -1.036612 1.786612 -2.625000 -v -0.948223 1.698223 -1.625000 -v -0.448223 2.198223 -1.875000 -v -0.536612 2.286612 -2.375000 -v -0.536612 2.286612 -2.125000 -v -0.448223 2.198223 -0.875000 -v -0.948223 1.698223 -0.875000 -v 0.948223 1.698223 -0.875000 -v 0.448223 2.198223 -0.875000 -v -0.137500 2.062500 -3.749900 -v -0.137500 1.937500 -3.749900 -v -0.137500 2.062500 -3.437400 -v -0.137500 2.187500 -3.437400 -v -0.012500 1.937500 -3.749900 -v -0.012500 2.062500 -3.437400 -v 0.137500 1.937500 -3.749900 -v 0.137500 2.062500 -3.749900 -v 0.137500 2.187500 -3.437400 -v 0.137500 2.062500 -3.437400 -v -0.012500 2.062500 -3.749900 -v -0.012500 2.187500 -3.437400 -v 0.137500 2.134191 -3.062400 -v 0.137500 2.009191 -3.062400 -v -0.012500 2.009191 -3.062400 -v -0.137500 2.009191 -3.062400 -v -0.012500 1.937500 -3.874900 -v -0.137500 1.937500 -3.874900 -v 0.137500 1.937500 -3.874900 -v 0.012500 1.937500 -3.874900 -v 0.012500 2.062500 -3.749900 -v 0.012500 1.937500 -3.749900 -v -0.012500 1.687500 -3.874900 -v -0.137500 1.687500 -3.874900 -v -0.137500 1.687500 -3.749900 -v -0.012500 1.687500 -3.749900 -v 0.137500 1.687500 -3.749900 -v 0.137500 1.687500 -3.874900 -v 0.012500 1.687500 -3.874900 -v 0.012500 1.687500 -3.749900 -v 0.012500 2.062500 -3.437400 -v 0.625000 2.001000 -3.187500 -v 0.625000 2.001000 -3.062500 -v 0.875000 2.001000 -3.062500 -v 0.875000 2.001000 -3.187500 -v 0.012500 2.187500 -3.437400 -v 0.012500 2.134191 -3.062400 -v 0.012500 2.009191 -3.062400 -v -0.137500 2.134191 -3.062400 -v -0.012500 2.134191 -3.062400 -v -0.625000 1.938500 -3.250000 -v 0.625000 1.938500 -3.250000 -v 0.625000 1.830247 -3.187500 -v -0.625000 1.830247 -3.187500 -v 0.625000 1.876000 -3.062500 -v 0.875000 1.876000 -3.062500 -v 0.625000 1.830247 -3.062500 -v -0.625000 1.830247 -3.062500 -v 0.625000 1.876000 -3.187500 -v 0.875000 1.876000 -3.187500 -v 0.625000 1.938500 -3.000000 -v -0.625000 1.938500 -3.000000 -v 0.625000 2.046753 -3.062500 -v -0.625000 2.046753 -3.062500 -v 0.625000 2.046753 -3.187500 -v -0.625000 2.046753 -3.187500 -v 1.000000 2.001000 -3.187500 -v 1.000000 2.001000 -3.062500 -v 0.875000 2.126000 -3.187500 -v 1.000000 2.126000 -3.187500 -v 0.875000 2.126000 -3.312500 -v 1.000000 2.126000 -3.312500 -v 1.000000 2.126000 -3.062500 -v 0.875000 2.126000 -3.062500 -v 1.000000 2.251000 -3.187500 -v 0.875000 2.251000 -3.187500 -v 0.875000 2.251000 -3.312500 -v 1.000000 2.251000 -3.312500 -v 1.000000 2.001000 -3.937500 -v 0.875000 2.001000 -3.937500 -v 1.000000 1.876000 -3.937500 -v 1.000000 1.876000 -4.062500 -v 0.875000 1.876000 -3.937500 -v 0.875000 1.876000 -4.062500 -v 0.875000 1.626000 -4.062500 -v 0.875000 1.626000 -3.937500 -v 0.875000 1.501000 -3.937500 -v 0.625000 1.626000 -3.937500 -v 0.625000 1.501000 -3.937500 -v 1.000000 1.626000 -3.937500 -v 1.000000 1.626000 -4.062500 -v 0.875000 1.501000 -4.062500 -v 0.625000 1.626000 -4.062500 -v 0.625000 1.501000 -4.062500 -v 0.110485 0.764515 -0.750000 -v 0.156250 0.875000 -0.750000 -v 0.156250 0.737706 -0.418544 -v 0.110485 0.659581 -0.496669 -v 0.110485 0.985485 -0.750000 -v 0.000000 1.031250 -0.750000 -v 0.000000 0.848192 -0.308058 -v 0.110485 0.815831 -0.340419 -v -0.110486 0.985485 -0.750000 -v -0.156250 0.875000 -0.750000 -v -0.156250 0.737706 -0.418544 -v -0.110486 0.815831 -0.340419 -v -0.110486 0.764515 -0.750000 -v -0.110486 0.659581 -0.496669 -v 0.000000 0.718750 -0.750000 -v 0.000000 0.627221 -0.529029 -v -0.156250 0.585633 -0.316931 -v -0.110486 0.627914 -0.214856 -v 0.000000 0.645427 -0.172575 -v 0.110485 0.627914 -0.214856 -v 0.156250 0.585633 -0.316931 -v 0.110485 0.543352 -0.419007 -v 0.000000 0.525838 -0.461288 -v -0.110486 0.543352 -0.419007 -v 0.110485 0.406250 -0.391735 -v 0.000000 0.406250 -0.437500 -v -0.110486 0.406250 -0.391735 -v -0.156250 0.406250 -0.281250 -v -0.110486 0.406250 -0.170765 -v 0.000000 0.406250 -0.125000 -v 0.110485 0.406250 -0.170765 -v 0.156250 0.406250 -0.281250 -v -0.110486 0.184586 -0.214856 -v 0.000000 0.167073 -0.172575 -v 0.110485 0.184586 -0.214856 -v 0.156250 0.226867 -0.316932 -v 0.110485 0.269148 -0.419007 -v 0.000000 0.286661 -0.461288 -v -0.110486 0.269148 -0.419007 -v -0.156250 0.226867 -0.316932 -v -0.196566 0.367147 -0.468769 -v -0.200528 0.477172 -0.515462 -v -0.286731 0.557772 -0.534803 -v -0.404678 0.561734 -0.515462 -v -0.485279 0.486735 -0.468769 -v -0.481318 0.376710 -0.422076 -v -0.395115 0.296110 -0.402735 -v -0.277166 0.292148 -0.422076 -v 0.230970 1.345671 -0.750000 -v 0.095671 1.480970 -0.750000 -v 0.095671 1.019030 -0.750000 -v 0.230970 1.154329 -0.750000 -v -0.230970 1.154329 -0.750000 -v -0.095671 1.019030 -0.750000 -v -0.095671 1.480970 -0.750000 -v -0.230970 1.345671 -0.750000 -v 0.000000 1.921303 -2.989438 -v -0.125000 1.951658 -2.975283 -v -0.250000 2.147880 -2.883784 -v -0.216506 2.261168 -2.830956 -v 0.125000 1.951658 -2.975283 -v -0.216506 2.034591 -2.936611 -v -0.125000 2.344101 -2.792284 -v 0.375000 2.147880 -2.883783 -v -0.375000 2.261168 -2.830956 -v -0.312500 2.245990 -2.838034 -v -0.500000 2.147880 -2.883784 -v -0.483253 2.204524 -2.857370 -v -0.266747 2.091235 -2.910197 -v -0.312500 2.049769 -2.929533 -v -0.375000 2.034591 -2.936611 -v -0.437500 2.049769 -2.929533 -v -0.266747 2.204524 -2.857370 -v -0.437500 2.245990 -2.838034 -v -0.483253 2.091235 -2.910197 -v -0.250000 2.147880 -2.883784 -v 0.911612 2.036612 -1.125000 -v 0.875000 2.125000 -1.125000 -v 0.823223 2.073223 -0.948223 -v 0.867418 1.992418 -0.974112 -v 0.786612 2.161612 -1.125000 -v 0.698223 2.125000 -1.125000 -v 0.672335 2.099112 -1.036612 -v 0.742418 2.117417 -0.974112 -v -0.786612 2.161612 -1.125000 -v -0.742418 2.117417 -0.974112 -v -0.672335 2.099112 -1.036612 -v -0.698223 2.125000 -1.125000 -v -0.911612 2.036612 -1.125000 -v -0.867418 1.992418 -0.974112 -v -0.823223 2.073223 -0.948223 -v -0.875000 2.125000 -1.125000 -v -0.875000 1.948223 -1.125000 -v -0.849112 1.922335 -1.036612 -v -0.698223 1.948223 -0.875000 -v -0.635723 2.010723 -0.911612 -v -0.786612 1.859835 -1.000000 -v -0.760723 1.885723 -0.911612 -v -0.609835 2.036612 -1.000000 -v -0.609835 2.338388 -1.125000 -v -0.565641 2.294194 -0.974112 -v -0.495558 2.275888 -1.036612 -v -0.521447 2.301777 -1.125000 -v -0.734835 2.213388 -1.125000 -v -0.690641 2.169194 -0.974112 -v -0.646447 2.250000 -0.948223 -v -0.698223 2.301777 -1.125000 -v -0.698223 2.125000 -1.125000 -v -0.672335 2.099112 -1.036612 -v -0.521447 2.125000 -0.875000 -v -0.458947 2.187500 -0.911612 -v -0.609835 2.036612 -1.000000 -v -0.583947 2.062500 -0.911612 -v -0.433058 2.213388 -1.000000 -v -0.963388 1.984835 -1.125000 -v -0.919194 1.940641 -0.974112 -v -0.849112 1.922335 -1.036612 -v -0.875000 1.948223 -1.125000 -v -1.088388 1.859835 -1.125000 -v -1.044194 1.815641 -0.974112 -v -1.000000 1.896446 -0.948223 -v -1.051777 1.948223 -1.125000 -v -1.051777 1.771446 -1.125000 -v -1.025888 1.745558 -1.036612 -v -0.875000 1.771446 -0.875000 -v -0.812500 1.833946 -0.911612 -v -0.963388 1.683058 -1.000000 -v -0.937500 1.708946 -0.911612 -v -0.786612 1.859835 -1.000000 -v -0.698223 2.125000 -1.812500 -v -0.786612 2.161612 -1.812500 -v -0.521447 2.301777 -1.875000 -v -0.609835 2.338388 -1.875000 -v -0.875000 2.125000 -1.812500 -v -0.911612 2.036612 -1.812500 -v -0.875000 1.948223 -1.750000 -v -0.963388 1.984835 -1.750000 -v -0.698223 2.301777 -1.875000 -v -0.875000 1.948223 -1.812500 -v -0.734835 2.213388 -1.875000 -v -1.051777 1.948223 -1.750000 -v -1.088388 1.859835 -1.750000 -v -0.698223 2.125000 -1.875000 -v -1.051777 1.771446 -1.750000 -v 0.875000 1.948223 -1.125000 -v 0.849112 1.922335 -1.036612 -v 0.635723 2.010723 -0.911612 -v 0.698223 1.948223 -0.875000 -v 0.760723 1.885723 -0.911612 -v 0.786612 1.859835 -1.000000 -v 0.609835 2.036612 -1.000000 -v 0.609835 2.338388 -1.125000 -v 0.521447 2.301777 -1.125000 -v 0.495558 2.275888 -1.036612 -v 0.565641 2.294194 -0.974112 -v 0.734835 2.213388 -1.125000 -v 0.698223 2.301777 -1.125000 -v 0.646447 2.250000 -0.948223 -v 0.690641 2.169194 -0.974112 -v 0.698223 2.125000 -1.125000 -v 0.672335 2.099112 -1.036612 -v 0.458947 2.187500 -0.911612 -v 0.521447 2.125000 -0.875000 -v 0.583947 2.062500 -0.911612 -v 0.609835 2.036612 -1.000000 -v 0.433058 2.213388 -1.000000 -v 0.963388 1.984835 -1.125000 -v 0.875000 1.948223 -1.125000 -v 0.849112 1.922335 -1.036612 -v 0.919194 1.940641 -0.974112 -v 1.088388 1.859835 -1.125000 -v 1.051777 1.948223 -1.125000 -v 1.000000 1.896446 -0.948223 -v 1.044194 1.815641 -0.974112 -v 1.051777 1.771446 -1.125000 -v 1.025888 1.745558 -1.036612 -v 0.812500 1.833946 -0.911612 -v 0.875000 1.771446 -0.875000 -v 0.937500 1.708946 -0.911612 -v 0.963388 1.683058 -1.000000 -v 0.786612 1.859835 -1.000000 -v 0.786612 2.161612 -1.812500 -v 0.698223 2.125000 -1.812500 -v 0.609835 2.338388 -1.875000 -v 0.521447 2.301777 -1.875000 -v 0.875000 2.125000 -1.812500 -v 0.911612 2.036612 -1.812500 -v 0.963388 1.984835 -1.750000 -v 0.875000 1.948223 -1.750000 -v 0.698223 2.301777 -1.875000 -v 0.875000 1.948223 -1.812500 -v 0.734835 2.213388 -1.875000 -v 1.051777 1.948223 -1.750000 -v 1.088388 1.859835 -1.750000 -v 0.698223 2.125000 -1.875000 -v 1.051777 1.771446 -1.750000 -v 1.000000 0.500000 -2.625000 -v 0.344030 1.791848 -0.175597 -v 0.424630 1.866847 -0.128904 -v 0.388541 1.881795 -0.128904 -v 0.328091 1.825547 -0.163924 -v 0.420670 1.976871 -0.082211 -v 0.334466 2.057472 -0.062870 -v 0.320918 2.024764 -0.079378 -v 0.385571 1.964314 -0.093884 -v 0.216518 2.061433 -0.082211 -v 0.135918 1.986435 -0.128904 -v 0.172007 1.971487 -0.128904 -v 0.232457 2.027735 -0.093884 -v 0.139879 1.876410 -0.175597 -v 0.174978 1.888968 -0.163924 -v 0.226082 1.795810 -0.194938 -v 0.239630 1.828518 -0.178429 -v 0.208096 1.956538 -0.128904 -v 0.210077 1.901526 -0.152250 -v 0.253178 1.861225 -0.161921 -v 0.312152 1.859245 -0.152250 -v 0.352451 1.896744 -0.128904 -v 0.350472 1.951756 -0.105557 -v 0.307370 1.992056 -0.095887 -v 0.248396 1.994037 -0.105557 -v 0.222349 2.003332 -0.037240 -v 0.161900 1.947084 -0.072260 -v 0.197989 1.932135 -0.072260 -v 0.238288 1.969634 -0.048913 -v 0.164869 1.864565 -0.107280 -v 0.199968 1.877123 -0.095606 -v 0.229523 1.804115 -0.121785 -v 0.243071 1.836822 -0.105277 -v 0.317984 1.801143 -0.107280 -v 0.302044 1.834842 -0.095606 -v 0.378433 1.857392 -0.072260 -v 0.342344 1.872341 -0.072260 -v 0.375462 1.939911 -0.037240 -v 0.340365 1.927353 -0.048913 -v 0.310810 2.000361 -0.022734 -v 0.297262 1.967653 -0.039243 -v -0.110485 1.735485 -0.750000 -v -0.156250 1.625000 -0.750000 -v -0.156250 1.762294 -0.418544 -v -0.110485 1.840419 -0.496669 -v -0.110485 1.514515 -0.750000 -v 0.000000 1.468750 -0.750000 -v 0.000000 1.651808 -0.308058 -v -0.110485 1.684169 -0.340419 -v 0.110486 1.514515 -0.750000 -v 0.156250 1.625000 -0.750000 -v 0.156250 1.762294 -0.418544 -v 0.110486 1.684169 -0.340419 -v 0.110486 1.735485 -0.750000 -v 0.110486 1.840419 -0.496669 -v 0.000000 1.781250 -0.750000 -v 0.000000 1.872779 -0.529029 -v 0.156250 1.914367 -0.316931 -v 0.110486 1.872086 -0.214856 -v 0.000000 1.854573 -0.172575 -v -0.110485 1.872086 -0.214856 -v -0.156250 1.914367 -0.316931 -v -0.110485 1.956648 -0.419007 -v 0.000000 1.974162 -0.461288 -v 0.110486 1.956648 -0.419007 -v -0.110485 2.093750 -0.391735 -v 0.000000 2.093750 -0.437500 -v 0.110486 2.093750 -0.391735 -v 0.156250 2.093750 -0.281250 -v 0.110486 2.093750 -0.170765 -v 0.000000 2.093750 -0.125000 -v -0.110485 2.093750 -0.170765 -v -0.156250 2.093750 -0.281250 -v 0.110486 2.315414 -0.214856 -v 0.000000 2.332927 -0.172575 -v -0.110485 2.315414 -0.214856 -v -0.156250 2.273133 -0.316932 -v -0.110485 2.230852 -0.419007 -v 0.000000 2.213339 -0.461288 -v 0.110486 2.230852 -0.419007 -v 0.156250 2.273133 -0.316932 -v 0.196566 2.132853 -0.468769 -v 0.200528 2.022828 -0.515462 -v 0.286731 1.942228 -0.534803 -v 0.404678 1.938266 -0.515462 -v 0.485279 2.013265 -0.468769 -v 0.481318 2.123290 -0.422076 -v 0.395115 2.203890 -0.402735 -v 0.277166 2.207852 -0.422076 -v -0.541848 1.594031 -0.175597 -v -0.616847 1.674630 -0.128904 -v -0.631795 1.638541 -0.128904 -v -0.575547 1.578091 -0.163924 -v -0.726871 1.670670 -0.082211 -v -0.807472 1.584466 -0.062870 -v -0.774764 1.570918 -0.079378 -v -0.714314 1.635571 -0.093884 -v -0.811433 1.466519 -0.082211 -v -0.736435 1.385918 -0.128904 -v -0.721487 1.422007 -0.128904 -v -0.777735 1.482457 -0.093884 -v -0.626410 1.389879 -0.175597 -v -0.638968 1.424978 -0.163924 -v -0.545810 1.476082 -0.194938 -v -0.578518 1.489630 -0.178429 -v -0.706538 1.458096 -0.128904 -v -0.651526 1.460078 -0.152250 -v -0.611225 1.503178 -0.161921 -v -0.609245 1.562152 -0.152250 -v -0.646744 1.602452 -0.128904 -v -0.701756 1.600472 -0.105557 -v -0.742056 1.557370 -0.095887 -v -0.744037 1.498396 -0.105557 -v -0.753332 1.472349 -0.037240 -v -0.697084 1.411900 -0.072260 -v -0.682135 1.447989 -0.072260 -v -0.719634 1.488288 -0.048913 -v -0.614565 1.414870 -0.107280 -v -0.627123 1.449969 -0.095606 -v -0.554115 1.479523 -0.121785 -v -0.586822 1.493071 -0.105277 -v -0.551143 1.567984 -0.107280 -v -0.584842 1.552044 -0.095606 -v -0.607392 1.628433 -0.072260 -v -0.622341 1.592345 -0.072260 -v -0.689911 1.625462 -0.037240 -v -0.677353 1.590365 -0.048913 -v -0.750361 1.560810 -0.022734 -v -0.717653 1.547262 -0.039243 -v -0.485485 1.139515 -0.750000 -v -0.375000 1.093750 -0.750000 -v -0.512294 1.093750 -0.418544 -v -0.590419 1.139515 -0.496669 -v -0.264515 1.139515 -0.750000 -v -0.218750 1.250000 -0.750000 -v -0.401808 1.250000 -0.308058 -v -0.434169 1.139515 -0.340419 -v -0.264515 1.360486 -0.750000 -v -0.375000 1.406250 -0.750000 -v -0.512294 1.406250 -0.418544 -v -0.434169 1.360486 -0.340419 -v -0.485485 1.360486 -0.750000 -v -0.590419 1.360486 -0.496669 -v -0.531250 1.250000 -0.750000 -v -0.622779 1.250000 -0.529029 -v -0.664367 1.406250 -0.316931 -v -0.622086 1.360486 -0.214856 -v -0.604573 1.250000 -0.172575 -v -0.622086 1.139515 -0.214856 -v -0.664367 1.093750 -0.316931 -v -0.706648 1.139515 -0.419007 -v -0.724162 1.250000 -0.461288 -v -0.706648 1.360486 -0.419007 -v -0.843750 1.139515 -0.391735 -v -0.843750 1.250000 -0.437500 -v -0.843750 1.360486 -0.391735 -v -0.843750 1.406250 -0.281250 -v -0.843750 1.360486 -0.170765 -v -0.843750 1.250000 -0.125000 -v -0.843750 1.139515 -0.170765 -v -0.843750 1.093750 -0.281250 -v -1.065414 1.360486 -0.214856 -v -1.082927 1.250000 -0.172575 -v -1.065414 1.139515 -0.214856 -v -1.023133 1.093750 -0.316932 -v -0.980852 1.139515 -0.419007 -v -0.963339 1.250000 -0.461288 -v -0.980852 1.360486 -0.419007 -v -1.023133 1.406250 -0.316932 -v -0.882853 1.446566 -0.468769 -v -0.772828 1.450528 -0.515462 -v -0.692228 1.536731 -0.534803 -v -0.688266 1.654678 -0.515462 -v -0.763265 1.735279 -0.468769 -v -0.873290 1.731318 -0.422076 -v -0.953890 1.645115 -0.402735 -v -0.957852 1.527166 -0.422076 -v 0.541848 0.905970 -0.175597 -v 0.616847 0.825370 -0.128904 -v 0.631795 0.861459 -0.128904 -v 0.575547 0.921909 -0.163924 -v 0.726871 0.829330 -0.082211 -v 0.807472 0.915534 -0.062870 -v 0.774764 0.929082 -0.079378 -v 0.714314 0.864429 -0.093884 -v 0.811433 1.033482 -0.082211 -v 0.736435 1.114082 -0.128904 -v 0.721487 1.077993 -0.128904 -v 0.777735 1.017543 -0.093884 -v 0.626410 1.110121 -0.175597 -v 0.638968 1.075022 -0.163924 -v 0.545810 1.023918 -0.194938 -v 0.578518 1.010370 -0.178429 -v 0.706538 1.041904 -0.128904 -v 0.651526 1.039923 -0.152250 -v 0.611225 0.996822 -0.161921 -v 0.609245 0.937848 -0.152250 -v 0.646744 0.897549 -0.128904 -v 0.701756 0.899529 -0.105557 -v 0.742056 0.942630 -0.095887 -v 0.744037 1.001604 -0.105557 -v 0.753332 1.027651 -0.037240 -v 0.697084 1.088100 -0.072260 -v 0.682135 1.052011 -0.072260 -v 0.719634 1.011712 -0.048913 -v 0.614565 1.085131 -0.107280 -v 0.627123 1.050032 -0.095606 -v 0.554115 1.020477 -0.121785 -v 0.586822 1.006929 -0.105277 -v 0.551143 0.932016 -0.107280 -v 0.584842 0.947956 -0.095606 -v 0.607392 0.871567 -0.072260 -v 0.622341 0.907656 -0.072260 -v 0.689911 0.874539 -0.037240 -v 0.677353 0.909636 -0.048913 -v 0.750361 0.939190 -0.022734 -v 0.717653 0.952738 -0.039243 -v 0.485485 1.360485 -0.750000 -v 0.375000 1.406250 -0.750000 -v 0.512294 1.406250 -0.418544 -v 0.590419 1.360485 -0.496669 -v 0.264515 1.360485 -0.750000 -v 0.218750 1.250000 -0.750000 -v 0.401808 1.250000 -0.308058 -v 0.434169 1.360485 -0.340419 -v 0.264515 1.139514 -0.750000 -v 0.375000 1.093750 -0.750000 -v 0.512294 1.093750 -0.418544 -v 0.434169 1.139514 -0.340419 -v 0.485485 1.139514 -0.750000 -v 0.590419 1.139514 -0.496669 -v 0.531250 1.250000 -0.750000 -v 0.622779 1.250000 -0.529029 -v 0.664367 1.093750 -0.316931 -v 0.622086 1.139514 -0.214856 -v 0.604573 1.250000 -0.172575 -v 0.622086 1.360485 -0.214856 -v 0.664367 1.406250 -0.316931 -v 0.706648 1.360485 -0.419007 -v 0.724162 1.250000 -0.461288 -v 0.706648 1.139514 -0.419007 -v 0.843750 1.360485 -0.391735 -v 0.843750 1.250000 -0.437500 -v 0.843750 1.139514 -0.391735 -v 0.843750 1.093750 -0.281250 -v 0.843750 1.139514 -0.170765 -v 0.843750 1.250000 -0.125000 -v 0.843750 1.360485 -0.170765 -v 0.843750 1.406250 -0.281250 -v 1.065414 1.139514 -0.214856 -v 1.082927 1.250000 -0.172575 -v 1.065414 1.360485 -0.214856 -v 1.023133 1.406250 -0.316932 -v 0.980852 1.360485 -0.419007 -v 0.963339 1.250000 -0.461288 -v 0.980852 1.139514 -0.419007 -v 1.023133 1.093750 -0.316932 -v 0.882853 1.053434 -0.468769 -v 0.772828 1.049472 -0.515462 -v 0.692228 0.963269 -0.534803 -v 0.688266 0.845322 -0.515462 -v 0.763265 0.764721 -0.468769 -v 0.873290 0.768682 -0.422076 -v 0.953890 0.854885 -0.402735 -v 0.957852 0.972834 -0.422076 -v -0.626411 1.110122 -0.175597 -v -0.736436 1.114082 -0.128904 -v -0.721487 1.077994 -0.128904 -v -0.638968 1.075022 -0.163924 -v -0.811434 1.033483 -0.082211 -v -0.807472 0.915534 -0.062870 -v -0.774764 0.929083 -0.079378 -v -0.777736 1.017543 -0.093884 -v -0.726871 0.829332 -0.082211 -v -0.616847 0.825370 -0.128904 -v -0.631795 0.861459 -0.128904 -v -0.714314 0.864430 -0.093884 -v -0.541848 0.905971 -0.175597 -v -0.575547 0.921910 -0.163924 -v -0.545810 1.023918 -0.194938 -v -0.578518 1.010370 -0.178429 -v -0.646744 0.897548 -0.128904 -v -0.609246 0.937849 -0.152250 -v -0.611225 0.996822 -0.161921 -v -0.651526 1.039924 -0.152250 -v -0.706538 1.041904 -0.128904 -v -0.744037 1.001604 -0.105557 -v -0.742056 0.942631 -0.095887 -v -0.701756 0.899529 -0.105557 -v -0.689911 0.874538 -0.037240 -v -0.607393 0.871567 -0.072260 -v -0.622341 0.907657 -0.072260 -v -0.677353 0.909637 -0.048913 -v -0.551143 0.932017 -0.107280 -v -0.584842 0.947956 -0.095606 -v -0.554116 1.020479 -0.121785 -v -0.586823 1.006931 -0.105277 -v -0.614565 1.085132 -0.107280 -v -0.627123 1.050032 -0.095606 -v -0.697084 1.088102 -0.072260 -v -0.682136 1.052012 -0.072260 -v -0.753332 1.027651 -0.037240 -v -0.719635 1.011713 -0.048913 -v -0.750361 0.939191 -0.022734 -v -0.717654 0.952739 -0.039243 -v -0.265165 0.828586 -0.750000 -v -0.154680 0.874350 -0.750000 -v -0.251761 0.777268 -0.418544 -v -0.339365 0.754386 -0.496669 -v -0.108916 0.984835 -0.750000 -v -0.154680 1.095320 -0.750000 -v -0.284121 0.965879 -0.308058 -v -0.228879 0.864871 -0.340419 -v -0.265166 1.141085 -0.750000 -v -0.375651 1.095320 -0.750000 -v -0.472732 0.998239 -0.418544 -v -0.385129 1.021122 -0.340419 -v -0.421415 0.984836 -0.750000 -v -0.495615 0.910636 -0.496669 -v -0.375651 0.874350 -0.750000 -v -0.440371 0.809629 -0.529029 -v -0.580264 0.890707 -0.316931 -v -0.518007 0.888244 -0.214856 -v -0.427498 0.822502 -0.172575 -v -0.361757 0.731994 -0.214856 -v -0.359293 0.669736 -0.316931 -v -0.421551 0.672200 -0.419007 -v -0.512060 0.737940 -0.461288 -v -0.577801 0.828450 -0.419007 -v -0.518497 0.575254 -0.391735 -v -0.596621 0.653379 -0.437500 -v -0.674747 0.731504 -0.391735 -v -0.707107 0.763864 -0.281250 -v -0.674747 0.731504 -0.170765 -v -0.596621 0.653379 -0.125000 -v -0.518497 0.575254 -0.170765 -v -0.486136 0.542893 -0.281250 -v -0.831487 0.574764 -0.214856 -v -0.765745 0.484255 -0.172575 -v -0.675237 0.418514 -0.214856 -v -0.612979 0.416050 -0.316932 -v -0.615442 0.478308 -0.419007 -v -0.681184 0.568817 -0.461288 -v -0.771693 0.634558 -0.419007 -v -0.833950 0.637021 -0.316932 -v -0.763264 0.764722 -0.468769 -v -0.688267 0.845323 -0.515462 -v -0.692228 0.963270 -0.534803 -v -0.772828 1.049473 -0.515462 -v -0.882854 1.053434 -0.468769 -v -0.957852 0.972834 -0.422076 -v -0.953891 0.854886 -0.402735 -v -0.873290 0.768683 -0.422076 -v 0.626411 1.389878 -0.175597 -v 0.736436 1.385918 -0.128904 -v 0.721487 1.422006 -0.128904 -v 0.638968 1.424978 -0.163924 -v 0.811434 1.466517 -0.082211 -v 0.807472 1.584466 -0.062870 -v 0.774764 1.570918 -0.079378 -v 0.777736 1.482457 -0.093884 -v 0.726872 1.670668 -0.082211 -v 0.616847 1.674630 -0.128904 -v 0.631796 1.638541 -0.128904 -v 0.714314 1.635570 -0.093884 -v 0.541848 1.594029 -0.175597 -v 0.575547 1.578090 -0.163924 -v 0.545810 1.476082 -0.194938 -v 0.578518 1.489630 -0.178429 -v 0.646744 1.602452 -0.128904 -v 0.609246 1.562152 -0.152250 -v 0.611225 1.503178 -0.161921 -v 0.651526 1.460077 -0.152250 -v 0.706538 1.458097 -0.128904 -v 0.744037 1.498396 -0.105557 -v 0.742057 1.557369 -0.095887 -v 0.701756 1.600471 -0.105557 -v 0.689911 1.625462 -0.037240 -v 0.607393 1.628433 -0.072260 -v 0.622342 1.592343 -0.072260 -v 0.677353 1.590363 -0.048913 -v 0.551144 1.567983 -0.107280 -v 0.584842 1.552044 -0.095606 -v 0.554116 1.479522 -0.121785 -v 0.586823 1.493069 -0.105277 -v 0.614566 1.414869 -0.107280 -v 0.627123 1.449969 -0.095606 -v 0.697084 1.411898 -0.072260 -v 0.682136 1.447988 -0.072260 -v 0.753332 1.472350 -0.037240 -v 0.719635 1.488287 -0.048913 -v 0.750361 1.560810 -0.022734 -v 0.717654 1.547261 -0.039243 -v 0.265165 1.671415 -0.750000 -v 0.154680 1.625651 -0.750000 -v 0.251761 1.722732 -0.418544 -v 0.339365 1.745614 -0.496669 -v 0.108916 1.515165 -0.750000 -v 0.154680 1.404680 -0.750000 -v 0.284121 1.534121 -0.308058 -v 0.228879 1.635129 -0.340419 -v 0.265166 1.358915 -0.750000 -v 0.375651 1.404680 -0.750000 -v 0.472732 1.501761 -0.418544 -v 0.385129 1.478879 -0.340419 -v 0.421415 1.515165 -0.750000 -v 0.495615 1.589364 -0.496669 -v 0.375651 1.625651 -0.750000 -v 0.440371 1.690371 -0.529029 -v 0.580264 1.609293 -0.316931 -v 0.518007 1.611756 -0.214856 -v 0.427498 1.677498 -0.172575 -v 0.361757 1.768006 -0.214856 -v 0.359293 1.830264 -0.316931 -v 0.421551 1.827801 -0.419007 -v 0.512060 1.762060 -0.461288 -v 0.577801 1.671550 -0.419007 -v 0.518497 1.924746 -0.391735 -v 0.596621 1.846622 -0.437500 -v 0.674747 1.768496 -0.391735 -v 0.707107 1.736136 -0.281250 -v 0.674747 1.768496 -0.170765 -v 0.596621 1.846622 -0.125000 -v 0.518497 1.924746 -0.170765 -v 0.486136 1.957107 -0.281250 -v 0.831487 1.925236 -0.214856 -v 0.765745 2.015745 -0.172575 -v 0.675237 2.081486 -0.214856 -v 0.612979 2.083950 -0.316932 -v 0.615442 2.021692 -0.419007 -v 0.681184 1.931184 -0.461288 -v 0.771693 1.865442 -0.419007 -v 0.833950 1.862979 -0.316932 -v 0.763264 1.735279 -0.468769 -v 0.688267 1.654677 -0.515462 -v 0.692229 1.536730 -0.534803 -v 0.772828 1.450527 -0.515462 -v 0.882854 1.446566 -0.468769 -v 0.957852 1.527166 -0.422076 -v 0.953891 1.645114 -0.402735 -v 0.873290 1.731318 -0.422076 -v -0.139878 1.876411 -0.175597 -v -0.135918 1.986436 -0.128904 -v -0.172006 1.971487 -0.128904 -v -0.174978 1.888969 -0.163924 -v -0.216517 2.061434 -0.082211 -v -0.334466 2.057472 -0.062870 -v -0.320918 2.024765 -0.079378 -v -0.232457 2.027736 -0.093884 -v -0.420668 1.976872 -0.082211 -v -0.424630 1.866847 -0.128904 -v -0.388541 1.881796 -0.128904 -v -0.385570 1.964314 -0.093884 -v -0.344029 1.791849 -0.175597 -v -0.328090 1.825547 -0.163924 -v -0.226082 1.795810 -0.194938 -v -0.239630 1.828518 -0.178429 -v -0.352452 1.896744 -0.128904 -v -0.312151 1.859246 -0.152250 -v -0.253178 1.861225 -0.161921 -v -0.210077 1.901526 -0.152250 -v -0.208096 1.956538 -0.128904 -v -0.248396 1.994038 -0.105557 -v -0.307369 1.992057 -0.095887 -v -0.350471 1.951756 -0.105557 -v -0.375462 1.939911 -0.037240 -v -0.378433 1.857393 -0.072260 -v -0.342343 1.872342 -0.072260 -v -0.340363 1.927353 -0.048913 -v -0.317983 1.801144 -0.107280 -v -0.302044 1.834842 -0.095606 -v -0.229521 1.804116 -0.121785 -v -0.243069 1.836823 -0.105277 -v -0.164869 1.864566 -0.107280 -v -0.199968 1.877123 -0.095606 -v -0.161898 1.947084 -0.072260 -v -0.197988 1.932136 -0.072260 -v -0.222349 2.003333 -0.037240 -v -0.238287 1.969635 -0.048913 -v -0.310809 2.000361 -0.022734 -v -0.297261 1.967654 -0.039243 -v -0.421415 1.515165 -0.750000 -v -0.375651 1.404680 -0.750000 -v -0.472732 1.501761 -0.418544 -v -0.495614 1.589365 -0.496669 -v -0.265165 1.358916 -0.750000 -v -0.154680 1.404680 -0.750000 -v -0.284121 1.534121 -0.308058 -v -0.385129 1.478879 -0.340419 -v -0.108915 1.515166 -0.750000 -v -0.154680 1.625651 -0.750000 -v -0.251761 1.722732 -0.418544 -v -0.228879 1.635129 -0.340419 -v -0.265164 1.671415 -0.750000 -v -0.339364 1.745615 -0.496669 -v -0.375651 1.625651 -0.750000 -v -0.440371 1.690372 -0.529029 -v -0.359293 1.830264 -0.316931 -v -0.361756 1.768007 -0.214856 -v -0.427498 1.677498 -0.172575 -v -0.518006 1.611757 -0.214856 -v -0.580264 1.609293 -0.316931 -v -0.577800 1.671551 -0.419007 -v -0.512060 1.762060 -0.461288 -v -0.421550 1.827801 -0.419007 -v -0.674746 1.768497 -0.391735 -v -0.596621 1.846622 -0.437500 -v -0.518496 1.924747 -0.391735 -v -0.486136 1.957107 -0.281250 -v -0.518496 1.924747 -0.170765 -v -0.596621 1.846622 -0.125000 -v -0.674746 1.768497 -0.170765 -v -0.707107 1.736136 -0.281250 -v -0.675236 2.081487 -0.214856 -v -0.765745 2.015745 -0.172575 -v -0.831486 1.925237 -0.214856 -v -0.833950 1.862979 -0.316932 -v -0.771692 1.865443 -0.419007 -v -0.681184 1.931184 -0.461288 -v -0.615442 2.021693 -0.419007 -v -0.612979 2.083950 -0.316932 -v -0.485278 2.013265 -0.468769 -v -0.404677 1.938267 -0.515462 -v -0.286730 1.942229 -0.534803 -v -0.200527 2.022829 -0.515462 -v -0.196566 2.132854 -0.468769 -v -0.277167 2.207852 -0.422076 -v -0.395114 2.203891 -0.402735 -v -0.481318 2.123290 -0.422076 -v 0.139878 0.623589 -0.175597 -v 0.135918 0.513564 -0.128904 -v 0.172006 0.528513 -0.128904 -v 0.174978 0.611032 -0.163924 -v 0.216517 0.438566 -0.082211 -v 0.334466 0.442528 -0.062870 -v 0.320918 0.475236 -0.079378 -v 0.232457 0.472264 -0.093884 -v 0.420668 0.523129 -0.082211 -v 0.424630 0.633153 -0.128904 -v 0.388541 0.618205 -0.128904 -v 0.385570 0.535686 -0.093884 -v 0.344029 0.708152 -0.175597 -v 0.328090 0.674453 -0.163924 -v 0.226082 0.704190 -0.194938 -v 0.239630 0.671482 -0.178429 -v 0.352452 0.603256 -0.128904 -v 0.312151 0.640754 -0.152250 -v 0.253178 0.638775 -0.161921 -v 0.210077 0.598474 -0.152250 -v 0.208096 0.543462 -0.128904 -v 0.248396 0.505963 -0.105557 -v 0.307369 0.507944 -0.095887 -v 0.350471 0.548244 -0.105557 -v 0.375462 0.560089 -0.037240 -v 0.378433 0.642607 -0.072260 -v 0.342343 0.627659 -0.072260 -v 0.340363 0.572647 -0.048913 -v 0.317983 0.698857 -0.107280 -v 0.302044 0.665158 -0.095606 -v 0.229521 0.695884 -0.121785 -v 0.243069 0.663177 -0.105277 -v 0.164869 0.635435 -0.107280 -v 0.199969 0.622877 -0.095606 -v 0.161898 0.552916 -0.072260 -v 0.197988 0.567865 -0.072260 -v 0.222349 0.496668 -0.037240 -v 0.238287 0.530365 -0.048913 -v 0.310809 0.499639 -0.022734 -v 0.297261 0.532347 -0.039243 -v 0.421415 0.984835 -0.750000 -v 0.375651 1.095320 -0.750000 -v 0.472732 0.998239 -0.418544 -v 0.495614 0.910635 -0.496669 -v 0.265165 1.141084 -0.750000 -v 0.154680 1.095320 -0.750000 -v 0.284121 0.965879 -0.308058 -v 0.385129 1.021121 -0.340419 -v 0.108915 0.984834 -0.750000 -v 0.154680 0.874350 -0.750000 -v 0.251761 0.777268 -0.418544 -v 0.228879 0.864871 -0.340419 -v 0.265164 0.828585 -0.750000 -v 0.339364 0.754385 -0.496669 -v 0.375650 0.874350 -0.750000 -v 0.440371 0.809629 -0.529029 -v 0.359293 0.669736 -0.316931 -v 0.361756 0.731993 -0.214856 -v 0.427498 0.822502 -0.172575 -v 0.518006 0.888243 -0.214856 -v 0.580264 0.890707 -0.316931 -v 0.577800 0.828449 -0.419007 -v 0.512060 0.737940 -0.461288 -v 0.421550 0.672199 -0.419007 -v 0.674746 0.731503 -0.391735 -v 0.596621 0.653379 -0.437500 -v 0.518496 0.575253 -0.391735 -v 0.486136 0.542893 -0.281250 -v 0.518496 0.575253 -0.170765 -v 0.596621 0.653379 -0.125000 -v 0.674746 0.731503 -0.170765 -v 0.707107 0.763864 -0.281250 -v 0.675236 0.418513 -0.214856 -v 0.765745 0.484255 -0.172575 -v 0.831486 0.574763 -0.214856 -v 0.833950 0.637021 -0.316932 -v 0.771692 0.634558 -0.419007 -v 0.681184 0.568816 -0.461288 -v 0.615442 0.478308 -0.419007 -v 0.612979 0.416050 -0.316932 -v 0.485278 0.486736 -0.468769 -v 0.404677 0.561733 -0.515462 -v 0.286730 0.557772 -0.534803 -v 0.200527 0.477172 -0.515462 -v 0.196566 0.367146 -0.468769 -v 0.277166 0.292148 -0.422076 -v 0.395114 0.296109 -0.402735 -v 0.481317 0.376710 -0.422076 -v 0.391169 2.232164 0.136894 -v 0.014465 2.307096 0.136894 -v 0.014465 2.197720 -0.081856 -v 0.349313 2.131115 -0.081856 -v 0.025414 2.252758 -0.109375 -v 0.360261 2.186152 -0.109375 -v 0.025414 2.362132 0.109375 -v 0.402117 2.287201 0.109375 -v -0.982164 1.641169 0.136894 -v -1.057095 1.264466 0.136894 -v -0.947720 1.264466 -0.081856 -v -0.881115 1.599313 -0.081856 -v -1.002758 1.275414 -0.109375 -v -0.936152 1.610261 -0.109375 -v -1.112132 1.275414 0.109375 -v -1.037201 1.652117 0.109375 -v 0.982164 0.858831 0.136894 -v 1.057095 1.235535 0.136894 -v 0.947720 1.235535 -0.081856 -v 0.881115 0.900687 -0.081856 -v 1.002758 1.224586 -0.109375 -v 0.936152 0.889739 -0.109375 -v 1.112132 1.224586 0.109375 -v 1.037201 0.847883 0.109375 -v -0.971093 0.832103 0.136894 -v -0.757708 0.512749 0.136894 -v -0.680368 0.590089 -0.081856 -v -0.870044 0.873959 -0.081856 -v -0.727027 0.558913 -0.109375 -v -0.916702 0.842784 -0.109375 -v -0.804366 0.481574 0.109375 -v -1.017751 0.800928 0.109375 -v 0.971093 1.667897 0.136894 -v 0.757708 1.987251 0.136894 -v 0.680368 1.909911 -0.081856 -v 0.870044 1.626041 -0.081856 -v 0.727027 1.941087 -0.109375 -v 0.916703 1.657217 -0.109375 -v 0.804366 2.018426 0.109375 -v 1.017752 1.699073 0.109375 -v -0.417897 2.221093 0.136894 -v -0.737251 2.007708 0.136894 -v -0.659911 1.930368 -0.081856 -v -0.376041 2.120044 -0.081856 -v -0.691087 1.977027 -0.109375 -v -0.407216 2.166703 -0.109375 -v -0.768426 2.054366 0.109375 -v -0.449072 2.267752 0.109375 -v 0.417897 0.278907 0.136894 -v 0.737251 0.492292 0.136894 -v 0.659911 0.569632 -0.081856 -v 0.376041 0.379956 -0.081856 -v 0.691087 0.522973 -0.109375 -v 0.407216 0.333298 -0.109375 -v 0.768426 0.445634 0.109375 -v 0.449072 0.232249 0.109375 -v -0.737251 0.492293 0.136894 -v -0.417897 0.278907 0.136894 -v -0.376041 0.379957 -0.081856 -v -0.659911 0.569632 -0.081856 -v -0.407218 0.333298 -0.109375 -v -0.691088 0.522974 -0.109375 -v -0.449074 0.232249 0.109375 -v -0.768427 0.445635 0.109375 -v 0.737251 2.007708 0.136894 -v 0.417897 2.221093 0.136894 -v 0.376041 2.120044 -0.081856 -v 0.659911 1.930368 -0.081856 -v 0.407218 2.166703 -0.109375 -v 0.691088 1.977026 -0.109375 -v 0.449074 2.267751 0.109375 -v 0.768427 2.054366 0.109375 -v -0.757708 1.987251 0.136894 -v -0.971093 1.667897 0.136894 -v -0.870044 1.626041 -0.081856 -v -0.680368 1.909911 -0.081856 -v -0.916702 1.657218 -0.109375 -v -0.727026 1.941088 -0.109375 -v -1.017751 1.699074 0.109375 -v -0.804365 2.018427 0.109375 -v 0.757708 0.512749 0.136894 -v 0.971093 0.832103 0.136894 -v 0.870044 0.873959 -0.081856 -v 0.680368 0.590089 -0.081856 -v 0.916702 0.842782 -0.109375 -v 0.727026 0.558912 -0.109375 -v 1.017751 0.800926 0.109375 -v 0.804366 0.481573 0.109375 -v -1.057095 1.235535 0.136894 -v -0.982164 0.858832 0.136894 -v -0.881115 0.900688 -0.081856 -v -0.947720 1.235535 -0.081856 -v -0.936153 0.889740 -0.109375 -v -1.002758 1.224588 -0.109375 -v -1.037201 0.847885 0.109375 -v -1.112132 1.224588 0.109375 -v 1.057095 1.264465 0.136894 -v 0.982164 1.641169 0.136894 -v 0.881115 1.599313 -0.081856 -v 0.947720 1.264465 -0.081856 -v 0.936153 1.610260 -0.109375 -v 1.002758 1.275412 -0.109375 -v 1.037202 1.652116 0.109375 -v 1.112132 1.275412 0.109375 -v -0.014465 2.307096 0.136894 -v -0.391168 2.232164 0.136894 -v -0.349312 2.131115 -0.081856 -v -0.014465 2.197721 -0.081856 -v -0.360260 2.186153 -0.109375 -v -0.025412 2.252758 -0.109375 -v -0.402115 2.287201 0.109375 -v -0.025412 2.362133 0.109375 -v 0.014465 0.192905 0.136894 -v 0.391169 0.267836 0.136894 -v 0.349312 0.368885 -0.081856 -v 0.014465 0.302280 -0.081856 -v 0.360260 0.313847 -0.109375 -v 0.025412 0.247242 -0.109375 -v 0.402115 0.212799 0.109375 -v 0.025412 0.137868 0.109375 -v 0.375000 2.500000 -1.875000 -v 0.375000 2.500000 -0.875000 -v -0.375000 2.500000 -1.875000 -v -0.375000 2.500000 -0.875000 -v 0.375000 2.250000 -1.875000 -v 0.375000 2.250000 -0.875000 -v -0.375000 2.250000 -1.875000 -v -0.375000 2.250000 -0.875000 -v 0.000000 2.500000 -1.875000 -v -0.088388 2.463388 -1.875000 -v -0.125000 2.375000 -1.875000 -v 0.125000 2.375000 -1.875000 -v 0.088388 2.463388 -1.875000 -v 0.000000 2.500000 -1.125000 -v -0.088388 2.463388 -1.125000 -v -0.125000 2.375000 -1.125000 -v 0.125000 2.375000 -1.125000 -v 0.088388 2.463388 -1.125000 -v 0.000000 2.426777 -0.948223 -v -0.088388 2.400888 -0.974111 -v -0.125000 2.338388 -1.036612 -v 0.125000 2.338388 -1.036612 -v 0.088388 2.400888 -0.974111 -v 0.000000 2.250000 -0.875000 -v -0.088388 2.250000 -0.911611 -v -0.125000 2.250000 -1.000000 -v 0.125000 2.250000 -1.000000 -v 0.088388 2.250000 -0.911611 -v 0.250000 2.500000 -1.875000 -v 0.161612 2.463388 -1.875000 -v 0.125000 2.375000 -1.875000 -v 0.375000 2.375000 -1.875000 -v 0.338388 2.463388 -1.875000 -v 0.250000 2.500000 -1.125000 -v 0.161612 2.463388 -1.125000 -v 0.125000 2.375000 -1.125000 -v 0.375000 2.375000 -1.125000 -v 0.338388 2.463388 -1.125000 -v 0.250000 2.426777 -0.948223 -v 0.161612 2.400888 -0.974111 -v 0.125000 2.338388 -1.036612 -v 0.375000 2.338388 -1.036612 -v 0.338388 2.400888 -0.974111 -v 0.250000 2.250000 -0.875000 -v 0.161612 2.250000 -0.911611 -v 0.125000 2.250000 -1.000000 -v 0.375000 2.250000 -1.000000 -v 0.338388 2.250000 -0.911611 -v -0.250000 2.500000 -1.875000 -v -0.338388 2.463388 -1.875000 -v -0.375000 2.375000 -1.875000 -v -0.125000 2.375000 -1.875000 -v -0.161612 2.463388 -1.875000 -v -0.250000 2.500000 -1.125000 -v -0.338388 2.463388 -1.125000 -v -0.375000 2.375000 -1.125000 -v -0.125000 2.375000 -1.125000 -v -0.161612 2.463388 -1.125000 -v -0.250000 2.426777 -0.948223 -v -0.338388 2.400888 -0.974111 -v -0.375000 2.338388 -1.036612 -v -0.125000 2.338388 -1.036612 -v -0.161612 2.400888 -0.974111 -v -0.250000 2.250000 -0.875000 -v -0.338388 2.250000 -0.911611 -v -0.375000 2.250000 -1.000000 -v -0.125000 2.250000 -1.000000 -v -0.161612 2.250000 -0.911611 -v -0.536612 2.286612 -0.875000 -v -1.036612 1.786612 -0.875000 -v 0.375000 2.375000 -0.875000 -v -0.375000 2.375000 -0.875000 -v 0.536612 2.286612 -0.875000 -v 1.036612 1.786612 -0.875000 -v -0.625000 2.375000 -0.625000 -v -1.125000 1.875000 -0.625000 -v 1.125000 1.875000 -0.625000 -v 0.625000 2.375000 -0.625000 -v 0.375000 2.500000 -0.625000 -v -0.375000 2.500000 -0.625000 -v -0.536612 2.286612 -0.625000 -v -1.036612 1.786612 -0.625000 -v 0.375000 2.375000 -0.625000 -v -0.375000 2.375000 -0.625000 -v 0.536612 2.286612 -0.625000 -v 1.036612 1.786612 -0.625000 -v 1.125000 1.875000 -0.875000 -v 0.625000 2.375000 -0.875000 -v 1.125000 1.875000 -0.625000 -v 0.625000 2.375000 -0.625000 -v 0.375000 2.500000 -0.875000 -v -0.375000 2.500000 -0.875000 -v 0.375000 2.500000 -0.625000 -v -0.375000 2.500000 -0.625000 -v -0.625000 2.375000 -0.875000 -v -1.125000 1.875000 -0.875000 -v -0.625000 2.375000 -0.625000 -v -1.125000 1.875000 -0.625000 -v -0.430519 2.289364 -0.625000 -v 0.430518 2.289365 -0.625000 -v -0.500000 -0.000000 0.125000 -v -0.500000 0.000000 -0.375000 -v 0.500000 0.000000 -0.375000 -v 0.500000 -0.000000 0.125000 -v -0.500000 2.500000 0.125000 -v 0.500000 2.500000 0.125000 -v 0.500000 2.500000 -0.375000 -v -0.500000 2.500000 -0.375000 -v -1.250000 1.750000 0.125000 -v -1.250000 1.750000 -0.375000 -v -1.250000 0.750000 -0.375000 -v -1.250000 0.750000 0.125000 -v 1.250000 1.750000 0.125000 -v 1.250000 0.750000 0.125000 -v 1.250000 0.750000 -0.375000 -v 1.250000 1.750000 -0.375000 -v 1.039364 1.680519 0.125000 -v 1.125000 1.250000 0.125000 -v 1.039364 0.819481 0.125000 -v 0.430518 2.289365 0.125000 -v 0.795495 2.045496 0.125000 -v -0.430519 2.289364 0.125000 -v 0.000000 2.375000 0.125000 -v -1.039364 1.680519 0.125000 -v -0.795495 2.045495 0.125000 -v -1.039364 0.819481 0.125000 -v -1.125000 1.250000 0.125000 -v -0.430519 0.210636 0.125000 -v -0.795495 0.454505 0.125000 -v 0.430519 0.210635 0.125000 -v 0.000000 0.125000 0.125000 -v 0.795495 0.454505 0.125000 -v -0.191341 1.711940 -0.750000 -v -0.353553 1.603553 -0.750000 -v -0.461940 1.441342 -0.750000 -v -0.500000 1.250000 -0.750000 -v -0.461940 1.058658 -0.750000 -v -0.353553 0.896447 -0.750000 -v -0.191341 0.788060 -0.750000 -v 0.000000 0.750000 -0.750000 -v 0.191341 0.788060 -0.750000 -v 0.353553 0.896446 -0.750000 -v 0.461940 1.058658 -0.750000 -v 0.500000 1.250000 -0.750000 -v 0.461940 1.441342 -0.750000 -v 0.353553 1.603554 -0.750000 -v 0.191341 1.711940 -0.750000 -v 0.000000 1.750000 -0.750000 -v 1.039364 1.680519 -0.375000 -v 0.795495 2.045496 -0.375000 -v 0.430518 2.289365 -0.375000 -v 1.039364 0.819481 -0.375000 -v 1.125000 1.250000 -0.375000 -v 0.430519 0.210635 -0.375000 -v 0.795495 0.454505 -0.375000 -v -0.430519 0.210636 -0.375000 -v 0.000000 0.125000 -0.375000 -v -1.039364 0.819481 -0.375000 -v -0.795495 0.454505 -0.375000 -v -1.039364 1.680519 -0.375000 -v -1.125000 1.250000 -0.375000 -v -0.430519 2.289364 -0.375000 -v -0.795495 2.045495 -0.375000 -v 0.000000 2.375000 -0.375000 -v -0.430519 2.289364 -0.625000 -v 0.000000 2.375000 -0.625000 -v 0.430518 2.289365 -0.625000 -v 0.795495 2.045496 -0.625000 -v 1.039364 1.680519 -0.625000 -v 1.125000 1.250000 -0.625000 -v 1.039364 0.819481 -0.625000 -v 0.795495 0.454505 -0.625000 -v 0.430519 0.210635 -0.625000 -v 0.000000 0.125000 -0.625000 -v -0.430519 0.210636 -0.625000 -v -0.795495 0.454505 -0.625000 -v -1.039364 0.819481 -0.625000 -v -1.125000 1.250000 -0.625000 -v -1.039364 1.680519 -0.625000 -v -0.795495 2.045495 -0.625000 -v -0.382683 2.173880 -0.125000 -v 0.000000 2.250000 -0.125000 -v 0.382683 2.173880 -0.125000 -v 0.707106 1.957107 -0.125000 -v 0.923880 1.632684 -0.125000 -v 1.000000 1.250000 -0.125000 -v 0.923880 0.867316 -0.125000 -v 0.707106 0.542893 -0.125000 -v 0.382683 0.326120 -0.125000 -v 0.000000 0.250000 -0.125000 -v -0.382684 0.326120 -0.125000 -v -0.707108 0.542893 -0.125000 -v -0.923880 0.867316 -0.125000 -v -1.000000 1.250000 -0.125000 -v -0.923880 1.632683 -0.125000 -v -0.707108 1.957107 -0.125000 -v -0.382683 2.173880 -0.500000 -v 0.000000 2.250000 -0.500000 -v 0.382683 2.173880 -0.500000 -v 0.382683 0.326120 -0.500000 -v 0.000000 0.250000 -0.500000 -v -0.707108 1.957107 -0.500000 -v 0.707106 0.542893 -0.500000 -v -0.923880 1.632683 -0.500000 -v 0.923880 0.867316 -0.500000 -v -1.000000 1.250000 -0.500000 -v 1.000000 1.250000 -0.500000 -v -0.923880 0.867316 -0.500000 -v 0.923880 1.632684 -0.500000 -v -0.707108 0.542893 -0.500000 -v 0.707106 1.957107 -0.500000 -v -0.382684 0.326120 -0.500000 -vt 0.662069 0.796875 -vt 0.662069 0.875000 -vt 0.551724 0.875000 -vt 0.634483 0.218750 -vt 0.724138 0.250000 -vt 0.551724 0.250000 -vt 0.724138 0.359375 -vt 0.703448 0.375000 -vt 0.606897 -0.000000 -vt 0.551724 0.125000 -vt 0.551724 -0.000000 -vt 0.634483 0.906250 -vt 0.606897 1.000000 -vt 0.413793 0.062500 -vt 0.441379 0.250000 -vt 0.413793 0.187500 -vt 0.682759 0.406250 -vt 0.703448 0.406250 -vt 0.724138 0.875000 -vt 0.717241 0.796875 -vt 0.724138 0.765625 -vt 0.682759 0.750000 -vt 0.717241 0.906250 -vt 0.717241 0.875000 -vt 0.324138 0.796875 -vt 0.282759 0.812500 -vt 0.282759 0.796875 -vt 0.324138 0.828125 -vt 0.282759 0.843750 -vt 0.282759 0.828125 -vt 0.324138 0.859375 -vt 0.282759 0.875000 -vt 0.282759 0.859375 -vt 0.282759 0.890625 -vt 0.331034 0.906250 -vt 0.275862 0.906250 -vt 0.331034 0.765625 -vt 0.282759 0.781250 -vt 0.275862 0.765625 -vt 0.324138 0.812500 -vt 0.282759 1.000000 -vt 0.324138 0.984375 -vt 0.324138 1.000000 -vt 0.275862 0.968750 -vt 0.282759 0.984375 -vt 0.275862 0.984375 -vt 0.324138 0.953125 -vt 0.282759 0.968750 -vt 0.282759 0.953125 -vt 0.275862 0.968750 -vt 0.282759 0.984375 -vt 0.275862 0.984375 -vt 0.282759 0.968750 -vt 0.324138 0.984375 -vt 0.282759 0.984375 -vt 0.324138 0.968750 -vt 0.282759 0.968750 -vt 0.324138 0.984375 -vt 0.324138 0.968750 -vt 0.282759 0.984375 -vt 0.282759 0.968750 -vt 0.275862 0.968750 -vt 0.275862 0.984375 -vt 0.324138 0.953125 -vt 0.282759 0.953125 -vt 0.331034 0.984375 -vt 0.324138 0.968750 -vt 0.331034 0.968750 -vt 0.282759 1.000000 -vt 0.324138 1.000000 -vt 0.331034 0.984375 -vt 0.331034 0.968750 -vt 0.324138 0.953125 -vt 0.282759 0.953125 -vt 0.331034 0.984375 -vt 0.324138 0.968750 -vt 0.331034 0.968750 -vt 0.282759 1.000000 -vt 0.324138 1.000000 -vt 0.331034 0.984375 -vt 0.331034 0.968750 -vt 0.324138 0.953125 -vt 0.282759 0.953125 -vt 0.275862 0.968750 -vt 0.275862 0.984375 -vt 0.282759 1.000000 -vt 0.324138 0.984375 -vt 0.324138 1.000000 -vt 0.737931 0.359375 -vt 0.737931 0.218750 -vt 0.737931 0.250000 -vt 0.737931 0.875000 -vt 0.737931 0.906250 -vt 0.724138 0.375000 -vt 0.724138 0.718750 -vt 0.703448 0.750000 -vt 0.703448 0.718750 -vt 0.682759 0.718750 -vt 0.662069 0.500000 -vt 0.675862 0.625000 -vt 0.662069 0.625000 -vt 0.696552 0.421875 -vt 0.675862 0.500000 -vt 0.696552 0.703125 -vt 0.151724 0.046875 -vt 0.158621 0.062500 -vt 0.151724 0.062500 -vt 0.172414 0.046875 -vt 0.165517 0.062500 -vt 0.165517 0.046875 -vt 0.179310 0.046875 -vt 0.186207 0.062500 -vt 0.179310 0.062500 -vt 0.186207 0.046875 -vt 0.193103 0.062500 -vt 0.144828 0.046875 -vt 0.144828 0.062500 -vt 0.158621 0.046875 -vt 0.172414 0.062500 -vt 0.193103 0.046875 -vt 0.200000 0.062500 -vt 0.170248 0.114281 -vt 0.170248 0.135718 -vt 0.160786 0.135718 -vt 0.186207 0.078125 -vt 0.179310 0.093750 -vt 0.179310 0.078125 -vt 0.193103 0.093750 -vt 0.186207 0.093750 -vt 0.200000 0.078125 -vt 0.193103 0.078125 -vt 0.151724 0.078125 -vt 0.144828 0.093750 -vt 0.144828 0.078125 -vt 0.158621 0.078125 -vt 0.151724 0.093750 -vt 0.165517 0.093750 -vt 0.158621 0.093750 -vt 0.165517 0.078125 -vt 0.172414 0.093750 -vt 0.172414 0.078125 -vt 0.117241 0.296875 -vt 0.096552 0.328125 -vt 0.096552 0.296875 -vt 0.117241 0.343750 -vt 0.117241 0.328125 -vt 0.124138 0.296875 -vt 0.117241 0.281250 -vt 0.096552 0.281250 -vt 0.089655 0.296875 -vt 0.089655 0.328125 -vt 0.310345 0.031250 -vt 0.296552 0.046875 -vt 0.296552 0.031250 -vt 0.268584 0.103261 -vt 0.268584 0.115489 -vt 0.264768 0.124136 -vt 0.282759 0.046875 -vt 0.282759 0.031250 -vt 0.268966 0.031250 -vt 0.275862 0.046875 -vt 0.268966 0.046875 -vt 0.255172 0.046875 -vt 0.255172 0.031250 -vt 0.365517 0.031250 -vt 0.351724 0.046875 -vt 0.351724 0.031250 -vt 0.337931 0.046875 -vt 0.337931 0.031250 -vt 0.324138 0.031250 -vt 0.331034 0.046875 -vt 0.324138 0.046875 -vt 0.310345 0.046875 -vt 0.296552 0.078125 -vt 0.303448 0.062500 -vt 0.303448 0.078125 -vt 0.282759 0.078125 -vt 0.289655 0.062500 -vt 0.289655 0.078125 -vt 0.268966 0.062500 -vt 0.275862 0.078125 -vt 0.268966 0.078125 -vt 0.255172 0.062500 -vt 0.262069 0.078125 -vt 0.255172 0.078125 -vt 0.351724 0.062500 -vt 0.358621 0.078125 -vt 0.351724 0.078125 -vt 0.337931 0.078125 -vt 0.344828 0.062500 -vt 0.344828 0.078125 -vt 0.324138 0.078125 -vt 0.331034 0.062500 -vt 0.331034 0.078125 -vt 0.310345 0.078125 -vt 0.317241 0.062500 -vt 0.317241 0.078125 -vt 0.020690 0.781250 -vt 0.013793 0.875000 -vt 0.013793 0.781250 -vt 0.213793 0.781250 -vt 0.227586 0.875000 -vt 0.213793 0.875000 -vt 0.510209 0.406422 -vt 0.506394 0.432721 -vt 0.482676 0.422118 -vt 0.455123 0.406613 -vt 0.458988 0.432863 -vt 0.438078 0.465736 -vt 0.414116 0.500678 -vt 0.425220 0.509148 -vt 0.420595 0.561221 -vt 0.413934 0.622365 -vt 0.425067 0.614088 -vt 0.437826 0.657998 -vt 0.454859 0.718112 -vt 0.458836 0.691761 -vt 0.482625 0.702699 -vt 0.455172 0.609375 -vt 0.441379 0.515625 -vt 0.455172 0.515625 -vt 0.848515 0.125000 -vt 0.903448 0.000542 -vt 0.958382 0.125000 -vt 0.351724 0.906250 -vt 0.331034 0.718750 -vt 0.255172 0.765625 -vt 0.275862 0.953125 -vt 0.848515 0.375000 -vt 0.903448 0.250541 -vt 0.958382 0.375000 -vt 0.737931 0.375000 -vt 0.848276 0.281250 -vt 0.848276 0.375000 -vt 0.737931 0.187500 -vt 0.848276 0.093750 -vt 0.848276 0.187500 -vt 0.737931 0.562500 -vt 0.848276 0.468750 -vt 0.848276 0.562500 -vt 0.737931 0.281250 -vt 0.737931 0.093750 -vt 0.848276 -0.000000 -vt 0.737931 0.656250 -vt 0.848276 0.656250 -vt 0.737931 0.468750 -vt 0.262069 0.140625 -vt 0.268966 0.171875 -vt 0.262069 0.171875 -vt 0.296552 0.171875 -vt 0.303448 0.140625 -vt 0.303448 0.171875 -vt 0.268966 0.125000 -vt 0.296552 0.140625 -vt 0.268966 0.140625 -vt 0.296552 0.187500 -vt 0.268966 0.187500 -vt 0.268966 0.093750 -vt 0.296552 0.125000 -vt 0.303448 0.171875 -vt 0.296552 0.140625 -vt 0.303448 0.140625 -vt 0.268966 0.140625 -vt 0.262069 0.171875 -vt 0.262069 0.140625 -vt 0.296552 0.187500 -vt 0.268966 0.171875 -vt 0.296552 0.171875 -vt 0.268966 0.125000 -vt 0.296552 0.125000 -vt 0.268966 0.093750 -vt 0.296552 0.093750 -vt 0.262069 0.171875 -vt 0.268966 0.140625 -vt 0.268966 0.171875 -vt 0.303448 0.171875 -vt 0.296552 0.140625 -vt 0.303448 0.140625 -vt 0.268966 0.125000 -vt 0.296552 0.187500 -vt 0.268966 0.187500 -vt 0.296552 0.171875 -vt 0.268966 0.093750 -vt 0.296552 0.125000 -vt 0.303448 0.140625 -vt 0.296552 0.171875 -vt 0.296552 0.140625 -vt 0.262069 0.140625 -vt 0.268966 0.171875 -vt 0.262069 0.171875 -vt 0.296552 0.187500 -vt 0.268966 0.125000 -vt 0.296552 0.125000 -vt 0.268966 0.140625 -vt 0.268966 0.093750 -vt 0.296552 0.093750 -vt 0.317241 0.140625 -vt 0.324138 0.171875 -vt 0.317241 0.171875 -vt 0.344828 0.171875 -vt 0.358621 0.187500 -vt 0.344828 0.187500 -vt 0.324138 0.125000 -vt 0.351724 0.140625 -vt 0.324138 0.140625 -vt 0.324138 0.187500 -vt 0.344828 0.093750 -vt 0.351724 0.125000 -vt 0.696552 0.625000 -vt 0.703448 0.687500 -vt 0.696552 0.687500 -vt 0.696552 0.500000 -vt 0.703448 0.437500 -vt 0.703448 0.500000 -vt 0.703448 0.625000 -vt 0.731034 0.687500 -vt 0.413793 0.859375 -vt 0.420690 0.914062 -vt 0.413793 0.914062 -vt 0.475862 0.914062 -vt 0.482759 0.859375 -vt 0.482759 0.914062 -vt 0.431034 0.937500 -vt 0.475862 0.859375 -vt 0.465517 0.937500 -vt 0.431034 0.953125 -vt 0.479310 0.937500 -vt 0.465517 0.953125 -vt 0.417241 0.937500 -vt 0.417241 0.953125 -vt 0.441379 -0.000000 -vt 0.468966 0.250000 -vt 0.255172 0.343750 -vt 0.337931 0.312500 -vt 0.337931 0.343750 -vt 0.363190 0.328752 -vt 0.351724 0.373746 -vt 0.340258 0.328752 -vt 0.255172 0.312500 -vt 0.337931 0.281250 -vt 0.255172 0.281250 -vt 0.337931 0.250000 -vt 0.363190 0.296248 -vt 0.351724 0.311246 -vt 0.340258 0.296248 -vt 0.868966 0.625000 -vt 0.924138 0.500000 -vt 0.924138 0.625000 -vt 0.848276 0.500000 -vt 0.868966 0.500000 -vt 0.944828 0.625000 -vt 0.834483 0.906250 -vt 0.765517 0.718750 -vt 0.834483 0.718750 -vt 0.737931 0.718750 -vt 0.765517 0.906250 -vt 0.737931 0.906250 -vt 0.862069 0.906250 -vt 0.862069 0.718750 -vt 0.765517 0.968750 -vt 0.834483 0.968750 -vt 0.834483 0.656250 -vt 0.765517 0.656250 -vt 0.903448 0.875000 -vt 0.958621 0.718750 -vt 0.958621 0.875000 -vt 0.958621 0.625000 -vt 0.903448 0.718750 -vt 0.903448 0.625000 -vt 0.903448 0.968750 -vt 0.958621 0.968750 -vt 0.862069 0.718750 -vt 0.862069 0.875000 -vt 1.000000 0.875000 -vt 1.000000 0.718750 -vt 0.958621 0.187500 -vt 0.986207 0.156250 -vt 0.986207 0.187500 -vt 0.958621 0.062500 -vt 0.986207 0.031250 -vt 0.986207 0.062500 -vt 0.958621 0.125000 -vt 0.986207 0.093750 -vt 0.986207 0.125000 -vt 0.958621 0.156250 -vt 0.958621 0.031250 -vt 0.986207 0.000000 -vt 0.958621 0.093750 -vt 0.965937 0.193335 -vt 0.978890 0.193335 -vt 0.985367 0.218750 -vt 0.737931 0.109375 -vt 0.724138 0.093750 -vt 0.737931 0.093750 -vt 0.737931 0.015625 -vt 0.724138 0.000000 -vt 0.737931 0.000000 -vt 0.737931 0.140625 -vt 0.724138 0.125000 -vt 0.737931 0.125000 -vt 0.737931 0.078125 -vt 0.724138 0.062500 -vt 0.737931 0.062500 -vt 0.737931 0.046875 -vt 0.724138 0.031250 -vt 0.737931 0.031250 -vt 0.737931 0.171875 -vt 0.724138 0.156250 -vt 0.737931 0.156250 -vt 0.724138 0.015625 -vt 0.717241 0.000000 -vt 0.717241 0.156250 -vt 0.717241 0.125000 -vt 0.724138 0.078125 -vt 0.717241 0.062500 -vt 0.717241 0.031250 -vt 0.724138 0.171875 -vt 0.724138 0.109375 -vt 0.717241 0.093750 -vt 0.675862 0.031250 -vt 0.717241 0.187500 -vt 0.675862 0.156250 -vt 0.675862 0.093750 -vt 0.675862 0.000000 -vt 0.675862 0.125000 -vt 0.675862 0.062500 -vt 0.668966 0.125000 -vt 0.668966 0.093750 -vt 0.668966 0.078125 -vt 0.668966 0.062500 -vt 0.668966 0.031250 -vt 0.668966 0.000000 -vt 0.668966 0.171875 -vt 0.668966 0.156250 -vt 0.655172 0.156250 -vt 0.668966 0.109375 -vt 0.655172 0.093750 -vt 0.668966 0.015625 -vt 0.655172 0.000000 -vt 0.668966 0.140625 -vt 0.655172 0.125000 -vt 0.655172 0.062500 -vt 0.668966 0.046875 -vt 0.655172 0.031250 -vt 0.655172 0.140625 -vt 0.648276 0.125000 -vt 0.655172 0.109375 -vt 0.648276 0.093750 -vt 0.648276 0.062500 -vt 0.655172 0.046875 -vt 0.648276 0.031250 -vt 0.655172 0.015625 -vt 0.648276 0.000000 -vt 0.648276 0.187500 -vt 0.648276 0.156250 -vt 0.641379 0.093750 -vt 0.641379 -0.000000 -vt 0.641379 0.125000 -vt 0.641379 0.062500 -vt 0.641379 0.031250 -vt 0.641379 0.156250 -vt 0.634483 0.062500 -vt 0.634483 0.031250 -vt 0.634483 0.171875 -vt 0.634483 0.156250 -vt 0.634483 0.093750 -vt 0.634483 0.000000 -vt 0.634483 0.140625 -vt 0.634483 0.125000 -vt 0.624290 0.002689 -vt 0.630883 0.002689 -vt 0.634179 0.015625 -vt 0.489655 0.156250 -vt 0.510345 0.046875 -vt 0.510345 0.156250 -vt 0.434483 0.812500 -vt 0.413793 0.765625 -vt 0.420690 0.750000 -vt 0.489655 0.046875 -vt 0.510345 0.000000 -vt 0.468966 0.046875 -vt 0.531034 0.156250 -vt 0.496552 0.187500 -vt 0.468966 0.156250 -vt 0.496552 0.156250 -vt 0.496552 0.312500 -vt 0.468966 0.265625 -vt 0.496552 0.265625 -vt 0.468966 0.234375 -vt 0.496552 0.234375 -vt 0.468966 0.187500 -vt 0.434483 0.750000 -vt 0.455172 0.812500 -vt 0.496552 0.765625 -vt 0.475862 0.750000 -vt 0.496552 0.750000 -vt 0.455172 0.750000 -vt 0.468966 0.750000 -vt 0.475862 0.765625 -vt 0.434483 0.859375 -vt 0.475862 0.812500 -vt 0.496552 0.812500 -vt 0.455172 0.718750 -vt 0.537931 0.828125 -vt 0.524138 0.812500 -vt 0.537931 0.812500 -vt 0.503448 0.718750 -vt 0.517241 0.812500 -vt 0.503448 0.812500 -vt 0.537931 0.718750 -vt 0.524138 0.718750 -vt 0.517241 0.718750 -vt 0.496552 0.812500 -vt 0.496552 0.718750 -vt 0.986207 0.609375 -vt 0.979310 0.593750 -vt 0.986207 0.593750 -vt 0.979310 0.531250 -vt 0.986207 0.515625 -vt 0.986207 0.531250 -vt 0.972414 0.593750 -vt 0.979310 0.578125 -vt 0.551724 0.625000 -vt 0.620690 0.609375 -vt 0.620690 0.734375 -vt 0.620690 0.640625 -vt 0.634483 0.640625 -vt 0.020690 0.875000 -vt 0.006897 0.781250 -vt 0.020690 0.781250 -vt 0.662069 0.734375 -vt 0.648276 0.640625 -vt 0.565517 0.640625 -vt 0.551724 0.625000 -vt 0.565517 0.625000 -vt 0.606897 0.390625 -vt 0.551724 0.375000 -vt 0.662069 0.375000 -vt 0.620690 0.484375 -vt 0.551724 0.500000 -vt 0.117241 0.906250 -vt 0.075862 0.875000 -vt 0.117241 0.875000 -vt 0.158621 0.125000 -vt 0.117241 0.156250 -vt 0.117241 0.125000 -vt 0.117241 0.906250 -vt 0.158621 0.875000 -vt 0.158621 0.906250 -vt 0.144828 0.250000 -vt 0.131034 0.250000 -vt 0.213793 0.875000 -vt 0.220690 0.781250 -vt 0.220690 0.875000 -vt 0.062069 0.781250 -vt 0.020690 0.875000 -vt 0.144828 0.281250 -vt 0.186207 0.250000 -vt 0.186207 0.281250 -vt 0.213793 0.765625 -vt 0.172414 0.781250 -vt 0.172414 0.750000 -vt 0.131034 0.281250 -vt 0.089655 0.250000 -vt 0.075862 0.906250 -vt 0.020690 0.906250 -vt 0.020690 0.890625 -vt 0.020690 0.765625 -vt 0.020690 0.750000 -vt 0.062069 0.750000 -vt 0.544828 0.203125 -vt 0.551724 0.250000 -vt 0.544828 0.250000 -vt 0.531034 0.203125 -vt 0.524138 0.250000 -vt 0.524138 0.203125 -vt 0.510345 0.203125 -vt 0.503448 0.250000 -vt 0.503448 0.203125 -vt 0.537931 0.250000 -vt 0.537931 0.203125 -vt 0.510345 0.296875 -vt 0.503448 0.296875 -vt 0.531034 0.250000 -vt 0.524138 0.296875 -vt 0.531034 0.203125 -vt 0.531034 0.187500 -vt 0.537931 0.187500 -vt 0.544828 0.187500 -vt 0.551724 0.187500 -vt 0.551724 0.203125 -vt 0.503448 0.203125 -vt 0.503448 0.187500 -vt 0.510345 0.187500 -vt 0.517241 0.187500 -vt 0.524138 0.187500 -vt 0.524138 0.203125 -vt 0.544828 0.156250 -vt 0.537931 0.156250 -vt 0.531034 0.156250 -vt 0.524138 0.187500 -vt 0.524138 0.156250 -vt 0.510345 0.156250 -vt 0.503448 0.156250 -vt 0.524138 0.156250 -vt 0.517241 0.156250 -vt 0.551724 0.156250 -vt 0.496552 0.187500 -vt 0.496552 0.156250 -vt 0.496552 0.250000 -vt 0.496552 0.203125 -vt 0.979310 0.515625 -vt 0.986207 0.484375 -vt 0.986207 0.515625 -vt 0.213793 0.890625 -vt 0.565517 0.515625 -vt 0.551724 0.500000 -vt 0.565517 0.500000 -vt 0.517241 0.250000 -vt 0.510345 0.250000 -vt 0.524138 0.250000 -vt 0.517241 0.296875 -vt 0.544828 0.296875 -vt 0.496552 0.296875 -vt 0.537931 0.296875 -vt 0.531034 0.296875 -vt 0.517241 0.203125 -vt 0.213793 0.109375 -vt 0.220690 0.265625 -vt 0.213793 0.265625 -vt 0.972414 0.515625 -vt 0.979310 0.484375 -vt 0.220690 0.109375 -vt 0.227586 0.265625 -vt 0.965517 0.515625 -vt 0.972414 0.484375 -vt 0.186207 0.109375 -vt 0.193103 0.265625 -vt 0.186207 0.265625 -vt 0.958621 0.515625 -vt 0.965517 0.484375 -vt 0.193103 0.109375 -vt 0.200000 0.265625 -vt 0.198836 0.288749 -vt 0.193103 0.296248 -vt 0.187370 0.288749 -vt 0.200000 0.109375 -vt 0.206897 0.265625 -vt 0.206897 0.109375 -vt 0.201164 0.288749 -vt 0.201164 0.273751 -vt 0.212630 0.273751 -vt 0.972414 0.468750 -vt 0.979310 0.484375 -vt 0.979310 0.468750 -vt 0.958621 0.468750 -vt 0.965517 0.468750 -vt 0.958621 0.484375 -vt 0.965517 0.453125 -vt 0.958621 0.437500 -vt 0.965517 0.421875 -vt 0.965517 0.437500 -vt 0.972414 0.453125 -vt 0.979310 0.453125 -vt 0.986207 0.453125 -vt 0.986207 0.468750 -vt 0.972414 0.437500 -vt 0.965517 0.453125 -vt 0.986207 0.453125 -vt 0.979310 0.437500 -vt 0.986207 0.437500 -vt 0.972414 0.421875 -vt 0.979310 0.343750 -vt 0.979310 0.421875 -vt 0.986207 0.421875 -vt 0.965517 0.328125 -vt 0.972414 0.328125 -vt 0.965517 0.343750 -vt 0.986207 0.343750 -vt 0.958621 0.421875 -vt 0.965517 0.343750 -vt 0.972414 0.343750 -vt 0.979310 0.328125 -vt 0.986207 0.296875 -vt 0.986207 0.328125 -vt 0.986207 0.343750 -vt 0.958621 0.281250 -vt 0.965517 0.250000 -vt 0.965517 0.281250 -vt 0.958621 0.328125 -vt 0.965517 0.296875 -vt 0.972414 0.296875 -vt 0.979310 0.296875 -vt 0.979310 0.296875 -vt 0.972414 0.281250 -vt 0.979310 0.281250 -vt 0.958621 0.296875 -vt 0.986207 0.250000 -vt 0.986207 0.281250 -vt 0.979310 0.250000 -vt 0.972414 0.250000 -vt 0.539805 0.495450 -vt 0.539959 0.508696 -vt 0.506403 0.692192 -vt 0.539824 0.629444 -vt 0.512254 0.691859 -vt 0.544674 0.484410 -vt 0.551565 0.500009 -vt 0.544695 0.609268 -vt 0.539977 0.616199 -vt 0.489655 0.156250 -vt 0.510345 0.046875 -vt 0.510345 0.156250 -vt 0.151724 0.046875 -vt 0.158621 0.062500 -vt 0.151724 0.062500 -vt 0.172414 0.046875 -vt 0.165517 0.062500 -vt 0.165517 0.046875 -vt 0.179310 0.046875 -vt 0.186207 0.062500 -vt 0.179310 0.062500 -vt 0.186207 0.046875 -vt 0.193103 0.062500 -vt 0.144828 0.046875 -vt 0.144828 0.062500 -vt 0.158621 0.046875 -vt 0.172414 0.062500 -vt 0.193103 0.046875 -vt 0.200000 0.062500 -vt 0.170248 0.114281 -vt 0.170248 0.135718 -vt 0.160786 0.135718 -vt 0.186207 0.078125 -vt 0.179310 0.093750 -vt 0.179310 0.078125 -vt 0.193103 0.093750 -vt 0.186207 0.093750 -vt 0.200000 0.078125 -vt 0.193103 0.078125 -vt 0.151724 0.078125 -vt 0.144828 0.093750 -vt 0.144828 0.078125 -vt 0.158621 0.093750 -vt 0.151724 0.093750 -vt 0.158621 0.078125 -vt 0.165517 0.093750 -vt 0.165517 0.078125 -vt 0.172414 0.093750 -vt 0.172414 0.078125 -vt 0.151724 0.046875 -vt 0.158621 0.062500 -vt 0.151724 0.062500 -vt 0.172414 0.046875 -vt 0.165517 0.062500 -vt 0.165517 0.046875 -vt 0.179310 0.046875 -vt 0.186207 0.062500 -vt 0.179310 0.062500 -vt 0.186207 0.046875 -vt 0.193103 0.062500 -vt 0.144828 0.046875 -vt 0.144828 0.062500 -vt 0.158621 0.046875 -vt 0.172414 0.062500 -vt 0.193103 0.046875 -vt 0.200000 0.062500 -vt 0.170248 0.114281 -vt 0.170248 0.135718 -vt 0.160786 0.135718 -vt 0.186207 0.078125 -vt 0.179310 0.093750 -vt 0.179310 0.078125 -vt 0.193103 0.093750 -vt 0.186207 0.093750 -vt 0.200000 0.078125 -vt 0.193103 0.078125 -vt 0.151724 0.078125 -vt 0.144828 0.093750 -vt 0.144828 0.078125 -vt 0.158621 0.078125 -vt 0.151724 0.093750 -vt 0.165517 0.093750 -vt 0.158621 0.093750 -vt 0.165517 0.078125 -vt 0.172414 0.093750 -vt 0.172414 0.078125 -vt 0.151724 0.046875 -vt 0.158621 0.062500 -vt 0.151724 0.062500 -vt 0.172414 0.046875 -vt 0.165517 0.062500 -vt 0.165517 0.046875 -vt 0.179310 0.046875 -vt 0.186207 0.062500 -vt 0.179310 0.062500 -vt 0.186207 0.046875 -vt 0.193103 0.062500 -vt 0.144828 0.046875 -vt 0.144828 0.062500 -vt 0.158621 0.046875 -vt 0.172414 0.062500 -vt 0.193103 0.046875 -vt 0.200000 0.062500 -vt 0.170248 0.114281 -vt 0.170248 0.135718 -vt 0.160786 0.135718 -vt 0.186207 0.078125 -vt 0.179310 0.093750 -vt 0.179310 0.078125 -vt 0.193103 0.093750 -vt 0.186207 0.093750 -vt 0.200000 0.078125 -vt 0.193103 0.078125 -vt 0.151724 0.078125 -vt 0.144828 0.093750 -vt 0.144828 0.078125 -vt 0.158621 0.078125 -vt 0.151724 0.093750 -vt 0.165517 0.093750 -vt 0.158621 0.093750 -vt 0.165517 0.078125 -vt 0.172414 0.093750 -vt 0.172414 0.078125 -vt 0.151724 0.046875 -vt 0.158621 0.062500 -vt 0.151724 0.062500 -vt 0.172414 0.046875 -vt 0.165517 0.062500 -vt 0.165517 0.046875 -vt 0.179310 0.046875 -vt 0.186207 0.062500 -vt 0.179310 0.062500 -vt 0.186207 0.046875 -vt 0.193103 0.062500 -vt 0.144828 0.046875 -vt 0.144828 0.062500 -vt 0.158621 0.046875 -vt 0.172414 0.062500 -vt 0.193103 0.046875 -vt 0.200000 0.062500 -vt 0.170248 0.114281 -vt 0.170248 0.135718 -vt 0.160786 0.135718 -vt 0.186207 0.078125 -vt 0.179310 0.093750 -vt 0.179310 0.078125 -vt 0.193103 0.093750 -vt 0.186207 0.093750 -vt 0.200000 0.078125 -vt 0.193103 0.078125 -vt 0.151724 0.078125 -vt 0.144828 0.093750 -vt 0.144828 0.078125 -vt 0.158621 0.078125 -vt 0.151724 0.093750 -vt 0.165517 0.093750 -vt 0.158621 0.093750 -vt 0.165517 0.078125 -vt 0.172414 0.093750 -vt 0.172414 0.078125 -vt 0.151724 0.046875 -vt 0.158621 0.062500 -vt 0.151724 0.062500 -vt 0.172414 0.046875 -vt 0.165517 0.062500 -vt 0.165517 0.046875 -vt 0.179310 0.046875 -vt 0.186207 0.062500 -vt 0.179310 0.062500 -vt 0.186207 0.046875 -vt 0.193103 0.062500 -vt 0.144828 0.046875 -vt 0.144828 0.062500 -vt 0.158621 0.046875 -vt 0.172414 0.062500 -vt 0.193103 0.046875 -vt 0.200000 0.062500 -vt 0.170248 0.114281 -vt 0.170248 0.135718 -vt 0.160786 0.135718 -vt 0.186207 0.078125 -vt 0.179310 0.093750 -vt 0.179310 0.078125 -vt 0.193103 0.093750 -vt 0.186207 0.093750 -vt 0.200000 0.078125 -vt 0.193103 0.078125 -vt 0.151724 0.078125 -vt 0.144828 0.093750 -vt 0.144828 0.078125 -vt 0.158621 0.078125 -vt 0.151724 0.093750 -vt 0.165517 0.093750 -vt 0.158621 0.093750 -vt 0.165517 0.078125 -vt 0.172414 0.093750 -vt 0.172414 0.078125 -vt 0.151724 0.046875 -vt 0.158621 0.062500 -vt 0.151724 0.062500 -vt 0.172414 0.046875 -vt 0.165517 0.062500 -vt 0.165517 0.046875 -vt 0.179310 0.046875 -vt 0.186207 0.062500 -vt 0.179310 0.062500 -vt 0.186207 0.046875 -vt 0.193103 0.062500 -vt 0.144828 0.046875 -vt 0.144828 0.062500 -vt 0.158621 0.046875 -vt 0.172414 0.062500 -vt 0.193103 0.046875 -vt 0.200000 0.062500 -vt 0.170248 0.114281 -vt 0.170248 0.135718 -vt 0.160786 0.135718 -vt 0.186207 0.078125 -vt 0.179310 0.093750 -vt 0.179310 0.078125 -vt 0.193103 0.093750 -vt 0.186207 0.093750 -vt 0.200000 0.078125 -vt 0.193103 0.078125 -vt 0.151724 0.078125 -vt 0.144828 0.093750 -vt 0.144828 0.078125 -vt 0.158621 0.078125 -vt 0.151724 0.093750 -vt 0.165517 0.093750 -vt 0.158621 0.093750 -vt 0.165517 0.078125 -vt 0.172414 0.093750 -vt 0.172414 0.078125 -vt 0.151724 0.046875 -vt 0.158621 0.062500 -vt 0.151724 0.062500 -vt 0.172414 0.046875 -vt 0.165517 0.062500 -vt 0.165517 0.046875 -vt 0.179310 0.046875 -vt 0.186207 0.062500 -vt 0.179310 0.062500 -vt 0.193103 0.046875 -vt 0.186207 0.046875 -vt 0.144828 0.046875 -vt 0.144828 0.062500 -vt 0.158621 0.046875 -vt 0.172414 0.062500 -vt 0.200000 0.062500 -vt 0.193103 0.062500 -vt 0.170248 0.114281 -vt 0.170248 0.135718 -vt 0.160786 0.135718 -vt 0.186207 0.078125 -vt 0.179310 0.093750 -vt 0.179310 0.078125 -vt 0.193103 0.093750 -vt 0.186207 0.093750 -vt 0.200000 0.078125 -vt 0.193103 0.078125 -vt 0.151724 0.078125 -vt 0.144828 0.093750 -vt 0.144828 0.078125 -vt 0.158621 0.078125 -vt 0.151724 0.093750 -vt 0.165517 0.093750 -vt 0.158621 0.093750 -vt 0.165517 0.078125 -vt 0.172414 0.093750 -vt 0.172414 0.078125 -vt 0.096552 0.296875 -vt 0.117241 0.328125 -vt 0.096552 0.328125 -vt 0.117241 0.343750 -vt 0.124138 0.296875 -vt 0.117241 0.296875 -vt 0.117241 0.281250 -vt 0.096552 0.281250 -vt 0.089655 0.296875 -vt 0.089655 0.328125 -vt 0.117241 0.296875 -vt 0.096552 0.328125 -vt 0.096552 0.296875 -vt 0.117241 0.343750 -vt 0.117241 0.328125 -vt 0.124138 0.296875 -vt 0.117241 0.281250 -vt 0.096552 0.281250 -vt 0.089655 0.296875 -vt 0.089655 0.328125 -vt 0.096552 0.296875 -vt 0.117241 0.328125 -vt 0.096552 0.328125 -vt 0.117241 0.343750 -vt 0.124138 0.296875 -vt 0.117241 0.296875 -vt 0.117241 0.281250 -vt 0.096552 0.281250 -vt 0.089655 0.296875 -vt 0.089655 0.328125 -vt 0.096552 0.296875 -vt 0.117241 0.328125 -vt 0.096552 0.328125 -vt 0.117241 0.343750 -vt 0.124138 0.296875 -vt 0.117241 0.296875 -vt 0.117241 0.281250 -vt 0.096552 0.281250 -vt 0.089655 0.296875 -vt 0.089655 0.328125 -vt 0.096552 0.296875 -vt 0.117241 0.328125 -vt 0.096552 0.328125 -vt 0.117241 0.343750 -vt 0.124138 0.296875 -vt 0.117241 0.296875 -vt 0.117241 0.281250 -vt 0.096552 0.281250 -vt 0.089655 0.296875 -vt 0.089655 0.328125 -vt 0.117241 0.296875 -vt 0.096552 0.328125 -vt 0.096552 0.296875 -vt 0.117241 0.343750 -vt 0.117241 0.328125 -vt 0.124138 0.296875 -vt 0.117241 0.281250 -vt 0.096552 0.281250 -vt 0.089655 0.296875 -vt 0.089655 0.328125 -vt 0.096552 0.296875 -vt 0.117241 0.328125 -vt 0.096552 0.328125 -vt 0.117241 0.343750 -vt 0.124138 0.296875 -vt 0.117241 0.296875 -vt 0.117241 0.281250 -vt 0.096552 0.281250 -vt 0.089655 0.296875 -vt 0.089655 0.328125 -vt 0.117241 0.296875 -vt 0.096552 0.328125 -vt 0.096552 0.296875 -vt 0.117241 0.343750 -vt 0.117241 0.328125 -vt 0.124138 0.296875 -vt 0.117241 0.281250 -vt 0.096552 0.281250 -vt 0.089655 0.296875 -vt 0.089655 0.328125 -vt 0.096552 0.296875 -vt 0.117241 0.328125 -vt 0.096552 0.328125 -vt 0.117241 0.343750 -vt 0.124138 0.296875 -vt 0.117241 0.296875 -vt 0.117241 0.281250 -vt 0.096552 0.281250 -vt 0.089655 0.296875 -vt 0.089655 0.328125 -vt 0.096552 0.296875 -vt 0.117241 0.328125 -vt 0.096552 0.328125 -vt 0.117241 0.343750 -vt 0.124138 0.296875 -vt 0.117241 0.296875 -vt 0.117241 0.281250 -vt 0.096552 0.281250 -vt 0.089655 0.296875 -vt 0.089655 0.328125 -vt 0.096552 0.296875 -vt 0.117241 0.328125 -vt 0.096552 0.328125 -vt 0.117241 0.343750 -vt 0.124138 0.296875 -vt 0.117241 0.296875 -vt 0.117241 0.281250 -vt 0.096552 0.281250 -vt 0.089655 0.296875 -vt 0.089655 0.328125 -vt 0.096552 0.296875 -vt 0.117241 0.328125 -vt 0.096552 0.328125 -vt 0.117241 0.343750 -vt 0.124138 0.296875 -vt 0.117241 0.296875 -vt 0.117241 0.281250 -vt 0.096552 0.281250 -vt 0.089655 0.296875 -vt 0.089655 0.328125 -vt 0.096552 0.296875 -vt 0.117241 0.328125 -vt 0.096552 0.328125 -vt 0.117241 0.343750 -vt 0.124138 0.296875 -vt 0.117241 0.296875 -vt 0.117241 0.281250 -vt 0.096552 0.281250 -vt 0.089655 0.296875 -vt 0.089655 0.328125 -vt 0.117241 0.296875 -vt 0.096552 0.328125 -vt 0.096552 0.296875 -vt 0.117241 0.343750 -vt 0.117241 0.328125 -vt 0.124138 0.296875 -vt 0.117241 0.281250 -vt 0.096552 0.281250 -vt 0.089655 0.296875 -vt 0.089655 0.328125 -vt 0.096552 0.296875 -vt 0.117241 0.328125 -vt 0.096552 0.328125 -vt 0.117241 0.343750 -vt 0.124138 0.296875 -vt 0.117241 0.296875 -vt 0.117241 0.281250 -vt 0.096552 0.281250 -vt 0.089655 0.296875 -vt 0.089655 0.328125 -vt 0.510345 0.562500 -vt 0.455172 0.562500 -vt 0.455172 0.546875 -vt 0.620690 0.515625 -vt 0.565517 0.515625 -vt 0.565517 0.750000 -vt 0.551724 0.734375 -vt 0.565517 0.734375 -vt 0.620690 0.515625 -vt 0.565517 0.609375 -vt 0.565517 0.515625 -vt 0.448276 0.515625 -vt 0.455172 0.609375 -vt 0.448276 0.609375 -vt 0.524138 0.609375 -vt 0.510345 0.515625 -vt 0.524138 0.515625 -vt 0.455172 0.578125 -vt 0.455172 0.562500 -vt 0.510345 0.562500 -vt 0.565517 0.625000 -vt 0.551724 0.609375 -vt 0.565517 0.609375 -vt 0.565517 0.500000 -vt 0.551724 0.484375 -vt 0.565517 0.484375 -vt 0.565517 0.390625 -vt 0.551724 0.375000 -vt 0.565517 0.375000 -vt 0.565517 0.484375 -vt 0.551724 0.484375 -vt 0.551724 0.515625 -vt 0.565517 0.609375 -vt 0.551724 0.609375 -vt 0.565517 0.640625 -vt 0.551724 0.640625 -vt 0.565517 0.390625 -vt 0.551724 0.390625 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.565517 0.734375 -vt 0.551724 0.750000 -vt 0.551724 0.734375 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.551583 0.624874 -vt 0.510212 0.718578 -vt 0.512238 0.433055 -vt 0.255172 -0.000000 -vt 0.227586 0.125000 -vt 0.227586 -0.000000 -vt 0.227586 0.500000 -vt 0.255172 0.625000 -vt 0.227586 0.625000 -vt 0.255172 0.750000 -vt 0.227586 0.875000 -vt 0.227586 0.750000 -vt 0.227586 0.250000 -vt 0.255172 0.375000 -vt 0.227586 0.375000 -vt 0.255172 0.500000 -vt 0.255172 0.250000 -vt 0.255172 0.125000 -vt 0.227586 1.000000 -vt 0.255172 0.875000 -vt 0.255172 1.000000 -vt 0.185647 0.407982 -vt 0.181809 0.433762 -vt 0.158206 0.423338 -vt 0.227246 0.501121 -vt 0.215680 0.509781 -vt 0.201106 0.462288 -vt 0.226770 0.624909 -vt 0.215543 0.616068 -vt 0.220300 0.563004 -vt 0.185661 0.717018 -vt 0.181941 0.690910 -vt 0.202736 0.659045 -vt 0.131028 0.716313 -vt 0.134829 0.690268 -vt 0.158386 0.701199 -vt 0.089995 0.623885 -vt 0.101155 0.615205 -vt 0.113984 0.658150 -vt 0.089997 0.501305 -vt 0.101178 0.509856 -vt 0.096611 0.562314 -vt 0.130816 0.408077 -vt 0.134644 0.434152 -vt 0.113890 0.466628 -vt 0.117241 0.000640 -vt 0.144545 0.062500 -vt 0.117241 0.124360 -vt 0.282000 0.461238 -vt 0.267164 0.508207 -vt 0.255663 0.499249 -vt 0.324503 0.423194 -vt 0.301337 0.432859 -vt 0.297766 0.407469 -vt 0.368692 0.466561 -vt 0.347882 0.434234 -vt 0.351705 0.408442 -vt 0.386036 0.561123 -vt 0.381418 0.509360 -vt 0.392481 0.500826 -vt 0.368830 0.657546 -vt 0.381587 0.613816 -vt 0.392687 0.622102 -vt 0.324106 0.701882 -vt 0.347834 0.691162 -vt 0.351758 0.717531 -vt 0.279544 0.658120 -vt 0.300333 0.691179 -vt 0.296432 0.717486 -vt 0.262317 0.561201 -vt 0.266830 0.614350 -vt 0.255589 0.622775 -vt 0.606897 0.125000 -vt 0.662069 0.218750 -vt 0.724138 0.218750 -vt 0.682759 0.375000 -vt 0.551724 1.000000 -vt 0.662069 0.906250 -vt 0.724138 0.906250 -vt 0.324138 0.843750 -vt 0.324138 0.875000 -vt 0.324138 0.890625 -vt 0.324138 0.781250 -vt 0.737931 0.765625 -vt 0.724138 0.406250 -vt 0.724138 0.750000 -vt 0.696552 0.453125 -vt 0.696552 0.671875 -vt 0.200000 0.046875 -vt 0.172208 0.125000 -vt 0.165517 0.140158 -vt 0.158827 0.125000 -vt 0.160786 0.114281 -vt 0.165517 0.109842 -vt 0.200000 0.093750 -vt 0.096552 0.343750 -vt 0.124138 0.328125 -vt 0.303448 0.046875 -vt 0.259370 0.124136 -vt 0.255554 0.115489 -vt 0.255554 0.103261 -vt 0.259370 0.094614 -vt 0.264768 0.094614 -vt 0.289655 0.046875 -vt 0.262069 0.046875 -vt 0.358621 0.046875 -vt 0.344828 0.046875 -vt 0.317241 0.046875 -vt 0.296552 0.062500 -vt 0.282759 0.062500 -vt 0.275862 0.062500 -vt 0.262069 0.062500 -vt 0.358621 0.062500 -vt 0.337931 0.062500 -vt 0.324138 0.062500 -vt 0.310345 0.062500 -vt 0.227586 0.781250 -vt 0.441379 0.609375 -vt 0.903448 0.249458 -vt 0.864604 0.213006 -vt 0.864604 0.036995 -vt 0.942292 0.036994 -vt 0.942292 0.213005 -vt 0.351724 0.765625 -vt 0.275862 0.718750 -vt 0.255172 0.906250 -vt 0.331034 0.953125 -vt 0.942292 0.463005 -vt 0.903448 0.499458 -vt 0.864604 0.463005 -vt 0.864604 0.286994 -vt 0.942292 0.286994 -vt 0.737931 -0.000000 -vt 0.296552 0.093750 -vt 0.268966 0.187500 -vt 0.262069 0.140625 -vt 0.296552 0.093750 -vt 0.303448 0.171875 -vt 0.268966 0.187500 -vt 0.358621 0.171875 -vt 0.324138 0.093750 -vt 0.696552 0.437500 -vt 0.731034 0.437500 -vt 0.420690 0.859375 -vt 0.479310 0.953125 -vt 0.468966 -0.000000 -vt 0.351724 0.313754 -vt 0.363190 0.358748 -vt 0.340258 0.358748 -vt 0.255172 0.250000 -vt 0.340258 0.266252 -vt 0.351724 0.251254 -vt 0.363190 0.266252 -vt 0.848276 0.625000 -vt 0.944828 0.500000 -vt 0.958621 0.000000 -vt 0.978890 0.244165 -vt 0.965937 0.244165 -vt 0.959461 0.218750 -vt 0.724138 0.140625 -vt 0.724138 0.046875 -vt 0.675862 0.187500 -vt 0.655172 0.171875 -vt 0.655172 0.078125 -vt 0.641379 0.187500 -vt 0.634483 0.078125 -vt 0.634483 0.046875 -vt 0.634483 0.109375 -vt 0.634483 0.015625 -vt 0.630883 0.028561 -vt 0.624290 0.028561 -vt 0.620993 0.015625 -vt 0.413793 0.812500 -vt 0.489655 0.000000 -vt 0.468966 0.156250 -vt 0.531034 0.046875 -vt 0.468966 0.312500 -vt 0.455172 0.859375 -vt 0.434483 0.718750 -vt 0.524138 0.828125 -vt 0.979310 0.609375 -vt 0.979310 0.515625 -vt 0.972414 0.562500 -vt 0.606897 0.734375 -vt 0.006897 0.875000 -vt 0.551724 0.640625 -vt 0.158621 0.156250 -vt 0.117241 0.875000 -vt 0.213793 0.781250 -vt 0.213793 0.750000 -vt 0.089655 0.281250 -vt 0.551724 0.203125 -vt 0.213793 0.906250 -vt 0.551724 0.515625 -vt 0.524138 0.296875 -vt 0.551724 0.296875 -vt 0.524138 0.203125 -vt 0.227586 0.109375 -vt 0.958621 0.484375 -vt 0.187370 0.273751 -vt 0.193103 0.266252 -vt 0.198836 0.273751 -vt 0.206897 0.266252 -vt 0.212630 0.288749 -vt 0.206897 0.296248 -vt 0.958621 0.453125 -vt 0.958621 0.343750 -vt 0.958621 0.250000 -vt 0.958621 0.296875 -vt 0.551568 0.515616 -vt 0.544680 0.515623 -vt 0.489655 0.046875 -vt 0.200000 0.046875 -vt 0.172208 0.125000 -vt 0.165517 0.140158 -vt 0.158827 0.125000 -vt 0.160786 0.114281 -vt 0.165517 0.109842 -vt 0.200000 0.093750 -vt 0.200000 0.046875 -vt 0.172208 0.125000 -vt 0.165517 0.140158 -vt 0.158827 0.125000 -vt 0.160786 0.114281 -vt 0.165517 0.109842 -vt 0.200000 0.093750 -vt 0.200000 0.046875 -vt 0.172208 0.125000 -vt 0.165517 0.140158 -vt 0.158827 0.125000 -vt 0.160786 0.114281 -vt 0.165517 0.109842 -vt 0.200000 0.093750 -vt 0.200000 0.046875 -vt 0.172208 0.125000 -vt 0.165517 0.140158 -vt 0.158827 0.125000 -vt 0.160786 0.114281 -vt 0.165517 0.109842 -vt 0.200000 0.093750 -vt 0.200000 0.046875 -vt 0.172208 0.125000 -vt 0.165517 0.140158 -vt 0.158827 0.125000 -vt 0.160786 0.114281 -vt 0.165517 0.109842 -vt 0.200000 0.093750 -vt 0.200000 0.046875 -vt 0.172208 0.125000 -vt 0.165517 0.140158 -vt 0.158827 0.125000 -vt 0.160786 0.114281 -vt 0.165517 0.109842 -vt 0.200000 0.093750 -vt 0.200000 0.046875 -vt 0.172208 0.125000 -vt 0.165517 0.140158 -vt 0.158827 0.125000 -vt 0.160786 0.114281 -vt 0.165517 0.109842 -vt 0.200000 0.093750 -vt 0.096552 0.343750 -vt 0.124138 0.328125 -vt 0.096552 0.343750 -vt 0.124138 0.328125 -vt 0.096552 0.343750 -vt 0.124138 0.328125 -vt 0.096552 0.343750 -vt 0.124138 0.328125 -vt 0.096552 0.343750 -vt 0.124138 0.328125 -vt 0.096552 0.343750 -vt 0.124138 0.328125 -vt 0.096552 0.343750 -vt 0.124138 0.328125 -vt 0.096552 0.343750 -vt 0.124138 0.328125 -vt 0.096552 0.343750 -vt 0.124138 0.328125 -vt 0.096552 0.343750 -vt 0.124138 0.328125 -vt 0.096552 0.343750 -vt 0.124138 0.328125 -vt 0.096552 0.343750 -vt 0.124138 0.328125 -vt 0.096552 0.343750 -vt 0.124138 0.328125 -vt 0.096552 0.343750 -vt 0.124138 0.328125 -vt 0.096552 0.343750 -vt 0.124138 0.328125 -vt 0.455172 0.531250 -vt 0.510345 0.531250 -vt 0.551724 0.750000 -vt 0.620690 0.609375 -vt 0.455172 0.515625 -vt 0.510345 0.609375 -vt 0.510345 0.593750 -vt 0.455172 0.593750 -vt 0.551724 0.625000 -vt 0.551724 0.500000 -vt 0.551724 0.390625 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.551583 0.609269 -vt 0.544695 0.640480 -vt 0.517133 0.702938 -vt 0.517104 0.422013 -vt 0.106793 0.119651 -vt 0.097935 0.106242 -vt 0.092016 0.086173 -vt 0.089938 0.062500 -vt 0.092016 0.038827 -vt 0.097935 0.018758 -vt 0.106793 0.005349 -vt 0.127690 0.005349 -vt 0.136548 0.018758 -vt 0.142467 0.038827 -vt 0.142467 0.086173 -vt 0.136548 0.106242 -vt 0.127690 0.119651 -vt 0.124138 0.390625 -vt 0.144828 0.375000 -vt 0.144828 0.390625 -vt 0.124138 0.343750 -vt 0.144828 0.359375 -vt 0.124138 0.359375 -vt 0.124138 0.312500 -vt 0.144828 0.328125 -vt 0.124138 0.328125 -vt 0.124138 0.296875 -vt 0.144828 0.312500 -vt 0.124138 0.406250 -vt 0.144828 0.406250 -vt 0.124138 0.375000 -vt 0.144828 0.343750 -vt 0.124138 0.281250 -vt 0.144828 0.296875 -vt 0.158621 0.312500 -vt 0.158621 0.328125 -vt 0.158621 0.359375 -vt 0.158621 0.390625 -vt 0.144828 0.281250 -vt 0.158621 0.296875 -vt 0.158621 0.343750 -vt 0.158621 0.375000 -vt 0.158621 0.406250 -vt 0.172414 0.390625 -vt 0.172414 0.406250 -vt 0.172414 0.296875 -vt 0.172414 0.312500 -vt 0.172414 0.328125 -vt 0.172414 0.359375 -vt 0.158621 0.281250 -vt 0.172414 0.343750 -vt 0.172414 0.375000 -vt 0.186207 0.343750 -vt 0.186207 0.359375 -vt 0.186207 0.375000 -vt 0.186207 0.390625 -vt 0.186207 0.406250 -vt 0.186207 0.312500 -vt 0.186207 0.328125 -vt 0.172414 0.281250 -vt 0.186207 0.296875 -vt 0.193103 -0.000000 -vt 0.186207 -0.000000 -vt 0.151724 -0.000000 -vt 0.144828 -0.000000 -vt 0.158621 -0.000000 -vt 0.179310 -0.000000 -vt 0.172414 -0.000000 -vt 0.165517 -0.000000 -vt 0.193103 0.109375 -vt 0.200000 0.109375 -vt 0.151724 0.109375 -vt 0.158621 0.109375 -vt 0.179310 0.109375 -vt 0.186207 0.109375 -vt 0.165517 0.109375 -vt 0.172414 0.109375 -vt 0.310345 0.000000 -vt 0.296552 0.000000 -vt 0.282759 0.000000 -vt 0.268966 0.000000 -vt 0.365517 0.000000 -vt 0.351724 0.000000 -vt 0.337931 0.000000 -vt 0.324138 0.000000 -vt 0.255172 0.000000 -vt 0.310345 0.093750 -vt 0.317241 0.093750 -vt 0.296552 0.093750 -vt 0.303448 0.093750 -vt 0.282759 0.093750 -vt 0.289655 0.093750 -vt 0.268966 0.093750 -vt 0.275862 0.093750 -vt 0.324138 0.093750 -vt 0.331034 0.093750 -vt 0.337931 0.093750 -vt 0.344828 0.093750 -vt 0.351724 0.093750 -vt 0.358621 0.093750 -vt 0.255172 0.093750 -vt 0.262069 0.093750 -vt 0.958621 0.609375 -vt 0.965517 0.593750 -vt 0.965517 0.609375 -vt 0.958621 0.562500 -vt 0.965517 0.546875 -vt 0.965517 0.562500 -vt 0.986207 0.578125 -vt 0.965517 0.625000 -vt 0.958621 0.625000 -vt 0.958621 0.578125 -vt 0.965517 0.578125 -vt 0.986207 0.562500 -vt 0.958621 0.531250 -vt 0.965517 0.515625 -vt 0.965517 0.531250 -vt 0.958621 0.640625 -vt 0.965517 0.640625 -vt 0.958621 0.593750 -vt 0.979310 0.562500 -vt 0.986207 0.546875 -vt 0.958621 0.546875 -vt 0.979310 0.546875 -vt 0.965517 0.593750 -vt 0.972414 0.609375 -vt 0.965517 0.609375 -vt 0.965517 0.656250 -vt 0.972414 0.640625 -vt 0.972414 0.656250 -vt 0.965517 0.546875 -vt 0.972414 0.531250 -vt 0.972414 0.546875 -vt 0.965517 0.703125 -vt 0.972414 0.687500 -vt 0.972414 0.703125 -vt 0.972414 0.578125 -vt 0.972414 0.593750 -vt 0.965517 0.625000 -vt 0.965517 0.640625 -vt 0.965517 0.515625 -vt 0.965517 0.531250 -vt 0.965517 0.671875 -vt 0.965517 0.687500 -vt 0.965517 0.562500 -vt 0.965517 0.578125 -vt 0.972414 0.625000 -vt 0.972414 0.671875 -vt 0.972414 0.562500 -vt 0.296552 0.218750 -vt 0.310345 0.234375 -vt 0.296552 0.234375 -vt 0.296552 0.187500 -vt 0.310345 0.203125 -vt 0.296552 0.203125 -vt 0.310345 0.234375 -vt 0.296552 0.250000 -vt 0.296552 0.234375 -vt 0.310345 0.203125 -vt 0.296552 0.218750 -vt 0.296552 0.203125 -vt 0.296552 0.187500 -vt 0.310345 0.218750 -vt 0.324138 0.234375 -vt 0.310345 0.187500 -vt 0.324138 0.203125 -vt 0.324138 0.250000 -vt 0.310345 0.250000 -vt 0.310345 0.234375 -vt 0.296552 0.250000 -vt 0.296552 0.234375 -vt 0.310345 0.203125 -vt 0.296552 0.218750 -vt 0.296552 0.203125 -vt 0.310345 0.187500 -vt 0.296552 0.187500 -vt 0.310345 0.218750 -vt 0.324138 0.234375 -vt 0.324138 0.203125 -vt 0.310345 0.250000 -vt 0.310345 0.234375 -vt 0.296552 0.250000 -vt 0.296552 0.234375 -vt 0.310345 0.203125 -vt 0.296552 0.218750 -vt 0.296552 0.203125 -vt 0.310345 0.187500 -vt 0.296552 0.187500 -vt 0.310345 0.218750 -vt 0.324138 0.234375 -vt 0.324138 0.187500 -vt 0.324138 0.250000 -vt 0.310345 0.250000 -vt 0.324138 0.203125 -vt 0.255172 0.234375 -vt 0.255172 0.234375 -vt 0.255172 0.218750 -vt 0.255172 0.203125 -vt 0.255172 0.234375 -vt 0.255172 0.218750 -vt 0.255172 0.187500 -vt 0.255172 0.203125 -vt 0.255172 0.218750 -vt 0.255172 0.203125 -vt 0.255172 0.187500 -vt 0.255172 0.187500 -vt 0.310345 0.218750 -vt 0.296552 0.250000 -vt 0.310345 0.250000 -vt 0.324138 0.203125 -vt 0.324138 0.218750 -vt 0.324138 0.234375 -vt 0.324138 0.250000 -vt 0.324138 0.187500 -vt 0.296552 0.187500 -vt 0.310345 0.203125 -vt 0.296552 0.203125 -vt 0.296552 0.218750 -vt 0.310345 0.234375 -vt 0.296552 0.234375 -vt 0.310345 0.218750 -vt 0.310345 0.250000 -vt 0.296552 0.250000 -vt 0.324138 0.203125 -vt 0.324138 0.218750 -vt 0.324138 0.234375 -vt 0.324138 0.250000 -vt 0.310345 0.187500 -vt 0.296552 0.187500 -vt 0.310345 0.203125 -vt 0.296552 0.203125 -vt 0.296552 0.218750 -vt 0.310345 0.234375 -vt 0.296552 0.234375 -vt 0.310345 0.218750 -vt 0.310345 0.250000 -vt 0.296552 0.250000 -vt 0.324138 0.203125 -vt 0.324138 0.218750 -vt 0.324138 0.250000 -vt 0.324138 0.187500 -vt 0.324138 0.234375 -vt 0.255172 0.203125 -vt 0.255172 0.203125 -vt 0.255172 0.218750 -vt 0.255172 0.234375 -vt 0.255172 0.203125 -vt 0.255172 0.218750 -vt 0.255172 0.250000 -vt 0.255172 0.234375 -vt 0.255172 0.218750 -vt 0.255172 0.234375 -vt 0.255172 0.250000 -vt 0.255172 0.250000 -vt 0.124138 0.390625 -vt 0.144828 0.375000 -vt 0.144828 0.390625 -vt 0.124138 0.343750 -vt 0.144828 0.359375 -vt 0.124138 0.359375 -vt 0.124138 0.312500 -vt 0.144828 0.328125 -vt 0.124138 0.328125 -vt 0.124138 0.296875 -vt 0.144828 0.312500 -vt 0.124138 0.406250 -vt 0.144828 0.406250 -vt 0.124138 0.375000 -vt 0.144828 0.343750 -vt 0.124138 0.281250 -vt 0.144828 0.296875 -vt 0.158621 0.312500 -vt 0.158621 0.328125 -vt 0.158621 0.359375 -vt 0.158621 0.390625 -vt 0.144828 0.281250 -vt 0.158621 0.296875 -vt 0.158621 0.343750 -vt 0.158621 0.375000 -vt 0.158621 0.406250 -vt 0.172414 0.390625 -vt 0.172414 0.406250 -vt 0.172414 0.296875 -vt 0.172414 0.312500 -vt 0.172414 0.328125 -vt 0.172414 0.359375 -vt 0.158621 0.281250 -vt 0.172414 0.343750 -vt 0.172414 0.375000 -vt 0.186207 0.343750 -vt 0.186207 0.359375 -vt 0.186207 0.375000 -vt 0.186207 0.390625 -vt 0.186207 0.406250 -vt 0.186207 0.312500 -vt 0.186207 0.328125 -vt 0.172414 0.281250 -vt 0.186207 0.296875 -vt 0.193103 -0.000000 -vt 0.186207 -0.000000 -vt 0.151724 -0.000000 -vt 0.144828 -0.000000 -vt 0.158621 -0.000000 -vt 0.179310 -0.000000 -vt 0.172414 -0.000000 -vt 0.165517 -0.000000 -vt 0.193103 0.109375 -vt 0.200000 0.109375 -vt 0.151724 0.109375 -vt 0.158621 0.109375 -vt 0.179310 0.109375 -vt 0.186207 0.109375 -vt 0.165517 0.109375 -vt 0.172414 0.109375 -vt 0.124138 0.390625 -vt 0.144828 0.375000 -vt 0.144828 0.390625 -vt 0.124138 0.343750 -vt 0.144828 0.359375 -vt 0.124138 0.359375 -vt 0.124138 0.312500 -vt 0.144828 0.328125 -vt 0.124138 0.328125 -vt 0.124138 0.296875 -vt 0.144828 0.312500 -vt 0.124138 0.406250 -vt 0.144828 0.406250 -vt 0.124138 0.375000 -vt 0.144828 0.343750 -vt 0.124138 0.281250 -vt 0.144828 0.296875 -vt 0.158621 0.312500 -vt 0.158621 0.328125 -vt 0.158621 0.359375 -vt 0.158621 0.390625 -vt 0.144828 0.281250 -vt 0.158621 0.296875 -vt 0.158621 0.343750 -vt 0.158621 0.375000 -vt 0.158621 0.406250 -vt 0.172414 0.390625 -vt 0.172414 0.406250 -vt 0.172414 0.296875 -vt 0.172414 0.312500 -vt 0.172414 0.328125 -vt 0.172414 0.359375 -vt 0.158621 0.281250 -vt 0.172414 0.343750 -vt 0.172414 0.375000 -vt 0.186207 0.343750 -vt 0.186207 0.359375 -vt 0.186207 0.375000 -vt 0.186207 0.390625 -vt 0.186207 0.406250 -vt 0.186207 0.312500 -vt 0.186207 0.328125 -vt 0.172414 0.281250 -vt 0.186207 0.296875 -vt 0.193103 -0.000000 -vt 0.186207 -0.000000 -vt 0.151724 -0.000000 -vt 0.144828 -0.000000 -vt 0.158621 -0.000000 -vt 0.179310 -0.000000 -vt 0.172414 -0.000000 -vt 0.165517 -0.000000 -vt 0.193103 0.109375 -vt 0.200000 0.109375 -vt 0.151724 0.109375 -vt 0.158621 0.109375 -vt 0.179310 0.109375 -vt 0.186207 0.109375 -vt 0.165517 0.109375 -vt 0.172414 0.109375 -vt 0.124138 0.390625 -vt 0.144828 0.375000 -vt 0.144828 0.390625 -vt 0.124138 0.343750 -vt 0.144828 0.359375 -vt 0.124138 0.359375 -vt 0.124138 0.312500 -vt 0.144828 0.328125 -vt 0.124138 0.328125 -vt 0.124138 0.296875 -vt 0.144828 0.312500 -vt 0.124138 0.406250 -vt 0.144828 0.406250 -vt 0.124138 0.375000 -vt 0.144828 0.343750 -vt 0.124138 0.281250 -vt 0.144828 0.296875 -vt 0.158621 0.312500 -vt 0.158621 0.328125 -vt 0.158621 0.359375 -vt 0.158621 0.390625 -vt 0.144828 0.281250 -vt 0.158621 0.296875 -vt 0.158621 0.343750 -vt 0.158621 0.375000 -vt 0.158621 0.406250 -vt 0.172414 0.390625 -vt 0.172414 0.406250 -vt 0.172414 0.296875 -vt 0.172414 0.312500 -vt 0.172414 0.328125 -vt 0.172414 0.359375 -vt 0.158621 0.281250 -vt 0.172414 0.343750 -vt 0.172414 0.375000 -vt 0.186207 0.343750 -vt 0.186207 0.359375 -vt 0.186207 0.375000 -vt 0.186207 0.390625 -vt 0.186207 0.406250 -vt 0.186207 0.312500 -vt 0.186207 0.328125 -vt 0.172414 0.281250 -vt 0.186207 0.296875 -vt 0.193103 -0.000000 -vt 0.186207 -0.000000 -vt 0.151724 -0.000000 -vt 0.144828 -0.000000 -vt 0.158621 -0.000000 -vt 0.172414 -0.000000 -vt 0.165517 -0.000000 -vt 0.179310 -0.000000 -vt 0.193103 0.109375 -vt 0.200000 0.109375 -vt 0.151724 0.109375 -vt 0.158621 0.109375 -vt 0.179310 0.109375 -vt 0.186207 0.109375 -vt 0.165517 0.109375 -vt 0.172414 0.109375 -vt 0.124138 0.390625 -vt 0.144828 0.375000 -vt 0.144828 0.390625 -vt 0.124138 0.343750 -vt 0.144828 0.359375 -vt 0.124138 0.359375 -vt 0.124138 0.312500 -vt 0.144828 0.328125 -vt 0.124138 0.328125 -vt 0.124138 0.296875 -vt 0.144828 0.312500 -vt 0.124138 0.406250 -vt 0.144828 0.406250 -vt 0.124138 0.375000 -vt 0.144828 0.343750 -vt 0.124138 0.281250 -vt 0.144828 0.296875 -vt 0.158621 0.312500 -vt 0.158621 0.328125 -vt 0.158621 0.359375 -vt 0.158621 0.390625 -vt 0.144828 0.281250 -vt 0.158621 0.296875 -vt 0.158621 0.343750 -vt 0.158621 0.375000 -vt 0.158621 0.406250 -vt 0.172414 0.390625 -vt 0.172414 0.406250 -vt 0.172414 0.296875 -vt 0.172414 0.312500 -vt 0.172414 0.328125 -vt 0.172414 0.359375 -vt 0.158621 0.281250 -vt 0.172414 0.343750 -vt 0.172414 0.375000 -vt 0.186207 0.343750 -vt 0.186207 0.359375 -vt 0.186207 0.375000 -vt 0.186207 0.390625 -vt 0.186207 0.406250 -vt 0.186207 0.312500 -vt 0.186207 0.328125 -vt 0.172414 0.281250 -vt 0.186207 0.296875 -vt 0.193103 -0.000000 -vt 0.186207 -0.000000 -vt 0.151724 -0.000000 -vt 0.144828 -0.000000 -vt 0.158621 -0.000000 -vt 0.179310 -0.000000 -vt 0.172414 -0.000000 -vt 0.165517 -0.000000 -vt 0.193103 0.109375 -vt 0.200000 0.109375 -vt 0.151724 0.109375 -vt 0.158621 0.109375 -vt 0.179310 0.109375 -vt 0.186207 0.109375 -vt 0.165517 0.109375 -vt 0.172414 0.109375 -vt 0.124138 0.390625 -vt 0.144828 0.375000 -vt 0.144828 0.390625 -vt 0.124138 0.343750 -vt 0.144828 0.359375 -vt 0.124138 0.359375 -vt 0.124138 0.312500 -vt 0.144828 0.328125 -vt 0.124138 0.328125 -vt 0.124138 0.296875 -vt 0.144828 0.312500 -vt 0.124138 0.406250 -vt 0.144828 0.406250 -vt 0.124138 0.375000 -vt 0.144828 0.343750 -vt 0.124138 0.281250 -vt 0.144828 0.296875 -vt 0.158621 0.312500 -vt 0.158621 0.328125 -vt 0.158621 0.359375 -vt 0.158621 0.390625 -vt 0.144828 0.281250 -vt 0.158621 0.296875 -vt 0.158621 0.343750 -vt 0.158621 0.375000 -vt 0.158621 0.406250 -vt 0.172414 0.406250 -vt 0.172414 0.296875 -vt 0.172414 0.312500 -vt 0.172414 0.328125 -vt 0.172414 0.359375 -vt 0.172414 0.390625 -vt 0.158621 0.281250 -vt 0.172414 0.343750 -vt 0.172414 0.375000 -vt 0.186207 0.343750 -vt 0.186207 0.359375 -vt 0.186207 0.375000 -vt 0.186207 0.390625 -vt 0.186207 0.406250 -vt 0.186207 0.312500 -vt 0.186207 0.328125 -vt 0.172414 0.281250 -vt 0.186207 0.296875 -vt 0.193103 -0.000000 -vt 0.186207 -0.000000 -vt 0.151724 -0.000000 -vt 0.144828 -0.000000 -vt 0.158621 -0.000000 -vt 0.179310 -0.000000 -vt 0.172414 -0.000000 -vt 0.165517 -0.000000 -vt 0.193103 0.109375 -vt 0.200000 0.109375 -vt 0.151724 0.109375 -vt 0.158621 0.109375 -vt 0.179310 0.109375 -vt 0.186207 0.109375 -vt 0.165517 0.109375 -vt 0.172414 0.109375 -vt 0.124138 0.390625 -vt 0.144828 0.375000 -vt 0.144828 0.390625 -vt 0.124138 0.343750 -vt 0.144828 0.359375 -vt 0.124138 0.359375 -vt 0.124138 0.312500 -vt 0.144828 0.328125 -vt 0.124138 0.328125 -vt 0.124138 0.296875 -vt 0.144828 0.312500 -vt 0.124138 0.406250 -vt 0.144828 0.406250 -vt 0.124138 0.375000 -vt 0.144828 0.343750 -vt 0.124138 0.281250 -vt 0.144828 0.296875 -vt 0.158621 0.312500 -vt 0.158621 0.328125 -vt 0.158621 0.359375 -vt 0.158621 0.390625 -vt 0.144828 0.281250 -vt 0.158621 0.296875 -vt 0.158621 0.343750 -vt 0.158621 0.375000 -vt 0.158621 0.406250 -vt 0.172414 0.390625 -vt 0.172414 0.406250 -vt 0.172414 0.296875 -vt 0.172414 0.312500 -vt 0.172414 0.328125 -vt 0.172414 0.359375 -vt 0.158621 0.281250 -vt 0.172414 0.343750 -vt 0.172414 0.375000 -vt 0.186207 0.343750 -vt 0.186207 0.359375 -vt 0.186207 0.375000 -vt 0.186207 0.390625 -vt 0.186207 0.406250 -vt 0.186207 0.312500 -vt 0.186207 0.328125 -vt 0.172414 0.281250 -vt 0.186207 0.296875 -vt 0.193103 -0.000000 -vt 0.186207 -0.000000 -vt 0.151724 -0.000000 -vt 0.144828 -0.000000 -vt 0.158621 -0.000000 -vt 0.179310 -0.000000 -vt 0.172414 -0.000000 -vt 0.165517 -0.000000 -vt 0.193103 0.109375 -vt 0.200000 0.109375 -vt 0.151724 0.109375 -vt 0.158621 0.109375 -vt 0.179310 0.109375 -vt 0.186207 0.109375 -vt 0.165517 0.109375 -vt 0.172414 0.109375 -vt 0.124138 0.390625 -vt 0.144828 0.375000 -vt 0.144828 0.390625 -vt 0.124138 0.343750 -vt 0.144828 0.359375 -vt 0.124138 0.359375 -vt 0.124138 0.312500 -vt 0.144828 0.328125 -vt 0.124138 0.328125 -vt 0.124138 0.296875 -vt 0.144828 0.312500 -vt 0.124138 0.406250 -vt 0.144828 0.406250 -vt 0.124138 0.375000 -vt 0.144828 0.343750 -vt 0.124138 0.281250 -vt 0.144828 0.296875 -vt 0.158621 0.312500 -vt 0.158621 0.328125 -vt 0.158621 0.359375 -vt 0.158621 0.390625 -vt 0.144828 0.281250 -vt 0.158621 0.296875 -vt 0.158621 0.343750 -vt 0.158621 0.375000 -vt 0.158621 0.406250 -vt 0.172414 0.390625 -vt 0.172414 0.406250 -vt 0.172414 0.296875 -vt 0.172414 0.312500 -vt 0.172414 0.328125 -vt 0.172414 0.359375 -vt 0.158621 0.281250 -vt 0.172414 0.343750 -vt 0.172414 0.375000 -vt 0.186207 0.343750 -vt 0.186207 0.359375 -vt 0.186207 0.375000 -vt 0.186207 0.390625 -vt 0.186207 0.406250 -vt 0.186207 0.312500 -vt 0.186207 0.328125 -vt 0.172414 0.281250 -vt 0.186207 0.296875 -vt 0.193103 -0.000000 -vt 0.186207 -0.000000 -vt 0.151724 -0.000000 -vt 0.144828 -0.000000 -vt 0.158621 -0.000000 -vt 0.172414 -0.000000 -vt 0.165517 -0.000000 -vt 0.179310 -0.000000 -vt 0.193103 0.109375 -vt 0.200000 0.109375 -vt 0.151724 0.109375 -vt 0.158621 0.109375 -vt 0.179310 0.109375 -vt 0.186207 0.109375 -vt 0.165517 0.109375 -vt 0.172414 0.109375 -vt 0.255172 0.218750 -vt 0.296552 0.234375 -vt 0.255172 0.234375 -vt 0.255172 0.187500 -vt 0.296552 0.203125 -vt 0.255172 0.203125 -vt 0.296552 0.250000 -vt 0.255172 0.250000 -vt 0.296552 0.218750 -vt 0.310345 0.187500 -vt 0.310345 0.203125 -vt 0.310345 0.250000 -vt 0.310345 0.218750 -vt 0.310345 0.234375 -vt 0.324138 0.234375 -vt 0.324138 0.187500 -vt 0.324138 0.203125 -vt 0.324138 0.250000 -vt 0.324138 0.218750 -vt 0.255172 0.218750 -vt 0.296552 0.234375 -vt 0.255172 0.234375 -vt 0.255172 0.187500 -vt 0.296552 0.203125 -vt 0.255172 0.203125 -vt 0.296552 0.250000 -vt 0.255172 0.250000 -vt 0.296552 0.218750 -vt 0.310345 0.187500 -vt 0.310345 0.203125 -vt 0.310345 0.250000 -vt 0.310345 0.218750 -vt 0.310345 0.234375 -vt 0.324138 0.234375 -vt 0.324138 0.187500 -vt 0.324138 0.203125 -vt 0.324138 0.250000 -vt 0.324138 0.218750 -vt 0.255172 0.218750 -vt 0.296552 0.234375 -vt 0.255172 0.234375 -vt 0.255172 0.187500 -vt 0.296552 0.203125 -vt 0.255172 0.203125 -vt 0.296552 0.250000 -vt 0.255172 0.250000 -vt 0.296552 0.218750 -vt 0.310345 0.187500 -vt 0.310345 0.203125 -vt 0.310345 0.250000 -vt 0.310345 0.218750 -vt 0.310345 0.234375 -vt 0.324138 0.234375 -vt 0.324138 0.187500 -vt 0.324138 0.203125 -vt 0.324138 0.250000 -vt 0.324138 0.218750 -vt 0.089655 0.375000 -vt 0.075862 0.421875 -vt 0.075862 0.375000 -vt 0.075862 0.328125 -vt 0.089655 0.328125 -vt 0.075862 0.281250 -vt 0.089655 0.281250 -vt 0.075862 0.234375 -vt 0.089655 0.234375 -vt 0.075862 0.187500 -vt 0.089655 0.187500 -vt 0.089655 0.140625 -vt 0.075862 0.140625 -vt 0.089655 0.093750 -vt 0.075862 0.093750 -vt 0.089655 0.046875 -vt 0.075862 0.046875 -vt 0.089655 -0.000000 -vt 0.075862 0.000000 -vt 0.089655 0.750000 -vt 0.075862 0.703125 -vt 0.089655 0.703125 -vt 0.075862 0.656250 -vt 0.089655 0.656250 -vt 0.089655 0.609375 -vt 0.075862 0.609375 -vt 0.075862 0.562500 -vt 0.089655 0.562500 -vt 0.075862 0.515625 -vt 0.089655 0.515625 -vt 0.075862 0.468750 -vt 0.089655 0.468750 -vt 0.089655 0.421875 -vt 0.055172 0.375000 -vt 0.055172 0.328125 -vt 0.055172 -0.000000 -vt 0.055172 0.421875 -vt 0.055172 0.046875 -vt 0.055172 0.468750 -vt 0.055172 0.093750 -vt 0.055172 0.515625 -vt 0.055172 0.140625 -vt 0.055172 0.562500 -vt 0.055172 0.187500 -vt 0.055172 0.609375 -vt 0.055172 0.234375 -vt 0.055172 0.656250 -vt 0.055172 0.281250 -vt 0.075862 0.750000 -vt 0.055172 0.703125 -vt 0.000000 0.125000 -vt 0.000000 0.093750 -vt -0.000000 0.546875 -vt 0.000000 0.515625 -vt -0.000000 0.140625 -vt -0.000000 0.593750 -vt -0.000000 0.562500 -vt 0.000000 0.218750 -vt 0.000000 0.187500 -vt 0.000000 0.609375 -vt -0.000000 0.234375 -vt 0.000000 0.687500 -vt 0.000000 0.656250 -vt -0.000000 0.281250 -vt 0.055172 0.750000 -vt 0.000000 0.703125 -vt -0.000000 0.406250 -vt -0.000000 0.375000 -vt 0.000000 0.328125 -vt 0.000000 0.031250 -vt -0.000000 0.000000 -vt 0.000000 0.421875 -vt -0.000000 0.046875 -vt -0.000000 0.500000 -vt 0.000000 0.468750 -vt 0.393103 0.937500 -vt 0.413793 1.000000 -vt 0.393103 1.000000 -vt 0.393103 0.500000 -vt 0.413793 0.562500 -vt 0.393103 0.562500 -vt 0.393103 0.437500 -vt 0.413793 0.500000 -vt 0.393103 -0.000000 -vt 0.413793 0.062500 -vt 0.393103 0.062500 -vt 0.413793 0.625000 -vt 0.393103 0.625000 -vt 0.413793 0.125000 -vt 0.393103 0.125000 -vt 0.413793 0.687500 -vt 0.393103 0.687500 -vt 0.413793 0.187500 -vt 0.393103 0.187500 -vt 0.413793 0.750000 -vt 0.393103 0.750000 -vt 0.413793 0.250000 -vt 0.393103 0.250000 -vt 0.413793 0.812500 -vt 0.393103 0.812500 -vt 0.413793 0.312500 -vt 0.393103 0.312500 -vt 0.413793 0.875000 -vt 0.393103 0.875000 -vt 0.413793 0.375000 -vt 0.393103 0.375000 -vt 0.413793 0.937500 -vt 0.413793 0.437500 -vt 0.186207 0.281250 -vt 0.200000 -0.000000 -vt 0.144828 0.109375 -vt 0.958621 0.515625 -vt 0.972414 0.515625 -vt 0.310345 0.187500 -vt 0.324138 0.218750 -vt 0.324138 0.187500 -vt 0.324138 0.218750 -vt 0.324138 0.187500 -vt 0.324138 0.250000 -vt 0.324138 0.218750 -vt 0.255172 0.250000 -vt 0.255172 0.250000 -vt 0.255172 0.250000 -vt 0.324138 0.187500 -vt 0.310345 0.187500 -vt 0.255172 0.187500 -vt 0.255172 0.187500 -vt 0.255172 0.187500 -vt 0.186207 0.281250 -vt 0.200000 -0.000000 -vt 0.144828 0.109375 -vt 0.186207 0.281250 -vt 0.200000 -0.000000 -vt 0.144828 0.109375 -vt 0.186207 0.281250 -vt 0.200000 -0.000000 -vt 0.144828 0.109375 -vt 0.186207 0.281250 -vt 0.200000 -0.000000 -vt 0.144828 0.109375 -vt 0.186207 0.281250 -vt 0.200000 -0.000000 -vt 0.144828 0.109375 -vt 0.186207 0.281250 -vt 0.200000 -0.000000 -vt 0.144828 0.109375 -vt 0.186207 0.281250 -vt 0.200000 -0.000000 -vt 0.144828 0.109375 -vt 0.296552 0.187500 -vt 0.296552 0.187500 -vt 0.296552 0.187500 -vt -0.000000 0.171875 -vt 0.000000 0.640625 -vt -0.000000 0.265625 -vt -0.000000 0.312500 -vt -0.000000 0.734375 -vt 0.000000 0.359375 -vt -0.000000 0.453125 -vt -0.000000 0.078125 -vt 0.413793 -0.000000 -vn -1.0000 0.0000 0.0000 -vn 0.7071 -0.7071 -0.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0000 -1.0000 -0.0000 -vn -0.7071 -0.7071 -0.0000 -vn 0.0000 -0.7071 -0.7071 -vn 0.0000 1.0000 0.0000 -vn -0.7071 -0.7071 0.0057 -vn 0.0000 0.0000 1.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 0.9487 -0.3162 -vn 0.0000 0.4472 -0.8944 -vn 0.1617 0.3904 0.9063 -vn 0.1617 0.3905 0.9063 -vn 0.1752 0.8806 0.4403 -vn 0.0859 0.4318 -0.8979 -vn 0.9845 -0.1567 -0.0783 -vn -0.0859 -0.4318 0.8978 -vn -0.9695 0.2320 -0.0783 -vn -0.7071 0.7071 0.0000 -vn 0.0000 -0.3827 -0.9239 -vn 0.0000 -0.9239 0.3827 -vn 0.0000 0.9239 -0.3827 -vn 0.0000 -0.9239 -0.3827 -vn 0.0000 -0.3827 0.9239 -vn 0.0000 0.9239 0.3827 -vn 0.0000 0.3827 -0.9239 -vn 0.7071 0.7071 0.0000 -vn -0.3162 0.3162 -0.8944 -vn 0.0000 0.4226 -0.9063 -vn 0.0000 0.9063 0.4226 -vn -0.7071 0.6409 0.2988 -vn 0.7071 0.6409 0.2988 -vn 0.0000 0.7934 0.6088 -vn 0.0000 0.1305 -0.9914 -vn 0.0000 0.5000 0.8660 -vn 0.0000 0.5000 -0.8660 -vn 0.0000 -0.5000 -0.8660 -vn 0.0000 -0.5000 0.8660 -vn 0.6547 0.3780 -0.6547 -vn 0.6547 -0.3780 -0.6547 -vn 0.6547 -0.3780 0.6547 -vn 0.6547 0.7559 0.0000 -vn 0.6547 -0.7559 0.0000 -vn 0.6547 0.3780 0.6547 -vn 0.0000 0.7071 0.7071 -vn 0.0000 -0.7071 0.7071 -vn 0.0000 0.7071 -0.7071 -vn -0.5000 -0.7849 -0.3660 -vn -0.0000 -0.4226 0.9063 -vn -0.2357 0.2357 0.9428 -vn 0.2357 0.2357 0.9428 -vn -0.2357 -0.2357 -0.9428 -vn -0.2357 -0.2357 0.9428 -vn 0.0000 -0.9285 0.3714 -vn 0.0000 0.9285 -0.3714 -vn 0.0000 -0.9900 -0.1407 -vn 0.0000 0.9900 0.1407 -vn -0.1617 -0.3904 0.9063 -vn -0.1617 -0.3905 0.9063 -vn 0.3904 -0.1617 0.9063 -vn 0.3905 -0.1617 0.9063 -vn -0.3904 0.1617 0.9063 -vn -0.3905 0.1617 0.9063 -vn 0.3905 0.1617 0.9063 -vn 0.3904 0.1617 0.9063 -vn -0.3905 -0.1617 0.9063 -vn -0.3904 -0.1617 0.9063 -vn 0.1617 -0.3905 0.9063 -vn 0.1617 -0.3904 0.9063 -vn -0.1617 0.3905 0.9063 -vn -0.1617 0.3904 0.9063 -vn -0.1752 -0.8806 0.4403 -vn -0.0859 -0.4318 -0.8979 -vn -0.9845 0.1567 -0.0783 -vn 0.0859 0.4318 0.8978 -vn 0.9695 -0.2320 -0.0783 -vn 0.8806 -0.1752 0.4403 -vn 0.4318 -0.0859 -0.8979 -vn -0.1567 -0.9845 -0.0783 -vn -0.4318 0.0859 0.8978 -vn 0.2320 0.9695 -0.0783 -vn -0.8806 0.1752 0.4403 -vn -0.4318 0.0859 -0.8979 -vn 0.1567 0.9845 -0.0783 -vn 0.4318 -0.0859 0.8978 -vn -0.2320 -0.9695 -0.0783 -vn 0.7465 0.4988 0.4403 -vn 0.3661 0.2446 -0.8979 -vn 0.5854 -0.8070 -0.0783 -vn -0.3661 -0.2446 0.8978 -vn -0.5215 0.8496 -0.0783 -vn -0.7465 -0.4988 0.4403 -vn -0.3661 -0.2446 -0.8979 -vn -0.5854 0.8070 -0.0783 -vn 0.3661 0.2446 0.8978 -vn 0.5215 -0.8496 -0.0783 -vn 0.4988 -0.7465 0.4403 -vn 0.2446 -0.3661 -0.8979 -vn -0.8070 -0.5854 -0.0783 -vn -0.2446 0.3661 0.8978 -vn 0.8496 0.5215 -0.0783 -vn -0.4988 0.7465 0.4403 -vn -0.2446 0.3661 -0.8979 -vn 0.8070 0.5854 -0.0783 -vn 0.2446 -0.3661 0.8978 -vn -0.8496 -0.5215 -0.0783 -vn 0.4988 0.7465 0.4403 -vn 0.2446 0.3661 -0.8979 -vn 0.8496 -0.5215 -0.0783 -vn -0.2446 -0.3661 0.8978 -vn -0.8070 0.5854 -0.0783 -vn -0.4988 -0.7465 0.4403 -vn -0.2446 -0.3661 -0.8979 -vn -0.8496 0.5215 -0.0783 -vn 0.2446 0.3661 0.8978 -vn 0.8070 -0.5854 -0.0783 -vn 0.7465 -0.4988 0.4403 -vn 0.3661 -0.2446 -0.8979 -vn -0.5215 -0.8496 -0.0783 -vn -0.3661 0.2446 0.8978 -vn 0.5854 0.8070 -0.0783 -vn -0.7465 0.4988 0.4403 -vn -0.3661 0.2446 -0.8979 -vn 0.5215 0.8496 -0.0783 -vn 0.3661 -0.2446 0.8978 -vn -0.5854 -0.8070 -0.0783 -vn 0.8806 0.1752 0.4403 -vn 0.4318 0.0859 -0.8979 -vn 0.2320 -0.9696 -0.0783 -vn -0.4318 -0.0859 0.8978 -vn -0.1567 0.9845 -0.0783 -vn -0.8806 -0.1752 0.4403 -vn -0.4318 -0.0859 -0.8979 -vn -0.2320 0.9696 -0.0783 -vn 0.4318 0.0859 0.8978 -vn 0.1567 -0.9845 -0.0783 -vn 0.1752 -0.8806 0.4403 -vn 0.0859 -0.4318 -0.8979 -vn -0.9696 -0.2320 -0.0783 -vn -0.0859 0.4318 0.8978 -vn 0.9845 0.1567 -0.0783 -vn -0.1752 0.8806 0.4403 -vn -0.0859 0.4318 -0.8979 -vn 0.9696 0.2320 -0.0783 -vn 0.0859 -0.4318 0.8978 -vn -0.9845 -0.1567 -0.0783 -vn -0.7082 -0.7060 -0.0004 -vn -0.7085 -0.7057 0.0000 -vn 0.0859 0.4318 -0.8978 -vn -0.0859 -0.4318 -0.8978 -vn 0.4318 -0.0859 -0.8978 -vn -0.4318 0.0859 -0.8978 -vn 0.3661 0.2446 -0.8978 -vn -0.3661 -0.2446 -0.8978 -vn 0.2446 -0.3661 -0.8978 -vn -0.2446 0.3661 -0.8978 -vn 0.2446 0.3661 -0.8978 -vn -0.2446 -0.3661 -0.8978 -vn 0.3661 -0.2446 -0.8978 -vn -0.3661 0.2446 -0.8978 -vn 0.4318 0.0859 -0.8978 -vn -0.4318 -0.0859 -0.8978 -vn 0.0859 -0.4318 -0.8978 -vn -0.0859 0.4318 -0.8978 -vn 0.7311 -0.6303 -0.2611 -vn 0.9973 0.0609 0.0399 -vn 0.7430 -0.5190 -0.4226 -vn 0.6721 0.5735 0.4683 -vn 0.6333 0.7150 0.2962 -vn -0.9947 0.0948 0.0393 -vn -0.6721 0.5735 0.4683 -vn -0.6333 0.7150 0.2962 -vn -0.7311 -0.6303 -0.2611 -vn -0.9973 0.0609 0.0399 -vn 0.0000 -0.7779 -0.6284 -vn 0.9947 0.0948 0.0393 -vn 0.0000 0.7690 0.6392 -vn -0.7430 -0.5190 -0.4226 -vn -0.9989 0.0183 0.0441 -vn -0.6840 0.2791 0.6739 -vn 0.6840 0.2791 0.6739 -vn 0.7317 -0.2608 -0.6297 -vn -0.7317 -0.2608 -0.6297 -vn 0.0000 0.3827 0.9239 -vn 0.9989 0.0183 0.0441 -vn 0.7317 0.0000 -0.6816 -vn -0.7317 0.0000 -0.6816 -vn -0.9989 0.0000 0.0477 -vn -0.6841 -0.0000 0.7294 -vn 0.6840 -0.0000 0.7294 -vn 0.9989 0.0000 0.0477 -vn 0.0000 -0.1951 0.9808 -vn 0.6770 -0.1436 0.7219 -vn 0.9988 -0.0095 0.0477 -vn 0.7251 0.1344 -0.6754 -vn 0.0000 0.1951 -0.9808 -vn -0.9988 -0.0095 0.0477 -vn -0.6770 -0.1436 0.7219 -vn -0.7251 0.1344 -0.6754 -vn 0.8985 0.3215 -0.2988 -vn 0.9239 -0.3827 -0.0000 -vn -0.4080 0.8627 -0.2988 -vn 0.3468 0.8373 -0.4226 -vn -0.9239 0.3827 0.0000 -vn -0.8985 -0.3215 0.2988 -vn 0.4080 -0.8627 0.2988 -vn -0.3468 -0.8373 0.4226 -vn -0.4080 0.8627 -0.2989 -vn 0.3827 0.9239 0.0000 -vn 0.9239 0.3827 0.0000 -vn 0.3827 -0.9239 0.0000 -vn -0.3827 -0.9239 0.0000 -vn -0.9239 -0.3827 0.0000 -vn -0.3827 0.9239 0.0000 -vn 0.0000 -0.9063 -0.4226 -vn -0.8660 0.4532 0.2113 -vn 0.2588 0.8754 0.4082 -vn 0.5000 0.7849 0.3660 -vn 0.5000 -0.7849 -0.3660 -vn -0.8660 -0.4532 -0.2113 -vn 0.8660 0.4532 0.2113 -vn -0.5000 0.7849 0.3660 -vn -0.2588 0.8754 0.4082 -vn 0.7071 -0.6409 -0.2988 -vn 0.9659 -0.2346 -0.1094 -vn 0.8660 -0.4532 -0.2113 -vn 0.6947 0.6947 0.1866 -vn 0.8431 -0.0945 0.5293 -vn 0.9891 0.0283 0.1448 -vn -0.3812 0.9204 0.0866 -vn -0.0945 0.8431 0.5294 -vn 0.0283 0.9891 0.1448 -vn 0.0945 0.8431 0.5294 -vn 0.3812 0.9204 0.0866 -vn -0.0283 0.9891 0.1448 -vn -0.8431 -0.0945 0.5293 -vn -0.6947 0.6947 0.1866 -vn -0.9891 0.0283 0.1448 -vn -0.9204 -0.3812 0.0866 -vn -0.5000 0.5000 0.7071 -vn 0.2384 0.6572 0.7150 -vn -0.8446 -0.4619 0.2706 -vn -0.6572 -0.2384 0.7150 -vn 0.5345 0.7559 0.3780 -vn 0.4619 0.8446 0.2706 -vn -0.8431 -0.0945 0.5294 -vn -0.7559 -0.5345 0.3780 -vn 0.5000 0.5000 0.7071 -vn 0.9204 -0.3812 0.0866 -vn 0.8446 -0.4619 0.2706 -vn -0.2384 0.6572 0.7150 -vn 0.2706 0.2706 0.9239 -vn 0.6572 -0.2384 0.7150 -vn 0.7559 -0.5345 0.3780 -vn -0.5345 0.7559 0.3780 -vn -0.4619 0.8446 0.2706 -vn 0.8431 -0.0945 0.5294 -vn -0.7311 0.6303 -0.2611 -vn -0.9973 -0.0609 0.0399 -vn -0.7430 0.5190 -0.4226 -vn -0.6721 -0.5735 0.4683 -vn -0.6333 -0.7150 0.2962 -vn 0.9947 -0.0948 0.0393 -vn 0.6721 -0.5735 0.4683 -vn 0.6333 -0.7150 0.2962 -vn 0.7311 0.6303 -0.2611 -vn 0.9973 -0.0609 0.0399 -vn -0.0000 0.7779 -0.6284 -vn -0.9947 -0.0948 0.0393 -vn -0.0000 -0.7690 0.6392 -vn 0.7430 0.5190 -0.4226 -vn 0.9989 -0.0183 0.0441 -vn 0.6841 -0.2791 0.6739 -vn -0.6840 -0.2791 0.6739 -vn -0.7317 0.2608 -0.6297 -vn 0.7317 0.2608 -0.6297 -vn -0.9989 -0.0183 0.0441 -vn 0.6841 -0.0000 0.7294 -vn -0.6840 0.0000 0.7294 -vn -0.0000 0.1951 0.9808 -vn -0.6770 0.1436 0.7219 -vn -0.9988 0.0095 0.0477 -vn -0.7251 -0.1344 -0.6754 -vn -0.0000 -0.1951 -0.9808 -vn 0.9988 0.0095 0.0477 -vn 0.6770 0.1436 0.7219 -vn 0.7251 -0.1344 -0.6754 -vn -0.8985 -0.3215 -0.2988 -vn 0.4080 -0.8627 -0.2988 -vn -0.3468 -0.8373 -0.4226 -vn 0.8985 0.3215 0.2988 -vn -0.4080 0.8627 0.2988 -vn 0.3468 0.8373 0.4226 -vn 0.4080 -0.8627 -0.2989 -vn -0.6303 -0.7311 -0.2611 -vn 0.0609 -0.9973 0.0399 -vn -0.5190 -0.7430 -0.4226 -vn 0.9239 -0.0000 0.3827 -vn 0.5735 -0.6721 0.4683 -vn 0.7150 -0.6333 0.2962 -vn 0.0948 0.9947 0.0393 -vn 0.5735 0.6721 0.4683 -vn 0.7150 0.6333 0.2962 -vn -0.6303 0.7311 -0.2611 -vn 0.0609 0.9973 0.0399 -vn -0.9239 -0.0000 -0.3827 -vn -0.7779 -0.0000 -0.6284 -vn 0.0948 -0.9947 0.0393 -vn 0.7690 -0.0000 0.6392 -vn -0.5190 0.7430 -0.4226 -vn 0.0183 0.9989 0.0441 -vn 0.2791 0.6841 0.6739 -vn 0.2791 -0.6840 0.6739 -vn -0.2608 -0.7317 -0.6297 -vn -0.2608 0.7317 -0.6297 -vn 0.3827 -0.0000 0.9239 -vn 0.0183 -0.9989 0.0441 -vn -0.3827 -0.0000 -0.9239 -vn 0.0000 -0.7317 -0.6816 -vn 0.0000 0.7317 -0.6816 -vn 0.0000 0.9989 0.0477 -vn 0.0000 0.6841 0.7294 -vn -0.0000 -0.6840 0.7294 -vn 0.0000 -0.9989 0.0477 -vn -0.1951 -0.0000 0.9808 -vn -0.1436 -0.6770 0.7219 -vn -0.0095 -0.9988 0.0477 -vn 0.1344 -0.7251 -0.6754 -vn 0.1951 -0.0000 -0.9808 -vn -0.0095 0.9988 0.0477 -vn -0.1436 0.6770 0.7219 -vn 0.1344 0.7251 -0.6754 -vn 0.3215 -0.8985 -0.2988 -vn 0.8627 0.4080 -0.2988 -vn 0.8373 -0.3468 -0.4226 -vn -0.3215 0.8985 0.2988 -vn -0.8627 -0.4080 0.2988 -vn -0.8373 0.3468 0.4226 -vn 0.8627 0.4080 -0.2989 -vn 0.6303 0.7311 -0.2611 -vn -0.0609 0.9973 0.0399 -vn 0.5190 0.7430 -0.4226 -vn -0.9239 0.0000 0.3827 -vn -0.5735 0.6721 0.4683 -vn -0.7150 0.6333 0.2962 -vn -0.0948 -0.9947 0.0393 -vn -0.5735 -0.6721 0.4683 -vn -0.7150 -0.6333 0.2962 -vn 0.6303 -0.7311 -0.2611 -vn -0.0609 -0.9973 0.0399 -vn 0.9239 0.0000 -0.3827 -vn 0.7779 0.0000 -0.6284 -vn -0.0948 0.9947 0.0393 -vn -0.7690 0.0000 0.6392 -vn 0.5190 -0.7430 -0.4226 -vn -0.0183 -0.9989 0.0441 -vn -0.2791 -0.6840 0.6739 -vn -0.2791 0.6840 0.6739 -vn 0.2608 0.7317 -0.6297 -vn 0.2608 -0.7317 -0.6297 -vn -0.3827 0.0000 0.9239 -vn -0.0183 0.9989 0.0441 -vn 0.3827 0.0000 -0.9239 -vn -0.0000 -0.6841 0.7294 -vn 0.0000 0.6840 0.7294 -vn 0.1951 0.0000 0.9808 -vn 0.1436 0.6770 0.7219 -vn 0.0095 0.9988 0.0477 -vn -0.1344 0.7251 -0.6754 -vn -0.1951 0.0000 -0.9808 -vn 0.0095 -0.9988 0.0477 -vn 0.1436 -0.6770 0.7219 -vn -0.1344 -0.7251 -0.6754 -vn -0.3215 0.8985 -0.2988 -vn -0.8627 -0.4080 -0.2988 -vn -0.8373 0.3468 -0.4226 -vn 0.3215 -0.8985 0.2988 -vn 0.8373 -0.3468 0.4226 -vn 0.8627 0.4080 0.2988 -vn -0.8627 -0.4080 -0.2989 -vn 0.3215 -0.8985 0.2989 -vn 0.0712 -0.9627 -0.2611 -vn 0.7483 -0.6622 0.0399 -vn 0.1584 -0.8924 -0.4226 -vn 0.6533 0.6533 0.3827 -vn 0.8808 -0.0697 0.4683 -vn 0.9534 0.0578 0.2962 -vn -0.6364 0.7704 0.0393 -vn -0.0697 0.8808 0.4683 -vn 0.0578 0.9534 0.2962 -vn -0.9627 0.0712 -0.2611 -vn -0.6622 0.7483 0.0399 -vn -0.6533 -0.6533 -0.3827 -vn -0.5501 -0.5501 -0.6284 -vn 0.7704 -0.6363 0.0393 -vn 0.5438 0.5438 0.6392 -vn -0.8924 0.1584 -0.4226 -vn -0.6934 0.7192 0.0441 -vn -0.2863 0.6811 0.6739 -vn 0.6811 -0.2863 0.6739 -vn 0.3330 -0.7018 -0.6297 -vn -0.7018 0.3330 -0.6297 -vn 0.7192 -0.6934 0.0441 -vn -0.2706 -0.2706 -0.9239 -vn 0.5174 -0.5174 -0.6816 -vn -0.5174 0.5174 -0.6816 -vn -0.7063 0.7063 0.0477 -vn -0.4837 0.4837 0.7294 -vn 0.4837 -0.4837 0.7294 -vn 0.7063 -0.7063 0.0477 -vn -0.1379 -0.1379 0.9808 -vn 0.3772 -0.5802 0.7219 -vn 0.6996 -0.7130 0.0477 -vn 0.6077 -0.4177 -0.6754 -vn 0.1380 0.1379 -0.9808 -vn -0.7130 0.6996 0.0477 -vn -0.5802 0.3772 0.7219 -vn -0.4177 0.6077 -0.6754 -vn 0.8627 -0.4080 -0.2988 -vn 0.3215 0.8985 -0.2988 -vn 0.8373 0.3468 -0.4226 -vn -0.8627 0.4080 0.2988 -vn -0.3215 -0.8985 0.2988 -vn -0.8373 -0.3468 0.4226 -vn 0.3215 0.8985 -0.2989 -vn -0.0712 0.9627 -0.2611 -vn -0.7483 0.6622 0.0399 -vn -0.1584 0.8924 -0.4226 -vn -0.6533 -0.6533 0.3827 -vn -0.8808 0.0697 0.4683 -vn -0.9534 -0.0578 0.2962 -vn 0.6364 -0.7704 0.0393 -vn 0.0697 -0.8808 0.4683 -vn -0.0578 -0.9534 0.2962 -vn 0.9627 -0.0712 -0.2611 -vn 0.6622 -0.7483 0.0399 -vn 0.6533 0.6533 -0.3827 -vn 0.5501 0.5501 -0.6284 -vn -0.7704 0.6363 0.0393 -vn -0.5438 -0.5438 0.6392 -vn 0.8924 -0.1584 -0.4226 -vn 0.6934 -0.7192 0.0441 -vn 0.2863 -0.6811 0.6739 -vn -0.6811 0.2863 0.6739 -vn -0.3330 0.7018 -0.6297 -vn 0.7018 -0.3330 -0.6297 -vn -0.2706 -0.2706 0.9239 -vn -0.7192 0.6934 0.0441 -vn 0.2706 0.2706 -0.9239 -vn 0.1379 0.1379 0.9808 -vn -0.3772 0.5802 0.7219 -vn -0.6996 0.7130 0.0477 -vn -0.6077 0.4177 -0.6754 -vn -0.1380 -0.1380 -0.9808 -vn 0.7130 -0.6996 0.0477 -vn 0.5802 -0.3772 0.7219 -vn 0.4177 -0.6077 -0.6754 -vn -0.8627 0.4080 -0.2988 -vn -0.3215 -0.8985 -0.2988 -vn -0.8373 -0.3468 -0.4226 -vn 0.8627 -0.4080 0.2988 -vn 0.3215 0.8985 0.2988 -vn 0.8373 0.3468 0.4226 -vn -0.8627 0.4080 -0.2989 -vn -0.3215 -0.8985 -0.2989 -vn 0.8627 -0.4080 0.2989 -vn -0.9627 -0.0712 -0.2611 -vn -0.6622 -0.7483 0.0399 -vn -0.8924 -0.1584 -0.4226 -vn 0.6533 -0.6533 0.3827 -vn -0.0697 -0.8808 0.4683 -vn 0.0578 -0.9534 0.2962 -vn 0.7704 0.6364 0.0393 -vn 0.8808 0.0697 0.4683 -vn 0.9534 -0.0578 0.2962 -vn 0.0712 0.9627 -0.2611 -vn 0.7483 0.6622 0.0399 -vn -0.6533 0.6533 -0.3827 -vn -0.5501 0.5501 -0.6284 -vn -0.6363 -0.7704 0.0393 -vn 0.5438 -0.5438 0.6392 -vn 0.1584 0.8924 -0.4226 -vn 0.7192 0.6934 0.0441 -vn 0.6811 0.2863 0.6739 -vn -0.2863 -0.6811 0.6739 -vn -0.7018 -0.3330 -0.6297 -vn 0.3330 0.7018 -0.6297 -vn 0.2706 -0.2706 0.9239 -vn -0.6934 -0.7192 0.0441 -vn -0.2706 0.2706 -0.9239 -vn -0.5174 -0.5174 -0.6816 -vn 0.5174 0.5174 -0.6816 -vn 0.7063 0.7063 0.0477 -vn 0.4837 0.4837 0.7294 -vn -0.4837 -0.4837 0.7294 -vn -0.7063 -0.7063 0.0477 -vn -0.1379 0.1379 0.9808 -vn -0.5802 -0.3772 0.7219 -vn -0.7130 -0.6996 0.0477 -vn -0.4177 -0.6077 -0.6754 -vn 0.1379 -0.1380 -0.9808 -vn 0.6996 0.7130 0.0477 -vn 0.3772 0.5802 0.7219 -vn 0.6077 0.4177 -0.6754 -vn -0.4080 -0.8627 -0.2988 -vn 0.8985 -0.3215 -0.2988 -vn 0.3468 -0.8373 -0.4226 -vn 0.4080 0.8627 0.2988 -vn -0.8985 0.3215 0.2988 -vn -0.3468 0.8373 0.4226 -vn 0.8985 -0.3215 -0.2989 -vn 0.9627 0.0712 -0.2611 -vn 0.6622 0.7483 0.0399 -vn 0.8924 0.1584 -0.4226 -vn -0.6533 0.6533 0.3827 -vn 0.0697 0.8808 0.4683 -vn -0.0578 0.9534 0.2962 -vn -0.7704 -0.6363 0.0393 -vn -0.8808 -0.0697 0.4683 -vn -0.9534 0.0578 0.2962 -vn -0.0713 -0.9627 -0.2611 -vn -0.7483 -0.6622 0.0399 -vn 0.6533 -0.6533 -0.3827 -vn 0.5501 -0.5501 -0.6284 -vn 0.6363 0.7704 0.0393 -vn -0.5438 0.5438 0.6392 -vn -0.1584 -0.8924 -0.4226 -vn -0.7192 -0.6934 0.0441 -vn -0.6811 -0.2863 0.6739 -vn 0.2863 0.6811 0.6739 -vn 0.7018 0.3330 -0.6297 -vn -0.3330 -0.7018 -0.6297 -vn -0.2706 0.2706 0.9239 -vn 0.6934 0.7192 0.0441 -vn 0.2706 -0.2706 -0.9239 -vn 0.1379 -0.1379 0.9808 -vn 0.5802 0.3772 0.7219 -vn 0.7130 0.6996 0.0477 -vn 0.4177 0.6077 -0.6754 -vn -0.1379 0.1380 -0.9808 -vn -0.6996 -0.7130 0.0477 -vn -0.3772 -0.5802 0.7219 -vn -0.6077 -0.4177 -0.6754 -vn 0.4080 0.8627 -0.2988 -vn -0.8985 0.3215 -0.2988 -vn -0.3468 0.8373 -0.4226 -vn -0.4080 -0.8627 0.2988 -vn 0.3468 -0.8373 0.4226 -vn 0.8985 -0.3215 0.2988 -vn 0.4080 0.8627 -0.2989 -vn -0.8985 0.3215 -0.2989 -vn -0.4080 -0.8627 0.2989 -vn 0.6794 0.7194 0.1448 -vn -0.6794 0.7194 0.1448 -vn 0.9204 0.3812 0.0866 -vn -0.0000 0.9824 0.1866 -vn -0.9239 0.2706 0.2706 -vn -0.6630 0.5294 0.5294 -vn 0.9239 0.2706 0.2706 -vn 0.6630 0.5294 0.5294 -vn 0.6333 0.2962 0.7150 -vn -0.9125 0.1566 0.3780 -vn -0.6333 0.2962 0.7150 -vn 0.9125 0.1566 0.3780 -vn 0.0000 -0.8944 0.4472 -vn 0.3423 -0.8263 0.4472 -vn -0.3423 -0.8263 0.4472 -vn -0.6325 -0.6325 0.4472 -vn -0.8263 -0.3423 0.4472 -vn -0.8944 -0.0000 0.4472 -vn -0.8263 0.3423 0.4472 -vn -0.6325 0.6325 0.4472 -vn -0.3423 0.8263 0.4472 -vn 0.0000 0.8944 0.4472 -vn 0.3423 0.8263 0.4472 -vn 0.6325 0.6325 0.4472 -vn 0.8263 0.3423 0.4472 -vn 0.8944 0.0000 0.4472 -vn 0.8263 -0.3423 0.4472 -vn 0.6325 -0.6325 0.4472 -vn -0.3162 0.3162 0.8944 -vn -0.4132 0.1711 0.8944 -vn 0.4132 -0.1711 0.8944 -vn 0.4472 -0.0000 0.8944 -vn -0.4472 -0.0000 0.8944 -vn 0.4132 0.1711 0.8944 -vn -0.4132 -0.1711 0.8944 -vn 0.3162 0.3162 0.8944 -vn -0.3162 -0.3162 0.8944 -vn 0.1711 0.4132 0.8944 -vn -0.1711 -0.4132 0.8944 -vn -0.0000 0.4472 0.8944 -vn 0.0000 -0.4472 0.8944 -vn 0.1711 -0.4132 0.8944 -vn -0.1711 0.4132 0.8944 -vn 0.3162 -0.3162 0.8944 -vn -0.9204 0.3812 0.0866 -s off -f 229/323/124 230/324/124 231/325/124 -f 233/326/125 235/327/125 236/328/125 -f 235/327/126 240/329/126 241/330/126 -f 243/331/127 237/332/127 242/333/127 -f 245/334/128 243/335/128 231/325/128 -f 243/336/129 233/337/129 232/338/129 -f 247/339/130 241/330/130 246/340/130 -f 248/341/124 250/342/124 251/343/124 -f 250/342/124 229/323/124 228/344/124 -f 248/341/131 254/345/131 249/346/131 -f 256/347/124 258/348/124 255/349/124 -f 260/350/124 262/351/124 259/352/124 -f 264/353/124 266/354/124 263/355/124 -f 268/356/124 270/357/124 267/358/124 -f 272/359/124 274/360/124 271/361/124 -f 263/355/124 267/358/124 262/351/124 -f 257/362/124 256/347/124 272/359/124 -f 263/363/127 276/364/127 264/365/127 -f 262/366/132 275/367/132 263/368/132 -f 257/369/130 279/370/130 258/371/130 -f 258/372/132 280/373/132 259/374/132 -f 282/375/124 284/376/124 281/377/124 -f 285/378/124 275/367/124 277/379/124 -f 279/370/124 286/380/124 280/373/124 -f 288/381/124 290/382/124 287/383/124 -f 266/384/132 281/377/132 268/385/132 -f 265/386/130 282/375/130 266/387/130 -f 269/388/133 283/389/133 265/390/133 -f 259/391/127 286/380/127 260/392/127 -f 264/393/133 285/378/133 261/394/133 -f 261/395/130 277/379/130 262/396/130 -f 260/397/133 278/398/133 257/399/133 -f 268/400/127 284/376/127 269/401/127 -f 256/402/133 288/381/133 273/403/133 -f 273/404/130 287/383/130 274/405/130 -f 274/406/132 290/382/132 255/407/132 -f 255/408/127 289/409/127 256/410/127 -f 235/327/133 292/411/133 240/329/133 -f 235/327/133 234/412/133 291/413/133 -f 251/343/133 294/414/133 248/341/133 -f 248/341/133 294/414/133 253/415/133 -f 240/416/134 246/340/134 241/330/134 -f 293/417/134 252/418/134 295/419/134 -f 295/419/130 228/344/130 296/420/130 -f 298/421/135 300/422/135 297/423/135 -f 238/424/135 299/425/135 298/421/135 -f 300/422/135 228/426/135 297/423/135 -f 301/427/136 303/428/136 304/429/136 -f 306/430/136 308/431/136 305/432/136 -f 309/433/136 311/434/136 312/435/136 -f 310/436/136 314/437/136 311/434/136 -f 315/438/137 304/429/137 316/439/137 -f 302/440/136 308/431/136 303/428/136 -f 309/433/136 307/441/136 306/430/136 -f 313/442/136 316/443/136 314/437/136 -f 324/444/136 318/445/136 320/446/136 -f 326/447/136 328/448/136 325/449/136 -f 326/447/136 330/450/136 327/451/136 -f 331/452/137 330/450/137 329/453/137 -f 333/454/136 332/455/136 331/456/136 -f 335/457/137 334/458/137 333/454/137 -f 335/457/137 338/459/137 336/460/137 -f 337/461/136 340/462/136 338/459/136 -f 339/463/137 328/448/137 340/462/137 -f 342/464/138 344/465/138 341/466/138 -f 345/467/139 344/465/139 343/468/139 -f 347/469/140 343/468/140 342/464/140 -f 347/470/141 341/466/141 348/471/141 -f 348/472/142 344/465/142 346/473/142 -f 350/474/132 352/475/132 349/476/132 -f 358/477/132 359/478/132 360/479/132 -f 349/476/132 362/480/132 361/481/132 -f 363/482/132 362/483/132 364/484/132 -f 363/482/132 366/485/132 365/486/132 -f 365/487/132 368/488/132 367/489/132 -f 367/489/132 370/490/132 369/491/132 -f 371/492/132 370/493/132 372/494/132 -f 371/492/132 351/495/132 350/474/132 -f 373/496/132 375/497/132 376/498/132 -f 377/499/132 374/500/132 373/501/132 -f 380/502/132 377/503/132 379/504/132 -f 382/505/132 379/506/132 381/507/132 -f 384/508/132 381/509/132 383/510/132 -f 385/511/132 384/512/132 383/513/132 -f 387/514/132 386/515/132 385/516/132 -f 376/517/132 388/518/132 387/519/132 -f 668/520/133 1759/521/133 1760/522/133 -f 1756/523/143 1767/524/143 1755/525/143 -f 239/526/132 391/527/132 392/528/132 -f 236/529/132 393/530/132 394/531/132 -f 237/532/132 395/533/132 396/534/132 -f 242/535/132 397/536/132 398/537/132 -f 231/538/132 399/539/132 400/540/132 -f 1758/541/130 1769/542/130 1757/543/130 -f 403/544/124 405/545/124 407/546/124 -f 272/359/132 411/547/132 270/357/132 -f 271/361/127 410/548/127 272/359/127 -f 267/358/133 412/549/133 271/361/133 -f 270/357/130 413/550/130 267/358/130 -f 417/551/126 419/552/126 421/553/126 -f 421/554/144 404/555/144 403/556/144 -f 419/557/145 406/558/145 405/559/145 -f 415/560/146 402/561/146 409/562/146 -f 420/563/147 405/559/147 404/555/147 -f 418/564/148 407/565/148 406/558/148 -f 416/566/149 409/562/149 408/567/149 -f 414/568/150 403/556/150 402/561/150 -f 423/569/132 425/570/132 422/571/132 -f 427/572/133 429/573/133 426/574/133 -f 423/575/125 428/576/125 424/577/125 -f 425/570/143 426/578/143 422/579/143 -f 424/577/151 427/572/151 425/570/151 -f 422/580/128 429/581/128 423/575/128 -f 431/582/132 433/583/132 430/584/132 -f 435/585/133 437/586/133 434/587/133 -f 431/588/143 436/589/143 432/590/143 -f 433/583/125 434/591/125 430/592/125 -f 432/590/128 435/585/128 433/583/128 -f 430/592/151 437/593/151 431/594/151 -f 438/595/132 440/596/132 441/597/132 -f 442/598/133 444/599/133 445/600/133 -f 439/601/128 444/599/128 440/596/128 -f 441/597/151 442/602/151 438/603/151 -f 440/596/125 443/604/125 441/597/125 -f 438/605/143 445/606/143 439/601/143 -f 446/607/132 448/608/132 449/609/132 -f 450/610/133 452/611/133 453/612/133 -f 447/613/151 452/611/151 448/608/151 -f 449/609/128 450/614/128 446/615/128 -f 448/608/143 451/616/143 449/609/143 -f 446/615/125 453/617/125 447/618/125 -f 455/619/132 457/620/132 454/621/132 -f 459/622/152 461/623/152 458/624/152 -f 455/625/125 460/626/125 456/627/125 -f 457/620/143 458/624/143 454/628/143 -f 456/627/151 459/622/151 457/620/151 -f 455/625/128 458/629/128 461/630/128 -f 300/631/125 463/632/125 296/633/125 -f 299/634/128 464/635/128 465/636/128 -f 299/634/127 462/637/127 300/631/127 -f 465/636/135 463/638/135 462/637/135 -f 467/639/126 469/640/126 466/641/126 -f 470/642/124 472/643/124 473/644/124 -f 475/645/153 471/646/153 474/647/153 -f 474/647/154 477/648/154 475/645/154 -f 470/649/155 476/650/155 474/647/155 -f 469/651/156 477/648/156 466/652/156 -f 245/653/127 950/654/127 233/337/127 -f 479/655/157 481/656/157 478/657/157 -f 483/658/126 480/659/126 485/660/126 -f 480/661/146 486/662/146 481/656/146 -f 484/663/158 487/664/158 486/662/158 -f 478/665/124 481/666/124 486/667/124 -f 491/668/127 493/669/127 490/670/127 -f 491/668/126 495/671/126 492/672/126 -f 493/669/124 497/673/124 490/670/124 -f 499/674/133 501/675/133 498/676/133 -f 503/677/126 500/678/126 502/679/126 -f 505/680/124 498/676/124 504/681/124 -f 502/682/130 499/674/130 505/683/130 -f 504/684/127 501/675/127 503/685/127 -f 507/686/133 509/687/133 506/688/133 -f 511/689/127 508/690/127 510/691/127 -f 513/692/130 506/688/130 512/693/130 -f 510/694/126 507/686/126 513/695/126 -f 512/696/124 509/687/124 511/697/124 -f 515/698/127 517/699/127 514/700/127 -f 519/701/159 521/702/159 518/703/159 -f 523/704/160 525/705/160 522/706/160 -f 516/707/161 522/706/161 517/699/161 -f 520/708/162 514/709/162 521/702/162 -f 524/710/130 518/703/130 525/705/130 -f 514/711/126 517/712/126 522/713/126 -f 527/714/130 529/715/130 526/716/130 -f 531/717/127 533/718/127 530/719/127 -f 534/720/159 528/721/159 527/722/159 -f 526/723/160 537/724/160 536/725/160 -f 536/726/161 532/727/161 531/728/161 -f 530/729/162 535/730/162 534/731/162 -f 532/732/124 539/733/124 533/718/124 -f 528/721/124 540/734/124 541/735/124 -f 529/736/124 543/737/124 537/724/124 -f 532/727/124 543/737/124 538/738/124 -f 533/739/124 540/734/124 535/730/124 -f 528/740/124 542/741/124 529/715/124 -f 543/737/161 545/742/161 538/738/161 -f 539/743/162 547/744/162 540/734/162 -f 541/735/130 549/745/130 542/741/130 -f 538/738/127 546/746/127 539/733/127 -f 540/734/159 548/747/159 541/735/159 -f 542/741/160 544/748/160 543/737/160 -f 547/744/126 551/749/126 548/747/126 -f 548/747/126 552/750/126 549/745/126 -f 544/748/126 552/751/126 553/752/126 -f 544/748/126 554/753/126 545/742/126 -f 545/742/126 555/754/126 546/746/126 -f 547/744/126 555/755/126 550/756/126 -f 555/755/162 557/757/162 550/756/162 -f 551/758/130 559/759/130 552/750/130 -f 554/760/127 556/761/127 555/754/127 -f 550/762/159 558/763/159 551/749/159 -f 552/751/160 561/764/160 553/752/160 -f 553/765/161 560/766/161 554/753/161 -f 557/767/124 563/768/124 558/763/124 -f 558/769/124 564/770/124 559/759/124 -f 561/764/124 564/770/124 565/771/124 -f 561/772/124 566/773/124 560/766/124 -f 560/774/124 567/775/124 556/761/124 -f 557/757/124 567/776/124 562/777/124 -f 563/768/130 569/778/130 564/770/130 -f 566/773/127 571/779/127 567/775/127 -f 562/777/159 568/780/159 563/768/159 -f 564/770/160 573/781/160 565/771/160 -f 565/771/161 570/782/161 566/773/161 -f 567/776/162 572/783/162 562/777/162 -f 569/778/163 575/784/163 573/781/163 -f 573/781/164 576/785/164 570/782/164 -f 572/783/165 577/786/165 578/787/165 -f 568/780/166 574/788/166 569/778/166 -f 570/782/167 577/789/167 571/779/167 -f 568/780/168 578/790/168 579/791/168 -f 577/792/126 576/793/126 575/794/126 -f 581/795/130 583/796/130 580/797/130 -f 585/798/124 587/799/124 588/800/124 -f 582/801/133 590/802/133 583/796/133 -f 581/795/126 589/803/126 582/801/126 -f 583/796/124 592/804/124 580/797/124 -f 594/805/169 596/806/169 593/807/169 -f 593/808/124 598/809/124 597/810/124 -f 597/810/129 600/811/129 599/812/129 -f 594/805/126 600/811/126 595/813/126 -f 584/814/170 602/815/170 585/798/170 -f 587/816/133 604/817/133 588/818/133 -f 601/819/126 604/820/126 603/821/126 -f 602/815/169 586/822/169 585/798/169 -f 605/823/171 587/816/171 586/824/171 -f 584/814/129 604/825/129 601/819/129 -f 607/826/169 609/827/169 606/828/169 -f 610/829/126 608/830/126 607/831/126 -f 613/832/124 609/827/124 612/833/124 -f 612/833/171 608/830/171 611/834/171 -f 610/829/170 606/835/170 613/836/170 -f 615/837/124 624/838/124 625/839/124 -f 626/840/172 616/841/172 628/842/172 -f 623/843/173 633/844/173 624/838/173 -f 390/845/130 1689/846/130 297/423/130 -f 646/847/143 648/848/143 649/849/143 -f 1759/850/151 1772/851/151 1760/852/151 -f 297/423/143 652/853/143 653/854/143 -f 646/847/143 652/853/143 228/344/143 -f 297/423/143 649/849/143 648/848/143 -f 1755/855/128 1761/856/128 650/857/128 -f 656/858/151 239/859/151 238/860/151 -f 238/860/151 657/861/151 656/858/151 -f 389/862/151 657/861/151 298/421/151 -f 656/863/174 658/864/174 659/865/174 -f 646/866/151 661/867/151 652/868/151 -f 647/869/175 663/870/175 648/871/175 -f 661/867/143 665/872/143 664/873/143 -f 666/874/133 1756/875/133 1755/876/133 -f 659/877/151 669/878/151 668/520/151 -f 649/879/176 660/880/176 646/881/176 -f 1756/882/151 662/883/151 647/884/151 -f 653/885/177 661/886/177 664/873/177 -f 653/885/128 665/872/128 649/879/128 -f 657/887/125 655/888/125 1759/889/125 -f 1760/890/143 654/891/143 656/892/143 -f 670/893/124 672/894/124 673/895/124 -f 674/896/178 672/897/178 671/898/178 -f 677/899/126 679/900/126 676/901/126 -f 670/893/179 681/902/179 680/903/179 -f 679/900/126 682/904/126 683/905/126 -f 675/906/180 685/907/180 672/897/180 -f 680/908/126 674/909/126 686/910/126 -f 687/911/171 680/903/171 686/910/171 -f 687/911/124 671/912/124 670/913/124 -f 677/914/126 676/915/126 688/916/126 -f 689/917/171 677/899/171 688/916/171 -f 689/917/124 691/918/124 690/919/124 -f 693/920/133 686/910/133 692/921/133 -f 695/922/132 671/923/132 694/924/132 -f 697/925/126 676/915/126 696/926/126 -f 699/927/124 689/917/124 698/928/124 -f 694/929/124 687/911/124 693/920/124 -f 698/928/133 688/916/133 697/925/133 -f 696/926/132 691/930/132 699/931/132 -f 692/921/126 674/909/126 695/922/126 -f 676/901/178 700/932/178 691/933/178 -f 680/903/126 675/906/126 674/896/126 -f 702/934/130 704/935/130 701/936/130 -f 662/883/143 666/874/143 663/870/143 -f 663/870/128 666/874/128 1755/937/128 -f 1757/938/124 1765/939/124 1688/940/124 -f 705/941/181 682/904/181 678/942/181 -f 700/943/124 706/944/124 705/941/124 -f 672/894/124 708/945/124 673/895/124 -f 679/900/180 707/946/180 700/932/180 -f 675/906/126 709/947/126 684/948/126 -f 673/895/181 709/947/181 681/902/181 -f 690/949/124 700/943/124 705/941/124 -f 690/949/179 678/942/179 677/899/179 -f 711/950/161 713/951/161 710/952/161 -f 714/953/132 703/954/132 702/934/132 -f 712/955/127 717/956/127 713/951/127 -f 718/957/127 715/958/127 714/953/127 -f 716/959/162 721/960/162 717/961/162 -f 701/962/133 719/963/133 718/957/133 -f 720/964/159 723/965/159 721/960/159 -f 722/966/126 720/967/126 716/968/126 -f 722/969/130 725/970/130 723/965/130 -f 724/971/160 710/952/160 725/970/160 -f 723/972/124 725/973/124 713/974/124 -f 719/963/125 727/975/125 715/958/125 -f 715/976/132 727/975/132 703/977/132 -f 704/978/133 726/979/133 719/980/133 -f 704/978/133 729/981/133 726/979/133 -f 728/982/127 731/983/127 729/984/127 -f 726/979/126 732/985/126 727/975/126 -f 727/975/132 733/986/132 703/977/132 -f 703/977/124 728/987/124 704/988/124 -f 729/984/126 734/989/126 732/990/126 -f 733/991/124 735/992/124 728/993/124 -f 734/989/169 733/986/169 732/985/169 -f 737/994/179 739/995/179 736/996/179 -f 729/984/126 737/994/126 734/989/126 -f 734/989/130 736/996/130 735/992/130 -f 735/992/124 730/997/124 728/993/124 -f 740/998/126 741/999/126 738/1000/126 -f 730/997/124 739/995/124 742/1001/124 -f 730/1002/178 740/1003/178 731/983/178 -f 731/983/126 738/1004/126 737/994/126 -f 741/999/171 739/995/171 738/1004/171 -f 743/1005/124 745/1006/124 742/1007/124 -f 742/1007/124 739/1008/124 743/1005/124 -f 745/1009/132 748/1010/132 746/1011/132 -f 742/1012/132 749/1013/132 740/998/132 -f 740/998/126 750/1014/126 741/999/126 -f 741/999/133 744/1015/133 743/1005/133 -f 750/1016/133 751/1017/133 744/1018/133 -f 746/1011/125 750/1014/125 749/1013/125 -f 745/1009/132 746/1011/132 749/1019/132 -f 744/1018/130 747/1020/130 745/1021/130 -f 751/1017/133 752/1022/133 744/1018/133 -f 746/1011/127 753/1023/127 751/1017/127 -f 391/527/132 1771/1024/132 1786/1025/132 -f 401/1026/132 1767/1027/132 1768/1028/132 -f 1771/1024/132 1764/1029/132 389/1030/132 -f 1786/1025/132 1770/1031/132 1785/1032/132 -f 592/1033/127 589/1034/127 591/1035/127 -f 951/1036/182 953/1037/182 954/1038/182 -f 956/1039/182 958/1040/182 955/1041/182 -f 959/1042/182 961/1043/182 962/1044/182 -f 960/1045/182 964/1046/182 961/1043/182 -f 965/1047/183 954/1038/183 966/1048/183 -f 952/1049/182 958/1040/182 953/1037/182 -f 956/1039/182 962/1044/182 957/1050/182 -f 963/1051/182 966/1052/182 964/1046/182 -f 974/1053/182 968/1054/182 970/1055/182 -f 976/1056/182 978/1057/182 975/1058/182 -f 976/1056/182 980/1059/182 977/1060/182 -f 981/1061/183 980/1059/183 979/1062/183 -f 983/1063/182 982/1064/182 981/1065/182 -f 983/1063/183 986/1066/183 984/1067/183 -f 985/1068/183 988/1069/183 986/1066/183 -f 987/1070/182 990/1071/182 988/1069/182 -f 989/1072/183 978/1057/183 990/1071/183 -f 1039/1073/184 1041/1074/184 1042/1075/184 -f 1044/1076/184 1046/1077/184 1043/1078/184 -f 1047/1079/184 1049/1080/184 1050/1081/184 -f 1048/1082/184 1052/1083/184 1049/1080/184 -f 1053/1084/185 1042/1075/185 1054/1085/185 -f 1040/1086/184 1046/1077/184 1041/1074/184 -f 1047/1079/184 1045/1087/184 1044/1076/184 -f 1051/1088/184 1054/1089/184 1052/1083/184 -f 1062/1090/184 1056/1091/184 1058/1092/184 -f 1064/1093/184 1066/1094/184 1063/1095/184 -f 1064/1093/184 1068/1096/184 1065/1097/184 -f 1069/1098/185 1068/1096/185 1067/1099/185 -f 1071/1100/184 1070/1101/184 1069/1102/184 -f 1073/1103/185 1072/1104/185 1071/1100/185 -f 1073/1103/185 1076/1105/185 1074/1106/185 -f 1075/1107/184 1078/1108/184 1076/1105/184 -f 1077/1109/185 1066/1094/185 1078/1108/185 -f 1127/1110/186 1129/1111/186 1130/1112/186 -f 1132/1113/186 1134/1114/186 1131/1115/186 -f 1135/1116/186 1137/1117/186 1138/1118/186 -f 1136/1119/186 1140/1120/186 1137/1117/186 -f 1141/1121/187 1130/1112/187 1142/1122/187 -f 1128/1123/186 1134/1114/186 1129/1111/186 -f 1135/1116/186 1133/1124/186 1132/1113/186 -f 1139/1125/186 1142/1126/186 1140/1120/186 -f 1150/1127/186 1144/1128/186 1146/1129/186 -f 1152/1130/186 1154/1131/186 1151/1132/186 -f 1152/1130/186 1156/1133/186 1153/1134/186 -f 1157/1135/187 1156/1133/187 1155/1136/187 -f 1159/1137/186 1158/1138/186 1157/1139/186 -f 1161/1140/187 1160/1141/187 1159/1137/187 -f 1161/1140/187 1164/1142/187 1162/1143/187 -f 1163/1144/186 1166/1145/186 1164/1142/186 -f 1165/1146/187 1154/1131/187 1166/1145/187 -f 1215/1147/188 1217/1148/188 1218/1149/188 -f 1220/1150/189 1222/1151/189 1219/1152/189 -f 1223/1153/188 1225/1154/188 1226/1155/188 -f 1224/1156/189 1228/1157/189 1225/1154/189 -f 1229/1158/188 1218/1149/188 1230/1159/188 -f 1216/1160/189 1222/1151/189 1217/1148/189 -f 1223/1153/189 1221/1161/189 1220/1150/189 -f 1227/1162/189 1230/1163/189 1228/1157/189 -f 1238/1164/188 1232/1165/188 1234/1166/188 -f 1240/1167/188 1242/1168/188 1239/1169/188 -f 1240/1167/189 1244/1170/189 1241/1171/189 -f 1245/1172/188 1244/1170/188 1243/1173/188 -f 1247/1174/189 1246/1175/189 1245/1176/189 -f 1249/1177/189 1248/1178/189 1247/1174/189 -f 1249/1177/188 1252/1179/188 1250/1180/188 -f 1251/1181/189 1254/1182/189 1252/1179/189 -f 1253/1183/188 1242/1168/188 1254/1182/188 -f 1303/1184/190 1305/1185/190 1306/1186/190 -f 1308/1187/191 1310/1188/191 1307/1189/191 -f 1311/1190/190 1313/1191/190 1314/1192/190 -f 1312/1193/191 1316/1194/191 1313/1191/191 -f 1317/1195/190 1306/1186/190 1318/1196/190 -f 1304/1197/191 1310/1188/191 1305/1185/191 -f 1311/1190/191 1309/1198/191 1308/1187/191 -f 1315/1199/191 1318/1200/191 1316/1194/191 -f 1326/1201/191 1320/1202/191 1322/1203/191 -f 1328/1204/190 1330/1205/190 1327/1206/190 -f 1328/1204/191 1332/1207/191 1329/1208/191 -f 1333/1209/190 1332/1207/190 1331/1210/190 -f 1335/1211/191 1334/1212/191 1333/1213/191 -f 1337/1214/190 1336/1215/190 1335/1211/190 -f 1337/1214/190 1340/1216/190 1338/1217/190 -f 1339/1218/191 1342/1219/191 1340/1216/191 -f 1341/1220/190 1330/1205/190 1342/1219/190 -f 1391/1221/192 1393/1222/192 1394/1223/192 -f 1396/1224/192 1398/1225/192 1395/1226/192 -f 1399/1227/192 1401/1228/192 1402/1229/192 -f 1400/1230/193 1404/1231/193 1401/1228/193 -f 1405/1232/193 1394/1223/193 1406/1233/193 -f 1392/1234/193 1398/1225/193 1393/1222/193 -f 1396/1224/193 1402/1229/193 1397/1235/193 -f 1403/1236/193 1406/1237/193 1404/1231/193 -f 1414/1238/192 1408/1239/192 1410/1240/192 -f 1416/1241/192 1418/1242/192 1415/1243/192 -f 1416/1241/193 1420/1244/193 1417/1245/193 -f 1421/1246/192 1420/1244/192 1419/1247/192 -f 1423/1248/193 1422/1249/193 1421/1250/193 -f 1425/1251/193 1424/1252/193 1423/1248/193 -f 1425/1251/192 1428/1253/192 1426/1254/192 -f 1427/1255/193 1430/1256/193 1428/1253/193 -f 1429/1257/192 1418/1242/192 1430/1256/192 -f 1479/1258/194 1481/1259/194 1482/1260/194 -f 1484/1261/195 1486/1262/195 1483/1263/195 -f 1487/1264/194 1489/1265/194 1490/1266/194 -f 1491/1267/195 1489/1265/195 1488/1268/195 -f 1493/1269/194 1482/1260/194 1494/1270/194 -f 1480/1271/195 1486/1262/195 1481/1259/195 -f 1487/1264/195 1485/1272/195 1484/1261/195 -f 1491/1267/195 1494/1273/195 1492/1274/195 -f 1502/1275/195 1496/1276/195 1498/1277/195 -f 1504/1278/194 1506/1279/194 1503/1280/194 -f 1504/1278/195 1508/1281/195 1505/1282/195 -f 1509/1283/194 1508/1281/194 1507/1284/194 -f 1511/1285/195 1510/1286/195 1509/1287/195 -f 1513/1288/194 1512/1289/194 1511/1285/194 -f 1513/1288/194 1516/1290/194 1514/1291/194 -f 1515/1292/195 1518/1293/195 1516/1290/195 -f 1517/1294/194 1506/1279/194 1518/1293/194 -f 1567/1295/196 1569/1296/196 1570/1297/196 -f 1571/1298/197 1570/1297/197 1569/1296/197 -f 1573/1299/198 1569/1296/198 1568/1300/198 -f 1573/1301/199 1567/1295/199 1574/1302/199 -f 1574/1303/200 1570/1297/200 1572/1304/200 -f 1576/1305/201 1578/1306/201 1575/1307/201 -f 1579/1308/202 1578/1306/202 1577/1309/202 -f 1581/1310/203 1577/1309/203 1576/1305/203 -f 1581/1311/204 1575/1307/204 1582/1312/204 -f 1582/1313/205 1578/1306/205 1580/1314/205 -f 1583/1315/206 1585/1316/206 1586/1317/206 -f 1587/1318/207 1586/1317/207 1585/1316/207 -f 1589/1319/208 1585/1316/208 1584/1320/208 -f 1589/1321/209 1583/1315/209 1590/1322/209 -f 1590/1323/210 1586/1317/210 1588/1324/210 -f 1591/1325/211 1593/1326/211 1594/1327/211 -f 1595/1328/212 1594/1327/212 1593/1326/212 -f 1597/1329/213 1593/1326/213 1592/1330/213 -f 1597/1331/214 1591/1325/214 1598/1332/214 -f 1598/1333/215 1594/1327/215 1596/1334/215 -f 1599/1335/216 1601/1336/216 1602/1337/216 -f 1603/1338/217 1602/1337/217 1601/1336/217 -f 1605/1339/218 1601/1336/218 1600/1340/218 -f 1605/1341/219 1599/1335/219 1606/1342/219 -f 1606/1343/220 1602/1337/220 1604/1344/220 -f 1608/1345/221 1610/1346/221 1607/1347/221 -f 1611/1348/222 1610/1346/222 1609/1349/222 -f 1613/1350/223 1609/1349/223 1608/1345/223 -f 1613/1351/224 1607/1347/224 1614/1352/224 -f 1614/1353/225 1610/1346/225 1612/1354/225 -f 1615/1355/226 1617/1356/226 1618/1357/226 -f 1619/1358/227 1618/1357/227 1617/1356/227 -f 1621/1359/228 1617/1356/228 1616/1360/228 -f 1621/1361/229 1615/1355/229 1622/1362/229 -f 1622/1363/230 1618/1357/230 1620/1364/230 -f 1624/1365/231 1626/1366/231 1623/1367/231 -f 1627/1368/232 1626/1366/232 1625/1369/232 -f 1629/1370/233 1625/1369/233 1624/1365/233 -f 1629/1371/234 1623/1367/234 1630/1372/234 -f 1630/1373/235 1626/1366/235 1628/1374/235 -f 1631/1375/236 1633/1376/236 1634/1377/236 -f 1635/1378/237 1634/1377/237 1633/1376/237 -f 1637/1379/238 1633/1376/238 1632/1380/238 -f 1637/1381/239 1631/1375/239 1638/1382/239 -f 1638/1383/240 1634/1377/240 1636/1384/240 -f 1639/1385/241 1641/1386/241 1642/1387/241 -f 1643/1388/242 1642/1387/242 1641/1386/242 -f 1645/1389/243 1641/1386/243 1640/1390/243 -f 1645/1391/244 1639/1385/244 1646/1392/244 -f 1646/1393/245 1642/1387/245 1644/1394/245 -f 1647/1395/246 1649/1396/246 1650/1397/246 -f 1651/1398/247 1650/1397/247 1649/1396/247 -f 1653/1399/248 1649/1396/248 1648/1400/248 -f 1653/1401/249 1647/1395/249 1654/1402/249 -f 1654/1403/250 1650/1397/250 1652/1404/250 -f 1655/1405/251 1657/1406/251 1658/1407/251 -f 1659/1408/252 1658/1407/252 1657/1406/252 -f 1661/1409/253 1657/1406/253 1656/1410/253 -f 1661/1411/254 1655/1405/254 1662/1412/254 -f 1662/1413/255 1658/1407/255 1660/1414/255 -f 1663/1415/256 1665/1416/256 1666/1417/256 -f 1667/1418/257 1666/1417/257 1665/1416/257 -f 1669/1419/258 1665/1416/258 1664/1420/258 -f 1669/1421/259 1663/1415/259 1670/1422/259 -f 1670/1423/260 1666/1417/260 1668/1424/260 -f 1672/1425/261 1674/1426/261 1671/1427/261 -f 1675/1428/262 1674/1426/262 1673/1429/262 -f 1677/1430/263 1673/1429/263 1672/1425/263 -f 1677/1431/264 1671/1427/264 1678/1432/264 -f 1678/1433/265 1674/1426/265 1676/1434/265 -f 1679/1435/266 1681/1436/266 1682/1437/266 -f 1683/1438/267 1682/1437/267 1681/1436/267 -f 1685/1439/268 1681/1436/268 1680/1440/268 -f 1685/1441/269 1679/1435/269 1686/1442/269 -f 1686/1443/270 1682/1437/270 1684/1444/270 -f 1691/1445/124 1692/1446/124 1757/1447/124 -f 297/423/130 1687/1448/130 298/421/130 -f 389/862/130 1687/1448/130 1688/1449/130 -f 651/1450/151 1768/1451/151 1756/1452/151 -f 1691/1453/130 1694/1454/130 1692/1455/130 -f 1757/1456/133 1694/1457/133 1758/1458/133 -f 1689/1459/132 1691/1460/132 1687/1461/132 -f 1758/1462/126 1694/1463/126 1693/1464/126 -f 1690/1465/126 1770/1466/126 1758/1467/126 -f 655/1468/125 1771/1469/125 1759/1470/125 -f 1760/1471/143 1763/1472/143 654/1473/143 -f 655/1474/151 389/862/151 1764/1475/151 -f 1688/1449/130 1765/1476/130 389/862/130 -f 1690/1477/130 390/845/130 1766/1478/130 -f 650/1479/143 1761/1480/143 390/845/143 -f 654/1481/151 1763/1482/151 239/859/151 -f 1775/1483/151 1774/1484/151 1776/1485/151 -f 1778/1486/130 1779/1487/130 1777/1488/130 -f 651/1489/143 227/1490/143 1762/1491/143 -f 1783/1492/143 1782/1493/143 1784/1494/143 -f 390/1495/132 1767/1027/132 1770/1031/132 -f 1768/1028/132 227/1496/132 401/1026/132 -f 239/526/132 1772/1497/132 391/527/132 -f 1788/1498/127 1790/1499/127 1787/1500/127 -f 1792/1501/130 1794/1502/130 1791/1503/130 -f 1796/1504/124 1798/1505/124 1795/1506/124 -f 1800/1507/126 1802/1508/126 1799/1509/126 -f 1799/1509/151 1793/1510/151 1792/1501/151 -f 1801/1511/125 1790/1499/125 1789/1512/125 -f 1787/1513/128 1797/1514/128 1788/1515/128 -f 1794/1502/143 1795/1506/143 1791/1503/143 -f 1799/1516/132 1803/1517/132 1804/1518/132 -f 1792/1519/132 1806/1520/132 1807/1521/132 -f 1791/1522/132 1808/1523/132 1809/1524/132 -f 1795/1525/132 1810/1526/132 1811/1527/132 -f 1798/1528/132 1812/1529/132 1813/1530/132 -f 1787/1531/132 1814/1532/132 1815/1533/132 -f 1790/1534/132 1816/1535/132 1817/1536/132 -f 1800/1537/132 1805/1538/132 1818/1539/132 -f 1826/1540/132 1830/1541/132 1834/1542/132 -f 1836/1543/133 1837/1544/133 1793/1545/133 -f 1839/1546/133 1835/1547/133 1802/1548/133 -f 1841/1549/133 1838/1550/133 1801/1551/133 -f 1843/1552/133 1840/1553/133 1789/1554/133 -f 1845/1555/133 1842/1556/133 1788/1557/133 -f 1847/1558/133 1844/1559/133 1797/1560/133 -f 1849/1561/133 1846/1562/133 1796/1563/133 -f 1850/1564/133 1848/1565/133 1794/1566/133 -f 231/325/124 227/1490/124 229/323/124 -f 227/1490/124 228/344/124 229/323/124 -f 237/332/125 232/1567/125 236/328/125 -f 232/1567/125 233/326/125 236/328/125 -f 950/1568/125 234/1569/125 235/327/125 -f 233/326/125 950/1568/125 235/327/125 -f 241/330/126 238/1570/126 235/327/126 -f 238/1570/126 239/859/126 236/328/126 -f 235/327/126 238/1570/126 236/328/126 -f 243/331/127 232/1567/127 237/332/127 -f 242/1571/128 231/325/128 243/335/128 -f 231/325/271 230/324/271 245/334/271 -f 230/324/272 244/1572/272 245/334/272 -f 243/336/129 245/653/129 233/337/129 -f 247/339/130 238/1570/130 241/330/130 -f 248/341/124 249/346/124 250/342/124 -f 228/344/124 252/418/124 250/342/124 -f 252/418/124 251/343/124 250/342/124 -f 248/341/131 253/1573/131 254/345/131 -f 256/347/124 257/362/124 258/348/124 -f 260/350/124 261/1574/124 262/351/124 -f 264/353/124 265/1575/124 266/354/124 -f 268/356/124 269/1576/124 270/357/124 -f 272/359/124 273/1577/124 274/360/124 -f 268/356/124 267/358/124 266/354/124 -f 267/358/124 271/361/124 262/351/124 -f 266/354/124 267/358/124 263/355/124 -f 271/361/124 274/360/124 255/349/124 -f 258/348/124 259/352/124 271/361/124 -f 259/352/124 262/351/124 271/361/124 -f 271/361/124 255/349/124 258/348/124 -f 272/359/124 270/357/124 261/1574/124 -f 270/357/124 269/1576/124 265/1575/124 -f 265/1575/124 264/353/124 270/357/124 -f 264/353/124 261/1574/124 270/357/124 -f 256/347/124 273/1577/124 272/359/124 -f 261/1574/124 260/350/124 272/359/124 -f 260/350/124 257/362/124 272/359/124 -f 263/363/127 275/367/127 276/364/127 -f 262/366/132 277/379/132 275/367/132 -f 257/369/130 278/398/130 279/370/130 -f 258/372/132 279/370/132 280/373/132 -f 282/375/124 283/389/124 284/376/124 -f 285/378/124 276/364/124 275/367/124 -f 279/370/124 278/398/124 286/380/124 -f 288/381/124 289/409/124 290/382/124 -f 266/384/132 282/375/132 281/377/132 -f 265/386/130 283/389/130 282/375/130 -f 269/388/133 284/376/133 283/389/133 -f 259/391/127 280/373/127 286/380/127 -f 264/393/133 276/364/133 285/378/133 -f 261/395/130 285/378/130 277/379/130 -f 260/397/133 286/380/133 278/398/133 -f 268/400/127 281/377/127 284/376/127 -f 256/402/133 289/409/133 288/381/133 -f 273/404/130 288/381/130 287/383/130 -f 274/406/132 287/383/132 290/382/132 -f 255/408/127 290/382/127 289/409/127 -f 235/327/133 291/413/133 292/411/133 -f 251/343/133 293/1578/133 294/414/133 -f 240/416/134 292/1579/134 246/340/134 -f 293/417/134 251/1580/134 252/418/134 -f 295/419/130 252/418/130 228/344/130 -f 298/421/135 299/425/135 300/422/135 -f 238/424/135 247/1581/135 299/425/135 -f 300/422/135 296/1582/135 228/426/135 -f 301/427/137 302/440/137 303/428/137 -f 306/430/136 307/441/136 308/431/136 -f 309/433/137 310/436/137 311/434/137 -f 310/436/136 313/442/136 314/437/136 -f 315/438/136 301/427/136 304/429/136 -f 302/440/136 305/432/136 308/431/136 -f 309/433/136 312/435/136 307/441/136 -f 313/442/137 315/1583/137 316/443/137 -f 324/444/136 317/1584/136 318/445/136 -f 318/445/136 319/1585/136 320/446/136 -f 320/446/136 321/1586/136 324/444/136 -f 321/1586/137 322/1587/137 324/444/137 -f 322/1587/136 323/1588/136 324/444/136 -f 326/447/137 327/451/137 328/448/137 -f 326/447/136 329/453/136 330/450/136 -f 331/452/136 332/1589/136 330/450/136 -f 333/454/137 334/458/137 332/455/137 -f 335/457/136 336/460/136 334/458/136 -f 335/457/136 337/461/136 338/459/136 -f 337/461/137 339/463/137 340/462/137 -f 339/463/136 325/449/136 328/448/136 -f 342/464/138 343/468/138 344/465/138 -f 345/467/273 346/1590/273 344/465/273 -f 347/469/140 345/1591/140 343/468/140 -f 347/470/141 342/464/141 341/466/141 -f 348/472/142 341/466/142 344/465/142 -f 350/474/132 351/1592/132 352/475/132 -f 360/479/132 353/1593/132 354/1594/132 -f 354/1594/132 355/1595/132 360/479/132 -f 355/1595/132 356/1596/132 360/479/132 -f 356/1596/132 357/1597/132 360/479/132 -f 357/1597/132 358/477/132 360/479/132 -f 349/476/132 352/1598/132 362/480/132 -f 363/482/132 361/481/132 362/483/132 -f 363/482/132 364/1599/132 366/485/132 -f 365/487/132 366/1600/132 368/488/132 -f 367/489/132 368/1601/132 370/490/132 -f 371/492/132 369/491/132 370/493/132 -f 371/492/132 372/1602/132 351/495/132 -f 373/496/132 374/1603/132 375/497/132 -f 377/499/132 378/1604/132 374/500/132 -f 380/502/132 378/1605/132 377/503/132 -f 382/505/132 380/1606/132 379/506/132 -f 384/508/132 382/1607/132 381/509/132 -f 385/511/132 386/1608/132 384/512/132 -f 387/514/132 388/1609/132 386/515/132 -f 376/517/132 375/1610/132 388/518/132 -f 668/520/133 669/878/133 1759/521/133 -f 1756/523/143 1768/1611/143 1767/524/143 -f 393/530/132 236/529/132 392/528/132 -f 236/529/132 239/526/132 392/528/132 -f 395/533/132 237/532/132 394/531/132 -f 237/532/132 236/529/132 394/531/132 -f 397/536/132 242/535/132 396/534/132 -f 242/535/132 237/532/132 396/534/132 -f 399/539/132 231/538/132 398/537/132 -f 231/538/132 242/535/132 398/537/132 -f 401/1026/132 227/1496/132 400/540/132 -f 227/1496/132 231/538/132 400/540/132 -f 1758/541/130 1770/1612/130 1769/542/130 -f 409/1613/124 402/1614/124 403/544/124 -f 403/544/124 404/1615/124 405/545/124 -f 405/545/124 406/1616/124 407/546/124 -f 407/546/124 408/1617/124 409/1613/124 -f 409/1613/124 403/544/124 407/546/124 -f 272/359/132 410/1618/132 411/547/132 -f 271/361/127 412/1619/127 410/548/127 -f 267/358/133 413/1620/133 412/549/133 -f 270/357/130 411/1621/130 413/550/130 -f 421/553/126 414/1622/126 415/1623/126 -f 415/1623/126 416/1624/126 417/551/126 -f 417/551/126 418/1625/126 419/552/126 -f 419/552/126 420/1626/126 421/553/126 -f 421/553/126 415/1623/126 417/551/126 -f 421/554/144 420/563/144 404/555/144 -f 419/557/145 418/564/145 406/558/145 -f 415/560/146 414/568/146 402/561/146 -f 420/563/147 419/557/147 405/559/147 -f 418/564/148 417/1627/148 407/565/148 -f 416/566/149 415/560/149 409/562/149 -f 414/568/150 421/554/150 403/556/150 -f 423/569/132 424/577/132 425/570/132 -f 427/572/133 428/576/133 429/573/133 -f 423/575/125 429/581/125 428/576/125 -f 425/570/143 427/572/143 426/578/143 -f 424/577/151 428/576/151 427/572/151 -f 422/580/128 426/1628/128 429/581/128 -f 431/582/132 432/590/132 433/583/132 -f 435/585/133 436/589/133 437/586/133 -f 431/588/143 437/1629/143 436/589/143 -f 433/583/125 435/585/125 434/591/125 -f 432/590/128 436/589/128 435/585/128 -f 430/592/151 434/591/151 437/593/151 -f 438/595/132 439/1630/132 440/596/132 -f 442/598/133 443/604/133 444/599/133 -f 439/601/128 445/606/128 444/599/128 -f 441/597/151 443/604/151 442/602/151 -f 440/596/125 444/599/125 443/604/125 -f 438/605/143 442/1631/143 445/606/143 -f 446/607/132 447/1632/132 448/608/132 -f 450/610/133 451/616/133 452/611/133 -f 447/613/151 453/1633/151 452/611/151 -f 449/609/128 451/616/128 450/614/128 -f 448/608/143 452/611/143 451/616/143 -f 446/615/125 450/614/125 453/617/125 -f 455/619/132 456/627/132 457/620/132 -f 459/622/152 460/1634/152 461/623/152 -f 455/625/125 461/630/125 460/626/125 -f 457/620/143 459/622/143 458/624/143 -f 456/627/151 460/626/151 459/622/151 -f 455/625/128 454/1635/128 458/629/128 -f 300/631/125 462/637/125 463/632/125 -f 299/634/128 247/1636/128 464/635/128 -f 299/634/127 465/636/127 462/637/127 -f 465/636/135 464/1637/135 463/638/135 -f 467/639/126 468/1638/126 469/640/126 -f 470/642/124 471/646/124 472/643/124 -f 475/645/153 469/640/153 468/1638/153 -f 468/1638/153 471/646/153 475/645/153 -f 471/646/153 470/642/153 474/647/153 -f 474/647/154 476/650/154 477/648/154 -f 470/649/155 473/1639/155 476/650/155 -f 469/651/156 475/645/156 477/648/156 -f 245/653/127 244/1640/127 950/654/127 -f 479/655/157 480/661/157 481/656/157 -f 485/660/126 482/1641/126 483/658/126 -f 483/658/126 484/1642/126 480/659/126 -f 480/659/126 479/1643/126 485/660/126 -f 480/661/146 484/663/146 486/662/146 -f 484/663/158 483/1644/158 487/664/158 -f 486/667/124 487/1645/124 478/665/124 -f 487/1645/124 488/1646/124 478/665/124 -f 488/1646/124 489/1647/124 478/665/124 -f 491/668/127 492/672/127 493/669/127 -f 491/668/126 494/1648/126 495/671/126 -f 493/669/124 496/1649/124 497/673/124 -f 499/674/133 500/678/133 501/675/133 -f 503/677/126 501/675/126 500/678/126 -f 505/680/124 499/674/124 498/676/124 -f 502/682/130 500/678/130 499/674/130 -f 504/684/127 498/676/127 501/675/127 -f 507/686/133 508/690/133 509/687/133 -f 511/689/127 509/687/127 508/690/127 -f 513/692/130 507/686/130 506/688/130 -f 510/694/126 508/690/126 507/686/126 -f 512/696/124 506/688/124 509/687/124 -f 515/698/127 516/707/127 517/699/127 -f 519/701/159 520/708/159 521/702/159 -f 523/704/160 524/710/160 525/705/160 -f 516/707/161 523/704/161 522/706/161 -f 520/708/162 515/1650/162 514/709/162 -f 524/710/130 519/701/130 518/703/130 -f 522/713/126 525/1651/126 514/711/126 -f 525/1651/126 518/1652/126 514/711/126 -f 518/1652/126 521/1653/126 514/711/126 -f 527/714/130 528/740/130 529/715/130 -f 531/717/127 532/732/127 533/718/127 -f 534/720/159 535/1654/159 528/721/159 -f 526/723/160 529/736/160 537/724/160 -f 536/726/161 537/1655/161 532/727/161 -f 530/729/162 533/739/162 535/730/162 -f 532/732/124 538/738/124 539/733/124 -f 528/721/124 535/1654/124 540/734/124 -f 529/736/124 542/741/124 543/737/124 -f 532/727/124 537/1655/124 543/737/124 -f 533/739/124 539/743/124 540/734/124 -f 528/740/124 541/735/124 542/741/124 -f 543/737/161 544/748/161 545/742/161 -f 539/743/162 546/1656/162 547/744/162 -f 541/735/130 548/747/130 549/745/130 -f 538/738/127 545/742/127 546/746/127 -f 540/734/159 547/744/159 548/747/159 -f 542/741/160 549/745/160 544/748/160 -f 547/744/126 550/762/126 551/749/126 -f 548/747/126 551/758/126 552/750/126 -f 544/748/126 549/745/126 552/751/126 -f 544/748/126 553/765/126 554/753/126 -f 545/742/126 554/760/126 555/754/126 -f 547/744/126 546/1656/126 555/755/126 -f 555/755/162 556/1657/162 557/757/162 -f 551/758/130 558/769/130 559/759/130 -f 554/760/127 560/774/127 556/761/127 -f 550/762/159 557/767/159 558/763/159 -f 552/751/160 559/1658/160 561/764/160 -f 553/765/161 561/772/161 560/766/161 -f 557/767/124 562/777/124 563/768/124 -f 558/769/124 563/768/124 564/770/124 -f 561/764/124 559/1658/124 564/770/124 -f 561/772/124 565/771/124 566/773/124 -f 560/774/124 566/773/124 567/775/124 -f 557/757/124 556/1657/124 567/776/124 -f 563/768/130 568/780/130 569/778/130 -f 566/773/127 570/782/127 571/779/127 -f 562/777/159 572/783/159 568/780/159 -f 564/770/160 569/778/160 573/781/160 -f 565/771/161 573/781/161 570/782/161 -f 567/776/162 571/1659/162 572/783/162 -f 569/778/163 574/1660/163 575/784/163 -f 573/781/164 575/1661/164 576/785/164 -f 572/783/165 571/1659/165 577/786/165 -f 568/780/166 579/1662/166 574/788/166 -f 570/782/167 576/1663/167 577/789/167 -f 568/780/168 572/783/168 578/790/168 -f 575/794/126 574/1664/126 577/792/126 -f 574/1664/126 579/1665/126 577/792/126 -f 579/1665/126 578/1666/126 577/792/126 -f 581/795/130 582/801/130 583/796/130 -f 588/800/124 584/814/124 585/798/124 -f 585/798/124 586/1667/124 587/799/124 -f 582/801/133 589/1668/133 590/802/133 -f 581/795/126 591/1669/126 589/803/126 -f 583/796/124 590/1670/124 592/804/124 -f 594/805/169 595/813/169 596/806/169 -f 593/808/124 596/1671/124 598/809/124 -f 597/810/129 598/809/129 600/811/129 -f 594/805/126 599/812/126 600/811/126 -f 584/814/170 601/819/170 602/815/170 -f 587/816/133 603/821/133 604/817/133 -f 605/823/126 602/815/126 603/821/126 -f 602/815/126 601/819/126 603/821/126 -f 602/815/169 605/1672/169 586/822/169 -f 605/823/171 603/821/171 587/816/171 -f 584/814/129 588/1673/129 604/825/129 -f 607/826/169 608/1674/169 609/827/169 -f 610/829/126 611/834/126 608/830/126 -f 613/832/124 606/828/124 609/827/124 -f 612/833/171 609/827/171 608/830/171 -f 610/829/170 607/831/170 606/835/170 -f 615/837/124 623/1675/124 624/838/124 -f 626/840/172 627/1676/172 616/841/172 -f 623/843/173 632/1677/173 633/844/173 -f 390/845/130 1690/1477/130 1689/846/130 -f 646/847/143 647/1678/143 648/848/143 -f 1759/850/151 1771/1679/151 1772/851/151 -f 297/423/143 228/344/143 652/853/143 -f 228/344/143 227/1490/143 646/847/143 -f 227/1490/143 651/1489/143 647/1678/143 -f 647/1678/143 646/847/143 227/1490/143 -f 650/1479/143 390/845/143 648/848/143 -f 390/845/143 297/423/143 648/848/143 -f 297/423/143 653/854/143 649/849/143 -f 1755/855/128 1767/1680/128 1761/856/128 -f 656/858/151 654/1481/151 239/859/151 -f 238/860/151 298/421/151 657/861/151 -f 389/862/151 655/1474/151 657/861/151 -f 656/863/174 657/887/174 658/864/174 -f 646/866/151 660/1681/151 661/867/151 -f 647/869/175 662/1682/175 663/870/175 -f 661/867/143 660/1681/143 665/872/143 -f 666/874/133 667/1683/133 1756/875/133 -f 659/877/151 658/864/151 669/878/151 -f 649/879/176 665/872/176 660/880/176 -f 647/884/151 651/1684/151 1756/882/151 -f 1756/882/151 667/1683/151 662/883/151 -f 653/885/177 652/1685/177 661/886/177 -f 653/885/128 664/873/128 665/872/128 -f 1759/889/125 669/878/125 658/864/125 -f 658/864/125 657/887/125 1759/889/125 -f 656/892/143 659/877/143 1760/890/143 -f 659/877/143 668/520/143 1760/890/143 -f 670/893/124 671/1686/124 672/894/124 -f 674/896/178 675/906/178 672/897/178 -f 677/899/126 678/942/126 679/900/126 -f 670/893/179 673/895/179 681/902/179 -f 679/900/126 678/942/126 682/904/126 -f 675/906/180 684/948/180 685/907/180 -f 687/911/171 670/893/171 680/903/171 -f 689/917/171 690/949/171 677/899/171 -f 693/920/133 687/911/133 686/910/133 -f 695/922/132 674/909/132 671/923/132 -f 697/925/126 688/916/126 676/915/126 -f 699/927/124 691/918/124 689/917/124 -f 694/929/124 671/912/124 687/911/124 -f 698/928/133 689/917/133 688/916/133 -f 696/926/132 676/915/132 691/930/132 -f 692/921/126 686/910/126 674/909/126 -f 676/901/178 679/900/178 700/932/178 -f 680/903/126 681/902/126 675/906/126 -f 702/934/130 703/954/130 704/935/130 -f 662/883/143 667/1683/143 666/874/143 -f 650/1687/128 648/871/128 1755/937/128 -f 648/871/128 663/870/128 1755/937/128 -f 1757/938/124 1769/1688/124 1765/939/124 -f 705/941/181 706/944/181 682/904/181 -f 700/943/124 707/1689/124 706/944/124 -f 672/894/124 685/1690/124 708/945/124 -f 679/900/180 683/905/180 707/946/180 -f 675/906/126 681/902/126 709/947/126 -f 673/895/181 708/945/181 709/947/181 -f 690/949/124 691/1691/124 700/943/124 -f 690/949/179 705/941/179 678/942/179 -f 711/950/161 712/955/161 713/951/161 -f 714/953/132 715/958/132 703/954/132 -f 712/955/127 716/1692/127 717/956/127 -f 718/957/127 719/963/127 715/958/127 -f 716/959/162 720/964/162 721/960/162 -f 701/962/133 704/1693/133 719/963/133 -f 720/964/159 722/969/159 723/965/159 -f 716/968/126 712/1694/126 711/1695/126 -f 711/1695/126 724/1696/126 716/968/126 -f 724/1696/126 722/966/126 716/968/126 -f 722/969/130 724/971/130 725/970/130 -f 724/971/160 711/950/160 710/952/160 -f 725/973/124 710/1697/124 713/974/124 -f 713/974/124 717/1698/124 721/1699/124 -f 721/1699/124 723/972/124 713/974/124 -f 719/963/125 726/979/125 727/975/125 -f 704/978/133 728/1700/133 729/981/133 -f 728/982/127 730/1002/127 731/983/127 -f 726/979/126 729/981/126 732/985/126 -f 727/975/132 732/985/132 733/986/132 -f 703/977/124 733/986/124 728/987/124 -f 734/989/169 735/992/169 733/986/169 -f 737/994/179 738/1004/179 739/995/179 -f 729/984/126 731/983/126 737/994/126 -f 734/989/130 737/994/130 736/996/130 -f 735/992/124 736/996/124 730/997/124 -f 730/997/124 736/996/124 739/995/124 -f 730/1002/178 742/1701/178 740/1003/178 -f 731/983/126 740/1003/126 738/1004/126 -f 741/999/171 743/1005/171 739/995/171 -f 743/1005/124 744/1015/124 745/1006/124 -f 745/1009/132 747/1702/132 748/1010/132 -f 742/1012/132 745/1703/132 749/1013/132 -f 740/998/126 749/1013/126 750/1014/126 -f 741/999/133 750/1014/133 744/1015/133 -f 746/1011/125 751/1017/125 750/1014/125 -f 744/1018/130 752/1022/130 747/1020/130 -f 751/1017/133 753/1023/133 752/1022/133 -f 746/1011/127 748/1010/127 753/1023/127 -f 391/527/132 1772/1497/132 1771/1024/132 -f 401/1026/132 1785/1032/132 1767/1027/132 -f 1765/1704/132 1769/1705/132 389/1030/132 -f 1769/1705/132 1786/1025/132 1771/1024/132 -f 389/1030/132 1769/1705/132 1771/1024/132 -f 1786/1025/132 1769/1705/132 1770/1031/132 -f 592/1033/127 590/1706/127 589/1034/127 -f 951/1036/183 952/1049/183 953/1037/183 -f 956/1039/182 957/1050/182 958/1040/182 -f 959/1042/182 960/1045/182 961/1043/182 -f 960/1045/182 963/1051/182 964/1046/182 -f 965/1047/182 951/1036/182 954/1038/182 -f 952/1049/182 955/1041/182 958/1040/182 -f 956/1039/182 959/1042/182 962/1044/182 -f 963/1051/183 965/1707/183 966/1052/183 -f 974/1053/182 967/1708/182 968/1054/182 -f 968/1054/183 969/1709/183 970/1055/183 -f 970/1055/183 971/1710/183 972/1711/183 -f 972/1711/182 973/1712/182 970/1055/182 -f 973/1712/182 974/1053/182 970/1055/182 -f 976/1056/183 977/1060/183 978/1057/183 -f 976/1056/182 979/1062/182 980/1059/182 -f 981/1061/182 982/1713/182 980/1059/182 -f 983/1063/183 984/1067/183 982/1064/183 -f 983/1063/182 985/1068/182 986/1066/182 -f 985/1068/183 987/1070/183 988/1069/183 -f 987/1070/183 989/1072/183 990/1071/183 -f 989/1072/182 975/1058/182 978/1057/182 -f 1039/1073/184 1040/1086/184 1041/1074/184 -f 1044/1076/184 1045/1087/184 1046/1077/184 -f 1047/1079/185 1048/1082/185 1049/1080/185 -f 1048/1082/184 1051/1088/184 1052/1083/184 -f 1053/1084/184 1039/1073/184 1042/1075/184 -f 1040/1086/184 1043/1078/184 1046/1077/184 -f 1047/1079/184 1050/1081/184 1045/1087/184 -f 1051/1088/185 1053/1714/185 1054/1089/185 -f 1062/1090/184 1055/1715/184 1056/1091/184 -f 1056/1091/185 1057/1716/185 1058/1092/185 -f 1058/1092/184 1059/1717/184 1062/1090/184 -f 1059/1717/185 1060/1718/185 1062/1090/185 -f 1060/1718/184 1061/1719/184 1062/1090/184 -f 1064/1093/185 1065/1097/185 1066/1094/185 -f 1064/1093/184 1067/1099/184 1068/1096/184 -f 1069/1098/184 1070/1720/184 1068/1096/184 -f 1071/1100/185 1072/1104/185 1070/1101/185 -f 1073/1103/184 1074/1106/184 1072/1104/184 -f 1073/1103/184 1075/1107/184 1076/1105/184 -f 1075/1107/185 1077/1109/185 1078/1108/185 -f 1077/1109/184 1063/1095/184 1066/1094/184 -f 1127/1110/187 1128/1123/187 1129/1111/187 -f 1132/1113/186 1133/1124/186 1134/1114/186 -f 1135/1116/187 1136/1119/187 1137/1117/187 -f 1136/1119/186 1139/1125/186 1140/1120/186 -f 1141/1121/186 1127/1110/186 1130/1112/186 -f 1128/1123/186 1131/1115/186 1134/1114/186 -f 1135/1116/186 1138/1118/186 1133/1124/186 -f 1139/1125/187 1141/1721/187 1142/1126/187 -f 1150/1127/186 1143/1722/186 1144/1128/186 -f 1144/1128/187 1145/1723/187 1146/1129/187 -f 1146/1129/186 1147/1724/186 1150/1127/186 -f 1147/1724/187 1148/1725/187 1150/1127/187 -f 1148/1725/186 1149/1726/186 1150/1127/186 -f 1152/1130/187 1153/1134/187 1154/1131/187 -f 1152/1130/186 1155/1136/186 1156/1133/186 -f 1157/1135/186 1158/1727/186 1156/1133/186 -f 1159/1137/187 1160/1141/187 1158/1138/187 -f 1161/1140/186 1162/1143/186 1160/1141/186 -f 1161/1140/187 1163/1144/187 1164/1142/187 -f 1163/1144/187 1165/1146/187 1166/1145/187 -f 1165/1146/186 1151/1132/186 1154/1131/186 -f 1215/1147/189 1216/1160/189 1217/1148/189 -f 1220/1150/189 1221/1161/189 1222/1151/189 -f 1223/1153/189 1224/1156/189 1225/1154/189 -f 1224/1156/189 1227/1162/189 1228/1157/189 -f 1229/1158/189 1215/1147/189 1218/1149/189 -f 1216/1160/189 1219/1152/189 1222/1151/189 -f 1223/1153/189 1226/1155/189 1221/1161/189 -f 1227/1162/188 1229/1728/188 1230/1163/188 -f 1238/1164/188 1231/1729/188 1232/1165/188 -f 1232/1165/188 1233/1730/188 1234/1166/188 -f 1234/1166/189 1235/1731/189 1238/1164/189 -f 1235/1731/188 1236/1732/188 1238/1164/188 -f 1236/1732/189 1237/1733/189 1238/1164/189 -f 1240/1167/188 1241/1171/188 1242/1168/188 -f 1240/1167/188 1243/1173/188 1244/1170/188 -f 1245/1172/189 1246/1734/189 1244/1170/189 -f 1247/1174/188 1248/1178/188 1246/1175/188 -f 1249/1177/189 1250/1180/189 1248/1178/189 -f 1249/1177/189 1251/1181/189 1252/1179/189 -f 1251/1181/188 1253/1183/188 1254/1182/188 -f 1253/1183/189 1239/1169/189 1242/1168/189 -f 1303/1184/191 1304/1197/191 1305/1185/191 -f 1308/1187/191 1309/1198/191 1310/1188/191 -f 1311/1190/191 1312/1193/191 1313/1191/191 -f 1312/1193/191 1315/1199/191 1316/1194/191 -f 1317/1195/191 1303/1184/191 1306/1186/191 -f 1304/1197/191 1307/1189/191 1310/1188/191 -f 1311/1190/191 1314/1192/191 1309/1198/191 -f 1315/1199/190 1317/1735/190 1318/1200/190 -f 1326/1201/190 1319/1736/190 1320/1202/190 -f 1320/1202/190 1321/1737/190 1322/1203/190 -f 1322/1203/191 1323/1738/191 1326/1201/191 -f 1323/1738/190 1324/1739/190 1326/1201/190 -f 1324/1739/191 1325/1740/191 1326/1201/191 -f 1328/1204/190 1329/1208/190 1330/1205/190 -f 1328/1204/190 1331/1210/190 1332/1207/190 -f 1333/1209/191 1334/1741/191 1332/1207/191 -f 1335/1211/190 1336/1215/190 1334/1212/190 -f 1337/1214/191 1338/1217/191 1336/1215/191 -f 1337/1214/191 1339/1218/191 1340/1216/191 -f 1339/1218/190 1341/1220/190 1342/1219/190 -f 1341/1220/191 1327/1206/191 1330/1205/191 -f 1391/1221/193 1392/1234/193 1393/1222/193 -f 1396/1224/193 1397/1235/193 1398/1225/193 -f 1399/1227/193 1400/1230/193 1401/1228/193 -f 1400/1230/193 1403/1236/193 1404/1231/193 -f 1405/1232/193 1391/1221/193 1394/1223/193 -f 1392/1234/193 1395/1226/193 1398/1225/193 -f 1396/1224/193 1399/1227/193 1402/1229/193 -f 1403/1236/192 1405/1742/192 1406/1237/192 -f 1414/1238/192 1407/1743/192 1408/1239/192 -f 1408/1239/192 1409/1744/192 1410/1240/192 -f 1410/1240/193 1411/1745/193 1412/1746/193 -f 1412/1746/192 1413/1747/192 1410/1240/192 -f 1413/1747/193 1414/1238/193 1410/1240/193 -f 1416/1241/192 1417/1245/192 1418/1242/192 -f 1416/1241/192 1419/1247/192 1420/1244/192 -f 1421/1246/193 1422/1748/193 1420/1244/193 -f 1423/1248/192 1424/1252/192 1422/1249/192 -f 1425/1251/193 1426/1254/193 1424/1252/193 -f 1425/1251/193 1427/1255/193 1428/1253/193 -f 1427/1255/192 1429/1257/192 1430/1256/192 -f 1429/1257/193 1415/1243/193 1418/1242/193 -f 1479/1258/195 1480/1271/195 1481/1259/195 -f 1484/1261/195 1485/1272/195 1486/1262/195 -f 1487/1264/195 1488/1268/195 1489/1265/195 -f 1491/1267/195 1492/1274/195 1489/1265/195 -f 1493/1269/195 1479/1258/195 1482/1260/195 -f 1480/1271/195 1483/1263/195 1486/1262/195 -f 1487/1264/195 1490/1266/195 1485/1272/195 -f 1491/1267/194 1493/1749/194 1494/1273/194 -f 1502/1275/194 1495/1750/194 1496/1276/194 -f 1496/1276/194 1497/1751/194 1498/1277/194 -f 1498/1277/195 1499/1752/195 1502/1275/195 -f 1499/1752/194 1500/1753/194 1502/1275/194 -f 1500/1753/195 1501/1754/195 1502/1275/195 -f 1504/1278/194 1505/1282/194 1506/1279/194 -f 1504/1278/194 1507/1284/194 1508/1281/194 -f 1509/1283/195 1510/1755/195 1508/1281/195 -f 1511/1285/194 1512/1289/194 1510/1286/194 -f 1513/1288/195 1514/1291/195 1512/1289/195 -f 1513/1288/195 1515/1292/195 1516/1290/195 -f 1515/1292/194 1517/1294/194 1518/1293/194 -f 1517/1294/195 1503/1280/195 1506/1279/195 -f 1567/1295/196 1568/1300/196 1569/1296/196 -f 1571/1298/274 1572/1756/274 1570/1297/274 -f 1573/1299/198 1571/1757/198 1569/1296/198 -f 1573/1301/199 1568/1300/199 1567/1295/199 -f 1574/1303/200 1567/1295/200 1570/1297/200 -f 1576/1305/201 1577/1309/201 1578/1306/201 -f 1579/1308/275 1580/1758/275 1578/1306/275 -f 1581/1310/203 1579/1759/203 1577/1309/203 -f 1581/1311/204 1576/1305/204 1575/1307/204 -f 1582/1313/205 1575/1307/205 1578/1306/205 -f 1583/1315/206 1584/1320/206 1585/1316/206 -f 1587/1318/276 1588/1760/276 1586/1317/276 -f 1589/1319/208 1587/1761/208 1585/1316/208 -f 1589/1321/209 1584/1320/209 1583/1315/209 -f 1590/1323/210 1583/1315/210 1586/1317/210 -f 1591/1325/211 1592/1330/211 1593/1326/211 -f 1595/1328/277 1596/1762/277 1594/1327/277 -f 1597/1329/213 1595/1763/213 1593/1326/213 -f 1597/1331/214 1592/1330/214 1591/1325/214 -f 1598/1333/215 1591/1325/215 1594/1327/215 -f 1599/1335/216 1600/1340/216 1601/1336/216 -f 1603/1338/278 1604/1764/278 1602/1337/278 -f 1605/1339/218 1603/1765/218 1601/1336/218 -f 1605/1341/219 1600/1340/219 1599/1335/219 -f 1606/1343/220 1599/1335/220 1602/1337/220 -f 1608/1345/221 1609/1349/221 1610/1346/221 -f 1611/1348/279 1612/1766/279 1610/1346/279 -f 1613/1350/223 1611/1767/223 1609/1349/223 -f 1613/1351/224 1608/1345/224 1607/1347/224 -f 1614/1353/225 1607/1347/225 1610/1346/225 -f 1615/1355/226 1616/1360/226 1617/1356/226 -f 1619/1358/280 1620/1768/280 1618/1357/280 -f 1621/1359/228 1619/1769/228 1617/1356/228 -f 1621/1361/229 1616/1360/229 1615/1355/229 -f 1622/1363/230 1615/1355/230 1618/1357/230 -f 1624/1365/231 1625/1369/231 1626/1366/231 -f 1627/1368/281 1628/1770/281 1626/1366/281 -f 1629/1370/233 1627/1771/233 1625/1369/233 -f 1629/1371/234 1624/1365/234 1623/1367/234 -f 1630/1373/235 1623/1367/235 1626/1366/235 -f 1631/1375/236 1632/1380/236 1633/1376/236 -f 1635/1378/282 1636/1772/282 1634/1377/282 -f 1637/1379/238 1635/1773/238 1633/1376/238 -f 1637/1381/239 1632/1380/239 1631/1375/239 -f 1638/1383/240 1631/1375/240 1634/1377/240 -f 1639/1385/241 1640/1390/241 1641/1386/241 -f 1643/1388/283 1644/1774/283 1642/1387/283 -f 1645/1389/243 1643/1775/243 1641/1386/243 -f 1645/1391/244 1640/1390/244 1639/1385/244 -f 1646/1393/245 1639/1385/245 1642/1387/245 -f 1647/1395/246 1648/1400/246 1649/1396/246 -f 1651/1398/284 1652/1776/284 1650/1397/284 -f 1653/1399/248 1651/1777/248 1649/1396/248 -f 1653/1401/249 1648/1400/249 1647/1395/249 -f 1654/1403/250 1647/1395/250 1650/1397/250 -f 1655/1405/251 1656/1410/251 1657/1406/251 -f 1659/1408/285 1660/1778/285 1658/1407/285 -f 1661/1409/253 1659/1779/253 1657/1406/253 -f 1661/1411/254 1656/1410/254 1655/1405/254 -f 1662/1413/255 1655/1405/255 1658/1407/255 -f 1663/1415/256 1664/1420/256 1665/1416/256 -f 1667/1418/286 1668/1780/286 1666/1417/286 -f 1669/1419/258 1667/1781/258 1665/1416/258 -f 1669/1421/259 1664/1420/259 1663/1415/259 -f 1670/1423/260 1663/1415/260 1666/1417/260 -f 1672/1425/261 1673/1429/261 1674/1426/261 -f 1675/1428/287 1676/1782/287 1674/1426/287 -f 1677/1430/263 1675/1783/263 1673/1429/263 -f 1677/1431/264 1672/1425/264 1671/1427/264 -f 1678/1433/265 1671/1427/265 1674/1426/265 -f 1679/1435/266 1680/1440/266 1681/1436/266 -f 1683/1438/288 1684/1784/288 1682/1437/288 -f 1685/1439/268 1683/1785/268 1681/1436/268 -f 1685/1441/269 1680/1440/269 1679/1435/269 -f 1686/1443/270 1679/1435/270 1682/1437/270 -f 1757/1447/124 1688/1786/124 1687/1787/124 -f 1687/1787/124 1691/1445/124 1757/1447/124 -f 297/423/130 1689/846/130 1687/1448/130 -f 389/862/130 298/421/130 1687/1448/130 -f 651/1450/151 1762/1788/151 1768/1451/151 -f 1691/1453/130 1693/1789/130 1694/1454/130 -f 1757/1456/133 1692/1790/133 1694/1457/133 -f 1689/1459/132 1693/1791/132 1691/1460/132 -f 1693/1464/126 1689/1792/126 1758/1462/126 -f 1689/1792/126 1690/1793/126 1758/1462/126 -f 1690/1465/126 1766/1794/126 1770/1466/126 -f 655/1468/125 1764/1795/125 1771/1469/125 -f 1760/1471/143 1772/1796/143 1763/1472/143 -f 1775/1483/151 1773/1797/151 1774/1484/151 -f 1778/1486/130 1780/1798/130 1779/1487/130 -f 1783/1492/143 1781/1799/143 1782/1493/143 -f 1785/1032/132 1770/1031/132 1767/1027/132 -f 1770/1031/132 1766/1800/132 390/1495/132 -f 390/1495/132 1761/1801/132 1767/1027/132 -f 1768/1028/132 1762/1802/132 227/1496/132 -f 239/526/132 1763/1803/132 1772/1497/132 -f 1788/1498/127 1789/1512/127 1790/1499/127 -f 1792/1501/130 1793/1510/130 1794/1502/130 -f 1796/1504/124 1797/1514/124 1798/1505/124 -f 1800/1507/126 1801/1511/126 1802/1508/126 -f 1799/1509/151 1802/1508/151 1793/1510/151 -f 1801/1511/125 1800/1507/125 1790/1499/125 -f 1787/1513/128 1798/1505/128 1797/1514/128 -f 1794/1502/143 1796/1504/143 1795/1506/143 -f 1805/1538/132 1800/1537/132 1804/1518/132 -f 1800/1537/132 1799/1516/132 1804/1518/132 -f 1803/1517/132 1799/1516/132 1807/1521/132 -f 1799/1516/132 1792/1519/132 1807/1521/132 -f 1806/1520/132 1792/1519/132 1809/1524/132 -f 1792/1519/132 1791/1522/132 1809/1524/132 -f 1808/1523/132 1791/1522/132 1811/1527/132 -f 1791/1522/132 1795/1525/132 1811/1527/132 -f 1810/1526/132 1795/1525/132 1813/1530/132 -f 1795/1525/132 1798/1528/132 1813/1530/132 -f 1812/1529/132 1798/1528/132 1815/1533/132 -f 1798/1528/132 1787/1531/132 1815/1533/132 -f 1814/1532/132 1787/1531/132 1817/1536/132 -f 1787/1531/132 1790/1534/132 1817/1536/132 -f 1816/1535/132 1790/1534/132 1818/1539/132 -f 1790/1534/132 1800/1537/132 1818/1539/132 -f 1834/1542/132 1819/1804/132 1820/1805/132 -f 1820/1805/132 1821/1806/132 1822/1807/132 -f 1822/1807/132 1823/1808/132 1824/1809/132 -f 1824/1809/132 1825/1810/132 1826/1540/132 -f 1826/1540/132 1827/1811/132 1828/1812/132 -f 1828/1812/132 1829/1813/132 1830/1541/132 -f 1830/1541/132 1831/1814/132 1832/1815/132 -f 1832/1815/132 1833/1816/132 1834/1542/132 -f 1834/1542/132 1820/1805/132 1826/1540/132 -f 1820/1805/132 1822/1807/132 1826/1540/132 -f 1822/1807/132 1824/1809/132 1826/1540/132 -f 1826/1540/132 1828/1812/132 1830/1541/132 -f 1830/1541/132 1832/1815/132 1834/1542/132 -f 1793/1545/133 1802/1548/133 1836/1543/133 -f 1802/1548/133 1835/1547/133 1836/1543/133 -f 1802/1548/133 1801/1551/133 1839/1546/133 -f 1801/1551/133 1838/1550/133 1839/1546/133 -f 1801/1551/133 1789/1554/133 1841/1549/133 -f 1789/1554/133 1840/1553/133 1841/1549/133 -f 1789/1554/133 1788/1557/133 1843/1552/133 -f 1788/1557/133 1842/1556/133 1843/1552/133 -f 1788/1557/133 1797/1560/133 1845/1555/133 -f 1797/1560/133 1844/1559/133 1845/1555/133 -f 1797/1560/133 1796/1563/133 1847/1558/133 -f 1796/1563/133 1846/1562/133 1847/1558/133 -f 1796/1563/133 1794/1566/133 1849/1561/133 -f 1794/1566/133 1848/1565/133 1849/1561/133 -f 1794/1566/133 1793/1545/133 1850/1564/133 -f 1793/1545/133 1837/1544/133 1850/1564/133 -s 1 -f 754/1817/289 756/1818/290 757/1819/291 -f 759/1820/149 761/1821/292 758/1822/293 -f 763/1823/294 765/1824/295 762/1825/296 -f 766/1826/297 764/1827/298 763/1823/294 -f 768/1828/147 757/1819/291 769/1829/299 -f 755/1830/300 761/1821/292 756/1818/290 -f 759/1820/149 765/1824/295 760/1831/301 -f 768/1832/147 767/1833/302 766/1826/297 -f 765/1824/295 770/1834/303 771/1835/304 -f 760/1831/301 773/1836/305 761/1821/292 -f 756/1818/290 775/1837/306 757/1819/291 -f 769/1838/299 777/1839/307 767/1833/302 -f 760/1831/301 771/1835/304 772/1840/308 -f 761/1821/292 774/1841/309 756/1818/290 -f 769/1829/299 775/1837/306 776/1842/144 -f 764/1827/298 777/1839/307 770/1834/303 -f 776/1842/144 778/1843/310 779/1844/133 -f 770/1834/303 780/1845/311 781/1846/312 -f 770/1834/303 782/1847/313 771/1835/304 -f 772/1840/308 784/1848/314 773/1836/305 -f 774/1841/309 778/1843/310 775/1837/306 -f 776/1849/144 780/1845/311 777/1839/307 -f 772/1840/308 782/1847/313 783/1850/132 -f 774/1841/309 784/1848/314 785/1851/315 -f 782/1847/313 787/1852/316 783/1850/132 -f 785/1851/315 788/1853/317 789/1854/318 -f 779/1844/133 790/1855/319 791/1856/320 -f 780/1845/311 793/1857/321 781/1846/312 -f 781/1846/312 786/1858/322 782/1847/313 -f 784/1848/314 787/1852/316 788/1853/317 -f 778/1843/310 789/1854/318 790/1855/319 -f 779/1859/133 792/1860/323 780/1845/311 -f 795/1861/324 310/436/325 794/1862/325 -f 797/1863/326 315/438/327 796/1864/327 -f 798/1865/328 305/432/329 302/440/328 -f 801/1866/330 306/430/331 800/1867/331 -f 795/1861/324 315/1583/327 313/442/324 -f 797/1863/326 302/440/328 301/427/326 -f 800/1867/331 305/432/329 799/1868/329 -f 794/1862/325 309/433/330 801/1866/330 -f 318/1869/329 327/451/328 330/450/329 -f 312/435/330 326/447/325 325/449/330 -f 318/1869/329 332/1589/331 319/1870/331 -f 314/437/324 326/447/325 311/434/325 -f 320/1871/330 332/455/331 334/458/330 -f 316/443/327 329/453/324 314/437/324 -f 320/1871/330 336/460/325 321/1872/325 -f 304/429/332 331/456/327 316/439/327 -f 307/441/331 325/449/330 339/463/331 -f 324/1873/326 327/451/328 317/1874/328 -f 307/441/331 337/461/329 308/431/329 -f 324/1873/326 340/462/327 328/448/326 -f 303/428/328 337/461/329 335/457/328 -f 322/1875/324 340/462/327 323/1876/327 -f 303/428/328 333/454/332 304/429/332 -f 322/1875/324 336/460/325 338/459/324 -f 803/1877/333 349/476/334 802/1878/334 -f 805/1879/325 363/482/335 804/1880/335 -f 807/1881/336 367/489/337 806/1882/337 -f 809/1883/328 371/492/338 808/1884/338 -f 802/1878/334 361/481/325 805/1879/325 -f 804/1880/335 365/486/336 807/1885/336 -f 806/1882/337 369/491/328 809/1883/328 -f 808/1884/338 350/474/333 803/1877/333 -f 351/1592/333 374/1603/334 352/475/334 -f 360/1886/336 387/519/335 353/1887/335 -f 359/1888/337 376/498/336 360/1889/336 -f 352/1598/334 378/1604/325 362/480/325 -f 358/1890/328 373/501/337 359/1891/337 -f 362/483/325 380/502/335 364/484/335 -f 357/1892/338 377/503/328 358/1893/328 -f 364/1599/335 382/505/336 366/485/336 -f 372/1602/338 375/1610/333 351/495/333 -f 353/1894/335 385/516/325 354/1895/325 -f 370/493/328 388/1609/338 372/494/338 -f 354/1896/325 383/513/334 355/1897/334 -f 368/1601/337 386/1608/328 370/490/328 -f 355/1898/334 381/509/333 356/1899/333 -f 366/1600/336 384/508/337 368/488/337 -f 356/1900/333 379/506/338 357/1901/338 -f 810/1902/339 619/1903/172 618/1904/339 -f 812/1905/124 622/1906/340 621/1907/124 -f 624/838/341 631/1908/342 625/839/341 -f 810/1902/339 617/1909/343 814/1910/343 -f 815/1911/344 621/1907/124 620/1912/344 -f 633/844/342 630/1913/345 631/1908/342 -f 816/1914/346 615/1915/347 614/1916/346 -f 627/1917/348 617/1909/343 616/1918/348 -f 815/1911/344 619/1903/172 811/1919/172 -f 632/1920/345 629/1921/126 630/1913/345 -f 816/1914/346 622/1906/340 813/1922/340 -f 626/840/349 629/1921/126 817/1923/126 -f 819/1924/342 639/1925/154 818/1926/154 -f 820/1927/124 637/1928/340 636/1929/124 -f 822/1930/350 644/1931/343 643/1932/350 -f 824/1933/339 634/1934/172 645/1935/339 -f 819/1924/342 641/1936/345 640/1937/342 -f 827/1938/346 637/1928/340 821/1939/340 -f 824/1940/339 644/1931/343 823/1941/343 -f 828/1942/344 634/1934/172 825/1943/172 -f 829/1944/126 641/1936/345 826/1945/345 -f 827/1938/346 639/1925/154 638/1946/346 -f 820/1927/124 635/1947/344 828/1942/344 -f 829/1944/126 643/1932/350 642/1948/126 -f 831/1949/351 833/1950/352 830/1951/353 -f 835/1952/354 837/1953/355 834/1954/356 -f 839/1955/357 841/1956/358 838/1957/359 -f 843/1958/360 845/1959/361 842/1960/362 -f 845/1959/361 839/1955/357 838/1957/359 -f 846/1961/363 843/1958/360 842/1960/362 -f 844/1962/364 849/1963/365 839/1955/357 -f 847/1964/366 851/1965/367 843/1958/360 -f 839/1955/357 852/1966/368 840/1967/369 -f 851/1965/367 844/1962/364 843/1958/360 -f 854/1968/357 856/1969/358 853/1970/359 -f 858/1971/360 860/1972/361 857/1973/362 -f 860/1972/361 854/1968/357 853/1970/359 -f 862/1974/366 857/1973/362 861/1975/363 -f 859/1976/364 864/1977/365 854/1968/357 -f 862/1974/366 866/1978/367 858/1971/360 -f 864/1977/365 855/1979/369 854/1968/357 -f 866/1978/367 859/1976/364 858/1971/360 -f 869/1980/357 871/1981/358 868/1982/359 -f 873/1983/370 875/1984/361 872/1985/362 -f 875/1984/361 869/1980/357 868/1982/359 -f 877/1986/366 872/1985/362 876/1987/363 -f 874/1988/364 879/1989/365 869/1980/357 -f 880/1990/371 873/1983/370 877/1986/366 -f 869/1980/357 882/1991/368 870/1992/369 -f 881/1993/367 874/1988/364 873/1983/370 -f 841/1956/358 884/1994/130 838/1957/359 -f 856/1969/358 886/1995/130 853/1970/359 -f 838/1957/359 887/1996/143 845/1959/361 -f 845/1959/361 888/1997/124 842/1960/362 -f 871/1981/358 890/1998/130 868/1982/359 -f 853/1970/359 891/1999/143 860/1972/361 -f 842/1960/362 892/2000/337 846/1961/363 -f 860/1972/361 893/2001/124 857/1973/362 -f 868/1982/359 894/2002/143 875/1984/361 -f 875/1984/361 895/2003/124 872/1985/362 -f 857/1973/362 896/2004/337 861/1975/363 -f 872/1985/362 897/2005/337 876/1987/363 -f 831/1949/351 837/1953/355 832/2006/372 -f 898/2007/373 833/1950/352 899/2008/374 -f 832/2006/372 900/2009/375 901/2010/376 -f 899/2008/374 902/2011/377 903/2012/378 -f 837/1953/355 904/2013/379 900/2009/375 -f 832/2006/372 902/2011/377 833/1950/352 -f 906/2014/354 908/2015/355 905/2016/356 -f 910/2017/351 912/2018/352 909/2019/353 -f 910/2017/351 908/2015/355 911/2020/372 -f 909/2019/353 914/2021/374 913/2022/373 -f 911/2020/372 915/2023/375 916/2024/376 -f 914/2021/374 917/2025/377 918/2026/378 -f 907/2027/380 915/2023/375 908/2015/355 -f 911/2020/372 917/2025/377 912/2018/352 -f 921/2028/354 923/2029/355 920/2030/356 -f 925/2031/351 927/2032/381 924/2033/353 -f 925/2031/351 923/2029/355 926/2034/372 -f 924/2033/353 929/2035/374 928/2036/373 -f 926/2034/372 930/2037/375 931/2038/376 -f 927/2032/381 933/2039/378 929/2035/374 -f 923/2029/355 934/2040/379 930/2037/375 -f 926/2034/372 932/2041/377 927/2032/381 -f 935/2042/130 835/1952/354 834/1954/356 -f 937/2043/130 906/2014/354 905/2016/356 -f 939/2044/151 834/1954/356 831/1949/351 -f 940/2045/126 831/1949/351 830/1951/353 -f 941/2046/130 921/2028/354 920/2030/356 -f 943/2047/151 905/2016/356 910/2017/351 -f 944/2048/325 830/1951/353 898/2007/373 -f 945/2049/126 910/2017/351 909/2019/353 -f 946/2050/151 920/2030/356 925/2031/351 -f 947/2051/126 925/2031/351 924/2033/353 -f 948/2052/325 909/2019/353 913/2022/373 -f 949/2053/325 924/2033/353 928/2036/373 -f 991/2054/382 993/2055/383 994/2056/384 -f 996/2057/145 998/2058/385 995/2059/386 -f 1000/2060/387 1002/2061/388 999/2062/389 -f 1003/2063/390 1001/2064/391 1000/2060/387 -f 1005/2065/146 994/2056/384 1006/2066/392 -f 995/2059/386 993/2055/383 992/2067/393 -f 996/2057/145 1002/2061/388 997/2068/394 -f 1005/2069/146 1004/2070/395 1003/2063/390 -f 1002/2061/388 1007/2071/396 1008/2072/397 -f 997/2068/394 1010/2073/398 998/2058/385 -f 993/2055/383 1012/2074/399 994/2056/384 -f 1006/2075/392 1014/2076/400 1004/2070/395 -f 997/2068/394 1008/2072/397 1009/2077/148 -f 998/2058/385 1011/2078/401 993/2055/383 -f 1006/2066/392 1012/2074/399 1013/2079/150 -f 1001/2064/391 1014/2076/400 1007/2071/396 -f 1013/2079/150 1015/2080/311 1016/2081/133 -f 1007/2071/396 1017/2082/310 1018/2083/315 -f 1007/2071/396 1019/2084/402 1008/2072/397 -f 1009/2077/148 1021/2085/403 1010/2073/398 -f 1011/2078/401 1015/2080/311 1012/2074/399 -f 1013/2086/150 1017/2082/310 1014/2076/400 -f 1009/2077/148 1019/2084/402 1020/2087/132 -f 1011/2078/401 1021/2085/403 1022/2088/312 -f 1019/2084/402 1024/2089/404 1020/2087/132 -f 1022/2088/312 1025/2090/405 1026/2091/406 -f 1016/2081/133 1027/2092/407 1028/2093/408 -f 1017/2082/310 1030/2094/409 1018/2083/315 -f 1018/2083/315 1023/2095/410 1019/2084/402 -f 1021/2085/403 1024/2089/404 1025/2090/405 -f 1015/2080/311 1026/2091/406 1027/2092/407 -f 1016/2096/133 1029/2097/411 1017/2082/310 -f 1032/2098/412 960/1045/328 1031/2099/328 -f 1034/2100/413 965/1047/414 1033/2101/414 -f 1035/2102/325 955/1041/415 952/1049/325 -f 1038/2103/416 956/1039/417 1037/2104/417 -f 1032/2098/412 965/1707/414 963/1051/412 -f 1034/2100/413 952/1049/325 951/1036/413 -f 1037/2104/417 955/1041/415 1036/2105/415 -f 1031/2099/328 959/1042/416 1038/2103/416 -f 968/2106/415 977/1060/325 980/1059/415 -f 962/1044/416 976/1056/328 975/1058/416 -f 968/2106/415 982/1713/417 969/2107/417 -f 964/1046/412 976/1056/328 961/1043/328 -f 970/2108/416 982/1064/417 984/1067/416 -f 966/1052/414 979/1062/412 964/1046/412 -f 970/2108/416 986/1066/328 971/2109/328 -f 954/1038/418 981/1065/414 966/1048/414 -f 957/1050/417 975/1058/416 989/1072/417 -f 974/2110/413 977/1060/325 967/2111/325 -f 957/1050/417 987/1070/415 958/1040/415 -f 974/2110/413 990/1071/414 978/1057/413 -f 953/1037/325 987/1070/415 985/1068/325 -f 972/2112/412 990/1071/414 973/2113/414 -f 953/1037/325 983/1063/418 954/1038/418 -f 972/2112/412 986/1066/328 988/1069/412 -f 1079/2114/419 1081/2115/420 1082/2116/421 -f 1084/2117/422 1086/2118/423 1083/2119/424 -f 1088/2120/425 1090/2121/426 1087/2122/427 -f 1091/2123/428 1089/2124/429 1088/2120/425 -f 1093/2125/430 1082/2116/421 1094/2126/431 -f 1083/2119/424 1081/2115/420 1080/2127/432 -f 1084/2117/422 1090/2121/426 1085/2128/433 -f 1093/2129/430 1092/2130/434 1091/2123/428 -f 1090/2121/426 1095/2131/435 1096/2132/436 -f 1085/2128/433 1098/2133/437 1086/2118/423 -f 1081/2115/420 1100/2134/438 1082/2116/421 -f 1094/2135/431 1102/2136/439 1092/2130/434 -f 1085/2128/433 1096/2132/436 1097/2137/440 -f 1086/2118/423 1099/2138/441 1081/2115/420 -f 1094/2126/431 1100/2134/438 1101/2139/442 -f 1089/2124/429 1102/2136/439 1095/2131/435 -f 1101/2139/442 1103/2140/443 1104/2141/133 -f 1095/2131/435 1105/2142/444 1106/2143/445 -f 1095/2131/435 1107/2144/446 1096/2132/436 -f 1097/2137/440 1109/2145/447 1098/2133/437 -f 1099/2138/441 1103/2140/443 1100/2134/438 -f 1101/2146/442 1105/2142/444 1102/2136/439 -f 1097/2137/440 1107/2144/446 1108/2147/132 -f 1099/2138/441 1109/2145/447 1110/2148/448 -f 1107/2144/446 1112/2149/449 1108/2147/132 -f 1110/2148/448 1113/2150/450 1114/2151/451 -f 1104/2141/133 1115/2152/452 1116/2153/453 -f 1105/2142/444 1118/2154/454 1106/2143/445 -f 1106/2143/445 1111/2155/455 1107/2144/446 -f 1109/2145/447 1112/2149/449 1113/2150/450 -f 1103/2140/443 1114/2151/451 1115/2152/452 -f 1104/2156/133 1117/2157/456 1105/2142/444 -f 1120/2158/457 1048/1082/336 1119/2159/336 -f 1122/2160/458 1053/1084/459 1121/2161/459 -f 1123/2162/333 1043/1078/460 1040/1086/333 -f 1126/2163/461 1044/1076/462 1125/2164/462 -f 1120/2158/457 1053/1714/459 1051/1088/457 -f 1122/2160/458 1040/1086/333 1039/1073/458 -f 1124/2165/460 1044/1076/462 1043/1078/460 -f 1119/2159/336 1047/1079/461 1126/2163/461 -f 1056/2166/460 1065/1097/333 1068/1096/460 -f 1050/1081/461 1064/1093/336 1063/1095/461 -f 1056/2166/460 1070/1720/462 1057/2167/462 -f 1052/1083/457 1064/1093/336 1049/1080/336 -f 1058/2168/461 1070/1101/462 1072/1104/461 -f 1054/1089/459 1067/1099/457 1052/1083/457 -f 1058/2168/461 1074/1106/336 1059/2169/336 -f 1042/1075/463 1069/1102/459 1054/1085/459 -f 1045/1087/462 1063/1095/461 1077/1109/462 -f 1062/2170/458 1065/1097/333 1055/2171/333 -f 1045/1087/462 1075/1107/460 1046/1077/460 -f 1062/2170/458 1078/1108/459 1066/1094/458 -f 1046/1077/460 1073/1103/333 1041/1074/333 -f 1060/2172/457 1078/1108/459 1061/2173/459 -f 1041/1074/333 1071/1100/463 1042/1075/463 -f 1060/2172/457 1074/1106/336 1076/1105/457 -f 1167/2174/464 1169/2175/465 1170/2176/466 -f 1172/2177/467 1174/2178/468 1171/2179/469 -f 1176/2180/470 1178/2181/471 1175/2182/472 -f 1179/2183/473 1177/2184/474 1176/2180/470 -f 1181/2185/475 1170/2176/466 1182/2186/476 -f 1168/2187/477 1174/2178/468 1169/2175/465 -f 1172/2177/467 1178/2181/471 1173/2188/478 -f 1181/2189/475 1180/2190/479 1179/2183/473 -f 1178/2181/471 1183/2191/480 1184/2192/481 -f 1173/2188/478 1186/2193/482 1174/2178/468 -f 1169/2175/465 1188/2194/483 1170/2176/466 -f 1182/2195/476 1190/2196/484 1180/2190/479 -f 1173/2188/478 1184/2192/481 1185/2197/485 -f 1174/2178/468 1187/2198/486 1169/2175/465 -f 1182/2186/476 1188/2194/483 1189/2199/487 -f 1177/2184/474 1190/2196/484 1183/2191/480 -f 1189/2199/487 1191/2200/444 1192/2201/133 -f 1183/2191/480 1193/2202/443 1194/2203/448 -f 1183/2191/480 1195/2204/488 1184/2192/481 -f 1185/2197/485 1197/2205/489 1186/2193/482 -f 1187/2198/486 1191/2200/444 1188/2194/483 -f 1189/2206/487 1193/2202/443 1190/2196/484 -f 1185/2197/485 1195/2204/488 1196/2207/132 -f 1187/2198/486 1197/2205/489 1198/2208/445 -f 1195/2204/488 1200/2209/490 1196/2207/132 -f 1198/2208/445 1201/2210/491 1202/2211/492 -f 1192/2201/133 1203/2212/493 1204/2213/494 -f 1193/2202/443 1206/2214/495 1194/2203/448 -f 1194/2203/448 1199/2215/496 1195/2204/488 -f 1197/2205/489 1200/2209/490 1201/2210/491 -f 1191/2200/444 1202/2211/492 1203/2212/493 -f 1192/2216/133 1205/2217/497 1193/2202/443 -f 1208/2218/498 1136/1119/333 1207/2219/333 -f 1210/2220/499 1141/1121/500 1209/2221/500 -f 1211/2222/336 1131/1115/501 1128/1123/336 -f 1213/2223/502 1135/1116/503 1132/1113/502 -f 1208/2218/498 1141/1721/500 1139/1125/498 -f 1210/2220/499 1128/1123/336 1127/1110/499 -f 1213/2223/502 1131/1115/501 1212/2224/501 -f 1207/2219/333 1135/1116/503 1214/2225/503 -f 1144/2226/501 1153/1134/336 1156/1133/501 -f 1138/1118/503 1152/1130/333 1151/1132/503 -f 1144/2226/501 1158/1727/502 1145/2227/502 -f 1140/1120/498 1152/1130/333 1137/1117/333 -f 1146/2228/503 1158/1138/502 1160/1141/503 -f 1142/1126/500 1155/1136/498 1140/1120/498 -f 1146/2228/503 1162/1143/333 1147/2229/333 -f 1130/1112/504 1157/1139/500 1142/1122/500 -f 1133/1124/502 1151/1132/503 1165/1146/502 -f 1150/2230/499 1153/1134/336 1143/2231/336 -f 1133/1124/502 1163/1144/505 1134/1114/501 -f 1150/2230/499 1166/1145/500 1154/1131/499 -f 1134/1114/501 1161/1140/336 1129/1111/336 -f 1148/2232/498 1166/1145/500 1149/2233/500 -f 1129/1111/336 1159/1137/504 1130/1112/504 -f 1148/2232/498 1162/1143/333 1164/1142/498 -f 1255/2234/506 1257/2235/507 1258/2236/508 -f 1260/2237/509 1262/2238/510 1259/2239/511 -f 1264/2240/512 1266/2241/513 1263/2242/514 -f 1267/2243/515 1265/2244/516 1264/2240/512 -f 1269/2245/517 1258/2236/508 1270/2246/518 -f 1256/2247/519 1262/2238/510 1257/2235/507 -f 1260/2237/509 1266/2241/513 1261/2248/520 -f 1269/2249/517 1268/2250/521 1267/2243/515 -f 1266/2241/513 1271/2251/522 1272/2252/523 -f 1261/2248/520 1274/2253/524 1262/2238/510 -f 1257/2235/507 1276/2254/525 1258/2236/508 -f 1270/2255/518 1278/2256/526 1268/2250/521 -f 1261/2248/520 1272/2252/523 1273/2257/376 -f 1262/2238/510 1275/2258/527 1257/2235/507 -f 1270/2246/518 1276/2254/525 1277/2259/528 -f 1265/2244/516 1278/2256/526 1271/2251/522 -f 1277/2259/528 1279/2260/529 1280/2261/133 -f 1271/2251/522 1281/2262/530 1282/2263/531 -f 1271/2251/522 1283/2264/532 1272/2252/523 -f 1273/2257/376 1285/2265/533 1274/2253/524 -f 1275/2258/527 1279/2260/529 1276/2254/525 -f 1277/2266/528 1281/2262/530 1278/2256/526 -f 1273/2257/376 1283/2264/532 1284/2267/132 -f 1275/2258/527 1285/2265/533 1286/2268/534 -f 1283/2264/532 1288/2269/535 1284/2267/132 -f 1286/2268/534 1289/2270/536 1290/2271/537 -f 1280/2261/133 1291/2272/538 1292/2273/539 -f 1281/2262/530 1294/2274/540 1282/2263/531 -f 1282/2263/531 1287/2275/541 1283/2264/532 -f 1285/2265/533 1288/2269/535 1289/2270/536 -f 1279/2260/529 1290/2271/537 1291/2272/538 -f 1280/2276/133 1293/2277/542 1281/2262/530 -f 1296/2278/543 1224/1156/335 1295/2279/335 -f 1298/2280/544 1229/1158/545 1297/2281/545 -f 1299/2282/338 1219/1152/546 1216/1160/338 -f 1302/2283/547 1220/1150/548 1301/2284/548 -f 1296/2278/543 1229/1728/545 1227/1162/543 -f 1298/2280/544 1216/1160/338 1215/1147/544 -f 1300/2285/546 1220/1150/548 1219/1152/546 -f 1295/2279/335 1223/1153/547 1302/2283/547 -f 1232/2286/546 1241/1171/338 1244/1170/546 -f 1226/1155/547 1240/1167/335 1239/1169/547 -f 1232/2286/546 1246/1734/548 1233/2287/548 -f 1228/1157/543 1240/1167/335 1225/1154/335 -f 1234/2288/547 1246/1175/548 1248/1178/547 -f 1230/1163/545 1243/1173/543 1228/1157/543 -f 1234/2288/547 1250/1180/335 1235/2289/335 -f 1218/1149/549 1245/1176/545 1230/1159/545 -f 1221/1161/548 1239/1169/547 1253/1183/548 -f 1238/2290/544 1241/1171/338 1231/2291/338 -f 1221/1161/548 1251/1181/546 1222/1151/546 -f 1238/2290/544 1254/1182/545 1242/1168/544 -f 1222/1151/546 1249/1177/338 1217/1148/338 -f 1236/2292/543 1254/1182/545 1237/2293/545 -f 1217/1148/338 1247/1174/549 1218/1149/549 -f 1236/2292/543 1250/1180/335 1252/1179/543 -f 1343/2294/550 1345/2295/551 1346/2296/552 -f 1348/2297/553 1350/2298/554 1347/2299/555 -f 1352/2300/556 1354/2301/557 1351/2302/558 -f 1355/2303/559 1353/2304/560 1352/2300/556 -f 1357/2305/561 1346/2296/552 1358/2306/562 -f 1344/2307/563 1350/2298/554 1345/2295/551 -f 1351/2302/558 1349/2308/564 1348/2297/553 -f 1357/2309/561 1356/2310/565 1355/2303/559 -f 1354/2301/557 1359/2311/566 1360/2312/567 -f 1349/2308/564 1362/2313/568 1350/2298/554 -f 1345/2295/551 1364/2314/569 1346/2296/552 -f 1358/2315/562 1366/2316/570 1356/2310/565 -f 1349/2308/564 1360/2312/567 1361/2317/571 -f 1350/2298/554 1363/2318/572 1345/2295/551 -f 1358/2306/562 1364/2314/569 1365/2319/573 -f 1353/2304/560 1366/2316/570 1359/2311/566 -f 1364/2314/569 1368/2320/133 1365/2319/573 -f 1359/2311/566 1369/2321/529 1370/2322/534 -f 1359/2311/566 1371/2323/533 1360/2312/567 -f 1361/2317/571 1373/2324/532 1362/2313/568 -f 1363/2318/572 1367/2325/530 1364/2314/569 -f 1365/2326/573 1369/2321/529 1366/2316/570 -f 1361/2317/571 1371/2323/533 1372/2327/132 -f 1363/2318/572 1373/2324/532 1374/2328/531 -f 1371/2323/533 1376/2329/574 1372/2327/132 -f 1374/2328/531 1377/2330/575 1378/2331/576 -f 1368/2320/133 1379/2332/577 1380/2333/578 -f 1369/2321/529 1382/2334/579 1370/2322/534 -f 1370/2322/534 1375/2335/580 1371/2323/533 -f 1373/2324/532 1376/2329/574 1377/2330/575 -f 1367/2325/530 1378/2331/576 1379/2332/577 -f 1368/2336/133 1381/2337/581 1369/2321/529 -f 1384/2338/582 1312/1193/338 1383/2339/338 -f 1386/2340/583 1317/1195/584 1385/2341/584 -f 1387/2342/335 1307/1189/585 1304/1197/335 -f 1390/2343/586 1308/1187/587 1389/2344/587 -f 1384/2338/582 1317/1735/584 1315/1199/582 -f 1386/2340/583 1304/1197/335 1303/1184/583 -f 1389/2344/587 1307/1189/585 1388/2345/585 -f 1383/2339/338 1311/1190/586 1390/2343/586 -f 1320/2346/585 1329/1208/335 1332/1207/585 -f 1314/1192/586 1328/1204/338 1327/1206/586 -f 1320/2346/585 1334/1741/587 1321/2347/587 -f 1313/1191/338 1331/1210/582 1328/1204/338 -f 1322/2348/586 1334/1212/587 1336/1215/586 -f 1318/1200/584 1331/1210/582 1316/1194/588 -f 1322/2348/586 1338/1217/338 1323/2349/338 -f 1306/1186/589 1333/1213/584 1318/1196/584 -f 1309/1198/587 1327/1206/586 1341/1220/587 -f 1326/2350/583 1329/1208/335 1319/2351/335 -f 1309/1198/587 1339/1218/590 1310/1188/585 -f 1326/2350/583 1342/1219/584 1330/1205/583 -f 1310/1188/585 1337/1214/335 1305/1185/335 -f 1324/2352/582 1342/1219/584 1325/2353/584 -f 1305/1185/335 1335/1211/589 1306/1186/589 -f 1324/2352/582 1338/1217/338 1340/1216/582 -f 1431/2354/591 1433/2355/592 1434/2356/593 -f 1436/2357/594 1438/2358/595 1435/2359/596 -f 1440/2360/597 1442/2361/598 1439/2362/599 -f 1443/2363/600 1441/2364/601 1440/2360/597 -f 1445/2365/602 1434/2356/593 1446/2366/603 -f 1435/2359/596 1433/2355/592 1432/2367/604 -f 1436/2357/594 1442/2361/598 1437/2368/605 -f 1445/2369/602 1444/2370/606 1443/2363/600 -f 1442/2361/598 1447/2371/607 1448/2372/608 -f 1437/2368/605 1450/2373/609 1438/2358/595 -f 1433/2355/592 1452/2374/610 1434/2356/593 -f 1446/2375/603 1454/2376/611 1444/2370/606 -f 1437/2368/605 1448/2372/608 1449/2377/612 -f 1438/2358/595 1451/2378/613 1433/2355/592 -f 1446/2366/603 1452/2374/610 1453/2379/614 -f 1441/2364/601 1454/2376/611 1447/2371/607 -f 1453/2379/614 1455/2380/615 1456/2381/133 -f 1447/2371/607 1457/2382/616 1458/2383/617 -f 1447/2371/607 1459/2384/618 1448/2372/608 -f 1449/2377/612 1461/2385/619 1450/2373/609 -f 1451/2378/613 1455/2380/615 1452/2374/610 -f 1453/2386/614 1457/2382/616 1454/2376/611 -f 1449/2377/612 1459/2384/618 1460/2387/132 -f 1451/2378/613 1461/2385/619 1462/2388/620 -f 1459/2384/618 1464/2389/621 1460/2387/132 -f 1462/2388/620 1465/2390/622 1466/2391/623 -f 1456/2381/133 1467/2392/624 1468/2393/625 -f 1457/2382/616 1470/2394/626 1458/2383/617 -f 1458/2383/617 1463/2395/627 1459/2384/618 -f 1461/2385/619 1464/2389/621 1465/2390/622 -f 1455/2380/615 1466/2391/623 1467/2392/624 -f 1456/2396/133 1469/2397/628 1457/2382/616 -f 1472/2398/629 1400/1230/337 1471/2399/337 -f 1474/2400/630 1405/1232/631 1473/2401/631 -f 1475/2402/334 1395/1226/632 1392/1234/334 -f 1478/2403/633 1396/1224/634 1477/2404/634 -f 1472/2398/629 1405/1742/631 1403/1236/629 -f 1474/2400/630 1392/1234/334 1391/1221/630 -f 1477/2404/634 1395/1226/632 1476/2405/632 -f 1471/2399/337 1399/1227/633 1478/2403/633 -f 1408/2406/632 1417/1245/334 1420/1244/632 -f 1402/1229/633 1416/1241/337 1415/1243/633 -f 1408/2406/632 1422/1748/634 1409/2407/634 -f 1404/1231/629 1416/1241/337 1401/1228/337 -f 1410/2408/633 1422/1249/634 1424/1252/633 -f 1406/1237/631 1419/1247/629 1404/1231/629 -f 1410/2408/633 1426/1254/337 1411/2409/337 -f 1394/1223/635 1421/1250/631 1406/1233/631 -f 1397/1235/634 1415/1243/633 1429/1257/634 -f 1414/2410/630 1417/1245/334 1407/2411/334 -f 1397/1235/634 1427/1255/632 1398/1225/632 -f 1414/2410/630 1430/1256/631 1418/1242/630 -f 1398/1225/632 1425/1251/334 1393/1222/334 -f 1412/2412/629 1430/1256/631 1413/2413/631 -f 1393/1222/334 1423/1248/635 1394/1223/635 -f 1412/2412/629 1426/1254/337 1428/1253/629 -f 1519/2414/636 1521/2415/637 1522/2416/638 -f 1524/2417/639 1526/2418/640 1523/2419/641 -f 1528/2420/642 1530/2421/643 1527/2422/644 -f 1531/2423/645 1529/2424/646 1528/2420/642 -f 1533/2425/647 1522/2416/638 1534/2426/648 -f 1520/2427/649 1526/2418/640 1521/2415/637 -f 1524/2417/639 1530/2421/643 1525/2428/650 -f 1533/2429/647 1532/2430/651 1531/2423/645 -f 1530/2421/643 1535/2431/652 1536/2432/653 -f 1525/2428/650 1538/2433/654 1526/2418/640 -f 1521/2415/637 1540/2434/655 1522/2416/638 -f 1534/2435/648 1542/2436/656 1532/2430/651 -f 1530/2421/643 1537/2437/657 1525/2428/650 -f 1526/2418/640 1539/2438/658 1521/2415/637 -f 1534/2426/648 1540/2434/655 1541/2439/659 -f 1529/2424/646 1542/2436/656 1535/2431/652 -f 1541/2439/659 1543/2440/616 1544/2441/133 -f 1535/2431/652 1545/2442/615 1546/2443/620 -f 1535/2431/652 1547/2444/619 1536/2432/653 -f 1537/2437/657 1549/2445/618 1538/2433/654 -f 1539/2438/658 1543/2440/616 1540/2434/655 -f 1541/2446/659 1545/2442/615 1542/2436/656 -f 1537/2437/657 1547/2444/619 1548/2447/132 -f 1539/2438/658 1549/2445/618 1550/2448/617 -f 1547/2444/619 1552/2449/660 1548/2447/132 -f 1550/2448/617 1553/2450/661 1554/2451/662 -f 1544/2441/133 1555/2452/663 1556/2453/664 -f 1545/2442/615 1558/2454/665 1546/2443/620 -f 1546/2443/620 1551/2455/666 1547/2444/619 -f 1549/2445/618 1552/2449/660 1553/2450/661 -f 1543/2440/616 1554/2451/662 1555/2452/663 -f 1544/2456/133 1557/2457/667 1545/2442/615 -f 1560/2458/668 1488/1268/334 1559/2459/334 -f 1562/2460/669 1493/1269/670 1561/2461/670 -f 1563/2462/337 1483/1263/671 1480/1271/337 -f 1565/2463/672 1487/1264/673 1484/1261/672 -f 1560/2458/668 1493/1749/670 1491/1267/668 -f 1562/2460/669 1480/1271/337 1479/1258/669 -f 1564/2464/671 1484/1261/672 1483/1263/671 -f 1559/2459/334 1487/1264/673 1566/2465/673 -f 1496/2466/671 1505/1282/337 1508/1281/671 -f 1490/1266/673 1504/1278/334 1503/1280/673 -f 1496/2466/671 1510/1755/672 1497/2467/672 -f 1489/1265/334 1507/1284/668 1504/1278/334 -f 1498/2468/673 1510/1286/672 1512/1289/673 -f 1494/1273/670 1507/1284/668 1492/1274/674 -f 1498/2468/673 1514/1291/334 1499/2469/334 -f 1482/1260/675 1509/1287/670 1494/1270/670 -f 1485/1272/672 1503/1280/673 1517/1294/672 -f 1502/2470/669 1505/1282/337 1495/2471/337 -f 1485/1272/672 1515/1292/676 1486/1262/671 -f 1502/2470/669 1518/1293/670 1506/1279/669 -f 1486/1262/671 1513/1288/337 1481/1259/337 -f 1500/2472/668 1518/1293/670 1501/2473/670 -f 1481/1259/337 1511/1285/675 1482/1260/675 -f 1500/2472/668 1514/1291/334 1516/1290/668 -f 1695/2474/130 1704/2475/677 1699/2476/151 -f 1697/2477/328 1701/2478/678 1696/2479/143 -f 1699/2476/151 1703/2480/679 1698/2481/334 -f 1696/2479/143 1700/2482/680 1695/2474/130 -f 1701/2478/678 1707/2483/681 1706/2484/682 -f 1704/2475/677 1708/2485/683 1703/2480/679 -f 1701/2478/678 1705/2486/169 1700/2482/680 -f 1704/2475/677 1705/2486/169 1709/2487/684 -f 1705/2486/169 1714/2488/685 1709/2487/684 -f 1706/2484/682 1712/2489/686 1711/2490/687 -f 1709/2487/684 1713/2491/688 1708/2485/683 -f 1705/2486/169 1711/2490/687 1710/2492/308 -f 1715/2493/130 1724/2494/677 1719/2495/151 -f 1717/2496/328 1721/2497/678 1716/2498/143 -f 1719/2495/151 1723/2499/679 1718/2500/334 -f 1716/2498/143 1720/2501/680 1715/2493/130 -f 1721/2497/678 1727/2502/681 1726/2503/682 -f 1724/2494/677 1728/2504/683 1723/2499/679 -f 1721/2497/678 1725/2505/169 1720/2501/680 -f 1724/2494/677 1725/2505/169 1729/2506/684 -f 1725/2505/169 1734/2507/685 1729/2506/684 -f 1726/2503/682 1732/2508/686 1731/2509/687 -f 1729/2506/684 1733/2510/688 1728/2504/683 -f 1726/2503/682 1730/2511/308 1725/2505/169 -f 1735/2512/130 1744/2513/677 1739/2514/151 -f 1737/2515/328 1741/2516/678 1736/2517/143 -f 1739/2514/151 1743/2518/679 1738/2519/334 -f 1736/2517/143 1740/2520/680 1735/2512/130 -f 1741/2516/678 1747/2521/681 1746/2522/682 -f 1744/2513/677 1748/2523/683 1743/2518/679 -f 1741/2516/678 1745/2524/169 1740/2520/680 -f 1744/2513/677 1745/2524/169 1749/2525/684 -f 1745/2524/169 1754/2526/685 1749/2525/684 -f 1746/2522/682 1752/2527/686 1751/2528/687 -f 1749/2525/684 1753/2529/688 1748/2523/683 -f 1746/2522/682 1750/2530/308 1745/2524/169 -f 1809/2531/689 1867/2532/690 1868/2533/689 -f 1809/2531/689 1869/2534/691 1806/2535/691 -f 1806/2535/691 1870/2536/692 1807/2537/692 -f 1807/2537/692 1871/2538/693 1803/2539/693 -f 1803/2539/693 1872/2540/694 1804/2541/694 -f 1805/2542/695 1872/2540/694 1873/2543/695 -f 1818/2544/696 1873/2543/695 1874/2545/696 -f 1816/2546/697 1874/2545/696 1875/2547/697 -f 1817/2548/698 1875/2547/697 1876/2549/698 -f 1817/2550/698 1877/2551/699 1814/2552/699 -f 1814/2552/699 1878/2553/700 1815/2554/700 -f 1812/2555/701 1878/2553/700 1879/2556/701 -f 1812/2555/701 1880/2557/702 1813/2558/702 -f 1813/2558/702 1881/2559/703 1810/2560/703 -f 1810/2560/703 1882/2561/704 1811/2562/704 -f 1808/2563/690 1882/2561/704 1867/2532/690 -f 1867/2532/335 1884/2564/127 1868/2533/127 -f 1868/2533/127 1885/2565/336 1869/2534/336 -f 1875/2547/338 1887/2566/130 1876/2549/130 -f 1882/2561/125 1883/2567/335 1867/2532/335 -f 1874/2545/143 1886/2568/338 1875/2547/338 -f 1881/2559/325 1888/2569/125 1882/2561/125 -f 1873/2543/328 1889/2570/143 1874/2545/143 -f 1880/2557/126 1890/2571/325 1881/2559/325 -f 1872/2540/124 1891/2572/328 1873/2543/328 -f 1879/2556/334 1892/2573/126 1880/2557/126 -f 1871/2538/337 1893/2574/124 1872/2540/124 -f 1878/2553/151 1894/2575/334 1879/2556/334 -f 1870/2536/128 1895/2576/337 1871/2538/337 -f 1877/2551/333 1896/2577/151 1878/2553/151 -f 1869/2534/336 1897/2578/128 1870/2536/128 -f 1876/2579/130 1898/2580/333 1877/2551/333 -f 1889/2570/705 1829/2581/706 1828/2582/705 -f 1890/2571/707 1822/2583/708 1821/2584/707 -f 1893/2574/709 1829/2585/706 1891/2572/706 -f 1892/2573/708 1823/2586/710 1822/2587/708 -f 1893/2574/709 1831/2588/711 1830/2589/709 -f 1896/2577/712 1823/2590/710 1894/2575/710 -f 1897/2578/713 1831/2591/711 1895/2576/711 -f 1896/2577/712 1825/2592/714 1824/2593/712 -f 1885/2565/715 1832/2594/713 1897/2578/713 -f 1887/2595/716 1825/2596/714 1898/2580/714 -f 1884/2564/717 1819/2597/718 1834/2598/717 -f 1884/2564/717 1833/2599/715 1885/2565/715 -f 1887/2566/716 1827/2600/719 1826/2601/716 -f 1888/2569/720 1819/2602/718 1883/2567/718 -f 1889/2570/705 1827/2603/719 1886/2568/719 -f 1888/2569/720 1821/2604/707 1820/2605/720 -f 1842/2606/336 1860/2607/127 1843/2608/127 -f 1850/2609/130 1851/2610/338 1848/2611/338 -f 1837/2612/333 1852/2613/130 1850/2609/130 -f 1843/2614/127 1859/2615/335 1840/2616/335 -f 1848/2611/338 1866/2617/143 1849/2618/143 -f 1840/2616/335 1858/2619/125 1841/2620/125 -f 1849/2618/143 1865/2621/328 1846/2622/328 -f 1841/2620/125 1857/2623/325 1838/2624/325 -f 1846/2622/328 1864/2625/124 1847/2626/124 -f 1838/2624/325 1856/2627/126 1839/2628/126 -f 1847/2626/124 1863/2629/337 1844/2630/337 -f 1839/2628/126 1855/2631/334 1835/2632/334 -f 1844/2630/337 1862/2633/128 1845/2634/128 -f 1835/2632/334 1854/2635/151 1836/2636/151 -f 1845/2634/128 1861/2637/336 1842/2606/336 -f 1836/2636/151 1853/2638/333 1837/2612/333 -f 754/1817/289 755/1830/300 756/1818/290 -f 759/1820/149 760/1831/301 761/1821/292 -f 763/1823/294 764/1827/298 765/1824/295 -f 766/1826/297 767/1833/302 764/1827/298 -f 768/1828/147 754/1817/289 757/1819/291 -f 755/1830/300 758/1822/293 761/1821/292 -f 759/1820/149 762/1825/296 765/1824/295 -f 768/1832/147 769/1838/299 767/1833/302 -f 765/1824/295 764/1827/298 770/1834/303 -f 760/1831/301 772/1840/308 773/1836/305 -f 756/1818/290 774/1841/309 775/1837/306 -f 769/1838/299 776/1849/144 777/1839/307 -f 760/1831/301 765/1824/295 771/1835/304 -f 761/1821/292 773/1836/305 774/1841/309 -f 769/1829/299 757/1819/291 775/1837/306 -f 764/1827/298 767/1833/302 777/1839/307 -f 776/1842/144 775/1837/306 778/1843/310 -f 770/1834/303 777/1839/307 780/1845/311 -f 770/1834/303 781/1846/312 782/1847/313 -f 772/1840/308 783/1850/132 784/1848/314 -f 774/1841/309 785/1851/315 778/1843/310 -f 776/1849/144 779/1859/133 780/1845/311 -f 772/1840/308 771/1835/304 782/1847/313 -f 774/1841/309 773/1836/305 784/1848/314 -f 782/1847/313 786/1858/322 787/1852/316 -f 785/1851/315 784/1848/314 788/1853/317 -f 779/1844/133 778/1843/310 790/1855/319 -f 780/1845/311 792/1860/323 793/1857/321 -f 781/1846/312 793/1857/321 786/1858/322 -f 784/1848/314 783/1850/132 787/1852/316 -f 778/1843/310 785/1851/315 789/1854/318 -f 779/1859/133 791/2639/320 792/1860/323 -f 795/1861/324 313/442/324 310/436/325 -f 797/1863/326 301/427/326 315/438/327 -f 798/1865/328 799/1868/329 305/432/329 -f 801/1866/330 309/433/330 306/430/331 -f 795/1861/324 796/2640/327 315/1583/327 -f 797/1863/326 798/1865/328 302/440/328 -f 800/1867/331 306/430/331 305/432/329 -f 794/1862/325 310/436/325 309/433/330 -f 318/1869/329 317/1874/328 327/451/328 -f 312/435/330 311/434/325 326/447/325 -f 318/1869/329 330/450/329 332/1589/331 -f 314/437/324 329/453/324 326/447/325 -f 320/1871/330 319/2641/331 332/455/331 -f 316/443/327 331/452/327 329/453/324 -f 320/1871/330 334/458/330 336/460/325 -f 304/429/332 333/454/332 331/456/327 -f 307/441/331 312/435/330 325/449/330 -f 324/1873/326 328/448/326 327/451/328 -f 307/441/331 339/463/331 337/461/329 -f 324/1873/326 323/1876/327 340/462/327 -f 303/428/328 308/431/329 337/461/329 -f 322/1875/324 338/459/324 340/462/327 -f 303/428/328 335/457/328 333/454/332 -f 322/1875/324 321/1872/325 336/460/325 -f 803/1877/333 350/474/333 349/476/334 -f 805/1879/325 361/481/325 363/482/335 -f 807/1881/336 365/487/336 367/489/337 -f 809/1883/328 369/491/328 371/492/338 -f 802/1878/334 349/476/334 361/481/325 -f 804/1880/335 363/482/335 365/486/336 -f 806/1882/337 367/489/337 369/491/328 -f 808/1884/338 371/492/338 350/474/333 -f 351/1592/333 375/497/333 374/1603/334 -f 360/1886/336 376/517/336 387/519/335 -f 359/1888/337 373/496/337 376/498/336 -f 352/1598/334 374/500/334 378/1604/325 -f 358/1890/328 377/499/328 373/501/337 -f 362/483/325 378/1605/325 380/502/335 -f 357/1892/338 379/504/338 377/503/328 -f 364/1599/335 380/1606/335 382/505/336 -f 372/1602/338 388/518/338 375/1610/333 -f 353/1894/335 387/514/335 385/516/325 -f 370/493/328 386/515/328 388/1609/338 -f 354/1896/325 385/511/325 383/513/334 -f 368/1601/337 384/512/337 386/1608/328 -f 355/1898/334 383/510/334 381/509/333 -f 366/1600/336 382/1607/336 384/508/337 -f 356/1900/333 381/507/333 379/506/338 -f 810/1902/339 811/1919/172 619/1903/172 -f 812/1905/124 813/1922/340 622/1906/340 -f 624/838/341 633/844/342 631/1908/342 -f 810/1902/339 618/1904/339 617/1909/343 -f 815/1911/344 812/1905/124 621/1907/124 -f 633/844/342 632/1920/345 630/1913/345 -f 816/1914/346 623/2642/347 615/1915/347 -f 627/1917/348 814/1910/343 617/1909/343 -f 815/1911/344 620/1912/344 619/1903/172 -f 632/1920/345 817/1923/126 629/1921/126 -f 816/1914/346 614/1916/346 622/1906/340 -f 626/840/349 628/842/349 629/1921/126 -f 819/1924/342 640/1937/342 639/1925/154 -f 820/1927/124 821/1939/340 637/1928/340 -f 822/1930/350 823/1941/343 644/1931/343 -f 824/1933/339 825/1943/172 634/1934/172 -f 819/1924/342 826/1945/345 641/1936/345 -f 827/1938/346 638/1946/346 637/1928/340 -f 824/1940/339 645/2643/339 644/1931/343 -f 828/1942/344 635/1947/344 634/1934/172 -f 829/1944/126 642/1948/126 641/1936/345 -f 827/1938/346 818/1926/154 639/1925/154 -f 820/1927/124 636/1929/124 635/1947/344 -f 829/1944/126 822/1930/350 643/1932/350 -f 831/1949/351 832/2006/372 833/1950/352 -f 835/1952/354 836/2644/380 837/1953/355 -f 839/1955/357 840/1967/369 841/1956/358 -f 843/1958/360 844/1962/364 845/1959/361 -f 845/1959/361 844/1962/364 839/1955/357 -f 846/1961/363 847/1964/366 843/1958/360 -f 844/1962/364 848/2645/657 849/1963/365 -f 847/1964/366 850/2646/371 851/1965/367 -f 839/1955/357 849/1963/365 852/1966/368 -f 851/1965/367 848/2645/657 844/1962/364 -f 854/1968/357 855/1979/369 856/1969/358 -f 858/1971/360 859/1976/364 860/1972/361 -f 860/1972/361 859/1976/364 854/1968/357 -f 862/1974/366 858/1971/360 857/1973/362 -f 859/1976/364 863/2647/657 864/1977/365 -f 862/1974/366 865/2648/371 866/1978/367 -f 864/1977/365 867/2649/368 855/1979/369 -f 866/1978/367 863/2647/657 859/1976/364 -f 869/1980/357 870/1992/369 871/1981/358 -f 873/1983/370 874/1988/364 875/1984/361 -f 875/1984/361 874/1988/364 869/1980/357 -f 877/1986/366 873/1983/370 872/1985/362 -f 874/1988/364 878/2650/657 879/1989/365 -f 880/1990/371 881/1993/367 873/1983/370 -f 869/1980/357 879/1989/365 882/1991/368 -f 881/1993/367 878/2650/657 874/1988/364 -f 841/1956/358 883/2651/333 884/1994/130 -f 856/1969/358 885/2652/333 886/1995/130 -f 838/1957/359 884/1994/130 887/1996/143 -f 845/1959/361 887/1996/143 888/1997/124 -f 871/1981/358 889/2653/333 890/1998/130 -f 853/1970/359 886/1995/130 891/1999/143 -f 842/1960/362 888/1997/124 892/2000/337 -f 860/1972/361 891/1999/143 893/2001/124 -f 868/1982/359 890/1998/130 894/2002/143 -f 875/1984/361 894/2002/143 895/2003/124 -f 857/1973/362 893/2001/124 896/2004/337 -f 872/1985/362 895/2003/124 897/2005/337 -f 831/1949/351 834/1954/356 837/1953/355 -f 898/2007/373 830/1951/353 833/1950/352 -f 832/2006/372 837/1953/355 900/2009/375 -f 899/2008/374 833/1950/352 902/2011/377 -f 837/1953/355 836/2644/380 904/2013/379 -f 832/2006/372 901/2010/376 902/2011/377 -f 906/2014/354 907/2027/380 908/2015/355 -f 910/2017/351 911/2020/372 912/2018/352 -f 910/2017/351 905/2016/356 908/2015/355 -f 909/2019/353 912/2018/352 914/2021/374 -f 911/2020/372 908/2015/355 915/2023/375 -f 914/2021/374 912/2018/352 917/2025/377 -f 907/2027/380 919/2654/379 915/2023/375 -f 911/2020/372 916/2024/376 917/2025/377 -f 921/2028/354 922/2655/380 923/2029/355 -f 925/2031/351 926/2034/372 927/2032/381 -f 925/2031/351 920/2030/356 923/2029/355 -f 924/2033/353 927/2032/381 929/2035/374 -f 926/2034/372 923/2029/355 930/2037/375 -f 927/2032/381 932/2041/377 933/2039/378 -f 923/2029/355 922/2655/380 934/2040/379 -f 926/2034/372 931/2038/376 932/2041/377 -f 935/2042/130 936/2656/338 835/1952/354 -f 937/2043/130 938/2657/338 906/2014/354 -f 939/2044/151 935/2042/130 834/1954/356 -f 940/2045/126 939/2044/151 831/1949/351 -f 941/2046/130 942/2658/338 921/2028/354 -f 943/2047/151 937/2043/130 905/2016/356 -f 944/2048/325 940/2045/126 830/1951/353 -f 945/2049/126 943/2047/151 910/2017/351 -f 946/2050/151 941/2046/130 920/2030/356 -f 947/2051/126 946/2050/151 925/2031/351 -f 948/2052/325 945/2049/126 909/2019/353 -f 949/2053/325 947/2051/126 924/2033/353 -f 991/2054/382 992/2067/393 993/2055/383 -f 996/2057/145 997/2068/394 998/2058/385 -f 1000/2060/387 1001/2064/391 1002/2061/388 -f 1003/2063/390 1004/2070/395 1001/2064/391 -f 1005/2065/146 991/2054/382 994/2056/384 -f 995/2059/386 998/2058/385 993/2055/383 -f 996/2057/145 999/2062/389 1002/2061/388 -f 1005/2069/146 1006/2075/392 1004/2070/395 -f 1002/2061/388 1001/2064/391 1007/2071/396 -f 997/2068/394 1009/2077/148 1010/2073/398 -f 993/2055/383 1011/2078/401 1012/2074/399 -f 1006/2075/392 1013/2086/150 1014/2076/400 -f 997/2068/394 1002/2061/388 1008/2072/397 -f 998/2058/385 1010/2073/398 1011/2078/401 -f 1006/2066/392 994/2056/384 1012/2074/399 -f 1001/2064/391 1004/2070/395 1014/2076/400 -f 1013/2079/150 1012/2074/399 1015/2080/311 -f 1007/2071/396 1014/2076/400 1017/2082/310 -f 1007/2071/396 1018/2083/315 1019/2084/402 -f 1009/2077/148 1020/2087/132 1021/2085/403 -f 1011/2078/401 1022/2088/312 1015/2080/311 -f 1013/2086/150 1016/2096/133 1017/2082/310 -f 1009/2077/148 1008/2072/397 1019/2084/402 -f 1011/2078/401 1010/2073/398 1021/2085/403 -f 1019/2084/402 1023/2095/410 1024/2089/404 -f 1022/2088/312 1021/2085/403 1025/2090/405 -f 1016/2081/133 1015/2080/311 1027/2092/407 -f 1017/2082/310 1029/2097/411 1030/2094/409 -f 1018/2083/315 1030/2094/409 1023/2095/410 -f 1021/2085/403 1020/2087/132 1024/2089/404 -f 1015/2080/311 1022/2088/312 1026/2091/406 -f 1016/2096/133 1028/2659/408 1029/2097/411 -f 1032/2098/412 963/1051/412 960/1045/328 -f 1034/2100/413 951/1036/413 965/1047/414 -f 1035/2102/325 1036/2105/415 955/1041/415 -f 1038/2103/416 959/1042/416 956/1039/417 -f 1032/2098/412 1033/2660/414 965/1707/414 -f 1034/2100/413 1035/2102/325 952/1049/325 -f 1037/2104/417 956/1039/417 955/1041/415 -f 1031/2099/328 960/1045/328 959/1042/416 -f 968/2106/415 967/2111/325 977/1060/325 -f 962/1044/416 961/1043/328 976/1056/328 -f 968/2106/415 980/1059/415 982/1713/417 -f 964/1046/412 979/1062/412 976/1056/328 -f 970/2108/416 969/2661/417 982/1064/417 -f 966/1052/414 981/1061/414 979/1062/412 -f 970/2108/416 984/1067/416 986/1066/328 -f 954/1038/418 983/1063/418 981/1065/414 -f 957/1050/417 962/1044/416 975/1058/416 -f 974/2110/413 978/1057/413 977/1060/325 -f 957/1050/417 989/1072/417 987/1070/415 -f 974/2110/413 973/2113/414 990/1071/414 -f 953/1037/325 958/1040/415 987/1070/415 -f 972/2112/412 988/1069/412 990/1071/414 -f 953/1037/325 985/1068/325 983/1063/418 -f 972/2112/412 971/2109/328 986/1066/328 -f 1079/2114/419 1080/2127/432 1081/2115/420 -f 1084/2117/422 1085/2128/433 1086/2118/423 -f 1088/2120/425 1089/2124/429 1090/2121/426 -f 1091/2123/428 1092/2130/434 1089/2124/429 -f 1093/2125/430 1079/2114/419 1082/2116/421 -f 1083/2119/424 1086/2118/423 1081/2115/420 -f 1084/2117/422 1087/2122/427 1090/2121/426 -f 1093/2129/430 1094/2135/431 1092/2130/434 -f 1090/2121/426 1089/2124/429 1095/2131/435 -f 1085/2128/433 1097/2137/440 1098/2133/437 -f 1081/2115/420 1099/2138/441 1100/2134/438 -f 1094/2135/431 1101/2146/442 1102/2136/439 -f 1085/2128/433 1090/2121/426 1096/2132/436 -f 1086/2118/423 1098/2133/437 1099/2138/441 -f 1094/2126/431 1082/2116/421 1100/2134/438 -f 1089/2124/429 1092/2130/434 1102/2136/439 -f 1101/2139/442 1100/2134/438 1103/2140/443 -f 1095/2131/435 1102/2136/439 1105/2142/444 -f 1095/2131/435 1106/2143/445 1107/2144/446 -f 1097/2137/440 1108/2147/132 1109/2145/447 -f 1099/2138/441 1110/2148/448 1103/2140/443 -f 1101/2146/442 1104/2156/133 1105/2142/444 -f 1097/2137/440 1096/2132/436 1107/2144/446 -f 1099/2138/441 1098/2133/437 1109/2145/447 -f 1107/2144/446 1111/2155/455 1112/2149/449 -f 1110/2148/448 1109/2145/447 1113/2150/450 -f 1104/2141/133 1103/2140/443 1115/2152/452 -f 1105/2142/444 1117/2157/456 1118/2154/454 -f 1106/2143/445 1118/2154/454 1111/2155/455 -f 1109/2145/447 1108/2147/132 1112/2149/449 -f 1103/2140/443 1110/2148/448 1114/2151/451 -f 1104/2156/133 1116/2662/453 1117/2157/456 -f 1120/2158/457 1051/1088/457 1048/1082/336 -f 1122/2160/458 1039/1073/458 1053/1084/459 -f 1123/2162/333 1124/2165/460 1043/1078/460 -f 1126/2163/461 1047/1079/461 1044/1076/462 -f 1120/2158/457 1121/2663/459 1053/1714/459 -f 1122/2160/458 1123/2162/333 1040/1086/333 -f 1124/2165/460 1125/2164/462 1044/1076/462 -f 1119/2159/336 1048/1082/336 1047/1079/461 -f 1056/2166/460 1055/2171/333 1065/1097/333 -f 1050/1081/461 1049/1080/336 1064/1093/336 -f 1056/2166/460 1068/1096/460 1070/1720/462 -f 1052/1083/457 1067/1099/457 1064/1093/336 -f 1058/2168/461 1057/2664/462 1070/1101/462 -f 1054/1089/459 1069/1098/459 1067/1099/457 -f 1058/2168/461 1072/1104/461 1074/1106/336 -f 1042/1075/463 1071/1100/463 1069/1102/459 -f 1045/1087/462 1050/1081/461 1063/1095/461 -f 1062/2170/458 1066/1094/458 1065/1097/333 -f 1045/1087/462 1077/1109/462 1075/1107/460 -f 1062/2170/458 1061/2173/459 1078/1108/459 -f 1046/1077/460 1075/1107/460 1073/1103/333 -f 1060/2172/457 1076/1105/457 1078/1108/459 -f 1041/1074/333 1073/1103/333 1071/1100/463 -f 1060/2172/457 1059/2169/336 1074/1106/336 -f 1167/2174/464 1168/2187/477 1169/2175/465 -f 1172/2177/467 1173/2188/478 1174/2178/468 -f 1176/2180/470 1177/2184/474 1178/2181/471 -f 1179/2183/473 1180/2190/479 1177/2184/474 -f 1181/2185/475 1167/2174/464 1170/2176/466 -f 1168/2187/477 1171/2179/469 1174/2178/468 -f 1172/2177/467 1175/2182/472 1178/2181/471 -f 1181/2189/475 1182/2195/476 1180/2190/479 -f 1178/2181/471 1177/2184/474 1183/2191/480 -f 1173/2188/478 1185/2197/485 1186/2193/482 -f 1169/2175/465 1187/2198/486 1188/2194/483 -f 1182/2195/476 1189/2206/487 1190/2196/484 -f 1173/2188/478 1178/2181/471 1184/2192/481 -f 1174/2178/468 1186/2193/482 1187/2198/486 -f 1182/2186/476 1170/2176/466 1188/2194/483 -f 1177/2184/474 1180/2190/479 1190/2196/484 -f 1189/2199/487 1188/2194/483 1191/2200/444 -f 1183/2191/480 1190/2196/484 1193/2202/443 -f 1183/2191/480 1194/2203/448 1195/2204/488 -f 1185/2197/485 1196/2207/132 1197/2205/489 -f 1187/2198/486 1198/2208/445 1191/2200/444 -f 1189/2206/487 1192/2216/133 1193/2202/443 -f 1185/2197/485 1184/2192/481 1195/2204/488 -f 1187/2198/486 1186/2193/482 1197/2205/489 -f 1195/2204/488 1199/2215/496 1200/2209/490 -f 1198/2208/445 1197/2205/489 1201/2210/491 -f 1192/2201/133 1191/2200/444 1203/2212/493 -f 1193/2202/443 1205/2217/497 1206/2214/495 -f 1194/2203/448 1206/2214/495 1199/2215/496 -f 1197/2205/489 1196/2207/132 1200/2209/490 -f 1191/2200/444 1198/2208/445 1202/2211/492 -f 1192/2216/133 1204/2665/494 1205/2217/497 -f 1208/2218/498 1139/1125/498 1136/1119/333 -f 1210/2220/499 1127/1110/499 1141/1121/500 -f 1211/2222/336 1212/2224/501 1131/1115/501 -f 1213/2223/502 1214/2225/503 1135/1116/503 -f 1208/2218/498 1209/2666/500 1141/1721/500 -f 1210/2220/499 1211/2222/336 1128/1123/336 -f 1213/2223/502 1132/1113/502 1131/1115/501 -f 1207/2219/333 1136/1119/333 1135/1116/503 -f 1144/2226/501 1143/2231/336 1153/1134/336 -f 1138/1118/503 1137/1117/333 1152/1130/333 -f 1144/2226/501 1156/1133/501 1158/1727/502 -f 1140/1120/498 1155/1136/498 1152/1130/333 -f 1146/2228/503 1145/2667/502 1158/1138/502 -f 1142/1126/500 1157/1135/500 1155/1136/498 -f 1146/2228/503 1160/1141/503 1162/1143/333 -f 1130/1112/504 1159/1137/504 1157/1139/500 -f 1133/1124/502 1138/1118/503 1151/1132/503 -f 1150/2230/499 1154/1131/499 1153/1134/336 -f 1133/1124/502 1165/1146/502 1163/1144/505 -f 1150/2230/499 1149/2233/500 1166/1145/500 -f 1134/1114/501 1163/1144/505 1161/1140/336 -f 1148/2232/498 1164/1142/498 1166/1145/500 -f 1129/1111/336 1161/1140/336 1159/1137/504 -f 1148/2232/498 1147/2229/333 1162/1143/333 -f 1255/2234/506 1256/2247/519 1257/2235/507 -f 1260/2237/509 1261/2248/520 1262/2238/510 -f 1264/2240/512 1265/2244/516 1266/2241/513 -f 1267/2243/515 1268/2250/521 1265/2244/516 -f 1269/2245/517 1255/2234/506 1258/2236/508 -f 1256/2247/519 1259/2239/511 1262/2238/510 -f 1260/2237/509 1263/2242/514 1266/2241/513 -f 1269/2249/517 1270/2255/518 1268/2250/521 -f 1266/2241/513 1265/2244/516 1271/2251/522 -f 1261/2248/520 1273/2257/376 1274/2253/524 -f 1257/2235/507 1275/2258/527 1276/2254/525 -f 1270/2255/518 1277/2266/528 1278/2256/526 -f 1261/2248/520 1266/2241/513 1272/2252/523 -f 1262/2238/510 1274/2253/524 1275/2258/527 -f 1270/2246/518 1258/2236/508 1276/2254/525 -f 1265/2244/516 1268/2250/521 1278/2256/526 -f 1277/2259/528 1276/2254/525 1279/2260/529 -f 1271/2251/522 1278/2256/526 1281/2262/530 -f 1271/2251/522 1282/2263/531 1283/2264/532 -f 1273/2257/376 1284/2267/132 1285/2265/533 -f 1275/2258/527 1286/2268/534 1279/2260/529 -f 1277/2266/528 1280/2276/133 1281/2262/530 -f 1273/2257/376 1272/2252/523 1283/2264/532 -f 1275/2258/527 1274/2253/524 1285/2265/533 -f 1283/2264/532 1287/2275/541 1288/2269/535 -f 1286/2268/534 1285/2265/533 1289/2270/536 -f 1280/2261/133 1279/2260/529 1291/2272/538 -f 1281/2262/530 1293/2277/542 1294/2274/540 -f 1282/2263/531 1294/2274/540 1287/2275/541 -f 1285/2265/533 1284/2267/132 1288/2269/535 -f 1279/2260/529 1286/2268/534 1290/2271/537 -f 1280/2276/133 1292/2668/539 1293/2277/542 -f 1296/2278/543 1227/1162/543 1224/1156/335 -f 1298/2280/544 1215/1147/544 1229/1158/545 -f 1299/2282/338 1300/2285/546 1219/1152/546 -f 1302/2283/547 1223/1153/547 1220/1150/548 -f 1296/2278/543 1297/2669/545 1229/1728/545 -f 1298/2280/544 1299/2282/338 1216/1160/338 -f 1300/2285/546 1301/2284/548 1220/1150/548 -f 1295/2279/335 1224/1156/335 1223/1153/547 -f 1232/2286/546 1231/2291/338 1241/1171/338 -f 1226/1155/547 1225/1154/335 1240/1167/335 -f 1232/2286/546 1244/1170/546 1246/1734/548 -f 1228/1157/543 1243/1173/543 1240/1167/335 -f 1234/2288/547 1233/2670/548 1246/1175/548 -f 1230/1163/545 1245/1172/545 1243/1173/543 -f 1234/2288/547 1248/1178/547 1250/1180/335 -f 1218/1149/549 1247/1174/549 1245/1176/545 -f 1221/1161/548 1226/1155/547 1239/1169/547 -f 1238/2290/544 1242/1168/544 1241/1171/338 -f 1221/1161/548 1253/1183/548 1251/1181/546 -f 1238/2290/544 1237/2293/545 1254/1182/545 -f 1222/1151/546 1251/1181/546 1249/1177/338 -f 1236/2292/543 1252/1179/543 1254/1182/545 -f 1217/1148/338 1249/1177/338 1247/1174/549 -f 1236/2292/543 1235/2289/335 1250/1180/335 -f 1343/2294/550 1344/2307/563 1345/2295/551 -f 1348/2297/553 1349/2308/564 1350/2298/554 -f 1352/2300/556 1353/2304/560 1354/2301/557 -f 1355/2303/559 1356/2310/565 1353/2304/560 -f 1357/2305/561 1343/2294/550 1346/2296/552 -f 1344/2307/563 1347/2299/555 1350/2298/554 -f 1351/2302/558 1354/2301/557 1349/2308/564 -f 1357/2309/561 1358/2315/562 1356/2310/565 -f 1354/2301/557 1353/2304/560 1359/2311/566 -f 1349/2308/564 1361/2317/571 1362/2313/568 -f 1345/2295/551 1363/2318/572 1364/2314/569 -f 1358/2315/562 1365/2326/573 1366/2316/570 -f 1349/2308/564 1354/2301/557 1360/2312/567 -f 1350/2298/554 1362/2313/568 1363/2318/572 -f 1358/2306/562 1346/2296/552 1364/2314/569 -f 1353/2304/560 1356/2310/565 1366/2316/570 -f 1364/2314/569 1367/2325/530 1368/2320/133 -f 1359/2311/566 1366/2316/570 1369/2321/529 -f 1359/2311/566 1370/2322/534 1371/2323/533 -f 1361/2317/571 1372/2327/132 1373/2324/532 -f 1363/2318/572 1374/2328/531 1367/2325/530 -f 1365/2326/573 1368/2336/133 1369/2321/529 -f 1361/2317/571 1360/2312/567 1371/2323/533 -f 1363/2318/572 1362/2313/568 1373/2324/532 -f 1371/2323/533 1375/2335/580 1376/2329/574 -f 1374/2328/531 1373/2324/532 1377/2330/575 -f 1368/2320/133 1367/2325/530 1379/2332/577 -f 1369/2321/529 1381/2337/581 1382/2334/579 -f 1370/2322/534 1382/2334/579 1375/2335/580 -f 1373/2324/532 1372/2327/132 1376/2329/574 -f 1367/2325/530 1374/2328/531 1378/2331/576 -f 1368/2336/133 1380/2671/578 1381/2337/581 -f 1384/2338/582 1315/1199/582 1312/1193/338 -f 1386/2340/583 1303/1184/583 1317/1195/584 -f 1387/2342/335 1388/2345/585 1307/1189/585 -f 1390/2343/586 1311/1190/586 1308/1187/587 -f 1384/2338/582 1385/2672/584 1317/1735/584 -f 1386/2340/583 1387/2342/335 1304/1197/335 -f 1389/2344/587 1308/1187/587 1307/1189/585 -f 1383/2339/338 1312/1193/338 1311/1190/586 -f 1320/2346/585 1319/2351/335 1329/1208/335 -f 1314/1192/586 1313/1191/338 1328/1204/338 -f 1320/2346/585 1332/1207/585 1334/1741/587 -f 1313/1191/338 1316/1194/588 1331/1210/582 -f 1322/2348/586 1321/2673/587 1334/1212/587 -f 1318/1200/584 1333/1209/584 1331/1210/582 -f 1322/2348/586 1336/1215/586 1338/1217/338 -f 1306/1186/589 1335/1211/589 1333/1213/584 -f 1309/1198/587 1314/1192/586 1327/1206/586 -f 1326/2350/583 1330/1205/583 1329/1208/335 -f 1309/1198/587 1341/1220/587 1339/1218/590 -f 1326/2350/583 1325/2353/584 1342/1219/584 -f 1310/1188/585 1339/1218/590 1337/1214/335 -f 1324/2352/582 1340/1216/582 1342/1219/584 -f 1305/1185/335 1337/1214/335 1335/1211/589 -f 1324/2352/582 1323/2349/338 1338/1217/338 -f 1431/2354/591 1432/2367/604 1433/2355/592 -f 1436/2357/594 1437/2368/605 1438/2358/595 -f 1440/2360/597 1441/2364/601 1442/2361/598 -f 1443/2363/600 1444/2370/606 1441/2364/601 -f 1445/2365/602 1431/2354/591 1434/2356/593 -f 1435/2359/596 1438/2358/595 1433/2355/592 -f 1436/2357/594 1439/2362/599 1442/2361/598 -f 1445/2369/602 1446/2375/603 1444/2370/606 -f 1442/2361/598 1441/2364/601 1447/2371/607 -f 1437/2368/605 1449/2377/612 1450/2373/609 -f 1433/2355/592 1451/2378/613 1452/2374/610 -f 1446/2375/603 1453/2386/614 1454/2376/611 -f 1437/2368/605 1442/2361/598 1448/2372/608 -f 1438/2358/595 1450/2373/609 1451/2378/613 -f 1446/2366/603 1434/2356/593 1452/2374/610 -f 1441/2364/601 1444/2370/606 1454/2376/611 -f 1453/2379/614 1452/2374/610 1455/2380/615 -f 1447/2371/607 1454/2376/611 1457/2382/616 -f 1447/2371/607 1458/2383/617 1459/2384/618 -f 1449/2377/612 1460/2387/132 1461/2385/619 -f 1451/2378/613 1462/2388/620 1455/2380/615 -f 1453/2386/614 1456/2396/133 1457/2382/616 -f 1449/2377/612 1448/2372/608 1459/2384/618 -f 1451/2378/613 1450/2373/609 1461/2385/619 -f 1459/2384/618 1463/2395/627 1464/2389/621 -f 1462/2388/620 1461/2385/619 1465/2390/622 -f 1456/2381/133 1455/2380/615 1467/2392/624 -f 1457/2382/616 1469/2397/628 1470/2394/626 -f 1458/2383/617 1470/2394/626 1463/2395/627 -f 1461/2385/619 1460/2387/132 1464/2389/621 -f 1455/2380/615 1462/2388/620 1466/2391/623 -f 1456/2396/133 1468/2674/625 1469/2397/628 -f 1472/2398/629 1403/1236/629 1400/1230/337 -f 1474/2400/630 1391/1221/630 1405/1232/631 -f 1475/2402/334 1476/2405/632 1395/1226/632 -f 1478/2403/633 1399/1227/633 1396/1224/634 -f 1472/2398/629 1473/2675/631 1405/1742/631 -f 1474/2400/630 1475/2402/334 1392/1234/334 -f 1477/2404/634 1396/1224/634 1395/1226/632 -f 1471/2399/337 1400/1230/337 1399/1227/633 -f 1408/2406/632 1407/2411/334 1417/1245/334 -f 1402/1229/633 1401/1228/337 1416/1241/337 -f 1408/2406/632 1420/1244/632 1422/1748/634 -f 1404/1231/629 1419/1247/629 1416/1241/337 -f 1410/2408/633 1409/2676/634 1422/1249/634 -f 1406/1237/631 1421/1246/631 1419/1247/629 -f 1410/2408/633 1424/1252/633 1426/1254/337 -f 1394/1223/635 1423/1248/635 1421/1250/631 -f 1397/1235/634 1402/1229/633 1415/1243/633 -f 1414/2410/630 1418/1242/630 1417/1245/334 -f 1397/1235/634 1429/1257/634 1427/1255/632 -f 1414/2410/630 1413/2413/631 1430/1256/631 -f 1398/1225/632 1427/1255/632 1425/1251/334 -f 1412/2412/629 1428/1253/629 1430/1256/631 -f 1393/1222/334 1425/1251/334 1423/1248/635 -f 1412/2412/629 1411/2409/337 1426/1254/337 -f 1519/2414/636 1520/2427/649 1521/2415/637 -f 1524/2417/639 1525/2428/650 1526/2418/640 -f 1528/2420/642 1529/2424/646 1530/2421/643 -f 1531/2423/645 1532/2430/651 1529/2424/646 -f 1533/2425/647 1519/2414/636 1522/2416/638 -f 1520/2427/649 1523/2419/641 1526/2418/640 -f 1524/2417/639 1527/2422/644 1530/2421/643 -f 1533/2429/647 1534/2435/648 1532/2430/651 -f 1530/2421/643 1529/2424/646 1535/2431/652 -f 1525/2428/650 1537/2437/657 1538/2433/654 -f 1521/2415/637 1539/2438/658 1540/2434/655 -f 1534/2435/648 1541/2446/659 1542/2436/656 -f 1530/2421/643 1536/2432/653 1537/2437/657 -f 1526/2418/640 1538/2433/654 1539/2438/658 -f 1534/2426/648 1522/2416/638 1540/2434/655 -f 1529/2424/646 1532/2430/651 1542/2436/656 -f 1541/2439/659 1540/2434/655 1543/2440/616 -f 1535/2431/652 1542/2436/656 1545/2442/615 -f 1535/2431/652 1546/2443/620 1547/2444/619 -f 1537/2437/657 1548/2447/132 1549/2445/618 -f 1539/2438/658 1550/2448/617 1543/2440/616 -f 1541/2446/659 1544/2456/133 1545/2442/615 -f 1537/2437/657 1536/2432/653 1547/2444/619 -f 1539/2438/658 1538/2433/654 1549/2445/618 -f 1547/2444/619 1551/2455/666 1552/2449/660 -f 1550/2448/617 1549/2445/618 1553/2450/661 -f 1544/2441/133 1543/2440/616 1555/2452/663 -f 1545/2442/615 1557/2457/667 1558/2454/665 -f 1546/2443/620 1558/2454/665 1551/2455/666 -f 1549/2445/618 1548/2447/132 1552/2449/660 -f 1543/2440/616 1550/2448/617 1554/2451/662 -f 1544/2456/133 1556/2677/664 1557/2457/667 -f 1560/2458/668 1491/1267/668 1488/1268/334 -f 1562/2460/669 1479/1258/669 1493/1269/670 -f 1563/2462/337 1564/2464/671 1483/1263/671 -f 1565/2463/672 1566/2465/673 1487/1264/673 -f 1560/2458/668 1561/2678/670 1493/1749/670 -f 1562/2460/669 1563/2462/337 1480/1271/337 -f 1564/2464/671 1565/2463/672 1484/1261/672 -f 1559/2459/334 1488/1268/334 1487/1264/673 -f 1496/2466/671 1495/2471/337 1505/1282/337 -f 1490/1266/673 1489/1265/334 1504/1278/334 -f 1496/2466/671 1508/1281/671 1510/1755/672 -f 1489/1265/334 1492/1274/674 1507/1284/668 -f 1498/2468/673 1497/2679/672 1510/1286/672 -f 1494/1273/670 1509/1283/670 1507/1284/668 -f 1498/2468/673 1512/1289/673 1514/1291/334 -f 1482/1260/675 1511/1285/675 1509/1287/670 -f 1485/1272/672 1490/1266/673 1503/1280/673 -f 1502/2470/669 1506/1279/669 1505/1282/337 -f 1485/1272/672 1517/1294/672 1515/1292/676 -f 1502/2470/669 1501/2473/670 1518/1293/670 -f 1486/1262/671 1515/1292/676 1513/1288/337 -f 1500/2472/668 1516/1290/668 1518/1293/670 -f 1481/1259/337 1513/1288/337 1511/1285/675 -f 1500/2472/668 1499/2469/334 1514/1291/334 -f 1695/2474/130 1700/2482/680 1704/2475/677 -f 1697/2477/328 1702/2680/721 1701/2478/678 -f 1699/2476/151 1704/2475/677 1703/2480/679 -f 1696/2479/143 1701/2478/678 1700/2482/680 -f 1701/2478/678 1702/2680/721 1707/2483/681 -f 1704/2475/677 1709/2487/684 1708/2485/683 -f 1701/2478/678 1706/2484/682 1705/2486/169 -f 1704/2475/677 1700/2482/680 1705/2486/169 -f 1705/2486/169 1710/2492/308 1714/2488/685 -f 1706/2484/682 1707/2483/681 1712/2489/686 -f 1709/2487/684 1714/2488/685 1713/2491/688 -f 1705/2486/169 1706/2484/682 1711/2490/687 -f 1715/2493/130 1720/2501/680 1724/2494/677 -f 1717/2496/328 1722/2681/721 1721/2497/678 -f 1719/2495/151 1724/2494/677 1723/2499/679 -f 1716/2498/143 1721/2497/678 1720/2501/680 -f 1721/2497/678 1722/2681/721 1727/2502/681 -f 1724/2494/677 1729/2506/684 1728/2504/683 -f 1721/2497/678 1726/2503/682 1725/2505/169 -f 1724/2494/677 1720/2501/680 1725/2505/169 -f 1725/2505/169 1730/2511/308 1734/2507/685 -f 1726/2503/682 1727/2502/681 1732/2508/686 -f 1729/2506/684 1734/2507/685 1733/2510/688 -f 1726/2503/682 1731/2509/687 1730/2511/308 -f 1735/2512/130 1740/2520/680 1744/2513/677 -f 1737/2515/328 1742/2682/721 1741/2516/678 -f 1739/2514/151 1744/2513/677 1743/2518/679 -f 1736/2517/143 1741/2516/678 1740/2520/680 -f 1741/2516/678 1742/2682/721 1747/2521/681 -f 1744/2513/677 1749/2525/684 1748/2523/683 -f 1741/2516/678 1746/2522/682 1745/2524/169 -f 1744/2513/677 1740/2520/680 1745/2524/169 -f 1745/2524/169 1750/2530/308 1754/2526/685 -f 1746/2522/682 1747/2521/681 1752/2527/686 -f 1749/2525/684 1754/2526/685 1753/2529/688 -f 1746/2522/682 1751/2528/687 1750/2530/308 -f 1809/2531/689 1808/2563/690 1867/2532/690 -f 1809/2531/689 1868/2533/689 1869/2534/691 -f 1806/2535/691 1869/2534/691 1870/2536/692 -f 1807/2537/692 1870/2536/692 1871/2538/693 -f 1803/2539/693 1871/2538/693 1872/2540/694 -f 1805/2542/695 1804/2541/694 1872/2540/694 -f 1818/2544/696 1805/2542/695 1873/2543/695 -f 1816/2546/697 1818/2544/696 1874/2545/696 -f 1817/2548/698 1816/2546/697 1875/2547/697 -f 1817/2550/698 1876/2579/698 1877/2551/699 -f 1814/2552/699 1877/2551/699 1878/2553/700 -f 1812/2555/701 1815/2554/700 1878/2553/700 -f 1812/2555/701 1879/2556/701 1880/2557/702 -f 1813/2558/702 1880/2557/702 1881/2559/703 -f 1810/2560/703 1881/2559/703 1882/2561/704 -f 1808/2563/690 1811/2562/704 1882/2561/704 -f 1867/2532/335 1883/2567/335 1884/2564/127 -f 1868/2533/127 1884/2564/127 1885/2565/336 -f 1875/2547/338 1886/2568/338 1887/2566/130 -f 1882/2561/125 1888/2569/125 1883/2567/335 -f 1874/2545/143 1889/2570/143 1886/2568/338 -f 1881/2559/325 1890/2571/325 1888/2569/125 -f 1873/2543/328 1891/2572/328 1889/2570/143 -f 1880/2557/126 1892/2573/126 1890/2571/325 -f 1872/2540/124 1893/2574/124 1891/2572/328 -f 1879/2556/334 1894/2575/334 1892/2573/126 -f 1871/2538/337 1895/2576/337 1893/2574/124 -f 1878/2553/151 1896/2577/151 1894/2575/334 -f 1870/2536/128 1897/2578/128 1895/2576/337 -f 1877/2551/333 1898/2580/333 1896/2577/151 -f 1869/2534/336 1885/2565/336 1897/2578/128 -f 1876/2579/130 1887/2595/130 1898/2580/333 -f 1889/2570/705 1891/2572/706 1829/2581/706 -f 1890/2571/707 1892/2573/708 1822/2583/708 -f 1893/2574/709 1830/2683/709 1829/2585/706 -f 1892/2573/708 1894/2575/710 1823/2586/710 -f 1893/2574/709 1895/2576/711 1831/2588/711 -f 1896/2577/712 1824/2684/712 1823/2590/710 -f 1897/2578/713 1832/2685/713 1831/2591/711 -f 1896/2577/712 1898/2580/714 1825/2592/714 -f 1885/2565/715 1833/2686/715 1832/2594/713 -f 1887/2595/716 1826/2687/716 1825/2596/714 -f 1884/2564/717 1883/2567/718 1819/2597/718 -f 1884/2564/717 1834/2688/717 1833/2599/715 -f 1887/2566/716 1886/2568/719 1827/2600/719 -f 1888/2569/720 1820/2689/720 1819/2602/718 -f 1889/2570/705 1828/2690/705 1827/2603/719 -f 1888/2569/720 1890/2571/707 1821/2604/707 -f 1842/2606/336 1861/2637/336 1860/2607/127 -f 1850/2609/130 1852/2613/130 1851/2610/338 -f 1837/2612/333 1853/2638/333 1852/2613/130 -f 1843/2614/127 1860/2691/127 1859/2615/335 -f 1848/2611/338 1851/2610/338 1866/2617/143 -f 1840/2616/335 1859/2615/335 1858/2619/125 -f 1849/2618/143 1866/2617/143 1865/2621/328 -f 1841/2620/125 1858/2619/125 1857/2623/325 -f 1846/2622/328 1865/2621/328 1864/2625/124 -f 1838/2624/325 1857/2623/325 1856/2627/126 -f 1847/2626/124 1864/2625/124 1863/2629/337 -f 1839/2628/126 1856/2627/126 1855/2631/334 -f 1844/2630/337 1863/2629/337 1862/2633/128 -f 1835/2632/334 1855/2631/334 1854/2635/151 -f 1845/2634/128 1862/2633/128 1861/2637/336 -f 1836/2636/151 1854/2635/151 1853/2638/333 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon.png index a3ff7b54353c1b1734e810502a00e4d93521396b..b72c6d3fe1310728a27ba40db40e7572929725b7 100644 GIT binary patch literal 7619 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 literal 7611 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 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_0.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_0.png index f495fbdfa2ddb8c5d7cf021218d9d9222e543607..7650662e791afa6b0e97759c727a1d03034082d8 100644 GIT binary patch delta 71 zcmbQhSUSPPQODE8F+^f&@}7&CU*|J&8W+3 ZGEA&uSG4N?@`M2hJYD@<);T3K0RUWZ7fS#D delta 98 zcmXS&z&ODq#@*A!F+^f&@}K(VhxW`u2}ub+aHSz(2SXcI%7HT<`WHTYkg4%r-Z095 zMPk9bALkDo`0)QfZ`=Qr8IEn%5fVV~YO??ngZDGxw+s_1Ef|2n)78&qol`;+08#rX Ab^rhX diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_1.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_1.png index 66fccb0e262a5fc02198654b21830dac6d5e09a9..e73121b4051f759fdfe2ef1c58752ec719a2580f 100644 GIT binary patch delta 78 zcmbQjSTn)I!`RcsF+^f&@}7&CU*|J&8W00toNboFyt=akR{04+-yu>b%7 delta 102 zcmb=K!Z^Vs!Q0ctF+^f&@}K(VhxW`u2}ub+aHSz(2SXcI%7HT<`WHTYkg4%r-Z095 zMPk9bALkDo`0)QfZ`=Qr8IEhL|NU=IU}IxD_Dd(^Ju}0>ClXKh$urzw00K`}KbLh* G2~7ZGi!N0F diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_10.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_10.png index 0f3ba18831ed0f93773737e02e70f038ce8fdc05..6dc46671868c16d5f677385c64e1b39c375fcbf2 100644 GIT binary patch delta 80 zcmbQqSU17M%hc1wF+^f&@}7&CU*|J&8WL~_hL`5~@|72vO_%c$QVT2UF?_X)RBA{OP7*_xQ N002ovPDHLkV1hTTELQ*k diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_11.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_11.png index 1e97f6252e90529d70f3ceffda06df90d9e95d38..351ac3108b2bbbdc2dab5e983d5390c627e8a8a5 100644 GIT binary patch delta 79 zcmeBStes%uY2xYP7$Pw>dC$enuk#r>4Gawo3^Jz3CtuL8Zxc8W(5U(0zdg(31*s2M hBP4(zuO#v?E5n?1-153pHE%Hhfv2mV%Q~loCIEaN8=U|E delta 94 zcmV-k0HObVi~*1|SVKufK~xx(osYo@z%UHN*kL0t z4uClC8H*(`QHiLimAJ304*PM~{~X`%h|2l>3;E+DV}tccA^-pY07*qoM6N<$fdC$enuk#r>4Gawo3^Jz3CtuL8Zxc8WaPY%_dzQyxh9WEx g5FVdQ&MBb@09N1|8vpnOMe*XYS%_v_E;21Cf0000dC$enuk#r>4Gawo3^Jz3CtuL8ZxcxP@n62_A=8Vfwq*?5 i%*@P(d-bw+Ffgc?a?3xz{epu52s~Z=T-G@yGywo)#v5?} delta 95 zcmV-l0HFVTjRBA}Swu-hK~xx(osYo@z%UF0&z+{Tc?qxSZLW_%n$kx}1^OI9NMR$3 z4uCj^CqRcMSXGIrsFnCid;{#e!~WN?zauK2_b-fzC|}ni*#!Uq002ovPDHLkV1k9V BC=CDr diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_14.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_14.png index 4270afad14bbb04ca0fbba70a4f6808dedb4b028..a1938e8e93cec2561bb7b82c44f2c44560a08384 100644 GIT binary patch delta 71 zcmeBTES+HDsN?D47$Pw>dC$enuk#r>4Gawo3^Jz3re4sn?h-fb%7 delta 92 zcmV-i0HgnPiUE)`RzXQbK~xx(osY2%z%UHM=suI*{Dj~1H|&@M8G=@$AQ4j7$f5@z yhQx3hM`BYYqM}yfy>c?_$*})1zVC?2{r(H$CnjHrgIm=A0000bP0l+XkKFZLR6 delta 101 zcmb=P%s9a$-pkX)F+^f&@}K(VhxW`u2}ub+aHSz(2SXcI%7HT<`WHTYkg4%r-Z095 zMPk9bALkDo`0)QfZ`=Qr8I6Z!|NnP3Fw^b%8oA;gI|J)_iKn%Dbk8sVfv2mV%Q~lo FCICBqE-3&2 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_3.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_3.png index cae11f3fb152454a78b08191d164c0cfff8fdb7d..16bdc3c2dcfcfdc521b2eb8ed37bea8acfb088ba 100644 GIT binary patch delta 78 zcmbQiSTn)I!`RcsF+^f&@}7&CU*|J&8Wzf%{s-3)9;Cb69XS91 N002ovPDHLkV1j`EE#v?I diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_5.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_5.png index 900289ac16c1eb1907cbc71ae35c354a3c39cd52..0a2f9cfc5874d02e41dd0f1ce113f53bf7450f9e 100644 GIT binary patch delta 78 zcmbQkSTn)I!`RcsF+^f&@}7&CU*|J&8WQn|ox*wDZ7P2vlR>*fKr=2PTJ_nHBBG+Exa=4RDZbx-029RmOW delta 110 zcmV-!0FnQEoB@zDXj4f`K>*#($}=K(Mn5<`<7e$zJn z!Hf*p0K!rE3X@~RPT{=nc9oULB+zyUXvXT$%C(LZ5fwGX-tiX+DSqF70A83Lq?w1A Qga7~l07*qoM6N<$f_C6A7ytkO diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_7.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_7.png index 6154717c9561cc54a91d0d11733297052b25b058..322a8e4d5a4bf7a26072d791152fc2f2e4fac58b 100644 GIT binary patch delta 78 zcmbQvSTn)I!`RcsF+^f&@}7&CU*|J&8WeISL{ON)utp#asT9 z92TV00ubBnCm0&NRx0~(wyVy(3;`BIMYZ4`Moupyrx`}%^qqeJqEsHFmh`<(00000 LNkvXXu0mjfG&Cq$ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_8.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_8.png index 53cf4aa43211e1a7990f456eb5322ce1ff947572..92bbb9308c80a918a7fba9dd9507ab5c1c79acc1 100644 GIT binary patch delta 80 zcmbQqSU17M%hc1wF+^f&@}7&CU*|J&8WFVdQ&MBb@0NHsSCIA2c delta 107 zcmV-x0F?iJnE{YAWl%{(K~xx(jgP?%fG`ZiTv&$LvP4;pHw$E%nnw{7@u{VI&Pi^L;7uo}0A}XqhvyPD(ucO9{qty7me*xk!BA}R2GT{IK N002ovPDHLkV1mCvE}j4Y diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_9.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/fill_9.png index db86ae0595776556476698dc557593e4cd263957..363f9131ff7ba3e68cf81e816a9ef85c6ea46f79 100644 GIT binary patch delta 80 zcmbQmSU17M%hc1wF+^f&@}7&CU*|J&8WwBS3j3^P6HB*K~xx(jgP?%fFKYA2W`gMXaZaFZ39%p_<$$|jc&4!yWGy^ zf*I*F0feRcTnrbzW(w=Jx2e2FwEBsG8BtNq_+2|PQoI-`{$Yd^@9!Ta`y!z2*i0n= O0000DIxW(EcZ1{Pcr8Qa-V_%l3z5oZ8Q z<9@9J5P>`h<(T1s)gTlDGPbiJG@^n1GY-HFLN)}`3)2`F7_t}`9IrV*O+^^stBz?f zJPkfq4aV3R;FQ()zkh`Q&?W&8@zYETL@5!fJ6EUQJf1DIxW(EcZ1{Pcr8Qa-V_%l3z5oZ8Q z<9@9J5P>`h<(T1s)gTlDGPbiJG@^n1GY-HFLN)}`3)2`F7_t}`9IrV*O+^^stBz?f zJP$L_t(Ijop&L4FWL?1Sg0meIQYVQviKL_qcKp-NaR-o$v|K z#U|pUdmypD*xq$^lTa5b2XHz<1~|_evB+@FH{B=jCU(Nw>dDj_!Zw3g#BW;7f;7%} z3lCt~SV+ynQ@LNgg&txoLRKAY*v$Z!tV7?uLI70NmZxw66)q4FRCSk757DJRft?#} j@QwUwCj9&>|AD{@Fk?8EO#!S-00000NkvXXu0mjfvIb95 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_10.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_10.png index d45d359cce090681753904a5a7fc5e08e2ae0cff..32aeaa2ed9e13ed731d3fe0b8ffa9df98e080b81 100644 GIT binary patch delta 197 zcmV;$06PEU0r3HlG=Hc`L_t(IjbpsgY4x9h0>DIxW(EcZ1{Pcr8Qa-V_%l3z5oZ8Q z<9@9J5P>`h<(T1s)gTlDGPbiJG@^n1GY-HFLN)}`3)2`F7_t}`9IrV*O+^^stBz?f zJP_31Z z&j?FMFlXV4E*L;phvEf7nz5;29Pp$(3=9AOUMH~jtm^}li3!p4cZoFM~TM}SY#yyIPuEqD_PVa@%}^>ev81E0hyt(`z< zXRL(>uv8X8w(wNuo3&6v^ht=Sjg4LzV2aw{hp(WjyqxV1uP{&(0Yro;s=-T$CjCM6 lbB%>>5PXBR~1B1Buagqgz|tu504FxUB*hbqYUos9t>v_9Jn(5 vwMBR(`&L}+e#9D6*z3>xxIz7CVgduhZCwKo>kcPA1|aZs^>bP0l+XkKn}SCN delta 183 zcmV;o07(Du0pkIXG=G{&L_t(Ijop&X4Z<)Cg})$^tlc_0Vxpw~437I^{rG z#fgfLDuje@{&{|Ww!<>AaKKJSzyRmHgl2Jm8tk(MD{uo$B_5l2u~6?ov-C_;LlAvU zFW~`DIxW(EcZ1{Pcr8Qa-V_%l3z5oZ8Q z<9@9J5P>`h<(T1s)gTlDGPbiJG@^n1GY-HFLN)}`3)2`F7_t}`9IrV*O+^^stBz?f zJP8m2;+7kKs`KnWj=SoqJtz~JEEz&mi@0Cun7bOAab)(}Qm wLV`I9S9HMux;hjW5YmiI4dZ|(07*qoM6N<$g0*W+NdN!< delta 181 zcmV;m080Pv0pS6VG=G>$L_t(Ijop&L4Z|P|MITj<-J?>cFavZCltadex(%L!b?Akl zfP)$-he-W5@c%ad82Dpz3K1p+qFFn>^6;{Dq?n8H9;IDIxW(EcZ1{Pcr8Qa-V_%l3z5oZ8Q z<9@9J5P>`h<(T1s)gTlDGPbiJG@^n1GY-HFLN)}`3)2`F7#SEC92^{=rXmdRRmU_K z9*7y+*%T;J|R;0IEx1Uf|h(0401Vjs=_sU~>gFz%K|(NHAyNiY^#HSBK&P kLYlFuVI1(JJPZr~0I51Nn%i+*D*ylh07*qoM6N<$f{)lmn*aa+ delta 175 zcmV;g08szp0owtPG=GvwL_t(Ijonh)4S*mFJdB_2Vd4~J0QVq%IF4}}ItAzz(tINHPlT~4^a0Ew4;2|nhY?qC%3Qx z3INeL5hhsJ8S|K1h#_i6uzV^L5t!vBmxaNy$fx-gssg1gN+^gSX6aXu_K6Li$fX|j d`B(mdzyU%#Gr$aJrJVo(002ovPDHLkV1oZ^O_Trt diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_4.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_4.png index 2891e0b6779406d55f5c8f0995efaa9d6d8aa92e..9992b76198066d0b5d82d7ae04f6ec483105f0fe 100644 GIT binary patch delta 187 zcmV;s07U=b0p|gbG=H8+L_t(IjbpsgY4x9h0>DIxW(EcZ1{Pcr8Qa-V_%l3z5oZ8Q z<9@9J5P>`h<(T1s)gTlDGPbk9H8M_PVECVfklR1w0NfyCLomHCje&sys?qV90|P?_ z!T?`&OfSF#F=IO$!~O#Y5E{_{%nLmG51@n(&RB48a9}t9H8c<(pg0;CVF?N5EL_nA p1L*2dTtG-OHZ_a`o|K1y0RZooH1TcYsX+h$002ovPDHLkV1i!CN6i2L delta 180 zcmV;l089Vp0pJ0UG=G;#L_t(Ijop&L4FVw$MIXkaeVACqP=I|94wkdA8>R}{!3&NH zNOqGwm^e3P{{PJX;7X)$piW1~0O#4jXKBvqruzimL?b+EKXmV8VgR>5i5~&O z1ZhM@3kwie+k|T2sobxl1q;zqAn*c+mo*nWV5Tbo0000 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_5.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_5.png index c83bb391302ceb7241e8754f28a40edd96ca7e9e..203848086c136b5627abfcacbfccf862310af278 100644 GIT binary patch delta 177 zcmV;i08anV0o?(RG=G#yL_t(IjbpsgY4x9h0>DIxW(EcZ1{Pcr8Qa-V_%l3z5oZ8Q z<9@9J5P>`h<(T1s)gVUXFv!@>hS12sz`!_-f#LrRR0|w498e6w41;MyEcqH_i|8U-K^q^&S;8dGQB z^(NLCai7Qf3L;>mL10$o(is4Tz-r$73e5r%VwL_)l{mG*6CL>qL!W=;9|-In#xVY~ SM~7wr0000DIxW(EcZ1{Pcr8Qa-V_%l3z5oZ8Q z<9@9J5P>`h<(T1s)gTlDGPbiJG(rKR1_Q(Y8w?ElXB>bVglq_A7)*oOc+G*q@tOmQ z?Y`=mUVs~rv7L=!|A7N=&FBDT2+#flDB(kKEKqC!BP=1ooGOJYx?liZ9f}JGX~w38 faln)EFfafBr4}(p)fu*+00000NkvXXu0mjf5aveN delta 160 zcmV;R0AK&z0n7oAG=GChL_t(Ijbr?u#qghj0>DIxW(EcZ1{Pcrj@KMe`1`dE5N7~P zBV0osR6GMs910kb!@%*H1Ezv$3=IEoAX$)sss=L*rXdW2xdvvtuR5j|;08Eeb70ti z-~fs@kO9mPp8W?<DIxW(EcZ1{Pcr8Qa-V_%l3z5oZ8Q z<9@9J5P>`h<(T1s)gTlDGPbiJG$H{;4F-n)Hx9rJLN)}`3)2`F7_t}`9IrV*O=VzU zV1Q`$Rmb!KJPZoY0fYb}EFr<1 tg)6#X09_r53kYe(riO9AlkzYy003vsGDBQ0U}^vW002ovPDHLkV1fsLMV|lw delta 178 zcmaFOc#m;{N&Qq$7sn8b-sC^?kA9fn$aKJ^GmQ-h#A1Z{uFC}c_`Q`+Af3TSImTHo z#D>{dW;P>Gc*CtDD-Is`@c$U&4#yK&273*98ygk5PjXB00D%DSzE?Bi8rT;-Hf3-7 z%g(o;g867^fc}R!_6DIxW(EcZ1{Pcr8Qa-V_%l3z5oZ8Q z<9@9J5P>`h<(T1s)gTlDGPbiJG@^n1GY-HFLN)}`3)2`F7_t}`9IrV*O@&Yg4jf?c z!4ll?K+M?A#<2eY)E1a#283n@2Z$KY{sSoCLvbt+GyvIlY%qWkmXKi1!WCUGfUXY3 l1%xzXQ^PpmNqHC;007+ri delta 169 zcmV;a09OCw0o4JJG=GdqL_t(Ijonhg4S*mFJd95#afXgGAPJEpHh8Lh^D8_Gq}^+XCKm4BAR@0*6FiY?HRkiL`~!g< XcIh@QMvnsN00000NkvXXu0mjf#!E?9 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_9.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_9.png index 73745acb05e60ea1129f78cfb73fc4c01ad85d9c..3a12cf680a77816e1f785369613384eae388123e 100644 GIT binary patch delta 199 zcmV;&0672S0rLTnG=Hi|L_t(IjbpsgY4x9h0>DIxW(EcZ1{Pcr8Qa-V_%l3z5oZ8Q z<9@9J5P>`h<(T1s)gTlDGPbiJG@^n1GY-HFLN)}`3)2`F7_t}`9IrV*O+^^stBz?f zJPsHzB_x=$a77mkpsPbkNQ5+FQ^PpmNqHC;007_VH}(DjVaNag002ovPDHLkV1iBy BNVxz2 delta 183 zcmV;o07(Dy0pkIXG=G{&L_t(IjonhQ4Z|=Dql1q9BS5Z@_x2AXL(U0$NO$uJzmqPG zVOcR!AVYz2vm}ZjEw|0sZ~?;=G639q4WC54Nl3|D91lUSvt5eRz5 zT37+hm4%Qkyol#$EtC*_5=2tjXqDd%xJRmfH^dsuiysFcelWU#Bt&*antlnJe#(Ea-~)K-I2)mQMU(&l002ovPDHLkV1hrZP#*vQ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_empty.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/pressure_empty.png index a46db1968f707f61389b84ec631867bb0fb6d106..a78876d6edb79b7ed8ca90dbd050cd74133197de 100644 GIT binary patch delta 176 zcmV;h08jtb0o(zQG=GyxL_t(IjbpsgY4x9h0>DIxW(EcZ1{Pcr8Qa-V_%l3z5oZ8Q z<9@9J5P>`h<(T1s)gTlDGPbiJG@^n1GY-HFLN)}`3)2`F7_t}`9IrV*O+^^stBz?f zJP%tG=H#3L_t(IjjfWg5yCJGML!%z?J+1-r?N_V55XM+Fhe$Ai1d_F z#SEE+CKNz|64}6+U)d-B=kNPo^=&htLhBkc0BmxD!)0ss=l$(B003x`3D~g<`uYi) z1e#=#te7A^ZynPd0d)3EHi4=_RTnT7o5BU`PFD~Sh{!-ZRYuq70{XTY*D=QbBoKL2 z8ktR%#TMR;05AaH**psfAs92W|B;FbUMA1@5s)*?RbAs9gG4pB1nTZE00000NkvXX Hu0mjf`G;3` delta 191 zcmV;w06_ow0qX&fG=HK=L_t(Ijm49}4FVw$MIXijsKXN_Fg;Mk+K*Li4>MKR4jyz} zafgit6XygO{+mxeggQ|fsKbaD;Mi-(H8*=b*>?Z{E4l(_aX}wn!HQx%CXSxo|3^UunOj{Q&AY34&L`tcFcr_fO3#ik&&N=_afjH_t(k#+MxtqeP5TF9` t*6#vhjEz{te@MFy7Lg}hD*XL7-T--5Rn;7Si499cBd?%FPL!=G(Eq7H%^koH*Ax|q2t*`-3CAk3fXm|zA_5UbkW*Z2-T@KS1IE6C_dev) zG}SB6T0<$7K(sN@Q?9PS%y7jcK5))KDFw5b4s7_qnAr!_RxULxqxm=f0J2;@ Uqx7UZApigX07*qoM6N<$f)xm1=>Px# delta 203 zcmV;+05t!G0`~!sG=Hv1L_t(Ijm49@5yK!1K%a9NfH_iW1hj*vaQ4X*-a*;`SDAwi zoF-?7_!rJa)aihyClJlpF>)d05AXT0sH}wG=H;6L_t(Ijir;l5yCJGg&$mwStwPfvP*go!5srILpETD^eLr^ z+GWOYO#=--r&xB#S)F9R&(D&*n}`01hS;}=0iY`_oTr1zZ>PsL002nfA8_<0=WHlsV!(Y5T_$z0632ph}yCm>JBhgPD34At2oVA_5UPNEBatKt!mu?gO+1C_1IM+6XdiA~T0#7ICAT vPC-?>ntbF_fD=mmkfwl56bZLTfB%gSK}%enYRN&?~a(-N=Ig0000n8w02y5I_54pul z+!g|;Dh>!D$tbH+&|Sv}$S$X9u$4&uAyo~QqFmu3_xIoU2Bhvega%a+@Bjb+07*qo IM6N<$f+m4kJOBUy diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_5.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_5.png index 0899d7ecbaa0700f5a164152909d0a83d74e7449..3fd5fbf765a515af654211ac25550f4ad2fcb9bb 100644 GIT binary patch delta 218 zcmV<0044wV0fqvQG=IHGL_t(Ijir+@5`!QRMW2~WYL8(_Z3Sg|50M*q25*o<*r!}7 zTPZyTbsEzoW-x$e+-`yQ_p=Md)YUTw;&cQCIHxvlk4uo>uh0Jk0Bj>)!QMoLc3;6Z zf^Fo-S=NDmSM}Zl;KmX9@J!NywHELF0x#yX8-^I07*qoM6N<$f{>tDy#N3J delta 205 zcmV;;05boE0{H=uG=H#3L_t(Ijm4AA6@wrQ$A9#70O#n*5y%cs;XqE|4#@^`>Ktr9 zFV#LQpnV>iTN3^sB;e9W;zHc6fC28chCF?i>%)E{0I)$ngtHWhPG7+W#RmOy)^y(>4+HM9BbU)7cYO_KKlRwwvq|hnjmP? z71ZmBa}Ha{!dcRRZVk@4sqg?=|4h_@wbm2odH$=5?;;2&>QWA+)IuDJ)fx1CpX>)` zFf=7a-2tGr-VX=~MT88{#(1ktZb3x6d<4u^2lFr{{E(7>zbGVJ1;hmNIQ$#GE&Dgm TGD)R^00000NkvXXu0mjfM5bai delta 203 zcmV;+05t!F0`~!sG=Hv1L_t(Ijm49(5rZ%cMW1sSfH_h*8(2Fq1=)uxBd~)!0#)Yl z22R0ooP#iM6j3M1@87p%yWEkv5VtEZz1xF7I_BbsDs}Su^&=ZV1_Jk4)^!p_ys3>HlD|;am)Y!002ovPDHLk FV1gU2T9*I- diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_7.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_7.png index b0fc60ea39927c65700937d416ee32d63db6f191..e8db8d13aa27605130d7b5b86e9a11e66f269aa6 100644 GIT binary patch delta 214 zcmV;{04e|T0fGXMG=I5CL_t(Ijir-45`r)gMjwu2%`qrrOO=%N9>KyH55O6?frUq~ zx7<{;QgRj>C=@i91d*@G&gOfwKS|P*dCLN=mY4z7p~UgFapLptF%JM>_woi_jTaOJ z0I19M2|L^e&?h81gWf#o^nE7?u+|ReG)>X37OaRfA1@#)Do>PBvErsH=vCKsH18c^ zQ|4qv1%TFiKEP)b5fVTfcMH)qiii`pfcdq8v5fiSA@wGoaS{+RjJ5bTb{};ytJ4+| QHUIzs07*qoM6N<$g4H%%8vpHOW)|dgda|wTwBGz441^@^Loq!i#1vLQx?z|sh$Lk1s zhBRl8&7)55XJ!E*Ot)BTkw*(bwU|#8V0v)QwTk;(K~{{hnLw`&F?C@2!6+ij0X3tl zVgT{w7Mg2R)gn%S|F(ixdH=&h%BGqz%l!Q}-T{r=FYj~)0r>y`002ovPDHLkV1k{m BS9t&c diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_8.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_8.png index 2448ba65e724e51b4730f037f82b9453ec35e858..9a30a70c10ab3b7cd2aaa95eec97477c502bf2e1 100644 GIT binary patch delta 201 zcmV;)05<>X0rdfpG=Ho~L_t(IjkS`!4Z=VSgZ2$n!N=9JAE-2bU z2mz<(*}$}tnX|>pAR(2G3bA|NK1M)n%NA5St)0-hB800000NkvXXu0mjf DYzbNT delta 190 zcmV;v073ut0qOyeG=HH4+HMyj0Ma6uDh|9{|8Rn}DNML5oj_F>-y}3Yd2` zbGF(885Q~5&V63r+{6rVD_v9pVVKVD-UR<;8+gYQtSFH#ebMKxiL@b};N1{lvV9V~}@K>z>%07*qoM6N<$g3An4NdN!< diff --git a/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_empty.png b/src/main/resources/assets/hbm/textures/models/weapons/cryo_cannon/turbine_empty.png index 61183254ec1050227ae17ea7159208630d77a6ff..493a027f27c247f7d769aa6c5b3a9d8068deeeed 100644 GIT binary patch delta 170 zcmV;b09F6a0oDPKG=GgrL_t(IjbpsgY4x9h0>DIxW(EcZ1{Pcr8Qa-V_%l3zk!An` z0|Uc>ko^b)*EnJ|h-fby2-(kYAY?y=%ka9u0ctDUHQ5Xd3~Nx;5bXk(VF&i3x`N_Z z7(xc@-w%mW2S-PgsKgr!FikMsl z From 5bcffadbab4a35002fb9d27b32c627a5e5786978 Mon Sep 17 00:00:00 2001 From: Bob Date: Thu, 13 Jul 2023 20:20:14 +0200 Subject: [PATCH 194/432] new bullet base code --- changelog | 1 + .../hbm/blocks/machine/MachineAssembler.java | 2 + .../java/com/hbm/entity/EntityMappings.java | 1 + .../entity/projectile/EntityBulletBase.java | 10 +- .../entity/projectile/EntityBulletBaseNT.java | 387 +++++++++++++++++- .../entity/projectile/EntityThrowableNT.java | 26 +- .../hbm/entity/projectile/IBulletBase.java | 11 + .../com/hbm/handler/BulletConfiguration.java | 25 +- .../com/hbm/items/weapon/ItemGunBase.java | 3 +- src/main/java/com/hbm/main/ClientProxy.java | 1 + .../entity/projectile/RenderBullet.java | 34 +- 11 files changed, 451 insertions(+), 50 deletions(-) create mode 100644 src/main/java/com/hbm/entity/projectile/IBulletBase.java diff --git a/changelog b/changelog index 5d72f98ae..5e0b3f4d9 100644 --- a/changelog +++ b/changelog @@ -17,3 +17,4 @@ ## Fixed * Fixed issue where mk5 explosions would behave weirdly in their origin chunk, often blowing through bedrock and thick layers of concrete * Fixed saturnite rifle disappearing in third person when scoping +* Fixed cables not visually connecting to assemblers diff --git a/src/main/java/com/hbm/blocks/machine/MachineAssembler.java b/src/main/java/com/hbm/blocks/machine/MachineAssembler.java index a53437db9..eeaa0e63b 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineAssembler.java +++ b/src/main/java/com/hbm/blocks/machine/MachineAssembler.java @@ -1,6 +1,7 @@ package com.hbm.blocks.machine; import com.hbm.blocks.BlockDummyable; +import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityMachineAssembler; import net.minecraft.block.material.Material; @@ -18,6 +19,7 @@ public class MachineAssembler extends BlockDummyable { @Override public TileEntity createNewTileEntity(World world, int meta) { if(meta >= 12) return new TileEntityMachineAssembler(); + if(meta >= 6) return new TileEntityProxyCombo().power(); return null; } diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index 9e3d2919f..49b065651 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -158,6 +158,7 @@ public class EntityMappings { addEntity(EntityGrenadeIFNull.class, "entity_grenade_ironshod_null", 250); addEntity(EntityFallingNuke.class, "entity_falling_bomb", 1000); addEntity(EntityBulletBase.class, "entity_bullet_mk2", 250); + addEntity(EntityBulletBaseNT.class, "entity_bullet_mk3", 250, false); addEntity(EntityMinerRocket.class, "entity_miner_lander", 1000); addEntity(EntityFogFX.class, "entity_nuclear_fog", 1000); addEntity(EntityDuchessGambit.class, "entity_duchessgambit", 1000); diff --git a/src/main/java/com/hbm/entity/projectile/EntityBulletBase.java b/src/main/java/com/hbm/entity/projectile/EntityBulletBase.java index 6ebfd313a..e0c8fdb92 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityBulletBase.java +++ b/src/main/java/com/hbm/entity/projectile/EntityBulletBase.java @@ -47,7 +47,15 @@ import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.Vec3; import net.minecraft.world.World; -public class EntityBulletBase extends Entity implements IProjectile { +public class EntityBulletBase extends Entity implements IProjectile, IBulletBase { + + @Override public double prevX() { return prevRenderX; } + @Override public double prevY() { return prevRenderY; } + @Override public double prevZ() { return prevRenderZ; } + @Override public void prevX(double d) { prevRenderX = d; } + @Override public void prevY(double d) { prevRenderY = d; } + @Override public void prevZ(double d) { prevRenderZ = d; } + @Override public List> nodes() { return this.trailNodes; } private BulletConfiguration config; public EntityLivingBase shooter; diff --git a/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java b/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java index d793af58d..a3ce55d10 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java +++ b/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java @@ -1,30 +1,63 @@ package com.hbm.entity.projectile; +import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.generic.RedBarrel; +import com.hbm.entity.effect.EntityCloudFleijaRainbow; +import com.hbm.entity.effect.EntityEMPBlast; +import com.hbm.entity.logic.EntityNukeExplosionMK3; +import com.hbm.entity.logic.EntityNukeExplosionMK5; +import com.hbm.explosion.ExplosionChaos; +import com.hbm.explosion.ExplosionLarge; +import com.hbm.explosion.ExplosionNukeGeneric; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; import com.hbm.handler.GunConfiguration; -import com.hbm.interfaces.IBulletHitBehavior; -import com.hbm.interfaces.IBulletHurtBehavior; -import com.hbm.interfaces.IBulletImpactBehavior; -import com.hbm.interfaces.IBulletRicochetBehavior; -import com.hbm.interfaces.IBulletUpdateBehavior; import com.hbm.items.weapon.ItemGunBase; import com.hbm.main.MainRegistry; +import com.hbm.packet.AuxParticlePacketNT; +import com.hbm.packet.PacketDispatcher; +import com.hbm.potion.HbmPotion; +import com.hbm.util.ArmorUtil; +import com.hbm.util.BobMathUtil; import com.hbm.util.Tuple.Pair; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import cpw.mods.fml.relauncher.ReflectionHelper; +import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.DamageSource; import net.minecraft.util.MathHelper; import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.Vec3; import net.minecraft.world.World; -public class EntityBulletBaseNT extends EntityThrowableInterp { +/** + * MK2 which features several improvements: + * - uses generic throwable code, reducing boilerplate nonsense + * - uses approach-based interpolation, preventing desyncs and making movement silky-smooth + * - new adjustments in the base class allow for multiple MOP impacts per frame + * - also comes with tons of legacy code to ensure compat (sadly) + * @author hbm + */ +public class EntityBulletBaseNT extends EntityThrowableInterp implements IBulletBase { + + @Override public double prevX() { return prevRenderX; } + @Override public double prevY() { return prevRenderY; } + @Override public double prevZ() { return prevRenderZ; } + @Override public void prevX(double d) { prevRenderX = d; } + @Override public void prevY(double d) { prevRenderY = d; } + @Override public void prevZ(double d) { prevRenderZ = d; } + @Override public List> nodes() { return this.trailNodes; } private BulletConfiguration config; public float overrideDamage; @@ -48,6 +81,8 @@ public class EntityBulletBaseNT extends EntityThrowableInterp { super(world); this.config = BulletConfigSyncingUtil.pullConfig(config); this.dataWatcher.updateObject(18, config); + this.dataWatcher.updateObject(16, (byte)this.config.style); + this.dataWatcher.updateObject(17, (byte)this.config.trail); this.renderDistanceWeight = 10.0D; if(this.config == null) { @@ -55,9 +90,6 @@ public class EntityBulletBaseNT extends EntityThrowableInterp { return; } - this.dataWatcher.updateObject(16, (byte)this.config.style); - this.dataWatcher.updateObject(17, (byte)this.config.trail); - this.setSize(0.5F, 0.5F); } @@ -65,6 +97,8 @@ public class EntityBulletBaseNT extends EntityThrowableInterp { super(world); this.config = BulletConfigSyncingUtil.pullConfig(config); this.dataWatcher.updateObject(18, config); + this.dataWatcher.updateObject(16, (byte)this.config.style); + this.dataWatcher.updateObject(17, (byte)this.config.trail); thrower = entity; ItemStack gun = entity.getHeldItem(); @@ -98,10 +132,8 @@ public class EntityBulletBaseNT extends EntityThrowableInterp { this.renderDistanceWeight = 10.0D; this.setSize(0.5F, 0.5F); + System.out.println("" + this.config.spread); this.setThrowableHeading(this.motionX, this.motionY, this.motionZ, 1.0F, this.config.spread * (offsetShot ? 1F : 0.25F)); - - this.dataWatcher.updateObject(16, (byte)this.config.style); - this.dataWatcher.updateObject(17, (byte)this.config.trail); } public EntityBulletBaseNT(World world, int config, EntityLivingBase entity, EntityLivingBase target, float motion, float deviation) { @@ -109,6 +141,8 @@ public class EntityBulletBaseNT extends EntityThrowableInterp { this.config = BulletConfigSyncingUtil.pullConfig(config); this.dataWatcher.updateObject(18, config); + this.dataWatcher.updateObject(16, (byte)this.config.style); + this.dataWatcher.updateObject(17, (byte)this.config.trail); this.thrower = entity; this.renderDistanceWeight = 10.0D; @@ -129,9 +163,16 @@ public class EntityBulletBaseNT extends EntityThrowableInterp { this.yOffset = 0.0F; this.setThrowableHeading(d0, d1, d2, motion, deviation); } - - this.dataWatcher.updateObject(16, (byte)this.config.style); - this.dataWatcher.updateObject(17, (byte)this.config.trail); + } + + @Override + protected void entityInit() { + //style + this.dataWatcher.addObject(16, Byte.valueOf((byte) 0)); + //trail + this.dataWatcher.addObject(17, Byte.valueOf((byte) 0)); + //bullet config sync + this.dataWatcher.addObject(18, Integer.valueOf((int) 0)); } @Override @@ -176,7 +217,13 @@ public class EntityBulletBaseNT extends EntityThrowableInterp { } if(this.config.bUpdate != null) this.config.bntUpdate.behaveUpdate(this); + + if(this.ticksExisted > config.maxAge) this.setDead(); } + + this.prevPosX = posX; + this.prevPosY = posY; + this.prevPosZ = posZ; super.onUpdate(); @@ -204,6 +251,261 @@ public class EntityBulletBaseNT extends EntityThrowableInterp { if(mop.typeOfHit == mop.typeOfHit.BLOCK) { + boolean hRic = rand.nextInt(100) < config.HBRC; + boolean doesRic = config.doesRicochet || hRic; + + if(!config.isSpectral && !doesRic) { + this.setPosition(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord); + this.onBlockImpact(mop.blockX, mop.blockY, mop.blockZ); + } + + if(doesRic) { + + Vec3 face = null; + + switch(mop.sideHit) { + case 0: face = Vec3.createVectorHelper(0, -1, 0); break; + case 1: face = Vec3.createVectorHelper(0, 1, 0); break; + case 2: face = Vec3.createVectorHelper(0, 0, 1); break; + case 3: face = Vec3.createVectorHelper(0, 0, -1); break; + case 4: face = Vec3.createVectorHelper(-1, 0, 0); break; + case 5: face = Vec3.createVectorHelper(1, 0, 0); break; + } + + if(face != null) { + + Vec3 vel = Vec3.createVectorHelper(motionX, motionY, motionZ); + vel.normalize(); + + boolean lRic = rand.nextInt(100) < config.LBRC; + double angle = Math.abs(BobMathUtil.getCrossAngle(vel, face) - 90); + + if(hRic || (angle <= config.ricochetAngle && lRic)) { + switch(mop.sideHit) { + case 0: + case 1: motionY *= -1; break; + case 2: + case 3: motionZ *= -1; break; + case 4: + case 5: motionX *= -1; break; + } + + if(config.plink == 1) + worldObj.playSoundAtEntity(this, "hbm:weapon.ricochet", 0.25F, 1.0F); + if(config.plink == 2) + worldObj.playSoundAtEntity(this, "hbm:weapon.gBounce", 1.0F, 1.0F); + + onRicochet(mop.blockX, mop.blockY, mop.blockZ); + + } else { + if(!worldObj.isRemote) { + this.setPosition(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord); + onBlockImpact(mop.blockX, mop.blockY, mop.blockZ); + } + } + + this.posX += (mop.hitVec.xCoord - this.posX) * 0.6; + this.posY += (mop.hitVec.yCoord - this.posY) * 0.6; + this.posZ += (mop.hitVec.zCoord - this.posZ) * 0.6; + + this.motionX *= config.bounceMod; + this.motionY *= config.bounceMod; + this.motionZ *= config.bounceMod; + } + } + + } + + if(mop.entityHit != null) { + + DamageSource damagesource = this.config.getDamage(this, this.thrower); + Entity victim = mop.entityHit; + + if(!config.doesPenetrate) { + this.setPosition(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord); + onEntityImpact(victim); + } else { + onEntityHurt(victim); + } + + float damage = rand.nextFloat() * (config.dmgMax - config.dmgMin) + config.dmgMin; + + if(overrideDamage != 0) + damage = overrideDamage; + + boolean headshot = false; + + if(victim instanceof EntityLivingBase && this.config.headshotMult > 1F) { + EntityLivingBase living = (EntityLivingBase) victim; + double head = living.height - living.getEyeHeight(); + + if(!!living.isEntityAlive() && mop.hitVec != null && mop.hitVec.yCoord > (living.posY + living.height - head * 2)) { + damage *= this.config.headshotMult; + headshot = true; + } + } + + if(victim != null && !victim.attackEntityFrom(damagesource, damage)) { + + try { + Field lastDamage = ReflectionHelper.findField(EntityLivingBase.class, "lastDamage", "field_110153_bc"); + float dmg = (float) damage + lastDamage.getFloat(victim); + if(!victim.attackEntityFrom(damagesource, dmg)) headshot = false; + } catch (Exception x) { } + + } + + if(!worldObj.isRemote && headshot) { + if(victim instanceof EntityLivingBase) { + EntityLivingBase living = (EntityLivingBase) victim; + double head = living.height - living.getEyeHeight(); + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "vanillaburst"); + data.setInteger("count", 15); + data.setDouble("motion", 0.1D); + data.setString("mode", "blockdust"); + data.setInteger("block", Block.getIdFromBlock(Blocks.redstone_block)); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, living.posX, living.posY + living.height - head, living.posZ), new TargetPoint(living.dimension, living.posX, living.posY, living.posZ, 50)); + worldObj.playSoundEffect(victim.posX, victim.posY, victim.posZ, "mob.zombie.woodbreak", 1.0F, 0.95F + rand.nextFloat() * 0.2F); + } + } + } + } + + //for when a bullet dies by hitting a block + private void onBlockImpact(int bX, int bY, int bZ) { + + if(config.bntImpact != null) + config.bntImpact.behaveBlockHit(this, bX, bY, bZ); + + if(!worldObj.isRemote && !config.liveAfterImpact) + this.setDead(); + + if(config.incendiary > 0 && !this.worldObj.isRemote) { + if(worldObj.rand.nextInt(3) == 0 && worldObj.getBlock((int)posX, (int)posY, (int)posZ) == Blocks.air) worldObj.setBlock((int)posX, (int)posY, (int)posZ, Blocks.fire); + if(worldObj.rand.nextInt(3) == 0 && worldObj.getBlock((int)posX + 1, (int)posY, (int)posZ) == Blocks.air) worldObj.setBlock((int)posX + 1, (int)posY, (int)posZ, Blocks.fire); + if(worldObj.rand.nextInt(3) == 0 && worldObj.getBlock((int)posX - 1, (int)posY, (int)posZ) == Blocks.air) worldObj.setBlock((int)posX - 1, (int)posY, (int)posZ, Blocks.fire); + if(worldObj.rand.nextInt(3) == 0 && worldObj.getBlock((int)posX, (int)posY + 1, (int)posZ) == Blocks.air) worldObj.setBlock((int)posX, (int)posY + 1, (int)posZ, Blocks.fire); + if(worldObj.rand.nextInt(3) == 0 && worldObj.getBlock((int)posX, (int)posY - 1, (int)posZ) == Blocks.air) worldObj.setBlock((int)posX, (int)posY - 1, (int)posZ, Blocks.fire); + if(worldObj.rand.nextInt(3) == 0 && worldObj.getBlock((int)posX, (int)posY, (int)posZ + 1) == Blocks.air) worldObj.setBlock((int)posX, (int)posY, (int)posZ + 1, Blocks.fire); + if(worldObj.rand.nextInt(3) == 0 && worldObj.getBlock((int)posX, (int)posY, (int)posZ - 1) == Blocks.air) worldObj.setBlock((int)posX, (int)posY, (int)posZ - 1, Blocks.fire); + } + + if(config.emp > 0) + ExplosionNukeGeneric.empBlast(this.worldObj, (int)(this.posX + 0.5D), (int)(this.posY + 0.5D), (int)(this.posZ + 0.5D), config.emp); + + if(config.emp > 3) { + if (!this.worldObj.isRemote) { + + EntityEMPBlast cloud = new EntityEMPBlast(this.worldObj, config.emp); + cloud.posX = this.posX; + cloud.posY = this.posY + 0.5F; + cloud.posZ = this.posZ; + + this.worldObj.spawnEntityInWorld(cloud); + } + } + + if(config.jolt > 0 && !worldObj.isRemote) + ExplosionLarge.jolt(worldObj, posX, posY, posZ, config.jolt, 150, 0.25); + + if(config.explosive > 0 && !worldObj.isRemote) + worldObj.newExplosion(this, posX, posY, posZ, config.explosive, config.incendiary > 0, config.blockDamage); + + if(config.shrapnel > 0 && !worldObj.isRemote) + ExplosionLarge.spawnShrapnels(worldObj, posX, posY, posZ, config.shrapnel); + + if(config.chlorine > 0 && !worldObj.isRemote) { + ExplosionChaos.spawnChlorine(worldObj, posX, posY, posZ, config.chlorine, 1.5, 0); + worldObj.playSoundEffect((double)(posX + 0.5F), (double)(posY + 0.5F), (double)(posZ + 0.5F), "random.fizz", 5.0F, 2.6F + (rand.nextFloat() - rand.nextFloat()) * 0.8F); + } + + if(config.rainbow > 0 && !worldObj.isRemote) { + EntityNukeExplosionMK3 ex = EntityNukeExplosionMK3.statFacFleija(worldObj, posX, posY, posZ, config.rainbow); + if(!ex.isDead) { + this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, "random.explode", 100.0f, this.worldObj.rand.nextFloat() * 0.1F + 0.9F); + worldObj.spawnEntityInWorld(ex); + + EntityCloudFleijaRainbow cloud = new EntityCloudFleijaRainbow(this.worldObj, config.rainbow); + cloud.posX = this.posX; + cloud.posY = this.posY; + cloud.posZ = this.posZ; + this.worldObj.spawnEntityInWorld(cloud); + } + } + + if(config.nuke > 0 && !worldObj.isRemote) { + worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, config.nuke, posX, posY, posZ).mute()); + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "muke"); + if(MainRegistry.polaroidID == 11 || rand.nextInt(100) == 0) data.setBoolean("balefire", true); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY + 0.5, posZ), new TargetPoint(dimension, posX, posY, posZ, 250)); + worldObj.playSoundEffect(posX, posY, posZ, "hbm:weapon.mukeExplosion", 15.0F, 1.0F); + } + + if(config.destroysBlocks && !worldObj.isRemote) { + if(worldObj.getBlock(bX, bY, bZ).getBlockHardness(worldObj, bX, bY, bZ) <= 120) + worldObj.func_147480_a(bX, bY, bZ, false); + } else if(config.doesBreakGlass && !worldObj.isRemote) { + if(worldObj.getBlock(bX, bY, bZ) == Blocks.glass || + worldObj.getBlock(bX, bY, bZ) == Blocks.glass_pane || + worldObj.getBlock(bX, bY, bZ) == Blocks.stained_glass || + worldObj.getBlock(bX, bY, bZ) == Blocks.stained_glass_pane) + worldObj.func_147480_a(bX, bY, bZ, false); + + if(worldObj.getBlock(bX, bY, bZ) == ModBlocks.red_barrel) + ((RedBarrel) ModBlocks.red_barrel).explode(worldObj, bX, bY, bZ); + } + } + + //for when a bullet dies by hitting a block + private void onRicochet(int bX, int bY, int bZ) { + + if(config.bntRicochet != null) + config.bntRicochet.behaveBlockRicochet(this, bX, bY, bZ); + } + + //for when a bullet dies by hitting an entity + private void onEntityImpact(Entity e) { + onEntityHurt(e); + onBlockImpact(-1, -1, -1); + + if(config.bntHit != null) + config.bntHit.behaveEntityHit(this, e); + } + + //for when a bullet hurts an entity, not necessarily dying + private void onEntityHurt(Entity e) { + + if(config.bntHurt != null) + config.bntHurt.behaveEntityHurt(this, e); + + if(config.incendiary > 0 && !worldObj.isRemote) { + e.setFire(config.incendiary); + } + + if(config.leadChance > 0 && !worldObj.isRemote && worldObj.rand.nextInt(100) < config.leadChance && e instanceof EntityLivingBase) { + ((EntityLivingBase)e).addPotionEffect(new PotionEffect(HbmPotion.lead.id, 10 * 20, 0)); + } + + if(e instanceof EntityLivingBase && config.effects != null && !config.effects.isEmpty() && !worldObj.isRemote) { + + for(PotionEffect effect : config.effects) { + ((EntityLivingBase)e).addPotionEffect(new PotionEffect(effect)); + } + } + + if(config.instakill && e instanceof EntityLivingBase && !worldObj.isRemote) { + + if(!(e instanceof EntityPlayer && ((EntityPlayer)e).capabilities.isCreativeMode)) + ((EntityLivingBase)e).setHealth(0.0F); + } + + if(config.caustic > 0 && e instanceof EntityPlayer){ + ArmorUtil.damageSuit((EntityPlayer)e, 0, config.caustic); + ArmorUtil.damageSuit((EntityPlayer)e, 1, config.caustic); + ArmorUtil.damageSuit((EntityPlayer)e, 2, config.caustic); + ArmorUtil.damageSuit((EntityPlayer)e, 3, config.caustic); } } @@ -216,12 +518,55 @@ public class EntityBulletBaseNT extends EntityThrowableInterp { public boolean isSpectral() { return this.config.isSpectral; } - - public IBulletHurtBehavior bHurt; - public IBulletHitBehavior bHit; - public IBulletRicochetBehavior bRicochet; - public IBulletImpactBehavior bImpact; - public IBulletUpdateBehavior bUpdate; + + @Override + protected double headingForceMult() { + return 1D; + } + + @Override + public double getGravityVelocity() { + return this.config.gravity; + } + + @Override + protected double motionMult() { + return this.config.velocity; + } + + @Override + protected float getAirDrag() { + return 1F; + } + + @Override + protected float getWaterDrag() { + return 1F; + } + + @Override + public void readEntityFromNBT(NBTTagCompound nbt) { + super.readEntityFromNBT(nbt); + int cfg = nbt.getInteger("config"); + this.config = BulletConfigSyncingUtil.pullConfig(cfg); + this.dataWatcher.updateObject(16, (byte)this.config.style); + this.dataWatcher.updateObject(17, (byte)this.config.trail); + + if(this.config == null) { + this.setDead(); + return; + } + + this.overrideDamage = nbt.getFloat("damage"); + this.dataWatcher.updateObject(18, cfg); + } + + @Override + public void writeEntityToNBT(NBTTagCompound nbt) { + super.writeEntityToNBT(nbt); + nbt.setInteger("config", dataWatcher.getWatchableObjectInt(18)); + nbt.setFloat("damage", this.overrideDamage); + } public interface IBulletHurtBehaviorNT { public void behaveEntityHurt(EntityBulletBaseNT bullet, Entity hit); } public interface IBulletHitBehaviorNT { public void behaveEntityHit(EntityBulletBaseNT bullet, Entity hit); } diff --git a/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java b/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java index 8136defa8..ca5a551b2 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java +++ b/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java @@ -81,19 +81,27 @@ public abstract class EntityThrowableNT extends Entity implements IProjectile { return 1.5F; } + protected double headingForceMult() { + return 0.0075D; + } + protected float throwAngle() { return 0.0F; } + protected double motionMult() { + return 1.0D; + } + @Override public void setThrowableHeading(double motionX, double motionY, double motionZ, float velocity, float inaccuracy) { float throwLen = MathHelper.sqrt_double(motionX * motionX + motionY * motionY + motionZ * motionZ); motionX /= (double) throwLen; motionY /= (double) throwLen; motionZ /= (double) throwLen; - motionX += this.rand.nextGaussian() * 0.0075D * (double) inaccuracy; - motionY += this.rand.nextGaussian() * 0.0075D * (double) inaccuracy; - motionZ += this.rand.nextGaussian() * 0.0075D * (double) inaccuracy; + motionX += this.rand.nextGaussian() * headingForceMult() * (double) inaccuracy; + motionY += this.rand.nextGaussian() * headingForceMult() * (double) inaccuracy; + motionZ += this.rand.nextGaussian() * headingForceMult() * (double) inaccuracy; motionX *= (double) velocity; motionY *= (double) velocity; motionZ *= (double) velocity; @@ -155,11 +163,11 @@ public abstract class EntityThrowableNT extends Entity implements IProjectile { ++this.ticksInAir; Vec3 pos = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); - Vec3 nextPos = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ); + Vec3 nextPos = Vec3.createVectorHelper(this.posX + this.motionX * motionMult(), this.posY + this.motionY * motionMult(), this.posZ + this.motionZ * motionMult()); MovingObjectPosition mop = null; if(!this.isSpectral()) mop = this.worldObj.rayTraceBlocks(pos, nextPos); pos = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); - nextPos = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ); + nextPos = Vec3.createVectorHelper(this.posX + this.motionX * motionMult(), this.posY + this.motionY * motionMult(), this.posZ + this.motionZ * motionMult()); if(mop != null) { nextPos = Vec3.createVectorHelper(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord); @@ -168,7 +176,7 @@ public abstract class EntityThrowableNT extends Entity implements IProjectile { if(!this.worldObj.isRemote) { Entity hitEntity = null; - List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox.addCoord(this.motionX, this.motionY, this.motionZ).expand(1.0D, 1.0D, 1.0D)); + List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox.addCoord(this.motionX * motionMult(), this.motionY * motionMult(), this.motionZ * motionMult()).expand(1.0D, 1.0D, 1.0D)); double nearest = 0.0D; EntityLivingBase thrower = this.getThrower(); @@ -212,9 +220,9 @@ public abstract class EntityThrowableNT extends Entity implements IProjectile { } } - this.posX += this.motionX; - this.posY += this.motionY; - this.posZ += this.motionZ; + this.posX += this.motionX * motionMult(); + this.posY += this.motionY * motionMult(); + this.posZ += this.motionZ * motionMult(); float hyp = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); this.rotationYaw = (float) (Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); diff --git a/src/main/java/com/hbm/entity/projectile/IBulletBase.java b/src/main/java/com/hbm/entity/projectile/IBulletBase.java new file mode 100644 index 000000000..635ce9a09 --- /dev/null +++ b/src/main/java/com/hbm/entity/projectile/IBulletBase.java @@ -0,0 +1,11 @@ +package com.hbm.entity.projectile; + +import java.util.List; +import com.hbm.util.Tuple.Pair; +import net.minecraft.util.Vec3; + +public interface IBulletBase { + public double prevX(); public double prevY(); public double prevZ(); + public void prevX(double d); public void prevY(double d); public void prevZ(double d); + public List> nodes(); +} diff --git a/src/main/java/com/hbm/handler/BulletConfiguration.java b/src/main/java/com/hbm/handler/BulletConfiguration.java index 53ebc9546..fe3745bc5 100644 --- a/src/main/java/com/hbm/handler/BulletConfiguration.java +++ b/src/main/java/com/hbm/handler/BulletConfiguration.java @@ -3,6 +3,7 @@ package com.hbm.handler; import java.util.List; import com.hbm.entity.projectile.EntityBulletBase; +import com.hbm.entity.projectile.EntityBulletBaseNT; import com.hbm.entity.projectile.EntityBulletBaseNT.*; import com.hbm.handler.guncfg.BulletConfigFactory; import com.hbm.interfaces.IBulletHitBehavior; @@ -10,7 +11,6 @@ import com.hbm.interfaces.IBulletHurtBehavior; import com.hbm.interfaces.IBulletImpactBehavior; import com.hbm.interfaces.IBulletRicochetBehavior; import com.hbm.interfaces.IBulletUpdateBehavior; -import com.hbm.interfaces.Untested; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.lib.ModDamageSource; import com.hbm.main.MainRegistry; @@ -219,7 +219,6 @@ public class BulletConfiguration implements Cloneable { return this; } - @Untested public DamageSource getDamage(EntityBulletBase bullet, EntityLivingBase shooter) { DamageSource dmg; @@ -242,6 +241,28 @@ public class BulletConfiguration implements Cloneable { return dmg; } + public DamageSource getDamage(EntityBulletBaseNT bullet, EntityLivingBase shooter) { + + DamageSource dmg; + + String unloc = damageType; + + if(unloc.equals(ModDamageSource.s_zomg_prefix)) + unloc += (bullet.worldObj.rand.nextInt(5) + 1); //pain + + if(shooter != null) + dmg = new EntityDamageSourceIndirect(unloc, bullet, shooter); + else + dmg = new DamageSource(unloc); + + if(this.dmgProj) dmg.setProjectile(); + if(this.dmgFire) dmg.setFireDamage(); + if(this.dmgExplosion) dmg.setExplosion(); + if(this.dmgBypass) dmg.setDamageBypassesArmor(); + + return dmg; + } + @Override public BulletConfiguration clone() { try { diff --git a/src/main/java/com/hbm/items/weapon/ItemGunBase.java b/src/main/java/com/hbm/items/weapon/ItemGunBase.java index c6b2625ef..930366673 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGunBase.java +++ b/src/main/java/com/hbm/items/weapon/ItemGunBase.java @@ -6,6 +6,7 @@ import org.lwjgl.input.Mouse; import com.hbm.config.GeneralConfig; import com.hbm.entity.projectile.EntityBulletBase; +import com.hbm.entity.projectile.EntityBulletBaseNT; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; import com.hbm.handler.CasingEjector; @@ -273,7 +274,7 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu //spawns the actual projectile, can be overridden to change projectile entity protected void spawnProjectile(World world, EntityPlayer player, ItemStack stack, int config) { - EntityBulletBase bullet = new EntityBulletBase(world, config, player); + EntityBulletBaseNT bullet = new EntityBulletBaseNT(world, config, player); world.spawnEntityInWorld(bullet); if(player instanceof EntityPlayerMP) diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index a3b34fa22..062c70bda 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -548,6 +548,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntitySchrab.class, new RenderFlare()); RenderingRegistry.registerEntityRenderingHandler(EntityBullet.class, new RenderRocket()); RenderingRegistry.registerEntityRenderingHandler(EntityBulletBase.class, new RenderBullet()); + RenderingRegistry.registerEntityRenderingHandler(EntityBulletBaseNT.class, new RenderBullet()); RenderingRegistry.registerEntityRenderingHandler(EntityRainbow.class, new RenderRainbow()); RenderingRegistry.registerEntityRenderingHandler(EntityNightmareBlast.class, new RenderOminousBullet()); RenderingRegistry.registerEntityRenderingHandler(EntityFire.class, new RenderFireball(ModItems.energy_ball)); diff --git a/src/main/java/com/hbm/render/entity/projectile/RenderBullet.java b/src/main/java/com/hbm/render/entity/projectile/RenderBullet.java index 0c8f15481..d8c59d98f 100644 --- a/src/main/java/com/hbm/render/entity/projectile/RenderBullet.java +++ b/src/main/java/com/hbm/render/entity/projectile/RenderBullet.java @@ -4,7 +4,7 @@ import java.util.Random; import org.lwjgl.opengl.GL11; -import com.hbm.entity.projectile.EntityBulletBase; +import com.hbm.entity.projectile.IBulletBase; import com.hbm.handler.BulletConfiguration; import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; @@ -71,7 +71,7 @@ public class RenderBullet extends Render { case BulletConfiguration.STYLE_APDS: renderAPDS(); break; case BulletConfiguration.STYLE_BLADE: renderBlade(); break; case BulletConfiguration.STYLE_BARREL: renderNuke(3); break; - case BulletConfiguration.STYLE_TAU: renderTau((EntityBulletBase) bullet, trail, f1); break; + case BulletConfiguration.STYLE_TAU: renderTau(bullet, trail, f1); break; default: renderBullet(trail); break; } @@ -482,7 +482,7 @@ public class RenderBullet extends Render { GL11.glPopMatrix(); } - private void renderTau(EntityBulletBase bullet, int trail, float interp) { + private void renderTau(Entity bullet, int trail, float interp) { Tessellator tessellator = Tessellator.instance; @@ -492,15 +492,17 @@ public class RenderBullet extends Render { double pY = bullet.prevPosY + (bullet.posY - bullet.prevPosY) * interp; double pZ = bullet.prevPosZ + (bullet.posZ - bullet.prevPosZ) * interp; - if(bullet.prevRenderY == 0) { - bullet.prevRenderX = pX; - bullet.prevRenderY = pY; - bullet.prevRenderZ = pZ; + IBulletBase iface = (IBulletBase) bullet; + + if(iface.prevY() == 0) { + iface.prevX(pX); + iface.prevY(pY); + iface.prevZ(pZ); } - double deltaX = bullet.prevRenderX - pX; - double deltaY = bullet.prevRenderY - pY; - double deltaZ = bullet.prevRenderZ - pZ; + double deltaX = iface.prevX() - pX; + double deltaY = iface.prevY() - pY; + double deltaZ = iface.prevZ() - pZ; EntityPlayer player = Minecraft.getMinecraft().thePlayer; double dX = player.lastTickPosX + (player.posX - player.lastTickPosX) * (double)interp; @@ -521,7 +523,7 @@ public class RenderBullet extends Render { b = 1; } - for(Pair pair : bullet.trailNodes) { + for(Pair pair : iface.nodes()) { Vec3 pos = pair.getKey(); double mult = 1D; @@ -533,8 +535,8 @@ public class RenderBullet extends Render { tessellator.startDrawingQuads(); tessellator.setNormal(0F, 1F, 0F); - for(int i = 0; i < bullet.trailNodes.size() - 1; i++) { - final Pair node = bullet.trailNodes.get(i), past = bullet.trailNodes.get(i + 1); + for(int i = 0; i < iface.nodes().size() - 1; i++) { + final Pair node = iface.nodes().get(i), past = iface.nodes().get(i + 1); final Vec3 nodeLoc = node.getKey(), pastLoc = past.getKey(); float nodeAlpha = node.getValue().floatValue(); float pastAlpha = past.getValue().floatValue(); @@ -582,9 +584,9 @@ public class RenderBullet extends Render { GL11.glDisable(GL11.GL_BLEND); GL11.glAlphaFunc(GL11.GL_GEQUAL, 0.1F); - bullet.prevRenderX = pX; - bullet.prevRenderY = pY; - bullet.prevRenderZ = pZ; + iface.prevX(pX); + iface.prevY(pY); + iface.prevZ(pZ); } @Override From 424d6c3486d0c5ffb4d7e9f7d951c026ba48f7fb Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Thu, 13 Jul 2023 23:39:04 -0500 Subject: [PATCH 195/432] RBMK redstone column that doesn't work (will work eventually) --- src/main/java/com/hbm/blocks/ModBlocks.java | 3 + .../hbm/blocks/machine/rbmk/RBMKRedstone.java | 33 ++++ .../com/hbm/inventory/gui/GUIRBMKConsole.java | 20 +- .../hbm/inventory/gui/GUIRBMKRedstone.java | 168 ++++++++++++++++ .../java/com/hbm/tileentity/TileMappings.java | 1 + .../machine/rbmk/TileEntityRBMKConsole.java | 22 ++- .../machine/rbmk/TileEntityRBMKRedstone.java | 182 ++++++++++++++++++ .../machine/rbmk/TileEntityRBMKRod.java | 6 + src/main/resources/assets/hbm/lang/en_US.lang | 5 + .../textures/blocks/rbmk/rbmk_redstone.png | Bin 0 -> 1294 bytes .../gui/reactors/gui_rbmk_console.png | Bin 6569 -> 6917 bytes .../gui/reactors/gui_rbmk_redstone.png | Bin 0 -> 3617 bytes 12 files changed, 430 insertions(+), 10 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/machine/rbmk/RBMKRedstone.java create mode 100644 src/main/java/com/hbm/inventory/gui/GUIRBMKRedstone.java create mode 100644 src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRedstone.java create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_redstone.png create mode 100644 src/main/resources/assets/hbm/textures/gui/reactors/gui_rbmk_redstone.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 45c16a9e1..971f165b0 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1098,6 +1098,7 @@ public class ModBlocks { public static Block rbmk_storage; public static Block rbmk_cooler; public static Block rbmk_heater; + public static Block rbmk_redstone; public static Block rbmk_console; public static Block rbmk_crane_console; public static Block rbmk_loader; @@ -2146,6 +2147,7 @@ public class ModBlocks { rbmk_storage = new RBMKStorage().setBlockName("rbmk_storage").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_storage"); rbmk_cooler = new RBMKCooler().setBlockName("rbmk_cooler").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_cooler"); rbmk_heater = new RBMKHeater().setBlockName("rbmk_heater").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_heater"); + rbmk_redstone = new RBMKRedstone().setBlockName("rbmk_redstone").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_redstone"); rbmk_console = new RBMKConsole().setBlockName("rbmk_console").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_console"); rbmk_crane_console = new RBMKCraneConsole().setBlockName("rbmk_crane_console").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_crane_console"); rbmk_loader = new RBMKLoader(Material.iron).setBlockName("rbmk_loader").setCreativeTab(MainRegistry.machineTab).setHardness(50.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":rbmk_loader"); @@ -3143,6 +3145,7 @@ public class ModBlocks { GameRegistry.registerBlock(rbmk_storage, rbmk_storage.getUnlocalizedName()); GameRegistry.registerBlock(rbmk_cooler, rbmk_cooler.getUnlocalizedName()); GameRegistry.registerBlock(rbmk_heater, rbmk_heater.getUnlocalizedName()); + GameRegistry.registerBlock(rbmk_redstone, rbmk_redstone.getUnlocalizedName()); GameRegistry.registerBlock(rbmk_console, rbmk_console.getUnlocalizedName()); GameRegistry.registerBlock(rbmk_crane_console, rbmk_crane_console.getUnlocalizedName()); GameRegistry.registerBlock(rbmk_loader, rbmk_loader.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKRedstone.java b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKRedstone.java new file mode 100644 index 000000000..5ee4f4480 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKRedstone.java @@ -0,0 +1,33 @@ +package com.hbm.blocks.machine.rbmk; + +import com.hbm.tileentity.machine.rbmk.TileEntityRBMKRedstone; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; + +public class RBMKRedstone extends RBMKBase { + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + + if(meta >= this.offset) + return new TileEntityRBMKRedstone(); + return null; + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + return openInv(world, x, y, z, player); + } + + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + return super.getCollisionBoundingBoxFromPool(world, x, y, z); + } + + @Override + public int getRenderType(){ + return this.renderIDPassive; + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java b/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java index 85be6afb7..c94647188 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java +++ b/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java @@ -305,7 +305,23 @@ public class GUIRBMKConsole extends GuiScreen { case REFLECTOR: break; case OUTGASSER: break; case BREEDER: break; - + + case REDSTONE: + + switch(col.data.getInteger("mode")) { + case 2: // slow flux + drawTexturedModalRect(guiLeft + x + 3, guiTop + y + size - 2, 142, 183 - 8, 3, 8); + break; + case 3: // fast flux + drawTexturedModalRect(guiLeft + x + 3, guiTop + y + size - 2, 142, 193 - 8, 3, 8); + break; + } + + if(col.data.getBoolean("active")) { //set active texture afterwards or it will override + drawTexturedModalRect(guiLeft + x + 4, guiTop + y + size - 2, 145, 204, 2, 8); + } + break; + case CONTROL: int color = col.data.getShort("color"); if(color > -1) @@ -341,7 +357,7 @@ public class GUIRBMKConsole extends GuiScreen { drawTexturedModalRect(guiLeft + x + 4, guiTop + y + 5, 44, 187, 2, 2); if(col.data.getShort("type") == Fluids.ULTRAHOTSTEAM.ordinal()) drawTexturedModalRect(guiLeft + x + 4, guiTop + y + 7, 44, 189, 2, 2); - + break; case HEATEX: diff --git a/src/main/java/com/hbm/inventory/gui/GUIRBMKRedstone.java b/src/main/java/com/hbm/inventory/gui/GUIRBMKRedstone.java new file mode 100644 index 000000000..913438e87 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIRBMKRedstone.java @@ -0,0 +1,168 @@ +package com.hbm.inventory.gui; + +import org.apache.commons.lang3.math.NumberUtils; +import org.lwjgl.input.Keyboard; +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerRBMKGeneric; +import com.hbm.lib.RefStrings; +import com.hbm.packet.NBTControlPacket; +import com.hbm.packet.PacketDispatcher; +import com.hbm.tileentity.machine.rbmk.TileEntityRBMKRedstone; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.gui.GuiTextField; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ResourceLocation; + +public class GUIRBMKRedstone extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/reactors/gui_rbmk_redstone.png"); + private TileEntityRBMKRedstone rod; + + private GuiTextField[] fields; + + public GUIRBMKRedstone(InventoryPlayer invPlayer, TileEntityRBMKRedstone tile) { + super(new ContainerRBMKGeneric(invPlayer)); + rod = tile; + + fields = new GuiTextField[2]; + + this.xSize = 176; + this.ySize = 186; + } + + public void initGui() { + super.initGui(); + + Keyboard.enableRepeatEvents(true); + this.fields[0] = new GuiTextField(this.fontRendererObj, guiLeft + 56, guiTop + 25, 94, 18); + this.fields[1] = new GuiTextField(this.fontRendererObj, guiLeft + 29, guiTop + 60, 28, 10); + for(int i = 0; i < 2; i++) { + this.fields[i].setTextColor(0x00ff00); + this.fields[i].setDisabledTextColour(0x00ff00); + this.fields[i].setEnableBackgroundDrawing(false); + this.fields[i].setMaxStringLength(4); + this.fields[i].setText(String.valueOf(rod.threshold)); + if(i == 0) { + this.fields[i].setText(rod.channel == null ? "" : rod.channel); + this.fields[i].setMaxStringLength(10); + } + } + } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + String value = ""; + switch(rod.mode) { + case 1: + value = "°C"; + break; + case 2: + case 3: + value = "/cm²/s"; + break; + } + + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 29, guiTop + 49, 28, 10, mouseX, mouseY, "Value: " + (rod.value) + value); + + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 69, guiTop + 56, 25, 25, mouseX, mouseY, "Monitor slow flux"); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 96, guiTop + 56, 25, 25, mouseX, mouseY, "Monitor fast flux"); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 123, guiTop + 56, 25, 25, mouseX, mouseY, "Monitor heat"); + + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 29, guiTop + 60, 28, 10, mouseX, mouseY, "Redstone Threshold"); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 29, guiTop + 71, 28, 10, mouseX, mouseY, "Save threshold"); + } + + @Override + protected void mouseClicked(int x, int y, int i) { + super.mouseClicked(x, y, i); + + for(int j = 0; j < 2; j++) { + this.fields[j].mouseClicked(x, y, i); + } + + if(guiLeft + 29 <= x && guiLeft + 29 + 28 > x && guiTop + 71 < y && guiTop + 71 + 10 >= y) { + + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + if(NumberUtils.isNumber(fields[1].getText())) { + data.setString("Ch_set", fields[0].getText() + ""); + data.setInteger("Threshold", Integer.parseInt(fields[1].getText())); + } else { + fields[0].setText(""); + fields[1].setText("0"); + } + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, rod.xCoord, rod.yCoord, rod.zCoord)); + } + for(int k = 0; k < 3; k++) { // button for each mode + if(guiLeft + 68 + k * 27 <= x && guiLeft + 68 + (k + 1) * 27 > x && guiTop + 55 < y && guiTop + 55 + 27 >= y) { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + if(k == 0) + data.setInteger("Mode", 2); + if(k == 1) + data.setInteger("Mode", 3); + if(k == 2) + data.setInteger("Mode", 1); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, rod.xCoord, rod.yCoord, rod.zCoord)); + } + } + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.rod.hasCustomInventoryName() ? this.rod.getInventoryName() : I18n.format(this.rod.getInventoryName()); + + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + switch(rod.mode) { + case 1: + drawTexturedModalRect(guiLeft + 77, guiTop + 46, 180, 13, 9, 9); + drawTexturedModalRect(guiLeft + 104, guiTop + 46, 180, 13, 9, 9); + drawTexturedModalRect(guiLeft + 131, guiTop + 46, 180, 3, 9, 9); + break; + case 2: + drawTexturedModalRect(guiLeft + 77, guiTop + 46, 180, 13, 9, 9); + drawTexturedModalRect(guiLeft + 104, guiTop + 46, 180, 3, 9, 9); + drawTexturedModalRect(guiLeft + 131, guiTop + 46, 180, 13, 9, 9); + break; + case 3: + drawTexturedModalRect(guiLeft + 77, guiTop + 46, 180, 3, 9, 9); + drawTexturedModalRect(guiLeft + 104, guiTop + 46, 180, 13, 9, 9); + drawTexturedModalRect(guiLeft + 131, guiTop + 46, 180, 13, 9, 9); + break; + } + this.fields[0].drawTextBox(); + this.fields[1].drawTextBox(); + this.fontRendererObj.drawString(rod.trunc_v, 30, 50, 0xFF7F7F); + } + + @Override + protected void keyTyped(char c, int i) { + + for(int j = 0; j < 2; j++) { + if(this.fields[j].textboxKeyTyped(c, i)) + return; + } + + super.keyTyped(c, i); + } + + @Override + public void onGuiClosed() { + Keyboard.enableRepeatEvents(false); + } +} diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 0210ff1ad..dd348ddce 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -342,6 +342,7 @@ public class TileMappings { put(TileEntityRBMKAbsorber.class, "tileentity_rbmk_absorber"); put(TileEntityRBMKModerator.class, "tileentity_rbmk_moderator"); put(TileEntityRBMKOutgasser.class, "tileentity_rbmk_outgasser"); + put(TileEntityRBMKRedstone.class, "tileentity_rbmk_redstone"); put(TileEntityRBMKCooler.class, "tileentity_rbmk_cooler"); put(TileEntityRBMKHeater.class, "tileentity_rbmk_heater"); put(TileEntityRBMKStorage.class, "tileentity_rbmk_storage"); diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java index 4ce54e100..0e1d6baca 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java @@ -384,19 +384,24 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon stats.add(EnumChatFormatting.WHITE + I18nUtil.resolveKey("rbmk.boiler.steam", this.data.getInteger("steam"), this.data.getInteger("maxSteam"))); stats.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("rbmk.boiler.type", I18nUtil.resolveKey(Fluids.fromID(this.data.getShort("type")).getUnlocalizedName()))); break; + case REDSTONE: + stats.add(EnumChatFormatting.BLUE + I18nUtil.resolveKey("rbmk.redstone.active", Boolean.toString(data.getBoolean("active")))); + stats.add(EnumChatFormatting.WHITE + I18nUtil.resolveKey("rbmk.redstone.value", this.data.getString("value"), this.data.getInteger("threshold"))); + stats.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("rbmk.redstone.channel", this.data.getString("channel"))); + break; case CONTROL: - + if(this.data.hasKey("color")) { short col = this.data.getShort("color"); - + if(col >= 0 && col < RBMKColor.values().length) stats.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("rbmk.control." + RBMKColor.values()[col].name().toLowerCase(Locale.US))); } - + case CONTROL_AUTO: stats.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("rbmk.control.level", ((int)((this.data.getDouble("level") * 100D))) + "%")); break; - + case HEATEX: stats.add(EnumChatFormatting.BLUE + I18nUtil.resolveKey(I18nUtil.resolveKey(Fluids.fromID(this.data.getShort("type")).getUnlocalizedName()) + " " + this.data.getInteger("water") + "/" + this.data.getInteger("maxWater") + "mB")); @@ -404,7 +409,7 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon this.data.getInteger("steam") + "/" + this.data.getInteger("maxSteam") + "mB")); break; } - + if(data.getBoolean("moderated")) stats.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("rbmk.moderated")); @@ -426,9 +431,10 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon BREEDER(100), STORAGE(110), COOLER(120), - HEATEX(130); - - public int offset; + HEATEX(130), + REDSTONE(140); + + public int offset; private ColumnType(int offset) { this.offset = offset; diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRedstone.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRedstone.java new file mode 100644 index 000000000..c21948360 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRedstone.java @@ -0,0 +1,182 @@ +package com.hbm.tileentity.machine.rbmk; + +import com.hbm.entity.projectile.EntityRBMKDebris.DebrisType; +import com.hbm.interfaces.IControlReceiver; +import com.hbm.inventory.container.ContainerRBMKGeneric; +import com.hbm.inventory.gui.GUIRBMKRedstone; +import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole.ColumnType; +import com.hbm.tileentity.network.RTTYSystem; +import cpw.mods.fml.common.Optional; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import li.cil.oc.api.network.SimpleComponent; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; + +@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) +public class TileEntityRBMKRedstone extends TileEntityRBMKSlottedBase implements IControlReceiver, SimpleComponent { + + + public int mode = 1; + public String channel = ""; + public int threshold = 0; + public boolean active = false; + public double sflux = 0.0; + public double fflux = 0.0; + public double value = 0.0; + public String trunc_v = ""; + + @Override + public String getName() { + return "container.rbmkRedstone"; + } + + public TileEntityRBMKRedstone() { + super(0); + } + + @Override + public void updateEntity() { + if (!worldObj.isRemote) { + + switch(mode) { + // mode = 1: Heat + // mode = 2: Slow Flux + // mode = 3: Fast Flux + case (1): + value = heat; + active = value > threshold; + break; + case (2): + value = sflux; + active = value > threshold; + break; + case (3): + value = fflux; + active = value > threshold; + break; + } + if(!channel.isEmpty()) { + if(active) { + RTTYSystem.broadcast(worldObj, channel, 15); + } else { + RTTYSystem.broadcast(worldObj, channel, 0); + } + } + } + super.updateEntity(); + } + + public void processFlux(Double flux, IRBMKFluxReceiver.NType stream) { + if(stream == IRBMKFluxReceiver.NType.SLOW) { + sflux = flux; + } else if (stream == IRBMKFluxReceiver.NType.FAST) { + fflux = flux; + } + } + + @Override + public boolean hasPermission(EntityPlayer player) {return true;} + + @Override + public void receiveControl(NBTTagCompound data) { + + if(data.hasKey("Ch_set")) { + channel = data.getString("Ch_set"); + threshold = data.getInteger("Threshold"); + } else if (data.hasKey("Mode")) { + int newMode = data.getInteger("Mode") % 4; + if(newMode <= 0) + newMode = 1; + mode = newMode; + } + this.markDirty(); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + mode = nbt.getInteger("mode"); + channel = nbt.getString("channel"); + threshold = nbt.getInteger("threshold"); + active = nbt.getBoolean("active"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + nbt.setInteger("mode", mode); + nbt.setString("channel", channel); + nbt.setInteger("threshold", threshold); + nbt.setBoolean("active", active); + } + + public void getDiagData(NBTTagCompound nbt) { + super.getDiagData(nbt); + nbt.setString("mode", String.valueOf(mode)); + nbt.setString("channel", channel); + nbt.setString("threshold", String.valueOf(threshold)); + nbt.setString("active", String.valueOf(active)); + } + + @Override + public NBTTagCompound getNBTForConsole() { + NBTTagCompound data = new NBTTagCompound(); + + if(value >= 100) { + value = (int) value; + } else { + value = ((int) (value * 10)) / 10F; + } + data.setInteger("mode", mode); + data.setString("value", trunc_v); + data.setInteger("threshold", threshold); + data.setBoolean("active", active); + + return data; + } + + @Override + public void onMelt(int reduce) { + + int count = 1 + worldObj.rand.nextInt(2); + + for(int i = 0; i < count; i++) { + spawnDebris(DebrisType.BLANK); + } + + super.onMelt(reduce); + } + + @Override + public ColumnType getConsoleType() { + return ColumnType.REDSTONE; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } + + @Override + public String getComponentName() { + return "rbmk_redstone_rod"; + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerRBMKGeneric(player.inventory); + } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIRBMKRedstone(player.inventory, this); + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java index f13f34952..bdf09c074 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java @@ -191,6 +191,12 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM return flux; } } + + if(te instanceof TileEntityRBMKRedstone) { + TileEntityRBMKRedstone rod = (TileEntityRBMKRedstone)te; + rod.processFlux(flux, stream); + return flux; + } if(te instanceof IRBMKFluxReceiver) { IRBMKFluxReceiver rod = (IRBMKFluxReceiver)te; diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 18ca110d5..b56c75ce4 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -722,6 +722,7 @@ container.rbmkHeater=RBMK Fluid Heater container.rbmkOutgasser=RBMK Irradiation Channel container.rbmkReaSim=RBMK Fuel Rod (ReaSim) container.rbmkRod=RBMK Fuel Rod +container.rbmkRedstone=RBMK Redstone Column container.rbmkStorage=RBMK Storage Column container.reactorBreeding=Breeding Reactor container.reactorControl=Reactor Remote Control Block @@ -4242,6 +4243,9 @@ rbmk.heat=Column temperature: %s rbmk.boiler.water=Feedwater: %s / %s rbmk.boiler.steam=Steam: %s / %s rbmk.boiler.type=Compressor: %s +rbmk.redstone.active=Active: %s +rbmk.redstone.value=Value: %s / %s +rbmk.redstone.channel=Channel: %s rbmk.console.assign=Assign selected columns to screen #%s rbmk.console.none=Off rbmk.console.col_temp=Monitor average column temperature @@ -5110,6 +5114,7 @@ tile.rbmk_control_mod.name=RBMK Moderated Control Rods tile.rbmk_crane_console.name=RBMK Crane Console tile.rbmk_heater.name=RBMK Fluid Heater tile.rbmk_heatex.name=RBMK Heat Exchanger +tile.rbmk_redstone.name=RBMK Redstone Column tile.rbmk_loader.name=RBMK Steam Connector tile.rbmk_moderator.name=RBMK Graphite Moderator tile.rbmk_outgasser.name=RBMK Irradiation Channel diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_redstone.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_redstone.png new file mode 100644 index 0000000000000000000000000000000000000000..8689b01c6bd228fd87a19f28265228547c540053 GIT binary patch literal 1294 zcmV+p1@ZccP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1fxkrK~z{rt(Hqq zWK|Hy>pr@ny8)p|V0eaCIx%rIegbvxdJ>1 z2-t)Lgh8O`xAm*;>bW+}4A}fT)#u!E&#C&KdYp5E&CSiGB#_Bu+P#}7l}hd2E1aF3 z$>`|loz`t{ZwJ;%zzEFF&dR{RfJ9N$9u}$B>ryV4tz{eufVgkd025NaDrkWyvZUY%b^@yl(wzP^^- z-CfD$a{nQKAqXHC_l+^WwzhVIKxluexbXegQm@w3U?g!A%aHC&%}SsP8`Y}BO$^zae)g5^%GaXY!L#q&caPwyUWoZaLA_L#rtbdNk3N%ZHft{{m5K>U0SXJ>K9$RI zMVifKC+_sS;RLHn9{slw2vLH9vhH3~PgY&Gv$G>V|Ma6gfBuX7`N!`X>!Q4Td1hpE zvNTj`8YV#NF~%5@BxIY@eCS0I*w#=IE5mf0lKRMq4CS)6>o|^0i1+2iMJtx|mSG2L znTrAXP6ES-d(R1X!``xBFbXyK8a8ogc-V|xYx(?he%?~589ilyvuyI5|171*%r!;FUXBi-%a}Mgg8< z6Mzu$+zUp4mo;5?r5=FsTY9iyd{~LlqMXCT5=jk&VPxfJ3Y54f9DM}C2;;PrBGL;+ zz+S51SfA4Av`I!Q!4#?jNR_TiHZQhn)N<8vNHNE2-3`(*&c+~3%X2S;eoO|{ilp@5 zVL?7WE{`5f$=v+BJbwJHy!ZYG^5K&wEhTzJQ1y@kw;6&2W5{jBft`f&b93^}58r5j zwWNq+pz#Vc92yoPn#~MonQETsSoP{s6E>3HKK@+(`nzZ$T3K0XX;Tm`#61Z-H&$0y zTd_*OsFC3>KKVk8=})JGQTtqI)Fo)@*^WY~$%xKQtGi!(`cx`jVbqqXb z9Cx{n0qbtPj@$hXUZ<>^Krf~Df#m?-1GuqJD45J?Qch1#%lP=XO`@Hcm=HoWuaz+~ zGb2+|Q}(W37y)8cEEYSNi!kP~Cyw;-403vU`bL-E6-IzMU07J?WG!F}!?>K5y7t=U z1BCuVkT3#XHhzxxf?Y@|%w?WeO26oQ5BLr-;Kq`K`2Kqn$^QfMfFBaL9Rob?@9!H4 z04Yy8-f`0Tntovfe8;XB5@fv_+1uN*4^X^tcz9?D>(_I?2)4GiZum4=>m(J{Px87=mT12)0)Pte zdmV!q@o~lwAM>((2$)6^5QP|UV;Js+8zwouLi&Y$5uuE-!vJtYgoW0}y+jWV4jzsG ze;6PU$!toI76IP(62)*npYM?B7x%u7K{EOJyN*Tv1vZWaatMlMMgRZ+07*qoM6N<$ Eg3aGGn5K2;oHUI!0eBwEvgJTe>oei>t$YArZ`}Jq&7Or< z0N_hIqoaBL=B2qzWR$??z~&LY-LWW$64ih>cy0Ebehw#n*wyYPN+s5s^JwLZyhq~h zkQiIyTDMN_^#YuQf?1ll_z^J}bf_Wtorz&uSdaLHK+*3Rd33fPB4?Yp6ViBK*P}#I zuy3x{c~V~fy8g5EQ~Hong`M2mTgyW=HL2U%!wcIrHEC(NLLN*apWm!Z7`21Iq2HRr?o_BQ(fr!;(>rzm;f%$Lpfj#x14<7Pi;3d2bBNkCvT>|1z1GY?RUvjF`yK2C*qoTj@9T-qO=8oQ*{Gr+4e)X@>w z2RfED$;Ro5R?npROW1nZZpM|3jg6JPW5-`FTxM{By!C`0Ix80Du~$tDDcOPM-ZabGS(x5zrH%jKYEJ81(3qWlaZ`VA=AAiq*8)sL$kP9O8zpSF8Jo zbadvO&J_BZqa9ILfyopMC_PrgiR*v?3s{wQW~LPBV+ozkH-kpq_=CEaP(q?o$H&h( zMW6{>Nf7ov+nsce{gkwfj2@f#Lni^Mǖj*gSziT)--Ts;H9>?4f^jsPdXlhNwv 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 O1<=(r(kNAPi25(&%t8JD diff --git a/src/main/resources/assets/hbm/textures/gui/reactors/gui_rbmk_redstone.png b/src/main/resources/assets/hbm/textures/gui/reactors/gui_rbmk_redstone.png new file mode 100644 index 0000000000000000000000000000000000000000..e824d8b2075111921c56ccb519f6fe12a8be9db8 GIT binary patch literal 3617 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 rG#5OfQ%$=Vo8NC^|A|s)zi&r{?z)Wmtx Date: Fri, 14 Jul 2023 15:09:46 +0200 Subject: [PATCH 196/432] ported all bullet effects to the NT system --- .../hbm/blocks/machine/BlockHadronCooler.java | 1 - .../java/com/hbm/entity/EntityMappings.java | 1 - .../hbm/entity/grenade/EntityGrenadeGas.java | 1 - .../hbm/entity/logic/EntityDeathBlast.java | 4 +- .../entity/missile/EntityMissileCustom.java | 4 +- .../java/com/hbm/entity/mob/EntityFBI.java | 1 - .../com/hbm/entity/mob/EntityTaintCrab.java | 4 +- .../java/com/hbm/entity/mob/EntityUFO.java | 12 +- .../mob/ai/EntityAIMaskmanLasergun.java | 8 +- .../entity/mob/ai/EntityAIMaskmanMinigun.java | 4 +- .../mob/botprime/EntityBOTPrimeBase.java | 6 +- .../entity/projectile/EntityBulletBase.java | 706 ------------------ .../entity/projectile/EntityBulletBaseNT.java | 14 +- .../projectile/EntityCombineBallNT.java | 4 +- .../entity/projectile/EntityThrowableNT.java | 4 + .../hbm/explosion/ExplosionNukeGeneric.java | 4 +- .../com/hbm/handler/BulletConfiguration.java | 36 +- .../handler/guncfg/BulletConfigFactory.java | 46 +- .../hbm/handler/guncfg/Gun12GaugeFactory.java | 69 +- .../handler/guncfg/Gun44MagnumFactory.java | 124 ++- .../hbm/handler/guncfg/Gun4GaugeFactory.java | 220 +++--- .../hbm/handler/guncfg/Gun50BMGFactory.java | 113 ++- .../hbm/handler/guncfg/Gun556mmFactory.java | 147 ++-- .../hbm/handler/guncfg/Gun75BoltFactory.java | 56 +- .../hbm/handler/guncfg/GunCannonFactory.java | 10 +- .../hbm/handler/guncfg/GunDartFactory.java | 63 +- .../handler/guncfg/GunDetonatorFactory.java | 30 +- .../hbm/handler/guncfg/GunEnergyFactory.java | 46 +- .../hbm/handler/guncfg/GunFatmanFactory.java | 75 +- .../hbm/handler/guncfg/GunGrenadeFactory.java | 12 +- .../com/hbm/handler/guncfg/GunNPCFactory.java | 145 ++-- .../hbm/handler/guncfg/GunOSIPRFactory.java | 10 +- .../hbm/handler/guncfg/GunRocketFactory.java | 84 +-- .../guncfg/GunRocketHomingFactory.java | 176 ++--- .../hbm/interfaces/IBulletHitBehavior.java | 12 - .../hbm/interfaces/IBulletHurtBehavior.java | 11 - .../hbm/interfaces/IBulletImpactBehavior.java | 11 - .../interfaces/IBulletRicochetBehavior.java | 10 - .../hbm/interfaces/IBulletUpdateBehavior.java | 10 - .../com/hbm/inventory/gui/GUIBookLore.java | 2 - .../com/hbm/items/special/ItemBookLore.java | 2 - .../java/com/hbm/items/weapon/GunFolly.java | 4 +- .../com/hbm/items/weapon/GunLeverAction.java | 271 ------- .../java/com/hbm/items/weapon/GunOSIPR.java | 129 ---- .../java/com/hbm/items/weapon/GunSMG.java | 99 --- .../java/com/hbm/items/weapon/GunShotgun.java | 187 ----- .../com/hbm/items/weapon/ItemGunBase.java | 1 - .../com/hbm/items/weapon/ItemGunGauss.java | 4 +- .../weapon/gununified/ItemEnergyGunBase.java | 4 +- src/main/java/com/hbm/main/ClientProxy.java | 1 - .../java/com/hbm/main/ModEventHandler.java | 4 +- .../render/tileentity/RendererObjTester.java | 12 +- .../conductor/TileEntityFluidDuctSimple.java | 1 - .../deco/TileEntityTrappedBrick.java | 4 +- .../turret/TileEntityTurretBaseNT.java | 4 +- .../turret/TileEntityTurretFritz.java | 4 +- .../turret/TileEntityTurretRichard.java | 4 +- .../com/hbm/world/gen/NTMWorldGenerator.java | 3 - 58 files changed, 656 insertions(+), 2378 deletions(-) delete mode 100644 src/main/java/com/hbm/entity/projectile/EntityBulletBase.java delete mode 100644 src/main/java/com/hbm/interfaces/IBulletHitBehavior.java delete mode 100644 src/main/java/com/hbm/interfaces/IBulletHurtBehavior.java delete mode 100644 src/main/java/com/hbm/interfaces/IBulletImpactBehavior.java delete mode 100644 src/main/java/com/hbm/interfaces/IBulletRicochetBehavior.java delete mode 100644 src/main/java/com/hbm/interfaces/IBulletUpdateBehavior.java delete mode 100644 src/main/java/com/hbm/items/weapon/GunLeverAction.java delete mode 100644 src/main/java/com/hbm/items/weapon/GunOSIPR.java delete mode 100644 src/main/java/com/hbm/items/weapon/GunSMG.java delete mode 100644 src/main/java/com/hbm/items/weapon/GunShotgun.java diff --git a/src/main/java/com/hbm/blocks/machine/BlockHadronCooler.java b/src/main/java/com/hbm/blocks/machine/BlockHadronCooler.java index 95fcb17de..a242772e2 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockHadronCooler.java +++ b/src/main/java/com/hbm/blocks/machine/BlockHadronCooler.java @@ -11,7 +11,6 @@ import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index 49b065651..c9eb1c210 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -157,7 +157,6 @@ public class EntityMappings { addEntity(EntityGrenadeIFHopwire.class, "entity_grenade_ironshod_hopwire", 250); addEntity(EntityGrenadeIFNull.class, "entity_grenade_ironshod_null", 250); addEntity(EntityFallingNuke.class, "entity_falling_bomb", 1000); - addEntity(EntityBulletBase.class, "entity_bullet_mk2", 250); addEntity(EntityBulletBaseNT.class, "entity_bullet_mk3", 250, false); addEntity(EntityMinerRocket.class, "entity_miner_lander", 1000); addEntity(EntityFogFX.class, "entity_nuclear_fog", 1000); diff --git a/src/main/java/com/hbm/entity/grenade/EntityGrenadeGas.java b/src/main/java/com/hbm/entity/grenade/EntityGrenadeGas.java index 51d813653..20be9af9c 100644 --- a/src/main/java/com/hbm/entity/grenade/EntityGrenadeGas.java +++ b/src/main/java/com/hbm/entity/grenade/EntityGrenadeGas.java @@ -6,7 +6,6 @@ import net.minecraft.world.World; import java.util.Random; import com.hbm.entity.effect.EntityMist; -import com.hbm.explosion.ExplosionChaos; import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; import com.hbm.items.weapon.ItemGrenade; diff --git a/src/main/java/com/hbm/entity/logic/EntityDeathBlast.java b/src/main/java/com/hbm/entity/logic/EntityDeathBlast.java index 1065b019d..c4ffd67f3 100644 --- a/src/main/java/com/hbm/entity/logic/EntityDeathBlast.java +++ b/src/main/java/com/hbm/entity/logic/EntityDeathBlast.java @@ -1,6 +1,6 @@ package com.hbm.entity.logic; -import com.hbm.entity.projectile.EntityBulletBase; +import com.hbm.entity.projectile.EntityBulletBaseNT; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; @@ -45,7 +45,7 @@ public class EntityDeathBlast extends Entity { Vec3 vec = Vec3.createVectorHelper(0.2, 0, 0); vec.rotateAroundY((float)(2 * Math.PI * i / (float)count)); - EntityBulletBase laser = new EntityBulletBase(worldObj, BulletConfigSyncingUtil.MASKMAN_BOLT); + EntityBulletBaseNT laser = new EntityBulletBaseNT(worldObj, BulletConfigSyncingUtil.MASKMAN_BOLT); laser.setPosition(posX, posY + 2, posZ); laser.motionX = vec.xCoord; laser.motionZ = vec.zCoord; diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java b/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java index 12a2b845a..6deaa70ce 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java @@ -9,7 +9,7 @@ import com.hbm.entity.effect.EntityNukeCloudSmall; import com.hbm.entity.logic.EntityBalefire; import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.entity.logic.IChunkLoader; -import com.hbm.entity.projectile.EntityBulletBase; +import com.hbm.entity.projectile.EntityBulletBaseNT; import com.hbm.explosion.ExplosionChaos; import com.hbm.explosion.ExplosionLarge; import com.hbm.handler.BulletConfigSyncingUtil; @@ -371,7 +371,7 @@ public class EntityMissileCustom extends Entity implements IChunkLoader, IRadarD Vec3 vec = Vec3.createVectorHelper(0.5, 0, 0); for(int i = 0; i < count; i++) { - EntityBulletBase blade = new EntityBulletBase(worldObj, BulletConfigSyncingUtil.TURBINE); + EntityBulletBaseNT blade = new EntityBulletBaseNT(worldObj, BulletConfigSyncingUtil.TURBINE); blade.setPositionAndRotation(this.posX - this.motionX, this.posY - this.motionY + rand.nextGaussian(), this.posZ - this.motionZ, 0, 0); blade.motionX = vec.xCoord; blade.motionZ = vec.zCoord; diff --git a/src/main/java/com/hbm/entity/mob/EntityFBI.java b/src/main/java/com/hbm/entity/mob/EntityFBI.java index 827db49bd..c6426a6b3 100644 --- a/src/main/java/com/hbm/entity/mob/EntityFBI.java +++ b/src/main/java/com/hbm/entity/mob/EntityFBI.java @@ -7,7 +7,6 @@ import java.util.Set; import com.hbm.blocks.ModBlocks; import com.hbm.config.MobConfig; import com.hbm.entity.mob.ai.EntityAIBreaking; -import com.hbm.entity.mob.ai.EntityAI_MLPF; import com.hbm.entity.pathfinder.PathFinderUtils; import com.hbm.entity.projectile.EntityBullet; import com.hbm.items.ModItems; diff --git a/src/main/java/com/hbm/entity/mob/EntityTaintCrab.java b/src/main/java/com/hbm/entity/mob/EntityTaintCrab.java index 9c733ef12..aa0851cc9 100644 --- a/src/main/java/com/hbm/entity/mob/EntityTaintCrab.java +++ b/src/main/java/com/hbm/entity/mob/EntityTaintCrab.java @@ -3,7 +3,7 @@ package com.hbm.entity.mob; import java.util.ArrayList; import java.util.List; -import com.hbm.entity.projectile.EntityBulletBase; +import com.hbm.entity.projectile.EntityBulletBaseNT; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.items.ModItems; import com.hbm.packet.AuxParticlePacketNT; @@ -72,7 +72,7 @@ public class EntityTaintCrab extends EntityCyberCrab { @Override public void attackEntityWithRangedAttack(EntityLivingBase entity, float f) { - EntityBulletBase bullet = new EntityBulletBase(worldObj, BulletConfigSyncingUtil.BMG50_STAR, this); + EntityBulletBaseNT bullet = new EntityBulletBaseNT(worldObj, BulletConfigSyncingUtil.BMG50_STAR, this); Vec3 motion = Vec3.createVectorHelper(posX - entity.posX, posY - entity.posZ - entity.height / 2, posZ - entity.posZ); motion = motion.normalize(); NBTTagCompound data = new NBTTagCompound(); diff --git a/src/main/java/com/hbm/entity/mob/EntityUFO.java b/src/main/java/com/hbm/entity/mob/EntityUFO.java index 95e03d499..4a8f46ee5 100644 --- a/src/main/java/com/hbm/entity/mob/EntityUFO.java +++ b/src/main/java/com/hbm/entity/mob/EntityUFO.java @@ -3,7 +3,7 @@ package com.hbm.entity.mob; import java.util.ArrayList; import java.util.List; -import com.hbm.entity.projectile.EntityBulletBase; +import com.hbm.entity.projectile.EntityBulletBaseNT; import com.hbm.explosion.ExplosionNukeSmall; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.items.ModItems; @@ -326,8 +326,8 @@ public class EntityUFO extends EntityFlying implements IMob, IBossDisplayData, I Vec3 heading = Vec3.createVectorHelper(e.posX - pivotX, e.posY + e.height / 2 - pivotY, e.posZ - pivotZ); heading = heading.normalize(); - EntityBulletBase bullet = new EntityBulletBase(this.worldObj, BulletConfigSyncingUtil.WORM_LASER); - bullet.shooter = this; + EntityBulletBaseNT bullet = new EntityBulletBaseNT(this.worldObj, BulletConfigSyncingUtil.WORM_LASER); + bullet.setThrower(this); bullet.setPosition(pivotX, pivotY, pivotZ); bullet.setThrowableHeading(heading.xCoord, heading.yCoord, heading.zCoord, 2F, 0.02F); this.worldObj.spawnEntityInWorld(bullet); @@ -339,8 +339,8 @@ public class EntityUFO extends EntityFlying implements IMob, IBossDisplayData, I Vec3 heading = Vec3.createVectorHelper(e.posX - this.posX, e.posY + e.height / 2 - posY - 0.5D, e.posZ - this.posZ); heading = heading.normalize(); - EntityBulletBase bullet = new EntityBulletBase(this.worldObj, BulletConfigSyncingUtil.UFO_ROCKET); - bullet.shooter = this; + EntityBulletBaseNT bullet = new EntityBulletBaseNT(this.worldObj, BulletConfigSyncingUtil.UFO_ROCKET); + bullet.setThrower(this); bullet.setPosition(this.posX, this.posY - 0.5D, this.posZ); bullet.setThrowableHeading(heading.xCoord, heading.yCoord, heading.zCoord, 2F, 0.02F); bullet.getEntityData().setInteger("homingTarget", e.getEntityId()); @@ -350,7 +350,7 @@ public class EntityUFO extends EntityFlying implements IMob, IBossDisplayData, I @Override public boolean canAttackClass(Class clazz) { - return clazz != this.getClass() && clazz != EntityBulletBase.class; + return clazz != this.getClass() && clazz != EntityBulletBaseNT.class; } @Override diff --git a/src/main/java/com/hbm/entity/mob/ai/EntityAIMaskmanLasergun.java b/src/main/java/com/hbm/entity/mob/ai/EntityAIMaskmanLasergun.java index a298ce331..e6abf7d7b 100644 --- a/src/main/java/com/hbm/entity/mob/ai/EntityAIMaskmanLasergun.java +++ b/src/main/java/com/hbm/entity/mob/ai/EntityAIMaskmanLasergun.java @@ -1,6 +1,6 @@ package com.hbm.entity.mob.ai; -import com.hbm.entity.projectile.EntityBulletBase; +import com.hbm.entity.projectile.EntityBulletBaseNT; import com.hbm.handler.BulletConfigSyncingUtil; import net.minecraft.entity.EntityCreature; @@ -52,7 +52,7 @@ public class EntityAIMaskmanLasergun extends EntityAIBase { switch(attack) { case ORB: - EntityBulletBase orb = new EntityBulletBase(owner.worldObj, BulletConfigSyncingUtil.MASKMAN_ORB, owner, target, 2.0F, 0); + EntityBulletBaseNT orb = new EntityBulletBaseNT(owner.worldObj, BulletConfigSyncingUtil.MASKMAN_ORB, owner, target, 2.0F, 0); orb.motionY += 0.5D; owner.worldObj.spawnEntityInWorld(orb); @@ -60,7 +60,7 @@ public class EntityAIMaskmanLasergun extends EntityAIBase { break; case MISSILE: - EntityBulletBase missile = new EntityBulletBase(owner.worldObj, BulletConfigSyncingUtil.MASKMAN_ROCKET, owner, target, 1.0F, 0); + EntityBulletBaseNT missile = new EntityBulletBaseNT(owner.worldObj, BulletConfigSyncingUtil.MASKMAN_ROCKET, owner, target, 1.0F, 0); Vec3 vec = Vec3.createVectorHelper(target.posX - owner.posX, 0, target.posZ - owner.posZ); missile.motionX = vec.xCoord * 0.05D; missile.motionY = 0.5D + owner.getRNG().nextDouble() * 0.5D; @@ -73,7 +73,7 @@ public class EntityAIMaskmanLasergun extends EntityAIBase { case SPLASH: for(int i = 0; i < 5; i++) { - EntityBulletBase tracer = new EntityBulletBase(owner.worldObj, BulletConfigSyncingUtil.MASKMAN_TRACER, owner, target, 1.0F, 0.05F); + EntityBulletBaseNT tracer = new EntityBulletBaseNT(owner.worldObj, BulletConfigSyncingUtil.MASKMAN_TRACER, owner, target, 1.0F, 0.05F); owner.worldObj.spawnEntityInWorld(tracer); } break; diff --git a/src/main/java/com/hbm/entity/mob/ai/EntityAIMaskmanMinigun.java b/src/main/java/com/hbm/entity/mob/ai/EntityAIMaskmanMinigun.java index e56037204..c794a1d3b 100644 --- a/src/main/java/com/hbm/entity/mob/ai/EntityAIMaskmanMinigun.java +++ b/src/main/java/com/hbm/entity/mob/ai/EntityAIMaskmanMinigun.java @@ -1,6 +1,6 @@ package com.hbm.entity.mob.ai; -import com.hbm.entity.projectile.EntityBulletBase; +import com.hbm.entity.projectile.EntityBulletBaseNT; import com.hbm.handler.BulletConfigSyncingUtil; import net.minecraft.entity.EntityCreature; @@ -49,7 +49,7 @@ public class EntityAIMaskmanMinigun extends EntityAIBase { if(timer <= 0) { timer = delay; - EntityBulletBase bullet = new EntityBulletBase(owner.worldObj, BulletConfigSyncingUtil.MASKMAN_BULLET, owner, target, 1.0F, 0); + EntityBulletBaseNT bullet = new EntityBulletBaseNT(owner.worldObj, BulletConfigSyncingUtil.MASKMAN_BULLET, owner, target, 1.0F, 0); owner.worldObj.spawnEntityInWorld(bullet); owner.playSound("hbm:weapon.calShoot", 1.0F, 1.0F); } diff --git a/src/main/java/com/hbm/entity/mob/botprime/EntityBOTPrimeBase.java b/src/main/java/com/hbm/entity/mob/botprime/EntityBOTPrimeBase.java index 1aedbd326..2ec6a830e 100644 --- a/src/main/java/com/hbm/entity/mob/botprime/EntityBOTPrimeBase.java +++ b/src/main/java/com/hbm/entity/mob/botprime/EntityBOTPrimeBase.java @@ -1,6 +1,6 @@ package com.hbm.entity.mob.botprime; -import com.hbm.entity.projectile.EntityBulletBase; +import com.hbm.entity.projectile.EntityBulletBaseNT; import com.hbm.handler.BulletConfigSyncingUtil; import api.hbm.entity.IRadiationImmune; @@ -80,14 +80,14 @@ public abstract class EntityBOTPrimeBase extends EntityWormBaseNT implements IRa for(int i = 0; i < 5; i++) { - EntityBulletBase bullet = new EntityBulletBase(this.worldObj, BulletConfigSyncingUtil.WORM_LASER, this, living, 1.0F, i * 0.05F); + EntityBulletBaseNT bullet = new EntityBulletBaseNT(this.worldObj, BulletConfigSyncingUtil.WORM_LASER, this, living, 1.0F, i * 0.05F); this.worldObj.spawnEntityInWorld(bullet); } this.playSound("hbm:weapon.ballsLaser", 5.0F, 0.75F); } else { - EntityBulletBase bullet = new EntityBulletBase(this.worldObj, BulletConfigSyncingUtil.WORM_BOLT, this, living, 0.5F, 0.125F); + EntityBulletBaseNT bullet = new EntityBulletBaseNT(this.worldObj, BulletConfigSyncingUtil.WORM_BOLT, this, living, 0.5F, 0.125F); this.worldObj.spawnEntityInWorld(bullet); this.playSound("hbm:weapon.ballsLaser", 5.0F, 1.0F); } diff --git a/src/main/java/com/hbm/entity/projectile/EntityBulletBase.java b/src/main/java/com/hbm/entity/projectile/EntityBulletBase.java deleted file mode 100644 index e0c8fdb92..000000000 --- a/src/main/java/com/hbm/entity/projectile/EntityBulletBase.java +++ /dev/null @@ -1,706 +0,0 @@ -package com.hbm.entity.projectile; - -import java.lang.reflect.Field; -import java.util.ArrayList; -import java.util.List; - -import com.hbm.blocks.ModBlocks; -import com.hbm.blocks.generic.RedBarrel; -import com.hbm.entity.effect.EntityCloudFleijaRainbow; -import com.hbm.entity.effect.EntityEMPBlast; -import com.hbm.entity.logic.EntityNukeExplosionMK3; -import com.hbm.entity.logic.EntityNukeExplosionMK5; -import com.hbm.explosion.ExplosionChaos; -import com.hbm.explosion.ExplosionLarge; -import com.hbm.explosion.ExplosionNukeGeneric; -import com.hbm.handler.BulletConfigSyncingUtil; -import com.hbm.handler.BulletConfiguration; -import com.hbm.handler.GunConfiguration; -import com.hbm.items.weapon.ItemGunBase; -import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacketNT; -import com.hbm.packet.PacketDispatcher; -import com.hbm.potion.HbmPotion; -import com.hbm.util.ArmorUtil; -import com.hbm.util.BobMathUtil; -import com.hbm.util.Tuple.Pair; - -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import cpw.mods.fml.relauncher.ReflectionHelper; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.IProjectile; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EntityDamageSource; -import net.minecraft.util.MathHelper; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; - -public class EntityBulletBase extends Entity implements IProjectile, IBulletBase { - - @Override public double prevX() { return prevRenderX; } - @Override public double prevY() { return prevRenderY; } - @Override public double prevZ() { return prevRenderZ; } - @Override public void prevX(double d) { prevRenderX = d; } - @Override public void prevY(double d) { prevRenderY = d; } - @Override public void prevZ(double d) { prevRenderZ = d; } - @Override public List> nodes() { return this.trailNodes; } - - private BulletConfiguration config; - public EntityLivingBase shooter; - public float overrideDamage; - - public double prevRenderX; - public double prevRenderY; - public double prevRenderZ; - public final List> trailNodes = new ArrayList(); - - public BulletConfiguration getConfig() { - return config; - } - - public EntityBulletBase(World world) { - super(world); - this.renderDistanceWeight = 10.0D; - this.setSize(0.5F, 0.5F); - } - - public EntityBulletBase(World world, int config) { - super(world); - this.config = BulletConfigSyncingUtil.pullConfig(config); - this.dataWatcher.updateObject(18, config); - this.renderDistanceWeight = 10.0D; - - if(this.config == null) { - this.setDead(); - return; - } - - this.dataWatcher.updateObject(16, (byte)this.config.style); - this.dataWatcher.updateObject(17, (byte)this.config.trail); - - this.setSize(0.5F, 0.5F); - } - - public EntityBulletBase(World world, int config, EntityLivingBase entity) { - super(world); - this.config = BulletConfigSyncingUtil.pullConfig(config); - this.dataWatcher.updateObject(18, config); - shooter = entity; - - ItemStack gun = entity.getHeldItem(); - boolean offsetShot = true; - - if(gun != null && gun.getItem() instanceof ItemGunBase) { - GunConfiguration cfg = ((ItemGunBase) gun.getItem()).mainConfig; - - if(cfg != null && cfg.hasSights && entity.isSneaking()) { - offsetShot = false; - } - } - - this.setLocationAndAngles(entity.posX, entity.posY + entity.getEyeHeight(), entity.posZ, entity.rotationYaw, entity.rotationPitch); - - if(offsetShot) { - double sideOffset = 0.16D; - - this.posX -= MathHelper.cos(this.rotationYaw / 180.0F * (float) Math.PI) * sideOffset; - this.posY -= 0.1D; - this.posZ -= MathHelper.sin(this.rotationYaw / 180.0F * (float) Math.PI) * sideOffset; - } else { - this.posY -= 0.1D; - } - this.setPosition(this.posX, this.posY, this.posZ); - - this.motionX = -MathHelper.sin(this.rotationYaw / 180.0F * (float) Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float) Math.PI); - this.motionZ = MathHelper.cos(this.rotationYaw / 180.0F * (float) Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float) Math.PI); - this.motionY = (-MathHelper.sin(this.rotationPitch / 180.0F * (float) Math.PI)); - - this.renderDistanceWeight = 10.0D; - this.setSize(0.5F, 0.5F); - - this.setThrowableHeading(this.motionX, this.motionY, this.motionZ, 1.0F, this.config.spread * (offsetShot ? 1F : 0.25F)); - - this.dataWatcher.updateObject(16, (byte)this.config.style); - this.dataWatcher.updateObject(17, (byte)this.config.trail); - } - - public EntityBulletBase(World world, int config, EntityLivingBase entity, EntityLivingBase target, float motion, float deviation) { - super(world); - - this.config = BulletConfigSyncingUtil.pullConfig(config); - this.dataWatcher.updateObject(18, config); - this.shooter = entity; - - this.renderDistanceWeight = 10.0D; - this.setSize(0.5F, 0.5F); - - this.posY = entity.posY + entity.getEyeHeight() - 0.10000000149011612D; - double d0 = target.posX - entity.posX; - double d1 = target.boundingBox.minY + target.height / 3.0F - this.posY; - double d2 = target.posZ - entity.posZ; - double d3 = MathHelper.sqrt_double(d0 * d0 + d2 * d2); - - if (d3 >= 1.0E-7D) { - float f2 = (float) (Math.atan2(d2, d0) * 180.0D / Math.PI) - 90.0F; - float f3 = (float) (-(Math.atan2(d1, d3) * 180.0D / Math.PI)); - double d4 = d0 / d3; - double d5 = d2 / d3; - this.setLocationAndAngles(entity.posX + d4, this.posY, entity.posZ + d5, f2, f3); - this.yOffset = 0.0F; - this.setThrowableHeading(d0, d1, d2, motion, deviation); - } - - this.dataWatcher.updateObject(16, (byte)this.config.style); - this.dataWatcher.updateObject(17, (byte)this.config.trail); - } - - public boolean attackEntityFrom(DamageSource source, float amount) { - - this.setBeenAttacked(); - - if(source instanceof EntityDamageSource) { - EntityDamageSource dmg = (EntityDamageSource) source; - - if(dmg.damageType.equals("player")) { - this.motionX *= -1.5; - this.motionY *= -1.5; - this.motionZ *= -1.5; - return true; - } - } - return false; - } - - @Override - public void setThrowableHeading(double moX, double moY, double moZ, float mult1, float mult2) { - - float f2 = MathHelper.sqrt_double(moX * moX + moY * moY + moZ * moZ); - moX /= f2; - moY /= f2; - moZ /= f2; - moX += this.rand.nextGaussian() * mult2; - moY += this.rand.nextGaussian() * mult2; - moZ += this.rand.nextGaussian() * mult2; - moX *= mult1; - moY *= mult1; - moZ *= mult1; - this.motionX = moX; - this.motionY = moY; - this.motionZ = moZ; - - float f3 = MathHelper.sqrt_double(moX * moX + moZ * moZ); - this.prevRotationYaw = this.rotationYaw = (float) (Math.atan2(moX, moZ) * 180.0D / Math.PI); - this.prevRotationPitch = this.rotationPitch = (float) (Math.atan2(moY, f3) * 180.0D / Math.PI); - } - - @Override - @SideOnly(Side.CLIENT) - public void setPositionAndRotation2(double x, double y, double z, float r0, float r1, int i) { - this.setPosition(x, y, z); - this.setRotation(r0, r1); - } - - @Override - @SideOnly(Side.CLIENT) - public void setVelocity(double x, double y, double z) { - this.motionX = x; - this.motionY = y; - this.motionZ = z; - - if (this.prevRotationPitch == 0.0F && this.prevRotationYaw == 0.0F) { - float f = MathHelper.sqrt_double(x * x + z * z); - this.prevRotationYaw = this.rotationYaw = (float) (Math.atan2(x, z) * 180.0D / Math.PI); - this.prevRotationPitch = this.rotationPitch = (float) (Math.atan2(y, f) * 180.0D / Math.PI); - this.prevRotationPitch = this.rotationPitch; - this.prevRotationYaw = this.rotationYaw; - this.setLocationAndAngles(this.posX, this.posY, this.posZ, this.rotationYaw, this.rotationPitch); - } - } - - @Override - protected void entityInit() { - //style - this.dataWatcher.addObject(16, Byte.valueOf((byte) 0)); - //trail - this.dataWatcher.addObject(17, Byte.valueOf((byte) 0)); - //bullet config sync - this.dataWatcher.addObject(18, Integer.valueOf((int) 0)); - } - - @Override - public void onUpdate() { - super.onUpdate(); - - if(config == null) - config = BulletConfigSyncingUtil.pullConfig(dataWatcher.getWatchableObjectInt(18)); - - if(config == null){ - this.setDead(); - return; - } - - if(worldObj.isRemote && config.style == config.STYLE_TAU) { - if(trailNodes.isEmpty()) { - this.ignoreFrustumCheck = true; - trailNodes.add(new Pair(Vec3.createVectorHelper(-motionX * 2, -motionY * 2, -motionZ * 2), 0D)); - } else { - trailNodes.add(new Pair(Vec3.createVectorHelper(0, 0, 0), 1D)); - } - } - - if(this.config.blackPowder && this.ticksExisted == 1) { - - for(int i = 0; i < 15; i++) { - double mod = rand.nextDouble(); - this.worldObj.spawnParticle("smoke", this.posX, this.posY, this.posZ, - (this.motionX + rand.nextGaussian() * 0.05) * mod, - (this.motionY + rand.nextGaussian() * 0.05) * mod, - (this.motionZ + rand.nextGaussian() * 0.05) * mod); - } - - double mod = 0.5; - this.worldObj.spawnParticle("flame", this.posX + this.motionX * mod, this.posY + this.motionY * mod, this.posZ + this.motionZ * mod, 0, 0, 0); - } - - if(config.maxAge == 0) { - - if(this.config.bUpdate != null) - this.config.bUpdate.behaveUpdate(this); - - this.setDead(); - return; - } - - if (this.prevRotationPitch == 0.0F && this.prevRotationYaw == 0.0F) { - float f = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - this.prevRotationYaw = this.rotationYaw = (float) (Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(this.motionY, (double)f) * 180.0D / Math.PI); - } - - /// ZONE 1 START /// - //entity and block collision, plinking - - /// ZONE 2 START /// - //entity detection - Vec3 vecOrigin = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); - Vec3 vecDestination = Vec3.createVectorHelper(this.posX + this.motionX * this.config.velocity, this.posY + this.motionY * this.config.velocity, this.posZ + this.motionZ * this.config.velocity); - MovingObjectPosition movement = this.worldObj.func_147447_a(vecOrigin, vecDestination, false, true, false); - vecOrigin = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); - vecDestination = Vec3.createVectorHelper(this.posX + this.motionX * this.config.velocity, this.posY + this.motionY * this.config.velocity, this.posZ + this.motionZ * this.config.velocity); - - MovingObjectPosition impact = null; - - Entity victim = null; - List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox.addCoord(this.motionX * this.config.velocity, this.motionY * this.config.velocity, this.motionZ * this.config.velocity).expand(1.0D, 1.0D, 1.0D)); - - double d0 = 0.0D; - int i; - float f1; - - for (i = 0; i < list.size(); ++i) { - Entity entity1 = (Entity) list.get(i); - - if (entity1.canBeCollidedWith() && (entity1 != this.shooter)) { - f1 = 0.3F; - AxisAlignedBB axisalignedbb1 = entity1.boundingBox.expand(f1, f1, f1); - MovingObjectPosition movingobjectposition1 = axisalignedbb1.calculateIntercept(vecOrigin, vecDestination); - - if (movingobjectposition1 != null) { - double d1 = vecOrigin.distanceTo(movingobjectposition1.hitVec); - - if (d1 < d0 || d0 == 0.0D) { - victim = entity1; - impact = movingobjectposition1; - d0 = d1; - } - } - } - } - - if (victim != null) { - movement = new MovingObjectPosition(victim); - movement.hitVec.yCoord += victim.height * 0.5D; - } - - /// ZONE 2 END /// - - boolean didBounce = false; - - if(movement != null) { - - //handle entity collision - if(movement.entityHit != null) { - - DamageSource damagesource = this.config.getDamage(this, shooter); - - if(!worldObj.isRemote) { - if(!config.doesPenetrate) { - this.setPosition(movement.hitVec.xCoord, movement.hitVec.yCoord, movement.hitVec.zCoord); - onEntityImpact(victim); - } else { - onEntityHurt(victim); - } - } - - float damage = rand.nextFloat() * (config.dmgMax - config.dmgMin) + config.dmgMin; - - if(overrideDamage != 0) - damage = overrideDamage; - - boolean headshot = false; - - if(victim instanceof EntityLivingBase && this.config.headshotMult > 1F) { - EntityLivingBase living = (EntityLivingBase) victim; - double head = living.height - living.getEyeHeight(); - - if(!!living.isEntityAlive() && impact.hitVec != null && impact.hitVec.yCoord > (living.posY + living.height - head * 2)) { - damage *= this.config.headshotMult; - headshot = true; - } - } - - if(victim != null && !victim.attackEntityFrom(damagesource, damage)) { - - try { - Field lastDamage = ReflectionHelper.findField(EntityLivingBase.class, "lastDamage", "field_110153_bc"); - - float dmg = (float) damage + lastDamage.getFloat(victim); - - if(!victim.attackEntityFrom(damagesource, dmg)) { - headshot = false; - } - } catch (Exception x) { } - - } - - if(!worldObj.isRemote && headshot) { - if(victim instanceof EntityLivingBase) { - EntityLivingBase living = (EntityLivingBase) victim; - double head = living.height - living.getEyeHeight(); - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "vanillaburst"); - data.setInteger("count", 15); - data.setDouble("motion", 0.1D); - data.setString("mode", "blockdust"); - data.setInteger("block", Block.getIdFromBlock(Blocks.redstone_block)); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, living.posX, living.posY + living.height - head, living.posZ), new TargetPoint(living.dimension, living.posX, living.posY, living.posZ, 50)); - worldObj.playSoundEffect(victim.posX, victim.posY, victim.posZ, "mob.zombie.woodbreak", 1.0F, 0.95F + rand.nextFloat() * 0.2F); - } - } - - //handle block collision - } else if(worldObj.getBlock(movement.blockX, movement.blockY, movement.blockZ).getMaterial() != Material.air) { - - boolean hRic = rand.nextInt(100) < config.HBRC; - boolean doesRic = config.doesRicochet || hRic; - - if(!config.isSpectral && !doesRic) { - this.setPosition(movement.hitVec.xCoord, movement.hitVec.yCoord, movement.hitVec.zCoord); - this.onBlockImpact(movement.blockX, movement.blockY, movement.blockZ); - } - - if(doesRic) { - - Vec3 face = null; - - switch(movement.sideHit) { - case 0: - face = Vec3.createVectorHelper(0, -1, 0); break; - case 1: - face = Vec3.createVectorHelper(0, 1, 0); break; - case 2: - face = Vec3.createVectorHelper(0, 0, 1); break; - case 3: - face = Vec3.createVectorHelper(0, 0, -1); break; - case 4: - face = Vec3.createVectorHelper(-1, 0, 0); break; - case 5: - face = Vec3.createVectorHelper(1, 0, 0); break; - } - - if(face != null) { - - Vec3 vel = Vec3.createVectorHelper(motionX, motionY, motionZ); - vel.normalize(); - - boolean lRic = rand.nextInt(100) < config.LBRC; - double angle = Math.abs(BobMathUtil.getCrossAngle(vel, face) - 90); - - if(hRic || (angle <= config.ricochetAngle && lRic)) { - switch(movement.sideHit) { - case 0: - case 1: - motionY *= -1; break; - case 2: - case 3: - motionZ *= -1; break; - case 4: - case 5: - motionX *= -1; break; - } - - if(config.plink == 1) - worldObj.playSoundAtEntity(this, "hbm:weapon.ricochet", 0.25F, 1.0F); - if(config.plink == 2) - worldObj.playSoundAtEntity(this, "hbm:weapon.gBounce", 1.0F, 1.0F); - - onRicochet(movement.blockX, movement.blockY, movement.blockZ); - - } else { - if(!worldObj.isRemote) { - this.setPosition(movement.hitVec.xCoord, movement.hitVec.yCoord, movement.hitVec.zCoord); - onBlockImpact(movement.blockX, movement.blockY, movement.blockZ); - } - } - - this.posX += (movement.hitVec.xCoord - this.posX) * 0.6; - this.posY += (movement.hitVec.yCoord - this.posY) * 0.6; - this.posZ += (movement.hitVec.zCoord - this.posZ) * 0.6; - - this.motionX *= config.bounceMod; - this.motionY *= config.bounceMod; - this.motionZ *= config.bounceMod; - - didBounce = true; - } - } - } - - } - - /// ZONE 1 END /// - - if(!didBounce) { - motionY -= config.gravity; - this.posX += this.motionX * this.config.velocity; - this.posY += this.motionY * this.config.velocity; - this.posZ += this.motionZ * this.config.velocity; - this.setPosition(this.posX, this.posY, this.posZ); - } - - /// SPECIAL UPDATE BEHAVIOR /// - if(this.config.bUpdate != null) - this.config.bUpdate.behaveUpdate(this); - - float f2; - this.rotationYaw = (float) (Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - for (this.rotationPitch = (float)(Math.atan2(this.motionY, (double)f2) * 180.0D / Math.PI); this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F) - { - ; - } - - while(this.rotationPitch - this.prevRotationPitch >= 180.0F) { - this.prevRotationPitch += 360.0F; - } - - while(this.rotationYaw - this.prevRotationYaw < -180.0F) { - this.prevRotationYaw -= 360.0F; - } - - while(this.rotationYaw - this.prevRotationYaw >= 180.0F) { - this.prevRotationYaw += 360.0F; - } - - if(this.ticksExisted > config.maxAge) - this.setDead(); - - if(worldObj.isRemote && !config.vPFX.isEmpty()) { - - Vec3 vec = Vec3.createVectorHelper(posX - prevPosX, posY - prevPosY, posZ - prevPosZ); - double motion = Math.max(vec.lengthVector(), 0.1); - vec = vec.normalize(); - - for(double d = 0; d < motion; d += 0.5) { - - NBTTagCompound nbt = new NBTTagCompound(); - nbt.setString("type", "vanillaExt"); - nbt.setString("mode", config.vPFX); - nbt.setDouble("posX", this.posX - vec.xCoord * d); - nbt.setDouble("posY", this.posY - vec.yCoord * d); - nbt.setDouble("posZ", this.posZ - vec.zCoord * d); - MainRegistry.proxy.effectNT(nbt); - } - } - - //this.rotationPitch = this.prevRotationPitch + (this.rotationPitch - this.prevRotationPitch) * 0.2F; - //this.rotationYaw = this.prevRotationYaw + (this.rotationYaw - this.prevRotationYaw) * 0.2F; - } - - //for when a bullet dies by hitting a block - private void onBlockImpact(int bX, int bY, int bZ) { - - if(config.bImpact != null) - config.bImpact.behaveBlockHit(this, bX, bY, bZ); - - if(!worldObj.isRemote && !config.liveAfterImpact) - this.setDead(); - - if(config.incendiary > 0 && !this.worldObj.isRemote) { - if(worldObj.rand.nextInt(3) == 0 && worldObj.getBlock((int)posX, (int)posY, (int)posZ) == Blocks.air) worldObj.setBlock((int)posX, (int)posY, (int)posZ, Blocks.fire); - if(worldObj.rand.nextInt(3) == 0 && worldObj.getBlock((int)posX + 1, (int)posY, (int)posZ) == Blocks.air) worldObj.setBlock((int)posX + 1, (int)posY, (int)posZ, Blocks.fire); - if(worldObj.rand.nextInt(3) == 0 && worldObj.getBlock((int)posX - 1, (int)posY, (int)posZ) == Blocks.air) worldObj.setBlock((int)posX - 1, (int)posY, (int)posZ, Blocks.fire); - if(worldObj.rand.nextInt(3) == 0 && worldObj.getBlock((int)posX, (int)posY + 1, (int)posZ) == Blocks.air) worldObj.setBlock((int)posX, (int)posY + 1, (int)posZ, Blocks.fire); - if(worldObj.rand.nextInt(3) == 0 && worldObj.getBlock((int)posX, (int)posY - 1, (int)posZ) == Blocks.air) worldObj.setBlock((int)posX, (int)posY - 1, (int)posZ, Blocks.fire); - if(worldObj.rand.nextInt(3) == 0 && worldObj.getBlock((int)posX, (int)posY, (int)posZ + 1) == Blocks.air) worldObj.setBlock((int)posX, (int)posY, (int)posZ + 1, Blocks.fire); - if(worldObj.rand.nextInt(3) == 0 && worldObj.getBlock((int)posX, (int)posY, (int)posZ - 1) == Blocks.air) worldObj.setBlock((int)posX, (int)posY, (int)posZ - 1, Blocks.fire); - } - - if(config.emp > 0) - ExplosionNukeGeneric.empBlast(this.worldObj, (int)(this.posX + 0.5D), (int)(this.posY + 0.5D), (int)(this.posZ + 0.5D), config.emp); - - if(config.emp > 3) { - if (!this.worldObj.isRemote) { - - EntityEMPBlast cloud = new EntityEMPBlast(this.worldObj, config.emp); - cloud.posX = this.posX; - cloud.posY = this.posY + 0.5F; - cloud.posZ = this.posZ; - - this.worldObj.spawnEntityInWorld(cloud); - } - } - - if(config.jolt > 0 && !worldObj.isRemote) - ExplosionLarge.jolt(worldObj, posX, posY, posZ, config.jolt, 150, 0.25); - - if(config.explosive > 0 && !worldObj.isRemote) - worldObj.newExplosion(this, posX, posY, posZ, config.explosive, config.incendiary > 0, config.blockDamage); - - if(config.shrapnel > 0 && !worldObj.isRemote) - ExplosionLarge.spawnShrapnels(worldObj, posX, posY, posZ, config.shrapnel); - - if(config.chlorine > 0 && !worldObj.isRemote) { - ExplosionChaos.spawnChlorine(worldObj, posX, posY, posZ, config.chlorine, 1.5, 0); - worldObj.playSoundEffect((double)(posX + 0.5F), (double)(posY + 0.5F), (double)(posZ + 0.5F), "random.fizz", 5.0F, 2.6F + (rand.nextFloat() - rand.nextFloat()) * 0.8F); - } - - if(config.rainbow > 0 && !worldObj.isRemote) { - EntityNukeExplosionMK3 ex = EntityNukeExplosionMK3.statFacFleija(worldObj, posX, posY, posZ, config.rainbow); - if(!ex.isDead) { - this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, "random.explode", 100.0f, this.worldObj.rand.nextFloat() * 0.1F + 0.9F); - worldObj.spawnEntityInWorld(ex); - - EntityCloudFleijaRainbow cloud = new EntityCloudFleijaRainbow(this.worldObj, config.rainbow); - cloud.posX = this.posX; - cloud.posY = this.posY; - cloud.posZ = this.posZ; - this.worldObj.spawnEntityInWorld(cloud); - } - } - - if(config.nuke > 0 && !worldObj.isRemote) { - worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, config.nuke, posX, posY, posZ).mute()); - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "muke"); - if(MainRegistry.polaroidID == 11 || rand.nextInt(100) == 0) data.setBoolean("balefire", true); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY + 0.5, posZ), new TargetPoint(dimension, posX, posY, posZ, 250)); - worldObj.playSoundEffect(posX, posY, posZ, "hbm:weapon.mukeExplosion", 15.0F, 1.0F); - } - - if(config.destroysBlocks && !worldObj.isRemote) { - if(worldObj.getBlock(bX, bY, bZ).getBlockHardness(worldObj, bX, bY, bZ) <= 120) - worldObj.func_147480_a(bX, bY, bZ, false); - } else if(config.doesBreakGlass && !worldObj.isRemote) { - if(worldObj.getBlock(bX, bY, bZ) == Blocks.glass || - worldObj.getBlock(bX, bY, bZ) == Blocks.glass_pane || - worldObj.getBlock(bX, bY, bZ) == Blocks.stained_glass || - worldObj.getBlock(bX, bY, bZ) == Blocks.stained_glass_pane) - worldObj.func_147480_a(bX, bY, bZ, false); - - if(worldObj.getBlock(bX, bY, bZ) == ModBlocks.red_barrel) - ((RedBarrel) ModBlocks.red_barrel).explode(worldObj, bX, bY, bZ); - } - } - - //for when a bullet dies by hitting a block - private void onRicochet(int bX, int bY, int bZ) { - - if(config.bRicochet != null) - config.bRicochet.behaveBlockRicochet(this, bX, bY, bZ); - } - - //for when a bullet dies by hitting an entity - private void onEntityImpact(Entity e) { - onEntityHurt(e); - onBlockImpact(-1, -1, -1); - - if(config.bHit != null) - config.bHit.behaveEntityHit(this, e); - } - - //for when a bullet hurts an entity, not necessarily dying - private void onEntityHurt(Entity e) { - - if(config.bHurt != null) - config.bHurt.behaveEntityHurt(this, e); - - if(config.incendiary > 0 && !worldObj.isRemote) { - e.setFire(config.incendiary); - } - - if(config.leadChance > 0 && !worldObj.isRemote && worldObj.rand.nextInt(100) < config.leadChance && e instanceof EntityLivingBase) { - ((EntityLivingBase)e).addPotionEffect(new PotionEffect(HbmPotion.lead.id, 10 * 20, 0)); - } - - if(e instanceof EntityLivingBase && config.effects != null && !config.effects.isEmpty() && !worldObj.isRemote) { - - for(PotionEffect effect : config.effects) { - ((EntityLivingBase)e).addPotionEffect(new PotionEffect(effect)); - } - } - - if(config.instakill && e instanceof EntityLivingBase && !worldObj.isRemote) { - - if(!(e instanceof EntityPlayer && ((EntityPlayer)e).capabilities.isCreativeMode)) - ((EntityLivingBase)e).setHealth(0.0F); - } - - if(config.caustic > 0 && e instanceof EntityPlayer){ - ArmorUtil.damageSuit((EntityPlayer)e, 0, config.caustic); - ArmorUtil.damageSuit((EntityPlayer)e, 1, config.caustic); - ArmorUtil.damageSuit((EntityPlayer)e, 2, config.caustic); - ArmorUtil.damageSuit((EntityPlayer)e, 3, config.caustic); - } - } - - @Override - protected void readEntityFromNBT(NBTTagCompound nbt) { - - int cfg = nbt.getInteger("config"); - this.config = BulletConfigSyncingUtil.pullConfig(cfg); - - if(this.config == null) { - this.setDead(); - return; - } - - this.overrideDamage = nbt.getFloat("damage"); - - this.dataWatcher.updateObject(18, cfg); - - this.dataWatcher.updateObject(16, (byte)this.config.style); - this.dataWatcher.updateObject(17, (byte)this.config.trail); - } - - @Override - protected void writeEntityToNBT(NBTTagCompound nbt) { - - nbt.setInteger("config", dataWatcher.getWatchableObjectInt(18)); - - nbt.setFloat("damage", this.overrideDamage); - } - -} diff --git a/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java b/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java index a3ce55d10..1e8b6efee 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java +++ b/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java @@ -211,12 +211,12 @@ public class EntityBulletBaseNT extends EntityThrowableInterp implements IBullet if(!worldObj.isRemote) { if(config.maxAge == 0) { - if(this.config.bUpdate != null) this.config.bntUpdate.behaveUpdate(this); + if(this.config.bntUpdate != null) this.config.bntUpdate.behaveUpdate(this); this.setDead(); return; } - if(this.config.bUpdate != null) this.config.bntUpdate.behaveUpdate(this); + if(this.config.bntUpdate != null) this.config.bntUpdate.behaveUpdate(this); if(this.ticksExisted > config.maxAge) this.setDead(); } @@ -568,9 +568,9 @@ public class EntityBulletBaseNT extends EntityThrowableInterp implements IBullet nbt.setFloat("damage", this.overrideDamage); } - public interface IBulletHurtBehaviorNT { public void behaveEntityHurt(EntityBulletBaseNT bullet, Entity hit); } - public interface IBulletHitBehaviorNT { public void behaveEntityHit(EntityBulletBaseNT bullet, Entity hit); } - public interface IBulletRicochetBehaviorNT { public void behaveBlockRicochet(EntityBulletBaseNT bullet, int x, int y, int z); } - public interface IBulletImpactBehaviorNT { public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z); } - public interface IBulletUpdateBehaviorNT { public void behaveUpdate(EntityBulletBaseNT bullet); } + public static interface IBulletHurtBehaviorNT { public void behaveEntityHurt(EntityBulletBaseNT bullet, Entity hit); } + public static interface IBulletHitBehaviorNT { public void behaveEntityHit(EntityBulletBaseNT bullet, Entity hit); } + public static interface IBulletRicochetBehaviorNT { public void behaveBlockRicochet(EntityBulletBaseNT bullet, int x, int y, int z); } + public static interface IBulletImpactBehaviorNT { public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z); } + public static interface IBulletUpdateBehaviorNT { public void behaveUpdate(EntityBulletBaseNT bullet); } } diff --git a/src/main/java/com/hbm/entity/projectile/EntityCombineBallNT.java b/src/main/java/com/hbm/entity/projectile/EntityCombineBallNT.java index 1c0b0f27c..e9c5dc228 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityCombineBallNT.java +++ b/src/main/java/com/hbm/entity/projectile/EntityCombineBallNT.java @@ -3,7 +3,7 @@ package com.hbm.entity.projectile; import net.minecraft.entity.EntityLivingBase; import net.minecraft.world.World; -public class EntityCombineBallNT extends EntityBulletBase { +public class EntityCombineBallNT extends EntityBulletBaseNT { public EntityCombineBallNT(World world, int config, EntityLivingBase shooter) { super(world, config, shooter); @@ -13,6 +13,6 @@ public class EntityCombineBallNT extends EntityBulletBase { @Override public void setDead() { super.setDead(); - worldObj.createExplosion(shooter, posX, posY, posZ, 2, false); + worldObj.createExplosion(this.getThrower(), posX, posY, posZ, 2, false); } } diff --git a/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java b/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java index ca5a551b2..4f71aeedb 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java +++ b/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java @@ -327,6 +327,10 @@ public abstract class EntityThrowableNT extends Entity implements IProjectile { public float getShadowSize() { return 0.0F; } + + public void setThrower(EntityLivingBase thrower) { + this.thrower = thrower; + } public EntityLivingBase getThrower() { if(this.thrower == null && this.throwerName != null && this.throwerName.length() > 0) { diff --git a/src/main/java/com/hbm/explosion/ExplosionNukeGeneric.java b/src/main/java/com/hbm/explosion/ExplosionNukeGeneric.java index c8c15c8a9..c2a58d0a1 100644 --- a/src/main/java/com/hbm/explosion/ExplosionNukeGeneric.java +++ b/src/main/java/com/hbm/explosion/ExplosionNukeGeneric.java @@ -24,7 +24,7 @@ import com.hbm.entity.effect.EntityNukeCloudSmall; import com.hbm.entity.grenade.EntityGrenadeASchrab; import com.hbm.entity.grenade.EntityGrenadeNuclear; import com.hbm.entity.missile.EntityMIRV; -import com.hbm.entity.projectile.EntityBulletBase; +import com.hbm.entity.projectile.EntityBulletBaseNT; import com.hbm.entity.projectile.EntityExplosiveBeam; import com.hbm.interfaces.Spaghetti; import com.hbm.items.ModItems; @@ -108,7 +108,7 @@ public class ExplosionNukeGeneric { e instanceof EntityGrenadeASchrab || e instanceof EntityGrenadeNuclear || e instanceof EntityExplosiveBeam || - e instanceof EntityBulletBase || + e instanceof EntityBulletBaseNT || e instanceof EntityPlayer && ArmorUtil.checkArmor((EntityPlayer) e, ModItems.euphemium_helmet, ModItems.euphemium_plate, ModItems.euphemium_legs, ModItems.euphemium_boots)) { return true; diff --git a/src/main/java/com/hbm/handler/BulletConfiguration.java b/src/main/java/com/hbm/handler/BulletConfiguration.java index fe3745bc5..f91077c2c 100644 --- a/src/main/java/com/hbm/handler/BulletConfiguration.java +++ b/src/main/java/com/hbm/handler/BulletConfiguration.java @@ -2,15 +2,9 @@ package com.hbm.handler; import java.util.List; -import com.hbm.entity.projectile.EntityBulletBase; import com.hbm.entity.projectile.EntityBulletBaseNT; import com.hbm.entity.projectile.EntityBulletBaseNT.*; import com.hbm.handler.guncfg.BulletConfigFactory; -import com.hbm.interfaces.IBulletHitBehavior; -import com.hbm.interfaces.IBulletHurtBehavior; -import com.hbm.interfaces.IBulletImpactBehavior; -import com.hbm.interfaces.IBulletRicochetBehavior; -import com.hbm.interfaces.IBulletUpdateBehavior; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.lib.ModDamageSource; import com.hbm.main.MainRegistry; @@ -88,11 +82,11 @@ public class BulletConfiguration implements Cloneable { public int caustic; public boolean destroysBlocks; public boolean instakill; - public IBulletHurtBehavior bHurt; + /*public IBulletHurtBehavior bHurt; public IBulletHitBehavior bHit; public IBulletRicochetBehavior bRicochet; public IBulletImpactBehavior bImpact; - public IBulletUpdateBehavior bUpdate; + public IBulletUpdateBehavior bUpdate;*/ public IBulletHurtBehaviorNT bntHurt; public IBulletHitBehaviorNT bntHit; public IBulletRicochetBehaviorNT bntRicochet; @@ -179,13 +173,13 @@ public class BulletConfiguration implements Cloneable { public BulletConfiguration setToGuided() { - this.bUpdate = BulletConfigFactory.getLaserSteering(); + this.bntUpdate = BulletConfigFactory.getLaserSteering(); this.doesRicochet = false; return this; } public BulletConfiguration getChlorophyte() { - this.bUpdate = BulletConfigFactory.getHomingBehavior(200, 45); + this.bntUpdate = BulletConfigFactory.getHomingBehavior(200, 45); this.dmgMin *= 1.5F; this.dmgMax *= 1.5F; this.wear *= 0.5; @@ -219,28 +213,6 @@ public class BulletConfiguration implements Cloneable { return this; } - public DamageSource getDamage(EntityBulletBase bullet, EntityLivingBase shooter) { - - DamageSource dmg; - - String unloc = damageType; - - if(unloc.equals(ModDamageSource.s_zomg_prefix)) - unloc += (bullet.worldObj.rand.nextInt(5) + 1); //pain - - if(shooter != null) - dmg = new EntityDamageSourceIndirect(unloc, bullet, shooter); - else - dmg = new DamageSource(unloc); - - if(this.dmgProj) dmg.setProjectile(); - if(this.dmgFire) dmg.setFireDamage(); - if(this.dmgExplosion) dmg.setExplosion(); - if(this.dmgBypass) dmg.setDamageBypassesArmor(); - - return dmg; - } - public DamageSource getDamage(EntityBulletBaseNT bullet, EntityLivingBase shooter) { DamageSource dmg; diff --git a/src/main/java/com/hbm/handler/guncfg/BulletConfigFactory.java b/src/main/java/com/hbm/handler/guncfg/BulletConfigFactory.java index c8e3bebd0..01549a613 100644 --- a/src/main/java/com/hbm/handler/guncfg/BulletConfigFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/BulletConfigFactory.java @@ -4,13 +4,12 @@ import java.util.List; import java.util.Random; import com.hbm.entity.particle.EntityBSmokeFX; -import com.hbm.entity.projectile.EntityBulletBase; +import com.hbm.entity.projectile.EntityBulletBaseNT; +import com.hbm.entity.projectile.EntityBulletBaseNT.*; import com.hbm.explosion.ExplosionNukeSmall; import com.hbm.explosion.ExplosionNukeSmall.MukeParams; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; -import com.hbm.interfaces.IBulletImpactBehavior; -import com.hbm.interfaces.IBulletUpdateBehavior; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.ItemAmmoEnums.*; import com.hbm.items.ModItems; @@ -144,10 +143,10 @@ public class BulletConfigFactory { bullet.leadChance = 0; bullet.vPFX = "reddust"; - bullet.bImpact = new IBulletImpactBehavior() { + bullet.bntImpact = new IBulletImpactBehaviorNT() { @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { + public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z) { if(bullet.worldObj.isRemote) return; @@ -164,9 +163,10 @@ public class BulletConfigFactory { Vec3 motion = Vec3.createVectorHelper(bullet.posX - dx, bullet.posY - dy, bullet.posZ - dz); motion = motion.normalize(); - EntityBulletBase bolt = new EntityBulletBase(bullet.worldObj, BulletConfigSyncingUtil.R556_FLECHETTE_DU); + EntityBulletBaseNT bolt = new EntityBulletBaseNT(bullet.worldObj, BulletConfigSyncingUtil.R556_FLECHETTE_DU); bolt.setPosition(dx, dy, dz); bolt.setThrowableHeading(motion.xCoord, motion.yCoord, motion.zCoord, 0.5F, 0.1F); + bolt.setThrower(bullet.getThrower()); bullet.worldObj.spawnEntityInWorld(bolt); if(i < 30) { @@ -310,12 +310,12 @@ public class BulletConfigFactory { } } - public static IBulletImpactBehavior getPhosphorousEffect(final int radius, final int duration, final int count, final double motion, float hazeChance) { + public static IBulletImpactBehaviorNT getPhosphorousEffect(final int radius, final int duration, final int count, final double motion, float hazeChance) { - IBulletImpactBehavior impact = new IBulletImpactBehavior() { + IBulletImpactBehaviorNT impact = new IBulletImpactBehaviorNT() { @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { + public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z) { List hit = bullet.worldObj.getEntitiesWithinAABBExcludingEntity(bullet, AxisAlignedBB.getBoundingBox(bullet.posX - radius, bullet.posY - radius, bullet.posZ - radius, bullet.posX + radius, bullet.posY + radius, bullet.posZ + radius)); @@ -352,12 +352,12 @@ public class BulletConfigFactory { return impact; } - public static IBulletImpactBehavior getGasEffect(final int radius, final int duration) { + public static IBulletImpactBehaviorNT getGasEffect(final int radius, final int duration) { - IBulletImpactBehavior impact = new IBulletImpactBehavior() { + IBulletImpactBehaviorNT impact = new IBulletImpactBehaviorNT() { @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { + public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z) { List hit = bullet.worldObj.getEntitiesWithinAABBExcludingEntity(bullet, AxisAlignedBB.getBoundingBox(bullet.posX - radius, bullet.posY - radius, bullet.posZ - radius, bullet.posX + radius, bullet.posY + radius, bullet.posZ + radius)); @@ -401,20 +401,20 @@ public class BulletConfigFactory { return impact; } - public static IBulletUpdateBehavior getLaserSteering() { + public static IBulletUpdateBehaviorNT getLaserSteering() { - IBulletUpdateBehavior onUpdate = new IBulletUpdateBehavior() { + IBulletUpdateBehaviorNT onUpdate = new IBulletUpdateBehaviorNT() { @Override - public void behaveUpdate(EntityBulletBase bullet) { + public void behaveUpdate(EntityBulletBaseNT bullet) { - if(bullet.shooter == null || !(bullet.shooter instanceof EntityPlayer)) + if(bullet.getThrower() == null || !(bullet.getThrower() instanceof EntityPlayer)) return; - if(Vec3.createVectorHelper(bullet.posX - bullet.shooter.posX, bullet.posY - bullet.shooter.posY, bullet.posZ - bullet.shooter.posZ).lengthVector() > 100) + if(Vec3.createVectorHelper(bullet.posX - bullet.getThrower().posX, bullet.posY - bullet.getThrower().posY, bullet.posZ - bullet.getThrower().posZ).lengthVector() > 100) return; - MovingObjectPosition mop = Library.rayTrace((EntityPlayer)bullet.shooter, 200, 1); + MovingObjectPosition mop = Library.rayTrace((EntityPlayer)bullet.getThrower(), 200, 1); if(mop == null || mop.hitVec == null) return; @@ -438,12 +438,12 @@ public class BulletConfigFactory { return onUpdate; } - public static IBulletUpdateBehavior getHomingBehavior(final double range, final double angle) { + public static IBulletUpdateBehaviorNT getHomingBehavior(final double range, final double angle) { - IBulletUpdateBehavior onUpdate = new IBulletUpdateBehavior() { + IBulletUpdateBehaviorNT onUpdate = new IBulletUpdateBehaviorNT() { @Override - public void behaveUpdate(EntityBulletBase bullet) { + public void behaveUpdate(EntityBulletBaseNT bullet) { if(bullet.worldObj.isRemote) return; @@ -467,7 +467,7 @@ public class BulletConfigFactory { } } - private void chooseTarget(EntityBulletBase bullet) { + private void chooseTarget(EntityBulletBaseNT bullet) { List entities = bullet.worldObj.getEntitiesWithinAABB(EntityLivingBase.class, bullet.boundingBox.expand(range, range, range)); @@ -478,7 +478,7 @@ public class BulletConfigFactory { for(EntityLivingBase e : entities) { - if(!e.isEntityAlive() || e == bullet.shooter) + if(!e.isEntityAlive() || e == bullet.getThrower()) continue; Vec3 delta = Vec3.createVectorHelper(e.posX - bullet.posX, e.posY + e.height / 2 - bullet.posY, e.posZ - bullet.posZ); diff --git a/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java index 0a397f04a..424deacfc 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun12GaugeFactory.java @@ -2,12 +2,9 @@ package com.hbm.handler.guncfg; import java.util.List; -import com.hbm.entity.projectile.EntityBulletBase; import com.hbm.handler.BulletConfiguration; import com.hbm.handler.CasingEjector; import com.hbm.handler.GunConfiguration; -import com.hbm.interfaces.IBulletHurtBehavior; -import com.hbm.interfaces.IBulletUpdateBehavior; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.ItemAmmoEnums.Ammo12Gauge; import com.hbm.items.ModItems; @@ -372,14 +369,10 @@ public class Gun12GaugeFactory { bullet.dmgMax = 500; bullet.leadChance = 50; - bullet.bHurt = new IBulletHurtBehavior() { - - @Override - public void behaveEntityHurt(EntityBulletBase bullet, Entity hit) { + bullet.bntHurt = (bulletnt, hit) -> { - if(hit instanceof EntityLivingBase) - ((EntityLivingBase)hit).addPotionEffect(new PotionEffect(HbmPotion.bang.id, 20, 0)); - } + if(hit instanceof EntityLivingBase) + ((EntityLivingBase)hit).addPotionEffect(new PotionEffect(HbmPotion.bang.id, 20, 0)); }; @@ -413,38 +406,34 @@ public class Gun12GaugeFactory { bullet.spentCasing = CASING12GAUGE.clone().register("12GaPerc").setColor(0x9E1616, SpentCasing.COLOR_CASE_12GA).setupSmoke(1F, 0.5D, 60, 40); - bullet.bUpdate = new IBulletUpdateBehavior() { - - @Override - public void behaveUpdate(EntityBulletBase bullet) { + bullet.bntUpdate = (bulletnt) -> { + + if(!bulletnt.worldObj.isRemote) { + + Vec3 vec = Vec3.createVectorHelper(bulletnt.motionX, bulletnt.motionY, bulletnt.motionZ); + double radius = 4; + double x = bulletnt.posX + vec.xCoord; + double y = bulletnt.posY + vec.yCoord; + double z = bulletnt.posZ + vec.zCoord; + AxisAlignedBB aabb = AxisAlignedBB.getBoundingBox(x, y, z, x, y, z).expand(radius, radius, radius); + List list = bulletnt.worldObj.getEntitiesWithinAABBExcludingEntity(bulletnt.getThrower(), aabb); - if(!bullet.worldObj.isRemote) { - - Vec3 vec = Vec3.createVectorHelper(bullet.motionX, bullet.motionY, bullet.motionZ); - double radius = 4; - double x = bullet.posX + vec.xCoord; - double y = bullet.posY + vec.yCoord; - double z = bullet.posZ + vec.zCoord; - AxisAlignedBB aabb = AxisAlignedBB.getBoundingBox(x, y, z, x, y, z).expand(radius, radius, radius); - List list = bullet.worldObj.getEntitiesWithinAABBExcludingEntity(bullet.shooter, aabb); - - for(Entity e : list) { - DamageSource source = bullet.shooter instanceof EntityPlayer ? DamageSource.causePlayerDamage((EntityPlayer) bullet.shooter) : DamageSource.magic; - e.attackEntityFrom(source, 30F); - } - - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "plasmablast"); - data.setFloat("r", 0.75F); - data.setFloat("g", 0.75F); - data.setFloat("b", 0.75F); - data.setFloat("pitch", (float) -bullet.rotationPitch + 90); - data.setFloat("yaw", (float) bullet.rotationYaw); - data.setFloat("scale", 2F); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, x, y, z), new TargetPoint(bullet.dimension, x, y, z, 100)); - - bullet.setDead(); + for(Entity e : list) { + DamageSource source = bulletnt.getThrower() instanceof EntityPlayer ? DamageSource.causePlayerDamage((EntityPlayer) bulletnt.getThrower()) : DamageSource.magic; + e.attackEntityFrom(source, 30F); } + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "plasmablast"); + data.setFloat("r", 0.75F); + data.setFloat("g", 0.75F); + data.setFloat("b", 0.75F); + data.setFloat("pitch", (float) -bulletnt.rotationPitch + 90); + data.setFloat("yaw", (float) bulletnt.rotationYaw); + data.setFloat("scale", 2F); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, x, y, z), new TargetPoint(bulletnt.dimension, x, y, z, 100)); + + bulletnt.setDead(); } }; diff --git a/src/main/java/com/hbm/handler/guncfg/Gun44MagnumFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun44MagnumFactory.java index 05ad9902a..a0dff1be2 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun44MagnumFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun44MagnumFactory.java @@ -5,14 +5,11 @@ import java.util.ArrayList; import com.hbm.entity.particle.EntityBSmokeFX; import com.hbm.entity.projectile.EntityBoxcar; import com.hbm.entity.projectile.EntityBuilding; -import com.hbm.entity.projectile.EntityBulletBase; import com.hbm.entity.projectile.EntityDuchessGambit; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; import com.hbm.handler.CasingEjector; import com.hbm.handler.GunConfiguration; -import com.hbm.interfaces.IBulletHitBehavior; -import com.hbm.interfaces.IBulletImpactBehavior; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.ModItems; import com.hbm.items.ItemAmmoEnums.Ammo44Magnum; @@ -27,7 +24,6 @@ import com.hbm.potion.HbmPotion; import com.hbm.render.util.RenderScreenOverlay.Crosshair; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import net.minecraft.entity.Entity; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.potion.PotionEffect; import net.minecraft.util.ResourceLocation; @@ -227,19 +223,15 @@ public class Gun44MagnumFactory { bullet.effects = new ArrayList(); bullet.effects.add(new PotionEffect(eff)); - bullet.bImpact = new IBulletImpactBehavior() { - - @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { - - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "vanillaburst"); - data.setString("mode", "flame"); - data.setInteger("count", 15); - data.setDouble("motion", 0.05D); - - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, bullet.posX, bullet.posY, bullet.posZ), new TargetPoint(bullet.dimension, bullet.posX, bullet.posY, bullet.posZ, 50)); - } + bullet.bntImpact = (bulletnt, x, y, z) -> { + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "vanillaburst"); + data.setString("mode", "flame"); + data.setInteger("count", 15); + data.setDouble("motion", 0.05D); + + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, bulletnt.posX, bulletnt.posY, bulletnt.posZ), new TargetPoint(bulletnt.dimension, bulletnt.posX, bulletnt.posY, bulletnt.posZ, 50)); }; bullet.spentCasing = CASING44.clone().register("44Phos"); @@ -272,27 +264,21 @@ public class Gun44MagnumFactory { bullet.wear = 25; bullet.doesPenetrate = false; - bullet.bHit = new IBulletHitBehavior() { - - @Override - public void behaveEntityHit(EntityBulletBase bullet, Entity hit) { + bullet.bntHit = (bulletnt, hit) -> { - if(!bullet.worldObj.isRemote) { - EntityBoxcar pippo = new EntityBoxcar(bullet.worldObj); - pippo.posX = hit.posX; - pippo.posY = hit.posY + 50; - pippo.posZ = hit.posZ; - - for(int j = 0; j < 50; j++) { - EntityBSmokeFX fx = new EntityBSmokeFX(bullet.worldObj, pippo.posX + (bullet.worldObj.rand.nextDouble() - 0.5) * 4, pippo.posY + (bullet.worldObj.rand.nextDouble() - 0.5) * 12, pippo.posZ + (bullet.worldObj.rand.nextDouble() - 0.5) * 4, 0, 0, 0); - bullet.worldObj.spawnEntityInWorld(fx); - } - bullet.worldObj.spawnEntityInWorld(pippo); - - bullet.worldObj.playSoundEffect(pippo.posX, - pippo.posY + 50, - pippo.posZ, "hbm:alarm.trainHorn", 100F, 1F); + if(!bulletnt.worldObj.isRemote) { + EntityBoxcar pippo = new EntityBoxcar(bulletnt.worldObj); + pippo.posX = hit.posX; + pippo.posY = hit.posY + 50; + pippo.posZ = hit.posZ; + + for(int j = 0; j < 50; j++) { + EntityBSmokeFX fx = new EntityBSmokeFX(bulletnt.worldObj, pippo.posX + (bulletnt.worldObj.rand.nextDouble() - 0.5) * 4, pippo.posY + (bulletnt.worldObj.rand.nextDouble() - 0.5) * 12, pippo.posZ + (bulletnt.worldObj.rand.nextDouble() - 0.5) * 4, 0, 0, 0); + bulletnt.worldObj.spawnEntityInWorld(fx); } + bulletnt.worldObj.spawnEntityInWorld(pippo); + + bulletnt.worldObj.playSoundEffect(pippo.posX, pippo.posY + 50, pippo.posZ, "hbm:alarm.trainHorn", 100F, 1F); } }; @@ -311,29 +297,22 @@ public class Gun44MagnumFactory { bullet.wear = 25; bullet.doesPenetrate = false; - bullet.bHit = new IBulletHitBehavior() { - - @Override - public void behaveEntityHit(EntityBulletBase bullet, Entity hit) { + bullet.bntHit = (bulletnt, hit) -> { - if(!bullet.worldObj.isRemote) { - EntityDuchessGambit pippo = new EntityDuchessGambit(bullet.worldObj); - pippo.posX = hit.posX; - pippo.posY = hit.posY + 50; - pippo.posZ = hit.posZ; - - for(int j = 0; j < 150; j++) { - EntityBSmokeFX fx = new EntityBSmokeFX(bullet.worldObj, pippo.posX + (bullet.worldObj.rand.nextDouble() - 0.5) * 7, pippo.posY + (bullet.worldObj.rand.nextDouble() - 0.5) * 8, pippo.posZ + (bullet.worldObj.rand.nextDouble() - 0.5) * 18, 0, 0, 0); - bullet.worldObj.spawnEntityInWorld(fx); - } - bullet.worldObj.spawnEntityInWorld(pippo); - - bullet.worldObj.playSoundEffect(pippo.posX, - pippo.posY + 50, - pippo.posZ, "hbm:weapon.boat", 100F, 1F); + if(!bulletnt.worldObj.isRemote) { + EntityDuchessGambit pippo = new EntityDuchessGambit(bulletnt.worldObj); + pippo.posX = hit.posX; + pippo.posY = hit.posY + 50; + pippo.posZ = hit.posZ; + + for(int j = 0; j < 150; j++) { + EntityBSmokeFX fx = new EntityBSmokeFX(bulletnt.worldObj, pippo.posX + (bulletnt.worldObj.rand.nextDouble() - 0.5) * 7, pippo.posY + (bulletnt.worldObj.rand.nextDouble() - 0.5) * 8, pippo.posZ + (bulletnt.worldObj.rand.nextDouble() - 0.5) * 18, 0, 0, 0); + bulletnt.worldObj.spawnEntityInWorld(fx); } + bulletnt.worldObj.spawnEntityInWorld(pippo); + + bulletnt.worldObj.playSoundEffect(pippo.posX, pippo.posY + 50, pippo.posZ, "hbm:weapon.boat", 100F, 1F); } - }; bullet.spentCasing = CASING44.clone().register("44BJ").setColor(0x632B2C); @@ -351,29 +330,22 @@ public class Gun44MagnumFactory { bullet.wear = 25; bullet.doesPenetrate = false; - bullet.bHit = new IBulletHitBehavior() { - - @Override - public void behaveEntityHit(EntityBulletBase bullet, Entity hit) { + bullet.bntHit = (bulletnt, hit) -> { - if(!bullet.worldObj.isRemote) { - EntityBuilding pippo = new EntityBuilding(bullet.worldObj); - pippo.posX = hit.posX; - pippo.posY = hit.posY + 50; - pippo.posZ = hit.posZ; - - for(int j = 0; j < 150; j++) { - EntityBSmokeFX fx = new EntityBSmokeFX(bullet.worldObj, pippo.posX + (bullet.worldObj.rand.nextDouble() - 0.5) * 15, pippo.posY + (bullet.worldObj.rand.nextDouble() - 0.5) * 15, pippo.posZ + (bullet.worldObj.rand.nextDouble() - 0.5) * 15, 0, 0, 0); - bullet.worldObj.spawnEntityInWorld(fx); - } - bullet.worldObj.spawnEntityInWorld(pippo); - - bullet.worldObj.playSoundEffect(pippo.posX, - pippo.posY + 50, - pippo.posZ, "hbm:block.debris", 100F, 1F); + if(!bulletnt.worldObj.isRemote) { + EntityBuilding pippo = new EntityBuilding(bulletnt.worldObj); + pippo.posX = hit.posX; + pippo.posY = hit.posY + 50; + pippo.posZ = hit.posZ; + + for(int j = 0; j < 150; j++) { + EntityBSmokeFX fx = new EntityBSmokeFX(bulletnt.worldObj, pippo.posX + (bulletnt.worldObj.rand.nextDouble() - 0.5) * 15, pippo.posY + (bulletnt.worldObj.rand.nextDouble() - 0.5) * 15, pippo.posZ + (bulletnt.worldObj.rand.nextDouble() - 0.5) * 15, 0, 0, 0); + bulletnt.worldObj.spawnEntityInWorld(fx); } + bulletnt.worldObj.spawnEntityInWorld(pippo); + + bulletnt.worldObj.playSoundEffect(pippo.posX, pippo.posY + 50, pippo.posZ, "hbm:block.debris", 100F, 1F); } - }; bullet.spentCasing = CASING44.clone().register("44Silver").setColor(0x2B5963); diff --git a/src/main/java/com/hbm/handler/guncfg/Gun4GaugeFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun4GaugeFactory.java index 191867b61..191c0eb93 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun4GaugeFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun4GaugeFactory.java @@ -3,7 +3,7 @@ package com.hbm.handler.guncfg; import java.util.ArrayList; import java.util.List; -import com.hbm.entity.projectile.EntityBulletBase; +import com.hbm.entity.projectile.EntityBulletBaseNT; import com.hbm.explosion.ExplosionLarge; import com.hbm.explosion.ExplosionNT; import com.hbm.explosion.ExplosionNT.ExAttrib; @@ -12,9 +12,6 @@ import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; import com.hbm.handler.CasingEjector; import com.hbm.handler.GunConfiguration; -import com.hbm.interfaces.IBulletHurtBehavior; -import com.hbm.interfaces.IBulletImpactBehavior; -import com.hbm.interfaces.IBulletUpdateBehavior; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.ModItems; import com.hbm.items.ItemAmmoEnums.Ammo4Gauge; @@ -33,7 +30,6 @@ import com.hbm.render.anim.HbmAnimations.AnimType; import com.hbm.render.util.RenderScreenOverlay.Crosshair; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import net.minecraft.entity.Entity; import net.minecraft.entity.EntityCreature; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; @@ -209,19 +205,15 @@ public class Gun4GaugeFactory { bullet.effects = new ArrayList(); bullet.effects.add(new PotionEffect(eff)); - bullet.bImpact = new IBulletImpactBehavior() { - - @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { - - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "vanillaburst"); - data.setString("mode", "flame"); - data.setInteger("count", 15); - data.setDouble("motion", 0.05D); - - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, bullet.posX, bullet.posY, bullet.posZ), new TargetPoint(bullet.dimension, bullet.posX, bullet.posY, bullet.posZ, 50)); - } + bullet.bntImpact = (bulletnt, x, y, z) -> { + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "vanillaburst"); + data.setString("mode", "flame"); + data.setInteger("count", 15); + data.setDouble("motion", 0.05D); + + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, bulletnt.posX, bulletnt.posY, bulletnt.posZ), new TargetPoint(bulletnt.dimension, bulletnt.posX, bulletnt.posY, bulletnt.posZ, 50)); }; bullet.spentCasing = CASING4GAUGE.clone().register("4GaPhos").setColor(0xF6871A, SpentCasing.COLOR_CASE_4GA); @@ -259,22 +251,18 @@ public class Gun4GaugeFactory { bullet.trail = 1; bullet.explosive = 0.0F; - bullet.bImpact = new IBulletImpactBehavior() { - - @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { - - if(bullet.worldObj.isRemote) - return; - - ExplosionNT explosion = new ExplosionNT(bullet.worldObj, null, bullet.posX, bullet.posY, bullet.posZ, 4); - explosion.atttributes.add(ExAttrib.ALLDROP); - explosion.atttributes.add(ExAttrib.NOHURT); - explosion.doExplosionA(); - explosion.doExplosionB(false); - - ExplosionLarge.spawnParticles(bullet.worldObj, bullet.posX, bullet.posY, bullet.posZ, 15); - } + bullet.bntImpact = (bulletnt, x, y, z) -> { + + if(bulletnt.worldObj.isRemote) + return; + + ExplosionNT explosion = new ExplosionNT(bulletnt.worldObj, null, bulletnt.posX, bulletnt.posY, bulletnt.posZ, 4); + explosion.atttributes.add(ExAttrib.ALLDROP); + explosion.atttributes.add(ExAttrib.NOHURT); + explosion.doExplosionA(); + explosion.doExplosionB(false); + + ExplosionLarge.spawnParticles(bulletnt.worldObj, bulletnt.posX, bulletnt.posY, bulletnt.posZ, 15); }; bullet.spentCasing = CASING4GAUGE.clone().register("4GaSem").setColor(0x5C5C5C, SpentCasing.COLOR_CASE_4GA); @@ -295,21 +283,17 @@ public class Gun4GaugeFactory { bullet.trail = 1; bullet.explosive = 0.0F; - bullet.bImpact = new IBulletImpactBehavior() { - - @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { - - if(bullet.worldObj.isRemote) - return; - - ExplosionNT explosion = new ExplosionNT(bullet.worldObj, null, bullet.posX, bullet.posY, bullet.posZ, 6); - explosion.atttributes.add(ExAttrib.BALEFIRE); - explosion.doExplosionA(); - explosion.doExplosionB(false); - - ExplosionLarge.spawnParticles(bullet.worldObj, bullet.posX, bullet.posY, bullet.posZ, 30); - } + bullet.bntImpact = (bulletnt, x, y, z) -> { + + if(bulletnt.worldObj.isRemote) + return; + + ExplosionNT explosion = new ExplosionNT(bulletnt.worldObj, null, bulletnt.posX, bulletnt.posY, bulletnt.posZ, 6); + explosion.atttributes.add(ExAttrib.BALEFIRE); + explosion.doExplosionA(); + explosion.doExplosionB(false); + + ExplosionLarge.spawnParticles(bulletnt.worldObj, bulletnt.posX, bulletnt.posY, bulletnt.posZ, 30); }; bullet.spentCasing = CASING4GAUGE.clone().register("4GaBale").setColor(0x7BFF44, SpentCasing.COLOR_CASE_4GA); @@ -348,23 +332,20 @@ public class Gun4GaugeFactory { bullet.trail = 4; bullet.vPFX = "smoke"; - bullet.bUpdate = new IBulletUpdateBehavior() { - - @Override - public void behaveUpdate(EntityBulletBase bullet) { + bullet.bntUpdate = (bulletnt) -> { + + if(!bulletnt.worldObj.isRemote) { - if(!bullet.worldObj.isRemote) { + if(bulletnt.ticksExisted > 10) { + bulletnt.setDead(); - if(bullet.ticksExisted > 10) { - bullet.setDead(); + for(int i = 0; i < 50; i++) { - for(int i = 0; i < 50; i++) { - - EntityBulletBase bolt = new EntityBulletBase(bullet.worldObj, BulletConfigSyncingUtil.M44_AP); - bolt.setPosition(bullet.posX, bullet.posY, bullet.posZ); - bolt.setThrowableHeading(bullet.motionX, bullet.motionY, bullet.motionZ, 0.25F, 0.1F); - bullet.worldObj.spawnEntityInWorld(bolt); - } + EntityBulletBaseNT bolt = new EntityBulletBaseNT(bulletnt.worldObj, BulletConfigSyncingUtil.M44_AP); + bolt.setPosition(bulletnt.posX, bulletnt.posY, bulletnt.posZ); + bolt.setThrowableHeading(bulletnt.motionX, bulletnt.motionY, bulletnt.motionZ, 0.25F, 0.1F); + bolt.setThrower(bulletnt.getThrower()); + bulletnt.worldObj.spawnEntityInWorld(bolt); } } } @@ -397,25 +378,21 @@ public class Gun4GaugeFactory { bullet.bulletsMax *= 2; bullet.leadChance = 100; - bullet.bHurt = new IBulletHurtBehavior() { - - @Override - public void behaveEntityHurt(EntityBulletBase bullet, Entity hit) { + bullet.bntHurt = (bulletnt, hit) -> { + + if(bulletnt.worldObj.isRemote) + return; + + if(hit instanceof EntityLivingBase) { + EntityLivingBase living = (EntityLivingBase) hit; + float f = living.getHealth(); - if(bullet.worldObj.isRemote) - return; - - if(hit instanceof EntityLivingBase) { - EntityLivingBase living = (EntityLivingBase) hit; - float f = living.getHealth(); + if(f > 0) { + f = Math.max(0, f - 2); + living.setHealth(f); - if(f > 0) { - f = Math.max(0, f - 2); - living.setHealth(f); - - if(f == 0) - living.onDeath(ModDamageSource.causeBulletDamage(bullet, hit)); - } + if(f == 0) + living.onDeath(ModDamageSource.causeBulletDamage(bulletnt, hit)); } } }; @@ -437,25 +414,21 @@ public class Gun4GaugeFactory { bullet.leadChance = 100; bullet.style = BulletConfiguration.STYLE_FLECHETTE; - bullet.bHurt = new IBulletHurtBehavior() { + bullet.bntHurt = (bulletnt, hit) -> { - @Override - public void behaveEntityHurt(EntityBulletBase bullet, Entity hit) { - - if(bullet.worldObj.isRemote) - return; - - if(hit instanceof EntityPlayer) { - EntityPlayer player = (EntityPlayer) hit; - - IExtendedEntityProperties prop = player.getExtendedProperties("WitcheryExtendedPlayer"); - - NBTTagCompound blank = new NBTTagCompound(); - blank.setTag("WitcheryExtendedPlayer", new NBTTagCompound()); - - if(prop != null) { - prop.loadNBTData(blank); - } + if(bulletnt.worldObj.isRemote) + return; + + if(hit instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer) hit; + + IExtendedEntityProperties prop = player.getExtendedProperties("WitcheryExtendedPlayer"); + + NBTTagCompound blank = new NBTTagCompound(); + blank.setTag("WitcheryExtendedPlayer", new NBTTagCompound()); + + if(prop != null) { + prop.loadNBTData(blank); } } }; @@ -476,20 +449,16 @@ public class Gun4GaugeFactory { bullet.bulletsMax *= 2; bullet.leadChance = 0; - bullet.bHurt = new IBulletHurtBehavior() { + bullet.bntHurt = (bulletnt, hit) -> { + + if(bulletnt.worldObj.isRemote) + return; - @Override - public void behaveEntityHurt(EntityBulletBase bullet, Entity hit) { - - if(bullet.worldObj.isRemote) - return; - - if(hit instanceof EntityPlayer) { - EntityPlayer player = (EntityPlayer) hit; - - player.inventory.dropAllItems(); - player.worldObj.newExplosion(bullet.shooter, player.posX, player.posY, player.posZ, 5.0F, true, true); - } + if(hit instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer) hit; + + player.inventory.dropAllItems(); + player.worldObj.newExplosion(bulletnt.getThrower(), player.posX, player.posY, player.posZ, 5.0F, true, true); } }; @@ -512,27 +481,20 @@ public class Gun4GaugeFactory { bullet.trail = 4; bullet.vPFX = "explode"; - bullet.bUpdate = new IBulletUpdateBehavior() { + bullet.bntUpdate = (bulletnt) -> { - @Override - public void behaveUpdate(EntityBulletBase bullet) { - - if(!bullet.worldObj.isRemote) { - - if(bullet.ticksExisted % 2 == 0) { - - List creatures = bullet.worldObj.getEntitiesWithinAABB(EntityCreature.class, bullet.boundingBox.expand(10, 10, 10)); - - for(EntityCreature creature : creatures) { - - if(creature.getClass().getCanonicalName().startsWith("net.minecraft.entity.titan")) { - BulletConfigFactory.nuclearExplosion(creature, 0, 0, 0, ExplosionNukeSmall.PARAMS_TOTS); + if(!bulletnt.worldObj.isRemote) { + if(bulletnt.ticksExisted % 2 == 0) { - bullet.worldObj.removeEntity(creature); - bullet.worldObj.unloadEntities(new ArrayList() {{ add(creature); }}); - } + List creatures = bulletnt.worldObj.getEntitiesWithinAABB(EntityCreature.class, bulletnt.boundingBox.expand(10, 10, 10)); + for(EntityCreature creature : creatures) { + + if(creature.getClass().getCanonicalName().startsWith("net.minecraft.entity.titan")) { + BulletConfigFactory.nuclearExplosion(creature, 0, 0, 0, ExplosionNukeSmall.PARAMS_TOTS); + + bulletnt.worldObj.removeEntity(creature); + bulletnt.worldObj.unloadEntities(new ArrayList() {{ add(creature); }}); } - } } } diff --git a/src/main/java/com/hbm/handler/guncfg/Gun50BMGFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun50BMGFactory.java index c7d290c35..beda66771 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun50BMGFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun50BMGFactory.java @@ -2,13 +2,11 @@ package com.hbm.handler.guncfg; import java.util.ArrayList; -import com.hbm.entity.projectile.EntityBulletBase; +import com.hbm.entity.projectile.EntityBulletBaseNT; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; import com.hbm.handler.CasingEjector; import com.hbm.handler.GunConfiguration; -import com.hbm.interfaces.IBulletHitBehavior; -import com.hbm.interfaces.IBulletImpactBehavior; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.ModItems; import com.hbm.items.ItemAmmoEnums.Ammo50BMG; @@ -31,7 +29,6 @@ import com.hbm.util.ContaminationUtil.ContaminationType; import com.hbm.util.ContaminationUtil.HazardType; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.potion.PotionEffect; @@ -65,7 +62,7 @@ public class Gun50BMGFactory { bullet.leadChance = 20; bullet.blockDamage = false; - bullet.bImpact = (projectile, x, y, z) -> projectile.worldObj.newExplosion(projectile, x, y, z, 2.0F, false, false); + bullet.bntImpact = (projectile, x, y, z) -> projectile.worldObj.newExplosion(projectile, x, y, z, 2.0F, false, false); bullet.spentCasing = CASINGLUNA.clone().register("LunaStock"); @@ -79,7 +76,7 @@ public class Gun50BMGFactory { bullet.ammo.meta = 1; bullet.incendiary = 10; - bullet.bImpact = (projectile, x, y, z) -> projectile.worldObj.newExplosion(projectile, x, y, z, 5.0F, true, false); + bullet.bntImpact = (projectile, x, y, z) -> projectile.worldObj.newExplosion(projectile, x, y, z, 5.0F, true, false); bullet.spentCasing = CASINGLUNA.clone().register("LunaInc"); @@ -94,7 +91,7 @@ public class Gun50BMGFactory { bullet.ammo.meta = 2; bullet.explosive = 25; bullet.destroysBlocks = true; - bullet.bImpact = (projectile, x, y, z) -> projectile.worldObj.newExplosion(projectile, x, y, z, 25.0F, true, false); + bullet.bntImpact = (projectile, x, y, z) -> projectile.worldObj.newExplosion(projectile, x, y, z, 25.0F, true, false); bullet.spentCasing = CASINGLUNA.clone().register("LunaExp"); @@ -267,19 +264,15 @@ public class Gun50BMGFactory { bullet.effects = new ArrayList(); bullet.effects.add(new PotionEffect(eff)); - bullet.bImpact = new IBulletImpactBehavior() { + bullet.bntImpact = (bulletnt, x, y, z) -> { - @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { - - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "vanillaburst"); - data.setString("mode", "flame"); - data.setInteger("count", 15); - data.setDouble("motion", 0.05D); - - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, bullet.posX, bullet.posY, bullet.posZ), new TargetPoint(bullet.dimension, bullet.posX, bullet.posY, bullet.posZ, 50)); - } + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "vanillaburst"); + data.setString("mode", "flame"); + data.setInteger("count", 15); + data.setDouble("motion", 0.05D); + + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, bulletnt.posX, bulletnt.posY, bulletnt.posZ), new TargetPoint(bulletnt.dimension, bulletnt.posX, bulletnt.posY, bulletnt.posZ, 50)); }; bullet.spentCasing = CASING50BMG.clone().register("50BMGPhos"); @@ -363,39 +356,31 @@ public class Gun50BMGFactory { bullet.leadChance = 100; bullet.doesPenetrate = false; - bullet.bHit = new IBulletHitBehavior() { + bullet.bntHit = (bulletnt, hit) -> { - @Override - public void behaveEntityHit(EntityBulletBase bullet, Entity hit) { - - if(bullet.worldObj.isRemote) - return; - - EntityBulletBase meteor = new EntityBulletBase(bullet.worldObj, BulletConfigSyncingUtil.MASKMAN_METEOR); - meteor.setPosition(hit.posX, hit.posY + 30 + meteor.worldObj.rand.nextInt(10), hit.posZ); - meteor.motionY = -1D; - meteor.shooter = bullet.shooter; - bullet.worldObj.spawnEntityInWorld(meteor); - } + if(bulletnt.worldObj.isRemote) + return; + + EntityBulletBaseNT meteor = new EntityBulletBaseNT(bulletnt.worldObj, BulletConfigSyncingUtil.MASKMAN_METEOR); + meteor.setPosition(hit.posX, hit.posY + 30 + meteor.worldObj.rand.nextInt(10), hit.posZ); + meteor.motionY = -1D; + meteor.setThrower(bulletnt.getThrower()); + bulletnt.worldObj.spawnEntityInWorld(meteor); }; - bullet.bImpact = new IBulletImpactBehavior() { + bullet.bntImpact = (bulletnt, x, y, z) -> { - @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { - - if(bullet.worldObj.isRemote) - return; - - if(y == -1) - return; - - EntityBulletBase meteor = new EntityBulletBase(bullet.worldObj, BulletConfigSyncingUtil.MASKMAN_METEOR); - meteor.setPosition(bullet.posX, bullet.posY + 30 + meteor.worldObj.rand.nextInt(10), bullet.posZ); - meteor.motionY = -1D; - meteor.shooter = bullet.shooter; - bullet.worldObj.spawnEntityInWorld(meteor); - } + if(bulletnt.worldObj.isRemote) + return; + + if(y == -1) + return; + + EntityBulletBaseNT meteor = new EntityBulletBaseNT(bulletnt.worldObj, BulletConfigSyncingUtil.MASKMAN_METEOR); + meteor.setPosition(bulletnt.posX, bulletnt.posY + 30 + meteor.worldObj.rand.nextInt(10), bulletnt.posZ); + meteor.motionY = -1D; + meteor.setThrower(bulletnt.getThrower()); + bulletnt.worldObj.spawnEntityInWorld(meteor); }; bullet.spentCasing = CASING50BMG.clone().register("50BMGIF"); @@ -428,17 +413,13 @@ public class Gun50BMGFactory { bullet.dmgMax = 64; bullet.style = bullet.STYLE_FLECHETTE; - bullet.bHit = new IBulletHitBehavior() { + bullet.bntHit = (bulletnt, hit) -> { - @Override - public void behaveEntityHit(EntityBulletBase bullet, Entity hit) { - - if(bullet.worldObj.isRemote) - return; - - if(hit instanceof EntityLivingBase) { - ContaminationUtil.contaminate((EntityLivingBase) hit, HazardType.RADIATION, ContaminationType.RAD_BYPASS, 100F); - } + if(bulletnt.worldObj.isRemote) + return; + + if(hit instanceof EntityLivingBase) { + ContaminationUtil.contaminate((EntityLivingBase) hit, HazardType.RADIATION, ContaminationType.RAD_BYPASS, 100F); } }; @@ -457,17 +438,13 @@ public class Gun50BMGFactory { bullet.dmgMax = 64; bullet.style = bullet.STYLE_FLECHETTE; - bullet.bHit = new IBulletHitBehavior() { + bullet.bntHit = (bulletnt, hit) -> { - @Override - public void behaveEntityHit(EntityBulletBase bullet, Entity hit) { - - if(bullet.worldObj.isRemote) - return; - - if(hit instanceof EntityLivingBase) { - ContaminationUtil.contaminate((EntityLivingBase) hit, HazardType.RADIATION, ContaminationType.RAD_BYPASS, 50F); - } + if(bulletnt.worldObj.isRemote) + return; + + if(hit instanceof EntityLivingBase) { + ContaminationUtil.contaminate((EntityLivingBase) hit, HazardType.RADIATION, ContaminationType.RAD_BYPASS, 50F); } }; diff --git a/src/main/java/com/hbm/handler/guncfg/Gun556mmFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun556mmFactory.java index dec4e5b73..d983998e8 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun556mmFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun556mmFactory.java @@ -2,13 +2,11 @@ package com.hbm.handler.guncfg; import java.util.ArrayList; -import com.hbm.entity.projectile.EntityBulletBase; +import com.hbm.entity.projectile.EntityBulletBaseNT; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; import com.hbm.handler.CasingEjector; import com.hbm.handler.GunConfiguration; -import com.hbm.interfaces.IBulletHitBehavior; -import com.hbm.interfaces.IBulletImpactBehavior; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.ItemAmmoEnums.Ammo556mm; import com.hbm.items.ModItems; @@ -26,7 +24,6 @@ import com.hbm.render.anim.HbmAnimations.AnimType; import com.hbm.render.util.RenderScreenOverlay.Crosshair; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import net.minecraft.entity.Entity; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.potion.PotionEffect; @@ -185,19 +182,15 @@ public class Gun556mmFactory { bullet.effects = new ArrayList(); bullet.effects.add(new PotionEffect(eff)); - bullet.bImpact = new IBulletImpactBehavior() { + bullet.bntImpact = (bulletnt, x, y, z) -> { - @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { - - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "vanillaburst"); - data.setString("mode", "flame"); - data.setInteger("count", 15); - data.setDouble("motion", 0.05D); - - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, bullet.posX, bullet.posY, bullet.posZ), new TargetPoint(bullet.dimension, bullet.posX, bullet.posY, bullet.posZ, 50)); - } + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "vanillaburst"); + data.setString("mode", "flame"); + data.setInteger("count", 15); + data.setDouble("motion", 0.05D); + + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, bulletnt.posX, bulletnt.posY, bulletnt.posZ), new TargetPoint(bulletnt.dimension, bulletnt.posX, bulletnt.posY, bulletnt.posZ, 50)); }; bullet.spentCasing = CASING556.clone().register("556Phos"); @@ -261,39 +254,31 @@ public class Gun556mmFactory { bullet.leadChance = 100; bullet.doesPenetrate = false; - bullet.bHit = new IBulletHitBehavior() { + bullet.bntHit = (bulletnt, hit) -> { - @Override - public void behaveEntityHit(EntityBulletBase bullet, Entity hit) { - - if(bullet.worldObj.isRemote) - return; - - EntityBulletBase meteor = new EntityBulletBase(bullet.worldObj, BulletConfigSyncingUtil.MASKMAN_METEOR); - meteor.setPosition(hit.posX, hit.posY + 30 + meteor.worldObj.rand.nextInt(10), hit.posZ); - meteor.motionY = -1D; - meteor.shooter = bullet.shooter; - bullet.worldObj.spawnEntityInWorld(meteor); - } + if(bulletnt.worldObj.isRemote) + return; + + EntityBulletBaseNT meteor = new EntityBulletBaseNT(bulletnt.worldObj, BulletConfigSyncingUtil.MASKMAN_METEOR); + meteor.setPosition(hit.posX, hit.posY + 30 + meteor.worldObj.rand.nextInt(10), hit.posZ); + meteor.motionY = -1D; + meteor.setThrower(bulletnt.getThrower()); + bulletnt.worldObj.spawnEntityInWorld(meteor); }; - - bullet.bImpact = new IBulletImpactBehavior() { - @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { - - if(bullet.worldObj.isRemote) - return; - - if(y == -1) - return; - - EntityBulletBase meteor = new EntityBulletBase(bullet.worldObj, BulletConfigSyncingUtil.MASKMAN_METEOR); - meteor.setPosition(bullet.posX, bullet.posY + 30 + meteor.worldObj.rand.nextInt(10), bullet.posZ); - meteor.motionY = -1D; - meteor.shooter = bullet.shooter; - bullet.worldObj.spawnEntityInWorld(meteor); - } + bullet.bntImpact = (bulletnt, x, y, z) -> { + + if(bulletnt.worldObj.isRemote) + return; + + if(y == -1) + return; + + EntityBulletBaseNT meteor = new EntityBulletBaseNT(bulletnt.worldObj, BulletConfigSyncingUtil.MASKMAN_METEOR); + meteor.setPosition(bulletnt.posX, bulletnt.posY + 30 + meteor.worldObj.rand.nextInt(10), bulletnt.posZ); + meteor.motionY = -1D; + meteor.setThrower(bulletnt.getThrower()); + bulletnt.worldObj.spawnEntityInWorld(meteor); }; bullet.spentCasing = CASING556.clone().register("556IF"); @@ -355,19 +340,15 @@ public class Gun556mmFactory { bullet.effects = new ArrayList(); bullet.effects.add(new PotionEffect(eff)); - bullet.bImpact = new IBulletImpactBehavior() { + bullet.bntImpact = (bulletnt, x, y, z) -> { - @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { - - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "vanillaburst"); - data.setString("mode", "flame"); - data.setInteger("count", 15); - data.setDouble("motion", 0.05D); - - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, bullet.posX, bullet.posY, bullet.posZ), new TargetPoint(bullet.dimension, bullet.posX, bullet.posY, bullet.posZ, 50)); - } + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "vanillaburst"); + data.setString("mode", "flame"); + data.setInteger("count", 15); + data.setDouble("motion", 0.05D); + + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, bulletnt.posX, bulletnt.posY, bulletnt.posZ), new TargetPoint(bulletnt.dimension, bulletnt.posX, bulletnt.posY, bulletnt.posZ, 50)); }; bullet.spentCasing = CASING556.clone().register("556FlecPhos"); @@ -402,39 +383,31 @@ public class Gun556mmFactory { bullet.leadChance = 50; bullet.doesPenetrate = false; - bullet.bHit = new IBulletHitBehavior() { + bullet.bntHit = (bulletnt, hit) -> { - @Override - public void behaveEntityHit(EntityBulletBase bullet, Entity hit) { - - if(bullet.worldObj.isRemote) - return; - - EntityBulletBase meteor = new EntityBulletBase(bullet.worldObj, BulletConfigSyncingUtil.MASKMAN_METEOR); - meteor.setPosition(hit.posX, hit.posY + 30 + meteor.worldObj.rand.nextInt(10), hit.posZ); - meteor.motionY = -1D; - meteor.shooter = bullet.shooter; - bullet.worldObj.spawnEntityInWorld(meteor); - } + if(bulletnt.worldObj.isRemote) + return; + + EntityBulletBaseNT meteor = new EntityBulletBaseNT(bulletnt.worldObj, BulletConfigSyncingUtil.MASKMAN_METEOR); + meteor.setPosition(hit.posX, hit.posY + 30 + meteor.worldObj.rand.nextInt(10), hit.posZ); + meteor.motionY = -1D; + meteor.setThrower(bulletnt.getThrower()); + bulletnt.worldObj.spawnEntityInWorld(meteor); }; - bullet.bImpact = new IBulletImpactBehavior() { + bullet.bntImpact = (bulletnt, x, y, z) -> { - @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { - - if(bullet.worldObj.isRemote) - return; - - if(y == -1) - return; - - EntityBulletBase meteor = new EntityBulletBase(bullet.worldObj, BulletConfigSyncingUtil.MASKMAN_METEOR); - meteor.setPosition(bullet.posX, bullet.posY + 30 + meteor.worldObj.rand.nextInt(10), bullet.posZ); - meteor.motionY = -1D; - meteor.shooter = bullet.shooter; - bullet.worldObj.spawnEntityInWorld(meteor); - } + if(bulletnt.worldObj.isRemote) + return; + + if(y == -1) + return; + + EntityBulletBaseNT meteor = new EntityBulletBaseNT(bulletnt.worldObj, BulletConfigSyncingUtil.MASKMAN_METEOR); + meteor.setPosition(bulletnt.posX, bulletnt.posY + 30 + meteor.worldObj.rand.nextInt(10), bulletnt.posZ); + meteor.motionY = -1D; + meteor.setThrower(bulletnt.getThrower()); + bulletnt.worldObj.spawnEntityInWorld(meteor); }; bullet.spentCasing = CASING556.clone().register("556FlecIF"); diff --git a/src/main/java/com/hbm/handler/guncfg/Gun75BoltFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun75BoltFactory.java index 89d7f2c7c..b3d9bae6f 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun75BoltFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun75BoltFactory.java @@ -2,11 +2,8 @@ package com.hbm.handler.guncfg; import java.util.ArrayList; -import com.hbm.entity.projectile.EntityBulletBase; import com.hbm.handler.BulletConfiguration; import com.hbm.handler.GunConfiguration; -import com.hbm.interfaces.IBulletHurtBehavior; -import com.hbm.interfaces.IBulletImpactBehavior; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.ItemAmmoEnums.Ammo75Bolt; import com.hbm.items.ModItems; @@ -23,7 +20,6 @@ import com.hbm.render.anim.HbmAnimations.AnimType; import com.hbm.render.util.RenderScreenOverlay.Crosshair; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.potion.PotionEffect; @@ -96,25 +92,21 @@ public class Gun75BoltFactory { bullet.doesRicochet = false; bullet.explosive = 0.25F; - bullet.bHurt = new IBulletHurtBehavior() { + bullet.bntHurt = (bulletnt, hit) -> { - @Override - public void behaveEntityHurt(EntityBulletBase bullet, Entity hit) { - - if(bullet.worldObj.isRemote) - return; - - if(hit instanceof EntityLivingBase) { - EntityLivingBase living = (EntityLivingBase) hit; - float f = living.getHealth(); - - if(f > 0) { - f = Math.max(0, f - 2); - living.setHealth(f); - - if(f == 0) - living.onDeath(ModDamageSource.lead); - } + if(bulletnt.worldObj.isRemote) + return; + + if(hit instanceof EntityLivingBase) { + EntityLivingBase living = (EntityLivingBase) hit; + float f = living.getHealth(); + + if(f > 0) { + f = Math.max(0, f - 2); + living.setHealth(f); + + if(f == 0) + living.onDeath(ModDamageSource.lead); } } }; @@ -142,19 +134,15 @@ public class Gun75BoltFactory { bullet.effects = new ArrayList(); bullet.effects.add(new PotionEffect(eff)); - bullet.bImpact = new IBulletImpactBehavior() { + bullet.bntImpact = (bulletnt, x, y, z) -> { - @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { - - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "vanillaburst"); - data.setString("mode", "flame"); - data.setInteger("count", 15); - data.setDouble("motion", 0.05D); - - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, bullet.posX, bullet.posY, bullet.posZ), new TargetPoint(bullet.dimension, bullet.posX, bullet.posY, bullet.posZ, 50)); - } + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "vanillaburst"); + data.setString("mode", "flame"); + data.setInteger("count", 15); + data.setDouble("motion", 0.05D); + + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, bulletnt.posX, bulletnt.posY, bulletnt.posZ), new TargetPoint(bulletnt.dimension, bulletnt.posX, bulletnt.posY, bulletnt.posZ, 50)); }; return bullet; diff --git a/src/main/java/com/hbm/handler/guncfg/GunCannonFactory.java b/src/main/java/com/hbm/handler/guncfg/GunCannonFactory.java index 42a79013e..2d8710522 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunCannonFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunCannonFactory.java @@ -1,9 +1,7 @@ package com.hbm.handler.guncfg; -import com.hbm.entity.projectile.EntityBulletBase; import com.hbm.explosion.ExplosionNukeSmall; import com.hbm.handler.BulletConfiguration; -import com.hbm.interfaces.IBulletImpactBehavior; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.ItemAmmoEnums.Ammo240Shell; import com.hbm.items.ModItems; @@ -86,12 +84,8 @@ public class GunCannonFactory { bullet.dmgMin = 100; bullet.dmgMax = 150; - bullet.bImpact = new IBulletImpactBehavior() { - - @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { - BulletConfigFactory.nuclearExplosion(bullet, x, y, z, ExplosionNukeSmall.PARAMS_TOTS); - } + bullet.bntImpact = (bulletnt, x, y, z) -> { + BulletConfigFactory.nuclearExplosion(bulletnt, x, y, z, ExplosionNukeSmall.PARAMS_TOTS); }; bullet.spentCasing = CASINNG240MM; diff --git a/src/main/java/com/hbm/handler/guncfg/GunDartFactory.java b/src/main/java/com/hbm/handler/guncfg/GunDartFactory.java index 70c743232..07bcc2878 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunDartFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunDartFactory.java @@ -2,12 +2,10 @@ package com.hbm.handler.guncfg; import java.util.ArrayList; -import com.hbm.entity.projectile.EntityBulletBase; import com.hbm.extprop.HbmLivingProps; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; import com.hbm.handler.GunConfiguration; -import com.hbm.interfaces.IBulletHurtBehavior; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.ItemAmmoEnums.AmmoDart; import com.hbm.items.ModItems; @@ -16,7 +14,6 @@ import com.hbm.lib.HbmCollection.EnumGunManufacturer; import com.hbm.main.MainRegistry; import com.hbm.render.util.RenderScreenOverlay.Crosshair; -import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.potion.Potion; @@ -103,27 +100,23 @@ public class GunDartFactory { bullet.effects = new ArrayList(); bullet.effects.add(new PotionEffect(Potion.wither.id, 60 * 20, 2)); - bullet.bHurt = new IBulletHurtBehavior() { + bullet.bntHurt = (bulletnt, hit) -> { - @Override - public void behaveEntityHurt(EntityBulletBase bullet, Entity hit) { - - if(bullet.worldObj.isRemote) + if(bulletnt.worldObj.isRemote) + return; + + if(hit instanceof EntityPlayer) { + + if(((EntityPlayer) hit).inventory.hasItem(ModItems.ingot_meteorite_forged)) return; - - if(hit instanceof EntityPlayer) { - - if(((EntityPlayer) hit).inventory.hasItem(ModItems.ingot_meteorite_forged)) - return; - - if(bullet.shooter instanceof EntityPlayer) { - - EntityPlayer shooter = (EntityPlayer) bullet.shooter; - - if(shooter.getHeldItem() != null && shooter.getHeldItem().getItem() == ModItems.gun_darter) { - ItemGunDart.writePlayer(shooter.getHeldItem(), (EntityPlayer)hit); - shooter.playSound("random.orb", 1.0F, 1.0F); - } + + if(bulletnt.getThrower() instanceof EntityPlayer) { + + EntityPlayer shooter = (EntityPlayer) bulletnt.getThrower(); + + if(shooter.getHeldItem() != null && shooter.getHeldItem().getItem() == ModItems.gun_darter) { + ItemGunDart.writePlayer(shooter.getHeldItem(), (EntityPlayer) hit); + shooter.playSound("random.orb", 1.0F, 1.0F); } } } @@ -146,23 +139,19 @@ public class GunDartFactory { bullet.style = bullet.STYLE_FLECHETTE; bullet.leadChance = 0; - bullet.bHurt = new IBulletHurtBehavior() { + bullet.bntHurt = (bulletnt, hit) -> { - @Override - public void behaveEntityHurt(EntityBulletBase bullet, Entity hit) { - - if(bullet.worldObj.isRemote) - return; - - if(hit instanceof EntityLivingBase) { - - EntityLivingBase e = (EntityLivingBase) hit; + if(bulletnt.worldObj.isRemote) + return; - if(HbmLivingProps.getRadiation(e) < 250) - HbmLivingProps.setRadiation(e, 250); - if(HbmLivingProps.getTimer(e) <= 0) - HbmLivingProps.setTimer(e, MainRegistry.polaroidID * 60 * 20); - } + if(hit instanceof EntityLivingBase) { + + EntityLivingBase e = (EntityLivingBase) hit; + + if(HbmLivingProps.getRadiation(e) < 250) + HbmLivingProps.setRadiation(e, 250); + if(HbmLivingProps.getTimer(e) <= 0) + HbmLivingProps.setTimer(e, MainRegistry.polaroidID * 60 * 20); } }; diff --git a/src/main/java/com/hbm/handler/guncfg/GunDetonatorFactory.java b/src/main/java/com/hbm/handler/guncfg/GunDetonatorFactory.java index dad35a32a..ab25f43bc 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunDetonatorFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunDetonatorFactory.java @@ -2,14 +2,12 @@ package com.hbm.handler.guncfg; import java.util.ArrayList; -import com.hbm.entity.projectile.EntityBulletBase; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; import com.hbm.handler.GunConfiguration; import com.hbm.interfaces.IBomb; import com.hbm.interfaces.IBomb.BombReturnCode; import com.hbm.main.MainRegistry; -import com.hbm.interfaces.IBulletImpactBehavior; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.lib.HbmCollection.EnumGunManufacturer; import com.hbm.packet.PacketDispatcher; @@ -90,22 +88,20 @@ public class GunDetonatorFactory { bullet.doesRicochet = false; bullet.setToBolt(BulletConfiguration.BOLT_LASER); - bullet.bImpact = new IBulletImpactBehavior() { - - @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { + bullet.bntImpact = (bulletnt, x, y, z) -> { - World world = bullet.worldObj; - if(!world.isRemote && y > 0) { - Block b = world.getBlock(x, y, z); - if(b instanceof IBomb) { - BombReturnCode ret = ((IBomb)b).explode(world, x, y, z); - - if(ret.wasSuccessful() && bullet.shooter instanceof EntityPlayerMP) { - EntityPlayerMP player = (EntityPlayerMP) bullet.shooter; - world.playSoundAtEntity(player, "hbm:item.techBleep", 1.0F, 1.0F); - PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("").nextTranslation(ret.getUnlocalizedMessage()).color(EnumChatFormatting.YELLOW).flush(), MainRegistry.proxy.ID_DETONATOR), (EntityPlayerMP) player); - } + World world = bulletnt.worldObj; + if(!world.isRemote && y > 0) { + Block b = world.getBlock(x, y, z); + if(b instanceof IBomb) { + BombReturnCode ret = ((IBomb) b).explode(world, x, y, z); + + if(ret.wasSuccessful() && bulletnt.getThrower() instanceof EntityPlayerMP) { + EntityPlayerMP player = (EntityPlayerMP) bulletnt.getThrower(); + world.playSoundAtEntity(player, "hbm:item.techBleep", 1.0F, 1.0F); + PacketDispatcher.wrapper.sendTo( + new PlayerInformPacket(ChatBuilder.start("").nextTranslation(ret.getUnlocalizedMessage()).color(EnumChatFormatting.YELLOW).flush(), MainRegistry.proxy.ID_DETONATOR), + (EntityPlayerMP) player); } } } diff --git a/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java b/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java index 1ecf00f06..750d2ada3 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java @@ -3,14 +3,14 @@ package com.hbm.handler.guncfg; import java.util.ArrayList; import com.hbm.blocks.ModBlocks; -import com.hbm.entity.projectile.EntityBulletBase; +import com.hbm.entity.projectile.EntityBulletBaseNT; +import com.hbm.entity.projectile.EntityBulletBaseNT.IBulletImpactBehaviorNT; +import com.hbm.entity.projectile.EntityBulletBaseNT.IBulletUpdateBehaviorNT; import com.hbm.explosion.ExplosionChaos; import com.hbm.explosion.ExplosionLarge; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; import com.hbm.handler.GunConfiguration; -import com.hbm.interfaces.IBulletImpactBehavior; -import com.hbm.interfaces.IBulletUpdateBehavior; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.ItemAmmoEnums.AmmoFireExt; import com.hbm.items.ItemAmmoEnums.AmmoFlamethrower; @@ -326,10 +326,10 @@ public class GunEnergyFactory { bullet.dmgProj = false; bullet.dmgFire = true; - bullet.bImpact = new IBulletImpactBehavior() { + bullet.bntImpact = new IBulletImpactBehaviorNT() { @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { + public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z) { if(!bullet.worldObj.isRemote) { NBTTagCompound data = new NBTTagCompound(); @@ -373,7 +373,7 @@ public class GunEnergyFactory { bullet.maxAge = 200; bullet.vPFX = "smoke"; - bullet.bImpact = BulletConfigFactory.getPhosphorousEffect(5, 60 * 20, 25, 0.25, 0.1F); + bullet.bntImpact = BulletConfigFactory.getPhosphorousEffect(5, 60 * 20, 25, 0.25, 0.1F); return bullet; } @@ -420,7 +420,7 @@ public class GunEnergyFactory { bullet.dmgFire = false; - bullet.bImpact = BulletConfigFactory.getGasEffect(5, 60 * 20); + bullet.bntImpact = BulletConfigFactory.getGasEffect(5, 60 * 20); return bullet; } @@ -447,12 +447,12 @@ public class GunEnergyFactory { bullet.style = BulletConfiguration.STYLE_NONE; bullet.plink = BulletConfiguration.PLINK_NONE; - bullet.bHurt = (bulletEntity, target) -> { target.extinguish(); }; + bullet.bntHurt = (bulletEntity, target) -> { target.extinguish(); }; - bullet.bImpact = new IBulletImpactBehavior() { + bullet.bntImpact = new IBulletImpactBehaviorNT() { @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { + public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z) { if(!bullet.worldObj.isRemote) { @@ -485,10 +485,10 @@ public class GunEnergyFactory { } }; - bullet.bUpdate = new IBulletUpdateBehavior() { + bullet.bntUpdate = new IBulletUpdateBehaviorNT() { @Override - public void behaveUpdate(EntityBulletBase bullet) { + public void behaveUpdate(EntityBulletBaseNT bullet) { if(bullet.worldObj.isRemote) { @@ -527,10 +527,10 @@ public class GunEnergyFactory { bullet.ammo = new ComparableStack(ModItems.ammo_fireext.stackFromEnum(AmmoFireExt.FOAM)); bullet.spread = 0.05F; - bullet.bImpact = new IBulletImpactBehavior() { + bullet.bntImpact = new IBulletImpactBehaviorNT() { @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { + public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z) { if(!bullet.worldObj.isRemote) { @@ -582,10 +582,10 @@ public class GunEnergyFactory { } }; - bullet.bUpdate = new IBulletUpdateBehavior() { + bullet.bntUpdate = new IBulletUpdateBehaviorNT() { @Override - public void behaveUpdate(EntityBulletBase bullet) { + public void behaveUpdate(EntityBulletBaseNT bullet) { if(bullet.worldObj.isRemote) { @@ -614,12 +614,12 @@ public class GunEnergyFactory { bullet.ammo = new ComparableStack(ModItems.ammo_fireext.stackFromEnum(AmmoFireExt.SAND)); bullet.spread = 0.1F; - bullet.bHurt = null; // does not extinguish entities + bullet.bntHurt = null; // does not extinguish entities - bullet.bImpact = new IBulletImpactBehavior() { + bullet.bntImpact = new IBulletImpactBehaviorNT() { @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { + public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z) { if(!bullet.worldObj.isRemote) { @@ -655,10 +655,10 @@ public class GunEnergyFactory { } }; - bullet.bUpdate = new IBulletUpdateBehavior() { + bullet.bntUpdate = new IBulletUpdateBehaviorNT() { @Override - public void behaveUpdate(EntityBulletBase bullet) { + public void behaveUpdate(EntityBulletBaseNT bullet) { if(bullet.worldObj.isRemote) { @@ -707,10 +707,10 @@ public class GunEnergyFactory { bullet.effects = new ArrayList(); bullet.effects.add(new PotionEffect(HbmPotion.bang.id, 10 * 20, 0)); - bullet.bImpact = new IBulletImpactBehavior() { + bullet.bntImpact = new IBulletImpactBehaviorNT() { @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { + public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z) { if(!bullet.worldObj.isRemote) { ExplosionChaos.explodeZOMG(bullet.worldObj, (int)Math.floor(bullet.posX), (int)Math.floor(bullet.posY), (int)Math.floor(bullet.posZ), 5); diff --git a/src/main/java/com/hbm/handler/guncfg/GunFatmanFactory.java b/src/main/java/com/hbm/handler/guncfg/GunFatmanFactory.java index 0e8dbbd24..e068b15f4 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunFatmanFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunFatmanFactory.java @@ -3,7 +3,8 @@ package com.hbm.handler.guncfg; import java.util.ArrayList; import com.hbm.blocks.ModBlocks; -import com.hbm.entity.projectile.EntityBulletBase; +import com.hbm.entity.projectile.EntityBulletBaseNT; +import com.hbm.entity.projectile.EntityBulletBaseNT.*; import com.hbm.explosion.ExplosionLarge; import com.hbm.explosion.ExplosionNT; import com.hbm.explosion.ExplosionNukeSmall; @@ -12,8 +13,6 @@ import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; import com.hbm.handler.GunConfiguration; import com.hbm.handler.radiation.ChunkRadiationManager; -import com.hbm.interfaces.IBulletImpactBehavior; -import com.hbm.interfaces.IBulletUpdateBehavior; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.ModItems; import com.hbm.items.ItemAmmoEnums.AmmoFatman; @@ -133,10 +132,10 @@ public class GunFatmanFactory { BulletConfiguration bullet = BulletConfigFactory.standardNukeConfig(); bullet.ammo = new ComparableStack(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.STOCK)); - bullet.bImpact = new IBulletImpactBehavior() { + bullet.bntImpact = new IBulletImpactBehaviorNT() { @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { + public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z) { BulletConfigFactory.nuclearExplosion(bullet, x, y, z, ExplosionNukeSmall.PARAMS_MEDIUM); } }; @@ -149,10 +148,10 @@ public class GunFatmanFactory { BulletConfiguration bullet = BulletConfigFactory.standardNukeConfig(); bullet.ammo = new ComparableStack(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.LOW)); - bullet.bImpact = new IBulletImpactBehavior() { + bullet.bntImpact = new IBulletImpactBehaviorNT() { @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { + public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z) { BulletConfigFactory.nuclearExplosion(bullet, x, y, z, ExplosionNukeSmall.PARAMS_LOW); } }; @@ -165,10 +164,10 @@ public class GunFatmanFactory { BulletConfiguration bullet = BulletConfigFactory.standardNukeConfig(); bullet.ammo = new ComparableStack(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.HIGH)); - bullet.bImpact = new IBulletImpactBehavior() { + bullet.bntImpact = new IBulletImpactBehaviorNT() { @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { + public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z) { BulletConfigFactory.nuclearExplosion(bullet, x, y, z, ExplosionNukeSmall.PARAMS_HIGH); } }; @@ -185,10 +184,10 @@ public class GunFatmanFactory { bullet.spread = 0.1F; bullet.style = bullet.STYLE_GRENADE; - bullet.bImpact = new IBulletImpactBehavior() { + bullet.bntImpact = new IBulletImpactBehaviorNT() { @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { + public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z) { BulletConfigFactory.nuclearExplosion(bullet, x, y, z, ExplosionNukeSmall.PARAMS_TOTS); } }; @@ -201,10 +200,10 @@ public class GunFatmanFactory { BulletConfiguration bullet = BulletConfigFactory.standardNukeConfig(); bullet.ammo = new ComparableStack(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.SAFE)); - bullet.bImpact = new IBulletImpactBehavior() { + bullet.bntImpact = new IBulletImpactBehaviorNT() { @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { + public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z) { BulletConfigFactory.nuclearExplosion(bullet, x, y, z, ExplosionNukeSmall.PARAMS_SAFE); } }; @@ -218,10 +217,10 @@ public class GunFatmanFactory { bullet.ammo = new ComparableStack(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.PUMPKIN)); bullet.explosive = 10F; - bullet.bImpact = new IBulletImpactBehavior() { + bullet.bntImpact = new IBulletImpactBehaviorNT() { @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { + public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z) { if(!bullet.worldObj.isRemote) { @@ -250,10 +249,10 @@ public class GunFatmanFactory { bullet.explosive = 3F; bullet.style = bullet.STYLE_BARREL; - bullet.bImpact = new IBulletImpactBehavior() { + bullet.bntImpact = new IBulletImpactBehaviorNT() { @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { + public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z) { if(!bullet.worldObj.isRemote) { @@ -308,10 +307,10 @@ public class GunFatmanFactory { bullet.style = BulletConfiguration.STYLE_MIRV; bullet.velocity *= 3; - bullet.bUpdate = new IBulletUpdateBehavior() { + bullet.bntUpdate = new IBulletUpdateBehaviorNT() { @Override - public void behaveUpdate(EntityBulletBase bullet) { + public void behaveUpdate(EntityBulletBaseNT bullet) { if(bullet.worldObj.isRemote) return; @@ -321,7 +320,7 @@ public class GunFatmanFactory { for(int i = 0; i < 6; i++) { - EntityBulletBase nuke = new EntityBulletBase(bullet.worldObj, BulletConfigSyncingUtil.NUKE_NORMAL); + EntityBulletBaseNT nuke = new EntityBulletBaseNT(bullet.worldObj, BulletConfigSyncingUtil.NUKE_NORMAL); nuke.setPosition(bullet.posX, bullet.posY, bullet.posZ); double mod = 0.1D; nuke.motionX = bullet.worldObj.rand.nextGaussian() * mod; @@ -345,10 +344,10 @@ public class GunFatmanFactory { bullet.style = BulletConfiguration.STYLE_MIRV; bullet.velocity *= 3; - bullet.bUpdate = new IBulletUpdateBehavior() { + bullet.bntUpdate = new IBulletUpdateBehaviorNT() { @Override - public void behaveUpdate(EntityBulletBase bullet) { + public void behaveUpdate(EntityBulletBaseNT bullet) { if(bullet.worldObj.isRemote) return; @@ -358,7 +357,7 @@ public class GunFatmanFactory { for(int i = 0; i < 6; i++) { - EntityBulletBase nuke = new EntityBulletBase(bullet.worldObj, BulletConfigSyncingUtil.NUKE_LOW); + EntityBulletBaseNT nuke = new EntityBulletBaseNT(bullet.worldObj, BulletConfigSyncingUtil.NUKE_LOW); nuke.setPosition(bullet.posX, bullet.posY, bullet.posZ); double mod = 0.1D; nuke.motionX = bullet.worldObj.rand.nextGaussian() * mod; @@ -382,10 +381,10 @@ public class GunFatmanFactory { bullet.style = BulletConfiguration.STYLE_MIRV; bullet.velocity *= 3; - bullet.bUpdate = new IBulletUpdateBehavior() { + bullet.bntUpdate = new IBulletUpdateBehaviorNT() { @Override - public void behaveUpdate(EntityBulletBase bullet) { + public void behaveUpdate(EntityBulletBaseNT bullet) { if(bullet.worldObj.isRemote) return; @@ -395,7 +394,7 @@ public class GunFatmanFactory { for(int i = 0; i < 6; i++) { - EntityBulletBase nuke = new EntityBulletBase(bullet.worldObj, BulletConfigSyncingUtil.NUKE_HIGH); + EntityBulletBaseNT nuke = new EntityBulletBaseNT(bullet.worldObj, BulletConfigSyncingUtil.NUKE_HIGH); nuke.setPosition(bullet.posX, bullet.posY, bullet.posZ); double mod = 0.1D; nuke.motionX = bullet.worldObj.rand.nextGaussian() * mod; @@ -419,10 +418,10 @@ public class GunFatmanFactory { bullet.style = BulletConfiguration.STYLE_MIRV; bullet.velocity *= 3; - bullet.bUpdate = new IBulletUpdateBehavior() { + bullet.bntUpdate = new IBulletUpdateBehaviorNT() { @Override - public void behaveUpdate(EntityBulletBase bullet) { + public void behaveUpdate(EntityBulletBaseNT bullet) { if(bullet.worldObj.isRemote) return; @@ -432,7 +431,7 @@ public class GunFatmanFactory { for(int i = 0; i < 6; i++) { - EntityBulletBase nuke = new EntityBulletBase(bullet.worldObj, BulletConfigSyncingUtil.NUKE_SAFE); + EntityBulletBaseNT nuke = new EntityBulletBaseNT(bullet.worldObj, BulletConfigSyncingUtil.NUKE_SAFE); nuke.setPosition(bullet.posX, bullet.posY, bullet.posZ); double mod = 0.1D; nuke.motionX = bullet.worldObj.rand.nextGaussian() * mod; @@ -456,10 +455,10 @@ public class GunFatmanFactory { bullet.style = BulletConfiguration.STYLE_MIRV; bullet.velocity *= 3; - bullet.bUpdate = new IBulletUpdateBehavior() { + bullet.bntUpdate = new IBulletUpdateBehaviorNT() { @Override - public void behaveUpdate(EntityBulletBase bullet) { + public void behaveUpdate(EntityBulletBaseNT bullet) { if(bullet.worldObj.isRemote) return; @@ -469,16 +468,16 @@ public class GunFatmanFactory { for(int i = 0; i < 24; i++) { - EntityBulletBase nuke = null; + EntityBulletBaseNT nuke = null; if(i < 6) - nuke = new EntityBulletBase(bullet.worldObj, BulletConfigSyncingUtil.NUKE_LOW); + nuke = new EntityBulletBaseNT(bullet.worldObj, BulletConfigSyncingUtil.NUKE_LOW); else if(i < 12) - nuke = new EntityBulletBase(bullet.worldObj, BulletConfigSyncingUtil.NUKE_TOTS); + nuke = new EntityBulletBaseNT(bullet.worldObj, BulletConfigSyncingUtil.NUKE_TOTS); else if(i < 18) - nuke = new EntityBulletBase(bullet.worldObj, BulletConfigSyncingUtil.NUKE_NORMAL); + nuke = new EntityBulletBaseNT(bullet.worldObj, BulletConfigSyncingUtil.NUKE_NORMAL); else - nuke = new EntityBulletBase(bullet.worldObj, BulletConfigSyncingUtil.NUKE_AMAT); + nuke = new EntityBulletBaseNT(bullet.worldObj, BulletConfigSyncingUtil.NUKE_AMAT); nuke.setPosition(bullet.posX, bullet.posY, bullet.posZ); @@ -503,8 +502,8 @@ public class GunFatmanFactory { bullet.ammo = new ComparableStack(ModItems.ammo_nuke.stackFromEnum(AmmoFatman.BALEFIRE)); bullet.style = BulletConfiguration.STYLE_BF; - bullet.bImpact = new IBulletImpactBehavior() { - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { + bullet.bntImpact = new IBulletImpactBehaviorNT() { + public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z) { if(!bullet.worldObj.isRemote) { diff --git a/src/main/java/com/hbm/handler/guncfg/GunGrenadeFactory.java b/src/main/java/com/hbm/handler/guncfg/GunGrenadeFactory.java index 0c787f9a9..d65f964e9 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunGrenadeFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunGrenadeFactory.java @@ -2,13 +2,11 @@ package com.hbm.handler.guncfg; import java.util.ArrayList; -import com.hbm.entity.projectile.EntityBulletBase; import com.hbm.explosion.ExplosionNukeSmall; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; import com.hbm.handler.CasingEjector; import com.hbm.handler.GunConfiguration; -import com.hbm.interfaces.IBulletImpactBehavior; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.ModItems; import com.hbm.items.ItemAmmoEnums.AmmoGrenade; @@ -131,7 +129,7 @@ public class GunGrenadeFactory { bullet.trail = 0; bullet.incendiary = 2; - bullet.bImpact = BulletConfigFactory.getPhosphorousEffect(10, 60 * 20, 100, 0.5D, 1F); + bullet.bntImpact = BulletConfigFactory.getPhosphorousEffect(10, 60 * 20, 100, 0.5D, 1F); bullet.spentCasing = CASING40MM.clone().register("40MMPhos"); @@ -213,12 +211,8 @@ public class GunGrenadeFactory { bullet.velocity = 4; bullet.explosive = 0.0F; - bullet.bImpact = new IBulletImpactBehavior() { - - @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { - BulletConfigFactory.nuclearExplosion(bullet, x, y, z, ExplosionNukeSmall.PARAMS_TOTS); - } + bullet.bntImpact = (bulletnt, x, y, z) -> { + BulletConfigFactory.nuclearExplosion(bulletnt, x, y, z, ExplosionNukeSmall.PARAMS_TOTS); }; bullet.spentCasing = CASING40MM.clone().register("40MMNuke"); diff --git a/src/main/java/com/hbm/handler/guncfg/GunNPCFactory.java b/src/main/java/com/hbm/handler/guncfg/GunNPCFactory.java index 960ebee81..8a6bffe40 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunNPCFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunNPCFactory.java @@ -3,12 +3,11 @@ package com.hbm.handler.guncfg; import java.util.List; import java.util.Random; -import com.hbm.entity.projectile.EntityBulletBase; +import com.hbm.entity.projectile.EntityBulletBaseNT; +import com.hbm.entity.projectile.EntityBulletBaseNT.IBulletUpdateBehaviorNT; import com.hbm.explosion.ExplosionNukeGeneric; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; -import com.hbm.interfaces.IBulletImpactBehavior; -import com.hbm.interfaces.IBulletUpdateBehavior; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.ModItems; import com.hbm.lib.ModDamageSource; @@ -51,30 +50,26 @@ public class GunNPCFactory { bullet.trail = 1; bullet.explosive = 1.5F; - bullet.bUpdate = new IBulletUpdateBehavior() { + bullet.bntUpdate = (bulletnt) -> { + + if(bulletnt.worldObj.isRemote) + return; - @Override - public void behaveUpdate(EntityBulletBase bullet) { - - if(bullet.worldObj.isRemote) - return; - - if(bullet.ticksExisted % 10 != 5) - return; - - List players = bullet.worldObj.getEntitiesWithinAABB(EntityPlayer.class, bullet.boundingBox.expand(50, 50, 50)); - - for(EntityPlayer player : players) { - - Vec3 motion = Vec3.createVectorHelper(player.posX - bullet.posX, (player.posY + player.getEyeHeight()) - bullet.posY, player.posZ - bullet.posZ); - motion = motion.normalize(); - - EntityBulletBase bolt = new EntityBulletBase(bullet.worldObj, BulletConfigSyncingUtil.MASKMAN_BOLT); - bolt.shooter = bullet.shooter; - bolt.setPosition(bullet.posX, bullet.posY, bullet.posZ); - bolt.setThrowableHeading(motion.xCoord, motion.yCoord, motion.zCoord, 0.5F, 0.05F); - bullet.worldObj.spawnEntityInWorld(bolt); - } + if(bulletnt.ticksExisted % 10 != 5) + return; + + List players = bulletnt.worldObj.getEntitiesWithinAABB(EntityPlayer.class, bulletnt.boundingBox.expand(50, 50, 50)); + + for(EntityPlayer player : players) { + + Vec3 motion = Vec3.createVectorHelper(player.posX - bulletnt.posX, (player.posY + player.getEyeHeight()) - bulletnt.posY, player.posZ - bulletnt.posZ); + motion = motion.normalize(); + + EntityBulletBaseNT bolt = new EntityBulletBaseNT(bulletnt.worldObj, BulletConfigSyncingUtil.MASKMAN_BOLT); + bolt.setThrower(bulletnt.getThrower()); + bolt.setPosition(bulletnt.posX, bulletnt.posY, bulletnt.posZ); + bolt.setThrowableHeading(motion.xCoord, motion.yCoord, motion.zCoord, 0.5F, 0.05F); + bulletnt.worldObj.spawnEntityInWorld(bolt); } }; @@ -129,20 +124,16 @@ public class GunNPCFactory { bullet.vPFX = "reddust"; bullet.damageType = ModDamageSource.s_laser; - bullet.bImpact = new IBulletImpactBehavior() { + bullet.bntImpact = (bulletnt, x, y, z) -> { + + if(bulletnt.worldObj.isRemote) + return; - @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { - - if(bullet.worldObj.isRemote) - return; - - EntityBulletBase meteor = new EntityBulletBase(bullet.worldObj, BulletConfigSyncingUtil.MASKMAN_METEOR); - meteor.setPosition(bullet.posX, bullet.posY + 30 + meteor.worldObj.rand.nextInt(10), bullet.posZ); - meteor.motionY = -1D; - meteor.shooter = bullet.shooter; - bullet.worldObj.spawnEntityInWorld(meteor); - } + EntityBulletBaseNT meteor = new EntityBulletBaseNT(bulletnt.worldObj, BulletConfigSyncingUtil.MASKMAN_METEOR); + meteor.setPosition(bulletnt.posX, bulletnt.posY + 30 + meteor.worldObj.rand.nextInt(10), bulletnt.posZ); + meteor.motionY = -1D; + meteor.setThrower(bulletnt.getThrower()); + bulletnt.worldObj.spawnEntityInWorld(meteor); }; return bullet; @@ -178,25 +169,21 @@ public class GunNPCFactory { bullet.explosive = 2.5F; bullet.style = BulletConfiguration.STYLE_METEOR; - bullet.bUpdate = new IBulletUpdateBehavior() { + bullet.bntUpdate = (bulletnt) -> { - @Override - public void behaveUpdate(EntityBulletBase bullet) { - - if(!bullet.worldObj.isRemote) - return; - - Random rand = bullet.worldObj.rand; - - for(int i = 0; i < 5; i++) { - NBTTagCompound nbt = new NBTTagCompound(); - nbt.setString("type", "vanillaExt"); - nbt.setString("mode", "flame"); - nbt.setDouble("posX", bullet.posX + rand.nextDouble() * 0.5 - 0.25); - nbt.setDouble("posY", bullet.posY + rand.nextDouble() * 0.5 - 0.25); - nbt.setDouble("posZ", bullet.posZ + rand.nextDouble() * 0.5 - 0.25); - MainRegistry.proxy.effectNT(nbt); - } + if(!bulletnt.worldObj.isRemote) + return; + + Random rand = bulletnt.worldObj.rand; + + for(int i = 0; i < 5; i++) { + NBTTagCompound nbt = new NBTTagCompound(); + nbt.setString("type", "vanillaExt"); + nbt.setString("mode", "flame"); + nbt.setDouble("posX", bulletnt.posX + rand.nextDouble() * 0.5 - 0.25); + nbt.setDouble("posY", bulletnt.posY + rand.nextDouble() * 0.5 - 0.25); + nbt.setDouble("posZ", bulletnt.posZ + rand.nextDouble() * 0.5 - 0.25); + MainRegistry.proxy.effectNT(nbt); } }; @@ -245,13 +232,13 @@ public class GunNPCFactory { bullet.destroysBlocks = false; bullet.explosive = 0F; - bullet.bUpdate = new IBulletUpdateBehavior() { + bullet.bntUpdate = new IBulletUpdateBehaviorNT() { double angle = 90; double range = 100; @Override - public void behaveUpdate(EntityBulletBase bullet) { + public void behaveUpdate(EntityBulletBaseNT bullet) { if(bullet.worldObj.isRemote) return; @@ -265,7 +252,7 @@ public class GunNPCFactory { if(target != null) { if(bullet.getDistanceSqToEntity(target) < 5) { - bullet.getConfig().bImpact.behaveBlockHit(bullet, -1, -1, -1); + bullet.getConfig().bntImpact.behaveBlockHit(bullet, -1, -1, -1); bullet.setDead(); return; } @@ -281,7 +268,7 @@ public class GunNPCFactory { } } - private void chooseTarget(EntityBulletBase bullet) { + private void chooseTarget(EntityBulletBaseNT bullet) { List entities = bullet.worldObj.getEntitiesWithinAABB(EntityLivingBase.class, bullet.boundingBox.expand(range, range, range)); @@ -292,7 +279,7 @@ public class GunNPCFactory { for(EntityLivingBase e : entities) { - if(!e.isEntityAlive() || e == bullet.shooter) + if(!e.isEntityAlive() || e == bullet.getThrower()) continue; Vec3 delta = Vec3.createVectorHelper(e.posX - bullet.posX, e.posY + e.height / 2 - bullet.posY, e.posZ - bullet.posZ); @@ -319,27 +306,23 @@ public class GunNPCFactory { } }; - bullet.bImpact = new IBulletImpactBehavior() { + bullet.bntImpact = (bulletnt, x, y, z) -> { - @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { + bulletnt.worldObj.playSoundEffect(bulletnt.posX, bulletnt.posY, bulletnt.posZ, "hbm:entity.ufoBlast", 5.0F, 0.9F + bulletnt.worldObj.rand.nextFloat() * 0.2F); + bulletnt.worldObj.playSoundEffect(bulletnt.posX, bulletnt.posY, bulletnt.posZ, "fireworks.blast", 5.0F, 0.5F); + ExplosionNukeGeneric.dealDamage(bulletnt.worldObj, bulletnt.posX, bulletnt.posY, bulletnt.posZ, 10, 50); - bullet.worldObj.playSoundEffect(bullet.posX, bullet.posY, bullet.posZ, "hbm:entity.ufoBlast", 5.0F, 0.9F + bullet.worldObj.rand.nextFloat() * 0.2F); - bullet.worldObj.playSoundEffect(bullet.posX, bullet.posY, bullet.posZ, "fireworks.blast", 5.0F, 0.5F); - ExplosionNukeGeneric.dealDamage(bullet.worldObj, bullet.posX, bullet.posY, bullet.posZ, 10, 50); - - for(int i = 0; i < 3; i++) { - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "plasmablast"); - data.setFloat("r", 0.0F); - data.setFloat("g", 0.75F); - data.setFloat("b", 1.0F); - data.setFloat("pitch", -30F + 30F * i); - data.setFloat("yaw", bullet.worldObj.rand.nextFloat() * 180F); - data.setFloat("scale", 5F); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, bullet.posX, bullet.posY, bullet.posZ), - new TargetPoint(bullet.worldObj.provider.dimensionId, bullet.posX, bullet.posY, bullet.posZ, 100)); - } + for(int i = 0; i < 3; i++) { + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "plasmablast"); + data.setFloat("r", 0.0F); + data.setFloat("g", 0.75F); + data.setFloat("b", 1.0F); + data.setFloat("pitch", -30F + 30F * i); + data.setFloat("yaw", bulletnt.worldObj.rand.nextFloat() * 180F); + data.setFloat("scale", 5F); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, bulletnt.posX, bulletnt.posY, bulletnt.posZ), + new TargetPoint(bulletnt.worldObj.provider.dimensionId, bulletnt.posX, bulletnt.posY, bulletnt.posZ, 100)); } }; diff --git a/src/main/java/com/hbm/handler/guncfg/GunOSIPRFactory.java b/src/main/java/com/hbm/handler/guncfg/GunOSIPRFactory.java index db093f702..720a57e2c 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunOSIPRFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunOSIPRFactory.java @@ -101,17 +101,17 @@ public class GunOSIPRFactory { bullet.maxAge = 150; bullet.velocity = 2; - bullet.bHurt = (ball, entity) -> { + bullet.bntHurt = (ball, entity) -> { if(entity instanceof EntityLivingBase) { EntityLivingBase entityLiving = (EntityLivingBase) entity; entity.addVelocity(ball.motionX / 2, ball.motionY / 2, ball.motionZ / 2); - if(entity == ball.shooter) + if(entity == ball.getThrower()) return; if(entityLiving.getHealth() <= 1000) { entityLiving.addPotionEffect(new PotionEffect(HbmPotion.bang.id, 1, 0)); - entityLiving.setLastAttacker(ball.shooter); + entityLiving.setLastAttacker(ball.getThrower()); } else if(entityLiving.getHealth() > 1000) { ball.setDead(); return; @@ -120,14 +120,14 @@ public class GunOSIPRFactory { } }; - bullet.bRicochet = (ball, x, y, z) -> { + bullet.bntRicochet = (ball, x, y, z) -> { Block block = ball.worldObj.getBlock(x, y, z); if(block instanceof RedBarrel) ((RedBarrel) block).explode(ball.worldObj, x, y, z); }; - bullet.bImpact = (ball, x, y, z) -> { + bullet.bntImpact = (ball, x, y, z) -> { final Block block = ball.worldObj.getBlock(x, y, z); if(block instanceof RedBarrel) ((RedBarrel) block).explode(ball.worldObj, x, y, z); diff --git a/src/main/java/com/hbm/handler/guncfg/GunRocketFactory.java b/src/main/java/com/hbm/handler/guncfg/GunRocketFactory.java index 8af201e52..cea0490c3 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunRocketFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunRocketFactory.java @@ -3,14 +3,11 @@ package com.hbm.handler.guncfg; import java.util.ArrayList; import com.hbm.entity.effect.EntitySpear; -import com.hbm.entity.projectile.EntityBulletBase; +import com.hbm.entity.projectile.EntityBulletBaseNT; import com.hbm.explosion.ExplosionNukeSmall; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; import com.hbm.handler.GunConfiguration; -import com.hbm.interfaces.IBulletImpactBehavior; -import com.hbm.interfaces.IBulletRicochetBehavior; -import com.hbm.interfaces.IBulletUpdateBehavior; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.ModItems; import com.hbm.items.ItemAmmoEnums.AmmoRocket; @@ -287,12 +284,8 @@ public class GunRocketFactory { bullet.incendiary = 0; bullet.trail = 7; - bullet.bImpact = new IBulletImpactBehavior() { - - @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { - BulletConfigFactory.nuclearExplosion(bullet, x, y, z, ExplosionNukeSmall.PARAMS_MEDIUM); - } + bullet.bntImpact = (bulletnt, x, y, z) -> { + BulletConfigFactory.nuclearExplosion(bulletnt, x, y, z, ExplosionNukeSmall.PARAMS_MEDIUM); }; return bullet; @@ -331,18 +324,14 @@ public class GunRocketFactory { bullet.LBRC = 100; bullet.doesPenetrate = true; - bullet.bRicochet = new IBulletRicochetBehavior() { + bullet.bntRicochet = (bulletnt, bX, bY, bZ) -> { + World worldObj = bulletnt.worldObj; + if(!worldObj.isRemote && (worldObj.getBlock(bX, bY, bZ).getMaterial() == Material.wood || + worldObj.getBlock(bX, bY, bZ).getMaterial() == Material.plants || + worldObj.getBlock(bX, bY, bZ).getMaterial() == Material.glass || + worldObj.getBlock(bX, bY, bZ).getMaterial() == Material.leaves)) + worldObj.func_147480_a(bX, bY, bZ, false); - @Override - public void behaveBlockRicochet(EntityBulletBase bullet, int bX, int bY, int bZ) { - World worldObj = bullet.worldObj; - if(!worldObj.isRemote && - (worldObj.getBlock(bX, bY, bZ).getMaterial() == Material.wood || - worldObj.getBlock(bX, bY, bZ).getMaterial() == Material.plants || - worldObj.getBlock(bX, bY, bZ).getMaterial() == Material.glass || - worldObj.getBlock(bX, bY, bZ).getMaterial() == Material.leaves)) - worldObj.func_147480_a(bX, bY, bZ, false);} - }; return bullet; @@ -360,7 +349,7 @@ public class GunRocketFactory { bullet.incendiary = 5; bullet.trail = 9; - bullet.bImpact = BulletConfigFactory.getPhosphorousEffect(10, 60 * 20, 100, 0.5D, 1F); + bullet.bntImpact = BulletConfigFactory.getPhosphorousEffect(10, 60 * 20, 100, 0.5D, 1F); return bullet; } @@ -375,23 +364,16 @@ public class GunRocketFactory { bullet.explosive = 2F; bullet.trail = 0; - bullet.bUpdate = new IBulletUpdateBehavior() { - - @Override - public void behaveUpdate(EntityBulletBase bullet) { - - if(!bullet.worldObj.isRemote) { - - if(bullet.ticksExisted > 10) { - bullet.setDead(); - - for(int i = 0; i < 50; i++) { - - EntityBulletBase bolt = new EntityBulletBase(bullet.worldObj, BulletConfigSyncingUtil.M44_AP); - bolt.setPosition(bullet.posX, bullet.posY, bullet.posZ); - bolt.setThrowableHeading(bullet.motionX, bullet.motionY, bullet.motionZ, 0.25F, 0.1F); - bullet.worldObj.spawnEntityInWorld(bolt); - } + bullet.bntUpdate = (bulletnt) -> { + if(!bulletnt.worldObj.isRemote) { + if(bulletnt.ticksExisted > 10) { + bulletnt.setDead(); + for(int i = 0; i < 50; i++) { + EntityBulletBaseNT bolt = new EntityBulletBaseNT(bulletnt.worldObj, BulletConfigSyncingUtil.M44_AP); + bolt.setPosition(bulletnt.posX, bulletnt.posY, bulletnt.posZ); + bolt.setThrowableHeading(bulletnt.motionX, bulletnt.motionY, bulletnt.motionZ, 0.25F, 0.1F); + bolt.setThrower(bulletnt.getThrower()); + bulletnt.worldObj.spawnEntityInWorld(bolt); } } } @@ -413,21 +395,17 @@ public class GunRocketFactory { bullet.incendiary = 0; bullet.trail = 7; - bullet.bImpact = new IBulletImpactBehavior() { + bullet.bntImpact = (bulletnt, x, y, z) -> { - @Override - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { - - if(bullet.worldObj.isRemote) - return; - - EntitySpear spear = new EntitySpear(bullet.worldObj); - spear.posX = bullet.posX; - spear.posZ = bullet.posZ; - spear.posY = bullet.posY + 100; - - bullet.worldObj.spawnEntityInWorld(spear); - } + if(bulletnt.worldObj.isRemote) + return; + + EntitySpear spear = new EntitySpear(bulletnt.worldObj); + spear.posX = bulletnt.posX; + spear.posZ = bulletnt.posZ; + spear.posY = bulletnt.posY + 100; + + bulletnt.worldObj.spawnEntityInWorld(spear); }; return bullet; diff --git a/src/main/java/com/hbm/handler/guncfg/GunRocketHomingFactory.java b/src/main/java/com/hbm/handler/guncfg/GunRocketHomingFactory.java index 9ace3b45f..3e2808d40 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunRocketHomingFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunRocketHomingFactory.java @@ -2,12 +2,10 @@ package com.hbm.handler.guncfg; import java.util.ArrayList; -import com.hbm.entity.projectile.EntityBulletBase; import com.hbm.entity.projectile.EntityRocketHoming; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; import com.hbm.handler.GunConfiguration; -import com.hbm.interfaces.IBulletUpdateBehavior; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.ItemAmmoEnums.AmmoStinger; import com.hbm.items.ModItems; @@ -98,28 +96,24 @@ GunConfiguration config = new GunConfiguration(); bullet.explosive = 4F; bullet.trail = 0; - bullet.bUpdate = new IBulletUpdateBehavior() { + bullet.bntUpdate = (bulletnt) -> { - @Override - public void behaveUpdate(EntityBulletBase bullet) { - - if(!bullet.worldObj.isRemote) { - - EntityPlayer player = bullet.worldObj.getClosestPlayerToEntity(bullet, -1.0D); - EntityRocketHoming rocket = new EntityRocketHoming(bullet.worldObj, player, 1.0F, 5.0F, 0); - if(player.getHeldItem().getItem() == ModItems.gun_skystinger && !player.isSneaking()) { - EntityRocketHoming rocket2 = new EntityRocketHoming(bullet.worldObj, player, 1.5F, 15.0F, 0); - rocket = new EntityRocketHoming(bullet.worldObj, player, 1.5F, 15.0F, 0); - rocket.setIsCritical(true); - rocket2.setIsCritical(true); - bullet.worldObj.spawnEntityInWorld(rocket2); - } - rocket.homingMod = 5; - rocket.homingRadius = 25; - bullet.worldObj.spawnEntityInWorld(rocket); - bullet.setDead(); + if(!bulletnt.worldObj.isRemote) { + EntityPlayer player = bulletnt.worldObj.getClosestPlayerToEntity(bulletnt, -1.0D); + EntityRocketHoming rocket = new EntityRocketHoming(bulletnt.worldObj, player, 1.0F, 5.0F, 0); + if(player.getHeldItem().getItem() == ModItems.gun_skystinger && !player.isSneaking()) { + EntityRocketHoming rocket2 = new EntityRocketHoming(bulletnt.worldObj, player, 1.5F, 15.0F, 0); + rocket = new EntityRocketHoming(bulletnt.worldObj, player, 1.5F, 15.0F, 0); + rocket.setIsCritical(true); + rocket2.setIsCritical(true); + bulletnt.worldObj.spawnEntityInWorld(rocket2); } + rocket.homingMod = 5; + rocket.homingRadius = 25; + bulletnt.worldObj.spawnEntityInWorld(rocket); + bulletnt.setDead(); + } }; return bullet; @@ -135,28 +129,24 @@ GunConfiguration config = new GunConfiguration(); bullet.trail = 0; bullet.wear = 15; - bullet.bUpdate = new IBulletUpdateBehavior() { + bullet.bntUpdate = (bulletnt) -> { - @Override - public void behaveUpdate(EntityBulletBase bullet) { - - if(!bullet.worldObj.isRemote) { - - EntityPlayer player = bullet.worldObj.getClosestPlayerToEntity(bullet, -1.0D); - EntityRocketHoming rocket = new EntityRocketHoming(bullet.worldObj, player, 1.0F, 5.0F, 1); - if(player.getHeldItem().getItem() == ModItems.gun_skystinger && !player.isSneaking()) { - EntityRocketHoming rocket2 = new EntityRocketHoming(bullet.worldObj, player, 1.5F, 15.0F, 1); - rocket = new EntityRocketHoming(bullet.worldObj, player, 1.5F, 15.0F, 1); - rocket.setIsCritical(true); - rocket2.setIsCritical(true); - bullet.worldObj.spawnEntityInWorld(rocket2); - } - rocket.homingMod = 5; - rocket.homingRadius = 25; - bullet.worldObj.spawnEntityInWorld(rocket); - bullet.setDead(); + if(!bulletnt.worldObj.isRemote) { + EntityPlayer player = bulletnt.worldObj.getClosestPlayerToEntity(bulletnt, -1.0D); + EntityRocketHoming rocket = new EntityRocketHoming(bulletnt.worldObj, player, 1.0F, 5.0F, 1); + if(player.getHeldItem().getItem() == ModItems.gun_skystinger && !player.isSneaking()) { + EntityRocketHoming rocket2 = new EntityRocketHoming(bulletnt.worldObj, player, 1.5F, 15.0F, 1); + rocket = new EntityRocketHoming(bulletnt.worldObj, player, 1.5F, 15.0F, 1); + rocket.setIsCritical(true); + rocket2.setIsCritical(true); + bulletnt.worldObj.spawnEntityInWorld(rocket2); } + rocket.homingMod = 5; + rocket.homingRadius = 25; + bulletnt.worldObj.spawnEntityInWorld(rocket); + bulletnt.setDead(); + } }; return bullet; @@ -172,28 +162,24 @@ GunConfiguration config = new GunConfiguration(); bullet.trail = 0; bullet.wear = 12; - bullet.bUpdate = new IBulletUpdateBehavior() { + bullet.bntUpdate = (bulletnt) -> { - @Override - public void behaveUpdate(EntityBulletBase bullet) { - - if(!bullet.worldObj.isRemote) { - - EntityPlayer player = bullet.worldObj.getClosestPlayerToEntity(bullet, -1.0D); - EntityRocketHoming rocket = new EntityRocketHoming(bullet.worldObj, player, 1.0F, 5.0F, 2); - if(player.getHeldItem().getItem() == ModItems.gun_skystinger && !player.isSneaking()) { - EntityRocketHoming rocket2 = new EntityRocketHoming(bullet.worldObj, player, 1.5F, 15.0F, 2); - rocket = new EntityRocketHoming(bullet.worldObj, player, 1.5F, 15.0F, 2); - rocket.setIsCritical(true); - rocket2.setIsCritical(true); - bullet.worldObj.spawnEntityInWorld(rocket2); - } - rocket.homingMod = 5; - rocket.homingRadius = 25; - bullet.worldObj.spawnEntityInWorld(rocket); - bullet.setDead(); + if(!bulletnt.worldObj.isRemote) { + EntityPlayer player = bulletnt.worldObj.getClosestPlayerToEntity(bulletnt, -1.0D); + EntityRocketHoming rocket = new EntityRocketHoming(bulletnt.worldObj, player, 1.0F, 5.0F, 2); + if(player.getHeldItem().getItem() == ModItems.gun_skystinger && !player.isSneaking()) { + EntityRocketHoming rocket2 = new EntityRocketHoming(bulletnt.worldObj, player, 1.5F, 15.0F, 2); + rocket = new EntityRocketHoming(bulletnt.worldObj, player, 1.5F, 15.0F, 2); + rocket.setIsCritical(true); + rocket2.setIsCritical(true); + bulletnt.worldObj.spawnEntityInWorld(rocket2); } + rocket.homingMod = 5; + rocket.homingRadius = 25; + bulletnt.worldObj.spawnEntityInWorld(rocket); + bulletnt.setDead(); + } }; return bullet; @@ -209,31 +195,27 @@ GunConfiguration config = new GunConfiguration(); bullet.trail = 0; bullet.wear = 30; - bullet.bUpdate = new IBulletUpdateBehavior() { + bullet.bntUpdate = (bulletnt) -> { - @Override - public void behaveUpdate(EntityBulletBase bullet) { + if(!bulletnt.worldObj.isRemote) { - if(!bullet.worldObj.isRemote) { + EntityPlayer player = bulletnt.worldObj.getClosestPlayerToEntity(bulletnt, -1.0D); - EntityPlayer player = bullet.worldObj.getClosestPlayerToEntity(bullet, -1.0D); - - if(player.getDistanceToEntity(bullet) < 16) { - EntityRocketHoming rocket = new EntityRocketHoming(bullet.worldObj, player, 1.0F, 5.0F, 4); - if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.gun_skystinger && !player.isSneaking()) { - EntityRocketHoming rocket2 = new EntityRocketHoming(bullet.worldObj, player, 1.5F, 15.0F, 4); - rocket = new EntityRocketHoming(bullet.worldObj, player, 1.5F, 15.0F, 4); - rocket.setIsCritical(true); - rocket2.setIsCritical(true); - bullet.worldObj.spawnEntityInWorld(rocket2); - } - rocket.homingMod = 5; - rocket.homingRadius = 25; - bullet.worldObj.spawnEntityInWorld(rocket); + if(player.getDistanceToEntity(bulletnt) < 16) { + EntityRocketHoming rocket = new EntityRocketHoming(bulletnt.worldObj, player, 1.0F, 5.0F, 4); + if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.gun_skystinger && !player.isSneaking()) { + EntityRocketHoming rocket2 = new EntityRocketHoming(bulletnt.worldObj, player, 1.5F, 15.0F, 4); + rocket = new EntityRocketHoming(bulletnt.worldObj, player, 1.5F, 15.0F, 4); + rocket.setIsCritical(true); + rocket2.setIsCritical(true); + bulletnt.worldObj.spawnEntityInWorld(rocket2); } - bullet.setDead(); - + rocket.homingMod = 5; + rocket.homingRadius = 25; + bulletnt.worldObj.spawnEntityInWorld(rocket); } + bulletnt.setDead(); + } }; return bullet; @@ -248,31 +230,27 @@ GunConfiguration config = new GunConfiguration(); bullet.explosive = 8F; bullet.trail = 0; - bullet.bUpdate = new IBulletUpdateBehavior() { + bullet.bntUpdate = (bulletnt) -> { - @Override - public void behaveUpdate(EntityBulletBase bullet) { + if(!bulletnt.worldObj.isRemote) { - if(!bullet.worldObj.isRemote) { + EntityPlayer player = bulletnt.worldObj.getClosestPlayerToEntity(bulletnt, -1.0D); - EntityPlayer player = bullet.worldObj.getClosestPlayerToEntity(bullet, -1.0D); - - if(player.getDistanceToEntity(bullet) < 16) { - EntityRocketHoming rocket = new EntityRocketHoming(bullet.worldObj, player, 1.0F, 5.0F, 42); - if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.gun_skystinger && !player.isSneaking()) { - EntityRocketHoming rocket2 = new EntityRocketHoming(bullet.worldObj, player, 1.5F, 15.0F, 42); - rocket = new EntityRocketHoming(bullet.worldObj, player, 1.5F, 15.0F, 42); - rocket.setIsCritical(true); - rocket2.setIsCritical(true); - bullet.worldObj.spawnEntityInWorld(rocket2); - } - rocket.homingMod = 5; - rocket.homingRadius = 25; - bullet.worldObj.spawnEntityInWorld(rocket); + if(player.getDistanceToEntity(bulletnt) < 16) { + EntityRocketHoming rocket = new EntityRocketHoming(bulletnt.worldObj, player, 1.0F, 5.0F, 42); + if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.gun_skystinger && !player.isSneaking()) { + EntityRocketHoming rocket2 = new EntityRocketHoming(bulletnt.worldObj, player, 1.5F, 15.0F, 42); + rocket = new EntityRocketHoming(bulletnt.worldObj, player, 1.5F, 15.0F, 42); + rocket.setIsCritical(true); + rocket2.setIsCritical(true); + bulletnt.worldObj.spawnEntityInWorld(rocket2); } - bullet.setDead(); - + rocket.homingMod = 5; + rocket.homingRadius = 25; + bulletnt.worldObj.spawnEntityInWorld(rocket); } + bulletnt.setDead(); + } }; return bullet; diff --git a/src/main/java/com/hbm/interfaces/IBulletHitBehavior.java b/src/main/java/com/hbm/interfaces/IBulletHitBehavior.java deleted file mode 100644 index b07aab829..000000000 --- a/src/main/java/com/hbm/interfaces/IBulletHitBehavior.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.hbm.interfaces; - -import com.hbm.entity.projectile.EntityBulletBase; - -import net.minecraft.entity.Entity; - -public interface IBulletHitBehavior { - - //entity is hit, bullet dies - public void behaveEntityHit(EntityBulletBase bullet, Entity hit); - -} diff --git a/src/main/java/com/hbm/interfaces/IBulletHurtBehavior.java b/src/main/java/com/hbm/interfaces/IBulletHurtBehavior.java deleted file mode 100644 index 4aa57a5a2..000000000 --- a/src/main/java/com/hbm/interfaces/IBulletHurtBehavior.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.hbm.interfaces; - -import com.hbm.entity.projectile.EntityBulletBase; - -import net.minecraft.entity.Entity; - -public interface IBulletHurtBehavior { - - //entity is hit - public void behaveEntityHurt(EntityBulletBase bullet, Entity hit); -} diff --git a/src/main/java/com/hbm/interfaces/IBulletImpactBehavior.java b/src/main/java/com/hbm/interfaces/IBulletImpactBehavior.java deleted file mode 100644 index 30c067d79..000000000 --- a/src/main/java/com/hbm/interfaces/IBulletImpactBehavior.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.hbm.interfaces; - -import com.hbm.entity.projectile.EntityBulletBase; - -public interface IBulletImpactBehavior { - - //block is hit, bullet dies - //also called when an entity is hit but with -1 coords, so beware - public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z); - -} diff --git a/src/main/java/com/hbm/interfaces/IBulletRicochetBehavior.java b/src/main/java/com/hbm/interfaces/IBulletRicochetBehavior.java deleted file mode 100644 index 4f4f5c5f6..000000000 --- a/src/main/java/com/hbm/interfaces/IBulletRicochetBehavior.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.hbm.interfaces; - -import com.hbm.entity.projectile.EntityBulletBase; - -public interface IBulletRicochetBehavior { - - //block is hit, bullet ricochets - public void behaveBlockRicochet(EntityBulletBase bullet, int x, int y, int z); - -} diff --git a/src/main/java/com/hbm/interfaces/IBulletUpdateBehavior.java b/src/main/java/com/hbm/interfaces/IBulletUpdateBehavior.java deleted file mode 100644 index 9f614c41e..000000000 --- a/src/main/java/com/hbm/interfaces/IBulletUpdateBehavior.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.hbm.interfaces; - -import com.hbm.entity.projectile.EntityBulletBase; - -public interface IBulletUpdateBehavior { - - //once every update, for lcokon, steering and other memes - public void behaveUpdate(EntityBulletBase bullet); - -} diff --git a/src/main/java/com/hbm/inventory/gui/GUIBookLore.java b/src/main/java/com/hbm/inventory/gui/GUIBookLore.java index 5c5effbf5..dc628427a 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIBookLore.java +++ b/src/main/java/com/hbm/inventory/gui/GUIBookLore.java @@ -5,13 +5,11 @@ import java.util.List; import org.lwjgl.opengl.GL11; -import com.hbm.items.special.ItemBookLore.*; import com.hbm.lib.RefStrings; import com.hbm.util.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; -import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; diff --git a/src/main/java/com/hbm/items/special/ItemBookLore.java b/src/main/java/com/hbm/items/special/ItemBookLore.java index 6fe393616..866bd0866 100644 --- a/src/main/java/com/hbm/items/special/ItemBookLore.java +++ b/src/main/java/com/hbm/items/special/ItemBookLore.java @@ -2,8 +2,6 @@ package com.hbm.items.special; import java.util.List; -import org.apache.commons.lang3.math.NumberUtils; - import com.hbm.inventory.gui.GUIBookLore; import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; diff --git a/src/main/java/com/hbm/items/weapon/GunFolly.java b/src/main/java/com/hbm/items/weapon/GunFolly.java index 9fa3a0a8a..b796d477a 100644 --- a/src/main/java/com/hbm/items/weapon/GunFolly.java +++ b/src/main/java/com/hbm/items/weapon/GunFolly.java @@ -1,7 +1,7 @@ package com.hbm.items.weapon; import com.hbm.entity.particle.EntitySSmokeFX; -import com.hbm.entity.projectile.EntityBulletBase; +import com.hbm.entity.projectile.EntityBulletBaseNT; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.interfaces.IHoldableWeapon; import com.hbm.items.ModItems; @@ -63,7 +63,7 @@ public class GunFolly extends Item implements IHoldableWeapon { player.motionZ -= player.getLookVec().zCoord * mult; if (!world.isRemote) { - EntityBulletBase bullet = new EntityBulletBase(world, BulletConfigSyncingUtil.TEST_CONFIG, player); + EntityBulletBaseNT bullet = new EntityBulletBaseNT(world, BulletConfigSyncingUtil.TEST_CONFIG, player); world.spawnEntityInWorld(bullet); for(int i = 0; i < 25; i++) { diff --git a/src/main/java/com/hbm/items/weapon/GunLeverAction.java b/src/main/java/com/hbm/items/weapon/GunLeverAction.java deleted file mode 100644 index a0980d7b5..000000000 --- a/src/main/java/com/hbm/items/weapon/GunLeverAction.java +++ /dev/null @@ -1,271 +0,0 @@ -package com.hbm.items.weapon; - -import java.util.List; -import java.util.Random; - -import com.google.common.collect.Multimap; -import com.hbm.entity.projectile.EntityBulletBase; -import com.hbm.handler.BulletConfigSyncingUtil; -import com.hbm.items.ModItems; - -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.Entity; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.EnumAction; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.player.ArrowLooseEvent; -import net.minecraftforge.event.entity.player.ArrowNockEvent; - -public class GunLeverAction extends Item { - - Random rand = new Random(); - - public int dmgMin = 8; - public int dmgMax = 16; - - public GunLeverAction() { - - this.maxStackSize = 1; - - if(this == ModItems.gun_lever_action) - this.setMaxDamage(500); - if(this == ModItems.gun_lever_action_dark) - this.setMaxDamage(750); - } - - /** - * called when the player releases the use item button. Args: itemstack, - * world, entityplayer, itemInUseCount - */ - @Override - public void onPlayerStoppedUsing(ItemStack p_77615_1_, World p_77615_2_, EntityPlayer p_77615_3_, int p_77615_4_) { - int j = this.getMaxItemUseDuration(p_77615_1_) - p_77615_4_; - - ArrowLooseEvent event = new ArrowLooseEvent(p_77615_3_, p_77615_1_, j); - MinecraftForge.EVENT_BUS.post(event); - j = event.charge; - - boolean flag = p_77615_3_.capabilities.isCreativeMode - || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, p_77615_1_) > 0; - - if (flag || p_77615_3_.inventory.hasItem(ModItems.ammo_20gauge)) { - float f = j / 20.0F; - f = (f * f + f * 2.0F) / 3.0F; - - if (j < 10.0D) { - return; - } - - if (j > 10.0F) { - f = 10.0F; - } - EntityBulletBase entityarrow1; - EntityBulletBase entityarrow2; - EntityBulletBase entityarrow3; - EntityBulletBase entityarrow4; - EntityBulletBase entityarrow5; - EntityBulletBase entityarrow6; - EntityBulletBase entityarrow7; - EntityBulletBase entityarrow8; - EntityBulletBase entityarrow9; - EntityBulletBase entityarrow10; - - if (!p_77615_3_.isSneaking()) { - entityarrow1 = new EntityBulletBase(p_77615_2_, BulletConfigSyncingUtil.TEST_CONFIG, p_77615_3_); - entityarrow2 = new EntityBulletBase(p_77615_2_, BulletConfigSyncingUtil.TEST_CONFIG, p_77615_3_); - entityarrow3 = new EntityBulletBase(p_77615_2_, BulletConfigSyncingUtil.TEST_CONFIG, p_77615_3_); - entityarrow4 = new EntityBulletBase(p_77615_2_, BulletConfigSyncingUtil.TEST_CONFIG, p_77615_3_); - entityarrow5 = new EntityBulletBase(p_77615_2_, BulletConfigSyncingUtil.TEST_CONFIG, p_77615_3_); - entityarrow6 = new EntityBulletBase(p_77615_2_, BulletConfigSyncingUtil.TEST_CONFIG, p_77615_3_); - entityarrow7 = new EntityBulletBase(p_77615_2_, BulletConfigSyncingUtil.TEST_CONFIG, p_77615_3_); - entityarrow8 = new EntityBulletBase(p_77615_2_, BulletConfigSyncingUtil.TEST_CONFIG, p_77615_3_); - entityarrow9 = new EntityBulletBase(p_77615_2_, BulletConfigSyncingUtil.TEST_CONFIG, p_77615_3_); - entityarrow10 = new EntityBulletBase(p_77615_2_, BulletConfigSyncingUtil.TEST_CONFIG, p_77615_3_); - } else { - entityarrow1 = new EntityBulletBase(p_77615_2_, BulletConfigSyncingUtil.TEST_CONFIG, p_77615_3_); - entityarrow2 = new EntityBulletBase(p_77615_2_, BulletConfigSyncingUtil.TEST_CONFIG, p_77615_3_); - entityarrow3 = new EntityBulletBase(p_77615_2_, BulletConfigSyncingUtil.TEST_CONFIG, p_77615_3_); - entityarrow4 = new EntityBulletBase(p_77615_2_, BulletConfigSyncingUtil.TEST_CONFIG, p_77615_3_); - entityarrow5 = new EntityBulletBase(p_77615_2_, BulletConfigSyncingUtil.TEST_CONFIG, p_77615_3_); - entityarrow6 = new EntityBulletBase(p_77615_2_, BulletConfigSyncingUtil.TEST_CONFIG, p_77615_3_); - entityarrow7 = new EntityBulletBase(p_77615_2_, BulletConfigSyncingUtil.TEST_CONFIG, p_77615_3_); - entityarrow8 = new EntityBulletBase(p_77615_2_, BulletConfigSyncingUtil.TEST_CONFIG, p_77615_3_); - entityarrow9 = new EntityBulletBase(p_77615_2_, BulletConfigSyncingUtil.TEST_CONFIG, p_77615_3_); - entityarrow10 = new EntityBulletBase(p_77615_2_, BulletConfigSyncingUtil.TEST_CONFIG, p_77615_3_); - } - - p_77615_1_.damageItem(1, p_77615_3_); - - p_77615_2_.playSoundAtEntity(p_77615_3_, "hbm:weapon.revolverShootAlt", 5.0F, 0.75F); - - if (flag) { } else { - p_77615_3_.inventory.consumeInventoryItem(ModItems.ammo_20gauge); - } - - if (!p_77615_2_.isRemote) { - p_77615_2_.spawnEntityInWorld(entityarrow1); - p_77615_2_.spawnEntityInWorld(entityarrow2); - p_77615_2_.spawnEntityInWorld(entityarrow3); - p_77615_2_.spawnEntityInWorld(entityarrow4); - - if (!p_77615_3_.isSneaking()) { - - p_77615_2_.spawnEntityInWorld(entityarrow5); - p_77615_2_.spawnEntityInWorld(entityarrow6); - - int i = rand.nextInt(5); - - if(i >= 1) - p_77615_2_.spawnEntityInWorld(entityarrow7); - if(i >= 2) - p_77615_2_.spawnEntityInWorld(entityarrow8); - if(i >= 3) - p_77615_2_.spawnEntityInWorld(entityarrow9); - if(i >= 4) - p_77615_2_.spawnEntityInWorld(entityarrow10); - } - } - - setAnim(p_77615_1_, 1); - } - } - - - @Override - public void onUpdate(ItemStack stack, World world, Entity entity, int i, boolean b) { - int j = getAnim(stack); - - if(j > 0) { - if(j < 30) - setAnim(stack, j + 1); - else - setAnim(stack, 0); - - if(j == 15) - world.playSoundAtEntity(entity, "hbm:weapon.leverActionReload", 2F, 0.85F); - } - - } - - @Override - public ItemStack onEaten(ItemStack p_77654_1_, World p_77654_2_, EntityPlayer p_77654_3_) { - return p_77654_1_; - } - - /** - * How long it takes to use or consume an item - */ - @Override - public int getMaxItemUseDuration(ItemStack p_77626_1_) { - return 72000; - } - - /** - * returns the action that specifies what animation to play when the items - * is being used - */ - @Override - public EnumAction getItemUseAction(ItemStack p_77661_1_) { - return EnumAction.bow; - } - - /** - * Called whenever this item is equipped and the right mouse button is - * pressed. Args: itemStack, world, entityPlayer - */ - @Override - public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) { - ArrowNockEvent event = new ArrowNockEvent(p_77659_3_, p_77659_1_); - MinecraftForge.EVENT_BUS.post(event); - - if(this.getAnim(p_77659_1_) == 0) - p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_)); - - return p_77659_1_; - } - - /** - * Return the enchantability factor of the item, most of the time is based - * on material. - */ - @Override - public int getItemEnchantability() { - return 1; - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - - if(this == ModItems.gun_lever_action) - list.add("Universal head-to-spaghetti-sauce converter."); - if(this == ModItems.gun_lever_action_dark) - list.add("Blow your legs off!"); - list.add(""); - list.add("Ammo: 12x74 Buckshot"); - list.add("Damage: 8 - 16"); - list.add("Projectiles: 6 - 10"); - } - - @Override - public Multimap getItemAttributeModifiers() { - Multimap multimap = super.getItemAttributeModifiers(); - multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), - new AttributeModifier(field_111210_e, "Weapon modifier", 3.5, 0)); - return multimap; - } - - private static int getAnim(ItemStack stack) { - if(stack.stackTagCompound == null) { - stack.stackTagCompound = new NBTTagCompound(); - return 0; - } - - return stack.stackTagCompound.getInteger("animation"); - - } - - private static void setAnim(ItemStack stack, int i) { - if(stack.stackTagCompound == null) { - stack.stackTagCompound = new NBTTagCompound(); - } - - stack.stackTagCompound.setInteger("animation", i); - - } - - public static float getRotationFromAnim(ItemStack stack) { - float rad = 0.0174533F; - rad *= 7.5F; - int i = getAnim(stack); - - if(i < 10) - return 0; - i -= 10; - - if(i < 10) - return rad * i; - else - return (rad * 10) - (rad * (i - 10)); - } - - public static float getOffsetFromAnim(ItemStack stack) { - float i = getAnim(stack); - - if(i < 10) - return 0; - i -= 10; - - if(i < 10) - return i / 10; - else - return 2 - (i / 10); - } - -} diff --git a/src/main/java/com/hbm/items/weapon/GunOSIPR.java b/src/main/java/com/hbm/items/weapon/GunOSIPR.java deleted file mode 100644 index bae321b8e..000000000 --- a/src/main/java/com/hbm/items/weapon/GunOSIPR.java +++ /dev/null @@ -1,129 +0,0 @@ -package com.hbm.items.weapon; - -import java.util.List; -import java.util.Random; - -import com.google.common.collect.Multimap; -import com.hbm.entity.projectile.EntityBullet; -import com.hbm.entity.projectile.EntityCombineBall; -import com.hbm.items.ModItems; -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.EnumAction; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import net.minecraftforge.event.entity.player.ArrowNockEvent; - -public class GunOSIPR extends Item { - - Random rand = new Random(); - - public GunOSIPR() - { - this.maxStackSize = 1; - this.setMaxDamage(2500); - } - - @Override - public EnumAction getItemUseAction(ItemStack par1ItemStack) { - return EnumAction.bow; - } - - @Override - public int getMaxItemUseDuration(ItemStack p_77626_1_) { - return 72000; - } - - @Override - public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) { - new ArrowNockEvent(p_77659_3_, p_77659_1_); - { - p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_)); - } - - return p_77659_1_; - } - - @Override - public void onUsingTick(ItemStack stack, EntityPlayer player, int count) - { - World world = player.worldObj; - - if (!player.isSneaking()) { - boolean flag = player.capabilities.isCreativeMode - || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, stack) > 0; - if ((player.capabilities.isCreativeMode || player.inventory.hasItem(ModItems.gun_osipr_ammo)) && count % 3 == 0) { - EntityBullet entityarrow = new EntityBullet(world, player, 3.0F, 5, 15, false, "chopper"); - entityarrow.setDamage(5 + rand.nextInt(10)); - - //world.playSoundAtEntity(player, "random.explode", 1.0F, 1.5F + (rand.nextFloat() / 4)); - world.playSoundAtEntity(player, "hbm:weapon.osiprShoot", 1.0F, 0.8F + (rand.nextFloat() * 0.4F)); - - if (flag) { - entityarrow.canBePickedUp = 2; - } else { - player.inventory.consumeInventoryItem(ModItems.gun_osipr_ammo); - } - - if (!world.isRemote) { - world.spawnEntityInWorld(entityarrow); - } - } - } else { - boolean flag = player.capabilities.isCreativeMode - || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, stack) > 0; - if ((player.capabilities.isCreativeMode || player.inventory.hasItem(ModItems.gun_osipr_ammo2)) && count % 30 == 0 && (this.getMaxItemUseDuration(stack) - count) != 0) { - EntityCombineBall entityarrow = new EntityCombineBall(player.worldObj, player, 3.0F); - entityarrow.setDamage(35 + rand.nextInt(45 - 35)); - - //world.playSoundAtEntity(player, "tile.piston.in", 1.0F, 0.75F); - world.playSoundAtEntity(player, "hbm:weapon.singFlyby", 1.0F, 1F); - - if (flag) { - entityarrow.canBePickedUp = 2; - } else { - player.inventory.consumeInventoryItem(ModItems.gun_osipr_ammo2); - } - - if (!world.isRemote) { - world.spawnEntityInWorld(entityarrow); - } - } - - if((this.getMaxItemUseDuration(stack) - count) % 30 == 15 && (player.capabilities.isCreativeMode || player.inventory.hasItem(ModItems.gun_osipr_ammo2))) - world.playSoundAtEntity(player, "hbm:weapon.osiprCharging", 1.0F, 1F); - } - } - - @Override - public int getItemEnchantability() { - return 0; - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - - list.add("Hold right mouse button"); - list.add("to shoot,"); - list.add("sneak to shoot a"); - list.add("dark energy ball!"); - list.add(""); - list.add("Ammo: Dark Energy Plugs"); - list.add("Secondary Ammo: Combine Ball"); - list.add("Damage: 5 - 15"); - list.add("Secondary Damage: 1000"); - } - - @Override - public Multimap getItemAttributeModifiers() { - Multimap multimap = super.getItemAttributeModifiers(); - multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), - new AttributeModifier(field_111210_e, "Weapon modifier", 5, 0)); - return multimap; - } - -} diff --git a/src/main/java/com/hbm/items/weapon/GunSMG.java b/src/main/java/com/hbm/items/weapon/GunSMG.java deleted file mode 100644 index e5cb4cf58..000000000 --- a/src/main/java/com/hbm/items/weapon/GunSMG.java +++ /dev/null @@ -1,99 +0,0 @@ -package com.hbm.items.weapon; - -import java.util.List; -import java.util.Random; - -import com.google.common.collect.Multimap; -import com.hbm.entity.projectile.EntityBulletBase; -import com.hbm.handler.BulletConfigSyncingUtil; -import com.hbm.items.ModItems; - -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.EnumAction; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import net.minecraftforge.event.entity.player.ArrowNockEvent; - -public class GunSMG extends Item { - - Random rand = new Random(); - - public GunSMG() - { - this.maxStackSize = 1; - } - - @Override - public EnumAction getItemUseAction(ItemStack par1ItemStack) { - return EnumAction.bow; - } - - @Override - public int getMaxItemUseDuration(ItemStack p_77626_1_) { - return 72000; - } - - @Override - public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) { - new ArrowNockEvent(p_77659_3_, p_77659_1_); - { - p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_)); - } - - return p_77659_1_; - } - - @Override - public void onUsingTick(ItemStack stack, EntityPlayer player, int count) - { - World world = player.worldObj; - - boolean flag = player.capabilities.isCreativeMode - || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, stack) > 0; - if ((player.capabilities.isCreativeMode || player.inventory.hasItem(ModItems.ammo_9mm)) - && count % 2 == 0) { - - EntityBulletBase bullet = new EntityBulletBase(world, BulletConfigSyncingUtil.TEST_CONFIG, player); - //EntityArrow bullet = new EntityArrow(world, player, 3.0F); - - //world.playSoundAtEntity(player, "random.explode", 1.0F, 1.5F + (rand.nextFloat() / 4)); - world.playSoundAtEntity(player, "hbm:weapon.rifleShoot", 1.0F, 0.8F + (rand.nextFloat() * 0.4F)); - - if (flag) { - } else { - player.inventory.consumeInventoryItem(ModItems.ammo_9mm); - } - - if (!world.isRemote) { - world.spawnEntityInWorld(bullet); - } - } - } - - @Override - public int getItemEnchantability() { - return 0; - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - - list.add("Ratatatatatatatata!!"); - list.add(""); - list.add("Ammo: SMG Round"); - list.add("Damage: 2 - 8"); - } - - @Override - public Multimap getItemAttributeModifiers() { - Multimap multimap = super.getItemAttributeModifiers(); - multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), - new AttributeModifier(field_111210_e, "Weapon modifier", 3, 0)); - return multimap; - } -} diff --git a/src/main/java/com/hbm/items/weapon/GunShotgun.java b/src/main/java/com/hbm/items/weapon/GunShotgun.java deleted file mode 100644 index fe9b604d1..000000000 --- a/src/main/java/com/hbm/items/weapon/GunShotgun.java +++ /dev/null @@ -1,187 +0,0 @@ -package com.hbm.items.weapon; - -import java.util.List; -import java.util.Random; - -import com.google.common.collect.Multimap; -import com.hbm.entity.projectile.EntityBullet; -import com.hbm.items.ModItems; - -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.EnumAction; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.player.ArrowLooseEvent; -import net.minecraftforge.event.entity.player.ArrowNockEvent; - -public class GunShotgun extends Item { - Random rand = new Random(); - - public int dmgMin = 3; - public int dmgMax = 7; - - public GunShotgun() { - - this.maxStackSize = 1; - - if (this == ModItems.gun_uboinik) { - this.setMaxDamage(500); - } - } - - /** - * called when the player releases the use item button. Args: itemstack, - * world, entityplayer, itemInUseCount - */ - @Override - public void onPlayerStoppedUsing(ItemStack p_77615_1_, World p_77615_2_, EntityPlayer p_77615_3_, int p_77615_4_) { - int j = this.getMaxItemUseDuration(p_77615_1_) - p_77615_4_; - - ArrowLooseEvent event = new ArrowLooseEvent(p_77615_3_, p_77615_1_, j); - MinecraftForge.EVENT_BUS.post(event); - j = event.charge; - - boolean flag = p_77615_3_.capabilities.isCreativeMode - || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, p_77615_1_) > 0; - - if (flag || p_77615_3_.inventory.hasItem(ModItems.ammo_12gauge)) { - float f = j / 20.0F; - f = (f * f + f * 2.0F) / 3.0F; - - if (j < 10.0D) { - return; - } - - if (j > 10.0F) { - f = 10.0F; - } - - EntityBullet entityarrow1 = new EntityBullet(p_77615_2_, p_77615_3_, 3.0F); - entityarrow1.setDamage(dmgMin + rand.nextInt(dmgMax - dmgMin)); - EntityBullet entityarrow2 = new EntityBullet(p_77615_2_, p_77615_3_, 3.0F); - entityarrow2.setDamage(dmgMin + rand.nextInt(dmgMax - dmgMin)); - EntityBullet entityarrow3 = new EntityBullet(p_77615_2_, p_77615_3_, 3.0F); - entityarrow3.setDamage(dmgMin + rand.nextInt(dmgMax - dmgMin)); - EntityBullet entityarrow4 = new EntityBullet(p_77615_2_, p_77615_3_, 3.0F); - entityarrow4.setDamage(dmgMin + rand.nextInt(dmgMax - dmgMin)); - EntityBullet entityarrow5 = new EntityBullet(p_77615_2_, p_77615_3_, 3.0F); - entityarrow5.setDamage(dmgMin + rand.nextInt(dmgMax - dmgMin)); - EntityBullet entityarrow6 = new EntityBullet(p_77615_2_, p_77615_3_, 3.0F); - entityarrow6.setDamage(dmgMin + rand.nextInt(dmgMax - dmgMin)); - EntityBullet entityarrow7 = new EntityBullet(p_77615_2_, p_77615_3_, 3.0F); - entityarrow7.setDamage(dmgMin + rand.nextInt(dmgMax - dmgMin)); - EntityBullet entityarrow8 = new EntityBullet(p_77615_2_, p_77615_3_, 3.0F); - entityarrow8.setDamage(dmgMin + rand.nextInt(dmgMax - dmgMin)); - EntityBullet entityarrow9 = new EntityBullet(p_77615_2_, p_77615_3_, 3.0F); - entityarrow9.setDamage(dmgMin + rand.nextInt(dmgMax - dmgMin)); - EntityBullet entityarrow10 = new EntityBullet(p_77615_2_, p_77615_3_, 3.0F); - entityarrow10.setDamage(dmgMin + rand.nextInt(dmgMax - dmgMin)); - EntityBullet entityarrow11 = new EntityBullet(p_77615_2_, p_77615_3_, 3.0F); - entityarrow11.setDamage(dmgMin + rand.nextInt(dmgMax - dmgMin)); - EntityBullet entityarrow12 = new EntityBullet(p_77615_2_, p_77615_3_, 3.0F); - entityarrow12.setDamage(dmgMin + rand.nextInt(dmgMax - dmgMin)); - - p_77615_1_.damageItem(1, p_77615_3_); - - p_77615_2_.playSoundAtEntity(p_77615_3_, "hbm:weapon.shotgunShoot", 1.0F, 1.0F); - - if (flag) { } else { - p_77615_3_.inventory.consumeInventoryItem(ModItems.ammo_12gauge); - } - - if (!p_77615_2_.isRemote) { - p_77615_2_.spawnEntityInWorld(entityarrow1); - p_77615_2_.spawnEntityInWorld(entityarrow2); - p_77615_2_.spawnEntityInWorld(entityarrow3); - p_77615_2_.spawnEntityInWorld(entityarrow4); - p_77615_2_.spawnEntityInWorld(entityarrow5); - p_77615_2_.spawnEntityInWorld(entityarrow6); - - int i = rand.nextInt(7); - - if(i >= 1) - p_77615_2_.spawnEntityInWorld(entityarrow7); - if(i >= 2) - p_77615_2_.spawnEntityInWorld(entityarrow8); - if(i >= 3) - p_77615_2_.spawnEntityInWorld(entityarrow9); - if(i >= 4) - p_77615_2_.spawnEntityInWorld(entityarrow10); - if(i >= 5) - p_77615_2_.spawnEntityInWorld(entityarrow11); - if(i >= 6) - p_77615_2_.spawnEntityInWorld(entityarrow12); - } - } - } - - @Override - public ItemStack onEaten(ItemStack p_77654_1_, World p_77654_2_, EntityPlayer p_77654_3_) { - return p_77654_1_; - } - - /** - * How long it takes to use or consume an item - */ - @Override - public int getMaxItemUseDuration(ItemStack p_77626_1_) { - return 72000; - } - - /** - * returns the action that specifies what animation to play when the items - * is being used - */ - @Override - public EnumAction getItemUseAction(ItemStack p_77661_1_) { - return EnumAction.bow; - } - - /** - * Called whenever this item is equipped and the right mouse button is - * pressed. Args: itemStack, world, entityPlayer - */ - @Override - public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) { - ArrowNockEvent event = new ArrowNockEvent(p_77659_3_, p_77659_1_); - MinecraftForge.EVENT_BUS.post(event); - - p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_)); - - return p_77659_1_; - } - - /** - * Return the enchantability factor of the item, most of the time is based - * on material. - */ - @Override - public int getItemEnchantability() { - return 1; - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - - //list.add("POW! Haha!"); - list.add("Abracadabra Tomanakara!"); - list.add(""); - list.add("Ammo: 12x70 Buckshot"); - list.add("Damage: 3 - 7"); - list.add("Projectiles: 6 - 12"); - } - - @Override - public Multimap getItemAttributeModifiers() { - Multimap multimap = super.getItemAttributeModifiers(); - multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), - new AttributeModifier(field_111210_e, "Weapon modifier", 3.5, 0)); - return multimap; - } -} diff --git a/src/main/java/com/hbm/items/weapon/ItemGunBase.java b/src/main/java/com/hbm/items/weapon/ItemGunBase.java index 930366673..e2b428c7e 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGunBase.java +++ b/src/main/java/com/hbm/items/weapon/ItemGunBase.java @@ -5,7 +5,6 @@ import java.util.List; import org.lwjgl.input.Mouse; import com.hbm.config.GeneralConfig; -import com.hbm.entity.projectile.EntityBulletBase; import com.hbm.entity.projectile.EntityBulletBaseNT; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; diff --git a/src/main/java/com/hbm/items/weapon/ItemGunGauss.java b/src/main/java/com/hbm/items/weapon/ItemGunGauss.java index 1d53bb44c..7dd20b1a0 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGunGauss.java +++ b/src/main/java/com/hbm/items/weapon/ItemGunGauss.java @@ -1,6 +1,6 @@ package com.hbm.items.weapon; -import com.hbm.entity.projectile.EntityBulletBase; +import com.hbm.entity.projectile.EntityBulletBaseNT; import com.hbm.handler.GunConfiguration; import com.hbm.items.ModItems; import com.hbm.lib.ModDamageSource; @@ -31,7 +31,7 @@ public class ItemGunGauss extends ItemGunBase { } if(!main && getStored(stack) > 0) { - EntityBulletBase bullet = new EntityBulletBase(world, altConfig.config.get(0), player); + EntityBulletBaseNT bullet = new EntityBulletBaseNT(world, altConfig.config.get(0), player); bullet.overrideDamage = Math.max(getStored(stack), 1) * 10F; world.spawnEntityInWorld(bullet); world.playSoundAtEntity(player, "hbm:weapon.tauShoot", 0.5F, 0.75F); diff --git a/src/main/java/com/hbm/items/weapon/gununified/ItemEnergyGunBase.java b/src/main/java/com/hbm/items/weapon/gununified/ItemEnergyGunBase.java index 21dc8448a..e137eda14 100644 --- a/src/main/java/com/hbm/items/weapon/gununified/ItemEnergyGunBase.java +++ b/src/main/java/com/hbm/items/weapon/gununified/ItemEnergyGunBase.java @@ -5,7 +5,7 @@ import java.util.List; import org.lwjgl.input.Mouse; import com.hbm.config.GeneralConfig; -import com.hbm.entity.projectile.EntityBulletBase; +import com.hbm.entity.projectile.EntityBulletBaseNT; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; import com.hbm.handler.GunConfiguration; @@ -140,7 +140,7 @@ public class ItemEnergyGunBase extends ItemGunBase implements IBatteryItem { protected void spawnProjectile(World world, EntityPlayer player, ItemStack stack, int config) { - EntityBulletBase bullet = new EntityBulletBase(world, config, player); + EntityBulletBaseNT bullet = new EntityBulletBaseNT(world, config, player); world.spawnEntityInWorld(bullet); if(this.mainConfig.animations.containsKey(AnimType.CYCLE) && player instanceof EntityPlayerMP) diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 062c70bda..14d0c8a6e 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -547,7 +547,6 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityRocket.class, new RenderSnowball(ModItems.man_core)); RenderingRegistry.registerEntityRenderingHandler(EntitySchrab.class, new RenderFlare()); RenderingRegistry.registerEntityRenderingHandler(EntityBullet.class, new RenderRocket()); - RenderingRegistry.registerEntityRenderingHandler(EntityBulletBase.class, new RenderBullet()); RenderingRegistry.registerEntityRenderingHandler(EntityBulletBaseNT.class, new RenderBullet()); RenderingRegistry.registerEntityRenderingHandler(EntityRainbow.class, new RenderRainbow()); RenderingRegistry.registerEntityRenderingHandler(EntityNightmareBlast.class, new RenderOminousBullet()); diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index 6a38a081a..7197df144 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -27,7 +27,7 @@ import com.hbm.entity.mob.EntityDuck; import com.hbm.entity.mob.EntityCreeperNuclear; import com.hbm.entity.mob.EntityQuackos; import com.hbm.entity.mob.EntityCreeperTainted; -import com.hbm.entity.projectile.EntityBulletBase; +import com.hbm.entity.projectile.EntityBulletBaseNT; import com.hbm.entity.projectile.EntityBurningFOEQ; import com.hbm.entity.train.EntityRailCarBase; import com.hbm.extprop.HbmLivingProps; @@ -844,7 +844,7 @@ public class ModEventHandler { } for(int i = 0; i < bullets; i++) { - EntityBulletBase bullet = new EntityBulletBase(player.worldObj, BulletConfigSyncingUtil.getKey(firedConfig), player); + EntityBulletBaseNT bullet = new EntityBulletBaseNT(player.worldObj, BulletConfigSyncingUtil.getKey(firedConfig), player); player.worldObj.spawnEntityInWorld(bullet); } diff --git a/src/main/java/com/hbm/render/tileentity/RendererObjTester.java b/src/main/java/com/hbm/render/tileentity/RendererObjTester.java index 467a4c14a..eabd2569a 100644 --- a/src/main/java/com/hbm/render/tileentity/RendererObjTester.java +++ b/src/main/java/com/hbm/render/tileentity/RendererObjTester.java @@ -6,25 +6,15 @@ import org.lwjgl.BufferUtils; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; -import com.hbm.items.ModItems; -import com.hbm.lib.RefStrings; import com.hbm.main.ResourceManager; -import com.hbm.render.loader.HFRWavefrontObject; -import com.hbm.render.util.HorsePronter; -import net.minecraft.client.renderer.ItemRenderer; import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; -import net.minecraft.util.ResourceLocation; public class RendererObjTester extends TileEntitySpecialRenderer { - private static final ResourceLocation objTesterModelRL = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/TestObj.obj"); + //private static final ResourceLocation objTesterModelRL = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/TestObj.obj"); @Override public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { diff --git a/src/main/java/com/hbm/tileentity/conductor/TileEntityFluidDuctSimple.java b/src/main/java/com/hbm/tileentity/conductor/TileEntityFluidDuctSimple.java index 60e93c1fd..9027eca23 100644 --- a/src/main/java/com/hbm/tileentity/conductor/TileEntityFluidDuctSimple.java +++ b/src/main/java/com/hbm/tileentity/conductor/TileEntityFluidDuctSimple.java @@ -21,7 +21,6 @@ import net.minecraftforge.common.util.ForgeDirection; public class TileEntityFluidDuctSimple extends TileEntity implements IFluidDuct { - private FluidType lastType = Fluids.NONE; protected FluidType type = Fluids.NONE; public List uoteab = new ArrayList(); diff --git a/src/main/java/com/hbm/tileentity/deco/TileEntityTrappedBrick.java b/src/main/java/com/hbm/tileentity/deco/TileEntityTrappedBrick.java index af014a09c..5dcef1aad 100644 --- a/src/main/java/com/hbm/tileentity/deco/TileEntityTrappedBrick.java +++ b/src/main/java/com/hbm/tileentity/deco/TileEntityTrappedBrick.java @@ -6,7 +6,7 @@ import java.util.List; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.TrappedBrick.Trap; -import com.hbm.entity.projectile.EntityBulletBase; +import com.hbm.entity.projectile.EntityBulletBaseNT; import com.hbm.entity.projectile.EntityRubble; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.items.ModItems; @@ -77,7 +77,7 @@ public class TileEntityTrappedBrick extends TileEntity { worldObj.setBlock(xCoord, yCoord - 1 - i, zCoord, ModBlocks.concrete_pillar); break; case POISON_DART: - EntityBulletBase dart = new EntityBulletBase(worldObj, BulletConfigSyncingUtil.G20_CAUSTIC); + EntityBulletBaseNT dart = new EntityBulletBaseNT(worldObj, BulletConfigSyncingUtil.G20_CAUSTIC); dart.setPosition(xCoord + 0.5 + dir.offsetX, yCoord + 0.5, zCoord + 0.5 + dir.offsetZ); dart.motionX = dir.offsetX; dart.motionZ = dir.offsetZ; diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java index b8217f1d3..62580710e 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java @@ -10,7 +10,7 @@ import com.hbm.entity.logic.EntityBomber; import com.hbm.entity.missile.EntityMissileBaseAdvanced; import com.hbm.entity.missile.EntityMissileCustom; import com.hbm.entity.missile.EntitySiegeDropship; -import com.hbm.entity.projectile.EntityBulletBase; +import com.hbm.entity.projectile.EntityBulletBaseNT; import com.hbm.entity.train.EntityRailCarBase; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; @@ -356,7 +356,7 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple vec.rotateAroundZ((float) -this.rotationPitch); vec.rotateAroundY((float) -(this.rotationYaw + Math.PI * 0.5)); - EntityBulletBase proj = new EntityBulletBase(worldObj, BulletConfigSyncingUtil.getKey(bullet)); + EntityBulletBaseNT proj = new EntityBulletBaseNT(worldObj, BulletConfigSyncingUtil.getKey(bullet)); proj.setPositionAndRotation(pos.xCoord + vec.xCoord, pos.yCoord + vec.yCoord, pos.zCoord + vec.zCoord, 0.0F, 0.0F); proj.setThrowableHeading(vec.xCoord, vec.yCoord, vec.zCoord, bullet.velocity, bullet.spread); diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretFritz.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretFritz.java index 3121134f9..01a63ffab 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretFritz.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretFritz.java @@ -4,7 +4,7 @@ import java.util.ArrayList; import java.util.List; import com.hbm.blocks.BlockDummyable; -import com.hbm.entity.projectile.EntityBulletBase; +import com.hbm.entity.projectile.EntityBulletBaseNT; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; import com.hbm.interfaces.IFluidAcceptor; @@ -113,7 +113,7 @@ public class TileEntityTurretFritz extends TileEntityTurretBaseNT implements IFl vec.rotateAroundZ((float) -this.rotationPitch); vec.rotateAroundY((float) -(this.rotationYaw + Math.PI * 0.5)); - EntityBulletBase proj = new EntityBulletBase(worldObj, BulletConfigSyncingUtil.getKey(conf)); + EntityBulletBaseNT proj = new EntityBulletBaseNT(worldObj, BulletConfigSyncingUtil.getKey(conf)); proj.setPositionAndRotation(pos.xCoord + vec.xCoord, pos.yCoord + vec.yCoord, pos.zCoord + vec.zCoord, 0.0F, 0.0F); proj.overrideDamage = (float) (trait.getHeatEnergy() / 500_000F); diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretRichard.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretRichard.java index c23f2595e..f6c95d847 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretRichard.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretRichard.java @@ -3,7 +3,7 @@ package com.hbm.tileentity.turret; import java.util.ArrayList; import java.util.List; -import com.hbm.entity.projectile.EntityBulletBase; +import com.hbm.entity.projectile.EntityBulletBaseNT; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; import com.hbm.inventory.RecipesCommon.ComparableStack; @@ -155,7 +155,7 @@ public class TileEntityTurretRichard extends TileEntityTurretBaseNT { vec.rotateAroundZ((float) -this.rotationPitch); vec.rotateAroundY((float) -(this.rotationYaw + Math.PI * 0.5)); - EntityBulletBase proj = new EntityBulletBase(worldObj, BulletConfigSyncingUtil.getKey(bullet)); + EntityBulletBaseNT proj = new EntityBulletBaseNT(worldObj, BulletConfigSyncingUtil.getKey(bullet)); proj.setPositionAndRotation(pos.xCoord + vec.xCoord, pos.yCoord + vec.yCoord, pos.zCoord + vec.zCoord, 0.0F, 0.0F); proj.setThrowableHeading(vec.xCoord, vec.yCoord, vec.zCoord, bullet.velocity * 0.75F, bullet.spread); diff --git a/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java b/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java index 0337af69a..a672e32a3 100644 --- a/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java +++ b/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java @@ -2,8 +2,6 @@ package com.hbm.world.gen; import java.util.Random; -import com.hbm.blocks.ModBlocks; -import com.hbm.blocks.generic.BlockNTMFlower.EnumFlowerType; import com.hbm.config.StructureConfig; import cpw.mods.fml.common.IWorldGenerator; @@ -13,7 +11,6 @@ import net.minecraft.world.World; import net.minecraft.world.biome.BiomeGenBase; import net.minecraft.world.chunk.IChunkProvider; import static net.minecraftforge.common.BiomeDictionary.*; -import net.minecraftforge.event.terraingen.DecorateBiomeEvent.Decorate; import net.minecraftforge.event.terraingen.InitMapGenEvent.EventType; import net.minecraftforge.event.terraingen.PopulateChunkEvent; import static net.minecraftforge.event.terraingen.TerrainGen.*; From ea8dcd9508a950ec51bb6399e3887a8f0e253858 Mon Sep 17 00:00:00 2001 From: Bob Date: Sat, 15 Jul 2023 22:30:49 +0200 Subject: [PATCH 197/432] tweaks and fixes, template crate --- changelog | 16 + src/main/java/com/hbm/blocks/ModBlocks.java | 5 +- .../hbm/blocks/generic/BlockStorageCrate.java | 4 + src/main/java/com/hbm/config/MobConfig.java | 6 +- .../com/hbm/entity/mob/EntityGlyphid.java | 11 +- .../entity/projectile/EntityBulletBaseNT.java | 9 +- .../hbm/entity/projectile/EntityChemical.java | 6 +- .../entity/projectile/EntityThrowableNT.java | 2 +- .../com/hbm/handler/BulletConfiguration.java | 4 +- .../hbm/handler/guncfg/GunEnergyFactory.java | 25 + .../container/ContainerCrateIron.java | 21 +- .../container/ContainerCrateTemplate.java | 29 + .../hbm/inventory/gui/GUICrateTemplate.java | 42 ++ .../inventory/gui/GUIMachineAssembler.java | 11 +- .../com/hbm/items/weapon/ItemAmmoHIMARS.java | 4 +- .../java/com/hbm/main/CraftingManager.java | 1 + .../machine/TileEntityMachineAssembler.java | 505 +++--------------- .../TileEntityMachineAssemblerBase.java | 119 +++-- .../machine/TileEntityMachineAssemfac.java | 74 +-- .../machine/TileEntityMachineChemplant.java | 11 +- .../TileEntityMachineChemplantBase.java | 11 +- .../machine/storage/TileEntityCrateIron.java | 2 - .../machine/storage/TileEntityCrateSteel.java | 3 +- .../storage/TileEntityCrateTemplate.java | 34 ++ src/main/resources/assets/hbm/lang/de_DE.lang | 2 + src/main/resources/assets/hbm/lang/en_US.lang | 2 + .../hbm/textures/blocks/crate_template.png | Bin 0 -> 180 bytes .../gui/storage/gui_crate_template.png | Bin 0 -> 1096 bytes 28 files changed, 367 insertions(+), 592 deletions(-) create mode 100644 src/main/java/com/hbm/inventory/container/ContainerCrateTemplate.java create mode 100644 src/main/java/com/hbm/inventory/gui/GUICrateTemplate.java create mode 100644 src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateTemplate.java create mode 100644 src/main/resources/assets/hbm/textures/blocks/crate_template.png create mode 100644 src/main/resources/assets/hbm/textures/gui/storage/gui_crate_template.png diff --git a/changelog b/changelog index 5e0b3f4d9..674a01c24 100644 --- a/changelog +++ b/changelog @@ -5,6 +5,11 @@ * Freezes entities * Can only deal damage to already frozen entities * Damage is proportional to max health, dealing more damage the stronger the mob is +* Template crate + * A cheap 27 slot crate + * Assemblers will insert their loaded template into the template crate after doing one operation with it + * Assemblers will also pull templates from template crates if no template is currently loaded + * This hopefully makes certain types of automation like AE2 easier as the template is therefore treated like a crafting ingredient that is returned afterwards ## Changed * Making LPG in the compressor now requires two compression steps @@ -13,6 +18,17 @@ * Fire now deals 4x more damage to glyphids * Cryogenic fluids from the chemthrower no longer deal direct damage, instead freezing the target * Once the target is already frozen, it will deal damage and apply the same effects as it used to +* Decreased the damage caused by hot fluids in the chemical thrower, regular steam no longer instantly vaporizes nuclear creepers +* Decreased acid damage and armor damage for corrosive liquids in the chemical thrower +* Glyphid hives have been made half as common, delete your config for this change to take effect +* The assembler now uses more modern code that lets it take and insert items from all storage blocks and not just NTM crates + * This new code also causes assemblers to only take as many items from containers as are actually required instead of sucking up as much as available whcih would cause clogs +* Assemblers and chemical plants now take the required items from containers instantly instead of only taking a single item per tick +* The universal projectile entity has been updated, it now uses a much better synchronization and interpolation method that prevents position desyncs after bouncing + * This also fixes issues where bullets could not damage multiple entities within the same tick, if they could penetrate them + * The old system also had issues with spectral bullets not damaging entities right behind walls, which has been fixed +* The coilgun now destroys solid blocks in its path +* Glyphids no longer use extended 128 block targeting unless soot pollution crosses a certain threshold (1 by default) ## Fixed * Fixed issue where mk5 explosions would behave weirdly in their origin chunk, often blowing through bedrock and thick layers of concrete diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 45c16a9e1..fbdcadf67 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -637,11 +637,12 @@ public class ModBlocks { public static Block sat_dock; public static Block soyuz_capsule; - + public static Block crate_iron; public static Block crate_steel; public static Block crate_desh; public static Block crate_tungsten; + public static Block crate_template; public static Block safe; public static Block mass_storage; @@ -2182,6 +2183,7 @@ public class ModBlocks { crate_steel = new BlockStorageCrate(Material.iron).setBlockName("crate_steel").setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); crate_desh = new BlockStorageCrate(Material.iron).setBlockName("crate_desh").setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); crate_tungsten = new BlockStorageCrate(Material.iron).setBlockName("crate_tungsten").setStepSound(Block.soundTypeMetal).setHardness(7.5F).setResistance(300.0F).setCreativeTab(MainRegistry.machineTab); + crate_template = new BlockStorageCrate(Material.iron).setBlockName("crate_template").setStepSound(Block.soundTypeMetal).setHardness(7.5F).setResistance(300.0F).setCreativeTab(MainRegistry.machineTab); safe = new BlockStorageCrate(Material.iron).setBlockName("safe").setStepSound(Block.soundTypeMetal).setHardness(7.5F).setResistance(10000.0F).setCreativeTab(MainRegistry.machineTab); mass_storage = new BlockMassStorage().setBlockName("mass_storage").setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); @@ -3009,6 +3011,7 @@ public class ModBlocks { register(crate_steel); register(crate_desh); register(crate_tungsten); + register(crate_template); register(safe); register(mass_storage); diff --git a/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java b/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java index 4b5caa4c0..8e8f5097f 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java +++ b/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java @@ -72,6 +72,9 @@ public class BlockStorageCrate extends BlockContainer implements IBlockMulti { this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":mass_storage_top"); this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":mass_storage_side"); } + if(this == ModBlocks.crate_template) { + this.iconTop = this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":crate_template"); + } } @Override @@ -90,6 +93,7 @@ public class BlockStorageCrate extends BlockContainer implements IBlockMulti { if(this == ModBlocks.crate_steel) return new TileEntityCrateSteel(); if(this == ModBlocks.crate_desh) return new TileEntityCrateDesh(); if(this == ModBlocks.crate_tungsten) return new TileEntityCrateTungsten(); + if(this == ModBlocks.crate_template) return new TileEntityCrateTemplate(); if(this == ModBlocks.safe) return new TileEntitySafe(); return null; } diff --git a/src/main/java/com/hbm/config/MobConfig.java b/src/main/java/com/hbm/config/MobConfig.java index 301f330c7..8ce250f40 100644 --- a/src/main/java/com/hbm/config/MobConfig.java +++ b/src/main/java/com/hbm/config/MobConfig.java @@ -29,13 +29,14 @@ public class MobConfig { public static boolean enableMobGear = true; public static boolean enableHives = true; - public static int hiveSpawn = 128; + public static int hiveSpawn = 256; public static double scoutThreshold = 0.1; public static double tier2Threshold = 1; public static double tier3Threshold = 10; public static double tier4Threshold = 50; public static double tier5Threshold = 100; public static double spawnMax = 50; + public static double targetingThreshold = 1; public static void loadFromConfig(Configuration config) { @@ -67,12 +68,13 @@ public class MobConfig { enableMobGear = CommonConfig.createConfigBool(config, CATEGORY, "12.D01_enableMobGear", "Whether zombies and skeletons should have additional gear when spawning", true); enableHives = CommonConfig.createConfigBool(config, CATEGORY, "12.G00_enableHives", "Whether glyphid hives should spawn", true); - hiveSpawn = CommonConfig.createConfigInt(config, CATEGORY, "12.G01_hiveSpawn", "The average amount of chunks per hive", 128); + hiveSpawn = CommonConfig.createConfigInt(config, CATEGORY, "12.G01_hiveSpawn", "The average amount of chunks per hive", 256); scoutThreshold = CommonConfig.createConfigDouble(config, CATEGORY, "12.G02_scoutThreshold", "Minimum amount of soot for scouts to spawn", 0.1); tier2Threshold = CommonConfig.createConfigDouble(config, CATEGORY, "12.G03_tier2Threshold", "Minimum amount of soot for tier 2 glyphids to spawn", 1); tier3Threshold = CommonConfig.createConfigDouble(config, CATEGORY, "12.G04_tier3Threshold", "Minimum amount of soot for tier 3 glyphids to spawn", 10); tier4Threshold = CommonConfig.createConfigDouble(config, CATEGORY, "12.G05_tier4Threshold", "Minimum amount of soot for tier 4 glyphids to spawn", 50); tier5Threshold = CommonConfig.createConfigDouble(config, CATEGORY, "12.G06_tier5Threshold", "Minimum amount of soot for tier 5 glyphids to spawn", 100); spawnMax = CommonConfig.createConfigDouble(config, CATEGORY, "12.G07_spawnMax", "Maximum amount of glyphids being able to exist at once through natural spawning", 50); + targetingThreshold = CommonConfig.createConfigDouble(config, CATEGORY, "12.G08_targetingThreshold", "Minimum amount of soot required for glyphids' extended targeting range to activate", 1D); } } diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java index 5dcac2356..10337b458 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java @@ -4,7 +4,10 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; +import com.hbm.config.MobConfig; import com.hbm.entity.pathfinder.PathFinderUtils; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.items.ModItems; import com.hbm.lib.ModDamageSource; import com.hbm.main.ResourceManager; @@ -65,7 +68,7 @@ public class EntityGlyphid extends EntityMob { @Override protected Entity findPlayerToAttack() { - EntityPlayer entityplayer = this.worldObj.getClosestVulnerablePlayerToEntity(this, 128.0D); + EntityPlayer entityplayer = this.worldObj.getClosestVulnerablePlayerToEntity(this, useExtendedTargeting() ? 128D : 16D); return entityplayer != null && this.canEntityBeSeen(entityplayer) ? entityplayer : null; } @@ -74,10 +77,14 @@ public class EntityGlyphid extends EntityMob { super.updateEntityActionState(); // hell yeah!! - if(this.entityToAttack != null && !this.hasPath()) { + if(useExtendedTargeting() && this.entityToAttack != null && !this.hasPath()) { this.setPathToEntity(PathFinderUtils.getPathEntityToEntityPartial(worldObj, this, this.entityToAttack, 16F, true, false, false, true)); } } + + public boolean useExtendedTargeting() { + return PollutionHandler.getPollution(worldObj, (int) Math.floor(posX), (int) Math.floor(posY), (int) Math.floor(posZ), PollutionType.SOOT) >= MobConfig.targetingThreshold; + } @Override protected boolean canDespawn() { diff --git a/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java b/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java index 1e8b6efee..15b2aadef 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java +++ b/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java @@ -132,7 +132,6 @@ public class EntityBulletBaseNT extends EntityThrowableInterp implements IBullet this.renderDistanceWeight = 10.0D; this.setSize(0.5F, 0.5F); - System.out.println("" + this.config.spread); this.setThrowableHeading(this.motionX, this.motionY, this.motionZ, 1.0F, this.config.spread * (offsetShot ? 1F : 0.25F)); } @@ -378,8 +377,10 @@ public class EntityBulletBaseNT extends EntityThrowableInterp implements IBullet if(config.bntImpact != null) config.bntImpact.behaveBlockHit(this, bX, bY, bZ); - if(!worldObj.isRemote && !config.liveAfterImpact) - this.setDead(); + if(!worldObj.isRemote) { + if(!config.liveAfterImpact && !config.isSpectral && bY > -1) this.setDead(); + if(!config.doesPenetrate && bY == -1) this.setDead(); + } if(config.incendiary > 0 && !this.worldObj.isRemote) { if(worldObj.rand.nextInt(3) == 0 && worldObj.getBlock((int)posX, (int)posY, (int)posZ) == Blocks.air) worldObj.setBlock((int)posX, (int)posY, (int)posZ, Blocks.fire); @@ -472,6 +473,8 @@ public class EntityBulletBaseNT extends EntityThrowableInterp implements IBullet if(config.bntHit != null) config.bntHit.behaveEntityHit(this, e); + + //this.setDead(); } //for when a bullet hurts an entity, not necessarily dying diff --git a/src/main/java/com/hbm/entity/projectile/EntityChemical.java b/src/main/java/com/hbm/entity/projectile/EntityChemical.java index d64e64d74..3eb72cddc 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityChemical.java +++ b/src/main/java/com/hbm/entity/projectile/EntityChemical.java @@ -175,7 +175,7 @@ public class EntityChemical extends EntityThrowableNT { } if(type.temperature >= 100) { - EntityDamageUtil.attackEntityFromIgnoreIFrame(e, getDamage(ModDamageSource.s_boil), 5F + (type.temperature - 100) * 0.02F); //5 damage at 100°C with one extra damage every 50°C + EntityDamageUtil.attackEntityFromIgnoreIFrame(e, getDamage(ModDamageSource.s_boil), 0.25F + (type.temperature - 100) * 0.001F); //.25 damage at 100°C with one extra damage every 1000°C if(type.temperature >= 500) { e.setFire(10); //afterburn for 10 seconds @@ -235,11 +235,11 @@ public class EntityChemical extends EntityThrowableNT { if(type.hasTrait(FT_Corrosive.class)) { FT_Corrosive trait = type.getTrait(FT_Corrosive.class); - EntityDamageUtil.attackEntityFromIgnoreIFrame(e, getDamage(ModDamageSource.s_acid), trait.getRating() / 20F); + EntityDamageUtil.attackEntityFromIgnoreIFrame(e, getDamage(ModDamageSource.s_acid), trait.getRating() / 50F); if(living != null) { for(int i = 0; i < 4; i++) { - ArmorUtil.damageSuit(living, i, trait.getRating() / 5); + ArmorUtil.damageSuit(living, i, (int) Math.ceil(trait.getRating() / 50)); } } } diff --git a/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java b/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java index 4f71aeedb..06d05c0f0 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java +++ b/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java @@ -192,7 +192,7 @@ public abstract class EntityThrowableNT extends Entity implements IProjectile { // if penetration is enabled, run impact for all intersecting entities if(this.doesPenetrate()) { - this.onImpact(hitMop); + this.onImpact(new MovingObjectPosition(entity)); } else { double dist = pos.distanceTo(hitMop.hitVec); diff --git a/src/main/java/com/hbm/handler/BulletConfiguration.java b/src/main/java/com/hbm/handler/BulletConfiguration.java index f91077c2c..100eed39a 100644 --- a/src/main/java/com/hbm/handler/BulletConfiguration.java +++ b/src/main/java/com/hbm/handler/BulletConfiguration.java @@ -57,11 +57,11 @@ public class BulletConfiguration implements Cloneable { //whether or not the bullet should penetrate mobs public boolean doesPenetrate; - //whether or not the bullet should phase through blocks + //disables collisions with blocks entirely public boolean isSpectral; //whether or not the bullet should break glass public boolean doesBreakGlass; - //whether the bullet should stay alive after colliding with a block + //bullets still call the impact function when hitting blocks but do not get destroyed public boolean liveAfterImpact; //creates a "muzzle flash" and a ton of smoke with every projectile spawned diff --git a/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java b/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java index 750d2ada3..48aa5feba 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java @@ -34,6 +34,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Vec3; public class GunEnergyFactory { @@ -295,6 +296,30 @@ public class GunEnergyFactory { bullet.trail = bullet.BOLT_NIGHTMARE; bullet.vPFX = "fireworks"; + bullet.bntUpdate = (entity) -> { + + if(entity.worldObj.isRemote) return; + + Vec3 vec = Vec3.createVectorHelper(entity.posX - entity.prevPosX, entity.posY - entity.prevPosY, entity.posZ - entity.prevPosZ); + double motion = Math.max(vec.lengthVector(), 0.1); + vec = vec.normalize(); + + for(double d = 0; d < motion; d += 0.5) { + + int x = (int) Math.floor(entity.posX - vec.xCoord * d); + int y = (int) Math.floor(entity.posY - vec.yCoord * d); + int z = (int) Math.floor(entity.posZ - vec.zCoord * d); + + Block b = entity.worldObj.getBlock(x, y, z); + float hardness = b.getBlockHardness(entity.worldObj, x, y, z); + + if(b.getMaterial() != Material.air && hardness >= 0 && hardness < 1.25) { + System.out.println(b.getUnlocalizedName() + " " + hardness); + entity.worldObj.func_147480_a(x, y, z, false); + } + } + }; + return bullet; } diff --git a/src/main/java/com/hbm/inventory/container/ContainerCrateIron.java b/src/main/java/com/hbm/inventory/container/ContainerCrateIron.java index d91eb1be0..26bdada96 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCrateIron.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCrateIron.java @@ -10,25 +10,20 @@ public class ContainerCrateIron extends ContainerCrateBase { public ContainerCrateIron(InventoryPlayer invPlayer, TileEntityCrateIron tedf) { super(tedf); - - for(int i = 0; i < 4; i++) - { - for(int j = 0; j < 9; j++) - { + + for(int i = 0; i < 4; i++) { + for(int j = 0; j < 9; j++) { this.addSlotToContainer(new Slot(tedf, j + i * 9, 8 + j * 18, 18 + i * 18)); } } - - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18 + 20)); } } - - for(int i = 0; i < 9; i++) - { + + for(int i = 0; i < 9; i++) { this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142 + 20)); } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerCrateTemplate.java b/src/main/java/com/hbm/inventory/container/ContainerCrateTemplate.java new file mode 100644 index 000000000..122c301e4 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerCrateTemplate.java @@ -0,0 +1,29 @@ +package com.hbm.inventory.container; + +import com.hbm.tileentity.machine.storage.TileEntityCrateTemplate; + +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Slot; + +public class ContainerCrateTemplate extends ContainerCrateBase { + + public ContainerCrateTemplate(InventoryPlayer invPlayer, TileEntityCrateTemplate tedf) { + super(tedf); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(tedf, j + i * 9, 8 + j * 18, 18 + i * 18)); + } + } + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 86 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 144)); + } + } +} \ No newline at end of file diff --git a/src/main/java/com/hbm/inventory/gui/GUICrateTemplate.java b/src/main/java/com/hbm/inventory/gui/GUICrateTemplate.java new file mode 100644 index 000000000..9968d461c --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUICrateTemplate.java @@ -0,0 +1,42 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerCrateTemplate; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.machine.storage.TileEntityCrateTemplate; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUICrateTemplate extends GuiContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/storage/gui_crate_template.png"); + private TileEntityCrateTemplate diFurnace; + + public GUICrateTemplate(InventoryPlayer invPlayer, TileEntityCrateTemplate tedf) { + super(new ContainerCrateTemplate(invPlayer, tedf)); + diFurnace = tedf; + + this.xSize = 176; + this.ySize = 168; + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName()); + + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + } +} \ No newline at end of file diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineAssembler.java b/src/main/java/com/hbm/inventory/gui/GUIMachineAssembler.java index 145174fad..31ebd23ec 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineAssembler.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineAssembler.java @@ -30,7 +30,7 @@ public class GUIMachineAssembler extends GuiInfoContainer { public void drawScreen(int mouseX, int mouseY, float f) { super.drawScreen(mouseX, mouseY, f); - this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 116, guiTop + 70 - 52, 16, 52, assembler.power, assembler.maxPower); + this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 116, guiTop + 70 - 52, 16, 52, assembler.power, assembler.getMaxPower()); if(assembler.getStackInSlot(4) == null || assembler.getStackInSlot(4).getItem()!= ModItems.assembly_template) { @@ -63,14 +63,15 @@ public class GUIMachineAssembler extends GuiInfoContainer { Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - int i = (int)assembler.getPowerScaled(52); + int i = (int) (assembler.power * 52 / assembler.getMaxPower()); drawTexturedModalRect(guiLeft + 116, guiTop + 70 - i, 176, 52 - i, 16, i); - int j = assembler.getProgressScaled(83); - drawTexturedModalRect(guiLeft + 45, guiTop + 82, 2, 222, j, 32); + if(assembler.isProgressing) { + int j = assembler.progress[0] * 83 / assembler.maxProgress[0]; + drawTexturedModalRect(guiLeft + 45, guiTop + 82, 2, 222, j, 32); + } if(assembler.getStackInSlot(4) == null || assembler.getStackInSlot(4).getItem()!= ModItems.assembly_template) { - this.drawInfoPanel(guiLeft - 16, guiTop + 36, 16, 16, 6); } diff --git a/src/main/java/com/hbm/items/weapon/ItemAmmoHIMARS.java b/src/main/java/com/hbm/items/weapon/ItemAmmoHIMARS.java index f631a8a97..4eac7ec1f 100644 --- a/src/main/java/com/hbm/items/weapon/ItemAmmoHIMARS.java +++ b/src/main/java/com/hbm/items/weapon/ItemAmmoHIMARS.java @@ -186,7 +186,7 @@ public class ItemAmmoHIMARS extends Item { this.itemTypes[SMALL_WP] = new HIMARSRocket("standard_wp", "himars_standard_wp", 0) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { - standardExplosion(rocket, mop, 20F, 3F, false, ModBlocks.slag, 1); + standardExplosion(rocket, mop, 20F, 3F, false, ModBlocks.block_slag, 1); ExplosionLarge.spawnShrapnels(rocket.worldObj, (int) mop.hitVec.xCoord, (int) mop.hitVec.yCoord, (int) mop.hitVec.zCoord, 30); ExplosionChaos.burn(rocket.worldObj, (int) mop.hitVec.xCoord, (int) mop.hitVec.yCoord, (int) mop.hitVec.zCoord, 20); int radius = 30; @@ -209,7 +209,7 @@ public class ItemAmmoHIMARS extends Item { this.itemTypes[SMALL_TB] = new HIMARSRocket("standard_tb", "himars_standard_tb", 0) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { - standardExplosion(rocket, mop, 20F, 10F, true, ModBlocks.slag, 1); + standardExplosion(rocket, mop, 20F, 10F, true, ModBlocks.block_slag, 1); ExplosionLarge.spawnShrapnels(rocket.worldObj, (int) mop.hitVec.xCoord, (int) mop.hitVec.yCoord, (int) mop.hitVec.zCoord, 30); standardMush(rocket, mop, 20); }}; diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 368aaf55d..1893862f8 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -293,6 +293,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.machine_turbine, 1), new Object[] { "SMS", "PTP", "SMS", 'S', STEEL.ingot(), 'T', ModItems.turbine_titanium, 'M', ModItems.coil_copper, 'P', ANY_PLASTIC.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.machine_converter_he_rf, 1), new Object[] { "SSS", "CRB", "SSS", 'S', STEEL.ingot(), 'C', ModItems.coil_copper, 'R', ModItems.coil_copper_torus, 'B', REDSTONE.block() }); addRecipeAuto(new ItemStack(ModBlocks.machine_converter_rf_he, 1), new Object[] { "SSS", "BRC", "SSS", 'S', BE.ingot(), 'C', ModItems.coil_copper, 'R', ModItems.coil_copper_torus, 'B', REDSTONE.block() }); + addRecipeAuto(new ItemStack(ModBlocks.crate_template, 1), new Object[] { "IPI", "P P", "IPI", 'I', IRON.ingot(), 'P', Items.paper }); addRecipeAuto(new ItemStack(ModBlocks.crate_iron, 1), new Object[] { "PPP", "I I", "III", 'P', IRON.plate(), 'I', IRON.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.crate_steel, 1), new Object[] { "PPP", "I I", "III", 'P', STEEL.plate(), 'I', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.crate_desh, 1), new Object[] { " D ", "DSD", " D ", 'D', ModItems.plate_desh, 'S', ModBlocks.crate_steel }); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java index 4c754fabe..452a614e9 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java @@ -1,64 +1,38 @@ package com.hbm.tileentity.machine; -import java.util.ArrayList; -import java.util.List; import java.util.Random; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; import com.hbm.handler.MultiblockHandlerXR; -import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerMachineAssembler; import com.hbm.inventory.gui.GUIMachineAssembler; import com.hbm.inventory.recipes.AssemblerRecipes; -import com.hbm.items.ModItems; import com.hbm.items.machine.ItemAssemblyTemplate; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; -import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.sound.AudioWrapper; -import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityMachineBase; -import com.hbm.tileentity.machine.storage.TileEntityCrateBase; -import com.hbm.tileentity.machine.storage.TileEntityCrateIron; -import com.hbm.tileentity.machine.storage.TileEntityCrateSteel; import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IBatteryItem; -import api.hbm.energy.IEnergyUser; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; -import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.tileentity.TileEntityChest; -import net.minecraft.tileentity.TileEntityHopper; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.ChunkCoordinates; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineAssembler extends TileEntityMachineBase implements IEnergyUser, IGUIProvider { +public class TileEntityMachineAssembler extends TileEntityMachineAssemblerBase { + + public int recipe = -1; - public long power; - public static final long maxPower = 100000; - public int progress; - public int maxProgress = 100; - public boolean isProgressing; - int age = 0; - int consumption = 100; - int speed = 100; - - @SideOnly(Side.CLIENT) - public int recipe; //don't initialize this, retard - - private AudioWrapper audio; - Random rand = new Random(); public TileEntityMachineAssembler() { @@ -82,52 +56,9 @@ public class TileEntityMachineAssembler extends TileEntityMachineBase implements return false; } - @Override - public ItemStack decrStackSize(int i, int j) { - if(slots[i] != null) - { - if(slots[i].stackSize <= j) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) - { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - this.power = nbt.getLong("powerTime"); - this.progress = nbt.getInteger("progress"); - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - nbt.setLong("powerTime", power); - nbt.setInteger("progress", progress); - } - - public long getPowerScaled(long i) { - return (power * i) / maxPower; - } - - public int getProgressScaled(int i) { - return (progress * i) / maxProgress; - } - @Override public void updateEntity() { + super.updateEntity(); if(!worldObj.isRemote) { @@ -170,77 +101,6 @@ public class TileEntityMachineAssembler extends TileEntityMachineBase implements speed /= (overLevel + 1); consumption *= (overLevel + 1); - isProgressing = false; - power = Library.chargeTEFromItems(slots, 0, power, maxPower); - - if(AssemblerRecipes.getOutputFromTempate(slots[4]) != null && AssemblerRecipes.getRecipeFromTempate(slots[4]) != null) { - this.maxProgress = (ItemAssemblyTemplate.getProcessTime(slots[4]) * speed) / 100; - - if(power >= consumption && removeItems(AssemblerRecipes.getRecipeFromTempate(slots[4]), cloneItemStackProper(slots))) { - - if(slots[5] == null || (slots[5] != null && slots[5].getItem() == AssemblerRecipes.getOutputFromTempate(slots[4]).copy().getItem()) && slots[5].stackSize + AssemblerRecipes.getOutputFromTempate(slots[4]).copy().stackSize <= slots[5].getMaxStackSize()) { - progress++; - isProgressing = true; - - if(progress >= maxProgress) { - progress = 0; - if(slots[5] == null) { - slots[5] = AssemblerRecipes.getOutputFromTempate(slots[4]).copy(); - } else { - slots[5].stackSize += AssemblerRecipes.getOutputFromTempate(slots[4]).copy().stackSize; - } - - removeItems(AssemblerRecipes.getRecipeFromTempate(slots[4]), slots); - - if(slots[0] != null && slots[0].getItem() == ModItems.meteorite_sword_alloyed) - slots[0] = new ItemStack(ModItems.meteorite_sword_machined); - } - - power -= consumption; - } - } else - progress = 0; - } else - progress = 0; - - int meta = worldObj.getBlockMetadata(this.xCoord, this.yCoord, this.zCoord); - - TileEntity te1 = null; - TileEntity te2 = null; - - if(meta == 14) { - te1 = worldObj.getTileEntity(xCoord - 2, yCoord, zCoord); - te2 = worldObj.getTileEntity(xCoord + 3, yCoord, zCoord - 1); - } - if(meta == 15) { - te1 = worldObj.getTileEntity(xCoord + 2, yCoord, zCoord); - te2 = worldObj.getTileEntity(xCoord - 3, yCoord, zCoord + 1); - } - if(meta == 13) { - te1 = worldObj.getTileEntity(xCoord, yCoord, zCoord + 2); - te2 = worldObj.getTileEntity(xCoord - 1, yCoord, zCoord - 3); - } - if(meta == 12) { - te1 = worldObj.getTileEntity(xCoord, yCoord, zCoord - 2); - te2 = worldObj.getTileEntity(xCoord + 1, yCoord, zCoord + 3); - } - - tryExchangeTemplates(te1, te2); - - //OUTPUT - if(te1 instanceof TileEntityCrateBase || te1 instanceof TileEntityChest) { - IInventory chest = (IInventory)te1; - tryFillContainer(chest, 5); - } - - if(te2 instanceof TileEntityCrateBase || te2 instanceof TileEntityChest) { - IInventory chest = (IInventory)te2; - - for(int i = 0; i < chest.getSizeInventory(); i++) - if(tryFillAssembler(chest, i)) - break; - } - int rec = -1; if(AssemblerRecipes.getOutputFromTempate(slots[4]) != null) { ComparableStack comp = ItemAssemblyTemplate.readType(slots[4]); @@ -249,8 +109,8 @@ public class TileEntityMachineAssembler extends TileEntityMachineBase implements NBTTagCompound data = new NBTTagCompound(); data.setLong("power", power); - data.setInteger("progress", progress); - data.setInteger("maxProgress", maxProgress); + data.setIntArray("progress", this.progress); + data.setIntArray("maxProgress", this.maxProgress); data.setBoolean("isProgressing", isProgressing); data.setInteger("recipe", rec); this.networkPack(data, 150); @@ -278,6 +138,15 @@ public class TileEntityMachineAssembler extends TileEntityMachineBase implements } } } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + this.power = nbt.getLong("power"); + this.progress = nbt.getIntArray("progress"); + this.maxProgress = nbt.getIntArray("maxProgress"); + this.isProgressing = nbt.getBoolean("isProgressing"); + this.recipe = nbt.getInteger("recipe"); + } @Override public AudioWrapper createAudioLoop() { @@ -303,307 +172,65 @@ public class TileEntityMachineAssembler extends TileEntityMachineBase implements new DirPos(xCoord - rot.offsetX * 2 + dir.offsetX, yCoord, zCoord - rot.offsetZ * 2 + dir.offsetZ, rot.getOpposite()) }; } - - public void onChunkUnload() { - - if(audio != null) { - audio.stopSound(); - audio = null; - } - } - - public void invalidate() { - - super.invalidate(); - - if(audio != null) { - audio.stopSound(); - audio = null; - } - } - - public void networkUnpack(NBTTagCompound nbt) { - this.power = nbt.getLong("power"); - this.progress = nbt.getInteger("progress"); - this.maxProgress = nbt.getInteger("maxProgress"); - this.isProgressing = nbt.getBoolean("isProgressing"); - this.recipe = nbt.getInteger("recipe"); - } - - private boolean removeItems(List stack, ItemStack[] array) { - - if(stack == null) - return false; - - for(int i = 0; i < stack.size(); i++) { - for(int j = 0; j < stack.get(i).stacksize; j++) { - AStack sta = stack.get(i).copy(); - sta.stacksize = 1; - - if(!canRemoveItemFromArray(sta, array)) - return false; - } - } - - return true; - } - - public boolean canRemoveItemFromArray(AStack stack, ItemStack[] array) { - - AStack st = stack.copy(); - - if(st == null) - return true; - - for(int i = 6; i < 18; i++) { - - if(array[i] != null) { - - ItemStack sta = array[i].copy(); - sta.stackSize = 1; - - if(sta != null && st.isApplicable(sta) && array[i].stackSize > 0) { - array[i].stackSize--; - - if(array[i].stackSize <= 0) - array[i] = null; - - return true; - } - } - } - - return false; - } - - public boolean tryExchangeTemplates(TileEntity te1, TileEntity te2) { - //validateTe sees if it's a valid inventory tile entity - boolean te1Valid = validateTe(te1); - boolean te2Valid = validateTe(te2); - - if(te1Valid && te2Valid){ - IInventory iTe1 = (IInventory)te1; - IInventory iTe2 = (IInventory)te2; - boolean openSlot = false; - boolean existingTemplate = false; - boolean filledContainer = false; - //Check if there's an existing template and an open slot - for(int i = 0; i < iTe1.getSizeInventory(); i++){ - if(iTe1.getStackInSlot(i) == null){ - openSlot = true; - - } - - } - if(this.slots[4] != null){ - existingTemplate = true; - } - //Check if there's a template in input - for(int i = 0; i < iTe2.getSizeInventory(); i++){ - if(iTe2.getStackInSlot(i) != null && iTe2.getStackInSlot(i).getItem() instanceof ItemAssemblyTemplate){ - if(openSlot && existingTemplate){ - filledContainer = tryFillContainer(iTe1, 4); - - } - if(filledContainer){ - ItemStack copy = iTe2.getStackInSlot(i).copy(); - iTe2.setInventorySlotContents(i, null); - this.slots[4] = copy; - } - } - - } - - - } - return false; - - } - - private boolean validateTe(TileEntity te) { - if(te instanceof TileEntityChest) { - return true; - } - - if(te instanceof TileEntityHopper) { - return true; - } - - if(te instanceof TileEntityCrateIron) { - return true; - } - - if(te instanceof TileEntityCrateSteel) { - return true; - } - - return false; - } - - //I can't believe that worked. - public ItemStack[] cloneItemStackProper(ItemStack[] array) { - ItemStack[] stack = new ItemStack[array.length]; - - for(int i = 0; i < array.length; i++) - if(array[i] != null) - stack[i] = array[i].copy(); - else - stack[i] = null; - - return stack; - } - - //Unloads output into chests - public boolean tryFillContainer(IInventory inventory, int slot) { - - int size = inventory.getSizeInventory(); - - for(int i = 0; i < size; i++) { - if(inventory.getStackInSlot(i) != null) { - - if(slots[slot] == null) - return false; - - ItemStack sta1 = inventory.getStackInSlot(i).copy(); - ItemStack sta2 = slots[slot].copy(); - if(sta1 != null && sta2 != null) { - sta1.stackSize = 1; - sta2.stackSize = 1; - - if(ItemStack.areItemStacksEqual(sta1, sta2) && ItemStack.areItemStackTagsEqual(sta1, sta2) && inventory.getStackInSlot(i).stackSize < inventory.getStackInSlot(i).getMaxStackSize()) { - slots[slot].stackSize--; - - if(slots[slot].stackSize <= 0) - slots[slot] = null; - - ItemStack sta3 = inventory.getStackInSlot(i).copy(); - sta3.stackSize++; - inventory.setInventorySlotContents(i, sta3); - - return true; - } - } - } - } - for(int i = 0; i < size; i++) { - - if(slots[slot] == null) - return false; - - ItemStack sta2 = slots[slot].copy(); - if(inventory.getStackInSlot(i) == null && sta2 != null) { - sta2.stackSize = 1; - slots[slot].stackSize--; - - if(slots[slot].stackSize <= 0) - slots[slot] = null; - - inventory.setInventorySlotContents(i, sta2); - - return true; - } - } - - return false; - } - - public boolean tryFillAssembler(IInventory inventory, int slot) { - - if(AssemblerRecipes.getOutputFromTempate(slots[4]) == null || AssemblerRecipes.getRecipeFromTempate(slots[4]) == null) - return false; - else { - List list = copyItemStackList(AssemblerRecipes.getRecipeFromTempate(slots[4])); - - for(int i = 0; i < list.size(); i++) - list.get(i).stacksize = 1; - - - if(inventory.getStackInSlot(slot) == null) - return false; - - ItemStack stack = inventory.getStackInSlot(slot).copy(); - stack.stackSize = 1; - - boolean flag = false; - - for(int i = 0; i < list.size(); i++) - if(list.get(i).isApplicable(stack)) - flag = true; - - if(!flag) - return false; - - } - - for(int i = 6; i < 18; i++) { - - if(slots[i] != null) { - - ItemStack sta1 = inventory.getStackInSlot(slot).copy(); - ItemStack sta2 = slots[i].copy(); - if(sta1 != null && sta2 != null) { - sta1.stackSize = 1; - sta2.stackSize = 1; - - if(sta1.isItemEqual(sta2) && slots[i].stackSize < slots[i].getMaxStackSize()) { - ItemStack sta3 = inventory.getStackInSlot(slot).copy(); - sta3.stackSize--; - if(sta3.stackSize <= 0) - sta3 = null; - inventory.setInventorySlotContents(slot, sta3); - - slots[i].stackSize++; - return true; - } - } - } - } - - for(int i = 6; i < 18; i++) { - - ItemStack sta2 = inventory.getStackInSlot(slot).copy(); - if(slots[i] == null && sta2 != null) { - sta2.stackSize = 1; - slots[i] = sta2.copy(); - - ItemStack sta3 = inventory.getStackInSlot(slot).copy(); - sta3.stackSize--; - if(sta3.stackSize <= 0) - sta3 = null; - inventory.setInventorySlotContents(slot, sta3); - - return true; - } - } - - return false; - } - - public static List copyItemStackList(List list){ - List newList = new ArrayList(); - if(list == null || list.isEmpty()) - return newList; - for(AStack stack : list){ - newList.add(stack.copy()); - } - return newList; - } @Override - public void setPower(long i) { - power = i; - + public void onChunkUnload() { + + if(audio != null) { + audio.stopSound(); + audio = null; + } } @Override - public long getPower() { - return power; - + public void invalidate() { + + super.invalidate(); + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + + private AudioWrapper audio; + + @Override + public int getRecipeCount() { + return 1; + } + + @Override + public int getTemplateIndex(int index) { + return 4; + } + + @Override + public int[] getSlotIndicesFromIndex(int index) { + return new int[] {6, 17, 5}; + } + + @Override + public ChunkCoordinates[] getInputPositions() { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + return new ChunkCoordinates[] {new ChunkCoordinates(xCoord - dir.offsetX * 3 + rot.offsetX, yCoord, zCoord - dir.offsetZ * 3 + rot.offsetZ)}; + } + + @Override + public ChunkCoordinates[] getOutputPositions() { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); + return new ChunkCoordinates[] {new ChunkCoordinates(xCoord + dir.offsetX * 2, yCoord, zCoord + dir.offsetZ * 2)}; + } + + @Override + public int getPowerSlot() { + return 0; } @Override public long getMaxPower() { - return maxPower; + return 100_000; } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemblerBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemblerBase.java index 587b14e85..aa5c7fec8 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemblerBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemblerBase.java @@ -9,6 +9,7 @@ import com.hbm.items.machine.ItemAssemblyTemplate; import com.hbm.lib.Library; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.tileentity.machine.storage.TileEntityCrateTemplate; import com.hbm.util.InventoryUtil; import api.hbm.energy.IEnergyUser; @@ -24,6 +25,7 @@ public abstract class TileEntityMachineAssemblerBase extends TileEntityMachineBa public int[] progress; public int[] maxProgress; public boolean isProgressing; + public boolean[] needsTemplateSwitch; int consumption = 100; int speed = 100; @@ -35,6 +37,7 @@ public abstract class TileEntityMachineAssemblerBase extends TileEntityMachineBa progress = new int[count]; maxProgress = new int[count]; + needsTemplateSwitch = new boolean[count]; } @Override @@ -45,11 +48,11 @@ public abstract class TileEntityMachineAssemblerBase extends TileEntityMachineBa int count = this.getRecipeCount(); this.isProgressing = false; - this.power = Library.chargeTEFromItems(slots, 0, power, this.getMaxPower()); + this.power = Library.chargeTEFromItems(slots, getPowerSlot(), power, this.getMaxPower()); for(int i = 0; i < count; i++) { - loadItems(i); unloadItems(i); + loadItems(i); } @@ -114,6 +117,7 @@ public abstract class TileEntityMachineAssemblerBase extends TileEntityMachineBa consumeItems(recipe, index); produceItems(output, index); this.progress[index] = 0; + this.needsTemplateSwitch[index] = true; this.markDirty(); } } @@ -140,53 +144,76 @@ public abstract class TileEntityMachineAssemblerBase extends TileEntityMachineBa private void loadItems(int index) { int template = getTemplateIndex(index); - if(slots[template] == null || slots[template].getItem() != ModItems.assembly_template) - return; - List recipe = AssemblerRecipes.getRecipeFromTempate(slots[template]); - - if(recipe != null) { - - ChunkCoordinates[] positions = getInputPositions(); - int[] indices = getSlotIndicesFromIndex(index); - - for(ChunkCoordinates coord : positions) { + ChunkCoordinates[] positions = getInputPositions(); + int[] indices = getSlotIndicesFromIndex(index); + + for(ChunkCoordinates coord : positions) { + + TileEntity te = worldObj.getTileEntity(coord.posX, coord.posY, coord.posZ); - TileEntity te = worldObj.getTileEntity(coord.posX, coord.posY, coord.posZ); - - if(te instanceof IInventory) { + if(te instanceof IInventory) { + + IInventory inv = (IInventory) te; + ISidedInventory sided = inv instanceof ISidedInventory ? (ISidedInventory) inv : null; + boolean templateCrate = te instanceof TileEntityCrateTemplate; + + if(templateCrate && slots[template] == null) { + + for(int i = 0; i < inv.getSizeInventory(); i++) { + ItemStack stack = inv.getStackInSlot(i); + + if(stack != null && stack.getItem() == ModItems.assembly_template && (sided == null || sided.canExtractItem(i, stack, 0))) { + slots[template] = stack.copy(); + sided.setInventorySlotContents(i, null); + this.needsTemplateSwitch[index] = false; + break; + } + } + } - IInventory inv = (IInventory) te; - ISidedInventory sided = inv instanceof ISidedInventory ? (ISidedInventory) inv : null; - - for(AStack ingredient : recipe) { - - if(!InventoryUtil.doesArrayHaveIngredients(slots, indices[0], indices[1], ingredient)) { - - for(int i = 0; i < inv.getSizeInventory(); i++) { - - ItemStack stack = inv.getStackInSlot(i); - if(ingredient.matchesRecipe(stack, true) && (sided == null || sided.canExtractItem(i, stack, 0))) { - - for(int j = indices[0]; j <= indices[1]; j++) { - - if(slots[j] != null && slots[j].stackSize < slots[j].getMaxStackSize() & InventoryUtil.doesStackDataMatch(slots[j], stack)) { - inv.decrStackSize(i, 1); - slots[j].stackSize++; - return; + boolean noTemplate = slots[template] == null || slots[template].getItem() != ModItems.assembly_template; + + if(!noTemplate) { + + List recipe = AssemblerRecipes.getRecipeFromTempate(slots[template]); + + if(recipe != null) { + + for(AStack ingredient : recipe) { + + outer: while(!InventoryUtil.doesArrayHaveIngredients(slots, indices[0], indices[1], ingredient)) { + + boolean found = false; + + for(int i = 0; i < inv.getSizeInventory(); i++) { + + ItemStack stack = inv.getStackInSlot(i); + if(ingredient.matchesRecipe(stack, true) && (sided == null || sided.canExtractItem(i, stack, 0))) { + found = true; + + for(int j = indices[0]; j <= indices[1]; j++) { + + if(slots[j] != null && slots[j].stackSize < slots[j].getMaxStackSize() & InventoryUtil.doesStackDataMatch(slots[j], stack)) { + inv.decrStackSize(i, 1); + slots[j].stackSize++; + continue outer; + } } - } - - for(int j = indices[0]; j <= indices[1]; j++) { - - if(slots[j] == null) { - slots[j] = stack.copy(); - slots[j].stackSize = 1; - inv.decrStackSize(i, 1); - return; + + for(int j = indices[0]; j <= indices[1]; j++) { + + if(slots[j] == null) { + slots[j] = stack.copy(); + slots[j].stackSize = 1; + inv.decrStackSize(i, 1); + continue outer; + } } } } + + if(!found) return; } } } @@ -209,8 +236,13 @@ public abstract class TileEntityMachineAssemblerBase extends TileEntityMachineBa IInventory inv = (IInventory) te; int i = indices[2]; - ItemStack out = slots[i]; + + int template = getTemplateIndex(index); + if(this.needsTemplateSwitch[index] && te instanceof TileEntityCrateTemplate && slots[template] != null) { + out = slots[template]; + i = template; + } if(out != null) { @@ -266,4 +298,5 @@ public abstract class TileEntityMachineAssemblerBase extends TileEntityMachineBa public abstract int[] getSlotIndicesFromIndex(int index); public abstract ChunkCoordinates[] getInputPositions(); public abstract ChunkCoordinates[] getOutputPositions(); + public abstract int getPowerSlot(); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java index 8a7c4e55f..a7f8b6f1e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java @@ -1,21 +1,15 @@ package com.hbm.tileentity.machine; -import java.util.ArrayList; -import java.util.List; import java.util.Random; import com.hbm.blocks.BlockDummyable; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerAssemfac; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIAssemfac; import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; -import com.hbm.lib.Library; import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.fluid.IFluidStandardTransceiver; @@ -31,7 +25,7 @@ import net.minecraft.util.ChunkCoordinates; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase implements IFluidStandardTransceiver, IFluidAcceptor, IFluidSource { +public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase implements IFluidStandardTransceiver { public AssemblerArm[] arms; @@ -46,8 +40,8 @@ public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase im arms[i] = new AssemblerArm(i % 3 == 1 ? 1 : 0); //the second of every group of three becomes a welder } - water = new FluidTank(Fluids.WATER, 64_000, 0); - steam = new FluidTank(Fluids.SPENTSTEAM, 64_000, 1); + water = new FluidTank(Fluids.WATER, 64_000); + steam = new FluidTank(Fluids.SPENTSTEAM, 64_000); } @Override @@ -94,10 +88,6 @@ public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase im this.sendFluid(steam, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } - if(steam.getFill() > 0) { - this.fillFluidInit(steam.getTankType()); - } - NBTTagCompound data = new NBTTagCompound(); data.setLong("power", this.power); data.setIntArray("progress", this.progress); @@ -402,6 +392,11 @@ public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase im return outpos; } + @Override + public int getPowerSlot() { + return 0; + } + @Override public FluidTank[] getSendingTanks() { return new FluidTank[] { steam }; @@ -412,59 +407,6 @@ public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase im return new FluidTank[] { water }; } - @Override - public void setFillForSync(int fill, int index) { } - - @Override - public void setFluidFill(int fill, FluidType type) { - if(type == water.getTankType()) water.setFill(fill); - if(type == steam.getTankType()) steam.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { } - - @Override - public int getFluidFill(FluidType type) { - if(type == water.getTankType()) return water.getFill(); - if(type == steam.getTankType()) return steam.getFill(); - return 0; - } - - @Override - public void fillFluidInit(FluidType type) { - for(DirPos pos : getConPos()) { - this.fillFluid(pos.getX(), pos.getY(), pos.getZ(), this.getTact(), type); - } - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - return worldObj.getTotalWorldTime() % 2 == 0; - } - - private List list = new ArrayList(); - - @Override - public List getFluidList(FluidType type) { - return type == steam.getTankType() ? this.list : new ArrayList(); - } - - @Override - public void clearFluidList(FluidType type) { - this.list.clear(); - } - - @Override - public int getMaxFluidFill(FluidType type) { - return type == water.getTankType() ? water.getMaxFill() : 0; - } - @Override public FluidTank[] getAllTanks() { return new FluidTank[] { water, steam }; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java index 8055c8d11..379a95c1b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java @@ -364,7 +364,10 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements for(AStack ingredient : recipe.inputs) { - if(!InventoryUtil.doesArrayHaveIngredients(slots, 13, 16, ingredient)) { + outer: + while(!InventoryUtil.doesArrayHaveIngredients(slots, 13, 16, ingredient)) { + + boolean found = false; for(int i = 0; i < inv.getSizeInventory(); i++) { @@ -376,7 +379,7 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements if(slots[j] != null && slots[j].stackSize < slots[j].getMaxStackSize() & InventoryUtil.doesStackDataMatch(slots[j], stack)) { inv.decrStackSize(i, 1); slots[j].stackSize++; - return; + continue outer; } } @@ -386,11 +389,13 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements slots[j] = stack.copy(); slots[j].stackSize = 1; inv.decrStackSize(i, 1); - return; + continue outer; } } } } + + if(!found) return; } } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java index 6d6caf6e2..d91102d51 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java @@ -214,7 +214,10 @@ public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBa for(AStack ingredient : recipe.inputs) { - if(!InventoryUtil.doesArrayHaveIngredients(slots, indices[0], indices[1], ingredient)) { + outer: + while(!InventoryUtil.doesArrayHaveIngredients(slots, indices[0], indices[1], ingredient)) { + + boolean found = false; for(int i = 0; i < inv.getSizeInventory(); i++) { @@ -226,7 +229,7 @@ public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBa if(slots[j] != null && slots[j].stackSize < slots[j].getMaxStackSize() & InventoryUtil.doesStackDataMatch(slots[j], stack)) { inv.decrStackSize(i, 1); slots[j].stackSize++; - return; + continue outer; } } @@ -236,11 +239,13 @@ public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBa slots[j] = stack.copy(); slots[j].stackSize = 1; inv.decrStackSize(i, 1); - return; + continue outer; } } } } + + if(!found) return; } } } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateIron.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateIron.java index aec9bf3f2..23e079344 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateIron.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateIron.java @@ -31,6 +31,4 @@ public class TileEntityCrateIron extends TileEntityCrateBase { public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUICrateIron(player.inventory, this); } - - } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateSteel.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateSteel.java index 940f689c6..abb9cf0cb 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateSteel.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateSteel.java @@ -8,10 +8,9 @@ import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; -import net.minecraft.inventory.ISidedInventory; import net.minecraft.world.World; -public class TileEntityCrateSteel extends TileEntityCrateBase implements ISidedInventory { +public class TileEntityCrateSteel extends TileEntityCrateBase { public TileEntityCrateSteel() { super(54); diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateTemplate.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateTemplate.java new file mode 100644 index 000000000..c22a6e669 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateTemplate.java @@ -0,0 +1,34 @@ +package com.hbm.tileentity.machine.storage; + +import com.hbm.inventory.container.ContainerCrateTemplate; +import com.hbm.inventory.gui.GUICrateTemplate; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.world.World; + +public class TileEntityCrateTemplate extends TileEntityCrateBase { + + public TileEntityCrateTemplate() { + super(27); + } + + @Override + public String getInventoryName() { + return this.hasCustomInventoryName() ? this.customName : "container.crateTemplate"; + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerCrateTemplate(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUICrateTemplate(player.inventory, this); + } +} diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 544d8c28f..858ba093d 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -293,6 +293,7 @@ container.craneUnboxer=Förderband-Entpacker container.crateDesh=Deshkiste container.crateIron=Eisenkiste container.crateSteel=Stahlkiste +container.crateTemplate=Vorlagenkiste container.crateTungsten=Wolframkiste container.crystallizer=Erzauflöser container.cyclotron=Zyklotron @@ -3715,6 +3716,7 @@ tile.crate_lead.name=Gefahrenstoffkiste tile.crate_metal.name=Maschinenkiste tile.crate_red.name=Rote Kiste tile.crate_steel.name=Stahlkiste +tile.crate_template.name=Vorlagenkiste tile.crate_tungsten.name=Wolframkiste tile.crate_weapon.name=Waffenkiste tile.crystal_hardened.name=Gehärteter Dunkler Kristall diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 18ca110d5..58dff23b9 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -629,6 +629,7 @@ container.craneUnboxer=Conveyor Unboxer container.crateDesh=Desh Crate container.crateIron=Iron Crate container.crateSteel=Steel Crate +container.crateTemplate=Template Crate container.crateTungsten=Tungsten Crate container.crystallizer=Ore Acidizer container.cyclotron=Cyclotron @@ -4587,6 +4588,7 @@ tile.crate_lead.name=Hazmat Crate tile.crate_metal.name=Machine Crate tile.crate_red.name=Red Crate tile.crate_steel.name=Steel Crate +tile.crate_template.name=Template Crate tile.crate_tungsten.name=Tungsten Crate tile.crate_weapon.name=Weapon Crate tile.crystal_hardened.name=Hardened Dark Crystal diff --git a/src/main/resources/assets/hbm/textures/blocks/crate_template.png b/src/main/resources/assets/hbm/textures/blocks/crate_template.png new file mode 100644 index 0000000000000000000000000000000000000000..2ae4399fc6ef822370bf9fa1a786d0a61298f30f GIT binary patch literal 180 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfO-I z978JRyuD-ScRNAm*u(vT*2Xfd>n191D04VvYqa4T+eynwv!~1y-ofm&bfM|djnegd z&TkG0y*<6dZ2z%oe@ef4$6siBcSrxh>WaT^-)i6g^_SkYZnaROXUr6H``(-HzlYjw z^joxgF@p?W`{%t#J`4&o7#s}X60v-LA8mhc|LWJOS1&8?{J3qOef->wxyOIcE@ZCBFkrYI zzW=|)F|eqnwNJhQga7%{zvdtCd&l>=fFF;sDE1w1d~34#@E04toaLRe&mIafH0@;B zaQO`1D3B31)1*84`N6Z1>u#pXO&g{8%<^{voT* zboRI{*4V~rxuxKVbC1er^b0q>(WyJ$>F~KwX~Nv2?=1u~?A|dVB^R6qz$MOfI+Tg+ zKU~A+&(fq?q;#Pqh6$#hEuYCs^u{@%vOa&-G%G*WZ9uo0FMs}+#881~eD*jbVbCnIPjmUHx3vIVCg!07RE)>i_@% literal 0 HcmV?d00001 From 0ff16c1a6c0c9fcdab1595036e6baf074b9ef2e5 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 16 Jul 2023 20:39:28 +0200 Subject: [PATCH 198/432] more coilgun ammo --- changelog | 3 + gradle.properties | 2 +- .../java/com/hbm/crafting/WeaponRecipes.java | 4 +- .../entity/projectile/EntityBulletBaseNT.java | 14 +- .../entity/projectile/EntityThrowableNT.java | 18 ++- .../hbm/handler/BulletConfigSyncingUtil.java | 10 +- .../com/hbm/handler/BulletConfiguration.java | 2 + .../hbm/handler/guncfg/GunEnergyFactory.java | 125 ++++++++++++++---- .../java/com/hbm/items/ItemAmmoEnums.java | 17 +++ src/main/java/com/hbm/items/ModItems.java | 8 +- src/main/java/com/hbm/lib/RefStrings.java | 2 +- src/main/resources/assets/hbm/lang/de_DE.lang | 4 +- src/main/resources/assets/hbm/lang/en_US.lang | 4 +- .../fluids/{hotblood.png => blood_hot.png} | Bin ...{gun_coilgun_ammo.png => ammo_coilgun.png} | Bin .../hbm/textures/items/ammo_coilgun_du.png | Bin 0 -> 264 bytes .../textures/items/ammo_coilgun_rubber.png | Bin 0 -> 210 bytes 17 files changed, 169 insertions(+), 44 deletions(-) rename src/main/resources/assets/hbm/textures/gui/fluids/{hotblood.png => blood_hot.png} (100%) rename src/main/resources/assets/hbm/textures/items/{gun_coilgun_ammo.png => ammo_coilgun.png} (100%) create mode 100644 src/main/resources/assets/hbm/textures/items/ammo_coilgun_du.png create mode 100644 src/main/resources/assets/hbm/textures/items/ammo_coilgun_rubber.png diff --git a/changelog b/changelog index 674a01c24..f8d0ffbc5 100644 --- a/changelog +++ b/changelog @@ -10,6 +10,9 @@ * Assemblers will insert their loaded template into the template crate after doing one operation with it * Assemblers will also pull templates from template crates if no template is currently loaded * This hopefully makes certain types of automation like AE2 easier as the template is therefore treated like a crafting ingredient that is returned afterwards +* More coilgun ammo + * Ferrouranium ball that has higher damage, higher wear and breaks blocks with higher resistance + * Rubber ball that deals immense knockback to entities and bounces around ## Changed * Making LPG in the compressor now requires two compression steps diff --git a/gradle.properties b/gradle.properties index 2882b656f..e55a78b8e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4655 +mod_build_number=4662 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index a4d35d774..9218f6ee6 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -160,7 +160,9 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_benelli), new Object[] { "HHP", "SSM", "AAP", 'H', ModItems.ingot_dura_steel, 'S', ModItems.hull_small_steel, 'A', ModItems.hull_small_aluminium, 'P', ModItems.ingot_polymer, 'M', ModItems.mechanism_rifle_2 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_lunatic_marksman), new Object[] { " GN", "SSM", " A", 'G', KEY_ANYPANE, 'N', ModItems.powder_nitan_mix, 'S', BIGMT.plate(), 'M', ModItems.mechanism_special, 'A', ANY_RESISTANTALLOY.plateCast() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_coilgun), new Object[] { "CCC", "SSM", " P", 'C', ModBlocks.capacitor_copper, 'S', BIGMT.plate(), 'M', ModItems.mechanism_special, 'P', ANY_PLASTIC.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_coilgun_ammo, 16), new Object[] { " T ", "TST", " T ", 'T', W.ingot(), 'S', BIGMT.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_coilgun, 16, 0), new Object[] { " T ", "TST", " T ", 'T', W.ingot(), 'S', BIGMT.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_coilgun, 16, 1), new Object[] { " T ", "TST", " T ", 'T', FERRO.ingot(), 'S', BIGMT.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_coilgun, 16, 2), new Object[] { " T ", "TST", " T ", 'T', RUBBER.ingot(), 'S', ANY_PLASTIC.ingot() }); //Ammo assemblies CraftingManager.addRecipeAuto(new ItemStack(ModItems.pellet_flechette, 1), new Object[] { " L ", " L ", "LLL", 'L', PB.nugget() }); diff --git a/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java b/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java index 15b2aadef..65741dbd4 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java +++ b/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java @@ -294,7 +294,10 @@ public class EntityBulletBaseNT extends EntityThrowableInterp implements IBullet if(config.plink == 2) worldObj.playSoundAtEntity(this, "hbm:weapon.gBounce", 1.0F, 1.0F); + this.setPosition(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord); onRicochet(mop.blockX, mop.blockY, mop.blockZ); + + //worldObj.setBlock((int) Math.floor(posX), (int) Math.floor(posY), (int) Math.floor(posZ), Blocks.dirt); } else { if(!worldObj.isRemote) { @@ -303,10 +306,10 @@ public class EntityBulletBaseNT extends EntityThrowableInterp implements IBullet } } - this.posX += (mop.hitVec.xCoord - this.posX) * 0.6; + /*this.posX += (mop.hitVec.xCoord - this.posX) * 0.6; this.posY += (mop.hitVec.yCoord - this.posY) * 0.6; - this.posZ += (mop.hitVec.zCoord - this.posZ) * 0.6; - + this.posZ += (mop.hitVec.zCoord - this.posZ) * 0.6;*/ + this.motionX *= config.bounceMod; this.motionY *= config.bounceMod; this.motionZ *= config.bounceMod; @@ -522,6 +525,11 @@ public class EntityBulletBaseNT extends EntityThrowableInterp implements IBullet return this.config.isSpectral; } + @Override + public int selfDamageDelay() { + return this.config.selfDamageDelay; + } + @Override protected double headingForceMult() { return 1D; diff --git a/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java b/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java index 06d05c0f0..ebde86c60 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java +++ b/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java @@ -172,7 +172,7 @@ public abstract class EntityThrowableNT extends Entity implements IProjectile { if(mop != null) { nextPos = Vec3.createVectorHelper(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord); } - + if(!this.worldObj.isRemote) { Entity hitEntity = null; @@ -182,8 +182,8 @@ public abstract class EntityThrowableNT extends Entity implements IProjectile { for(int j = 0; j < list.size(); ++j) { Entity entity = (Entity) list.get(j); - - if(entity.canBeCollidedWith() && (entity != thrower || this.ticksInAir >= 5)) { + + if(entity.canBeCollidedWith() && (entity != thrower || this.ticksInAir >= this.selfDamageDelay())) { double hitbox = 0.3F; AxisAlignedBB aabb = entity.boundingBox.expand(hitbox, hitbox, hitbox); MovingObjectPosition hitMop = aabb.calculateIntercept(pos, nextPos); @@ -212,6 +212,10 @@ public abstract class EntityThrowableNT extends Entity implements IProjectile { } } + this.posX += this.motionX * motionMult(); + this.posY += this.motionY * motionMult(); + this.posZ += this.motionZ * motionMult(); + if(mop != null) { if(mop.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK && this.worldObj.getBlock(mop.blockX, mop.blockY, mop.blockZ) == Blocks.portal) { this.setInPortal(); @@ -219,10 +223,6 @@ public abstract class EntityThrowableNT extends Entity implements IProjectile { this.onImpact(mop); } } - - this.posX += this.motionX * motionMult(); - this.posY += this.motionY * motionMult(); - this.posZ += this.motionZ * motionMult(); float hyp = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); this.rotationYaw = (float) (Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); @@ -274,6 +274,10 @@ public abstract class EntityThrowableNT extends Entity implements IProjectile { return false; } + public int selfDamageDelay() { + return 5; + } + public void getStuck(int x, int y, int z) { this.stuckBlockX = x; this.stuckBlockY = y; diff --git a/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java b/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java index c37a03eed..19987ab65 100644 --- a/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java +++ b/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java @@ -159,7 +159,10 @@ public class BulletConfigSyncingUtil { public static int SPECIAL_GAUSS = i++; public static int SPECIAL_GAUSS_CHARGED = i++; public static int SPECIAL_EMP = i++; - public static int SPECIAL_COIL = i++; + + public static int COIL_NORMAL = i++; + public static int COIL_DU = i++; + public static int COIL_RUBBER = i++; public static int FLAMER_NORMAL = i++; public static int FLAMER_NAPALM = i++; @@ -452,7 +455,10 @@ public class BulletConfigSyncingUtil { configSet.put(SPECIAL_GAUSS, GunGaussFactory.getGaussConfig()); configSet.put(SPECIAL_GAUSS_CHARGED, GunGaussFactory.getAltConfig()); configSet.put(SPECIAL_EMP, GunEnergyFactory.getOrbusConfig()); - configSet.put(SPECIAL_COIL, GunEnergyFactory.getCoilConfig()); + + configSet.put(COIL_NORMAL, GunEnergyFactory.getCoilConfig()); + configSet.put(COIL_DU, GunEnergyFactory.getCoilDUConfig()); + configSet.put(COIL_RUBBER, GunEnergyFactory.getCoilRubberConfig()); configSet.put(FLAMER_NORMAL, GunEnergyFactory.getFlameConfig()); configSet.put(FLAMER_NAPALM, GunEnergyFactory.getNapalmConfig()); diff --git a/src/main/java/com/hbm/handler/BulletConfiguration.java b/src/main/java/com/hbm/handler/BulletConfiguration.java index 100eed39a..1a5c07498 100644 --- a/src/main/java/com/hbm/handler/BulletConfiguration.java +++ b/src/main/java/com/hbm/handler/BulletConfiguration.java @@ -54,6 +54,8 @@ public class BulletConfiguration implements Cloneable { public int HBRC; //how much of the initial velocity is kept after bouncing public double bounceMod; + //how many ticks until the projectile can hurt the shooter + public int selfDamageDelay = 5; //whether or not the bullet should penetrate mobs public boolean doesPenetrate; diff --git a/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java b/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java index 48aa5feba..1e7d4342d 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java @@ -12,6 +12,7 @@ import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; import com.hbm.handler.GunConfiguration; import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.items.ItemAmmoEnums.AmmoCoilgun; import com.hbm.items.ItemAmmoEnums.AmmoFireExt; import com.hbm.items.ItemAmmoEnums.AmmoFlamethrower; import com.hbm.items.ModItems; @@ -19,6 +20,7 @@ import com.hbm.lib.HbmCollection.EnumGunManufacturer; import com.hbm.lib.ModDamageSource; import com.hbm.main.MainRegistry; import com.hbm.packet.AuxParticlePacketNT; +import com.hbm.packet.ExplosionKnockbackPacket; import com.hbm.packet.PacketDispatcher; import com.hbm.potion.HbmPotion; import com.hbm.render.util.RenderScreenOverlay.Crosshair; @@ -29,6 +31,7 @@ import com.hbm.util.CompatExternal; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.init.Blocks; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.potion.Potion; @@ -204,7 +207,9 @@ public class GunEnergyFactory { config.manufacturer = EnumGunManufacturer.DRG; config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.SPECIAL_COIL); + config.config.add(BulletConfigSyncingUtil.COIL_NORMAL); + config.config.add(BulletConfigSyncingUtil.COIL_DU); + config.config.add(BulletConfigSyncingUtil.COIL_RUBBER); return config; } @@ -278,9 +283,9 @@ public class GunEnergyFactory { BulletConfiguration bullet = new BulletConfiguration(); - bullet.ammo = new ComparableStack(ModItems.gun_coilgun_ammo); + bullet.ammo = new ComparableStack(ModItems.ammo_coilgun, 1, AmmoCoilgun.STOCK.ordinal()); - bullet.velocity = 5F; + bullet.velocity = 7.5F; bullet.spread = 0.0F; bullet.wear = 10; bullet.bulletsMin = 1; @@ -288,7 +293,7 @@ public class GunEnergyFactory { bullet.dmgMin = 35; bullet.dmgMax = 45; bullet.gravity = 0D; - bullet.maxAge = 100; + bullet.maxAge = 50; bullet.doesPenetrate = true; bullet.isSpectral = true; @@ -296,33 +301,105 @@ public class GunEnergyFactory { bullet.trail = bullet.BOLT_NIGHTMARE; bullet.vPFX = "fireworks"; - bullet.bntUpdate = (entity) -> { - - if(entity.worldObj.isRemote) return; - - Vec3 vec = Vec3.createVectorHelper(entity.posX - entity.prevPosX, entity.posY - entity.prevPosY, entity.posZ - entity.prevPosZ); - double motion = Math.max(vec.lengthVector(), 0.1); - vec = vec.normalize(); - - for(double d = 0; d < motion; d += 0.5) { + bullet.bntUpdate = (entity) -> breakInPath(entity, 1.25F); + + return bullet; + } + + public static BulletConfiguration getCoilDUConfig() { + + BulletConfiguration bullet = new BulletConfiguration(); + + bullet.ammo = new ComparableStack(ModItems.ammo_coilgun, 1, AmmoCoilgun.DU.ordinal()); + + bullet.velocity = 7.5F; + bullet.spread = 0.0F; + bullet.wear = 25; + bullet.bulletsMin = 1; + bullet.bulletsMax = 1; + bullet.dmgMin = 65; + bullet.dmgMax = 80; + bullet.gravity = 0D; + bullet.maxAge = 50; + bullet.doesPenetrate = true; + bullet.isSpectral = true; - int x = (int) Math.floor(entity.posX - vec.xCoord * d); - int y = (int) Math.floor(entity.posY - vec.yCoord * d); - int z = (int) Math.floor(entity.posZ - vec.zCoord * d); - - Block b = entity.worldObj.getBlock(x, y, z); - float hardness = b.getBlockHardness(entity.worldObj, x, y, z); - - if(b.getMaterial() != Material.air && hardness >= 0 && hardness < 1.25) { - System.out.println(b.getUnlocalizedName() + " " + hardness); - entity.worldObj.func_147480_a(x, y, z, false); - } + bullet.style = bullet.STYLE_BOLT; + bullet.trail = bullet.BOLT_NIGHTMARE; + bullet.vPFX = "fireworks"; + + bullet.bntUpdate = (entity) -> breakInPath(entity, 2.5F); + + return bullet; + } + + public static BulletConfiguration getCoilRubberConfig() { + + BulletConfiguration bullet = new BulletConfiguration(); + + bullet.ammo = new ComparableStack(ModItems.ammo_coilgun, 1, AmmoCoilgun.RUBBER.ordinal()); + + bullet.velocity = 5F; + bullet.spread = 0.0F; + bullet.wear = 10; + bullet.bulletsMin = 1; + bullet.bulletsMax = 1; + bullet.dmgMin = 10; + bullet.dmgMax = 20; + bullet.gravity = 0D; + bullet.maxAge = 50; + bullet.doesPenetrate = false; + bullet.isSpectral = false; + bullet.doesRicochet = true; + bullet.ricochetAngle = 30; + bullet.HBRC = 90; + bullet.LBRC = 100; + bullet.bounceMod = 1; + bullet.selfDamageDelay = 2; + + bullet.style = bullet.STYLE_PELLET; + + bullet.bntHurt = (entity, hit) -> { + Vec3 vec = Vec3.createVectorHelper(entity.motionX, entity.motionY, entity.motionZ); + vec = vec.normalize(); + vec.xCoord *= 10; + vec.yCoord *= 10; + vec.zCoord *= 10; + hit.motionX += vec.xCoord; + hit.motionY += vec.yCoord; + hit.motionZ += vec.zCoord; + + if(hit instanceof EntityPlayerMP) { + PacketDispatcher.wrapper.sendTo(new ExplosionKnockbackPacket(vec), (EntityPlayerMP) hit); } }; return bullet; } + public static void breakInPath(EntityBulletBaseNT entity, float threshold) { + + if(entity.worldObj.isRemote) return; + + Vec3 vec = Vec3.createVectorHelper(entity.posX - entity.prevPosX, entity.posY - entity.prevPosY, entity.posZ - entity.prevPosZ); + double motion = Math.max(vec.lengthVector(), 0.1); + vec = vec.normalize(); + + for(double d = 0; d < motion; d += 0.5) { + + int x = (int) Math.floor(entity.posX - vec.xCoord * d); + int y = (int) Math.floor(entity.posY - vec.yCoord * d); + int z = (int) Math.floor(entity.posZ - vec.zCoord * d); + + Block b = entity.worldObj.getBlock(x, y, z); + float hardness = b.getBlockHardness(entity.worldObj, x, y, z); + + if(b.getMaterial() != Material.air && hardness >= 0 && hardness < threshold) { + entity.worldObj.func_147480_a(x, y, z, false); + } + } + } + public static BulletConfiguration getFlameConfig() { BulletConfiguration bullet = new BulletConfiguration(); diff --git a/src/main/java/com/hbm/items/ItemAmmoEnums.java b/src/main/java/com/hbm/items/ItemAmmoEnums.java index d42eb4015..8ef0638d7 100644 --- a/src/main/java/com/hbm/items/ItemAmmoEnums.java +++ b/src/main/java/com/hbm/items/ItemAmmoEnums.java @@ -748,6 +748,23 @@ public class ItemAmmoEnums { } } + public enum AmmoCoilgun implements IAmmoItemEnum { + STOCK("ammo_coilgun"), + DU("ammo_coilgun_du", AmmoItemTrait.PRO_HEAVY_DAMAGE, AmmoItemTrait.CON_HEAVY_WEAR), + RUBBER("ammo_coilgun_rubber", AmmoItemTrait.NEU_MORE_BOUNCY, AmmoItemTrait.CON_DAMAGE); + + private final Set traits; + private final String unloc; + + private AmmoCoilgun(String unloc, AmmoItemTrait... traits) { + this.traits = safeAssign(traits); + this.unloc = unloc; + } + + @Override public Set getTraits() { return traits; } + @Override public String getInternalName() { return unloc; } + } + public interface IAmmoItemEnum { public Set getTraits(); public String getInternalName(); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 50a667323..91c4863de 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1506,6 +1506,7 @@ public class ModItems { public static ItemEnumMulti ammo_dart; public static ItemEnumMulti ammo_stinger_rocket; public static ItemEnumMulti ammo_luna_sniper; + public static ItemEnumMulti ammo_coilgun; public static Item ammo_cell; @@ -1574,7 +1575,6 @@ public class ModItems { public static Item gun_b92_ammo; public static Item gun_b93; public static Item gun_coilgun; - public static Item gun_coilgun_ammo; public static Item gun_xvl1456; public static Item gun_xvl1456_ammo; public static Item gun_osipr; @@ -4135,6 +4135,7 @@ public class ModItems { ammo_fuel = new ItemAmmo(AmmoFlamethrower.class).setUnlocalizedName("ammo_fuel"); ammo_fireext = new ItemAmmo(AmmoFireExt.class).setUnlocalizedName("ammo_fireext"); ammo_cell = new ItemCustomLore().setCreativeTab(MainRegistry.weaponTab).setUnlocalizedName("ammo_cell").setMaxStackSize(16); + ammo_coilgun = new ItemAmmo(AmmoCoilgun.class).setUnlocalizedName("ammo_coilgun"); ammo_dart = (ItemEnumMulti) new ItemAmmo(AmmoDart.class).setUnlocalizedName("ammo_dart").setMaxStackSize(16); ammo_stinger_rocket = new ItemAmmo(AmmoStinger.class).setUnlocalizedName("ammo_stinger_rocket"); ammo_luna_sniper = new ItemAmmo(AmmoLunaticSniper.class).setUnlocalizedName("ammo_luna_sniper"); @@ -4202,7 +4203,6 @@ public class ModItems { gun_b92_ammo = new GunB92Cell().setUnlocalizedName("gun_b92_ammo").setMaxStackSize(1).setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_b92_ammo_alt"); gun_b92 = new GunB92().setUnlocalizedName("gun_b92").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_b92"); gun_b93 = new GunB93().setUnlocalizedName("gun_b93").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_b93"); - gun_coilgun_ammo = new Item().setUnlocalizedName("gun_coilgun_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_coilgun_ammo"); gun_coilgun = new ItemCoilgun(GunEnergyFactory.getCoilgunConfig()).setUnlocalizedName("gun_coilgun").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_coilgun"); gun_xvl1456_ammo = new Item().setUnlocalizedName("gun_xvl1456_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_xvl1456_ammo"); gun_xvl1456 = new ItemGunGauss(GunGaussFactory.getXVLConfig(), GunGaussFactory.getChargedConfig()).setUnlocalizedName("gun_xvl1456").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_xvl1456"); @@ -7083,7 +7083,6 @@ public class ModItems { //GameRegistry.registerItem(gun_uboinik_ammo, gun_uboinik_ammo.getUnlocalizedName()); //GameRegistry.registerItem(gun_lever_action_ammo, gun_lever_action_ammo.getUnlocalizedName()); //GameRegistry.registerItem(gun_bolt_action_ammo, gun_bolt_action_ammo.getUnlocalizedName()); - GameRegistry.registerItem(gun_coilgun_ammo, gun_coilgun_ammo.getUnlocalizedName()); GameRegistry.registerItem(gun_xvl1456_ammo, gun_xvl1456_ammo.getUnlocalizedName()); GameRegistry.registerItem(gun_osipr_ammo, gun_osipr_ammo.getUnlocalizedName()); GameRegistry.registerItem(gun_osipr_ammo2, gun_osipr_ammo2.getUnlocalizedName()); @@ -7118,6 +7117,7 @@ public class ModItems { GameRegistry.registerItem(ammo_rocket, ammo_rocket.getUnlocalizedName()); GameRegistry.registerItem(ammo_stinger_rocket, ammo_stinger_rocket.getUnlocalizedName()); GameRegistry.registerItem(ammo_luna_sniper, ammo_luna_sniper.getUnlocalizedName()); + GameRegistry.registerItem(ammo_coilgun, ammo_coilgun.getUnlocalizedName()); GameRegistry.registerItem(ammo_grenade, ammo_grenade.getUnlocalizedName()); GameRegistry.registerItem(ammo_shell, ammo_shell.getUnlocalizedName()); @@ -8161,6 +8161,8 @@ public class ModItems { addRemap("gas_petroleum", gas_full, Fluids.PETROLEUM.getID()); addRemap("gas_biogas", gas_full, Fluids.BIOGAS.getID()); addRemap("gas_lpg", gas_full, Fluids.LPG.getID()); + + addRemap("gun_coilgun_ammo", ammo_coilgun, AmmoCoilgun.STOCK); } public static void addRemap(String unloc, Item item, Enum sub) { diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 6d1da286d..98f2a8683 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4655)"; + public static final String VERSION = "1.0.27 BETA (4662)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 858ba093d..d7e063169 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -983,6 +983,9 @@ item.ammo_arty_phosgene.name=16" Artilleriegranate (Phosgen) item.ammo_arty_phosphorus.name=16" Phosphor-Artilleriegranate item.ammo_arty_phosphorus_multi.name=16" Mehrfach-Phosphor-Artilleriegranate item.ammo_cell.name=Energiezelle +item.ammo_coilgun.name=Wolframkugel +item.ammo_coilgun_du.name=Ferrourankugel +item.ammo_coilgun_rubber.name=Gummikugel item.ammo_container.name=Munitionsbehälter item.ammo_dart.name=Plastikdart (Withernd) item.ammo_dart_nerf.name=NERF-Dart @@ -1876,7 +1879,6 @@ item.gun_calamity_ammo.name=.50 BMG Patrone (LEGACY) item.gun_calamity_dual.name=Sattelkanone item.gun_chemthrower.name=Chemowerfer item.gun_coilgun.name=Gaußpistole -item.gun_coilgun_ammo.name=Wolframkugel item.gun_cryolator.name=Der Cryolator item.gun_cryolator_ammo.name=Kryozelle item.gun_dampfmaschine.name=Garantiert keine Scherzwaffe diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 58dff23b9..3c4bec004 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1609,6 +1609,9 @@ item.ammo_arty_phosgene.name=16" Phosgene Artillery Shell item.ammo_arty_phosphorus.name=16" Phosphorus Shell item.ammo_arty_phosphorus_multi.name=16" Multi Phosphorus Shell item.ammo_cell.name=Energy Cell +item.ammo_coilgun.name=Coilgun Tungsten Ball +item.ammo_coilgun_du.name=Coilgun Ferrouranium Ball +item.ammo_coilgun_rubber.name=Coilgun Rubber Ball item.ammo_container.name=Ammo Container item.ammo_dart.name=Plastic Dart (Withering) item.ammo_dart_nerf.name=NERF Dart @@ -2567,7 +2570,6 @@ item.gun_calamity_ammo.name=.50 BMG Round (LEGACY) item.gun_calamity_dual.name=Saddle Gun item.gun_chemthrower.name=Chemthrower item.gun_coilgun.name=Coilgun -item.gun_coilgun_ammo.name=Coilgun Tungsten Ball item.gun_cryolator.name=The Cryolator item.gun_cryolator_ammo.name=Cryo Cell item.gun_dampfmaschine.name=Totally Not a Joke Weapon diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/hotblood.png b/src/main/resources/assets/hbm/textures/gui/fluids/blood_hot.png similarity index 100% rename from src/main/resources/assets/hbm/textures/gui/fluids/hotblood.png rename to src/main/resources/assets/hbm/textures/gui/fluids/blood_hot.png diff --git a/src/main/resources/assets/hbm/textures/items/gun_coilgun_ammo.png b/src/main/resources/assets/hbm/textures/items/ammo_coilgun.png similarity index 100% rename from src/main/resources/assets/hbm/textures/items/gun_coilgun_ammo.png rename to src/main/resources/assets/hbm/textures/items/ammo_coilgun.png diff --git a/src/main/resources/assets/hbm/textures/items/ammo_coilgun_du.png b/src/main/resources/assets/hbm/textures/items/ammo_coilgun_du.png new file mode 100644 index 0000000000000000000000000000000000000000..a8bb6196cf61ab1a4fbc5206db0dcc22e270051d GIT binary patch literal 264 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf*1>e^a_Kg LtDnm{r-UW|fzN0( literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/ammo_coilgun_rubber.png b/src/main/resources/assets/hbm/textures/items/ammo_coilgun_rubber.png new file mode 100644 index 0000000000000000000000000000000000000000..265c2b866617eb0dc62a9831e4fb0cafc99fa668 GIT binary patch literal 210 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfMPpU6M*3I$0aMIFkbBYVkynvYwtTHV}Zsl+M^Vv4iEa%o$ zso2{(um2S7-MKk$WA^M+n_iydj10b~O6J9!_%}OpvQRRMgNxm^B1ZnqpigsN^8Yoi zTE%oN%~<*T&+-GiEn6C9?reA^==$Vnh*x3%kMGjv2W7?oIZxU$YeOE;Q4F50elF{r G5}E+k)lq!_ literal 0 HcmV?d00001 From 05c87528a0181314056fc252a71724be0c61db8c Mon Sep 17 00:00:00 2001 From: Bob Date: Mon, 17 Jul 2023 10:30:41 +0200 Subject: [PATCH 199/432] youch --- changelog | 40 +------------------ gradle.properties | 2 +- .../com/hbm/crafting/SmeltingRecipes.java | 2 +- src/main/java/com/hbm/lib/RefStrings.java | 2 +- .../java/com/hbm/tileentity/TileMappings.java | 1 + 5 files changed, 6 insertions(+), 41 deletions(-) diff --git a/changelog b/changelog index f8d0ffbc5..2711907d1 100644 --- a/changelog +++ b/changelog @@ -1,39 +1,3 @@ -## Added -* UAC pistol - * Uses the .45 caliber -* Cryo cannon - * Freezes entities - * Can only deal damage to already frozen entities - * Damage is proportional to max health, dealing more damage the stronger the mob is -* Template crate - * A cheap 27 slot crate - * Assemblers will insert their loaded template into the template crate after doing one operation with it - * Assemblers will also pull templates from template crates if no template is currently loaded - * This hopefully makes certain types of automation like AE2 easier as the template is therefore treated like a crafting ingredient that is returned afterwards -* More coilgun ammo - * Ferrouranium ball that has higher damage, higher wear and breaks blocks with higher resistance - * Rubber ball that deals immense knockback to entities and bounces around - -## Changed -* Making LPG in the compressor now requires two compression steps - * This fixes an issue where polymer is unobtainable in 528 mode since petroleum at 1PU not being obtainable -* Fire and cryo damage now bypasses glyphid's armor, being unaffected by the armor's damage reduction and not being able to break off armor either -* Fire now deals 4x more damage to glyphids -* Cryogenic fluids from the chemthrower no longer deal direct damage, instead freezing the target - * Once the target is already frozen, it will deal damage and apply the same effects as it used to -* Decreased the damage caused by hot fluids in the chemical thrower, regular steam no longer instantly vaporizes nuclear creepers -* Decreased acid damage and armor damage for corrosive liquids in the chemical thrower -* Glyphid hives have been made half as common, delete your config for this change to take effect -* The assembler now uses more modern code that lets it take and insert items from all storage blocks and not just NTM crates - * This new code also causes assemblers to only take as many items from containers as are actually required instead of sucking up as much as available whcih would cause clogs -* Assemblers and chemical plants now take the required items from containers instantly instead of only taking a single item per tick -* The universal projectile entity has been updated, it now uses a much better synchronization and interpolation method that prevents position desyncs after bouncing - * This also fixes issues where bullets could not damage multiple entities within the same tick, if they could penetrate them - * The old system also had issues with spectral bullets not damaging entities right behind walls, which has been fixed -* The coilgun now destroys solid blocks in its path -* Glyphids no longer use extended 128 block targeting unless soot pollution crosses a certain threshold (1 by default) - ## Fixed -* Fixed issue where mk5 explosions would behave weirdly in their origin chunk, often blowing through bedrock and thick layers of concrete -* Fixed saturnite rifle disappearing in third person when scoping -* Fixed cables not visually connecting to assemblers +* Fixed bedrock ore to cobblestone being wrong, using actual ore blocks instead of the extracted item +* Fixed missing mapping on the template chest, causing crashes diff --git a/gradle.properties b/gradle.properties index e55a78b8e..aca4be12e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4662 +mod_build_number=4663 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ diff --git a/src/main/java/com/hbm/crafting/SmeltingRecipes.java b/src/main/java/com/hbm/crafting/SmeltingRecipes.java index 960689544..60a709ce0 100644 --- a/src/main/java/com/hbm/crafting/SmeltingRecipes.java +++ b/src/main/java/com/hbm/crafting/SmeltingRecipes.java @@ -183,7 +183,7 @@ public class SmeltingRecipes { for(EnumBedrockOre ore : EnumBedrockOre.values()) { int i = ore.ordinal(); - GameRegistry.addSmelting(new ItemStack(ModBlocks.ore_bedrock, 1, i), new ItemStack(Blocks.cobblestone, 16), 0.1F); + GameRegistry.addSmelting(new ItemStack(ModItems.ore_bedrock, 1, i), new ItemStack(Blocks.cobblestone, 16), 0.1F); } for(int i = 0; i < 10; i++) diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 98f2a8683..55bb20699 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4662)"; + public static final String VERSION = "1.0.27 BETA (4663)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 0210ff1ad..dd84c756e 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -96,6 +96,7 @@ public class TileMappings { put(TileEntityMachineFluidTank.class, "tileentity_fluid_tank"); put(TileEntityMachineTurbofan.class, "tileentity_machine_turbofan"); put(TileEntityMachineTurbineGas.class, "tileentity_machine_gasturbine"); + put(TileEntityCrateTemplate.class, "tileentity_crate_template"); put(TileEntityCrateIron.class, "tileentity_crate_iron"); put(TileEntityCrateSteel.class, "tileentity_crate_steel"); put(TileEntityCrateDesh.class, "tileentity_crate_desh"); From 1d756bc6718b031d4a210dce2e725008f5a75a78 Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Mon, 17 Jul 2023 14:16:58 -0500 Subject: [PATCH 200/432] Fluid Gauge OC compat for reading fluid flows. --- .../hbm/blocks/network/FluidDuctGauge.java | 39 ++++++++++++++++++- 1 file changed, 37 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java b/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java index 10e36bf10..abf4cc4d1 100644 --- a/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java +++ b/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java @@ -15,8 +15,13 @@ import com.hbm.tileentity.network.TileEntityPipeBaseNT; import com.hbm.util.I18nUtil; import api.hbm.fluid.IPipeNet; +import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; +import li.cil.oc.api.network.SimpleComponent; import net.minecraft.block.BlockPistonBase; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; @@ -100,8 +105,9 @@ public class FluidDuctGauge extends FluidDuctBase implements IBlockMultiPass, IL public int getRenderType(){ return IBlockMultiPass.getRenderType(); } - - public static class TileEntityPipeGauge extends TileEntityPipeBaseNT implements INBTPacketReceiver { + + @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) + public static class TileEntityPipeGauge extends TileEntityPipeBaseNT implements INBTPacketReceiver, SimpleComponent { private BigInteger lastMeasurement = BigInteger.valueOf(10); private long deltaTick = 0; @@ -144,5 +150,34 @@ public class FluidDuctGauge extends FluidDuctBase implements IBlockMultiPass, IL this.deltaTick = Math.max(nbt.getLong("deltaT"), 0); this.deltaLastSecond = Math.max(nbt.getLong("deltaS"), 0); } + + @Override + public String getComponentName() { + return "ntm_fluid_gauge"; + } + + @Callback(direct = true, limit = 16) + @Optional.Method(modid = "OpenComputers") + public Object[] getTick(Context context, Arguments args) { + return new Object[] {deltaTick}; + } + + @Callback(direct = true, limit = 16) + @Optional.Method(modid = "OpenComputers") + public Object[] getSecond(Context context, Arguments args) { + return new Object[] {deltaSecond}; + } + + @Callback(direct = true, limit = 16) + @Optional.Method(modid = "OpenComputers") + public Object[] getType(Context context, Arguments args) { + return new Object[] {I18nUtil.resolveKey(getType().getUnlocalizedName())}; + } + + @Callback(direct = true, limit = 16) + @Optional.Method(modid = "OpenComputers") + public Object[] getInfo(Context context, Arguments args) { + return new Object[] {deltaTick, deltaSecond, I18nUtil.resolveKey(getType().getUnlocalizedName()), xCoord, yCoord, zCoord}; + } } } From 91e52dc665514b7925f3685d1d39c0bd1cc7921d Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Mon, 17 Jul 2023 14:21:19 -0500 Subject: [PATCH 201/432] Fluid Gauge OC compat for reading fluid flows. --- src/main/java/com/hbm/blocks/network/FluidDuctGauge.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java b/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java index abf4cc4d1..b15aeba9c 100644 --- a/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java +++ b/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java @@ -151,6 +151,7 @@ public class FluidDuctGauge extends FluidDuctBase implements IBlockMultiPass, IL this.deltaLastSecond = Math.max(nbt.getLong("deltaS"), 0); } + @Override public String getComponentName() { return "ntm_fluid_gauge"; From ecec7e5a36a88443cea263718f97aaff40fda57a Mon Sep 17 00:00:00 2001 From: Bob Date: Tue, 18 Jul 2023 18:34:16 +0200 Subject: [PATCH 202/432] the malicious gigglefish from the silly dimension --- changelog | 14 +- src/main/java/com/hbm/blocks/BlockEnums.java | 13 ++ src/main/java/com/hbm/blocks/ModBlocks.java | 22 ++ .../java/com/hbm/blocks/machine/BlockCM.java | 30 +++ .../com/hbm/blocks/machine/BlockCMGlass.java | 31 +++ .../blocks/machine/BlockCustomMachine.java | 131 ++++++++++++ .../hbm/commands/CommandDebugChunkLoad.java | 2 +- .../entity/projectile/EntityThrowableNT.java | 6 +- .../container/ContainerMachineCustom.java | 107 ++++++++++ .../hbm/inventory/gui/GUIMachineCustom.java | 63 ++++++ .../recipes/CustomMachineRecipes.java | 127 +++++++++++ .../recipes/loader/SerializableRecipe.java | 39 +++- .../hbm/items/block/ItemCustomMachine.java | 51 +++++ src/main/java/com/hbm/main/MainRegistry.java | 2 + .../java/com/hbm/tileentity/TileMappings.java | 1 + .../machine/TileEntityCustomMachine.java | 202 ++++++++++++++++++ .../machine/TileEntityMachineRTG.java | 20 +- .../hbm/textures/blocks/cm_block_alloy.png | Bin 0 -> 537 bytes .../hbm/textures/blocks/cm_block_base.png | Bin 0 -> 560 bytes .../hbm/textures/blocks/cm_block_desh.png | Bin 0 -> 577 bytes .../hbm/textures/blocks/cm_block_steel.png | Bin 0 -> 563 bytes .../hbm/textures/blocks/cm_block_tcalloy.png | Bin 0 -> 564 bytes .../hbm/textures/blocks/cm_engine_bismuth.png | Bin 0 -> 797 bytes .../hbm/textures/blocks/cm_engine_desh.png | Bin 0 -> 701 bytes .../textures/blocks/cm_engine_standard.png | Bin 0 -> 655 bytes .../hbm/textures/blocks/cm_port_alloy.png | Bin 0 -> 581 bytes .../hbm/textures/blocks/cm_port_desh.png | Bin 0 -> 615 bytes .../hbm/textures/blocks/cm_port_steel.png | Bin 0 -> 612 bytes .../hbm/textures/blocks/cm_port_tcalloy.png | Bin 0 -> 626 bytes .../hbm/textures/blocks/cm_sheet_alloy.png | Bin 0 -> 169 bytes .../hbm/textures/blocks/cm_sheet_base.png | Bin 0 -> 174 bytes .../hbm/textures/blocks/cm_sheet_desh.png | Bin 0 -> 165 bytes .../hbm/textures/blocks/cm_sheet_steel.png | Bin 0 -> 169 bytes .../hbm/textures/blocks/cm_sheet_tcalloy.png | Bin 0 -> 176 bytes .../hbm/textures/blocks/cm_tank_alloy.png | Bin 0 -> 371 bytes .../hbm/textures/blocks/cm_tank_desh.png | Bin 0 -> 373 bytes .../hbm/textures/blocks/cm_tank_steel.png | Bin 0 -> 397 bytes .../hbm/textures/blocks/cm_tank_tcalloy.png | Bin 0 -> 397 bytes .../hbm/textures/blocks/cm_terminal_front.png | Bin 0 -> 445 bytes .../hbm/textures/blocks/cm_terminal_side.png | Bin 0 -> 489 bytes .../textures/gui/processing/gui_custom.png | Bin 0 -> 3223 bytes 41 files changed, 843 insertions(+), 18 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/machine/BlockCM.java create mode 100644 src/main/java/com/hbm/blocks/machine/BlockCMGlass.java create mode 100644 src/main/java/com/hbm/blocks/machine/BlockCustomMachine.java create mode 100644 src/main/java/com/hbm/inventory/container/ContainerMachineCustom.java create mode 100644 src/main/java/com/hbm/inventory/gui/GUIMachineCustom.java create mode 100644 src/main/java/com/hbm/inventory/recipes/CustomMachineRecipes.java create mode 100644 src/main/java/com/hbm/items/block/ItemCustomMachine.java create mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java create mode 100644 src/main/resources/assets/hbm/textures/blocks/cm_block_alloy.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/cm_block_base.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/cm_block_desh.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/cm_block_steel.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/cm_block_tcalloy.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/cm_engine_bismuth.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/cm_engine_desh.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/cm_engine_standard.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/cm_port_alloy.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/cm_port_desh.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/cm_port_steel.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/cm_port_tcalloy.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/cm_sheet_alloy.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/cm_sheet_base.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/cm_sheet_desh.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/cm_sheet_steel.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/cm_sheet_tcalloy.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/cm_tank_alloy.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/cm_tank_desh.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/cm_tank_steel.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/cm_tank_tcalloy.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/cm_terminal_front.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/cm_terminal_side.png create mode 100644 src/main/resources/assets/hbm/textures/gui/processing/gui_custom.png diff --git a/changelog b/changelog index 2711907d1..ec89d27e1 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,11 @@ -## Fixed -* Fixed bedrock ore to cobblestone being wrong, using actual ore blocks instead of the extracted item -* Fixed missing mapping on the template chest, causing crashes +## Added +* Rubber ball + * can be thrown at people +* New chlorine processing chain + * Involves 240 processing steps of washing, electrolyzing, centrifuging and treating chlorocalcite + +## Changed +* Glyphids now have a higher tracking range, being 256 blocks +* Standard glyphids now have a base health of 100 +* Glyphid scouts are now immune to fire and explosive damage, have a 50% damage reduction against projectiles and have passive regeneration +* Increased hive block blast resistance, they can no longer be blown up wiith conventional explosives diff --git a/src/main/java/com/hbm/blocks/BlockEnums.java b/src/main/java/com/hbm/blocks/BlockEnums.java index 717ac2639..f1119ce64 100644 --- a/src/main/java/com/hbm/blocks/BlockEnums.java +++ b/src/main/java/com/hbm/blocks/BlockEnums.java @@ -20,6 +20,19 @@ public class BlockEnums { SULFUR, ASBESTOS } + + public static enum EnumCMMaterials { + STEEL, + ALLOY, + DESH, + TCALLOY + } + + public static enum EnumCMEngines { + STANDARD, + DESH, + BISMUTH + } /** DECO / STRUCTURE ENUMS */ //i apologize in advance diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index fbdcadf67..31dd43231 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -864,6 +864,13 @@ public class ModBlocks { @Deprecated public static Block factory_advanced_furnace; @Deprecated public static Block factory_advanced_conductor; + public static Block cm_block; + public static Block cm_sheet; + public static Block cm_engine; + public static Block cm_tank; + public static Block cm_port; + public static Block custom_machine; + public static Block reactor_element; public static Block reactor_control; public static Block reactor_hatch; @@ -2013,6 +2020,13 @@ public class ModBlocks { factory_advanced_furnace = new FactoryHatch(Material.iron).setBlockName("factory_advanced_furnace").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":factory_advanced_furnace"); factory_advanced_conductor = new BlockPillar(Material.iron, RefStrings.MODID + ":factory_advanced_conductor").setBlockName("factory_advanced_conductor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":factory_advanced_hull"); + cm_block = new BlockCM(Material.iron, EnumCMMaterials.class, true, true).setBlockName("cm_block").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":cm_block"); + cm_sheet = new BlockCM(Material.iron, EnumCMMaterials.class, true, true).setBlockName("cm_sheet").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":cm_sheet"); + cm_engine = new BlockCM(Material.iron, EnumCMEngines.class, true, true).setBlockName("cm_engine").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":cm_engine"); + cm_tank = new BlockCMGlass(Material.iron, EnumCMMaterials.class, true, true).setBlockName("cm_tank").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":cm_tank"); + cm_port = new BlockCM(Material.iron, EnumCMMaterials.class, true, true).setBlockName("cm_port").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":cm_port"); + custom_machine = new BlockCustomMachine().setBlockName("custom_machine").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F); + reactor_element = new BlockPillar(Material.iron, RefStrings.MODID + ":reactor_element_top", RefStrings.MODID + ":reactor_element_base").setBlockName("reactor_element").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":reactor_element_side"); reactor_control = new BlockPillar(Material.iron, RefStrings.MODID + ":reactor_control_top").setBlockName("reactor_control").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":reactor_control_side"); reactor_hatch = new ReactorHatch(Material.iron).setBlockName("reactor_hatch").setHardness(5.0F).setResistance(1000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_concrete"); @@ -3331,6 +3345,14 @@ public class ModBlocks { GameRegistry.registerBlock(factory_titanium_hull, factory_titanium_hull.getUnlocalizedName()); GameRegistry.registerBlock(factory_advanced_hull, factory_advanced_hull.getUnlocalizedName()); + //CM stuff + register(custom_machine, ItemCustomMachine.class); + register(cm_block); + register(cm_sheet); + register(cm_engine); + register(cm_tank); + register(cm_port); + //Multiblock Generators GameRegistry.registerBlock(reactor_element, reactor_element.getUnlocalizedName()); GameRegistry.registerBlock(reactor_control, reactor_control.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/machine/BlockCM.java b/src/main/java/com/hbm/blocks/machine/BlockCM.java new file mode 100644 index 000000000..eb8b23e78 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/BlockCM.java @@ -0,0 +1,30 @@ +package com.hbm.blocks.machine; + +import java.util.Locale; + +import com.hbm.blocks.BlockEnumMulti; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.util.IIcon; + +public class BlockCM extends BlockEnumMulti { + + public BlockCM(Material mat, Class theEnum, boolean multiName, boolean multiTexture) { + super(mat, theEnum, multiName, multiTexture); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister reg) { + Enum[] enums = theEnum.getEnumConstants(); + this.icons = new IIcon[enums.length]; + + for(int i = 0; i < icons.length; i++) { + Enum num = enums[i]; + this.icons[i] = reg.registerIcon(this.getTextureName() + "_" + num.name().toLowerCase(Locale.US)); + } + } +} diff --git a/src/main/java/com/hbm/blocks/machine/BlockCMGlass.java b/src/main/java/com/hbm/blocks/machine/BlockCMGlass.java new file mode 100644 index 000000000..af9a116a9 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/BlockCMGlass.java @@ -0,0 +1,31 @@ +package com.hbm.blocks.machine; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.world.IBlockAccess; + +public class BlockCMGlass extends BlockCM { + + public BlockCMGlass(Material mat, Class theEnum, boolean multiName, boolean multiTexture) { + super(mat, theEnum, multiName, multiTexture); + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + + @SideOnly(Side.CLIENT) + public boolean shouldSideBeRendered(IBlockAccess world, int x, int y, int z, int side) { + Block block = world.getBlock(x, y, z); + + return block == this ? false : super.shouldSideBeRendered(world, x, y, z, side); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/BlockCustomMachine.java b/src/main/java/com/hbm/blocks/machine/BlockCustomMachine.java new file mode 100644 index 000000000..2d1eb0484 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/BlockCustomMachine.java @@ -0,0 +1,131 @@ +package com.hbm.blocks.machine; + +import java.util.ArrayList; + +import com.hbm.items.ModItems; +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.machine.TileEntityCustomMachine; + +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.stats.StatList; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; + +public class BlockCustomMachine extends BlockContainer { + + @SideOnly(Side.CLIENT) + private IIcon iconFront; + + public BlockCustomMachine() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityCustomMachine(); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.iconFront = iconRegister.registerIcon(RefStrings.MODID + ":cm_terminal_front"); + this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":cm_terminal_side"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + return metadata == 0 && side == 3 ? this.iconFront : (side == metadata ? this.iconFront : this.blockIcon); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + + if(world.isRemote) { + return true; + } else if(!player.isSneaking()) { + + TileEntityCustomMachine tile = (TileEntityCustomMachine) world.getTileEntity(x, y, z); + + if(tile != null) { + + if(tile.checkStructure()) { + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); + } else if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.wand_s) { + tile.buildStructure(); + } + } + return true; + } + + return false; + } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack) { + int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; + + if(i == 0) world.setBlockMetadataWithNotify(x, y, z, 2, 2); + if(i == 1) world.setBlockMetadataWithNotify(x, y, z, 5, 2); + if(i == 2) world.setBlockMetadataWithNotify(x, y, z, 3, 2); + if(i == 3) world.setBlockMetadataWithNotify(x, y, z, 4, 2); + + TileEntityCustomMachine tile = (TileEntityCustomMachine) world.getTileEntity(x, y, z); + + if(tile != null && stack.hasTagCompound()) { + tile.machineType = stack.stackTagCompound.getString("machineType"); + tile.init(); + tile.markChanged(); + } + } + + @Override + public void onBlockHarvested(World world, int x, int y, int z, int meta, EntityPlayer player) { + + if(!player.capabilities.isCreativeMode) { + harvesters.set(player); + this.dropBlockAsItem(world, x, y, z, meta, 0); + harvesters.set(null); + } + } + + @Override + public void harvestBlock(World world, EntityPlayer player, int x, int y, int z, int meta) { + player.addStat(StatList.mineBlockStatArray[getIdFromBlock(this)], 1); + player.addExhaustion(0.025F); + } + + @Override + public ArrayList getDrops(World world, int x, int y, int z, int metadata, int fortune) { + + ArrayList ret = new ArrayList(); + Item item = getItemDropped(metadata, world.rand, fortune); + if(item != null) { + + ItemStack stack = new ItemStack(item, 1, damageDropped(metadata)); + TileEntityCustomMachine tile = (TileEntityCustomMachine) world.getTileEntity(x, y, z); + + if(tile != null) { + stack.stackTagCompound = new NBTTagCompound(); + stack.stackTagCompound.setString("machineType", tile.machineType); + } + + ret.add(stack); + } + + return ret; + } +} diff --git a/src/main/java/com/hbm/commands/CommandDebugChunkLoad.java b/src/main/java/com/hbm/commands/CommandDebugChunkLoad.java index ac10eae4d..caf5e7673 100644 --- a/src/main/java/com/hbm/commands/CommandDebugChunkLoad.java +++ b/src/main/java/com/hbm/commands/CommandDebugChunkLoad.java @@ -55,7 +55,7 @@ public class CommandDebugChunkLoad extends CommandBase { } Object[] data = anvil.loadChunk__Async(sender.getEntityWorld(), cX, cZ); - Chunk chunk = (Chunk) data[0]; + //Chunk chunk = (Chunk) data[0]; NBTTagCompound nbt = (NBTTagCompound) data[1]; NBTTagCompound level = nbt.getCompoundTag("Level"); NBTTagList tagList = level.getTagList("TileEntities", 10); diff --git a/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java b/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java index ebde86c60..fbd99c23c 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java +++ b/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java @@ -179,6 +179,7 @@ public abstract class EntityThrowableNT extends Entity implements IProjectile { List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox.addCoord(this.motionX * motionMult(), this.motionY * motionMult(), this.motionZ * motionMult()).expand(1.0D, 1.0D, 1.0D)); double nearest = 0.0D; EntityLivingBase thrower = this.getThrower(); + MovingObjectPosition nonPenImpact = null; for(int j = 0; j < list.size(); ++j) { Entity entity = (Entity) list.get(j); @@ -192,7 +193,7 @@ public abstract class EntityThrowableNT extends Entity implements IProjectile { // if penetration is enabled, run impact for all intersecting entities if(this.doesPenetrate()) { - this.onImpact(new MovingObjectPosition(entity)); + this.onImpact(new MovingObjectPosition(entity, hitMop.hitVec)); } else { double dist = pos.distanceTo(hitMop.hitVec); @@ -200,6 +201,7 @@ public abstract class EntityThrowableNT extends Entity implements IProjectile { if(dist < nearest || nearest == 0.0D) { hitEntity = entity; nearest = dist; + nonPenImpact = hitMop; } } } @@ -208,7 +210,7 @@ public abstract class EntityThrowableNT extends Entity implements IProjectile { // if not, only run it for the closest MOP if(!this.doesPenetrate() && hitEntity != null) { - mop = new MovingObjectPosition(hitEntity); + mop = new MovingObjectPosition(hitEntity, nonPenImpact.hitVec); } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineCustom.java b/src/main/java/com/hbm/inventory/container/ContainerMachineCustom.java new file mode 100644 index 000000000..1a15db6ba --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineCustom.java @@ -0,0 +1,107 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotCraftingOutput; +import com.hbm.inventory.SlotPattern; +import com.hbm.tileentity.machine.TileEntityCustomMachine; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerMachineCustom extends Container { + + private TileEntityCustomMachine custom; + + public ContainerMachineCustom(InventoryPlayer playerInv, TileEntityCustomMachine tile) { + custom = tile; + + //Input + this.addSlotToContainer(new Slot(tile, 0, 150, 72)); + //Fluid IDs + for(int i = 0; i < tile.inputTanks.length; i++) this.addSlotToContainer(new Slot(tile, 1 + i, 8, 54 + 18 * i)); + //Item inputs + if(tile.config.itemInCount > 0) this.addSlotToContainer(new Slot(tile, 4, 8, 72)); + if(tile.config.itemInCount > 1) this.addSlotToContainer(new Slot(tile, 5, 26, 72)); + if(tile.config.itemInCount > 2) this.addSlotToContainer(new Slot(tile, 6, 44, 72)); + if(tile.config.itemInCount > 3) this.addSlotToContainer(new Slot(tile, 7, 8, 90)); + if(tile.config.itemInCount > 4) this.addSlotToContainer(new Slot(tile, 8, 26, 90)); + if(tile.config.itemInCount > 5) this.addSlotToContainer(new Slot(tile, 9, 44, 90)); + //Templates + if(tile.config.itemInCount > 0) this.addSlotToContainer(new SlotPattern(tile, 10, 8, 108)); + if(tile.config.itemInCount > 1) this.addSlotToContainer(new SlotPattern(tile, 11, 26, 108)); + if(tile.config.itemInCount > 2) this.addSlotToContainer(new SlotPattern(tile, 12, 44, 108)); + if(tile.config.itemInCount > 3) this.addSlotToContainer(new SlotPattern(tile, 13, 8, 126)); + if(tile.config.itemInCount > 4) this.addSlotToContainer(new SlotPattern(tile, 14, 26, 126)); + if(tile.config.itemInCount > 5) this.addSlotToContainer(new SlotPattern(tile, 15, 44, 126)); + //Output + if(tile.config.itemOutCount > 0) this.addSlotToContainer(new SlotCraftingOutput(playerInv.player, tile, 16, 78, 72)); + if(tile.config.itemOutCount > 1) this.addSlotToContainer(new SlotCraftingOutput(playerInv.player, tile, 17, 96, 72)); + if(tile.config.itemOutCount > 2) this.addSlotToContainer(new SlotCraftingOutput(playerInv.player, tile, 18, 114, 72)); + if(tile.config.itemOutCount > 3) this.addSlotToContainer(new SlotCraftingOutput(playerInv.player, tile, 19, 78, 90)); + if(tile.config.itemOutCount > 4) this.addSlotToContainer(new SlotCraftingOutput(playerInv.player, tile, 20, 96, 90)); + if(tile.config.itemOutCount > 5) this.addSlotToContainer(new SlotCraftingOutput(playerInv.player, tile, 21, 114, 90)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(playerInv, j + i * 9 + 9, 8 + j * 18, 174 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(playerInv, i, 8 + i * 18, 232)); + } + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return custom.isUseableByPlayer(player); + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + return null; + } + + @Override + public ItemStack slotClick(int index, int button, int mode, EntityPlayer player) { + + //L/R: 0 + //M3: 3 + //SHIFT: 1 + //DRAG: 5 + + //TODO: shoot whoever at mojang wrote the container code + if(index < 0 || index >= this.inventorySlots.size() || !(this.inventorySlots.get(index) instanceof SlotPattern)) { + return super.slotClick(index, button, mode, player); + } + + Slot slot = this.getSlot(index); + index = ((Slot) this.inventorySlots.get(index)).getSlotIndex(); + + ItemStack ret = null; + ItemStack held = player.inventory.getItemStack(); + + if(slot.getHasStack()) + ret = slot.getStack().copy(); + + if(button == 1 && mode == 0 && slot.getHasStack()) { + custom.matcher.nextMode(player.worldObj, slot.getStack(), index - 10); + return ret; + + } else { + + slot.putStack(held != null ? held.copy() : null); + + if(slot.getHasStack()) { + slot.getStack().stackSize = 1; + } + + slot.onSlotChanged(); + custom.matcher.initPatternSmart(player.worldObj, slot.getStack(), index - 10); + + return ret; + } + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineCustom.java b/src/main/java/com/hbm/inventory/gui/GUIMachineCustom.java new file mode 100644 index 000000000..5bbc86167 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineCustom.java @@ -0,0 +1,63 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerMachineCustom; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.machine.TileEntityCustomMachine; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUIMachineCustom extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_custom.png"); + private TileEntityCustomMachine custom; + + public GUIMachineCustom(InventoryPlayer invPlayer, TileEntityCustomMachine tedf) { + super(new ContainerMachineCustom(invPlayer, tedf)); + custom = tedf; + + this.xSize = 176; + this.ySize = 256; + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.custom.getInventoryName(); + this.fontRendererObj.drawString(name, 68 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float interp, int x, int y) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + for(int i = 0; i < 2; i++) { + for(int j = 0; j < 3; j++) { + int index = i * 3 + j; + if(custom.config.itemInCount <= index) { + drawTexturedModalRect(guiLeft + 7 + j * 18, guiTop + 71 + i * 18, 192 + j * 18, 86 + i * 18, 18, 18); + drawTexturedModalRect(guiLeft + 7 + j * 18, guiTop + 107 + i * 18, 192 + j * 18, 86 + i * 18, 18, 18); + } + if(custom.config.itemOutCount <= index) { + drawTexturedModalRect(guiLeft + 77 + j * 18, guiTop + 71 + i * 18, 192 + j * 18, 86 + i * 18, 18, 18); + } + } + } + + for(int i = 0; i < 3; i++) { + if(custom.config.fluidInCount <= i) { + drawTexturedModalRect(guiLeft + 7 + i * 18, guiTop + 17, 192 + i * 18, 32, 18, 54); + } + if(custom.config.fluidOutCount <= i) { + drawTexturedModalRect(guiLeft + 77 + i * 18, guiTop + 17, 192 + i * 18, 32, 18, 36); + } + } + } + +} diff --git a/src/main/java/com/hbm/inventory/recipes/CustomMachineRecipes.java b/src/main/java/com/hbm/inventory/recipes/CustomMachineRecipes.java new file mode 100644 index 000000000..e3fe13cef --- /dev/null +++ b/src/main/java/com/hbm/inventory/recipes/CustomMachineRecipes.java @@ -0,0 +1,127 @@ +package com.hbm.inventory.recipes; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map.Entry; + +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; +import com.hbm.inventory.FluidStack; +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.recipes.loader.SerializableRecipe; +import com.hbm.items.ModItems; +import com.hbm.util.Tuple.Pair; + +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; + +public class CustomMachineRecipes extends SerializableRecipe { + + public static HashMap> recipes = new HashMap(); + + @Override + public void registerDefaults() { + + recipes.put("paperPress", new ArrayList() {{ + CustomMachineRecipe recipe = new CustomMachineRecipe(); + recipe.inputFluids = new FluidStack[] {new FluidStack(Fluids.WATER, 250)}; + recipe.inputItems = new AStack[] {new ComparableStack(ModItems.powder_sawdust)}; + recipe.outputFluids = new FluidStack[0]; + recipe.outputItems = new Pair[] {new Pair(new ItemStack(Items.paper, 3), 1F)}; + recipe.duration = 60; + recipe.consumptionPerTick = 10; + add(recipe); + }}); + } + + @Override + public String getFileName() { + return "hbmCustomMachines.json"; + } + + @Override + public Object getRecipeObject() { + return recipes; + } + + @Override + public void deleteRecipes() { + recipes.clear(); + } + + @Override + public void readRecipe(JsonElement recipe) { + JsonObject obj = recipe.getAsJsonObject(); + + String name = obj.get("recipeKey").getAsString(); + List list = new ArrayList(); + JsonArray array = obj.get("recipes").getAsJsonArray(); + + for(int i = 0; i < array.size(); i++) { + JsonObject rec = array.get(i).getAsJsonObject(); + CustomMachineRecipe recipeInstance = new CustomMachineRecipe(); + recipeInstance.inputFluids = this.readFluidArray(rec.get("inputFluids").getAsJsonArray()); + recipeInstance.inputItems = this.readAStackArray(rec.get("inputItems").getAsJsonArray()); + recipeInstance.outputFluids = this.readFluidArray(rec.get("outputFluids").getAsJsonArray()); + recipeInstance.outputItems = this.readItemStackArrayChance(rec.get("outputItems").getAsJsonArray()); + recipeInstance.duration = rec.get("duration").getAsInt(); + recipeInstance.consumptionPerTick = rec.get("consumptionPerTick").getAsInt(); + list.add(recipeInstance); + } + + recipes.put(name, list); + } + + @Override + public void writeRecipe(Object recipe, JsonWriter writer) throws IOException { + Entry> entry = (Entry) recipe; + + writer.name("recipeKey").value(entry.getKey()); + writer.name("recipes").beginArray(); + + for(CustomMachineRecipe recipeInstance : entry.getValue()) { + writer.beginObject(); + + writer.name("inputFluids").beginArray(); + for(FluidStack stack : recipeInstance.inputFluids) this.writeFluidStack(stack, writer); + writer.endArray(); + + writer.name("inputItems").beginArray(); + for(AStack stack : recipeInstance.inputItems) this.writeAStack(stack, writer); + writer.endArray(); + + writer.name("outputFluids").beginArray(); + for(FluidStack stack : recipeInstance.outputFluids) this.writeFluidStack(stack, writer); + writer.endArray(); + + writer.name("outputItems").beginArray(); + for(Pair stack : recipeInstance.outputItems) this.writeItemStackChance(stack, writer); + writer.endArray(); + + writer.name("duration").value(recipeInstance.duration); + writer.name("consumptionPerTick").value(recipeInstance.consumptionPerTick); + + writer.endObject(); + } + + writer.endArray(); + } + + public static class CustomMachineRecipe { + + public FluidStack[] inputFluids; + public AStack[] inputItems; + public FluidStack[] outputFluids; + public Pair[] outputItems; + + public int duration; + public int consumptionPerTick; + } + +} diff --git a/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java b/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java index 405cede7f..5e2f11a98 100644 --- a/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java +++ b/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java @@ -25,6 +25,7 @@ import com.hbm.inventory.material.MatDistribution; import com.hbm.inventory.recipes.*; import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; +import com.hbm.util.Tuple.Pair; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -62,6 +63,7 @@ public abstract class SerializableRecipe { recipeHandlers.add(new OutgasserRecipes()); recipeHandlers.add(new CompressorRecipes()); recipeHandlers.add(new MatDistribution()); + recipeHandlers.add(new CustomMachineRecipes()); } public static void initialize() { @@ -166,7 +168,9 @@ public abstract class SerializableRecipe { writer.endArray(); //end recipe array writer.endObject(); //final '}' writer.close(); - } catch(Exception ex) { } + } catch(Exception ex) { + ex.printStackTrace(); + } } public void readRecipeFile(File file) { @@ -243,6 +247,18 @@ public abstract class SerializableRecipe { return new ItemStack(ModItems.nothing); } + protected static Pair readItemStackChance(JsonArray array) { + try { + Item item = (Item) Item.itemRegistry.getObject(array.get(0).getAsString()); + int stacksize = array.size() > 2 ? array.get(1).getAsInt() : 1; + int meta = array.size() > 3 ? array.get(2).getAsInt() : 0; + float chance = array.get(array.size() - 1).getAsFloat(); + if(item != null) return new Pair(new ItemStack(item, stacksize, meta), chance); + } catch(Exception ex) { } + MainRegistry.logger.error("Error reading stack array " + array.toString() + " - defaulting to NOTHING item!"); + return new Pair(new ItemStack(ModItems.nothing), 1F); + } + protected static ItemStack[] readItemStackArray(JsonArray array) { try { ItemStack[] items = new ItemStack[array.size()]; @@ -253,6 +269,16 @@ public abstract class SerializableRecipe { return new ItemStack[0]; } + protected static Pair[] readItemStackArrayChance(JsonArray array) { + try { + Pair[] items = new Pair[array.size()]; + for(int i = 0; i < items.length; i++) { items[i] = readItemStackChance((JsonArray) array.get(i)); } + return items; + } catch(Exception ex) { } + MainRegistry.logger.error("Error reading stack array " + array.toString()); + return new Pair[0]; + } + protected static void writeItemStack(ItemStack stack, JsonWriter writer) throws IOException { writer.beginArray(); writer.setIndent(""); @@ -263,6 +289,17 @@ public abstract class SerializableRecipe { writer.setIndent(" "); } + protected static void writeItemStackChance(Pair stack, JsonWriter writer) throws IOException { + writer.beginArray(); + writer.setIndent(""); + writer.value(Item.itemRegistry.getNameForObject(stack.getKey().getItem())); //item name + if(stack.getKey().stackSize != 1 || stack.getKey().getItemDamage() != 0) writer.value(stack.getKey().stackSize); //stack size + if(stack.getKey().getItemDamage() != 0) writer.value(stack.getKey().getItemDamage()); //metadata + writer.value(stack.value); //chance + writer.endArray(); + writer.setIndent(" "); + } + protected static FluidStack readFluidStack(JsonArray array) { try { FluidType type = Fluids.fromName(array.get(0).getAsString()); diff --git a/src/main/java/com/hbm/items/block/ItemCustomMachine.java b/src/main/java/com/hbm/items/block/ItemCustomMachine.java new file mode 100644 index 000000000..fe62ea56a --- /dev/null +++ b/src/main/java/com/hbm/items/block/ItemCustomMachine.java @@ -0,0 +1,51 @@ +package com.hbm.items.block; + +import java.util.List; +import java.util.Map.Entry; + +import com.hbm.config.CustomMachineConfigJSON; +import com.hbm.config.CustomMachineConfigJSON.MachineConfiguration; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; + +public class ItemCustomMachine extends ItemBlock { + + public ItemCustomMachine(Block block) { + super(block); + } + + @SideOnly(Side.CLIENT) + public void getSubItems(Item item, CreativeTabs tab, List list) { + + for(Entry entry : CustomMachineConfigJSON.customMachines.entrySet()) { + ItemStack stack = new ItemStack(item); + stack.stackTagCompound = new NBTTagCompound(); + stack.stackTagCompound.setString("machineType", entry.getKey()); + list.add(stack); + } + } + + @Override + public String getItemStackDisplayName(ItemStack stack) { + + if(stack.hasTagCompound()) { + String name = stack.getTagCompound().getString("machineType"); + MachineConfiguration conf = CustomMachineConfigJSON.customMachines.get(name); + + if(conf != null) { + return conf.localizedName; + } + + return "INVALID MACHINE CONTROLLER (" + name + ")"; + } + + return "INVALID MACHINE CONTROLLER"; + } +} diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 3b92bc223..6e486d7e0 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -838,6 +838,8 @@ public class MainRegistry { AnvilRecipes.register(); RefineryRecipes.registerRefinery(); GasCentrifugeRecipes.register(); + + CustomMachineConfigJSON.initialize(); //the good stuff SerializableRecipe.registerAllHandlers(); diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index dd84c756e..8498efeaa 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -194,6 +194,7 @@ public class TileMappings { put(TileEntityMachineBAT9000.class, "tileentity_bat9000"); put(TileEntityMachineOrbus.class, "tileentity_orbus"); put(TileEntityGlpyhidSpawner.class, "tileentity_glyphid_spawner"); + put(TileEntityCustomMachine.class, "tileentity_custom_machine"); put(TileEntityLoot.class, "tileentity_ntm_loot"); put(TileEntityBobble.class, "tileentity_ntm_bobblehead"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java new file mode 100644 index 000000000..28bfe2dbe --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java @@ -0,0 +1,202 @@ +package com.hbm.tileentity.machine; + +import com.hbm.config.CustomMachineConfigJSON; +import com.hbm.config.CustomMachineConfigJSON.MachineConfiguration; +import com.hbm.config.CustomMachineConfigJSON.MachineConfiguration.ComponentDefinition; +import com.hbm.inventory.container.ContainerMachineCustom; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.inventory.gui.GUIMachineCustom; +import com.hbm.module.ModulePatternMatcher; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.TileEntityMachineBase; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityCustomMachine extends TileEntityMachineBase implements IGUIProvider { + + public String machineType; + public MachineConfiguration config; + + public long power; + public int progress; + public FluidTank[] inputTanks; + public FluidTank[] outputTanks; + public ModulePatternMatcher matcher; + public int structureCheckDelay; + public boolean structureOK = false; + + public TileEntityCustomMachine() { + /* + * 0: Battery + * 1-3: Fluid IDs + * 4-9: Inputs + * 10-15: Template + * 16-21: Output + */ + super(22); + } + + public void init() { + MachineConfiguration config = CustomMachineConfigJSON.customMachines.get(this.machineType); + + if(config != null) { + this.config = config; + + inputTanks = new FluidTank[config.fluidInCount]; + for(int i = 0; i < inputTanks.length; i++) inputTanks[i] = new FluidTank(Fluids.NONE, config.fluidInCap); + outputTanks = new FluidTank[config.fluidOutCount]; + for(int i = 0; i < outputTanks.length; i++) outputTanks[i] = new FluidTank(Fluids.NONE, config.fluidOutCap); + + matcher = new ModulePatternMatcher(config.itemInCount); + + } else { + worldObj.func_147480_a(xCoord, yCoord, zCoord, false); + } + } + + @Override + public String getName() { + return config != null ? config.localizedName : "INVALID"; + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + if(config == null) { + worldObj.func_147480_a(xCoord, yCoord, zCoord, false); + return; + } + + this.structureCheckDelay--; + if(this.structureCheckDelay <= 0) this.checkStructure(); + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", this.machineType); + data.setLong("power", power); + data.setInteger("progress", progress); + for(int i = 0; i < inputTanks.length; i++) inputTanks[i].writeToNBT(data, "i" + i); + for(int i = 0; i < outputTanks.length; i++) outputTanks[i].writeToNBT(data, "o" + i); + this.matcher.writeToNBT(data); + this.networkPack(data, 50); + } + } + + public boolean checkStructure() { + + this.structureCheckDelay = 300; + this.structureOK = false; + if(this.config == null) return false; + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + for(ComponentDefinition comp : config.components) { + + /* vvv precisely the same method used for defining ports vvv */ + int x = xCoord - dir.offsetX * comp.x + rot.offsetX * comp.x; + int y = yCoord + comp.y; + int z = zCoord - dir.offsetZ * comp.z + rot.offsetZ * comp.z; + /* but for EW directions it just stops working entirely */ + /* there is absolutely zero reason why this should be required */ + if(dir == ForgeDirection.EAST || dir == ForgeDirection.WEST) { + x = xCoord + dir.offsetZ * comp.z - rot.offsetZ * comp.z; + z = zCoord + dir.offsetX * comp.x - rot.offsetX * comp.x; + } + /* i wholeheartedly believe it is the computer who is wrong here */ + + Block b = worldObj.getBlock(x, y, z); + if(b != comp.block) return false; + + int meta = worldObj.getBlockMetadata(x, y, z); + if(!comp.allowedMetas.contains(meta)) return false; + } + + this.structureOK = true; + return true; + } + + public void buildStructure() { + + if(this.config == null) return; + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + for(ComponentDefinition comp : config.components) { + + int x = xCoord - dir.offsetX * comp.x + rot.offsetX * comp.x; + int y = yCoord + comp.y; + int z = zCoord - dir.offsetZ * comp.z + rot.offsetZ * comp.z; + if(dir == ForgeDirection.EAST || dir == ForgeDirection.WEST) { + x = xCoord + dir.offsetZ * comp.z - rot.offsetZ * comp.z; + z = zCoord + dir.offsetX * comp.x - rot.offsetX * comp.x; + } + + worldObj.setBlock(x, y, z, comp.block, (int) comp.allowedMetas.toArray()[0], 3); + } + } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + this.machineType = nbt.getString("type"); + if(this.config == null) this.init(); + + this.power = nbt.getLong("power"); + this.progress = nbt.getInteger("progress"); + for(int i = 0; i < inputTanks.length; i++) inputTanks[i].readFromNBT(nbt, "i" + i); + for(int i = 0; i < outputTanks.length; i++) outputTanks[i].readFromNBT(nbt, "o" + i); + + this.matcher.readFromNBT(nbt); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + + this.machineType = nbt.getString("machineType"); + this.init(); + + super.readFromNBT(nbt); + + for(int i = 0; i < inputTanks.length; i++) inputTanks[i].readFromNBT(nbt, "i" + i); + for(int i = 0; i < outputTanks.length; i++) outputTanks[i].readFromNBT(nbt, "o" + i); + + this.matcher.readFromNBT(nbt); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + + nbt.setString("machineType", machineType); + + super.writeToNBT(nbt); + + for(int i = 0; i < inputTanks.length; i++) inputTanks[i].writeToNBT(nbt, "i" + i); + for(int i = 0; i < outputTanks.length; i++) outputTanks[i].writeToNBT(nbt, "o" + i); + + this.matcher.writeToNBT(nbt); + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + if(this.config == null) return null; + return new ContainerMachineCustom(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + if(this.config == null) return null; + return new GUIMachineCustom(player.inventory, this); + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRTG.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRTG.java index b770c4111..63f6ec905 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRTG.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRTG.java @@ -139,7 +139,7 @@ public class TileEntityMachineRTG extends TileEntityLoadedBase implements ISided super.readFromNBT(nbt); NBTTagList list = nbt.getTagList("items", 10); - power = nbt.getInteger("power"); + power = nbt.getLong("power"); heat = nbt.getInteger("heat"); slots = new ItemStack[getSizeInventory()]; @@ -157,16 +157,14 @@ public class TileEntityMachineRTG extends TileEntityLoadedBase implements ISided @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); - nbt.setInteger("power", (short) (power)); - nbt.setInteger("heat", (short) (heat)); + nbt.setLong("power", power); + nbt.setInteger("heat", heat); NBTTagList list = new NBTTagList(); - for(int i = 0; i < slots.length; i++) - { - if(slots[i] != null) - { + for(int i = 0; i < slots.length; i++) { + if(slots[i] != null) { NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte)i); + nbt1.setByte("slot", (byte) i); slots[i].writeToNBT(nbt1); list.appendTag(nbt1); } @@ -175,9 +173,9 @@ public class TileEntityMachineRTG extends TileEntityLoadedBase implements ISided } @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_){ - return slot_io; - } + public int[] getAccessibleSlotsFromSide(int p_94128_1_) { + return slot_io; + } @Override public boolean canInsertItem(int i, ItemStack itemStack, int j) { diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_block_alloy.png b/src/main/resources/assets/hbm/textures/blocks/cm_block_alloy.png new file mode 100644 index 0000000000000000000000000000000000000000..af14c2675435802c3351505250a70df970d3a8f3 GIT binary patch literal 537 zcmV+!0_OdRP)~bf?XhoG-U^rYZ=e?Qt*2wp-LP}5ytk>W@|FvRd_v;bQIP&wy6K`)| zt%itZV>E}L`17o_+b!JPd0t<^lM?Um@bK`7oHHQ=xV?pOgu_7*N@2g>({+k4j_~pR zp1;2z@rVFmyr)bPDJ4SNLW~@bM~pEz=a}c2Qoy;>2-nwG3m)eXfsztk*I}*Y1JJfD z$K#BM7Ktn})g=NR?#HcnkjiT3O|XP_3y#g`fbn_~azhq`8z!5lg`s{WuH?ms)V=W@ema{Tit9udcrtft>&kGSEr;BuR!)9{^JS$#1xSW?0u?TQ= zg>&FJ9N2E*^Or4bHY!9)`qz4`w$vGnQ9+spo}Y0J%%5+_%M0vwi^3ur#^?xjq$+B? bAJ)P@EB!0_k(Miy00000NkvXXu0mjf9Z~Qw literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_block_base.png b/src/main/resources/assets/hbm/textures/blocks/cm_block_base.png new file mode 100644 index 0000000000000000000000000000000000000000..ce60d26f2cfb41edb709781efd6031c35d83040c GIT binary patch literal 560 zcmV-00?+-4P)y7g=gl?_ntYQ&o!llsx z$rwWjfpuN~26*o=#xPA2<2WKBEXzVl32SYa-vBSm!aUEEQph>unl&K=N-2!v2+$>O z+t%$%DUoyTidFSD2hExW%6pHswl_B`w{1gJQPn?)?M_u?T~}g^IOiCKp>H0BfojWUPfr{UhaR9>EBpPPaUA;z#u$cSU>rw2 yK0ba2oX=-2mkY12ubps{*pk^!YEWA~M1&t42%h^wfmIFw00001r;P)Iw?Yzu9- zX?F(*P+RWx`8hW?H@v^Um(E zdw#sU;86v@drwM^J-3wWGEft)krIAW~@;BYu_ zJRVV1oO7ruBEoLB+hkC{<2?dfx0Pg`XL8Pn$VRb#uT3)G5kY|v0$tZpN+HHb2w_WD zlZ-Kh5SZurQ-Q9-G~{6zu+}n76FFy`a~u9D@H9<}n6**>PpxgNfm$oWFaT`GDJ5!q zlXIq&f~rCY2rNEWN3#mmbsf&REqNVfN(m7`ME;4WA{anKnCF=oBi?)ZzTZ0ceNRe> zX_|;JE+RUI0emS1Z3R|>71dgcbB$5sTGV_{9~;}fm$o26acKX)LKzhy!TAg zM6Go(Q$t5}F_Jqw;{q_Pq5?&P()K`d-u~0}Ljg`saDY$yJ=a%P+}+*r<>CTq22xc{ zb~_jbCq6Bc^Bw P00000NkvXXu0mjfkWu+h literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_block_steel.png b/src/main/resources/assets/hbm/textures/blocks/cm_block_steel.png new file mode 100644 index 0000000000000000000000000000000000000000..05180ac759cc1f413e5d6f709bdd28f22d57d96d GIT binary patch literal 563 zcmV-30?hr1P)3-lM9NQUEv}kKEqga(8!!ODXa7^~K}kBROZh_uSmv5M$(gJ|iNiD&ODV%<~LD zjFE?j2cDmwakW+eoO5j3MoNikng}6qxm+;DV6CN;f~sPz1>oxH3K79sYpJ!8QevKG zL1I8~+AN(ce(JvnD$jD!$+ zLu)d|5JF&G*S`VYdyFwm)5JKAhzQHFkW#{0+vPXF%d#-fGo=)A&bVex2!T=x<2V9z z$=kMd`%+5eoV#LG{mntMrh)R_W3BDY&B|@tP*qg*4`RDhRaw`S7$eR(hGFQNhhbpb zHkM@}#)ybut^I}GBsG|-+NHLSIp>~{lu`!^;97JW6aW#Sl+t`=Sr$quJxsOM9(Q+r zea+!;=o1_9rr_Uu0gN%!TG{P(SZi_T^O@uE$o>62hr^)#37J~1~gJn zyW4HMyaBS=a4T})s`~Z*H-FyVYDx)JWxwC!oa28gguu(o3ogdU>2%_JJ|iNC2(?y3 z1Y-;$g7+R(rIZ4|@p$C^{+`dzPh3igudgqjo}S1#ZYb^jbH#dj~&RR>Ym6Q_m zJR>3iOw+{mdZpG%`_nkJsLElF@_KV>$?69@ZMvLVVWk!aYRH|mW7lO*4i$=0bZ7cd7deykaNa0YeEQ=QW(b( zpiADit=pGUBIn!{tLje(7 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_engine_bismuth.png b/src/main/resources/assets/hbm/textures/blocks/cm_engine_bismuth.png new file mode 100644 index 0000000000000000000000000000000000000000..c61aa02bd203d813d82e6e147bee5db73ea65c29 GIT binary patch literal 797 zcmV+&1LFLNP)E}UX*M+xK~N~A5D2;o#V&NM2#Qoei6V87DmFK1HJ8qqaOvbSNy<#`{qFrf7t@)w zXM5nh=e+N8#Pag8Gsa-8rC2PYwdVg+r_*6=Z4DjAF{`Vqv|25slt?LY&LO2l2!WK6 zTrP*TmMqHvsMTtWj*c=mHikCFu)Dj<<#ShPL;(PP=<~3=L$}-I*=OG3_uv~i0^Z~> ze}8_HFbtWWpJ!!d1?`*z;EQ{oVvOPZ#0B<%%J2*az;+VAVR-bN&2mp*RNNX+5IgBy9^4z<$%^l)61`oU!j{?y6ZI3rD zzr@?`oy8c_>-Pubayf($%$!*uhyrruQ^ax1ov*IrfA%%6El%N_qX2|KM4F~7EliVT z8EKj#`_XJg0r%TJ`w!{>NGW-JX`0<2;+@4Q!XP3KEGQGGP$0<%b9ZVjp}zWb)W!6Rov9Q)&?YQRh%=oBX)Pn~PHv zAFsXThy3#M1Ck_RW^w|KgHoyoTAHRf=ZKQqRM_UP?;CviNqum09uO&HS%$S1y5Qdp z2TABYx*h*VPL6w&fLk~3^U=P zd7eL-k|YVIPY8yFhREmhG#ZVb4|8*KuGws|v$KP>mOfa{IfM{st&viaW!c~xl~O3B bkW%s=+|h59^mKe200000NkvXXu0mjfU1D&? literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_engine_desh.png b/src/main/resources/assets/hbm/textures/blocks/cm_engine_desh.png new file mode 100644 index 0000000000000000000000000000000000000000..ff2e71fff90faa3a2586ede1e98f29b2fd16c9f4 GIT binary patch literal 701 zcmV;u0z&0v@6o#Lfxk;Kppdj2*LKdaXsuGYig<4%j=%&RVAnMMI z78ioxUl81MAugn-OQGAYEFzc|iys(T>Ea@V7D_K^6ADdpGk0cOG`X0C;4Ej(Iqx~| zc}A?PtT?ST)>^XJES~4_Kc~~_P_NhVq9|f@b(LnbiIfs4CC)jdln5b^Qj$ugu-0OX z0iakcGBGj18Qj(KG*U&hAB<#HS! zA5*DRSX*1ebIt*9dw(D89P6bLW#IkzH~=OH0Ccb7&O^6bi$Bxs=C5oa%8Q@Vm&F4ym`pgVk>*QT)jZCFd2qE}bE@Og# z=j}F86mh-T#TY{z$H>8I2D2|`G5|;^F9U;s&1y9zu>0)+VO>?fPc5I@H+%px5j1voG{Z zsY}q}IKEtCzr}mqF4qnYh8O@a#$c^Yga)GC0Nq9yQuck`g&}t@F1Wg}0l-eJMj7}% zH8oUpfV-E^=ka}?`>hsl!;m}Y=Kxr1*;`onCs@BnMo>!OwcBlq#UhJ~i!^+n$K5Vk zYn*eu&SuHX%n-*h+r1t_2-4{^dzlQ!2L~vn5KBu-?(p!CqoX6NwG6;=&LM=r^E{-K j7-N#(sFXq}g_M#%^j%%Tv;}Q`00000NkvXXu0mjfV7Ndc literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_engine_standard.png b/src/main/resources/assets/hbm/textures/blocks/cm_engine_standard.png new file mode 100644 index 0000000000000000000000000000000000000000..a629ff54da589460abc0eda8546e5171cecaa8f4 GIT binary patch literal 655 zcmV;A0&x9_P)%(K$y5fzi=XwATE~ z7z_s7+}xn^Jm=`>h>wpCLE09lryl&U$z7!j>CAq0w| zU}t9sV+_yF&-JFeyE}|AWLZYlHc1iyoO4JBffyssIaXI!d3t&x&+}i&_xJZ~Y;3T( zxruYGUU$wRjYfkcNmyTB$68Cf-6qd-j*pKyIXNLs(>mE&OIen5yIs8Zlx2xjPgC7J z%Q65&gl@NswU#tZYnavCU@#zr@Z$l%KbF}`j?lN ztgWp9(ChX7SFB2RJuxvsv)SbO`Wk?Xiwgik2<-0e{#C4zkr9+q=&!FYTCEm~i;Fay zP1@}?&N*U?yuH0KK0eOe+#E$wFgrWT(9jUW!^6D1y!>!jT3U*)udnp`eL@ISV#OFq pk_4?aB7*n6{*6j0lv0QYe*jC$WY>7Ee-How002ovPDHLkV1gbYHU$6x literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_port_alloy.png b/src/main/resources/assets/hbm/textures/blocks/cm_port_alloy.png new file mode 100644 index 0000000000000000000000000000000000000000..5fb09e5bc762f1a517f4394d17b940a71638e471 GIT binary patch literal 581 zcmV-L0=oT)P)(gjP7g*ge=SrJGb-A&iBn4`SeBz0aAj=1ia_J zR?~3z;|fpP^6m34mP@c!O+>vh>a$GoyH0awGdMf*+}?sG1gZ)yE}ju%B+D{5J%zS~ z)k+ak;{N`gx>kg?g{SA|{Qh}`M+5-lJ!!uugg~}lL({O?Y%s>)oTKYHQUd1=EgTE zwTNi{2LZ5F_agca2T&N} T2woFD00000NkvXXu0mjfEII*z literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_port_desh.png b/src/main/resources/assets/hbm/textures/blocks/cm_port_desh.png new file mode 100644 index 0000000000000000000000000000000000000000..fe18d8e6ffdd5ffd2df6160e33ed92c61be9ef16 GIT binary patch literal 615 zcmV-t0+{`YP)_=94Jr_gi>bXN*FKTDdq%p=ocV}01W=71S%64F2n1mo8AznP*dtvnEMu`zbU_1uz`L7oOKOY|O zbRFOC@0kL2C>^>PdI1QKhuP!(eNIkJczu1v6C*R=+vO!GC5ocp@bHkX>zL2ySZfgx z-rn9=tyTbZUB}tQ1&>cpcvJ!K-m}?kh%vHQEC?a6TrM%j;G84pjELZz>uK!nVgZkH zC=g?0wOV1V1z@pQuv{)tRh)CEDk8#oJl@KnfX90Tw%fe-{J6RTplKQa>beHt%k3@3 znC+4XctlVjgg{Xgq?7=-ySrmHn*mT&6_d#X=Nusf+P3`zpeQf{<+3cX*3vW$v)PR4 zbh@S6G!19gvR@vXo}33;1372Pviyhjfs_)e3LzlS=iuF%ccJRKrmCv#U{zJr zbxjBX5kW*gL{t$BAR@GFOE&;cCX>HJ?7EJw>v|EL!vH>|gbo1j3_e|7QxpYXt;IRV zXf&d2TSAOPRZPxcOrIZXEehnEw+>iq$vLB{c<))S*W{f0Fb&jE?Stg@_Ba5{fT%zc zA<^G~#JK&3{yr37X9oxP&3w-B(Gln8=X^dmK-!iVBdW^IcnoC;DIuE;#u&_K1ZBzU z`56b8$J0}Nd3oX2W`n?%q7K{qz$Ei=jczCl{05g}G|I{W3KswX002ovPDHLkV1lXB B5LW;I literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_port_steel.png b/src/main/resources/assets/hbm/textures/blocks/cm_port_steel.png new file mode 100644 index 0000000000000000000000000000000000000000..a7c997edb72377a9c84d6e81244ce344db24f01d GIT binary patch literal 612 zcmV-q0-ODbP)*V?#5u?R%rFdme0<=hY2x+u zmF;$mh#(@Qln@b&F^C97QJ|{C7y($X*IZp)aeaM_^WM|8Ee{V5gb*l-g3HTGrfFig z+aV&TDnCCz^nDM&G)>&z-tzMDf=ej@;GE-lJmS5l>pF&EV87pEjKNwSibaB0`KY=gi@7AjUYCDWx>m-CbN_hyc)a9mnI5loI()=9DL;ggEC=)p?t9j#Wz3-@YN^h@B?3 zbnO_-5#jjzH*MR}G|g;xzuzOvC8yJgzVC@K5<ukDz@7#uRnjHs;KG=(Pc2I$~cZ>!QF1he!mA`yWP%9rfEV%u-0Cn zXGoF~*BU=Qy2C#2Du?rIhBn zyX)&~>bjm4Q%Zyo2qDZh&gTHe7*a|smrJa*xWnPVX0ze;_LjP?XR9eCR;v|dSrS6v zd_H50VX;_HmL(q_9~Xi5_jj76;pypVCY&wiX67&D$gQ?O1+rGQ;_CD!zTP$~d->|MgBtpi+M%wsd zlza9Ly$My@t_8jByB47BvG&IfL5arsEKVFtSS+126}EP5+<&~X`3nCW{dT^U6=?^6 Pb}@Lm`njxgN@xNAvV}UO literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_sheet_base.png b/src/main/resources/assets/hbm/textures/blocks/cm_sheet_base.png new file mode 100644 index 0000000000000000000000000000000000000000..8f6382d01783f90eafa9ee48e208bec73ec79b64 GIT binary patch literal 174 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfCSfAL}I^TR->l>bz&I$fC1v zZtE&rWm-hufnUYc93NhBLQKk{nzwO_W^q9Xn>azEeH UVExKrCeT6#Pgg&ebxsLQ0JHi&k^lez literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_sheet_desh.png b/src/main/resources/assets/hbm/textures/blocks/cm_sheet_desh.png new file mode 100644 index 0000000000000000000000000000000000000000..b68c2850f1aa5e412d9048f79285c1eee80191f3 GIT binary patch literal 165 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfxhJ9)MBRDT4LSb z<(|uE8!(4?b1anSPT2aPP}zXVo^#0*jim)l;t5-y%=ul&9JXJgK6a9>;X?_aJq(_% KelF{r5}E*)BR0qY literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_sheet_steel.png b/src/main/resources/assets/hbm/textures/blocks/cm_sheet_steel.png new file mode 100644 index 0000000000000000000000000000000000000000..e1a1160bb14e74bce513b8d4e8f7f9c3a0e4ae1e GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfT*}D=J7Ra5wGxW#9j0?7JGy(YV)K z=};8+>h%)JtGYTCtcrMBvD5woyPc56(hE_Gzn_y}ULCvktL3vf5w*+(5sMe!OYK<$ Pw2Q&h)z4*}Q$iB}U2Qvb literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_sheet_tcalloy.png b/src/main/resources/assets/hbm/textures/blocks/cm_sheet_tcalloy.png new file mode 100644 index 0000000000000000000000000000000000000000..5fa07c6926ecefd10dbba5638dfe39d5b47f9565 GIT binary patch literal 176 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfm>{ z_J1x@o$u1JRV-}&z3LEALC4UIzaAX7ZB+lD-Z;m2YgpC$9>Wd4G?v!%TdIfEGc*-$ VlDB7mWC^sA!PC{xWt~$(695~TJnR4f literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_tank_alloy.png b/src/main/resources/assets/hbm/textures/blocks/cm_tank_alloy.png new file mode 100644 index 0000000000000000000000000000000000000000..189361a5c14b806be91926d72d204c53395f919f GIT binary patch literal 371 zcmV-(0gV2MP)15QV?}k^jI|K%EMoA!V8zAWa}ePL?t^38V?ckUJz` zV?nUMm9Q*nC&ef-PGpe$U|E>m_hxqIjghAtp)4T;m`=fadLhqA-23`k{0m>3AA+#0T4j>-|qKIL%26atUfo*#;6nRbvU@3~r1o-{L z5H5Ryb80lIs>=#z(R!rGYO$SOI!kWbEYcWhJ|~X*37mLjGQm0U>~zuO?veEx(o`od1m%k8eeZQ5>-sp2&grriegIXlgC0}= Rq7485002ovPDHLkV1l&Tm+b%m literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_tank_desh.png b/src/main/resources/assets/hbm/textures/blocks/cm_tank_desh.png new file mode 100644 index 0000000000000000000000000000000000000000..97d667b6d97d965b8ed86bf6f09e20fd9a221021 GIT binary patch literal 373 zcmV-*0gC>KP)c}Hcn8I7 zBGE+#XL_b9i)s8x1ZR9u6jWC|s;XZpnau>}z4c7r;WB$CBF{?I z>ZTgiT6_q+Hz)>hfX4e%2QLkZ&jeA_V0#xROA0_!mUnY+B2DptCd(cpAS_Y5e{2L} zDxnoc!TnD^_biO>m_VkxEFW+ofNV;7TLyHU_Zye$Q|);CnKWr+y!QJmQ=~ zL}(`o#4!{FKF?7~p;|47V}90a44{_dv1~RQKJy$;b#)R<0ha0_OU~D5f@$Cvy(f2> T;d{$#00000NkvXXu0mjfGmDi9 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_tank_steel.png b/src/main/resources/assets/hbm/textures/blocks/cm_tank_steel.png new file mode 100644 index 0000000000000000000000000000000000000000..e0d207b556d40799b3a33b249b5ce85139cae4e0 GIT binary patch literal 397 zcmV;80doF{P)Pq2Ame06q?~0FPGTeiuta2G zW~O@s*63+>1M?~zbyfdVjoa_{7Gp$Jsj7+)0#nfUJ*U%&Fbo67D91 za}E)qC<;`SoHGDT)392tSg+TF7$aTRalKyMq}D*&w(NF0I~)#(nf+7H{qONFEEbE` z#NKCj6KveE@7QI;hsC7#bG&N*hY8D&}0w(aW<+wIoQ=QEef1yyAX rmYLz4BZPp6kaK?jM(;h|dqjlaTO6-u`Brpn00000NkvXXu0mjfn8U1C literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_tank_tcalloy.png b/src/main/resources/assets/hbm/textures/blocks/cm_tank_tcalloy.png new file mode 100644 index 0000000000000000000000000000000000000000..8b5444a3a8ffda1ae6b7e3d0a576e2c9c07b86d8 GIT binary patch literal 397 zcmV;80doF{P)C8E6oo%s$#ERWRPg2@|K$DBOqmOv3#B{=cqrsY1Txu> z$;6R#?;BEw($~T186}-_k93aQ-;WQAF`}weRYeGaIT(h4{eDjv$C2%JOV@RX2qJ=+ zAtE^E5D|)^Kvl^(1JE=Lo6UyP=|qSz()T^DFE4J^=uf=0t+j27nAv}u{ZEVEuv)Ed zj=lGMJ>Q$zlXJ7&m>Cj6Kve;Fe}D`SV?Y@a<37MjK6vHr} zs>nEwzY>7YM^x2cUBP>QD_Tm48L{6nbz~YUQ+4N(rUpul~F7e(I z&gU~t)3AGfwz{slTrR{IF*B;FqAW{NN?fm3oO3J|3(B(Ocs$+&4u=C>*Rk8}P*tX4 rnHkPGLI{WmIp_Ot^xosWM@0As*fz1|4V`VA00000NkvXXu0mjfp~|gZ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_terminal_front.png b/src/main/resources/assets/hbm/textures/blocks/cm_terminal_front.png new file mode 100644 index 0000000000000000000000000000000000000000..bbf5d2338a74627ffc954a1e94195535a9da99d9 GIT binary patch literal 445 zcmV;u0Yd(XP)-CzVC;%|V zpsI*SYt~v+l@I~|I zv)PROeoqoxvex3g$9vEDe8xG)<#ItpFvbu(0*M~`>Dke(vESz%yjf@fb*EgTZLAb!J&ck|b^AcvxwgayT5C%bm~X nIvfsFL=?Dd#+bV?YpwnS)IiGe+yzjP00000NkvXXu0mjfnw!8> literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_terminal_side.png b/src/main/resources/assets/hbm/textures/blocks/cm_terminal_side.png new file mode 100644 index 0000000000000000000000000000000000000000..24a8807743422723572c62f274bc5d4f52bcc53e GIT binary patch literal 489 zcmVSZOw$BFjFH3P!0mR!*OF9~oHIFR zUauD+1jcd1IfsZ)N@oV~uK^(hRFzT+DJ7<9`XaLegb)ZJ0FY9`t7@yjdyjLjW&eDbb4FDgKvl(8 zX{KpI8nS%18Zpei#O}+b#S3p4DpgH9)i3tZ`9$S5>;M<9@%t2kLk{+Gevc=bQn5 fnuz@AQ&sx~Y(-;x4_qu500000NkvXXu0mjfrW@1~ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_custom.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_custom.png new file mode 100644 index 0000000000000000000000000000000000000000..7b47cbfac8943eba2e9d5d918b9623931455096a GIT binary patch literal 3223 zcmbVOc|4Ts9)D&`mXgWH)?ql4C6ir6*+%GCA~ZC0&IuuEPL7!(A>K)4%@%4ROOf@+ znk$LYP*N@#%gKznBynOaS!X8qr8=F@J-7SEeg1jh=Y5{%`}=*rzvX>moE(4HxPHre z0Ki6D8!Hz85b!Gkhzi4xpQwe$;RovUUR$ClJiz%_5KmlUOURVF`0P! zS_o&XO4hYnNLca8(YE>dd*Z^8t_FzRW@g$COoyjQJ-xj?`t&frj(V=_$NLVut^yeB z?c%%Xc6u#rF^cOW#~+?vF|2VS;hwGXMnlli&GmZa%b}Jn%siB2kcwm9q-V|Lj}t5aRCdXb&{u65A4Q zyMV~+^sm*~IJ0!vLc1LhZ9rk_@=0K@>RC}=0~)F=7jB4ZvvS_daU`UJEh-?-<;i(4 z-hqfN-~;**M3GTS3hC%W=fKm*X`O>_Waqi(+4TH$cJ3@-d*#SHJ`eAXq<<< zjwmeMpI!TrlDa5ZIX_=dzZXwI%J`VAodAui>Vo|=+Zd}PX;Ct-n*~1 zR;_!{->5BcF^1La6SC3hK2__3$HONNubxc# z5t1ilh3?gkU5GAa*hc<|DB~xk%iYK2d(_DIrlpB-y1w&y$(Q%;muGxY!>$zz*-c$g zu2`zcuQ58(lhA6{m^!H_P1^zUqOb9)YYJp={2`C zzUY!#9Xa^>^bTJ%qzYYrZ3<}`&3@M+zNXkG-rt3;g`;@QFMI$0jK@i@x(bw&cO%8_Y?ywsbb|7l%MC24fRT&vRzKI ziLM+9W_?EL_oyu_{$I=mgS`yaus>0yb|vH?KZFS36Q$NbePxg>?q)rD^Eh93ewuptI8w^Yhgxx0xJSMW;%1j|^A$-S;*Rby$w|M*xZ60Mp z=SsH$v}6%PfqWXmd^IFE^l>-N5-t7gjZ<0@{AUN%9!gN$oK*q&?0khd0h^n(?5*Xv zg)Y@pdEzW<7+`(uK(6rh8lx!(V^%^(U(ZmUg|#wD);jr2J*zk)*_M4`VJ%yw@yL;> zkwaUV+}4TmGl`bb;W0O}vf6I{kVw?Kwc08b^Grzzv4q`+_h9V>7`R^+4|0R*sbOIX zg*!=il8h0EZXs)?bMbVr$!tx~9iVs|YgFQLu`Y-8{_iOHy9YotwX z>1+KAZR|UE%|u>zv4nvo*cIFzObv;>)%tOPQ!fP7B+A2zB9rHCqH4PXbQ(I3e~CRV6%9 zTA|g>7%uLV5i@{C_QzDMm!?tSs)Bo5kAJPkTW2XEs_j|VbZV#0fXF}h4~PJx7Byv; zqGdB+rbiOTfSHqXJi&>(y`>7zm=7?sifSJu8<9F4~RK(^;ur~ z2#7RS#t`gOXjU6Ue8Lty!UDg4n6inhUb<`+JGu+uBq{2F1_3W7#GzOMFo3${_YiEH9S%<-rLy0 zjDAiD_rxbemnqwvnK+qr3og*6>@<7G{NqG+vFswh*4#i|1Y|%ESp_udl_5(5B1S!# z4&}I6-;YvQtiHpnVBO;N01p)iwQv^O#%3R7zGw;+gh$|2XgMUL<|9sR0sPb6@jf@t z)k`=DgT7zL4mL@jn+rVWej%Pt0PVoVW9oL14eaTvg?T{bSjaKrZrS`k5yX7qXM!O( zI&XGmUEKG2V8EN3k5U1I_pUR!xJ^zNIAU$3qE<+V44c0HFdGgwCf zw_9;IxKqW^fBpF3)y?%chz}wJ=gnVr%ti+sl;a~*)xcuVjt~tTF7grKBCXd(6Y*EC zWMX?){O;|PJQ4WoUK)XKn)*L?H$)hTXG`oiY$)o*ol zGuwTd+KwQ+o6}+lLkXFV1@RHxmL*Kg_hKjte2prkclxP3j^7!b-mVJTer~=m5L8{z z9>^~=ob^-|Hs@@}7DjzjA=KXmB-;)S^mm$L!^mWN2{by!GIN09&$^$V5XrzuK~MY5 zp_a+XG6gIa6J=C4Jf*=LDo1@g1pmdrYBGF|kY)w8si!CX{p4h^`$eNCGzTq7x?{mX z$vS>;03IpXx;JwvmcZlja5#NAajTc?=BF{SgeQ7RQLzMuCtNM@{~P{W%d5~~3Y%e+ z&scEMQQBK`aZZ#zq5qdl{2H1F!?siuMY6Ka2_PZAW@StUL|mtqaLH)al_n|SN{jI_ zlgN0*@D%&I{(q6@TmG-A_X#7`($%9I#%unHl;buuX8xEYmF!l+ypgbP>mJzvwJb!n wKl{Pq6PA!>9}xF?C{&PEjeMH$NU3QB;eb6B^e={Q literal 0 HcmV?d00001 From 3041e6889654d90dde0643227a79a4dd936dbebe Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Tue, 18 Jul 2023 20:27:41 -0500 Subject: [PATCH 203/432] there you got your damn comparator support for tanks --- .../hbm/blocks/machine/BlockFluidBarrel.java | 18 +++++++++++++++ .../blocks/machine/MachineBigAssTank9000.java | 18 +++++++++++++++ .../hbm/blocks/machine/MachineFluidTank.java | 18 +++++++++++++++ .../hbm/blocks/network/FluidDuctGauge.java | 1 - .../machine/storage/TileEntityBarrel.java | 20 +++++++++++++--- .../storage/TileEntityMachineFluidTank.java | 23 +++++++++++++++---- 6 files changed, 89 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/hbm/blocks/machine/BlockFluidBarrel.java b/src/main/java/com/hbm/blocks/machine/BlockFluidBarrel.java index c5e6e063a..1798b5b59 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockFluidBarrel.java +++ b/src/main/java/com/hbm/blocks/machine/BlockFluidBarrel.java @@ -12,6 +12,7 @@ import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.main.MainRegistry; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.machine.storage.TileEntityBarrel; +import com.hbm.tileentity.machine.storage.TileEntityMachineFluidTank; import com.hbm.util.I18nUtil; import cpw.mods.fml.client.registry.RenderingRegistry; @@ -164,6 +165,23 @@ public class BlockFluidBarrel extends BlockContainer implements ITooltipProvider player.addExhaustion(0.025F); } + @Override + public boolean hasComparatorInputOverride() { + return true; + } + + @Override + public int getComparatorInputOverride(World world, int x, int y, int z, int side) { + + TileEntity te = world.getTileEntity(x, y, z); + + if(!(te instanceof TileEntityBarrel)) + return 0; + + TileEntityBarrel barrel = (TileEntityBarrel) te; + return barrel.getComparatorPower(); + } + @Override public void addInformation(ItemStack stack, NBTTagCompound persistentTag, EntityPlayer player, List list, boolean ext) { FluidTank tank = new FluidTank(Fluids.NONE, 0, 0); diff --git a/src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java b/src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java index 178d0dbb8..782bc09ee 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java +++ b/src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java @@ -12,6 +12,7 @@ import com.hbm.main.MainRegistry; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.storage.TileEntityMachineBAT9000; +import com.hbm.tileentity.machine.storage.TileEntityMachineFluidTank; import com.hbm.util.I18nUtil; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; @@ -98,6 +99,23 @@ public class MachineBigAssTank9000 extends BlockDummyable implements IPersistent return IPersistentNBT.getDrops(world, x, y, z, this); } + @Override + public boolean hasComparatorInputOverride() { + return true; + } + + @Override + public int getComparatorInputOverride(World world, int x, int y, int z, int side) { + + TileEntity te = world.getTileEntity(x, y, z); + + if(!(te instanceof TileEntityMachineBAT9000)) + return 0; + + TileEntityMachineBAT9000 tank = (TileEntityMachineBAT9000) te; + return tank.getComparatorPower(); + } + @Override public void addInformation(ItemStack stack, NBTTagCompound persistentTag, EntityPlayer player, List list, boolean ext) { FluidTank tank = new FluidTank(Fluids.NONE, 0, 0); diff --git a/src/main/java/com/hbm/blocks/machine/MachineFluidTank.java b/src/main/java/com/hbm/blocks/machine/MachineFluidTank.java index 8b5071525..f6d487718 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineFluidTank.java +++ b/src/main/java/com/hbm/blocks/machine/MachineFluidTank.java @@ -14,6 +14,7 @@ import com.hbm.main.MainRegistry; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.IRepairable; import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.machine.storage.TileEntityMachineBattery; import com.hbm.tileentity.machine.storage.TileEntityMachineFluidTank; import com.hbm.util.I18nUtil; @@ -135,6 +136,23 @@ public class MachineFluidTank extends BlockDummyable implements IPersistentInfoP } } + @Override + public boolean hasComparatorInputOverride() { + return true; + } + + @Override + public int getComparatorInputOverride(World world, int x, int y, int z, int side) { + + TileEntity te = world.getTileEntity(x, y, z); + + if(!(te instanceof TileEntityMachineFluidTank)) + return 0; + + TileEntityMachineFluidTank tank = (TileEntityMachineFluidTank) te; + return tank.getComparatorPower(); + } + @Override public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) { diff --git a/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java b/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java index b15aeba9c..abf4cc4d1 100644 --- a/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java +++ b/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java @@ -151,7 +151,6 @@ public class FluidDuctGauge extends FluidDuctBase implements IBlockMultiPass, IL this.deltaLastSecond = Math.max(nbt.getLong("deltaS"), 0); } - @Override public String getComponentName() { return "ntm_fluid_gauge"; diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java index d0bb7e4f8..9d479a4de 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java @@ -16,6 +16,7 @@ import com.hbm.saveddata.TomSaveData; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; @@ -31,6 +32,7 @@ import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.MathHelper; import net.minecraft.world.EnumSkyBlock; import net.minecraft.world.World; @@ -48,6 +50,7 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc public int age = 0; public List list = new ArrayList(); protected boolean sendingBrake = false; + public byte lastRedstone = 0; public TileEntityBarrel() { super(6); @@ -64,11 +67,22 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc return "container.barrel"; } + public byte getComparatorPower() { + if(tank.getFill() == 0) return 0; + double frac = (double) tank.getFill() / (double) tank.getMaxFill() * 15D; + return (byte) (MathHelper.clamp_int((int) frac + 1, 0, 15)); + } + @Override public void updateEntity() { if(!worldObj.isRemote) { - + + byte comp = this.getComparatorPower(); //do comparator shenanigans + if(comp != this.lastRedstone) + this.markDirty(); + this.lastRedstone = comp; + tank.setType(0, 1, slots); tank.loadTank(2, 3, slots); tank.unloadTank(4, 5, slots); @@ -375,12 +389,12 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getTypeStored(Context context, Arguments args) { - return new Object[] {tank.getTankType().getName()}; + return new Object[] {I18nUtil.resolveKey(tank.getTankType().getUnlocalizedName())}; } @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { - return new Object[]{tank.getFill(), tank.getMaxFill(), tank.getTankType().getName()}; + return new Object[]{tank.getFill(), tank.getMaxFill(), I18nUtil.resolveKey(tank.getTankType().getUnlocalizedName())}; } } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java index 2b2c311b8..618791227 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java @@ -33,6 +33,7 @@ import com.hbm.tileentity.IOverpressurable; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.IRepairable; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.I18nUtil; import com.hbm.util.ParticleUtil; import com.hbm.util.fauxpointtwelve.DirPos; import cpw.mods.fml.common.Optional; @@ -49,6 +50,7 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; import net.minecraft.world.Explosion; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -66,7 +68,7 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements public boolean hasExploded = false; protected boolean sendingBrake = false; public boolean onFire = false; - + public byte lastRedstone = 0; public Explosion lastExplosion = null; public int age = 0; @@ -81,7 +83,13 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements public String getName() { return "container.fluidtank"; } - + + public byte getComparatorPower() { + if(tank.getFill() == 0) return 0; + double frac = (double) tank.getFill() / (double) tank.getMaxFill() * 15D; + return (byte) (MathHelper.clamp_int((int) frac + 1, 0, 15)); + } + @Override public void updateEntity() { @@ -119,7 +127,12 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements tank.loadTank(2, 3, slots); tank.setType(0, 1, slots); } - + + byte comp = this.getComparatorPower(); //comparator shit + if(comp != this.lastRedstone) + this.markDirty(); + this.lastRedstone = comp; + if(tank.getFill() > 0) { if(tank.getTankType().isAntimatter()) { new ExplosionVNT(worldObj, xCoord + 0.5, yCoord + 1.5, zCoord + 0.5, 5F).makeAmat().setBlockAllocator(null).setBlockProcessor(null).explode(); @@ -474,12 +487,12 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getTypeStored(Context context, Arguments args) { - return new Object[] {tank.getTankType().getName()}; + return new Object[] {I18nUtil.resolveKey(tank.getTankType().getUnlocalizedName())}; } @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { - return new Object[]{tank.getFill(), tank.getMaxFill(), tank.getTankType().getName()}; + return new Object[]{tank.getFill(), tank.getMaxFill(), I18nUtil.resolveKey(tank.getTankType().getUnlocalizedName())}; } } \ No newline at end of file From 02e1ae5fbc77f5d0a6b92ee614f3fbd78370f805 Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Tue, 18 Jul 2023 20:34:59 -0500 Subject: [PATCH 204/432] Revert "RBMK redstone column that doesn't work (will work eventually)" This reverts commit 424d6c3486d0c5ffb4d7e9f7d951c026ba48f7fb. --- src/main/java/com/hbm/blocks/ModBlocks.java | 3 - .../hbm/blocks/machine/rbmk/RBMKRedstone.java | 33 ---- .../com/hbm/inventory/gui/GUIRBMKConsole.java | 20 +- .../hbm/inventory/gui/GUIRBMKRedstone.java | 168 ---------------- .../java/com/hbm/tileentity/TileMappings.java | 1 - .../machine/rbmk/TileEntityRBMKConsole.java | 22 +-- .../machine/rbmk/TileEntityRBMKRedstone.java | 182 ------------------ .../machine/rbmk/TileEntityRBMKRod.java | 6 - src/main/resources/assets/hbm/lang/en_US.lang | 5 - .../textures/blocks/rbmk/rbmk_redstone.png | Bin 1294 -> 0 bytes .../gui/reactors/gui_rbmk_console.png | Bin 6917 -> 6569 bytes .../gui/reactors/gui_rbmk_redstone.png | Bin 3617 -> 0 bytes 12 files changed, 10 insertions(+), 430 deletions(-) delete mode 100644 src/main/java/com/hbm/blocks/machine/rbmk/RBMKRedstone.java delete mode 100644 src/main/java/com/hbm/inventory/gui/GUIRBMKRedstone.java delete mode 100644 src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRedstone.java delete mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_redstone.png delete mode 100644 src/main/resources/assets/hbm/textures/gui/reactors/gui_rbmk_redstone.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index c25089dc3..fbdcadf67 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1099,7 +1099,6 @@ public class ModBlocks { public static Block rbmk_storage; public static Block rbmk_cooler; public static Block rbmk_heater; - public static Block rbmk_redstone; public static Block rbmk_console; public static Block rbmk_crane_console; public static Block rbmk_loader; @@ -2148,7 +2147,6 @@ public class ModBlocks { rbmk_storage = new RBMKStorage().setBlockName("rbmk_storage").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_storage"); rbmk_cooler = new RBMKCooler().setBlockName("rbmk_cooler").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_cooler"); rbmk_heater = new RBMKHeater().setBlockName("rbmk_heater").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_heater"); - rbmk_redstone = new RBMKRedstone().setBlockName("rbmk_redstone").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_redstone"); rbmk_console = new RBMKConsole().setBlockName("rbmk_console").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_console"); rbmk_crane_console = new RBMKCraneConsole().setBlockName("rbmk_crane_console").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_crane_console"); rbmk_loader = new RBMKLoader(Material.iron).setBlockName("rbmk_loader").setCreativeTab(MainRegistry.machineTab).setHardness(50.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":rbmk_loader"); @@ -3148,7 +3146,6 @@ public class ModBlocks { GameRegistry.registerBlock(rbmk_storage, rbmk_storage.getUnlocalizedName()); GameRegistry.registerBlock(rbmk_cooler, rbmk_cooler.getUnlocalizedName()); GameRegistry.registerBlock(rbmk_heater, rbmk_heater.getUnlocalizedName()); - GameRegistry.registerBlock(rbmk_redstone, rbmk_redstone.getUnlocalizedName()); GameRegistry.registerBlock(rbmk_console, rbmk_console.getUnlocalizedName()); GameRegistry.registerBlock(rbmk_crane_console, rbmk_crane_console.getUnlocalizedName()); GameRegistry.registerBlock(rbmk_loader, rbmk_loader.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKRedstone.java b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKRedstone.java deleted file mode 100644 index 5ee4f4480..000000000 --- a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKRedstone.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.hbm.blocks.machine.rbmk; - -import com.hbm.tileentity.machine.rbmk.TileEntityRBMKRedstone; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.World; - -public class RBMKRedstone extends RBMKBase { - - @Override - public TileEntity createNewTileEntity(World world, int meta) { - - if(meta >= this.offset) - return new TileEntityRBMKRedstone(); - return null; - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - return openInv(world, x, y, z, player); - } - - @Override - public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { - return super.getCollisionBoundingBoxFromPool(world, x, y, z); - } - - @Override - public int getRenderType(){ - return this.renderIDPassive; - } -} diff --git a/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java b/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java index c94647188..85be6afb7 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java +++ b/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java @@ -305,23 +305,7 @@ public class GUIRBMKConsole extends GuiScreen { case REFLECTOR: break; case OUTGASSER: break; case BREEDER: break; - - case REDSTONE: - - switch(col.data.getInteger("mode")) { - case 2: // slow flux - drawTexturedModalRect(guiLeft + x + 3, guiTop + y + size - 2, 142, 183 - 8, 3, 8); - break; - case 3: // fast flux - drawTexturedModalRect(guiLeft + x + 3, guiTop + y + size - 2, 142, 193 - 8, 3, 8); - break; - } - - if(col.data.getBoolean("active")) { //set active texture afterwards or it will override - drawTexturedModalRect(guiLeft + x + 4, guiTop + y + size - 2, 145, 204, 2, 8); - } - break; - + case CONTROL: int color = col.data.getShort("color"); if(color > -1) @@ -357,7 +341,7 @@ public class GUIRBMKConsole extends GuiScreen { drawTexturedModalRect(guiLeft + x + 4, guiTop + y + 5, 44, 187, 2, 2); if(col.data.getShort("type") == Fluids.ULTRAHOTSTEAM.ordinal()) drawTexturedModalRect(guiLeft + x + 4, guiTop + y + 7, 44, 189, 2, 2); - + break; case HEATEX: diff --git a/src/main/java/com/hbm/inventory/gui/GUIRBMKRedstone.java b/src/main/java/com/hbm/inventory/gui/GUIRBMKRedstone.java deleted file mode 100644 index 913438e87..000000000 --- a/src/main/java/com/hbm/inventory/gui/GUIRBMKRedstone.java +++ /dev/null @@ -1,168 +0,0 @@ -package com.hbm.inventory.gui; - -import org.apache.commons.lang3.math.NumberUtils; -import org.lwjgl.input.Keyboard; -import org.lwjgl.opengl.GL11; - -import com.hbm.inventory.container.ContainerRBMKGeneric; -import com.hbm.lib.RefStrings; -import com.hbm.packet.NBTControlPacket; -import com.hbm.packet.PacketDispatcher; -import com.hbm.tileentity.machine.rbmk.TileEntityRBMKRedstone; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.audio.PositionedSoundRecord; -import net.minecraft.client.gui.GuiTextField; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.ResourceLocation; - -public class GUIRBMKRedstone extends GuiInfoContainer { - - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/reactors/gui_rbmk_redstone.png"); - private TileEntityRBMKRedstone rod; - - private GuiTextField[] fields; - - public GUIRBMKRedstone(InventoryPlayer invPlayer, TileEntityRBMKRedstone tile) { - super(new ContainerRBMKGeneric(invPlayer)); - rod = tile; - - fields = new GuiTextField[2]; - - this.xSize = 176; - this.ySize = 186; - } - - public void initGui() { - super.initGui(); - - Keyboard.enableRepeatEvents(true); - this.fields[0] = new GuiTextField(this.fontRendererObj, guiLeft + 56, guiTop + 25, 94, 18); - this.fields[1] = new GuiTextField(this.fontRendererObj, guiLeft + 29, guiTop + 60, 28, 10); - for(int i = 0; i < 2; i++) { - this.fields[i].setTextColor(0x00ff00); - this.fields[i].setDisabledTextColour(0x00ff00); - this.fields[i].setEnableBackgroundDrawing(false); - this.fields[i].setMaxStringLength(4); - this.fields[i].setText(String.valueOf(rod.threshold)); - if(i == 0) { - this.fields[i].setText(rod.channel == null ? "" : rod.channel); - this.fields[i].setMaxStringLength(10); - } - } - } - - @Override - public void drawScreen(int mouseX, int mouseY, float f) { - super.drawScreen(mouseX, mouseY, f); - String value = ""; - switch(rod.mode) { - case 1: - value = "°C"; - break; - case 2: - case 3: - value = "/cm²/s"; - break; - } - - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 29, guiTop + 49, 28, 10, mouseX, mouseY, "Value: " + (rod.value) + value); - - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 69, guiTop + 56, 25, 25, mouseX, mouseY, "Monitor slow flux"); - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 96, guiTop + 56, 25, 25, mouseX, mouseY, "Monitor fast flux"); - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 123, guiTop + 56, 25, 25, mouseX, mouseY, "Monitor heat"); - - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 29, guiTop + 60, 28, 10, mouseX, mouseY, "Redstone Threshold"); - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 29, guiTop + 71, 28, 10, mouseX, mouseY, "Save threshold"); - } - - @Override - protected void mouseClicked(int x, int y, int i) { - super.mouseClicked(x, y, i); - - for(int j = 0; j < 2; j++) { - this.fields[j].mouseClicked(x, y, i); - } - - if(guiLeft + 29 <= x && guiLeft + 29 + 28 > x && guiTop + 71 < y && guiTop + 71 + 10 >= y) { - - mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); - NBTTagCompound data = new NBTTagCompound(); - if(NumberUtils.isNumber(fields[1].getText())) { - data.setString("Ch_set", fields[0].getText() + ""); - data.setInteger("Threshold", Integer.parseInt(fields[1].getText())); - } else { - fields[0].setText(""); - fields[1].setText("0"); - } - PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, rod.xCoord, rod.yCoord, rod.zCoord)); - } - for(int k = 0; k < 3; k++) { // button for each mode - if(guiLeft + 68 + k * 27 <= x && guiLeft + 68 + (k + 1) * 27 > x && guiTop + 55 < y && guiTop + 55 + 27 >= y) { - mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); - NBTTagCompound data = new NBTTagCompound(); - if(k == 0) - data.setInteger("Mode", 2); - if(k == 1) - data.setInteger("Mode", 3); - if(k == 2) - data.setInteger("Mode", 1); - PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, rod.xCoord, rod.yCoord, rod.zCoord)); - } - } - } - - @Override - protected void drawGuiContainerForegroundLayer(int i, int j) { - String name = this.rod.hasCustomInventoryName() ? this.rod.getInventoryName() : I18n.format(this.rod.getInventoryName()); - - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); - this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); - } - - @Override - protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - Minecraft.getMinecraft().getTextureManager().bindTexture(texture); - drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - - switch(rod.mode) { - case 1: - drawTexturedModalRect(guiLeft + 77, guiTop + 46, 180, 13, 9, 9); - drawTexturedModalRect(guiLeft + 104, guiTop + 46, 180, 13, 9, 9); - drawTexturedModalRect(guiLeft + 131, guiTop + 46, 180, 3, 9, 9); - break; - case 2: - drawTexturedModalRect(guiLeft + 77, guiTop + 46, 180, 13, 9, 9); - drawTexturedModalRect(guiLeft + 104, guiTop + 46, 180, 3, 9, 9); - drawTexturedModalRect(guiLeft + 131, guiTop + 46, 180, 13, 9, 9); - break; - case 3: - drawTexturedModalRect(guiLeft + 77, guiTop + 46, 180, 3, 9, 9); - drawTexturedModalRect(guiLeft + 104, guiTop + 46, 180, 13, 9, 9); - drawTexturedModalRect(guiLeft + 131, guiTop + 46, 180, 13, 9, 9); - break; - } - this.fields[0].drawTextBox(); - this.fields[1].drawTextBox(); - this.fontRendererObj.drawString(rod.trunc_v, 30, 50, 0xFF7F7F); - } - - @Override - protected void keyTyped(char c, int i) { - - for(int j = 0; j < 2; j++) { - if(this.fields[j].textboxKeyTyped(c, i)) - return; - } - - super.keyTyped(c, i); - } - - @Override - public void onGuiClosed() { - Keyboard.enableRepeatEvents(false); - } -} diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 896858233..dd84c756e 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -343,7 +343,6 @@ public class TileMappings { put(TileEntityRBMKAbsorber.class, "tileentity_rbmk_absorber"); put(TileEntityRBMKModerator.class, "tileentity_rbmk_moderator"); put(TileEntityRBMKOutgasser.class, "tileentity_rbmk_outgasser"); - put(TileEntityRBMKRedstone.class, "tileentity_rbmk_redstone"); put(TileEntityRBMKCooler.class, "tileentity_rbmk_cooler"); put(TileEntityRBMKHeater.class, "tileentity_rbmk_heater"); put(TileEntityRBMKStorage.class, "tileentity_rbmk_storage"); diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java index 0e1d6baca..4ce54e100 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java @@ -384,24 +384,19 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon stats.add(EnumChatFormatting.WHITE + I18nUtil.resolveKey("rbmk.boiler.steam", this.data.getInteger("steam"), this.data.getInteger("maxSteam"))); stats.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("rbmk.boiler.type", I18nUtil.resolveKey(Fluids.fromID(this.data.getShort("type")).getUnlocalizedName()))); break; - case REDSTONE: - stats.add(EnumChatFormatting.BLUE + I18nUtil.resolveKey("rbmk.redstone.active", Boolean.toString(data.getBoolean("active")))); - stats.add(EnumChatFormatting.WHITE + I18nUtil.resolveKey("rbmk.redstone.value", this.data.getString("value"), this.data.getInteger("threshold"))); - stats.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("rbmk.redstone.channel", this.data.getString("channel"))); - break; case CONTROL: - + if(this.data.hasKey("color")) { short col = this.data.getShort("color"); - + if(col >= 0 && col < RBMKColor.values().length) stats.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("rbmk.control." + RBMKColor.values()[col].name().toLowerCase(Locale.US))); } - + case CONTROL_AUTO: stats.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("rbmk.control.level", ((int)((this.data.getDouble("level") * 100D))) + "%")); break; - + case HEATEX: stats.add(EnumChatFormatting.BLUE + I18nUtil.resolveKey(I18nUtil.resolveKey(Fluids.fromID(this.data.getShort("type")).getUnlocalizedName()) + " " + this.data.getInteger("water") + "/" + this.data.getInteger("maxWater") + "mB")); @@ -409,7 +404,7 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon this.data.getInteger("steam") + "/" + this.data.getInteger("maxSteam") + "mB")); break; } - + if(data.getBoolean("moderated")) stats.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("rbmk.moderated")); @@ -431,10 +426,9 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon BREEDER(100), STORAGE(110), COOLER(120), - HEATEX(130), - REDSTONE(140); - - public int offset; + HEATEX(130); + + public int offset; private ColumnType(int offset) { this.offset = offset; diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRedstone.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRedstone.java deleted file mode 100644 index c21948360..000000000 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRedstone.java +++ /dev/null @@ -1,182 +0,0 @@ -package com.hbm.tileentity.machine.rbmk; - -import com.hbm.entity.projectile.EntityRBMKDebris.DebrisType; -import com.hbm.interfaces.IControlReceiver; -import com.hbm.inventory.container.ContainerRBMKGeneric; -import com.hbm.inventory.gui.GUIRBMKRedstone; -import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole.ColumnType; -import com.hbm.tileentity.network.RTTYSystem; -import cpw.mods.fml.common.Optional; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import li.cil.oc.api.network.SimpleComponent; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; - -@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityRBMKRedstone extends TileEntityRBMKSlottedBase implements IControlReceiver, SimpleComponent { - - - public int mode = 1; - public String channel = ""; - public int threshold = 0; - public boolean active = false; - public double sflux = 0.0; - public double fflux = 0.0; - public double value = 0.0; - public String trunc_v = ""; - - @Override - public String getName() { - return "container.rbmkRedstone"; - } - - public TileEntityRBMKRedstone() { - super(0); - } - - @Override - public void updateEntity() { - if (!worldObj.isRemote) { - - switch(mode) { - // mode = 1: Heat - // mode = 2: Slow Flux - // mode = 3: Fast Flux - case (1): - value = heat; - active = value > threshold; - break; - case (2): - value = sflux; - active = value > threshold; - break; - case (3): - value = fflux; - active = value > threshold; - break; - } - if(!channel.isEmpty()) { - if(active) { - RTTYSystem.broadcast(worldObj, channel, 15); - } else { - RTTYSystem.broadcast(worldObj, channel, 0); - } - } - } - super.updateEntity(); - } - - public void processFlux(Double flux, IRBMKFluxReceiver.NType stream) { - if(stream == IRBMKFluxReceiver.NType.SLOW) { - sflux = flux; - } else if (stream == IRBMKFluxReceiver.NType.FAST) { - fflux = flux; - } - } - - @Override - public boolean hasPermission(EntityPlayer player) {return true;} - - @Override - public void receiveControl(NBTTagCompound data) { - - if(data.hasKey("Ch_set")) { - channel = data.getString("Ch_set"); - threshold = data.getInteger("Threshold"); - } else if (data.hasKey("Mode")) { - int newMode = data.getInteger("Mode") % 4; - if(newMode <= 0) - newMode = 1; - mode = newMode; - } - this.markDirty(); - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - - mode = nbt.getInteger("mode"); - channel = nbt.getString("channel"); - threshold = nbt.getInteger("threshold"); - active = nbt.getBoolean("active"); - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - - nbt.setInteger("mode", mode); - nbt.setString("channel", channel); - nbt.setInteger("threshold", threshold); - nbt.setBoolean("active", active); - } - - public void getDiagData(NBTTagCompound nbt) { - super.getDiagData(nbt); - nbt.setString("mode", String.valueOf(mode)); - nbt.setString("channel", channel); - nbt.setString("threshold", String.valueOf(threshold)); - nbt.setString("active", String.valueOf(active)); - } - - @Override - public NBTTagCompound getNBTForConsole() { - NBTTagCompound data = new NBTTagCompound(); - - if(value >= 100) { - value = (int) value; - } else { - value = ((int) (value * 10)) / 10F; - } - data.setInteger("mode", mode); - data.setString("value", trunc_v); - data.setInteger("threshold", threshold); - data.setBoolean("active", active); - - return data; - } - - @Override - public void onMelt(int reduce) { - - int count = 1 + worldObj.rand.nextInt(2); - - for(int i = 0; i < count; i++) { - spawnDebris(DebrisType.BLANK); - } - - super.onMelt(reduce); - } - - @Override - public ColumnType getConsoleType() { - return ColumnType.REDSTONE; - } - - @Override - @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() { - return 65536.0D; - } - - @Override - public String getComponentName() { - return "rbmk_redstone_rod"; - } - - @Override - public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new ContainerRBMKGeneric(player.inventory); - } - - @Override - @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GUIRBMKRedstone(player.inventory, this); - } -} diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java index bdf09c074..f13f34952 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java @@ -191,12 +191,6 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM return flux; } } - - if(te instanceof TileEntityRBMKRedstone) { - TileEntityRBMKRedstone rod = (TileEntityRBMKRedstone)te; - rod.processFlux(flux, stream); - return flux; - } if(te instanceof IRBMKFluxReceiver) { IRBMKFluxReceiver rod = (IRBMKFluxReceiver)te; diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index e879e685e..3c4bec004 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -723,7 +723,6 @@ container.rbmkHeater=RBMK Fluid Heater container.rbmkOutgasser=RBMK Irradiation Channel container.rbmkReaSim=RBMK Fuel Rod (ReaSim) container.rbmkRod=RBMK Fuel Rod -container.rbmkRedstone=RBMK Redstone Column container.rbmkStorage=RBMK Storage Column container.reactorBreeding=Breeding Reactor container.reactorControl=Reactor Remote Control Block @@ -4246,9 +4245,6 @@ rbmk.heat=Column temperature: %s rbmk.boiler.water=Feedwater: %s / %s rbmk.boiler.steam=Steam: %s / %s rbmk.boiler.type=Compressor: %s -rbmk.redstone.active=Active: %s -rbmk.redstone.value=Value: %s / %s -rbmk.redstone.channel=Channel: %s rbmk.console.assign=Assign selected columns to screen #%s rbmk.console.none=Off rbmk.console.col_temp=Monitor average column temperature @@ -5118,7 +5114,6 @@ tile.rbmk_control_mod.name=RBMK Moderated Control Rods tile.rbmk_crane_console.name=RBMK Crane Console tile.rbmk_heater.name=RBMK Fluid Heater tile.rbmk_heatex.name=RBMK Heat Exchanger -tile.rbmk_redstone.name=RBMK Redstone Column tile.rbmk_loader.name=RBMK Steam Connector tile.rbmk_moderator.name=RBMK Graphite Moderator tile.rbmk_outgasser.name=RBMK Irradiation Channel diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_redstone.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_redstone.png deleted file mode 100644 index 8689b01c6bd228fd87a19f28265228547c540053..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1294 zcmV+p1@ZccP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1fxkrK~z{rt(Hqq zWK|Hy>pr@ny8)p|V0eaCIx%rIegbvxdJ>1 z2-t)Lgh8O`xAm*;>bW+}4A}fT)#u!E&#C&KdYp5E&CSiGB#_Bu+P#}7l}hd2E1aF3 z$>`|loz`t{ZwJ;%zzEFF&dR{RfJ9N$9u}$B>ryV4tz{eufVgkd025NaDrkWyvZUY%b^@yl(wzP^^- z-CfD$a{nQKAqXHC_l+^WwzhVIKxluexbXegQm@w3U?g!A%aHC&%}SsP8`Y}BO$^zae)g5^%GaXY!L#q&caPwyUWoZaLA_L#rtbdNk3N%ZHft{{m5K>U0SXJ>K9$RI zMVifKC+_sS;RLHn9{slw2vLH9vhH3~PgY&Gv$G>V|Ma6gfBuX7`N!`X>!Q4Td1hpE zvNTj`8YV#NF~%5@BxIY@eCS0I*w#=IE5mf0lKRMq4CS)6>o|^0i1+2iMJtx|mSG2L znTrAXP6ES-d(R1X!``xBFbXyK8a8ogc-V|xYx(?he%?~589ilyvuyI5|171*%r!;FUXBi-%a}Mgg8< z6Mzu$+zUp4mo;5?r5=FsTY9iyd{~LlqMXCT5=jk&VPxfJ3Y54f9DM}C2;;PrBGL;+ zz+S51SfA4Av`I!Q!4#?jNR_TiHZQhn)N<8vNHNE2-3`(*&c+~3%X2S;eoO|{ilp@5 zVL?7WE{`5f$=v+BJbwJHy!ZYG^5K&wEhTzJQ1y@kw;6&2W5{jBft`f&b93^}58r5j zwWNq+pz#Vc92yoPn#~MonQETsSoP{s6E>3HKK@+(`nzZ$T3K0XX;Tm`#61Z-H&$0y zTd_*OsFC3>KKVk8=})JGQTtqI)Fo)@*^WY~$%xKQtGi!(`cx`jVbqqXb z9Cx{n0qbtPj@$hXUZ<>^Krf~Df#m?-1GuqJD45J?Qch1#%lP=XO`@Hcm=HoWuaz+~ zGb2+|Q}(W37y)8cEEYSNi!kP~Cyw;-403vU`bL-E6-IzMU07J?WG!F}!?>K5y7t=U z1BCuVkT3#XHhzxxf?Y@|%w?WeO26oQ5BLr-;Kq`K`2Kqn$^QfMfFBaL9Rob?@9!H4 z04Yy8-f`0Tntovfe8;XB5@fv_+1uN*4^X^tcz9?D>(_I?2)4GiZum4=>m(J{Px87=mT12)0)Pte zdmV!q@o~lwAM>((2$)6^5QP|UV;Js+8zwouLi&Y$5uuE-!vJtYgoW0}y+jWV4jzsG ze;6PU$!toI76IP(62)*npYM?B7x%u7K{EOJyN*Tv1vZWaatMlMMgRZ+07*qoM6N<$ Eg3aG00c{Q9=186Rwdngd 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 O1<=(r(kNAPi25(&%t8JD literal 6917 zcma)hcUTim_x5Z8p%X+zdO#^E2q--ugeuap(Iq@8NDn0zT0#?1n$nwe1yMjigrE=v zMMXN&l&%Cqm7;Wh!RPgT{pY)`?~lyxYGn5K2;oHUI!0eBwEvgJTe>oei>t$YArZ`}Jq&7Or< z0N_hIqoaBL=B2qzWR$??z~&LY-LWW$64ih>cy0Ebehw#n*wyYPN+s5s^JwLZyhq~h zkQiIyTDMN_^#YuQf?1ll_z^J}bf_Wtorz&uSdaLHK+*3Rd33fPB4?Yp6ViBK*P}#I zuy3x{c~V~fy8g5EQ~Hong`M2mTgyW=HL2U%!wcIrHEC(NLLN*apWm!Z7`21Iq2HRr?o_BQ(fr!;(>rzm;f%$Lpfj#x14<7Pi;3d2bBNkCvT>|1z1GY?RUvjF`yK2C*qoTj@9T-qO=8oQ*{Gr+4e)X@>w z2RfED$;Ro5R?npROW1nZZpM|3jg6JPW5-`FTxM{By!C`0Ix80Du~$tDDcOPM-ZabGS(x5zrH%jKYEJ81(3qWlaZ`VA=AAiq*8)sL$kP9O8zpSF8Jo zbadvO&J_BZqa9ILfyopMC_PrgiR*v?3s{wQW~LPBV+ozkH-kpq_=CEaP(q?o$H&h( zMW6{>Nf7ov+nsce{gkwfj2@f#Lni^Mǖj*gSziT)--Ts;H9>?4f^jsPdXlhNwv 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 rG#5OfQ%$=Vo8NC^|A|s)zi&r{?z)Wmtx Date: Tue, 18 Jul 2023 20:45:54 -0500 Subject: [PATCH 205/432] fix the OC part where I18nUtil was being called (no longer is it being called) --- .../com/hbm/tileentity/machine/storage/TileEntityBarrel.java | 4 ++-- .../machine/storage/TileEntityMachineFluidTank.java | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java index 9d479a4de..c6fea9500 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java @@ -389,12 +389,12 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getTypeStored(Context context, Arguments args) { - return new Object[] {I18nUtil.resolveKey(tank.getTankType().getUnlocalizedName())}; + return new Object[] {tank.getTankType().getUnlocalizedName()}; } @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { - return new Object[]{tank.getFill(), tank.getMaxFill(), I18nUtil.resolveKey(tank.getTankType().getUnlocalizedName())}; + return new Object[]{tank.getFill(), tank.getMaxFill(), tank.getTankType().getUnlocalizedName()}; } } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java index 618791227..1269da0a6 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java @@ -487,12 +487,12 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getTypeStored(Context context, Arguments args) { - return new Object[] {I18nUtil.resolveKey(tank.getTankType().getUnlocalizedName())}; + return new Object[] {tank.getTankType().getUnlocalizedName()}; } @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { - return new Object[]{tank.getFill(), tank.getMaxFill(), I18nUtil.resolveKey(tank.getTankType().getUnlocalizedName())}; + return new Object[]{tank.getFill(), tank.getMaxFill(), tank.getTankType().getUnlocalizedName()}; } } \ No newline at end of file From 4c3047c121d1bde616aa2f88d31bb9901345d33f Mon Sep 17 00:00:00 2001 From: Bob Date: Wed, 19 Jul 2023 11:15:42 +0200 Subject: [PATCH 206/432] glaggle 3: return to blibble's field --- src/main/java/com/hbm/blocks/ModBlocks.java | 2 +- .../com/hbm/blocks/machine/BlockCMPort.java | 32 +++ .../blocks/machine/BlockCustomMachine.java | 19 +- .../container/ContainerMachineCustom.java | 4 +- .../hbm/inventory/gui/GUIMachineCustom.java | 58 ++++ .../hbm/tileentity/TileEntityProxyBase.java | 30 +++ .../hbm/tileentity/TileEntityProxyCombo.java | 4 +- .../machine/TileEntityCustomMachine.java | 248 +++++++++++++++++- 8 files changed, 387 insertions(+), 10 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/machine/BlockCMPort.java diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 31dd43231..55b367285 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -2024,7 +2024,7 @@ public class ModBlocks { cm_sheet = new BlockCM(Material.iron, EnumCMMaterials.class, true, true).setBlockName("cm_sheet").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":cm_sheet"); cm_engine = new BlockCM(Material.iron, EnumCMEngines.class, true, true).setBlockName("cm_engine").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":cm_engine"); cm_tank = new BlockCMGlass(Material.iron, EnumCMMaterials.class, true, true).setBlockName("cm_tank").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":cm_tank"); - cm_port = new BlockCM(Material.iron, EnumCMMaterials.class, true, true).setBlockName("cm_port").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":cm_port"); + cm_port = new BlockCMPort(Material.iron, EnumCMMaterials.class, true, true).setBlockName("cm_port").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":cm_port"); custom_machine = new BlockCustomMachine().setBlockName("custom_machine").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F); reactor_element = new BlockPillar(Material.iron, RefStrings.MODID + ":reactor_element_top", RefStrings.MODID + ":reactor_element_base").setBlockName("reactor_element").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":reactor_element_side"); diff --git a/src/main/java/com/hbm/blocks/machine/BlockCMPort.java b/src/main/java/com/hbm/blocks/machine/BlockCMPort.java new file mode 100644 index 000000000..b16528a55 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/BlockCMPort.java @@ -0,0 +1,32 @@ +package com.hbm.blocks.machine; + +import com.hbm.tileentity.TileEntityProxyCombo; + +import net.minecraft.block.Block; +import net.minecraft.block.ITileEntityProvider; +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class BlockCMPort extends BlockCM implements ITileEntityProvider { + + public BlockCMPort(Material mat, Class theEnum, boolean multiName, boolean multiTexture) { + super(mat, theEnum, multiName, multiTexture); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityProxyCombo().inventory().power().fluid(); + } + + @Override + public void onBlockAdded(World world, int x, int y, int z) { + super.onBlockAdded(world, x, y, z); + } + + @Override + public void breakBlock(World world, int x, int y, int z, Block b, int m) { + super.breakBlock(world, x, y, z, b, m); + world.removeTileEntity(x, y, z); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/BlockCustomMachine.java b/src/main/java/com/hbm/blocks/machine/BlockCustomMachine.java index 2d1eb0484..469d11f25 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockCustomMachine.java +++ b/src/main/java/com/hbm/blocks/machine/BlockCustomMachine.java @@ -22,6 +22,7 @@ import net.minecraft.stats.StatList; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; import net.minecraft.util.MathHelper; +import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; public class BlockCustomMachine extends BlockContainer { @@ -115,7 +116,7 @@ public class BlockCustomMachine extends BlockContainer { Item item = getItemDropped(metadata, world.rand, fortune); if(item != null) { - ItemStack stack = new ItemStack(item, 1, damageDropped(metadata)); + ItemStack stack = new ItemStack(item); TileEntityCustomMachine tile = (TileEntityCustomMachine) world.getTileEntity(x, y, z); if(tile != null) { @@ -128,4 +129,20 @@ public class BlockCustomMachine extends BlockContainer { return ret; } + + @Override + public ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z) { //using the deprecated one to make NEI happy + + TileEntityCustomMachine tile = (TileEntityCustomMachine) world.getTileEntity(x, y, z); + + ItemStack stack = new ItemStack(this); + + if(tile != null && tile.machineType != null && !tile.machineType.isEmpty()) { + stack.stackTagCompound = new NBTTagCompound(); + stack.stackTagCompound.setString("machineType", tile.machineType); + return stack; + } + + return super.getPickBlock(target, world, x, y, z); + } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineCustom.java b/src/main/java/com/hbm/inventory/container/ContainerMachineCustom.java index 1a15db6ba..d85a2953f 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineCustom.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineCustom.java @@ -20,7 +20,9 @@ public class ContainerMachineCustom extends Container { //Input this.addSlotToContainer(new Slot(tile, 0, 150, 72)); //Fluid IDs - for(int i = 0; i < tile.inputTanks.length; i++) this.addSlotToContainer(new Slot(tile, 1 + i, 8, 54 + 18 * i)); + for(int i = 0; i < tile.inputTanks.length; i++) { + this.addSlotToContainer(new Slot(tile, 1 + i, 8 + 18 * i, 54)); + } //Item inputs if(tile.config.itemInCount > 0) this.addSlotToContainer(new Slot(tile, 4, 8, 72)); if(tile.config.itemInCount > 1) this.addSlotToContainer(new Slot(tile, 5, 26, 72)); diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineCustom.java b/src/main/java/com/hbm/inventory/gui/GUIMachineCustom.java index 5bbc86167..7b658c150 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineCustom.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineCustom.java @@ -1,7 +1,10 @@ package com.hbm.inventory.gui; +import java.util.Arrays; + import org.lwjgl.opengl.GL11; +import com.hbm.inventory.SlotPattern; import com.hbm.inventory.container.ContainerMachineCustom; import com.hbm.lib.RefStrings; import com.hbm.tileentity.machine.TileEntityCustomMachine; @@ -9,6 +12,8 @@ import com.hbm.tileentity.machine.TileEntityCustomMachine; import net.minecraft.client.Minecraft; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Slot; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.ResourceLocation; public class GUIMachineCustom extends GuiInfoContainer { @@ -24,6 +29,41 @@ public class GUIMachineCustom extends GuiInfoContainer { this.ySize = 256; } + @Override + public void drawScreen(int x, int y, float interp) { + super.drawScreen(x, y, interp); + + this.drawElectricityInfo(this, x, y, guiLeft + 150, guiTop + 18, 16, 52, custom.power, custom.config.maxPower); + + if(this.mc.thePlayer.inventory.getItemStack() == null) { + for(int i = 0; i < this.inventorySlots.inventorySlots.size(); ++i) { + Slot slot = (Slot) this.inventorySlots.inventorySlots.get(i); + int tileIndex = slot.getSlotIndex(); + + if(this.isMouseOverSlot(slot, x, y) && slot instanceof SlotPattern && custom.matcher.modes[tileIndex - 10] != null) { + + String label = EnumChatFormatting.YELLOW + ""; + + switch(custom.matcher.modes[tileIndex - 10]) { + case "exact": label += "Item and meta match"; break; + case "wildcard": label += "Item matches"; break; + default: label += "Ore dict key matches: " + custom.matcher.modes[tileIndex - 10]; break; + } + + this.func_146283_a(Arrays.asList(new String[] { EnumChatFormatting.RED + "Right click to change", label }), x, y - 30); + } + } + } + + for(int i = 0; i < custom.inputTanks.length; i++) { + custom.inputTanks[i].renderTankInfo(this, x, y, guiLeft + 8 + 18 * i, guiTop + 18, 16, 34); + } + + for(int i = 0; i < custom.outputTanks.length; i++) { + custom.outputTanks[i].renderTankInfo(this, x, y, guiLeft + 78 + 18 * i, guiTop + 18, 16, 34); + } + } + @Override protected void drawGuiContainerForegroundLayer(int i, int j) { String name = this.custom.getInventoryName(); @@ -37,6 +77,16 @@ public class GUIMachineCustom extends GuiInfoContainer { Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + int p = custom.progress * 90 / custom.maxProgress; + drawTexturedModalRect(guiLeft + 78, guiTop + 119, 192, 0, Math.min(p, 44), 16); + if(p > 44) { + p-= 44; + drawTexturedModalRect(guiLeft + 78 + 44, guiTop + 119, 192, 16, p, 16); + } + + int e = (int) (custom.power * 52 / custom.config.maxPower); + drawTexturedModalRect(guiLeft + 150, guiTop + 70 - e, 176, 52 - e, 16, e); + for(int i = 0; i < 2; i++) { for(int j = 0; j < 3; j++) { int index = i * 3 + j; @@ -58,6 +108,14 @@ public class GUIMachineCustom extends GuiInfoContainer { drawTexturedModalRect(guiLeft + 77 + i * 18, guiTop + 17, 192 + i * 18, 32, 18, 36); } } + + for(int i = 0; i < custom.inputTanks.length; i++) { + custom.inputTanks[i].renderTank(guiLeft + 8 + 18 * i, guiTop + 52, this.zLevel, 16, 34); + } + + for(int i = 0; i < custom.outputTanks.length; i++) { + custom.outputTanks[i].renderTank(guiLeft + 78 + 18 * i, guiTop + 52, this.zLevel, 16, 34); + } } } diff --git a/src/main/java/com/hbm/tileentity/TileEntityProxyBase.java b/src/main/java/com/hbm/tileentity/TileEntityProxyBase.java index 182e1f1bc..bf19bb353 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityProxyBase.java +++ b/src/main/java/com/hbm/tileentity/TileEntityProxyBase.java @@ -3,16 +3,27 @@ package com.hbm.tileentity; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.IProxyController; import com.hbm.util.Compat; +import com.hbm.util.fauxpointtwelve.BlockPos; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; public class TileEntityProxyBase extends TileEntityLoadedBase { + + public BlockPos cachedPosition; public boolean canUpdate() { return false; } public TileEntity getTE() { + + if(cachedPosition != null) { + TileEntity te = Compat.getTileStandard(worldObj, cachedPosition.getX(), cachedPosition.getY(), cachedPosition.getZ()); + if(te != null && te != this) return te; + cachedPosition = null; + this.markDirty(); + } if(this.getBlockType() instanceof BlockDummyable) { @@ -36,4 +47,23 @@ public class TileEntityProxyBase extends TileEntityLoadedBase { return null; } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + if(nbt.getBoolean("hasPos")) cachedPosition = new BlockPos(nbt.getInteger("pX"), nbt.getInteger("pY"), nbt.getInteger("pZ")); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + if(this.cachedPosition != null) { + nbt.setBoolean("hasPos", true); + nbt.setInteger("pX", this.cachedPosition.getX()); + nbt.setInteger("pY", this.cachedPosition.getY()); + nbt.setInteger("pZ", this.cachedPosition.getZ()); + } + } } diff --git a/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java b/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java index c4b8404d3..18d109586 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java +++ b/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java @@ -217,7 +217,7 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy return ((IEnergyConnector)getTile()).canConnect(dir); } - return false; + return true; } @Override @@ -459,7 +459,7 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy if(getTile() instanceof IFluidConnector) { return ((IFluidConnector)getTile()).canConnect(type, dir); } - return false; + return true; } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java index 28bfe2dbe..5133d5d8b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java @@ -1,38 +1,56 @@ package com.hbm.tileentity.machine; +import java.util.ArrayList; +import java.util.List; + import com.hbm.config.CustomMachineConfigJSON; import com.hbm.config.CustomMachineConfigJSON.MachineConfiguration; import com.hbm.config.CustomMachineConfigJSON.MachineConfiguration.ComponentDefinition; +import com.hbm.inventory.FluidStack; import com.hbm.inventory.container.ContainerMachineCustom; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIMachineCustom; +import com.hbm.inventory.recipes.CustomMachineRecipes; +import com.hbm.inventory.recipes.CustomMachineRecipes.CustomMachineRecipe; +import com.hbm.lib.Library; import com.hbm.module.ModulePatternMatcher; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.tileentity.TileEntityProxyBase; +import com.hbm.util.Compat; +import com.hbm.util.fauxpointtwelve.BlockPos; +import com.hbm.util.fauxpointtwelve.DirPos; +import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; +import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityCustomMachine extends TileEntityMachineBase implements IGUIProvider { +public class TileEntityCustomMachine extends TileEntityMachineBase implements IFluidStandardTransceiver, IGUIProvider { public String machineType; public MachineConfiguration config; public long power; public int progress; + public int maxProgress = 1; public FluidTank[] inputTanks; public FluidTank[] outputTanks; public ModulePatternMatcher matcher; public int structureCheckDelay; public boolean structureOK = false; + public CustomMachineRecipe cachedRecipe; + + public List connectionPos = new ArrayList(); public TileEntityCustomMachine() { /* @@ -77,14 +95,80 @@ public class TileEntityCustomMachine extends TileEntityMachineBase implements IG worldObj.func_147480_a(xCoord, yCoord, zCoord, false); return; } + + this.power = Library.chargeTEFromItems(slots, 0, power, this.config.maxPower); + + if(this.inputTanks.length > 0) this.inputTanks[0].setType(1, slots); + if(this.inputTanks.length > 1) this.inputTanks[1].setType(2, slots); + if(this.inputTanks.length > 2) this.inputTanks[2].setType(3, slots); this.structureCheckDelay--; if(this.structureCheckDelay <= 0) this.checkStructure(); + if(this.worldObj.getTotalWorldTime() % 20 == 0) { + for(DirPos pos : this.connectionPos) { + for(FluidTank tank : this.inputTanks) { + this.trySubscribe(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + } + + if(this.structureOK) { + + if(config.generatorMode) { + if(this.cachedRecipe == null) { + CustomMachineRecipe recipe = this.getMatchingRecipe(); + if(this.hasRequiredQuantities(recipe) && this.hasSpace(recipe)) { + this.cachedRecipe = recipe; + this.useUpInput(recipe); + } + } + + if(this.cachedRecipe != null) { + this.maxProgress = (int) Math.max(cachedRecipe.duration / this.config.recipeSpeedMult, 1); + int powerReq = (int) Math.max(cachedRecipe.consumptionPerTick * this.config.recipeConsumptionMult, 1); + + this.progress++; + this.power += powerReq; + if(power > config.maxPower) power = config.maxPower; + + if(progress >= this.maxProgress) { + this.progress = 0; + this.processRecipe(cachedRecipe); + this.cachedRecipe = null; + } + } + + } else { + CustomMachineRecipe recipe = this.getMatchingRecipe(); + + if(recipe != null) { + this.maxProgress = (int) Math.max(recipe.duration / this.config.recipeSpeedMult, 1); + int powerReq = (int) Math.max(recipe.consumptionPerTick * this.config.recipeConsumptionMult, 1); + + if(this.power >= powerReq && this.hasRequiredQuantities(recipe) && this.hasSpace(recipe)) { + this.progress++; + this.power -= powerReq; + + if(progress >= this.maxProgress) { + this.progress = 0; + this.useUpInput(recipe); + this.processRecipe(recipe); + } + } + } else { + this.progress = 0; + } + } + } else { + this.progress = 0; + } + NBTTagCompound data = new NBTTagCompound(); data.setString("type", this.machineType); data.setLong("power", power); data.setInteger("progress", progress); + data.setInteger("maxProgress", maxProgress); for(int i = 0; i < inputTanks.length; i++) inputTanks[i].writeToNBT(data, "i" + i); for(int i = 0; i < outputTanks.length; i++) outputTanks[i].writeToNBT(data, "o" + i); this.matcher.writeToNBT(data); @@ -92,8 +176,88 @@ public class TileEntityCustomMachine extends TileEntityMachineBase implements IG } } + /** Only accepts inputs in a fixed order, saves a ton of performance because there's no permutations to check for */ + public CustomMachineRecipe getMatchingRecipe() { + List recipes = CustomMachineRecipes.recipes.get(this.machineType); + if(recipes == null || recipes.isEmpty()) return null; + + outer: + for(CustomMachineRecipe recipe : recipes) { + for(int i = 0; i < recipe.inputFluids.length; i++) { + if(this.inputTanks[i].getTankType() != recipe.inputFluids[i].type || this.inputTanks[i].getPressure() != recipe.inputFluids[i].pressure) continue outer; + } + + for(int i = 0; i < recipe.inputItems.length; i++) { + if(recipe.inputItems[i] != null && slots[i + 4] == null) continue outer; + if(!recipe.inputItems[i].matchesRecipe(slots[i + 4], true)) continue outer; + } + + return recipe; + } + + return null; + } + + public boolean hasRequiredQuantities(CustomMachineRecipe recipe) { + + for(int i = 0; i < recipe.inputFluids.length; i++) { + if(this.inputTanks[i].getFill() < recipe.inputFluids[i].fill) return false; + } + + for(int i = 0; i < recipe.inputItems.length; i++) { + if(slots[i + 4] != null && slots[i + 4].stackSize < recipe.inputItems[i].stacksize) return false; + } + + return true; + } + + public boolean hasSpace(CustomMachineRecipe recipe) { + + for(int i = 0; i < recipe.outputFluids.length; i++) { + if(this.outputTanks[i].getTankType() == recipe.outputFluids[i].type && this.outputTanks[i].getFill() + recipe.outputFluids[i].fill > this.outputTanks[i].getMaxFill()) return false; + } + + for(int i = 0; i < recipe.outputItems.length; i++) { + if(slots[i + 16] != null && (slots[i + 16].getItem() != recipe.outputItems[i].key.getItem() || slots[i + 16].getItemDamage() != recipe.outputItems[i].key.getItemDamage())) return false; + if(slots[i + 16] != null && slots[16 + i].stackSize + recipe.outputItems[i].key.stackSize > slots[i + 16].getMaxStackSize()) return false; + } + + return true; + } + + public void useUpInput(CustomMachineRecipe recipe) { + + for(int i = 0; i < recipe.inputFluids.length; i++) { + this.inputTanks[i].setFill(this.inputTanks[i].getFill() - recipe.inputFluids[i].fill); + } + + for(int i = 0; i < recipe.inputItems.length; i++) { + this.decrStackSize(i + 4, recipe.inputItems[i].stacksize); + } + } + + public void processRecipe(CustomMachineRecipe recipe) { + + for(int i = 0; i < recipe.outputFluids.length; i++) { + if(this.outputTanks[i].getTankType() != recipe.outputFluids[i].type) this.outputTanks[i].setTankType(recipe.outputFluids[i].type); + this.outputTanks[i].setFill(this.outputTanks[i].getFill() + recipe.outputFluids[i].fill); + } + + for(int i = 0; i < recipe.outputItems.length; i++) { + + if(worldObj.rand.nextFloat() < recipe.outputItems[i].value) { + if(slots[i + 16] == null) { + slots[i + 16] = recipe.outputItems[i].key.copy(); + } else { + slots[i + 16].stackSize += recipe.outputItems[i].key.stackSize; + } + } + } + } + public boolean checkStructure() { + this.connectionPos.clear(); this.structureCheckDelay = 300; this.structureOK = false; if(this.config == null) return false; @@ -120,6 +284,21 @@ public class TileEntityCustomMachine extends TileEntityMachineBase implements IG int meta = worldObj.getBlockMetadata(x, y, z); if(!comp.allowedMetas.contains(meta)) return false; + + TileEntity tile = Compat.getTileStandard(worldObj, x, y, z); + if(tile instanceof TileEntityProxyBase) { + TileEntityProxyBase proxy = (TileEntityProxyBase) tile; + proxy.cachedPosition = new BlockPos(xCoord, yCoord, zCoord); + proxy.markDirty(); + + for(ForgeDirection facing : ForgeDirection.VALID_DIRECTIONS) { + this.connectionPos.add(new DirPos(x + facing.offsetX, y + facing.offsetY, z + facing.offsetZ, facing)); + } + } + } + + for(ForgeDirection facing : ForgeDirection.VALID_DIRECTIONS) { + this.connectionPos.add(new DirPos(xCoord + facing.offsetX, yCoord + facing.offsetY, zCoord + facing.offsetZ, facing)); } this.structureOK = true; @@ -147,6 +326,35 @@ public class TileEntityCustomMachine extends TileEntityMachineBase implements IG } } + @Override + public int[] getAccessibleSlotsFromSide(int side) { + if(this.config == null) return new int[] { }; + if(this.config.itemInCount > 0) return new int[] { 4, 16, 17, 18, 19, 20, 21 }; + if(this.config.itemInCount > 1) return new int[] { 4, 5, 16, 17, 18, 19, 20, 21 }; + if(this.config.itemInCount > 2) return new int[] { 4, 5, 6, 16, 17, 18, 19, 20, 21 }; + if(this.config.itemInCount > 3) return new int[] { 4, 5, 6, 7, 16, 17, 18, 19, 20, 21 }; + if(this.config.itemInCount > 4) return new int[] { 4, 5, 6, 7, 8, 16, 17, 18, 19, 20, 21 }; + if(this.config.itemInCount > 5) return new int[] { 4, 5, 6, 7, 8, 9, 16, 17, 18, 19, 20, 21 }; + return new int[] { }; + } + + @Override + public boolean canExtractItem(int i, ItemStack stack, int j) { + return i >= 16 && i <= 21; + } + + @Override + public boolean isItemValidForSlot(int slot, ItemStack stack) { + if(slot < 4 || slot > 9) return false; + + int index = slot - 4; + int filterSlot = slot + 6; + + if(slots[filterSlot] == null) return true; + + return matcher.isValidForFilter(slots[filterSlot], index, stack); + } + @Override public void networkUnpack(NBTTagCompound nbt) { this.machineType = nbt.getString("type"); @@ -154,6 +362,7 @@ public class TileEntityCustomMachine extends TileEntityMachineBase implements IG this.power = nbt.getLong("power"); this.progress = nbt.getInteger("progress"); + this.maxProgress = nbt.getInteger("maxProgress"); for(int i = 0; i < inputTanks.length; i++) inputTanks[i].readFromNBT(nbt, "i" + i); for(int i = 0; i < outputTanks.length; i++) outputTanks[i].readFromNBT(nbt, "o" + i); @@ -167,16 +376,24 @@ public class TileEntityCustomMachine extends TileEntityMachineBase implements IG this.init(); super.readFromNBT(nbt); - - for(int i = 0; i < inputTanks.length; i++) inputTanks[i].readFromNBT(nbt, "i" + i); - for(int i = 0; i < outputTanks.length; i++) outputTanks[i].readFromNBT(nbt, "o" + i); - this.matcher.readFromNBT(nbt); + if(this.config != null) { + + for(int i = 0; i < inputTanks.length; i++) inputTanks[i].readFromNBT(nbt, "i" + i); + for(int i = 0; i < outputTanks.length; i++) outputTanks[i].readFromNBT(nbt, "o" + i); + + this.matcher.readFromNBT(nbt); + } } @Override public void writeToNBT(NBTTagCompound nbt) { + if(machineType == null || this.config == null) { + super.writeToNBT(nbt); + return; + } + nbt.setString("machineType", machineType); super.writeToNBT(nbt); @@ -187,6 +404,27 @@ public class TileEntityCustomMachine extends TileEntityMachineBase implements IG this.matcher.writeToNBT(nbt); } + @Override + public FluidTank[] getAllTanks() { + + FluidTank[] all = new FluidTank[inputTanks.length + outputTanks.length]; + + for(int i = 0; i < inputTanks.length; i++) all[i] = inputTanks[i]; + for(int i = 0; i < outputTanks.length; i++) all[inputTanks.length + i] = outputTanks[i]; + + return all; + } + + @Override + public FluidTank[] getSendingTanks() { + return outputTanks != null ? outputTanks : new FluidTank[0]; + } + + @Override + public FluidTank[] getReceivingTanks() { + return inputTanks != null ? inputTanks : new FluidTank[0]; + } + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { if(this.config == null) return null; From 0fdfae999e7aab74966fb7fcd5193e14f0153c31 Mon Sep 17 00:00:00 2001 From: Bob Date: Wed, 19 Jul 2023 14:45:32 +0200 Subject: [PATCH 207/432] hey shitass, stop fucking with my gitignore --- .gitignore | 18 -- .../hbm/config/CustomMachineConfigJSON.java | 197 ++++++++++++++++++ .../machine/TileEntityCustomMachine.java | 62 +++++- 3 files changed, 257 insertions(+), 20 deletions(-) create mode 100644 src/main/java/com/hbm/config/CustomMachineConfigJSON.java diff --git a/.gitignore b/.gitignore index 776998c18..22222fc39 100644 --- a/.gitignore +++ b/.gitignore @@ -26,21 +26,3 @@ run # Changelog backup /changelog.bak - -screenshots/ - -saves/ - -usernamecache.json - -options.txt - -logs/ - -doc/ - -crash-reports/ - -config/ - -asm/ diff --git a/src/main/java/com/hbm/config/CustomMachineConfigJSON.java b/src/main/java/com/hbm/config/CustomMachineConfigJSON.java new file mode 100644 index 000000000..750fb8733 --- /dev/null +++ b/src/main/java/com/hbm/config/CustomMachineConfigJSON.java @@ -0,0 +1,197 @@ +package com.hbm.config; + +import java.io.File; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; +import com.hbm.config.CustomMachineConfigJSON.MachineConfiguration.ComponentDefinition; +import com.hbm.main.MainRegistry; + +import net.minecraft.block.Block; + +public class CustomMachineConfigJSON { + + public static final Gson gson = new Gson(); + public static HashMap customMachines = new HashMap(); + + public static void initialize() { + File folder = MainRegistry.configHbmDir; + + File config = new File(folder.getAbsolutePath() + File.separatorChar + "hbmCustomMachines.json"); + + if(!config.exists()) { + writeDefault(config); + } + + readConfig(config); + } + + public static void writeDefault(File config) { + + try { + JsonWriter writer = new JsonWriter(new FileWriter(config)); + writer.setIndent(" "); + writer.beginObject(); + writer.name("machines").beginArray(); + + writer.beginObject(); + writer.name("recipeKey").value("paperPress"); + writer.name("unlocalizedName").value("paperPress"); + writer.name("localizedName").value("Paper Press"); + writer.name("fluidInCount").value(1); + writer.name("fluidInCap").value(1_000); + writer.name("itemInCount").value(1); + writer.name("fluidOutCount").value(0); + writer.name("fluidOutCap").value(0); + writer.name("itemOutCount").value(1); + writer.name("generatorMode").value(false); + writer.name("recipeSpeedMult").value(1.0D); + writer.name("recipeConsumptionMult").value(1.0D); + writer.name("maxPower").value(10_000L); + + writer.name("components").beginArray(); + + for(int x = -1; x <= 1; x++) { + for(int y = -1; y <= 1; y++) { + for(int z = 0; z <= 2; z++) { + if(!(x == 0 && y == 0 && z == 1) && !(x == 0 && z == 0)) { + writer.beginObject().setIndent(""); + writer.name("block").value(y == 0 ? "hbm:tile.cm_sheet" : "hbm:tile.cm_block"); + writer.name("x").value(x); + writer.name("y").value(y); + writer.name("z").value(z); + writer.name("metas").beginArray(); + writer.value(0); + writer.endArray(); + writer.endObject().setIndent(" "); + } + } + } + } + + writer.beginObject().setIndent(""); + writer.name("block").value("hbm:tile.cm_port"); + writer.name("x").value(0); + writer.name("y").value(-1); + writer.name("z").value(0); + writer.name("metas").beginArray(); + writer.value(0); + writer.endArray(); + writer.endObject().setIndent(" "); + + writer.beginObject().setIndent(""); + writer.name("block").value("hbm:tile.cm_port"); + writer.name("x").value(0); + writer.name("y").value(1); + writer.name("z").value(0); + writer.name("metas").beginArray(); + writer.value(0); + writer.endArray(); + writer.endObject().setIndent(" "); + + writer.endArray(); + writer.endObject(); + + writer.endArray(); + writer.endObject(); + writer.close(); + } catch(IOException e) { + e.printStackTrace(); + } + } + + public static void readConfig(File config) { + + try { + JsonObject json = gson.fromJson(new FileReader(config), JsonObject.class); + JsonArray machines = json.get("machines").getAsJsonArray(); + + for(int i = 0; i < machines.size(); i++) { + JsonObject machineObject = machines.get(i).getAsJsonObject(); + + MachineConfiguration configuration = new MachineConfiguration(); + configuration.recipeKey = machineObject.get("recipeKey").getAsString(); + configuration.unlocalizedName = machineObject.get("unlocalizedName").getAsString(); + configuration.localizedName = machineObject.get("localizedName").getAsString(); + configuration.fluidInCount = machineObject.get("fluidInCount").getAsInt(); + configuration.fluidInCap = machineObject.get("fluidInCap").getAsInt(); + configuration.itemInCount = machineObject.get("itemInCount").getAsInt(); + configuration.fluidOutCount = machineObject.get("fluidOutCount").getAsInt(); + configuration.fluidOutCap = machineObject.get("fluidOutCap").getAsInt(); + configuration.itemOutCount = machineObject.get("itemOutCount").getAsInt(); + configuration.generatorMode = machineObject.get("generatorMode").getAsBoolean(); + configuration.recipeSpeedMult = machineObject.get("recipeSpeedMult").getAsDouble(); + configuration.recipeConsumptionMult = machineObject.get("recipeConsumptionMult").getAsDouble(); + configuration.maxPower = machineObject.get("maxPower").getAsLong(); + + JsonArray components = machineObject.get("components").getAsJsonArray(); + configuration.components = new ArrayList(); + + for(int j = 0; j < components.size(); j++) { + JsonObject compObject = components.get(j).getAsJsonObject(); + ComponentDefinition compDef = new ComponentDefinition(); + compDef.block = (Block) Block.blockRegistry.getObject(compObject.get("block").getAsString()); + compDef.x = compObject.get("x").getAsInt(); + compDef.y = compObject.get("y").getAsInt(); + compDef.z = compObject.get("z").getAsInt(); + compDef.allowedMetas = new HashSet(); + JsonArray metas = compObject.get("metas").getAsJsonArray(); + for(int k = 0; k < metas.size(); k++) { + compDef.allowedMetas.add(metas.get(k).getAsInt()); + } + + configuration.components.add(compDef); + } + + customMachines.put(configuration.unlocalizedName, configuration); + } + + } catch(Exception ex) { + ex.printStackTrace(); + } + } + + public static class MachineConfiguration { + + /** The name of the recipe set that this machine can handle */ + public String recipeKey; + /** The internal name of this machine */ + public String unlocalizedName; + /** The display name of this machine */ + public String localizedName; + + public int fluidInCount; + public int fluidInCap; + public int itemInCount; + public int fluidOutCount; + public int fluidOutCap; + public int itemOutCount; + /** Whether inputs should be used up when the process begins */ + public boolean generatorMode; + + public double recipeSpeedMult = 1D; + public double recipeConsumptionMult = 1D; + public long maxPower; + + /** Definitions of blocks that this machine is composed of */ + public List components; + + public static class ComponentDefinition { + public Block block; + public Set allowedMetas; + public int x; + public int y; + public int z; + } + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java index 5133d5d8b..700da5e04 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java @@ -22,6 +22,7 @@ import com.hbm.util.Compat; import com.hbm.util.fauxpointtwelve.BlockPos; import com.hbm.util.fauxpointtwelve.DirPos; +import api.hbm.energy.IEnergyUser; import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -35,7 +36,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityCustomMachine extends TileEntityMachineBase implements IFluidStandardTransceiver, IGUIProvider { +public class TileEntityCustomMachine extends TileEntityMachineBase implements IFluidStandardTransceiver, IEnergyUser, IGUIProvider { public String machineType; public MachineConfiguration config; @@ -110,6 +111,13 @@ public class TileEntityCustomMachine extends TileEntityMachineBase implements IF for(FluidTank tank : this.inputTanks) { this.trySubscribe(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } + if(!config.generatorMode) this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + + if(config.generatorMode && power > 0) { + for(DirPos pos : this.connectionPos) { + this.sendPower(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } } @@ -118,7 +126,7 @@ public class TileEntityCustomMachine extends TileEntityMachineBase implements IF if(config.generatorMode) { if(this.cachedRecipe == null) { CustomMachineRecipe recipe = this.getMatchingRecipe(); - if(this.hasRequiredQuantities(recipe) && this.hasSpace(recipe)) { + if(recipe != null && this.hasRequiredQuantities(recipe) && this.hasSpace(recipe)) { this.cachedRecipe = recipe; this.useUpInput(recipe); } @@ -384,6 +392,11 @@ public class TileEntityCustomMachine extends TileEntityMachineBase implements IF this.matcher.readFromNBT(nbt); } + + int index = nbt.getInteger("cachedIndex"); + if(index != -1) { + this.cachedRecipe = CustomMachineRecipes.recipes.get(this.machineType).get(index); + } } @Override @@ -402,6 +415,13 @@ public class TileEntityCustomMachine extends TileEntityMachineBase implements IF for(int i = 0; i < outputTanks.length; i++) outputTanks[i].writeToNBT(nbt, "o" + i); this.matcher.writeToNBT(nbt); + + if(this.cachedRecipe != null) { + int index = CustomMachineRecipes.recipes.get(this.machineType).indexOf(this.cachedRecipe); + nbt.setInteger("cachedIndex", index); + } else { + nbt.setInteger("cachedIndex", -1); + } } @Override @@ -437,4 +457,42 @@ public class TileEntityCustomMachine extends TileEntityMachineBase implements IF if(this.config == null) return null; return new GUIMachineCustom(player.inventory, this); } + + @Override + public long getPower() { + return this.power; + } + + @Override + public long getMaxPower() { + return this.config != null ? this.getMaxPower() : 1; + } + + @Override + public void setPower(long power) { + this.power = power; + } + + @Override + public long transferPower(long power) { + if(this.config != null && this.config.generatorMode) return power; + + this.setPower(this.getPower() + power); + + if(this.getPower() > this.getMaxPower()) { + + long overshoot = this.getPower() - this.getMaxPower(); + this.setPower(this.getMaxPower()); + return overshoot; + } + + return 0; + } + + @Override + public long getTransferWeight() { + if(this.config != null && this.config.generatorMode) return 0; + + return Math.max(getMaxPower() - getPower(), 0); + } } From 0a0af7e3630183b89da34e5b54cd2fddeaf6b4f2 Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Thu, 20 Jul 2023 20:41:21 -0500 Subject: [PATCH 208/432] changed concrete bricks and rebar reinforced concrete blast resistances to be more reasonable as per their recipes --- changelog | 1 + src/main/java/com/hbm/blocks/ModBlocks.java | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/changelog b/changelog index ec89d27e1..d6afda003 100644 --- a/changelog +++ b/changelog @@ -9,3 +9,4 @@ * Standard glyphids now have a base health of 100 * Glyphid scouts are now immune to fire and explosive damage, have a 50% damage reduction against projectiles and have passive regeneration * Increased hive block blast resistance, they can no longer be blown up wiith conventional explosives +* Rebar reinforced concrete and concrete bricks now have an appropriate blast resistance. \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 55b367285..c1b4181fb 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1554,9 +1554,9 @@ public class ModBlocks { concrete_asbestos = new BlockGeneric(Material.rock).setBlockName("concrete_asbestos").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(4000.0F).setBlockTextureName(RefStrings.MODID + ":concrete_asbestos"); concrete_super = new BlockUberConcrete().setBlockName("concrete_super").setCreativeTab(MainRegistry.blockTab).setHardness(150.0F).setResistance(10000.0F); concrete_super_broken = new BlockFalling(Material.rock).setBlockName("concrete_super_broken").setCreativeTab(MainRegistry.blockTab).setHardness(10.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":concrete_super_broken"); - concrete_pillar = new BlockRotatablePillar(Material.rock, RefStrings.MODID + ":concrete_pillar_top").setBlockName("concrete_pillar").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(4000.0F).setBlockTextureName(RefStrings.MODID + ":concrete_pillar_side"); - brick_concrete = new BlockGeneric(Material.rock).setBlockName("brick_concrete").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete"); - brick_concrete_mossy = new BlockGeneric(Material.rock).setBlockName("brick_concrete_mossy").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete_mossy"); + concrete_pillar = new BlockRotatablePillar(Material.rock, RefStrings.MODID + ":concrete_pillar_top").setBlockName("concrete_pillar").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":concrete_pillar_side"); + brick_concrete = new BlockGeneric(Material.rock).setBlockName("brick_concrete").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(5000.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete"); + brick_concrete_mossy = new BlockGeneric(Material.rock).setBlockName("brick_concrete_mossy").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(5000.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete_mossy"); brick_concrete_cracked = new BlockGeneric(Material.rock).setBlockName("brick_concrete_cracked").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(2000.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete_cracked"); brick_concrete_broken = new BlockGeneric(Material.rock).setBlockName("brick_concrete_broken").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(1500.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete_broken"); brick_concrete_marked = new BlockWriting(Material.rock, RefStrings.MODID + ":brick_concrete").setBlockName("brick_concrete_marked").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(1500.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete_marked"); From 4bc09afb1f93b2f6d2cd3647a02f4c4296a4ab49 Mon Sep 17 00:00:00 2001 From: Bob Date: Sat, 22 Jul 2023 18:30:32 +0200 Subject: [PATCH 209/432] even more custom machine crap --- src/main/java/com/hbm/blocks/BlockEnums.java | 8 +++ src/main/java/com/hbm/blocks/ModBlocks.java | 15 ++-- .../blocks/machine/BlockCustomMachine.java | 10 +-- .../hbm/config/CustomMachineConfigJSON.java | 65 +++++++++++++++++- .../handler/pollution/PollutionHandler.java | 7 +- .../recipes/loader/SerializableRecipe.java | 24 +++---- src/main/java/com/hbm/items/ModItems.java | 58 ---------------- .../hbm/items/block/ItemCustomMachine.java | 8 +-- .../java/com/hbm/items/food/ItemFlask.java | 4 +- src/main/java/com/hbm/main/MainRegistry.java | 27 ++++++++ .../machine/TileEntityMachineRadar.java | 4 +- src/main/resources/assets/hbm/lang/en_US.lang | 19 +++++ .../textures/blocks/cm_circuit_aluminium.png | Bin 0 -> 525 bytes .../hbm/textures/blocks/cm_circuit_copper.png | Bin 0 -> 569 bytes .../hbm/textures/blocks/cm_circuit_gold.png | Bin 0 -> 532 bytes .../textures/blocks/cm_circuit_red_copper.png | Bin 0 -> 541 bytes .../blocks/cm_circuit_schrabidium.png | Bin 0 -> 581 bytes 17 files changed, 155 insertions(+), 94 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/blocks/cm_circuit_aluminium.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/cm_circuit_copper.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/cm_circuit_gold.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/cm_circuit_red_copper.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/cm_circuit_schrabidium.png diff --git a/src/main/java/com/hbm/blocks/BlockEnums.java b/src/main/java/com/hbm/blocks/BlockEnums.java index f1119ce64..6bb64b079 100644 --- a/src/main/java/com/hbm/blocks/BlockEnums.java +++ b/src/main/java/com/hbm/blocks/BlockEnums.java @@ -33,6 +33,14 @@ public class BlockEnums { DESH, BISMUTH } + + public static enum EnumCMCircuit { + ALUMINIUM, + COPPER, + RED_COPPER, + GOLD, + SCHRABIDIUM + } /** DECO / STRUCTURE ENUMS */ //i apologize in advance diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 55b367285..7783f7652 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -868,6 +868,7 @@ public class ModBlocks { public static Block cm_sheet; public static Block cm_engine; public static Block cm_tank; + public static Block cm_circuit; public static Block cm_port; public static Block custom_machine; @@ -2020,12 +2021,13 @@ public class ModBlocks { factory_advanced_furnace = new FactoryHatch(Material.iron).setBlockName("factory_advanced_furnace").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":factory_advanced_furnace"); factory_advanced_conductor = new BlockPillar(Material.iron, RefStrings.MODID + ":factory_advanced_conductor").setBlockName("factory_advanced_conductor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":factory_advanced_hull"); - cm_block = new BlockCM(Material.iron, EnumCMMaterials.class, true, true).setBlockName("cm_block").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":cm_block"); - cm_sheet = new BlockCM(Material.iron, EnumCMMaterials.class, true, true).setBlockName("cm_sheet").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":cm_sheet"); - cm_engine = new BlockCM(Material.iron, EnumCMEngines.class, true, true).setBlockName("cm_engine").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":cm_engine"); - cm_tank = new BlockCMGlass(Material.iron, EnumCMMaterials.class, true, true).setBlockName("cm_tank").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":cm_tank"); - cm_port = new BlockCMPort(Material.iron, EnumCMMaterials.class, true, true).setBlockName("cm_port").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":cm_port"); - custom_machine = new BlockCustomMachine().setBlockName("custom_machine").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F); + cm_block = new BlockCM(Material.iron, EnumCMMaterials.class, true, true).setBlockName("cm_block").setCreativeTab(MainRegistry.machineTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":cm_block"); + cm_sheet = new BlockCM(Material.iron, EnumCMMaterials.class, true, true).setBlockName("cm_sheet").setCreativeTab(MainRegistry.machineTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":cm_sheet"); + cm_engine = new BlockCM(Material.iron, EnumCMEngines.class, true, true).setBlockName("cm_engine").setCreativeTab(MainRegistry.machineTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":cm_engine"); + cm_tank = new BlockCMGlass(Material.iron, EnumCMMaterials.class, true, true).setBlockName("cm_tank").setCreativeTab(MainRegistry.machineTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":cm_tank"); + cm_circuit = new BlockCM(Material.iron, EnumCMCircuit.class, true, true).setBlockName("cm_circuit").setCreativeTab(MainRegistry.machineTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":cm_circuit"); + cm_port = new BlockCMPort(Material.iron, EnumCMMaterials.class, true, true).setBlockName("cm_port").setCreativeTab(MainRegistry.machineTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":cm_port"); + custom_machine = new BlockCustomMachine().setBlockName("custom_machine").setCreativeTab(MainRegistry.machineTab).setHardness(5.0F).setResistance(10.0F); reactor_element = new BlockPillar(Material.iron, RefStrings.MODID + ":reactor_element_top", RefStrings.MODID + ":reactor_element_base").setBlockName("reactor_element").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":reactor_element_side"); reactor_control = new BlockPillar(Material.iron, RefStrings.MODID + ":reactor_control_top").setBlockName("reactor_control").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":reactor_control_side"); @@ -3351,6 +3353,7 @@ public class ModBlocks { register(cm_sheet); register(cm_engine); register(cm_tank); + register(cm_circuit); register(cm_port); //Multiblock Generators diff --git a/src/main/java/com/hbm/blocks/machine/BlockCustomMachine.java b/src/main/java/com/hbm/blocks/machine/BlockCustomMachine.java index 469d11f25..e007403ef 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockCustomMachine.java +++ b/src/main/java/com/hbm/blocks/machine/BlockCustomMachine.java @@ -2,6 +2,7 @@ package com.hbm.blocks.machine; import java.util.ArrayList; +import com.hbm.config.CustomMachineConfigJSON; import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; @@ -49,6 +50,7 @@ public class BlockCustomMachine extends BlockContainer { @Override @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int metadata) { + if(metadata >= 100) return side == 3 ? this.iconFront : this.blockIcon; return metadata == 0 && side == 3 ? this.iconFront : (side == metadata ? this.iconFront : this.blockIcon); } @@ -116,15 +118,14 @@ public class BlockCustomMachine extends BlockContainer { Item item = getItemDropped(metadata, world.rand, fortune); if(item != null) { - ItemStack stack = new ItemStack(item); TileEntityCustomMachine tile = (TileEntityCustomMachine) world.getTileEntity(x, y, z); if(tile != null) { + ItemStack stack = new ItemStack(item, 1, CustomMachineConfigJSON.niceList.indexOf(tile.config) + 100); stack.stackTagCompound = new NBTTagCompound(); stack.stackTagCompound.setString("machineType", tile.machineType); + ret.add(stack); } - - ret.add(stack); } return ret; @@ -134,10 +135,9 @@ public class BlockCustomMachine extends BlockContainer { public ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z) { //using the deprecated one to make NEI happy TileEntityCustomMachine tile = (TileEntityCustomMachine) world.getTileEntity(x, y, z); - - ItemStack stack = new ItemStack(this); if(tile != null && tile.machineType != null && !tile.machineType.isEmpty()) { + ItemStack stack = new ItemStack(this, 1, CustomMachineConfigJSON.niceList.indexOf(tile.config) + 100); stack.stackTagCompound = new NBTTagCompound(); stack.stackTagCompound.setString("machineType", tile.machineType); return stack; diff --git a/src/main/java/com/hbm/config/CustomMachineConfigJSON.java b/src/main/java/com/hbm/config/CustomMachineConfigJSON.java index 750fb8733..886a7741a 100644 --- a/src/main/java/com/hbm/config/CustomMachineConfigJSON.java +++ b/src/main/java/com/hbm/config/CustomMachineConfigJSON.java @@ -14,15 +14,26 @@ import com.google.gson.Gson; import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; +import com.hbm.blocks.ModBlocks; import com.hbm.config.CustomMachineConfigJSON.MachineConfiguration.ComponentDefinition; +import com.hbm.inventory.OreDictManager; +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.inventory.RecipesCommon.OreDictStack; +import com.hbm.inventory.recipes.loader.SerializableRecipe; +import com.hbm.items.ModItems; +import com.hbm.main.CraftingManager; import com.hbm.main.MainRegistry; import net.minecraft.block.Block; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; public class CustomMachineConfigJSON { public static final Gson gson = new Gson(); public static HashMap customMachines = new HashMap(); + public static List niceList = new ArrayList(); public static void initialize() { File folder = MainRegistry.configHbmDir; @@ -59,12 +70,27 @@ public class CustomMachineConfigJSON { writer.name("recipeConsumptionMult").value(1.0D); writer.name("maxPower").value(10_000L); + writer.name("recipeShape").beginArray(); + writer.value("IPI").value("PCP").value("IPI"); + writer.endArray(); + + writer.name("recipeParts").beginArray().setIndent(""); + writer.value("I"); + SerializableRecipe.writeAStack(new OreDictStack(OreDictManager.STEEL.ingot()), writer); + writer.setIndent(""); + writer.value("P"); + SerializableRecipe.writeAStack(new OreDictStack(OreDictManager.STEEL.plate()), writer); + writer.setIndent(""); + writer.value("C"); + SerializableRecipe.writeAStack(new ComparableStack(ModItems.circuit_aluminium), writer); + writer.endArray().setIndent(" "); + writer.name("components").beginArray(); for(int x = -1; x <= 1; x++) { for(int y = -1; y <= 1; y++) { for(int z = 0; z <= 2; z++) { - if(!(x == 0 && y == 0 && z == 1) && !(x == 0 && z == 0)) { + if(!(x == 0 && y == 0 && z == 1) && !(x == 0 && z == 1) && !(x == 0 && y == 0 && z == 0)) { writer.beginObject().setIndent(""); writer.name("block").value(y == 0 ? "hbm:tile.cm_sheet" : "hbm:tile.cm_block"); writer.name("x").value(x); @@ -83,7 +109,7 @@ public class CustomMachineConfigJSON { writer.name("block").value("hbm:tile.cm_port"); writer.name("x").value(0); writer.name("y").value(-1); - writer.name("z").value(0); + writer.name("z").value(1); writer.name("metas").beginArray(); writer.value(0); writer.endArray(); @@ -93,7 +119,7 @@ public class CustomMachineConfigJSON { writer.name("block").value("hbm:tile.cm_port"); writer.name("x").value(0); writer.name("y").value(1); - writer.name("z").value(0); + writer.name("z").value(1); writer.name("metas").beginArray(); writer.value(0); writer.endArray(); @@ -134,6 +160,38 @@ public class CustomMachineConfigJSON { configuration.recipeConsumptionMult = machineObject.get("recipeConsumptionMult").getAsDouble(); configuration.maxPower = machineObject.get("maxPower").getAsLong(); + if(machineObject.has("recipeShape") && machineObject.has("recipeParts")) { + JsonArray recipeShape = machineObject.get("recipeShape").getAsJsonArray(); + JsonArray recipeParts = machineObject.get("recipeParts").getAsJsonArray(); + + Object[] parts = new Object[recipeShape.size() + recipeParts.size()]; + + for(int j = 0; j < recipeShape.size(); j++) { + parts[j] = recipeShape.get(j).getAsString(); + } + + for(int j = 0; j < recipeParts.size(); j++) { + Object o = null; + + if(j % 2 == 0) { + o = recipeParts.get(j).getAsString().charAt(0); //god is dead and we killed him + } else { + AStack a = SerializableRecipe.readAStack(recipeParts.get(j).getAsJsonArray()); + + if(a instanceof ComparableStack) o = ((ComparableStack) a).toStack(); + if(a instanceof OreDictStack) o = ((OreDictStack) a).name; + } + + parts[j + recipeShape.size()] = o; + } + + ItemStack stack = new ItemStack(ModBlocks.custom_machine, 1, i + 100); + stack.stackTagCompound = new NBTTagCompound(); + stack.stackTagCompound.setString("machineType", configuration.unlocalizedName); + + CraftingManager.addRecipeAuto(stack, parts); + } + JsonArray components = machineObject.get("components").getAsJsonArray(); configuration.components = new ArrayList(); @@ -154,6 +212,7 @@ public class CustomMachineConfigJSON { } customMachines.put(configuration.unlocalizedName, configuration); + niceList.add(configuration); } } catch(Exception ex) { diff --git a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java index ef3752953..6f783a4f5 100644 --- a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java +++ b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java @@ -6,6 +6,7 @@ import java.io.FileOutputStream; import java.util.HashMap; import java.util.Locale; import java.util.Map.Entry; +import java.util.UUID; import com.hbm.config.RadiationConfig; @@ -304,6 +305,8 @@ public class PollutionHandler { /// MOB EFFECTS /// /////////////////// + public static final UUID maxHealth = UUID.fromString("25462f6c-2cb2-4ca8-9b47-3a011cc61207"); + public static final UUID attackDamage = UUID.fromString("8f442d7c-d03f-49f6-a040-249ae742eed9"); @SubscribeEvent public void decorateMob(LivingSpawnEvent event) { @@ -320,8 +323,8 @@ public class PollutionHandler { if(living instanceof IMob) { if(data.pollution[PollutionType.SOOT.ordinal()] > RadiationConfig.buffMobThreshold) { - if(living.getEntityAttribute(SharedMonsterAttributes.maxHealth) != null) living.getEntityAttribute(SharedMonsterAttributes.maxHealth).applyModifier(new AttributeModifier("Soot Anger Health Increase", 1D, 1)); - if(living.getEntityAttribute(SharedMonsterAttributes.attackDamage) != null) living.getEntityAttribute(SharedMonsterAttributes.attackDamage).applyModifier(new AttributeModifier("Soot Anger Damage Increase", 1.5D, 1)); + if(living.getEntityAttribute(SharedMonsterAttributes.maxHealth) != null) living.getEntityAttribute(SharedMonsterAttributes.maxHealth).applyModifier(new AttributeModifier(maxHealth, "Soot Anger Health Increase", 1D, 1)); + if(living.getEntityAttribute(SharedMonsterAttributes.attackDamage) != null) living.getEntityAttribute(SharedMonsterAttributes.attackDamage).applyModifier(new AttributeModifier(attackDamage, "Soot Anger Damage Increase", 1.5D, 1)); living.heal(living.getMaxHealth()); } } diff --git a/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java b/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java index 5e2f11a98..c719bd86c 100644 --- a/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java +++ b/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java @@ -188,7 +188,7 @@ public abstract class SerializableRecipe { * JSON IO UTIL */ - protected static AStack readAStack(JsonArray array) { + public static AStack readAStack(JsonArray array) { try { String type = array.get(0).getAsString(); int stacksize = array.size() > 2 ? array.get(2).getAsInt() : 1; @@ -206,7 +206,7 @@ public abstract class SerializableRecipe { return new ComparableStack(ModItems.nothing); } - protected static AStack[] readAStackArray(JsonArray array) { + public static AStack[] readAStackArray(JsonArray array) { try { AStack[] items = new AStack[array.size()]; for(int i = 0; i < items.length; i++) { items[i] = readAStack((JsonArray) array.get(i)); } @@ -216,7 +216,7 @@ public abstract class SerializableRecipe { return new AStack[0]; } - protected static void writeAStack(AStack astack, JsonWriter writer) throws IOException { + public static void writeAStack(AStack astack, JsonWriter writer) throws IOException { writer.beginArray(); writer.setIndent(""); if(astack instanceof ComparableStack) { @@ -236,7 +236,7 @@ public abstract class SerializableRecipe { writer.setIndent(" "); } - protected static ItemStack readItemStack(JsonArray array) { + public static ItemStack readItemStack(JsonArray array) { try { Item item = (Item) Item.itemRegistry.getObject(array.get(0).getAsString()); int stacksize = array.size() > 1 ? array.get(1).getAsInt() : 1; @@ -247,7 +247,7 @@ public abstract class SerializableRecipe { return new ItemStack(ModItems.nothing); } - protected static Pair readItemStackChance(JsonArray array) { + public static Pair readItemStackChance(JsonArray array) { try { Item item = (Item) Item.itemRegistry.getObject(array.get(0).getAsString()); int stacksize = array.size() > 2 ? array.get(1).getAsInt() : 1; @@ -259,7 +259,7 @@ public abstract class SerializableRecipe { return new Pair(new ItemStack(ModItems.nothing), 1F); } - protected static ItemStack[] readItemStackArray(JsonArray array) { + public static ItemStack[] readItemStackArray(JsonArray array) { try { ItemStack[] items = new ItemStack[array.size()]; for(int i = 0; i < items.length; i++) { items[i] = readItemStack((JsonArray) array.get(i)); } @@ -269,7 +269,7 @@ public abstract class SerializableRecipe { return new ItemStack[0]; } - protected static Pair[] readItemStackArrayChance(JsonArray array) { + public static Pair[] readItemStackArrayChance(JsonArray array) { try { Pair[] items = new Pair[array.size()]; for(int i = 0; i < items.length; i++) { items[i] = readItemStackChance((JsonArray) array.get(i)); } @@ -279,7 +279,7 @@ public abstract class SerializableRecipe { return new Pair[0]; } - protected static void writeItemStack(ItemStack stack, JsonWriter writer) throws IOException { + public static void writeItemStack(ItemStack stack, JsonWriter writer) throws IOException { writer.beginArray(); writer.setIndent(""); writer.value(Item.itemRegistry.getNameForObject(stack.getItem())); //item name @@ -289,7 +289,7 @@ public abstract class SerializableRecipe { writer.setIndent(" "); } - protected static void writeItemStackChance(Pair stack, JsonWriter writer) throws IOException { + public static void writeItemStackChance(Pair stack, JsonWriter writer) throws IOException { writer.beginArray(); writer.setIndent(""); writer.value(Item.itemRegistry.getNameForObject(stack.getKey().getItem())); //item name @@ -300,7 +300,7 @@ public abstract class SerializableRecipe { writer.setIndent(" "); } - protected static FluidStack readFluidStack(JsonArray array) { + public static FluidStack readFluidStack(JsonArray array) { try { FluidType type = Fluids.fromName(array.get(0).getAsString()); int fill = array.get(1).getAsInt(); @@ -311,7 +311,7 @@ public abstract class SerializableRecipe { return new FluidStack(Fluids.NONE, 0); } - protected static FluidStack[] readFluidArray(JsonArray array) { + public static FluidStack[] readFluidArray(JsonArray array) { try { FluidStack[] fluids = new FluidStack[array.size()]; for(int i = 0; i < fluids.length; i++) { fluids[i] = readFluidStack((JsonArray) array.get(i)); } @@ -321,7 +321,7 @@ public abstract class SerializableRecipe { return new FluidStack[0]; } - protected static void writeFluidStack(FluidStack stack, JsonWriter writer) throws IOException { + public static void writeFluidStack(FluidStack stack, JsonWriter writer) throws IOException { writer.beginArray(); writer.setIndent(""); writer.value(stack.type.getName()); //fluid type diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 91c4863de..eeb17ddfd 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -17,7 +17,6 @@ import com.hbm.items.armor.*; import com.hbm.items.armor.IArmorDisableModel.EnumPlayerPart; import com.hbm.items.bomb.*; import com.hbm.items.food.*; -import com.hbm.items.food.ItemConserve.EnumFoodType; import com.hbm.items.machine.*; import com.hbm.items.machine.ItemFELCrystal.EnumWavelengths; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; @@ -3452,34 +3451,6 @@ public class ModItems { coffee = new ItemEnergy().setUnlocalizedName("coffee").setTextureName(RefStrings.MODID + ":coffee"); coffee_radium = new ItemEnergy().setUnlocalizedName("coffee_radium").setTextureName(RefStrings.MODID + ":coffee_radium"); chocolate = new ItemPill(0).setUnlocalizedName("chocolate").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":chocolate"); - - //canned_beef = new ItemLemon(8, 5, false).setUnlocalizedName("canned_beef").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_beef"); - //canned_tuna = new ItemLemon(4, 5, false).setUnlocalizedName("canned_tuna").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_tuna"); - //canned_mystery = new ItemLemon(6, 5, false).setUnlocalizedName("canned_mystery").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_mystery"); - //canned_pashtet = new ItemLemon(4, 5, false).setUnlocalizedName("canned_pashtet").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_pashtet"); - //canned_cheese = new ItemLemon(3, 5, false).setUnlocalizedName("canned_cheese").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_cheese"); - //canned_jizz = new ItemLemon(15, 5, false).setUnlocalizedName("canned_jizz").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_jizz"); - //canned_milk = new ItemLemon(5, 5, false).setUnlocalizedName("canned_milk").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_milk"); - //canned_ass = new ItemLemon(6, 5, false).setUnlocalizedName("canned_ass").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_ass"); - //canned_pizza = new ItemLemon(8, 5, false).setUnlocalizedName("canned_pizza").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_pizza"); - //canned_tube = new ItemLemon(2, 5, false).setUnlocalizedName("canned_tube").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_tube"); - //canned_tomato = new ItemLemon(4, 5, false).setUnlocalizedName("canned_tomato").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_tomato"); - //canned_asbestos = new ItemLemon(7, 5, false).setUnlocalizedName("canned_asbestos").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_asbestos"); - //canned_bhole = new ItemLemon(10, 5, false).setUnlocalizedName("canned_bhole").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_bhole"); - //canned_hotdogs = new ItemLemon(5, 5, false).setUnlocalizedName("canned_hotdogs").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_hotdogs"); - //canned_leftovers = new ItemLemon(1, 5, false).setUnlocalizedName("canned_leftovers").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_leftovers"); - //canned_yogurt = new ItemLemon(3, 5, false).setUnlocalizedName("canned_yogurt").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_yogurt"); - //canned_stew = new ItemLemon(5, 5, false).setUnlocalizedName("canned_stew").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_stew"); - //canned_chinese = new ItemLemon(6, 5, false).setUnlocalizedName("canned_chinese").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_chinese"); - //canned_oil = new ItemLemon(3, 5, false).setUnlocalizedName("canned_oil").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_oil"); - //canned_fist = new ItemLemon(6, 5, false).setUnlocalizedName("canned_fist").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_fist"); - //canned_spam = new ItemLemon(8, 5, false).setUnlocalizedName("canned_spam").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_spam"); - //canned_fried = new ItemLemon(10, 5, false).setUnlocalizedName("canned_fried").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_fried"); - //canned_napalm = new ItemLemon(6, 5, false).setUnlocalizedName("canned_napalm").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_napalm"); - //canned_diesel = new ItemLemon(6, 5, false).setUnlocalizedName("canned_diesel").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_diesel"); - //canned_kerosene = new ItemLemon(6, 5, false).setUnlocalizedName("canned_kerosene").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_kerosene"); - //canned_recursion = new ItemLemon(1, 5, false).setUnlocalizedName("canned_recursion").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_recursion"); - //canned_bark = new ItemLemon(2, 5, false).setUnlocalizedName("canned_bark").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_bark"); canned_conserve = (ItemEnumMulti) new ItemConserve().setUnlocalizedName("canned_conserve").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned"); can_key = new Item().setUnlocalizedName("can_key").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":can_key"); @@ -8117,35 +8088,6 @@ public class ModItems { GameRegistry.registerItem(mysteryshovel, mysteryshovel.getUnlocalizedName()); GameRegistry.registerItem(memory, memory.getUnlocalizedName()); - //CONSERVE REMAP - addRemap("canned_beef", canned_conserve, EnumFoodType.BEEF); - addRemap("canned_tuna", canned_conserve, EnumFoodType.TUNA); - addRemap("canned_mystery", canned_conserve, EnumFoodType.MYSTERY); - addRemap("canned_pashtet", canned_conserve, EnumFoodType.PASHTET); - addRemap("canned_cheese", canned_conserve, EnumFoodType.CHEESE); - addRemap("canned_jizz", canned_conserve, EnumFoodType.JIZZ); - addRemap("canned_milk", canned_conserve, EnumFoodType.MILK); - addRemap("canned_ass", canned_conserve, EnumFoodType.ASS); - addRemap("canned_pizza", canned_conserve, EnumFoodType.PIZZA); - addRemap("canned_tube", canned_conserve, EnumFoodType.TUBE); - addRemap("canned_tomato", canned_conserve, EnumFoodType.TOMATO); - addRemap("canned_asbestos", canned_conserve, EnumFoodType.ASBESTOS); - addRemap("canned_bhole", canned_conserve, EnumFoodType.BHOLE); - addRemap("canned_hotdogs", canned_conserve, EnumFoodType.HOTDOGS); - addRemap("canned_leftovers", canned_conserve, EnumFoodType.LEFTOVERS); - addRemap("canned_yogurt", canned_conserve, EnumFoodType.YOGURT); - addRemap("canned_stew", canned_conserve, EnumFoodType.STEW); - addRemap("canned_chinese", canned_conserve, EnumFoodType.CHINESE); - addRemap("canned_oil", canned_conserve, EnumFoodType.OIL); - addRemap("canned_fist", canned_conserve, EnumFoodType.FIST); - addRemap("canned_spam", canned_conserve, EnumFoodType.SPAM); - addRemap("canned_fried", canned_conserve, EnumFoodType.FRIED); - addRemap("canned_napalm", canned_conserve, EnumFoodType.NAPALM); - addRemap("canned_diesel", canned_conserve, EnumFoodType.DIESEL); - addRemap("canned_kerosene", canned_conserve, EnumFoodType.KEROSENE); - addRemap("canned_recursion", canned_conserve, EnumFoodType.RECURSION); - addRemap("canned_bark", canned_conserve, EnumFoodType.BARK); - addRemap("rod_zirnox_natural_uranium_fuel", rod_zirnox, EnumZirnoxType.NATURAL_URANIUM_FUEL); addRemap("rod_zirnox_uranium_fuel", rod_zirnox, EnumZirnoxType.URANIUM_FUEL); addRemap("rod_zirnox_th232", rod_zirnox, EnumZirnoxType.TH232); diff --git a/src/main/java/com/hbm/items/block/ItemCustomMachine.java b/src/main/java/com/hbm/items/block/ItemCustomMachine.java index fe62ea56a..434b61c06 100644 --- a/src/main/java/com/hbm/items/block/ItemCustomMachine.java +++ b/src/main/java/com/hbm/items/block/ItemCustomMachine.java @@ -1,7 +1,6 @@ package com.hbm.items.block; import java.util.List; -import java.util.Map.Entry; import com.hbm.config.CustomMachineConfigJSON; import com.hbm.config.CustomMachineConfigJSON.MachineConfiguration; @@ -24,10 +23,11 @@ public class ItemCustomMachine extends ItemBlock { @SideOnly(Side.CLIENT) public void getSubItems(Item item, CreativeTabs tab, List list) { - for(Entry entry : CustomMachineConfigJSON.customMachines.entrySet()) { - ItemStack stack = new ItemStack(item); + for(int i = 0; i < CustomMachineConfigJSON.niceList.size(); i++) { + MachineConfiguration conf = CustomMachineConfigJSON.niceList.get(i); + ItemStack stack = new ItemStack(item, 1, i + 100); stack.stackTagCompound = new NBTTagCompound(); - stack.stackTagCompound.setString("machineType", entry.getKey()); + stack.stackTagCompound.setString("machineType", conf.unlocalizedName); list.add(stack); } } diff --git a/src/main/java/com/hbm/items/food/ItemFlask.java b/src/main/java/com/hbm/items/food/ItemFlask.java index 256fa9eff..9ecdb4fc2 100644 --- a/src/main/java/com/hbm/items/food/ItemFlask.java +++ b/src/main/java/com/hbm/items/food/ItemFlask.java @@ -49,8 +49,8 @@ public class ItemFlask extends ItemEnumMulti { if(stack.getItemDamage() == EnumInfusion.SHIELD.ordinal()) { float infusion = 5F; HbmPlayerProps props = HbmPlayerProps.getData(player); - props.maxShield = Math.min(props.shieldCap, props.shield + infusion); - props.shield += infusion; + props.maxShield = Math.min(props.shieldCap, props.maxShield + infusion); + props.shield = Math.min(props.shield + infusion, props.maxShield); } return stack; diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 6e486d7e0..1a039b530 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -1132,6 +1132,33 @@ public class MainRegistry { ignoreMappings.add("hbm:tile.gas_duct"); ignoreMappings.add("hbm:tile.dummy_block_assembler"); ignoreMappings.add("hbm:tile.dummy_port_assembler"); + ignoreMappings.add("hbm:item.canned_beef"); + ignoreMappings.add("hbm:item.canned_tuna"); + ignoreMappings.add("hbm:item.canned_mystery"); + ignoreMappings.add("hbm:item.canned_pashtet"); + ignoreMappings.add("hbm:item.canned_cheese"); + ignoreMappings.add("hbm:item.canned_jizz"); + ignoreMappings.add("hbm:item.canned_milk"); + ignoreMappings.add("hbm:item.canned_ass"); + ignoreMappings.add("hbm:item.canned_pizza"); + ignoreMappings.add("hbm:item.canned_tube"); + ignoreMappings.add("hbm:item.canned_tomato"); + ignoreMappings.add("hbm:item.canned_asbestos"); + ignoreMappings.add("hbm:item.canned_bhole"); + ignoreMappings.add("hbm:item.canned_hotdogs"); + ignoreMappings.add("hbm:item.canned_leftovers"); + ignoreMappings.add("hbm:item.canned_yogurt"); + ignoreMappings.add("hbm:item.canned_stew"); + ignoreMappings.add("hbm:item.canned_chinese"); + ignoreMappings.add("hbm:item.canned_oil"); + ignoreMappings.add("hbm:item.canned_fist"); + ignoreMappings.add("hbm:item.canned_spam"); + ignoreMappings.add("hbm:item.canned_fried"); + ignoreMappings.add("hbm:item.canned_napalm"); + ignoreMappings.add("hbm:item.canned_diesel"); + ignoreMappings.add("hbm:item.canned_kerosene"); + ignoreMappings.add("hbm:item.canned_recursion"); + ignoreMappings.add("hbm:item.canned_bark"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadar.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadar.java index fb3d4b4e0..d68ae05e9 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadar.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadar.java @@ -184,8 +184,8 @@ public class TileEntityMachineRadar extends TileEntityTickingBase implements IEn for(int i = 0; i < nearbyMissiles.size(); i++) { - if(nearbyMissiles.get(i)[3] + 1 > power) { - power = nearbyMissiles.get(i)[3] + 1; + if(nearbyMissiles.get(i)[2] + 1 > power) { + power = nearbyMissiles.get(i)[2] + 1; } } diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 3c4bec004..5b786acdb 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -4522,6 +4522,25 @@ tile.cluster_depth_titanium.name=Depth Titanium Ore Cluster tile.cluster_depth_tungsten.name=Depth Tungsten Ore Cluster tile.cluster_iron.name=Iron Ore Cluster tile.cluster_titanium.name=Titanium Ore Cluster +tile.cm_block.alloy.name=Advanced Alloy Machine Casing +tile.cm_block.desh.name=Desh Machine Casing +tile.cm_block.steel.name=Steel Machine Casing +tile.cm_block.tcalloy.name=Technetium Steel Machine Casing +tile.cm_engine.bismuth.name=Bismuth Motor Block +tile.cm_engine.desh.name=Desh Motor Block +tile.cm_engine.standard.name=Motor Block +tile.cm_port.alloy.name=Advanced Alloy Port +tile.cm_port.desh.name=Desh Port +tile.cm_port.steel.name=Steel Port +tile.cm_port.tcalloy.name=Technetium Steel Port +tile.cm_sheet.alloy.name=Advanced Alloy Sheet +tile.cm_sheet.desh.name=Desh Sheet +tile.cm_sheet.steel.name=Steel Sheet +tile.cm_sheet.tcalloy.name=Technetium Steel Sheet +tile.cm_tank.alloy.name=Advanced Alloy Tank +tile.cm_tank.desh.name=Desh Tank +tile.cm_tank.steel.name=Steel Tank +tile.cm_tank.tcalloy.name=Technetium Steel Tank tile.cmb_brick.name=CMB Steel Tile tile.cmb_brick_reinforced.name=Reinforced CMB Bricks tile.compact_launcher.name=Compact Launch Pad diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_circuit_aluminium.png b/src/main/resources/assets/hbm/textures/blocks/cm_circuit_aluminium.png new file mode 100644 index 0000000000000000000000000000000000000000..8e44446d37da998b9b1f9b7898df27d0f32081d4 GIT binary patch literal 525 zcmV+o0`mQdP)|-|vHWn!w4u=iYmABGNQ<#u%)%gkgwMivPj=e&=vFpq|es zo6Uyn^@@}dDJ9N1q?8CDkWx~s)v(r56a@fr9MkD^=ytm(V+^<3jmcyJzW+lH^EXcA9 zfc<`ta}K4H!dhDvrD^&h1e8twz1Eu1XoN8aWv#_I$9lak3%`kcgE0nGtJM%fkR%CF z6#Z(bid8o$ih?}PQU23-_}l*lKVY}pVXb}V;BQpT`nHYMnqIH>Hqly(5TY!qy6&g> zXLY;fa)}TEmFIbBV)f26O+Ol{UTCcu3Qf0h^WahI)Di*~zRDr>EY z;~1@V$t6irM%nX?MuQ*-5cB!m9gjzb!y)Zh(I8%Z2TBix`i`?sPhFKA*AH;)CU!dz+*bQc8-VDF4PF2nd1zDJ6dZ6(9S@nnF{6 P00000NkvXXu0mjf4BYEO literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/cm_circuit_copper.png b/src/main/resources/assets/hbm/textures/blocks/cm_circuit_copper.png new file mode 100644 index 0000000000000000000000000000000000000000..7217056b0ffc5aa42fd83d1b671674a29fbef56a GIT binary patch literal 569 zcmV-90>=G`P)^yYJng?N)bYU@N**pE`BwRJG`KyUrMcwHDv^(OUCA zvD@t!jYjC>@kqblXS3NLr9?`Ja}FsbLI|XkWHK47wM0<_K($(>R;v*N0ooYDcDv>4 z;0pkg;DP3BdeiOST*Mz9Umxl9dT8fd`oXVwuzkj_G~P+}D_;8EFOTH&d8CwRr4-jB z0K>NzxN8H@I?ONm+&yfcp#;AG=NwvVjkPufwF>9%hj~m?Xv9V5e5=r4zdZ5-Fvg&* zwK(UP1P?Lrnj}&4Nf=|0nM?*D1kKs>rtn%(nm;!Hh@yxv43Wud(m2olSq$G^n3R6A z+wHK{#&_@zl$iB_8i=>h=4_(179qq1l(=4Kr1PgfBYlnDOX6F#v+hc$SVZ4vE3qt zAP5P9jdj?UP<)GNA}f+HrKsP`cefa4Mt2S5RKwhR&pr3d88se{#W{!fo?5MjwU+Nn!dL6Ab))>PT2_TOPXubnL zeJuxN8bSOFz|UXr5fQAl7Vmx0q#pX$M0CzWow6QB{P+aUIjr{{5ka2F$PXvZ-*rQ=C(rb)jxFGAO06Ns^Q%Qf^ic{i}g%FCs=Cv!ynVZf0WVYV)Np`B^zp z9(UVlGzi0xzh~w`YW^HYMT})y_Ef7?j4`O;a44(Qie9fr7=|1U2b^<=2(?;`N~J=Q zB%Dqslv3Q?-BGDj*lxGX=X2CxFp%|n&1SQ~druK8k<27((OQ$HY4JB2V=%^`wdMst W>+OEqo)^~u00001#o6otR}fn^bhjua~jM3;uANRdbsY4Qef<=Q1t+H^st zaX~}x2p4HwBX|%-2nh;H2n@43lL7`7WJ@{CYVX`R=iaktMX%TM)>@o%#Bq$)n*YIO zvtc|Qqj$R;G$ddq=yDwDY z2!PtpKWCyJUs-Q=hnJ7v@ZO`f);Q z%6VVHT7f9UU017B>h=10x8nt443$s|G5-Di)Ke;zP)Z@X-L9WZCbZja>h(IWudi5Z z@!k{1F;NterYZaV9w7w9Vv#6{SS%I{heJfC)A6&}jQMZ|Kfmyo-f#n7I z3M4#0O%QS)F)uGKXsyv&6JtbcjZzA&HH}7t5CUac0?_GnI5;?<+wG#g z_biu7_V)I0&hdM(V0U+yR;$I%&JKB=^XuV(EX&CAoIKB2E|(k~9Wk9wu`$LtMwoAIrk#$16*AZW5il(2_aNTi@{(W zH$(vUBLD1*2tUuy@!n%Y2*emUxx1?p6A3kvui(AMHX03-Qe5}@IOjecsFT%|lx0a# z6zKFc3B4~2tYd#RdA;o}QivA&?p?#<(`gTC~=bWm)}3V+_U^wATCu9`*x9 T5G-_o00000NkvXXu0mjfTbKk` literal 0 HcmV?d00001 From 33bd961e0c0647ef4787ac07245779df7152348c Mon Sep 17 00:00:00 2001 From: Bob Date: Mon, 24 Jul 2023 12:03:13 +0200 Subject: [PATCH 210/432] toora loora --- changelog | 29 ++++++++--- gradle.properties | 2 +- .../hbm/blocks/generic/BlockStorageCrate.java | 36 ++++++++++++- .../blocks/machine/BlockCustomMachine.java | 52 +++++++++++++++++++ .../hbm/config/CustomMachineConfigJSON.java | 6 +-- .../com/hbm/items/machine/ItemRBMKRod.java | 2 +- src/main/java/com/hbm/lib/RefStrings.java | 2 +- .../java/com/hbm/main/CraftingManager.java | 20 +++++++ .../hbm/tileentity/TileEntityProxyBase.java | 6 +-- .../machine/TileEntityCustomMachine.java | 3 +- src/main/resources/assets/hbm/lang/en_US.lang | 5 ++ 11 files changed, 143 insertions(+), 20 deletions(-) diff --git a/changelog b/changelog index ec89d27e1..e06e326bf 100644 --- a/changelog +++ b/changelog @@ -1,11 +1,24 @@ ## Added -* Rubber ball - * can be thrown at people -* New chlorine processing chain - * Involves 240 processing steps of washing, electrolyzing, centrifuging and treating chlorocalcite +* Custom machines + * Simple processing multiblocks that can be created via config + * The config found in `hbmConfig/hbmCustomMachines.json` defines the input and output slots, fluid amount, speed and consumption multipliers as well as the multiblock + * The config in `hbmRecipes/hbmCustomMachines.json` defines the recipes for all multiblocks with inputs, outputs base speed and consumption rates + * Currently, custom machine recipes do not show up in NEI, a handler will be added soon + * All recipes are shaped, even the fluid types, this was done to improve performance + * Item inputs have filter slots for automation, this allows the right ingredients to be inserted into the right slot easily. For simple machines, this slot can be left empty so any item can be inserted. + * By default, the standard config creates one custom machine with one recipe called the paper press, turning sawdust and water into paper + * More examples can be found in the configs attached to this github release + * Custom machines can also be configured as generators, using up item and fluid inputs and turning them into energy + * While changing the configs and adding/removing machines in an existing world is possible, this is not recommended because of potential ID shifts of the machines, breaking existing custom machines in the world + * With custom machines, quite a few otherwise unused construction blocks have been added which are recommended to be used for custom machines as they come in tiers, have reasonable cost and mesh well visually with the multiblocks + * However, using them is not mandatory, the only functional block is the port which is most likely needed for automation, although the machine's controller itself also serves as a port ## Changed -* Glyphids now have a higher tracking range, being 256 blocks -* Standard glyphids now have a base health of 100 -* Glyphid scouts are now immune to fire and explosive damage, have a 50% damage reduction against projectiles and have passive regeneration -* Increased hive block blast resistance, they can no longer be blown up wiith conventional explosives +* Additional OC compat for fluid gauges +* Crates now display their contents when in item form + +## Fixed +* Hopefully fixed an issue where pollution-based mob buffs apply multiple times, resulting in near-unkillable mobs +* Fixed exploit allowing the cap for shield infusions to be bypassed +* Fixed tier detection mode in the radar detecting the Y-position instead of the actual tier +* Fixed missing parenthesis in sigmoid curve's description \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index aca4be12e..a5787a31d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4663 +mod_build_number=4670 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ diff --git a/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java b/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java index 8e8f5097f..718f26c54 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java +++ b/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java @@ -1,9 +1,12 @@ package com.hbm.blocks.generic; import java.io.IOException; +import java.util.ArrayList; +import java.util.List; import java.util.Random; import com.hbm.blocks.IBlockMulti; +import com.hbm.blocks.ITooltipProvider; import com.hbm.blocks.ModBlocks; import com.hbm.items.ModItems; import com.hbm.items.tool.ItemLock; @@ -36,7 +39,7 @@ import net.minecraft.util.IIcon; import net.minecraft.util.MathHelper; import net.minecraft.world.World; -public class BlockStorageCrate extends BlockContainer implements IBlockMulti { +public class BlockStorageCrate extends BlockContainer implements IBlockMulti, ITooltipProvider { @SideOnly(Side.CLIENT) private IIcon iconTop; @@ -282,4 +285,35 @@ public class BlockStorageCrate extends BlockContainer implements IBlockMulti { public int getComparatorInputOverride(World world, int x, int y, int z, int side) { return Container.calcRedstoneFromInventory((IInventory) world.getTileEntity(x, y, z)); } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + if(stack.hasTagCompound()) { + + List contents = new ArrayList(); + int amount = 0; + + for(int i = 0; i < 100; i++) { //whatever the biggest container is, i can't be bothered to check + ItemStack content = ItemStack.loadItemStackFromNBT(stack.stackTagCompound.getCompoundTag("slot" + i)); + + if(content != null) { + amount++; + + if(contents.size() < 10) { + contents.add(EnumChatFormatting.AQUA + " - " + content.getDisplayName() + (content.stackSize > 1 ? (" x" + content.stackSize) : "")); + } + } + } + + if(!contents.isEmpty()) { + list.add(EnumChatFormatting.AQUA + "Contains:"); + list.addAll(contents); + amount -= contents.size(); + + if(amount > 0) { + list.add(EnumChatFormatting.AQUA + "...and " + amount + " more."); + } + } + } + } } diff --git a/src/main/java/com/hbm/blocks/machine/BlockCustomMachine.java b/src/main/java/com/hbm/blocks/machine/BlockCustomMachine.java index e007403ef..0dac71ca5 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockCustomMachine.java +++ b/src/main/java/com/hbm/blocks/machine/BlockCustomMachine.java @@ -1,6 +1,7 @@ package com.hbm.blocks.machine; import java.util.ArrayList; +import java.util.Random; import com.hbm.config.CustomMachineConfigJSON; import com.hbm.items.ModItems; @@ -11,11 +12,14 @@ import com.hbm.tileentity.machine.TileEntityCustomMachine; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -145,4 +149,52 @@ public class BlockCustomMachine extends BlockContainer { return super.getPickBlock(target, world, x, y, z); } + + @Override + public void breakBlock(World world, int x, int y, int z, Block block, int meta) { + + ISidedInventory sided = (ISidedInventory) world.getTileEntity(x, y, z); + Random rand = world.rand; + + if(sided != null) { + for(int i1 = 0; i1 < sided.getSizeInventory(); ++i1) { + + if(i1 >= 10 && i1 <= 15) + continue; // do NOT drop the filters + + ItemStack itemstack = sided.getStackInSlot(i1); + + if(itemstack != null) { + float f = rand.nextFloat() * 0.8F + 0.1F; + float f1 = rand.nextFloat() * 0.8F + 0.1F; + float f2 = rand.nextFloat() * 0.8F + 0.1F; + + while(itemstack.stackSize > 0) { + int j1 = rand.nextInt(21) + 10; + + if(j1 > itemstack.stackSize) { + j1 = itemstack.stackSize; + } + + itemstack.stackSize -= j1; + EntityItem entityitem = new EntityItem(world, x + f, y + f1, z + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); + + if(itemstack.hasTagCompound()) { + entityitem.getEntityItem().setTagCompound((NBTTagCompound) itemstack.getTagCompound().copy()); + } + + float f3 = 0.05F; + entityitem.motionX = (float) rand.nextGaussian() * f3; + entityitem.motionY = (float) rand.nextGaussian() * f3 + 0.2F; + entityitem.motionZ = (float) rand.nextGaussian() * f3; + world.spawnEntityInWorld(entityitem); + } + } + } + + world.func_147453_f(x, y, z, block); + } + + super.breakBlock(world, x, y, z, block, meta); + } } diff --git a/src/main/java/com/hbm/config/CustomMachineConfigJSON.java b/src/main/java/com/hbm/config/CustomMachineConfigJSON.java index 886a7741a..79a659261 100644 --- a/src/main/java/com/hbm/config/CustomMachineConfigJSON.java +++ b/src/main/java/com/hbm/config/CustomMachineConfigJSON.java @@ -90,7 +90,7 @@ public class CustomMachineConfigJSON { for(int x = -1; x <= 1; x++) { for(int y = -1; y <= 1; y++) { for(int z = 0; z <= 2; z++) { - if(!(x == 0 && y == 0 && z == 1) && !(x == 0 && z == 1) && !(x == 0 && y == 0 && z == 0)) { + if(!(x == 0 && y == 0 && z == 1) && !(x == 0 && z == 0)) { writer.beginObject().setIndent(""); writer.name("block").value(y == 0 ? "hbm:tile.cm_sheet" : "hbm:tile.cm_block"); writer.name("x").value(x); @@ -109,7 +109,7 @@ public class CustomMachineConfigJSON { writer.name("block").value("hbm:tile.cm_port"); writer.name("x").value(0); writer.name("y").value(-1); - writer.name("z").value(1); + writer.name("z").value(0); writer.name("metas").beginArray(); writer.value(0); writer.endArray(); @@ -119,7 +119,7 @@ public class CustomMachineConfigJSON { writer.name("block").value("hbm:tile.cm_port"); writer.name("x").value(0); writer.name("y").value(1); - writer.name("z").value(1); + writer.name("z").value(0); writer.name("metas").beginArray(); writer.value(0); writer.endArray(); diff --git a/src/main/java/com/hbm/items/machine/ItemRBMKRod.java b/src/main/java/com/hbm/items/machine/ItemRBMKRod.java index 01c83055c..68158958f 100644 --- a/src/main/java/com/hbm/items/machine/ItemRBMKRod.java +++ b/src/main/java/com/hbm/items/machine/ItemRBMKRod.java @@ -275,7 +275,7 @@ public class ItemRBMKRod extends Item { break; case ARCH: function = "(%1$s - %1$s² / 10000) / 100 * %2$s [0;∞]"; break; - case SIGMOID: function = "%2$s / (1 + e^(-(%1$s - 50) / 10)"; + case SIGMOID: function = "%2$s / (1 + e^(-(%1$s - 50) / 10))"; break; case SQUARE_ROOT: function = "sqrt(%1$s) * %2$s / 10"; break; diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 55bb20699..5e3527635 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4663)"; + public static final String VERSION = "1.0.27 BETA (4670)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 1893862f8..1a4b56848 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -1096,6 +1096,26 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModItems.sliding_blast_door_skin, 1, 1), new ItemStack(ModItems.sliding_blast_door_skin, 1, 0)); addShapelessAuto(new ItemStack(ModItems.sliding_blast_door_skin, 1, 2), new ItemStack(ModItems.sliding_blast_door_skin, 1, 1)); addShapelessAuto(new ItemStack(ModItems.sliding_blast_door_skin), new ItemStack(ModItems.sliding_blast_door_skin, 1, 2)); + + addRecipeAuto(new ItemStack(ModBlocks.cm_block, 4, 0), " I ", "IPI", " I ", 'I', STEEL.ingot(), 'P', STEEL.plateCast()); + addRecipeAuto(new ItemStack(ModBlocks.cm_block, 4, 1), " I ", "IPI", " I ", 'I', ALLOY.ingot(), 'P', ALLOY.plateCast()); + addRecipeAuto(new ItemStack(ModBlocks.cm_block, 4, 2), " I ", "IPI", " I ", 'I', DESH.ingot(), 'P', DESH.plateCast()); + addRecipeAuto(new ItemStack(ModBlocks.cm_block, 4, 3), " I ", "IPI", " I ", 'I', ANY_RESISTANTALLOY.ingot(), 'P', ANY_RESISTANTALLOY.plateCast()); + + for(int i = 0; i < 4; i++) { + addRecipeAuto(new ItemStack(ModBlocks.cm_sheet, 16, i), "BB", "BB", 'B', new ItemStack(ModBlocks.cm_block, 1, i)); + addRecipeAuto(new ItemStack(ModBlocks.cm_tank, 4, i), " B ", "BGB", " B ", 'B', new ItemStack(ModBlocks.cm_block, 1, i), 'G', KEY_ANYGLASS); + addRecipeAuto(new ItemStack(ModBlocks.cm_port, 1, i), "P", "B", "P", 'B', new ItemStack(ModBlocks.cm_block, 1, i), 'P', IRON.plate()); + } + + addRecipeAuto(new ItemStack(ModBlocks.cm_engine, 1, 0), " I ", "IMI", " I ", 'I', STEEL.ingot(), 'M', ModItems.motor); + addRecipeAuto(new ItemStack(ModBlocks.cm_engine, 1, 1), " I ", "IMI", " I ", 'I', STEEL.ingot(), 'M', ModItems.motor_desh); + addRecipeAuto(new ItemStack(ModBlocks.cm_engine, 1, 2), " I ", "IMI", " I ", 'I', STEEL.ingot(), 'M', ModItems.motor_bismuth); + addRecipeAuto(new ItemStack(ModBlocks.cm_circuit, 1, 0), " I ", "IMI", " I ", 'I', STEEL.ingot(), 'M', ModItems.circuit_aluminium); + addRecipeAuto(new ItemStack(ModBlocks.cm_circuit, 1, 1), " I ", "IMI", " I ", 'I', STEEL.ingot(), 'M', ModItems.circuit_copper); + addRecipeAuto(new ItemStack(ModBlocks.cm_circuit, 1, 2), " I ", "IMI", " I ", 'I', STEEL.ingot(), 'M', ModItems.circuit_red_copper); + addRecipeAuto(new ItemStack(ModBlocks.cm_circuit, 1, 3), " I ", "IMI", " I ", 'I', STEEL.ingot(), 'M', ModItems.circuit_gold); + addRecipeAuto(new ItemStack(ModBlocks.cm_circuit, 1, 4), " I ", "IMI", " I ", 'I', STEEL.ingot(), 'M', ModItems.circuit_schrabidium); } public static void crumple() { diff --git a/src/main/java/com/hbm/tileentity/TileEntityProxyBase.java b/src/main/java/com/hbm/tileentity/TileEntityProxyBase.java index bf19bb353..36a123851 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityProxyBase.java +++ b/src/main/java/com/hbm/tileentity/TileEntityProxyBase.java @@ -20,7 +20,7 @@ public class TileEntityProxyBase extends TileEntityLoadedBase { if(cachedPosition != null) { TileEntity te = Compat.getTileStandard(worldObj, cachedPosition.getX(), cachedPosition.getY(), cachedPosition.getZ()); - if(te != null && te != this) return te; + if(te != null && !(te instanceof TileEntityProxyBase)) return te; cachedPosition = null; this.markDirty(); } @@ -34,7 +34,7 @@ public class TileEntityProxyBase extends TileEntityLoadedBase { if(pos != null) { TileEntity te = Compat.getTileStandard(worldObj, pos[0], pos[1], pos[2]); - if(te != null && te != this) return te; + if(te != null && !(te instanceof TileEntityProxyBase)) return te; } } @@ -42,7 +42,7 @@ public class TileEntityProxyBase extends TileEntityLoadedBase { IProxyController controller = (IProxyController) this.getBlockType(); TileEntity tile = controller.getCore(worldObj, xCoord, yCoord, zCoord); - if(tile != null && tile != this) return tile; + if(tile != null && !(tile instanceof TileEntityProxyBase)) return tile; } return null; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java index 700da5e04..6a7d3973d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java @@ -6,7 +6,6 @@ import java.util.List; import com.hbm.config.CustomMachineConfigJSON; import com.hbm.config.CustomMachineConfigJSON.MachineConfiguration; import com.hbm.config.CustomMachineConfigJSON.MachineConfiguration.ComponentDefinition; -import com.hbm.inventory.FluidStack; import com.hbm.inventory.container.ContainerMachineCustom; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; @@ -465,7 +464,7 @@ public class TileEntityCustomMachine extends TileEntityMachineBase implements IF @Override public long getMaxPower() { - return this.config != null ? this.getMaxPower() : 1; + return this.config != null ? this.config.maxPower : 1; } @Override diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 5b786acdb..f0d31585c 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -4526,6 +4526,11 @@ tile.cm_block.alloy.name=Advanced Alloy Machine Casing tile.cm_block.desh.name=Desh Machine Casing tile.cm_block.steel.name=Steel Machine Casing tile.cm_block.tcalloy.name=Technetium Steel Machine Casing +tile.cm_circuit.aluminium.name=Tier 1 Circuit Block +tile.cm_circuit.copper.name=Tier 2 Circuit Block +tile.cm_circuit.gold.name=Tier 4 Circuit Block +tile.cm_circuit.red_copper.name=Tier 3 Circuit Block +tile.cm_circuit.schrabidium.name=Tier 5 Circuit Block tile.cm_engine.bismuth.name=Bismuth Motor Block tile.cm_engine.desh.name=Desh Motor Block tile.cm_engine.standard.name=Motor Block From a22a68744c5a8873d877665cf1c1d47b66505446 Mon Sep 17 00:00:00 2001 From: Toshayo Date: Mon, 24 Jul 2023 12:44:32 +0200 Subject: [PATCH 211/432] Satellite linker will no more give duplicate frequency. Some satellite code improvements, rearrangements --- .../inventory/container/ContainerSatDock.java | 82 +++++++++---------- .../com/hbm/inventory/gui/GUISatDock.java | 20 ++--- .../com/hbm/saveddata/SatelliteSavedData.java | 23 ++---- .../hbm/saveddata/satellites/Satellite.java | 45 +++++----- .../machine/TileEntityMachineSatDock.java | 65 +++++++-------- .../machine/TileEntityMachineSatLinker.java | 55 ++++++------- 6 files changed, 128 insertions(+), 162 deletions(-) diff --git a/src/main/java/com/hbm/inventory/container/ContainerSatDock.java b/src/main/java/com/hbm/inventory/container/ContainerSatDock.java index 9ee0b37d5..02f02db56 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerSatDock.java +++ b/src/main/java/com/hbm/inventory/container/ContainerSatDock.java @@ -1,7 +1,8 @@ package com.hbm.inventory.container; +import com.hbm.inventory.SlotTakeOnly; +import com.hbm.items.machine.ItemSatChip; import com.hbm.tileentity.machine.TileEntityMachineSatDock; - import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; @@ -11,41 +12,42 @@ import net.minecraft.item.ItemStack; public class ContainerSatDock extends Container { - private TileEntityMachineSatDock diFurnace; + private final TileEntityMachineSatDock tileSatelliteDock; - public ContainerSatDock(InventoryPlayer invPlayer, TileEntityMachineSatDock tedf) { - - diFurnace = tedf; + public ContainerSatDock(InventoryPlayer invPlayer, TileEntityMachineSatDock tesd) { + tileSatelliteDock = tesd; //Storage - this.addSlotToContainer(new Slot(tedf, 0, 62, 17)); - this.addSlotToContainer(new Slot(tedf, 1, 80, 17)); - this.addSlotToContainer(new Slot(tedf, 2, 98, 17)); - this.addSlotToContainer(new Slot(tedf, 3, 116, 17)); - this.addSlotToContainer(new Slot(tedf, 4, 134, 17)); - this.addSlotToContainer(new Slot(tedf, 5, 62, 35)); - this.addSlotToContainer(new Slot(tedf, 6, 80, 35)); - this.addSlotToContainer(new Slot(tedf, 7, 98, 35)); - this.addSlotToContainer(new Slot(tedf, 8, 116, 35)); - this.addSlotToContainer(new Slot(tedf, 9, 134, 35)); - this.addSlotToContainer(new Slot(tedf, 10, 62, 53)); - this.addSlotToContainer(new Slot(tedf, 11, 80, 53)); - this.addSlotToContainer(new Slot(tedf, 12, 98, 53)); - this.addSlotToContainer(new Slot(tedf, 13, 116, 53)); - this.addSlotToContainer(new Slot(tedf, 14, 134, 53)); + this.addSlotToContainer(new SlotTakeOnly(tesd, 0, 62, 17)); + this.addSlotToContainer(new SlotTakeOnly(tesd, 1, 80, 17)); + this.addSlotToContainer(new SlotTakeOnly(tesd, 2, 98, 17)); + this.addSlotToContainer(new SlotTakeOnly(tesd, 3, 116, 17)); + this.addSlotToContainer(new SlotTakeOnly(tesd, 4, 134, 17)); + this.addSlotToContainer(new SlotTakeOnly(tesd, 5, 62, 35)); + this.addSlotToContainer(new SlotTakeOnly(tesd, 6, 80, 35)); + this.addSlotToContainer(new SlotTakeOnly(tesd, 7, 98, 35)); + this.addSlotToContainer(new SlotTakeOnly(tesd, 8, 116, 35)); + this.addSlotToContainer(new SlotTakeOnly(tesd, 9, 134, 35)); + this.addSlotToContainer(new SlotTakeOnly(tesd, 10, 62, 53)); + this.addSlotToContainer(new SlotTakeOnly(tesd, 11, 80, 53)); + this.addSlotToContainer(new SlotTakeOnly(tesd, 12, 98, 53)); + this.addSlotToContainer(new SlotTakeOnly(tesd, 13, 116, 53)); + this.addSlotToContainer(new SlotTakeOnly(tesd, 14, 134, 53)); //Chip - this.addSlotToContainer(new Slot(tedf, 15, 26, 35)); + this.addSlotToContainer(new Slot(tesd, 15, 26, 35) { + @Override + public boolean isItemValid(ItemStack stack) { + return stack.getItem() instanceof ItemSatChip; + } + }); - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); } } - for(int i = 0; i < 9; i++) - { + for(int i = 0; i < 9; i++) { this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142)); } } @@ -56,33 +58,25 @@ public class ContainerSatDock extends Container { } @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { + public ItemStack transferStackInSlot(EntityPlayer player, int par2) { ItemStack var3 = null; Slot var4 = (Slot) this.inventorySlots.get(par2); - if (var4 != null && var4.getHasStack()) - { + if (var4 != null && var4.getHasStack()) { ItemStack var5 = var4.getStack(); var3 = var5.copy(); if (par2 <= 15) { - if (!this.mergeItemStack(var5, 16, this.inventorySlots.size(), true)) - { + if (!this.mergeItemStack(var5, 16, this.inventorySlots.size(), true)) { return null; } - } - else if (!this.mergeItemStack(var5, 0, 15, false)) - { - return null; + } else if (!this.mergeItemStack(var5, 0, 15, false)) { + return null; } - if (var5.stackSize == 0) - { - var4.putStack((ItemStack) null); - } - else - { + if (var5.stackSize == 0) { + var4.putStack(null); + } else { var4.onSlotChanged(); } } @@ -92,6 +86,6 @@ public class ContainerSatDock extends Container { @Override public boolean canInteractWith(EntityPlayer player) { - return diFurnace.isUseableByPlayer(player); + return tileSatelliteDock.isUseableByPlayer(player); } } diff --git a/src/main/java/com/hbm/inventory/gui/GUISatDock.java b/src/main/java/com/hbm/inventory/gui/GUISatDock.java index 3276564df..369530b2f 100644 --- a/src/main/java/com/hbm/inventory/gui/GUISatDock.java +++ b/src/main/java/com/hbm/inventory/gui/GUISatDock.java @@ -1,24 +1,22 @@ package com.hbm.inventory.gui; -import org.lwjgl.opengl.GL11; - import com.hbm.inventory.container.ContainerSatDock; import com.hbm.lib.RefStrings; import com.hbm.tileentity.machine.TileEntityMachineSatDock; - import net.minecraft.client.Minecraft; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.util.ResourceLocation; +import org.lwjgl.opengl.GL11; public class GUISatDock extends GuiInfoContainer { - public static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_dock.png"); - private TileEntityMachineSatDock diFurnace; + public static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_dock.png"); + private final TileEntityMachineSatDock tileSatelliteDock; - public GUISatDock(InventoryPlayer invPlayer, TileEntityMachineSatDock tedf) { - super(new ContainerSatDock(invPlayer, tedf)); - diFurnace = tedf; + public GUISatDock(InventoryPlayer invPlayer, TileEntityMachineSatDock tesd) { + super(new ContainerSatDock(invPlayer, tesd)); + tileSatelliteDock = tesd; this.xSize = 176; this.ySize = 168; @@ -36,10 +34,10 @@ public class GUISatDock extends GuiInfoContainer { @Override protected void drawGuiContainerForegroundLayer(int i, int j) { - String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName()); + String name = this.tileSatelliteDock.hasCustomInventoryName() ? this.tileSatelliteDock.getInventoryName() : I18n.format(this.tileSatelliteDock.getInventoryName()); - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); - this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 0x404040); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 0x404040); } @Override diff --git a/src/main/java/com/hbm/saveddata/SatelliteSavedData.java b/src/main/java/com/hbm/saveddata/SatelliteSavedData.java index 2e5fe33c1..f0ced3750 100644 --- a/src/main/java/com/hbm/saveddata/SatelliteSavedData.java +++ b/src/main/java/com/hbm/saveddata/SatelliteSavedData.java @@ -1,35 +1,27 @@ package com.hbm.saveddata; -import java.util.HashMap; -import java.util.Map.Entry; - import com.hbm.saveddata.satellites.Satellite; - import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; import net.minecraft.world.WorldSavedData; +import java.util.HashMap; +import java.util.Map.Entry; + public class SatelliteSavedData extends WorldSavedData { - public HashMap sats = new HashMap(); + public final HashMap sats = new HashMap<>(); - public SatelliteSavedData(String p_i2141_1_) { - super(p_i2141_1_); - } - - public SatelliteSavedData() - { + public SatelliteSavedData() { super("satellites"); this.markDirty(); } public boolean isFreqTaken(int freq) { - return getSatFromFreq(freq) != null; } public Satellite getSatFromFreq(int freq) { - return sats.get(freq); } @@ -38,7 +30,6 @@ public class SatelliteSavedData extends WorldSavedData { int satCount = nbt.getInteger("satCount"); for(int i = 0; i < satCount; i++) { - Satellite sat = Satellite.create(nbt.getInteger("sat_id_" + i)); sat.readFromNBT((NBTTagCompound) nbt.getTag("sat_data_" + i)); @@ -55,7 +46,6 @@ public class SatelliteSavedData extends WorldSavedData { int i = 0; for(Entry struct : sats.entrySet()) { - NBTTagCompound data = new NBTTagCompound(); struct.getValue().writeToNBT(data); @@ -67,15 +57,14 @@ public class SatelliteSavedData extends WorldSavedData { } public static SatelliteSavedData getData(World worldObj) { - SatelliteSavedData data = (SatelliteSavedData)worldObj.perWorldStorage.loadData(SatelliteSavedData.class, "satellites"); if(data == null) { worldObj.perWorldStorage.setData("satellites", new SatelliteSavedData()); data = (SatelliteSavedData)worldObj.perWorldStorage.loadData(SatelliteSavedData.class, "satellites"); + data.markDirty(); } return data; } - } diff --git a/src/main/java/com/hbm/saveddata/satellites/Satellite.java b/src/main/java/com/hbm/saveddata/satellites/Satellite.java index 70c65e0ac..e1a3ff431 100644 --- a/src/main/java/com/hbm/saveddata/satellites/Satellite.java +++ b/src/main/java/com/hbm/saveddata/satellites/Satellite.java @@ -1,23 +1,22 @@ package com.hbm.saveddata.satellites; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; - import com.hbm.items.ModItems; import com.hbm.saveddata.SatelliteSavedData; - import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + public abstract class Satellite { - public static List satellites = new ArrayList(); - public static HashMap itemToClass = new HashMap(); + public static final List> satellites = new ArrayList<>(); + public static final HashMap> itemToClass = new HashMap<>(); - public static enum InterfaceActions { + public enum InterfaceActions { HAS_MAP, //lets the interface display loaded chunks CAN_CLICK, //enables onClick events SHOW_COORDS, //enables coordinates as a mouse tooltip @@ -25,18 +24,18 @@ public abstract class Satellite { HAS_ORES //like HAS_MAP but only shows ores } - public static enum CoordActions { + public enum CoordActions { HAS_Y //enables the Y-coord field which is disabled by default } - public static enum Interfaces { + public enum Interfaces { NONE, //does not interact with any sat interface (i.e. asteroid miners) SAT_PANEL, //allows to interact with the sat interface panel (for graphical applications) SAT_COORD //allows to interact with the sat coord remote (for teleportation or other coord related actions) } - public List ifaceAcs = new ArrayList(); - public List coordAcs = new ArrayList(); + public List ifaceAcs = new ArrayList<>(); + public List coordAcs = new ArrayList<>(); public Interfaces satIface = Interfaces.NONE; public static void register() { @@ -64,10 +63,13 @@ public abstract class Satellite { } public static void orbit(World world, int id, int freq, double x, double y, double z) { - + if(world.isRemote) { + return; + } + Satellite sat = create(id); - if(sat != null && !world.isRemote) { + if(sat != null) { SatelliteSavedData data = SatelliteSavedData.getData(world); data.sats.put(freq, sat); sat.onOrbit(world, x, y, z); @@ -76,25 +78,22 @@ public abstract class Satellite { } public static Satellite create(int id) { - Satellite sat = null; try { - Class c = satellites.get(id); - sat = (Satellite) c.newInstance(); - } catch(Exception ex) { - + Class c = satellites.get(id); + sat = c.newInstance(); + } catch(Exception e) { + e.printStackTrace(); } return sat; } public static int getIDFromItem(Item item) { - Class sat = itemToClass.get(item); - int i = satellites.indexOf(sat); - - return i; + + return satellites.indexOf(sat); } public int getID() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatDock.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatDock.java index 6a29cf0d3..07e6e9c1c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatDock.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatDock.java @@ -13,7 +13,6 @@ import com.hbm.util.WeightedRandomObject; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.IInventory; @@ -27,15 +26,18 @@ import net.minecraft.util.WeightedRandom; import net.minecraft.world.World; import java.util.List; -import java.util.Random; public class TileEntityMachineSatDock extends TileEntity implements ISidedInventory, IGUIProvider { + private SatelliteSavedData data; + private ItemStack[] slots; - private static final int[] access = new int[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}; + private static final int[] access = new int[] {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}; private String customName; + private AxisAlignedBB renderBoundingBox; + public TileEntityMachineSatDock() { slots = new ItemStack[16]; } @@ -177,21 +179,13 @@ public class TileEntityMachineSatDock extends TileEntity implements ISidedInvent return true; } - SatelliteSavedData data = null; - @Override public void updateEntity() { if (!worldObj.isRemote) { if (data == null) - data = (SatelliteSavedData) worldObj.perWorldStorage.loadData(SatelliteSavedData.class, "satellites"); + data = SatelliteSavedData.getData(worldObj); - if (data == null) { - worldObj.perWorldStorage.setData("satellites", new SatelliteSavedData()); - data = (SatelliteSavedData) worldObj.perWorldStorage.loadData(SatelliteSavedData.class, "satellites"); - } - data.markDirty(); - - if (data != null && slots[15] != null) { + if (slots[15] != null) { int freq = ISatChip.getFreqS(slots[15]); Satellite sat = data.getSatFromFreq(freq); @@ -215,22 +209,23 @@ public class TileEntityMachineSatDock extends TileEntity implements ISidedInvent } } - List list = worldObj.getEntitiesWithinAABBExcludingEntity(null, AxisAlignedBB.getBoundingBox(xCoord - 0.25 + 0.5, yCoord + 0.75, zCoord - 0.25 + 0.5, xCoord + 0.25 + 0.5, yCoord + 2, zCoord + 0.25 + 0.5)); + @SuppressWarnings("unchecked") + List list = worldObj.getEntitiesWithinAABBExcludingEntity( + null, + AxisAlignedBB.getBoundingBox(xCoord - 0.25 + 0.5, yCoord + 0.75, zCoord - 0.25 + 0.5, xCoord + 0.25 + 0.5, yCoord + 2, zCoord + 0.25 + 0.5), + entity -> entity instanceof EntityMinerRocket + ); - for (Entity e : list) { - if (e instanceof EntityMinerRocket) { - EntityMinerRocket rocket = (EntityMinerRocket) e; + for (EntityMinerRocket rocket : list) { + if (slots[15] != null && ISatChip.getFreqS(slots[15]) != rocket.getDataWatcher().getWatchableObjectInt(17)) { + rocket.setDead(); + ExplosionNukeSmall.explode(worldObj, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, ExplosionNukeSmall.PARAMS_TOTS); + break; + } - if (slots[15] != null && ISatChip.getFreqS(slots[15]) != rocket.getDataWatcher().getWatchableObjectInt(17)) { - rocket.setDead(); - ExplosionNukeSmall.explode(worldObj, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, ExplosionNukeSmall.PARAMS_TOTS); - break; - } - - if (rocket.getDataWatcher().getWatchableObjectInt(16) == 1 && rocket.timer == 50) { - Satellite sat = data.getSatFromFreq(ISatChip.getFreqS(slots[15])); - unloadCargo((SatelliteMiner) sat); - } + if (rocket.getDataWatcher().getWatchableObjectInt(16) == 1 && rocket.timer == 50) { + Satellite sat = data.getSatFromFreq(ISatChip.getFreqS(slots[15])); + unloadCargo((SatelliteMiner) sat); } } @@ -241,15 +236,13 @@ public class TileEntityMachineSatDock extends TileEntity implements ISidedInvent } } - static final Random rand = new Random(); - private void unloadCargo(SatelliteMiner satellite) { - int items = rand.nextInt(6) + 10; + int itemAmount = worldObj.rand.nextInt(6) + 10; WeightedRandomObject[] cargo = satellite.getCargo(); - for (int i = 0; i < items; i++) { - ItemStack stack = ((WeightedRandomObject) WeightedRandom.getRandomItem(rand, cargo)).asStack(); + for (int i = 0; i < itemAmount; i++) { + ItemStack stack = ((WeightedRandomObject) WeightedRandom.getRandomItem(worldObj.rand, cargo)).asStack(); addToInv(stack.copy()); } } @@ -322,12 +315,10 @@ public class TileEntityMachineSatDock extends TileEntity implements ISidedInvent } } - AxisAlignedBB bb = null; - @Override public AxisAlignedBB getRenderBoundingBox() { - if (bb == null) { - bb = AxisAlignedBB.getBoundingBox( + if (renderBoundingBox == null) { + renderBoundingBox = AxisAlignedBB.getBoundingBox( xCoord - 1, yCoord, zCoord - 1, @@ -337,7 +328,7 @@ public class TileEntityMachineSatDock extends TileEntity implements ISidedInvent ); } - return bb; + return renderBoundingBox; } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatLinker.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatLinker.java index 2fd404480..e8793d0aa 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatLinker.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatLinker.java @@ -3,6 +3,7 @@ package com.hbm.tileentity.machine; import com.hbm.inventory.container.ContainerMachineSatLinker; import com.hbm.inventory.gui.GUIMachineSatLinker; import com.hbm.items.ISatChip; +import com.hbm.saveddata.SatelliteSavedData; import com.hbm.tileentity.IGUIProvider; import cpw.mods.fml.relauncher.Side; @@ -18,8 +19,9 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; public class TileEntityMachineSatLinker extends TileEntity implements ISidedInventory, IGUIProvider { + private SatelliteSavedData satelliteData; - private ItemStack slots[]; + private ItemStack[] slots; //public static final int maxFill = 64 * 3; @@ -45,21 +47,19 @@ public class TileEntityMachineSatLinker extends TileEntity implements ISidedInve @Override public ItemStack getStackInSlotOnClosing(int i) { - if(slots[i] != null) - { + if(slots[i] != null) { ItemStack itemStack = slots[i]; slots[i] = null; return itemStack; } else { - return null; + return null; } } @Override public void setInventorySlotContents(int i, ItemStack itemStack) { slots[i] = itemStack; - if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { + if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) { itemStack.stackSize = getInventoryStackLimit(); } } @@ -85,11 +85,10 @@ public class TileEntityMachineSatLinker extends TileEntity implements ISidedInve @Override public boolean isUseableByPlayer(EntityPlayer player) { - if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) - { + if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) { return false; - }else{ - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=64; + } else { + return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <= 64; } } @@ -105,17 +104,14 @@ public class TileEntityMachineSatLinker extends TileEntity implements ISidedInve @Override public ItemStack decrStackSize(int i, int j) { - if(slots[i] != null) - { - if(slots[i].stackSize <= j) - { + if(slots[i] != null) { + if(slots[i].stackSize <= j) { ItemStack itemStack = slots[i]; slots[i] = null; return itemStack; } ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) - { + if (slots[i].stackSize == 0) { slots[i] = null; } @@ -132,12 +128,10 @@ public class TileEntityMachineSatLinker extends TileEntity implements ISidedInve slots = new ItemStack[getSizeInventory()]; - for(int i = 0; i < list.tagCount(); i++) - { + for(int i = 0; i < list.tagCount(); i++) { NBTTagCompound nbt1 = list.getCompoundTagAt(i); byte b0 = nbt1.getByte("slot"); - if(b0 >= 0 && b0 < slots.length) - { + if(b0 >= 0 && b0 < slots.length) { slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); } } @@ -148,10 +142,8 @@ public class TileEntityMachineSatLinker extends TileEntity implements ISidedInve super.writeToNBT(nbt); NBTTagList list = new NBTTagList(); - for(int i = 0; i < slots.length; i++) - { - if(slots[i] != null) - { + for(int i = 0; i < slots.length; i++) { + if(slots[i] != null) { NBTTagCompound nbt1 = new NBTTagCompound(); nbt1.setByte("slot", (byte)i); slots[i].writeToNBT(nbt1); @@ -162,8 +154,7 @@ public class TileEntityMachineSatLinker extends TileEntity implements ISidedInve } @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) - { + public int[] getAccessibleSlotsFromSide(int p_94128_1_) { return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side); } @@ -179,15 +170,19 @@ public class TileEntityMachineSatLinker extends TileEntity implements ISidedInve @Override public void updateEntity() { - - if(!worldObj.isRemote) - { + if(!worldObj.isRemote) { if(slots[0] != null && slots[1] != null && slots[0].getItem() instanceof ISatChip && slots[1].getItem() instanceof ISatChip) { ISatChip.setFreqS(slots[1], ISatChip.getFreqS(slots[0])); } if(slots[2] != null && slots[2].getItem() instanceof ISatChip) { - ISatChip.setFreqS(slots[2], worldObj.rand.nextInt(100000)); + if(satelliteData == null) { + satelliteData = SatelliteSavedData.getData(worldObj); + } + int newId = worldObj.rand.nextInt(100000); + if(!satelliteData.isFreqTaken(newId)) { + ISatChip.setFreqS(slots[2], newId); + } } } } From ccb91d98bf4e2acd616c6ede141a9daa68a05567 Mon Sep 17 00:00:00 2001 From: Toshayo Date: Mon, 24 Jul 2023 14:06:46 +0200 Subject: [PATCH 212/432] Added satellite managing commands, fixed some satellite map storage stuff --- .../com/hbm/commands/CommandSatellites.java | 87 +++++++++++++++++++ src/main/java/com/hbm/main/MainRegistry.java | 2 + .../com/hbm/saveddata/SatelliteSavedData.java | 12 ++- .../machine/TileEntityMachineSatDock.java | 5 +- .../machine/TileEntityMachineSatLinker.java | 6 +- src/main/resources/assets/hbm/lang/en_US.lang | 6 ++ 6 files changed, 108 insertions(+), 10 deletions(-) create mode 100644 src/main/java/com/hbm/commands/CommandSatellites.java diff --git a/src/main/java/com/hbm/commands/CommandSatellites.java b/src/main/java/com/hbm/commands/CommandSatellites.java new file mode 100644 index 000000000..82f474b70 --- /dev/null +++ b/src/main/java/com/hbm/commands/CommandSatellites.java @@ -0,0 +1,87 @@ +package com.hbm.commands; + +import com.hbm.items.ISatChip; +import com.hbm.items.ModItems; +import com.hbm.saveddata.SatelliteSavedData; +import com.hbm.saveddata.satellites.Satellite; +import net.minecraft.command.CommandBase; +import net.minecraft.command.ICommandSender; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.ChatComponentTranslation; +import net.minecraft.util.ChatStyle; +import net.minecraft.util.EnumChatFormatting; + +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; + +public class CommandSatellites extends CommandBase { + @Override + public String getCommandName() { + return "ntmsatellites"; + } + + @Override + public String getCommandUsage(ICommandSender iCommandSender) { + return String.format( + "%s/%s orbit %s- Launch the held satellite\n" + + "%s/%s descend %s- Deletes satellite by frequency.", + EnumChatFormatting.GREEN, getCommandName(), EnumChatFormatting.LIGHT_PURPLE, + EnumChatFormatting.GREEN, getCommandName(), EnumChatFormatting.LIGHT_PURPLE + ); + } + + @Override + public void processCommand(ICommandSender sender, String[] args) { + if(!(sender instanceof EntityPlayer)) { + sender.addChatMessage(new ChatComponentTranslation( "commands.satellite.should_be_run_as_player").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.RED))); + return; + } + switch (args[0]) { + case "orbit": + EntityPlayer player = getCommandSenderAsPlayer(sender); + if(player.getHeldItem().getItem() instanceof ISatChip && player.getHeldItem().getItem() != ModItems.sat_chip) { + Satellite.orbit( + player.worldObj, + Satellite.getIDFromItem(player.getHeldItem().getItem()), + ISatChip.getFreqS(player.getHeldItem()), + player.posX, player.posY, player.posZ + ); + player.getHeldItem().stackSize -= 1; + sender.addChatMessage(new ChatComponentTranslation("commands.satellite.satellite_orbited").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.GREEN))); + } else { + sender.addChatMessage(new ChatComponentTranslation("commands.satellite.not_a_satellite").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.RED))); + } + break; + case "descend": + int freq = parseInt(sender, args[1]); + SatelliteSavedData data = SatelliteSavedData.getData(sender.getEntityWorld()); + if(data.sats.containsKey(freq)) { + data.sats.remove(freq); + data.markDirty(); + sender.addChatMessage(new ChatComponentTranslation( "commands.satellite.satellite_descended").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.GREEN))); + } else { + sender.addChatMessage(new ChatComponentTranslation( "commands.satellite.no_satellite").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.RED))); + } + break; + } + } + + @SuppressWarnings("rawtypes") + @Override + public List addTabCompletionOptions(ICommandSender sender, String[] args) { + if(!(sender instanceof EntityPlayer)) { + return Collections.emptyList(); + } + if(args.length < 1) { + return Collections.emptyList(); + } + if(args.length == 1) { + return getListOfStringsMatchingLastWord(args, "orbit", "descend"); + } + if (args[0].equals("descend")) { + return getListOfStringsFromIterableMatchingLastWord(args, SatelliteSavedData.getData(sender.getEntityWorld()).sats.keySet().stream().map(String::valueOf).collect(Collectors.toList())); + } + return Collections.emptyList(); + } +} diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 1a039b530..6b7451986 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -1,5 +1,6 @@ package com.hbm.main; +import com.hbm.commands.CommandSatellites; import net.minecraft.block.BlockDispenser; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.dispenser.BehaviorDefaultDispenseItem; @@ -926,6 +927,7 @@ public class MainRegistry { SiegeOrchestrator.createGameRules(world); event.registerServerCommand(new CommandReloadRecipes()); event.registerServerCommand(new CommandDebugChunkLoad()); + event.registerServerCommand(new CommandSatellites()); } @EventHandler diff --git a/src/main/java/com/hbm/saveddata/SatelliteSavedData.java b/src/main/java/com/hbm/saveddata/SatelliteSavedData.java index f0ced3750..a0dd2a624 100644 --- a/src/main/java/com/hbm/saveddata/SatelliteSavedData.java +++ b/src/main/java/com/hbm/saveddata/SatelliteSavedData.java @@ -12,6 +12,17 @@ public class SatelliteSavedData extends WorldSavedData { public final HashMap sats = new HashMap<>(); + /** + * Constructor used for deserialization + * @param name - Map data name + */ + public SatelliteSavedData(String name) { + super(name); + } + + /** + * Default constructor for satellites map data. + */ public SatelliteSavedData() { super("satellites"); this.markDirty(); @@ -62,7 +73,6 @@ public class SatelliteSavedData extends WorldSavedData { worldObj.perWorldStorage.setData("satellites", new SatelliteSavedData()); data = (SatelliteSavedData)worldObj.perWorldStorage.loadData(SatelliteSavedData.class, "satellites"); - data.markDirty(); } return data; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatDock.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatDock.java index 07e6e9c1c..0fd248320 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatDock.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatDock.java @@ -28,8 +28,6 @@ import net.minecraft.world.World; import java.util.List; public class TileEntityMachineSatDock extends TileEntity implements ISidedInventory, IGUIProvider { - private SatelliteSavedData data; - private ItemStack[] slots; private static final int[] access = new int[] {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}; @@ -182,8 +180,7 @@ public class TileEntityMachineSatDock extends TileEntity implements ISidedInvent @Override public void updateEntity() { if (!worldObj.isRemote) { - if (data == null) - data = SatelliteSavedData.getData(worldObj); + SatelliteSavedData data = SatelliteSavedData.getData(worldObj); if (slots[15] != null) { int freq = ISatChip.getFreqS(slots[15]); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatLinker.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatLinker.java index e8793d0aa..8c3583106 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatLinker.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatLinker.java @@ -19,8 +19,6 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; public class TileEntityMachineSatLinker extends TileEntity implements ISidedInventory, IGUIProvider { - private SatelliteSavedData satelliteData; - private ItemStack[] slots; //public static final int maxFill = 64 * 3; @@ -176,9 +174,7 @@ public class TileEntityMachineSatLinker extends TileEntity implements ISidedInve } if(slots[2] != null && slots[2].getItem() instanceof ISatChip) { - if(satelliteData == null) { - satelliteData = SatelliteSavedData.getData(worldObj); - } + SatelliteSavedData satelliteData = SatelliteSavedData.getData(worldObj); int newId = worldObj.rand.nextInt(100000); if(!satelliteData.isFreqTaken(newId)) { ISatChip.setFreqS(slots[2], newId); diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index f0d31585c..4bfcf8ce1 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -604,6 +604,12 @@ chem.XENON=Linde Xenon Cycle chem.XENON_OXY=Boosted Linde Xenon Cycle chem.YELLOWCAKE=Yellowcake Production +commands.satellite.no_satellite=No satellite using this frequency found! +commands.satellite.not_a_satellite=The held item is not a satellite! +commands.satellite.satellite_descended=Satellite successfully descended. +commands.satellite.satellite_orbited=Satellite launched. +commands.satellite.should_be_run_as_player=This command should be run by a player! + container.amsBase=AMS Base (Deco) container.amsEmitter=AMS Emitter (Deco) container.amsLimiter=AMS Stabilizer (Deco) From a23e9be2a71b750823a8464895dec33229ea2d5b Mon Sep 17 00:00:00 2001 From: sdddddf80 <2980187979@qq.com> Date: Tue, 25 Jul 2023 13:47:26 +0800 Subject: [PATCH 213/432] add Structure display for custom machine --- src/main/java/com/hbm/blocks/ModBlocks.java | 2 +- .../hbm/config/CustomMachineConfigJSON.java | 7 +-- src/main/java/com/hbm/main/ClientProxy.java | 1 + .../tileentity/RenderCustomMachine.java | 44 +++++++++++++++++++ 4 files changed, 50 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/hbm/render/tileentity/RenderCustomMachine.java diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 7783f7652..0e00c1c8e 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -2027,7 +2027,7 @@ public class ModBlocks { cm_tank = new BlockCMGlass(Material.iron, EnumCMMaterials.class, true, true).setBlockName("cm_tank").setCreativeTab(MainRegistry.machineTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":cm_tank"); cm_circuit = new BlockCM(Material.iron, EnumCMCircuit.class, true, true).setBlockName("cm_circuit").setCreativeTab(MainRegistry.machineTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":cm_circuit"); cm_port = new BlockCMPort(Material.iron, EnumCMMaterials.class, true, true).setBlockName("cm_port").setCreativeTab(MainRegistry.machineTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":cm_port"); - custom_machine = new BlockCustomMachine().setBlockName("custom_machine").setCreativeTab(MainRegistry.machineTab).setHardness(5.0F).setResistance(10.0F); + custom_machine = new BlockCustomMachine().setBlockName("custom_machine").setCreativeTab(MainRegistry.machineTab).setLightLevel(1F).setHardness(5.0F).setResistance(10.0F); reactor_element = new BlockPillar(Material.iron, RefStrings.MODID + ":reactor_element_top", RefStrings.MODID + ":reactor_element_base").setBlockName("reactor_element").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":reactor_element_side"); reactor_control = new BlockPillar(Material.iron, RefStrings.MODID + ":reactor_control_top").setBlockName("reactor_control").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":reactor_control_side"); diff --git a/src/main/java/com/hbm/config/CustomMachineConfigJSON.java b/src/main/java/com/hbm/config/CustomMachineConfigJSON.java index 79a659261..359eb3db5 100644 --- a/src/main/java/com/hbm/config/CustomMachineConfigJSON.java +++ b/src/main/java/com/hbm/config/CustomMachineConfigJSON.java @@ -203,9 +203,9 @@ public class CustomMachineConfigJSON { compDef.y = compObject.get("y").getAsInt(); compDef.z = compObject.get("z").getAsInt(); compDef.allowedMetas = new HashSet(); - JsonArray metas = compObject.get("metas").getAsJsonArray(); - for(int k = 0; k < metas.size(); k++) { - compDef.allowedMetas.add(metas.get(k).getAsInt()); + compDef.metas = compObject.get("metas").getAsJsonArray(); + for(int k = 0; k < compDef.metas.size(); k++) { + compDef.allowedMetas.add(compDef.metas.get(k).getAsInt()); } configuration.components.add(compDef); @@ -248,6 +248,7 @@ public class CustomMachineConfigJSON { public static class ComponentDefinition { public Block block; public Set allowedMetas; + public JsonArray metas; public int x; public int y; public int z; diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 14d0c8a6e..c31870b9c 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -325,6 +325,7 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityITERStruct.class, new RenderITERMultiblock()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPlasmaStruct.class, new RenderPlasmaMultiblock()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityWatzStruct.class, new RenderWatzMultiblock()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCustomMachine.class, new RenderCustomMachine()); //RBMK ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKControlManual.class, new RenderRBMKControlRod()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKControlAuto.class, new RenderRBMKControlRod()); diff --git a/src/main/java/com/hbm/render/tileentity/RenderCustomMachine.java b/src/main/java/com/hbm/render/tileentity/RenderCustomMachine.java new file mode 100644 index 000000000..eb325b70c --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderCustomMachine.java @@ -0,0 +1,44 @@ +package com.hbm.render.tileentity; + +import com.hbm.config.CustomMachineConfigJSON; +import com.hbm.render.util.SmallBlockPronter; +import com.hbm.tileentity.machine.TileEntityCustomMachine; +import net.minecraft.client.renderer.texture.TextureMap; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.util.ForgeDirection; +import org.lwjgl.opengl.GL11; + +public class RenderCustomMachine extends TileEntitySpecialRenderer { + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { + NBTTagCompound nbt = new NBTTagCompound(); + tile.writeToNBT(nbt); + CustomMachineConfigJSON.MachineConfiguration config = CustomMachineConfigJSON.customMachines.get(nbt.getString("machineType")); + + ForgeDirection dir = ForgeDirection.getOrientation(tile.getBlockMetadata()); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + GL11.glPushMatrix(); + GL11.glTranslated(x, y, z); + + bindTexture(TextureMap.locationBlocksTexture); + SmallBlockPronter.startDrawing(); + for(CustomMachineConfigJSON.MachineConfiguration.ComponentDefinition comp : config.components){ + int rx = - dir.offsetX * comp.x + rot.offsetX * comp.x; + int ry = + comp.y; + int rz = - dir.offsetZ * comp.z + rot.offsetZ * comp.z; + if(dir == ForgeDirection.EAST || dir == ForgeDirection.WEST) { + rx = + dir.offsetZ * comp.z - rot.offsetZ * comp.z; + rz = + dir.offsetX * comp.x - rot.offsetX * comp.x; + } + SmallBlockPronter.drawSmolBlockAt(comp.block,comp.metas.get(comp.metas.size()-1).getAsInt(),rx,ry,rz); + + } + + SmallBlockPronter.draw(); + + GL11.glPopMatrix(); + } +} From 1ffb2737aac316bd6376ea576ac3da555c343041 Mon Sep 17 00:00:00 2001 From: Bob Date: Tue, 25 Jul 2023 22:21:48 +0200 Subject: [PATCH 214/432] ow --- changelog | 27 +++----- gradle.properties | 6 +- .../com/hbm/handler/EntityEffectHandler.java | 2 + .../handler/pollution/PollutionHandler.java | 4 +- src/main/java/com/hbm/lib/RefStrings.java | 2 +- .../tileentity/RenderCustomMachine.java | 66 ++++++++++--------- .../machine/TileEntityCustomMachine.java | 2 + 7 files changed, 54 insertions(+), 55 deletions(-) diff --git a/changelog b/changelog index e06e326bf..07447e1f7 100644 --- a/changelog +++ b/changelog @@ -1,24 +1,13 @@ ## Added -* Custom machines - * Simple processing multiblocks that can be created via config - * The config found in `hbmConfig/hbmCustomMachines.json` defines the input and output slots, fluid amount, speed and consumption multipliers as well as the multiblock - * The config in `hbmRecipes/hbmCustomMachines.json` defines the recipes for all multiblocks with inputs, outputs base speed and consumption rates - * Currently, custom machine recipes do not show up in NEI, a handler will be added soon - * All recipes are shaped, even the fluid types, this was done to improve performance - * Item inputs have filter slots for automation, this allows the right ingredients to be inserted into the right slot easily. For simple machines, this slot can be left empty so any item can be inserted. - * By default, the standard config creates one custom machine with one recipe called the paper press, turning sawdust and water into paper - * More examples can be found in the configs attached to this github release - * Custom machines can also be configured as generators, using up item and fluid inputs and turning them into energy - * While changing the configs and adding/removing machines in an existing world is possible, this is not recommended because of potential ID shifts of the machines, breaking existing custom machines in the world - * With custom machines, quite a few otherwise unused construction blocks have been added which are recommended to be used for custom machines as they come in tiers, have reasonable cost and mesh well visually with the multiblocks - * However, using them is not mandatory, the only functional block is the port which is most likely needed for automation, although the machine's controller itself also serves as a port +* New command `/ntmsatellites` + * `/ntmsatellites orbit` will send the held saatellite into orbit + * `/ntmsatellites descend ` will delete the given satellite ## Changed -* Additional OC compat for fluid gauges -* Crates now display their contents when in item form +* Updated russian localization +* It's no longer possible to insert items into the satellite cargo pad, it's only for unloading +* The satellite linker will no longer assign new frequencies in the randomizer slot if that frequency is already taken +* Custom machines will now show a hologram showing how they are built ## Fixed -* Hopefully fixed an issue where pollution-based mob buffs apply multiple times, resulting in near-unkillable mobs -* Fixed exploit allowing the cap for shield infusions to be bypassed -* Fixed tier detection mode in the radar detecting the Y-position instead of the actual tier -* Fixed missing parenthesis in sigmoid curve's description \ No newline at end of file +* Fixed crash caused by mobs spawning in highly polluted area \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index a5787a31d..d305d95b5 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4670 +mod_build_number=4671 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ @@ -14,5 +14,5 @@ credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion al \ Toshayo (satellite loot system, project settings, gradle curse task), Silly541 (config for safe ME drives),\ \ Voxelstice (OpenComputers integration, turbine spinup), BallOfEnergy1 (OpenComputers integration), martemen\ \ (project settings), Pvndols (thorium fuel recipe, gas turbine), JamesH2 (blood mechanics, nitric acid,\ - \ particle emitter), sdddddf80 (recipe configs, chinese localization), SuperCraftAlex (tooltips)\ - \ LePeep (coilgun model), Maksymisio (polish localization) + \ particle emitter), sdddddf80 (recipe configs, chinese localization, custom machine holograms),\ + \ SuperCraftAlex (tooltips) LePeep (coilgun model), Maksymisio (polish localization) diff --git a/src/main/java/com/hbm/handler/EntityEffectHandler.java b/src/main/java/com/hbm/handler/EntityEffectHandler.java index 3396b2472..467318ff7 100644 --- a/src/main/java/com/hbm/handler/EntityEffectHandler.java +++ b/src/main/java/com/hbm/handler/EntityEffectHandler.java @@ -370,6 +370,8 @@ public class EntityEffectHandler { double asbestos = Math.min(HbmLivingProps.getAsbestos(entity), HbmLivingProps.maxAsbestos); double soot = PollutionHandler.getPollution(entity.worldObj, (int) Math.floor(entity.posX), (int) Math.floor(entity.posY + entity.getEyeHeight()), (int) Math.floor(entity.posZ), PollutionType.SOOT); + if(!(entity instanceof EntityPlayer)) soot = 0; + if(ArmorRegistry.hasProtection(entity, 3, HazardClass.PARTICLE_COARSE)) soot = 0; boolean coughs = blacklung / HbmLivingProps.maxBlacklung > 0.25D || asbestos / HbmLivingProps.maxAsbestos > 0.25D || soot > 30; diff --git a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java index 6f783a4f5..0ba128f52 100644 --- a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java +++ b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java @@ -323,8 +323,8 @@ public class PollutionHandler { if(living instanceof IMob) { if(data.pollution[PollutionType.SOOT.ordinal()] > RadiationConfig.buffMobThreshold) { - if(living.getEntityAttribute(SharedMonsterAttributes.maxHealth) != null) living.getEntityAttribute(SharedMonsterAttributes.maxHealth).applyModifier(new AttributeModifier(maxHealth, "Soot Anger Health Increase", 1D, 1)); - if(living.getEntityAttribute(SharedMonsterAttributes.attackDamage) != null) living.getEntityAttribute(SharedMonsterAttributes.attackDamage).applyModifier(new AttributeModifier(attackDamage, "Soot Anger Damage Increase", 1.5D, 1)); + if(living.getEntityAttribute(SharedMonsterAttributes.maxHealth) != null && living.getEntityAttribute(SharedMonsterAttributes.maxHealth).getModifier(maxHealth) == null) living.getEntityAttribute(SharedMonsterAttributes.maxHealth).applyModifier(new AttributeModifier(maxHealth, "Soot Anger Health Increase", 1D, 1)); + if(living.getEntityAttribute(SharedMonsterAttributes.attackDamage) != null && living.getEntityAttribute(SharedMonsterAttributes.attackDamage).getModifier(attackDamage) == null) living.getEntityAttribute(SharedMonsterAttributes.attackDamage).applyModifier(new AttributeModifier(attackDamage, "Soot Anger Damage Increase", 1.5D, 1)); living.heal(living.getMaxHealth()); } } diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 5e3527635..81bc67970 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4670)"; + public static final String VERSION = "1.0.27 BETA (4671)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/render/tileentity/RenderCustomMachine.java b/src/main/java/com/hbm/render/tileentity/RenderCustomMachine.java index eb325b70c..1c5d6835a 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderCustomMachine.java +++ b/src/main/java/com/hbm/render/tileentity/RenderCustomMachine.java @@ -3,42 +3,48 @@ package com.hbm.render.tileentity; import com.hbm.config.CustomMachineConfigJSON; import com.hbm.render.util.SmallBlockPronter; import com.hbm.tileentity.machine.TileEntityCustomMachine; + import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.util.ForgeDirection; import org.lwjgl.opengl.GL11; public class RenderCustomMachine extends TileEntitySpecialRenderer { - @Override - public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { - NBTTagCompound nbt = new NBTTagCompound(); - tile.writeToNBT(nbt); - CustomMachineConfigJSON.MachineConfiguration config = CustomMachineConfigJSON.customMachines.get(nbt.getString("machineType")); + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { + + TileEntityCustomMachine custom = (TileEntityCustomMachine) tile; + CustomMachineConfigJSON.MachineConfiguration config = custom.config; - ForgeDirection dir = ForgeDirection.getOrientation(tile.getBlockMetadata()); - ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - - GL11.glPushMatrix(); - GL11.glTranslated(x, y, z); - - bindTexture(TextureMap.locationBlocksTexture); - SmallBlockPronter.startDrawing(); - for(CustomMachineConfigJSON.MachineConfiguration.ComponentDefinition comp : config.components){ - int rx = - dir.offsetX * comp.x + rot.offsetX * comp.x; - int ry = + comp.y; - int rz = - dir.offsetZ * comp.z + rot.offsetZ * comp.z; - if(dir == ForgeDirection.EAST || dir == ForgeDirection.WEST) { - rx = + dir.offsetZ * comp.z - rot.offsetZ * comp.z; - rz = + dir.offsetX * comp.x - rot.offsetX * comp.x; - } - SmallBlockPronter.drawSmolBlockAt(comp.block,comp.metas.get(comp.metas.size()-1).getAsInt(),rx,ry,rz); - - } - - SmallBlockPronter.draw(); - - GL11.glPopMatrix(); - } + ForgeDirection dir = ForgeDirection.getOrientation(tile.getBlockMetadata()); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + if(config != null && !custom.structureOK) { + + GL11.glPushMatrix(); + GL11.glTranslated(x, y, z); + + bindTexture(TextureMap.locationBlocksTexture); + SmallBlockPronter.startDrawing(); + for(CustomMachineConfigJSON.MachineConfiguration.ComponentDefinition comp : config.components) { + int rx = -dir.offsetX * comp.x + rot.offsetX * comp.x; + int ry = +comp.y; + int rz = -dir.offsetZ * comp.z + rot.offsetZ * comp.z; + if(dir == ForgeDirection.EAST || dir == ForgeDirection.WEST) { + rx = +dir.offsetZ * comp.z - rot.offsetZ * comp.z; + rz = +dir.offsetX * comp.x - rot.offsetX * comp.x; + } + + int index = (int) ((System.currentTimeMillis() / 1000) % comp.metas.size()); + SmallBlockPronter.drawSmolBlockAt(comp.block, comp.metas.get(index).getAsInt(), rx, ry, rz); + + } + + SmallBlockPronter.draw(); + + GL11.glPopMatrix(); + } + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java index 6a7d3973d..dc3302b46 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java @@ -174,6 +174,7 @@ public class TileEntityCustomMachine extends TileEntityMachineBase implements IF NBTTagCompound data = new NBTTagCompound(); data.setString("type", this.machineType); data.setLong("power", power); + data.setBoolean("structureOK", structureOK); data.setInteger("progress", progress); data.setInteger("maxProgress", maxProgress); for(int i = 0; i < inputTanks.length; i++) inputTanks[i].writeToNBT(data, "i" + i); @@ -369,6 +370,7 @@ public class TileEntityCustomMachine extends TileEntityMachineBase implements IF this.power = nbt.getLong("power"); this.progress = nbt.getInteger("progress"); + this.structureOK = nbt.getBoolean("structureOK"); this.maxProgress = nbt.getInteger("maxProgress"); for(int i = 0; i < inputTanks.length; i++) inputTanks[i].readFromNBT(nbt, "i" + i); for(int i = 0; i < outputTanks.length; i++) outputTanks[i].readFromNBT(nbt, "o" + i); From 52f39064fc2a9512393f4647c5e3b2abb87c5296 Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Fri, 28 Jul 2023 16:23:36 -0500 Subject: [PATCH 215/432] removed the compat for the fluid gauge due to crashes related to the TE. --- .../hbm/blocks/network/FluidDuctGauge.java | 36 +------------------ 1 file changed, 1 insertion(+), 35 deletions(-) diff --git a/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java b/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java index abf4cc4d1..f9dc2498f 100644 --- a/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java +++ b/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java @@ -15,13 +15,8 @@ import com.hbm.tileentity.network.TileEntityPipeBaseNT; import com.hbm.util.I18nUtil; import api.hbm.fluid.IPipeNet; -import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import li.cil.oc.api.machine.Arguments; -import li.cil.oc.api.machine.Callback; -import li.cil.oc.api.machine.Context; -import li.cil.oc.api.network.SimpleComponent; import net.minecraft.block.BlockPistonBase; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; @@ -106,8 +101,7 @@ public class FluidDuctGauge extends FluidDuctBase implements IBlockMultiPass, IL return IBlockMultiPass.getRenderType(); } - @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) - public static class TileEntityPipeGauge extends TileEntityPipeBaseNT implements INBTPacketReceiver, SimpleComponent { + public static class TileEntityPipeGauge extends TileEntityPipeBaseNT implements INBTPacketReceiver { private BigInteger lastMeasurement = BigInteger.valueOf(10); private long deltaTick = 0; @@ -151,33 +145,5 @@ public class FluidDuctGauge extends FluidDuctBase implements IBlockMultiPass, IL this.deltaLastSecond = Math.max(nbt.getLong("deltaS"), 0); } - @Override - public String getComponentName() { - return "ntm_fluid_gauge"; - } - - @Callback(direct = true, limit = 16) - @Optional.Method(modid = "OpenComputers") - public Object[] getTick(Context context, Arguments args) { - return new Object[] {deltaTick}; - } - - @Callback(direct = true, limit = 16) - @Optional.Method(modid = "OpenComputers") - public Object[] getSecond(Context context, Arguments args) { - return new Object[] {deltaSecond}; - } - - @Callback(direct = true, limit = 16) - @Optional.Method(modid = "OpenComputers") - public Object[] getType(Context context, Arguments args) { - return new Object[] {I18nUtil.resolveKey(getType().getUnlocalizedName())}; - } - - @Callback(direct = true, limit = 16) - @Optional.Method(modid = "OpenComputers") - public Object[] getInfo(Context context, Arguments args) { - return new Object[] {deltaTick, deltaSecond, I18nUtil.resolveKey(getType().getUnlocalizedName()), xCoord, yCoord, zCoord}; - } } } From 647c8379093e149f0e2d953c8f5e464ba464118e Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 30 Jul 2023 19:00:35 +0200 Subject: [PATCH 216/432] and now for something completely different --- .../blocks/machine/MachineElectrolyser.java | 52 ++++--- .../com/hbm/interfaces/IControlReceiver.java | 4 +- .../container/ContainerElectrolyserFluid.java | 54 +++++++ .../inventory/gui/GUIElectrolyserFluid.java | 60 +++++++ .../java/com/hbm/packet/NBTControlPacket.java | 15 +- .../machine/TileEntityElectrolyser.java | 147 ++++++------------ .../gui/processing/gui_electrolyser_fluid.png | Bin 3941 -> 4936 bytes .../gui/processing/gui_electrolyser_metal.png | Bin 4062 -> 5971 bytes 8 files changed, 200 insertions(+), 132 deletions(-) create mode 100644 src/main/java/com/hbm/inventory/container/ContainerElectrolyserFluid.java create mode 100644 src/main/java/com/hbm/inventory/gui/GUIElectrolyserFluid.java diff --git a/src/main/java/com/hbm/blocks/machine/MachineElectrolyser.java b/src/main/java/com/hbm/blocks/machine/MachineElectrolyser.java index fb3ee992f..d6ca71710 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineElectrolyser.java +++ b/src/main/java/com/hbm/blocks/machine/MachineElectrolyser.java @@ -26,12 +26,12 @@ public class MachineElectrolyser extends BlockDummyable { @Override public int[] getDimensions() { - return new int[] {0, 0, 4, 4, 2, 2}; + return new int[] {0, 0, 5, 5, 1, 3}; } @Override public int getOffset() { - return 4; + return 5; } @Override @@ -42,33 +42,39 @@ public class MachineElectrolyser extends BlockDummyable { @Override public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { super.fillSpace(world, x, y, z, dir, o); - MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {1, 0, 4, 4, 1, 1}, this, dir); - MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {3, -1, 4, 4, 0, 0}, this, dir); - MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {3, 0, 1, -1, -2, 2}, this, dir); - MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , 3 + y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {0, 0, 1, -1, -1, 1}, this, dir); - MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {3, 0, 3, -3, -2, 2}, this, dir); - MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , 3 + y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {0, 0, 3, -3, -1, 1}, this, dir); - MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {3, 0, -1, 1, -2, 2}, this, dir); - MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , 3 + y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {0, 0, -1, 1, -1, 1}, this, dir); - MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {3, 0, -3, 3, -2, 2}, this, dir); - MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , 3 + y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {0, 0, -3, 3, -1, 1}, this, dir); + + MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y, z + dir.offsetZ * o, new int[] {2, -1, 5, 5, 1, 1}, this, dir); + MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y, z + dir.offsetZ * o, new int[] {3, -3, 5, 5, 0, 0}, this, dir); + MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y, z + dir.offsetZ * o, new int[] {3, -1, 4, -4, -3, 3}, this, dir); + MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y, z + dir.offsetZ * o, new int[] {3, -1, 2, -2, -3, 3}, this, dir); + MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y, z + dir.offsetZ * o, new int[] {3, -1, 0, 0, -3, 3}, this, dir); + MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y, z + dir.offsetZ * o, new int[] {3, -1, -2, 2, -3, 3}, this, dir); + MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y, z + dir.offsetZ * o, new int[] {3, -1, -4, 4, -3, 3}, this, dir); + MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y + 3, z + dir.offsetZ * o, new int[] {0, 0, 4, -4, -1, 2}, this, dir); + MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y + 3, z + dir.offsetZ * o, new int[] {0, 0, 2, -2, -1, 2}, this, dir); + MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y + 3, z + dir.offsetZ * o, new int[] {0, 0, 0, 0, -1, 2}, this, dir); + MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y + 3, z + dir.offsetZ * o, new int[] {0, 0, -2, 2, -1, 2}, this, dir); + MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y + 3, z + dir.offsetZ * o, new int[] {0, 0, -4, 4, -1, 2}, this, dir); } @Override protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) { - if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, getDimensions(), x, y, z, dir)) return false; - if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {1, 0, 4, 4, 1, 1}, x, y, z, dir)) return false; - if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {3, -1, 4, 4, 0, 0}, x, y, z, dir)) return false; - if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {3, 0, 1, -1, -2, 2}, x, y, z, dir)) return false; - if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , 3 + y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {0, 0, 1, -1, -1, 1}, x, y, z, dir)) return false; - if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {3, 0, 3, -3, -2, 2}, x, y, z, dir)) return false; - if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , 3 + y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {0, 0, 3, -3, -1, 1}, x, y, z, dir)) return false; - if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {3, 0, -1, 1, -2, 2}, x, y, z, dir)) return false; - if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , 3 + y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {0, 0, -1, 1, -1, 1}, x, y, z, dir)) return false; - if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {3, 0, -3, 3, -2, 2}, x, y, z, dir)) return false; - if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , 3 + y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {0, 0, -3, 3, -1, 1}, x, y, z, dir)) return false; + if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y , z + dir.offsetZ * o, getDimensions(), x, y, z, dir)) return false; + + if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y, z + dir.offsetZ * o, new int[] {2, -1, 5, 5, 1, 1}, x, y, z, dir)) return false; + if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y, z + dir.offsetZ * o, new int[] {3, -3, 5, 5, 0, 0}, x, y, z, dir)) return false; + if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y, z + dir.offsetZ * o, new int[] {3, -1, 4, -4, -3, 3}, x, y, z, dir)) return false; + if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y, z + dir.offsetZ * o, new int[] {3, -1, 2, -2, -3, 3}, x, y, z, dir)) return false; + if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y, z + dir.offsetZ * o, new int[] {3, -1, 0, 0, -3, 3}, x, y, z, dir)) return false; + if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y, z + dir.offsetZ * o, new int[] {3, -1, -2, 2, -3, 3}, x, y, z, dir)) return false; + if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y, z + dir.offsetZ * o, new int[] {3, -1, -4, 4, -3, 3}, x, y, z, dir)) return false; + if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y + 3, z + dir.offsetZ * o, new int[] {0, 0, 4, -4, -1, 2}, x, y, z, dir)) return false; + if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y + 3, z + dir.offsetZ * o, new int[] {0, 0, 2, -2, -1, 2}, x, y, z, dir)) return false; + if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y + 3, z + dir.offsetZ * o, new int[] {0, 0, 0, 0, -1, 2}, x, y, z, dir)) return false; + if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y + 3, z + dir.offsetZ * o, new int[] {0, 0, -2, 2, -1, 2}, x, y, z, dir)) return false; + if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y + 3, z + dir.offsetZ * o, new int[] {0, 0, -4, 4, -1, 2}, x, y, z, dir)) return false; return true; } diff --git a/src/main/java/com/hbm/interfaces/IControlReceiver.java b/src/main/java/com/hbm/interfaces/IControlReceiver.java index 74ff5d0c6..fe49fdf2e 100644 --- a/src/main/java/com/hbm/interfaces/IControlReceiver.java +++ b/src/main/java/com/hbm/interfaces/IControlReceiver.java @@ -10,6 +10,8 @@ import net.minecraft.nbt.NBTTagCompound; public interface IControlReceiver { public boolean hasPermission(EntityPlayer player); - + public void receiveControl(NBTTagCompound data); + /* this was the easiest way of doing this without needing to change all 7 quadrillion implementors */ + public default void receiveControl(EntityPlayer player, NBTTagCompound data) { } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerElectrolyserFluid.java b/src/main/java/com/hbm/inventory/container/ContainerElectrolyserFluid.java new file mode 100644 index 000000000..d52d54c24 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerElectrolyserFluid.java @@ -0,0 +1,54 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotTakeOnly; +import com.hbm.tileentity.machine.TileEntityElectrolyser; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; + +public class ContainerElectrolyserFluid extends Container { + + private TileEntityElectrolyser electrolyser; + + public ContainerElectrolyserFluid(InventoryPlayer invPlayer, TileEntityElectrolyser tedf) { + electrolyser = tedf; + + //Battery + this.addSlotToContainer(new Slot(tedf, 0, 186, 109)); + //Upgrades + this.addSlotToContainer(new Slot(tedf, 1, 186, 140)); + this.addSlotToContainer(new Slot(tedf, 2, 186, 158)); + //Fluid ID + this.addSlotToContainer(new Slot(tedf, 3, 6, 18)); + this.addSlotToContainer(new SlotTakeOnly(tedf, 4, 6, 54)); + //Input + this.addSlotToContainer(new Slot(tedf, 5, 24, 18)); + this.addSlotToContainer(new SlotTakeOnly(tedf, 6, 24, 54)); + //Output + this.addSlotToContainer(new Slot(tedf, 7, 78, 18)); + this.addSlotToContainer(new SlotTakeOnly(tedf, 8, 78, 54)); + this.addSlotToContainer(new Slot(tedf, 9, 134, 18)); + this.addSlotToContainer(new SlotTakeOnly(tedf, 10, 134, 54)); + //Byproducts + this.addSlotToContainer(new SlotTakeOnly(tedf, 11, 154, 18)); + this.addSlotToContainer(new SlotTakeOnly(tedf, 12, 154, 36)); + this.addSlotToContainer(new SlotTakeOnly(tedf, 13, 154, 54)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 122 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 180)); + } + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return electrolyser.isUseableByPlayer(player); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIElectrolyserFluid.java b/src/main/java/com/hbm/inventory/gui/GUIElectrolyserFluid.java new file mode 100644 index 000000000..f23f12075 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIElectrolyserFluid.java @@ -0,0 +1,60 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerElectrolyserFluid; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.machine.TileEntityElectrolyser; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUIElectrolyserFluid extends GuiInfoContainer { + + public static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_electrolyser_fluid.png"); + private TileEntityElectrolyser electrolyser; + + public GUIElectrolyserFluid(InventoryPlayer invPlayer, TileEntityElectrolyser electrolyser) { + super(new ContainerElectrolyserFluid(invPlayer, electrolyser)); + this.electrolyser = electrolyser; + + this.xSize = 210; + this.ySize = 204; + } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + + electrolyser.tanks[0].renderTankInfo(this, mouseX, mouseY, guiLeft + 42, guiTop + 18, 16, 52); + electrolyser.tanks[1].renderTankInfo(this, mouseX, mouseY, guiLeft + 96, guiTop + 18, 16, 52); + electrolyser.tanks[2].renderTankInfo(this, mouseX, mouseY, guiLeft + 116, guiTop + 18, 16, 52); + + this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 186, guiTop + 18, 16, 89, electrolyser.power, electrolyser.maxPower); + } + + protected void mouseClicked(int x, int y, int i) { + super.mouseClicked(x, y, i); + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.electrolyser.hasCustomInventoryName() ? this.electrolyser.getInventoryName() : I18n.format(this.electrolyser.getInventoryName()); + + this.fontRendererObj.drawString(name, (this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2) - 16, 7, 0xffffff); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 94, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + electrolyser.tanks[0].renderTank(guiLeft + 42, guiTop + 70, this.zLevel, 16, 52); + electrolyser.tanks[1].renderTank(guiLeft + 96, guiTop + 70, this.zLevel, 16, 52); + electrolyser.tanks[2].renderTank(guiLeft + 116, guiTop + 70, this.zLevel, 16, 52); + } +} diff --git a/src/main/java/com/hbm/packet/NBTControlPacket.java b/src/main/java/com/hbm/packet/NBTControlPacket.java index 8ce47aa3c..226b3eae1 100644 --- a/src/main/java/com/hbm/packet/NBTControlPacket.java +++ b/src/main/java/com/hbm/packet/NBTControlPacket.java @@ -32,7 +32,6 @@ public class NBTControlPacket implements IMessage { try { buffer.writeNBTTagCompoundToBuffer(nbt); - } catch (IOException e) { e.printStackTrace(); } @@ -45,9 +44,8 @@ public class NBTControlPacket implements IMessage { y = buf.readInt(); z = buf.readInt(); - if (buffer == null) { - buffer = new PacketBuffer(Unpooled.buffer()); - } + if(buffer == null) buffer = new PacketBuffer(Unpooled.buffer()); + buffer.writeBytes(buf); } @@ -58,9 +56,8 @@ public class NBTControlPacket implements IMessage { buf.writeInt(y); buf.writeInt(z); - if (buffer == null) { - buffer = new PacketBuffer(Unpooled.buffer()); - } + if (buffer == null) buffer = new PacketBuffer(Unpooled.buffer()); + buf.writeBytes(buffer); } @@ -85,8 +82,10 @@ public class NBTControlPacket implements IMessage { IControlReceiver tile = (IControlReceiver)te; - if(tile.hasPermission(p)) + if(tile.hasPermission(p)) { + tile.receiveControl(p, nbt); tile.receiveControl(nbt); + } } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java b/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java index c2eb12a1a..378317d76 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java @@ -1,17 +1,10 @@ package com.hbm.tileentity.machine; -import java.util.ArrayList; -import java.util.List; - -import com.hbm.blocks.BlockDummyable; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; -import com.hbm.inventory.container.ContainerElectrolyser; -import com.hbm.inventory.fluid.FluidType; +import com.hbm.interfaces.IControlReceiver; +import com.hbm.inventory.container.ContainerElectrolyserFluid; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; -import com.hbm.inventory.gui.GUIElectrolyser; -import com.hbm.lib.Library; +import com.hbm.inventory.gui.GUIElectrolyserFluid; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; @@ -24,9 +17,8 @@ import net.minecraft.inventory.Container; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityElectrolyser extends TileEntityMachineBase implements IEnergyUser, IFluidSource, IFluidAcceptor, IGUIProvider /* TODO: new fluid API */ { +public class TileEntityElectrolyser extends TileEntityMachineBase implements IEnergyUser, IControlReceiver, IGUIProvider { public long power; public static final long maxPower = 20000000; @@ -43,11 +35,19 @@ public class TileEntityElectrolyser extends TileEntityMachineBase implements IEn public FluidTank[] tanks; public TileEntityElectrolyser() { - super(24); - tanks = new FluidTank[3]; - tanks[0] = new FluidTank(Fluids.WATER, 16000, 0); - tanks[1] = new FluidTank(Fluids.HYDROGEN, 16000, 1); - tanks[2] = new FluidTank(Fluids.OXYGEN, 16000, 2); + //0: Battery + //1-2: Upgrades + //// FLUID + //3-4: Fluid ID + //5-10: Fluid IO + //11-13: Byproducts + //// METAL + super(21); + tanks = new FluidTank[4]; + tanks[0] = new FluidTank(Fluids.WATER, 16000); + tanks[1] = new FluidTank(Fluids.HYDROGEN, 16000); + tanks[2] = new FluidTank(Fluids.OXYGEN, 16000); + tanks[3] = new FluidTank(Fluids.NITRIC_ACID, 16000); } @Override @@ -60,9 +60,6 @@ public class TileEntityElectrolyser extends TileEntityMachineBase implements IEn if(!worldObj.isRemote) { - this.tanks[0].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - - NBTTagCompound data = new NBTTagCompound(); data.setLong("power", this.power); data.setInteger("progressFluid", this.progressFluid); @@ -70,25 +67,20 @@ public class TileEntityElectrolyser extends TileEntityMachineBase implements IEn data.setInteger("usage", this.usage); data.setInteger("processFluidTime", this.processFluidTime); data.setInteger("processOreTime", this.processOreTime); + for(int i = 0; i < 4; i++) tanks[i].writeToNBT(data, "t" + i); this.networkPack(data, 50); - - fillFluidInit(tanks[1].getTankType()); - fillFluidInit(tanks[2].getTankType()); } - } - + @Override - public void fillFluidInit(FluidType type) { - - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); - ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - - fillFluid(xCoord + dir.offsetX * 5 + rot.offsetX * -1, yCoord-1, zCoord + dir.offsetZ * 5 + rot.offsetZ * -1, getTact(), type); - fillFluid(xCoord + dir.offsetX * 5 + rot.offsetX * -1, yCoord-1, zCoord + dir.offsetZ * 5 + rot.offsetZ * 1, getTact(), type); - fillFluid(xCoord + dir.offsetX * -5 + rot.offsetX * -1, yCoord-1, zCoord + dir.offsetZ * 5 + rot.offsetZ * -1, getTact(), type); - fillFluid(xCoord + dir.offsetX * -5 + rot.offsetX * -1, yCoord-1, zCoord + dir.offsetZ * 5 + rot.offsetZ * 1, getTact(), type); - + public void networkUnpack(NBTTagCompound nbt) { + this.power = nbt.getLong("power"); + this.progressFluid = nbt.getInteger("progressFluid"); + this.progressOre = nbt.getInteger("progressOre"); + this.usage = nbt.getInteger("usage"); + this.processFluidTime = nbt.getInteger("processFluidTime"); + this.processOreTime = nbt.getInteger("processOreTime"); + for(int i = 0; i < 4; i++) tanks[i].readFromNBT(nbt, "t" + i); } AxisAlignedBB bb = null; @@ -98,12 +90,12 @@ public class TileEntityElectrolyser extends TileEntityMachineBase implements IEn if(bb == null) { bb = AxisAlignedBB.getBoundingBox( - xCoord - 3, + xCoord - 5, yCoord - 0, - zCoord - 4, - xCoord + 3, + zCoord - 5, + xCoord + 6, yCoord + 4, - zCoord + 4 + zCoord + 6 ); } @@ -126,65 +118,6 @@ public class TileEntityElectrolyser extends TileEntityMachineBase implements IEn return maxPower; } - @Override - public void setFillForSync(int fill, int index) { - tanks[index].setFill(fill); - - } - - @Override - public void setFluidFill(int fill, FluidType type) { - for(int i = 0; i < 3; i++) { - if(type == tanks[i].getTankType()) - tanks[i].setFill(fill); - } - - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tanks[index].setTankType(type); - - } - - @Override - public int getFluidFill(FluidType type) { - for(int i = 0; i < 3; i++) { - if(type == tanks[i].getTankType() && tanks[i].getFill() != 0) - return tanks[i].getFill(); - } - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - for(int i = 0; i < 3; i++) { - if(type == tanks[i].getTankType() && tanks[i].getMaxFill() != 0) - return tanks[i].getMaxFill(); - } - return 0; - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - return worldObj.getTotalWorldTime() % 20 < 10; - } - - @Override - public List getFluidList(FluidType type) { - return new ArrayList(); - } - - @Override - public void clearFluidList(FluidType type) { - return; - } - @Override public void setPower(long power) { this.power = power; @@ -192,13 +125,27 @@ public class TileEntityElectrolyser extends TileEntityMachineBase implements IEn @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new ContainerElectrolyser(player.inventory, this); + return new ContainerElectrolyserFluid(player.inventory, this); } @Override @SideOnly(Side.CLIENT) public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GUIElectrolyser(player.inventory, this); + return new GUIElectrolyserFluid(player.inventory, this); } + @Override + public void receiveControl(NBTTagCompound data) { + + } + + @Override + public void receiveControl(EntityPlayer player, NBTTagCompound data) { + + } + + @Override + public boolean hasPermission(EntityPlayer player) { + return this.isUseableByPlayer(player); + } } diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_electrolyser_fluid.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_electrolyser_fluid.png index 32b6d976e04ce0678c30d159a2cfdae5e8eb0701..b55cc63435db77cc96dbcfaec5c18f01579841d4 100644 GIT binary patch literal 4936 zcmb_g`9G9h8$UD1*b33e9+e_XDrJPJW}=cMTb413M6xq>25BLNkRnSZYk2HSj7eq9 zZpb$FeJ2@=nRj~L_fL4wFX#T;=f1A*b-vej?(;%lSBr;Jm=gfNb3+?-2LK535dvTb zn3JV@wjFa~^|*S&2*w-%Fx%$<@H1|pt{C~eTOM(-7jH}$Ked=En^y~O*ZO^E><1mlw zKt!V3DJZD6!{JO&sF~SW#}}fg%TWM0)hltMQK6*fbf3T$6i_W;DQ`K5hCbpsz><~E z7_>;7?qDnwMx~0Z=n61$+r`&7A0^SGeDt;(=m3)PS!9yo~5<5HQWk* zh=E4=)l#%W6bDZzrSM2Xf$({Cb@|QBO=$v}jTk)uqyQ--AtAw@I{L`IrhidPcB(m> z)bQ8TtpMiQwFl;mntvFBgLP3F`hN0w5hH-SZ6~g#LfbD%8NJ|hoSl~a6dcmg(}O$j zI~7292Nt36J8t1H@XK_%6#J?_49_GyUYFWi?^abEG?M4JGQz0wL`cyCH4KP@L6+#c zI%;Uz2TLq`Y+rILCw%e~zm?BMsU@avUiZ*ZlL!_+F}2bXkk@ZPk98fJOU zk!YDQyWk%wk+}H#v7p!pp)ytYHv+1Z@c6V2acb^DxeRLKyVpLgIH1|oIL)w&hW^vP zB=F(Edjk2@*k>4N{HnxZ6G5a^$VCnj%#+vUPvwW>vgG^;DpPWbwI?_Faqpixkfh{m zZkQWrmOQ>||6xHpU4EzKW?>GkEG0<+Ihg1qa?maXWt^(hOmq_DLyBx9Bw8KbS>#-0 zhd8}`C$!EtldG4BXawhHTaVWwHnURJ?@P+_A@9@}E2(pQnEkGoIyIV5@kS5@oLWrH z{cg|bC7Tqmx$d8k`KHYmC~ueaKU1;{%=3cnc}NW3<8bf6p#Lx7{)!ae zr8kc$wKl^%|B#J{3pWdMX=f)jIu=ulG&i{}lf+okTNV+i7KE=9U9Jg-_rvRj9^phF17#>kX_96=H@UW&)k zAGjsx@);Mf*&7nOyFF6sPHHM*ca(YFm_vrYFse%0&Lve(`y|)^1x*PHuTomU=Inhx zeZ!1<-8}kaw$8_vqvg@gNWlOR7NObR`t>`>q46VpO&6`SfbT?NXR7%rqF!>IXG4y^ z3eu6N(~~C`Jcu?x&Y0t`@gZx~An2PIcKvb_T!OA}q9f$-g|~%>?mXpS%zI~H{p4at z2ywe+WTU;Bs=P~B@1wNjh?e0XrKfu;wyL~(R1S3FumSECD3o0t5fQMY<{?!_&CsOP zk;&xomCWEjt-+5^&gj_(vc-_=9mHsnyd2a;8O`Cn?T@1mHMN!{(~o#9ar|PHXaM@+ zJ$OM!$H?ogtAzuFh0&#SxYg=Ijs8o}Y^nz2ku2WLkzAr{JGxh1uu1Og$Z>l45F$&I ziAds1x4%XHZH{-doXv~q;P^wIrHn(qlEXB;ydcFhKNa_>)8nfr;o+4x8&N5N7HvDq zHwxQn4qj)D&?BE;uKH*DaMhmM1Y6Pp$j8^pzUt-6Y{v?^&l)_8%v8l@_TTDF(9EaX zt*m7;(ln~KSGDTkX0$}&bI~VY!4AT#B(JO2KQ1S(%8D6!Z8??Aw%WF#Qg(V~;Cav3 zX?BMVuDr`tKpywy7uesxe6qQ3$u;XPO3Df_jK$bNx49$eoh0RrNJ3^}ek?z#|T+mYfe3(D>5PB+8`=5);6-m1Rh0*{%UX)im zp(ihz*v4O2cwdD?o}Dx#PRv)eV9(3{dLb4<@zt{Rx0vdak3FO*Q004$u|p(4;`d4L z)XU3LI0FMjc`otbzvZL@O`nMEZQhaL%o1b`VX#DZXgF?pmWAQn&?|>{Ycm&wN9=-z zesJUUc575mE818hRq0S_T^#sny=g7}&u zZH#wZ{%!=Rd`eEPHgh8@+6gWh0c5R~FSh@JNiMgR^RV}<$Qo@m+YXv4^zf{yVimd_ zrGhbC)egwG!_v#<8@alfh<>Pjd*Tg0uNgi0MKhpjH=IYa=8b)WedG2hS|j)m0d0wSzmuA_C_TyKBkg1go;cm=<>xh}CpM&jZ;*pXH-}r{i}U9+Y<3(bu3*u?OEEh{Rw^ z7fS;NRw>&73AYP#>g$S%x|;T08&`6T`QS*|(Co?9`~~%-Xx7rHJbOQk^H%HH?wv71 zE@zzUy1bZaK%40hL9T6M!~Mj(N!#KTlK-}*w~Ek=1ww&J-FfagSvh!hL$BwDNacA)`CpY|o!cg<%;qnJ96X^<>}RkW`dQ zwy~v2?`s`IlnePPa<5w(1MDly#TLlKuFWq>4YxykuIZKk4bFVI`DSQv<3ir ze>TFbh3KyqMy?yXvK2t2w(h;>Vt`+)oJIfH@0!8;-xwz|_~%Y4Dyn+ljZ z1wz22i2G_u$JDdD`3lVgF}K@ZTbt1rXKwF|YKiml#j+m~Z@P9!eQGHkU%u(UO)|f{ z6ujezjcaSW?YlPib&VaVvBgK~*bSWD-rMNd3$EK}k^9C-e*5+)J?PKUKs~!@pX|tC zYDP48XQdBn{H)aBuNDR?z*pKMj9Tr zJa2yH(CALi^XIfjn?q%_nlX*lT>4#6S6|BFv&SMu1?bshb@biEa0<0{nPf?TEUKw%RRm$D!iih_kmN8pit}=*e zuZC8-O+NkE*4CWtLOd-crC76e_5DS0)1&eEun&`m2h?VIu<{9_oi}ad@QNB$>fJn* zjD%;;_8C6tv82d>u(?Zm!COp@CE#=kRd*B<$aHrfGI|sZ{%uYN8(3C?r|$(THZ?9GLGYutwV$8) z-{bTp<-kfcC36>le+!DwWYir8=IQiSVZVnbik=Qd%KU6^f9CewK%~f)`5hVi`S#o=${1~D(|x){u=`j_{k%~TOeSgNRy))d zBN?y7RDDmFSM0Ty7(U-b3m}ud_7Ol9lv?@59;pvO zzV!*wsbaloX>OjoeD??(PG&+V0HYVr#%~{?H#gs4W+nezD%(#2Xn&_FJ=>9{xPLO^ z8p62A;)!8n)MfUtkbp&IT}boNKgz-CuGHx}cg;pivU~kl%2YJ6h%YcUEcD__&>%>s zhF@KuCYcckw`M2v<+~8#q-bQuWFTT4s&2P1!6)BOdQ*1&=pOvnq6elr%9{xT&crKqFJoQlo{={m76N!1pYFf%}sMoR-b zNVfq5nV@V6o%lC>&bqm_>?(7mA1wj;54^p-ss3-xK+g)Pw>RFh){i{HYy2LHmu-fT zGWoT?lxtF|8znS-H!_x%mYNc=L1r_qwOY)rPVgb$Ie1GtC18!#CJC!cOaF-esz|w~ zos~TQ{f9KZQYscXIBC#2D!2qgAt+hjqLJi#e>v9>!?ETbv;q1jRuTB-=H}tG6tR$l zADM{0eE1uqwGm<==O?d9W-G7UBr%t-5sYi4W9*E8zBDX!xD5DWKp!;YBNw<(uk>@| zaHr>PG*g@zBjMT8glE+Cv-p|;ymH`9c{z=bSu1$UXzRB;oa`VGD=-1p5N3+QFF#^1 z=?FgsJ*CEFEk~KQmu7w!W5Vl%W0lQa?q^YA>ejJ?6vwBq`Aoc!;jHcRMge^r%S*(P z5@|z2^1E)|gvh@J9dqKAygj(PuUrDSxVWTV)p8oB{R>GiSmCnn5wku5){w7-db3OGIp$1{C%xViq#nWU3Fc&0PY4f5H0dsmPn@lyZgOZpXMTd`UK zNgJe7$E;}UmErjBN>#9d&x}dgCiX za;GH~-CzWkICT&j86FegIflx>l?{fWY=qH>(5@P(fb=&NnAa1!43 zzmPV7%v8vDHjFS#*>`2lI>06_qt0|4ZoAo&+i)%oVqrAwS)V7LirXlS6(XhA_iIyyS`TX2uC zIJ?bV`>kDMWo2!@qRh<9Y}PQ=s{$MjCzc8fH3HV3gsoSEtUltNJ$rU=5pOvsarp3I ziy4CXB$33DC5_3OeNZxer)u(6BOFRI9@v)v07kEL!V)eS_30b+>lwZ{aNuua1E!gN zmxbO_D_w@IZo7?co4ro!A?-)b`Sm(PutzZx%>eL*hcqHKEV-b?9wk~4@&*)kV$r4#a` z;|d5dH>J)MNuDW@JX<0WStb!xx;vs`cWAYE@I5@WPAu@D*ok`4;|;i@%_0FUBEC`%aGlV|)9%V7gYsTU=ogTZL(SDJm+0sculI)cPoSQ29Hk@=ae~A5i?kP3q;# zm%F>WnM~%DD_6R@x_Wwg($dmWQc}3Ni>(|w!4-LDTpiuGk^iq7fZlOQ11>;Rgzb?i z0KjtJ8`}mN@VLnV0OpL{L38(L|K(e$2_yDG-7CVuxi;E*;2My$P_i+0er0BL{^u*B z3)zqzak%2*RuYZ&b2<3j?}y{OdG33RXF0uIK6yqvAfwDk-qGXci)tyoUB=`Ky0EuP ze0U9C-}^&Zv0si!ZyEGX@!x&1=z5^wyT|npcDsq7XRR>_R>ba9H2J2Se%Nk3;Qhq+ z$BS*Pj^YupW_VGxAZS!x*Fs)@08}fy81p~Hc&iC3s-S?wv7i^|diQ8}_=<`c%@K^_ zHTH9P0<9Z<$q|dl=}Q^``0~}R$cXhQeK&9OVlnaqk1@3t*5}5xvitF*b-u7NH-Nj{6Q{wdj@w+#O!NT1 zma_S9U8w%+=D*#yfs%Myo%iv9V{6+uT5VnOfKL!!b(Tn9DUD!|aZ!S-H>#|1v@FFl zihnJolehjeLzTZrNlh2ytBNCeas*Fa^anNFNDSSs@=j(iXf_pdJ1WJh>)2`EU>|$H zDUM!l!%)R}LzRuN<3e&*2QZh@yC)62m-6<|5Uuvn4NvjVCBD$665~SJnX&xmBW~pFJ6gN#kN@?m@Jg zPdFy#S}GBlcGvgX1^)~7$Z^=%{Hj6+p0WNA{BAz!?|4+%;D)knsz|@&HiSRL&`rmM z*(a>*0rd}^Hw!yl#f2DwlG9Z&<%-+aQPpu_J#sAd^npF3UX9b!(;2`SXh4JM);dhs zao!_Y1b{P3?Fv8V)SOZFBlL^xFzQ(;K_wdk!uq?bTqAVcnA8nrW0R6VZW)o5pK~?})oTFi8$`xps^eoHavtt$Rg!)izr$^F-~D3WOQqU-7OA4HROBB@1a?9Ppn!N)ujqA-AC} zM(A-im4kmF>?zvBh_I!*-oj2H4d6+LP68`b`S^xJ?084c6i=(C5U9Y+js^3S3CD z4@0Ty`_OC|NKqd?60%@u07X|+c_d#ma*DbalySZC5eOk-meTCQd;VGSxMGYfJOtc+ z?XzE1U-E`6!v;5amSIDX5qU|3Hbjr*O1}qrKbOAtnao>Bg0hTE_gq;9#Ce~_-u7<9 zb*_rw!X}ujFw-h3f-OH9C#l=FZkw&QVkUw|&1cz%D_@yvaBfbP?dIFO*0BUk&kRjw zAx>(G=U3qeWCk1MIVdx$39(EmP1YMUM=%>RqWw(93pG_v7eZ-1L2^#Xz(~&iQ|CKodzaHRzdeo&y9rbI=Nsbkj z?o7h>{7iw<|B$SzoX+2y%Z+fH|APkLW7EK|4LhsyrZU=mWhj5FaQx4)|SH>2Hyjog13rp(&f+0uqQXSNxXOGWW?Hez^^rX^pr z=o)KCSKW5z&C?ukYt)q?0GEy_6B4A0IAzj$C8Dd(Yp~p4!RUV53aWttE3B)?kv25#aDQRdbE!ICa%t!Lyr*~{b0VM z2HdYYrdaO}&0W;zc#Uy=h{Uf@K;f|Fcmm&?h;n!#WTs>R4soKVc8T@LbD`LkAV!*F z*2MDrWVzar66^&@{f)0-qlQh`{k)r(El^%E1j2F}+;&@(arFf>;20!|nQRQ;#AZZI9cP6q zh*Cr`vPzsM`yN1ReS0ZFb-b0{fM3oU-*8QIOPAIKh(BRKnWt8x1u(>%q7Y3>8Ba^OY;oEdow)_Ss>K%4^t82eNtZNH^LHxIuD6E!IdfV*CH zIXoY$1!Lz`?NKf(=FUC@hP5ikPgdEf z^ZyH4=%uS6YnYd1(q}YoLZr;5lHP#6b()k%%H9_swiKm8EY6^EF*EzilcRr`wtEG7 zf&)(E-)oAn+4YCMMPjFs0`6}>SFOeCfmGT@0thwLvdiiZSy! zhT*`!W{Su+vZ#PNI@h*wLIvCh!A5GkT@@X!(W`GZw${2fdh8d>@fA2L$V&VJtU%6= zf}DJ8-3B6NQu{o3=MD$;5dawzO;PsmD&h_x zKOdWgP2PnxDL(_WwbroNmZT?JHn3?mt(7R!5TWG!278q{OXx3z_rvqiwXj7g65DjH zP0Z~LVNV;p3`wO40GLynl*dK~9$8QJffwI#HgU{T>U0d-u77!j*HGrA7f=f`N$`pL zMbLUNE~W{b$7a`LWqnJP)|sfX^f!Zh0H6NSbBIpBucesF7RnnE6&-h%&NBh}`B>024) za3bY#%cDou3Z}?w=A*C*6Xdn_i*t}LeOCb;uBZCh8~e=&imzK1X8O1Nkdd7&9yeH# zS}RU2D2vJsIC)eJrgcBx3YZG_Tv+>(A+@BI`pqJf=Lx%tr?wptVY>(G&SGR?omE*x$3rgbu0K0bq8~^|S diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_electrolyser_metal.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_electrolyser_metal.png index 9c16575363dd0795125335cfb4397c9bb4ace475..0de879b3d28bf92a94cc4dfc9ea95376c948b8fc 100644 GIT binary patch literal 5971 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 Date: Mon, 31 Jul 2023 20:45:57 +0200 Subject: [PATCH 217/432] NEI handlers for custom machines, nether bedrock ores, electrolyser crap --- changelog | 15 +- gradle.properties | 2 +- .../blocks/machine/BlockCustomMachine.java | 22 +- .../blocks/machine/MachineElectrolyser.java | 69 +++--- src/main/java/com/hbm/config/WorldConfig.java | 7 +- .../hbm/handler/nei/CustomMachineHandler.java | 208 ++++++++++++++++++ .../container/ContainerElectrolyserMetal.java | 48 ++++ .../inventory/gui/GUIElectrolyserFluid.java | 20 ++ .../inventory/gui/GUIElectrolyserMetal.java | 67 ++++++ .../recipes/ElectrolyserFluidRecipes.java | 67 ++++++ .../recipes/ElectrolyserMetalRecipes.java | 58 +++++ .../recipes/loader/SerializableRecipe.java | 2 + .../hbm/items/block/ItemCustomMachine.java | 13 +- src/main/java/com/hbm/lib/HbmWorldGen.java | 29 ++- src/main/java/com/hbm/main/NEIConfig.java | 12 + .../machine/TileEntityElectrolyser.java | 164 +++++++++++++- .../com/hbm/world/feature/BedrockOre.java | 46 ++-- .../hbm/textures/gui/nei/gui_nei_custom.png | Bin 0 -> 1171 bytes .../gui/processing/gui_electrolyser_fluid.png | Bin 4936 -> 4966 bytes 19 files changed, 761 insertions(+), 88 deletions(-) create mode 100644 src/main/java/com/hbm/handler/nei/CustomMachineHandler.java create mode 100644 src/main/java/com/hbm/inventory/container/ContainerElectrolyserMetal.java create mode 100644 src/main/java/com/hbm/inventory/gui/GUIElectrolyserMetal.java create mode 100644 src/main/java/com/hbm/inventory/recipes/ElectrolyserFluidRecipes.java create mode 100644 src/main/java/com/hbm/inventory/recipes/ElectrolyserMetalRecipes.java create mode 100644 src/main/resources/assets/hbm/textures/gui/nei/gui_nei_custom.png diff --git a/changelog b/changelog index 07447e1f7..dc78b26b6 100644 --- a/changelog +++ b/changelog @@ -1,13 +1,10 @@ ## Added -* New command `/ntmsatellites` - * `/ntmsatellites orbit` will send the held saatellite into orbit - * `/ntmsatellites descend ` will delete the given satellite ## Changed -* Updated russian localization -* It's no longer possible to insert items into the satellite cargo pad, it's only for unloading -* The satellite linker will no longer assign new frequencies in the randomizer slot if that frequency is already taken -* Custom machines will now show a hologram showing how they are built +* Bedrock ores now spawn in the nether + * Nether bedrock ores include red phosphorus and glowstone, both yielding powders instead of ores + * All current nether bedrock ores are tier 1 and do not require any bore fluid +* Custom machines now show their recipes in NEI + * All it took was battling NEI's source code for 3 hours and my sanity -## Fixed -* Fixed crash caused by mobs spawning in highly polluted area \ No newline at end of file +## Fixed \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index d305d95b5..fb976de9d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -15,4 +15,4 @@ credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion al \ Voxelstice (OpenComputers integration, turbine spinup), BallOfEnergy1 (OpenComputers integration), martemen\ \ (project settings), Pvndols (thorium fuel recipe, gas turbine), JamesH2 (blood mechanics, nitric acid,\ \ particle emitter), sdddddf80 (recipe configs, chinese localization, custom machine holograms),\ - \ SuperCraftAlex (tooltips) LePeep (coilgun model), Maksymisio (polish localization) + \ SuperCraftAlex (tooltips) LePeep (coilgun model, BDCL QC), Maksymisio (polish localization) diff --git a/src/main/java/com/hbm/blocks/machine/BlockCustomMachine.java b/src/main/java/com/hbm/blocks/machine/BlockCustomMachine.java index 0dac71ca5..72efa3313 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockCustomMachine.java +++ b/src/main/java/com/hbm/blocks/machine/BlockCustomMachine.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.Random; import com.hbm.config.CustomMachineConfigJSON; +import com.hbm.config.CustomMachineConfigJSON.MachineConfiguration; import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; @@ -92,10 +93,19 @@ public class BlockCustomMachine extends BlockContainer { TileEntityCustomMachine tile = (TileEntityCustomMachine) world.getTileEntity(x, y, z); - if(tile != null && stack.hasTagCompound()) { - tile.machineType = stack.stackTagCompound.getString("machineType"); - tile.init(); - tile.markChanged(); + if(tile != null) { + int id = stack.getItemDamage() - 100; + + if(id >= 0 && id < CustomMachineConfigJSON.customMachines.size()) { + + MachineConfiguration config = CustomMachineConfigJSON.niceList.get(id); + + if(config != null) { + tile.machineType = config.unlocalizedName; + tile.init(); + tile.markChanged(); + } + } } } @@ -126,8 +136,6 @@ public class BlockCustomMachine extends BlockContainer { if(tile != null) { ItemStack stack = new ItemStack(item, 1, CustomMachineConfigJSON.niceList.indexOf(tile.config) + 100); - stack.stackTagCompound = new NBTTagCompound(); - stack.stackTagCompound.setString("machineType", tile.machineType); ret.add(stack); } } @@ -142,8 +150,6 @@ public class BlockCustomMachine extends BlockContainer { if(tile != null && tile.machineType != null && !tile.machineType.isEmpty()) { ItemStack stack = new ItemStack(this, 1, CustomMachineConfigJSON.niceList.indexOf(tile.config) + 100); - stack.stackTagCompound = new NBTTagCompound(); - stack.stackTagCompound.setString("machineType", tile.machineType); return stack; } diff --git a/src/main/java/com/hbm/blocks/machine/MachineElectrolyser.java b/src/main/java/com/hbm/blocks/machine/MachineElectrolyser.java index d6ca71710..3c6b7beac 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineElectrolyser.java +++ b/src/main/java/com/hbm/blocks/machine/MachineElectrolyser.java @@ -20,7 +20,7 @@ public class MachineElectrolyser extends BlockDummyable { @Override public TileEntity createNewTileEntity(World world, int meta) { if(meta >= 12) return new TileEntityElectrolyser(); - if(meta >= 6) return new TileEntityProxyCombo(false, true, true); + if(meta >= 6) return new TileEntityProxyCombo().inventory().power().fluid(); return null; } @@ -42,39 +42,54 @@ public class MachineElectrolyser extends BlockDummyable { @Override public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { super.fillSpace(world, x, y, z, dir, o); - - MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y, z + dir.offsetZ * o, new int[] {2, -1, 5, 5, 1, 1}, this, dir); - MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y, z + dir.offsetZ * o, new int[] {3, -3, 5, 5, 0, 0}, this, dir); - MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y, z + dir.offsetZ * o, new int[] {3, -1, 4, -4, -3, 3}, this, dir); - MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y, z + dir.offsetZ * o, new int[] {3, -1, 2, -2, -3, 3}, this, dir); - MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y, z + dir.offsetZ * o, new int[] {3, -1, 0, 0, -3, 3}, this, dir); - MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y, z + dir.offsetZ * o, new int[] {3, -1, -2, 2, -3, 3}, this, dir); - MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y, z + dir.offsetZ * o, new int[] {3, -1, -4, 4, -3, 3}, this, dir); - MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y + 3, z + dir.offsetZ * o, new int[] {0, 0, 4, -4, -1, 2}, this, dir); - MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y + 3, z + dir.offsetZ * o, new int[] {0, 0, 2, -2, -1, 2}, this, dir); - MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y + 3, z + dir.offsetZ * o, new int[] {0, 0, 0, 0, -1, 2}, this, dir); - MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y + 3, z + dir.offsetZ * o, new int[] {0, 0, -2, 2, -1, 2}, this, dir); - MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y + 3, z + dir.offsetZ * o, new int[] {0, 0, -4, 4, -1, 2}, this, dir); + x += dir.offsetX * o; + z += dir.offsetZ * o; + + MultiblockHandlerXR.fillSpace(world, x, y, z, new int[] {2, -1, 5, 5, 1, 1}, this, dir); + MultiblockHandlerXR.fillSpace(world, x, y, z, new int[] {3, -3, 5, 5, 0, 0}, this, dir); + MultiblockHandlerXR.fillSpace(world, x, y, z, new int[] {3, -1, 4, -4, -3, 3}, this, dir); + MultiblockHandlerXR.fillSpace(world, x, y, z, new int[] {3, -1, 2, -2, -3, 3}, this, dir); + MultiblockHandlerXR.fillSpace(world, x, y, z, new int[] {3, -1, 0, 0, -3, 3}, this, dir); + MultiblockHandlerXR.fillSpace(world, x, y, z, new int[] {3, -1, -2, 2, -3, 3}, this, dir); + MultiblockHandlerXR.fillSpace(world, x, y, z, new int[] {3, -1, -4, 4, -3, 3}, this, dir); + MultiblockHandlerXR.fillSpace(world,x + dir.offsetX * 4, y + 3, z + dir.offsetZ * 4, new int[] {0, 0, 0, 0, -1, 2}, this, dir); + MultiblockHandlerXR.fillSpace(world,x + dir.offsetX * 2, y + 3, z + dir.offsetZ * 2, new int[] {0, 0, 0, 0, -1, 2}, this, dir); + MultiblockHandlerXR.fillSpace(world, x, y + 3, z, new int[] {0, 0, 0, 0, -1, 2}, this, dir); + MultiblockHandlerXR.fillSpace(world, x - dir.offsetX * 2, y + 3, z - dir.offsetZ * 2, new int[] {0, 0, 0, 0, -1, 2}, this, dir); + MultiblockHandlerXR.fillSpace(world, x - dir.offsetX * 4, y + 3, z - dir.offsetZ * 4, new int[] {0, 0, 0, 0, -1, 2}, this, dir); + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + this.makeExtra(world, x - dir.offsetX * 5, y, z - dir.offsetZ * 5); + this.makeExtra(world, x - dir.offsetX * 5 + rot.offsetX, y, z - dir.offsetZ * 5 + rot.offsetZ); + this.makeExtra(world, x - dir.offsetX * 5 - rot.offsetX, y, z - dir.offsetZ * 5 - rot.offsetZ); + this.makeExtra(world, x + dir.offsetX * 5, y, z + dir.offsetZ * 5); + this.makeExtra(world, x + dir.offsetX * 5 + rot.offsetX, y, z + dir.offsetZ * 5 + rot.offsetZ); + this.makeExtra(world, x + dir.offsetX * 5 - rot.offsetX, y, z + dir.offsetZ * 5 - rot.offsetZ); } @Override protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) { - if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y , z + dir.offsetZ * o, getDimensions(), x, y, z, dir)) return false; + x += dir.offsetX * o; + z += dir.offsetZ * o; - if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y, z + dir.offsetZ * o, new int[] {2, -1, 5, 5, 1, 1}, x, y, z, dir)) return false; - if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y, z + dir.offsetZ * o, new int[] {3, -3, 5, 5, 0, 0}, x, y, z, dir)) return false; - if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y, z + dir.offsetZ * o, new int[] {3, -1, 4, -4, -3, 3}, x, y, z, dir)) return false; - if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y, z + dir.offsetZ * o, new int[] {3, -1, 2, -2, -3, 3}, x, y, z, dir)) return false; - if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y, z + dir.offsetZ * o, new int[] {3, -1, 0, 0, -3, 3}, x, y, z, dir)) return false; - if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y, z + dir.offsetZ * o, new int[] {3, -1, -2, 2, -3, 3}, x, y, z, dir)) return false; - if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y, z + dir.offsetZ * o, new int[] {3, -1, -4, 4, -3, 3}, x, y, z, dir)) return false; - if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y + 3, z + dir.offsetZ * o, new int[] {0, 0, 4, -4, -1, 2}, x, y, z, dir)) return false; - if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y + 3, z + dir.offsetZ * o, new int[] {0, 0, 2, -2, -1, 2}, x, y, z, dir)) return false; - if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y + 3, z + dir.offsetZ * o, new int[] {0, 0, 0, 0, -1, 2}, x, y, z, dir)) return false; - if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y + 3, z + dir.offsetZ * o, new int[] {0, 0, -2, 2, -1, 2}, x, y, z, dir)) return false; - if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y + 3, z + dir.offsetZ * o, new int[] {0, 0, -4, 4, -1, 2}, x, y, z, dir)) return false; + if(!MultiblockHandlerXR.checkSpace(world, x, y , z, getDimensions(), x, y, z, dir)) return false; + + if(!MultiblockHandlerXR.checkSpace(world, x, y, z, new int[] {2, -1, 5, 5, 1, 1}, x, y, z, dir)) return false; + if(!MultiblockHandlerXR.checkSpace(world, x, y, z, new int[] {3, -3, 5, 5, 0, 0}, x, y, z, dir)) return false; + if(!MultiblockHandlerXR.checkSpace(world, x, y, z, new int[] {3, -1, 4, -4, -3, 3}, x, y, z, dir)) return false; + if(!MultiblockHandlerXR.checkSpace(world, x, y, z, new int[] {3, -1, 2, -2, -3, 3}, x, y, z, dir)) return false; + if(!MultiblockHandlerXR.checkSpace(world, x, y, z, new int[] {3, -1, 0, 0, -3, 3}, x, y, z, dir)) return false; + if(!MultiblockHandlerXR.checkSpace(world, x, y, z, new int[] {3, -1, -2, 2, -3, 3}, x, y, z, dir)) return false; + if(!MultiblockHandlerXR.checkSpace(world, x, y, z, new int[] {3, -1, -4, 4, -3, 3}, x, y, z, dir)) return false; + + if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * 4, y + 3, z + dir.offsetZ * 4, new int[] {0, 0, 0, 0, -1, 2}, x, y, z, dir)) return false; + if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * 2, y + 3, z + dir.offsetZ * 2, new int[] {0, 0, 0, 0, -1, 2}, x, y, z, dir)) return false; + if(!MultiblockHandlerXR.checkSpace(world, x, y + 3, z, new int[] {0, 0, 0, 0, -1, 2}, x, y, z, dir)) return false; + if(!MultiblockHandlerXR.checkSpace(world, x - dir.offsetX * 2, y + 3, z - dir.offsetZ * 2, new int[] {0, 0, 0, 0, -1, 2}, x, y, z, dir)) return false; + if(!MultiblockHandlerXR.checkSpace(world, x - dir.offsetX * 4, y + 3, z - dir.offsetZ * 4, new int[] {0, 0, 0, 0, -1, 2}, x, y, z, dir)) return false; return true; } diff --git a/src/main/java/com/hbm/config/WorldConfig.java b/src/main/java/com/hbm/config/WorldConfig.java index cf0f08a67..c2ac4bbb3 100644 --- a/src/main/java/com/hbm/config/WorldConfig.java +++ b/src/main/java/com/hbm/config/WorldConfig.java @@ -48,6 +48,8 @@ public class WorldConfig { public static int bedrockNiterSpawn = 50; public static int bedrockFluoriteSpawn = 50; public static int bedrockRedstoneSpawn = 50; + public static int bedrockGlowstoneSpawn = 100; + public static int bedrockPhosphorusSpawn = 50; public static int ironClusterSpawn = 4; public static int titaniumClusterSpawn = 2; @@ -153,7 +155,10 @@ public class WorldConfig { bedrockNiterSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B11_bedrockNiterWeight", "Spawn weight for niter bedrock ore", 50); bedrockFluoriteSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B12_bedrockFluoriteWeight", "Spawn weight for fluorite bedrock ore", 50); bedrockRedstoneSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B13_bedrockRedstoneWeight", "Spawn weight for redstone bedrock ore", 50); - bedrockChlorocalciteSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B14_bedrockbChlorocalciteWeight", "Spawn weight for chlorocalcite bedrock ore", 35); + bedrockChlorocalciteSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B14_bedrockChlorocalciteWeight", "Spawn weight for chlorocalcite bedrock ore", 35); + + bedrockGlowstoneSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.BN00_bedrockGlowstoneWeight", "Spawn weight for glowstone bedrock ore", 100); + bedrockPhosphorusSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.BN01_bedrockPhosphorusWeight", "Spawn weight for phosphorus bedrock ore", 50); ironClusterSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.C00_ironClusterSpawn", "Amount of iron cluster veins per chunk", 4); titaniumClusterSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.C01_titaniumClusterSpawn", "Amount of titanium cluster veins per chunk", 2); diff --git a/src/main/java/com/hbm/handler/nei/CustomMachineHandler.java b/src/main/java/com/hbm/handler/nei/CustomMachineHandler.java new file mode 100644 index 000000000..cf3570f79 --- /dev/null +++ b/src/main/java/com/hbm/handler/nei/CustomMachineHandler.java @@ -0,0 +1,208 @@ +package com.hbm.handler.nei; + +import java.awt.Rectangle; +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; + +import com.hbm.blocks.ModBlocks; +import com.hbm.config.CustomMachineConfigJSON; +import com.hbm.config.CustomMachineConfigJSON.MachineConfiguration; +import com.hbm.inventory.FluidStack; +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.inventory.recipes.CustomMachineRecipes; +import com.hbm.inventory.recipes.CustomMachineRecipes.CustomMachineRecipe; +import com.hbm.items.machine.ItemFluidIcon; +import com.hbm.lib.RefStrings; +import com.hbm.util.ItemStackUtil; +import com.hbm.util.Tuple.Pair; + +import codechicken.nei.NEIServerUtils; +import codechicken.nei.PositionedStack; +import codechicken.nei.recipe.TemplateRecipeHandler; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; + +public class CustomMachineHandler extends TemplateRecipeHandler { + + public LinkedList transferRectsRec = new LinkedList(); + public LinkedList> guiRec = new LinkedList>(); + + public MachineConfiguration conf; + + @Override + public TemplateRecipeHandler newInstance() { // brick by brick, suck my dick + try { + return new CustomMachineHandler(conf); + } catch(Exception e) { + throw new RuntimeException(e); + } + } + + public CustomMachineHandler(MachineConfiguration conf) { + super(); + this.conf = conf; + loadTransferRects(); + RecipeTransferRectHandler.registerRectsToGuis(getRecipeTransferRectGuis(), transferRects); + } + + public class RecipeSet extends TemplateRecipeHandler.CachedRecipe { + + List inputs = new ArrayList(); + PositionedStack machine; + List outputs = new ArrayList(); + + public RecipeSet(CustomMachineRecipe recipe) { + + for(int i = 0; i < 3; i++) if(recipe.inputFluids.length > i) inputs.add(new PositionedStack(ItemFluidIcon.make(recipe.inputFluids[i]), 12 + i * 18, 6)); + for(int i = 0; i < 3; i++) if(recipe.inputItems.length > i) inputs.add(new PositionedStack(recipe.inputItems[i].extractForNEI(), 12 + i * 18, 24)); + for(int i = 3; i < 6; i++) if(recipe.inputItems.length > i) inputs.add(new PositionedStack(recipe.inputItems[i].extractForNEI(), 12 + i * 18, 42)); + + for(int i = 0; i < 3; i++) if(recipe.outputFluids.length > i) outputs.add(new PositionedStack(ItemFluidIcon.make(recipe.outputFluids[i]), 102 + i * 18, 6)); + + for(int i = 0; i < 3; i++) if(recipe.outputItems.length > i) { + Pair pair = recipe.outputItems[i]; + ItemStack out = pair.getKey(); + if(pair.getValue() != 1) { + ItemStackUtil.addTooltipToStack(out, EnumChatFormatting.RED + "" + (((int)(pair.getValue() * 1000)) / 10D) + "%"); + } + outputs.add(new PositionedStack(out, 102 + i * 18, 24)); + } + + for(int i = 3; i < 6; i++) if(recipe.outputItems.length > i) { + Pair pair = recipe.outputItems[i]; + ItemStack out = pair.getKey(); + if(pair.getValue() != 1) { + ItemStackUtil.addTooltipToStack(out, EnumChatFormatting.RED + "" + (((int)(pair.getValue() * 1000)) / 10D) + "%"); + } + outputs.add(new PositionedStack(out, 102 + i * 18, 42)); + } + + this.machine = new PositionedStack(new ItemStack(ModBlocks.custom_machine, 1, 100 + CustomMachineConfigJSON.niceList.indexOf(conf)), 75, 42); + } + + @Override + public List getIngredients() { + return getCycledIngredients(cycleticks / 20, inputs); + } + + @Override + public PositionedStack getResult() { + return outputs.get(0); + } + + @Override + public List getOtherStacks() { + List other = new ArrayList(); + other.addAll(inputs); + other.add(machine); + other.addAll(outputs); + return getCycledIngredients(cycleticks / 20, other); + } + } + + @Override + public String getRecipeName() { + return conf.localizedName; + } + + @Override + public String getGuiTexture() { + return RefStrings.MODID + ":textures/gui/nei/gui_nei_custom.png"; + } + + @Override + public void loadCraftingRecipes(String outputId, Object... results) { + + if(outputId.equals("ntm_" + conf.unlocalizedName)) { + + List recipes = CustomMachineRecipes.recipes.get(conf.recipeKey); + + if(recipes != null) for(CustomMachineRecipe recipe : recipes) { + this.arecipes.add(new RecipeSet(recipe)); + } + } else { + super.loadCraftingRecipes(outputId, results); + } + } + + @Override + public void loadCraftingRecipes(ItemStack result) { + + List recipes = CustomMachineRecipes.recipes.get(conf.recipeKey); + + System.out.println(conf.recipeKey); + + if(recipes != null) outer:for(CustomMachineRecipe recipe : recipes) { + + for(Pair stack : recipe.outputItems) { + + if(NEIServerUtils.areStacksSameTypeCrafting(stack.getKey(), result)) { + this.arecipes.add(new RecipeSet(recipe)); + continue outer; + } + } + + for(FluidStack fluid : recipe.outputFluids) { + ItemStack drop = ItemFluidIcon.make(fluid); + + if(compareFluidStacks(result, drop)) { + this.arecipes.add(new RecipeSet(recipe)); + continue outer; + } + } + } + } + + @Override + public void loadUsageRecipes(String inputId, Object... ingredients) { + + if(inputId.equals("ntm_" + conf.unlocalizedName)) { + loadCraftingRecipes("ntm_" + conf.unlocalizedName, new Object[0]); + } else { + super.loadUsageRecipes(inputId, ingredients); + } + } + + @Override + public void loadUsageRecipes(ItemStack ingredient) { + + List recipes = CustomMachineRecipes.recipes.get(conf.recipeKey); + + if(recipes != null) outer:for(CustomMachineRecipe recipe : recipes) { + + for(AStack stack : recipe.inputItems) { + + List stacks = stack.extractForNEI(); + + for(ItemStack sta : stacks) { + if(NEIServerUtils.areStacksSameTypeCrafting(ingredient, sta)) { + this.arecipes.add(new RecipeSet(recipe)); + continue outer; + } + } + } + + for(FluidStack fluid : recipe.inputFluids) { + ItemStack drop = ItemFluidIcon.make(fluid); + + if(compareFluidStacks(ingredient, drop)) { + this.arecipes.add(new RecipeSet(recipe)); + continue outer; + } + } + } + } + + public static boolean compareFluidStacks(ItemStack sta1, ItemStack sta2) { + return sta1.getItem() == sta2.getItem() && sta1.getItemDamage() == sta2.getItemDamage(); + } + + @Override + public void loadTransferRects() { + if(this.conf == null) return; + transferRects.add(new RecipeTransferRect(new Rectangle(65, 23, 36, 18), "ntm_" + conf.unlocalizedName)); + RecipeTransferRectHandler.registerRectsToGuis(getRecipeTransferRectGuis(), transferRects); + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerElectrolyserMetal.java b/src/main/java/com/hbm/inventory/container/ContainerElectrolyserMetal.java new file mode 100644 index 000000000..881f1382c --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerElectrolyserMetal.java @@ -0,0 +1,48 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotCraftingOutput; +import com.hbm.tileentity.machine.TileEntityElectrolyser; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; + +public class ContainerElectrolyserMetal extends Container { + + private TileEntityElectrolyser electrolyser; + + public ContainerElectrolyserMetal(InventoryPlayer invPlayer, TileEntityElectrolyser tedf) { + electrolyser = tedf; + + //Battery + this.addSlotToContainer(new Slot(tedf, 0, 186, 109)); + //Upgrades + this.addSlotToContainer(new Slot(tedf, 1, 186, 140)); + this.addSlotToContainer(new Slot(tedf, 2, 186, 158)); + //Input + this.addSlotToContainer(new Slot(tedf, 14, 10, 22)); + //Outputs + this.addSlotToContainer(new SlotCraftingOutput(invPlayer.player, tedf, 15, 136, 18)); + this.addSlotToContainer(new SlotCraftingOutput(invPlayer.player, tedf, 16, 154, 18)); + this.addSlotToContainer(new SlotCraftingOutput(invPlayer.player, tedf, 17, 136, 36)); + this.addSlotToContainer(new SlotCraftingOutput(invPlayer.player, tedf, 18, 154, 36)); + this.addSlotToContainer(new SlotCraftingOutput(invPlayer.player, tedf, 19, 136, 54)); + this.addSlotToContainer(new SlotCraftingOutput(invPlayer.player, tedf, 20, 154, 54)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 122 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 180)); + } + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return electrolyser.isUseableByPlayer(player); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIElectrolyserFluid.java b/src/main/java/com/hbm/inventory/gui/GUIElectrolyserFluid.java index f23f12075..fa4964eed 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIElectrolyserFluid.java +++ b/src/main/java/com/hbm/inventory/gui/GUIElectrolyserFluid.java @@ -4,11 +4,15 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerElectrolyserFluid; import com.hbm.lib.RefStrings; +import com.hbm.packet.NBTControlPacket; +import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.machine.TileEntityElectrolyser; import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.ResourceLocation; public class GUIElectrolyserFluid extends GuiInfoContainer { @@ -37,6 +41,13 @@ public class GUIElectrolyserFluid extends GuiInfoContainer { protected void mouseClicked(int x, int y, int i) { super.mouseClicked(x, y, i); + + if(guiLeft + 8 <= x && guiLeft + 8 + 54 > x && guiTop + 82 < y && guiTop + 82 + 12 >= y) { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + data.setBoolean("sgm", true); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, electrolyser.xCoord, electrolyser.yCoord, electrolyser.zCoord)); + } } @Override @@ -52,6 +63,15 @@ public class GUIElectrolyserFluid extends GuiInfoContainer { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + int p = (int) (electrolyser.power * 89 / electrolyser.maxPower); + drawTexturedModalRect(guiLeft + 186, guiTop + 107 - p, 210, 89 - p, 16, p); + + if(electrolyser.power >= electrolyser.usage) + drawTexturedModalRect(guiLeft + 190, guiTop + 4, 226, 40, 9, 12); + + int e = electrolyser.progressFluid * 41 / electrolyser.processFluidTime; + drawTexturedModalRect(guiLeft + 62, guiTop + 26, 226, 0, 12, e); electrolyser.tanks[0].renderTank(guiLeft + 42, guiTop + 70, this.zLevel, 16, 52); electrolyser.tanks[1].renderTank(guiLeft + 96, guiTop + 70, this.zLevel, 16, 52); diff --git a/src/main/java/com/hbm/inventory/gui/GUIElectrolyserMetal.java b/src/main/java/com/hbm/inventory/gui/GUIElectrolyserMetal.java new file mode 100644 index 000000000..e63e67df2 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIElectrolyserMetal.java @@ -0,0 +1,67 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerElectrolyserMetal; +import com.hbm.lib.RefStrings; +import com.hbm.packet.NBTControlPacket; +import com.hbm.packet.PacketDispatcher; +import com.hbm.tileentity.machine.TileEntityElectrolyser; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ResourceLocation; + +public class GUIElectrolyserMetal extends GuiInfoContainer { + + public static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_electrolyser_metal.png"); + private TileEntityElectrolyser electrolyser; + + public GUIElectrolyserMetal(InventoryPlayer invPlayer, TileEntityElectrolyser electrolyser) { + super(new ContainerElectrolyserMetal(invPlayer, electrolyser)); + this.electrolyser = electrolyser; + + this.xSize = 210; + this.ySize = 204; + } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + + electrolyser.tanks[3].renderTankInfo(this, mouseX, mouseY, guiLeft + 36, guiTop + 18, 16, 52); + + this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 186, guiTop + 18, 16, 89, electrolyser.power, electrolyser.maxPower); + } + + protected void mouseClicked(int x, int y, int i) { + super.mouseClicked(x, y, i); + + if(guiLeft + 8 <= x && guiLeft + 8 + 54 > x && guiTop + 82 < y && guiTop + 82 + 12 >= y) { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + data.setBoolean("sgf", true); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, electrolyser.xCoord, electrolyser.yCoord, electrolyser.zCoord)); + } + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.electrolyser.hasCustomInventoryName() ? this.electrolyser.getInventoryName() : I18n.format(this.electrolyser.getInventoryName()); + + this.fontRendererObj.drawString(name, (this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2) - 16, 7, 0xffffff); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 94, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + electrolyser.tanks[3].renderTank(guiLeft + 36, guiTop + 70, this.zLevel, 16, 52); + } +} diff --git a/src/main/java/com/hbm/inventory/recipes/ElectrolyserFluidRecipes.java b/src/main/java/com/hbm/inventory/recipes/ElectrolyserFluidRecipes.java new file mode 100644 index 000000000..5a61fb756 --- /dev/null +++ b/src/main/java/com/hbm/inventory/recipes/ElectrolyserFluidRecipes.java @@ -0,0 +1,67 @@ +package com.hbm.inventory.recipes; + +import java.io.IOException; +import java.util.HashMap; + +import com.google.gson.JsonElement; +import com.google.gson.stream.JsonWriter; +import com.hbm.inventory.FluidStack; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.recipes.loader.SerializableRecipe; +import com.hbm.items.ModItems; + +import net.minecraft.item.ItemStack; + +public class ElectrolyserFluidRecipes extends SerializableRecipe { + + public static HashMap recipes = new HashMap(); + + @Override + public void registerDefaults() { + recipes.put(Fluids.WATER, new ElectrolysisRecipe(1_000, new FluidStack(Fluids.HYDROGEN, 100), new FluidStack(Fluids.OXYGEN, 100))); + recipes.put(Fluids.HEAVYWATER, new ElectrolysisRecipe(1_000, new FluidStack(Fluids.DEUTERIUM, 50), new FluidStack(Fluids.OXYGEN, 50))); + + recipes.put(Fluids.POTASSIUM_CHLORIDE, new ElectrolysisRecipe(250, new FluidStack(Fluids.CHLORINE, 125), new FluidStack(Fluids.NONE, 0), new ItemStack(ModItems.dust))); + recipes.put(Fluids.CALCIUM_CHLORIDE, new ElectrolysisRecipe(250, new FluidStack(Fluids.CHLORINE, 125), new FluidStack(Fluids.CALCIUM_SOLUTION, 125))); + } + + @Override + public String getFileName() { + return "hbmElectrolyzerFluid.json"; + } + + @Override + public Object getRecipeObject() { + return recipes; + } + + @Override + public void deleteRecipes() { + recipes.clear(); + } + + @Override + public void readRecipe(JsonElement recipe) { + + } + + @Override + public void writeRecipe(Object recipe, JsonWriter writer) throws IOException { + + } + + public static class ElectrolysisRecipe { + public FluidStack output1; + public FluidStack output2; + public int amount; + public ItemStack[] byproduct; + + public ElectrolysisRecipe(int amount, FluidStack output1, FluidStack output2, ItemStack... byproduct) { + this.output1 = output1; + this.output2 = output2; + this.amount = amount; + this.byproduct = byproduct; + } + } +} diff --git a/src/main/java/com/hbm/inventory/recipes/ElectrolyserMetalRecipes.java b/src/main/java/com/hbm/inventory/recipes/ElectrolyserMetalRecipes.java new file mode 100644 index 000000000..40b3555c7 --- /dev/null +++ b/src/main/java/com/hbm/inventory/recipes/ElectrolyserMetalRecipes.java @@ -0,0 +1,58 @@ +package com.hbm.inventory.recipes; + +import java.io.IOException; +import java.util.HashMap; + +import com.google.gson.JsonElement; +import com.google.gson.stream.JsonWriter; +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.inventory.material.Mats.MaterialStack; +import com.hbm.inventory.recipes.loader.SerializableRecipe; + +import net.minecraft.item.ItemStack; + +public class ElectrolyserMetalRecipes extends SerializableRecipe { + + public static HashMap recipes = new HashMap(); + + @Override + public void registerDefaults() { + + } + + public static ElectrolysisMetalRecipe getRecipe(ItemStack stack) { + return null; + } + + @Override + public String getFileName() { + return "hbmElectrolyzerMetal.json"; + } + + @Override + public Object getRecipeObject() { + return recipes; + } + + @Override + public void deleteRecipes() { + recipes.clear(); + } + + @Override + public void readRecipe(JsonElement recipe) { + + } + + @Override + public void writeRecipe(Object recipe, JsonWriter writer) throws IOException { + + } + + public static class ElectrolysisMetalRecipe { + + public MaterialStack output1; + public MaterialStack output2; + public ItemStack[] byproducts; + } +} diff --git a/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java b/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java index c719bd86c..c2252db37 100644 --- a/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java +++ b/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java @@ -62,6 +62,8 @@ public abstract class SerializableRecipe { recipeHandlers.add(new MixerRecipes()); recipeHandlers.add(new OutgasserRecipes()); recipeHandlers.add(new CompressorRecipes()); + recipeHandlers.add(new ElectrolyserFluidRecipes()); + recipeHandlers.add(new MatDistribution()); recipeHandlers.add(new CustomMachineRecipes()); } diff --git a/src/main/java/com/hbm/items/block/ItemCustomMachine.java b/src/main/java/com/hbm/items/block/ItemCustomMachine.java index 434b61c06..61b1cf00c 100644 --- a/src/main/java/com/hbm/items/block/ItemCustomMachine.java +++ b/src/main/java/com/hbm/items/block/ItemCustomMachine.java @@ -12,7 +12,6 @@ import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; public class ItemCustomMachine extends ItemBlock { @@ -24,10 +23,7 @@ public class ItemCustomMachine extends ItemBlock { public void getSubItems(Item item, CreativeTabs tab, List list) { for(int i = 0; i < CustomMachineConfigJSON.niceList.size(); i++) { - MachineConfiguration conf = CustomMachineConfigJSON.niceList.get(i); ItemStack stack = new ItemStack(item, 1, i + 100); - stack.stackTagCompound = new NBTTagCompound(); - stack.stackTagCompound.setString("machineType", conf.unlocalizedName); list.add(stack); } } @@ -35,15 +31,14 @@ public class ItemCustomMachine extends ItemBlock { @Override public String getItemStackDisplayName(ItemStack stack) { - if(stack.hasTagCompound()) { - String name = stack.getTagCompound().getString("machineType"); - MachineConfiguration conf = CustomMachineConfigJSON.customMachines.get(name); + int id = stack.getItemDamage() - 100; + + if(id >= 0 && id < CustomMachineConfigJSON.customMachines.size()) { + MachineConfiguration conf = CustomMachineConfigJSON.niceList.get(id); if(conf != null) { return conf.localizedName; } - - return "INVALID MACHINE CONTROLLER (" + name + ")"; } return "INVALID MACHINE CONTROLLER"; diff --git a/src/main/java/com/hbm/lib/HbmWorldGen.java b/src/main/java/com/hbm/lib/HbmWorldGen.java index 6d2af30ab..323e01b0c 100644 --- a/src/main/java/com/hbm/lib/HbmWorldGen.java +++ b/src/main/java/com/hbm/lib/HbmWorldGen.java @@ -116,14 +116,15 @@ public class HbmWorldGen implements IWorldGenerator { if(WorldConfig.alexandriteSpawn > 0 && rand.nextInt(WorldConfig.alexandriteSpawn) == 0) DungeonToolbox.generateOre(world, rand, i, j, 1, 3, 10, 5, ModBlocks.ore_alexandrite); - DepthDeposit.generateConditionOverworld(world, i, 0, 3, j, 5, 0.6D, ModBlocks.cluster_depth_iron, rand, 24); - DepthDeposit.generateConditionOverworld(world, i, 0, 3, j, 5, 0.6D, ModBlocks.cluster_depth_titanium, rand, 32); - DepthDeposit.generateConditionOverworld(world, i, 0, 3, j, 5, 0.6D, ModBlocks.cluster_depth_tungsten, rand, 32); - DepthDeposit.generateConditionOverworld(world, i, 0, 3, j, 5, 0.8D, ModBlocks.ore_depth_cinnebar, rand, 16); - DepthDeposit.generateConditionOverworld(world, i, 0, 3, j, 5, 0.8D, ModBlocks.ore_depth_zirconium, rand, 16); - DepthDeposit.generateConditionOverworld(world, i, 0, 3, j, 5, 0.8D, ModBlocks.ore_depth_borax, rand, 16); - if(WorldConfig.overworldOre) { + + DepthDeposit.generateConditionOverworld(world, i, 0, 3, j, 5, 0.6D, ModBlocks.cluster_depth_iron, rand, 24); + DepthDeposit.generateConditionOverworld(world, i, 0, 3, j, 5, 0.6D, ModBlocks.cluster_depth_titanium, rand, 32); + DepthDeposit.generateConditionOverworld(world, i, 0, 3, j, 5, 0.6D, ModBlocks.cluster_depth_tungsten, rand, 32); + DepthDeposit.generateConditionOverworld(world, i, 0, 3, j, 5, 0.8D, ModBlocks.ore_depth_cinnebar, rand, 16); + DepthDeposit.generateConditionOverworld(world, i, 0, 3, j, 5, 0.8D, ModBlocks.ore_depth_zirconium, rand, 16); + DepthDeposit.generateConditionOverworld(world, i, 0, 3, j, 5, 0.8D, ModBlocks.ore_depth_borax, rand, 16); + DungeonToolbox.generateOre(world, rand, i, j, 25, 6, 30, 10, ModBlocks.ore_gneiss_iron, ModBlocks.stone_gneiss); DungeonToolbox.generateOre(world, rand, i, j, 10, 6, 30, 10, ModBlocks.ore_gneiss_gold, ModBlocks.stone_gneiss); DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.uraniumSpawn * 3, 6, 30, 10, ModBlocks.ore_gneiss_uranium, ModBlocks.stone_gneiss); @@ -721,10 +722,18 @@ public class HbmWorldGen implements IWorldGenerator { if(GeneralConfig.enablePlutoniumOre) DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.netherPlutoniumSpawn, 4, 0, 127, ModBlocks.ore_nether_plutonium, Blocks.netherrack); - } + + if(rand.nextInt(10) == 0) { + WeightedRandomGeneric item = (WeightedRandomGeneric) WeightedRandom.getRandomItem(rand, BedrockOre.weightedOresNether); + BedrockOreDefinition def = item.get(); + int randPosX = i + rand.nextInt(2) + 8; + int randPosZ = j + rand.nextInt(2) + 8; + BedrockOre.generate(world, randPosX, randPosZ, def.stack, def.acid, def.color, def.tier, ModBlocks.stone_depth_nether); + } - DepthDeposit.generateConditionNether(world, i, 0, 3, j, 7, 0.6D, ModBlocks.ore_depth_nether_neodymium, rand, 16); - DepthDeposit.generateConditionNether(world, i, 125, 3, j, 7, 0.6D, ModBlocks.ore_depth_nether_neodymium, rand, 16); + DepthDeposit.generateConditionNether(world, i, 0, 3, j, 7, 0.6D, ModBlocks.ore_depth_nether_neodymium, rand, 16); + DepthDeposit.generateConditionNether(world, i, 125, 3, j, 7, 0.6D, ModBlocks.ore_depth_nether_neodymium, rand, 16); + } for(int k = 0; k < 30; k++){ int x = i + rand.nextInt(16); diff --git a/src/main/java/com/hbm/main/NEIConfig.java b/src/main/java/com/hbm/main/NEIConfig.java index d0d0fa102..c5bc758a2 100644 --- a/src/main/java/com/hbm/main/NEIConfig.java +++ b/src/main/java/com/hbm/main/NEIConfig.java @@ -4,6 +4,8 @@ import java.util.List; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockMotherOfAllOres.TileEntityRandomOre; +import com.hbm.config.CustomMachineConfigJSON; +import com.hbm.config.CustomMachineConfigJSON.MachineConfiguration; import com.hbm.config.VersatileConfig; import com.hbm.handler.nei.*; import com.hbm.items.ModItems; @@ -14,6 +16,8 @@ import codechicken.nei.api.API; import codechicken.nei.api.IConfigureNEI; import codechicken.nei.api.IHighlightHandler; import codechicken.nei.api.ItemInfo.Layout; +import codechicken.nei.recipe.GuiCraftingRecipe; +import codechicken.nei.recipe.GuiUsageRecipe; import codechicken.nei.recipe.ICraftingHandler; import codechicken.nei.recipe.IUsageHandler; import net.minecraft.entity.player.EntityPlayer; @@ -69,6 +73,8 @@ public class NEIConfig implements IConfigureNEI { registerHandler(new SawmillHandler()); registerHandler(new MixerHandler()); registerHandler(new OutgasserHandler()); + + for(MachineConfiguration conf : CustomMachineConfigJSON.niceList) registerHandlerBypass(new CustomMachineHandler(conf)); //fluids registerHandler(new FluidRecipeHandler()); @@ -153,6 +159,12 @@ public class NEIConfig implements IConfigureNEI { API.registerRecipeHandler((ICraftingHandler) o); API.registerUsageHandler((IUsageHandler) o); } + + /** Bypasses the utterly useless restriction of one registered handler per class */ + public static void registerHandlerBypass(Object o) { + GuiCraftingRecipe.craftinghandlers.add((ICraftingHandler) o); + GuiUsageRecipe.usagehandlers.add((IUsageHandler) o); + } @Override public String getName() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java b/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java index 378317d76..0550dddc0 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java @@ -1,24 +1,40 @@ package com.hbm.tileentity.machine; import com.hbm.interfaces.IControlReceiver; +import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerElectrolyserFluid; +import com.hbm.inventory.container.ContainerElectrolyserMetal; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIElectrolyserFluid; +import com.hbm.inventory.gui.GUIElectrolyserMetal; +import com.hbm.inventory.material.MaterialShapes; +import com.hbm.inventory.material.Mats.MaterialStack; +import com.hbm.inventory.recipes.ElectrolyserFluidRecipes; +import com.hbm.inventory.recipes.ElectrolyserFluidRecipes.ElectrolysisRecipe; +import com.hbm.inventory.recipes.ElectrolyserMetalRecipes; +import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; +import com.hbm.main.MainRegistry; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IEnergyUser; +import api.hbm.fluid.IFluidStandardTransceiver; +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; +import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.FurnaceRecipes; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityElectrolyser extends TileEntityMachineBase implements IEnergyUser, IControlReceiver, IGUIProvider { +public class TileEntityElectrolyser extends TileEntityMachineBase implements IEnergyUser, IFluidStandardTransceiver, IControlReceiver, IGUIProvider { public long power; public static final long maxPower = 20000000; @@ -31,6 +47,10 @@ public class TileEntityElectrolyser extends TileEntityMachineBase implements IEn public int progressOre; public static final int processOreTimeBase = 1000; public int processOreTime; + + public MaterialStack leftStack; + public MaterialStack rightStack; + public int maxMaterial = MaterialShapes.BLOCK.q(16); public FluidTank[] tanks; @@ -42,6 +62,8 @@ public class TileEntityElectrolyser extends TileEntityMachineBase implements IEn //5-10: Fluid IO //11-13: Byproducts //// METAL + //14: Crystal + //15-20: Outputs super(21); tanks = new FluidTank[4]; tanks[0] = new FluidTank(Fluids.WATER, 16000); @@ -49,6 +71,22 @@ public class TileEntityElectrolyser extends TileEntityMachineBase implements IEn tanks[2] = new FluidTank(Fluids.OXYGEN, 16000); tanks[3] = new FluidTank(Fluids.NITRIC_ACID, 16000); } + + @Override + public int[] getAccessibleSlotsFromSide(int meta) { + return new int[] { 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 }; + } + + @Override + public boolean isItemValidForSlot(int i, ItemStack itemStack) { + if(i == 14) return ElectrolyserMetalRecipes.getRecipe(itemStack) != null; + return false; + } + + @Override + public boolean canExtractItem(int i, ItemStack itemStack, int j) { + return i != 14; + } @Override public String getName() { @@ -60,6 +98,41 @@ public class TileEntityElectrolyser extends TileEntityMachineBase implements IEn if(!worldObj.isRemote) { + this.tanks[0].setType(3, 4, slots); + this.tanks[0].loadTank(5, 6, slots); + this.tanks[1].unloadTank(7, 8, slots); + this.tanks[2].unloadTank(9, 10, slots); + + if(worldObj.getTotalWorldTime() % 20 == 0) { + for(DirPos pos : this.getConPos()) { + this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.trySubscribe(tanks[3].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + + if(tanks[1].getFill() > 0) this.sendFluid(tanks[1], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + if(tanks[2].getFill() > 0) this.sendFluid(tanks[2], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + + UpgradeManager.eval(slots, 1, 2); + int speedLevel = Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 3); + int powerLevel = Math.min(UpgradeManager.getLevel(UpgradeType.POWER), 3); + + processFluidTime = processFluidTimeBase - processFluidTimeBase * speedLevel / 4; + processOreTime = processOreTimeBase - processOreTimeBase * speedLevel / 4; + usage = usageBase - usageBase * powerLevel / 4; + + if(this.canProcessFluid()) { + this.progressFluid++; + this.power -= this.usage; + + if(this.progressFluid >= this.processFluidTime) { + this.processFluids(); + this.progressFluid = 0; + this.markChanged(); + } + } + NBTTagCompound data = new NBTTagCompound(); data.setLong("power", this.power); data.setInteger("progressFluid", this.progressFluid); @@ -71,6 +144,20 @@ public class TileEntityElectrolyser extends TileEntityMachineBase implements IEn this.networkPack(data, 50); } } + + public DirPos[] getConPos() { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + return new DirPos[] { + new DirPos(xCoord - dir.offsetX * 6, yCoord, zCoord - dir.offsetZ * 6, dir.getOpposite()), + new DirPos(xCoord - dir.offsetX * 6 + rot.offsetX, yCoord, zCoord - dir.offsetZ * 6 + rot.offsetZ, dir.getOpposite()), + new DirPos(xCoord - dir.offsetX * 6 - rot.offsetX, yCoord, zCoord - dir.offsetZ * 6 - rot.offsetZ, dir.getOpposite()), + new DirPos(xCoord + dir.offsetX * 6, yCoord, zCoord + dir.offsetZ * 6, dir), + new DirPos(xCoord + dir.offsetX * 6 + rot.offsetX, yCoord, zCoord + dir.offsetZ * 6 + rot.offsetZ, dir), + new DirPos(xCoord + dir.offsetX * 6 - rot.offsetX, yCoord, zCoord + dir.offsetZ * 6 - rot.offsetZ, dir) + }; + } @Override public void networkUnpack(NBTTagCompound nbt) { @@ -83,6 +170,56 @@ public class TileEntityElectrolyser extends TileEntityMachineBase implements IEn for(int i = 0; i < 4; i++) tanks[i].readFromNBT(nbt, "t" + i); } + public boolean canProcessFluid() { + + if(this.power < usage) return false; + + ElectrolysisRecipe recipe = ElectrolyserFluidRecipes.recipes.get(tanks[0].getTankType()); + + if(recipe == null) return false; + if(recipe.amount > tanks[0].getFill()) return false; + if(recipe.output1.type == tanks[1].getTankType() && recipe.output1.fill + tanks[1].getFill() > tanks[1].getMaxFill()) return false; + if(recipe.output2.type == tanks[2].getTankType() && recipe.output2.fill + tanks[2].getFill() > tanks[2].getMaxFill()) return false; + + if(recipe.byproduct != null) { + + for(int i = 0; i < recipe.byproduct.length; i++) { + ItemStack slot = slots[11 + i]; + ItemStack byproduct = recipe.byproduct[i]; + + if(slot == null) continue; + if(!slot.isItemEqual(byproduct)) return false; + if(slot.stackSize + byproduct.stackSize > slot.getMaxStackSize()) return false; + } + } + + return true; + } + + public void processFluids() { + + ElectrolysisRecipe recipe = ElectrolyserFluidRecipes.recipes.get(tanks[0].getTankType()); + tanks[0].setFill(tanks[0].getFill() - recipe.amount); + tanks[1].setTankType(recipe.output1.type); + tanks[2].setTankType(recipe.output2.type); + tanks[1].setFill(tanks[1].getFill() + recipe.output1.fill); + tanks[2].setFill(tanks[2].getFill() + recipe.output2.fill); + + if(recipe.byproduct != null) { + + for(int i = 0; i < recipe.byproduct.length; i++) { + ItemStack slot = slots[11 + i]; + ItemStack byproduct = recipe.byproduct[i]; + + if(slot == null) { + slots[11 + i] = byproduct.copy(); + } else { + slots[11 + i].stackSize += byproduct.stackSize; + } + } + } + } + AxisAlignedBB bb = null; @Override @@ -123,15 +260,32 @@ public class TileEntityElectrolyser extends TileEntityMachineBase implements IEn this.power = power; } + @Override + public FluidTank[] getAllTanks() { + return tanks; + } + + @Override + public FluidTank[] getSendingTanks() { + return new FluidTank[] {tanks[1], tanks[2]}; + } + + @Override + public FluidTank[] getReceivingTanks() { + return new FluidTank[] {tanks[0], tanks[3]}; + } + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new ContainerElectrolyserFluid(player.inventory, this); + if(ID == 0) return new ContainerElectrolyserFluid(player.inventory, this); + return new ContainerElectrolyserMetal(player.inventory, this); } @Override @SideOnly(Side.CLIENT) public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GUIElectrolyserFluid(player.inventory, this); + if(ID == 0) return new GUIElectrolyserFluid(player.inventory, this); + return new GUIElectrolyserMetal(player.inventory, this); } @Override @@ -141,7 +295,9 @@ public class TileEntityElectrolyser extends TileEntityMachineBase implements IEn @Override public void receiveControl(EntityPlayer player, NBTTagCompound data) { - + + if(data.hasKey("sgm")) FMLNetworkHandler.openGui(player, MainRegistry.instance, 1, worldObj, xCoord, yCoord, zCoord); + if(data.hasKey("sgf")) FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, worldObj, xCoord, yCoord, zCoord); } @Override diff --git a/src/main/java/com/hbm/world/feature/BedrockOre.java b/src/main/java/com/hbm/world/feature/BedrockOre.java index cce83e8ec..15077d50f 100644 --- a/src/main/java/com/hbm/world/feature/BedrockOre.java +++ b/src/main/java/com/hbm/world/feature/BedrockOre.java @@ -20,33 +20,41 @@ import net.minecraft.item.ItemStack; import net.minecraft.world.World; public class BedrockOre { - + public static List> weightedOres = new ArrayList(); + public static List> weightedOresNether = new ArrayList(); public static void init() { - registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.IRON, 1), WorldConfig.bedrockIronSpawn); - registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.COPPER, 1), WorldConfig.bedrockCopperSpawn); - registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.BORAX, 3, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockBoraxSpawn); - registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.CHLOROCALCITE, 3, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockChlorocalciteSpawn); - registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.ASBESTOS, 2), WorldConfig.bedrockAsbestosSpawn); - registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.NIOBIUM, 2, new FluidStack(Fluids.ACID, 500)), WorldConfig.bedrockNiobiumSpawn); - registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.TITANIUM, 2, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockTitaniumSpawn); - registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.TUNGSTEN, 2, new FluidStack(Fluids.ACID, 500)), WorldConfig.bedrockTungstenSpawn); - registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.GOLD, 1), WorldConfig.bedrockGoldSpawn); - registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.URANIUM, 4, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockUraniumSpawn); - registerBedrockOre(new BedrockOreDefinition(EnumBedrockOre.THORIUM, 4, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockThoriumSpawn); - registerBedrockOre(new BedrockOreDefinition(new ItemStack(Items.coal, 4), 1, 0x202020), WorldConfig.bedrockCoalSpawn); - registerBedrockOre(new BedrockOreDefinition(new ItemStack(ModItems.niter, 4), 2, 0x808080, new FluidStack(Fluids.ACID, 500)), WorldConfig.bedrockNiterSpawn); - registerBedrockOre(new BedrockOreDefinition(new ItemStack(ModItems.fluorite, 4), 1, 0xd0d0d0), WorldConfig.bedrockFluoriteSpawn); - registerBedrockOre(new BedrockOreDefinition(new ItemStack(Items.redstone, 4), 1, 0xd01010), WorldConfig.bedrockRedstoneSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.IRON, 1), WorldConfig.bedrockIronSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.COPPER, 1), WorldConfig.bedrockCopperSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.BORAX, 3, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockBoraxSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.CHLOROCALCITE, 3, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockChlorocalciteSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.ASBESTOS, 2), WorldConfig.bedrockAsbestosSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.NIOBIUM, 2, new FluidStack(Fluids.ACID, 500)), WorldConfig.bedrockNiobiumSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.TITANIUM, 2, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockTitaniumSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.TUNGSTEN, 2, new FluidStack(Fluids.ACID, 500)), WorldConfig.bedrockTungstenSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.GOLD, 1), WorldConfig.bedrockGoldSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.URANIUM, 4, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockUraniumSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.THORIUM, 4, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockThoriumSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(new ItemStack(Items.coal, 4), 1, 0x202020), WorldConfig.bedrockCoalSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(new ItemStack(ModItems.niter, 4), 2, 0x808080, new FluidStack(Fluids.ACID, 500)), WorldConfig.bedrockNiterSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(new ItemStack(ModItems.fluorite, 4), 1, 0xd0d0d0), WorldConfig.bedrockFluoriteSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(new ItemStack(Items.redstone, 4), 1, 0xd01010), WorldConfig.bedrockRedstoneSpawn); + + registerBedrockOre(weightedOresNether, new BedrockOreDefinition(new ItemStack(Items.glowstone_dust, 4), 1, 0xF9FF4D), WorldConfig.bedrockGlowstoneSpawn); + registerBedrockOre(weightedOresNether, new BedrockOreDefinition(new ItemStack(ModItems.powder_fire, 4), 1, 0xD7341F), WorldConfig.bedrockPhosphorusSpawn); } - public static void registerBedrockOre(BedrockOreDefinition def, int weight) { + public static void registerBedrockOre(List list, BedrockOreDefinition def, int weight) { WeightedRandomGeneric weighted = new WeightedRandomGeneric(def, weight); - weightedOres.add(weighted); + list.add(weighted); } public static void generate(World world, int x, int z, ItemStack stack, FluidStack acid, int color, int tier) { + generate(world, x, z, stack, acid, color, tier, ModBlocks.stone_depth); + } + + public static void generate(World world, int x, int z, ItemStack stack, FluidStack acid, int color, int tier, Block depthRock) { for(int ix = x - 1; ix <= x + 1; ix++) { for(int iz = z - 1; iz <= z + 1; iz++) { @@ -77,7 +85,7 @@ public class BedrockOre { Block b = world.getBlock(ix, iy, iz); if(b.isReplaceableOreGen(world, ix, iy, iz, Blocks.stone) || b.isReplaceableOreGen(world, ix, iy, iz, Blocks.bedrock)) { - world.setBlock(ix, iy, iz, ModBlocks.stone_depth); + world.setBlock(ix, iy, iz, depthRock); } } } diff --git a/src/main/resources/assets/hbm/textures/gui/nei/gui_nei_custom.png b/src/main/resources/assets/hbm/textures/gui/nei/gui_nei_custom.png new file mode 100644 index 0000000000000000000000000000000000000000..c28a69cf4fb1169db87a8a20583dc22ab5ffe364 GIT binary patch literal 1171 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K5893O0R7}x|G$6%N?Bp530R%N1DIGwrm#2$k zNX4ADcO3I>TM4iwSbf-}?xlBu`G*qYozg3%>mOxXWWN9W?cK7<+R`^y^cNjbeEz%P zK*#HznftGJB=O|=EuC{}rmyDg&(9Z_7H{46_DTgq!RnP?8Qe;=o__iD^~>vxUuQfJ zDlTPw-pDm|#hI(W%>2cj{=C}P)c|6Pg}rFq8Fjxb%Z6dc)hksD%)7LomT$Oxb-E+Z z<(tZ%cd#yyewI~xd*w%l2Vudl8F^mZ5@l#9ewkmlj^WwOIF1ir{`|R*PVpufS)6G`d^>q4`In`;r35`}4UBK*+rHp%aZm}+YtyQ!IDrTJd zDg8k9_oj=lT!eM!2Ns_@BIR%trXE@ElVS$$E1halc8j0gQJ&AdA_D57^J^GG)(HD< zsc}2IGyNKa*a|4y9htpZ`T#I&esj&WfjRSL%&nxK^|{=6%V(9I*g2*8c2juxQ?Z2Y zx6l6i`L`~fuibftm0?_9NrwyDr~mNF?D7zFlI8Xab@Q45>DXt zwdcIiJdOR)#|obBl`O{|aWM!LvwjfIp5OSt`sl+q=P$)DvOIl|&MW2Mz*l!|5hKgv z2kE|23@XbQ9g=`ln)?Dja1d?YsC;3n)png@SAX5TUb9}VxGvRw!LK(QB}>n(wZ8i0 zTio7fXN=ZBG(q(eNtLm9eT%#J>cX`*vW*G4Wh|@C>%y&v8nMlCYEjkal1p=fS?83{1OP@q&~g9( literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_electrolyser_fluid.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_electrolyser_fluid.png index b55cc63435db77cc96dbcfaec5c18f01579841d4..30b63b55ee4fa83b8890751e3fca91c92e336041 100644 GIT binary patch literal 4966 zcmb_g=U-Dxx1NL+>4+3TNDRjV(p3;Co)qpQ<@?H7itP?vUt}mMFF-w~&R^646s#$(l~LIz6U#U`J;SwuUvgIyI+# zI+O4H85j5pXt8UO2&+2M$mTWeb1QRGtagF@ap7?>d(u+;yPX2s>L{Dz6@PluW!e`3 z;M|*>U=kkha3Hk3y**m0xu>UxapuFwfw}d)ohg#UE`3D1vIwtm^5~%;xwW4rB;~tR zSsrD}QIWh6O)GaowG%AyZpj9JEmM~qT*uDadF z#b@frwtfF@DZW@?73p>)7s#<@LQaN})Fh%wX=!PR@2{H9s=L{)Y-}mFmSVIVhxt4w zP1(VE$NYR@WaO8wE~}U$T0$@|7`>a9lzkgtBC-zh{HQ2KY48dQdchQ{gb{D=z8XHE~eL4HwT zp}C)f4oghvFfS(;cff#hZ~=lcI{@Utde8cL8Dt#kt0=#0@tG|WkVOlNi!U_oXNC80 zJ$V00H|;TZ+nZ>Rw)^#P!L*eg2l!~7#+Q3vsj+;6RBDXj69HpbVS942Y)mw%zC7sD zr5AQwU_Lo5t)k{&_f$bN0pK8|Z}aB>PU|#c=6c;qUfB3uukjkI+2Pv#EH5qeULD4) zz9z`d0@J_&%ri3_hRqR;u|4)~dEKSD=FW(<775=y&Fl?};tE3Aogs~FE!A!F zjNeUlu(r_OlF@tcAoUS2JZ8(CAfV}IJRpp||FdR~WLrN`P`s7r zx`*~Bc+0y4zKVTVh@gDbO+TH;o|F$(x!+ytpFx)?5{5sV4Xml4&FI#z_7G%9gH`

    _<0>`I&@#!sL9d8GP;!kGK<4Ybkg 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

    2y=+S zprw|2ujx~^RXKshYBAgMl$0-g^Z}t6)!!DyV9(b_=K6&$o>FEHk=L_=8yg!-`xP!q z1*<{pmN+LkQOwaY2Y(}qlClT6LgCjI)5zJqKJ$pOSZ*MXQzGenjE#j&ba3{sPu32u z>gNKA?zh!ul@6s-Jf>dy6cplyqhsbzvz>p%A=adbwO&!y7c+xl!^%Sbxus9ZuL(K} zN`Yz94N+9of@0$pld~4H)%8$HB=mkjKE@at_1!a=worcY@0=54HJ7<9w_7k#QBm9< z{vsLPP+*R_?%I!tQ4D>^)}WEC^*ctB$Fxjb&SnYO@Ks-}EBzhpVwnnLge)5$cEVcC zC>ut#uf0_!)4jOpo+Ad+>lcb7zBAGPqizZBg&{M_cURumF~;pZm@?JcaM)jMgF-XW z8l!O|BO@2K=T`_kTF@>Xiz=G~*B6M(Z3@)TrXO#5+kNckriMASj`KEU?7-O@>}?6l zk;KY9G!B@4Ao8LP9jK_N_%O5NA1lSs+^b|bwl*6%E3?oXBA^zY5F;>~a^_CPybT$} z+IW?8tYYpZzd4R}mOE$D5gvKa%E*BKEqt!?XB8<)frBaCf zeXs#`W4Trq%E1Nk@UZq^Gk!-%M4k~?eWBs_?=Zqf0 NdP&b1SFC$A25BLNkRnSZYk2HSj7eq9 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 Date: Tue, 1 Aug 2023 23:49:50 -0500 Subject: [PATCH 218/432] Revamped OpenComputers compatibility, the following is a list of changes/additions. Added compatibility to the large launch pad Changed the way that fluids are handled by OC, they now use the internal names of said fluids. Changing over to a more compact function for energy related compatibility, not doing it fully until people have a bit of time to modify their programs. Fixed a minor bug where changing the steam type using OC in a RBMK boiler could potentially make infinite steam. Wiki will be updated for the compatibility on merge of this PR. --- .../tileentity/bomb/TileEntityLaunchPad.java | 18 ++-- .../bomb/TileEntityLaunchTable.java | 84 ++++++++++++++++++- .../machine/TileEntityCoreEmitter.java | 10 ++- .../machine/TileEntityCoreInjector.java | 10 +-- .../machine/TileEntityCoreReceiver.java | 12 ++- .../machine/TileEntityCoreStabilizer.java | 10 ++- .../machine/rbmk/TileEntityRBMKBoiler.java | 4 + .../machine/rbmk/TileEntityRBMKHeater.java | 6 +- .../machine/storage/TileEntityBarrel.java | 4 +- .../storage/TileEntityMachineBattery.java | 26 +++++- .../storage/TileEntityMachineFluidTank.java | 4 +- 11 files changed, 159 insertions(+), 29 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java index 9e7084101..d6a31650e 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java @@ -280,12 +280,18 @@ public class TileEntityLaunchPad extends TileEntityLoadedBase implements ISidedI @Callback @Optional.Method(modid = "OpenComputers") public Object[] getEnergyStored(Context context, Arguments args) { - return new Object[] {getPower()}; + return new Object[] {getPower(), "Consider switching to the main function 'getEnergyInfo', as this function is deprecated and will soon be removed."}; } @Callback @Optional.Method(modid = "OpenComputers") public Object[] getMaxEnergy(Context context, Arguments args) { - return new Object[] {getMaxPower()}; + return new Object[] {getMaxPower(), "Consider switching to the main function 'getEnergyInfo', as this function is deprecated and will soon be removed."}; + } + + @Callback + @Optional.Method(modid = "OpenComputers") + public Object[] getEnergyInfo(Context context, Arguments args) { + return new Object[] {getPower(), getMaxPower()}; } @Callback @@ -296,13 +302,15 @@ public class TileEntityLaunchPad extends TileEntityLoadedBase implements ISidedI int zCoord2 = slots[1].stackTagCompound.getInteger("zCoord"); // Not sure if i should have this + /* if(xCoord2 == xCoord && zCoord2 == zCoord) { xCoord2 += 1; } + */ return new Object[] {xCoord2, zCoord2}; } - return new Object[] {"Designator not found"}; + return new Object[] {false, "Designator not found"}; } @Callback @Optional.Method(modid = "OpenComputers") @@ -311,9 +319,9 @@ public class TileEntityLaunchPad extends TileEntityLoadedBase implements ISidedI slots[1].stackTagCompound.setInteger("xCoord", args.checkInteger(0)); slots[1].stackTagCompound.setInteger("zCoord", args.checkInteger(1)); - return new Object[] {"Success"}; + return new Object[] {true}; } - return new Object[] {"Designator not found"}; + return new Object[] {false, "Designator not found"}; } @Callback diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java index 71a0d7289..748d63c6c 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java @@ -2,6 +2,8 @@ package com.hbm.tileentity.bomb; import java.util.List; +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.bomb.LaunchPad; import com.hbm.entity.missile.EntityMissileCustom; import com.hbm.handler.MissileStruct; import com.hbm.interfaces.IFluidAcceptor; @@ -28,9 +30,14 @@ import com.hbm.tileentity.TileEntityLoadedBase; import api.hbm.energy.IEnergyUser; import api.hbm.fluid.IFluidStandardReceiver; import api.hbm.item.IDesignatorItem; +import cpw.mods.fml.common.Optional; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; +import li.cil.oc.api.network.SimpleComponent; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; @@ -43,7 +50,8 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISidedInventory, IEnergyUser, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver, IGUIProvider { +@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) +public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISidedInventory, IEnergyUser, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver, IGUIProvider, SimpleComponent { private ItemStack slots[]; @@ -597,6 +605,80 @@ public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISide return tanks; } + // do some opencomputer stuff + @Override + public String getComponentName() { + return "large_launch_pad"; + } + + @Callback + @Optional.Method(modid = "OpenComputers") + public Object[] getEnergyStored(Context context, Arguments args) { + return new Object[] {getPower(), "Consider switching to the main function 'getEnergyInfo', as this function is deprecated and will soon be removed."}; + } + + @Callback + @Optional.Method(modid = "OpenComputers") + public Object[] getMaxEnergy(Context context, Arguments args) { + return new Object[] {getMaxPower(), "Consider switching to the main function 'getEnergyInfo', as this function is deprecated and will soon be removed."}; + } + + @Callback + @Optional.Method(modid = "OpenComputers") + public Object[] getEnergyInfo(Context context, Arguments args) { + return new Object[] {getPower(), getMaxPower()}; + } + + @Callback + @Optional.Method(modid = "OpenComputers") + public Object[] getContents(Context context, Arguments args) { + return new Object[] {tanks[0].getFill(), tanks[0].getMaxFill(), tanks[0].getTankType().getName(), tanks[1].getFill(), tanks[1].getMaxFill(), tanks[1].getTankType().getName(), solid, maxSolid}; + } + + @Callback + @Optional.Method(modid = "OpenComputers") + public Object[] getLaunchInfo(Context context, Arguments args) { + return new Object[] {canLaunch(), isMissileValid(), hasDesignator(), hasFuel()}; + } + + @Callback + @Optional.Method(modid = "OpenComputers") + public Object[] getCoords(Context context, Arguments args) { + if (slots[1] != null && slots[1].getItem() instanceof IDesignatorItem) { + int xCoord2 = slots[1].stackTagCompound.getInteger("xCoord"); + int zCoord2 = slots[1].stackTagCompound.getInteger("zCoord"); + + //unsure if this is needed, leaving here in case it is + /* + if(xCoord2 == xCoord && zCoord2 == zCoord) { + xCoord2 += 1; + } + */ + + return new Object[] {xCoord2, zCoord2}; + } + return new Object[] {false, "Designator not found"}; + } + @Callback + @Optional.Method(modid = "OpenComputers") + public Object[] setCoords(Context context, Arguments args) { + if (slots[1] != null && slots[1].getItem() instanceof IDesignatorItem) { + slots[1].stackTagCompound.setInteger("xCoord", args.checkInteger(0)); + slots[1].stackTagCompound.setInteger("zCoord", args.checkInteger(1)); + + return new Object[] {true}; + } + return new Object[] {false, "Designator not found"}; + } + + @Callback + @Optional.Method(modid = "OpenComputers") + public Object[] launch(Context context, Arguments args) { + //worldObj.getBlock(xCoord, yCoord, zCoord).explode(worldObj, xCoord, yCoord, zCoord); + ((LaunchPad) ModBlocks.launch_pad).explode(worldObj, xCoord, yCoord, zCoord); + return new Object[] {}; + } + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerLaunchTable(player.inventory, this); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java index 218168090..4c51759ef 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java @@ -279,13 +279,19 @@ public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEne @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getEnergyStored(Context context, Arguments args) { - return new Object[] {getPower()}; + return new Object[] {getPower(), "Consider switching to the main function 'getEnergyInfo', as this function is deprecated and will soon be removed."}; } @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getMaxEnergy(Context context, Arguments args) { - return new Object[] {getMaxPower()}; + return new Object[] {getMaxPower(), "Consider switching to the main function 'getEnergyInfo', as this function is deprecated and will soon be removed."}; + } + + @Callback + @Optional.Method(modid = "OpenComputers") + public Object[] getEnergyInfo(Context context, Arguments args) { + return new Object[] {getPower(), getMaxPower()}; } @Callback(direct = true, limit = 4) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java index 7285639bd..b4fffdb9c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java @@ -202,20 +202,20 @@ public class TileEntityCoreInjector extends TileEntityMachineBase implements IFl @Callback(direct = true, limit = 2) @Optional.Method(modid = "OpenComputers") - public Object[] getFirstFuel(Context context, Arguments args) { - return new Object[] {tanks[0].getFill()}; + public Object[] getFuel(Context context, Arguments args) { + return new Object[] {tanks[0].getFill(), tanks[1].getFill()}; } @Callback(direct = true, limit = 2) @Optional.Method(modid = "OpenComputers") - public Object[] getSecondFuel(Context context, Arguments args) { - return new Object[] {tanks[1].getFill()}; + public Object[] getTypes(Context context, Arguments args) { + return new Object[] {tanks[0].getTankType().getName(), tanks[1].getTankType().getName()}; } @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { - return new Object[] {tanks[0].getFill(), tanks[1].getFill()}; + return new Object[] {tanks[0].getFill(), tanks[0].getTankType().getName(), tanks[1].getFill(), tanks[1].getTankType().getName()}; } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java index 51b79e242..57fef61d5 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java @@ -194,13 +194,19 @@ public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEn @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getInput(Context context, Arguments args) { - return new Object[] {joules}; + return new Object[] {joules, "Consider switching to the main function 'getEnergyInfo', as this function is deprecated and will soon be removed."}; } @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getOutput(Context context, Arguments args) { - return new Object[] {power}; + return new Object[] {getPower(), "Consider switching to the main function 'getEnergyInfo', as this function is deprecated and will soon be removed."}; + } + + @Callback(direct = true, limit = 4) + @Optional.Method(modid = "OpenComputers") + public Object[] getEnergyInfo(Context context, Arguments args) { + return new Object[] {joules, getPower()}; //literally only doing this for the consistency between components } @Callback(direct = true, limit = 4) @@ -212,7 +218,7 @@ public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEn @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { - return new Object[] {joules, power, tank.getFill()}; + return new Object[] {joules, getPower(), tank.getFill()}; } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java index de41bd82a..694dbd9f1 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java @@ -176,13 +176,19 @@ public class TileEntityCoreStabilizer extends TileEntityMachineBase implements I @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getEnergyStored(Context context, Arguments args) { - return new Object[] {power}; + return new Object[] {getPower(), "Consider switching to the main function 'getEnergyInfo', as this function is deprecated and will soon be removed."}; } @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getMaxEnergy(Context context, Arguments args) { - return new Object[] {maxPower}; + return new Object[] {getMaxPower(), "Consider switching to the main function 'getEnergyInfo', as this function is deprecated and will soon be removed."}; + } + + @Callback + @Optional.Method(modid = "OpenComputers") + public Object[] getEnergyInfo(Context context, Arguments args) { + return new Object[] {getPower(), getMaxPower()}; } @Callback(direct = true, limit = 4) diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java index 92dd33539..654c7878e 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java @@ -401,15 +401,19 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I } if(type == 0) { steam.setTankType(Fluids.STEAM); + steam.setFill(0); //too lazy to add a ton of additional code to divide the fill amount, fuck your steam return new Object[] {true}; } else if(type == 1) { steam.setTankType(Fluids.HOTSTEAM); + steam.setFill(0); return new Object[] {true}; } else if(type == 2) { steam.setTankType(Fluids.SUPERHOTSTEAM); + steam.setFill(0); return new Object[] {true}; } else { steam.setTankType(Fluids.ULTRAHOTSTEAM); + steam.setFill(0); return new Object[] {true}; } } diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java index 618f41a96..e9699b87f 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java @@ -312,19 +312,19 @@ public class TileEntityRBMKHeater extends TileEntityRBMKSlottedBase implements I @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getFillType(Context context, Arguments args) { - return new Object[] {feed.getTankType().getID()}; + return new Object[] {feed.getTankType().getName()}; } @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getExportType(Context context, Arguments args) { - return new Object[] {steam.getTankType().getID()}; + return new Object[] {steam.getTankType().getName()}; } @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { - return new Object[] {heat, feed.getFill(), feed.getMaxFill(), steam.getFill(), steam.getMaxFill(), feed.getTankType().getID(), steam.getTankType().getID(), xCoord, yCoord, zCoord}; + return new Object[] {heat, feed.getFill(), feed.getMaxFill(), steam.getFill(), steam.getMaxFill(), feed.getTankType().getName(), steam.getTankType().getName(), xCoord, yCoord, zCoord}; } @Callback(direct = true, limit = 8) diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java index c6fea9500..360d25ebe 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java @@ -389,12 +389,12 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getTypeStored(Context context, Arguments args) { - return new Object[] {tank.getTankType().getUnlocalizedName()}; + return new Object[] {tank.getTankType().getName()}; } @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { - return new Object[]{tank.getFill(), tank.getMaxFill(), tank.getTankType().getUnlocalizedName()}; + return new Object[]{tank.getFill(), tank.getMaxFill(), tank.getTankType().getName()}; } } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java index 594fec515..334c6806f 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java @@ -1,6 +1,7 @@ package com.hbm.tileentity.machine.storage; import api.hbm.energy.*; +import com.hbm.blocks.ModBlocks; import com.hbm.blocks.machine.MachineBattery; import com.hbm.inventory.container.ContainerMachineBattery; import com.hbm.inventory.gui.GUIMachineBattery; @@ -15,6 +16,7 @@ import li.cil.oc.api.machine.Arguments; import li.cil.oc.api.machine.Callback; import li.cil.oc.api.machine.Context; import li.cil.oc.api.network.SimpleComponent; +import net.minecraft.block.Block; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; @@ -392,19 +394,35 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I // do some opencomputer stuff @Override public String getComponentName() { - return "ntm_energy_storage"; // need a way to somehow detect the first word of the energy storage block so people wont get confused when it comes to multiple energy storage blocks + Block block = worldObj.getBlock(xCoord, yCoord, zCoord); + if (block.equals(ModBlocks.machine_battery_potato)) { + return "ntm_energy_storage_potato"; + } else if (block.equals(ModBlocks.machine_lithium_battery)) { + return "ntm_energy_storage_lithium"; + } else if (block.equals(ModBlocks.machine_schrabidium_battery)) { + return "ntm_energy_storage_schrabidum"; + } else if (block.equals(ModBlocks.machine_dineutronium_battery)) { + return "ntm_energy_storage_dineutronium"; + } else + return "ntm_energy_storage"; } @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") - public Object[] getEnergyStored(Context context, Arguments args) { - return new Object[] {getPower()}; + public Object[] getEnergyStored(Context context, Arguments args) { //TODO for gamma: when ready remove these deprecated functions in all components + return new Object[] {getPower(), "Consider switching to the main function 'getEnergyInfo', as this function is deprecated and will soon be removed."}; } @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getMaxEnergy(Context context, Arguments args) { - return new Object[] {getMaxPower()}; + return new Object[] {getMaxPower(), "Consider switching to the main function 'getEnergyInfo', as this function is deprecated and will soon be removed."}; + } + + @Callback + @Optional.Method(modid = "OpenComputers") + public Object[] getEnergyInfo(Context context, Arguments args) { + return new Object[] {getPower(), getMaxPower()}; } @Callback(direct = true, limit = 8) diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java index 1269da0a6..9332cb750 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java @@ -487,12 +487,12 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getTypeStored(Context context, Arguments args) { - return new Object[] {tank.getTankType().getUnlocalizedName()}; + return new Object[] {tank.getTankType().getName()}; } @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { - return new Object[]{tank.getFill(), tank.getMaxFill(), tank.getTankType().getUnlocalizedName()}; + return new Object[]{tank.getFill(), tank.getMaxFill(), tank.getTankType().getName()}; } } \ No newline at end of file From 5e1f3b3134a3a571cf0009a4282eec65e5245efd Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Thu, 3 Aug 2023 00:51:12 -0500 Subject: [PATCH 219/432] Makes the new functions direct calls, which I had forgotten to do beforehand. --- .../java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java | 2 +- .../com/hbm/tileentity/machine/TileEntityCoreStabilizer.java | 2 +- .../tileentity/machine/storage/TileEntityMachineBattery.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java index 4c51759ef..95b972949 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java @@ -288,7 +288,7 @@ public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEne return new Object[] {getMaxPower(), "Consider switching to the main function 'getEnergyInfo', as this function is deprecated and will soon be removed."}; } - @Callback + @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getEnergyInfo(Context context, Arguments args) { return new Object[] {getPower(), getMaxPower()}; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java index 694dbd9f1..82ce38079 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java @@ -185,7 +185,7 @@ public class TileEntityCoreStabilizer extends TileEntityMachineBase implements I return new Object[] {getMaxPower(), "Consider switching to the main function 'getEnergyInfo', as this function is deprecated and will soon be removed."}; } - @Callback + @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getEnergyInfo(Context context, Arguments args) { return new Object[] {getPower(), getMaxPower()}; diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java index 334c6806f..15e321eec 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java @@ -419,7 +419,7 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I return new Object[] {getMaxPower(), "Consider switching to the main function 'getEnergyInfo', as this function is deprecated and will soon be removed."}; } - @Callback + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getEnergyInfo(Context context, Arguments args) { return new Object[] {getPower(), getMaxPower()}; From 39e37f0676c896df7c6ff3ed441b9672dc0339dd Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Thu, 3 Aug 2023 02:36:58 -0500 Subject: [PATCH 220/432] Fixed a minor bug in the coordinate OC compat for launch pads, also removed a feature because it keeps throwing a NullPointerException and I have no clue how to fix it --- .../hbm/tileentity/bomb/TileEntityLaunchPad.java | 16 ++++++++++++---- .../tileentity/bomb/TileEntityLaunchTable.java | 12 +++++++++--- .../storage/TileEntityMachineBattery.java | 13 ++----------- 3 files changed, 23 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java index d6a31650e..e69f71203 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java @@ -4,6 +4,8 @@ import com.hbm.blocks.ModBlocks; import com.hbm.blocks.bomb.LaunchPad; import com.hbm.inventory.container.ContainerLaunchPadTier1; import com.hbm.inventory.gui.GUILaunchPadTier1; +import com.hbm.items.ModItems; +import com.hbm.items.tool.ItemDesingator; import com.hbm.lib.Library; import com.hbm.packet.AuxElectricityPacket; import com.hbm.packet.PacketDispatcher; @@ -298,8 +300,13 @@ public class TileEntityLaunchPad extends TileEntityLoadedBase implements ISidedI @Optional.Method(modid = "OpenComputers") public Object[] getCoords(Context context, Arguments args) { if (slots[1] != null && slots[1].getItem() instanceof IDesignatorItem) { - int xCoord2 = slots[1].stackTagCompound.getInteger("xCoord"); - int zCoord2 = slots[1].stackTagCompound.getInteger("zCoord"); + int xCoord2; + int zCoord2; + if (slots[1].stackTagCompound != null) { + xCoord2 = slots[1].stackTagCompound.getInteger("xCoord"); + zCoord2 = slots[1].stackTagCompound.getInteger("zCoord"); + } else + return new Object[] {false}; // Not sure if i should have this /* @@ -307,7 +314,7 @@ public class TileEntityLaunchPad extends TileEntityLoadedBase implements ISidedI xCoord2 += 1; } */ - + return new Object[] {xCoord2, zCoord2}; } return new Object[] {false, "Designator not found"}; @@ -316,9 +323,10 @@ public class TileEntityLaunchPad extends TileEntityLoadedBase implements ISidedI @Optional.Method(modid = "OpenComputers") public Object[] setCoords(Context context, Arguments args) { if (slots[1] != null && slots[1].getItem() instanceof IDesignatorItem) { + slots[1].stackTagCompound = new NBTTagCompound(); slots[1].stackTagCompound.setInteger("xCoord", args.checkInteger(0)); slots[1].stackTagCompound.setInteger("zCoord", args.checkInteger(1)); - + return new Object[] {true}; } return new Object[] {false, "Designator not found"}; diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java index 748d63c6c..fa1018dc7 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java @@ -645,10 +645,15 @@ public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISide @Optional.Method(modid = "OpenComputers") public Object[] getCoords(Context context, Arguments args) { if (slots[1] != null && slots[1].getItem() instanceof IDesignatorItem) { - int xCoord2 = slots[1].stackTagCompound.getInteger("xCoord"); - int zCoord2 = slots[1].stackTagCompound.getInteger("zCoord"); + int xCoord2; + int zCoord2; + if (slots[1].stackTagCompound != null) { + xCoord2 = slots[1].stackTagCompound.getInteger("xCoord"); + zCoord2 = slots[1].stackTagCompound.getInteger("zCoord"); + } else + return new Object[] {false}; - //unsure if this is needed, leaving here in case it is + // Not sure if i should have this /* if(xCoord2 == xCoord && zCoord2 == zCoord) { xCoord2 += 1; @@ -663,6 +668,7 @@ public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISide @Optional.Method(modid = "OpenComputers") public Object[] setCoords(Context context, Arguments args) { if (slots[1] != null && slots[1].getItem() instanceof IDesignatorItem) { + slots[1].stackTagCompound = new NBTTagCompound(); slots[1].stackTagCompound.setInteger("xCoord", args.checkInteger(0)); slots[1].stackTagCompound.setInteger("zCoord", args.checkInteger(1)); diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java index 15e321eec..2d05bbf25 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java @@ -2,6 +2,7 @@ package com.hbm.tileentity.machine.storage; import api.hbm.energy.*; import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.bomb.LaunchPad; import com.hbm.blocks.machine.MachineBattery; import com.hbm.inventory.container.ContainerMachineBattery; import com.hbm.inventory.gui.GUIMachineBattery; @@ -394,17 +395,7 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I // do some opencomputer stuff @Override public String getComponentName() { - Block block = worldObj.getBlock(xCoord, yCoord, zCoord); - if (block.equals(ModBlocks.machine_battery_potato)) { - return "ntm_energy_storage_potato"; - } else if (block.equals(ModBlocks.machine_lithium_battery)) { - return "ntm_energy_storage_lithium"; - } else if (block.equals(ModBlocks.machine_schrabidium_battery)) { - return "ntm_energy_storage_schrabidum"; - } else if (block.equals(ModBlocks.machine_dineutronium_battery)) { - return "ntm_energy_storage_dineutronium"; - } else - return "ntm_energy_storage"; + return "ntm_energy_storage"; //ok if someone else can figure out how to do this that'd be nice (change the component name based on the type of storage block) } @Callback(direct = true, limit = 8) From 09b83da5788ba5da743475b4df4594824b5650ff Mon Sep 17 00:00:00 2001 From: Bob Date: Thu, 3 Aug 2023 13:37:23 +0200 Subject: [PATCH 221/432] armor UV, fixes, electrolyzer recipes --- changelog | 4 +- .../recipes/ElectrolyserFluidRecipes.java | 21 +++++ .../recipes/ElectrolyserMetalRecipes.java | 80 +++++++++++++++++- .../recipes/loader/SerializableRecipe.java | 1 + .../hbm/render/tileentity/RenderBobble.java | 4 +- .../machine/TileEntityCustomMachine.java | 17 ++-- src/main/resources/assets/hbm/lang/en_US.lang | 15 ++++ .../assets/hbm/sounds/block/hornFarDual.ogg | Bin 0 -> 119797 bytes .../assets/hbm/sounds/block/hornFarSingle.ogg | Bin 0 -> 68543 bytes .../assets/hbm/sounds/block/hornNearDual.ogg | Bin 0 -> 210065 bytes .../hbm/sounds/block/hornNearSingle.ogg | Bin 0 -> 121810 bytes .../assets/hbm/textures/armor/envsuit_arm.png | Bin 0 -> 314 bytes .../hbm/textures/armor/envsuit_chest.png | Bin 0 -> 645 bytes .../hbm/textures/armor/envsuit_helmet.png | Bin 0 -> 701 bytes .../assets/hbm/textures/armor/envsuit_leg.png | Bin 0 -> 548 bytes .../hbm/textures/armor/envsuit_tail.png | Bin 0 -> 764 bytes .../hbm/textures/models/trinkets/adam29.png | Bin 3166 -> 1984 bytes 17 files changed, 128 insertions(+), 14 deletions(-) create mode 100644 src/main/resources/assets/hbm/sounds/block/hornFarDual.ogg create mode 100644 src/main/resources/assets/hbm/sounds/block/hornFarSingle.ogg create mode 100644 src/main/resources/assets/hbm/sounds/block/hornNearDual.ogg create mode 100644 src/main/resources/assets/hbm/sounds/block/hornNearSingle.ogg create mode 100644 src/main/resources/assets/hbm/textures/armor/envsuit_arm.png create mode 100644 src/main/resources/assets/hbm/textures/armor/envsuit_chest.png create mode 100644 src/main/resources/assets/hbm/textures/armor/envsuit_helmet.png create mode 100644 src/main/resources/assets/hbm/textures/armor/envsuit_leg.png create mode 100644 src/main/resources/assets/hbm/textures/armor/envsuit_tail.png diff --git a/changelog b/changelog index dc78b26b6..b609d3764 100644 --- a/changelog +++ b/changelog @@ -7,4 +7,6 @@ * Custom machines now show their recipes in NEI * All it took was battling NEI's source code for 3 hours and my sanity -## Fixed \ No newline at end of file +## Fixed +* Fixed custom machines not sending fluid +* Fixed custom machine item IO not working beyond the first slot \ No newline at end of file diff --git a/src/main/java/com/hbm/inventory/recipes/ElectrolyserFluidRecipes.java b/src/main/java/com/hbm/inventory/recipes/ElectrolyserFluidRecipes.java index 5a61fb756..6eee6ba55 100644 --- a/src/main/java/com/hbm/inventory/recipes/ElectrolyserFluidRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ElectrolyserFluidRecipes.java @@ -2,8 +2,10 @@ package com.hbm.inventory.recipes; import java.io.IOException; import java.util.HashMap; +import java.util.Map.Entry; import com.google.gson.JsonElement; +import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; import com.hbm.inventory.FluidStack; import com.hbm.inventory.fluid.FluidType; @@ -43,12 +45,31 @@ public class ElectrolyserFluidRecipes extends SerializableRecipe { @Override public void readRecipe(JsonElement recipe) { + JsonObject obj = (JsonObject) recipe; + + FluidStack input = this.readFluidStack(obj.get("input").getAsJsonArray()); + FluidStack output1 = this.readFluidStack(obj.get("output1").getAsJsonArray()); + FluidStack output2 = this.readFluidStack(obj.get("output2").getAsJsonArray()); + ItemStack[] byproducts = new ItemStack[0]; + if(obj.has("byproducts")) byproducts = this.readItemStackArray(obj.get("byproducts").getAsJsonArray()); + + recipes.put(input.type, new ElectrolysisRecipe(input.fill, output1, output2, byproducts)); } @Override public void writeRecipe(Object recipe, JsonWriter writer) throws IOException { + Entry rec = (Entry) recipe; + writer.name("input"); this.writeFluidStack(new FluidStack(rec.getKey(), rec.getValue().amount), writer); + writer.name("output1"); this.writeFluidStack(rec.getValue().output1, writer); + writer.name("output2"); this.writeFluidStack(rec.getValue().output2, writer); + + if(rec.getValue().byproduct != null && rec.getValue().byproduct.length > 0) { + writer.name("byproducts").beginArray(); + for(ItemStack stack : rec.getValue().byproduct) this.writeItemStack(stack, writer); + writer.endArray(); + } } public static class ElectrolysisRecipe { diff --git a/src/main/java/com/hbm/inventory/recipes/ElectrolyserMetalRecipes.java b/src/main/java/com/hbm/inventory/recipes/ElectrolyserMetalRecipes.java index 40b3555c7..d5d3fe492 100644 --- a/src/main/java/com/hbm/inventory/recipes/ElectrolyserMetalRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ElectrolyserMetalRecipes.java @@ -2,12 +2,22 @@ package com.hbm.inventory.recipes; import java.io.IOException; import java.util.HashMap; +import java.util.List; +import java.util.Map.Entry; +import com.google.gson.JsonArray; import com.google.gson.JsonElement; +import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.inventory.RecipesCommon.OreDictStack; +import com.hbm.inventory.material.MaterialShapes; +import com.hbm.inventory.material.Mats; import com.hbm.inventory.material.Mats.MaterialStack; import com.hbm.inventory.recipes.loader.SerializableRecipe; +import com.hbm.items.ModItems; +import com.hbm.util.ItemStackUtil; import net.minecraft.item.ItemStack; @@ -17,10 +27,31 @@ public class ElectrolyserMetalRecipes extends SerializableRecipe { @Override public void registerDefaults() { - + + recipes.put(new ComparableStack(ModItems.crystal_iron), new ElectrolysisMetalRecipe( + new MaterialStack(Mats.MAT_IRON, MaterialShapes.INGOT.q(6)), + new MaterialStack(Mats.MAT_TITANIUM, MaterialShapes.INGOT.q(2)), + new ItemStack(ModItems.powder_lithium_tiny, 1))); + recipes.put(new ComparableStack(ModItems.crystal_gold), new ElectrolysisMetalRecipe( + new MaterialStack(Mats.MAT_IRON, MaterialShapes.INGOT.q(6)), + new MaterialStack(Mats.MAT_LEAD, MaterialShapes.INGOT.q(2)), + new ItemStack(ModItems.powder_lithium_tiny, 1), + new ItemStack(ModItems.ingot_mercury, 1))); } public static ElectrolysisMetalRecipe getRecipe(ItemStack stack) { + + ComparableStack comp = new ComparableStack(stack).makeSingular(); + + if(recipes.containsKey(comp)) return recipes.get(comp); + + List names = ItemStackUtil.getOreDictNames(stack); + + for(String name : names) { + OreDictStack ore = new OreDictStack(name); + if(recipes.containsKey(ore)) return recipes.get(ore); + } + return null; } @@ -41,18 +72,63 @@ public class ElectrolyserMetalRecipes extends SerializableRecipe { @Override public void readRecipe(JsonElement recipe) { + JsonObject obj = (JsonObject) recipe; + AStack input = this.readAStack(obj.get("input").getAsJsonArray()); + + JsonArray out1 = obj.get("output1").getAsJsonArray(); + String name1 = out1.get(0).getAsString(); + int amount1 = out1.get(1).getAsInt(); + MaterialStack output1 = new MaterialStack(Mats.matByName.get(name1), amount1); + + JsonArray out2 = obj.get("output2").getAsJsonArray(); + String name2 = out2.get(0).getAsString(); + int amount2 = out2.get(1).getAsInt(); + MaterialStack output2 = new MaterialStack(Mats.matByName.get(name2), amount2); + + ItemStack[] byproducts = new ItemStack[0]; + if(obj.has("byproducts")) byproducts = this.readItemStackArray(obj.get("byproducts").getAsJsonArray()); + + recipes.put(input, new ElectrolysisMetalRecipe(output1, output2, byproducts)); } @Override public void writeRecipe(Object recipe, JsonWriter writer) throws IOException { + Entry rec = (Entry) recipe; + writer.name("input"); this.writeAStack(rec.getKey(), writer); + + writer.name("output1"); + writer.beginArray(); + writer.setIndent(""); + writer.value(rec.getValue().output1.material.names[0]).value(rec.getValue().output1.amount); + writer.endArray(); + writer.setIndent(" "); + + writer.name("output2"); + writer.beginArray(); + writer.setIndent(""); + writer.value(rec.getValue().output2.material.names[0]).value(rec.getValue().output2.amount); + writer.endArray(); + writer.setIndent(" "); + + if(rec.getValue().byproduct != null && rec.getValue().byproduct.length > 0) { + writer.name("byproducts").beginArray(); + for(ItemStack stack : rec.getValue().byproduct) this.writeItemStack(stack, writer); + writer.endArray(); + } } public static class ElectrolysisMetalRecipe { public MaterialStack output1; public MaterialStack output2; - public ItemStack[] byproducts; + public ItemStack[] byproduct; + + public ElectrolysisMetalRecipe(MaterialStack output1, MaterialStack output2, ItemStack... byproduct) { + this.output1 = output1; + this.output2 = output2; + this.byproduct = byproduct; + } } } diff --git a/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java b/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java index c2252db37..cf6ed2490 100644 --- a/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java +++ b/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java @@ -63,6 +63,7 @@ public abstract class SerializableRecipe { recipeHandlers.add(new OutgasserRecipes()); recipeHandlers.add(new CompressorRecipes()); recipeHandlers.add(new ElectrolyserFluidRecipes()); + recipeHandlers.add(new ElectrolyserMetalRecipes()); recipeHandlers.add(new MatDistribution()); recipeHandlers.add(new CustomMachineRecipes()); diff --git a/src/main/java/com/hbm/render/tileentity/RenderBobble.java b/src/main/java/com/hbm/render/tileentity/RenderBobble.java index 021499dbc..5d2e0ea14 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderBobble.java +++ b/src/main/java/com/hbm/render/tileentity/RenderBobble.java @@ -404,9 +404,9 @@ public class RenderBobble extends TileEntitySpecialRenderer { renderItem(new ItemStack(ModItems.coin_maskman, 1, 5)); break; case ADAM29: - GL11.glTranslated(0.45, 1.15, 0.4); + GL11.glTranslated(0.4, 1.15, 0.4); GL11.glScaled(0.5, 0.5, 0.5); - renderItem(new ItemStack(ModItems.coffee)); + renderItem(new ItemStack(ModItems.can_redbomb)); break; case PHEO: GL11.glTranslated(0.5, 1.15, 0.45); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java index dc3302b46..4803e6e38 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java @@ -114,10 +114,9 @@ public class TileEntityCustomMachine extends TileEntityMachineBase implements IF } } - if(config.generatorMode && power > 0) { - for(DirPos pos : this.connectionPos) { - this.sendPower(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); - } + for(DirPos pos : this.connectionPos) { + if(config.generatorMode && power > 0) this.sendPower(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + for(FluidTank tank : this.outputTanks) if(tank.getFill() > 0) this.sendFluid(tank, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } if(this.structureOK) { @@ -337,12 +336,12 @@ public class TileEntityCustomMachine extends TileEntityMachineBase implements IF @Override public int[] getAccessibleSlotsFromSide(int side) { if(this.config == null) return new int[] { }; - if(this.config.itemInCount > 0) return new int[] { 4, 16, 17, 18, 19, 20, 21 }; - if(this.config.itemInCount > 1) return new int[] { 4, 5, 16, 17, 18, 19, 20, 21 }; - if(this.config.itemInCount > 2) return new int[] { 4, 5, 6, 16, 17, 18, 19, 20, 21 }; - if(this.config.itemInCount > 3) return new int[] { 4, 5, 6, 7, 16, 17, 18, 19, 20, 21 }; - if(this.config.itemInCount > 4) return new int[] { 4, 5, 6, 7, 8, 16, 17, 18, 19, 20, 21 }; if(this.config.itemInCount > 5) return new int[] { 4, 5, 6, 7, 8, 9, 16, 17, 18, 19, 20, 21 }; + if(this.config.itemInCount > 4) return new int[] { 4, 5, 6, 7, 8, 16, 17, 18, 19, 20, 21 }; + if(this.config.itemInCount > 3) return new int[] { 4, 5, 6, 7, 16, 17, 18, 19, 20, 21 }; + if(this.config.itemInCount > 2) return new int[] { 4, 5, 6, 16, 17, 18, 19, 20, 21 }; + if(this.config.itemInCount > 1) return new int[] { 4, 5, 16, 17, 18, 19, 20, 21 }; + if(this.config.itemInCount > 0) return new int[] { 4, 16, 17, 18, 19, 20, 21 }; return new int[] { }; } diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 4bfcf8ce1..37d2f9508 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -431,6 +431,21 @@ book_lore.bf_bomb_5.page.6=There's a vital distinction to be made between dissec book_lore.bf_bomb_5.page.7=The government wants to put this shit into bombs after all, maybe we'll see a couple more wars, couple more million resigned to a fate worse than death. They can't hide this forever. $ $ I don't care. Not anymore. Please, god, let me go back book_lore.bf_bomb_5.page.8=to actual science. $ $ Goddamnit, Mae, get ahold of yourself... +book_lore.beacon.name=Signal Beacon Instruction Booklet +book_lore.beacon.author=Flim Flam Industries +book_lore.beacon.page.0=Thank you for your purchase of a Mk.2 Illuminated Signal Beacon (rev. 1.3)! This small booklet will provide a short introduction in the operation of the beacon, as well as its inner workings. +book_lore.beacon.page.1=Chapter 1: Architecture $ Each unit is composed of four main parts: The control circuit, a lantern, a fog horn and the casing which houses the other parts. For a detailed explanation of the main circuit, please +book_lore.beacon.page.2=refer to the circuit diagram found on the inside of the maintenance lid of the casing. The lantern is made up of a polycarbonate case containing a dual-color 250 Watt halogen bulb with a standard 200mm socket, replacements +book_lore.beacon.page.3=for the bulb can be ordered from our stores. Third party bulbs are not recommended, as we cannot ensure safe operation. The case is made from a specialized zinc-coated stainless steel and is resistant to weathering. +book_lore.beacon.page.4=Chapter 2: Lantern $ The lantern's primary uses are providing light for ease of maintenance in harsh weather conditions as well as a status indicator. Should the power-on self test (POST) fail, the lantern will +book_lore.beacon.page.5=light up red, otherwise it will light up green. Note that colors can vary depending on the replacement bulb. +book_lore.beacon.page.6=Chapter 3: Fog Horn $ The fog horn is the primary communication device of the beacon. The beacon is designed for peer-to-peer (P2P) commincation as well as for message boradcasting. +book_lore.beacon.page.7=Chapter 4: Peer-to-Peer $ For details on communication, refer to the communications handbook. A short rundown of establishing a P2P connection follows: First, the beacon has to give the "START CONNECTION" signal, +book_lore.beacon.page.8=being a single long tone. All available peers should respond with a single long tone as well (order specified by proximity, as well as the communication guidelines outlined in the handbook, section "Responding to a Connection") +book_lore.beacon.page.9=Once the desired peer has responded, give the "ACCEPT CONNECTION" signal, being two long tones, the peer will then also respon with two long tones. All communication afterwards has to happen using pre-negotiated signals, +book_lore.beacon.page.10=most commonly using the FAR-5M standard. Communication will end immediately if no standard has been negotiated, serving as a "ping". Should communication continue, the connection can be ended using another long single tone "END CONNECTION". +book_lore.beacon.page.11=Chapter 5: Warranty $ [ page intentionally left blank ] + cannery.f1=[ Press F1 for help ] cannery.centrifuge=Gas Centrifuge diff --git a/src/main/resources/assets/hbm/sounds/block/hornFarDual.ogg b/src/main/resources/assets/hbm/sounds/block/hornFarDual.ogg new file mode 100644 index 0000000000000000000000000000000000000000..f92fc501413e8173468efe9a2c4902cebc781747 GIT binary patch literal 119797 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�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%0A*NmQKI#82<`w|jBA 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 I^=x1NKL+AQ;s5{u literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/doors/sliding_blast_door_variant2.png b/src/main/resources/assets/hbm/textures/models/doors/sliding_blast_door_variant2.png new file mode 100644 index 0000000000000000000000000000000000000000..8a327955d43a688d234548c80d6e2ded2e416813 GIT binary patch literal 41151 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 literal 0 HcmV?d00001 From 71814dae87f891d52979bfb6ed6ec9aff77f22be Mon Sep 17 00:00:00 2001 From: Toshayo Date: Wed, 21 Jun 2023 22:45:55 +0200 Subject: [PATCH 143/432] Some clean-up --- src/main/java/com/hbm/interfaces/IDoor.java | 2 +- src/main/java/com/hbm/tileentity/DoorDecl.java | 2 -- .../java/com/hbm/tileentity/TileEntityDoorGeneric.java | 9 ++------- 3 files changed, 3 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/hbm/interfaces/IDoor.java b/src/main/java/com/hbm/interfaces/IDoor.java index 81d6229ed..a0c539a28 100644 --- a/src/main/java/com/hbm/interfaces/IDoor.java +++ b/src/main/java/com/hbm/interfaces/IDoor.java @@ -19,6 +19,6 @@ public interface IDoor { CLOSED, OPEN, CLOSING, - OPENING; + OPENING } } diff --git a/src/main/java/com/hbm/tileentity/DoorDecl.java b/src/main/java/com/hbm/tileentity/DoorDecl.java index d977ae7a1..b7683d828 100644 --- a/src/main/java/com/hbm/tileentity/DoorDecl.java +++ b/src/main/java/com/hbm/tileentity/DoorDecl.java @@ -420,6 +420,4 @@ public abstract class DoorDecl { f[2] = z; return f; } - - ; } diff --git a/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java b/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java index 2f2636495..5968d685e 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java +++ b/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java @@ -54,9 +54,7 @@ public class TileEntityDoorGeneric extends TileEntityLockableBase implements IAn } } - if(worldObj.isRemote) { - - } else { + if(!worldObj.isRemote) { BlockPos pos = new BlockPos(this); @@ -284,10 +282,7 @@ public class TileEntityDoorGeneric extends TileEntityLockableBase implements IAn //Ah yes piggy backing on this packet @Override public void setTextureState(byte tex){ - if(tex > 0) - shouldUseBB = true; - else - shouldUseBB = false; + shouldUseBB = tex > 0; } public int getSkinIndex() { From c3f13a87862a0822841791737e4afa5be3492045 Mon Sep 17 00:00:00 2001 From: Toshayo Date: Thu, 22 Jun 2023 08:25:32 +0200 Subject: [PATCH 144/432] Added logging of item stats re-registration end --- src/main/java/com/hbm/main/MainRegistry.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 19c93acf9..6fc8c873e 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -932,6 +932,7 @@ public class MainRegistry { if(GeneralConfig.enableStatReRegistering) { logger.info("Attempting to re-register item stats..."); StatHelper.resetStatShitFuck(); //shit yourself + logger.info("Item stats re-registered"); } } From 9f873e6b7611bf8e1bf78bb4a34ac34fef70030e Mon Sep 17 00:00:00 2001 From: Toshayo Date: Thu, 22 Jun 2023 08:31:45 +0200 Subject: [PATCH 145/432] Skin name in door skin item --- .../com/hbm/items/special/ItemSlidingBlastDoorSkin.java | 6 ++++++ src/main/resources/assets/hbm/lang/en_US.lang | 4 +++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/items/special/ItemSlidingBlastDoorSkin.java b/src/main/java/com/hbm/items/special/ItemSlidingBlastDoorSkin.java index ab48475f8..36008e132 100644 --- a/src/main/java/com/hbm/items/special/ItemSlidingBlastDoorSkin.java +++ b/src/main/java/com/hbm/items/special/ItemSlidingBlastDoorSkin.java @@ -4,6 +4,7 @@ import com.hbm.lib.RefStrings; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.item.ItemStack; public class ItemSlidingBlastDoorSkin extends ItemDoorSkin { public ItemSlidingBlastDoorSkin() { @@ -19,4 +20,9 @@ public class ItemSlidingBlastDoorSkin extends ItemDoorSkin { this.icons[1] = reg.registerIcon(RefStrings.MODID + ":sliding_blast_door_variant1"); this.icons[2] = reg.registerIcon(RefStrings.MODID + ":sliding_blast_door_variant2"); } + + @Override + public String getUnlocalizedName(ItemStack stack) { + return super.getUnlocalizedName(stack) + "." + stack.getItemDamage(); + } } diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 925bde4ae..fa62d042a 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -3838,7 +3838,9 @@ item.singularity_super_heated.name=Superheated Resonating Singularity item.siox.name=SiOX Cancer Medication item.siox.desc=Reverses mesothelioma with the power of Asbestos! item.siren_track.name=Siren Track -item.sliding_blast_door_skin.name=Sliding Blast Door Skin +item.sliding_blast_door_skin.0.name=Sliding Blast Door Skin: Default +item.sliding_blast_door_skin.1.name=Sliding Blast Door Skin: Variant 1 +item.sliding_blast_door_skin.2.name=Sliding Blast Door Skin: Variant 2 item.smashing_hammer.name=Smashing Hammer item.solid_fuel.name=Solid Fuel item.solid_fuel_bf.name=Solid Fuel (Balefire) From 0be6b6644603c0bfa5f4c8f5da7a9455c3770cee Mon Sep 17 00:00:00 2001 From: Toshayo Date: Thu, 22 Jun 2023 09:01:09 +0200 Subject: [PATCH 146/432] Improved satellite loot system again so lunar loot is in lunar satellite and not in random class --- .../hbm/entity/missile/EntityMinerRocket.java | 13 +- .../satellites/SatelliteLunarMiner.java | 19 +- .../saveddata/satellites/SatelliteMiner.java | 55 +- .../SatelliteMinerCargoRegistry.java | 82 --- .../machine/TileEntityMachineSatDock.java | 594 +++++++++--------- 5 files changed, 358 insertions(+), 405 deletions(-) delete mode 100644 src/main/java/com/hbm/saveddata/satellites/SatelliteMinerCargoRegistry.java diff --git a/src/main/java/com/hbm/entity/missile/EntityMinerRocket.java b/src/main/java/com/hbm/entity/missile/EntityMinerRocket.java index cb8af88ae..6264046a9 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMinerRocket.java +++ b/src/main/java/com/hbm/entity/missile/EntityMinerRocket.java @@ -10,11 +10,8 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; public class EntityMinerRocket extends Entity { - //0 landing, 1 unloading, 2 lifting public int timer = 0; - //0 asteroid, 1 moon - public String satelliteClassName = "com.hbm.saveddata.satellites.SatelliteMiner"; public EntityMinerRocket(World p_i1582_1_) { super(p_i1582_1_); @@ -24,13 +21,12 @@ public class EntityMinerRocket extends Entity { @Override protected void entityInit() { - this.dataWatcher.addObject(16, Integer.valueOf(0)); - this.dataWatcher.addObject(17, Integer.valueOf(0)); + this.dataWatcher.addObject(16, 0); + this.dataWatcher.addObject(17, 0); } @Override public void onUpdate() { - if(dataWatcher.getWatchableObjectInt(16) == 0) motionY = -0.75; if(dataWatcher.getWatchableObjectInt(16) == 1) @@ -43,7 +39,6 @@ public class EntityMinerRocket extends Entity { this.setPositionAndRotation(posX + motionX, posY + motionY, posZ + motionZ, 0.0F, 0.0F); - if(dataWatcher.getWatchableObjectInt(16) == 0 && worldObj.getBlock((int)(posX - 0.5), (int)(posY - 0.5), (int)(posZ - 0.5)) == ModBlocks.sat_dock) { dataWatcher.updateObject(16, 1); motionY = 0; @@ -55,7 +50,6 @@ public class EntityMinerRocket extends Entity { } if(dataWatcher.getWatchableObjectInt(16) == 1) { - if(!worldObj.isRemote && ticksExisted % 4 == 0) ExplosionLarge.spawnShock(worldObj, posX, posY, posZ, 1 + rand.nextInt(3), 1 + rand.nextGaussian()); @@ -79,7 +73,6 @@ public class EntityMinerRocket extends Entity { dataWatcher.updateObject(16, nbt.getInteger("mode")); dataWatcher.updateObject(17, nbt.getInteger("sat")); timer = nbt.getInteger("timer"); - satelliteClassName = nbt.getString("type"); } @Override @@ -87,7 +80,5 @@ public class EntityMinerRocket extends Entity { nbt.setInteger("mode", dataWatcher.getWatchableObjectInt(16)); nbt.setInteger("sat", dataWatcher.getWatchableObjectInt(17)); nbt.setInteger("timer", timer); - nbt.setString("type", satelliteClassName); } - } diff --git a/src/main/java/com/hbm/saveddata/satellites/SatelliteLunarMiner.java b/src/main/java/com/hbm/saveddata/satellites/SatelliteLunarMiner.java index 99195b6d5..76f680841 100644 --- a/src/main/java/com/hbm/saveddata/satellites/SatelliteLunarMiner.java +++ b/src/main/java/com/hbm/saveddata/satellites/SatelliteLunarMiner.java @@ -1,3 +1,20 @@ package com.hbm.saveddata.satellites; -public class SatelliteLunarMiner extends SatelliteMiner { } \ No newline at end of file +import com.hbm.blocks.ModBlocks; +import com.hbm.items.ModItems; +import com.hbm.util.WeightedRandomObject; +import net.minecraft.item.ItemStack; + +public class SatelliteLunarMiner extends SatelliteMiner { + static { + registerCargo(new WeightedRandomObject[] { + new WeightedRandomObject(new ItemStack(ModBlocks.moon_turf, 48), 5), + new WeightedRandomObject(new ItemStack(ModBlocks.moon_turf, 32), 7), + new WeightedRandomObject(new ItemStack(ModBlocks.moon_turf, 16), 5), + new WeightedRandomObject(new ItemStack(ModItems.powder_lithium, 3), 5), + new WeightedRandomObject(new ItemStack(ModItems.powder_iron, 3), 5), + new WeightedRandomObject(new ItemStack(ModItems.crystal_iron, 1), 1), + new WeightedRandomObject(new ItemStack(ModItems.crystal_lithium, 1), 1) + }); + } +} \ No newline at end of file diff --git a/src/main/java/com/hbm/saveddata/satellites/SatelliteMiner.java b/src/main/java/com/hbm/saveddata/satellites/SatelliteMiner.java index f54beb254..c5bd22821 100644 --- a/src/main/java/com/hbm/saveddata/satellites/SatelliteMiner.java +++ b/src/main/java/com/hbm/saveddata/satellites/SatelliteMiner.java @@ -1,9 +1,46 @@ package com.hbm.saveddata.satellites; +import com.hbm.blocks.ModBlocks; +import com.hbm.items.ModItems; +import com.hbm.util.WeightedRandomObject; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; public class SatelliteMiner extends Satellite { - + /** + * {@link WeightedRandomObject} array with loot the satellite will deliver. + */ + private static WeightedRandomObject[] CARGO = new WeightedRandomObject[] { + new WeightedRandomObject(new ItemStack(ModItems.powder_aluminium, 3), 10), + new WeightedRandomObject(new ItemStack(ModItems.powder_iron, 3), 10), + new WeightedRandomObject(new ItemStack(ModItems.powder_titanium, 2), 8), + new WeightedRandomObject(new ItemStack(ModItems.crystal_tungsten, 2), 7), + new WeightedRandomObject(new ItemStack(ModItems.powder_coal, 4), 15), + new WeightedRandomObject(new ItemStack(ModItems.powder_uranium, 2), 5), + new WeightedRandomObject(new ItemStack(ModItems.powder_plutonium, 1), 5), + new WeightedRandomObject(new ItemStack(ModItems.powder_thorium, 2), 7), + new WeightedRandomObject(new ItemStack(ModItems.powder_desh_mix, 3), 5), + new WeightedRandomObject(new ItemStack(ModItems.powder_diamond, 2), 7), + new WeightedRandomObject(new ItemStack(Items.redstone, 5), 15), + new WeightedRandomObject(new ItemStack(ModItems.powder_nitan_mix, 2), 5), + new WeightedRandomObject(new ItemStack(ModItems.powder_power, 2), 5), + new WeightedRandomObject(new ItemStack(ModItems.powder_copper, 5), 15), + new WeightedRandomObject(new ItemStack(ModItems.powder_lead, 3), 10), + new WeightedRandomObject(new ItemStack(ModItems.fluorite, 4), 15), + new WeightedRandomObject(new ItemStack(ModItems.powder_lapis, 4), 10), + new WeightedRandomObject(new ItemStack(ModItems.powder_combine_steel, 1), 1), + new WeightedRandomObject(new ItemStack(ModItems.crystal_aluminium, 1), 5), + new WeightedRandomObject(new ItemStack(ModItems.crystal_gold, 1), 5), + new WeightedRandomObject(new ItemStack(ModItems.crystal_phosphorus, 1), 10), + new WeightedRandomObject(new ItemStack(ModBlocks.gravel_diamond, 1), 3), + new WeightedRandomObject(new ItemStack(ModItems.crystal_uranium, 1), 3), + new WeightedRandomObject(new ItemStack(ModItems.crystal_plutonium, 1), 3), + new WeightedRandomObject(new ItemStack(ModItems.crystal_trixite, 1), 1), + new WeightedRandomObject(new ItemStack(ModItems.crystal_starmetal, 1), 1), + new WeightedRandomObject(new ItemStack(ModItems.crystal_lithium, 2), 4) + }; + public long lastOp; public SatelliteMiner() { @@ -17,4 +54,20 @@ public class SatelliteMiner extends Satellite { public void readFromNBT(NBTTagCompound nbt) { lastOp = nbt.getLong("lastOp"); } + + /** + * Replaces cargo of the satellite. + * @param cargo - Array of {@link WeightedRandomObject} representing the loot that will be delivered. + */ + public static void registerCargo(WeightedRandomObject[] cargo) { + CARGO = cargo; + } + + /** + * Gets items the satellite can deliver. + * @return - Array of {@link WeightedRandomObject} of satellite loot. + */ + public WeightedRandomObject[] getCargo() { + return CARGO; + } } diff --git a/src/main/java/com/hbm/saveddata/satellites/SatelliteMinerCargoRegistry.java b/src/main/java/com/hbm/saveddata/satellites/SatelliteMinerCargoRegistry.java deleted file mode 100644 index 7caf98f02..000000000 --- a/src/main/java/com/hbm/saveddata/satellites/SatelliteMinerCargoRegistry.java +++ /dev/null @@ -1,82 +0,0 @@ -package com.hbm.saveddata.satellites; - -import com.hbm.blocks.ModBlocks; -import com.hbm.items.ModItems; -import com.hbm.util.WeightedRandomObject; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; - -import java.util.HashMap; - -public class SatelliteMinerCargoRegistry { - private static final HashMap cargo = new HashMap() {{ - put(SatelliteMiner.class.getName(), new WeightedRandomObject[] { - new WeightedRandomObject(new ItemStack(ModItems.powder_aluminium, 3), 10), - new WeightedRandomObject(new ItemStack(ModItems.powder_iron, 3), 10), - new WeightedRandomObject(new ItemStack(ModItems.powder_titanium, 2), 8), - new WeightedRandomObject(new ItemStack(ModItems.crystal_tungsten, 2), 7), - new WeightedRandomObject(new ItemStack(ModItems.powder_coal, 4), 15), - new WeightedRandomObject(new ItemStack(ModItems.powder_uranium, 2), 5), - new WeightedRandomObject(new ItemStack(ModItems.powder_plutonium, 1), 5), - new WeightedRandomObject(new ItemStack(ModItems.powder_thorium, 2), 7), - new WeightedRandomObject(new ItemStack(ModItems.powder_desh_mix, 3), 5), - new WeightedRandomObject(new ItemStack(ModItems.powder_diamond, 2), 7), - new WeightedRandomObject(new ItemStack(Items.redstone, 5), 15), - new WeightedRandomObject(new ItemStack(ModItems.powder_nitan_mix, 2), 5), - new WeightedRandomObject(new ItemStack(ModItems.powder_power, 2), 5), - new WeightedRandomObject(new ItemStack(ModItems.powder_copper, 5), 15), - new WeightedRandomObject(new ItemStack(ModItems.powder_lead, 3), 10), - new WeightedRandomObject(new ItemStack(ModItems.fluorite, 4), 15), - new WeightedRandomObject(new ItemStack(ModItems.powder_lapis, 4), 10), - new WeightedRandomObject(new ItemStack(ModItems.powder_combine_steel, 1), 1), - new WeightedRandomObject(new ItemStack(ModItems.crystal_aluminium, 1), 5), - new WeightedRandomObject(new ItemStack(ModItems.crystal_gold, 1), 5), - new WeightedRandomObject(new ItemStack(ModItems.crystal_phosphorus, 1), 10), - new WeightedRandomObject(new ItemStack(ModBlocks.gravel_diamond, 1), 3), - new WeightedRandomObject(new ItemStack(ModItems.crystal_uranium, 1), 3), - new WeightedRandomObject(new ItemStack(ModItems.crystal_plutonium, 1), 3), - new WeightedRandomObject(new ItemStack(ModItems.crystal_trixite, 1), 1), - new WeightedRandomObject(new ItemStack(ModItems.crystal_starmetal, 1), 1), - new WeightedRandomObject(new ItemStack(ModItems.crystal_lithium, 2), 4) - }); - put(SatelliteLunarMiner.class.getName(), new WeightedRandomObject[] { - new WeightedRandomObject(new ItemStack(ModBlocks.moon_turf, 48), 5), - new WeightedRandomObject(new ItemStack(ModBlocks.moon_turf, 32), 7), - new WeightedRandomObject(new ItemStack(ModBlocks.moon_turf, 16), 5), - new WeightedRandomObject(new ItemStack(ModItems.powder_lithium, 3), 5), - new WeightedRandomObject(new ItemStack(ModItems.powder_iron, 3), 5), - new WeightedRandomObject(new ItemStack(ModItems.crystal_iron, 1), 1), - new WeightedRandomObject(new ItemStack(ModItems.crystal_lithium, 1), 1), - }); - }}; - - /** - * Register cargo for specified satellite object - * @param o - Satellite object - * @param cargo - WeightedRandomObject array with loot - */ - public static void register(Object o, WeightedRandomObject[] cargo) { - SatelliteMinerCargoRegistry.cargo.put(o.getClass().getName(), cargo); - } - - /** - * Register cargo for specified satellite class - * @param c - Satellite class - * @param cargo - WeightedRandomObject array with loot - */ - public static void register(Class c, WeightedRandomObject[] cargo) { - SatelliteMinerCargoRegistry.cargo.put(c.getName(), cargo); - } - - /** - * Get loot by satellite class name - * @param satelliteName - Satellite class name, like com.hbm.saveddata.satellites.SatelliteMiner - * @return - WeightedRandomObject array with loot - */ - public static WeightedRandomObject[] getCargo(String satelliteName) { - if(cargo.containsKey(satelliteName)) { - return cargo.get(satelliteName); - } - return new WeightedRandomObject[0]; - } -} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatDock.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatDock.java index 47dd95969..6a29cf0d3 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatDock.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatDock.java @@ -1,8 +1,5 @@ package com.hbm.tileentity.machine; -import java.util.List; -import java.util.Random; - import com.hbm.entity.missile.EntityMinerRocket; import com.hbm.explosion.ExplosionNukeSmall; import com.hbm.inventory.container.ContainerSatDock; @@ -11,10 +8,8 @@ import com.hbm.items.ISatChip; import com.hbm.saveddata.SatelliteSavedData; import com.hbm.saveddata.satellites.Satellite; import com.hbm.saveddata.satellites.SatelliteMiner; -import com.hbm.saveddata.satellites.SatelliteMinerCargoRegistry; import com.hbm.tileentity.IGUIProvider; import com.hbm.util.WeightedRandomObject; - import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.GuiScreen; @@ -31,355 +26,334 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.WeightedRandom; import net.minecraft.world.World; +import java.util.List; +import java.util.Random; + public class TileEntityMachineSatDock extends TileEntity implements ISidedInventory, IGUIProvider { + private ItemStack[] slots; - private ItemStack[] slots; - - private static final int[] access = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }; - - private String customName; - - public TileEntityMachineSatDock() { - slots = new ItemStack[16]; + private static final int[] access = new int[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}; + + private String customName; + + public TileEntityMachineSatDock() { + slots = new ItemStack[16]; + } + + @Override + public int getSizeInventory() { + return slots.length; + } + + @Override + public ItemStack getStackInSlot(int i) { + return slots[i]; + } + + @Override + public ItemStack getStackInSlotOnClosing(int i) { + if (slots[i] != null) { + ItemStack itemStack = slots[i]; + slots[i] = null; + return itemStack; + } else { + return null; + } + } + + @Override + public void setInventorySlotContents(int i, ItemStack itemStack) { + slots[i] = itemStack; + if (itemStack != null && itemStack.stackSize > getInventoryStackLimit()) { + itemStack.stackSize = getInventoryStackLimit(); + } + } + + @Override + public String getInventoryName() { + return this.hasCustomInventoryName() ? this.customName : "container.satDock"; + } + + @Override + public boolean hasCustomInventoryName() { + return this.customName != null && this.customName.length() > 0; + } + + public void setCustomName(String name) { + this.customName = name; + } + + @Override + public int getInventoryStackLimit() { + return 64; + } + + @Override + public boolean isUseableByPlayer(EntityPlayer player) { + if (worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) { + return false; + } else { + return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <= 64; + } + } + + //You scrubs aren't needed for anything (right now) + @Override + public void openInventory() { + } + + @Override + public void closeInventory() { + } + + @Override + public boolean isItemValidForSlot(int i, ItemStack itemStack) { + return i != 2 && i != 3 && i != 4 && i != 5; } - @Override - public int getSizeInventory() { - return slots.length; - } + @Override + public ItemStack decrStackSize(int i, int j) { + if (slots[i] != null) { + if (slots[i].stackSize <= j) { + ItemStack itemStack = slots[i]; + slots[i] = null; + return itemStack; + } + ItemStack itemStack1 = slots[i].splitStack(j); + if (slots[i].stackSize == 0) { + slots[i] = null; + } - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } + return itemStack1; + } else { + return null; + } + } - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if(slots[i] != null) { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + NBTTagList list = nbt.getTagList("items", 10); - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) { - itemStack.stackSize = getInventoryStackLimit(); - } - } + slots = new ItemStack[getSizeInventory()]; - @Override - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.satDock"; - } + for (int i = 0; i < list.tagCount(); i++) { + NBTTagCompound nbt1 = list.getCompoundTagAt(i); + byte b0 = nbt1.getByte("slot"); + if (b0 >= 0 && b0 < slots.length) { + slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); + } + } + } - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + NBTTagList list = new NBTTagList(); - @Override - public int getInventoryStackLimit() { - return 64; - } + for (int i = 0; i < slots.length; i++) { + if (slots[i] != null) { + NBTTagCompound nbt1 = new NBTTagCompound(); + nbt1.setByte("slot", (byte) i); + slots[i].writeToNBT(nbt1); + list.appendTag(nbt1); + } + } + nbt.setTag("items", list); + } - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) { - return false; - } else { - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <= 64; - } - } - - //You scrubs aren't needed for anything (right now) - @Override - public void openInventory() {} - @Override - public void closeInventory() {} + @Override + public int[] getAccessibleSlotsFromSide(int p_94128_1_) { + return access; + } - @Override - public boolean isItemValidForSlot(int i, ItemStack itemStack) { - if(i == 2 || i == 3 || i == 4 || i == 5) { - return false; - } + @Override + public boolean canInsertItem(int i, ItemStack itemStack, int j) { + return this.isItemValidForSlot(i, itemStack); + } - return true; - } + @Override + public boolean canExtractItem(int i, ItemStack itemStack, int j) { + return true; + } - @Override - public ItemStack decrStackSize(int i, int j) { - if(slots[i] != null) { - if(slots[i].stackSize <= j) { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if(slots[i].stackSize == 0) { - slots[i] = null; - } + SatelliteSavedData data = null; - return itemStack1; - } else { - return null; - } - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); + @Override + public void updateEntity() { + if (!worldObj.isRemote) { + if (data == null) + data = (SatelliteSavedData) worldObj.perWorldStorage.loadData(SatelliteSavedData.class, "satellites"); - slots = new ItemStack[getSizeInventory()]; + if (data == null) { + worldObj.perWorldStorage.setData("satellites", new SatelliteSavedData()); + data = (SatelliteSavedData) worldObj.perWorldStorage.loadData(SatelliteSavedData.class, "satellites"); + } + data.markDirty(); - for(int i = 0; i < list.tagCount(); i++) { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if(b0 >= 0 && b0 < slots.length) { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - NBTTagList list = new NBTTagList(); + if (data != null && slots[15] != null) { + int freq = ISatChip.getFreqS(slots[15]); - for(int i = 0; i < slots.length; i++) { - if(slots[i] != null) { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte) i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) { - return access; - } + Satellite sat = data.getSatFromFreq(freq); - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack); - } + int delay = 10 * 60 * 1000; - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return true; - } - - SatelliteSavedData data = null; - - @Override - public void updateEntity() { + if (sat instanceof SatelliteMiner) { + SatelliteMiner miner = (SatelliteMiner) sat; - if(!worldObj.isRemote) { + if (miner.lastOp + delay < System.currentTimeMillis()) { + EntityMinerRocket rocket = new EntityMinerRocket(worldObj); + rocket.posX = xCoord + 0.5; + rocket.posY = 300; + rocket.posZ = zCoord + 0.5; - if(data == null) - data = (SatelliteSavedData) worldObj.perWorldStorage.loadData(SatelliteSavedData.class, "satellites"); + rocket.getDataWatcher().updateObject(17, freq); + worldObj.spawnEntityInWorld(rocket); + miner.lastOp = System.currentTimeMillis(); + data.markDirty(); + } + } + } - if(data == null) { - worldObj.perWorldStorage.setData("satellites", new SatelliteSavedData()); - data = (SatelliteSavedData) worldObj.perWorldStorage.loadData(SatelliteSavedData.class, "satellites"); - } - data.markDirty(); + List list = worldObj.getEntitiesWithinAABBExcludingEntity(null, AxisAlignedBB.getBoundingBox(xCoord - 0.25 + 0.5, yCoord + 0.75, zCoord - 0.25 + 0.5, xCoord + 0.25 + 0.5, yCoord + 2, zCoord + 0.25 + 0.5)); - if(data != null && slots[15] != null) { - int freq = ISatChip.getFreqS(slots[15]); + for (Entity e : list) { + if (e instanceof EntityMinerRocket) { + EntityMinerRocket rocket = (EntityMinerRocket) e; - Satellite sat = data.getSatFromFreq(freq); + if (slots[15] != null && ISatChip.getFreqS(slots[15]) != rocket.getDataWatcher().getWatchableObjectInt(17)) { + rocket.setDead(); + ExplosionNukeSmall.explode(worldObj, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, ExplosionNukeSmall.PARAMS_TOTS); + break; + } - int delay = 10 * 60 * 1000; + if (rocket.getDataWatcher().getWatchableObjectInt(16) == 1 && rocket.timer == 50) { + Satellite sat = data.getSatFromFreq(ISatChip.getFreqS(slots[15])); + unloadCargo((SatelliteMiner) sat); + } + } + } - if(sat instanceof SatelliteMiner) { + ejectInto(xCoord + 2, yCoord, zCoord); + ejectInto(xCoord - 2, yCoord, zCoord); + ejectInto(xCoord, yCoord, zCoord + 2); + ejectInto(xCoord, yCoord, zCoord - 2); + } + } - SatelliteMiner miner = (SatelliteMiner) sat; + static final Random rand = new Random(); - if(miner.lastOp + delay < System.currentTimeMillis()) { + private void unloadCargo(SatelliteMiner satellite) { + int items = rand.nextInt(6) + 10; - EntityMinerRocket rocket = new EntityMinerRocket(worldObj); - rocket.posX = xCoord + 0.5; - rocket.posY = 300; - rocket.posZ = zCoord + 0.5; + WeightedRandomObject[] cargo = satellite.getCargo(); - rocket.satelliteClassName = miner.getClass().getName(); + for (int i = 0; i < items; i++) { + ItemStack stack = ((WeightedRandomObject) WeightedRandom.getRandomItem(rand, cargo)).asStack(); + addToInv(stack.copy()); + } + } - rocket.getDataWatcher().updateObject(17, freq); - worldObj.spawnEntityInWorld(rocket); - miner.lastOp = System.currentTimeMillis(); - data.markDirty(); - } - } - } + private void addToInv(ItemStack stack) { + for (int i = 0; i < 15; i++) { + if (slots[i] != null && slots[i].getItem() == stack.getItem() && slots[i].getItemDamage() == stack.getItemDamage() && slots[i].stackSize < slots[i].getMaxStackSize()) { + int toAdd = Math.min(slots[i].getMaxStackSize() - slots[i].stackSize, stack.stackSize); - List list = worldObj.getEntitiesWithinAABBExcludingEntity(null, AxisAlignedBB.getBoundingBox(xCoord - 0.25 + 0.5, yCoord + 0.75, zCoord - 0.25 + 0.5, xCoord + 0.25 + 0.5, yCoord + 2, zCoord + 0.25 + 0.5)); + slots[i].stackSize += toAdd; + stack.stackSize -= toAdd; - for(Entity e : list) { + if (stack.stackSize <= 0) return; + } + } - if(e instanceof EntityMinerRocket) { + for (int i = 0; i < 15; i++) { + if (slots[i] == null) { + slots[i] = new ItemStack(stack.getItem(), 1, stack.getItemDamage()); + return; + } + } + } - EntityMinerRocket rocket = (EntityMinerRocket) e; + private void ejectInto(int x, int y, int z) { + TileEntity te = worldObj.getTileEntity(x, y, z); - if(slots[15] != null && ISatChip.getFreqS(slots[15]) != rocket.getDataWatcher().getWatchableObjectInt(17)) { - rocket.setDead(); - ExplosionNukeSmall.explode(worldObj, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, ExplosionNukeSmall.PARAMS_TOTS); - break; - } + if (te instanceof IInventory) { + IInventory chest = (IInventory) te; - if(rocket.getDataWatcher().getWatchableObjectInt(16) == 1 && rocket.timer == 50) { - unloadCargo(rocket.satelliteClassName); - } - } - } + for (int i = 0; i < 15; i++) { + if (slots[i] != null) { + for (int j = 0; j < chest.getSizeInventory(); j++) { + ItemStack sta = slots[i].copy(); + sta.stackSize = 1; - ejectInto(xCoord + 2, yCoord, zCoord); - ejectInto(xCoord - 2, yCoord, zCoord); - ejectInto(xCoord, yCoord, zCoord + 2); - ejectInto(xCoord, yCoord, zCoord - 2); - } - } - - static Random rand = new Random(); - - private void unloadCargo(String satelliteClassName) { - int items = rand.nextInt(6) + 10; + if (chest.getStackInSlot(j) != null && chest.getStackInSlot(j).isItemEqual(slots[i]) && ItemStack.areItemStackTagsEqual(chest.getStackInSlot(j), slots[i]) && + chest.getStackInSlot(j).stackSize < chest.getStackInSlot(j).getMaxStackSize()) { - WeightedRandomObject[] cargo = SatelliteMinerCargoRegistry.getCargo(satelliteClassName); + slots[i].stackSize--; - for(int i = 0; i < items; i++) { + if (slots[i].stackSize <= 0) + slots[i] = null; - ItemStack stack = ((WeightedRandomObject)WeightedRandom.getRandomItem(rand, cargo)).asStack(); - addToInv(stack.copy()); - } - } - - private void addToInv(ItemStack stack) { - - for(int i = 0; i < 15; i++) { - - if(slots[i] != null && slots[i].getItem() == stack.getItem() && slots[i].getItemDamage() == stack.getItemDamage() && slots[i].stackSize < slots[i].getMaxStackSize()) { - - int toAdd = Math.min(slots[i].getMaxStackSize() - slots[i].stackSize, stack.stackSize); - - slots[i].stackSize += toAdd; - stack.stackSize -= toAdd; - - if(stack.stackSize <= 0) return; - } - } - - for(int i = 0; i < 15; i++) { - - if(slots[i] == null) { - slots[i] = new ItemStack(stack.getItem(), 1, stack.getItemDamage()); - return; - } - } - } - - private void ejectInto(int x, int y, int z) { + chest.getStackInSlot(j).stackSize++; + return; + } + } + } + } - TileEntity te = worldObj.getTileEntity(x, y, z); - - if(te instanceof IInventory) { - - IInventory chest = (IInventory)te; - - for(int i = 0; i < 15; i++) { - - if(slots[i] != null) { - - for(int j = 0; j < chest.getSizeInventory(); j++) { - - ItemStack sta = slots[i].copy(); - sta.stackSize = 1; - - if(chest.getStackInSlot(j) != null && chest.getStackInSlot(j).isItemEqual(slots[i]) && ItemStack.areItemStackTagsEqual(chest.getStackInSlot(j), slots[i]) && - chest.getStackInSlot(j).stackSize < chest.getStackInSlot(j).getMaxStackSize()) { - - slots[i].stackSize--; - - if(slots[i].stackSize <= 0) - slots[i] = null; - - chest.getStackInSlot(j).stackSize++; - return; - } - } - } - } - - for(int i = 0; i < 15; i++) { - - if(slots[i] != null) { - - for(int j = 0; j < chest.getSizeInventory(); j++) { - - ItemStack sta = slots[i].copy(); - sta.stackSize = 1; - - if(chest.getStackInSlot(j) == null && chest.isItemValidForSlot(j, sta)) { - - slots[i].stackSize--; - - if(slots[i].stackSize <= 0) - slots[i] = null; - - chest.setInventorySlotContents(j, sta); - return; - } - } - } - } - } - } - - AxisAlignedBB bb = null; - - @Override - public AxisAlignedBB getRenderBoundingBox() { - - if(bb == null) { - bb = AxisAlignedBB.getBoundingBox( - xCoord - 1, - yCoord, - zCoord - 1, - xCoord + 2, - yCoord + 1, - zCoord + 2 - ); - } - - return bb; - } + for (int i = 0; i < 15; i++) { + if (slots[i] != null) { + for (int j = 0; j < chest.getSizeInventory(); j++) { + ItemStack sta = slots[i].copy(); + sta.stackSize = 1; - @Override - @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() { - return 65536.0D; - } + if (chest.getStackInSlot(j) == null && chest.isItemValidForSlot(j, sta)) { + slots[i].stackSize--; - @Override - public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new ContainerSatDock(player.inventory, this); - } + if (slots[i].stackSize <= 0) + slots[i] = null; - @Override - @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GUISatDock(player.inventory, this); - } + chest.setInventorySlotContents(j, sta); + return; + } + } + } + } + } + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + if (bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 1, + yCoord, + zCoord - 1, + xCoord + 2, + yCoord + 1, + zCoord + 2 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerSatDock(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUISatDock(player.inventory, this); + } } From eafc615fd20070a42f2c704faa0dce3af5969736 Mon Sep 17 00:00:00 2001 From: Toshayo Date: Thu, 22 Jun 2023 14:42:30 +0200 Subject: [PATCH 147/432] Added night vision goggles --- .../com/hbm/crafting/ConsumableRecipes.java | 3 +- src/main/java/com/hbm/items/ModItems.java | 5 ++- .../hbm/items/armor/ItemModNightVision.java | 41 ++++++++++++++++++ src/main/resources/assets/hbm/lang/en_US.lang | 3 ++ src/main/resources/assets/hbm/lang/fr_FR.lang | 3 ++ src/main/resources/assets/hbm/lang/ru_RU.lang | 3 ++ .../hbm/textures/items/night_vision.png | Bin 0 -> 906 bytes 7 files changed, 56 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/hbm/items/armor/ItemModNightVision.java create mode 100644 src/main/resources/assets/hbm/textures/items/night_vision.png diff --git a/src/main/java/com/hbm/crafting/ConsumableRecipes.java b/src/main/java/com/hbm/crafting/ConsumableRecipes.java index d4dd9d69c..09a1a8f3d 100644 --- a/src/main/java/com/hbm/crafting/ConsumableRecipes.java +++ b/src/main/java/com/hbm/crafting/ConsumableRecipes.java @@ -201,7 +201,8 @@ public class ConsumableRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.gas_tester, 1), new Object[] { "G", "C", "I", 'G', GOLD.plate(), 'C', ModItems.circuit_aluminium, 'I', IRON.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.defuser_gold, 1), new Object[] { "GPG", "PRP", "GPG", 'G', Items.gunpowder, 'P', GOLD.plate(), 'R', "record" }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ballistic_gauntlet, 1), new Object[] { " WS", "WRS", " RS", 'W', ModItems.wire_copper, 'R', ModItems.ring_starmetal, 'S', STEEL.plate() }); - + CraftingManager.addRecipeAuto(new ItemStack(ModItems.night_vision, 1), "PIP", "RCR", "PIP", 'P', STEEL.plate(), 'W', ModItems.wire_schrabidium, 'R', ModItems.ring_starmetal, 'I', ModItems.ingot_schrabidium, 'C', ModItems.circuit_schrabidium); + //Stealth boy CraftingManager.addRecipeAuto(new ItemStack(ModItems.stealth_boy, 1), new Object[] { " B", "LI", "LC", 'B', Blocks.stone_button, 'L', Items.leather, 'I', STEEL.ingot(), 'C', ModItems.circuit_red_copper }); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 006fd1a9e..7ac1dea09 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -2169,6 +2169,7 @@ public class ModItems { public static Item gas_tester; public static Item defuser_gold; public static Item ballistic_gauntlet; + public static Item night_vision; public static Item hazmat_helmet; public static Item hazmat_plate; @@ -3402,6 +3403,7 @@ public class ModItems { gas_tester = new ItemModSensor().setUnlocalizedName("gas_tester").setTextureName(RefStrings.MODID + ":gas_tester"); defuser_gold = new ItemModDefuser().setUnlocalizedName("defuser_gold").setTextureName(RefStrings.MODID + ":defuser_gold"); ballistic_gauntlet = new ItemModTwoKick().setUnlocalizedName("ballistic_gauntlet").setTextureName(RefStrings.MODID + ":ballistic_gauntlet"); + night_vision = new ItemModNightVision().setUnlocalizedName("night_vision").setTextureName(RefStrings.MODID + ":night_vision"); cap_nuka = new Item().setUnlocalizedName("cap_nuka").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cap_nuka"); cap_quantum = new Item().setUnlocalizedName("cap_quantum").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cap_quantum"); @@ -7616,7 +7618,8 @@ public class ModItems { GameRegistry.registerItem(gas_tester, gas_tester.getUnlocalizedName()); GameRegistry.registerItem(defuser_gold, defuser_gold.getUnlocalizedName()); GameRegistry.registerItem(ballistic_gauntlet, ballistic_gauntlet.getUnlocalizedName()); - + GameRegistry.registerItem(night_vision, night_vision.getUnlocalizedName()); + //Chaos GameRegistry.registerItem(chocolate_milk, chocolate_milk.getUnlocalizedName()); GameRegistry.registerItem(cbt_device, cbt_device.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/armor/ItemModNightVision.java b/src/main/java/com/hbm/items/armor/ItemModNightVision.java new file mode 100644 index 000000000..6df89d2a6 --- /dev/null +++ b/src/main/java/com/hbm/items/armor/ItemModNightVision.java @@ -0,0 +1,41 @@ +package com.hbm.items.armor; + +import com.hbm.handler.ArmorModHandler; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.EnumChatFormatting; + +import java.util.List; + +public class ItemModNightVision extends ItemArmorMod { + public ItemModNightVision() { + super(ArmorModHandler.helmet_only, true, false, false, false); + } + + @Override + public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { + list.add(EnumChatFormatting.AQUA + I18n.format("item.night_vision.description.item")); + list.add(""); + super.addInformation(itemstack, player, list, bool); + } + + @Override + public void addDesc(List list, ItemStack stack, ItemStack armor) { + list.add(EnumChatFormatting.YELLOW + I18n.format("item.night_vision.description.in_armor", stack.getDisplayName())); + } + + @Override + public void modUpdate(EntityLivingBase entity, ItemStack armor) { + if(!entity.worldObj.isRemote && entity instanceof EntityPlayer && armor.getItem() instanceof ArmorFSBPowered && ArmorFSBPowered.hasFSBArmor((EntityPlayer)entity)) { + entity.addPotionEffect(new PotionEffect(Potion.nightVision.id, 15 * 20, 0)); + + if(entity.getRNG().nextInt(50) == 0) { + armor.damageItem(1, entity); + } + } + } +} diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index fa62d042a..7ad3b28de 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -3066,6 +3066,9 @@ item.mysteryshovel.name=Brittle Spade item.n2_charge.name=Large Explosive Charge item.neutrino_lens.name=Neutrino Lens item.neutron_reflector.name=Neutron Reflector +item.night_vision.name=Night Vision Goggles +item.night_vision.description.item=Grants you night vision (requires full electric set) +item.night_vision.description.in_armor=%s (grants night vision) item.niter.name=Niter item.no9.name=Mining Helmet item.nossy_hat.name=Fabulous Hat diff --git a/src/main/resources/assets/hbm/lang/fr_FR.lang b/src/main/resources/assets/hbm/lang/fr_FR.lang index 0635ab9d1..2da92f416 100644 --- a/src/main/resources/assets/hbm/lang/fr_FR.lang +++ b/src/main/resources/assets/hbm/lang/fr_FR.lang @@ -477,6 +477,9 @@ item.plate_titanium.name=Plaque en titane item.plate_aluminium.name=Plaque d'aluminium item.wire_red_copper.name=Fil de cuivre rouge item.neutron_reflector.name=Reflecteur neutronique +item.night_vision.name=Lunettes de vision nocturne +item.night_vision.description.item=Donne la vision nocturne (nécessite un set électrique complet) +item.night_vision.description.in_armor=%s (donne la vision nocturne) item.nugget_beryllium.name=Pépite de béryllium item.wire_aluminium.name=Fil d'aluminium diff --git a/src/main/resources/assets/hbm/lang/ru_RU.lang b/src/main/resources/assets/hbm/lang/ru_RU.lang index 4aa131493..1603c36c8 100644 --- a/src/main/resources/assets/hbm/lang/ru_RU.lang +++ b/src/main/resources/assets/hbm/lang/ru_RU.lang @@ -2618,6 +2618,9 @@ item.plate_titanium.name=Титановая пластина item.plate_aluminium.name=Алюминиевая пластина item.wire_red_copper.name=Провод из красной меди item.neutron_reflector.name=Отражатель нейтронов +item.night_vision.name=Очки ночного зрения +item.night_vision.description.item=Даёт ночное зрение (нуждается в полном электрическом сете) +item.night_vision.description.in_armor=%s (даёт ночное зрение) item.nugget_beryllium.name=Бериллиевый самородок item.nugget_bismuth.name=Самородок висмута item.nugget_tantalium.name=Самородок тантала diff --git a/src/main/resources/assets/hbm/textures/items/night_vision.png b/src/main/resources/assets/hbm/textures/items/night_vision.png new file mode 100644 index 0000000000000000000000000000000000000000..096c7b5b39d1c09318a8e719850ab58718efcbbf GIT binary patch literal 906 zcmV;519kj~P)EX>4Tx04R}tkv&MmKpe$iQ?*hm4i*t{$WWauNELC^DionYs1;guFuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|>f)s6A|?JWDYS_7;J6>}?mh0_0YbgZG^=X@&~)2O zCE{WxyDA1=(St#R5JXI7mN6$uNpu`v_we!cF3PhypZjz4sX2=QK9P8q8KzCVK|H-_ z8=Uuv!>lN)#OK80CS8#Dk?V@bZ=4G*3p_Jyrc?98VPdh+#!4HrqNx#25l2)_r+gvf zvC4UivsSLM<~{ifLpgnAnd>x1kia6AAVGwJDoQBBMwC{a6bmWZk9Y77yMBpW3b{&P z=bb;{@U#SB#pQP7X zTI2}m-v%zOTbi;5TgF>mV(jg7zL?h zRXS9<6`-(y2|{nVE+$zNJQ@?@9mN|FN-|Vv;9Oz{=|$SV;4{7O zetdkqFCRP-`70dfrYVE~pkA-Dx;hhoIJmia&`c(i00cq6+}w+JxWILP-kqPHQLUb0 zj6tb+Zf}3#x?ccL>Lb0qPjTJv*tSh7HOkP?2ueMVL>%X)d2({pzqR#E*K%12@appq zok;Y{>FJp!K&f;P_x)>qxR#Ls!=HBb%F0_gHa2-JEX$(N@TldoGCD8-z~LJ5ed{HK z!Y%-di&;KAy9)hUE-M?3$Hc^IM7!O>nBc!~EX(5Z(hv2&7!%NLw}|HR1(eEA?3vPC z&!g*k?Dx&;N~MGl0wDyIN{Rix+0ZZcOlhSuyDe3W!L4Mf@7D-w%6VS9T$64to1wBc8)X8_o?jn-ci4^Nizoo|c*Ae9k07*qoM6N<$f=O+b!2kdN literal 0 HcmV?d00001 From b736b64f7f4b2dc5cb7dc8c7b6a1d8c5a9f6422e Mon Sep 17 00:00:00 2001 From: Toshayo Date: Thu, 22 Jun 2023 14:51:42 +0200 Subject: [PATCH 148/432] Updated changelog --- changelog | 3 +++ 1 file changed, 3 insertions(+) diff --git a/changelog b/changelog index e69de29bb..4a0ce878b 100644 --- a/changelog +++ b/changelog @@ -0,0 +1,3 @@ +## Added +* Sliding Blast Door from 1.12.2 +* Night Vision Goggles armor upgrade From d6cdc69c899b873bd252329eafd581e32b9dae26 Mon Sep 17 00:00:00 2001 From: Boblet Date: Thu, 22 Jun 2023 14:59:54 +0200 Subject: [PATCH 149/432] pressure --- changelog | 44 +++ .../hbm/fluid/IFluidStandardTransceiver.java | 8 +- .../hbm/blocks/machine/MachineCompressor.java | 19 +- .../hbm/inventory/fluid/tank/FluidTank.java | 3 + .../com/hbm/inventory/gui/GUICompressor.java | 43 ++- .../inventory/recipes/CompressorRecipes.java | 17 +- .../inventory/recipes/OutgasserRecipes.java | 2 + .../recipes/loader/JSONLoaderBase.java | 177 ------------ .../recipes/loader/SerializableRecipe.java | 5 +- .../com/hbm/items/tool/ItemBlowtorch.java | 2 +- .../render/tileentity/RenderCompressor.java | 11 +- .../machine/TileEntityMachineCompressor.java | 251 +++++++++++++++++- .../textures/models/machines/compressor.png | Bin 3463 -> 5337 bytes 13 files changed, 386 insertions(+), 196 deletions(-) delete mode 100644 src/main/java/com/hbm/inventory/recipes/loader/JSONLoaderBase.java diff --git a/changelog b/changelog index e69de29bb..7e7de1c66 100644 --- a/changelog +++ b/changelog @@ -0,0 +1,44 @@ +## Added +* Glpyhids + * Hives will spawn randomly in the world + * Hives will constantly spawn new glyphids + * If explosed to soot, hives will create glyphid scouts, which when far enough from another hive will explode and generate a new hive + * Higher soot levels create stronger glyphids + * Glyphids possess armor which has a chance of breaking off and fully abrosrbing damage + * Each glyphid has five armor plates + * Glyphid types include multiple tiers of melee glyphids as well as a few ranged ones, the scout, and a nuclear variant +* Compressor + * Can compress fluids, turning them into higher pressure variants + * Can also turn steam into higher pressure types +* A new rocket artillery ammo type that creates volcanic lava on impact +* BDCL + * A type of lubricant that is easy to make and can be used in hydraulic piston and electric press recipes instead of regular lubricant +* FBI drones + * A configurable amount of drones can now spawn during FBI raids + * They will hover over players, dropping bombs + +## Changed +* Updated russian localization +* Fluid traits can now be configured, any fluid can now have any fluid with variable stats assigned to them +* Large explosions now load the central chunk they are in, this can be disabled in the config +* Burning leaded fuels now releases poisonous heavy metals into the atmosphere +* The pollution detector now displays rounded values +* More machines and especially destroyed ones now release soot +* The iGen has been rebalanced again, delete your machine config file for the changes to take effect + * The lubrican power multiplier has been increased from 1.1 to 1.5 + * The fluid divisor has been lowered from 5,000 to 1,000, meaning the iGen now burns flammable liquids at full efficiency +* Removed the config for having an additional keybind for dashing, the keybind is now always active since it no longer conflicts with crouching +* Crucible recipes no longer use foundry scraps to visualize the recipes, instead they use a lava-like texture +* Fusion reactors are now made from welded magnets which are created by weling a cast steel plate onto a magnet + * Due to the cost of the cast plates, fusion reactor magnets are now cheaper to compensate + * Consequently, particle accelerators are now also cheaper due to being made from mostly fusion reactor magnets +* The blowtorch now consumes only 250mB per operation, allowing for up to 16 things to be welded with a single fill +* The page and notebook items have been replaced with more dynamic book items that get their data from NBT +* C4 can now be made by irradiating PVC + * Play stupid games, win stupid prizes + +## Fixed +* Fixed potential crash or logspam regarding the pollution handler +* Fixed missiles leaving behind a 3x3 grid of loaded chunks after being destroyed +* Fixed coal ore yielding coal in the crucible instead of making carbon +* Fixed a potential issue where BuildCraft generators can't supply the RF to HE converter \ No newline at end of file diff --git a/src/main/java/api/hbm/fluid/IFluidStandardTransceiver.java b/src/main/java/api/hbm/fluid/IFluidStandardTransceiver.java index eb7092ad8..4012ab63f 100644 --- a/src/main/java/api/hbm/fluid/IFluidStandardTransceiver.java +++ b/src/main/java/api/hbm/fluid/IFluidStandardTransceiver.java @@ -26,7 +26,7 @@ public interface IFluidStandardTransceiver extends IFluidUser { public default long getTotalFluidForSend(FluidType type, int pressure) { for(FluidTank tank : getSendingTanks()) { - if(tank.getTankType() == type) { + if(tank.getTankType() == type && tank.getPressure() == pressure) { return tank.getFill(); } } @@ -38,7 +38,7 @@ public interface IFluidStandardTransceiver extends IFluidUser { public default void removeFluidForTransfer(FluidType type, int pressure, long amount) { for(FluidTank tank : getSendingTanks()) { - if(tank.getTankType() == type) { + if(tank.getTankType() == type && tank.getPressure() == pressure) { tank.setFill(tank.getFill() - (int) amount); return; } @@ -49,7 +49,7 @@ public interface IFluidStandardTransceiver extends IFluidUser { public default long getDemand(FluidType type, int pressure) { for(FluidTank tank : getReceivingTanks()) { - if(tank.getTankType() == type) { + if(tank.getTankType() == type && tank.getPressure() == pressure) { return tank.getMaxFill() - tank.getFill(); } } @@ -61,7 +61,7 @@ public interface IFluidStandardTransceiver extends IFluidUser { public default long transferFluid(FluidType type, int pressure, long amount) { for(FluidTank tank : getReceivingTanks()) { - if(tank.getTankType() == type) { + if(tank.getTankType() == type && tank.getPressure() == pressure) { tank.setFill(tank.getFill() + (int) amount); if(tank.getFill() > tank.getMaxFill()) { diff --git a/src/main/java/com/hbm/blocks/machine/MachineCompressor.java b/src/main/java/com/hbm/blocks/machine/MachineCompressor.java index 791ad2f77..f22bc3fc1 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineCompressor.java +++ b/src/main/java/com/hbm/blocks/machine/MachineCompressor.java @@ -1,6 +1,8 @@ package com.hbm.blocks.machine; import com.hbm.blocks.BlockDummyable; +import com.hbm.handler.MultiblockHandlerXR; +import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityMachineCompressor; import net.minecraft.block.material.Material; @@ -18,6 +20,7 @@ public class MachineCompressor extends BlockDummyable { @Override public TileEntity createNewTileEntity(World world, int meta) { if(meta >= 12) return new TileEntityMachineCompressor(); + if(meta >= extra) return new TileEntityProxyCombo().fluid().power(); return null; } @@ -39,11 +42,25 @@ public class MachineCompressor extends BlockDummyable { @Override protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) { - return super.checkRequirement(world, x, y, z, dir, o); + return super.checkRequirement(world, x, y, z, dir, o) && + MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {3, -3, 1, 1, 1, 1}, x, y, z, dir) && + MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {8, -4, 0, 0, 1, 1}, x, y, z, dir); } @Override public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { super.fillSpace(world, x, y, z, dir, o); + + MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {3, -3, 1, 1, 1, 1}, this, dir); + MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {8, -4, 0, 0, 1, 1}, this, dir); + + x += dir.offsetX * o; + z += dir.offsetZ * o; + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + this.makeExtra(world, x - dir.offsetX, y, z - dir.offsetZ); + this.makeExtra(world, x + rot.offsetX, y, z + rot.offsetZ); + this.makeExtra(world, x - rot.offsetX, y, z - rot.offsetZ); } } diff --git a/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java b/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java index 90e8b3bbf..c9e94b9ee 100644 --- a/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java +++ b/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java @@ -44,6 +44,9 @@ public class FluidTank { } public FluidTank withPressure(int pressure) { + + if(this.pressure != pressure) this.setFill(0); + this.pressure = pressure; return this; } diff --git a/src/main/java/com/hbm/inventory/gui/GUICompressor.java b/src/main/java/com/hbm/inventory/gui/GUICompressor.java index c31ee0baf..9e2f758e8 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICompressor.java +++ b/src/main/java/com/hbm/inventory/gui/GUICompressor.java @@ -4,21 +4,25 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerCompressor; import com.hbm.lib.RefStrings; +import com.hbm.packet.NBTControlPacket; +import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.machine.TileEntityMachineCompressor; import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.ResourceLocation; public class GUICompressor extends GuiInfoContainer { private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_compressor.png"); - private TileEntityMachineCompressor solidifier; + private TileEntityMachineCompressor compressor; public GUICompressor(InventoryPlayer invPlayer, TileEntityMachineCompressor tedf) { super(new ContainerCompressor(invPlayer, tedf)); - solidifier = tedf; + compressor = tedf; this.xSize = 176; this.ySize = 204; @@ -28,14 +32,31 @@ public class GUICompressor extends GuiInfoContainer { public void drawScreen(int mouseX, int mouseY, float f) { super.drawScreen(mouseX, mouseY, f); - //solidifier.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 35, guiTop + 36, 16, 52); - //this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 134, guiTop + 18, 16, 52, solidifier.power, solidifier.maxPower); + compressor.tanks[0].renderTankInfo(this, mouseX, mouseY, guiLeft + 17, guiTop + 18, 16, 52); + compressor.tanks[1].renderTankInfo(this, mouseX, mouseY, guiLeft + 107, guiTop + 18, 16, 52); + this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 152, guiTop + 18, 16, 52, compressor.power, compressor.maxPower); + } + + @Override + protected void mouseClicked(int x, int y, int i) { + super.mouseClicked(x, y, i); + + for(int j = 0; j < 5; j++) { + + if(guiLeft + 43 + j * 11 <= x && guiLeft + 43 + 8 + j * 11 > x && guiTop + 46 < y && guiTop + 46 + 14 >= y) { + + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + data.setInteger("compression", j); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, compressor.xCoord, compressor.yCoord, compressor.zCoord)); + } + } } @Override protected void drawGuiContainerForegroundLayer(int i, int j) { - String name = this.solidifier.hasCustomInventoryName() ? this.solidifier.getInventoryName() : I18n.format(this.solidifier.getInventoryName()); + String name = this.compressor.hasCustomInventoryName() ? this.compressor.getInventoryName() : I18n.format(this.compressor.getInventoryName()); this.fontRendererObj.drawString(name, 70 - this.fontRendererObj.getStringWidth(name) / 2, 6, 0xC7C1A3); this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); @@ -46,5 +67,17 @@ public class GUICompressor extends GuiInfoContainer { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + if(compressor.power >= 1_000) { + drawTexturedModalRect(guiLeft + 156, guiTop + 4, 176, 52, 9, 12); + } + + drawTexturedModalRect(guiLeft + 43 + compressor.tanks[0].getPressure() * 11, guiTop + 46, 193, 18, 8, 124); + + int i = compressor.progress * 55 / compressor.processTime; + drawTexturedModalRect(guiLeft + 42, guiTop + 26, 192, 0, i, 17); + + compressor.tanks[0].renderTank(guiLeft + 17, guiTop + 70, this.zLevel, 16, 52); + compressor.tanks[1].renderTank(guiLeft + 107, guiTop + 70, this.zLevel, 16, 52); } } diff --git a/src/main/java/com/hbm/inventory/recipes/CompressorRecipes.java b/src/main/java/com/hbm/inventory/recipes/CompressorRecipes.java index 15f5b2baa..2e22d2e8b 100644 --- a/src/main/java/com/hbm/inventory/recipes/CompressorRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CompressorRecipes.java @@ -2,11 +2,14 @@ package com.hbm.inventory.recipes; import java.io.IOException; import java.util.HashMap; +import java.util.Map.Entry; import com.google.gson.JsonElement; +import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; import com.hbm.inventory.FluidStack; import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.recipes.loader.SerializableRecipe; import com.hbm.util.Tuple.Pair; @@ -16,7 +19,9 @@ public class CompressorRecipes extends SerializableRecipe { @Override public void registerDefaults() { - + recipes.put(new Pair(Fluids.STEAM, 0), new CompressorRecipe(1_000, new FluidStack(Fluids.HOTSTEAM, 100))); + recipes.put(new Pair(Fluids.HOTSTEAM, 0), new CompressorRecipe(1_000, new FluidStack(Fluids.SUPERHOTSTEAM, 100))); + recipes.put(new Pair(Fluids.SUPERHOTSTEAM, 0), new CompressorRecipe(1_000, new FluidStack(Fluids.ULTRAHOTSTEAM, 100))); } public static class CompressorRecipe { @@ -47,11 +52,21 @@ public class CompressorRecipes extends SerializableRecipe { @Override public void readRecipe(JsonElement recipe) { + JsonObject obj = recipe.getAsJsonObject(); + + FluidStack input = this.readFluidStack(obj.get("input").getAsJsonArray()); + FluidStack output = this.readFluidStack(obj.get("output").getAsJsonArray()); + recipes.put(new Pair(input.type, input.pressure), new CompressorRecipe(input.fill, output)); } @Override public void writeRecipe(Object recipe, JsonWriter writer) throws IOException { + Entry, CompressorRecipe> entry = (Entry) recipe; + writer.name("input"); + this.writeFluidStack(new FluidStack(entry.getKey().getKey(), entry.getValue().inputAmount, entry.getKey().getValue()), writer); + writer.name("output"); + this.writeFluidStack(entry.getValue().output, writer); } } diff --git a/src/main/java/com/hbm/inventory/recipes/OutgasserRecipes.java b/src/main/java/com/hbm/inventory/recipes/OutgasserRecipes.java index 1f1c72505..491a8595f 100644 --- a/src/main/java/com/hbm/inventory/recipes/OutgasserRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/OutgasserRecipes.java @@ -56,6 +56,8 @@ public class OutgasserRecipes extends SerializableRecipe { recipes.put(new OreDictStack(COAL.gem()), new Pair(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.COAL, 1), new FluidStack(Fluids.SYNGAS, 50))); recipes.put(new OreDictStack(COAL.dust()), new Pair(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.COAL, 1), new FluidStack(Fluids.SYNGAS, 50))); recipes.put(new OreDictStack(COAL.block()), new Pair(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.COAL, 9), new FluidStack(Fluids.SYNGAS, 500))); + + recipes.put(new OreDictStack(PVC.ingot()), new Pair(new ItemStack(ModItems.ingot_c4), new FluidStack(Fluids.COLLOID, 250))); recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.COAL)), new Pair(null, new FluidStack(Fluids.COALOIL, 100))); recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.WAX)), new Pair(null, new FluidStack(Fluids.RADIOSOLVENT, 100))); diff --git a/src/main/java/com/hbm/inventory/recipes/loader/JSONLoaderBase.java b/src/main/java/com/hbm/inventory/recipes/loader/JSONLoaderBase.java deleted file mode 100644 index a2e8bc316..000000000 --- a/src/main/java/com/hbm/inventory/recipes/loader/JSONLoaderBase.java +++ /dev/null @@ -1,177 +0,0 @@ -package com.hbm.inventory.recipes.loader; - -import java.io.File; -import java.io.FileReader; -import java.io.IOException; - -import com.google.gson.Gson; -import com.google.gson.JsonArray; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.stream.JsonWriter; -import com.hbm.inventory.RecipesCommon.AStack; -import com.hbm.inventory.RecipesCommon.ComparableStack; -import com.hbm.inventory.RecipesCommon.OreDictStack; -import com.hbm.main.MainRegistry; - -import net.minecraft.item.Item; -import net.minecraftforge.oredict.OreDictionary; - -@Deprecated -public abstract class JSONLoaderBase { - - public File config; - public File template; - private final Gson gson = new Gson(); - - public JSONLoaderBase() { - - } - - public void loadRecipes() { - registerDefaults(); - //saveTemplateJSON(template); - - if(config != null) { - loadJSONRecipes(); - } - } - - protected abstract void registerDefaults(); - - protected void loadJSONRecipes() { - - try { - JsonObject json = gson.fromJson(new FileReader(config), JsonObject.class); - JsonElement recipes = json.get("recipes"); - - if(recipes instanceof JsonArray) { - - JsonArray recArray = recipes.getAsJsonArray(); - for(JsonElement recipe : recArray) { - - if(recipe.isJsonObject()) { - - } - } - } - } catch (Exception e) { } - } - - protected static AStack aStackFromArray(JsonArray array) { - - boolean dict = false; - String item = ""; - int stacksize = 1; - int meta = 0; - - if(array.size() < 2) - return null; - - /* - * EVAL "dict" OR "item" - */ - if(array.get(0).isJsonPrimitive()) { - - if(array.get(0).getAsString().equals("item")) { - dict = false; - } else if(array.get(0).getAsString().equals("dict")) { - dict = true; - } else { - MainRegistry.logger.error("Error reading recipe, stack array does not have 'item' or 'dict' label!"); - return null; - } - - } else { - MainRegistry.logger.error("Error reading recipe, label is not a valid data type!"); - return null; - } - - /* - * EVAL NAME - */ - if(array.get(1).isJsonPrimitive()) { - item = array.get(1).getAsString(); - } else { - MainRegistry.logger.error("Error reading recipe, item string is not a valid data type!"); - return null; - } - - /* - * EVAL STACKSIZE - */ - if(array.size() > 2 && array.get(2).isJsonPrimitive()) { - if(array.get(2).getAsJsonPrimitive().isNumber()) { - stacksize = Math.max(1, array.get(2).getAsJsonPrimitive().getAsNumber().intValue()); - } else { - MainRegistry.logger.error("Error reading recipe, stack size is not a valid data type!"); - return null; - } - } - - /* - * RESOLVE OREDICT - */ - if(dict) { - - if(OreDictionary.doesOreNameExist(item)) { - return new OreDictStack(item, stacksize); - } else { - - MainRegistry.logger.error("Error reading recipe, ore dict name does not exist!"); - return null; - } - - /* - * RESOLVE COMPARABLE - */ - } else { - - /* - * EVAL META - */ - if(array.size() > 3 && array.get(3).isJsonPrimitive()) { - if(array.get(3).getAsJsonPrimitive().isNumber()) { - meta = Math.max(0, array.get(3).getAsJsonPrimitive().getAsNumber().intValue()); - } else { - MainRegistry.logger.error("Error reading recipe, metadata is not a valid data type!"); - return null; - } - } - - Item it = (Item)Item.itemRegistry.getObject(item); - if(it == null) { - MainRegistry.logger.error("Item could not be found!"); - return null; - } - - return new ComparableStack(it, stacksize, meta); - } - } - - protected static void writeAStack(AStack astack, JsonWriter writer) throws IOException { - - writer.beginArray(); - writer.setIndent(""); - - if(astack instanceof ComparableStack) { - ComparableStack comp = (ComparableStack) astack; - - writer.value("item"); //ITEM identifier - writer.value(Item.itemRegistry.getNameForObject(comp.toStack().getItem())); //item name - if(comp.stacksize != 1) writer.value(comp.stacksize); //stack size - if(comp.meta > 0) writer.value(comp.meta); //metadata - } - - if(astack instanceof OreDictStack) { - OreDictStack ore = (OreDictStack) astack; - - writer.value("dict"); //DICT identifier - writer.value(ore.name); //dict name - writer.value(ore.stacksize); //stacksize - } - - writer.endArray(); - writer.setIndent(" "); - } -} diff --git a/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java b/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java index 92e378ef2..405cede7f 100644 --- a/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java +++ b/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java @@ -60,6 +60,7 @@ public abstract class SerializableRecipe { recipeHandlers.add(new FuelPoolRecipes()); recipeHandlers.add(new MixerRecipes()); recipeHandlers.add(new OutgasserRecipes()); + recipeHandlers.add(new CompressorRecipes()); recipeHandlers.add(new MatDistribution()); } @@ -266,7 +267,8 @@ public abstract class SerializableRecipe { try { FluidType type = Fluids.fromName(array.get(0).getAsString()); int fill = array.get(1).getAsInt(); - return new FluidStack(type, fill); + int pressure = array.size() < 3 ? 0 : array.get(2).getAsInt(); + return new FluidStack(type, fill, pressure); } catch(Exception ex) { } MainRegistry.logger.error("Error reading fluid array " + array.toString()); return new FluidStack(Fluids.NONE, 0); @@ -287,6 +289,7 @@ public abstract class SerializableRecipe { writer.setIndent(""); writer.value(stack.type.getName()); //fluid type writer.value(stack.fill); //amount in mB + if(stack.pressure != 0) writer.value(stack.pressure); writer.endArray(); writer.setIndent(" "); } diff --git a/src/main/java/com/hbm/items/tool/ItemBlowtorch.java b/src/main/java/com/hbm/items/tool/ItemBlowtorch.java index 172e0fa4a..211a203c6 100644 --- a/src/main/java/com/hbm/items/tool/ItemBlowtorch.java +++ b/src/main/java/com/hbm/items/tool/ItemBlowtorch.java @@ -137,7 +137,7 @@ public class ItemBlowtorch extends Item implements IFillableItem { if(!world.isRemote) { if(this == ModItems.blowtorch) { - this.setFill(stack, Fluids.GAS, this.getFill(stack, Fluids.GAS) - 1000); + this.setFill(stack, Fluids.GAS, this.getFill(stack, Fluids.GAS) - 250); } if(this == ModItems.acetylene_torch) { diff --git a/src/main/java/com/hbm/render/tileentity/RenderCompressor.java b/src/main/java/com/hbm/render/tileentity/RenderCompressor.java index 4c8eb0faa..6934ff5ac 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderCompressor.java +++ b/src/main/java/com/hbm/render/tileentity/RenderCompressor.java @@ -4,6 +4,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.blocks.BlockDummyable; import com.hbm.main.ResourceManager; +import com.hbm.tileentity.machine.TileEntityMachineCompressor; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; @@ -28,18 +29,18 @@ public class RenderCompressor extends TileEntitySpecialRenderer { bindTexture(ResourceManager.compressor_tex); ResourceManager.compressor.renderPart("Compressor"); - double h = (System.currentTimeMillis() * 0.005) % 6D; - - if(h > 3) h = 6 - h; + TileEntityMachineCompressor compressor = (TileEntityMachineCompressor) tile; + float lift = compressor.prevPiston + (compressor.piston - compressor.prevPiston) * interp; + float fan = compressor.prevFanSpin + (compressor.fanSpin - compressor.prevFanSpin) * interp; GL11.glPushMatrix(); - GL11.glTranslated(0, h - 3, 0); + GL11.glTranslatef(0, lift * 3 - 3, 0); ResourceManager.compressor.renderPart("Pump"); GL11.glPopMatrix(); GL11.glPushMatrix(); GL11.glTranslated(0, 1.5, 0); - GL11.glRotated((System.currentTimeMillis() * -0.5) % 360, 1, 0, 0); + GL11.glRotatef(fan, 1, 0, 0); GL11.glTranslated(0, -1.5, 0); ResourceManager.compressor.renderPart("Fan"); GL11.glPopMatrix(); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java index 69c09f344..26c4210ef 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java @@ -1,21 +1,52 @@ package com.hbm.tileentity.machine; +import com.hbm.blocks.BlockDummyable; +import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.container.ContainerCompressor; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUICompressor; +import com.hbm.inventory.recipes.CompressorRecipes; +import com.hbm.inventory.recipes.CompressorRecipes.CompressorRecipe; +import com.hbm.lib.Library; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.Tuple.Pair; +import com.hbm.util.fauxpointtwelve.DirPos; +import api.hbm.energy.IEnergyUser; +import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineCompressor extends TileEntityMachineBase implements IGUIProvider { +public class TileEntityMachineCompressor extends TileEntityMachineBase implements IGUIProvider, IControlReceiver, IEnergyUser, IFluidStandardTransceiver { + + public FluidTank[] tanks; + public long power; + public static final long maxPower = 1_000_000; + public boolean isOn; + public int progress; + public int processTime = 100; + + public float fanSpin; + public float prevFanSpin; + public float piston; + public float prevPiston; + public boolean pistonDir; public TileEntityMachineCompressor() { super(2); + this.tanks = new FluidTank[2]; + this.tanks[0] = new FluidTank(Fluids.NONE, 16_000); + this.tanks[1] = new FluidTank(Fluids.NONE, 16_000).withPressure(1); } @Override @@ -28,8 +59,148 @@ public class TileEntityMachineCompressor extends TileEntityMachineBase implement if(!worldObj.isRemote) { + if(worldObj.getTotalWorldTime() % 20 == 0) { + this.updateConnections(); + } + + this.power = Library.chargeTEFromItems(slots, 1, power, maxPower); + this.tanks[0].setType(0, slots); + this.setupTanks(); + + if(canProcess()) { + this.progress++; + this.isOn = true; + this.power -= 1_000; + + if(progress >= this.processTime) { + progress = 0; + this.process(); + this.markChanged(); + } + + } else { + this.progress = 0; + this.isOn = false; + } + + for(DirPos pos : getConPos()) { + this.sendFluid(tanks[1], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + + NBTTagCompound data = new NBTTagCompound(); + data.setInteger("progress", progress); + data.setLong("power", power); + tanks[0].writeToNBT(data, "0"); + tanks[1].writeToNBT(data, "1"); + data.setBoolean("isOn", isOn); + this.networkPack(data, 100); + + } else { + + this.prevFanSpin = this.fanSpin; + this.prevPiston = this.piston; + + if(this.isOn) { + this.fanSpin += 15; + + if(this.fanSpin >= 360) { + this.prevFanSpin -= 360; + this.fanSpin -= 360; + } + + if(this.pistonDir) { + this.piston -= 0.1F; + if(this.piston <= 0) this.pistonDir = !this.pistonDir; + } else { + this.piston += 0.05F; + if(this.piston >= 1) this.pistonDir = !this.pistonDir; + } + + this.piston = MathHelper.clamp_float(this.piston, 0F, 1F); + } } } + + public void networkUnpack(NBTTagCompound nbt) { + this.progress = nbt.getInteger("progress"); + this.power = nbt.getLong("power"); + tanks[0].readFromNBT(nbt, "0"); + tanks[1].readFromNBT(nbt, "1"); + this.isOn = nbt.getBoolean("isOn"); + } + + private void updateConnections() { + for(DirPos pos : getConPos()) { + this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + + public DirPos[] getConPos() { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + return new DirPos[] { + new DirPos(xCoord + rot.offsetX * 2, yCoord, zCoord + rot.offsetZ * 2, rot), + new DirPos(xCoord - rot.offsetX * 2, yCoord, zCoord - rot.offsetZ * 2, rot.getOpposite()), + new DirPos(xCoord + dir.offsetX * 2, yCoord, zCoord + dir.offsetZ * 2, dir), + }; + } + + public boolean canProcess() { + + if(this.power <= 1_000) return false; + + CompressorRecipe recipe = CompressorRecipes.recipes.get(new Pair(tanks[0].getTankType(), tanks[0].getPressure())); + + if(recipe == null) { + return tanks[0].getFill() >= 1000 && tanks[1].getFill() + 1000 <= tanks[1].getMaxFill(); + } + + return tanks[0].getFill() > recipe.inputAmount && tanks[1].getFill() + recipe.output.fill <= tanks[1].getMaxFill(); + } + + public void process() { + + CompressorRecipe recipe = CompressorRecipes.recipes.get(new Pair(tanks[0].getTankType(), tanks[0].getPressure())); + + if(recipe == null) { + tanks[0].setFill(tanks[0].getFill() - 1_000); + tanks[1].setFill(tanks[1].getFill() + 1_000); + } else { + tanks[0].setFill(tanks[0].getFill() - recipe.inputAmount); + tanks[1].setFill(tanks[1].getFill() + recipe.output.fill); + } + } + + protected void setupTanks() { + + CompressorRecipe recipe = CompressorRecipes.recipes.get(new Pair(tanks[0].getTankType(), tanks[0].getPressure())); + + if(recipe == null) { + tanks[1].withPressure(tanks[0].getPressure() + 1).setTankType(tanks[0].getTankType()); + } else { + tanks[1].withPressure(recipe.output.pressure).setTankType(recipe.output.type); + } + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + power = nbt.getLong("power"); + progress = nbt.getInteger("progress"); + tanks[0].readFromNBT(nbt, "0"); + tanks[1].readFromNBT(nbt, "1"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setLong("power", power); + nbt.setInteger("progress", progress); + tanks[0].writeToNBT(nbt, "0"); + tanks[1].writeToNBT(nbt, "1"); + } @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { @@ -42,4 +213,82 @@ public class TileEntityMachineCompressor extends TileEntityMachineBase implement return new GUICompressor(player.inventory, this); } + @Override + public boolean hasPermission(EntityPlayer player) { + return this.isUseableByPlayer(player); + } + + @Override + public void receiveControl(NBTTagCompound data) { + int compression = data.getInteger("compression"); + + if(compression != tanks[0].getPressure()) { + tanks[0].withPressure(compression); + + CompressorRecipe recipe = CompressorRecipes.recipes.get(new Pair(tanks[0].getTankType(), compression)); + + if(recipe == null) { + tanks[1].withPressure(compression + 1); + } else { + tanks[1].withPressure(recipe.output.pressure).setTankType(recipe.output.type); + } + + this.markChanged(); + } + } + + @Override + public long getPower() { + return power; + } + + @Override + public void setPower(long power) { + this.power = power; + } + + @Override + public long getMaxPower() { + return maxPower; + } + + @Override + public FluidTank[] getAllTanks() { + return tanks; + } + + @Override + public FluidTank[] getSendingTanks() { + return new FluidTank[] {tanks[1]}; + } + + @Override + public FluidTank[] getReceivingTanks() { + return new FluidTank[] {tanks[0]}; + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 2, + yCoord, + zCoord - 2, + xCoord + 3, + yCoord + 9, + zCoord + 3 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } } diff --git a/src/main/resources/assets/hbm/textures/models/machines/compressor.png b/src/main/resources/assets/hbm/textures/models/machines/compressor.png index af84d82fd7c4a0ac20022cb0fedf303b0dfd56a2..2b26f107a5bf031ba598fe512912382c560c174b 100644 GIT binary patch literal 5337 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 literal 3463 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 From a99dc0a4646b858d2125933542de66fe672ffd05 Mon Sep 17 00:00:00 2001 From: Toshayo Date: Thu, 22 Jun 2023 19:05:10 +0200 Subject: [PATCH 150/432] Grenade with cats --- changelog | 1 + .../java/com/hbm/crafting/WeaponRecipes.java | 5 +- .../java/com/hbm/entity/EntityMappings.java | 1 + .../hbm/entity/grenade/EntityGrenadeCats.java | 50 ++++++++++++++++++ src/main/java/com/hbm/items/ModItems.java | 5 +- .../com/hbm/items/weapon/ItemGrenade.java | 47 ++-------------- src/main/java/com/hbm/main/ClientProxy.java | 1 + src/main/java/com/hbm/main/MainRegistry.java | 5 ++ src/main/resources/assets/hbm/lang/en_US.lang | 1 + src/main/resources/assets/hbm/lang/fr_FR.lang | 1 + src/main/resources/assets/hbm/lang/ru_RU.lang | 1 + .../hbm/textures/items/grenade_cats.png | Bin 0 -> 764 bytes 12 files changed, 73 insertions(+), 45 deletions(-) create mode 100644 src/main/java/com/hbm/entity/grenade/EntityGrenadeCats.java create mode 100644 src/main/resources/assets/hbm/textures/items/grenade_cats.png diff --git a/changelog b/changelog index 4a0ce878b..333b11e25 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,4 @@ ## Added * Sliding Blast Door from 1.12.2 * Night Vision Goggles armor upgrade +* Grenade of Cats \ No newline at end of file diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index a85f8ca36..86ea190d8 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -2,6 +2,7 @@ package com.hbm.crafting; import com.hbm.blocks.ModBlocks; import com.hbm.inventory.OreDictManager; +import com.hbm.inventory.RecipesCommon; import com.hbm.inventory.fluid.Fluids; import static com.hbm.inventory.OreDictManager.*; @@ -16,6 +17,7 @@ import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraftforge.oredict.OreDictionary; /** * For guns, ammo and the like @@ -345,7 +347,8 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_pink_cloud), new Object[] { " S ", "ECE", " E ", 'S', ModItems.powder_spark_mix, 'E', ModItems.powder_magic, 'C', ModItems.grenade_cloud }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.nuclear_waste_pearl), new Object[] { "WWW", "WFW", "WWW", 'W', ModItems.nuclear_waste_tiny, 'F', ModBlocks.block_fallout }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.grenade_kyiv), new Object[] { ModItems.canister_napalm, ModItems.bottle2_empty, ModItems.rag }); - + CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenate_cats), "FFF", "FGF", "FFF", 'F', new ItemStack(Items.fish, 1, OreDictionary.WILDCARD_VALUE), 'G', ModItems.grenade_smart); + //Sticks of explosives CraftingManager.addRecipeAuto(new ItemStack(ModItems.stick_dynamite, 4), new Object[] { " S ", "PDP", "PDP", 'S', ModItems.safety_fuse, 'P', Items.paper, 'D', ModItems.ball_dynamite }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.stick_dynamite_fishing, 1), new Object[] { ModItems.stick_dynamite, ModItems.stick_dynamite, ModItems.stick_dynamite, Items.paper, ANY_TAR.any() }); diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index b41ab7eb7..8659a7426 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -142,6 +142,7 @@ public class EntityMappings { addEntity(EntityGrenadeMIRV.class, "entity_grenade_mirv", 250); addEntity(EntityGrenadeBreach.class, "entity_grenade_breach", 250); addEntity(EntityGrenadeBurst.class, "entity_grenade_burst", 250); + addEntity(EntityGrenadeCats.class, "entity_grenade_cats", 250); addEntity(EntityBurningFOEQ.class, "entity_burning_foeq", 1000); addEntity(EntityGrenadeIFGeneric.class, "entity_grenade_ironshod", 250); addEntity(EntityGrenadeIFHE.class, "entity_grenade_ironshod_he", 250); diff --git a/src/main/java/com/hbm/entity/grenade/EntityGrenadeCats.java b/src/main/java/com/hbm/entity/grenade/EntityGrenadeCats.java new file mode 100644 index 000000000..0f9c21275 --- /dev/null +++ b/src/main/java/com/hbm/entity/grenade/EntityGrenadeCats.java @@ -0,0 +1,50 @@ +package com.hbm.entity.grenade; + +import com.hbm.items.ModItems; +import com.hbm.items.weapon.ItemGrenade; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.passive.EntityOcelot; +import net.minecraft.world.World; + +public class EntityGrenadeCats extends EntityGrenadeBouncyBase { + + public EntityGrenadeCats(World world) { + super(world); + } + + public EntityGrenadeCats(World world, EntityLivingBase living) { + super(world, living); + } + + public EntityGrenadeCats(World world, double posX, double posY, double posZ) { + super(world, posX, posY, posZ); + } + + @Override + public void explode() { + if (!this.worldObj.isRemote) { + this.setDead(); + + for(int i = 0; i < 5; i++) { + EntityOcelot cat = new EntityOcelot(worldObj); + cat.setPosition(posX, posY, posZ); + cat.motionX = rand.nextGaussian() * 0.1D; + cat.motionY = -0.25D; + cat.motionZ = rand.nextGaussian() * 0.1D; + + worldObj.spawnEntityInWorld(cat); + cat.onSpawnWithEgg(null); + } + } + } + + @Override + protected int getMaxTimer() { + return ItemGrenade.getFuseTicks(ModItems.grenate_cats); + } + + @Override + protected double getBounceMod() { + return 0.25D; + } +} diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 800eb555b..625a3f947 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1673,7 +1673,8 @@ public class ModItems { public static Item grenade_mirv; public static Item grenade_breach; public static Item grenade_burst; - + public static Item grenate_cats; + public static Item nuclear_waste_pearl; public static Item weaponized_starblaster_cell; @@ -4289,6 +4290,7 @@ public class ModItems { grenade_mirv = new ItemGrenade(1).setUnlocalizedName("grenade_mirv").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_mirv"); grenade_breach = new ItemGrenade(-1).setUnlocalizedName("grenade_breach").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_breach"); grenade_burst = new ItemGrenade(1).setUnlocalizedName("grenade_burst").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_burst"); + grenate_cats = new ItemGrenade(1).setUnlocalizedName("grenate_cats").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_cats"); nuclear_waste_pearl = new ItemGrenade(-1).setUnlocalizedName("nuclear_waste_pearl").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":nuclear_waste_pearl"); weaponized_starblaster_cell = new WeaponizedCell().setUnlocalizedName("weaponized_starblaster_cell").setMaxStackSize(1).setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_b92_ammo_weaponized"); @@ -7338,6 +7340,7 @@ public class ModItems { GameRegistry.registerItem(grenade_if_spark, grenade_if_spark.getUnlocalizedName()); GameRegistry.registerItem(grenade_if_hopwire, grenade_if_hopwire.getUnlocalizedName()); GameRegistry.registerItem(grenade_if_null, grenade_if_null.getUnlocalizedName()); + GameRegistry.registerItem(grenate_cats, grenate_cats.getUnlocalizedName()); GameRegistry.registerItem(nuclear_waste_pearl, nuclear_waste_pearl.getUnlocalizedName()); GameRegistry.registerItem(ullapool_caber, ullapool_caber.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/weapon/ItemGrenade.java b/src/main/java/com/hbm/items/weapon/ItemGrenade.java index f26ee698e..7451f6a3a 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGrenade.java +++ b/src/main/java/com/hbm/items/weapon/ItemGrenade.java @@ -2,49 +2,7 @@ package com.hbm.items.weapon; import java.util.List; -import com.hbm.entity.grenade.EntityGrenadeASchrab; -import com.hbm.entity.grenade.EntityGrenadeBlackHole; -import com.hbm.entity.grenade.EntityGrenadeBreach; -import com.hbm.entity.grenade.EntityGrenadeBurst; -import com.hbm.entity.grenade.EntityGrenadeCloud; -import com.hbm.entity.grenade.EntityGrenadeCluster; -import com.hbm.entity.grenade.EntityGrenadeDynamite; -import com.hbm.entity.grenade.EntityGrenadeElectric; -import com.hbm.entity.grenade.EntityGrenadeFire; -import com.hbm.entity.grenade.EntityGrenadeFlare; -import com.hbm.entity.grenade.EntityGrenadeFrag; -import com.hbm.entity.grenade.EntityGrenadeGas; -import com.hbm.entity.grenade.EntityGrenadeGascan; -import com.hbm.entity.grenade.EntityGrenadeGeneric; -import com.hbm.entity.grenade.EntityGrenadeIFBouncy; -import com.hbm.entity.grenade.EntityGrenadeIFBrimstone; -import com.hbm.entity.grenade.EntityGrenadeIFConcussion; -import com.hbm.entity.grenade.EntityGrenadeIFGeneric; -import com.hbm.entity.grenade.EntityGrenadeIFHE; -import com.hbm.entity.grenade.EntityGrenadeIFHopwire; -import com.hbm.entity.grenade.EntityGrenadeIFImpact; -import com.hbm.entity.grenade.EntityGrenadeIFIncendiary; -import com.hbm.entity.grenade.EntityGrenadeIFMystery; -import com.hbm.entity.grenade.EntityGrenadeIFNull; -import com.hbm.entity.grenade.EntityGrenadeIFSpark; -import com.hbm.entity.grenade.EntityGrenadeIFSticky; -import com.hbm.entity.grenade.EntityGrenadeIFToxic; -import com.hbm.entity.grenade.EntityGrenadeLemon; -import com.hbm.entity.grenade.EntityGrenadeMIRV; -import com.hbm.entity.grenade.EntityGrenadeMk2; -import com.hbm.entity.grenade.EntityGrenadeNuclear; -import com.hbm.entity.grenade.EntityGrenadeNuke; -import com.hbm.entity.grenade.EntityGrenadePC; -import com.hbm.entity.grenade.EntityGrenadePlasma; -import com.hbm.entity.grenade.EntityGrenadePoison; -import com.hbm.entity.grenade.EntityGrenadePulse; -import com.hbm.entity.grenade.EntityGrenadeSchrabidium; -import com.hbm.entity.grenade.EntityGrenadeShrapnel; -import com.hbm.entity.grenade.EntityGrenadeSmart; -import com.hbm.entity.grenade.EntityGrenadeStrong; -import com.hbm.entity.grenade.EntityGrenadeTau; -import com.hbm.entity.grenade.EntityGrenadeZOMG; -import com.hbm.entity.grenade.EntityWastePearl; +import com.hbm.entity.grenade.*; import com.hbm.items.ModItems; import net.minecraft.entity.player.EntityPlayer; @@ -214,6 +172,9 @@ public class ItemGrenade extends Item { if (this == ModItems.stick_dynamite) { p_77659_2_.spawnEntityInWorld(new EntityGrenadeDynamite(p_77659_2_, p_77659_3_)); } + if (this == ModItems.grenate_cats) { + p_77659_2_.spawnEntityInWorld(new EntityGrenadeCats(p_77659_2_, p_77659_3_)); + } } return p_77659_1_; diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index da86b7611..268283654 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -635,6 +635,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityGrenadeDynamite.class, new RenderSnowball(ModItems.stick_dynamite)); RenderingRegistry.registerEntityRenderingHandler(EntityGrenadeBouncyGeneric.class, new RenderGenericGrenade()); RenderingRegistry.registerEntityRenderingHandler(EntityGrenadeImpactGeneric.class, new RenderGenericGrenade()); + RenderingRegistry.registerEntityRenderingHandler(EntityGrenadeCats.class, new RenderSnowball(ModItems.grenate_cats)); //missiles RenderingRegistry.registerEntityRenderingHandler(EntityTestMissile.class, new RenderTestMissile()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileCustom.class, new RenderMissileCustom()); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 6fc8c873e..43050f065 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -607,6 +607,11 @@ public class MainRegistry { return new EntityGrenadeIFNull(p_82499_1_, p_82499_2_.getX(), p_82499_2_.getY(), p_82499_2_.getZ()); } }); + BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenate_cats, new BehaviorProjectileDispense() { + protected IProjectile getProjectileEntity(World p_82499_1_, IPosition p_82499_2_) { + return new EntityGrenadeCats(p_82499_1_, p_82499_2_.getX(), p_82499_2_.getY(), p_82499_2_.getZ()); + } + }); BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.nuclear_waste_pearl, new BehaviorProjectileDispense() { protected IProjectile getProjectileEntity(World world, IPosition position) { diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index d73b6edab..9c8cf7515 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -2444,6 +2444,7 @@ item.grenade_aschrab.name=Tossable Antischrabidium Cell item.grenade_black_hole.name=Black Hole Grenade item.grenade_breach.name=Breaching Grenade item.grenade_burst.name=Digger Grenade +item.grenate_cats.name=Grenade of Cats item.grenade_cloud.name=Jar of Cloud item.grenade_cluster.name=Cluster Bomb item.grenade_electric.name=Lightning Bomb diff --git a/src/main/resources/assets/hbm/lang/fr_FR.lang b/src/main/resources/assets/hbm/lang/fr_FR.lang index 2da92f416..9b13a0db9 100644 --- a/src/main/resources/assets/hbm/lang/fr_FR.lang +++ b/src/main/resources/assets/hbm/lang/fr_FR.lang @@ -916,6 +916,7 @@ item.grenade_strong.name=Grenade ameliorée item.grenade_frag.name=Grenade Frag item.grenade_fire.name=Grenade Frag incendiaire item.grenade_shrapnel.name=Grenade à fragmentation +item.grenate_cats.name=Grenade à chats item.grenade_cluster.name=Grenade à fragmentation item.grenade_flare.name=Flare item.grenade_electric.name=Grenade à éclairs diff --git a/src/main/resources/assets/hbm/lang/ru_RU.lang b/src/main/resources/assets/hbm/lang/ru_RU.lang index 1603c36c8..b89294f73 100644 --- a/src/main/resources/assets/hbm/lang/ru_RU.lang +++ b/src/main/resources/assets/hbm/lang/ru_RU.lang @@ -3874,6 +3874,7 @@ item.grenade_strong.name=Усовершенствованная граната item.grenade_frag.name=Осколочная граната item.grenade_fire.name=Огненная осколочная граната item.grenade_shrapnel.name=Граната со шрапнелью +item.grenate_cats.name=Граната с котами item.grenade_cluster.name=Кластерная бомба item.grenade_flare.name=Сигнальная ракета item.grenade_electric.name=Электрограната diff --git a/src/main/resources/assets/hbm/textures/items/grenade_cats.png b/src/main/resources/assets/hbm/textures/items/grenade_cats.png new file mode 100644 index 0000000000000000000000000000000000000000..e800e9e7778c3df2187155880bd36a0f6778ad3b GIT binary patch literal 764 zcmVEX>4Tx04R}tkv&MmKpe$iQ?(*h2aAX}WT;LSL`5C73Pq?8YK2xEOfLO`CJjl7 zi=*ILaPVWX>fqw6tAnc`2!4RLx;QDiNQwVT3N2ziIPS;0dyl(!fKV+m&1xG1G~G56 zv8b3zuZn?Jbf6zSn8LKoEMrcR;%GU(?&0I>U4&<~KKJM7Rx=g@d?N8IGfbO!gLrDw zHaPDShge=#iO-2gO}ZfQBi9v=-#F)77IZPWeL0 zW0mt3XRTOf^?ULc1~dA~GS_JiA%;aPL4pVcWfV|^jR>teDHam6A8p|ubo~;!6mk{7 z$gzMDG{~+W{11M2Yh@?Ky`*3iXn%2>k6|FN3)Cu(^L^|%wG+Vq3|#3Af2j)0e3D*i zXyGHEcN@64ZfMFLaJd5vJQ=bnyON)#kj(<`XY@^JpzjvwTJw6V@8k3VNK#kv8{ps& z7|BugdW&~=Huv`LnRc?`|C%ZKF00006VoOIv00000008+zyMF)x010qNS#tmY z3ljhU3ljkVnw%H_000McNliru=LQxJ86cLGvXlS-0QpHoK~y-)V_+C)z=%yyOib)Q z0|NttmX;P=?7)EoSk*FN)BNhyD@HjvIfiT3t}*=j^^1Xlfq}un!Qnqq2B3pqzkb0n zHbd}wVN;zWgMySW!^X2481yA=8H$!YW?*AuL-7t)7xV=3FtnyRFepd~Gwj;AgMo>` zhCx9}nBmy5V~hk{Ftb|fKNEuu!`(Z#7!*}rF`%>O?|*_~5QYo%C2bjejYSv~RbF9b z6AVOjXQQ)Wu>u1u=mu;&yMcj81mf(C3`a273=H@1yCA*w86z$)q_(bNBq|-?@&W?` u1H+j!XBY_@5I6H4hD{Pd(-;{BB>(_>L}|e9s^v)l0000so literal 0 HcmV?d00001 From 53267f21855a116e1d8d49e54464c708c1e4a9d5 Mon Sep 17 00:00:00 2001 From: Toshayo Date: Thu, 22 Jun 2023 19:12:51 +0200 Subject: [PATCH 151/432] Idk how did this spawn --- .../resources/assets/hbm/textures/blocks/img.png | Bin 153 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 src/main/resources/assets/hbm/textures/blocks/img.png diff --git a/src/main/resources/assets/hbm/textures/blocks/img.png b/src/main/resources/assets/hbm/textures/blocks/img.png deleted file mode 100644 index 84ec17b11a15edbfcdf3715cf8f2aa6674dbaf60..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`37#&FAr*0ZCtTz_V8Fq8x1M8p zp+NczCNXAR7wspSUmi1AR=9J_l=SsrQstadYOuNV2Ggop0ux=ooU?CyzVhO9#!s(Z zZ|~@;VXJvFu}mSTx1ag3e+!fBy#p;O0h1hdGEOW|v?y6Eoe#8&!PC{xWt~$(69C8C BG Date: Thu, 22 Jun 2023 21:02:19 +0200 Subject: [PATCH 152/432] more compressor stuff --- .../container/ContainerCompressor.java | 11 ++-- .../com/hbm/inventory/gui/GUICompressor.java | 5 +- .../render/tileentity/RenderCompressor.java | 48 +++++++++++++++++- .../machine/TileEntityMachineCompressor.java | 44 +++++++++++++--- .../oil/TileEntityMachineVacuumDistill.java | 2 +- .../gui/processing/gui_compressor.png | Bin 3119 -> 3380 bytes 6 files changed, 98 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/hbm/inventory/container/ContainerCompressor.java b/src/main/java/com/hbm/inventory/container/ContainerCompressor.java index e54aee2d3..3f81b4f68 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCompressor.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCompressor.java @@ -21,6 +21,9 @@ public class ContainerCompressor extends Container { this.addSlotToContainer(new Slot(tile, 0, 17, 72)); //Battery this.addSlotToContainer(new Slot(tile, 1, 152, 72)); + //Upgrades + this.addSlotToContainer(new Slot(tile, 2, 52, 72)); + this.addSlotToContainer(new Slot(tile, 3, 70, 72)); for(int i = 0; i < 3; i++) { for(int j = 0; j < 9; j++) { @@ -47,8 +50,8 @@ public class ContainerCompressor extends Container { ItemStack var5 = var4.getStack(); var3 = var5.copy(); - if(index < 2) { - if(!this.mergeItemStack(var5, 2, this.inventorySlots.size(), true)) { + if(index < 4) { + if(!this.mergeItemStack(var5, 4, this.inventorySlots.size(), true)) { return null; } } else { @@ -62,7 +65,9 @@ public class ContainerCompressor extends Container { return null; } } else { - return null; + if(!this.mergeItemStack(var5, 2, 4, false)) { + return null; + } } } diff --git a/src/main/java/com/hbm/inventory/gui/GUICompressor.java b/src/main/java/com/hbm/inventory/gui/GUICompressor.java index 9e2f758e8..69c8dc0ac 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICompressor.java +++ b/src/main/java/com/hbm/inventory/gui/GUICompressor.java @@ -68,7 +68,7 @@ public class GUICompressor extends GuiInfoContainer { Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - if(compressor.power >= 1_000) { + if(compressor.power >= compressor.powerRequirement) { drawTexturedModalRect(guiLeft + 156, guiTop + 4, 176, 52, 9, 12); } @@ -77,6 +77,9 @@ public class GUICompressor extends GuiInfoContainer { int i = compressor.progress * 55 / compressor.processTime; drawTexturedModalRect(guiLeft + 42, guiTop + 26, 192, 0, i, 17); + int j = (int) (compressor.power * 52 / compressor.maxPower); + drawTexturedModalRect(guiLeft + 152, guiTop + 70 - j, 176, 52 - j, 16, j); + compressor.tanks[0].renderTank(guiLeft + 17, guiTop + 70, this.zLevel, 16, 52); compressor.tanks[1].renderTank(guiLeft + 107, guiTop + 70, this.zLevel, 16, 52); } diff --git a/src/main/java/com/hbm/render/tileentity/RenderCompressor.java b/src/main/java/com/hbm/render/tileentity/RenderCompressor.java index 6934ff5ac..13e9d2c64 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderCompressor.java +++ b/src/main/java/com/hbm/render/tileentity/RenderCompressor.java @@ -3,13 +3,17 @@ package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; import com.hbm.tileentity.machine.TileEntityMachineCompressor; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; -public class RenderCompressor extends TileEntitySpecialRenderer { +public class RenderCompressor extends TileEntitySpecialRenderer implements IItemRendererProvider { @Override public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { @@ -50,4 +54,46 @@ public class RenderCompressor extends TileEntitySpecialRenderer { GL11.glPopMatrix(); } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.machine_compressor); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase() { + public void renderInventory() { + GL11.glTranslated(0, -4, 0); + GL11.glScaled(3, 3, 3); + } + public void renderCommon() { + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); + + GL11.glScaled(0.5, 0.5, 0.5); + + bindTexture(ResourceManager.compressor_tex); + ResourceManager.compressor.renderPart("Compressor"); + + double lift = (System.currentTimeMillis() * 0.005) % 9; + + if(lift > 3) lift = 3 - (lift - 3) / 2D; + + GL11.glPushMatrix(); + GL11.glTranslated(0, -lift, 0); + ResourceManager.compressor.renderPart("Pump"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 1.5, 0); + GL11.glRotated((System.currentTimeMillis() * 0.25) % 360D, 1, 0, 0); + GL11.glTranslated(0, -1.5, 0); + ResourceManager.compressor.renderPart("Fan"); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glEnable(GL11.GL_CULL_FACE); + }}; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java index 26c4210ef..285c36a20 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java @@ -2,12 +2,14 @@ package com.hbm.tileentity.machine; import com.hbm.blocks.BlockDummyable; import com.hbm.interfaces.IControlReceiver; +import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerCompressor; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUICompressor; import com.hbm.inventory.recipes.CompressorRecipes; import com.hbm.inventory.recipes.CompressorRecipes.CompressorRecipe; +import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; @@ -18,12 +20,15 @@ import api.hbm.energy.IEnergyUser; import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -35,6 +40,9 @@ public class TileEntityMachineCompressor extends TileEntityMachineBase implement public boolean isOn; public int progress; public int processTime = 100; + public static final int processTimeBase = 100; + public int powerRequirement; + public static final int powerRequirementBase = 10_000; public float fanSpin; public float prevFanSpin; @@ -43,7 +51,7 @@ public class TileEntityMachineCompressor extends TileEntityMachineBase implement public boolean pistonDir; public TileEntityMachineCompressor() { - super(2); + super(4); this.tanks = new FluidTank[2]; this.tanks[0] = new FluidTank(Fluids.NONE, 16_000); this.tanks[1] = new FluidTank(Fluids.NONE, 16_000).withPressure(1); @@ -67,10 +75,22 @@ public class TileEntityMachineCompressor extends TileEntityMachineBase implement this.tanks[0].setType(0, slots); this.setupTanks(); + UpgradeManager.eval(slots, 1, 3); + + int speedLevel = Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 3); + int powerLevel = Math.min(UpgradeManager.getLevel(UpgradeType.POWER), 3); + int overLevel = UpgradeManager.getLevel(UpgradeType.OVERDRIVE); + + //there is a reason to do this but i'm not telling you + this.processTime = speedLevel == 3 ? 10 : speedLevel == 2 ? 20 : speedLevel == 1 ? 60 : this.processTimeBase; + this.powerRequirement = this.powerRequirementBase / (powerLevel + 1); + this.processTime = this.processTime / (overLevel + 1); + this.powerRequirement = this.powerRequirement * ((overLevel * 2) + 1); + if(canProcess()) { this.progress++; this.isOn = true; - this.power -= 1_000; + this.power -= powerRequirement; if(progress >= this.processTime) { progress = 0; @@ -89,6 +109,8 @@ public class TileEntityMachineCompressor extends TileEntityMachineBase implement NBTTagCompound data = new NBTTagCompound(); data.setInteger("progress", progress); + data.setInteger("processTime", processTime); + data.setInteger("powerRequirement", powerRequirement); data.setLong("power", power); tanks[0].writeToNBT(data, "0"); tanks[1].writeToNBT(data, "1"); @@ -109,11 +131,17 @@ public class TileEntityMachineCompressor extends TileEntityMachineBase implement } if(this.pistonDir) { - this.piston -= 0.1F; - if(this.piston <= 0) this.pistonDir = !this.pistonDir; + this.piston -= randSpeed; + if(this.piston <= 0) { + Minecraft.getMinecraft().getSoundHandler().playSound(new PositionedSoundRecord(new ResourceLocation("hbm:item.boltgun"), 0.5F, 0.75F, xCoord, yCoord, zCoord)); + this.pistonDir = !this.pistonDir; + } } else { this.piston += 0.05F; - if(this.piston >= 1) this.pistonDir = !this.pistonDir; + if(this.piston >= 1) { + this.randSpeed = 0.085F + worldObj.rand.nextFloat() * 0.03F; + this.pistonDir = !this.pistonDir; + } } this.piston = MathHelper.clamp_float(this.piston, 0F, 1F); @@ -121,8 +149,12 @@ public class TileEntityMachineCompressor extends TileEntityMachineBase implement } } + private float randSpeed = 0.1F; + public void networkUnpack(NBTTagCompound nbt) { this.progress = nbt.getInteger("progress"); + this.processTime = nbt.getInteger("processTime"); + this.powerRequirement = nbt.getInteger("powerRequirement"); this.power = nbt.getLong("power"); tanks[0].readFromNBT(nbt, "0"); tanks[1].readFromNBT(nbt, "1"); @@ -149,7 +181,7 @@ public class TileEntityMachineCompressor extends TileEntityMachineBase implement public boolean canProcess() { - if(this.power <= 1_000) return false; + if(this.power <= powerRequirement) return false; CompressorRecipe recipe = CompressorRecipes.recipes.get(new Pair(tanks[0].getTankType(), tanks[0].getPressure())); diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineVacuumDistill.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineVacuumDistill.java index bc2ba6469..9fc45de36 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineVacuumDistill.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineVacuumDistill.java @@ -41,7 +41,7 @@ public class TileEntityMachineVacuumDistill extends TileEntityMachineBase implem super(11); this.tanks = new FluidTank[5]; - this.tanks[0] = new FluidTank(Fluids.OIL, 64_000); + this.tanks[0] = new FluidTank(Fluids.OIL, 64_000).withPressure(2); this.tanks[1] = new FluidTank(Fluids.HEAVYOIL_VACUUM, 24_000); this.tanks[2] = new FluidTank(Fluids.REFORMATE, 24_000); this.tanks[3] = new FluidTank(Fluids.LIGHTOIL_VACUUM, 24_000); diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_compressor.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_compressor.png index e5b80132b0bfac3f4073c92b22d4609e1b36a4a7..0a0179680513cf023dac7cf84eb54e87be55e1ea 100644 GIT binary patch literal 3380 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 Vd8BUKQ-uY8JMH(_6>P_!`wtW{4P^iT literal 3119 zcmb_ec|6o>7k_4qB{eaVU9uITWwM7d2}4;UQHipXD2!y8(Q--RhDb)^jULn&%LA?#Ni)OdXQk*$)cH}h zU8vz~Qms8B^M3dcac7aI_^u-f6CuRjAT+GX4~I&EX|%G$AsqFev15-_(BiOi!e^uW@>7xyLn^I zO$1|dvTcQLr?JW7#EDEuCi4T=?PMa&JlC#xG}=Td=;_ddubK;7sZX><&7L#@b7T{J@Jol;J^qL*eQWre zH+_ld7sC~i^`6f!OdOgr9BEu@n|xc$=puyFnD6Uu&G+)fFO%cqJl+>fem!OoEe;s- zp;>{)g{r#dE&azcqI^3_*MFqM#70j#X{?jER@8>a=TM%z0TB4WH{c3DdfCNOElZX z7FREe^{tzH8dw_U=3KRLE07vHvjt0E1(v*0*w$@KK69U!(Kupm(a2{!e_+6PcYaMk z>QGR%cr>ZkRH{oKPSNc*i zry=^MO^FMs_Zoj5AJ5T!_JVy@F{@5HDZ41h2c!ix#J zdRc)8w@=ek2YMfXg55#VBiNmPiOjuXkrQZfW(@h1{VjAuYvBK(AIL=UxExhYxboN+ zaRZ=N8Um(hWHzIn=_TMsRM{4=jq97msHuYr*y@N@B~yBP&*(#Co%;9MnaL98@$cP` zD)+vY-TbD2Wq!#GYPG}Dmgl)k#ie%e{lC(s71hDxd@su&q&L0OoMq77YHu1Is-CEk z1~!BMMMb7xcvNGT5s$I1Sj3wpMvBUE+@F1W^H_gT2wX#M-N0!R_`vE=lbcJ}qUSXz zgR>q?M@oxEzb*Blas6vEpf?=??2A=tCxtPE)gnJO=}wp`;w8*zk0(sLHuY?e9o}A+q{FhEi--96_-uA#ZkfS(gD|3uDlBNa{7U{;vlcC9p;O zKgfEcfIV{QrQkmEAj5^^`7aS~>v*J!%mtiRbF1-C3&iGa1SY!3)`Ocgz=&{>P3D+E z;e%Iv3v_2sEb4tU3Fts94IVv;Vs>KSm`$!oZ=dlvHV5jco{pF6XP)eG5~AwqvXzTY*kb;b&gaI__7Q3}@%7^SJ z6{D|UN7!=H`th6S9g>hkCz?q~SPn}N_%yDf(9lt9(k~kfh$1~`CUhjXP#{ZCW>8=* zkgE#K{VLRDcgJ|Mf_JhATp`Iw3x_OtrQf{L(+o`yhU40j*DtdPB?)8;i$C<~vdl6* zMKHWdpa`59eaD1Qr^TvlFb2eBy^n6F!4S`o3rLliM)N-Vo8ndOke)`@(-}2Uge*N6 zw9P6zX?Zf;3__l2?DIP=0~*v}HLDXopA1)`TRt5!xJ0Pz z&nzrdKOB2SA9`ELnl$Ol?&Y7u1G)UtwFwa`S?ZP=wRzB-|&B%oR0LJ5@Q)u5;?Ei2ER0ZuS?%?zo? zDZdHo3|F5k-J?k?x2`mTNS?p^#-yp-oOj_H+$UJDtN6n@Uykdu(sPN6;rBqd(mm}9 z11D)h*u`=UV!4&hf$Q=*Kt2Bwp*C|-ynXLf32Mr43)&Zwf1kkdE11WVFNVx^TuQuR+ z%sZBv4nVJQP($L(Oz2)?;{v6@?ZdPOhjUVg4%9s$Z)|9646RKZ9`^iU+Zg@mMbq}b z75lHQe$IlO4GVkAW>?Hx2PWY^J|5tbX1$rMVmBIO!O3#{7u(jjyrsZOcjsIlW%z8D+PwH-n z>Li!{Fu&ueSX(KzcKo2})X~J#5@qln2!<00|KC1;GyNaMbCG8K&nw}q>p1W@f#StV16EF;R$Yl&lHCYW3OPc5_S!$N c>GT$emih-j-?Tm6^?Nv5D+kL83-8PS1{QpNxc~qF From 9c4c081e3e47f30a27ed786c08e307a25d2da45f Mon Sep 17 00:00:00 2001 From: Voxelstice Date: Fri, 23 Jun 2023 11:52:55 +0300 Subject: [PATCH 153/432] hh --- src/main/java/com/hbm/items/tool/ItemWiring.java | 2 +- .../hbm/tileentity/network/TileEntityPylonBase.java | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/hbm/items/tool/ItemWiring.java b/src/main/java/com/hbm/items/tool/ItemWiring.java index fc694ee82..2f384dccb 100644 --- a/src/main/java/com/hbm/items/tool/ItemWiring.java +++ b/src/main/java/com/hbm/items/tool/ItemWiring.java @@ -68,7 +68,7 @@ public class ItemWiring extends Item { player.addChatMessage(new ChatComponentText("Wire end")); } else { - player.addChatMessage(new ChatComponentText("Wire error")); + player.addChatMessage(new ChatComponentText("Wire error - " + TileEntityPylonBase.errorMessage)); } stack.stackTagCompound = null; diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityPylonBase.java b/src/main/java/com/hbm/tileentity/network/TileEntityPylonBase.java index c55fe51d7..7e55e2f17 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityPylonBase.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityPylonBase.java @@ -18,14 +18,19 @@ import net.minecraft.world.WorldServer; public abstract class TileEntityPylonBase extends TileEntityCableBaseNT { public List connected = new ArrayList(); + public static String errorMessage = ""; public static boolean canConnect(TileEntityPylonBase first, TileEntityPylonBase second) { - if(first.getConnectionType() != second.getConnectionType()) + if(first.getConnectionType() != second.getConnectionType()) { + errorMessage = "pylons are not the same type"; return false; + } - if(first == second) + if(first == second) { + errorMessage = "cannot connect to the same pylon"; return false; + } double len = Math.min(first.getMaxWireLength(), second.getMaxWireLength()); @@ -38,6 +43,7 @@ public abstract class TileEntityPylonBase extends TileEntityCableBaseNT { (secondPos.zCoord) - (firstPos.zCoord) ); + errorMessage = "pylon too far away"; return len >= delta.lengthVector(); } From bb15f500473149e9c0680a2b0550ee4da4cdb83b Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 23 Jun 2023 11:17:37 +0200 Subject: [PATCH 154/432] pressure requirement for recipes --- changelog | 2 ++ .../handler/nei/ChemplantRecipeHandler.java | 4 +-- .../hbm/inventory/fluid/tank/FluidTank.java | 2 +- .../inventory/recipes/ChemplantRecipes.java | 4 +-- .../inventory/recipes/RefineryRecipes.java | 2 +- .../items/machine/ItemChemistryTemplate.java | 6 ++-- .../com/hbm/items/machine/ItemFluidIcon.java | 33 ++++++++++++------- .../machine/TileEntityMachineChemplant.java | 8 ++--- .../TileEntityMachineChemplantBase.java | 8 ++--- 9 files changed, 41 insertions(+), 28 deletions(-) diff --git a/changelog b/changelog index 7e7de1c66..d82ff17a6 100644 --- a/changelog +++ b/changelog @@ -10,6 +10,8 @@ * Compressor * Can compress fluids, turning them into higher pressure variants * Can also turn steam into higher pressure types + * Vacuum refning now requires oil at 2 PU + * Some chemical plant recipes also require compressed fluid, TATB requires sour gas at 1 PU and osmiridic solution requires hydrogen peroxide at 5 PU * A new rocket artillery ammo type that creates volcanic lava on impact * BDCL * A type of lubricant that is easy to make and can be used in hydraulic piston and electric press recipes instead of regular lubricant diff --git a/src/main/java/com/hbm/handler/nei/ChemplantRecipeHandler.java b/src/main/java/com/hbm/handler/nei/ChemplantRecipeHandler.java index 0beaff581..9ef27b9a9 100644 --- a/src/main/java/com/hbm/handler/nei/ChemplantRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/ChemplantRecipeHandler.java @@ -45,7 +45,7 @@ public class ChemplantRecipeHandler extends TemplateRecipeHandler { for(int i = 0; i < recipe.inputFluids.length; i++) { FluidStack in = recipe.inputFluids[i]; if(in == null) continue; - ItemStack drop = ItemFluidIcon.make(in.type, in.fill); + ItemStack drop = ItemFluidIcon.make(in); this.fluidIn[i] = new PositionedStack(drop, 30 + (i % 2) * 18, 6); } @@ -58,7 +58,7 @@ public class ChemplantRecipeHandler extends TemplateRecipeHandler { for(int i = 0; i < recipe.outputFluids.length; i++) { FluidStack out = recipe.outputFluids[i]; if(out == null) continue; - ItemStack drop = ItemFluidIcon.make(out.type, out.fill); + ItemStack drop = ItemFluidIcon.make(out); this.fluidOut[i] = new PositionedStack(drop, 120 + (i % 2) * 18, 6); } diff --git a/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java b/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java index c9e94b9ee..bd1561bc3 100644 --- a/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java +++ b/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java @@ -241,7 +241,7 @@ public class FluidTank { list.add(fluid + "/" + maxFluid + "mB"); if(this.pressure != 0) { - list.add(EnumChatFormatting.RED + "" + this.pressure + " PU"); + list.add(EnumChatFormatting.RED + "Pressure: " + this.pressure + " PU"); } type.addInfo(list); diff --git a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java index 248073743..f32038c47 100644 --- a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java @@ -147,7 +147,7 @@ public class ChemplantRecipes extends SerializableRecipe { .outputItems(new ItemStack(ModItems.ball_tnt, 4))); recipes.add(new ChemRecipe(95, "TATB", 50) .inputItems(new ComparableStack(ModItems.ball_tnt)) - .inputFluids(new FluidStack(Fluids.SOURGAS, 200), new FluidStack(Fluids.NITRIC_ACID, 10)) + .inputFluids(new FluidStack(Fluids.SOURGAS, 200, 1), new FluidStack(Fluids.NITRIC_ACID, 10)) .outputItems(new ItemStack(ModItems.ball_tatb))); recipes.add(new ChemRecipe(84, "C4", 150) .inputItems(new OreDictStack(KNO.dust())) @@ -352,7 +352,7 @@ public class ChemplantRecipes extends SerializableRecipe { new ComparableStack(ModItems.powder_paleogenite), new OreDictStack(F.dust(), 8), new ComparableStack(ModItems.nugget_bismuth, 4)) - .inputFluids(new FluidStack(Fluids.ACID, 1000)) + .inputFluids(new FluidStack(Fluids.ACID, 1000, 5)) .outputFluids(new FluidStack(Fluids.DEATH, 1000))); //one bucket of ethanol equals 275_000 TU using the diesel baseline0 //the coal baseline is 400_000 per piece diff --git a/src/main/java/com/hbm/inventory/recipes/RefineryRecipes.java b/src/main/java/com/hbm/inventory/recipes/RefineryRecipes.java index 314e50d56..427f4a329 100644 --- a/src/main/java/com/hbm/inventory/recipes/RefineryRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/RefineryRecipes.java @@ -58,7 +58,7 @@ public class RefineryRecipes { public static HashMap getVacuumRecipe() { HashMap recipes = new HashMap(); - recipes.put(ItemFluidIcon.make(Fluids.OIL, 1000), + recipes.put(ItemFluidIcon.make(Fluids.OIL, 1000, 2), new ItemStack[] { ItemFluidIcon.make(Fluids.HEAVYOIL_VACUUM, vac_frac_heavy * 10), ItemFluidIcon.make(Fluids.REFORMATE, vac_frac_reform * 10), diff --git a/src/main/java/com/hbm/items/machine/ItemChemistryTemplate.java b/src/main/java/com/hbm/items/machine/ItemChemistryTemplate.java index 12ad0569e..432141d9d 100644 --- a/src/main/java/com/hbm/items/machine/ItemChemistryTemplate.java +++ b/src/main/java/com/hbm/items/machine/ItemChemistryTemplate.java @@ -75,7 +75,8 @@ public class ItemChemistryTemplate extends Item { for(int i = 0; i < 2; i++) { if(recipe.outputFluids[i] != null) { - list.add(recipe.outputFluids[i].fill + "mB " + I18n.format(recipe.outputFluids[i].type.getUnlocalizedName())); + int p = recipe.outputFluids[i].pressure; + list.add(recipe.outputFluids[i].fill + "mB " + I18n.format(recipe.outputFluids[i].type.getUnlocalizedName()) + (p != 0 ? (" at " + p + "PU") : "")); } } @@ -89,7 +90,8 @@ public class ItemChemistryTemplate extends Item { for(int i = 0; i < 2; i++) { if(recipe.inputFluids[i] != null) { - list.add(recipe.inputFluids[i].fill + "mB " + I18n.format(recipe.inputFluids[i].type.getUnlocalizedName())); + int p = recipe.inputFluids[i].pressure; + list.add(recipe.inputFluids[i].fill + "mB " + I18n.format(recipe.inputFluids[i].type.getUnlocalizedName()) + (p != 0 ? (" at " + p + "PU") : "")); } } diff --git a/src/main/java/com/hbm/items/machine/ItemFluidIcon.java b/src/main/java/com/hbm/items/machine/ItemFluidIcon.java index f15d2ad05..1e121dd96 100644 --- a/src/main/java/com/hbm/items/machine/ItemFluidIcon.java +++ b/src/main/java/com/hbm/items/machine/ItemFluidIcon.java @@ -14,6 +14,7 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IIcon; import net.minecraft.util.StatCollector; @@ -38,39 +39,47 @@ public class ItemFluidIcon extends Item { @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { if(stack.hasTagCompound()) { - if(stack.getTagCompound().getInteger("fill") > 0) - list.add(stack.getTagCompound().getInteger("fill") + "mB"); + if(getQuantity(stack) > 0) list.add(getQuantity(stack) + "mB"); + if(getPressure(stack) > 0) list.add(EnumChatFormatting.RED + "" + getPressure(stack) + "PU"); } Fluids.fromID(stack.getItemDamage()).addInfo(list); } public static ItemStack addQuantity(ItemStack stack, int i) { - - if(!stack.hasTagCompound()) - stack.stackTagCompound = new NBTTagCompound(); - + if(!stack.hasTagCompound()) stack.stackTagCompound = new NBTTagCompound(); stack.getTagCompound().setInteger("fill", i); + return stack; + } + public static ItemStack addPressure(ItemStack stack, int i) { + if(!stack.hasTagCompound()) stack.stackTagCompound = new NBTTagCompound(); + stack.getTagCompound().setInteger("pressure", i); return stack; } public static ItemStack make(FluidStack stack) { - return make(stack.type, stack.fill); + return make(stack.type, stack.fill, stack.pressure); } public static ItemStack make(FluidType fluid, int i) { - return addQuantity(new ItemStack(ModItems.fluid_icon, 1, fluid.ordinal()), i); + return make(fluid, i, 0); + } + + public static ItemStack make(FluidType fluid, int i, int pressure) { + return addPressure(addQuantity(new ItemStack(ModItems.fluid_icon, 1, fluid.ordinal()), i), pressure); } public static int getQuantity(ItemStack stack) { - - if(!stack.hasTagCompound()) - return 0; - + if(!stack.hasTagCompound()) return 0; return stack.getTagCompound().getInteger("fill"); } + public static int getPressure(ItemStack stack) { + if(!stack.hasTagCompound()) return 0; + return stack.getTagCompound().getInteger("pressure"); + } + @Override public String getItemStackDisplayName(ItemStack stack) { String s = (StatCollector.translateToLocal(Fluids.fromID(stack.getItemDamage()).getUnlocalizedName())).trim(); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java index 9aea57727..8055c8d11 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java @@ -266,10 +266,10 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements } private void setupTanks(ChemRecipe recipe) { - if(recipe.inputFluids[0] != null) tanks[0].setTankType(recipe.inputFluids[0].type); else tanks[0].setTankType(Fluids.NONE); - if(recipe.inputFluids[1] != null) tanks[1].setTankType(recipe.inputFluids[1].type); else tanks[1].setTankType(Fluids.NONE); - if(recipe.outputFluids[0] != null) tanks[2].setTankType(recipe.outputFluids[0].type); else tanks[2].setTankType(Fluids.NONE); - if(recipe.outputFluids[1] != null) tanks[3].setTankType(recipe.outputFluids[1].type); else tanks[3].setTankType(Fluids.NONE); + if(recipe.inputFluids[0] != null) tanks[0].withPressure(recipe.inputFluids[0].pressure).setTankType(recipe.inputFluids[0].type); else tanks[0].setTankType(Fluids.NONE); + if(recipe.inputFluids[1] != null) tanks[1].withPressure(recipe.inputFluids[1].pressure).setTankType(recipe.inputFluids[1].type); else tanks[1].setTankType(Fluids.NONE); + if(recipe.outputFluids[0] != null) tanks[2].withPressure(recipe.outputFluids[0].pressure).setTankType(recipe.outputFluids[0].type); else tanks[2].setTankType(Fluids.NONE); + if(recipe.outputFluids[1] != null) tanks[3].withPressure(recipe.outputFluids[1].pressure).setTankType(recipe.outputFluids[1].type); else tanks[3].setTankType(Fluids.NONE); } private boolean hasRequiredFluids(ChemRecipe recipe) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java index 6d2501a7e..6d6caf6e2 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java @@ -109,10 +109,10 @@ public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBa } private void setupTanks(ChemRecipe recipe, int index) { - if(recipe.inputFluids[0] != null) tanks[index * 4].setTankType(recipe.inputFluids[0].type); - if(recipe.inputFluids[1] != null) tanks[index * 4 + 1].setTankType(recipe.inputFluids[1].type); - if(recipe.outputFluids[0] != null) tanks[index * 4 + 2].setTankType(recipe.outputFluids[0].type); - if(recipe.outputFluids[1] != null) tanks[index * 4 + 3].setTankType(recipe.outputFluids[1].type); + if(recipe.inputFluids[0] != null) tanks[index * 4].withPressure(recipe.inputFluids[0].pressure).setTankType(recipe.inputFluids[0].type); else tanks[index * 4].setTankType(Fluids.NONE); + if(recipe.inputFluids[1] != null) tanks[index * 4 + 1].withPressure(recipe.inputFluids[1].pressure).setTankType(recipe.inputFluids[1].type); else tanks[index * 4 + 1].setTankType(Fluids.NONE); + if(recipe.outputFluids[0] != null) tanks[index * 4 + 2].withPressure(recipe.outputFluids[0].pressure).setTankType(recipe.outputFluids[0].type); else tanks[index * 4 + 2].setTankType(Fluids.NONE); + if(recipe.outputFluids[1] != null) tanks[index * 4 + 3].withPressure(recipe.outputFluids[1].pressure).setTankType(recipe.outputFluids[1].type); else tanks[index * 4 + 3].setTankType(Fluids.NONE); } private boolean hasRequiredFluids(ChemRecipe recipe, int index) { From 00360a4586f63f16f455dc06a36ee49cb24fd843 Mon Sep 17 00:00:00 2001 From: Bob Date: Fri, 23 Jun 2023 23:06:44 +0200 Subject: [PATCH 155/432] memepackhunters.xxx --- .../blocks/generic/BlockGlyphidSpawner.java | 14 ++++++---- .../com/hbm/inventory/gui/GUICompressor.java | 2 ++ .../inventory/recipes/AssemblerRecipes.java | 8 ++++++ .../inventory/recipes/ChemplantRecipes.java | 26 +++++++++---------- .../com/hbm/items/special/ItemTeleLink.java | 2 +- .../com/hbm/main/ModEventHandlerClient.java | 2 +- src/main/resources/assets/hbm/lang/de_DE.lang | 2 ++ src/main/resources/assets/hbm/lang/en_US.lang | 2 ++ 8 files changed, 38 insertions(+), 20 deletions(-) diff --git a/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java b/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java index a489018f1..7e9d805f5 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java +++ b/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java @@ -4,9 +4,12 @@ import java.util.List; import java.util.Random; import com.hbm.entity.mob.EntityGlyphid; +import com.hbm.entity.mob.EntityGlyphidBehemoth; import com.hbm.entity.mob.EntityGlyphidBlaster; import com.hbm.entity.mob.EntityGlyphidBombardier; import com.hbm.entity.mob.EntityGlyphidBrawler; +import com.hbm.entity.mob.EntityGlyphidBrenda; +import com.hbm.entity.mob.EntityGlyphidNuclear; import com.hbm.entity.mob.EntityGlyphidScout; import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.pollution.PollutionHandler.PollutionType; @@ -56,12 +59,13 @@ public class BlockGlyphidSpawner extends BlockContainer { public EntityGlyphid createGlyphid(float soot) { Random rand = new Random(); + + if(soot < 1) return rand.nextInt(5) == 0 ? new EntityGlyphidBombardier(worldObj) : new EntityGlyphid(worldObj); + if(soot < 10) return rand.nextInt(5) == 0 ? new EntityGlyphidBombardier(worldObj) : new EntityGlyphidBrawler(worldObj); + if(soot < 50) return rand.nextInt(5) == 0 ? new EntityGlyphidBlaster(worldObj) : new EntityGlyphidBehemoth(worldObj); + if(soot < 100) return rand.nextInt(5) == 0 ? new EntityGlyphidBlaster(worldObj) : new EntityGlyphidBrenda(worldObj); - if(soot < 1) { - return rand.nextInt(5) == 0 ? new EntityGlyphidBombardier(worldObj) : new EntityGlyphid(worldObj); - } - - return rand.nextInt(5) == 0 ? new EntityGlyphidBlaster(worldObj) : new EntityGlyphidBrawler(worldObj); + return rand.nextInt(3) == 0 ? new EntityGlyphidBlaster(worldObj) : new EntityGlyphidNuclear(worldObj); } } } diff --git a/src/main/java/com/hbm/inventory/gui/GUICompressor.java b/src/main/java/com/hbm/inventory/gui/GUICompressor.java index 69c8dc0ac..e555886fa 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICompressor.java +++ b/src/main/java/com/hbm/inventory/gui/GUICompressor.java @@ -35,6 +35,8 @@ public class GUICompressor extends GuiInfoContainer { compressor.tanks[0].renderTankInfo(this, mouseX, mouseY, guiLeft + 17, guiTop + 18, 16, 52); compressor.tanks[1].renderTankInfo(this, mouseX, mouseY, guiLeft + 107, guiTop + 18, 16, 52); this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 152, guiTop + 18, 16, 52, compressor.power, compressor.maxPower); + + for(int j = 0; j < 5; j++) drawCustomInfoStat(mouseX, mouseY, guiLeft + 43 + j * 11, guiTop + 48, 8, 14, mouseX, mouseY, j + " PU -> " + (j + 1) + " PU"); } @Override diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 3711f5af2..077b17bdc 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -985,6 +985,14 @@ public class AssemblerRecipes { new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.circuit_red_copper, 3) }, 200); + + makeRecipe(new ComparableStack(ModBlocks.machine_compressor, 1), new AStack[] { + new OreDictStack(STEEL.plateCast(), 8), + new OreDictStack(CU.plate528(), 4), + new ComparableStack(ModItems.hull_big_steel, 2), + new ComparableStack(ModItems.motor, 3), + new ComparableStack(ModItems.circuit_red_copper, 1) + }, 200); makeRecipe(new ComparableStack(ModItems.euphemium_capacitor, 1), new AStack[] { diff --git a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java index f32038c47..62ba87dfa 100644 --- a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java @@ -91,22 +91,22 @@ public class ChemplantRecipes extends SerializableRecipe { new ComparableStack(ModItems.wire_schrabidium, 4), new OreDictStack(DIAMOND.dust()), new OreDictStack(DESH.ingot())) - .inputFluids(new FluidStack(Fluids.ACID, 800), new FluidStack(Fluids.MERCURY, 200)) + .inputFluids(new FluidStack(Fluids.ACID, 800, GeneralConfig.enable528 ? 1 : 0), new FluidStack(Fluids.MERCURY, 200)) .outputItems(new ItemStack(ModItems.circuit_schrabidium))); recipes.add(new ChemRecipe(43, "POLYMER", 100) .inputItems( new OreDictStack(COAL.dust(), 2), new OreDictStack(F.dust())) - .inputFluids(new FluidStack(Fluids.PETROLEUM, 500)) + .inputFluids(new FluidStack(Fluids.PETROLEUM, 500, GeneralConfig.enable528 ? 1 : 0)) .outputItems(new ItemStack(ModItems.ingot_polymer))); recipes.add(new ChemRecipe(81, "BAKELITE", 100) .inputFluids( - new FluidStack(Fluids.AROMATICS, 500), - new FluidStack(Fluids.PETROLEUM, 500)) + new FluidStack(Fluids.AROMATICS, 500, GeneralConfig.enable528 ? 1 : 0), + new FluidStack(Fluids.PETROLEUM, 500, GeneralConfig.enable528 ? 1 : 0)) .outputItems(new ItemStack(ModItems.ingot_bakelite))); recipes.add(new ChemRecipe(82, "RUBBER", 100) .inputItems(new OreDictStack(S.dust())) - .inputFluids(new FluidStack(Fluids.UNSATURATEDS, 500)) + .inputFluids(new FluidStack(Fluids.UNSATURATEDS, 500, GeneralConfig.enable528 ? 2 : 0)) .outputItems(new ItemStack(ModItems.ingot_rubber))); /*recipes.add(new ChemRecipe(94, "PET", 100) .inputItems(new OreDictStack(AL.dust())) @@ -126,14 +126,14 @@ public class ChemplantRecipes extends SerializableRecipe { .outputItems(new ItemStack(com.hbm.blocks.ModBlocks.reinforced_laminate))); recipes.add(new ChemRecipe(94, "PC", 100) .inputFluids( - new FluidStack(Fluids.XYLENE, 500), - new FluidStack(Fluids.PHOSGENE, 500)) + new FluidStack(Fluids.XYLENE, 500, GeneralConfig.enable528 ? 2 : 0), + new FluidStack(Fluids.PHOSGENE, 500, GeneralConfig.enable528 ? 2 : 0)) .outputItems(new ItemStack(ModItems.ingot_pc))); recipes.add(new ChemRecipe(96, "PVC", 100) .inputItems(new OreDictStack(CD.dust())) .inputFluids( - new FluidStack(Fluids.UNSATURATEDS, 250), - new FluidStack(Fluids.CHLORINE, 250)) + new FluidStack(Fluids.UNSATURATEDS, 250, GeneralConfig.enable528 ? 2 : 0), + new FluidStack(Fluids.CHLORINE, 250, GeneralConfig.enable528 ? 2 : 0)) .outputItems(new ItemStack(ModItems.ingot_pvc, 2))); recipes.add(new ChemRecipe(89, "DYNAMITE", 50) .inputItems( @@ -143,7 +143,7 @@ public class ChemplantRecipes extends SerializableRecipe { .outputItems(new ItemStack(ModItems.ball_dynamite, 2))); recipes.add(new ChemRecipe(83, "TNT", 150) .inputItems(new OreDictStack(KNO.dust())) - .inputFluids(new FluidStack(Fluids.AROMATICS, 500)) + .inputFluids(new FluidStack(Fluids.AROMATICS, 500, GeneralConfig.enable528 ? 1 : 0)) .outputItems(new ItemStack(ModItems.ball_tnt, 4))); recipes.add(new ChemRecipe(95, "TATB", 50) .inputItems(new ComparableStack(ModItems.ball_tnt)) @@ -151,7 +151,7 @@ public class ChemplantRecipes extends SerializableRecipe { .outputItems(new ItemStack(ModItems.ball_tatb))); recipes.add(new ChemRecipe(84, "C4", 150) .inputItems(new OreDictStack(KNO.dust())) - .inputFluids(new FluidStack(Fluids.UNSATURATEDS, 500)) + .inputFluids(new FluidStack(Fluids.UNSATURATEDS, 500, GeneralConfig.enable528 ? 1 : 0)) .outputItems(new ItemStack(ModItems.ingot_c4, 4))); //44, formerly deuterium //45, formerly steam @@ -224,7 +224,7 @@ public class ChemplantRecipes extends SerializableRecipe { new ComparableStack(ModItems.solid_fuel, 2), new OreDictStack(KNO.dust()), new OreDictStack(REDSTONE.dust())) - .inputFluids(new FluidStack(Fluids.PETROLEUM, 200)) + .inputFluids(new FluidStack(Fluids.PETROLEUM, 200, GeneralConfig.enable528 ? 1 : 0)) .outputItems(new ItemStack(ModItems.rocket_fuel, 4))); recipes.add(new ChemRecipe(58, "ELECTROLYSIS", 150) .inputFluids(new FluidStack(Fluids.WATER, 8000)) @@ -353,7 +353,7 @@ public class ChemplantRecipes extends SerializableRecipe { new OreDictStack(F.dust(), 8), new ComparableStack(ModItems.nugget_bismuth, 4)) .inputFluids(new FluidStack(Fluids.ACID, 1000, 5)) - .outputFluids(new FluidStack(Fluids.DEATH, 1000))); + .outputFluids(new FluidStack(Fluids.DEATH, 1000, GeneralConfig.enable528 ? 5 : 0))); //one bucket of ethanol equals 275_000 TU using the diesel baseline0 //the coal baseline is 400_000 per piece //if we assume a burntime of 1.5 ops (300 ticks) for sugar at 100 TU/t that would equal a total of 30_000 TU diff --git a/src/main/java/com/hbm/items/special/ItemTeleLink.java b/src/main/java/com/hbm/items/special/ItemTeleLink.java index baf9880ce..6ed12b051 100644 --- a/src/main/java/com/hbm/items/special/ItemTeleLink.java +++ b/src/main/java/com/hbm/items/special/ItemTeleLink.java @@ -42,7 +42,7 @@ public class ItemTeleLink extends Item { if(!stack.hasTagCompound()) { world.playSoundAtEntity(player, "hbm:item.techBoop", 1.0F, 1.0F); - player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "[TeleLink] No destiation set!")); + player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "[TeleLink] No destination set!")); return false; } diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 3a7624b0b..019a369cc 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -1256,7 +1256,7 @@ public class ModEventHandlerClient { switch(rand) { case 0: main.splashText = "Floppenheimer!"; break; - case 1: main.splashText = "i should dip my balls in sulfuic acid"; break; + case 1: main.splashText = "i should dip my balls in sulfuric acid"; break; case 2: main.splashText = "All answers are popbob!"; break; case 3: main.splashText = "None shall enter The Orb!"; break; case 4: main.splashText = "Wacarb was here"; break; diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index c9a2b3a46..6334c68bb 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -332,6 +332,7 @@ container.machineBoiler=Ölwärmer container.machineCMB=CMB-Stahl Hochofen container.machineCoal=Verbrennungsgenerator container.machineCoker=Koker-Anlage +container.machineCompressor=Kompressor container.machineCrucible=Schmelztiegel container.machineDiesel=Dieselgenerator container.machineElectricBoiler=Elektrischer Ölwärmer @@ -3941,6 +3942,7 @@ tile.machine_coker.name=Koker-Anlage tile.machine_coker.desc=Verkokt Öl, erzeugt fluides Nebenprodukt.$Benötigt externe Hitzequelle.$Wärmestransferrate: ΔT*0.025 TU/t tile.machine_combine_factory.name=CMB-Stahl Hochofen tile.machine_combustion_engine.name=Industrieller Verbrennungsmotor +tile.machine_compressor.name=Kompressor tile.machine_condenser.name=Dampfkondensierer tile.machine_controller.name=Reaktorfernsteuerung tile.machine_converter_he_rf.name=HE zu RF Konverter diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index e192d1821..6bd3ff4e6 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -624,6 +624,7 @@ container.machineBoiler=Oil Heater container.machineCMB=CMB Steel Furnace container.machineCoal=Combustion Generator container.machineCoker=Coker Unit +container.machineCompressor=Compressor container.machineCrucible=Crucible container.machineDiesel=Diesel Generator container.machineElectricBoiler=Electric Oil Heater @@ -4764,6 +4765,7 @@ tile.machine_coker.name=Coker Unit tile.machine_coker.desc=Cokes oil, creating fluid byproducts.$Requires external heat source.$Heat transfer rate: ΔT*0.025 TU/t tile.machine_combine_factory.name=CMB Steel Furnace tile.machine_combustion_engine.name=Industrial Combustion Engine +tile.machine_compressor.name=Compressor tile.machine_condenser.name=Steam Condenser tile.machine_controller.name=Reactor Remote Control Block tile.machine_converter_he_rf.name=HE to RF Converter From 99cfce0e5d1a1b4d8dc460574492cc8bc86e8d62 Mon Sep 17 00:00:00 2001 From: Bob Date: Sat, 24 Jun 2023 17:54:46 +0200 Subject: [PATCH 156/432] pollution effects for heavy metal and poison --- changelog | 7 +- .../hbm/entity/grenade/EntityGrenadeGas.java | 23 ++-- .../com/hbm/handler/EntityEffectHandler.java | 104 ++++++++++++------ .../handler/pollution/PollutionHandler.java | 10 +- .../com/hbm/inventory/gui/GUICompressor.java | 2 +- .../com/hbm/items/weapon/ItemAmmoArty.java | 29 +++-- .../java/com/hbm/main/ModEventHandler.java | 25 ++++- .../TileEntityMachineCombustionEngine.java | 4 +- 8 files changed, 141 insertions(+), 63 deletions(-) diff --git a/changelog b/changelog index d82ff17a6..b31f60f2d 100644 --- a/changelog +++ b/changelog @@ -38,9 +38,14 @@ * The page and notebook items have been replaced with more dynamic book items that get their data from NBT * C4 can now be made by irradiating PVC * Play stupid games, win stupid prizes +* Gas grenades now use the new gas system which should be a lot more pleasant to look at and less heavy on the TPS +* Leaded fuels now release heavy metal into the air, heavy metal can cause lead poisoning + * Lower heavy metal concentrations can also cause heavy metal poisoning when breaking blocks +* Gas artillery shell now create heavy metal and poisonous pollution ## Fixed * Fixed potential crash or logspam regarding the pollution handler * Fixed missiles leaving behind a 3x3 grid of loaded chunks after being destroyed * Fixed coal ore yielding coal in the crucible instead of making carbon -* Fixed a potential issue where BuildCraft generators can't supply the RF to HE converter \ No newline at end of file +* Fixed a potential issue where BuildCraft generators can't supply the RF to HE converter +* Fixed combustion engine sound sometimes continue playing even when turned off \ No newline at end of file diff --git a/src/main/java/com/hbm/entity/grenade/EntityGrenadeGas.java b/src/main/java/com/hbm/entity/grenade/EntityGrenadeGas.java index 5526b87a0..51d813653 100644 --- a/src/main/java/com/hbm/entity/grenade/EntityGrenadeGas.java +++ b/src/main/java/com/hbm/entity/grenade/EntityGrenadeGas.java @@ -5,7 +5,9 @@ import net.minecraft.world.World; import java.util.Random; +import com.hbm.entity.effect.EntityMist; import com.hbm.explosion.ExplosionChaos; +import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; import com.hbm.items.weapon.ItemGrenade; @@ -30,21 +32,12 @@ public class EntityGrenadeGas extends EntityGrenadeBouncyBase { if (!this.worldObj.isRemote) { this.setDead(); this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 0.0F, true); - // ExplosionChaos.poison(this.worldObj, (int)this.posX, - // (int)this.posY, (int)this.posZ, 5); - // for(int i = 0; 0 < 15; i++) { - - /* - * ExplosionLarge.spawnParticlesRadial(worldObj, posX, posY, posZ, - * 50); ExplosionLarge.spawnParticlesRadial(worldObj, posX, posY, - * posZ, 50); ExplosionLarge.spawnParticlesRadial(worldObj, posX, - * posY, posZ, 50); ExplosionLarge.spawnParticlesRadial(worldObj, - * posX, posY, posZ, 50); - */ - - ExplosionChaos.spawnChlorine(worldObj, posX, posY, posZ, 50, 1.25, 0); - - // } + + EntityMist mist = new EntityMist(worldObj); + mist.setType(Fluids.CHLORINE); + mist.setPosition(posX, posY - 5, posZ); + mist.setArea(15, 10); + worldObj.spawnEntityInWorld(mist); } } diff --git a/src/main/java/com/hbm/handler/EntityEffectHandler.java b/src/main/java/com/hbm/handler/EntityEffectHandler.java index d3d177c43..1bcec5d0e 100644 --- a/src/main/java/com/hbm/handler/EntityEffectHandler.java +++ b/src/main/java/com/hbm/handler/EntityEffectHandler.java @@ -12,6 +12,8 @@ import com.hbm.extprop.HbmLivingProps; import com.hbm.extprop.HbmPlayerProps; import com.hbm.extprop.HbmLivingProps.ContaminationEffect; import com.hbm.handler.HbmKeybinds.EnumKeybind; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.handler.radiation.ChunkRadiationManager; import com.hbm.interfaces.IArmorModDash; import com.hbm.items.armor.ArmorFSB; @@ -19,6 +21,7 @@ import com.hbm.lib.ModDamageSource; import com.hbm.main.MainRegistry; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.potion.HbmPotion; import com.hbm.packet.ExtPropPacket; import com.hbm.saveddata.AuxSavedData; import com.hbm.util.ArmorRegistry; @@ -48,42 +51,40 @@ import net.minecraft.world.World; public class EntityEffectHandler { public static void onUpdate(EntityLivingBase entity) { - + + if(entity.ticksExisted % 20 == 0) { + HbmLivingProps.setRadBuf(entity, HbmLivingProps.getRadEnv(entity)); + HbmLivingProps.setRadEnv(entity, 0); + } + + if(entity instanceof EntityPlayerMP) { + HbmLivingProps props = HbmLivingProps.getData(entity); + HbmPlayerProps pprps = HbmPlayerProps.getData((EntityPlayerMP) entity); + NBTTagCompound data = new NBTTagCompound(); + + if(pprps.shield < pprps.maxShield && entity.ticksExisted > pprps.lastDamage + 60) { + int tsd = entity.ticksExisted - (pprps.lastDamage + 60); + pprps.shield += Math.min(pprps.maxShield - pprps.shield, 0.005F * tsd); + } + + if(pprps.shield > pprps.maxShield) + pprps.shield = pprps.maxShield; + + props.saveNBTData(data); + pprps.saveNBTData(data); + PacketDispatcher.wrapper.sendTo(new ExtPropPacket(data), (EntityPlayerMP) entity); + } + if(!entity.worldObj.isRemote) { - - if(entity.ticksExisted % 20 == 0) { - HbmLivingProps.setRadBuf(entity, HbmLivingProps.getRadEnv(entity)); - HbmLivingProps.setRadEnv(entity, 0); - } - - - if(entity instanceof EntityPlayerMP) { - HbmLivingProps props = HbmLivingProps.getData(entity); - HbmPlayerProps pprps = HbmPlayerProps.getData((EntityPlayerMP) entity); - NBTTagCompound data = new NBTTagCompound(); - - if(pprps.shield < pprps.maxShield && entity.ticksExisted > pprps.lastDamage + 60) { - int tsd = entity.ticksExisted - (pprps.lastDamage + 60); - pprps.shield += Math.min(pprps.maxShield - pprps.shield, 0.005F * tsd); - } - - if(pprps.shield > pprps.maxShield) - pprps.shield = pprps.maxShield; - - props.saveNBTData(data); - pprps.saveNBTData(data); - PacketDispatcher.wrapper.sendTo(new ExtPropPacket(data), (EntityPlayerMP) entity); - } - int timer = HbmLivingProps.getTimer(entity); if(timer > 0) { HbmLivingProps.setTimer(entity, timer - 1); - + if(timer == 1) { ExplosionNukeSmall.explode(entity.worldObj, entity.posX, entity.posY, entity.posZ, ExplosionNukeSmall.PARAMS_MEDIUM); } } - + if(GeneralConfig.enable528 && entity instanceof EntityLivingBase && !entity.isImmuneToFire() && entity.worldObj.provider.isHellWorld) { entity.setFire(5); } @@ -95,6 +96,7 @@ public class EntityEffectHandler { handleDigamma(entity); handleLungDisease(entity); handleOil(entity); + handlePollution(entity); handleDashing(entity); handlePlinking(entity); @@ -365,8 +367,11 @@ public class EntityEffectHandler { double blacklung = Math.min(HbmLivingProps.getBlackLung(entity), HbmLivingProps.maxBlacklung); double asbestos = Math.min(HbmLivingProps.getAsbestos(entity), HbmLivingProps.maxAsbestos); + double soot = PollutionHandler.getPollution(entity.worldObj, (int) Math.floor(entity.posX), (int) Math.floor(entity.posY + entity.getEyeHeight()), (int) Math.floor(entity.posZ), PollutionType.SOOT); - boolean coughs = blacklung / HbmLivingProps.maxBlacklung > 0.25D || asbestos / HbmLivingProps.maxAsbestos > 0.25D; + if(ArmorRegistry.hasProtection(entity, 3, HazardClass.PARTICLE_COARSE)) soot = 0; + + boolean coughs = blacklung / HbmLivingProps.maxBlacklung > 0.25D || asbestos / HbmLivingProps.maxAsbestos > 0.25D || soot > 30; if(!coughs) return; @@ -377,11 +382,10 @@ public class EntityEffectHandler { double blacklungDelta = 1D - (blacklung / (double)HbmLivingProps.maxBlacklung); double asbestosDelta = 1D - (asbestos / (double)HbmLivingProps.maxAsbestos); + double sootDelta = 1D - Math.min(soot / 100, 1D); double total = 1 - (blacklungDelta * asbestosDelta); - int freq = Math.max((int) (1000 - 950 * total), 20); - World world = entity.worldObj; if(total > 0.75D) { @@ -392,6 +396,9 @@ public class EntityEffectHandler { entity.addPotionEffect(new PotionEffect(Potion.confusion.id, 100, 0)); } + total = 1 - (blacklungDelta * asbestosDelta * sootDelta); + int freq = Math.max((int) (1000 - 950 * total), 20); + if(world.getTotalWorldTime() % freq == entity.getEntityId() % freq) { world.playSoundEffect(entity.posX, entity.posY, entity.posZ, "hbm:player.cough", 1.0F, 1.0F); @@ -442,6 +449,41 @@ public class EntityEffectHandler { } } + private static void handlePollution(EntityLivingBase entity) { + + if(!ArmorRegistry.hasProtection(entity, 3, HazardClass.GAS_CORROSIVE) && entity.ticksExisted % 60 == 0) { + + float poison = PollutionHandler.getPollution(entity.worldObj, (int) Math.floor(entity.posX), (int) Math.floor(entity.posY + entity.getEyeHeight()), (int) Math.floor(entity.posZ), PollutionType.POISON); + + if(poison > 10) { + + if(poison < 25) { + entity.addPotionEffect(new PotionEffect(Potion.poison.id, 100, 0)); + } else if(poison < 50) { + entity.addPotionEffect(new PotionEffect(Potion.poison.id, 100, 2)); + } else { + entity.addPotionEffect(new PotionEffect(Potion.wither.id, 100, 2)); + } + } + } + + if(!ArmorRegistry.hasProtection(entity, 3, HazardClass.PARTICLE_FINE) && entity.ticksExisted % 60 == 0) { + + float poison = PollutionHandler.getPollution(entity.worldObj, (int) Math.floor(entity.posX), (int) Math.floor(entity.posY + entity.getEyeHeight()), (int) Math.floor(entity.posZ), PollutionType.HEAVYMETAL); + + if(poison > 25) { + + if(poison < 50) { + entity.addPotionEffect(new PotionEffect(HbmPotion.lead.id, 100, 0)); + } else if(poison < 75) { + entity.addPotionEffect(new PotionEffect(HbmPotion.lead.id, 100, 2)); + } else { + entity.addPotionEffect(new PotionEffect(HbmPotion.lead.id, 100, 2)); + } + } + } + } + private static void handleDashing(Entity entity) { //AAAAAAAAAAAAAAAAAAAAEEEEEEEEEEEEEEEEEEEE diff --git a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java index d62fd28e6..ebf943f95 100644 --- a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java +++ b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java @@ -169,6 +169,7 @@ public class PollutionHandler { float[] pollutionForNeightbors = new float[PollutionType.values().length]; int S = PollutionType.SOOT.ordinal(); int H = PollutionType.HEAVYMETAL.ordinal(); + int P = PollutionType.POISON.ordinal(); /* CALCULATION */ if(data.pollution[S] > 15) { @@ -178,7 +179,14 @@ public class PollutionHandler { data.pollution[S] *= 0.99F; } - data.pollution[H] *= 0.999F; + data.pollution[H] *= 0.9995F; + + if(data.pollution[P] > 10) { + pollutionForNeightbors[P] = data.pollution[P] * 0.025F; + data.pollution[P] *= 0.9F; + } else { + data.pollution[P] *= 0.995F; + } /* SPREADING */ //apply new data to self diff --git a/src/main/java/com/hbm/inventory/gui/GUICompressor.java b/src/main/java/com/hbm/inventory/gui/GUICompressor.java index e555886fa..66e72609b 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICompressor.java +++ b/src/main/java/com/hbm/inventory/gui/GUICompressor.java @@ -36,7 +36,7 @@ public class GUICompressor extends GuiInfoContainer { compressor.tanks[1].renderTankInfo(this, mouseX, mouseY, guiLeft + 107, guiTop + 18, 16, 52); this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 152, guiTop + 18, 16, 52, compressor.power, compressor.maxPower); - for(int j = 0; j < 5; j++) drawCustomInfoStat(mouseX, mouseY, guiLeft + 43 + j * 11, guiTop + 48, 8, 14, mouseX, mouseY, j + " PU -> " + (j + 1) + " PU"); + for(int j = 0; j < 5; j++) drawCustomInfoStat(mouseX, mouseY, guiLeft + 43 + j * 11, guiTop + 46, 8, 14, mouseX, mouseY, j + " PU -> " + (j + 1) + " PU"); } @Override diff --git a/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java b/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java index 40efef4ce..d4d263fa5 100644 --- a/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java +++ b/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java @@ -19,6 +19,8 @@ import com.hbm.explosion.vanillant.standard.BlockProcessorStandard; import com.hbm.explosion.vanillant.standard.EntityProcessorCross; import com.hbm.explosion.vanillant.standard.ExplosionEffectStandard; import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.inventory.fluid.Fluids; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; @@ -318,6 +320,7 @@ public class ItemAmmoArty extends Item { mist.setPosition(mop.hitVec.xCoord - vec.xCoord, mop.hitVec.yCoord - vec.yCoord - 3, mop.hitVec.zCoord - vec.zCoord); mist.setArea(15, 7.5F); shell.worldObj.spawnEntityInWorld(mist); + PollutionHandler.incrementPollution(shell.worldObj, mop.blockX, mop.blockY, mop.blockZ, PollutionType.HEAVYMETAL, 5F); } }; this.itemTypes[PHOSGENE] = new ArtilleryShell("ammo_arty_phosgene", SpentCasing.COLOR_CASE_16INCH_NUKE) { @@ -326,18 +329,20 @@ public class ItemAmmoArty extends Item { Vec3 vec = Vec3.createVectorHelper(shell.motionX, shell.motionY, shell.motionZ).normalize(); shell.worldObj.createExplosion(shell, mop.hitVec.xCoord - vec.xCoord, mop.hitVec.yCoord - vec.yCoord, mop.hitVec.zCoord - vec.zCoord, 5F, false); for(int i = 0; i < 3; i++) { - EntityMist mist = new EntityMist(shell.worldObj); - mist.setType(Fluids.PHOSGENE); - double x = mop.hitVec.xCoord - vec.xCoord; - double z = mop.hitVec.zCoord - vec.zCoord; - if(i > 0) { - x += rand.nextGaussian() * 15; - z += rand.nextGaussian() * 15; + EntityMist mist = new EntityMist(shell.worldObj); + mist.setType(Fluids.PHOSGENE); + double x = mop.hitVec.xCoord - vec.xCoord; + double z = mop.hitVec.zCoord - vec.zCoord; + if(i > 0) { + x += rand.nextGaussian() * 15; + z += rand.nextGaussian() * 15; + } + mist.setPosition(x, mop.hitVec.yCoord - vec.yCoord - 5, z); + mist.setArea(15, 10); + shell.worldObj.spawnEntityInWorld(mist); } - mist.setPosition(x, mop.hitVec.yCoord - vec.yCoord - 5, z); - mist.setArea(15, 10); - shell.worldObj.spawnEntityInWorld(mist); - } + PollutionHandler.incrementPollution(shell.worldObj, mop.blockX, mop.blockY, mop.blockZ, PollutionType.HEAVYMETAL, 10F); + PollutionHandler.incrementPollution(shell.worldObj, mop.blockX, mop.blockY, mop.blockZ, PollutionType.POISON, 15F); } }; this.itemTypes[MUSTARD] = new ArtilleryShell("ammo_arty_mustard_gas", SpentCasing.COLOR_CASE_16INCH_NUKE) { @@ -358,6 +363,8 @@ public class ItemAmmoArty extends Item { mist.setArea(20, 10); shell.worldObj.spawnEntityInWorld(mist); } + PollutionHandler.incrementPollution(shell.worldObj, mop.blockX, mop.blockY, mop.blockZ, PollutionType.HEAVYMETAL, 15F); + PollutionHandler.incrementPollution(shell.worldObj, mop.blockX, mop.blockY, mop.blockZ, PollutionType.POISON, 30F); } }; diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index 69a28216f..800a62fbb 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -41,6 +41,8 @@ import com.hbm.hazard.HazardSystem; import com.hbm.interfaces.IBomb; import com.hbm.handler.HTTPHandler; import com.hbm.handler.HbmKeybinds.EnumKeybind; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.handler.SiegeOrchestrator; import com.hbm.items.IEquipReceiver; import com.hbm.items.ModItems; @@ -65,12 +67,14 @@ import com.hbm.potion.HbmPotion; import com.hbm.saveddata.AuxSavedData; import com.hbm.tileentity.network.RTTYSystem; import com.hbm.util.AchievementHandler; +import com.hbm.util.ArmorRegistry; import com.hbm.util.ArmorUtil; import com.hbm.util.ContaminationUtil; import com.hbm.util.EnchantmentUtil; import com.hbm.util.EntityDamageUtil; import com.hbm.util.EnumUtil; import com.hbm.util.InventoryUtil; +import com.hbm.util.ArmorRegistry.HazardClass; import com.hbm.world.generator.TimedGenerator; import cpw.mods.fml.common.eventhandler.EventPriority; @@ -1149,10 +1153,12 @@ public class ModEventHandler { @SubscribeEvent public void onBlockBreak(BreakEvent event) { - if(!(event.getPlayer() instanceof EntityPlayerMP)) + EntityPlayer player = event.getPlayer(); + + if(!(player instanceof EntityPlayerMP)) return; - if(event.block == ModBlocks.stone_gneiss && !((EntityPlayerMP) event.getPlayer()).func_147099_x().hasAchievementUnlocked(MainRegistry.achStratum)) { + if(event.block == ModBlocks.stone_gneiss && !((EntityPlayerMP) player).func_147099_x().hasAchievementUnlocked(MainRegistry.achStratum)) { event.getPlayer().triggerAchievement(MainRegistry.achStratum); event.setExpToDrop(500); } @@ -1169,6 +1175,21 @@ public class ModEventHandler { event.world.setBlock(x, y, z, ModBlocks.gas_coal); } } + + if(!ArmorRegistry.hasProtection(player, 3, HazardClass.PARTICLE_FINE)) { + + float metal = PollutionHandler.getPollution(player.worldObj, event.x, event.y, event.z, PollutionType.HEAVYMETAL); + + if(metal < 5) return; + + if(metal < 10) { + player.addPotionEffect(new PotionEffect(HbmPotion.lead.id, 100, 0)); + } else if(metal < 25) { + player.addPotionEffect(new PotionEffect(HbmPotion.lead.id, 100, 1)); + } else { + player.addPotionEffect(new PotionEffect(HbmPotion.lead.id, 100, 2)); + } + } } private static final String hash = "41eb77f138ce350932e33b6b26b233df9aad0c0c80c6a49cb9a54ddd8fae3f83"; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java index a01fd1347..1527a9e17 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java @@ -142,6 +142,8 @@ public class TileEntityMachineCombustionEngine extends TileEntityMachineBase imp audio = rebootAudio(audio); } + audio.keepAlive(); + } else { if(audio != null) { @@ -165,7 +167,7 @@ public class TileEntityMachineCombustionEngine extends TileEntityMachineBase imp } public AudioWrapper createAudioLoop() { - return MainRegistry.proxy.getLoopedSound("hbm:block.igeneratorOperate", xCoord, yCoord, zCoord, 1.0F, 10F, 1.0F); + return MainRegistry.proxy.getLoopedSound("hbm:block.igeneratorOperate", xCoord, yCoord, zCoord, 1.0F, 10F, 1.0F, 20); } @Override From 296af599dc9ec697a7bfb5b41b8d82446cdfda77 Mon Sep 17 00:00:00 2001 From: Vaern Date: Sat, 24 Jun 2023 23:55:24 -0700 Subject: [PATCH 157/432] lore --- src/main/resources/assets/hbm/lang/en_US.lang | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 6bd3ff4e6..6b313960b 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -386,6 +386,51 @@ book_lore.memo_schrab_nuke.page.0=Our most recent investigation led us to the ef book_lore.memo_schrab_nuke.page.1=Only our cyclotron has actually created saralloy previously. However, at our underground shot at Everwerpen, miniscule traces of saralloy were found in uranium ore at the site. All pure, metallic uranium nearby had fissioned. book_lore.memo_schrab_nuke.page.2=As such, given enough uranium ore concentrated around an explosive, or perhaps even a dirty bomb rich in waste containing fissionable material, one could hypothetically create enough saralloy to collect manually. +book_lore.bf_bomb_1.name=Private Notes +book_lore.bf_bomb_1.author=M. Porter +book_lore.bf_bomb_1.page.0=Took long enough, but my transfer was accepted. Those new grads were already hard to handle, let alone all the unprofessionalism of the lead. $ Not all good news - this lab was withholding further detail, and I didn't need more chaos over another magic new discovery. +book_lore.bf_bomb_1.page.1=Of course that was the case. The alumni had their doubts (surprising, considering how bright-eyed they were), but my only... competent? colleague actually got his hands on the primer hand-out. Must have more connections than I thought. His memo is discouraging: +book_lore.bf_bomb_1.page.2=apparently, there's yet ANOTHER miracle material that they prodded out of some concoction of antimatter and a fringe isotope. The brochure calls it "SWIRLMAT" - hell if I know - and that's it. No wonder they wanted a theoretical physicist, +book_lore.bf_bomb_1.page.3=they don't even know what it is yet. Either way, practically any job would be better than my old position, so I can't complain much about sketchiness. + +book_lore.bf_bomb_2.name=Private Notes +book_lore.bf_bomb_2.author=M. Porter +book_lore.bf_bomb_2.page.0=Despite the absence of information in that primer, I still had some hope they knew a bit more. Not at all. Every other senior researcher has a blind faith in this material; their propositions were practically biblical. I was near speechless. +book_lore.bf_bomb_2.page.1=And yet I can't even blame them. Swirlmat makes no goddamn sense - it is completely unlike any other substance I've seen before. Its appearance was near frightening, a literal mass of swirling colors, with darker lines permeating through the neon green surface. +book_lore.bf_bomb_2.page.2=Even worse, this thing is an energy source. The existence of our sample is a violation of ALARA: the lab was vacated when it arrived, and the only person brave enough (one Dr. Melfyn) donned a level A hazmat just to carry it 20 meters. +book_lore.bf_bomb_2.page.3=The empirical data isn't better, as we're breaking the first law of thermodynamics with how much energy it radiates. Being anywhere near that thing - even behind a meter of lead - was terrifying. We sprinted out of the chamber upon conclusion of the spectroscopy +book_lore.bf_bomb_2.page.4=and we got nothing new out of it. Those idiots in the science team, god, did not even waver after all that. Sitting through those "discussions" was horrible; that quack of a head researcher even rumored that the test ban would be lifted, that we could be +book_lore.bf_bomb_2.page.5=building bombs out of the shit in the coming weeks, who in their right mind would work on that? Hell, the one sane assistant (an Andrew) nicknamed it "balefire" - because burning to death on a funeral pyre would be painless by comparison. + +book_lore.bf_bomb_3.name=Private Notes +book_lore.bf_bomb_3.author=M. Porter +book_lore.bf_bomb_3.page.0=The team and I have made some breakthroughs. Emphasis on the separation - isolating myself from the more devout has made working there so much more bearable. While we still have no idea about the actual properties of balefire (it's difficult to analyze +book_lore.bf_bomb_3.page.1=a sample that fries your equipment) its interactions with other matter has proved fruitful. Notably, they synthesized a "gaseous" form: Andrew, of all people, informed me that it was really a colloid consisting of microscopic balefire particles, suspended in some +book_lore.bf_bomb_3.page.2=noble gas. Each particle is enveloped by a positively-charged 'bubble' of ionized gas, preventing it from settling. Who could've guessed that fatal gamma radiation had a benefit? Not me. $ I'm choosing not to think about how they transformed the sample into +book_lore.bf_bomb_3.page.3=particulate, but I can't understate the utility of this gaseous balefire - it's made it much safer to experiment on. $ Speaking of safety, the head researcher (in an act of callous disregard) made a discovery that also nearly took his head off. +book_lore.bf_bomb_3.page.4=He decided to get "dirty" by letting a cell of our new colloid interact directly with some very expensive antimatter: the resulting explosion turned the table it was on into a piece of radiation-bleached slag, carved a near-perfect hemisphere through +book_lore.bf_bomb_3.page.5=the top, and gave the head a healthy dose of ARS. I guess we know how to make it explode now, but god, some people... + +book_lore.bf_bomb_4.name=Private Notes +book_lore.bf_bomb_4.author=M. Porter +book_lore.bf_bomb_4.page.0=I just can't escape my old work. They're the only place that's hiring despite all this godforsaken turmoil, but I'm not going back into that hole. $ They only tempted me because I need out, fast. Remember that atmospheric testing treaty we withdrew from a week ago? +book_lore.bf_bomb_4.page.1=Well, the dipshit in charge of our lab got something right for once. The denunciation came with a flurry of new "scientists" joining, just so we could weaponize balefire. The lack of critical thought here is honestly baffling - bless him, Andrew even jumped ship the +book_lore.bf_bomb_4.page.2=second the first fucking BOMB DESIGN was drafted. That ass Melfyn looked so happy with his little mechanism - perhaps he got brainworms from carrying that sample? - which involved some stupid shit using the solidified, base balefire and an HV +book_lore.bf_bomb_4.page.3=battery. $ Apparently, the form matters for energy output and activation method or whatever, kind of like uranium versus plutonium in regular nukes, but the end result is an initial shock starting the explosion. I find it funny, hilarious even. +book_lore.bf_bomb_4.page.4=All of them place such emphasis on the activation; they ignore the actual mechanism of it all because they don't have a single clue how it works! It may as well be magic at this point, and yet they're still trying to twist and bend it - just for more weapons of war. + +book_lore.bf_bomb_5.name=Private Notes +book_lore.bf_bomb_5.author=M. Porter +book_lore.bf_bomb_5.page.0=I just... can't come to grips with it, even days after. It was a foregone conclusion, really, with how flippant the science team was with safety. $ $ Doctor Melfyn, M.S., is gone. Dead, maybe. I saw it happen before my own eyes, in their test chamber. +book_lore.bf_bomb_5.page.1=We had just gotten another batch of pure balefire, and he had recovered electrical equipment and an energy source to test his proposal. I don't know what caused it (was the power on? had he begun too soon?), but it seemingly progressed in agonizingly slow motion, +book_lore.bf_bomb_5.page.2=as the green-tinted light consumed the table, the battery, and Dr. Melfyn standing only a meter away. Even when the table had degraded into a pool of broiling metal on the floor, he did not burn. I don't know what I saw in his eyes... $ $ Terror, or awe +book_lore.bf_bomb_5.page.3=over his continued survival, maybe? Whatever our "miracle" material was, it didn't care. With a bright blaze of light, he disappeared in the next moment. Was he evaporated? incinerated? annihilated? sent to fucking hell itself, I don't know anymore! +book_lore.bf_bomb_5.page.4=The head researcher sickens me. Said we could be more careful, keep trucking, whatever other morale-improving filth he spewed. That dipshit won't ever figure out that playing with fire will get you burned. $ I didn't bother +book_lore.bf_bomb_5.page.5=resigning, I just grabbed my shit and ran for the hills. Not like it matters, anyway; considering the lack of calls, and the mushroom cloud that rose over my (now former) workplace, they've either blown everything up or entered full-on military jurisdiction. +book_lore.bf_bomb_5.page.6=There's a vital distinction to be made between dissection and VIVISECTION, one which was clearly lost on them. They can dissect metal or atoms as much as they like, but tearing into, vivisecting reality itself is only going to end in more Dr. Melfyns. Who knows! +book_lore.bf_bomb_5.page.7=The government wants to put this shit into bombs after all, maybe we'll see a couple more wars, couple more million resigned to a fate worse than death. They can't hide this forever. $ $ I don't care. Not anymore. Please, god, let me go back +book_lore.bf_bomb_5.page.8=to actual science. $ $ Goddamnit, Mae, get ahold of yourself... + cannery.f1=[ Press F1 for help ] cannery.centrifuge=Gas Centrifuge From ff3afbf0281a6931f7525e77e587b751c4c956a8 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 25 Jun 2023 19:10:29 +0200 Subject: [PATCH 158/432] ow --- gradle.properties | 2 +- src/main/java/com/hbm/blocks/ModBlocks.java | 2 +- .../java/com/hbm/blocks/rail/IRailNTM.java | 6 +- .../hbm/blocks/rail/RailStandardBuffer.java | 90 +- .../hbm/entity/train/EntityRailCarBase.java | 62 +- .../inventory/recipes/AssemblerRecipes.java | 8 + .../java/com/hbm/items/special/ItemTrain.java | 6 +- src/main/java/com/hbm/lib/RefStrings.java | 2 +- src/main/java/com/hbm/main/ClientProxy.java | 1 + .../java/com/hbm/main/CraftingManager.java | 2 + .../com/hbm/main/ModEventHandlerClient.java | 9 +- .../java/com/hbm/main/ResourceManager.java | 1 + .../block/RenderStandardBufferRail.java | 77 ++ src/main/resources/assets/hbm/lang/de_DE.lang | 1 + src/main/resources/assets/hbm/lang/en_US.lang | 1 + .../models/blocks/rail_standard_buffer.obj | 1143 +++++++++++++++++ .../textures/blocks/rail_standard_buffer.png | Bin 0 -> 890 bytes 17 files changed, 1380 insertions(+), 33 deletions(-) create mode 100644 src/main/java/com/hbm/render/block/RenderStandardBufferRail.java create mode 100644 src/main/resources/assets/hbm/models/blocks/rail_standard_buffer.obj create mode 100644 src/main/resources/assets/hbm/textures/blocks/rail_standard_buffer.png diff --git a/gradle.properties b/gradle.properties index 2f43c1817..fa397e559 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4627 +mod_build_number=4641 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index ea756421d..da5c00298 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -2161,7 +2161,7 @@ public class ModBlocks { rail_large_straight = new RailStandardStraight().setBlockName("rail_large_straight").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); rail_large_curve = new RailStandardCurve().setBlockName("rail_large_curve").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); rail_large_ramp = new RailStandardRamp().setBlockName("rail_large_ramp").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_straight"); - rail_large_buffer = new RailStandardBuffer().setBlockName("rail_large_buffer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); + rail_large_buffer = new RailStandardBuffer().setBlockName("rail_large_buffer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rail_standard_buffer"); crate = new BlockCrate(Material.wood).setBlockName("crate").setStepSound(Block.soundTypeWood).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.consumableTab).setBlockTextureName(RefStrings.MODID + ":crate"); crate_weapon = new BlockCrate(Material.wood).setBlockName("crate_weapon").setStepSound(Block.soundTypeWood).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.consumableTab).setBlockTextureName(RefStrings.MODID + ":crate_weapon"); diff --git a/src/main/java/com/hbm/blocks/rail/IRailNTM.java b/src/main/java/com/hbm/blocks/rail/IRailNTM.java index 782dc15e6..120c3b586 100644 --- a/src/main/java/com/hbm/blocks/rail/IRailNTM.java +++ b/src/main/java/com/hbm/blocks/rail/IRailNTM.java @@ -45,11 +45,13 @@ public interface IRailNTM { /** A wrapper for additional information like stopping on rails and what type of check we're doing */ public static class MoveContext { public RailCheckType type; + public double collisionBogieDistance; public boolean collision = false; //if a buffer stop or similar applies - public double overshoot; //how much of the travel distance was cut shor + public double overshoot; //how much of the travel distance was cut short - public MoveContext(RailCheckType type) { + public MoveContext(RailCheckType type, double collisionBogieDistance) { this.type = type; + this.collisionBogieDistance = collisionBogieDistance; } } diff --git a/src/main/java/com/hbm/blocks/rail/RailStandardBuffer.java b/src/main/java/com/hbm/blocks/rail/RailStandardBuffer.java index 52bee4310..bb503060a 100644 --- a/src/main/java/com/hbm/blocks/rail/RailStandardBuffer.java +++ b/src/main/java/com/hbm/blocks/rail/RailStandardBuffer.java @@ -1,12 +1,17 @@ package com.hbm.blocks.rail; import com.hbm.blocks.BlockDummyable; +import com.hbm.lib.Library; +import com.hbm.util.fauxpointtwelve.BlockPos; +import cpw.mods.fml.client.registry.RenderingRegistry; import net.minecraft.block.material.Material; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; public class RailStandardBuffer extends BlockDummyable implements IRailNTM { @@ -19,9 +24,11 @@ public class RailStandardBuffer extends BlockDummyable implements IRailNTM { return null; } + public static int renderID = RenderingRegistry.getNextAvailableRenderId(); + @Override public int getRenderType() { - return 0; + return renderID; } @Override @@ -38,16 +45,89 @@ public class RailStandardBuffer extends BlockDummyable implements IRailNTM { public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { this.setBlockBounds(0F, 0F, 0F, 1F, 0.125F, 1F); } - - // TBI + @Override public Vec3 getSnappingPos(World world, int x, int y, int z, double trainX, double trainY, double trainZ) { - return null; + return snapAndMove(world, x, y, z, trainX, trainY, trainZ, 0, 0, 0, 0, new RailContext(), new MoveContext(RailCheckType.OTHER, 0)); } @Override public Vec3 getTravelLocation(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info, MoveContext context) { - return null; + return snapAndMove(world, x, y, z, trainX, trainY, trainZ, motionX, motionY, motionZ, speed, info, context); + } + + /* Very simple function determining the snapping position and adding the motion value to it, if desired. */ + public Vec3 snapAndMove(World world, int x, int y, int z, double trainX, double trainY, double trainZ, double motionX, double motionY, double motionZ, double speed, RailContext info, MoveContext context) { + int[] pos = this.findCore(world, x, y, z); + if(pos == null) return Vec3.createVectorHelper(trainX, trainY, trainZ); + int cX = pos[0]; + int cY = pos[1]; + int cZ = pos[2]; + int meta = world.getBlockMetadata(cX, cY, cZ) - this.offset; + ForgeDirection dir = ForgeDirection.getOrientation(meta); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + Vec3 vec = Vec3.createVectorHelper(trainX, trainY, trainZ); + + if(speed == 0) { + //return vec; + } + + if(dir == Library.POS_X || dir == Library.NEG_X) { + double targetX = trainX; + if(motionX > 0) { + targetX += speed; + info.yaw(-90F); + } else { + targetX -= speed; + info.yaw(90F); + } + vec.xCoord = MathHelper.clamp_double(targetX, cX - 2, cX + 3); + vec.yCoord = y + 0.1875; + vec.zCoord = cZ + 0.5 + rot.offsetZ * 0.5; + + double nX = (dir == Library.POS_X ? -1 - context.collisionBogieDistance : 2); + double pX = (dir == Library.NEG_X ? 0 - context.collisionBogieDistance : 3); + double buffer = MathHelper.clamp_double(targetX, cX - nX, cX + pX); + + if(buffer != vec.xCoord) { + context.collision = true; + context.overshoot = Math.abs(buffer - vec.xCoord); + vec.xCoord = buffer; + return vec; + } + + info.dist(Math.abs(targetX - vec.xCoord) * Math.signum(speed)); + info.pos(new BlockPos(cX + (motionX * speed > 0 ? 3 : -3), y, cZ)); + } else { + double targetZ = trainZ; + if(motionZ > 0) { + targetZ += speed; + info.yaw(0F); + } else { + targetZ -= speed; + info.yaw(180F); + } + vec.xCoord = cX + 0.5 + rot.offsetX * 0.5; + vec.yCoord = y + 0.1875; + vec.zCoord = MathHelper.clamp_double(targetZ, cZ - 2,cZ + 3); + + double nZ = (dir == Library.POS_Z ? -1 - context.collisionBogieDistance : 2); + double pZ = (dir == Library.NEG_Z ? 0 - context.collisionBogieDistance : 3); + double buffer = MathHelper.clamp_double(targetZ, cZ - nZ, cZ + pZ); + + if(buffer != vec.xCoord) { + context.collision = true; + context.overshoot = Math.abs(buffer - vec.zCoord); + vec.zCoord = buffer; + return vec; + } + + info.dist(Math.abs(targetZ - vec.zCoord) * Math.signum(speed)); + info.pos(new BlockPos(cX, y, cZ + (motionZ * speed > 0 ? 3 : -3))); + } + + return vec; } @Override diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java index 37f77f79f..f4a301914 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarBase.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarBase.java @@ -14,8 +14,7 @@ import com.hbm.blocks.rail.IRailNTM.TrackGauge; import com.hbm.items.ModItems; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.PlayerInformPacket; -import com.hbm.util.ChatBuilder; +import com.hbm.util.Tuple.Pair; import com.hbm.util.fauxpointtwelve.BlockPos; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; @@ -27,7 +26,6 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.ChatComponentText; import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.World; @@ -166,8 +164,8 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { } BlockPos anchor = this.getCurrentAnchorPos(); - Vec3 frontPos = getRelPosAlongRail(anchor, this.getLengthSpan(), new MoveContext(RailCheckType.FRONT)); - Vec3 backPos = getRelPosAlongRail(anchor, -this.getLengthSpan(), new MoveContext(RailCheckType.BACK)); + Vec3 frontPos = getRelPosAlongRail(anchor, this.getLengthSpan(), new MoveContext(RailCheckType.FRONT, this.getCollisionSpan() - this.getLengthSpan())); + Vec3 backPos = getRelPosAlongRail(anchor, -this.getLengthSpan(), new MoveContext(RailCheckType.BACK, this.getCollisionSpan() - this.getLengthSpan())); this.lastRenderX = this.renderX; this.lastRenderY = this.renderY; @@ -325,7 +323,7 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { EntityRailCarBase train = ltu.trains[0]; BlockPos anchor = new BlockPos(train.posX, train.posY, train.posZ); - Vec3 newPos = train.getRelPosAlongRail(anchor, speed, new MoveContext(RailCheckType.CORE)); + Vec3 newPos = train.getRelPosAlongRail(anchor, speed, new MoveContext(RailCheckType.CORE, 0)); if(newPos == null) { train.derail(); ltu.dissolveTrain(); @@ -333,8 +331,8 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { } train.setPosition(newPos.xCoord, newPos.yCoord, newPos.zCoord); anchor = train.getCurrentAnchorPos(); - Vec3 frontPos = train.getRelPosAlongRail(anchor, train.getLengthSpan(), new MoveContext(RailCheckType.FRONT)); - Vec3 backPos = train.getRelPosAlongRail(anchor, -train.getLengthSpan(), new MoveContext(RailCheckType.BACK)); + Vec3 frontPos = train.getRelPosAlongRail(anchor, train.getLengthSpan(), new MoveContext(RailCheckType.FRONT, train.getCollisionSpan() - train.getLengthSpan())); + Vec3 backPos = train.getRelPosAlongRail(anchor, -train.getLengthSpan(), new MoveContext(RailCheckType.BACK, train.getCollisionSpan() - train.getLengthSpan())); if(frontPos == null || backPos == null) { train.derail(); @@ -634,11 +632,11 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { BlockPos anchor = new BlockPos(moving.posX, moving.posY, moving.posZ); Vec3 trainPos = Vec3.createVectorHelper(moving.posX, moving.posY, moving.posZ); float yaw = EntityRailCarBase.generateYaw(prevLoc, nextLoc); - Vec3 newPos = EntityRailCarBase.getRelPosAlongRail(anchor, len, moving.getGauge(), moving.worldObj, trainPos, yaw, new MoveContext(RailCheckType.CORE)); + Vec3 newPos = EntityRailCarBase.getRelPosAlongRail(anchor, len, moving.getGauge(), moving.worldObj, trainPos, yaw, new MoveContext(RailCheckType.CORE, 0)); moving.setPosition(newPos.xCoord, newPos.yCoord, newPos.zCoord); anchor = moving.getCurrentAnchorPos(); //reset origin to new position - Vec3 frontPos = moving.getRelPosAlongRail(anchor, moving.getLengthSpan(), new MoveContext(RailCheckType.FRONT)); - Vec3 backPos = moving.getRelPosAlongRail(anchor, -moving.getLengthSpan(), new MoveContext(RailCheckType.BACK)); + Vec3 frontPos = moving.getRelPosAlongRail(anchor, moving.getLengthSpan(), new MoveContext(RailCheckType.FRONT, moving.getCollisionSpan() - moving.getLengthSpan())); + Vec3 backPos = moving.getRelPosAlongRail(anchor, -moving.getLengthSpan(), new MoveContext(RailCheckType.BACK, moving.getCollisionSpan() - moving.getLengthSpan())); if(frontPos == null || backPos == null) { moving.derail(); @@ -679,7 +677,7 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { for(EntityRailCarBase train : this.trains) { BlockPos anchor = train.getCurrentAnchorPos(); - Vec3 corePos = train.getRelPosAlongRail(anchor, totalSpeed, new MoveContext(RailCheckType.CORE)); + Vec3 corePos = train.getRelPosAlongRail(anchor, totalSpeed, new MoveContext(RailCheckType.CORE, 0)); if(corePos == null) { train.derail(); @@ -688,8 +686,8 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { } else { train.setPosition(corePos.xCoord, corePos.yCoord, corePos.zCoord); anchor = train.getCurrentAnchorPos(); //reset origin to new position - Vec3 frontPos = train.getRelPosAlongRail(anchor, train.getLengthSpan(), new MoveContext(RailCheckType.FRONT)); - Vec3 backPos = train.getRelPosAlongRail(anchor, -train.getLengthSpan(), new MoveContext(RailCheckType.BACK)); + Vec3 frontPos = train.getRelPosAlongRail(anchor, train.getLengthSpan(), new MoveContext(RailCheckType.FRONT, 0)); + Vec3 backPos = train.getRelPosAlongRail(anchor, -train.getLengthSpan(), new MoveContext(RailCheckType.BACK, 0)); if(frontPos == null || backPos == null) { train.derail(); @@ -763,16 +761,17 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { boolean inReverse = first.getCouplingFrom(null) == current.getCouplingFrom(null); int sigNum = inReverse ? 1 : -1; BlockPos anchor = current.getCurrentAnchorPos(); - Vec3 corePos = current.getRelPosAlongRail(anchor, speed * sigNum, new MoveContext(RailCheckType.CORE)); - if(corePos == null) { + /*Vec3 frontPos = current.getRelPosAlongRail(anchor, current.getLengthSpan(), new MoveContext(RailCheckType.FRONT)); + + if(frontPos == null) { current.derail(); this.dissolveTrain(); return; } else { - current.setPosition(corePos.xCoord, corePos.yCoord, corePos.zCoord); anchor = current.getCurrentAnchorPos(); //reset origin to new position - Vec3 frontPos = current.getRelPosAlongRail(anchor, current.getLengthSpan(), new MoveContext(RailCheckType.FRONT)); + Vec3 corePos = current.getRelPosAlongRail(anchor, speed * sigNum, new MoveContext(RailCheckType.CORE)); + current.setPosition(corePos.xCoord, corePos.yCoord, corePos.zCoord); Vec3 backPos = current.getRelPosAlongRail(anchor, -current.getLengthSpan(), new MoveContext(RailCheckType.BACK)); if(frontPos == null || backPos == null) { @@ -782,6 +781,33 @@ public abstract class EntityRailCarBase extends Entity implements ILookOverlay { } else { setRenderPos(current, frontPos, backPos); } + }*/ + + Pair[] checks; + double dist = speed * sigNum; + + if(forward) { + checks = new Pair[] { + new Pair(dist + current.getLengthSpan(), RailCheckType.FRONT), + new Pair(dist, RailCheckType.CORE), + new Pair(dist - current.getLengthSpan(), RailCheckType.BACK) + }; + } else { + checks = new Pair[] { + new Pair(dist - current.getLengthSpan(), RailCheckType.BACK), + new Pair(dist, RailCheckType.CORE), + new Pair(dist + current.getLengthSpan(), RailCheckType.FRONT) + }; + } + + double brake = 0; + + for(Pair check : checks) { + MoveContext ctx = new MoveContext(check.getValue(), current.getCollisionSpan() - current.getLengthSpan()); + current.getRelPosAlongRail(anchor, check.getKey() - (brake * Math.signum(check.getKey())), ctx); + if(ctx.collision) { + brake += ctx.overshoot; + } } } else { diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 077b17bdc..db8e456d6 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -866,6 +866,14 @@ public class AssemblerRecipes { new OreDictStack(OreDictManager.getReflector(), 12), new ComparableStack(ModItems.circuit_copper, 12) }, 100); + makeRecipe(new ComparableStack(ModItems.ammo_himars, 1, ItemAmmoHIMARS.SMALL_LAVA), new AStack[] { + new OreDictStack(STEEL.plate(), 24), + new OreDictStack(ANY_HARDPLASTIC.ingot(), 12), + new ComparableStack(ModItems.rocket_fuel, 32), + new ComparableStack(ModItems.ball_tatb, 4), + new OreDictStack(VOLCANIC.gem(), 1), + new ComparableStack(ModItems.circuit_copper, 6) + }, 100); makeRecipe(new ComparableStack(ModItems.ammo_himars, 1, ItemAmmoHIMARS.LARGE), new AStack[] { new OreDictStack(STEEL.plate(), 24), new OreDictStack(ANY_HARDPLASTIC.ingot(), 12), diff --git a/src/main/java/com/hbm/items/special/ItemTrain.java b/src/main/java/com/hbm/items/special/ItemTrain.java index 25dc46ccf..a99df9079 100644 --- a/src/main/java/com/hbm/items/special/ItemTrain.java +++ b/src/main/java/com/hbm/items/special/ItemTrain.java @@ -80,10 +80,10 @@ public class ItemTrain extends ItemEnumMulti { train.setPosition(x + fx, y + fy, z + fz); BlockPos anchor = train.getCurrentAnchorPos(); train.rotationYaw = entity.rotationYaw; - Vec3 corePos = train.getRelPosAlongRail(anchor, 0, new MoveContext(RailCheckType.CORE)); + Vec3 corePos = train.getRelPosAlongRail(anchor, 0, new MoveContext(RailCheckType.CORE, 0)); train.setPosition(corePos.xCoord, corePos.yCoord, corePos.zCoord); - Vec3 frontPos = train.getRelPosAlongRail(anchor, train.getLengthSpan(), new MoveContext(RailCheckType.FRONT)); - Vec3 backPos = train.getRelPosAlongRail(anchor, -train.getLengthSpan(), new MoveContext(RailCheckType.BACK)); + Vec3 frontPos = train.getRelPosAlongRail(anchor, train.getLengthSpan(), new MoveContext(RailCheckType.FRONT, train.getCollisionSpan() - train.getLengthSpan())); + Vec3 backPos = train.getRelPosAlongRail(anchor, -train.getLengthSpan(), new MoveContext(RailCheckType.BACK, train.getCollisionSpan() - train.getLengthSpan())); train.rotationYaw = train.generateYaw(frontPos, backPos); world.spawnEntityInWorld(train); } diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 4e3d4bdfc..bfb6dcb7a 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4627)"; + public static final String VERSION = "1.0.27 BETA (4641)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index da86b7611..5852d92cd 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -801,6 +801,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerBlockHandler(new RenderStandardStraightRail()); RenderingRegistry.registerBlockHandler(new RenderStandardCurveRail()); RenderingRegistry.registerBlockHandler(new RenderStandardRampRail()); + RenderingRegistry.registerBlockHandler(new RenderStandardBufferRail()); RenderingRegistry.registerBlockHandler(new RenderBlockRotated(ModBlocks.charge_dynamite.getRenderType(), ResourceManager.charge_dynamite)); RenderingRegistry.registerBlockHandler(new RenderBlockRotated(ModBlocks.charge_c4.getRenderType(), ResourceManager.charge_c4)); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 29b6606ed..c18a730e0 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -996,6 +996,8 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModItems.upgrade_5g), new Object[] { ModItems.upgrade_template, ModItems.gem_alexandrite }); + addShapelessAuto(new ItemStack(ModItems.bdcl), new Object[] { ANY_TAR.any(), Fluids.WATER.getDict(1_000), KEY_WHITE }); + if(GeneralConfig.enableLBSM && GeneralConfig.enableLBSMSimpleCrafting) { addShapelessAuto(new ItemStack(ModItems.cordite, 3), new Object[] { ModItems.ballistite, Items.gunpowder, new ItemStack(Blocks.wool, 1, OreDictionary.WILDCARD_VALUE) }); addShapelessAuto(new ItemStack(ModItems.ingot_semtex, 3), new Object[] { Items.slime_ball, Blocks.tnt, KNO.dust() }); diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 019a369cc..9e3463f96 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -13,6 +13,10 @@ import org.lwjgl.opengl.GL11; import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockAshes; +import com.hbm.blocks.rail.IRailNTM; +import com.hbm.blocks.rail.IRailNTM.MoveContext; +import com.hbm.blocks.rail.IRailNTM.RailCheckType; +import com.hbm.blocks.rail.IRailNTM.RailContext; import com.hbm.config.GeneralConfig; import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.mob.EntityHunterChopper; @@ -66,6 +70,7 @@ import com.hbm.tileentity.machine.TileEntityNukeFurnace; import com.hbm.util.I18nUtil; import com.hbm.util.ItemStackUtil; import com.hbm.util.LoggingUtil; +import com.hbm.util.fauxpointtwelve.BlockPos; import com.hbm.wiaj.GuiWorldInAJar; import com.hbm.wiaj.cannery.CanneryBase; import com.hbm.wiaj.cannery.Jars; @@ -259,12 +264,12 @@ public class ModEventHandlerClient { boolean flip = distanceToCover < 0; if(it == 1) { - Vec3 snap = next = rail.getTravelLocation(world, x, y, z, next.xCoord, next.yCoord, next.zCoord, rot.xCoord, rot.yCoord, rot.zCoord, 0, info, new MoveContext(RailCheckType.CORE)); + Vec3 snap = next = rail.getTravelLocation(world, x, y, z, next.xCoord, next.yCoord, next.zCoord, rot.xCoord, rot.yCoord, rot.zCoord, 0, info, new MoveContext(RailCheckType.CORE, 0)); if(i == 0) world.spawnParticle("reddust", snap.xCoord, snap.yCoord + 0.25, snap.zCoord, 0.1, 1, 0.1); } Vec3 prev = next; - next = rail.getTravelLocation(world, x, y, z, prev.xCoord, prev.yCoord, prev.zCoord, rot.xCoord, rot.yCoord, rot.zCoord, distanceToCover, info, new MoveContext(i == 0 ? RailCheckType.FRONT : RailCheckType.BACK)); + next = rail.getTravelLocation(world, x, y, z, prev.xCoord, prev.yCoord, prev.zCoord, rot.xCoord, rot.yCoord, rot.zCoord, distanceToCover, info, new MoveContext(i == 0 ? RailCheckType.FRONT : RailCheckType.BACK, 0)); distanceToCover = info.overshoot; anchor = info.pos; if(i == 0) world.spawnParticle("reddust", next.xCoord, next.yCoord + 0.25, next.zCoord, 0, distanceToCover != 0 ? 0.5 : 0, 0); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 869fc2066..cf4b0f9df 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -1344,6 +1344,7 @@ public class ResourceManager { public static final IModelCustom rail_standard_straight = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard.obj")); public static final IModelCustom rail_standard_curve = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_bend.obj")); public static final IModelCustom rail_standard_ramp = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_ramp.obj")); + public static final IModelCustom rail_standard_buffer = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rail_standard_buffer.obj")); public static final IModelCustom capacitor = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/capacitor.obj")); public static final IModelCustom charge_dynamite = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/charge_dynamite.obj")); diff --git a/src/main/java/com/hbm/render/block/RenderStandardBufferRail.java b/src/main/java/com/hbm/render/block/RenderStandardBufferRail.java new file mode 100644 index 000000000..5cf6381e1 --- /dev/null +++ b/src/main/java/com/hbm/render/block/RenderStandardBufferRail.java @@ -0,0 +1,77 @@ +package com.hbm.render.block; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.rail.RailStandardBuffer; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; + +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.world.IBlockAccess; +import net.minecraftforge.client.model.obj.WavefrontObject; + +public class RenderStandardBufferRail implements ISimpleBlockRenderingHandler { + + @Override + public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { + + GL11.glPushMatrix(); + Tessellator tessellator = Tessellator.instance; + + GL11.glTranslated(0, -0.0625, 0); + GL11.glRotated(90, 0, 1, 0); + GL11.glScaled(0.3, 0.3, 0.3); + tessellator.startDrawingQuads(); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_buffer, block.getIcon(1, 0), tessellator, 0, false); + tessellator.draw(); + + GL11.glPopMatrix(); + } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { + + int meta = world.getBlockMetadata(x, y, z); + if(meta < 12) return true; + + Tessellator tessellator = Tessellator.instance; + + tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); + tessellator.setColorOpaque_F(1, 1, 1); + + float rotation = 0; + + if(meta == 12) rotation = (float) Math.PI; + if(meta == 14) rotation = 270F / 180F * (float) Math.PI; + if(meta == 15) rotation = 90F / 180F * (float) Math.PI; + + if(meta == 12) tessellator.addTranslation(0.5F, 0F, 0F); + if(meta == 13) tessellator.addTranslation(-0.5F, 0F, 0F); + if(meta == 14) tessellator.addTranslation(0F, 0F, -0.5F); + if(meta == 15) tessellator.addTranslation(0F, 0F, 0.5F); + + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rail_standard_buffer, block.getIcon(1, 0), tessellator, rotation, true); + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + + if(meta == 12) tessellator.addTranslation(-0.5F, 0F, 0F); + if(meta == 13) tessellator.addTranslation(0.5F, 0F, 0F); + if(meta == 14) tessellator.addTranslation(0F, 0F, 0.5F); + if(meta == 15) tessellator.addTranslation(0F, 0F, -0.5F); + + return true; + } + + @Override + public boolean shouldRender3DInInventory(int modelId) { + return true; + } + + @Override + public int getRenderId() { + return RailStandardBuffer.renderID; + } +} diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 6334c68bb..34aa19f02 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -1000,6 +1000,7 @@ item.ammo_grenade_toxic.name=40mm Granate (Chemisch) item.ammo_grenade_tracer.name=40mm Übungsgranate item.ammo_himars_standard.name=227mm gelenkte Artillerierakete item.ammo_himars_standard_he.name=227mm Artillerielenkrakete (HE) +item.ammo_himars_standard_lava.name=227mm Artillerielenkrakete (Lava) item.ammo_himars_standard_mini_nuke.name=227mm Artillerielenkrakete (Miniatombombe) item.ammo_himars_standard_tb.name=227mm Artillerielenkrakete (Thermobarisch) item.ammo_himars_standard_wp.name=227mm Artillerielenkrakete (WP) diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 6bd3ff4e6..feac1b38e 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1580,6 +1580,7 @@ item.ammo_grenade_toxic.name=40mm Grenade (Chemical) item.ammo_grenade_tracer.name=40mm Training Grenade item.ammo_himars_standard.name=227mm Guided Artillery Rocket Pod item.ammo_himars_standard_he.name=227mm Guided Artillery Rocket Pod (HE) +item.ammo_himars_standard_lava.name=227mm Guided Artillery Rocket Pod (Lava) item.ammo_himars_standard_mini_nuke.name=227mm Guided Artillery Rocket Pod (Mini Nuke) item.ammo_himars_standard_tb.name=227mm Guided Artillery Rocket Pod (Thermobaric) item.ammo_himars_standard_wp.name=227mm Guided Artillery Rocket Pod (WP) diff --git a/src/main/resources/assets/hbm/models/blocks/rail_standard_buffer.obj b/src/main/resources/assets/hbm/models/blocks/rail_standard_buffer.obj new file mode 100644 index 000000000..d56bd4b9b --- /dev/null +++ b/src/main/resources/assets/hbm/models/blocks/rail_standard_buffer.obj @@ -0,0 +1,1143 @@ +# Blender v2.79 (sub 0) OBJ File: 'rail_standard_stop.blend' +# www.blender.org +o Plane.001 +v 1.000000 0.062500 -0.187500 +v 1.000000 0.062500 0.187500 +v -1.000000 0.062500 0.187500 +v -1.000000 0.062500 -0.187500 +v -1.000000 0.000000 0.187500 +v 1.000000 0.000000 0.187500 +v -1.000000 0.000000 -0.187500 +v 1.000000 0.000000 -0.187500 +v -1.000000 0.000000 -0.812500 +v 1.000000 0.000000 -0.812500 +v -1.000000 0.000000 -1.187500 +v 1.000000 0.000000 -1.187500 +v -1.000000 0.000000 -1.812500 +v 1.000000 0.000000 -1.812500 +v -1.000000 0.000000 -2.187500 +v 1.000000 0.000000 -2.187500 +v -1.000000 0.000000 2.187500 +v 1.000000 0.000000 2.187500 +v -1.000000 0.000000 1.812500 +v 1.000000 0.000000 1.812500 +v -1.000000 0.000000 1.187500 +v 1.000000 0.000000 1.187500 +v -1.000000 0.000000 0.812500 +v 1.000000 0.000000 0.812500 +v -1.000000 0.062500 -1.187500 +v -1.000000 0.062500 -0.812500 +v 1.000000 0.062500 -0.812500 +v 1.000000 0.062500 -1.187500 +v -1.000000 0.062500 -2.187500 +v -1.000000 0.062500 -1.812500 +v 1.000000 0.062500 -1.812500 +v 1.000000 0.062500 -2.187500 +v -1.000000 0.062500 1.812500 +v -1.000000 0.062500 2.187500 +v 1.000000 0.062500 2.187500 +v 1.000000 0.062500 1.812500 +v -1.000000 0.062500 0.812500 +v -1.000000 0.062500 1.187500 +v 1.000000 0.062500 1.187500 +v 1.000000 0.062500 0.812500 +v -0.812500 0.062500 2.500000 +v 0.812500 0.062500 2.500000 +v -0.812500 0.062500 -2.500000 +v 0.812500 0.062500 -2.500000 +v -0.812500 0.187500 2.500000 +v 0.812500 0.187500 2.500000 +v -0.812500 0.187500 -2.500000 +v 0.812500 0.187500 -2.500000 +v 0.750000 0.062500 2.500000 +v 0.750000 0.062500 -2.500000 +v 0.750000 0.187500 2.500000 +v 0.750000 0.187500 -2.500000 +v -0.750000 0.062500 -2.500000 +v -0.750000 0.062500 2.500000 +v -0.750000 0.187500 -2.500000 +v -0.750000 0.187500 2.500000 +v 0.625000 0.062500 2.062500 +v 0.937500 0.062500 2.062500 +v 0.625000 0.062500 1.937500 +v 0.937500 0.062500 1.937500 +v 0.625000 0.125000 2.062500 +v 0.937500 0.125000 2.062500 +v 0.625000 0.125000 1.937500 +v 0.937500 0.125000 1.937500 +v -0.937500 0.062500 2.062500 +v -0.625000 0.062500 2.062500 +v -0.937500 0.062500 1.937500 +v -0.625000 0.062500 1.937500 +v -0.937500 0.125000 2.062500 +v -0.625000 0.125000 2.062500 +v -0.937500 0.125000 1.937500 +v -0.625000 0.125000 1.937500 +v 0.625000 0.062500 1.062500 +v 0.937500 0.062500 1.062500 +v 0.625000 0.062500 0.937500 +v 0.937500 0.062500 0.937500 +v 0.625000 0.125000 1.062500 +v 0.937500 0.125000 1.062500 +v 0.625000 0.125000 0.937500 +v 0.937500 0.125000 0.937500 +v -0.937500 0.062500 1.062500 +v -0.625000 0.062500 1.062500 +v -0.937500 0.062500 0.937500 +v -0.625000 0.062500 0.937500 +v -0.937500 0.125000 1.062500 +v -0.625000 0.125000 1.062500 +v -0.937500 0.125000 0.937500 +v -0.625000 0.125000 0.937500 +v 0.625000 0.062500 0.062500 +v 0.937500 0.062500 0.062500 +v 0.625000 0.062500 -0.062500 +v 0.937500 0.062500 -0.062500 +v 0.625000 0.125000 0.062500 +v 0.937500 0.125000 0.062500 +v 0.625000 0.125000 -0.062500 +v 0.937500 0.125000 -0.062500 +v -0.937500 0.062500 0.062500 +v -0.625000 0.062500 0.062500 +v -0.937500 0.062500 -0.062500 +v -0.625000 0.062500 -0.062500 +v -0.937500 0.125000 0.062500 +v -0.625000 0.125000 0.062500 +v -0.937500 0.125000 -0.062500 +v -0.625000 0.125000 -0.062500 +v 0.625000 0.062500 -0.937500 +v 0.937500 0.062500 -0.937500 +v 0.625000 0.062500 -1.062500 +v 0.937500 0.062500 -1.062500 +v 0.625000 0.125000 -0.937500 +v 0.937500 0.125000 -0.937500 +v 0.625000 0.125000 -1.062500 +v 0.937500 0.125000 -1.062500 +v -0.937500 0.062500 -0.937500 +v -0.625000 0.062500 -0.937500 +v -0.937500 0.062500 -1.062500 +v -0.625000 0.062500 -1.062500 +v -0.937500 0.125000 -0.937500 +v -0.625000 0.125000 -0.937500 +v -0.937500 0.125000 -1.062500 +v -0.625000 0.125000 -1.062500 +v 0.625000 0.062500 -1.937500 +v 0.937500 0.062500 -1.937500 +v 0.625000 0.062500 -2.062500 +v 0.937500 0.062500 -2.062500 +v 0.625000 0.125000 -1.937500 +v 0.937500 0.125000 -1.937500 +v 0.625000 0.125000 -2.062500 +v 0.937500 0.125000 -2.062500 +v -0.937500 0.062500 -1.937500 +v -0.625000 0.062500 -1.937500 +v -0.937500 0.062500 -2.062500 +v -0.625000 0.062500 -2.062500 +v -0.937500 0.125000 -1.937500 +v -0.625000 0.125000 -1.937500 +v -0.937500 0.125000 -2.062500 +v -0.625000 0.125000 -2.062500 +v -0.812500 0.062500 -1.500000 +v -0.812500 0.062500 -0.500000 +v -0.812500 0.062500 0.500000 +v -0.812500 0.062500 1.500000 +v 0.812500 0.062500 1.500000 +v 0.812500 0.062500 0.500000 +v 0.812500 0.062500 -0.500000 +v 0.812500 0.062500 -1.500000 +v -0.812500 0.187500 -1.500000 +v -0.812500 0.187500 -0.500000 +v -0.812500 0.187500 0.500000 +v -0.812500 0.187500 1.500000 +v 0.812500 0.187500 1.500000 +v 0.812500 0.187500 0.500000 +v 0.812500 0.187500 -0.500000 +v 0.812500 0.187500 -1.500000 +v 0.750000 0.062500 1.500000 +v 0.750000 0.062500 0.500000 +v 0.750000 0.062500 -0.500000 +v 0.750000 0.062500 -1.500000 +v 0.750000 0.187500 1.500000 +v 0.750000 0.187500 0.500000 +v 0.750000 0.187500 -0.500000 +v 0.750000 0.187500 -1.500000 +v -0.750000 0.062500 -1.500000 +v -0.750000 0.062500 -0.500000 +v -0.750000 0.062500 0.500000 +v -0.750000 0.062500 1.500000 +v -0.750000 0.187500 -1.500000 +v -0.750000 0.187500 -0.500000 +v -0.750000 0.187500 0.500000 +v -0.750000 0.187500 1.500000 +v -1.000000 1.500000 -1.000000 +v 1.000000 1.500000 -1.000000 +v -1.000000 1.500000 -1.375000 +v 1.000000 1.500000 -1.375000 +v -1.000000 0.875000 -1.375000 +v -1.000000 0.875000 -1.000000 +v 1.000000 0.875000 -1.000000 +v 1.000000 0.875000 -1.375000 +v 0.687500 1.062500 -1.000000 +v 0.937500 1.062500 -1.000000 +v 0.687500 1.312500 -1.000000 +v 0.937500 1.312500 -1.000000 +v 0.687500 1.312500 -0.625000 +v 0.687500 1.062500 -0.625000 +v 0.937500 1.062500 -0.625000 +v 0.937500 1.312500 -0.625000 +v 0.562500 1.312500 -0.625000 +v 0.687500 1.437500 -0.625000 +v 0.687500 0.937500 -0.625000 +v 0.562500 1.062500 -0.625000 +v 1.062500 1.062500 -0.625000 +v 0.937500 0.937500 -0.625000 +v 0.937500 1.437500 -0.625000 +v 1.062500 1.312500 -0.625000 +v 0.687500 1.437500 -0.500000 +v 0.562500 1.312500 -0.500000 +v 0.562500 1.062500 -0.500000 +v 0.687500 0.937500 -0.500000 +v 0.937500 0.937500 -0.500000 +v 1.062500 1.062500 -0.500000 +v 1.062500 1.312500 -0.500000 +v 0.937500 1.437500 -0.500000 +v 0.625000 0.875000 -1.062500 +v 0.875000 0.875000 -1.062500 +v 0.625000 0.875000 -1.312500 +v 0.875000 0.875000 -1.312500 +v 0.625000 0.000000 -1.312500 +v 0.625000 0.000000 -1.062500 +v 0.875000 0.000000 -1.062500 +v 0.875000 0.000000 -1.312500 +v -0.875000 0.875000 -1.062500 +v -0.625000 0.875000 -1.062500 +v -0.875000 0.875000 -1.312500 +v -0.625000 0.875000 -1.312500 +v -0.875000 0.000000 -1.312500 +v -0.875000 0.000000 -1.062500 +v -0.625000 0.000000 -1.062500 +v -0.625000 0.000000 -1.312500 +v 0.625000 0.000000 -2.687500 +v 0.625000 0.000000 -2.437500 +v 0.875000 0.000000 -2.437500 +v 0.875000 0.000000 -2.687500 +v -0.875000 0.000000 -2.687500 +v -0.875000 0.000000 -2.437500 +v -0.625000 0.000000 -2.437500 +v -0.625000 0.000000 -2.687500 +v 0.625000 1.062500 -1.375000 +v 0.875000 1.062500 -1.375000 +v -0.875000 1.062500 -1.375000 +v -0.625000 1.062500 -1.375000 +v 0.625000 1.312500 -1.375000 +v 0.875000 1.312500 -1.375000 +v -0.875000 1.312500 -1.375000 +v -0.625000 1.312500 -1.375000 +v -0.937500 1.062500 -1.000000 +v -0.687500 1.062500 -1.000000 +v -0.937500 1.312500 -1.000000 +v -0.687500 1.312500 -1.000000 +v -0.937500 1.312500 -0.625000 +v -0.937500 1.062500 -0.625000 +v -0.687500 1.062500 -0.625000 +v -0.687500 1.312500 -0.625000 +v -1.062500 1.312500 -0.625000 +v -0.937500 1.437500 -0.625000 +v -0.937500 0.937500 -0.625000 +v -1.062500 1.062500 -0.625000 +v -0.562500 1.062500 -0.625000 +v -0.687500 0.937500 -0.625000 +v -0.687500 1.437500 -0.625000 +v -0.562500 1.312500 -0.625000 +v -0.937500 1.437500 -0.500000 +v -1.062500 1.312500 -0.500000 +v -1.062500 1.062500 -0.500000 +v -0.937500 0.937500 -0.500000 +v -0.687500 0.937500 -0.500000 +v -0.562500 1.062500 -0.500000 +v -0.562500 1.312500 -0.500000 +v -0.687500 1.437500 -0.500000 +vt -0.000000 0.000000 +vt 0.093750 0.500000 +vt -0.000000 0.500000 +vt 0.109375 0.500000 +vt 0.203125 -0.000000 +vt 0.203125 0.500000 +vt 0.109375 0.500000 +vt 0.203125 -0.000000 +vt 0.203125 0.500000 +vt 0.109375 0.500000 +vt 0.203125 -0.000000 +vt 0.203125 0.500000 +vt 0.109375 0.500000 +vt 0.203125 -0.000000 +vt 0.203125 0.500000 +vt 0.109375 0.500000 +vt 0.203125 -0.000000 +vt 0.203125 0.500000 +vt -0.000000 0.000000 +vt 0.093750 0.500000 +vt -0.000000 0.500000 +vt -0.000000 0.000000 +vt 0.093750 0.500000 +vt -0.000000 0.500000 +vt -0.000000 0.000000 +vt 0.093750 0.500000 +vt -0.000000 0.500000 +vt -0.000000 0.000000 +vt 0.093750 0.500000 +vt -0.000000 0.500000 +vt 0.203125 0.015625 +vt 0.296875 0.000000 +vt 0.296875 0.015625 +vt 0.109375 0.500000 +vt 0.093750 0.000000 +vt 0.109375 0.000000 +vt 0.109375 0.500000 +vt 0.093750 0.000000 +vt 0.109375 0.000000 +vt 0.296875 0.000000 +vt 0.203125 0.015625 +vt 0.296875 0.000000 +vt 0.203125 0.015625 +vt 0.093750 0.000000 +vt 0.109375 0.000000 +vt 0.203125 0.015625 +vt 0.296875 0.000000 +vt 0.296875 0.015625 +vt 0.093750 0.000000 +vt 0.109375 0.000000 +vt 0.203125 0.015625 +vt 0.296875 0.000000 +vt 0.296875 0.015625 +vt 0.109375 0.500000 +vt 0.093750 0.000000 +vt 0.109375 0.000000 +vt 0.203125 0.015625 +vt 0.296875 0.000000 +vt 0.296875 0.015625 +vt 0.109375 0.500000 +vt 0.093750 0.000000 +vt 0.109375 0.000000 +vt 0.296875 0.000000 +vt 0.203125 0.015625 +vt 0.109375 0.500000 +vt 0.093750 0.000000 +vt 0.109375 0.000000 +vt 0.296875 0.000000 +vt 0.203125 0.015625 +vt 0.093750 0.000000 +vt 0.109375 0.000000 +vt 0.296875 0.000000 +vt 0.203125 0.015625 +vt 0.093750 0.000000 +vt 0.109375 0.000000 +vt 0.203125 0.015625 +vt 0.296875 0.000000 +vt 0.296875 0.015625 +vt 0.093750 0.000000 +vt 0.109375 0.000000 +vt 0.250000 0.078125 +vt 0.218750 0.328125 +vt 0.218750 0.078125 +vt 0.265625 0.328125 +vt 0.296875 0.078125 +vt 0.296875 0.328125 +vt 0.296875 0.328125 +vt 0.265625 0.078125 +vt 0.296875 0.078125 +vt 0.265625 0.359375 +vt 0.250000 0.328125 +vt 0.265625 0.328125 +vt 0.250000 0.078125 +vt 0.265625 0.328125 +vt 0.250000 0.328125 +vt 0.203125 0.078125 +vt 0.250000 0.328125 +vt 0.265625 0.359375 +vt 0.250000 0.359375 +vt 0.218750 0.078125 +vt 0.250000 0.328125 +vt 0.218750 0.328125 +vt 0.265625 0.328125 +vt 0.250000 0.078125 +vt 0.265625 0.078125 +vt 0.203125 0.078125 +vt 0.203125 0.328125 +vt 0.265625 0.359375 +vt 0.250000 0.328125 +vt 0.265625 0.328125 +vt 0.250000 0.328125 +vt 0.265625 0.359375 +vt 0.250000 0.359375 +vt 0.218750 0.031250 +vt 0.203125 0.062500 +vt 0.203125 0.031250 +vt 0.218750 0.062500 +vt 0.296875 0.078125 +vt 0.218750 0.078125 +vt 0.296875 0.031250 +vt 0.218750 0.015625 +vt 0.296875 0.015625 +vt 0.296875 0.062500 +vt 0.312500 0.031250 +vt 0.312500 0.062500 +vt 0.218750 0.031250 +vt 0.203125 0.062500 +vt 0.203125 0.031250 +vt 0.218750 0.062500 +vt 0.296875 0.078125 +vt 0.218750 0.078125 +vt 0.296875 0.031250 +vt 0.218750 0.015625 +vt 0.296875 0.015625 +vt 0.296875 0.062500 +vt 0.312500 0.031250 +vt 0.312500 0.062500 +vt 0.218750 0.031250 +vt 0.203125 0.062500 +vt 0.203125 0.031250 +vt 0.218750 0.062500 +vt 0.296875 0.078125 +vt 0.218750 0.078125 +vt 0.296875 0.031250 +vt 0.218750 0.015625 +vt 0.296875 0.015625 +vt 0.296875 0.062500 +vt 0.312500 0.031250 +vt 0.312500 0.062500 +vt 0.218750 0.031250 +vt 0.203125 0.062500 +vt 0.203125 0.031250 +vt 0.218750 0.062500 +vt 0.296875 0.078125 +vt 0.218750 0.078125 +vt 0.296875 0.031250 +vt 0.218750 0.015625 +vt 0.296875 0.015625 +vt 0.296875 0.062500 +vt 0.312500 0.031250 +vt 0.312500 0.062500 +vt 0.218750 0.031250 +vt 0.203125 0.062500 +vt 0.203125 0.031250 +vt 0.218750 0.062500 +vt 0.296875 0.078125 +vt 0.218750 0.078125 +vt 0.296875 0.031250 +vt 0.218750 0.015625 +vt 0.296875 0.015625 +vt 0.296875 0.062500 +vt 0.312500 0.031250 +vt 0.312500 0.062500 +vt 0.218750 0.031250 +vt 0.203125 0.062500 +vt 0.203125 0.031250 +vt 0.218750 0.062500 +vt 0.296875 0.078125 +vt 0.218750 0.078125 +vt 0.296875 0.031250 +vt 0.218750 0.015625 +vt 0.296875 0.015625 +vt 0.296875 0.062500 +vt 0.312500 0.031250 +vt 0.312500 0.062500 +vt 0.218750 0.031250 +vt 0.203125 0.062500 +vt 0.203125 0.031250 +vt 0.218750 0.062500 +vt 0.296875 0.078125 +vt 0.218750 0.078125 +vt 0.296875 0.031250 +vt 0.218750 0.015625 +vt 0.296875 0.015625 +vt 0.296875 0.062500 +vt 0.312500 0.031250 +vt 0.312500 0.062500 +vt 0.218750 0.031250 +vt 0.203125 0.062500 +vt 0.203125 0.031250 +vt 0.218750 0.062500 +vt 0.296875 0.078125 +vt 0.218750 0.078125 +vt 0.296875 0.031250 +vt 0.218750 0.015625 +vt 0.296875 0.015625 +vt 0.296875 0.062500 +vt 0.312500 0.031250 +vt 0.312500 0.062500 +vt 0.218750 0.031250 +vt 0.203125 0.062500 +vt 0.203125 0.031250 +vt 0.218750 0.062500 +vt 0.296875 0.078125 +vt 0.218750 0.078125 +vt 0.296875 0.031250 +vt 0.218750 0.015625 +vt 0.296875 0.015625 +vt 0.296875 0.062500 +vt 0.312500 0.031250 +vt 0.312500 0.062500 +vt 0.218750 0.031250 +vt 0.203125 0.062500 +vt 0.203125 0.031250 +vt 0.218750 0.062500 +vt 0.296875 0.078125 +vt 0.218750 0.078125 +vt 0.296875 0.031250 +vt 0.218750 0.015625 +vt 0.296875 0.015625 +vt 0.296875 0.062500 +vt 0.312500 0.031250 +vt 0.312500 0.062500 +vt 0.203125 0.078125 +vt 0.218750 0.328125 +vt 0.203125 0.328125 +vt 0.203125 0.078125 +vt 0.218750 0.328125 +vt 0.203125 0.328125 +vt 0.203125 0.078125 +vt 0.218750 0.328125 +vt 0.203125 0.328125 +vt 0.203125 0.078125 +vt 0.218750 0.328125 +vt 0.203125 0.328125 +vt 0.250000 0.078125 +vt 0.265625 0.078125 +vt 0.265625 0.328125 +vt 0.250000 0.078125 +vt 0.265625 0.078125 +vt 0.265625 0.328125 +vt 0.250000 0.078125 +vt 0.265625 0.078125 +vt 0.265625 0.328125 +vt 0.250000 0.078125 +vt 0.265625 0.078125 +vt 0.218750 0.078125 +vt 0.250000 0.328125 +vt 0.218750 0.078125 +vt 0.250000 0.328125 +vt 0.218750 0.078125 +vt 0.250000 0.328125 +vt 0.218750 0.078125 +vt 0.250000 0.328125 +vt 0.218750 0.328125 +vt 0.203125 0.078125 +vt 0.218750 0.078125 +vt 0.218750 0.328125 +vt 0.203125 0.078125 +vt 0.218750 0.078125 +vt 0.218750 0.328125 +vt 0.203125 0.078125 +vt 0.218750 0.078125 +vt 0.218750 0.328125 +vt 0.203125 0.078125 +vt 0.218750 0.078125 +vt 0.265625 0.328125 +vt 0.250000 0.328125 +vt 0.250000 0.078125 +vt 0.265625 0.328125 +vt 0.250000 0.328125 +vt 0.250000 0.078125 +vt 0.265625 0.328125 +vt 0.250000 0.328125 +vt 0.250000 0.078125 +vt 0.265625 0.328125 +vt 0.250000 0.328125 +vt 0.296875 0.328125 +vt 0.265625 0.078125 +vt 0.296875 0.078125 +vt 0.296875 0.328125 +vt 0.265625 0.078125 +vt 0.296875 0.078125 +vt 0.296875 0.328125 +vt 0.265625 0.078125 +vt 0.296875 0.078125 +vt 0.296875 0.328125 +vt 0.265625 0.078125 +vt 0.296875 0.078125 +vt 0.296875 0.078125 +vt 0.296875 0.328125 +vt 0.296875 0.078125 +vt 0.296875 0.328125 +vt 0.296875 0.078125 +vt 0.296875 0.328125 +vt 0.296875 0.078125 +vt 0.296875 0.328125 +vt 0.467018 0.000041 +vt 0.560886 0.500669 +vt 0.467018 0.500669 +vt 0.562500 -0.000000 +vt 0.468750 0.500000 +vt 0.468750 -0.000000 +vt 0.312500 0.500000 +vt 0.468750 0.593750 +vt 0.312500 0.593750 +vt 0.312500 0.500000 +vt 0.468750 0.593750 +vt 0.312500 0.593750 +vt 0.312500 -0.000000 +vt 0.468750 0.500000 +vt 0.312500 -0.000000 +vt 0.656250 0.187500 +vt 0.562500 0.125000 +vt 0.656250 0.125000 +vt 0.656250 0.062500 +vt 0.562500 0.000000 +vt 0.656250 0.000000 +vt 0.562500 0.062500 +vt 0.656250 0.250000 +vt 0.562500 0.187500 +vt 0.625000 0.437500 +vt 0.687500 0.406250 +vt 0.687500 0.437500 +vt 0.718750 0.312500 +vt 0.593750 0.375000 +vt 0.687500 0.406250 +vt 0.593750 0.375000 +vt 0.625000 0.281250 +vt 0.687500 0.250000 +vt 0.625000 0.281250 +vt 0.625000 0.250000 +vt 0.750000 0.375000 +vt 0.750000 0.312500 +vt 0.718750 0.437500 +vt 0.718750 0.281250 +vt 0.687500 0.281250 +vt 0.593750 0.250000 +vt 0.593750 0.406250 +vt 0.625000 0.406250 +vt 0.562500 0.312500 +vt 0.562500 0.375000 +vt 0.781250 0.000000 +vt 0.718750 0.062500 +vt 0.718750 0.000000 +vt 0.656250 0.218750 +vt 0.718750 -0.000000 +vt 0.718750 0.218750 +vt 0.656250 0.218750 +vt 0.718750 0.218750 +vt 0.656250 0.218750 +vt 0.718750 -0.000000 +vt 0.718750 0.218750 +vt 0.656250 0.218750 +vt 0.718750 -0.000000 +vt 0.718750 0.218750 +vt 0.781250 0.000000 +vt 0.718750 0.062500 +vt 0.718750 0.000000 +vt 0.656250 0.218750 +vt 0.718750 -0.000000 +vt 0.718750 0.218750 +vt 0.656250 0.218750 +vt 0.718750 0.218750 +vt 0.656250 0.218750 +vt 0.718750 -0.000000 +vt 0.718750 0.218750 +vt 0.656250 0.218750 +vt 0.718750 -0.000000 +vt 0.718750 0.218750 +vt 0.250000 0.500000 +vt 0.312500 0.562500 +vt 0.250000 0.562500 +vt 0.250000 0.500000 +vt 0.312500 0.562500 +vt 0.250000 0.562500 +vt 0.187500 0.921875 +vt 0.250000 0.546875 +vt 0.250000 0.921875 +vt 0.187500 0.921875 +vt 0.250000 0.546875 +vt 0.250000 0.921875 +vt 0.000000 0.546875 +vt 0.062500 0.968750 +vt 0.000000 0.921875 +vt 0.125000 0.500000 +vt 0.125000 0.968750 +vt 0.000000 0.546875 +vt 0.062500 0.968750 +vt 0.000000 0.921875 +vt 0.125000 0.500000 +vt 0.125000 0.968750 +vt 0.656250 0.187500 +vt 0.562500 0.125000 +vt 0.656250 0.125000 +vt 0.656250 0.062500 +vt 0.562500 0.000000 +vt 0.656250 0.000000 +vt 0.562500 0.062500 +vt 0.656250 0.250000 +vt 0.562500 0.187500 +vt 0.625000 0.437500 +vt 0.687500 0.406250 +vt 0.687500 0.437500 +vt 0.718750 0.312500 +vt 0.593750 0.375000 +vt 0.687500 0.406250 +vt 0.593750 0.375000 +vt 0.625000 0.281250 +vt 0.687500 0.250000 +vt 0.625000 0.281250 +vt 0.625000 0.250000 +vt 0.750000 0.375000 +vt 0.750000 0.312500 +vt 0.718750 0.437500 +vt 0.718750 0.281250 +vt 0.687500 0.281250 +vt 0.593750 0.250000 +vt 0.593750 0.406250 +vt 0.625000 0.406250 +vt 0.562500 0.312500 +vt 0.562500 0.375000 +vt 0.203125 0.000000 +vt 0.093750 0.500000 +vt 0.093750 0.500000 +vt 0.296875 0.015625 +vt 0.296875 0.015625 +vt 0.203125 0.000000 +vt 0.203125 0.000000 +vt 0.093750 0.500000 +vt 0.203125 0.000000 +vt 0.093750 0.500000 +vt 0.296875 0.015625 +vt 0.093750 0.500000 +vt 0.296875 0.015625 +vt 0.296875 0.015625 +vt 0.203125 0.000000 +vt 0.250000 0.359375 +vt 0.203125 0.328125 +vt 0.265625 0.328125 +vt 0.250000 0.359375 +vt 0.265625 0.328125 +vt 0.203125 0.328125 +vt 0.203125 0.328125 +vt 0.203125 0.328125 +vt 0.203125 0.328125 +vt 0.560886 0.000041 +vt 0.562500 0.500000 +vt 0.468750 -0.000000 +vt 0.562500 0.250000 +vt 0.593750 0.312500 +vt 0.718750 0.375000 +vt 0.687500 0.281250 +vt 0.718750 0.312500 +vt 0.718750 0.375000 +vt 0.625000 0.406250 +vt 0.593750 0.312500 +vt 0.718750 0.406250 +vt 0.718750 0.250000 +vt 0.593750 0.281250 +vt 0.593750 0.437500 +vt 0.781250 0.062500 +vt 0.656250 -0.000000 +vt 0.656250 -0.000000 +vt 0.656250 -0.000000 +vt 0.656250 -0.000000 +vt 0.781250 0.062500 +vt 0.656250 -0.000000 +vt 0.656250 -0.000000 +vt 0.656250 -0.000000 +vt 0.656250 -0.000000 +vt 0.312500 0.500000 +vt 0.312500 0.500000 +vt 0.187500 0.546875 +vt 0.187500 0.546875 +vt 0.062500 0.500000 +vt 0.062500 0.500000 +vt 0.562500 0.250000 +vt 0.593750 0.312500 +vt 0.718750 0.375000 +vt 0.687500 0.281250 +vt 0.718750 0.312500 +vt 0.718750 0.375000 +vt 0.625000 0.406250 +vt 0.593750 0.312500 +vt 0.718750 0.406250 +vt 0.718750 0.250000 +vt 0.593750 0.281250 +vt 0.593750 0.437500 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.7071 0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.7071 -0.7071 +s off +f 2/1/1 4/2/1 3/3/1 +f 7/4/2 6/5/2 5/6/2 +f 11/7/2 10/8/2 9/9/2 +f 15/10/2 14/11/2 13/12/2 +f 19/13/2 18/14/2 17/15/2 +f 23/16/2 22/17/2 21/18/2 +f 27/19/1 25/20/1 26/21/1 +f 31/22/1 29/23/1 30/24/1 +f 35/25/1 33/26/1 34/27/1 +f 39/28/1 37/29/1 38/30/1 +f 17/31/3 33/32/3 19/33/3 +f 10/34/4 26/35/4 9/36/4 +f 18/37/4 34/38/4 17/39/4 +f 12/40/5 27/41/5 10/8/5 +f 20/42/5 35/43/5 18/14/5 +f 11/7/6 28/44/6 12/45/6 +f 5/46/3 4/47/3 7/48/3 +f 19/13/6 36/49/6 20/50/6 +f 13/51/3 29/52/3 15/53/3 +f 6/54/4 3/55/4 5/56/4 +f 21/57/3 37/58/3 23/59/3 +f 14/60/4 30/61/4 13/62/4 +f 8/63/5 2/64/5 6/5/5 +f 22/65/4 38/66/4 21/67/4 +f 16/68/5 31/69/5 14/11/5 +f 7/4/6 1/70/6 8/71/6 +f 24/72/5 39/73/5 22/17/5 +f 15/10/6 32/74/6 16/75/6 +f 9/76/3 25/77/3 11/78/3 +f 23/16/6 40/79/6 24/80/6 +f 149/81/5 42/82/5 141/83/5 +f 145/84/3 43/85/3 137/86/3 +f 49/87/3 157/88/3 153/89/3 +f 46/90/4 49/91/4 42/92/4 +f 48/93/1 160/94/1 152/95/1 +f 42/82/2 153/96/2 141/83/2 +f 44/97/6 52/98/6 48/99/6 +f 53/100/5 165/101/5 161/102/5 +f 45/103/1 168/104/1 148/105/1 +f 43/106/2 161/102/2 137/107/2 +f 47/108/6 53/109/6 43/110/6 +f 41/111/4 56/112/4 45/113/4 +f 61/114/3 59/115/3 57/116/3 +f 63/117/6 60/118/6 59/119/6 +f 62/120/4 57/121/4 58/122/4 +f 64/123/5 58/124/5 60/125/5 +f 61/114/1 64/123/1 63/117/1 +f 69/126/3 67/127/3 65/128/3 +f 71/129/6 68/130/6 67/131/6 +f 70/132/4 65/133/4 66/134/4 +f 72/135/5 66/136/5 68/137/5 +f 69/126/1 72/135/1 71/129/1 +f 77/138/3 75/139/3 73/140/3 +f 79/141/6 76/142/6 75/143/6 +f 78/144/4 73/145/4 74/146/4 +f 80/147/5 74/148/5 76/149/5 +f 77/138/1 80/147/1 79/141/1 +f 85/150/3 83/151/3 81/152/3 +f 87/153/6 84/154/6 83/155/6 +f 86/156/4 81/157/4 82/158/4 +f 88/159/5 82/160/5 84/161/5 +f 85/150/1 88/159/1 87/153/1 +f 93/162/3 91/163/3 89/164/3 +f 95/165/6 92/166/6 91/167/6 +f 94/168/4 89/169/4 90/170/4 +f 96/171/5 90/172/5 92/173/5 +f 93/162/1 96/171/1 95/165/1 +f 101/174/3 99/175/3 97/176/3 +f 103/177/6 100/178/6 99/179/6 +f 102/180/4 97/181/4 98/182/4 +f 104/183/5 98/184/5 100/185/5 +f 101/174/1 104/183/1 103/177/1 +f 109/186/3 107/187/3 105/188/3 +f 111/189/6 108/190/6 107/191/6 +f 110/192/4 105/193/4 106/194/4 +f 112/195/5 106/196/5 108/197/5 +f 109/186/1 112/195/1 111/189/1 +f 117/198/3 115/199/3 113/200/3 +f 119/201/6 116/202/6 115/203/6 +f 118/204/4 113/205/4 114/206/4 +f 120/207/5 114/208/5 116/209/5 +f 117/198/1 120/207/1 119/201/1 +f 125/210/3 123/211/3 121/212/3 +f 127/213/6 124/214/6 123/215/6 +f 126/216/4 121/217/4 122/218/4 +f 128/219/5 122/220/5 124/221/5 +f 125/210/1 128/219/1 127/213/1 +f 133/222/3 131/223/3 129/224/3 +f 135/225/6 132/226/6 131/227/6 +f 134/228/4 129/229/4 130/230/4 +f 136/231/5 130/232/5 132/233/5 +f 133/222/1 136/231/1 135/225/1 +f 140/234/2 54/235/2 41/236/2 +f 139/237/2 164/238/2 140/239/2 +f 138/240/2 163/241/2 139/242/2 +f 137/243/2 162/244/2 138/245/2 +f 145/84/1 55/246/1 47/247/1 +f 146/248/1 165/249/1 145/250/1 +f 147/251/1 166/252/1 146/253/1 +f 148/254/1 167/255/1 147/256/1 +f 164/257/5 56/258/5 54/235/5 +f 163/259/5 168/260/5 164/238/5 +f 162/261/5 167/262/5 163/241/5 +f 161/263/5 166/264/5 162/244/5 +f 144/265/2 50/266/2 44/267/2 +f 143/268/2 156/269/2 144/270/2 +f 142/271/2 155/272/2 143/273/2 +f 141/274/2 154/275/2 142/276/2 +f 149/81/1 51/277/1 46/278/1 +f 150/279/1 157/280/1 149/281/1 +f 151/282/1 158/283/1 150/284/1 +f 152/285/1 159/286/1 151/287/1 +f 156/288/3 52/289/3 50/290/3 +f 155/291/3 160/292/3 156/293/3 +f 154/294/3 159/295/3 155/296/3 +f 153/297/3 158/298/3 154/299/3 +f 45/103/3 140/300/3 41/301/3 +f 148/254/3 139/302/3 140/303/3 +f 147/251/3 138/304/3 139/305/3 +f 146/248/3 137/306/3 138/307/3 +f 48/93/5 144/265/5 44/267/5 +f 152/285/5 143/268/5 144/270/5 +f 151/282/5 142/271/5 143/273/5 +f 150/279/5 141/274/5 142/276/5 +f 170/308/1 171/309/1 169/310/1 +f 173/311/2 175/312/2 174/313/2 +f 170/314/5 176/315/5 172/316/5 +f 171/317/3 174/318/3 169/319/3 +f 172/320/6 173/321/6 171/317/6 +f 169/322/4 175/312/4 170/314/4 +f 179/323/1 184/324/1 180/325/1 +f 178/326/2 182/327/2 177/328/2 +f 180/325/5 183/329/5 178/326/5 +f 177/330/3 181/331/3 179/323/3 +f 186/332/1 200/333/1 191/334/1 +f 198/335/4 200/333/4 194/336/4 +f 186/337/6 192/338/6 190/339/6 +f 190/340/2 196/341/2 187/342/2 +f 192/343/5 198/335/5 189/344/5 +f 200/333/7 192/345/7 191/334/7 +f 190/340/8 198/346/8 197/347/8 +f 196/341/9 188/348/9 187/342/9 +f 186/332/10 194/349/10 193/350/10 +f 188/351/3 194/336/3 185/352/3 +f 205/353/2 207/354/2 206/355/2 +f 202/356/5 208/357/5 204/358/5 +f 203/359/3 206/355/3 201/360/3 +f 204/361/6 205/362/6 203/363/6 +f 201/364/4 207/365/4 202/366/4 +f 213/367/2 215/368/2 214/369/2 +f 210/370/5 216/371/5 212/372/5 +f 211/373/3 214/369/3 209/374/3 +f 212/375/6 213/376/6 211/377/6 +f 209/378/4 215/379/4 210/380/4 +f 217/381/2 219/382/2 218/383/2 +f 221/384/2 223/385/2 222/386/2 +f 223/387/11 227/388/11 222/389/11 +f 219/390/11 225/391/11 218/392/11 +f 225/393/3 217/394/3 218/395/3 +f 217/394/12 230/396/12 220/397/12 +f 230/396/5 219/390/5 220/397/5 +f 227/398/3 221/399/3 222/400/3 +f 221/399/12 232/401/12 224/402/12 +f 232/401/5 223/387/5 224/402/5 +f 235/403/1 240/404/1 236/405/1 +f 234/406/2 238/407/2 233/408/2 +f 236/405/5 239/409/5 234/406/5 +f 233/410/3 237/411/3 235/403/3 +f 242/412/1 256/413/1 247/414/1 +f 254/415/4 256/413/4 250/416/4 +f 242/417/6 248/418/6 246/419/6 +f 246/420/2 252/421/2 243/422/2 +f 248/423/5 254/415/5 245/424/5 +f 256/413/7 248/425/7 247/414/7 +f 246/420/8 254/426/8 253/427/8 +f 252/421/9 244/428/9 243/422/9 +f 242/412/10 250/429/10 249/430/10 +f 244/431/3 250/416/3 241/432/3 +f 2/1/1 1/70/1 4/2/1 +f 7/4/2 8/71/2 6/5/2 +f 11/7/2 12/45/2 10/8/2 +f 15/10/2 16/75/2 14/11/2 +f 19/13/2 20/50/2 18/14/2 +f 23/16/2 24/80/2 22/17/2 +f 27/19/1 28/44/1 25/20/1 +f 31/22/1 32/74/1 29/23/1 +f 35/25/1 36/49/1 33/26/1 +f 39/28/1 40/79/1 37/29/1 +f 17/31/3 34/433/3 33/32/3 +f 10/34/4 27/434/4 26/35/4 +f 18/37/4 35/435/4 34/38/4 +f 12/40/5 28/436/5 27/41/5 +f 20/42/5 36/437/5 35/43/5 +f 11/7/6 25/20/6 28/44/6 +f 5/46/3 3/438/3 4/47/3 +f 19/13/6 33/26/6 36/49/6 +f 13/51/3 30/439/3 29/52/3 +f 6/54/4 2/440/4 3/55/4 +f 21/57/3 38/441/3 37/58/3 +f 14/60/4 31/442/4 30/61/4 +f 8/63/5 1/443/5 2/64/5 +f 22/65/4 39/444/4 38/66/4 +f 16/68/5 32/445/5 31/69/5 +f 7/4/6 4/2/6 1/70/6 +f 24/72/5 40/446/5 39/73/5 +f 15/10/6 29/23/6 32/74/6 +f 9/76/3 26/447/3 25/77/3 +f 23/16/6 37/29/6 40/79/6 +f 149/81/5 46/278/5 42/82/5 +f 145/84/3 47/247/3 43/85/3 +f 49/87/3 51/277/3 157/88/3 +f 46/90/4 51/448/4 49/91/4 +f 48/93/1 52/289/1 160/94/1 +f 42/82/2 49/449/2 153/96/2 +f 44/97/6 50/450/6 52/98/6 +f 53/100/5 55/246/5 165/101/5 +f 45/103/1 56/258/1 168/104/1 +f 43/106/2 53/100/2 161/102/2 +f 47/108/6 55/451/6 53/109/6 +f 41/111/4 54/452/4 56/112/4 +f 61/114/3 63/117/3 59/115/3 +f 63/117/6 64/123/6 60/118/6 +f 62/120/4 61/114/4 57/121/4 +f 64/123/5 62/120/5 58/124/5 +f 61/114/1 62/120/1 64/123/1 +f 69/126/3 71/129/3 67/127/3 +f 71/129/6 72/135/6 68/130/6 +f 70/132/4 69/126/4 65/133/4 +f 72/135/5 70/132/5 66/136/5 +f 69/126/1 70/132/1 72/135/1 +f 77/138/3 79/141/3 75/139/3 +f 79/141/6 80/147/6 76/142/6 +f 78/144/4 77/138/4 73/145/4 +f 80/147/5 78/144/5 74/148/5 +f 77/138/1 78/144/1 80/147/1 +f 85/150/3 87/153/3 83/151/3 +f 87/153/6 88/159/6 84/154/6 +f 86/156/4 85/150/4 81/157/4 +f 88/159/5 86/156/5 82/160/5 +f 85/150/1 86/156/1 88/159/1 +f 93/162/3 95/165/3 91/163/3 +f 95/165/6 96/171/6 92/166/6 +f 94/168/4 93/162/4 89/169/4 +f 96/171/5 94/168/5 90/172/5 +f 93/162/1 94/168/1 96/171/1 +f 101/174/3 103/177/3 99/175/3 +f 103/177/6 104/183/6 100/178/6 +f 102/180/4 101/174/4 97/181/4 +f 104/183/5 102/180/5 98/184/5 +f 101/174/1 102/180/1 104/183/1 +f 109/186/3 111/189/3 107/187/3 +f 111/189/6 112/195/6 108/190/6 +f 110/192/4 109/186/4 105/193/4 +f 112/195/5 110/192/5 106/196/5 +f 109/186/1 110/192/1 112/195/1 +f 117/198/3 119/201/3 115/199/3 +f 119/201/6 120/207/6 116/202/6 +f 118/204/4 117/198/4 113/205/4 +f 120/207/5 118/204/5 114/208/5 +f 117/198/1 118/204/1 120/207/1 +f 125/210/3 127/213/3 123/211/3 +f 127/213/6 128/219/6 124/214/6 +f 126/216/4 125/210/4 121/217/4 +f 128/219/5 126/216/5 122/220/5 +f 125/210/1 126/216/1 128/219/1 +f 133/222/3 135/225/3 131/223/3 +f 135/225/6 136/231/6 132/226/6 +f 134/228/4 133/222/4 129/229/4 +f 136/231/5 134/228/5 130/232/5 +f 133/222/1 134/228/1 136/231/1 +f 140/234/2 164/257/2 54/235/2 +f 139/237/2 163/259/2 164/238/2 +f 138/240/2 162/261/2 163/241/2 +f 137/243/2 161/263/2 162/244/2 +f 145/84/1 165/101/1 55/246/1 +f 146/248/1 166/264/1 165/249/1 +f 147/251/1 167/262/1 166/252/1 +f 148/254/1 168/260/1 167/255/1 +f 164/257/5 168/104/5 56/258/5 +f 163/259/5 167/255/5 168/260/5 +f 162/261/5 166/252/5 167/262/5 +f 161/263/5 165/249/5 166/264/5 +f 144/265/2 156/453/2 50/266/2 +f 143/268/2 155/454/2 156/269/2 +f 142/271/2 154/455/2 155/272/2 +f 141/274/2 153/456/2 154/275/2 +f 149/81/1 157/88/1 51/277/1 +f 150/279/1 158/298/1 157/280/1 +f 151/282/1 159/295/1 158/283/1 +f 152/285/1 160/292/1 159/286/1 +f 156/288/3 160/94/3 52/289/3 +f 155/291/3 159/286/3 160/292/3 +f 154/294/3 158/283/3 159/295/3 +f 153/297/3 157/280/3 158/298/3 +f 45/103/3 148/105/3 140/300/3 +f 148/254/3 147/256/3 139/302/3 +f 147/251/3 146/253/3 138/304/3 +f 146/248/3 145/250/3 137/306/3 +f 48/93/5 152/95/5 144/265/5 +f 152/285/5 151/287/5 143/268/5 +f 151/282/5 150/284/5 142/271/5 +f 150/279/5 149/281/5 141/274/5 +f 170/308/1 172/457/1 171/309/1 +f 173/311/2 176/458/2 175/312/2 +f 170/314/5 175/312/5 176/315/5 +f 171/317/3 173/321/3 174/318/3 +f 172/320/6 176/459/6 173/321/6 +f 169/322/4 174/313/4 175/312/4 +f 179/323/1 181/331/1 184/324/1 +f 178/326/2 183/329/2 182/327/2 +f 180/325/5 184/324/5 183/329/5 +f 177/330/3 182/460/3 181/331/3 +f 186/332/1 193/350/1 200/333/1 +f 194/336/4 195/461/4 196/341/4 +f 196/341/4 197/347/4 198/335/4 +f 198/335/4 199/462/4 200/333/4 +f 200/333/4 193/350/4 194/336/4 +f 194/336/4 196/341/4 198/335/4 +f 190/339/6 187/463/6 188/464/6 +f 188/464/6 185/465/6 186/337/6 +f 186/337/6 191/466/6 192/338/6 +f 192/338/6 189/467/6 190/339/6 +f 190/339/6 188/464/6 186/337/6 +f 190/340/2 197/347/2 196/341/2 +f 192/343/5 199/462/5 198/335/5 +f 200/333/7 199/468/7 192/345/7 +f 190/340/8 189/469/8 198/346/8 +f 196/341/9 195/470/9 188/348/9 +f 186/332/10 185/471/10 194/349/10 +f 188/351/3 195/461/3 194/336/3 +f 205/353/2 208/472/2 207/354/2 +f 202/356/5 207/473/5 208/357/5 +f 203/359/3 205/474/3 206/355/3 +f 204/361/6 208/475/6 205/362/6 +f 201/364/4 206/476/4 207/365/4 +f 213/367/2 216/477/2 215/368/2 +f 210/370/5 215/478/5 216/371/5 +f 211/373/3 213/479/3 214/369/3 +f 212/375/6 216/480/6 213/376/6 +f 209/378/4 214/481/4 215/379/4 +f 217/381/2 220/482/2 219/382/2 +f 221/384/2 224/483/2 223/385/2 +f 223/387/11 228/484/11 227/388/11 +f 219/390/11 226/485/11 225/391/11 +f 225/393/3 229/486/3 217/394/3 +f 217/394/12 229/486/12 230/396/12 +f 230/396/5 226/485/5 219/390/5 +f 227/398/3 231/487/3 221/399/3 +f 221/399/12 231/487/12 232/401/12 +f 232/401/5 228/484/5 223/387/5 +f 235/403/1 237/411/1 240/404/1 +f 234/406/2 239/409/2 238/407/2 +f 236/405/5 240/404/5 239/409/5 +f 233/410/3 238/488/3 237/411/3 +f 242/412/1 249/430/1 256/413/1 +f 250/416/4 251/489/4 252/421/4 +f 252/421/4 253/427/4 254/415/4 +f 254/415/4 255/490/4 256/413/4 +f 256/413/4 249/430/4 250/416/4 +f 250/416/4 252/421/4 254/415/4 +f 246/419/6 243/491/6 244/492/6 +f 244/492/6 241/493/6 242/417/6 +f 242/417/6 247/494/6 248/418/6 +f 248/418/6 245/495/6 246/419/6 +f 246/419/6 244/492/6 242/417/6 +f 246/420/2 253/427/2 252/421/2 +f 248/423/5 255/490/5 254/415/5 +f 256/413/7 255/496/7 248/425/7 +f 246/420/8 245/497/8 254/426/8 +f 252/421/9 251/498/9 244/428/9 +f 242/412/10 241/499/10 250/429/10 +f 244/431/3 251/489/3 250/416/3 diff --git a/src/main/resources/assets/hbm/textures/blocks/rail_standard_buffer.png b/src/main/resources/assets/hbm/textures/blocks/rail_standard_buffer.png new file mode 100644 index 0000000000000000000000000000000000000000..a8943aaf877e18d8ebf7dbbae062706411f5d5ab GIT binary patch literal 890 zcmV-=1BLvFP)RX_}Vj^BDl(`#u1m z`kbceMDqK=;{eymKkE2QpCRHTN%Hi>n)DqCZqpwmNm5p~$bP>c^ww~w2SCke0O|oy zGa7(;0Mv{IpdJ7H$zQ8i0BL)Qkq89so6?0jLK+&1eAX0Z{Yh4bb>d z^byaV9QWlg)wltG+r^3scHzKcLj|NAiA!2PcSr`CVR0j`_?2b0HkR;d35)u zyBrl)en_4$`StT#<30TS$8V)E+Qx*gz03uG#XJB2yuO_fyv%U=c;_8-nu=$$fY^`1 za~$A0IfmzXwGKM%Gf=ApgO{1IqfQ$#dRUsT(VG@IzMfyqq4W58k_C?mX1vqd$XhGEEE zU)0)Sqq8Q}Hp#7kchon{iY zr`aA?P1sZ>sAU0FwWrf;QJr9(=T;^UNWKL`bec_csm@9oEQ*3xd?Gr{7P9iU+BSs? zTFq*Ek@B6Lp6dm9i;8?U5 z&;DiF;c$@F;i~t2=B^YLU0yK9|DK}{hnPBS-+++pzV$FKR} Date: Mon, 26 Jun 2023 16:12:58 +0200 Subject: [PATCH 159/432] small fixes, config options --- changelog | 15 +++++++++------ .../blocks/generic/BlockGlyphidSpawner.java | 11 ++++++----- .../hbm/blocks/machine/MachineExcavator.java | 5 ++++- src/main/java/com/hbm/config/MobConfig.java | 17 +++++++++++++++++ .../com/hbm/entity/mob/EntityFBIDrone.java | 4 ++-- src/main/java/com/hbm/lib/HbmWorldGen.java | 5 +++-- .../textures/gui/fluids/calcium_solution.png | Bin 0 -> 708 bytes 7 files changed, 41 insertions(+), 16 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/calcium_solution.png diff --git a/changelog b/changelog index b31f60f2d..57cd7d610 100644 --- a/changelog +++ b/changelog @@ -2,15 +2,16 @@ * Glpyhids * Hives will spawn randomly in the world * Hives will constantly spawn new glyphids - * If explosed to soot, hives will create glyphid scouts, which when far enough from another hive will explode and generate a new hive + * If exposed to soot, hives will create glyphid scouts, which when far enough from another hive will explode and generate a new hive * Higher soot levels create stronger glyphids - * Glyphids possess armor which has a chance of breaking off and fully abrosrbing damage + * Glyphids possess armor which has a chance of breaking off and fully absorbing damage * Each glyphid has five armor plates * Glyphid types include multiple tiers of melee glyphids as well as a few ranged ones, the scout, and a nuclear variant * Compressor * Can compress fluids, turning them into higher pressure variants + * Higher pressure fluid can use the same ducts as regular fluids, connections work the same so long as the input tank can accept the higher pressure type * Can also turn steam into higher pressure types - * Vacuum refning now requires oil at 2 PU + * Vacuum refining now requires oil at 2 PU * Some chemical plant recipes also require compressed fluid, TATB requires sour gas at 1 PU and osmiridic solution requires hydrogen peroxide at 5 PU * A new rocket artillery ammo type that creates volcanic lava on impact * BDCL @@ -27,11 +28,11 @@ * The pollution detector now displays rounded values * More machines and especially destroyed ones now release soot * The iGen has been rebalanced again, delete your machine config file for the changes to take effect - * The lubrican power multiplier has been increased from 1.1 to 1.5 + * The lubricant power multiplier has been increased from 1.1 to 1.5 * The fluid divisor has been lowered from 5,000 to 1,000, meaning the iGen now burns flammable liquids at full efficiency * Removed the config for having an additional keybind for dashing, the keybind is now always active since it no longer conflicts with crouching * Crucible recipes no longer use foundry scraps to visualize the recipes, instead they use a lava-like texture -* Fusion reactors are now made from welded magnets which are created by weling a cast steel plate onto a magnet +* Fusion reactors are now made from welded magnets which are created by welding a cast steel plate onto a magnet * Due to the cost of the cast plates, fusion reactor magnets are now cheaper to compensate * Consequently, particle accelerators are now also cheaper due to being made from mostly fusion reactor magnets * The blowtorch now consumes only 250mB per operation, allowing for up to 16 things to be welded with a single fill @@ -48,4 +49,6 @@ * Fixed missiles leaving behind a 3x3 grid of loaded chunks after being destroyed * Fixed coal ore yielding coal in the crucible instead of making carbon * Fixed a potential issue where BuildCraft generators can't supply the RF to HE converter -* Fixed combustion engine sound sometimes continue playing even when turned off \ No newline at end of file +* Fixed combustion engine sound sometimes continue playing even when turned off +* Fixed large mining drill not properly performing a block check and potentially deleting blocks when placed +* Fixed calcium solution not having a fluid texture \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java b/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java index 7e9d805f5..8de0979ae 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java +++ b/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java @@ -3,6 +3,7 @@ package com.hbm.blocks.generic; import java.util.List; import java.util.Random; +import com.hbm.config.MobConfig; import com.hbm.entity.mob.EntityGlyphid; import com.hbm.entity.mob.EntityGlyphidBehemoth; import com.hbm.entity.mob.EntityGlyphidBlaster; @@ -49,7 +50,7 @@ public class BlockGlyphidSpawner extends BlockContainer { this.worldObj.spawnEntityInWorld(glyphid); } - if(worldObj.rand.nextInt(20) == 0 && soot > 0) { + if(worldObj.rand.nextInt(20) == 0 && soot >= MobConfig.scoutThreshold) { EntityGlyphidScout scout = new EntityGlyphidScout(worldObj); scout.setLocationAndAngles(xCoord + 0.5, yCoord + 1, zCoord + 0.5, worldObj.rand.nextFloat() * 360.0F, 0.0F); this.worldObj.spawnEntityInWorld(scout); @@ -60,10 +61,10 @@ public class BlockGlyphidSpawner extends BlockContainer { public EntityGlyphid createGlyphid(float soot) { Random rand = new Random(); - if(soot < 1) return rand.nextInt(5) == 0 ? new EntityGlyphidBombardier(worldObj) : new EntityGlyphid(worldObj); - if(soot < 10) return rand.nextInt(5) == 0 ? new EntityGlyphidBombardier(worldObj) : new EntityGlyphidBrawler(worldObj); - if(soot < 50) return rand.nextInt(5) == 0 ? new EntityGlyphidBlaster(worldObj) : new EntityGlyphidBehemoth(worldObj); - if(soot < 100) return rand.nextInt(5) == 0 ? new EntityGlyphidBlaster(worldObj) : new EntityGlyphidBrenda(worldObj); + if(soot < MobConfig.tier2Threshold) return rand.nextInt(5) == 0 ? new EntityGlyphidBombardier(worldObj) : new EntityGlyphid(worldObj); + if(soot < MobConfig.tier3Threshold) return rand.nextInt(5) == 0 ? new EntityGlyphidBombardier(worldObj) : new EntityGlyphidBrawler(worldObj); + if(soot < MobConfig.tier4Threshold) return rand.nextInt(5) == 0 ? new EntityGlyphidBlaster(worldObj) : new EntityGlyphidBehemoth(worldObj); + if(soot < MobConfig.tier5Threshold) return rand.nextInt(5) == 0 ? new EntityGlyphidBlaster(worldObj) : new EntityGlyphidBrenda(worldObj); return rand.nextInt(3) == 0 ? new EntityGlyphidBlaster(worldObj) : new EntityGlyphidNuclear(worldObj); } diff --git a/src/main/java/com/hbm/blocks/machine/MachineExcavator.java b/src/main/java/com/hbm/blocks/machine/MachineExcavator.java index 0d27866a6..c91d6bb16 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineExcavator.java +++ b/src/main/java/com/hbm/blocks/machine/MachineExcavator.java @@ -51,7 +51,10 @@ public class MachineExcavator extends BlockDummyable { y += dir.offsetY * o; z += dir.offsetZ * o; - return MultiblockHandlerXR.checkSpace(world, x, y, z, getDimensions(), x, y, z, dir); + return MultiblockHandlerXR.checkSpace(world, x, y, z, getDimensions(), x, y, z, dir) && + MultiblockHandlerXR.checkSpace(world, x, y, z, new int[] {-1, 3, 3, -2, 3, -2}, x, y, z, dir) && + MultiblockHandlerXR.checkSpace(world, x, y, z, new int[] {-1, 3, 3, -2, -2, 3}, x, y, z, dir) && + MultiblockHandlerXR.checkSpace(world, x, y, z, new int[] {-1, 3, -2, 3, 3, 3}, x, y, z, dir); } @Override diff --git a/src/main/java/com/hbm/config/MobConfig.java b/src/main/java/com/hbm/config/MobConfig.java index 5232b8351..1fce6249f 100644 --- a/src/main/java/com/hbm/config/MobConfig.java +++ b/src/main/java/com/hbm/config/MobConfig.java @@ -28,6 +28,15 @@ public class MobConfig { public static boolean enableDucks = true; public static boolean enableMobGear = true; + public static boolean enableHives = true; + public static int hiveSpawn = 128; + public static double scoutThreshold = 0.1; + public static double tier2Threshold = 1; + public static double tier3Threshold = 10; + public static double tier4Threshold = 50; + public static double tier5Threshold = 100; + + public static void loadFromConfig(Configuration config) { final String CATEGORY = CommonConfig.CATEGORY_MOBS; @@ -55,5 +64,13 @@ public class MobConfig { enableDucks = CommonConfig.createConfigBool(config, CATEGORY, "12.D00_enableDucks", "Whether pressing O should allow the player to duck", true); enableMobGear = CommonConfig.createConfigBool(config, CATEGORY, "12.D01_enableMobGear", "Whether zombies and skeletons should have additional gear when spawning", true); + + enableHives = CommonConfig.createConfigBool(config, CATEGORY, "12.G00_enableHives", "Whether glyphid hives should spawn", true); + hiveSpawn = CommonConfig.createConfigInt(config, CATEGORY, "12.G01_hiveSpawn", "The average amount of chunks per hive", 128); + scoutThreshold = CommonConfig.createConfigDouble(config, CATEGORY, "12.G02_scoutThreshold", "Minimum amount of soot for scouts to spawn", 0.1); + tier2Threshold = CommonConfig.createConfigDouble(config, CATEGORY, "12.G03_tier2Threshold", "Minimum amount of soot for tier 2 glyphids to spawn", 1); + tier3Threshold = CommonConfig.createConfigDouble(config, CATEGORY, "12.G04_tier3Threshold", "Minimum amount of soot for tier 3 glyphids to spawn", 10); + tier4Threshold = CommonConfig.createConfigDouble(config, CATEGORY, "12.G05_tier4Threshold", "Minimum amount of soot for tier 4 glyphids to spawn", 50); + tier5Threshold = CommonConfig.createConfigDouble(config, CATEGORY, "12.G06_tier5Threshold", "Minimum amount of soot for tier 5 glyphids to spawn", 100); } } diff --git a/src/main/java/com/hbm/entity/mob/EntityFBIDrone.java b/src/main/java/com/hbm/entity/mob/EntityFBIDrone.java index b773cd3ff..97110b54f 100644 --- a/src/main/java/com/hbm/entity/mob/EntityFBIDrone.java +++ b/src/main/java/com/hbm/entity/mob/EntityFBIDrone.java @@ -1,6 +1,6 @@ package com.hbm.entity.mob; -import com.hbm.entity.grenade.EntityGrenadeGeneric; +import com.hbm.entity.grenade.EntityGrenadeStrong; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.util.Vec3; @@ -29,7 +29,7 @@ public class EntityFBIDrone extends EntityUFOBase { Vec3 vec = Vec3.createVectorHelper(posX - target.posX, posY - target.posY, posZ - target.posZ); if(Math.abs(vec.xCoord) < 5 && Math.abs(vec.zCoord) < 5 && vec.yCoord > 3) { attackCooldown = 60; - EntityGrenadeGeneric grenade = new EntityGrenadeGeneric(worldObj); + EntityGrenadeStrong grenade = new EntityGrenadeStrong(worldObj); grenade.setPosition(posX, posY, posZ); worldObj.spawnEntityInWorld(grenade); } diff --git a/src/main/java/com/hbm/lib/HbmWorldGen.java b/src/main/java/com/hbm/lib/HbmWorldGen.java index 04c41da43..6d2af30ab 100644 --- a/src/main/java/com/hbm/lib/HbmWorldGen.java +++ b/src/main/java/com/hbm/lib/HbmWorldGen.java @@ -7,6 +7,7 @@ import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockMotherOfAllOres; import com.hbm.blocks.generic.BlockNTMFlower.EnumFlowerType; import com.hbm.config.GeneralConfig; +import com.hbm.config.MobConfig; import com.hbm.config.WorldConfig; import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; @@ -218,11 +219,11 @@ public class HbmWorldGen implements IWorldGenerator { if(GeneralConfig.enableDungeons && world.provider.isSurfaceWorld()) { - if(rand.nextInt(1000) == 0) { + if(MobConfig.enableHives && rand.nextInt(MobConfig.hiveSpawn) == 0) { int x = i + rand.nextInt(16) + 8; int z = j + rand.nextInt(16) + 8; int y = world.getHeightValue(x, z); - GlyphidHive.generate(world, x, y, z, rand); + if(world.getBlock(x, y - 1, z).isNormalCube()) GlyphidHive.generate(world, x, y, z, rand); } if(biome == BiomeGenBase.plains || biome == BiomeGenBase.desert) { diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/calcium_solution.png b/src/main/resources/assets/hbm/textures/gui/fluids/calcium_solution.png new file mode 100644 index 0000000000000000000000000000000000000000..f1ebd5aba4619ce2699a1d0678639c73f5345e78 GIT binary patch literal 708 zcmV;#0z3VQP)>_ zij)$i)R3;OYgVfj0A1G+LLjQDYDkbI2|@_IzP>1mf~IK@LJ&m}08P^jcv+SK5D6hr zO3`&4o6Uwej=8(Lqby7Q@Qg7CApkJOu;1^|T2oaOVmuzBwPrjX56i&+F!DU7ZCjL5 zIOoW+3}XyhYlIMjzVA^=v0kqUAt0rsX&Rh!%;$525R_$!b8a~9-xNhrkR-`anNo@@ z%UCQHlx4~5>npq64(~mO!-3Ig#N~1!j$GnmG)-~NvET36Y&NV`E4r>@ zyWNuK`5=ukhOX=I-cwc8e=RgkgZG|4j3|nDd3m9#D)KzXT8oqtDJ5OkQ4|GADe^og ziXx&UNod;^tu<}ivREvz)-oQCvDOX_D5WThVo*KLb3zD+5CYa(wAO?W0GLjv)OG!5 q8UW|>nYXt$K0ZDGI2;ZLA@~O#o<1iFE_aXs0000 Date: Mon, 26 Jun 2023 18:26:59 +0200 Subject: [PATCH 160/432] doxotron --- changelog | 1 + src/main/java/com/hbm/entity/mob/EntityFBI.java | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/changelog b/changelog index 57cd7d610..871d564ea 100644 --- a/changelog +++ b/changelog @@ -43,6 +43,7 @@ * Leaded fuels now release heavy metal into the air, heavy metal can cause lead poisoning * Lower heavy metal concentrations can also cause heavy metal poisoning when breaking blocks * Gas artillery shell now create heavy metal and poisonous pollution +* FBI agents will now target the player from a much larger distance ## Fixed * Fixed potential crash or logspam regarding the pollution handler diff --git a/src/main/java/com/hbm/entity/mob/EntityFBI.java b/src/main/java/com/hbm/entity/mob/EntityFBI.java index df1ed0755..ce51f5d25 100644 --- a/src/main/java/com/hbm/entity/mob/EntityFBI.java +++ b/src/main/java/com/hbm/entity/mob/EntityFBI.java @@ -8,6 +8,7 @@ import com.hbm.blocks.ModBlocks; import com.hbm.config.MobConfig; import com.hbm.entity.mob.ai.EntityAIBreaking; import com.hbm.entity.mob.ai.EntityAI_MLPF; +import com.hbm.entity.pathfinder.PathFinderUtils; import com.hbm.entity.projectile.EntityBullet; import com.hbm.items.ModItems; @@ -50,7 +51,7 @@ public class EntityFBI extends EntityMob implements IRangedAttackMob { this.tasks.addTask(2, new EntityAIArrowAttack(this, 1D, 20, 25, 15.0F)); this.tasks.addTask(3, new EntityAIAttackOnCollide(this, EntityPlayer.class, 1.0D, true)); this.tasks.addTask(5, new EntityAIMoveTowardsRestriction(this, 1.0D)); - this.tasks.addTask(6, new EntityAI_MLPF(this, EntityPlayer.class, 100, 1D, 16)); + //this.tasks.addTask(6, new EntityAI_MLPF(this, EntityPlayer.class, 100, 1D, 16)); this.tasks.addTask(7, new EntityAIWander(this, 1.0D)); this.tasks.addTask(8, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F)); this.tasks.addTask(8, new EntityAILookIdle(this)); @@ -119,6 +120,20 @@ public class EntityFBI extends EntityMob implements IRangedAttackMob { protected boolean isAIEnabled() { return true; } + + @Override + protected void updateAITasks() { + super.updateAITasks(); + + if(this.getAttackTarget() == null) { + this.setAttackTarget(this.worldObj.getClosestVulnerablePlayerToEntity(this, 128.0D)); + } + + // hell yeah!! + if(this.getAttackTarget() != null) { + this.getNavigator().setPath(PathFinderUtils.getPathEntityToEntityPartial(worldObj, this, this.getAttackTarget(), 16F, true, false, false, true), 1); + } + } //combat vest = full diamond set public int getTotalArmorValue() { From ae88efa44949f22830c207bd41dae37ed40af837 Mon Sep 17 00:00:00 2001 From: Vaern Date: Mon, 26 Jun 2023 09:36:33 -0700 Subject: [PATCH 161/432] joever --- src/main/java/com/hbm/lib/HbmChestContents.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/lib/HbmChestContents.java b/src/main/java/com/hbm/lib/HbmChestContents.java index 7dc26a319..ddeee1df8 100644 --- a/src/main/java/com/hbm/lib/HbmChestContents.java +++ b/src/main/java/com/hbm/lib/HbmChestContents.java @@ -415,7 +415,7 @@ public class HbmChestContents { public static ItemStack generateOfficeBook(Random rand) { //TODO rework this lore in general String key; int pages; - switch(rand.nextInt(5)) { + switch(rand.nextInt(10)) { case 0: key = "resignation_note"; pages = 3; break; case 1: @@ -426,6 +426,16 @@ public class HbmChestContents { key = "memo_schrab_rd"; pages = 4; break; case 4: key = "memo_schrab_nuke"; pages = 3; break; + case 5: + key = "bf_bomb_1"; pages = 4; break; + case 6: + key = "bf_bomb_2"; pages = 6; break; + case 7: + key = "bf_bomb_3"; pages = 6; break; + case 8: + key = "bf_bomb_4"; pages = 5; break; + case 10: + key = "bf_bomb_5"; pages = 9; break; default: return null; } From b853faf265a0d66d62a877deec0f3c962017bff0 Mon Sep 17 00:00:00 2001 From: Vaern Date: Mon, 26 Jun 2023 09:38:17 -0700 Subject: [PATCH 162/432] a --- src/main/java/com/hbm/lib/HbmChestContents.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/lib/HbmChestContents.java b/src/main/java/com/hbm/lib/HbmChestContents.java index ddeee1df8..cdd0a61cd 100644 --- a/src/main/java/com/hbm/lib/HbmChestContents.java +++ b/src/main/java/com/hbm/lib/HbmChestContents.java @@ -434,7 +434,7 @@ public class HbmChestContents { key = "bf_bomb_3"; pages = 6; break; case 8: key = "bf_bomb_4"; pages = 5; break; - case 10: + case 9: key = "bf_bomb_5"; pages = 9; break; default: return null; From 0ac2445329acfbb76ab347454d1e86a9260bcddf Mon Sep 17 00:00:00 2001 From: Bob Date: Mon, 26 Jun 2023 19:52:36 +0200 Subject: [PATCH 163/432] i'll fucking shoot somebody --- src/main/java/com/hbm/main/ClientProxy.java | 5 +++++ src/main/java/com/hbm/main/ServerProxy.java | 2 ++ .../hbm/tileentity/machine/TileEntityMachineCompressor.java | 3 ++- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 5852d92cd..84723d576 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -1988,5 +1988,10 @@ public class ClientProxy extends ServerProxy { public boolean getImpact(World world) { return ImpactWorldHandler.getImpactForClient(world); } + + @Override + public void playSoundFuckMojang(double x, double y, double z, String sound, float volume, float pitch) { + Minecraft.getMinecraft().getSoundHandler().playSound(new PositionedSoundRecord(new ResourceLocation(sound), volume, pitch, (float) x, (float) y, (float) z)); + } } diff --git a/src/main/java/com/hbm/main/ServerProxy.java b/src/main/java/com/hbm/main/ServerProxy.java index ac286d931..783dc4df3 100644 --- a/src/main/java/com/hbm/main/ServerProxy.java +++ b/src/main/java/com/hbm/main/ServerProxy.java @@ -84,4 +84,6 @@ public class ServerProxy { public boolean getImpact(World world) { return TomSaveData.forWorld(world).impact; } + + public void playSoundFuckMojang(double x, double y, double z, String sound, float volume, float pitch) { } } \ No newline at end of file diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java index 285c36a20..a21a30834 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java @@ -11,6 +11,7 @@ import com.hbm.inventory.recipes.CompressorRecipes; import com.hbm.inventory.recipes.CompressorRecipes.CompressorRecipe; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; +import com.hbm.main.MainRegistry; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.Tuple.Pair; @@ -133,7 +134,7 @@ public class TileEntityMachineCompressor extends TileEntityMachineBase implement if(this.pistonDir) { this.piston -= randSpeed; if(this.piston <= 0) { - Minecraft.getMinecraft().getSoundHandler().playSound(new PositionedSoundRecord(new ResourceLocation("hbm:item.boltgun"), 0.5F, 0.75F, xCoord, yCoord, zCoord)); + MainRegistry.proxy.playSoundFuckMojang(xCoord, yCoord, zCoord, "hbm:item.boltgun", 0.5F, 0.75F); this.pistonDir = !this.pistonDir; } } else { From f9959e9a4a92c0e793db332f16f4eb6ca80a4976 Mon Sep 17 00:00:00 2001 From: Voxelstice Date: Mon, 26 Jun 2023 22:31:53 +0300 Subject: [PATCH 164/432] aaaaaaaaaaaaaaaaaa --- .../java/com/hbm/items/tool/ItemWiring.java | 27 ++++++++++++------- .../network/TileEntityPylonBase.java | 12 +++------ 2 files changed, 21 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/hbm/items/tool/ItemWiring.java b/src/main/java/com/hbm/items/tool/ItemWiring.java index 2f384dccb..cd6b5d787 100644 --- a/src/main/java/com/hbm/items/tool/ItemWiring.java +++ b/src/main/java/com/hbm/items/tool/ItemWiring.java @@ -60,17 +60,24 @@ public class ItemWiring extends Item { TileEntityPylonBase first = (TileEntityPylonBase) world.getTileEntity(x1, y1, z1); TileEntityPylonBase second = ((TileEntityPylonBase) te); - - if(TileEntityPylonBase.canConnect(first, second)) { - - first.addConnection(x, y, z); - second.addConnection(x1, y1, z1); - player.addChatMessage(new ChatComponentText("Wire end")); - - } else { - player.addChatMessage(new ChatComponentText("Wire error - " + TileEntityPylonBase.errorMessage)); + + switch (TileEntityPylonBase.canConnect(first, second)) { + case 0: + first.addConnection(x, y, z); + second.addConnection(x1, y1, z1); + player.addChatMessage(new ChatComponentText("Wire end")); + break; + case 1: + player.addChatMessage(new ChatComponentText("Wire error - Pylons are not the same type")); + break; + case 2: + player.addChatMessage(new ChatComponentText("Wire error - Cannot connect to the same pylon")); + break; + case 3: + player.addChatMessage(new ChatComponentText("Wire error - Pylon is too far away")); + break; } - + stack.stackTagCompound = null; } else { diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityPylonBase.java b/src/main/java/com/hbm/tileentity/network/TileEntityPylonBase.java index 7e55e2f17..18c17166a 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityPylonBase.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityPylonBase.java @@ -18,18 +18,15 @@ import net.minecraft.world.WorldServer; public abstract class TileEntityPylonBase extends TileEntityCableBaseNT { public List connected = new ArrayList(); - public static String errorMessage = ""; - public static boolean canConnect(TileEntityPylonBase first, TileEntityPylonBase second) { + public static int canConnect(TileEntityPylonBase first, TileEntityPylonBase second) { if(first.getConnectionType() != second.getConnectionType()) { - errorMessage = "pylons are not the same type"; - return false; + return 1; } if(first == second) { - errorMessage = "cannot connect to the same pylon"; - return false; + return 2; } double len = Math.min(first.getMaxWireLength(), second.getMaxWireLength()); @@ -43,8 +40,7 @@ public abstract class TileEntityPylonBase extends TileEntityCableBaseNT { (secondPos.zCoord) - (firstPos.zCoord) ); - errorMessage = "pylon too far away"; - return len >= delta.lengthVector(); + return len >= delta.lengthVector() ? 0 : 3; } public void addConnection(int x, int y, int z) { From f29a9d7250041f4b73ee962496b3d6d51a30238a Mon Sep 17 00:00:00 2001 From: Voxelstice <95834462+Voxelstice@users.noreply.github.com> Date: Mon, 26 Jun 2023 22:33:11 +0300 Subject: [PATCH 165/432] those extra 2 lines aren't useful anymore --- .../com/hbm/tileentity/network/TileEntityPylonBase.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityPylonBase.java b/src/main/java/com/hbm/tileentity/network/TileEntityPylonBase.java index 18c17166a..09e335094 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityPylonBase.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityPylonBase.java @@ -21,13 +21,11 @@ public abstract class TileEntityPylonBase extends TileEntityCableBaseNT { public static int canConnect(TileEntityPylonBase first, TileEntityPylonBase second) { - if(first.getConnectionType() != second.getConnectionType()) { + if(first.getConnectionType() != second.getConnectionType()) return 1; - } - if(first == second) { + if(first == second) return 2; - } double len = Math.min(first.getMaxWireLength(), second.getMaxWireLength()); From cd7b68d7ce62df9f8e52b33b7323be858d5f9e05 Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 27 Jun 2023 16:31:50 +0200 Subject: [PATCH 166/432] glyphid spawn limit --- .../com/hbm/blocks/generic/BlockGlyphidSpawner.java | 10 +++++++++- src/main/java/com/hbm/config/MobConfig.java | 2 ++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java b/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java index 8de0979ae..d0b4643d8 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java +++ b/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java @@ -39,7 +39,15 @@ public class BlockGlyphidSpawner extends BlockContainer { public void updateEntity() { if(!worldObj.isRemote && worldObj.getTotalWorldTime() % 60 == 0 && this.worldObj.difficultySetting != EnumDifficulty.PEACEFUL) { - + + int count = 0; + + for(Object e : worldObj.loadedEntityList) { + if(e instanceof EntityGlyphid) { + count++; + if(count >= MobConfig.spawnMax) return; + } + } float soot = PollutionHandler.getPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT); List list = worldObj.getEntitiesWithinAABB(EntityGlyphid.class, AxisAlignedBB.getBoundingBox(xCoord - 6, yCoord + 1, zCoord - 6, xCoord + 7, yCoord + 9, zCoord + 7)); diff --git a/src/main/java/com/hbm/config/MobConfig.java b/src/main/java/com/hbm/config/MobConfig.java index 1fce6249f..301f330c7 100644 --- a/src/main/java/com/hbm/config/MobConfig.java +++ b/src/main/java/com/hbm/config/MobConfig.java @@ -35,6 +35,7 @@ public class MobConfig { public static double tier3Threshold = 10; public static double tier4Threshold = 50; public static double tier5Threshold = 100; + public static double spawnMax = 50; public static void loadFromConfig(Configuration config) { @@ -72,5 +73,6 @@ public class MobConfig { tier3Threshold = CommonConfig.createConfigDouble(config, CATEGORY, "12.G04_tier3Threshold", "Minimum amount of soot for tier 3 glyphids to spawn", 10); tier4Threshold = CommonConfig.createConfigDouble(config, CATEGORY, "12.G05_tier4Threshold", "Minimum amount of soot for tier 4 glyphids to spawn", 50); tier5Threshold = CommonConfig.createConfigDouble(config, CATEGORY, "12.G06_tier5Threshold", "Minimum amount of soot for tier 5 glyphids to spawn", 100); + spawnMax = CommonConfig.createConfigDouble(config, CATEGORY, "12.G07_spawnMax", "Maximum amount of glyphids being able to exist at once through natural spawning", 50); } } From cd12d6d9afa51f5b3389e31491e45a01878c69cd Mon Sep 17 00:00:00 2001 From: Bob Date: Wed, 28 Jun 2023 22:05:29 +0200 Subject: [PATCH 167/432] configs configs, glyphid meat, yummy yummy fruit salad --- changelog | 58 +++--------------- .../blocks/generic/BlockGlyphidSpawner.java | 12 ++++ .../java/com/hbm/config/CommonConfig.java | 1 + .../java/com/hbm/config/RadiationConfig.java | 19 ++++++ .../com/hbm/crafting/SmeltingRecipes.java | 2 + .../com/hbm/entity/mob/EntityGlyphid.java | 7 +++ .../java/com/hbm/extprop/HbmPlayerProps.java | 30 ++++++--- .../com/hbm/handler/EntityEffectHandler.java | 8 ++- .../handler/pollution/PollutionHandler.java | 20 +++++- src/main/java/com/hbm/items/ModItems.java | 9 +++ src/main/java/com/hbm/main/ClientProxy.java | 2 +- .../java/com/hbm/main/ModEventHandler.java | 29 +++++---- .../com/hbm/main/ModEventHandlerRenderer.java | 17 ++--- src/main/java/com/hbm/main/ServerProxy.java | 2 +- .../machine/TileEntityMachineCompressor.java | 5 +- src/main/resources/assets/hbm/lang/de_DE.lang | 2 + src/main/resources/assets/hbm/lang/en_US.lang | 2 + .../assets/hbm/textures/items/egg_glyphid.png | Bin 0 -> 393 bytes .../hbm/textures/items/egg_glyphid_base.png | Bin 0 -> 281 bytes .../hbm/textures/items/glyphid_meat.png | Bin 0 -> 414 bytes .../textures/items/glyphid_meat_grilled.png | Bin 0 -> 471 bytes .../hbm/textures/models/trinkets/peep.png | Bin 0 -> 888 bytes 22 files changed, 133 insertions(+), 92 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/items/egg_glyphid.png create mode 100644 src/main/resources/assets/hbm/textures/items/egg_glyphid_base.png create mode 100644 src/main/resources/assets/hbm/textures/items/glyphid_meat.png create mode 100644 src/main/resources/assets/hbm/textures/items/glyphid_meat_grilled.png create mode 100644 src/main/resources/assets/hbm/textures/models/trinkets/peep.png diff --git a/changelog b/changelog index 871d564ea..2bb086e00 100644 --- a/changelog +++ b/changelog @@ -1,55 +1,13 @@ ## Added -* Glpyhids - * Hives will spawn randomly in the world - * Hives will constantly spawn new glyphids - * If exposed to soot, hives will create glyphid scouts, which when far enough from another hive will explode and generate a new hive - * Higher soot levels create stronger glyphids - * Glyphids possess armor which has a chance of breaking off and fully absorbing damage - * Each glyphid has five armor plates - * Glyphid types include multiple tiers of melee glyphids as well as a few ranged ones, the scout, and a nuclear variant -* Compressor - * Can compress fluids, turning them into higher pressure variants - * Higher pressure fluid can use the same ducts as regular fluids, connections work the same so long as the input tank can accept the higher pressure type - * Can also turn steam into higher pressure types - * Vacuum refining now requires oil at 2 PU - * Some chemical plant recipes also require compressed fluid, TATB requires sour gas at 1 PU and osmiridic solution requires hydrogen peroxide at 5 PU -* A new rocket artillery ammo type that creates volcanic lava on impact -* BDCL - * A type of lubricant that is easy to make and can be used in hydraulic piston and electric press recipes instead of regular lubricant -* FBI drones - * A configurable amount of drones can now spawn during FBI raids - * They will hover over players, dropping bombs +* Configs for all things pollution related + * Pollution in general can be turned off, smog can be disabeld and adjusted, different poison types can be disabled and the threshold for spawning tougher mobs can also be changed +* Glyphid meat + * Dropped by glyphids (duh) + * Can be grilled ## Changed -* Updated russian localization -* Fluid traits can now be configured, any fluid can now have any fluid with variable stats assigned to them -* Large explosions now load the central chunk they are in, this can be disabled in the config -* Burning leaded fuels now releases poisonous heavy metals into the atmosphere -* The pollution detector now displays rounded values -* More machines and especially destroyed ones now release soot -* The iGen has been rebalanced again, delete your machine config file for the changes to take effect - * The lubricant power multiplier has been increased from 1.1 to 1.5 - * The fluid divisor has been lowered from 5,000 to 1,000, meaning the iGen now burns flammable liquids at full efficiency -* Removed the config for having an additional keybind for dashing, the keybind is now always active since it no longer conflicts with crouching -* Crucible recipes no longer use foundry scraps to visualize the recipes, instead they use a lava-like texture -* Fusion reactors are now made from welded magnets which are created by welding a cast steel plate onto a magnet - * Due to the cost of the cast plates, fusion reactor magnets are now cheaper to compensate - * Consequently, particle accelerators are now also cheaper due to being made from mostly fusion reactor magnets -* The blowtorch now consumes only 250mB per operation, allowing for up to 16 things to be welded with a single fill -* The page and notebook items have been replaced with more dynamic book items that get their data from NBT -* C4 can now be made by irradiating PVC - * Play stupid games, win stupid prizes -* Gas grenades now use the new gas system which should be a lot more pleasant to look at and less heavy on the TPS -* Leaded fuels now release heavy metal into the air, heavy metal can cause lead poisoning - * Lower heavy metal concentrations can also cause heavy metal poisoning when breaking blocks -* Gas artillery shell now create heavy metal and poisonous pollution -* FBI agents will now target the player from a much larger distance +* Glyphids now have a config for a global spawn limit, which is 50 by default, no more than this many glyphids can be created at once ## Fixed -* Fixed potential crash or logspam regarding the pollution handler -* Fixed missiles leaving behind a 3x3 grid of loaded chunks after being destroyed -* Fixed coal ore yielding coal in the crucible instead of making carbon -* Fixed a potential issue where BuildCraft generators can't supply the RF to HE converter -* Fixed combustion engine sound sometimes continue playing even when turned off -* Fixed large mining drill not properly performing a block check and potentially deleting blocks when placed -* Fixed calcium solution not having a fluid texture \ No newline at end of file +* Fixed player extprops like the HUD or backpack toggles not saving +* Fixed desync caused by teleporting between dimensions, switching toggles for HUD or backpack \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java b/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java index d0b4643d8..f02a8efba 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java +++ b/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java @@ -14,9 +14,11 @@ import com.hbm.entity.mob.EntityGlyphidNuclear; import com.hbm.entity.mob.EntityGlyphidScout; import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.pollution.PollutionHandler.PollutionType; +import com.hbm.items.ModItems; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; +import net.minecraft.item.Item; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.EnumDifficulty; @@ -28,6 +30,16 @@ public class BlockGlyphidSpawner extends BlockContainer { super(p_i45386_1_); } + @Override + public Item getItemDropped(int meta, Random rand, int fortune) { + return ModItems.egg_glyphid; + } + + @Override + public int quantityDropped(int meta, int fortune, Random rand) { + return 1 + rand.nextInt(3) + fortune; + } + @Override public TileEntity createNewTileEntity(World world, int meta) { return new TileEntityGlpyhidSpawner(); diff --git a/src/main/java/com/hbm/config/CommonConfig.java b/src/main/java/com/hbm/config/CommonConfig.java index 57495b68a..e1d6ed63c 100644 --- a/src/main/java/com/hbm/config/CommonConfig.java +++ b/src/main/java/com/hbm/config/CommonConfig.java @@ -22,6 +22,7 @@ public class CommonConfig { public static final String CATEGORY_RADIATION = "13_radiation"; public static final String CATEGORY_HAZARD = "14_hazard"; public static final String CATEGORY_STRUCTURES = "15_structures"; + public static final String CATEGORY_POLLUTION = "16_pollution"; public static final String CATEGORY_528 = "528"; public static final String CATEGORY_LBSM = "LESS BULLSHIT MODE"; diff --git a/src/main/java/com/hbm/config/RadiationConfig.java b/src/main/java/com/hbm/config/RadiationConfig.java index ad7b0acd7..25be90304 100644 --- a/src/main/java/com/hbm/config/RadiationConfig.java +++ b/src/main/java/com/hbm/config/RadiationConfig.java @@ -22,6 +22,15 @@ public class RadiationConfig { public static boolean disableHydro = false; public static boolean disableBlinding = false; public static boolean disableFibrosis = false; + + public static boolean enablePollution = true; + public static boolean enableLeadFromBlocks = true; + public static boolean enableLeadPoisoning = true; + public static boolean enableSootFog = true; + public static boolean enablePoison = true; + public static double buffMobThreshold = 15D; + public static double sootFogThreshold = 35D; + public static double sootFogDivisor = 120D; public static void loadFromConfig(Configuration config) { @@ -49,5 +58,15 @@ public class RadiationConfig { disableHydro = CommonConfig.createConfigBool(config, CATEGORY_HAZ, "HAZ_04_disableHydroactive", "When turned off, all hydroactive hazards are disabled", false); disableBlinding = CommonConfig.createConfigBool(config, CATEGORY_HAZ, "HAZ_05_disableBlinding", "When turned off, all blinding hazards are disabled", false); disableFibrosis = CommonConfig.createConfigBool(config, CATEGORY_HAZ, "HAZ_06_disableFibrosis", "When turned off, all fibrosis hazards are disabled", false); + + final String CATEGORY_POL = CommonConfig.CATEGORY_POLLUTION; + enablePollution = CommonConfig.createConfigBool(config, CATEGORY_POL, "POL_00_enablePollution", "If disabled, none of the polltuion related things will work", true); + enableLeadFromBlocks = CommonConfig.createConfigBool(config, CATEGORY_POL, "POL_01_enableLeadFromBlocks", "Whether breaking blocks in heavy metal polluted areas will poison the player", true); + enableLeadPoisoning = CommonConfig.createConfigBool(config, CATEGORY_POL, "POL_02_enableLeadPoisoning", "Whether being in a heavy metal polluted area will poison the player", true); + enableSootFog = CommonConfig.createConfigBool(config, CATEGORY_POL, "POL_03_enableSootFog", "Whether smog should be visible", true); + enablePoison = CommonConfig.createConfigBool(config, CATEGORY_POL, "POL_04_enablePoison", "Whether being in a poisoned area will affect the player", true); + buffMobThreshold = CommonConfig.createConfigDouble(config, CATEGORY_POL, "POL_05_buffMobThreshold", "The amount of soot required to buff naturally spawning mobs", 15D); + sootFogThreshold = CommonConfig.createConfigDouble(config, CATEGORY_POL, "POL_06_sootFogThreshold", "How much soot is required for smog to become visible", 35D); + sootFogDivisor = CommonConfig.createConfigDouble(config, CATEGORY_POL, "POL_07_sootFogDivisor", "The divisor for smog, higher numbers will require more soot for the same smog density", 120D); } } diff --git a/src/main/java/com/hbm/crafting/SmeltingRecipes.java b/src/main/java/com/hbm/crafting/SmeltingRecipes.java index 2024919c3..960689544 100644 --- a/src/main/java/com/hbm/crafting/SmeltingRecipes.java +++ b/src/main/java/com/hbm/crafting/SmeltingRecipes.java @@ -22,6 +22,8 @@ public class SmeltingRecipes { public static void AddSmeltingRec() { + GameRegistry.addSmelting(ModItems.glyphid_meat, new ItemStack(ModItems.glyphid_meat_grilled), 1.0F); + GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_thorium), new ItemStack(ModItems.ingot_th232), 3.0F); GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_uranium), new ItemStack(ModItems.ingot_uranium), 6.0F); GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_uranium_scorched), new ItemStack(ModItems.ingot_uranium), 6.0F); diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java index 775c7ea55..a1e41ed7f 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java @@ -5,6 +5,7 @@ import java.util.Collections; import java.util.List; import com.hbm.entity.pathfinder.PathFinderUtils; +import com.hbm.items.ModItems; import com.hbm.main.ResourceManager; import net.minecraft.entity.Entity; @@ -12,6 +13,7 @@ import net.minecraft.entity.EnumCreatureAttribute; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.monster.EntityMob; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.DamageSource; import net.minecraft.util.ResourceLocation; @@ -54,6 +56,11 @@ public class EntityGlyphid extends EntityMob { this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(1D); this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(5D); } + + @Override + protected void dropFewItems(boolean byPlayer, int looting) { + if(rand.nextInt(3) == 0) this.entityDropItem(new ItemStack(ModItems.glyphid_meat, 1 + rand.nextInt(2) + looting), 0F); + } @Override protected Entity findPlayerToAttack() { diff --git a/src/main/java/com/hbm/extprop/HbmPlayerProps.java b/src/main/java/com/hbm/extprop/HbmPlayerProps.java index d6f173e61..63ee89a86 100644 --- a/src/main/java/com/hbm/extprop/HbmPlayerProps.java +++ b/src/main/java/com/hbm/extprop/HbmPlayerProps.java @@ -66,20 +66,26 @@ public class HbmPlayerProps implements IExtendedEntityProperties { if(!getKeyPressed(key) && pressed) { if(key == EnumKeybind.TOGGLE_JETPACK) { - this.enableBackpack = !this.enableBackpack; - if(this.enableBackpack) - MainRegistry.proxy.displayTooltip(EnumChatFormatting.GREEN + "Jetpack ON", MainRegistry.proxy.ID_JETPACK); - else - MainRegistry.proxy.displayTooltip(EnumChatFormatting.RED + "Jetpack OFF", MainRegistry.proxy.ID_JETPACK); + if(!player.worldObj.isRemote) { + this.enableBackpack = !this.enableBackpack; + + if(this.enableBackpack) + MainRegistry.proxy.displayTooltip(EnumChatFormatting.GREEN + "Jetpack ON", MainRegistry.proxy.ID_JETPACK); + else + MainRegistry.proxy.displayTooltip(EnumChatFormatting.RED + "Jetpack OFF", MainRegistry.proxy.ID_JETPACK); + } } if(key == EnumKeybind.TOGGLE_HEAD) { - this.enableHUD = !this.enableHUD; - if(this.enableHUD) - MainRegistry.proxy.displayTooltip(EnumChatFormatting.GREEN + "HUD ON", MainRegistry.proxy.ID_HUD); - else - MainRegistry.proxy.displayTooltip(EnumChatFormatting.RED + "HUD OFF", MainRegistry.proxy.ID_HUD); + if(!player.worldObj.isRemote) { + this.enableHUD = !this.enableHUD; + + if(this.enableHUD) + MainRegistry.proxy.displayTooltip(EnumChatFormatting.GREEN + "HUD ON", MainRegistry.proxy.ID_HUD); + else + MainRegistry.proxy.displayTooltip(EnumChatFormatting.RED + "HUD OFF", MainRegistry.proxy.ID_HUD); + } } if(key == EnumKeybind.TRAIN) { @@ -146,6 +152,8 @@ public class HbmPlayerProps implements IExtendedEntityProperties { props.setFloat("shield", shield); props.setFloat("maxShield", maxShield); + props.setBoolean("enableBackpack", enableBackpack); + props.setBoolean("enableHUD", enableHUD); nbt.setTag("HbmPlayerProps", props); } @@ -158,6 +166,8 @@ public class HbmPlayerProps implements IExtendedEntityProperties { if(props != null) { this.shield = props.getFloat("shield"); this.maxShield = props.getFloat("maxShield"); + this.enableBackpack = props.getBoolean("enableBackpack"); + this.enableHUD = props.getBoolean("enableHUD"); } } } diff --git a/src/main/java/com/hbm/handler/EntityEffectHandler.java b/src/main/java/com/hbm/handler/EntityEffectHandler.java index 1bcec5d0e..ff9607611 100644 --- a/src/main/java/com/hbm/handler/EntityEffectHandler.java +++ b/src/main/java/com/hbm/handler/EntityEffectHandler.java @@ -451,7 +451,9 @@ public class EntityEffectHandler { private static void handlePollution(EntityLivingBase entity) { - if(!ArmorRegistry.hasProtection(entity, 3, HazardClass.GAS_CORROSIVE) && entity.ticksExisted % 60 == 0) { + if(!RadiationConfig.enablePollution) return; + + if(RadiationConfig.enablePoison && !ArmorRegistry.hasProtection(entity, 3, HazardClass.GAS_CORROSIVE) && entity.ticksExisted % 60 == 0) { float poison = PollutionHandler.getPollution(entity.worldObj, (int) Math.floor(entity.posX), (int) Math.floor(entity.posY + entity.getEyeHeight()), (int) Math.floor(entity.posZ), PollutionType.POISON); @@ -460,14 +462,14 @@ public class EntityEffectHandler { if(poison < 25) { entity.addPotionEffect(new PotionEffect(Potion.poison.id, 100, 0)); } else if(poison < 50) { - entity.addPotionEffect(new PotionEffect(Potion.poison.id, 100, 2)); + entity.addPotionEffect(new PotionEffect(Potion.poison.id, 100, 1)); } else { entity.addPotionEffect(new PotionEffect(Potion.wither.id, 100, 2)); } } } - if(!ArmorRegistry.hasProtection(entity, 3, HazardClass.PARTICLE_FINE) && entity.ticksExisted % 60 == 0) { + if(RadiationConfig.enableLeadPoisoning && !ArmorRegistry.hasProtection(entity, 3, HazardClass.PARTICLE_FINE) && entity.ticksExisted % 60 == 0) { float poison = PollutionHandler.getPollution(entity.worldObj, (int) Math.floor(entity.posX), (int) Math.floor(entity.posY + entity.getEyeHeight()), (int) Math.floor(entity.posZ), PollutionType.HEAVYMETAL); diff --git a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java index ebf943f95..885bbdd82 100644 --- a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java +++ b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java @@ -7,6 +7,8 @@ import java.util.HashMap; import java.util.Locale; import java.util.Map.Entry; +import com.hbm.config.RadiationConfig; + import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.TickEvent; import cpw.mods.fml.common.gameevent.TickEvent.Phase; @@ -39,6 +41,9 @@ public class PollutionHandler { /// UTILITY METHODS /// /////////////////////// public static void incrementPollution(World world, int x, int y, int z, PollutionType type, float amount) { + + if(!RadiationConfig.enablePollution) return; + PollutionPerWorld ppw = perWorld.get(world); if(ppw == null) return; ChunkCoordIntPair pos = new ChunkCoordIntPair(x >> 6, z >> 6); @@ -55,6 +60,9 @@ public class PollutionHandler { } public static void setPollution(World world, int x, int y, int z, PollutionType type, float amount) { + + if(!RadiationConfig.enablePollution) return; + PollutionPerWorld ppw = perWorld.get(world); if(ppw == null) return; ChunkCoordIntPair pos = new ChunkCoordIntPair(x >> 6, z >> 6); @@ -67,6 +75,9 @@ public class PollutionHandler { } public static float getPollution(World world, int x, int y, int z, PollutionType type) { + + if(!RadiationConfig.enablePollution) return 0; + PollutionPerWorld ppw = perWorld.get(world); if(ppw == null) return 0F; ChunkCoordIntPair pos = new ChunkCoordIntPair(x >> 6, z >> 6); @@ -76,6 +87,9 @@ public class PollutionHandler { } public static PollutionData getPollutionData(World world, int x, int y, int z) { + + if(!RadiationConfig.enablePollution) return null; + PollutionPerWorld ppw = perWorld.get(world); if(ppw == null) return null; ChunkCoordIntPair pos = new ChunkCoordIntPair(x >> 6, z >> 6); @@ -88,7 +102,7 @@ public class PollutionHandler { ////////////////////// @SubscribeEvent public void onWorldLoad(WorldEvent.Load event) { - if(!event.world.isRemote) { + if(!event.world.isRemote && RadiationConfig.enablePollution) { WorldServer world = (WorldServer) event.world; String dirPath = getDataDir(world); @@ -294,6 +308,8 @@ public class PollutionHandler { @SubscribeEvent public void decorateMob(LivingSpawnEvent event) { + if(!RadiationConfig.enablePollution) return; + World world = event.world; if(world.isRemote) return; EntityLivingBase living = event.entityLiving; @@ -303,7 +319,7 @@ public class PollutionHandler { if(living instanceof IMob) { - if(data.pollution[PollutionType.SOOT.ordinal()] > 15) { + if(data.pollution[PollutionType.SOOT.ordinal()] > RadiationConfig.buffMobThreshold) { if(living.getEntityAttribute(SharedMonsterAttributes.maxHealth) != null) living.getEntityAttribute(SharedMonsterAttributes.maxHealth).applyModifier(new AttributeModifier("Soot Anger Health Increase", 2D, 1)); if(living.getEntityAttribute(SharedMonsterAttributes.attackDamage) != null) living.getEntityAttribute(SharedMonsterAttributes.attackDamage).applyModifier(new AttributeModifier("Soot Anger Damage Increase", 1.5D, 1)); } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 1eaafb213..ef6c57c61 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1702,6 +1702,9 @@ public class ModItems { public static Item marshmallow; public static Item cheese; public static Item quesadilla; + public static Item glyphid_meat; + public static Item glyphid_meat_grilled; + public static Item egg_glyphid; public static Item med_ipecac; public static Item med_ptsd; @@ -4320,6 +4323,9 @@ public class ModItems { cheese = new ItemLemon(5, 10, false).setUnlocalizedName("cheese").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cheese"); quesadilla = new ItemLemon(8, 10, false).setUnlocalizedName("cheese_quesadilla").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":quesadilla"); mucho_mango = new ItemMuchoMango(10).setUnlocalizedName("mucho_mango").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":mucho_mango"); + glyphid_meat = new ItemLemon(3, 3, true).setUnlocalizedName("glyphid_meat").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":glyphid_meat"); + glyphid_meat_grilled = new ItemLemon(8, 8, true).setPotionEffect(Potion.damageBoost.id, 180, 1, 1F).setUnlocalizedName("glyphid_meat_grilled").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":glyphid_meat_grilled"); + egg_glyphid = new Item().setUnlocalizedName("egg_glyphid").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":egg_glyphid"); defuser = new ItemTooling(ToolType.DEFUSER, 100).setUnlocalizedName("defuser").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":defuser"); reacher = new Item().setUnlocalizedName("reacher").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":reacher"); @@ -7518,6 +7524,9 @@ public class ModItems { GameRegistry.registerItem(marshmallow, marshmallow.getUnlocalizedName()); GameRegistry.registerItem(cheese, cheese.getUnlocalizedName()); GameRegistry.registerItem(quesadilla, quesadilla.getUnlocalizedName()); + GameRegistry.registerItem(glyphid_meat, glyphid_meat.getUnlocalizedName()); + GameRegistry.registerItem(glyphid_meat_grilled, glyphid_meat_grilled.getUnlocalizedName()); + GameRegistry.registerItem(egg_glyphid, egg_glyphid.getUnlocalizedName()); GameRegistry.registerItem(med_ipecac, med_ipecac.getUnlocalizedName()); GameRegistry.registerItem(med_ptsd, med_ptsd.getUnlocalizedName()); GameRegistry.registerItem(canteen_13, canteen_13.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 84723d576..b1a7d09fe 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -1990,7 +1990,7 @@ public class ClientProxy extends ServerProxy { } @Override - public void playSoundFuckMojang(double x, double y, double z, String sound, float volume, float pitch) { + public void playSoundClient(double x, double y, double z, String sound, float volume, float pitch) { Minecraft.getMinecraft().getSoundHandler().playSound(new PositionedSoundRecord(new ResourceLocation(sound), volume, pitch, (float) x, (float) y, (float) z)); } } diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index 800a62fbb..6a38a081a 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -19,6 +19,7 @@ import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockAshes; import com.hbm.config.GeneralConfig; import com.hbm.config.MobConfig; +import com.hbm.config.RadiationConfig; import com.hbm.entity.missile.EntityMissileBaseAdvanced; import com.hbm.entity.missile.EntityMissileCustom; import com.hbm.entity.mob.EntityCyberCrab; @@ -218,7 +219,7 @@ public class ModEventHandler { } @SubscribeEvent - public void onPlayerChaangeDimension(PlayerChangedDimensionEvent event) { + public void onPlayerChangeDimension(PlayerChangedDimensionEvent event) { EntityPlayer player = event.player; HbmPlayerProps data = HbmPlayerProps.getData(player); data.setKeyPressed(EnumKeybind.JETPACK, false); @@ -1176,18 +1177,20 @@ public class ModEventHandler { } } - if(!ArmorRegistry.hasProtection(player, 3, HazardClass.PARTICLE_FINE)) { - - float metal = PollutionHandler.getPollution(player.worldObj, event.x, event.y, event.z, PollutionType.HEAVYMETAL); - - if(metal < 5) return; - - if(metal < 10) { - player.addPotionEffect(new PotionEffect(HbmPotion.lead.id, 100, 0)); - } else if(metal < 25) { - player.addPotionEffect(new PotionEffect(HbmPotion.lead.id, 100, 1)); - } else { - player.addPotionEffect(new PotionEffect(HbmPotion.lead.id, 100, 2)); + if(RadiationConfig.enablePollution && RadiationConfig.enableLeadFromBlocks) { + if(!ArmorRegistry.hasProtection(player, 3, HazardClass.PARTICLE_FINE)) { + + float metal = PollutionHandler.getPollution(player.worldObj, event.x, event.y, event.z, PollutionType.HEAVYMETAL); + + if(metal < 5) return; + + if(metal < 10) { + player.addPotionEffect(new PotionEffect(HbmPotion.lead.id, 100, 0)); + } else if(metal < 25) { + player.addPotionEffect(new PotionEffect(HbmPotion.lead.id, 100, 1)); + } else { + player.addPotionEffect(new PotionEffect(HbmPotion.lead.id, 100, 2)); + } } } } diff --git a/src/main/java/com/hbm/main/ModEventHandlerRenderer.java b/src/main/java/com/hbm/main/ModEventHandlerRenderer.java index e01007977..7dd68dd4c 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerRenderer.java +++ b/src/main/java/com/hbm/main/ModEventHandlerRenderer.java @@ -4,6 +4,7 @@ import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GLContext; import com.hbm.blocks.ICustomBlockHighlight; +import com.hbm.config.RadiationConfig; import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.items.armor.IArmorDisableModel; import com.hbm.items.armor.IArmorDisableModel.EnumPlayerPart; @@ -330,7 +331,7 @@ public class ModEventHandlerRenderer { @SubscribeEvent public void worldTick(WorldTickEvent event) { - if(event.phase == event.phase.START) { + if(event.phase == event.phase.START && RadiationConfig.enableSootFog) { float step = 0.05F; float soot = PermaSyncHandler.pollution[PollutionType.SOOT.ordinal()]; @@ -347,11 +348,11 @@ public class ModEventHandlerRenderer { @SubscribeEvent(priority = EventPriority.LOW) public void thickenFog(FogDensity event) { - float soot = renderSoot - 35; - if(soot > 0) { - //event.density = Math.min((soot - 5) * 0.01F, 0.5F); + float soot = (float) (renderSoot - RadiationConfig.sootFogThreshold); + if(soot > 0 && RadiationConfig.enableSootFog) { + float farPlaneDistance = (float) (Minecraft.getMinecraft().gameSettings.renderDistanceChunks * 16); - float fogDist = farPlaneDistance / (1 + soot * 0.05F); + float fogDist = farPlaneDistance / (1 + soot * 5F / (float) RadiationConfig.sootFogDivisor); GL11.glFogf(GL11.GL_FOG_START, 0); GL11.glFogf(GL11.GL_FOG_END, fogDist); @@ -366,10 +367,10 @@ public class ModEventHandlerRenderer { @SubscribeEvent(priority = EventPriority.LOW) public void tintFog(FogColors event) { - float soot = renderSoot - 35; + float soot = (float) (renderSoot - RadiationConfig.sootFogThreshold); float sootColor = 0.15F; - float sootReq = 100F; - if(soot > 0) { + float sootReq = (float) RadiationConfig.sootFogDivisor; + if(soot > 0 && RadiationConfig.enableSootFog) { float interp = Math.min(soot / sootReq, 1F); event.red = event.red * (1 - interp) + sootColor * interp; event.green = event.green * (1 - interp) + sootColor * interp; diff --git a/src/main/java/com/hbm/main/ServerProxy.java b/src/main/java/com/hbm/main/ServerProxy.java index 783dc4df3..7695b401f 100644 --- a/src/main/java/com/hbm/main/ServerProxy.java +++ b/src/main/java/com/hbm/main/ServerProxy.java @@ -85,5 +85,5 @@ public class ServerProxy { return TomSaveData.forWorld(world).impact; } - public void playSoundFuckMojang(double x, double y, double z, String sound, float volume, float pitch) { } + public void playSoundClient(double x, double y, double z, String sound, float volume, float pitch) { } } \ No newline at end of file diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java index a21a30834..82467211b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java @@ -21,15 +21,12 @@ import api.hbm.energy.IEnergyUser; import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.Minecraft; -import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MathHelper; -import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -134,7 +131,7 @@ public class TileEntityMachineCompressor extends TileEntityMachineBase implement if(this.pistonDir) { this.piston -= randSpeed; if(this.piston <= 0) { - MainRegistry.proxy.playSoundFuckMojang(xCoord, yCoord, zCoord, "hbm:item.boltgun", 0.5F, 0.75F); + MainRegistry.proxy.playSoundClient(xCoord, yCoord, zCoord, "hbm:item.boltgun", 0.5F, 0.75F); this.pistonDir = !this.pistonDir; } } else { diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 34aa19f02..99542b701 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -1798,6 +1798,8 @@ item.generator_front.name=Generatorfront item.generator_steel.name=Generator item.glitch.name=Glitch item.glowing_stew.name=Leuchtende Pilzsuppe +item.glyphid_meat.name=Glyphidfleisch +item.glyphid_meat_grilled.name=Gegrilltes Glyphidfleisch item.goggles.name=Schutzbrille item.grenade_aschrab.name=Werfbare Antischrabidiumzelle item.grenade_black_hole.name=Schwarzes-Loch-Granate diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 42649d57a..01de09f83 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -2486,6 +2486,8 @@ item.generator_front.name=Generator Front item.generator_steel.name=Generator Body item.glitch.name=Glitch item.glowing_stew.name=Glowing Mushroom Stew +item.glyphid_meat.name=Glyphid Meat +item.glyphid_meat_grilled.name=Grilled Glyphid Meat item.goggles.name=Protection Goggles item.grenade_aschrab.name=Tossable Antischrabidium Cell item.grenade_black_hole.name=Black Hole Grenade diff --git a/src/main/resources/assets/hbm/textures/items/egg_glyphid.png b/src/main/resources/assets/hbm/textures/items/egg_glyphid.png new file mode 100644 index 0000000000000000000000000000000000000000..e7f1bd1486496ee435bfa6ab9bcdd6e430aa43a5 GIT binary patch literal 393 zcmV;40e1e0P)nU8 z5iFL2u{A*qwt=^3aE4jul@lD^A#xm>OA2TDjyvye7K2avczNIFA0PZ{RLd!6b1mr% z+lhq@)m+h;7$0Ntphj1>xmV{|dfy;~r;=rMZj#lsMz23W%@qS~ z0t5h=dJ{nc@Nv0|X;@r5-42gXEvFnwe&h422Eb#n;aiT&3Wa=vo4b~K7wW)^m6Iz> z!@@KyUKN?`h4pX;LS3L!$)ag5Wa>=-y1GrfBmpozGex?36ayHIQWp8WSU$W4ppZ|v zGhc+RZUgYJzlCX7?t2(~CAM}>onC){X;`jxK@gV}S3R;saV)HgLs8(b4gkd0JwAK( n&D$l(S6(E+Pa*-Y?LWmgQQwMa;u?Xy z&cx7`oPyGgOkPz7J{$td1(*mFiMpL?VhzZC&n)usRT3*35cFK>FwR_b+&u8)3>gN7 Y+W~PsXIAfE1^SJ_)78&qol`;+001g=5C8xG literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/glyphid_meat.png b/src/main/resources/assets/hbm/textures/items/glyphid_meat.png new file mode 100644 index 0000000000000000000000000000000000000000..a94ea056101e72068b00160f85728424d334f3a9 GIT binary patch literal 414 zcmV;P0b%}$P)w-u9Or2qf`07*qo IM6N<$f`1gbQvd(} literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/glyphid_meat_grilled.png b/src/main/resources/assets/hbm/textures/items/glyphid_meat_grilled.png new file mode 100644 index 0000000000000000000000000000000000000000..d611bc741ff498b0e020c8307c8d1e0003752d87 GIT binary patch literal 471 zcmV;|0Vw{7P)tvkCIP-N8Op_*57u|Sv=kQ(*?>X@3EA$XhzL=5Y z{pa`RBi`J7m6 z=f!OwfRbTSvwt9x`UGxDAYaVLd@&={1%=B`zYs|s?L`=O;7~G5T22Gcb4K`y5Z7~> zOs}l6_A-vu?_!?za0d?AgAJ^Hm(E$3p4*~rH)vcrcvV6Z8;EQQ%WG3IOr9-mvAdsT zJ`$y5n24m#)4de+$~DchJH0`^n32oRH2}UIUkt-~dq~f1a(eQOTi+uH4X9UJ^nL~e z-5FO%$DRPN_j(5{p2qm_k-BZNRnTdCZ&NFGu&qDjsSFl36&XuKIC@jS_ASm%%6NUB z8>LIL;t+)4?*20cRDp~o6k@5!Xx1#d1kvFm{!N||7#AAvXA%Ef{RS+!n|O$A=|=zn N002ovPDHLkV1kt6&D#I~ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/trinkets/peep.png b/src/main/resources/assets/hbm/textures/models/trinkets/peep.png new file mode 100644 index 0000000000000000000000000000000000000000..9e8551ba8672bb10e3edb85b01ed30ce02d38116 GIT binary patch literal 888 zcmV-;1Bd*HP)aW0=!B~q8o z`2EMP#P18|&J-?;4MuDWV4I-D2n}%k{E1v?Dv+L15uAtW2y$WykY^R= zMU%IzQwFes_mN=A`t*p{?RFFCr$oA`}T zTdBPFQ^0!zSYHK1+_^TPReo`$jp8Bp@0}eCaOBIp83D92Csf`EiXgq;j3VX=<;4i# z^*(?n2FPM)0NVoC#tQ>9qllY!>{kIAdavQd2mmk`2k45^6|Vhr0j0D3(Y7>O#$KFnKqE>ew}7%bzbWPh^}8$pGbaV zPH^h&^Th90k6)W=DuL`b4Fu;`0ab-mF=l|WdRzp#cp=ZJblnEBdPrpzFh%@=mt_F$ z5imW&_Rue1Oh6;7!Cvn$Gat#ztDBdmLYCt;76?tx%)(yp5E@}EQ+bkC=A8+&r@(sW zkJE8P>(VLrug9|}VhUv8ya99rClTIkhIn{y0H>w^4z~u+sCTiHHb+!;gP1{4g5Yoq zTH|BT8XqgFO38*Llwm1ev;o#OHV1XCZETjdv?iv2?X!XP&tFP!v+(l(-R}!-UwxJ+ zpT7Q9JC6`8qfR-&GN27qc?0O47kD2BXos1)j#KykzyI&AR(bD7fcFNdyc5(tIPu;G zRDJ~Lo)>uU1BM2$Er4z67-KB^$-3>`q6re$<2*ySthny~4V*d;u)%*&e45efn Date: Thu, 29 Jun 2023 16:08:32 +0200 Subject: [PATCH 168/432] I REMBER --- changelog | 5 +- src/main/java/com/hbm/blocks/ModBlocks.java | 21 +- .../com/hbm/blocks/machine/GasDuctSolid.java | 20 -- .../com/hbm/blocks/machine/OilDuctSolid.java | 20 -- .../com/hbm/blocks/network/BlockGasDuct.java | 81 ------- .../com/hbm/blocks/network/BlockOilDuct.java | 81 ------- .../com/hbm/blocks/network/FluidDuctBox.java | 215 +++++++++--------- .../blocks/network/FluidDuctBoxExhaust.java | 86 +++++++ .../com/hbm/blocks/network/FluidSwitch.java | 88 +++++++ .../com/hbm/blocks/network/FluidValve.java | 89 ++++++++ .../java/com/hbm/inventory/fluid/Fluids.java | 14 +- .../inventory/recipes/ShredderRecipes.java | 4 - src/main/java/com/hbm/lib/Library.java | 100 -------- src/main/java/com/hbm/main/ClientProxy.java | 2 - .../java/com/hbm/main/CraftingManager.java | 2 + src/main/java/com/hbm/main/MainRegistry.java | 4 + .../com/hbm/render/block/RenderBoxDuct.java | 25 +- .../hbm/render/tileentity/RenderGasDuct.java | 153 ------------- .../hbm/render/tileentity/RenderOilDuct.java | 153 ------------- .../java/com/hbm/tileentity/TileMappings.java | 6 +- .../conductor/TileEntityGasDuct.java | 97 -------- .../conductor/TileEntityGasDuctSolid.java | 45 ---- .../conductor/TileEntityOilDuct.java | 95 -------- .../conductor/TileEntityOilDuctSolid.java | 45 ---- .../machine/TileEntityMachineBoiler.java | 3 + .../machine/TileEntityMachineTurbineGas.java | 3 + .../machine/TileEntityMachineTurbofan.java | 4 + .../network/TileEntityFluidValve.java | 27 +++ .../network/TileEntityPipeExhaust.java | 82 +++++++ src/main/resources/assets/hbm/lang/de_DE.lang | 4 + src/main/resources/assets/hbm/lang/en_US.lang | 4 + .../hbm/textures/blocks/boxduct_exhaust.png | Bin 0 -> 1426 bytes .../blocks/boxduct_exhaust_curve_bl.png | Bin 0 -> 395 bytes .../blocks/boxduct_exhaust_curve_br.png | Bin 0 -> 389 bytes .../blocks/boxduct_exhaust_curve_tl.png | Bin 0 -> 362 bytes .../blocks/boxduct_exhaust_curve_tr.png | Bin 0 -> 423 bytes .../textures/blocks/boxduct_exhaust_end.png | Bin 0 -> 517 bytes .../blocks/boxduct_exhaust_junction.png | Bin 0 -> 305 bytes .../blocks/boxduct_exhaust_straight.png | Bin 0 -> 309 bytes .../hbm/textures/blocks/fluid_switch_off.png | Bin 0 -> 326 bytes .../hbm/textures/blocks/fluid_switch_on.png | Bin 0 -> 333 bytes .../hbm/textures/blocks/fluid_valve_off.png | Bin 359 -> 273 bytes .../hbm/textures/blocks/fluid_valve_on.png | Bin 372 -> 270 bytes 43 files changed, 545 insertions(+), 1033 deletions(-) delete mode 100644 src/main/java/com/hbm/blocks/machine/GasDuctSolid.java delete mode 100644 src/main/java/com/hbm/blocks/machine/OilDuctSolid.java delete mode 100644 src/main/java/com/hbm/blocks/network/BlockGasDuct.java delete mode 100644 src/main/java/com/hbm/blocks/network/BlockOilDuct.java create mode 100644 src/main/java/com/hbm/blocks/network/FluidDuctBoxExhaust.java create mode 100644 src/main/java/com/hbm/blocks/network/FluidSwitch.java create mode 100644 src/main/java/com/hbm/blocks/network/FluidValve.java delete mode 100644 src/main/java/com/hbm/render/tileentity/RenderGasDuct.java delete mode 100644 src/main/java/com/hbm/render/tileentity/RenderOilDuct.java delete mode 100644 src/main/java/com/hbm/tileentity/conductor/TileEntityGasDuct.java delete mode 100644 src/main/java/com/hbm/tileentity/conductor/TileEntityGasDuctSolid.java delete mode 100644 src/main/java/com/hbm/tileentity/conductor/TileEntityOilDuct.java delete mode 100644 src/main/java/com/hbm/tileentity/conductor/TileEntityOilDuctSolid.java create mode 100644 src/main/java/com/hbm/tileentity/network/TileEntityFluidValve.java create mode 100644 src/main/java/com/hbm/tileentity/network/TileEntityPipeExhaust.java create mode 100644 src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_curve_bl.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_curve_br.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_curve_tl.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_curve_tr.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_end.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_junction.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_straight.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/fluid_switch_off.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/fluid_switch_on.png diff --git a/changelog b/changelog index 2bb086e00..6ada44f00 100644 --- a/changelog +++ b/changelog @@ -1,12 +1,15 @@ ## Added * Configs for all things pollution related - * Pollution in general can be turned off, smog can be disabeld and adjusted, different poison types can be disabled and the threshold for spawning tougher mobs can also be changed + * Pollution in general can be turned off, smog can be disabled and adjusted, different poison types can be disabled and the threshold for spawning tougher mobs can also be changed * Glyphid meat * Dropped by glyphids (duh) * Can be grilled +* Fluid valves + * come in manual and restone variants ## Changed * Glyphids now have a config for a global spawn limit, which is 50 by default, no more than this many glyphids can be created at once +* Removed the old oil and gas ducts for good ## Fixed * Fixed player extprops like the HUD or backpack toggles not saving diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index da5c00298..ef999ee12 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -780,16 +780,15 @@ public class ModBlocks { public static Block cable_detector; public static Block cable_diode; public static Block machine_detector; - public static Block oil_duct_solid; - public static Block oil_duct; - public static Block gas_duct_solid; - public static Block gas_duct; public static Block fluid_duct; public static Block fluid_duct_solid; public static Block fluid_duct_neo; public static Block fluid_duct_box; public static Block fluid_duct_paintable; public static Block fluid_duct_gauge; + public static Block fluid_duct_exhaust; + public static Block fluid_valve; + public static Block fluid_switch; public static Block radio_torch_sender; public static Block radio_torch_receiver; @@ -1930,16 +1929,15 @@ public class ModBlocks { cable_detector = new CableDetector(Material.iron).setBlockName("cable_detector").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); cable_diode = new CableDiode(Material.iron).setBlockName("cable_diode").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":cable_diode"); machine_detector = new PowerDetector(Material.iron).setBlockName("machine_detector").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_detector_off"); - oil_duct_solid = new OilDuctSolid(Material.iron).setBlockName("oil_duct_solid").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":oil_duct_solid_alt"); - oil_duct = new BlockOilDuct(Material.iron).setBlockName("oil_duct").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":oil_duct_icon_alt"); - gas_duct_solid = new GasDuctSolid(Material.iron).setBlockName("gas_duct_solid").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":gas_duct_solid"); - gas_duct = new BlockGasDuct(Material.iron).setBlockName("gas_duct").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":gas_duct_icon"); fluid_duct = new BlockFluidDuct(Material.iron).setBlockName("fluid_duct").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":fluid_duct_icon"); fluid_duct_solid = new BlockFluidDuctSolid(Material.iron).setBlockName("fluid_duct_solid").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":fluid_duct_solid"); fluid_duct_neo = new FluidDuctStandard(Material.iron).setBlockName("fluid_duct_neo").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pipe_neo"); fluid_duct_box = new FluidDuctBox(Material.iron).setBlockName("fluid_duct_box").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fluid_duct_box"); + fluid_duct_exhaust = new FluidDuctBoxExhaust(Material.iron).setBlockName("fluid_duct_exhaust").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fluid_duct_box"); fluid_duct_paintable = new FluidDuctPaintable().setBlockName("fluid_duct_paintable").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); fluid_duct_gauge = new FluidDuctGauge().setBlockName("fluid_duct_gauge").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + fluid_valve = new FluidValve(Material.iron).setBlockName("fluid_valve").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + fluid_switch = new FluidSwitch(Material.iron).setBlockName("fluid_switch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); radio_torch_sender = new RadioTorchSender().setBlockName("radio_torch_sender").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); radio_torch_receiver = new RadioTorchReceiver().setBlockName("radio_torch_receiver").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); @@ -3157,16 +3155,15 @@ public class ModBlocks { GameRegistry.registerBlock(cable_detector, cable_detector.getUnlocalizedName()); GameRegistry.registerBlock(cable_diode, ItemBlockBase.class, cable_diode.getUnlocalizedName()); GameRegistry.registerBlock(machine_detector, machine_detector.getUnlocalizedName()); - GameRegistry.registerBlock(oil_duct, oil_duct.getUnlocalizedName()); - GameRegistry.registerBlock(oil_duct_solid, oil_duct_solid.getUnlocalizedName()); - GameRegistry.registerBlock(gas_duct, gas_duct.getUnlocalizedName()); - GameRegistry.registerBlock(gas_duct_solid, gas_duct_solid.getUnlocalizedName()); GameRegistry.registerBlock(fluid_duct, fluid_duct.getUnlocalizedName()); register(fluid_duct_neo); register(fluid_duct_box); + register(fluid_duct_exhaust); register(fluid_duct_paintable); register(fluid_duct_gauge); GameRegistry.registerBlock(fluid_duct_solid, fluid_duct_solid.getUnlocalizedName()); + register(fluid_valve); + register(fluid_switch); register(radio_torch_sender); register(radio_torch_receiver); diff --git a/src/main/java/com/hbm/blocks/machine/GasDuctSolid.java b/src/main/java/com/hbm/blocks/machine/GasDuctSolid.java deleted file mode 100644 index 8351015a7..000000000 --- a/src/main/java/com/hbm/blocks/machine/GasDuctSolid.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.hbm.blocks.machine; - -import com.hbm.tileentity.conductor.TileEntityGasDuctSolid; - -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; - -public class GasDuctSolid extends BlockContainer { - - public GasDuctSolid(Material p_i45386_1_) { - super(p_i45386_1_); - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityGasDuctSolid(); - } -} diff --git a/src/main/java/com/hbm/blocks/machine/OilDuctSolid.java b/src/main/java/com/hbm/blocks/machine/OilDuctSolid.java deleted file mode 100644 index cfec07f2d..000000000 --- a/src/main/java/com/hbm/blocks/machine/OilDuctSolid.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.hbm.blocks.machine; - -import com.hbm.tileentity.conductor.TileEntityOilDuctSolid; - -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; - -public class OilDuctSolid extends BlockContainer { - - public OilDuctSolid(Material p_i45386_1_) { - super(p_i45386_1_); - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityOilDuctSolid(); - } -} diff --git a/src/main/java/com/hbm/blocks/network/BlockGasDuct.java b/src/main/java/com/hbm/blocks/network/BlockGasDuct.java deleted file mode 100644 index f1b85be7d..000000000 --- a/src/main/java/com/hbm/blocks/network/BlockGasDuct.java +++ /dev/null @@ -1,81 +0,0 @@ -package com.hbm.blocks.network; - -import com.hbm.tileentity.conductor.TileEntityGasDuct; - -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; - -public class BlockGasDuct extends BlockContainer { - - public BlockGasDuct(Material p_i45386_1_) { - super(p_i45386_1_); - float p = 1F/16F; - this.setBlockBounds(11 * p / 2, 11 * p / 2, 11 * p / 2, 1 - 11 * p / 2, 1 - 11 * p / 2, 1 - 11 * p / 2); - this.useNeighborBrightness = true; - } - - @Override - public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { - if(world.getTileEntity(x, y, z) instanceof TileEntityGasDuct) { - TileEntityGasDuct cable = (TileEntityGasDuct)world.getTileEntity(x, y, z); - - if(cable != null) - { - float p = 1F/16F; - float minX = 11 * p / 2 - (cable.connections[5] != null ? (11 * p / 2) : 0); - float minY = 11 * p / 2 - (cable.connections[1] != null ? (11 * p / 2) : 0); - float minZ = 11 * p / 2 - (cable.connections[2] != null ? (11 * p / 2) : 0); - float maxX = 1 - 11 * p / 2 + (cable.connections[3] != null ? (11 * p / 2) : 0); - float maxY = 1 - 11 * p / 2 + (cable.connections[0] != null ? (11 * p / 2) : 0); - float maxZ = 1 - 11 * p / 2 + (cable.connections[4] != null ? (11 * p / 2) : 0); - - this.setBlockBounds(minX, minY, minZ, maxX, maxY, maxZ); - } - } - return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); - } - - @Override - public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { - if(world.getTileEntity(x, y, z) instanceof TileEntityGasDuct) { - TileEntityGasDuct cable = (TileEntityGasDuct)world.getTileEntity(x, y, z); - - if(cable != null) - { - float p = 1F/16F; - float minX = 11 * p / 2 - (cable.connections[5] != null ? (11 * p / 2) : 0); - float minY = 11 * p / 2 - (cable.connections[1] != null ? (11 * p / 2) : 0); - float minZ = 11 * p / 2 - (cable.connections[2] != null ? (11 * p / 2) : 0); - float maxX = 1 - 11 * p / 2 + (cable.connections[3] != null ? (11 * p / 2) : 0); - float maxY = 1 - 11 * p / 2 + (cable.connections[0] != null ? (11 * p / 2) : 0); - float maxZ = 1 - 11 * p / 2 + (cable.connections[4] != null ? (11 * p / 2) : 0); - - this.setBlockBounds(minX, minY, minZ, maxX, maxY, maxZ); - } - } - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityGasDuct(); - } - - @Override - public int getRenderType(){ - return -1; - } - - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } -} diff --git a/src/main/java/com/hbm/blocks/network/BlockOilDuct.java b/src/main/java/com/hbm/blocks/network/BlockOilDuct.java deleted file mode 100644 index a1b9ca9bd..000000000 --- a/src/main/java/com/hbm/blocks/network/BlockOilDuct.java +++ /dev/null @@ -1,81 +0,0 @@ -package com.hbm.blocks.network; - -import com.hbm.tileentity.conductor.TileEntityOilDuct; - -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; - -public class BlockOilDuct extends BlockContainer { - - public BlockOilDuct(Material p_i45386_1_) { - super(p_i45386_1_); - float p = 1F/16F; - this.setBlockBounds(11 * p / 2, 11 * p / 2, 11 * p / 2, 1 - 11 * p / 2, 1 - 11 * p / 2, 1 - 11 * p / 2); - this.useNeighborBrightness = true; - } - - @Override - public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { - if(world.getTileEntity(x, y, z) instanceof TileEntityOilDuct) { - TileEntityOilDuct cable = (TileEntityOilDuct)world.getTileEntity(x, y, z); - - if(cable != null) - { - float p = 1F/16F; - float minX = 11 * p / 2 - (cable.connections[5] != null ? (11 * p / 2) : 0); - float minY = 11 * p / 2 - (cable.connections[1] != null ? (11 * p / 2) : 0); - float minZ = 11 * p / 2 - (cable.connections[2] != null ? (11 * p / 2) : 0); - float maxX = 1 - 11 * p / 2 + (cable.connections[3] != null ? (11 * p / 2) : 0); - float maxY = 1 - 11 * p / 2 + (cable.connections[0] != null ? (11 * p / 2) : 0); - float maxZ = 1 - 11 * p / 2 + (cable.connections[4] != null ? (11 * p / 2) : 0); - - this.setBlockBounds(minX, minY, minZ, maxX, maxY, maxZ); - } - } - return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); - } - - @Override - public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { - if(world.getTileEntity(x, y, z) instanceof TileEntityOilDuct) { - TileEntityOilDuct cable = (TileEntityOilDuct)world.getTileEntity(x, y, z); - - if(cable != null) - { - float p = 1F/16F; - float minX = 11 * p / 2 - (cable.connections[5] != null ? (11 * p / 2) : 0); - float minY = 11 * p / 2 - (cable.connections[1] != null ? (11 * p / 2) : 0); - float minZ = 11 * p / 2 - (cable.connections[2] != null ? (11 * p / 2) : 0); - float maxX = 1 - 11 * p / 2 + (cable.connections[3] != null ? (11 * p / 2) : 0); - float maxY = 1 - 11 * p / 2 + (cable.connections[0] != null ? (11 * p / 2) : 0); - float maxZ = 1 - 11 * p / 2 + (cable.connections[4] != null ? (11 * p / 2) : 0); - - this.setBlockBounds(minX, minY, minZ, maxX, maxY, maxZ); - } - } - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityOilDuct(); - } - - @Override - public int getRenderType(){ - return -1; - } - - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } -} diff --git a/src/main/java/com/hbm/blocks/network/FluidDuctBox.java b/src/main/java/com/hbm/blocks/network/FluidDuctBox.java index e8675d146..f2d6f7674 100644 --- a/src/main/java/com/hbm/blocks/network/FluidDuctBox.java +++ b/src/main/java/com/hbm/blocks/network/FluidDuctBox.java @@ -81,13 +81,13 @@ public class FluidDuctBox extends FluidDuctBase implements IBlockMulti, ILookOve TileEntityPipeBaseNT pipe = (TileEntityPipeBaseNT) te; type = pipe.getType(); } - - boolean pX = Library.canConnectFluid(world, x + 1, y, z, Library.NEG_X, type); - boolean nX = Library.canConnectFluid(world, x - 1, y, z, Library.POS_X, type); - boolean pY = Library.canConnectFluid(world, x, y + 1, z, Library.NEG_Y, type); - boolean nY = Library.canConnectFluid(world, x, y - 1, z, Library.POS_Y, type); - boolean pZ = Library.canConnectFluid(world, x, y, z + 1, Library.NEG_Z, type); - boolean nZ = Library.canConnectFluid(world, x, y, z - 1, Library.POS_Z, type); + + boolean nX = canConnectTo(world, x, y, z, Library.NEG_X, te); + boolean pX = canConnectTo(world, x, y, z, Library.POS_X, te); + boolean nY = canConnectTo(world, x, y, z, Library.NEG_Y, te); + boolean pY = canConnectTo(world, x, y, z, Library.POS_Y, te); + boolean nZ = canConnectTo(world, x, y, z, Library.NEG_Z, te); + boolean pZ = canConnectTo(world, x, y, z, Library.POS_Z, te); int mask = 0 + (pX ? 32 : 0) + (nX ? 16 : 0) + (pY ? 8 : 0) + (nY ? 4 : 0) + (pZ ? 2 : 0) + (nZ ? 1 : 0); int count = 0 + (pX ? 1 : 0) + (nX ? 1 : 0) + (pY ? 1 : 0) + (nY ? 1 : 0) + (pZ ? 1 : 0) + (nZ ? 1 : 0); @@ -172,59 +172,55 @@ public class FluidDuctBox extends FluidDuctBase implements IBlockMulti, ILookOve List bbs = new ArrayList(); TileEntity te = world.getTileEntity(x, y, z); - if(te instanceof TileEntityPipeBaseNT) { - TileEntityPipeBaseNT pipe = (TileEntityPipeBaseNT) te; - FluidType type = pipe.getType(); - double lower = 0.125D; - double upper = 0.875D; - double jLower = 0.0625D; - double jUpper = 0.9375D; - int meta = world.getBlockMetadata(x, y, z); - - for(int i = 2; i < 13; i += 3) { - - if(meta > i) { - lower += 0.0625D; - upper -= 0.0625D; - jLower += 0.0625D; - jUpper -= 0.0625D; - } - } - - boolean nX = canConnectTo(world, x, y, z, Library.NEG_X, type); - boolean pX = canConnectTo(world, x, y, z, Library.POS_X, type); - boolean nY = canConnectTo(world, x, y, z, Library.NEG_Y, type); - boolean pY = canConnectTo(world, x, y, z, Library.POS_Y, type); - boolean nZ = canConnectTo(world, x, y, z, Library.NEG_Z, type); - boolean pZ = canConnectTo(world, x, y, z, Library.POS_Z, type); - int mask = 0 + (pX ? 32 : 0) + (nX ? 16 : 0) + (pY ? 8 : 0) + (nY ? 4 : 0) + (pZ ? 2 : 0) + (nZ ? 1 : 0); - int count = 0 + (pX ? 1 : 0) + (nX ? 1 : 0) + (pY ? 1 : 0) + (nY ? 1 : 0) + (pZ ? 1 : 0) + (nZ ? 1 : 0); - - if(mask == 0) { - bbs.add(AxisAlignedBB.getBoundingBox(x + jLower, y + jLower, z + jLower, x + jUpper, y + jUpper, z + jUpper)); - } else if(mask == 0b100000 || mask == 0b010000 || mask == 0b110000) { - bbs.add(AxisAlignedBB.getBoundingBox(x + 0.0D, y + lower, z + lower, x + 1.0D, y + upper, z + upper)); - } else if(mask == 0b001000 || mask == 0b000100 || mask == 0b001100) { - bbs.add(AxisAlignedBB.getBoundingBox(x + lower, y + 0.0D, z + lower, x + upper, y + 1.0D, z + upper)); - } else if(mask == 0b000010 || mask == 0b000001 || mask == 0b000011) { - bbs.add(AxisAlignedBB.getBoundingBox(x + lower, y + lower, z + 0.0D, x + upper, y + upper, z + 1.0D)); - } else { - - if(count != 2) { - bbs.add(AxisAlignedBB.getBoundingBox(x + jLower, y + jLower, z + jLower, x + jUpper, y + jUpper, z + jUpper)); - } else { - bbs.add(AxisAlignedBB.getBoundingBox(x + lower, y + lower, z + lower, x + upper, y + upper, z + upper)); - } + double lower = 0.125D; + double upper = 0.875D; + double jLower = 0.0625D; + double jUpper = 0.9375D; + int meta = world.getBlockMetadata(x, y, z); - if(pX) bbs.add(AxisAlignedBB.getBoundingBox(x + upper, y + lower, z + lower, x + 1.0D, y + upper, z + upper)); - if(nX) bbs.add(AxisAlignedBB.getBoundingBox(x + 0.0D, y + lower, z + lower, x + lower, y + upper, z + upper)); - if(pY) bbs.add(AxisAlignedBB.getBoundingBox(x + lower, y + upper, z + lower, x + upper, y + 1.0D, z + upper)); - if(nY) bbs.add(AxisAlignedBB.getBoundingBox(x + lower, y + 0.0D, z + lower, x + upper, y + lower, z + upper)); - if(pZ) bbs.add(AxisAlignedBB.getBoundingBox(x + lower, y + lower, z + upper, x + upper, y + upper, z + 1.0D)); - if(nZ) bbs.add(AxisAlignedBB.getBoundingBox(x + lower, y + lower, z + 0.0D, x + upper, y + upper, z + lower)); + for(int i = 2; i < 13; i += 3) { + + if(meta > i) { + lower += 0.0625D; + upper -= 0.0625D; + jLower += 0.0625D; + jUpper -= 0.0625D; } } + + boolean nX = canConnectTo(world, x, y, z, Library.NEG_X, te); + boolean pX = canConnectTo(world, x, y, z, Library.POS_X, te); + boolean nY = canConnectTo(world, x, y, z, Library.NEG_Y, te); + boolean pY = canConnectTo(world, x, y, z, Library.POS_Y, te); + boolean nZ = canConnectTo(world, x, y, z, Library.NEG_Z, te); + boolean pZ = canConnectTo(world, x, y, z, Library.POS_Z, te); + int mask = 0 + (pX ? 32 : 0) + (nX ? 16 : 0) + (pY ? 8 : 0) + (nY ? 4 : 0) + (pZ ? 2 : 0) + (nZ ? 1 : 0); + int count = 0 + (pX ? 1 : 0) + (nX ? 1 : 0) + (pY ? 1 : 0) + (nY ? 1 : 0) + (pZ ? 1 : 0) + (nZ ? 1 : 0); + + if(mask == 0) { + bbs.add(AxisAlignedBB.getBoundingBox(x + jLower, y + jLower, z + jLower, x + jUpper, y + jUpper, z + jUpper)); + } else if(mask == 0b100000 || mask == 0b010000 || mask == 0b110000) { + bbs.add(AxisAlignedBB.getBoundingBox(x + 0.0D, y + lower, z + lower, x + 1.0D, y + upper, z + upper)); + } else if(mask == 0b001000 || mask == 0b000100 || mask == 0b001100) { + bbs.add(AxisAlignedBB.getBoundingBox(x + lower, y + 0.0D, z + lower, x + upper, y + 1.0D, z + upper)); + } else if(mask == 0b000010 || mask == 0b000001 || mask == 0b000011) { + bbs.add(AxisAlignedBB.getBoundingBox(x + lower, y + lower, z + 0.0D, x + upper, y + upper, z + 1.0D)); + } else { + + if(count != 2) { + bbs.add(AxisAlignedBB.getBoundingBox(x + jLower, y + jLower, z + jLower, x + jUpper, y + jUpper, z + jUpper)); + } else { + bbs.add(AxisAlignedBB.getBoundingBox(x + lower, y + lower, z + lower, x + upper, y + upper, z + upper)); + } + + if(pX) bbs.add(AxisAlignedBB.getBoundingBox(x + upper, y + lower, z + lower, x + 1.0D, y + upper, z + upper)); + if(nX) bbs.add(AxisAlignedBB.getBoundingBox(x + 0.0D, y + lower, z + lower, x + lower, y + upper, z + upper)); + if(pY) bbs.add(AxisAlignedBB.getBoundingBox(x + lower, y + upper, z + lower, x + upper, y + 1.0D, z + upper)); + if(nY) bbs.add(AxisAlignedBB.getBoundingBox(x + lower, y + 0.0D, z + lower, x + upper, y + lower, z + upper)); + if(pZ) bbs.add(AxisAlignedBB.getBoundingBox(x + lower, y + lower, z + upper, x + upper, y + upper, z + 1.0D)); + if(nZ) bbs.add(AxisAlignedBB.getBoundingBox(x + lower, y + lower, z + 0.0D, x + upper, y + upper, z + lower)); + } for(AxisAlignedBB bb : bbs) { if(entityBounding.intersectsWith(bb)) { @@ -244,68 +240,67 @@ public class FluidDuctBox extends FluidDuctBase implements IBlockMulti, ILookOve public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { TileEntity te = world.getTileEntity(x, y, z); - if(te instanceof TileEntityPipeBaseNT) { - TileEntityPipeBaseNT pipe = (TileEntityPipeBaseNT) te; - FluidType type = pipe.getType(); - float lower = 0.125F; - float upper = 0.875F; - float jLower = 0.0625F; - float jUpper = 0.9375F; - int meta = world.getBlockMetadata(x, y, z); + float lower = 0.125F; + float upper = 0.875F; + float jLower = 0.0625F; + float jUpper = 0.9375F; + int meta = world.getBlockMetadata(x, y, z); + + for(int i = 2; i < 13; i += 3) { - for(int i = 2; i < 13; i += 3) { - - if(meta > i) { - lower += 0.0625F; - upper -= 0.0625F; - jLower += 0.0625F; - jUpper -= 0.0625F; - } + if(meta > i) { + lower += 0.0625F; + upper -= 0.0625F; + jLower += 0.0625F; + jUpper -= 0.0625F; } - - boolean nX = canConnectTo(world, x, y, z, Library.NEG_X, type); - boolean pX = canConnectTo(world, x, y, z, Library.POS_X, type); - boolean nY = canConnectTo(world, x, y, z, Library.NEG_Y, type); - boolean pY = canConnectTo(world, x, y, z, Library.POS_Y, type); - boolean nZ = canConnectTo(world, x, y, z, Library.NEG_Z, type); - boolean pZ = canConnectTo(world, x, y, z, Library.POS_Z, type); - int mask = 0 + (pX ? 32 : 0) + (nX ? 16 : 0) + (pY ? 8 : 0) + (nY ? 4 : 0) + (pZ ? 2 : 0) + (nZ ? 1 : 0); - int count = 0 + (pX ? 1 : 0) + (nX ? 1 : 0) + (pY ? 1 : 0) + (nY ? 1 : 0) + (pZ ? 1 : 0) + (nZ ? 1 : 0); + } + + boolean nX = canConnectTo(world, x, y, z, Library.NEG_X, te); + boolean pX = canConnectTo(world, x, y, z, Library.POS_X, te); + boolean nY = canConnectTo(world, x, y, z, Library.NEG_Y, te); + boolean pY = canConnectTo(world, x, y, z, Library.POS_Y, te); + boolean nZ = canConnectTo(world, x, y, z, Library.NEG_Z, te); + boolean pZ = canConnectTo(world, x, y, z, Library.POS_Z, te); + int mask = 0 + (pX ? 32 : 0) + (nX ? 16 : 0) + (pY ? 8 : 0) + (nY ? 4 : 0) + (pZ ? 2 : 0) + (nZ ? 1 : 0); + int count = 0 + (pX ? 1 : 0) + (nX ? 1 : 0) + (pY ? 1 : 0) + (nY ? 1 : 0) + (pZ ? 1 : 0) + (nZ ? 1 : 0); + + if(mask == 0) { + this.setBlockBounds(jLower, jLower, jLower, jUpper, jUpper, jUpper); + } else if(mask == 0b100000 || mask == 0b010000 || mask == 0b110000) { + this.setBlockBounds(0F, lower, lower, 1F, upper, upper); + } else if(mask == 0b001000 || mask == 0b000100 || mask == 0b001100) { + this.setBlockBounds(lower, 0F, lower, upper, 1F, upper); + } else if(mask == 0b000010 || mask == 0b000001 || mask == 0b000011) { + this.setBlockBounds(lower, lower, 0F, upper, upper, 1F); + } else { - if(mask == 0) { - this.setBlockBounds(jLower, jLower, jLower, jUpper, jUpper, jUpper); - } else if(mask == 0b100000 || mask == 0b010000 || mask == 0b110000) { - this.setBlockBounds(0F, lower, lower, 1F, upper, upper); - } else if(mask == 0b001000 || mask == 0b000100 || mask == 0b001100) { - this.setBlockBounds(lower, 0F, lower, upper, 1F, upper); - } else if(mask == 0b000010 || mask == 0b000001 || mask == 0b000011) { - this.setBlockBounds(lower, lower, 0F, upper, upper, 1F); + if(count != 2) { + this.setBlockBounds( + nX ? 0F : jLower, + nY ? 0F : jLower, + nZ ? 0F : jLower, + pX ? 1F : jUpper, + pY ? 1F : jUpper, + pZ ? 1F : jUpper); } else { - - if(count != 2) { - this.setBlockBounds( - nX ? 0F : jLower, - nY ? 0F : jLower, - nZ ? 0F : jLower, - pX ? 1F : jUpper, - pY ? 1F : jUpper, - pZ ? 1F : jUpper); - } else { - this.setBlockBounds( - nX ? 0F : lower, - nY ? 0F : lower, - nZ ? 0F : lower, - pX ? 1F : upper, - pY ? 1F : upper, - pZ ? 1F : upper); - } + this.setBlockBounds( + nX ? 0F : lower, + nY ? 0F : lower, + nZ ? 0F : lower, + pX ? 1F : upper, + pY ? 1F : upper, + pZ ? 1F : upper); } } } - public boolean canConnectTo(IBlockAccess world, int x, int y, int z, ForgeDirection dir, FluidType type) { - return Library.canConnectFluid(world, x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, dir, type); + public boolean canConnectTo(IBlockAccess world, int x, int y, int z, ForgeDirection dir, TileEntity tile) { + if(tile instanceof TileEntityPipeBaseNT) { + return Library.canConnectFluid(world, x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, dir, ((TileEntityPipeBaseNT) tile).getType()); + } + return false; } @Override @@ -319,7 +314,7 @@ public class FluidDuctBox extends FluidDuctBase implements IBlockMulti, ILookOve TileEntityPipeBaseNT duct = (TileEntityPipeBaseNT) te; List text = new ArrayList(); - text.add("&[" + duct.getType().getColor() + "&]" +I18nUtil.resolveKey(duct.getType().getUnlocalizedName())); + text.add("&[" + duct.getType().getColor() + "&]" + I18nUtil.resolveKey(duct.getType().getUnlocalizedName())); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/blocks/network/FluidDuctBoxExhaust.java b/src/main/java/com/hbm/blocks/network/FluidDuctBoxExhaust.java new file mode 100644 index 000000000..3426cf93e --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/FluidDuctBoxExhaust.java @@ -0,0 +1,86 @@ +package com.hbm.blocks.network; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.blocks.ILookOverlay; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.lib.Library; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.network.TileEntityPipeExhaust; +import com.hbm.util.I18nUtil; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; +import net.minecraftforge.common.util.ForgeDirection; + +public class FluidDuctBoxExhaust extends FluidDuctBox { + + public FluidDuctBoxExhaust(Material mat) { + super(mat); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityPipeExhaust(); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + super.registerBlockIcons(iconRegister); + + iconStraight = new IIcon[1]; + iconEnd = new IIcon[1]; + iconCurveTL = new IIcon[1]; + iconCurveTR = new IIcon[1]; + iconCurveBL = new IIcon[1]; + iconCurveBR = new IIcon[1]; + iconJunction = new IIcon[1]; + + iconStraight[0] = iconRegister.registerIcon(RefStrings.MODID + ":boxduct_exhaust_straight"); + iconEnd[0] = iconRegister.registerIcon(RefStrings.MODID + ":boxduct_exhaust_end"); + iconCurveTL[0] = iconRegister.registerIcon(RefStrings.MODID + ":boxduct_exhaust_curve_tl"); + iconCurveTR[0] = iconRegister.registerIcon(RefStrings.MODID + ":boxduct_exhaust_curve_tr"); + iconCurveBL[0] = iconRegister.registerIcon(RefStrings.MODID + ":boxduct_exhaust_curve_bl"); + iconCurveBR[0] = iconRegister.registerIcon(RefStrings.MODID + ":boxduct_exhaust_curve_br"); + iconJunction[0] = iconRegister.registerIcon(RefStrings.MODID + ":boxduct_exhaust_junction"); + } + + public boolean canConnectTo(IBlockAccess world, int x, int y, int z, ForgeDirection dir, TileEntity tile) { + return Library.canConnectFluid(world, x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, dir, Fluids.SMOKE) || + Library.canConnectFluid(world, x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, dir, Fluids.SMOKE_LEADED) || + Library.canConnectFluid(world, x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, dir, Fluids.SMOKE_POISON); + } + + @Override + public int getSubCount() { + return 1; + } + + @SideOnly(Side.CLIENT) + public void getSubBlocks(Item item, CreativeTabs tab, List list) { + for(int i = 0; i < 15; i += 3) { + list.add(new ItemStack(item, 1, i)); + } + } + + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + List text = new ArrayList(); + text.add(I18nUtil.resolveKey(Fluids.SMOKE.getUnlocalizedName())); + text.add(I18nUtil.resolveKey(Fluids.SMOKE_LEADED.getUnlocalizedName())); + text.add(I18nUtil.resolveKey(Fluids.SMOKE_POISON.getUnlocalizedName())); + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } +} diff --git a/src/main/java/com/hbm/blocks/network/FluidSwitch.java b/src/main/java/com/hbm/blocks/network/FluidSwitch.java new file mode 100644 index 000000000..bbe44edd2 --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/FluidSwitch.java @@ -0,0 +1,88 @@ +package com.hbm.blocks.network; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.blocks.ILookOverlay; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.network.TileEntityFluidValve; +import com.hbm.util.I18nUtil; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; + +public class FluidSwitch extends BlockContainer implements ILookOverlay { + + @SideOnly(Side.CLIENT) + private IIcon iconOn; + + public FluidSwitch(Material mat) { + super(mat); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.iconOn = iconRegister.registerIcon(RefStrings.MODID + ":fluid_valve_on"); + this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":fluid_valve_off"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + return metadata == 1 ? iconOn : blockIcon; + } + + @Override + public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { + return new TileEntityFluidValve(); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if(world.isRemote) + { + return true; + } else if(!player.isSneaking()) + { + int meta = world.getBlockMetadata(x, y, z); + if(meta == 0) { + world.setBlockMetadataWithNotify(x, y, z, 1, 2); + world.playSoundEffect(x, y, z, "hbm:block.reactorStart", 1.0F, 1.0F); + } else { + world.setBlockMetadataWithNotify(x, y, z, 0, 2); + world.playSoundEffect(x, y, z, "hbm:block.reactorStart", 1.0F, 0.85F); + } + + TileEntityFluidValve te = (TileEntityFluidValve) world.getTileEntity(x, y, z); + te.updateState(); + + return true; + } else { + return false; + } + } + + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + + TileEntity te = world.getTileEntity(x, y, z); + + if(!(te instanceof TileEntityFluidValve)) + return; + + TileEntityFluidValve duct = (TileEntityFluidValve) te; + + List text = new ArrayList(); + text.add("&[" + duct.getType().getColor() + "&]" +I18nUtil.resolveKey(duct.getType().getUnlocalizedName())); + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } +} diff --git a/src/main/java/com/hbm/blocks/network/FluidValve.java b/src/main/java/com/hbm/blocks/network/FluidValve.java new file mode 100644 index 000000000..9211dc6c3 --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/FluidValve.java @@ -0,0 +1,89 @@ +package com.hbm.blocks.network; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.blocks.ILookOverlay; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.network.TileEntityFluidValve; +import com.hbm.util.I18nUtil; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; + +public class FluidValve extends BlockContainer implements ILookOverlay { + + @SideOnly(Side.CLIENT) + private IIcon iconOn; + + public FluidValve(Material mat) { + super(mat); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.iconOn = iconRegister.registerIcon(RefStrings.MODID + ":fluid_switch_on"); + this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":fluid_switch_off"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + return metadata == 1 ? iconOn : blockIcon; + } + + @Override + public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { + return new TileEntityFluidValve(); + } + + @Override + public void onNeighborBlockChange(World world, int x, int y, int z, Block block) { + + boolean on = world.isBlockIndirectlyGettingPowered(x, y, z); + int meta = world.getBlockMetadata(x, y, z); + + boolean update = false; + + if(on && meta == 0) { + world.setBlockMetadataWithNotify(x, y, z, 1, 2); + world.playSoundEffect(x, y, z, "hbm:block.reactorStart", 1.0F, 1.0F); + update = true; + } + + if(!on && meta == 1) { + world.setBlockMetadataWithNotify(x, y, z, 0, 2); + world.playSoundEffect(x, y, z, "hbm:block.reactorStart", 1.0F, 0.85F); + update = true; + } + + if(update) { + TileEntityFluidValve te = (TileEntityFluidValve) world.getTileEntity(x, y, z); + te.updateState(); + } + } + + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + + TileEntity te = world.getTileEntity(x, y, z); + + if(!(te instanceof TileEntityFluidValve)) + return; + + TileEntityFluidValve duct = (TileEntityFluidValve) te; + + List text = new ArrayList(); + text.add("&[" + duct.getType().getColor() + "&]" +I18nUtil.resolveKey(duct.getType().getUnlocalizedName())); + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } +} diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index df3839c36..6fdebb888 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -152,6 +152,9 @@ public class Fluids { public static FluidType POTASSIUM_CHLORIDE; public static FluidType CALCIUM_CHLORIDE; public static FluidType CALCIUM_SOLUTION; + public static FluidType SMOKE; + public static FluidType SMOKE_LEADED; + public static FluidType SMOKE_POISON; private static final HashMap idMapping = new HashMap(); private static final HashMap nameMapping = new HashMap(); @@ -302,8 +305,11 @@ public class Fluids { CHLOROCALCITE_MIX = new FluidType("CHLOROCALCITE_MIX", 0x808080, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, NOCON, new FT_Corrosive(60)); CHLOROCALCITE_CLEANED = new FluidType("CHLOROCALCITE_CLEANED", 0x808080, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, NOCON, new FT_Corrosive(60)); POTASSIUM_CHLORIDE = new FluidType("POTASSIUM_CHLORIDE", 0x808080, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, NOCON, new FT_Corrosive(60)); - CALCIUM_CHLORIDE = new FluidType("CALCIUM_CHLORIDE", 0x808080, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, NOCON, new FT_Corrosive(60)); - CALCIUM_SOLUTION = new FluidType(119, "CALCIUM_SOLUTION", 0x808080, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, NOCON, new FT_Corrosive(60)); + CALCIUM_CHLORIDE = new FluidType("CALCIUM_CHLORIDE", 0x808080, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, NOCON, new FT_Corrosive(60)); + CALCIUM_SOLUTION = new FluidType("CALCIUM_SOLUTION", 0x808080, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, NOCON, new FT_Corrosive(60)); + SMOKE = new FluidType("SMOKE", 0x808080, 0, 0, 0, EnumSymbol.NONE).addTraits(GASEOUS, NOID, NOCON); + SMOKE_LEADED = new FluidType("SMOKE_LEADED", 0x808080, 0, 0, 0, EnumSymbol.NONE).addTraits(GASEOUS, NOID, NOCON); + SMOKE_POISON = new FluidType(122, "SMOKE_POISON", 0x808080, 0, 0, 0, EnumSymbol.NONE).addTraits(GASEOUS, NOID, NOCON); // ^ ^ ^ ^ ^ ^ ^ ^ //ADD NEW FLUIDS HERE @@ -443,6 +449,10 @@ public class Fluids { metaOrder.add(PLASMA_DH3); metaOrder.add(PLASMA_XM); metaOrder.add(PLASMA_BF); + //smoke + metaOrder.add(SMOKE); + metaOrder.add(SMOKE_LEADED); + metaOrder.add(SMOKE_POISON); CHLORINE.addTraits(new FT_Toxin().addEntry(new ToxinDirectDamage(ModDamageSource.cloud, 2F, 20, HazardClass.GAS_CHLORINE, false))); PHOSGENE.addTraits(new FT_Toxin().addEntry(new ToxinDirectDamage(ModDamageSource.cloud, 4F, 20, HazardClass.GAS_CHLORINE, false))); diff --git a/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java b/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java index 2c0150b5d..457bddf9b 100644 --- a/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java @@ -286,10 +286,6 @@ public class ShredderRecipes extends SerializableRecipe { ShredderRecipes.setRecipe(ModBlocks.chain, new ItemStack(ModItems.powder_steel_tiny, 1)); ShredderRecipes.setRecipe(ModBlocks.steel_grate, new ItemStack(ModItems.powder_steel_tiny, 3)); ShredderRecipes.setRecipe(ModItems.pipes_steel, new ItemStack(ModItems.powder_steel, 27)); - ShredderRecipes.setRecipe(ModBlocks.oil_duct, new ItemStack(ModItems.powder_steel_tiny, 3)); - ShredderRecipes.setRecipe(ModBlocks.oil_duct_solid, new ItemStack(ModItems.powder_steel_tiny, 3)); - ShredderRecipes.setRecipe(ModBlocks.gas_duct, new ItemStack(ModItems.powder_steel, 1)); - ShredderRecipes.setRecipe(ModBlocks.gas_duct_solid, new ItemStack(ModItems.powder_steel, 1)); ShredderRecipes.setRecipe(ModBlocks.machine_fluidtank, new ItemStack(ModItems.powder_steel, 32)); /* Sellafite scrapping */ diff --git a/src/main/java/com/hbm/lib/Library.java b/src/main/java/com/hbm/lib/Library.java index bd96c150b..28416dc2e 100644 --- a/src/main/java/com/hbm/lib/Library.java +++ b/src/main/java/com/hbm/lib/Library.java @@ -19,10 +19,6 @@ import com.hbm.items.ModItems; import com.hbm.tileentity.TileEntityProxyBase; import com.hbm.tileentity.TileEntityProxyInventory; import com.hbm.tileentity.conductor.TileEntityFluidDuctSimple; -import com.hbm.tileentity.conductor.TileEntityGasDuct; -import com.hbm.tileentity.conductor.TileEntityGasDuctSolid; -import com.hbm.tileentity.conductor.TileEntityOilDuct; -import com.hbm.tileentity.conductor.TileEntityOilDuctSolid; import com.hbm.tileentity.machine.TileEntityDummy; import api.hbm.energy.IBatteryItem; @@ -484,102 +480,6 @@ public class Library { ((TileEntityFluidDuctSimple)tileentity).uoteab.add(new UnionOfTileEntitiesAndBooleansForFluids(that, newTact)); } } - if(tileentity instanceof TileEntityGasDuct && ((TileEntityGasDuct)tileentity).type.name().equals(type.name())) - { - if(Library.checkUnionListForFluids(((TileEntityGasDuct)tileentity).uoteab, that)) - { - for(int i = 0; i < ((TileEntityGasDuct)tileentity).uoteab.size(); i++) - { - if(((TileEntityGasDuct)tileentity).uoteab.get(i).source == that) - { - if(((TileEntityGasDuct)tileentity).uoteab.get(i).ticked != newTact) - { - ((TileEntityGasDuct)tileentity).uoteab.get(i).ticked = newTact; - transmitFluid(x, y + 1, z, that.getTact(), that, worldObj, type); - transmitFluid(x, y - 1, z, that.getTact(), that, worldObj, type); - transmitFluid(x - 1, y, z, that.getTact(), that, worldObj, type); - transmitFluid(x + 1, y, z, that.getTact(), that, worldObj, type); - transmitFluid(x, y, z - 1, that.getTact(), that, worldObj, type); - transmitFluid(x, y, z + 1, that.getTact(), that, worldObj, type); - } - } - } - } else { - ((TileEntityGasDuct)tileentity).uoteab.add(new UnionOfTileEntitiesAndBooleansForFluids(that, newTact)); - } - } - if(tileentity instanceof TileEntityOilDuct && ((TileEntityOilDuct)tileentity).type.name().equals(type.name())) - { - if(Library.checkUnionListForFluids(((TileEntityOilDuct)tileentity).uoteab, that)) - { - for(int i = 0; i < ((TileEntityOilDuct)tileentity).uoteab.size(); i++) - { - if(((TileEntityOilDuct)tileentity).uoteab.get(i).source == that) - { - if(((TileEntityOilDuct)tileentity).uoteab.get(i).ticked != newTact) - { - ((TileEntityOilDuct)tileentity).uoteab.get(i).ticked = newTact; - transmitFluid(x, y + 1, z, that.getTact(), that, worldObj, type); - transmitFluid(x, y - 1, z, that.getTact(), that, worldObj, type); - transmitFluid(x - 1, y, z, that.getTact(), that, worldObj, type); - transmitFluid(x + 1, y, z, that.getTact(), that, worldObj, type); - transmitFluid(x, y, z - 1, that.getTact(), that, worldObj, type); - transmitFluid(x, y, z + 1, that.getTact(), that, worldObj, type); - } - } - } - } else { - ((TileEntityOilDuct)tileentity).uoteab.add(new UnionOfTileEntitiesAndBooleansForFluids(that, newTact)); - } - } - if(tileentity instanceof TileEntityGasDuctSolid && ((TileEntityGasDuctSolid)tileentity).type.name().equals(type.name())) - { - if(Library.checkUnionListForFluids(((TileEntityGasDuctSolid)tileentity).uoteab, that)) - { - for(int i = 0; i < ((TileEntityGasDuctSolid)tileentity).uoteab.size(); i++) - { - if(((TileEntityGasDuctSolid)tileentity).uoteab.get(i).source == that) - { - if(((TileEntityGasDuctSolid)tileentity).uoteab.get(i).ticked != newTact) - { - ((TileEntityGasDuctSolid)tileentity).uoteab.get(i).ticked = newTact; - transmitFluid(x, y + 1, z, that.getTact(), that, worldObj, type); - transmitFluid(x, y - 1, z, that.getTact(), that, worldObj, type); - transmitFluid(x - 1, y, z, that.getTact(), that, worldObj, type); - transmitFluid(x + 1, y, z, that.getTact(), that, worldObj, type); - transmitFluid(x, y, z - 1, that.getTact(), that, worldObj, type); - transmitFluid(x, y, z + 1, that.getTact(), that, worldObj, type); - } - } - } - } else { - ((TileEntityGasDuctSolid)tileentity).uoteab.add(new UnionOfTileEntitiesAndBooleansForFluids(that, newTact)); - } - } - if(tileentity instanceof TileEntityOilDuctSolid && ((TileEntityOilDuctSolid)tileentity).type.name().equals(type.name())) - { - if(Library.checkUnionListForFluids(((TileEntityOilDuctSolid)tileentity).uoteab, that)) - { - for(int i = 0; i < ((TileEntityOilDuctSolid)tileentity).uoteab.size(); i++) - { - if(((TileEntityOilDuctSolid)tileentity).uoteab.get(i).source == that) - { - if(((TileEntityOilDuctSolid)tileentity).uoteab.get(i).ticked != newTact) - { - ((TileEntityOilDuctSolid)tileentity).uoteab.get(i).ticked = newTact; - transmitFluid(x, y + 1, z, that.getTact(), that, worldObj, type); - transmitFluid(x, y - 1, z, that.getTact(), that, worldObj, type); - transmitFluid(x - 1, y, z, that.getTact(), that, worldObj, type); - transmitFluid(x + 1, y, z, that.getTact(), that, worldObj, type); - transmitFluid(x, y, z - 1, that.getTact(), that, worldObj, type); - transmitFluid(x, y, z + 1, that.getTact(), that, worldObj, type); - } - } - } - } else { - ((TileEntityOilDuctSolid)tileentity).uoteab.add(new UnionOfTileEntitiesAndBooleansForFluids(that, newTact)); - } - } } if(tileentity instanceof IFluidAcceptor && newTact && ((IFluidAcceptor)tileentity).getMaxFluidFillForReceive(type) > 0 && diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index b1a7d09fe..5216968ab 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -306,8 +306,6 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySoyuzLauncher.class, new RenderSoyuzLauncher()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySoyuzCapsule.class, new RenderCapsule()); //network - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityOilDuct.class, new RenderOilDuct()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityGasDuct.class, new RenderGasDuct()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFluidDuct.class, new RenderFluidDuct()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRFDuct.class, new RenderRFCable()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPylon.class, new RenderPylon()); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index c18a730e0..09737a6e0 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -622,6 +622,8 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.fluid_duct, 8), new Object[] { "SAS", " D ", "SAS", 'S', STEEL.plate(), 'A', AL.plate(), 'D', ModItems.ducttape }); addShapelessAuto(new ItemStack(ModBlocks.fluid_duct_neo, 1, 0), new Object[] { ModBlocks.fluid_duct }); addRecipeAuto(new ItemStack(ModBlocks.fluid_duct_solid, 8), new Object[] { "SAS", "ADA", "SAS", 'S', STEEL.ingot(), 'A', AL.plate(), 'D', ModItems.ducttape }); + addRecipeAuto(new ItemStack(ModBlocks.fluid_valve, 1), new Object[] { "S", "W", 'S', Blocks.lever, 'W', ModBlocks.fluid_duct_paintable }); + addRecipeAuto(new ItemStack(ModBlocks.fluid_switch, 1), new Object[] { "S", "W", 'S', REDSTONE.dust(), 'W', ModBlocks.fluid_duct_paintable }); addRecipeAuto(new ItemStack(ModItems.template_folder, 1), new Object[] { "LPL", "BPB", "LPL", 'P', Items.paper, 'L', "dye", 'B', "dye" }); addRecipeAuto(new ItemStack(ModItems.pellet_antimatter, 1), new Object[] { "###", "###", "###", '#', ModItems.cell_antimatter }); addRecipeAuto(new ItemStack(ModItems.fluid_tank_empty, 8), new Object[] { "121", "1G1", "121", '1', AL.plate(), '2', IRON.plate(), 'G', KEY_ANYPANE }); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 19c93acf9..6f60eb450 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -1123,6 +1123,10 @@ public class MainRegistry { ignoreMappings.add("hbm:item.digamma_know"); ignoreMappings.add("hbm:item.digamma_kauai_moho"); ignoreMappings.add("hbm:item.digamma_up_on_top"); + ignoreMappings.add("hbm:tile.oil_duct_solid"); + ignoreMappings.add("hbm:tile.oil_duct"); + ignoreMappings.add("hbm:tile.gas_duct_solid"); + ignoreMappings.add("hbm:tile.gas_duct"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/java/com/hbm/render/block/RenderBoxDuct.java b/src/main/java/com/hbm/render/block/RenderBoxDuct.java index eb0d53002..c8c8f8915 100644 --- a/src/main/java/com/hbm/render/block/RenderBoxDuct.java +++ b/src/main/java/com/hbm/render/block/RenderBoxDuct.java @@ -23,7 +23,7 @@ public class RenderBoxDuct implements ISimpleBlockRenderingHandler { Tessellator tessellator = Tessellator.instance; FluidDuctBox duct = (FluidDuctBox) block; - int type = metadata % 3; + int type = duct.rectify(metadata); float lower = 0.125F; float upper = 0.875F; @@ -65,7 +65,23 @@ public class RenderBoxDuct implements ISimpleBlockRenderingHandler { tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); int meta = world.getBlockMetadata(x, y, z); + boolean pX = false; + boolean nX = false; + boolean pY = false; + boolean nY = false; + boolean pZ = false; + boolean nZ = false; + FluidDuctBox.cachedColor = 0xffffff; + FluidDuctBox duct = (FluidDuctBox) block; + + pX = duct.canConnectTo(world, x, y, z, Library.POS_X, te); + nX = duct.canConnectTo(world, x, y, z, Library.NEG_X, te); + pY = duct.canConnectTo(world, x, y, z, Library.POS_Y, te); + nY = duct.canConnectTo(world, x, y, z, Library.NEG_Y, te); + pZ = duct.canConnectTo(world, x, y, z, Library.POS_Z, te); + nZ = duct.canConnectTo(world, x, y, z, Library.NEG_Z, te); + if(te instanceof TileEntityPipeBaseNT) { TileEntityPipeBaseNT pipe = (TileEntityPipeBaseNT) te; type = pipe.getType(); @@ -74,13 +90,6 @@ public class RenderBoxDuct implements ISimpleBlockRenderingHandler { } } - boolean pX = Library.canConnectFluid(world, x + 1, y, z, Library.POS_X, type); - boolean nX = Library.canConnectFluid(world, x - 1, y, z, Library.NEG_X, type); - boolean pY = Library.canConnectFluid(world, x, y + 1, z, Library.POS_Y, type); - boolean nY = Library.canConnectFluid(world, x, y - 1, z, Library.NEG_Y, type); - boolean pZ = Library.canConnectFluid(world, x, y, z + 1, Library.POS_Z, type); - boolean nZ = Library.canConnectFluid(world, x, y, z - 1, Library.NEG_Z, type); - int mask = 0 + (pX ? 32 : 0) + (nX ? 16 : 0) + (pY ? 8 : 0) + (nY ? 4 : 0) + (pZ ? 2 : 0) + (nZ ? 1 : 0); int count = 0 + (pX ? 1 : 0) + (nX ? 1 : 0) + (pY ? 1 : 0) + (nY ? 1 : 0) + (pZ ? 1 : 0) + (nZ ? 1 : 0); diff --git a/src/main/java/com/hbm/render/tileentity/RenderGasDuct.java b/src/main/java/com/hbm/render/tileentity/RenderGasDuct.java deleted file mode 100644 index 460d20b52..000000000 --- a/src/main/java/com/hbm/render/tileentity/RenderGasDuct.java +++ /dev/null @@ -1,153 +0,0 @@ -package com.hbm.render.tileentity; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.conductor.TileEntityGasDuct; - -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.common.util.ForgeDirection; - -public class RenderGasDuct extends TileEntitySpecialRenderer { - - public ResourceLocation texture = new ResourceLocation(RefStrings.MODID, "textures/blocks/gas_duct.png"); - float pixel = 1F/16F; - float textureP = 1F / 32F; - - @Override - public void renderTileEntityAt(TileEntity tileentity, double offsetX, double offsetY, double offsetZ, float f) { - GL11.glTranslated(offsetX, offsetY, offsetZ); - GL11.glDisable(GL11.GL_LIGHTING); - this.bindTexture(texture); - drawCore(tileentity); - TileEntityGasDuct cable = (TileEntityGasDuct) tileentity; - for(int i = 0; i < cable.connections.length; i++) - { - if(cable.connections[i] != null) - { - drawConnection(cable.connections[i]); - } - } - GL11.glTranslated(-offsetX, -offsetY, -offsetZ); - GL11.glEnable(GL11.GL_LIGHTING); - - } - - public void drawCore(TileEntity tileentity) { - Tessellator tesseract = Tessellator.instance; - tesseract.startDrawingQuads(); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); - - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); - - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 5 * textureP); - - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 5 * textureP); - - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); - - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); - tesseract.draw(); - } - - public void drawConnection(ForgeDirection direction) - { - Tessellator tesseract = Tessellator.instance; - tesseract.startDrawingQuads(); - GL11.glTranslatef(0.5F, 0.5F, 0.5F); - if(direction.equals(ForgeDirection.UP)) - { - - } - if(direction.equals(ForgeDirection.DOWN)) - { - GL11.glRotatef(180, 1, 0, 0); - } - if(direction.equals(ForgeDirection.NORTH)) - { - GL11.glRotatef(270, 1, 0, 0); - } - if(direction.equals(ForgeDirection.SOUTH)) - { - GL11.glRotatef(90, 1, 0, 0); - } - if(direction.equals(ForgeDirection.EAST)) - { - GL11.glRotatef(270, 0, 0, 1); - } - if(direction.equals(ForgeDirection.WEST)) - { - GL11.glRotatef(90, 0, 0, 1); - } - GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); - - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); - - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.draw(); - - GL11.glTranslatef(0.5F, 0.5F, 0.5F); - if(direction.equals(ForgeDirection.UP)) - { - - } - if(direction.equals(ForgeDirection.DOWN)) - { - GL11.glRotatef(-180, 1, 0, 0); - } - if(direction.equals(ForgeDirection.NORTH)) - { - GL11.glRotatef(-270, 1, 0, 0); - } - if(direction.equals(ForgeDirection.SOUTH)) - { - GL11.glRotatef(-90, 1, 0, 0); - } - if(direction.equals(ForgeDirection.EAST)) - { - GL11.glRotatef(-270, 0, 0, 1); - } - if(direction.equals(ForgeDirection.WEST)) - { - GL11.glRotatef(-90, 0, 0, 1); - } - GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - } -} diff --git a/src/main/java/com/hbm/render/tileentity/RenderOilDuct.java b/src/main/java/com/hbm/render/tileentity/RenderOilDuct.java deleted file mode 100644 index ec867972c..000000000 --- a/src/main/java/com/hbm/render/tileentity/RenderOilDuct.java +++ /dev/null @@ -1,153 +0,0 @@ -package com.hbm.render.tileentity; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.conductor.TileEntityOilDuct; - -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.common.util.ForgeDirection; - -public class RenderOilDuct extends TileEntitySpecialRenderer { - - public ResourceLocation texture = new ResourceLocation(RefStrings.MODID, "textures/blocks/oil_duct_alt.png"); - float pixel = 1F/16F; - float textureP = 1F / 32F; - - @Override - public void renderTileEntityAt(TileEntity tileentity, double offsetX, double offsetY, double offsetZ, float f) { - GL11.glTranslated(offsetX, offsetY, offsetZ); - GL11.glDisable(GL11.GL_LIGHTING); - this.bindTexture(texture); - drawCore(tileentity); - TileEntityOilDuct cable = (TileEntityOilDuct) tileentity; - for(int i = 0; i < cable.connections.length; i++) - { - if(cable.connections[i] != null) - { - drawConnection(cable.connections[i]); - } - } - GL11.glTranslated(-offsetX, -offsetY, -offsetZ); - GL11.glEnable(GL11.GL_LIGHTING); - - } - - public void drawCore(TileEntity tileentity) { - Tessellator tesseract = Tessellator.instance; - tesseract.startDrawingQuads(); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); - - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); - - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 5 * textureP); - - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 5 * textureP); - - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); - - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); - tesseract.draw(); - } - - public void drawConnection(ForgeDirection direction) - { - Tessellator tesseract = Tessellator.instance; - tesseract.startDrawingQuads(); - GL11.glTranslatef(0.5F, 0.5F, 0.5F); - if(direction.equals(ForgeDirection.UP)) - { - - } - if(direction.equals(ForgeDirection.DOWN)) - { - GL11.glRotatef(180, 1, 0, 0); - } - if(direction.equals(ForgeDirection.NORTH)) - { - GL11.glRotatef(270, 1, 0, 0); - } - if(direction.equals(ForgeDirection.SOUTH)) - { - GL11.glRotatef(90, 1, 0, 0); - } - if(direction.equals(ForgeDirection.EAST)) - { - GL11.glRotatef(270, 0, 0, 1); - } - if(direction.equals(ForgeDirection.WEST)) - { - GL11.glRotatef(90, 0, 0, 1); - } - GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); - - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); - - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.draw(); - - GL11.glTranslatef(0.5F, 0.5F, 0.5F); - if(direction.equals(ForgeDirection.UP)) - { - - } - if(direction.equals(ForgeDirection.DOWN)) - { - GL11.glRotatef(-180, 1, 0, 0); - } - if(direction.equals(ForgeDirection.NORTH)) - { - GL11.glRotatef(-270, 1, 0, 0); - } - if(direction.equals(ForgeDirection.SOUTH)) - { - GL11.glRotatef(-90, 1, 0, 0); - } - if(direction.equals(ForgeDirection.EAST)) - { - GL11.glRotatef(-270, 0, 0, 1); - } - if(direction.equals(ForgeDirection.WEST)) - { - GL11.glRotatef(-90, 0, 0, 1); - } - GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - } -} diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index e9ba74599..697a65aa4 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -87,10 +87,6 @@ public class TileMappings { put(TileEntityPartEmitter.class, "tileentity_partemitter"); put(TileEntityDummy.class, "tileentity_dummy"); put(TileEntityMachineCyclotron.class, "tileentity_cyclotron"); - put(TileEntityOilDuct.class, "tileentity_oil_duct"); - put(TileEntityOilDuctSolid.class, "tileentity_oil_duct_solid"); - put(TileEntityGasDuct.class, "tileentity_gas_duct"); - put(TileEntityGasDuctSolid.class, "tileentity_gas_duct_solid"); put(TileEntityMachineRTG.class, "tileentity_machine_rtg"); put(TileEntityStructureMarker.class, "tileentity_structure_marker"); put(TileEntityMachineMiningDrill.class, "tileentity_mining_drill"); @@ -192,6 +188,8 @@ public class TileMappings { put(TileEntityPipeBaseNT.class, "tileentity_pipe_base"); put(TileEntityPipePaintable.class, "tileentity_pipe_paintable"); put(TileEntityPipeGauge.class, "tileentity_pipe_gauge"); + put(TileEntityPipeExhaust.class, "tileentity_pipe_exhaust"); + put(TileEntityFluidValve.class, "tileentity_pipe_valve"); put(TileEntityMachineBAT9000.class, "tileentity_bat9000"); put(TileEntityMachineOrbus.class, "tileentity_orbus"); put(TileEntityGlpyhidSpawner.class, "tileentity_glyphid_spawner"); diff --git a/src/main/java/com/hbm/tileentity/conductor/TileEntityGasDuct.java b/src/main/java/com/hbm/tileentity/conductor/TileEntityGasDuct.java deleted file mode 100644 index bcc06b8a4..000000000 --- a/src/main/java/com/hbm/tileentity/conductor/TileEntityGasDuct.java +++ /dev/null @@ -1,97 +0,0 @@ -package com.hbm.tileentity.conductor; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.blocks.ModBlocks; -import com.hbm.calc.UnionOfTileEntitiesAndBooleansForFluids; -import com.hbm.interfaces.IFluidDuct; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.lib.Library; -import com.hbm.tileentity.network.TileEntityPipeBaseNT; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; - -public class TileEntityGasDuct extends TileEntity implements IFluidDuct { - - public ForgeDirection[] connections = new ForgeDirection[6]; - public FluidType type = Fluids.GAS; - public List uoteab = new ArrayList(); - - @Override - public void updateEntity() { - - //this.updateConnections(); - - worldObj.setBlock(xCoord, yCoord, zCoord, ModBlocks.fluid_duct_neo, 1, 3); - - TileEntity tile = worldObj.getTileEntity(xCoord, yCoord, zCoord); - if(tile instanceof TileEntityPipeBaseNT) { - ((TileEntityPipeBaseNT) tile).setType(this.type); - } - } - - public void updateConnections() { - if(Library.checkFluidConnectables(this.worldObj, xCoord, yCoord + 1, zCoord, type)) - connections[0] = ForgeDirection.UP; - else - connections[0] = null; - - if(Library.checkFluidConnectables(this.worldObj, xCoord, yCoord - 1, zCoord, type)) - connections[1] = ForgeDirection.DOWN; - else - connections[1] = null; - - if(Library.checkFluidConnectables(this.worldObj, xCoord, yCoord, zCoord - 1, type)) - connections[2] = ForgeDirection.NORTH; - else - connections[2] = null; - - if(Library.checkFluidConnectables(this.worldObj, xCoord + 1, yCoord, zCoord, type)) - connections[3] = ForgeDirection.EAST; - else - connections[3] = null; - - if(Library.checkFluidConnectables(this.worldObj, xCoord, yCoord, zCoord + 1, type)) - connections[4] = ForgeDirection.SOUTH; - else - connections[4] = null; - - if(Library.checkFluidConnectables(this.worldObj, xCoord - 1, yCoord, zCoord, type)) - connections[5] = ForgeDirection.WEST; - else - connections[5] = null; - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - type = Fluids.GAS; - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - } - - @Override - @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() { - return 65536.0D; - } - - @Override - public FluidType getType() { - return type; - } - - @Override - public boolean setType(FluidType type) { - return false; - } -} diff --git a/src/main/java/com/hbm/tileentity/conductor/TileEntityGasDuctSolid.java b/src/main/java/com/hbm/tileentity/conductor/TileEntityGasDuctSolid.java deleted file mode 100644 index a78c2a6e3..000000000 --- a/src/main/java/com/hbm/tileentity/conductor/TileEntityGasDuctSolid.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.hbm.tileentity.conductor; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.blocks.ModBlocks; -import com.hbm.calc.UnionOfTileEntitiesAndBooleansForFluids; -import com.hbm.interfaces.IFluidDuct; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.tileentity.network.TileEntityPipeBaseNT; - -import net.minecraft.tileentity.TileEntity; - -public class TileEntityGasDuctSolid extends TileEntity implements IFluidDuct { - - public FluidType type = Fluids.GAS; - public List uoteab = new ArrayList(); - - @Override - public void updateEntity() { - - //if(!worldObj.isRemote) - // PacketDispatcher.wrapper.sendToAll(new TEFluidPipePacket(xCoord, yCoord, zCoord, type)); - - //this.updateConnections(); - - worldObj.setBlock(xCoord, yCoord, zCoord, ModBlocks.fluid_duct_paintable); - - TileEntity tile = worldObj.getTileEntity(xCoord, yCoord, zCoord); - if(tile instanceof TileEntityPipeBaseNT) { - ((TileEntityPipeBaseNT) tile).setType(this.type); - } - } - - @Override - public FluidType getType() { - return type; - } - - @Override - public boolean setType(FluidType type) { - return false; - } -} diff --git a/src/main/java/com/hbm/tileentity/conductor/TileEntityOilDuct.java b/src/main/java/com/hbm/tileentity/conductor/TileEntityOilDuct.java deleted file mode 100644 index 9db606172..000000000 --- a/src/main/java/com/hbm/tileentity/conductor/TileEntityOilDuct.java +++ /dev/null @@ -1,95 +0,0 @@ -package com.hbm.tileentity.conductor; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.blocks.ModBlocks; -import com.hbm.calc.UnionOfTileEntitiesAndBooleansForFluids; -import com.hbm.interfaces.IFluidDuct; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.lib.Library; -import com.hbm.tileentity.network.TileEntityPipeBaseNT; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; - -public class TileEntityOilDuct extends TileEntity implements IFluidDuct { - - public ForgeDirection[] connections = new ForgeDirection[6]; - public FluidType type = Fluids.OIL; - public List uoteab = new ArrayList(); - - public TileEntityOilDuct() { - - } - - @Override - public void updateEntity() { - - //if(!worldObj.isRemote) - // PacketDispatcher.wrapper.sendToAll(new TEFluidPipePacket(xCoord, yCoord, zCoord, type)); - - //this.updateConnections(); - - worldObj.setBlock(xCoord, yCoord, zCoord, ModBlocks.fluid_duct_neo, 2, 3); - - TileEntity tile = worldObj.getTileEntity(xCoord, yCoord, zCoord); - if(tile instanceof TileEntityPipeBaseNT) { - ((TileEntityPipeBaseNT) tile).setType(this.type); - } - } - - public void updateConnections() { - if(Library.checkFluidConnectables(this.worldObj, xCoord, yCoord + 1, zCoord, type)) connections[0] = ForgeDirection.UP; - else connections[0] = null; - - if(Library.checkFluidConnectables(this.worldObj, xCoord, yCoord - 1, zCoord, type)) connections[1] = ForgeDirection.DOWN; - else connections[1] = null; - - if(Library.checkFluidConnectables(this.worldObj, xCoord, yCoord, zCoord - 1, type)) connections[2] = ForgeDirection.NORTH; - else connections[2] = null; - - if(Library.checkFluidConnectables(this.worldObj, xCoord + 1, yCoord, zCoord, type)) connections[3] = ForgeDirection.EAST; - else connections[3] = null; - - if(Library.checkFluidConnectables(this.worldObj, xCoord, yCoord, zCoord + 1, type)) connections[4] = ForgeDirection.SOUTH; - else connections[4] = null; - - if(Library.checkFluidConnectables(this.worldObj, xCoord - 1, yCoord, zCoord, type)) connections[5] = ForgeDirection.WEST; - else connections[5] = null; - } - - @Override - public void readFromNBT(NBTTagCompound nbt) - { - super.readFromNBT(nbt); - type = Fluids.OIL; - } - - @Override - public void writeToNBT(NBTTagCompound nbt) - { - super.writeToNBT(nbt); - } - - @Override - @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { - return 65536.0D; - } - - @Override - public FluidType getType() { - return type; - } - - @Override - public boolean setType(FluidType type) { - return false; - } -} diff --git a/src/main/java/com/hbm/tileentity/conductor/TileEntityOilDuctSolid.java b/src/main/java/com/hbm/tileentity/conductor/TileEntityOilDuctSolid.java deleted file mode 100644 index 940494cbc..000000000 --- a/src/main/java/com/hbm/tileentity/conductor/TileEntityOilDuctSolid.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.hbm.tileentity.conductor; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.blocks.ModBlocks; -import com.hbm.calc.UnionOfTileEntitiesAndBooleansForFluids; -import com.hbm.interfaces.IFluidDuct; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.tileentity.network.TileEntityPipeBaseNT; - -import net.minecraft.tileentity.TileEntity; - -public class TileEntityOilDuctSolid extends TileEntity implements IFluidDuct { - - public FluidType type = Fluids.OIL; - public List uoteab = new ArrayList(); - - @Override - public void updateEntity() { - - //if(!worldObj.isRemote) - // PacketDispatcher.wrapper.sendToAll(new TEFluidPipePacket(xCoord, yCoord, zCoord, type)); - - //this.updateConnections(); - - worldObj.setBlock(xCoord, yCoord, zCoord, ModBlocks.fluid_duct_paintable); - - TileEntity tile = worldObj.getTileEntity(xCoord, yCoord, zCoord); - if(tile instanceof TileEntityPipeBaseNT) { - ((TileEntityPipeBaseNT) tile).setType(this.type); - } - } - - @Override - public FluidType getType() { - return type; - } - - @Override - public boolean setType(FluidType type) { - return false; - } -} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoiler.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoiler.java index 7882e3e8c..3323f4bce 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoiler.java @@ -5,6 +5,8 @@ import java.util.List; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.machine.MachineBoiler; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; import com.hbm.interfaces.IFluidSource; @@ -253,6 +255,7 @@ public class TileEntityMachineBoiler extends TileEntityLoadedBase implements ISi if(burnTime > 0) { burnTime--; + if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND); heat += 50; flag1 = true; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java index f00709901..336e27bc5 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java @@ -3,6 +3,8 @@ package com.hbm.tileentity.machine; import java.util.HashMap; import com.hbm.blocks.BlockDummyable; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Combustible; @@ -298,6 +300,7 @@ public class TileEntityMachineTurbineGas extends TileEntityMachineBase implement } double consumption = fuelMaxCons.containsKey(tanks[0].getTankType()) ? fuelMaxCons.get(tanks[0].getTankType()) : 5D; + if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * (float) consumption * 0.25F); makePower(consumption, throttle); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java index 613032cb6..e3f2e7705 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java @@ -5,6 +5,8 @@ import java.util.List; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; import com.hbm.handler.MultiblockHandlerXR; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.UpgradeManager; @@ -161,6 +163,8 @@ public class TileEntityMachineTurbofan extends TileEntityMachineBase implements this.wasOn = true; this.tank.setFill(this.tank.getFill() - amountToBurn); this.power += burnValue * amountToBurn; + + if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * amountToBurn); } power = Library.chargeItemsFromTE(slots, 3, power, power); diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityFluidValve.java b/src/main/java/com/hbm/tileentity/network/TileEntityFluidValve.java new file mode 100644 index 000000000..6e1a226dd --- /dev/null +++ b/src/main/java/com/hbm/tileentity/network/TileEntityFluidValve.java @@ -0,0 +1,27 @@ +package com.hbm.tileentity.network; + +import api.hbm.fluid.PipeNet; + +public class TileEntityFluidValve extends TileEntityPipeBaseNT { + + @Override + public boolean canUpdate() { + return this.worldObj != null && this.getBlockMetadata() == 1 && super.canUpdate(); + } + + public void updateState() { + + if(this.getBlockMetadata() == 0 && this.network != null) { + this.network.destroy(); + this.network = null; + } + + if(this.getBlockMetadata() == 1) { + this.connect(); + + if(this.getPipeNet(type) == null) { + new PipeNet(type).joinLink(this); + } + } + } +} diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityPipeExhaust.java b/src/main/java/com/hbm/tileentity/network/TileEntityPipeExhaust.java new file mode 100644 index 000000000..c871d3941 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/network/TileEntityPipeExhaust.java @@ -0,0 +1,82 @@ +package com.hbm.tileentity.network; + +import java.util.HashMap; +import java.util.Map.Entry; + +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.util.Compat; + +import api.hbm.fluid.IFluidConductor; +import api.hbm.fluid.IPipeNet; +import api.hbm.fluid.PipeNet; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityPipeExhaust extends TileEntity implements IFluidConductor { + + public HashMap nets = new HashMap(); + + @Override + public void updateEntity() { + + if(!worldObj.isRemote && canUpdate()) { + + //we got here either because the net doesn't exist or because it's not valid, so that's safe to assume + this.nets.clear(); + + for(Entry entry : nets.entrySet()) { + + this.connect(entry.getKey()); + + if(this.getPipeNet(entry.getKey()) == null) { + this.setPipeNet(entry.getKey(), new PipeNet(entry.getKey()).joinLink(this)); + } + } + } + } + + protected void connect(FluidType type) { + + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { + + TileEntity te = Compat.getTileStandard(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ); + + if(te instanceof IFluidConductor) { + + IFluidConductor conductor = (IFluidConductor) te; + + if(!conductor.canConnect(type, dir.getOpposite())) + continue; + + if(this.getPipeNet(type) == null && conductor.getPipeNet(type) != null) { + conductor.getPipeNet(type).joinLink(this); + } + + if(this.getPipeNet(type) != null && conductor.getPipeNet(type) != null && this.getPipeNet(type) != conductor.getPipeNet(type)) { + conductor.getPipeNet(type).joinNetworks(this.getPipeNet(type)); + } + } + } + } + + @Override + public boolean canConnect(FluidType type, ForgeDirection dir) { + return type == Fluids.SMOKE || type == Fluids.SMOKE_LEADED || type == Fluids.SMOKE_POISON; + } + + @Override + public long getDemand(FluidType type, int pressure) { + return 0; + } + + @Override + public IPipeNet getPipeNet(FluidType type) { + return nets.get(type); + } + + @Override + public void setPipeNet(FluidType type, IPipeNet network) { + nets.put(type, network); + } +} diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 99542b701..1a4bc80b9 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -1689,6 +1689,7 @@ item.dysfunctional_reactor.name=Funktionsunfähiger Atomreaktor item.egg_balefire.name=Balefire-Ei item.egg_balefire.desc=Was für ein Vogel legt denn ein radioaktives Ei? item.egg_balefire_shard.name=Balefire-Scherbe +item.egg_glyphid.name=Glyphid-Ei item.elec_axe.name=Elektrische Kettensäge item.elec_pickaxe.name=Schlagbohrmaschine item.elec_shovel.name=Spiralbohrer @@ -3792,11 +3793,14 @@ tile.flame_war.name=Flamewar aus der Box tile.float_bomb.name=Schwebebombe tile.fluid_duct.name=Universelles Flüssigkeitsrohr (Veraltet) tile.fluid_duct_box.name=Universelles Flüssigkeitsrohr (Boxrohr) +tile.fluid_duct_exhaust.name=Abgasrohr tile.fluid_duct_gauge.name=Flussmessrohr tile.fluid_duct_gauge.desc=Rohr welches anzeight, wie viel Flüssigkeit$sich pro Tick im Netzwerk bewegt.$Geteilte Netzwerke die über Fässer oder Tanks$verbunden sind, werden als ein einzelnes gezählt. tile.fluid_duct_neo.name=Universelles Flüssigkeitsrohr tile.fluid_duct_paintable.name=Geschirmtes universelles Flüssigkeitsrohr (Färbbar) tile.fluid_duct_solid.name=Geschirmtes universelles Flüssigkeitsrohr (Veraltet) +tile.fluid_switch.name=Redstone-Ventil +tile.fluid_valve.name=Ventil tile.foam_layer.name=Schaumdecke tile.foundry_basin.name=Gussbecken tile.foundry_channel.name=Gusskanal diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 01de09f83..75ec980cc 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -2365,6 +2365,7 @@ item.early_explosive_lenses.desc=Assembly of 8 high-explosive lenses with an alu item.egg_balefire.name=Balefire Egg item.egg_balefire.desc=What kind of bird lays a radioactive egg? item.egg_balefire_shard.name=Balefire Shard +item.egg_glyphid.name=Glyphid Egg item.elec_axe.name=Electric Chainsaw item.elec_pickaxe.name=Impact Drill item.elec_shovel.name=Spiral Drill @@ -4660,11 +4661,14 @@ tile.flame_war.name=Flame War in a Box tile.float_bomb.name=Levitation Bomb tile.fluid_duct.name=Universal Fluid Duct (Deprecated) tile.fluid_duct_box.name=Universal Fluid Duct (Boxduct) +tile.fluid_duct_exhaust.name=Exhaust Pipe tile.fluid_duct_gauge.name=Flow Gauge Pipe tile.fluid_duct_gauge.desc=Pipe that displays how much fluid$moves within the network per tick.$Split networks connected by barrels$or tanks are considered as one shared network. tile.fluid_duct_neo.name=Universal Fluid Duct tile.fluid_duct_paintable.name=Paintable Coated Universal Fluid Duct tile.fluid_duct_solid.name=Coated Universal Fluid Duct (Deprecated) +tile.fluid_switch.name=Redstone Fluid Valve +tile.fluid_valve.name=Fluid Valve tile.foam_layer.name=Foam layer tile.foundry_basin.name=Foundry Basin tile.foundry_channel.name=Foundry Channel diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust.png new file mode 100644 index 0000000000000000000000000000000000000000..ab1816ba54d99abe2b3bd469e2afc3cfb1a9497c GIT binary patch literal 1426 zcmV;D1#S9?P)Lnk>%LG2r0-0Ua7BB^^Bkv}MkeAtXx& zhivUqn!g|&I%nu$L6>YHoeoUEV@U`EYbl8@woaD89s0fZNwR*~%18M4z6S&nzUS_F z-_zauoLs_RXf~VU*RNlLbB=1Yib|yd(=;K3K)>II5CW^KtKgiY+wJ1>=g%bsFe{%? z2c1p_KY#v&uIsqIzJ{i0Fbo5(>%#LqxUP%y^K(ckA*DnVv+_&LW^>%>bnxoctBFq2 zaC>`;PNxF^sMTs%TwKh}6+++<;Xo6=<3^LCDI)U@%ZTdgGH2jGUlp z8Y-0vm}#0Y3?r79mWjb&pm?TfCbo@6PB07urfGr+A>g_$oaw9y2SHHDt%q2KTSoq;SwGZD=|@IA`2oGAly>+9>WJ6jxt z5D-G(&6_tMo|F=nWnpb?EjCk0ARe=AJGTJfPbO&H6OW#kmX@Xx&~CRe*X?#yM~y}U zYinzXq(-BGjg1YQot=SrQcBpi4aQh*J_)dG8>*uHXRF~{)?EG5P#LJzYO1Pn&SO(( zSr#0}!SV4iTCG;7qgnYOKk)M9OK{Fnuh-S~+UxZogg~#?!}9VnIOkxD#rlD~eAjiA zADFW&OO@5j%gfY~dU<(?rKKfoZEb;gRM$5)HgfS9`;+uUKad96UT5_KL8SVDI0U!X zS^Pj0nSLOMxWY1xABaOPKL8{bmb`u-3Ay}0k{1B-`GGWK`hl#LP{&!Ia{=*ahs$#=AWZmy(P)$_asY{bfHs-D0^0317}fPWwv2Fg zc80sVJ0-xjZ9IGSEH|G7g#5tf=H{5TR>Lr2%PEyoDJ5F1R>%*`%76T7_-9P` zO`EuAYUug&^b~u0d)VFGMgE1G0A1I?Imi6`JTy(i%F2owF!)Z;{ngbKeBX!TIM8*y zxG6OZ1J!C3jImI(ahH@5p69{$eQ?fU7)J37P+c#V%M${Ekq1|R@B1JhQdj`h^{9a8 z;K60+`##8r6rKWA)dEwH6gf@7Xf#sQw6FlG>*aDecFv>G(>p+Z;=wXN0x0^p!Gi)G zECW(Xtgf!AWf+|E=-|OAuq+Ew%Hl7flu~&CP1A67bp_A!LIXyx;cy7YaV7!044u|l4AHMHnG#Z8Ohr=NN;Q07BEa3L`Rymt$wTi)D zfWcr8Dkk*%-QArM&}y|xtyT-oW^?@Z?c0Cf_kqIi0O921q?Fxi5+wk5_wLaCCG8$8oT~zmF$Rp3EFMf$6%A`}_OcpW3J$ zfZWIWOaTD!<;#~`-}%0M`-We?em$6gxwMmU7K(6{fN9TkK@{OC0gs-6X^v!36yYiX zS^pKJp$JzAc=QZR^Qk_HBHRf9M@L84-rmk692^|r{rmS1CV)jhGSDWIgy2s25CR^* g7|~79)oekWQzAa}E*Vdc7hdjK^cV z_nb~A*6Vc(KqZ6SZpVJV#~8!ma6oH~wU!V9bzKueV6)i}V8Dprb3hzCm(dbuLM4ENtl(m-Q z@yKK{c`G?7aY}35bo`y$fKXB(AAIYyDR8&k8!i7q$b4iq490XjO4k~44;+FXIo5{*lm zG@%2m#EvM~V%JD4h_Ka;wy{EF{{AC+Z!o6TkzVyTby%DCKHS? zG)=>1vq=C%EU?ycI2=gRl)A2wQlgZ?dr#l@c<KRWC6nwS$+Rox2!wAO>K@ArF*G2aD6QBc?QgCWoJw*}Yhm6#J* zmLa8lG7XV*U5Atsp|wUS_0sf?r0Y7AQV8c9-h0O5@k`_7a(Q_lbE0iq`o4dQ>zsSK zi@7_&kbaZI+-N?ZKWx?ziF1y{VnNJ_s;WLNh$L|jLI{YaY3>Ef<&xv^__P;MalYMd jIiJsj5J=+i-+tp44S3}L{xGGQ00000NkvXXu0mjfwok41 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_curve_tl.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_curve_tl.png new file mode 100644 index 0000000000000000000000000000000000000000..6a7379597d9b302c5f402eef52eb910710d8fc38 GIT binary patch literal 362 zcmV-w0hRuVP)2a$-r96 z<#J(~CY*EZb~}tQc<))31@ArQ^OkVy#6erSi#r-&5B$Kk0tIBg8v&;)GI)VHj}E{R)3q;)K?k z$KyfMG#|qNi4#)FJg_ZFoX}e5fo)A-j6sAD@ZM9Fo1$_V;AHhOM=Og$CzKU-V-$2q0 z*rZPBbebW_1clvV|M)Ms>)P!Hx4GPN&l$MW;~%Tl>Rl;?Qi>>wkWvyw5lz$3wk=K5 z5JI?Dnx;Jf(Jh!vCTunvoO4)fiQ^cpHQsxws=|9uk|a3i*zIU9VRim#ku~?90*~`uV z%jFX199foq-a!a~+wJy}GyK1U5CYe!yU R+NuBm002ovPDHLkV1n2PzRLgr literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_end.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_end.png new file mode 100644 index 0000000000000000000000000000000000000000..2065be57ba3ac0f0edd6afc22ba61c78f1588627 GIT binary patch literal 517 zcmV+g0{Z=lP)M!9yUOvNNj-(P)1@G6o{HNumg6HmX^+C z3JRo%hSXLRJ4WIb?bgd2O&rH0NrEwkrfD$7uwJjJ>zd>7NKq631bLo6vn)ev4ZvhF zAq+#JC?blYmwJpK2q?>vP)f;ixkPKtVzEF7@qs>Ce?Og0>~=f0+wC6#tu>R$1R(^o z*=!(;d(zicRpGs-u4|-}{3xZEPN#%n_~P~r)>@o%c<<3#qm&{PLJ-F>Q51a$jGf05 z@ZJ;0F+vDJr4&h$d>39Yqgt%n{|RfTiz zh47B9>!|A*Yc0WQwR+CybK*G0d(Y$XpzAuk_rrZ$cU=d-d_L!Lxe)ZrwBPTa{g<9j zr(c&TO;fbi-0yb|hr{bOmSxHHdPPdf?RNXR&gb)ah}NH9uXb>VAq8{F00000NkvXX Hu0mjfmJ#a> literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_junction.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_junction.png new file mode 100644 index 0000000000000000000000000000000000000000..8019ad5439a0b09a1fbbc0417de02c0f9172f1d4 GIT binary patch literal 305 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf*=O+GT4Ux`Vuab{u6z&73HmJc;qx3~4igi75>o3jKy^%t<}wISW>uWC;DsYVkba`d9bh z>!lgDzcJbP9hkYnSf&1@W#_7@!^U%cUs=~PvaIR*QrCQ073gOMPgg&ebxsLQ0C-+> AFaQ7m literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_straight.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_exhaust_straight.png new file mode 100644 index 0000000000000000000000000000000000000000..f6a5ed43e67199f097addc96d23e61a52695ce25 GIT binary patch literal 309 zcmV-50m}Y~P)bsC?ju#S-?ARoBMOB`#tbOS(aavQcz047y}^$j4?Rpumafs_&#K^({Ex(-SyuTZ+Ok6ox;g8z{y142;kn7;ppXD!K%hGD~nC+=9*q1eZ{7 zAbm|t=@RNgl8%>XJAM!d=YD?9Xf|KAyh&X*BmlF+9)J}1%BC-q*7b?T|G%@TD*&*| zB>ilz^Xg~xB{tn24f$)Ty{ALe(caWjpuZP@qgw^D1ZM}xaMQC0idcX0E7?# zsG@j?jTQiqQX-|(MQe>xDjGMA8AE4d48|C&wViEHf&UO)K?s4?8f)#1Ew;o{4U|$3 zA`YJ5UhTMijxo6N3^YA2u<+-faODW+JcN+bt*|POr1%Sa!Q!yLnPl{t%l3S(2Y0^b Y0x~RF4pH?P!TJ#NB45QRUGFJO&mqb-8u8(@i&2Dn5xLfSon+Z+LkTp^^P zMB)gRl43=RM;w6^UT=O_@G75VdA;8EW_I)jlj-8ZKT$oC0ZjH=0CM0(#&<=}`oY<+ zH!^Mw0N#ocfKgA?*O36QtPcRKLGFL<{AM4sq70f0-*#8|p+|i5@Av5f>d)^h{A9CU z1K^wkz!(F-(`t2fHfjJ+RTZiVfQVqNjh>4dIOkARnx^@+7h`yy$ypf5Jq1j7C;ug(`AEL$^^+2jK&n1AtO*k zGOho_2uXoJ!5D%0D*N-@^WE8}+x_w7phD;=0NVDGom^D{=fVIOjT{M4&H(_=_Ps0l zbyd^4h!4w+F0RUW{pK9>a%X^bS9RmQ)R)72WEC9Bu^?&cSYi)VaqHTNp$wo|f zbbK<8W7aAn9@kfA0DzPd03gN)0C;$O)&7Zb%tQkNQc4(xK`X`>3ou_DqIJ|@>a7he z4lMtaf&u5io>{r?d&C&kZ<#o*%MQ^dvAT#y&J!#~w{UxNQQSe!Q*j4&jl1m{clXZ- zLH0AScTR9EwKk0yM_SAb9G)`i(oYfb=$5O^{Fl#ES7ri7g*01}ZUHG@er~6e=)XGH P00000NkvXXu0mjf#MX>b diff --git a/src/main/resources/assets/hbm/textures/blocks/fluid_valve_on.png b/src/main/resources/assets/hbm/textures/blocks/fluid_valve_on.png index 4bb093842207650b5f98ab2f2c37af39abbe7851..19c8bec2ae77cf28d011fcedb101f8cb5f33574e 100644 GIT binary patch delta 227 zcmV<90384H0*(TZGk*ZZNklu?@m75Jev-3q&Wk$R!(qL`lUIWDQS{HNqhD zjF5uDqIFIg0SZJQi4iuxvd{OQPXD~v><)MSlxj}_(6-lXvoS&l`UJcRIT9(y0DyCQ zNiy%(+u>YHA6Gxjx5<4505~-b0N#55thE3ft7_I81pw4_ja;e%AR;*DqJ2?-_a0TH z>$*`brscN@QWc%RT8qegts*kykOTm5&dowh2E@`%22A&y1^E17SpZ`Mkuuv1P^k8V dpoE}*0UnV!IZ^p@lDz-`002ovPDHLkV1i=ZU+@3` delta 330 zcmV-Q0k!^)0`vlqGk*aqNkl>36L?LMRdsvp)!MvzF~=zj^jn%hhJj(NueLXB^Fs=b`<@C3Y&jFyET7Twu+jV~OVvctC#-Cz_ zsZLJM_HC@7{B>+MQ06aXt=Jy-MStkovLDMv->anR1V;q3(n?)=WDJ4{u zuIq9xr8K*t#U%1i8!#{(LI{YIha-d#a=v8ZY+a>@05Qgih$1zrJtZb@A>LgL?m)F4 z+(Eg<-F8iL|3i%Ta?qf>a|4fU95akFTGkn+r)+dB|E*0;wOnoXfBBilldXX>$7s$e cJqI-V0(@ Date: Thu, 29 Jun 2023 20:59:13 +0200 Subject: [PATCH 169/432] fixes, localization, chimney --- src/main/java/com/hbm/blocks/ModBlocks.java | 3 + .../blocks/machine/MachineChimneyBrick.java | 44 ++ .../com/hbm/blocks/network/FluidDuctBox.java | 9 - .../com/hbm/blocks/network/FluidSwitch.java | 3 +- .../com/hbm/blocks/network/FluidValve.java | 3 +- src/main/java/com/hbm/main/ClientProxy.java | 1 + .../java/com/hbm/main/ResourceManager.java | 2 + .../render/tileentity/RenderChimneyBrick.java | 56 ++ .../java/com/hbm/tileentity/TileMappings.java | 1 + .../machine/TileEntityChimneyBrick.java | 80 ++ .../network/TileEntityPipeExhaust.java | 63 +- src/main/resources/assets/hbm/lang/zh_CN.lang | 145 +++- .../hbm/models/machines/chimney_brick.obj | 704 ++++++++++++++++++ .../models/machines/chimney_brick.png | Bin 0 -> 4794 bytes 14 files changed, 1054 insertions(+), 60 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/machine/MachineChimneyBrick.java create mode 100644 src/main/java/com/hbm/render/tileentity/RenderChimneyBrick.java create mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityChimneyBrick.java create mode 100644 src/main/resources/assets/hbm/models/machines/chimney_brick.obj create mode 100644 src/main/resources/assets/hbm/textures/models/machines/chimney_brick.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index ef999ee12..761570c9e 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -946,6 +946,7 @@ public class ModBlocks { public static Block machine_fracking_tower; public static Block machine_flare; + public static Block chimney_brick; public static Block machine_refinery; public static Block machine_vacuum_distill; @@ -2185,6 +2186,7 @@ public class ModBlocks { machine_fracking_tower = new MachineFrackingTower().setBlockName("machine_fracking_tower").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); oil_pipe = new BlockNoDrop(Material.iron).setBlockName("oil_pipe").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":oil_pipe"); machine_flare = new MachineGasFlare(Material.iron).setBlockName("machine_flare").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + chimney_brick = new MachineChimneyBrick(Material.iron).setBlockName("chimney_brick").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire"); machine_refinery = new MachineRefinery(Material.iron).setBlockName("machine_refinery").setHardness(5.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_refinery"); machine_vacuum_distill = new MachineVacuumDistill(Material.iron).setBlockName("machine_vacuum_distill").setHardness(5.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_fraction_tower = new MachineFractionTower(Material.iron).setBlockName("machine_fraction_tower").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); @@ -3257,6 +3259,7 @@ public class ModBlocks { register(machine_pumpjack); register(machine_fracking_tower); register(machine_flare); + register(chimney_brick); register(machine_refinery); register(machine_vacuum_distill); register(machine_fraction_tower); diff --git a/src/main/java/com/hbm/blocks/machine/MachineChimneyBrick.java b/src/main/java/com/hbm/blocks/machine/MachineChimneyBrick.java new file mode 100644 index 000000000..ab6bf4bbc --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineChimneyBrick.java @@ -0,0 +1,44 @@ +package com.hbm.blocks.machine; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.machine.TileEntityChimneyBrick; + +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class MachineChimneyBrick extends BlockDummyable { + + public MachineChimneyBrick(Material mat) { + super(mat); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + + if(meta >= 12) return new TileEntityChimneyBrick(); + if(meta >= 6) return new TileEntityProxyCombo().fluid(); + return null; + } + + @Override + public int[] getDimensions() { + return new int[] {12, 0, 1, 1, 1, 1}; + } + + @Override + public int getOffset() { + return 1; + } + + @Override + public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + this.makeExtra(world, x + dir.offsetX * o + 1, y, z + dir.offsetZ * o); + this.makeExtra(world, x + dir.offsetX * o - 1, y, z + dir.offsetZ * o); + this.makeExtra(world, x + dir.offsetX * o, y, z + dir.offsetZ * o + 1); + this.makeExtra(world, x + dir.offsetX * o, y, z + dir.offsetZ * o - 1); + } +} diff --git a/src/main/java/com/hbm/blocks/network/FluidDuctBox.java b/src/main/java/com/hbm/blocks/network/FluidDuctBox.java index f2d6f7674..75d01ab6f 100644 --- a/src/main/java/com/hbm/blocks/network/FluidDuctBox.java +++ b/src/main/java/com/hbm/blocks/network/FluidDuctBox.java @@ -5,8 +5,6 @@ import java.util.List; import com.hbm.blocks.IBlockMulti; import com.hbm.blocks.ILookOverlay; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; import com.hbm.lib.Library; import com.hbm.lib.RefStrings; import com.hbm.tileentity.network.TileEntityPipeBaseNT; @@ -73,14 +71,7 @@ public class FluidDuctBox extends FluidDuctBase implements IBlockMulti, ILookOve @SideOnly(Side.CLIENT) public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) { - FluidType type = Fluids.NONE; - TileEntity te = world.getTileEntity(x, y, z); - - if(te instanceof TileEntityPipeBaseNT) { - TileEntityPipeBaseNT pipe = (TileEntityPipeBaseNT) te; - type = pipe.getType(); - } boolean nX = canConnectTo(world, x, y, z, Library.NEG_X, te); boolean pX = canConnectTo(world, x, y, z, Library.POS_X, te); diff --git a/src/main/java/com/hbm/blocks/network/FluidSwitch.java b/src/main/java/com/hbm/blocks/network/FluidSwitch.java index bbe44edd2..aa7c2d1ca 100644 --- a/src/main/java/com/hbm/blocks/network/FluidSwitch.java +++ b/src/main/java/com/hbm/blocks/network/FluidSwitch.java @@ -10,7 +10,6 @@ import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; @@ -19,7 +18,7 @@ import net.minecraft.util.IIcon; import net.minecraft.world.World; import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; -public class FluidSwitch extends BlockContainer implements ILookOverlay { +public class FluidSwitch extends FluidDuctBase implements ILookOverlay { @SideOnly(Side.CLIENT) private IIcon iconOn; diff --git a/src/main/java/com/hbm/blocks/network/FluidValve.java b/src/main/java/com/hbm/blocks/network/FluidValve.java index 9211dc6c3..8482ebb14 100644 --- a/src/main/java/com/hbm/blocks/network/FluidValve.java +++ b/src/main/java/com/hbm/blocks/network/FluidValve.java @@ -11,7 +11,6 @@ import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; -import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.tileentity.TileEntity; @@ -19,7 +18,7 @@ import net.minecraft.util.IIcon; import net.minecraft.world.World; import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; -public class FluidValve extends BlockContainer implements ILookOverlay { +public class FluidValve extends FluidDuctBase implements ILookOverlay { @SideOnly(Side.CLIENT) private IIcon iconOn; diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 5216968ab..2cc2d6e41 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -212,6 +212,7 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineCyclotron.class, new RenderCyclotron()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineOilWell.class, new RenderDerrick()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineGasFlare.class, new RenderGasFlare()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityChimneyBrick.class, new RenderChimneyBrick()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineMiningDrill.class, new RenderMiningDrill()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineMiningLaser.class, new RenderLaserMiner()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineAssembler.class, new RenderAssembler()); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index cf4b0f9df..5708e8a12 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -81,6 +81,7 @@ public class ResourceManager { //Flare Stack public static final IModelCustom oilflare = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/flare_stack.obj")); + public static final IModelCustom chimney_brick = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/chimney_brick.obj")); //Tank public static final IModelCustom fluidtank = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/fluidtank.obj")); @@ -413,6 +414,7 @@ public class ResourceManager { //Flare Stack public static final ResourceLocation oilflare_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/flare_stack.png"); + public static final ResourceLocation chimney_brick_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/chimney_brick.png"); //Tank public static final ResourceLocation tank_tex = new ResourceLocation(RefStrings.MODID, "textures/models/tank.png"); diff --git a/src/main/java/com/hbm/render/tileentity/RenderChimneyBrick.java b/src/main/java/com/hbm/render/tileentity/RenderChimneyBrick.java new file mode 100644 index 000000000..bbab3e1ad --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderChimneyBrick.java @@ -0,0 +1,56 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderChimneyBrick extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { + + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glRotatef(180, 0F, 1F, 0F); + + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.chimney_brick_tex); + ResourceManager.chimney_brick.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glEnable(GL11.GL_CULL_FACE); + + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.chimney_brick); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase() { + public void renderInventory() { + GL11.glTranslated(0, -5, 0); + GL11.glScaled(2.25, 2.25, 2.25); + } + public void renderCommon() { + GL11.glScaled(0.5, 0.5, 0.5); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.chimney_brick_tex); + ResourceManager.chimney_brick.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glEnable(GL11.GL_CULL_FACE); + }}; + } +} diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 697a65aa4..2ff4005f6 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -314,6 +314,7 @@ public class TileMappings { put(TileEntityMachineCatalyticCracker.class, "tileentity_catalytic_cracker"); put(TileEntityMachineCatalyticReformer.class, "tileentity_catalytic_reformer"); put(TileEntityMachineCoker.class, "tileentity_coker"); + put(TileEntityChimneyBrick.class, "tileentity_chimney_brick"); put(TileEntityReactorZirnox.class, "tileentity_zirnox"); put(TileEntityZirnoxDestroyed.class, "tileentity_zirnox_destroyed"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyBrick.java b/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyBrick.java new file mode 100644 index 000000000..9833e540c --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyBrick.java @@ -0,0 +1,80 @@ +package com.hbm.tileentity.machine; + +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.lib.Library; +import com.hbm.tileentity.TileEntityLoadedBase; + +import api.hbm.fluid.IFluidUser; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.util.AxisAlignedBB; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityChimneyBrick extends TileEntityLoadedBase implements IFluidUser { + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + if(worldObj.getTotalWorldTime() % 20 == 0) { + FluidType[] types = new FluidType[] {Fluids.SMOKE, Fluids.SMOKE_LEADED, Fluids.SMOKE_POISON}; + + for(FluidType type : types) { + this.trySubscribe(type, worldObj, xCoord + 2, yCoord, zCoord, Library.POS_X); + this.trySubscribe(type, worldObj, xCoord - 2, yCoord, zCoord, Library.NEG_X); + this.trySubscribe(type, worldObj, xCoord, yCoord, zCoord + 2, Library.POS_Z); + this.trySubscribe(type, worldObj, xCoord, yCoord, zCoord - 2, Library.NEG_Z); + } + } + } + } + + @Override + public boolean canConnect(FluidType type, ForgeDirection dir) { + return (dir == ForgeDirection.NORTH || dir == ForgeDirection.SOUTH || dir == ForgeDirection.EAST || dir == ForgeDirection.WEST) && + (type == Fluids.SMOKE || type == Fluids.SMOKE_LEADED || type == Fluids.SMOKE_POISON); + } + + @Override + public long transferFluid(FluidType type, int pressure, long fluid) { + return 0; + } + + @Override + public long getDemand(FluidType type, int pressure) { + return 1_000_000; + } + + @Override + public FluidTank[] getAllTanks() { + return new FluidTank[] {}; + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 1, + yCoord, + zCoord - 1, + xCoord + 2, + yCoord + 13, + zCoord + 2 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } +} diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityPipeExhaust.java b/src/main/java/com/hbm/tileentity/network/TileEntityPipeExhaust.java index c871d3941..992aca682 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityPipeExhaust.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityPipeExhaust.java @@ -1,8 +1,5 @@ package com.hbm.tileentity.network; -import java.util.HashMap; -import java.util.Map.Entry; - import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.util.Compat; @@ -15,22 +12,24 @@ import net.minecraftforge.common.util.ForgeDirection; public class TileEntityPipeExhaust extends TileEntity implements IFluidConductor { - public HashMap nets = new HashMap(); + public IPipeNet[] nets = new IPipeNet[3]; + + public FluidType[] getSmokes() { + return new FluidType[] {Fluids.SMOKE, Fluids.SMOKE_LEADED, Fluids.SMOKE_POISON}; + } @Override public void updateEntity() { if(!worldObj.isRemote && canUpdate()) { - //we got here either because the net doesn't exist or because it's not valid, so that's safe to assume - this.nets.clear(); - - for(Entry entry : nets.entrySet()) { + for(int i = 0; i < 3; i++) nets[i] = null; + + for(FluidType type : getSmokes()) { + this.connect(type); - this.connect(entry.getKey()); - - if(this.getPipeNet(entry.getKey()) == null) { - this.setPipeNet(entry.getKey(), new PipeNet(entry.getKey()).joinLink(this)); + if(this.getPipeNet(type) == null) { + this.setPipeNet(type, new PipeNet(type).joinLink(this)); } } } @@ -59,10 +58,37 @@ public class TileEntityPipeExhaust extends TileEntity implements IFluidConductor } } } + + @Override + public void invalidate() { + super.invalidate(); + + if(!worldObj.isRemote) { + + for(int i = 0; i < 3; i++) { + if(nets[i] != null) { + nets[i].destroy(); + } + } + } + } + @Override + public boolean canUpdate() { + + if(this.isInvalid()) return false; + + for(IPipeNet net : nets) { + if(net == null || !net.isValid()) { + return true; + } + } + + return false; + } @Override public boolean canConnect(FluidType type, ForgeDirection dir) { - return type == Fluids.SMOKE || type == Fluids.SMOKE_LEADED || type == Fluids.SMOKE_POISON; + return dir != ForgeDirection.UNKNOWN && (type == Fluids.SMOKE || type == Fluids.SMOKE_LEADED || type == Fluids.SMOKE_POISON); } @Override @@ -72,11 +98,18 @@ public class TileEntityPipeExhaust extends TileEntity implements IFluidConductor @Override public IPipeNet getPipeNet(FluidType type) { - return nets.get(type); + + if(type == Fluids.SMOKE) return nets[0]; + if(type == Fluids.SMOKE_LEADED) return nets[1]; + if(type == Fluids.SMOKE_POISON) return nets[2]; + return null; } @Override public void setPipeNet(FluidType type, IPipeNet network) { - nets.put(type, network); + + if(type == Fluids.SMOKE) nets[0] = network; + if(type == Fluids.SMOKE_LEADED) nets[1] = network; + if(type == Fluids.SMOKE_POISON) nets[2] = network; } } diff --git a/src/main/resources/assets/hbm/lang/zh_CN.lang b/src/main/resources/assets/hbm/lang/zh_CN.lang index 8876e8c0f..7a3f443c8 100644 --- a/src/main/resources/assets/hbm/lang/zh_CN.lang +++ b/src/main/resources/assets/hbm/lang/zh_CN.lang @@ -313,57 +313,97 @@ book.starter.page18=v?r只是一个被困在"传声头像"的§o《一生一次 book_lore.author=By %s book_lore.test.name=测试 book_lore.test.author=那个家伙 +book_lore.test.page.0=>hello anons before i begin let me clarify that i'm not gay. >Be me >This night >18 > At hanging out with my best friend with my parents gone for a few days >We've been best friends for a year now >Been drinking a bit and playing lots of video games and ordered a pizza >We were having a blast >At a certain point in the night like around 9:00 he makes a really funny joke that I don't remember but I know that it made us both laugh really hard > With out thinking I brush my right hand through his semi-curly black hair and call him a funny boy >He blushes >I realize I'm feeling flustered >We're kinda close >All of the sudden he kisses me and for some reason I kiss him back >We make love >Cuddle together and fall asleep >Wake up in the middle of the night with his head snuggled up on my chest and neck area >It feels nice but I'm not a homosexual book_lore.test.page.1=>你好,在我开始之前,让我澄清我不是同性恋。>做我>今天晚上>18>和我最好的朋友和我的父母出去玩了几天>我们已经是最好的朋友一年了>喝了点酒,玩了很多电子游戏,还点了一份披萨>我们玩得很开心>在晚上的某个时候,比如9点左右,他开了一个非常有趣的玩笑,我不记得了,但我知道这让我们俩都笑得很厉害>没有我想我用右手摸了摸他那半卷曲的黑发,然后叫他一个有趣的男孩>他脸红了>我意识到我很慌张>我们有点亲密>突然他吻了我,出于某种原因我又吻了他>我们做爱>拥抱在一起睡着了>半夜醒来时,他的头贴在我的胸部和颈部>感觉很好,但我不是同性恋 book_lore.test.page.2=他在我怀里睡着时,我正在打字。我怎么才能让我最好的朋友失望呢?我不想成为[编辑]/b/ book_lore.test.page.3=3 book_lore.test.page.4=4 -book_lore.test.page.5=5 book_lore.book_iodine.name=笔记 book_lore.book_iodine.author=戴夫 +book_lore.book_iodine.page.0=alright you will not believe this, but old man weathervane finally managed to show up again since he left two weeks ago and what's more surprising is the fact that he actually decided to spill the beans on what they were doing in the canyon: book_lore.book_iodine.page.1=alright you will not believe this, but old man weathervane finally managed to show up again since he left two weeks ago and what's more surprising is the fact that he actually decided to spill the beans on what they were doing in the canyon: book_lore.book_iodine.page.2=apparently the morons from R&D discovered a compound that is mostly inorganic, pretty much like a toxin in nature, but get this: the dying cells will reproduce said toxin and excrete it through the skin, creating an aerosol that is highly contagious. -book_lore.book_iodine.page.3=it's just like a virus, but not a virus. the composition is weird, you can mix it in any household bottle but you do have to get the order right. the doc told me that the first ingredient which is just powdered iodine crystals goes into slot %d book_lore.book_phosphorous.name=笔记 book_lore.book_phosphorous.author=戴夫 +book_lore.book_phosphorous.page.0=heyo, it's me again. i assume you got my last memo, the doc wasn't too happy about it. i'll have to do this quick, the dunderheads from R&D are currently moaning again, probably over money. again. anyway, doc weathervane found that the second book_lore.book_phosphorous.page.1=heyo, it's me again. i assume you got my last memo, the doc wasn't too happy about it. i'll have to do this quick, the dunderheads from R&D are currently moaning again, probably over money. again. anyway, doc weathervane found that the second -book_lore.book_phosphorous.page.2=ingredient is red phosphorous, whihc has to be mixed into slot %d book_lore.book_dust.name=笔记 book_lore.book_dust.author=戴夫 +book_lore.book_dust.page.0=the doc was furious when he found out that the R&D dorks kept the one remaining sample, ranting about gross negligence this and a doomsday scenario that. i told him to chill for a minute, getting all worked up isn't good for his blood pressure, not book_lore.book_dust.page.1=the doc was furious when he found out that the R&D dorks kept the one remaining sample, ranting about gross negligence this and a doomsday scenario that. i told him to chill for a minute, getting all worked up isn't good for his blood pressure, not book_lore.book_dust.page.2=that he has much blood left to begin with. one of the R&D morons slipped some more info into last week's circular, they call their little concoction \"MKU\" whatever that means, and that it contains actual household lint. can you believe that? one of the most -book_lore.book_dust.page.3=dangerous inventions of theirs and it contains dust. strangely they also mentioned that it goes into slot %d book_lore.book_mercury.name=笔记 book_lore.book_mercury.author=戴夫 +book_lore.book_mercury.page.0=well that settles that. not counting the vomitting blood part, the toxicological report mostly resembles that of mercury poisoning. why? because our little mix also contains mercury! i just wonder where all that stuff comes from when being book_lore.book_mercury.page.1=well that settles that. not counting the vomitting blood part, the toxicological report mostly resembles that of mercury poisoning. why? because our little mix also contains mercury! i just wonder where all that stuff comes from when being -book_lore.book_mercury.page.2=replicated by the body? whatever, the mercury goes into slot %d book_lore.book_flower.name=笔记 book_lore.book_flower.author=戴夫 +book_lore.book_flower.page.0=remember when i mentioned in my first memo that the compound is mostly anorganic? well guess what, the old man shared the fourth ingredient: ipomoea nil, a genus of flower. morning glory! it might be due to its low sulfur content, whatever might be the case, book_lore.book_flower.page.1=remember when i mentioned in my first memo that the compound is mostly anorganic? well guess what, the old man shared the fourth ingredient: ipomoea nil, a genus of flower. morning glory! it might be due to its low sulfur content, whatever might be the case, -book_lore.book_flower.page.2=it does not work with other flowers. the morning glory goes into slot %d book_lore.book_syringe.name=笔记 book_lore.book_syringe.author=戴夫 +book_lore.book_syringe.page.0=a little addendum to my fifth message, obviously you have to store this MKU stuff in a container. the R&D nuts used regular metal syringes that they got from medical. surplus ware i presume, they got thousands of needles just lying around. the metal book_lore.book_syringe.page.1=a little addendum to my fifth message, obviously you have to store this MKU stuff in a container. the R&D nuts used regular metal syringes that they got from medical. surplus ware i presume, they got thousands of needles just lying around. the metal -book_lore.book_syringe.page.2=syringe goes into slot %d book_lore.resignation_note.name=辞职信 book_lore.resignation_note.author=科斯马 +book_lore.resignation_note.page.0=Management downsized our department again yesterday. Those idiots only have themselves to blame, I don't know what they were expecting after that fiasco. Who the hell leaks that sort of information? We're losing millions and book_lore.resignation_note.page.1=管理层昨天又对我们的部门进行裁员了。那群白痴要怪只能怪他们自己,我都不知道他们在那场惨败后还在期待什么。到底是谁他妈泄露了那种程度的信息? book_lore.resignation_note.page.2=我们损失了几百万,而且现在失业的还是爷。老子希望你们这帮混蛋最后能从你们的一堆问题中学到点教训然后给爷滚去自闭。 -book_lore.resignation_note.page.3=我周五不回来了。工资寄过来就行。 book_lore.memo_stocks.name=公司内部备忘录 -book_lore.memo_stocks.page.1=投资者报告 - $$最新的季度报告中提供的数据存在一些明显的差异。财政部所作出一些调整是明智的,因此不必有任何担忧。 +book_lore.memo_stocks.page.0=Investor Relations - $ $ There's been some glaring discrepancies in the figures provided for the latest quarterly report. It would be prudent for the financial department to make some adjustments, so there won't be any concern. book_lore.memo_schrab_gsa.name=内部备忘录 +book_lore.memo_schrab_gsa.page.0=Contract Management - $ $ Legal has made a breakthrough with the DLA. They've awarded us with a 45 BILLION GSA Schedule for further procurement and research of saralloy. At current estimates, that would be at minimum book_lore.memo_schrab_gsa.page.1=合同管理记录 - 法务部在与美国国防部后勤局的谈判中取得了突破。他们批准了450亿的联邦采购服务总署投资资金用于异变金属的采购与研究。 -book_lore.memo_schrab_gsa.page.2=就目前预期来看,这将至少产生40%的利润,更不必说以后行动所产生的利润,同时这将使我们未来有机会签订更多合同。鉴于此事的保密性质,所有财政证据都将为机密级别 book_lore.memo_schrab_rd.name=内部备忘录 +book_lore.memo_schrab_rd.page.0=Research & Development - $ $ Our main production method of saralloy has been through the new particle accelerator. However, the energy costs are exorbitantly high compared to the amount of output. book_lore.memo_schrab_rd.page.1=研发 - 目前我们主要生产方法是使用新型粒子加速器。然而,与产出量相比,能源成本高得惊人。 book_lore.memo_schrab_rd.page.2=然而,Schrabauer博士发现了一种全新的相互作用——暂称为“奇异轻子振荡”——该作用可以显著降低生产成本。通过一个目前未被完全理解的的过程,提供的电子被一种奇特的“魔力”转化为极高能量的光子。 book_lore.memo_schrab_rd.page.3=这是许多已明确的粒子转换定律的极端例外。但初步实验证明,这些质子先转变为上下夸克,最终形成了异变金属。奇怪的是,原型机中需要钨与少量异变金属合金化所得到的合金。 -book_lore.memo_schrab_rd.page.4=除此之外,还需要一个特殊的电容器用来抵消掉多余的正电荷。 book_lore.memo_schrab_nuke.name=研究报告 book_lore.memo_schrab_nuke.author=Schrabauer博士 +book_lore.memo_schrab_nuke.page.0=Our most recent investigation led us to the effects of nuclear explosions on materials. Thanks to our grant money, we *accidentally* tested our theory on direct saralloy synthesis from uranium. book_lore.memo_schrab_nuke.page.1=最近的调查使我们了解了核爆炸对材料造成的影响。多亏外界给我们的赠款,我们*意外地*测试了铀直接合成异变金属的理论。 book_lore.memo_schrab_nuke.page.2=而此前我们只在回旋加速器中制作出异变金属。但这次,我们在对Everwerpen的地下拍摄中,在该地点的铀矿石中发现了微量的异变金属。其附近所有的纯金属铀则都发生了裂变。 -book_lore.memo_schrab_nuke.page.3=因此,如果有足够多的铀矿石集中在核弹周围,甚至可能只需要一个富含裂变物质废料的脏弹,就有可能制造出质量大到可以被直接收集的异变金属。 +book_lore.bf_bomb_1.name=私人笔记 +book_lore.bf_bomb_1.author=M. 波特 +book_lore.bf_bomb_1.page.0=Took long enough, but my transfer was accepted. Those new grads were already hard to handle, let alone all the unprofessionalism of the lead. $ Not all good news - this lab was withholding further detail, and I didn't need more chaos over another magic new discovery. +book_lore.bf_bomb_1.page.1=Of course that was the case. The alumni had their doubts (surprising, considering how bright-eyed they were), but my only... competent? colleague actually got his hands on the primer hand-out. Must have more connections than I thought. His memo is discouraging: +book_lore.bf_bomb_1.page.2=apparently, there's yet ANOTHER miracle material that they prodded out of some concoction of antimatter and a fringe isotope. The brochure calls it "SWIRLMAT" - hell if I know - and that's it. No wonder they wanted a theoretical physicist, +book_lore.bf_bomb_1.page.3=they don't even know what it is yet. Either way, practically any job would be better than my old position, so I can't complain much about sketchiness. +book_lore.bf_bomb_2.name=私人笔记 +book_lore.bf_bomb_2.author=M. 波特 +book_lore.bf_bomb_2.page.0=Despite the absence of information in that primer, I still had some hope they knew a bit more. Not at all. Every other senior researcher has a blind faith in this material; their propositions were practically biblical. I was near speechless. +book_lore.bf_bomb_2.page.1=And yet I can't even blame them. Swirlmat makes no goddamn sense - it is completely unlike any other substance I've seen before. Its appearance was near frightening, a literal mass of swirling colors, with darker lines permeating through the neon green surface. +book_lore.bf_bomb_2.page.2=Even worse, this thing is an energy source. The existence of our sample is a violation of ALARA: the lab was vacated when it arrived, and the only person brave enough (one Dr. Melfyn) donned a level A hazmat just to carry it 20 meters. +book_lore.bf_bomb_2.page.3=The empirical data isn't better, as we're breaking the first law of thermodynamics with how much energy it radiates. Being anywhere near that thing - even behind a meter of lead - was terrifying. We sprinted out of the chamber upon conclusion of the spectroscopy +book_lore.bf_bomb_2.page.4=and we got nothing new out of it. Those idiots in the science team, god, did not even waver after all that. Sitting through those "discussions" was horrible; that quack of a head researcher even rumored that the test ban would be lifted, that we could be +book_lore.bf_bomb_2.page.5=building bombs out of the shit in the coming weeks, who in their right mind would work on that? Hell, the one sane assistant (an Andrew) nicknamed it "balefire" - because burning to death on a funeral pyre would be painless by comparison. +book_lore.bf_bomb_3.name=私人笔记 +book_lore.bf_bomb_3.author=M. 波特 +book_lore.bf_bomb_3.page.0=The team and I have made some breakthroughs. Emphasis on the separation - isolating myself from the more devout has made working there so much more bearable. While we still have no idea about the actual properties of balefire (it's difficult to analyze +book_lore.bf_bomb_3.page.1=a sample that fries your equipment) its interactions with other matter has proved fruitful. Notably, they synthesized a "gaseous" form: Andrew, of all people, informed me that it was really a colloid consisting of microscopic balefire particles, suspended in some +book_lore.bf_bomb_3.page.2=noble gas. Each particle is enveloped by a positively-charged 'bubble' of ionized gas, preventing it from settling. Who could've guessed that fatal gamma radiation had a benefit? Not me. $ I'm choosing not to think about how they transformed the sample into +book_lore.bf_bomb_3.page.3=particulate, but I can't understate the utility of this gaseous balefire - it's made it much safer to experiment on. $ Speaking of safety, the head researcher (in an act of callous disregard) made a discovery that also nearly took his head off. +book_lore.bf_bomb_3.page.4=He decided to get "dirty" by letting a cell of our new colloid interact directly with some very expensive antimatter: the resulting explosion turned the table it was on into a piece of radiation-bleached slag, carved a near-perfect hemisphere through +book_lore.bf_bomb_3.page.5=the top, and gave the head a healthy dose of ARS. I guess we know how to make it explode now, but god, some people... +book_lore.bf_bomb_4.name=私人笔记 +book_lore.bf_bomb_4.author=M. 波特 +book_lore.bf_bomb_4.page.0=I just can't escape my old work. They're the only place that's hiring despite all this godforsaken turmoil, but I'm not going back into that hole. $ They only tempted me because I need out, fast. Remember that atmospheric testing treaty we withdrew from a week ago? +book_lore.bf_bomb_4.page.1=Well, the dipshit in charge of our lab got something right for once. The denunciation came with a flurry of new "scientists" joining, just so we could weaponize balefire. The lack of critical thought here is honestly baffling - bless him, Andrew even jumped ship the +book_lore.bf_bomb_4.page.2=second the first fucking BOMB DESIGN was drafted. That ass Melfyn looked so happy with his little mechanism - perhaps he got brainworms from carrying that sample? - which involved some stupid shit using the solidified, base balefire and an HV +book_lore.bf_bomb_4.page.3=battery. $ Apparently, the form matters for energy output and activation method or whatever, kind of like uranium versus plutonium in regular nukes, but the end result is an initial shock starting the explosion. I find it funny, hilarious even. +book_lore.bf_bomb_4.page.4=All of them place such emphasis on the activation; they ignore the actual mechanism of it all because they don't have a single clue how it works! It may as well be magic at this point, and yet they're still trying to twist and bend it - just for more weapons of war. +book_lore.bf_bomb_5.name=私人笔记 +book_lore.bf_bomb_5.author=M. 波特 +book_lore.bf_bomb_5.page.0=I just... can't come to grips with it, even days after. It was a foregone conclusion, really, with how flippant the science team was with safety. $ $ Doctor Melfyn, M.S., is gone. Dead, maybe. I saw it happen before my own eyes, in their test chamber. +book_lore.bf_bomb_5.page.1=We had just gotten another batch of pure balefire, and he had recovered electrical equipment and an energy source to test his proposal. I don't know what caused it (was the power on? had he begun too soon?), but it seemingly progressed in agonizingly slow motion, +book_lore.bf_bomb_5.page.2=as the green-tinted light consumed the table, the battery, and Dr. Melfyn standing only a meter away. Even when the table had degraded into a pool of broiling metal on the floor, he did not burn. I don't know what I saw in his eyes... $ $ Terror, or awe +book_lore.bf_bomb_5.page.3=over his continued survival, maybe? Whatever our "miracle" material was, it didn't care. With a bright blaze of light, he disappeared in the next moment. Was he evaporated? incinerated? annihilated? sent to fucking hell itself, I don't know anymore! +book_lore.bf_bomb_5.page.4=The head researcher sickens me. Said we could be more careful, keep trucking, whatever other morale-improving filth he spewed. That dipshit won't ever figure out that playing with fire will get you burned. $ I didn't bother +book_lore.bf_bomb_5.page.5=resigning, I just grabbed my shit and ran for the hills. Not like it matters, anyway; considering the lack of calls, and the mushroom cloud that rose over my (now former) workplace, they've either blown everything up or entered full-on military jurisdiction. +book_lore.bf_bomb_5.page.6=There's a vital distinction to be made between dissection and VIVISECTION, one which was clearly lost on them. They can dissect metal or atoms as much as they like, but tearing into, vivisecting reality itself is only going to end in more Dr. Melfyns. Who knows! +book_lore.bf_bomb_5.page.7=The government wants to put this shit into bombs after all, maybe we'll see a couple more wars, couple more million resigned to a fate worse than death. They can't hide this forever. $ $ I don't care. Not anymore. Please, god, let me go back +book_lore.bf_bomb_5.page.8=to actual science. $ $ Goddamnit, Mae, get ahold of yourself... cannery.f1=[按F1键获取帮助] cannery.centrifuge=气体离心机 cannery.centrifuge.0=气体离心机可以使用通用流体管道传输流体。 @@ -394,7 +434,7 @@ cannery.firebox.0=燃烧室通过燃烧可燃物品产生热量。 cannery.firebox.1=它可以燃烧任何可燃物品,但更高质量的燃料如煤、焦炭和固体燃料燃烧时间更长,温度更高。 cannery.firebox.2=燃烧室顶部的铜触点可以传导热量。底部具有相同触点的机器可以通过放置在燃烧室顶部来接收热量。 cannery.firebox.3=如果热量没有用完,且热量缓冲器变满,燃烧室将暂停运行,以防止燃料浪费。 -cannery.firebox.4=一种这样的机器是斯特林发动机,它将热量直接转化为能量。 +cannery.firebox.4=一种这样的机器是斯特林发电机,它将热量直接转化为能量。 cannery.foundryChannel=铸造通道 cannery.foundryChannel.0=铸造通道用于将熔融材料从坩埚或储罐输送到模具中。 cannery.foundryChannel.1=通道可以通过从顶部(通过出口或直接连接坩埚)或从其他通道的侧面倾倒来接收材料。 @@ -412,7 +452,7 @@ cannery.silex.6=除了侧面的两个连接口之外,底部还有第三个隐 cannery.silex.7=每个配方都需要特定的激光类型。使用比所需类型更强的激光将更快地处理项目。 cannery.silex.8=一台FEL最多可以为5台SILEX供能。每个SILEX之间必须间隔一个方块。 cannery.stirling=斯特林发电机 -cannery.stirling.0=斯特林发动机使用来自外部的热能来产生能量。 +cannery.stirling.0=斯特林发电机使用来自外部的热能来产生能量。 cannery.stirling.1=它需要放置在发热机器的顶部,如燃烧室。 cannery.stirling.2=然而,它可以利用的热量有限,过旋转可能导致灾难性故障。 cannery.stirling.3=升级版可以在不损坏的情况下承受更多热量。 @@ -434,6 +474,8 @@ chem.BALEFIRE=野火火箭燃料混合 chem.BP_BIOFUEL=生物燃料酯化 chem.BP_BIOGAS=沼气生产 chem.C4=C-4合成 +chem.CC_CENTRIFUGE=氯方解石分离 +chem.CC_ELECTROLYSIS=氯化钙电解 chem.CC_HEATING=高级煤液化 chem.CC_HEAVY=初级煤液化 chem.CC_I=强化煤液化 @@ -485,6 +527,7 @@ chem.NITAN=NITAN牌超级燃料混合 chem.NITRIC_ACID=硝酸生产 chem.OIL_SAND=沥青砂提取 chem.OSMIRIDIUM_DEATH=锇酸溶液生产 +chem.PC_ELECTROLYSIS=氯化钾电解 chem.PEROXIDE=过氧化氢生产 chem.PET=PET合成 chem.PETROIL_LEADED=含铅石油混合 @@ -589,10 +632,11 @@ container.machineBoiler=锅炉 container.machineCMB=CMB炼钢炉 container.machineCoal=火力发电机 container.machineCoker=焦化装置 +container.machineCompressor=压缩机 container.machineCrucible=坩埚 container.machineDiesel=柴油发电机 container.machineElectricBoiler=电锅炉 -container.machineFEL=FEL自由电子激光器 +container.machineFEL=FEL container.machineITER=聚变反应堆 container.machineLargeTurbine=工业汽轮机 container.machineLiquefactor=液化机 @@ -600,7 +644,7 @@ container.machineMixer=工业搅拌机 container.machineRefinery=炼油厂 container.machineSelenium=星型发动机 container.machineShredder=粉碎机 -container.machineSILEX=SILEX激光同位素分离室 +container.machineSILEX=激光同位素分离室 container.machineSolidifier=固化机 container.machineTurbine=汽轮机 container.machineTurbofan=涡扇发动机 @@ -911,6 +955,14 @@ digamma.title=玩家F-迪伽马辐射自检器 entity.entity_cyber_crab.name=赛博螃蟹 entity.entity_elder_one.name=上古鸭神 entity.entity_fucc_a_ducc.name=鸭子 +entity.entity_glyphid.name=异虫 +entity.entity_glyphid_behemoth.name=巨兽异虫 +entity.entity_glyphid_blaster.name=爆破异虫 +entity.entity_glyphid_bombardier.name=投弹手异虫 +entity.entity_glyphid_brawler.name=狂战士异虫 +entity.entity_glyphid_brenda.name=布伦达 +entity.entity_glyphid_nuclear.name=大个子强森 +entity.entity_glyphid_scout.name=侦察异虫 entity.entity_ntm_fbi.name=FBI探员 entity.entity_ntm_radiation_blaze.name=核融元素 entity.hbm.entity_ntm_ufo.name=火星入侵者飞船 @@ -1130,8 +1182,13 @@ hbmfluid.biogas=沼气 hbmfluid.bitumen=沥青 hbmfluid.blood=血 hbmfluid.blood_hot=热的血 +hbmfluid.calcium_chloride=氯化钙溶液 +hbmfluid.calcium_solution=钙溶液 hbmfluid.carbondioxide=二氧化碳 hbmfluid.chlorine=氯气 +hbmfluid.chlorocalcite_cleaned=纯净氯方解石溶液 +hbmfluid.chlorocalcite_mix=混合氯方解石溶液 +hbmfluid.chlorocalcite_solution=氯方解石溶液 hbmfluid.cholesterol=胆固醇溶液 hbmfluid.coalcreosote=煤焦杂酚油 hbmfluid.coalgas=煤汽油 @@ -1203,6 +1260,7 @@ hbmfluid.plasma_dt=氘-氚等离子体 hbmfluid.plasma_hd=氢-氘等离子体 hbmfluid.plasma_ht=氢-氚等离子体 hbmfluid.plasma_xm=氙-汞等离子体 +hbmfluid.potassium_chloride=氯化钾溶液 hbmfluid.puf6=六氟化钚 hbmfluid.radiosolvent=高性能溶剂 hbmfluid.reclaimed=再生油 @@ -1290,7 +1348,7 @@ hbmmat.lithium=锂 hbmmat.magnetizedtungsten=磁化钨 hbmmat.malachite=孔雀石 hbmmat.meteoriciron=陨铁 -hbmmat.mingrade=工业级铜 +hbmmat.mingrade=紫铜 hbmmat.neptunium237=镎-237 hbmmat.niobium=铌 hbmmat.obsidian=黑曜岩 @@ -1471,11 +1529,14 @@ item.ammo_9mm_du.name=9mm子弹[贫铀] item.ammo_9mm_rocket.name=9mm火箭弹 item.ammo_arty.name=16英寸炮弹 item.ammo_arty_cargo.name=16英寸快递炮弹 +item.ammo_arty_chlorine.name=16英寸氯气炮弹 item.ammo_arty_classic.name=16英寸炮弹 (特制) item.ammo_arty_he.name=16英寸高爆炮弹 item.ammo_arty_mini_nuke.name=16英寸微型核炮弹 item.ammo_arty_mini_nuke_multi.name=16英寸多弹头微型核炮弹 +item.ammo_arty_mustard_gas.name=16英寸芥子气炮炮弹 item.ammo_arty_nuke.name=16英寸核炮弹 +item.ammo_arty_phosgene.name=16英寸光气炮弹 item.ammo_arty_phosphorus.name=16英寸磷炮弹 item.ammo_arty_phosphorus_multi.name=16英寸多弹头磷炮弹 item.ammo_cell.name=能量单元 @@ -1508,6 +1569,7 @@ item.ammo_grenade_toxic.name=40mm榴弹[化学] item.ammo_grenade_tracer.name=40mm训练榴弹 item.ammo_himars_standard.name=M28制导火箭炮系统火箭弹舱 item.ammo_himars_standard_he.name=227毫米制导火箭炮系统火箭吊舱(HE) +item.ammo_himars_standard_lava.name=227毫米制导火箭炮系统火箭吊舱(熔岩) item.ammo_himars_standard_mini_nuke.name=227毫米制导火箭炮系统火箭吊舱(迷你核弹) item.ammo_himars_standard_tb.name=227毫米制导火箭炮系统火箭吊舱(温压弹) item.ammo_himars_standard_wp.name=227毫米制导火箭炮系统火箭吊舱(白磷) @@ -1672,6 +1734,7 @@ item.battery_steam_large.name=大型蒸汽动力储能罐 item.battery_su.name=SU-电池 item.battery_su_l.name=大型SU-电池 item.battery_trixite.name=杂牌Spark电池 +item.bdcl.name=BDCL item.beta.name=Bata测试版功能 item.big_sword.name=大剑 item.billet_actinium.name=锕-227坯料 @@ -1818,7 +1881,7 @@ item.canister_ethanol.name=桶装乙醇 item.canister_fracksol.name=桶装压裂液 item.canister_fuel.name=桶装柴油 item.canister_fuel.desc=大家欢呼吧! -item.canister_full.name=容器: +item.canister_full.name=油桶: item.canister_gasoline.name=桶装含铅汽油 item.canister_gasoline.desc=铅就是朋友$让朋友进入你的血液$*上膛声*现在就做 item.canister_heatingoil.name=桶装燃油 @@ -2076,8 +2139,8 @@ item.coffee.name=咖啡 item.coffee_radium.name=加镭咖啡 item.coil_advanced_alloy.name=超导线圈 item.coil_advanced_torus.name=超导环形线圈 -item.coil_copper.name=铜线圈 -item.coil_copper_torus.name=铜环形线圈 +item.coil_copper.name=紫铜线圈 +item.coil_copper_torus.name=紫铜环形线圈 item.coil_gold.name=金线圈 item.coil_gold_torus.name=金环形线圈 item.coil_magnetized_tungsten.name=4000K高温超导线圈 @@ -2254,6 +2317,8 @@ item.energy_core.name=临时能源核心 item.entanglement_kit.name=纠缠部件 item.entanglement_kit.desc=传送机制作零件$通过$铍增强型资源扫描仪实现尺寸转换。 item.euphemium_boots.name=Ep靴子 +item.euphemium_capacitor.name=Ep电容 +item.euphemium_capacitor.desc=允许被动分散累积的正能量。 item.euphemium_helmet.name=Ep头盔 item.euphemium_kit.name=Ep工具箱 item.euphemium_legs.name=Ep护腿 @@ -2340,7 +2405,7 @@ item.gadget_kit.name=小玩意 套件 item.gadget_wireing.name=线路 item.gas_biogas.name=沼气罐 item.gas_empty.name=空气罐 -item.gas_full.name=气体罐 +item.gas_full.name=气体罐: item.gas_lpg.name=液化石油气罐 item.gas_mask.name=防毒面具 item.gas_mask_filter.name=防毒面具过滤器 @@ -2609,7 +2674,7 @@ item.ingot_co60.name=钴-60锭 item.ingot_cobalt.name=钴锭 item.ingot_combine_steel.name=CMB钢锭 item.ingot_combine_steel.desc=*在此处插入民事保护参考* -item.ingot_copper.name=工业级铜 +item.ingot_copper.name=工业级铜锭 item.ingot_daffergon.name=达夫贡锭 item.ingot_desh.name=Desh锭 item.ingot_dineutronium.name=双聚中子态素锭 @@ -2656,7 +2721,7 @@ item.ingot_pu240.name=钚-240锭 item.ingot_pu241.name=钚-241锭 item.ingot_pvc.name=聚氯乙烯锭(PVC) item.ingot_ra226.name=镭-226锭 -item.ingot_red_copper.name=紫铜 +item.ingot_red_copper.name=紫铜锭 item.ingot_reiium.name=雷恩锭 item.ingot_rubber.name=橡胶锭 item.ingot_saturnite.name=土星锭 @@ -3295,6 +3360,7 @@ item.plate_schrabidium.name=Sa326板 item.plate_steel.name=钢板 item.plate_titanium.name=钛板 item.polaroid.name=偏光片 +item.pollution_detector.name=污染探测器 item.powder_actinium.name=锕粉 item.powder_actinium_tiny.name=小撮锕粉 item.powder_advanced_alloy.name=高级合金粉 @@ -3455,7 +3521,7 @@ item.rbmk_fuel_mox.name=MOX RBMK反应堆燃料棒 item.rbmk_fuel_po210be.name=钋210-铍 RBMK反应堆中子源 item.rbmk_fuel_pu238be.name=钚238-铍 RBMK反应堆中子源 item.rbmk_fuel_ra226be.name=镭226-铍 RBMK反应堆中子源 -item.rbmk_fuel_thmeu.name=ThMEU RBMK反应堆中浓缩度铀-235导向钍燃料棒 +item.rbmk_fuel_thmeu.name=ThMEU RBMK反应堆中浓缩度铀-233导向钍燃料棒 item.rbmk_fuel_ueu.name=NU RBMK反应堆未浓缩铀燃料棒 item.rbmk_fuel_zfb_am_mix.name=ZFB 燃料级镅RBMK反应堆燃料棒 item.rbmk_fuel_zfb_bismuth.name=ZFB 铋RBMK反应堆燃料棒 @@ -3792,12 +3858,16 @@ item.spider_milk.name=一瓶蜘蛛奶 item.spongebob_macaroni.name=海绵宝宝通心粉 item.stamp_357.name=.357马格南锻模 item.stamp_44.name=.44马格南锻模 -item.stamp_50.name=大口径锻模 -item.stamp_9.name=小口径锻模 +item.stamp_50.name=大口径弹壳锻模 +item.stamp_9.name=小口径弹壳锻模 item.stamp_desh_circuit.name=Desh电路板锻模 item.stamp_desh_flat.name=Desh锻模 item.stamp_desh_plate.name=Desh板锻模 item.stamp_desh_wire.name=Desh电线锻模 +item.stamp_desh_357.name=.357马格南锻模 (Desh) +item.stamp_desh_44.name=.44马格南锻模 (Desh) +item.stamp_desh_50.name=大口径弹壳锻模(Desh) +item.stamp_desh_9.name=小口径弹壳锻模(Desh) item.stamp_iron_circuit.name=铁质电路板锻模 item.stamp_iron_flat.name=铁质锻模 item.stamp_iron_plate.name=铁质板锻模 @@ -4110,7 +4180,7 @@ rbmk.screen.rod=控制:%s rbmk.screen.temp=温度:%s rbmk.screen.xenon=氙:%s shape.billet=钢坯 -shape.blade=刀身 +shape.blade=扇叶 shape.blades=切碎机刀片 shape.block=块 shape.dust=粉末 @@ -4337,6 +4407,13 @@ tile.c4.name=C-4 tile.cable_detector.name=红石电源开关 tile.cable_diode.name=紫铜二极管 tile.cable_switch.name=电源开关 +tile.capacitor_bus.name=电容总线 +tile.capacitor_bus.desc=电容器的输出方块$可以连成一条直线 +tile.capacitor_copper.name=铜电容 +tile.capacitor_gold.name=金电容 +tile.capacitor_niobium.name=铌电容 +tile.capacitor_tantalium.name=钽电容 +tile.capacitor.desc=输入:顶部$输出:底部,通过电容总线 tile.charge_c4.name=炸药包 tile.charge_dynamite.name=定时炸弹 tile.charge_miner.name=定时采矿炸药 @@ -4543,6 +4620,7 @@ tile.furnace_steel.name=钢炉 tile.furnace_steel.desc=非常大的熔炉,冶炼矿石时可提供加成。$这需要外部热源$传热率:ΔT*0.05tu/T$(Δ表示差值,T表示温度) tile.fusion_center.name=中心磁铁 tile.fusion_conductor.name=超导磁体 +tile.fusion_conductor_welded.name=超导磁体(焊接) tile.fusion_core.name=聚变反应堆控制器 tile.fusion_hatch.name=聚变反应堆端口 tile.fusion_heater.name=等离子加热器 @@ -4574,6 +4652,8 @@ tile.glass_polonium.name=钋玻璃 tile.glass_quartz.name=石英玻璃 tile.glass_trinitite.name=核融玻璃 tile.glass_uranium.name=铀玻璃 +tile.glyphid_base.name=异虫蜂巢块 +tile.glyphid_spawner.name=异虫蜂巢繁殖方块 tile.gneiss_brick.name=页岩砖 tile.gneiss_chiseled.name=錾制页岩砖 tile.gneiss_tile.name=页岩瓷砖 @@ -4668,6 +4748,7 @@ tile.machine_coker.name=焦化装置 tile.machine_coker.desc=炼焦,并产生各类流体副产品$需要外部热源$传热速率:ΔT*0.025 TU/T tile.machine_combine_factory.name=CMB炼钢炉 tile.machine_combustion_engine.name=工业内燃机 +tile.machine_compressor.name=压缩机 tile.machine_condenser.name=蒸汽冷凝器 tile.machine_controller.name=反应堆遥控模块 tile.machine_converter_he_rf.name=HE→RF转换器 @@ -4724,7 +4805,7 @@ tile.machine_radar.name=雷达 tile.machine_radgen.name=辐射能量发电机 tile.machine_radiolysis.name=放射性同位素热电机和辐射裂解室 tile.machine_reactor.name=增殖反应堆 -tile.machine_reactor_small.name=核反应堆 +tile.machine_reactor_small.name=研究型反应堆 tile.machine_refinery.name=炼油厂 tile.machine_reix_mainframe.name=Rei-X主机[开发中] tile.machine_rtg_blue.name=对流发电机 @@ -4744,7 +4825,7 @@ tile.machine_schrabidium_battery.name=Sa326蓄电池 tile.machine_schrabidium_transmutator.name=Sa326嬗变装置 tile.machine_selenium.name=星型发动机 tile.machine_shredder.name=粉碎机 -tile.machine_silex.name=激光同位素分离室 +tile.machine_silex.name=SILEX激光同位素分离室 tile.machine_siren.name=警报器 tile.machine_solar_boiler.name=太阳能锅炉 tile.machine_solidifier.name=工业固化机 @@ -4755,7 +4836,7 @@ tile.machine_steam_engine.name=蒸汽机 tile.machine_steam_engine.desc=效率:85% tile.machine_stirling.name=斯特林发电机 tile.machine_stirling.desc=它将热量转化为能量。这需要外部热源$传热率:T*0.1 TU/T$最大进气量:300 TU/T$效率:50% -tile.machine_stirling_steel.name=重型斯特林发动机 +tile.machine_stirling_steel.name=重型斯特林发电机 tile.machine_stirling_steel.desc=它将热量转化为能量。这需要外部热源$使用更重的齿轮来支持更高的温度$传热率:T*0.1 TU/T$最大进气量:1500 TU/T$效率:50% tile.machine_storage_drum.name=核废料处理桶 tile.machine_telelinker.name=炮塔ID管理器 @@ -4965,8 +5046,8 @@ tile.reinforced_light.name=强化萤石 tile.reinforced_sand.name=强化砂石 tile.reinforced_stone.name=致密石头 tile.reinforced_stone_stairs.name=致密石头楼梯 -tile.reinforced_laminate.name=强化层压板 -tile.reinforced_laminate_pane.name=强化层压板隔板 +tile.reinforced_laminate.name=强化夹层玻璃 +tile.reinforced_laminate_pane.name=强化夹层隔板 tile.rejuvinator.name=再生装置 tile.residue.name=云残留 tile.safe.name=保险箱 diff --git a/src/main/resources/assets/hbm/models/machines/chimney_brick.obj b/src/main/resources/assets/hbm/models/machines/chimney_brick.obj new file mode 100644 index 000000000..81e719e26 --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/chimney_brick.obj @@ -0,0 +1,704 @@ +# Blender v2.79 (sub 0) OBJ File: 'chimney_brick.blend' +# www.blender.org +o Plane +v -1.500000 0.000000 1.500000 +v 1.500000 0.000000 1.500000 +v -1.500000 0.000000 -1.500000 +v 1.500000 0.000000 -1.500000 +v -1.500000 2.000000 1.500000 +v 1.500000 2.000000 1.500000 +v -1.500000 2.000000 -1.500000 +v 1.500000 2.000000 -1.500000 +v 1.500000 0.687500 0.187500 +v 1.500000 0.312500 0.187500 +v 1.500000 0.687500 -0.187500 +v 1.500000 0.312500 -0.187500 +v 1.500000 0.875000 0.375000 +v 1.500000 0.125000 0.375000 +v 1.500000 0.875000 -0.375000 +v 1.500000 0.125000 -0.375000 +v 1.375000 0.312500 0.187500 +v 1.375000 0.125000 0.375000 +v 1.375000 0.312500 -0.187500 +v 1.375000 0.125000 -0.375000 +v 1.375000 0.687500 -0.187500 +v 1.375000 0.875000 -0.375000 +v 1.375000 0.687500 0.187500 +v 1.375000 0.875000 0.375000 +v 0.187500 0.687500 -1.500000 +v 0.187500 0.312500 -1.500000 +v -0.187500 0.687500 -1.500000 +v -0.187500 0.312500 -1.500000 +v 0.375000 0.875000 -1.500000 +v 0.375000 0.125000 -1.500000 +v -0.375000 0.875000 -1.500000 +v -0.375000 0.125000 -1.500000 +v 0.187500 0.312500 -1.375000 +v 0.375000 0.125000 -1.375000 +v -0.187500 0.312500 -1.375000 +v -0.375000 0.125000 -1.375000 +v -0.187500 0.687500 -1.375000 +v -0.375000 0.875000 -1.375000 +v 0.187500 0.687500 -1.375000 +v 0.375000 0.875000 -1.375000 +v -1.500000 0.687500 -0.187500 +v -1.500000 0.312500 -0.187500 +v -1.500000 0.687500 0.187500 +v -1.500000 0.312500 0.187500 +v -1.500000 0.875000 -0.375000 +v -1.500000 0.125000 -0.375000 +v -1.500000 0.875000 0.375000 +v -1.500000 0.125000 0.375000 +v -1.375000 0.312500 -0.187500 +v -1.375000 0.125000 -0.375000 +v -1.375000 0.312500 0.187500 +v -1.375000 0.125000 0.375000 +v -1.375000 0.687500 0.187500 +v -1.375000 0.875000 0.375000 +v -1.375000 0.687500 -0.187500 +v -1.375000 0.875000 -0.375000 +v -0.187500 0.687500 1.500000 +v -0.187500 0.312500 1.500000 +v 0.187500 0.687500 1.500000 +v 0.187500 0.312500 1.500000 +v -0.375000 0.875000 1.500000 +v -0.375000 0.125000 1.500000 +v 0.375000 0.875000 1.500000 +v 0.375000 0.125000 1.500000 +v -0.187500 0.312500 1.375000 +v -0.375000 0.125000 1.375000 +v 0.187500 0.312500 1.375000 +v 0.375000 0.125000 1.375000 +v 0.187500 0.687500 1.375000 +v 0.375000 0.875000 1.375000 +v -0.187500 0.687500 1.375000 +v -0.375000 0.875000 1.375000 +v 0.000000 2.000000 -1.250000 +v -0.478354 2.000000 -1.154849 +v -0.883883 2.000000 -0.883883 +v -1.154849 2.000000 -0.478354 +v -1.250000 2.000000 0.000000 +v -1.154849 2.000000 0.478354 +v -0.883883 2.000000 0.883883 +v -0.478354 2.000000 1.154849 +v -0.000000 2.000000 1.250000 +v 0.478354 2.000000 1.154850 +v 0.883883 2.000000 0.883884 +v 1.154849 2.000000 0.478354 +v 1.250000 2.000000 -0.000000 +v 1.154849 2.000000 -0.478355 +v 0.883883 2.000000 -0.883884 +v 0.478354 2.000000 -1.154850 +v 0.000000 13.000000 -0.750000 +v -0.287013 13.000000 -0.692910 +v -0.530330 13.000000 -0.530330 +v -0.692910 13.000000 -0.287013 +v -0.750000 13.000000 0.000000 +v -0.692910 13.000000 0.287013 +v -0.530330 13.000000 0.530330 +v -0.287013 13.000000 0.692910 +v -0.000000 13.000000 0.750000 +v 0.287012 13.000000 0.692910 +v 0.530330 13.000000 0.530330 +v 0.692910 13.000000 0.287013 +v 0.750000 13.000000 -0.000000 +v 0.692910 13.000000 -0.287013 +v 0.530330 13.000000 -0.530330 +v 0.287012 13.000000 -0.692910 +v -0.000000 13.000000 -0.500000 +v -0.191342 13.000000 -0.461940 +v -0.353553 13.000000 -0.353553 +v -0.461940 13.000000 -0.191342 +v -0.500000 13.000000 0.000000 +v -0.461940 13.000000 0.191342 +v -0.353553 13.000000 0.353553 +v -0.191342 13.000000 0.461940 +v -0.000000 13.000000 0.500000 +v 0.191342 13.000000 0.461940 +v 0.353553 13.000000 0.353554 +v 0.461940 13.000000 0.191342 +v 0.500000 13.000000 -0.000000 +v 0.461940 13.000000 -0.191342 +v 0.353553 13.000000 -0.353554 +v 0.191341 13.000000 -0.461940 +v -0.000000 11.000000 -0.500000 +v -0.191342 11.000000 -0.461940 +v -0.353553 11.000000 -0.353553 +v -0.461940 11.000000 -0.191342 +v -0.500000 11.000000 0.000000 +v -0.461940 11.000000 0.191342 +v -0.353553 11.000000 0.353553 +v -0.191342 11.000000 0.461940 +v -0.000000 11.000000 0.500000 +v 0.191342 11.000000 0.461940 +v 0.353553 11.000000 0.353554 +v 0.461940 11.000000 0.191342 +v 0.500000 11.000000 -0.000000 +v 0.461940 11.000000 -0.191342 +v 0.353553 11.000000 -0.353554 +v 0.191341 11.000000 -0.461940 +vt 0.272727 0.000000 +vt 0.000000 0.265193 +vt 0.000000 0.000000 +vt 0.000000 0.441989 +vt 0.272727 0.707182 +vt 0.000000 0.707182 +vt 0.181818 0.895028 +vt 0.130682 0.911602 +vt 0.113636 0.895028 +vt 0.130682 0.955801 +vt 0.119318 0.922652 +vt 0.130682 0.922652 +vt 0.164773 0.922652 +vt 0.176136 0.955801 +vt 0.164773 0.955801 +vt 0.090909 0.906077 +vt 0.102273 0.972376 +vt 0.090909 0.972376 +vt 0.204545 0.972376 +vt 0.193182 0.906077 +vt 0.204545 0.906077 +vt 0.113636 0.983425 +vt 0.164773 0.966851 +vt 0.181818 0.983425 +vt 0.193182 0.972376 +vt 0.176136 0.922652 +vt 0.102273 0.906077 +vt 0.181818 0.883978 +vt 0.113636 0.883978 +vt 0.113636 0.994475 +vt 0.181818 0.994475 +vt 0.164773 0.911602 +vt 0.130682 0.966851 +vt 0.181818 0.895028 +vt 0.130682 0.911602 +vt 0.113636 0.895028 +vt 0.130682 0.955801 +vt 0.119318 0.922652 +vt 0.130682 0.922652 +vt 0.164773 0.922652 +vt 0.176136 0.955801 +vt 0.164773 0.955801 +vt 0.090909 0.906077 +vt 0.102273 0.972376 +vt 0.090909 0.972376 +vt 0.204545 0.972376 +vt 0.193182 0.906077 +vt 0.204545 0.906077 +vt 0.113636 0.983425 +vt 0.164773 0.966851 +vt 0.181818 0.983425 +vt 0.193182 0.972376 +vt 0.176136 0.922652 +vt 0.102273 0.906077 +vt 0.181818 0.883978 +vt 0.113636 0.883978 +vt 0.113636 0.994475 +vt 0.181818 0.994475 +vt 0.164773 0.911602 +vt 0.130682 0.966851 +vt 0.181818 0.895028 +vt 0.130682 0.911602 +vt 0.113636 0.895028 +vt 0.130682 0.955801 +vt 0.119318 0.922652 +vt 0.130682 0.922652 +vt 0.164773 0.922652 +vt 0.176136 0.955801 +vt 0.164773 0.955801 +vt 0.090909 0.906077 +vt 0.102273 0.972376 +vt 0.090909 0.972376 +vt 0.204545 0.972376 +vt 0.193182 0.906077 +vt 0.204545 0.906077 +vt 0.113636 0.983425 +vt 0.164773 0.966851 +vt 0.181818 0.983425 +vt 0.193182 0.972376 +vt 0.176136 0.922652 +vt 0.102273 0.906077 +vt 0.181818 0.883978 +vt 0.113636 0.883978 +vt 0.113636 0.994475 +vt 0.181818 0.994475 +vt 0.164773 0.911602 +vt 0.130682 0.966851 +vt 0.181818 0.895028 +vt 0.130682 0.911602 +vt 0.113636 0.895028 +vt 0.130682 0.955801 +vt 0.119318 0.922652 +vt 0.130682 0.922652 +vt 0.164773 0.922652 +vt 0.176136 0.955801 +vt 0.164773 0.955801 +vt 0.090909 0.906077 +vt 0.102273 0.972376 +vt 0.090909 0.972376 +vt 0.204545 0.972376 +vt 0.193182 0.906077 +vt 0.204545 0.906077 +vt 0.113636 0.983425 +vt 0.164773 0.966851 +vt 0.181818 0.983425 +vt 0.193182 0.972376 +vt 0.176136 0.922652 +vt 0.102273 0.906077 +vt 0.181818 0.883978 +vt 0.113636 0.883978 +vt 0.113636 0.994475 +vt 0.181818 0.994475 +vt 0.164773 0.911602 +vt 0.130682 0.966851 +vt 0.272727 0.265193 +vt 0.102273 0.276243 +vt 0.102273 0.342541 +vt 0.272727 0.441989 +vt 0.102273 0.342541 +vt 0.272727 0.441989 +vt -0.000000 0.441989 +vt 0.272727 0.265193 +vt 0.102273 0.276243 +vt -0.000000 0.265193 +vt 0.170455 0.342541 +vt 0.170455 0.276243 +vt 0.170455 0.342541 +vt 0.102273 0.342541 +vt 0.272727 0.441989 +vt -0.000000 0.441989 +vt 0.272727 0.265193 +vt 0.170455 0.342541 +vt 0.170455 0.276243 +vt 0.102273 0.276243 +vt -0.000000 0.265193 +vt 0.272727 0.265193 +vt 0.102273 0.276243 +vt -0.000000 0.265193 +vt 0.170455 0.342541 +vt 0.272727 0.441989 +vt 0.102273 0.342541 +vt -0.000000 0.441989 +vt 0.630682 0.972376 +vt 0.607955 1.000000 +vt 0.602273 0.972376 +vt 0.647727 0.972376 +vt 0.670455 1.000000 +vt 0.653409 1.000000 +vt 0.721591 0.972376 +vt 0.698864 1.000000 +vt 0.693182 0.972376 +vt 0.767045 0.972376 +vt 0.744318 1.000000 +vt 0.738636 0.972376 +vt 0.812500 0.972376 +vt 0.789773 1.000000 +vt 0.784091 0.972376 +vt 0.857955 0.972376 +vt 0.835227 1.000000 +vt 0.829545 0.972376 +vt 0.903409 0.972376 +vt 0.880682 1.000000 +vt 0.875000 0.972376 +vt 0.948864 0.972376 +vt 0.926136 1.000000 +vt 0.920455 0.972376 +vt 0.994318 0.972376 +vt 0.971591 1.000000 +vt 0.965909 0.972376 +vt 0.312500 0.972376 +vt 0.289773 1.000000 +vt 0.284091 0.972376 +vt 0.329545 0.972376 +vt 0.352273 1.000000 +vt 0.335227 1.000000 +vt 0.375000 0.972376 +vt 0.397727 1.000000 +vt 0.380682 1.000000 +vt 0.420455 0.972376 +vt 0.443182 1.000000 +vt 0.426136 1.000000 +vt 0.465909 0.972376 +vt 0.488636 1.000000 +vt 0.471591 1.000000 +vt 0.511364 0.972376 +vt 0.534091 1.000000 +vt 0.517045 1.000000 +vt 0.585227 0.972376 +vt 0.562500 1.000000 +vt 0.556818 0.972376 +vt 0.090053 0.936803 +vt 0.070717 0.964941 +vt 0.036583 0.971543 +vt 0.119318 0.955801 +vt 0.119318 0.955801 +vt 0.119318 0.955801 +vt 0.119318 0.955801 +vt 0.170455 0.276243 +vt 0.170455 0.276243 +vt 0.625000 1.000000 +vt 0.676136 0.972376 +vt 0.715909 1.000000 +vt 0.761364 1.000000 +vt 0.806818 1.000000 +vt 0.852273 1.000000 +vt 0.897727 1.000000 +vt 0.943182 1.000000 +vt 0.988636 1.000000 +vt 0.306818 1.000000 +vt 0.357955 0.972376 +vt 0.403409 0.972376 +vt 0.448864 0.972376 +vt 0.494318 0.972376 +vt 0.539773 0.972376 +vt 0.579545 1.000000 +vt 0.020192 0.964941 +vt 0.007646 0.952742 +vt 0.000856 0.936803 +vt 0.000856 0.919551 +vt 0.007646 0.903612 +vt 0.020192 0.891413 +vt 0.036583 0.884810 +vt 0.054326 0.884810 +vt 0.070717 0.891413 +vt 0.083263 0.903612 +vt 0.090053 0.919551 +vt 0.083263 0.952742 +vt 0.054326 0.971543 +vt 0.681818 -0.000000 +vt 0.636364 -0.000000 +vt 0.727273 -0.000000 +vt 0.772727 -0.000000 +vt 0.818182 0.000000 +vt 0.863636 0.000000 +vt 0.909091 0.000000 +vt 0.954545 0.000000 +vt 1.000000 -0.000000 +vt 0.318182 0.000000 +vt 0.272727 0.000000 +vt 0.363636 0.000000 +vt 0.409091 -0.000000 +vt 0.454545 -0.000000 +vt 0.500000 0.000000 +vt 0.545455 0.000000 +vt 0.590909 0.000000 +vt 0.102273 0.707182 +vt 0.085227 0.883978 +vt 0.085227 0.707182 +vt 0.255682 0.707182 +vt 0.238636 0.883978 +vt 0.238636 0.707182 +vt 0.119318 0.707182 +vt 0.102273 0.883978 +vt 0.272727 0.707182 +vt 0.255682 0.883978 +vt 0.136364 0.707182 +vt 0.119318 0.883978 +vt 0.017045 0.707182 +vt 0.000000 0.883978 +vt -0.000000 0.707182 +vt 0.153409 0.707182 +vt 0.136364 0.883978 +vt 0.034091 0.707182 +vt 0.017045 0.883978 +vt 0.170455 0.707182 +vt 0.153409 0.883978 +vt 0.051136 0.707182 +vt 0.034091 0.883978 +vt 0.187500 0.707182 +vt 0.170455 0.883978 +vt 0.068182 0.707182 +vt 0.051136 0.883978 +vt 0.221591 0.707182 +vt 0.204545 0.883978 +vt 0.204545 0.707182 +vt 0.187500 0.883978 +vt 0.068182 0.883978 +vt 0.221591 0.883978 +vt 0.272727 0.883978 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 -0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.9229 0.0454 -0.3823 +vn 0.9990 0.0454 0.0000 +vn 0.7064 0.0454 -0.7064 +vn 0.3823 0.0454 -0.9229 +vn -0.0000 0.0454 -0.9990 +vn -0.3823 0.0454 -0.9229 +vn -0.7064 0.0454 -0.7064 +vn -0.9229 0.0454 -0.3823 +vn -0.9990 0.0454 0.0000 +vn -0.9229 0.0454 0.3823 +vn -0.7064 0.0454 0.7064 +vn -0.3823 0.0454 0.9229 +vn 0.0000 0.0454 0.9990 +vn 0.3823 0.0454 0.9229 +vn 0.7064 0.0454 0.7064 +vn 0.9229 0.0454 0.3823 +vn -0.7071 0.0000 -0.7071 +vn -0.3827 0.0000 -0.9239 +vn 0.9239 0.0000 0.3827 +vn 0.7071 0.0000 0.7071 +vn -0.9239 0.0000 -0.3827 +vn 0.9239 0.0000 -0.3827 +vn -0.9239 0.0000 0.3827 +vn 0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 0.7071 +vn 0.3827 0.0000 -0.9239 +vn -0.3827 0.0000 0.9239 +vn 0.3827 0.0000 0.9239 +s off +f 3/1/1 2/2/1 1/3/1 +f 6/4/2 7/5/2 5/6/2 +f 20/7/3 17/8/3 18/9/3 +f 9/10/4 17/11/4 10/12/4 +f 12/13/5 21/14/5 11/15/5 +f 14/16/5 24/17/5 13/18/5 +f 10/12/3 11/15/3 9/10/3 +f 15/19/4 20/20/4 16/21/4 +f 24/22/3 21/23/3 22/24/3 +f 22/25/3 19/26/3 20/20/3 +f 17/11/3 24/17/3 18/27/3 +f 16/28/2 18/9/2 14/29/2 +f 13/30/1 22/24/1 15/31/1 +f 10/12/1 19/32/1 12/13/1 +f 11/15/2 23/33/2 9/10/2 +f 36/34/5 33/35/5 34/36/5 +f 25/37/3 33/38/3 26/39/3 +f 28/40/6 37/41/6 27/42/6 +f 30/43/6 40/44/6 29/45/6 +f 26/39/5 27/42/5 25/37/5 +f 31/46/3 36/47/3 32/48/3 +f 40/49/5 37/50/5 38/51/5 +f 38/52/5 35/53/5 36/47/5 +f 33/38/5 40/44/5 34/54/5 +f 32/55/2 34/36/2 30/56/2 +f 29/57/1 38/51/1 31/58/1 +f 26/39/1 35/59/1 28/40/1 +f 27/42/2 39/60/2 25/37/2 +f 52/61/6 49/62/6 50/63/6 +f 41/64/5 49/65/5 42/66/5 +f 44/67/4 53/68/4 43/69/4 +f 46/70/4 56/71/4 45/72/4 +f 42/66/6 43/69/6 41/64/6 +f 47/73/5 52/74/5 48/75/5 +f 56/76/6 53/77/6 54/78/6 +f 54/79/6 51/80/6 52/74/6 +f 49/65/6 56/71/6 50/81/6 +f 48/82/2 50/63/2 46/83/2 +f 45/84/1 54/78/1 47/85/1 +f 42/66/1 51/86/1 44/67/1 +f 43/69/2 55/87/2 41/64/2 +f 68/88/4 65/89/4 66/90/4 +f 57/91/6 65/92/6 58/93/6 +f 60/94/3 69/95/3 59/96/3 +f 62/97/3 72/98/3 61/99/3 +f 58/93/4 59/96/4 57/91/4 +f 63/100/6 68/101/6 64/102/6 +f 72/103/4 69/104/4 70/105/4 +f 70/106/4 67/107/4 68/101/4 +f 65/92/4 72/98/4 66/108/4 +f 64/109/2 66/90/2 62/110/2 +f 61/111/1 70/105/1 63/112/1 +f 58/93/1 67/113/1 60/94/1 +f 59/96/2 71/114/2 57/91/2 +f 4/115/3 14/116/3 2/2/3 +f 13/117/3 8/118/3 6/4/3 +f 45/119/6 5/120/6 7/121/6 +f 1/122/6 46/123/6 3/124/6 +f 45/119/6 3/124/6 46/123/6 +f 1/122/6 47/125/6 48/126/6 +f 13/117/3 2/2/3 14/116/3 +f 15/127/3 4/115/3 8/118/3 +f 29/128/5 7/129/5 8/130/5 +f 3/131/5 31/132/5 32/133/5 +f 3/131/5 30/134/5 4/135/5 +f 29/128/5 4/135/5 30/134/5 +f 2/136/4 62/137/4 1/138/4 +f 63/139/4 2/136/4 6/140/4 +f 61/141/4 6/140/4 5/142/4 +f 61/141/4 1/138/4 62/137/4 +f 101/143/2 116/144/2 100/145/2 +f 101/146/2 118/147/2 117/148/2 +f 103/149/2 118/150/2 102/151/2 +f 104/152/2 119/153/2 103/154/2 +f 89/155/2 120/156/2 104/157/2 +f 90/158/2 105/159/2 89/160/2 +f 91/161/2 106/162/2 90/163/2 +f 92/164/2 107/165/2 91/166/2 +f 93/167/2 108/168/2 92/169/2 +f 94/170/2 109/171/2 93/172/2 +f 94/173/2 111/174/2 110/175/2 +f 95/176/2 112/177/2 111/178/2 +f 96/179/2 113/180/2 112/181/2 +f 97/182/2 114/183/2 113/184/2 +f 98/185/2 115/186/2 114/187/2 +f 100/188/2 115/189/2 99/190/2 +f 133/191/2 135/192/2 121/193/2 +f 3/1/1 4/115/1 2/2/1 +f 6/4/2 8/118/2 7/5/2 +f 20/7/3 19/32/3 17/8/3 +f 9/10/4 23/194/4 17/11/4 +f 12/13/5 19/26/5 21/14/5 +f 14/16/5 18/27/5 24/17/5 +f 10/12/3 12/13/3 11/15/3 +f 15/19/4 22/25/4 20/20/4 +f 24/22/3 23/33/3 21/23/3 +f 22/25/3 21/14/3 19/26/3 +f 17/11/3 23/194/3 24/17/3 +f 16/28/2 20/7/2 18/9/2 +f 13/30/1 24/22/1 22/24/1 +f 10/12/1 17/8/1 19/32/1 +f 11/15/2 21/23/2 23/33/2 +f 36/34/5 35/59/5 33/35/5 +f 25/37/3 39/195/3 33/38/3 +f 28/40/6 35/53/6 37/41/6 +f 30/43/6 34/54/6 40/44/6 +f 26/39/5 28/40/5 27/42/5 +f 31/46/3 38/52/3 36/47/3 +f 40/49/5 39/60/5 37/50/5 +f 38/52/5 37/41/5 35/53/5 +f 33/38/5 39/195/5 40/44/5 +f 32/55/2 36/34/2 34/36/2 +f 29/57/1 40/49/1 38/51/1 +f 26/39/1 33/35/1 35/59/1 +f 27/42/2 37/50/2 39/60/2 +f 52/61/6 51/86/6 49/62/6 +f 41/64/5 55/196/5 49/65/5 +f 44/67/4 51/80/4 53/68/4 +f 46/70/4 50/81/4 56/71/4 +f 42/66/6 44/67/6 43/69/6 +f 47/73/5 54/79/5 52/74/5 +f 56/76/6 55/87/6 53/77/6 +f 54/79/6 53/68/6 51/80/6 +f 49/65/6 55/196/6 56/71/6 +f 48/82/2 52/61/2 50/63/2 +f 45/84/1 56/76/1 54/78/1 +f 42/66/1 49/62/1 51/86/1 +f 43/69/2 53/77/2 55/87/2 +f 68/88/4 67/113/4 65/89/4 +f 57/91/6 71/197/6 65/92/6 +f 60/94/3 67/107/3 69/95/3 +f 62/97/3 66/108/3 72/98/3 +f 58/93/4 60/94/4 59/96/4 +f 63/100/6 70/106/6 68/101/6 +f 72/103/4 71/114/4 69/104/4 +f 70/106/4 69/95/4 67/107/4 +f 65/92/4 71/197/4 72/98/4 +f 64/109/2 68/88/2 66/90/2 +f 61/111/1 72/103/1 70/105/1 +f 58/93/1 65/89/1 67/113/1 +f 59/96/2 69/104/2 71/114/2 +f 4/115/3 16/198/3 14/116/3 +f 13/117/3 15/127/3 8/118/3 +f 45/119/6 47/125/6 5/120/6 +f 1/122/6 48/126/6 46/123/6 +f 45/119/6 7/121/6 3/124/6 +f 1/122/6 5/120/6 47/125/6 +f 13/117/3 6/4/3 2/2/3 +f 15/127/3 16/198/3 4/115/3 +f 29/128/5 31/132/5 7/129/5 +f 3/131/5 7/129/5 31/132/5 +f 3/131/5 32/133/5 30/134/5 +f 29/128/5 8/130/5 4/135/5 +f 2/136/4 64/199/4 62/137/4 +f 63/139/4 64/199/4 2/136/4 +f 61/141/4 63/139/4 6/140/4 +f 61/141/4 5/142/4 1/138/4 +f 101/143/2 117/200/2 116/144/2 +f 101/146/2 102/201/2 118/147/2 +f 103/149/2 119/202/2 118/150/2 +f 104/152/2 120/203/2 119/153/2 +f 89/155/2 105/204/2 120/156/2 +f 90/158/2 106/205/2 105/159/2 +f 91/161/2 107/206/2 106/162/2 +f 92/164/2 108/207/2 107/165/2 +f 93/167/2 109/208/2 108/168/2 +f 94/170/2 110/209/2 109/171/2 +f 94/173/2 95/210/2 111/174/2 +f 95/176/2 96/211/2 112/177/2 +f 96/179/2 97/212/2 113/180/2 +f 97/182/2 98/213/2 114/183/2 +f 98/185/2 99/214/2 115/186/2 +f 100/188/2 116/215/2 115/189/2 +f 121/193/2 122/216/2 123/217/2 +f 123/217/2 124/218/2 125/219/2 +f 125/219/2 126/220/2 127/221/2 +f 127/221/2 128/222/2 129/223/2 +f 129/223/2 130/224/2 131/225/2 +f 131/225/2 132/226/2 133/191/2 +f 133/191/2 134/227/2 135/192/2 +f 135/192/2 136/228/2 121/193/2 +f 121/193/2 123/217/2 125/219/2 +f 125/219/2 127/221/2 121/193/2 +f 127/221/2 129/223/2 121/193/2 +f 129/223/2 131/225/2 121/193/2 +f 131/225/2 133/191/2 121/193/2 +s 1 +f 86/229/7 101/146/8 85/230/8 +f 87/231/9 102/151/7 86/229/7 +f 88/232/10 103/154/9 87/231/9 +f 73/233/11 104/157/10 88/232/10 +f 74/234/12 89/160/11 73/233/11 +f 75/235/13 90/163/12 74/234/12 +f 76/236/14 91/166/13 75/235/13 +f 77/237/15 92/169/14 76/236/14 +f 78/238/16 93/172/15 77/239/15 +f 79/240/17 94/173/16 78/238/16 +f 80/241/18 95/176/17 79/240/17 +f 81/242/19 96/179/18 80/241/18 +f 82/243/20 97/182/19 81/242/19 +f 83/244/21 98/185/20 82/243/20 +f 84/245/22 99/190/21 83/244/21 +f 85/230/8 100/145/22 84/245/22 +f 115/246/23 130/247/24 114/248/24 +f 108/249/25 123/250/26 107/251/26 +f 116/252/27 131/253/23 115/246/23 +f 109/254/3 124/255/25 108/249/25 +f 117/256/6 132/257/27 116/252/27 +f 110/258/28 125/259/3 109/260/3 +f 118/261/29 133/262/6 117/256/6 +f 111/263/30 126/264/28 110/258/28 +f 119/265/31 134/266/29 118/261/29 +f 112/267/32 127/268/30 111/263/30 +f 120/269/33 135/270/31 119/265/31 +f 113/271/5 128/272/32 112/267/32 +f 106/273/34 121/274/4 105/275/4 +f 105/275/4 136/276/33 120/269/33 +f 114/248/24 129/277/5 113/271/5 +f 107/251/26 122/278/34 106/273/34 +f 86/229/7 102/201/7 101/146/8 +f 87/231/9 103/149/9 102/151/7 +f 88/232/10 104/152/10 103/154/9 +f 73/233/11 89/155/11 104/157/10 +f 74/234/12 90/158/12 89/160/11 +f 75/235/13 91/161/13 90/163/12 +f 76/236/14 92/164/14 91/166/13 +f 77/237/15 93/167/15 92/169/14 +f 78/238/16 94/170/16 93/172/15 +f 79/240/17 95/210/17 94/173/16 +f 80/241/18 96/211/18 95/176/17 +f 81/242/19 97/212/19 96/179/18 +f 82/243/20 98/213/20 97/182/19 +f 83/244/21 99/214/21 98/185/20 +f 84/245/22 100/188/22 99/190/21 +f 85/230/8 101/143/8 100/145/22 +f 115/246/23 131/253/23 130/247/24 +f 108/249/25 124/255/25 123/250/26 +f 116/252/27 132/257/27 131/253/23 +f 109/254/3 125/279/3 124/255/25 +f 117/256/6 133/262/6 132/257/27 +f 110/258/28 126/264/28 125/259/3 +f 118/261/29 134/266/29 133/262/6 +f 111/263/30 127/268/30 126/264/28 +f 119/265/31 135/270/31 134/266/29 +f 112/267/32 128/272/32 127/268/30 +f 120/269/33 136/276/33 135/270/31 +f 113/271/5 129/277/5 128/272/32 +f 106/273/34 122/278/34 121/274/4 +f 105/275/4 121/274/4 136/276/33 +f 114/248/24 130/247/24 129/277/5 +f 107/251/26 123/250/26 122/278/34 diff --git a/src/main/resources/assets/hbm/textures/models/machines/chimney_brick.png b/src/main/resources/assets/hbm/textures/models/machines/chimney_brick.png new file mode 100644 index 0000000000000000000000000000000000000000..104edc2b474344137532286a9768d5bac2628a7d GIT binary patch literal 4794 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 NRltw^dDb84{{Va^TI>J- literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/sounds/block/hornFarSingle.ogg b/src/main/resources/assets/hbm/sounds/block/hornFarSingle.ogg new file mode 100644 index 0000000000000000000000000000000000000000..d77e3f57edc3423c439592ac7bcebc83708919c8 GIT binary patch literal 68543 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˞D0pC&_#J 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ξ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 G;Qs-;_7n>M literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/sounds/block/hornNearDual.ogg b/src/main/resources/assets/hbm/sounds/block/hornNearDual.ogg new file mode 100644 index 0000000000000000000000000000000000000000..26c0309546222e89fd619ca3d833a3de117cc000 GIT binary patch literal 210065 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%0ADvgQ2UjslCf5pY zII% zyYZIr5f6X;t3&O5w}wre!HO+oUEYex5$6>lxo{3(_HZE@RN0F#wqKE-t+Mx`42ey6 zdd@y47k2e}_>{ENCObP*-L(45L_uqKL?Osgr`IDqnkvUVzE~wMC56ODt=*{_6}c`< zkT9lz!%!i%SpkV*5n)aBNNEbSWqh$(n(O!AN(D=(v`>q&`x~6o*|J(}q@2Xk0V^b( zusDh6cn_wRBsR4X;{~@xGWMK^Wx$E(!<1UM&nl{tV@YO8q%4$0r6*G35~(s)LaM;k zD-g!?Oof}OP9f0P4z@BJmzd`ZFMvQmB!vhhGR-6!HB3L z0m8Fdl!R^Epd~d1OWmkk;#;f&^+=Nfs?xN&m<;^!*&;Hk)WqbZL{e?nTTRni^Img7 zsd=w5{?Jrx0z00QmD@^EC`Z`nI!pS_YsArXp3|}q+_n3VmVGogNR=%y!wIUu#wSqs z#kZps*Z%azGjDuO+4U%a+S^r79G3tEM{L)KAulxRI$^_h^Z)jE^1a<}6=YKQC_k$( z0>`OCL$D^LFI+~3!TkR5|w`8!_1c;M`d!(lmO z$%n=M@f|QakZ_JYcEbEzz-Ky0UpzFQsl+Vq4)S0ioVC~FPi3iSSXNfnbc-_rI{5i| zi^1Sb=cAVFI64X+W=&^u4fWutqTm7c(fUu`t^e7rU+>twcxUY5sl>ls|3}J;=#Pdk zy(8*ru51dc87+-l74Vz4jCxF_W^QBM0<+q-(10wuKZ`WL45+Mziw*rwc~xwAXT<6z zHw-C63&WrIdO$JgZ@2avSpcGr<4+@81o3_pgWVZav_7 zJmJO1>ei|;-xsu^9l6$mRFsu_&nRY_;Ra0dKHVWnogwdBOAF}^9KQX*7bqi9AS zVp>4(5TQ`&h>e7+2spDzCy~m4Y@)`Y52*N@$s}{M<7!7@^v{!nw8H0mE8D z;_-Ewmv4P;{=i=yZ;d5WTGWL@4qwS@8_KXg0V@mS#Lgr4H3Jmx85ac#a;)i`wW|<(Z$w`5>JqkT%gcRk!BpT)4 zH`{YskEf^q81--X!>LcJcP~$Ne06c%jpKj%ZPSZ?{n3re7fx+jLg&Oy=RA?rKlp_AA=ZhOemYhyJqV?y1x*C;tn*JoUFVdw&b{9}syvhb-gAXp zKRwRdwDHAXKEGnCQ&Q0AYB+hmVqktG%G_=mW2rLcP0utM$Jv941R!D1#1RoPdG=w& zo`aw(P*^}9^tc=ga3gAkdIYCY%A|7PDQ8`kT*4(9NV^4KivpmaSrk~7KRf=~11x(U zZkw-zUu^g!^qYUb{Q1ZqE#K~c=h^!|IsR+om&kmWL0_3SSiFC*+dJ>!&T64`m1G>1 zkDX}ZYIH5yNbYPyF_X2^W=vuJ96C4!E0l`{{IFFkK_5dOpNb_shD-727K#j&EPC<& z$H2lm5)0E!8e))pZc>^Bv03+%wRc7TX8s2_-@m`=%H5E}*IKHH-xY0mf5+E#$3B{t ztaF2ZO5I^TZe9!wiobpIzxvp5ax!zr{mHkW8 zn8;Gcsdx zmJWvt&s5~(h87j6&nDMO=uNGytuA+`rL(PrEr{t6Xhv)K7h3K(6Gribgv8JsjmjAl z7dH`pBwVP-b_qgCg;C-B)vM14(|2VzG~l9aBJCKNnNz2PaZd`EiV#TbaY{ToZn2>j zgY)I`oP_c5APi>;(c zmwD-R;w72UAE*ogF zYz-&s=-9QEYlAD(6;{*>Ks+$O@w&UU6avA(o9BlfdKq5~Qdvbh%^rD;{#AL`T;TAg1qBp@Oi-c!0YO+ z(anv#7+SVt|8yh>`aS@$*x;<7J9XkTaEg1-BWGH13Ompx#Rv&nrB?W2K;5LV3S`jr z&?!%hViF%fl^Gga`1OL>f`VC;l_+zCNbMd>0?kyF)UJ`$DjKYyF{Y<`yr94^N*uEo za6M1yGif2Y2tlCCNwR5riR+B7u%LCOfWl&N5(UvzQpl|{N!2h?uO#eo6St>#B~&;G ztV)rqY*^f-Gntr3s_jCzD3OsarNImoRG!9lct`LiQpK!obGX{tTDcQTDOTtN*2EgH5Eu}>G>9v-s7aQGjjA{^7ZgRKYn+w=A<0E@)73AR(-b?p zQFe=0^1cL|GLKrkfgLdE>6Wd#Mx(Jw)>uM(Hk)?=H*g?nY&_=yV4!Af0XUuF zfI<%Q#C(Jlk_-TcO&6hxoWw)~(W(qvW;ISjaf>buE0dADlt>UtPi^7~Cd)25Ytv3C z_~F$e^friIL8P%V0ZfsIHz5v-59+FqF-w3VWZc2M7oW7v70FFZ!}P8!Bu-gHO1k_a zI?F-Ja#rhw1-u-G3D3f1>ex=!-mA@&G7B?xr<)~HE-ILaEe?j|jU%F5g~92z*xTBV zIT&?II$>IBXpX`NGuaG}@vwRUTE=unpn$liRtQK3ix*wbS74C96>_%2X~D~?33maK zC=eW@^-_hVy(X~*g|yB-yl7;y8Z$?6t_ESMq)aEtYr=sAaFukzYBA{m)3yYIwYwhA z-A&dj*zpb0qYSoPmVV~^IEKJUVn@W?^8?>D$E%J|5#V#>zYFm0#37JfiFBUHj}p-Cw%CEobj~j?m@NToFYXjQS<@M<+`Z9E3CI5uG#H7COY9 z!wiS%4Bgr9wGD5h77cZMF*wg~xezbx=O5u4N;P`#71Z`w6WtWmWgG7Da5ws2GLPwV z)sNPPU=;PR(|8aitLlcroy|^0Iol!(X>2b+WVtImCKf0T;mp1LH8APMh2|}q;?Q(S zN#nNS(9y2}S;Ce{N)!Pz6@Zsr5sHjB1$%(I<&fP69f)4(s@c{DzNnnwwqigw=Qi|Y z^s~~A(L`F_sdjrOt+x*mGjdR60h0yNXfOC;NMEQ<}<)ok`@3@ewHDsZo^w3NXXjJFC&Qx`P~ z=J+gCS?~xJhSs9AW?+pW?zsg5wWJA0(hz9E;c*0B%d-fC7=rqi3=-Ok$F(q<)ukY8 ztCyyg>xWORwwTTCge zrduZ9Le0*ef!n(_uzWMpYrQqIn6$D+Gwh)HTvpe>aBnlX zECj?}YZqx?<)(v1!MPQK-K52Mfo2AL?wFV{l~hbUp{X*FP5DxZN9gg?$i}swpq5gC zGbR%`T_#=YVmt%rj&G%_)${LY5ons@-K2T}5lj=!aGsDM4K9!=?yqYM?ynN3HyAx0$npr@8? zKv*j#VT9YM7qUKXU{S6jI091xtt1+vD95D;r3%C9CRG@op_Mc#>;yicl)5e~jaZls z%`vhi_c{{ho2u0#7)-=LwLB(ERx4y3R#kzza3n;iUi7n4Q6q~NHf};tmE7(liW;?w$%@>Ye#GjP2+elMRl20f%MU{r5Ob7gJ?PhCc zLjrx;o8|OAQQL8WEOZemBq)|97L9McLIff_x~w#fWq<%Vxh#C7M;uR>2{&#$-cT?rKI zoYtJjj$*Zl>j?c6gCvBTvn z(Y`<2O&fKWbO@?icY_d^DwszW#10L`Eh*;l6+oqC z@dP2|YTO;M_bwBcm-(%7G!r|SzdgMD5|*n<#$4&-`}-CrxN)l5$GsP>g>NWhhJtGc zFjjifH#fz~6&wa`u|IzqQV&23#XT$cM=F4*z??;E=Rip>;ao(a)4RjH$ovbQxFS1? z_K%rzZ0B_5uB}-lS7QbOdqeN zxHhoXg?8Bj`8w=Hf}^s;xj53{K26b(9#mH5N#{zA4qMQ6b1`vIG2m3IdD8iOL`#*e zlJuD@#pC;3PYl3Pu^<+AdD|U&oo*&mrU_N}!!QETzNjiPAnRpwFPofl7ITg^mmG>1 zc5_mSE9ZUE&>`0}R9&`8G~*7aohh6O+IAfN{1dVfVYh{6DrqE|gGS{PV3`iWAj+m& zn%kV%;kYxge&HPZG?eIaWeziumZ@ooQQ#w_Qkat@VNrT8g+F3cFXS&hmg7p6By8m! zDURK)mNTQrVGbyddyse{4JOvqO~BmFdb-Gl-gCq3hBAOD)O_r)!2sjLWk{HnE{*OI z`MRZHG%2f>$_sV0wH>o@1)jLmaT6rW4ndHE2O9|29XCZFq+CrE-gXi`7^`-h0A>)< z4ikK4w9<(y6?{B!yBbgggwodo8ZX>=3=Fs^%n@|_2`TxV76P{*R)y~l;!~(4VKzQH zgGC;^Ake4L0+h5I7tz{kay}_n%h@kjdtxJF2?Zafm_cczC@YXr3$tkP+1J4}0rfop zS1tqB|Lr;!M(-Z+q_;LS!1(ii}1>Ssx2Ao9>Ahb1A;F8`|S7#&yI-k^aMg7EazmIcjf(pNhwpf|i+9ZA8~;b*+#W z2Bj0NmfY+cC)t_=k(L>Es5vtZs9JAob$!fjgqH`A=n&aXe1{o(*ODuqP za9mMqnb70oF$6+rB{YLnWDPo&!&X2YoQuFvkMc1QU3X!;HjQEA11C&hg~|KT%G8*! z&KRN!%h01?f(e`%VPJ+S8x)pF!P#16P7b>lHK8^X{#qEx06;z65P>2gScbyxmkarP zLPf(Nc3BWUU4sKgFO5I0G8~SNk=L#2K9>Cjv9Lwk7SMV-6h+9G27C1W zfSt+5^+SEOTemdK--p7i2QyW}1{<~7M`qp3GmYJRzQ;Kn0RFQK3)o!QS6nQUz{Dp* zouQozCi7L_mMGmjjWaCHEAYMz z59^{F3>R55CZ^%e0V+%PWjK-&=!;*#ibh?0GooH7&7v>WE7L-oyX84B0gzn>O@P}YB72-?stXfQ!{U5PPUsLau%{Gy)a{Yx z`0mK`c!*RDqhe4XWj+z9`TSZY*I`7X8{<483m=TAnJkt1384;}dj^DI6fkMR*riUH zffu=YB3wA=Rw7gF2KRWNfwH>XEwdcdVj31oqv5m{6i~KHa{MuBtg#N~ zk%A;8xC-b86>7ZEYDhz+(qk~wuNL4UwZDgG0e7T+IWsgewHcuzktrMyqjunSH>J#< znz`fzc4lM}-;o8T;ZKNUC@o!px2Bg}%Wmxw+LSxB1i|zbsbfedmfO>c9VrJaG+a7G zM@ZyIdKpNk+NKl=3Wz^>wW~~B#?Lieo7v1D{TPHE;A4Yd(t-u}&qv}kJz2#cD>JPF zTTpCR+&$Bid30#7NA-Gd$@c3#Jr9o(QQd=EGF8pu3ikNx-CJfN2zcM~9sB>x{5oXM z$FcjqZi-*^eBIyDKTW#W`O!^mesfzfkU*nfV0$=r3(e{x7><*u&A7#~eS^~=TLnGa zeMSy=QKe1U!?`Pt74qK=_nF6vK_h*0V$GZfCVv$l7-?jfMNWf$W|)L&7@j^2QJAE4 zGWcoU_H%eUYHmMAL%AS#>|-5E1$=9{<0u%&*XeRE^f)a7vajNn<<@-BteD$qxW)Xk zUC8B(y;!Vkv~mtS({F58Pi~gJTn)PtHQ3*nt2KT4^i&|*Tk9c|35RCgh>oI6A~O~q{$F4#Mn&`Y`nCa zD+EMMxHV$!NdmUOY8S1gY)^MPgb0wjoT>w2Sy+U+i) z-L)Qje%fPqyFI)0|FGx(|DU{G!O;X{W}ZBk&-e3rKkO1C%p-cP1#q{3#0{}qjTG)8 zGD>)S^+t(J%-L!*`=v3PG81hUwl6(w=I`G=*Rp>*<`zqg;*>%XN?CL>E?qN{Eh*&I z)mu@q-e7KNeJDrTwa|ni!SE&T9Pp;z?%W>_+Nc25&m^2)l?!T@u_?yeVnI_@z<5Af z`<1eC38p~<(jt;(xP&pj1iR2F5>5x8bHcG-&XK@cpM6Uvp#3vJ7(kI^0T?`$L1%{e zh&guqA+-fr1SA0vv?#^wj-|ui7x*-d5)T~mNrHR{=X(i`2|hboV29oc?K~|w=+MD# zmm2gDFFH|&pj`DL7?9k>21<@)m0n}kUrs+jJKe*opp_{>3;C{MHXlb06_54g2lBY+ zL6NFOwiV9pKz)A3p)SvI<1;TqI7(o*S#nXb{C6-|Y#2R80-N3{Jk-^d`SV9ol}<6b z+L(U<(!S=OLSK7~V znx=%>+_kU}0+LffH1B!t09z(G$0RDijhV=v_1-XK<*O*RvM>K;PTd7rjfwu9_YC_eCiZu(wusv+Im998-)@kRBC!^n4?9MKZmwoI0tP%+n1^EaUUam4R@=lM(P3-XM9tf$15`KZ2t=AbliSn|g z`jC`rZzTW@%?lmvAf>%Us_bG=oKR8tEL0nWl4dXkB!pfD7r(+~mUzS$+E$F8Y4F{VCW0l+lO`vVPal5& z`M(>LUPglMD zHhFh637iL#D_7V!4u0_6xRZYB$9L~GT`u{hdD}bE|8DJi`OlLF**gz0JflfOoL?}J zj|OwXA)dTR(Zotxvw?qh^MdHswp~KeE;twk>^5Lo8-99JMr+Br5^sD!FRCrXrW)8- zstIc?Dm@SIDt1AIwKQ4)3IbmleicP&O&HNow%3rje<)`Ij}yFpwu{bjN?Z%{!rpPI zjh)1L%a<~^p<;3{ZK^?%la^FLKsRM`^m;z~Y;`<8YKljOTnqMa$cgirMjeUQL{IoD z<7bX-kD`I93ZbYc4_xnV#j};mePe0icCAsT)oo*@4g)otM>@nMZbaggV$k@`L$qebJBSYJUXR20k)(_nzxhyqVs}OL+R~GsE8q%*><(O zv(*ay-cGKZdvH^0N%mKzIRhnG>f3y;dJ%eJ*UyBt~${q6nfds+duF)7!Nu zLJJ~wX)sQclL0qGvXDP6T+c$cp7{qWEDD>*bB(CY&G72l^ zwT)t=7nV(Cj>8sb)LSulS?jzyzeleuCcwHA)rV5FlXqF%-Id444?l$O8I8P)#ViLU z2(XVB_&`=60$^KOyi5*X1K5ea{Lvdy4!4pA`_A7?|S+RS?u$^XZ5e`WZo zG{MsWA|c(Aoy!Z9$Ubr~b|5)dRiWau6A|Q5Mjjz*@d^n-7>%ZWNs>ZVswt|*DksxS z2`Ap2(Zp*QYLJI+1{pNiFwJVByn{A&Wr5Zd9rA}`p|I^F*pM);-gds;JCDR8ir2NJ zA{bJb2zT+Qw1n`ir0DPR$ZC;&O=8WT`Rv1h6H43|Bw%9NlCSX|Nj9 ziG1ZaH|_jG5aKzj_f{g4JUhako#J?zp$6MY`G&WAK5uHlx|9Q{+T4r!dF5q1(c2rA zpKvF00lsIxd0N7Yuq3r2C{REfMsA~qSJpo?h!+`4TCzs6>B1IZFqiO~QH)}3kGCMV zF@`9O*&CZtm$T7GCH0cmptF%0i2lQ|AO=T+ zim5^LT@{P1Ei;=cDJ(~Ylvzh|Wi4&O(jgbQ%Ay`We){p_yvL9Aj~@r?Uw{3LwzkKQZ$Ezg=5Ho$ zT*_Yeua=+uSvc}m$;s!hok}{}w4MCWM4r9=X^Qsiu&aV248Pd-^Z+8LEw<>x#4WW2 zQX*EBYm+fil%sZ6ZOMsX)%gYCRM>+qm=dZuRaq|Ta3xe? zeq}6wzO#60S zn8I|bZRB3YFU6Q-P=Wok-WJeM-8z-r-3k+4-O^DV*CK2`COgIvU|U-*lppSO*5O_s zm+??L^nNHW8j&5QwwXny2V|psK8!NAL?K`y#xO+=F|1msF(wPth>;!*@{-$#mPqt+ z1P0r?v%%$Fq|qbBsXVAhv5dmjR=gQ_8AgvAwH9WIlnmlC&C1RTEH^`|v{8bE-Wf&& zEP9DgQu{A6Jw&>Cmh?h@p11`7O=In_29;!`#7UCNs8fd3mvMq((Z*RQt*bf1-mC+K zZu49Z>9#`~i#Jh&%Nd}TNC3>wb6O1#Rb5`B7b}*)aU95nf~yl4i*;!9+6150+T$DP ztS&JFHok;wwMKBToF}=Gyy_}K6j!R;?|LL6QJ)NvFfct6UAgX&7Spo+;5+#H%=JHv zR6d(eMN+?d|Cty6ZaDEqooX@JeGjXs)pIKj#Xp6vV^)kP@1=VOyl?fm?^U!IN0*j} zpueZv3##~RwGw#Vt`b>KI9jqB45GbG)BKsw*ho2u=eK3q+grl9Jb(2%)H6Yc7Ax+j zta~QO%C4-8RctOjzftpXUX+a)kd8}s|1psz1|41$XxiLBb{w0huAkX7WhGK)mL!AY z)un3X_)r@02ih-UiK5~8lxS3~Dm7TIR|(BPVw{bfpautB+rA#BJpOr4^}Nfb6h@jp zgj06-$zc+QVI7og;OR5;4b?nlZaSOXC{=ecM+77E2yG&S(*kv~(ml1vZKe_yhYzoB zlo@N~2q%6%(C zKFn%N(K`8nnJ6ta9dxJ5-qsU?ftpTpU&f}Iz4`Fk;dXPKdxuVkJj3Ac{4D-VL)yCvZRo$M>|ljC?T9V zlJno<-#V*BMJINfPIh_9(=D4hil$WEjjIj8s^e8fx`;oMs07wY8afkZ2tI#J*Qa|j zoa;-Gy)?rNx*XI7oc?z=!Arly^HdAZo@I9=Fvz=F`qcDqpZ{OR7H{xw3M#5rgBZt! zO6*C%LLR|o@XU#r<3WE#e=Y7Gi!I_0Vs(n08V5*Vy;t`q&k22CF7xKsJHt zO9d_J*&alaq~AVF35rsNU!h?&7sc-IDKaRBD`)5oa9ETiEX|qYK5C6Nr8D)<@!l+f zVLB$~kqDAN263q0ESfKJC-A!H4Xwf0Is>-2XbOT5>{8rA$p%{F`Nk1d{h&S@23UG< z5{A6GjONZB4Pe=0T!QIgH7>>LrtK&YKciiiOw0oZWAf+MDL;BIu0W=|MvL+NccK^$L8t~b;YKXTf(8HmYo=4L(ZX-O1rGx2{WQcB=^{2`MFS^*B_+7egR4SImH z#%48!=X!#nisu_y{URw{A^fdz^E-d8XOwx!?$kjun7936`KCO z&c30+v?6V>POsbU9|?{a<#QG#l-US9FR!6m?{*(?`-hoM=%AsqQLKB$2})#uN{rz8 zj+tvgqg<^fvypUtYu~Xrt}bas6lEELYA67DVIj=<03_K_$(=hw8!eV18`p8w9-*tz zhEE4Es(S{`)4IGw6fD}Ygcd{f5~rPpY2}CVOc*8=68nw9ZaYYsB^=N=+ek1F;sPgr z`1tG`x_yI}Dfno`TnY!GHA8XNOPUiXZXyxq6>yVP$7M znf9M|>=oX9O>E~-CPG% z<)wdhmyB`d6=s zig7M>ke6HoSXZ*^8>wN=WZtdQFF)G$LsE9X_LTwdFJC?O({Fw(AHjw`pLZ6lbFSJu zpC3EJaoUEfVPK{HX=U10NH}11Y}>ZW06x`TN?s1_&FV0UzzGDVo`+w-F85FdyS5W& zQZL*>N*EC6fsa2`_@;&^N>vg+Jn?T&61r< zcGT{j>jBj5;Z(yc<7K6n==3JH6R;!#l}^W~ipNwfmtm^o4uj*#uOsoNzDS+x{_>|+ z*1vZD+A}SGxBb9*=9Qm9*L&&A_UjE)lPdwMsQdQv*H)b!8m~UbDvt}xzs|oO z^Aex*;Te**_0a%3v$T2Io5jYlXp46?U99K!@AccupPB#(;8*3cah+8vH{dj zbx}$Q(_})#$h0|7zagTbW~ET_7SOl(fU3bTa}0h4ftFS6%eN>0skP}JZsJ{IMuhWU zy7Rx#<9}Q(Rlh&bo2NL|qm!nB#Y_O}yZ)s)i*UL?77Pf2(?Ms!{f4uHa3x!6&K>{4 z*J9r^=*+lB6xaGXm46CbLgVtRfkdzSrYpp_>I)9N^>IJf@9i1uv>>PMT8%0zgad+e zPA^-nLIzeXj9=IC!fofVQNLIHZixRmzyDTS+w4zNJQFMAQo zP8{QS`v>2rzORbE_@;Lu?P~YF>|iiW2W{A+G5EU!dB0zpw-%*~3ljQ5P65dlC1-bG zy1BZEIjca9NflUnZS9y@78ly`1Wuk4mQ9kS{;Zq?k=oZc60hx-jh->yfXRBi8AV6% z6e!Tlkd$-{Txkl91%tsv-!;3O;cV4yE!n!&cU&fuN^C|Jq6`tXrU6$&VcDut~^FVceow#3nHMy z?m%I<&_btmOPvlrvO^2B4+*~khF?3{9a|(?8`Y606ZE8#DEG(^7LuEN4=_1WkX&%Y z)z3E+7V1o{>{;^g)u7BRyAe0K^NrWIIl*hhK)|XR@NqK^Bf?F(vUI+yFlkdTkH~2$ zymFK;fx-^84C%<_{I0!|rDpx)hlBCaN3~Q{>2UL@rH_59($oEp*~qOOhN&)p>gtyM zr&p|f`S}mN$^J5Sxc{A1q9>Fq{&o8sxqrL59#meHRk>@OPA2Cs(nq&G;NL)EaZrrp zds^w#$DsAsQ<+cwTgND&coezP{_TL@Vm{XW zi`Q*$7Kg)Evur1}`r+M$J&F0=2@y(^{Y$0e*9uVi91o#SzAJ+-X$`FulPPI^qICI< z0Kiy(;}iE+j;(((da~upXv^pJH|1~t&ATu8_mJ8hs0I@^{rFyl+-oWt{3lm$U>2&`74w#gO5{d( z3$F_3Ohkv=>qVU2LrUukTdBHYHFiJP#JGGe=TjAvX(zs*n^-eK?cOO>r53J>!mfG% zDVTJ%hi~DYV}M^lH?g%N^a_cX@kLv`tu&KtNH!`%i(aQt+)hM~KT4EI1k@UW}LE!<%?Zu6`e4a^c{ zXcyB5tuGt1*JVS)uZZmt@6h^ZoD#qi>PbG2v{p+bYl^tJW~dDa1bk^Sfl7q&(b`&h zn!((ekl-BHKCvmqI;c7(9Yeg;Hp*Q1YOwg2MsrY=RS8wn30ezY_;5 zXH@8j3Jy+Yv$2yk0}T++PC+~ETF|Urifw#J%xH?dpoX9f5-s6wjWmnV8faCv(})(^ z;(=9^J~ZhJbfmlbU=oTZ_Cx zPK~`@X}ZV6c=>wARE7(86_|VVZ6&T{Wt<@XHJFrNGNsH`|3|p=O1Ka;yf1OC0$Ry6 zyL1YO3!#nXe>_0iBmZoP{}gVL;30K!_SscXrfKc=wfy3rMxZwzKkj(^c+2C*Po(*T z@yzc6AB_8A9Y&sWwatzz^^#D;(9X&jz; z@sZ!My(K8J^Q4eOw`yDIJNXqin#&G|k1&I29b*!0-9wqXIfHkg%!md1eV9}#o4S7O z8hxks4us#|=#OK~Jf1TzqdHH)!^XzxfGjX3lUzu3UgXN_$UHQ|-S5K9=3GJ{P8kcx zajk~15M3y`=du+_KUzXp0N4ET^ zl`$hmpB$g4`%2cj-EpNpA0>sTvSTZIM@>+1zQHst|>N-q?^Yp^bVk516f5{XdI~^ z!y8|5NT#o^M^|on=FKLtc`jo6#c(dMsqm@i>lTReZ}!~!UB{2Ox6XfYBN@aO&uvAZ zK@xxgFPP8@C_X{jDj|lvn<=dG+Vpu_O;=Y`s!sn#@2JeCbu!_nMfbwt7k2;pWBqea zPK50_$;oYAtwfK3{+utyCI9y2j~ah-ZS-^Dol}2jU;fqVg$2>BUAs0%*Pf$KC4vp@ zVfNXAdEw`?1kbdmHvAh+OCbK2?M7YVQy$O~*tAaW&(bqYyF_V(OXMkxN;2T?D}6N& z-1+^r+O{i#-kzZMGGx!=#1sQA|#)=%DJ$~!(ev#V3Jts~L! zwD|rwY}RPMO;CdJn5?CT6tzeSyJtu*EE3ZiF%-57foxQxKOoM%M6_sb5AQF8wRBEmX%8Rh!?4H!KAEtm3g79R{Q_ z(GaZ$csTfz&(>AFl~4r#^q&x(473HV7^$)`OHf;au8#-AMx-Fy%N= zuiEyWbPWNmR^kwy`~@PJ?zISLtRLH=Z3G=CXoOkSA_(&3=wKURV5O=!A%HSTk8CyG zcWJawMrKVO{os`t%A{Ic2iYrDn-B!N?(4q`Gi~2|Qg%y_dlg37zItcO?-p#Mnesh%Ic%1gE)D# zOgNpa*xGM0_4e=aD{G??MM-z~bl3du+9_OJ@%F>qY1Mj zi$teo1r*jn&zNg2bcDt2Nwwp+m(cg4%iHR{Y; zw{10cu(!O!q!k&=gTX_zXvq~eT+mhr=)N; zRY+D>A3$LtLJytw%S=>jajD~4`k=ln1ZzM^MgW##fCL+1(1KwZE+f6`C9qeJVVvUQ zWJRBg!jf4JX(y)%%XxS5v)kYO*Rem%9li{%oH=(*@-Z722`F;HT92%)FmmM4zh`BC zb^N`|Ux)3L&pr1qCQ+&V(7RpXh@Bbq>B1gNUF`hlBgbPAzdL?*CHRdWdWpYDn*YC@vgdl)V%-mc@89mdvqF+~e$ZuaXKUxRvDu*fPj7J~ z<0s`_F2jcAk3rDQW#)xillDf+W@1W+{9L__t!x^SI7v47gpR$|^-=D)$P$(K>ycPK zVL8wH$Zt9cJgWhXhP{mMBSLCsMa6=bh^4J z75e5%%Of?>P|Hnr`L;@nW1lfe0++NfBjnc`VIm(QcHC>65{MMGY=H+3eyRI`5!Cpa zsaevor4xcrkZFgH;CLW+g{4u#$?3{t5R?X?Cb4E^EI=s{lY{DpXtPd8hDwsq{uUq3 zX>~gAR^3A*RP;5p3(&|)R=?MPbjFBGR--DD;9@jKr`Eto)|SlWNY-Mb5!{a0#F+`g zPNx*bQlns2YNJt|3jUv<<^jxD3OfXLv=_ha*y8cFS(eM>ngdR=b`CJdY*db3)wyWb z#%cJQJ-`70R6H2U(Ayck%AG){b_9p!d%~Y&qtj+-SSc+k+y?sN75TOXly>$*lNE2} zjd(M(UFo}|7vKqF0L36g(1)mN@ixZoKHv<-v6u`IaZ6ntFElH~gt+3IIpBRGmfw8zPJUl0lL-y!oy2faS& zU_k}FEZBmWYm7#o^+Pw?S1YUUp|`A~Nk!&2uavFA|HuTF1d8>6yb*coAD&`DheiOy ztgcEejh2hvzhtb+kp*mD3nASqu!~<_5o-WWb{V2z|MaGRH&(F?5k0X&vcaQp?N;6` zpw}{}#d0Ia_#GMD8EI_(iX6LFWGXf2Dk`6Zo?q_ZAg?M~z>YiF@yPWzNF%9>R7L;_ zyw#O|C}e|p#EOX6iInT%LC+=8rLsNp4wE!`BGI7R*0FmX-E`9-IAZ7STrs{i=aWl& z5dLP$JHJ#{4p#8Opw6;wpBe*ED%`V&uR4LPN zY1Gj!MPtx*o{|Hw4*OiB0*5_dsm_;J+K-KbZo~+I3XouxMiUZ?5GKm3Jv2-)kXx|ZY9eJ80{r=|R+Vwk90OFxVx&J#DKemUIH?3{mlopk5?F40 z$BQzEMw!`eKr$DhRlVKLC+!b`OR^jg^DsdG=K@)aKG>(v25_={F{*+r%EhRL4@*@K zagN)LE1ZG^tol*d41{yjI;lJZ|dBjDj62bC`g?obRj^_U(+J$%ZOe@{CujNUgHg_5&op6ykg17_ zeot^j*VE_I!d4D|^**3p=XzFA zMey0$y_oQXD`R}!7FzEF<28G@+3fX*GcD6okAiBc*<+m<^X%tyV}FEJnvn?o}RlT7q-m>mxvOg?Vhop z?QR7UxAX9C5)PR|zI6b@4G4>$kejy0S%Ps6HYtRwjX9E9@zLXhYFIMApEgc zyS4TBc+S|kY({Y;J*RpMGBAinIRWewnek0fSay zEFX92<@z|G!h}hwDh+0OXj3u{sPmGI6pczX{FIfqB6w!bQlpAfsK))RJ`LXm*ZCbV zUk1^V#D0}tOVVyQ`{UvAG^t)g?TC{S%++W_(=^aeoD%PqCUr4p-0dBPyGRiXSv1S2 zx5sf`mTH#7qZq|jrLnx4Ety3UCn413=E`&HFZv$9C7`wxDr_F7Mc?1&@(Xlk!YPr_ zIkN0Ryv`S@5TsIfF&%nQ@)ZTA5XGBB6b@p4U>E=%y$u@&#hmf?$hhEi*AcqO2d1ZyPeC2`ELif%Pq(LgeR#oLC3puo>}nR(p5(BhffFIhe;S+MX{ye zu+8r^#oy&=HWgUn3Wa|VyvJi4qL>iOoZ;CQ7J?rw41o>f69F$yHD&M`7TCQP&Rpl{ z_$vZcQF#Do4#`(mZBAyBh!E3?w94tcEotqmxp=XdaC?S^-JQ(faF5&T1|4gl-GHir^eV5$tu+#G+;aP1 zdK6ZDI7F}af`Q;nPva@G0;w>z?5fQ)dBKWQ2YLk9m*X{XEQ??;y#PlmI2sxyLE9j% zGxCungGS5jr|@aGD#Be6NZtboN25%E2nAJU>r|=)gIyNtNM|kasiMN+)Dac$feM+v zjf0}NGriGhlq?Rjh%^_;OgZdZTvM=kswFsdPz3{k4>YJN8x?CoC-kPbCLmWAvqMZ4 zs>h6cmwQ-qU^|0jsuZM|pCXM>{lLO6F>W*BTC>(8m4a$_g_+()tcQ{WBcWE8nH?vq z*pC=dW#om4=YD+B^DT~mI$YZ~`a>TQsmgjksReGXn*|`0{C@-;5Ls?1|Kr42mNnL% z-0&$BbhbZ!{Q5r=T}_W4cm4d$pL==^^}hCpqX#ebmOPpNqf=?^-(4Op@2dDd@Uz~t zn)n|PXjknx1gg&a(VteDj7o-b9_LXWnCJ4wI;3=Hp2u)Qjv8oNoWagD6qrO2STja< zDj`m6)%{4Sb{kO;A!8B5c=BAMcCt#lkI%MZH=G4nLB-zhmKvXosZ8vG`xbHrQ&~2fDkJ}4)rvs8sxrQ0cNWAw+iu)zUTfHI zN+(KSXPN}`4`>kO2}(5ZbhQ->@OTM`)LgV;Qh@e)+a+FHit$}-YMb~SZ{qetNMh26 zJK?m9KLxobPKPjHbOVXF*DE17iKXT5R^e&Wjws_b`6w^5W(~}u`}SA3mrIjdHX`jX zxgcyI_(!~pYM2jbYXmUGKd7rKCFX5W8)gHj3K^neb{f$ylMi4~?Ck!G_c#E2%cFwB0}B^5+IZ zUsyoW3}ig6PYWG0vCn#snJ}w$irB@TQmnL}MF*Yjs7vBs9fYF=V-v=lKRG68KpTcO zFgIT&A^4dG8rt<$!Yo6ramrH-&lM{9nR(Z2LVm}*HgP7yWxp_y+fc3J7p&m&KllpY zs&_ZS_bd-63@{p_Hq>t?l!#}DnCe-o;}&y^f&}o1moF_MjQ=5+qLP zSh5SVV}zE#SL);_Yl}8w!&@&v*M`jgkjgj!h5jxEjE#)R#Bg=X_1}j#M863Lpuhm7DF&!%ca2eyL<($Vh;`mBoYdjW{B?YI-7z2x({Ak ziT3qxd*KLSJ65u+F@ySh5gD_5fODrLBLaZ62>^H}tUUPE<(1*g9&=^dhui*~RJqdp zduDQjpiNNW3X_fHm_k;OYc_{AY~8!A0d>|K4=XkhJ41}J>rV76LYzSDxL z93bZ=X-kl)MvVJzF%u{Z1nP`&m#y@~F`oTbwq|Q7><`Z1=?%iOp z?AlcT*p~APaFY*svEYX}Uo#n9;r%3^FXBJJbJZiP#F?5S&)Rp!Ec#;jh8}^`ePgyoc3#kF@OGAspVp?vIgl!nnPlO2w!qyKq_9rS$${7r)F9`y zJEhd@ZEiD`1dG>tDc>~%4lEAiJ?cd*96S@ZtwMuVqI5aonl=Sch>CH*%amM$reeXX zszbi?+npLojakdz2+;l8W0VTT4raWa0_)*;jY6k``vfXD5|Ykk-WjxAt>wTi^TtU1R!*jqH2sA;y6s+7qGgQ+HYY}UoNTmAOl?%^A`kR}} z&1{p$XIG1mx1?~1${SCuG*qld`6CL|atj1_cOn2f2!!m;b|T$QtFwfk%;pqzO0!WW zNbqq2L&S&y(V!W5F)MMn>=u_0XBr?2VFgUzwIRK@0q@Mx+m!A$z>!KYac3*if>yB~BfTBxa1 zgfr_#k(aH&T4^PZpIsJLY+lu0gJ;@1QihA&)QBkrtK1go)QTp%R-z* z##9Wf&xM^<4C@14?x;4^wX-ic-%^E}U}O)#JHX^TGMjh*{49JA)Ybr)#J9n(K)(lt zSpnzrAzW0hg;>-U6-kooz_b$((GMhYs7d}BPN{Odd6oe7+TH~jTC zA%y6x_aljOLE)@{yAx=kj1d|1i#G4g1RX6*WwLQ^q7Vui1^bjue+YEyFHLqf__OwK zDhk=seRD7-b}4N)H8JpkPW?Iiu1DP1tl;sKM+8%c zdv3Kr>tbKc1W{6kDwDhXpgk*VH2YZ2v21$Q;+P0MV4S%vef?NbvDr0qxTZcTFF-bC zXQy?Ta_9C7^C|v2L!H8IJ!qd1z@6y24OXwa)72+_fOicI9_jJ)4dW7}o>9q589UwO zT?DZhM9EAq?S~`bj^dR3_-M0WOL}@q=a{re&UlXW39}_@V%O2++_W8?W5GZ$I4+Z# zibJ8u87hy@Y0u7CBRxJ%q#_>X!g3seRbyqem~cf+qukXB9jy`#AH8jb)Dxx03?Q?% z<{@Y|a3SR#A>1vhW+rReh)==HK2cVF^@=66y!RRm>=057tSSm(ARF=o-3dZHC}UfJ zqZ5Ht@0om#y|XxONA=(!BymmDdGz;PkHdRkFZ}7xzj@94!Rp7ApFQgQL#0(-d(kyP zhaIPnhMP_}7S@eBDv#IO_^IdXR~fc#2IiCkOH#+>6dKf?5ys$OEbvC&@2+GN+{ps!+vV@b-Rm31ZgNPphcTN~#({?RT!!g;qW zr+IzS&!Ufs#I@MG|6bPmQwvsQif7@Vx?E;4-Wl&-G4-}Kfk@4BV} z@Kw)e2kiDuPG9{kBzCoou&bJ3>;!r)y4jc(PCm(+VG@*Df2PydG>R!>b{y=utd!Q$7Z|KMJ0_~GdD$KQDM)6~)Vzpwvb`)6zOR_xIY zdQR3S^3UCDS!i)oM=N(l@4Dun3faC^B|Z(?2hBOeb>Um=XvnsWwfbLi5NSTZ_Ym1R zF!PPI3Z%3f4)pIp0XH#ObFrpEzI0hN^ENGKIjyeTG#YJqE@MWpd+4Q`60HZLu z-_FD4c;=}uSKsA7dGCv#?!L77O8T=m&i~PNG%-OWOk?KW&u`kjCkH+Cw)^?23$xq# zoA>cImrgeEgv?MH+-hJ~yy5OI4v0=8Ai1P)8*{;8?Io^(f|AxH1d|B66H^of0@?8n zE#u7&XdsqF3hWdOl&Z_zmU6SC4m%X+!)PQ+bOkvWsDm@m__Np7t3H49-W})4iu>!I zVV&Ogxa6t7Xus8)j62hKO^L#N$&($ct18bfv`lPp!mU;(;XZ2($KOudj3h1EMXk1% zLjL(Pn`>(uK_KUNA=k_0HiDc*6<%tDO{?7`RdVQQo7>w?3fqZ@s*8!)Kun`5JjhEe z$2;L3hahM@Dx*WAUFfHE*{`y}@KaN}7gv7yqtU82j&E&T^_}5wD<(w0{87_Q%31Jr z8F@5sY=IxA$0uyY$egUJN?n<&@M1;g6~K<`_v0uZPlR#Yfr|a?K^{amN z`hn(Gn%``B{P_2eA0K)Ac;Dm4*2j-uKC|h|6~C&#`6l*E#mVh|o8C9{mnU^AE8kNZ zCp246guPV827b|7PW4_VdE$$ni@8y);si#$O?uO{ZSAp$>aB>@Q{pHhdsX+go3T)Kf zF9bO>(P{T;SRi)GAtqa;0wT!+#2aq|3S3pgc`xEMu!daj@GoC5twpGrgS?Mm%RN)` z_(|70>KFd)o0OZ;$18QeqduSCe!`o0w<$`8>_Ua-qWqbwG_iQ(gt{pxFA~XU`Fexm1#LT*cL=8lN8MMfo7B{ou&DnxU+Ego64VS+h7==|OV^;Az&M>j(vUcg zv|;=qASsXsky^#s%~wAE&mUvYbYH4ycrEa&FW$so&zz_BNJU}e{t}&S-v5cO#UwtN zmUK1${(Xv_YC8jqOL_L%{N4N0CTo^ zA6;chb!Fw{caJ~!9#kT=Ngr+aq@#29xyOtJo&ERmpY=w6`#1~0;C6?-*BcRC@N z0vKb6FSYTqCNE_!eE_&s%u|Tv)naSGm49iwflhAvB>B5_|415r=d}v=r1|wD!#(#XD~Dwn2PE~Uua{;;Er<} zKAFh-(fK!fR-V6^fBe!%_kYkmyZ61x>cIQjWW&Bm+qtz6LAx;Gwe2+>>`o+?<^6!rUW!c^7Z(cYbB zjl3=Anr^bK(dbM=$ng^vwGdhtZm2Z;$_Y1gku*_q=ej*mBR$j5gp z{q~#pS`!f)I2*N@_6gbQZM&@2j+-9{Pnh;Q{UhV4XFnr>6$ZNe8RM&en&cT;;N}cg zS1(%d5WBddg#$p>*?KLHLtlMt?j&((GI;Co5&%O<%XF{e)n?-oG zIuU&J@?29)TO%fkud?d_a|csShx7 z`Wtg*a%Z3Fq#^77d>+}m-Z=$( zq*e$&gJ7bh{0yBXSI8N-D3QyqkRo-lqz;bfF0xIZt%CJ8KCaS@S?YzGg6rjQyXO&> zPDL{6JHzYY`f9FMQv`Q=T3?GDj+gdLYlWRh4{rK)+t%r~SMB0+bf0|_i1++g&|$xD zB>@fd*0FnSr!#l9_s;bH zrMvfaZ(c7UY7*t-m*2zp`}w>-y28!7JDz+115AI@zy3pU)(X>|ruZFoVV0<5%9BHE<1-BL_tEozv5!2v<#$*1 zJaX;%Vo?A6=4;2^yOCmbRh!$_J8HtD?2UcG^^|-81~l%%2J<2A?it8`4z}HyM#>S< zNC(F*+;mziZ^v67_1;^s$~U1v3ddd;^`+za%dxmN)aqO)^9330(xyExA@)o-(qgdI zR4iPqsF>QzpZBD<8u)1X5*zgvxi5Jz*8v&A3{SLL_v4FoDJ3NzRXe9z`>5q$K66f5dNR9U1W;;vqDLn(Q3YM;Y4^P?$Hb zWsP5+)BDYONelv%-4YUjDQY0;72v4JKP0)YX@0upA(?6aLMa7gu%e{jMr!gQD?Bft z*I1F2VJTd|OJgN@{dU%xKu5bU5lUr@IA#M9cHgQ>$52YxzNrOXj-qi{`~gOcGN+XW zYjGc|Ox@*o6N_Vd$-)CSB1xhFNF0o_NMWOk#Emm#-~1@SBHgQGY@50yurxp_Uq#lX zZK{L7haBMHSyn$f=8_&`a;R|QqxOf4xu-yVr|ED3VfxjPzJ4AQEF(Deq4}}Bst^$7 zVR^Jzo^3)?>7O(gzO{#9##>t{xX$0++_v2%%VWDAiH5|s-B_ATDl#Yu0guohdh;v0 z03;Rz;oUWe&1^=@9j9yax6k?eC;*8+OOpSfz_#;v$`jRJL#ve&OUa>*yUROm)4evV zw;>sFTKFI23kE}KT74x_FFp#k{uv8naO%Y$X+yc9pD7XSGSq>+PTOWO{C+@lbYV8i zZq$ToO%Py+&3kHoV!99t)>j}|e7aYT^5!KWYvEr8vu9@2mk?^@2lfvN< z1)ogPc*zToJk!C+eoy^ob?rxE>4BcQ%Ib^->-l<#x6Wr9Xj`jVp*as6pkoBP`h`)+ z!&voNEhxih!^+BSr3{xfLB|>*)WP};$%%jx2$ojzN`BkngGBN?%XK3Wr51F%h2Tog zQ(KjbV`~-alGp=1;EOb@J0rEzA~dqyZg#aDz~^0@MqmT%nQsLP0<|Qgg0K?hw0bQk z4(#&_fMo=21qEJz5Zxf9%!{RVx?3E>vhqr9!Qm-2Gz}|@STI^QI!P6-KAVOA-p?ec z9t5%lMK6SJ0kM{5i<<$tpr85zxZDlxhjGaqV)H0u zkgRWV%l2bUH}uD^jNi~?hj}TFWPS&4RDged!}>^!npL=$aobaB7?u9{5vAM1d0tzG z1gNNcu!D9B42syQW{P zD6~4N&nX|-b(ST61&l8?5R~x?JknN=cKDQ^TsMy}V+Pcs*Hi(&h#ks3ldWV5CP5uY z3UWNqqsgM$38l*2AX}kzCm2Qu4`wv<3PmKtBXDa`S)$Pmh!dD+P+)02-H2j6&-bGT zGkW4a9O70$*Wv?jK)ZPxnqkk9~D3_PnLCOA4Xxnk8QIcL58!%`UnG;gR9tE?ibqdiNg2 zE*HbW7Y{iu6-*b(W1dTCj8(Gdw8M5VZC{Q?6p=Y{Mn6c@xV&O(v65{$#e#AF2tgzgryH5!wJj&J=Gz;{9qMcr8As3!C3$t8h^l9N!|m8Y?>^y1*j~eHWa^I z)!-dSx3JPiA?h8%bI$g$Clo+3&q*l^P_}%)aYr<5;}8LtUX~H`g0QOFLMtI7OT0PX zux+#4y(E$9AVZ5Im%NyzsZU}7^26`@Sgbu%C3F{*rknB}apO0)@tA%w=6(LU5poHo zC~wtD5)>JCgUUvcJf_JkXQuTGMmz;)ctL7L57yXc#NbfiRb@bijW`B^#W+RkVJ*dy zM~ylOaD$+DK?yVRC&mZH}z#-tEEzfVc$^$;>z39Qjrg@sn@9+5gQq?iWt!+$mqK zYu%<(Rw||i|CMwpL-8pS*-6MuwE|cExO)?=c^{J33YpwUg#CGl^}M5Lt;b9UDol4i zaTt~FYm^-Zn>EEmO*QZmlUY}%ARg&99%{uBvt(FNb3YK&u5Zc?S8!K{FVdSGA1zRK zCOLI<0!;rbw^5K4NjuMuEl-ZNR?D38H+vSW%fr}{)YRa@?DmK%WDM0kspZxD*69#a zKrnOc;EPR?YTXYymB9v+?(V7Z-N-#rYxhP^Z&Z2$#oo`U{Ks75-3wtK=lf)+_oO25 z14$?jSC{F`vrbOtH#I6qw;dQpNttx2={4~hr$&{ zSA?V@ZlU@fh>dx;Rgj^i4J!%ud21@5Abyy-gbk<~`_f99GK@H`FG`*BIE#F4B#C1L zpFE4ES~$QB5Kr=eO^%A`&XaBx{peLAJJ7hh8+6ReQGH$Z>QKu8Q>%P zXv_96H4-4x`PI!8p&>3bNTgsJBiS4Eo*OL$>N1Z~Uu(@5T{SGiS3bcmzq`RLh*j;& z-y^RFxboEQ-Mgo1Mjt(TRN~GrEX;{rqoqJ;v{_Wrpc^QTo0Gd-dxdIBf(9IizTz8V z|M_%&-G4my=^H;{z>#$}nh}@&r8By2Q8al~qVs+~^0oW?G(T4SgmCQeYSN-j>Ng5h zqELaC+_Mzrc5gs;6tO5yirfb5#{j_r$^0o$G_a6Ii8kR!FYL8R<~>^OUOrOr^pzjg z-<&$XHF-dIP85l5)VlHSY6Saip@Fi=R`VX$(lbtIH_j|j)(fca_04$QeQZG;s{JS; za)YH54{hxzZQ(D>dOhh{2N7n6U)%xE+Z4BagVU-w=ZXxKg0T+a>&pAn1)iB53$FP$ zwg=S{_bQSVHsZb2>A_!@c2D1Y=Fx}mTBbjqFaC~yt)WjeQUs`X600DbDYy2xmu7~Q zvR!6Y#W-7Kpu{<>*5s5#eM8q(i zCP3iXF=obCB;ehjL7m;ub1F(L4}#{@tdsbLs)ue3+(7-lK4lw|0$^xXrHp~{!>Q|w zGf+3xV6c!=*aB<{GX%*EPFeTDY6E((mh#Ji%2lk=oK;Fxc?@nQ%=Ov~-@-BJ(1RX_ zs3=9!$xv8t4E0K%S~+M+4Wp&$ErKw|vyBP}$> zvk$#_Nd7O|iJufgLlr5ax9+85nNeM0{llc=&oth5>{DH*zaRN$WirHnQMMdc{?3P= z0GhT1SKbw3P0QizpSQ|m)AJ(tCGw)!TAS})zjLD@e)A??my(1aq$N3g^h_&uXJ;~N zlQ{}y(+kD_R9u_S;#NG=fqcrVwKK`@N8Rb_$R0_LTDYez>v_Iw7|Eh$MfV2M6se#b zFHu$TYUUCDLlFieESsLdkJ|4k{e$kiD%5wc4gfwkA!5 z6c+vQ$3*Dz)nax_HjGJDOSxyZjBkM$fp>D$@vsI{m|+UZ@i-u%OA{FI4UlokY6Q0V zTL>}*J39XWB30vIyHF%2E6h|7Gq3pcPm5rjDN z1~h&8$4^H+M{*Ya*l6nxKZ=NJlD`!154I`&Tn=Db7LnY5NZ4l!Y`ofq_CDzvhNYX$9;#2_nw_R^jP}vS=XoQ zH|^J+`H=XpB>9gPgWnC^yNF+v4nj1~@skffS){05jP4krvoCJPzKgkp4q^|f*_3SW z84alWJwEQ2qI|3MIR5Tctwe*bN9q8owRCkZ?A#%bw;C8Rs1ffx=N`%ZG-Mw4`88z` zk@c=`!NoX}8DUsmdR+1ycb&|!<8>Ev9@TC3fduGfQwlFud|?6)vkf&^;pZ3S*m?AR zN8x6=Knmit<-q3=IDDWLgJ(YGiR4d+MBHaC=j}Hl4bCrSxtAR!@V9IRraK`TjjJ{J zE0d1UL@0X#N%1mIf!5FZ$TW#KlSXqCsZ^?L`iG3kWcQAaXY)LGfw`)xDkEooz^^>& zF$`;j{Xvehk)@?q>@D75Ri1h$aXRZ&LL-!~PuVQoe1hCn=FeKda}1l!CR^`-WXz~7 z62vheD?mWNJ;{_~hB&jH#)_BvhJW!d#)#~hbvcvIPD8HXvr({YgVprYxl@^MQmEO=CN{rtYUW0Yyd$ged^}j8p&ka}MXs|zfvsZQK&FsP2 zlI2&Pt+CtWLkMT0(WB8Rgy@iEJ4^{s6RSLM0l8QzVVKk8YU$T?Vw~Y?)W*WY^C8(FxG?B{0xJawZZ?{ zU4J0O{CE4>VMyf`Ur@!QKP%SolykJ!^A{sF?r9fmYrV$Rc6 zH_VzqRF)G$D%crFdfiV+-<%$QiWZ=OF^@9(E;mwa94pG~gjO%q<#9pxiX+1Z!Y1sj zsN7~MF0SM$tA>4jWVfUG*aOXykTmEOyR4XRwVh=bLc>;4(aVE32O-J9MToD4b2AYT z8!gwjB?Xi`^&{>o-2y4NM(><5y3@(T1+Cpra)NEC<3x5Y7EcB$+fD(Gtp&E$<&H#WCZz`p@nm0Ji#5{iXb z4iybfY`9Z1PouBEq!jI2$-G6T{9^V6{r`8jZ5?9l zk;n_j{<+xXc!{*;L=io)(Wg18VVA>f1P-&J;PNNvH_>G^s}#BU!6{I!8LYRR7kIe6Hq)Kw0+Ak! zgAyxUBPgr4d% zwHwJe4Fa@*f#=c664f)n{V-c?Ma<%WgvTs$ss|Zy(_x@{;%ZSNG>CEKIthd*nj~tN z>8AA%B0E)`?T1Vax-B3!VIYfxTHL6nB7u2F4&iA^tcTh-sHDqU~`yR+b749KxyRsppLe7*YC-*@#4e)G*Yif_Id%Zz@tRzTeH z=Fc||jh3zZ^T1zC)j#?-^^cD^PRbo3O|~rh(+`S;wj9kSjD(FA{#KgzS{c=IElSC= ze|5f|H470nWm}$(9*JdX*~t!*%W5;tm>l!!wmY+@1c1|UZQSfrj)W$DBP&jr&asRQk&%_2T{-+veQpNEqL$161Ul zY3|(CoZ9D73o-<^0yI0lHt|c$OwT~0lQ>7T78MQ*Nt`#pX|P^Z7!dOdLMjHJA~VC| zO0h6szRjmXYGfp0R@piU%tG-YmESd9mmW)V&lsgu1+n{%)&lw+)q<2hY&I83Qsk=C zrKe2^)WsQDH&T?uC<&1yY1hOku+yb_p$eS@dMN)wmJ#Xoj9%|0Er-c*p9F8ezP@qEsOoMbKyFGQpQWLw4|~WGr_nZq0o`lxc>&;NE!OKw zNy+s=W8R|j;7)j&9uJzN0Xv{o)cX$#bxZ&M{qy^fUvA zn-P%ywT08%fR6MV9A5J+2v*C0kiQ2cb6VA2e7gPN5^MHokC-R|4T#hA$}QWA3F^=g zwj~D7GpLmnYu7ZpYrFxzu@mR`pWg5O!A~Fm*>@<1uE~FM95LfJZ{F0vgIHL;$?u7t zhs72I4&q<0d+W=YKDqgLKg1K5cD-<7W^T<`%)VU}{s2O#f;{Z%d3HB3J#!CNin!(H z6zHRR>x~V|CwkN&id?YovmKP%=%C~z8M$yoeYe46^t{&i40b-sdgadB4xaw?i2`Nq z+YM~PrOA-b=6rKD+N0WR5A5W{265}KmJ^Yrs@Qi9Sj?7Z^Nb!p$DIBHMCYQ%mNAxaKG&>RvmYW9!U+nCO1H3C3#+8lkIK#E78YNBHp3=t_Y;~zw*yy0c9|7t zA+{B~!9I{zdyzQH3SnkO^_o6>TaH{J^vyemq^pzdR`9=Aj^vEfD%@-q3pzcMli*8k zxuVe@7RN%G0OQBJY@T#R6Ep$Z(G1SM20;ckXf&WehEbYDn*|9-M+1~_pE0k0i8ZXo zl$PQ|o5sJYlI^mpiu@rZsdhV|T*w?&`!T&@E=_M$3sx`*C~&h@IAqT-($XFjm3wNG*o z5ionkdU(IL$GihKH7=1}s4Zsrj0`b^L+@qH3xu3^1|(u@7g|XH6uqFn;{co9d%021 zPXG4$u_2T=tv^)M+%x?MTYERIAz^Kg$+zctFyI=B%FNxNO?$cv)A#1uN}MF*4c)xs z;Pbf9|M`U2azXO9$t{OA{Kd34N%sBYfj4;HkNkmM-RwB$ke6X-B8dgwrV_^ib7G5 zrx(FeI%TVI^j!!mwZv;mam+EA3szfs5^ETKk z=LGBb-yP^|dELByZfymIBy~ag5jPd{Xd(bNGZ9u_5CNWXI2cqmm+BMHb||xZaiY7c z9XuhI@54NSt#wj~01bj_mHI3xX+Rb#^(c%JGEEP0qYMmtSLvx;Nv53dhCzesM&^PJA2FE=)*gC!_4cV&i>sKXk;x-3Es&SD&ah7{Z> zpiY$VM)i=vtdxO8p3GcvGUm=CU0Fp%IV)Xpf(RHQYo!z=Er5cN#0!l0)r>(yDr^a< z$O!VI#-S?-*Y-Krc2h%@5EN_7IkiB}3PI&9M~o!*&o4PMB>i4xNvHIOzxzd+YM^l` ze^SHknR)eJ&z$h5|7&koIy*9yEZn5aXZ#a2%&U1ZY5nNH3E744x^eT@zML&XUFxqy zFxgF-$1Ks>eeiams+#qTF>4eKE|EL#vi*Mx<@|>(``P2^6<4l3JNxkMu7`U=@TfP! z!~1HX_B*Lo%e3Z*=H21XCO$9@U2WB>)n=plErG(2@YD0Uo`f3PEKB=G`-qE+wr2iBVoF=yGA~>xr1z- znNOYJ8fL10x;@?V^N|%Ut-^^pZZk2D;m7>jv-Qif_o9&Y?3hn|5l}?C|BxcHD0UB* z*1F1M>V2*<@7Sq{Fih1_;ag^p*s?I~Q7Q^$)rn{;PuIbtioQ1#qhFuFylbP;5wYa% zS-Mv7TPD&&3`nb;H&$BmmrBViPnjMSpdfPJnUgwhR~;J~aCkTkq_dZ<&1XF=5^cRs zr2=SOe!fI?)^}nA0+@<0LtsRl6V3_8s|Fr?!9ZnYrDr-@b9R`_6A9%f9oeSH7Z3fj zO{~tt{qOww7mQ`rikPhjv z&zE7b?lk$bU{?q3K!_*+JvWZbPVh^$Yy2THkfp+<1w{W+4^m4FdI0j00X@}^+UnSa z2LPn!lRgVf#lCrq#_ygv?B_(IYC^5sCdB0Z;&bXOA|o*5OSjoc4QHQ3k{%#3_i&sS zIh)zf2$O1kwwGOEjg4XP5F&(J4;dpn@#zQGk0)hq zP^h2F_^;}N4+0OacV=y>+K+~VC!bGA5*#eknfq=H9(-V1IFkAo3D%6?SeC!7*gX2H z*|v}VgepJy4Rn+>KKo4y+yuoucDz_`a*js7Zm#S8(_>ZXKu~n#<>PfyG!&ee1K|uZ zf1W~5+P_`-&TqextSSHEXYJ)9?aQSvGkb#naOB0gzRmJ3pU(f;omSr4l8)Q^!C&>! zeJG|hl*h5^3mx(u3qf^d#!}<+G=VJsD#`ukD}%=06B%6AgM={;1rqBY_{Bn0?8Ncv z(jn6=p<6A;&39SdWX&rd%xjLMcmW5o{r(2(kAHdf;I5I$oqrJ|ivD);)3p6l5ub&PvYx(v!r*{|&#q(;#2KoHs4HKs(G6ugu(XR(g@|iNv zq%>x|KmYC~R}x%;<&@b!{G}`Pm1y;En2-8jdGz#8trvCDF5kVnl=Fc%=VdS6o(+y} zt?g}4f=r&6R}_98G;{hT+bbs-R>R|sT6K@Ir zrvKX}>-CwvpU=uK&79g=>+EfL)LM67IaQxBRaas8N#W-A1JS~Z4*pm1{gFt^4_i+K zQ*@ej$eL&XT$8T{;_GsxSgIR@8F} z+fRr04TzRs4GuVJivz(`=?_kA6}Th8V2xES-f=z>SrC1xgdmxkkAkAW-Wq42jj&XF zM3>Y&iAEw2iZ<25)o<=7nc7$~Prad$?LN{cQ-vKbX*9A|)#3Bf@3hvKTz9Cc$fR22 zel01mIq+t(!m?QqI1}#B1UULVht>31jjO_PLEE8$I4kD{8MFDVBkIAEP3P!@PxF4q zrAu*{W5efvCW_~emj2rhRQQtYubhp@+nJK)oJkLG4O}ORY9|io?k{P(0zVIOy{FFF zCv>F+o%DMdLG(7U%X}njEId93E_jv7Tvp6jcLsUpgIYgBn-7z7 zo*qc^B?;oFy9ZP`yttLU>}fX=M_2V4R0mTMrJO_Jv*Z}5Py^sAxIhyOGG_R@IU})p zT4E5``*^{;bLZ6A<2mORJl<0$Ap30K)Crb5ja1o*ft404lhz0pklHVOstOF%5%O4r<{~I&{$98A+$Sb?fA^#l3X3M47JtKB!m+acL zp?Hu@w5&62=fv+!qoc`B84fKB;eA%`2hqQhrS?Z%q9ZR^{G%a@o{IHTUse9Uj5l^_xleJN$~7dg=o#qU|AUUDn#tm-g}f zjL71cIuhnuY7UDJSRET~6L(sHw1m0ty!)uJ{*EZBsG+8moLeGyQJK@}3TNDfo`71G z9j&{Ne0zEW+S-mziz0Z3hU1Dv;jQXc!xJWDrcffUF*qz0J9b=I%pg+kK1l|-8Yh}(BFCNw(-&NrtM76@VEO4EE^$knyt1G8REt- z4l6tPgc!>Sv)r7K<&!7KHWJ%ql@tkJdzc?`C5Z7RG9OFXmf1F3SB3jW1Z^&>aoA6G z4pEZZD?J9QF}>g*K(^r6CB_ylU=T8WL8!%TpkAD@7GXK=r)aJI?S-i6ITd7Ex*k~L+vmJRNqH0BhrlFaeW`2k(%5_1xRR;j~U4>CwzEToU2Ppizh=uD&dHxCk1g2 z%eiRwRkIQCt?I zp6W#qG`t|8SQVHV6h|+EDHr=~pEAqcCs8$u*Q@l4gIOx|m~%ZdHb~?OrEDmZI;hLj zX3l@1vKpm8DgYU|AwtUKuyb#iOF! z{1LiGNua7tU70m{d&EI(8XDmrlSRYJ&e7d9r8fbvV;^m$UW?#W1w7<8TL;9*t**2c z*r~N6KOseKK}7H{;Ra;Ilnr|Y-J3e>a@udX0mY>dee(v=|>#PfJm^RAVw#Z9(-Mee} z78|ugeo2iY%Rco%{+>bFG*b^_8`TWHR$F~y!6sQM=q(3M&(3*0VXA?M7BVgtL^@l7 zq3~9@yd7|i^6ZQ&Yb(3$>pWHzZm+ zGQ^k@hhx+Us=U-{udrLo`{T66P)5k0dw%xRKu`hMhM7rEtz^01EjxNSu0Lz1DV3j9 z;jAiWjGh}vyFKKd$tDuBfHtTT=Lpvud^c9O_AN$Y-I!4spaI`Jb6BlPkz}qZ98dTH zK~~Xean^?tjhrxFIQ=l8Q7{Ctq9TuWNo49ab!uz?qi|f6b$#2b{v{=Xp-qWX7tIh1 zA7?0d6$%T`qy^Gn$BjC3MR93QULtL1;I;?(!=%90P!!9uk^|JLkSc4f&nPP|W~IO( zAs|)aawD`!<7VnX4D9I895rV@Bu`U_9mLb{jL6BmZSVYkXTL{D%Lk$&JO=eY-9JAi zV^*zUZ7{J-M?T*EAr3=1{P^)B&A^8rj&C{{kDlm}eeYVd_LYBe+m5Ejvb(aI{jQUk zev{9I7&u?A|CBP5I2wihE{wDl@n@ZnbCbGm?!#ZTKkNGLHVquO25gvoaOuJ_a_}8f ztXWcZX(eS|7Hi$jlYPXocNcc@pSV8KWE8qE6W|Iw!KjCg{4(zR%6VIW6#{jK(N_W( z>czol0MyA;VhFo4E4T6Q(?HVD(rmQT>ppc?zr4SF^#kH4(^HG~-jX>Kq^Ky-0k3_AQW9oD`Ne;4|PNfgR(2s^-{jO7&WvfX=Qlq=bAJ(KE_0r1Du#x1u zm)2v3MKoxD2ot-NV~`^w7S{{B(6;2v;(_N0>-B9EGH2sDvmdspb7s_Vn)hIdM9|>Q z2zq9$3_+bG<8^B-g|v1(u$$dQvDMNqX73P(t7I1MyxTw;P(Na<2r)UrYaxsV0M-O8 zLT463jYG^9?Qt`X_*9S3SL%om#gNZMD>*1%Dq}Ob^Fs$0S0#e$Mk(4)cGVR~;Ciy> z%EpsTRlA=B1;<;Z%n%$J1&Hms!{i~>psX&LRtu5A@GaJ-xsrSK&?mmwhMMiOxrue# zUo)-zhP@i0Wpe3BOy2Xf1B*=~_d7xWAO?di-5b#l>Iu+fBa3NarzI|%qKg8PAvFYV zz0XFq^j3v;N_VxwWv&%*qiS|}y0_sCLj?p`-^*tk2=$nmx~ql+rl?4PA~McnFN&zx z(I{KvVq#Px5h%Bwfb3{CYLw@ZJD>cnbEMAYI#7`uxo|HiQb0vue{XtgqtjM#JE|?% zlq|Ve=JcAq)GL5kpoi_3r~}P^`iOI6t%*-qQx7y?%)QbZ9(!~1G;<_pf?li|9IUzl zox?9Q;HUJv+l?6_UWO!T4CR_Zng(K6acXA_YI=v`UU z781nV>QhqSlVo6C8edbRIWq#M(I`fTREv@^#^k5fet65(!G-%Ah(Gjxw~)e-m|}Y4 zSbj>s;v7H2Z1>}8A9SgM-gXLz_XRqY;VgAd6;rvkjJqC^go$L_eipdJ2%1VOl-LI~ z0vMy0hZ>v((xPqV;H_IjLo1+0qVqg4FN&MV7=s{r10ERCWbR71F<-2%NTFt+B@}Ry z7!>(Ej$yo4HL;-fC#(sVGTp59c!ntyZ=eW=j4j5G3l3F4g1Y&#EPdnik}F6cKtqAt zLoH}Oqw&?11;`H}xAMAjApY))dHs8@(4fJSie{o^0tm%akyX|E^dYKr$Sw6j4Wdep zRr)@zuOh3;{w2Lef?peYvs7ZO-}{OE6Lif1vDP;pm;L1AS6ZU$%}WV(c&LYTBV@N6 zCr(^DKPi20BG*7t=@nJSxKV85=ua_rTsuw>*<6jnC)*Eg%LQ%>qC1L@#!1K<5>M{JWL>OLZ9t?0FXy z$!_jZmM@*HKLD^$eq3OAJrNs7ilsvTGUnRwQ6$Xy?%r#;tf(;n;|xM&Jg7^0u}sC^ z`jEmx_w!zVWPLGrce%W}QgTUyH^ugk{(|=Btj&Qg)`Q=fB?oXwN7@$5V>s|Qc?<-4 zfSpA=U8=W%417Uh>*8QcX-$`!3#8IAbrFzQ5@RgXNBdywB}jUZ-_k-(kI&Z0C^cc( z*&kPtDTWk$mNZv%s&cXcTWD^T7S!wHWj$lG)WMbj5^BDoO|Lk5qsl!)QloYC8Ns3I ztU7=*28U(4dO;?q$~s33!+l$CxDI8k--h*4bWv(=Cq+Qb({9fgFy=Lp*2EZ4NUR*C zKp7PbCMl1_$=DhJ*FsdNiz3oPMOou6=b0 z>){Oabt7KUs7_BC90{cz!VRA>@7$!i#*byI^E2c4Ch?D?wRP!b;+$X-tU;yZBqI`f zQsn09PFITJ{A0WCPUQSp`3>z`a@*9P?yFz%CQFvR(UR|M`f$7NPd8s7^IbPwXWQhew-U|ZM=Z&=8{)Zlx`e> zX+rv8dX3ZMkk^b!Lyv}TB>#)UJ5hM6yY|#4AHSFO@yX#&PYyj>b-|PI=)1>;c2s|9 ziPrS-{+bdAE2BM7&$g+5GmJ?>_(gJff&W2q7d@4QWVd%#Q!|(5nZr*gG=-wIQ$DxG zovx^P-&4=0rZ&^cP#;s9`=Vi5!zm|xD&~^V`%Iy(!_9Gc-L%}Q19DO79-mSx3M@Ds zQw=zG7mG9$t_!;hO$)_ns*=fAnB7o!=AII}J$W}aTMsPGX!vfWY$p9;AtOr@-~ME} zYiSh^Uu<>K2bKh=tTeMV`PcyHFkv0@s+pa=j%uoEMbpgXw<$C7%dB>DS*a~3b>44J z_(9TOFrE^2#Hnt zl+1=N}@o3V>k-Af%5W*!TgZ&npWQ;Z$b4p6EGAaX~iqXR5Ig#o!OqgQFC5o zlO8(vf+%fr{HE7&38y!vJdaqpJV7g}^mZu^PBwn%Z=y#$xaRvW^uJt#K|ga1gPfF7 zZul~w{hrbMwQ0Vp@1FrJ1gb{-z~?YlYJmS}qg7Gt#oJo8rQ3$3g~F(-fV-UPq;7-B zYlg>5EUF_R%{nc*s|f{E?2#jIUJgvx%zpx#%Wk}t(L_n#Q?6$(1+gCD84F>N$>QN8 z7vCY?fpi`61B#^iH-eqZTQcK`FnD6!G^ZuGbWcTrrruwCpCBP;-%z}r_k{v z7NgElT^CyimsYFXh~Byp!M^rw?Q3b(*$n=f9ey@c1)|guF#}4C)MV`)_a2qt4Zt$J@vfMMU|2NMZ)}_v^I7T>3 z#+xO^hc%fc{aIrIW!&vnOH7gsvlSM7g&J4JF%C-UR>I^adG}R#3|GPnuuI-7J#(Gx zT{}7xN?jQvwBoTjz12UhVJT&RVomxwV%>d*STs#BGeEe)Ajx2!f;`zdeQJD_BoGIw z*Wj9PfQRk$X~0vIFxL1s-b0cR5Atv{uq9Mw7oABkbjYDU!T=N#(zg7~;vqA_5zCnU zD$B2@UyW5e4mMmCbSY1X%2g*v;8gkqN6PI%0wjd0*brht@S4p-u@A>B*?ht!XQMv< z4N6zDS8kVKWkz0;V0}&b;qxNT-3BzW6>K(Ve8HC2v_%~n_@_dx zsPz(31}}!@CvglbQ0x!`;APC}o8&A8w5jc$#*ri}8$^o!5REIL{N%ld77 zjM4e-T`ar+EE{e?t4Q7>u%6_uPOF3{WC%o7H6pI_mo7`ilR$o;A?UM4)>dgpkx%+S zLpIy(Y#+4G{dsv4i;Zn00CgoI1{?#a-SZ79+~3uvmzYIOel~A3dwh{fdjQr@MXnSJ zkkfT+m%&<;8bIb47y*ei;4s*Phl~2W;HJlQw8yQ4p?MfU@(eTuBtVk8ZVYx)WMGZ% zH?NPS{a(DSy*Pm&Z6l9q>Pt&vbY*@Ju`h-wpT$5du2-oJni)Z2eIq(e_3)4+Z*|Gr zZY@sqv_|}Nr*m_D7o}^lMwpXffK1YU=qJr<2uhay9841mZl>C7XRAY`$qyJ zTVsdRTPvJNC-T`8oApU<6xQOFncLRQb6ACV6T*$k+Dlx%AQh~NfBbwl8Lu^+S4enI zWayHdZzF;B-k45zz&Jh=4Jx;ekmJ{^EPYWY-sY$pQjvy%w6LZ2oToI; zka!wJCc~)a;r&a-S6Koj29$cx##7t$*Ey9IBPrA94Goc7sy$u?B_PTx6wQ78no_)W z_111x^2ug?DTWB2;}FlcB!^0j6~-9tI{NN^KLpm=r;1DKPJOa4=s4H?^TflYwS_bFJejt@{?g!a8rO-q7P-kaSgw|;H(C6_&ggyX z1(Ivo;UfbudsfRn8V#@w?-_&3`JYIp|1Gf!g8}U@UK;7|xWsuPzkU6@0BNFi(`?J7 z^o}|Q5SAIvQ+&rUzeQesNAiwV)WLT-oL@GiIm*5rLtE;Kgg!?Vc2>|lX_x3upr@3T zuyw}#lj&OqB(VRSxRHQ;Wr=Rf~G^u=D4xhi759gTf z`JutVv_V<}O36X#gLab7&jE0m&CY4^r)OQn;Ub}8fd)Vgl;c5uGv|~RVTJv&bBl9OCn0$3ijZYj^CwHMXs%2% zmEHwvs46WBU+h630+OlcNUOC$=i?m~m$7265zBhGw5_p^+$O~u{TU?pLpQ@_P!?9N zBy&9u^i&@}4|>r5cqAZI@qLk2%e1aDt)TIJBi9e6txV*MbAk+BR zKQ0m(B6Oqqt;sRzp~8B3`cKBQ3H2kWmz`3mVHA!3?Lz{cI61t^$)2rz^_7)hR+P0{ zgGVRc`_9vU=OJ>vd3af2b^UN18aUY%UcGky+GCD;O;!Rn7TOMK+UZl#_dDu{H_U=? zMb*A`m2=P4YXhI{1nIe#3GfY>C*8*>;8{VO)Srv5}pw^ zaD%!b(R?&=rsJM!cNG>6tMf;+^hhng=JubR)fXl(ZS54@F*7o8D%w%6^W1H@^asUs z@NR>=;*!WZTDE7uOs2YBc@AA&bt%-HtL9oO^5W6&b|I`6uEDXM z3#l$kjtyY>+l1?LFs!iZd>L*vNN&0zsWNfrA;Z`#ojD7)L$kw)@nO=Jl^3>hZcr}p zSk;_T+3f-R?L&Xl7Fk`ap){WjiZ!6l$d~v1ntaqGWTaFtOFX=j?SDuZGd8REFj58rBmVS~@}8VLHSGEXNm*8?r}?B#(DEK$ zBaEO%G{~?jl{za-&)xKJJu{lk!4jGTPA!y_Ia1sJ{$?mXcJoP`vjPPs4D~~6k>As% zudu?NG=O*+B6kLV?PF11X)h}dIF20~blj>MwHo~+r&!+!*}0sA^Fe8TGYmC9d35y( zHkj>p(;{3HzJ*kN3L6<8V(46xids~nMxRfg8HtQcavw~O?ayt@jo)w_qwap0mFM|o z>}3Cmz;`yhyX8@o9@U8TF+?_VkTlGIHwCeD4!vjha`)ao;thB&d{5sjtoVBRW8I@ZsTY8fuN0+m{y8Vjw+IX`jJzWI5KvPtAE?OYlh)J_+@<&OV>ekIM zR23Z}>c(!Wq_|rlatS2f^~36$&xF>^S85xkH`&79VV(`V?V5A%p17cT-}Bn;lG``) zC+g=+iMBArcm;wB`%4QeN~T||e9?qRKZ79_N)RTn_E_kh3?#?n>Q~v*6#K&fRO^{K ziWu?-h|ki#z9H0Ge(_da`CIm9b2p~&Kzp(EmnnDu^qHiL{QK71pR#-ZF>})3V|(3v`p-PKv! z|4x51Xh}#$h}*);0JjYd zI8-6vkzvr=kuy?>$&Lx0P?7&A8pN{_9# zpRf3-^YM68_Kxzwg$k?jV@NJ%7VB%tcfIV7ofiR5bo}`4tQ5KYOuPo}+AcX#vW!^& zVb)ZW#Ggn3!IwP2I*}=)CvbP7Q%*o?XKb=2KPy>;1$wvFmY)=)y3|?y95s@kdubh4 zhtB&t_Lk&68Q6IIAFQ973iHmKd~)r?m95HusoOJl`@G+6uzh_p$N$mCAD>sskAJ7L z_>l?Z5HDW&SZENQQB3r7H4e$4aoH}NNHXwhHjJ?TtV6w-BexdcmemP!Oate8{@Gr2 zq(haxE$gO`df=)wYmUFN2Lu%5v|6LH@2A4gjQr$CM~B;zoFasQ%4DWv|H3z!<%x!Y z!Jd+=E6O3idw!;@WOoW+ud2MI$8&Z!dX%$O=0#WAIWR*^$oM<*xm`e(7$`4^WyV!& zy_Vn2VuX#Fl#7y0Wwz;*P8Z*$EOzi$$BtGkKE+@#7>iqPEUEME67~fxM4TlUjm8p- z9zk=VzWmC^mX!Qh2r5(NpYVFc+sX``dh$bdY?Ndmv8*eQ=xk6ZPjtI`NzwvNDse`p zVz#`($u?YQN=%e!48=Z7off812N$)sHVB73ghE^*uP%_CW>SqtgD0qP7;sk(UXop& zQ%xM5X_8|zD^^_uI0BuXZg1)~Be9^+mJ2b8Sf+rg2k6)KsP(4x7~CU2%u=e!jaYmZ zZX~@d$AP3`y{(5~dr?uDp~PHb@&qVOiF^I9JR>+VtfM6UaF;DHaY&&Q?e*>5J2qx1 zW@G1}VTqSl7w|AX4v8M(qfQdyucT~Gx4)-9^$brHo18D>Zr`@7cqA!O`QVbnL5trzuoCJN z)tF18{&kw?bKZXNmq*LYm&PkCxto7#x2#SSfXG|v8Ik*T)G$81N-Qn+>H7Ezea&%Q zH*y7p-AGw(ixu#4lcocA&;Rq0Yb_csky||A4jbG9i)Bx4l_45 zzGCta#6+>Iv#r!Ib=xl3QPsm(mvu;2SlB!e?h4GRu{J4r#i#vJFbyv+I~zR~!gGO4 z(VXZ9M{Nhye7O4Hb3*xK;J;IOT(hMnW@6cmet>KxlvlK%!Be5LW}- zI&j5%1{tyj6U9(26sW(Mr*jVI`wk;rQKIK17vNpxAGUnd^!eY7?|hp3;)d>m_c|_r z^?cqd&%L(s&@IRQ{iQnvoM<6GX?Ae*3;9UR^p@g<`czSSwrDzu`;H8TvStF2C5j*= zT2iBvS9z}BiGLyX4y^EdW?TlnTZzM9UB`wbdSAc4re zX%V~e{lDhEvF7yR$QIr0wl_!q9r!DiCvD_(-^dsD_pX^3+g@69saNiLZAyBqOfb#f z8eX|ls@;6dij=YQfH`;jtSmN2m;MqFz4%_4&)q2%uWpvpe|@Z1Bbr&(X$+# z;f0ss0WTKHpT6?E^0`Mlca0x0eZS{T>*1AOovZ$ex;a<4al}7v^ZKeQ7rf@h`q$;h zQXPx+^?Sz3<(sVtg5baaln$5X71mV1b6SZQMl6*Bp)-LI+8x=3AcDS+YdBAG?26*? zy|o;-H*I)RSKPzje^c|!H)CaY@qhgF8@=ssOq7U zO5Jq(7k_Z3(u3oKUW{~XV)rqpGM4sHTA9({1P#7G3Pc>uO2;xSjV9iZ>i34ab$pvz zj9tk5aBT3izy0Ex{?ez4&6Ni)JxSWK_gAMj9fA;b|0%E3btWPbOgp0^BQ5*p>nbM7 zHtq$cUY6d~f-~VeHi3UOQ7Q=~!Hz(YFECRA@s}nEwONYgZ_MiK_w&ftV>HEC*lz@5 zL-&SC2<+pWJG{vGzqM?{{!NwpBc1BA=Wiu0{peP7DtzJQGu}mE>CH}V^43W}P*td0 z)4R+IRgt`}rr1+TRokron}&H0d{9)vHiGgyQ8P-KHVJ4DyAU||G6i>}z$kW3I{-Y< zMCf~)M|-6w*%E2D!iTknT;Ka|AJew)?)2aF7!qJF`1+-vzbAVA$&=udClybg{P4*W z=E;+)@BW$iV9OnSbSj}`=fnNK{oj}0On#i>@2Ma4M}wskr{GdO?R-ss=;r&2rUz8z z#JPQK8~qDqZLrA%=wru{sB*{$%+P`LHr63*S>IqF5(Gii)&@|tRv!Zsl4Bp%1z3aA zvhIzquM1#c8!C()@Y|I z+u8AbPjTp3_ivfSx8=R{(;S--d;+%}n)tO_RnL0Po5s#7S-a)@Wa-Ie^Fl&ouF761 zyjT%Q2v5a%*NMjuZ%mMHFjrMr`>hMvw{Am-Sp8F5D@L!tWwq!0UxV(Tcd(u|YBZ&@ zgI-5`s4poLSlxYf)0shgsYx+5BJl~Vp2>i+C&yEAMnKZp0t}2q#T^5Rp%KOUnSr}P zZM9@0H(5qwn7_P+b`^+TDD%%cWB0{=xNlU+?zO0!_;Nm9IuK2yBvKcPGI0i%oECHP z>O4xB0SS9_g~fU!vwk*^I5b@6ki;hQT80$C!4a8sASg4kKABJoF$9iY1`tdh(kh2` zg9|beX49283B>>x>B!T%5IsdngM?1ujD?U$T%&FW!K*oPPL$c>xhJIQTQorx@T_OL6fV-8bU z%gPj?beoZ$E=WKu$-<3}a*8hpR(%HPIfevXI?WR>h|-mMmfK%`A=>hMesg?&Gl#QQ z^3>rR`JoTk&C@YI`>XcP83VunxN~dFyUG`G3Z8rR`=4v+ds83m=pFmdT+Q{y-LuC$ z{!c&UG28R*ZEe{efA5d^=MWmIT_YOzj?7Gs@;P;U{0qyvr;sNc4Sc)z@ykrg```X? zbQ$jH&*^S*e&*l5lz4v4{p$YY?OpLdFnpum)&9)1dxwBYEVmA5nU_BdIEOUN~qv;dDgo8V%PPK{wT=p|ekl zlED#Yqt{ni8*eY#r^T5-nwQ`HRrM+AdwgeGGSHvK<)DR~SgfxW+C$#`un<|^jCRyt zQ_)`I|3tmNKDBqd-MruH(2RKm7w*x+-}$TxM61rJZ63A>{32vZR&qYiSjZY1BGCHp zXo)2ap=BQhVRp_`58P!atiDHd^z01GrS2-ow9zbvXopBW;a<{`_0V*|K5WmsV6r!P zbW&#n!^&`#NA4&{F&LXOW|k}ul^RhiY+~fH6)%BOMwyW5k_y+gF{6hrAQMQ z4FU2noVZz@m{SK}UyZ9nBQ+S1i=6?NYMT={ghrWoW)Ou3866{4iQ42aRDhP-fve<0 zhj`A=BuEQ~v;x}I50V2X>zPk!Tp|cdNE_2JN?xZ=xy1()ub*5s$Cw0ZZBge#a8ut= zn+T^(0z(sE-xLN)!3n5iU>k)VnluqBz7Ytd)3qKD=yYfg=(cyT;+V`qo06EZXX4pt zPF&kvg8NRgk%Pmr2*wlGwO|bWxZ3cv46YkL^Q)X|{?Ot*V=1H${r_KcpqXY9oaByH zlaWui??e~*LGLbMt4C!IeHx)cpFRU#^=O80Ja(nBk}9QjuSSTe+h*>px~z%bS%FQH z%(+uI0wv3{=ihq|qBPD6`58*PboXH^f!bNNH=C{2*(z^p$45rNLS?s2ug&&5)|u?4 zk2ke^+B{aJl4@=G=pWCgX4fajaN2A5&}P$@A-dvMh>gm#ooCOP2i}`3??M(Nz0lin z?}TE%62|YbvSYBtN#`in{FI5f5P@5`ORnO3A`4>3R`sT;Jv}JNS>Sg)QVWnDG#j42 zp6(uMKsK9H(cN{&*QARe(4#y=`WhxocXv_8p#OCu)xwBjRH>v}F&?fZyp1S22zrtl zRVOft3VT*d;;g< z2Lw3OY6Fagu`v(7LrSYj5?nosCheye^vu=sN+cP_H`EBlwoLw>oe2a1Sp2Fr(pxe@(`I z>&v^Fb|a?jPx!xQ-U$5E@^s$0xDTEUj^1`z&A~+BQ|7?4I|w?k11l*X^_;skE|(vo zVKhI8cH6k`)>mQ+R!Z{~S+`qZ-*Y&*eE2#9 z+gb1GJCCTC3W;Ptf@rH-17Kgcb%4{OpTDBmc2a2V?QpSGBh>OZtb1W8GmWquEoQTdSMQW`e!(G(u2?#R`V;Yl(O$UE_=c?&bTcXMU zI@^$JmP*2sKK!5p45Wv_-a==r_j?u23~VY zVq<+;{AHGmAdC(>Vb~^s=7Oj>RxNYmvOuELq|NE^cXxMtVVLZlr4m>6YP5+etNN54 zpA))G3NB||lA^^&b{BKAPq{rv5DQgKL#B_GhDc84n3&UOsPhmVoI5(?129909EIlX z|L|ExA#!rFG4!V)ELM;96+b^VaX)=W(fx@)RnhgI5C5$EmpF1l#|yru(taZy{no;B z)bB0fg(hVu9T0r6M+x7Y=0E6M`ygiHpX!9?2P`q~hJSYL{PsfGPdQiW~*bc=^yw8rcqT^Ak=&71lSb(}E*`u4NIO+xS;z1hy+>*@9*=lr*8DtA^sfVjx1>Ddc3)R(&X zU1oFCN~kvN&T+lw`3H+G*0%b_fj6)bD=9k?m4ni4m^|IrCu~DmRyu(5qJgeE7)RI2 zIZzF8kBJ5D^|KI7MhlWp_ni>5pOKk;W3&p2>EM|;++So%Jzywz@l~39%n-SwruegB zBI;tBRQa3fjVJIhmEIJTrkh|PbcCo-4HzkBC^|8eSRNQ8HJv>j0UjrvG%$@0I63do z#8F(Bu_Pl_L9IM5_~1g~obCNojli#`3Pf?nCZYu=qIxpuTBx*F!M5;4ovYDZmP$ zw}qG%an2mWfOw^-bp2jo_Ax_^l?hg0wtb<{>Jvk5!qFOl6Hp2gv30TLAGU@~habNT zXX!%vW3ExTB~=!jD0+I=y5AiBTAgHn#3S{X_ZhT z;0VrTOYt4{KP2uyR8$eoQ!)GAsV0OKsB)2x?AhXEZf)e@gQK@2dqy3VX$#b>DauEv z_uWnPe*S?L`)F#HZI8LUr&8V%^?$^~$HLt~=>2r6@XrTJuiWDZ1{Cn#EbJ87NrA~% z5$?8j-(2zS^?j%Ov{(#2T;`YIM4?QQM$tX2Yf4E+!Dl3HZ)+sIo(>jqQ&V$_$-w4ii9^>sMI0|OH!W3IP zRVQ8&V1Nw4x{?~21YTW8hj6G(m*;)CcfpFzB*hSQf>%D9GO$EhgRYRcZm`V-@djQ03SH2b#O$!=tB%VtD3=lH=Y-G0?^ zN;hz~q|vSu8OKCApacu1Th0YtaqdcVUFl_pbADJEKU-KyZ(w5Oo7fuMHT{DM5wg*a zN^I>;yKwE|izeGny{>XPdjxw|{4Rg~Q~tY$Y->%)ms~PS%6W=g$tQpYl2n__iRkTR z?Y`7oaPzNEm3w7%`hQLJUlR=m+^P=qSWG z%9p|N$AD+Po*Fde5n@0fBpxWqQJwH$ISSkx0qL70z>&!{ym`$L{}_w5xN=S&L zYAeZ)*R@DfP#hwHv3XeHv-yFBv!xuD8xAmV!9{MUnr}pj2%!;PP~}$M)8Ypo~tT}{Tq=RNki9~8`Uo#EIB!v zs9C6&9=cd*vwgO^+7zj;08;~PEafCm9;!^b_>wH{xcj`a9U79NOXK^7GHYUg@kYm2 zXJ7yJ-s76o5odL&;L<>SZ`sd3d*SUGf3H_wWt`kJvGC2Vv;X{i@8>VQILR)KkY3-| z9Yh7PXncn^wFI8*}bE;FcaHhkRk+#`3W@ejh-KJ6dGb5&!7+lgB=;>o|a$jQv zrn97>%!Klkn$5K6h1k40g^hU4qT=?x8aSva?|+NgLvHal$%J9dTg+c4fwALd#YmfI&(_ zRFNx`a-dLv9-^hGCUHB5P~jjliL79}_8CIe5tXV>SQJ2R6(2Q{rh+b(N|NW1DF96D zm1LyP(8wJQs}tIEz@uFOq-Vp@yw+$S+tXKQT=YW7sa6XtV^cklk4hNLhT?6Y#FDtf zHLTJP@X!{u`dFCQ@}XjHUMi;0XZ%qyD0j~dcZ+X!H5#tM&c0dBy>21$1VU+69zR~Z z-qcB&I+9*?c87K3%|9x_I;f0NrJ1Lo{nJv17fR)YAu-KyvWAz@x?JpLFLBB+aAS-( z^`S!3vfU_f>jR4Tbdx!+8^ojgAcYF-K{UZ-{Jo0fisIB6ft1+}pAwp5PAaag&McfE zA)fTTstgRhajlF z%!z#$;i8dRk3Xn)R?z$FD=%)n^{ND^#XW2@kS1yOBeBGzlK|U#4m2jS6!Pn#OJO5h z+BQ?zfvXhDX_V`lt6qG1Z0Hx`>91G1KDF8JVPL^OOa0-|qf3QrzIyTOUxhOT-~ZV^ z-y8U%y}i9o$h{@54-Raa7)^e?er2J)uXA8z(ZBB>>}N;%P+f{dIa0QOxM=T(031ir z0p#_WRE^sa5$eh{6!s&nQEIAV#o}H)zDGdC`cStCcJp56-XrvdO^@0*NB{7{>xbv| zzPhp|Che2|Gx&AK^>+JCS=|2k4esihF?pwGLhBzpbg_D7YD_#5ovL0J&()kGFH~Q( z+9ST_a&?eh*yz!jeH;Rkql2b7R&%vkV{l0}*M_v|SGxk~*NQV+i)$#wIvZn<0-NkL z`6w}x4nVodXTHka*7xXX?d9rSw_iSycjx(r&cz|s2J?vd+{mc;Sykr9fcJ>Z)qeX& zQEPj2dwA+*y;~a%-TDv8uBLjL(dME~%aEpc3;3w#So&rA$A~{iUE_bS<&)f>|6$>`ryBm{#j`*8!;Svi zze>9L**hfz@{dX@9;hoz|Ku8VEY#Bzj>-CaRr?{i6cAqPK z`R8s)2&D5+$K*^oO|k5tnl92waYC)dMJ-5$g$GD@Ex^Mjp;wHp$8}DVB?7Tw#F1-V ziRj>_-<|r=H{btz{9(tT|9$z*{kjva29J3`U8XwH+CA?osjS;^Ww`2+c>C1LwnAP0 zVO6I)ee{dMf0vH)rD!zPqIOh+7ltM28O$Jj!F#Rzj#c9AJJHWdFi;YEyzahUmTKQ; z&vvGw9H#&@o0#z9yE>%1mWV~REVfG?IiGM!);xBcJ=~R^_TWw3ADjQB{UeBq_4SEn zryO(YbMKCfd81Rax=+s4Uvwp}h3Pz)0n&oOcQsBFB(W?R|E^XXx9me^pPIPyNUTZ- zCryKn3U_m$y$k|hgP70FRVuhcN;;-iqwP*0k|?FZvhDrDGuZa0(C{;0Y|Gq3;W%Sx>9m&(eX*3$Os{o(A-eET+t-yQT0xNh&SHbv_l(-6MRtg}U3)#vPj z*VT&#s3&RX{Cr~`NrN9xBpW2tGNcqQD$_~?EY)R^hD>Mxt{`(scPt&bOBN!OcldEd z{x!ZCH1H?-kPcO!JotJ4?l(ObuY96EpYzA}Hh=VY@|ELnwcP!V;{^^}gm&(1mx=4! z&SeGVS(Tp*=3E(lS9{}AKQnmfmQ-Ay6|lXryG|+0`CMqv%1+NpvQ@>qO+x>T=?Or!Y^~B2YKH8bp8XoeQ~bdJgmx298;wyPu$<=KW8o#CUYkb-Hr~r#*gfJRV~>1 zxUX4Y%}O$bK2!firD4 zuluN@rgF+rs+YXF=~CZ_pKEQjt~JD7$2t0SvQ@D*Qf7TL?=R;`?L9d;L|so(Vow~m z&W=vQdZBbyp%(eXE)dES9sS-wfaw!VDSALbSm)rU79?vZs=OR85Y43{x0ShUFo|0X zCb^e20`D;7=H4R z$WUl7azQJ+j_6)QkTNKgn@2#pw^CdxzEnV{5QzSFRXVURwj2f=> zT$_boJdiVLiWmI#)`8*WPulvrKpHcW~cp{C(@orW9+UtNx`Ac2qpNvxd6s97t?B2XlOB2>Kxz~ z3)I1|pjbL3-}$v}br^>s-g8rB4_~oeXKN+_Vo9=4}BdFWjqgB`8%^k zH{MRWF?cuL`i5fs1m?4zQqntx)NBG*om_XE9JH!_=dTp%9{~OUugtLxN7`$U`_#LB z*DD+NE)d!u>bp`qU5yFNix>J}?~pq7C;u8`JaN7LET(rR-CK!D1>F2|yk74Z?oBO#3oRy8v zSAdWpz$z9$wVcelqOx0(Ym7J&=MQbSm(J>_i_XEpTeb+DUnZ+%Fc}VSIk3bqsV(Uv zGq!T;op}JSZls;$eDRb*E5`*H%^-_cugX3XTEb3RkhQt9N7BAjY}vQ>AxYH6D&1jB zxMrCY<0Yon@?(%$5>$+28Z;)tKnsr=0WY_Vbu?3eM1Y7x;1}SY3>;i)t+51Q49Ua= zbW01;QS!7UX@RIRfI>594#Vj%$X4j1K{exquE0YFF;k0mtOxai8nS$1O@bI+zpOTt zQrl5$(lb$COAE++y_V>F1n^WV2~)`Xf^Q1`m*zIL!6oXP9#6PcP|v?^tMVj{A&+SAMlP4+p6+j zPkuu;T=JZ?xb+$rz47|jz-ao7bv6aq&(-iD=nRlgj82c`T}fN_vulzBU+&40p$FHO zV?J39XkX*_Kf(w4ET)szGo?)x$ANU`BXA>vygZ@#X4HvZ^8Vxk+T;6B^YwI zeuWlXN~hyhEdSi#pIzcj2<9!-$&u|Goyv6}*>;ieSv0y*z*mHN}&-=E48kDN1`r$+aU-*&`qYd8^jZt@x4C1n-OZQoK|#+`^#(j9*x>w20)3<2BiSt8~lbQakyrh zB&-CFkaQR|Y7kL$gw&8K<}BElV6?QXfJ5^k8qR~-#B38r^-7!u^wMT3hbI84d5v03 z#OMhz4;CP$qT^=K(e)t`gN21AAOs;v*31*RWa;^f^F`JtZcb(_)n;%#lk6m7SMT|G9>T4Nv^yx9(L4`THnu zIv0JvZ_>Hu&YILe*M;|0?4^x)-1Zjj_ec4`dT=_Lu?0d` zgLx~~k3g`fw5o!LOii$8e|%;8sqsxNvi=pL&}`jfIz!aNewwR$PIKV@Y9#hZJ+15C zGVb0N7Dh(~t7bp0#YqdiUqpz7+dOCH66vm5wy`NuU^sFn!_c7I$Scy57lsvxa2yb% zBzN|^d%Sp*LQ-c9%Yb{rnq4h47ten^Dr(|3x&D;tj7q;5zf%8jCS3b`+bNRby77X{9=7AN90H#8AzK=DkH zm>$;1`V~sI66s>ozw8Gwfyzy3NG}tkWtq!&NU^*$Gy{=AUh5JJJsR&?2uZZ2(V-I5 zQmPP6wvuA8H&%@ET2@$uDZD@z*34;_NPr_yGBU~$wq-b{0FEP?S<#?1wT;jvlV)Hg z2Eb@~5|4s{NwGToER7=jmO(t}W)@6--NZbbo8TcBRzd>D@ooo`a8PhCTaHm&*|kMf z>eRz`po4`^AqyAG81hVA(ZmoJGrY(V0Y(mk6E?Kkqtw~-<=1Bq>k!?H-gr#4z&;=X zG{yfH9>uI~46x0BZ3xyi`WH``1}HD3PoC^}@}%g=lb4=6@qL#fwfiOi1Tl%V!VV8_gn#jhh*ELJAGpo;`!6BSS zFO+%GhlU3f(ZM<;7N5X?O1=k*4^g-ac?IoQj!RHd=2?mz+m|)Aw?QaQ6;LkUBNR78 zVwjk0ZB(8n8uBh^@d9h0D=A=;DnoaqEJrhFZ9@L?M@P}Ff!+F^v=^}wtbb@J- zp$7QTQi;fbHM3mOkCADuR+UNNQj=*I$sg*cSdGcacnD8qbHf~)>y)&wPppAc)7d~u z6UW$5%U+E*rz8HW157gh%JKSk5YOj)UV+Y!wPpj_`E@=y<2b z**#+dyivItj?#|&-VB|p6*Xh`IOopM2#CL(b#FW-G2QihG3trKLCzZ&_hww4gLxc|rZfn>-<~`R8|o8C9Wz~4W6J$&}fj6@-Jd^7*gn}STwrxLhd8rs; z_8^y-G!bC(YP)PCn9EC6K{K<|sAM!IVS8HxC2Es8g!<`FSCXu#F4Fays*9Wz3)>Q9 zsD{)6J4UI)uqX|8Jz9%uNiZNB2)P)yom zp^v)tC)qzqzVSv>}>+M2!-=K2xgAH&eE&fD0&@NqnwlW5*8 z_v;%QrRAxj2|xJzD>fSHu=C}^4zGB8A8Lu&64=8>7M0UZ5Ea*NJ^zK`)95D;0 zocX`La=t|8z9F)P?L_g@|2=>MXm?Tb{igaD=~wI2Y1ZB9^}G?PrgACP1i8iym|M8RnSPCJybq}CR|AP?3% zDRZaG24sq$xpBBj&_&kxlpeX#J-b9-g)m_WN=d(K>d2MX&2MgyCUm@3Ct+A^txkX# z4qk+=Hp8CM8~{`AdZ!6!qx8!J;R$W7B|EUh7-@n;+^~Wu_be{VlvDl~LQtv$-)~#G zL5b-p3B)%xGg^u+GNotfGQFLw*J;K(UyUVSQC5;77vA)ut82$2cQU%vu=HFNCe zA?p3ZApu2W=pE~0n-5xTH(tOTy1fVU_>Rhq3+2Y)>zq{d+mpkQ^qePD{f@g&?a$15 z#D4s|r&{zE?z6Eu!S}Y%rW3>CcvpG6hM0C>aS6P-L>O|^m9{hDkqVo=vP@vR)DqNI z$2%PRt17}POi-Mytj`{Ia63o$T?AxuFhQgd~364C| ztBUh--x?e>3$}_6Rh!Xt-{=&_AFs?72b%X^d}&fS%4WOTrH~Cj=y;XbEtn{y1+UlR zL1x)*in?B_-;)1B`+hWiF~|-Mx^J74?LsmpxF<3Ng+jJ`W^Lsa~c%G{G!5lh0R zjq-$bx)MuSNvWkHu^iIcVzWL}Dt-GJv^gF;>qX!Wft~SXFLVZUjUqc9NFt`Hh&3ui?#EJW!R*_+R`wQnIgoy#DdPWG`I`w*`piJ=Aagk zNr6Nf5#{-MlZjBr9Vg$vW}N(G01s4GK5fn(mt${Oepxj>zA8>YI@%34F8DezK3?)6 z(wUrNFhf+_5G1SanLo+f_ydT;%=^I z`+5gmu4v(O?X#sE0VjV+Uq+*aPlZWI?M@C)v@`inpOMTcXuFuys&*WCI3B7B*-N8d zbC*U{-^=sX40hH-poFW}JCr4&&*gcgI%*KO!Ei1zITS%lRb3XHQ(h`v@u@v+R^gf? zCw`h46blR{D@&@uht-BM49ywgiW`AM>W185kds^rQjiEZU+9@yng|jsl9}Wk>sLsI z1D`R6bF~J-gfX%s@lli9-JFs$mx4nlLX*%ThKh~GI9Gkz27+giAQ)$vmLi*tSH*Xr zw~&%^wM!>mvh~8Kxxln4G6uOGX@(%K^g)xH@sThI6BFhd(hUbM>`$N+MUZ`%1{5iA zp;busk+1LgmnM`fl~A(0~Q6;|JsVKKUZPu zjA+xHL_a5q+LJ?P7Mt+alJq|^)DfJWk)oTAe8jA-c$O~ej7~XkDFBH z$by~Hjj>}zPd_(Yw7ABw_+rt7E&tp5aBX*fSpB!J6aTnav>RPB6m46bRG}@^-n8GW zE<`4_{CYROD?T(ikR_H{aO56WhrWGB%A}#wO_ATd7-=jbyZ6_4Tt@ zSFq&u94a=O^DlFALbV1hn8Fu&ncMtO)H1)q571o$?f=H?V@G>Ol)Y6(eWQA6G&(rX zIyJ&@Jsld%K2&Ah?;s8XY7wL^2#_R*5KYWZJZpKp5=d=xXJs~z7Plr=0R!dV2bFrJ(*9kVS zSI86QwK?)7NlMWQi1cVIU4f)aA#un+riD4HK@Fs+rC&?ute|=AGKsvDxRsL7EiR}u zyI85CpaVv-UdwRQmN?i%kkd%V$Q=^GNbvxtvj!U6@KZeGLke1Yu~dYWE%5BF`gi?i_j0*#5!*3 zk)S$|w(ip(zM18r4(DCV+4_F$DTE%EAOBdOHtOn2;DNsJ^}X~~W{|HN`bB~QFbI40 z+JAG{qe#RB(qMuZe_tW>7|OX_R>zAOdg$=sxny~cj`$Fq&*h=mBHyk(_6-fyu=-p2ftmxO|Jrjr$V>;l~=e^4ve^z zU8g(l4^`@_&TS`rs9p?d56Lf4#KII3S54scjQbpan<}B6xqXi3cBRUl8f%o-kujou z-M)|~6wnh=|2{XGVO#cT%DAta^zku(D1Uv*7p&40qMO$Vl&_L9{^g~;&gin)yy&hZ zX07VV{iPVvT_z^hP0Rh-@qL%aqLHa;Tf0_#;#bv_wE|f;u(#c8l(#{rl}^U+ehSZM z+Qz{eg+^|2vQs6Qv;DujMN76(`Q_Sq1U1<8(8_z7HY z>I*iX=rWIWzATy#BSlc2Vl@_|r&*axMzlw3)nd6IT}>FpDtfc}ZfJAP zN+d;2NplQyvEmvK7VyJb1~Dsu{|zNJI3&20;K-UtjAxQH`hqJ zu11BSvqKzn{!jOKF~}~1X2s#xEpgZK;`6@UhPhl!uajt${B&JusmdOn93{p)U!rTv zp3F_QS2nP%_TK#Ww~RYoPjQ-!kDaCKo^s~hpZ@m;!@1Wk6vht*->F#Rov~#7cblUh zgU{i=+8m(mLR+~NR%mnNKY614uG#T}Cr>_j@?`AElYOW69b8KJxMlo9$1ncp)tg+i zId-utG%m8zTPyXy+9X0Z@_~3gbJibuqjLK7cRw}4sO(L z)Res?|0q&lDQsV~S?%X=7;~Q*38!yz0U9?Xq=gT3Q6W9t9y?;DBl_mI&n$lScjPcZ zF=o}2QId6Nz3BgHtHT%Au@%(?Xz7qS^J>R z@5TW91qWKo?9wzL;9*L>p6r0IBxC1#13S9!QBPi;a5&E)&}4Y2w&<}WPF5BLrXoPW zrUQMfEf$4o%%hLhLjMHkhfQ)Lh?O;+{j!ERm~5mzgd zyJd)Ib5W9n7*ItwC`EILzQ#i6&%(8Aq(Y;YsZW*63It3GhO{IP+=Ut{0!I0S4wg1< zNB!ED38ag3(d$i81(IJi>CW7|*Bc(L;UDjWV6W{Gj7@J8$4DW^n|2}@)zMZXjsdK_ z36O$mZJ295ps7P4>W>Ouhb7a1;6SCA-0c#d2AOJH!CV?a-xqWHFu2Y+31>r__e<0u zxrcG`(BtYe&pejxsXQ*A4w_)3_1hh)d#O#3i}|B>9M|$62LFtIkt`g~w8z`0H}Jno(o4O;fbaZZ>U;PO5oQlvFq)`K%K7#qnETeayN{HP2i@_Y|4Z14D%Z9% zeJL2(>VL>C&Jk84VT(hD_`SW}b#sP=AIaHI-sbgIO(;jXIy#N2utTVI9<{+K_R0oF zZtcFAjSzIx^lKZShr8hW!q@x>(R2}}Bk0zx8d!2d4ns6QI>5QGb`xgPt55mMUSAuc z0^hBRMiP3m!Hj5E?O5!G4FnFcSW5mK4Ve%HA6{D<&=r@YI5tCJQx17GWPi|Er#*aG z<{6#~;o#_U_xk&~6N@|=ljH>3MxthGf!kRlHz*Q8DcTaG@LG~eXunKJC72v1TcSGP zL^L2k0+@h^moZbTR$h}UHCVzNQt@jrn%5*W$Y6c|DS%juUM9>~@x4}vLh#9%sI+K} z6X&g&RbnxEHREf7nve_KS|cQU0mw-K>|$OE2m-|_n1ga8p=FuaDIFDV;c^TDcc(>x z<8UxW#9tyQiM3&rz{%)=v>zT)CKwe?5I*qsp!j=iu@nb04ZjvLskL`VlTP0&9aXF% z>vT`Y?%Bh`3>i0AAbr*#>50@t=33Eg>T~cMnO=pxO8f z74*gGS3lJV-)eSUR-3`tyBcp4x-idyJM#D;AlY8b?j0H9xvRg2QI$D61eda)Dg%HdG>qb#DLHxC!}Rsz8FN&(vjH6q zK?BpNg78q~2{uODql0WU1{{OPBtgow@SwWG_^7Eo5u!3NY-34Di4la%Vp6X$kpNnE zf>WXe6D&_t9+%G~KcTtGXw&C>0jy}HgQJo2LSnh`E(2KvA#gurpnZNoa9wp+_OQVT0m=OqPTx!T@(s0GZ95E=} za*erf%{FV(M(GZLDlc|@qd-gm+EW? zy@wAP0>#LrUwqqtrS_?tBDFv`bsLk4wsNh>T6eUNxM3zrxw7ptIV`jk8Exvn;qphS(U%78ZT;FH1c+TE>CuXjM#_06AqS8x?_AoWs>rJ}U zvWo^(m9>(qF4cThmHbvk`z_VTK6AKR9UKUlG8fX7&CU1w9PB(bxQ({108Mql6Oy?hukTqLI0;EOaV`acD z!Fm{@&m<@f1p%Sbi1gD+%t?~a@akL*;F4cWp=28A%IXdrNoknd+~5>2n$A#jF0SyJ z!~_mCF(z7~R2~=+F{BZ-g8i)!<1)oVH6V5@bsNsgsUq(@7RbGdiBY0F@yk#aWt+l( zO9-yLlVQ~iIh^V~cuvphRv(t^Ox26YsRITim>SH^w(z~zUVMIPVQ74d|F_kx!*6%~ ztUL}5I}jp(M>W5?wUP(_K_wxJ`Int4M7-W?Z{^(BVs?E}#N|MOICiv*n%?=< zxA0eFxD(=08E?=lo;zS~1ko0|>%oZhT{l(_lQinm5Em_6*aFjbm)~JuraRSlPS9lyfp^n35&7OW{vYi*tez>KH`E z(}A0b#}Xfz2q`GZjj?0`r*_(b3uGur0XTdO*P6{a&7c>Gx0e|7MuW+HCL=u9)C+BN z3C}q!V91d4!v8ZB)@Kn#EE zpw+H-Ze4(Y*g1z4JLlF8!Mj>(?^k#2ep_!>zn{4K{oUhB2qBy#PoDF6KF{a#{-aEX zV!c7n1A(W#7)t{6n1w9`{;$Eg)q z*syvEn{KdE$51-W8Cs}>--(m3wUv}hbw0NX0|`~cqVj>7$$-N8q5MRF~1RI^88 z)eGohhnpogziv`}7MRxHU|mRxlk~wWS-I{as{#5zQ>?*7BT+f)E-fa|9H+YFV+|qp zuJR+zoq5AvV>1+&UMUE|G>hSa-jP(7NDUszhmO?s&{$woQ%4?OhmG8Bv{mPBmYn&; zSD#O4oR57KK4{zV&o66+YHb5=79A?OJVA(43*9f?zfv}``eL^2LXVZSi?d2GAE9y8 zf4lVtfsxN3GnwVXb~y_>&>N-Y(I4ekc)d?4em+p{RKLHnCnxv*+waBiD0o6VDhgi* zj?Sc6X!!OuM>^8+wl6{mJ$`&X`vVsCSD1TGd+?zAXtg9M%tg)=V0+_R^41?f0d+7i z>LXF(wG;V)jes4%hwY(ECqC-Dnqi+x@cYB=(C}<-w2rZSBFeLZ825y)zWnS7XTbgR zakclxZl>mR-I%Sy@ElQ#5I`3Aa3MEdiOnq6evvS|*Ka>tWiI?;qHtEG^gS=6k;GLxGl!R*_f4Zt#=GQTU%qMQa~hO$Tn zwJnS3EHY+`GqR4!iVKVU8ABQ8ah$(vl(n~aXcO86E!8Otbf2SS=?MH(4NvI=;l$1 zOJERLD7P9+F0lk5?QVzp2S^cw%q>UI3gmGKQz}vs^GmNRiDEnmLGjjn{Kf=Huq18- z3m`I0fC#;oG4=SGEjv?`j8yRmh%S182tM7=Ocy82yAtWpEvg5ViJ$#Vf5x9Jepirf7ymqviN69 zq|crqa4h@F-mh+f@YkEcUn{o5Pv0J zs=61?Z2pBr$&L(;U6$}lziw!{oL>NCnP?>>6`{$b1cUnTxE`0VF>r7sI@gZStL0&ID$ zo!ha0x0TSr>p0?93%IDhK))WpwjEpisOae9SKdO6cK0YA-UHqQu6?D=89BN_Q6*In zZ>Ta9>J#jKaoAQh)v;%E7D|T716x*Ay;dVT>qm_zz^2+JldsweHMU8(G#h!X&L=r` zGO#hOc+JKu6MsyN>LZe%B>2(K^DqK}bjRl9iRZ1MZj#%PQNKecFwXt;uM?epBk;rZZwOWD{OwoKZ&@uEaIN~%@5w79G z&ma%*VNKnL>o*`4o(!rWc(YoR(#ymV%O(BF1`hsQ+@Cb^_de_~@3+=vX5vAKQ~hv@ z2D=L-t#e_!yk+C7O~r9i=|xt3>(t`_^eB7fr>3$Ia>qFt(S**p*Y&SK`!OE`-v7aR zy!Y@Uc!>3o!n0l|mAnc?kfsL@p!_lP;6dOa&;xv^d*67XJo=1Zkp19-!uzx$@!s)e z^qZI8ZgYHxej;O_kq>#o#CMKnXspMryRfR~uy=L5y-G%5{+xlvCFStzUR@ZkFJH$V zIHjmrbZ#!}_Pyf3-FQ89&ZQbg&h7Cp>7%m986lP^JiDEU)P7QH8$&t??(?4}dHeP5 zifG5+#|RacPjxHt@Zjj9hSxW5zGjF&2mOf2QO7z7iJb4-5VHmmNN%yjo7XEoH$b$l zn%pi!k;baC^`Hv7TX97#yMOKdtM9C5%Kx_Gxqz>g^w*5Ne(S*0A0wIn8i|BXtCRuZ zi^J89jx^LH_jk8C^F`1q!67kH+0PpP1p0RJ_?Pf^kU8q=z8dw$1#&+mm1_WD=B3Y zC+cbzF)9i?RzQ74nNJm<0#IPb++s96O(^GB@?}!>B|#(zR5^F0*#3qDq;@LM_NVa z>Qb*g(KuYLlw;q)J+orG$}`qYZi(QTl?tXLELhpwYu4GU^RoAjqS6$mv8q zCW-gE2fw@uVl>n6TMEDb`yc!UZbW$z)K5~Tw#~2de17Qrdp~?_migNAOYXgI=4Ufs z5~%yE6~{|3-M}xiM)4=yZ&RW1N_N#!8hqGw>|l1~yMf{Opbj}*R`Cs^9J708VcgPGF(`@h#Jxbo$x-n=~l(Y6K8kk!lD>`6oq#W6~7+b_0CVwV(b-I%1Z(vp&`rjE72D7Gm+pZA!3Z}oR6Y1P^}l%!^{^qT;pCB+2ElGKErajWnTpduzn?<#RuA{WS0 z2#mzmD4wloRcj?vdK1ATQt$Q6CLT^7;=FxKA9LkH>5UG+7%@p}Sr+`!L8k$kK@Fvw zR{^k&oI!3qS>~CfkNKd-WrspSHivK;cIiYq@}h;~-z#vvfdT;`U-H3qFU+ zqZ*7MF&1e+dK=Nbu)7CUQBy*{X)O#}47~ZfS3CUV`BzRH&od-A;=e`)1BR5^2g^{#{f!?2KKhtU*yVb);DgD_ZYLcZ|1|e@A~+)+%=mL zGS#4d;S%~X9D zA~*4O_4tgE6iisu*cA9iWZ*Kjy&1q8zz$bn;5DfxSo{st03dFv0Q_{880GW~YHhO< zo$0~Y=6OQjRWJ#bcwh@D25sRZN)NfUtc)Ut&JY0RMa3*<YtdCbN2HdGgUAd>6Fwr_pW@`0of5fJ_R` z&Wqpdjh!7Xf6|6m>r6kGLL317ZRvRjheAKI%0^bT#b7NO5$9hN1~9~Xx_ido4qd)H zQI}D8NCbUZw*D}DBuJ(CS873wG&bfScH!ydBJ8Orx}tBgiS@sxuYBOtd_x?MeAO2C z1bY0fC3z@7?t`_}ST% zuG1B0EE)42tuJHaSUe_QJB%gxw7$~=fnmq$m%tu{b&qDj8i3HaXakZR90vi3@eMe4g=uUx8c&*c8_Yr{- z4ee0c??M-~02)|_V8YnJZnZu?p$Pd=zNCrn6+DyDp;8Iv=#KO_Qv#xr_HlE{W+!D_ znOCO6h7Cn}%(Mm7D~s$r$`^G)Ahq8m6`9jUrHkd$IjxARCui+dYCJPhZ)f#_fCdd? zP=G`TV{_(^QuQh4Ap^w1ZUQ4hRRIq0oETy;)mj!#E{f1DPDu-U%QuG{eK>EB3j~-5 zegRX+C8nf$6C``}D;;5@m!lqoU;85D8 z`+xeGUE%qUU#}OXx4-e<@{8_?uYW$fB(L4YT~%|>QP|nDXVG6OWG-naq?8;j9o=4% zPliuy%mi0Fx<)DaBc;FA8P1XH5ZpiOL!MeEORb{R8f5b+EN;sJ@ zUER~e9$7p?C<*93&CY(;~@nvMgxfIQKC7%0PS|U2xQn9p(k>;o``LN>3=%!}q-}(R~ zlj7w8K|U8GpfbtNq@zPKV5hgtfMk%pnJ$YskOg+{M1xODO=&;q@X^SH#a$xxqV}1U zyDb2`v0$KUfFsk60S ziTiapq}ctwbiqz43H9LUVr&! zOKp$ey8W~$g3yk*{bd4-ju7$jg)092Q-?{qwy^jICA)a;7ej*?vGc*PaH}sgh6z~y z#WN5vIa3X7HrK#E{JTlxU;k(*OZLw%Ta79pS~7~iIE+fc zG&9#Tmi^XtL{r?=%5{?P1kpK|3bsJ5#It$phjq?&msV6Pvpq?7%H>$Gx!e*TCztIQ zR)v47mMrhC!3wbnweQOc7!vbdVfmBT7P?asnZV7FqPWl>avf1!a9E6UqANMwP_cv~ zxUot`&ZKb#>%N#e!|Q{>H89k0br+zF!J;gmcI2+-=9wV`HlEpT6W~nR3+z%{Eo)V& zRCB7GL!KxxueJyy=`AUQH9xHoC3x={J-k;k5MtFtzA!#P;J`dME)nGO_H3658SEa? z2WoXvq&IO+53R3H!7v2zNpge9kvQ{JevIf0dORBFnxGZLsJNCCZ^_Mm2zHQ18ue5c zXaVKFK{~7iG}8cP*Uo{7#f%-~t3Qnx&2uipQi_kqo|y-kG>#BipeSIb6@`=9ZnD9S zSO{rm{+?bWxB(VFWCN=dq00eTGFv_i@rdG1UJmox^36hC)A51`xMQ#(js;3Y?+;2f zD;B7CS)=}mgozkU5qVP{J6e{S;$zx&M}LLYM$ zxiw{8Td92utzJZW3?So(f4bS3Y_}HxjIQuG13jr!&v(XaLwu;dN?66kpTnOV2R1aW z8}@Ss^u$@?_m9e-K8{#P-Il$z$ZX_KD6H9jb!B1v`0d?^adPN1RZaBS8||8jZA&tpW>Q zJjwf7?}Exah*o6#Pi34BY5l=^XG%P1zhn+Z(`)Nt*t0>KQH)vT2HEuS!Q?-wdJ^=cN-$eo2qaQRp*^K#s;c0p2K~ zdXl37QcbfIGuz-$7PEF=i!75R{owgT5e4X|i!bXVj#jFeRKDz)YD{17jFpbRQYuPK zq$I*{t?2b4t60)OW2FA|3qwx!GyXUUg&o9$_w6zm766u+iJMC@t68>)MBr2qAV6QF zuWUQ}>D()iD1OuH>)PU_4lNyM_qy?0{@lzMMsNJ;x`)#ZPIGqjyF)6e z|8)VxNIZ$~2!7|xYf#wffAC=7!GpF35B5KJ@Zy69uY*4CC))d8ZwnUu>YK!~Z&ls; z$D3U1!GEr8{1_m{>jrRH$g`}&elB5pf)H5IyE;64U06`jSrD$?Ro!1`yf%R9DIrxA zQFo6n-Kt$U9dODM>8eQfG2U8n=x9$h9mn2laoSZWrS5{H=RhRf6mKGO2e|!;ooVe_mO=2 zV>{pdlZSx5o8pQ^NVX;%DP0M6PNsV96ma!$b@HUX#pCYblTUIb29l9@U|B!X!m8KK zte~yl^Go5Z`FkD`Gqo;oSnZ>T($fic6&HyRRBuUHn^0}iC1+!daJ_<7s_phzI~l4v z2`)w{@Di{+=qX`ws+(j;tskl~TTA>?OW?y2)MhBq6qX{2phAZXh%~)btZ|>S(c_lI z4H3CWz~);J&13=!!34rZ@RHit{I0eRNF+&$5qHph`U*e_8v3DVK4oVq2{YNkyByGJ z6lgTWPG6zks6@&ohHq=;6AdP{#KjXi;bSzk-Itr1S#Upmx!zvH^ zFI<&pm_6!ws!h!9cJ9rjlTYkNlDR1o}&_kYj9$8ji&0X$>UK_OG$OQ3JGM{fQ(;;wyAzWb1=^qctXk}rSfIUpFhZVKfT2IpeV z2^Z%e3qN*USgRlRhAN5LyRcWrubK=AjKI3Ouhof9|($ zseQZ~Z5o=8@D;F{IfP~-JPfpTSo4L_QeFm<#U7`4e)5cx*k*dA?=lomO$d@SgRc?*9Y$pkmB2qW0ph3#AJf?74Fv8#9&bPHSKNcRjTYoBFE zGR>>P744W7iy*g^cm&8g9~q^YolBw_gFQ;Z6er-@rshgdmmnQB zC$w23f<v<~Im z;*HNlnIwE4v6E-!G~)e)uY-S-$o|p3ccYQ%*IdVsV{m4c=G<)(5zfUS8-E<``$%lJ z^R7J5jS#zQRWcQMLeoYF`Z``b+m|ch5NW~}Zs#!K>Mt8lT4RX>Lf&rJOZELiSFro! zQ=GZ_a=Jz^o-RW?v0nr9@uMtXf0S+GGy&GuQ+u-3Mh=9((r)kTW8Pnd&`-5TZvUV6 zvaH9x=ljyCz53_onqczcbNk<5y)$v}pKx07N!saMl)uGP9Ub!Q6cQLcnV8_4t&`gXsMySnH`->G7ccS2-ipbQ zLgDNL3ja2fZLI&6d|ZM;yh?(2=YNL-N<|_z<~|*}V$;q+Ux*)QtdFlrjel+Sw#;@` zwT9R1d}dG(Y;{ZuQ1AqLV-)eajcX5>>#;Mu@3|M(d*M??AfJ!SCf|qERfCHjG6wVl zVGq0V5NGlEW+Q0IjO>P%6kJ?(6iuo0T}z}zRtQ}0V6FD|tdd7TE@Z6eg}S(>D=DKPZ&NRbOM4vGR4 z#3h)CBBBJ$&2pd@V#ISy8W4LgG2$Mx14rO=BdQbr;YFzlTZap6hzU-~rw=>{VnOqztoFJcvj`7!{mo8me$jbjoDq8ZieY%fH zrK|N~l}vohzWnxD^!+FcdvHl>K#Pnw{_rfg`{@J7=~VM4t$De^R&dQ-mHFZ2LnU|$ zO3T`R^Ut;N@S&gE+5<(B)PH=(CcM4!+*Q@^cj&74u*|Bi&DwfXI9Y&%k;+bxrP^+h z%~lG_h5Ef;g!t{*nJIY;6Mb|ea@%ZIC$`(DxO2X==to5aWkVE}cSkbnO>BY0Rk#=2 zh&k)j#I@NET2CAZLYYUtO6^Pa;@oSGx{TMpXv{mUFh}pdKlL8njO#kOR-!8XBvk&`{k za~=muybF+1P>uvs79cPxT^J?6B`Y9PsR)9<8M|BK+C%9M<3w8#_)x?SM>M+s(x$aI>ZUfSaMWz+?uuo1 z2&i-PrWudV)0_Gu;^b11Wx8{Vec|Z~vEQNnUVY<`<8PY>`JFq~KfDLNu!V|IfYSQ!8wS+nJINV{faGyut` z<+Ld>y2|wY4xG2ePx@;J{(gC!2NOJ;TC+?KR>l=UdzUctz_XQMN2o&sCpE>s3(ZFO zaPuWAEbc#VXW33U^6WFImq@UWF|+wh`x53^yG&;*I4!nn(5O!66&MH+noq(J&ClK- zEs%n#6N-6+ujs)7e1#-Z+~+ab9L*5hEGTV8Y-~UgriU@Bm*se$v_wF@536TMNg!)~sceqKJAQM*cWk|X;xF^logPoXEBImURBVMne4TS=?t21=Xl#jy8_KCI zY=z4wS1yWFAMNW9qjg`c8hE@N>;z*EhK0Cru!=y1Kl|=>G<5kgW4d*9+s~}FfnTSI zow3t#+|^sR>7T#^^M)=D4$|l=RPKjr>c5U>O|1y9jO6`WKm1dt_w!f2{r(~D&^L3x z+Wp=qe_#H|BZyPrx(_^07J9N>Wn$E1%arL>^*Dg$h@zw955uXk(xPNo%qrIL*K9`y zosV~70jB``bVr7@m9HCJ>+O$kk<(8SGlb5hnF6bh^^ns!(=!|4^*~M`L^HaLuYHWJ zjI{EfSzeu$tvXPkPpyapG9L1c;0Iyc&(7q=W61EjZ+it_JM;W#Ma3!-S;j92NK=}b zF{eTqi0fxr2}-I%wC$WPJfMOq8$uyU76B#tBgEaC{J^^1kX~FEtH_z-NO+d}%TS284ig+T6` zDTNk(s-eTvg|JQO8dxqBZGb(Ts8111uNYdSgmrs(l#$}HVxpo4Gq*p&s0tkr3U z&9#$Oi$t(T2Dk&L3(>rtcw{9Bf&c_e!CGKZcBRKzG?z#t-pi}?ibI^ANiyWu}mLlXh|E^VA-wP8Ex!~Lv@!QZzO!+ zSTEq;kDXF9Hd^=i%R#u%WG{V5o?f`zes;5I^}(U1E?8~0qeC-ajap!T&JMi!jU={i z!B*c}jn zo2sKQ3g+LQ$ECA9SL=%JswE+jgnz~FJeAD*uoP-W7MZhRi!$4}M8NcX-dL$3tPyMT914yM-pY%XcR==S$r&1+JoPLq_JLDSpp~?`Ze20fpavK zOSwb(EF1Lemmdn6M$|^rKFZ{tVGb`itDHvyUZS|GAggplyxSFUmqdZW+dea+R6f$A zmwRLMB&q6@8rN0lb6}#pssV)R9+}aL4oR^$$OeoJDfua`J|&@b7CdqlX3r#{)^lD@ zN^hbWkD>IJ#Ap@Zy%I4KuSy|qU_8Q##0IWyM!I~#)#LS%n5@&;q2%N0$)bDuH%iav z>RN-UE==Is6Q1CFY7bwCL1m1e2RB?u36%{{spJJQ#zzt>nCp3AnMi>$A!j0%W3mYC zR-$bJO6Me~Q?s9fG7P;6z-wvk0_Y%$TL=_@IuK&1fWIWRNdR^}d?l6pZol4T8V8I22b9hl=Cy&5ne~#fzpe>$UINRUypIJAP84dV)u4Rj!RI znTkRgTTo8jN6LylfnTkvtZ(_-FV=7fL(E6*U;&*Wu6r@K&h0i-!&x)MAHE8&5e2>s zv%6mm6j2wg-Xv`4=X)Ce(=Eg;K3UY z9?U&>aP+5t|E~|W>4l!}^;dj#_tT?q+9l-6#@Fu0yBi6=CX_Sqp7Kw+PDVmMAx29@ zSXctq4dp|Uy|%rld0~xw(jd)YJNwo=Ay$`x2$8zr3G&dMQ>i#udS)Rq?2vQM-C6v( zHUt-_GcTJD)FHd;ME5Wbv-DXK_9#DD^zS)=6j$ox%xkTMP#@U@wQui^cp=J5xk?CO zQDPgf+3QpGLJXd`{Z}LZcDsPzbGrT5VwDZn=hS%Daj|+`U3ur8@5sR+7O}$s?%k6- z4Fds5VqliSe6D4DKnZMIuTst2}K@X_p>^Cey;$TgCmYI4skYP;LS zox+4c^GE_Ry)7eptQ@P-VAfKHC^1n`Ew~6zQ*vu}>}uf`7HAVQo^u#(BlO|r@K>f{ zf$cZ&au4oMHJ+TA{Ct>=wV6r^$8NQfCkPl8So;@?Z*8@!Itu)0k0ryqgySi4@%EeS zD&O~7R=)qgH~&rG_xlHO@HUh9=+hD5mOEC&aMTtIwd4uunM#>O7UQVQ`lp#S=R(1E zdH>Z3as3_K->PalDwie&?F~X9qPE-sRGAzgll-ic9lq);7(Y;)m$oQd7XHxTPQq>+HD7Kr%I4CEd<9EKLVBVA;x@o}kQXu2f)tpzh_xsI&`SXoEW&DC zK9?$6G`pe#;E#wDO$W8mIkS^fNZGE2ij#6GL^E>*dZacHa|~@l~(7&yyGO+Um!$vrY7DS0jxal2$0ThY6dx zhDQTqj=BJZcNDvn>h9kjTva$0_P^ClAg&$p@GR`^TX|HU6O!K6EgF!Ir-!Ra&EnXu~u;vYr0lblQpPHII%sRD2V8E`I2`* z_AmT8%fJ3E3jWOlNhR`K%a+SK1(It`{*FEAP|LaN1!A^cUMr`g&a-C1_Uo4($^E6c z2Y(GFG3rsMP-FsfP@e=;{gCN7@{h4agAW?j$wx>%SHQ2u^Sh5pw^h0pXh*3_X-!sR zhuSBMAl)GqgXoXXqZMp=qwj>$TU?FR3KepfC0D2<~Zcl zE3@6_Sqmwc0k7*N&@N}xia9mu*WdC@SqS!G)EDKK?`f$Sn38kONlOuD={KmkB?>pD zcuXjw6$Oh&|7A+H@bP&l(Ue;B z6(~|#^DrxBk?Z%K{-Cqo3I+5DC0MbAXDe@DYb=aeXf<#VXKUEu&yGO#Z}N}XZV+5> zyX0I&gN%-;_~mh5IC&ik|ClR4kvhxiVTTYI;^TH6Pw?aXo((BgiEEfEwRz=>{>TEk z28$cv9n9i>P`j6|39i`)Whi9dynydr1&JHP6U4D(#uA+(dIStTi%|x9vXDSW;+3zgUsweJ@nVDP^_T^%a#<9>=DonUC0=xu@vdu5v|7z z#0Q^678ga3+R$thaVZI7_wAe~;{a#jft?g9!<1bm9;iAhZv|K_vdsH18fy2Zg>Y^; zY(hYw-uO&xL5v-A=`+>(R2puv@Sl)Hha46m+yW35aGU$!0cMmPXwyaPy9!~t@>BL5 zzoL=S?uo!e7FM>Z>fasqIs+ zk6Uf|$IFA;Dd*RdN3Wh^KX|a_s*_$hbb9=Gp?t9tO-|Oxj$%h8^RMZIB|UOxK8L!g!8YcHG{^+uM8a;J-aaA)CJO!AJQeIhZl;m&ZyRIUx;HCHhvMqi5cF|Hs_uAoRd zEMqF^Br}sY^Pj)R&psms6juvI>$$<=Wl_|ousAcBP z!fr4cj$%E{`B<8{hc0GBODP*k4o8p9(jM=-_ZK?FRf-}&I{vL#~#;> zueN`AA?Pt3{E@n(R5GbMS)2Ft)~zV*)|II@gF@3cCw4T%-~ViB z+XAk7`L}OPeuCs}+!Oq~XWSP#{kErMJ`DQ@8xY}NnYC0gWY28V;u)58t_>>I>68k& z@SLOSt$~m!sFdA-Yl3&K?p-4}Dn5?!I_;__=2s&G_3x?121xnxWOi}50^@8l?y3_H z4!@WlrSrz!^_1DZxC=+V-*(izcD2K{K2%v=m|eMEtz&~ahw}6`1PzOVMIHXz{g*#C*{;eul{gX#5{C;_QwWcZl-7%H6%N%m z;!aaezBoas!&y9tvnPQ~jfpWuYg}?Qv6bUmGdNLLWT$ZpY{u0%xJxH&!!5Z(Pz+xi zw>>+*2_oJ8$mP8j`#oA9<*79*}39(n+P#jfpZ%dPS$S zy1~bbI;WNl{FKw00*W_o=yvt=93BMr7T~jy1G8`{oOM>^i`tlcjAjGIeO@&0+Q52e zOiG*}TL_U}q_+F?Z;*Eha0(&xY!jr6h)|mVnE`qV%V1v-Rtie3S-G(FaPL%aZnKbd z4{^9OL*Lq+R4&4lbP*}Q^lH`_;bE2ncAP`0q$s*6M{SS&49%Dg7WNV-bHxG~9N5bI zCh#3&ot9^uo9&yO)k#Qp33}R4B7v(vEXyo7DfNj_z+RnHE;;NTDbFmOBGb`kxn2&9 zZ@aEzgtP9^usZC$4E105zp|OT9QIump1y%_EId-X-}dg*2c}}rgrt@eJG9%2Y4HWx6DNSf0cj&C`{2(_ zikn~l?%+Z^-uBn;^b3Fd&v(-HKglgRui5BqU62fgH@knC!SUe|KnwXgLW&ys_(n8d zhvkjynyjnbAvF*X8~`>84j1;WX?t5|$ppo}A>TOlBvbxmWCF;*!S}u@NxI9=u)e`T z)QBU$+6y}QzhLYFKKx2xfq!(|Cmz0*LRj*?RgT7<@>-tFQ2&7{uaP0Xdvs68DSVCp zgOHf!zxc&lskaglAF3-i#BY1m+A}HQcF&>M8&TRPNPMCtTXCq+k)4I*VM&;^2TjrO&=Z_aRN-mUECI^<_1VXi z%rpHx{0l{v@)DET>l9B!TV%7?CShKdwMLK?|3;t>l=GFD)B3b+d==1Dn&|ZjTgxiS zE4aee;`uC^n${GYgqjHw#BWIG$MiRS6lRR`&hsj;UZPAhA7zx`845m3a`r**&Y z7H)`Tq`9ctT!V&224Xb=W%a8Bviv_D7?Q+hI>a7;3(4WT|1;O^)ejy#{SYYhJh(wU zcyR0|`+xjWYnQL{!a@*zxm$EAOH8}PXur4w23(a-Dsj~)qzO{VYR0>O3+;= zMz47it3?x&Cs>hM?|kP8;o_8&nVJZX+Rv)&+buVlHCt$AZ+U?pJcn%zF}dB-b~QH= z1z+JN9lGYj6<0HDy6xl{`(=J*q;(9Fbn?BD||C~Pcx9872YFxHY%N1n1QUFtyg--EE3SAsm0# z!lR}4z8@8TJ0C~<`|l*e=DQ})miEv6guwb`EMEg(#*)RqZS#qyzZG^_o_pZg&3^4V zh*@Sonh+4@f(SvGQk7VXqq}}oUyEUu$*};xM=AN47o;QPw(@g2K$y`pp2rPe=oV4hrYWwi0STJp>5*SD`9g{v}8R{KS?t|FVPmcBh9>|MY; zyCW&4DsA4gA1z7I5lylUmO-=_cBwksH3d^}#8D;aJa+er1r%+YL?k4* z1P1~X5X6wTeS+ZGdcv!Rel*It2_Ug$w||pOBKd0_YW7%bg9JFqSZ z1&+UXwmfzpUZDrVS()h8fzdN(T)hP9^0xMU%adoGB z$(<|#1mrb2hU%Tg!tCyi8~}o^t0ZB0+q&7FB%evh57c32ulxVnILle6JozHR4ut4{@T^c z&;JNmUm(bXHjZ_y?1NxEu^ppki=srN=X@i8b{n0YNLM#@eU`R5N==q)dlQD+>AZws z>}~PN1D4t&J>u3U*qahm9=ojU_lC}RqAlQpGcbL4r5OSUUUpj)SzDBVzconk^vVAf58MnLG6@OQaqUqQsOKVPp4l>dbrJwMXgJ{NDPxP z^A^xz1c5TtZdB%R5AvJyzR2Q-rdI)Uh-O z4u0|0)xj|f`51S5)oDBb@IJfKTlb)n;n|GOZdJiOkD=3(P!P{PbMXGvk`nRzxBlyI zd9!iyE#Lh(^t(U)UiPipJAdE*2(A#&)R^ww1KSDfOf4V3S7DBitKy#PJ^*C!VAz+s z5iCUFt!G>JT$>#Ehq?|C%w$+hdL_C8d6uM^+hN6P;aTq<(mM-+`t?(hU9qR1UNC7Lz4L$^mV*$m09TO96{E2mvnUJ{aPlv*%ZJ0h=k<<+P9Okv(PWV*z8UdP$ zd>_UmJc}b;XyZma{B%~ORmiRP?kFU#pzMvq$p@6MT`{OmZH9h3Bq6O|xTL_8gQEq2 zt}QXFphyiu5uzg214_H3BGQ7?MbP-g*LwI`TwTTiPLQP$-XLySP62u7UXabH2L%tP z5TnA_Rw%uNz>I()r?V4OqIoju8RYBVuuS&9z|BG91mxq)wDOSJNX88ssf5-gF(DJS zHJgKXU^rOtY}B_GK(L8}kz~K;H+H$@4|UHz|Y}RX|tZ zUm!I2PQub9Ky@))AHoDZ)+|5UgE3{&3^ac`bi!QS`HiH=f(~Hzn zI|pr*VY#`SilJ zM>e?FHchoSIJ^$J+t<)bizD(AX$LDj!8r6${hhCqF1EedhXxX z{DM9QB?6@s4NLc}XwmivPa+Xw|W{d6V{}BUm>UsI$tq{PyQIXwBE0K5#uu zx>Xw`?19Ux&4qN~omw+haP^FVGFzw_{obbvY*n4ee|@C!tWO1Wr*yXtdG~BS`gQR_*=eXsj-MO{+X`Jz1?*Y$+%dia74H8u=XW`0$4MZ08B^`aG8vI3Oo#K;^4` z@3F?&6y>gFHXD1GP5`2d1@9K05#&PJ$}Aq|vBdcjZO4T$lcP?S?!%>$G7B5B9u}|f z=G}p06$?oJ<=x>4t=!P~`z2%}6zyjq*)6%)9JB}D=s+3iy;H)-EMHykq4&Md2^ z#7d}4`mXflDq;yMH=D{_^kp!L*_5GLFUK415uib6Oc52ckZ-ZHk4$Jop4mh@a0d{c zR^ZbEn*qv0M|kOEJ?O;RC+M^}0kOnDEgTeG55<9ix}Jn5tHMPrtmcdrPqPD?_Rw0K zAVkouV*rP%OjqwL=}&h+B<|(SO|*Nd3N$B_vP0*ml#pLa@9IDGbr~)hKaFm}LC-Z^ zt%|$E3*vxW5HUVO9^S7zECR3MQcRMmcUHSfPxdJ4*G(e6#J=y{E2So1JS+ zKM-)9-(@zH$DOl%q4w@M+fng&UhR6fy&gc2)D>Oh&u^=65$c*U8Syf1XTPDSizY!# zxj$W>BC^9mV#hcuP6-4%QNO7nhdvrzzhnIlQ+QlkE&UO9#sc<^pRb+&ufMyNRX=?0 zqisE(-V@B4KheoT+l6~3w-`=44bzM*?%ek0jMu0;9>>o&YY&X=N$wW$|3xoK-aZ^e z*2D!Xh+Agy0M+UjfM_JBHY`yz4Ilttf1-VoOyKA;R4}+e(`9#(0qmcCUwu)1YIUUb zADsBX|K1wk*m%v+uzF0+*jn{eXJXZuI@Yasi0;lhdwxm$@ z*PkU0RgefOWc?)Usx-LG!$ zZ?Y91gKDhMH=;6TMvfusImTm7I51-ihuIll`hT45spv7B?eWFTK{njX( znqiJl>4->eU&}$Wdm_8RHBm#=K!*{JTBCQ?aLs8pLV5;xo6#*0w>uz!%&DMtz67-_ zd1Z=>DD;*W$xNeluD6L^VfojgPL0slgG13wS9bi!wqHNF@W1}D>2l)e|NrbS*4?kR z=pnIj>dMs1&Z69gXmIZ?<*YFriY%TNQ2-|z%F{ohe z`iJl2#zz0^e|_|a*2c$w)_QgNF__uWbFWoiYohT1t$DMm#>Ff|}6Ytj8E_#2P zpQ|cboOH$WZH^7?WJE&pDco|roi*a5EPaCjMv9Z5lcKNy@)S~?@;VJq zqQ1aLom?IBra&8!QPkK>bY^{yTV{ljtx~V6YH7hi7}^{^L?7w@nm%#ut0#Qv z_ul#7R|$VM{a1S^;hTmlGjGG%q439_nm81NVAh)I!@D}qTsl}VG0;#C&0I@GylH9l zv$|Fs6*qxZ)~t6DCYw8Xh!R_wax>y*S*^N7%VQ+fGox*miCMmh3v?YIOw@@oM(1IE z>A(rn5r?A@=JsRrKe_$H$>aSOO8+DN%l-e6aQ@ugA9ZL2_^X(~-m!JH?qaIDmE|7e+qe$BCx4YMGngeTYZ)Ghbk|}ev1rYU3 zCC}Ci!Uai(q-^T4!he!m#GAe4m9=;$9m_WtrWPo(u-sfKsrNN!-we<%W;lEWGST^2 zW>fNfD*a+?dux*sI2$mM1&70u^dS_wRkTJ-p)twfTnvKxzS8g}s+RQKc$Raz9oM5-I}K?vOQOn)E=2`-_XyQ&bA~8Dix7C8m9QqUU-t!D5@qPjk0LT zXj}xB$@O2KAZ2x6m5lX7ry*ex0W&Ob6+er~Uz`UTZx?}?<##v@#haTrbfeE)vI@bU zxQ0ZjV1O*BjjQv*D3cqrI)FVB zR>X3%{uVm8{gcGvQ@)>{k3oRcwI4(`BE-p3oQEES^=krOyUU`yTI+POO4(Iu7u4)zRwSAeIR`1eX^KEGn4LJ zw_+Vtj@d1vNmRm8oCi$6gBP;L_SzIBROgb^`>R}ajnafYn2dW$skrj#^4Qq&fIn;c z))BL2S%=lQs&I1V1(=S?YV5}@*DhTSkJ)C)nSUE=_}REVIN7!24C!-nkhHR7VR~z{j?hJbsB2KQ0KGc`0e6kbegbuoW`@g* zs3G295?MX!Y*Jg8-0rF4L8_rnaLA~H+YiaE=(G;&Ax$W;juc@fH2AX2TGT{OJ5}g! zA$c0&uJ2GHaF_;zwJdVob$rbzj(X}8A<_q1lqNY#q_NXRVEf`XBxE13^1Wxt?MGHM zExi?vr z9n07k)S0I;OS4f+X>8=y=ZjKIll1Jn?;kW?uKvz-UE}1I6qsYK--7N-3r@wW`9V?X zt6wiIJ@?a-6E}6=+|%v&f!}KQ`utZVIG~C;9(aXNO(LJBvM4$~0CVwZaa3`uyQ9VIbIHaHjg!CKxC^q;ZdvSmY|c0s z7aW`5fw+15z!ja8U%kf}AKZ%@Y5>ef`M6SvIxoB%fFMS}C7al$bW(<8js2M3d*y=g z{X;U&=A`1DdJu_T*l3?vUCgHnaIt%rkz6|Vc;2z(&3`=|`oo)Bw1)peILv@q|D;;& zF%jYjeo`RiNShT1o(Y~E=n9Zok$Mc8ax_g&8L`9+ohf|~8tL*QY4Y+yctyI1#9FgF z$WN2yECGvdw$2F5+BmW+V~8*1DI#EM21P6q;);^}z>#ENu#7XTR?!p3m&UvvX#Pnf zr=g*j)WWiE^=MiMbrUm3ng8U6Fk}rMcSkrY6g3*fMXYu}xRwEb^wdpW7y+2X;MrGS z%6DN3xIg?NF#DS%f*D{A>Mo>qW|CT&3>R4c{Ps=Bu+^)L+zm6890!>j5C)y{kP~%b z`-HQo7iJSq3C!kS&xF##KDc0Vl;KF04L~9v0#SGwnzQd{i^u@nG?u2(TqQqplR~2o z%5jevVa|g$@%l1s=%IlyDIch2jaX(|cq~|Mttv{%%rD3<8w-vy68m~xhmw*e!`M5| z)SmcT+JUccK6i6?d`92mh8bwPKTLgO$ZvzMgdyp@RDMAj#NA`kYEj?Y>Fb~(aDWpwR&OFz(13vOyt`fsVT8Sh&M6GGrFG?fy0 zTYrSK+mnT{OA;%?SCr4xM;s1X#4K?R6sAS~EUPB9%ug!is>^ zy2_p18sNH6>X8+mpYPquWv=Cn{d-d^KGz9JK_`N-gkkrcrI zl{X<9v@s?EdP0A@mH-7=h82KHvmya^lxDw{S<1q!NjhWJBzMk6b>)#1T9X=d&~A;R zx2leyWLee-@I>w}xDEjsgt@4)~GU(k) zbKwD@B{b&3$yU&cjq3zaL$0N`Wqv}~uWm>i@S4+nj5kQXI}i*mo!seoVF(B#wD*;v z2291*Ha2{E);u*Z7X0)K@F>Gx_jeE35jlPW5ThKl9DjAWE<`3Hk>|Cy#SLRi3R~`I z-GRd|)o$H=Sww7t?F@OqVW-u}VC~U}8(DN+MOqma^}zHxz0=#sDT>$3c<1U=vmu%B zI@HtCoQ#XCkQzJ%QL`(wx^vYdsCE{&3|pq|HY>7*&c`US|6>@+yw-siBb5$p<@)5yq)BK0sLh;J5kMN>dzCcsYxH~aF) zpqsxIr$}7qhlh;GNYOJKx!LQiq!#+?9dcP}!SC9^ER@C`p&Z0Cf)`&u zm}AOhOZmaf5ewFV(KOhXnlYMeWY!&21fE9PA&xHsW0u4D8e69co_YO;Mq7)(G4&lJ)5axS zvH1AeimT{I3g+A`%e+*MDN2qcDN}nLr*-O4k+*()&7(%k02Qk+my5MOb=zig6in&@ z9iFgn<2Es`d|9}k!j6@ewsC{y{|VSr4crY^luua}w=}j{Ul0so5prGmbV=$_Z-BIh zTpGq>zE9oNTon9DKiLxS42S6BSEOwUTK@qbK^Qq)V~M?NqoO2tv4%>iLIq!LAxGAC ztVoCmbn$0T%ARG5i#st*A8%_krcc8a4>bcn5~dBUt8luuPjmR(5H17BWMOh=90>ij zp{(q<+B`iyIuxbk&N`DWzB?`Jd}xp@y^vEj?`&Z5q z9HMTaoq|mlS6Gl0=~QAj0TysQmbGT0-PS>@gO?&goQTSK4-*_BwOLq}HCW`VJkoHa z!RndsSPv0-#XH|(>Sq0%KW1W5@o6;%lY?__U)onG0Gna~t|ocGFtRut4^lM4?hO&U z{_|1^NgvJke4_t`(Cr96e;sWed2YWL!SoDAA&VYrIm9+tk;i)qiMWNl*+JG9EGgsZz+g7WpsMo*@Pqfjp3>|d%}3Z`Oj{?eVm-yeXdqR(fULi{WFozX0aX4 zrH66$kDsXGfJkGx)azm#y3AghD^0t2{?tCTS7;s3H!#w4b^i!l6a@T4zuKDSmCH^K z^h--Jfu}%qMvPe7nz2QF{=5i(ww06*an+g4g`y0c0o=x|0s3`M2uBV>`gDfT7a`(F zIYsAJ$40Sce(nQ~-880}N37k1 zU=;aDQRJw&Y-Q{>X&Cw>(+CR%&mA03+1cXI8=_()gbseOhq-vpa_dv+-+p1gOFc;V;_Ci$C-8szkV}vLXyI3TKKX5F zBdDo4$!_iZA6M`h#~V80cxOj&slutast*^|IAU`ZPN&nwDdB`%PZY zCZDg)w%cnC<}j+xV7ShN*=Iz)6GWnHO1iRw+#Bs=wBjk!q5S3bu1lZNU?{I;!xg_! z7R0JKrvV8Q21{&@%``FU9XLKKLb}ltd$HK>hlFJ<8a=^RvmF+q}#tF9@ z)#~Z`hooq-YpZpxgF<;Uuz4aY9+B@_9pJ~k7{HNMwgPpw3SdUcG^-OVxHZjB7RmBQ z_@QQlq?fFpRLj6%rDt{+kL@$cFk%+ACzfQ_E|2(GpEe_Vcrc!(p`s$<2$H3UHo>TB zt0PvxV5$fd4hfXW7|aq8K=TRkExgcmdcY?@XuS7fvnIE^B@0*BFq=?z(3EdZlc(ir z3bvPbMi=Pj!nTNgM|MlaTXME{Kx?vAoTaco&Bu=FuZNfzi{p-IVTWY(~_o9n4$5xWgt{{=Cg9L6eR)fA{lAJ5NY$uFTDP z$tn0`X3iPu!S(h4%w+RGi}1~X*GG~SO2g5w?={HPo}8>W{2orWls1&Ff2(K022avo z5_WxUe4%=GB<;b5GxzI0O5&W=)@n@2DutiTa1oB(byd%wYv2b0Nn`H^$AZhSaTO%7 z_N%^dZ4@jTIhxj6EmQGS)uE*Q`2yfJs1vayL_5@o#T`G=OAlc&uGU|EgIPEr$!>#~89f(I0 zd!9PPx|FPaGt0fOUjoDg?Ev5uQ)4Yd0XLd_TtBMjXGu%XiO{KD=*AJq2V1k=(nenM zkcC**o6-_KbT?C%mF3H#N9m$EMuw>NP19z=LNqH{CgIeYGW$VP(yUm~f&|}b2znab zh0;Nuk7BZJ!6V^dgBWq+t=emjdPlim^=zaL!{#87NDEeCkr}gk7AXKtjJTzR+kMyS z=XDPMXa~Q*iMUlD<)_~r>$xQ z*bR`@*!pKNp4EvwxX%QHF$-AVS_l;(At-NJgC!RL&w! zag`UA-uB!-F;+?nvdWrxNzcKTq@HDwIw0~c*Txs+4vieW{5uzEIg}k#_zYwH{=4PX zdQnHLp&g;n=reA+Gtxj^g*zo?juIJt36RZ5b~FP4kUUr>lpV-9P*%#5Jqh6Knu3Y7UI(8s zr0at1VNIcXGwAQacb4w57PHniTPe}#CxGjKm3OtRHH&zM%)g4^!<@Rud1prU$oU~{7X1QvNR-^2-;VNDyVMzXLB6WBBMU8K zdllTKJiO=5N5KT;OR`|^rQu9wK@nr2n|ep_P0oAofh1WGL_4p`&_|q=uhy1HOJVvu zRBE%9HheXB(1u8M1FWQzEAj_V9Q}uDg{KKud86bn8{WHGpT6@umiwc*Lrk%bw2!p$NIR%qnbi48KosSLHbD#S#`RM` zr)z3vWE3e1G90d5!QSMrF*+R11u;aW0Y!C^pjcg?l=e78;vObbahInv^Uc=6UXO%6 zDa_PABp@Yrg=QidMj1umGO5;$XRS0EDcFUhceEmo@71CN>pn=>#CvR0ZkDej5>lWa zO(Y>1Lu)4B5Tw;IRTL&1{&>>Ag3NaylGbz9MB^w>+JzMb5O7klb`o}?mNgteEn4GC z0CH^mj0g>yWqo|B#H~(TQ)|+hX}8E9r%Ufyb&9ym)k&TwCsA8RGhQS`cyoDSd1-kI zX4f8I^CV(%f7y8t@^qO{K+yD7)H&|qDTLILu;WC9NAD<;b`YLCjQ;52<8}w?{+;JZ z&%j=bL5q+086@{G3=47}R{4X{AIrb#{Z;L~o6fKIKb>}AGyc_*K3F`4iZ-7=9j$C1 zd4MrI@uMG1tPua1a3%9Y|DDgLd>MD2SnM~XbU){)NpbAOy zNy^)-uH`fcV|;)wPR8#(kC^LEKJbnsDGvYuA%2%oZwq}ZTkr8WjnxXy4pzR(-wwHz z#wnkaa%i=?S5{WIcx8eu>6Z7gaXKK%_TF|DxUixxNTUf1;|EaSm}3Tiqoeh+D5TFi zXKzl9bg{i(rHI@W4b`C-7*_nJ+L)i9`cRO&p%kkEc1Q? z6sh2-(&{;QV6s{7J))6pPYseyYK?4|49?spP;>>P=GTB0<@c@;-MvK7PV6%0wwB8c zZ_3)C^J^yvklVFdbv`Z4>2k)1hq`#}X@9?vKu9q_J_$Q*T|aZzjCQcE<_xky2y@jI z0wmvLq?i>Xi|R07DM#xcx(kER8Bz*Ribv*uD?7V*>_FLd_-IxxwOz}^(KkplX`Du~ z;Pl_;9R`4ucyxyv;8%dtz+)=3u3t}XGZK_h+yxS<3RcsiCG!H1iyZ4Ut*~dcM^L5= z%kr+z-rBG(P~dyLp=@RoP7j7Mv$f0(%3Q>;ck$}%q$=`Maa1NfH5baD`4B3rqeFSv zwNFNO@;4UZ7W8ev(xoM1i>aXmv89~dKdInA$Ts9Wzj*V*_w;d`kAQ!(!{hSSuiBom zQ;3{;{+H_nW@`OfZ-fRCjw5Ix|1UA4RgZE?1%6I`}0c09_(?KLGV0Ak%~h}TPlNsv~O^%EB=R*+IAd~os;K2 zp&UksV`?mXW;Hb6(S<7$#MejKvb^h;1GkaP$$r7_7ZsIN>_n4h6kWH9TSIL$p2gz) zCfF1@y$)GGRU$CW__KC9Qa9jHuyobJ2@5tPvHpINj&X`ib*0xUOD@3#2r~6f8oLQ7 z;K(8X2{7Z0K9jYZgA_w4uO?q0zJ@2tLGxdH{o+`*e)HK zUbny}mvXzxn+&4f`0>{q_~v ze{R@udZy30U-aVqj~Avi-QUp;f9h}8$_F8eI2>%OItPvnIh_{g^cw=PT(?OeLd@|o zn8h-Ur)K+Qj`DQLnCvH$LDjhm}slab-7s+(H)Z!lE~~=(;PExP9+f z&T%J}=-Im1zzYMk=S+gVigHYd>1|3jDN*oljB~m=$5t0#-fAy!0)TbXaYa4nPKp^X zZZib6s;XUAQ#Sby7AS6oFBt;fTF`8+dfrJ>;fS56+4J~u1r7@;r1z_I^IEIVdMHGHjp7)ee$GczGD&x`=bDX;t9LoNcQnjIVFc!QU%Ak zHC9^%$BN8`>l)?kPbw`Y)RuqHM!^ayR~Xk0X(vOp#2SP#YeRa*_@zr*A@on9ZFHEcU z11~hLX69%^5tmy5l-6VS70RLqg>DjhvDwLZnNsNj8qs$;<}>p)XOQuW`BPH}oWxY_lc*gfpo~5ZRDV4uD z`5(J7lG~a2(wAyqst#AeRbDAG`Y)SL3a5kk{FDMWBMPVzJuvY=G?Q8&ZXEG9AE{(C z+q(yZGd!;@>4ttGpvCnxgUdu(w*kh#YlsB6Uu!m;7Q9oa$3g2-m8o?8Wg?WBna>&g zD<&{b_Xq@jdlKh89wxorHpSsqOx3d1tnQ50N!N@kJdp2W9p(h)u1o?IJ6LH6U@Irm zni+^`F#zL-g~3W4O74Vaqsi${9E9n=;CbK-!*-lOdxNoMBb%acV=*YvRo% zo(R#Af~^8mDP9eb9m`@ZLc6IMpc2^4?=%`&81MCf{VctTl6w{wyz@=_xayJSa(Sh- zR?HA0qnHMK>9sjezhHR_V^Z1So79PsycP+YQ6{zG8!2F;*6%R#<$pg?(V*6a_zytj zx&GjHhx>(mg=lBa>so(+{^b7BbK!~M;gXUB{YW*jV~0n3g%5uSMu*SN1c&aA@3bqn z{P44>Cws{W*XxSGVIA&Du^Tc?5jeLAml0z4SfAVZcUzjDrSEHKNE?ynWVT?u#BQi= z!+13+YlFLnMgDN9*V|h?&~}KqCqvJlF{}_X8}!-N$j!S{jsDvSO30gr5Ywzs1CC(@ zOBH+KoS&W9rXLFEf)}>Yts_jdqvK8kBdl_i?HFKXBCS%DGgo zuy8F&pT~v#(hue@Jvo&?-Rm!{l*1KXL@{$-xgUR47@V$Lg*+*dBFkGxBnq&YiyYuT zg12LCMZ1ldQV^>1+Vi6}U59bxE`HbS5BOz+=g)JLA)qNL_R-v;S(6$cU!H{H?HS-g z++KolF_u$oh*N|Ak-^G46(qvc33Q+K(aIHdxa_H`BJ!Lm`FWHpp7USJZR=%=4uoJM&D3dTPv^4TbH(2A?79BM)UD- zmrSpV0YIk*n7}tnU|ZT4QceqkgbexTD`J@)4c`O4#@9-8RKyMUN0M!Q}bc_$@w@We=tI)<;i3#&e|O3NT# zbnm%ywR?_9U46K!vd;&rh-Xg`wYE#?ueNpnN=jGPj4a-~^dq?By58WH#1p-l`ISox z9^=-naWPiFzG-~#@2kHQ(Q>P#7hXLI)zLld`5flV^wf0l@@5Lrp^> zy{ZJSvbR4s%i*ZAWo$^#cwgde>Nw@hzk8ni!gofjcN?Sw-750?x4gkzPkhxxV6Xl0 zJySE`Z9|?<(+C*~DMy~(_r$s6H?{J*f%q*jq=1T9GHLeXB^{)kTnH&f6z;r}vYi~r z8dyt(-HN9?GzNs3+s*-?A_nILEn+ZCLc(qtw6)F=)~HP z+s|jPTwyTFi*cL;2qcX+%wQgekJHe$1CGP_NBpQe`h1b+XvVYigvm4^#Q#*L(+LK2N3TI*mwJA6EI_4L_W+40O?`wKi8QEWLcJAv$R`nUpC-&S-Cm&9y7eI5Fz6VFeTKhSXou zjDFiF%9g5Y(3L3u3+;y=5UC@2*1E46hs`^3VmM7d#CRSnhpZ!G!3?&B-k8v=zN<*Oge;6b!tN-Yc%?7PMFv|)QLCTc4*+2I4JUEwdzSCTj&QVx5XwBLzhV;> z2e%?uzmPgm-a8=4^p7&B9xqheTH{M!Q#4#h9^*^PUFCQ#8%M+HIeNEm%a0dS|L~8~ z!(}DupMRNfxar!a_g#P?q)FAsy9qRcd*~gv(=kvjH!WLhWdWI ziyY69Hq@V?k1wC08!XMyITCY1?z|^WO%ENXf6_0VCwx2T)dN#O>8kEakJkmM5s%yB zXWl+e#gpH!CZS1HKJb3J^a+~8(1%G5_61dZo4j&K{{A^{8ko+&;CWAHFgG-i{qE?m zPmOi?bT#J3y zG!1E>nLv^(iN&d(wRKyJI3cl?+U<5LE67(`#5;Et*-E84EH%l>b#2nd?&yF^K5wj! zu{&GO51t=o&IA5Vq-teF;PppnLxifGL5Y+RNOPzUg2*Db*MLl-C9&WNMDpOnx-P(+ zOm1~RFdJkb3~r%i*lgXTT9ZZPn37bsF^L2$HMO2$`9n zg};z_%2)c)K9R%tr$`HocQV2D^(^0X7eWFrWS;Yp*}RpJWoioq$@)S%aPZ(k$pHy! zoc`JP_5OI#0(c7Fb1Ez& z_wL=(;q3kUV?)5#_iD{!jlswn>Heb7d9(4r80;M~^BWJ^I0; zN3D+@g&#fo=Fy|yKo#iO@Sh2}zt}4M{m1*TAI^XK!1Z&^m46lOc0%|rI`qZm6h)Dx z`p~X^MT_$f@(TL`i5n&|FSKC z(lkES+)0NJ&AXUNZ7&tOlVq-l!ZKs-z}9NLhsP;RmAgsD5TUdlJQ`7Khq)?uorNdF`G(H$QF2XAJMJO^15^_RZ(xeG@mo`@}E5xu*{ofA?ueLG8wi#Y%9g z(}johmBxrwdJ5w!_M&HgkPpL1s`f~2a?AI=IuI$in{oN>WsT?$N`<~$*GT~@bjxv5 z{KWTOvRGs+cTu2^^P!rjxD^Ur0bmbV4qXfibpw%4KnKQ|j8pN-Q~r-uEQ)xADKe{GDBRY|uR z$w5Tc>qyOJh`5!9hr{uh~v%GtJ& zA;;-Hiw7a?#|DkyYte7Rl}UAyxXZP~`mN16Gyz%b!otcVKb$!@$AFn!yB9R5J7e_{ zH9iYInLd_CPrOYs(m~Y9>L3{f#zAcaOnb6DppCYf+=|W?XQA)fF!a2#(@-Wh!cbV} zpCubPIws07DZ4d2S+iA@Au}H>GAknB)_!fss7km)D%#rtXzM|R5k{9hmtjmVLdNtJ ztwuD6NTV8f5(LCo03q)NrN;gg+5RU@s$7mlMRTdzxEtoU8@(xVtZ7A-Ehh-X0l-W8 zS4mNNQ4A7(wGp>p2yra$5aE=7%ibhXrrZW>11YlmwFCT2y@$7~f$S1I8;py(?Nn;2 zw3;Y*lk7P^(kEc~zLB_=)J)5!04}3CnphEvz)?Sd2E-FQ;UN%QOqk)8Cdp|=6tX@y zF8?Y#G4_!@vF+>rUroe;B>?o*=;@?E=y%ZPy2^N1Pe<=&?fdb<$GJD8(563c{Yygb zXR8xysG?#?fBgUMcooNPZr=P#h6>exm?JecqH}0B_yBrDrKD=V`_KqoaoBqqMDS=4dLYh z-vvEjd0osldt$?sS?aESP=k+$ZTR>xmP0caK0C^Y)iur3!7k#Tr!AvME6y z7}SprebAXBC5D7t&s&4<)?BHbTweNw#KnTzI=ts%NHy->HNJ$*WNHmN`!+2_MUt#_ zU{91hw=xMX(nNYEz3$P`q4QshV_7H~fuvp-Y@-D>a|qY8z*{mM0ejPIXgLF2sc`T> zN0Zrll2^2b+?D0>yxKwucDf(U9--&@z*C*ro-wUUZ)=3V4Y{UE_JLTvO>4kij%!c8io+;(!%ka`bc^F~$?u(MpGeNs&!{@EFv!+-Nld@d& zO{k_x_V7u1b8EE=IjRp&tH>yD+Q)Qb^Zi}-6Gz_Y@~;lD*_G!-9Q88OBISsAeO6x^ z+*H+yD_4pz(*s-3JqnCCm<5O&h4j(?+u_I08m~tN)@)XE0XWU|>_`$n2 z^`b(V(n*i1Keqq5@!k(qPNkv7vFJQ8RXf{&8r+MQ!?n9+ws;wHFs;0NeD8zfDOj~8 zsl7Dk(n%;DZqp32i`z{fN#WG~$odsYF5!f?MrK!XbZcDxB6~s`8qLgPGO`(FID0gk zT_Y)*$B-UPfy8%nWu;fHd9zpgtfdW;Gii)mB-<`2z}}Qb`);@N1_NoG{r#&K8r2Q@ zP}ceEh?cANH$#72US_p%#qd)`qbMs$sVpx=bq@iE5R<17ZSWNdXxfWFWZ^(Fx>RT+ zx)d99;soOKX*7%BtrjD)&?40=%D@9`DU4@4Qy^LElt1M8c9U+pT6%qimTtVKuKFCU zYa^4hJ(FNz&Bu=Vtc)BG-wV}#0%Y;9aJrhf;`v@}p14%tB4+uE5lQdX%sEJ6VYx`J z(=%U|Bau8bdqtJhsgSew$qQN>=>XSB}3%2*mcL^$!sGGFyK*qYcMs=ILO-FW&J@;@%VK@^2&()sBhh z?u~EQT$@x>^4$I5{osy-&^Pz)i98p=@-U8hP$qpIk1X83cW=B$>_G@Kg#J0XT8v1^ z;NVzqe`pzGuhsSRoD25wfAlD$uV{vZ6maXFgFy6j(IbiOH(4 zt7-3#5mN7&<1PpfMZt|?&%h_AFV1LoaJ!sSpK3NbXBwK+E?2ZcaL--{yX~D=7?{F! zPh3F|a$5J!?%9qyPjD%C@KgNgOD5Z{INY^3=`-l7oL^&-w|%vdV$Lnt6aP29((-HI z3&G8aWY$2h130GDx~u?VYqE4kx70xIgJ=;OFDvnFdTTbtLG@Sl$rt(^WUqtKiR1AS zuH{;WnZb)%78p0|X_A5h?VE~DTN4@4LXfkTF;atrp$NDrN!E1RRnL}pvCV}tEl0o< zyH4Ol!4i@Ir#Vzd5jLmdS^q;$&8pRHl*V6T1mwBVElN%-BGN-7Psu2dkojnJAq(%~ zNPyw;`@0XqxI}`tm6Z_N8&`0iIIERsc+PIU8{2*-(y|qhJqpXfyXS?b8-2W*lHZYa zs1vN5qSZ#KJwUA}iPcZCrCqiI1XY;&CeN!n9iI<`MAInWPo9d7m~xJ?c6~2TWt%*7 z%MDIlCFw8AGrd;kxPWILuy>Ig>$0OEk=R#(^?SNU%q!C7NaO7reNO~4eEHFS@CKyW zC(SQkg%tIleYW=5dzL5h(g%Te66IDZ6MTashOD^EQgZ5KrK`XtF>Z}RV=3DESzFO* znv}Fb1Zf_NGc_Td$6LCq%m+ce+RI^uwB_sar)xztrut?w{nf$!NXFh@B1(0R4kZ5b zeWOr~GOKNQmeTCMU0A$#+SoI8{*_(d-1}>F!_l1sC5s>bBKy^^KI5&Ym~ zZ&In!H%u3P_xn#8_I_0SmyK|!TU=+oLgvM@$vd)D1+HBtyy%M*(}INsLtfii{CDN& zUi_gkefiCG(1!Gop-@&)8BzLBm)lMBXorTPo}BAQI~)}`GJwOzI}F=%%DIm7+QCpU$+tcvL6)smM~J`~ar^lZk-YL`@7a@l5a>VnZJGud z_?v=f%?+p`kRA}jlIrL%A&xRUcUHhQWkSmYT8xr?8g6cjsH6duc@B?2&B#L*SBZz{+S*dF zV0vw&KICXY+)Au3oT7YTxQgL>|3VJAF1Mr`E1e2P)HHtd`XyGCdm)jM&$pU(U$-0$x$ zE+KcG8a$9MEpwHNGyfdEc=%7P6ozJa(Z$T4Sq`U6u?NN$-R8vouakEtUU@s~r6fq3oXNK*GBtxozcF?s2i=E0BC>B4J+Thz z03Dl3Z+BGnrqr*+{3rRD*Ix6Kk@CE>5R;Y3S?TUbFP68G4^3xaK-|gblHjYa_0?V1 zl~QSG)--@I2Sn2mH__8l#}A=sorDA@cY)soyY!p<%pKqnwSp?hJE>-TR$N4ZYn0r{ zuhJ|cMfFHL7gF=>v;iy11V4oI_AIZ7TV)|5BQDUTrkXhLR6-enmJXn>-dRHd%s->e z@N_}6v{=@sl{W&o{o;HFnR=%bvH`WS4E1{W8(rv+){#~muaJQoou9%t7eUw+|Fw8sTJY{V#f=hpcmA4G%a;qW&Itb7u zy;=|+8s1s?|1tG0U`?Ir`uDq57GV(su7r>VM7k1A0fUoJu+iGi%88Re111=;c9MWr zQthC%4&$Cq7a_zD5CM@vi`^k0g&-|hum|UmK!Rvnw~BNqGu?xS>DZ3lf8E=5&vd5s zd+7du-~Q4|uT+gl*2??7&-2{(@7^ZucMzR44D-!-&F+liDoI^~viJX*se)b{uKEA; zupmec<-ak?UGwM>L=hc-<>g6$&=nAPXo!yd&>r%0<7A*?i<*fW#q4k5hmY@)nH#lfwNYflgbpixD#19f zL=zG;v^M*2cv6S)E10oELC2;gYJMp0zI6$5;3PbI#a1SPSrDg0B~TH+&wVsT;%2Q& zr<#_=xWM_au&j8JFgYU$+gf)$dpGb+N6|4~-Ll zSh(ipl}9uhzrsa^a`Mg0^n!&^jk0>R<;~g>=B#pknf*b<^2{UABQA9@SnFs1_p3(vmI%#Zz zK$@SEh@fT`xZOQnT|G&w^`HSJ8`){gW(1X<4g{I4Gay|i0eAPC0k0w?t;vZ3 z$X=y!+8tEuu7It%l>P{9I$Cm3XNgXnRlM;Fs%og68+C()%kI*+}{PuPe z9WzzCS_2C*dV{?+>66Q_jGR-{wA#p_Q-KW`!`;pF6aKVyKPNa92~!Dr7*-B>ckZL~ zk;`HTp^nNg9nINLO=@aIorYcS8z!P!*GdAtfn5n&mv(pmd%QKTz#&ibD@<5hiYT|%{>@~I5!0> ztYH@c&YIFXV}mG+4x!Q5Re6;HD`jhxn%{_EaIVm{OQ+}k7O?k~$Ye=;uU~(ofoJdT z<@HBywY0?4)nUidnIZt5Jxhif*cs?EGz<97nRvU0Wm(ZN-Go|nCVhsJEN-O9bUXAb z3@w&!k5s0X7)UwSS+s}DiW#mm%Iq$@e_BvO6Ri=OQZ9IwzGaiCRI&Lgsn^&k@W~TZ zu`Vste6*}B-7f7$Hmi#j!i`(tVLc&S!EL3a$zDdOca2cK$nvF;itY|?o4b!RJkZOq zkbNcdqe=5Xf@>?2({nKC8_+?HGx0@wnjt9~;W9hJxX3msF1-!-(dhCu8N9blY4WUf zCC~T${T=0f8N8_|*!9ryO5R6`Gl7wjEJ&hu;V>+~ghm&o*HV^}-Bo95SrX)|9uJYH z!B4>}!V`audjYJbPx3R+d!PNs{X`AwUVn4d)gAwc7HM~W;QA5s)2|*klCQiiY|fRf za+@Q@(ifg6o7hx6c0~94Hy3tK*cTPO?g$rKMEQH&Mvw}Y5_+ybe9dIdvT6tqAIl}f?4;w0?uuASc%+3Y7?N&kf`v{pIuJ7ICm z%fI~Jr{8$J=R{Hd^TSD9_9w@@i#JS9X^u{w8cJH^b4C|%Cic58tM5ebT#Zy6zCk%A z5NpSk^ey!Zu0BZ*63}F;t;j_tPsbY--k`~;dDGsdHOBBx4?ZC&%{cBpIo$tK>of*b zy}!3I|L%UxeSP`X)TN&g|GD9xPjqu18#|XP`;b5S@j-|diE2M|p)NmXgH9oysGfH$ zj=5vkZE(l1iE&5ff`~Dc7j4N8*FyJV)=GV^K-q1yG$FSPIM`Q6PN;>7!+H#Q#H{=NHM%CrNmiK`k72}(zTl164!VIF#C0$@Z46{;MCJ=Rm9O#m9;-nDV z&@=&%6`?>?+lJn1aGckR!jlhU`-_nEIyjdWMt=pn{b26jk1~7D|7-5jK+cIvKPBw% zeAj&~W#4aP?)`?#!jq9EY(dw zF$}=pT<%;W+o6)t%fRe+d3yVL_^Zeop;AWeY^z6AX7kov#lpiyZ_D7j?#>-~!T);V zqxWk|So7tTBZ_p15VoBsa9{;>a5ANA4b z@gK(*Dwd*op@-+rb?g#1)8~h56K$uerY67}a&)b|c=QWX?EJMB+frSA0{txIu3IX- z(6pGdxR!t6OgL;0L?)Nu3ncL>gOwcu8T2bOmd#GehHmfI6V8gwZGY(lT1helaLD<+ zX~mgvBp~5G55wQD2mOI0C=eh-#*&lkKZ}~n|L%#;tFC-<<^pZx3`t;fi4fWG0?>SeYLptsys1Qc+9c7C z0ON6`{CdMo%s=hlCmz0jc%M7|Z;^jK@o;cz?fLVL7nhc@02O1KddaM?54a0v=KRXotv4Kt)qA(yh#R#}S<0sJ?@d0)@olhH)mBUiYdT(iA-5{Iuum_%Hg{XA+xOy&M;0apJMzQSj`?#@qvnWxDKKoy-}Mx6!%@@gm>Bi- zCcK~f=L?_SM2t=5(g`->7`dz@X}EiXw`fUI$ggL8pp)yTIz0@SBjrSMc`i$I(Z$Xy zgQ`R#o|7^$pvL=Fbyew!HiJ@XRNM6P2Pj&7rt8*J4K( zmoNw-b@y&KUz1c7nzT>N*m;g~3GeUxQ{^`ZXM4q4N}QRPNV}hOUi3*6K>^klf@}sN z1nj$U5Mf=M2FD7S=M$EGWbNYf?3GlL_64In$N+D?zg7I}O*7nkRo_p4mG~bEi5sl% z{^w&a{agKShR=OexqW=8*E;p(`NbCRqC`BSyrJCo)L6h0o}DdMvC3F;>ww{ged^>; z(`T25zO+6Gfp7V-u~F^(Gm-uVR}oup;fo_MubaNvVj*>5p^^fK9|n9j22T3mDIgd= z8?TE?E^300+pn`fOPOr`+nTZHe;d92m1c+Mch?Tzf0p|NPqQ~UUWslDqKEn^Og zKCIkl%6Ppg0#Nz9%g&OPt7E4*1Y*h1)yhte*WO|gtrEZqT`&vzqZfS?e+F3mGD;wA z&?XVOUAgj7l=P0j=v5!d6grBJJyVKUZc@vQJAECGm;K|nJ2G9r?kp<167%R{>QrB9zhrczG+*$t!pZI-q7#1~@xLoB58 z01zUs-R|0&4%G{Md+!qwe3HF*T^QdbxLSEtSZN!s+cP{O0KS2sq@-maBIq|>o-2}e zv+2W9=~Lxa-LR@)vWA&*r_Roo`p!s0TQW&*9Mk-}h*u`UmZh8m>7DahOb}JErAXKYV)NEAr zko^Rxr!U?XB&X=udO0^kCKnt77%YO(iZ+hFF%x{lF3A?QKWy~fnbfNfWN*eGvxIW9 z7jLSd=?(Ddj2KTzs;V)jO<9n3{BkYQC}T2|S$V*y?(bkS1sO<^O5AEwt8k)S-=|j2 zViI(qohAA@_TT-&b5d@3hx1ZfZC_T=->=s1{=8&)T6?5&{DmRw&DNS{OMJUS^~>Il z%KPb&|Ge{W@xR$reO;JWsZ^<8uT^RiP*Fl!zKP7>f?2)S+9q0$2es*0y({X1K?t!h z9n23DY{M)L)6uE{^JJK+UJHVR(PM8FB%q1kb{+IcIu5^*eo&%3nyL>K@SgM;E4aJ}Wr&G1!&YL*X~*Sp{-H1Q!LVqZ`*KYM^A#mBbC`uV;@;#0 z`_jTE#Q4&Z)K|r*j4hANlwSzYcDYA-o?QXXU~#fT7~I=NRctt{MDZ7z)&ox!fT`-K z0moxIAb{Ht^;dZn1f^wcK=XbX*D)pc)U6Syl=`yQZ<&Lqk$253|`1WuO|eI)yYJvs4qAE1r;Dc%YnJuV`&G2xpP z$!(e#6bh0hOp7w;lLv1blU+hP7#_k6mHfo4sGhEFDk7t>W080%5LrZAIsd+XGY;A@ zKv!9b$$1uoD`5ZpFZd7lSbgc4yP z0)Dlc%A{d#gNTA6GAQt1HKeP7XvX5C%K)htXF$O?bZw8v*BSKHbP07wjg`w#4(@5W z&!%!=j~S2<0H^U5wzPG0phVdLExz1`McdIF_S{hY)@XE)i+(63yFy9EuYZ3e>cvUz zo??cI|EqS-;BN!9&D%Q>gEY)zhb3VvqJQ&kW1>}>;I4X{3wPDv)vM4dL1pWn9s~Ms zJe~RsB-E$BAnAWA(siv?wtnLb`ASaDA6e~!@Em!L0#b|T#o7WdKD@!>XXWCj`1F}F zk!EkNz4~ms)0AZh1glI@`me_E0PdBVx!d}k-OM8HC5Nj88)X45TbC-&9+D6BvJ3Wi zmF}z|2x$tnI2T$z&gvCs4tc$i^#j?x8-jMovRD)FyGgI14~8sHmR8J|1d*2{*~13I zM3TF0t$E68w^qkOCh3hyU}aXE7aO12TTwAFAFwxlG-o&LYG&)v)$<=|)k0@vg+h0 z-c6NU>#C6Ppi352%kNa#$zX?Vg3%Z0G=`$q)PYE)z4UN=mq z3v^q`i^^L2)43q2fP;{jna0HN1!`$D_={_kJFsZrF73Y)l-&046aV6w^Q2t6Xy^@vE7GsZm9H^$lq|6yKncr;Ba7+zndGk{{4fK3v{OAG}ZrS9;{ajBh&oNcqj?0iEA!OKf4$|@kS$>pbTV)c5vn0TR=y56 zw-$-zbZ>8l+wQs9Nu^1_1ptqdQqag|4iSpDD5gc;C`nKEg}2_ys$);#t&w;S*~3bw zL3q_TLAJAzc$FMUHgh3*Nl^--D`K;reV}a1)EE^Bu>zPlCvFrt-%QI)m1WFc1p^Yu zbgB5`SB1uSKXE4<2F{k4CfJJ<&B7U%X1ln`J2%v_Tzhb9e{DlDcbOt#c{>6DC-r)n z*oxscN&(6+=rJ&QJt$)~zTw52`un99;|B&OEhV*Wn2NT$Tx~39yRajfK@jsxlevxc z5XPth@4ODlf#2IAMRW~2r{3@8cfO3`iuw?_QIL8koLIQbwgH`2s^ICUHn1sf38zYG z8Q?42hFeyT<~l&2jN`m0slGO z?m<;u zAFUUOcC=>8xQAMkHWXs!3zn2nIY|21Mbdi8&GsGw_}$rZYU1^Fu_%?Pn$t^D0Osfe zpZx@fnUH5Y{=o)z!q&J7x36=Kh_|A94U8y(XkGLV?;MY>fDvglv!~5gs4oR2(HP`0 z_Eihc2K=(v@nOH%XwWF9g}KmWK@O2o#&>2KsBV5CvGfu{aeKd?UbaD2P7qD| z)skb)z&mZGL=g^-xvdZ!5Yo#CCGhY=H7ICTlH8^lyOm)l)Z~$iHA)iau!Z0vZB{n$ zag7>ZiN}L=jlQxGr7nX>x;$Az(?aDih;s7yYz!T9g-YbC3~Xs`rf1W7c709`n2($u zml1S?3FgPCq9T?_b9JO0och+0kTXb2J=@J@bFPQfK7Mx;&RFB!l_fo>v-au3B)G7u z+4ZG|^H##$^^NHHz}fr4aMSGX@%x1K-2FRbjw*4PI)Ha4o$<+-B63)z=0|b2lrzQb!0hs#{T5+v zb~o{?7iye-rtM4`5)~-rF8EvYEL~Drg6G<4X@=J0QOWa-mGQ^>Sv<;EdGpc(Ia?v) zD-lkyRuMQ5B3HXAZ6gzM><#=`8Y$vhh2vBs6TVfi7Fh+7BR+^!J~mCt>TAP|FV9km zPQ*4+0Jo9K^uTJCY=)ddSf3faB!UBf%ZSs~`_Lx{^(%?{N&rbnJS0kdLlmj(6rz+P zA&!%l9e^$^C(Yj0K_+r!S1`?={`+YZI^4_~3sjsuiDiuJc~~-*{qXnMUE3YLbk=e= zz=xf1_=D;(`su-c?Ko`SWBG|0(l)E5lY`f6UDf8-Sdsa)Pk!=tt>$oXy4id%isT(^ zPTAS-OavczS2IC&7)>F#K4-C_W(lGbkk*_A|BFV7G-<^R@Z^_)wui#->P`QMG;ZBB z_$&ICS3mtx+#l0&13CRh!rNs`7d{yBXWO@lLhHHyUN&G`O6VBHjYOwN(0UpTNyxXW z)}R?Brs6ZDYXIX{@m?jQAL~Wy=*0vo*S|5FcFcb69!;-uTwC@r@z7GvM`CMUeS+ zY=lAKxU;m~Ngq0eqxak+H|v%6G@}bksm07Jde6 zNRD-PIK_qfwuqpno-q_VDf@l3BDP($rPa`)=8ISN16ac*)9Q`ToztpiZH5PIk$wxb zh3vef>}=wUG&7y5*z6K|pd?KP6Pq&~h_@|vEk%2Z zM=li^eK;xg1Jf!p0~Mc&2;RCB^MKr#10b&CEqZs9GR{dhCCNH-Qb|u!J>>lcR)-+mkcg(r`=odwOrZNz z%WZ<1aOeJl2AMu=gG1pPoJ^?93Q zAOWO2Y2+q!wB!t;V2fsg7)y4%e1|2;WT4UauG~Hdz59pt2jdBH58l2LWN?FkSj$R( zrf^IKY%Y=N$xgpJ&q~Y zb?`<8HO_=))H8@af-OEJ@bHI`{YC|8K0F@#Y4lXG_>XC(sxkJKP{atFYp`slqLXeM z#-H5IKe<2((&cY?=n}R4MXa;}8#fzA&9Qn#Rdj2;amP9P6rZ zHEtEmd>I~MWxS!q2IG{Bl=;p(q97r~Gcxq|VS6>wB^W8@#wTd2>R09oNtH3AOrW+B z95gjeO58h5sxgR42u`xVh#qm@+;d_yjn008Glf{28IhT?Z}7J9sJkDmKY2-YLz(05 zw|kaKRXK-dUV5^kG^*kNj|#X}j=>&&L|CJ`aYLeT&U94>k9StiQ&PPv@5bPrNrKRm zf}Z3pWv+BAw_1B3=>RU%mJpf=Ie<6j9=IgLF`r&7gHz;IVaM%D55hOp)z#YS%~~f+ z3qlM)yN*Tr(H45y^Mt#PBh}$WY==~siTmiG;I(CNz?O)PWYUEybWAFw zHxt-qoN{Sj$co>`!jp@q! zQb9NKasmHZkv_c$Rs^>A^xg1!G?rAhE=a0x3Q*j0{DR_uEMcUgIdIo8Xbn|f+jgw# z8j!?Se!QLX>es^rb8YlrpO0b-UU=J){?}C@+92oswIcu&)mIaC%8F4uNpw6Pg-8_B zp9@zE9z~>F5yd#oF&WL${N8*CpSA1~Dq>hhSnz)>R>A52ZOE)N@(L#R#6m*`5WlA% zJ-Yblk>k;$;zy6@N00O?8ZDuFb>ROf(h5%qo}0d}`TBJ89mswN=P8hT%y}S{vpu=U z&=J$@EqSj%+IhlE6V|20goKK9yq|iaL{mCOX^sl7Xs(%`+^{42Vggfv%~TQNl3+WS z{vZg#ntXR&8t17dD2xxIeaJ3eTF5i+8}KYla>T9Xkf1e+zjfasGw~r?z4jh%-?YiO z5K@*#c;!Uv!ohD@XMzbdF=4+|FePB#bwvB!OIdF3*jh=&N$P~K17T;@Qhb$38GbA9 zIOTqMrBy(0!7%RX2EvMM$w2-@Ae zBaxc=ZdV#R&>sOHA$ze#Ad7QbWnhvAs#Z{~@P;UX0xNX2kb>1lqVc|*rMioPI(>1q| zLUbWBD@l#>c;-6ek+QZ;qJ&^$tUe8f59VQV@zQ*$43XgM{Y{))-U@!BU`;WQXA1UKTKxSefGHOhMjuNC=}G5EY{L@l~l zdgY@a`A|~z@T|&Ju35(p{r;igaL%_q&)|9N_up!x1W1{e)a9)TWEYzk1_IwwjVF5t zDLRVJu-g|#&jqeYcXRjrtpFkXgXh|?4_-+sIruN{Hcq1?$JLpGzj~?uIJt5JIJo9c zblG?Nw0BL3Uu>9Led^mkxUMFM%p%=>LOI68hfbqUUcZHe+qbhW(-fJq6-_KP(qf&! zaL>tFOv?*)%s5kpP3X!h_F|MVPJCf$gm&9x4prIK8@IwSvZ0T!u}$`BrYxT_pT%Y3 zRkY)Y2Ie06fmpdDm$;7tf9dEmENQ_EW9}^8(9y9NpTbnyTIX9Vn|HDartz(@f}%i-U}L?*_%tNc*8xzC{2kG;Q*X zN5?`7FLi^VDR+8&OEIrBFk7?CWK+nP6L3l5Rv>9 zWf2k-JfH}{?Kw62OSn<3Q7ed>81}5o20Jrg?4rSda(iySgmeSt>4;PYdCC%CT)hEJ zMJX;WgszX$P2R3YAv?5oJq^7G#z5&p42my3E-UwdqDk2n0fex?w-PyP?QWB_c3oS( ze}|38)I1kCV1a6_*-9cd6O|+mW7tFlQlg;Z}2N@4vZh!D*pL8B_JtwSxt54iPU zdwzne?Y-iwRGu!^5GQ=9FFY}f6atNcB6sa>rewDehE0r>B?EyHmb*vx&-+ax`z38* zQ5J0PUapA>Dxe06j{zD9Ycf;NA<&;485zmN=vYBx`V(2+_LQd&KfHFg(dwj|^RzKn zT_6jDO6f#bB3h37@h_g_6G`^@>o_aH^Qd126c2^hqs#tY-?7;&J{tzM9Jn2A9^NV9 z??4s#7=K0-wPraq4!5zF9fq`=F}Y=-BYJ)|jsg;D6gAIH(3#TCWDnJOvkoN_tyvv@ z2h~97&<#f>FWa4MJu>XI|78{O*`p8jI(ub)Yk+o4-L9Z^Jf$+-a~_R31OmYPvM9!i zl4Kidf9yErvD}k+X`g#hRVL5~zEocL?xTYfnv{PQ-1TKca{@8VAw1@d?k@fo#&z+k zeWHQRENHo8)Rr8mgfK3Fzzd#ZpmkMVtGrdGbcOE#>PwNIxPo>r;X4f^)y}3{;m{hq zV`_l7c8R^4o1Qt4VF2ArP`w$yIbmV_dYPLQN)?2aI2Nk$$YCpPP|%c0&!*#|){xf1 zj|4KmN6iic6+>LC~WF7~PE5Mu} z1mwqKSVZ6fcekiXhe5wvFIlZ5lARZAN|Mm2C97wYTz?ng7aR zx$dw>a$t62P4b>RkT&?9keBjeAk0Z`>^+#>R1)be(0Hy4&Nt3luO}YlwIpQ3B&0PD zO)HR{U75omdl!DTKf5cKmT*E6)|v;c%$Iwb#YtoBZ?#vYrfWDIqQJC*$TL@o?n0*W z+bO?sK3urQ`$USBIc0g!T47BcCeYGUB^cr>b;3b3Vaki4vPtN3iYhA-xPu);hX~eJ zXjgs{y^s^vmkr&@?=-Kpa(=`vEiJ?`Urp+m981FZe73J=%%UNp#(U4xsnkMGeSDWG zpV3x{HMPRGH$bmQT%rF;X=3rs^epSCasDGvR(f znnep@ZtMi8Qn#y*->tT?V^78i4~KRQb@rq>8$p2SlgP+P@7dpS!!NCeIFU%C3`! zlGgs_@Z{lU*Y}lM4vU&a*Llc_IyN1CmfRuov zq(f<4D&wg5ub=XI19hhk-Q(K#kB?JCF!++k8P&RA+N(F{OaIFNUi!V}DAO1>dxPUK zO81_Sw;(t6q*JX16@MyZni$==Zw`ZkXAi~ct5$fkt8``S;?zm@3e>;*v8&U*AG#RT zOqL2b4qLW3LxQWYaDn1T0-}Km(1H>e^pqrcTwxkbIvX+U$TG-WV2avIda&HMxsI2Y zC2YtJ1W;$R9?qRy7ZL2-&w&4wAeQU(5=@_r$4|iCs)HkBs?uvmJUCOXvWm8Z<69a; z%@{W%jDbQ2u*Y13QHCTWqx4=BV(p$F)Z{iPB-}E3nq&Z*QbSTuK*?(6S|kS;E)1;O zp~0VsNu%3A`~*N(g?LtjW;FyExxHW6)+iM@_v=0Ej25+WEUZk;=h^l*kgMh^w{~?J zZ(l-%t#4*bS8x>GNJvj`=w5(19@pYp$#IgS1u`;y8=MOV%IDBVT6&wGShxwx;~hnO z)H^$fozO-O(yF1#A|~zID_6=9`m9^~_`wejdVN;r@ZmDu{L;^G0s5sEQ0Sko4s2;} z{MrBSDaSACA4c0rPvB&2$*94w|I0ALpRiz*x%FmJl(BoxLzwo7B5yf{?=LQhnbNHq z{!<#LkL7mqfN=^rhVj4()8uZp+jAu$jY6Bl@tk?6oTf#OHx%l9w!_)_o1-kIS z$`yuJIS*V(JWyVw2ZpOkuWfHjRmxZ`S{`p8aW$@GDfU(c9%tPT?RhIG$Zpx#LJuM0 zgviShSv{BJQxZy8Xm3;J79>LycRR@Il(;=vl4|FxRfr#qhb4+jBnv`T%+(D1rCI9R8fI@Rp!}xlr;Ze@DHD%#|DhQ>tsDG|_1_X^Khbdl+rE$fDK6)laeR0f z|7ku}y2hy72hC~T@X^!q!zUuXZ22lwwPuy4ZV~&V@r=GeD(Ebhb1K?i)K~q4aYB66 zQ+o-MV!9>?E!r$1zF8F38zurd1HE7RtWl$}{MSDYEanWEO>0Goh8r(cs}>ylsft3* zjqy$9Og8KM0Ex2(eF%!h3RT&Koss&$j)d{4>ez^PAujESRS6L6tFa=aSrg_NCr~dw zL^<2K;I8m#m5euYuwY^^Pvja*Q&%f`+C)*^E>DlRKWHnay4fy5=ZX^AOI&1Al&d%C z*qb;&U*cM&6iRWbsFWi!44k2wX5uHn$ZJU!uL?ey-WLJE9k85igXS=eAEUrxrNUo$|x#-AAdAvNXAz4pUUwre$CB-7PMI((|MA& zt6wJAPzx#@?Tz6C{n{~mb(tW#HL6v8N+Q0n_JXAPRfklvfxN!*wlJSOPj$-#f42Ld zi)S-4qyxZ7l0f9a#jXw>#*5?{seVf~a1nU-2h~Z*`3x2Ztz|vVjlQiS-*B_uUhcEJ z!7x)^?9?d9tegZ@j+c||(~?+vf2gyvv!WyQj!1GKTVjBy(rB{H-#`Ri@|;AhggGjV zrvw7XDimocMW@H7#I}S5S@n7oQ-(}wH!MjdG_;hd5*Ct{1r+h@V1|?)kkOf$cy6{s zyE&(^NKYxe&Gik*amOwSwqENJaB@@$s`RX!_EVBZrJm$qGC?Q=F>oQ_es!`|4@sQ} zfay&W=t%Smq7_Q=XNx@=D08~I2Q4MZ`RyLzv*kKn<4otx7=e(VkDA+yy9gl$FuHiG z-d+@DIfam;DR`kxAUJKMH$iMYO>SDdHKq;QDrack(H7OG4?e$qBK6rTMDlBg8aB1J z5kgs9@aU?jf64BCJpHGNcFvFgy^VYpPhC@4b?08)Vy<-M8ql(l0VPHt#JSp>aw;Vc z(Wa5YpUB{M#{9tO|N5>I`}Kwe&fm^_x9+_Ue?N2>{ciHLsGq$biJO^qRPQ~T?T`;H z*egcsKz%x8=(zOO&{8r#)qE6n;mL?XBxpKoDp-xJdoB@RRV#R_5Jj}H2wb-5ncU4r zwjf$>#DiBI&EHqUFni~BQ)B4Yn--4les%dLs;{P=KmBFFJI~yIyZ4*wr`HY0&(&(i z>{dATzrHZ(vB~_76PKu0^sZZH=LllFQGRGuGE$}ub`ug`27sDL8ix`5#t_AuA%lRz zZ4qpYwYFqol2pKI^c&1yFOa{fymsWF!0L+*um9>e^TyxSOk^HiJoBn>F8;ODZw9Yj zmW$R^eR22h9>M6MF6YbTJrk)_Gj=ukjAPq6nSOUOdf{ICo})eUID5+F6+g>&^>K3V z@KJ}#+Q(u-znnW=(_(SC+MLb~VN~f0SMTO!p!kX}5R)kvWm~yC-9W|8e6l>RxLU?wQIiF(mRVXE)63ro{8(PYp}k7h^Bf1xgpoE|?cG%)4>^ zxv7(zYQ)Ip?Q-@wB_B$J_3)iVUs+LjbNf=UnqYCu2++bv0RoORlXkp#;93!`DgqN@ zuH@UhQ3y?LScvzuewXtb(e%QS=~;UHH}5{IB)5&K0|oj^cI&nahRb-BZron2OfGx9 z^iai&x2{%WNMx8K|L?y(-Hq5&y{Edxt?9eM8((OX!tqd#cXq_%^lcWR${A08db(kx zl#7{gNm}t4PRBtw2_n>EbX5&|T`8}kv$_8zwe@`d6J5;TpWF4hZd&p2@7%)we1GkR z4U0+Q3-(m^La=?JT3?p%6lm)#SKrv)pSJhj`1~g()_D4*+3_8wu<~Fj44W0+LX5kG zouIg@XXHFu<`hzr$h1XLsPRS#ld+(jRS~l3+Us{EMIR;BL!;dJMQQ2Pr`CW^;pkhx zg$wZO+!^c_uRnA3%D=CBB02c(7o4x|eXVHCmWxKLN9w9;OIweQ)k*B@xI?ziOP@ot z&ykS1>kQ26Ri*ReEp?Glz2nK`a8f(WP7b|t3+5qcxTQYNrMI94ehO!tkj%<}?!zdN z*2qTVz#nbW?HLctmDXgn07|YR0*rghPzfM5?dijlzs{cL{&V)nssEgM{zM(;m$&~_ z@O|~utFk}5ReQuXk>uSs+NIs!ZF^->{mPen-uZ{Urp7a(-~QZMmO0X57*|_rzI~$@ z`7-E!DV-`KfZy7LN<5Lyo8yuLaeV?oH1uZ?UZU|1_+XS0*QS=Ho+O4k(oS5a_vB?q z&1ZRH(A5~kUR{VD-0XV&sdJ5qBZHa zmK!p6ku+O|uxpKx$xW8iVg1|JFm^z8MwX`8^MK;6>L(QKo{KdoWfi;=N+s4Lr383e zB_(ya8bnQDwT{TPZn_lq5c)0?7wV$#zm;#Qgp0G`AD68u;n&c|>z{x9)m_Tfw|>m- ze(X1vT@|~Gk1KedRDeqgm4d4OH{vuTFjxDA+Oxjk_DU z7qKPVqkQM#>t}bhb0%lLf06il@KcLNer33AIIZ?2l_AG5d=w~G^S4^-GTkG)MdkwJ z45*V8-i4rY*AX$YC~_!)?LnFxi|I*fg)m2)d*ldBtTytI9uJ0;dOAwzu)Fx0gV{&5 zHMvwveEsZT7nz!!h=Kd)Jb@;2XHw?IzFYI~-UlZVzhPeb>QBBGe*g44vRr>&)Q;A` zO9KwUsJCuPbz^+u+w-z)cU?i1I00c<+tui*@EScCo`fU*Oh1{zsj((IQ-exw5OO=f z8`lWwMBFXjTgtQ`BWf$!6oo9=f!h8VknG;gwNz}(Lm#dGRU*Ijo5$OKws7yj$iX`eXYoTqLr86cyXI5bgph{YSEijmA?=;FaA^cjELX=-g_MhETj8bZxn}hc2nsg zaB8MxOzTOIS|#yl1nF+!h639#fUPl-i39-%Rci>!D&}H zsy>-_pZr#{u~wA6?l?C^^JDpuHvgTSu#&KA42fCUTLT}-Qk z{vQ2Oi&GAAlmg-*2#^sLgtkmoh{r0q<%DWS= z1pH*P2M%V8tFU4;hRqqG1Acq{-n|CHSN7i&ck*`Cc4uFnlZ*A@7rH9)n=R&*0*#IC zik{8w8(yY|*r<6zKZa-c*cWQ~B|jV(o0oEp@)AFO!$fq!pgb|5$HkI`hJyBi!H}(G zWUdZuBL_CCfILy;jclc?54!I(B=e(}qCVzt^3X5YUxjdOR$#H;4U$(Nk`;d!!F`icBB<5%f%G@2o$_l}CShlp# z_JWQPbmf)GH@dnJbs#xqi@rcpRMZwExk1uv-;Y`^2K7W!#I~ZG3(-)FrDxK!LZ5)WX6i8icrna|yS0%|EQl8|~=K#@e zxCLMAV#_M;fj0-1XQy9Z{X&UMd^ls%Q?MvE`gAn%`d4LeC!O1+l|GDuhz=bDCNMmPSqJ%oS5xMP)5p-xSC1pR7hVn1T#b_sO>)kWKWVX$aX*v7Vj8Tc#|x zwud?dO|3wN|Cr?~dlOqN3M)k@-Vi%Fvct4@A8h4Ey|iD}86}3iug606ZLOZbSgcjG z&%`KZ(a=q+e@IfLGk-PY^DMNWLq}dDdCeddEnPEjnwf01nS(v!1T*~Zk>{doro6+p zcak#fPnKcxU;5m2YQNv{wrTs#2jd7$@1k&r`X zqxjOO9;dU1AH~;}M(GDlCiP}*Ns+tK+G0%3!o!1>q+|h-Ci-BCUa^^5nC4R_V_TM8 z1T)ttfmkX@5jeyS(DZaX)k$>;jY7nmbdf5pmeC(gpVn_~!$4YRdq8-cZG9c0)u25m zOm|3aOOq8)&6GqdkU>bjjo{q$=tUfXk!<3SaUh`E?Bqaut6q+Sw`Zk!>BNZP;^I1^ zqXejHp{;_O6Uiik#2EZaVhRVU3vtto6^lEPi60=Yke%wk%x$C#xqbU<`_ylq@uwS< zH`F`@mL3%Y^9Tka?QK?Kx<-meb@KH#Bbjuf9Icgd(&Ait7m?iJQPJf^VfFPr{EW57 z4QmO?B- zX9I_k5&_^D#KGZ|zxg&k{-NeT-u9NK?`vLurl;vnne0QyDk|dR%im%bPgR+MZ}~yN z*{rWM1jURgvfeX%it87OcHPQ2m)lPj(E;hO{DA`|NK*o0!i+{^tP@MqW!Y~DJ-9KU zR-1Ng$sSG1@FCl_DCz?Ey3Oxe%643^P#C74NL$BFit;17HD6VYHi83zcGT41?&{Sr z(i-xf9?G&$#Yn`_h4Jj`9mABqr=wF-l_pz3HNb;C^3jc)UOXZ~I_=ku$MFK#rx zB$Ul$2M?l>xit6_MdKv6%sV@7EA@Ipa)5ZYxY%XCbm>yoo?+6+cSb>Cte{2BE?aT8 z@L1&buxGAi#M3A_28s(lt)(!|xSpY{BSw2QusoT9=Ki$8J&mXzoU}}v&qTh_megt` zV=fu#5EW0sFtG)?w>pc+Nz3>*ZG1tr4RezNa_>c$hxe!B$vu4@e)<`$itM;bEn^yi z)-Gg*jolu*(&AzCwq(IESd)AWY^sm)TCE7iSnm4(7$5-dy&r51UHxQ9V-%j8uGK>9 zE!voiU)dN$%@s1Sbh(8fSJ&7?(*trr0ZGW>bV1<@$P-Sir)NP3plWwIdwYm2&DIHt z0uyLmsWgWlmu|RpNphQysf8E?>r)ZeE|gr`BighZ^+}beoDE|VkNafW3E#Xbz7u#6 zy#==15x$E;)4jE*>C&KGe}*y%Yl3hk5FC+?mmuxRWkIa#msTN_EgJd)d$_Y2YC_cc zRvgCuw(#-)x1sU%5Bt*(4GqAIqYs9d+aTg_KYFz5(W5<&9znd(zdd@i_tB$*U!E%c zTUXcP)mvUuXZ2;o|90@skx#BaUe0?m1~_QvP^a&`Q{;2+Fme-P${La5^r0nlN^ zfA(B1?R9n}G+vw>bxQ0wDR)%Iq6_4G%RWNC_g=v1IqI};+Y0c<=gyQglGZ4rfYR-A z6;34aymbL@#ObU{XqEL|9-+LCRpX2N!!r=`tn;lEi< zWU_Pvh^15yKBbr}PrXaxs4fw0X)hEw?3=mi{wRKqD(4Lk zlFHHsWO^`x33NdQTI-P-sWwUUtfp8~TI96L_jo)Ws#{3eU43kKS5mY(+1dC2x$hGM zP@BbDXaI1g_&|~=)hgpOHXqQME)pV+%1tfU#EG!zB zk+XJbFPnM`yq-duAIGeud_c@86|@^SrvS?|ZWRZ2lY$CzOWLxH#3dr>GR<0BAYpu& zGO!qocg3K7dNLN$ca^A1ZHc*h0s19TxEen(e3gk7Q&`4${m zAi2Z}B2dH@L!fiutabHn*UB< z0DH6!%oFRp<^(Vr{Xa~-3s@6(zW+ZnnS>z(oCzTv5Zz?Bg&4aD1&fw;Cn4b`*aQvm6oMA2T>3v{V_If%BaUAuqX zpFL-f=ePCuargK9_Rr%}^Hd)nCQRo0xxC-6_lBnFVK}yPVB2-Jd#FZq{zl!j8k)${ ze~^$L-`6$wABHOpsxg_GYZ+~0g4q$9TxIrT5~j+ne3scJONsCG43aNa8B02bV#9RP zAa6u*6(&)0VX~rZYdd0y&jRc?YO2+Or6r@y)g;xrbf{NW?CHP8X}TKFL#}3`f=4T& zs7{#$6q0!uj#2%HVY4+kS>>!YxnxozYvcOTvMQ-&qmNt-N6kb^fvMbk@z%mLUF4G^ zl0&Fjh5^H7p{t?GR^(O>4bLTS51L_1V8Vgh2U59k8*Q8hK(qNijrmKTK$r3zYlxdm!t+ra zHu3xmo6wghD)+4gA@>i?5WlP5p-<0sLy_CEoiIYDd$Kqin74p8>TRJ1 z>CpIi0}>MzP;a@@?|U-wf!pEAwUB-_ z2Us46oyH~LBLaT!i_u%Kg6iNX9;GpVuU zbAIYdDqb!pt{TckAE@{ejIdZ)i3DLCgee>#rSKR!y&gk(?*VluW;qDi(RUiYgf|*) zr_B5msPuRk6uof(ig%=Jas+&cnvj`qzpVJX7ZoX?v(v_U#Rr^ImuoX@cGZv7a8k zKh`706UGpbM81j*I?cbRmT8k=<;cx$6XQGkHXIRqc$s)MNlZGH-Ak^6s5fR_Y&zPm z!z_;Xzpp>76c?C{(HUFB&RS&mYU2(j6(iA)$r!GL`l{Dgd(S1_o(QZ-`{KI}%aY3& zF2=2UhnSEc8=6Q2=yuv!W$ml3`hQ#Dw!6#8&&%L~RlKVVRcEU%sLZ#`qs}1Qt}?G| zYx~>7!=tfVw#ebS@~*P+g=vo>+Lo>st2a_)e?Tt31vZB6PDh{+%I@oBZC=-aR6tS4U zuR%pd5FSCqmro7w3+lo=SU)_?NCs=KJk@`|oI$E&khy?%qZ-t0AW*c6mKVFyyXv~| zbRSa)oYA@>2}}ArxgzDECooiz(3nd#?XTD`OFSy?5LZje)p}r?LTzTpt`BCmmrJry z!`;k|%Vxl=@Z2@JGR?%2gB;gio@+hI;9w39_3u z)v$@%jpyi1T1|~Odco&EV^+qk-zN^=s5{83Fm5+C*y{LHsI{ZOxwXCRTZzt$jBR1Q zX)6dE6K19f-oh@1w;%Pzn!`?o1Jz{<6R{GsvW`rdJkB{vljq$|nRUJ^MjGl6s<Y9eW;Sf3baT5f!GLtkFrJHyt2>Qjk#bx4rmDsFH4+4V2`{&xGQ|I!aP z?H&2;VD0sv?cei_Pu~Ak_WxWO^#AV8!j0*S&&YYA4nBN5L(9YkhEy@yJ9sor&5X{G zBQVe<$UH5Ecc02CzNDYYBqYUECQodYirfNEb=Nd(n1Y&(DVx=l0aX?!dWfVKx3Qc| zCg|NHBC&+q7$t)dY$35`L}TimrB)Ue^nAwf*jQ!>rSk!KM9+iG2F_GJ!a%D#O|}cA zYQ~>4r-!ab(h&dD69;l%gJhvApr_M)vqNT@qZDF| zcw-{Ec{94PR~DC_nMrG1dGTq(Dyb1etiS?=*n|2jhK`CH>g2Xldi}88aMF}FICyy! z>j_@FtB|7|m`q~a({E2pX@L21l@35g3~2Jf0XQA1W0jR7Tz2v^ckz?6?1BDEQQ4L&H6#g{!j_vlY?r%l!EkmddNAWWjsQyabdZTqnZ zb&WVHjQj^IW)uY?&-z2rJgdU%oaFUEY{A) z^ys{@{i$gn{lz}UCX^y%yUljboh~~IVF-w}CURhAv%y?BHTK`CR;csFkxk2(%ZY}U zKR2ax=L$<>(qXB}g*mTu)+UCJkL^l7Eg5E{gD$abi897kLle&MaBH;b>?(oOykAoV zEW~>*=f*KY#k@atys`N7-#aig>wY?4;!(kqlpT;~nq^WBOG04Q52n@G-4JB|WTSpl zPgWEoZ7vyFVXmyGD&a5QQpwO4Bf)>z0vXh2-Hps5Ub%h|C)7t3#U>c)WvErLn+?zp z^J=^!Lh~e5Bsr7;cSDS7X@kaqOh-Av45&A=hrc)kytg`7X(=uQky-Q>z+ZQtNZu_R z>@v&Ta)D0AIYrzMgoF`f5~fjhbQb0$!ILs>)qnr*Mj}ko?NTE*h1bn1tY4k?5$ya~ zB#U*@knzD6irAGhKP)kl{Letr8xTQ-iwNTuYm$syk^fr%N;6wt(yhLboNOa+BFd6F z0=`LjKZ4vAvEdHeZ&&5gxf1bSN$bovoB3N?{V}WoochR>Q; zKKRlZZIFMNnCT3g&+g z>(l_PppgyMQ#A*P%(J5*L~+SF7>V-S7=gU}u5Lwk*LeD)*&YAy)pt8}6M!{D^^4n( zwTi{>Lq?Jt3GD*X{45?$Lwqc%rwuLm9(f(SYd+pJYd0&9>oW&z^AnhGLvgkDTj_hP z-HsE^n5&@jO=4`&D>&B4O0R1-{R!ch7}xT>O|!%98#)aq+o%_jXMq^E<5-Id8`7DJ(P71FsN}A}&`8kz+H{y2gVp7a(LPdzACwDDM#9Jq zbUG?=Dmvs=q8$!!y=T^SU+&(|^S~I9B{9~k0)EkA# z7JAFD)Nxv+_2~iX~?baj0Z&c9ik!M zZMsI5qcS!pzQ4-=k3)WZGK5Scu)P`+2k+jkC`(D}$C-xAKF`EZm?McO*b>LJX=YwB zuBBC--$4U&@5;PT(IR&c4V~`@O_9M%IQ9rp{a>srn+ONha_6 zK7Q#)QzA`Q`1Z$=pmL;@W-CeZ2Lo=64!JMZH_ArEI)) z|EXcbrcvLsrYx4A`|i0e@18iRL`0JzPD5*#JlNdDT z?&WuLO37@hG9L@Me_|ml`yhc0u3+%B}9KOjtijI%36zIK!IhIj%gn zYrL61HH)rvSu4_Hs>M+vtHRSy-Fg75fa+`2hp7x)BThP)k(q^HeF6u(Ypaeo=w*VL z=@rCnw1`Vz-^no%HJ*;&B%DC-F`K(FL&0V$1$rOkR0NtPGC7c(Y~{iO8YMM$X za$L;_1O@7pWQ(~7JYnvLQ2GqQrQ;%ipphMA};xkQiAJ1Ui!Q(zb9MY+^$$<3=@O z@!YG@o%Sz$ZuPn0i2W+Uk~pZ zc74b0Fyo3}o9KT`pTTT@`0A?uHZ9jyU`+_aRHs*XMf=lJ;?-WMxKN=cA=!SGknR@B z7UDIb2eeCGl(PQd&;@|Nfa3a)TBY}2gz@#YeyeRLlQyNp*;<)++vCB3M3G5HtXGGL zTy?Ko@cYvbaeCH!CEyaQiVn3I#6la<&Fj}B!!*ww8zx|>;VFv-!O;y`ST$iTt}ORh zt#y||e5JH6%K#v zb`wdlNQW2)kTFKlz}k^AhE5Y2WpDe@JV~Ta6c>SbEmUv4TRC+oDH#q*kZd;}gK~v@ zhq1dXpTGUJKOI5Z2M3Y(>>8&!py;=k=@V)W6l~GL!|r%ZJ`(Q55t4;RA>2}TWd18N zW8b4(Z@=&UC_+@ddi*JMtGKhtCyJqiV<`9P+nPIPeoKbC7-!;}1Pq76H^8H{aTs%r z408sB{tMV@OwZ##p|ardRboq!PMoW8oC6VexYk1T@gZ5g&2!QG8XARq8s8UHS`t?z zofYv53zt98X%gI(3Dd`uXjLm3oq?1_zRqx)S1A$5b18+Opowkw#<;=Wt>ip}{6)J) z;yGvTrLZNBxTXn7H-|`=Rg!rU7UhX?XoN8% zH?72>oZ$;2yhSq|9rY*{+lZAevj?d|BnRh>2(yA>XpxN2qfDUAR%_CwsB<^x=4Kf- zDmjYq-Y?{lbbm2uQ^3c76YVPEkc%5g9~zsrp|F`nHSz8hy=G-xKQKCzS(q*1?FoALF3whOv*Kf<(pUM1)+$>i$W2?LjX-9!#hT^D4 zSiMimc3T-Y=tnWA7{tD}P2;xxn5X}Qym_EfYNBnFq*9z6pV?KurR&%rh99|vAf86M z7GV&P@wz8dayak-+>~7A5c-{Uy}#$PGYxF*P^lQXX8KyZq-?{ND01alcyr;e?0Wv> zBSEV#K5AWls`*RHrs10@)XDWAJ~r_OLc6>*!~B_ zsnNncdtZ8uIu=`^nBnTZf3Vl!_U#(82J1UDpp~kBVzV*K_OUZ%=BUddo}N6d*}-H{ z)^9eV*Jm6eeEug*FTbPPfZNcQ^ooMlUi(5XM*B_+>spt6ZtX~AI4M{2`;U# z2U)%`al9#~)ffd)!OQBcXY8kBT|E}yU)<0%O)qTltyAt?JL{SVP28|l89>>&FZ?Zw z!v<30=kCoUbWSPC9Q8x8wbxK2a$w#{t#w+OUBTM-mJ1cdt~HV${!ElvR}S-Vgg<&h zu{B|oPQ#@8F`XD9fqX=kdL9<56-JLG6uzB*duG7ire*Sq3gS1Kit&Nb{7hPEDxxU0 z`$^tQAp`*^hfb+41oP|7qoboZK9D(3ZyunlWfg9fx!yce*px0ds0;i?;H9Gn<($BJ z?kg0$Ix}M|D=V0l6&>I&!igBbs3dWgNs^$7VGi6VYB4C9NKWD9m&1ulBh8 zN4<2hrON1DeG<<)KM#5a)Jco4w8-;Dx#_ehG!e#DCndGD~XMAup zIlod)8_Fa-UZS!ece%8k5$I%51m1Y0x_@p;Q!TX=lLv;_(u^-1o`DbgXAzMs`;H2U zOq9$chu1@CeMS7_nGk(p{&0By-ebp0cGGbb;9ih z`j3c=r=a!PoMU3OV`#D-Bgr9jbkn7^-pRhlNIR`#F;~ZN zS`DhU#ipORk_}&MyG9l)Wh)(%r^gZF?%LmeEr>q?A}T>6`GzdPhd;rfZ|F>E)&Vv6$lg(u6ayK%p9_ zdG*83$`H0#YG%u-c%v=7!ZUrM#pM@7dCU{-IRu@?R)7f50p|QMYpz04j`eK2)()S* z^~jvj_T|K*I~M`5E3W#{y{|g9?fn0}JaFX5xRsc1TGp1)o1UwA5`uhex$0G?Ubk)W z&kbj{2q?>Lp^PoV|61sgV+ftMU)$8A-LG3;@&L)wn=?(E$1k)n7gAq2f#z{15J5zZ zWTYjkvn6I#_TB&zF*P*6f(vxDAHGw2@AThJjUEYHn7m#z8T-SHf2pXAZ=A7rnT~ZH z_?&a@YbuxvznSE%+dir8Z8G?0mQT9`b<=eBI07rko}#knzlR_OU)I~|IZ?4B%D?^* zos(H2oG2tqy-{KfOq%?hKIIO?wwI^1$ETIpC5MA5E!%N*hZgSfO-se6es%0?wJ(0M zJoZLt@!9`X{HNUWJw0_#?cC7H-Kdor_5coa_}ths?OU$BI}4t{Zh;I{FQs^y1p;ZH(8+y2DiWdKQGI!e|Co}kQRV{oBt5%;R;1* zMP*rgr}_!|UZwMyAhS6qsOjTp>zeh{3McSyXXRu^Aonyv5dDCNrw>R?A9V%Dm1bxf zESpQ=-$*;|e`D=mjobfyr&2m}DfF}UujPMve$P-d5bKeZnkDx_s5U+ICBX#%dmpY% z2&nheFD)$iG#zj1%Fd|zmP$yAL%NXHak_5MU0b=fJ7w{L#)x;GVWP@{dyKMR-!$T^ zzPvE;k}p!Fog80SD9g*!CbU zuW$Bhd7p1^?DWu>5Ch12ZKdt-=l{xhsONrP^Bd-i`UO^*cZpQO)digzmGsj}CUDtN zUXA9yUU@JN<-m*2NRRlA$F4(Nq(Ca}$Ot04` zhYUNe{e<-X3_d!l@D%F2a#0)6Er*>n)uC1u!Y8(Rq~1QTSh(K>1Op#<33ST2VuB?| zv^_V}@Feyo{Yt=Eov}EOe;bsV@kjZ9*XQ-8msYtgRyo$B#fr#k8{kNS9+wY^^kPU#w29-fo4VIl#CHkGu|q$PY+mM+btcG+x01L$6351SB#NSUt?H z+F+X{(yez}`BjMV?8qX?L4KvIY=PV_H|6OH)CGq4#O#KAN#|_vnPY-EbB;*P?73t< zpglQym{{{9I$olVkVzdes_%79mih{Ef++9bHgdInTdCczPeJE|@>AP$^Fi3EkaTX_ zlLy>~J_PSUq=(}VRO;{Au?)GbTzc4uh{@pqJ91T)Sg`Y3-z;S8zjVG6_tA;Jsv}2| zB2K)sD z6rn+r9e5*kYI4Vq?c&-VML+$>7%mY((DZOc&(p8cX_lt^ceRE=`>74c|24|w{&UEo zg1bR^;0LLoEBVIb$EAP&_59!YAixUgeR)F1m5+X-!P%-D&?Y$Lch{sHJt^KnE@diq z7!8zl-xvAp&w)x`R^Q3X#~Rqm-=9%o9 z2&<<-z!&+}aWCP$krm{0jiWR|~_>h_z8#9Fm>;x)KQbSxY8^dOUPzdh?}oOa49s$DW`A9rayG~V@qOyZvSo49Ew9?YaYygzN|g0&8TgcwqB zVYLgFDcdB7A;Bs3~D!$PD6R2VNcl_kxVga z04qW?^^Y<#HHSN)X7Vl+LJqjAI=*t~T0{PpPO2EckSeEgmC8rD8d`Esj=;}Ozv*~$#Ywfs(T|ZyesFygpMCh zLdayW9$i5r@d=0M@dV_6HycYV<~@*AR`u$JC(A4@@xOumu`bheBz{W$7@o8pQCI+w zVpsu4xKC~@{bV?Zxa;^c@;*xn^E-13Gg-qbRqsy()7p|#knOlv<&9%0 z>^-wBYL8gO#(e`FaOw0iGU(#zn#m8%i~28B!f8y44X%U+Th9u<5oP*Hv_tHcbzD_B~-{Kul+VAIBeaB&sS^FA+-0GAz_^MraV`9UW0J8_hy`l z-95Xio(Pguo^wfmo3cfk<|C}-O1STNq@RTSF~To+G#x>tlf$31UhQEgrra7K!-TTr zej#Dx13bQUTf%M6BCZ&nnOUUM(zyqUMSG^XFgTh$*LN#kcu-g^hvFhF-2m(?8*UV6 z8Ez!e6#_9rEREZylBb8Cedtp@IyD~X-o(vb1)EDI7F(vaZ zKx`6@rb|blL_^`v>Uci{+R~`V6``9=Y_BW;wL)UXmLnI;pv|br#E4m7`tk@pn}?V1 zgkZ+gg9OMtU{eq9Pdzq7uJ49h8RztcL@7?wq7l3(NlfeT``}3@k(*sW-aMFR2xQLD zB-DFSJ*{wG4(3rOD>54KXdzSTiV#A?Znjjyn+0<`clguN()Jh`dXRp15aC%-{Ix?4 zj6g=UXRY?^bwi=*()S;gTPBlPSlyp}6app46S?m_;_jMve{-_$b|~*m#^^Why!_pg z{_nyc+1Ptc2Zf1~&&E;^jbb#Udph9Tko9b*$+U+;v=eLz`s`&q9^_Mbs+-5Pn2%}S zm7?_lN`oC2iS=LDS;wcd_DNLA^Sekz0b>3j%LQEZvEP5b7@iy+Q@PbD z-=18jMd2`IEEjW;O}6P{W4~9#BE5H`F=gz6MRA86*i znFvB$RnaLaXLn^uV)HH3bVH?*arv$rTkT-403 zG?YCk^hkzIspjNNebk;`ufXdyn>j+$)eth!X(muw8muI9d(@5>deUca5w<3P_eTzI zAD+>ua|;Y9N6FHv3J(Lz(E@|y)a(`4rItdOfio1Es%73Xa~)KTg)B~bfap<#CXnf- z2nTZz7-hsbQs6U4Jxz3z93xp{#Gwalq3HynZ9rI!*DFQ0kd}IwJ+QrH9=Qq!ln0CJ z`*;hV!Ju(C&h~bw84RI}HaaUvX0W)K0mtZW|LeUA0a5b>!URzS^S9unhFX(UbZ13v z{e3sbDJ(rPKDAtg6TAISZYKEhYlL>*v^#?EG%CkP2sLId&~f;v^$xYE=EIF75n6jVXy^snBgT}z9eUx~yvdn_d z7Xl|ufVbF%_;SQ~V2LdD#Z?zcW*Min)+Lw973zyut8ZHQc!(=24U=dG0>~>A8hJpb zpj*w;#Cn*nuJ0DpiZw7t;OAGv8ncSkCwWO2RhC9}qv%$ka;%@b5*Q}jLuzA-$Eh9g z%HSbL0Mf_}D@fVG_ygRG7p50v84_Wh!Vyr$Qv~2Up zHpfXKJdxUr9p%Af0Lctl!)-cLCGsxN*zSmcq$2V-Na9iNH{F(X6;dM1Y+6~MMWzQD z^~RJ`L(2M6w%qJ1##K0iXR279mnhs7a^BD*{o9vIlcpzD4;8~;k%{cX3>^Foh;I&e zF@Ya$xzf+^V!Qg-Z0&o{#sM|D+Occb>3XNXV|X+E+rRm&}54lWC#lVWj3cGrsoxjd)Io zOrCZk)3EvuJ7BiEr2P5Nlw2^mWuA(1Wt-#d^Ll93wz2CujA>dsz*yJ$cBC_viwupYpdAjEMPo$ycSiUZM zjHfr*U#og@cd%m)#8E(XJ6`j&fPfQ0vdFAvjg$&&Dp`&YQJ`&|OI~f6QQ(Cxmujxg zkiR%nKf}69%X2kdf)FaZKblFvTO8+Pnj#{W2O>&wWQc?=StD7~te0d%utMCBhT3W- z3K=QLuRV2aG^qE?waL5$LAX1@`lCn&XbIKG{WiEs1F}+2PWCLIW@E1mk6%TO&Q1ynS2*|ZRY9=IbA0p<+yct7d zCNr|Tg%%JMMyX&bU_{&)Bf%i}j}*)@NDsuD;RuVms3K}j*o-rzO_vnWQ*r1ZuZFuC z?8rzG3ZW=^9!31>{kJ_Vp!tC-)cdtHf8G}^97sCFi3L;=F=;0lBU#^+UvOr??RjD9 z>W;~Z#EzHlNOvVRrtIn|Da8I zb!fcR7moy8Zxc;oR&W0gcH=n+N!^8RH`@?o?fe@Zf+vJklQt^wixlfLm12n6m#kSH zx19Qeb(%g`qfab;4OvuHJ}0BtPnzL0=e@RaxI9GF=E39aQQA~19}v7pg<- zu^{X3C&}wpYx1oHbjUnjrpDHn5Hz@cIRW|mNjK*Tx9N_8Hsij=7c4|X_}nUouMvo( zEE9qf)K-s>&z4tgHL=~Qdd2PfLPcqbaa(7GDkpnr&bB=eVD!qEk$jSKFi^(dzdf42 z*rpO|+1y6BMi~xWBA~2ikq%B(1g+vKd{7RFkb_^3L#)*G*Y`&Hc5lw0lPYPZXh+_F zq61YRP)A;w2_D*Y=RER*9Xocsy7fwVEjj+KjDP8>2u-}3leNM3^sB)ir#N76nJ^B5 zh-VN!^H0ClqAKMC6A!gCqMY!KaR?H@EpidUqCcO@XsFFFj`co|BI|uqTvggv4HIud z5@1a@JMl;POI6!`2am7Go*`AM5k1$cao=dn;Omy%OxKhqvfF0U)jWq#Y(OSFz#cs~2aSm10=}H|TY92Y02M^=&L_n%<7X z-6!QjJ%cLASP}Q?r0=+EMCC<8br^s04U5!D=__GBcYT|6awyJvb{X*=$0l6vT`dRf zvbdMFMQ2jCO^>&aEIrNlXq${;edXF~wTN-<@X>YGS@2t?4SPRyISeg|f+fVB?=|vnYLDtlv**ZPW10AXZfK{_FZQ>#7!w;-;kA+NUtwm-J z^a<1jG(D0GiE5p|Q@NnlukTQ^g#xcy^yHff$ySextge>hUOn*^9LvpSq65b9D+F*_ zZmAGKuN2h!+mQf@k;Nbb!Gd(|wOnBZ4e*`w{D1<#v#>I#o9&uW+1zIpm~He^Su%c@h$ zhu*kdrB!c8D9ftfV+)Ae3}4KMfFxN7iXDtbLZ^p{#u}e8Qaav;x}Axl#jxfO=P*{y zBN2tjelN@qHvJ{&+N}{Lcv>kA*MhckpOG~t&R@8|67@FwXrwzRBtp!LN>UScbf4rG zdiaq41C!CDEDgy41u0*jM^7%9H@0>UH@y>do#m^lCR32y_~$?AaK}*2#KBb~!u05j z-B~0d%I_1K-wF&2D&VH5#fv*G%H<3cFq#y@X5Ub@u`yI`AaYGUxjY$wVvP%3nuSZK zv1~k72y0SOHV15s8L#&gn$mNR4$v8ui-$GgcEyvPUS zC=mjRokR1GpfsY9QTKV4y^p-;X(41cVfD$j5m^`rZ7^JhOOgsFedWES}?bQN~!y>j~qc}Go1JZu1@B@2mmz*td798o`lD7G6N;)z){)O zZ9X{ZQ8gD2syZO1$pLlbF?NxB3;7m-ddO3wS#QI4Ie;5A`~cZut)>oB$t&QxRdgE? zw^P})BJEPtzNO`MnV-T$m_$hL3W#z(q8bNLHcpCZ50`W9lDx8P}9t*o*ZP(LrD3Z zviG93yVf07V z*!;)%?9*_n{=p2EtCuJ;W-UpXb+|9P$`zt;ch4}t@lMUXC_;6^rrXf}!GtPdRzBY~ zqIK$8?WddK+!F-ho$I(!ivy_K>~NqvjS)uX+7V|?j3qfM&x>uv(ddB*t!TJ)JIE;# z9n+x6T^x6qZK-P+NpS2YcQ%20mYR3{?6*3vc=tWkro|>-1|r)$^2IAByM~yzW;My#UBAOuRd7zQ6}`noV;G-d zODse^)MbFSbE%2$c3_LD&6kMW(86?~icw#@Ny>|Q=@+F$qSs5WaW-icdQbi60L`$P zah@=0fawS$i&Bpb>IWVaxHO+L43W&%qTGP(=J=%+4YfJmkn<5#`8n9CFuyvD%iPde zVinLsc)QF5N#N;8C8)2oP8K1%^qx{wdJ8HlR8C>L{i6M=;E!^hcs=PvvYITuEf6O} ze~j`0nnL%Rz}=ORQIg)S&dc1!nt4c^X_ok(0fQ8VuovPBbD;a3)tmYIPw;GpHlXvz zW?>#z8p+_<1$zHBUhpIFB$=9rAYPfClZ-Jef6UGy;_HS^d`q@o<$*axv=1j%y367^{MtkQCO_fr1g{}^e~^`Xy^MDII~^-zQwEma_}Xh;mhBIrY7IV zxQ2W@JpB36!PJK6ui}3AJ;mj|g_4HJ!xqoW>pS;no}q4hUQZ1@8#HCv-I@WbJ!N$) zgvUdQ!(~?CNccA8uurw7C}xq^$I8fsFt(E_7R#*0DP_GqTQN|yoW?u#=u-W63Lbq1eq_|t_+Vg^2&`xx;5a~sbV)C6^_-GKGU{=SdS$%aDvK9q zq48j8yT}RCL`9ErTEh}PR4*MNBSBy)!m0@xJ&_tOlDHp`k%%7K4FG);-;xQ_wY;VZ zDX_{F-2rm9nm820bX3QzN{=48xEcn#!7yV{pWxIrEVVpM| zCB=H<9wgatEK^MG#?#wHYCT85H1(B*_<)f70QOnP8iW#!=p{7siXRSQi60qi!xq;elnB5X;#!1J9%|+CyQDa#PYb+}+FYd`gwI+}MIG=u~|1e1EV$Y*5wzbPu$yVsh*}j{Eo&HW&et40p?tAdojqGOecL$@z`&NLaH>XBvt+<3 zA9A|(SD17gC2=64wtqA(o0E|^T`ma=1Q+4renA=DoYm&pD4TLf|D~QQ4 zFqm#FHbd;@aHh&)#nNPkq!)W(>|S?&fUd=%M>fN^0i3O&Ik**%dI7M!2Bt8O9IucN z)CCx=#IdSvQIardl*N1#SFqGh+n(fOdF5%14Q^~wc zWMzQ}1dzVhSJ`NMDglD)X@M@`ucf1FUZ$JgU7^`qB0@uPA zrY^`qNsE3WhS;RApEF3URk%(@D!p36olAdK9dBh5GqFcx*nOM_0qXbk>Jy zrPRwX z=JG;iUIG%y*9n~MrY{8h+ru*{^NO?c>{9+~hHse_!yho6I{WyxZ0Y#0KQB+EM=rnd z@zcAEWU*Z_FS++E-LIEl$h$0g_uji^Gl3z9>X~OIE37}sEE8*LMCC@akdrwQ>2sCG zhlGa4viOCv5Ii5%^Zi!Rc5}gi-*)Eh*Bu>Hz-$Zmcm_rn^F8@9QMUbUwJJ^zU~eZa zDJ=5C<^kVYRbuIo2e#kr%Dt4^*f1Wx4JYx5<9u3aaWODvGlorNL?~2tDeTlGDoepw zwz%j~v`K4=)QP#Nxv3isTytBKuA)231I9n@2^n0oewGXmC_MG%+cTc}dXJ`;u!J?9 zoYiJMboc__-mE!Fj6ffSV99l^pmAKIA%w1RlFbFrVYe8^V+bRK{DxvvZ@(NBQ;Fiu zi3RG!w*-|&5=*YrJ@JZ3i-057I|xZ+(cyv287CloqjYV0ifS}U94*NT;T>MySS&<@ zWHe`+d7)4~Ph1DS*_Due%aL}l07Q{3szErg|3gMoUmz*kJC22oVjmMV^d~sttPnKEZVR6Pgb_;-TAV) zPfl@{s!cWm2WDMa1I?wlzjG?-Pa_!zMti?9{d8i-H$J{IGEzFC&h7FbgNk(@moAx( zWIB3Y4!`iIDcEk$%#Eh)Qjhjp3slUyq4qghZh;-$t8ce#1x?7)w>s$CJOAg8{ncs9 z|MKGpM%iCZ|Lyhi+{AmQO)Y(<)SJ=IRvMg(L^r%pOg5&Z-&@X{Vp`AF9dEt9*M$=K zd9VHE6!o4AVFk!kRSb;E3U^00BjB|pSOoV7vdyKp5qv?FnmK$mUMteCE8D_Jt%mX( zGFgoPG33aVNzG{X&9%a7Tdr(-x*+~P*nQXATlfEVY1__jc)IWVB0Qn?emj)dI$S%Z z9k)K(G=V8ke?agMIX_bi(5MH?Zu3^`2PUT;NCtw$W&d!tAED4J^jv!EGj&R3Z@cg_ew-!+cv*t9OgKC}U zu3}3$>NZ(~k`db-nY-O^xMJwZCNuTw=i!>Ae!Oyh=X1aK?~Q*Gz0vyo_Y{A={n^hR zuDSEccb-GeofGQnCUeJn>S*^#mqC`g_BuqX)V-Rr9U&I1He*${@cWt728q&AdA@cZ zoV7+VmQbuo;!w({r;FU6RM4zH#L~L;TUi4RqKF3slD?UQ<;dy@wA2+v3;zfO1~;Vo z^w%Hs%0ty<{XnbxBtie1o8Nx;eBG&kzI^S~r}pVuxedyBrEXvCMoH`00_#*Ob@q|a zljh7C&O@=Ku3eTWIr-ttstV{%87nrr`y#}m^%0QQ<1X$Zy@=5%LyZQ=B#I@+dprP` zRdlGbk8}~*azEWHvAZjBGzYRVxgL3Fg^9Ss5g*O_;!WN1pTC-7w#OIlKK7qg%6;Gc zQBB`Ceqzt`+3u5Lrzf_*T@!cqB|o;-kTQL|x3zfV@j}FD@z?=Q0- zbie%Z-oGZy{N{UAt53Z*_2K=e8h(2H{c4NPT|4C+R6dAJ)LhqpG5W#8__e2!r#5Ma z(vWuf-;BGI-SFIYzdg*}U(9cl`5BErc8kP(7gz3UlrNh6r)K3s8*xGYAm5|N=T$tS zmKa6Zs{YLJg+dGsq9TCG9Ddnx=;imMzsy@ocKqV)ABo@JG4{r=_P-wfl=~#XcFdNZ z3q{YM_ZM{_BHG}ryguV{e*bK!y)n(9*n_x-RIb9~!@hOb16vT*8z&E%n$3#ROr{O~ z1DoO%l@6ch`FTtyD>fJP0v<53YQu4fCp{oi<%DPv;-Q%Y#}e<=KHO1WXZhMU*T>={ zyJr4feeIn;d}{kX_k=meJpZTf9JzeidR$ptH96jWLp-mgYpyG%=O3Pyc-tHI4q>cD z?Y{>e*Z4$~l5|78+yWw^B4u&(rh%4021&BehWQa9Hl#U<#K1quf5c|CkK;!w^n=2M zDEx3J&+Kb2%4U7P!U2Q$%$2wYKMm&ed_4AsG(c}$rfq#0#CIH$L z#KIfAyRQ9N({v;KwbtbujX4OOR@Z1daC$wG=OJD+Rr#}q%?eW;ro3>|%DlxFKhQ{T z>HUV=9z=yCa|%^|`A7ga#%&qyr^!pf!**>JPxB>rM4hk{%==T1_m?w|N&o2&-WXAT z{flqlyT4v6`6mP*lN z-3{Pd+jxE^o@iRG7s?RAHb9mZmv=#C7?n+eA3uiDr7AFjvC&~@i((|e$q$KWn(+#} zCpB|yH-;j)+^(9@U-bik@%PEUUS%GqDCQnqKJa2uclZC^VI?lM!mMomV~L~tMr^|M z`>^juD3-sdU%Zh2td6dsy4BuwTBLo`Vs!jNukLvy43G(xQwKR=#O!Vkhixu5$j9JE z5gB$W<}&a>= z^}yePe_2(v{6l(YX}6vhD@S?o~=biNv<&?)CSb2{9QXXY#H&%>6#lzS-Wh z=%Lf?Ue{{qd9`F|YQY++)Hv@=3^tt=*(%R7JIqUR)hCTH0-@x1BqSp z662z4cZuaFnaV(hmWYH@%(A}%jC zS+?(2Q?t3n&^YF^CGG`DGsyq@$} z^0fd72G9GnR8~+xiH{DFB9Mn%fW>G#3yE^d1oMnS;fZ?k3xOL=ZB`y!1t61`&slxI z3;pud+)IRTiNcB!b16%a}8M>lkl4hwe0+AkWFvhDm8xMU5 z#72XFE(QkAQcoQbTMd)2IM%%73E+q1ecNsQ6c>WS45-tpHl%KvhDNne5#wMbtXfqK z2mqycun0Z=Sa9@|Di)A8f5g)n%!SSKq(Q$vfg?b&34@&7s&-?J;jp{hLxH>59;_ah zX+Pvh6f_es@`|f}G|M!2t{>S+q@y(Kh-ZAe)IAD^)@s1$8 z#{@kxYucWdyg>&Yak;5@I~$%LU`fhWs;Uwld8`hpO8j__OK*U`PNPV0%@1CIubiq4 zBKWH+x>|yy~EjO7R0$>~x;?Mk?*V!W< zyQZa~#yAx*I?>4`lL!xc!`~m_@4QBKUF`JmmKr*jFjtcF1AbRnRn!Q^5M#z z_N9-J#eA^<6K>)1_oMksN^;gL3m2r|+l{eDQcX78s$)(hnU(ECf4#Sy|{wi%2o)a)+Q5PY&IH8wt8ZRQ5_nK08}zUM1mwx92C&uvS$8D zkd{fhRfrqPi&+>QyXPq@1yg9y;+n@vt;`f<0ls+%q$R2d>}BWcG-c&wh%s0197yZ1 zQmZi2e!zB|%FfDO1=h4uO{$oPx{!Z6+f3r5%qOpl9}k6^Z#$VZ)4 zZtD&qgb)xx(NdqrlN16tP;^~gw*Uz~R2_=6)U_L;TWP1gwR7KZ*KPH8vHSks_b-1m zDX$oE4xe+K>+`SCdu$rz0^(Lk6Kd;%?zyfqJ+wRYip(Ee!igI3Lq?v*Uc~rcc-f1AQ*HK&dDyG`|~$P54Zp=l>Q#u>Bcu+!JirFOD?Xi37 zKK1wchC#9q?^8=gWll+~qguL2P$JPtnr=|ka%V@1r!1RWMVg2UuJ}wY7CsJRlWu4HU52>XfjC8X>1CF@Z(MGxr z%bq{UDJKIID^qB*ST`9+(1$S)7zQ(v&f6*(oWS`T%MukKl$g34Bu8=?n$|dkYh=b~ zmkRgGQE;hIW7}f#&fF;|awPErL8jva(#jHRH>4Qfdb;>~dE{&TYk)OSr^1sxHkw>l{-*;}=)<2&*6Wk$(cYWdm^Eq);K>~(W zcl2cn)d%K6gh_~4*g(~lY9DD#lxW+9+$>Y3^sPU?h?w-+D{Oan+Ls8;Nle31sHDYD zbM@_f2|XUU@u6QfR}2%7ht7XGOJ}E)j!q}IIUPXW(#*V>k^6g6mChzMVx8ZApu_Ki zJG*Vq53xyWaVYYFmKY3;%vjThan*MUysFjW)@`vzyIRk<)Z*@Q-RjjMY3FYBg%n3e z-@x1{S-yqN!LblC`44N;T9t+%N%FPZ!}p|_$vNYr!*5CM`Ku#GzeLY_lPz(zzdB9T*`q)_yA1`%5)M}T`r zX3-ge`%mB|9My;v3wAI^)Clavlw5|#aVBMIx4lXwo$6w}cB{ILHA1R&onk>NgNluj zO#uyKCqkVza$*7VDNrn(`GjhIr!Uy;4(i%F+$V*JNlK2x0qkdy`=qCxjmcb(m4moL zc0bl@0(4zzBe>w2QrGYGk)3jR^xEs4cveU6Z4I*H9jsKWnBEt%4}84u{$#}Oe~}*k zV))k5)t}7$t!(^U+0MTNBe09V`FOg=l5i4)79G^yHxqV${N%IX>5X9yXUk8k$@R;3 zmY(hX4Hf&HZ^=YY;1r5Y)(FMy%KO3VZj`v{>8!cf%x8`YtKN#+RmndtErq%4r=y#? zqG)u?U!mD_l%E2MYIQ$W;i%rVBGRF~L&!U)o#0PWw0p{Yd=h8aGYY2P>$S=n z>;*;+nF-0Hki-PJBSFN5%)utw2Gxw&GH25_eaT<)yR^ z3y&{0DcxpB;?9|F_&Zb3d*=f~_*lv#?1AHJd2jxVe=MxE>0Vvyh8qX84@V{;p}?|n zR#|dAZ?~}NR7v{i-Tsb+?P^bq(|7J&XA)Iw>;MSKuausstIHcXR#`giPm!+lK*hOC zgT*qi4Jo=#R4oI;MWEs1_m;wh?UE2wuZT0qhIGUII~X_>2`8XC|x z*-FH4uCJTDVc0$MqifYWPkgacaq;u-{8{(Dx}rdGJ95%`f&R24!m`~s61BY0^3x{S zff#3lxP3O6WA;Cq)Qs9vOE%fK=|k(XPxL@h4OZwJA~!1vyI&wyI7SGfAtWb&^hO-Q zm63t{vSRO4|QWEncAfA z9rE~G4L^VLjhdhCtKPrwCvUv@#!r6!+CJ9((>LmV?0$0}JGS~!#K_1qpVhE>`&<9T zv(5cHQ>A$8{Z8xKFZInj9k2Lrou^WAnucMBTroIMLT`s$q9SpB;mnw?@%`_O-8Q}a z9Gc#88)1^u6fkjhMBN#AuvJuWk5mhKbCfb(~jfBk!t zqg&qk;%v{dzx?7J*y{DAUUd3i+X$RXh)bx04eQpy%6DuqJuuVYJXhQqsU_qfF1qX3Zv9%-z+Iuyd{$2Fq8~YnEs7E&)w+zRW^0>9qcICc*nLUXqx@d8Glj5Fu7%)BlLhw zRwQy$rHTO1krH7yD9d^*i)HxG7%envXb+56^(Gul`Ivyr zJ|_7}waL~_(?(@J*eG0lnzsz&5<7P&x73&1>RE+>)bi1eg!8Ir1*!l2;O}3Iz20`c z`(N1?J~^`Wg+Xb5b1=Vn)W194Q}$fAQ#({59DI%1o^IV3F`0!(^Gb3-mG!4(B*Efm zIw$U_u8smxrhx(`6&*{%o;K2sgfI~CV38A(HpYbJiDpIhhT2Ld8y!uMO&d4Buy3glLmcgj>hie}e1%EYn zysyhzl6nm!vL~FK>ky80GRf7!1SVGwUKhShHY%(|IOV98iFx42OcRP$yv2p|wYlSB zd5%fg7*&T>l8fE7Z;FHn%0--J;d{c|`H|Nu|C^ z9Y>czkQ75qSa_b_W|PH-&bIvEQ!0IE+0t=8TG6}bpD!<7{b<$9AN6-H{@io=r+**v z8mcS&2aAJ6Cx%l>1`jrN9EiE-y|+EJKe^;ae<@+b^k`S3m#=BBU~4HN42VzI1Pz`m zO%A)d*`Nx_P>Tls2W_ru?L;yT_RQdevfT$oe%`yM4pCpCBcPXCGnbh&XT$+=Rx zd~{Nb)}c{5gV5s&S*}wg5{W~TpuEuNi1119E-4!&ecc)hQ-$i{|D&JeA#)J@eQ`Dg z6+qju?r;3-rQaIer|)b(@eg8W>NAC5^A|g|^_$=J43`R*S7-WZjZ@5P zfsI`hLs?83Rf2udxNIzCGHz~Z8F{)&UYg_lWb9ehwB}BD<~IFHjVsnkS9P3lG}v|* z743OgBwYR{=kY$s!1WD^QAEJ^>8<1gG|l2{yu7PZd8W(NXu<%sl7Y<@5tiM*b+ki2U$b~R<0FRZ{dI@5g zUdPBUTdCIREv?|uF6GG(25eUvxlej^AmM1vN%3|m5WuO(o%RpzmCVl4tsjVMefM*{F56b7xv7_q)`vo-dWw)Fd*z#D{fR@f;h|9OOQn`ecA0Yfosk*o#^Tw?9nb{En$Bb@;QmBFXk&!YaKr>s9PK|fcMHbF0 zUBA2|A!_vV} zN=MT`$?_Q(hlZr#2#fXF0u%pr93e@B!C+{dbkJTD1}=XS05uvo!R5#2FcVcKr7FslVR-E?WN2Unal!%I=1Pa~&6@ z8-b#i8Jd$$j@a^qgUOD&X5Wp0o={`yp1h4ieioSTs33Afo^D| z?-|l3KD>Xl@>Mqd-(h4*+4IX`GHPiGt)8<*Na|9hqmsg5p0uef^xko&R;Uf-&-m~= z9ld`wgAI_3Q(mnK=*h@=J|T2F!0@NGKsmr}A~jg}J+4ZuzVwfm`&OR)Xy+%KQT4Oy zPlK~IalP93k~HUSt+PQg7@}qznRmYULs@|-RI2K4XZEnDz6Gk5T`9(X&FjTym+SWD;03C;GS>B^T0n4>=2dn!abqW+~WK zbPTCo>V`NZ)0Y9E+@1kq96-EqEUTJy*V4E&988lM78=ROY-7I5ILhwYpHxdSNX+Yl zJnQ262OmNgI;ofantpaK=1Wa+bmYX9gI_QEsH$N{n}3@CqMAMaSBpnS@7DH5^g&|M zZ-)nxoSU*rl6hmu!r4wwdSt4xHxQW23X>HP0u32=Nc6-M3p7DAp->4PlgI?2BQ-cT zS|Bz(K;vXwU1*-ICLSPC)^RhzKomFum>gO+yW;E6zv{k^56$+y$N62y&s#UKv&AQ( z1tI6w3$VPiBPLfLn4`L=w~wxpj*neX9?*)Jn5!JdsL#qYW`f1sB&ASd%gQx`TDqxm zWoIIxK87Y)cBKeNusm*!7gUallt}yg{;VG+@$}h?Bkn%vg?^Lv*V8A;Ry~`|;_H6! z_G`btF>>^ovxkU%@%+1no#T+vHQ2G;GC5{1y`#z8v-`=OVr@Z>x+y{a6cvw_9`Lvb z_Bh()=~BuANTx8z5THeo*@OzCtg~@@&{j#XTV-Cn>%rRFN zF?ms|VCg&D=U@Nsw-Igoe)oT0{kNb%Dt=CVAYFK8tQo?~2FtYcOt-WAl@)ed&^d^# zb&I$FrAu7zoEfL@kD_s;^o`q5q=8m8$BXzigdU78!D6}qMPODH^Rh-;o1F05)?0u3 z>}Gh~ZT484{kA+JCkCcDy=k-j2RHt8@bjGS939A)|L8A2vTT0u{dfD76pwui!bsTiax&`C03_;SFjg%{-piBXbJY@80kj(3? zle=Rn49yoIV?=71TqX_5>aXI*%XV6nKFH%nJdD6q7-mI8>X4 zG8TEj*k!>=PTT`r5WK-A${-=V(L~rG_1ixEH1D0-yUXA9Dz-KLPdW%3z|v#Msxkqd z?*=aZ{<(cWdG_qgvu8j2PsZudXV1XI0U}VXzuEBdk=&n+J!8v%_kUl#UVPqmEI37_ z4}S5-G@i?hAQ<8u>Xwmp z*|fUtu+J^n%!ZV14Odpt({<*|t>-on)KkN<->iE}(!1#&A5EX1{OB*|T>F!s#k_G~ z?!4{j^|aIj{(*I}KiC^qD4lmp_n3q;vC9W-cPKCc8q4hRbPzbo_Vr{9n6DPdHpw9$ z0knLFjMWfh(216GhterM<(|BcgbFsf<7V#>re|geGGcZyhviiAi)h2!Yabj=`d0O` z;f>|>S9=w2t$mXH`757Bulj@w=jq+z70Fjz*8Ynk6etN%+`-E7Qt_ZZtNOJxbLRL# z_3GZ{1$9M5QFet&EZX+|{v+GA{j808iQ8>GBOI_Mbvdj5*nTeerQ|h(6`}!a?(EK9 z)vw!3^$Z3eS7*PP)3&`(GFXh#O`(Le@BwRE&eR`5MdD10Wpwa(2d^*2dpBe?Zp)7q z26yWGp_EQ#$z+POkV)-cckaU6ah^kRAxg5n$tO7kWLJ@VzM`d7Fro|4BHTsIpva~$c|4YpoR}!x>}fr6#BsH;Kn$ozk(l&&A#Sn@ zf>@P3-Q5Y3)&gvOYHNH=DK3anf_tZSeLDY`JI2UkS`HsBBcHU7wU6C-Py}UnO7StE6q=e+8^iwN){SC zTL)6ugmH{a*o;xW@q0j9tw(zeH)+zlZ$TK6lRS*#O-!ib446A$5@Oj5=u;XJyB~;E zskFogV;)hbn2abiCv|hKcHUlO5SPPa5TV2rh`33k#x?Sr(Te*gSx$B&yGok&VaC;W z_kK3swq{w{hbsE@tOGwKcfb2puc9hxN;`7@`jvyt&n;j5u;$!KM`xhg4qCPmKgL@+ z_Zl&eG1*IOqCjsyqz`OS6t6;}4O?#YB<^^>bez!0{AX7`z17pBvgQbw++r2M0=x*u z3UYM1G58?Mit9ZC=x-Bm5Ls zr>AgK=9}$?P@fqk$HR>U#zRy=ddPYySsFFOW?pt)@Wy!fen$w*&5RKeqXl~{EpnYE zb{Hu=$L(`@VtuOMs}hq0r9Z;g*}cR4l`)Q2WQmiL-z>OjLI=WbD|Xihc90g5a<+B-TrT&;Lhd}8(! zcY8Y}Jv2^XkQ++W%G;y%qMQ7-HB(-q%BFzJ3#_nh z4UU8U4b$Qb!A!B$u#X1|_DErERQ5b5JRX?b-q^N%2~0)6i`G}$V{4-*NWqce)dqPa z6Ch=A?(5fJHB#)Ag+aZ13U?b|W$fSTtrsvDR z2UIN$kWx;($!(U4ye762R3q6Yt4Imy$tRB=JMMDFU<9L6`@(F*vU`mLew08E3uPAx z1xIUzx~eH}D}A2{2?hF)n0GK&zgENwh*MK??G#B0avZREisInSaEDExa<&Ytb?I@$ z_RKtvZbpj_cb9IDXU+fX!&6KhhjmZ)`%)5WyJlxy&^YGh73UTo_IS{nH4pawGWs8N zH-9UO&dAvN>yMiMrGNQ{&B8wtX6qSC#oN{rB6cQU99*l+jV1YV5F2w=~3p7i-J>-ib7Z|;jV*SJa2z25$^H%%liB8 zTDaql#hI!8zjWXwRA9BUKSWQ8izmly*iX(M*&h%~w7b_e<<;tE`}(^*$t|Al15Hsg zKx>42nF_MuvcZ-Cij>HSg(ZIWgdZ*JX(JY>)d-JzQa(ri?=C(tINj7*kw z*ILWV(F^+hh#B_=_fiP+P& zp0^U#pd`NjJ)ih+Amy(wY@1!Y)dL;=|9OB{F=1m;)ah#_d6_suA_GmJZ+|@WAa&1A zuk88t`8z+0TlM2j%b(x7{Y&+0-;v|utxSc>C;H>m>Jsb2Zrt%)fi;wp0(oKY3QQ%1 zE8zI3rhac(L3l6gyWf3_?d$(gYs)>@mBIn3(MS+?jsIZ(~9u zf4G&my0DSE!azlZ!!e^xxfYWv)MnQ{u!&+~L>b3gn`I4|Bki(wJp7K1$Yx2<$0>EP zIwPuO0-`D%0T`p+9+To=lKIsS#5D#r7RTuV>&(mL1sOovL`#xmjF*IBU2>2llf0?> zuo>;F$uJ}^wpge)$i!kQ3`8iPT~}EMDH(Dohy^^FytCTH5Z+!d$ zBADhV(aR@wad47Efn#u-Qh)tE(#MQ+k$KOE@jEl0)iDS4Q@KB2D5OQJtk?tlFDRGt6G=x=8h=hqwzD_&XtZ;3dq z%le{suAlW|{eP_B`)Ge5imoUsS@sdJttgLIuf~Sf;T@h8czNkC+0PN^O4TKt$y<)} z2>L>D-R!G{fwdAQbe3m3WgB)>JA84Rha)PLgZ0V!1d($?N`Iu9$}ZFd$G`NtNZj9t zlGgpwch}33tdF$&C6xAHz0$eiLZ`1TM2yaLNV#0Cwxt*~4X}2$RAZg&ZjoMSx^}L# zxaiTGFtFc&JBz8w5eZvG$tGVV5bCq#NzMwFDjwS!+aTJq<%om-7$_-;f_o#tc=4h` zpxDJWv6E4p}8Cb+FEd%alGpq#}R1NRWF!%{LH7H8?9RqnHKvoAgWm&L5Y z`0(Na5W__s5npfh7hxp)v&(;csp|V0eD&6jR)e6pjX?4wsmQXW4TyscFK_nV-^;wb z5*;r=-`ytuWYrb=()m>y-T!-86NZpB73^5*kZNBoB->xoi)`X!&+= z@%93n<25MsVKb(@!5xG!T~a*BtD!eq1Ca%EfWeAPqfs@I?Sm2haJP*@mgS(27$>`> zO~tcR*s4yciMqu4D@R{|Ir~salk3xQrKfO2kTOTwea#YKNIW#B_JQ{h9h>(KBEvJS zgyvyO|8bY(0;H+bG(pkZ$}y?e;htLV9ftt%TZ#QBI1=yFK5~+*;s6bSWL7{jz)OMQ zGj39*Zu7=d;Mr($7qF8CFoSA<=!eS++{BlQr{*7&X6(;W7qNWMp*_#<51!{h5ZQ_W$-`)jMSJNHB)jnj6fQV zs}6MPamsFuRtX_Kt<_9c^S+z4T1Kf{2!Qc0Gk@jzMBwpHNtyV!bR!`1*qrl1Fb8(OhHbRYc!^yQm1xz%a9y2y|Fr_ zyxfh@Nm&@QSzfZK{P%Bd4BfBv;_0YpE%U#y^W|gYetE` zw+js;oc--8Lpb_D&i)6fi*?sdo$1Q$j{lMV`Jyk?5j$vKxTJM9SM$iJvTKLg(U3T> zR&2eX61>z+&2Bo&`UF-I%1yuWKym%n!CH1sLOiq%Fgin_Rcu+HNg&0r(E=tsq}-7WXY`s1PympeGz<=vn=&a(vrMP!)S&`u$CK#D=;!X?=p zC^4zgk1Y~}`V|!uOG`tZNtG&N<3?m|)+JJmmnmYUA)E~(0VQr>ObVcDj;P`|QB`7@ zn%i>nI5Os2vYO>Y1!EBqy&y2bmBQ%MxPVNSDTn^3493l;Sv$3PcD=pdbb)4Y*e$9@hjM4y&53ePZe`Cx|o@<{3qGMo7$SsN++vY`(^2d|VSN zt;brbTi}9+p2?!(OHU}Jygu!lN0$?-c!GQ&emyx8!#vau*$Ii$1MXep3Y~__C9;&diLx$ z-`%$Mljyt4Qu2;@lA1gljsMi2xq5qAV#?Ht{hX8o>3Yp0U-$P%W{Qe4v5*tif*tiA zT#?i-^EJlg7lal}>cwL4E07xrVN)?SDSmfLtG*<0i_dl3;Q}K>&W|Ax7GUQg8=>8! zX75(s!-gP1Nk7~P9{sGZp6g4-=jZ!VU@TXNG2=xW-{NYDc0&w}TIn5j0ZCO8+*yn+ zl@(&vU^lB;Ortr-ly?aZ`#?G}v#g}69t&zT!_LW_uj95A60Ar|{NO1QDX%yNXA*&Z z-LC%1YFVuHi0FQfl{5zKDU^b;vRK?JW8*2(gbU?3t{}`;9DKW&Clf-VTooBPRR-ey zSblW&&Dug`F9U`a#Q43(CYwMl9M=T8Oz^e_)Z+G1UELu(0?Wc^r8LTZQVaN}&-*^H>d7N5bkAX;hF6;uW@P4f#Th zl+m?vwKNO_5Uvn43O~IG_GVXV<5juAc<>pp!(j!Z%Sp4BjHQsc$*2H4Uq^<+)|f;A z9hC;_0l5)=%zGJ==}8Qi=QQ^dxR6;2XtJ9KB0#NQc~hsEC+g+egE*_TTef^&#LH2b zo1wKwkb9ZQ`kq$<^McEy zky(pafcu^*b{tJaMuww+uP7*@K%4iix&6Zz{qaTlM@PrAyT`sPSkblD-yHD+gJ0S{ z%L_I}T~ax~(DlRc19O<%&sL_3(fo0F3Tq}L;Si?DeVQxLn+ytU#2CSFWre4XcXzmY zDo0CA;&jU>YadNn)>ql!Dm7v03_WT?LyOCC8#7u^fLS#W%Y$np#%j+lZ>rn?QK|2g zNKS+@O3*0F4tP{wbS~I&By^+?;r(T$5hqf*rJS(rnbmz=Ez96)_0EcEni0;FL~tkc z-g6I5p%N2joqRQ2*cG3`W{xXM!p2HRPAAq~A*gOI7ejCZ+=5}4RH0NRcJ<0HubGEw z3oXKw(upX<%5iDK<$x}hG-c9P%#G$Njbx>HgkkkGgwxsSSYDH2;W6Q6!{hE6A?mq9nF+aIt^O z^M_+n%{__aQHkffDVtOxT#gJZ7inHGckRNFEq;G}mMChTy?f$4#*R@rD~=-Rmey-{ z3XO8$>iBL>^CugxgwL-3_{w~OcJKd^zfkm9MSR^>>&aSm5ms=C?CdMXUOgJZuoMiv z+epkZJ5gfAnFoGrW@mz`k*#dtT89K%{U|e91w>!lofLMitm>%WWkzgANx``C;x}`C zudmxthfq?Vt$^M*%DFvqp&wmbCrCQ*V{TxzH%8fq*#}jf>{p1z`@F*)f{Whdi>&Wa z)2vc}WEbTZadtT5M6FcG+-Oqbf2wS5QGFr%U_!wa0~m&OS62lnDV$<&AUb zi0EWbyEsI3^#bi(1cRf^ys`E>57=>}=+vd9#fT5Vy)tyKifjhqCqF$I$j1t*mA2y2 z@u(^y7VVc=4kE(?Xt#!-`usfp!f$#FRYZrs@X(O{ucG*-J zjk_5{L6Vfmdzt1FN=pE?6OnbWA(bf?s%=VPc^UFjw4n@03@8#@3>r0pazePlo^mR8 znq&~m+C^Swe@xChcEq3x@Op70f(c+?(6Q1|b~`7ALm`P-L~99TA`+Mc>_|c*rf@Oh zluwnqjCg*0)nzKG;7EMUh6__rF8foo=)(_6@!`^^PB8gHk~f~FJvIEYVO%}Fw1g2d zIQOTQnj=Q+nf{m{#IP&h*tru0{XC=`zN6r+;XwLCk?-Z#d70Olkv@|f2XZYeRboy{oHM5(6(aN?1#8-co==S-6!IApOc}$xjFPO zKWGZ=Uy$RTgUF$+9W+$5vbjy&suJcQ^=BGPlYIj`BrP@$%TY=A3v(SMm{3eLsmSjB zj=7`bukIVeJ)u`6#aamJOqCA$%g+05$?y>FJRX^3zq`AqKeTgScVDt}xvJ#S4Y67} zSyZGh4^i|?vR&TS;qoaC6y`~q3O~s5l_HHvIGNA&roOc7;}b_aI%G!iXtXCZ_I8PJ zq~BL6OsA1DV|OlacwaMgGakZ!2?c!`- zSC+XSUD2%soYO0#rS+8BwV(kK`DNYllZhZjFf@%%O5Mm@=cF!s{0KbSguO(d~D72H!912Ur4R+WzfJR65 zS%7Y1wrC<)PbEqHC4kzr_`(&?8lPn2!$6Tv??o-m7@j@V#sN7-mBG=hOJiED==Pc_ zmQ=O|0DG&@AyE~pt-IFQW{IiGxm`PvKqE;3Dc7`m8-r{-dO5gWn{Nt6hfTH7$bL8% zLnhJM!v@9p;rYsrU)#N3Q`Qz)Msi#p6(#ExBqxyUi(Ild?tLhZ9DDIrpfRE&$DW=K zN3Sk!`T6a^TayUE+GI;+4?X>8@twinc^Wa^=ea*)f`&sSiN&)$&kqV${H&|T^;+jk z{V}%(p>yz0_iyPjGYwC351yr7iJamG$>%bLCxOVR3L^ zK-H4Zc`4e89oiw}Qj)-wL%{ARX3*K92sZ390gWygU=`7A3yy3(OSNzyIsPZXgu32Oq?`F&PS)w=> zXl@Zg^h({_kaY4+9+Sr{94#J=G4)>M?4oyEG`xIQD4glT9qD3&0QKJ$a@$5r>0r0Z zKl_(mopXEoif32jOtRuX`ac^0YgKD&M6su-UDOr?s8{`CU2G(5G{lJ_JCWE8DK`3Q zN~&175;D#SNOwz#2+2xa$j_`vj0r{}s9illLeJVSuuGONH&s7GUBMr+84 z`%hqeeyCxDOpY{q7y7GJ67K2P&9(DSNV%vA_&Ye8IAJ3j6rGwlJtm!}6L=(enzDfZ z-amung84RQwt$>pZ`=6EIkvaofZvVyqMO0K80^Iozu9Kpr}?SBncXyDZ)cF&UT zY+xYw*f+08SofP7-aEXsov|Zd+$kkycxQFqL-F#q61mH>WCdtmv7>&Rjr+m2=HON@ z|Es_MX;(%6Ia%W`si+5k{oSoA(-EqaeABiUO$x;-QFZEB0`uki?lwkv?{?uCNlNd* z5OrtF2PF@*lwprcmP333lZxARKXl@KlG)|kQssE)C^9)foUF3nEf%YN@|5^mth!3G zyHn}Zp7gSfb+!F`=|28~U6QHCMhZp*{jSQ673!8RcIn2)=2Deot=g7Tt}@3c-j6$E zp3LehWm5jbhioz~KTwQD@Ve$wFDG#EbB?{+@4=OQE9ltwCOaa#4}_eYnURlaz_j5$ zZhjRb6P0j^P=KRNj^nt4OupVdjnn){3=eRkqq(g|;!W*ARSVlpj$_s+8f+*-V9A#V zO{MWR%IWsh;De zHXHQ0Eeo~o4!0<=H{pyjSeD$_KTseG1DK^&t5X}~c5C}_FxT767;+Hlk#6FfNI>|i zDq>-_pykEtJ`*<5D{oR*bUe=%>mDzAY?AR1^ogz2o&Z1kvjBgMs)%6D6q<$mQ&4OG z!vz4;gcK_IO_sB_rCEn{s|<1xpnMKKn8(8jV71Btu`4L#0kT$>bSi(cBLF`|q$WpH z)9)@jR!)x9bX^L%ajp8J9mV?9s zAqC1a<7?n!pn3%k@9%AO@r4S7tar97i64;++Gaekv`X2|+2XYXfk=~~fWQ!irX!L_ zGzPex<&!m4oqO9h!4|pkC%nj_)qAf_ODd}6P5yXlCJRA``t=h-Y%?Ryy^>m%uLrUrwuKglJ<#7|a$1T#mWc=P*n&tnzot zOEx0yLq}T}0gO#vUj%HUY11C@3axM>d_$?lNH^*5?yz8Y$)p&_6)Od7sRg_9%|$6u zfYf-WN9KIRUd(d4akhWQ(t;X1NJXZ)F-_vibsz7apLXuVlzm=T<*z#Yf9W6aRca#& zn(8)mBXW+y29RhsV9!e@LZ)vVf$Yx2To9k@H${%r0J<9B2v3ty1p;R-k(iK_m{sdN z+`*nCyyj||(=FJPmuJjjd%C7X_5m_ESqn*uQjUqO$FR-J6PB$bb$FywM6tCrp_J>u zZh~bMK-E#w%P6<84Tt#uxujC&S-sAO{`BYQ!}Ha zv|-_~O>CzK4yNRJ8Y!TcK}j25K%RZ}lQdjLa*=kvSx4yRDVJ&03-45i@yrNW{~pid7)Gv{3?x>(%$7?9gvx`f*92ab z#mYPR`~QdRb7`s3`rlws5)M zCuh}JU;fFC+kR2eQ}ZYGoQev~=C;cR8v}n(;9d#D(+s9QKs|EwVSlIRitR z%ZCqJMe|h;+99KOtxA!I@wF~d;gN#Y_#zdZjb!3FJ+hdz1fWDV(r5zrpE`X(hO2>A zw~*yXS_f<0l|IYhmI6Lc5LxaBx8E)(nGZ}MB$p!{a+GxlUu{1mOjH(&`lnrLxS zM46i}FeFGYhf)qLXca|RGqAdB*i&szOGZmeRfCH$4KYq3LafJH%rNjV1Q+CLciku@ z&o-f(WMe%28N3g!0JG6sal4;Uy7ZIm01~fC9@Y(tVUSP4;6Vk!M_@cI2Rx8|)6s)2+G zc3@=dH@x!R{El!qtbi#-P!#=>U1!3|a}Q<-j%U5R@{fQh{fSH!zW2hWnY;hL*KgFd zOI+%rBP72dk^as$AzozaY~{~BH=j%T2~!eVS-=PfC(ij-L|Kgmla2yLf|hR-zk0<< z6i}*2ueqWi^WAIeS^+6RlOupoKKH)Tmy1TU7_wSE*n%|Lp#vOb;SM4Dr8dXi%DLky zbN299F`U!g5yjQS1%My~qs1n~Fa@9O!OJ$iRbg4hys_vRJ+4ITT%HiYa!)}DZeV8$ zVt8tWZ|Rye*<$&IOoOG_?(OeSR$2GvI?{x^O%}n}TJm&kxG5+TDcw|qsI^C2BcxBG z#LMzAQxQ{to1%fJ)kwRgT_(QwvA76jj#AA=tqyUNag#bZRW${;o^XOO34L`?%*4y? zd$mPl@OfMIW+Wz_7HdFRp=fCrvtGhz$n}M$TMK4z0eHlL+TExz$ucohpp#^)(M0R~ zz`&K{Y8wHz$H~y{0j9A~CiBpEb2ho>m&?gcE3M=U3BK2EjV6@zK|?tO4qIvb z0Lek}&Mk13H1(d^96JM>cM_fCQ1BJdRHMuYPmtyZ1(?MU83Q1k9d!+ygGE?doV>IY z^!P(xn2Ap~cw(zI??ZHrm>IYwP#k7r_3RSi5L^`1f+Q1LO}V zM%net?q9z74Q_&W!ymS%XYtnHp|h-!13ROWkCU%s>2;ce6%|Cl_U&lIQtVKWU(3=?HsCJ7t)hj{P z@R6(ptZ?0)&Cv8uf3f9t7!)deGJi>v{W;SLQ&I7dx7Odb`;aiKB8{=bN3qbE%7J;2 zwng5TnAGI~+vah-O`KT<-URVvVq~ao`Y>2=urAMWmObW<-P|-jJ%4o<4F)sFbvdd^ z2Zlyqp&_aRP882fdUN`#i)2E1w@OaQNh9FpvA}{EHQ{mLkO9%K615*bMk*$(qOvCs zWa?Z(*1?Y7!{Qhn$uo68LUO1~qoNZX7@hT)a_OyXe76oqGMpDyg{EkY3CYDxr~`)5 zwOAX18K1yglK}~$(9i1Wj21Iexi62a+!P;vm9Z>V3i_5hr3?&@^g3jughq5ZS}9Us zv?5++e{3Q*n<#drqY7*zHU;ldq^p3OvMbygRV0=4_FB^!J0i%~Hd(d7?melOqt1fG{V5Sk_k4S^ zjJyTU)RFO^g@6}J&71XFKRa%<32>XUHTSR#<^1mg%NpK;WjN3!LIM7tBG}Hx#qt?` zXZAc*-bych#2e{qz7TDQDL$9=!>*+dMe2GULZ?-C{_FKSO`bo0@5^_S1Q-6j;_uyM z|2VYq>~}CpfuRde!+j}Ht7R8ecD(;?7ee=mLT>d~bf>2>eSE=A>n-E{-yD~6ih$T~ zun~6(`pX8d73+^STU&d@T+4EOAabMStk|D`%3ksH&y`(p)smaE7;{P>jiNFOHtMyh zU$MT-%wSegAPbsn^tXahHU+qa+!3y25GJ9;=+0S3>CnYK_HIY_oWp+MLg{t!T!a`g z;(&R12(2*Dl2H}1;EF>%13tT54kyj7)9V$za_4t2#0W%baJ3_KvI|QS5p|d$SDlX8 zA@N9~gTP$wF|j77a*yj(*!(Esfp+(8EIpc82zY5M&Geu-UVBql#h6-TYP_sW7}|1Emj(ak(ezbmw6(?Tg2vFK%TH)y?W(p z)mj@11+tcsfxQ`DMpOh@l8xf9 zx=|G5V!0^5?C~B7R=>~^gw+oXE05zv0hJGK>O9W4jA}o5@56zTw%3)QkrZk$76UQnUfh72O!+3l9av9&){J!7xI6)&E2>)h&)&p^ z=DqfX+}t5LA#;k~zPQ+Em{EcQwSSj@=WWDtS?hBM zlz{_g2eWJ%JZ7}ozs}C82zKsu{JY6dKl$amtLxwW*ZG(?-plFw?9I??$-zJWVs?7w zQ?}pY7M)A$?B8Mpyxa8Y$*blT$oeNT;n@L%m%yv`)~`DL-Ii=pt%&9_M08 z$wn?J42->kq2jvXN;@nE7C*P8Q7v{fddpsSZk-Vqa*>t5CeKb_n%$T&vtU#w35;=^ zmq*kO7fdI;bHXMGN1v(REk+N2DnZ7)@e+#|1=oi1wL=}r!6`UiLawnbe~lGmuUU)4 zV3bx)uM$YZLa)*%R?tm1{y(PP2d=66+#mm(lap`~4tNq0dZ5vsgg=IeU83kk%G#3< zApFrL2$<5@g+QxNyMeWg+ud#_A%qYR0nw&b+wez>plxW?b#>cKARx7^Lxs+{bwzZy z)Y)6T*WT@RTlqb4``*{@^wl=x+2X!p{6JY_kFprtot%3g!f(nvw>-heu7 zFpyqULTXCDSxep#fq|CXuHrz5E&niwa=m~M1tLp(6Nz=G)C}3)*_!WD3DtYuKx(m8 z$cqa&Q#h%Ubj9g7J=&_0 zYFy>Z^7?HN0OnAC-9U4dmFs=0QS?mkq?&wqavRLgpXm57Yx=DQeVl!&CM*ZQ5B=;n zk8{lXiL~cSEOtgY7jWB6=KU9>mJ0i9lV*#@?e6t^yP2-zLVN>=!)TI4x@0vAW;R}P zP@kR-X3Lb&BMK4u*o?uZmOdF>oFGkIj^N1>y+$k|&1N%MD-VO=(jvGn#eoPLKrVnD zWM`o@GX$E_fJMbsP>5WFxqGJ8qISm-jCzt;@sQrc>xRxR(2Ki z-d5{a$aYfg{fT_6|23*JOWFuTA^UGG!#rSoMA5$F@cZ9njS)HDcpm3(B16;9 zZI^dEveQrzLT$YHJ9Ou6UWC?U?Ys4)S6tQp^dtZG=%)f}HDRjq8bv2JELIOV%@&Am z&y-gYXK{5kH!(hq%B73?J&3wG#tv!u{kX5NeFy01C(Yx0D#?uT!NObm@Qles8>YvG zwCBiRLsvd8vArNiKuk&cd=8guXn`1_kM6UZo1 zLe!j-?f8*zY$PN@?MqyRal3s7ypP{L$xmUWfHZ~!h1#&Ab3%TLAbZ>cE?F6`IvyCE zc4Xf!=>ZOHElR)1P?EdSd*MF1Tl@4v$^V?*d?McjtemiP=H|!rY+eC zBT)G#(E%W5B$pxcY;IFe)cIn)GG#5QpG`?)ZyhCj_4O3l35`VJKwA3bcFVzvq~cgP zgon?AUZTh#EAK|7?(f9M`_k^-_`qFj!aPlR2yHEkkBO<}tdE^Ozn`PEUfPfI>++5J zwiofEajM3bxvPY!hV(9*1Zt=iQZk>Kq@S+A|LJ}Eo7kZGM`Wv5_9MTzw_l$6Uq7tbNV$k_8P2`04nPOfm*4;@F#L%b|%?!ZHPY!mSAVKzU}3Lsm2lN?>Cx4HFr=Y3=X+< zlcjvq9mg7K)A})ur;3wa9cxTVI+eKX^!pV3`Vn3d96OyQsfN1W^*hzVtA?$XJFC?8 zcs7Rp0$|a9LziPAah(>SbG~C9^$0D8S(i`!9dRuvoIMxM-fA&lYs103<~+tRdvI0K z5CB7a=|nhIqGRpx%;<0~<&hM7Gccu8jA0(X=s-npl1x@-&rcTS^6gSTUtl+TPYD5+ zHK9rFaAGc_2_lMB`G&U*kXFS<=kjHP>;?l@kmf;(Tws&Nj#1^aN%1=(FfPTP5uk2lRSvN#WrFfi8? zl21o;Zknas_IsqL3qvkMH4*tP9F)yCs67jHxE+M}TvIWv1fxkzFdmwW1H}rQDCkWW z#jY;m_DK$f;r}on1uIP_uI!e(;kyrd^hO?C)(KG`)bIo%0$vdG8;9-iO4uaFik`KL z4yLD2$nBi5BSmfIPNb^EIH{I;$dO55y<@}U!!it+?{9^-wqu@{iHK{i9%OMNbT4n| z{Kw~@E3lYdCEAT*y2+>O2Y2twDV+lh9;5?Rr{B`PH2uai^N24QJ~00w67cmr@~rtT zVlwUUncr%1e*ameLi6E)>D8YX58n88bc}oIC)xj*`x$RM`>e65(|xK&-eg#hSazrd zM@_=l4oxGhV7OtghVRgA)=?ujzOpTz7Tv$^E{DsG zx`dLN#tNBM&L8o5!89CX_$;7qdQ%gckJ^|g3Dgy5QcJ-itAg!P01{_$melOteb-iF z%*SY$1f!7r%k+fY*+7!!lU7N#;xJDLjWt{p@__@3ELmpK>x6*g>MHE~!2E$1_-z6; zM9%NL>~uB;T>or$ShwcMbTuKzfMU^2-v#9ZI?U3g?t3%!y)RU>6|_=?qtNZKVb2|JZ?MDpL&@R3O!?3`)+Q zd-^wVr)Y?qz$JE|w&q>=JPmMmi`W4-tY#3{bbubK>Y$6N5X@ zuBlQEFy|vYP+pQx;kf0k< zD$x#hxoyRFO;n<*H|-|jB{?Npb&~~y#k)Fcigqnoq@~isTHwg7{pDxA~Ac-2nTB}4tZ#KCa&&AL_|eXFg3E7_Wqd>T?y*e<2T7L zw0N+!ysJH0zL(53p4c2#9N z29ns;&yE)+r9P)N|MKO*G^jemUUynTf`_TvSnOz-s73#@bA12sdPXpa(u}p$_4Y z4$xvA-O!t$SK#Wfs`-glwPMIeNBp?tT7aLhFjGo)^kpI)M2ngt;Yii3V~EzsN! zu(1xs8W!Y(5J|8I;PjnL((n0HqI21uUizG7o>4cPf7M zC+id-Eh z4OKd@n3h_`vjQG}xO%<_Or)`pxL#zkdWuga6VYu}ZrY?MKvUJ1Pd6Mn*Af)_R4A~) zQmJ`v+WM&9at7IzW3nNm!HN zRJ}$j#6%gHnNc+f?&ookTJ8@sQj~5unxtbzZtu|$lihv6h>Gr^jt&+@NGXSAhIDI+ zK-f7l2}e0aN)NC{q0$Ft9QJN6+2@@kyPd4EG`i$@?(zHUPQLfTH}4(z&S2JGr~dM9 zE#kXqWc-P9MQSini<$cQ^lF!j@c9 znlD_ZT>BRM&a9gC`_2G>0p=-PTh`*Wf21U+q99|g^QN(*?yJ4OJwN&GZ#s6y+4(TV z1J4A)ITv4@lb0%i0f~nR{EOQsUiHG`FmjLLC5XSY?YUm)4@PJiwAlDmu*nOiZDKGeE~uM9F*hp zr>m&(L3Zex)^QdJBYxMTP%t?o!BG%YNGST#oCG1_LWOnJ>L>JYG~KqLQM;EF$Z(~Y-cI-T-rVhNVk#u;T2Ci{1Z_%DyVnNxND|FM z=)h7f;fc*KVS{Fk3t9s%DehC*Ytfl`rqM_Qy&7FKN1l_*0KS}?$W^;kxLT}Gz2SCI zT^0S-8&<7DTRPA?ATR4uM@^=AxlOKyUO<5jU(*&@0vBqQ7ERWwa9;t7$0Z`7n-ojI z2PMkTEQ`}Pod$CO+$n?z6{2pOb5H097T{nR2=75R?}9;CF--XdC_;+~2#rpCj~ia! zN(gQs(6WM6g2;*C7-HB65<}>cHG>sVa{?s5$UqVz8y2d zT${2XepQ0w5NA!9TgF_Ee*{+!LnL5lzWI}NU+0^rh{K}2 zC|1ALNRZ}Q_IclRh}|Hv1M=Dv+a(W`Bhvnu6sYu?wNTmzLc>qg+;1T zTkN2_)UAzL7&xjmH0W3i4OEi8~#O&c+t zG4aIg7O2`TcK3nG)JCar`);{}6(!H8b;fWK;Pi{5GOxx}cu&KJ=svGNqgP=H)q2%o zw~r@Q5mAkkgp%up8?@3_c$Z0C!~m?+Qg$6pLee^(chG7oL?%XXwX|K6V_K`jVZxPvbSqX5G@HXb zf^{I6vgMA}#s=VnjW0kB>g;KtQe%0k0I_y-aGT6O61zwFtysS=>-}$*6{jSb znVe)j(v8o7Z!a&lw~xqskDO|h1seTG^K#gJ=FI(_FT-2H#)Zq{!=ixowN9ulpMD$$ zN!#Q68;_F{o-l+Xg7C;bmo|Cc@^B?UjUw zO#=jJ^heclIR#7b7$$<2nrpH^%GR0giE~#sVqR12h z>p4hTJ0Nj6FpcDGX&_X6R&4 zOHQgl^jQFvAKWka93ZI}xUzyAy$7H;B&;3Bxl$sP$5|KPQys-+XG{Z+`2k8bH+CJ*q{tv!8Jbh#6MD%>aQ1e2*h)OZ!>Ro z{QXr=+x&N5_+#)_;{UB(IevqE>B*YY*%{0wO2arY|dngmBZBjn-$jUQMh57O?*uuHpTzyTScC^$L?*-X->( z-dSi^PzxOXYC}S^g_!z*#-Ty}!&XEIH=S!vFXgLy_B$EK%)yoG6TwlA$%L~U6MBMM=90F+8M zu;|j3CI{c0)C}Fe7sCap4KZQbJ&ofRbLm}N6zfX^yzxd_pbB%-3^*X{+VDlC8={V6 zP~$R?ByWcS#0b=koG359l7+mN>U*hfO^!tPU|58`0SDn`P0Vxoii_=n1Vubfu3tX^ z`5PLqxI92{#n$7GR$(U z|I~O@Mr=SMTVrD^0QQd6$F2Y*6ekyMH&%HpIXQA1@$iJLRD^oxEahO2`{>_-t5~_p z8++Zie@=>g77!a(+MYl2(Ei111g z;{Ro~k3q!|L>1RayA~j4$>f8p zTl{Lr*!1s(il+e@H}K_0suM3E8dHoj=kOj#fkr?5USjg=&egAH4Yf?ktr*&5iT+0b z0{XcY>BR3Aq_NnZ@Nfer2(%aq<$B9wFp*f!ZQ_61x!m|OZ^MyfDcZfIT()p_bL4*p zhcowX{3wzrU!7UIT`nVDVYA^#VL4P5H3H519+Aykg-fvBnkYqO4IEaF-7_e7ABLn5^CrxxWgJ2s8QX;;NT&^5TKGFY)KO{ z)W_LC=30Y}EG=x8v1)9RwK1#gN>O|rXbE;r2Xwqj&9bCBLuTiv?BGb$ktWj-jB|p- zRwZFrAtfXGjT^+}{rkG5l&i24Akk^y9oQ|CN>zGfpGCQ}{?@E`i=MOQOQG1E8OQ|? zl%vUpA`oz#q=~aDQ*M$bH$nK>*C6D;MxvBDYKsa-x*{Mn!CbAI6K8%fa`3@Uzv0Bj ztbL-@x{}Ykr3Ic@DYm87R9BIe?$oty6XqS83|uKeCirkz5aM)6T&m$hC2~dgi4IB1 zC596!FbKc}q~s9nM#w8lhbbogAVxt(M9W2L>A`Jr1ZNTF#U}mk_+CnazkhR17X7Af>o4M8Ir7(}8kg;- zr#kwA4wWg|=cseyVzuDzyiIa@#@4twe;QN3B53%Co33(Qt|o_R0A9T zx_PvQQWQ?-6dGt$zTJAY$ADdJ9OJK-pGXEhqt05r$vP=4u#G)Oy8bmL1SgOg5 zCF$T#UdnW|=}=b(mK=#NMzstOpvL`6olT_2r+jiNxOnAnTC@A4x53-zv}B`-DbgK2D%X(Gd_`8`fhpWr zP+~4{W(*#msiRYISgw*YH!uv^bz#KW)JoCp$zTJm+?23hD2hL-2X!G@iZouYRUV2) zfhXl?RI1iG+~MBbIwh7N)9GNAu4P07?%`QYSb#&765yQ~OJ16Yn6eW)WOgt1xtr|H zMQd3RA^_b4c>TuZO;k6+>4}@scIk(&yL(oxZFH#bc%Fpu zg*FPxPvLXdQ}Fe6a&@MT9783AAF|2W`xJv!`;Heur36Aw(!opH@L!7Vb5El9tqEHr zY*uCaQ`!C-IY@dDb_VVrJ#>xnR zxOlGP^1OWROc6q9-@EY=jvm+Czx`y8(Ent=_p89%_!EP&=wCLefAtWjpBUfo3&LI3 zG(G^AuO~?-eV~G-8tyEmCMpZyR$qSMW()%f}Qx?=3&-QWQrl-98 zr%OCyL_vG-bn2MqTBsI+B{J0ICyF0#Xcv>#({ZpsoLDEZVCC^7tZ`s-HJd2c^rT6R z*;N!?pVB*|NuExspod%c?sdqW=3tdjP0+l9)bN-)Lk%FNAzk8=CJ@n(cHn$rs1?@P zZq-mOgN@d?N`;~XaA-d0W7>wpssZ<{dB$jT^Hg!EI|C>k5Dm+@(rw6;Ejo|^bR^$W zt>5QC1)kwZZ@;v^x9{L$O5M?39s_{MJ)N|e$G{0%N)+BzcIs!CrdzXpK-ClEQkX}D zq_i57#+le{VI=0$^xIIl55r;Z=4nz2U_Q0RgmlSvF})^bLpq^`c@g4%gV%@~d8h9+ zxkRAbpPoV@zuy4V(0^<&r5Ae;p*~6O=HR^XeC@RNM0(oba~~gbKPGxM+_%(vcWI{l z(!uWd)hWffGlL@ksi!cT1T|8GU@n9sI$&S#UTy*7Vf0&+#q`>+4i+ z`alyrXSWzjQyuPZidLp%Y|)GB6=7&b80>yB)T;Igyyf+ULiTei<@2a?3you9V^)@UtHp&Ua#Inz>29} z2{`(rq&K&i&0iBY)#@eh>If2G#cs2^S(6+9-zK-2N73G-&vPVd&}`FXn)?m(K9M2~ z4%4+QE#-5FRSz~ET;c3jbRyO>>l8@Ye?Hs0FI*Yfn|3!19Zq<@bdenSg|t-tD`ji% z;(Jo7-T&Sq4J)$;8)woY0F#lwtf0jPBDo^e>w=N^{B8QdUi->b5XE_RK3^k3D!bwD#uSR&YL#+H0mURx$^J?3vu`$dBgGWJ2>g z<>AH0cB31f_g=uFiRWz?b)MB2o;@p!uAlB@WApgA#&zgg7U@%KKTMa)c1Qxbfm1~U zht0p``<4A61E#3bVG5yKzvoV`aB~4sxd+fHu4{#-#~S??bEiSE8%Ueu!%5*sTP%FL z_tS`6I2C#w+!vq(Q$C|sU)!@yuUwxwmI%pA;M$L2yjZ2eYw#QChqoX5?_}wo`HY5) z5NmpW;jP%o*%?2{ilQo>E}X?7r$VHNWd=x=Y>SCA7x?C6+Z|%DW;WR1^d5D2yi7*= z$Pki~;!e#VX+4EO(m?Y=t^9=o4Q^FI*B2A2^cmvhvZC%qa}dfGSy|2_@~#W2Te`%; zW`bmqE5s=Ax=s^6brY?bhGL1+n%(UL+|nQvQrP<0PJz0qM~Tf~;Efguptb-*y@BbA zj-o!EmST)vy$wXeJ=7K?5JAN(-j0K#Up9xiFUUIe>Dy-cG=a$zmWoj?a@L9vP$qS; zt5(P2gn{s)T8u&jq!55L0ID6DBPp`aUxF(z!ESC^E@?|76jmwFdyn@M`%4A|nI}rb4 zvaHRYlJ2IX6^E$js=nj(w_p5-LM-;2NP6-cCs~mJSAiXhWfpAgUC5hq#3+Ny78{y5 z@F|~+|2scl{I(1rE@tecm8}|lLO@-S!`Gw#rz8^(zX`Tjp(PeH*niL4DO*{2er3hC zvJzccnOa%-<;uz@Kl#gxfBR~;Tz2#1?Z~afpZ2V*-fwi|SAEz2`-J*IW?```s0woTr43PGs zd%63Z`}xG@f5CnBuJw`Cvn~5}s!eB;5p9V40Gd!wR~3eGgOKAZ-Ldo96y*wxWo6y8 zY;gV-*vR)29kQj8iCZJN6%Jz3s38nGcVTlbA2vHH#i3l_RbUdp!j!QfJk&7>P^k=7 zhs8;0WlYtPkVooNL?+u*#DTugE+WjJx>$*nGIT=j5n_-5O%BiI)`g+t%z&W$VSlgB zBP&Kxo3TPNz(osk<*_5EwK^nwvwMy(s;IyfAn~J^PDDw)-ducd4D8A%NTgkS?SS?KkRP z^NRQs7=h&m{=t|=8-QFv@$r%O9v@$C#&9nX?*174M<+tC~!q5fS zFCR7qPFkN8u^D>7kqQ?%LbH{b{e+qh>=tr)Bg1hf0zQ=E$uEXqg;56w1shj&|2T#U zc0BP3Tu7L?;op%&BUJii6$j=ej_01s`uZ~TOA-1=d&X3u<*Pel0dvjr)!Sb!3Mcsa0D@HL z5@=4irfXWRkZyu%APCWhYW8g1+F5&Tp>lo{^_m9Xac8fdK64$$JS4bq8<7~)uteuR z6_ta0GMtX{4dZ@@f|ip<9^;^RjB)FVPI;#-+c6aF5mtU_4>XMj8h;iPghXocA1PSRP=}Kc+NL}+FiLb0W&`TS&oBv#hxibStVH3sn^*-(U09vX1hgX zd1^)J2Nk{ADte?IUssVKDm#Snpi62xHAazzz4ODx!_tb3)d`Hxb4FIN`edOT zNv~dRjNxkN|LSP~mlxnpUBQ=Z(n`2HxILcKjq4RYyRYfm{YXUkvOW zOP@?Ss7Wz;acS~_3|3{r3Y-|L9#ydg$Y3VT0Mv$sFr~_}TvgAXNoQEqS~v2gEqQ@j z5igYz)3simh_eA`Gytj^dZY>i8Al4{2yV4)!+@JPa3Y+hq3MbxFX?NCRBWJJvmO0ux2%^qm_?fWL;7SA-XGGAbu1T&H$DU&@ zgL>t?R>~KH`w;@fIZWhHK^jyJIWsq#t7`ionp5t;`4M&A>Vv@H_515}B$bo78ZGY& zQyi5lgzSv!!`R|&yjilpXpnUS=|)8u(@ph6ce6v83%a{W1;j1*K&6xH6&Pv}s2dM% zvnrtvGy2|mzh$YdC*wsEfTUMyG+*Q?Vqgg)qCV0 zcD^>?Ugzt-@}j_iv zVCvsG)q`a?!EvuDlE$6`6e`?Ipt;}jZ_%lNF3ue;|f#6ZN%iyIxoyL;z2Ph0;M|5x$yo|J?SLvHS)oM1A{F#B6=p3 zKa$Bhc2rRlU{aT3n9)=g4@2V6BJ$cqlX5p3*WEwZQZ8aZU1e z^f30J`y|Hxc(e{mGGlGXu_yiE#`@2S?ZXevTy6~bR1z(4kA@uAv#*tpzbwi;DtWL} zQ6Rp*TT<4}o&i=x(L_C{a7?0D;ldrM6?@Br8bM-5JIk>~0;s&jbeNV}`}=|k|eO|CT=`LooK{VbwqVp5TKvzlx`jbQ(q1_)qGl(S%K}hmIG5wDj z&}$~5x%x|3Cy#-WvxtL}!06O^SiPmO@R;fUw&{dmGhcDa|9pR@%9)pjg(MOZ|3DStFc2l z-!!_5X#K&Tq@FHPj15WpwIfBB$9L~L`!aD*`;z>VCylZ*V^F!-2S`Fyr(fPrg@z

    IjH-Q^e?Z2CA`)F-YY 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/sounds/block/hornNearSingle.ogg b/src/main/resources/assets/hbm/sounds/block/hornNearSingle.ogg new file mode 100644 index 0000000000000000000000000000000000000000..5a66bc414631ff72921d9d46adc737ce108efede GIT binary patch literal 121810 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 JF6*2UngI9tfII*I literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/armor/envsuit_chest.png b/src/main/resources/assets/hbm/textures/armor/envsuit_chest.png new file mode 100644 index 0000000000000000000000000000000000000000..f6bbbf97ee21f5665314a358461b98962afd9f5f GIT binary patch literal 645 zcmeAS@N?(olHy`uVBq!ia0vp^F+i-t!3HE>oV`C2NU;<ji-xa zNJit^*#`>`D+stw@5%BkI)Bi%;*!HL*&h?cSahFE;CjSo^GcEZu5n(Q%!gw_Zczdm z?m^#TB{*4reBOI2VNrtXo~R9XUw6N|9?zq3?4{2luDe^@H@v#+yRWWLKIr`=t84ey znXG-i{Py#ZbEjZHcaAb6AruZ@P!YH?5q3BC92k4%v%%0$FA|% zC#-xu!!?O{+{bc`oDaI@5KwT&;NQCP@831P@EzFl_j$>qCpG7|rp#ZckbN@5O*Sto zz*3Ph_~6R-4FZZ6tCP%+rE1lM8M;q1dbre5;;{F=4_^Ci4CUE5EUGnh=QMLBYjP)) zKHDMnqCoKSvLhC3r}XmX{@^t~B40k0O-^ygF~gb3XU=9sX-sivNq0j+X`$7chBxMK z*%MhW@b&%6V2RZt?Z(PYP!ybb<64~8JBi|8&HVD*SNgASX$Qal&n*-*L-62Ctmx*Q zI*YCQYp>6{@m}xl{bw?MvPV2~qj%YVW1dj@tln{oRb=Uk$Il9P$t_)6=NWXq@bj%X zho|!$E8wnu{-CrxG>-VEF-DjP1S5`AI{9#(qwod%#lh@_I Pbj9H5>gTe~DWM4fxced2 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/armor/envsuit_helmet.png b/src/main/resources/assets/hbm/textures/armor/envsuit_helmet.png new file mode 100644 index 0000000000000000000000000000000000000000..46ef3623775a1d61860095ab098682b7d5a2e95c GIT binary patch literal 701 zcmV;u0z&Iw9ntSHjb1v?9foyU+P&y`%!0;;8hdF$z#h$8(um}<` zfdot-0TW2zX$7hqTnpfnhp(IS>*R0k-9BT;g`#s5d9#|Va<3csgTr8Dt`P?SDphGu zbQURub|;^BD={R5Rve(n%3ZH1tNf?)oQE+=-E-SLV*C_4fiLeN6afTD*t=$2yI71Tj4JfF-X45`}gU{ zp#6-fo}i7K8vM_Nq4rk{2S9Rx_&fE8VWbymH~rlGr13*bMO#pF346B(wK?gLcFlmR zi=bYT_WXIdnc1#obrID4fc(+9pV{vAx&c=gL8%6kR<9P`UHT~nAEQ(64AwzM=zgFq zZWWWJU}^|BSFIdq$N?0?4xgQ(Ca{u@<)su;Fn`E&iIIM5LHuFqn}&VvMs zJ96dTHPlWhMMe-8Vgtyr%qyNVZs$3V;+45odR|NfIe=WCC`;JQnuC@QL^IZ$8Y^1_ zr4%P*>|&-^sU)3ZjJ%Q4rQ^rscEln`zyuN~u96O|e`4FQ2of-X1d^{}xD;u*S2OJ~ z4{7%-65P8={bJ>aN6~)nP3okWTbM2yU#=Zu{hQ+1up}*D0tuKv0w$1v2_#?w379|v j*R2L;bfRP|f&~5mn>6wK-p{rv00000NkvXXu0mjfQae4o literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/armor/envsuit_leg.png b/src/main/resources/assets/hbm/textures/armor/envsuit_leg.png new file mode 100644 index 0000000000000000000000000000000000000000..02d1d631e3b64c251cef97260ab7e632feeb8917 GIT binary patch literal 548 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 literal 3166 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 Date: Fri, 4 Aug 2023 15:01:58 +0200 Subject: [PATCH 222/432] mitty! --- .../inventory/gui/GUIElectrolyserMetal.java | 43 + src/main/java/com/hbm/items/ModItems.java | 22 + .../com/hbm/items/armor/ArmorEnvsuit.java | 86 + .../java/com/hbm/main/ResourceManager.java | 7 + .../com/hbm/render/model/ModelArmorBase.java | 30 +- .../hbm/render/model/ModelArmorEnvsuit.java | 80 + .../machine/TileEntityElectrolyser.java | 154 +- src/main/resources/assets/hbm/lang/en_US.lang | 4 +- .../assets/hbm/models/armor/envsuit.obj | 3595 +++++++++++++++++ .../assets/hbm/textures/armor/envsuit_arm.png | Bin 314 -> 384 bytes .../hbm/textures/armor/envsuit_chest.png | Bin 645 -> 936 bytes .../hbm/textures/armor/envsuit_helmet.png | Bin 701 -> 999 bytes .../assets/hbm/textures/armor/envsuit_leg.png | Bin 548 -> 636 bytes 13 files changed, 4000 insertions(+), 21 deletions(-) create mode 100644 src/main/java/com/hbm/items/armor/ArmorEnvsuit.java create mode 100644 src/main/java/com/hbm/render/model/ModelArmorEnvsuit.java create mode 100644 src/main/resources/assets/hbm/models/armor/envsuit.obj diff --git a/src/main/java/com/hbm/inventory/gui/GUIElectrolyserMetal.java b/src/main/java/com/hbm/inventory/gui/GUIElectrolyserMetal.java index e63e67df2..b132811e1 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIElectrolyserMetal.java +++ b/src/main/java/com/hbm/inventory/gui/GUIElectrolyserMetal.java @@ -1,18 +1,24 @@ package com.hbm.inventory.gui; +import java.awt.Color; + +import org.lwjgl.input.Keyboard; import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerElectrolyserMetal; +import com.hbm.inventory.material.Mats; import com.hbm.lib.RefStrings; import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.machine.TileEntityElectrolyser; +import com.hbm.util.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.ResourceLocation; public class GUIElectrolyserMetal extends GuiInfoContainer { @@ -34,6 +40,18 @@ public class GUIElectrolyserMetal extends GuiInfoContainer { electrolyser.tanks[3].renderTankInfo(this, mouseX, mouseY, guiLeft + 36, guiTop + 18, 16, 52); + if(electrolyser.leftStack != null) { + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 58, guiTop + 18, 34, 42, mouseX, mouseY, EnumChatFormatting.YELLOW + I18nUtil.resolveKey(electrolyser.leftStack.material.getUnlocalizedName()) + ": " + Mats.formatAmount(electrolyser.leftStack.amount, Keyboard.isKeyDown(Keyboard.KEY_LSHIFT))); + } else { + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 58, guiTop + 18, 34, 42, mouseX, mouseY, EnumChatFormatting.RED + "Empty"); + } + + if(electrolyser.rightStack != null) { + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 96, guiTop + 18, 34, 42, mouseX, mouseY, EnumChatFormatting.YELLOW + I18nUtil.resolveKey(electrolyser.rightStack.material.getUnlocalizedName()) + ": " + Mats.formatAmount(electrolyser.rightStack.amount, Keyboard.isKeyDown(Keyboard.KEY_LSHIFT))); + } else { + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 96, guiTop + 18, 34, 42, mouseX, mouseY, EnumChatFormatting.RED + "Empty"); + } + this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 186, guiTop + 18, 16, 89, electrolyser.power, electrolyser.maxPower); } @@ -61,7 +79,32 @@ public class GUIElectrolyserMetal extends GuiInfoContainer { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + if(electrolyser.leftStack != null) { + int p = electrolyser.leftStack.amount * 42 / electrolyser.maxMaterial; + Color color = new Color(electrolyser.leftStack.material.moltenColor); + GL11.glColor3f(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F); + drawTexturedModalRect(guiLeft + 58, guiTop + 60 - p, 210, 131 - p, 34, p); + } + + if(electrolyser.rightStack != null) { + int p = electrolyser.rightStack.amount * 42 / electrolyser.maxMaterial; + Color color = new Color(electrolyser.rightStack.material.moltenColor); + GL11.glColor3f(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F); + drawTexturedModalRect(guiLeft + 96, guiTop + 60 - p, 210, 131 - p, 34, p); + } + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + + int p = (int) (electrolyser.power * 89 / electrolyser.maxPower); + drawTexturedModalRect(guiLeft + 186, guiTop + 107 - p, 210, 89 - p, 16, p); + + if(electrolyser.power >= electrolyser.usage) + drawTexturedModalRect(guiLeft + 190, guiTop + 4, 226, 25, 9, 12); + + int o = electrolyser.progressOre * 26 / electrolyser.processOreTime; + drawTexturedModalRect(guiLeft + 7, guiTop + 71 - o, 226, 25 - o, 22, o); + electrolyser.tanks[3].renderTank(guiLeft + 36, guiTop + 70, this.zLevel, 16, 52); } } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index eeb17ddfd..bf30755ad 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1968,6 +1968,10 @@ public class ModItems { public static Item bj_plate_jetpack; public static Item bj_legs; public static Item bj_boots; + public static Item envsuit_helmet; + public static Item envsuit_plate; + public static Item envsuit_legs; + public static Item envsuit_boots; public static Item hev_helmet; public static Item hev_plate; public static Item hev_legs; @@ -4860,6 +4864,20 @@ public class ModItems { bj_legs = new ArmorBJ(aMatBJ, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 10000000, 10000, 1000, 100).cloneStats((ArmorFSB) bj_helmet).setUnlocalizedName("bj_legs").setTextureName(RefStrings.MODID + ":bj_legs"); bj_boots = new ArmorBJ(aMatBJ, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 1000, 100).cloneStats((ArmorFSB) bj_helmet).setUnlocalizedName("bj_boots").setTextureName(RefStrings.MODID + ":bj_boots"); + ArmorMaterial aMatEnv = EnumHelper.addArmorMaterial("HBM_ENV", 150, new int[] { 3, 8, 6, 3 }, 100); + aMatEnv.customCraftingMaterial = ModItems.plate_armor_hev; + envsuit_helmet = new ArmorEnvsuit(aMatEnv, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000, 10000, 2500, 0).setMod(0.5F).setThreshold(2.0F) + .addEffect(new PotionEffect(Potion.moveSpeed.id, 20, 1)) + .addEffect(new PotionEffect(Potion.jump.id, 20, 0)) + .addResistance("fall", 0.75F) + .addResistance("monoxide", 0F) + .addResistance("onFire", 0F) + .hides(EnumPlayerPart.HAT) + .setUnlocalizedName("envsuit_helmet").setTextureName(RefStrings.MODID + ":hev_helmet"); + envsuit_plate = new ArmorEnvsuit(aMatEnv, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000, 10000, 2500, 0).cloneStats((ArmorFSB) envsuit_helmet).setUnlocalizedName("envsuit_plate").setTextureName(RefStrings.MODID + ":hev_plate"); + envsuit_legs = new ArmorEnvsuit(aMatEnv, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 1000000, 10000, 2500, 0).cloneStats((ArmorFSB) envsuit_helmet).setUnlocalizedName("envsuit_legs").setTextureName(RefStrings.MODID + ":hev_legs"); + envsuit_boots = new ArmorEnvsuit(aMatEnv, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000, 10000, 2500, 0).cloneStats((ArmorFSB) envsuit_helmet).setUnlocalizedName("envsuit_boots").setTextureName(RefStrings.MODID + ":hev_boots"); + ArmorMaterial aMatHEV = EnumHelper.addArmorMaterial("HBM_HEV", 150, new int[] { 3, 8, 6, 3 }, 100); aMatHEV.customCraftingMaterial = ModItems.plate_armor_hev; hev_helmet = new ArmorHEV(aMatHEV, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000, 10000, 2500, 0).setMod(0.20F).setCap(4.0F).setThreshold(2.0F) @@ -7792,6 +7810,10 @@ public class ModItems { GameRegistry.registerItem(bj_plate_jetpack, bj_plate_jetpack.getUnlocalizedName()); GameRegistry.registerItem(bj_legs, bj_legs.getUnlocalizedName()); GameRegistry.registerItem(bj_boots, bj_boots.getUnlocalizedName()); + GameRegistry.registerItem(envsuit_helmet, envsuit_helmet.getUnlocalizedName()); + GameRegistry.registerItem(envsuit_plate, envsuit_plate.getUnlocalizedName()); + GameRegistry.registerItem(envsuit_legs, envsuit_legs.getUnlocalizedName()); + GameRegistry.registerItem(envsuit_boots, envsuit_boots.getUnlocalizedName()); GameRegistry.registerItem(hev_helmet, hev_helmet.getUnlocalizedName()); GameRegistry.registerItem(hev_plate, hev_plate.getUnlocalizedName()); GameRegistry.registerItem(hev_legs, hev_legs.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/armor/ArmorEnvsuit.java b/src/main/java/com/hbm/items/armor/ArmorEnvsuit.java new file mode 100644 index 000000000..158ab3059 --- /dev/null +++ b/src/main/java/com/hbm/items/armor/ArmorEnvsuit.java @@ -0,0 +1,86 @@ +package com.hbm.items.armor; + +import java.util.UUID; + +import com.google.common.collect.Multimap; +import com.hbm.items.ModItems; +import com.hbm.render.model.ModelArmorEnvsuit; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.attributes.AttributeModifier; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public class ArmorEnvsuit extends ArmorFSBPowered { + + public ArmorEnvsuit(ArmorMaterial material, int slot, String texture, long maxPower, long chargeRate, long consumption, long drain) { + super(material, slot, texture, maxPower, chargeRate, consumption, drain); + } + + @SideOnly(Side.CLIENT) + ModelArmorEnvsuit[] models; + + @Override + @SideOnly(Side.CLIENT) + public ModelBiped getArmorModel(EntityLivingBase entityLiving, ItemStack itemStack, int armorSlot) { + + if(models == null) { + models = new ModelArmorEnvsuit[4]; + + for(int i = 0; i < 4; i++) + models[i] = new ModelArmorEnvsuit(i); + } + + return models[armorSlot]; + } + + private static final UUID speed = UUID.fromString("6ab858ba-d712-485c-bae9-e5e765fc555a"); + + @Override + public void onArmorTick(World world, EntityPlayer player, ItemStack stack) { + + super.onArmorTick(world, player, stack); + + if(this != ModItems.envsuit_plate) + return; + + /// SPEED /// + Multimap multimap = super.getAttributeModifiers(stack); + multimap.put(SharedMonsterAttributes.movementSpeed.getAttributeUnlocalizedName(), new AttributeModifier(speed, "SQUIRREL SPEED", 0.1, 0)); + player.getAttributeMap().removeAttributeModifiers(multimap); + + if(this.hasFSBArmor(player)) { + + if(player.isSprinting()) player.getAttributeMap().applyAttributeModifiers(multimap); + + if(player.isInWater()) { + + player.setAir(300); + + player.addPotionEffect(new PotionEffect(Potion.nightVision.id, 15 * 20, 0)); + + double mo = 0.1 * player.moveForward; + Vec3 vec = player.getLookVec(); + vec.xCoord *= mo; + vec.yCoord *= mo; + vec.zCoord *= mo; + + player.motionX += vec.xCoord; + player.motionY += vec.yCoord; + player.motionZ += vec.zCoord; + } else { + if(player.isPotionActive(Potion.nightVision.id) && player.getActivePotionEffect(Potion.nightVision).getDuration() > 15 * 20) { + player.removePotionEffect(Potion.nightVision.id); + } + } + } + } +} diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 82995ce32..3fc1955e0 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -775,6 +775,7 @@ public class ResourceManager { public static final IModelCustom armor_wings = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/armor/murk.obj")); public static final IModelCustom armor_solstice = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/armor/solstice.obj")); public static final IModelCustom player_manly_af = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/armor/player_fem.obj")); + public static final IModelCustom armor_envsuit = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/armor/envsuit.obj")); ////Texture Items @@ -873,6 +874,12 @@ public class ResourceManager { public static final ResourceLocation bj_jetpack = new ResourceLocation(RefStrings.MODID, "textures/armor/bj_jetpack.png"); public static final ResourceLocation bj_arm = new ResourceLocation(RefStrings.MODID, "textures/armor/bj_arm.png"); + public static final ResourceLocation envsuit_helmet = new ResourceLocation(RefStrings.MODID, "textures/armor/envsuit_helmet.png"); + public static final ResourceLocation envsuit_leg = new ResourceLocation(RefStrings.MODID, "textures/armor/envsuit_leg.png"); + public static final ResourceLocation envsuit_chest = new ResourceLocation(RefStrings.MODID, "textures/armor/envsuit_chest.png"); + public static final ResourceLocation envsuit_arm = new ResourceLocation(RefStrings.MODID, "textures/armor/envsuit_arm.png"); + public static final ResourceLocation envsuit_tail = new ResourceLocation(RefStrings.MODID, "textures/armor/envsuit_tail.png"); + public static final ResourceLocation hev_helmet = new ResourceLocation(RefStrings.MODID, "textures/armor/hev_helmet.png"); public static final ResourceLocation hev_leg = new ResourceLocation(RefStrings.MODID, "textures/armor/hev_leg.png"); public static final ResourceLocation hev_chest = new ResourceLocation(RefStrings.MODID, "textures/armor/hev_chest.png"); diff --git a/src/main/java/com/hbm/render/model/ModelArmorBase.java b/src/main/java/com/hbm/render/model/ModelArmorBase.java index 70134b4f6..81af0edba 100644 --- a/src/main/java/com/hbm/render/model/ModelArmorBase.java +++ b/src/main/java/com/hbm/render/model/ModelArmorBase.java @@ -39,16 +39,16 @@ public class ModelArmorBase extends ModelBiped { rightFoot = new ModelRendererObj(null).setRotationPoint(-1.9F, 12.0F, 0.0F); } - public void setRotationAngles(float p_78087_1_, float p_78087_2_, float p_78087_3_, float p_78087_4_, float p_78087_5_, float p_78087_6_, Entity entity) { + public void setRotationAngles(float walkCycle, float walkAmplitude, float idleCycle, float headYaw, float headPitch, float scale, Entity entity) { - head.rotateAngleY = p_78087_4_ / (180F / (float) Math.PI); - head.rotateAngleX = p_78087_5_ / (180F / (float) Math.PI); - rightArm.rotateAngleX = MathHelper.cos(p_78087_1_ * 0.6662F + (float) Math.PI) * 2.0F * p_78087_2_ * 0.5F; - leftArm.rotateAngleX = MathHelper.cos(p_78087_1_ * 0.6662F) * 2.0F * p_78087_2_ * 0.5F; + head.rotateAngleY = headYaw / (180F / (float) Math.PI); + head.rotateAngleX = headPitch / (180F / (float) Math.PI); + rightArm.rotateAngleX = MathHelper.cos(walkCycle * 0.6662F + (float) Math.PI) * 2.0F * walkAmplitude * 0.5F; + leftArm.rotateAngleX = MathHelper.cos(walkCycle * 0.6662F) * 2.0F * walkAmplitude * 0.5F; rightArm.rotateAngleZ = 0.0F; leftArm.rotateAngleZ = 0.0F; - rightFoot.rotateAngleX = rightLeg.rotateAngleX = MathHelper.cos(p_78087_1_ * 0.6662F) * 1.4F * p_78087_2_; - leftFoot.rotateAngleX = leftLeg.rotateAngleX = MathHelper.cos(p_78087_1_ * 0.6662F + (float) Math.PI) * 1.4F * p_78087_2_; + rightFoot.rotateAngleX = rightLeg.rotateAngleX = MathHelper.cos(walkCycle * 0.6662F) * 1.4F * walkAmplitude; + leftFoot.rotateAngleX = leftLeg.rotateAngleX = MathHelper.cos(walkCycle * 0.6662F + (float) Math.PI) * 1.4F * walkAmplitude; rightFoot.rotateAngleY = rightLeg.rotateAngleY = 0.0F; leftFoot.rotateAngleY = leftLeg.rotateAngleY = 0.0F; @@ -143,10 +143,10 @@ public class ModelArmorBase extends ModelBiped { head.offsetY = 0.0F; } - rightArm.rotateAngleZ += MathHelper.cos(p_78087_3_ * 0.09F) * 0.05F + 0.05F; - leftArm.rotateAngleZ -= MathHelper.cos(p_78087_3_ * 0.09F) * 0.05F + 0.05F; - rightArm.rotateAngleX += MathHelper.sin(p_78087_3_ * 0.067F) * 0.05F; - leftArm.rotateAngleX -= MathHelper.sin(p_78087_3_ * 0.067F) * 0.05F; + rightArm.rotateAngleZ += MathHelper.cos(idleCycle * 0.09F) * 0.05F + 0.05F; + leftArm.rotateAngleZ -= MathHelper.cos(idleCycle * 0.09F) * 0.05F + 0.05F; + rightArm.rotateAngleX += MathHelper.sin(idleCycle * 0.067F) * 0.05F; + leftArm.rotateAngleX -= MathHelper.sin(idleCycle * 0.067F) * 0.05F; if(this.aimedBow) { f6 = 0.0F; @@ -159,10 +159,10 @@ public class ModelArmorBase extends ModelBiped { leftArm.rotateAngleX = -((float) Math.PI / 2F) + head.rotateAngleX; rightArm.rotateAngleX -= f6 * 1.2F - f7 * 0.4F; leftArm.rotateAngleX -= f6 * 1.2F - f7 * 0.4F; - rightArm.rotateAngleZ += MathHelper.cos(p_78087_3_ * 0.09F) * 0.05F + 0.05F; - leftArm.rotateAngleZ -= MathHelper.cos(p_78087_3_ * 0.09F) * 0.05F + 0.05F; - rightArm.rotateAngleX += MathHelper.sin(p_78087_3_ * 0.067F) * 0.05F; - leftArm.rotateAngleX -= MathHelper.sin(p_78087_3_ * 0.067F) * 0.05F; + rightArm.rotateAngleZ += MathHelper.cos(idleCycle * 0.09F) * 0.05F + 0.05F; + leftArm.rotateAngleZ -= MathHelper.cos(idleCycle * 0.09F) * 0.05F + 0.05F; + rightArm.rotateAngleX += MathHelper.sin(idleCycle * 0.067F) * 0.05F; + leftArm.rotateAngleX -= MathHelper.sin(idleCycle * 0.067F) * 0.05F; } } diff --git a/src/main/java/com/hbm/render/model/ModelArmorEnvsuit.java b/src/main/java/com/hbm/render/model/ModelArmorEnvsuit.java new file mode 100644 index 000000000..0f5e0aa7a --- /dev/null +++ b/src/main/java/com/hbm/render/model/ModelArmorEnvsuit.java @@ -0,0 +1,80 @@ +package com.hbm.render.model; + +import org.lwjgl.opengl.GL11; + +import com.hbm.main.ResourceManager; +import com.hbm.render.loader.ModelRendererObj; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.entity.Entity; + +public class ModelArmorEnvsuit extends ModelArmorBase { + + ModelRendererObj lamps; + + public ModelArmorEnvsuit(int type) { + super(type); + + head = new ModelRendererObj(ResourceManager.armor_envsuit, "Helmet"); + lamps = new ModelRendererObj(ResourceManager.armor_envsuit, "Lamps"); + body = new ModelRendererObj(ResourceManager.armor_envsuit, "Chest"); + leftArm = new ModelRendererObj(ResourceManager.armor_envsuit, "LeftArm").setRotationPoint(-5.0F, 2.0F, 0.0F); + rightArm = new ModelRendererObj(ResourceManager.armor_envsuit, "RightArm").setRotationPoint(5.0F, 2.0F, 0.0F); + leftLeg = new ModelRendererObj(ResourceManager.armor_envsuit, "LeftLeg").setRotationPoint(1.9F, 12.0F, 0.0F); + rightLeg = new ModelRendererObj(ResourceManager.armor_envsuit, "RightLeg").setRotationPoint(-1.9F, 12.0F, 0.0F); + leftFoot = new ModelRendererObj(ResourceManager.armor_envsuit, "LeftFoot").setRotationPoint(1.9F, 12.0F, 0.0F); + rightFoot = new ModelRendererObj(ResourceManager.armor_envsuit, "RightFoot").setRotationPoint(-1.9F, 12.0F, 0.0F); + } + + @Override + public void render(Entity par1Entity, float par2, float par3, float par4, float par5, float par6, float par7) { + setRotationAngles(par2, par3, par4, par5, par6, par7, par1Entity); + head.copyTo(lamps); + + GL11.glPushMatrix(); + + if(type == 0) { + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.envsuit_helmet); + GL11.glEnable(GL11.GL_BLEND); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + head.render(par7); + GL11.glDisable(GL11.GL_BLEND); + + /// START GLOW /// + float lastX = OpenGlHelper.lastBrightnessX; + float lastY = OpenGlHelper.lastBrightnessY; + GL11.glPushAttrib(GL11.GL_LIGHTING_BIT); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_TEXTURE_2D); + GL11.glColor3f(1F, 1F, 0.8F); + lamps.render(par7); + GL11.glColor3f(1F, 1F, 1F); + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glPopAttrib(); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, lastX, lastY); + /// END GLOW /// + } + if(type == 1) { + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.envsuit_chest); + body.render(par7); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.envsuit_arm); + leftArm.render(par7); + rightArm.render(par7); + } + if(type == 2) { + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.envsuit_leg); + leftLeg.render(par7); + rightLeg.render(par7); + } + if(type == 3) { + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.envsuit_leg); + leftFoot.render(par7); + rightFoot.render(par7); + } + + GL11.glPopMatrix(); + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java b/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java index 0550dddc0..26762787e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java @@ -1,5 +1,9 @@ package com.hbm.tileentity.machine; +import java.util.ArrayList; +import java.util.List; + +import com.hbm.blocks.BlockDummyable; import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerElectrolyserFluid; @@ -9,18 +13,25 @@ import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIElectrolyserFluid; import com.hbm.inventory.gui.GUIElectrolyserMetal; import com.hbm.inventory.material.MaterialShapes; +import com.hbm.inventory.material.Mats; import com.hbm.inventory.material.Mats.MaterialStack; import com.hbm.inventory.recipes.ElectrolyserFluidRecipes; import com.hbm.inventory.recipes.ElectrolyserFluidRecipes.ElectrolysisRecipe; import com.hbm.inventory.recipes.ElectrolyserMetalRecipes; +import com.hbm.inventory.recipes.ElectrolyserMetalRecipes.ElectrolysisMetalRecipe; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; +import com.hbm.lib.Library; import com.hbm.main.MainRegistry; +import com.hbm.packet.AuxParticlePacketNT; +import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.CrucibleUtil; import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IEnergyUser; import api.hbm.fluid.IFluidStandardTransceiver; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -28,9 +39,9 @@ import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.FurnaceRecipes; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -98,6 +109,7 @@ public class TileEntityElectrolyser extends TileEntityMachineBase implements IEn if(!worldObj.isRemote) { + this.power = Library.chargeTEFromItems(slots, 0, power, maxPower); this.tanks[0].setType(3, 4, slots); this.tanks[0].loadTank(5, 6, slots); this.tanks[1].unloadTank(7, 8, slots); @@ -133,6 +145,63 @@ public class TileEntityElectrolyser extends TileEntityMachineBase implements IEn } } + if(this.canProcesMetal()) { + this.progressOre++; + this.power -= this.usage; + + if(this.progressOre >= this.processOreTime) { + this.processMetal(); + this.progressOre = 0; + this.markChanged(); + } + } + + if(this.leftStack != null) { + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset).getOpposite(); + List toCast = new ArrayList(); + toCast.add(this.leftStack); + + Vec3 impact = Vec3.createVectorHelper(0, 0, 0); + MaterialStack didPour = CrucibleUtil.pourFullStack(worldObj, xCoord + 0.5D + dir.offsetX * 5.875D, yCoord + 2D, zCoord + 0.5D + dir.offsetZ * 5.875D, 6, true, toCast, MaterialShapes.NUGGET.q(1), impact); + + if(didPour != null) { + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "foundry"); + data.setInteger("color", didPour.material.moltenColor); + data.setByte("dir", (byte) dir.ordinal()); + data.setFloat("off", 0.625F); + data.setFloat("base", 0.625F); + data.setFloat("len", Math.max(1F, yCoord - (float) (Math.ceil(impact.yCoord) - 0.875) + 2)); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, xCoord + 0.5D + dir.offsetX * 5.875D, yCoord + 2, zCoord + 0.5D + dir.offsetZ * 5.875D), new TargetPoint(worldObj.provider.dimensionId, xCoord + 0.5, yCoord + 1, zCoord + 0.5, 50)); + + if(this.leftStack.amount <= 0) this.leftStack = null; + } + } + + if(this.rightStack != null) { + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); + List toCast = new ArrayList(); + toCast.add(this.rightStack); + + Vec3 impact = Vec3.createVectorHelper(0, 0, 0); + MaterialStack didPour = CrucibleUtil.pourFullStack(worldObj, xCoord + 0.5D + dir.offsetX * 5.875D, yCoord + 2D, zCoord + 0.5D + dir.offsetZ * 5.875D, 6, true, toCast, MaterialShapes.NUGGET.q(1), impact); + + if(didPour != null) { + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "foundry"); + data.setInteger("color", didPour.material.moltenColor); + data.setByte("dir", (byte) dir.ordinal()); + data.setFloat("off", 0.625F); + data.setFloat("base", 0.625F); + data.setFloat("len", Math.max(1F, yCoord - (float) (Math.ceil(impact.yCoord) - 0.875) + 2)); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, xCoord + 0.5D + dir.offsetX * 5.875D, yCoord + 2, zCoord + 0.5D + dir.offsetZ * 5.875D), new TargetPoint(worldObj.provider.dimensionId, xCoord + 0.5, yCoord + 1, zCoord + 0.5, 50)); + + if(this.rightStack.amount <= 0) this.rightStack = null; + } + } + NBTTagCompound data = new NBTTagCompound(); data.setLong("power", this.power); data.setInteger("progressFluid", this.progressFluid); @@ -140,6 +209,14 @@ public class TileEntityElectrolyser extends TileEntityMachineBase implements IEn data.setInteger("usage", this.usage); data.setInteger("processFluidTime", this.processFluidTime); data.setInteger("processOreTime", this.processOreTime); + if(this.leftStack != null) { + data.setInteger("leftType", leftStack.material.id); + data.setInteger("leftAmount", leftStack.amount); + } + if(this.rightStack != null) { + data.setInteger("rightType", rightStack.material.id); + data.setInteger("rightAmount", rightStack.amount); + } for(int i = 0; i < 4; i++) tanks[i].writeToNBT(data, "t" + i); this.networkPack(data, 50); } @@ -167,6 +244,10 @@ public class TileEntityElectrolyser extends TileEntityMachineBase implements IEn this.usage = nbt.getInteger("usage"); this.processFluidTime = nbt.getInteger("processFluidTime"); this.processOreTime = nbt.getInteger("processOreTime"); + if(nbt.hasKey("leftType")) this.leftStack = new MaterialStack(Mats.matById.get(nbt.getInteger("leftType")), nbt.getInteger("leftAmount")); + else this.leftStack = null; + if(nbt.hasKey("rightType")) this.rightStack = new MaterialStack(Mats.matById.get(nbt.getInteger("rightType")), nbt.getInteger("rightAmount")); + else this.rightStack = null; for(int i = 0; i < 4; i++) tanks[i].readFromNBT(nbt, "t" + i); } @@ -220,6 +301,73 @@ public class TileEntityElectrolyser extends TileEntityMachineBase implements IEn } } + public boolean canProcesMetal() { + + if(slots[14] == null) return false; + if(this.power < usage) return false; + if(this.tanks[3].getFill() < 100) return false; + + ElectrolysisMetalRecipe recipe = ElectrolyserMetalRecipes.getRecipe(slots[14]); + + if(leftStack != null) { + if(recipe.output1.material != leftStack.material) return false; + if(recipe.output1.amount + leftStack.amount > this.maxMaterial) return false; + } + + if(rightStack != null) { + if(recipe.output2.material != rightStack.material) return false; + if(recipe.output2.amount + rightStack.amount > this.maxMaterial) return false; + } + + if(recipe.byproduct != null) { + + for(int i = 0; i < recipe.byproduct.length; i++) { + ItemStack slot = slots[15 + i]; + ItemStack byproduct = recipe.byproduct[i]; + + if(slot == null) continue; + if(!slot.isItemEqual(byproduct)) return false; + if(slot.stackSize + byproduct.stackSize > slot.getMaxStackSize()) return false; + } + } + + return true; + } + + public void processMetal() { + + ElectrolysisMetalRecipe recipe = ElectrolyserMetalRecipes.getRecipe(slots[14]); + + if(leftStack == null) { + leftStack = new MaterialStack(recipe.output1.material, recipe.output1.amount); + } else { + leftStack.amount += recipe.output1.amount; + } + + if(rightStack == null) { + rightStack = new MaterialStack(recipe.output2.material, recipe.output2.amount); + } else { + rightStack.amount += recipe.output2.amount; + } + + if(recipe.byproduct != null) { + + for(int i = 0; i < recipe.byproduct.length; i++) { + ItemStack slot = slots[15 + i]; + ItemStack byproduct = recipe.byproduct[i]; + + if(slot == null) { + slots[15 + i] = byproduct.copy(); + } else { + slots[15 + i].stackSize += byproduct.stackSize; + } + } + } + + this.tanks[3].setFill(this.tanks[3].getFill() - 100); + this.decrStackSize(14, 1); + } + AxisAlignedBB bb = null; @Override @@ -289,9 +437,7 @@ public class TileEntityElectrolyser extends TileEntityMachineBase implements IEn } @Override - public void receiveControl(NBTTagCompound data) { - - } + public void receiveControl(NBTTagCompound data) { } @Override public void receiveControl(EntityPlayer player, NBTTagCompound data) { diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 37d2f9508..e3e38d04a 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -439,10 +439,10 @@ book_lore.beacon.page.2=refer to the circuit diagram found on the inside of the book_lore.beacon.page.3=for the bulb can be ordered from our stores. Third party bulbs are not recommended, as we cannot ensure safe operation. The case is made from a specialized zinc-coated stainless steel and is resistant to weathering. book_lore.beacon.page.4=Chapter 2: Lantern $ The lantern's primary uses are providing light for ease of maintenance in harsh weather conditions as well as a status indicator. Should the power-on self test (POST) fail, the lantern will book_lore.beacon.page.5=light up red, otherwise it will light up green. Note that colors can vary depending on the replacement bulb. -book_lore.beacon.page.6=Chapter 3: Fog Horn $ The fog horn is the primary communication device of the beacon. The beacon is designed for peer-to-peer (P2P) commincation as well as for message boradcasting. +book_lore.beacon.page.6=Chapter 3: Fog Horn $ The fog horn is the primary communication device of the beacon. The beacon is designed for peer-to-peer (P2P) communication as well as for message broadcasting. book_lore.beacon.page.7=Chapter 4: Peer-to-Peer $ For details on communication, refer to the communications handbook. A short rundown of establishing a P2P connection follows: First, the beacon has to give the "START CONNECTION" signal, book_lore.beacon.page.8=being a single long tone. All available peers should respond with a single long tone as well (order specified by proximity, as well as the communication guidelines outlined in the handbook, section "Responding to a Connection") -book_lore.beacon.page.9=Once the desired peer has responded, give the "ACCEPT CONNECTION" signal, being two long tones, the peer will then also respon with two long tones. All communication afterwards has to happen using pre-negotiated signals, +book_lore.beacon.page.9=Once the desired peer has responded, give the "ACCEPT CONNECTION" signal, being two long tones, the peer will then also respond with two long tones. All communication afterwards has to happen using pre-negotiated signals, book_lore.beacon.page.10=most commonly using the FAR-5M standard. Communication will end immediately if no standard has been negotiated, serving as a "ping". Should communication continue, the connection can be ended using another long single tone "END CONNECTION". book_lore.beacon.page.11=Chapter 5: Warranty $ [ page intentionally left blank ] diff --git a/src/main/resources/assets/hbm/models/armor/envsuit.obj b/src/main/resources/assets/hbm/models/armor/envsuit.obj new file mode 100644 index 000000000..6a6abae64 --- /dev/null +++ b/src/main/resources/assets/hbm/models/armor/envsuit.obj @@ -0,0 +1,3595 @@ +# Blender v2.79 (sub 0) OBJ File: 'envsuit_scaled.blend' +# www.blender.org +o Lamps +v 4.199997 -9.250000 -2.625000 +v 2.099997 -9.250000 -2.625000 +v 3.674997 -10.825001 -3.150000 +v 2.624997 -10.825001 -3.150000 +v -2.100003 -9.250000 -2.625000 +v -4.200003 -9.250000 -2.625000 +v -2.625003 -10.825001 -3.150000 +v -3.675003 -10.825001 -3.150000 +vt 0.401810 0.000103 +vt 0.000103 0.499897 +vt 0.134006 0.000103 +vt 0.134006 0.500103 +vt 0.535712 0.999897 +vt 0.000103 0.999897 +vt 0.535712 0.499897 +vt 0.401809 0.500103 +vn 0.0000 0.3162 -0.9487 +s off +f 4/1/1 1/2/1 3/3/1 +f 7/4/1 6/5/1 5/6/1 +f 4/1/1 2/7/1 1/2/1 +f 7/4/1 8/8/1 6/5/1 +o Chest +v 4.199999 12.299999 2.100000 +v -4.200001 12.299999 2.100000 +v 4.199999 12.299999 -2.100000 +v -4.200001 12.299999 -2.100000 +v -3.150002 0.750000 2.625000 +v 3.149997 0.750000 2.625000 +v -3.150001 9.150000 2.625000 +v 3.149998 9.150000 2.625000 +v 4.199998 6.000000 2.100000 +v -4.200002 6.000000 2.100000 +v 4.199998 6.000000 -2.100000 +v -4.200002 6.000000 -2.100000 +v 4.199998 6.000000 -2.625000 +v -4.200002 6.000000 -2.625000 +v 4.199998 6.000000 2.625000 +v -4.200002 6.000000 2.625000 +v 4.724999 6.000000 2.100000 +v 4.724999 6.000000 -2.100000 +v -4.725001 6.000000 2.100000 +v -4.725001 6.000000 -2.100000 +v 4.199998 -0.299999 -2.625000 +v -4.200002 -0.299999 -2.625000 +v 4.199998 -0.299999 2.625000 +v -4.200002 -0.299999 2.625000 +v 4.724998 -0.299999 2.100000 +v 4.724998 -0.299999 -2.100000 +v -4.725002 -0.299999 2.100000 +v -4.725002 -0.299999 -2.100000 +v 4.199998 -0.825001 -2.100000 +v 4.199998 -0.825001 2.100000 +v -4.200002 -0.825001 2.100000 +v -4.200002 -0.825001 -2.100000 +v -0.000002 -0.299999 -3.675000 +v -2.100002 -0.299999 -2.625000 +v -0.000002 1.799999 -3.675000 +v -2.100002 1.799999 -2.625000 +v 2.099998 -0.299999 -2.625000 +v 2.099998 1.799999 -2.625000 +v -0.000002 3.900000 -2.625000 +v -2.100001 10.200000 2.625000 +v 2.099999 10.200000 2.625000 +v -3.150002 0.750000 6.825000 +v 3.149997 0.750000 6.825000 +v -3.150001 9.150000 6.825000 +v 3.149998 9.150000 6.825000 +v 2.099999 10.200000 6.825000 +v -2.100001 10.200000 6.825000 +v 3.149997 0.750000 5.775000 +v -3.150002 0.750000 5.775000 +v 3.149997 0.750000 3.675000 +v -3.150002 0.750000 3.675000 +v 3.149997 -0.299999 3.675000 +v 3.149997 -0.299999 5.775000 +v -3.150002 -0.299999 5.775000 +v -3.150002 -0.299999 3.675000 +v 3.149998 3.900000 5.775000 +v -3.150001 3.900000 5.775000 +v 3.149998 3.900000 3.675000 +v -3.150001 3.900000 3.675000 +v 4.199998 2.850000 5.775000 +v -4.200002 2.850000 5.775000 +v 4.199998 2.850000 3.675000 +v -4.200002 2.850000 3.675000 +v 4.199998 0.750000 5.775000 +v -4.200002 0.750000 5.775000 +v 4.199998 0.750000 3.675000 +v -4.200002 0.750000 3.675000 +v 2.624998 3.900000 6.825000 +v -2.625002 3.900000 6.825000 +v 2.624998 1.799999 6.825000 +v -2.625002 1.799999 6.825000 +v 2.624998 1.799999 7.875000 +v 2.624998 3.900000 7.875000 +v -2.625002 3.900000 7.875000 +v -2.625002 1.799999 7.875000 +v -4.200002 5.475000 -2.625000 +v 4.199998 5.475000 -2.625000 +v -3.150001 3.900000 -4.200000 +v 3.149998 3.900000 -4.200000 +v -4.200002 0.750000 -2.625000 +v 4.199998 0.750000 -2.625000 +vt 0.478261 0.181818 +vt 0.304348 -0.000000 +vt 0.478261 0.000000 +vt 0.695652 0.590909 +vt 0.565217 0.227273 +vt 0.695652 0.227273 +vt 0.304348 0.454545 +vt 0.217391 0.181818 +vt 0.304348 0.181818 +vt 0.478261 0.454545 +vt 0.565217 0.181818 +vt 0.043478 0.454545 +vt 0.043478 0.181818 +vt 0.467391 0.477273 +vt 0.293478 0.454545 +vt 0.467391 0.454545 +vt 0.184783 0.477273 +vt 0.010870 0.454545 +vt 0.184783 0.454545 +vt 0.565217 0.477273 +vt 0.565217 0.454545 +vt 0.478261 0.477273 +vt 0.467391 0.454545 +vt 0.010870 0.477273 +vt 0.000000 0.454545 +vt 0.282609 0.454545 +vt 0.195652 0.477273 +vt 0.195652 0.454545 +vt 0.184783 0.454545 +vt 0.293478 0.477273 +vt 0.282609 0.454545 +vt 0.467391 0.750000 +vt 0.293478 0.750000 +vt 0.282609 0.477273 +vt 0.282609 0.750000 +vt 0.010870 0.750000 +vt -0.000000 0.477273 +vt 0.565217 0.750000 +vt 0.195652 0.750000 +vt 0.184783 0.750000 +vt 0.293478 0.954545 +vt 0.467391 0.772727 +vt 0.467391 0.954545 +vt 0.565217 0.772727 +vt 0.478261 0.750000 +vt 0.184783 0.772727 +vt 0.282609 0.772727 +vt 0.195652 0.772727 +vt 0.293478 0.772727 +vt 0.478261 0.772727 +vt -0.000000 0.750000 +vt 0.010870 0.772727 +vt 0.467391 0.954545 +vt 0.510870 0.863636 +vt 0.510870 0.954545 +vt 0.554348 0.954545 +vt 0.554348 1.000000 +vt 0.467391 1.000000 +vt 0.467391 0.863636 +vt 0.510870 0.772727 +vt 0.554348 0.863636 +vt 0.586957 0.181818 +vt 0.913043 0.227273 +vt 0.782609 0.590909 +vt 0.782609 0.227273 +vt 0.891304 0.181818 +vt 0.782609 0.772727 +vt 0.913043 0.590909 +vt 0.913043 0.772727 +vt 0.695652 0.181818 +vt 0.891304 0.000000 +vt 0.804348 0.181818 +vt 0.804348 -0.000000 +vt 1.000000 0.590909 +vt 1.000000 0.227273 +vt 0.913043 0.181818 +vt 1.000000 0.181818 +vt 0.782609 0.818182 +vt 0.652174 0.909091 +vt 0.652174 0.818182 +vt 0.652174 0.954545 +vt 0.782609 0.909091 +vt 0.782609 0.954545 +vt 0.782609 0.772727 +vt 0.652174 0.772727 +vt 0.804348 0.909091 +vt 0.847826 0.909091 +vt 0.869565 0.818182 +vt 0.869565 0.909091 +vt 0.586957 0.818182 +vt 0.565217 0.909091 +vt 0.565217 0.818182 +vt 0.847826 0.818182 +vt 0.630435 0.818182 +vt 0.586957 0.909091 +vt 0.793478 0.772727 +vt 0.804348 0.818182 +vt 0.804348 0.772727 +vt 0.869565 0.772727 +vt 0.793478 0.954545 +vt 0.804348 0.954545 +vt 0.641304 0.954545 +vt 0.630435 0.909091 +vt 0.630435 0.954545 +vt 0.565217 0.954545 +vt 0.641304 0.772727 +vt 0.630435 0.772727 +vt 0.782609 0.045455 +vt 0.673913 0.136364 +vt 0.673913 0.045455 +vt 0.673913 0.181818 +vt 0.782609 0.136364 +vt 0.782609 0.181818 +vt 0.782609 -0.000000 +vt 0.673913 -0.000000 +vt 0.804348 0.136364 +vt 0.804348 0.045455 +vt 0.652174 0.045455 +vt 0.652174 0.136364 +vt 0.086957 0.840909 +vt 0.054348 0.977273 +vt 0.054348 0.772727 +vt 0.293478 0.772727 +vt 0.293478 0.977273 +vt 0.260870 0.840909 +vt 0.260870 0.977273 +vt 0.108696 0.840909 +vt 0.239130 0.840909 +vt 0.086957 0.772727 +vt 0.260870 0.772727 +vt 0.565217 0.590909 +vt 0.217391 0.454545 +vt 0.673913 0.181818 +vt 0.782609 0.181818 +vt 0.869565 0.954545 +vt 0.565217 0.772727 +vt 0.086957 0.977273 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 -0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 0.7071 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.7071 -0.7071 0.0000 +vn 0.0000 -0.7071 0.7071 +vn -0.7071 -0.7071 0.0000 +vn -0.5774 -0.5773 0.5774 +vn -0.5774 -0.5773 -0.5774 +vn 0.5774 -0.5773 -0.5774 +vn 0.5774 -0.5773 0.5774 +vn -0.4472 0.0000 -0.8944 +vn 0.4472 -0.0000 -0.8944 +vn -0.4082 0.4082 -0.8165 +vn 0.4082 0.4082 -0.8165 +vn 0.7071 0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn -0.8321 0.0000 -0.5547 +vn 0.8321 0.0000 -0.5547 +vn 0.0000 -0.4472 -0.8944 +vn 0.0000 0.7071 -0.7071 +s off +f 11/9/2 10/10/2 9/11/2 +f 14/12/3 15/13/3 16/14/3 +f 20/15/4 10/16/4 12/17/4 +f 19/18/3 12/17/3 11/9/3 +f 9/19/5 19/18/5 11/9/5 +f 10/16/6 17/20/6 9/21/6 +f 21/22/2 20/23/2 19/24/2 +f 24/25/2 17/26/2 18/27/2 +f 25/28/2 19/18/2 17/29/2 +f 19/18/2 26/30/2 21/31/2 +f 17/26/2 23/32/2 25/33/2 +f 20/34/2 27/35/2 18/36/2 +f 18/36/2 27/35/2 24/37/2 +f 22/38/2 28/39/2 20/23/2 +f 26/30/7 29/40/7 21/22/7 +f 30/41/8 28/42/8 22/38/8 +f 36/43/4 27/35/4 28/42/4 +f 31/44/9 25/45/9 23/32/9 +f 29/40/3 22/38/3 21/22/3 +f 33/46/5 26/30/5 25/28/5 +f 35/47/10 24/25/10 27/35/10 +f 32/48/6 23/32/6 24/25/6 +f 39/49/11 37/50/11 38/51/11 +f 37/50/12 30/41/12 29/40/12 +f 38/52/13 34/53/13 33/46/13 +f 39/54/14 31/44/14 32/48/14 +f 40/55/15 35/47/15 36/43/15 +f 35/47/16 39/56/16 32/48/16 +f 36/43/17 30/41/17 40/57/17 +f 34/53/18 37/58/18 29/40/18 +f 33/59/19 31/44/19 38/60/19 +f 42/61/20 43/62/20 41/63/20 +f 43/62/21 45/64/21 41/63/21 +f 41/63/11 45/65/11 42/66/11 +f 43/62/22 44/67/22 47/68/22 +f 46/69/23 43/62/23 47/68/23 +f 48/70/3 16/14/3 15/13/3 +f 52/71/6 51/72/6 53/73/6 +f 53/73/6 55/74/6 52/71/6 +f 14/75/11 50/76/11 13/77/11 +f 49/78/24 53/73/24 16/14/24 +f 48/79/2 54/80/2 49/81/2 +f 16/14/5 51/72/5 14/12/5 +f 13/82/4 52/71/4 15/83/4 +f 15/83/25 55/84/25 48/85/25 +f 62/86/11 60/87/11 61/88/11 +f 58/89/3 63/90/3 59/91/3 +f 57/92/6 61/88/6 56/93/6 +f 62/86/15 75/94/15 63/90/15 +f 71/95/25 65/96/25 67/97/25 +f 68/98/24 66/99/24 64/100/24 +f 75/94/4 69/101/4 71/95/4 +f 72/102/5 70/103/5 68/98/5 +f 62/86/6 57/104/6 73/105/6 +f 69/101/6 57/106/6 65/107/6 +f 59/108/3 63/90/3 75/94/3 +f 71/95/3 59/109/3 75/94/3 +f 60/87/13 72/102/13 61/88/13 +f 60/87/3 58/110/3 74/111/3 +f 70/103/3 58/112/3 66/113/3 +f 56/114/6 61/88/6 72/102/6 +f 68/98/6 56/115/6 72/102/6 +f 82/116/6 80/117/6 81/118/6 +f 78/119/11 83/120/11 79/121/11 +f 77/122/2 81/118/2 76/123/2 +f 79/124/4 82/116/4 77/125/4 +f 76/126/5 80/117/5 78/127/5 +f 86/128/26 88/129/26 84/130/26 +f 85/131/27 89/132/27 87/133/27 +f 89/134/28 86/135/28 87/136/28 +f 87/136/29 84/137/29 85/138/29 +f 11/9/2 12/17/2 10/10/2 +f 14/12/3 13/139/3 15/13/3 +f 20/15/4 18/140/4 10/16/4 +f 19/18/3 20/15/3 12/17/3 +f 9/19/5 17/29/5 19/18/5 +f 10/16/6 18/140/6 17/20/6 +f 21/22/2 22/38/2 20/23/2 +f 24/25/2 23/32/2 17/26/2 +f 25/28/2 26/30/2 19/18/2 +f 20/34/2 28/42/2 27/35/2 +f 26/30/7 34/53/7 29/40/7 +f 30/41/8 36/43/8 28/42/8 +f 36/43/4 35/47/4 27/35/4 +f 31/44/9 33/59/9 25/45/9 +f 29/40/3 30/41/3 22/38/3 +f 33/46/5 34/53/5 26/30/5 +f 35/47/10 32/48/10 24/25/10 +f 32/48/6 31/44/6 23/32/6 +f 39/49/11 40/57/11 37/50/11 +f 37/50/12 40/57/12 30/41/12 +f 38/52/13 37/58/13 34/53/13 +f 39/54/14 38/60/14 31/44/14 +f 40/55/15 39/56/15 35/47/15 +f 42/61/20 44/67/20 43/62/20 +f 43/62/21 46/69/21 45/64/21 +f 48/70/3 49/141/3 16/14/3 +f 52/71/6 50/76/6 51/72/6 +f 53/73/6 54/80/6 55/74/6 +f 14/75/11 51/72/11 50/76/11 +f 49/78/24 54/142/24 53/73/24 +f 48/79/2 55/74/2 54/80/2 +f 16/14/5 53/73/5 51/72/5 +f 13/82/4 50/76/4 52/71/4 +f 15/83/25 52/71/25 55/84/25 +f 62/86/11 63/90/11 60/87/11 +f 58/89/3 60/87/3 63/90/3 +f 57/92/6 62/86/6 61/88/6 +f 62/86/15 73/105/15 75/94/15 +f 71/95/25 69/101/25 65/96/25 +f 68/98/24 70/103/24 66/99/24 +f 75/94/4 73/105/4 69/101/4 +f 72/102/5 74/111/5 70/103/5 +f 69/101/6 73/105/6 57/106/6 +f 71/95/3 67/143/3 59/109/3 +f 60/87/13 74/111/13 72/102/13 +f 70/103/3 74/111/3 58/112/3 +f 68/98/6 64/144/6 56/115/6 +f 82/116/6 83/120/6 80/117/6 +f 78/119/11 80/117/11 83/120/11 +f 77/122/2 82/116/2 81/118/2 +f 79/124/4 83/120/4 82/116/4 +f 76/126/5 81/118/5 80/117/5 +f 89/134/28 88/145/28 86/135/28 +f 87/136/29 86/135/29 84/137/29 +o LeftArm +v 3.899999 12.299999 2.100000 +v 3.899999 12.299999 -2.100000 +v 8.100000 12.299999 -2.100000 +v 8.100000 12.299999 2.100000 +v 3.899998 5.475000 -2.100000 +v 3.899998 5.475000 2.100000 +v 8.099998 5.475000 -2.100000 +v 8.099998 5.475000 2.100000 +v 3.899998 5.475000 -2.625000 +v 8.099998 5.475000 -2.625000 +v 3.899998 5.475000 2.625000 +v 8.099998 5.475000 2.625000 +v 8.624998 5.475000 -2.100000 +v 8.624998 5.475000 2.100000 +v 3.374998 5.475000 -2.100000 +v 3.374998 5.475000 2.100000 +v 3.899998 -0.299999 -2.625000 +v 8.099998 -0.299999 -2.625000 +v 3.899998 -0.299999 2.625000 +v 8.099998 -0.299999 2.625000 +v 8.624998 -0.299999 -2.100000 +v 8.624998 -0.299999 2.100000 +v 3.374998 -0.299999 -2.100000 +v 3.374998 -0.299999 2.100000 +v 3.899998 -0.825001 -2.100000 +v 3.899998 -0.825001 2.100000 +v 8.099998 -0.825001 -2.100000 +v 8.099998 -0.825001 2.100000 +v 3.899999 6.525000 -2.100000 +v 3.899999 6.525000 2.100000 +v 8.099998 6.525000 -2.100000 +v 8.099998 6.525000 2.100000 +v 3.899999 6.525000 -2.625000 +v 8.099998 6.525000 -2.625000 +v 3.899999 6.525000 2.625000 +v 8.099998 6.525000 2.625000 +v 8.624998 6.525000 -2.100000 +v 8.624998 6.525000 2.100000 +v 3.374999 6.525000 -2.100000 +v 3.374999 6.525000 2.100000 +v 2.849999 7.575001 2.100000 +v 2.849999 7.575001 -2.100000 +v 8.099998 7.575001 3.150000 +v 3.899999 7.575001 3.150000 +v 8.099998 7.575001 -2.625000 +v 3.899999 7.575001 -2.625000 +v 3.899999 7.575001 2.625000 +v 8.099998 7.575001 2.625000 +v 8.624998 7.575001 -2.100000 +v 8.624998 7.575001 2.100000 +v 3.374999 7.575001 -2.100000 +v 3.374999 7.575001 2.100000 +v 8.099998 7.575001 -3.150000 +v 3.899999 7.575001 -3.150000 +v 9.149998 7.575001 -2.100000 +v 9.149998 7.575001 2.100000 +v 2.849999 8.625000 2.100000 +v 2.849999 8.625000 -2.100000 +v 8.100000 8.625000 3.150000 +v 3.899999 8.625000 3.150000 +v 8.100000 8.625000 -3.150000 +v 3.899999 8.625000 -3.150000 +v 9.150000 8.625000 -2.100000 +v 9.150000 8.625000 2.100000 +v 8.100000 8.625000 -2.625000 +v 3.899999 8.625000 -2.625000 +v 3.899999 8.625000 2.625000 +v 8.100000 8.625000 2.625000 +v 8.625000 8.625000 -2.100000 +v 8.625000 8.625000 2.100000 +v 3.374999 8.625000 -2.100000 +v 3.374999 8.625000 2.100000 +v 8.100000 9.150000 -2.625000 +v 3.899999 9.150000 -2.625000 +v 3.899999 9.150000 2.625000 +v 8.100000 9.150000 2.625000 +v 8.625000 9.150000 -2.100000 +v 8.625000 9.150000 2.100000 +v 3.374999 9.150000 -2.100000 +v 3.374999 9.150000 2.100000 +v 2.849999 9.150000 2.100000 +v 2.849999 9.150000 -2.100000 +v 8.100000 9.150000 3.150000 +v 3.899999 9.150000 3.150000 +v 8.100000 9.150000 -3.150000 +v 3.899999 9.150000 -3.150000 +v 9.150000 9.150000 -2.100000 +v 9.150000 9.150000 2.100000 +v 2.849999 10.200000 2.100000 +v 2.849999 10.200000 -2.100000 +v 8.100000 10.199998 3.150000 +v 3.899999 10.200000 3.150000 +v 8.100000 10.199998 -3.150000 +v 3.899999 10.200000 -3.150000 +v 9.150000 10.199998 -2.100000 +v 9.150000 10.199998 2.100000 +v 8.100000 10.199998 -2.625000 +v 3.899999 10.200000 -2.625000 +v 3.899999 10.200000 2.625000 +v 8.100000 10.199998 2.625000 +v 8.625000 10.199998 -2.100000 +v 8.625000 10.199998 2.100000 +v 3.374999 10.200000 -2.100000 +v 3.374999 10.200000 2.100000 +v 8.100000 11.775000 -2.625000 +v 3.899999 11.775000 -2.625000 +v 3.899999 11.775000 2.625000 +v 8.100000 11.775000 2.625000 +v 8.625000 11.775000 -2.100000 +v 8.625000 11.775000 2.100000 +v 3.374999 11.775000 -2.100000 +v 3.374999 11.775000 2.100000 +v 8.625000 11.512498 1.050000 +v 8.625000 10.462500 1.050000 +v 8.625000 11.512498 -1.050000 +v 8.625000 10.462500 -1.050000 +v 9.150000 11.512498 -1.050000 +v 9.150000 11.512498 1.050000 +v 9.150000 10.462500 1.050000 +v 9.150000 10.462500 -1.050000 +v 8.554661 6.787500 0.525000 +v 8.099998 6.525000 0.525000 +v 8.554661 6.787500 -0.525000 +v 8.099998 6.525000 -0.525000 +v 9.604660 4.968847 -0.525000 +v 9.604660 4.968847 0.525000 +v 9.149998 4.706348 0.525000 +v 9.149998 4.706348 -0.525000 +vt 0.275000 0.191489 +vt 0.300000 0.191489 +vt 0.275000 0.170213 +vt 0.250000 0.191489 +vt 0.050000 0.170213 +vt 0.050000 0.191489 +vt 0.525000 0.191489 +vt 0.550000 0.191489 +vt 0.525000 0.170213 +vt 0.750000 0.000000 +vt 0.550000 0.170213 +vt 0.750000 0.170213 +vt 0.500000 0.170213 +vt 0.300000 0.170213 +vt 0.750000 0.191489 +vt 0.550000 0.553191 +vt 0.750000 0.574468 +vt 0.750000 0.553191 +vt 0.050000 0.553191 +vt 0.250000 0.574468 +vt 0.250000 0.553191 +vt 0.300000 0.553191 +vt 0.500000 0.574468 +vt 0.500000 0.553191 +vt 0.800000 0.574468 +vt 1.000000 0.553191 +vt 0.800000 0.553191 +vt 0.050000 0.574468 +vt 0.025000 0.553191 +vt 0.025000 0.574468 +vt 0.775000 0.553191 +vt 0.775000 0.574468 +vt 0.525000 0.553191 +vt 0.525000 0.574468 +vt 0.550000 0.574468 +vt 0.275000 0.553191 +vt 0.275000 0.574468 +vt 0.300000 0.574468 +vt 0.500000 0.808511 +vt 0.300000 0.808511 +vt 0.800000 0.808511 +vt 0.750000 0.808511 +vt 1.000000 0.574468 +vt 0.550000 0.808511 +vt 0.050000 0.808511 +vt 0.250000 0.808511 +vt 0.750000 0.829787 +vt 0.550000 1.000000 +vt 0.750000 1.000000 +vt 0.300000 0.829787 +vt 0.525000 0.808511 +vt 0.525000 0.829787 +vt 0.250000 0.829787 +vt 0.275000 0.808511 +vt 0.275000 0.829787 +vt 1.000000 0.829787 +vt 1.000000 0.808511 +vt 0.025000 0.808511 +vt 0.025000 0.829787 +vt 0.775000 0.808511 +vt 0.775000 0.829787 +vt 0.750000 0.489362 +vt 0.550000 0.510638 +vt 0.750000 0.510638 +vt 0.250000 0.489362 +vt 0.050000 0.510638 +vt 0.250000 0.510638 +vt 0.500000 0.489362 +vt 0.300000 0.510638 +vt 0.500000 0.510638 +vt 1.000000 0.510638 +vt 0.800000 0.489362 +vt 0.800000 0.510638 +vt 0.050000 0.489362 +vt 0.025000 0.489362 +vt 0.025000 0.510638 +vt 0.775000 0.510638 +vt 0.775000 0.489362 +vt 0.525000 0.510638 +vt 0.550000 0.489362 +vt 0.525000 0.489362 +vt 0.275000 0.510638 +vt 0.300000 0.489362 +vt 0.275000 0.489362 +vt 0.250000 0.425532 +vt 0.050000 0.382979 +vt 0.050000 0.425532 +vt 0.550000 0.425532 +vt 0.750000 0.382979 +vt 0.550000 0.382979 +vt 0.500000 0.425532 +vt 0.300000 0.382979 +vt 0.300000 0.425532 +vt 0.500000 0.382979 +vt 0.275000 0.446809 +vt 0.300000 0.446809 +vt 0.550000 0.446809 +vt 0.500000 0.446809 +vt 0.750000 0.425532 +vt 0.800000 0.446809 +vt 0.800000 0.425532 +vt 0.050000 0.446809 +vt 0.750000 0.446809 +vt 0.025000 0.446809 +vt 1.000000 0.489362 +vt 0.775000 0.446809 +vt 0.000000 0.425532 +vt 0.525000 0.446809 +vt 1.000000 0.446809 +vt 0.250000 0.446809 +vt 1.000000 0.425532 +vt 0.800000 0.382979 +vt 0.250000 0.382979 +vt 0.000000 0.382979 +vt 0.750000 0.361702 +vt 0.550000 0.361702 +vt 0.525000 0.361702 +vt 0.300000 0.361702 +vt 0.275000 0.361702 +vt 0.250000 0.361702 +vt 0.025000 0.361702 +vt 1.000000 0.361702 +vt 1.000000 0.382979 +vt 0.800000 0.361702 +vt 0.050000 0.361702 +vt 0.025000 0.340426 +vt 0.500000 0.361702 +vt 0.300000 0.340426 +vt 0.750000 0.340426 +vt 0.550000 0.340426 +vt 0.275000 0.340426 +vt 0.775000 0.361702 +vt 0.800000 0.340426 +vt 0.775000 0.340426 +vt 0.050000 0.340426 +vt 0.525000 0.340426 +vt 0.750000 0.319149 +vt 0.500000 0.319149 +vt 0.500000 0.340426 +vt 0.300000 0.319149 +vt 0.250000 0.319149 +vt 0.250000 0.340426 +vt 0.050000 0.319149 +vt 1.000000 0.319149 +vt 1.000000 0.340426 +vt 0.800000 0.319149 +vt 0.750000 0.276596 +vt 0.550000 0.319149 +vt 0.500000 0.276596 +vt 0.000000 0.276596 +vt 0.000000 0.319149 +vt 0.800000 0.276596 +vt 0.300000 0.276596 +vt 0.250000 0.276596 +vt 0.550000 0.276596 +vt 0.050000 0.276596 +vt 0.750000 0.255319 +vt 0.550000 0.255319 +vt 0.525000 0.255319 +vt 0.300000 0.255319 +vt 0.275000 0.255319 +vt 0.250000 0.255319 +vt 0.025000 0.255319 +vt 1.000000 0.255319 +vt 1.000000 0.276596 +vt 0.800000 0.255319 +vt 0.050000 0.255319 +vt 0.025000 0.191489 +vt 0.500000 0.255319 +vt 0.775000 0.191489 +vt 0.775000 0.255319 +vt 0.800000 0.191489 +vt 0.800000 0.170213 +vt 1.000000 0.191489 +vt 1.000000 0.170213 +vt 0.025000 0.170213 +vt 0.775000 0.170213 +vt 0.150000 0.893617 +vt 0.250000 0.851064 +vt 0.150000 0.851064 +vt 0.275000 0.851064 +vt 0.250000 0.893617 +vt 0.275000 0.893617 +vt 0.125000 0.893617 +vt 0.125000 0.851064 +vt 0.250000 0.914894 +vt 0.150000 0.914894 +vt 0.150000 0.829787 +vt 0.250000 0.829787 +vt 0.300000 0.936170 +vt 0.350000 0.914894 +vt 0.300000 0.914894 +vt 0.300000 0.829787 +vt 0.350000 0.829787 +vt 0.375000 0.829787 +vt 0.375000 0.914894 +vt 0.275000 0.829787 +vt 0.425000 0.914894 +vt 0.425000 0.829787 +vt 0.250000 0.170213 +vt 0.550000 0.000000 +vt 0.500000 0.191489 +vt 0.550000 0.829787 +vt 0.500000 0.829787 +vt 0.050000 0.829787 +vt 0.800000 0.829787 +vt 0.350000 0.936170 +vt 0.275000 0.914894 +vn 0.5774 0.5774 0.5773 +vn 0.0000 0.7071 0.7071 +vn 0.5774 0.5774 -0.5773 +vn 0.0000 1.0000 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.0000 0.7071 -0.7071 +vn 1.0000 0.0000 0.0000 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 0.7071 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.7071 -0.7071 0.0000 +vn 0.5774 -0.5773 -0.5774 +vn 0.0000 -0.7071 0.7071 +vn 0.5774 -0.5773 0.5774 +vn -0.7071 -0.7071 0.0000 +vn -0.5774 -0.5773 0.5774 +vn -0.5774 -0.5773 -0.5774 +vn -0.7071 0.7071 0.0000 +vn -0.5774 0.5774 0.5774 +vn -0.5774 0.5774 -0.5774 +vn 0.5000 -0.8660 0.0000 +vn 0.8660 0.5000 0.0000 +vn -0.8660 -0.5000 0.0000 +s off +f 197/146/30 199/147/30 93/148/30 +f 197/149/31 90/150/31 196/151/31 +f 198/152/32 194/153/32 92/154/32 +f 90/155/33 92/156/33 91/157/33 +f 199/147/34 92/158/34 93/159/34 +f 91/157/35 194/153/35 195/160/35 +f 96/161/33 98/162/33 94/163/33 +f 95/164/33 101/165/33 97/166/33 +f 97/167/33 102/168/33 96/169/33 +f 104/170/33 95/171/33 94/172/33 +f 100/173/33 95/174/33 105/175/33 +f 94/176/33 98/177/33 104/170/33 +f 96/178/33 102/179/33 99/180/33 +f 97/181/33 101/182/33 103/183/33 +f 103/183/36 110/184/36 102/168/36 +f 101/182/37 111/185/37 103/183/37 +f 98/177/38 112/186/38 104/170/38 +f 99/180/39 106/187/39 98/162/39 +f 112/186/40 105/188/40 104/170/40 +f 102/179/41 107/189/41 99/180/41 +f 105/175/42 108/190/42 100/173/42 +f 100/173/43 109/191/43 101/165/43 +f 114/192/44 117/193/44 115/194/44 +f 107/189/45 114/192/45 106/187/45 +f 117/195/46 110/184/46 111/185/46 +f 110/196/47 116/197/47 107/189/47 +f 108/190/48 117/198/48 109/191/48 +f 111/185/49 109/199/49 117/200/49 +f 112/186/50 115/201/50 113/202/50 +f 113/203/51 115/204/51 108/190/51 +f 112/186/52 106/205/52 114/206/52 +f 122/207/44 120/208/44 118/209/44 +f 125/210/44 119/211/44 121/212/44 +f 126/213/44 121/214/44 120/215/44 +f 119/216/44 128/217/44 118/218/44 +f 124/219/44 129/220/44 119/221/44 +f 118/222/44 128/217/44 122/223/44 +f 120/224/44 123/225/44 126/226/44 +f 121/227/44 127/228/44 125/229/44 +f 132/230/43 149/231/43 133/232/43 +f 142/233/39 151/234/39 150/235/39 +f 144/236/36 153/237/36 145/238/36 +f 144/236/41 150/235/41 152/239/41 +f 145/238/44 137/240/44 139/241/44 +f 144/236/44 134/242/44 142/233/44 +f 138/243/44 145/238/44 139/241/44 +f 143/244/44 140/245/44 131/246/44 +f 125/210/43 136/247/43 124/219/43 +f 127/228/37 137/240/37 125/229/37 +f 122/207/39 134/242/39 123/225/39 +f 135/248/44 142/233/44 134/242/44 +f 124/219/42 141/249/42 129/220/42 +f 129/250/40 140/245/40 128/217/40 +f 126/213/36 139/241/36 127/228/36 +f 128/217/38 135/251/38 122/223/38 +f 141/249/44 133/232/44 130/252/44 +f 123/225/41 138/253/41 126/226/41 +f 141/254/44 131/246/44 140/245/44 +f 137/255/44 133/232/44 136/247/44 +f 130/256/40 147/257/40 131/246/40 +f 145/238/37 148/258/37 132/230/37 +f 131/246/38 151/234/38 143/244/38 +f 133/232/42 146/259/42 130/252/42 +f 155/260/33 150/235/33 151/234/33 +f 152/239/33 154/261/33 158/262/33 +f 152/239/33 159/263/33 153/237/33 +f 153/237/33 157/264/33 148/258/33 +f 157/265/33 149/231/33 148/258/33 +f 149/231/33 161/266/33 146/259/33 +f 161/267/33 147/257/33 146/268/33 +f 160/269/33 151/234/33 147/257/33 +f 156/270/42 169/271/42 161/266/42 +f 158/272/36 167/273/36 159/263/36 +f 154/261/39 163/274/39 162/275/39 +f 159/263/37 165/276/37 157/264/37 +f 155/277/38 168/278/38 163/279/38 +f 161/267/40 168/278/40 160/269/40 +f 157/265/43 164/280/43 156/270/43 +f 154/261/41 166/281/41 158/262/41 +f 175/282/44 162/275/44 163/274/44 +f 162/275/44 176/283/44 166/281/44 +f 166/284/44 177/285/44 167/273/44 +f 165/276/44 177/285/44 172/286/44 +f 172/286/44 164/280/44 165/287/44 +f 173/288/44 169/271/44 164/280/44 +f 170/289/44 168/278/44 169/290/44 +f 168/278/44 175/282/44 163/279/44 +f 171/291/38 183/292/38 175/282/38 +f 174/293/41 184/294/41 176/283/41 +f 173/288/42 178/295/42 170/296/42 +f 170/289/40 179/297/40 171/291/40 +f 176/283/36 185/298/36 177/285/36 +f 177/285/37 180/299/37 172/286/37 +f 175/282/39 182/300/39 174/293/39 +f 172/286/43 181/301/43 173/288/43 +f 187/302/33 182/300/33 183/292/33 +f 184/294/33 186/303/33 190/304/33 +f 184/294/33 191/305/33 185/298/33 +f 185/298/33 189/306/33 180/299/33 +f 189/307/33 181/301/33 180/299/33 +f 181/301/33 193/308/33 178/295/33 +f 193/309/33 179/297/33 178/310/33 +f 192/311/33 183/292/33 179/297/33 +f 186/303/41 198/152/41 190/304/41 +f 188/312/42 201/313/42 193/308/42 +f 190/314/36 199/147/36 191/305/36 +f 187/302/39 194/153/39 186/303/39 +f 191/305/37 197/146/37 189/306/37 +f 192/311/38 195/315/38 187/316/38 +f 193/309/40 200/317/40 192/311/40 +f 189/307/43 196/151/43 188/312/43 +f 91/318/53 201/319/53 90/320/53 +f 201/313/54 196/151/54 90/321/54 +f 200/317/55 91/322/55 195/315/55 +f 118/209/39 96/161/39 94/163/39 +f 96/169/36 121/214/36 97/167/36 +f 97/166/43 119/211/43 95/164/43 +f 119/216/40 94/172/40 95/171/40 +f 208/323/36 206/324/36 207/325/36 +f 204/326/39 209/327/39 205/328/39 +f 203/329/43 207/325/43 202/330/43 +f 205/331/44 208/323/44 203/332/44 +f 202/333/33 206/324/33 204/334/33 +f 216/335/56 214/336/56 215/337/56 +f 210/338/57 214/336/57 212/339/57 +f 213/340/39 214/336/39 217/341/39 +f 211/342/43 215/337/43 210/338/43 +f 213/340/58 216/343/58 211/344/58 +f 197/149/31 93/345/31 90/150/31 +f 90/155/33 93/346/33 92/156/33 +f 199/147/34 198/347/34 92/158/34 +f 91/157/35 92/156/35 194/153/35 +f 96/161/33 99/180/33 98/162/33 +f 95/164/33 100/173/33 101/165/33 +f 97/167/33 103/183/33 102/168/33 +f 104/170/33 105/188/33 95/171/33 +f 103/183/36 111/185/36 110/184/36 +f 101/182/37 109/199/37 111/185/37 +f 98/177/38 106/205/38 112/186/38 +f 99/180/39 107/189/39 106/187/39 +f 112/186/40 113/202/40 105/188/40 +f 102/179/41 110/196/41 107/189/41 +f 105/175/42 113/203/42 108/190/42 +f 100/173/43 108/190/43 109/191/43 +f 114/192/44 116/348/44 117/193/44 +f 107/189/45 116/348/45 114/192/45 +f 117/195/46 116/349/46 110/184/46 +f 108/190/48 115/350/48 117/198/48 +f 112/186/50 114/351/50 115/201/50 +f 122/207/44 123/225/44 120/208/44 +f 125/210/44 124/219/44 119/211/44 +f 126/213/44 127/228/44 121/214/44 +f 119/216/44 129/250/44 128/217/44 +f 132/230/43 148/258/43 149/231/43 +f 142/233/39 143/244/39 151/234/39 +f 144/236/36 152/239/36 153/237/36 +f 144/236/41 142/233/41 150/235/41 +f 145/238/44 132/230/44 137/240/44 +f 144/236/44 138/253/44 134/242/44 +f 138/243/44 144/236/44 145/238/44 +f 143/244/44 135/251/44 140/245/44 +f 125/210/43 137/255/43 136/247/43 +f 127/228/37 139/241/37 137/240/37 +f 122/207/39 135/248/39 134/242/39 +f 135/248/44 143/244/44 142/233/44 +f 124/219/42 136/247/42 141/249/42 +f 129/250/40 141/254/40 140/245/40 +f 126/213/36 138/243/36 139/241/36 +f 128/217/38 140/245/38 135/251/38 +f 141/249/44 136/247/44 133/232/44 +f 123/225/41 134/242/41 138/253/41 +f 141/254/44 130/256/44 131/246/44 +f 137/255/44 132/230/44 133/232/44 +f 130/256/40 146/268/40 147/257/40 +f 145/238/37 153/237/37 148/258/37 +f 131/246/38 147/257/38 151/234/38 +f 133/232/42 149/231/42 146/259/42 +f 155/260/33 154/261/33 150/235/33 +f 152/239/33 150/235/33 154/261/33 +f 152/239/33 158/272/33 159/263/33 +f 153/237/33 159/263/33 157/264/33 +f 157/265/33 156/270/33 149/231/33 +f 149/231/33 156/270/33 161/266/33 +f 161/267/33 160/269/33 147/257/33 +f 160/269/33 155/277/33 151/234/33 +f 156/270/42 164/280/42 169/271/42 +f 158/272/36 166/284/36 167/273/36 +f 154/261/39 155/260/39 163/274/39 +f 159/263/37 167/273/37 165/276/37 +f 155/277/38 160/269/38 168/278/38 +f 161/267/40 169/290/40 168/278/40 +f 157/265/43 165/287/43 164/280/43 +f 154/261/41 162/275/41 166/281/41 +f 175/282/44 174/293/44 162/275/44 +f 162/275/44 174/293/44 176/283/44 +f 166/284/44 176/283/44 177/285/44 +f 165/276/44 167/273/44 177/285/44 +f 172/286/44 173/288/44 164/280/44 +f 173/288/44 170/296/44 169/271/44 +f 170/289/44 171/291/44 168/278/44 +f 168/278/44 171/291/44 175/282/44 +f 171/291/38 179/297/38 183/292/38 +f 174/293/41 182/300/41 184/294/41 +f 173/288/42 181/301/42 178/295/42 +f 170/289/40 178/310/40 179/297/40 +f 176/283/36 184/294/36 185/298/36 +f 177/285/37 185/298/37 180/299/37 +f 175/282/39 183/292/39 182/300/39 +f 172/286/43 180/299/43 181/301/43 +f 187/302/33 186/303/33 182/300/33 +f 184/294/33 182/300/33 186/303/33 +f 184/294/33 190/314/33 191/305/33 +f 185/298/33 191/305/33 189/306/33 +f 189/307/33 188/312/33 181/301/33 +f 181/301/33 188/312/33 193/308/33 +f 193/309/33 192/311/33 179/297/33 +f 192/311/33 187/316/33 183/292/33 +f 186/303/41 194/153/41 198/152/41 +f 188/312/42 196/151/42 201/313/42 +f 190/314/36 198/347/36 199/147/36 +f 187/302/39 195/160/39 194/153/39 +f 191/305/37 199/147/37 197/146/37 +f 192/311/38 200/317/38 195/315/38 +f 193/309/40 201/319/40 200/317/40 +f 189/307/43 197/149/43 196/151/43 +f 91/318/53 200/317/53 201/319/53 +f 118/209/39 120/208/39 96/161/39 +f 96/169/36 120/215/36 121/214/36 +f 97/166/43 121/212/43 119/211/43 +f 119/216/40 118/218/40 94/172/40 +f 208/323/36 209/327/36 206/324/36 +f 204/326/39 206/324/39 209/327/39 +f 203/329/43 208/323/43 207/325/43 +f 205/331/44 209/327/44 208/323/44 +f 202/333/33 207/325/33 206/324/33 +f 216/335/56 217/352/56 214/336/56 +f 210/338/57 215/337/57 214/336/57 +f 213/340/39 212/339/39 214/336/39 +f 211/342/43 216/353/43 215/337/43 +f 213/340/58 217/341/58 216/343/58 +o RightArm +v -3.900001 12.299999 2.100000 +v -3.900001 12.299999 -2.100000 +v -8.100000 12.299999 -2.100000 +v -8.100000 12.299999 2.100000 +v -3.900002 5.475000 -2.100000 +v -3.900002 5.475000 2.100000 +v -8.100002 5.475000 -2.100000 +v -8.100002 5.475000 2.100000 +v -3.900002 5.475000 -2.625000 +v -8.100002 5.475000 -2.625000 +v -3.900002 5.475000 2.625000 +v -8.100002 5.475000 2.625000 +v -8.625002 5.475000 -2.100000 +v -8.625002 5.475000 2.100000 +v -3.375002 5.475000 -2.100000 +v -3.375002 5.475000 2.100000 +v -3.900002 -0.299999 -2.625000 +v -8.100002 -0.299999 -2.625000 +v -3.900002 -0.299999 2.625000 +v -8.100002 -0.299999 2.625000 +v -8.625002 -0.299999 -2.100000 +v -8.625002 -0.299999 2.100000 +v -3.375002 -0.299999 -2.100000 +v -3.375002 -0.299999 2.100000 +v -3.900002 -0.825001 -2.100000 +v -3.900002 -0.825001 2.100000 +v -8.100002 -0.825001 -2.100000 +v -8.100002 -0.825001 2.100000 +v -3.900002 6.525000 -2.100000 +v -3.900002 6.525000 2.100000 +v -8.100002 6.525000 -2.100000 +v -8.100002 6.525000 2.100000 +v -3.900002 6.525000 -2.625000 +v -8.100002 6.525000 -2.625000 +v -3.900002 6.525000 2.625000 +v -8.100002 6.525000 2.625000 +v -8.625002 6.525000 -2.100000 +v -8.625002 6.525000 2.100000 +v -3.375001 6.525000 -2.100000 +v -3.375001 6.525000 2.100000 +v -2.850002 7.575001 2.100000 +v -2.850002 7.575001 -2.100000 +v -8.100002 7.575001 3.150000 +v -3.900002 7.575001 3.150000 +v -8.100002 7.575001 -2.625000 +v -3.900002 7.575001 -2.625000 +v -3.900002 7.575001 2.625000 +v -8.100002 7.575001 2.625000 +v -8.625002 7.575001 -2.100000 +v -8.625002 7.575001 2.100000 +v -3.375001 7.575001 -2.100000 +v -3.375001 7.575001 2.100000 +v -8.100002 7.575001 -3.150000 +v -3.900002 7.575001 -3.150000 +v -9.150002 7.575001 -2.100000 +v -9.150002 7.575001 2.100000 +v -2.850002 8.625000 2.100000 +v -2.850002 8.625000 -2.100000 +v -8.100000 8.625000 3.150000 +v -3.900002 8.625000 3.150000 +v -8.100000 8.625000 -3.150000 +v -3.900002 8.625000 -3.150000 +v -9.150000 8.625000 -2.100000 +v -9.150000 8.625000 2.100000 +v -8.100000 8.625000 -2.625000 +v -3.900002 8.625000 -2.625000 +v -3.900002 8.625000 2.625000 +v -8.100000 8.625000 2.625000 +v -8.625000 8.625000 -2.100000 +v -8.625000 8.625000 2.100000 +v -3.375001 8.625000 -2.100000 +v -3.375001 8.625000 2.100000 +v -8.100000 9.150000 -2.625000 +v -3.900001 9.150000 -2.625000 +v -3.900001 9.150000 2.625000 +v -8.100000 9.150000 2.625000 +v -8.625000 9.150000 -2.100000 +v -8.625000 9.150000 2.100000 +v -3.375001 9.150000 -2.100000 +v -3.375001 9.150000 2.100000 +v -2.850002 9.150000 2.100000 +v -2.850002 9.150000 -2.100000 +v -8.100000 9.150000 3.150000 +v -3.900001 9.150000 3.150000 +v -8.100000 9.150000 -3.150000 +v -3.900001 9.150000 -3.150000 +v -9.150000 9.150000 -2.100000 +v -9.150000 9.150000 2.100000 +v -2.850002 10.200000 2.100000 +v -2.850002 10.200000 -2.100000 +v -8.100000 10.200002 3.150000 +v -3.900001 10.200000 3.150000 +v -8.100000 10.200002 -3.150000 +v -3.900001 10.200000 -3.150000 +v -9.150000 10.200002 -2.100000 +v -9.150000 10.200002 2.100000 +v -8.100000 10.200002 -2.625000 +v -3.900001 10.200000 -2.625000 +v -3.900001 10.200000 2.625000 +v -8.100000 10.200002 2.625000 +v -8.625000 10.200002 -2.100000 +v -8.625000 10.200002 2.100000 +v -3.375001 10.200000 -2.100000 +v -3.375001 10.200000 2.100000 +v -8.100000 11.775000 -2.625000 +v -3.900001 11.775000 -2.625000 +v -3.900001 11.775000 2.625000 +v -8.100000 11.775000 2.625000 +v -8.625000 11.775000 -2.100000 +v -8.625000 11.775000 2.100000 +v -3.375001 11.775000 -2.100000 +v -3.375001 11.775000 2.100000 +v -8.625000 11.512502 1.050000 +v -8.625000 10.462500 1.050000 +v -8.625000 11.512502 -1.050000 +v -8.625000 10.462500 -1.050000 +v -9.150000 11.512502 -1.050000 +v -9.150000 11.512502 1.050000 +v -9.150000 10.462500 1.050000 +v -9.150000 10.462500 -1.050000 +v -8.554665 6.787500 0.525000 +v -8.100002 6.525000 0.525000 +v -8.554665 6.787500 -0.525000 +v -8.100002 6.525000 -0.525000 +v -9.604664 4.968847 -0.525000 +v -9.604664 4.968847 0.525000 +v -9.150002 4.706348 0.525000 +v -9.150002 4.706348 -0.525000 +vt 0.275000 0.191489 +vt 0.275000 0.170213 +vt 0.300000 0.191489 +vt 0.050000 0.170213 +vt 0.250000 0.191489 +vt 0.050000 0.191489 +vt 0.525000 0.191489 +vt 0.525000 0.170213 +vt 0.550000 0.191489 +vt 0.550000 0.170213 +vt 0.750000 0.000000 +vt 0.750000 0.170213 +vt 0.500000 0.170213 +vt 0.300000 0.170213 +vt 0.750000 0.191489 +vt 0.750000 0.574468 +vt 0.550000 0.553191 +vt 0.750000 0.553191 +vt 0.250000 0.574468 +vt 0.050000 0.553191 +vt 0.250000 0.553191 +vt 0.500000 0.574468 +vt 0.300000 0.553191 +vt 0.500000 0.553191 +vt 1.000000 0.553191 +vt 0.800000 0.574468 +vt 0.800000 0.553191 +vt 0.050000 0.574468 +vt 0.025000 0.574468 +vt 0.025000 0.553191 +vt 0.775000 0.553191 +vt 0.775000 0.574468 +vt 0.525000 0.553191 +vt 0.550000 0.574468 +vt 0.525000 0.574468 +vt 0.275000 0.553191 +vt 0.300000 0.574468 +vt 0.275000 0.574468 +vt 0.500000 0.808511 +vt 0.300000 0.808511 +vt 0.800000 0.808511 +vt 0.750000 0.808511 +vt 1.000000 0.574468 +vt 0.550000 0.808511 +vt 0.050000 0.808511 +vt 0.250000 0.808511 +vt 0.550000 1.000000 +vt 0.750000 0.829787 +vt 0.750000 1.000000 +vt 0.300000 0.829787 +vt 0.525000 0.808511 +vt 0.525000 0.829787 +vt 0.250000 0.829787 +vt 0.275000 0.829787 +vt 0.275000 0.808511 +vt 1.000000 0.829787 +vt 1.000000 0.808511 +vt 0.025000 0.808511 +vt 0.025000 0.829787 +vt 0.775000 0.829787 +vt 0.775000 0.808511 +vt 0.550000 0.510638 +vt 0.750000 0.489362 +vt 0.750000 0.510638 +vt 0.050000 0.510638 +vt 0.250000 0.489362 +vt 0.250000 0.510638 +vt 0.300000 0.510638 +vt 0.500000 0.489362 +vt 0.500000 0.510638 +vt 0.800000 0.489362 +vt 1.000000 0.510638 +vt 0.800000 0.510638 +vt 0.050000 0.489362 +vt 0.025000 0.510638 +vt 0.025000 0.489362 +vt 0.775000 0.510638 +vt 0.775000 0.489362 +vt 0.525000 0.510638 +vt 0.525000 0.489362 +vt 0.550000 0.489362 +vt 0.275000 0.510638 +vt 0.275000 0.489362 +vt 0.300000 0.489362 +vt 0.050000 0.425532 +vt 0.250000 0.382979 +vt 0.250000 0.425532 +vt 0.550000 0.382979 +vt 0.750000 0.425532 +vt 0.550000 0.425532 +vt 0.300000 0.382979 +vt 0.500000 0.425532 +vt 0.300000 0.425532 +vt 0.500000 0.382979 +vt 0.275000 0.446809 +vt 0.550000 0.446809 +vt 0.525000 0.446809 +vt 0.500000 0.446809 +vt 0.300000 0.446809 +vt 0.800000 0.446809 +vt 0.800000 0.425532 +vt 0.050000 0.446809 +vt 0.750000 0.446809 +vt 0.025000 0.446809 +vt 1.000000 0.489362 +vt 0.775000 0.446809 +vt 0.000000 0.425532 +vt 1.000000 0.446809 +vt 0.250000 0.446809 +vt 0.800000 0.382979 +vt 1.000000 0.425532 +vt 0.750000 0.382979 +vt 0.000000 0.382979 +vt 0.750000 0.361702 +vt 0.550000 0.361702 +vt 0.300000 0.361702 +vt 0.275000 0.361702 +vt 0.050000 0.382979 +vt 0.250000 0.361702 +vt 0.025000 0.361702 +vt 1.000000 0.361702 +vt 1.000000 0.382979 +vt 0.800000 0.361702 +vt 0.050000 0.340426 +vt 0.050000 0.361702 +vt 0.300000 0.340426 +vt 0.500000 0.361702 +vt 0.550000 0.340426 +vt 0.275000 0.340426 +vt 0.775000 0.340426 +vt 0.775000 0.361702 +vt 0.800000 0.340426 +vt 0.250000 0.340426 +vt 0.525000 0.340426 +vt 0.525000 0.361702 +vt 0.750000 0.319149 +vt 0.750000 0.340426 +vt 0.500000 0.319149 +vt 0.550000 0.319149 +vt 0.300000 0.319149 +vt 0.500000 0.340426 +vt 0.250000 0.319149 +vt 0.025000 0.340426 +vt 0.050000 0.319149 +vt 1.000000 0.319149 +vt 1.000000 0.340426 +vt 0.750000 0.276596 +vt 0.800000 0.319149 +vt 0.500000 0.276596 +vt 0.000000 0.276596 +vt 0.000000 0.319149 +vt 0.800000 0.276596 +vt 0.300000 0.276596 +vt 0.250000 0.276596 +vt 0.550000 0.276596 +vt 0.050000 0.276596 +vt 0.750000 0.255319 +vt 0.550000 0.255319 +vt 0.300000 0.255319 +vt 0.275000 0.255319 +vt 0.250000 0.255319 +vt 0.025000 0.255319 +vt 1.000000 0.255319 +vt 1.000000 0.276596 +vt 0.800000 0.255319 +vt 0.525000 0.255319 +vt 0.025000 0.191489 +vt 0.050000 0.255319 +vt 0.500000 0.255319 +vt 0.775000 0.191489 +vt 0.775000 0.255319 +vt 0.800000 0.191489 +vt 1.000000 0.191489 +vt 0.800000 0.170213 +vt 1.000000 0.170213 +vt 0.025000 0.170213 +vt 0.775000 0.170213 +vt 0.250000 0.851064 +vt 0.150000 0.893617 +vt 0.150000 0.851064 +vt 0.250000 0.893617 +vt 0.275000 0.851064 +vt 0.275000 0.893617 +vt 0.125000 0.893617 +vt 0.125000 0.851064 +vt 0.250000 0.914894 +vt 0.150000 0.914894 +vt 0.150000 0.829787 +vt 0.250000 0.829787 +vt 0.350000 0.914894 +vt 0.300000 0.936170 +vt 0.300000 0.914894 +vt 0.300000 0.829787 +vt 0.350000 0.829787 +vt 0.375000 0.829787 +vt 0.275000 0.829787 +vt 0.425000 0.914894 +vt 0.425000 0.829787 +vt 0.250000 0.170213 +vt 0.550000 0.000000 +vt 0.500000 0.191489 +vt 0.550000 0.829787 +vt 0.500000 0.829787 +vt 0.050000 0.829787 +vt 0.800000 0.829787 +vt 0.350000 0.936170 +vt 0.375000 0.914894 +vt 0.275000 0.914894 +vn -0.5774 0.5774 0.5773 +vn 0.0000 0.7071 0.7071 +vn -0.5774 0.5774 -0.5773 +vn 0.0000 1.0000 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.0000 0.7071 -0.7071 +vn -1.0000 0.0000 0.0000 +vn -0.7071 0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 -0.7071 -0.7071 +vn -0.7071 -0.7071 0.0000 +vn -0.5774 -0.5773 -0.5774 +vn 0.0000 -0.7071 0.7071 +vn -0.5774 -0.5773 0.5774 +vn 0.7071 -0.7071 0.0000 +vn 0.5774 -0.5773 0.5774 +vn 0.5774 -0.5773 -0.5774 +vn 0.7071 0.7071 0.0000 +vn 0.5774 0.5774 0.5774 +vn 0.5774 0.5774 -0.5774 +vn -0.5000 -0.8660 0.0000 +vn -0.8660 0.5000 0.0000 +vn 0.8660 -0.5000 0.0000 +s off +f 325/354/59 221/355/59 327/356/59 +f 218/357/60 325/358/60 324/359/60 +f 326/360/61 220/361/61 322/362/61 +f 220/363/62 218/364/62 219/365/62 +f 220/366/63 327/356/63 221/367/63 +f 322/362/64 219/365/64 323/368/64 +f 226/369/62 224/370/62 222/371/62 +f 229/372/62 223/373/62 225/374/62 +f 230/375/62 225/376/62 224/377/62 +f 223/378/62 232/379/62 222/380/62 +f 228/381/62 233/382/62 223/383/62 +f 222/384/62 232/379/62 226/385/62 +f 224/386/62 227/387/62 230/388/62 +f 225/389/62 231/390/62 229/391/62 +f 238/392/65 231/390/65 230/375/65 +f 239/393/66 229/391/66 231/390/66 +f 240/394/67 226/385/67 232/379/67 +f 234/395/68 227/387/68 226/369/68 +f 233/396/69 240/394/69 232/379/69 +f 235/397/70 230/388/70 227/387/70 +f 236/398/71 233/382/71 228/381/71 +f 237/399/72 228/381/72 229/372/72 +f 245/400/73 242/401/73 243/402/73 +f 242/401/74 235/397/74 234/395/74 +f 238/392/75 245/403/75 239/393/75 +f 238/404/76 235/397/76 244/405/76 +f 245/406/77 236/398/77 237/399/77 +f 239/393/78 245/407/78 237/408/78 +f 243/409/79 240/394/79 241/410/79 +f 241/411/80 236/398/80 243/412/80 +f 240/394/81 242/413/81 234/414/81 +f 248/415/73 250/416/73 246/417/73 +f 247/418/73 253/419/73 249/420/73 +f 249/421/73 254/422/73 248/423/73 +f 256/424/73 247/425/73 246/426/73 +f 252/427/73 247/428/73 257/429/73 +f 246/430/73 250/431/73 256/424/73 +f 248/432/73 254/433/73 251/434/73 +f 249/435/73 253/436/73 255/437/73 +f 261/438/72 276/439/72 260/440/72 +f 278/441/68 271/442/68 270/443/68 +f 281/444/65 272/445/65 273/446/65 +f 280/447/70 270/443/70 272/445/70 +f 273/446/73 265/448/73 260/440/73 +f 272/445/73 262/449/73 266/450/73 +f 273/446/73 266/451/73 267/452/73 +f 268/453/73 271/442/73 259/454/73 +f 264/455/72 253/419/72 252/427/72 +f 265/448/66 255/437/66 253/436/66 +f 262/449/68 250/416/68 251/434/68 +f 270/443/73 263/456/73 262/449/73 +f 269/457/71 252/427/71 257/429/71 +f 268/453/69 257/458/69 256/424/69 +f 267/452/65 254/422/65 255/437/65 +f 263/459/67 256/424/67 250/431/67 +f 261/438/73 269/457/73 258/460/73 +f 266/450/70 251/434/70 254/433/70 +f 259/454/73 269/461/73 268/453/73 +f 261/438/73 265/462/73 264/455/73 +f 275/463/69 258/464/69 259/454/69 +f 260/440/66 281/444/66 273/446/66 +f 279/465/67 259/454/67 271/442/67 +f 274/466/71 261/438/71 258/460/71 +f 278/441/62 283/467/62 279/465/62 +f 280/447/62 282/468/62 278/441/62 +f 287/469/62 280/447/62 281/444/62 +f 281/444/62 285/470/62 287/469/62 +f 277/471/62 285/472/62 276/439/62 +f 289/473/62 277/471/62 274/466/62 +f 275/463/62 289/474/62 274/475/62 +f 279/465/62 288/476/62 275/463/62 +f 289/473/71 292/477/71 284/478/71 +f 295/479/65 286/480/65 287/469/65 +f 290/481/68 283/467/68 282/468/68 +f 293/482/66 287/469/66 285/470/66 +f 291/483/67 288/476/67 283/484/67 +f 296/485/69 289/474/69 288/476/69 +f 284/478/72 293/486/72 285/472/72 +f 294/487/70 282/468/70 286/488/70 +f 290/481/73 303/489/73 291/490/73 +f 290/481/73 304/491/73 302/492/73 +f 305/493/73 294/494/73 295/479/73 +f 293/482/73 305/493/73 295/479/73 +f 292/477/73 300/495/73 293/486/73 +f 297/496/73 301/497/73 292/477/73 +f 296/485/73 298/498/73 297/499/73 +f 303/489/73 296/485/73 291/483/73 +f 311/500/67 299/501/67 303/489/67 +f 312/502/70 302/492/70 304/491/70 +f 306/503/71 301/497/71 298/504/71 +f 307/505/69 298/498/69 299/501/69 +f 313/506/65 304/491/65 305/493/65 +f 308/507/66 305/493/66 300/495/66 +f 310/508/68 303/489/68 302/492/68 +f 309/509/72 300/495/72 301/497/72 +f 310/508/62 315/510/62 311/500/62 +f 312/502/62 314/511/62 310/508/62 +f 319/512/62 312/502/62 313/506/62 +f 313/506/62 317/513/62 319/512/62 +f 309/509/62 317/514/62 308/507/62 +f 321/515/62 309/509/62 306/503/62 +f 307/505/62 321/516/62 306/517/62 +f 311/500/62 320/518/62 307/505/62 +f 326/360/70 314/511/70 318/519/70 +f 329/520/71 316/521/71 321/515/71 +f 327/356/65 318/522/65 319/512/65 +f 314/511/68 323/368/68 315/510/68 +f 325/354/66 319/512/66 317/513/66 +f 323/523/67 320/518/67 315/524/67 +f 328/525/69 321/516/69 320/518/69 +f 324/359/72 317/514/72 316/521/72 +f 329/526/82 219/527/82 218/528/82 +f 329/520/83 218/529/83 324/359/83 +f 328/525/84 323/523/84 219/530/84 +f 224/370/68 246/417/68 222/371/68 +f 249/421/65 224/377/65 225/376/65 +f 223/373/72 249/420/72 225/374/72 +f 222/380/69 247/425/69 223/378/69 +f 334/531/65 336/532/65 335/533/65 +f 337/534/68 332/535/68 333/536/68 +f 335/533/72 331/537/72 330/538/72 +f 336/532/73 333/539/73 331/540/73 +f 334/531/62 330/541/62 332/542/62 +f 342/543/85 344/544/85 343/545/85 +f 342/543/86 338/546/86 340/547/86 +f 341/548/68 342/543/68 340/547/68 +f 343/545/72 339/549/72 338/546/72 +f 344/550/87 341/548/87 339/551/87 +f 218/357/60 221/552/60 325/358/60 +f 220/363/62 221/553/62 218/364/62 +f 220/366/63 326/554/63 327/356/63 +f 322/362/64 220/363/64 219/365/64 +f 226/369/62 227/387/62 224/370/62 +f 229/372/62 228/381/62 223/373/62 +f 230/375/62 231/390/62 225/376/62 +f 223/378/62 233/396/62 232/379/62 +f 238/392/65 239/393/65 231/390/65 +f 239/393/66 237/408/66 229/391/66 +f 240/394/67 234/414/67 226/385/67 +f 234/395/68 235/397/68 227/387/68 +f 233/396/69 241/410/69 240/394/69 +f 235/397/70 238/404/70 230/388/70 +f 236/398/71 241/411/71 233/382/71 +f 237/399/72 236/398/72 228/381/72 +f 245/400/73 244/555/73 242/401/73 +f 242/401/74 244/555/74 235/397/74 +f 238/392/75 244/556/75 245/403/75 +f 245/406/77 243/557/77 236/398/77 +f 243/409/79 242/558/79 240/394/79 +f 248/415/73 251/434/73 250/416/73 +f 247/418/73 252/427/73 253/419/73 +f 249/421/73 255/437/73 254/422/73 +f 256/424/73 257/458/73 247/425/73 +f 261/438/72 277/471/72 276/439/72 +f 278/441/68 279/465/68 271/442/68 +f 281/444/65 280/447/65 272/445/65 +f 280/447/70 278/441/70 270/443/70 +f 273/446/73 267/452/73 265/448/73 +f 272/445/73 270/443/73 262/449/73 +f 273/446/73 272/445/73 266/451/73 +f 268/453/73 263/459/73 271/442/73 +f 264/455/72 265/462/72 253/419/72 +f 265/448/66 267/452/66 255/437/66 +f 262/449/68 263/456/68 250/416/68 +f 270/443/73 271/442/73 263/456/73 +f 269/457/71 264/455/71 252/427/71 +f 268/453/69 269/461/69 257/458/69 +f 267/452/65 266/451/65 254/422/65 +f 263/459/67 268/453/67 256/424/67 +f 261/438/73 264/455/73 269/457/73 +f 266/450/70 262/449/70 251/434/70 +f 259/454/73 258/464/73 269/461/73 +f 261/438/73 260/440/73 265/462/73 +f 275/463/69 274/475/69 258/464/69 +f 260/440/66 276/439/66 281/444/66 +f 279/465/67 275/463/67 259/454/67 +f 274/466/71 277/471/71 261/438/71 +f 278/441/62 282/468/62 283/467/62 +f 280/447/62 286/488/62 282/468/62 +f 287/469/62 286/480/62 280/447/62 +f 281/444/62 276/439/62 285/470/62 +f 277/471/62 284/478/62 285/472/62 +f 289/473/62 284/478/62 277/471/62 +f 275/463/62 288/476/62 289/474/62 +f 279/465/62 283/484/62 288/476/62 +f 289/473/71 297/496/71 292/477/71 +f 295/479/65 294/494/65 286/480/65 +f 290/481/68 291/490/68 283/467/68 +f 293/482/66 295/479/66 287/469/66 +f 291/483/67 296/485/67 288/476/67 +f 296/485/69 297/499/69 289/474/69 +f 284/478/72 292/477/72 293/486/72 +f 294/487/70 290/481/70 282/468/70 +f 290/481/73 302/492/73 303/489/73 +f 290/481/73 294/487/73 304/491/73 +f 305/493/73 304/491/73 294/494/73 +f 293/482/73 300/495/73 305/493/73 +f 292/477/73 301/497/73 300/495/73 +f 297/496/73 298/504/73 301/497/73 +f 296/485/73 299/501/73 298/498/73 +f 303/489/73 299/501/73 296/485/73 +f 311/500/67 307/505/67 299/501/67 +f 312/502/70 310/508/70 302/492/70 +f 306/503/71 309/509/71 301/497/71 +f 307/505/69 306/517/69 298/498/69 +f 313/506/65 312/502/65 304/491/65 +f 308/507/66 313/506/66 305/493/66 +f 310/508/68 311/500/68 303/489/68 +f 309/509/72 308/507/72 300/495/72 +f 310/508/62 314/511/62 315/510/62 +f 312/502/62 318/519/62 314/511/62 +f 319/512/62 318/522/62 312/502/62 +f 313/506/62 308/507/62 317/513/62 +f 309/509/62 316/521/62 317/514/62 +f 321/515/62 316/521/62 309/509/62 +f 307/505/62 320/518/62 321/516/62 +f 311/500/62 315/524/62 320/518/62 +f 326/360/70 322/362/70 314/511/70 +f 329/520/71 324/359/71 316/521/71 +f 327/356/65 326/554/65 318/522/65 +f 314/511/68 322/362/68 323/368/68 +f 325/354/66 327/356/66 319/512/66 +f 323/523/67 328/525/67 320/518/67 +f 328/525/69 329/526/69 321/516/69 +f 324/359/72 325/358/72 317/514/72 +f 329/526/82 328/525/82 219/527/82 +f 224/370/68 248/415/68 246/417/68 +f 249/421/65 248/423/65 224/377/65 +f 223/373/72 247/418/72 249/420/72 +f 222/380/69 246/426/69 247/425/69 +f 334/531/65 337/534/65 336/532/65 +f 337/534/68 334/531/68 332/535/68 +f 335/533/72 336/532/72 331/537/72 +f 336/532/73 337/534/73 333/539/73 +f 334/531/62 335/533/62 330/541/62 +f 342/543/85 345/559/85 344/544/85 +f 342/543/86 343/545/86 338/546/86 +f 341/548/68 345/560/68 342/543/68 +f 343/545/72 344/561/72 339/549/72 +f 344/550/87 345/560/87 341/548/87 +o Tail +v -2.100001 9.150000 13.650000 +v 2.099998 9.150000 13.650000 +v -2.100001 9.150000 9.450000 +v 2.099998 9.150000 9.450000 +v 2.099999 15.450000 7.349999 +v -2.100000 15.450000 7.349999 +v 2.099998 11.250000 7.349999 +v -2.100001 11.250000 7.349999 +v -1.050001 10.200000 2.100000 +v 1.049999 10.200000 2.100000 +v -1.050001 12.299999 2.100000 +v 1.049999 12.299999 2.100000 +v -3.150002 0.750000 14.699999 +v 3.149997 0.750000 14.699999 +v -3.150002 0.750000 8.400000 +v 3.149997 0.750000 8.400000 +v -4.200002 -2.400000 15.749999 +v 4.199996 -2.400000 15.749999 +v -3.150002 -4.500000 8.400000 +v 3.149997 -4.500000 8.400000 +v -4.200002 -8.699997 12.599999 +v 4.199996 -8.699997 12.599999 +v -4.200002 -8.699997 17.849998 +v 4.199996 -8.699997 17.849998 +v -3.150002 -4.500000 22.049999 +v 3.149997 -4.500000 22.049999 +v 3.149997 0.750000 22.049999 +v -3.150002 0.750000 22.049999 +v 2.099998 7.049999 14.699999 +v -2.100001 7.049999 14.699999 +v -3.150002 0.750000 16.799999 +v 3.149997 0.750000 16.799999 +vt 0.576923 0.192308 +vt 0.730769 0.153846 +vt 0.730769 0.192308 +vt 0.730769 0.000000 +vt 0.615385 0.096154 +vt 0.653846 -0.000000 +vt 0.346154 -0.000000 +vt 0.461538 0.096154 +vt 0.307692 0.096154 +vt 0.500000 -0.000000 +vt 0.269231 -0.000000 +vt 0.153846 0.096154 +vt 0.192308 -0.000000 +vt 0.461538 0.250000 +vt 0.576923 0.153846 +vt 0.307692 0.250000 +vt 0.192308 0.192308 +vt 0.461538 0.250000 +vt 0.269231 0.403846 +vt 0.307692 0.250000 +vt 0.961538 0.250000 +vt 0.769231 0.403846 +vt 0.807692 0.250000 +vt 0.538462 0.250000 +vt 0.730769 0.403846 +vt 0.500000 0.403846 +vt 0.076923 0.250000 +vt 0.038462 0.403846 +vt 0.500000 0.788462 +vt 0.692308 0.826923 +vt 0.500000 0.884615 +vt 0.269231 0.500000 +vt 0.076923 0.884615 +vt 0.076923 0.826923 +vt 0.269231 0.884615 +vt 0.500000 0.500000 +vt 0.230769 0.596154 +vt 0.538462 0.500000 +vt 0.769231 0.548077 +vt 0.538462 0.596154 +vt 0.230769 0.500000 +vt -0.000000 0.548077 +vt 0.230769 0.692308 +vt 0.538462 0.692308 +vt 0.269231 0.788462 +vt 1.000000 0.403846 +vt 0.769231 0.500000 +vt 0.923077 0.826923 +vt 0.730769 0.942308 +vt 0.769231 0.826923 +vt 0.730769 0.500000 +vt 0.769231 0.740385 +vt 0.538462 0.788462 +vt 0.307692 1.000000 +vt 0.230769 0.788462 +vt -0.000000 0.740385 +vt 0.769231 0.644231 +vt -0.000000 0.644231 +vt 1.000000 1.000000 +vt 0.692308 1.000000 +vt 0.076923 1.000000 +vt 0.692308 1.000000 +vt 0.692308 0.884615 +vt -0.000000 0.500000 +vt 0.769231 0.096154 +vt 0.423077 0.000000 +vt 0.576923 -0.000000 +vt 0.192308 0.153846 +vt 0.692308 0.250000 +vt 0.230769 0.250000 +vt 1.000000 0.500000 +vt 0.961538 0.942308 +vt 0.461538 1.000000 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -0.9806 0.1961 +vn 0.0000 0.8575 -0.5145 +vn -0.9806 0.0000 -0.1961 +vn 0.9806 0.0000 -0.1961 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.7071 0.7071 +vn 1.0000 -0.0000 0.0000 +vn 0.0000 0.1240 -0.9923 +vn 0.0000 0.1240 0.9923 +vn 0.9923 0.1240 0.0000 +vn -0.9923 0.1240 0.0000 +vn 0.9864 0.0000 0.1644 +vn 0.0000 0.0000 -1.0000 +vn -0.9487 0.3162 0.0000 +vn 0.9831 0.0819 -0.1638 +vn -0.9831 0.0819 -0.1638 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.3162 0.9487 +vn 0.0000 -0.3162 -0.9487 +vn 0.9487 0.3162 0.0000 +vn 0.9810 0.0613 0.1839 +vn 0.0000 0.7593 0.6508 +vn 0.0000 0.0000 1.0000 +vn -0.9810 0.0613 0.1839 +vn 0.0000 0.3162 -0.9487 +vn -0.9864 0.1644 0.0000 +vn 0.9864 0.1644 0.0000 +vn 0.9899 0.0000 -0.1414 +vn -0.9899 0.0000 -0.1414 +vn -0.9864 0.0000 0.1644 +s off +f 348/562/88 352/563/88 349/564/88 +f 355/565/89 353/566/89 354/567/89 +f 357/568/90 351/569/90 350/570/90 +f 356/571/91 353/566/91 351/569/91 +f 357/572/92 352/573/92 355/574/92 +f 346/575/93 353/576/93 348/562/93 +f 347/577/94 351/569/94 346/575/94 +f 349/578/95 350/570/95 347/577/95 +f 349/579/96 360/580/96 348/581/96 +f 346/582/97 359/583/97 347/584/97 +f 349/585/98 359/586/98 361/587/98 +f 346/588/99 360/580/99 358/589/99 +f 371/590/100 363/591/100 372/592/100 +f 361/587/101 364/593/101 360/580/101 +f 376/594/102 362/595/102 373/596/102 +f 365/597/88 366/598/88 364/593/88 +f 365/599/103 363/600/103 367/601/103 +f 364/602/104 366/598/104 362/603/104 +f 367/601/105 368/604/105 366/598/105 +f 369/605/106 370/606/106 368/604/106 +f 358/607/107 363/608/107 359/583/107 +f 374/609/108 376/610/108 375/611/108 +f 359/586/109 363/612/109 361/587/109 +f 369/605/110 363/613/110 371/614/110 +f 372/592/111 375/615/111 373/596/111 +f 371/590/112 373/596/112 370/606/112 +f 368/604/113 370/616/113 362/617/113 +f 367/601/95 363/618/95 369/605/95 +f 366/598/93 368/604/93 362/619/93 +f 376/610/114 363/620/114 362/621/114 +f 373/596/115 375/622/115 376/594/115 +f 374/623/116 372/592/116 377/624/116 +f 358/589/102 360/580/102 362/625/102 +f 372/592/109 363/591/109 377/624/109 +f 361/587/117 363/612/117 365/597/117 +f 362/625/118 360/580/118 364/593/118 +f 373/596/119 362/595/119 370/606/119 +f 348/562/88 353/576/88 352/563/88 +f 355/565/89 352/626/89 353/566/89 +f 357/568/90 356/627/90 351/569/90 +f 356/571/91 354/628/91 353/566/91 +f 357/572/92 350/570/92 352/573/92 +f 346/575/93 351/569/93 353/576/93 +f 347/577/94 350/570/94 351/569/94 +f 349/578/95 352/629/95 350/570/95 +f 349/579/96 361/587/96 360/580/96 +f 346/582/97 358/607/97 359/583/97 +f 349/585/98 347/630/98 359/586/98 +f 346/588/99 348/631/99 360/580/99 +f 361/587/101 365/597/101 364/593/101 +f 365/597/88 367/601/88 366/598/88 +f 367/601/105 369/605/105 368/604/105 +f 369/605/106 371/590/106 370/606/106 +f 358/607/107 362/632/107 363/608/107 +f 374/609/108 377/633/108 376/610/108 +f 372/592/111 374/634/111 375/615/111 +f 371/590/112 372/592/112 373/596/112 +f 376/610/114 377/633/114 363/620/114 +o RightLeg +v 0.100000 23.250000 -3.675000 +v -4.100000 23.250000 -3.675000 +v 0.100000 24.299999 -3.675000 +v -4.100000 24.299999 -3.675000 +v 0.099999 11.700001 2.100000 +v -4.100001 11.700001 2.100000 +v 0.099999 11.700001 -2.100000 +v -4.100001 11.700001 -2.100000 +v -0.950001 16.950001 -2.100000 +v -3.050000 16.950001 -2.100000 +v -1.475001 19.049999 -2.100000 +v -2.525001 19.049999 -2.100000 +v -0.950001 18.000000 -2.100000 +v -3.050000 18.000000 -2.100000 +v -1.475000 19.575001 -2.100000 +v -2.525001 19.575001 -2.100000 +v -1.475001 19.049999 -2.625000 +v -0.950001 16.950001 -2.625000 +v -3.050000 16.950001 -2.625000 +v -2.525001 19.049999 -2.625000 +v -4.100001 18.000000 -2.100000 +v 0.099999 18.000000 -2.100000 +v -4.100001 18.000000 0.000000 +v 0.099999 18.000000 0.000000 +v -4.100001 19.049999 2.100000 +v 0.099999 19.049999 2.100000 +v -0.950001 18.000000 -2.625000 +v -3.050000 18.000000 -2.625000 +v -1.475000 19.575001 -2.625000 +v -2.525001 19.575001 -2.625000 +v -4.100001 18.000000 -2.625000 +v 0.099999 18.000000 -2.625000 +v 0.625000 18.000000 -2.100000 +v 0.625000 18.000000 0.000000 +v 0.625000 19.049999 2.100000 +v -4.625000 18.000000 -2.100000 +v -4.625000 18.000000 0.000000 +v -4.625000 19.049999 2.100000 +v -4.100001 19.049999 2.625000 +v 0.099999 19.049999 2.625000 +v -4.100001 16.424999 -2.100000 +v 0.099999 16.424999 -2.100000 +v -4.100001 16.424999 -2.625000 +v 0.099999 16.424999 -2.625000 +v 0.624999 16.424999 -2.100000 +v -4.625000 16.424999 -2.100000 +v -4.100001 16.424999 2.100000 +v 0.099999 16.424999 2.100000 +v 0.624999 16.424999 2.100000 +v -4.625000 16.424999 2.100000 +v -4.100001 16.424999 2.625000 +v 0.099999 16.424999 2.625000 +v 0.099999 13.275000 -2.625000 +v 0.099999 13.275000 -2.100000 +v -4.100001 13.275000 -2.100000 +v -4.100001 13.275000 -2.625000 +v 0.624999 13.275000 -2.100000 +v -4.625001 13.275000 -2.100000 +v 0.099999 13.275000 2.100000 +v 0.624999 13.275000 2.100000 +v -4.625001 13.275000 2.100000 +v -4.100001 13.275000 2.100000 +v -4.100001 13.275000 2.625000 +v 0.099999 13.275000 2.625000 +v -4.100000 21.674999 -2.625000 +v 0.100000 21.674999 -2.625000 +v 0.625000 21.674999 -2.100000 +v -4.625000 21.674999 -2.100000 +v 0.625000 21.674999 2.100000 +v -4.625000 21.674999 2.100000 +v -4.100000 21.674999 2.625000 +v 0.100000 21.674999 2.625000 +v 0.100000 21.674999 2.100000 +v -4.100000 21.674999 2.100000 +v 0.100000 21.674999 -2.100000 +v -4.100000 21.674999 -2.100000 +v -4.100000 22.200001 -2.625000 +v 0.100000 22.200001 -2.625000 +v 0.625000 22.200001 -2.100000 +v -4.625000 22.200001 -2.100000 +v 0.625000 22.200001 2.100000 +v -4.625000 22.200001 2.100000 +v -4.100000 22.200001 2.625000 +v 0.100000 22.200001 2.625000 +v 0.100000 22.200001 2.100000 +v -4.100000 22.200001 2.100000 +v 0.100000 22.200001 -2.100000 +v -4.100000 22.200001 -2.100000 +v -4.100000 24.299999 -2.625000 +v -4.625000 24.299999 -2.100000 +v 0.100000 24.299999 -2.625000 +v 0.625000 24.299999 -2.100000 +v -4.625000 24.299999 2.100000 +v -4.100000 24.299999 2.625000 +v 0.625000 24.299999 2.100000 +v 0.100000 24.299999 2.625000 +v -1.475000 20.110409 -3.209024 +v -2.525000 20.110409 -3.209024 +v -1.475000 20.469528 -4.195702 +v -2.525000 20.469528 -4.195702 +v -0.425000 23.070438 -2.131661 +v -3.575000 23.070440 -2.131661 +v -0.425000 23.429560 -3.118338 +v -3.575000 23.429560 -3.118338 +v -2.525000 23.070440 -2.131661 +v -2.525000 23.429560 -3.118338 +v -1.475000 23.070440 -2.131661 +v -1.475000 23.429560 -3.118338 +v -2.000000 21.097086 -2.849903 +v -2.000000 21.456205 -3.836581 +vt 0.395833 1.000000 +vt 0.562500 0.800000 +vt 0.562500 1.000000 +vt 0.375000 0.150000 +vt 0.208333 0.125000 +vt 0.375000 0.125000 +vt 0.791667 -0.000000 +vt 0.979167 0.025000 +vt 0.958333 0.250000 +vt 0.791667 0.300000 +vt 0.791667 0.250000 +vt 0.770833 0.525000 +vt 0.833333 0.425000 +vt 0.854167 0.525000 +vt 0.833333 0.400000 +vt 0.791667 0.425000 +vt 0.791667 0.400000 +vt 0.770833 0.550000 +vt 0.854167 0.550000 +vt 0.750000 0.425000 +vt 0.750000 0.525000 +vt 0.875000 0.525000 +vt 0.854167 0.425000 +vt 0.875000 0.425000 +vt 0.520833 0.375000 +vt 0.562500 0.350000 +vt 0.562500 0.375000 +vt 0.437500 0.375000 +vt 0.458333 0.350000 +vt 0.458333 0.375000 +vt 0.500000 0.350000 +vt 0.500000 0.375000 +vt 0.520833 0.350000 +vt 0.395833 0.375000 +vt 0.437500 0.350000 +vt 0.666667 0.375000 +vt 0.750000 0.350000 +vt 0.750000 0.375000 +vt 0.583333 0.375000 +vt 0.666667 0.350000 +vt 0.208333 0.375000 +vt 0.291667 0.350000 +vt 0.291667 0.375000 +vt 0.375000 0.350000 +vt 0.375000 0.375000 +vt 0.020833 0.300000 +vt 0.187500 0.325000 +vt 0.020833 0.325000 +vt 0.208333 0.350000 +vt 0.187500 0.375000 +vt 0.000000 0.325000 +vt 0.375000 0.375000 +vt 0.395833 0.350000 +vt 0.562500 0.375000 +vt 0.583333 0.350000 +vt 0.395833 0.525000 +vt 0.395833 0.550000 +vt 0.375000 0.525000 +vt 0.583333 0.525000 +vt 0.583333 0.550000 +vt 0.562500 0.525000 +vt 0.562500 0.525000 +vt 0.562500 0.550000 +vt 0.208333 0.550000 +vt 0.375000 0.525000 +vt 0.375000 0.550000 +vt 0.750000 0.525000 +vt 0.187500 0.550000 +vt 0.020833 0.525000 +vt 0.187500 0.525000 +vt 0.208333 0.525000 +vt 0.187500 0.525000 +vt -0.000000 0.525000 +vt 0.020833 0.550000 +vt 0.395833 0.725000 +vt 0.375000 0.725000 +vt 0.395833 0.700000 +vt 0.583333 0.725000 +vt 0.562500 0.725000 +vt 0.583333 0.700000 +vt 0.562500 0.725000 +vt 0.562500 0.700000 +vt 0.375000 0.725000 +vt 0.208333 0.700000 +vt 0.375000 0.700000 +vt 0.750000 0.725000 +vt 0.020833 0.725000 +vt 0.187500 0.700000 +vt 0.187500 0.725000 +vt 0.208333 0.725000 +vt 0.187500 0.725000 +vt 0.000000 0.725000 +vt 0.020833 0.700000 +vt 0.791667 0.350000 +vt 0.958333 0.300000 +vt 0.958333 0.350000 +vt -0.000000 0.700000 +vt -0.000000 0.550000 +vt 0.750000 0.550000 +vt 0.791667 0.400000 +vt 0.958333 0.400000 +vt 0.750000 0.300000 +vt 1.000000 0.300000 +vt 0.583333 0.175000 +vt 0.375000 0.175000 +vt 0.395833 0.175000 +vt 0.458333 0.275000 +vt 0.562500 0.175000 +vt -0.000000 0.300000 +vt 0.020833 0.175000 +vt 0.187500 0.300000 +vt 0.208333 0.175000 +vt 0.208333 0.300000 +vt 0.750000 0.175000 +vt 0.750000 0.300000 +vt 0.187500 0.175000 +vt 0.395833 0.150000 +vt 0.562500 0.150000 +vt 0.375000 0.150000 +vt 0.020833 0.150000 +vt 0.187500 0.150000 +vt 0.208333 0.150000 +vt 0.562500 0.150000 +vt 0.583333 0.150000 +vt -0.000000 0.150000 +vt 0.750000 0.150000 +vt 0.395833 0.125000 +vt 0.562500 0.100000 +vt 0.562500 0.125000 +vt 0.208333 0.100000 +vt 0.375000 0.100000 +vt 0.375000 0.125000 +vt 0.395833 0.100000 +vt 0.020833 0.125000 +vt 0.187500 0.100000 +vt 0.187500 0.125000 +vt 0.187500 0.125000 +vt 0.583333 0.100000 +vt 0.583333 0.125000 +vt 0.562500 0.125000 +vt 0.020833 0.100000 +vt -0.000000 0.125000 +vt 0.750000 0.125000 +vt 0.750000 0.100000 +vt 0.562500 0.000000 +vt 0.583333 0.000000 +vt 0.750000 0.000000 +vt 0.187500 0.000000 +vt 0.208333 -0.000000 +vt 0.395833 -0.000000 +vt 0.375000 -0.000000 +vt -0.000000 0.100000 +vt 0.020833 0.000000 +vt 0.187500 0.400000 +vt 0.020833 0.400000 +vt 0.208333 0.400000 +vt 0.291667 0.450000 +vt 0.666667 0.450000 +vt 0.520833 0.450000 +vt 0.437500 0.450000 +vt 0.395833 0.800000 +vt 0.375000 0.800000 +vt 0.208333 0.800000 +vt 0.187500 0.800000 +vt 0.020833 0.800000 +vt 0.750000 0.800000 +vt 0.583333 0.800000 +vt 0.687500 0.950000 +vt 0.729167 0.900000 +vt 0.729167 0.950000 +vt 0.562500 0.900000 +vt 0.687500 0.900000 +vt 0.854167 0.900000 +vt 0.854167 0.950000 +vt 0.562500 0.850000 +vt 0.645833 0.800000 +vt 0.645833 0.850000 +vt 0.854167 0.850000 +vt 0.770833 0.800000 +vt 0.854167 0.800000 +vt 0.645833 1.000000 +vt 0.562500 0.950000 +vt 0.770833 1.000000 +vt 0.708333 1.000000 +vt 0.770833 0.850000 +vt 0.708333 0.850000 +vt 0.770833 0.225000 +vt 0.770833 0.025000 +vt 0.958333 -0.000000 +vt 0.979167 0.225000 +vt 0.770833 0.425000 +vt 0.750000 0.700000 +vt 0.750000 0.400000 +vt 1.000000 0.400000 +vt 0.500000 0.275000 +vt 0.000000 0.175000 +vt -0.000000 0.000000 +vt 0.375000 0.450000 +vt 0.583333 0.450000 +vt 0.750000 0.400000 +vt 0.395833 0.450000 +vt 0.562500 0.450000 +vt 0.562500 0.800000 +vt 0.562500 1.000000 +vt 0.854167 1.000000 +vn 0.0000 -1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 1.0000 -0.0000 +vn 0.0000 0.0000 -1.0000 +vn -0.9701 0.2425 0.0000 +vn 0.9701 0.2425 0.0000 +vn 0.9487 -0.3162 0.0000 +vn -0.9487 -0.3162 0.0000 +vn 0.0000 -0.8944 0.4472 +vn -0.7071 0.0000 0.7071 +vn 0.0000 0.0000 1.0000 +vn 0.7071 -0.0000 -0.7071 +vn 0.7071 -0.0000 0.7071 +vn 1.0000 -0.0000 0.0000 +vn 0.0000 -0.7071 -0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.0000 -0.9397 -0.3420 +vn -0.9487 -0.2972 -0.1082 +vn 0.9487 -0.2972 -0.1082 +vn 0.9701 0.2279 0.0830 +vn -0.9701 0.2279 0.0830 +vn -0.0000 -0.3420 0.9397 +vn 0.0000 0.3420 -0.9397 +s off +f 383/635/120 384/636/120 382/637/120 +f 453/638/121 463/639/121 465/640/121 +f 471/641/122 472/642/122 468/643/122 +f 468/643/122 381/644/122 466/645/122 +f 396/646/123 394/647/123 395/648/123 +f 388/649/122 397/650/122 389/651/122 +f 387/652/120 395/648/120 386/653/120 +f 389/654/124 396/646/124 387/655/124 +f 386/656/125 394/657/125 388/658/125 +f 390/659/120 409/660/120 399/661/120 +f 391/662/126 407/663/126 393/664/126 +f 393/664/120 406/665/120 392/666/120 +f 392/666/127 404/667/127 390/659/127 +f 398/668/120 405/669/120 391/662/120 +f 401/670/128 412/671/128 403/672/128 +f 399/673/120 411/674/120 401/670/120 +f 402/675/128 414/676/128 400/677/128 +f 400/677/120 413/678/120 398/679/120 +f 417/680/120 402/681/120 403/682/120 +f 415/683/120 402/675/120 416/684/120 +f 403/682/120 412/685/120 417/680/120 +f 398/668/120 413/686/120 408/687/120 +f 399/673/120 409/688/120 410/689/120 +f 418/690/122 420/691/122 423/692/122 +f 419/693/122 422/694/122 421/695/122 +f 420/691/122 419/696/122 421/697/122 +f 427/698/122 418/699/122 423/700/122 +f 425/701/122 422/694/122 419/693/122 +f 428/702/122 425/703/122 424/704/122 +f 424/705/122 427/698/122 428/706/122 +f 426/707/122 425/703/122 429/708/122 +f 432/709/120 435/710/120 433/711/120 +f 431/712/120 430/713/120 434/714/120 +f 431/715/120 433/711/120 430/716/120 +f 432/717/120 438/718/120 435/719/120 +f 434/714/120 436/720/120 431/712/120 +f 436/721/120 440/722/120 439/723/120 +f 439/724/120 440/725/120 438/718/120 +f 437/726/120 441/727/120 436/721/120 +f 427/698/129 440/722/129 428/702/129 +f 428/702/130 441/727/130 429/708/130 +f 421/697/131 434/714/131 430/716/131 +f 379/728/123 380/729/123 378/730/123 +f 429/708/132 437/731/132 426/732/132 +f 421/697/123 433/711/123 420/691/123 +f 426/733/133 434/714/133 422/694/133 +f 423/700/121 438/718/121 427/698/121 +f 454/734/134 378/730/134 455/735/134 +f 379/728/121 466/736/121 381/644/121 +f 420/691/135 435/719/135 423/700/135 +f 468/737/133 378/730/133 380/729/133 +f 409/660/131 444/738/131 410/689/131 +f 408/687/135 445/739/135 442/740/135 +f 407/741/123 442/740/123 443/742/123 +f 412/743/132 449/744/132 417/680/132 +f 416/745/129 447/746/129 415/747/129 +f 446/748/133 412/749/133 411/674/133 +f 417/680/130 448/750/130 416/745/130 +f 445/739/121 414/676/121 447/746/121 +f 443/742/122 453/751/122 452/752/122 +f 447/746/122 453/638/122 445/739/122 +f 445/753/122 453/751/122 442/740/122 +f 448/750/122 450/754/122 451/755/122 +f 448/750/122 451/756/122 447/746/122 +f 444/738/122 443/757/122 452/758/122 +f 449/744/122 446/759/122 450/754/122 +f 444/738/122 450/760/122 446/748/122 +f 465/761/120 455/762/120 464/763/120 +f 465/640/120 459/764/120 457/765/120 +f 457/766/120 454/767/120 465/761/120 +f 462/768/120 460/769/120 463/770/120 +f 460/771/120 459/764/120 463/639/120 +f 456/772/120 464/773/120 455/774/120 +f 461/775/120 462/768/120 458/776/120 +f 462/777/120 456/772/120 458/778/120 +f 456/772/131 468/779/131 469/780/131 +f 456/772/133 472/781/133 458/778/133 +f 464/763/123 453/751/123 465/761/123 +f 461/775/130 471/782/130 460/769/130 +f 460/769/129 470/783/129 459/764/129 +f 457/765/135 466/784/135 454/767/135 +f 459/764/121 467/785/121 457/765/121 +f 458/786/132 473/787/132 461/775/132 +f 452/758/133 462/777/133 450/760/133 +f 451/755/130 462/768/130 463/770/130 +f 402/788/130 425/703/130 403/789/130 +f 424/705/121 402/790/121 400/791/121 +f 401/792/133 425/701/133 419/693/133 +f 390/793/123 393/664/123 392/666/123 +f 391/794/123 390/793/123 419/696/123 +f 432/709/123 384/636/123 385/795/123 +f 439/724/121 385/796/121 383/797/121 +f 436/721/130 383/798/130 382/799/130 +f 431/712/133 382/800/133 384/801/133 +f 475/802/136 476/803/136 474/804/136 +f 475/802/137 481/805/137 477/806/137 +f 474/804/138 480/807/138 478/808/138 +f 483/809/139 486/810/139 487/811/139 +f 485/812/140 486/813/140 484/814/140 +f 486/815/141 479/816/141 475/802/141 +f 478/808/141 486/817/141 474/804/141 +f 475/802/141 474/804/141 486/818/141 +f 487/819/142 480/807/142 476/803/142 +f 481/805/142 487/811/142 477/806/142 +f 476/803/142 477/806/142 487/820/142 +f 383/635/120 385/795/120 384/636/120 +f 453/638/121 451/756/121 463/639/121 +f 468/643/122 466/645/122 467/821/122 +f 467/821/122 470/822/122 471/641/122 +f 471/641/122 473/823/122 472/642/122 +f 472/642/122 469/824/122 468/643/122 +f 468/643/122 467/821/122 471/641/122 +f 468/643/122 380/729/122 381/644/122 +f 396/646/123 397/650/123 394/647/123 +f 388/649/122 394/647/122 397/650/122 +f 387/652/120 396/646/120 395/648/120 +f 389/654/124 397/825/124 396/646/124 +f 386/656/125 395/648/125 394/657/125 +f 390/659/120 404/667/120 409/660/120 +f 391/662/126 405/669/126 407/663/126 +f 393/664/120 407/663/120 406/665/120 +f 392/666/127 406/665/127 404/667/127 +f 398/668/120 408/687/120 405/669/120 +f 401/670/128 411/674/128 412/671/128 +f 399/673/120 410/689/120 411/674/120 +f 402/675/128 415/683/128 414/676/128 +f 400/677/120 414/676/120 413/678/120 +f 417/680/120 416/745/120 402/681/120 +f 420/691/122 418/690/122 419/696/122 +f 427/698/122 424/705/122 418/699/122 +f 425/701/122 426/733/122 422/694/122 +f 428/702/122 429/708/122 425/703/122 +f 431/715/120 432/709/120 433/711/120 +f 432/717/120 439/724/120 438/718/120 +f 434/714/120 437/826/120 436/720/120 +f 436/721/120 441/727/120 440/722/120 +f 427/698/129 438/718/129 440/722/129 +f 428/702/130 440/722/130 441/727/130 +f 421/697/131 422/694/131 434/714/131 +f 379/728/123 381/644/123 380/729/123 +f 429/708/132 441/727/132 437/731/132 +f 421/697/123 430/716/123 433/711/123 +f 426/733/133 437/826/133 434/714/133 +f 423/700/121 435/719/121 438/718/121 +f 454/734/134 379/728/134 378/730/134 +f 379/728/121 454/827/121 466/736/121 +f 420/691/135 433/711/135 435/719/135 +f 468/737/133 455/828/133 378/730/133 +f 409/660/131 443/742/131 444/738/131 +f 408/687/135 413/678/135 445/739/135 +f 407/741/123 405/669/123 408/687/123 +f 443/742/123 409/660/123 406/829/123 +f 409/660/123 404/667/123 406/829/123 +f 407/741/123 408/687/123 442/740/123 +f 443/742/123 406/829/123 407/741/123 +f 412/743/132 446/830/132 449/744/132 +f 416/745/129 448/750/129 447/746/129 +f 411/674/133 410/689/133 444/738/133 +f 444/738/133 446/748/133 411/674/133 +f 417/680/130 449/744/130 448/750/130 +f 413/678/121 414/676/121 445/739/121 +f 414/676/121 415/747/121 447/746/121 +f 443/742/122 442/740/122 453/751/122 +f 447/746/122 451/756/122 453/638/122 +f 448/750/122 449/744/122 450/754/122 +f 444/738/122 452/758/122 450/760/122 +f 465/761/120 454/767/120 455/762/120 +f 465/640/120 463/639/120 459/764/120 +f 462/768/120 461/775/120 460/769/120 +f 462/777/120 464/773/120 456/772/120 +f 456/772/131 455/762/131 468/779/131 +f 456/772/133 469/780/133 472/781/133 +f 464/763/123 452/752/123 453/751/123 +f 461/775/130 473/787/130 471/782/130 +f 460/769/129 471/782/129 470/783/129 +f 457/765/135 467/785/135 466/784/135 +f 459/764/121 470/783/121 467/785/121 +f 458/786/132 472/831/132 473/787/132 +f 452/758/133 464/773/133 462/777/133 +f 451/755/130 450/754/130 462/768/130 +f 402/788/130 424/704/130 425/703/130 +f 400/791/121 398/832/121 418/699/121 +f 418/699/121 424/705/121 400/791/121 +f 419/693/133 399/833/133 401/792/133 +f 401/792/133 403/834/133 425/701/133 +f 390/793/123 391/794/123 393/664/123 +f 418/690/123 398/835/123 391/794/123 +f 390/793/123 399/836/123 419/696/123 +f 418/690/123 391/794/123 419/696/123 +f 432/709/123 431/715/123 384/636/123 +f 439/724/121 432/717/121 385/796/121 +f 436/721/130 439/723/130 383/798/130 +f 431/712/133 436/720/133 382/800/133 +f 475/802/136 477/806/136 476/803/136 +f 475/802/137 479/816/137 481/805/137 +f 474/804/138 476/803/138 480/807/138 +f 483/809/139 482/837/139 486/810/139 +f 485/812/140 487/819/140 486/813/140 +f 486/815/141 482/838/141 479/816/141 +f 478/808/141 484/839/141 486/817/141 +f 487/819/142 485/812/142 480/807/142 +f 481/805/142 483/809/142 487/811/142 +o LeftLeg +v -0.100000 23.250000 -3.675000 +v 4.100000 23.250000 -3.675000 +v -0.100000 24.299999 -3.675000 +v 4.100000 24.299999 -3.675000 +v -0.100001 11.700001 2.100000 +v 4.099999 11.700001 2.100000 +v -0.100001 11.700001 -2.100000 +v 4.099999 11.700001 -2.100000 +v 0.949999 16.950001 -2.100000 +v 3.049999 16.950001 -2.100000 +v 1.475000 19.049999 -2.100000 +v 2.525000 19.049999 -2.100000 +v 0.950000 18.000000 -2.100000 +v 3.049999 18.000000 -2.100000 +v 1.475000 19.575001 -2.100000 +v 2.525000 19.575001 -2.100000 +v 1.475000 19.049999 -2.625000 +v 0.949999 16.950001 -2.625000 +v 3.049999 16.950001 -2.625000 +v 2.525000 19.049999 -2.625000 +v 4.099999 18.000000 -2.100000 +v -0.100000 18.000000 -2.100000 +v 4.099999 18.000000 0.000000 +v -0.100000 18.000000 0.000000 +v 4.099999 19.049999 2.100000 +v -0.100000 19.049999 2.100000 +v 0.950000 18.000000 -2.625000 +v 3.049999 18.000000 -2.625000 +v 1.475000 19.575001 -2.625000 +v 2.525000 19.575001 -2.625000 +v 4.099999 18.000000 -2.625000 +v -0.100000 18.000000 -2.625000 +v -0.625000 18.000000 -2.100000 +v -0.625000 18.000000 0.000000 +v -0.625000 19.049999 2.100000 +v 4.625000 18.000000 -2.100000 +v 4.625000 18.000000 0.000000 +v 4.625000 19.049999 2.100000 +v 4.099999 19.049999 2.625000 +v -0.100000 19.049999 2.625000 +v 4.099999 16.424999 -2.100000 +v -0.100001 16.424999 -2.100000 +v 4.099999 16.424999 -2.625000 +v -0.100001 16.424999 -2.625000 +v -0.625001 16.424999 -2.100000 +v 4.625000 16.424999 -2.100000 +v 4.099999 16.424999 2.100000 +v -0.100001 16.424999 2.100000 +v -0.625001 16.424999 2.100000 +v 4.625000 16.424999 2.100000 +v 4.099999 16.424999 2.625000 +v -0.100001 16.424999 2.625000 +v -0.100001 13.275000 -2.625000 +v -0.100001 13.275000 -2.100000 +v 4.099999 13.275000 -2.100000 +v 4.099999 13.275000 -2.625000 +v -0.625001 13.275000 -2.100000 +v 4.624999 13.275000 -2.100000 +v -0.100001 13.275000 2.100000 +v -0.625001 13.275000 2.100000 +v 4.624999 13.275000 2.100000 +v 4.099999 13.275000 2.100000 +v 4.099999 13.275000 2.625000 +v -0.100001 13.275000 2.625000 +v 4.100000 21.674999 -2.625000 +v -0.100000 21.674999 -2.625000 +v -0.625000 21.674999 -2.100000 +v 4.625000 21.674999 -2.100000 +v -0.625000 21.674999 2.100000 +v 4.625000 21.674999 2.100000 +v 4.100000 21.674999 2.625000 +v -0.100000 21.674999 2.625000 +v -0.100000 21.674999 2.100000 +v 4.100000 21.674999 2.100000 +v -0.100000 21.674999 -2.100000 +v 4.100000 21.674999 -2.100000 +v 4.100000 22.199999 -2.625000 +v -0.100000 22.200001 -2.625000 +v -0.625000 22.200001 -2.100000 +v 4.625000 22.199999 -2.100000 +v -0.625000 22.200001 2.100000 +v 4.625000 22.199999 2.100000 +v 4.100000 22.199999 2.625000 +v -0.100000 22.200001 2.625000 +v -0.100000 22.200001 2.100000 +v 4.100000 22.199999 2.100000 +v -0.100000 22.200001 -2.100000 +v 4.100000 22.199999 -2.100000 +v 4.100000 24.299999 -2.625000 +v 4.625000 24.299999 -2.100000 +v -0.100000 24.299999 -2.625000 +v -0.625000 24.299999 -2.100000 +v 4.625000 24.299999 2.100000 +v 4.100000 24.299999 2.625000 +v -0.625000 24.299999 2.100000 +v -0.100000 24.299999 2.625000 +v 1.475000 20.110407 -3.209024 +v 2.525000 20.110407 -3.209024 +v 1.475000 20.469528 -4.195702 +v 2.525000 20.469528 -4.195702 +v 0.425000 23.070438 -2.131661 +v 3.575000 23.070438 -2.131661 +v 0.425000 23.429560 -3.118338 +v 3.575000 23.429560 -3.118338 +v 2.525000 23.070438 -2.131661 +v 2.525000 23.429560 -3.118338 +v 1.475000 23.070438 -2.131661 +v 1.475000 23.429560 -3.118338 +v 2.000000 21.097084 -2.849903 +v 2.000000 21.456205 -3.836581 +vt 0.562500 0.800000 +vt 0.395833 1.000000 +vt 0.562500 1.000000 +vt 0.208333 0.125000 +vt 0.375000 0.150000 +vt 0.375000 0.125000 +vt 0.979167 0.025000 +vt 0.791667 -0.000000 +vt 0.770833 0.225000 +vt 0.791667 0.300000 +vt 0.958333 0.250000 +vt 0.791667 0.250000 +vt 0.833333 0.425000 +vt 0.770833 0.525000 +vt 0.854167 0.525000 +vt 0.791667 0.425000 +vt 0.833333 0.400000 +vt 0.791667 0.400000 +vt 0.770833 0.550000 +vt 0.854167 0.550000 +vt 0.750000 0.425000 +vt 0.750000 0.525000 +vt 0.854167 0.425000 +vt 0.875000 0.525000 +vt 0.875000 0.425000 +vt 0.562500 0.350000 +vt 0.520833 0.375000 +vt 0.562500 0.375000 +vt 0.458333 0.350000 +vt 0.437500 0.375000 +vt 0.458333 0.375000 +vt 0.500000 0.350000 +vt 0.500000 0.375000 +vt 0.520833 0.350000 +vt 0.437500 0.350000 +vt 0.395833 0.375000 +vt 0.750000 0.350000 +vt 0.666667 0.375000 +vt 0.750000 0.375000 +vt 0.666667 0.350000 +vt 0.583333 0.375000 +vt 0.291667 0.350000 +vt 0.208333 0.375000 +vt 0.291667 0.375000 +vt 0.375000 0.350000 +vt 0.375000 0.375000 +vt 0.187500 0.325000 +vt 0.020833 0.300000 +vt 0.020833 0.325000 +vt 0.208333 0.350000 +vt 0.187500 0.375000 +vt 0.000000 0.325000 +vt 0.395833 0.350000 +vt 0.375000 0.375000 +vt 0.583333 0.350000 +vt 0.562500 0.375000 +vt 0.395833 0.525000 +vt 0.375000 0.525000 +vt 0.395833 0.550000 +vt 0.583333 0.525000 +vt 0.562500 0.525000 +vt 0.583333 0.550000 +vt 0.562500 0.525000 +vt 0.562500 0.550000 +vt 0.375000 0.525000 +vt 0.208333 0.550000 +vt 0.375000 0.550000 +vt 0.750000 0.525000 +vt 0.020833 0.525000 +vt 0.187500 0.550000 +vt 0.187500 0.525000 +vt 0.208333 0.525000 +vt 0.187500 0.525000 +vt -0.000000 0.525000 +vt 0.020833 0.550000 +vt 0.395833 0.725000 +vt 0.395833 0.700000 +vt 0.375000 0.725000 +vt 0.583333 0.725000 +vt 0.583333 0.700000 +vt 0.562500 0.725000 +vt 0.562500 0.725000 +vt 0.562500 0.700000 +vt 0.208333 0.700000 +vt 0.375000 0.725000 +vt 0.375000 0.700000 +vt 0.750000 0.725000 +vt 0.187500 0.700000 +vt 0.020833 0.725000 +vt 0.187500 0.725000 +vt 0.208333 0.725000 +vt 0.187500 0.725000 +vt 0.000000 0.725000 +vt 0.020833 0.700000 +vt 0.958333 0.300000 +vt 0.791667 0.350000 +vt 0.958333 0.350000 +vt -0.000000 0.550000 +vt 0.750000 0.550000 +vt 0.791667 0.400000 +vt 0.958333 0.400000 +vt 0.750000 0.300000 +vt 1.000000 0.300000 +vt 0.583333 0.175000 +vt 0.395833 0.175000 +vt 0.500000 0.275000 +vt 0.562500 0.175000 +vt 0.020833 0.175000 +vt -0.000000 0.300000 +vt 0.208333 0.300000 +vt 0.187500 0.175000 +vt 0.187500 0.300000 +vt 0.750000 0.175000 +vt 0.208333 0.175000 +vt 0.375000 0.175000 +vt 0.395833 0.150000 +vt 0.562500 0.150000 +vt 0.375000 0.150000 +vt 0.020833 0.150000 +vt 0.187500 0.150000 +vt 0.208333 0.150000 +vt 0.583333 0.150000 +vt 0.562500 0.150000 +vt -0.000000 0.150000 +vt 0.750000 0.150000 +vt 0.562500 0.100000 +vt 0.395833 0.125000 +vt 0.562500 0.125000 +vt 0.208333 0.100000 +vt 0.375000 0.100000 +vt 0.375000 0.125000 +vt 0.395833 0.100000 +vt 0.187500 0.100000 +vt 0.020833 0.125000 +vt 0.187500 0.125000 +vt 0.187500 0.125000 +vt 0.583333 0.100000 +vt 0.562500 0.125000 +vt 0.583333 0.125000 +vt 0.020833 0.100000 +vt -0.000000 0.125000 +vt 0.750000 0.125000 +vt 0.750000 0.100000 +vt 0.583333 0.000000 +vt 0.750000 0.000000 +vt 0.187500 0.000000 +vt 0.208333 -0.000000 +vt 0.395833 -0.000000 +vt 0.375000 -0.000000 +vt 0.020833 0.000000 +vt -0.000000 0.100000 +vt 0.187500 0.400000 +vt 0.020833 0.400000 +vt 0.375000 0.450000 +vt 0.291667 0.450000 +vt 0.750000 0.400000 +vt 0.666667 0.450000 +vt 0.520833 0.450000 +vt 0.437500 0.450000 +vt 0.395833 0.800000 +vt 0.375000 0.800000 +vt 0.208333 0.800000 +vt 0.187500 0.800000 +vt 0.020833 0.800000 +vt 0.750000 0.800000 +vt 0.583333 0.800000 +vt 0.729167 0.900000 +vt 0.687500 0.950000 +vt 0.729167 0.950000 +vt 0.562500 0.900000 +vt 0.687500 0.900000 +vt 0.854167 0.950000 +vt 0.645833 0.850000 +vt 0.562500 0.800000 +vt 0.562500 0.850000 +vt 0.854167 0.850000 +vt 0.770833 0.800000 +vt 0.770833 0.850000 +vt 0.562500 0.950000 +vt 0.645833 1.000000 +vt 0.770833 1.000000 +vt 0.708333 1.000000 +vt 0.854167 0.900000 +vt 0.708333 0.850000 +vt 0.979167 0.225000 +vt 0.958333 -0.000000 +vt 0.770833 0.025000 +vt 0.770833 0.425000 +vt 0.750000 0.700000 +vt -0.000000 0.700000 +vt 0.750000 0.400000 +vt 1.000000 0.400000 +vt 0.458333 0.275000 +vt 0.000000 0.175000 +vt 0.750000 0.300000 +vt 0.562500 0.000000 +vt -0.000000 0.000000 +vt 0.208333 0.400000 +vt 0.583333 0.450000 +vt 0.395833 0.450000 +vt 0.562500 0.450000 +vt 0.645833 0.800000 +vt 0.854167 0.800000 +vt 0.562500 1.000000 +vt 0.854167 1.000000 +vn 0.0000 -1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 1.0000 -0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.9701 0.2425 0.0000 +vn -0.9701 0.2425 0.0000 +vn -0.9487 -0.3162 0.0000 +vn 0.9487 -0.3162 0.0000 +vn 0.0000 -0.8944 0.4472 +vn 0.7071 0.0000 0.7071 +vn 0.0000 0.0000 1.0000 +vn -0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 0.7071 +vn -1.0000 0.0000 0.0000 +vn -0.0000 -0.7071 -0.7071 +vn 0.7071 0.0000 -0.7071 +vn 0.0000 -0.9397 -0.3420 +vn 0.9487 -0.2972 -0.1082 +vn -0.9487 -0.2972 -0.1082 +vn -0.9701 0.2279 0.0830 +vn 0.9701 0.2279 0.0830 +vn 0.0000 -0.3420 0.9397 +vn -0.0000 0.3420 -0.9397 +s off +f 494/840/143 493/841/143 492/842/143 +f 573/843/144 563/844/144 575/845/144 +f 582/846/145 581/847/145 577/848/145 +f 491/849/145 578/850/145 576/851/145 +f 504/852/146 506/853/146 505/854/146 +f 507/855/145 498/856/145 499/857/145 +f 505/854/143 497/858/143 496/859/143 +f 506/853/147 499/860/147 497/861/147 +f 504/862/148 496/863/148 498/864/148 +f 519/865/143 500/866/143 509/867/143 +f 517/868/149 501/869/149 503/870/149 +f 516/871/143 503/870/143 502/872/143 +f 514/873/150 502/872/150 500/866/150 +f 515/874/143 508/875/143 501/869/143 +f 522/876/151 511/877/151 513/878/151 +f 521/879/143 509/880/143 511/877/143 +f 524/881/151 512/882/151 510/883/151 +f 523/884/143 510/883/143 508/885/143 +f 512/886/143 527/887/143 513/888/143 +f 525/889/143 526/890/143 512/882/143 +f 513/888/143 527/887/143 522/891/143 +f 508/875/143 518/892/143 523/893/143 +f 509/880/143 520/894/143 519/895/143 +f 528/896/145 533/897/145 530/898/145 +f 529/899/145 531/900/145 532/901/145 +f 529/902/145 530/898/145 531/903/145 +f 528/904/145 537/905/145 533/906/145 +f 532/901/145 535/907/145 529/899/145 +f 535/908/145 538/909/145 534/910/145 +f 534/911/145 538/912/145 537/905/145 +f 536/913/145 539/914/145 535/908/145 +f 542/915/143 543/916/143 545/917/143 +f 541/918/143 544/919/143 540/920/143 +f 543/916/143 541/921/143 540/922/143 +f 548/923/143 542/924/143 545/925/143 +f 546/926/143 544/919/143 541/918/143 +f 550/927/143 546/928/143 549/929/143 +f 549/930/143 548/923/143 550/931/143 +f 547/932/143 546/928/143 551/933/143 +f 550/927/152 537/905/152 538/909/152 +f 551/933/153 538/909/153 539/914/153 +f 540/922/154 532/901/154 531/903/154 +f 490/934/146 489/935/146 488/936/146 +f 536/937/155 551/933/155 539/914/155 +f 543/916/146 531/903/146 530/898/146 +f 544/919/156 536/938/156 532/901/156 +f 548/923/144 533/906/144 537/905/144 +f 488/936/157 564/939/157 565/940/157 +f 576/941/144 489/935/144 491/849/144 +f 545/925/158 530/898/158 533/906/158 +f 488/936/156 578/942/156 490/934/156 +f 554/943/154 519/865/154 520/894/154 +f 552/944/158 523/884/158 518/892/158 +f 516/945/146 553/946/146 552/944/146 +f 559/947/155 522/948/155 527/887/155 +f 525/949/152 558/950/152 526/951/152 +f 521/879/156 556/952/156 554/943/156 +f 526/951/153 559/947/153 527/887/153 +f 557/953/144 524/881/144 555/954/144 +f 563/955/145 553/946/145 562/956/145 +f 563/844/145 557/953/145 555/954/145 +f 555/957/145 552/944/145 563/955/145 +f 560/958/145 558/950/145 561/959/145 +f 558/950/145 557/953/145 561/960/145 +f 554/943/145 562/961/145 553/962/145 +f 559/947/145 560/958/145 556/963/145 +f 560/964/145 554/943/145 556/952/145 +f 565/965/143 575/966/143 574/967/143 +f 569/968/143 575/845/143 567/969/143 +f 567/970/143 575/966/143 564/971/143 +f 570/972/143 572/973/143 573/974/143 +f 570/975/143 573/843/143 569/968/143 +f 566/976/143 565/977/143 574/978/143 +f 571/979/143 568/980/143 572/973/143 +f 566/976/143 572/981/143 568/982/143 +f 579/983/154 565/965/154 566/976/154 +f 582/984/156 566/976/156 568/982/156 +f 563/955/146 574/967/146 575/966/146 +f 581/985/153 571/979/153 570/972/153 +f 580/986/152 570/972/152 569/968/152 +f 576/987/158 567/969/158 564/971/158 +f 577/988/144 569/968/144 567/969/144 +f 583/989/155 568/990/155 571/979/155 +f 572/981/156 562/961/156 560/964/156 +f 572/973/153 561/959/153 573/974/153 +f 535/908/153 512/991/153 513/992/153 +f 528/904/144 508/993/144 510/994/144 +f 535/907/156 513/995/156 511/996/156 +f 503/870/146 500/997/146 502/872/146 +f 500/997/146 501/998/146 528/896/146 +f 494/840/146 542/915/146 495/999/146 +f 495/1000/144 549/930/144 493/1001/144 +f 493/1002/153 546/928/153 492/1003/153 +f 492/1004/156 541/918/156 494/1005/156 +f 586/1006/159 585/1007/159 584/1008/159 +f 591/1009/160 585/1007/160 587/1010/160 +f 588/1011/161 586/1006/161 584/1008/161 +f 597/1012/162 592/1013/162 593/1014/162 +f 595/1015/163 596/1016/163 597/1017/163 +f 589/1018/164 596/1019/164 585/1007/164 +f 596/1020/164 588/1011/164 584/1008/164 +f 585/1007/164 596/1021/164 584/1008/164 +f 590/1022/165 597/1017/165 586/1006/165 +f 591/1009/165 597/1012/165 593/1014/165 +f 586/1006/165 597/1023/165 587/1010/165 +f 494/840/143 495/999/143 493/841/143 +f 573/843/144 561/960/144 563/844/144 +f 577/848/145 576/851/145 578/850/145 +f 578/850/145 579/1024/145 582/846/145 +f 582/846/145 583/1025/145 581/847/145 +f 581/847/145 580/1026/145 577/848/145 +f 577/848/145 578/850/145 582/846/145 +f 491/849/145 490/934/145 578/850/145 +f 504/852/146 507/855/146 506/853/146 +f 507/855/145 504/852/145 498/856/145 +f 505/854/143 506/853/143 497/858/143 +f 506/853/147 507/1027/147 499/860/147 +f 504/862/148 505/854/148 496/863/148 +f 519/865/143 514/873/143 500/866/143 +f 517/868/149 515/874/149 501/869/149 +f 516/871/143 517/868/143 503/870/143 +f 514/873/150 516/871/150 502/872/150 +f 515/874/143 518/892/143 508/875/143 +f 522/876/151 521/879/151 511/877/151 +f 521/879/143 520/894/143 509/880/143 +f 524/881/151 525/889/151 512/882/151 +f 523/884/143 524/881/143 510/883/143 +f 512/886/143 526/951/143 527/887/143 +f 529/902/145 528/896/145 530/898/145 +f 528/904/145 534/911/145 537/905/145 +f 532/901/145 536/938/145 535/907/145 +f 535/908/145 539/914/145 538/909/145 +f 543/916/143 542/915/143 541/921/143 +f 548/923/143 549/930/143 542/924/143 +f 546/926/143 547/1028/143 544/919/143 +f 550/927/143 551/933/143 546/928/143 +f 550/927/152 548/923/152 537/905/152 +f 551/933/153 550/927/153 538/909/153 +f 540/922/154 544/919/154 532/901/154 +f 490/934/146 491/849/146 489/935/146 +f 536/937/155 547/1029/155 551/933/155 +f 543/916/146 540/922/146 531/903/146 +f 544/919/156 547/1028/156 536/938/156 +f 548/923/144 545/925/144 533/906/144 +f 488/936/157 489/935/157 564/939/157 +f 576/941/144 564/1030/144 489/935/144 +f 545/925/158 543/916/158 530/898/158 +f 488/936/156 565/1031/156 578/942/156 +f 554/943/154 553/946/154 519/865/154 +f 552/944/158 555/954/158 523/884/158 +f 516/945/146 514/873/146 519/865/146 +f 552/944/146 518/892/146 517/1032/146 +f 518/892/146 515/874/146 517/1032/146 +f 516/945/146 519/865/146 553/946/146 +f 552/944/146 517/1032/146 516/945/146 +f 559/947/155 556/1033/155 522/948/155 +f 525/949/152 557/953/152 558/950/152 +f 554/943/156 520/894/156 521/879/156 +f 521/879/156 522/1034/156 556/952/156 +f 526/951/153 558/950/153 559/947/153 +f 525/949/144 524/881/144 557/953/144 +f 524/881/144 523/884/144 555/954/144 +f 563/955/145 552/944/145 553/946/145 +f 563/844/145 561/960/145 557/953/145 +f 560/958/145 559/947/145 558/950/145 +f 560/964/145 562/961/145 554/943/145 +f 565/965/143 564/971/143 575/966/143 +f 569/968/143 573/843/143 575/845/143 +f 570/972/143 571/979/143 572/973/143 +f 566/976/143 574/978/143 572/981/143 +f 579/983/154 578/1035/154 565/965/154 +f 582/984/156 579/983/156 566/976/156 +f 563/955/146 562/956/146 574/967/146 +f 581/985/153 583/989/153 571/979/153 +f 580/986/152 581/985/152 570/972/152 +f 576/987/158 577/988/158 567/969/158 +f 577/988/144 580/986/144 569/968/144 +f 583/989/155 582/1036/155 568/990/155 +f 572/981/156 574/978/156 562/961/156 +f 572/973/153 560/958/153 561/959/153 +f 535/908/153 534/910/153 512/991/153 +f 510/994/144 512/1037/144 534/911/144 +f 534/911/144 528/904/144 510/994/144 +f 511/996/156 509/1038/156 529/899/156 +f 529/899/156 535/907/156 511/996/156 +f 503/870/146 501/998/146 500/997/146 +f 501/998/146 508/1039/146 528/896/146 +f 528/896/146 529/902/146 500/997/146 +f 529/902/146 509/1040/146 500/997/146 +f 494/840/146 541/921/146 542/915/146 +f 495/1000/144 542/924/144 549/930/144 +f 493/1002/153 549/929/153 546/928/153 +f 492/1004/156 546/926/156 541/918/156 +f 586/1006/159 587/1010/159 585/1007/159 +f 591/1009/160 589/1018/160 585/1007/160 +f 588/1011/161 590/1022/161 586/1006/161 +f 597/1012/162 596/1041/162 592/1013/162 +f 595/1015/163 594/1042/163 596/1016/163 +f 589/1018/164 592/1043/164 596/1019/164 +f 596/1020/164 594/1044/164 588/1011/164 +f 590/1022/165 595/1015/165 597/1017/165 +f 591/1009/165 587/1010/165 597/1012/165 +o Helmet +v -4.725003 -2.950001 -4.725000 +v 25.451866 4.962900 4.881973 +v 4.199998 -3.475000 0.000000 +v 4.199998 -2.687500 1.363986 +v 4.199998 -1.112499 1.363986 +v 4.199998 -0.325001 0.000000 +v 4.199998 -1.112499 -1.363986 +v 4.199998 -2.687500 -1.363986 +v 5.512498 -2.950001 0.000000 +v 5.512498 -2.424999 0.909325 +v 5.512498 -1.375000 0.909325 +v 5.512498 -0.850000 -0.000000 +v 5.512498 -1.375000 -0.909325 +v 5.512498 -2.424999 -0.909325 +v 5.774998 -3.475000 0.000000 +v 5.774998 -2.687500 1.363986 +v 5.774998 -1.112499 1.363986 +v 5.774998 -0.325001 0.000000 +v 5.774998 -1.112499 -1.363986 +v 5.774998 -2.687500 -1.363986 +v 5.774998 -2.950001 0.000000 +v 5.774998 -2.424999 0.909325 +v 5.774998 -1.375000 0.909325 +v 5.774998 -0.850000 -0.000000 +v 5.774998 -1.375000 -0.909325 +v 5.774998 -2.424999 -0.909325 +v 4.199998 1.250000 0.000000 +v -4.200002 1.250000 0.000000 +v 4.199998 0.200001 0.000000 +v -4.200002 0.200001 0.000000 +v 4.199998 -0.325001 0.000000 +v -4.200002 -3.475000 0.000000 +v 5.249998 0.200001 0.000000 +v 5.249998 -0.325001 0.000000 +v -4.200002 -2.687500 1.363986 +v -4.200002 -1.112499 1.363986 +v -4.200002 -0.325001 0.000000 +v -4.200002 -1.112499 -1.363986 +v -4.200002 -2.687500 -1.363986 +v -5.512502 -2.950001 0.000000 +v -5.512502 -2.424999 0.909325 +v -5.512502 -1.375000 0.909325 +v -5.512502 -0.850000 0.000000 +v -5.512502 -1.375000 -0.909325 +v -5.512502 -2.424999 -0.909325 +v -5.775002 -3.475000 0.000000 +v -5.775002 -2.687500 1.363986 +v -5.775002 -1.112499 1.363986 +v -5.775002 -0.325001 0.000000 +v -5.775002 -1.112499 -1.363986 +v -5.775002 -2.687500 -1.363986 +v -5.775002 -2.950001 0.000000 +v -5.775002 -2.424999 0.909325 +v -5.775002 -1.375000 0.909325 +v -5.775002 -0.850000 0.000000 +v -5.775002 -1.375000 -0.909325 +v -5.775002 -2.424999 -0.909325 +v -5.250002 0.200001 0.000000 +v -5.250002 -0.325001 0.000000 +v -4.200002 -0.325001 0.000000 +v -4.200002 -4.525000 0.000000 +v -4.200003 -6.100000 -4.200000 +v 4.199997 -6.100000 -4.200000 +v -4.200003 -7.150000 -5.250000 +v 4.199997 -7.150000 -5.250000 +v -5.250002 -4.525000 0.000000 +v -5.250003 -6.100000 -4.200000 +v -4.200003 -8.200001 -5.250000 +v 4.199997 -8.200001 -5.250000 +v -4.200003 -9.250000 -4.200000 +v 4.199997 -9.250000 -4.200000 +v -4.200003 -9.250000 4.200000 +v 4.199997 -9.250000 4.200000 +v -4.200003 -8.200001 5.250000 +v 4.199997 -8.200001 5.250000 +v -4.200002 0.200001 5.250000 +v 4.199998 0.200001 5.250000 +v -4.200002 1.250000 4.200000 +v 4.199998 1.250000 4.200000 +v -5.250003 -8.200001 4.200000 +v -5.250003 -8.200001 -4.200000 +v -5.250002 0.200001 4.200000 +v -4.200002 -3.475000 0.000000 +v -5.250002 -3.475000 0.000000 +v 5.249998 -4.525000 0.000000 +v 5.249998 -3.475000 0.000000 +v 4.199998 -4.525000 0.000000 +v 4.199998 -3.475000 0.000000 +v 5.249997 -8.200001 -4.200000 +v 5.249997 -8.200001 4.200000 +v 5.249998 0.200001 4.200000 +v 5.249997 -6.100000 -4.200000 +v 4.199998 0.200001 -4.725000 +v -4.200002 0.200001 -4.725000 +v 4.199997 -6.625000 -4.725000 +v -4.200003 -6.625000 -4.725000 +v 4.199998 0.725000 -4.200000 +v -4.200002 0.725000 -4.200000 +v 4.199998 0.725000 0.000000 +v -4.200002 0.725000 0.000000 +v 4.724998 0.200001 -4.200000 +v 4.724998 0.200001 0.000000 +v 4.724997 -6.100000 -4.200000 +v 4.724997 -4.525000 0.000000 +v -4.725002 0.200001 -4.200000 +v -4.725002 0.200001 0.000000 +v -4.725003 -6.100000 -4.200000 +v -4.725003 -4.525000 0.000000 +v 4.199998 -2.950001 -5.250000 +v -4.200002 -2.950001 -5.250000 +v 4.724997 -2.950001 -4.725000 +v 6.824998 -3.475000 -1.363986 +v 4.724997 -3.475000 -1.363986 +v 6.824998 -0.325001 -1.363986 +v 4.724998 -0.325001 -1.363986 +v 6.824998 -0.325001 -2.413986 +v 6.824998 -3.475000 -2.413986 +v 4.724997 -3.475000 -2.413986 +v 4.724998 -0.325001 -2.413986 +v 3.674997 -11.349998 -1.575000 +v 2.624997 -11.349998 -1.575000 +v 3.674997 -11.349998 -3.675000 +v 2.624997 -11.349998 -3.675000 +v 4.199997 -9.250000 0.525000 +v 2.099997 -9.250000 0.525000 +v 4.199997 -9.250000 -2.625000 +v 2.099997 -9.250000 -2.625000 +v 3.674997 -10.825001 -3.150000 +v 2.624997 -10.825001 -3.150000 +v -2.625003 -11.349998 -1.575000 +v -3.675003 -11.349998 -1.575000 +v -2.625003 -11.349998 -3.675000 +v -3.675003 -11.349998 -3.675000 +v -2.100003 -9.250000 0.525000 +v -4.200003 -9.250000 0.525000 +v -2.100003 -9.250000 -2.625000 +v -4.200003 -9.250000 -2.625000 +v -2.625003 -10.825001 -3.150000 +v -3.675003 -10.825001 -3.150000 +v -4.987503 -9.512501 -4.725000 +v -4.987503 -9.512501 -0.525000 +v -5.358734 -9.358730 -4.725000 +v -5.358734 -9.358730 -0.525000 +v -5.512503 -8.987499 -4.725000 +v -5.512503 -8.987499 -0.525000 +v -5.358734 -8.616268 -4.725000 +v -5.358734 -8.616268 -0.525000 +v -4.987503 -8.462502 -4.725000 +v -4.987503 -8.462502 -0.525000 +v -4.616271 -8.616268 -4.725000 +v -4.616271 -8.616268 -0.525000 +v -4.462502 -8.987499 -4.725000 +v -4.462502 -8.987499 -0.525000 +v -4.616271 -9.358730 -4.725000 +v -4.616271 -9.358730 -0.525000 +vt 0.208333 0.540984 +vt 0.166667 0.491803 +vt 0.208333 0.491803 +vt 0.041667 0.540984 +vt -0.000000 0.491803 +vt 0.041667 0.491803 +vt 0.125000 0.540984 +vt 0.083333 0.491803 +vt 0.125000 0.491803 +vt 0.166667 0.540984 +vt 0.250000 0.540984 +vt 0.250000 0.491803 +vt 0.083333 0.540984 +vt 0.180556 0.573770 +vt 0.208333 0.557377 +vt 0.208333 0.573770 +vt 0.013889 0.573770 +vt 0.041667 0.557377 +vt 0.041667 0.573770 +vt 0.097222 0.573770 +vt 0.125000 0.557377 +vt 0.125000 0.573770 +vt 0.138889 0.573770 +vt 0.166667 0.557377 +vt 0.166667 0.573770 +vt 0.222222 0.573770 +vt 0.250000 0.557377 +vt 0.250000 0.573770 +vt 0.055556 0.573770 +vt 0.083333 0.557377 +vt 0.083333 0.573770 +vt 0.138889 0.557377 +vt 0.013889 0.557377 +vt -0.000000 0.540984 +vt 0.003825 0.590235 +vt 0.027778 0.573912 +vt 0.051730 0.590235 +vt 0.027778 0.032787 +vt 0.250000 0.000000 +vt 0.250000 0.032787 +vt 0.250000 0.491803 +vt 0.208333 0.540984 +vt 0.208333 0.491803 +vt 0.861111 0.196721 +vt 0.888889 0.213115 +vt 0.861111 0.213115 +vt 0.083333 0.491803 +vt 0.041667 0.540984 +vt 0.041667 0.491803 +vt 0.861111 0.163934 +vt 0.888889 0.196721 +vt 0.166667 0.491803 +vt 0.125000 0.540984 +vt 0.125000 0.491803 +vt 0.083333 0.540984 +vt -0.000000 0.540984 +vt -0.000000 0.491803 +vt 0.166667 0.540984 +vt 0.055556 0.557377 +vt 0.083333 0.573770 +vt 0.055556 0.573770 +vt 0.222222 0.557377 +vt 0.250000 0.573770 +vt 0.222222 0.573770 +vt 0.138889 0.557377 +vt 0.166667 0.573770 +vt 0.138889 0.573770 +vt 0.097222 0.557377 +vt 0.125000 0.573770 +vt 0.097222 0.573770 +vt 0.013889 0.557377 +vt 0.041667 0.573770 +vt 0.013889 0.573770 +vt 0.180556 0.557377 +vt 0.208333 0.573770 +vt 0.180556 0.573770 +vt 0.125000 0.557377 +vt 0.250000 0.557377 +vt 0.051730 0.590235 +vt 0.051730 0.622880 +vt 0.027778 0.639203 +vt 0.388889 0.196721 +vt 0.416667 0.213115 +vt 0.388889 0.213115 +vt 0.027778 0.163934 +vt 0.416667 0.196721 +vt 0.416667 0.163934 +vt 0.750000 0.393443 +vt 0.527778 0.426230 +vt 0.527778 0.393443 +vt 0.500000 0.393443 +vt 0.527778 0.262295 +vt 0.750000 0.426230 +vt 0.527778 0.459016 +vt 0.750000 0.459016 +vt 0.527778 0.491803 +vt 0.750000 0.491803 +vt 0.527778 0.754098 +vt 0.027778 0.491803 +vt 0.250000 0.459016 +vt 0.250000 0.491803 +vt 0.027778 0.459016 +vt 0.250000 0.196721 +vt 0.027778 0.196721 +vt 0.250000 0.163934 +vt 0.277778 0.491803 +vt 0.500000 0.459016 +vt 0.500000 0.491803 +vt 0.277778 0.459016 +vt 0.277778 0.196721 +vt 0.277778 0.163934 +vt 0.388889 0.163934 +vt 0.388889 0.344262 +vt 0.416667 0.311475 +vt 0.416667 0.344262 +vt 0.888889 0.344262 +vt 0.861111 0.311475 +vt 0.888889 0.311475 +vt 0.777778 0.491803 +vt 1.000000 0.459016 +vt 1.000000 0.491803 +vt 0.777778 0.459016 +vt -0.000000 0.459016 +vt 0.888889 0.163934 +vt 1.000000 0.196721 +vt 0.000000 0.196721 +vt 0.777778 0.393443 +vt 0.750000 0.262295 +vt 0.777778 0.262295 +vt 0.361111 1.000000 +vt 0.138889 0.885246 +vt 0.361111 0.885246 +vt 0.138889 0.770492 +vt 0.361111 0.786885 +vt 0.138889 0.786885 +vt 0.138889 0.639344 +vt 0.361111 0.770492 +vt 0.500000 0.786885 +vt 0.388889 0.770492 +vt 0.500000 0.770492 +vt 0.375000 0.786885 +vt 0.500000 0.934426 +vt 0.388889 0.983607 +vt 0.375000 0.885246 +vt 0.375000 0.983607 +vt 0.111111 0.786885 +vt -0.000000 0.770492 +vt 0.111111 0.770492 +vt 0.125000 0.786885 +vt 0.125000 0.885246 +vt -0.000000 0.934426 +vt -0.000000 0.786885 +vt 0.861111 0.622951 +vt 0.916667 0.524590 +vt 0.916667 0.622951 +vt 0.125000 0.983607 +vt 0.833333 0.622951 +vt 0.777778 0.524590 +vt 0.833333 0.524590 +vt 0.833333 0.491803 +vt 0.777778 0.491803 +vt 0.777778 0.655738 +vt 0.833333 0.655738 +vt 0.750000 0.524590 +vt 0.777778 0.622951 +vt 0.750000 0.622951 +vt 0.861111 0.524590 +vt 0.805556 0.737705 +vt 0.833333 0.672131 +vt 0.833333 0.737705 +vt 0.750000 0.688525 +vt 0.805556 0.672131 +vt 0.888889 0.688525 +vt 0.888889 0.803279 +vt 0.847222 0.803279 +vt 0.833333 0.655738 +vt 0.791667 0.655738 +vt 0.847222 0.655738 +vt 0.805556 0.737705 +vt 0.833333 0.672131 +vt 0.833333 0.737705 +vt 0.750000 0.688525 +vt 0.805556 0.672131 +vt 0.888889 0.688525 +vt 0.888889 0.803279 +vt 0.791667 0.803279 +vt 0.833333 0.655738 +vt 0.791667 0.655738 +vt 0.847222 0.655738 +vt 0.388889 0.557377 +vt 0.500000 0.540984 +vt 0.500000 0.557377 +vt 0.388889 0.540984 +vt 0.500000 0.524590 +vt 0.388889 0.524590 +vt 0.500000 0.508197 +vt 0.388889 0.508197 +vt 0.500000 0.491803 +vt 0.388889 0.622951 +vt 0.500000 0.606557 +vt 0.500000 0.622951 +vt 0.388889 0.606557 +vt 0.500000 0.590164 +vt 0.361789 0.501738 +vt 0.380472 0.492604 +vt 0.388211 0.514655 +vt 0.388889 0.590164 +vt 0.500000 0.573770 +vt 0.388889 0.573770 +vt 0.501476 0.514266 +vt 0.501476 0.502128 +vt 0.508747 0.493545 +vt 0.180556 0.557377 +vt 0.097222 0.557377 +vt 0.222222 0.557377 +vt 0.055556 0.557377 +vt 0.051730 0.622880 +vt 0.027778 0.639203 +vt 0.003825 0.622880 +vt 0.027778 -0.000000 +vt 0.250000 0.540984 +vt 0.083333 0.557377 +vt 0.166667 0.557377 +vt 0.041667 0.557377 +vt 0.208333 0.557377 +vt 0.003825 0.622880 +vt 0.003825 0.590235 +vt 0.027778 0.573912 +vt 0.500000 0.262295 +vt 0.750000 0.754098 +vt 0.388889 0.311475 +vt 0.861111 0.344262 +vt 1.000000 0.163934 +vt 0.138889 1.000000 +vt 0.361111 0.639344 +vt 0.388889 0.786885 +vt 0.111111 0.983607 +vt 0.750000 0.803279 +vt 0.791667 0.803279 +vt 0.805556 0.655738 +vt 0.750000 0.803279 +vt 0.847222 0.803279 +vt 0.805556 0.655738 +vt 0.388889 0.491803 +vt 0.380472 0.523790 +vt 0.369528 0.523790 +vt 0.361789 0.514656 +vt 0.369528 0.492604 +vt 0.388211 0.501738 +vt 0.519031 0.493545 +vt 0.526302 0.502128 +vt 0.526302 0.514266 +vt 0.519031 0.522848 +vt 0.508747 0.522848 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.8660 0.5000 +vn 0.0000 -0.8660 0.5000 +vn 0.0000 -0.8660 -0.5000 +vn 0.0000 0.8660 -0.5000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 -0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 0.9363 -0.3511 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.7071 0.7071 +vn -0.7071 -0.7071 0.0000 +vn -0.5774 -0.5774 0.5773 +vn -0.5774 -0.5774 -0.5773 +vn -0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 0.7071 +vn -0.5774 0.5774 0.5774 +vn -0.7071 0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.5774 -0.5774 -0.5773 +vn 0.5774 -0.5774 0.5773 +vn 0.7071 0.7071 0.0000 +vn 0.5774 0.5774 0.5773 +vn 0.7071 -0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn 0.0000 -0.1414 -0.9899 +vn 0.5773 0.5774 -0.5774 +vn 0.7493 -0.0937 -0.6556 +vn -0.5774 0.5774 -0.5774 +vn -0.7022 0.1170 -0.7022 +vn 0.0000 0.1644 -0.9864 +vn 0.7022 0.1170 -0.7022 +vn -0.7022 -0.1170 -0.7022 +vn -0.9701 -0.2425 0.0000 +vn 0.9701 -0.2425 0.0000 +vn 0.8165 0.4082 -0.4082 +vn -0.8165 0.4082 -0.4082 +vn -0.3827 -0.9239 0.0000 +vn -0.9239 -0.3827 0.0000 +vn -0.9239 0.3827 0.0000 +vn -0.3827 0.9239 0.0000 +vn 0.3827 0.9239 0.0000 +vn 0.9239 0.3827 0.0000 +vn 0.9239 -0.3827 0.0000 +vn 0.3827 -0.9239 0.0000 +vn 0.7022 -0.1170 -0.7022 +vn -0.7493 -0.0937 -0.6556 +s off +f 616/1045/166 605/1046/166 604/1047/166 +f 614/1048/167 603/1049/167 602/1050/167 +f 612/1051/168 601/1052/168 600/1053/168 +f 617/1054/169 600/1053/169 605/1046/169 +f 615/1055/170 604/1047/170 603/1056/170 +f 613/1057/171 602/1050/171 601/1052/171 +f 611/1058/171 622/1059/171 610/1060/171 +f 609/1061/169 620/1062/169 608/1063/169 +f 607/1064/170 618/1065/170 606/1066/170 +f 606/1067/167 623/1068/167 611/1069/167 +f 610/1070/168 621/1071/168 609/1072/168 +f 608/1073/166 619/1074/166 607/1075/166 +f 617/1054/172 618/1076/172 612/1051/172 +f 618/1065/172 613/1057/172 612/1051/172 +f 619/1074/172 614/1048/172 613/1057/172 +f 614/1048/172 621/1077/172 615/1078/172 +f 621/1071/172 616/1045/172 615/1055/172 +f 622/1059/172 617/1054/172 616/1045/172 +f 610/1079/172 609/1080/172 608/1081/172 +f 624/1082/166 627/1083/166 625/1084/166 +f 634/1085/167 645/1086/167 633/1087/167 +f 626/1088/166 631/1089/166 628/1090/166 +f 636/1091/166 647/1092/166 635/1093/166 +f 626/1088/166 624/1094/166 630/1095/166 +f 632/1096/168 643/1097/168 629/1098/168 +f 629/1098/169 648/1099/169 636/1091/169 +f 635/1093/170 646/1100/170 634/1101/170 +f 633/1087/171 644/1102/171 632/1096/171 +f 653/1103/171 642/1104/171 641/1105/171 +f 651/1106/169 640/1107/169 639/1108/169 +f 649/1109/170 638/1110/170 637/1111/170 +f 654/1112/167 637/1113/167 642/1114/167 +f 652/1115/168 641/1116/168 640/1117/168 +f 650/1118/166 639/1119/166 638/1120/166 +f 648/1099/173 649/1121/173 654/1112/173 +f 644/1102/173 649/1109/173 643/1097/173 +f 645/1086/173 650/1118/173 644/1102/173 +f 645/1086/173 652/1122/173 651/1106/173 +f 647/1092/173 652/1115/173 646/1100/173 +f 648/1099/173 653/1103/173 647/1092/173 +f 641/1123/173 642/1124/173 637/1125/173 +f 655/1126/166 657/1127/166 656/1128/166 +f 625/1084/174 676/1129/174 624/1082/174 +f 627/1130/166 655/1126/166 625/1131/166 +f 660/1132/175 661/1133/175 659/1134/175 +f 664/1135/176 658/1136/176 659/1134/176 +f 659/1134/175 661/1133/175 664/1135/175 +f 662/1137/166 665/1138/166 661/1133/166 +f 666/1139/177 667/1140/177 665/1138/177 +f 668/1141/178 669/1142/178 667/1140/178 +f 670/1143/179 671/1144/179 669/1145/179 +f 672/1146/171 673/1147/171 671/1144/171 +f 674/1148/180 675/1149/180 673/1147/180 +f 669/1150/181 678/1151/181 667/1152/181 +f 669/1150/182 671/1144/182 677/1153/182 +f 665/1138/183 667/1152/183 678/1151/183 +f 661/1133/184 678/1151/184 664/1135/184 +f 677/1153/185 673/1147/185 679/1154/185 +f 673/1147/186 675/1155/186 679/1154/186 +f 679/1154/187 625/1156/187 655/1126/187 +f 663/1157/166 680/1158/166 658/1159/166 +f 663/1157/173 677/1153/173 679/1154/173 +f 682/1160/166 685/1161/166 683/1162/166 +f 668/1163/188 687/1164/188 670/1165/188 +f 668/1163/189 666/1139/189 686/1166/189 +f 670/1143/190 687/1167/190 672/1146/190 +f 624/1168/191 688/1169/191 630/1095/191 +f 676/1129/192 674/1148/192 688/1170/192 +f 672/1146/193 688/1170/193 674/1148/193 +f 662/1137/175 660/1132/175 689/1171/175 +f 662/1137/194 686/1166/194 666/1139/194 +f 689/1171/176 684/1172/176 682/1173/176 +f 687/1164/172 682/1160/172 683/1162/172 +f 692/1174/195 707/1175/195 706/1176/195 +f 695/1177/175 690/1178/175 691/1179/175 +f 697/1180/174 694/1181/174 695/1177/174 +f 699/1182/191 694/1183/191 696/1184/191 +f 694/1181/196 698/1185/196 690/1178/196 +f 701/1186/172 700/1187/172 708/1188/172 +f 706/1176/197 700/1189/197 692/1174/197 +f 702/1190/187 697/1191/187 695/1192/187 +f 695/1177/198 691/1179/198 702/1193/198 +f 598/1194/173 705/1195/173 703/1196/173 +f 691/1179/199 598/1194/199 702/1193/199 +f 706/1176/200 691/1179/200 690/1178/200 +f 709/1197/171 712/1198/171 710/1199/171 +f 708/1188/201 690/1178/201 698/1185/201 +f 707/1175/202 704/1200/202 598/1194/202 +f 714/1201/166 716/1202/166 713/1203/166 +f 711/1204/174 716/1202/174 712/1205/174 +f 710/1206/178 714/1201/178 709/1207/178 +f 712/1208/173 715/1209/173 710/1210/173 +f 709/1197/172 713/1203/172 711/1211/172 +f 718/1212/178 719/1213/178 717/1214/178 +f 718/1212/203 724/1215/203 720/1216/203 +f 717/1214/204 723/1217/204 721/1218/204 +f 721/1219/179 718/1212/179 717/1214/179 +f 720/1216/175 725/1220/175 719/1213/175 +f 720/1216/205 724/1215/205 726/1221/205 +f 719/1213/206 725/1222/206 723/1217/206 +f 728/1223/178 729/1224/178 727/1225/178 +f 728/1223/203 734/1226/203 730/1227/203 +f 727/1225/204 733/1228/204 731/1229/204 +f 727/1225/179 732/1230/179 728/1223/179 +f 730/1227/175 735/1231/175 729/1224/175 +f 730/1227/205 734/1226/205 736/1232/205 +f 729/1224/206 735/1233/206 733/1228/206 +f 738/1234/207 739/1235/207 737/1236/207 +f 740/1237/208 741/1238/208 739/1235/208 +f 742/1239/209 743/1240/209 741/1238/209 +f 744/1241/210 745/1242/210 743/1240/210 +f 746/1243/211 747/1244/211 745/1245/211 +f 748/1246/212 749/1247/212 747/1244/212 +f 750/1248/171 746/1249/171 742/1250/171 +f 750/1251/213 751/1252/213 749/1247/213 +f 752/1253/214 737/1236/214 751/1252/214 +f 747/1254/166 749/1255/166 751/1256/166 +f 616/1045/166 617/1054/166 605/1046/166 +f 614/1048/167 615/1078/167 603/1049/167 +f 612/1051/168 613/1057/168 601/1052/168 +f 617/1054/169 612/1051/169 600/1053/169 +f 615/1055/170 616/1045/170 604/1047/170 +f 613/1057/171 614/1048/171 602/1050/171 +f 611/1058/171 623/1257/171 622/1059/171 +f 609/1061/169 621/1077/169 620/1062/169 +f 607/1064/170 619/1258/170 618/1065/170 +f 606/1067/167 618/1076/167 623/1068/167 +f 610/1070/168 622/1259/168 621/1071/168 +f 608/1073/166 620/1260/166 619/1074/166 +f 617/1054/172 623/1068/172 618/1076/172 +f 618/1065/172 619/1258/172 613/1057/172 +f 619/1074/172 620/1260/172 614/1048/172 +f 614/1048/172 620/1062/172 621/1077/172 +f 621/1071/172 622/1259/172 616/1045/172 +f 622/1059/172 623/1257/172 617/1054/172 +f 608/1081/172 607/1261/172 610/1079/172 +f 607/1261/172 606/1262/172 610/1079/172 +f 606/1262/172 611/1263/172 610/1079/172 +f 624/1082/166 626/1264/166 627/1083/166 +f 634/1085/167 646/1265/167 645/1086/167 +f 626/1088/166 630/1095/166 631/1089/166 +f 636/1091/166 648/1099/166 647/1092/166 +f 632/1096/168 644/1102/168 643/1097/168 +f 629/1098/169 643/1097/169 648/1099/169 +f 635/1093/170 647/1092/170 646/1100/170 +f 633/1087/171 645/1086/171 644/1102/171 +f 653/1103/171 654/1266/171 642/1104/171 +f 651/1106/169 652/1122/169 640/1107/169 +f 649/1109/170 650/1267/170 638/1110/170 +f 654/1112/167 649/1121/167 637/1113/167 +f 652/1115/168 653/1268/168 641/1116/168 +f 650/1118/166 651/1269/166 639/1119/166 +f 648/1099/173 643/1097/173 649/1121/173 +f 644/1102/173 650/1267/173 649/1109/173 +f 645/1086/173 651/1269/173 650/1118/173 +f 645/1086/173 646/1265/173 652/1122/173 +f 647/1092/173 653/1268/173 652/1115/173 +f 648/1099/173 654/1266/173 653/1103/173 +f 637/1125/173 638/1270/173 641/1123/173 +f 638/1270/173 639/1271/173 641/1123/173 +f 639/1271/173 640/1272/173 641/1123/173 +f 655/1126/166 627/1130/166 657/1127/166 +f 625/1084/174 675/1149/174 676/1129/174 +f 660/1132/175 662/1137/175 661/1133/175 +f 664/1135/176 663/1273/176 658/1136/176 +f 662/1137/166 666/1139/166 665/1138/166 +f 666/1139/177 668/1141/177 667/1140/177 +f 668/1141/178 670/1274/178 669/1142/178 +f 670/1143/179 672/1146/179 671/1144/179 +f 672/1146/171 674/1148/171 673/1147/171 +f 674/1148/180 676/1129/180 675/1149/180 +f 669/1150/181 677/1153/181 678/1151/181 +f 661/1133/184 665/1138/184 678/1151/184 +f 677/1153/185 671/1144/185 673/1147/185 +f 679/1154/187 675/1155/187 625/1156/187 +f 663/1157/166 681/1275/166 680/1158/166 +f 679/1154/173 655/1126/173 656/1128/173 +f 679/1154/173 656/1128/173 681/1275/173 +f 664/1135/173 678/1151/173 663/1157/173 +f 678/1151/173 677/1153/173 663/1157/173 +f 679/1154/173 681/1275/173 663/1157/173 +f 682/1160/166 684/1276/166 685/1161/166 +f 668/1163/188 686/1166/188 687/1164/188 +f 624/1168/191 676/1277/191 688/1169/191 +f 672/1146/193 687/1167/193 688/1170/193 +f 662/1137/194 689/1171/194 686/1166/194 +f 689/1171/176 660/1132/176 684/1172/176 +f 683/1162/172 631/1089/172 688/1169/172 +f 631/1089/172 630/1095/172 688/1169/172 +f 683/1162/172 688/1169/172 687/1164/172 +f 687/1164/172 686/1166/172 682/1160/172 +f 686/1166/172 689/1171/172 682/1160/172 +f 692/1174/195 693/1278/195 707/1175/195 +f 695/1177/175 694/1181/175 690/1178/175 +f 697/1180/174 696/1279/174 694/1181/174 +f 699/1182/191 698/1280/191 694/1183/191 +f 698/1280/172 699/1182/172 708/1188/172 +f 699/1182/172 701/1186/172 708/1188/172 +f 706/1176/215 708/1188/215 700/1189/215 +f 702/1190/187 703/1196/187 697/1191/187 +f 703/1196/173 702/1190/173 598/1194/173 +f 598/1194/173 704/1281/173 705/1195/173 +f 691/1179/199 707/1175/199 598/1194/199 +f 706/1176/200 707/1175/200 691/1179/200 +f 709/1197/171 711/1211/171 712/1198/171 +f 708/1188/201 706/1176/201 690/1178/201 +f 707/1175/216 693/1278/216 704/1200/216 +f 714/1201/166 715/1209/166 716/1202/166 +f 711/1204/174 713/1203/174 716/1202/174 +f 710/1206/178 715/1209/178 714/1201/178 +f 712/1208/173 716/1202/173 715/1209/173 +f 709/1197/172 714/1201/172 713/1203/172 +f 718/1212/178 720/1216/178 719/1213/178 +f 718/1212/203 722/1282/203 724/1215/203 +f 717/1214/204 719/1213/204 723/1217/204 +f 721/1219/179 722/1283/179 718/1212/179 +f 720/1216/175 726/1284/175 725/1220/175 +f 728/1223/178 730/1227/178 729/1224/178 +f 728/1223/203 732/1285/203 734/1226/203 +f 727/1225/204 729/1224/204 733/1228/204 +f 727/1225/179 731/1286/179 732/1230/179 +f 730/1227/175 736/1287/175 735/1231/175 +f 738/1234/207 740/1237/207 739/1235/207 +f 740/1237/208 742/1239/208 741/1238/208 +f 742/1239/209 744/1241/209 743/1240/209 +f 744/1241/210 746/1288/210 745/1242/210 +f 746/1243/211 748/1246/211 747/1244/211 +f 748/1246/212 750/1251/212 749/1247/212 +f 742/1250/171 740/1289/171 738/1290/171 +f 738/1290/171 752/1291/171 742/1250/171 +f 752/1291/171 750/1248/171 742/1250/171 +f 750/1248/171 748/1292/171 746/1249/171 +f 746/1249/171 744/1293/171 742/1250/171 +f 750/1251/213 752/1253/213 751/1252/213 +f 752/1253/214 738/1234/214 737/1236/214 +f 751/1256/166 737/1294/166 739/1295/166 +f 739/1295/166 741/1296/166 751/1256/166 +f 741/1296/166 743/1297/166 751/1256/166 +f 743/1297/166 745/1298/166 751/1256/166 +f 745/1298/166 747/1254/166 751/1256/166 diff --git a/src/main/resources/assets/hbm/textures/armor/envsuit_arm.png b/src/main/resources/assets/hbm/textures/armor/envsuit_arm.png index 119357dd7b6469dbccb0ae52cf0ac539aba3ffc2..9c7d6ec9a7776e8d7e8b11399122839e5808277c 100644 GIT binary patch delta 342 zcmV-c0jd7F0)PXMGk*a$Nkl6eT zrI>6`YhC4eJ{aGe^hVq@p_CHMeN{h~Qj+)6H&{Dp>kwzxntxb3D5d1~(Tmj}B8u*q zu&s?T<+S!80BG?krNkOK(?M#i+`3l8)WOQB`@ccWO)%(6Fz8A!=t^r)Q{SDOI%BXX z3Q{p{T?FuXaUU;_YP(Nhw@+GvXPUt)&0sB^_j@p0w_J6`VBeLe3%8Ec<~1QlT#o~8 z9XaBO!8EZ8niZyiJcQ70hSDp6}dw)p0|FRHn)ULY4KHdK0Z-~?N4gdhR o^MPE$`zwDi=t?l?iuYsY4YvvwIkCuURsaA107*qoM6N<$f;Hr$xc~qF delta 272 zcmV+r0q_2R1G)l`Gk*Z_Nklx4QK@>s&N%a$8&V6p@*eS;a4Guvtgk<>6q}%I|@iT|mgOjkx8YH@>F+@Kco2F8nu5Iz+iBmpT5Xvm%xT{`In`X+ge<{7&6 z9r`9&Jo*j1d!QpE0Huu`YAP3oKX=kekzIX&Az3^f>5s>|f(3wbNX5T}Ns|RaM#8j-{d~3iinI5?+>N zPuLi%!M#7!En!ePODSbSBS9KN++@_HNcdgJA$~fYSn|G3=8V>m?3fM>5{|9hg8GBq zMoL&W0Kk{8-+x&0ctp5yB{f=N@{)e-*D^NLjcS4TJiKW|PgPe|&!O2Prgtp-xc zhw59il$p_6xI`4D=$NaXrD6jh6NM={=Bj7O*tn}(_YaTe=I$0g-`&0wem)$%&u!Vu z;RpZ#zJK>q<*7QT`hWlY?$x^#tUi2Zun2!S9O3zFWm5oK@wH;L@R>0=;Zu(YNz`=> zbzM&?w_5labzQ@DyY26%l3NK!Xqu)cX)3vu@H6)NJplY8$=**PceQINTy$LryWOt8 zk0C~MN?*{zZ9sCbsj{UYMw(luwf26d&=<9EJAdo5SDPc_XGnSe^0hFWI()wmU0D1rLIBG}cଞ_Np(Uc!HwiOEt=e0@mJ zya_B^r64`+=dL`ac7`ahgd2Ek?e;tFRqA)2o_7eX7KR`dE4X`}u6&;7{X}NJ-?P`| zaeJ0xoGZX9S=8&|fvvPG%jn1V4t1s(0(L3bLWlZUSI6QzV#ql~JA-VRhFzbVhf5H& zXtIaw7~yxQGtCfEK@+0WO){yKWJNV$>Esnj|pNdx=$u>J>s)@ zrO1BQIIm6S!!aSZD1i+3pl`7foGd>+@4c0^!}37wfpN#*1leT`+3N@Q?~W$f4ExQnwrkHw(bk4Uuko7olCm?JumKp z*a@|=a>@0%cV299T=`sT@|GL?&Z6IDsGp0eov6Zfz*g*K!R4ky8zynJ35Q*H_`-)p z_SOC65>@Li=B)|hW7l}>6IQ;S;hMxe?qfMe&Ies{2q-vX@NZrD_wO2C_zrCO`@H1Q zlbUl}Q|2#J$UYh3CYu)(V5wNo7<_Q$`vw8Ui`7Zy$5OTG!VKM~89iKTDRJ0)-v_V# zHiq)-92V6Yx^tR2lQp>$N}uhJdQl*FdD#&Qwo`g}bARxfACWJg$|k3{!%+e^6Q;n!MimuMS(uH%E8-ps+6m8P^|P z(`L*|Iy#NXG5o^>=iryS>I&b*G1c+tD+YA7-qs0`+h@6bULO08$(yFE-)^)~hV}bV jneMaBxht!g82&IVXj>=#^U3RS1|aZs^>bP0l+XkK1nnH2 diff --git a/src/main/resources/assets/hbm/textures/armor/envsuit_helmet.png b/src/main/resources/assets/hbm/textures/armor/envsuit_helmet.png index 46ef3623775a1d61860095ab098682b7d5a2e95c..5849c62c5bcc34c3bfd80f77d4f49e707262f68b 100644 GIT binary patch delta 962 zcmV;z13mn`1?LBlGk*h~Nkl+5S`ehz_nqJ7j#C{r|{+wG#??_+;|ABTsB@%U&o!t?VpeBZ}>K99!@!zgB_ z6(J>1uh)ykxqrRA#naOh9v&VrnM^R9P7wq_Jby#)sVzc*7-OK6;`;g;gb=*Eyx{)+ z9+SxgVHjeuSS02z|NYew3KWJReBa0W`#av=-Y}cZFq_Tr@$r#5ziA#sps&Z##n(#G z5r$#FFpRiLEf$N$c}p6t2MK6aO)h}O3gr7f;~(=sX@7IFkjX(h!?4tlrj#<DdlZ*CIaaei=6tJ2O>od+@Y697QSsK{khy{XnArizX{R9zoL$f!u~aa~s!wlZ__ z#J;XFFMkE4l&K_X+qMa?+6>Bw!ejpW^EYAO;&_l{ptgy$NJ`H^zV9=~apDplCDABf zfBx4lmF1665?HvU1S32rKfp`Y;?@Z%JK-c$Leq^i6LuIp;eXR5Yz z?MK_2YASJvspcZSIyA{nA_wWZ!E2J8`X%ZA1VNzfURi~2aTZgd79NyV&Q(wKeDR6w zZ+{YMl?k*gO4bFJDv@1EY2trjvSO7gP?jiVz^|1@tkQE(lzht+XBpeJiEI&QleB=+ zbC9kpRaN+Fm38x44-(J{B%l_35Ra}9)McmjAOWpF0umvn>jrO~ov2f;x|*dOMbd}` z(sgpK!wEbOqWv0WC&j8ghbPy!J5;|DSUcs>p-2k3QEU=z6%)`3B%l>YKr4`dRv-a| kbka>idnesA+7J`)4_CU^(m5fPH~;_u07*qoM6N<$f{41*=Kufz delta 662 zcmV;H0%`r{2fYQ5Gk*efNklIw9ntSHjb1v?9fq!grJ5V|%kihUN)`vNK zs>PnFiLeL~Fo6V2AORCd;AsV_8(a(ElZUUH^Xueq?cF|O$c3VF6nV3nta7g#_=Ce> zWv&qi04h~!PjnV3gmx#Ncq=g^gjO7&;3?(-AM%RjhptduIR^%6zTMBE*a#{G6G%Xx zFk>ZY?Qns4Ewpd+!KsM?_oU zFA_0GzRdgg>Byk{jHsTVjhq_%&xN7(R}2S0a)J0e^@w4l7ic&A-2J5SLrX5+ELfUAq3UXu3wdAXU{u4Q!*)ct_`(Yc@5?tk{W0aq76sRoi(uNK~2`Y8n; zqf_q;)DN)J`ZxMi3Wb1IV$=E1olM=Q)q!mAO@VUQ7fzfLx#`OW4ht zgO(6PGk?~c8Y^1_r4%P*>|&-^sU)3ZjJ%Q4rQ^rscEln`zyuN~u96O|e`4FQ2of-X z1d^{}xD;u*S2OJ~4{7%-65P8={bJ>aN6~)nP3okWTbM2yU#=Zu{hQ+1up}*D0tuKv w0w$1v2_#?w379|v*R2L;bfRP|f&~5mn>6wK-Ve{VDF6Tf07*qoM6N<$f;J;N?*IS* diff --git a/src/main/resources/assets/hbm/textures/armor/envsuit_leg.png b/src/main/resources/assets/hbm/textures/armor/envsuit_leg.png index 02d1d631e3b64c251cef97260ab7e632feeb8917..7dbe9698883fb8c5ebeddcd17774a464b2f59ef9 100644 GIT binary patch delta 596 zcmV-a0;~O`1pEY$Gk*dzNklb8v#6UW{i`>-cuHwvLw_wmDyi=mG!$E{TXAhkx@i(24*Tgb>kfUPQN; z7@Z3kjYgU6nTuAo5O>d`!&Jm>w_^u$bOEkx0|214X4&BK01g7?i)B8ZO|98uyIRA? z%WcNt0PNGKizB71*m?Tgo$U?*6 z&`L1IKo=Y?&VN1z{snZ6A_h47FC~YIUZzp%leZ(I$9ox}r9=#lQYsfhR5F!PDtC!E z`xxl00B)R|TuwjVO^%inE7Ee62>|eRf1Obdf^tIQpO)C<;GXHyLA!cYj)I-WDn^qpM$~l_vJNWxlT( zMLwOZx?mn~W>-pCX|!##QhrB&O2=&9qkY;B`~C&M><3V!s|;=mv}=s11hMZMT(O{j zAjBb@(Y8b*TDw|o;yBK}*4lZ+g4rtR-DoI$X%x}havGht1u>>jfP(evrWmB^hW&VTP5R!f^`l6Kr)V$l40f#QSXK73NK%Mb1I_W3vs};V~pXQ#C-&= ix@~f-X|#{vWUODwy;1!Rd4@c-=#k4pPF= z!+oTty$|BVfboNX6H6H>5;4Ov%Rc-dtcg}j==R~mOvcUz)CmLtS^^z3CN|CnG-q?S zK<27&1^dLupw^WW#)19gXO7&T2JVKZN8nKujez~qW7sc0cYi;Gr$@jo&``0?A^U+K zB3-Ea9VT;2{`cFi6ypIe5P?V0dv=s?`}!s-%E>_W5vbk)g`)^M4zo&fGC^pypp6*q z7{xg68mJ6!2cC`U9Z+Z)(biUy13-Tb*FxqrzZO!(mkAM$-W%bc$*{~hQGE(k??C#F zY@EBDnTFKPqJQq}-tmw-o@vK>h<&mm086%%KH-nR+PgYpP9Sr-7jme80qa1@`eSY3 zGxl`@F&7a2`eEJpk6O$Hq#H<*C;@~=W4`~KaXn`TO^TvBl2VAAy|bYIB0eGPT-#?{ z=UtBbocj)K?SF0T()_up{E7v$tZ>9iJE xjFTM!#(L>Nk<;!i=9B7+`0c Date: Sat, 5 Aug 2023 16:33:23 +0200 Subject: [PATCH 223/432] suffering builds character --- changelog | 11 +- .../java/com/hbm/crafting/ArmorRecipes.java | 4 + .../java/com/hbm/handler/HazmatRegistry.java | 6 + .../container/ContainerElectrolyserFluid.java | 47 + .../container/ContainerElectrolyserMetal.java | 44 + .../com/hbm/inventory/gui/GUIRBMKConsole.java | 2 + src/main/java/com/hbm/items/ModItems.java | 12 +- .../com/hbm/items/armor/ArmorEnvsuit.java | 9 +- .../com/hbm/items/special/ItemGlitch.java | 11 +- .../com/hbm/items/tool/ItemPowerNetTool.java | 94 +- .../hbm/render/item/ItemRenderLibrary.java | 11 - .../hbm/render/loader/ModelRendererObj.java | 11 +- .../hbm/render/loader/ModelRendererTest.java | 172 + .../com/hbm/render/model/ModelArmorBase.java | 1 + .../render/tileentity/RenderElectrolyser.java | 30 +- .../machine/TileEntityElectrolyser.java | 38 + .../machine/rbmk/TileEntityRBMKRod.java | 13 +- .../assets/hbm/models/armor/envsuit.obj | 3104 +++++++++-------- .../assets/hbm/models/armor/test.obj | 219 ++ .../items/circuit_targeting_tier1.png | Bin 332 -> 344 bytes .../items/circuit_targeting_tier2.png | Bin 366 -> 404 bytes .../items/circuit_targeting_tier3.png | Bin 334 -> 357 bytes .../items/circuit_targeting_tier4.png | Bin 347 -> 344 bytes .../items/circuit_targeting_tier5.png | Bin 343 -> 361 bytes .../items/circuit_targeting_tier6.png | Bin 351 -> 362 bytes .../hbm/textures/items/envsuit_boots.png | Bin 0 -> 154 bytes .../hbm/textures/items/envsuit_helmet.png | Bin 0 -> 252 bytes .../hbm/textures/items/envsuit_legs.png | Bin 0 -> 282 bytes .../hbm/textures/items/envsuit_plate.png | Bin 0 -> 258 bytes 29 files changed, 2232 insertions(+), 1607 deletions(-) create mode 100644 src/main/java/com/hbm/render/loader/ModelRendererTest.java create mode 100644 src/main/resources/assets/hbm/models/armor/test.obj create mode 100644 src/main/resources/assets/hbm/textures/items/envsuit_boots.png create mode 100644 src/main/resources/assets/hbm/textures/items/envsuit_helmet.png create mode 100644 src/main/resources/assets/hbm/textures/items/envsuit_legs.png create mode 100644 src/main/resources/assets/hbm/textures/items/envsuit_plate.png diff --git a/changelog b/changelog index b609d3764..34c06cd90 100644 --- a/changelog +++ b/changelog @@ -1,4 +1,12 @@ ## Added +* Electrolysis machine + * A large machine that can do the chemical plant's electrolysis recipes, as well as crystal processing + * Crystals are turned into molten metals as well as byproducts, the metal can be cast using foundry blocks + * Processing crystals requires nitric acid and yields more than what the centrifuge would give +* Environment suit + * An airtight suit for diving with high radiation resistance + * Relatively cheap, but protection is comparatively low + * Has sprint assist and accelerated diving ## Changed * Bedrock ores now spawn in the nether @@ -9,4 +17,5 @@ ## Fixed * Fixed custom machines not sending fluid -* Fixed custom machine item IO not working beyond the first slot \ No newline at end of file +* Fixed custom machine item IO not working beyond the first slot +* Fixed the player's arms clipping through the armor model when punching \ No newline at end of file diff --git a/src/main/java/com/hbm/crafting/ArmorRecipes.java b/src/main/java/com/hbm/crafting/ArmorRecipes.java index 96b9543b8..3aaa6019e 100644 --- a/src/main/java/com/hbm/crafting/ArmorRecipes.java +++ b/src/main/java/com/hbm/crafting/ArmorRecipes.java @@ -105,6 +105,10 @@ public class ArmorRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.dieselsuit_plate, 1), new Object[] { "W W", "CDC", "SWS", 'W', new ItemStack(Blocks.wool, 1, 14), 'S', STEEL.ingot(), 'C', ModItems.circuit_targeting_tier3, 'D', ModBlocks.machine_diesel }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.dieselsuit_legs, 1), new Object[] { "M M", "S S", "W W", 'W', new ItemStack(Blocks.wool, 1, 14), 'S', STEEL.ingot(), 'M', ModItems.motor }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.dieselsuit_boots, 1), new Object[] { "W W", "S S", 'W', new ItemStack(Blocks.wool, 1, 14), 'S', STEEL.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.envsuit_helmet, 1), new Object[] { "TCT", "TGT", "RRR", 'T', TI.plate(), 'C', ModItems.circuit_red_copper, 'G', KEY_ANYPANE, 'R', RUBBER.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.envsuit_plate, 1), new Object[] { "T T", "TCT", "RRR", 'T', TI.plate(), 'C', TI.plateCast(), 'R', RUBBER.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.envsuit_legs, 1), new Object[] { "TCT", "R R", "T T", 'T', TI.plate(), 'C', TI.plateCast(), 'R', RUBBER.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.envsuit_boots, 1), new Object[] { "R R", "T T", 'T', TI.plate(), 'R', RUBBER.ingot() }); //Bismuth fursui- I mean armor CraftingManager.addRecipeAuto(new ItemStack(ModItems.bismuth_helmet, 1), new Object[] { "GPP", "P ", "FPP", 'G', Items.gold_ingot, 'P', ModItems.plate_bismuth, 'F', ModItems.rag }); diff --git a/src/main/java/com/hbm/handler/HazmatRegistry.java b/src/main/java/com/hbm/handler/HazmatRegistry.java index 67bc7c955..1d6b322b1 100644 --- a/src/main/java/com/hbm/handler/HazmatRegistry.java +++ b/src/main/java/com/hbm/handler/HazmatRegistry.java @@ -53,6 +53,7 @@ public class HazmatRegistry { double t45 = 1D; // 90% double ajr = 1.3D; // 95% double bj = 1D; // 90% + double env = 2D; // 99% double hev = 2.3D; // 99.5% double rpa = 2D; // 99% double fau = 4D; // 99.99% @@ -108,6 +109,11 @@ public class HazmatRegistry { HazmatRegistry.registerHazmat(ModItems.steamsuit_legs, 1.3 * legs); HazmatRegistry.registerHazmat(ModItems.steamsuit_boots, 1.3 * boots); + HazmatRegistry.registerHazmat(ModItems.envsuit_helmet, env * helmet); + HazmatRegistry.registerHazmat(ModItems.envsuit_plate, env * chest); + HazmatRegistry.registerHazmat(ModItems.envsuit_legs, env * legs); + HazmatRegistry.registerHazmat(ModItems.envsuit_boots, env * boots); + HazmatRegistry.registerHazmat(ModItems.hev_helmet, hev * helmet); HazmatRegistry.registerHazmat(ModItems.hev_plate, hev * chest); HazmatRegistry.registerHazmat(ModItems.hev_legs, hev * legs); diff --git a/src/main/java/com/hbm/inventory/container/ContainerElectrolyserFluid.java b/src/main/java/com/hbm/inventory/container/ContainerElectrolyserFluid.java index d52d54c24..f9fcff491 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerElectrolyserFluid.java +++ b/src/main/java/com/hbm/inventory/container/ContainerElectrolyserFluid.java @@ -1,12 +1,17 @@ package com.hbm.inventory.container; import com.hbm.inventory.SlotTakeOnly; +import com.hbm.items.ModItems; +import com.hbm.items.machine.IItemFluidIdentifier; +import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.tileentity.machine.TileEntityElectrolyser; +import api.hbm.energy.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; public class ContainerElectrolyserFluid extends Container { @@ -47,6 +52,48 @@ public class ContainerElectrolyserFluid extends Container { } } + @Override + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(par2); + + if(var4 != null && var4.getHasStack()) { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if(par2 <= 13) { + if(!this.mergeItemStack(var5, 14, this.inventorySlots.size(), true)) { + return null; + } + } else { + + if(var3.getItem() instanceof IBatteryItem || var3.getItem() == ModItems.battery_creative) { + if(!this.mergeItemStack(var5, 0, 1, false)) { + return null; + } + } else if(var3.getItem() instanceof ItemMachineUpgrade) { + if(!this.mergeItemStack(var5, 1, 3, false)) { + return null; + } + } else if(var3.getItem() instanceof IItemFluidIdentifier) { + if(!this.mergeItemStack(var5, 3, 4, false)) { + return null; + } + } else { + return null; + } + } + + if(var5.stackSize == 0) { + var4.putStack((ItemStack) null); + } else { + var4.onSlotChanged(); + } + } + + return var3; + } + @Override public boolean canInteractWith(EntityPlayer player) { return electrolyser.isUseableByPlayer(player); diff --git a/src/main/java/com/hbm/inventory/container/ContainerElectrolyserMetal.java b/src/main/java/com/hbm/inventory/container/ContainerElectrolyserMetal.java index 881f1382c..15c8b9565 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerElectrolyserMetal.java +++ b/src/main/java/com/hbm/inventory/container/ContainerElectrolyserMetal.java @@ -1,12 +1,16 @@ package com.hbm.inventory.container; import com.hbm.inventory.SlotCraftingOutput; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.tileentity.machine.TileEntityElectrolyser; +import api.hbm.energy.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; public class ContainerElectrolyserMetal extends Container { @@ -41,6 +45,46 @@ public class ContainerElectrolyserMetal extends Container { } } + @Override + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(par2); + + if(var4 != null && var4.getHasStack()) { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if(par2 <= 10) { + if(!this.mergeItemStack(var5, 11, this.inventorySlots.size(), true)) { + return null; + } + } else { + + if(var3.getItem() instanceof IBatteryItem || var3.getItem() == ModItems.battery_creative) { + if(!this.mergeItemStack(var5, 0, 1, false)) { + return null; + } + } else if(var3.getItem() instanceof ItemMachineUpgrade) { + if(!this.mergeItemStack(var5, 1, 3, false)) { + return null; + } + } else { + if(!this.mergeItemStack(var5, 3, 4, false)) { + return null; + } + } + } + + if(var5.stackSize == 0) { + var4.putStack((ItemStack) null); + } else { + var4.onSlotChanged(); + } + } + + return var3; + } + @Override public boolean canInteractWith(EntityPlayer player) { return electrolyser.isUseableByPlayer(player); diff --git a/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java b/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java index 85be6afb7..1f8d20881 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java +++ b/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java @@ -320,9 +320,11 @@ public class GUIRBMKConsole extends GuiScreen { case FUEL_SIM: if(col.data.hasKey("c_heat")) { int fh = (int)Math.ceil((col.data.getDouble("c_heat") - 20) * 8 / col.data.getDouble("c_maxHeat")); + if(fh > 8) fh = 8; drawTexturedModalRect(guiLeft + x + 1, guiTop + y + size - fh - 1, 11, 191 - fh, 2, fh); int fe = (int)Math.ceil((col.data.getDouble("enrichment")) * 8); + if(fe > 8) fe = 8; drawTexturedModalRect(guiLeft + x + 4, guiTop + y + size - fe - 1, 14, 191 - fe, 2, fe); } break; diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index bf30755ad..01cd4fa82 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -4866,17 +4866,17 @@ public class ModItems { ArmorMaterial aMatEnv = EnumHelper.addArmorMaterial("HBM_ENV", 150, new int[] { 3, 8, 6, 3 }, 100); aMatEnv.customCraftingMaterial = ModItems.plate_armor_hev; - envsuit_helmet = new ArmorEnvsuit(aMatEnv, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000, 10000, 2500, 0).setMod(0.5F).setThreshold(2.0F) + envsuit_helmet = new ArmorEnvsuit(aMatEnv, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 100_000, 1_000, 250, 0).setMod(0.5F).setThreshold(2.0F) .addEffect(new PotionEffect(Potion.moveSpeed.id, 20, 1)) .addEffect(new PotionEffect(Potion.jump.id, 20, 0)) - .addResistance("fall", 0.75F) + .addResistance("fall", 0.25F) .addResistance("monoxide", 0F) .addResistance("onFire", 0F) .hides(EnumPlayerPart.HAT) - .setUnlocalizedName("envsuit_helmet").setTextureName(RefStrings.MODID + ":hev_helmet"); - envsuit_plate = new ArmorEnvsuit(aMatEnv, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000, 10000, 2500, 0).cloneStats((ArmorFSB) envsuit_helmet).setUnlocalizedName("envsuit_plate").setTextureName(RefStrings.MODID + ":hev_plate"); - envsuit_legs = new ArmorEnvsuit(aMatEnv, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 1000000, 10000, 2500, 0).cloneStats((ArmorFSB) envsuit_helmet).setUnlocalizedName("envsuit_legs").setTextureName(RefStrings.MODID + ":hev_legs"); - envsuit_boots = new ArmorEnvsuit(aMatEnv, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000, 10000, 2500, 0).cloneStats((ArmorFSB) envsuit_helmet).setUnlocalizedName("envsuit_boots").setTextureName(RefStrings.MODID + ":hev_boots"); + .setUnlocalizedName("envsuit_helmet").setTextureName(RefStrings.MODID + ":envsuit_helmet"); + envsuit_plate = new ArmorEnvsuit(aMatEnv, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 100_000, 1_000, 250, 0).cloneStats((ArmorFSB) envsuit_helmet).setUnlocalizedName("envsuit_plate").setTextureName(RefStrings.MODID + ":envsuit_plate"); + envsuit_legs = new ArmorEnvsuit(aMatEnv, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 100_000, 1_000, 250, 0).cloneStats((ArmorFSB) envsuit_helmet).setUnlocalizedName("envsuit_legs").setTextureName(RefStrings.MODID + ":envsuit_legs"); + envsuit_boots = new ArmorEnvsuit(aMatEnv, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 100_000, 1_000, 250, 0).cloneStats((ArmorFSB) envsuit_helmet).setUnlocalizedName("envsuit_boots").setTextureName(RefStrings.MODID + ":envsuit_boots"); ArmorMaterial aMatHEV = EnumHelper.addArmorMaterial("HBM_HEV", 150, new int[] { 3, 8, 6, 3 }, 100); aMatHEV.customCraftingMaterial = ModItems.plate_armor_hev; diff --git a/src/main/java/com/hbm/items/armor/ArmorEnvsuit.java b/src/main/java/com/hbm/items/armor/ArmorEnvsuit.java index 158ab3059..e7ee41f79 100644 --- a/src/main/java/com/hbm/items/armor/ArmorEnvsuit.java +++ b/src/main/java/com/hbm/items/armor/ArmorEnvsuit.java @@ -63,9 +63,10 @@ public class ArmorEnvsuit extends ArmorFSBPowered { if(player.isInWater()) { - player.setAir(300); - - player.addPotionEffect(new PotionEffect(Potion.nightVision.id, 15 * 20, 0)); + if(!world.isRemote) { + player.setAir(300); + player.addPotionEffect(new PotionEffect(Potion.nightVision.id, 15 * 20, 0)); + } double mo = 0.1 * player.moveForward; Vec3 vec = player.getLookVec(); @@ -77,7 +78,7 @@ public class ArmorEnvsuit extends ArmorFSBPowered { player.motionY += vec.yCoord; player.motionZ += vec.zCoord; } else { - if(player.isPotionActive(Potion.nightVision.id) && player.getActivePotionEffect(Potion.nightVision).getDuration() > 15 * 20) { + if(!world.isRemote) { player.removePotionEffect(Potion.nightVision.id); } } diff --git a/src/main/java/com/hbm/items/special/ItemGlitch.java b/src/main/java/com/hbm/items/special/ItemGlitch.java index f30246151..9942c4754 100644 --- a/src/main/java/com/hbm/items/special/ItemGlitch.java +++ b/src/main/java/com/hbm/items/special/ItemGlitch.java @@ -12,6 +12,7 @@ import com.hbm.items.ModItems; import com.hbm.lib.ModDamageSource; import com.hbm.main.MainRegistry; +import api.hbm.energy.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.item.Item; @@ -21,7 +22,7 @@ import net.minecraft.potion.PotionEffect; import net.minecraft.util.ChatComponentText; import net.minecraft.world.World; -public class ItemGlitch extends Item { +public class ItemGlitch extends Item implements IBatteryItem { public ItemGlitch() { @@ -235,4 +236,12 @@ public class ItemGlitch extends Item { } } + + @Override public void chargeBattery(ItemStack stack, long i) { } + @Override public void setCharge(ItemStack stack, long i) { } + @Override public void dischargeBattery(ItemStack stack, long i) { } + @Override public long getCharge(ItemStack stack) { return 200; } + @Override public long getMaxCharge() { return 200; } + @Override public long getChargeRate() { return 0; } + @Override public long getDischargeRate() { return 200; } } diff --git a/src/main/java/com/hbm/items/tool/ItemPowerNetTool.java b/src/main/java/com/hbm/items/tool/ItemPowerNetTool.java index d1e5eef45..10b0d2d20 100644 --- a/src/main/java/com/hbm/items/tool/ItemPowerNetTool.java +++ b/src/main/java/com/hbm/items/tool/ItemPowerNetTool.java @@ -41,58 +41,60 @@ public class ItemPowerNetTool extends Item { TileEntity te = world.getTileEntity(x, y, z); - if(!(te instanceof IEnergyConductor)) - return false; - if(world.isRemote) return true; - IEnergyConductor con = (IEnergyConductor) te; - IPowerNet net = con.getPowerNet(); - - if(net == null) { - player.addChatComponentMessage(ChatBuilder.start("Error: No network found! This should be impossible!").color(EnumChatFormatting.RED).flush()); + if((te instanceof IEnergyConductor)) { + + IEnergyConductor con = (IEnergyConductor) te; + IPowerNet net = con.getPowerNet(); + + if(net == null) { + player.addChatComponentMessage(ChatBuilder.start("Error: No network found! This should be impossible!").color(EnumChatFormatting.RED).flush()); + return true; + } + + if(!(net instanceof PowerNet)) { + player.addChatComponentMessage(ChatBuilder.start("Error: Cannot print diagnostic for non-standard power net implementation!").color(EnumChatFormatting.RED).flush()); + } + + PowerNet network = (PowerNet) net; + String id = Integer.toHexString(net.hashCode()); + + player.addChatComponentMessage(ChatBuilder.start("Start of diagnostic for network " + id).color(EnumChatFormatting.GOLD).flush()); + player.addChatComponentMessage(ChatBuilder.start("Links: " + network.getLinks().size()).color(EnumChatFormatting.YELLOW).flush()); + player.addChatComponentMessage(ChatBuilder.start("Proxies: " + network.getProxies().size()).color(EnumChatFormatting.YELLOW).flush()); + player.addChatComponentMessage(ChatBuilder.start("Subscribers: " + network.getSubscribers().size()).color(EnumChatFormatting.YELLOW).flush()); + player.addChatComponentMessage(ChatBuilder.start("End of diagnostic for network " + id).color(EnumChatFormatting.GOLD).flush()); + + for(IEnergyConductor link : network.getLinks()) { + Vec3 pos = link.getDebugParticlePos(); + + boolean errored = link.getPowerNet() != net; + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "debug"); + data.setInteger("color", errored ? 0xff0000 : 0xffff00); + data.setFloat("scale", 0.5F); + data.setString("text", id); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, pos.xCoord, pos.yCoord, pos.zCoord), new TargetPoint(world.provider.dimensionId, pos.xCoord, pos.yCoord, pos.zCoord, radius)); + } + + for(IEnergyConnector subscriber : network.getSubscribers()) { + Vec3 pos = subscriber.getDebugParticlePos(); + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "debug"); + data.setInteger("color", 0x0000ff); + data.setFloat("scale", 1.5F); + data.setString("text", id); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, pos.xCoord, pos.yCoord, pos.zCoord), new TargetPoint(world.provider.dimensionId, pos.xCoord, pos.yCoord, pos.zCoord, radius)); + } + return true; } - if(!(net instanceof PowerNet)) { - player.addChatComponentMessage(ChatBuilder.start("Error: Cannot print diagnostic for non-standard power net implementation!").color(EnumChatFormatting.RED).flush()); - } - - PowerNet network = (PowerNet) net; - String id = Integer.toHexString(net.hashCode()); - - player.addChatComponentMessage(ChatBuilder.start("Start of diagnostic for network " + id).color(EnumChatFormatting.GOLD).flush()); - player.addChatComponentMessage(ChatBuilder.start("Links: " + network.getLinks().size()).color(EnumChatFormatting.YELLOW).flush()); - player.addChatComponentMessage(ChatBuilder.start("Proxies: " + network.getProxies().size()).color(EnumChatFormatting.YELLOW).flush()); - player.addChatComponentMessage(ChatBuilder.start("Subscribers: " + network.getSubscribers().size()).color(EnumChatFormatting.YELLOW).flush()); - player.addChatComponentMessage(ChatBuilder.start("End of diagnostic for network " + id).color(EnumChatFormatting.GOLD).flush()); - - for(IEnergyConductor link : network.getLinks()) { - Vec3 pos = link.getDebugParticlePos(); - - boolean errored = link.getPowerNet() != net; - - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "debug"); - data.setInteger("color", errored ? 0xff0000 : 0xffff00); - data.setFloat("scale", 0.5F); - data.setString("text", id); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, pos.xCoord, pos.yCoord, pos.zCoord), new TargetPoint(world.provider.dimensionId, pos.xCoord, pos.yCoord, pos.zCoord, radius)); - } - - for(IEnergyConnector subscriber : network.getSubscribers()) { - Vec3 pos = subscriber.getDebugParticlePos(); - - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "debug"); - data.setInteger("color", 0x0000ff); - data.setFloat("scale", 1.5F); - data.setString("text", id); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, pos.xCoord, pos.yCoord, pos.zCoord), new TargetPoint(world.provider.dimensionId, pos.xCoord, pos.yCoord, pos.zCoord, radius)); - } - - return true; + return false; } private static final int radius = 20; diff --git a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java index 52222f734..57dadbfde 100644 --- a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java +++ b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java @@ -1191,17 +1191,6 @@ public class ItemRenderLibrary { GL11.glShadeModel(GL11.GL_FLAT); }}); - renderers.put(Item.getItemFromBlock(ModBlocks.machine_electrolyser), new ItemRenderBase( ) { - public void renderInventory() { - GL11.glScaled(3, 3, 3); - } - public void renderCommon() { - GL11.glScaled(0.5, 0.5, 0.5); - GL11.glShadeModel(GL11.GL_SMOOTH); - bindTexture(ResourceManager.electrolyser_tex); ResourceManager.electrolyser.renderAll(); - GL11.glShadeModel(GL11.GL_FLAT); - }}); - renderers.put(Item.getItemFromBlock(ModBlocks.red_pylon_large), new ItemRenderBase( ) { public void renderInventory() { GL11.glTranslated(0, -5, 0); diff --git a/src/main/java/com/hbm/render/loader/ModelRendererObj.java b/src/main/java/com/hbm/render/loader/ModelRendererObj.java index e9ba2885f..4d916aa86 100644 --- a/src/main/java/com/hbm/render/loader/ModelRendererObj.java +++ b/src/main/java/com/hbm/render/loader/ModelRendererObj.java @@ -12,6 +12,9 @@ public class ModelRendererObj { public float rotationPointX; public float rotationPointY; public float rotationPointZ; + public float originPointX; + public float originPointY; + public float originPointZ; public float rotateAngleX; public float rotateAngleY; public float rotateAngleZ; @@ -35,9 +38,9 @@ public class ModelRendererObj { } public ModelRendererObj setRotationPoint(float x, float y, float z) { - this.rotationPointX = x; - this.rotationPointY = y; - this.rotationPointZ = z; + this.originPointX = this.rotationPointX = x; + this.originPointY = this.rotationPointY = y; + this.originPointZ = this.rotationPointZ = z; return this; } @@ -90,7 +93,7 @@ public class ModelRendererObj { GL11.glRotatef(this.rotateAngleX * (180F / (float) Math.PI), 1.0F, 0.0F, 0.0F); } - GL11.glTranslatef(-this.rotationPointX * scale, -this.rotationPointY * scale, -this.rotationPointZ * scale); + GL11.glTranslatef(-this.rotationPointX * scale, -this.rotationPointY * scale, -this.originPointZ * scale); //yes, that is correct GL11.glScalef(scale, scale, scale); diff --git a/src/main/java/com/hbm/render/loader/ModelRendererTest.java b/src/main/java/com/hbm/render/loader/ModelRendererTest.java new file mode 100644 index 000000000..0a8063a94 --- /dev/null +++ b/src/main/java/com/hbm/render/loader/ModelRendererTest.java @@ -0,0 +1,172 @@ +package com.hbm.render.loader; + +import org.lwjgl.opengl.GL11; + +import com.hbm.main.ResourceManager; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelBox; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.client.renderer.GLAllocation; +import net.minecraft.client.renderer.Tessellator; + +public class ModelRendererTest extends ModelRenderer { + + //TODO: blow up mojank HQ with a JDAM + private boolean compiled; + private int displayList; + + public ModelRendererTest(ModelBase p_i1173_1_) { + super(p_i1173_1_); + } + + public ModelRendererTest(ModelBase p_i1174_1_, int p_i1174_2_, int p_i1174_3_) { + this(p_i1174_1_); + this.setTextureOffset(p_i1174_2_, p_i1174_3_); + } + + @SideOnly(Side.CLIENT) + public void render(float p_78785_1_) { + if(!this.isHidden) { + if(this.showModel) { + if(!this.compiled) { + this.compileDisplayList(p_78785_1_); + } + + GL11.glTranslatef(this.offsetX, this.offsetY, this.offsetZ); + int i; + + if(this.rotateAngleX == 0.0F && this.rotateAngleY == 0.0F && this.rotateAngleZ == 0.0F) { + if(this.rotationPointX == 0.0F && this.rotationPointY == 0.0F && this.rotationPointZ == 0.0F) { + GL11.glCallList(this.displayList); + + if(this.childModels != null) { + for(i = 0; i < this.childModels.size(); ++i) { + ((ModelRenderer) this.childModels.get(i)).render(p_78785_1_); + } + } + } else { + GL11.glTranslatef(this.rotationPointX * p_78785_1_, this.rotationPointY * p_78785_1_, this.rotationPointZ * p_78785_1_); + GL11.glCallList(this.displayList); + + if(this.childModels != null) { + for(i = 0; i < this.childModels.size(); ++i) { + ((ModelRenderer) this.childModels.get(i)).render(p_78785_1_); + } + } + + GL11.glTranslatef(-this.rotationPointX * p_78785_1_, -this.rotationPointY * p_78785_1_, -this.rotationPointZ * p_78785_1_); + } + } else { + GL11.glPushMatrix(); + GL11.glTranslatef(this.rotationPointX * p_78785_1_, this.rotationPointY * p_78785_1_, this.rotationPointZ * p_78785_1_); + + if(this.rotateAngleZ != 0.0F) { + GL11.glRotatef(this.rotateAngleZ * (180F / (float) Math.PI), 0.0F, 0.0F, 1.0F); + } + + if(this.rotateAngleY != 0.0F) { + GL11.glRotatef(this.rotateAngleY * (180F / (float) Math.PI), 0.0F, 1.0F, 0.0F); + } + + if(this.rotateAngleX != 0.0F) { + GL11.glRotatef(this.rotateAngleX * (180F / (float) Math.PI), 1.0F, 0.0F, 0.0F); + } + + GL11.glPushMatrix(); + GL11.glScaled(0.1, 0.1, 0.1); + ResourceManager.chemplant_body.renderAll(); + GL11.glPopMatrix(); + + //GL11.glCallList(this.displayList); + + if(this.childModels != null) { + for(i = 0; i < this.childModels.size(); ++i) { + ((ModelRenderer) this.childModels.get(i)).render(p_78785_1_); + } + } + + GL11.glPopMatrix(); + } + + GL11.glTranslatef(-this.offsetX, -this.offsetY, -this.offsetZ); + } + } + } + + @SideOnly(Side.CLIENT) + public void renderWithRotation(float p_78791_1_) { + if(!this.isHidden) { + if(this.showModel) { + if(!this.compiled) { + this.compileDisplayList(p_78791_1_); + } + + GL11.glPushMatrix(); + GL11.glTranslatef(this.rotationPointX * p_78791_1_, this.rotationPointY * p_78791_1_, this.rotationPointZ * p_78791_1_); + + if(this.rotateAngleY != 0.0F) { + GL11.glRotatef(this.rotateAngleY * (180F / (float) Math.PI), 0.0F, 1.0F, 0.0F); + } + + if(this.rotateAngleX != 0.0F) { + GL11.glRotatef(this.rotateAngleX * (180F / (float) Math.PI), 1.0F, 0.0F, 0.0F); + } + + if(this.rotateAngleZ != 0.0F) { + GL11.glRotatef(this.rotateAngleZ * (180F / (float) Math.PI), 0.0F, 0.0F, 1.0F); + } + + GL11.glCallList(this.displayList); + GL11.glPopMatrix(); + } + } + } + + @SideOnly(Side.CLIENT) + public void postRender(float p_78794_1_) { + if(!this.isHidden) { + if(this.showModel) { + if(!this.compiled) { + this.compileDisplayList(p_78794_1_); + } + + if(this.rotateAngleX == 0.0F && this.rotateAngleY == 0.0F && this.rotateAngleZ == 0.0F) { + if(this.rotationPointX != 0.0F || this.rotationPointY != 0.0F || this.rotationPointZ != 0.0F) { + GL11.glTranslatef(this.rotationPointX * p_78794_1_, this.rotationPointY * p_78794_1_, this.rotationPointZ * p_78794_1_); + } + } else { + GL11.glTranslatef(this.rotationPointX * p_78794_1_, this.rotationPointY * p_78794_1_, this.rotationPointZ * p_78794_1_); + + if(this.rotateAngleZ != 0.0F) { + GL11.glRotatef(this.rotateAngleZ * (180F / (float) Math.PI), 0.0F, 0.0F, 1.0F); + } + + if(this.rotateAngleY != 0.0F) { + GL11.glRotatef(this.rotateAngleY * (180F / (float) Math.PI), 0.0F, 1.0F, 0.0F); + } + + if(this.rotateAngleX != 0.0F) { + GL11.glRotatef(this.rotateAngleX * (180F / (float) Math.PI), 1.0F, 0.0F, 0.0F); + } + } + } + } + } + + @SideOnly(Side.CLIENT) + private void compileDisplayList(float p_78788_1_) { + this.displayList = GLAllocation.generateDisplayLists(1); + GL11.glNewList(this.displayList, GL11.GL_COMPILE); + Tessellator tessellator = Tessellator.instance; + + for(int i = 0; i < this.cubeList.size(); ++i) { + ((ModelBox) this.cubeList.get(i)).render(tessellator, p_78788_1_); + } + + GL11.glEndList(); + this.compiled = true; + } +} diff --git a/src/main/java/com/hbm/render/model/ModelArmorBase.java b/src/main/java/com/hbm/render/model/ModelArmorBase.java index 81af0edba..b823ec015 100644 --- a/src/main/java/com/hbm/render/model/ModelArmorBase.java +++ b/src/main/java/com/hbm/render/model/ModelArmorBase.java @@ -40,6 +40,7 @@ public class ModelArmorBase extends ModelBiped { } public void setRotationAngles(float walkCycle, float walkAmplitude, float idleCycle, float headYaw, float headPitch, float scale, Entity entity) { + //super.setRotationAngles(walkCycle, walkAmplitude, idleCycle, headYaw, headPitch, scale, entity); head.rotateAngleY = headYaw / (180F / (float) Math.PI); head.rotateAngleX = headPitch / (180F / (float) Math.PI); diff --git a/src/main/java/com/hbm/render/tileentity/RenderElectrolyser.java b/src/main/java/com/hbm/render/tileentity/RenderElectrolyser.java index 9784333e1..f8054adc4 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderElectrolyser.java +++ b/src/main/java/com/hbm/render/tileentity/RenderElectrolyser.java @@ -3,19 +3,20 @@ package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; import com.hbm.main.ResourceManager; -import com.hbm.tileentity.machine.TileEntityElectrolyser; +import com.hbm.render.item.ItemRenderBase; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; -public class RenderElectrolyser extends TileEntitySpecialRenderer { +public class RenderElectrolyser extends TileEntitySpecialRenderer implements IItemRendererProvider { @Override public void renderTileEntityAt(TileEntity te, double x, double y, double z, float interp) { - TileEntityElectrolyser electrolyser = (TileEntityElectrolyser) te; - GL11.glPushMatrix(); GL11.glTranslated(x + 0.5D, y, z + 0.5D); @@ -40,4 +41,25 @@ public class RenderElectrolyser extends TileEntitySpecialRenderer { } + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.machine_electrolyser); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(-1, -1, 0); + GL11.glScaled(2.5, 2.5, 2.5); + } + public void renderCommon() { + GL11.glScaled(0.5, 0.5, 0.5); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.electrolyser_tex); ResourceManager.electrolyser.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } + }; + } + } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java b/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java index 26762787e..5f1801c59 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java @@ -368,6 +368,44 @@ public class TileEntityElectrolyser extends TileEntityMachineBase implements IEn this.decrStackSize(14, 1); } + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + this.power = nbt.getLong("power"); + this.progressFluid = nbt.getInteger("progressFluid"); + this.progressOre = nbt.getInteger("progressOre"); + this.usage = nbt.getInteger("usage"); + this.processFluidTime = nbt.getInteger("processFluidTime"); + this.processOreTime = nbt.getInteger("processOreTime"); + if(nbt.hasKey("leftType")) this.leftStack = new MaterialStack(Mats.matById.get(nbt.getInteger("leftType")), nbt.getInteger("leftAmount")); + else this.leftStack = null; + if(nbt.hasKey("rightType")) this.rightStack = new MaterialStack(Mats.matById.get(nbt.getInteger("rightType")), nbt.getInteger("rightAmount")); + else this.rightStack = null; + for(int i = 0; i < 4; i++) tanks[i].readFromNBT(nbt, "t" + i); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + nbt.setLong("power", this.power); + nbt.setInteger("progressFluid", this.progressFluid); + nbt.setInteger("progressOre", this.progressOre); + nbt.setInteger("usage", this.usage); + nbt.setInteger("processFluidTime", this.processFluidTime); + nbt.setInteger("processOreTime", this.processOreTime); + if(this.leftStack != null) { + nbt.setInteger("leftType", leftStack.material.id); + nbt.setInteger("leftAmount", leftStack.amount); + } + if(this.rightStack != null) { + nbt.setInteger("rightType", rightStack.material.id); + nbt.setInteger("rightAmount", rightStack.amount); + } + for(int i = 0; i < 4; i++) tanks[i].writeToNBT(nbt, "t" + i); + } + AxisAlignedBB bb = null; @Override diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java index f13f34952..9ec5ccd87 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java @@ -11,6 +11,8 @@ import com.hbm.items.ModItems; import com.hbm.items.machine.ItemRBMKRod; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole.ColumnType; import com.hbm.util.Compat; +import com.hbm.util.ParticleUtil; + import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -83,11 +85,18 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM super.updateEntity(); - if(this.heat > this.maxHeat() && !RBMKDials.getMeltdownsDisabled(worldObj)) { - this.meltdown(); + if(this.heat > this.maxHeat()) { + + if(RBMKDials.getMeltdownsDisabled(worldObj)) { + ParticleUtil.spawnGasFlame(worldObj, xCoord + 0.5, yCoord + RBMKDials.getColumnHeight(worldObj) + 0.5, zCoord + 0.5, 0, 0.2, 0); + } else { + this.meltdown(); + } return; } + if(this.heat > 10_000) this.heat = 10_000; + //for spreading, we want the buffered flux to be 0 because we want to know exactly how much gets reflected back this.fluxFast = 0; this.fluxSlow = 0; diff --git a/src/main/resources/assets/hbm/models/armor/envsuit.obj b/src/main/resources/assets/hbm/models/armor/envsuit.obj index 6a6abae64..d3df05777 100644 --- a/src/main/resources/assets/hbm/models/armor/envsuit.obj +++ b/src/main/resources/assets/hbm/models/armor/envsuit.obj @@ -1,5 +1,385 @@ # Blender v2.79 (sub 0) OBJ File: 'envsuit_scaled.blend' # www.blender.org +o LeftFoot +v -0.100000 23.250000 -3.675000 +v 4.100000 23.250000 -3.675000 +v -0.100000 24.299999 -3.675000 +v 4.100000 24.299999 -3.675000 +v 4.100000 22.199999 -2.625000 +v -0.100000 22.200001 -2.625000 +v -0.625000 22.200001 -2.100000 +v 4.625000 22.199999 -2.100000 +v -0.625000 22.200001 2.100000 +v 4.625000 22.199999 2.100000 +v 4.100000 22.199999 2.625000 +v -0.100000 22.200001 2.625000 +v -0.100000 22.200001 2.100000 +v 4.100000 22.199999 2.100000 +v -0.100000 22.200001 -2.100000 +v 4.100000 22.199999 -2.100000 +v 4.100000 24.299999 -2.625000 +v 4.625000 24.299999 -2.100000 +v -0.100000 24.299999 -2.625000 +v -0.625000 24.299999 -2.100000 +v 4.625000 24.299999 2.100000 +v 4.100000 24.299999 2.625000 +v -0.625000 24.299999 2.100000 +v -0.100000 24.299999 2.625000 +v 1.475000 20.110407 -3.209024 +v 2.525000 20.110407 -3.209024 +v 1.475000 20.469528 -4.195702 +v 2.525000 20.469528 -4.195702 +v 0.425000 23.070438 -2.131661 +v 3.575000 23.070438 -2.131661 +v 0.425000 23.429560 -3.118338 +v 3.575000 23.429560 -3.118338 +v 2.525000 23.070438 -2.131661 +v 2.525000 23.429560 -3.118338 +v 1.475000 23.070438 -2.131661 +v 1.475000 23.429560 -3.118338 +v 2.000000 21.097084 -2.849903 +v 2.000000 21.456205 -3.836581 +vt 0.979167 0.025000 +vt 0.791667 -0.000000 +vt 0.770833 0.225000 +vt 0.791667 0.300000 +vt 0.958333 0.250000 +vt 0.791667 0.250000 +vt 0.958333 0.300000 +vt 0.791667 0.350000 +vt 0.958333 0.350000 +vt 0.791667 0.400000 +vt 0.958333 0.400000 +vt 0.750000 0.300000 +vt 1.000000 0.300000 +vt 0.562500 0.100000 +vt 0.395833 0.125000 +vt 0.562500 0.125000 +vt 0.208333 0.100000 +vt 0.375000 0.125000 +vt 0.375000 0.100000 +vt 0.375000 0.125000 +vt 0.395833 0.100000 +vt 0.187500 0.100000 +vt 0.020833 0.125000 +vt 0.187500 0.125000 +vt 0.187500 0.125000 +vt 0.208333 0.125000 +vt 0.583333 0.100000 +vt 0.562500 0.125000 +vt 0.583333 0.125000 +vt 0.020833 0.100000 +vt -0.000000 0.125000 +vt 0.750000 0.125000 +vt 0.750000 0.100000 +vt 0.583333 0.000000 +vt 0.750000 0.000000 +vt 0.187500 0.000000 +vt 0.208333 -0.000000 +vt 0.395833 -0.000000 +vt 0.375000 -0.000000 +vt 0.020833 0.000000 +vt -0.000000 0.100000 +vt 0.729167 0.900000 +vt 0.687500 0.950000 +vt 0.729167 0.950000 +vt 0.562500 0.900000 +vt 0.687500 0.900000 +vt 0.854167 0.950000 +vt 0.645833 0.850000 +vt 0.562500 0.800000 +vt 0.562500 0.850000 +vt 0.854167 0.850000 +vt 0.770833 0.800000 +vt 0.770833 0.850000 +vt 0.562500 0.950000 +vt 0.645833 1.000000 +vt 0.770833 1.000000 +vt 0.708333 1.000000 +vt 0.854167 0.900000 +vt 0.708333 0.850000 +vt 0.979167 0.225000 +vt 0.958333 -0.000000 +vt 0.770833 0.025000 +vt 0.750000 0.400000 +vt 1.000000 0.400000 +vt 0.562500 0.000000 +vt -0.000000 0.000000 +vt 0.645833 0.800000 +vt 0.854167 0.800000 +vt 0.562500 1.000000 +vt 0.854167 1.000000 +vn 0.0000 1.0000 -0.0000 +vn 0.0000 0.0000 -1.0000 +vn -0.0000 -0.7071 -0.7071 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.0000 -1.0000 0.0000 +vn -0.7071 0.0000 -0.7071 +vn 0.0000 0.0000 1.0000 +vn 0.7071 0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 0.7071 +vn 0.0000 -0.9397 -0.3420 +vn 0.9487 -0.2972 -0.1082 +vn -0.9487 -0.2972 -0.1082 +vn -0.9701 0.2279 0.0830 +vn 0.9701 0.2279 0.0830 +vn 0.0000 -0.3420 0.9397 +vn -0.0000 0.3420 -0.9397 +s off +f 23/1/1 22/2/1 18/3/1 +f 4/4/1 19/5/1 17/6/1 +f 3/7/2 2/8/2 1/9/2 +f 1/9/3 5/10/3 6/11/3 +f 17/12/4 2/8/4 4/4/4 +f 1/9/5 19/13/5 3/7/5 +f 6/14/6 16/15/6 15/16/6 +f 10/17/6 16/18/6 8/19/6 +f 8/20/6 16/15/6 5/21/6 +f 11/22/6 13/23/6 14/24/6 +f 11/25/6 14/26/6 10/17/6 +f 7/27/6 6/28/6 15/29/6 +f 12/30/6 9/31/6 13/23/6 +f 7/27/6 13/32/6 9/33/6 +f 20/34/7 6/14/7 7/27/7 +f 23/35/5 7/27/5 9/33/5 +f 22/36/8 12/30/8 11/22/8 +f 21/37/9 11/22/9 10/17/9 +f 17/38/10 8/19/10 5/21/10 +f 18/39/4 10/17/4 8/19/4 +f 24/40/11 9/41/11 12/30/11 +f 27/42/12 26/43/12 25/44/12 +f 32/45/13 26/43/13 28/46/13 +f 29/47/14 27/42/14 25/44/14 +f 38/48/15 33/49/15 34/50/15 +f 36/51/16 37/52/16 38/53/16 +f 30/54/17 37/55/17 26/43/17 +f 37/56/17 29/47/17 25/44/17 +f 26/43/17 37/57/17 25/44/17 +f 31/58/18 38/53/18 27/42/18 +f 32/45/18 38/48/18 34/50/18 +f 27/42/18 38/59/18 28/46/18 +f 18/3/1 17/6/1 19/5/1 +f 19/5/1 20/60/1 23/1/1 +f 23/1/1 24/61/1 22/2/1 +f 22/2/1 21/62/1 18/3/1 +f 18/3/1 19/5/1 23/1/1 +f 4/4/1 3/7/1 19/5/1 +f 3/7/2 4/4/2 2/8/2 +f 1/9/3 2/8/3 5/10/3 +f 17/12/4 5/63/4 2/8/4 +f 1/9/5 6/64/5 19/13/5 +f 6/14/6 5/21/6 16/15/6 +f 10/17/6 14/26/6 16/18/6 +f 11/22/6 12/30/6 13/23/6 +f 7/27/6 15/29/6 13/32/6 +f 20/34/7 19/65/7 6/14/7 +f 23/35/5 20/34/5 7/27/5 +f 22/36/8 24/40/8 12/30/8 +f 21/37/9 22/36/9 11/22/9 +f 17/38/10 18/39/10 8/19/10 +f 18/39/4 21/37/4 10/17/4 +f 24/40/11 23/66/11 9/41/11 +f 27/42/12 28/46/12 26/43/12 +f 32/45/13 30/54/13 26/43/13 +f 29/47/14 31/58/14 27/42/14 +f 38/48/15 37/67/15 33/49/15 +f 36/51/16 35/68/16 37/52/16 +f 30/54/17 33/69/17 37/55/17 +f 37/56/17 35/70/17 29/47/17 +f 31/58/18 36/51/18 38/53/18 +f 32/45/18 28/46/18 38/48/18 +o RightFoot +v 0.100000 23.250000 -3.675000 +v -4.100000 23.250000 -3.675000 +v 0.100000 24.299999 -3.675000 +v -4.100000 24.299999 -3.675000 +v -4.100000 22.200001 -2.625000 +v 0.100000 22.200001 -2.625000 +v 0.625000 22.200001 -2.100000 +v -4.625000 22.200001 -2.100000 +v 0.625000 22.200001 2.100000 +v -4.625000 22.200001 2.100000 +v -4.100000 22.200001 2.625000 +v 0.100000 22.200001 2.625000 +v 0.100000 22.200001 2.100000 +v -4.100000 22.200001 2.100000 +v 0.100000 22.200001 -2.100000 +v -4.100000 22.200001 -2.100000 +v -4.100000 24.299999 -2.625000 +v -4.625000 24.299999 -2.100000 +v 0.100000 24.299999 -2.625000 +v 0.625000 24.299999 -2.100000 +v -4.625000 24.299999 2.100000 +v -4.100000 24.299999 2.625000 +v 0.625000 24.299999 2.100000 +v 0.100000 24.299999 2.625000 +v -1.475000 20.110409 -3.209024 +v -2.525000 20.110409 -3.209024 +v -1.475000 20.469528 -4.195702 +v -2.525000 20.469528 -4.195702 +v -0.425000 23.070438 -2.131661 +v -3.575000 23.070440 -2.131661 +v -0.425000 23.429560 -3.118338 +v -3.575000 23.429560 -3.118338 +v -2.525000 23.070440 -2.131661 +v -2.525000 23.429560 -3.118338 +v -1.475000 23.070440 -2.131661 +v -1.475000 23.429560 -3.118338 +v -2.000000 21.097086 -2.849903 +v -2.000000 21.456205 -3.836581 +vt 0.791667 -0.000000 +vt 0.979167 0.025000 +vt 0.958333 0.250000 +vt 0.791667 0.300000 +vt 0.791667 0.250000 +vt 0.791667 0.350000 +vt 0.958333 0.300000 +vt 0.958333 0.350000 +vt 0.791667 0.400000 +vt 0.958333 0.400000 +vt 0.750000 0.300000 +vt 1.000000 0.300000 +vt 0.395833 0.125000 +vt 0.562500 0.100000 +vt 0.562500 0.125000 +vt 0.375000 0.125000 +vt 0.208333 0.100000 +vt 0.375000 0.100000 +vt 0.375000 0.125000 +vt 0.395833 0.100000 +vt 0.020833 0.125000 +vt 0.187500 0.100000 +vt 0.187500 0.125000 +vt 0.187500 0.125000 +vt 0.208333 0.125000 +vt 0.583333 0.100000 +vt 0.583333 0.125000 +vt 0.562500 0.125000 +vt 0.020833 0.100000 +vt -0.000000 0.125000 +vt 0.750000 0.125000 +vt 0.750000 0.100000 +vt 0.562500 0.000000 +vt 0.583333 0.000000 +vt 0.750000 0.000000 +vt 0.187500 0.000000 +vt 0.208333 -0.000000 +vt 0.395833 -0.000000 +vt 0.375000 -0.000000 +vt -0.000000 0.100000 +vt 0.020833 0.000000 +vt 0.687500 0.950000 +vt 0.729167 0.900000 +vt 0.729167 0.950000 +vt 0.562500 0.900000 +vt 0.687500 0.900000 +vt 0.854167 0.900000 +vt 0.854167 0.950000 +vt 0.562500 0.850000 +vt 0.645833 0.800000 +vt 0.645833 0.850000 +vt 0.854167 0.850000 +vt 0.770833 0.800000 +vt 0.854167 0.800000 +vt 0.645833 1.000000 +vt 0.562500 0.950000 +vt 0.770833 1.000000 +vt 0.708333 1.000000 +vt 0.770833 0.850000 +vt 0.708333 0.850000 +vt 0.770833 0.225000 +vt 0.770833 0.025000 +vt 0.958333 -0.000000 +vt 0.979167 0.225000 +vt 0.750000 0.400000 +vt 1.000000 0.400000 +vt -0.000000 0.000000 +vt 0.562500 0.800000 +vt 0.562500 1.000000 +vt 0.854167 1.000000 +vn 0.0000 1.0000 -0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -0.7071 -0.7071 +vn -1.0000 0.0000 0.0000 +vn 1.0000 -0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.7071 -0.0000 -0.7071 +vn 0.0000 0.0000 1.0000 +vn -0.7071 0.0000 0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 -0.0000 0.7071 +vn 0.0000 -0.9397 -0.3420 +vn -0.9487 -0.2972 -0.1082 +vn 0.9487 -0.2972 -0.1082 +vn 0.9701 0.2279 0.0830 +vn -0.9701 0.2279 0.0830 +vn -0.0000 -0.3420 0.9397 +vn 0.0000 0.3420 -0.9397 +s off +f 60/71/19 61/72/19 57/73/19 +f 57/73/19 42/74/19 55/75/19 +f 40/76/20 41/77/20 39/78/20 +f 43/79/21 39/78/21 44/80/21 +f 40/76/22 55/81/22 42/74/22 +f 57/82/23 39/78/23 41/77/23 +f 54/83/24 44/84/24 53/85/24 +f 54/86/24 48/87/24 46/88/24 +f 46/89/24 43/90/24 54/83/24 +f 51/91/24 49/92/24 52/93/24 +f 49/94/24 48/87/24 52/95/24 +f 45/96/24 53/97/24 44/98/24 +f 50/99/24 51/91/24 47/100/24 +f 51/101/24 45/96/24 47/102/24 +f 45/96/25 57/103/25 58/104/25 +f 45/96/23 61/105/23 47/102/23 +f 50/99/26 60/106/26 49/92/26 +f 49/92/27 59/107/27 48/87/27 +f 46/88/28 55/108/28 43/90/28 +f 48/87/22 56/109/22 46/88/22 +f 47/110/29 62/111/29 50/99/29 +f 64/112/30 65/113/30 63/114/30 +f 64/112/31 70/115/31 66/116/31 +f 63/114/32 69/117/32 67/118/32 +f 72/119/33 75/120/33 76/121/33 +f 74/122/34 75/123/34 73/124/34 +f 75/125/35 68/126/35 64/112/35 +f 67/118/35 75/127/35 63/114/35 +f 64/112/35 63/114/35 75/128/35 +f 76/129/36 69/117/36 65/113/36 +f 70/115/36 76/121/36 66/116/36 +f 65/113/36 66/116/36 76/130/36 +f 57/73/19 55/75/19 56/131/19 +f 56/131/19 59/132/19 60/71/19 +f 60/71/19 62/133/19 61/72/19 +f 61/72/19 58/134/19 57/73/19 +f 57/73/19 56/131/19 60/71/19 +f 57/73/19 41/77/19 42/74/19 +f 40/76/20 42/74/20 41/77/20 +f 43/79/21 40/76/21 39/78/21 +f 40/76/22 43/135/22 55/81/22 +f 57/82/23 44/136/23 39/78/23 +f 54/83/24 43/90/24 44/84/24 +f 54/86/24 52/95/24 48/87/24 +f 51/91/24 50/99/24 49/92/24 +f 51/101/24 53/97/24 45/96/24 +f 45/96/25 44/84/25 57/103/25 +f 45/96/23 58/104/23 61/105/23 +f 50/99/26 62/111/26 60/106/26 +f 49/92/27 60/106/27 59/107/27 +f 46/88/28 56/109/28 55/108/28 +f 48/87/22 59/107/22 56/109/22 +f 47/110/29 61/137/29 62/111/29 +f 64/112/30 66/116/30 65/113/30 +f 64/112/31 68/126/31 70/115/31 +f 63/114/32 65/113/32 69/117/32 +f 72/119/33 71/138/33 75/120/33 +f 74/122/34 76/129/34 75/123/34 +f 75/125/35 71/139/35 68/126/35 +f 67/118/35 73/140/35 75/127/35 +f 76/129/36 74/122/36 69/117/36 +f 70/115/36 72/119/36 76/121/36 o Lamps v 4.199997 -9.250000 -2.625000 v 2.099997 -9.250000 -2.625000 @@ -19,10 +399,10 @@ vt 0.535712 0.499897 vt 0.401809 0.500103 vn 0.0000 0.3162 -0.9487 s off -f 4/1/1 1/2/1 3/3/1 -f 7/4/1 6/5/1 5/6/1 -f 4/1/1 2/7/1 1/2/1 -f 7/4/1 8/8/1 6/5/1 +f 80/141/37 77/142/37 79/143/37 +f 83/144/37 82/145/37 81/146/37 +f 80/141/37 78/147/37 77/142/37 +f 83/144/37 84/148/37 82/145/37 o Chest v 4.199999 12.299999 2.100000 v -4.200001 12.299999 2.100000 @@ -271,131 +651,131 @@ vn 0.8321 0.0000 -0.5547 vn 0.0000 -0.4472 -0.8944 vn 0.0000 0.7071 -0.7071 s off -f 11/9/2 10/10/2 9/11/2 -f 14/12/3 15/13/3 16/14/3 -f 20/15/4 10/16/4 12/17/4 -f 19/18/3 12/17/3 11/9/3 -f 9/19/5 19/18/5 11/9/5 -f 10/16/6 17/20/6 9/21/6 -f 21/22/2 20/23/2 19/24/2 -f 24/25/2 17/26/2 18/27/2 -f 25/28/2 19/18/2 17/29/2 -f 19/18/2 26/30/2 21/31/2 -f 17/26/2 23/32/2 25/33/2 -f 20/34/2 27/35/2 18/36/2 -f 18/36/2 27/35/2 24/37/2 -f 22/38/2 28/39/2 20/23/2 -f 26/30/7 29/40/7 21/22/7 -f 30/41/8 28/42/8 22/38/8 -f 36/43/4 27/35/4 28/42/4 -f 31/44/9 25/45/9 23/32/9 -f 29/40/3 22/38/3 21/22/3 -f 33/46/5 26/30/5 25/28/5 -f 35/47/10 24/25/10 27/35/10 -f 32/48/6 23/32/6 24/25/6 -f 39/49/11 37/50/11 38/51/11 -f 37/50/12 30/41/12 29/40/12 -f 38/52/13 34/53/13 33/46/13 -f 39/54/14 31/44/14 32/48/14 -f 40/55/15 35/47/15 36/43/15 -f 35/47/16 39/56/16 32/48/16 -f 36/43/17 30/41/17 40/57/17 -f 34/53/18 37/58/18 29/40/18 -f 33/59/19 31/44/19 38/60/19 -f 42/61/20 43/62/20 41/63/20 -f 43/62/21 45/64/21 41/63/21 -f 41/63/11 45/65/11 42/66/11 -f 43/62/22 44/67/22 47/68/22 -f 46/69/23 43/62/23 47/68/23 -f 48/70/3 16/14/3 15/13/3 -f 52/71/6 51/72/6 53/73/6 -f 53/73/6 55/74/6 52/71/6 -f 14/75/11 50/76/11 13/77/11 -f 49/78/24 53/73/24 16/14/24 -f 48/79/2 54/80/2 49/81/2 -f 16/14/5 51/72/5 14/12/5 -f 13/82/4 52/71/4 15/83/4 -f 15/83/25 55/84/25 48/85/25 -f 62/86/11 60/87/11 61/88/11 -f 58/89/3 63/90/3 59/91/3 -f 57/92/6 61/88/6 56/93/6 -f 62/86/15 75/94/15 63/90/15 -f 71/95/25 65/96/25 67/97/25 -f 68/98/24 66/99/24 64/100/24 -f 75/94/4 69/101/4 71/95/4 -f 72/102/5 70/103/5 68/98/5 -f 62/86/6 57/104/6 73/105/6 -f 69/101/6 57/106/6 65/107/6 -f 59/108/3 63/90/3 75/94/3 -f 71/95/3 59/109/3 75/94/3 -f 60/87/13 72/102/13 61/88/13 -f 60/87/3 58/110/3 74/111/3 -f 70/103/3 58/112/3 66/113/3 -f 56/114/6 61/88/6 72/102/6 -f 68/98/6 56/115/6 72/102/6 -f 82/116/6 80/117/6 81/118/6 -f 78/119/11 83/120/11 79/121/11 -f 77/122/2 81/118/2 76/123/2 -f 79/124/4 82/116/4 77/125/4 -f 76/126/5 80/117/5 78/127/5 -f 86/128/26 88/129/26 84/130/26 -f 85/131/27 89/132/27 87/133/27 -f 89/134/28 86/135/28 87/136/28 -f 87/136/29 84/137/29 85/138/29 -f 11/9/2 12/17/2 10/10/2 -f 14/12/3 13/139/3 15/13/3 -f 20/15/4 18/140/4 10/16/4 -f 19/18/3 20/15/3 12/17/3 -f 9/19/5 17/29/5 19/18/5 -f 10/16/6 18/140/6 17/20/6 -f 21/22/2 22/38/2 20/23/2 -f 24/25/2 23/32/2 17/26/2 -f 25/28/2 26/30/2 19/18/2 -f 20/34/2 28/42/2 27/35/2 -f 26/30/7 34/53/7 29/40/7 -f 30/41/8 36/43/8 28/42/8 -f 36/43/4 35/47/4 27/35/4 -f 31/44/9 33/59/9 25/45/9 -f 29/40/3 30/41/3 22/38/3 -f 33/46/5 34/53/5 26/30/5 -f 35/47/10 32/48/10 24/25/10 -f 32/48/6 31/44/6 23/32/6 -f 39/49/11 40/57/11 37/50/11 -f 37/50/12 40/57/12 30/41/12 -f 38/52/13 37/58/13 34/53/13 -f 39/54/14 38/60/14 31/44/14 -f 40/55/15 39/56/15 35/47/15 -f 42/61/20 44/67/20 43/62/20 -f 43/62/21 46/69/21 45/64/21 -f 48/70/3 49/141/3 16/14/3 -f 52/71/6 50/76/6 51/72/6 -f 53/73/6 54/80/6 55/74/6 -f 14/75/11 51/72/11 50/76/11 -f 49/78/24 54/142/24 53/73/24 -f 48/79/2 55/74/2 54/80/2 -f 16/14/5 53/73/5 51/72/5 -f 13/82/4 50/76/4 52/71/4 -f 15/83/25 52/71/25 55/84/25 -f 62/86/11 63/90/11 60/87/11 -f 58/89/3 60/87/3 63/90/3 -f 57/92/6 62/86/6 61/88/6 -f 62/86/15 73/105/15 75/94/15 -f 71/95/25 69/101/25 65/96/25 -f 68/98/24 70/103/24 66/99/24 -f 75/94/4 73/105/4 69/101/4 -f 72/102/5 74/111/5 70/103/5 -f 69/101/6 73/105/6 57/106/6 -f 71/95/3 67/143/3 59/109/3 -f 60/87/13 74/111/13 72/102/13 -f 70/103/3 74/111/3 58/112/3 -f 68/98/6 64/144/6 56/115/6 -f 82/116/6 83/120/6 80/117/6 -f 78/119/11 80/117/11 83/120/11 -f 77/122/2 82/116/2 81/118/2 -f 79/124/4 83/120/4 82/116/4 -f 76/126/5 81/118/5 80/117/5 -f 89/134/28 88/145/28 86/135/28 -f 87/136/29 86/135/29 84/137/29 +f 87/149/38 86/150/38 85/151/38 +f 90/152/39 91/153/39 92/154/39 +f 96/155/40 86/156/40 88/157/40 +f 95/158/39 88/157/39 87/149/39 +f 85/159/41 95/158/41 87/149/41 +f 86/156/42 93/160/42 85/161/42 +f 97/162/38 96/163/38 95/164/38 +f 100/165/38 93/166/38 94/167/38 +f 101/168/38 95/158/38 93/169/38 +f 95/158/38 102/170/38 97/171/38 +f 93/166/38 99/172/38 101/173/38 +f 96/174/38 103/175/38 94/176/38 +f 94/176/38 103/175/38 100/177/38 +f 98/178/38 104/179/38 96/163/38 +f 102/170/43 105/180/43 97/162/43 +f 106/181/44 104/182/44 98/178/44 +f 112/183/40 103/175/40 104/182/40 +f 107/184/45 101/185/45 99/172/45 +f 105/180/39 98/178/39 97/162/39 +f 109/186/41 102/170/41 101/168/41 +f 111/187/46 100/165/46 103/175/46 +f 108/188/42 99/172/42 100/165/42 +f 115/189/47 113/190/47 114/191/47 +f 113/190/48 106/181/48 105/180/48 +f 114/192/49 110/193/49 109/186/49 +f 115/194/50 107/184/50 108/188/50 +f 116/195/51 111/187/51 112/183/51 +f 111/187/52 115/196/52 108/188/52 +f 112/183/53 106/181/53 116/197/53 +f 110/193/54 113/198/54 105/180/54 +f 109/199/55 107/184/55 114/200/55 +f 118/201/56 119/202/56 117/203/56 +f 119/202/57 121/204/57 117/203/57 +f 117/203/47 121/205/47 118/206/47 +f 119/202/58 120/207/58 123/208/58 +f 122/209/59 119/202/59 123/208/59 +f 124/210/39 92/154/39 91/153/39 +f 128/211/42 127/212/42 129/213/42 +f 129/213/42 131/214/42 128/211/42 +f 90/215/47 126/216/47 89/217/47 +f 125/218/60 129/213/60 92/154/60 +f 124/219/38 130/220/38 125/221/38 +f 92/154/41 127/212/41 90/152/41 +f 89/222/40 128/211/40 91/223/40 +f 91/223/61 131/224/61 124/225/61 +f 138/226/47 136/227/47 137/228/47 +f 134/229/39 139/230/39 135/231/39 +f 133/232/42 137/228/42 132/233/42 +f 138/226/51 151/234/51 139/230/51 +f 147/235/61 141/236/61 143/237/61 +f 144/238/60 142/239/60 140/240/60 +f 151/234/40 145/241/40 147/235/40 +f 148/242/41 146/243/41 144/238/41 +f 138/226/42 133/244/42 149/245/42 +f 145/241/42 133/246/42 141/247/42 +f 135/248/39 139/230/39 151/234/39 +f 147/235/39 135/249/39 151/234/39 +f 136/227/49 148/242/49 137/228/49 +f 136/227/39 134/250/39 150/251/39 +f 146/243/39 134/252/39 142/253/39 +f 132/254/42 137/228/42 148/242/42 +f 144/238/42 132/255/42 148/242/42 +f 158/256/42 156/257/42 157/258/42 +f 154/259/47 159/260/47 155/261/47 +f 153/262/38 157/258/38 152/263/38 +f 155/264/40 158/256/40 153/265/40 +f 152/266/41 156/257/41 154/267/41 +f 162/268/62 164/269/62 160/270/62 +f 161/271/63 165/272/63 163/273/63 +f 165/274/64 162/275/64 163/276/64 +f 163/276/65 160/277/65 161/278/65 +f 87/149/38 88/157/38 86/150/38 +f 90/152/39 89/279/39 91/153/39 +f 96/155/40 94/280/40 86/156/40 +f 95/158/39 96/155/39 88/157/39 +f 85/159/41 93/169/41 95/158/41 +f 86/156/42 94/280/42 93/160/42 +f 97/162/38 98/178/38 96/163/38 +f 100/165/38 99/172/38 93/166/38 +f 101/168/38 102/170/38 95/158/38 +f 96/174/38 104/182/38 103/175/38 +f 102/170/43 110/193/43 105/180/43 +f 106/181/44 112/183/44 104/182/44 +f 112/183/40 111/187/40 103/175/40 +f 107/184/45 109/199/45 101/185/45 +f 105/180/39 106/181/39 98/178/39 +f 109/186/41 110/193/41 102/170/41 +f 111/187/46 108/188/46 100/165/46 +f 108/188/42 107/184/42 99/172/42 +f 115/189/47 116/197/47 113/190/47 +f 113/190/48 116/197/48 106/181/48 +f 114/192/49 113/198/49 110/193/49 +f 115/194/50 114/200/50 107/184/50 +f 116/195/51 115/196/51 111/187/51 +f 118/201/56 120/207/56 119/202/56 +f 119/202/57 122/209/57 121/204/57 +f 124/210/39 125/281/39 92/154/39 +f 128/211/42 126/216/42 127/212/42 +f 129/213/42 130/220/42 131/214/42 +f 90/215/47 127/212/47 126/216/47 +f 125/218/60 130/282/60 129/213/60 +f 124/219/38 131/214/38 130/220/38 +f 92/154/41 129/213/41 127/212/41 +f 89/222/40 126/216/40 128/211/40 +f 91/223/61 128/211/61 131/224/61 +f 138/226/47 139/230/47 136/227/47 +f 134/229/39 136/227/39 139/230/39 +f 133/232/42 138/226/42 137/228/42 +f 138/226/51 149/245/51 151/234/51 +f 147/235/61 145/241/61 141/236/61 +f 144/238/60 146/243/60 142/239/60 +f 151/234/40 149/245/40 145/241/40 +f 148/242/41 150/251/41 146/243/41 +f 145/241/42 149/245/42 133/246/42 +f 147/235/39 143/283/39 135/249/39 +f 136/227/49 150/251/49 148/242/49 +f 146/243/39 150/251/39 134/252/39 +f 144/238/42 140/284/42 132/255/42 +f 158/256/42 159/260/42 156/257/42 +f 154/259/47 156/257/47 159/260/47 +f 153/262/38 158/256/38 157/258/38 +f 155/264/40 159/260/40 158/256/40 +f 152/266/41 157/258/41 156/257/41 +f 165/274/64 164/285/64 162/275/64 +f 163/276/65 162/275/65 160/277/65 o LeftArm v 3.899999 12.299999 2.100000 v 3.899999 12.299999 -2.100000 @@ -763,246 +1143,246 @@ vn 0.5000 -0.8660 0.0000 vn 0.8660 0.5000 0.0000 vn -0.8660 -0.5000 0.0000 s off -f 197/146/30 199/147/30 93/148/30 -f 197/149/31 90/150/31 196/151/31 -f 198/152/32 194/153/32 92/154/32 -f 90/155/33 92/156/33 91/157/33 -f 199/147/34 92/158/34 93/159/34 -f 91/157/35 194/153/35 195/160/35 -f 96/161/33 98/162/33 94/163/33 -f 95/164/33 101/165/33 97/166/33 -f 97/167/33 102/168/33 96/169/33 -f 104/170/33 95/171/33 94/172/33 -f 100/173/33 95/174/33 105/175/33 -f 94/176/33 98/177/33 104/170/33 -f 96/178/33 102/179/33 99/180/33 -f 97/181/33 101/182/33 103/183/33 -f 103/183/36 110/184/36 102/168/36 -f 101/182/37 111/185/37 103/183/37 -f 98/177/38 112/186/38 104/170/38 -f 99/180/39 106/187/39 98/162/39 -f 112/186/40 105/188/40 104/170/40 -f 102/179/41 107/189/41 99/180/41 -f 105/175/42 108/190/42 100/173/42 -f 100/173/43 109/191/43 101/165/43 -f 114/192/44 117/193/44 115/194/44 -f 107/189/45 114/192/45 106/187/45 -f 117/195/46 110/184/46 111/185/46 -f 110/196/47 116/197/47 107/189/47 -f 108/190/48 117/198/48 109/191/48 -f 111/185/49 109/199/49 117/200/49 -f 112/186/50 115/201/50 113/202/50 -f 113/203/51 115/204/51 108/190/51 -f 112/186/52 106/205/52 114/206/52 -f 122/207/44 120/208/44 118/209/44 -f 125/210/44 119/211/44 121/212/44 -f 126/213/44 121/214/44 120/215/44 -f 119/216/44 128/217/44 118/218/44 -f 124/219/44 129/220/44 119/221/44 -f 118/222/44 128/217/44 122/223/44 -f 120/224/44 123/225/44 126/226/44 -f 121/227/44 127/228/44 125/229/44 -f 132/230/43 149/231/43 133/232/43 -f 142/233/39 151/234/39 150/235/39 -f 144/236/36 153/237/36 145/238/36 -f 144/236/41 150/235/41 152/239/41 -f 145/238/44 137/240/44 139/241/44 -f 144/236/44 134/242/44 142/233/44 -f 138/243/44 145/238/44 139/241/44 -f 143/244/44 140/245/44 131/246/44 -f 125/210/43 136/247/43 124/219/43 -f 127/228/37 137/240/37 125/229/37 -f 122/207/39 134/242/39 123/225/39 -f 135/248/44 142/233/44 134/242/44 -f 124/219/42 141/249/42 129/220/42 -f 129/250/40 140/245/40 128/217/40 -f 126/213/36 139/241/36 127/228/36 -f 128/217/38 135/251/38 122/223/38 -f 141/249/44 133/232/44 130/252/44 -f 123/225/41 138/253/41 126/226/41 -f 141/254/44 131/246/44 140/245/44 -f 137/255/44 133/232/44 136/247/44 -f 130/256/40 147/257/40 131/246/40 -f 145/238/37 148/258/37 132/230/37 -f 131/246/38 151/234/38 143/244/38 -f 133/232/42 146/259/42 130/252/42 -f 155/260/33 150/235/33 151/234/33 -f 152/239/33 154/261/33 158/262/33 -f 152/239/33 159/263/33 153/237/33 -f 153/237/33 157/264/33 148/258/33 -f 157/265/33 149/231/33 148/258/33 -f 149/231/33 161/266/33 146/259/33 -f 161/267/33 147/257/33 146/268/33 -f 160/269/33 151/234/33 147/257/33 -f 156/270/42 169/271/42 161/266/42 -f 158/272/36 167/273/36 159/263/36 -f 154/261/39 163/274/39 162/275/39 -f 159/263/37 165/276/37 157/264/37 -f 155/277/38 168/278/38 163/279/38 -f 161/267/40 168/278/40 160/269/40 -f 157/265/43 164/280/43 156/270/43 -f 154/261/41 166/281/41 158/262/41 -f 175/282/44 162/275/44 163/274/44 -f 162/275/44 176/283/44 166/281/44 -f 166/284/44 177/285/44 167/273/44 -f 165/276/44 177/285/44 172/286/44 -f 172/286/44 164/280/44 165/287/44 -f 173/288/44 169/271/44 164/280/44 -f 170/289/44 168/278/44 169/290/44 -f 168/278/44 175/282/44 163/279/44 -f 171/291/38 183/292/38 175/282/38 -f 174/293/41 184/294/41 176/283/41 -f 173/288/42 178/295/42 170/296/42 -f 170/289/40 179/297/40 171/291/40 -f 176/283/36 185/298/36 177/285/36 -f 177/285/37 180/299/37 172/286/37 -f 175/282/39 182/300/39 174/293/39 -f 172/286/43 181/301/43 173/288/43 -f 187/302/33 182/300/33 183/292/33 -f 184/294/33 186/303/33 190/304/33 -f 184/294/33 191/305/33 185/298/33 -f 185/298/33 189/306/33 180/299/33 -f 189/307/33 181/301/33 180/299/33 -f 181/301/33 193/308/33 178/295/33 -f 193/309/33 179/297/33 178/310/33 -f 192/311/33 183/292/33 179/297/33 -f 186/303/41 198/152/41 190/304/41 -f 188/312/42 201/313/42 193/308/42 -f 190/314/36 199/147/36 191/305/36 -f 187/302/39 194/153/39 186/303/39 -f 191/305/37 197/146/37 189/306/37 -f 192/311/38 195/315/38 187/316/38 -f 193/309/40 200/317/40 192/311/40 -f 189/307/43 196/151/43 188/312/43 -f 91/318/53 201/319/53 90/320/53 -f 201/313/54 196/151/54 90/321/54 -f 200/317/55 91/322/55 195/315/55 -f 118/209/39 96/161/39 94/163/39 -f 96/169/36 121/214/36 97/167/36 -f 97/166/43 119/211/43 95/164/43 -f 119/216/40 94/172/40 95/171/40 -f 208/323/36 206/324/36 207/325/36 -f 204/326/39 209/327/39 205/328/39 -f 203/329/43 207/325/43 202/330/43 -f 205/331/44 208/323/44 203/332/44 -f 202/333/33 206/324/33 204/334/33 -f 216/335/56 214/336/56 215/337/56 -f 210/338/57 214/336/57 212/339/57 -f 213/340/39 214/336/39 217/341/39 -f 211/342/43 215/337/43 210/338/43 -f 213/340/58 216/343/58 211/344/58 -f 197/149/31 93/345/31 90/150/31 -f 90/155/33 93/346/33 92/156/33 -f 199/147/34 198/347/34 92/158/34 -f 91/157/35 92/156/35 194/153/35 -f 96/161/33 99/180/33 98/162/33 -f 95/164/33 100/173/33 101/165/33 -f 97/167/33 103/183/33 102/168/33 -f 104/170/33 105/188/33 95/171/33 -f 103/183/36 111/185/36 110/184/36 -f 101/182/37 109/199/37 111/185/37 -f 98/177/38 106/205/38 112/186/38 -f 99/180/39 107/189/39 106/187/39 -f 112/186/40 113/202/40 105/188/40 -f 102/179/41 110/196/41 107/189/41 -f 105/175/42 113/203/42 108/190/42 -f 100/173/43 108/190/43 109/191/43 -f 114/192/44 116/348/44 117/193/44 -f 107/189/45 116/348/45 114/192/45 -f 117/195/46 116/349/46 110/184/46 -f 108/190/48 115/350/48 117/198/48 -f 112/186/50 114/351/50 115/201/50 -f 122/207/44 123/225/44 120/208/44 -f 125/210/44 124/219/44 119/211/44 -f 126/213/44 127/228/44 121/214/44 -f 119/216/44 129/250/44 128/217/44 -f 132/230/43 148/258/43 149/231/43 -f 142/233/39 143/244/39 151/234/39 -f 144/236/36 152/239/36 153/237/36 -f 144/236/41 142/233/41 150/235/41 -f 145/238/44 132/230/44 137/240/44 -f 144/236/44 138/253/44 134/242/44 -f 138/243/44 144/236/44 145/238/44 -f 143/244/44 135/251/44 140/245/44 -f 125/210/43 137/255/43 136/247/43 -f 127/228/37 139/241/37 137/240/37 -f 122/207/39 135/248/39 134/242/39 -f 135/248/44 143/244/44 142/233/44 -f 124/219/42 136/247/42 141/249/42 -f 129/250/40 141/254/40 140/245/40 -f 126/213/36 138/243/36 139/241/36 -f 128/217/38 140/245/38 135/251/38 -f 141/249/44 136/247/44 133/232/44 -f 123/225/41 134/242/41 138/253/41 -f 141/254/44 130/256/44 131/246/44 -f 137/255/44 132/230/44 133/232/44 -f 130/256/40 146/268/40 147/257/40 -f 145/238/37 153/237/37 148/258/37 -f 131/246/38 147/257/38 151/234/38 -f 133/232/42 149/231/42 146/259/42 -f 155/260/33 154/261/33 150/235/33 -f 152/239/33 150/235/33 154/261/33 -f 152/239/33 158/272/33 159/263/33 -f 153/237/33 159/263/33 157/264/33 -f 157/265/33 156/270/33 149/231/33 -f 149/231/33 156/270/33 161/266/33 -f 161/267/33 160/269/33 147/257/33 -f 160/269/33 155/277/33 151/234/33 -f 156/270/42 164/280/42 169/271/42 -f 158/272/36 166/284/36 167/273/36 -f 154/261/39 155/260/39 163/274/39 -f 159/263/37 167/273/37 165/276/37 -f 155/277/38 160/269/38 168/278/38 -f 161/267/40 169/290/40 168/278/40 -f 157/265/43 165/287/43 164/280/43 -f 154/261/41 162/275/41 166/281/41 -f 175/282/44 174/293/44 162/275/44 -f 162/275/44 174/293/44 176/283/44 -f 166/284/44 176/283/44 177/285/44 -f 165/276/44 167/273/44 177/285/44 -f 172/286/44 173/288/44 164/280/44 -f 173/288/44 170/296/44 169/271/44 -f 170/289/44 171/291/44 168/278/44 -f 168/278/44 171/291/44 175/282/44 -f 171/291/38 179/297/38 183/292/38 -f 174/293/41 182/300/41 184/294/41 -f 173/288/42 181/301/42 178/295/42 -f 170/289/40 178/310/40 179/297/40 -f 176/283/36 184/294/36 185/298/36 -f 177/285/37 185/298/37 180/299/37 -f 175/282/39 183/292/39 182/300/39 -f 172/286/43 180/299/43 181/301/43 -f 187/302/33 186/303/33 182/300/33 -f 184/294/33 182/300/33 186/303/33 -f 184/294/33 190/314/33 191/305/33 -f 185/298/33 191/305/33 189/306/33 -f 189/307/33 188/312/33 181/301/33 -f 181/301/33 188/312/33 193/308/33 -f 193/309/33 192/311/33 179/297/33 -f 192/311/33 187/316/33 183/292/33 -f 186/303/41 194/153/41 198/152/41 -f 188/312/42 196/151/42 201/313/42 -f 190/314/36 198/347/36 199/147/36 -f 187/302/39 195/160/39 194/153/39 -f 191/305/37 199/147/37 197/146/37 -f 192/311/38 200/317/38 195/315/38 -f 193/309/40 201/319/40 200/317/40 -f 189/307/43 197/149/43 196/151/43 -f 91/318/53 200/317/53 201/319/53 -f 118/209/39 120/208/39 96/161/39 -f 96/169/36 120/215/36 121/214/36 -f 97/166/43 121/212/43 119/211/43 -f 119/216/40 118/218/40 94/172/40 -f 208/323/36 209/327/36 206/324/36 -f 204/326/39 206/324/39 209/327/39 -f 203/329/43 208/323/43 207/325/43 -f 205/331/44 209/327/44 208/323/44 -f 202/333/33 207/325/33 206/324/33 -f 216/335/56 217/352/56 214/336/56 -f 210/338/57 215/337/57 214/336/57 -f 213/340/39 212/339/39 214/336/39 -f 211/342/43 216/353/43 215/337/43 -f 213/340/58 217/341/58 216/343/58 +f 273/286/66 275/287/66 169/288/66 +f 273/289/67 166/290/67 272/291/67 +f 274/292/68 270/293/68 168/294/68 +f 166/295/69 168/296/69 167/297/69 +f 275/287/70 168/298/70 169/299/70 +f 167/297/71 270/293/71 271/300/71 +f 172/301/69 174/302/69 170/303/69 +f 171/304/69 177/305/69 173/306/69 +f 173/307/69 178/308/69 172/309/69 +f 180/310/69 171/311/69 170/312/69 +f 176/313/69 171/314/69 181/315/69 +f 170/316/69 174/317/69 180/310/69 +f 172/318/69 178/319/69 175/320/69 +f 173/321/69 177/322/69 179/323/69 +f 179/323/72 186/324/72 178/308/72 +f 177/322/73 187/325/73 179/323/73 +f 174/317/74 188/326/74 180/310/74 +f 175/320/75 182/327/75 174/302/75 +f 188/326/76 181/328/76 180/310/76 +f 178/319/77 183/329/77 175/320/77 +f 181/315/78 184/330/78 176/313/78 +f 176/313/79 185/331/79 177/305/79 +f 190/332/80 193/333/80 191/334/80 +f 183/329/81 190/332/81 182/327/81 +f 193/335/82 186/324/82 187/325/82 +f 186/336/83 192/337/83 183/329/83 +f 184/330/84 193/338/84 185/331/84 +f 187/325/85 185/339/85 193/340/85 +f 188/326/86 191/341/86 189/342/86 +f 189/343/87 191/344/87 184/330/87 +f 188/326/88 182/345/88 190/346/88 +f 198/347/80 196/348/80 194/349/80 +f 201/350/80 195/351/80 197/352/80 +f 202/353/80 197/354/80 196/355/80 +f 195/356/80 204/357/80 194/358/80 +f 200/359/80 205/360/80 195/361/80 +f 194/362/80 204/357/80 198/363/80 +f 196/364/80 199/365/80 202/366/80 +f 197/367/80 203/368/80 201/369/80 +f 208/370/79 225/371/79 209/372/79 +f 218/373/75 227/374/75 226/375/75 +f 220/376/72 229/377/72 221/378/72 +f 220/376/77 226/375/77 228/379/77 +f 221/378/80 213/380/80 215/381/80 +f 220/376/80 210/382/80 218/373/80 +f 214/383/80 221/378/80 215/381/80 +f 219/384/80 216/385/80 207/386/80 +f 201/350/79 212/387/79 200/359/79 +f 203/368/73 213/380/73 201/369/73 +f 198/347/75 210/382/75 199/365/75 +f 211/388/80 218/373/80 210/382/80 +f 200/359/78 217/389/78 205/360/78 +f 205/390/76 216/385/76 204/357/76 +f 202/353/72 215/381/72 203/368/72 +f 204/357/74 211/391/74 198/363/74 +f 217/389/80 209/372/80 206/392/80 +f 199/365/77 214/393/77 202/366/77 +f 217/394/80 207/386/80 216/385/80 +f 213/395/80 209/372/80 212/387/80 +f 206/396/76 223/397/76 207/386/76 +f 221/378/73 224/398/73 208/370/73 +f 207/386/74 227/374/74 219/384/74 +f 209/372/78 222/399/78 206/392/78 +f 231/400/69 226/375/69 227/374/69 +f 228/379/69 230/401/69 234/402/69 +f 228/379/69 235/403/69 229/377/69 +f 229/377/69 233/404/69 224/398/69 +f 233/405/69 225/371/69 224/398/69 +f 225/371/69 237/406/69 222/399/69 +f 237/407/69 223/397/69 222/408/69 +f 236/409/69 227/374/69 223/397/69 +f 232/410/78 245/411/78 237/406/78 +f 234/412/72 243/413/72 235/403/72 +f 230/401/75 239/414/75 238/415/75 +f 235/403/73 241/416/73 233/404/73 +f 231/417/74 244/418/74 239/419/74 +f 237/407/76 244/418/76 236/409/76 +f 233/405/79 240/420/79 232/410/79 +f 230/401/77 242/421/77 234/402/77 +f 251/422/80 238/415/80 239/414/80 +f 238/415/80 252/423/80 242/421/80 +f 242/424/80 253/425/80 243/413/80 +f 241/416/80 253/425/80 248/426/80 +f 248/426/80 240/420/80 241/427/80 +f 249/428/80 245/411/80 240/420/80 +f 246/429/80 244/418/80 245/430/80 +f 244/418/80 251/422/80 239/419/80 +f 247/431/74 259/432/74 251/422/74 +f 250/433/77 260/434/77 252/423/77 +f 249/428/78 254/435/78 246/436/78 +f 246/429/76 255/437/76 247/431/76 +f 252/423/72 261/438/72 253/425/72 +f 253/425/73 256/439/73 248/426/73 +f 251/422/75 258/440/75 250/433/75 +f 248/426/79 257/441/79 249/428/79 +f 263/442/69 258/440/69 259/432/69 +f 260/434/69 262/443/69 266/444/69 +f 260/434/69 267/445/69 261/438/69 +f 261/438/69 265/446/69 256/439/69 +f 265/447/69 257/441/69 256/439/69 +f 257/441/69 269/448/69 254/435/69 +f 269/449/69 255/437/69 254/450/69 +f 268/451/69 259/432/69 255/437/69 +f 262/443/77 274/292/77 266/444/77 +f 264/452/78 277/453/78 269/448/78 +f 266/454/72 275/287/72 267/445/72 +f 263/442/75 270/293/75 262/443/75 +f 267/445/73 273/286/73 265/446/73 +f 268/451/74 271/455/74 263/456/74 +f 269/449/76 276/457/76 268/451/76 +f 265/447/79 272/291/79 264/452/79 +f 167/458/89 277/459/89 166/460/89 +f 277/453/90 272/291/90 166/461/90 +f 276/457/91 167/462/91 271/455/91 +f 194/349/75 172/301/75 170/303/75 +f 172/309/72 197/354/72 173/307/72 +f 173/306/79 195/351/79 171/304/79 +f 195/356/76 170/312/76 171/311/76 +f 284/463/72 282/464/72 283/465/72 +f 280/466/75 285/467/75 281/468/75 +f 279/469/79 283/465/79 278/470/79 +f 281/471/80 284/463/80 279/472/80 +f 278/473/69 282/464/69 280/474/69 +f 292/475/92 290/476/92 291/477/92 +f 286/478/93 290/476/93 288/479/93 +f 289/480/75 290/476/75 293/481/75 +f 287/482/79 291/477/79 286/478/79 +f 289/480/94 292/483/94 287/484/94 +f 273/289/67 169/485/67 166/290/67 +f 166/295/69 169/486/69 168/296/69 +f 275/287/70 274/487/70 168/298/70 +f 167/297/71 168/296/71 270/293/71 +f 172/301/69 175/320/69 174/302/69 +f 171/304/69 176/313/69 177/305/69 +f 173/307/69 179/323/69 178/308/69 +f 180/310/69 181/328/69 171/311/69 +f 179/323/72 187/325/72 186/324/72 +f 177/322/73 185/339/73 187/325/73 +f 174/317/74 182/345/74 188/326/74 +f 175/320/75 183/329/75 182/327/75 +f 188/326/76 189/342/76 181/328/76 +f 178/319/77 186/336/77 183/329/77 +f 181/315/78 189/343/78 184/330/78 +f 176/313/79 184/330/79 185/331/79 +f 190/332/80 192/488/80 193/333/80 +f 183/329/81 192/488/81 190/332/81 +f 193/335/82 192/489/82 186/324/82 +f 184/330/84 191/490/84 193/338/84 +f 188/326/86 190/491/86 191/341/86 +f 198/347/80 199/365/80 196/348/80 +f 201/350/80 200/359/80 195/351/80 +f 202/353/80 203/368/80 197/354/80 +f 195/356/80 205/390/80 204/357/80 +f 208/370/79 224/398/79 225/371/79 +f 218/373/75 219/384/75 227/374/75 +f 220/376/72 228/379/72 229/377/72 +f 220/376/77 218/373/77 226/375/77 +f 221/378/80 208/370/80 213/380/80 +f 220/376/80 214/393/80 210/382/80 +f 214/383/80 220/376/80 221/378/80 +f 219/384/80 211/391/80 216/385/80 +f 201/350/79 213/395/79 212/387/79 +f 203/368/73 215/381/73 213/380/73 +f 198/347/75 211/388/75 210/382/75 +f 211/388/80 219/384/80 218/373/80 +f 200/359/78 212/387/78 217/389/78 +f 205/390/76 217/394/76 216/385/76 +f 202/353/72 214/383/72 215/381/72 +f 204/357/74 216/385/74 211/391/74 +f 217/389/80 212/387/80 209/372/80 +f 199/365/77 210/382/77 214/393/77 +f 217/394/80 206/396/80 207/386/80 +f 213/395/80 208/370/80 209/372/80 +f 206/396/76 222/408/76 223/397/76 +f 221/378/73 229/377/73 224/398/73 +f 207/386/74 223/397/74 227/374/74 +f 209/372/78 225/371/78 222/399/78 +f 231/400/69 230/401/69 226/375/69 +f 228/379/69 226/375/69 230/401/69 +f 228/379/69 234/412/69 235/403/69 +f 229/377/69 235/403/69 233/404/69 +f 233/405/69 232/410/69 225/371/69 +f 225/371/69 232/410/69 237/406/69 +f 237/407/69 236/409/69 223/397/69 +f 236/409/69 231/417/69 227/374/69 +f 232/410/78 240/420/78 245/411/78 +f 234/412/72 242/424/72 243/413/72 +f 230/401/75 231/400/75 239/414/75 +f 235/403/73 243/413/73 241/416/73 +f 231/417/74 236/409/74 244/418/74 +f 237/407/76 245/430/76 244/418/76 +f 233/405/79 241/427/79 240/420/79 +f 230/401/77 238/415/77 242/421/77 +f 251/422/80 250/433/80 238/415/80 +f 238/415/80 250/433/80 252/423/80 +f 242/424/80 252/423/80 253/425/80 +f 241/416/80 243/413/80 253/425/80 +f 248/426/80 249/428/80 240/420/80 +f 249/428/80 246/436/80 245/411/80 +f 246/429/80 247/431/80 244/418/80 +f 244/418/80 247/431/80 251/422/80 +f 247/431/74 255/437/74 259/432/74 +f 250/433/77 258/440/77 260/434/77 +f 249/428/78 257/441/78 254/435/78 +f 246/429/76 254/450/76 255/437/76 +f 252/423/72 260/434/72 261/438/72 +f 253/425/73 261/438/73 256/439/73 +f 251/422/75 259/432/75 258/440/75 +f 248/426/79 256/439/79 257/441/79 +f 263/442/69 262/443/69 258/440/69 +f 260/434/69 258/440/69 262/443/69 +f 260/434/69 266/454/69 267/445/69 +f 261/438/69 267/445/69 265/446/69 +f 265/447/69 264/452/69 257/441/69 +f 257/441/69 264/452/69 269/448/69 +f 269/449/69 268/451/69 255/437/69 +f 268/451/69 263/456/69 259/432/69 +f 262/443/77 270/293/77 274/292/77 +f 264/452/78 272/291/78 277/453/78 +f 266/454/72 274/487/72 275/287/72 +f 263/442/75 271/300/75 270/293/75 +f 267/445/73 275/287/73 273/286/73 +f 268/451/74 276/457/74 271/455/74 +f 269/449/76 277/459/76 276/457/76 +f 265/447/79 273/289/79 272/291/79 +f 167/458/89 276/457/89 277/459/89 +f 194/349/75 196/348/75 172/301/75 +f 172/309/72 196/355/72 197/354/72 +f 173/306/79 197/352/79 195/351/79 +f 195/356/76 194/358/76 170/312/76 +f 284/463/72 285/467/72 282/464/72 +f 280/466/75 282/464/75 285/467/75 +f 279/469/79 284/463/79 283/465/79 +f 281/471/80 285/467/80 284/463/80 +f 278/473/69 283/465/69 282/464/69 +f 292/475/92 293/492/92 290/476/92 +f 286/478/93 291/477/93 290/476/93 +f 289/480/75 288/479/75 290/476/75 +f 287/482/79 292/493/79 291/477/79 +f 289/480/94 293/481/94 292/483/94 o RightArm v -3.900001 12.299999 2.100000 v -3.900001 12.299999 -2.100000 @@ -1370,246 +1750,246 @@ vn -0.5000 -0.8660 0.0000 vn -0.8660 0.5000 0.0000 vn 0.8660 -0.5000 0.0000 s off -f 325/354/59 221/355/59 327/356/59 -f 218/357/60 325/358/60 324/359/60 -f 326/360/61 220/361/61 322/362/61 -f 220/363/62 218/364/62 219/365/62 -f 220/366/63 327/356/63 221/367/63 -f 322/362/64 219/365/64 323/368/64 -f 226/369/62 224/370/62 222/371/62 -f 229/372/62 223/373/62 225/374/62 -f 230/375/62 225/376/62 224/377/62 -f 223/378/62 232/379/62 222/380/62 -f 228/381/62 233/382/62 223/383/62 -f 222/384/62 232/379/62 226/385/62 -f 224/386/62 227/387/62 230/388/62 -f 225/389/62 231/390/62 229/391/62 -f 238/392/65 231/390/65 230/375/65 -f 239/393/66 229/391/66 231/390/66 -f 240/394/67 226/385/67 232/379/67 -f 234/395/68 227/387/68 226/369/68 -f 233/396/69 240/394/69 232/379/69 -f 235/397/70 230/388/70 227/387/70 -f 236/398/71 233/382/71 228/381/71 -f 237/399/72 228/381/72 229/372/72 -f 245/400/73 242/401/73 243/402/73 -f 242/401/74 235/397/74 234/395/74 -f 238/392/75 245/403/75 239/393/75 -f 238/404/76 235/397/76 244/405/76 -f 245/406/77 236/398/77 237/399/77 -f 239/393/78 245/407/78 237/408/78 -f 243/409/79 240/394/79 241/410/79 -f 241/411/80 236/398/80 243/412/80 -f 240/394/81 242/413/81 234/414/81 -f 248/415/73 250/416/73 246/417/73 -f 247/418/73 253/419/73 249/420/73 -f 249/421/73 254/422/73 248/423/73 -f 256/424/73 247/425/73 246/426/73 -f 252/427/73 247/428/73 257/429/73 -f 246/430/73 250/431/73 256/424/73 -f 248/432/73 254/433/73 251/434/73 -f 249/435/73 253/436/73 255/437/73 -f 261/438/72 276/439/72 260/440/72 -f 278/441/68 271/442/68 270/443/68 -f 281/444/65 272/445/65 273/446/65 -f 280/447/70 270/443/70 272/445/70 -f 273/446/73 265/448/73 260/440/73 -f 272/445/73 262/449/73 266/450/73 -f 273/446/73 266/451/73 267/452/73 -f 268/453/73 271/442/73 259/454/73 -f 264/455/72 253/419/72 252/427/72 -f 265/448/66 255/437/66 253/436/66 -f 262/449/68 250/416/68 251/434/68 -f 270/443/73 263/456/73 262/449/73 -f 269/457/71 252/427/71 257/429/71 -f 268/453/69 257/458/69 256/424/69 -f 267/452/65 254/422/65 255/437/65 -f 263/459/67 256/424/67 250/431/67 -f 261/438/73 269/457/73 258/460/73 -f 266/450/70 251/434/70 254/433/70 -f 259/454/73 269/461/73 268/453/73 -f 261/438/73 265/462/73 264/455/73 -f 275/463/69 258/464/69 259/454/69 -f 260/440/66 281/444/66 273/446/66 -f 279/465/67 259/454/67 271/442/67 -f 274/466/71 261/438/71 258/460/71 -f 278/441/62 283/467/62 279/465/62 -f 280/447/62 282/468/62 278/441/62 -f 287/469/62 280/447/62 281/444/62 -f 281/444/62 285/470/62 287/469/62 -f 277/471/62 285/472/62 276/439/62 -f 289/473/62 277/471/62 274/466/62 -f 275/463/62 289/474/62 274/475/62 -f 279/465/62 288/476/62 275/463/62 -f 289/473/71 292/477/71 284/478/71 -f 295/479/65 286/480/65 287/469/65 -f 290/481/68 283/467/68 282/468/68 -f 293/482/66 287/469/66 285/470/66 -f 291/483/67 288/476/67 283/484/67 -f 296/485/69 289/474/69 288/476/69 -f 284/478/72 293/486/72 285/472/72 -f 294/487/70 282/468/70 286/488/70 -f 290/481/73 303/489/73 291/490/73 -f 290/481/73 304/491/73 302/492/73 -f 305/493/73 294/494/73 295/479/73 -f 293/482/73 305/493/73 295/479/73 -f 292/477/73 300/495/73 293/486/73 -f 297/496/73 301/497/73 292/477/73 -f 296/485/73 298/498/73 297/499/73 -f 303/489/73 296/485/73 291/483/73 -f 311/500/67 299/501/67 303/489/67 -f 312/502/70 302/492/70 304/491/70 -f 306/503/71 301/497/71 298/504/71 -f 307/505/69 298/498/69 299/501/69 -f 313/506/65 304/491/65 305/493/65 -f 308/507/66 305/493/66 300/495/66 -f 310/508/68 303/489/68 302/492/68 -f 309/509/72 300/495/72 301/497/72 -f 310/508/62 315/510/62 311/500/62 -f 312/502/62 314/511/62 310/508/62 -f 319/512/62 312/502/62 313/506/62 -f 313/506/62 317/513/62 319/512/62 -f 309/509/62 317/514/62 308/507/62 -f 321/515/62 309/509/62 306/503/62 -f 307/505/62 321/516/62 306/517/62 -f 311/500/62 320/518/62 307/505/62 -f 326/360/70 314/511/70 318/519/70 -f 329/520/71 316/521/71 321/515/71 -f 327/356/65 318/522/65 319/512/65 -f 314/511/68 323/368/68 315/510/68 -f 325/354/66 319/512/66 317/513/66 -f 323/523/67 320/518/67 315/524/67 -f 328/525/69 321/516/69 320/518/69 -f 324/359/72 317/514/72 316/521/72 -f 329/526/82 219/527/82 218/528/82 -f 329/520/83 218/529/83 324/359/83 -f 328/525/84 323/523/84 219/530/84 -f 224/370/68 246/417/68 222/371/68 -f 249/421/65 224/377/65 225/376/65 -f 223/373/72 249/420/72 225/374/72 -f 222/380/69 247/425/69 223/378/69 -f 334/531/65 336/532/65 335/533/65 -f 337/534/68 332/535/68 333/536/68 -f 335/533/72 331/537/72 330/538/72 -f 336/532/73 333/539/73 331/540/73 -f 334/531/62 330/541/62 332/542/62 -f 342/543/85 344/544/85 343/545/85 -f 342/543/86 338/546/86 340/547/86 -f 341/548/68 342/543/68 340/547/68 -f 343/545/72 339/549/72 338/546/72 -f 344/550/87 341/548/87 339/551/87 -f 218/357/60 221/552/60 325/358/60 -f 220/363/62 221/553/62 218/364/62 -f 220/366/63 326/554/63 327/356/63 -f 322/362/64 220/363/64 219/365/64 -f 226/369/62 227/387/62 224/370/62 -f 229/372/62 228/381/62 223/373/62 -f 230/375/62 231/390/62 225/376/62 -f 223/378/62 233/396/62 232/379/62 -f 238/392/65 239/393/65 231/390/65 -f 239/393/66 237/408/66 229/391/66 -f 240/394/67 234/414/67 226/385/67 -f 234/395/68 235/397/68 227/387/68 -f 233/396/69 241/410/69 240/394/69 -f 235/397/70 238/404/70 230/388/70 -f 236/398/71 241/411/71 233/382/71 -f 237/399/72 236/398/72 228/381/72 -f 245/400/73 244/555/73 242/401/73 -f 242/401/74 244/555/74 235/397/74 -f 238/392/75 244/556/75 245/403/75 -f 245/406/77 243/557/77 236/398/77 -f 243/409/79 242/558/79 240/394/79 -f 248/415/73 251/434/73 250/416/73 -f 247/418/73 252/427/73 253/419/73 -f 249/421/73 255/437/73 254/422/73 -f 256/424/73 257/458/73 247/425/73 -f 261/438/72 277/471/72 276/439/72 -f 278/441/68 279/465/68 271/442/68 -f 281/444/65 280/447/65 272/445/65 -f 280/447/70 278/441/70 270/443/70 -f 273/446/73 267/452/73 265/448/73 -f 272/445/73 270/443/73 262/449/73 -f 273/446/73 272/445/73 266/451/73 -f 268/453/73 263/459/73 271/442/73 -f 264/455/72 265/462/72 253/419/72 -f 265/448/66 267/452/66 255/437/66 -f 262/449/68 263/456/68 250/416/68 -f 270/443/73 271/442/73 263/456/73 -f 269/457/71 264/455/71 252/427/71 -f 268/453/69 269/461/69 257/458/69 -f 267/452/65 266/451/65 254/422/65 -f 263/459/67 268/453/67 256/424/67 -f 261/438/73 264/455/73 269/457/73 -f 266/450/70 262/449/70 251/434/70 -f 259/454/73 258/464/73 269/461/73 -f 261/438/73 260/440/73 265/462/73 -f 275/463/69 274/475/69 258/464/69 -f 260/440/66 276/439/66 281/444/66 -f 279/465/67 275/463/67 259/454/67 -f 274/466/71 277/471/71 261/438/71 -f 278/441/62 282/468/62 283/467/62 -f 280/447/62 286/488/62 282/468/62 -f 287/469/62 286/480/62 280/447/62 -f 281/444/62 276/439/62 285/470/62 -f 277/471/62 284/478/62 285/472/62 -f 289/473/62 284/478/62 277/471/62 -f 275/463/62 288/476/62 289/474/62 -f 279/465/62 283/484/62 288/476/62 -f 289/473/71 297/496/71 292/477/71 -f 295/479/65 294/494/65 286/480/65 -f 290/481/68 291/490/68 283/467/68 -f 293/482/66 295/479/66 287/469/66 -f 291/483/67 296/485/67 288/476/67 -f 296/485/69 297/499/69 289/474/69 -f 284/478/72 292/477/72 293/486/72 -f 294/487/70 290/481/70 282/468/70 -f 290/481/73 302/492/73 303/489/73 -f 290/481/73 294/487/73 304/491/73 -f 305/493/73 304/491/73 294/494/73 -f 293/482/73 300/495/73 305/493/73 -f 292/477/73 301/497/73 300/495/73 -f 297/496/73 298/504/73 301/497/73 -f 296/485/73 299/501/73 298/498/73 -f 303/489/73 299/501/73 296/485/73 -f 311/500/67 307/505/67 299/501/67 -f 312/502/70 310/508/70 302/492/70 -f 306/503/71 309/509/71 301/497/71 -f 307/505/69 306/517/69 298/498/69 -f 313/506/65 312/502/65 304/491/65 -f 308/507/66 313/506/66 305/493/66 -f 310/508/68 311/500/68 303/489/68 -f 309/509/72 308/507/72 300/495/72 -f 310/508/62 314/511/62 315/510/62 -f 312/502/62 318/519/62 314/511/62 -f 319/512/62 318/522/62 312/502/62 -f 313/506/62 308/507/62 317/513/62 -f 309/509/62 316/521/62 317/514/62 -f 321/515/62 316/521/62 309/509/62 -f 307/505/62 320/518/62 321/516/62 -f 311/500/62 315/524/62 320/518/62 -f 326/360/70 322/362/70 314/511/70 -f 329/520/71 324/359/71 316/521/71 -f 327/356/65 326/554/65 318/522/65 -f 314/511/68 322/362/68 323/368/68 -f 325/354/66 327/356/66 319/512/66 -f 323/523/67 328/525/67 320/518/67 -f 328/525/69 329/526/69 321/516/69 -f 324/359/72 325/358/72 317/514/72 -f 329/526/82 328/525/82 219/527/82 -f 224/370/68 248/415/68 246/417/68 -f 249/421/65 248/423/65 224/377/65 -f 223/373/72 247/418/72 249/420/72 -f 222/380/69 246/426/69 247/425/69 -f 334/531/65 337/534/65 336/532/65 -f 337/534/68 334/531/68 332/535/68 -f 335/533/72 336/532/72 331/537/72 -f 336/532/73 337/534/73 333/539/73 -f 334/531/62 335/533/62 330/541/62 -f 342/543/85 345/559/85 344/544/85 -f 342/543/86 343/545/86 338/546/86 -f 341/548/68 345/560/68 342/543/68 -f 343/545/72 344/561/72 339/549/72 -f 344/550/87 345/560/87 341/548/87 +f 401/494/95 297/495/95 403/496/95 +f 294/497/96 401/498/96 400/499/96 +f 402/500/97 296/501/97 398/502/97 +f 296/503/98 294/504/98 295/505/98 +f 296/506/99 403/496/99 297/507/99 +f 398/502/100 295/505/100 399/508/100 +f 302/509/98 300/510/98 298/511/98 +f 305/512/98 299/513/98 301/514/98 +f 306/515/98 301/516/98 300/517/98 +f 299/518/98 308/519/98 298/520/98 +f 304/521/98 309/522/98 299/523/98 +f 298/524/98 308/519/98 302/525/98 +f 300/526/98 303/527/98 306/528/98 +f 301/529/98 307/530/98 305/531/98 +f 314/532/101 307/530/101 306/515/101 +f 315/533/102 305/531/102 307/530/102 +f 316/534/103 302/525/103 308/519/103 +f 310/535/104 303/527/104 302/509/104 +f 309/536/105 316/534/105 308/519/105 +f 311/537/106 306/528/106 303/527/106 +f 312/538/107 309/522/107 304/521/107 +f 313/539/108 304/521/108 305/512/108 +f 321/540/109 318/541/109 319/542/109 +f 318/541/110 311/537/110 310/535/110 +f 314/532/111 321/543/111 315/533/111 +f 314/544/112 311/537/112 320/545/112 +f 321/546/113 312/538/113 313/539/113 +f 315/533/114 321/547/114 313/548/114 +f 319/549/115 316/534/115 317/550/115 +f 317/551/116 312/538/116 319/552/116 +f 316/534/117 318/553/117 310/554/117 +f 324/555/109 326/556/109 322/557/109 +f 323/558/109 329/559/109 325/560/109 +f 325/561/109 330/562/109 324/563/109 +f 332/564/109 323/565/109 322/566/109 +f 328/567/109 323/568/109 333/569/109 +f 322/570/109 326/571/109 332/564/109 +f 324/572/109 330/573/109 327/574/109 +f 325/575/109 329/576/109 331/577/109 +f 337/578/108 352/579/108 336/580/108 +f 354/581/104 347/582/104 346/583/104 +f 357/584/101 348/585/101 349/586/101 +f 356/587/106 346/583/106 348/585/106 +f 349/586/109 341/588/109 336/580/109 +f 348/585/109 338/589/109 342/590/109 +f 349/586/109 342/591/109 343/592/109 +f 344/593/109 347/582/109 335/594/109 +f 340/595/108 329/559/108 328/567/108 +f 341/588/102 331/577/102 329/576/102 +f 338/589/104 326/556/104 327/574/104 +f 346/583/109 339/596/109 338/589/109 +f 345/597/107 328/567/107 333/569/107 +f 344/593/105 333/598/105 332/564/105 +f 343/592/101 330/562/101 331/577/101 +f 339/599/103 332/564/103 326/571/103 +f 337/578/109 345/597/109 334/600/109 +f 342/590/106 327/574/106 330/573/106 +f 335/594/109 345/601/109 344/593/109 +f 337/578/109 341/602/109 340/595/109 +f 351/603/105 334/604/105 335/594/105 +f 336/580/102 357/584/102 349/586/102 +f 355/605/103 335/594/103 347/582/103 +f 350/606/107 337/578/107 334/600/107 +f 354/581/98 359/607/98 355/605/98 +f 356/587/98 358/608/98 354/581/98 +f 363/609/98 356/587/98 357/584/98 +f 357/584/98 361/610/98 363/609/98 +f 353/611/98 361/612/98 352/579/98 +f 365/613/98 353/611/98 350/606/98 +f 351/603/98 365/614/98 350/615/98 +f 355/605/98 364/616/98 351/603/98 +f 365/613/107 368/617/107 360/618/107 +f 371/619/101 362/620/101 363/609/101 +f 366/621/104 359/607/104 358/608/104 +f 369/622/102 363/609/102 361/610/102 +f 367/623/103 364/616/103 359/624/103 +f 372/625/105 365/614/105 364/616/105 +f 360/618/108 369/626/108 361/612/108 +f 370/627/106 358/608/106 362/628/106 +f 366/621/109 379/629/109 367/630/109 +f 366/621/109 380/631/109 378/632/109 +f 381/633/109 370/634/109 371/619/109 +f 369/622/109 381/633/109 371/619/109 +f 368/617/109 376/635/109 369/626/109 +f 373/636/109 377/637/109 368/617/109 +f 372/625/109 374/638/109 373/639/109 +f 379/629/109 372/625/109 367/623/109 +f 387/640/103 375/641/103 379/629/103 +f 388/642/106 378/632/106 380/631/106 +f 382/643/107 377/637/107 374/644/107 +f 383/645/105 374/638/105 375/641/105 +f 389/646/101 380/631/101 381/633/101 +f 384/647/102 381/633/102 376/635/102 +f 386/648/104 379/629/104 378/632/104 +f 385/649/108 376/635/108 377/637/108 +f 386/648/98 391/650/98 387/640/98 +f 388/642/98 390/651/98 386/648/98 +f 395/652/98 388/642/98 389/646/98 +f 389/646/98 393/653/98 395/652/98 +f 385/649/98 393/654/98 384/647/98 +f 397/655/98 385/649/98 382/643/98 +f 383/645/98 397/656/98 382/657/98 +f 387/640/98 396/658/98 383/645/98 +f 402/500/106 390/651/106 394/659/106 +f 405/660/107 392/661/107 397/655/107 +f 403/496/101 394/662/101 395/652/101 +f 390/651/104 399/508/104 391/650/104 +f 401/494/102 395/652/102 393/653/102 +f 399/663/103 396/658/103 391/664/103 +f 404/665/105 397/656/105 396/658/105 +f 400/499/108 393/654/108 392/661/108 +f 405/666/118 295/667/118 294/668/118 +f 405/660/119 294/669/119 400/499/119 +f 404/665/120 399/663/120 295/670/120 +f 300/510/104 322/557/104 298/511/104 +f 325/561/101 300/517/101 301/516/101 +f 299/513/108 325/560/108 301/514/108 +f 298/520/105 323/565/105 299/518/105 +f 410/671/101 412/672/101 411/673/101 +f 413/674/104 408/675/104 409/676/104 +f 411/673/108 407/677/108 406/678/108 +f 412/672/109 409/679/109 407/680/109 +f 410/671/98 406/681/98 408/682/98 +f 418/683/121 420/684/121 419/685/121 +f 418/683/122 414/686/122 416/687/122 +f 417/688/104 418/683/104 416/687/104 +f 419/685/108 415/689/108 414/686/108 +f 420/690/123 417/688/123 415/691/123 +f 294/497/96 297/692/96 401/498/96 +f 296/503/98 297/693/98 294/504/98 +f 296/506/99 402/694/99 403/496/99 +f 398/502/100 296/503/100 295/505/100 +f 302/509/98 303/527/98 300/510/98 +f 305/512/98 304/521/98 299/513/98 +f 306/515/98 307/530/98 301/516/98 +f 299/518/98 309/536/98 308/519/98 +f 314/532/101 315/533/101 307/530/101 +f 315/533/102 313/548/102 305/531/102 +f 316/534/103 310/554/103 302/525/103 +f 310/535/104 311/537/104 303/527/104 +f 309/536/105 317/550/105 316/534/105 +f 311/537/106 314/544/106 306/528/106 +f 312/538/107 317/551/107 309/522/107 +f 313/539/108 312/538/108 304/521/108 +f 321/540/109 320/695/109 318/541/109 +f 318/541/110 320/695/110 311/537/110 +f 314/532/111 320/696/111 321/543/111 +f 321/546/113 319/697/113 312/538/113 +f 319/549/115 318/698/115 316/534/115 +f 324/555/109 327/574/109 326/556/109 +f 323/558/109 328/567/109 329/559/109 +f 325/561/109 331/577/109 330/562/109 +f 332/564/109 333/598/109 323/565/109 +f 337/578/108 353/611/108 352/579/108 +f 354/581/104 355/605/104 347/582/104 +f 357/584/101 356/587/101 348/585/101 +f 356/587/106 354/581/106 346/583/106 +f 349/586/109 343/592/109 341/588/109 +f 348/585/109 346/583/109 338/589/109 +f 349/586/109 348/585/109 342/591/109 +f 344/593/109 339/599/109 347/582/109 +f 340/595/108 341/602/108 329/559/108 +f 341/588/102 343/592/102 331/577/102 +f 338/589/104 339/596/104 326/556/104 +f 346/583/109 347/582/109 339/596/109 +f 345/597/107 340/595/107 328/567/107 +f 344/593/105 345/601/105 333/598/105 +f 343/592/101 342/591/101 330/562/101 +f 339/599/103 344/593/103 332/564/103 +f 337/578/109 340/595/109 345/597/109 +f 342/590/106 338/589/106 327/574/106 +f 335/594/109 334/604/109 345/601/109 +f 337/578/109 336/580/109 341/602/109 +f 351/603/105 350/615/105 334/604/105 +f 336/580/102 352/579/102 357/584/102 +f 355/605/103 351/603/103 335/594/103 +f 350/606/107 353/611/107 337/578/107 +f 354/581/98 358/608/98 359/607/98 +f 356/587/98 362/628/98 358/608/98 +f 363/609/98 362/620/98 356/587/98 +f 357/584/98 352/579/98 361/610/98 +f 353/611/98 360/618/98 361/612/98 +f 365/613/98 360/618/98 353/611/98 +f 351/603/98 364/616/98 365/614/98 +f 355/605/98 359/624/98 364/616/98 +f 365/613/107 373/636/107 368/617/107 +f 371/619/101 370/634/101 362/620/101 +f 366/621/104 367/630/104 359/607/104 +f 369/622/102 371/619/102 363/609/102 +f 367/623/103 372/625/103 364/616/103 +f 372/625/105 373/639/105 365/614/105 +f 360/618/108 368/617/108 369/626/108 +f 370/627/106 366/621/106 358/608/106 +f 366/621/109 378/632/109 379/629/109 +f 366/621/109 370/627/109 380/631/109 +f 381/633/109 380/631/109 370/634/109 +f 369/622/109 376/635/109 381/633/109 +f 368/617/109 377/637/109 376/635/109 +f 373/636/109 374/644/109 377/637/109 +f 372/625/109 375/641/109 374/638/109 +f 379/629/109 375/641/109 372/625/109 +f 387/640/103 383/645/103 375/641/103 +f 388/642/106 386/648/106 378/632/106 +f 382/643/107 385/649/107 377/637/107 +f 383/645/105 382/657/105 374/638/105 +f 389/646/101 388/642/101 380/631/101 +f 384/647/102 389/646/102 381/633/102 +f 386/648/104 387/640/104 379/629/104 +f 385/649/108 384/647/108 376/635/108 +f 386/648/98 390/651/98 391/650/98 +f 388/642/98 394/659/98 390/651/98 +f 395/652/98 394/662/98 388/642/98 +f 389/646/98 384/647/98 393/653/98 +f 385/649/98 392/661/98 393/654/98 +f 397/655/98 392/661/98 385/649/98 +f 383/645/98 396/658/98 397/656/98 +f 387/640/98 391/664/98 396/658/98 +f 402/500/106 398/502/106 390/651/106 +f 405/660/107 400/499/107 392/661/107 +f 403/496/101 402/694/101 394/662/101 +f 390/651/104 398/502/104 399/508/104 +f 401/494/102 403/496/102 395/652/102 +f 399/663/103 404/665/103 396/658/103 +f 404/665/105 405/666/105 397/656/105 +f 400/499/108 401/498/108 393/654/108 +f 405/666/118 404/665/118 295/667/118 +f 300/510/104 324/555/104 322/557/104 +f 325/561/101 324/563/101 300/517/101 +f 299/513/108 323/558/108 325/560/108 +f 298/520/105 322/566/105 323/565/105 +f 410/671/101 413/674/101 412/672/101 +f 413/674/104 410/671/104 408/675/104 +f 411/673/108 412/672/108 407/677/108 +f 412/672/109 413/674/109 409/679/109 +f 410/671/98 411/673/98 406/681/98 +f 418/683/121 421/699/121 420/684/121 +f 418/683/122 419/685/122 414/686/122 +f 417/688/104 421/700/104 418/683/104 +f 419/685/108 420/701/108 415/689/108 +f 420/690/123 421/700/123 417/688/123 o Tail v -2.100001 9.150000 13.650000 v 2.099998 9.150000 13.650000 @@ -1749,69 +2129,65 @@ vn 0.9899 0.0000 -0.1414 vn -0.9899 0.0000 -0.1414 vn -0.9864 0.0000 0.1644 s off -f 348/562/88 352/563/88 349/564/88 -f 355/565/89 353/566/89 354/567/89 -f 357/568/90 351/569/90 350/570/90 -f 356/571/91 353/566/91 351/569/91 -f 357/572/92 352/573/92 355/574/92 -f 346/575/93 353/576/93 348/562/93 -f 347/577/94 351/569/94 346/575/94 -f 349/578/95 350/570/95 347/577/95 -f 349/579/96 360/580/96 348/581/96 -f 346/582/97 359/583/97 347/584/97 -f 349/585/98 359/586/98 361/587/98 -f 346/588/99 360/580/99 358/589/99 -f 371/590/100 363/591/100 372/592/100 -f 361/587/101 364/593/101 360/580/101 -f 376/594/102 362/595/102 373/596/102 -f 365/597/88 366/598/88 364/593/88 -f 365/599/103 363/600/103 367/601/103 -f 364/602/104 366/598/104 362/603/104 -f 367/601/105 368/604/105 366/598/105 -f 369/605/106 370/606/106 368/604/106 -f 358/607/107 363/608/107 359/583/107 -f 374/609/108 376/610/108 375/611/108 -f 359/586/109 363/612/109 361/587/109 -f 369/605/110 363/613/110 371/614/110 -f 372/592/111 375/615/111 373/596/111 -f 371/590/112 373/596/112 370/606/112 -f 368/604/113 370/616/113 362/617/113 -f 367/601/95 363/618/95 369/605/95 -f 366/598/93 368/604/93 362/619/93 -f 376/610/114 363/620/114 362/621/114 -f 373/596/115 375/622/115 376/594/115 -f 374/623/116 372/592/116 377/624/116 -f 358/589/102 360/580/102 362/625/102 -f 372/592/109 363/591/109 377/624/109 -f 361/587/117 363/612/117 365/597/117 -f 362/625/118 360/580/118 364/593/118 -f 373/596/119 362/595/119 370/606/119 -f 348/562/88 353/576/88 352/563/88 -f 355/565/89 352/626/89 353/566/89 -f 357/568/90 356/627/90 351/569/90 -f 356/571/91 354/628/91 353/566/91 -f 357/572/92 350/570/92 352/573/92 -f 346/575/93 351/569/93 353/576/93 -f 347/577/94 350/570/94 351/569/94 -f 349/578/95 352/629/95 350/570/95 -f 349/579/96 361/587/96 360/580/96 -f 346/582/97 358/607/97 359/583/97 -f 349/585/98 347/630/98 359/586/98 -f 346/588/99 348/631/99 360/580/99 -f 361/587/101 365/597/101 364/593/101 -f 365/597/88 367/601/88 366/598/88 -f 367/601/105 369/605/105 368/604/105 -f 369/605/106 371/590/106 370/606/106 -f 358/607/107 362/632/107 363/608/107 -f 374/609/108 377/633/108 376/610/108 -f 372/592/111 374/634/111 375/615/111 -f 371/590/112 372/592/112 373/596/112 -f 376/610/114 377/633/114 363/620/114 +f 424/702/124 428/703/124 425/704/124 +f 431/705/125 429/706/125 430/707/125 +f 433/708/126 427/709/126 426/710/126 +f 432/711/127 429/706/127 427/709/127 +f 433/712/128 428/713/128 431/714/128 +f 422/715/129 429/716/129 424/702/129 +f 423/717/130 427/709/130 422/715/130 +f 425/718/131 426/710/131 423/717/131 +f 425/719/132 436/720/132 424/721/132 +f 422/722/133 435/723/133 423/724/133 +f 425/725/134 435/726/134 437/727/134 +f 422/728/135 436/720/135 434/729/135 +f 447/730/136 439/731/136 448/732/136 +f 437/727/137 440/733/137 436/720/137 +f 452/734/138 438/735/138 449/736/138 +f 441/737/124 442/738/124 440/733/124 +f 441/739/139 439/740/139 443/741/139 +f 440/742/140 442/738/140 438/743/140 +f 443/741/141 444/744/141 442/738/141 +f 445/745/142 446/746/142 444/744/142 +f 434/747/143 439/748/143 435/723/143 +f 450/749/144 452/750/144 451/751/144 +f 435/726/145 439/752/145 437/727/145 +f 445/745/146 439/753/146 447/754/146 +f 448/732/147 451/755/147 449/736/147 +f 447/730/148 449/736/148 446/746/148 +f 444/744/149 446/756/149 438/757/149 +f 443/741/131 439/758/131 445/745/131 +f 442/738/129 444/744/129 438/759/129 +f 452/750/150 439/760/150 438/761/150 +f 449/736/151 451/762/151 452/734/151 +f 450/763/152 448/732/152 453/764/152 +f 434/729/138 436/720/138 438/765/138 +f 448/732/145 439/731/145 453/764/145 +f 437/727/153 439/752/153 441/737/153 +f 438/765/154 436/720/154 440/733/154 +f 449/736/155 438/735/155 446/746/155 +f 424/702/124 429/716/124 428/703/124 +f 431/705/125 428/766/125 429/706/125 +f 433/708/126 432/767/126 427/709/126 +f 432/711/127 430/768/127 429/706/127 +f 433/712/128 426/710/128 428/713/128 +f 422/715/129 427/709/129 429/716/129 +f 423/717/130 426/710/130 427/709/130 +f 425/718/131 428/769/131 426/710/131 +f 425/719/132 437/727/132 436/720/132 +f 422/722/133 434/747/133 435/723/133 +f 425/725/134 423/770/134 435/726/134 +f 422/728/135 424/771/135 436/720/135 +f 437/727/137 441/737/137 440/733/137 +f 441/737/124 443/741/124 442/738/124 +f 443/741/141 445/745/141 444/744/141 +f 445/745/142 447/730/142 446/746/142 +f 434/747/143 438/772/143 439/748/143 +f 450/749/144 453/773/144 452/750/144 +f 448/732/147 450/774/147 451/755/147 +f 447/730/148 448/732/148 449/736/148 +f 452/750/150 453/773/150 439/760/150 o RightLeg -v 0.100000 23.250000 -3.675000 -v -4.100000 23.250000 -3.675000 -v 0.100000 24.299999 -3.675000 -v -4.100000 24.299999 -3.675000 v 0.099999 11.700001 2.100000 v -4.100001 11.700001 2.100000 v 0.099999 11.700001 -2.100000 @@ -1884,51 +2260,16 @@ v 0.100000 21.674999 2.100000 v -4.100000 21.674999 2.100000 v 0.100000 21.674999 -2.100000 v -4.100000 21.674999 -2.100000 -v -4.100000 22.200001 -2.625000 -v 0.100000 22.200001 -2.625000 -v 0.625000 22.200001 -2.100000 -v -4.625000 22.200001 -2.100000 -v 0.625000 22.200001 2.100000 -v -4.625000 22.200001 2.100000 -v -4.100000 22.200001 2.625000 -v 0.100000 22.200001 2.625000 v 0.100000 22.200001 2.100000 v -4.100000 22.200001 2.100000 v 0.100000 22.200001 -2.100000 v -4.100000 22.200001 -2.100000 -v -4.100000 24.299999 -2.625000 -v -4.625000 24.299999 -2.100000 -v 0.100000 24.299999 -2.625000 -v 0.625000 24.299999 -2.100000 -v -4.625000 24.299999 2.100000 -v -4.100000 24.299999 2.625000 -v 0.625000 24.299999 2.100000 -v 0.100000 24.299999 2.625000 -v -1.475000 20.110409 -3.209024 -v -2.525000 20.110409 -3.209024 -v -1.475000 20.469528 -4.195702 -v -2.525000 20.469528 -4.195702 -v -0.425000 23.070438 -2.131661 -v -3.575000 23.070440 -2.131661 -v -0.425000 23.429560 -3.118338 -v -3.575000 23.429560 -3.118338 -v -2.525000 23.070440 -2.131661 -v -2.525000 23.429560 -3.118338 -v -1.475000 23.070440 -2.131661 -v -1.475000 23.429560 -3.118338 -v -2.000000 21.097086 -2.849903 -v -2.000000 21.456205 -3.836581 vt 0.395833 1.000000 vt 0.562500 0.800000 vt 0.562500 1.000000 vt 0.375000 0.150000 vt 0.208333 0.125000 vt 0.375000 0.125000 -vt 0.791667 -0.000000 -vt 0.979167 0.025000 -vt 0.958333 0.250000 -vt 0.791667 0.300000 -vt 0.791667 0.250000 vt 0.770833 0.525000 vt 0.833333 0.425000 vt 0.854167 0.525000 @@ -2011,16 +2352,9 @@ vt 0.208333 0.725000 vt 0.187500 0.725000 vt 0.000000 0.725000 vt 0.020833 0.700000 -vt 0.791667 0.350000 -vt 0.958333 0.300000 -vt 0.958333 0.350000 vt -0.000000 0.700000 vt -0.000000 0.550000 vt 0.750000 0.550000 -vt 0.791667 0.400000 -vt 0.958333 0.400000 -vt 0.750000 0.300000 -vt 1.000000 0.300000 vt 0.583333 0.175000 vt 0.375000 0.175000 vt 0.395833 0.175000 @@ -2044,33 +2378,11 @@ vt 0.562500 0.150000 vt 0.583333 0.150000 vt -0.000000 0.150000 vt 0.750000 0.150000 +vt 0.562500 0.125000 vt 0.395833 0.125000 -vt 0.562500 0.100000 -vt 0.562500 0.125000 -vt 0.208333 0.100000 -vt 0.375000 0.100000 -vt 0.375000 0.125000 -vt 0.395833 0.100000 -vt 0.020833 0.125000 -vt 0.187500 0.100000 -vt 0.187500 0.125000 -vt 0.187500 0.125000 -vt 0.583333 0.100000 -vt 0.583333 0.125000 -vt 0.562500 0.125000 -vt 0.020833 0.100000 -vt -0.000000 0.125000 vt 0.750000 0.125000 -vt 0.750000 0.100000 -vt 0.562500 0.000000 -vt 0.583333 0.000000 -vt 0.750000 0.000000 -vt 0.187500 0.000000 -vt 0.208333 -0.000000 -vt 0.395833 -0.000000 -vt 0.375000 -0.000000 -vt -0.000000 0.100000 -vt 0.020833 0.000000 +vt 0.020833 0.125000 +vt 0.187500 0.125000 vt 0.187500 0.400000 vt 0.020833 0.400000 vt 0.208333 0.400000 @@ -2085,48 +2397,20 @@ vt 0.187500 0.800000 vt 0.020833 0.800000 vt 0.750000 0.800000 vt 0.583333 0.800000 -vt 0.687500 0.950000 -vt 0.729167 0.900000 -vt 0.729167 0.950000 -vt 0.562500 0.900000 -vt 0.687500 0.900000 -vt 0.854167 0.900000 -vt 0.854167 0.950000 -vt 0.562500 0.850000 -vt 0.645833 0.800000 -vt 0.645833 0.850000 -vt 0.854167 0.850000 -vt 0.770833 0.800000 -vt 0.854167 0.800000 -vt 0.645833 1.000000 -vt 0.562500 0.950000 -vt 0.770833 1.000000 -vt 0.708333 1.000000 -vt 0.770833 0.850000 -vt 0.708333 0.850000 -vt 0.770833 0.225000 -vt 0.770833 0.025000 -vt 0.958333 -0.000000 -vt 0.979167 0.225000 vt 0.770833 0.425000 vt 0.750000 0.700000 -vt 0.750000 0.400000 -vt 1.000000 0.400000 vt 0.500000 0.275000 vt 0.000000 0.175000 -vt -0.000000 0.000000 +vt 0.583333 0.125000 vt 0.375000 0.450000 vt 0.583333 0.450000 vt 0.750000 0.400000 vt 0.395833 0.450000 vt 0.562500 0.450000 -vt 0.562500 0.800000 -vt 0.562500 1.000000 -vt 0.854167 1.000000 vn 0.0000 -1.0000 0.0000 vn -1.0000 0.0000 0.0000 -vn 0.0000 1.0000 -0.0000 vn 0.0000 0.0000 -1.0000 +vn 0.0000 1.0000 0.0000 vn -0.9701 0.2425 0.0000 vn 0.9701 0.2425 0.0000 vn 0.9487 -0.3162 0.0000 @@ -2137,223 +2421,149 @@ vn 0.0000 0.0000 1.0000 vn 0.7071 -0.0000 -0.7071 vn 0.7071 -0.0000 0.7071 vn 1.0000 -0.0000 0.0000 -vn 0.0000 -0.7071 -0.7071 vn -0.7071 0.0000 -0.7071 -vn 0.0000 -0.9397 -0.3420 -vn -0.9487 -0.2972 -0.1082 -vn 0.9487 -0.2972 -0.1082 -vn 0.9701 0.2279 0.0830 -vn -0.9701 0.2279 0.0830 -vn -0.0000 -0.3420 0.9397 -vn 0.0000 0.3420 -0.9397 s off -f 383/635/120 384/636/120 382/637/120 -f 453/638/121 463/639/121 465/640/121 -f 471/641/122 472/642/122 468/643/122 -f 468/643/122 381/644/122 466/645/122 -f 396/646/123 394/647/123 395/648/123 -f 388/649/122 397/650/122 389/651/122 -f 387/652/120 395/648/120 386/653/120 -f 389/654/124 396/646/124 387/655/124 -f 386/656/125 394/657/125 388/658/125 -f 390/659/120 409/660/120 399/661/120 -f 391/662/126 407/663/126 393/664/126 -f 393/664/120 406/665/120 392/666/120 -f 392/666/127 404/667/127 390/659/127 -f 398/668/120 405/669/120 391/662/120 -f 401/670/128 412/671/128 403/672/128 -f 399/673/120 411/674/120 401/670/120 -f 402/675/128 414/676/128 400/677/128 -f 400/677/120 413/678/120 398/679/120 -f 417/680/120 402/681/120 403/682/120 -f 415/683/120 402/675/120 416/684/120 -f 403/682/120 412/685/120 417/680/120 -f 398/668/120 413/686/120 408/687/120 -f 399/673/120 409/688/120 410/689/120 -f 418/690/122 420/691/122 423/692/122 -f 419/693/122 422/694/122 421/695/122 -f 420/691/122 419/696/122 421/697/122 -f 427/698/122 418/699/122 423/700/122 -f 425/701/122 422/694/122 419/693/122 -f 428/702/122 425/703/122 424/704/122 -f 424/705/122 427/698/122 428/706/122 -f 426/707/122 425/703/122 429/708/122 -f 432/709/120 435/710/120 433/711/120 -f 431/712/120 430/713/120 434/714/120 -f 431/715/120 433/711/120 430/716/120 -f 432/717/120 438/718/120 435/719/120 -f 434/714/120 436/720/120 431/712/120 -f 436/721/120 440/722/120 439/723/120 -f 439/724/120 440/725/120 438/718/120 -f 437/726/120 441/727/120 436/721/120 -f 427/698/129 440/722/129 428/702/129 -f 428/702/130 441/727/130 429/708/130 -f 421/697/131 434/714/131 430/716/131 -f 379/728/123 380/729/123 378/730/123 -f 429/708/132 437/731/132 426/732/132 -f 421/697/123 433/711/123 420/691/123 -f 426/733/133 434/714/133 422/694/133 -f 423/700/121 438/718/121 427/698/121 -f 454/734/134 378/730/134 455/735/134 -f 379/728/121 466/736/121 381/644/121 -f 420/691/135 435/719/135 423/700/135 -f 468/737/133 378/730/133 380/729/133 -f 409/660/131 444/738/131 410/689/131 -f 408/687/135 445/739/135 442/740/135 -f 407/741/123 442/740/123 443/742/123 -f 412/743/132 449/744/132 417/680/132 -f 416/745/129 447/746/129 415/747/129 -f 446/748/133 412/749/133 411/674/133 -f 417/680/130 448/750/130 416/745/130 -f 445/739/121 414/676/121 447/746/121 -f 443/742/122 453/751/122 452/752/122 -f 447/746/122 453/638/122 445/739/122 -f 445/753/122 453/751/122 442/740/122 -f 448/750/122 450/754/122 451/755/122 -f 448/750/122 451/756/122 447/746/122 -f 444/738/122 443/757/122 452/758/122 -f 449/744/122 446/759/122 450/754/122 -f 444/738/122 450/760/122 446/748/122 -f 465/761/120 455/762/120 464/763/120 -f 465/640/120 459/764/120 457/765/120 -f 457/766/120 454/767/120 465/761/120 -f 462/768/120 460/769/120 463/770/120 -f 460/771/120 459/764/120 463/639/120 -f 456/772/120 464/773/120 455/774/120 -f 461/775/120 462/768/120 458/776/120 -f 462/777/120 456/772/120 458/778/120 -f 456/772/131 468/779/131 469/780/131 -f 456/772/133 472/781/133 458/778/133 -f 464/763/123 453/751/123 465/761/123 -f 461/775/130 471/782/130 460/769/130 -f 460/769/129 470/783/129 459/764/129 -f 457/765/135 466/784/135 454/767/135 -f 459/764/121 467/785/121 457/765/121 -f 458/786/132 473/787/132 461/775/132 -f 452/758/133 462/777/133 450/760/133 -f 451/755/130 462/768/130 463/770/130 -f 402/788/130 425/703/130 403/789/130 -f 424/705/121 402/790/121 400/791/121 -f 401/792/133 425/701/133 419/693/133 -f 390/793/123 393/664/123 392/666/123 -f 391/794/123 390/793/123 419/696/123 -f 432/709/123 384/636/123 385/795/123 -f 439/724/121 385/796/121 383/797/121 -f 436/721/130 383/798/130 382/799/130 -f 431/712/133 382/800/133 384/801/133 -f 475/802/136 476/803/136 474/804/136 -f 475/802/137 481/805/137 477/806/137 -f 474/804/138 480/807/138 478/808/138 -f 483/809/139 486/810/139 487/811/139 -f 485/812/140 486/813/140 484/814/140 -f 486/815/141 479/816/141 475/802/141 -f 478/808/141 486/817/141 474/804/141 -f 475/802/141 474/804/141 486/818/141 -f 487/819/142 480/807/142 476/803/142 -f 481/805/142 487/811/142 477/806/142 -f 476/803/142 477/806/142 487/820/142 -f 383/635/120 385/795/120 384/636/120 -f 453/638/121 451/756/121 463/639/121 -f 468/643/122 466/645/122 467/821/122 -f 467/821/122 470/822/122 471/641/122 -f 471/641/122 473/823/122 472/642/122 -f 472/642/122 469/824/122 468/643/122 -f 468/643/122 467/821/122 471/641/122 -f 468/643/122 380/729/122 381/644/122 -f 396/646/123 397/650/123 394/647/123 -f 388/649/122 394/647/122 397/650/122 -f 387/652/120 396/646/120 395/648/120 -f 389/654/124 397/825/124 396/646/124 -f 386/656/125 395/648/125 394/657/125 -f 390/659/120 404/667/120 409/660/120 -f 391/662/126 405/669/126 407/663/126 -f 393/664/120 407/663/120 406/665/120 -f 392/666/127 406/665/127 404/667/127 -f 398/668/120 408/687/120 405/669/120 -f 401/670/128 411/674/128 412/671/128 -f 399/673/120 410/689/120 411/674/120 -f 402/675/128 415/683/128 414/676/128 -f 400/677/120 414/676/120 413/678/120 -f 417/680/120 416/745/120 402/681/120 -f 420/691/122 418/690/122 419/696/122 -f 427/698/122 424/705/122 418/699/122 -f 425/701/122 426/733/122 422/694/122 -f 428/702/122 429/708/122 425/703/122 -f 431/715/120 432/709/120 433/711/120 -f 432/717/120 439/724/120 438/718/120 -f 434/714/120 437/826/120 436/720/120 -f 436/721/120 441/727/120 440/722/120 -f 427/698/129 438/718/129 440/722/129 -f 428/702/130 440/722/130 441/727/130 -f 421/697/131 422/694/131 434/714/131 -f 379/728/123 381/644/123 380/729/123 -f 429/708/132 441/727/132 437/731/132 -f 421/697/123 430/716/123 433/711/123 -f 426/733/133 437/826/133 434/714/133 -f 423/700/121 435/719/121 438/718/121 -f 454/734/134 379/728/134 378/730/134 -f 379/728/121 454/827/121 466/736/121 -f 420/691/135 433/711/135 435/719/135 -f 468/737/133 455/828/133 378/730/133 -f 409/660/131 443/742/131 444/738/131 -f 408/687/135 413/678/135 445/739/135 -f 407/741/123 405/669/123 408/687/123 -f 443/742/123 409/660/123 406/829/123 -f 409/660/123 404/667/123 406/829/123 -f 407/741/123 408/687/123 442/740/123 -f 443/742/123 406/829/123 407/741/123 -f 412/743/132 446/830/132 449/744/132 -f 416/745/129 448/750/129 447/746/129 -f 411/674/133 410/689/133 444/738/133 -f 444/738/133 446/748/133 411/674/133 -f 417/680/130 449/744/130 448/750/130 -f 413/678/121 414/676/121 445/739/121 -f 414/676/121 415/747/121 447/746/121 -f 443/742/122 442/740/122 453/751/122 -f 447/746/122 451/756/122 453/638/122 -f 448/750/122 449/744/122 450/754/122 -f 444/738/122 452/758/122 450/760/122 -f 465/761/120 454/767/120 455/762/120 -f 465/640/120 463/639/120 459/764/120 -f 462/768/120 461/775/120 460/769/120 -f 462/777/120 464/773/120 456/772/120 -f 456/772/131 455/762/131 468/779/131 -f 456/772/133 469/780/133 472/781/133 -f 464/763/123 452/752/123 453/751/123 -f 461/775/130 473/787/130 471/782/130 -f 460/769/129 471/782/129 470/783/129 -f 457/765/135 467/785/135 466/784/135 -f 459/764/121 470/783/121 467/785/121 -f 458/786/132 472/831/132 473/787/132 -f 452/758/133 464/773/133 462/777/133 -f 451/755/130 450/754/130 462/768/130 -f 402/788/130 424/704/130 425/703/130 -f 400/791/121 398/832/121 418/699/121 -f 418/699/121 424/705/121 400/791/121 -f 419/693/133 399/833/133 401/792/133 -f 401/792/133 403/834/133 425/701/133 -f 390/793/123 391/794/123 393/664/123 -f 418/690/123 398/835/123 391/794/123 -f 390/793/123 399/836/123 419/696/123 -f 418/690/123 391/794/123 419/696/123 -f 432/709/123 431/715/123 384/636/123 -f 439/724/121 432/717/121 385/796/121 -f 436/721/130 439/723/130 383/798/130 -f 431/712/133 436/720/133 382/800/133 -f 475/802/136 477/806/136 476/803/136 -f 475/802/137 479/816/137 481/805/137 -f 474/804/138 476/803/138 480/807/138 -f 483/809/139 482/837/139 486/810/139 -f 485/812/140 487/819/140 486/813/140 -f 486/815/141 482/838/141 479/816/141 -f 478/808/141 484/839/141 486/817/141 -f 487/819/142 485/812/142 480/807/142 -f 481/805/142 483/809/142 487/811/142 +f 455/775/156 456/776/156 454/777/156 +f 525/778/157 527/779/157 529/780/157 +f 468/781/158 466/782/158 467/783/158 +f 460/784/159 469/785/159 461/786/159 +f 459/787/156 467/783/156 458/788/156 +f 461/789/160 468/781/160 459/790/160 +f 458/791/161 466/792/161 460/793/161 +f 462/794/156 481/795/156 471/796/156 +f 463/797/162 479/798/162 465/799/162 +f 465/799/156 478/800/156 464/801/156 +f 464/801/163 476/802/163 462/794/163 +f 470/803/156 477/804/156 463/797/156 +f 473/805/164 484/806/164 475/807/164 +f 471/808/156 483/809/156 473/805/156 +f 474/810/164 486/811/164 472/812/164 +f 472/812/156 485/813/156 470/814/156 +f 489/815/156 474/816/156 475/817/156 +f 487/818/156 474/810/156 488/819/156 +f 475/817/156 484/820/156 489/815/156 +f 470/803/156 485/821/156 480/822/156 +f 471/808/156 481/823/156 482/824/156 +f 490/825/159 492/826/159 495/827/159 +f 491/828/159 494/829/159 493/830/159 +f 492/826/159 491/831/159 493/832/159 +f 499/833/159 490/834/159 495/835/159 +f 497/836/159 494/829/159 491/828/159 +f 500/837/159 497/838/159 496/839/159 +f 496/840/159 499/833/159 500/841/159 +f 498/842/159 497/838/159 501/843/159 +f 504/844/156 507/845/156 505/846/156 +f 503/847/156 502/848/156 506/849/156 +f 503/850/156 505/846/156 502/851/156 +f 504/852/156 510/853/156 507/854/156 +f 506/849/156 508/855/156 503/847/156 +f 508/856/156 512/857/156 511/858/156 +f 511/859/156 512/860/156 510/853/156 +f 509/861/156 513/862/156 508/856/156 +f 499/833/165 512/857/165 500/837/165 +f 500/837/166 513/862/166 501/843/166 +f 493/832/167 506/849/167 502/851/167 +f 501/843/168 509/863/168 498/864/168 +f 493/832/158 505/846/158 492/826/158 +f 498/865/169 506/849/169 494/829/169 +f 495/835/157 510/853/157 499/833/157 +f 492/826/170 507/854/170 495/835/170 +f 481/795/167 516/866/167 482/824/167 +f 480/822/170 517/867/170 514/868/170 +f 479/869/158 514/868/158 515/870/158 +f 484/871/168 521/872/168 489/815/168 +f 488/873/165 519/874/165 487/875/165 +f 518/876/169 484/877/169 483/809/169 +f 489/815/166 520/878/166 488/873/166 +f 517/867/157 486/811/157 519/874/157 +f 515/870/159 525/879/159 524/880/159 +f 519/874/159 525/778/159 517/867/159 +f 517/881/159 525/879/159 514/868/159 +f 520/878/159 522/882/159 523/883/159 +f 520/878/159 523/884/159 519/874/159 +f 516/866/159 515/885/159 524/886/159 +f 521/872/159 518/887/159 522/882/159 +f 516/866/159 522/888/159 518/876/159 +f 528/889/158 525/879/158 529/890/158 +f 524/886/169 526/891/169 522/888/169 +f 523/883/166 526/892/166 527/893/166 +f 474/894/166 497/838/166 475/895/166 +f 496/840/157 474/896/157 472/897/157 +f 473/898/169 497/836/169 491/828/169 +f 462/899/158 465/799/158 464/801/158 +f 463/900/158 462/899/158 491/831/158 +f 504/844/158 456/776/158 457/901/158 +f 511/859/157 457/902/157 455/903/157 +f 508/856/166 455/904/166 454/905/166 +f 503/847/169 454/906/169 456/907/169 +f 455/775/156 457/901/156 456/776/156 +f 525/778/157 523/884/157 527/779/157 +f 468/781/158 469/785/158 466/782/158 +f 460/784/159 466/782/159 469/785/159 +f 459/787/156 468/781/156 467/783/156 +f 461/789/160 469/908/160 468/781/160 +f 458/791/161 467/783/161 466/792/161 +f 462/794/156 476/802/156 481/795/156 +f 463/797/162 477/804/162 479/798/162 +f 465/799/156 479/798/156 478/800/156 +f 464/801/163 478/800/163 476/802/163 +f 470/803/156 480/822/156 477/804/156 +f 473/805/164 483/809/164 484/806/164 +f 471/808/156 482/824/156 483/809/156 +f 474/810/164 487/818/164 486/811/164 +f 472/812/156 486/811/156 485/813/156 +f 489/815/156 488/873/156 474/816/156 +f 492/826/159 490/825/159 491/831/159 +f 499/833/159 496/840/159 490/834/159 +f 497/836/159 498/865/159 494/829/159 +f 500/837/159 501/843/159 497/838/159 +f 503/850/156 504/844/156 505/846/156 +f 504/852/156 511/859/156 510/853/156 +f 506/849/156 509/909/156 508/855/156 +f 508/856/156 513/862/156 512/857/156 +f 499/833/165 510/853/165 512/857/165 +f 500/837/166 512/857/166 513/862/166 +f 493/832/167 494/829/167 506/849/167 +f 501/843/168 513/862/168 509/863/168 +f 493/832/158 502/851/158 505/846/158 +f 498/865/169 509/909/169 506/849/169 +f 495/835/157 507/854/157 510/853/157 +f 492/826/170 505/846/170 507/854/170 +f 481/795/167 515/870/167 516/866/167 +f 480/822/170 485/813/170 517/867/170 +f 479/869/158 477/804/158 480/822/158 +f 515/870/158 481/795/158 478/910/158 +f 481/795/158 476/802/158 478/910/158 +f 479/869/158 480/822/158 514/868/158 +f 515/870/158 478/910/158 479/869/158 +f 484/871/168 518/911/168 521/872/168 +f 488/873/165 520/878/165 519/874/165 +f 483/809/169 482/824/169 516/866/169 +f 516/866/169 518/876/169 483/809/169 +f 489/815/166 521/872/166 520/878/166 +f 485/813/157 486/811/157 517/867/157 +f 486/811/157 487/875/157 519/874/157 +f 515/870/159 514/868/159 525/879/159 +f 519/874/159 523/884/159 525/778/159 +f 520/878/159 521/872/159 522/882/159 +f 516/866/159 524/886/159 522/888/159 +f 528/889/158 524/880/158 525/879/158 +f 524/886/169 528/912/169 526/891/169 +f 523/883/166 522/882/166 526/892/166 +f 474/894/166 496/839/166 497/838/166 +f 472/897/157 470/913/157 490/834/157 +f 490/834/157 496/840/157 472/897/157 +f 491/828/169 471/914/169 473/898/169 +f 473/898/169 475/915/169 497/836/169 +f 462/899/158 463/900/158 465/799/158 +f 490/825/158 470/916/158 463/900/158 +f 462/899/158 471/917/158 491/831/158 +f 490/825/158 463/900/158 491/831/158 +f 504/844/158 503/850/158 456/776/158 +f 511/859/157 504/852/157 457/902/157 +f 508/856/166 511/858/166 455/904/166 +f 503/847/169 508/855/169 454/906/169 o LeftLeg -v -0.100000 23.250000 -3.675000 -v 4.100000 23.250000 -3.675000 -v -0.100000 24.299999 -3.675000 -v 4.100000 24.299999 -3.675000 v -0.100001 11.700001 2.100000 v 4.099999 11.700001 2.100000 v -0.100001 11.700001 -2.100000 @@ -2426,52 +2636,16 @@ v -0.100000 21.674999 2.100000 v 4.100000 21.674999 2.100000 v -0.100000 21.674999 -2.100000 v 4.100000 21.674999 -2.100000 -v 4.100000 22.199999 -2.625000 -v -0.100000 22.200001 -2.625000 -v -0.625000 22.200001 -2.100000 -v 4.625000 22.199999 -2.100000 -v -0.625000 22.200001 2.100000 -v 4.625000 22.199999 2.100000 -v 4.100000 22.199999 2.625000 -v -0.100000 22.200001 2.625000 v -0.100000 22.200001 2.100000 v 4.100000 22.199999 2.100000 v -0.100000 22.200001 -2.100000 v 4.100000 22.199999 -2.100000 -v 4.100000 24.299999 -2.625000 -v 4.625000 24.299999 -2.100000 -v -0.100000 24.299999 -2.625000 -v -0.625000 24.299999 -2.100000 -v 4.625000 24.299999 2.100000 -v 4.100000 24.299999 2.625000 -v -0.625000 24.299999 2.100000 -v -0.100000 24.299999 2.625000 -v 1.475000 20.110407 -3.209024 -v 2.525000 20.110407 -3.209024 -v 1.475000 20.469528 -4.195702 -v 2.525000 20.469528 -4.195702 -v 0.425000 23.070438 -2.131661 -v 3.575000 23.070438 -2.131661 -v 0.425000 23.429560 -3.118338 -v 3.575000 23.429560 -3.118338 -v 2.525000 23.070438 -2.131661 -v 2.525000 23.429560 -3.118338 -v 1.475000 23.070438 -2.131661 -v 1.475000 23.429560 -3.118338 -v 2.000000 21.097084 -2.849903 -v 2.000000 21.456205 -3.836581 vt 0.562500 0.800000 vt 0.395833 1.000000 vt 0.562500 1.000000 vt 0.208333 0.125000 vt 0.375000 0.150000 vt 0.375000 0.125000 -vt 0.979167 0.025000 -vt 0.791667 -0.000000 -vt 0.770833 0.225000 -vt 0.791667 0.300000 -vt 0.958333 0.250000 -vt 0.791667 0.250000 vt 0.833333 0.425000 vt 0.770833 0.525000 vt 0.854167 0.525000 @@ -2554,15 +2728,8 @@ vt 0.208333 0.725000 vt 0.187500 0.725000 vt 0.000000 0.725000 vt 0.020833 0.700000 -vt 0.958333 0.300000 -vt 0.791667 0.350000 -vt 0.958333 0.350000 vt -0.000000 0.550000 vt 0.750000 0.550000 -vt 0.791667 0.400000 -vt 0.958333 0.400000 -vt 0.750000 0.300000 -vt 1.000000 0.300000 vt 0.583333 0.175000 vt 0.395833 0.175000 vt 0.500000 0.275000 @@ -2585,32 +2752,11 @@ vt 0.583333 0.150000 vt 0.562500 0.150000 vt -0.000000 0.150000 vt 0.750000 0.150000 -vt 0.562500 0.100000 -vt 0.395833 0.125000 vt 0.562500 0.125000 -vt 0.208333 0.100000 -vt 0.375000 0.100000 -vt 0.375000 0.125000 -vt 0.395833 0.100000 -vt 0.187500 0.100000 +vt 0.395833 0.125000 +vt 0.750000 0.125000 vt 0.020833 0.125000 vt 0.187500 0.125000 -vt 0.187500 0.125000 -vt 0.583333 0.100000 -vt 0.562500 0.125000 -vt 0.583333 0.125000 -vt 0.020833 0.100000 -vt -0.000000 0.125000 -vt 0.750000 0.125000 -vt 0.750000 0.100000 -vt 0.583333 0.000000 -vt 0.750000 0.000000 -vt 0.187500 0.000000 -vt 0.208333 -0.000000 -vt 0.395833 -0.000000 -vt 0.375000 -0.000000 -vt 0.020833 0.000000 -vt -0.000000 0.100000 vt 0.187500 0.400000 vt 0.020833 0.400000 vt 0.375000 0.450000 @@ -2626,49 +2772,21 @@ vt 0.187500 0.800000 vt 0.020833 0.800000 vt 0.750000 0.800000 vt 0.583333 0.800000 -vt 0.729167 0.900000 -vt 0.687500 0.950000 -vt 0.729167 0.950000 -vt 0.562500 0.900000 -vt 0.687500 0.900000 -vt 0.854167 0.950000 -vt 0.645833 0.850000 -vt 0.562500 0.800000 -vt 0.562500 0.850000 -vt 0.854167 0.850000 -vt 0.770833 0.800000 -vt 0.770833 0.850000 -vt 0.562500 0.950000 -vt 0.645833 1.000000 -vt 0.770833 1.000000 -vt 0.708333 1.000000 -vt 0.854167 0.900000 -vt 0.708333 0.850000 -vt 0.979167 0.225000 -vt 0.958333 -0.000000 -vt 0.770833 0.025000 vt 0.770833 0.425000 vt 0.750000 0.700000 vt -0.000000 0.700000 -vt 0.750000 0.400000 -vt 1.000000 0.400000 vt 0.458333 0.275000 vt 0.000000 0.175000 vt 0.750000 0.300000 -vt 0.562500 0.000000 -vt -0.000000 0.000000 +vt 0.583333 0.125000 vt 0.208333 0.400000 vt 0.583333 0.450000 vt 0.395833 0.450000 vt 0.562500 0.450000 -vt 0.645833 0.800000 -vt 0.854167 0.800000 -vt 0.562500 1.000000 -vt 0.854167 1.000000 vn 0.0000 -1.0000 0.0000 vn 1.0000 0.0000 0.0000 -vn 0.0000 1.0000 -0.0000 vn 0.0000 0.0000 -1.0000 +vn 0.0000 1.0000 0.0000 vn 0.9701 0.2425 0.0000 vn -0.9701 0.2425 0.0000 vn -0.9487 -0.3162 0.0000 @@ -2679,218 +2797,148 @@ vn 0.0000 0.0000 1.0000 vn -0.7071 0.0000 -0.7071 vn -0.7071 0.0000 0.7071 vn -1.0000 0.0000 0.0000 -vn -0.0000 -0.7071 -0.7071 vn 0.7071 0.0000 -0.7071 -vn 0.0000 -0.9397 -0.3420 -vn 0.9487 -0.2972 -0.1082 -vn -0.9487 -0.2972 -0.1082 -vn -0.9701 0.2279 0.0830 -vn 0.9701 0.2279 0.0830 -vn 0.0000 -0.3420 0.9397 -vn -0.0000 0.3420 -0.9397 s off -f 494/840/143 493/841/143 492/842/143 -f 573/843/144 563/844/144 575/845/144 -f 582/846/145 581/847/145 577/848/145 -f 491/849/145 578/850/145 576/851/145 -f 504/852/146 506/853/146 505/854/146 -f 507/855/145 498/856/145 499/857/145 -f 505/854/143 497/858/143 496/859/143 -f 506/853/147 499/860/147 497/861/147 -f 504/862/148 496/863/148 498/864/148 -f 519/865/143 500/866/143 509/867/143 -f 517/868/149 501/869/149 503/870/149 -f 516/871/143 503/870/143 502/872/143 -f 514/873/150 502/872/150 500/866/150 -f 515/874/143 508/875/143 501/869/143 -f 522/876/151 511/877/151 513/878/151 -f 521/879/143 509/880/143 511/877/143 -f 524/881/151 512/882/151 510/883/151 -f 523/884/143 510/883/143 508/885/143 -f 512/886/143 527/887/143 513/888/143 -f 525/889/143 526/890/143 512/882/143 -f 513/888/143 527/887/143 522/891/143 -f 508/875/143 518/892/143 523/893/143 -f 509/880/143 520/894/143 519/895/143 -f 528/896/145 533/897/145 530/898/145 -f 529/899/145 531/900/145 532/901/145 -f 529/902/145 530/898/145 531/903/145 -f 528/904/145 537/905/145 533/906/145 -f 532/901/145 535/907/145 529/899/145 -f 535/908/145 538/909/145 534/910/145 -f 534/911/145 538/912/145 537/905/145 -f 536/913/145 539/914/145 535/908/145 -f 542/915/143 543/916/143 545/917/143 -f 541/918/143 544/919/143 540/920/143 -f 543/916/143 541/921/143 540/922/143 -f 548/923/143 542/924/143 545/925/143 -f 546/926/143 544/919/143 541/918/143 -f 550/927/143 546/928/143 549/929/143 -f 549/930/143 548/923/143 550/931/143 -f 547/932/143 546/928/143 551/933/143 -f 550/927/152 537/905/152 538/909/152 -f 551/933/153 538/909/153 539/914/153 -f 540/922/154 532/901/154 531/903/154 -f 490/934/146 489/935/146 488/936/146 -f 536/937/155 551/933/155 539/914/155 -f 543/916/146 531/903/146 530/898/146 -f 544/919/156 536/938/156 532/901/156 -f 548/923/144 533/906/144 537/905/144 -f 488/936/157 564/939/157 565/940/157 -f 576/941/144 489/935/144 491/849/144 -f 545/925/158 530/898/158 533/906/158 -f 488/936/156 578/942/156 490/934/156 -f 554/943/154 519/865/154 520/894/154 -f 552/944/158 523/884/158 518/892/158 -f 516/945/146 553/946/146 552/944/146 -f 559/947/155 522/948/155 527/887/155 -f 525/949/152 558/950/152 526/951/152 -f 521/879/156 556/952/156 554/943/156 -f 526/951/153 559/947/153 527/887/153 -f 557/953/144 524/881/144 555/954/144 -f 563/955/145 553/946/145 562/956/145 -f 563/844/145 557/953/145 555/954/145 -f 555/957/145 552/944/145 563/955/145 -f 560/958/145 558/950/145 561/959/145 -f 558/950/145 557/953/145 561/960/145 -f 554/943/145 562/961/145 553/962/145 -f 559/947/145 560/958/145 556/963/145 -f 560/964/145 554/943/145 556/952/145 -f 565/965/143 575/966/143 574/967/143 -f 569/968/143 575/845/143 567/969/143 -f 567/970/143 575/966/143 564/971/143 -f 570/972/143 572/973/143 573/974/143 -f 570/975/143 573/843/143 569/968/143 -f 566/976/143 565/977/143 574/978/143 -f 571/979/143 568/980/143 572/973/143 -f 566/976/143 572/981/143 568/982/143 -f 579/983/154 565/965/154 566/976/154 -f 582/984/156 566/976/156 568/982/156 -f 563/955/146 574/967/146 575/966/146 -f 581/985/153 571/979/153 570/972/153 -f 580/986/152 570/972/152 569/968/152 -f 576/987/158 567/969/158 564/971/158 -f 577/988/144 569/968/144 567/969/144 -f 583/989/155 568/990/155 571/979/155 -f 572/981/156 562/961/156 560/964/156 -f 572/973/153 561/959/153 573/974/153 -f 535/908/153 512/991/153 513/992/153 -f 528/904/144 508/993/144 510/994/144 -f 535/907/156 513/995/156 511/996/156 -f 503/870/146 500/997/146 502/872/146 -f 500/997/146 501/998/146 528/896/146 -f 494/840/146 542/915/146 495/999/146 -f 495/1000/144 549/930/144 493/1001/144 -f 493/1002/153 546/928/153 492/1003/153 -f 492/1004/156 541/918/156 494/1005/156 -f 586/1006/159 585/1007/159 584/1008/159 -f 591/1009/160 585/1007/160 587/1010/160 -f 588/1011/161 586/1006/161 584/1008/161 -f 597/1012/162 592/1013/162 593/1014/162 -f 595/1015/163 596/1016/163 597/1017/163 -f 589/1018/164 596/1019/164 585/1007/164 -f 596/1020/164 588/1011/164 584/1008/164 -f 585/1007/164 596/1021/164 584/1008/164 -f 590/1022/165 597/1017/165 586/1006/165 -f 591/1009/165 597/1012/165 593/1014/165 -f 586/1006/165 597/1023/165 587/1010/165 -f 494/840/143 495/999/143 493/841/143 -f 573/843/144 561/960/144 563/844/144 -f 577/848/145 576/851/145 578/850/145 -f 578/850/145 579/1024/145 582/846/145 -f 582/846/145 583/1025/145 581/847/145 -f 581/847/145 580/1026/145 577/848/145 -f 577/848/145 578/850/145 582/846/145 -f 491/849/145 490/934/145 578/850/145 -f 504/852/146 507/855/146 506/853/146 -f 507/855/145 504/852/145 498/856/145 -f 505/854/143 506/853/143 497/858/143 -f 506/853/147 507/1027/147 499/860/147 -f 504/862/148 505/854/148 496/863/148 -f 519/865/143 514/873/143 500/866/143 -f 517/868/149 515/874/149 501/869/149 -f 516/871/143 517/868/143 503/870/143 -f 514/873/150 516/871/150 502/872/150 -f 515/874/143 518/892/143 508/875/143 -f 522/876/151 521/879/151 511/877/151 -f 521/879/143 520/894/143 509/880/143 -f 524/881/151 525/889/151 512/882/151 -f 523/884/143 524/881/143 510/883/143 -f 512/886/143 526/951/143 527/887/143 -f 529/902/145 528/896/145 530/898/145 -f 528/904/145 534/911/145 537/905/145 -f 532/901/145 536/938/145 535/907/145 -f 535/908/145 539/914/145 538/909/145 -f 543/916/143 542/915/143 541/921/143 -f 548/923/143 549/930/143 542/924/143 -f 546/926/143 547/1028/143 544/919/143 -f 550/927/143 551/933/143 546/928/143 -f 550/927/152 548/923/152 537/905/152 -f 551/933/153 550/927/153 538/909/153 -f 540/922/154 544/919/154 532/901/154 -f 490/934/146 491/849/146 489/935/146 -f 536/937/155 547/1029/155 551/933/155 -f 543/916/146 540/922/146 531/903/146 -f 544/919/156 547/1028/156 536/938/156 -f 548/923/144 545/925/144 533/906/144 -f 488/936/157 489/935/157 564/939/157 -f 576/941/144 564/1030/144 489/935/144 -f 545/925/158 543/916/158 530/898/158 -f 488/936/156 565/1031/156 578/942/156 -f 554/943/154 553/946/154 519/865/154 -f 552/944/158 555/954/158 523/884/158 -f 516/945/146 514/873/146 519/865/146 -f 552/944/146 518/892/146 517/1032/146 -f 518/892/146 515/874/146 517/1032/146 -f 516/945/146 519/865/146 553/946/146 -f 552/944/146 517/1032/146 516/945/146 -f 559/947/155 556/1033/155 522/948/155 -f 525/949/152 557/953/152 558/950/152 -f 554/943/156 520/894/156 521/879/156 -f 521/879/156 522/1034/156 556/952/156 -f 526/951/153 558/950/153 559/947/153 -f 525/949/144 524/881/144 557/953/144 -f 524/881/144 523/884/144 555/954/144 -f 563/955/145 552/944/145 553/946/145 -f 563/844/145 561/960/145 557/953/145 -f 560/958/145 559/947/145 558/950/145 -f 560/964/145 562/961/145 554/943/145 -f 565/965/143 564/971/143 575/966/143 -f 569/968/143 573/843/143 575/845/143 -f 570/972/143 571/979/143 572/973/143 -f 566/976/143 574/978/143 572/981/143 -f 579/983/154 578/1035/154 565/965/154 -f 582/984/156 579/983/156 566/976/156 -f 563/955/146 562/956/146 574/967/146 -f 581/985/153 583/989/153 571/979/153 -f 580/986/152 581/985/152 570/972/152 -f 576/987/158 577/988/158 567/969/158 -f 577/988/144 580/986/144 569/968/144 -f 583/989/155 582/1036/155 568/990/155 -f 572/981/156 574/978/156 562/961/156 -f 572/973/153 560/958/153 561/959/153 -f 535/908/153 534/910/153 512/991/153 -f 510/994/144 512/1037/144 534/911/144 -f 534/911/144 528/904/144 510/994/144 -f 511/996/156 509/1038/156 529/899/156 -f 529/899/156 535/907/156 511/996/156 -f 503/870/146 501/998/146 500/997/146 -f 501/998/146 508/1039/146 528/896/146 -f 528/896/146 529/902/146 500/997/146 -f 529/902/146 509/1040/146 500/997/146 -f 494/840/146 541/921/146 542/915/146 -f 495/1000/144 542/924/144 549/930/144 -f 493/1002/153 549/929/153 546/928/153 -f 492/1004/156 546/926/156 541/918/156 -f 586/1006/159 587/1010/159 585/1007/159 -f 591/1009/160 589/1018/160 585/1007/160 -f 588/1011/161 590/1022/161 586/1006/161 -f 597/1012/162 596/1041/162 592/1013/162 -f 595/1015/163 594/1042/163 596/1016/163 -f 589/1018/164 592/1043/164 596/1019/164 -f 596/1020/164 594/1044/164 588/1011/164 -f 590/1022/165 595/1015/165 597/1017/165 -f 591/1009/165 587/1010/165 597/1012/165 +f 532/918/171 531/919/171 530/920/171 +f 603/921/172 601/922/172 605/923/172 +f 542/924/173 544/925/173 543/926/173 +f 545/927/174 536/928/174 537/929/174 +f 543/926/171 535/930/171 534/931/171 +f 544/925/175 537/932/175 535/933/175 +f 542/934/176 534/935/176 536/936/176 +f 557/937/171 538/938/171 547/939/171 +f 555/940/177 539/941/177 541/942/177 +f 554/943/171 541/942/171 540/944/171 +f 552/945/178 540/944/178 538/938/178 +f 553/946/171 546/947/171 539/941/171 +f 560/948/179 549/949/179 551/950/179 +f 559/951/171 547/952/171 549/949/171 +f 562/953/179 550/954/179 548/955/179 +f 561/956/171 548/955/171 546/957/171 +f 550/958/171 565/959/171 551/960/171 +f 563/961/171 564/962/171 550/954/171 +f 551/960/171 565/959/171 560/963/171 +f 546/947/171 556/964/171 561/965/171 +f 547/952/171 558/966/171 557/967/171 +f 566/968/174 571/969/174 568/970/174 +f 567/971/174 569/972/174 570/973/174 +f 567/974/174 568/970/174 569/975/174 +f 566/976/174 575/977/174 571/978/174 +f 570/973/174 573/979/174 567/971/174 +f 573/980/174 576/981/174 572/982/174 +f 572/983/174 576/984/174 575/977/174 +f 574/985/174 577/986/174 573/980/174 +f 580/987/171 581/988/171 583/989/171 +f 579/990/171 582/991/171 578/992/171 +f 581/988/171 579/993/171 578/994/171 +f 586/995/171 580/996/171 583/997/171 +f 584/998/171 582/991/171 579/990/171 +f 588/999/171 584/1000/171 587/1001/171 +f 587/1002/171 586/995/171 588/1003/171 +f 585/1004/171 584/1000/171 589/1005/171 +f 588/999/180 575/977/180 576/981/180 +f 589/1005/181 576/981/181 577/986/181 +f 578/994/182 570/973/182 569/975/182 +f 574/1006/183 589/1005/183 577/986/183 +f 581/988/173 569/975/173 568/970/173 +f 582/991/184 574/1007/184 570/973/184 +f 586/995/172 571/978/172 575/977/172 +f 583/997/185 568/970/185 571/978/185 +f 592/1008/182 557/937/182 558/966/182 +f 590/1009/185 561/956/185 556/964/185 +f 554/1010/173 591/1011/173 590/1009/173 +f 597/1012/183 560/1013/183 565/959/183 +f 563/1014/180 596/1015/180 564/1016/180 +f 559/951/184 594/1017/184 592/1008/184 +f 564/1016/181 597/1012/181 565/959/181 +f 595/1018/172 562/953/172 593/1019/172 +f 601/1020/174 591/1011/174 600/1021/174 +f 601/922/174 595/1018/174 593/1019/174 +f 593/1022/174 590/1009/174 601/1020/174 +f 598/1023/174 596/1015/174 599/1024/174 +f 596/1015/174 595/1018/174 599/1025/174 +f 592/1008/174 600/1026/174 591/1027/174 +f 597/1012/174 598/1023/174 594/1028/174 +f 598/1029/174 592/1008/174 594/1017/174 +f 601/1020/173 604/1030/173 605/1031/173 +f 602/1032/184 600/1026/184 598/1029/184 +f 602/1033/181 599/1024/181 603/1034/181 +f 573/980/181 550/1035/181 551/1036/181 +f 566/976/172 546/1037/172 548/1038/172 +f 573/979/184 551/1039/184 549/1040/184 +f 541/942/173 538/1041/173 540/944/173 +f 538/1041/173 539/1042/173 566/968/173 +f 532/918/173 580/987/173 533/1043/173 +f 533/1044/172 587/1002/172 531/1045/172 +f 531/1046/181 584/1000/181 530/1047/181 +f 530/1048/184 579/990/184 532/1049/184 +f 532/918/171 533/1043/171 531/919/171 +f 603/921/172 599/1025/172 601/922/172 +f 542/924/173 545/927/173 544/925/173 +f 545/927/174 542/924/174 536/928/174 +f 543/926/171 544/925/171 535/930/171 +f 544/925/175 545/1050/175 537/932/175 +f 542/934/176 543/926/176 534/935/176 +f 557/937/171 552/945/171 538/938/171 +f 555/940/177 553/946/177 539/941/177 +f 554/943/171 555/940/171 541/942/171 +f 552/945/178 554/943/178 540/944/178 +f 553/946/171 556/964/171 546/947/171 +f 560/948/179 559/951/179 549/949/179 +f 559/951/171 558/966/171 547/952/171 +f 562/953/179 563/961/179 550/954/179 +f 561/956/171 562/953/171 548/955/171 +f 550/958/171 564/1016/171 565/959/171 +f 567/974/174 566/968/174 568/970/174 +f 566/976/174 572/983/174 575/977/174 +f 570/973/174 574/1007/174 573/979/174 +f 573/980/174 577/986/174 576/981/174 +f 581/988/171 580/987/171 579/993/171 +f 586/995/171 587/1002/171 580/996/171 +f 584/998/171 585/1051/171 582/991/171 +f 588/999/171 589/1005/171 584/1000/171 +f 588/999/180 586/995/180 575/977/180 +f 589/1005/181 588/999/181 576/981/181 +f 578/994/182 582/991/182 570/973/182 +f 574/1006/183 585/1052/183 589/1005/183 +f 581/988/173 578/994/173 569/975/173 +f 582/991/184 585/1051/184 574/1007/184 +f 586/995/172 583/997/172 571/978/172 +f 583/997/185 581/988/185 568/970/185 +f 592/1008/182 591/1011/182 557/937/182 +f 590/1009/185 593/1019/185 561/956/185 +f 554/1010/173 552/945/173 557/937/173 +f 590/1009/173 556/964/173 555/1053/173 +f 556/964/173 553/946/173 555/1053/173 +f 554/1010/173 557/937/173 591/1011/173 +f 590/1009/173 555/1053/173 554/1010/173 +f 597/1012/183 594/1054/183 560/1013/183 +f 563/1014/180 595/1018/180 596/1015/180 +f 592/1008/184 558/966/184 559/951/184 +f 559/951/184 560/1055/184 594/1017/184 +f 564/1016/181 596/1015/181 597/1012/181 +f 563/1014/172 562/953/172 595/1018/172 +f 562/953/172 561/956/172 593/1019/172 +f 601/1020/174 590/1009/174 591/1011/174 +f 601/922/174 599/1025/174 595/1018/174 +f 598/1023/174 597/1012/174 596/1015/174 +f 598/1029/174 600/1026/174 592/1008/174 +f 601/1020/173 600/1021/173 604/1030/173 +f 602/1032/184 604/1056/184 600/1026/184 +f 602/1033/181 598/1023/181 599/1024/181 +f 573/980/181 572/982/181 550/1035/181 +f 548/1038/172 550/1057/172 572/983/172 +f 572/983/172 566/976/172 548/1038/172 +f 549/1040/184 547/1058/184 567/971/184 +f 567/971/184 573/979/184 549/1040/184 +f 541/942/173 539/1042/173 538/1041/173 +f 539/1042/173 546/1059/173 566/968/173 +f 566/968/173 567/974/173 538/1041/173 +f 567/974/173 547/1060/173 538/1041/173 +f 532/918/173 579/993/173 580/987/173 +f 533/1044/172 580/996/172 587/1002/172 +f 531/1046/181 587/1001/181 584/1000/181 +f 530/1048/184 584/998/184 579/990/184 o Helmet v -4.725003 -2.950001 -4.725000 v 25.451866 4.962900 4.881973 @@ -3353,243 +3401,243 @@ vn 0.3827 -0.9239 0.0000 vn 0.7022 -0.1170 -0.7022 vn -0.7493 -0.0937 -0.6556 s off -f 616/1045/166 605/1046/166 604/1047/166 -f 614/1048/167 603/1049/167 602/1050/167 -f 612/1051/168 601/1052/168 600/1053/168 -f 617/1054/169 600/1053/169 605/1046/169 -f 615/1055/170 604/1047/170 603/1056/170 -f 613/1057/171 602/1050/171 601/1052/171 -f 611/1058/171 622/1059/171 610/1060/171 -f 609/1061/169 620/1062/169 608/1063/169 -f 607/1064/170 618/1065/170 606/1066/170 -f 606/1067/167 623/1068/167 611/1069/167 -f 610/1070/168 621/1071/168 609/1072/168 -f 608/1073/166 619/1074/166 607/1075/166 -f 617/1054/172 618/1076/172 612/1051/172 -f 618/1065/172 613/1057/172 612/1051/172 -f 619/1074/172 614/1048/172 613/1057/172 -f 614/1048/172 621/1077/172 615/1078/172 -f 621/1071/172 616/1045/172 615/1055/172 -f 622/1059/172 617/1054/172 616/1045/172 -f 610/1079/172 609/1080/172 608/1081/172 -f 624/1082/166 627/1083/166 625/1084/166 -f 634/1085/167 645/1086/167 633/1087/167 -f 626/1088/166 631/1089/166 628/1090/166 -f 636/1091/166 647/1092/166 635/1093/166 -f 626/1088/166 624/1094/166 630/1095/166 -f 632/1096/168 643/1097/168 629/1098/168 -f 629/1098/169 648/1099/169 636/1091/169 -f 635/1093/170 646/1100/170 634/1101/170 -f 633/1087/171 644/1102/171 632/1096/171 -f 653/1103/171 642/1104/171 641/1105/171 -f 651/1106/169 640/1107/169 639/1108/169 -f 649/1109/170 638/1110/170 637/1111/170 -f 654/1112/167 637/1113/167 642/1114/167 -f 652/1115/168 641/1116/168 640/1117/168 -f 650/1118/166 639/1119/166 638/1120/166 -f 648/1099/173 649/1121/173 654/1112/173 -f 644/1102/173 649/1109/173 643/1097/173 -f 645/1086/173 650/1118/173 644/1102/173 -f 645/1086/173 652/1122/173 651/1106/173 -f 647/1092/173 652/1115/173 646/1100/173 -f 648/1099/173 653/1103/173 647/1092/173 -f 641/1123/173 642/1124/173 637/1125/173 -f 655/1126/166 657/1127/166 656/1128/166 -f 625/1084/174 676/1129/174 624/1082/174 -f 627/1130/166 655/1126/166 625/1131/166 -f 660/1132/175 661/1133/175 659/1134/175 -f 664/1135/176 658/1136/176 659/1134/176 -f 659/1134/175 661/1133/175 664/1135/175 -f 662/1137/166 665/1138/166 661/1133/166 -f 666/1139/177 667/1140/177 665/1138/177 -f 668/1141/178 669/1142/178 667/1140/178 -f 670/1143/179 671/1144/179 669/1145/179 -f 672/1146/171 673/1147/171 671/1144/171 -f 674/1148/180 675/1149/180 673/1147/180 -f 669/1150/181 678/1151/181 667/1152/181 -f 669/1150/182 671/1144/182 677/1153/182 -f 665/1138/183 667/1152/183 678/1151/183 -f 661/1133/184 678/1151/184 664/1135/184 -f 677/1153/185 673/1147/185 679/1154/185 -f 673/1147/186 675/1155/186 679/1154/186 -f 679/1154/187 625/1156/187 655/1126/187 -f 663/1157/166 680/1158/166 658/1159/166 -f 663/1157/173 677/1153/173 679/1154/173 -f 682/1160/166 685/1161/166 683/1162/166 -f 668/1163/188 687/1164/188 670/1165/188 -f 668/1163/189 666/1139/189 686/1166/189 -f 670/1143/190 687/1167/190 672/1146/190 -f 624/1168/191 688/1169/191 630/1095/191 -f 676/1129/192 674/1148/192 688/1170/192 -f 672/1146/193 688/1170/193 674/1148/193 -f 662/1137/175 660/1132/175 689/1171/175 -f 662/1137/194 686/1166/194 666/1139/194 -f 689/1171/176 684/1172/176 682/1173/176 -f 687/1164/172 682/1160/172 683/1162/172 -f 692/1174/195 707/1175/195 706/1176/195 -f 695/1177/175 690/1178/175 691/1179/175 -f 697/1180/174 694/1181/174 695/1177/174 -f 699/1182/191 694/1183/191 696/1184/191 -f 694/1181/196 698/1185/196 690/1178/196 -f 701/1186/172 700/1187/172 708/1188/172 -f 706/1176/197 700/1189/197 692/1174/197 -f 702/1190/187 697/1191/187 695/1192/187 -f 695/1177/198 691/1179/198 702/1193/198 -f 598/1194/173 705/1195/173 703/1196/173 -f 691/1179/199 598/1194/199 702/1193/199 -f 706/1176/200 691/1179/200 690/1178/200 -f 709/1197/171 712/1198/171 710/1199/171 -f 708/1188/201 690/1178/201 698/1185/201 -f 707/1175/202 704/1200/202 598/1194/202 -f 714/1201/166 716/1202/166 713/1203/166 -f 711/1204/174 716/1202/174 712/1205/174 -f 710/1206/178 714/1201/178 709/1207/178 -f 712/1208/173 715/1209/173 710/1210/173 -f 709/1197/172 713/1203/172 711/1211/172 -f 718/1212/178 719/1213/178 717/1214/178 -f 718/1212/203 724/1215/203 720/1216/203 -f 717/1214/204 723/1217/204 721/1218/204 -f 721/1219/179 718/1212/179 717/1214/179 -f 720/1216/175 725/1220/175 719/1213/175 -f 720/1216/205 724/1215/205 726/1221/205 -f 719/1213/206 725/1222/206 723/1217/206 -f 728/1223/178 729/1224/178 727/1225/178 -f 728/1223/203 734/1226/203 730/1227/203 -f 727/1225/204 733/1228/204 731/1229/204 -f 727/1225/179 732/1230/179 728/1223/179 -f 730/1227/175 735/1231/175 729/1224/175 -f 730/1227/205 734/1226/205 736/1232/205 -f 729/1224/206 735/1233/206 733/1228/206 -f 738/1234/207 739/1235/207 737/1236/207 -f 740/1237/208 741/1238/208 739/1235/208 -f 742/1239/209 743/1240/209 741/1238/209 -f 744/1241/210 745/1242/210 743/1240/210 -f 746/1243/211 747/1244/211 745/1245/211 -f 748/1246/212 749/1247/212 747/1244/212 -f 750/1248/171 746/1249/171 742/1250/171 -f 750/1251/213 751/1252/213 749/1247/213 -f 752/1253/214 737/1236/214 751/1252/214 -f 747/1254/166 749/1255/166 751/1256/166 -f 616/1045/166 617/1054/166 605/1046/166 -f 614/1048/167 615/1078/167 603/1049/167 -f 612/1051/168 613/1057/168 601/1052/168 -f 617/1054/169 612/1051/169 600/1053/169 -f 615/1055/170 616/1045/170 604/1047/170 -f 613/1057/171 614/1048/171 602/1050/171 -f 611/1058/171 623/1257/171 622/1059/171 -f 609/1061/169 621/1077/169 620/1062/169 -f 607/1064/170 619/1258/170 618/1065/170 -f 606/1067/167 618/1076/167 623/1068/167 -f 610/1070/168 622/1259/168 621/1071/168 -f 608/1073/166 620/1260/166 619/1074/166 -f 617/1054/172 623/1068/172 618/1076/172 -f 618/1065/172 619/1258/172 613/1057/172 -f 619/1074/172 620/1260/172 614/1048/172 -f 614/1048/172 620/1062/172 621/1077/172 -f 621/1071/172 622/1259/172 616/1045/172 -f 622/1059/172 623/1257/172 617/1054/172 -f 608/1081/172 607/1261/172 610/1079/172 -f 607/1261/172 606/1262/172 610/1079/172 -f 606/1262/172 611/1263/172 610/1079/172 -f 624/1082/166 626/1264/166 627/1083/166 -f 634/1085/167 646/1265/167 645/1086/167 -f 626/1088/166 630/1095/166 631/1089/166 -f 636/1091/166 648/1099/166 647/1092/166 -f 632/1096/168 644/1102/168 643/1097/168 -f 629/1098/169 643/1097/169 648/1099/169 -f 635/1093/170 647/1092/170 646/1100/170 -f 633/1087/171 645/1086/171 644/1102/171 -f 653/1103/171 654/1266/171 642/1104/171 -f 651/1106/169 652/1122/169 640/1107/169 -f 649/1109/170 650/1267/170 638/1110/170 -f 654/1112/167 649/1121/167 637/1113/167 -f 652/1115/168 653/1268/168 641/1116/168 -f 650/1118/166 651/1269/166 639/1119/166 -f 648/1099/173 643/1097/173 649/1121/173 -f 644/1102/173 650/1267/173 649/1109/173 -f 645/1086/173 651/1269/173 650/1118/173 -f 645/1086/173 646/1265/173 652/1122/173 -f 647/1092/173 653/1268/173 652/1115/173 -f 648/1099/173 654/1266/173 653/1103/173 -f 637/1125/173 638/1270/173 641/1123/173 -f 638/1270/173 639/1271/173 641/1123/173 -f 639/1271/173 640/1272/173 641/1123/173 -f 655/1126/166 627/1130/166 657/1127/166 -f 625/1084/174 675/1149/174 676/1129/174 -f 660/1132/175 662/1137/175 661/1133/175 -f 664/1135/176 663/1273/176 658/1136/176 -f 662/1137/166 666/1139/166 665/1138/166 -f 666/1139/177 668/1141/177 667/1140/177 -f 668/1141/178 670/1274/178 669/1142/178 -f 670/1143/179 672/1146/179 671/1144/179 -f 672/1146/171 674/1148/171 673/1147/171 -f 674/1148/180 676/1129/180 675/1149/180 -f 669/1150/181 677/1153/181 678/1151/181 -f 661/1133/184 665/1138/184 678/1151/184 -f 677/1153/185 671/1144/185 673/1147/185 -f 679/1154/187 675/1155/187 625/1156/187 -f 663/1157/166 681/1275/166 680/1158/166 -f 679/1154/173 655/1126/173 656/1128/173 -f 679/1154/173 656/1128/173 681/1275/173 -f 664/1135/173 678/1151/173 663/1157/173 -f 678/1151/173 677/1153/173 663/1157/173 -f 679/1154/173 681/1275/173 663/1157/173 -f 682/1160/166 684/1276/166 685/1161/166 -f 668/1163/188 686/1166/188 687/1164/188 -f 624/1168/191 676/1277/191 688/1169/191 -f 672/1146/193 687/1167/193 688/1170/193 -f 662/1137/194 689/1171/194 686/1166/194 -f 689/1171/176 660/1132/176 684/1172/176 -f 683/1162/172 631/1089/172 688/1169/172 -f 631/1089/172 630/1095/172 688/1169/172 -f 683/1162/172 688/1169/172 687/1164/172 -f 687/1164/172 686/1166/172 682/1160/172 -f 686/1166/172 689/1171/172 682/1160/172 -f 692/1174/195 693/1278/195 707/1175/195 -f 695/1177/175 694/1181/175 690/1178/175 -f 697/1180/174 696/1279/174 694/1181/174 -f 699/1182/191 698/1280/191 694/1183/191 -f 698/1280/172 699/1182/172 708/1188/172 -f 699/1182/172 701/1186/172 708/1188/172 -f 706/1176/215 708/1188/215 700/1189/215 -f 702/1190/187 703/1196/187 697/1191/187 -f 703/1196/173 702/1190/173 598/1194/173 -f 598/1194/173 704/1281/173 705/1195/173 -f 691/1179/199 707/1175/199 598/1194/199 -f 706/1176/200 707/1175/200 691/1179/200 -f 709/1197/171 711/1211/171 712/1198/171 -f 708/1188/201 706/1176/201 690/1178/201 -f 707/1175/216 693/1278/216 704/1200/216 -f 714/1201/166 715/1209/166 716/1202/166 -f 711/1204/174 713/1203/174 716/1202/174 -f 710/1206/178 715/1209/178 714/1201/178 -f 712/1208/173 716/1202/173 715/1209/173 -f 709/1197/172 714/1201/172 713/1203/172 -f 718/1212/178 720/1216/178 719/1213/178 -f 718/1212/203 722/1282/203 724/1215/203 -f 717/1214/204 719/1213/204 723/1217/204 -f 721/1219/179 722/1283/179 718/1212/179 -f 720/1216/175 726/1284/175 725/1220/175 -f 728/1223/178 730/1227/178 729/1224/178 -f 728/1223/203 732/1285/203 734/1226/203 -f 727/1225/204 729/1224/204 733/1228/204 -f 727/1225/179 731/1286/179 732/1230/179 -f 730/1227/175 736/1287/175 735/1231/175 -f 738/1234/207 740/1237/207 739/1235/207 -f 740/1237/208 742/1239/208 741/1238/208 -f 742/1239/209 744/1241/209 743/1240/209 -f 744/1241/210 746/1288/210 745/1242/210 -f 746/1243/211 748/1246/211 747/1244/211 -f 748/1246/212 750/1251/212 749/1247/212 -f 742/1250/171 740/1289/171 738/1290/171 -f 738/1290/171 752/1291/171 742/1250/171 -f 752/1291/171 750/1248/171 742/1250/171 -f 750/1248/171 748/1292/171 746/1249/171 -f 746/1249/171 744/1293/171 742/1250/171 -f 750/1251/213 752/1253/213 751/1252/213 -f 752/1253/214 738/1234/214 737/1236/214 -f 751/1256/166 737/1294/166 739/1295/166 -f 739/1295/166 741/1296/166 751/1256/166 -f 741/1296/166 743/1297/166 751/1256/166 -f 743/1297/166 745/1298/166 751/1256/166 -f 745/1298/166 747/1254/166 751/1256/166 +f 624/1061/186 613/1062/186 612/1063/186 +f 622/1064/187 611/1065/187 610/1066/187 +f 620/1067/188 609/1068/188 608/1069/188 +f 625/1070/189 608/1069/189 613/1062/189 +f 623/1071/190 612/1063/190 611/1072/190 +f 621/1073/191 610/1066/191 609/1068/191 +f 619/1074/191 630/1075/191 618/1076/191 +f 617/1077/189 628/1078/189 616/1079/189 +f 615/1080/190 626/1081/190 614/1082/190 +f 614/1083/187 631/1084/187 619/1085/187 +f 618/1086/188 629/1087/188 617/1088/188 +f 616/1089/186 627/1090/186 615/1091/186 +f 625/1070/192 626/1092/192 620/1067/192 +f 626/1081/192 621/1073/192 620/1067/192 +f 627/1090/192 622/1064/192 621/1073/192 +f 622/1064/192 629/1093/192 623/1094/192 +f 629/1087/192 624/1061/192 623/1071/192 +f 630/1075/192 625/1070/192 624/1061/192 +f 618/1095/192 617/1096/192 616/1097/192 +f 632/1098/186 635/1099/186 633/1100/186 +f 642/1101/187 653/1102/187 641/1103/187 +f 634/1104/186 639/1105/186 636/1106/186 +f 644/1107/186 655/1108/186 643/1109/186 +f 634/1104/186 632/1110/186 638/1111/186 +f 640/1112/188 651/1113/188 637/1114/188 +f 637/1114/189 656/1115/189 644/1107/189 +f 643/1109/190 654/1116/190 642/1117/190 +f 641/1103/191 652/1118/191 640/1112/191 +f 661/1119/191 650/1120/191 649/1121/191 +f 659/1122/189 648/1123/189 647/1124/189 +f 657/1125/190 646/1126/190 645/1127/190 +f 662/1128/187 645/1129/187 650/1130/187 +f 660/1131/188 649/1132/188 648/1133/188 +f 658/1134/186 647/1135/186 646/1136/186 +f 656/1115/193 657/1137/193 662/1128/193 +f 652/1118/193 657/1125/193 651/1113/193 +f 653/1102/193 658/1134/193 652/1118/193 +f 653/1102/193 660/1138/193 659/1122/193 +f 655/1108/193 660/1131/193 654/1116/193 +f 656/1115/193 661/1119/193 655/1108/193 +f 649/1139/193 650/1140/193 645/1141/193 +f 663/1142/186 665/1143/186 664/1144/186 +f 633/1100/194 684/1145/194 632/1098/194 +f 635/1146/186 663/1142/186 633/1147/186 +f 668/1148/195 669/1149/195 667/1150/195 +f 672/1151/196 666/1152/196 667/1150/196 +f 667/1150/195 669/1149/195 672/1151/195 +f 670/1153/186 673/1154/186 669/1149/186 +f 674/1155/197 675/1156/197 673/1154/197 +f 676/1157/198 677/1158/198 675/1156/198 +f 678/1159/199 679/1160/199 677/1161/199 +f 680/1162/191 681/1163/191 679/1160/191 +f 682/1164/200 683/1165/200 681/1163/200 +f 677/1166/201 686/1167/201 675/1168/201 +f 677/1166/202 679/1160/202 685/1169/202 +f 673/1154/203 675/1168/203 686/1167/203 +f 669/1149/204 686/1167/204 672/1151/204 +f 685/1169/205 681/1163/205 687/1170/205 +f 681/1163/206 683/1171/206 687/1170/206 +f 687/1170/207 633/1172/207 663/1142/207 +f 671/1173/186 688/1174/186 666/1175/186 +f 671/1173/193 685/1169/193 687/1170/193 +f 690/1176/186 693/1177/186 691/1178/186 +f 676/1179/208 695/1180/208 678/1181/208 +f 676/1179/209 674/1155/209 694/1182/209 +f 678/1159/210 695/1183/210 680/1162/210 +f 632/1184/211 696/1185/211 638/1111/211 +f 684/1145/212 682/1164/212 696/1186/212 +f 680/1162/213 696/1186/213 682/1164/213 +f 670/1153/195 668/1148/195 697/1187/195 +f 670/1153/214 694/1182/214 674/1155/214 +f 697/1187/196 692/1188/196 690/1189/196 +f 695/1180/192 690/1176/192 691/1178/192 +f 700/1190/215 715/1191/215 714/1192/215 +f 703/1193/195 698/1194/195 699/1195/195 +f 705/1196/194 702/1197/194 703/1193/194 +f 707/1198/211 702/1199/211 704/1200/211 +f 702/1197/216 706/1201/216 698/1194/216 +f 709/1202/192 708/1203/192 716/1204/192 +f 714/1192/217 708/1205/217 700/1190/217 +f 710/1206/207 705/1207/207 703/1208/207 +f 703/1193/218 699/1195/218 710/1209/218 +f 606/1210/193 713/1211/193 711/1212/193 +f 699/1195/219 606/1210/219 710/1209/219 +f 714/1192/220 699/1195/220 698/1194/220 +f 717/1213/191 720/1214/191 718/1215/191 +f 716/1204/221 698/1194/221 706/1201/221 +f 715/1191/222 712/1216/222 606/1210/222 +f 722/1217/186 724/1218/186 721/1219/186 +f 719/1220/194 724/1218/194 720/1221/194 +f 718/1222/198 722/1217/198 717/1223/198 +f 720/1224/193 723/1225/193 718/1226/193 +f 717/1213/192 721/1219/192 719/1227/192 +f 726/1228/198 727/1229/198 725/1230/198 +f 726/1228/223 732/1231/223 728/1232/223 +f 725/1230/224 731/1233/224 729/1234/224 +f 729/1235/199 726/1228/199 725/1230/199 +f 728/1232/195 733/1236/195 727/1229/195 +f 728/1232/225 732/1231/225 734/1237/225 +f 727/1229/226 733/1238/226 731/1233/226 +f 736/1239/198 737/1240/198 735/1241/198 +f 736/1239/223 742/1242/223 738/1243/223 +f 735/1241/224 741/1244/224 739/1245/224 +f 735/1241/199 740/1246/199 736/1239/199 +f 738/1243/195 743/1247/195 737/1240/195 +f 738/1243/225 742/1242/225 744/1248/225 +f 737/1240/226 743/1249/226 741/1244/226 +f 746/1250/227 747/1251/227 745/1252/227 +f 748/1253/228 749/1254/228 747/1251/228 +f 750/1255/229 751/1256/229 749/1254/229 +f 752/1257/230 753/1258/230 751/1256/230 +f 754/1259/231 755/1260/231 753/1261/231 +f 756/1262/232 757/1263/232 755/1260/232 +f 758/1264/191 754/1265/191 750/1266/191 +f 758/1267/233 759/1268/233 757/1263/233 +f 760/1269/234 745/1252/234 759/1268/234 +f 755/1270/186 757/1271/186 759/1272/186 +f 624/1061/186 625/1070/186 613/1062/186 +f 622/1064/187 623/1094/187 611/1065/187 +f 620/1067/188 621/1073/188 609/1068/188 +f 625/1070/189 620/1067/189 608/1069/189 +f 623/1071/190 624/1061/190 612/1063/190 +f 621/1073/191 622/1064/191 610/1066/191 +f 619/1074/191 631/1273/191 630/1075/191 +f 617/1077/189 629/1093/189 628/1078/189 +f 615/1080/190 627/1274/190 626/1081/190 +f 614/1083/187 626/1092/187 631/1084/187 +f 618/1086/188 630/1275/188 629/1087/188 +f 616/1089/186 628/1276/186 627/1090/186 +f 625/1070/192 631/1084/192 626/1092/192 +f 626/1081/192 627/1274/192 621/1073/192 +f 627/1090/192 628/1276/192 622/1064/192 +f 622/1064/192 628/1078/192 629/1093/192 +f 629/1087/192 630/1275/192 624/1061/192 +f 630/1075/192 631/1273/192 625/1070/192 +f 616/1097/192 615/1277/192 618/1095/192 +f 615/1277/192 614/1278/192 618/1095/192 +f 614/1278/192 619/1279/192 618/1095/192 +f 632/1098/186 634/1280/186 635/1099/186 +f 642/1101/187 654/1281/187 653/1102/187 +f 634/1104/186 638/1111/186 639/1105/186 +f 644/1107/186 656/1115/186 655/1108/186 +f 640/1112/188 652/1118/188 651/1113/188 +f 637/1114/189 651/1113/189 656/1115/189 +f 643/1109/190 655/1108/190 654/1116/190 +f 641/1103/191 653/1102/191 652/1118/191 +f 661/1119/191 662/1282/191 650/1120/191 +f 659/1122/189 660/1138/189 648/1123/189 +f 657/1125/190 658/1283/190 646/1126/190 +f 662/1128/187 657/1137/187 645/1129/187 +f 660/1131/188 661/1284/188 649/1132/188 +f 658/1134/186 659/1285/186 647/1135/186 +f 656/1115/193 651/1113/193 657/1137/193 +f 652/1118/193 658/1283/193 657/1125/193 +f 653/1102/193 659/1285/193 658/1134/193 +f 653/1102/193 654/1281/193 660/1138/193 +f 655/1108/193 661/1284/193 660/1131/193 +f 656/1115/193 662/1282/193 661/1119/193 +f 645/1141/193 646/1286/193 649/1139/193 +f 646/1286/193 647/1287/193 649/1139/193 +f 647/1287/193 648/1288/193 649/1139/193 +f 663/1142/186 635/1146/186 665/1143/186 +f 633/1100/194 683/1165/194 684/1145/194 +f 668/1148/195 670/1153/195 669/1149/195 +f 672/1151/196 671/1289/196 666/1152/196 +f 670/1153/186 674/1155/186 673/1154/186 +f 674/1155/197 676/1157/197 675/1156/197 +f 676/1157/198 678/1290/198 677/1158/198 +f 678/1159/199 680/1162/199 679/1160/199 +f 680/1162/191 682/1164/191 681/1163/191 +f 682/1164/200 684/1145/200 683/1165/200 +f 677/1166/201 685/1169/201 686/1167/201 +f 669/1149/204 673/1154/204 686/1167/204 +f 685/1169/205 679/1160/205 681/1163/205 +f 687/1170/207 683/1171/207 633/1172/207 +f 671/1173/186 689/1291/186 688/1174/186 +f 687/1170/193 663/1142/193 664/1144/193 +f 687/1170/193 664/1144/193 689/1291/193 +f 672/1151/193 686/1167/193 671/1173/193 +f 686/1167/193 685/1169/193 671/1173/193 +f 687/1170/193 689/1291/193 671/1173/193 +f 690/1176/186 692/1292/186 693/1177/186 +f 676/1179/208 694/1182/208 695/1180/208 +f 632/1184/211 684/1293/211 696/1185/211 +f 680/1162/213 695/1183/213 696/1186/213 +f 670/1153/214 697/1187/214 694/1182/214 +f 697/1187/196 668/1148/196 692/1188/196 +f 691/1178/192 639/1105/192 696/1185/192 +f 639/1105/192 638/1111/192 696/1185/192 +f 691/1178/192 696/1185/192 695/1180/192 +f 695/1180/192 694/1182/192 690/1176/192 +f 694/1182/192 697/1187/192 690/1176/192 +f 700/1190/215 701/1294/215 715/1191/215 +f 703/1193/195 702/1197/195 698/1194/195 +f 705/1196/194 704/1295/194 702/1197/194 +f 707/1198/211 706/1296/211 702/1199/211 +f 706/1296/192 707/1198/192 716/1204/192 +f 707/1198/192 709/1202/192 716/1204/192 +f 714/1192/235 716/1204/235 708/1205/235 +f 710/1206/207 711/1212/207 705/1207/207 +f 711/1212/193 710/1206/193 606/1210/193 +f 606/1210/193 712/1297/193 713/1211/193 +f 699/1195/219 715/1191/219 606/1210/219 +f 714/1192/220 715/1191/220 699/1195/220 +f 717/1213/191 719/1227/191 720/1214/191 +f 716/1204/221 714/1192/221 698/1194/221 +f 715/1191/236 701/1294/236 712/1216/236 +f 722/1217/186 723/1225/186 724/1218/186 +f 719/1220/194 721/1219/194 724/1218/194 +f 718/1222/198 723/1225/198 722/1217/198 +f 720/1224/193 724/1218/193 723/1225/193 +f 717/1213/192 722/1217/192 721/1219/192 +f 726/1228/198 728/1232/198 727/1229/198 +f 726/1228/223 730/1298/223 732/1231/223 +f 725/1230/224 727/1229/224 731/1233/224 +f 729/1235/199 730/1299/199 726/1228/199 +f 728/1232/195 734/1300/195 733/1236/195 +f 736/1239/198 738/1243/198 737/1240/198 +f 736/1239/223 740/1301/223 742/1242/223 +f 735/1241/224 737/1240/224 741/1244/224 +f 735/1241/199 739/1302/199 740/1246/199 +f 738/1243/195 744/1303/195 743/1247/195 +f 746/1250/227 748/1253/227 747/1251/227 +f 748/1253/228 750/1255/228 749/1254/228 +f 750/1255/229 752/1257/229 751/1256/229 +f 752/1257/230 754/1304/230 753/1258/230 +f 754/1259/231 756/1262/231 755/1260/231 +f 756/1262/232 758/1267/232 757/1263/232 +f 750/1266/191 748/1305/191 746/1306/191 +f 746/1306/191 760/1307/191 750/1266/191 +f 760/1307/191 758/1264/191 750/1266/191 +f 758/1264/191 756/1308/191 754/1265/191 +f 754/1265/191 752/1309/191 750/1266/191 +f 758/1267/233 760/1269/233 759/1268/233 +f 760/1269/234 746/1250/234 745/1252/234 +f 759/1272/186 745/1310/186 747/1311/186 +f 747/1311/186 749/1312/186 759/1272/186 +f 749/1312/186 751/1313/186 759/1272/186 +f 751/1313/186 753/1314/186 759/1272/186 +f 753/1314/186 755/1270/186 759/1272/186 diff --git a/src/main/resources/assets/hbm/models/armor/test.obj b/src/main/resources/assets/hbm/models/armor/test.obj new file mode 100644 index 000000000..614588e3e --- /dev/null +++ b/src/main/resources/assets/hbm/models/armor/test.obj @@ -0,0 +1,219 @@ +# Blender v2.79 (sub 0) OBJ File: 'test.blend' +# www.blender.org +o Chest +v -4.000000 12.000000 2.000000 +v 4.000000 12.000000 2.000000 +v -4.000000 12.000000 -2.000000 +v 4.000000 12.000000 -2.000000 +v 4.000000 0.000000 -2.000000 +v -4.000000 0.000000 -2.000000 +v 4.000000 0.000000 2.000000 +v -4.000000 0.000000 2.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +s off +f 5/1/1 2/2/1 7/3/1 +f 8/4/2 3/5/2 6/6/2 +f 6/6/3 4/7/3 5/1/3 +f 7/3/4 1/8/4 8/4/4 +f 2/2/5 3/5/5 1/8/5 +f 6/6/6 7/3/6 8/4/6 +f 5/1/1 4/7/1 2/2/1 +f 8/4/2 1/8/2 3/5/2 +f 6/6/3 3/5/3 4/7/3 +f 7/3/4 2/2/4 1/8/4 +f 2/2/5 4/7/5 3/5/5 +f 6/6/6 5/1/6 7/3/6 +o LeftArm +v 4.000000 12.000000 2.000000 +v 8.000000 12.000000 2.000000 +v 4.000000 12.000000 -2.000000 +v 8.000000 12.000000 -2.000000 +v 8.000000 0.000000 -2.000000 +v 4.000000 0.000000 -2.000000 +v 8.000000 0.000000 2.000000 +v 4.000000 0.000000 2.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +s off +f 13/9/7 10/10/7 15/11/7 +f 16/12/8 11/13/8 14/14/8 +f 14/14/9 12/15/9 13/9/9 +f 15/11/10 9/16/10 16/12/10 +f 10/10/11 11/13/11 9/16/11 +f 14/14/12 15/11/12 16/12/12 +f 13/9/7 12/15/7 10/10/7 +f 16/12/8 9/16/8 11/13/8 +f 14/14/9 11/13/9 12/15/9 +f 15/11/10 10/10/10 9/16/10 +f 10/10/11 12/15/11 11/13/11 +f 14/14/12 13/9/12 15/11/12 +o RightArm +v -8.000000 12.000000 2.000000 +v -4.000000 12.000000 2.000000 +v -8.000000 12.000000 -2.000000 +v -4.000000 12.000000 -2.000000 +v -4.000000 0.000000 -2.000000 +v -8.000000 0.000000 -2.000000 +v -4.000000 0.000000 2.000000 +v -8.000000 0.000000 2.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +s off +f 21/17/13 18/18/13 23/19/13 +f 24/20/14 19/21/14 22/22/14 +f 22/22/15 20/23/15 21/17/15 +f 23/19/16 17/24/16 24/20/16 +f 18/18/17 19/21/17 17/24/17 +f 22/22/18 23/19/18 24/20/18 +f 21/17/13 20/23/13 18/18/13 +f 24/20/14 17/24/14 19/21/14 +f 22/22/15 19/21/15 20/23/15 +f 23/19/16 18/18/16 17/24/16 +f 18/18/17 20/23/17 19/21/17 +f 22/22/18 21/17/18 23/19/18 +o RightLeg +v -4.000000 24.000000 2.000000 +v 0.000000 24.000000 2.000000 +v -4.000000 24.000000 -2.000000 +v 0.000000 24.000000 -2.000000 +v 0.000000 12.000000 -2.000000 +v -4.000000 12.000000 -2.000000 +v 0.000000 12.000000 2.000000 +v -4.000000 12.000000 2.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +s off +f 29/25/19 26/26/19 31/27/19 +f 32/28/20 27/29/20 30/30/20 +f 30/30/21 28/31/21 29/25/21 +f 31/27/22 25/32/22 32/28/22 +f 26/26/23 27/29/23 25/32/23 +f 30/30/24 31/27/24 32/28/24 +f 29/25/19 28/31/19 26/26/19 +f 32/28/20 25/32/20 27/29/20 +f 30/30/21 27/29/21 28/31/21 +f 31/27/22 26/26/22 25/32/22 +f 26/26/23 28/31/23 27/29/23 +f 30/30/24 29/25/24 31/27/24 +o LeftLeg +v 0.000000 24.000000 2.000000 +v 4.000000 24.000000 2.000000 +v 0.000000 24.000000 -2.000000 +v 4.000000 24.000000 -2.000000 +v 4.000000 12.000000 -2.000000 +v 0.000000 12.000000 -2.000000 +v 4.000000 12.000000 2.000000 +v 0.000000 12.000000 2.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +s off +f 37/33/25 34/34/25 39/35/25 +f 40/36/26 35/37/26 38/38/26 +f 38/38/27 36/39/27 37/33/27 +f 39/35/28 33/40/28 40/36/28 +f 34/34/29 35/37/29 33/40/29 +f 38/38/30 39/35/30 40/36/30 +f 37/33/25 36/39/25 34/34/25 +f 40/36/26 33/40/26 35/37/26 +f 38/38/27 35/37/27 36/39/27 +f 39/35/28 34/34/28 33/40/28 +f 34/34/29 36/39/29 35/37/29 +f 38/38/30 37/33/30 39/35/30 +o Helmet +v 25.451866 -3.037100 4.881973 +v -4.000000 0.000000 4.000000 +v 4.000000 0.000000 4.000000 +v -4.000000 0.000000 -4.000000 +v 4.000000 0.000000 -4.000000 +v 4.000000 -8.000000 -4.000000 +v -4.000000 -8.000000 -4.000000 +v 4.000000 -8.000000 4.000000 +v -4.000000 -8.000000 4.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +s off +f 46/41/31 43/42/31 48/43/31 +f 49/44/32 44/45/32 47/46/32 +f 47/46/33 45/47/33 46/41/33 +f 48/43/34 42/48/34 49/44/34 +f 43/42/35 44/45/35 42/48/35 +f 47/46/36 48/43/36 49/44/36 +f 46/41/31 45/47/31 43/42/31 +f 49/44/32 42/48/32 44/45/32 +f 47/46/33 44/45/33 45/47/33 +f 48/43/34 43/42/34 42/48/34 +f 43/42/35 45/47/35 44/45/35 +f 47/46/36 46/41/36 48/43/36 diff --git a/src/main/resources/assets/hbm/textures/items/circuit_targeting_tier1.png b/src/main/resources/assets/hbm/textures/items/circuit_targeting_tier1.png index 5e65de4c294714daca65f98997131cf4a3417feb..88f593cc1323cd133034e4ebb947cd5f0d115a24 100644 GIT binary patch delta 317 zcmV-D0mA;w0@wnOB!2{RLP=Bz2nYy#2xN!=009q4L_t(IjqQ;kZo@zjMZc?R0+y#& zac|)E1_@i(mDbcSt`wO$B$5x311w(dQ*4Nd4ZP$R*~&JlN(=g>)zg4CtC<1*v!*Bt zI_K!UXW#eKS~G;eaU4mK)>=ODo)%d|&~+V@QaGJX5D^@YM}H`#P?jZPjL=%&HF*XA z5rK$cv)Mo?mDJNTA;!2qV+^<3Ee;<<_VSr!0N}mn`Fvi*MV{w5k*&4J^E|s7;Z|~=dEW5{se-3THArBw3sG)+l;xm+>;=(=yqu-1|!$8lr`fm&bE!!RVgUatv%ZLoh&`Sv;_{G0g#0jab*=;5T5 P00000NkvXXu0mjfmZp&t delta 305 zcmV-10nYx|0?Y!CB!2;OQb$4nuFf3k00004XF*Lt006O%3;baP00009a7bBm000id z000id0mpBsWB>pF8FWQhbW?9;ba!ELWdLwtX>N2bZe?^JG%heMGBNQWX_Wu~0K7>= zK~y+T?UJz#!Y~j;y{1>l5_kd%izbx|B-|RMvsi#pnBwp=Ie%~>ESEGy`uaNg?&;qt z#{9qc1un)&jIk=EB)3xIDCaEqQg_eAunNGn)JP#XfG#AIM+781jiKs#CyL*0QR00000NkvXXu0mjf D&?74iG-+D6$pVvNgt2U z8#K=lI6|+Gui&B=2n@<73f$GIXi-8frjNlX`_Mbw7UK-w6xz1vz~$VtI6pZ2fqxPI zGqIhL)odLs#KA%wD-Xjs$wa*z=2-f?!_jn&^aW(hw4@pZ9e<)Yp87!E;-DG@)hJGr z6n=Z~*FBAv^0LB@pM!_@+7Un^w8in|BARG|@48xGRuA{IeK@vqm0N}C0 z<=WF&Q1W4-Q}W;b=sn_jhxAOC-J6ttu{xq-x&0E9Dp7&ljSOHjwRyy1G3*xNAc-PT zCeY3V@oWVE5n^%BZVbYG_j0*hCIC<>{kX#7<(xc>q`l282MbpX93)>MT3*hbrEtAd z@412^!!TsGo2IFFKMiyT+qM00000NkvXX Hu0mjfims{e delta 323 zcmV-J0lfZ{1MUKlG=C*YL_t(IjqQ;?OT$1I#(!5L=1(bPu>Amjhf2jogn~tfj_KCX zo86P_S1qmePPWesntnr3;f$P;R9NYdYD^v1QWbf zNjkP#$nvfrIdNKu_jHcyx?K5th*2o&3a<)w1yoRN8g$jE+o_bMsQ`%MZUTUrspgMW zJ6=yLyj58TGdv(Uv>_?JZ9$WiQguBD0?mI?uRG*b2LA4#Wu`^^pa1{>07*qoM6N<$f>3UmH2?qr delta 307 zcmV-30nGm80?q=EB!2;OQb$4nuFf3k00004XF*Lt006O%3;baP00009a7bBm000id z000id0mpBsWB>pF8FWQhbW?9;ba!ELWdLwtX>N2bZe?^JG%heMGBNQWX_Wu~0KQ2? zK~y+T?UFGH0x=XsQ+P%p7B)5#h>#{t3R9)aDLjIw5(^6(8-MvSUuMlNhLko2hGE&C z$IK_j{Li$3l#)DlM)lkqDW#}Ga#%^NRl4iKWeR|tvx*Qn09{CoQ6NC>Tcb`0fB+EU zoYQ}DIerq|Hbwz0sD&^Ms(h^xLJ$Z5!dMB3+Dg`1L5f)d@4W(`>w2DMS*g27KyaC2 z8YCiQ_-GLgLo9Se$2WZlKtBx8m%t(5e0l?VJ_P(^-~~s)-3e|^SF`{C002ovPDHLk FV1mBja6kY6 diff --git a/src/main/resources/assets/hbm/textures/items/circuit_targeting_tier4.png b/src/main/resources/assets/hbm/textures/items/circuit_targeting_tier4.png index b5188f3c53d0f7bf7f867920ea47098a50bd5d67..9f0ade52dfcc4e19dd8ace11aea925dfdc461918 100644 GIT binary patch delta 301 zcmV+|0n+~40@wnOG=C3CL_t(IjqQ;=PQySDg};fMm7E5N!ldII6gdFgz)1Wk9h)F3 z>V%q-kP;FoTyY9cfqwI#!OlV?S_)qC_7&foSq=P4s#m9{dS}1{U;?Dy zMkk-E+(b^=@NguX3pzc;gwSlE_a)MAv&*U>ob@U2l4z57DN*u>( ztyO&+X#E9ma?_veN^n#qNsMhe$B(Mh*$S8=r(5V~25!F0T?fy%Kd#`(TC3|m z91cC-q{e#4vL?*)G)+DKwczl;_x-)h^S`MDxEO+T@-^D?00000NkvXXu0mjfhNh6K delta 304 zcmV-00nh%}0^0(RG=CCFL_t(IjqQ&=OT$1Iho38MX{AoCrHgwv!7pHN%9hp-5Dpy0 z(X8Ss#V^oi>lFML-CVOdBuFo4j*hQG{xqQhR|kJ^Jlws!55I%|v=U2_AW4E)8wkU9 zu{IEE0}*)^b&*Qn)}USnm`-B=9Oo7agL8fdfEu|adnA?MtA9F>=Ky*6To}^y6#)78 z1VC#oVHk>}j{=|oHXFqA)-CU8#qr^3c!qqxq13%PYT$VZQjZ`wf4c6-&dQ6m@M z_eE>nG&m`z7I1(a`+e=MCH0raP#B^pQUJ?kIce2-lGW;=xh)p!strsgFq_4|O{e}* zwARvQ7=|78Whv0U7-KrjvaG{j1#`E{>r2z&-^>r9jd++K8#2`Z00009-euzzND7xp zjek5Gu#O@S5r_!J7}n$rKzmq9iNN!iudQvvL1EtjaRMKGIzh)@*8k6&QYTDvaOG-d45plhnCVl2y&@z(~= gPn_{x#rQY%4Xa3?JZXPq_y7O^07*qoM6N<$g8M*~jsO4v delta 316 zcmV-C0mJ_30@nhNB!2;OQb$4nuFf3k00004XF*Lt006O%3;baP00009a7bBm000id z000id0mpBsWB>pF8FWQhbW?9;ba!ELWdLwtX>N2bZe?^JG%heMGBNQWX_Wu~0LMv0 zK~y+T?UFGH0x=Xs|3OluNRuYjUM5#aV{2zB58w#|J6l0)J%51*@B~}fc!4jIWi-1O zQrZ|8hQQBb<`a?sd2e8M7xms3g%I@kkmArV40?WwHrIv66af2CiU@%N(1dJnq7Wd? zx#ENX2mm1|CCxdjj+;*+Yi$A4pc=w7sPeVO`YH+mKo~0_QC%sL7yyXPf~UPZ zC5ng=opZQpF8FWQhbW?9;ba!ELWdLwtX>N2bZe?^JG%heMGBNQWX_Wu~0MAK8 zK~y+T?UEr1LO~QoUv(D-i$OsIK`cMnT)=dL3|K5Cae_Pf)qiHOSpNca16G4>;mLh+ zb^ga;qQ!yBW#G->-p7di&wB&?$x17^nl5tJ@pNMjJzA>8Y^TX};V}ikuvnW2fdi0) zbVo~t06EIpoDcv3AjEsGAq3Ui_LFEYl>uT<3}G5n`C6khSSSPlVXTBiaV6)RB1J7h zyEiugRLZHAraf6Hxky0pm|_|vA|(515e-9hEDLvf7Jz;jqBntAz@dBrQl16;WZ(%+ WkHpO-zkbvJ0000Yj6;7IvC-z?9#`7?jm~+Mr2;wzt@|+e*!~DD5H+=b^gd-l~O;ayk|2qR?S`7 z!Qi=XV;QgN!MlOK^w(I{8Esy@dixub56-&#q!s7O#Y?UO8qVP9>gTe~DWM4f8>TZ& literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/envsuit_helmet.png b/src/main/resources/assets/hbm/textures/items/envsuit_helmet.png new file mode 100644 index 0000000000000000000000000000000000000000..e0b2d4a0774c307d25528f8afd7499a255b8d602 GIT binary patch literal 252 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf+o)#?<5wM97@y&|OYDK(U5mcf@RYlRH!vREC(&yt#2@ y78}FuZMA9z4i`wEpaOp${iSV^LIX0;}CRei7J0!fCyJ7EU8SkyGa}O8Z$ge6=aE--FFpHVtDgB zdCoN9jh>HPJ9gjJ=BSB~(syuqGbj1EjIiMUN3LuQax;!~^Yj>=%)k8OMB`So*U@jR e1K$6azPBbe^Y>+4Ay%O07(8A5T-G@yGywo!5O9D1 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/envsuit_plate.png b/src/main/resources/assets/hbm/textures/items/envsuit_plate.png new file mode 100644 index 0000000000000000000000000000000000000000..de43d9705a96b1888466fdf4d3a264154ae7599d GIT binary patch literal 258 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfbf6=RF2tFvGOEO)unBl$g-Y%!R3rkIZgA-`&mp z$CicR*0#6F%}Z|FQkp+;ipqjj9EvKNR`E^y9Ld3`vUEmKQ0SCY%U978JD3>0J-1%9 z% Date: Sat, 5 Aug 2023 20:09:21 +0200 Subject: [PATCH 224/432] NEI handlers, more suffering --- changelog | 4 +++ .../handler/nei/ElectrolyserFluidHandler.java | 27 +++++++++++++++++++ .../handler/nei/ElectrolyserMetalHandler.java | 27 +++++++++++++++++++ .../inventory/recipes/ChemplantRecipes.java | 9 +------ .../recipes/ElectrolyserFluidRecipes.java | 23 ++++++++++++++++ .../recipes/ElectrolyserMetalRecipes.java | 23 ++++++++++++++++ .../hbm/inventory/recipes/MixerRecipes.java | 2 +- src/main/java/com/hbm/main/NEIConfig.java | 2 ++ 8 files changed, 108 insertions(+), 9 deletions(-) create mode 100644 src/main/java/com/hbm/handler/nei/ElectrolyserFluidHandler.java create mode 100644 src/main/java/com/hbm/handler/nei/ElectrolyserMetalHandler.java diff --git a/changelog b/changelog index 34c06cd90..b2534b4d8 100644 --- a/changelog +++ b/changelog @@ -14,6 +14,10 @@ * All current nether bedrock ores are tier 1 and do not require any bore fluid * Custom machines now show their recipes in NEI * All it took was battling NEI's source code for 3 hours and my sanity +* The chlorocalcite centrifugation process now requires 8,000mB of sulfuric acid instead of 100mB of water +* Mixed chlorocalcite solution now requires flux as a reducing agent +* All chlorine producing electrolysis recipes have been moved to the electrolysis machine and can no longer be done in the chemical plant + * If only there was a much simpler recipe that may have existed at some point, life could be a dream ## Fixed * Fixed custom machines not sending fluid diff --git a/src/main/java/com/hbm/handler/nei/ElectrolyserFluidHandler.java b/src/main/java/com/hbm/handler/nei/ElectrolyserFluidHandler.java new file mode 100644 index 000000000..11af20db8 --- /dev/null +++ b/src/main/java/com/hbm/handler/nei/ElectrolyserFluidHandler.java @@ -0,0 +1,27 @@ +package com.hbm.handler.nei; + +import java.awt.Rectangle; + +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.gui.GUIElectrolyserFluid; +import com.hbm.inventory.recipes.ElectrolyserFluidRecipes; + +public class ElectrolyserFluidHandler extends NEIUniversalHandler { + + public ElectrolyserFluidHandler() { + super("Electrolysis", ModBlocks.machine_electrolyser, ElectrolyserFluidRecipes.getRecipes()); + } + + @Override + public String getKey() { + return "ntmElectrolysisFluid"; + } + + @Override + public void loadTransferRects() { + super.loadTransferRects(); + transferRectsGui.add(new RecipeTransferRect(new Rectangle(57, 15, 12, 40), "ntmElectrolysisFluid")); + guiGui.add(GUIElectrolyserFluid.class); + RecipeTransferRectHandler.registerRectsToGuis(guiGui, transferRectsGui); + } +} diff --git a/src/main/java/com/hbm/handler/nei/ElectrolyserMetalHandler.java b/src/main/java/com/hbm/handler/nei/ElectrolyserMetalHandler.java new file mode 100644 index 000000000..f1d5b6e68 --- /dev/null +++ b/src/main/java/com/hbm/handler/nei/ElectrolyserMetalHandler.java @@ -0,0 +1,27 @@ +package com.hbm.handler.nei; + +import java.awt.Rectangle; + +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.gui.GUIElectrolyserMetal; +import com.hbm.inventory.recipes.ElectrolyserMetalRecipes; + +public class ElectrolyserMetalHandler extends NEIUniversalHandler { + + public ElectrolyserMetalHandler() { + super("Electrolysis", ModBlocks.machine_electrolyser, ElectrolyserMetalRecipes.getRecipes()); + } + + @Override + public String getKey() { + return "ntmElectrolysisMetal"; + } + + @Override + public void loadTransferRects() { + super.loadTransferRects(); + transferRectsGui.add(new RecipeTransferRect(new Rectangle(2, 35, 22, 25), "ntmElectrolysisMetal")); + guiGui.add(GUIElectrolyserMetal.class); + RecipeTransferRectHandler.registerRectsToGuis(guiGui, transferRectsGui); + } +} diff --git a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java index 62ba87dfa..a8a582fe6 100644 --- a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java @@ -399,15 +399,8 @@ public class ChemplantRecipes extends SerializableRecipe { .inputFluids(new FluidStack(Fluids.MUSTARDGAS, 4000)) .outputItems(new ItemStack(ModItems.ammo_arty, 1, 11))); recipes.add(new ChemRecipe(101, "CC_CENTRIFUGE", 200) - .inputFluids(new FluidStack(Fluids.CHLOROCALCITE_CLEANED, 500), new FluidStack(Fluids.WATER, 1_000)) + .inputFluids(new FluidStack(Fluids.CHLOROCALCITE_CLEANED, 500), new FluidStack(Fluids.SULFURIC_ACID, 8_000)) .outputFluids(new FluidStack(Fluids.POTASSIUM_CHLORIDE, 250), new FluidStack(Fluids.CALCIUM_CHLORIDE, 250))); - recipes.add(new ChemRecipe(102, "PC_ELECTROLYSIS", 200) - .inputFluids(new FluidStack(Fluids.POTASSIUM_CHLORIDE, 250)) - .outputItems(new ItemStack(ModItems.dust)) - .outputFluids(new FluidStack(Fluids.CHLORINE, 125))); - recipes.add(new ChemRecipe(103, "CC_ELECTROLYSIS", 200) - .inputFluids(new FluidStack(Fluids.CALCIUM_CHLORIDE, 250)) - .outputFluids(new FluidStack(Fluids.CHLORINE, 125), new FluidStack(Fluids.CALCIUM_SOLUTION, 125))); } public static void registerFuelProcessing() { diff --git a/src/main/java/com/hbm/inventory/recipes/ElectrolyserFluidRecipes.java b/src/main/java/com/hbm/inventory/recipes/ElectrolyserFluidRecipes.java index 6eee6ba55..0f783b9f9 100644 --- a/src/main/java/com/hbm/inventory/recipes/ElectrolyserFluidRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ElectrolyserFluidRecipes.java @@ -1,7 +1,9 @@ package com.hbm.inventory.recipes; import java.io.IOException; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map.Entry; import com.google.gson.JsonElement; @@ -10,8 +12,10 @@ import com.google.gson.stream.JsonWriter; import com.hbm.inventory.FluidStack; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.recipes.loader.SerializableRecipe; import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemFluidIcon; import net.minecraft.item.ItemStack; @@ -28,6 +32,25 @@ public class ElectrolyserFluidRecipes extends SerializableRecipe { recipes.put(Fluids.CALCIUM_CHLORIDE, new ElectrolysisRecipe(250, new FluidStack(Fluids.CHLORINE, 125), new FluidStack(Fluids.CALCIUM_SOLUTION, 125))); } + public static HashMap getRecipes() { + + HashMap recipes = new HashMap(); + + for(Entry entry : ElectrolyserFluidRecipes.recipes.entrySet()) { + + ElectrolysisRecipe recipe = entry.getValue(); + FluidStack input = new FluidStack(entry.getKey(), recipe.amount); + List outputs = new ArrayList(); + if(recipe.output1.type != Fluids.NONE) outputs.add(ItemFluidIcon.make(recipe.output1)); + if(recipe.output2.type != Fluids.NONE) outputs.add(ItemFluidIcon.make(recipe.output2)); + for(ItemStack byproduct : recipe.byproduct) outputs.add(byproduct); + + recipes.put(new ComparableStack(ItemFluidIcon.make(input)), outputs.toArray()); + } + + return recipes; + } + @Override public String getFileName() { return "hbmElectrolyzerFluid.json"; diff --git a/src/main/java/com/hbm/inventory/recipes/ElectrolyserMetalRecipes.java b/src/main/java/com/hbm/inventory/recipes/ElectrolyserMetalRecipes.java index d5d3fe492..781d7a1da 100644 --- a/src/main/java/com/hbm/inventory/recipes/ElectrolyserMetalRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ElectrolyserMetalRecipes.java @@ -1,6 +1,7 @@ package com.hbm.inventory.recipes; import java.io.IOException; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map.Entry; @@ -12,11 +13,14 @@ import com.google.gson.stream.JsonWriter; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.OreDictStack; +import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.material.MaterialShapes; import com.hbm.inventory.material.Mats; import com.hbm.inventory.material.Mats.MaterialStack; import com.hbm.inventory.recipes.loader.SerializableRecipe; import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemFluidIcon; +import com.hbm.items.machine.ItemScraps; import com.hbm.util.ItemStackUtil; import net.minecraft.item.ItemStack; @@ -55,6 +59,25 @@ public class ElectrolyserMetalRecipes extends SerializableRecipe { return null; } + public static HashMap getRecipes() { + + HashMap recipes = new HashMap(); + + for(Entry entry : ElectrolyserMetalRecipes.recipes.entrySet()) { + + ElectrolysisMetalRecipe recipe = entry.getValue(); + Object[] input = new Object[] { entry.getKey().copy(), new ComparableStack(ItemFluidIcon.make(Fluids.NITRIC_ACID, 100)) }; + List outputs = new ArrayList(); + if(recipe.output1 != null) outputs.add(ItemScraps.create(recipe.output1, true)); + if(recipe.output2 != null) outputs.add(ItemScraps.create(recipe.output2, true)); + for(ItemStack byproduct : recipe.byproduct) outputs.add(byproduct); + + recipes.put(input, outputs.toArray()); + } + + return recipes; + } + @Override public String getFileName() { return "hbmElectrolyzerMetal.json"; diff --git a/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java b/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java index 0a68397d6..d47d2289c 100644 --- a/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java @@ -79,7 +79,7 @@ public class MixerRecipes extends SerializableRecipe { register(Fluids.CHLOROCALCITE_SOLUTION, new MixerRecipe(500, 50).setStack1(new FluidStack(Fluids.WATER, 250)).setStack2(new FluidStack(Fluids.NITRIC_ACID, 250)).setSolid(new OreDictStack(CHLOROCALCITE.dust()))); - register(Fluids.CHLOROCALCITE_MIX, new MixerRecipe(1000, 50).setStack1(new FluidStack(Fluids.CHLOROCALCITE_SOLUTION, 500)).setStack2(new FluidStack(Fluids.SULFURIC_ACID, 500))); + register(Fluids.CHLOROCALCITE_MIX, new MixerRecipe(1000, 50).setStack1(new FluidStack(Fluids.CHLOROCALCITE_SOLUTION, 500)).setStack2(new FluidStack(Fluids.SULFURIC_ACID, 500)).setSolid(new ComparableStack(ModItems.powder_flux))); } public static void register(FluidType type, MixerRecipe... rec) { diff --git a/src/main/java/com/hbm/main/NEIConfig.java b/src/main/java/com/hbm/main/NEIConfig.java index c5bc758a2..7ce0ffd04 100644 --- a/src/main/java/com/hbm/main/NEIConfig.java +++ b/src/main/java/com/hbm/main/NEIConfig.java @@ -73,6 +73,8 @@ public class NEIConfig implements IConfigureNEI { registerHandler(new SawmillHandler()); registerHandler(new MixerHandler()); registerHandler(new OutgasserHandler()); + registerHandler(new ElectrolyserFluidHandler()); + registerHandler(new ElectrolyserMetalHandler()); for(MachineConfiguration conf : CustomMachineConfigJSON.niceList) registerHandlerBypass(new CustomMachineHandler(conf)); From f9a81f9b21e7910dac33bdb8f112c8924cbcca4b Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 6 Aug 2023 19:27:14 +0200 Subject: [PATCH 225/432] finished electrolysis recipes --- changelog | 4 +- gradle.properties | 2 +- src/main/java/com/hbm/config/WorldConfig.java | 2 + .../java/com/hbm/inventory/material/Mats.java | 2 + .../inventory/recipes/AssemblerRecipes.java | 10 ++ .../inventory/recipes/CombinationRecipes.java | 3 +- .../recipes/ElectrolyserMetalRecipes.java | 97 +++++++++++++++++- src/main/java/com/hbm/lib/RefStrings.java | 2 +- .../com/hbm/world/feature/BedrockOre.java | 1 + src/main/resources/assets/hbm/lang/de_DE.lang | 7 ++ src/main/resources/assets/hbm/lang/en_US.lang | 7 ++ .../models/weapons/grenade_launcher.png | Bin 0 -> 52964 bytes 12 files changed, 127 insertions(+), 10 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/grenade_launcher.png diff --git a/changelog b/changelog index b2534b4d8..e3f002b80 100644 --- a/changelog +++ b/changelog @@ -10,7 +10,7 @@ ## Changed * Bedrock ores now spawn in the nether - * Nether bedrock ores include red phosphorus and glowstone, both yielding powders instead of ores + * Nether bedrock ores include red phosphorus, quartz and glowstone, all yielding the items directly instead of ores * All current nether bedrock ores are tier 1 and do not require any bore fluid * Custom machines now show their recipes in NEI * All it took was battling NEI's source code for 3 hours and my sanity @@ -18,6 +18,8 @@ * Mixed chlorocalcite solution now requires flux as a reducing agent * All chlorine producing electrolysis recipes have been moved to the electrolysis machine and can no longer be done in the chemical plant * If only there was a much simpler recipe that may have existed at some point, life could be a dream +* Zirconium and lithium are now recognized crucible materials +* Glowstone now yields 100mB of chlorine in the combination oven instead of the initial 50mB ## Fixed * Fixed custom machines not sending fluid diff --git a/gradle.properties b/gradle.properties index fb976de9d..f40234eee 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4671 +mod_build_number=4683 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ diff --git a/src/main/java/com/hbm/config/WorldConfig.java b/src/main/java/com/hbm/config/WorldConfig.java index c2ac4bbb3..7e389cec0 100644 --- a/src/main/java/com/hbm/config/WorldConfig.java +++ b/src/main/java/com/hbm/config/WorldConfig.java @@ -50,6 +50,7 @@ public class WorldConfig { public static int bedrockRedstoneSpawn = 50; public static int bedrockGlowstoneSpawn = 100; public static int bedrockPhosphorusSpawn = 50; + public static int bedrockQuartzSpawn = 100; public static int ironClusterSpawn = 4; public static int titaniumClusterSpawn = 2; @@ -159,6 +160,7 @@ public class WorldConfig { bedrockGlowstoneSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.BN00_bedrockGlowstoneWeight", "Spawn weight for glowstone bedrock ore", 100); bedrockPhosphorusSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.BN01_bedrockPhosphorusWeight", "Spawn weight for phosphorus bedrock ore", 50); + bedrockQuartzSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.BN01_bedrockQuartzWeight", "Spawn weight for quartz bedrock ore", 100); ironClusterSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.C00_ironClusterSpawn", "Amount of iron cluster veins per chunk", 4); titaniumClusterSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.C01_titaniumClusterSpawn", "Amount of titanium cluster veins per chunk", 2); diff --git a/src/main/java/com/hbm/inventory/material/Mats.java b/src/main/java/com/hbm/inventory/material/Mats.java index 58ccaad64..b4adf18aa 100644 --- a/src/main/java/com/hbm/inventory/material/Mats.java +++ b/src/main/java/com/hbm/inventory/material/Mats.java @@ -106,6 +106,8 @@ public class Mats { public static final NTMMaterial MAT_BERYLLIUM = makeSmeltable(400, BE, 0xB2B2A6, 0x0F0F03, 0xAE9572).setShapes(NUGGET, INGOT, DUST, BLOCK); public static final NTMMaterial MAT_COBALT = makeSmeltable(2700, CO, 0xC2D1EE, 0x353554, 0x8F72AE).setShapes(NUGGET, DUSTTINY, BILLET, INGOT, DUST, BLOCK); public static final NTMMaterial MAT_BORON = makeSmeltable(500, B, 0xBDC8D2, 0x29343E, 0xAD72AE).setShapes(DUSTTINY, INGOT, DUST, BLOCK); + public static final NTMMaterial MAT_ZIRCONIUM = makeSmeltable(4000, ZR, 0xE3DCBE, 0x3E3719, 0xADA688).setShapes(NUGGET, DUSTTINY, BILLET, INGOT, DUST, CASTPLATE, BLOCK); + public static final NTMMaterial MAT_LITHIUM = makeSmeltable(300, LI, 0xFFFFFF, 0x818181, 0xD6D6D6).setShapes(INGOT, DUST, BLOCK); public static final NTMMaterial MAT_CADMIUM = makeSmeltable(4800, CD, 0xFFFADE, 0x350000, 0xA85600).setShapes(INGOT, DUST); public static final NTMMaterial MAT_OSMIRIDIUM = makeSmeltable(7699, OSMIRIDIUM, 0xDBE3EF, 0x7891BE, 0xACBDD9).setShapes(NUGGET, INGOT, CASTPLATE); diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index de0d35584..2c37aaa5d 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -1001,6 +1001,16 @@ public class AssemblerRecipes { new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.circuit_red_copper, 1) }, 200); + + makeRecipe(new ComparableStack(ModBlocks.machine_electrolyser, 1), new AStack[] { + new OreDictStack(STEEL.plateCast(), 8), + new OreDictStack(CU.plate528(), 16), + new OreDictStack(RUBBER.ingot(), 8), + new ComparableStack(ModItems.ingot_firebrick, 16), + new ComparableStack(ModItems.tank_steel, 3), + new ComparableStack(ModItems.coil_copper, 16), + new ComparableStack(ModItems.circuit_gold, 2) + }, 200); makeRecipe(new ComparableStack(ModItems.euphemium_capacitor, 1), new AStack[] { diff --git a/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java b/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java index f1d5d7658..a84cae509 100644 --- a/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java @@ -37,7 +37,6 @@ public class CombinationRecipes extends SerializableRecipe { recipes.put(COAL.gem(), new Pair(DictFrame.fromOne(ModItems.coke, EnumCokeType.COAL), new FluidStack(Fluids.COALCREOSOTE, 100))); recipes.put(COAL.dust(), new Pair(DictFrame.fromOne(ModItems.coke, EnumCokeType.COAL), new FluidStack(Fluids.COALCREOSOTE, 100))); recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.briquette, EnumBriquetteType.COAL)), new Pair(DictFrame.fromOne(ModItems.coke, EnumCokeType.COAL), new FluidStack(Fluids.COALCREOSOTE, 150))); - recipes.put(LIGNITE.gem(), new Pair(DictFrame.fromOne(ModItems.coke, EnumCokeType.LIGNITE), new FluidStack(Fluids.COALCREOSOTE, 50))); recipes.put(LIGNITE.dust(), new Pair(DictFrame.fromOne(ModItems.coke, EnumCokeType.LIGNITE), new FluidStack(Fluids.COALCREOSOTE, 50))); @@ -45,7 +44,7 @@ public class CombinationRecipes extends SerializableRecipe { recipes.put(CINNABAR.crystal(), new Pair(new ItemStack(ModItems.sulfur), new FluidStack(Fluids.MERCURY, 100))); //recipes.put(CHLOROCALCITE.dust(), new Pair(new ItemStack(ModItems.powder_calcium), new FluidStack(Fluids.CHLORINE, 250))); - recipes.put(new ComparableStack(Items.glowstone_dust), new Pair(new ItemStack(ModItems.sulfur), new FluidStack(Fluids.CHLORINE, 50))); + recipes.put(new ComparableStack(Items.glowstone_dust), new Pair(new ItemStack(ModItems.sulfur), new FluidStack(Fluids.CHLORINE, 100))); recipes.put(new ComparableStack(DictFrame.fromOne(ModBlocks.stone_resource, EnumStoneType.BAUXITE)), new Pair(new ItemStack(ModItems.ingot_aluminium, 2), new FluidStack(Fluids.REDMUD, 250))); recipes.put(KEY_LOG, new Pair(new ItemStack(Items.coal, 1 ,1), new FluidStack(Fluids.WOODOIL, 250))); diff --git a/src/main/java/com/hbm/inventory/recipes/ElectrolyserMetalRecipes.java b/src/main/java/com/hbm/inventory/recipes/ElectrolyserMetalRecipes.java index 781d7a1da..aabebb3a4 100644 --- a/src/main/java/com/hbm/inventory/recipes/ElectrolyserMetalRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ElectrolyserMetalRecipes.java @@ -35,12 +35,99 @@ public class ElectrolyserMetalRecipes extends SerializableRecipe { recipes.put(new ComparableStack(ModItems.crystal_iron), new ElectrolysisMetalRecipe( new MaterialStack(Mats.MAT_IRON, MaterialShapes.INGOT.q(6)), new MaterialStack(Mats.MAT_TITANIUM, MaterialShapes.INGOT.q(2)), - new ItemStack(ModItems.powder_lithium_tiny, 1))); + new ItemStack(ModItems.powder_lithium_tiny, 3))); + recipes.put(new ComparableStack(ModItems.crystal_gold), new ElectrolysisMetalRecipe( - new MaterialStack(Mats.MAT_IRON, MaterialShapes.INGOT.q(6)), + new MaterialStack(Mats.MAT_GOLD, MaterialShapes.INGOT.q(6)), new MaterialStack(Mats.MAT_LEAD, MaterialShapes.INGOT.q(2)), - new ItemStack(ModItems.powder_lithium_tiny, 1), - new ItemStack(ModItems.ingot_mercury, 1))); + new ItemStack(ModItems.powder_lithium_tiny, 3), + new ItemStack(ModItems.ingot_mercury, 2))); + + recipes.put(new ComparableStack(ModItems.crystal_uranium), new ElectrolysisMetalRecipe( + new MaterialStack(Mats.MAT_URANIUM, MaterialShapes.INGOT.q(6)), + new MaterialStack(Mats.MAT_RADIUM, MaterialShapes.NUGGET.q(4)), + new ItemStack(ModItems.powder_lithium_tiny, 3))); + + recipes.put(new ComparableStack(ModItems.crystal_thorium), new ElectrolysisMetalRecipe( + new MaterialStack(Mats.MAT_THORIUM, MaterialShapes.INGOT.q(6)), + new MaterialStack(Mats.MAT_URANIUM, MaterialShapes.INGOT.q(2)), + new ItemStack(ModItems.powder_lithium_tiny, 3))); + + recipes.put(new ComparableStack(ModItems.crystal_plutonium), new ElectrolysisMetalRecipe( + new MaterialStack(Mats.MAT_PLUTONIUM, MaterialShapes.INGOT.q(6)), + new MaterialStack(Mats.MAT_POLONIUM, MaterialShapes.INGOT.q(2)), + new ItemStack(ModItems.powder_lithium_tiny, 3))); + + recipes.put(new ComparableStack(ModItems.crystal_titanium), new ElectrolysisMetalRecipe( + new MaterialStack(Mats.MAT_TITANIUM, MaterialShapes.INGOT.q(6)), + new MaterialStack(Mats.MAT_IRON, MaterialShapes.INGOT.q(2)), + new ItemStack(ModItems.powder_lithium_tiny, 3))); + + recipes.put(new ComparableStack(ModItems.crystal_copper), new ElectrolysisMetalRecipe( + new MaterialStack(Mats.MAT_COPPER, MaterialShapes.INGOT.q(6)), + new MaterialStack(Mats.MAT_LEAD, MaterialShapes.NUGGET.q(4)), + new ItemStack(ModItems.powder_lithium_tiny, 3), + new ItemStack(ModItems.sulfur, 2))); + + recipes.put(new ComparableStack(ModItems.crystal_tungsten), new ElectrolysisMetalRecipe( + new MaterialStack(Mats.MAT_TUNGSTEN, MaterialShapes.INGOT.q(6)), + new MaterialStack(Mats.MAT_IRON, MaterialShapes.INGOT.q(2)), + new ItemStack(ModItems.powder_lithium_tiny, 3))); + + recipes.put(new ComparableStack(ModItems.crystal_aluminium), new ElectrolysisMetalRecipe( + new MaterialStack(Mats.MAT_ALUMINIUM, MaterialShapes.INGOT.q(6)), + new MaterialStack(Mats.MAT_IRON, MaterialShapes.INGOT.q(2)), + new ItemStack(ModItems.powder_lithium_tiny, 3))); + + recipes.put(new ComparableStack(ModItems.crystal_beryllium), new ElectrolysisMetalRecipe( + new MaterialStack(Mats.MAT_BERYLLIUM, MaterialShapes.INGOT.q(6)), + new MaterialStack(Mats.MAT_LEAD, MaterialShapes.NUGGET.q(4)), + new ItemStack(ModItems.powder_lithium_tiny, 3), + new ItemStack(ModItems.powder_quartz, 2))); + + recipes.put(new ComparableStack(ModItems.crystal_lead), new ElectrolysisMetalRecipe( + new MaterialStack(Mats.MAT_LEAD, MaterialShapes.INGOT.q(6)), + new MaterialStack(Mats.MAT_GOLD, MaterialShapes.INGOT.q(2)), + new ItemStack(ModItems.powder_lithium_tiny, 3))); + + recipes.put(new ComparableStack(ModItems.crystal_schraranium), new ElectrolysisMetalRecipe( + new MaterialStack(Mats.MAT_SCHRABIDIUM, MaterialShapes.NUGGET.q(5)), + new MaterialStack(Mats.MAT_URANIUM, MaterialShapes.NUGGET.q(2)), + new ItemStack(ModItems.nugget_plutonium, 2))); + + recipes.put(new ComparableStack(ModItems.crystal_schrabidium), new ElectrolysisMetalRecipe( + new MaterialStack(Mats.MAT_SCHRABIDIUM, MaterialShapes.INGOT.q(6)), + new MaterialStack(Mats.MAT_PLUTONIUM, MaterialShapes.INGOT.q(2)), + new ItemStack(ModItems.powder_lithium_tiny, 3))); + + recipes.put(new ComparableStack(ModItems.crystal_rare), new ElectrolysisMetalRecipe( + new MaterialStack(Mats.MAT_ZIRCONIUM, MaterialShapes.NUGGET.q(6)), + new MaterialStack(Mats.MAT_BORON, MaterialShapes.NUGGET.q(2)), + new ItemStack(ModItems.powder_desh_mix, 3))); + + recipes.put(new ComparableStack(ModItems.crystal_trixite), new ElectrolysisMetalRecipe( + new MaterialStack(Mats.MAT_PLUTONIUM, MaterialShapes.INGOT.q(3)), + new MaterialStack(Mats.MAT_COBALT, MaterialShapes.INGOT.q(4)), + new ItemStack(ModItems.powder_niobium, 4), + new ItemStack(ModItems.powder_nitan_mix, 2))); + + recipes.put(new ComparableStack(ModItems.crystal_lithium), new ElectrolysisMetalRecipe( + new MaterialStack(Mats.MAT_LITHIUM, MaterialShapes.INGOT.q(6)), + new MaterialStack(Mats.MAT_BORON, MaterialShapes.INGOT.q(2)), + new ItemStack(ModItems.powder_quartz, 2), + new ItemStack(ModItems.fluorite, 2))); + + recipes.put(new ComparableStack(ModItems.crystal_starmetal), new ElectrolysisMetalRecipe( + new MaterialStack(Mats.MAT_DURA, MaterialShapes.INGOT.q(4)), + new MaterialStack(Mats.MAT_COBALT, MaterialShapes.INGOT.q(4)), + new ItemStack(ModItems.powder_astatine, 3), + new ItemStack(ModItems.ingot_mercury, 8))); + + recipes.put(new ComparableStack(ModItems.crystal_cobalt), new ElectrolysisMetalRecipe( + new MaterialStack(Mats.MAT_COBALT, MaterialShapes.INGOT.q(3)), + new MaterialStack(Mats.MAT_IRON, MaterialShapes.INGOT.q(4)), + new ItemStack(ModItems.powder_copper, 4), + new ItemStack(ModItems.powder_lithium_tiny, 3))); } public static ElectrolysisMetalRecipe getRecipe(ItemStack stack) { @@ -66,7 +153,7 @@ public class ElectrolyserMetalRecipes extends SerializableRecipe { for(Entry entry : ElectrolyserMetalRecipes.recipes.entrySet()) { ElectrolysisMetalRecipe recipe = entry.getValue(); - Object[] input = new Object[] { entry.getKey().copy(), new ComparableStack(ItemFluidIcon.make(Fluids.NITRIC_ACID, 100)) }; + Object[] input = new Object[] { entry.getKey().copy(), ItemFluidIcon.make(Fluids.NITRIC_ACID, 100) }; List outputs = new ArrayList(); if(recipe.output1 != null) outputs.add(ItemScraps.create(recipe.output1, true)); if(recipe.output2 != null) outputs.add(ItemScraps.create(recipe.output2, true)); diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 81bc67970..3d7045278 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4671)"; + public static final String VERSION = "1.0.27 BETA (4683)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/world/feature/BedrockOre.java b/src/main/java/com/hbm/world/feature/BedrockOre.java index 15077d50f..19895823d 100644 --- a/src/main/java/com/hbm/world/feature/BedrockOre.java +++ b/src/main/java/com/hbm/world/feature/BedrockOre.java @@ -43,6 +43,7 @@ public class BedrockOre { registerBedrockOre(weightedOresNether, new BedrockOreDefinition(new ItemStack(Items.glowstone_dust, 4), 1, 0xF9FF4D), WorldConfig.bedrockGlowstoneSpawn); registerBedrockOre(weightedOresNether, new BedrockOreDefinition(new ItemStack(ModItems.powder_fire, 4), 1, 0xD7341F), WorldConfig.bedrockPhosphorusSpawn); + registerBedrockOre(weightedOresNether, new BedrockOreDefinition(new ItemStack(Items.quartz, 4), 1, 0xF0EFDD), WorldConfig.bedrockQuartzSpawn); } public static void registerBedrockOre(List list, BedrockOreDefinition def, int weight) { diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index d7e063169..81d7d7848 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -337,6 +337,7 @@ container.machineCompressor=Kompressor container.machineCrucible=Schmelztiegel container.machineDiesel=Dieselgenerator container.machineElectricBoiler=Elektrischer Ölwärmer +container.machineElectrolyser=Electrolysegerät container.machineFEL=FEL container.machineITER=Kernfusionsreaktor container.machineLargeTurbine=Industrielle Dampfturbine @@ -832,6 +833,7 @@ hbmmat.watzmud=Giftiger Schlamm hbmmat.whitephosphorus=Weißer Phosphor hbmmat.workersalloy=Desh hbmmat.wroughtiron=Schmiedeeisen +hbmmat.zirconium=Zirkonium matshape.block=%s Block matshape.blocks=%s Blöcke @@ -1711,6 +1713,10 @@ item.elec_shovel.name=Spiralbohrer item.elec_sword.name=Elektroimpulswaffe item.energy_core.name=Selbstgebauter Energiekern item.entanglement_kit.name=Verschränkungskit +item.envsuit_boots.name=M1TTY Umgebungsanzug Stiefel +item.envsuit_helmet.name=M1TTY Umgebungsanzug Helm +item.envsuit_legs.name=M1TTY Umgebungsanzug Hose +item.envsuit_plate.name=M1TTY Umgebungsanzug Brustplatte item.euphemium_boots.name=Euphemiumstiefel item.euphemium_helmet.name=Euphemiumstiefel item.euphemium_kit.name=Euphemium Kit @@ -3991,6 +3997,7 @@ tile.machine_dineutronium_battery.name=Spark Energiespeicherblock tile.machine_drill.name=Automatischer Minenbohrer tile.machine_electric_furnace_off.name=Elektrischer Ofen tile.machine_electric_furnace_on.name=Elektrischer Ofen +tile.machine_electrolyser.name=Electrolysegerät tile.machine_epress.name=Hydraulische Presse tile.machine_excavator.name=Großer Minenbohrer tile.machine_fel.name=FEL diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index e3e38d04a..9c2194b06 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -695,6 +695,7 @@ container.machineCompressor=Compressor container.machineCrucible=Crucible container.machineDiesel=Diesel Generator container.machineElectricBoiler=Electric Oil Heater +container.machineElectrolyser=Electrolysis Machine container.machineFEL=FEL container.machineITER=Fusion Reactor container.machineLargeTurbine=Industrial Steam Turbine @@ -1479,6 +1480,7 @@ hbmmat.watzmud=Poisonous Mud hbmmat.whitephosphorus=White Phosphorus hbmmat.workersalloy=Desh hbmmat.wroughtiron=Wroght Iron +hbmmat.zirconium=Zirconium matshape.block=%s Block matshape.blocks=%s Blocks @@ -2410,6 +2412,10 @@ item.elec_sword.name=Stunstick item.energy_core.name=Makeshift Energy Core item.entanglement_kit.name=Entanglement Kit item.entanglement_kit.desc=Teleporter crafting item.$Enables dimension-shifting via a$beryllium-enhanced resource scanner. +item.envsuit_boots.name=M1TTY Environment Suit Boots +item.envsuit_helmet.name=M1TTY Environment Suit Helmet +item.envsuit_legs.name=M1TTY Environment Suit Leggings +item.envsuit_plate.name=M1TTY Environment Suit Chestplate item.euphemium_boots.name=Euphemium Boots item.euphemium_capacitor.name=Euphemium Capacitor item.euphemium_capacitor.desc=Permits passive dispersion of accumulated positive energy. @@ -4915,6 +4921,7 @@ tile.machine_dineutronium_battery.name=Spark Energy Storage Block tile.machine_drill.name=Automatic Mining Drill tile.machine_electric_furnace_off.name=Electric Furnace tile.machine_electric_furnace_on.name=Electric Furnace +tile.machine_electrolyser.name=Electrolysis Machine tile.machine_epress.name=Electric Press tile.machine_excavator.name=Large Mining Drill tile.machine_fel.name=FEL diff --git a/src/main/resources/assets/hbm/textures/models/weapons/grenade_launcher.png b/src/main/resources/assets/hbm/textures/models/weapons/grenade_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..9c37723a2c5046551123bcc2100cb60cbad7bfdd GIT binary patch literal 52964 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

    M!MJR$YCP(^U!H|1~Bo0_t1Jqm@k*myH2Go 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 M_FsL+dSj9R0DEf;Jpcdz literal 0 HcmV?d00001 From ae44c8a2a4d0bf89a3ce2736be50c76fbfcfe8e2 Mon Sep 17 00:00:00 2001 From: Boblet Date: Mon, 21 Aug 2023 16:04:25 +0200 Subject: [PATCH 250/432] sodalite, heatable heavy water, sodium --- changelog | 50 ++++++++---------- .../hbm/blocks/machine/MachineAutosaw.java | 40 +++++++++++++- .../com/hbm/inventory/OreDictManager.java | 5 ++ .../java/com/hbm/inventory/fluid/Fluids.java | 8 ++- .../fluid/trait/FT_PWRModerator.java | 43 +++++++++++++++ .../hbm/inventory/fluid/trait/FluidTrait.java | 1 + .../inventory/recipes/CentrifugeRecipes.java | 8 ++- .../inventory/recipes/CombinationRecipes.java | 5 +- .../inventory/recipes/FuelPoolRecipes.java | 3 ++ src/main/java/com/hbm/items/ModItems.java | 8 ++- .../com/hbm/items/special/ItemBedrockOre.java | 3 +- .../machine/TileEntityCoreEmitter.java | 2 +- .../machine/TileEntityCoreInjector.java | 3 +- .../machine/TileEntityCoreStabilizer.java | 3 +- .../machine/TileEntityMachineAutosaw.java | 11 ++++ .../machine/TileEntityPWRController.java | 7 ++- .../com/hbm/world/feature/BedrockOre.java | 2 +- src/main/resources/assets/hbm/lang/de_DE.lang | 1 + src/main/resources/assets/hbm/lang/en_US.lang | 1 + .../textures/gui/fluids/heavywater_hot.png | Bin 0 -> 464 bytes .../hbm/textures/items/gem_sodalite.png | Bin 0 -> 504 bytes .../hbm/textures/items/powder_sodium.png | Bin 0 -> 488 bytes 22 files changed, 162 insertions(+), 42 deletions(-) create mode 100644 src/main/java/com/hbm/inventory/fluid/trait/FT_PWRModerator.java create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/heavywater_hot.png create mode 100644 src/main/resources/assets/hbm/textures/items/gem_sodalite.png create mode 100644 src/main/resources/assets/hbm/textures/items/powder_sodium.png diff --git a/changelog b/changelog index 61558946a..404c55913 100644 --- a/changelog +++ b/changelog @@ -1,33 +1,27 @@ ## Added -* Analysis tool - * A more universal version of the power net analyzer - * Currently only works on fluid networks though - * In addition to seeing links and subscribers, the analysis tool also displays subscriber positions as well as a log (up to 50 entries) of what block received how much fluid - * This should finally give more insight in the bug that rarely causes fluids to disappear -* Leadburster - * A 40mm launcher grenade that doesn't explode, instead it attaches itself to a block and starts firing bullets - * Fires in circles for 2 seconds before it self-destructs -* Congo lake - * A 40mm pump-action grenade launcher with a capacity of 4 rounds -* Lantern - * Cheap and fancy illumination - * Will blind glyphids in a small radius - * Glyphids don't actually have eyes, just don't think about it too much -* Ashpit - * An optional part that can be placed under fireboxes and heating ovens - * Collects ashes, producing one ash pile for every 10 furnace operations worth of fuel - * Ash comes in different types like wood (from planks, logs and saplings), coal (coal, lignite and coke) and generic (everything else) - * Ashes can be used as dyes, for making industrial fertilizer, as low-efficiency furnace fuel or for carbon in the crucible - * Coal ashes can also be centrifuged, returning the flammable content as unburned coal dust as well as a small amount of boron +* PWR + * The successor to the old large nuclear reactor + * Has some design similarities with the RBMK, but in 3D + * Relatively easy to build and safe to operate + * Does not use any tile entity rendering and all math is pre-calculated when the reactor is assembled, making this one even more performant than the old large reactor +* Sodalite + * A gem that can be extracted from fluorite ore + * Can be heated in the combination oven to make sodium dust and chlorine ## Changed -* Updated polish and chinese localization -* Flechettes now get stuck in blocks for a few seconds -* NBT kits now display the amount of items in a stack -* Removed the special nuclear meteorite +* Bedrock fluorite ore now yields actual ore instead of fluorite directly +* Blocks that fall from fallout effects no longer drop items when falling on small blocks, preventing issues like gas blocks being dropped +* Bullets no longer need primers to be crafted, primers no longer exist at all +* The automatic buzzsaw can now use wood oil, ethanol, fish oil and heavy oil to run +* Fluorite ore is now centrifugable +* Fluorite crystals now centrifuge into slightly less fluorite but also yield sodalite ## Fixed -* Fixed thermos crashing config hitting before the config is saved, resulting in an empty config the first time the server is launched -* Fixed heating oven not visually connecting to exhaust pipes -* Fixed loot blocks not correctly rendering items that require multiple render passes -* Fixed special meteorites spawning in worldgen +* Fixed FEnSU's IO limit not working properly +* Fixed overflow caused by uncapped Spk values of DFC beams, they are now capped at 9,200,000 Spk +* Fixed smooth lighting not working on connected textures +* Fixed the Thermos preventer not working on Crucible type servers +* Fixed pollution save files not working correctly on certain Thermos forks +* Fixed blast furnace output overstacking +* Fixed potential crash caused by centrifuges trying to create a recipe using non-registered items +* Fixed chemplant GUI crashing when too many upgrades are applied to a short duration recipe diff --git a/src/main/java/com/hbm/blocks/machine/MachineAutosaw.java b/src/main/java/com/hbm/blocks/machine/MachineAutosaw.java index fe568c409..0aeca216d 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineAutosaw.java +++ b/src/main/java/com/hbm/blocks/machine/MachineAutosaw.java @@ -5,16 +5,25 @@ import java.util.List; import java.util.Locale; import com.hbm.blocks.ILookOverlay; +import com.hbm.blocks.ITooltipProvider; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.tileentity.machine.TileEntityMachineAutosaw; import com.hbm.util.I18nUtil; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatComponentTranslation; +import net.minecraft.util.ChatStyle; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; -public class MachineAutosaw extends BlockContainer implements ILookOverlay { +public class MachineAutosaw extends BlockContainer implements ILookOverlay, ITooltipProvider { public MachineAutosaw() { super(Material.iron); @@ -39,6 +48,30 @@ public class MachineAutosaw extends BlockContainer implements ILookOverlay { public boolean renderAsNormalBlock() { return false; } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + + if(!world.isRemote && !player.isSneaking()) { + + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof IItemFluidIdentifier) { + + TileEntityMachineAutosaw saw = (TileEntityMachineAutosaw) world.getTileEntity(x, y, z); + + FluidType type = ((IItemFluidIdentifier) player.getHeldItem().getItem()).getType(world, x, y, z, player.getHeldItem()); + if(saw.acceptedFuels.contains(type)) { + saw.tank.setTankType(type); + saw.markDirty(); + player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation("hbmfluid." + type.getName().toLowerCase(Locale.US))).appendSibling(new ChatComponentText("!"))); + return true; + } + } + + return false; + } + + return true; + } @Override public void printHook(Pre event, World world, int x, int y, int z) { @@ -55,4 +88,9 @@ public class MachineAutosaw extends BlockContainer implements ILookOverlay { ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } } diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index 36a75a648..02afded30 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -212,6 +212,7 @@ public class OreDictManager { public static final DictFrame CINNABAR = new DictFrame("Cinnabar"); public static final DictFrame BORAX = new DictFrame("Borax"); public static final DictFrame CHLOROCALCITE = new DictFrame("Chlorocalcite"); + public static final DictFrame SODALITE = new DictFrame("Sodalite"); public static final DictFrame VOLCANIC = new DictFrame("Volcanic"); public static final DictFrame HEMATITE = new DictFrame("Hematite"); public static final DictFrame MALACHITE = new DictFrame("Malachite"); @@ -221,6 +222,8 @@ public class OreDictManager { */ /** LITHIUM */ public static final DictFrame LI = new DictFrame("Lithium"); + /** SODIUM */ + public static final DictFrame NA = new DictFrame("Sodium"); /* * PHOSPHORUS */ @@ -395,6 +398,7 @@ public class OreDictManager { CINNABAR .crystal(cinnebar) .gem(cinnebar) .ore(ore_cinnebar, ore_depth_cinnebar); BORAX .dust(powder_borax) .ore(ore_depth_borax); CHLOROCALCITE .dust(powder_chlorocalcite); + SODALITE .gem(gem_sodalite); VOLCANIC .gem(gem_volcanic) .ore(basalt_gem); HEMATITE .ore(fromOne(stone_resource, EnumStoneType.HEMATITE)); MALACHITE .ore(fromOne(stone_resource, EnumStoneType.MALACHITE)); @@ -404,6 +408,7 @@ public class OreDictManager { * HAZARDS, MISC */ LI .hydro(1F) .ingot(lithium) .dustSmall(powder_lithium_tiny) .dust(powder_lithium) .block(block_lithium) .ore(ore_gneiss_lithium, ore_meteor_lithium); + NA .hydro(1F) .dust(powder_sodium); /* * PHOSPHORUS diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index 3c70626d5..2ad14ed42 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -156,6 +156,7 @@ public class Fluids { public static FluidType SMOKE_LEADED; public static FluidType SMOKE_POISON; public static FluidType HELIUM4; + public static FluidType HEAVYWATER_HOT; private static final HashMap idMapping = new HashMap(); private static final HashMap nameMapping = new HashMap(); @@ -311,7 +312,8 @@ public class Fluids { SMOKE = new FluidType("SMOKE", 0x808080, 0, 0, 0, EnumSymbol.NONE).addTraits(GASEOUS, NOID, NOCON); SMOKE_LEADED = new FluidType("SMOKE_LEADED", 0x808080, 0, 0, 0, EnumSymbol.NONE).addTraits(GASEOUS, NOID, NOCON); SMOKE_POISON = new FluidType("SMOKE_POISON", 0x808080, 0, 0, 0, EnumSymbol.NONE).addTraits(GASEOUS, NOID, NOCON); - HELIUM4 = new FluidType(123,"HELIUM4", 0xE54B0A, 0, 0, 0, EnumSymbol.ASPHYXIANT).addTraits(GASEOUS); + HELIUM4 = new FluidType("HELIUM4", 0xE54B0A, 0, 0, 0, EnumSymbol.ASPHYXIANT).addTraits(GASEOUS); + HEAVYWATER_HOT = new FluidType(124, "HEAVYWATER_HOT",0x4D007B, 1, 0, 0, EnumSymbol.NONE).setTemp(600).addTraits(LIQUID); // ^ ^ ^ ^ ^ ^ ^ ^ //ADD NEW FLUIDS HERE @@ -323,6 +325,7 @@ public class Fluids { //vanilla metaOrder.add(WATER); metaOrder.add(HEAVYWATER); + metaOrder.add(HEAVYWATER_HOT); metaOrder.add(LAVA); //steams metaOrder.add(STEAM); @@ -499,6 +502,9 @@ public class Fluids { BLOOD.addTraits(new FT_Heatable().setEff(HeatingType.HEATEXCHANGER, 1.0D).addStep(500, 1, BLOOD_HOT, 1)); BLOOD_HOT.addTraits(new FT_Coolable(BLOOD, 1, 1, 500).setEff(CoolingType.HEATEXCHANGER, 1.0D)); + HEAVYWATER.addTraits(new FT_Heatable().setEff(HeatingType.PWR, 1.0D).addStep(300, 1, HEAVYWATER_HOT, 1), new FT_PWRModerator(1.25D)); + HEAVYWATER_HOT.addTraits(new FT_Coolable(HEAVYWATER, 1, 1, 300).setEff(CoolingType.HEATEXCHANGER, 1.0D)); + if(idMapping.size() != metaOrder.size()) { throw new IllegalStateException("A severe error has occoured during NTM's fluid registering process! The MetaOrder and Mappings are inconsistent! Mapping size: " + idMapping.size()+ " / MetaOrder size: " + metaOrder.size()); } diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_PWRModerator.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_PWRModerator.java new file mode 100644 index 000000000..65386405a --- /dev/null +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_PWRModerator.java @@ -0,0 +1,43 @@ +package com.hbm.inventory.fluid.trait; + +import java.io.IOException; +import java.util.List; + +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; + +import net.minecraft.util.EnumChatFormatting; + +public class FT_PWRModerator extends FluidTrait { + + private double multiplier; + + public FT_PWRModerator(double mulitplier) { + this.multiplier = mulitplier; + } + + public double getMultiplier() { + return multiplier; + } + + @Override + public void addInfo(List info) { + info.add(EnumChatFormatting.BLUE + "[PWR Flux Multiplier]"); + } + + @Override + public void addInfoHidden(List info) { + int mult = (int) (multiplier * 100 - 100); + info.add(EnumChatFormatting.BLUE + "Core flux " + (mult >= 0 ? "+" : "") + mult + "%"); + } + + @Override + public void serializeJSON(JsonWriter writer) throws IOException { + writer.name("multiplier").value(multiplier); + } + + @Override + public void deserializeJSON(JsonObject obj) { + this.multiplier = obj.get("multiplier").getAsDouble(); + } +} diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FluidTrait.java b/src/main/java/com/hbm/inventory/fluid/trait/FluidTrait.java index ba385ad54..ff2522d09 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FluidTrait.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FluidTrait.java @@ -24,6 +24,7 @@ public abstract class FluidTrait { traitNameMap.put("poison", FT_Poison.class); // x traitNameMap.put("toxin", FT_Toxin.class); // x traitNameMap.put("ventradiation", FT_VentRadiation.class); // x + traitNameMap.put("pwrmoderator", FT_PWRModerator.class); // x traitNameMap.put("gaseous", FT_Gaseous.class); traitNameMap.put("gaseous_art", FT_Gaseous_ART.class); diff --git a/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java b/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java index 5e619c676..1f1aa97ea 100644 --- a/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java @@ -320,6 +320,12 @@ public class CentrifugeRecipes extends SerializableRecipe { new ItemStack(ModItems.powder_emerald, 1), new ItemStack(Blocks.gravel, 1) }); + recipes.put(new OreDictStack(F.ore()), new ItemStack[] { + new ItemStack(ModItems.fluorite, 3), + new ItemStack(ModItems.fluorite, 3), + new ItemStack(ModItems.gem_sodalite, 1), + new ItemStack(Blocks.gravel, 1) }); + recipes.put(new OreDictStack(REDSTONE.ore()), new ItemStack[] { new ItemStack(Items.redstone, 3), new ItemStack(Items.redstone, 3), @@ -457,7 +463,7 @@ public class CentrifugeRecipes extends SerializableRecipe { recipes.put(new ComparableStack(ModItems.crystal_copper), new ItemStack[] { new ItemStack(ModItems.powder_copper, 2), new ItemStack(ModItems.powder_copper, 2), new ItemStack(ModItems.sulfur, 1), new ItemStack(ModItems.powder_cobalt_tiny, 1) }); recipes.put(new ComparableStack(ModItems.crystal_tungsten), new ItemStack[] { new ItemStack(ModItems.powder_tungsten, 2), new ItemStack(ModItems.powder_tungsten, 2), new ItemStack(ModItems.powder_iron, 1), new ItemStack(ModItems.powder_lithium_tiny, 1) }); recipes.put(new ComparableStack(ModItems.crystal_aluminium), new ItemStack[] { new ItemStack(ModItems.powder_aluminium, 2), new ItemStack(ModItems.powder_aluminium, 2), new ItemStack(ModItems.powder_iron, 1), new ItemStack(ModItems.powder_lithium_tiny, 1) }); - recipes.put(new ComparableStack(ModItems.crystal_fluorite), new ItemStack[] { new ItemStack(ModItems.fluorite, 3), new ItemStack(ModItems.fluorite, 3), new ItemStack(ModItems.fluorite, 3), new ItemStack(ModItems.powder_lithium_tiny, 1) }); + recipes.put(new ComparableStack(ModItems.crystal_fluorite), new ItemStack[] { new ItemStack(ModItems.fluorite, 4), new ItemStack(ModItems.fluorite, 4), new ItemStack(ModItems.gem_sodalite, 2), new ItemStack(ModItems.powder_lithium_tiny, 1) }); recipes.put(new ComparableStack(ModItems.crystal_beryllium), new ItemStack[] { new ItemStack(ModItems.powder_beryllium, 2), new ItemStack(ModItems.powder_beryllium, 2), new ItemStack(ModItems.powder_quartz, 1), new ItemStack(ModItems.powder_lithium_tiny, 1) }); recipes.put(new ComparableStack(ModItems.crystal_lead), new ItemStack[] { new ItemStack(ModItems.powder_lead, 2), new ItemStack(ModItems.powder_lead, 2), new ItemStack(ModItems.powder_gold, 1), new ItemStack(ModItems.powder_lithium_tiny, 1) }); recipes.put(new ComparableStack(ModItems.crystal_schraranium), new ItemStack[] { new ItemStack(ModItems.nugget_schrabidium, 2), new ItemStack(ModItems.nugget_schrabidium, 2), new ItemStack(ModItems.nugget_uranium, 2), new ItemStack(ModItems.nugget_plutonium, 2) }); diff --git a/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java b/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java index d1c218639..efcd14b13 100644 --- a/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java @@ -43,9 +43,10 @@ public class CombinationRecipes extends SerializableRecipe { recipes.put(LIGNITE.dust(), new Pair(DictFrame.fromOne(ModItems.coke, EnumCokeType.LIGNITE), new FluidStack(Fluids.COALCREOSOTE, 50))); recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.briquette, EnumBriquetteType.LIGNITE)), new Pair(DictFrame.fromOne(ModItems.coke, EnumCokeType.LIGNITE), new FluidStack(Fluids.COALCREOSOTE, 100))); - recipes.put(CINNABAR.crystal(), new Pair(new ItemStack(ModItems.sulfur), new FluidStack(Fluids.MERCURY, 100))); //recipes.put(CHLOROCALCITE.dust(), new Pair(new ItemStack(ModItems.powder_calcium), new FluidStack(Fluids.CHLORINE, 250))); - recipes.put(new ComparableStack(Items.glowstone_dust), new Pair(new ItemStack(ModItems.sulfur), new FluidStack(Fluids.CHLORINE, 100))); + recipes.put(CINNABAR.crystal(), new Pair(new ItemStack(ModItems.sulfur), new FluidStack(Fluids.MERCURY, 100))); + recipes.put(new ComparableStack(Items.glowstone_dust), new Pair(new ItemStack(ModItems.sulfur), new FluidStack(Fluids.CHLORINE, 100))); + recipes.put(SODALITE.gem(), new Pair(new ItemStack(ModItems.powder_sodium), new FluidStack(Fluids.CHLORINE, 100))); recipes.put(new ComparableStack(DictFrame.fromOne(ModBlocks.stone_resource, EnumStoneType.BAUXITE)), new Pair(new ItemStack(ModItems.ingot_aluminium, 2), new FluidStack(Fluids.REDMUD, 250))); recipes.put(KEY_LOG, new Pair(new ItemStack(Items.coal, 1 ,1), new FluidStack(Fluids.WOODOIL, 250))); diff --git a/src/main/java/com/hbm/inventory/recipes/FuelPoolRecipes.java b/src/main/java/com/hbm/inventory/recipes/FuelPoolRecipes.java index 2e80c2bb4..9f01c9d80 100644 --- a/src/main/java/com/hbm/inventory/recipes/FuelPoolRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/FuelPoolRecipes.java @@ -11,6 +11,7 @@ import com.google.gson.stream.JsonWriter; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.recipes.loader.SerializableRecipe; import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemPWRFuel.EnumPWRFuel; import net.minecraft.item.ItemStack; @@ -37,6 +38,8 @@ public class FuelPoolRecipes extends SerializableRecipe { recipes.put(new ComparableStack(ModItems.waste_plate_sa326, 1, 1), new ItemStack(ModItems.waste_plate_sa326)); recipes.put(new ComparableStack(ModItems.waste_plate_ra226be, 1, 1), new ItemStack(ModItems.waste_plate_ra226be)); recipes.put(new ComparableStack(ModItems.waste_plate_pu238be, 1, 1), new ItemStack(ModItems.waste_plate_pu238be)); + + for(EnumPWRFuel pwr : EnumPWRFuel.values()) recipes.put(new ComparableStack(ModItems.pwr_fuel_hot, 1, pwr.ordinal()), new ItemStack(ModItems.pwr_fuel_depleted, 1, pwr.ordinal())); } @Override diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index ba2d0ba6c..119a33d3b 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -415,7 +415,8 @@ public class ModItems { public static Item crystal_cinnebar; public static Item crystal_trixite; public static Item crystal_osmiridium; - + + public static Item gem_sodalite; public static Item gem_tantalium; public static Item gem_volcanic; public static Item gem_alexandrite; @@ -481,6 +482,7 @@ public class ModItems { public static Item powder_steel; public static Item powder_lithium; public static Item powder_zirconium; + public static Item powder_sodium; public static Item redstone_depleted; public static Item powder_australium; @@ -2828,6 +2830,7 @@ public class ModItems { crystal_cinnebar = new Item().setUnlocalizedName("crystal_cinnebar").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_cinnebar"); crystal_trixite = new Item().setUnlocalizedName("crystal_trixite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_trixite"); crystal_osmiridium = new Item().setUnlocalizedName("crystal_osmiridium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_osmiridium"); + gem_sodalite = new ItemCustomLore().setUnlocalizedName("gem_sodalite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":gem_sodalite"); gem_tantalium = new ItemCustomLore().setUnlocalizedName("gem_tantalium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":gem_tantalium"); gem_volcanic = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("gem_volcanic").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":gem_volcanic"); gem_alexandrite = new ItemAlexandrite().setUnlocalizedName("gem_alexandrite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":gem_alexandrite"); @@ -2877,6 +2880,7 @@ public class ModItems { powder_steel = new Item().setUnlocalizedName("powder_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_steel"); powder_lithium = new Item().setUnlocalizedName("powder_lithium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_lithium"); powder_zirconium = new Item().setUnlocalizedName("powder_zirconium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_zirconium"); + powder_sodium = new Item().setUnlocalizedName("powder_sodium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_sodium"); redstone_depleted = new Item().setUnlocalizedName("redstone_depleted").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":redstone_depleted"); powder_power = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("powder_power").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_energy_alt"); powder_iodine = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("powder_iodine").setCreativeTab(null).setTextureName(RefStrings.MODID + ":powder_iodine"); @@ -5764,6 +5768,7 @@ public class ModItems { GameRegistry.registerItem(powder_lithium, powder_lithium.getUnlocalizedName()); GameRegistry.registerItem(powder_lithium_tiny, powder_lithium_tiny.getUnlocalizedName()); GameRegistry.registerItem(powder_zirconium, powder_zirconium.getUnlocalizedName()); + GameRegistry.registerItem(powder_sodium, powder_sodium.getUnlocalizedName()); GameRegistry.registerItem(powder_lignite, powder_lignite.getUnlocalizedName()); GameRegistry.registerItem(powder_iodine, powder_iodine.getUnlocalizedName()); GameRegistry.registerItem(powder_thorium, powder_thorium.getUnlocalizedName()); @@ -5871,6 +5876,7 @@ public class ModItems { GameRegistry.registerItem(crystal_cinnebar, crystal_cinnebar.getUnlocalizedName()); GameRegistry.registerItem(crystal_trixite, crystal_trixite.getUnlocalizedName()); GameRegistry.registerItem(crystal_osmiridium, crystal_osmiridium.getUnlocalizedName()); + GameRegistry.registerItem(gem_sodalite, gem_sodalite.getUnlocalizedName()); GameRegistry.registerItem(gem_tantalium, gem_tantalium.getUnlocalizedName()); GameRegistry.registerItem(gem_volcanic, gem_volcanic.getUnlocalizedName()); GameRegistry.registerItem(gem_alexandrite, gem_alexandrite.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/special/ItemBedrockOre.java b/src/main/java/com/hbm/items/special/ItemBedrockOre.java index 9d12bade0..f4362a93f 100644 --- a/src/main/java/com/hbm/items/special/ItemBedrockOre.java +++ b/src/main/java/com/hbm/items/special/ItemBedrockOre.java @@ -95,7 +95,8 @@ public class ItemBedrockOre extends ItemEnumMulti { GOLD("Gold", 0xF9D738, B_LEAD, B_COPPER, B_BISMUTH), //occurs with copper, lead and rare bismuthide URANIUM("Uranium", 0x868D82, B_LEAD, B_RADIUM, B_POLONIUM), //uranium and its decay products THORIUM("Thorium", 0x7D401D, B_SILICON, B_URANIUM, B_TECHNETIUM), //thorium occours with uraninite and decay products - CHLOROCALCITE("Chlorocalcite", 0xCDE036, B_LITHIUM, B_SILICON, B_SILICON); //i guess? + CHLOROCALCITE("Chlorocalcite", 0xCDE036, B_LITHIUM, B_SILICON, B_SILICON), //i guess? + FLUORITE("Fluorite", 0xF6F3E7, B_SILICON, B_LITHIUM, B_ALUMINIUM); //different silicon-bearing gemstones, generic lithium, aluminium from sodium compound trailings public String oreName; public int color; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java index 3f0f6bba4..a3adb1bc1 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java @@ -129,7 +129,7 @@ public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEne Block b = worldObj.getBlock(x, y, z); - if(b != Blocks.air) { + if(!b.isAir(worldObj, x, y, z)) { if(b.getMaterial().isLiquid()) { worldObj.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, "random.fizz", 1.0F, 1.0F); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java index b4fffdb9c..bd2366acc 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java @@ -19,7 +19,6 @@ import li.cil.oc.api.machine.Context; import li.cil.oc.api.network.SimpleComponent; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; import net.minecraft.inventory.Container; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; @@ -97,7 +96,7 @@ public class TileEntityCoreInjector extends TileEntityMachineBase implements IFl break; } - if(worldObj.getBlock(x, y, z) != Blocks.air) + if(!worldObj.getBlock(x, y, z).isAir(worldObj, x, y, z)) break; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java index 82ce38079..a60975ed3 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java @@ -17,7 +17,6 @@ import li.cil.oc.api.machine.Context; import li.cil.oc.api.network.SimpleComponent; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; import net.minecraft.inventory.Container; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; @@ -86,7 +85,7 @@ public class TileEntityCoreStabilizer extends TileEntityMachineBase implements I break; } - if(worldObj.getBlock(x, y, z) != Blocks.air) + if(!worldObj.getBlock(x, y, z).isAir(worldObj, x, y, z)) break; } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutosaw.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutosaw.java index 2ca86eb13..3ec39159b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutosaw.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutosaw.java @@ -1,9 +1,11 @@ package com.hbm.tileentity.machine; +import java.util.HashSet; import java.util.List; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockTallPlant.EnumTallFlower; +import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.lib.ModDamageSource; @@ -29,6 +31,15 @@ import net.minecraft.util.Vec3; public class TileEntityMachineAutosaw extends TileEntityLoadedBase implements INBTPacketReceiver, IFluidStandardReceiver { + public static final HashSet acceptedFuels = new HashSet(); + + static { + acceptedFuels.add(Fluids.WOODOIL); + acceptedFuels.add(Fluids.ETHANOL); + acceptedFuels.add(Fluids.FISHOIL); + acceptedFuels.add(Fluids.HEAVYOIL); + } + public FluidTank tank; public boolean isOn; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java index ec3a6488a..9fd2a7ec2 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java @@ -11,6 +11,7 @@ import com.hbm.inventory.container.ContainerPWR; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Heatable; +import com.hbm.inventory.fluid.trait.FT_PWRModerator; import com.hbm.inventory.fluid.trait.FT_Heatable.HeatingStep; import com.hbm.inventory.fluid.trait.FT_Heatable.HeatingType; import com.hbm.inventory.gui.GUIPWR; @@ -221,6 +222,10 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG this.flux = newFlux; + if(tanks[0].getTankType().hasTrait(FT_PWRModerator.class)) { + this.flux *= tanks[0].getTankType().getTrait(FT_PWRModerator.class).getMultiplier(); + } + NBTTagCompound data = new NBTTagCompound(); tanks[0].writeToNBT(data, "t0"); tanks[1].writeToNBT(data, "t1"); @@ -291,7 +296,7 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG double coolingEff = (double) this.channelCount / (double) this.rodCount * 0.1D; //10% cooling if numbers match if(coolingEff > 1D) coolingEff = 1D; - int heatToUse = (int) (this.hullHeat * coolingEff); + int heatToUse = (int) (this.hullHeat * coolingEff * trait.getEfficiency(HeatingType.PWR)); HeatingStep step = trait.getFirstStep(); int coolCycles = tanks[0].getFill() / step.amountReq; int hotCycles = (tanks[1].getMaxFill() - tanks[1].getFill()) / step.amountProduced; diff --git a/src/main/java/com/hbm/world/feature/BedrockOre.java b/src/main/java/com/hbm/world/feature/BedrockOre.java index 19895823d..f20e79039 100644 --- a/src/main/java/com/hbm/world/feature/BedrockOre.java +++ b/src/main/java/com/hbm/world/feature/BedrockOre.java @@ -36,9 +36,9 @@ public class BedrockOre { registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.GOLD, 1), WorldConfig.bedrockGoldSpawn); registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.URANIUM, 4, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockUraniumSpawn); registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.THORIUM, 4, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockThoriumSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.FLUORITE, 1), WorldConfig.bedrockFluoriteSpawn); registerBedrockOre(weightedOres, new BedrockOreDefinition(new ItemStack(Items.coal, 4), 1, 0x202020), WorldConfig.bedrockCoalSpawn); registerBedrockOre(weightedOres, new BedrockOreDefinition(new ItemStack(ModItems.niter, 4), 2, 0x808080, new FluidStack(Fluids.ACID, 500)), WorldConfig.bedrockNiterSpawn); - registerBedrockOre(weightedOres, new BedrockOreDefinition(new ItemStack(ModItems.fluorite, 4), 1, 0xd0d0d0), WorldConfig.bedrockFluoriteSpawn); registerBedrockOre(weightedOres, new BedrockOreDefinition(new ItemStack(Items.redstone, 4), 1, 0xd01010), WorldConfig.bedrockRedstoneSpawn); registerBedrockOre(weightedOresNether, new BedrockOreDefinition(new ItemStack(Items.glowstone_dust, 4), 1, 0xF9FF4D), WorldConfig.bedrockGlowstoneSpawn); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index c764f300e..a1fef17c3 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -3959,6 +3959,7 @@ tile.machine_assembler.name=Fertigungsmaschine tile.machine_assemfac.name=Fertigungsfabrik tile.machine_autocrafter.name=Automatische Werkbank tile.machine_autosaw.name=Automatische Kreissäge +tile.machine_autosaw.desc=Schneidet Pflanzen nieder, pflanzt Bäume nach$Akzeptiert:$-Holzöl$-Ethanol$-Fischöl$-Schweröl tile.machine_bat9000.name=Big-Ass Tank 9000 tile.machine_battery.name=Energiespeicherblock tile.machine_battery_potato.name=Kartoffelbatterieblock diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 6e2e10e35..5aae8fd7b 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -4891,6 +4891,7 @@ tile.machine_assembler.name=Assembly Machine tile.machine_assemfac.name=Assembly Factory tile.machine_autocrafter.name=Automatic Crafting Table tile.machine_autosaw.name=Automatic Buzz Saw +tile.machine_autosaw.desc=Cuts down nearby plants, re-plants trees$Accepts:$-Wood oil$-Ethanol$-Fish oil$-Heavy oil tile.machine_bat9000.name=Big-Ass Tank 9000 tile.machine_battery.name=Energy Storage Block tile.machine_battery_potato.name=Potato Battery Block diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/heavywater_hot.png b/src/main/resources/assets/hbm/textures/gui/fluids/heavywater_hot.png new file mode 100644 index 0000000000000000000000000000000000000000..119b76cda83fe79157024691fe7b947695d24903 GIT binary patch literal 464 zcmV;>0WbcEP);Un9FrR$=dGZ86Q38P!f?%;Inrnxnt2+9=r><+<$cVuZi5Lv>%J|CkprY*TY;4Sa z=61aii8zbJU{Ew)NPC09;V>9#>O9%TR(uBnAvY|Rj*jq3Aom5~$urlHh)eh^Hm@@? zk(e(V3>(`UHwHr>;L@Lg3_%cTYIgSgNJYiUioPswk*qns^V~bxDQUJ6Vo&i!#_xg zA3^YVR#rOG;l8JD%9!_=+j#qr#F8sPP!u2i;e%wFlI5gM=}3#sYE)E*3gy94iLx$x zX(Eq5I4DO;2g)ex(&CYbq6dUDMLL}1D=l47VX-VMZ!q5=lsu#n1)-r~=m%7lOLO7p z`jdU)Dk^GfJRX3ChV%JM2!Y@Emq1`+<2qgsUp!)#6yPu2^ylEDR$kx$00006YfGC6?Vy7L|i66m0 z6fEh)K?inH5O^L5BFV59Ux~C}Ls^?IJdaDJkN3;f!4udveL%VnulxG{?&}r)(;{a* z+#AS>7{Guv@M$J@W^A*#KP#(+19`vT%ClFS@*(fZ-G^B@E%rjABh#0a*OSkg`%-0g zp^EiEG(3GWOuDxja@iff6vl`4mSg}41621cZl!?zM{NI!;_r6j4F4vYC3qTp7qgFXmgR)qkpg0@(a%T9_?QPGojz(DDz;&#SC z3{1TZ0W7cOBH|;D9zP(Fi1Oy8%g){!_cM1ehcNbHi0^LwN;hrd%8y)RWON8IU}{1A u_6Wwto5c`vOg9oI$0Qck_s?-m=dnMgkmGYli)2~=0000P)Nklp?N*Iq`QK6>^Z$Jyw3+O z5B&egXiF@ekyDYc>a=Wy-(}8Olnd%&OOdwY$iq4%h4}?Gf-<_a_WWjs(!hjdoJfyswu^x1f#k~=H@@L6%@H~^A?|%me`}6JJ~GC*0?PU&3_lc z;AgN*#rp(6K0isuvaxKN!1qaZcGIEKtsgq3yQJ()OImfviZd(Ka8n%TgXE|3@-UZ^ zlpdCia9d`alAKdl8X|26>pu;xToStOivUy Date: Mon, 21 Aug 2023 22:09:54 +0200 Subject: [PATCH 251/432] TOREX flash overlay --- .../java/com/hbm/blocks/bomb/NukeBoy.java | 10 +++- .../hbm/entity/effect/EntityNukeTorex.java | 2 +- .../java/com/hbm/items/tool/ItemWandD.java | 18 ++++-- .../com/hbm/main/ModEventHandlerClient.java | 43 +++++++++----- .../hbm/render/entity/effect/RenderTorex.java | 59 +++++++++++++++++++ .../machine/TileEntityPWRController.java | 1 + src/main/java/com/hbm/util/TrackerUtil.java | 9 +++ 7 files changed, 121 insertions(+), 21 deletions(-) diff --git a/src/main/java/com/hbm/blocks/bomb/NukeBoy.java b/src/main/java/com/hbm/blocks/bomb/NukeBoy.java index 01673e12d..d25f59ace 100644 --- a/src/main/java/com/hbm/blocks/bomb/NukeBoy.java +++ b/src/main/java/com/hbm/blocks/bomb/NukeBoy.java @@ -5,10 +5,12 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.config.BombConfig; import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.interfaces.IBomb; import com.hbm.main.MainRegistry; import com.hbm.tileentity.bomb.TileEntityNukeBoy; +import com.hbm.util.TrackerUtil; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.Block; @@ -124,7 +126,13 @@ public class NukeBoy extends BlockContainer implements IBomb { world.playSoundEffect(x, y, z, "random.explode", 1.0f, world.rand.nextFloat() * 0.1F + 0.9F); world.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(world, BombConfig.boyRadius, x + 0.5, y + 0.5, z + 0.5)); - world.spawnEntityInWorld(EntityNukeCloudSmall.statFac(world, x, y, z, BombConfig.boyRadius)); + //world.spawnEntityInWorld(EntityNukeCloudSmall.statFac(world, x, y, z, BombConfig.boyRadius)); + + EntityNukeTorex torex = new EntityNukeTorex(world); + torex.setPositionAndRotation(x + 0.5, y + 1, z + 0.5, 0, 0); + torex.getDataWatcher().updateObject(10, 1.5F); + world.spawnEntityInWorld(torex); + TrackerUtil.setTrackingRange(world, torex, 1000); } return false; } diff --git a/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java b/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java index b93311496..227552d0c 100644 --- a/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java +++ b/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java @@ -151,7 +151,7 @@ public class EntityNukeTorex extends Entity { if(life > fadeOut) { float fac = (float)(life - fadeOut) / (float)(lifetime - fadeOut); - return 1F - fac * fac; + return 1F - fac; } return 1.0F; diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index 4c80ccab4..1e8e427dc 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -2,15 +2,22 @@ package com.hbm.items.tool; import java.util.List; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.lib.Library; +import com.hbm.util.TrackerUtil; +import cpw.mods.fml.relauncher.ReflectionHelper; +import net.minecraft.entity.EntityTracker; +import net.minecraft.entity.EntityTrackerEntry; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.util.IntHashMap; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; +import net.minecraft.world.WorldServer; public class ItemWandD extends Item { @@ -32,7 +39,7 @@ public class ItemWandD extends Item { vnt.setSFX(new ExplosionEffectStandard()); vnt.explode();*/ - PollutionHandler.incrementPollution(world, pos.blockX, pos.blockY, pos.blockZ, PollutionType.SOOT, 15); + //PollutionHandler.incrementPollution(world, pos.blockX, pos.blockY, pos.blockZ, PollutionType.SOOT, 15); /*TimeAnalyzer.startCount("setBlock"); world.setBlock(pos.blockX, pos.blockY, pos.blockZ, Blocks.dirt); @@ -54,15 +61,16 @@ public class ItemWandD extends Item { tom.destructionRange = 600; world.spawnEntityInWorld(tom);*/ - /*EntityNukeTorex torex = new EntityNukeTorex(world); + EntityNukeTorex torex = new EntityNukeTorex(world); torex.setPositionAndRotation(pos.blockX, pos.blockY + 1, pos.blockZ, 0, 0); torex.getDataWatcher().updateObject(10, 1.5F); world.spawnEntityInWorld(torex); - EntityTracker entitytracker = ((WorldServer) world).getEntityTracker(); + /*EntityTracker entitytracker = ((WorldServer) world).getEntityTracker(); IntHashMap map = ReflectionHelper.getPrivateValue(EntityTracker.class, entitytracker, "trackedEntityIDs", "field_72794_c"); EntityTrackerEntry entry = (EntityTrackerEntry) map.lookup(torex.getEntityId()); - entry.blocksDistanceThreshold = 1000; - world.spawnEntityInWorld(EntityNukeExplosionMK5.statFacNoRad(world, 150, pos.blockX, pos.blockY + 1, pos.blockZ));*/ + entry.blocksDistanceThreshold = 1000;*/ + TrackerUtil.setTrackingRange(world, torex, 1000); + //world.spawnEntityInWorld(EntityNukeExplosionMK5.statFacNoRad(world, 150, pos.blockX, pos.blockY + 1, pos.blockZ)); //DungeonToolbox.generateBedrockOreWithChance(world, world.rand, pos.blockX, pos.blockZ, EnumBedrockOre.TITANIUM, new FluidStack(Fluids.SULFURIC_ACID, 500), 2, 1); diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 17a4e9682..a1bc1b705 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -1,7 +1,6 @@ package com.hbm.main; import java.lang.reflect.Method; -import java.util.ArrayList; import java.util.List; import java.util.Locale; import java.util.Random; @@ -18,7 +17,6 @@ import com.hbm.blocks.rail.IRailNTM.MoveContext; import com.hbm.blocks.rail.IRailNTM.RailCheckType; import com.hbm.blocks.rail.IRailNTM.RailContext; import com.hbm.config.GeneralConfig; -import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.mob.EntityHunterChopper; import com.hbm.entity.projectile.EntityChopperMine; import com.hbm.entity.train.EntityRailCarRidable; @@ -147,11 +145,38 @@ import net.minecraftforge.event.entity.player.ItemTooltipEvent; public class ModEventHandlerClient { + public static int flashTimer; + @SubscribeEvent public void onOverlayRender(RenderGameOverlayEvent.Pre event) { EntityPlayer player = Minecraft.getMinecraft().thePlayer; + /// NUKE FLASH /// + if(event.type == ElementType.CROSSHAIRS && flashTimer > 0) { + int width = event.resolution.getScaledWidth(); + int height = event.resolution.getScaledHeight(); + Tessellator tess = Tessellator.instance; + GL11.glDisable(GL11.GL_TEXTURE_2D); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); + GL11.glAlphaFunc(GL11.GL_GEQUAL, 0.0F); + GL11.glDepthMask(false); + tess.startDrawingQuads(); + float brightness = (flashTimer - event.partialTicks) / 200F; + tess.setColorRGBA_F(1F, 1F, 1F, brightness * 0.8F); + tess.addVertex(width, 0, 0); + tess.addVertex(0, 0, 0); + tess.addVertex(0, height, 0); + tess.addVertex(width, height, 0); + tess.draw(); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F); + GL11.glDepthMask(true); + return; + } + /// HANDLE GUN OVERLAYS /// if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof IItemHUD) { ((IItemHUD)player.getHeldItem().getItem()).renderHUD(event, event.type, player, player.getHeldItem()); @@ -196,18 +221,6 @@ public class ModEventHandlerClient { } } - List torex = world.getEntitiesWithinAABB(EntityNukeTorex.class, player.boundingBox.expand(100, 100, 100)); - - if(!torex.isEmpty()) { - EntityNukeTorex t = torex.get(0); - List text = new ArrayList(); - text.add("Speed: " + t.getSimulationSpeed()); - text.add("Alpha: " + t.getAlpha()); - text.add("Age: " + t.ticksExisted + " / " + t.getMaxAge()); - text.add("Clouds: " + t.cloudlets.size()); - ILookOverlay.printGeneric(event, "DEBUG", 0xff0000, 0x4040000, text); - } - /*List text = new ArrayList(); text.add("IMPACT: " + ImpactWorldHandler.getImpactForClient(world)); text.add("DUST: " + ImpactWorldHandler.getDustForClient(world)); @@ -1250,6 +1263,8 @@ public class ModEventHandlerClient { client.sendQueue.addToSendQueue(new C0CPacketInput(client.moveStrafing, client.moveForward, client.movementInput.jump, client.movementInput.sneak)); } } + + if(event.phase == Phase.START) if(flashTimer > 0) flashTimer--; } @SubscribeEvent diff --git a/src/main/java/com/hbm/render/entity/effect/RenderTorex.java b/src/main/java/com/hbm/render/entity/effect/RenderTorex.java index 661b57773..dfa21028c 100644 --- a/src/main/java/com/hbm/render/entity/effect/RenderTorex.java +++ b/src/main/java/com/hbm/render/entity/effect/RenderTorex.java @@ -2,6 +2,7 @@ package com.hbm.render.entity.effect; import java.util.ArrayList; import java.util.Comparator; +import java.util.Random; import org.lwjgl.opengl.GL11; @@ -9,6 +10,7 @@ import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.effect.EntityNukeTorex.Cloudlet; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; +import com.hbm.main.ModEventHandlerClient; import net.minecraft.client.renderer.ActiveRenderInfo; import net.minecraft.client.renderer.OpenGlHelper; @@ -23,6 +25,7 @@ import net.minecraft.util.Vec3; public class RenderTorex extends Render { private static final ResourceLocation cloudlet = new ResourceLocation(RefStrings.MODID + ":textures/particle/particle_base.png"); + private static final ResourceLocation flash = new ResourceLocation(RefStrings.MODID + ":textures/particle/flare.png"); @Override public void doRender(Entity entity, double x, double y, double z, float f0, float interp) { @@ -31,6 +34,8 @@ public class RenderTorex extends Render { GL11.glTranslated(x, y, z); EntityNukeTorex cloud = (EntityNukeTorex)entity; cloudletWrapper(cloud, interp); + if(cloud.ticksExisted < 101) flashWrapper(cloud, interp); + if(cloud.ticksExisted < 10 && ModEventHandlerClient.flashTimer < 100) ModEventHandlerClient.flashTimer = 200; GL11.glPopMatrix(); } @@ -81,6 +86,43 @@ public class RenderTorex extends Render { GL11.glDisable(GL11.GL_BLEND); GL11.glPopMatrix(); } + + private void flashWrapper(EntityNukeTorex cloud, float interp) { + + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); + GL11.glAlphaFunc(GL11.GL_GREATER, 0); + GL11.glDisable(GL11.GL_ALPHA_TEST); + GL11.glDepthMask(false); + RenderHelper.disableStandardItemLighting(); + + bindTexture(flash); + + Tessellator tess = Tessellator.instance; + tess.startDrawingQuads(); + + double age = Math.min(cloud.ticksExisted + interp, 100); + float alpha = (float) ((100D - age) / 100F); + + Random rand = new Random(cloud.getEntityId()); + + for(int i = 0; i < 3; i++) { + float x = (float) (rand.nextGaussian() * 0.5F * cloud.rollerSize); + float y = (float) (rand.nextGaussian() * 0.5F * cloud.rollerSize); + float z = (float) (rand.nextGaussian() * 0.5F * cloud.rollerSize); + tessellateFlash(tess, x, y + cloud.coreHeight, z, (float) (10 * cloud.rollerSize), alpha, interp); + } + + tess.draw(); + + GL11.glDepthMask(true); + GL11.glEnable(GL11.GL_ALPHA_TEST); + RenderHelper.enableStandardItemLighting(); + GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F); + GL11.glDisable(GL11.GL_BLEND); + GL11.glPopMatrix(); + } private void tessellateCloudlet(Tessellator tess, double posX, double posY, double posZ, Cloudlet cloud, float interp) { @@ -104,6 +146,23 @@ public class RenderTorex extends Render { } + private void tessellateFlash(Tessellator tess, double posX, double posY, double posZ, float scale, float alpha, float interp) { + + float f1 = ActiveRenderInfo.rotationX; + float f2 = ActiveRenderInfo.rotationZ; + float f3 = ActiveRenderInfo.rotationYZ; + float f4 = ActiveRenderInfo.rotationXY; + float f5 = ActiveRenderInfo.rotationXZ; + + tess.setColorRGBA_F(1F, 1F, 1F, alpha); + + tess.addVertexWithUV((double) (posX - f1 * scale - f3 * scale), (double) (posY - f5 * scale), (double) (posZ - f2 * scale - f4 * scale), 1, 1); + tess.addVertexWithUV((double) (posX - f1 * scale + f3 * scale), (double) (posY + f5 * scale), (double) (posZ - f2 * scale + f4 * scale), 1, 0); + tess.addVertexWithUV((double) (posX + f1 * scale + f3 * scale), (double) (posY + f5 * scale), (double) (posZ + f2 * scale + f4 * scale), 0, 0); + tess.addVertexWithUV((double) (posX + f1 * scale - f3 * scale), (double) (posY - f5 * scale), (double) (posZ + f2 * scale - f4 * scale), 0, 1); + + } + @Override protected ResourceLocation getEntityTexture(Entity p_110775_1_) { return null; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java index 9fd2a7ec2..e50143a6b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java @@ -202,6 +202,7 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG slots[1].stackSize++; } + this.amountLoaded--; this.markChanged(); } } diff --git a/src/main/java/com/hbm/util/TrackerUtil.java b/src/main/java/com/hbm/util/TrackerUtil.java index 9889d0c6e..62140046e 100644 --- a/src/main/java/com/hbm/util/TrackerUtil.java +++ b/src/main/java/com/hbm/util/TrackerUtil.java @@ -41,4 +41,13 @@ public class TrackerUtil { entry.ticks = 0; } } + + public static void setTrackingRange(World world, Entity e, int range) { + + if(world instanceof WorldServer) { + WorldServer server = (WorldServer) world; + EntityTrackerEntry entry = getTrackerEntry(server, e.getEntityId()); + entry.blocksDistanceThreshold = range; + } + } } From 35b18dda348dd17ac7c65c409c8ddd44d72b911f Mon Sep 17 00:00:00 2001 From: Bob Date: Mon, 21 Aug 2023 23:07:47 +0200 Subject: [PATCH 252/432] do the bugshaker --- .../java/com/hbm/entity/effect/EntityNukeTorex.java | 11 +++++++++++ .../java/com/hbm/main/ModEventHandlerRenderer.java | 13 +++++++++++++ 2 files changed, 24 insertions(+) diff --git a/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java b/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java index 227552d0c..8e0ef45f1 100644 --- a/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java +++ b/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java @@ -36,6 +36,17 @@ public class EntityNukeTorex extends Entity { this.dataWatcher.addObject(10, new Float(1)); } + @Override + @SideOnly(Side.CLIENT) + public int getBrightnessForRender(float p_70070_1_) { + return 15728880; + } + + @Override + public float getBrightness(float p_70013_1_) { + return 1.0F; + } + @Override public void onUpdate() { diff --git a/src/main/java/com/hbm/main/ModEventHandlerRenderer.java b/src/main/java/com/hbm/main/ModEventHandlerRenderer.java index 7dd68dd4c..eee0c1d97 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerRenderer.java +++ b/src/main/java/com/hbm/main/ModEventHandlerRenderer.java @@ -28,8 +28,10 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.MathHelper; import net.minecraft.util.MovingObjectPosition; import net.minecraftforge.client.event.DrawBlockHighlightEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent; import net.minecraftforge.client.event.EntityViewRenderEvent.FogColors; import net.minecraftforge.client.event.EntityViewRenderEvent.FogDensity; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; import net.minecraftforge.client.event.RenderPlayerEvent; public class ModEventHandlerRenderer { @@ -377,4 +379,15 @@ public class ModEventHandlerRenderer { event.blue = event.blue * (1 - interp) + sootColor * interp; } } + + @SubscribeEvent + public void onRenderHUD(RenderGameOverlayEvent.Pre event) { + + if(event.type == ElementType.HOTBAR && ModEventHandlerClient.flashTimer > 0) { + double mult = (ModEventHandlerClient.flashTimer + event.partialTicks) * 0.01D; + double horizontal = MathHelper.clamp_double(Math.sin(System.currentTimeMillis() * 0.02), -0.7, 0.7) * 5; + double vertical = MathHelper.clamp_double(Math.sin(System.currentTimeMillis() * 0.01 + 2), -0.7, 0.7) * 1; + GL11.glTranslated(horizontal * mult, vertical * mult, 0); + } + } } From d3b559bd6165ed4f0125fb1a2d48681f5bf376d4 Mon Sep 17 00:00:00 2001 From: Bob Date: Tue, 22 Aug 2023 21:10:24 +0200 Subject: [PATCH 253/432] finished PWR ports, recipes --- .../java/com/hbm/blocks/machine/BlockPWR.java | 176 +++++++++++++++--- .../java/com/hbm/main/CraftingManager.java | 10 + .../hbm/tileentity/TileEntityMachineBase.java | 10 +- .../machine/TileEntityPWRController.java | 16 ++ 4 files changed, 178 insertions(+), 34 deletions(-) diff --git a/src/main/java/com/hbm/blocks/machine/BlockPWR.java b/src/main/java/com/hbm/blocks/machine/BlockPWR.java index d30541e60..eeecb464a 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockPWR.java +++ b/src/main/java/com/hbm/blocks/machine/BlockPWR.java @@ -17,8 +17,11 @@ import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; +import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; @@ -94,7 +97,7 @@ public class BlockPWR extends BlockContainer implements IBlockCT { super.breakBlock(world, x, y, z, block, meta); } - public static class TileEntityBlockPWR extends TileEntity implements IFluidConnector { + public static class TileEntityBlockPWR extends TileEntity implements IFluidConnector, ISidedInventory { public Block block; public int coreX; @@ -108,18 +111,14 @@ public class BlockPWR extends BlockContainer implements IBlockCT { if(worldObj.getTotalWorldTime() % 20 == 0 && block != null) { - if(worldObj.getChunkProvider().chunkExists(coreX >> 4, coreZ >> 4)) { - - TileEntity tile = worldObj.getTileEntity(coreX, coreY, coreZ); - - if(tile instanceof TileEntityPWRController) { - TileEntityPWRController controller = (TileEntityPWRController) tile; - if(!controller.assembled) { - this.getBlockType().breakBlock(worldObj, xCoord, yCoord, zCoord, this.getBlockType(), this.getBlockMetadata()); - } - } else { + TileEntityPWRController controller = getCore(); + + if(controller != null) { + if(!controller.assembled) { this.getBlockType().breakBlock(worldObj, xCoord, yCoord, zCoord, this.getBlockType(), this.getBlockMetadata()); } + } else if(worldObj.getChunkProvider().chunkExists(coreX >> 4, coreZ >> 4)) { + this.getBlockType().breakBlock(worldObj, xCoord, yCoord, zCoord, this.getBlockType(), this.getBlockMetadata()); } } } @@ -157,21 +156,33 @@ public class BlockPWR extends BlockContainer implements IBlockCT { this.worldObj.markTileEntityChunkModified(this.xCoord, this.yCoord, this.zCoord, this); } } + + public TileEntityPWRController cachedCore; + + protected TileEntityPWRController getCore() { + + if(cachedCore != null && !cachedCore.isInvalid()) return cachedCore; + + if(worldObj.getChunkProvider().chunkExists(coreX >> 4, coreZ >> 4)) { + + TileEntity tile = worldObj.getTileEntity(coreX, coreY, coreZ); + if(tile instanceof TileEntityPWRController) { + TileEntityPWRController controller = (TileEntityPWRController) tile; + cachedCore = controller; + return controller; + } + } + + return null; + } @Override public long transferFluid(FluidType type, int pressure, long fluid) { if(this.getBlockMetadata() != 1) return fluid; if(block == null) return fluid; - - if(worldObj.getChunkProvider().chunkExists(coreX >> 4, coreZ >> 4)) { - - TileEntity tile = worldObj.getTileEntity(coreX, coreY, coreZ); - if(tile instanceof TileEntityPWRController) { - TileEntityPWRController controller = (TileEntityPWRController) tile; - return controller.transferFluid(type, pressure, fluid); - } - } + TileEntityPWRController controller = this.getCore(); + if(controller != null) return controller.transferFluid(type, pressure, fluid); return fluid; } @@ -181,15 +192,8 @@ public class BlockPWR extends BlockContainer implements IBlockCT { if(this.getBlockMetadata() != 1) return 0; if(block == null) return 0; - - if(worldObj.getChunkProvider().chunkExists(coreX >> 4, coreZ >> 4)) { - - TileEntity tile = worldObj.getTileEntity(coreX, coreY, coreZ); - if(tile instanceof TileEntityPWRController) { - TileEntityPWRController controller = (TileEntityPWRController) tile; - return controller.getDemand(type, pressure); - } - } + TileEntityPWRController controller = this.getCore(); + if(controller != null) return controller.getDemand(type, pressure); return 0; } @@ -198,5 +202,119 @@ public class BlockPWR extends BlockContainer implements IBlockCT { public boolean canConnect(FluidType type, ForgeDirection dir) { return this.getBlockMetadata() == 1; } + + @Override + public int getSizeInventory() { + + if(this.getBlockMetadata() != 1) return 0; + if(block == null) return 0; + TileEntityPWRController controller = this.getCore(); + if(controller != null) return controller.getSizeInventory(); + + return 0; + } + + @Override + public ItemStack getStackInSlot(int slot) { + + if(this.getBlockMetadata() != 1) return null; + if(block == null) return null; + TileEntityPWRController controller = this.getCore(); + if(controller != null) return controller.getStackInSlot(slot); + + return null; + } + + @Override + public ItemStack decrStackSize(int slot, int amount) { + + if(this.getBlockMetadata() != 1) return null; + if(block == null) return null; + TileEntityPWRController controller = this.getCore(); + if(controller != null) return controller.decrStackSize(slot, amount); + + return null; + } + + @Override + public ItemStack getStackInSlotOnClosing(int slot) { + + if(this.getBlockMetadata() != 1) return null; + if(block == null) return null; + TileEntityPWRController controller = this.getCore(); + if(controller != null) return controller.getStackInSlotOnClosing(slot); + + return null; + } + + @Override + public void setInventorySlotContents(int slot, ItemStack stack) { + + if(this.getBlockMetadata() != 1) return; + if(block == null) return; + TileEntityPWRController controller = this.getCore(); + if(controller != null) controller.setInventorySlotContents(slot, stack); + } + + @Override + public int getInventoryStackLimit() { + + if(this.getBlockMetadata() != 1) return 0; + if(block == null) return 0; + TileEntityPWRController controller = this.getCore(); + if(controller != null) return controller.getInventoryStackLimit(); + + return 0; + } + + @Override public boolean isUseableByPlayer(EntityPlayer player) { return false; } + @Override public void openInventory() { } + @Override public void closeInventory() { } + @Override public String getInventoryName() { return ""; } + @Override public boolean hasCustomInventoryName() { return false; } + + @Override + public boolean isItemValidForSlot(int slot, ItemStack stack) { + + if(this.getBlockMetadata() != 1) return false; + if(block == null) return false; + TileEntityPWRController controller = this.getCore(); + if(controller != null) return controller.isItemValidForSlot(slot, stack); + + return false; + } + + @Override + public int[] getAccessibleSlotsFromSide(int side) { + + if(this.getBlockMetadata() != 1) return new int[0]; + if(block == null) return new int[0]; + TileEntityPWRController controller = this.getCore(); + if(controller != null) return controller.getAccessibleSlotsFromSide(side); + + return new int[0]; + } + + @Override + public boolean canInsertItem(int slot, ItemStack stack, int side) { + + if(this.getBlockMetadata() != 1) return false; + if(block == null) return false; + TileEntityPWRController controller = this.getCore(); + if(controller != null) return controller.canInsertItem(slot, stack, side); + + return false; + } + + @Override + public boolean canExtractItem(int slot, ItemStack stack, int side) { + + if(this.getBlockMetadata() != 1) return false; + if(block == null) return false; + TileEntityPWRController controller = this.getCore(); + if(controller != null) return controller.canExtractItem(slot, stack, side); + + return false; + } } } diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 90dc90185..9e478904b 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -874,6 +874,16 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.rbmk_steam_outlet, 1), new Object[] { "SCS", "CBC", "SCS", 'S', STEEL.ingot(), 'C', CU.plate(), 'B', ModItems.tank_steel }); //addRecipeAuto(new ItemStack(ModBlocks.rbmk_heatex, 1), new Object[] { "SCS", "CBC", "SCS", 'S', STEEL.ingot(), 'C', CU.plate(), 'B', ModItems.pipes_steel }); + addRecipeAuto(new ItemStack(ModBlocks.pwr_fuel, 4), new Object[] { "LZL", "LZL", "LZL", 'L', PB.plate528(), 'Z', ZR.plateCast() }); + addRecipeAuto(new ItemStack(ModBlocks.pwr_control, 4), new Object[] { "SBS", "MBM", "SBS", 'S', STEEL.plate528(), 'B', B.ingot(), 'M', ModItems.motor }); + addRecipeAuto(new ItemStack(ModBlocks.pwr_channel, 4), new Object[] { "CPC", "BPB", "CPC", 'C', CU.ingot(), 'P', ModBlocks.deco_pipe_quad, 'B', ANY_PLASTIC.ingot() }); + addRecipeAuto(new ItemStack(ModBlocks.pwr_heatex, 4), new Object[] { "CSC", "SMS", "CSC", 'C', CU.plateCast(), 'S', STEEL.plate528(), 'M', ModItems.motor }); + addRecipeAuto(new ItemStack(ModBlocks.pwr_reflector, 4), new Object[] { "RLR", "LSL", "RLR", 'R', OreDictManager.getReflector(), 'L', PB.plate528(), 'S', STEEL.plateCast() }); + addRecipeAuto(new ItemStack(ModBlocks.pwr_casing, 4), new Object[] { "LCL", "CSC", "LCL", 'L', PB.plate528(), 'C', ANY_CONCRETE.any(), 'S', STEEL.plateCast() }); + addRecipeAuto(new ItemStack(ModBlocks.pwr_controller, 1), new Object[] { "CPC", "PSP", "CPC", 'C', ModBlocks.pwr_casing, 'P', ANY_PLASTIC.ingot(), 'S', ModItems.circuit_gold }); + addRecipeAuto(new ItemStack(ModBlocks.pwr_port, 1), new Object[] { "S", "C", "S", 'S', STEEL.plate(), 'C', ModBlocks.pwr_casing }); + addRecipeAuto(new ItemStack(ModBlocks.pwr_neutron_source, 1), new Object[] { "LRL", "ZRZ", "LRL", 'L', PB.plate528(), 'R', ModItems.billet_ra226be, 'Z', ZR.plateCast() }); + addRecipeAuto(new ItemStack(ModBlocks.deco_rbmk, 8), new Object[] { "R", 'R', ModBlocks.rbmk_blank }); addRecipeAuto(new ItemStack(ModBlocks.deco_rbmk_smooth, 1), new Object[] { "R", 'R', ModBlocks.deco_rbmk }); addRecipeAuto(new ItemStack(ModBlocks.rbmk_blank, 1), new Object[] { "RRR", "R R", "RRR", 'R', ModBlocks.deco_rbmk }); diff --git a/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java b/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java index 58c6d15e0..996a216b9 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java +++ b/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java @@ -96,7 +96,7 @@ public abstract class TileEntityMachineBase extends TileEntityLoadedBase impleme public void closeInventory() {} @Override - public boolean isItemValidForSlot(int i, ItemStack itemStack) { + public boolean isItemValidForSlot(int slot, ItemStack itemStack) { return false; } @@ -122,17 +122,17 @@ public abstract class TileEntityMachineBase extends TileEntityLoadedBase impleme } @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack); + public boolean canInsertItem(int slot, ItemStack itemStack, int side) { + return this.isItemValidForSlot(slot, itemStack); } @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { + public boolean canExtractItem(int slot, ItemStack itemStack, int side) { return false; } @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) { + public int[] getAccessibleSlotsFromSide(int side) { return new int[] { }; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java index e50143a6b..44fd69cf8 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java @@ -350,6 +350,22 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG public double getXOverE(double x, double d) { return 1 - Math.pow(Math.E, -x / d); } + + @Override + public boolean isItemValidForSlot(int slot, ItemStack stack) { + if(slot == 0) return stack.getItem() == ModItems.pwr_fuel; + return false; + } + + @Override + public int[] getAccessibleSlotsFromSide(int side) { + return new int[] {0, 1}; + } + + @Override + public boolean canExtractItem(int slot, ItemStack itemStack, int side) { + return slot == 1; + } @Override public void readFromNBT(NBTTagCompound nbt) { From 3ebf9899a417725f66e0884b9e7337f1bc1ab378 Mon Sep 17 00:00:00 2001 From: Vaern Date: Tue, 22 Aug 2023 20:48:17 -0700 Subject: [PATCH 254/432] h --- src/main/java/com/hbm/blocks/ModBlocks.java | 248 ++++++++++---------- 1 file changed, 124 insertions(+), 124 deletions(-) diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 371268c24..a0d0675d5 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1411,40 +1411,40 @@ public class ModBlocks { crystal_robust = new BlockCrystal(Material.glass).setBlockName("crystal_robust").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(10.0F).setResistance(100.0F).setBlockTextureName(RefStrings.MODID + ":crystal_robust"); crystal_trixite = new BlockCrystal(Material.glass).setBlockName("crystal_trixite").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(1.0F).setBlockTextureName(RefStrings.MODID + ":crystal_trixite"); - block_uranium = new BlockHazard().makeBeaconable().setBlockName("block_uranium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_uranium"); - block_u233 = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_u233").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_u233"); - block_u235 = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_u235").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_u235"); - block_u238 = new BlockHazard().makeBeaconable().setBlockName("block_u238").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_u238"); - block_uranium_fuel = new BlockHazard().makeBeaconable().setBlockName("block_uranium_fuel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_uranium_fuel"); - block_thorium = new BlockHazard().makeBeaconable().setBlockName("block_thorium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_thorium"); - block_thorium_fuel = new BlockHazard().makeBeaconable().setBlockName("block_thorium_fuel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_thorium_fuel"); - block_neptunium = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_neptunium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_neptunium"); - block_polonium = new BlockHotHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_polonium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_polonium"); - block_mox_fuel = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_mox_fuel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_mox_fuel"); - block_plutonium = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_plutonium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_plutonium"); - block_pu238 = new BlockHotHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_pu238").setCreativeTab(MainRegistry.blockTab).setLightLevel(5F/15F).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_pu238"); - block_pu239 = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_pu239").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_pu239"); - block_pu240 = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_pu240").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_pu240"); - block_pu_mix = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_pu_mix").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_pu_mix"); - block_plutonium_fuel = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_plutonium_fuel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_plutonium_fuel"); - block_titanium = new BlockBeaconable(Material.iron).setBlockName("block_titanium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_titanium"); + block_uranium = new BlockHazard().makeBeaconable().setBlockName("block_uranium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_uranium"); + block_u233 = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_u233").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_u233"); + block_u235 = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_u235").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_u235"); + block_u238 = new BlockHazard().makeBeaconable().setBlockName("block_u238").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_u238"); + block_uranium_fuel = new BlockHazard().makeBeaconable().setBlockName("block_uranium_fuel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_uranium_fuel"); + block_thorium = new BlockHazard().makeBeaconable().setBlockName("block_thorium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_thorium"); + block_thorium_fuel = new BlockHazard().makeBeaconable().setBlockName("block_thorium_fuel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_thorium_fuel"); + block_neptunium = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_neptunium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":block_neptunium"); + block_polonium = new BlockHotHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_polonium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_polonium"); + block_mox_fuel = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_mox_fuel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_mox_fuel"); + block_plutonium = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_plutonium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_plutonium"); + block_pu238 = new BlockHotHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_pu238").setCreativeTab(MainRegistry.blockTab).setLightLevel(5F/15F).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_pu238"); + block_pu239 = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_pu239").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_pu239"); + block_pu240 = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_pu240").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_pu240"); + block_pu_mix = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_pu_mix").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_pu_mix"); + block_plutonium_fuel = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_plutonium_fuel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_plutonium_fuel"); + block_titanium = new BlockBeaconable(Material.iron).setBlockName("block_titanium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_titanium"); block_sulfur = new BlockBeaconable(Material.iron).setBlockName("block_sulfur").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_sulfur"); block_niter = new BlockBeaconable(Material.iron).setBlockName("block_niter").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_niter"); - block_niter_reinforced = new BlockBeaconable(Material.iron).setBlockName("block_niter_reinforced").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":block_niter_reinforced"); - block_copper = new BlockBeaconable(Material.iron).setBlockName("block_copper").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_copper"); - block_red_copper = new BlockBeaconable(Material.iron).setBlockName("block_red_copper").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_red_copper"); - block_tungsten = new BlockBeaconable(Material.iron).setBlockName("block_tungsten").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_tungsten"); - block_aluminium = new BlockBeaconable(Material.iron).setBlockName("block_aluminium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_aluminium"); + block_niter_reinforced = new BlockBeaconable(Material.iron).setBlockName("block_niter_reinforced").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(100.0F).setBlockTextureName(RefStrings.MODID + ":block_niter_reinforced"); + block_copper = new BlockBeaconable(Material.iron).setBlockName("block_copper").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":block_copper"); + block_red_copper = new BlockBeaconable(Material.iron).setBlockName("block_red_copper").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(25.0F).setBlockTextureName(RefStrings.MODID + ":block_red_copper"); + block_tungsten = new BlockBeaconable(Material.iron).setBlockName("block_tungsten").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":block_tungsten"); + block_aluminium = new BlockBeaconable(Material.iron).setBlockName("block_aluminium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":block_aluminium"); block_fluorite = new BlockBeaconable(Material.iron).setBlockName("block_fluorite").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_fluorite"); - block_steel = new BlockBeaconable(Material.iron).setBlockName("block_steel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); - block_tcalloy = new BlockBeaconable(Material.iron).setBlockName("block_tcalloy").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_tcalloy"); - block_cdalloy = new BlockBeaconable(Material.iron).setBlockName("block_cdalloy").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_cdalloy"); - block_lead = new BlockBeaconable(Material.iron).setBlockName("block_lead").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(30.0F).setBlockTextureName(RefStrings.MODID + ":block_lead"); - block_bismuth = new BlockBeaconable(Material.iron).setBlockName("block_bismuth").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(30.0F).setBlockTextureName(RefStrings.MODID + ":block_bismuth"); - block_cadmium = new BlockBeaconable(Material.iron).setBlockName("block_cadmium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(30.0F).setBlockTextureName(RefStrings.MODID + ":block_cadmium"); - block_coltan = new BlockBeaconable(Material.iron).setBlockName("block_coltan").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(30.0F).setBlockTextureName(RefStrings.MODID + ":block_coltan"); - block_tantalium = new BlockBeaconable(Material.iron).setBlockName("block_tantalium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(30.0F).setBlockTextureName(RefStrings.MODID + ":block_tantalium"); - block_niobium = new BlockBeaconable(Material.iron).setBlockName("block_niobium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(30.0F); + block_steel = new BlockBeaconable(Material.iron).setBlockName("block_steel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); + block_tcalloy = new BlockBeaconable(Material.iron).setBlockName("block_tcalloy").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(70.0F).setBlockTextureName(RefStrings.MODID + ":block_tcalloy"); + block_cdalloy = new BlockBeaconable(Material.iron).setBlockName("block_cdalloy").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(70.0F).setBlockTextureName(RefStrings.MODID + ":block_cdalloy"); + block_lead = new BlockBeaconable(Material.iron).setBlockName("block_lead").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_lead"); + block_bismuth = new BlockBeaconable(Material.iron).setBlockName("block_bismuth").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(90.0F).setBlockTextureName(RefStrings.MODID + ":block_bismuth"); + block_cadmium = new BlockBeaconable(Material.iron).setBlockName("block_cadmium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(90.0F).setBlockTextureName(RefStrings.MODID + ":block_cadmium"); + block_coltan = new BlockBeaconable(Material.iron).setBlockName("block_coltan").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_coltan"); + block_tantalium = new BlockBeaconable(Material.iron).setBlockName("block_tantalium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_tantalium"); + block_niobium = new BlockBeaconable(Material.iron).setBlockName("block_niobium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F); block_trinitite = new BlockHazard().makeBeaconable().setBlockName("block_trinitite").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_trinitite"); block_waste = new BlockNuclearWaste().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_waste").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_waste"); block_waste_painted = new BlockNuclearWaste().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).setBlockName("block_waste_painted").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_waste_painted"); @@ -1454,8 +1454,8 @@ public class ModBlocks { block_corium_cobble = new BlockOutgas(Material.iron, true, 1, true, true).setBlockName("block_corium_cobble").setCreativeTab(MainRegistry.blockTab).setHardness(100.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":block_corium_cobble"); block_scrap = new BlockFalling(Material.sand).setBlockName("block_scrap").setCreativeTab(MainRegistry.blockTab).setHardness(2.5F).setResistance(5.0F).setStepSound(Block.soundTypeGravel).setBlockTextureName(RefStrings.MODID + ":block_scrap"); block_electrical_scrap = new BlockFalling(Material.iron).setBlockName("block_electrical_scrap").setCreativeTab(MainRegistry.blockTab).setHardness(2.5F).setResistance(5.0F).setStepSound(Block.soundTypeMetal).setBlockTextureName(RefStrings.MODID + ":electrical_scrap_alt2"); - block_beryllium = new BlockBeaconable(Material.iron).setBlockName("block_beryllium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_beryllium"); - block_schraranium = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.SCHRAB).setBlockName("block_schraranium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_schraranium"); + block_beryllium = new BlockBeaconable(Material.iron).setBlockName("block_beryllium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":block_beryllium"); + block_schraranium = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.SCHRAB).setBlockName("block_schraranium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(250.0F).setBlockTextureName(RefStrings.MODID + ":block_schraranium"); block_schrabidium = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.SCHRAB).setBlockName("block_schrabidium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_schrabidium"); block_schrabidate = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.SCHRAB).setBlockName("block_schrabidate").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_schrabidate"); block_solinium = new BlockHazard().makeBeaconable().setDisplayEffect(ExtDisplayEffect.SCHRAB).setBlockName("block_solinium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_solinium"); @@ -1464,22 +1464,22 @@ public class ModBlocks { block_dineutronium = new BlockBeaconable(Material.iron).setBlockName("block_dineutronium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(60000.0F).setBlockTextureName(RefStrings.MODID + ":block_dineutronium"); block_schrabidium_cluster = new BlockRotatablePillar(Material.rock, RefStrings.MODID + ":block_schrabidium_cluster_top").setBlockName("block_schrabidium_cluster").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(60000.0F).setBlockTextureName(RefStrings.MODID + ":block_schrabidium_cluster_side"); block_euphemium_cluster = new BlockRotatablePillar(Material.rock, RefStrings.MODID + ":block_euphemium_cluster_top").setBlockName("block_euphemium_cluster").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(60000.0F).setBlockTextureName(RefStrings.MODID + ":block_euphemium_cluster_side"); - block_advanced_alloy = new BlockBeaconable(Material.iron).setBlockName("block_advanced_alloy").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_advanced_alloy"); - block_magnetized_tungsten = new BlockBeaconable(Material.iron).setBlockName("block_magnetized_tungsten").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(35.0F).setBlockTextureName(RefStrings.MODID + ":block_magnetized_tungsten"); + block_advanced_alloy = new BlockBeaconable(Material.iron).setBlockName("block_advanced_alloy").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":block_advanced_alloy"); + block_magnetized_tungsten = new BlockBeaconable(Material.iron).setBlockName("block_magnetized_tungsten").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(75.0F).setBlockTextureName(RefStrings.MODID + ":block_magnetized_tungsten"); block_combine_steel = new BlockBeaconable(Material.iron).setBlockName("block_combine_steel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_combine_steel"); - block_desh = new BlockBeaconable(Material.iron).setBlockName("block_desh").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_desh"); - block_dura_steel = new BlockBeaconable(Material.iron).setBlockName("block_dura_steel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_dura_steel"); - block_starmetal = new BlockBeaconable(Material.iron).setBlockName("block_starmetal").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_starmetal"); + block_desh = new BlockBeaconable(Material.iron).setBlockName("block_desh").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(300.0F).setBlockTextureName(RefStrings.MODID + ":block_desh"); + block_dura_steel = new BlockBeaconable(Material.iron).setBlockName("block_dura_steel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":block_dura_steel"); + block_starmetal = new BlockBeaconable(Material.iron).setBlockName("block_starmetal").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(400.0F).setBlockTextureName(RefStrings.MODID + ":block_starmetal"); block_polymer = new BlockBeaconable(Material.rock).setBlockName("block_polymer").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypePiston).setHardness(3.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_polymer"); - block_bakelite = new BlockBeaconable(Material.rock).setBlockName("block_bakelite").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypePiston).setHardness(3.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_bakelite"); - block_rubber = new BlockBeaconable(Material.rock).setBlockName("block_rubber").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypePiston).setHardness(3.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_rubber"); - block_yellowcake = new BlockHazardFalling().makeBeaconable().setBlockName("block_yellowcake").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeSand).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_yellowcake"); + block_bakelite = new BlockBeaconable(Material.rock).setBlockName("block_bakelite").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypePiston).setHardness(3.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":block_bakelite"); + block_rubber = new BlockBeaconable(Material.rock).setBlockName("block_rubber").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypePiston).setHardness(3.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":block_rubber"); + block_yellowcake = new BlockHazardFalling().makeBeaconable().setBlockName("block_yellowcake").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeSand).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_yellowcake"); block_insulator = new BlockRotatablePillar(Material.cloth, RefStrings.MODID + ":block_insulator_top").setBlockName("block_insulator").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeCloth).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_insulator_side"); - block_fiberglass = new BlockRotatablePillar(Material.cloth, RefStrings.MODID + ":block_fiberglass_top").setBlockName("block_fiberglass").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeCloth).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_fiberglass_side"); - block_asbestos = new BlockOutgas(Material.cloth, true, 5, true).setBlockName("block_asbestos").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeCloth).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_asbestos"); - block_cobalt = new BlockBeaconable(Material.iron).setBlockName("block_cobalt").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_cobalt"); + block_fiberglass = new BlockRotatablePillar(Material.cloth, RefStrings.MODID + ":block_fiberglass_top").setBlockName("block_fiberglass").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeCloth).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":block_fiberglass_side"); + block_asbestos = new BlockOutgas(Material.cloth, true, 5, true).setBlockName("block_asbestos").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeCloth).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":block_asbestos"); + block_cobalt = new BlockBeaconable(Material.iron).setBlockName("block_cobalt").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_cobalt"); block_lithium = new BlockLithium(Material.iron).setBlockName("block_lithium").setStepSound(Block.soundTypeMetal).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_lithium"); - block_zirconium = new BlockBeaconable(Material.iron).setBlockName("block_zirconium").setStepSound(Block.soundTypeMetal).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_zirconium"); + block_zirconium = new BlockBeaconable(Material.iron).setBlockName("block_zirconium").setStepSound(Block.soundTypeMetal).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(30.0F).setBlockTextureName(RefStrings.MODID + ":block_zirconium"); block_white_phosphorus = new BlockHazard(Material.rock).makeBeaconable().setBlockName("block_white_phosphorus").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_white_phosphorus"); block_red_phosphorus = new BlockHazardFalling().makeBeaconable().setStepSound(Block.soundTypeSand).setBlockName("block_red_phosphorus").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_red_phosphorus"); block_fallout = new BlockHazardFalling().setStepSound(Block.soundTypeGravel).setBlockName("block_fallout").setCreativeTab(MainRegistry.blockTab).setHardness(0.2F).setBlockTextureName(RefStrings.MODID + ":ash"); @@ -1501,7 +1501,7 @@ public class ModBlocks { block_tritium = new BlockRotatablePillar(Material.glass, RefStrings.MODID + ":block_tritium_top").setBlockName("block_tritium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGlass).setHardness(3.0F).setResistance(2.0F).setBlockTextureName(RefStrings.MODID + ":block_tritium_side"); block_semtex = new BlockPlasticExplosive(Material.tnt).setBlockName("block_semtex").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(2.0F).setResistance(2.0F).setBlockTextureName(RefStrings.MODID + ":block_semtex"); block_c4 = new BlockPlasticExplosive(Material.tnt).setBlockName("block_c4").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(2.0F).setResistance(2.0F).setBlockTextureName(RefStrings.MODID + ":block_c4"); - block_smore = new BlockPillar(Material.rock, RefStrings.MODID + ":block_smore_top").setBlockName("block_smore").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":block_smore_side"); + block_smore = new BlockPillar(Material.rock, RefStrings.MODID + ":block_smore_top").setBlockName("block_smore").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_smore_side"); block_slag = new BlockSlag(Material.rock).setBlockName("block_slag").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeStone).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_slag"); block_australium = new BlockBeaconable(Material.iron).setBlockName("block_australium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_australium"); @@ -1528,30 +1528,30 @@ public class ModBlocks { deco_lead = new BlockDecoCT(Material.iron).noFortune().setBlockName("deco_lead").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_lead"); deco_beryllium = new BlockDecoCT(Material.iron).noFortune().setBlockName("deco_beryllium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_beryllium"); deco_asbestos = new BlockOutgas(Material.cloth, true, 5, true).noFortune().setBlockName("deco_asbestos").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_asbestos"); - deco_rbmk = new BlockGeneric(Material.iron).setBlockName("deco_rbmk").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_side"); - deco_rbmk_smooth = new BlockGeneric(Material.iron).setBlockName("deco_rbmk_smooth").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_top"); + deco_rbmk = new BlockGeneric(Material.iron).setBlockName("deco_rbmk").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(100.0F).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_side"); + deco_rbmk_smooth = new BlockGeneric(Material.iron).setBlockName("deco_rbmk_smooth").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(100.0F).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_top"); deco_emitter = new BlockEmitter().setBlockName("deco_emitter").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":emitter"); part_emitter = new PartEmitter().setBlockName("part_emitter").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":part_top"); deco_loot = new BlockLoot().setBlockName("deco_loot").setCreativeTab(null).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); bobblehead = new BlockBobble().setBlockName("bobblehead").setCreativeTab(MainRegistry.blockTab).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); snowglobe = new BlockSnowglobe().setBlockName("snowglobe").setCreativeTab(MainRegistry.blockTab).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":glass_boron"); - hazmat = new BlockGeneric(Material.cloth).setBlockName("hazmat").setStepSound(Block.soundTypeCloth).setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(100.0F).setBlockTextureName(RefStrings.MODID + ":hazmat"); + hazmat = new BlockGeneric(Material.cloth).setBlockName("hazmat").setStepSound(Block.soundTypeCloth).setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":hazmat"); - gravel_obsidian = new BlockFalling(Material.iron).setBlockName("gravel_obsidian").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGravel).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":gravel_obsidian"); + gravel_obsidian = new BlockFalling(Material.iron).setBlockName("gravel_obsidian").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGravel).setHardness(5.0F).setResistance(240.0F).setBlockTextureName(RefStrings.MODID + ":gravel_obsidian"); gravel_diamond = new BlockFalling(Material.sand).setBlockName("gravel_diamond").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGravel).setHardness(0.6F).setBlockTextureName(RefStrings.MODID + ":gravel_diamond"); - asphalt = new BlockSpeedy(Material.rock, 1.5).setBlockName("asphalt").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(100.0F).setBlockTextureName(RefStrings.MODID + ":asphalt"); - asphalt_light = new BlockSpeedy(Material.rock, 1.5).setBlockName("asphalt_light").setCreativeTab(MainRegistry.blockTab).setLightLevel(1F).setHardness(15.0F).setResistance(100.0F).setBlockTextureName(RefStrings.MODID + ":asphalt_light"); + asphalt = new BlockSpeedy(Material.rock, 1.5).setBlockName("asphalt").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(120.0F).setBlockTextureName(RefStrings.MODID + ":asphalt"); + asphalt_light = new BlockSpeedy(Material.rock, 1.5).setBlockName("asphalt_light").setCreativeTab(MainRegistry.blockTab).setLightLevel(1F).setHardness(15.0F).setResistance(120.0F).setBlockTextureName(RefStrings.MODID + ":asphalt_light"); - reinforced_brick = new BlockGeneric(Material.rock).setBlockName("reinforced_brick").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(8000.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_brick"); - reinforced_glass = new BlockNTMGlassCT(0, RefStrings.MODID + ":reinforced_glass", Material.rock).setBlockName("reinforced_glass").setCreativeTab(MainRegistry.blockTab).setLightOpacity(0).setHardness(15.0F).setResistance(200.0F); + reinforced_brick = new BlockGeneric(Material.rock).setBlockName("reinforced_brick").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(300.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_brick"); + reinforced_glass = new BlockNTMGlassCT(0, RefStrings.MODID + ":reinforced_glass", Material.rock).setBlockName("reinforced_glass").setCreativeTab(MainRegistry.blockTab).setLightOpacity(0).setHardness(15.0F).setResistance(25.0F); reinforced_glass_pane = new BlockNTMGlassPane(0, RefStrings.MODID + ":reinforced_glass_pane", RefStrings.MODID + ":reinforced_glass_pane_edge", Material.rock, false).setBlockName("reinforced_glass_pane").setCreativeTab(MainRegistry.blockTab).setLightOpacity(1).setHardness(15.0F).setResistance(200.0F); - reinforced_light = new BlockGeneric(Material.rock).setBlockName("reinforced_light").setCreativeTab(MainRegistry.blockTab).setLightLevel(1.0F).setHardness(15.0F).setResistance(300.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_light"); - reinforced_sand = new BlockGeneric(Material.rock).setBlockName("reinforced_sand").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(400.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_sand"); - reinforced_lamp_off = new ReinforcedLamp(Material.rock, false).setBlockName("reinforced_lamp_off").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(300.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_lamp_off"); - reinforced_lamp_on = new ReinforcedLamp(Material.rock, true).setBlockName("reinforced_lamp_on").setHardness(15.0F).setResistance(300.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_lamp_on"); - reinforced_laminate = new BlockNTMGlassCT(1, RefStrings.MODID + ":reinforced_laminate", Material.rock, true).setBlockName("reinforced_laminate").setCreativeTab(MainRegistry.blockTab).setLightOpacity(0).setHardness(15.0F).setResistance(1000.0F); - reinforced_laminate_pane = new BlockNTMGlassPane(1, RefStrings.MODID + ":reinforced_laminate_pane", RefStrings.MODID + ":reinforced_laminate_pane_edge", Material.rock, true).setBlockName("reinforced_laminate_pane").setCreativeTab(MainRegistry.blockTab).setLightOpacity(1).setHardness(15.0F).setResistance(1000.0F); + reinforced_light = new BlockGeneric(Material.rock).setBlockName("reinforced_light").setCreativeTab(MainRegistry.blockTab).setLightLevel(1.0F).setHardness(15.0F).setResistance(80.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_light"); + reinforced_sand = new BlockGeneric(Material.rock).setBlockName("reinforced_sand").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(40.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_sand"); + reinforced_lamp_off = new ReinforcedLamp(Material.rock, false).setBlockName("reinforced_lamp_off").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(80.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_lamp_off"); + reinforced_lamp_on = new ReinforcedLamp(Material.rock, true).setBlockName("reinforced_lamp_on").setHardness(15.0F).setResistance(80.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_lamp_on"); + reinforced_laminate = new BlockNTMGlassCT(1, RefStrings.MODID + ":reinforced_laminate", Material.rock, true).setBlockName("reinforced_laminate").setCreativeTab(MainRegistry.blockTab).setLightOpacity(0).setHardness(15.0F).setResistance(300.0F); + reinforced_laminate_pane = new BlockNTMGlassPane(1, RefStrings.MODID + ":reinforced_laminate_pane", RefStrings.MODID + ":reinforced_laminate_pane_edge", Material.rock, true).setBlockName("reinforced_laminate_pane").setCreativeTab(MainRegistry.blockTab).setLightOpacity(1).setHardness(15.0F).setResistance(300.0F); lamp_tritium_green_off = new ReinforcedLamp(Material.redstoneLight, false).setBlockName("lamp_tritium_green_off").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":lamp_tritium_green_off"); lamp_tritium_green_on = new ReinforcedLamp(Material.redstoneLight, true).setBlockName("lamp_tritium_green_on").setStepSound(Block.soundTypeGlass).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":lamp_tritium_green_on"); @@ -1564,32 +1564,32 @@ public class ModBlocks { lantern = new BlockLantern().setBlockName("lantern").setStepSound(Block.soundTypeMetal).setCreativeTab(MainRegistry.blockTab).setLightLevel(1F).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); lantern_behemoth = new BlockLanternBehemoth().setBlockName("lantern_behemoth").setStepSound(Block.soundTypeMetal).setCreativeTab(null).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":block_rust"); - reinforced_stone = new BlockGeneric(Material.rock).setBlockName("reinforced_stone").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(3000.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_stone"); - concrete_smooth = new BlockRadResistant(Material.rock).setBlockName("concrete_smooth").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(4000.0F).setBlockTextureName(RefStrings.MODID + ":concrete"); - concrete_colored = new BlockConcreteColored(Material.rock).setBlockName("concrete_colored").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(4000.0F).setBlockTextureName(RefStrings.MODID + ":concrete"); - concrete_colored_ext = new BlockConcreteColoredExt(Material.rock).setBlockName("concrete_colored_ext").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(4000.0F).setBlockTextureName(RefStrings.MODID + ":concrete_colored_ext"); - concrete = new BlockGeneric(Material.rock).setBlockName("concrete").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(4000.0F).setBlockTextureName(RefStrings.MODID + ":concrete_tile"); - concrete_asbestos = new BlockGeneric(Material.rock).setBlockName("concrete_asbestos").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(4000.0F).setBlockTextureName(RefStrings.MODID + ":concrete_asbestos"); - concrete_super = new BlockUberConcrete().setBlockName("concrete_super").setCreativeTab(MainRegistry.blockTab).setHardness(150.0F).setResistance(10000.0F); + reinforced_stone = new BlockGeneric(Material.rock).setBlockName("reinforced_stone").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(100.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_stone"); + concrete_smooth = new BlockRadResistant(Material.rock).setBlockName("concrete_smooth").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(140.0F).setBlockTextureName(RefStrings.MODID + ":concrete"); + concrete_colored = new BlockConcreteColored(Material.rock).setBlockName("concrete_colored").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(140.0F).setBlockTextureName(RefStrings.MODID + ":concrete"); + concrete_colored_ext = new BlockConcreteColoredExt(Material.rock).setBlockName("concrete_colored_ext").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(140.0F).setBlockTextureName(RefStrings.MODID + ":concrete_colored_ext"); + concrete = new BlockGeneric(Material.rock).setBlockName("concrete").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(140.0F).setBlockTextureName(RefStrings.MODID + ":concrete_tile"); + concrete_asbestos = new BlockGeneric(Material.rock).setBlockName("concrete_asbestos").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(150.0F).setBlockTextureName(RefStrings.MODID + ":concrete_asbestos"); + concrete_super = new BlockUberConcrete().setBlockName("concrete_super").setCreativeTab(MainRegistry.blockTab).setHardness(150.0F).setResistance(1000.0F); concrete_super_broken = new BlockFalling(Material.rock).setBlockName("concrete_super_broken").setCreativeTab(MainRegistry.blockTab).setHardness(10.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":concrete_super_broken"); - concrete_pillar = new BlockRotatablePillar(Material.rock, RefStrings.MODID + ":concrete_pillar_top").setBlockName("concrete_pillar").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":concrete_pillar_side"); - brick_concrete = new BlockGeneric(Material.rock).setBlockName("brick_concrete").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(5000.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete"); - brick_concrete_mossy = new BlockGeneric(Material.rock).setBlockName("brick_concrete_mossy").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(5000.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete_mossy"); - brick_concrete_cracked = new BlockGeneric(Material.rock).setBlockName("brick_concrete_cracked").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(2000.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete_cracked"); - brick_concrete_broken = new BlockGeneric(Material.rock).setBlockName("brick_concrete_broken").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(1500.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete_broken"); - brick_concrete_marked = new BlockWriting(Material.rock, RefStrings.MODID + ":brick_concrete").setBlockName("brick_concrete_marked").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(1500.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete_marked"); - brick_obsidian = new BlockGeneric(Material.rock).setBlockName("brick_obsidian").setCreativeTab(MainRegistry.blockTab).setLightOpacity(15).setHardness(15.0F).setResistance(8000.0F).setBlockTextureName(RefStrings.MODID + ":brick_obsidian"); - brick_light = new BlockGeneric(Material.rock).setBlockName("brick_light").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(1000.0F).setBlockTextureName(RefStrings.MODID + ":brick_light"); - brick_compound = new BlockGeneric(Material.rock).setBlockName("brick_compound").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(10000.0F).setBlockTextureName(RefStrings.MODID + ":brick_compound"); - cmb_brick = new BlockGeneric(Material.rock).setBlockName("cmb_brick").setCreativeTab(MainRegistry.blockTab).setHardness(25.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":cmb_brick"); - cmb_brick_reinforced = new BlockGeneric(Material.rock).setBlockName("cmb_brick_reinforced").setCreativeTab(MainRegistry.blockTab).setHardness(25.0F).setResistance(60000.0F).setBlockTextureName(RefStrings.MODID + ":cmb_brick_reinforced"); + concrete_pillar = new BlockRotatablePillar(Material.rock, RefStrings.MODID + ":concrete_pillar_top").setBlockName("concrete_pillar").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(180.0F).setBlockTextureName(RefStrings.MODID + ":concrete_pillar_side"); + brick_concrete = new BlockGeneric(Material.rock).setBlockName("brick_concrete").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(160.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete"); + brick_concrete_mossy = new BlockGeneric(Material.rock).setBlockName("brick_concrete_mossy").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(160.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete_mossy"); + brick_concrete_cracked = new BlockGeneric(Material.rock).setBlockName("brick_concrete_cracked").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete_cracked"); + brick_concrete_broken = new BlockGeneric(Material.rock).setBlockName("brick_concrete_broken").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(45.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete_broken"); + brick_concrete_marked = new BlockWriting(Material.rock, RefStrings.MODID + ":brick_concrete").setBlockName("brick_concrete_marked").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(160.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete_marked"); + brick_obsidian = new BlockGeneric(Material.rock).setBlockName("brick_obsidian").setCreativeTab(MainRegistry.blockTab).setLightOpacity(15).setHardness(15.0F).setResistance(2400.0F).setBlockTextureName(RefStrings.MODID + ":brick_obsidian"); + brick_light = new BlockGeneric(Material.rock).setBlockName("brick_light").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":brick_light"); + brick_compound = new BlockGeneric(Material.rock).setBlockName("brick_compound").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(400.0F).setBlockTextureName(RefStrings.MODID + ":brick_compound"); + cmb_brick = new BlockGeneric(Material.rock).setBlockName("cmb_brick").setCreativeTab(MainRegistry.blockTab).setHardness(25.0F).setResistance(5000.0F).setBlockTextureName(RefStrings.MODID + ":cmb_brick"); + cmb_brick_reinforced = new BlockGeneric(Material.rock).setBlockName("cmb_brick_reinforced").setCreativeTab(MainRegistry.blockTab).setHardness(25.0F).setResistance(50000.0F).setBlockTextureName(RefStrings.MODID + ":cmb_brick_reinforced"); brick_asbestos = new BlockOutgas(Material.rock, true, 5, true).setBlockName("brick_asbestos").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(1000.0F).setBlockTextureName(RefStrings.MODID + ":brick_asbestos"); - brick_fire = new BlockGeneric(Material.rock).setBlockName("brick_fire").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(160.0F).setBlockTextureName(RefStrings.MODID + ":brick_fire"); + brick_fire = new BlockGeneric(Material.rock).setBlockName("brick_fire").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(35.0F).setBlockTextureName(RefStrings.MODID + ":brick_fire"); - ducrete_smooth = new BlockGeneric(Material.rock).setBlockName("ducrete_smooth").setCreativeTab(MainRegistry.blockTab).setHardness(20.0F).setResistance(8000.0F).setBlockTextureName(RefStrings.MODID + ":ducrete"); - ducrete = new BlockGeneric(Material.rock).setBlockName("ducrete").setCreativeTab(MainRegistry.blockTab).setHardness(20.0F).setResistance(8000.0F).setBlockTextureName(RefStrings.MODID + ":ducrete_tile"); - brick_ducrete = new BlockGeneric(Material.rock).setBlockName("brick_ducrete").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(12000.0F).setBlockTextureName(RefStrings.MODID + ":brick_ducrete"); - reinforced_ducrete = new BlockGeneric(Material.rock).setBlockName("reinforced_ducrete").setCreativeTab(MainRegistry.blockTab).setHardness(20.0F).setResistance(24000.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_ducrete"); + ducrete_smooth = new BlockGeneric(Material.rock).setBlockName("ducrete_smooth").setCreativeTab(MainRegistry.blockTab).setHardness(20.0F).setResistance(500.0F).setBlockTextureName(RefStrings.MODID + ":ducrete"); + ducrete = new BlockGeneric(Material.rock).setBlockName("ducrete").setCreativeTab(MainRegistry.blockTab).setHardness(20.0F).setResistance(500.0F).setBlockTextureName(RefStrings.MODID + ":ducrete_tile"); + brick_ducrete = new BlockGeneric(Material.rock).setBlockName("brick_ducrete").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(750.0F).setBlockTextureName(RefStrings.MODID + ":brick_ducrete"); + reinforced_ducrete = new BlockGeneric(Material.rock).setBlockName("reinforced_ducrete").setCreativeTab(MainRegistry.blockTab).setHardness(20.0F).setResistance(1000.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_ducrete"); concrete_slab = new BlockMultiSlab(null, Material.rock, concrete_smooth, concrete, concrete_asbestos, ducrete_smooth, ducrete).setBlockName("concrete_slab").setCreativeTab(MainRegistry.blockTab); concrete_double_slab = new BlockMultiSlab(concrete_slab, Material.rock, concrete_smooth, concrete, concrete_asbestos, ducrete_smooth, ducrete).setBlockName("concrete_double_slab").setCreativeTab(MainRegistry.blockTab); @@ -1616,7 +1616,7 @@ public class ModBlocks { brick_asbestos_stairs = new BlockGenericStairs(brick_asbestos, 0).setBlockName("brick_asbestos_stairs").setCreativeTab(MainRegistry.blockTab); brick_fire_stairs = new BlockGenericStairs(brick_fire, 0).setBlockName("brick_fire_stairs").setCreativeTab(MainRegistry.blockTab); - vinyl_tile = new BlockEnumMulti(Material.rock, TileType.class, true, true).setBlockName("vinyl_tile").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(10.0F).setResistance(120.0F).setBlockTextureName(RefStrings.MODID + ":vinyl_tile"); + vinyl_tile = new BlockEnumMulti(Material.rock, TileType.class, true, true).setBlockName("vinyl_tile").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(10.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":vinyl_tile"); tile_lab = new BlockOutgas(Material.rock, false, 5, true).setBlockName("tile_lab").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(1.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":tile_lab"); tile_lab_cracked = new BlockOutgas(Material.rock, false, 5, true).setBlockName("tile_lab_cracked").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(1.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":tile_lab_cracked"); @@ -1628,30 +1628,30 @@ public class ModBlocks { siege_emergency = new BlockBase(Material.iron).setBlockName("siege_emergency").setCreativeTab(MainRegistry.blockTab).setBlockUnbreakable().setResistance(20000.0F).setBlockTextureName(RefStrings.MODID + ":siege_emergency"); siege_hole = new SiegeHole(Material.iron).setBlockName("siege_hole").setCreativeTab(MainRegistry.blockTab).setBlockUnbreakable().setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":siege_hole"); - block_meteor = new BlockOre(Material.rock).noFortune().setBlockName("block_meteor").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":meteor"); - block_meteor_cobble = new BlockOre(Material.rock).noFortune().setBlockName("block_meteor_cobble").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":meteor_cobble"); - block_meteor_broken = new BlockOre(Material.rock).noFortune().setBlockName("block_meteor_broken").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":meteor_crushed"); - block_meteor_molten = new BlockOre(Material.rock, true).noFortune().setBlockName("block_meteor_molten").setLightLevel(0.75F).setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":meteor_cobble_molten"); - block_meteor_treasure = new BlockOre(Material.rock).noFortune().setBlockName("block_meteor_treasure").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":meteor_treasure"); - meteor_polished = new BlockGeneric(Material.rock).setBlockName("meteor_polished").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":meteor_polished"); - meteor_brick = new BlockGeneric(Material.rock).setBlockName("meteor_brick").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":meteor_brick"); - meteor_brick_mossy = new BlockGeneric(Material.rock).setBlockName("meteor_brick_mossy").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":meteor_brick_mossy"); - meteor_brick_cracked = new BlockGeneric(Material.rock).setBlockName("meteor_brick_cracked").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":meteor_brick_cracked"); - meteor_brick_chiseled = new BlockGeneric(Material.rock).setBlockName("meteor_brick_chiseled").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":meteor_brick_chiseled"); - meteor_pillar = new BlockRotatablePillar(Material.rock, RefStrings.MODID + ":meteor_pillar_top").setBlockName("meteor_pillar").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":meteor_pillar"); - meteor_spawner = new BlockCybercrab(Material.rock).setBlockName("meteor_spawner").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F); - meteor_battery = new BlockPillar(Material.rock, RefStrings.MODID + ":meteor_power").setBlockName("meteor_battery").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":meteor_spawner_side"); + block_meteor = new BlockOre(Material.rock).noFortune().setBlockName("block_meteor").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":meteor"); + block_meteor_cobble = new BlockOre(Material.rock).noFortune().setBlockName("block_meteor_cobble").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":meteor_cobble"); + block_meteor_broken = new BlockOre(Material.rock).noFortune().setBlockName("block_meteor_broken").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":meteor_crushed"); + block_meteor_molten = new BlockOre(Material.rock, true).noFortune().setBlockName("block_meteor_molten").setLightLevel(0.75F).setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":meteor_cobble_molten"); + block_meteor_treasure = new BlockOre(Material.rock).noFortune().setBlockName("block_meteor_treasure").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":meteor_treasure"); + meteor_polished = new BlockGeneric(Material.rock).setBlockName("meteor_polished").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":meteor_polished"); + meteor_brick = new BlockGeneric(Material.rock).setBlockName("meteor_brick").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":meteor_brick"); + meteor_brick_mossy = new BlockGeneric(Material.rock).setBlockName("meteor_brick_mossy").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":meteor_brick_mossy"); + meteor_brick_cracked = new BlockGeneric(Material.rock).setBlockName("meteor_brick_cracked").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":meteor_brick_cracked"); + meteor_brick_chiseled = new BlockGeneric(Material.rock).setBlockName("meteor_brick_chiseled").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":meteor_brick_chiseled"); + meteor_pillar = new BlockRotatablePillar(Material.rock, RefStrings.MODID + ":meteor_pillar_top").setBlockName("meteor_pillar").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":meteor_pillar"); + meteor_spawner = new BlockCybercrab(Material.rock).setBlockName("meteor_spawner").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F); + meteor_battery = new BlockPillar(Material.rock, RefStrings.MODID + ":meteor_power").setBlockName("meteor_battery").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":meteor_spawner_side"); moon_turf = new BlockFalling(Material.sand).setBlockName("moon_turf").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":moon_turf"); - brick_jungle = new BlockGeneric(Material.rock).setBlockName("brick_jungle").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":brick_jungle"); - brick_jungle_cracked = new BlockGeneric(Material.rock).setBlockName("brick_jungle_cracked").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_cracked"); - brick_jungle_fragile = new FragileBrick(Material.rock).setBlockName("brick_jungle_fragile").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_fragile"); - brick_jungle_lava = new BlockGeneric(Material.rock).setBlockName("brick_jungle_lava").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setLightLevel(5F/15F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_lava"); - brick_jungle_ooze = new BlockOre(Material.rock).setBlockName("brick_jungle_ooze").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setLightLevel(5F/15F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_ooze"); - brick_jungle_mystic = new BlockOre(Material.rock).setBlockName("brick_jungle_mystic").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setLightLevel(5F/15F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_mystic"); - brick_jungle_trap = new TrappedBrick(Material.rock).setBlockName("brick_jungle_trap").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_trap"); - brick_jungle_glyph = new BlockGlyph(Material.rock).setBlockName("brick_jungle_glyph").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F); - brick_jungle_circle = new BlockBallsSpawner(Material.rock).setBlockName("brick_jungle_circle").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_circle"); + brick_jungle = new BlockGeneric(Material.rock).setBlockName("brick_jungle").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":brick_jungle"); + brick_jungle_cracked = new BlockGeneric(Material.rock).setBlockName("brick_jungle_cracked").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_cracked"); + brick_jungle_fragile = new FragileBrick(Material.rock).setBlockName("brick_jungle_fragile").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_fragile"); + brick_jungle_lava = new BlockGeneric(Material.rock).setBlockName("brick_jungle_lava").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setLightLevel(5F/15F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_lava"); + brick_jungle_ooze = new BlockOre(Material.rock).setBlockName("brick_jungle_ooze").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setLightLevel(5F/15F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_ooze"); + brick_jungle_mystic = new BlockOre(Material.rock).setBlockName("brick_jungle_mystic").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setLightLevel(5F/15F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_mystic"); + brick_jungle_trap = new TrappedBrick(Material.rock).setBlockName("brick_jungle_trap").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_trap"); + brick_jungle_glyph = new BlockGlyph(Material.rock).setBlockName("brick_jungle_glyph").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F); + brick_jungle_circle = new BlockBallsSpawner(Material.rock).setBlockName("brick_jungle_circle").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_circle"); brick_dungeon = new BlockGeneric(Material.rock).setBlockName("brick_dungeon").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":brick_dungeon"); brick_dungeon_flat = new BlockGeneric(Material.rock).setBlockName("brick_dungeon_flat").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":brick_dungeon_flat"); @@ -1776,27 +1776,27 @@ public class ModBlocks { observer_off = new BlockObserver(Material.iron, false).setBlockName("observer_off").setStepSound(Block.soundTypeStone).setHardness(2.0F); observer_on = new BlockObserver(Material.iron, true).setBlockName("observer_on").setStepSound(Block.soundTypeStone).setHardness(2.0F); - nuke_gadget = new NukeGadget(Material.iron).setBlockName("nuke_gadget").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":theGadget"); - nuke_boy = new NukeBoy(Material.iron).setBlockName("nuke_boy").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":lilBoy"); - nuke_man = new NukeMan(Material.iron).setBlockName("nuke_man").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":fatMan"); - nuke_mike = new NukeMike(Material.iron).setBlockName("nuke_mike").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":ivyMike"); - nuke_tsar = new NukeTsar(Material.iron).setBlockName("nuke_tsar").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":tsarBomba"); - nuke_fleija = new NukeFleija(Material.iron).setBlockName("nuke_fleija").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":fleija"); - nuke_prototype = new NukePrototype(Material.iron).setBlockName("nuke_prototype").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":prototype"); - nuke_custom = new NukeCustom(Material.iron).setBlockName("nuke_custom").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":custom"); - nuke_solinium = new NukeSolinium(Material.iron).setBlockName("nuke_solinium").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":nuke_solinium"); - nuke_n2 = new NukeN2(Material.iron).setBlockName("nuke_n2").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":nuke_n2"); - nuke_n45 = new NukeN45(Material.iron).setBlockName("nuke_n45").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":code"); - nuke_fstbmb = new NukeBalefire(Material.iron).setBlockName("nuke_fstbmb").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":nuke_fstbmb"); + nuke_gadget = new NukeGadget(Material.iron).setBlockName("nuke_gadget").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":theGadget"); + nuke_boy = new NukeBoy(Material.iron).setBlockName("nuke_boy").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":lilBoy"); + nuke_man = new NukeMan(Material.iron).setBlockName("nuke_man").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":fatMan"); + nuke_mike = new NukeMike(Material.iron).setBlockName("nuke_mike").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":ivyMike"); + nuke_tsar = new NukeTsar(Material.iron).setBlockName("nuke_tsar").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":tsarBomba"); + nuke_fleija = new NukeFleija(Material.iron).setBlockName("nuke_fleija").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":fleija"); + nuke_prototype = new NukePrototype(Material.iron).setBlockName("nuke_prototype").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200).setBlockTextureName(RefStrings.MODID + ":prototype"); + nuke_custom = new NukeCustom(Material.iron).setBlockName("nuke_custom").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":custom"); + nuke_solinium = new NukeSolinium(Material.iron).setBlockName("nuke_solinium").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":nuke_solinium"); + nuke_n2 = new NukeN2(Material.iron).setBlockName("nuke_n2").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":nuke_n2"); + nuke_n45 = new NukeN45(Material.iron).setBlockName("nuke_n45").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":code"); + nuke_fstbmb = new NukeBalefire(Material.iron).setBlockName("nuke_fstbmb").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":nuke_fstbmb"); - bomb_multi = new BombMulti(Material.iron).setBlockName("bomb_multi").setCreativeTab(MainRegistry.nukeTab).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":bomb_multi1"); + bomb_multi = new BombMulti(Material.iron).setBlockName("bomb_multi").setCreativeTab(MainRegistry.nukeTab).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":bomb_multi1"); //bomb_multi_large = new BombMultiLarge(Material.iron).setBlockName("bomb_multi_large").setCreativeTab(MainRegistry.tabNuke).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":bomb_multi_large"); - flame_war = new BombFlameWar(Material.iron).setBlockName("flame_war").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":flame_war"); - float_bomb = new BombFloat(Material.iron).setBlockName("float_bomb").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F); - therm_endo = new BombThermo(Material.iron).setBlockName("therm_endo").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F); - therm_exo = new BombThermo(Material.iron).setBlockName("therm_exo").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F); - emp_bomb = new BombFloat(Material.iron).setBlockName("emp_bomb").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F); + flame_war = new BombFlameWar(Material.iron).setBlockName("flame_war").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":flame_war"); + float_bomb = new BombFloat(Material.iron).setBlockName("float_bomb").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F); + therm_endo = new BombThermo(Material.iron).setBlockName("therm_endo").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F); + therm_exo = new BombThermo(Material.iron).setBlockName("therm_exo").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F); + emp_bomb = new BombFloat(Material.iron).setBlockName("emp_bomb").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(200.0F); det_cord = new DetCord(Material.iron).setBlockName("det_cord").setCreativeTab(MainRegistry.nukeTab).setHardness(0.1F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":det_cord"); det_charge = new ExplosiveCharge(Material.iron).setBlockName("det_charge").setCreativeTab(MainRegistry.nukeTab).setHardness(0.1F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":det_charge"); det_nuke = new ExplosiveCharge(Material.iron).setBlockName("det_nuke").setCreativeTab(MainRegistry.nukeTab).setHardness(0.1F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":det_nuke"); From fb3f08acd5c3b8fe6098e40091ffdfa38f8293e7 Mon Sep 17 00:00:00 2001 From: Vaern Date: Tue, 22 Aug 2023 21:07:59 -0700 Subject: [PATCH 255/432] it took half an hour cuz gitkraken, the repo, and the av shat themselves what a modern wonder --- src/main/java/com/hbm/main/CraftingManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 9e478904b..18a1e1f49 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -387,7 +387,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.brick_light, 4), new Object[] { "FBF", "BFB", "FBF", 'F', Blocks.fence, 'B', Blocks.brick_block }); addRecipeAuto(new ItemStack(ModBlocks.brick_asbestos, 2), new Object[] { " A ", "ABA", " A ", 'B', ModBlocks.brick_light, 'A', ASBESTOS.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.concrete, 4), new Object[] { "CC", "CC", 'C', ModBlocks.concrete_smooth }); - addRecipeAuto(new ItemStack(ModBlocks.concrete_pillar, 8), new Object[] { "CBC", "CBC", "CBC", 'C', ModBlocks.concrete_smooth, 'B', Blocks.iron_bars }); + addRecipeAuto(new ItemStack(ModBlocks.concrete_pillar, 6), new Object[] { "CBC", "CBC", "CBC", 'C', ModBlocks.concrete_smooth, 'B', Blocks.iron_bars }); addRecipeAuto(new ItemStack(ModBlocks.brick_concrete, 4), new Object[] { " C ", "CBC", " C ", 'C', ModBlocks.concrete_smooth, 'B', Items.clay_ball }); addRecipeAuto(new ItemStack(ModBlocks.brick_concrete, 4), new Object[] { " C ", "CBC", " C ", 'C', ModBlocks.concrete, 'B', Items.clay_ball }); addRecipeAuto(new ItemStack(ModBlocks.brick_concrete_mossy, 8), new Object[] { "CCC", "CVC", "CCC", 'C', ModBlocks.brick_concrete, 'V', Blocks.vine }); From 5cc3d389060b230ec3e085c255cc613a714369a7 Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 23 Aug 2023 15:50:20 +0200 Subject: [PATCH 256/432] wabba dee --- changelog | 7 +++- src/main/java/com/hbm/blocks/ModBlocks.java | 36 +++++++++--------- .../hbm/blocks/machine/BlockGenericPWR.java | 22 +++++++++++ .../hbm/blocks/machine/BlockPillarPWR.java | 21 ++++++++++ .../blocks/machine/MachinePWRController.java | 9 ++++- .../hbm/entity/effect/EntityNukeTorex.java | 2 +- .../java/com/hbm/inventory/fluid/Fluids.java | 23 ++++++++++- .../inventory/fluid/trait/FT_Coolable.java | 1 + .../inventory/fluid/trait/FT_Heatable.java | 1 + .../inventory/recipes/CentrifugeRecipes.java | 6 +-- .../inventory/recipes/ChemplantRecipes.java | 7 ++++ .../inventory/recipes/CombinationRecipes.java | 1 + .../recipes/LiquefactionRecipes.java | 1 + .../hbm/inventory/recipes/MixerRecipes.java | 3 +- .../recipes/SolidificationRecipes.java | 1 + src/main/resources/assets/hbm/lang/de_DE.lang | 9 ++++- src/main/resources/assets/hbm/lang/en_US.lang | 26 +++++++++++++ .../assets/hbm/textures/gui/fluids/sodium.png | Bin 0 -> 703 bytes .../hbm/textures/gui/fluids/sodium_hot.png | Bin 0 -> 707 bytes .../hbm/textures/gui/fluids/throium_salt.png | Bin 0 -> 748 bytes .../gui/fluids/throium_salt_depleted.png | Bin 0 -> 695 bytes .../textures/gui/fluids/throium_salt_hot.png | Bin 0 -> 697 bytes .../textures/items/chem_icon_THORIUM_SALT.png | Bin 0 -> 394 bytes 23 files changed, 148 insertions(+), 28 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/machine/BlockGenericPWR.java create mode 100644 src/main/java/com/hbm/blocks/machine/BlockPillarPWR.java create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/sodium.png create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/sodium_hot.png create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/throium_salt.png create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/throium_salt_depleted.png create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/throium_salt_hot.png create mode 100644 src/main/resources/assets/hbm/textures/items/chem_icon_THORIUM_SALT.png diff --git a/changelog b/changelog index 404c55913..868f93cb8 100644 --- a/changelog +++ b/changelog @@ -5,8 +5,11 @@ * Relatively easy to build and safe to operate * Does not use any tile entity rendering and all math is pre-calculated when the reactor is assembled, making this one even more performant than the old large reactor * Sodalite - * A gem that can be extracted from fluorite ore - * Can be heated in the combination oven to make sodium dust and chlorine + * A gem that can be extracted from fluorite or lapis ore + * Can be heated in the combination oven to make sodium and chlorine +* Liquid sodium + * Valid PWR coolant with high efficiency rating + * Made by liquefacting sodium ## Changed * Bedrock fluorite ore now yields actual ore instead of fluorite directly diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 371268c24..0cf1da849 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -2047,14 +2047,14 @@ public class ModBlocks { cm_port = new BlockCMPort(Material.iron, EnumCMMaterials.class, true, true).setBlockName("cm_port").setCreativeTab(MainRegistry.machineTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":cm_port"); custom_machine = new BlockCustomMachine().setBlockName("custom_machine").setCreativeTab(MainRegistry.machineTab).setLightLevel(1F).setHardness(5.0F).setResistance(10.0F); - pwr_fuel = new BlockPillar(Material.iron, RefStrings.MODID + ":pwr_fuel_top").setBlockName("pwr_fuel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_fuel_side"); - pwr_control = new BlockPillar(Material.iron, RefStrings.MODID + ":pwr_control_top").setBlockName("pwr_control").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_control_side"); - pwr_channel = new BlockPillar(Material.iron, RefStrings.MODID + ":pwr_channel_top").setBlockName("pwr_channel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_channel_side"); - pwr_heatex = new BlockGeneric(Material.iron).setBlockName("pwr_heatex").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_heatex"); - pwr_neutron_source = new BlockGeneric(Material.iron).setBlockName("pwr_neutron_source").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_neutron_source"); - pwr_reflector = new BlockGeneric(Material.iron).setBlockName("pwr_reflector").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_reflector"); - pwr_casing = new BlockGeneric(Material.iron).setBlockName("pwr_casing").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_casing"); - pwr_port = new BlockGeneric(Material.iron).setBlockName("pwr_port").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_port"); + pwr_fuel = new BlockPillarPWR(Material.iron, RefStrings.MODID + ":pwr_fuel_top").setBlockName("pwr_fuel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_fuel_side"); + pwr_control = new BlockPillarPWR(Material.iron, RefStrings.MODID + ":pwr_control_top").setBlockName("pwr_control").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_control_side"); + pwr_channel = new BlockPillarPWR(Material.iron, RefStrings.MODID + ":pwr_channel_top").setBlockName("pwr_channel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_channel_side"); + pwr_heatex = new BlockGenericPWR(Material.iron).setBlockName("pwr_heatex").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_heatex"); + pwr_neutron_source = new BlockGenericPWR(Material.iron).setBlockName("pwr_neutron_source").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_neutron_source"); + pwr_reflector = new BlockGenericPWR(Material.iron).setBlockName("pwr_reflector").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_reflector"); + pwr_casing = new BlockGenericPWR(Material.iron).setBlockName("pwr_casing").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_casing"); + pwr_port = new BlockGenericPWR(Material.iron).setBlockName("pwr_port").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_port"); pwr_controller = new MachinePWRController(Material.iron).setBlockName("pwr_controller").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_casing_blank"); pwr_block = new BlockPWR(Material.iron).setBlockName("pwr_block").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_block"); @@ -3389,16 +3389,16 @@ public class ModBlocks { register(cm_port); //PWR - GameRegistry.registerBlock(pwr_fuel, pwr_fuel.getUnlocalizedName()); - GameRegistry.registerBlock(pwr_control, pwr_control.getUnlocalizedName()); - GameRegistry.registerBlock(pwr_channel, pwr_channel.getUnlocalizedName()); - GameRegistry.registerBlock(pwr_heatex, pwr_heatex.getUnlocalizedName()); - GameRegistry.registerBlock(pwr_neutron_source, pwr_neutron_source.getUnlocalizedName()); - GameRegistry.registerBlock(pwr_reflector, pwr_reflector.getUnlocalizedName()); - GameRegistry.registerBlock(pwr_casing, pwr_casing.getUnlocalizedName()); - GameRegistry.registerBlock(pwr_port, pwr_port.getUnlocalizedName()); - GameRegistry.registerBlock(pwr_controller, pwr_controller.getUnlocalizedName()); - GameRegistry.registerBlock(pwr_block, pwr_block.getUnlocalizedName()); + register(pwr_fuel); + register(pwr_control); + register(pwr_channel); + register(pwr_heatex); + register(pwr_neutron_source); + register(pwr_reflector); + register(pwr_casing); + register(pwr_port); + register(pwr_controller); + register(pwr_block); //Multiblock Generators GameRegistry.registerBlock(reactor_element, reactor_element.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/machine/BlockGenericPWR.java b/src/main/java/com/hbm/blocks/machine/BlockGenericPWR.java new file mode 100644 index 000000000..d94d06697 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/BlockGenericPWR.java @@ -0,0 +1,22 @@ +package com.hbm.blocks.machine; + +import java.util.List; + +import com.hbm.blocks.ITooltipProvider; +import com.hbm.blocks.generic.BlockGeneric; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; + +public class BlockGenericPWR extends BlockGeneric implements ITooltipProvider { + + public BlockGenericPWR(Material material) { + super(material); + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/BlockPillarPWR.java b/src/main/java/com/hbm/blocks/machine/BlockPillarPWR.java new file mode 100644 index 000000000..691578a45 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/BlockPillarPWR.java @@ -0,0 +1,21 @@ +package com.hbm.blocks.machine; + +import java.util.List; + +import com.hbm.blocks.ITooltipProvider; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; + +public class BlockPillarPWR extends BlockPillar implements ITooltipProvider { + + public BlockPillarPWR(Material mat, String top) { + super(mat, top); + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachinePWRController.java b/src/main/java/com/hbm/blocks/machine/MachinePWRController.java index 045822100..1f2580451 100644 --- a/src/main/java/com/hbm/blocks/machine/MachinePWRController.java +++ b/src/main/java/com/hbm/blocks/machine/MachinePWRController.java @@ -1,8 +1,10 @@ package com.hbm.blocks.machine; import java.util.HashMap; +import java.util.List; import java.util.Map.Entry; +import com.hbm.blocks.ITooltipProvider; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.machine.BlockPWR.TileEntityBlockPWR; import com.hbm.lib.RefStrings; @@ -30,7 +32,7 @@ import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class MachinePWRController extends BlockContainer { +public class MachinePWRController extends BlockContainer implements ITooltipProvider { @SideOnly(Side.CLIENT) private IIcon iconFront; @@ -198,4 +200,9 @@ public class MachinePWRController extends BlockContainer { if(block == ModBlocks.pwr_casing || block == ModBlocks.pwr_reflector || block == ModBlocks.pwr_port) return true; return false; } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } } diff --git a/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java b/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java index 8e0ef45f1..71ed35d93 100644 --- a/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java +++ b/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java @@ -84,7 +84,7 @@ public class EntityNukeTorex extends Entity { if(ticksExisted < 50) { int cloudCount = ticksExisted * 5; - int shockLife = 200 - ticksExisted * 9 / 10; + int shockLife = Math.max(300 - ticksExisted * 20, 50); for(int i = 0; i < cloudCount; i++) { Vec3 vec = Vec3.createVectorHelper((ticksExisted * 2 + rand.nextDouble()) * 2, 0, 0); diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index 2ad14ed42..db2c231f5 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -157,6 +157,11 @@ public class Fluids { public static FluidType SMOKE_POISON; public static FluidType HELIUM4; public static FluidType HEAVYWATER_HOT; + public static FluidType SODIUM; + public static FluidType SODIUM_HOT; + public static FluidType THORIUM_SALT; + public static FluidType THORIUM_SALT_HOT; + public static FluidType THORIUM_SALT_DEPLETED; private static final HashMap idMapping = new HashMap(); private static final HashMap nameMapping = new HashMap(); @@ -313,7 +318,12 @@ public class Fluids { SMOKE_LEADED = new FluidType("SMOKE_LEADED", 0x808080, 0, 0, 0, EnumSymbol.NONE).addTraits(GASEOUS, NOID, NOCON); SMOKE_POISON = new FluidType("SMOKE_POISON", 0x808080, 0, 0, 0, EnumSymbol.NONE).addTraits(GASEOUS, NOID, NOCON); HELIUM4 = new FluidType("HELIUM4", 0xE54B0A, 0, 0, 0, EnumSymbol.ASPHYXIANT).addTraits(GASEOUS); - HEAVYWATER_HOT = new FluidType(124, "HEAVYWATER_HOT",0x4D007B, 1, 0, 0, EnumSymbol.NONE).setTemp(600).addTraits(LIQUID); + HEAVYWATER_HOT = new FluidType("HEAVYWATER_HOT", 0x4D007B, 1, 0, 0, EnumSymbol.NONE).setTemp(600).addTraits(LIQUID); + SODIUM = new FluidType("SODIUM", 0xCCD4D5, 1, 2, 3, EnumSymbol.NONE).setTemp(400).addTraits(LIQUID); + SODIUM_HOT = new FluidType("SODIUM_HOT", 0xE2ADC1, 1, 2, 3, EnumSymbol.NONE).setTemp(1200).addTraits(LIQUID); + THORIUM_SALT = new FluidType("THORIUM_SALT", 0x7A5542, 2, 0, 3, EnumSymbol.NONE).setTemp(800).addTraits(LIQUID); + THORIUM_SALT_HOT = new FluidType("THORIUM_SALT_HOT", 0x3E3627, 2, 0, 3, EnumSymbol.NONE).setTemp(1600).addTraits(LIQUID); + THORIUM_SALT_DEPLETED = new FluidType(129, "THORIUM_SALT_DEPLETED", 0x302D1C, 2, 0, 3, EnumSymbol.NONE).setTemp(800).addTraits(LIQUID); // ^ ^ ^ ^ ^ ^ ^ ^ //ADD NEW FLUIDS HERE @@ -342,6 +352,11 @@ public class Fluids { metaOrder.add(MUG_HOT); metaOrder.add(BLOOD); metaOrder.add(BLOOD_HOT); + metaOrder.add(SODIUM); + metaOrder.add(SODIUM_HOT); + metaOrder.add(THORIUM_SALT); + metaOrder.add(THORIUM_SALT_HOT); + metaOrder.add(THORIUM_SALT_DEPLETED); //pure elements, cyogenic gasses metaOrder.add(HYDROGEN); metaOrder.add(DEUTERIUM); @@ -505,6 +520,12 @@ public class Fluids { HEAVYWATER.addTraits(new FT_Heatable().setEff(HeatingType.PWR, 1.0D).addStep(300, 1, HEAVYWATER_HOT, 1), new FT_PWRModerator(1.25D)); HEAVYWATER_HOT.addTraits(new FT_Coolable(HEAVYWATER, 1, 1, 300).setEff(CoolingType.HEATEXCHANGER, 1.0D)); + SODIUM.addTraits(new FT_Heatable().setEff(HeatingType.PWR, 2.5D).addStep(400, 1, SODIUM_HOT, 1)); + SODIUM_HOT.addTraits(new FT_Coolable(SODIUM, 1, 1, 400).setEff(CoolingType.HEATEXCHANGER, 1.0D)); + + THORIUM_SALT.addTraits(new FT_Heatable().setEff(HeatingType.PWR, 1.0D).addStep(400, 1, THORIUM_SALT_HOT, 1), new FT_PWRModerator(2.5D)); + THORIUM_SALT_HOT.addTraits(new FT_Coolable(THORIUM_SALT_DEPLETED, 1, 1, 400).setEff(CoolingType.HEATEXCHANGER, 1.0D)); + if(idMapping.size() != metaOrder.size()) { throw new IllegalStateException("A severe error has occoured during NTM's fluid registering process! The MetaOrder and Mappings are inconsistent! Mapping size: " + idMapping.size()+ " / MetaOrder size: " + metaOrder.size()); } diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Coolable.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Coolable.java index f25e77c35..0f0404916 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Coolable.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Coolable.java @@ -42,6 +42,7 @@ public class FT_Coolable extends FluidTrait { @Override public void addInfoHidden(List info) { + info.add(EnumChatFormatting.AQUA + "Thermal capacity: " + heatEnergy + " TU"); for(CoolingType type : CoolingType.values()) { double eff = getEfficiency(type); diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Heatable.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Heatable.java index a10192c29..989915a46 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Heatable.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Heatable.java @@ -42,6 +42,7 @@ public class FT_Heatable extends FluidTrait { @Override public void addInfoHidden(List info) { + info.add(EnumChatFormatting.AQUA + "Thermal capacity: " + this.getFirstStep().heatReq + " TU"); for(HeatingType type : HeatingType.values()) { double eff = getEfficiency(type); diff --git a/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java b/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java index 1f1aa97ea..4f2bfe922 100644 --- a/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java @@ -339,9 +339,9 @@ public class CentrifugeRecipes extends SerializableRecipe { new ItemStack(Blocks.end_stone, 1) }); recipes.put(new OreDictStack(LAPIS.ore()), new ItemStack[] { - new ItemStack(ModItems.powder_lapis, 3), - new ItemStack(ModItems.powder_lapis, 3), + new ItemStack(ModItems.powder_lapis, 6), new ItemStack(ModItems.powder_cobalt_tiny, 1), + new ItemStack(ModItems.gem_sodalite, 1), new ItemStack(Blocks.gravel, 1) }); recipes.put(new ComparableStack(ModBlocks.ore_meteor_starmetal), new ItemStack[] { @@ -452,7 +452,7 @@ public class CentrifugeRecipes extends SerializableRecipe { recipes.put(new ComparableStack(ModItems.crystal_iron), new ItemStack[] { new ItemStack(ModItems.powder_iron, 2), new ItemStack(ModItems.powder_iron, 2), new ItemStack(ModItems.powder_titanium, 1), new ItemStack(ModItems.powder_lithium_tiny, 1) }); recipes.put(new ComparableStack(ModItems.crystal_gold), new ItemStack[] { new ItemStack(ModItems.powder_gold, 2), new ItemStack(ModItems.powder_gold, 2), new ItemStack(ModItems.ingot_mercury, 1), new ItemStack(ModItems.powder_lithium_tiny, 1) }); recipes.put(new ComparableStack(ModItems.crystal_redstone), new ItemStack[] { new ItemStack(Items.redstone, 3), new ItemStack(Items.redstone, 3), new ItemStack(Items.redstone, 3), new ItemStack(ModItems.ingot_mercury, 3) }); - recipes.put(new ComparableStack(ModItems.crystal_lapis), new ItemStack[] { new ItemStack(ModItems.powder_lapis, 3), new ItemStack(ModItems.powder_lapis, 3), new ItemStack(ModItems.powder_lapis, 3), new ItemStack(ModItems.powder_cobalt, 1) }); + recipes.put(new ComparableStack(ModItems.crystal_lapis), new ItemStack[] { new ItemStack(ModItems.powder_lapis, 4), new ItemStack(ModItems.powder_lapis, 4), new ItemStack(ModItems.powder_cobalt, 1), new ItemStack(ModItems.gem_sodalite, 1) }); recipes.put(new ComparableStack(ModItems.crystal_diamond), new ItemStack[] { new ItemStack(ModItems.powder_diamond, 1), new ItemStack(ModItems.powder_diamond, 1), new ItemStack(ModItems.powder_diamond, 1), new ItemStack(ModItems.powder_diamond, 1) }); recipes.put(new ComparableStack(ModItems.crystal_uranium), new ItemStack[] { new ItemStack(ModItems.powder_uranium, 2), new ItemStack(ModItems.powder_uranium, 2), new ItemStack(ModItems.nugget_ra226, 2), new ItemStack(ModItems.powder_lithium_tiny, 1) }); recipes.put(new ComparableStack(ModItems.crystal_thorium), new ItemStack[] { new ItemStack(ModItems.powder_thorium, 2), new ItemStack(ModItems.powder_thorium, 2), new ItemStack(ModItems.powder_uranium, 1), new ItemStack(ModItems.nugget_ra226, 1) }); diff --git a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java index a8a582fe6..c83df558c 100644 --- a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java @@ -401,6 +401,13 @@ public class ChemplantRecipes extends SerializableRecipe { recipes.add(new ChemRecipe(101, "CC_CENTRIFUGE", 200) .inputFluids(new FluidStack(Fluids.CHLOROCALCITE_CLEANED, 500), new FluidStack(Fluids.SULFURIC_ACID, 8_000)) .outputFluids(new FluidStack(Fluids.POTASSIUM_CHLORIDE, 250), new FluidStack(Fluids.CALCIUM_CHLORIDE, 250))); + recipes.add(new ChemRecipe(102, "THORIUM_SALT", 60) + .inputFluids(new FluidStack(Fluids.THORIUM_SALT_DEPLETED, 8_000)) + .inputItems(new OreDictStack(TH232.dust(), 1)) + .outputFluids(new FluidStack(Fluids.THORIUM_SALT, 8_000)) + .outputItems( + new ItemStack(ModItems.nugget_u233, 4, 10), + new ItemStack(ModItems.nuclear_waste_tiny, 5, 10))); } public static void registerFuelProcessing() { diff --git a/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java b/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java index efcd14b13..517229247 100644 --- a/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java @@ -48,6 +48,7 @@ public class CombinationRecipes extends SerializableRecipe { recipes.put(new ComparableStack(Items.glowstone_dust), new Pair(new ItemStack(ModItems.sulfur), new FluidStack(Fluids.CHLORINE, 100))); recipes.put(SODALITE.gem(), new Pair(new ItemStack(ModItems.powder_sodium), new FluidStack(Fluids.CHLORINE, 100))); recipes.put(new ComparableStack(DictFrame.fromOne(ModBlocks.stone_resource, EnumStoneType.BAUXITE)), new Pair(new ItemStack(ModItems.ingot_aluminium, 2), new FluidStack(Fluids.REDMUD, 250))); + recipes.put(NA.dust(), new Pair(null, new FluidStack(Fluids.SODIUM, 100))); recipes.put(KEY_LOG, new Pair(new ItemStack(Items.coal, 1 ,1), new FluidStack(Fluids.WOODOIL, 250))); recipes.put(KEY_SAPLING, new Pair(DictFrame.fromOne(ModItems.powder_ash, EnumAshType.WOOD), new FluidStack(Fluids.WOODOIL, 50))); diff --git a/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java b/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java index a35f15425..ee093f541 100644 --- a/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java @@ -42,6 +42,7 @@ public class LiquefactionRecipes extends SerializableRecipe { recipes.put(KEY_COAL_TAR, new FluidStack(50, Fluids.BITUMEN)); recipes.put(KEY_LOG, new FluidStack(100, Fluids.MUG)); recipes.put(KNO.dust(), new FluidStack(250, Fluids.NITRIC_ACID)); + recipes.put(NA.dust(), new FluidStack(100, Fluids.SODIUM)); //general utility recipes because why not recipes.put(new ComparableStack(Blocks.netherrack), new FluidStack(250, Fluids.LAVA)); recipes.put(new ComparableStack(Blocks.cobblestone), new FluidStack(250, Fluids.LAVA)); diff --git a/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java b/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java index d47d2289c..dece889df 100644 --- a/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java @@ -65,6 +65,8 @@ public class MixerRecipes extends SerializableRecipe { register(Fluids.NITROGLYCERIN, new MixerRecipe(1000, 20).setStack1(new FluidStack(Fluids.PETROLEUM, 1_000)).setStack2(new FluidStack(Fluids.NITRIC_ACID, 1_000)), new MixerRecipe(1000, 20).setStack1(new FluidStack(Fluids.FISHOIL, 500)).setStack2(new FluidStack(Fluids.NITRIC_ACID, 500))); + + register(Fluids.THORIUM_SALT, new MixerRecipe(1_000, 30).setStack1(new FluidStack(Fluids.CHLORINE, 1000)).setSolid(new OreDictStack(TH232.dust()))); register(Fluids.SYNGAS, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.COALOIL, 500)).setStack2(new FluidStack(Fluids.STEAM, 500))); register(Fluids.OXYHYDROGEN, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.HYDROGEN, 500)).setStack2(new FluidStack(Fluids.OXYGEN, 500))); @@ -77,7 +79,6 @@ public class MixerRecipes extends SerializableRecipe { register(Fluids.DIESEL_CRACK_REFORM, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.DIESEL_CRACK, 900)).setStack2(new FluidStack(Fluids.REFORMATE, 100))); register(Fluids.KEROSENE_REFORM, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.KEROSENE, 900)).setStack2(new FluidStack(Fluids.REFORMATE, 100))); - register(Fluids.CHLOROCALCITE_SOLUTION, new MixerRecipe(500, 50).setStack1(new FluidStack(Fluids.WATER, 250)).setStack2(new FluidStack(Fluids.NITRIC_ACID, 250)).setSolid(new OreDictStack(CHLOROCALCITE.dust()))); register(Fluids.CHLOROCALCITE_MIX, new MixerRecipe(1000, 50).setStack1(new FluidStack(Fluids.CHLOROCALCITE_SOLUTION, 500)).setStack2(new FluidStack(Fluids.SULFURIC_ACID, 500)).setSolid(new ComparableStack(ModItems.powder_flux))); } diff --git a/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java b/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java index 2612ba3c3..cba463d6f 100644 --- a/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java @@ -68,6 +68,7 @@ public class SolidificationRecipes extends SerializableRecipe { registerRecipe(ENDERJUICE, 100, Items.ender_pearl); registerRecipe(WATZ, 1000, ModItems.ingot_mud); registerRecipe(REDMUD, 1000, Items.iron_ingot); + registerRecipe(SODIUM, 100, ModItems.powder_sodium); registerRecipe(OIL, SF_OIL, DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRUDE)); registerRecipe(CRACKOIL, SF_CRACK, DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRACK)); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index a1fef17c3..de6d9f1ea 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -720,6 +720,8 @@ hbmfluid.smear=Industrieöl hbmfluid.smoke=Abgas hbmfluid.smoke_leaded=Bleiabgas hbmfluid.smoke_poison=Giftige Abgase +hbmfluid.sodium=Flüssiges Natrium +hbmfluid.sodium_hot=Heißes flüssiges Natrium hbmfluid.solvent=Lösungsmittel hbmfluid.sourgas=Saures Gas hbmfluid.spentsteam=Niedrigdruckdampf @@ -728,6 +730,9 @@ hbmfluid.sulfuric_acid=Schwefelsäure hbmfluid.sunfloweroil=Sonnenblumenkernöl hbmfluid.superhotsteam=Superverdichteter Dampf hbmfluid.syngas=Synthesegas +hbmfluid.thorium_salt=Flüssiges Thoriumsalz +hbmfluid.thorium_salt_depleted=Erschöpftes flüssiges Thoriumsalz +hbmfluid.thorium_salt_hot=Heißes flüssiges Thoriumsalz hbmfluid.tritium=Tritium hbmfluid.uf6=Uranhexafluorid hbmfluid.ultrahotsteam=Ultraverdichteter Dampf @@ -1448,7 +1453,7 @@ item.circuit_bismuth_raw.name=Bismuth-Schaltkreisrohling item.circuit_copper.name=Erweiterter Schaltkreis item.circuit_gold.name=Übertakteter Schaltkreis item.circuit_raw.name=Schaltkreisrohling -item.circuit_red_copper.name=Forgeschrittener Schaltkreis +item.circuit_red_copper.name=Fortgeschrittener Schaltkreis item.circuit_schrabidium.name=Leistungsstarker Schaltkreis item.circuit_star.name=StarControl Schalttafel item.circuit_star_component.chipset.name=StarControl Chipset @@ -1815,6 +1820,7 @@ item.gear_large.name=Großes Zahnrad item.gear_large_steel.name=Großes Stahlzahnrad item.geiger_counter.name=Mobiler Geigerzähler item.gem_alexandrite.name=Alexandrit +item.gem_sodalite.name=Sodalith item.gem_tantalium.name=Tantal-Polykristall item.gem_volcanic.name=Vulkanischer Edelstein item.generator_front.name=Generatorfront @@ -2759,6 +2765,7 @@ item.powder_sawdust.name=Sägespäne item.powder_schrabidate.name=Eisenschrabidatstaub item.powder_schrabidium.name=Schrabidiumstaub item.powder_semtex_mix.name=Semtexmischung +item.powder_sodium.name=Natrium item.powder_spark_mix.name=Sparkmischung item.powder_steel.name=Stahlstaub item.powder_steel_tiny.name=Kleiner Haufen Stahlstaub diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 5aae8fd7b..0af7fe0da 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1362,6 +1362,8 @@ hbmfluid.smear=Industrial Oil hbmfluid.smoke=Smoke hbmfluid.smoke_leaded=Leaded Smoke hbmfluid.smoke_poison=Poison Smoke +hbmfluid.sodium=Liquid Sodium +hbmfluid.sodium_hot=Hot Liquid Sodium hbmfluid.solvent=Solvent hbmfluid.sourgas=Sour Gas hbmfluid.spentsteam=Low-Pressure Steam @@ -1370,6 +1372,9 @@ hbmfluid.sulfuric_acid=Sulfuric Acid hbmfluid.sunfloweroil=Sunflower Seed Oil hbmfluid.superhotsteam=Super Dense Steam hbmfluid.syngas=Syngas +hbmfluid.thorium_salt=Liquid Thorium Salt +hbmfluid.thorium_salt_depleted=Depleted Liquid Thorium Salt +hbmfluid.thorium_salt_hot=Hot Liquid Thorium Salt hbmfluid.tritium=Tritium hbmfluid.uf6=Uranium Hexafluoride hbmfluid.ultrahotsteam=Ultra Dense Steam @@ -2527,6 +2532,7 @@ item.gear_large.name=Large Gear item.gear_large_steel.name=Large Steel Gear item.geiger_counter.name=Handheld Geiger Counter item.gem_alexandrite.name=Alexandrite +item.gem_sodalite.name=Sodalite item.gem_tantalium.name=Tantalium Polycrystal item.gem_tantalium.desc='Tantalum' item.gem_tantalium.desc.P11=AKA Tantalum. @@ -3570,6 +3576,7 @@ item.powder_sawdust.name=Sawdust item.powder_schrabidate.name=Ferric Schrabidate Powder item.powder_schrabidium.name=Schrabidium Powder item.powder_semtex_mix.name=Semtex Blend +item.powder_sodium.name=Sodium item.powder_spark_mix.name=Spark Blend item.powder_sr90.name=Strontium-90 Powder item.powder_sr90_tiny.name=Tiny Pile of Strontium-90 Powder @@ -4663,6 +4670,25 @@ tile.deco_computer.ibm_300pl.name=IBM Personal Computer 300PL tile.deco_emitter.name=Deco Light Emitter tile.part_emitter.name=Deco Particle Emitter tile.piston_inserter.name=Inserter +tile.pwr_block.name=PWR +tile.pwr_casing.name=PWR Pressure Vessel +tile.pwr_casing.desc=Needs to cover all internal parts for the reactor to form$Placement: Casing +tile.pwr_channel.name=PWR Coolant Channel +tile.pwr_channel.desc=Uses hull heat to heat up coolant$Placement: Any +tile.pwr_control.name=PWR Control Rod +tile.pwr_control.desc=Allows connected fuel rods to be controlled$Placement: Grid, between control rods +tile.pwr_controller.name=PWR Controller +tile.pwr_controller.desc=Access terminal for the PWR$Placement: Casing, only one per reactor$Right-click to assemble the reactor +tile.pwr_fuel.name=PWR Fuel Rod +tile.pwr_fuel.desc=Increases PWR fuel capacity$Placement: Grid, for increased reactivity +tile.pwr_heatex.name=PWR Heat Exchanger +tile.pwr_heatex.desc=Moves core heat to the hull$Placement: Any +tile.pwr_neutron_source.name=PWR Neutron Source +tile.pwr_neutron_source.desc=Adds 20 flux to the core$Placement: Any$Flux only reaches fuel rods if connections are open +tile.pwr_port.name=PWR Access Port +tile.pwr_port.desc=Allows item and fluid IO$Placement: Casing +tile.pwr_reflector.name=PWR Neutron Reflector +tile.pwr_reflector.desc=Reflects neutrons back to fuel rods$Placement: Grid, for increased reactivity$Valid casing material tile.deco_lead.name=Lead Deco Block tile.deco_rbmk.name=RBMK Deco Block tile.deco_rbmk_smooth.name=Smooth RBMK Deco Block diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/sodium.png b/src/main/resources/assets/hbm/textures/gui/fluids/sodium.png new file mode 100644 index 0000000000000000000000000000000000000000..35a104eb6f839fc35cedc6c51a5535912f9ea4ef GIT binary patch literal 703 zcmV;w0zmzVP)ffvc-40EAKs zAq2)4@;t})ecHAKKq*DnbpQlGz-F^SYt8lbHNNi?h9RQwd#ttOd5+ea?RHBThJ;~= zloF-Xq^_=O*6TF@ec$7p!>g)lQV;|ILI~d9-^sF!rfCpD;CUVZP18*Fq9_8u6GEVr zqVIcNUtc*nIpOm1lCmuMwdeajLI?nS-)FzyqqU~0DnybbXst<-WO@ev*ofnpwrx>L zVXY;KB7EORYmE>>Fbo4qDK?u8&N-x%G);rGmh8jQh@$8xBV!D2Z*MeBL)*5DN9OZ6VHl#d24J;X;T1)JloD$#i^T$KE#o*6h9N~!FrUw<>zbRJ8}|D>hr

    ^KPx~L%3RhC9=N$Pc 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 S(o>TF0000 Date: Mon, 7 Aug 2023 18:24:57 +0200 Subject: [PATCH 226/432] Update pl_PL.lang before starting to translate this i thought to myself, "how hard can this be"? turns out, im handing over an assignment that is 30% done stopped at line 1542, im too tired man, someone finish this because i certainly wont. ive been doing this since march "At least 99% of what is left to translate are blocks and items, so it shouldnt be that hard" - statements dreamed up by the utterly Deranged also please check if the oil names are correct theyre quite confusing :) --- src/main/resources/assets/hbm/lang/pl_PL.lang | 2911 +++++++++-------- 1 file changed, 1491 insertions(+), 1420 deletions(-) diff --git a/src/main/resources/assets/hbm/lang/pl_PL.lang b/src/main/resources/assets/hbm/lang/pl_PL.lang index 438a7d5bd..0fd01861e 100644 --- a/src/main/resources/assets/hbm/lang/pl_PL.lang +++ b/src/main/resources/assets/hbm/lang/pl_PL.lang @@ -1,1050 +1,1075 @@ -achievement.acidizer.desc=oof ow my skin -achievement.acidizer=Acidic -achievement.assembly.desc=Wait, it's already 1 am? -achievement.assembly=The Factory Grows -achievement.FOEQ.desc=Send a relay into martian...I mean dunaian orbit. -achievement.FOEQ=Pegasi and Missile Silos -achievement.breeding.desc=Thank you, god bless you, and god bless the United States of America. -achievement.breeding=Ironic -achievement.bismuth.desc=Remember when people complained about this for a month? I do. -achievement.bismuth=Bismuth -achievement.blastFurnace.desc=They salvaged a sunken dreadnought for Explorer 1. -achievement.blastFurnace=Coal and Iron -achievement.bossCreeper.desc='There is nuclear creepers? Those are a thing?!' -achievement.bossCreeper=Bomb On Four Legs -achievement.bossMaskman.desc=Bonk the big boy. -achievement.bossMaskman=6 Months of mandatory service and all I got was a lousy t-shirt -achievement.bossMeltdown.desc=More terrible than great, but I take what I can get. -achievement.bossMeltdown=3.6 Roentgen -achievement.bossWorm.desc=The Fabstaff. My ass. You do the math. -achievement.bossWorm=Disassembling Balls-O-Tron -achievement.bossUFO.desc=Yo, what do we have here? A huge spacecraft pulling up to the blockship? +achievement.acidizer.desc=ała moja skóra ;( +achievement.acidizer=Kwaśno +achievement.assembly.desc=Czekaj, to już 1:00? +achievement.assembly=Fabryka się rozrasta +achievement.FOEQ.desc=Wyślij przekaźnik na marsjańską... Mam na myśli dunajską orbitę. +achievement.FOEQ=Pegazy i silosy rakietowe +achievement.breeding.desc=Dziękuję, niech Bóg cię błogosławi, i niech Bóg błogosławi Stany Zjednoczone. Albo i Polskę. W oryginalnym tłumaczeniu były Stany Zjednoczone, ale patriotyzm mówi mi, żeby pobłogosławił Polskę. +achievement.breeding=Ironiczne. +achievement.bismuth.desc=Pamiętasz, kiedy ludzie narzekali na to przez miesiąc? Ja pamiętam. +achievement.bismuth=Bizmut +achievement.blastFurnace.desc=Uratowali zatopiony pancernik dla Explorer 1. +achievement.blastFurnace=Węgiel i żelazo +achievement.bossCreeper.desc='Są atomowe creepery? Takie istnieją?!' +achievement.bossCreeper=Bomba na czterech nogach +achievement.bossMaskman.desc=Walnij dużego chłopa. +achievement.bossMaskman=6 miesięcy obowiązkowej służby i dostałem tylko marną koszulkę +achievement.bossMeltdown.desc=Bardziej okropne niż wspaniałe, ale biorę, co mogę. +achievement.bossMeltdown=3.6 Rentgenów +achievement.bossWorm.desc=Fabstaff. Moje dupsko. Wykonaj działanie. +achievement.bossWorm=Demontaż Jądro-Trona +achievement.bossUFO.desc=Joł, co my tu mamy? Ogromny statek kosmiczny zbliżający się do statku blokowego? achievement.bossUFO=Ayy Lmao -achievement.burnerPress.desc=Pressure pushing down on me, on you -achievement.burnerPress=Under Pressure +achievement.burnerPress.desc='Pressure pushing down on me, on you' +achievement.burnerPress=Pod ciśnieniem achievement.c20_5.desc=??? -achievement.c20_5=Chapter [TWENTY POINT FIVE] -achievement.c44.desc=Galvanized! I mean, zinc! -achievement.c44=Chapter 44 -achievement.centrifuge.desc=centrifugal force is real don't @ me -achievement.centrifuge=Centrifugal Force -achievement.chemplant.desc=Now you're thinking with chemicals! -achievement.chemplant=The Factory Grows Pt. 2 -achievement.chicagoPile.desc="How were the natives?" / "Very friendly." -achievement.chicagoPile=The navigator landed in the New World -achievement.concrete.desc=A Bolshevik's favorite. -achievement.concrete=Old Reliable -achievement.desh.desc="Come on then, you lot. Places to go!" +achievement.c20_5=Rozdział [DWADZIEŚCIA KOMA PIĘĆ] +achievement.c44.desc=Ocynkowany! Znaczy, cynk! +achievement.c44=Rozdział 44 +achievement.centrifuge.desc=siła odśrodkowa jest prawdziwa nie @ mnie +achievement.centrifuge=Siła odśrodkowa +achievement.chemplant.desc=Teraz myślisz chemikaliami! +achievement.chemplant=Fabryka się rozrasta: część 2 +achievement.chicagoPile.desc="Jak zachowywali się tubylcy?" / "Bardzo przyjaźnie." +achievement.chicagoPile=Nawigator wylądował w Nowym Świecie +achievement.concrete.desc=Faworyt Bolszewika. +achievement.concrete=Stary niezawodny +achievement.desh.desc="No, dalej. Dużo miejsc do odwiedzenia!" achievement.desh=Le Verrier -achievement.digammaFeel.desc=My eyes are bleeding -achievement.digammaFeel=SEWAGE-INFUSED GARBAGE WORLD -achievement.digammaKauaiMoho.desc=Everything is awful, here's some hot choccy. -achievement.digammaKauaiMoho=SING, SING ME THE SONG OF THE KAUAI MOHO -achievement.digammaKnow.desc=what this world is about. -achievement.digammaKnow=THE TERROR OF KNOWING -achievement.digammaSee.desc=It's a bit dark, bring a flashlight. -achievement.digammaSee=ENTER THE ABYSS -achievement.digammaUpOnTop.desc=Admire my son, he's my clone. -achievement.digammaUpOnTop=ADMIRE ME, ADMIRE MY HOME -achievement.fiend.desc=Be mean. -achievement.fiend2.desc=Be meaner. -achievement.fiend2=Delinquent 2: Delinquent Harder -achievement.fiend=Delinquent -achievement.freytag.desc=Herold's life guards -achievement.freytag=Freytag -achievement.fusion.desc=A dance of deuterons, tritons, and energy. -achievement.fusion=Fusion -achievement.gasCent.desc=Unenriched Uranium hates him! -achievement.gasCent=The Zippe Style -achievement.goFish.desc=Nautical Crucifixion -achievement.goFish=Go Fish -achievement.hidden.desc=Kill a tainted creeper with a falling boxcar. -achievement.hidden=Hidden Catalog -achievement.horizonsBonus.desc=honest to god what the hell is wrong with you -achievement.horizonsBonus=Slam Dunk Diarrhea -achievement.horizonsEnd.desc=Send Tom home. -achievement.horizonsEnd=The Horizons -achievement.horizonsStart.desc=Send a lad to the moon. -achievement.horizonsStart=Apogee -achievement.impossible.desc=You can't get this achievement. -achievement.impossible=Literally impossible -achievement.inferno.desc="Turn it to ashes! That's not enough! Drop more bombs!" -achievement.inferno=Operation Cannibal -achievement.manhattan.desc=8:15; August 6th, 1945 -achievement.manhattan=The Manhattan Project -achievement.meltdown.desc=You got this far, how could you mess this up? -achievement.meltdown=Rapid Unscheduled Disassembly -achievement.no9.desc="I hope the lead I'm mining will be used in your paint" -achievement.no9=Old Number Nine -achievement.omega12.desc=Solve the problem of continued life on this wretched planet. -achievement.omega12=Omega-12 Particle Accelerator -achievement.polymer.desc=Delicious, delicious microplastics. +achievement.digammaFeel.desc=wewnętrznej pustki. +achievement.digammaFeel=Terror odczuwania +achievement.digammaKauaiMoho.desc=Wszystko jest okropne, trzymaj gorącą czekoladę. +achievement.digammaKauaiMoho=Zaśpiewaj, zaśpiewaj mi pieśń Kauai Moho +achievement.digammaKnow.desc=o czym jest ten świat. +achievement.digammaKnow=Terror wiedzy +achievement.digammaSee.desc=prosto w otchłań. +achievement.digammaSee=Terror widzenia +achievement.digammaUpOnTop.desc=Podziwiaj mojego syna, to mój klon. +achievement.digammaUpOnTop=Podziwiaj mnie, podziwiaj mój dom +achievement.fiend.desc=Bądź wredny. +achievement.fiend2.desc=Bądź wredniejszy. +achievement.fiend2=Przestępca 2: Przestępować Jeszcze Bardziej +achievement.fiend=Przestępca +achievement.freytag.desc=Ratownicy Herolda +achievement.freytag=Piątek +achievement.fusion.desc=Taniec deuteru, trytonu i energii. +achievement.fusion=Fuzja +achievement.gasCent.desc=Niewzbogacony uran go nienawidzi! +achievement.gasCent=Styl Zippe +achievement.hidden.desc=Zabij skażonego creepera spadającym wagonem towarowym. +achievement.hidden=Ukryty Katalog +achievement.horizonsBonus.desc=szczerze mówiąc, co do diabła jest z tobą nie tak +achievement.horizonsBonus=Wsad Biegunki +achievement.horizonsEnd.desc=Wyślij Tomasza do domu. +achievement.horizonsEnd=Horyzonty +achievement.horizonsStart.desc=Wyślij chłopaka do domu. +achievement.horizonsStart=Apogeum +achievement.impossible.desc=Nie możesz dostać tego osiągnięcia. +achievement.impossible=Dosłownie niemożliwe +achievement.inferno.desc="Obróć to w popiół! To nie wystarczy! Zrzuć więcej bomb!" +achievement.inferno=Operacja Kanibal +achievement.manhattan.desc=8:15; 6 Sierpnia, 1945 +achievement.manhattan=Projekt Manhattan +achievement.meltdown.desc=Zaszedłeś tak daleko, jak mogłeś to zepsuć? +achievement.meltdown=Szybki nieplanowany demontaż +achievement.no9.desc=„Mam nadzieję, że ołów, który wydobywam, zostanie użyty w twojej farbie” +achievement.no9=Stara dziewiątka +achievement.omega12.desc=Rozwiąż problem dalszego życia na tej nędznej planecie. +achievement.omega12=Omega-12 Akcelerator Cząsteczek +achievement.polymer.desc=Mniam mniam. Smaczne mikroplastiki. Kocham je. achievement.polymer=Teflon -achievement.potato.desc=You stabbed me! What is WRONG with yo-WOOOAAH -achievement.potato=Rogue AI -achievement.radDeath.desc=Marie Curie invented the theory of radioactivity, the treatment of radioactivity, and dying of radioactivity. -achievement.radDeath=Ouch, Radiation! -achievement.radium.desc=YOU'RE FIRED FOR POURING RADIUM IN MY COFFEE! -achievement.radium=MISTER INCREDIBLE -achievement.radPoison.desc=Suffer the effects of radiation poisoning. -achievement.radPoison=Yay, Radiation! -achievement.RBMKBoom.desc=What is the cost of lies? -achievement.RBMKBoom=It is 15,000. -achievement.RBMK.desc=He's delusional, get him to the infirmary. -achievement.RBMK=3.6 Roentegen? -achievement.redBalloons.desc="This is what we've waited for. This is it, boys, this is war." -achievement.redBalloons=99 Red Balloons -achievement.sacrifice.desc=Face the fire and live. -achievement.sacrifice=Sororicide -achievement.schrab.desc=Regardless, I wouldn't look at it for too long. -achievement.schrab=Island of Stability -achievement.selenium.desc=Yeah. -achievement.selenium=XVIII The Moon -achievement.SILEX.desc=It's cooler then it sounds, I promise. -achievement.SILEX=Separation of Isotopes by Laser Exitation +achievement.potato.desc=Dźgnąłeś mnie! Co jest z tobą nie ta-ŁOOOO +achievement.potato=Zbuntowane AI +achievement.radDeath.desc=Maria Curie wynalazła teorię radioaktywności, leczenia radioaktywności i umierania z powodu radioaktywności. +achievement.radDeath=Ała, promieniowanie! +achievement.radium.desc=JESTEŚ ZWOLNIONY ZA WLEWANIE RADU DO MOJEJ KAWY! +achievement.radium=PAN INIEMAMOCNY +achievement.radPoison.desc=Ponieś skutki zatrucia promieniowaniem. +achievement.radPoison=Jej, promieniowanie! +achievement.RBMKBoom.desc=Co jest kosztem kłamstw? +achievement.RBMKBoom=15,000. +achievement.RBMK.desc=Ma urojenia, zabierz go do szpitala. +achievement.RBMK=3.6 Rentegena? +achievement.redBalloons.desc="To jest to, na co czekaliśmy. To jest to, koledzy, to jest wojna." +achievement.redBalloons=99 Czerwonych Balonów +achievement.sacrifice.desc=Zmierz się z ogniem i żyj. +achievement.sacrifice=Sorobójstwo +achievement.schrab.desc=Mimo wszystko nie patrzyłbym na to zbyt długo. +achievement.schrab=Wyspa Stabilności +achievement.selenium.desc=Ta. +achievement.selenium=XVIII Księżyc +achievement.SILEX.desc=To jest fajniejsze niż to brzmi, obiecuję. +achievement.SILEX=Rozdzielanie Izotopów Za Pomocą Wzbudzenia Laserowego achievement.slimeball.desc= -achievement.slimeball=I should dip my balls in sulfuric acid. -achievement.stratum.desc=Hit the brakes, Mitts. -achievement.stratum=Stratum -achievement.someWounds.desc=Get ready -achievement.someWounds=Some Wounds Never Heal -achievement.soyuz.desc=Become crunchy. -achievement.soyuz=Baked Potato -achievement.space.desc=Fail in every way possible and waste funds worth 90 million dollars. -achievement.space=The Final Front-ah forget it +achievement.slimeball=Powinienem zanurzyć me jaja w kwasie siarkowym. +achievement.stratum.desc=Naciśnij hamulec, Mitts. +achievement.stratum=Nawarstwienie +achievement.someWounds.desc=Przygotuj się +achievement.someWounds=Niektóre rany nigdy się nie goją. +achievement.soyuz.desc=Stań się chrupiący. +achievement.soyuz=Pieczony ziemniak +achievement.space.desc=Ponieś porażkę w każdy możliwy sposób i zmarnuj fundusze warte 90 milionów dolarów. +achievement.space=Ostatni Front- a dobra, zapomnij achievement.sulfuric.desc= -achievement.sulfuric=I should not have dipped my balls in sulfuric acid. -achievement.tantalum.desc=An elusive, yet ever-needed element. -achievement.tantalum="Tantalium" -achievement.tasteofblood.desc=is not part of any testing protocol. -achievement.tasteofblood=The Taste of Blood -achievement.technetium.desc=It's medicinal, it's medicinal! -achievement.technetium=Big Man, Pig Man -achievement.watzBoom.desc=Drain your septic tank next time. -achievement.watzBoom=Disgusting -achievement.watz.desc=Fólkvangr fields possibly included. -achievement.watz=The Power of Element-126 -achievement.witchtaunter.desc=Those wacky creatures got nothing on you! -achievement.witchtaunter=Witch Taunter -achievement.ZIRNOXBoom.desc=cope, seethe, mald +achievement.sulfuric=Nie powinienem był zanurzać mych jaj w kwasie siarkowym. +achievement.tantalum.desc=Nieuchwytny, ale zawsze potrzebny element. +achievement.tantalum="Tantal" +achievement.tasteofblood.desc=nie jest częścią żadnego protokołu testowego. +achievement.tasteofblood=Smak krwi +achievement.technetium.desc=To jest lekarstwo, to jest lekarstwo! +achievement.technetium=Duży człowiek, świński człowiek +achievement.watzBoom.desc=Opróżnij szambo następnym razem. +achievement.watzBoom=Obrzydliwe +achievement.watz.desc=Możliwe uwzględnienie pól Fólkvangr. +achievement.watz=Moc Elementu-126 +achievement.witchtaunter.desc=Te zwariowane kreatury nic na ciebie nie mają! +achievement.witchtaunter=Szyderca Czarownic +achievement.ZIRNOXBoom.desc=xdxdxd achievement.ZIRNOXBoom=CIRNOX -armor.blastProtection=Damage modifier of %s against explosions -armor.cap=Hard damage cap of %s -armor.damageModifier=Damage modifier of %s against %s -armor.dash=Grants %s dashes -armor.electricJetpack=Ion Jetpack -armor.explosionImmune=Cannot take any damage except from explosions -armor.fastFall=Fast Fall -armor.fireproof=Fireproof -armor.fullSetBonus=Full Set Bonus: -armor.geigerHUD=Built-In Geiger Counter HUD -armor.geigerSound=Auditory Geiger Counter -armor.glider=Sneak to glide -armor.gravity=Gravity modifier of %s -armor.hardLanding=Hard Landing -armor.ignoreLimit=Resistance is not affected by resistance limit -armor.modifier=General damage modifier of %s -armor.nullDamage=Nullifies all damage from %s -armor.projectileProtection=Damage modifier of %s against projectiles -armor.rocketBoots=Rocket Boots -armor.sprintBoost=Boosted Sprint -armor.thermal=Thermal Sight -armor.threshold=Damage threshold of %s -armor.vats=Enemy HUD -armor.yield=Protection applies to damage <%s +armor.blastProtection=Modyfikator obrażeń %s przeciwko eksplozjom +armor.cap=Twardy limit obrażeń %s +armor.damageModifier=Modyfikator obrażeń %s przeciwko %s +armor.dash=Daje %s susów +armor.electricJetpack=Jonowy plecak odrzutowy +armor.explosionImmune=Nie może otrzymać żadnych obrażeń z wyjątkiem eksplozji +armor.fastFall=Szybki Upadek +armor.fireproof=Ognioodporny +armor.fullSetBonus=Bonus pełnego zestawu: +armor.geigerHUD=Wbudowane HUD licznika Geigera +armor.geigerSound=Słuchowy licznik Geigera +armor.glider=Skradnij się aby szybować +armor.gravity=Modyfikator grawitacji %s +armor.hardLanding=Twarde Lądowanie +armor.ignoreLimit=Limit rezystancji nie ma wpływu na rezystancję +armor.modifier=Ogólny modyfikator obrażeń %s +armor.nullDamage=Anuluje wszystkie obrażenia od %s +armor.projectileProtection=Modyfikator obrażeń %s przeciwko pociskom +armor.rocketBoots=Buty Rakietowe +armor.sprintBoost=Wzmocniony Sprint +armor.thermal=Wzrok Termiczny +armor.threshold=Próg obrażeń %s +armor.vats=HUD Przeciwników +armor.yield=Ochrona dotyczy obrażeń <%s -armorMod.all=All -armorMod.applicableTo=Applicable To: -armorMod.boots=Boots -armorMod.chestplates=Chestplates -armorMod.helmets=Helmets -armorMod.insertHere=Insert armor to modify... -armorMod.leggings=Leggings -armorMod.type.boots=Boots -armorMod.type.chestplate=Chestplate -armorMod.type.cladding=Cladding -armorMod.type.helmet=Helmet -armorMod.type.insert=Insert -armorMod.type.leggings=Leggings -armorMod.type.servo=Servos -armorMod.type.special=Special +armorMod.all=Wszystkiego +armorMod.applicableTo=Stosuje się do: +armorMod.boots=Butów +armorMod.chestplates=Napierśników +armorMod.helmets=Hełmów +armorMod.insertHere=Wstaw zbroję, aby zmodyfikować... +armorMod.leggings=Legginsów +armorMod.type.boots=Buty +armorMod.type.chestplate=Napierśnik +armorMod.type.cladding=Okładziny +armorMod.type.helmet=Hełm +armorMod.type.insert=Wkładka +armorMod.type.leggings=Legginsy +armorMod.type.servo=Serwa +armorMod.type.special=Specjalne -battery.mode.buffer=Input/Output Mode -battery.mode.input=Input Mode -battery.mode.off=OffW -battery.mode.output=Output Mode -battery.priority.high=Charge Priority: High -battery.priority.high.desc=Emergency buffers that$always need to be full -battery.priority.low=Charge Priority: Low -battery.priority.low.desc=Most use-cases where surplus$energy needs to be stored without$affecting machine performance -battery.priority.normal=Charge Priority: Normal -battery.priority.normal.desc=Smaller power grids where$priority doesn't matter -battery.priority.recommended=Recommended for: -battery.redstone.off=Redstone OFF -battery.redstone.on=Redstone ON +battery.mode.buffer=Tryb Wejścia/Wyjścia +battery.mode.input=Tryb Wejścia +battery.mode.off=WyłączonyW +battery.mode.output=Tryb Wyjścia +battery.priority.high=Charge Priority: Wysoki +battery.priority.high.desc=Bufory awaryjne, które$zawsze muszą być pełne +battery.priority.low=Charge Priority: Niski +battery.priority.low.desc=Większość przypadków użycia, w których nadmiar$energii musi być przechowywany bez$wpływu na wydajność maszyny +battery.priority.normal=Charge Priority: Normalny +battery.priority.normal.desc=Mniejsze sieci energetyczne, w których priorytet nie ma znaczenia +battery.priority.recommended=Polecane dla: +battery.redstone.off=Redstone WYŁ +battery.redstone.on=Redstone WŁ -bomb.detonated=Detonated successfully! -bomb.incompatible=Device can not be triggered! -bomb.launched=Launched successfully! -bomb.missingComponent=Component missing! -bomb.nobomb=Linked position incompatible or unloaded! -bomb.triggered=Triggered successfully! +bomb.detonated=Zdetonowano pomyślnie! +bomb.incompatible=Urządzenie nie może zostać uruchomione! +bomb.launched=Wystrzelono pomyślnie! +bomb.missingComponent=Brakujący komponent! +bomb.nobomb=Połączona pozycja niekompatybilna lub niezaładowana! +bomb.triggered=Uruchomiono pomyślnie! -book.test.cover=HOW 2 SEX -book.test.page1=Test Page 1 +book.test.cover=JAK SEXOWAĆ +book.test.page1=Test Strony 1 -book.error.cover=Hadron Collider:$Troubleshooting -book.error.title1=Error 0x01 [NC] -book.error.page1=§lName:§r "ERROR_NO_CHARGE" §lDescription:§r The particle has reached a segment with insufficient charge. §lPotential fix:§r Either replace one of the plugs that the particle successfully passes with higher-tier ones or add another plug slightly before the segment where the particle expires. -book.error.title2=Error 0x02 [NA] -book.error.page2=§lName:§r "ERROR_NO_ANALYSIS" §lDescription:§r The particle has reached the core, despite not passing an analysis chamber. §lPotential fix:§r Make sure that your accelerator has an analysis chamber and double-check the operating mode (linear/circular). -book.error.title3=Error 0x03 [OC] -book.error.page3=§lName:§r "ERROR_OBSTRUCTED_CHANNEL" §lDescription:§r The particle has collided with a block inside the collider's channel. §lPotential fix:§r Make sure that the inside of your particle collider is free of any obstructions, except for particle diodes and core blocks. -book.error.title4=Error 0x04 [EC] -book.error.page4=§lName:§r "ERROR_EXPECTED_COIL" §lDescription:§r The particle has passed a segment that lacks one or multiple coils. §lPotential fix:§r Remove the plating of the collider in the offending area and check if all the coils are there. This error will also happen at T-crossings that are built without diodes. -book.error.title5=Error 0x05 [MS] -book.error.page5=§lName:§r "ERROR_MALFORMED_SEGMENT" §lDescription:§r The particle has passed a segment that was built incorrectly (but neither obstructed nor missing coils). §lPotential fix:§r Make sure that the offending segment has platings in all the required spaces, leaving no coils exposed. -book.error.title6=Error 0x06 [ATL] -book.error.page6=§lName:§r "ERROR_ANALYSIS_TOO_LONG" §lDescription:§r The particle has passed more than the three required valid analysis chamber segments. §lPotential fix:§r Make sure that the analysis chamber is exactly 3 blocks long for circular accelerator and at least 2 blocks long for linear ones. Also check if the particle doesn't pass multiple analysis chambers in a branching and/or looped accelerator. -book.error.title7=Error 0x07 [ATS] -book.error.page7=§lName:§r "ERROR_ANALYSIS_TOO_SHORT" §lDescription:§r The particle has left the analysis chamber, despite not meeting the length requirement. §lPotential fix:§r Make sure that the analysis chamber on your circular accelerator is exactly 3 blocks long. Valid analysis segments have no coils and the plating is entirely composed of analysis chamber walls/windows. Analysis chambers with coils in them count as regular segments. -book.error.title8=Error 0x08 [DC] -book.error.page8=§lName:§r "ERROR_DIODE_COLLISION" §lDescription:§r The particle collided with a non-input side of a schottky particle diode. §lPotential fix:§r Check if your diodes are configured correctly. Particles can only enter the diode from sides with green inward-pointing arrows. -book.error.title9=Error 0x09 [BT] -book.error.page9=§lName:§r "ERROR_BRANCHING_TURN" §lDescription:§r The particle has reached a turn with multiple exits. §lPotential fix:§r If your turn is a normal one, check if all the required coils are present (i.e. no holes in the coil layer). If the turn is intended to be branched, it requires a schottky particle diode that is correctly configured. +book.error.cover=Zderzacz Hadronów:$rozwiązywanie problemów +book.error.title1=Błąd 0x01 [NC] +book.error.page1=§lNazwa:§r "ERROR_NO_CHARGE" §lOpis:§r Cząstka dotarła do segmentu o niewystarczającym ładunku. §lPotencjalna poprawka:§r Albo wymień jedną ze wtyczek, przez które cząsteczka pomyślnie przechodzi na wtyczki wyższego poziomu, albo dodaj kolejną wtyczkę nieco przed segmentem, w którym cząsteczka wygasa. +book.error.title2=Błąd 0x02 [NA] +book.error.page2=§lNazwa:§r "ERROR_NO_ANALYSIS" §lOpis:§r Cząstka dotarła do rdzenia, mimo że nie przeszła przez komorę analityczną. §lPotencjalna poprawka:§r Upewnij się, że twój akcelerator ma komorę analityczną i dwukrotnie sprawdź tryb pracy (liniowy/kołowy). +book.error.title3=Błąd 0x03 [OC] +book.error.page3=§lNazwa:§r "ERROR_OBSTRUCTED_CHANNEL" §lOpis:§r Cząstka zderzyła się z blokiem wewnątrz kanału zderzacza. §lPotencjalna poprawka::§r Upewnij się, że wnętrze zderzacza cząstek jest wolne od jakichkolwiek przeszkód, z wyjątkiem diod cząsteczkowych i bloków rdzenia. +book.error.title4=Błąd 0x04 [EC] +book.error.page4=§lNazwa:§r "ERROR_EXPECTED_COIL" §lOpis:§r Cząstka przeszła przez segment, w którym brakuje jednej lub wielu cewek. §lPotencjalna poprawka:§r Usuń osłonę zderzacza w obszarze naruszenia i sprawdź, czy są tam wszystkie cewki. Ten błąd wystąpi również w przypadku skrzyżowań T, które są zbudowane bez diod. +book.error.title5=Błąd 0x05 [MS] +book.error.page5=§lNazwa:§r "ERROR_MALFORMED_SEGMENT" §lOpis:§r Cząstka minęła segment, który został zbudowany nieprawidłowo (ale nie jest zablokowany ani nie ma brakujących cewek). §lPotencjalna poprawka:§r Upewnij się, że błędny segment ma osłonę we wszystkich wymaganych miejscach, nie pozostawiając odsłoniętych cewek. +book.error.title6=Błąd 0x06 [ATL] +book.error.page6=§lNazwa:§r "ERROR_ANALYSIS_TOO_LONG" §lOpis:§r Cząstka przeszła więcej niż trzy wymagane poprawne segmenty komory analitycznej.§lPotencjalna poprawka:§r Upewnij się, że komora analityczna ma dokładnie 3 bloki długości dla akceleratora kołowego i co najmniej 2 bloki długości dla akceleratora liniowego. Sprawdź również, czy cząstka nie przechodzi przez wiele komór analitycznych w rozgałęzionym i/lub zapętlonym akceleratorze. +book.error.title7=Błąd 0x07 [ATS] +book.error.page7=§lNazwa:§r "ERROR_ANALYSIS_TOO_SHORT" §lOpis:§r Cząstka opuściła komorę analityczną, mimo że nie spełniała wymagań dotyczących długości. §lPotencjalna poprawka:§r Upewnij się, że komora analityczna twojego akceleratora kołowego ma dokładnie 3 bloki długości. Prawidłowe segmenty analityczne nie mają cewek, a osłona składa się w całości ze ścian/okien komory analitycznej. Komory analityczne z cewkami w nich liczą się jako zwykłe segmenty. +book.error.title8=Błąd 0x08 [DC] +book.error.page8=§lNazwa:§r "ERROR_DIODE_COLLISION" §lOpis:§r Cząstka zderzyła się z niewejściową stroną diody Schottky'ego. §lPotencjalna poprawka:§r Sprawdź, czy diody są poprawnie skonfigurowane. Cząsteczki mogą dostać się do diody tylko z boków oznaczonych zielonymi strzałkami skierowanymi do wewnątrz. +book.error.title9=Błąd 0x09 [BT] +book.error.page9=§lNazwa:§r "ERROR_BRANCHING_TURN" §lOpis:§r Cząstka osiągnęła zakręt z wieloma wyjściami. §lPotencjalna poprawka:§r Jeśli twój zakręt jest normalny, sprawdź, czy są wszystkie wymagane cewki (tj. czy nie ma dziur w warstwie cewki). Jeśli zakręt ma być rozgałęziony, wymaga prawidłowo skonfigurowanej diody cząstek Schottky'ego. -book.rbmk.cover=My first RBMK:$Basics of$building a$reactor -book.rbmk.title1=Introduction -book.rbmk.page1=§lRBMK§r is fully modular nuclear reactor. Unlike most other reactors, there is no "core" and no size restrictions, rather behavior and efficiency of reactor depends on how it is built and how various parts interact with each other. -book.rbmk.title2=Heat -book.rbmk.page2=As reactor runs, it will generate §lheat§r. Heat will spread between parts, slowly decreasing in the process. The goal is to generate as much heat as possible without melting the reactor, and to transfer heat into steam passages that cool reactor and produce steam. -book.rbmk.title3=Fuel Rod -book.rbmk.page3=The §lfuel rod§r will capture neutron flux, causing fuel inside the rod to react, releasing neutrons in the process. Neutrons are released in all four main directions with a maximum range of 5 blocks. The amount of released neutrons depends on fuel used. -book.rbmk.title4=Regulating Rod -book.rbmk.page4=The §lcontrol rod§r will reduce number of neutrons passing through. Fully inserted, it will block all neutrons; when inserted halfway, it will only block half. Control rods are used to regulate activity of the reactor and shut it down. -book.rbmk.title5=Regulating Rods - Usage +book.rbmk.cover=Moje Pierwsze RBMK:$Podstawy Budowy$Reaktora +book.rbmk.title1=Wstęp +book.rbmk.page1=§lRBMK§r jest w pełni modułowym reaktorem jądrowym. W przeciwieństwie do większości innych reaktorów, nie ma „rdzenia” ani ograniczeń wielkości, a zachowanie i wydajność reaktora zależy od tego, jak jest zbudowany i jak poszczególne części współdziałają ze sobą. +book.rbmk.title2=Ciepło +book.rbmk.page2=Podczas pracy reaktor będzie generował §lciepło§r. Ciepło będzie rozprzestrzeniać się między częściami, powoli zmniejszając się w trakcie. Celem jest wygenerowanie jak największej ilości ciepła bez stopienia reaktora i przekazanie ciepła do kanałów parowych, które chłodzą reaktor i wytwarzają parę. +book.rbmk.title3=Pręt paliwowy +book.rbmk.page3=§lPręt paliwowy§r wychwyci strumień neutronów, powodując reakcję paliwa wewnątrz pręta, uwalniając neutrony w procesie. Neutrony są uwalniane we wszystkich czterech głównych kierunkach z maksymalnym zasięgiem 5 bloków. Ilość uwolnionych neutronów zależy od użytego paliwa. +book.rbmk.title4=Pręt regulacyjny +book.rbmk.page4=§lPręt regulacyjny§r zmniejszy liczbę przechodzących neutronów. Całkowicie włożony zablokuje wszystkie neutrony; po włożeniu do połowy zablokuje tylko połowę. Pręty regulacyjne służą do regulacji pracy reaktora i jego wyłączania. +book.rbmk.title5=Pręty regulacyjne — zastosowanie book.rbmk.title5.scale=0.9 -book.rbmk.page5=The current bar insertion will be displayed in the center of GUI. The colored buttons on left will add the control bar to the color group, which is useful for quickly selecting grouped bars on §lRBMK§r console. The buttons on right allow you to manually insert in 25%% increments. -book.rbmk.title6=Automatic Control Rods -book.rbmk.page6=§LAutomatic control rods§r are almost identical to regular control rods, but they cannot be manually adjusted, instead they will adjust position of the rod based on current temperature. Which function to use and how deep to insert and at what temperature must be determined first. -book.rbmk.title7=Steam Channel -book.rbmk.page7=The §lsteam channel§r is only part that will actively reduce reactor heat level. If a component is above the boiling point of a given type of steam, it will try to consume as much water and produce as much steam as needed to cool below boiling point. -book.rbmk.title8=Neutron Reflector -book.rbmk.page8=The §lneutron reflector§r will block passage of neutrons, instead neutrons will be reflected back onto the fuel rod they came from. This is useful for using neutrons that would otherwise be wasted simply by leaving reactor. -book.rbmk.title9=Neutron Absorber -book.rbmk.page9=§lNeutron absorber§r simply blocks neutrons. The absorbed neutrons will not generate heat and will be effectively destroyed. This is useful for preventing fuel rods from reacting that would otherwise be within reach. -book.rbmk.title10=Graphite Retarder -book.rbmk.page10=§lGraphite moderator§r converts fast neutrons passing through it into slow neutrons. Most fuels are split into fast neutrons, while slow neutrons are required for fission, so use of moderators is highly recommended. -book.rbmk.title11=Structural Column -book.rbmk.page11=§lStructural column§r does not affect neutrons in any way and has no special application. It is recommended to fill the reactor with structured pillars where there are no other parts, since the structured pillars are capable of transferring heat. -book.rbmk.title12=Console -book.rbmk.page12=§lRBMK console§r allows you to control the reactor from afar. Using the §ldevice to connect the console RBMK§r on the RBMK part and then on the console will connect the reactor and the console. The console can only control 15x15 parts, for large reactors you can use multiple consoles. -book.rbmk.title13=Using the console -book.rbmk.page13=Clicking on parts will select and deselect them. With the colored buttons, you can quickly select all the control rods in that color group. Button "A" will select all control rods, "X" will deselect all. -book.rbmk.page14=Entering a number between 0 and 100 in green box and then pressing button next to it will set all selected control rods to that position. Button "AZ-5" will lead to full insertion of all control rods. -book.rbmk.title15=Fuel -book.rbmk.page15=The §lfuel§r response depends on many factors. The main ones are §lfortification§r, §lxenon poisoning§r and number of incoming §lneutrons§r. Xenon builds up when fuel is low in neutrons and burns out during normal operation. The efficiency of neutrons depends on the type, most fuels §lare best split by§r §lslow neutrons§r. -book.rbmk.title16=Melting -book.rbmk.page16=§4§lAVOID. +book.rbmk.page5=Bieżące wstawienie pręta zostanie wyświetlone na środku GUI. Kolorowe przyciski po lewej stronie dodadzą pasek sterowania do grupy kolorów, co jest przydatne do szybkiego wybierania zgrupowanych pasków na konsoli §lRBMK§r. Przyciski po prawej stronie umożliwiają ręczne wstawianie po 25%%. +book.rbmk.title6=Automatyczny pręt regulacyjny +book.rbmk.page6=§lAutomatyczne pręty regulacyjne§r są prawie identyczne jak zwykłe pręty regulacyjne, ale nie można ich regulować ręcznie, zamiast tego dostosują położenie pręta w oparciu o aktualną temperaturę. Którą funkcję użyć i jak głęboko włożyć i w jakiej temperaturze należy najpierw ustalić. +book.rbmk.title7=Kanał parowy +book.rbmk.page7=§lKanał parowy§r jest jedyną częścią, która będzie regularnie obniżać poziom ciepła w reaktorze. Jeśli element ma temperaturę powyżej wrzenia określonego rodzaju pary, będzie próbował zużywać tyle wody i wytwarzać tyle pary, ile potrzeba do schłodzenia poniżej temperatury wrzenia. +book.rbmk.title8=Reflektor neutronów +book.rbmk.page8=§lReflektor neutronów§r zablokuje przejście neutronów, zamiast tego neutrony zostaną odbite z powrotem na pręt paliwowy, z którego pochodzą. Jest on przydatny do wykorzystania neutronów, które w przeciwnym razie zostałyby zmarnowane po prostu przez opuszczenie reaktora. +book.rbmk.title9=Pochłaniacz neutronów +book.rbmk.page9=§lPochłaniacz neutronów§r po prostu blokuje neutrony. Zaabsorbowane neutrony nie będą generować ciepła i zostaną skutecznie zniszczone. Jest to przydatne do zapobiegania reakcji prętów paliwowych, które w przeciwnym razie byłyby w swoim zasięgu. +book.rbmk.title10=Opóźniacz grafitowy +book.rbmk.page10=§lModerator grafitowy§r (lub opóźniacz grafitowy) przekształca przechodzące przez niego neutrony prędkie w neutrony powolne. Większość paliw jest rozkładana na neutrony prędkie, podczas gdy neutrony powolne są potrzebne do rozszczepienia, dlatego zalecane jest stosowanie moderatorów. +book.rbmk.title11=Kolumna strukturalna +book.rbmk.page11=§lKolumna strukturalna§r nie wpływa w żaden sposób na neutrony i nie ma specjalnego zastosowania. Zaleca się wypełnienie reaktora słupami strukturalnymi tam, gdzie nie ma innych części, ponieważ słupy strukturalne są zdolne do przenoszenia ciepła. +book.rbmk.title12=Konsola +book.rbmk.page12=§lKonsola RBMK§r pozwala sterować reaktorem z daleka. Używając §lurządzenia do podłączania konsoli RBMK§r na części RBMK a następnie na konsoli połączymy reaktor i konsolę. Konsola może sterować tylko częściami 15x15, w przypadku dużych reaktorów można użyć wielu konsol. +book.rbmk.title13=Używanie konsoli +book.rbmk.page13=Klikanie na części spowoduje ich zaznaczenie i odznaczenie. Za pomocą kolorowych przycisków możesz szybko wybrać wszystkie pręty regulacyjne w danej grupie kolorów. Przycisk „A” zaznaczy wszystkie drążki sterujące, „X” odznaczy wszystkie. +book.rbmk.page14=Wpisanie liczby od 0 do 100 w zielone pole, a następnie naciśnięcie przycisku obok niego spowoduje ustawienie wszystkich wybranych drążków sterujących w tej pozycji. Przycisk „AZ-5” doprowadzi do pełnego włożenia wszystkich drążków sterujących. +book.rbmk.title15=Paliwo +book.rbmk.page15=Reakcja §lpaliwa§r zależy od wielu czynników. Główne z nich to §lfortyfikacja§r, §zatrucie ksenonem§r oraz liczba przychodzących §neutronów§r. Ksenon gromadzi się, gdy paliwo ma niską zawartość neutronów i spala się podczas normalnej pracy. Wydajność neutronów zależy od rodzaju, większość paliw §lnajlepiej rozdziela się przez §r §lwolne neutrony§r. +book.rbmk.title16=Stapianie +book.rbmk.page16=§4§lUNIKAJ. -book.starter.cover=An Industrialist's$Guide to Rebuilding$Society -book.starter.title1=Introduction -book.starter.page1=If you're reading this, it's highly likely that society, in one way or another, has collapsed entirely. Governments, countries, and authority are a concept of the past - along with all of the amenities of civilized life. As such, this guide will inform you how to change that by recreating the industry and technology of the past for the improvement of your own life. -book.starter.title2=Coal & Mustard Gas -book.starter.page2=Whilst it is impossible to predict the actual state of the world in a post-apocalyptic time, it's not unlikely that war and industry in its current form may not have ended. To protect your own lungs, an effective and cheap way is to urinate on some §lcloth§r to make a §ltrench mask§r, to protect you from coal dust or mustard gas, if you ever encounter either. -book.starter.title3=Anvils & Presses -book.starter.page3=The quintessentials to beginning your industrial revitalization is an §lanvil§r and a §lburner press§r. The anvil will allow you to manually craft together early machinery such as the Assembler, whilst the burner press will let you make plates, wires, and circuits that you cannot hammer together with an anvil. -book.starter.title4=Templates -book.starter.page4=In order to stamp metal into useful shapes, assemble machinery, and perform chemical reactions, you will need to create a §lMachine Template Folder§r to create the various stamps and templates shown to the right. -book.starter.title5=Scavenging -book.starter.page5=Depending on how bad the initial apocalyptic event was to the preexisting structures of the world, there's a likely chance that many useful materials and machines can be salvaged from them directly. Metallic alloys like steel, parts like circuitry, and even fissile material from a nuclear power plant might be awaiting you. Beware certain ruins, however, as there may be an excess of danger lurking there like a snake in the grass; waiting to strike you down with radiation, traps, or indescribable horrors... -book.starter.title6=Early Machinery -book.starter.page6a=Two of the first machines you should assemble are the §lBlast Furnace§r and the §lAssembly Machine§r. The former will allow you to create alloys such as §lsteel§r, §lminecraft-grade copper§r, and §ladvanced alloy§r; you will need to use these metals for the bodies of machines, the wiring of circuits, advanced electromagnets, and more. -book.starter.page6b=The assembler will be used to create practically every other machine described in this guide. You will need a power source, such as a §lCombustion§r §lGenerator§r or §lSolar Boiler§r. -book.starter.page7a=The §lShredder§r, along with a pair of shredder blades, will be very useful for doubling the output of most ores, via shredding into smeltable powders. These powders are also crucial to begin making circuitry for various machines, such as §lEnhanced§r and §lOverclocked§r circuits. -book.starter.page7b=Using your new machinery, you can create the §lChemical Plant§r, used for the synthesis of better circuits, concrete, the processing of petrochemicals, and more. -book.starter.title8=Black Gold -book.starter.page8a=Using an §lOil §lReservoir§r §lDetector§r, you can find underground oil deposits to place a §lPumpjack§r or §lDerrick§r over via surveying an area. Remember that oil deposits will run out over time. -book.starter.page8b=Before the oil can be refined and separated into its constituent parts in an §lOil Refinery§r, you must heat the oil to 300°C in a §lBoiler§r. -book.starter.title9=Petrochemicals -book.starter.page9=Using §lChemical Plants§r, §lFractioning§r §lTowers§r, and §lCatalytic Cracking§r §lTowers§r, you can transform the separated oil into a variety of useful products. For example: §lPolymer§r or §lBakelite§r, durable and flexible plastics; §lDesh§r, an extremely durable and heat-resistant rare earth metal alloy; §lSolid Fuel§r, which can be burnt for energy; or even §lLiquid Fuels§r, such as §lGasoline§r, §lDiesel§r, §lKerosene§r, and more. -book.starter.title10=Advanced Machinery -book.starter.page10=With oil processing under your belt, you can create the §lCentrifuge§r, which will triple ore outputs; the §lOre §lAcidizer§r, which will crystallize ores, increasing the yield; and the §lSILEX + §lFEL§r, two marvels of modern engineering which can separate the isotopes of materials with ease. You will require significantly more energy to power these; which can be obtained with sources such as a §lDiesel Generator§r, an §lIndustrial Generator§r, or even a nuclear reactor. -book.starter.title11=Strata -book.starter.page11=Underneath the ground you walk, there is several naturally-occurring §lStrata§r, or special mineral layers and formations. §lSchist Strata§r are blue, lithium-containing layers filled with uranium, iron, copper, asbestos, and other ores for your own use. §lDepth Rock§r contains large quantities of rarer minerals, such as §lZirconium§r and §lBoron§r, but requires explosives to properly harvest. -book.starter.title12=Radiation -book.starter.page12a=§oThe rest of this book will deal with matters that involve §oradiation. For the safety of you and others, I will give §oadvice on how to mitigate and deal with exposure to it. -book.starter.page12b=Enough exposure to radiation can and will cause bodily harm. The first step is prevention; be sure to limit your exposure, and wear protective gear, such as a §lHazmat Suit§r, or apply §lCladding§r to your clothing or armor; you can also take §lRad-X§r to limit your intake. Thanks to modern medicine, the second step can be removal if necessary; for example, a §lPlayer §lDecontaminator§r will slowly reduce the radiation absorbed by your body. §lRad-Away§r can also be used as a post-exposure prophylaxis, quickly and effectively reversing damage caused to your body by ionizing radiation. -book.starter.title13=Uranium Enrichment -book.starter.page13=There are a few, easy options for fuels to use for a nuclear reactor; for instance, §lNatural Uranium§r or §lThorium Fuel§r. However, if you're looking for something more powerful, you can set up an enrichment cascade of two §lGas Centrifuges§r to produce §lUranium Fuel§r with leftover §lUranium-238§r. You will have to transmute the natural uranium into §lYellowcake§r, then §lUranium §lHexafluoride§r to do so. -book.starter.title14=The Chicago Pile -book.starter.page14=Alternatively, you can breed §lReactor-Grade Plutonium§r, a more powerful fuel, from Natural Uranium using the §lChicago Pile§r. By stacking graphite blocks and drilling into them, you can insert fuel rods to breed into plutonium and neutron source rods, such as §lRadium-Beryllium§r, to begin the reaction. Make sure to test your designs; spacing out or limiting the amount of blocks may be necessary to prevent overheating. +book.starter.cover=Przewodnik przemysłowcy$do odbudowy$społeczeństwa +book.starter.title1=Wstęp +book.starter.page1=Jeśli to czytasz, jest to bardzo prawdopodobne, że społeczeństwo, w taki czy inny sposób, całkowicie się rozpadło. Rządy, kraje i władza to koncepcje przeszłości – wraz ze wszystkimi wygodami cywilizowanego życia. W związku z tym, w tym przewodniku dowiesz się, jak to zmienić, odtwarzając przemysł i technologię z przeszłości w celu poprawy własnego życia. +book.starter.title2=Węgiel i gaz musztardowy +book.starter.page2=Chociaż niemożliwe jest przewidzenie faktycznego stanu świata w czasach postapokaliptycznych, nie jest wykluczone, że wojna i przemysł w ich obecnej formie nie zakończyły się. Aby chronić własne płuca, skutecznym i tanim sposobem jest oddanie moczu na jakieś §lpłótno§r, aby zrobić §lmaskę okopową§r, aby chronić się przed pyłem węglowym lub gazem musztardowym, jeśli kiedykolwiek się z nimi spotkasz. +book.starter.title3=Kowadła i prasy +book.starter.page3=Kwintesencją rozpoczęcia rewitalizacji przemysłu jest §lkowadło§r i §lprasa spalinowa§r. Kowadło pozwoli ci ręcznie tworzyć wczesne maszyny, takie jak monter, podczas gdy prasa spalinowa pozwoli ci tworzyć płyty, druty i obwody, których nie można połączyć razem w kowadle. +book.starter.title4=Szablony +book.starter.page4.scale=0.9 +book.starter.page4=Aby wytłaczać metal w użyteczne kształty, składać maszynę i przeprowadzać reakcje chemiczne, musisz stworzyć §lFolder szablonów maszyn§r, aby utworzyć różne stemple i szablony pokazane po prawej stronie. +book.starter.title5=Odzyskiwanie +book.starter.page5=W zależności od tego, jak złe było początkowe wydarzenie apokaliptyczne dla istniejących struktur świata, istnieje prawdopodobieństwo, że można z nich bezpośrednio odzyskać wiele przydatnych materiałów i maszyn. Stopy metali, takie jak stal, części, takie jak obwody, a nawet materiały rozszczepialne z elektrowni jądrowej mogą na ciebie czekać. Uważaj jednak na niektóre ruiny, ponieważ może tam czaić się nadmiar niebezpieczeństw jak wąż w trawie; czekając, by powalić cię promieniowaniem, pułapkami lub nieopisywalnymi horrorami... +book.starter.title6=Wczesne maszyny +book.starter.page6a=Dwie z pierwszych maszyn, które powinieneś zmontować, to §lpiec hutniczy§r i §lmaszyna montażowa§r (lub monter/asembler). Ta pierwsza pozwoli na tworzenie stopów, takich jak §lstal§r, §lmiedź klasy minecraft§r i §lzaawansowany stop§r; będziesz musiał użyć tych metali do budowy korpusów maszyn, okablowania obwodów, zaawansowanych elektromagnesów i nie tylko. +book.starter.page6b=Asembler posłuży do stworzenia praktycznie każdej innej maszyny opisanej w tym poradniku. Będziesz potrzebował źródła zasilania, takiego jak §lgenerator§r §lspalinowy§r lub §lbojler słoneczny§r. +book.starter.page7a=§lNiszczarka§r wraz z parą ostrzy niszczarki będzie bardzo przydatna do podwojenia ilości większości rud poprzez rozdrabnianie na nadające się do wytapiania proszki. Te proszki są również niezbędne do rozpoczęcia tworzenia obwodów dla różnych maszyn, takie jak §lwzmocnione§r i §lprzetaktowane§r obwody. +book.starter.page7b=Korzystając z nowych maszyn, możesz stworzyć §1zakłady chemiczne§r, używane do syntezy lepszych obwodów, betonu, przetwarzania produktów petrochemicznych i nie tylko. +book.starter.title8=Czarne złoto +book.starter.page8a=Używając §ldetektora §lzbiorników§r §lropy§r, możesz znaleźć podziemne złoża ropy, aby umieścić na nich §lkiwon§r lub §lwieżę wiertniczą§r poprzez badanie terenu. Pamiętaj, że złoża ropy z czasem się wyczerpią. +book.starter.page8b=Zanim ropa będzie mógła być rafinowana i rozdzielona na części składowe w §lrafinerii ropy naftowej§r, należy podgrzać ropę do 300°C w §lbojlerze§r. +book.starter.title9=Produkty petrochemiczne +book.starter.page9=Używając §lzakładu chemicznego§r, §lwież§r §lfrakcjonujących§r i §lwież do krakingu§r §lkataliktycznego§r, możesz przekształcić oddzieloną ropę w różnorodne przydatne produkty. Na przykład: §lpolimer§r lub §lbakelit§r, trwałe i elastyczne tworzywa sztuczne; §ldesh§r, niezwykle trwały i odporny na wysoką temperaturę stop metali ziem rzadkich; §lpaliwo stałe§r, które można spalić w celu uzyskania energii; a nawet §lpaliwa płynne§r, takie jak §lbenzyna§r, §lolej napędowy§r, §lbenzyna ciężka§r i inne. +book.starter.title10=Zaawansowane maszyny +book.starter.page10=Mając już za sobą przetwarzanie ropy, możesz stworzyć §lwirówkę§r, która potroi wydobycie rudy; §lzakwaszacz §lrud§r, który krystalizuje rudy, zwiększając wydajność; oraz §lSILEX + §lFEL§r, dwa cuda nowoczesnej inżynierii, które z łatwością oddzielają izotopy materiałów. Będziesz potrzebował znacznie więcej energii, aby je zasilić; które można uzyskać ze źródeł takich jak §lgenerator dieslowy§r, §lgenerator przemysłowy§r, a nawet reaktor jądrowy. +book.starter.title11=Nawarstwienia +book.starter.page11=Pod ziemią, po której idziesz, znajduje się kilka naturalnie występujących §lnawarstwień§r, czyli specjalnych warstw i formacji mineralnych. §lNawarstwienie łupkowe§r to niebieskie, zawierające lit warstwy wypełnione uranem, żelazem, miedzią, azbestem i innymi rudami na własny użytek. §lGłęboka skała§r zawiera duże ilości rzadszych minerałów, takich jak §lcyrkon§r i §lboron§r, ale wymaga materiałów wybuchowych do prawidłowego zebrania. +book.starter.title12=Promieniowanie +book.starter.page12a=Pozostała część tej książki dotyczy spraw związanych z promieniowaniem. Dla bezpieczeństwa ciebie i innych dam radę, jak złagodzić i radzić sobie z narażeniem na nie. +book.starter.page12b=Wystarczająca ekspozycja na promieniowanie może i spowoduje uszkodzenie ciała. Pierwszym krokiem jest zapobieganie; pamiętaj o ograniczeniu ekspozycji i noś sprzęt ochronny, taki jak §lkombinezon ochronny§r, lub zastosuj §lokładzinę§r na ubraniu lub zbroi; możesz również wziąć §lRad-X§r, aby ograniczyć przyjmowanie. Dzięki nowoczesnej medycynie drugim krokiem może być usunięcie w razie potrzeby; na przykład §ldekontaminator §lgraczy§r będzie powoli zmniejszał promieniowanie pochłaniane przez twoje ciało. §lRad-Away§r może być również stosowany jako profilaktyka poekspozycyjna, szybko i skutecznie odwraca szkody wyrządzone organizmowi przez promieniowanie jonizujące. +book.starter.title13=Wzbogacanie uranu +book.starter.page13=Istnieje kilka łatwych opcji paliw do wykorzystania w reaktorze jądrowym; na przykład §luran naturalny§r lub §lpaliwo torowe§r. Jeśli jednak szukasz czegoś mocniejszego, możesz stworzyć kaskadę wzbogacania poprzez dwie §lwirówki wzbogacające§r, aby produkować §lpaliwo uranowe§r z resztek §luranu-238§r. Aby to zrobić, będziesz musiał przemienić naturalny uran w §lżółte ciasto§r, a następnie §lheksafluorek §luranu§r. +book.starter.title14=Chicago Pile +book.starter.page14=Alternatywnie, możesz stworzyć §lpluton klasy reaktorowej§r, czyli mocniejsze paliwo, z naturalnego uranu przy użyciu §lChicago Pile§r. Układając bloki grafitu i wiercąc w nich, można włożyć pręty paliwowe w celu zamienienia się w pręty źródłowe plutonu i neutronów, takie jak §lrad-beryl§r, aby rozpocząć reakcję. Pamiętaj, aby przetestować swoje projekty; odstępy lub ograniczenie liczby bloków może być konieczne, aby zapobiec przegrzaniu. book.starter.title15=ZIRNOX GCR -book.starter.page15=Finally, you can create your first §oreal§r source of energy: the §lZIRNOX§r Nuclear Reactor. Nuclear reactors require more setup then other power sources; first, you will want to have a good source of water, such as the §lHeavy §lInfinite Water Tank§r. To remove heat from the reactor core and boil the water into steam, you will need a sufficient amount of §lCarbon Dioxide§r. You want just enough pressure, but not §otoo§r much. You will also need three steam turbines to utilize the created steam to make energy; the §lSteam §lTurbine§r or §lIndustrial Steam §lTurbine§r will be optimal. Finally, a §lCondensor§r or §lAuxilary Cooling Tower§r is needed to condense the leftover steam into water, where it can be voided or recycled in a cooling loop. -book.starter.title16=Conclusion -book.starter.page16=If you've reached this far, you're on track to helping rebuild civilization. You've successfully recreated the advanced machinery of the pre-apocalypse - with nuclear power, petrochemicals, and more. I cannot know §ohow§r you will use these new-found advantages, but it's my personal hope you use them for the good of yourself and others - or at the very least, in self-defense. Au revoir! -book.starter.title18=About the Author -book.starter.page18=vær is just a guy who has been trapped in the grey void featured in the Talking Head's §oOnce In A Lifetime§r for too long. He once found a studio door, but to his dismay found out it was a cardboard cut-out. +book.starter.page15=Na koniec możesz stworzyć swoje pierwsze §orealne§r źródło energii: Reaktor Jądrowy §lZIRNOX§r. Reaktory jądrowe wymagają więcej konfiguracji niż inne źródła zasilania; po pierwsze, będziesz chciał mieć dobre źródło wody, takie jak §lnieskończone źrodło §lciężkiej wody§r. Aby usunąć ciepło z rdzenia reaktora i zagotować wodę w parę, potrzebujesz odpowiedniej ilości §ldwutlenku węgla§r. Chcesz mieć wystarczające ciśnienie, ale nie §oza§r duże. Będziesz także potrzebował trzech turbin parowych, aby wykorzystać wytworzoną parę do wytwarzania energii; §lTurbina §lparowa§r lub §lprzemysłowa §lturbina parowa§r będzie optymalna. Wreszcie §lskraplacz§r lub §lpomocnicza wieża chłodnicza§r jest potrzebna do skraplania pozostałej pary w wodę, gdzie można ją usunąć lub poddać recyklingowi w pętli chłodzącej. +book.starter.title16=Wniosek +book.starter.page16=Jeśli dotarłeś tak daleko, jesteś na dobrej drodze do odbudowy cywilizacji. Udało ci się odtworzyć zaawansowaną maszynerię sprzed apokalipsy - z energią jądrową, petrochemią i nie tylko. Nie wiem, w jaki sposób wykorzystasz te nowo odkryte korzyści, ale mam osobistą nadzieję, że wykorzystasz je dla dobra własnego i innych - a przynajmniej w samoobronie. Au revoir! +book.starter.title18=O autorze +book.starter.page18=vær to po prostu gostek, który zbyt długo był uwięziony w szarej pustce w §oOnce In A Lifetime§r Talking Head'a. Kiedyś znalazł drzwi do studia, ale ku swemu przerażeniu odkrył, że to wycinka z kartonu. -#book.rbmk.cover=HOW 2 RBMK:$The Basics$of Reactor$Construction -#book.rbmk.title1=Introduction -#book.rbmk.page1=The §lRBMK§r is a fully modular nuclear reactor. Unlike most other reactors, there is no "core", and no size limitations, rather, the behavior and efficiency of the reactor comes from how it is built and how the different pieces interact with each other. -#book.rbmk.title2=Heat -#book.rbmk.page2=As the reactor operates, it will generate §lheat§r. Heat will spread between parts, slowly decreasing in the process. The goal is to produce as much heat as possible without melting the reactor, and to move that heat to a §lsteam channel§r which cools the reactor and produces steam. -#book.rbmk.title3=Fuel Rod -#book.rbmk.page3=The §lfuel rod§r will capture neutron flux, causing the fuel inside the fuel rod to react, giving off neutrons in the process. Neutrons are released in all four cardinal directions with a maximum range of 5 blocks. The amount of neutrons released depends on the §lfuel§r used. -#book.rbmk.title4=Control Rod -#book.rbmk.page4=The §lcontrol rod§r will decrease the amount of neutrons passing though it. Fully inserted, it will block all neutrons, at half insertion, it will only block half. Control rods are used to regulate the reactor's activity and to turn it off. -#book.rbmk.title5=Control Rod - Usage -#book.rbmk.page5=The center of the GUI will display the current rod insertion. The colored buttons on the left will add a control rod to a color group, which is useful to quickly select grouped rods from the §lRBMK console§r. The buttons on the right allow for manual insertion in increments of 25%%. -#book.rbmk.title6=Automatic Control Rod -#book.rbmk.page6=§lAutomatic control rods§r function nearly identical to regular control rods, but they cannot be configured manually, instead they will adjust the rod position based on the current temperature. What function to use and how deep to insert at what temperature has to be defined first. -#book.rbmk.title7=Steam Channel -#book.rbmk.page7=The §lsteam channel§r is the only part that will actively reduce the reactor's heat level. If the component's temperature exceeds the boiling point of the set steam type, it will try to consume as much water and produce as much steam as needed to cool back below the boiling point. -#book.rbmk.title8=Neutron Reflector -#book.rbmk.page8=The §lneutron reflector§r will block neutrons from passing it, instead the neutrons will be reflected back at the fuel rod they came from. This is useful for utilizing neutrons that would otherwise be wasted by simply exiting the reactor. -#book.rbmk.title9=Neutron Absorber -#book.rbmk.page9=The §lneutron absorber§r will simply block neutrons. Neutrons absorbed will not generate heat and be effectively voided. This is useful to prevent fuel rods from reacting that would otherwise be in range. -#book.rbmk.title10=Graphite Moderator -#book.rbmk.page10=The §lgraphite moderator§r will convert fast neutrons passing through it into slow neutrons. Most fuels fission into fast neutrons while needing slow neutrons to split, so using moderators is strongly recommended. -#book.rbmk.title11=Structural Column -#book.rbmk.page11=The §lstructural column§r will not interfere with neutrons, nor does it have special uses. It is recommended to fill the reactor with structural columns where no other parts will be, because structural columns are capable of transporting heat. -#book.rbmk.title12=Console -#book.rbmk.page12=The §lRBMK console§r lets you control the reactor from afar. Using the §lRBMK§r §lconsole linking device§r on an RBMK part and then the console will link the reactor to the console. The console can only manage 15x15 parts, for larger reactors you might want to use multiple consoles. -#book.rbmk.title13=Console Usage -#book.rbmk.page13=Clicking on the parts will select and deselect them. Using the colored buttons, you can quickly select all control rods of that color group. Button 'A' will select all control rods, 'X' will deselect all. -#book.rbmk.page14=Entering a number 0-100 in the green box and then hitting the button next to it will set all selected control rods to this position. Button 'AZ-5' will cause all control rods to fully insert. -#book.rbmk.title15=Fuel -#book.rbmk.page15=The §lfuel§r's reactivity is based on multiple factors. The main ones are the §lenrichment§r, §lxenon poison§r and the amount of incoming §lneutrons§r. Xenon builds up when the fuel receives few neutrons and burns away during normal operation. The effectivity of neutrons depends on the type, most fuels §lsplit best with slow neutrons§r. -#book.rbmk.title16=Meltdown -#book.rbmk.page16=§4§lAvoid. +#book.rbmk.cover=JAK RBMK:$Podstawy$konstrukcji$keaktora +#book.rbmk.title1=Wstęp +#book.rbmk.page1=§lRBMK§r jest w pełni modułowym reaktorem jądrowym. W przeciwieństwie do większości innych reaktorów, nie ma „rdzenia” ani ograniczeń wielkości, a zachowanie i wydajność reaktora zależy od tego, jak jest zbudowany i jak poszczególne części współdziałają ze sobą. +#book.rbmk.title2=Ciepło +#book.rbmk.page2=Podczas pracy reaktor będzie generował §lciepło§r. Ciepło będzie rozprzestrzeniać się między częściami, powoli zmniejszając się w trakcie. Celem jest wygenerowanie jak największej ilości ciepła bez stopienia reaktora i przekazanie ciepła do kanałów parowych, które chłodzą reaktor i wytwarzają parę. +#book.rbmk.title3=Pręt paliwowy +#book.rbmk.page3=§lPręt paliwowy§r wychwyci strumień neutronów, powodując reakcję paliwa wewnątrz pręta, uwalniając neutrony w procesie. Neutrony są uwalniane we wszystkich czterech głównych kierunkach z maksymalnym zasięgiem 5 bloków. Ilość uwolnionych neutronów zależy od użytego paliwa. +#book.rbmk.title4=Pręt regulacyjny +#book.rbmk.page4=§lPręt regulacyjny§r zmniejszy liczbę przechodzących neutronów. Całkowicie włożony zablokuje wszystkie neutrony; po włożeniu do połowy zablokuje tylko połowę. Pręty regulacyjne służą do regulacji pracy reaktora i jego wyłączania. +#book.rbmk.title5=Pręty regulacyjne - zastosowanie +#book.rbmk.page5=Bieżące wstawienie pręta zostanie wyświetlone na środku GUI. Kolorowe przyciski po lewej stronie dodadzą pasek sterowania do grupy kolorów, co jest przydatne do szybkiego wybierania zgrupowanych pasków na konsoli §lRBMK§r. Przyciski po prawej stronie umożliwiają ręczne wstawianie po 25%%. +#book.rbmk.title6=Automatyczny pręt regulacyjny +#book.rbmk.page6=§lAutomatyczne pręty regulacyjne§r są prawie identyczne jak zwykłe pręty regulacyjne, ale nie można ich regulować ręcznie, zamiast tego dostosują położenie pręta w oparciu o aktualną temperaturę. Którą funkcję użyć i jak głęboko włożyć i w jakiej temperaturze należy najpierw ustalić. +#book.rbmk.title7=Kanał parowy +#book.rbmk.page7=§lKanał parowy§r jest jedyną częścią, która będzie regularnie obniżać poziom ciepła w reaktorze. Jeśli element ma temperaturę powyżej wrzenia określonego rodzaju pary, będzie próbował zużywać tyle wody i wytwarzać tyle pary, ile potrzeba do schłodzenia poniżej temperatury wrzenia. +#book.rbmk.title8=Reflektor neutronów +#book.rbmk.page8=§lReflektor neutronów§r zablokuje przejście neutronów, zamiast tego neutrony zostaną odbite z powrotem na pręt paliwowy, z którego pochodzą. Jest on przydatny do wykorzystania neutronów, które w przeciwnym razie zostałyby zmarnowane po prostu przez opuszczenie reaktora. +#book.rbmk.title9=Pochłaniacz neutronów +#book.rbmk.page9=§lPochłaniacz neutronów§r po prostu blokuje neutrony. Zaabsorbowane neutrony nie będą generować ciepła i zostaną skutecznie zniszczone. Jest to przydatne do zapobiegania reakcji prętów paliwowych, które w przeciwnym razie byłyby w swoim zasięgu. +#book.rbmk.title10=Opóźniacz grafitowy +#book.rbmk.page10=§lModerator grafitowy§r (lub opóźniacz grafitowy) przekształca przechodzące przez niego neutrony prędkie w neutrony powolne. Większość paliw jest rozkładana na neutrony prędkie, podczas gdy neutrony powolne są potrzebne do rozszczepienia, dlatego zalecane jest stosowanie moderatorów. +#book.rbmk.title11=Kolumna strukturalna +#book.rbmk.page11=§lKolumna strukturalna§r nie wpływa w żaden sposób na neutrony i nie ma specjalnego zastosowania. Zaleca się wypełnienie reaktora słupami strukturalnymi tam, gdzie nie ma innych części, ponieważ słupy strukturalne są zdolne do przenoszenia ciepła. +#book.rbmk.title12=Konsola +#book.rbmk.page12=§lKonsola RBMK§r pozwala sterować reaktorem z daleka. Używając §lurządzenia do podłączania konsoli RBMK§r na części RBMK a następnie na konsoli połączymy reaktor i konsolę. Konsola może sterować tylko częściami 15x15, w przypadku dużych reaktorów można użyć wielu konsol. +#book.rbmk.title13=Używanie Konsoli +#book.rbmk.page13=Klikanie na części spowoduje ich zaznaczenie i odznaczenie. Za pomocą kolorowych przycisków możesz szybko wybrać wszystkie pręty regulacyjne w danej grupie kolorów. Przycisk „A” zaznaczy wszystkie drążki sterujące, „X” odznaczy wszystkie. +#book.rbmk.page14=Wpisanie liczby od 0 do 100 w zielone pole, a następnie naciśnięcie przycisku obok niego spowoduje ustawienie wszystkich wybranych drążków sterujących w tej pozycji. Przycisk „AZ-5” doprowadzi do pełnego włożenia wszystkich drążków sterujących. +#book.rbmk.title15=Paliwo +#book.rbmk.page15=Reakcja §lpaliwa§r zależy od wielu czynników. Główne z nich to §lfortyfikacja§r, §zatrucie ksenonem§r oraz liczba przychodzących §neutronów§r. Ksenon gromadzi się, gdy paliwo ma niską zawartość neutronów i spala się podczas normalnej pracy. Wydajność neutronów zależy od rodzaju, większość paliw §lnajlepiej rozdziela się przez §r §lwolne neutrony§r. +#book.rbmk.title16=Stapianie +#book.rbmk.page16=§4§lUNIKAJ. -book_lore.author=By %s -book_lore.test.name=this book doesn't work... -book_lore.test.author=me i trolled you hehe :3c -book_lore.test.page.0=>hello anons before i begin let me clarify that i'm not gay. >Be me >This night >18 > At hanging out with my best friend with my parents gone for a few days >We've been best friends for a year now >Been drinking a bit and playing lots of video games and ordered a pizza >We were having a blast >At a certain point in the night like around 9:00 he makes a really funny joke that I don't remember but I know that it made us both laugh really hard > With out thinking I brush my right hand through his semi-curly black hair and call him a funny boy >He blushes >I realize I'm feeling flustered >We're kinda close >All of the sudden he kisses me and for some reason I kiss him back >We make love >Cuddle together and fall asleep >Wake up in the middle of the night with his head snuggled up on my chest and neck area >It feels nice but I'm not a homosexual -book_lore.test.page.1=I'm typing this as he's asleep in my arms. How do I let my best friend down nicely? I don't want to be a [redacted] /b/ -book_lore.test.page.2=3 -book_lore.test.page.3=4 -book_lore.test.page.4=5 +book_lore.author=Przez % +book_lore.test.name=Test +book_lore.test.author=gostek +book_lore.test.page.1=>czesc anony zanim zaczne pozwolcie mi wyjasnic ze nie jestem gejem. >Bądź mną >W tej nocy >18 > Spędzam czas z moim najlepszym przyjacielem, gdy moi rodzice wyjechali na kilka dni >Byliśmy najlepszymi przyjaciółmi już przez rok >Trochę piliśmy, graliśmy w wiele gier i zamówiliśmy pizzę >Świetnie się bawiliśmy >W pewnym momencie, około 21:00, opowiada naprawdę zabawny żart, którego nie pamiętam, ale wiem, że bardzo nas to rozśmieszyło >Bez zastanowienia przeczesuję prawą dłonią jego na wpół kręcone czarne włosy i nazywam go zabawnym chłopem >Rumieni się >Zdaję sobie sprawę, że jestem zdenerwowany >Jesteśmy trochę blisko >Nagle mnie całuje i z jakiegoś powodu całuję go z powrotem >Robimy miłość >Przytulamy się do siebie i zasypiamy >Obudź się w środku nocy z głową przytuloną do mojej klatki piersiowej i szyi >To jest przyjemne uczucie ale nie jestem homoseksualistą +book_lore.test.page.2=Piszę to, gdy on śpi w moich ramionach. Jak ładnie zawieść mojego najlepszego przyjaciela? Nie chcę być [ZREDAGOWANO] /b/ +book_lore.test.page.3=3 +book_lore.test.page.4=4 +book_lore.test.page.5=5 -book_lore.book_iodine.name=Note +book_lore.book_iodine.name=Notatka book_lore.book_iodine.author=Dave -book_lore.book_iodine.page.0=alright you will not believe this, but old man weathervane finally managed to show up again since he left two weeks ago and what's more surprising is the fact that he actually decided to spill the beans on what they were doing in the canyon: -book_lore.book_iodine.page.1=apparently the morons from R&D discovered a compound that is mostly inorganic, pretty much like a toxin in nature, but get this: the dying cells will reproduce said toxin and excrete it through the skin, creating an aerosol that is highly contagious. -book_lore.book_iodine.page.2=it's just like a virus, but not a virus. the composition is weird, you can mix it in any household bottle but you do have to get the order right. the doc told me that the first ingredient which is just powdered iodine crystals goes into slot %d +book_lore.book_iodine.page.1=dobra, nie uwierzysz, ale stary weathervane w końcu się ponownie pojawił, odkąd wyjechał dwa tygodnie temu, a co bardziej zaskakujące, to fakt, że faktycznie zdecydował się powiedzieć, co robili w kanionie: +book_lore.book_iodine.page.2=najwyraźniej kretyni z R&D odkryli związek, który jest w większości nieorganiczny, prawie jak toksyna z natury, ale zrozum to: umierające komórki będą reprodukować tę toksynę i wydalać ją przez skórę, tworząc wysoce zaraźliwy aerozol. +book_lore.book_iodine.page.3=to jest jak wirus, ale nie wirus. skład jest dziwny, można go zmieszać w dowolnej domowej butelce, ale trzeba zachować odpowiednią kolejność. doktor powiedział mi, że pierwszy składnik, który jest po prostu sproszkowanymi kryształkami jodu, trafia do slotu %d -book_lore.book_phosphorous.name=Note +book_lore.book_phosphorous.name=Notatka book_lore.book_phosphorous.author=Dave -book_lore.book_phosphorous.page.0=heyo, it's me again. i assume you got my last memo, the doc wasn't too happy about it. i'll have to do this quick, the dunderheads from R&D are currently moaning again, probably over money. again. anyway, doc weathervane found that the second -book_lore.book_phosphorous.page.1=ingredient is red phosphorous, whihc has to be mixed into slot %d +book_lore.book_phosphorous.page.1=hej, to znowu ja. zakładam, że dostałeś moją ostatnią notatkę, doktor nie był z tego zadowolony. muszę to zrobić szybko, głupki z R&D obecnie znowu jęczą, prawdopodobnie nad pieniędzmi. znowu. w każdym razie doktor weathervane +book_lore.book_phosphorous.page.2=odkrył, że drugim składnikiem jest czerwony fosfor, który należy wmieszać w slot %d -book_lore.book_dust.name=Note +book_lore.book_dust.name=Notatka book_lore.book_dust.author=Dave -book_lore.book_dust.page.0=the doc was furious when he found out that the R&D dorks kept the one remaining sample, ranting about gross negligence this and a doomsday scenario that. i told him to chill for a minute, getting all worked up isn't good for his blood pressure, not -book_lore.book_dust.page.1=that he has much blood left to begin with. one of the R&D morons slipped some more info into last week's circular, they call their little concoction \"MKU\" whatever that means, and that it contains actual household lint. can you believe that? one of the most -book_lore.book_dust.page.2=dangerous inventions of theirs and it contains dust. strangely they also mentioned that it goes into slot %d +book_lore.book_dust.page.1=doktor był wściekły, gdy dowiedział się, że głupcy z R&D zatrzymali jedyną pozostałą próbkę, narzekając na rażące zaniedbanie to i czarny scenariusz tamto. powiedziałem mu, żeby się wyluzował przez minutę, stresowanie się nie jest dobre +book_lore.book_dust.page.2=dla jego ciśnienia krwi, nie żeby na początek zostało mu dużo krwi. jeden z kretynów się R&D wrzucił trochę więcej informacji do zeszłotygodniowego biuletynu, nazywają swoją małą miksturę \„MKU”\, cokolwiek to znaczy, i że zawiera ona +book_lore.book_dust.page.3=prawdziwe domowe kłaczki. czy możesz w to uwierzyć to? jeden z najniebezpieczniejszych ich wynalazków i zawiera kurz. dziwnie wspomnieli również, że trafia do slotu %d -book_lore.book_mercury.name=Note +book_lore.book_mercury.name=Notatka book_lore.book_mercury.author=Dave -book_lore.book_mercury.page.0=well that settles that. not counting the vomitting blood part, the toxicological report mostly resembles that of mercury poisoning. why? because our little mix also contains mercury! i just wonder where all that stuff comes from when being -book_lore.book_mercury.page.1=replicated by the body? whatever, the mercury goes into slot %d +book_lore.book_mercury.page.1=no to załatwia sprawę. nie licząc wymiotującej części krwi, raport toksykologiczny w większości przypomina zatrucie rtęcią. Dlaczego? ponieważ nasza mała mieszanka zawiera również rtęć! Zastanawiam się tylko, skąd biorą się te +book_lore.book_mercury.page.2=wszystkie rzeczy, kiedy są replikowane przez ciało? cokolwiek, rtęć trafia do slotu %d -book_lore.book_flower.name=Note +book_lore.book_flower.name=Notatka book_lore.book_flower.author=Dave -book_lore.book_flower.page.0=remember when i mentioned in my first memo that the compound is mostly anorganic? well guess what, the old man shared the fourth ingredient: ipomoea nil, a genus of flower. morning glory! it might be due to its low sulfur content, whatever might be the case, -book_lore.book_flower.page.1=it does not work with other flowers. the morning glory goes into slot %d +book_lore.book_flower.page.1=pamiętasz, jak wspomniałem w mojej pierwszej notatce, że związek jest w większości nieorganiczny? zgadnij co, starzec podzielił się czwartym składnikiem: ipomoea nil, rodzaj kwiatu. powój! może to być spowodowane niską zawartością +book_lore.book_flower.page.2=siarki, cokolwiek by nie było, nie działa z innymi kwiatami. Powój trafia do slotu %d -book_lore.book_syringe.name=Note +book_lore.book_syringe.name=Notatka book_lore.book_syringe.author=Dave -book_lore.book_syringe.page.0=a little addendum to my fifth message, obviously you have to store this MKU stuff in a container. the R&D nuts used regular metal syringes that they got from medical. surplus ware i presume, they got thousands of needles just lying around. the metal -book_lore.book_syringe.page.1=syringe goes into slot %d +book_lore.book_syringe.page.1=małe uzupełnienie do mojej piątej wiadomości, oczywiście musisz przechowywać te rzeczy MKU w pojemniku. głupki z R&D używały zwykłych metalowych strzykawek, które dostali od lekarza. nadwyżki towarów, jak przypuszczam, mają +book_lore.book_syringe.page.2=tysiące igieł leżących wokół. metalowa strzykawka trafia do gniazda %d -book_lore.resignation_note.name=Letter of Resignation +book_lore.resignation_note.name=List rezygnacyjny book_lore.resignation_note.author=Kosma -book_lore.resignation_note.page.0=Management downsized our department again yesterday. Those idiots only have themselves to blame, I don't know what they were expecting after that fiasco. Who the hell leaks that sort of information? We're losing millions and -book_lore.resignation_note.page.1=it's ME who's the one out of a job now. I'M the one being asked to resign. I hope you asshats finally learn from your overabundance of mistakes and take that stick out of your ass. -book_lore.resignation_note.page.2=I'm not coming back on Friday. Just send the paycheck. +book_lore.resignation_note.page.1=Kierownictwo ponownie zmniejszyło wczoraj nasz dział. Ci idioci są sami sobie winni, nie wiem czego oczekiwali po tym fiasku. Kto kurna ujawnia takie informacje? Tracimy miliony i +book_lore.resignation_note.page.2=to JA jestem teraz bez pracy. To ja jestem proszony o rezygnację. Mam nadzieję, że wy, dupki, w końcu nauczycie się na nadmiarze swoich błędów i wyciągniecie ten kij z dupy. +book_lore.resignation_note.page.3=Nie wracam w piątek. Po prostu wyślijcie wypłatę. -book_lore.memo_stocks.name=Intracorporate Memorandum -book_lore.memo_stocks.page.0=Investor Relations - $ $ There's been some glaring discrepancies in the figures provided for the latest quarterly report. It would be prudent for the financial department to make some adjustments, so there won't be any concern. +book_lore.memo_stocks.name=Memorandum wewnątrzkorporacyjne +book_lore.memo_stocks.page.1=Relacje inwestorskie - $ $ W liczbach przedstawionych w ostatnim raporcie kwartalnym pojawiły się rażące rozbieżności. Byłoby rozsądne, żeby dział finansowy dokonał pewnych korekt, aby nie było żadnych obaw. -book_lore.memo_schrab_gsa.name=Internal Memorandum -book_lore.memo_schrab_gsa.page.0=Contract Management - $ $ Legal has made a breakthrough with the DLA. They've awarded us with a 45 BILLION GSA Schedule for further procurement and research of saralloy. At current estimates, that would be at minimum -book_lore.memo_schrab_gsa.page.1=a 40%% profit on related operations, let alone the possibility of future contracts. Due to the confidential nature, all fiscal evidence is to remain private. +book_lore.memo_schrab_gsa.name=Memorandum wewnętrzne +book_lore.memo_schrab_gsa.page.1=Zarządzanie umowami — $ $ Dział prawny dokonał przełomu dzięki DLA. Nagrodzili nas harmonogramem 45 MILIARDÓW GSA na dalsze zakupy i badania saralloju. Przy obecnych szacunkach byłoby to co +book_lore.memo_schrab_gsa.page.2=co najmniej 40% zysku z powiązanych operacji, nie mówiąc już o możliwości przyszłych kontraktów. Ze względu na poufny charakter wszelkie dowody fiskalne mają pozostać prywatne. -book_lore.memo_schrab_rd.name=Internal Memorandum -book_lore.memo_schrab_rd.page.0=Research & Development - $ $ Our main production method of saralloy has been through the new particle accelerator. However, the energy costs are exorbitantly high compared to the amount of output. -book_lore.memo_schrab_rd.page.1=Doctor Schrabauer, however, has discovered a new interaction - called "Strange Lepton Oscillation" - that could significantly reduce costs. Through a not entirely understood process, supplied electrons are transmuted into extremely -book_lore.memo_schrab_rd.page.2=high-energy photons, through a strange charm. This is an extreme exception to many established particle conversion laws, but preliminary experiments have proved that these protons transmute into up and down quarks, eventually creating saralloy. -book_lore.memo_schrab_rd.page.3=Strangely, the prototype requires Tungsten alloyed with small amounts of saralloy. In addition, a special capacitor is required to negate the leftover positive charge. +book_lore.memo_schrab_rd.name=Memorandum wewnętrzne +book_lore.memo_schrab_rd.page.1=Działalność badawczo-rozwojowa — $ $ Naszą główną metodą produkcji saralloju jest nowy akcelerator cząstek. Jednak koszty energii są niebotycznie wysokie w porównaniu do wielkości produkcji. +book_lore.memo_schrab_rd.page.2=Doktor Schrabauer odkrył jednak nową interakcję – zwaną „Dziwną Oscylacją Leptona” – która może znacznie obniżyć koszty. W wyniku nie do końca poznanego procesu dostarczane elektrony są przekształcane +book_lore.memo_schrab_rd.page.3=w fotony o niezwykle wysokiej energii, poprzez dziwny magnes. Jest to skrajny wyjątek od wielu ustalonych praw konwersji cząstek, ale wstępne eksperymenty wykazały, że te protony przekształcają się w kwarki +book_lore.memo_schrab_rd.page.4=górne i dolne, ostatecznie tworząc saralloj. Co dziwne, prototyp wymaga stopu wolframu z niewielką ilością saralloju. Ponadto wymagany jest specjalny kondensator, aby zanegować pozostały ładunek dodatni. -book_lore.memo_schrab_nuke.name=Research Report -book_lore.memo_schrab_nuke.author=Doctor Schrabauer -book_lore.memo_schrab_nuke.page.0=Our most recent investigation led us to the effects of nuclear explosions on materials. Thanks to our grant money, we *accidentally* tested our theory on direct saralloy synthesis from uranium. -book_lore.memo_schrab_nuke.page.1=Only our cyclotron has actually created saralloy previously. However, at our underground shot at Everwerpen, miniscule traces of saralloy were found in uranium ore at the site. All pure, metallic uranium nearby had fissioned. -book_lore.memo_schrab_nuke.page.2=As such, given enough uranium ore concentrated around an explosive, or perhaps even a dirty bomb rich in waste containing fissionable material, one could hypothetically create enough saralloy to collect manually. +book_lore.memo_schrab_nuke.name=Raport z badań +book_lore.memo_schrab_nuke.author=Doktor Schrabauer +book_lore.memo_schrab_nuke.page.1=Nasze ostatnie badania doprowadziły nas do wpływu wybuchów jądrowych na materiały. Dzięki naszych przyznanych pieniędzy *przypadkowo* przetestowaliśmy naszą teorię na temat bezpośredniej syntezy saralloju z uranu. Tylko nasz cyklotron +book_lore.memo_schrab_nuke.page.2=faktycznie stworzył wcześniej saralloj. Jednak podczas naszego podziemnego ujęcia w Everwerpen w rudzie uranu znaleziono maleńkie ślady saralloju. Cały czysty, metaliczny uran w pobliżu uległ rozszczepieniu. W związku z tym, mając +book_lore.memo_schrab_nuke.page.3=wystarczającą ilość rudy uranu skoncentrowanego wokół materiału wybuchowego, a może nawet brudną bombę bogatą w odpady zawierające materiał rozszczepialny, można hipotetycznie stworzyć wystarczającą ilość saralloju, aby zebrać go ręcznie. -book_lore.bf_bomb_1.name=Private Notes +book_lore.bf_bomb_1.name=Prywatne notatki book_lore.bf_bomb_1.author=M. Porter -book_lore.bf_bomb_1.page.0=Took long enough, but my transfer was accepted. Those new grads were already hard to handle, let alone all the unprofessionalism of the lead. $ Not all good news - this lab was withholding further detail, and I didn't need more chaos over another magic new discovery. -book_lore.bf_bomb_1.page.1=Of course that was the case. The alumni had their doubts (surprising, considering how bright-eyed they were), but my only... competent? colleague actually got his hands on the primer hand-out. Must have more connections than I thought. His memo is discouraging: -book_lore.bf_bomb_1.page.2=apparently, there's yet ANOTHER miracle material that they prodded out of some concoction of antimatter and a fringe isotope. The brochure calls it "SWIRLMAT" - hell if I know - and that's it. No wonder they wanted a theoretical physicist, -book_lore.bf_bomb_1.page.3=they don't even know what it is yet. Either way, practically any job would be better than my old position, so I can't complain much about sketchiness. +book_lore.bf_bomb_1.page.0=Trwało to wystarczająco długo, ale mój transfer został zaakceptowany. Z tymi nowymi absolwentami było już trudno sobie poradzić, nie mówiąc już o całym nieprofesjonalizmie prowadzącego. $ Nie wszystkie są dobre wieści – to laboratorium ukrywało dalsze szczegóły, a ja nie potrzebowałem więcej chaosu do kolejnego magicznego nowego odkrycia. +book_lore.bf_bomb_1.page.1=Oczywiście tak było. Absolwenci mieli wątpliwości (zaskakujące, zważywszy na ich bystre oczy), ale mój jedyny... kompetentny? kolega faktycznie dostał w swoje ręce rozdawanie elementarzów. Musi mieć więcej połączeń, niż myślałem. Jego notatka jest zniechęcająca: +book_lore.bf_bomb_1.page.2=najwyraźniej istnieje jeszcze KOLEJNY cudowny materiał, który wydobyli z jakiejś mikstury antymaterii i izotopu brzegowego. Broszura nazywa to „SWIRLMAT” – do diabła, jeśli wiem – i to wszystko. Nic dziwnego, że chcieli fizyka teoretyka, +book_lore.bf_bomb_1.page.3=jeszcze nawet nie wiedzą, co to jest. Tak czy inaczej, praktycznie każda praca byłaby lepsza niż moje stare stanowisko, więc nie mogę narzekać na szkicowość. -book_lore.bf_bomb_2.name=Private Notes +ook_lore.bf_bomb_2.name=Prywatne notatki book_lore.bf_bomb_2.author=M. Porter -book_lore.bf_bomb_2.page.0=Despite the absence of information in that primer, I still had some hope they knew a bit more. Not at all. Every other senior researcher has a blind faith in this material; their propositions were practically biblical. I was near speechless. -book_lore.bf_bomb_2.page.1=And yet I can't even blame them. Swirlmat makes no goddamn sense - it is completely unlike any other substance I've seen before. Its appearance was near frightening, a literal mass of swirling colors, with darker lines permeating through the neon green surface. -book_lore.bf_bomb_2.page.2=Even worse, this thing is an energy source. The existence of our sample is a violation of ALARA: the lab was vacated when it arrived, and the only person brave enough (one Dr. Melfyn) donned a level A hazmat just to carry it 20 meters. -book_lore.bf_bomb_2.page.3=The empirical data isn't better, as we're breaking the first law of thermodynamics with how much energy it radiates. Being anywhere near that thing - even behind a meter of lead - was terrifying. We sprinted out of the chamber upon conclusion of the spectroscopy -book_lore.bf_bomb_2.page.4=and we got nothing new out of it. Those idiots in the science team, god, did not even waver after all that. Sitting through those "discussions" was horrible; that quack of a head researcher even rumored that the test ban would be lifted, that we could be -book_lore.bf_bomb_2.page.5=building bombs out of the shit in the coming weeks, who in their right mind would work on that? Hell, the one sane assistant (an Andrew) nicknamed it "balefire" - because burning to death on a funeral pyre would be painless by comparison. +book_lore.bf_bomb_2.page.0=Pomimo braku informacji w tym elementarzu, wciąż miałem nadzieję, że wiedzą nieco więcej. Zupełnie nie. Co drugi starszy badacz ma ślepą wiarę w ten materiał; ich propozycje były praktycznie biblijne. Prawie zaniemówiłem. +book_lore.bf_bomb_2.page.1=A jednak nie mogę ich nawet winić. Swirlmat nie ma cholernego sensu - jest zupełnie inny niż jakakolwiek inna substancja, którą wcześniej widziałem. Jego wygląd był niemal przerażający, dosłowna masa wirujących kolorów, z ciemniejszymi liniami przenikającymi przez neonowozieloną powierzchnię. +book_lore.bf_bomb_2.page.2=Co gorsza, to coś jest źródłem energii. Istnienie naszej próbki jest pogwałceniem ALARA: laboratorium zostało opuszczone, kiedy przybyła, a jedyna osoba na tyle odważna (niejaki dr Melfyn) przywdziała hazmat poziomu A tylko po to, by przenieść go na 20 metrów. +book_lore.bf_bomb_2.page.3=Dane empiryczne nie są lepsze, ponieważ łamiemy pierwszą zasadę termodynamiki, określając ilość emitowanej energii. Bycie w pobliżu tego czegoś - nawet za metrem ołowiu - było przerażające. Po zakończeniu spektroskopii wybiegliśmy z komory +book_lore.bf_bomb_2.page.4=i nie uzyskaliśmy z niej nic nowego. Ci idioci z zespołu naukowego, Boże, nawet się nie wahali po tym wszystkim. Siedzenie podczas tych „dyskusji” było okropne; ten znachor naczelny badacz nawet plotkował, że zakaz testów zostanie zniesiony, że w nadchodzących tygodniach +book_lore.bf_bomb_2.page.5=możemy budować bomby z gówna, kto przy zdrowych zmysłach by nad tym pracował? Do diabła, jedyny zdrowy na umyśle asystent (Andrew) nazwał to „balefire” – ponieważ spalenie na stosie pogrzebowym byłoby w porównaniu z tym bezbolesne. -book_lore.bf_bomb_3.name=Private Notes +book_lore.bf_bomb_3.name=Prywatne notatki book_lore.bf_bomb_3.author=M. Porter -book_lore.bf_bomb_3.page.0=The team and I have made some breakthroughs. Emphasis on the separation - isolating myself from the more devout has made working there so much more bearable. While we still have no idea about the actual properties of balefire (it's difficult to analyze -book_lore.bf_bomb_3.page.1=a sample that fries your equipment) its interactions with other matter has proved fruitful. Notably, they synthesized a "gaseous" form: Andrew, of all people, informed me that it was really a colloid consisting of microscopic balefire particles, suspended in some -book_lore.bf_bomb_3.page.2=noble gas. Each particle is enveloped by a positively-charged 'bubble' of ionized gas, preventing it from settling. Who could've guessed that fatal gamma radiation had a benefit? Not me. $ I'm choosing not to think about how they transformed the sample into -book_lore.bf_bomb_3.page.3=particulate, but I can't understate the utility of this gaseous balefire - it's made it much safer to experiment on. $ Speaking of safety, the head researcher (in an act of callous disregard) made a discovery that also nearly took his head off. -book_lore.bf_bomb_3.page.4=He decided to get "dirty" by letting a cell of our new colloid interact directly with some very expensive antimatter: the resulting explosion turned the table it was on into a piece of radiation-bleached slag, carved a near-perfect hemisphere through -book_lore.bf_bomb_3.page.5=the top, and gave the head a healthy dose of ARS. I guess we know how to make it explode now, but god, some people... +book_lore.bf_bomb_3.page.0=Wraz z zespołem dokonaliśmy kilku przełomów. Nacisk na separację - odizolowanie się od bardziej pobożnych sprawiło, że praca tam była o wiele bardziej znośna. Chociaż nadal nie mamy pojęcia o rzeczywistych właściwościach balefire (trudno jest przeanalizować +book_lore.bf_bomb_3.page.1=próbkę, która smaży twój sprzęt), jego interakcje z inną materią okazały się owocne. Warto zauważyć, że zsyntetyzowali formę „gazową”: ze wszystkich ludzi Andrew poinformował mnie, że tak naprawdę był to koloid składający się z mikroskopijnych cząsteczek ognia zawieszonych w jakimś +book_lore.bf_bomb_3.page.2=szlachetnym gazie. Każda cząsteczka jest otoczona przez dodatnio naładowany „bąbel” zjonizowanego gazu, który zapobiega jego osiadaniu. Kto mógł przypuszczać, że śmiertelne promieniowanie gamma przynosi korzyści? Nie ja. $ Wolę nie myśleć o tym, jak +book_lore.bf_bomb_3.page.3=przekształcili próbkę w cząsteczkę, ale nie mogę nie docenić użyteczności tego gazowego balefire — znacznie bezpieczniej jest na nim eksperymentować. $ Mówiąc o bezpieczeństwie, główny badacz (w akcie bezdusznego lekceważenia) dokonał odkrycia, które również prawie urwało mu głowę. +book_lore.bf_bomb_3.page.4=Postanowił „zabrudzić” komórkę naszego nowego koloidu bezpośrednią interakcją z jakąś bardzo kosztowną antymaterią: wynikająca z tego eksplozja zamieniła stół, na którym stał, w kawałek wybielonego promieniowaniem żużla, wyrzeźbiła prawie idealną półkulę na górze i +book_lore.bf_bomb_3.page.5=dał głowie zdrową dawkę ARS. Chyba już wiemy, jak sprawić, by wybuchła, ale Boże, niektórzy ludzie... -book_lore.bf_bomb_4.name=Private Notes +book_lore.bf_bomb_4.name=Prywatne notatki book_lore.bf_bomb_4.author=M. Porter -book_lore.bf_bomb_4.page.0=I just can't escape my old work. They're the only place that's hiring despite all this godforsaken turmoil, but I'm not going back into that hole. $ They only tempted me because I need out, fast. Remember that atmospheric testing treaty we withdrew from a week ago? -book_lore.bf_bomb_4.page.1=Well, the dipshit in charge of our lab got something right for once. The denunciation came with a flurry of new "scientists" joining, just so we could weaponize balefire. The lack of critical thought here is honestly baffling - bless him, Andrew even jumped ship the -book_lore.bf_bomb_4.page.2=second the first fucking BOMB DESIGN was drafted. That ass Melfyn looked so happy with his little mechanism - perhaps he got brainworms from carrying that sample? - which involved some stupid shit using the solidified, base balefire and an HV -book_lore.bf_bomb_4.page.3=battery. $ Apparently, the form matters for energy output and activation method or whatever, kind of like uranium versus plutonium in regular nukes, but the end result is an initial shock starting the explosion. I find it funny, hilarious even. -book_lore.bf_bomb_4.page.4=All of them place such emphasis on the activation; they ignore the actual mechanism of it all because they don't have a single clue how it works! It may as well be magic at this point, and yet they're still trying to twist and bend it - just for more weapons of war. +book_lore.bf_bomb_4.page.0=Po prostu nie mogę uciec od mojej starej pracy. To jedyne miejsce, które zatrudnia pomimo całego tego zapomnianego przez Boga zamieszania, ale nie wrócę do tej dziury. $ Kusili mnie tylko dlatego, że muszę wyjść, i to szybko. Pamiętasz traktat o testach atmosferycznych, z którego wycofaliśmy się tydzień temu? +book_lore.bf_bomb_4.page.1=Cóż, ten dupek odpowiedzialny za nasze laboratorium, chociaż raz coś załatwił. Potępienie przyszło wraz z falą nowych „naukowców”, którzy dołączyli tylko po to, abyśmy mogli użyć balefire jako broni. Brak krytycznej myśli tutaj jest naprawdę zdumiewający – niech go Bóg błogosławi, Andrew nawet wyskoczył z zespołu +book_lore.bf_bomb_4.page.2=w chwili, gdy powstał pierwszy pierdolony PROJEKT BOMBY. Ten dupek Melfyn wyglądał na bardzo zadowolonego ze swojego małego mechanizmu – może zaraził się robakami mózgowymi od noszenia tej próbki? – co wiązało się z jakimś głupim gównem, używając zestalonego, podstawowego balefire i baterii HV. +book_lore.bf_bomb_4.page.3=Najwyraźniej forma ma znaczenie dla produkcji energii i metody aktywacji czy czegokolwiek, trochę jak uran kontra pluton w zwykłych bombach atomowych, ale końcowym rezultatem jest początkowy szok rozpoczynający eksplozję. Wydaje mi się to zabawne, śmieszne nawet. +book_lore.bf_bomb_4.page.4=Wszyscy kładą taki nacisk na aktywację; ignorują rzeczywisty mechanizm tego wszystkiego, ponieważ nie mają pojęcia, jak to działa! W tym momencie równie dobrze może to być magia, a mimo to wciąż próbują ją przekręcać i naginać – tylko po to, by uzyskać więcej broni wojennej. -book_lore.bf_bomb_5.name=Private Notes +book_lore.bf_bomb_5.name=Prywatne notatki book_lore.bf_bomb_5.author=M. Porter -book_lore.bf_bomb_5.page.0=I just... can't come to grips with it, even days after. It was a foregone conclusion, really, with how flippant the science team was with safety. $ $ Doctor Melfyn, M.S., is gone. Dead, maybe. I saw it happen before my own eyes, in their test chamber. -book_lore.bf_bomb_5.page.1=We had just gotten another batch of pure balefire, and he had recovered electrical equipment and an energy source to test his proposal. I don't know what caused it (was the power on? had he begun too soon?), but it seemingly progressed in agonizingly slow motion, -book_lore.bf_bomb_5.page.2=as the green-tinted light consumed the table, the battery, and Dr. Melfyn standing only a meter away. Even when the table had degraded into a pool of broiling metal on the floor, he did not burn. I don't know what I saw in his eyes... $ $ Terror, or awe -book_lore.bf_bomb_5.page.3=over his continued survival, maybe? Whatever our "miracle" material was, it didn't care. With a bright blaze of light, he disappeared in the next moment. Was he evaporated? incinerated? annihilated? sent to fucking hell itself, I don't know anymore! -book_lore.bf_bomb_5.page.4=The head researcher sickens me. Said we could be more careful, keep trucking, whatever other morale-improving filth he spewed. That dipshit won't ever figure out that playing with fire will get you burned. $ I didn't bother -book_lore.bf_bomb_5.page.5=resigning, I just grabbed my shit and ran for the hills. Not like it matters, anyway; considering the lack of calls, and the mushroom cloud that rose over my (now former) workplace, they've either blown everything up or entered full-on military jurisdiction. -book_lore.bf_bomb_5.page.6=There's a vital distinction to be made between dissection and VIVISECTION, one which was clearly lost on them. They can dissect metal or atoms as much as they like, but tearing into, vivisecting reality itself is only going to end in more Dr. Melfyns. Who knows! -book_lore.bf_bomb_5.page.7=The government wants to put this shit into bombs after all, maybe we'll see a couple more wars, couple more million resigned to a fate worse than death. They can't hide this forever. $ $ I don't care. Not anymore. Please, god, let me go back -book_lore.bf_bomb_5.page.8=to actual science. $ $ Goddamnit, Mae, get ahold of yourself... +book_lore.bf_bomb_5.page.0=Po prostu... nie mogę się z tym pogodzić, nawet kilka dni później. To było z góry przesądzone, biorąc pod uwagę to, jak lekceważący był zespół naukowy w kwestii bezpieczeństwa. $ $ Doktor Melfyn, MS, odszedł. Martwy, być może. Widziałem to na własne oczy, w ich komorze testowej. +book_lore.bf_bomb_5.page.1=Właśnie dostaliśmy kolejną partię czystego balefire, a on odzyskał sprzęt elektryczny i źródło energii, aby przetestować swoją propozycję. Nie wiem, co to spowodowało (czy zasilanie było włączone? czy zaczął za wcześnie?), ale wydawało się, że postępowało to w boleśnie zwolnionym tempie, +book_lore.bf_bomb_5.page.2=gdy zielone światło pochłonęło stół, baterię i stojącego tylko doktora Melfyna metr dalej. Nawet kiedy stół zamienił się w kałużę płonącego metalu na podłodze, nie płonął. Nie wiem, co widziałem w jego oczach... $ $ Przerażenie, czy podziw +book_lore.bf_bomb_5.page.3=dla jego dalszego przetrwania? Czymkolwiek był nasz „cudowny” materiał, nie obchodziło go to. Z jasnym blaskiem światła zniknął w następnej chwili. Czy został odparowany? spalony? unicestwiony? wysłany do samego jebanego piekła, sam już nie wiem! +book_lore.bf_bomb_5.page.4=Główny badacz mnie wkurza. Powiedział, że moglibyśmy być bardziej ostrożni, dalej jeździć ciężarówkami, niezależnie od innych poprawiających morale brudów, które wypluł. Ten dupek nigdy się nie domyśli, że przez igranie z ogniem może się poparzyć. $ $ Nie zawracałem sobie głowy +book_lore.bf_bomb_5.page.5=rezygnacją, po prostu złapałem swoje pierdoły i odszedłem. W każdym razie nie ma to znaczenia; biorąc pod uwagę brak telefonów i chmurę grzybową, która unosiła się nad moim (teraz byłym) miejscem pracy, albo wszystko wysadzili w powietrze, albo wkroczyli w pełną jurysdykcję wojskową. +book_lore.bf_bomb_5.page.6=Należy dokonać istotnego rozróżnienia między sekcją a WISEKCJĄ, które najwyraźniej zostało przez nich pominięte. Mogą przeprowadzać sekcję metalu lub atomów, ile chcą, ale wdzieranie się w rzeczywistość i wiwisekcja samej rzeczywistości zakończy się tylko większą liczbą doktorów Melfynów. Kto wie! +book_lore.bf_bomb_5.page.7=Rząd chce w końcu wpakować to gówno w bomby, może zobaczymy jeszcze parę wojen, parę milionów pogodzonych z losem gorszym od śmierci. Nie mogą tego wiecznie ukrywać. $ $ Nie obchodzi mnie to. Nigdy więcej. Proszę, Boże, pozwól mi wrócić +book_lore.bf_bomb_5.page.8=do prawdziwej nauki. $ $ Do diabła, Mae, weź się w garść... -cannery.f1=[ Press F1 for help ] - -cannery.centrifuge=Wirówka Gazowa -cannery.centrifuge.0=Gas centrifuges can be supplied with fluid using regular fluid ducts. -cannery.centrifuge.1=Most recipes require multiple centrifuges. The intermediate products cannot be transported via pipes. -cannery.centrifuge.2=This side acts as a connector which outputs the intermediate product into an adjacent centrifuge. -cannery.centrifuge.3=Uranium hexafluoride can be processed with just two centrifuges, this however will produce Uranium fuel and Uranium-238. -cannery.centrifuge.4=Fully processing it into Uranium-235 and Uranium-238 requires a total of four centrifuges. -cannery.centrifuge.5=Some recipes also require the centrifuge overclocking upgrade. +book_lore.beacon.name=Instrukcja obsługi sygnalizatora świetlnego +book_lore.beacon.author=Flim Flam Industries +book_lore.beacon.page.0=Dziękujemy za zakup Podświetlanego Sygnalizatora Świetlnego Mk.2 (wer. 1.3)! Ta niewielka książeczka zawiera krótkie wprowadzenie do działania sygnalizatora, a także jego wewnętrznego działania. +book_lore.beacon.page.1=Rozdział 1: Architektura $ Każda jednostka składa się z czterech głównych części: Obwodu sterującego, latarni, syreny mgłowej oraz obudowy, w której znajdują się pozostałe części. Szczegółowe objaśnienie obwodu głównego +book_lore.beacon.page.2=znajduje się na schemacie obwodu znajdującym się po wewnętrznej stronie pokrywy serwisowej obudowy. Latarnia składa się z poliwęglanowej obudowy zawierającej dwukolorową żarówkę halogenową o mocy 250 W ze standardowym gniazdem 200 mm, zamienniki +book_lore.beacon.page.3=żarówki można zamówić w naszych sklepach. Żarówki innych firm nie są zalecane, ponieważ nie możemy zapewnić bezpiecznego działania. Obudowa wykonana jest ze specjalistycznej stali nierdzewnej ocynkowanej i jest odporna na warunki atmosferyczne. +book_lore.beacon.page.4=Rozdział 2: Latarnia $ Podstawowym zastosowaniem latarni jest zapewnienie światła w celu ułatwienia konserwacji w trudnych warunkach pogodowych oraz wskaźnik stanu. Jeśli autotest po włączeniu zasilania (POST) zakończy się niepowodzeniem, latarnia +book_lore.beacon.page.5=zaświeci się na czerwono, w przeciwnym razie zaświeci się na zielono. Należy pamiętać, że kolory mogą się różnić w zależności od żarówki zastępczej. +book_lore.beacon.page.6=Rozdział 3: Syrena mgłowa $ Syrena mgłowa jest głównym urządzeniem komunikacyjnym sygnalizatora. Sygnalizator jest przeznaczony do komunikacji peer-to-peer (P2P), jak również do rozgłaszania wiadomości. +book_lore.beacon.page.7=Rozdział 4: Peer-to-Peer $ Szczegółowe informacje na temat komunikacji można znaleźć w podręczniku komunikacji. Krótki opis nawiązywania połączenia P2P jest następujący: Najpierw sygnalizator musi dać sygnał „ROZPOCZNIJ POŁĄCZENIE”, +book_lore.beacon.page.8=w postaci pojedynczego, długiego dźwięku. Wszyscy dostępni partnerzy również powinni odpowiedzieć jednym długim tonem (kolejność określona przez odległość, a także wytyczne dotyczące komunikacji opisane w podręczniku, sekcja „Odpowiadanie na połączenie”) +book_lore.beacon.page.9=Gdy żądany peer odpowie, daj „AKCEPTUJ POŁĄCZENIE”. sygnału, składającego się z dwóch długich tonów, peer również odpowie dwoma długimi tonami. Cała późniejsza komunikacja musi odbywać się przy użyciu wstępnie wynegocjowanych sygnałów, +book_lore.beacon.page.10=najczęściej przy użyciu standardu FAR-5M. Komunikacja zakończy się natychmiast, jeśli nie wynegocjowano żadnego standardu, służąc jako „ping”. Jeśli komunikacja będzie kontynuowana, połączenie można zakończyć kolejnym długim pojedynczym tonem „KONIEC POŁĄCZENIA”. +book_lore.beacon.page.11=Rozdział 5: Gwarancja $ [ strona celowo pozostawiona pusta ] +cannery.f1=[ Naciśnij F1 aby uzyskać pomoc ] +cannery.centrifuge=Wirówka wzbogacająca +cannery.centrifuge.0=Wirówki wzbogacające mogą być uzupełnione gazem za pomocą zwykłych przewodów płynowych. +cannery.centrifuge.1=Większość receptur wymaga wielu wirówek. Produkty pośrednie nie mogą być transportowane rurami. +cannery.centrifuge.2=Ta strona działa jak łącznik, który wyprowadza produkt pośredni do sąsiedniej wirówki. +cannery.centrifuge.3=Heksafluorek uranu można przetwarzać za pomocą zaledwie dwóch wirówek, co jednak spowoduje wytworzenie paliwa uranowego i uranu-238. +cannery.centrifuge.4=Pełne przetworzenie go na uran-235 i uran-238 wymaga łącznie czterech wirówek. +cannery.centrifuge.5=Niektóre przepisy wymagają również ulepszenia przetaktowywania wirówki. cannery.crucible=Tygiel -cannery.crucible.0=The crucible is used to smelt ores, ingots or other metallic items for alloying and to cast them into different shapes. -cannery.crucible.1=It requires an external heat source connected to the bottom, like a firebox. -cannery.crucible.2=Once heated up, the crucible can be used in two ways, with or without a recipe template. -cannery.crucible.3=The crucible has two storage buffers for material: -cannery.crucible.4=The buffer to the left is for §abyproducts§r, all material smelted without a recipe template will land here. -cannery.crucible.5=If a recipe is installed, materials that do not match the recipe will also be stored here. -cannery.crucible.6=Materials in this buffer will not react with each other, they can only be output from the green outlet for casting. -cannery.crucible.7=The buffer to the right is for §crecipes§r, if a recipe is installed and that particular material is relevant to that recipe, it will land here. -cannery.crucible.8=The materials will slowly combine into the output material which is automatically output from the red outlet. -cannery.crucible.9=Note that only this buffer handles recipes. If a template is installed retroactively, materials in the byproduct buffer will not combine, nor transfer to the recipe buffer. -cannery.crucible.10=The outlet will output material automatically, if the target is valid, for example a foundry channel or a mold. -cannery.crucible.11=As with all foundry blocks, a shovel can be used to remove all material from the crucible. +cannery.crucible.0=Tygiel służy do wytapiania rud, sztabek lub innych metalowych przedmiotów do stopowania i odlewania ich w różne kształty. +cannery.crucible.1=Wymaga zewnętrznego źródła ciepła podłączonego od dołu, takiego jak palenisko. +cannery.crucible.2=Po podgrzaniu tygla można używać na dwa sposoby, z szablonem receptury lub bez niego. +cannery.crucible.3=Tygiel posiada dwa bufory do przechowywania materiału: +cannery.crucible.4=Bufor po lewej stronie przeznaczony jest na §aprodukty uboczne§r, wszystkie materiały wytopione bez szablonu receptury wylądują tutaj. +cannery.crucible.5=Jeśli umieszczony jest przepis, w tym miejscu będą również przechowywane materiały niezgodne z recepturą. +cannery.crucible.6=Materiały w tym buforze nie będą ze sobą reagowały, można je tylko wyprowadzać z zielonego wylotu do odlewania. +cannery.crucible.7=Bufor po prawej stronie jest przeznaczony na §cprzepisy§r, jeśli receptura jest zainstalowana i dany materiał jest odpowiedni dla tej receptury, wyląduje tutaj. +cannery.crucible.8=Materiały będą powoli łączyć się w materiał wyjściowy, który jest automatycznie wyprowadzany z czerwonego wylotu. +cannery.crucible.9=Zauważ, że tylko ten bufor obsługuje receptury. Jeśli szablon zostanie umieszczony wstecz, materiały w buforze produktów ubocznych nie będą się łączyć ani przenosić do bufora receptur. +cannery.crucible.10=Wylot automatycznie wyprowadza materiał, jeśli cel jest prawidłowy, na przykład kanał odlewniczy lub forma. +cannery.crucible.11=Podobnie jak w przypadku wszystkich bloków odlewniczych, do usunięcia całego materiału z tygla można użyć łopaty. cannery.fensu=FEnSU -cannery.fensu.0=The FEnSU is capable of storing absurd amounts of energy, over 9EHE (that's a nine followed by 18 zeros). -cannery.fensu.1=There is only one energy connector which can be found on the bottom. -cannery.fensu.2=This is also the only place where the FEnSU can receive a redstone signal. +cannery.fensu.0=FEnSU jest w stanie przechowywać absurdalne ilości energii, ponad 9EHE (to jest dziewiątka i 18 zer). +cannery.fensu.1=Jest tylko jedno złącze zasilania, które się znajduje na spodzie. +cannery.fensu.2=Jest to również jedyne miejsce, w którym FEnSU może odbierać sygnał z czerwonego kamienia. cannery.firebox=Palenisko -cannery.firebox.0=The firebox burns flammable items to generate heat. -cannery.firebox.1=It can burn any flammable item, although higher quality fuels such as coal, coke and solid fuel burn longer and hotter. -cannery.firebox.2=Heat is given off by the copper contact at the top of the firebox. Machines with an identical contact on the bottom can receive heat by being placed on top of the firebox. -cannery.firebox.3=If heat isn't being used up and the heat buffer becomes full, the firebox will shut off to prevent wasting of fuel. -cannery.firebox.4=One such machine is the stirling engine, which will turn heat directly into energy. +cannery.firebox.0=Palenisko spala łatwopalne przedmioty w celu wytworzenia ciepła. +cannery.firebox.1=Może spalić każdy łatwopalny przedmiot, chociaż paliwa wyższej jakości, takie jak węgiel, koks i paliwo stałe, palą się dłużej i mają wyższą temperaturę. +cannery.firebox.2=Ciepło jest oddawane przez miedziany styk w górnej części paleniska. Maszyny z identycznym stykiem na spodzie mogą odbierać ciepło po umieszczeniu na górze paleniska. +cannery.firebox.3=Jeśli ciepło nie jest zużywane, a bufor ciepła się zapełni, palenisko wyłączy się, aby zapobiec marnowaniu paliwa. +cannery.firebox.4=Jedną z takich maszyn jest silnik Stirlinga, który zamienia ciepło bezpośrednio w energię. -cannery.foundryChannel=Kanał Hutniczy -cannery.foundryChannel.0=Foundry channels are used to transport molten material from a crucible or storage tank into molds. -cannery.foundryChannel.1=Channels can receive material either by pouring from the top - via an outlet or directly from a crucible - or from the side from other channels. -cannery.foundryChannel.2=When transporting materials, channels will prioritize blocks like outlets and shallow molds. -cannery.foundryChannel.3=When it cannot supply an outlet or a mold, the material will then flow into a neighboring channel. -cannery.foundryChannel.4=Leftover material can be removed by using a shovel. +cannery.foundryChannel=Kanał odlewniczy +cannery.foundryChannel.0=Kanały odlewnicze służą do transportu stopionego materiału z tygla lub zbiornika magazynowego do form. +cannery.foundryChannel.1=Kanały mogą przyjmować materiał zarówno od góry - przez wylot lub bezpośrednio z tygla - lub z boku z innych kanałów. +cannery.foundryChannel.2=Podczas transportu materiałów kanały będą priorytetowały bloki takie jak wyloty i płytkie formy. +cannery.foundryChannel.3=Gdy nie może dostarczyć wylotu lub formy, materiał popłynie do sąsiedniego kanału. +cannery.foundryChannel.4=Pozostałości można usunąć za pomocą łopaty. -cannery.silex=FEL & SILEX -cannery.silex.0=The Free Electron Laser (FEL) uses energy and a laser crystal to create a powerful laser beam. -cannery.silex.1=Be careful, as the laser will burn/melt through weaker blocks... -cannery.silex.2=...but not blast-proof ones. -cannery.silex.3=The FEL is used to power the Laser Isotope Separation Chamber (SILEX). The FEL and SILEX have to be at least two blocks apart. -cannery.silex.4=The laser has to enter through the glass openings of the SILEX. Aiming it wrong could destroy it. -cannery.silex.5=The openings on the sides can be used to connect fluid ducts to the SILEX. -cannery.silex.6=In addition to the two connectors on the sides, there is a third hidden connector at the bottom from which items can be extracted. -cannery.silex.7=Each recipe requires a specific laser type. Using a stronger type than required will process items faster. -cannery.silex.8=One FEL can supply up to 5 SILEX. Each SILEX has to be one block apart from one another. +cannery.silex=FEL i SILEX +cannery.silex.0=Laser na swobodnych elektronach (FEL) wykorzystuje energię i kryształ lasera do wytworzenia potężnej wiązki laserowej. +cannery.silex.1=Uważaj, bo laser będzie palić/topić słabsze bloki... +cannery.silex.2=...ale nie przeciwwybuchowe. +cannery.silex.3=FEL służy do zasilania laserowej komory separacji izotopów (SILEX). FEL i SILEX muszą być oddalone od siebie o co najmniej dwa bloki. +cannery.silex.4=Laser musi wejść przez szklane otwory SILEX. Niepoprawne wycelowanie może go zniszczyć. +cannery.silex.5=Otwory po bokach można wykorzystać do podłączenia przewodów płynowych do SILEX. +cannery.silex.6=Oprócz dwóch złączy po bokach, na dole znajduje się trzecie ukryte złącze, z którego można wyciągać przedmioty. +cannery.silex.7=Każda receptura wymaga określonego typu lasera. Użycie mocniejszego typu niż wymagany spowoduje szybsze przetwarzanie elementów. +cannery.silex.8=Jeden FEL może zasilać do 5 SILEX. Każdy SILEX musi być oddalony od siebie o jeden blok. cannery.stirling=Silnik Stirlinga -cannery.stirling.0=The Stirling engine uses heat energy from external sources to create power. -cannery.stirling.1=It needs to be placed on top of a heat-producing machine, such as the firebox. -cannery.stirling.2=The amount of heat it can utilize however is limited, overspinning can lead to catastrophic malfunction. -cannery.stirling.3=The upgraded version can take significantly more heat without breaking. +cannery.stirling.0=Silnik Stirlinga wykorzystuje energię cieplną z zewnętrznych źródeł do wytwarzania mocy. +cannery.stirling.1=Musi być umieszczony na maszynie wytwarzającej ciepło, takiej jak palenisko. +cannery.stirling.2=Ilość ciepła, którą może wykorzystać, jest jednak ograniczona, nadmierne kręcenie może prowadzić do katastrofalnej awarii. +cannery.stirling.3=Ulepszona wersja może wytrzymać znacznie więcej ciepła bez psucia się. -cannery.willow=Wierzba Musztardowa -cannery.willow.0=The mustard willow is a plant that allows cadmium metal to be harvested. -cannery.willow.1=Willows can be placed on dirt, grass or even dead/oily dirt, but they require water to grow. -cannery.willow.2=Willows can be fertilized with bone meal or industrial fertilizer. They do not need light to grow. -cannery.willow.3=After the second stage of growth, they will need an extra block of space above them to grow further. -cannery.willow.4=After the fourth stage of growth, they require dead or oily dirt below them. -cannery.willow.5=This can be done either by manually planting willows on dead/oily dirt, or by having a hydraulic fracking tower nearby which continuously contaminates the ground. -cannery.willow.6=After reaching the final stage, the willow will remove contamination from the ground, reverting the dead/oily dirt back into regular dirt. -cannery.willow.7=Now the willow's leaves can be harvested. Breaking the top block will drop a small willow plant, 3-6 leaves and keep the bottom part of the plant intact. -cannery.willow.8=Soon the plant will start growing again, yielding more leaves if the dirt is replaced with oily dirt. The leaves can be processed into cadmium powder using an ore acidizer. -cannery.willow.9=Harvesting willow leaves can be automated using the automatic buzzsaw, it will only break plants that are ready for harvest. +cannery.willow=Wierzba musztardowa +cannery.willow.0=Wierzba musztarda to roślina, która umożliwia pozyskiwanie kadmu metalicznego. +cannery.willow.1=Wierzby można sadzić na ziemi, trawie, a nawet martwej/oleistej ziemi, ale do wzrostu potrzebują wody. +cannery.willow.2=Wierzby można nawozić mączką kostną lub nawozem przemysłowym. Nie potrzebują światła do wzrostu. +cannery.willow.3=Po drugim etapie wzrostu będą potrzebować dodatkowego bloku przestrzeni nad nimi, aby dalej rosnąć. +cannery.willow.4=Po czwartej fazie wzrostu wymagają pod nimi martwej lub oleistej ziemi. +cannery.willow.5=Można to zrobić albo ręcznie sadząc wierzby na martwej/oleistej glebie, albo mając w pobliżu wieżę do szczelinowania hydraulicznego, która stale zanieczyszcza ziemię. +cannery.willow.6=Po osiągnięciu ostatniego etapu wierzba usunie zanieczyszczenia z ziemi, zamieniając martwą/oleistą ziemię z powrotem w zwykłą ziemię. +cannery.willow.7=Teraz można zbierać liście wierzby. Złamanie górnego bloku spowoduje upuszczenie małej wierzby, 3-6 liści i zachowanie dolnej części rośliny w nienaruszonym stanie. +cannery.willow.8=Wkrótce roślina zacznie ponownie rosnąć, wydając więcej liści, jeśli ziemia zostanie zastąpiona oleistą ziemią. Liście można przetwarzać na proszek kadmu za pomocą zakwaszacza rud. +cannery.willow.9=Zbiór liści wierzby można zautomatyzować za pomocą automatycznej piły tarczowej, która łamie tylko rośliny gotowe do zbioru. -chem.ARSENIC=Ekstrakcja Arsenu -chem.ASPHALT=Produkcja Asfaltu -chem.BAKELITE=Produkcja Bakelitu +chem.ARSENIC=Ekstrakcja arsenu +chem.ASPHALT=Produkcja asfaltu +chem.BAKELITE=Produkcja bakelitu chem.BALEFIRE=Mieszanie Paliwa Rakietowego BF -chem.BP_BIOFUEL=Transestryfikacja Biopaliwa -chem.BP_BIOGAS=Produkcja Biogazu +chem.BP_BIOFUEL=Transestryfikacja biopaliw +chem.BP_BIOGAS=Produkcja biogazu chem.C4=Synteza C-4 -chem.CC_CENTRIFUGE=Oddzielanie Chlorokalcytu -chem.CC_ELECTROLYSIS=Elektroliza Chlorokalcytu -chem.CC_HEATING=Zaawansowane Upłynnianie Węgla -chem.CC_HEAVY=Podstawowe Upłynnianie Węgla -chem.CC_I=Ulepszone Upłynnianie Węgla -chem.CC_NAPHTHA=Upłynnianie Węgla Naftowego -chem.CC_OIL=Upłynnianie Węgla -chem.CIRCUIT_4=Overclocked Circuit Production -chem.CIRCUIT_5=High Performance Circuit Production -chem.CO2=Produkcja Dwutlenku Węgla -chem.COALGAS_LEADED=Leaded Coal Gasoline Mixing -chem.COLTAN_CLEANING=Oczyszczanie Koltanu -chem.COLTAN_CRYSTAL=Tantalium Crystallizing -chem.COLTAN_PAIN=Pandemonium(III)tantalite Production -chem.CONCRETE=Produkcja Betonu -chem.CONCRETE_ASBESTOS=Produkcja Betonu Azbestowego -chem.COOLANT=Mieszanie Chłodziwa -chem.CORDITE=Produkcja Kordytu -chem.CRYOGEL=Mieszanie Kriożelu -chem.DESH=Produkcja Deszu -chem.DEUTERIUM=Ekstrakcja Deszu -chem.DUCRETE=Produkcja Betonu ze Zubożonym Uranem -chem.DYN_DNT=Dynosynteza Dineutronium -chem.DYN_EUPH=Dynosynteza Euferium -chem.DYN_SCHRAB=Dynosynteza Szrabidium -chem.DYNAMITE=Synteza Dynamitu -chem.ELECTROLYSIS=Krio-Elektroliza -chem.EPEARL=Ender Pearl Synthesis -chem.ETHANOL=Produkcja Etanolu -chem.FC_BITUMEN=Kraking Bitumenu -chem.FC_DIESEL_KEROSENE=Kraking Diesela -chem.FC_GAS_PETROLEUM=Kraking Gazu -chem.FC_I_NAPHTHA=Kraking Oleju Przemysłowego -chem.FC_KEROSENE_PETROLEUM=Kraking Nafty -chem.FP_HEAVYOIL=Przetwarzanie Ciężkiego Oleju -chem.FP_LIGHTOIL=Przetwarzanie Lekkiego Oleju -chem.FP_NAPHTHA=Przetwarzanie Benzyny Naturalnej -chem.FP_SMEAR=Przetwarzanie Oleju Przemysłowego -chem.FR_PETROIL=Mieszanie Benzyny Olejowej -chem.FR_REOIL=Ponowne Przetwarzanie Ropy -chem.FRACKSOL=Produkcja Roztworu Frakingowego -chem.GASOLINE=Produkcja Benzyny -chem.GASOLINE_LEADED=Mieszanie Benzyny Ołowiowej -chem.HEAVY_ELECTROLYSIS=Krio-Elektroliza Ciężkiej Wody -chem.HELIUM3=Ekstrakcja Helu-3 z Głeby Księżycowej -chem.KEVLAR=Produkcja Kevlaru -chem.LPG=Upłynnianie Gazu Naftowego -chem.LUBRICANT=Mieszanie Smaru -chem.METH=Synteza Metamfetaminy -chem.NITAN=Mieszanie Super Paliwa NITAN -chem.NITRIC_ACID=Produkcja Kwasu Azotowego -chem.OIL_SAND=Ekstrakcja ze Smolistego Piasku -chem.OSMIRIDIUM_DEATH=Produkcja Roztworu Osmiridium -chem.PC_ELECTROLYSIS=Elektroliza Chlorku Potasu -chem.PEROXIDE=Produkcja Nadtlenku Wodoru +chem.CC_CENTRIFUGE=Separacja chlorokalcytu +chem.CC_ELECTROLYSIS=Elektroliza chlorku wapnia +chem.CC_HEATING=Zaawansowane upłynnianie węgla +chem.CC_HEAVY=Podstawowe upłynnianie węgla +chem.CC_I=Ulepszone upłynnianie węgla +chem.CC_NAPHTHA=Upłynnianie węgla naftowego +chem.CC_OIL=Upłynnianie węgla +chem.CIRCUIT_4=Produkcja obwodów przetaktowanych +chem.CIRCUIT_5=Produkcja obwodów wysokiej wydajności +chem.CO2=Produkcja dwutlenku węgla +chem.COALGAS_LEADED=Mieszanie benzyny z węglem ołowiowym +chem.COLTAN_CLEANING=Oczyszczanie koltanu +chem.COLTAN_CRYSTAL=Krystalizacja tantalu +chem.COLTAN_PAIN=Produkcja tantalitu pandemonium(III). +chem.CONCRETE=Produkcja betonu +chem.CONCRETE_ASBESTOS=Produkcja betonu azbestowego +chem.COOLANT=Mieszanie chłodziwa +chem.CORDITE=Produkcja kordytu +chem.CRYOGEL=Mieszanie kriożeli +chem.DESH=Produkcja Deshu +chem.DEUTERIUM=Ekstrakcja deuteru +chem.DUCRETE=Produkcja dukretu +chem.DYN_DNT=Dynosynteza dineutronium +chem.DYN_EUPH=Dynosynteza eufemu +chem.DYN_SCHRAB=Dynosynteza schrabidu +chem.DYNAMITE=Synteza dynamitu +chem.ELECTROLYSIS=Krioelektroliza +chem.EPEARL=Synteza perły Kresu +chem.ETHANOL=Produkcja etanolu +chem.FC_BITUMEN=Kraking asphaltu +chem.FC_DIESEL_KEROSENE=Kraking oleju napędowego +chem.FC_GAS_PETROLEUM=Kraking gazowy +chem.FC_I_NAPHTHA=Kraking oleju przemysłowego +chem.FC_KEROSENE_PETROLEUM=Kraking kerozyny +chem.FP_HEAVYOIL=Przetwarzanie oleju ciężkiego +chem.FP_LIGHTOIL=Przetwarzanie oleju lekkiego +chem.FP_NAPHTHA=Przetwarzanie nafty +chem.FP_SMEAR=Przetwarzanie oleju przemysłowego +chem.FR_PETROIL=Mieszanie benzyny ciężkiej +chem.FR_REOIL=Ponowne przetwarzanie oleju +chem.FRACKSOL=Produkcja roztworu do szczelinowania +chem.GASOLINE=Produkcja gazoliny +chem.GASOLINE_LEADED=Mieszanie gazoliny ołowiowej +chem.HEAVY_ELECTROLYSIS=Krioelektroliza ciężkiej wody +chem.HELIUM3=Ekstrakcja helu-3 z murawy księżycowej +chem.KEVLAR=Produkcja mieszanki kevlarowej +chem.LPG=Skraplanie gazu ziemnego +chem.LUBRICANT=Mieszanie smaru +chem.METH=Synteza metamfetaminy +chem.NITAN=Mieszanie superpaliwa NITAN +chem.NITRIC_ACID=Produkcja kwasu azotowego +chem.OIL_SAND=Ekstrakcja piasku smołowego +chem.OSMIRIDIUM_DEATH=Produkcja roztworu osmirydowego +chem.PC_ELECTROLYSIS=Elektroliza chlorku potasu +chem.PEROXIDE=Produkcja nadtlenku wodoru chem.PET=Synteza PET -chem.PETROIL_LEADED=Mieszanie Ołowiowej Benzyny Olejowej -chem.POLYMER=Synteza Polimeru -chem.PUF6=Plutonium Hexafluoride Production -chem.RUBBER=Produkcja Gumy -chem.SAS3=Schrabidium Trisulfide Production -chem.SATURN=Produkcja Saturanitu -chem.SCHRABIDATE=Ferric Schrabidate Production -chem.SCHRABIDIC=Schrabidic Acid Mixing -chem.SF_BIOFUEL=Biofuel Solidification -chem.SF_BIOGAS=Biogas Solidification -chem.SF_DIESEL=Diesel Solidification -chem.SF_GAS=Natural Gas Solidification -chem.SF_HEATINGOIL=Heating Oil Solidification -chem.SF_HEAVYOIL=Heavy Oil Solidification -chem.SF_KEROSENE=Kerosene Solidification -chem.SF_LIGHTOIL=Light Oil Solidification -chem.SF_LUBRICANT=Lubricant Solidification -chem.SF_NAPHTHA=Naphtha Solidification -chem.SF_OIL=Krzepnięcie Surowej Ropy -chem.SF_PETROIL=Krzepnięcie Nafty Olejowej -chem.SF_PETROLEUM=Petroleum Gas Solidification -chem.SF_RECLAIMED=Krzepnięcie Oleju z Odzysku -chem.SF_SMEAR=Industrial Oil Solidification -chem.SOLID_FUEL=Solid Rocket Fuel Production -chem.SOLVENT=Organic Solvent Mixing -chem.STEAM=Wrzenie Wody -chem.SULFURIC_ACID=Sulfuric Acid Production +chem.PETROIL_LEADED=Mieszanie benzyny ołowiowej +chem.POLYMER=Polimeryzacja +chem.PUF6=Produkcja sześciofluorku plutonu +chem.RUBBER=Produkcja gumy +chem.SAS3=Produkcja trisiarczku schrabidu +chem.SATURN=Produkcja saturnytu +chem.SCHRABIDATE=Produkcja schrabidanu żelaza +chem.SCHRABIDIC=Mieszanie kwasu schrabidowego +chem.SF_BIOFUEL=Solidyfikacja biopaliw +chem.SF_BIOGAS=Solidyfikacja biogazu +chem.SF_DIESEL=Solidyfikacja oleju napędowego +chem.SF_GAS=Solidyfikacja gazu ziemnego +chem.SF_HEATINGOIL=Solidyfikacja oleju opałowego +chem.SF_HEAVYOIL=Solidyfikacja oleju ciężkiego +chem.SF_KEROSENE=Solidyfikacja kerozyny +chem.SF_LIGHTOIL=Solidyfikacja oleju lekkiego +chem.SF_LUBRICANT=Solidyfikacja smaru +chem.SF_NAPHTHA=Solidyfikacja nafty +chem.SF_OIL=Solidyfikacja ropy naftowej +chem.SF_PETROIL=Solidyfikacja benzyny +chem.SF_PETROLEUM=Solidyfikacja gazu ziemnego +chem.SF_RECLAIMED=Solidyfikacja oleju z odzysku +chem.SF_SMEAR=Solidyfikacja oleju przemysłowego +chem.SOLID_FUEL=Produkcja stałego paliwa rakietowego +chem.SOLVENT=Mieszanie rozpuszczalników organicznych +chem.STEAM=Gotowanie wody +chem.SULFURIC_ACID=Produkcja kwasu siarkowego chem.TATB=Synteza TATB chem.TEL=Mieszanie TEL chem.TEST=Test chem.TNT=Synteza TNT -chem.UF6=Uranium Hexafluoride Production -chem.VIT_GAS=Gaseous Nuclear Waste Vitrification -chem.VIT_LIQUID=Liquid Nuclear Waste Vitrification -chem.XENON=Ksenonowy Cykl Lindego -chem.XENON_OXY=Boosted Linde Xenon Cycle -chem.YELLOWCAKE=Produkcja "Żółtego Ciasta" +chem.UF6=Produkcja sześciofluorku uranu +chem.VIT_GAS=Zeszklenie gazowych odpadów jądrowych +chem.VIT_LIQUID=Zeszklenie płynnych odpadów jądrowych +chem.XENON=Cykl ksenonowy Linde +chem.XENON_OXY=Wzmocniony cykl ksenonowy Linde +chem.YELLOWCAKE=Produkcja żółtego ciasta -container.amsBase=AMS Base (Deco) -container.amsEmitter=AMS Emitter (Deco) -container.amsLimiter=AMS Stabilizer (Deco) -container.anvil=Tier %s Anvil -container.arcFurnace=Arc Furnace -container.armorTable=Armor Modification Table -container.assembler=Assembly Machine -container.autocrafter=Automatic Crafting Table +commands.satellite.no_satellite=Nie znaleziono satelity o tej częstotliwości! +commands.satellite.not_a_satellite=Trzymany przedmiot nie jest satelitą! +commands.satellite.satellite_descended=Satelita zszedł pomyślnie. +commands.satellite.satellite_orbited=Satelita wystrzelony. +commands.satellite.should_be_run_as_player=Ta komenda powinna być uruchomiona przez gracza! +container.amsBase=Podstawa AMS (Dekoracja) +container.amsEmitter=AMS Emitter (Dekoracja) +container.amsLimiter=AMS Stabilizer (Dekoracja) +container.anvil=Kowadło poziomu %s +container.arcFurnace=Piec łukowy +container.armorTable=Stół modyfikacji zbroi +container.assembler=Maszyna Montażowa +container.autocrafter=Automatyczny stół rzemieślniczy container.barrel=Beczka -container.bat9000=Ogrominasty Zbiornik 9000 -container.battery=Energy Storage -container.bombMulti=Multi Purpose Bomb -container.catalyticReformer=Catalytic Reformer -container.centrifuge=Centrifuge -container.chemplant=Chemical Plant -container.compactLauncher=Compact Launch Pad -container.craneBoxer=Conveyor Boxer -container.craneExtractor=Conveyor Ejector -container.craneGrabber=Conveyor Grabber -container.craneInserter=Conveyor Inserter -container.craneRouter=Conveyor Router -container.craneUnboxer=Conveyor Unboxer -container.crateDesh=Desh Crate -container.crateIron=Iron Crate -container.crateSteel=Steel Crate -container.crateTungsten=Tungsten Crate -container.crystallizer=Ore Acidizer -container.cyclotron=Cyclotron -container.dfcCore=Dark Fusion Core -container.dfcEmitter=DFC Emitter -container.dfcInjector=DFC Fuel Injector -container.dfcReceiver=DFC Receiver -container.dfcStabilizer=DFC Stabilizer -container.diFurnace=Blast Furnace -container.diFurnaceRTG=Nuclear Blast Furnace -container.electricFurnace=Electric Furnace -container.epress=Prasa Elektryczna -container.factoryAdvanced=Advanced Factory -container.factoryTitanium=Podstawowa Fabryka +container.bat9000=Wielki Walony Zbiornik 9000 +container.battery=Magazyn energii +container.bombMulti=Bomba wielozadaniowa +container.catalyticReformer=Reformator katalityczny +container.centrifuge=Wirówka +container.chemplant=Zakład chemiczny +container.compactLauncher=Kompaktowa platforma startowa +container.craneBoxer=Pakowacz konwejerowy +container.craneExtractor=Ejektor konwejerowy +container.craneGrabber=Chwytak konwejerowy +container.craneInserter=Wprowadzacz konwejerowy +container.craneRouter=Ruter konwejerowy +container.craneUnboxer=Rozpakowywacz konwejerowy +container.crateDesh=Deshowa skrzynia +container.crateIron=Żelazna skrzynia +container.crateSteel=Stalowa skrzynia +container.crateTemplate=Skrzynia szablonowa +container.crateTungsten=Tungstenowa skrzynia +container.crystallizer=Zakwaszacz rud +container.cyclotron=Cyklotron +container.dfcCore=Rdzeń Mrocznej Fuzji (DFC) +container.dfcEmitter=Emiter DFC +container.dfcInjector=Wtryskiwacz paliwa DFC +container.dfcReceiver=Odbiornik DFC +container.dfcStabilizer=Stabilizator DFC +container.diFurnace=Piec hutniczy +container.diFurnaceRTG=Jądrowy piec hutniczy +container.electricFurnace=Piec elektryczny +container.epress=Prasa elektryczna +container.factoryAdvanced=Zaawansowana fabryka +container.factoryTitanium=Podstawowa fabryka container.fluidtank=Zbiornik -container.fileCabinet=Filing Cabinet -container.forceField=Forcefield Emitter -container.frackingTower=Hydrauliczna Wieża Krakingowa -container.furnaceCombination=Piec Kombinacyjny -container.furnaceIron=Żelazny Piec -container.furnaceSteel=Steel Furnace -container.fusionMultiblock=Big Fusion Reactor -container.fusionaryWatzPlant=Fusionary Watz Plant -container.gasCentrifuge=Wirówka Gazowa -container.gasFlare=Flare Stack -container.generator=Reaktor Jądrowy -container.hadron=Particle Accelerator -container.heaterFirebox=Firebox -container.heaterHeatex=Wymiennik Ciepła -container.heaterOilburner=Fluid Burner -container.heaterOven=Piec Grzewczy -container.iGenerator=Generator Przemysłowy -container.keyForge=Locksmith Table -container.launchPad=Missile Launch Pad -container.launchTable=Large Launch Pad -container.leadBox=Containment Box -container.machineBoiler=Oil Heater -container.machineCMB=CMB Steel Furnace -container.machineCoal=Generator Spalinowy -container.machineCoker=Jednostka Żużlowa +container.fileCabinet=Szafka na akta +container.forceField=Emiter pola siłowego +container.frackingTower=Wieża do szczelinowania hydraulicznego +container.furnaceCombination=Piec kombinowany +container.furnaceIron=Żelazny piec +container.furnaceSteel=Stalowy piec +container.fusionMultiblock=Duży reaktor fuzyjny +container.fusionaryWatzPlant=Fuzjonaryczna fabryka Watz +container.gasCentrifuge=Wirówka gazowa +container.gasFlare=Pochodnia gazowa +container.generator=Reaktor jądrowy +container.hadron=Akcelerator cząsteczek +container.heaterFirebox=Palenisko +container.heaterHeatex=Wymiennik ciepła +container.heaterOilburner=Palnik płynów +container.heaterOven=Piekarnik grzewczy +container.iGenerator=Generator przemysłowy +container.keyForge=Stół ślusarski +container.launchPad=Platforma startowa rakiet +container.launchTable=Duża platforma startowa +container.leadBox=Skrzynia przechowawcza +container.machineBoiler=Podgrzewacz oleju +container.machineCMB=Piec stali CMB +container.machineCoal=Generator spalinowy +container.machineCoker=Jednostka koksownicza container.machineCompressor=Kompresor container.machineCrucible=Tygiel -container.machineDiesel=Generator Diesela -container.machineElectricBoiler=Elektryczny Podgrzewacz Ropy +container.machineDiesel=Generator olejowo napędowy +container.machineElectricBoiler=Elektryczny podgrzewacz oleju +container.machineElectrolyser=Maszyna do elektrolizy container.machineFEL=FEL -container.machineITER=Reaktor Fuzyjny -container.machineLargeTurbine=Industrial Steam Turbine +container.machineITER=Reaktor fuzyjny +container.machineLargeTurbine=Przemysłowa turbina parowa container.machineLiquefactor=Upłynniacz -container.machineMixer=Mieszacz Przemysłowy -container.machineRefinery=Rafineria Ropy Naftowej -container.machineSelenium=Radial Performance Engine -container.machineShredder=Mielarka +container.machineMixer=Mikser przemysłowy +container.machineRefinery=Rafineria ropy +container.machineSelenium=Silnik radialny +container.machineShredder=Niszczarka container.machineSILEX=SILEX container.machineSolidifier=Utwardzacz -container.machineTurbine=Turbina Parowa +container.machineTurbine=Turbina parowa container.machineTurbofan=Turbofan -container.machine_schrabidium_transmutator=Schrabidium Transmutation Device -container.massStorage=Storage -container.microwave=Microwave -container.miningDrill=Automatyczne Wiertło Kopalnii -container.miningLaser=Mining Laser -container.missileAssembly=Missile Assembly Station +container.machine_schrabidium_transmutator=Urządzenie do transmutacji schrabidu +container.massStorage=Magazyn +container.microwave=Mikrofalówka +container.miningDrill=Automatyczne wiertło górnicze +container.miningLaser=Laser górniczy +container.missileAssembly=Stacja montażu rakiet container.nukeBoy=Little Boy -container.nukeCustom=Niestandardowa Atomówka +container.nukeCustom=Niestandardowa atomówka container.nukeFleija=F.L.E.I.J.A. -container.nukeFstbmb=Balefire Bomb -container.nukeFurnace=Piec Napędzany Promieniotwórczością -container.nukeGadget=The Gadget +container.nukeFstbmb=Bomba balefire +container.nukeFurnace=Piec o napędzie atomowym +container.nukeGadget=Gadżet container.nukeMan=Fat Man container.nukeMike=Ivy Mike container.nukeN2=Mina N² -container.nukeN45=N45 Naval Mine -container.nukePrototype=The Prototype -container.nukeSolinium=The Blue Rinse -container.nukeTsar=Tsar Bomba -container.oilWell=Oil Derrick -container.orbus=Heavy Antimatter Storage -container.plasmaHeater=Plasma Heater -container.press=Prasa Na Węgiel -container.puf6_tank=PuF6 Tank -container.pumpjack=Pumpjack -container.radGen=Silnik Napędzany Promieniotwórczością +container.nukeN45=Mina morska N45 +container.nukePrototype=Prototyp +container.nukeSolinium=Niebieska Płukanka +container.nukeTsar=Car-bomba +container.oilWell=Wiertnica naftowa +container.orbus=Ciężki magazyn antymaterii +container.plasmaHeater=Podgrzewacz plazmowy +container.press=Prasa spalinowa +container.puf6_tank=Zbiornik PuF6 +container.pumpjack=Kiwon +container.radGen=Silnik zasilany promieniowaniem container.radar=Radar container.radiobox=Nadajnik FM -container.radiolysis=RTG and Radiolysis Chamber -container.radiorec=FM Radio -container.rbmkBoiler=RBMK Steam Channel -container.rbmkControl=RBMK Control Rods -container.rbmkControlAuto=RBMK Automatic Control Rods -container.rbmkHeater=RBMK Fluid Heater -container.rbmkOutgasser=RBMK Irradiation Channel -container.rbmkReaSim=RBMK Fuel Rod (ReaSim) -container.rbmkRod=RBMK Fuel Rod -container.rbmkStorage=RBMK Storage Column -container.reactorBreeding=Breeding Reactor -container.reactorControl=Reactor Remote Control Block -container.reactorLarge=Big Nuclear Reactor -container.reactorResearch=Research Reactor -container.reix=Rei-X Mainframe -container.rtg=Generator Radiotermiczny -container.rtgFurnace=Piec Radiotermiczny -container.rttyReceiver=Redstone-over-Radio Receiver -container.rttySender=Redstone-over-Radio Transmitter +container.radiolysis=Komora RTG i radiolizy +container.radiorec=Radio FM +container.rbmkBoiler=Kanał parowy RBMK +container.rbmkControl=Pręty kontrolne RBMK +container.rbmkControlAuto=Automatyczne pręty kontrolne RBMK +container.rbmkHeater=Podgrzewacz płynów RBMK +container.rbmkOutgasser=Kanał napromieniania RBMK +container.rbmkReaSim=Pręt paliwowy RBMK (ReaSim) +container.rbmkRod=Pręt paliwowy RBMK +container.rbmkStorage=Kolumna magazynowa RBMK +container.reactorBreeding=Reaktor prędki powielający +container.reactorControl=Blok zdalnego sterowania reaktoru +container.reactorLarge=Duży reaktor jądrowy +container.reactorResearch=Reaktor badawczy +container.reix=Komputer główny Rei-X +container.rtg=Generator RT +container.rtgFurnace=Piec RTG +container.rttyCounter=Redstone'owy radiowy licznik przedmiotów +container.rttyReceiver=Redstone'owy odbiornik radiowy +container.rttySender=Redstone'owy nadajnik radiowy container.safe=Sejf -container.satDock=Cargo Landing Pad -container.satLinker=Urządzenie do Komunikacji Satelitarnej -container.siren=Siren -container.soyuzCapsule=Cargo Landing Capsule -container.soyuzLauncher=Soyuz Launch Platform -container.storageDrum=Nuclear Waste Disposal Drum -container.teleLinker=TelLink Device +container.satDock=Lądowisko ładunkowe +container.satLinker=Urządzenie SatLink +container.siren=Syrena +container.soyuzCapsule=Kapsuła do lądowania ładunku +container.soyuzLauncher=Platforma startowa Sojuza +container.storageDrum=Bęben do usuwania odpadów jądrowych +container.teleLinker=Urządzenie TelLink container.teleporter=Teleporter -container.trainTram=Electric Flat Bed Tram -container.turbinegas=Combined Cycle Gas Turbine -container.turretArty=Grześ -container.turretChekhov=Chekhov's Gun +container.trainTram=Elektryczny tramwaj platformowy +container.turbinegas=Turbina gazowa o cyklu kombinowanym +container.turretArty=Greg +container.turretChekhov=Pistolet Czechowa container.turretFriendly=Pan Przyjazny -container.turretFritz=Frytz -container.turretHIMARS=Henryk +container.turretFritz=Fritz +container.turretHIMARS=Henry container.turretHoward=Howard container.turretJeremy=Jeremiasz container.turretMaxwell=Maxwell container.turretRichard=Ryszard container.turretSentry=Brown -container.turretTauon=Tauon -container.uf6_tank=UF6 Tank -container.vacuumDistill=Vacuum Refinery -container.wasteDrum=Spent Fuel Pool Drum -container.watzPowerplant=Watz Power Plant -container.zirnox=ZIRNOX Nuclear Reactor +container.turretTauon=Taon +container.uf6_tank=Zbiornik UF6 +container.vacuumDistill=Rafineria próżniowa +container.wasteDrum=Bęben po zużytym paliwie +container.watzPowerplant=Elektrownia Watz +container.zirnox=Reaktor jądrowy ZIRNOX -crucible.aa=Zaawansowana Produkcja Stopu -crucible.cdalloy=Produkcja Stali Kadmowej -crucible.cmb=Produkcja Stali Kombinatu -crucible.ferro=Ferrouranium Production -crucible.hematite=Iron Production from Hematite -crucible.hss=High-Speed Steel Production -crucible.malachite=Copper Production from Malachite -crucible.redcopper=Red Copper Production -crucible.steel=Steel Production -crucible.steelMeteoric=Steel Production from Meteoric Iron -crucible.steelPig=Steel Production from Pig Iron -crucible.steelWrought=Steel Production from Wrought Iron -crucible.tcalloy=Technetium Steel Production +crucible.aa=Produkcja zaawansowanych stopów +crucible.cdalloy=Produkcja stali kadmowej +crucible.cmb=Produkcja stali CMB +crucible.ferro=Produkcja ferrouranu +crucible.hematite=Produkcja żelaza z hematytu +crucible.hss=Produkcja stali szybkotnącej +crucible.malachite=Produkcja miedzi z malachitu +crucible.redcopper=Produkcja czerwonej miedzi +crucible.steel=Produkcja stali +crucible.steelMeteoric=Produkcja stali z żelaza meteorytowego +crucible.steelPig=Produkcja stali z surówki hutniczej +crucible.steelWrought=Produkcja stali z kutego żelaza +crucible.tcalloy=Produkcja stali technetowej death.attack.acid=%1$s wpadł w kwas. -death.attack.acidPlayer=%1$s został roztopiony przez %2$s. -death.attack.ams=%1$s was bathed in deadly particles that have yet to be named by human science. -death.attack.amsCore=%1$s was vaporized in the fire of a singularity. -death.attack.asbestos=%1$s ma teraz prawo do rekompensaty finansowej. -death.attack.bang=%1$s was blasted into bite-sized pieces. -death.attack.blackhole=%1$s was spaghettified. -death.attack.blender=%1$s was chopped in small, bite-sized pieces. -death.attack.boat=%1$s was hit by a boat. -death.attack.boil=%1$s was boiled alive by %2$s. -death.attack.boxcar=%1$s was smushed by a falling boxcar. Oh well. -death.attack.broadcast=%1$s got their brain melted. -death.attack.building=%1$s was hit by a falling building. -death.attack.cheater=%1$s's intestines turned into oats. (???) -death.attack.chopperBullet=%1$s został zmiecony przez %2$s. -death.attack.cloud=%1$s melted like a popsicle in the sun. -death.attack.cmb=%1$s was fizzeled by %2$s. -death.attack.digamma=%1$s stepped into the abyss. -death.attack.electricity=%1$s został porażony na śmierć. -death.attack.electrified=%1$s was electrified by %2$s. -death.attack.euthanized=%1$s was euthanized by %2$s. -death.attack.euthanizedSelf2=%1$s wins the Darwin Award. -death.attack.euthanizedSelf=%1$s euthanized himself, what a dork. -death.attack.exhaust=%1$s was turned into shish kebab by a starting rocket. +death.attack.acidPlayer=%1$s został rozpuszczony przez %2$s. +death.attack.ams=%1$s był skąpany w cząsteczkach, które jeszcze nie zostały nazwane przez ludzką naukę. +death.attack.amsCore=%1$s wyparował w ogniu osobliwości. +death.attack.asbestos=%1$s ma obecnie prawo do rekompensaty finansowej. +death.attack.bang=%1$s został rozerwany na kawałki wielkości kęsa. +death.attack.blackhole=%1$s został spaghettizowany. +death.attack.blender=%1$s został posiekany na małe kawałki wielkości kęsa. +death.attack.boat=%1$s został potrącony przez łódkę. +death.attack.boil=%1$s został ugotowany żywcem przez %2$s. +death.attack.boxcar=%1$s został zmiażdżony przez spadający wagon. No cóż. +death.attack.broadcast=%1$s'owi roztopił się mózg. +death.attack.building=%1$s został lekko pacnięty przez spadający budynek. +death.attack.cheater=Jelita %1$s zamieniły się w owies. (???) +death.attack.chopperBullet=%1$s został rozwalony przez %2$s. +death.attack.cloud=%1$s roztopił się jak lody na słońcu. +death.attack.cmb=%1$s został wygazowany przez %2$s. +death.attack.digamma=%1$s wszedł w przepaść. +death.attack.electricity=%1$s został porażony prądem. +death.attack.electrified=%1$s został zelektryfikowany przez %2$s. +death.attack.euthanized=%1$s został poddany eutanazji przez %2$s. +death.attack.euthanizedSelf2=%1$s zdobywa nagrodę Darwina. +death.attack.euthanizedSelf=%1$s dokonał eutanazji na samym sobie. Kretyn. +death.attack.exhaust=%1$s został zamieniony w szaszłyk przez startującą rakietę. death.attack.flamethrower=%1$s został skremowany przez %2$s. -death.attack.flamethrower.item=%1$s was cremated by %2$s using %3$s. -death.attack.ice=%1$s was turned into a popsicle by %2$s. -death.attack.laser=%1$s was turned into ash by %2$s. -death.attack.laser.item=%1$s was turned into ash by %2$s using %3$s. -death.attack.lead=%1$s umarł od zatrucia ołowiowego. -death.attack.lunar=%1$s forgot to charge their vital organs. -death.attack.meteorite=%1$s was hit by a falling rock from outer space. -death.attack.microwave=%1$s was exploded by microwave radiation. -death.attack.mku=%1$s died from unknown causes. -death.attack.monoxide=%1$s forgot to change the batteries in their carbon monoxide detector. -death.attack.mudPoisoning=%1$s died in poisonous mud. -death.attack.nuclearBlast=%1$s was blown away by a nuclear explosion. -death.attack.overdose=%1$s overdosed and asphyxiated. -death.attack.pc=%1$s was reduced to a puddle in the pink cloud. -death.attack.plasma=%1$s was immolated by %2$s. -death.attack.radiation=%1$s died from radiation poisoning. -death.attack.revolverBullet=%1$s was shot in the head by %2$s. -death.attack.revolverBullet.item=%1$s was shot in the head by %2$s using %3$s. -death.attack.rubble=%1$s was squashed by debris. -death.attack.shrapnel=%1$s was ragged by a shrapnel. -death.attack.spikes=%1$s został nadziany. +death.attack.flamethrower.item=%1$s został skremowany przez %2$s za pomocą %3$s. +death.attack.ice=%1$s został zamieniony w loda na patyku przez %2$s. +death.attack.laser=%1$s został obrócony w popiół przez %2$s. +death.attack.laser.item=%1$s został obrócony w popiół przez %2$s za pomocą %3$s. +death.attack.lead=%1$s zmarł od zatrucia ołowiem. +death.attack.lunar=%1$s zapomniał naładować swoje narządy witalne. +death.attack.meteorite=%1$s został uderzony przez spadający kamyk z kosmosu. +death.attack.microwave=%1$s eksplodował promieniowaniem mikrofalowym. +death.attack.mku=%1$s zmarł z nieznanych przyczyn. +death.attack.monoxide=%1$s zapomniał wymienić baterie w czujniku czadu. +death.attack.mudPoisoning=%1$s zmarł w trującym błocie. +death.attack.nuclearBlast=%1$s został wysadzony w powietrze przez wybuch atomowy. +death.attack.overdose=%1$s przedawkował i udusił się. +death.attack.pc=%1$s został zredukowany do kałuży w różowej chmurze. +death.attack.plasma=%1$s został spalony przez %2$s. +death.attack.radiation=%1$s zmarł w wyniku zatrucia popromiennego. +death.attack.revolverBullet=%1$s został postrzelony w głowę przez %2$s. +death.attack.revolverBullet.item=%1$s został postrzelony w głowę przez %2$s za pomocą %3$s. +death.attack.rubble=%1$s został przygnieciony gruzem. +death.attack.shrapnel=%1$s został poszarpany odłamkiem. +death.attack.spikes=%1$s został wbity w pal. death.attack.subAtomic1=Atomy %1$s zostały zniszczone przez %2$s. -death.attack.subAtomic2=%1$s was QPU-misaligned because %2$s tampered with their de facto speed. -death.attack.subAtomic3=%1$s's divergence dropped below 1 percent because of %2$s. +death.attack.subAtomic2=%1$s był źle wyrównany z QPU, ponieważ %2$s majstrował przy ich faktycznej prędkości. +death.attack.subAtomic3=Dywergencja %1$s'a spadła poniżej 1 procent z powodu %2$s'a. death.attack.subAtomic4=%1$s został podzielony przez zero przez %2$s. -death.attack.subAtomic5=%1$s został znulyfikowany przez %2$s. -death.attack.suicide=%1$s odstrzelił sobie łeb. -death.attack.taint=%1$s umał od guzów fluksowych. -death.attack.tau=%1$s został zastrzelony przez %2$s za pomocą ujemnie naładowanych tauonów. -death.attack.tauBlast=%1$s charged the XVL1456 for too long and was blown into pieces. -death.attack.teleporter=%1$s został teleportowany w pustkę. +death.attack.subAtomic5=%1$s został unieważniony przez %2$s. +death.attack.suicide=%1$s odstrzelił sobie głowę. +death.attack.taint=%1$s zmarł z powodu guzów strumieniowych. +death.attack.tau=%1$s został podziurawiony przez %2$s za pomocą ujemnie naładowanych taonów. +death.attack.tauBlast=%1$s ładował XVL1456 zbyt długo i został rozerwany na kawałki. +death.attack.teleporter=%1$s został teleportowany w nicość. -desc.gui.assembler.warning=§cError:§r This machine requires an assembly template! -desc.gui.chemplant.warning=§cError:§r This machine requires an chemistry template! -desc.gui.gasCent.enrichment=§2Enrichment§r$Uranium enrichment requires cascades.$Two-centrifuge cascades will give$uranium fuel, four-centrifuge cascades$will give total separation. -desc.gui.gasCent.output=§6Fluid Transfer§r$Fluid can be transferred to another centrifuge$via the output port for further processing. -desc.gui.nukeBoy.desc=§1Requires:§r$ * Neutron Shielding$ * U235 Projectile$ * Subcritical U235 Target$ * Propellant$ * Bomb Igniter -desc.gui.nukeGadget.desc=§1Requires:§r$ * 4 Arrays of First-Generation$ High-Explosive Lenses$ * Heavy Plutonium Core$ * Wiring -desc.gui.nukeMan.desc=§1Requires:§r$ * 4 Arrays of First-Generation$ High-Explosive Lenses$ * Plutonium Core$ * Bomb Firing Unit -desc.gui.nukeMike.desc=§1Requires:§r$ * 4 Arrays of High-Explosive Lenses$ * Plutonium Core$ * Deuterium Cooling Unit$ * Uranium Coated Deuterium Tank$ * Deuterium Tank -desc.gui.nukeTsar.desc=§1Requires:§r$ * 4 Arrays of High-Explosive Lenses$ * Plutonium Core$§9Optional:§r$ * Tsar Bomba Core -desc.gui.radiolysis.desc=§9Description§r$This RTG is more efficient then others, and$comes equipped with a radiolysis chamber for$cracking and sterilization. -desc.gui.rtgBFurnace.desc=Requires at least 15 heat to process$The more heat on top of that, the faster it runs$Heat going over maximum speed will have no effect$Short-lived pellets may decay -desc.gui.rtg.heat=§eCurrent heat level: %s -desc.gui.rtg.pellets=Accepted Pellets: -desc.gui.rtg.pelletHeat=%s (%s heat) +desc.gui.assembler.warning=§cBłąd:§r Ta maszyna wymaga szablonu montażowego! +desc.gui.chemplant.warning=§cBłąd:§r Ta maszyna wymaga szablonu chemicznego! +desc.gui.gasCent.enrichment=§2Wzbogacanie§r$Wzbogacanie uranu wymaga kaskad.$Kaskady z dwiema wirówkami dadzą$paliwo uranowe, kaskady z czterema wirówkami$dadzą całkowitą separację. +desc.gui.gasCent.output=§6Transfer płynu§r$Płyn można przenieść do innej wirówki$przez port wyjściowy w celu dalszego przetwarzania. +desc.gui.nukeBoy.desc=§1Wymagane:§r$ * Osłona neutronowa$ * Pocisk U235$ * Cel podkrytyczny U235$ * Materiał miotający$ * Zapalnik bomby +desc.gui.nukeGadget.desc=§1Wymagania:§r$ * 4 matryce soczewek odłamkowo$-burzących pierwszej generacji$ * Ciężki rdzeń plutonowy$ * Okablowanie +desc.gui.nukeMan.desc=§1Wymagane:§r$ * 4 zestawy soczewek$odłamkowo-burzących pierwszej generacji$ * Rdzeń plutonowy$ * Jednostka strzelająca bombami +desc.gui.nukeMike.desc=§1Wymagane:§r$ * 4 układy soczewek$odłamkowo-burzących$ * Rdzeń plutonowy$ * Deuterowy układ chłodzący$ * Zbiornik deuteru pokryty uranem$ * Zbiornik deuteru +desc.gui.nukeTsar.desc=§1Wymagane:§r$ * 4 układy soczewek$odłamkowo-burzących$ * Rdzeń plutonowy$§9Opcjonalnie:§r$ * Rdzeń car-bomby +desc.gui.radiolysis.desc=§9Opis§r$Ten RTG jest wydajniejszy od innych$i jest wyposażony w komorę radiolizy$do krakingu i sterylizacji. +desc.gui.rtgBFurnace.desc=Wymaga co najmniej 15 ciepła do przetworzenia$Im więcej ciepła, tym szybciej działa$Ciepło przekraczające maksymalną prędkość nie będzie miało żadnego efektu$Krótkożyciowe pelety mogą się zepsuć +desc.gui.rtg.heat=§eAktualny poziom ciepła: %s +desc.gui.rtg.pellets=Akceptowane pellety: +desc.gui.rtg.pelletHeat=%s (%s ciepła) desc.gui.rtg.pelletPower=%s (%s HE/tick) -desc.gui.template=§9Templates§r$Templates can be made by$using the Machine Template Folder. -desc.gui.turbinegas.automode=§2Automatic Turbine Throttling Mode§r$By clicking the "AUTO" button, the turbine$will automatically adjust the power production$based on the power required from the network -desc.gui.turbinegas.fuels=§6Accepted fuels:§r -desc.gui.turbinegas.warning=§cFuel or lubricant level low!§r -desc.gui.upgrade=§lAcceptable Upgrades:§r -desc.gui.upgrade.afterburner= * §dAfterburner§r: Stacks to level 3 -desc.gui.upgrade.effectiveness= * §aEffectiveness§r: Stacks to level 3 -desc.gui.upgrade.overdrive= * §7Overdrive§r: Stacks to level 3 -desc.gui.upgrade.power= * §1Power-Saving§r: Stacks to level 3 -desc.gui.upgrade.speed= * §4Speed§r: Stacks to level 3 -desc.gui.zirnox.coolant=§3Coolant§r$CO2 transfers heat from the core to the water.$This will boil it into super dense steam.$The efficiency of cooling and steam production$is based on pressure. -desc.gui.zirnox.pressure=§6Pressure§r$Pressure can be reduced by venting CO2.$However, too low a pressure, and cooling$efficiency and steam production will be reduced.$Look out for meltdowns! -desc.gui.zirnox.warning1=§cError:§r Water is required for$the reactor to function properly! -desc.gui.zirnox.warning2=§cError:§r CO2 is required for$the reactor to function properly! -desc.item.ammo.con_accuracy2=- Highly decreased accuracy -desc.item.ammo.con_damage=- Highly decreased damage -desc.item.ammo.con_heavy_wear=- Highly increased wear -desc.item.ammo.con_ling_fire=- No lingering fire -desc.item.ammo.con_nn=- Not even a nuke -desc.item.ammo.con_no_damage=- No damage -desc.item.ammo.con_no_explode1=- Non-explosive -desc.item.ammo.con_no_explode2=- No block damage -desc.item.ammo.con_no_explode3=- No splash damage -desc.item.ammo.con_no_fire=- Not incendiary -desc.item.ammo.con_no_mirv=- Not recommended for the Proto MIRV -desc.item.ammo.con_no_projectile=- No projectile -desc.item.ammo.con_penetration=- Not penetrating -desc.item.ammo.con_radius=- Decreased blast radius -desc.item.ammo.con_range2=- Highly decreased range -desc.item.ammo.con_sing_projectile=- Single projectile -desc.item.ammo.con_speed=- Decreased projectile speed -desc.item.ammo.con_super_wear=- Very highly increased wear -desc.item.ammo.con_wear=- Increased wear -desc.item.ammo.neu_40mm=* It's a 40mm grenade that we squeezed to fit the barrel! -desc.item.ammo.neu_blank=* It's a blank -desc.item.ammo.neu_boat=* Boat -desc.item.ammo.neu_boxcar=* Boxcar -desc.item.ammo.neu_building=* Building -desc.item.ammo.neu_chlorophyte=* Chlorophyte -desc.item.ammo.neu_eraser=* For removing big mistakes -desc.item.ammo.neu_fun=* Fun for the whole family! +desc.gui.template=§9Szablony§r$Szablony można tworzyć$za pomocą folderu szablonów maszyn. +desc.gui.turbinegas.automode=§2Automatyczny tryb ograniczania turbiny§r$Klikając przycisk „AUTO”, turbina$automatycznie dostosuje produkcję energii$w oparciu o moc wymaganą z sieci +desc.gui.turbinegas.fuels=§6Dozwolone paliwa:§r +desc.gui.turbinegas.warning=§cNiski poziom paliwa lub smaru!§r +desc.gui.upgrade=§lDozwolone ulepszenia:§r +desc.gui.upgrade.afterburner= * §dDopalacz§r: Kumuluje się do poziomu 3 +desc.gui.upgrade.effectiveness= * §aWydajność§r: Kumuluje się do poziomu 3 +desc.gui.upgrade.overdrive= * §7Nadbieg§r: Kumuluje się do poziomu 3 +desc.gui.upgrade.power= * §1Oszczędzanie energii§r: kumuluje się do poziomu 3 +desc.gui.upgrade.speed= * §4Szybkość§r: kumuluje się do poziomu 3 +desc.gui.zirnox.coolant=§3Chłodziwo§r$CO2 przenosi ciepło z rdzenia do wody.$Spowoduje to zagotowanie bardzo gęstej pary.$Wydajność chłodzenia i produkcji pary$opiera się na ciśnieniu. +desc.gui.zirnox.pressure=§6Ciśnienie§r$Ciśnienie można zmniejszyć poprzez wywietrzanie CO2.$Jednak zbyt niskie ciśnienie spowoduje zmniejszenie wydajności chłodzenia i wytwarzania pary.$Uważaj na stapianie! +desc.gui.zirnox.warning1=§cBłąd:§r Do prawidłowego działania reaktora potrzebna jest woda! +desc.gui.zirnox.warning2=§cBłąd:§r CO2 jest wymagany do prawidłowego działania reaktora! +desc.item.ammo.con_accuracy2=- Znacznie zmniejszona celność +desc.item.ammo.con_damage=- Znacznie zmniejszone obrażenia +desc.item.ammo.con_heavy_wear=- Znacznie zwiększone zużycie +desc.item.ammo.con_ling_fire=- Brak ciągłego ognia +desc.item.ammo.con_nn=- Nawet nie atomówka +desc.item.ammo.con_no_damage=- Brak obrażeń +desc.item.ammo.con_no_explode1=- Niewybuchowy +desc.item.ammo.con_no_explode2=- Brak uszkodzeń bloków +desc.item.ammo.con_no_explode3=- Brak rozbryzgowych obrażeń +desc.item.ammo.con_no_fire=- Nie zapalający +desc.item.ammo.con_no_mirv=- Niezalecane dla Proto MIRV +desc.item.ammo.con_no_projectile=- Brak pocisku +desc.item.ammo.con_penetration=- Nie penetrujący +desc.item.ammo.con_radius=- Zmniejszony promień wybuchu +desc.item.ammo.con_range2=- Znacznie zmniejszony zasięg +desc.item.ammo.con_sing_projectile=- Pojedynczy pocisk +desc.item.ammo.con_speed=- Zmniejszona prędkość pocisku +desc.item.ammo.con_super_wear=- Bardzo znacznie zwiększone zużycie +desc.item.ammo.con_wear=- Zwiększone zużycie +desc.item.ammo.neu_40mm=* To granat 40 mm, który wcisnęliśmy w lufę! +desc.item.ammo.neu_blank=* To jest ślepak +desc.item.ammo.neu_boat=* Łódka +desc.item.ammo.neu_boxcar=* Wagon +desc.item.ammo.neu_building=* Budynek +desc.item.ammo.neu_chlorophyte=* Chlorofit +desc.item.ammo.neu_eraser=* Do usuwania dużych błędów +desc.item.ammo.neu_fun=* Świetna zabawa dla całej rodziny! desc.item.ammo.neu_heavy_metal=* Heavy Metal -desc.item.ammo.neu_homing=* Homing -desc.item.ammo.neu_jolt=* Jolt -desc.item.ammo.neu_less_bouncy=* Less bouncy -desc.item.ammo.neu_maskman_flechette=* Fires a tracer which summons a storm of DU-flechettes -desc.item.ammo.neu_maskman_meteorite=* Fires a high-damage round that summons a small meteorite -desc.item.ammo.neu_more_bouncy=* Extra bouncy -desc.item.ammo.neu_no_bounce=* Not bouncy -desc.item.ammo.neu_no_con=* No drawbacks lole +desc.item.ammo.neu_homing=* Naprowadzający +desc.item.ammo.neu_jolt=* Wstrząsający +desc.item.ammo.neu_less_bouncy=* Mniej sprężysty +desc.item.ammo.neu_maskman_flechette=* Wystrzeliwuje smugę, która przywołuje burzę pocisków DU +desc.item.ammo.neu_maskman_meteorite=* Wystrzeliwuje pocisk zadający duże obrażenia, który przywołuje mały meteoryt +desc.item.ammo.neu_more_bouncy=* Ekstra sprężysty +desc.item.ammo.neu_no_bounce=* Nie sprężysty +desc.item.ammo.neu_no_con=* nie ma żadnych wad lul desc.item.ammo.neu_starmetal=* Starmetal -desc.item.ammo.neu_tracer=* Tracer -desc.item.ammo.neu_uhh=* Uhhh -desc.item.ammo.neu_warcrime1=* Technically a warcrime -desc.item.ammo.neu_warcrime2=* Twice the warcrime in a single round! -desc.item.ammo.pro_accurate1=+ Increased accuracy -desc.item.ammo.pro_accurate2=+ Near-perfect accuracy +desc.item.ammo.neu_tracer=* Smugowy +desc.item.ammo.neu_uhh=* Emmm +desc.item.ammo.neu_warcrime1=* Technicznie zbrodnia wojenna +desc.item.ammo.neu_warcrime2=* Dwa razy więcej zbrodni wojennych w jednym pocisku! +desc.item.ammo.pro_accurate1=+ Zwiększona dokładność +desc.item.ammo.pro_accurate2=+ Prawie idealna dokładność desc.item.ammo.pro_balefire=+ Balefire -desc.item.ammo.pro_bomb_count=+ Increased bomb count -desc.item.ammo.pro_caustic=+ Caustic -desc.item.ammo.pro_chainsaw=+ Chainsaw -desc.item.ammo.pro_chlorine=+ Chlorine gas -desc.item.ammo.pro_damage=+ Increased damage -desc.item.ammo.pro_damage_slight=+ Above average damage +desc.item.ammo.pro_bomb_count=+ Zwiększona liczba bomb +desc.item.ammo.pro_caustic=+ Żrący +desc.item.ammo.pro_chainsaw=+ Piła łańcuchowa +desc.item.ammo.pro_chlorine=+ Gazowy chlor +desc.item.ammo.pro_damage=+ Zwiększone obrażenia +desc.item.ammo.pro_damage_slight=+ Ponadprzeciętne obrażenia desc.item.ammo.pro_emp=+ EMP -desc.item.ammo.pro_explosive=+ Explosive -desc.item.ammo.pro_fallout=+ Fallout -desc.item.ammo.pro_fit_357=+ Fits every .357 model -desc.item.ammo.pro_flames=+ Increased flame count -desc.item.ammo.pro_gravity=+ Decreased gravity -desc.item.ammo.pro_heavy_damage=+ Highly increased damage -desc.item.ammo.pro_incendiary=+ Incendiary -desc.item.ammo.pro_lunatic=+ Lunatic -desc.item.ammo.pro_marauder=+ Instantly removes annoying and unbalanced enemies -desc.item.ammo.pro_mining=+ Explosion drops all blocks -desc.item.ammo.pro_no_gravity=+ Not affected by gravity -desc.item.ammo.pro_nuclear=+ Nuclear -desc.item.ammo.pro_penetration=+ Penetrating -desc.item.ammo.pro_percussion=+ Percussive blast -desc.item.ammo.pro_phosphorus=+ Induces phosphorus burns -desc.item.ammo.pro_phosphorus_splash=+ Phosphorus splash -desc.item.ammo.pro_poison_gas=+ Poison splash -desc.item.ammo.pro_radius=+ Increased blast radius -desc.item.ammo.pro_radius_high=+ Highly increased blast radius -desc.item.ammo.pro_range=+ Increased range -desc.item.ammo.pro_rocket=+ Rocket -desc.item.ammo.pro_rocket_propelled=+ Rocket Propelled -desc.item.ammo.pro_shrapnel=+ Shrapnel -desc.item.ammo.pro_speed=+ Increased projectile speed -desc.item.ammo.pro_stunning=+ Stunning -desc.item.ammo.pro_toxic=+ Toxic -desc.item.ammo.pro_wear=+ Decreased wear -desc.item.ammo.pro_withering=+ Withering -desc.item.armorMod.display=to display installed armor mods -desc.item.battery.charge=Charge: %s / %sHE -desc.item.battery.chargePerc=Charge: %s%% -desc.item.battery.chargeRate=Charge rate: %sHE/tick -desc.item.battery.dischargeRate=Discharge rate: %sHE/tick -desc.item.durability=Durability: %s -desc.item.grenade.fuse=Fuse: %s -desc.item.grenade.fuseImpact=Impact -desc.item.grenade.fuseInstant=Instant -desc.item.gun.ammo=Ammo %s -desc.item.gun.ammoBelt=Belt -desc.item.gun.ammoEnergy=Energy; %sHE per shot -desc.item.gun.ammoEnergyAlt=%sHE per alt shot +desc.item.ammo.pro_explosive=+ Wybuchowy +desc.item.ammo.pro_fallout=+ Opad +desc.item.ammo.pro_fit_357=+ Pasuje do każdego modelu .357 +desc.item.ammo.pro_flames=+ Zwiększona liczba płomieni +desc.item.ammo.pro_gravity=+ Zmniejszona grawitacja +desc.item.ammo.pro_heavy_damage=+ Znacznie zwiększone obrażenia +desc.item.ammo.pro_incendiary=+ Zapalający +desc.item.ammo.pro_lunatic=+ Lunatyczny +desc.item.ammo.pro_marauder=+ Natychmiast usuwa irytujących i niezbalansowanych wrogów +desc.item.ammo.pro_mining=+ Eksplozja upuszcza wszystkie bloki +desc.item.ammo.pro_no_gravity=+ Brak wpływu grawitacji +desc.item.ammo.pro_nuclear=+ Jądrowy +desc.item.ammo.pro_penetration=+ Penetrujący +desc.item.ammo.pro_percussion=+ Potężny wybuch +desc.item.ammo.pro_phosphorus=+ Powoduje poparzenia fosforem +desc.item.ammo.pro_phosphorus_splash=+ Miotany fosfor +desc.item.ammo.pro_poison_gas=+ Miotana trucizna +desc.item.ammo.pro_radius=+ Zwiększony promień wybuchu +desc.item.ammo.pro_radius_high=+ Znacznie zwiększony promień wybuchu +desc.item.ammo.pro_range=+ Zwiększony zasięg +desc.item.ammo.pro_rocket=+ Rakieta +desc.item.ammo.pro_rocket_propelled=+ Napęd rakietowy +desc.item.ammo.pro_shrapnel=+ Odłamki +desc.item.ammo.pro_speed=+ Zwiększona prędkość pocisku +desc.item.ammo.pro_stunning=+ Oszałamiający +desc.item.ammo.pro_toxic=+ Toksyczny +desc.item.ammo.pro_wear=+ Zmniejszone zużycie +desc.item.ammo.pro_withering=+ Więdnięcie +desc.item.armorMod.display=aby wyświetlić zainstalowane mody pancerza +desc.item.battery.charge=Naładowanie: %s / %sHE +desc.item.battery.chargePerc=Naładowanie: %s%% +desc.item.battery.chargeRate=Szybkość ładowania: %sHE/tick +desc.item.battery.dischargeRate=Szybkość rozładowania: %sHE/tick +desc.item.durability=Wytrzymałość: %s +desc.item.grenade.fuse=Lont: %s +desc.item.grenade.fuseImpact=Zderzeniowy +desc.item.grenade.fuseInstant=Natychmiastowy +desc.item.gun.ammo=Amunicja %s +desc.item.gun.ammoBelt=Pas +desc.item.gun.ammoEnergy=Energia; %sHE za strzał +desc.item.gun.ammoEnergyAlt=%sHE za alt. strzał desc.item.gun.ammoMag=%s / %s -desc.item.gun.ammoType=Ammo Type: %s -desc.item.gun.ammoTypeAlt=Secondary Ammo: %s +desc.item.gun.ammoType=Rodzaj amunicji: %s +desc.item.gun.ammoTypeAlt=Amunicja dodatkowa: %s desc.item.gun.damage=Damage: %s - %s -desc.item.gun.damageAlt=Damage: %s -desc.item.gun.lore=to view in-depth lore -desc.item.gun.loreFunc=to view in-depth functionality -desc.item.gun.manufacturer=Manufacturer: %s -desc.item.gun.name=Name: %s -desc.item.gun.pellets=Projectiles: %s - %s -desc.item.gun.penetration=Armor Penetration Value: %s -desc.item.kitArmor=Armor will be displaced by new set. -desc.item.kitHaz=Armor will be displaced by hazmat suit. -desc.item.kitPack=What a bargain! -desc.item.kitPool=Please empty inventory before opening! -desc.item.pileRod=§eUse on drilled graphite to insert$§eUse screwdriver to extract$ -desc.item.rtgDecay=Decays to: %s -desc.item.rtgHeat=Power Level: %s -desc.item.storage.capacity=Capacity %s%%s -desc.item.storage.proscons=to view pros cons list +desc.item.gun.damageAlt=Obrażenia: %s +desc.item.gun.lore=aby zobaczyć dogłębną wiedzę +desc.item.gun.loreFunc=aby wyświetlić szczegółową funkcjonalność +desc.item.gun.manufacturer=Producent: %s +desc.item.gun.name=Nazwa: %s +desc.item.gun.penetration=Wartość penetracji pancerza: %s +desc.item.kitArmor=Pancerz zostanie zastąpiony nowym zestawem. +desc.item.kitHaz=Pancerz zostanie zastąpiony kombinezonem ochronnym. +desc.item.kitPack=Ale okazja! +desc.item.kitPool=Proszę opróżnić ekwipunek przed otwarciem! +desc.item.pileRod=§eUżyj na wywierconym graficie, aby włożyć$§eUżyj śrubokręta, aby wyjąć$ +desc.item.rtgDecay=Rozkłada się na: %s +desc.item.rtgHeat=Poziom mocy: %s +desc.item.storage.capacity=Pojemność %s%%s +desc.item.storage.proscons=aby wyświetlić listę zalet i wad desc.misc.357=.357 Magnum desc.misc.556=.223 Remington desc.misc.762=.308 Winchester -desc.misc.func=§n-- Function -- -desc.misc.lanthanum="Lanthanum" -desc.misc.lctrl=§8Hold <§e§oLCTRL§8§o> %s -desc.misc.lore=§n-- Lore -- -desc.misc.lshift=§8Hold <§e§oLSHIFT§8§o> %s -desc.misc.luna=§o20x155mm Lunatic -desc.misc.meltPoint=Melting point: §c%s -desc.misc.noPos=No position set! -desc.misc.pos=Set pos to: %s, %s, %s -desc.misc.posSet=Position set! -desc.item.wasteCooling=Cool in a Spent Fuel Pool Drum -desc.item.zirnoxBreedingRod=§2[ZIRNOX Breeding Rod]$§ePlace next to fuel rods to breed$§eLasts %d ticks -desc.item.zirnoxRod=§a[ZIRNOX Fuel Rod]$§eGenerates %1$d heat per tick$§eLasts %2$d ticks +desc.misc.func=§n-- Funkcja -- +desc.misc.lanthanum="Lantan" +desc.misc.lctrl=§8Przytrzymaj <§e§oLCTRL§8§o> %s +desc.misc.lore=§n-- Fabuła -- +desc.misc.lshift=§8Przytrzymaj <§e§oLSHIFT§8§o> %s +desc.misc.luna=§o20x155mm Lunatyczny +desc.misc.meltPoint=Temperatura topnienia: §c%s +desc.misc.noPos=Brak ustawionej pozycji! +desc.misc.pos=Ustawiono pozycję na: %s, %s, %s +desc.misc.posSet=Pozycja ustawiona! +desc.item.wasteCooling=Schłodzić w bębnie po zużytym paliwie +desc.item.zirnoxBreedingRod=§2[Pręt do powielania ZIRNOX]$§eUmieść obok prętów paliwowych aby powielać$§eTrwa %d ticków +desc.item.zirnoxRod=§a[Pręt paliwowy ZIRNOX]$§eGeneruje %1$d ciepła na tick$§eTrwa %2$d ticków -digamma.playerDigamma=Ekzpozycja Digammy: +digamma.playerDigamma=Ekspozycja Digammy: digamma.playerHealth=Wpływ Digammy: -digamma.playerRes=Odporność na Digammę: -digamma.title=URZĄDZENIE DIAGNOSTYCZNE DIGAMMA +digamma.playerRes=Odporność na digamę: +digamma.title=DIAGNOSTYKA DIGAMMY -entity.entity_cyber_crab.name=Cyber Krab -entity.entity_elder_one.name=Kwakos Przedwieczny +entity.entity_cyber_crab.name=Cyberkrab +entity.entity_elder_one.name=Quackos Starszy entity.entity_fucc_a_ducc.name=Kaczka -entity.entity_glyphid.name=Glifid -entity.entity_glyphid_behemoth.name=Glyphid Behemoth -entity.entity_glyphid_blaster.name=Glyphid Blaster -entity.entity_glyphid_bombardier.name=Glyphid Bombardier -entity.entity_glyphid_brawler.name=Glyphid Brawler +entity.entity_glyphid.name=Glyfid +entity.entity_glyphid_behemoth.name=Glyfid Behemot +entity.entity_glyphid_blaster.name=Glyfid Blaster +entity.entity_glyphid_bombardier.name=Glyfid Bombardier +entity.entity_glyphid_brawler.name=Glyfid Awanturnik entity.entity_glyphid_brenda.name=Brenda -entity.entity_glyphid_nuclear.name=Big Man Johnson -entity.entity_glyphid_scout.name=Glyphid Scout -entity.entity_ntm_fbi.name=FBI Agent -entity.entity_ntm_radiation_blaze.name=Meltdown Elemental -entity.hbm.entity_ntm_ufo.name=Martian Invasion Ship -entity.entity_mob_hunter_chopper.name=Hunter Chopper -entity.entity_mob_mask_man.name=Mask Man -entity.entity_mob_gold_creeper.name=Golden Creeper -entity.entity_mob_nuclear_creeper.name=Nuclear Creeper -entity.entity_mob_phosgene_creeper.name=Phosgene Creeper -entity.entity_mob_tainted_creeper.name=Tainted Creeper -entity.entity_mob_volatile_creeper.name=Volatile Creeper -entity.entity_taint_crab.name=Taint Crab -entity.entity_tesla_crab.name=Tesla Crab -entity.hbm.entity_balls_o_tron.name=Balls-O-Tron Prime -entity.hbm.entity_balls_o_tron_seg.name=Balls-O-Tron Segment -entity.hbm.entity_bullet.name=Bullet -entity.hbm.entity_rocket.name=Rocket -entity.hbm.entity_schrabnel.name=Schrabnel +entity.entity_glyphid_nuclear.name=Big Men Dżonson +entity.entity_glyphid_scout.name=Glyfid Skaut +entity.entity_ntm_fbi.name=Agent FBI +entity.entity_ntm_radiation_blaze.name=Żywiołak stopienia +entity.hbm.entity_ntm_ufo.name=Statek Inwazji Marsjan +entity.entity_mob_hunter_chopper.name=Chopper Myśliwy +entity.entity_mob_mask_man.name=Pan w Masce +entity.entity_mob_gold_creeper.name=Złoty Creeper +entity.entity_mob_nuclear_creeper.name=Jądrowy creeper +entity.entity_mob_phosgene_creeper.name=Fosgenowy Creeper +entity.entity_mob_tainted_creeper.name=Skażony creeper +entity.entity_mob_volatile_creeper.name=Lotny Creeper +entity.entity_taint_crab.name=Skażony krab +entity.entity_tesla_crab.name=Krab Tesli +entity.hbm.entity_balls_o_tron.name=Jądro-Tron +entity.hbm.entity_balls_o_tron_seg.name=Segment Jądro-Trona +entity.hbm.entity_bullet.name=Pocisk +entity.hbm.entity_rocket.name=Rakieta +entity.hbm.entity_schrabnel.name=Schrabłamek -flare.ignition=Ignition -flare.valve=Flow Valve +excavator.crusher=Przełącz kruszarkę +excavator.drill=Przełącz wiertło +excavator.silktouch=Przełącz Jedwabny dotyk +excavator.veinminer=Przełącz kopacza żył +excavator.walling=Przełącz murowanie -fluid.acid_fluid=Acid -fluid.corium_fluid=Corium -fluid.mud_fluid=Poisonous Mud -fluid.schrabidic_fluid=Schrabidic Acid -fluid.toxic_fluid=Stereotypical Green Ooze -fluid.volcanic_lava_fluid=Volcanic Lava +flare.ignition=Zapłon +flare.valve=Zawór przepływowy + -foundry.filter=Filter: %s -foundry.inverted=Redstone inverted -foundry.invertFilter=Filter inverted -foundry.noCast=No mold installed! +fluid.acid_fluid=Kwas +fluid.corium_fluid=Korium +fluid.mud_fluid=Trujące błoto +fluid.schrabidic_fluid=kwas schrabidowy +fluid.toxic_fluid=Stereotypowy zielony szlam +fluid.volcanic_lava_fluid=Lawa wulkaniczna -geiger.chunkRad=Current chunk radiation: -geiger.envRad=Total environmental radiation: -geiger.playerRad=Player contamination: -geiger.playerRes=Player resistance: -geiger.title=GEIGER COUNTER -geiger.title.dosimeter=DOSIMETER +foundry.filter=Filtr: %s +foundry.inverted=Redstone odwrócony +foundry.invertFilter=Filtr odwrócony +foundry.noCast=Brak zainstalowanej formy! +geiger.chunkRad=Bieżące promieniowanie chunka: +geiger.envRad=Całkowite promieniowanie środowiskowe: +geiger.playerRad=Skażenie gracza: +geiger.playerRes=Odporność gracza: +geiger.title=LICZNIK GEIGERA +geiger.title.dosimeter=DOZYMETR gun.make.ARMALITE=Armalite gun.make.AUTO_ORDINANCE=Auto-Ordnance Corporation gun.make.BAE=BAE Systems plc @@ -1075,7 +1100,6 @@ gun.make.MWT=MWT Prototype Labs gun.make.NAZI=Erfurter Maschinenfabrik Geipel gun.make.NONE=- gun.make.RAYTHEON=Raytheon Missile Systems -gun.make.REMINGTON=Remington Arms gun.make.ROCKWELL=Rockwell International Corporation gun.make.ROCKWELL_U=Rockwell International Corporation? gun.make.RYAN=Ryan Industries @@ -1089,20 +1113,20 @@ gun.make.WGW=Wilhelm-Gustloff-Werke gun.make.WINCHESTER=Winchester Repeating Arms Company gun.make.WINCHESTER_BIGMT=Winchester Repeating Arms Company / Big MT -gun.name.ar15_50=AR-15 .50 BMG Mod -gun.name.baeAR=Britannian Standard Issue Assault Rifle -gun.name.bel=Balefire Egg Launcher +gun.name.ar15_50=Mod. AR-15 .50 BMG +gun.name.baeAR=Brytyjski standardowy karabin szturmowy +gun.name.bel=Wyrzutnia jaj balefire gun.name.benelli=Benelli M4 Super 90 -gun.name.benelliDrum=Benelli M4 Super 90 (Drum Magazine Modification) +gun.name.benelliDrum=Benelli M4 Super 90 (Modyfikacja magazynka bębnowego) gun.name.bio=RI No. 2 Mark 1 -gun.name.bolter=Manticora Pattern Boltgun +gun.name.bolter=Boltgun wzoru Manticora gun.name.cPython=Colt Python -gun.name.cz53=CZ53 Personal Minigun +gun.name.cz53=CZ53 Osobisty Minigun gun.name.cz57=CZ57 Avenger Minigun -gun.name.dart=Needle Gun +gun.name.dart=Spluwa igłowa gun.name.deagle=IMI Desert Eagle -gun.name.emp=EMP Orb Projector -gun.name.extinguisher=PROTEX Fire Exinguisher 6kg +gun.name.emp=Projektor kul EMP +gun.name.extinguisher=Gaśnica PROTEX 6kg gun.name.ffiV=FFI Viper gun.name.ffiVInox=FFI Viper Inox gun.name.ffiVLead=FFI Viper Lead @@ -1113,54 +1137,53 @@ gun.name.ffivBling=FFI Viper Bling gun.name.ffivSatur=FFI Viper D-25A gun.name.g36=Heckler & Koch Gewehr 36 gun.name.gPistol=Granatpistole HK69 -gun.name.gustav=Carl Gustav Recoilless Rifle M1 -gun.name.ifHorseshoe=IF-18 Horseshoe -gun.name.ifPit=IF-18 Horseshoe Bottomless Pit -gun.name.ifScope=IF-18 Horseshoe Scoped -gun.name.ifStorm=IF-18 Horseshoe Silver Storm -gun.name.ifVanity=IF-18 Horseshoe Vanity +gun.name.gustav=Karabin bezodrzutowy Carl Gustav M1 +gun.name.ifHorseshoe=IF-18 Podkowa +gun.name.ifPit=IF-18 Podkowa Studnia Bez Dna +gun.name.ifScope=IF-18 Podkowa Luneta +gun.name.ifStorm=IF-18 Podkowa Srebrna Burza +gun.name.ifVanity=IF-18 Podkowa Próżność gun.name.karl=M1 Karl-Gerät gun.name.ks23=KS-23 -gun.name.lacunae=Auntie Lacunae -gun.name.lasetDet=Hopeville Laser Detonator -gun.name.lunaAR=1986 Bishamonten type Assault Rifle -gun.name.lunaGun=1978 Rāhula type Standard Issue Sidearm (Revision 2) -gun.name.lunaHLR=1944 Chang'e type Light Machine Gun -gun.name.lunaShotty=1978 Guan Yu type Scattergun (Revision 1) -gun.name.lunaSMG=1956 Ānanda type Submachine Gun -gun.name.lunaSniper=1915 Hou Yi type Anti-Material Rifle -gun.name.lunaTWR=Time Warp Rifle -gun.name.m2=Browning machine gun, cal. .50, M2, HB -gun.name.m42=M-42 Tactical Nuclear Catapult -gun.name.m42MIRV=M-42 Experimental MIRV -gun.name.m60=Machine Gun, Caliber 7.62 mm, M60 -gun.name.maxim=Maxim gun -gun.name.maximDouble=Double Maxim gun +gun.name.lacunae=Ciocia Lacunae +gun.name.lasetDet=Detonator laserowy Hopeville +gun.name.lunaAR=Karabin szturmowy typu 1986 Bishamonten +gun.name.lunaGun=Standardowa broń boczna typu 1978 Rāhula (Rewizja 2) +gun.name.lunaHLR=Lekki karabin maszynowy typu 1944 Chang'e +gun.name.lunaShotty=Dubeltówka typu 1978 Guan Yu (wersja 1) +gun.name.lunaSMG=Pistolet maszynowy typu 1956 Ananda +gun.name.lunaSniper=Karabin przeciwmaterialny typu 1915 Hou Yi +gun.name.lunaTWR=Karabin Zakrzywiający Czas +gun.name.m2=Karabin maszynowy Browning, kal. .50, M2, HB +gun.name.m42=Taktyczna katapulta nuklearna M-42 +gun.name.m42MIRV=M-42 Eksperymentalny MIRV +gun.name.m60=Karabin maszynowy, kaliber 7,62 mm, M60 +gun.name.maxim=Karabin maszynowy Maxim +gun.name.maximDouble=Podwójny karabin maszynowy Maxim gun.name.mg3=Universal-Maschinengewehr Modell 3 gun.name.mp40=Maschinenpistole 40 -gun.name.nerf=NERF blaster of unknown design -gun.name.osipr=Overwatch Standard Issue Pulse Rifle +gun.name.nerf=Blaster NERF o nieznanej konstrukcji +gun.name.osipr=Standardowy karabin pulsacyjny Overwatch gun.name.panz=Raketenpanzerbüchse 54 -gun.name.quadro=OpenQuadro Guided Man-Portable Missile Launcher -gun.name.remington870=Remington 870 -gun.name.revolverCursed=Britannia Standard Issue Motorized Handgun -gun.name.sauer=Sauer Shotgun +gun.name.quadro=Przenośna wyrzutnia rakiet z przewodnikiem OpenQuadro +gun.name.revolverCursed=Zmotoryzowany pistolet Britannia Standard Issue +gun.name.sauer=Strzelba Sauera gun.name.spas12=Franchi SPAS-12 gun.name.spiw=H&R SPIW -gun.name.stinger=FIM-92 Stinger man-portable air-defense system -gun.name.stingerOneSky=The One Sky Stinger -gun.name.supershotty=Double-Barreled Combat Shotgun -gun.name.tau=XVL1456 Tau Cannon -gun.name.tommy9=M1A1 Submachine Gun 9mm Mod -gun.name.tommy=M1A1 Submachine Gun -gun.name.topaz=Heavy Duty Flamer -gun.name.uacCarbine=UAC-41 Carbine -gun.name.uacDeagle=UAC-H54 "Martian Raptor" Automag -gun.name.uacDMR=UAC-30 Designated Marksman Rifle -gun.name.uacLMG=UAC-49 Light Machine Gun -gun.name.uacPistol=UAC-B950 .45 Standard Issue Handgun -gun.name.uacSMG=UAC-17 Compact Sub-Machine Gun -gun.name.uboinik=Uboinik Revolving Shotgun +gun.name.stinger=FIM-92 Stinger przenośny system przeciwlotniczy +gun.name.stingerOneSky=Stinger Jednego Nieba +gun.name.supershotty=Dwulufowa strzelba bojowa +gun.name.tau=Działo XVL1456 Tau +gun.name.tommy9=Pistolet maszynowy M1A1 mod. 9mm +gun.name.tommy=Pistolet maszynowy M1A1 +gun.name.topaz=Wytrzymały miotacz ognia +gun.name.uacCarbine=Karabin UAC-41 +gun.name.uacDeagle=UAC-H54 „Marsjański Raptor” Automag +gun.name.uacDMR=Wyznaczony karabin wyborowy UAC-30 +gun.name.uacLMG=Lekki karabin maszynowy UAC-49 +gun.name.uacPistol=Pistolet standardowy UAC-B950 .45 +gun.name.uacSMG=Kompaktowy pistolet maszynowy UAC-17 +gun.name.uboinik=Strzelba obrotowa Uboinik gun.name.uzi=IMI Uzi gun.name.uziSatur=IMI Uzi D-25A gun.name.win1887=Winchester Model 1887 @@ -1168,354 +1191,355 @@ gun.name.win1887Inox=Winchester Model 1887 Inox gun.name.win20Inox=Winchester Model 20 Inox gun.name.win20Poly=Winchester Model 20 Polymer gun.name.win20Satur=Winchester Model 20 D-25A -gun.name.zomg=EMC101 Prismatic Negative Energy Cannon +gun.name.zomg=EMC101 Pryzmatyczne Działko Energii Ujemnej -hadron.analysis=Analyzing... -hadron.buttonOn=Analysis Chamber (if present) is ON -hadron.buttonOff=Analysis Chamber is OFF -hadron.error_generic=Error! -hadron.error_no_charge=Error 0x01 [NC] -hadron.error_no_analysis=Error 0x02 [NA] -hadron.error_obstructed_channel=Error 0x03 [OC] -hadron.error_expected_coil=Error 0x04 [EC] -hadron.error_malformed_segment=Error 0x05 [MS] -hadron.error_analysis_too_long=Error 0x06 [ATL] -hadron.error_analysis_too_short=Error 0x07 [ATS] -hadron.error_diode_collision=Error 0x08 [DC] -hadron.error_branching_turn=Error 0x09 [BT] -hadron.hopper0=§eNormal Mode:$All items will be used. -hadron.hopper1=§eHopper Mode:$One item will always remain. -hadron.idle=Idle -hadron.modeCircular=§eCircular Accelerator Mode:$Magnets must loop back into core.$Unlocks more recipes. -hadron.modeLine=§eLinear Accelerator Mode:$Accelerator ends with analysis chamber.$Fewer Recipes. -hadron.noresult=No Result. -hadron.noresult_too_slow=Insuff. momentum! -hadron.noresult_wrong_ingredient=Invalid recipe! -hadron.noresult_wrong_mode=Wrong mode! -hadron.progress=In Progress... -hadron.stats=Previous results: -hadron.stats_coord=Erroring position: %s / %s / %s -hadron.stats_momentum=Momentum: %s -hadron.success=Completed! +hadron.analysis=Analizowanie... +hadron.buttonOn=Komora analityczna (jeśli jest obecna) jest WŁĄCZONA +hadron.buttonOff=Komora analityczna jest WYŁĄCZONA +hadron.error_generic=Błąd! +hadron.error_no_charge=Błąd 0x01 [NC] +hadron.error_no_analysis=Błąd 0x02 [NA] +hadron.error_obstructed_channel=Błąd 0x03 [OC] +hadron.error_expected_coil=Błąd 0x04 [EC] +hadron.error_malformed_segment=Błąd 0x05 [MS] +hadron.error_analysis_too_long=Błąd 0x06 [ATL] +hadron.error_analysis_too_short=Błąd 0x07 [ATS] +hadron.error_diode_collision=Błąd 0x08 [DC] +hadron.error_branching_turn=Błąd 0x09 [BT] +hadron.hopper0=§eTryb normalny: $Zostaną użyte wszystkie przedmioty. +hadron.hopper1=§eTryb lejka: $Jeden przedmiot zawsze zostanie. +hadron.idle=Bezczynny +hadron.modeCircular=§eTryb akceleratora kołowego:$Magnesy muszą zapętlić się z powrotem do rdzenia.$Odblokowuje więcej przepisów. +hadron.modeLine=§eTryb akceleratora liniowego:$Akcelerator kończy się komorą analityczną.$Mniej przepisów. +hadron.noresult=Brak rezultatu. +hadron.noresult_too_slow=Niewyst. rozpęd! +hadron.noresult_wrong_ingredient=Nieprawidłowy przepis! +hadron.noresult_wrong_mode=Zły tryb! +hadron.progress=W toku... +hadron.stats=Poprzednie rezultaty: +hadron.stats_coord=Błędna pozycja: %s / %s / %s +hadron.stats_momentum=Rozpęd: %s +hadron.success=Ukończono! -hazard.prot=Protects against hazards: -hazard.noprot=Does NOT protect against: -hazard.bacteria=Bacteria / Aerosols -hazard.corrosive=Corrosive Fumes -hazard.gasChlorine=Chemical Gas -hazard.gasInert=Inert Gas / Asphxiants -hazard.gasMonoxide=Carbon Monoxide -hazard.light=Bright Lights -hazard.nerveAgent=Nerve Agent -hazard.neverProtects=Will never protect against: -hazard.particleCoarse=Airborne Particles -hazard.particleFine=Particulates -hazard.sand=Eye Irritants +hazard.prot=Chroni przed: +hazard.noprot=NIE chroni przed: +hazard.bacteria=Bakteriami / Aerozolami +hazard.corrosive=Żrącymi oparami +hazard.gasChlorine=Gazem chemicznym +hazard.gasInert=Gazem obojętnym / Środkami duszącymi +hazard.gasMonoxide=Tlenkiem węgla +hazard.light=Jasnym światłem +hazard.nerveAgent=Środkami nerwowymi +hazard.neverProtects=Nigdy nie chroni przed: +hazard.particleCoarse=Cząsteczkami unoszącymi się w powietrzu +hazard.particleFine=Cząstkami stałymi +hazard.sand=Substancjami drażniących dla oczu -hbm.key=NTM Hotkeys -hbm.key.calculator=Calculator -hbm.key.craneLoad=Load/Unload Crane -hbm.key.craneMoveDown=Move Crane Backward -hbm.key.craneMoveLeft=Move Crane Left -hbm.key.craneMoveRight=Move Crane Right -hbm.key.craneMoveUp=Move Crane Forward -hbm.key.dash=Dash (Unbind from Crouch in config) -hbm.key.toggleBack=Toggle Backpack -hbm.key.toggleHUD=Toggle HUD -hbm.key.reload=Reload +hbm.key=Skróty klawiszowe NTM +hbm.key.calculator=Kalkulator +hbm.key.craneLoad=Załaduj/rozładuj dźwig +hbm.key.craneMoveDown=Przesuń dźwig do tyłu +hbm.key.craneMoveLeft=Przesuń dźwig w lewo +hbm.key.craneMoveRight=Przesuń dźwig w prawo +hbm.key.craneMoveUp=Przesuń dźwig do przodu +hbm.key.dash=Sus (Odłącz od Kucania w konfiguracji) +hbm.key.toggleBack=Włącz/wyłącz plecak +hbm.key.toggleHUD=Włącz/wyłącz HUD +hbm.key.reload=Przeładuj -hbmfluid.acid=Hydrogen Peroxide -hbmfluid.amat=Antimatter -hbmfluid.aromatics=Aromatic Hydrocarbons -hbmfluid.aschrab=Antischrabidium -hbmfluid.balefire=BF Rocket Fuel -hbmfluid.biofuel=Biofuel -hbmfluid.biogas=Biogas -hbmfluid.bitumen=Bitumen -hbmfluid.blood=Blood -hbmfluid.blood_hot=Hot Blood -hbmfluid.calcium_chloride=Calciumchloride Solution -hbmfluid.calcium_solution=Calcium Solution -hbmfluid.carbondioxide=Carbon Dioxide -hbmfluid.chlorine=Chlorine Gas -hbmfluid.chlorocalcite_cleaned=Cleaned Chlorocalcite Solution -hbmfluid.chlorocalcite_mix=Mixed Chlorocalcite Solution -hbmfluid.chlorocalcite_solution=Chlorocalcite Solution -hbmfluid.cholesterol=Cholesterol Solution -hbmfluid.coalcreosote=Coal Tar Creosote -hbmfluid.coalgas=Coal Gasoline -hbmfluid.coalgas_leaded=Leaded Coal Gasoline -hbmfluid.coaloil=Coal Oil -hbmfluid.colloid=Colloid -hbmfluid.coolant=Coolant -hbmfluid.coolant_hot=Hot Coolant -hbmfluid.crackoil=Cracked Oil -hbmfluid.cryogel=Cryogel -hbmfluid.death=Osmiridic Solution -hbmfluid.deuterium=Deuterium +hbmfluid.acid=Nadtlenek wodoru +hbmfluid.amat=Antymateria +hbmfluid.aromatics=Węglowodory aromatyczne +hbmfluid.aschrab=Antyschrabid +hbmfluid.balefire=Paliwo rakietowe BF +hbmfluid.biofuel=Biopaliwo +hbmfluid.biogas=Biogaz +hbmfluid.bitumen=Bitum +hbmfluid.blood=Krew +hbmfluid.blood_hot=Gorąca krew +hbmfluid.calcium_chloride=Roztwór chlorku wapnia +hbmfluid.calcium_solution=Roztwór wapnia +hbmfluid.carbondioxide=Dwutlenek węgla +hbmfluid.chlorine=Gazowy chlor +hbmfluid.chlorocalcite_cleaned=Oczyszczony roztwór chlorokalcytu +hbmfluid.chlorocalcite_mix=Mieszany roztwór chlorokalcytu +hbmfluid.chlorocalcite_solution=Roztwór chlorokalcytu +hbmfluid.cholesterol=Roztwór cholesterolu +hbmfluid.coalcreosote=Kreozot ze smoły węglowej +hbmfluid.coalgas=Gazolina węglowa +hbmfluid.coalgas_leaded=Gazolina węglowa z ołowiem +hbmfluid.coaloil=Olej węglowy +hbmfluid.colloid=Koloid +hbmfluid.coolant=Chłodziwo +hbmfluid.coolant_hot=Gorące chłodziwo +hbmfluid.crackoil=Krakowany olej +hbmfluid.cryogel=Kriożel +hbmfluid.death=Roztwór osmirydowy +hbmfluid.deuterium=Deuter hbmfluid.diesel=Diesel -hbmfluid.diesel_crack=Cracked Diesel -hbmfluid.diesel_crack_reform=High-Octane Cracked Diesel -hbmfluid.diesel_reform=High-Octane Diesel -hbmfluid.egg=Dissolved Egg -hbmfluid.estradiol=Estradiol Solution -hbmfluid.ethanol=Ethanol -hbmfluid.enderjuice=Ender Juice -hbmfluid.fishoil=Fish Oil -hbmfluid.fracksol=Fracking Solution -hbmfluid.gas=Natural Gas -hbmfluid.gas_coker=Coker Gas -hbmfluid.gasoline=Gasoline -hbmfluid.gasoline_leaded=Leaded Gasoline -hbmfluid.heatingoil=Heating Oil -hbmfluid.heatingoil_vacuum=Heavy Heating Oil -hbmfluid.heavyoil=Heavy Oil -hbmfluid.heavyoil_vacuum=Vacuum Heavy Oil -hbmfluid.heavywater=Heavy Water -hbmfluid.helium3=Helium-3 -hbmfluid.helium4=Helium-4 -hbmfluid.hotcrackoil=Hot Cracked Oil -hbmfluid.hotoil=Hot Crude Oil -hbmfluid.hotsteam=Dense Steam -hbmfluid.hydrogen=Liquid Hydrogen -hbmfluid.iongel=Ionic Gel -hbmfluid.kerosene=Kerosene -hbmfluid.kerosene_reform=Jet Fuel -hbmfluid.lava=Lava -hbmfluid.lightoil=Light Oil -hbmfluid.lightoil_crack=Cracked Light Oil -hbmfluid.lightoil_vacuum=Vacuum Light Oil +hbmfluid.diesel_crack=Krakowany diesel +hbmfluid.diesel_crack_reform=Wysokooktanowy krakowany diesel +hbmfluid.diesel_reform=Wysokooktanowy diesel +hbmfluid.egg=Rozpuszczone jajko +hbmfluid.estradiol=Roztwór estradiolu +hbmfluid.ethanol=Etanol +hbmfluid.enderjuice=Sok kresowy +hbmfluid.fracksol=Roztwór do szczelinowania +hbmfluid.fishoil=Olej rybny +hbmfluid.gas_coker=Gaz koksowniczy +hbmfluid.gas=Gaz ziemny +hbmfluid.gasoline=Gazolina +hbmfluid.gasoline_leaded=Gazolina ołowiowa +hbmfluid.heatingoil=Olej grzewczy +hbmfluid.heatingoil_vacuum=Ciężki olej grzewczy +hbmfluid.heavyoil=Ciężka ropa naftowa +hbmfluid.heavyoil_vacuum=Próżniowa ciężka ropa naftowa +hbmfluid.heavywater=Ciężka woda +hbmfluid.helium3=Hel-3 +hbmfluid.helium4=Hel-4 +hbmfluid.hotcrackoil=Gorący krakowany olej +hbmfluid.hotoil=Gorąca ropa naftowa +hbmfluid.hotsteam=Gęsta para +hbmfluid.hydrogen=Ciekły wodór +hbmfluid.iongel=Żel jonowy +hbmfluid.kerosene=Kerozyna +hbmfluid.kerosene_reform=Paliwo odrzutowe +hbmfluid.lava=Lawa +hbmfluid.lightoil=Lekki olej +hbmfluid.lightoil_crack=Krakowany lekki olej +hbmfluid.lightoil_vacuum=Próżniowy lekki olej hbmfluid.lpg=LPG -hbmfluid.lubricant=Engine Lubricant -hbmfluid.mercury=Mercury -hbmfluid.mug=Mug Root Beer -hbmfluid.mug_hot=Hot Mug Root Beer -hbmfluid.mustardgas=Mustard Gas -hbmfluid.naphtha=Naphtha -hbmfluid.naphtha_coker=Coker Naphtha -hbmfluid.naphtha_crack=Cracked Naphtha -hbmfluid.nitan=NITAN© 100 Octane Super Fuel -hbmfluid.nitric_acid=Nitric Acid -hbmfluid.nitroglycerin=Nitroglycerin -hbmfluid.none=None -hbmfluid.oil=Crude Oil -hbmfluid.oil_coker=Coker Oil -hbmfluid.oxygen=Liquid Oxygen -hbmfluid.oxyhydrogen=Oxyhydrogen -hbmfluid.pain=Pandemonium(III)tantalite Solution -hbmfluid.petroil=Petroil -hbmfluid.petroil_leaded=Leaded Petroil -hbmfluid.petroleum=Petroleum Gas -hbmfluid.phosgene=Phosgene -hbmfluid.plasma_bf=Balefire Plasma -hbmfluid.plasma_dh3=Deuterium-Helium-3 Plasma -hbmfluid.plasma_dt=Deuterium-Tritium Plasma -hbmfluid.plasma_hd=Hydrogen-Deuterium Plasma -hbmfluid.plasma_ht=Hydrogen-Tritium Plasma -hbmfluid.plasma_xm=Helium-4-Oxygen Plasma -hbmfluid.potassium_chloride=Potassiumchloride Solution -hbmfluid.puf6=Plutonium Hexafluoride -hbmfluid.radiosolvent=High-Performance Solvent -hbmfluid.reclaimed=Reclaimed Industrial Oil -hbmfluid.redmud=Red Mud -hbmfluid.reformate=Reformate -hbmfluid.reformgas=Reformate Gas -hbmfluid.salient=Salient Green -hbmfluid.sas3=Schrabidium Trisulfide -hbmfluid.schrabidic=Schrabidic Acid -hbmfluid.seedslurry=Seeding Slurry -hbmfluid.smear=Industrial Oil -hbmfluid.smoke=Smoke -hbmfluid.smoke_leaded=Leaded Smoke -hbmfluid.smoke_poison=Poison Smoke -hbmfluid.solvent=Solvent -hbmfluid.sourgas=Sour Gas -hbmfluid.spentsteam=Low-Pressure Steam -hbmfluid.steam=Steam -hbmfluid.sulfuric_acid=Sulfuric Acid -hbmfluid.sunfloweroil=Sunflower Seed Oil -hbmfluid.superhotsteam=Super Dense Steam -hbmfluid.syngas=Syngas -hbmfluid.tritium=Tritium -hbmfluid.uf6=Uranium Hexafluoride -hbmfluid.ultrahotsteam=Ultra Dense Steam -hbmfluid.unsaturateds=Unsaturated Hydrocarbons -hbmfluid.wastefluid=Liquid Nuclear Waste -hbmfluid.wastegas=Gaseous Nuclear Waste -hbmfluid.water=Water -hbmfluid.watz=Poisonous Mud -hbmfluid.woodoil=Wood Oil -hbmfluid.xenon=Xenon Gas -hbmfluid.xpjuice=Experience Juice +hbmfluid.lubricant=Smar do silnika +hbmfluid.mercury=Rtęć +hbmfluid.mug=Piwo korzenne Mug +hbmfluid.mug_hot=Gorące piwo korzenne Mug +hbmfluid.mustardgas=Gaz musztardowy +hbmfluid.naphtha=Nafta +hbmfluid.naphtha_coker=Nafta koksownicza +hbmfluid.naphtha_crack=Krakowana nafta +hbmfluid.nitan=100-Oktanowe Superpaliwo NITAN© +hbmfluid.nitric_acid=Kwas azotowy +hbmfluid.nitroglycerin=Nitrogliceryna +hbmfluid.none=Nic +hbmfluid.oil=Ropa naftowa +hbmfluid.oil_coker=Olej koksowniczy +hbmfluid.oxygen=Ciekły tlen +hbmfluid.oxyhydrogen=Tlenowodór +hbmfluid.pain=Roztwór tantalitu pandemonium(III). +hbmfluid.petroil=Benzyna +hbmfluid.petroil_leaded=Benzyna ołowiowa +hbmfluid.petroleum=Gaz z ropy naftowej +hbmfluid.phosgene=Fosgen +hbmfluid.plasma_bf=Plazma balefire +hbmfluid.plasma_dh3=Plazma deuterowo-helowa-3 +hbmfluid.plasma_dt=Plazma deuterowo-trytowa +hbmfluid.plasma_hd=Plazma wodorowo-deuterowa +hbmfluid.plasma_ht=Plazma wodorowo-trytowa +hbmfluid.plasma_xm=Plazma ksenonowo-rtęciowa +hbmfluid.potassium_chloride=Roztwór chlorku potasu +hbmfluid.puf6=Heksafluorek plutonu +hbmfluid.radiosolvent=Rozpuszczalnik o wysokiej wydajności +hbmfluid.reclaimed=Olej przemysłowy z odzysku +hbmfluid.redmud=Czerwone błoto +hbmfluid.reformate=Reformat +hbmfluid.reformgas=Gaz reformowany +hbmfluid.salient=Wyrazista zieleń +hbmfluid.sas3=Trisiarczek schrabidu +hbmfluid.schrabidic=Kwas schrabidowy +hbmfluid.seedslurry=Gnojowica siewna +hbmfluid.smear=Olej przemysłowy +hbmfluid.smoke=Dym +hbmfluid.smoke_leaded=Ołowiany dym +hbmfluid.smoke_poison=Trujący dym +hbmfluid.solvent=Rozpuszczalnik +hbmfluid.sourgas=Kwaśny gaz +hbmfluid.spentsteam=Para niskociśnieniowa +hbmfluid.steam=Para +hbmfluid.sulfuric_acid=Kwas siarkowy +hbmfluid.sunfloweroil=Olej słonecznikowy +hbmfluid.superhotsteam=Supergęsta para +hbmfluid.syngas=Gaz syntezowy +hbmfluid.tritium=Tryt +hbmfluid.uf6=Heksafluorek uranu +hbmfluid.ultrahotsteam=Ultragęsta para +hbmfluid.unsaturateds=Węglowodory nienasycone +hbmfluid.wastefluid=Płynne odpady jądrowe +hbmfluid.wastegas=Gazowe odpady jądrowe +hbmfluid.water=Woda +hbmfluid.watz=Trujące błoto +hbmfluid.woodoil=Olej drzewny +hbmfluid.xenon=Gaz ksenonowy +hbmfluid.xpjuice=Sok doświadczenia hbmfluid.xylene=BTX -hbmpseudofluid.none=Empty -hbmpseudofluid.heuf6=Highly Enriched UF6 -hbmpseudofluid.meuf6=Medium Enriched UF6 -hbmpseudofluid.leuf6=Low Enriched UF6 -hbmpseudofluid.nuf6=Natural UF6 -hbmpseudofluid.pf6=Plutonium Hexafluoride -hbmpseudofluid.mud_heavy=Heavy Sludge Fraction -hbmpseudofluid.mud=Poisonous Sludge Gas +hbmpseudofluid.none=Puste +hbmpseudofluid.heuf6=Silnie wzbogacony UF6 +hbmpseudofluid.meuf6=Średnio wzbogacony UF6 +hbmpseudofluid.leuf6=Nisko wzbogacony UF6 +hbmpseudofluid.nuf6=Naturalny UF6 +hbmpseudofluid.pf6=Heksafluorek plutonu +hbmpseudofluid.mud_heavy=Frakcja osadów ciężkich +hbmpseudofluid.mud=Trujący gaz szlamowy -hbmmat.actinium227=Actinium-227 -hbmmat.advancedalloy=Advanced Alloy -hbmmat.aluminum=Aluminium -hbmmat.americiumrg=Reactor-Grade Americium -hbmmat.americium241=Americium-241 -hbmmat.americium242=Americium-242 -hbmmat.arsenic=Arsenic -hbmmat.asbestos=Asbestos -hbmmat.bakelite=Bakelite -hbmmat.beryllium=Beryllium -hbmmat.bismuth=Bismuth -hbmmat.borax=Borax +hbmmat.actinium227=Aktyn-227 +hbmmat.advancedalloy=Zaawansowany stop +hbmmat.aluminum=Glin +hbmmat.americiumrg=Ameryk klasy reaktora +hbmmat.americium241=Ameryk-241 +hbmmat.americium242=Ameryk-242 +hbmmat.arsenic=Arsen +hbmmat.asbestos=Asbest +hbmmat.bakelite=Bakelit +hbmmat.beryllium=Beryl +hbmmat.bismuth=Bizmut +hbmmat.borax=Boraks hbmmat.boron=Boron -hbmmat.cadmium=Cadmium -hbmmat.carbon=Carbon -hbmmat.cdalloy=Cadmium Steel -hbmmat.cinnabar=Cinnabar -hbmmat.cmbsteel=Combine Steel -hbmmat.coal=Coal -hbmmat.coalcoke=Coal Coke -hbmmat.cobalt=Cobalt -hbmmat.cobalt60=Cobalt-60 -hbmmat.coltan=Coltan -hbmmat.copper=Copper +hbmmat.cadmium=Kadm +hbmmat.carbon=Karbon +hbmmat.cdalloy=Stal kadmowa +hbmmat.cinnabar=Cynober +hbmmat.cmbsteel=Stal Kombajnowa +hbmmat.coal=Węgiel +hbmmat.coalcoke=Koks węglowy +hbmmat.cobalt=Kobalt +hbmmat.cobalt60=Kobalt-60 +hbmmat.coltan=Koltan +hbmmat.copper=Miedź hbmmat.desh=Desh -hbmmat.dineutronium=Dineutronium -hbmmat.durasteel=High-Speed Steel -hbmmat.euphemium=Euphemium -hbmmat.ferrouranium=Ferrouranium -hbmmat.fiberglass=Fiberglass -hbmmat.fluorite=Fluorite -hbmmat.flux=Flux -hbmmat.ghiorsium336=Ghiorsium-336 -hbmmat.gold=Gold -hbmmat.gold198=Gold-198 -hbmmat.graphene=Graphene -hbmmat.graphite=Graphite -hbmmat.hematite=Hematite -hbmmat.iron=Iron -hbmmat.lapis=Lapis Lazuli -hbmmat.lead=Lead -hbmmat.lead209=Lead-209 -hbmmat.lignitecoke=Lignite Coke -hbmmat.lignite=Lignite -hbmmat.lithium=Lithium -hbmmat.magnetizedtungsten=Magnetized Tungsten -hbmmat.malachite=Malachite -hbmmat.meteoriciron=Meteoric Iron -hbmmat.mingrade=Minecraft Grade Copper -hbmmat.neptunium237=Neptunium-237 -hbmmat.niobium=Niobium -hbmmat.obsidian=Obsidian -hbmmat.osmiridium=Osmiridium -hbmmat.petcoke=Petroleum Coke -hbmmat.pigiron=Pig Iron -hbmmat.plutonium=Plutonium -hbmmat.plutonium238=Plutonium-238 -hbmmat.plutonium239=Plutonium-239 -hbmmat.plutonium240=Plutonium-240 -hbmmat.plutonium241=Plutonium-241 -hbmmat.plutoniumrg=Reactor-Grade Plutonium -hbmmat.polonium210=Polonium-210 -hbmmat.polymer=Polymer -hbmmat.radium226=Radium-226 -hbmmat.redphosphorus=Red Phosphorus +hbmmat.dineutronium=Dineutron +hbmmat.durasteel=Stal szybkotnąca +hbmmat.euphemium=Eufem +hbmmat.ferrouranium=Ferrouran +hbmmat.fiberglass=Włókno szklane +hbmmat.fluorite=Fluoryt +hbmmat.flux=Topnik +hbmmat.ghiorsium336=Giors-336 +hbmmat.gold=Złoto +hbmmat.gold198=Złoto-198 +hbmmat.graphene=Grafen +hbmmat.graphite=Grafit +hbmmat.hematite=Hematyt +hbmmat.iron=Żelazo +hbmmat.lapis=Lazuryt +hbmmat.lead=Ołów +hbmmat.lead209=Ołów-209 +hbmmat.lignitecoke=Koks brunatny +hbmmat.lignite=Węgiel brunatny +hbmmat.lithium=Lit +hbmmat.magnetizedtungsten=Namagnesowany wolfram +hbmmat.malachite=Malachit +hbmmat.meteoriciron=Żelazo meteorytowe +hbmmat.mingrade=Miedź klasy Minecraft +hbmmat.neptunium237=Neptun-237 +hbmmat.niobium=Niob +hbmmat.obsidian=Obsydian +hbmmat.osmiridium=Osmiryd +hbmmat.petcoke=Koks naftowy +hbmmat.pigiron=Surówka żelazna +hbmmat.plutonium=Pluton +hbmmat.plutonium238=Pluton-238 +hbmmat.plutonium239=Pluton-239 +hbmmat.plutonium240=Pluton-240 +hbmmat.plutonium241=Pluton-241 +hbmmat.plutoniumrg=Pluton klasy reaktora +hbmmat.polonium210=Polon-210 +hbmmat.polymer=Polimer +hbmmat.radium226=Rad-226 +hbmmat.redphosphorus=Czerwony fosfor hbmmat.redstone=Redstone -hbmmat.rubber=Rubber -hbmmat.saltpeter=Niter -hbmmat.saturnite=Saturnite -hbmmat.schrabidate=Ferric Schrabidate -hbmmat.schrabidium=Schrabidium -hbmmat.schraranium=Schraranium -hbmmat.slag=Slag -hbmmat.solinium=Solinium +hbmmat.rubber=Guma +hbmmat.saltpeter=Saletra +hbmmat.saturnite=Saturnyt +hbmmat.schrabidate=Schrabidan żelazowy +hbmmat.schrabidium=Schrabid +hbmmat.schraranium=Schraran +hbmmat.slag=Żużel +hbmmat.solinium=Solyn hbmmat.starmetal=Starmetal -hbmmat.steel=Steel -hbmmat.stone=Stone -hbmmat.sulfur=Sulfur -hbmmat.tantalum=Tantalum -hbmmat.tcalloy=Technetium Steel -hbmmat.technetium99=Technetium-99 -hbmmat.titanium=Titanium -hbmmat.thorium232=Thorium-232 -hbmmat.tungsten=Tungsten -hbmmat.uranium=Uranium -hbmmat.uranium233=Uranium-233 -hbmmat.uranium235=Uranium-235 -hbmmat.uranium238=Uranium-238 -hbmmat.watzmud=Poisonous Mud -hbmmat.whitephosphorus=White Phosphorus +hbmmat.steel=Stal +hbmmat.stone=Kamień +hbmmat.sulfur=Siarka +hbmmat.tantalum=Tantal +hbmmat.tcalloy=Stal technetowa +hbmmat.technetium99=Technet-99 +hbmmat.titanium=Tytan +hbmmat.thorium232=Tor-232 +hbmmat.tungsten=Wolfram +hbmmat.uranium=Uran +hbmmat.uranium233=Uran-233 +hbmmat.uranium235=Uran-235 +hbmmat.uranium238=Uran-238 +hbmmat.watzmud=Trujące błoto +hbmmat.whitephosphorus=Biały fosfor hbmmat.workersalloy=Desh -hbmmat.wroughtiron=Wroght Iron +hbmmat.wroughtiron=Kute żelazo +hbmmat.zirconium=Cyrkon -matshape.block=%s Block -matshape.blocks=%s Blocks -matshape.ingot=%s Ingot -matshape.ingots=%s Ingots -matshape.nugget=%s Nugget -matshape.nuggets=%s Nuggets -matshape.quantum=%s Quantum -matshape.quanta=%s Quanta +matshape.block=Blok %sa +matshape.blocks=Bloki %sa +matshape.ingot=Sztabka %sa +matshape.ingots=Sztabki %sa +matshape.nugget=Samorodek %sa +matshape.nuggets=Samorodki %sa +matshape.quantum=Kwant %sa +matshape.quanta=Kwanty %sa -info.asbestos=My lungs are burning. -info.coaldust=It's hard to breathe here. -info.coil=Coil Strength -info.templatefolder=Created with %s -info.template_in=Input: -info.template_in_p=Inputs: -info.template_out=Output: -info.template_out_p=Outputs: -info.template_seconds=seconds -info.template_time=Production Time: +info.asbestos=Moje płuca płoną. +info.coaldust=Trudno tu oddychać. +info.coil=Siłą zwoju +info.templatefolder=Utworzono za pomocą %s +info.template_in=Wejście: +info.template_in_p=Wejścia: +info.template_out=Wyjście: +info.template_out_p=Wyjścia: +info.template_seconds=sekund +info.template_time=Czas produkcji: -item.acetylene_torch.name=Acetylene Welding Torch -item.ajr_boots.name=Steel Ranger Boots -item.ajr_helmet.name=Steel Ranger Helmet -item.ajr_legs.name=Steel Ranger Leggings -item.ajr_plate.name=Steel Ranger Chestplate -item.ajro_boots.name=AJR Power Armor Boots -item.ajro_helmet.name=AJR Power Armor Helmet -item.ajro_legs.name=AJR Power Armor Leggings -item.ajro_plate.name=AJR Power Armor Chestplate -item.alloy_axe.name=Advanced Alloy Axe -item.alloy_boots.name=Advanced Alloy Boots -item.alloy_helmet.name=Advanced Alloy Helmet -item.alloy_hoe.name=Advanced Alloy Hoe -item.alloy_legs.name=Advanced Alloy Leggings -item.alloy_pickaxe.name=Advanced Alloy Pickaxe -item.alloy_plate.name=Advanced Alloy Chestplate -item.alloy_shovel.name=Advanced Alloy Shovel -item.alloy_sword.name=Advanced Alloy Sword -item.ammo_12gauge.name=12 Gauge Buckshot -item.ammo_12gauge_du.name=12 Gauge Buckshot (Uranium Coated) -item.ammo_12gauge_incendiary.name=12 Gauge Buckshot (Incendiary) -item.ammo_12gauge_marauder.name=12 Gauge Tactical Anti-Marauder Shell -item.ammo_12gauge_percussion.name=12 Gauge Percussion Cap -item.ammo_12gauge_shrapnel.name=12 Gauge Buckshot (Shrapnel) -item.ammo_12gauge_sleek.name=12 Gauge Buckshot (IF-R&D) -item.ammo_20gauge.name=20 Gauge Buckshot -item.ammo_20gauge_caustic.name=20 Gauge Buckshot (Caustic) -item.ammo_20gauge_explosive.name=20 Gauge Buckshot (Explosive) -item.ammo_20gauge_flechette.name=20 Gauge Flechette Shell -item.ammo_20gauge_incendiary.name=20 Gauge Buckshot (Incendiary) -item.ammo_20gauge_shock.name=20 Gauge Buckshot (Shock) -item.ammo_20gauge_shrapnel.name=20 Gauge Buckshot (Shrapnel) -item.ammo_20gauge_sleek.name=20 Gauge Buckshot (IF-R&D) -item.ammo_20gauge_slug.name=20 Gauge Brenneke Slug -item.ammo_20gauge_wither.name=20 Gauge Buckshot (Withering) -item.ammo_22lr.name=.22 LR Round -item.ammo_22lr_ap.name=.22 LR Round (Armor Piercing) -item.ammo_22lr_chlorophyte.name=.22 LR Round (Chlorophyte) -item.ammo_357_desh.name=.357 Magnum Desh Bullet -item.ammo_44.name=.44 Magnum Bullet -item.ammo_44_ap.name=.44 Magnum Bullet (Armor Piercing) -item.ammo_44_bj.name=.44 Magnum Bullet (Boat) -item.ammo_44_chlorophyte.name=.44 Magnum Bullet (Chlorophyte) -item.ammo_44_du.name=.44 Magnum Bullet (DU) -item.ammo_44_phosphorus.name=.44 Magnum Bullet (WP) -item.ammo_44_pip.name=.44 Magnum Bullet (Boxcar) +item.acetylene_torch.name=Palnik acetylenowy +item.ajr_boots.name=Buty Stalowego Rangera +item.ajr_helmet.name=Hełm Stalowego Rangera +item.ajr_legs.name=Legginsy Stalowego Rangera +item.ajr_plate.name=Napierśnik Stalowego Rangera +item.ajro_boots.name=Buty pancerza wspomaganego AJR +item.ajro_helmet.name=Hełm pancerza wspomaganego AJR +item.ajro_legs.name=Legginsy pancerza wspomaganego AJR +item.ajro_plate.name=Napierśnik pancerza wspomaganego AJR +item.alloy_axe.name=Siekiera ze stopu zaawansowanego +item.alloy_boots.name=Buty ze stopu zaawansowanego +item.alloy_helmet.name=Hełm ze stopu zaawansowanego +item.alloy_hoe.name=Motyka ze stopu zaawansowanego +item.alloy_legs.name=Legginsy ze stopu zaawansowanego +item.alloy_pickaxe.name=Kilof ze stopu zaawansowanego +item.alloy_plate.name=Napierśnik ze stopu zaawansowanego +item.alloy_shovel.name=Łopata ze stopu zaawansowanego +item.alloy_sword.name=Miecz ze stopu zaawansowanego +item.ammo_12gauge.name=Śrut kalibru 12 +item.ammo_12gauge_du.name=Śrut kalibru 12 (Pokryty uranem) +item.ammo_12gauge_incendiary.name=Śrut kalibru 12 (Zapalający) +item.ammo_12gauge_marauder.name=Pocisk taktyczny anty-korsarzowy kalibru 12 +item.ammo_12gauge_percussion.name=Kapiszon kalibru 12 +item.ammo_12gauge_shrapnel.name=Śrut kalibru 12 (Szrapnel) +item.ammo_12gauge_sleek.name=Śrut kalibru 12 (IF-R&D) +item.ammo_20gauge.name=Śrut kalibru 20 +item.ammo_20gauge_caustic.name=Śrut kalibru 20 (żrący) +item.ammo_20gauge_explosive.name=Śrut kalibru 20 (Wybuchowy) +item.ammo_20gauge_flechette.name=Flechette kalibru 20 +item.ammo_20gauge_incendiary.name=Śrut kalibru 20 (Zapalający) +item.ammo_20gauge_shock.name=Śrut kalibru 20 (Wstrząsający) +item.ammo_20gauge_shrapnel.name=Śrut kalibru 20 (Szrapnel) +item.ammo_20gauge_sleek.name=Śrut kalibru 20 (IF-R&D) +item.ammo_20gauge_slug.name=Slug Brenneke kalibru 20 +item.ammo_20gauge_wither.name=Śrut kaliber 20 (Wiednący) +item.ammo_22lr.name=.22 LR +item.ammo_22lr_ap.name=.22 LR (Przeciwpancerny) +item.ammo_22lr_chlorophyte.name=.22 LR (Chlorofitowy) +item.ammo_357_desh.name=.357 Magnum Desh +item.ammo_44.name=.44 Magnum +item.ammo_44_ap.name=.44 Magnum (Przeciwpancerny) +item.ammo_44_bj.name=.44 Magnum (Łódka) +item.ammo_44_chlorophyte.name=.44 Magnum (Chlorofitowy) +item.ammo_44_du.name=.44 Magnum (DU) +item.ammo_44_phosphorus.name=.44 Magnum (WP) +item.ammo_44_pip.name=.44 Magnum (Wagon) item.ammo_44_rocket.name=.44 Magnum Rocket item.ammo_44_silver.name=.44 Magnum Bullet (Building) item.ammo_44_star.name=.44 Magnum Bullet (Starmetal) @@ -1589,7 +1613,7 @@ item.ammo_9mm_du.name=9mm Round (DU) item.ammo_9mm_rocket.name=9mm Rocket item.ammo_arty.name=16" Artillery Shell item.ammo_arty_cargo.name=16" Express Delivery Artillery Shell -item.ammo_arty_chlorine.name=16" Chlorine Gas Artillery Shell +item.ammo_arty_chlorine.name=16" Chlorine Gas Artil item.ammo_arty_classic.name=16" Artillery Shell (The Factorio Special) item.ammo_arty_he.name=16" High Explosive Artillery Shell item.ammo_arty_mini_nuke.name=16" Micro Nuclear Artillery Shell @@ -1600,6 +1624,9 @@ item.ammo_arty_phosgene.name=16" Phosgene Artillery Shell item.ammo_arty_phosphorus.name=16" Phosphorus Shell item.ammo_arty_phosphorus_multi.name=16" Multi Phosphorus Shell item.ammo_cell.name=Energy Cell +item.ammo_coilgun.name=Coilgun Tungsten Ball +item.ammo_coilgun_du.name=Coilgun Ferrouranium Ball +item.ammo_coilgun_rubber.name=Coilgun Rubber Ball item.ammo_container.name=Ammo Container item.ammo_dart.name=Plastic Dart (Withering) item.ammo_dart_nerf.name=NERF Dart @@ -2377,6 +2404,10 @@ item.elec_sword.name=Stunstick item.energy_core.name=Makeshift Energy Core item.entanglement_kit.name=Entanglement Kit item.entanglement_kit.desc=Teleporter crafting item.$Enables dimension-shifting via a$beryllium-enhanced resource scanner. +item.envsuit_boots.name=M1TTY Environment Suit Boots +item.envsuit_helmet.name=M1TTY Environment Suit Helmet +item.envsuit_legs.name=M1TTY Environment Suit Leggings +item.envsuit_plate.name=M1TTY Environment Suit Chestplate item.euphemium_boots.name=Euphemium Boots item.euphemium_capacitor.name=Euphemium Capacitor item.euphemium_capacitor.desc=Permits passive dispersion of accumulated positive energy. @@ -2543,6 +2574,7 @@ item.gun_avenger.name=CZ57 Avenger Minigun item.gun_b92.name=§9B92 Energy Pistol§r item.gun_b92_ammo.name=§9B92 Energy Cell§r item.gun_b93.name=§cB93 Energy Mod§r +item.gun_benelli.name=Benelli Autoshotgun (Drum Mod) item.gun_bf.name=BEL item.gun_bf_ammo.name=Balefire Shell item.gun_bio_revolver.name=Atlas @@ -2556,6 +2588,7 @@ item.gun_calamity.name=Buzzsaw item.gun_calamity_ammo.name=.50 BMG Round (LEGACY) item.gun_calamity_dual.name=Saddle Gun item.gun_chemthrower.name=Chemthrower +item.gun_coilgun.name=Coilgun item.gun_cryolator.name=The Cryolator item.gun_cryolator_ammo.name=Cryo Cell item.gun_dampfmaschine.name=Totally Not a Joke Weapon @@ -2649,6 +2682,7 @@ item.gun_super_shotgun.name=Super Shotgun item.gun_super_shotgun.desc=It's super broken! item.gun_supershotgun.name=Super Shotgun item.gun_thompson.name=Thompson Submachine Gun +item.gun_uac_pistol.name=UAC .45 Pistol item.gun_uboinik.name=Uboinik item.gun_uboinik_ammo.name=12x70 Buckshot (LEGACY) item.gun_uzi.name=IMI Uzi @@ -2824,13 +2858,13 @@ item.injector_5htp.name=5-HTP Autoinjector item.injector_knife.name=8 Inch Blade Autoinjector item.ink.name=林 Ink item.insert_doxium.name=Astolfium-Doped Doxium Insert -item.insert_du.name=Wkładka z Zubożonego Uranu +item.insert_du.name=DU Insert item.insert_era.name=Explosive Reactive Armor Insert item.insert_esapi.name=ESAPI Insert item.insert_ghiorsium.name=Ghiorsium Insert -item.insert_kevlar.name=Wkładka Kevlarowa +item.insert_kevlar.name=Kevlar Insert item.insert_sapi.name=SAPI Insert -item.insert_polonium.name=Wkładka z Polonu +item.insert_polonium.name=Polonium Insert item.insert_steel.name=Heavy Steel Insert item.insert_xsapi.name=XSAPI Insert item.insert_yharonite.name=Yharonite Insert @@ -2842,19 +2876,19 @@ item.jackt.name=Damn Stylish Ballistic Jacket item.jackt2.name=Damn Stylish Ballistic Jacket 2: Tokyo Drift item.jetpack_boost.name=Boostpack item.jetpack_break.name=Builder's Jetpack -item.jetpack_fly.name=Plecak Rakietowy +item.jetpack_fly.name=Jetpack item.jetpack_tank.name=Jetpack Reserve Fuel Tank item.jetpack_vector.name=Vectored Jetpack item.journal_bj.name=Whiskey Drenched Notebook item.journal_pip.name=Survivalist's Journal item.journal_silver.name=Contractor's Notes -item.key.name=Klucz -item.key_fake.name=Podrobiony Klucz +item.key.name=Key +item.key_fake.name=Counterfeit Key item.key_kit.name=Key Imitation Kit -item.key_red.name=Czerwony Klucz +item.key_red.name=Red Key item.key_red.desc=Explore the other side. item.key_red.desc.P11=§4e§r -item.kit_toolbox.name=Skrzynka na Narzędzia +item.kit_toolbox.name=Toolbox item.kit_toolbox_empty.name=Empty Toolbox item.laser_crystal_bismuth.desc=Bismuth-Samarium-Uranium-Thorium crystal matrix item.laser_crystal_bismuth.name=BiSmUTh Laser Crystal @@ -2866,19 +2900,19 @@ item.laser_crystal_digamma.name=Digamma Laser Crystal item.laser_crystal_dnt.desc=Dineutronium-Spark Fermion Supercrystal item.laser_crystal_dnt.name=Spark Laser Crystal item.lead_gavel.name=Leaden Gavel -item.lemon.name="Cytryna" -item.letter.name=List Polecony +item.lemon.name="Lemon" +item.letter.name=Express Mail item.levitation_unit.name=Gravity Manipulator -item.lignite.name=Lignit +item.lignite.name=Lignite item.limiter.name=Generator Limiter item.linker.name=Telelinker item.liquidator_boots.name=Liquidator Suit Boots item.liquidator_helmet.name=Liquidator Suit Helmet item.liquidator_legs.name=Liquidator Suit Leggins item.liquidator_plate.name=Liquidator Suit Chestplate -item.lithium.name=Kostka Litu -item.lodestone.name=Magnetyt -item.loop_stew.name=Śniadanie IT +item.lithium.name=Lithium Cube +item.lodestone.name=Lodestone +item.loop_stew.name=IT Breakfast item.loops.name=Lööps item.loot_10.name=Size 10 Missile Loot Crate item.loot_15.name=Size 15 Missile Loot Crate @@ -2887,14 +2921,14 @@ item.magnet_circular.name=Flat Magnet item.magnet_dee.name=Dee Magnets item.magnetron.name=Magnetron item.man_core.name=Plutonium Core -item.man_explosive.name=Soczewki Skupiające Wybuch +item.man_explosive.name=Explosive Lens item.man_igniter.name=Bomb Firing Unit item.man_kit.name=Fat Man Kit item.marshmallow.name=Marshmallow on a Stick -item.mask_of_infamy.name=Maska Zniesławienia -item.mask_piss.name=Maska Okopowa +item.mask_of_infamy.name=Mask of Infamy +item.mask_piss.name=Trench Mask item.mask_rag.name=Crude Protective Mask -item.matchstick.name=Zapałka +item.matchstick.name=Matchstick item.mech_key.name=Large Silver Key item.mech_key.desc=It pulses with power. item.mechanism_launcher_1.name=Launcher Mechanism @@ -2912,7 +2946,7 @@ item.medal_liquidator.name=Liquidator Medal item.meltdown_tool.name=Dyatlov Instant Meltdown Applicator item.memespoon.name=§eMarket Gardener item.memory.name=item.null.name -item.mese_gavel.name=Mesowy Młotek +item.mese_gavel.name=Mese Gavel item.mese_pickaxe.name=Mese Pickaxe item.meteor_charm.name=Meteor Charm item.meteor_remote.name=Meteorite Remote @@ -2931,7 +2965,7 @@ item.meteorite_sword_baleful.name=Meteorite Sword (Baleful) item.mike_cooling_unit.name=Deuterium Cooling Unit item.mike_core.name=Uranium Coated Deuterium Tank item.mike_deut.name=Deuterium Tank -item.mike_kit.name=Zestaw Ivy Mike +item.mike_kit.name=Ivy Mike Kit item.mirror_tool.name=Mirror Adjustment Tool item.mirror_tool.linked=Alignment position set! item.mirror_tool.desc=Right-click boiler to memorize the position.$Click on mirrors to turn them towards the boiler. @@ -2940,26 +2974,26 @@ item.missile_assembly.name=Small Missile Assembly item.missile_bhole.name=Black Hole Missile item.missile_burst.name=Spare Missile item.missile_buster.name=Bunker Buster -item.missile_buster_strong.name=Ulepszony Pogromca Bunkrów +item.missile_buster_strong.name=Enhanced Bunker Buster item.missile_carrier.name=HTR-01 Carrier Rocket -item.missile_cluster.name=Kasetowy Pocisk Rakietowy +item.missile_cluster.name=Cluster Missile item.missile_cluster_strong.name=Strong Cluster Missile -item.missile_custom.name=Niestandardowy Pocisk Rakietowy -item.missile_doomsday.name=Pocisk Rakietowy Zagłady -item.missile_drill.name=Kruszarka do Betonu -item.missile_emp.name=Elektromagnetyczny Pocisk Rakietowy -item.missile_emp_strong.name=Silny Elektromagnetyczny Pocisk Rakietowy -item.missile_endo.name=Endotermiczny Pocisk Rakietowy -item.missile_exo.name=Eksotermiczny Pocisk Rakietowy -item.missile_generic.name=Wybuchowy Pocisk Rakietowy -item.missile_incendiary.name=Zapalający Pocisk Rakietowy +item.missile_custom.name=Custom Missile +item.missile_doomsday.name=Doomsday Missile +item.missile_drill.name=The Concrete Cracker +item.missile_emp.name=EMP Missile +item.missile_emp_strong.name=Strong EMP Missile +item.missile_endo.name=Endothermic Missile +item.missile_exo.name=Exothermic Missile +item.missile_generic.name=High Explosive Missile +item.missile_incendiary.name=Incendiary Missile item.missile_incendiary_strong.name=Strong Incendiary Missile item.missile_inferno.name=Inferno Missile G.R.N. Mk.II -item.missile_kit.name=Zestaw Pocisków Rakietowych +item.missile_kit.name=Missile Kit item.missile_micro.name=Micro-Nuclear Missile item.missile_nuclear.name=Nuclear Missile item.missile_nuclear_cluster.name=Thermonuclear Missile -item.missile_rain.name=Deszcz Kasetowy +item.missile_rain.name=Bomblet Rain item.missile_schrabidium.name=Schrabidium Missile item.missile_shuttle.name=Reliant Robin Space Shuttle item.missile_skin_camo.name=Missile Skin: Camo @@ -2985,19 +3019,19 @@ item.missile_soyuz_lander.name=Orbital Module item.missile_soyuz_lander.desc=Doubles as a crappy lander! item.missile_strong.name=Strong HE Missile item.missile_taint.name=Taint-Tipped Missile -item.missile_volcano.name=Tektoniczny Pocisk Rakietowy -item.missile_volcano.desc=Za pomocą eksplozji jądrowych możemy stworzyć wulkan! -item.mold_base.name=Pusta Forma Huty -item.mold.name=Forma Huty -item.morning_glory.name=Poranna Chwała -item.motor.name=Silnik Elektryczny -item.motor_bismuth.name=Bizmutowy Silnik Elektryczny -item.motor_desh.name=Deszowy Silnik Elektryczny -item.mp_c_1.name=Obwód Namierzania Rakietowego Poziomu 1 -item.mp_c_2.name=Obwód Namierzania Rakietowego Poziomu 2 -item.mp_c_3.name=Obwód Namierzania Rakietowego Poziomu 3 -item.mp_c_4.name=Obwód Namierzania Rakietowego Poziomu 4 -item.mp_c_5.name=Obwód Namierzania Rakietowego Poziomu 5 +item.missile_volcano.name=Tectonic Missile +item.missile_volcano.desc=Using the power of nuclear explosives, we can summon a volcano! +item.mold_base.name=Blank Foundry Mold +item.mold.name=Foundry Mold +item.morning_glory.name=Morning Glory +item.motor.name=Motor +item.motor_bismuth.name=Bismuth Motor +item.motor_desh.name=Desh Motor +item.mp_c_1.name=Tier 1 Missile Targeting Circuit +item.mp_c_2.name=Tier 2 Missile Targeting Circuit +item.mp_c_3.name=Tier 3 Missile Targeting Circuit +item.mp_c_4.name=Tier 4 Missile Targeting Circuit +item.mp_c_5.name=Tier 5 Missile Targeting Circuit item.mp_fuselage_10_15_balefire.name=Size 10/15 BF Fuselage item.mp_fuselage_10_15_hydrogen.name=Size 10/15 Hydrogen Fuselage item.mp_fuselage_10_15_kerosene.name=Size 10/15 Kerosene Fuselage @@ -3127,17 +3161,17 @@ item.multitool_miner.name=Power Fist (Extracting Mining Laser) item.multitool_silk.name=Power Fist (Silk Touch Claw) item.multitool_sky.name=Power Fist (Crack the Sky) item.mysteryshovel.name=Brittle Spade -item.n2_charge.name=Duży Ładunek Wybuchowy -item.neutrino_lens.name=Soczewka Neutrinowa +item.n2_charge.name=Large Explosive Charge +item.neutrino_lens.name=Neutrino Lens item.neutron_reflector.name=Neutron Reflector item.night_vision.name=Night Vision Goggles item.night_vision.description.item=Grants you night vision (requires full electric set) item.night_vision.description.in_armor=%s (grants night vision) -item.niter.name=Saletra +item.niter.name=Niter item.no9.name=Mining Helmet item.nossy_hat.name=Fabulous Hat -item.nothing.name=Nic -item.nuclear_waste.name=Odpad Promieniotwórczy +item.nothing.name=Nothing +item.nuclear_waste.name=Nuclear Waste item.nuclear_waste_pearl.name=Nuclear Waste Pearl item.nuclear_waste_tiny.name=Tiny Pile of Nuclear Waste item.nuclear_waste_long.name=Long-Lived Nuclear Waste @@ -3223,24 +3257,24 @@ item.oil_detector.desc2=Detector will only find larger deposits. item.oil_detector.bullseye=Oil deposit directly below! item.oil_detector.detected=Oil detected nearby. item.oil_detector.noOil=No oil detected. -item.oil_tar.coal.name=Smoła Węglowa -item.oil_tar.crude.name=Smoła Naftowa -item.oil_tar.crack.name=Smoła Skrakowanej Nafty -item.oil_tar.paraffin.name=Wosk Parafinowy +item.oil_tar.coal.name=Coal Tar +item.oil_tar.crude.name=Oil Tar +item.oil_tar.crack.name=Crack Oil Tar +item.oil_tar.paraffin.name=Paraffin Wax item.oil_tar.wax.name=Chlorinated Petroleum Wax -item.oil_tar.wood.name=Smoła Drewnowa -item.ore.asbestos=Azbest -item.ore.borax=Boraks -item.ore.chlorocalcite=Chlorokalcyt -item.ore.copper=Miedź -item.ore.gold=Złoto -item.ore.iron=Żelazo -item.ore.niobium=Niob -item.ore.titanium=Tytan -item.ore.tungsten=Wolfram -item.ore.thorium=Tor -item.ore.uranium=Uran -item.ore_bedrock.name=%s Kamienia Macierystego +item.oil_tar.wood.name=Wood Tar +item.ore.asbestos=Asbestos +item.ore.borax=Borax +item.ore.chlorocalcite=Chlorocalcite +item.ore.copper=Copper +item.ore.gold=Gold +item.ore.iron=Iron +item.ore.niobium=Niobium +item.ore.titanium=Titanium +item.ore.tungsten=Tungsten +item.ore.thorium=Thorium +item.ore.uranium=Uranium +item.ore_bedrock.name=%s Bedrock Ore item.ore_byproduct.b_aluminium.name=Crystalline Aluminium Fragment item.ore_byproduct.b_bismuth.name=Crystalline Bismuth Fragment item.ore_byproduct.b_calcium.name=Crystalline Calcium Fragment @@ -3304,14 +3338,14 @@ item.particle_sparkticle.name=Sparkticle Capsule item.particle_strange.name=Strange Quark Capsule item.particle_tachyon.name=Tachyon Capsule item.parts_legendary.name=Legendary Parts -item.peas.name=Groch -item.pedestal_steel.name=Stalowy Piedestał +item.peas.name=Peas +item.pedestal_steel.name=Steel Pedestal item.pellet_advanced.name=Advanced Watz Performance Improver item.pellet_antimatter.name=Antimatter Cluster item.pellet_beryllium.name=Beryllium Moderator Pellet item.pellet_buckshot.name=Lead Pellets item.pellet_canister.name=Canister Shot -item.pellet_charged.name=Zjonizowane Cząsteczki +item.pellet_charged.name=Ionized Particles item.pellet_chlorophyte.name=Chlorophyte Rounds item.pellet_claws.name=Sharp Metal Claws item.pellet_cluster.name=Explosive Pellets @@ -3387,7 +3421,7 @@ item.piston_set_dura.name=High-Speed Steel Piston Set item.piston_set_starmetal.name=Starmetal Piston Set item.piston_set_steel.name=Steel Piston Set item.plan_c.name=Plan C -item.plan_c.desc=Śmiertelny +item.plan_c.desc=Deadly item.plant_item.mustardwillow.name=Mustard Willow Leaf item.plant_item.rope.name=Rope item.plant_item.tobacco.name=Tobacco @@ -3442,7 +3476,7 @@ item.powder_bakelite.name=Bakelite Powder item.powder_balefire.name=Thermonuclear Ashes item.powder_beryllium.name=Beryllium Powder item.powder_bismuth.name=Bismuth Powder -item.powder_borax.name=Boraks +item.powder_borax.name=Borax item.powder_boron.name=Boron Powder item.powder_boron_tiny.name=Tiny Pile of Boron Powder item.powder_bromine.name=Bromine Powder @@ -3551,15 +3585,15 @@ item.primer_9.name=Small Caliber Primer (x32) item.primer_buckshot.name=Buckshot Primer (x12) item.protection_charm.name=Charm of Protection item.prototype_kit.name=Prototype Kit -item.pudding.name=Budyń +item.pudding.name=Pudding item.quartz_plutonium.name=Plutonic Quartz item.radaway.name=RadAway item.radaway_flush.name=Elite RadAway item.radaway_strong.name=Strong RadAway item.radx.name=Rad-X item.radx.desc=Increases radiation resistance by 0.2 (37%%) for 3 minutes -item.rag.name=Tkanina -item.rag_damp.name=Zmoczona Tkanina +item.rag.name=Cloth +item.rag_damp.name=Damp Cloth item.rag_piss.name=Piss-Soaked Rag item.rbmk_fuel_balefire.name=Balefire RBMK Fuel Rod item.rbmk_fuel_balefire_gold.name=Flashgold RBMK Fuel Rod @@ -3832,7 +3866,7 @@ item.rpa_boots.name=Remnants Power Armor Boots item.rpa_helmet.name=Remnants Power Armor Helmet item.rpa_legs.name=Remnants Power Armor Leggings item.rpa_plate.name=Remnants Power Armor Chestplate -item.rtg_unit.name=Jednostka Radiotermiczna +item.rtg_unit.name=RTG Unit item.rubber_gloves.name=Thick Rubber Gloves item.rune_blank.name=Blank Catalyst Matrix item.rune_dagaz.name=Balanced Catalyst Matrix @@ -4105,7 +4139,7 @@ item.upgrade_stack_2.name=Stack Ejection Upgrade Mk.II item.upgrade_stack_3.name=Stack Ejection Upgrade Mk.III item.upgrade_template.name=Machine Upgrade Template item.v1.name=V1 -item.volcanic_pickaxe.name=Stopiony Kilof +item.volcanic_pickaxe.name=Molten Pickaxe item.wand_d.name=Debug Wand item.wand_k.name=Construction Wand item.wand_s.name=Structure Wand @@ -4121,7 +4155,7 @@ item.warhead_generic_small.name=Small Warhead item.warhead_incendiary_large.name=Large Incendiary Warhead item.warhead_incendiary_medium.name=Medium Incendiary Warhead item.warhead_incendiary_small.name=Small Incendiary Warhead -item.warhead_mirv.name=Głowica Termojądrowa +item.warhead_mirv.name=Thermonuclear Warhead item.warhead_mirvlet.name=MIRV item.warhead_nuclear.name=Nuclear Warhead item.warhead_thermo_endo.name=Endothermic Warhead @@ -4144,7 +4178,7 @@ item.waste_u233.name=Depleted Uranium-233 Fuel item.waste_uranium.name=Depleted Uranium Fuel item.waste_zfb_mox.name=Depleted ZFB MOX Fuel item.watch.name=Broken Pocket Watch -item.watch.desc=A small blue pocket watch.$It's glass has a few cracks in it,$and some shards are missing.$It stopped ticking at 2:34. +item.watch.desc=A small blue pocket watch.$It's glass has a few cracks in it, $and some shards are missing.$It stopped ticking at 2:34. item.watz_pellet.boron.name=Boron Absorber Pellet item.watz_pellet.du.name=Depleted Uranium Absorber Pellet item.watz_pellet.hes.name=HES Watz Pellet @@ -4169,6 +4203,7 @@ item.watz_pellet_depleted.nqd.name=Enriched Naquadah Watz Pellet (Depleted) item.watz_pellet_depleted.nqr.name=Naquadria Watz Pellet (Depleted) item.watz_pellet_depleted.hen.name=HEN Watz Pellet (Depleted) item.watz_pellet_depleted.schrabidium.name=Schrabidium Watz Pellet (Depleted) + item.weapon_bat.name=Richard's Default item.weapon_bat_nail.name=The Cliché item.weapon_golf_club.name=Russian Mobster's Club @@ -4209,16 +4244,16 @@ itemGroup.tabTest=Nuclear Tech Mod Test Tab itemGroup.tabWeapon=NTM Weapons and Turrets potion.hbm_bang=! ! ! -potion.hbm_death=Astolfizacja +potion.hbm_death=Astolfization potion.hbm_lead=Lead Poisoning potion.hbm_mutation=Tainted Heart potion.hbm_phosphorus=Phosphorus Burns potion.hbm_potionsickness=Potion Sickness potion.hbm_radaway=Radaway -potion.hbm_radiation=Skażony +potion.hbm_radiation=Contaminated potion.hbm_radx=Rad-X -potion.hbm_stability=Stabilność -potion.hbm_taint=Splamiony +potion.hbm_stability=Stability +potion.hbm_taint=Tainted potion.hbm_telekinesis=! ! ! radar.detectMissiles=Detect Missiles @@ -4257,7 +4292,7 @@ rbmk.screen.xenon=Xenon: %s shape.billet=Billet shape.blade=Blade shape.blades=Shredder Blades -shape.block=Blok +shape.block=Block shape.dust=Dust shape.dusttiny=Tiny Dust shape.hull_big=Big Shell @@ -4269,7 +4304,7 @@ shape.quart=Quarter Block shape.plate=Plate shape.plateTriple=Cast Plate shape.stamp=Press Stamp -shape.wire=Drut +shape.wire=Wire soundCategory.ntmMachines=NTM Machines @@ -4277,10 +4312,10 @@ tile.absorber.name=Radiation Absorber tile.absorber_green.name=Advanced Radiation Absorber tile.absorber_pink.name=Elite Radiation Absorber tile.absorber_red.name=Enhanced Radiation Absorber -tile.acid_block.name=Kwas -tile.ams_base.name=AMS Base (Deco) -tile.ams_emitter.name=AMS Emitter (Deco) -tile.ams_limiter.name=AMS Stabilizer (Deco) +tile.acid_block.name=Acid +tile.ams_base.name=AMS Base (Dekoracja) +tile.ams_emitter.name=AMS Emitter (Dekoracja) +tile.ams_limiter.name=AMS Stabilizer (Dekoracja) tile.ancient_scrap.name=Ancient Scrap Metal tile.anvil_bismuth.name=Bismuth Anvil tile.anvil_dnt.name=Dineutronium Anvil @@ -4309,7 +4344,7 @@ tile.barrel_plastic.name=Safe Barrel™ tile.barrel_steel.name=Steel Barrel tile.barrel_tcalloy.name=Technetium Steel Barrel tile.barricade.name=Sand Bags -tile.basalt.name=Bazalt +tile.basalt.name=Basalt tile.basalt_asbestos.name=Asbestos-Rich Basalt tile.basalt_brick.name=Basalt Bricks tile.basalt_fluorite.name=Fluorite-Rich Basalt @@ -4507,6 +4542,30 @@ tile.cluster_depth_titanium.name=Depth Titanium Ore Cluster tile.cluster_depth_tungsten.name=Depth Tungsten Ore Cluster tile.cluster_iron.name=Iron Ore Cluster tile.cluster_titanium.name=Titanium Ore Cluster +tile.cm_block.alloy.name=Advanced Alloy Machine Casing +tile.cm_block.desh.name=Desh Machine Casing +tile.cm_block.steel.name=Steel Machine Casing +tile.cm_block.tcalloy.name=Technetium Steel Machine Casing +tile.cm_circuit.aluminium.name=Tier 1 Circuit Block +tile.cm_circuit.copper.name=Tier 2 Circuit Block +tile.cm_circuit.gold.name=Tier 4 Circuit Block +tile.cm_circuit.red_copper.name=Tier 3 Circuit Block +tile.cm_circuit.schrabidium.name=Tier 5 Circuit Block +tile.cm_engine.bismuth.name=Bismuth Motor Block +tile.cm_engine.desh.name=Desh Motor Block +tile.cm_engine.standard.name=Motor Block +tile.cm_port.alloy.name=Advanced Alloy Port +tile.cm_port.desh.name=Desh Port +tile.cm_port.steel.name=Steel Port +tile.cm_port.tcalloy.name=Technetium Steel Port +tile.cm_sheet.alloy.name=Advanced Alloy Sheet +tile.cm_sheet.desh.name=Desh Sheet +tile.cm_sheet.steel.name=Steel Sheet +tile.cm_sheet.tcalloy.name=Technetium Steel Sheet +tile.cm_tank.alloy.name=Advanced Alloy Tank +tile.cm_tank.desh.name=Desh Tank +tile.cm_tank.steel.name=Steel Tank +tile.cm_tank.tcalloy.name=Technetium Steel Tank tile.cmb_brick.name=CMB Steel Tile tile.cmb_brick_reinforced.name=Reinforced CMB Bricks tile.compact_launcher.name=Compact Launch Pad @@ -4558,9 +4617,11 @@ tile.conveyor_lift.name=Conveyor Chain Lift tile.conveyor_triple.name=Triple-Lane Conveyor Belt tile.corium_block.name=Corium tile.crane_boxer.name=Conveyor Boxer + tile.crane_extractor.name=Conveyor Ejector tile.crane_grabber.name=Conveyor Grabber tile.crane_inserter.name=Conveyor Inserter + tile.crane_router.name=Conveyor Sorter tile.crane_splitter.name=Conveyor Splitter tile.crane_unboxer.name=Conveyor Unboxer @@ -4575,6 +4636,7 @@ tile.crate_lead.name=Hazmat Crate tile.crate_metal.name=Machine Crate tile.crate_red.name=Red Crate tile.crate_steel.name=Steel Crate +tile.crate_template.name=Template Crate tile.crate_tungsten.name=Tungsten Crate tile.crate_weapon.name=Weapon Crate tile.crystal_hardened.name=Hardened Dark Crystal @@ -4752,6 +4814,10 @@ tile.hadron_coil_neodymium.name=Dense Neodymium Coil tile.hadron_coil_schrabidate.name=Dense Schrabidate Coil tile.hadron_coil_schrabidium.name=Dense Schrabidic Coil tile.hadron_coil_starmetal.name=Dense Starmetal Coil +tile.hadron_cooler.name=Particle Accelerator Cooling Unit +tile.hadron_cooler.desc=Cooling power: 10$Overcooling threshold: 10$Cooling bonus: +10%%$Overcooling penalty: -25%% +tile.hadron_cooler_mk2.name=Particle Accelerator Cooling Unit - The Palindrome Special +tile.hadron_cooler_mk2.desc=Cooling power: 5$Efficiency function: 2-(cooling-15)²/225$Maximum penalty: -90%% tile.hadron_core.name=Particle Accelerator Core Component tile.hadron_diode.name=Schottky Particle Diode tile.hadron_plating.name=Particle Accelerator Plating @@ -4850,6 +4916,7 @@ tile.machine_dineutronium_battery.name=Spark Energy Storage Block tile.machine_drill.name=Automatic Mining Drill tile.machine_electric_furnace_off.name=Electric Furnace tile.machine_electric_furnace_on.name=Electric Furnace +tile.machine_electrolyser.name=Electrolysis Machine tile.machine_epress.name=Electric Press tile.machine_excavator.name=Large Mining Drill tile.machine_fel.name=FEL @@ -4863,6 +4930,8 @@ tile.machine_gascent.name=Gas Centrifuge tile.machine_generator.name=Nuclear Reactor (Old) tile.machine_geo.name=Geothermal Electric Generator tile.machine_hephaestus.name=Geothermal Heat Exchanger +tile.machine_industrial_boiler.name=Industrial Boiler +tile.machine_industrial_boiler.desc=Large boiler that can boil water or heat up oil.$Requires external heat source.$Heat transfer rate: ΔT*0.01 TU/t$Cannot explode tile.machine_industrial_generator.name=Industrial Generator tile.machine_keyforge.name=Locksmith Table tile.machine_large_turbine.name=Industrial Steam Turbine @@ -5069,6 +5138,8 @@ tile.pribris.name=RBMK Debris tile.pribris_burning.name=Flaming RBMK Debris tile.pribris_digamma.name=Blackened RBMK Debris tile.pribris_radiating.name=Smoldering RBMK Debris +tile.radio_torch_counter.name=Redstone-over-Radio Item Counter +tile.radio_torch_counter.desc=Placable on flat surfaces or comparator-compatible blocks$Bases signal on the amount of matching items tile.radio_torch_receiver.name=Redstone-over-Radio Receiver tile.radio_torch_receiver.desc=Placable on flat surfaces or comparator-compatible blocks tile.radio_torch_sender.name=Redstone-over-Radio Transmitter @@ -5268,7 +5339,7 @@ tile.zirnox_destroyed.name=Destroyed ZINROX trait.asbestos=Asbestos trait.blinding=Blinding -trait.coal=Pył Węglowy +trait.coal=Coal Dust trait.digamma=Digamma Radiation trait.drop=Dangerous Drop trait.explosive=Flammable / Explosive @@ -5277,12 +5348,12 @@ trait.heat=Provides %s HEAT trait.hlParticle=Particle Half-Life: %s trait.hlPlayer=Player Half-Life: %s trait.hot=Pyrophoric / Hot -trait.hydro=Hydroreaktywne -trait.radioactive=Radioaktywne +trait.hydro=Hydroreactive +trait.radioactive=Radioactive trait.radResistance=Radiation resistance: %s -trait.rbmk.coreTemp=Temperatura jądra: %s -trait.rbmk.depletion=Zużycie: %s +trait.rbmk.coreTemp=Core temp: %s +trait.rbmk.depletion=Depletion: %s trait.rbmk.diffusion=Diffusion: %s trait.rbmk.fluxFunc=Flux function: %s trait.rbmk.funcType=Function type: %s @@ -5295,17 +5366,17 @@ trait.rbmk.skinTemp=Skin temp: %s trait.rbmk.source=Self-igniting trait.rbmk.splitsInto=Splits into: %s trait.rbmk.splitsWith=Splits with: %s -trait.rbmk.xenon=Zatrucie Ksenonem: %s +trait.rbmk.xenon=Xenon poison: %s trait.rbmk.xenonBurn=Xenon burn function: %s trait.rbmk.xenonGen=Xenon gen function: %s -trait.rbmx.coreTemp=Entropia jądra: %s -trait.rbmx.depletion=Chrupkość: %s -trait.rbmx.diffusion=Przepływ: %s -trait.rbmx.fluxFunc=Funkcja zagłady: %s +trait.rbmx.coreTemp=Core entropy: %s +trait.rbmx.depletion=Crustyness: %s +trait.rbmx.diffusion=Flow: %s +trait.rbmx.fluxFunc=Doom function: %s trait.rbmx.funcType=Function specification: %s trait.rbmx.heat=Crust per tick at full power: %s -trait.rbmx.melt=Głębokość zgniecenia: %s +trait.rbmx.melt=Crush depth: %s trait.rbmk.neutron.any.x=All non-euclidean shapes trait.rbmk.neutron.fast.x=Elliptic non-euclidean shapes trait.rbmk.neutron.slow.x=Hyperbolic non-euclidean shapes @@ -5324,7 +5395,7 @@ tool.ability.centrifuge=Auto-Centrifuge tool.ability.crystallizer=Auto-Crystallizer tool.ability.explosion=Explosion tool.ability.hammer=AoE -tool.ability.luck=Szczęście +tool.ability.luck=Fortune tool.ability.mercury=Mercury Touch tool.ability.midas=Midas Touch tool.ability.recursion=Vein Miner @@ -5343,9 +5414,9 @@ turret.off=OFF turret.on=ON turret.players=Target Players: %s -wavelengths.name.ir=Podczerwień +wavelengths.name.ir=Infrared wavelengths.name.visible=Visible Light -wavelengths.name.uv=Ultrafiolet +wavelengths.name.uv=Ultraviolet wavelengths.name.gamma=Gamma wavelengths.name.drx=Digamma wavelengths.waveRange.ir=780nm-1mm @@ -5354,10 +5425,10 @@ wavelengths.waveRange.uv=100nm-400nm wavelengths.waveRange.gamma=<100pm wavelengths.waveRange.drx=1916169 planck lengths -weapon.ability.beheader=Dekapitator +weapon.ability.beheader=Decapitator weapon.ability.bobble=Luck of the Collector # Should rhyme with the translation for "chainsaw" -weapon.ability.chainsaw=Piła Bólu +weapon.ability.chainsaw=Painsaw weapon.ability.fire=Flaming weapon.ability.radiation=Radioactive Blade weapon.ability.phosphorus=Phosphorus Tip @@ -5370,4 +5441,4 @@ weapon.elecGun.glass_cannon.ir=Infrared weapon.elecGun.glass_cannon.visible=Visible Light weapon.elecGun.glass_cannon.uv=Ultraviolet Light weapon.elecGun.glass_cannon.xray=X-rays -weapon.elecGun.glass_cannon.gamma=Gamma rays +weapon.elecGun.glass_cannon.gamma=Gamma rays \ No newline at end of file From dcfa7fe8110d45b66a4e6f7dab35a0a9d1634655 Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 8 Aug 2023 15:13:11 +0200 Subject: [PATCH 227/432] universal analysis tool, pipe debugging --- src/main/java/api/hbm/fluid/PipeNet.java | 31 +++++++++++ src/main/java/com/hbm/blocks/IAnalyzable.java | 10 ++++ .../com/hbm/blocks/network/FluidDuctBase.java | 39 +++++++++++++- src/main/java/com/hbm/items/ModItems.java | 3 ++ .../com/hbm/items/tool/ItemAnalysisTool.java | 48 ++++++++++++++++++ .../hbm/textures/items/analysis_tool.png | Bin 0 -> 212 bytes 6 files changed, 130 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/hbm/blocks/IAnalyzable.java create mode 100644 src/main/java/com/hbm/items/tool/ItemAnalysisTool.java create mode 100644 src/main/resources/assets/hbm/textures/items/analysis_tool.png diff --git a/src/main/java/api/hbm/fluid/PipeNet.java b/src/main/java/api/hbm/fluid/PipeNet.java index 09b63d4f5..019aa3dcd 100644 --- a/src/main/java/api/hbm/fluid/PipeNet.java +++ b/src/main/java/api/hbm/fluid/PipeNet.java @@ -1,9 +1,12 @@ package api.hbm.fluid; import java.math.BigInteger; +import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Date; import java.util.HashSet; import java.util.List; +import java.util.TimeZone; import com.hbm.inventory.fluid.FluidType; @@ -18,6 +21,7 @@ public class PipeNet implements IPipeNet { public static List trackingInstances = null; protected BigInteger totalTransfer = BigInteger.ZERO; + public List debug = new ArrayList(); public PipeNet(FluidType type) { this.type = type; @@ -124,6 +128,15 @@ public class PipeNet implements IPipeNet { long given = (long) Math.floor(fraction * fill); totalGiven += (given - con.transferFluid(type, pressure, given)); + + if(trackingInstances != null) { + for(int j = 0; j < trackingInstances.size(); j++) { + PipeNet net = trackingInstances.get(j); + SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss:SSS"); + sdf.setTimeZone(TimeZone.getTimeZone("UTC")); + log(net, sdf.format(new Date(System.currentTimeMillis())) + " Sending " + given + "mB to " + conToString(con)); + } + } } if(trackingInstances != null) { @@ -162,4 +175,22 @@ public class PipeNet implements IPipeNet { public BigInteger getTotalTransfer() { return this.totalTransfer; } + + public static void log(PipeNet net, String msg) { + net.debug.add(msg); + + while(net.debug.size() > 50) { + net.debug.remove(0); + } + } + + public static String conToString(IFluidConnector con) { + + if(con instanceof TileEntity) { + TileEntity tile = (TileEntity) con; + return tile.getClass().getSimpleName() + " @ " + tile.xCoord + "/" + tile.yCoord + "/" + tile.zCoord; + } + + return "" + con; + } } diff --git a/src/main/java/com/hbm/blocks/IAnalyzable.java b/src/main/java/com/hbm/blocks/IAnalyzable.java new file mode 100644 index 000000000..e4e76a5ee --- /dev/null +++ b/src/main/java/com/hbm/blocks/IAnalyzable.java @@ -0,0 +1,10 @@ +package com.hbm.blocks; + +import java.util.List; + +import net.minecraft.world.World; + +public interface IAnalyzable { + + public List getDebugInfo(World world, int x, int y, int z); +} diff --git a/src/main/java/com/hbm/blocks/network/FluidDuctBase.java b/src/main/java/com/hbm/blocks/network/FluidDuctBase.java index 7c17661f1..3422d1f17 100644 --- a/src/main/java/com/hbm/blocks/network/FluidDuctBase.java +++ b/src/main/java/com/hbm/blocks/network/FluidDuctBase.java @@ -1,9 +1,15 @@ package com.hbm.blocks.network; +import java.util.ArrayList; +import java.util.List; + +import com.hbm.blocks.IAnalyzable; import com.hbm.inventory.fluid.FluidType; import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.tileentity.network.TileEntityPipeBaseNT; +import api.hbm.fluid.IPipeNet; +import api.hbm.fluid.PipeNet; import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; @@ -12,7 +18,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class FluidDuctBase extends BlockContainer implements IBlockFluidDuct { +public class FluidDuctBase extends BlockContainer implements IBlockFluidDuct, IAnalyzable { public FluidDuctBase(Material mat) { super(mat); @@ -80,4 +86,35 @@ public class FluidDuctBase extends BlockContainer implements IBlockFluidDuct { } } } + + @Override + public List getDebugInfo(World world, int x, int y, int z) { + + TileEntity te = world.getTileEntity(x, y, z); + + if(te instanceof TileEntityPipeBaseNT) { + TileEntityPipeBaseNT pipe = (TileEntityPipeBaseNT) te; + FluidType type = pipe.getType(); + + if(type != null) { + + IPipeNet net = pipe.getPipeNet(type); + + if(net instanceof PipeNet) { + PipeNet pipeNet = (PipeNet) net; + + List debug = new ArrayList(); + debug.add("=== DEBUG START ==="); + debug.addAll(pipeNet.debug); + debug.add("=== DEBUG END ==="); + debug.add("Links: " + pipeNet.getLinks().size()); + debug.add("Subscribers: " + pipeNet.getSubscribers().size()); + debug.add("Transfer: " + pipeNet.getTotalTransfer()); + return debug; + } + } + } + + return null; + } } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 01cd4fa82..8ec82b805 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1260,6 +1260,7 @@ public class ModItems { public static Item rbmk_tool; public static Item coltan_tool; public static Item power_net_tool; + public static Item analysis_tool; public static Item coupling_tool; public static Item template_folder; @@ -4591,6 +4592,7 @@ public class ModItems { rbmk_tool = new ItemRBMKTool().setUnlocalizedName("rbmk_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":rbmk_tool"); coltan_tool = new ItemColtanCompass().setUnlocalizedName("coltan_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":coltass"); power_net_tool = new ItemPowerNetTool().setUnlocalizedName("power_net_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":power_net_tool"); + analysis_tool = new ItemAnalysisTool().setUnlocalizedName("analysis_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":analysis_tool"); coupling_tool = new ItemCouplingTool().setUnlocalizedName("coupling_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":coupling_tool"); key = new ItemKey().setUnlocalizedName("key").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":key"); @@ -6754,6 +6756,7 @@ public class ModItems { GameRegistry.registerItem(rbmk_tool, rbmk_tool.getUnlocalizedName()); GameRegistry.registerItem(coltan_tool, coltan_tool.getUnlocalizedName()); GameRegistry.registerItem(power_net_tool, power_net_tool.getUnlocalizedName()); + GameRegistry.registerItem(analysis_tool, analysis_tool.getUnlocalizedName()); GameRegistry.registerItem(coupling_tool, coupling_tool.getUnlocalizedName()); GameRegistry.registerItem(dosimeter, dosimeter.getUnlocalizedName()); GameRegistry.registerItem(geiger_counter, geiger_counter.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/tool/ItemAnalysisTool.java b/src/main/java/com/hbm/items/tool/ItemAnalysisTool.java new file mode 100644 index 000000000..84fe9fcce --- /dev/null +++ b/src/main/java/com/hbm/items/tool/ItemAnalysisTool.java @@ -0,0 +1,48 @@ +package com.hbm.items.tool; + +import java.util.List; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.IAnalyzable; + +import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatStyle; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; + +public class ItemAnalysisTool extends Item { + + @Override + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float fX, float fY, float fZ) { + + Block b = world.getBlock(x, y, z); + + if(b instanceof BlockDummyable) { + int[] pos = ((BlockDummyable) b).findCore(world, x, y, z); + + if(pos != null) { + x = pos[0]; + y = pos[1]; + z = pos[2]; + } + } + + if(b instanceof IAnalyzable) { + List debug = ((IAnalyzable) b).getDebugInfo(world, x, y, z); + + if(debug != null && !world.isRemote) { + for(String line : debug) { + player.addChatComponentMessage(new ChatComponentText(line).setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW))); + } + } + + return true; + } + + return false; + } +} diff --git a/src/main/resources/assets/hbm/textures/items/analysis_tool.png b/src/main/resources/assets/hbm/textures/items/analysis_tool.png new file mode 100644 index 0000000000000000000000000000000000000000..efee947ceb24e2e711503c16585de6f723e7bf3c GIT binary patch literal 212 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf*I@9_W!%9G`pi?jmz|==eo-}o~Z2-nIY-%?!mp^ z*N$xJv&=~I(0tpH-1AxL`Pajxf6a9cEM9e?G3;l?+xRDZGt5(_oISTz5a=uhPgg&e IbxsLQ0NSHdB>(^b literal 0 HcmV?d00001 From 3387cc7f4ec2d282a6182fb6e0361f774d7713cc Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Tue, 8 Aug 2023 13:16:25 -0500 Subject: [PATCH 228/432] idk why those imports were there (removed them) --- .../tileentity/machine/storage/TileEntityMachineBattery.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java index 2d05bbf25..e14db7c8e 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java @@ -1,8 +1,6 @@ package com.hbm.tileentity.machine.storage; import api.hbm.energy.*; -import com.hbm.blocks.ModBlocks; -import com.hbm.blocks.bomb.LaunchPad; import com.hbm.blocks.machine.MachineBattery; import com.hbm.inventory.container.ContainerMachineBattery; import com.hbm.inventory.gui.GUIMachineBattery; @@ -17,7 +15,6 @@ import li.cil.oc.api.machine.Arguments; import li.cil.oc.api.machine.Callback; import li.cil.oc.api.machine.Context; import li.cil.oc.api.network.SimpleComponent; -import net.minecraft.block.Block; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; From e02e28b5d089d164890345087c610dfc0c85ec48 Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Tue, 8 Aug 2023 13:17:13 -0500 Subject: [PATCH 229/432] Boiler fix and fluid gauge compatibility re-added. --- .../hbm/blocks/network/FluidDuctGauge.java | 23 ++++++++++++++++++- .../machine/rbmk/TileEntityRBMKBoiler.java | 6 +---- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java b/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java index f9dc2498f..dfd617423 100644 --- a/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java +++ b/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java @@ -15,8 +15,13 @@ import com.hbm.tileentity.network.TileEntityPipeBaseNT; import com.hbm.util.I18nUtil; import api.hbm.fluid.IPipeNet; +import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; +import li.cil.oc.api.network.SimpleComponent; import net.minecraft.block.BlockPistonBase; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; @@ -101,7 +106,8 @@ public class FluidDuctGauge extends FluidDuctBase implements IBlockMultiPass, IL return IBlockMultiPass.getRenderType(); } - public static class TileEntityPipeGauge extends TileEntityPipeBaseNT implements INBTPacketReceiver { + @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) + public static class TileEntityPipeGauge extends TileEntityPipeBaseNT implements INBTPacketReceiver, SimpleComponent { private BigInteger lastMeasurement = BigInteger.valueOf(10); private long deltaTick = 0; @@ -145,5 +151,20 @@ public class FluidDuctGauge extends FluidDuctBase implements IBlockMultiPass, IL this.deltaLastSecond = Math.max(nbt.getLong("deltaS"), 0); } + public String getComponentName() { + return "rbmk_boiler"; + } + + @Callback(direct = true, limit = 8) + @Optional.Method(modid = "OpenComputers") + public Object[] getTransfer(Context context, Arguments args) { + return new Object[] {deltaTick, deltaSecond}; + } + + @Callback(direct = true, limit = 8) + @Optional.Method(modid = "OpenComputers") + public Object[] getInfo(Context context, Arguments args) { + return new Object[] {deltaTick, deltaSecond}; + } } } diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java index 654c7878e..44baadde9 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java @@ -375,7 +375,7 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I else if(type == Fluids.HOTSTEAM) {type_1 = "1";} else if(type == Fluids.SUPERHOTSTEAM) {type_1 = "2";} else if(type == Fluids.ULTRAHOTSTEAM) {type_1 = "3";} - else {type_1 = "Steam out-of-bounds";} + else {type_1 = "Unknown Error";} return new Object[] {heat, steam.getFill(), steam.getMaxFill(), feed.getFill(), feed.getMaxFill(), type_1, xCoord, yCoord, zCoord}; } @@ -401,19 +401,15 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I } if(type == 0) { steam.setTankType(Fluids.STEAM); - steam.setFill(0); //too lazy to add a ton of additional code to divide the fill amount, fuck your steam return new Object[] {true}; } else if(type == 1) { steam.setTankType(Fluids.HOTSTEAM); - steam.setFill(0); return new Object[] {true}; } else if(type == 2) { steam.setTankType(Fluids.SUPERHOTSTEAM); - steam.setFill(0); return new Object[] {true}; } else { steam.setTankType(Fluids.ULTRAHOTSTEAM); - steam.setFill(0); return new Object[] {true}; } } From 02e80da344281bff6b194b17d4b2bd067fdb0ef1 Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Tue, 8 Aug 2023 14:14:32 -0500 Subject: [PATCH 230/432] whoops forgot to change the component name (also added the `getFluid()` function to the pipe gauge) --- .../java/com/hbm/blocks/network/FluidDuctGauge.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java b/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java index dfd617423..948befc56 100644 --- a/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java +++ b/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java @@ -152,7 +152,7 @@ public class FluidDuctGauge extends FluidDuctBase implements IBlockMultiPass, IL } public String getComponentName() { - return "rbmk_boiler"; + return "ntm_fluid_gauge"; } @Callback(direct = true, limit = 8) @@ -161,10 +161,16 @@ public class FluidDuctGauge extends FluidDuctBase implements IBlockMultiPass, IL return new Object[] {deltaTick, deltaSecond}; } + @Callback(direct = true, limit = 8) + @Optional.Method(modid = "OpenComputers") + public Object[] getFluid(Context context, Arguments args) { + return new Object[] {getType().getName()}; + } + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { - return new Object[] {deltaTick, deltaSecond}; + return new Object[] {deltaTick, deltaSecond, getType().getName(), xCoord, yCoord, zCoord}; } } } From afd75b26af6831422bdc81839bf8d494e691e139 Mon Sep 17 00:00:00 2001 From: Bob Date: Wed, 9 Aug 2023 22:28:14 +0200 Subject: [PATCH 231/432] assets, fixes --- src/main/java/com/hbm/main/MainRegistry.java | 4 ++-- .../machine/TileEntityElectrolyser.java | 1 + .../textures/models/projectiles/leadburster.png | Bin 0 -> 983 bytes .../hbm/textures/models/weapons/congolake.png | Bin 0 -> 3306 bytes 4 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/models/projectiles/leadburster.png create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/congolake.png diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 6b7451986..438847446 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -955,6 +955,8 @@ public class MainRegistry { WeaponConfig.loadFromConfig(config); MobConfig.loadFromConfig(config); StructureConfig.loadFromConfig(config); + + config.save(); try { if(GeneralConfig.enableThermosPreventer && Class.forName("thermos.Thermos") != null) { @@ -967,8 +969,6 @@ public class MainRegistry { + "change Thermos' config anyway so that extra change in NTM's config can't be that big of a burden."); } } catch(ClassNotFoundException e) { } - - config.save(); } private static HashSet ignoreMappings = new HashSet(); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java b/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java index 5f1801c59..8d34ffa2c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java @@ -308,6 +308,7 @@ public class TileEntityElectrolyser extends TileEntityMachineBase implements IEn if(this.tanks[3].getFill() < 100) return false; ElectrolysisMetalRecipe recipe = ElectrolyserMetalRecipes.getRecipe(slots[14]); + if(recipe == null) return false; if(leftStack != null) { if(recipe.output1.material != leftStack.material) return false; diff --git a/src/main/resources/assets/hbm/textures/models/projectiles/leadburster.png b/src/main/resources/assets/hbm/textures/models/projectiles/leadburster.png new file mode 100644 index 0000000000000000000000000000000000000000..281f6ca1fb66c9ce9ba6d5cd39dc942f8ce3edae GIT binary patch literal 983 zcmV;|11S87P)pJ(=m_d^9cax z`+n_fSV3=0q;xc&9mZqXy1#+QaUOl&qwo9G5dhGXl*ycs&9!#q4E0{y&1G3Ozpm?6 zBl+3d+^@zwm;r6cC}rS0&qZf2qN8MOGra4%ZB_ZV8QWCW%B9w$Wa$j)%B z!4Z@*eP6?kD0pS(S;^Eo#^!lLJ(WvPbCqNL5d&T^z@Kybv62x!325^?Z+2x*L}z$8 zPxZ*5%d%`4;K9b5q3j%nx)pexNY21Y@(z6pUQ?mT6wB!EWq6(1YmfVt(NQ0e#|JeQ zv7qG!?=qv55Y-?GqHJKKxN7^GL-ku*1wTV8dj(WXV1}qf$;&DSMzk*l!sx0~#%4~~ z!~m7J@K_Y_mGP>d+xGlhX>Lh|S;A;dnJlL_gKD!zWhl3K9gftjY_w~h+TKVH#W3z` zBgGYkYhpoG2(j@IqoN)3&iEur;&mEUP$`}DXB6KnYsl_wb3%4AsG7jTilOK8xvd5> zV?1?hvOQ)_ZFX3?<~*f+66O279PloN`o4e1fD*j%d#*&AzsCu+=`FCoNaFS7HCR$s zrO!$}niDziCsDs9cgWZvQ(;yxxVM~U zlxVL$j`*w*5DZYeT7&45SxLUO608|lYpGP4$JZ}H{!_t%;FW{{P_9-bMVmV1+&T4yO|Y%)Q^p1@U;{3r+2)B-<&PpPv)X-$P$A+?jk zFkqUd@TDr%Rpb6$!!U%(Mn*CGS@-#VR4OwXR>(gySXoBRbr~UZs-a|j&28YF!f5aJ zyA(Vgj~hkJ0qlrrnu>;dX6^a7Qj-mqD!^H{-gIiv>aqX76&4f{@%)1!_10~%0B|qIx@Y4KR5sY002ovPDHLk FV1gw4){+1K literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/congolake.png b/src/main/resources/assets/hbm/textures/models/weapons/congolake.png new file mode 100644 index 0000000000000000000000000000000000000000..dd3c9cd71c018fbcbae3a1710f1cb525d93e3166 GIT binary patch literal 3306 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 literal 0 HcmV?d00001 From 30e2a13f62e6b319cf95b2e7b1608f1006baa1b6 Mon Sep 17 00:00:00 2001 From: Boblet Date: Thu, 10 Aug 2023 15:18:54 +0200 Subject: [PATCH 232/432] fixing mojank spaghetti episode 58304 --- .../entity/projectile/EntityBulletBaseNT.java | 17 +++---- .../entity/projectile/EntityThrowableNT.java | 29 ++++++++---- .../hbm/handler/BulletConfigSyncingUtil.java | 2 + .../handler/guncfg/BulletConfigFactory.java | 13 ++++-- .../hbm/handler/guncfg/Gun20GaugeFactory.java | 1 + .../handler/guncfg/Gun44MagnumFactory.java | 2 +- .../hbm/handler/guncfg/Gun4GaugeFactory.java | 6 +-- .../hbm/handler/guncfg/Gun50BMGFactory.java | 13 ++++-- .../hbm/handler/guncfg/Gun556mmFactory.java | 9 ++-- .../hbm/handler/guncfg/Gun75BoltFactory.java | 2 +- .../hbm/handler/guncfg/GunCannonFactory.java | 2 +- .../handler/guncfg/GunDetonatorFactory.java | 2 +- .../hbm/handler/guncfg/GunEnergyFactory.java | 10 ++-- .../hbm/handler/guncfg/GunFatmanFactory.java | 16 +++---- .../hbm/handler/guncfg/GunGrenadeFactory.java | 18 ++++++- .../com/hbm/handler/guncfg/GunNPCFactory.java | 6 +-- .../hbm/handler/guncfg/GunOSIPRFactory.java | 2 +- .../hbm/handler/guncfg/GunRocketFactory.java | 4 +- .../java/com/hbm/items/ItemAmmoEnums.java | 3 +- .../java/com/hbm/items/weapon/ItemAmmo.java | 1 + .../com/hbm/items/weapon/ItemAmmoArty.java | 2 +- src/main/java/com/hbm/util/TrackerUtil.java | 44 ++++++++++++++++++ .../items/ammo_grenade_leadburster.png | Bin 0 -> 291 bytes 23 files changed, 147 insertions(+), 57 deletions(-) create mode 100644 src/main/java/com/hbm/util/TrackerUtil.java create mode 100644 src/main/resources/assets/hbm/textures/items/ammo_grenade_leadburster.png diff --git a/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java b/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java index 65741dbd4..a1a3a0961 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java +++ b/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java @@ -166,6 +166,7 @@ public class EntityBulletBaseNT extends EntityThrowableInterp implements IBullet @Override protected void entityInit() { + super.entityInit(); //style this.dataWatcher.addObject(16, Byte.valueOf((byte) 0)); //trail @@ -251,11 +252,11 @@ public class EntityBulletBaseNT extends EntityThrowableInterp implements IBullet if(mop.typeOfHit == mop.typeOfHit.BLOCK) { boolean hRic = rand.nextInt(100) < config.HBRC; - boolean doesRic = config.doesRicochet || hRic; + boolean doesRic = config.doesRicochet && hRic; if(!config.isSpectral && !doesRic) { this.setPosition(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord); - this.onBlockImpact(mop.blockX, mop.blockY, mop.blockZ); + this.onBlockImpact(mop.blockX, mop.blockY, mop.blockZ, mop.sideHit); } if(doesRic) { @@ -302,7 +303,7 @@ public class EntityBulletBaseNT extends EntityThrowableInterp implements IBullet } else { if(!worldObj.isRemote) { this.setPosition(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord); - onBlockImpact(mop.blockX, mop.blockY, mop.blockZ); + onBlockImpact(mop.blockX, mop.blockY, mop.blockZ, mop.sideHit); } } @@ -375,13 +376,13 @@ public class EntityBulletBaseNT extends EntityThrowableInterp implements IBullet } //for when a bullet dies by hitting a block - private void onBlockImpact(int bX, int bY, int bZ) { + private void onBlockImpact(int bX, int bY, int bZ, int sideHit) { if(config.bntImpact != null) - config.bntImpact.behaveBlockHit(this, bX, bY, bZ); + config.bntImpact.behaveBlockHit(this, bX, bY, bZ, sideHit); if(!worldObj.isRemote) { - if(!config.liveAfterImpact && !config.isSpectral && bY > -1) this.setDead(); + if(!config.liveAfterImpact && !config.isSpectral && bY > -1 && !this.inGround) this.setDead(); if(!config.doesPenetrate && bY == -1) this.setDead(); } @@ -472,7 +473,7 @@ public class EntityBulletBaseNT extends EntityThrowableInterp implements IBullet //for when a bullet dies by hitting an entity private void onEntityImpact(Entity e) { onEntityHurt(e); - onBlockImpact(-1, -1, -1); + onBlockImpact(-1, -1, -1, -1); if(config.bntHit != null) config.bntHit.behaveEntityHit(this, e); @@ -582,6 +583,6 @@ public class EntityBulletBaseNT extends EntityThrowableInterp implements IBullet public static interface IBulletHurtBehaviorNT { public void behaveEntityHurt(EntityBulletBaseNT bullet, Entity hit); } public static interface IBulletHitBehaviorNT { public void behaveEntityHit(EntityBulletBaseNT bullet, Entity hit); } public static interface IBulletRicochetBehaviorNT { public void behaveBlockRicochet(EntityBulletBaseNT bullet, int x, int y, int z); } - public static interface IBulletImpactBehaviorNT { public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z); } + public static interface IBulletImpactBehaviorNT { public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z, int sideHit); } public static interface IBulletUpdateBehaviorNT { public void behaveUpdate(EntityBulletBaseNT bullet); } } diff --git a/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java b/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java index fbd99c23c..892e59e79 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java +++ b/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java @@ -2,6 +2,8 @@ package com.hbm.entity.projectile; import java.util.List; +import com.hbm.util.TrackerUtil; + import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; @@ -32,7 +34,7 @@ public abstract class EntityThrowableNT extends Entity implements IProjectile { public int throwableShake; protected EntityLivingBase thrower; private String throwerName; - private int ticksInGround; + public int ticksInGround; private int ticksInAir; public EntityThrowableNT(World world) { @@ -41,7 +43,17 @@ public abstract class EntityThrowableNT extends Entity implements IProjectile { } @Override - protected void entityInit() { } + protected void entityInit() { + this.dataWatcher.addObject(2, Byte.valueOf((byte)0)); + } + + public void setStuckIn(int side) { + this.dataWatcher.updateObject(2, (byte) side); + } + + public int getStuckIn() { + return this.dataWatcher.getWatchableObjectByte(2); + } @Override @SideOnly(Side.CLIENT) @@ -214,10 +226,6 @@ public abstract class EntityThrowableNT extends Entity implements IProjectile { } } - this.posX += this.motionX * motionMult(); - this.posY += this.motionY * motionMult(); - this.posZ += this.motionZ * motionMult(); - if(mop != null) { if(mop.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK && this.worldObj.getBlock(mop.blockX, mop.blockY, mop.blockZ) == Blocks.portal) { this.setInPortal(); @@ -250,6 +258,10 @@ public abstract class EntityThrowableNT extends Entity implements IProjectile { float drag = this.getAirDrag(); double gravity = this.getGravityVelocity(); + this.posX += this.motionX * motionMult(); + this.posY += this.motionY * motionMult(); + this.posZ += this.motionZ * motionMult(); + if(this.isInWater()) { for(int i = 0; i < 4; ++i) { float f = 0.25F; @@ -264,7 +276,6 @@ public abstract class EntityThrowableNT extends Entity implements IProjectile { this.motionZ *= (double) drag; this.motionY -= gravity; this.setPosition(this.posX, this.posY, this.posZ); - } } @@ -280,7 +291,7 @@ public abstract class EntityThrowableNT extends Entity implements IProjectile { return 5; } - public void getStuck(int x, int y, int z) { + public void getStuck(int x, int y, int z, int side) { this.stuckBlockX = x; this.stuckBlockY = y; this.stuckBlockZ = z; @@ -289,6 +300,8 @@ public abstract class EntityThrowableNT extends Entity implements IProjectile { this.motionX = 0; this.motionY = 0; this.motionZ = 0; + this.setStuckIn(side); + TrackerUtil.sendTeleport(worldObj, this); } public double getGravityVelocity() { diff --git a/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java b/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java index 19987ab65..3c2c2e7a3 100644 --- a/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java +++ b/src/main/java/com/hbm/handler/BulletConfigSyncingUtil.java @@ -68,6 +68,7 @@ public class BulletConfigSyncingUtil { public static int GRENADE_PHOSPHORUS = i++; public static int GRENADE_TRACER = i++; public static int GRENADE_KAMPF = i++; + public static int GRENADE_LEADBURSTER = i++; public static int G12_NORMAL = i++; public static int G12_INCENDIARY = i++; @@ -365,6 +366,7 @@ public class BulletConfigSyncingUtil { configSet.put(GRENADE_NUCLEAR, GunGrenadeFactory.getGrenadeNuclearConfig()); configSet.put(GRENADE_TRACER, GunGrenadeFactory.getGrenadeTracerConfig()); configSet.put(GRENADE_KAMPF, GunGrenadeFactory.getGrenadeKampfConfig()); + configSet.put(GRENADE_LEADBURSTER, GunGrenadeFactory.getGrenadeLeadbursterConfig()); configSet.put(G12_NORMAL, Gun12GaugeFactory.get12GaugeConfig()); configSet.put(G12_INCENDIARY, Gun12GaugeFactory.get12GaugeFireConfig()); diff --git a/src/main/java/com/hbm/handler/guncfg/BulletConfigFactory.java b/src/main/java/com/hbm/handler/guncfg/BulletConfigFactory.java index 01549a613..c4672568d 100644 --- a/src/main/java/com/hbm/handler/guncfg/BulletConfigFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/BulletConfigFactory.java @@ -146,7 +146,7 @@ public class BulletConfigFactory { bullet.bntImpact = new IBulletImpactBehaviorNT() { @Override - public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z) { + public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z, int sideHit) { if(bullet.worldObj.isRemote) return; @@ -310,12 +310,19 @@ public class BulletConfigFactory { } } + public static void makeFlechette(BulletConfiguration bullet) { + + bullet.bntImpact = (bulletnt, x, y, z, sideHit) -> { + bulletnt.getStuck(x, y, z, sideHit); + }; + } + public static IBulletImpactBehaviorNT getPhosphorousEffect(final int radius, final int duration, final int count, final double motion, float hazeChance) { IBulletImpactBehaviorNT impact = new IBulletImpactBehaviorNT() { @Override - public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z) { + public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z, int sideHit) { List hit = bullet.worldObj.getEntitiesWithinAABBExcludingEntity(bullet, AxisAlignedBB.getBoundingBox(bullet.posX - radius, bullet.posY - radius, bullet.posZ - radius, bullet.posX + radius, bullet.posY + radius, bullet.posZ + radius)); @@ -357,7 +364,7 @@ public class BulletConfigFactory { IBulletImpactBehaviorNT impact = new IBulletImpactBehaviorNT() { @Override - public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z) { + public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z, int sideHit) { List hit = bullet.worldObj.getEntitiesWithinAABBExcludingEntity(bullet, AxisAlignedBB.getBoundingBox(bullet.posX - radius, bullet.posY - radius, bullet.posZ - radius, bullet.posX + radius, bullet.posY + radius, bullet.posZ + radius)); diff --git a/src/main/java/com/hbm/handler/guncfg/Gun20GaugeFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun20GaugeFactory.java index a985bf636..755296329 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun20GaugeFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun20GaugeFactory.java @@ -147,6 +147,7 @@ public class Gun20GaugeFactory { bullet.style = BulletConfiguration.STYLE_FLECHETTE; bullet.HBRC = 2; bullet.LBRC = 95; + BulletConfigFactory.makeFlechette(bullet); bullet.spentCasing = CASING20GAUGE.clone().register("20GaFlech").setColor(0x2847FF, SpentCasing.COLOR_CASE_BRASS); diff --git a/src/main/java/com/hbm/handler/guncfg/Gun44MagnumFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun44MagnumFactory.java index a0dff1be2..515b1b8bf 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun44MagnumFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun44MagnumFactory.java @@ -223,7 +223,7 @@ public class Gun44MagnumFactory { bullet.effects = new ArrayList(); bullet.effects.add(new PotionEffect(eff)); - bullet.bntImpact = (bulletnt, x, y, z) -> { + bullet.bntImpact = (bulletnt, x, y, z, sideHit) -> { NBTTagCompound data = new NBTTagCompound(); data.setString("type", "vanillaburst"); diff --git a/src/main/java/com/hbm/handler/guncfg/Gun4GaugeFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun4GaugeFactory.java index 191c0eb93..9760fb083 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun4GaugeFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun4GaugeFactory.java @@ -205,7 +205,7 @@ public class Gun4GaugeFactory { bullet.effects = new ArrayList(); bullet.effects.add(new PotionEffect(eff)); - bullet.bntImpact = (bulletnt, x, y, z) -> { + bullet.bntImpact = (bulletnt, x, y, z, sideHit) -> { NBTTagCompound data = new NBTTagCompound(); data.setString("type", "vanillaburst"); @@ -251,7 +251,7 @@ public class Gun4GaugeFactory { bullet.trail = 1; bullet.explosive = 0.0F; - bullet.bntImpact = (bulletnt, x, y, z) -> { + bullet.bntImpact = (bulletnt, x, y, z, sideHit) -> { if(bulletnt.worldObj.isRemote) return; @@ -283,7 +283,7 @@ public class Gun4GaugeFactory { bullet.trail = 1; bullet.explosive = 0.0F; - bullet.bntImpact = (bulletnt, x, y, z) -> { + bullet.bntImpact = (bulletnt, x, y, z, sideHit) -> { if(bulletnt.worldObj.isRemote) return; diff --git a/src/main/java/com/hbm/handler/guncfg/Gun50BMGFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun50BMGFactory.java index beda66771..f9e0a191b 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun50BMGFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun50BMGFactory.java @@ -62,7 +62,7 @@ public class Gun50BMGFactory { bullet.leadChance = 20; bullet.blockDamage = false; - bullet.bntImpact = (projectile, x, y, z) -> projectile.worldObj.newExplosion(projectile, x, y, z, 2.0F, false, false); + bullet.bntImpact = (projectile, x, y, z, sideHit) -> projectile.worldObj.newExplosion(projectile, x, y, z, 2.0F, false, false); bullet.spentCasing = CASINGLUNA.clone().register("LunaStock"); @@ -76,7 +76,7 @@ public class Gun50BMGFactory { bullet.ammo.meta = 1; bullet.incendiary = 10; - bullet.bntImpact = (projectile, x, y, z) -> projectile.worldObj.newExplosion(projectile, x, y, z, 5.0F, true, false); + bullet.bntImpact = (projectile, x, y, z, sideHit) -> projectile.worldObj.newExplosion(projectile, x, y, z, 5.0F, true, false); bullet.spentCasing = CASINGLUNA.clone().register("LunaInc"); @@ -91,7 +91,7 @@ public class Gun50BMGFactory { bullet.ammo.meta = 2; bullet.explosive = 25; bullet.destroysBlocks = true; - bullet.bntImpact = (projectile, x, y, z) -> projectile.worldObj.newExplosion(projectile, x, y, z, 25.0F, true, false); + bullet.bntImpact = (projectile, x, y, z, sideHit) -> projectile.worldObj.newExplosion(projectile, x, y, z, 25.0F, true, false); bullet.spentCasing = CASINGLUNA.clone().register("LunaExp"); @@ -264,7 +264,7 @@ public class Gun50BMGFactory { bullet.effects = new ArrayList(); bullet.effects.add(new PotionEffect(eff)); - bullet.bntImpact = (bulletnt, x, y, z) -> { + bullet.bntImpact = (bulletnt, x, y, z, sideHit) -> { NBTTagCompound data = new NBTTagCompound(); data.setString("type", "vanillaburst"); @@ -368,7 +368,7 @@ public class Gun50BMGFactory { bulletnt.worldObj.spawnEntityInWorld(meteor); }; - bullet.bntImpact = (bulletnt, x, y, z) -> { + bullet.bntImpact = (bulletnt, x, y, z, sideHit) -> { if(bulletnt.worldObj.isRemote) return; @@ -397,6 +397,7 @@ public class Gun50BMGFactory { bullet.dmgMin = 50; bullet.dmgMax = 54; bullet.style = bullet.STYLE_FLECHETTE; + BulletConfigFactory.makeFlechette(bullet); bullet.spentCasing = CASING50BMG.clone().register("50BMGFlech"); @@ -412,6 +413,7 @@ public class Gun50BMGFactory { bullet.dmgMin = 60; bullet.dmgMax = 64; bullet.style = bullet.STYLE_FLECHETTE; + BulletConfigFactory.makeFlechette(bullet); bullet.bntHit = (bulletnt, hit) -> { @@ -437,6 +439,7 @@ public class Gun50BMGFactory { bullet.dmgMin = 60; bullet.dmgMax = 64; bullet.style = bullet.STYLE_FLECHETTE; + BulletConfigFactory.makeFlechette(bullet); bullet.bntHit = (bulletnt, hit) -> { diff --git a/src/main/java/com/hbm/handler/guncfg/Gun556mmFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun556mmFactory.java index d983998e8..fafa0b642 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun556mmFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun556mmFactory.java @@ -182,7 +182,7 @@ public class Gun556mmFactory { bullet.effects = new ArrayList(); bullet.effects.add(new PotionEffect(eff)); - bullet.bntImpact = (bulletnt, x, y, z) -> { + bullet.bntImpact = (bulletnt, x, y, z, sideHit) -> { NBTTagCompound data = new NBTTagCompound(); data.setString("type", "vanillaburst"); @@ -266,7 +266,7 @@ public class Gun556mmFactory { bulletnt.worldObj.spawnEntityInWorld(meteor); }; - bullet.bntImpact = (bulletnt, x, y, z) -> { + bullet.bntImpact = (bulletnt, x, y, z, sideHit) -> { if(bulletnt.worldObj.isRemote) return; @@ -322,6 +322,7 @@ public class Gun556mmFactory { bullet.ammo = new ComparableStack(ModItems.ammo_556.stackFromEnum(Ammo556mm.FLECHETTE_INCENDIARY)); bullet.incendiary = 5; + BulletConfigFactory.makeFlechette(bullet); bullet.spentCasing = CASING556.clone().register("556FlecInc"); @@ -340,7 +341,7 @@ public class Gun556mmFactory { bullet.effects = new ArrayList(); bullet.effects.add(new PotionEffect(eff)); - bullet.bntImpact = (bulletnt, x, y, z) -> { + bullet.bntImpact = (bulletnt, x, y, z, sideHit) -> { NBTTagCompound data = new NBTTagCompound(); data.setString("type", "vanillaburst"); @@ -395,7 +396,7 @@ public class Gun556mmFactory { bulletnt.worldObj.spawnEntityInWorld(meteor); }; - bullet.bntImpact = (bulletnt, x, y, z) -> { + bullet.bntImpact = (bulletnt, x, y, z, sideHit) -> { if(bulletnt.worldObj.isRemote) return; diff --git a/src/main/java/com/hbm/handler/guncfg/Gun75BoltFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun75BoltFactory.java index b3d9bae6f..cc05924f6 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun75BoltFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun75BoltFactory.java @@ -134,7 +134,7 @@ public class Gun75BoltFactory { bullet.effects = new ArrayList(); bullet.effects.add(new PotionEffect(eff)); - bullet.bntImpact = (bulletnt, x, y, z) -> { + bullet.bntImpact = (bulletnt, x, y, z, sideHit) -> { NBTTagCompound data = new NBTTagCompound(); data.setString("type", "vanillaburst"); diff --git a/src/main/java/com/hbm/handler/guncfg/GunCannonFactory.java b/src/main/java/com/hbm/handler/guncfg/GunCannonFactory.java index 2d8710522..411574bbe 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunCannonFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunCannonFactory.java @@ -84,7 +84,7 @@ public class GunCannonFactory { bullet.dmgMin = 100; bullet.dmgMax = 150; - bullet.bntImpact = (bulletnt, x, y, z) -> { + bullet.bntImpact = (bulletnt, x, y, z, sideHit) -> { BulletConfigFactory.nuclearExplosion(bulletnt, x, y, z, ExplosionNukeSmall.PARAMS_TOTS); }; diff --git a/src/main/java/com/hbm/handler/guncfg/GunDetonatorFactory.java b/src/main/java/com/hbm/handler/guncfg/GunDetonatorFactory.java index ab25f43bc..093a3d90b 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunDetonatorFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunDetonatorFactory.java @@ -88,7 +88,7 @@ public class GunDetonatorFactory { bullet.doesRicochet = false; bullet.setToBolt(BulletConfiguration.BOLT_LASER); - bullet.bntImpact = (bulletnt, x, y, z) -> { + bullet.bntImpact = (bulletnt, x, y, z, sideHit) -> { World world = bulletnt.worldObj; if(!world.isRemote && y > 0) { diff --git a/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java b/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java index 1e7d4342d..0ea31f450 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunEnergyFactory.java @@ -431,7 +431,7 @@ public class GunEnergyFactory { bullet.bntImpact = new IBulletImpactBehaviorNT() { @Override - public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z) { + public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z, int sideHit) { if(!bullet.worldObj.isRemote) { NBTTagCompound data = new NBTTagCompound(); @@ -554,7 +554,7 @@ public class GunEnergyFactory { bullet.bntImpact = new IBulletImpactBehaviorNT() { @Override - public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z) { + public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z, int sideHit) { if(!bullet.worldObj.isRemote) { @@ -632,7 +632,7 @@ public class GunEnergyFactory { bullet.bntImpact = new IBulletImpactBehaviorNT() { @Override - public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z) { + public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z, int sideHit) { if(!bullet.worldObj.isRemote) { @@ -721,7 +721,7 @@ public class GunEnergyFactory { bullet.bntImpact = new IBulletImpactBehaviorNT() { @Override - public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z) { + public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z, int sideHit) { if(!bullet.worldObj.isRemote) { @@ -812,7 +812,7 @@ public class GunEnergyFactory { bullet.bntImpact = new IBulletImpactBehaviorNT() { @Override - public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z) { + public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z, int sideHit) { if(!bullet.worldObj.isRemote) { ExplosionChaos.explodeZOMG(bullet.worldObj, (int)Math.floor(bullet.posX), (int)Math.floor(bullet.posY), (int)Math.floor(bullet.posZ), 5); diff --git a/src/main/java/com/hbm/handler/guncfg/GunFatmanFactory.java b/src/main/java/com/hbm/handler/guncfg/GunFatmanFactory.java index e068b15f4..5ed0b21db 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunFatmanFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunFatmanFactory.java @@ -135,7 +135,7 @@ public class GunFatmanFactory { bullet.bntImpact = new IBulletImpactBehaviorNT() { @Override - public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z) { + public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z, int sideHit) { BulletConfigFactory.nuclearExplosion(bullet, x, y, z, ExplosionNukeSmall.PARAMS_MEDIUM); } }; @@ -151,7 +151,7 @@ public class GunFatmanFactory { bullet.bntImpact = new IBulletImpactBehaviorNT() { @Override - public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z) { + public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z, int sideHit) { BulletConfigFactory.nuclearExplosion(bullet, x, y, z, ExplosionNukeSmall.PARAMS_LOW); } }; @@ -167,7 +167,7 @@ public class GunFatmanFactory { bullet.bntImpact = new IBulletImpactBehaviorNT() { @Override - public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z) { + public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z, int sideHit) { BulletConfigFactory.nuclearExplosion(bullet, x, y, z, ExplosionNukeSmall.PARAMS_HIGH); } }; @@ -187,7 +187,7 @@ public class GunFatmanFactory { bullet.bntImpact = new IBulletImpactBehaviorNT() { @Override - public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z) { + public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z, int sideHit) { BulletConfigFactory.nuclearExplosion(bullet, x, y, z, ExplosionNukeSmall.PARAMS_TOTS); } }; @@ -203,7 +203,7 @@ public class GunFatmanFactory { bullet.bntImpact = new IBulletImpactBehaviorNT() { @Override - public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z) { + public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z, int sideHit) { BulletConfigFactory.nuclearExplosion(bullet, x, y, z, ExplosionNukeSmall.PARAMS_SAFE); } }; @@ -220,7 +220,7 @@ public class GunFatmanFactory { bullet.bntImpact = new IBulletImpactBehaviorNT() { @Override - public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z) { + public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z, int sideHit) { if(!bullet.worldObj.isRemote) { @@ -252,7 +252,7 @@ public class GunFatmanFactory { bullet.bntImpact = new IBulletImpactBehaviorNT() { @Override - public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z) { + public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z, int sideHit) { if(!bullet.worldObj.isRemote) { @@ -503,7 +503,7 @@ public class GunFatmanFactory { bullet.style = BulletConfiguration.STYLE_BF; bullet.bntImpact = new IBulletImpactBehaviorNT() { - public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z) { + @Override public void behaveBlockHit(EntityBulletBaseNT bullet, int x, int y, int z, int sideHit) { if(!bullet.worldObj.isRemote) { diff --git a/src/main/java/com/hbm/handler/guncfg/GunGrenadeFactory.java b/src/main/java/com/hbm/handler/guncfg/GunGrenadeFactory.java index d65f964e9..2d31dca38 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunGrenadeFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunGrenadeFactory.java @@ -60,6 +60,7 @@ public class GunGrenadeFactory { config.config.add(BulletConfigSyncingUtil.GRENADE_NUCLEAR); config.config.add(BulletConfigSyncingUtil.GRENADE_TRACER); config.config.add(BulletConfigSyncingUtil.GRENADE_KAMPF); + config.config.add(BulletConfigSyncingUtil.GRENADE_LEADBURSTER); config.durability = 300; config.ejector = EJECTOR_LAUNCHER; @@ -211,7 +212,7 @@ public class GunGrenadeFactory { bullet.velocity = 4; bullet.explosive = 0.0F; - bullet.bntImpact = (bulletnt, x, y, z) -> { + bullet.bntImpact = (bulletnt, x, y, z, sideHit) -> { BulletConfigFactory.nuclearExplosion(bulletnt, x, y, z, ExplosionNukeSmall.PARAMS_TOTS); }; @@ -253,4 +254,19 @@ public class GunGrenadeFactory { return bullet; } + + public static BulletConfiguration getGrenadeLeadbursterConfig() { + + BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); + + bullet.ammo = new ComparableStack(ModItems.ammo_grenade.stackFromEnum(AmmoGrenade.LEADBURSTER)); + bullet.spread = 0.0F; + bullet.gravity = 0.01D; + bullet.explosive = 0F; + bullet.style = BulletConfiguration.STYLE_APDS; + bullet.doesRicochet = false; + BulletConfigFactory.makeFlechette(bullet); + + return bullet; + } } diff --git a/src/main/java/com/hbm/handler/guncfg/GunNPCFactory.java b/src/main/java/com/hbm/handler/guncfg/GunNPCFactory.java index 8a6bffe40..d7fff5e2b 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunNPCFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunNPCFactory.java @@ -124,7 +124,7 @@ public class GunNPCFactory { bullet.vPFX = "reddust"; bullet.damageType = ModDamageSource.s_laser; - bullet.bntImpact = (bulletnt, x, y, z) -> { + bullet.bntImpact = (bulletnt, x, y, z, sideHit) -> { if(bulletnt.worldObj.isRemote) return; @@ -252,7 +252,7 @@ public class GunNPCFactory { if(target != null) { if(bullet.getDistanceSqToEntity(target) < 5) { - bullet.getConfig().bntImpact.behaveBlockHit(bullet, -1, -1, -1); + bullet.getConfig().bntImpact.behaveBlockHit(bullet, -1, -1, -1, -1); bullet.setDead(); return; } @@ -306,7 +306,7 @@ public class GunNPCFactory { } }; - bullet.bntImpact = (bulletnt, x, y, z) -> { + bullet.bntImpact = (bulletnt, x, y, z, sideHit) -> { bulletnt.worldObj.playSoundEffect(bulletnt.posX, bulletnt.posY, bulletnt.posZ, "hbm:entity.ufoBlast", 5.0F, 0.9F + bulletnt.worldObj.rand.nextFloat() * 0.2F); bulletnt.worldObj.playSoundEffect(bulletnt.posX, bulletnt.posY, bulletnt.posZ, "fireworks.blast", 5.0F, 0.5F); diff --git a/src/main/java/com/hbm/handler/guncfg/GunOSIPRFactory.java b/src/main/java/com/hbm/handler/guncfg/GunOSIPRFactory.java index 720a57e2c..47c3e698c 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunOSIPRFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunOSIPRFactory.java @@ -127,7 +127,7 @@ public class GunOSIPRFactory { }; - bullet.bntImpact = (ball, x, y, z) -> { + bullet.bntImpact = (ball, x, y, z, sideHit) -> { final Block block = ball.worldObj.getBlock(x, y, z); if(block instanceof RedBarrel) ((RedBarrel) block).explode(ball.worldObj, x, y, z); diff --git a/src/main/java/com/hbm/handler/guncfg/GunRocketFactory.java b/src/main/java/com/hbm/handler/guncfg/GunRocketFactory.java index cea0490c3..b6b0714dd 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunRocketFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunRocketFactory.java @@ -284,7 +284,7 @@ public class GunRocketFactory { bullet.incendiary = 0; bullet.trail = 7; - bullet.bntImpact = (bulletnt, x, y, z) -> { + bullet.bntImpact = (bulletnt, x, y, z, sideHit) -> { BulletConfigFactory.nuclearExplosion(bulletnt, x, y, z, ExplosionNukeSmall.PARAMS_MEDIUM); }; @@ -395,7 +395,7 @@ public class GunRocketFactory { bullet.incendiary = 0; bullet.trail = 7; - bullet.bntImpact = (bulletnt, x, y, z) -> { + bullet.bntImpact = (bulletnt, x, y, z, sideHit) -> { if(bulletnt.worldObj.isRemote) return; diff --git a/src/main/java/com/hbm/items/ItemAmmoEnums.java b/src/main/java/com/hbm/items/ItemAmmoEnums.java index 8ef0638d7..54ad9f1c6 100644 --- a/src/main/java/com/hbm/items/ItemAmmoEnums.java +++ b/src/main/java/com/hbm/items/ItemAmmoEnums.java @@ -186,7 +186,8 @@ public class ItemAmmoEnums { FINNED("ammo_grenade_finned", AmmoItemTrait.PRO_GRAVITY, AmmoItemTrait.CON_RADIUS), NUCLEAR("ammo_grenade_nuclear", AmmoItemTrait.PRO_NUCLEAR, AmmoItemTrait.PRO_RANGE, AmmoItemTrait.CON_HEAVY_WEAR), TRACER("ammo_grenade_tracer", AmmoItemTrait.NEU_BLANK), - KAMPF("ammo_grenade_kampf", AmmoItemTrait.PRO_ROCKET_PROPELLED, AmmoItemTrait.PRO_RADIUS, AmmoItemTrait.PRO_ACCURATE1, AmmoItemTrait.CON_WEAR); + KAMPF("ammo_grenade_kampf", AmmoItemTrait.PRO_ROCKET_PROPELLED, AmmoItemTrait.PRO_RADIUS, AmmoItemTrait.PRO_ACCURATE1, AmmoItemTrait.CON_WEAR), + LEADBURSTER("ammo_grenade_leadburster", AmmoItemTrait.NEU_LEADBURSTER, AmmoItemTrait.CON_NO_EXPLODE1); private final Set traits; private final String unloc; diff --git a/src/main/java/com/hbm/items/weapon/ItemAmmo.java b/src/main/java/com/hbm/items/weapon/ItemAmmo.java index f83ea596c..eebc241a8 100644 --- a/src/main/java/com/hbm/items/weapon/ItemAmmo.java +++ b/src/main/java/com/hbm/items/weapon/ItemAmmo.java @@ -65,6 +65,7 @@ public class ItemAmmo extends ItemEnumMulti { NEU_STARMETAL, NEU_TRACER, NEU_UHH, + NEU_LEADBURSTER, NEU_WARCRIME1, NEU_WARCRIME2, PRO_ACCURATE1, diff --git a/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java b/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java index d4d263fa5..bb62a11b5 100644 --- a/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java +++ b/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java @@ -305,7 +305,7 @@ public class ItemAmmoArty extends Item { this.itemTypes[CARGO] = new ArtilleryShell("ammo_arty_cargo", SpentCasing.COLOR_CASE_16INCH) { public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { if(mop.typeOfHit == MovingObjectType.BLOCK) { shell.setPosition(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord); - shell.getStuck(mop.blockX, mop.blockY, mop.blockZ); + shell.getStuck(mop.blockX, mop.blockY, mop.blockZ, mop.sideHit); } }}; diff --git a/src/main/java/com/hbm/util/TrackerUtil.java b/src/main/java/com/hbm/util/TrackerUtil.java new file mode 100644 index 000000000..9889d0c6e --- /dev/null +++ b/src/main/java/com/hbm/util/TrackerUtil.java @@ -0,0 +1,44 @@ +package com.hbm.util; + +import cpw.mods.fml.relauncher.ReflectionHelper; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityTracker; +import net.minecraft.entity.EntityTrackerEntry; +import net.minecraft.network.play.server.S18PacketEntityTeleport; +import net.minecraft.util.IntHashMap; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraft.world.WorldServer; + +/** + * This absolute fucking mess of a class is the direct consequence of mojank's terrible entity tracker that allows for 0 flexibility with how entities are synced. + * + * @author hbm + */ +public class TrackerUtil { + + /** Grabs the tracker entry from the given entity */ + public static EntityTrackerEntry getTrackerEntry(WorldServer world, int entityId) { + EntityTracker entitytracker = world.getEntityTracker(); + IntHashMap map = ReflectionHelper.getPrivateValue(EntityTracker.class, entitytracker, "trackedEntityIDs", "field_72794_c"); + EntityTrackerEntry entry = (EntityTrackerEntry) map.lookup(entityId); + return entry; + } + + /** Force-teleports the given entity using the tracker, resetting the tick count to 0 to prevent movement during this tick */ + public static void sendTeleport(World world, Entity e) { + + if(world instanceof WorldServer) { + WorldServer server = (WorldServer) world; + EntityTrackerEntry entry = getTrackerEntry(server, e.getEntityId()); + int xScaled = e.myEntitySize.multiplyBy32AndRound(e.posX); + int yScaled = MathHelper.floor_double(e.posY * 32.0D); + int zScaled = e.myEntitySize.multiplyBy32AndRound(e.posZ); + int yaw = MathHelper.floor_float(e.rotationYaw * 256.0F / 360.0F); + int pitch = MathHelper.floor_float(e.rotationPitch * 256.0F / 360.0F); + entry.func_151259_a(new S18PacketEntityTeleport(e.getEntityId(), xScaled, yScaled, zScaled, (byte)yaw, (byte)pitch)); + //this prevents the tracker from sending movement updates in the same tick + entry.ticks = 0; + } + } +} diff --git a/src/main/resources/assets/hbm/textures/items/ammo_grenade_leadburster.png b/src/main/resources/assets/hbm/textures/items/ammo_grenade_leadburster.png new file mode 100644 index 0000000000000000000000000000000000000000..dd2737ccb2bea3565b4261ce3e531e47394a1a8f GIT binary patch literal 291 zcmV+;0o?wHP)Vy(qmOG@bkd<)2$=NVO{s;bM7 z0wATtvMc}?V{SnTfMFQS9x{$2ecxY#Y$qHcBC<)>*n^%utk zJf6@whpHkXh{$gXyar@Qj#ZVWY3>2`!_GMX+O}Q2_fLji`fc#=C8dO_K6&xy23ax2 p&6DF6x8%KF>$?6Nko7MRfFH!Cb%!?pgY5tS002ovPDHLkV1k~{c69&% literal 0 HcmV?d00001 From 3b94f3dafd15817f99ce49fdc09b1180c585e7b9 Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 11 Aug 2023 12:02:18 +0200 Subject: [PATCH 233/432] 40mm leadburster --- .../entity/projectile/EntityThrowableNT.java | 43 ++++---- .../com/hbm/handler/guncfg/Gun9mmFactory.java | 2 +- .../hbm/handler/guncfg/GunGrenadeFactory.java | 103 +++++++++++++++++- src/main/java/com/hbm/items/ModItems.java | 3 + src/main/java/com/hbm/lib/HbmCollection.java | 4 +- src/main/resources/assets/hbm/lang/en_US.lang | 2 +- .../assets/hbm/textures/items/boltgun.png | Bin 0 -> 324 bytes .../assets/hbm/textures/items/gun_ar15.png | Bin 0 -> 208 bytes .../hbm/textures/items/gun_bio_revolver.png | Bin 0 -> 309 bytes .../assets/hbm/textures/items/gun_coilgun.png | Bin 0 -> 341 bytes .../assets/hbm/textures/items/gun_flamer.png | Bin 0 -> 304 bytes .../assets/hbm/textures/items/gun_spas12.png | Bin 0 -> 227 bytes 12 files changed, 132 insertions(+), 25 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/items/boltgun.png create mode 100644 src/main/resources/assets/hbm/textures/items/gun_ar15.png create mode 100644 src/main/resources/assets/hbm/textures/items/gun_bio_revolver.png create mode 100644 src/main/resources/assets/hbm/textures/items/gun_coilgun.png create mode 100644 src/main/resources/assets/hbm/textures/items/gun_flamer.png create mode 100644 src/main/resources/assets/hbm/textures/items/gun_spas12.png diff --git a/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java b/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java index 892e59e79..15cda441f 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java +++ b/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java @@ -234,27 +234,30 @@ public abstract class EntityThrowableNT extends Entity implements IProjectile { } } - float hyp = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - this.rotationYaw = (float) (Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - - for(this.rotationPitch = (float) (Math.atan2(this.motionY, (double) hyp) * 180.0D / Math.PI); this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F) { - ; + if(!this.onGround) { + float hyp = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); + this.rotationYaw = (float) (Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); + + for(this.rotationPitch = (float) (Math.atan2(this.motionY, (double) hyp) * 180.0D / Math.PI); this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F) { + ; + } + + while(this.rotationPitch - this.prevRotationPitch >= 180.0F) { + this.prevRotationPitch += 360.0F; + } + + while(this.rotationYaw - this.prevRotationYaw < -180.0F) { + this.prevRotationYaw -= 360.0F; + } + + while(this.rotationYaw - this.prevRotationYaw >= 180.0F) { + this.prevRotationYaw += 360.0F; + } + + this.rotationPitch = this.prevRotationPitch + (this.rotationPitch - this.prevRotationPitch) * 0.2F; + this.rotationYaw = this.prevRotationYaw + (this.rotationYaw - this.prevRotationYaw) * 0.2F; } - - while(this.rotationPitch - this.prevRotationPitch >= 180.0F) { - this.prevRotationPitch += 360.0F; - } - - while(this.rotationYaw - this.prevRotationYaw < -180.0F) { - this.prevRotationYaw -= 360.0F; - } - - while(this.rotationYaw - this.prevRotationYaw >= 180.0F) { - this.prevRotationYaw += 360.0F; - } - - this.rotationPitch = this.prevRotationPitch + (this.rotationPitch - this.prevRotationPitch) * 0.2F; - this.rotationYaw = this.prevRotationYaw + (this.rotationYaw - this.prevRotationYaw) * 0.2F; + float drag = this.getAirDrag(); double gravity = this.getGravityVelocity(); diff --git a/src/main/java/com/hbm/handler/guncfg/Gun9mmFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun9mmFactory.java index 827950fd8..2e7c68cc4 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun9mmFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun9mmFactory.java @@ -44,7 +44,7 @@ public class Gun9mmFactory { config.reloadSoundEnd = false; config.name = "mp40"; - config.manufacturer = EnumGunManufacturer.NAZI; + config.manufacturer = EnumGunManufacturer.ERFURT; config.config = new ArrayList(); config.config.add(BulletConfigSyncingUtil.P9_NORMAL); diff --git a/src/main/java/com/hbm/handler/guncfg/GunGrenadeFactory.java b/src/main/java/com/hbm/handler/guncfg/GunGrenadeFactory.java index 2d31dca38..d6516af60 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunGrenadeFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunGrenadeFactory.java @@ -2,6 +2,7 @@ package com.hbm.handler.guncfg; import java.util.ArrayList; +import com.hbm.entity.projectile.EntityBulletBaseNT; import com.hbm.explosion.ExplosionNukeSmall; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; @@ -14,14 +15,20 @@ import com.hbm.lib.HbmCollection.EnumGunManufacturer; import com.hbm.particle.SpentCasing; import com.hbm.particle.SpentCasing.CasingType; import com.hbm.render.util.RenderScreenOverlay.Crosshair; +import com.hbm.util.TrackerUtil; + +import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; public class GunGrenadeFactory { - + private static final CasingEjector EJECTOR_LAUNCHER; + private static final CasingEjector EJECTOR_CONGOLAKE; private static final SpentCasing CASING40MM; static { EJECTOR_LAUNCHER = new CasingEjector().setAngleRange(0.02F, 0.03F).setAfterReload(); + EJECTOR_CONGOLAKE = new CasingEjector().setMotion(0.3, 0.1, 0).setAngleRange(0.02F, 0.03F).setDelay(15); CASING40MM = new SpentCasing(CasingType.STRAIGHT).setScale(4F, 4F, 3F).setBounceMotion(0.02F, 0.03F).setColor(0x777777).setupSmoke(1F, 0.5D, 60, 40); } @@ -67,6 +74,47 @@ public class GunGrenadeFactory { return config; } + + public static GunConfiguration getCongoConfig() { + + GunConfiguration config = new GunConfiguration(); + + config.rateOfFire = 30; + config.roundsPerCycle = 1; + config.gunMode = GunConfiguration.MODE_NORMAL; + config.firingMode = GunConfiguration.FIRE_MANUAL; + config.reloadDuration = 20; + config.firingDuration = 0; + config.ammoCap = 4; + config.reloadType = GunConfiguration.RELOAD_SINGLE; + config.allowsInfinity = true; + config.crosshair = Crosshair.L_CIRCUMFLEX; + config.firingSound = "hbm:weapon.hkShoot"; + config.reloadSound = GunConfiguration.RSOUND_GRENADE; + config.reloadSoundEnd = false; + + config.name = "congoLake"; + config.manufacturer = EnumGunManufacturer.NAWS; + + config.config = new ArrayList(); + config.config.add(BulletConfigSyncingUtil.GRENADE_NORMAL); + config.config.add(BulletConfigSyncingUtil.GRENADE_HE); + config.config.add(BulletConfigSyncingUtil.GRENADE_INCENDIARY); + config.config.add(BulletConfigSyncingUtil.GRENADE_PHOSPHORUS); + config.config.add(BulletConfigSyncingUtil.GRENADE_CHEMICAL); + config.config.add(BulletConfigSyncingUtil.GRENADE_CONCUSSION); + config.config.add(BulletConfigSyncingUtil.GRENADE_FINNED); + config.config.add(BulletConfigSyncingUtil.GRENADE_SLEEK); + config.config.add(BulletConfigSyncingUtil.GRENADE_NUCLEAR); + config.config.add(BulletConfigSyncingUtil.GRENADE_TRACER); + config.config.add(BulletConfigSyncingUtil.GRENADE_KAMPF); + config.config.add(BulletConfigSyncingUtil.GRENADE_LEADBURSTER); + config.durability = 1500; + + config.ejector = EJECTOR_CONGOLAKE; + + return config; + } public static BulletConfiguration getGrenadeConfig() { @@ -265,7 +313,58 @@ public class GunGrenadeFactory { bullet.explosive = 0F; bullet.style = BulletConfiguration.STYLE_APDS; bullet.doesRicochet = false; - BulletConfigFactory.makeFlechette(bullet); + + bullet.bntImpact = (bulletnt, x, y, z, sideHit) -> { + + Vec3 vec = Vec3.createVectorHelper(0, 0, 1); + vec.rotateAroundX((float) -Math.toRadians(bulletnt.rotationPitch)); + vec.rotateAroundY((float) Math.toRadians(bulletnt.rotationYaw)); + + bulletnt.posX -= vec.xCoord * 0.1; + bulletnt.posY -= vec.yCoord * 0.1; + bulletnt.posZ -= vec.zCoord * 0.1; + + bulletnt.getStuck(x, y, z, sideHit); + }; + + bullet.bntUpdate = (bulletnt) -> { + if(bulletnt.worldObj.isRemote) return; + + switch(bulletnt.getStuckIn()) { + case 0: bulletnt.rotationPitch = (float) (90); break; + case 1: bulletnt.rotationPitch = (float) (-90); break; + case 2: bulletnt.rotationPitch = 0; bulletnt.rotationYaw = 0; break; + case 3: bulletnt.rotationPitch = 0; bulletnt.rotationYaw = (float) 180; break; + case 4: bulletnt.rotationPitch = 0; bulletnt.rotationYaw = 90; break; + case 5: bulletnt.rotationPitch = 0; bulletnt.rotationYaw = (float) -90; break; + } + + if(bulletnt.ticksInGround < 20) return; + int timer = bulletnt.ticksInGround - 20; + if(timer > 60) return; + + for(int i = 0; i < 5; i++) { + Vec3 vec = Vec3.createVectorHelper(0, 1, 0); + vec.rotateAroundX((float) Math.toRadians(11.25 * i)); + vec.rotateAroundZ((float) -Math.toRadians(13 * timer)); + vec.rotateAroundX((float) (bulletnt.rotationPitch * Math.PI / 180D)); + vec.rotateAroundY((float) (bulletnt.rotationYaw * Math.PI / 180)); + + EntityBulletBaseNT pellet = new EntityBulletBaseNT(bulletnt.worldObj, BulletConfigSyncingUtil.R556_NORMAL); + double dist = 0.5; + pellet.setPosition(bulletnt.posX + vec.xCoord * dist, bulletnt.posY + vec.yCoord * dist, bulletnt.posZ + vec.zCoord * dist); + double vel = 0.5; + pellet.motionX = vec.xCoord * vel; + pellet.motionY = vec.yCoord * vel; + pellet.motionZ = vec.zCoord * vel; + + float hyp = MathHelper.sqrt_double(pellet.motionX * pellet.motionX + pellet.motionZ * pellet.motionZ); + pellet.prevRotationYaw = pellet.rotationYaw = (float) (Math.atan2(pellet.motionX, pellet.motionZ) * 180.0D / Math.PI); + pellet.prevRotationPitch = pellet.rotationPitch = (float) (Math.atan2(pellet.motionY, (double) hyp) * 180.0D / Math.PI); + + bulletnt.worldObj.spawnEntityInWorld(pellet); + } + }; return bullet; } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 8ec82b805..f4be014fc 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1522,6 +1522,7 @@ public class ModItems { public static Item gun_panzerschreck; public static Item gun_quadro; public static Item gun_hk69; + public static Item gun_congolake; public static Item gun_stinger; public static Item gun_skystinger; public static Item gun_revolver; @@ -4127,6 +4128,7 @@ public class ModItems { gun_panzerschreck = new ItemGunBase(GunRocketFactory.getPanzConfig()).setUnlocalizedName("gun_panzerschreck").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_panzerschreck"); gun_quadro = new ItemGunBase(GunRocketFactory.getQuadroConfig()).setUnlocalizedName("gun_quadro").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_quadro"); gun_hk69 = new ItemGunBase(GunGrenadeFactory.getHK69Config()).setUnlocalizedName("gun_hk69").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_hk69"); + gun_congolake = new ItemGunBase(GunGrenadeFactory.getHK69Config()).setUnlocalizedName("gun_congolake").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_congolake"); gun_stinger = new ItemGunBase(GunRocketHomingFactory.getStingerConfig()).setUnlocalizedName("gun_stinger").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_stinger"); gun_skystinger = new ItemGunBase(GunRocketHomingFactory.getSkyStingerConfig()).setUnlocalizedName("gun_skystinger").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_skystinger"); gun_revolver = new ItemGunBase(Gun357MagnumFactory.getRevolverConfig()).setUnlocalizedName("gun_revolver").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver"); @@ -6992,6 +6994,7 @@ public class ModItems { GameRegistry.registerItem(gun_panzerschreck, gun_panzerschreck.getUnlocalizedName()); GameRegistry.registerItem(gun_quadro, gun_quadro.getUnlocalizedName()); GameRegistry.registerItem(gun_hk69, gun_hk69.getUnlocalizedName()); + GameRegistry.registerItem(gun_congolake, gun_congolake.getUnlocalizedName()); GameRegistry.registerItem(gun_stinger, gun_stinger.getUnlocalizedName()); GameRegistry.registerItem(gun_fatman, gun_fatman.getUnlocalizedName()); GameRegistry.registerItem(gun_proto, gun_proto.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/lib/HbmCollection.java b/src/main/java/com/hbm/lib/HbmCollection.java index dba947b9b..6472f8338 100644 --- a/src/main/java/com/hbm/lib/HbmCollection.java +++ b/src/main/java/com/hbm/lib/HbmCollection.java @@ -133,8 +133,10 @@ public class HbmCollection { METRO, /**MWT Prototype Labs**/ MWT, + /**Naval Air Weapons Station**/ + NAWS, /**Erfurter Maschinenfabrik Geipel**/ - NAZI, + ERFURT, /**No manufacturer, just puts "-" **/ NONE, /**OxfordEM Technologies**/ diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 9c2194b06..a6bd587a5 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1103,7 +1103,7 @@ gun.make.MANN=Open Mann Co. gun.make.MAXIM=Hiram Maxim gun.make.METRO=Metro Gunsmiths gun.make.MWT=MWT Prototype Labs -gun.make.NAZI=Erfurter Maschinenfabrik Geipel +gun.make.ERFURT=Erfurter Maschinenfabrik Geipel gun.make.NONE=- gun.make.RAYTHEON=Raytheon Missile Systems gun.make.REMINGTON=Remington Arms diff --git a/src/main/resources/assets/hbm/textures/items/boltgun.png b/src/main/resources/assets/hbm/textures/items/boltgun.png new file mode 100644 index 0000000000000000000000000000000000000000..a45e128a7d3b6ff0fb8223ba17365eb136ef8893 GIT binary patch literal 324 zcmV-K0lWT*P)OX;v3`+(CiJ|P|O8zPdZDfNr!0h3EcVy zZr~27(oh%-G?CISMYNX9Vtyp@s?|#0?0Yk_@Jxw_ew1;{K`EsHJkKMJW2YXe$~A{H zO&x$N%N{jh%ec8mmQ@ka#>FV`*>7_ImebkASe45%{N@h<=)Lv<$g>^M`=?dJy#$+n z0IZ?}fW9{%n1@z0w+=q+^1{g~O3*b$Dq}3a3@{ESx;yxb@Rh6?1-=#M=Df>A!0w4# z2O2fMe~LH&`)!Vf!a?I2Y1UlY06G3VNqH4A*T0v0edHk&_i z%{nnbs^sWV)4y}mgpS=c{$5l3E`{x1_1^t5N0!tF>2ER-3+}io2Bdz!k!W~5yEMIC zB!O$@m(J6>dzW?zHE7(*I)3re;tXvu1&2v*s;jGo8Gghm*lVqSb=5&Am+3w?%Ykj@ zwcjqBnqt6s;PvgztP4W=7{bqOxxAS5isJOmm%Uc^8*?%2u+U@(aJ{*+`(k@hy>-4s zng4v=^Apd>=*>CxC-%>$A0JJt62u=_3GM2;$Zi}}?>f)za!c_%XQ00sJYD@<);T3K F0RRF~esll; literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/gun_coilgun.png b/src/main/resources/assets/hbm/textures/items/gun_coilgun.png new file mode 100644 index 0000000000000000000000000000000000000000..5c130d10963b9331ac31134f9c52517161628143 GIT binary patch literal 341 zcmV-b0jmCqP)s^l9Igqb{UsPIb`HJH zbp(&=nC_UO;x(8VTJ&rk=MPtPuu3Q#JbHKe1P zLubzV%V50nxn8)mfmDEplUD!)kja$3HE0D9dhvW~sbO~mz}3Q~Zw<&~%G8NCp5&qq z(9w%wcSBN`0EAA|D#;GOp5)>;h~3L;A+@pAo}rS$q&!Cfb}whV3IKSC9z`Rdl>R1n zsYfQ$ZAY<;XJYS!pSpOGA}P#0^VFGFGe=DTfcwuIGWk)}Z|Ad}e&Y!v*H`-HaJ$*o nzO*qxXg5ByiO)?RDvw{lA0>0#3}YHdLT;GDxb7uakv04R#W z1Egs>H#zxx;Ze=ZB3ZO;tHkDEficDdeEnVsik1wfCS_TU`@ZjI+ErDJTu|V_100MY z%d#0LvDQ-8wHgZq1o+8w0M7gUsuBfo&GX=H-?y6rFvj?IC2!yRS&0}#3rvu%>#)`? z!T`Hhung2N48(Cvk|Y8AGV(X3Qz>(?I-h*5&G`c~~M_$0000+FmO9Jz~7s z(#0W;_B1I1UCH3->gTe~DWM4f0fAA1 literal 0 HcmV?d00001 From 98ec88678ae94848a652c73374e64549bed10b45 Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 11 Aug 2023 14:18:23 +0200 Subject: [PATCH 234/432] leadburster tweaks --- .../com/hbm/handler/BulletConfiguration.java | 1 + .../hbm/handler/guncfg/GunGrenadeFactory.java | 17 +- src/main/java/com/hbm/items/ModItems.java | 2 +- .../assets/hbm/models/trinkets/lantern.obj | 500 ++++++++++++++++++ .../hbm/textures/models/trinkets/lantern.png | Bin 0 -> 288 bytes 5 files changed, 513 insertions(+), 7 deletions(-) create mode 100644 src/main/resources/assets/hbm/models/trinkets/lantern.obj create mode 100644 src/main/resources/assets/hbm/textures/models/trinkets/lantern.png diff --git a/src/main/java/com/hbm/handler/BulletConfiguration.java b/src/main/java/com/hbm/handler/BulletConfiguration.java index 1a5c07498..9a08d0c03 100644 --- a/src/main/java/com/hbm/handler/BulletConfiguration.java +++ b/src/main/java/com/hbm/handler/BulletConfiguration.java @@ -140,6 +140,7 @@ public class BulletConfiguration implements Cloneable { public static final int STYLE_BLADE = 15; public static final int STYLE_BARREL = 16; public static final int STYLE_TAU = 17; + public static final int STYLE_LEADBURSTER = 18; public static final int PLINK_NONE = 0; public static final int PLINK_BULLET = 1; diff --git a/src/main/java/com/hbm/handler/guncfg/GunGrenadeFactory.java b/src/main/java/com/hbm/handler/guncfg/GunGrenadeFactory.java index d6516af60..0432fc147 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunGrenadeFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunGrenadeFactory.java @@ -15,7 +15,6 @@ import com.hbm.lib.HbmCollection.EnumGunManufacturer; import com.hbm.particle.SpentCasing; import com.hbm.particle.SpentCasing.CasingType; import com.hbm.render.util.RenderScreenOverlay.Crosshair; -import com.hbm.util.TrackerUtil; import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; @@ -50,7 +49,6 @@ public class GunGrenadeFactory { config.crosshair = Crosshair.L_CIRCUMFLEX; config.firingSound = "hbm:weapon.hkShoot"; config.reloadSound = GunConfiguration.RSOUND_GRENADE; - config.reloadSoundEnd = false; config.name = "gPistol"; config.manufacturer = EnumGunManufacturer.H_AND_K; @@ -311,14 +309,15 @@ public class GunGrenadeFactory { bullet.spread = 0.0F; bullet.gravity = 0.01D; bullet.explosive = 0F; - bullet.style = BulletConfiguration.STYLE_APDS; + bullet.style = BulletConfiguration.STYLE_LEADBURSTER; bullet.doesRicochet = false; + bullet.doesPenetrate = true; bullet.bntImpact = (bulletnt, x, y, z, sideHit) -> { Vec3 vec = Vec3.createVectorHelper(0, 0, 1); - vec.rotateAroundX((float) -Math.toRadians(bulletnt.rotationPitch)); - vec.rotateAroundY((float) Math.toRadians(bulletnt.rotationYaw)); + vec.rotateAroundX((float) (bulletnt.rotationPitch * Math.PI / 180D)); + vec.rotateAroundY((float) (bulletnt.rotationYaw * Math.PI / 180)); bulletnt.posX -= vec.xCoord * 0.1; bulletnt.posY -= vec.yCoord * 0.1; @@ -343,6 +342,12 @@ public class GunGrenadeFactory { int timer = bulletnt.ticksInGround - 20; if(timer > 60) return; + Vec3 offset = Vec3.createVectorHelper(0, 0, -0.5); + offset.rotateAroundX((float) (bulletnt.rotationPitch * Math.PI / 180D)); + offset.rotateAroundY((float) (bulletnt.rotationYaw * Math.PI / 180)); + + bulletnt.worldObj.playSoundEffect(bulletnt.posX, bulletnt.posY, bulletnt.posZ, "hbm:weapon.silencerShoot", 2F, 1F); + for(int i = 0; i < 5; i++) { Vec3 vec = Vec3.createVectorHelper(0, 1, 0); vec.rotateAroundX((float) Math.toRadians(11.25 * i)); @@ -352,7 +357,7 @@ public class GunGrenadeFactory { EntityBulletBaseNT pellet = new EntityBulletBaseNT(bulletnt.worldObj, BulletConfigSyncingUtil.R556_NORMAL); double dist = 0.5; - pellet.setPosition(bulletnt.posX + vec.xCoord * dist, bulletnt.posY + vec.yCoord * dist, bulletnt.posZ + vec.zCoord * dist); + pellet.setPosition(bulletnt.posX + vec.xCoord * dist + offset.xCoord, bulletnt.posY + vec.yCoord * dist + offset.yCoord, bulletnt.posZ + vec.zCoord * dist + offset.zCoord); double vel = 0.5; pellet.motionX = vec.xCoord * vel; pellet.motionY = vec.yCoord * vel; diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index f4be014fc..d14e310e8 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -4128,7 +4128,7 @@ public class ModItems { gun_panzerschreck = new ItemGunBase(GunRocketFactory.getPanzConfig()).setUnlocalizedName("gun_panzerschreck").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_panzerschreck"); gun_quadro = new ItemGunBase(GunRocketFactory.getQuadroConfig()).setUnlocalizedName("gun_quadro").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_quadro"); gun_hk69 = new ItemGunBase(GunGrenadeFactory.getHK69Config()).setUnlocalizedName("gun_hk69").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_hk69"); - gun_congolake = new ItemGunBase(GunGrenadeFactory.getHK69Config()).setUnlocalizedName("gun_congolake").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_congolake"); + gun_congolake = new ItemGunBase(GunGrenadeFactory.getCongoConfig()).setUnlocalizedName("gun_congolake").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_congolake"); gun_stinger = new ItemGunBase(GunRocketHomingFactory.getStingerConfig()).setUnlocalizedName("gun_stinger").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_stinger"); gun_skystinger = new ItemGunBase(GunRocketHomingFactory.getSkyStingerConfig()).setUnlocalizedName("gun_skystinger").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_skystinger"); gun_revolver = new ItemGunBase(Gun357MagnumFactory.getRevolverConfig()).setUnlocalizedName("gun_revolver").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver"); diff --git a/src/main/resources/assets/hbm/models/trinkets/lantern.obj b/src/main/resources/assets/hbm/models/trinkets/lantern.obj new file mode 100644 index 000000000..46f55c49d --- /dev/null +++ b/src/main/resources/assets/hbm/models/trinkets/lantern.obj @@ -0,0 +1,500 @@ +# Blender v2.79 (sub 0) OBJ File: 'lantern.blend' +# www.blender.org +o Light +v 0.187500 4.062500 0.187500 +v 0.312500 4.812500 0.312500 +v 0.187500 4.062500 -0.187500 +v 0.312500 4.812500 -0.312500 +v -0.181700 4.062500 0.187500 +v -0.306700 4.812500 0.312500 +v -0.181700 4.062500 -0.187500 +v -0.306700 4.812500 -0.312500 +vn 0.0000 -0.1644 0.9864 +vn -0.9864 -0.1644 0.0000 +vn 0.0000 -0.1644 -0.9864 +vn 0.9864 -0.1644 0.0000 +s off +f 2//1 5//1 1//1 +f 7//2 6//2 8//2 +f 3//3 8//3 4//3 +f 1//4 4//4 2//4 +f 2//1 6//1 5//1 +f 7//2 5//2 6//2 +f 3//3 7//3 8//3 +f 1//4 3//4 4//4 +o Lantern +v -0.125000 -0.250000 0.125000 +v 0.125000 -0.250000 0.125000 +v -0.125000 -0.250000 -0.125000 +v 0.125000 -0.250000 -0.125000 +v -0.125000 0.937500 0.125000 +v 0.125000 0.937500 0.125000 +v -0.125000 0.937500 -0.125000 +v 0.125000 0.937500 -0.125000 +v -0.062500 1.000000 0.062500 +v 0.062500 1.000000 0.062500 +v -0.062500 1.000000 -0.062500 +v 0.062500 1.000000 -0.062500 +v -0.125000 1.062500 0.125000 +v 0.125000 1.062500 0.125000 +v -0.125000 1.062500 -0.125000 +v 0.125000 1.062500 -0.125000 +v -0.125000 1.187500 0.125000 +v 0.125000 1.187500 0.125000 +v -0.125000 1.187500 -0.125000 +v 0.125000 1.187500 -0.125000 +v -0.062500 1.250000 0.062500 +v 0.062500 1.250000 0.062500 +v -0.062500 1.250000 -0.062500 +v 0.062500 1.250000 -0.062500 +v -0.062500 3.250000 -0.062500 +v -0.062500 3.250000 0.062500 +v 0.062500 3.250000 0.062500 +v 0.062500 3.250000 -0.062500 +v -0.125000 3.312500 -0.125000 +v -0.125000 3.312500 0.125000 +v 0.125000 3.312500 0.125000 +v 0.125000 3.312500 -0.125000 +v -0.125000 3.437500 -0.125000 +v -0.125000 3.437500 0.125000 +v 0.125000 3.437500 0.125000 +v 0.125000 3.437500 -0.125000 +v -0.062500 3.500000 -0.062500 +v -0.062500 3.500000 0.062500 +v 0.062500 3.500000 0.062500 +v 0.062500 3.500000 -0.062500 +v -0.062500 4.000000 -0.062500 +v -0.062500 4.000000 0.062500 +v 0.062500 4.000000 0.062500 +v 0.062500 4.000000 -0.062500 +v -0.250000 4.000000 0.250000 +v 0.250000 4.000000 0.250000 +v -0.250000 4.000000 -0.250000 +v 0.250000 4.000000 -0.250000 +v -0.250000 4.062500 -0.250000 +v -0.250000 4.062500 0.250000 +v 0.250000 4.062500 0.250000 +v 0.250000 4.062500 -0.250000 +v 0.250000 4.062500 0.250000 +v 0.250000 4.062500 0.187500 +v 0.187500 4.062500 0.250000 +v 0.187500 4.062500 0.187500 +v 0.375000 4.812500 0.375000 +v 0.375000 4.812500 0.312500 +v 0.312500 4.812500 0.375000 +v 0.312500 4.812500 0.312500 +v 0.250000 4.062500 -0.187500 +v 0.250000 4.062500 -0.250000 +v 0.187500 4.062500 -0.187500 +v 0.187500 4.062500 -0.250000 +v 0.375000 4.812500 -0.312500 +v 0.375000 4.812500 -0.375000 +v 0.312500 4.812500 -0.312500 +v 0.312500 4.812500 -0.375000 +v -0.181700 4.062500 0.250000 +v -0.181700 4.062500 0.187500 +v -0.244200 4.062500 0.250000 +v -0.244200 4.062500 0.187500 +v -0.306700 4.812500 0.375000 +v -0.306700 4.812500 0.312500 +v -0.369200 4.812500 0.375000 +v -0.369200 4.812500 0.312500 +v -0.181700 4.062500 -0.187500 +v -0.181700 4.062500 -0.250000 +v -0.244200 4.062500 -0.187500 +v -0.244200 4.062500 -0.250000 +v -0.306700 4.812500 -0.312500 +v -0.306700 4.812500 -0.375000 +v -0.369200 4.812500 -0.312500 +v -0.369200 4.812500 -0.375000 +v 0.375000 4.812500 0.375000 +v 0.375000 4.812500 -0.375000 +v -0.369200 4.812500 0.375000 +v -0.369200 4.812500 -0.375000 +v 0.375000 4.875000 0.375000 +v 0.375000 4.875000 -0.375000 +v -0.369200 4.875000 0.375000 +v -0.369200 4.875000 -0.375000 +v 0.125000 5.000000 -0.125000 +v 0.125000 5.000000 0.125000 +v -0.119200 5.000000 0.125000 +v -0.119200 5.000000 -0.125000 +v -0.059600 5.000000 0.062500 +v 0.065400 5.000000 0.062500 +v -0.059600 5.000000 -0.062500 +v 0.065400 5.000000 -0.062500 +v -0.059600 5.500000 0.062500 +v 0.065400 5.500000 0.062500 +v -0.059600 5.500000 -0.062500 +v 0.065400 5.500000 -0.062500 +vt 0.764706 0.176471 +vt 1.000000 0.235294 +vt 0.764706 0.235294 +vt 0.294118 0.279412 +vt 0.117647 0.294118 +vt 0.058824 0.279412 +vt 0.294118 -0.000000 +vt 0.058824 0.279412 +vt 0.058824 -0.000000 +vt 0.294118 -0.000000 +vt 0.058824 0.279412 +vt 0.058824 -0.000000 +vt 0.294118 -0.000000 +vt 0.058824 -0.000000 +vt 0.294118 -0.000000 +vt 0.058824 0.279412 +vt 0.058824 -0.000000 +vt 0.235294 0.294118 +vt 0.058824 0.308824 +vt 0.117647 0.294118 +vt 0.294118 0.279412 +vt 0.117647 0.294118 +vt 0.294118 0.279412 +vt 0.294118 0.279412 +vt 0.117647 0.294118 +vt 0.294118 0.308824 +vt 0.058824 0.338235 +vt 0.058824 0.308824 +vt 0.235294 0.294118 +vt 0.235294 0.294118 +vt 0.058824 0.308824 +vt 0.235294 0.294118 +vt 0.058824 0.308824 +vt 0.294118 0.338235 +vt 0.117647 0.352941 +vt 0.058824 0.338235 +vt 0.294118 0.308824 +vt 0.294118 0.308824 +vt 0.058824 0.338235 +vt 0.294118 0.308824 +vt 0.058824 0.338235 +vt 0.235294 0.352941 +vt 0.117647 0.823529 +vt 0.117647 0.352941 +vt 0.294118 0.338235 +vt 0.117647 0.352941 +vt 0.294118 0.338235 +vt 0.294118 0.338235 +vt 0.117647 0.352941 +vt 0.117647 0.823529 +vt 0.294118 0.838235 +vt 0.058824 0.838235 +vt 0.235294 0.352941 +vt 0.117647 0.823529 +vt 0.235294 0.352941 +vt 0.235294 0.352941 +vt 0.117647 0.823529 +vt 0.058824 0.867647 +vt 0.294118 0.838235 +vt 0.058824 0.838235 +vt 0.294118 0.838235 +vt 0.058824 0.838235 +vt 0.294118 0.838235 +vt 0.058824 0.838235 +vt 0.294118 0.867647 +vt 0.117647 0.882353 +vt 0.058824 0.867647 +vt 0.058824 0.867647 +vt 0.058824 0.867647 +vt 0.235294 0.882353 +vt 0.117647 1.000000 +vt 0.117647 0.882353 +vt 0.294118 0.867647 +vt 0.117647 0.882353 +vt 0.294118 0.867647 +vt 0.294118 0.867647 +vt 0.117647 0.882353 +vt 0.235294 0.882353 +vt 0.117647 1.000000 +vt 0.235294 0.882353 +vt 0.117647 1.000000 +vt 0.235294 0.882353 +vt 0.117647 1.000000 +vt 0.764706 -0.000000 +vt 0.294118 0.117647 +vt 0.294118 -0.000000 +vt 0.294118 0.132353 +vt 0.764706 0.250000 +vt 0.294118 0.250000 +vt 0.764706 0.117647 +vt 0.764706 0.117647 +vt 0.294118 0.132353 +vt 0.294118 0.117647 +vt 0.764706 0.117647 +vt 0.294118 0.132353 +vt 0.294118 0.117647 +vt 0.764706 0.117647 +vt 0.294118 0.132353 +vt 0.294118 0.117647 +vt 0.882353 0.000000 +vt 0.823529 0.176471 +vt 0.823529 0.000000 +vt 0.764706 0.176471 +vt 0.764706 0.000000 +vt 1.000000 0.176471 +vt 0.941176 0.000000 +vt 1.000000 0.000000 +vt 0.941176 0.176471 +vt 0.823529 0.000000 +vt 0.764706 0.176471 +vt 0.764706 0.000000 +vt 0.941176 0.000000 +vt 1.000000 0.176471 +vt 0.941176 0.176471 +vt 0.882353 0.000000 +vt 0.823529 0.176471 +vt 0.941176 0.176471 +vt 0.882353 0.000000 +vt 0.941176 0.000000 +vt 0.823529 0.176471 +vt 0.823529 0.000000 +vt 0.764706 0.176471 +vt 0.764706 0.000000 +vt 1.000000 0.176471 +vt 1.000000 0.000000 +vt 1.000000 0.176471 +vt 0.941176 0.000000 +vt 1.000000 0.000000 +vt 0.882353 0.000000 +vt 0.941176 0.176471 +vt 0.882353 0.176471 +vt 0.823529 0.176471 +vt 0.823529 0.000000 +vt 0.764706 0.176471 +vt 0.764706 0.000000 +vt 0.294118 0.426471 +vt 1.000000 0.250000 +vt 1.000000 0.426471 +vt 0.294118 0.617647 +vt 0.764706 0.558824 +vt 1.000000 0.617647 +vt 1.000000 0.426471 +vt 0.294118 0.441176 +vt 0.294118 0.426471 +vt 0.294118 0.441176 +vt 1.000000 0.426471 +vt 0.294118 0.441176 +vt 0.294118 0.426471 +vt 1.000000 0.426471 +vt 0.294118 0.441176 +vt 0.294118 0.426471 +vt 0.529412 0.500000 +vt 0.764706 0.500000 +vt 1.000000 0.441176 +vt 0.529412 0.558824 +vt 0.529412 0.735294 +vt 0.411765 0.617647 +vt 0.529412 0.617647 +vt 0.764706 0.735294 +vt 0.647059 0.617647 +vt 0.764706 0.617647 +vt 0.647059 0.735294 +vt 0.411765 0.735294 +vt 0.294118 0.617647 +vt 0.411765 0.764706 +vt 0.529412 0.764706 +vt 1.000000 0.176471 +vt 0.235294 0.823529 +vt 0.235294 0.823529 +vt 0.235294 0.823529 +vt 0.235294 0.823529 +vt 0.235294 1.000000 +vt 0.235294 1.000000 +vt 0.235294 1.000000 +vt 0.235294 1.000000 +vt 0.764706 0.132353 +vt 0.764706 0.132353 +vt 0.764706 0.132353 +vt 0.764706 0.132353 +vt 0.882353 0.176471 +vt 1.000000 0.000000 +vt 0.882353 0.176471 +vt 0.882353 0.176471 +vt 0.294118 0.250000 +vt 1.000000 0.441176 +vt 1.000000 0.441176 +vt 1.000000 0.441176 +vt 0.294118 0.735294 +vn 0.0000 -1.0000 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -0.7071 -0.7071 +vn -0.7071 0.7071 0.0000 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 0.7071 0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -0.1644 0.9864 +vn -0.9864 0.1644 0.0000 +vn 0.0000 0.1644 -0.9864 +vn 0.9864 -0.1644 0.0000 +vn 0.0000 0.1644 0.9864 +vn 0.0000 -0.1644 -0.9864 +vn -0.9864 -0.1644 0.0000 +vn 0.9864 0.1644 0.0000 +vn -0.4472 0.8944 0.0000 +vn 0.4472 0.8944 0.0000 +vn 0.0000 0.8944 -0.4472 +vn 0.0000 0.8944 0.4472 +s off +f 11/1/5 10/2/5 9/3/5 +f 16/4/6 18/5/6 14/6/6 +f 11/7/7 16/8/7 12/9/7 +f 10/10/8 13/11/8 9/12/8 +f 12/13/9 14/6/9 10/14/9 +f 9/15/10 15/16/10 11/17/10 +f 19/18/11 24/19/11 20/20/11 +f 13/21/12 19/22/12 15/16/12 +f 15/23/13 20/20/13 16/8/13 +f 14/24/14 17/25/14 13/11/14 +f 22/26/8 25/27/8 21/28/8 +f 18/29/15 21/28/15 17/25/15 +f 20/30/16 22/31/16 18/5/16 +f 17/32/17 23/33/17 19/22/17 +f 28/34/6 30/35/6 26/36/6 +f 24/37/9 26/36/9 22/31/9 +f 21/38/10 27/39/10 23/33/10 +f 23/40/7 28/41/7 24/19/7 +f 31/42/7 36/43/7 32/44/7 +f 25/45/12 31/46/12 27/39/12 +f 27/47/13 32/44/13 28/41/13 +f 26/48/14 29/49/14 25/27/14 +f 35/50/16 40/51/16 39/52/16 +f 30/53/8 34/54/8 29/49/8 +f 32/55/9 35/50/9 30/35/9 +f 29/56/10 33/57/10 31/46/10 +f 40/51/9 43/58/9 39/52/9 +f 33/57/17 38/59/17 37/60/17 +f 36/43/11 37/61/11 40/62/11 +f 34/54/15 39/63/15 38/64/15 +f 41/65/13 48/66/13 44/67/13 +f 38/59/10 41/68/10 37/60/10 +f 37/61/7 44/67/7 40/62/7 +f 39/63/8 42/69/8 38/64/8 +f 48/70/9 51/71/9 47/72/9 +f 43/73/14 46/74/14 42/69/14 +f 44/75/6 47/72/6 43/58/6 +f 42/76/12 45/77/12 41/68/12 +f 46/78/10 49/79/10 45/77/10 +f 45/80/7 52/81/7 48/66/7 +f 47/82/8 50/83/8 46/74/8 +f 55/84/5 54/85/5 53/86/5 +f 59/87/18 57/88/18 58/89/18 +f 56/90/9 59/87/9 54/85/9 +f 53/91/10 57/92/10 55/93/10 +f 55/94/7 60/95/7 56/96/7 +f 54/97/8 58/98/8 53/99/8 +f 61/100/19 67/101/19 63/102/19 +f 63/102/20 68/103/20 64/104/20 +f 68/105/21 62/106/21 64/107/21 +f 66/108/22 61/100/22 62/106/22 +f 69/109/23 75/110/23 71/111/23 +f 72/112/20 75/113/20 76/114/20 +f 76/114/24 70/115/24 72/112/24 +f 70/115/22 73/116/22 69/109/22 +f 81/117/19 79/118/19 77/119/19 +f 79/118/25 84/120/25 80/121/25 +f 80/121/21 82/122/21 78/123/21 +f 82/124/26 77/119/26 78/125/26 +f 89/126/23 87/127/23 85/128/23 +f 88/129/25 91/130/25 92/131/25 +f 88/129/24 90/132/24 86/133/24 +f 86/133/26 89/134/26 85/135/26 +f 93/136/5 96/137/5 94/138/5 +f 99/139/27 104/140/27 100/141/27 +f 95/142/10 100/143/10 96/144/10 +f 94/138/9 97/145/9 93/136/9 +f 96/146/7 98/147/7 94/148/7 +f 93/149/8 99/150/8 95/151/8 +f 104/140/18 102/152/18 101/153/18 +f 98/154/28 102/152/28 97/145/28 +f 100/141/29 101/153/29 98/154/29 +f 97/145/30 103/155/30 99/139/30 +f 112/156/9 106/157/9 108/158/9 +f 109/159/10 107/160/10 105/161/10 +f 111/162/7 108/158/7 107/160/7 +f 110/163/8 105/164/8 106/157/8 +f 109/165/18 112/156/18 111/166/18 +f 11/1/5 12/167/5 10/2/5 +f 16/4/6 20/30/6 18/5/6 +f 11/7/7 15/23/7 16/8/7 +f 10/10/8 14/24/8 13/11/8 +f 12/13/9 16/4/9 14/6/9 +f 9/15/10 13/21/10 15/16/10 +f 19/18/11 23/40/11 24/19/11 +f 13/21/12 17/32/12 19/22/12 +f 15/23/13 19/18/13 20/20/13 +f 14/24/14 18/29/14 17/25/14 +f 22/26/8 26/48/8 25/27/8 +f 18/29/15 22/26/15 21/28/15 +f 20/30/16 24/37/16 22/31/16 +f 17/32/17 21/38/17 23/33/17 +f 28/34/6 32/55/6 30/35/6 +f 24/37/9 28/34/9 26/36/9 +f 21/38/10 25/45/10 27/39/10 +f 23/40/7 27/47/7 28/41/7 +f 31/42/7 33/168/7 36/43/7 +f 25/45/12 29/56/12 31/46/12 +f 27/47/13 31/42/13 32/44/13 +f 26/48/14 30/53/14 29/49/14 +f 35/50/16 36/169/16 40/51/16 +f 30/53/8 35/170/8 34/54/8 +f 32/55/9 36/169/9 35/50/9 +f 29/56/10 34/171/10 33/57/10 +f 40/51/9 44/75/9 43/58/9 +f 33/57/17 34/171/17 38/59/17 +f 36/43/11 33/168/11 37/61/11 +f 34/54/15 35/170/15 39/63/15 +f 41/65/13 45/80/13 48/66/13 +f 38/59/10 42/76/10 41/68/10 +f 37/61/7 41/65/7 44/67/7 +f 39/63/8 43/73/8 42/69/8 +f 48/70/9 52/172/9 51/71/9 +f 43/73/14 47/82/14 46/74/14 +f 44/75/6 48/70/6 47/72/6 +f 42/76/12 46/78/12 45/77/12 +f 46/78/10 50/173/10 49/79/10 +f 45/80/7 49/174/7 52/81/7 +f 47/82/8 51/175/8 50/83/8 +f 55/84/5 56/90/5 54/85/5 +f 59/87/18 60/176/18 57/88/18 +f 56/90/9 60/176/9 59/87/9 +f 53/91/10 58/177/10 57/92/10 +f 55/94/7 57/178/7 60/95/7 +f 54/97/8 59/179/8 58/98/8 +f 61/100/19 65/180/19 67/101/19 +f 63/102/20 67/101/20 68/103/20 +f 68/105/21 66/108/21 62/106/21 +f 66/108/22 65/180/22 61/100/22 +f 69/109/23 73/116/23 75/110/23 +f 72/112/20 71/181/20 75/113/20 +f 76/114/24 74/182/24 70/115/24 +f 70/115/22 74/182/22 73/116/22 +f 81/117/19 83/183/19 79/118/19 +f 79/118/25 83/183/25 84/120/25 +f 80/121/21 84/120/21 82/122/21 +f 82/124/26 81/117/26 77/119/26 +f 89/126/23 91/130/23 87/127/23 +f 88/129/25 87/127/25 91/130/25 +f 88/129/24 92/131/24 90/132/24 +f 86/133/26 90/132/26 89/134/26 +f 93/136/5 95/184/5 96/137/5 +f 99/139/27 103/155/27 104/140/27 +f 95/142/10 99/185/10 100/143/10 +f 94/138/9 98/154/9 97/145/9 +f 96/146/7 100/186/7 98/147/7 +f 93/149/8 97/187/8 99/150/8 +f 104/140/18 103/155/18 102/152/18 +f 98/154/28 101/153/28 102/152/28 +f 100/141/29 104/140/29 101/153/29 +f 97/145/30 102/152/30 103/155/30 +f 112/156/9 110/163/9 106/157/9 +f 109/159/10 111/162/10 107/160/10 +f 111/162/7 112/156/7 108/158/7 +f 110/163/8 109/188/8 105/164/8 +f 109/165/18 110/163/18 112/156/18 diff --git a/src/main/resources/assets/hbm/textures/models/trinkets/lantern.png b/src/main/resources/assets/hbm/textures/models/trinkets/lantern.png new file mode 100644 index 0000000000000000000000000000000000000000..78496dc2a426eb078beb6b678f327fdf71cf5d1d GIT binary patch literal 288 zcmV+*0pI?KP)_0TgIIOeL z&qk903C)d5gw*5Nij-62CEJ-C+WDmZ;WFf*H*0c8igPbi~Wct=qPIScXF`qOH mYaq{sU!VMAJv~v#Mvynu&NKS7`B&ip0000 Date: Sat, 12 Aug 2023 00:04:42 +0200 Subject: [PATCH 235/432] finished leadburster, congo lake grenade launcher --- .../com/hbm/handler/GunConfiguration.java | 1 + .../hbm/handler/guncfg/Gun4GaugeFactory.java | 1 + .../hbm/handler/guncfg/Gun556mmFactory.java | 1 + .../hbm/handler/guncfg/GunGrenadeFactory.java | 83 +- src/main/java/com/hbm/items/ModItems.java | 2 +- .../com/hbm/items/weapon/ItemGunCongo.java | 37 + src/main/java/com/hbm/lib/HbmCollection.java | 2 +- src/main/java/com/hbm/main/ClientProxy.java | 1 + .../java/com/hbm/main/ResourceManager.java | 4 + .../entity/projectile/RenderBullet.java | 21 + .../item/weapon/ItemRenderWeaponCongo.java | 106 + src/main/resources/assets/hbm/lang/en_US.lang | 3 + src/main/resources/assets/hbm/lang/zh_CN.lang | 108 +- .../hbm/models/projectiles/leadburster.obj | 1671 ++++++++ .../assets/hbm/models/weapons/congolake.obj | 3494 +++++++++++++++++ src/main/resources/assets/hbm/sounds.json | 2 + .../assets/hbm/sounds/weapon/glReload.ogg | Bin 0 -> 10791 bytes .../assets/hbm/sounds/weapon/glShoot.ogg | Bin 0 -> 18670 bytes .../hbm/textures/models/weapons/congolake.png | Bin 3306 -> 3514 bytes 19 files changed, 5487 insertions(+), 50 deletions(-) create mode 100644 src/main/java/com/hbm/items/weapon/ItemGunCongo.java create mode 100644 src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponCongo.java create mode 100644 src/main/resources/assets/hbm/models/projectiles/leadburster.obj create mode 100644 src/main/resources/assets/hbm/models/weapons/congolake.obj create mode 100644 src/main/resources/assets/hbm/sounds/weapon/glReload.ogg create mode 100644 src/main/resources/assets/hbm/sounds/weapon/glShoot.ogg diff --git a/src/main/java/com/hbm/handler/GunConfiguration.java b/src/main/java/com/hbm/handler/GunConfiguration.java index 43a21ce01..1763ad83a 100644 --- a/src/main/java/com/hbm/handler/GunConfiguration.java +++ b/src/main/java/com/hbm/handler/GunConfiguration.java @@ -105,6 +105,7 @@ public class GunConfiguration implements Cloneable { public static final String RSOUND_SHOTGUN = "hbm:weapon.shotgunReload"; public static final String RSOUND_LAUNCHER = "hbm:weapon.rpgReload"; public static final String RSOUND_GRENADE = "hbm:weapon.hkReload"; + public static final String RSOUND_GRENADE_NEW = "hbm:weapon.glReload"; public static final String RSOUND_FATMAN = "hbm:weapon.fatmanReload"; public GunConfiguration silenced() { diff --git a/src/main/java/com/hbm/handler/guncfg/Gun4GaugeFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun4GaugeFactory.java index 9760fb083..31447e131 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun4GaugeFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun4GaugeFactory.java @@ -179,6 +179,7 @@ public class Gun4GaugeFactory { bullet.style = BulletConfiguration.STYLE_FLECHETTE; bullet.HBRC = 2; bullet.LBRC = 95; + BulletConfigFactory.makeFlechette(bullet); bullet.spentCasing = CASING4GAUGE.clone().register("4GaFlech").setColor(0x1537FF, SpentCasing.COLOR_CASE_4GA); diff --git a/src/main/java/com/hbm/handler/guncfg/Gun556mmFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun556mmFactory.java index fafa0b642..88c9aa190 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun556mmFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun556mmFactory.java @@ -310,6 +310,7 @@ public class Gun556mmFactory { bullet.wear = 15; bullet.style = BulletConfiguration.STYLE_FLECHETTE; bullet.doesPenetrate = false; + BulletConfigFactory.makeFlechette(bullet); bullet.spentCasing = CASING556.clone().register("556Flec"); diff --git a/src/main/java/com/hbm/handler/guncfg/GunGrenadeFactory.java b/src/main/java/com/hbm/handler/guncfg/GunGrenadeFactory.java index 0432fc147..76a4bfe8c 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunGrenadeFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunGrenadeFactory.java @@ -1,7 +1,5 @@ package com.hbm.handler.guncfg; -import java.util.ArrayList; - import com.hbm.entity.projectile.EntityBulletBaseNT; import com.hbm.explosion.ExplosionNukeSmall; import com.hbm.handler.BulletConfigSyncingUtil; @@ -11,11 +9,16 @@ import com.hbm.handler.GunConfiguration; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.ModItems; import com.hbm.items.ItemAmmoEnums.AmmoGrenade; +import com.hbm.lib.HbmCollection; import com.hbm.lib.HbmCollection.EnumGunManufacturer; +import com.hbm.packet.AuxParticlePacketNT; +import com.hbm.packet.PacketDispatcher; import com.hbm.particle.SpentCasing; import com.hbm.particle.SpentCasing.CasingType; import com.hbm.render.util.RenderScreenOverlay.Crosshair; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; @@ -49,23 +52,12 @@ public class GunGrenadeFactory { config.crosshair = Crosshair.L_CIRCUMFLEX; config.firingSound = "hbm:weapon.hkShoot"; config.reloadSound = GunConfiguration.RSOUND_GRENADE; + config.reloadSoundEnd = false; config.name = "gPistol"; config.manufacturer = EnumGunManufacturer.H_AND_K; - - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.GRENADE_NORMAL); - config.config.add(BulletConfigSyncingUtil.GRENADE_HE); - config.config.add(BulletConfigSyncingUtil.GRENADE_INCENDIARY); - config.config.add(BulletConfigSyncingUtil.GRENADE_PHOSPHORUS); - config.config.add(BulletConfigSyncingUtil.GRENADE_CHEMICAL); - config.config.add(BulletConfigSyncingUtil.GRENADE_CONCUSSION); - config.config.add(BulletConfigSyncingUtil.GRENADE_FINNED); - config.config.add(BulletConfigSyncingUtil.GRENADE_SLEEK); - config.config.add(BulletConfigSyncingUtil.GRENADE_NUCLEAR); - config.config.add(BulletConfigSyncingUtil.GRENADE_TRACER); - config.config.add(BulletConfigSyncingUtil.GRENADE_KAMPF); - config.config.add(BulletConfigSyncingUtil.GRENADE_LEADBURSTER); + + config.config = HbmCollection.grenade; config.durability = 300; config.ejector = EJECTOR_LAUNCHER; @@ -77,7 +69,7 @@ public class GunGrenadeFactory { GunConfiguration config = new GunConfiguration(); - config.rateOfFire = 30; + config.rateOfFire = 20; config.roundsPerCycle = 1; config.gunMode = GunConfiguration.MODE_NORMAL; config.firingMode = GunConfiguration.FIRE_MANUAL; @@ -87,27 +79,14 @@ public class GunGrenadeFactory { config.reloadType = GunConfiguration.RELOAD_SINGLE; config.allowsInfinity = true; config.crosshair = Crosshair.L_CIRCUMFLEX; - config.firingSound = "hbm:weapon.hkShoot"; - config.reloadSound = GunConfiguration.RSOUND_GRENADE; - config.reloadSoundEnd = false; + config.firingSound = "hbm:weapon.glShoot"; + config.reloadSound = GunConfiguration.RSOUND_GRENADE_NEW; config.name = "congoLake"; config.manufacturer = EnumGunManufacturer.NAWS; - - config.config = new ArrayList(); - config.config.add(BulletConfigSyncingUtil.GRENADE_NORMAL); - config.config.add(BulletConfigSyncingUtil.GRENADE_HE); - config.config.add(BulletConfigSyncingUtil.GRENADE_INCENDIARY); - config.config.add(BulletConfigSyncingUtil.GRENADE_PHOSPHORUS); - config.config.add(BulletConfigSyncingUtil.GRENADE_CHEMICAL); - config.config.add(BulletConfigSyncingUtil.GRENADE_CONCUSSION); - config.config.add(BulletConfigSyncingUtil.GRENADE_FINNED); - config.config.add(BulletConfigSyncingUtil.GRENADE_SLEEK); - config.config.add(BulletConfigSyncingUtil.GRENADE_NUCLEAR); - config.config.add(BulletConfigSyncingUtil.GRENADE_TRACER); - config.config.add(BulletConfigSyncingUtil.GRENADE_KAMPF); - config.config.add(BulletConfigSyncingUtil.GRENADE_LEADBURSTER); - config.durability = 1500; + + config.config = HbmCollection.grenade; + config.durability = 2500; config.ejector = EJECTOR_CONGOLAKE; @@ -312,17 +291,29 @@ public class GunGrenadeFactory { bullet.style = BulletConfiguration.STYLE_LEADBURSTER; bullet.doesRicochet = false; bullet.doesPenetrate = true; + bullet.vPFX = ""; bullet.bntImpact = (bulletnt, x, y, z, sideHit) -> { + switch(sideHit) { + case 0: bulletnt.rotationPitch = (float) (90); break; + case 1: bulletnt.rotationPitch = (float) (-90); break; + case 2: bulletnt.rotationPitch = 0; bulletnt.rotationYaw = 0; break; + case 3: bulletnt.rotationPitch = 0; bulletnt.rotationYaw = (float) 180; break; + case 4: bulletnt.rotationPitch = 0; bulletnt.rotationYaw = 90; break; + case 5: bulletnt.rotationPitch = 0; bulletnt.rotationYaw = (float) -90; break; + } + Vec3 vec = Vec3.createVectorHelper(0, 0, 1); vec.rotateAroundX((float) (bulletnt.rotationPitch * Math.PI / 180D)); vec.rotateAroundY((float) (bulletnt.rotationYaw * Math.PI / 180)); - bulletnt.posX -= vec.xCoord * 0.1; - bulletnt.posY -= vec.yCoord * 0.1; - bulletnt.posZ -= vec.zCoord * 0.1; + double offset = 0.1; + bulletnt.posX -= vec.xCoord * offset; + bulletnt.posY -= vec.yCoord * offset; + bulletnt.posZ -= vec.zCoord * offset; + bulletnt.ticksExisted = 0; bulletnt.getStuck(x, y, z, sideHit); }; @@ -340,12 +331,23 @@ public class GunGrenadeFactory { if(bulletnt.ticksInGround < 20) return; int timer = bulletnt.ticksInGround - 20; - if(timer > 60) return; Vec3 offset = Vec3.createVectorHelper(0, 0, -0.5); offset.rotateAroundX((float) (bulletnt.rotationPitch * Math.PI / 180D)); offset.rotateAroundY((float) (bulletnt.rotationYaw * Math.PI / 180)); + if(bulletnt.ticksExisted >= 100) { + bulletnt.setDead(); + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "vanillaExt"); + data.setString("mode", "largeexplode"); + data.setFloat("size", 1F); + data.setByte("count", (byte)1); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, bulletnt.posX + offset.xCoord, bulletnt.posY + offset.yCoord, bulletnt.posZ + offset.zCoord), new TargetPoint(bulletnt.dimension, bulletnt.posX, bulletnt.posY, bulletnt.posZ, 50)); + } + + if(timer > 60) return; + bulletnt.worldObj.playSoundEffect(bulletnt.posX, bulletnt.posY, bulletnt.posZ, "hbm:weapon.silencerShoot", 2F, 1F); for(int i = 0; i < 5; i++) { @@ -357,7 +359,8 @@ public class GunGrenadeFactory { EntityBulletBaseNT pellet = new EntityBulletBaseNT(bulletnt.worldObj, BulletConfigSyncingUtil.R556_NORMAL); double dist = 0.5; - pellet.setPosition(bulletnt.posX + vec.xCoord * dist + offset.xCoord, bulletnt.posY + vec.yCoord * dist + offset.yCoord, bulletnt.posZ + vec.zCoord * dist + offset.zCoord); + double off = 0.5; + pellet.setPosition(bulletnt.posX + vec.xCoord * dist + offset.xCoord * off, bulletnt.posY + vec.yCoord * dist + offset.yCoord * off, bulletnt.posZ + vec.zCoord * dist + offset.zCoord * off); double vel = 0.5; pellet.motionX = vec.xCoord * vel; pellet.motionY = vec.yCoord * vel; diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index d14e310e8..0b8389465 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -4128,7 +4128,7 @@ public class ModItems { gun_panzerschreck = new ItemGunBase(GunRocketFactory.getPanzConfig()).setUnlocalizedName("gun_panzerschreck").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_panzerschreck"); gun_quadro = new ItemGunBase(GunRocketFactory.getQuadroConfig()).setUnlocalizedName("gun_quadro").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_quadro"); gun_hk69 = new ItemGunBase(GunGrenadeFactory.getHK69Config()).setUnlocalizedName("gun_hk69").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_hk69"); - gun_congolake = new ItemGunBase(GunGrenadeFactory.getCongoConfig()).setUnlocalizedName("gun_congolake").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_congolake"); + gun_congolake = new ItemGunCongo(GunGrenadeFactory.getCongoConfig()).setUnlocalizedName("gun_congolake").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_congolake"); gun_stinger = new ItemGunBase(GunRocketHomingFactory.getStingerConfig()).setUnlocalizedName("gun_stinger").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_stinger"); gun_skystinger = new ItemGunBase(GunRocketHomingFactory.getSkyStingerConfig()).setUnlocalizedName("gun_skystinger").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_skystinger"); gun_revolver = new ItemGunBase(Gun357MagnumFactory.getRevolverConfig()).setUnlocalizedName("gun_revolver").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver"); diff --git a/src/main/java/com/hbm/items/weapon/ItemGunCongo.java b/src/main/java/com/hbm/items/weapon/ItemGunCongo.java new file mode 100644 index 000000000..7072e772d --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/ItemGunCongo.java @@ -0,0 +1,37 @@ +package com.hbm.items.weapon; + +import com.hbm.handler.GunConfiguration; +import com.hbm.render.anim.BusAnimation; +import com.hbm.render.anim.BusAnimationKeyframe; +import com.hbm.render.anim.BusAnimationSequence; +import com.hbm.render.anim.HbmAnimations.AnimType; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.item.ItemStack; + +public class ItemGunCongo extends ItemGunBase { + + public ItemGunCongo(GunConfiguration config) { + super(config); + } + + @Override + @SideOnly(Side.CLIENT) + public BusAnimation getAnimation(ItemStack stack, AnimType type) { + + if(type == AnimType.CYCLE) { + return new BusAnimation() + .addBus("RECOIL", new BusAnimationSequence() + .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 50)) + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 100))) + .addBus("PUMP", new BusAnimationSequence() + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 500)) + .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 100)) + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 200))); + + } + + return null; + } +} diff --git a/src/main/java/com/hbm/lib/HbmCollection.java b/src/main/java/com/hbm/lib/HbmCollection.java index 6472f8338..06bcd4799 100644 --- a/src/main/java/com/hbm/lib/HbmCollection.java +++ b/src/main/java/com/hbm/lib/HbmCollection.java @@ -70,7 +70,7 @@ public class HbmCollection { /** MIRV MINI-NUKES **/ public static final List fatmanMIRV = ImmutableList.of(BulletConfigSyncingUtil.NUKE_MIRV_NORMAL, BulletConfigSyncingUtil.NUKE_MIRV_LOW, BulletConfigSyncingUtil.NUKE_MIRV_HIGH, BulletConfigSyncingUtil.NUKE_MIRV_SAFE, BulletConfigSyncingUtil.NUKE_MIRV_SPECIAL); /** 40MM GRENADE **/ - public static final List grenade = ImmutableList.of(BulletConfigSyncingUtil.GRENADE_NORMAL, BulletConfigSyncingUtil.GRENADE_HE, BulletConfigSyncingUtil.GRENADE_INCENDIARY, BulletConfigSyncingUtil.GRENADE_PHOSPHORUS, BulletConfigSyncingUtil.GRENADE_CHEMICAL, BulletConfigSyncingUtil.GRENADE_CONCUSSION, BulletConfigSyncingUtil.GRENADE_FINNED, BulletConfigSyncingUtil.GRENADE_SLEEK, BulletConfigSyncingUtil.GRENADE_NUCLEAR, BulletConfigSyncingUtil.GRENADE_TRACER, BulletConfigSyncingUtil.GRENADE_KAMPF); + public static final List grenade = ImmutableList.of(BulletConfigSyncingUtil.GRENADE_NORMAL, BulletConfigSyncingUtil.GRENADE_HE, BulletConfigSyncingUtil.GRENADE_INCENDIARY, BulletConfigSyncingUtil.GRENADE_PHOSPHORUS, BulletConfigSyncingUtil.GRENADE_CHEMICAL, BulletConfigSyncingUtil.GRENADE_CONCUSSION, BulletConfigSyncingUtil.GRENADE_FINNED, BulletConfigSyncingUtil.GRENADE_SLEEK, BulletConfigSyncingUtil.GRENADE_NUCLEAR, BulletConfigSyncingUtil.GRENADE_TRACER, BulletConfigSyncingUtil.GRENADE_KAMPF, BulletConfigSyncingUtil.GRENADE_LEADBURSTER); /** 84MM ROCKET **/ public static final List rocket = ImmutableList.of(BulletConfigSyncingUtil.ROCKET_NORMAL, BulletConfigSyncingUtil.ROCKET_HE, BulletConfigSyncingUtil.ROCKET_INCENDIARY, BulletConfigSyncingUtil.ROCKET_PHOSPHORUS, BulletConfigSyncingUtil.ROCKET_SHRAPNEL, BulletConfigSyncingUtil.ROCKET_EMP, BulletConfigSyncingUtil.ROCKET_GLARE, BulletConfigSyncingUtil.ROCKET_TOXIC, BulletConfigSyncingUtil.ROCKET_CANISTER, BulletConfigSyncingUtil.ROCKET_SLEEK, BulletConfigSyncingUtil.ROCKET_NUKE, BulletConfigSyncingUtil.ROCKET_CHAINSAW); diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index c31870b9c..906b81b3c 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -525,6 +525,7 @@ public class ClientProxy extends ServerProxy { MinecraftForgeClient.registerItemRenderer(ModItems.gun_uac_pistol, new ItemRenderUACPistol()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_coilgun, new ItemRenderWeaponCoilgun()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_cryocannon, new ItemRenderWeaponCryoCannon()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_congolake, new ItemRenderWeaponCongo()); //multitool MinecraftForgeClient.registerItemRenderer(ModItems.multitool_dig, new ItemRenderMultitool()); MinecraftForgeClient.registerItemRenderer(ModItems.multitool_silk, new ItemRenderMultitool()); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 3fc1955e0..7429142fa 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -753,6 +753,7 @@ public class ResourceManager { public static final IModelCustom coilgun = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/coilgun.obj")).asDisplayList(); public static final IModelCustom cryocannon = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/cryo_cannon.obj")).asDisplayList(); public static final IModelCustom uac_pistol = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/UAC pistol.obj")).asDisplayList(); + public static final IModelCustom congolake = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/congolake.obj")).asDisplayList(); public static final IModelCustom lance = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/lance.obj")); @@ -848,6 +849,7 @@ public class ResourceManager { public static final ResourceLocation coilgun_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/coilgun.png"); public static final ResourceLocation cryocannon_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/cryo_cannon.png"); public static final ResourceLocation uac_pistol_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/pistol_texture.png"); + public static final ResourceLocation congolake_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/congolake.png"); public static final ResourceLocation lance_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lance.png"); @@ -952,6 +954,7 @@ public class ResourceManager { //Projectiles public static final IModelCustom projectiles = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/projectiles/projectiles.obj")); + public static final IModelCustom leadburster = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/projectiles/leadburster.obj")); public static final IModelCustom casings = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/effect/casings.obj")); //Bomber @@ -1080,6 +1083,7 @@ public class ResourceManager { public static final ResourceLocation rocket_mirv_tex = new ResourceLocation(RefStrings.MODID, "textures/models/projectiles/rocket_mirv.png"); public static final ResourceLocation mini_nuke_tex = new ResourceLocation(RefStrings.MODID, "textures/models/projectiles/mini_nuke.png"); public static final ResourceLocation mini_mirv_tex = new ResourceLocation(RefStrings.MODID, "textures/models/projectiles/mini_mirv.png"); + public static final ResourceLocation leadburster_tex = new ResourceLocation(RefStrings.MODID, "textures/models/projectiles/leadburster.png"); public static final ResourceLocation casings_tex = new ResourceLocation(RefStrings.MODID, "textures/particle/casings.png"); //Bomber diff --git a/src/main/java/com/hbm/render/entity/projectile/RenderBullet.java b/src/main/java/com/hbm/render/entity/projectile/RenderBullet.java index d8c59d98f..c97e4b982 100644 --- a/src/main/java/com/hbm/render/entity/projectile/RenderBullet.java +++ b/src/main/java/com/hbm/render/entity/projectile/RenderBullet.java @@ -3,7 +3,9 @@ package com.hbm.render.entity.projectile; import java.util.Random; import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL12; +import com.hbm.entity.projectile.EntityBulletBaseNT; import com.hbm.entity.projectile.IBulletBase; import com.hbm.handler.BulletConfiguration; import com.hbm.items.ModItems; @@ -72,6 +74,7 @@ public class RenderBullet extends Render { case BulletConfiguration.STYLE_BLADE: renderBlade(); break; case BulletConfiguration.STYLE_BARREL: renderNuke(3); break; case BulletConfiguration.STYLE_TAU: renderTau(bullet, trail, f1); break; + case BulletConfiguration.STYLE_LEADBURSTER: renderLeadburster(bullet, f1); break; default: renderBullet(trail); break; } @@ -589,6 +592,24 @@ public class RenderBullet extends Render { iface.prevZ(pZ); } + private void renderLeadburster(Entity bullet, float interp) { + EntityBulletBaseNT bulletnt = (EntityBulletBaseNT) bullet; + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + GL11.glRotated(90, 0, 0, -1); + double scale = 0.05; + GL11.glScaled(scale, scale, scale); + bindTexture(ResourceManager.leadburster_tex); + ResourceManager.leadburster.renderPart("Based"); + if(bulletnt.getStuckIn() != -1) { + GL11.glRotated((bullet.ticksExisted + interp) * -18, 0, 1, 0); + } + ResourceManager.leadburster.renderPart("Based.001"); + ResourceManager.leadburster.renderPart("Backlight"); + GL11.glPopMatrix(); + } + @Override protected ResourceLocation getEntityTexture(Entity p_110775_1_) { return new ResourceLocation(RefStrings.MODID + ":textures/models/bullet.png"); diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponCongo.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponCongo.java new file mode 100644 index 000000000..bcf9f2c02 --- /dev/null +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponCongo.java @@ -0,0 +1,106 @@ +package com.hbm.render.item.weapon; + +import org.lwjgl.opengl.GL11; + +import com.hbm.main.ResourceManager; +import com.hbm.render.anim.HbmAnimations; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; +import net.minecraftforge.client.IItemRenderer; + +public class ItemRenderWeaponCongo implements IItemRenderer { + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + switch(type) { + case EQUIPPED: + case EQUIPPED_FIRST_PERSON: + case ENTITY: + case INVENTORY: + return true; + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { + + return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + GL11.glPushMatrix(); + + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glEnable(GL11.GL_LIGHTING); + + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.congolake_tex); + + switch(type) { + + case EQUIPPED_FIRST_PERSON: + + double s0 = 0.25D; + GL11.glRotated(20, 0, 0, 1); + GL11.glTranslated(0.5, 0.0, -0.5); + GL11.glRotated(-10, 0, 1, 0); + GL11.glRotated(90, 0, 1, 0); + GL11.glScaled(s0, s0, s0); + + double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); + GL11.glTranslated(0, 0, -recoil[0]); + + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.congolake.renderPart("Gun"); + + double[] pump = HbmAnimations.getRelevantTransformation("PUMP"); + GL11.glTranslated(0, 0, -pump[0]); + + ResourceManager.congolake.renderPart("Pump_Pummp"); + GL11.glShadeModel(GL11.GL_FLAT); + + break; + + case EQUIPPED: + + double scale = 0.35D; + GL11.glScaled(scale, scale, scale); + GL11.glRotatef(15F, 1.0F, 0.0F, 0.0F); + GL11.glRotatef(15F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(15, 0.0F, 1.0F, 0.0F); + GL11.glTranslatef(1.25F, -1F, 1.5F); + + break; + + case ENTITY: + + double s1 = 0.2D; + GL11.glScaled(s1, s1, s1); + + break; + + case INVENTORY: + + double s = 2D; + GL11.glTranslated(6, 9, 0); + GL11.glRotated(-135, 0, 0, 1); + GL11.glRotated(-90, 0, 1, 0); + GL11.glScaled(s, s, -s); + + break; + + default: break; + } + + if(type != ItemRenderType.EQUIPPED_FIRST_PERSON) { + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.congolake.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } + + GL11.glPopMatrix(); + } +} diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index a6bd587a5..247d26a66 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1103,6 +1103,7 @@ gun.make.MANN=Open Mann Co. gun.make.MAXIM=Hiram Maxim gun.make.METRO=Metro Gunsmiths gun.make.MWT=MWT Prototype Labs +gun.make.NAWS=Kayarm Industries gun.make.ERFURT=Erfurter Maschinenfabrik Geipel gun.make.NONE=- gun.make.RAYTHEON=Raytheon Missile Systems @@ -1127,6 +1128,7 @@ gun.name.benelli=Benelli M4 Super 90 gun.name.benelliDrum=Benelli M4 Super 90 (Drum Magazine Modification) gun.name.bio=RI No. 2 Mark 1 gun.name.bolter=Manticora Pattern Boltgun +gun.name.congoLake=Congo Lake Pump-Action Grenade Launcher gun.name.cPython=Colt Python gun.name.cz53=CZ53 Personal Minigun gun.name.cz57=CZ57 Avenger Minigun @@ -2597,6 +2599,7 @@ item.gun_calamity_ammo.name=.50 BMG Round (LEGACY) item.gun_calamity_dual.name=Saddle Gun item.gun_chemthrower.name=Chemthrower item.gun_coilgun.name=Coilgun +item.gun_congolake.name=Congo Lake item.gun_cryolator.name=The Cryolator item.gun_cryolator_ammo.name=Cryo Cell item.gun_dampfmaschine.name=Totally Not a Joke Weapon diff --git a/src/main/resources/assets/hbm/lang/zh_CN.lang b/src/main/resources/assets/hbm/lang/zh_CN.lang index 7a3f443c8..570c2eb9a 100644 --- a/src/main/resources/assets/hbm/lang/zh_CN.lang +++ b/src/main/resources/assets/hbm/lang/zh_CN.lang @@ -8,7 +8,7 @@ achievement.breeding.desc=谢谢你们,上帝保佑你们,上帝保佑美利 achievement.breeding=反话 achievement.bismuth.desc=还记得有人抱怨了一个月吗?我愿意。 achievement.bismuth=铋 -achievement.blastFurnace.desc=他们为制造探险家1号去打捞了一艘沉没的无畏舰。 +achievement.blastFurnace.desc=他们为制造探险者1号去打捞了一艘沉没的无畏舰。 achievement.blastFurnace=煤和铁 achievement.bossCreeper.desc=核爆爬行者? 那是个什么玩意?! achievement.bossCreeper=四条腿的行走核弹 @@ -350,7 +350,7 @@ book_lore.resignation_note.page.0=Management downsized our department again yest book_lore.resignation_note.page.1=管理层昨天又对我们的部门进行裁员了。那群白痴要怪只能怪他们自己,我都不知道他们在那场惨败后还在期待什么。到底是谁他妈泄露了那种程度的信息? book_lore.resignation_note.page.2=我们损失了几百万,而且现在失业的还是爷。老子希望你们这帮混蛋最后能从你们的一堆问题中学到点教训然后给爷滚去自闭。 book_lore.memo_stocks.name=公司内部备忘录 -book_lore.memo_stocks.page.0=Investor Relations - $ $ There's been some glaring discrepancies in the figures provided for the latest quarterly report. It would be prudent for the financial department to make some adjustments, so there won't be any concern. +book_lore.memo_stocks.page.0=投资者关系 - $ $ 最新季度报告提供的数据存在一些明显差异。财务部门做出一些调整是谨慎的,所以不必有任何担忧。 book_lore.memo_schrab_gsa.name=内部备忘录 book_lore.memo_schrab_gsa.page.0=Contract Management - $ $ Legal has made a breakthrough with the DLA. They've awarded us with a 45 BILLION GSA Schedule for further procurement and research of saralloy. At current estimates, that would be at minimum book_lore.memo_schrab_gsa.page.1=合同管理记录 - 法务部在与美国国防部后勤局的谈判中取得了突破。他们批准了450亿的联邦采购服务总署投资资金用于异变金属的采购与研究。 @@ -377,13 +377,13 @@ book_lore.bf_bomb_2.page.1=And yet I can't even blame them. Swirlmat makes no go book_lore.bf_bomb_2.page.2=Even worse, this thing is an energy source. The existence of our sample is a violation of ALARA: the lab was vacated when it arrived, and the only person brave enough (one Dr. Melfyn) donned a level A hazmat just to carry it 20 meters. book_lore.bf_bomb_2.page.3=The empirical data isn't better, as we're breaking the first law of thermodynamics with how much energy it radiates. Being anywhere near that thing - even behind a meter of lead - was terrifying. We sprinted out of the chamber upon conclusion of the spectroscopy book_lore.bf_bomb_2.page.4=and we got nothing new out of it. Those idiots in the science team, god, did not even waver after all that. Sitting through those "discussions" was horrible; that quack of a head researcher even rumored that the test ban would be lifted, that we could be -book_lore.bf_bomb_2.page.5=building bombs out of the shit in the coming weeks, who in their right mind would work on that? Hell, the one sane assistant (an Andrew) nicknamed it "balefire" - because burning to death on a funeral pyre would be painless by comparison. +book_lore.bf_bomb_2.page.5=building bombs out of the shit in the coming weeks, who in their right mind would work on that? Hell, the one sane assistant (an Andrew) nicknamed it "balefire" - because burning to death on a funeral pyre would be painless by comparison. book_lore.bf_bomb_3.name=私人笔记 book_lore.bf_bomb_3.author=M. 波特 book_lore.bf_bomb_3.page.0=The team and I have made some breakthroughs. Emphasis on the separation - isolating myself from the more devout has made working there so much more bearable. While we still have no idea about the actual properties of balefire (it's difficult to analyze book_lore.bf_bomb_3.page.1=a sample that fries your equipment) its interactions with other matter has proved fruitful. Notably, they synthesized a "gaseous" form: Andrew, of all people, informed me that it was really a colloid consisting of microscopic balefire particles, suspended in some book_lore.bf_bomb_3.page.2=noble gas. Each particle is enveloped by a positively-charged 'bubble' of ionized gas, preventing it from settling. Who could've guessed that fatal gamma radiation had a benefit? Not me. $ I'm choosing not to think about how they transformed the sample into -book_lore.bf_bomb_3.page.3=particulate, but I can't understate the utility of this gaseous balefire - it's made it much safer to experiment on. $ Speaking of safety, the head researcher (in an act of callous disregard) made a discovery that also nearly took his head off. +book_lore.bf_bomb_3.page.3=particulate, but I can't understate the utility of this gaseous balefire - it's made it much safer to experiment on. $ Speaking of safety, the head researcher (in an act of callous disregard) made a discovery that also nearly took his head off. book_lore.bf_bomb_3.page.4=He decided to get "dirty" by letting a cell of our new colloid interact directly with some very expensive antimatter: the resulting explosion turned the table it was on into a piece of radiation-bleached slag, carved a near-perfect hemisphere through book_lore.bf_bomb_3.page.5=the top, and gave the head a healthy dose of ARS. I guess we know how to make it explode now, but god, some people... book_lore.bf_bomb_4.name=私人笔记 @@ -404,6 +404,20 @@ book_lore.bf_bomb_5.page.5=resigning, I just grabbed my shit and ran for the hil book_lore.bf_bomb_5.page.6=There's a vital distinction to be made between dissection and VIVISECTION, one which was clearly lost on them. They can dissect metal or atoms as much as they like, but tearing into, vivisecting reality itself is only going to end in more Dr. Melfyns. Who knows! book_lore.bf_bomb_5.page.7=The government wants to put this shit into bombs after all, maybe we'll see a couple more wars, couple more million resigned to a fate worse than death. They can't hide this forever. $ $ I don't care. Not anymore. Please, god, let me go back book_lore.bf_bomb_5.page.8=to actual science. $ $ Goddamnit, Mae, get ahold of yourself... +book_lore.beacon.name=信号信标说明书 +book_lore.beacon.author=Flim Flam工业 +book_lore.beacon.page.0=感谢您购买Mk.2照明信号信标(版本1.3)!这本小册子将简要介绍信标的操作及其内部工作原理。 +book_lore.beacon.page.1=第1章:建筑$每个单元由四个主要部分组成:控制电路、灯笼、雾灯和容纳其他部分的外壳。有关主电路的详细说明,请 +book_lore.beacon.page.2=灯笼由聚碳酸酯外壳组成,外壳内有一个标准200mm的双色250瓦卤素灯泡,因此灯泡可以从我们的商店订购。 +book_lore.beacon.page.3=不建议使用第三方灯泡,因为我们无法确保安全操作。外壳由专门的镀锌不锈钢制成,具有耐用性。 +book_lore.beacon.page.4=第2章:灯笼$灯笼的主要用途是在恶劣的天气条件下提供照明,便于维护,以及状态指示器。如果开机自检(POST)失败,指示灯将 +book_lore.beacon.page.5=亮起红色,否则就会亮起绿色。请注意,颜色可能因更换灯泡的不同而有所不同。 +book_lore.beacon.page.6=第3章:雾灯$雾灯是信标的主要通信设备。该信标被设计用于对等(P2P)通信以及消息广播。 +book_lore.beacon.page.7=第4章:对等$有关通信的详细信息,请参阅通信手册。建立P2P连接的简要介绍如下:首先,信标必须给出“START connection”信号, +book_lore.beacon.page.8=是单一的长音。所有可用的对等端也应使用一个长音进行响应(由接近度指定的顺序,以及手册“响应连接”一节中概述的通信指南) +book_lore.beacon.page.9=一旦所需对等端做出响应,则给出“ACCEPT CONNECTION”信号,即两个长音,然后对等端也将用两个长音调进行响应。之后的所有通信都必须使用预先协商的信号来进行, +book_lore.beacon.page.10=最常用的是FAR-5M标准。如果没有协商标准,沟通将立即结束,起到“ping”的作用。如果通信继续,可以使用另一个长单音“END connection”结束连接。 +book_lore.beacon.page.11=第5章:保修$[页面故意留空] cannery.f1=[按F1键获取帮助] cannery.centrifuge=气体离心机 cannery.centrifuge.0=气体离心机可以使用通用流体管道传输流体。 @@ -567,6 +581,11 @@ chem.VIT_LIQUID=液态核废料玻璃化 chem.XENON=林德循环制氙 chem.XENON_OXY=增强林德循环制氙 chem.YELLOWCAKE=黄饼生产 +commands.satellite.no_satellite=未找到使用此频率的卫星! +commands.satellite.not_a_satellite=持有的物品不是卫星! +commands.satellite.satellite_descended=卫星成功降落。 +commands.satellite.satellite_orbited=卫星发射。 +commands.satellite.should_be_run_as_player=此命令应该由玩家运行! container.amsBase=AMS基座(装饰) container.amsEmitter=AMS发射极(装饰) container.amsLimiter=AMS稳能器(装饰) @@ -592,6 +611,7 @@ container.craneUnboxer=输送带解包机 container.crateDesh=Desh箱 container.crateIron=铁箱 container.crateSteel=钢箱 +container.crateTemplate=模板箱 container.crateTungsten=钨箱 container.crystallizer=矿物酸化器 container.cyclotron=回旋加速器 @@ -636,6 +656,7 @@ container.machineCompressor=压缩机 container.machineCrucible=坩埚 container.machineDiesel=柴油发电机 container.machineElectricBoiler=电锅炉 +container.machineElectrolyser=电解机 container.machineFEL=FEL container.machineITER=聚变反应堆 container.machineLargeTurbine=工业汽轮机 @@ -693,6 +714,7 @@ container.reactorResearch=研究型反应堆 container.reix=Rei-X主机 container.rtg=放射性同位素发电机 container.rtgFurnace=放射性同位素热力炉[RTG] +container.rttyCounter=红石无线项目计数器 container.rttyReceiver=无线红石接收器 container.rttySender=无线红石发射器 container.safe=保险箱 @@ -980,6 +1002,11 @@ entity.hbm.entity_balls_o_tron_seg.name=机械蠕虫 entity.hbm.entity_bullet.name=子弹 entity.hbm.entity_rocket.name=火箭弹 entity.hbm.entity_schrabnel.name=Schrabnel +excavator.crusher=粉碎开关 +excavator.drill=挖掘开关 +excavator.silktouch=精准采集开关 +excavator.veinminer=连锁挖矿开关 +excavator.walling=填充开关 flare.ignition=点火装置 flare.valve=流量阀 fluid.acid_fluid=酸 @@ -1007,6 +1034,7 @@ gun.make.CERIX=赛里克斯·马格努斯锻造世界 gun.make.COLT=柯尔特制造公司 gun.make.COMBINE=世界工会 gun.make.CUBE=Cube 2: Sauerbraten +gun.make.DRG=深岩银河 gun.make.ENZINGER=Enzinger工会 gun.make.EQUESTRIA=小马国导弹系统 gun.make.FLIMFLAM=FlimFlam“欺骗”工业 @@ -1107,7 +1135,7 @@ gun.name.tommy9=M1A1冲锋枪9毫米型 gun.name.tommy=M1A1冲锋枪 gun.name.topaz=重型火焰燃烧器 gun.name.uacCarbine=UAC-41卡宾枪 -gun.name.uacDeagle=UAC-H54 "Martian Raptor" Automag +gun.name.uacDeagle=UAC-H54“火星猛禽”大容量手枪 gun.name.uacDMR=UAC-30 精确射手步枪 gun.name.uacLMG=UAC-49轻机枪 gun.name.uacPistol=UAC-B950 .45 标准型手枪 @@ -1221,6 +1249,7 @@ hbmfluid.heavyoil=重油 hbmfluid.heavyoil_vacuum=减压重油 hbmfluid.heavywater=重水 hbmfluid.helium3=氦-3 +hbmfluid.helium4=氦-4 hbmfluid.hotcrackoil=热裂化油 hbmfluid.hotoil=热原油 hbmfluid.hotsteam=热蒸汽 @@ -1259,7 +1288,7 @@ hbmfluid.plasma_dh3=氘-氦3 等离子体 hbmfluid.plasma_dt=氘-氚等离子体 hbmfluid.plasma_hd=氢-氘等离子体 hbmfluid.plasma_ht=氢-氚等离子体 -hbmfluid.plasma_xm=氙-汞等离子体 +hbmfluid.plasma_xm=液氧-氦-4等离子体 hbmfluid.potassium_chloride=氯化钾溶液 hbmfluid.puf6=六氟化钚 hbmfluid.radiosolvent=高性能溶剂 @@ -1272,6 +1301,9 @@ hbmfluid.sas3=三硫化Sa hbmfluid.schrabidic=Sa酸 hbmfluid.seedslurry=播种浆料 hbmfluid.smear=工业油 +hbmfluid.smoke=烟雾 +hbmfluid.smoke_leaded=含铅烟雾 +hbmfluid.smoke_poison=有毒烟雾 hbmfluid.solvent=有机溶剂 hbmfluid.sourgas=高硫天然气 hbmfluid.spentsteam=低压蒸汽 @@ -1392,6 +1424,7 @@ hbmmat.watzmud=毒泥浆 hbmmat.whitephosphorus=白磷 hbmmat.workersalloy=Desh hbmmat.wroughtiron=锻铁 +hbmmat.zirconium=锆 matshape.block=%s 块 matshape.blocks=%s 块 matshape.ingot=%s 锭 @@ -1540,6 +1573,9 @@ item.ammo_arty_phosgene.name=16英寸光气炮弹 item.ammo_arty_phosphorus.name=16英寸磷炮弹 item.ammo_arty_phosphorus_multi.name=16英寸多弹头磷炮弹 item.ammo_cell.name=能量单元 +item.ammo_coilgun.name=钨制线圈枪子弹 +item.ammo_coilgun_du.name=铀铁合金制线圈枪子弹 +item.ammo_coilgun_rubber.name=橡胶制线圈枪子弹 item.ammo_container.name=万能弹药盒 item.ammo_dart.name=塑料镖[凋零] item.ammo_dart_nerf.name=NERF 飞镖 @@ -2208,8 +2244,8 @@ item.crystal_phosphorus.name=磷晶体 item.crystal_plutonium.name=钚晶体 item.crystal_rare.name=稀土晶体 item.crystal_redstone.name=红石晶体 -item.crystal_schrabidium.name=低丰度Sa326晶体 -item.crystal_schraranium.name=Sa326晶体 +item.crystal_schrabidium.name=Sa326晶体 +item.crystal_schraranium.name=低丰度Sa326晶体 item.crystal_starmetal.name=星辉晶体 item.crystal_sulfur.name=硫晶体 item.crystal_thorium.name=钍晶体 @@ -2309,6 +2345,7 @@ item.early_explosive_lenses.desc=8个炸药透镜的组装,带有铝合金推 item.egg_balefire.name=野火蛋 item.egg_balefire.desc=什么样的鸟儿才会下带有放射性的蛋? item.egg_balefire_shard.name=野火蛋碎片 +item.egg_glyphid.name=Glyphid Egg item.elec_axe.name=电锯 item.elec_pickaxe.name=冲击钻 item.elec_shovel.name=螺旋钻 @@ -2316,6 +2353,10 @@ item.elec_sword.name=电棍 item.energy_core.name=临时能源核心 item.entanglement_kit.name=纠缠部件 item.entanglement_kit.desc=传送机制作零件$通过$铍增强型资源扫描仪实现尺寸转换。 +item.envsuit_boots.name=M1TTY环保套装靴子 +item.envsuit_helmet.name=M1TTY环保套装头盔 +item.envsuit_legs.name=M1TTY环保套装护腿 +item.envsuit_plate.name=M1TTY环保套装胸甲 item.euphemium_boots.name=Ep靴子 item.euphemium_capacitor.name=Ep电容 item.euphemium_capacitor.desc=允许被动分散累积的正能量。 @@ -2430,11 +2471,14 @@ item.generator_front.name=发电机前部 item.generator_steel.name=发电机主体 item.glitch.name=故障 item.glowing_stew.name=发光真菌煲 +item.glyphid_meat.name=异虫肉 +item.glyphid_meat_grilled.name=熟异虫肉 item.goggles.name=护目镜 item.grenade_aschrab.name=可抛反Sa326 item.grenade_black_hole.name=黑洞手榴弹 item.grenade_breach.name=破甲手榴弹 item.grenade_burst.name=挖掘手榴弹 +item.grenate_cats.name=猫猫手榴弹 item.grenade_cloud.name=一罐云 item.grenade_cluster.name=集束手榴弹 item.grenade_electric.name=闪电炸弹 @@ -2479,6 +2523,7 @@ item.gun_avenger.name=CZ57复仇者机枪 item.gun_b92.name=§9B92能量手枪§r item.gun_b92_ammo.name=§9B92能量单元§r item.gun_b93.name=§cB93能量手枪§r +item.gun_benelli.name=Benelli自动喷枪(Drum Mod) item.gun_bf.name=BEL item.gun_bf_ammo.name=Mk.V小型AMAT-炮弹 –野火型 item.gun_bio_revolver.name=Atlas @@ -2492,6 +2537,7 @@ item.gun_calamity.name=希特勒的电锯 item.gun_calamity_ammo.name=.50BMG子弹 item.gun_calamity_dual.name=马鞍枪 item.gun_chemthrower.name=化学喷射器 +item.gun_coilgun.name=线圈枪 item.gun_cryolator.name=冻结者 item.gun_cryolator_ammo.name=急冻单元 item.gun_dampfmaschine.name=绝对不是开玩笑的武器 @@ -2585,6 +2631,7 @@ item.gun_super_shotgun.name="超级"猎枪 item.gun_super_shotgun.desc=超级烂! item.gun_supershotgun.name=超级猎枪 item.gun_thompson.name=汤姆森冲锋枪 +item.gun_uac_pistol.name=UAC .45手枪 item.gun_uboinik.name=Uboinik item.gun_uboinik_ammo.name=12x70 鹿弹 item.gun_uzi.name=Uzi冲锋枪 @@ -3066,6 +3113,9 @@ item.mysteryshovel.name=易碎锹 item.n2_charge.name=大型炸药 item.neutrino_lens.name=中子透镜 item.neutron_reflector.name=中子反射板 +item.night_vision.name=夜视眼镜 +item.night_vision.description.item=提供夜视功能(需要全套电动设备) +item.night_vision.description.in_armor=%s(允许夜视) item.niter.name=硝石粉 item.no9.name=矿工头盔 item.nossy_hat.name=华丽的帽子 @@ -3838,6 +3888,9 @@ item.singularity_super_heated.name=超热共振奇点 item.siox.name=SiOX抗癌药物 item.siox.desc=使用石棉的力量逆转间皮瘤! item.siren_track.name=警报声轨 +item.sliding_blast_door_skin.0.name=滑动防爆门 皮肤:默认 +item.sliding_blast_door_skin.1.name=滑动防爆门 皮肤:变型1 +item.sliding_blast_door_skin.2.name=滑动防爆门 皮肤:变型2 item.smashing_hammer.name=粉碎锤 item.solid_fuel.name=固体燃料 item.solid_fuel_bf.name=固体燃料(野火) @@ -4421,6 +4474,7 @@ tile.charge_semtex.name=塞姆汀采矿炸药 tile.charger.name=充电站 tile.cheater_virus.name=冻结Ep tile.cheater_virus_seed.name=不稳定Ep Schrabide块 +tile.chimney_brick.name=烟囱 tile.chlorine_gas.name=氯气 tile.cluster_aluminium.name=铝矿簇 tile.cluster_copper.name=铜矿簇 @@ -4429,6 +4483,30 @@ tile.cluster_depth_titanium.name=深层钛矿簇 tile.cluster_depth_tungsten.name=深层钨矿簇 tile.cluster_iron.name=铁矿簇 tile.cluster_titanium.name=钛矿簇 +tile.cm_block.alloy.name=高级合金机器外壳 +tile.cm_block.desh.name=Desh机器外壳 +tile.cm_block.steel.name=钢制机器外壳 +tile.cm_block.tcalloy.name=锝钢机器外壳 +tile.cm_circuit.aluminium.name=一级电路块 +tile.cm_circuit.copper.name=二级电路块 +tile.cm_circuit.gold.name=四级电路块 +tile.cm_circuit.red_copper.name=三级电路块 +tile.cm_circuit.schrabidium.name=五级电路块 +tile.cm_engine.bismuth.name=铋电机组 +tile.cm_engine.desh.name=DESH电机组 +tile.cm_engine.standard.name=电机组 +tile.cm_port.alloy.name=高级合金端口 +tile.cm_port.desh.name=Desh端口 +tile.cm_port.steel.name=钢制端口 +tile.cm_port.tcalloy.name=锝钢端口 +tile.cm_sheet.alloy.name=高级合金建筑板 +tile.cm_sheet.desh.name=Desh建筑板 +tile.cm_sheet.steel.name=钢建筑板 +tile.cm_sheet.tcalloy.name=锝钢建筑板 +tile.cm_tank.alloy.name=高级合金储罐 +tile.cm_tank.desh.name=Desh储罐 +tile.cm_tank.steel.name=钢制储罐 +tile.cm_tank.tcalloy.name=锝钢储罐 tile.cmb_brick.name=CMB钢瓦块 tile.cmb_brick_reinforced.name=加固CMB钢砖块 tile.compact_launcher.name=紧凑型发射台 @@ -4497,6 +4575,7 @@ tile.crate_lead.name=危险品补给箱 tile.crate_metal.name=机器补给箱 tile.crate_red.name=红色补给箱 tile.crate_steel.name=钢箱 +tile.crate_template.name=模板箱 tile.crate_tungsten.name=钨箱 tile.crate_weapon.name=武器补给箱 tile.crystal_hardened.name=硬化黑水晶 @@ -4595,11 +4674,14 @@ tile.flame_war.name=盒中论战 tile.float_bomb.name=悬浮炸弹 tile.fluid_duct.name=通用流体管道 tile.fluid_duct_box.name=通用流体管道(方形) +tile.fluid_duct_exhaust.name=排气管 tile.fluid_duct_gauge.name=流量计管 tile.fluid_duct_gauge.desc=显示每个游戏刻在管网有多少流体移动的管道$由桶或罐连接的分离网络被视为一个共享网络。 tile.fluid_duct_neo.name=通用流体管道 tile.fluid_duct_paintable.name=可喷漆涂层通用流体导管 tile.fluid_duct_solid.name=带涂层的通用流体导管 +tile.fluid_switch.name=红石流体阀 +tile.fluid_valve.name=流体阀 tile.foam_layer.name=泡沫层 tile.foundry_basin.name=铸造盘 tile.foundry_channel.name=铸造浇道 @@ -4671,6 +4753,10 @@ tile.hadron_coil_neodymium.name=致密钕线圈 tile.hadron_coil_schrabidate.name=致密Sa酸铁线圈 tile.hadron_coil_schrabidium.name=密集Sa326线圈 tile.hadron_coil_starmetal.name=密集星辉线圈 +tile.hadron_cooler.name=粒子加速器冷却装置 +tile.hadron_cooler.desc=冷却功率:10$过冷阈值:10$冷却加成:+10%%$过冷惩罚:-25%% +tile.hadron_cooler_mk2.name=粒子加速器冷却装置-回文特制 +tile.hadron_cooler_mk2.desc=冷却功率:5$效率功能:2-(冷却-15)2/225$最高惩罚:-90%% tile.hadron_core.name=粒子加速器核心组件 tile.hadron_diode.name=肖基特二极管 tile.hadron_plating.name=粒子加速器镀层 @@ -4769,6 +4855,7 @@ tile.machine_dineutronium_battery.name=Spark蓄电池 tile.machine_drill.name=自动采矿钻机 tile.machine_electric_furnace_off.name=电炉 tile.machine_electric_furnace_on.name=电炉 +tile.machine_electrolyser.name=电解机 tile.machine_epress.name=电动锻压机 tile.machine_excavator.name=大型采矿钻机 tile.machine_fel.name=FEL自由电子激光器 @@ -4782,6 +4869,8 @@ tile.machine_gascent.name=气体离心机 tile.machine_generator.name=核反应堆[旧] tile.machine_geo.name=地热发电机 tile.machine_hephaestus.name=地热换热器 +tile.machine_industrial_boiler.name=工业锅炉 +tile.machine_industrial_boiler.desc=可以烧水或加热油的大型锅炉$需要外部热源$传热率:ΔT*0.01 TU/T$不会爆炸 tile.machine_industrial_generator.name=工业发电机 tile.machine_keyforge.name=锁匠桌 tile.machine_large_turbine.name=工业汽轮机 @@ -4988,6 +5077,8 @@ tile.pribris.name=RBMK石墨式反应堆残骸 tile.pribris_burning.name=燃烧的RBMK反应堆残骸 tile.pribris_digamma.name=发黑的RBMK反应堆残骸 tile.pribris_radiating.name=阴燃的RBMK反应堆残骸 +tile.radio_torch_counter.name=红石无线项目计数器 +tile.radio_torch_counter.desc=平面或比较器兼容块上的标牌$根据匹配项目的数量发出信号 tile.radio_torch_receiver.name=无线红石信号接收器 tile.radio_torch_receiver.desc=可在平坦表面或与比较器兼容的方块上放置 tile.radio_torch_sender.name=无线红石信号发射器 @@ -5080,6 +5171,7 @@ tile.sellafield.4.name=地狱般的放射性熔融凝固物 tile.sellafield.5.name=放射性熔融凝固物核心 tile.sellafield_slaked.name=消沉的放射性熔融凝固物 tile.semtex.name=塞姆汀塑胶炸药 +tile.sliding_blast_door.name=滑动防爆门 tile.solar_mirror.name=定日镜 tile.soyuz_capsule.name=货物着陆舱 tile.soyuz_launcher.name=联盟号发射平台 diff --git a/src/main/resources/assets/hbm/models/projectiles/leadburster.obj b/src/main/resources/assets/hbm/models/projectiles/leadburster.obj new file mode 100644 index 000000000..994ea3b72 --- /dev/null +++ b/src/main/resources/assets/hbm/models/projectiles/leadburster.obj @@ -0,0 +1,1671 @@ +# Blender v2.79 (sub 0) OBJ File: 'leadburster.blend' +# www.blender.org +o Based.001 +v -0.015017 4.297415 -1.162174 +v -0.015017 4.297415 1.146320 +v 0.576962 3.955635 1.146320 +v 0.576962 3.955635 -1.162174 +v 0.576962 3.272077 1.146320 +v 0.576962 3.272077 -1.162174 +v -0.015017 2.930297 1.146320 +v -0.015017 2.930298 -1.162174 +v -0.606996 3.272077 1.146320 +v -0.606996 3.272077 -1.162174 +v 0.489972 3.322300 1.146320 +v -0.015017 3.030745 1.146320 +v -0.606996 3.955635 1.146320 +v -0.606996 3.955635 -1.162174 +v 0.491289 3.321540 -1.162174 +v 0.491289 3.906172 -1.162174 +v -0.520006 3.322300 1.146320 +v -0.015017 3.030745 0.868875 +v -0.520006 3.322300 0.868875 +v -0.520006 3.905411 1.146320 +v -0.015017 4.196967 1.146320 +v 0.489972 3.905411 1.146320 +v 0.489972 3.322300 0.868875 +v 0.455764 3.342050 0.868875 +v -0.015017 3.070245 0.868875 +v 0.489972 3.905411 0.868875 +v -0.520006 3.905411 0.868875 +v -0.015017 4.196967 0.868875 +v 0.455764 3.885662 0.868875 +v 0.394149 3.850088 1.153171 +v 0.394149 3.377624 1.153171 +v -0.015017 4.157467 0.868875 +v -0.485798 3.885662 0.868875 +v -0.485798 3.342051 0.868875 +v -0.015017 4.086320 1.153171 +v -0.424183 3.850088 1.153171 +v -0.424183 3.377624 1.153171 +v -0.015017 3.141392 1.153171 +v -0.521323 3.321540 -1.162174 +v -0.521323 3.906172 -1.162174 +v -0.487987 3.886926 -0.844068 +v -0.487987 3.340786 -0.844068 +v -0.015017 4.198488 -1.162174 +v -0.015017 3.029224 -1.162174 +v -0.015017 4.159995 -0.844068 +v -0.015017 4.086784 -1.161144 +v -0.424585 3.850320 -1.161144 +v -0.015017 3.067717 -0.844068 +v 0.457954 3.340786 -0.844068 +v 0.457954 3.886926 -0.844068 +v 0.394551 3.850320 -1.161144 +v 0.394551 3.377392 -1.161144 +v -0.015017 3.140928 -1.161144 +v -0.424585 3.377392 -1.161144 +v 0.308285 1.821139 -0.740607 +v 0.305698 1.821139 0.741679 +v -0.308285 1.821139 0.740608 +v -0.305698 1.821139 -0.741679 +v -0.308285 2.128531 0.740608 +v -0.305698 2.128531 -0.741679 +v 0.305698 2.128531 0.741679 +v 0.308285 2.128531 -0.740607 +v 0.305698 3.115462 0.741679 +v -0.308285 3.099616 0.740608 +v -0.015017 2.930297 0.741119 +v -0.305698 2.128531 -1.038465 +v -0.305698 1.821139 -1.038465 +v -0.308285 1.821139 1.036965 +v 0.305698 1.821139 1.038465 +v 0.305698 2.128531 1.038465 +v -0.308285 2.128531 1.036965 +v 0.308285 1.821139 -1.036965 +v 0.308285 2.128531 -1.036965 +v -0.305698 3.098122 -0.741679 +v -0.305698 3.098122 -1.038465 +v -0.015017 2.930297 -1.037755 +v 0.308285 3.116956 -1.036965 +v 0.305698 3.115462 1.038465 +v 0.308285 3.116956 -0.740607 +v -0.015017 2.930297 -0.741172 +v -0.308285 3.099616 1.036965 +v -0.015017 2.930297 1.037682 +vt 0.639483 0.175662 +vt 0.663689 0.275699 +vt 0.639518 0.275817 +vt 0.511157 0.563979 +vt 0.552869 0.765382 +vt 0.511157 0.765383 +vt 0.808845 0.848002 +vt 0.753093 0.471432 +vt 0.808845 0.471432 +vt 0.753093 0.848002 +vt 0.697341 0.471432 +vt 0.697340 0.848002 +vt 0.641588 0.471432 +vt 0.976102 0.471432 +vt 0.920349 0.848002 +vt 0.920349 0.471432 +vt 0.641588 0.848002 +vt 0.693244 0.862192 +vt 0.645685 0.862192 +vt 0.864597 0.471432 +vt 0.864597 0.848002 +vt 0.749058 0.457457 +vt 0.972005 0.862192 +vt 0.924446 0.907449 +vt 0.924446 0.862192 +vt 0.812941 0.862192 +vt 0.976102 0.848002 +vt 0.748996 0.862192 +vt 0.701437 0.862192 +vt 0.868694 0.862192 +vt 0.804749 0.862192 +vt 0.757189 0.862192 +vt 0.693244 0.907449 +vt 0.647296 0.913030 +vt 0.645685 0.907450 +vt 0.701437 0.907450 +vt 0.916253 0.862192 +vt 0.868694 0.907450 +vt 0.757189 0.907450 +vt 0.860501 0.862192 +vt 0.812941 0.907450 +vt 0.747386 0.913030 +vt 0.705949 0.960482 +vt 0.703048 0.913030 +vt 0.804749 0.907450 +vt 0.758800 0.913030 +vt 0.858890 0.913030 +vt 0.814552 0.913030 +vt 0.970394 0.913030 +vt 0.926057 0.913030 +vt 0.748996 0.907450 +vt 0.914642 0.913030 +vt 0.870304 0.913030 +vt 0.537788 0.150505 +vt 0.557055 0.083760 +vt 0.614858 0.150505 +vt 0.873206 0.960482 +vt 0.691633 0.913030 +vt 0.650197 0.960482 +vt 0.800236 0.960482 +vt 0.761701 0.960482 +vt 0.817454 0.960482 +vt 0.928958 0.960482 +vt 0.916315 0.457457 +vt 0.870201 0.405282 +vt 0.914745 0.405282 +vt 0.757127 0.457457 +vt 0.804811 0.457457 +vt 0.693306 0.457457 +vt 0.860563 0.457457 +vt 0.924384 0.457457 +vt 0.972067 0.457457 +vt 0.858993 0.405282 +vt 0.817435 0.352535 +vt 0.856008 0.352536 +vt 0.647192 0.405282 +vt 0.691737 0.405282 +vt 0.803241 0.405282 +vt 0.812879 0.457457 +vt 0.925954 0.405282 +vt 0.970497 0.405282 +vt 0.701375 0.457457 +vt 0.747489 0.405282 +vt 0.537788 0.313976 +vt 0.557086 0.247179 +vt 0.595659 0.247206 +vt 0.967512 0.352535 +vt 0.705930 0.352536 +vt 0.744503 0.352536 +vt 0.911760 0.352535 +vt 0.688751 0.352536 +vt 0.761682 0.352536 +vt 0.800255 0.352536 +vt 0.636347 0.765383 +vt 0.615464 0.563979 +vt 0.636347 0.563979 +vt 0.573752 0.563979 +vt 0.615464 0.765383 +vt 0.573752 0.765382 +vt 0.688760 0.026976 +vt 0.767964 0.026976 +vt 0.754154 0.074815 +vt 0.552869 0.563979 +vt 0.863701 0.015410 +vt 0.838629 0.063823 +vt 0.838629 0.015410 +vt 0.663689 0.175544 +vt 0.688760 0.275699 +vt 0.863701 0.163978 +vt 0.838629 0.163978 +vt 0.688760 0.127131 +vt 0.663689 0.127131 +vt 0.663689 0.324042 +vt 0.688760 0.324042 +vt 0.942782 0.063823 +vt 0.863701 0.063823 +vt 0.838629 0.212321 +vt 0.863701 0.212321 +vt 0.814423 0.063941 +vt 0.814458 0.164096 +vt 0.929094 0.111240 +vt 0.688760 0.175544 +vt 0.769256 0.127131 +vt 0.769256 0.175544 +vt 0.944318 0.163978 +vt 0.944318 0.212321 +vt 0.929094 0.265060 +vt 0.754154 0.227860 +vt 0.767964 0.324042 +vt 0.972005 0.907450 +vt 0.916253 0.907450 +vt 0.860501 0.907450 +vt 0.744484 0.960482 +vt 0.803138 0.913030 +vt 0.595590 0.083760 +vt 0.595590 0.217249 +vt 0.557055 0.217249 +vt 0.911741 0.960482 +vt 0.688732 0.960482 +vt 0.855989 0.960482 +vt 0.967493 0.960482 +vt 0.868631 0.457457 +vt 0.645623 0.457457 +vt 0.814449 0.405282 +vt 0.758697 0.405282 +vt 0.702945 0.405282 +vt 0.614933 0.314029 +vt 0.595636 0.380826 +vt 0.557063 0.380800 +vt 0.928939 0.352535 +vt 0.873187 0.352535 +vt 0.650178 0.352536 +vt 0.942782 0.015410 +vt 0.942782 0.312477 +vt 0.863701 0.312477 +vt 0.767964 0.275699 +vn 0.0000 -1.0000 0.0000 +vn 0.5000 0.8660 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.5000 -0.8660 0.0000 +vn -0.5000 -0.8660 0.0000 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn -0.5000 0.8660 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.9773 0.0000 0.2118 +vn -0.9773 0.0000 0.2118 +vn 0.4887 -0.8464 0.2118 +vn 0.4887 0.8464 0.2118 +vn -0.4887 0.8464 0.2118 +vn -0.4887 -0.8464 0.2118 +vn 0.9946 0.0000 -0.1042 +vn -0.4903 0.8492 -0.1961 +vn -0.4973 0.8613 -0.1042 +vn -0.4973 -0.8613 -0.1042 +vn 0.4973 -0.8613 -0.1042 +vn 0.4973 0.8613 -0.1042 +vn -0.9946 0.0000 -0.1042 +vn -0.4903 -0.8492 -0.1961 +vn 0.9806 0.0000 -0.1961 +vn -0.9806 0.0000 -0.1961 +vn 0.4903 -0.8492 -0.1961 +vn 0.4903 0.8492 -0.1961 +vn -1.0000 -0.0000 -0.0017 +vn 0.0000 1.0000 -0.0000 +vn 0.0017 0.0000 -1.0000 +vn 1.0000 0.0000 0.0017 +vn -0.0024 0.0000 1.0000 +vn 0.0024 0.0000 -1.0000 +vn -0.0017 0.0000 1.0000 +s off +f 56/1/1 68/2/1 57/3/1 +f 58/4/1 56/5/1 57/6/1 +f 2/7/2 4/8/2 1/9/2 +f 3/10/3 6/11/3 4/8/3 +f 5/12/4 8/13/4 6/11/4 +f 8/14/5 9/15/5 10/16/5 +f 7/17/6 11/18/6 12/19/6 +f 9/15/7 14/20/7 10/16/7 +f 13/21/8 1/9/8 14/20/8 +f 6/11/9 16/22/9 4/8/9 +f 12/23/2 19/24/2 17/25/2 +f 13/21/6 21/26/6 2/7/6 +f 7/27/6 17/25/6 9/15/6 +f 5/12/6 22/28/6 11/29/6 +f 9/15/6 20/30/6 13/21/6 +f 3/10/6 21/31/6 22/32/6 +f 23/33/6 25/34/6 18/35/6 +f 22/28/7 23/36/7 11/29/7 +f 17/37/3 27/38/3 20/30/3 +f 11/18/8 18/35/8 12/19/8 +f 21/31/5 26/39/5 22/32/5 +f 20/40/4 28/41/4 21/26/4 +f 29/42/10 31/43/10 24/44/10 +f 28/45/6 29/46/6 26/39/6 +f 28/41/6 33/47/6 32/48/6 +f 19/24/6 25/49/6 34/50/6 +f 26/51/6 24/44/6 23/36/6 +f 27/38/6 34/52/6 33/53/6 +f 38/54/6 31/55/6 35/56/6 +f 34/52/11 36/57/11 33/53/11 +f 24/58/12 38/59/12 25/34/12 +f 29/46/13 35/60/13 30/61/13 +f 33/47/14 35/62/14 32/48/14 +f 25/49/15 37/63/15 34/50/15 +f 39/64/16 41/65/16 42/66/16 +f 14/20/9 39/64/9 10/16/9 +f 1/9/9 16/67/9 43/68/9 +f 8/13/9 15/69/9 6/11/9 +f 1/9/9 40/70/9 14/20/9 +f 8/14/9 39/71/9 44/72/9 +f 41/73/17 46/74/17 47/75/17 +f 15/69/18 48/76/18 49/77/18 +f 16/67/19 45/78/19 43/68/19 +f 43/79/20 41/73/20 40/70/20 +f 44/72/21 42/80/21 48/81/21 +f 15/82/22 50/83/22 16/22/22 +f 53/84/9 54/85/9 47/86/9 +f 42/80/23 53/87/23 48/81/23 +f 50/83/24 52/88/24 51/89/24 +f 41/65/25 54/90/25 42/66/25 +f 48/76/26 52/91/26 49/77/26 +f 45/78/27 51/92/27 46/93/27 +f 57/94/28 60/95/28 58/96/28 +f 62/97/29 59/98/29 61/99/29 +f 59/100/30 64/101/30 65/102/30 +f 55/103/31 61/99/31 56/5/31 +f 60/104/7 67/105/7 58/106/7 +f 69/107/32 71/108/32 68/2/32 +f 67/105/33 73/109/33 72/110/33 +f 61/111/3 69/107/3 56/112/3 +f 57/113/7 71/108/7 59/114/7 +f 60/104/7 75/115/7 66/116/7 +f 55/117/3 73/109/3 62/118/3 +f 58/119/1 72/110/1 55/120/1 +f 66/116/33 75/115/33 76/121/33 +f 70/122/3 63/123/3 78/124/3 +f 62/118/3 77/125/3 79/126/3 +f 62/118/34 79/126/34 80/127/34 +f 70/122/32 78/124/32 82/128/32 +f 71/108/7 64/129/7 59/114/7 +f 56/1/1 69/107/1 68/2/1 +f 58/4/1 55/103/1 56/5/1 +f 2/7/2 3/10/2 4/8/2 +f 3/10/3 5/12/3 6/11/3 +f 5/12/4 7/17/4 8/13/4 +f 8/14/5 7/27/5 9/15/5 +f 7/17/6 5/12/6 11/18/6 +f 9/15/7 13/21/7 14/20/7 +f 13/21/8 2/7/8 1/9/8 +f 6/11/9 15/82/9 16/22/9 +f 12/23/2 18/130/2 19/24/2 +f 13/21/6 20/40/6 21/26/6 +f 7/27/6 12/23/6 17/25/6 +f 5/12/6 3/10/6 22/28/6 +f 9/15/6 17/37/6 20/30/6 +f 3/10/6 2/7/6 21/31/6 +f 23/33/6 24/58/6 25/34/6 +f 22/28/7 26/51/7 23/36/7 +f 17/37/3 19/131/3 27/38/3 +f 11/18/8 23/33/8 18/35/8 +f 21/31/5 28/45/5 26/39/5 +f 20/40/4 27/132/4 28/41/4 +f 29/42/10 30/133/10 31/43/10 +f 28/45/6 32/134/6 29/46/6 +f 28/41/6 27/132/6 33/47/6 +f 19/24/6 18/130/6 25/49/6 +f 26/51/6 29/42/6 24/44/6 +f 27/38/6 19/131/6 34/52/6 +f 31/55/6 30/135/6 35/56/6 +f 35/56/6 36/136/6 37/137/6 +f 37/137/6 38/54/6 35/56/6 +f 34/52/11 37/138/11 36/57/11 +f 24/58/12 31/139/12 38/59/12 +f 29/46/13 32/134/13 35/60/13 +f 33/47/14 36/140/14 35/62/14 +f 25/49/15 38/141/15 37/63/15 +f 39/64/16 40/142/16 41/65/16 +f 14/20/9 40/142/9 39/64/9 +f 1/9/9 4/8/9 16/67/9 +f 8/13/9 44/143/9 15/69/9 +f 1/9/9 43/79/9 40/70/9 +f 8/14/9 10/16/9 39/71/9 +f 41/73/17 45/144/17 46/74/17 +f 15/69/18 44/143/18 48/76/18 +f 16/67/19 50/145/19 45/78/19 +f 43/79/20 45/144/20 41/73/20 +f 44/72/21 39/71/21 42/80/21 +f 15/82/22 49/146/22 50/83/22 +f 47/86/9 46/147/9 53/84/9 +f 46/147/9 51/148/9 53/84/9 +f 51/148/9 52/149/9 53/84/9 +f 42/80/23 54/150/23 53/87/23 +f 50/83/24 49/146/24 52/88/24 +f 41/65/25 47/151/25 54/90/25 +f 48/76/26 53/152/26 52/91/26 +f 45/78/27 50/145/27 51/92/27 +f 57/94/28 59/98/28 60/95/28 +f 62/97/29 60/95/29 59/98/29 +f 65/102/30 63/123/30 61/111/30 +f 61/111/30 59/100/30 65/102/30 +f 55/103/31 62/97/31 61/99/31 +f 60/104/7 66/116/7 67/105/7 +f 69/107/32 70/122/32 71/108/32 +f 67/105/33 66/116/33 73/109/33 +f 61/111/3 70/122/3 69/107/3 +f 57/113/7 68/2/7 71/108/7 +f 60/104/7 74/153/7 75/115/7 +f 55/117/3 72/110/3 73/109/3 +f 58/119/1 67/105/1 72/110/1 +f 77/125/33 73/109/33 76/121/33 +f 73/109/33 66/116/33 76/121/33 +f 70/122/3 61/111/3 63/123/3 +f 62/118/3 73/109/3 77/125/3 +f 80/127/34 74/154/34 60/155/34 +f 60/155/34 62/118/34 80/127/34 +f 82/128/32 81/156/32 71/108/32 +f 71/108/32 70/122/32 82/128/32 +f 71/108/7 81/156/7 64/129/7 +o Backlight +v -1.320666 5.883319 -0.497968 +v -0.984420 5.883904 -0.491350 +v -0.987140 5.302763 -0.301741 +v -1.323386 5.302178 -0.308359 +v -0.999171 5.303525 0.309437 +v -1.335417 5.302939 0.302818 +v -1.003886 5.885137 0.497557 +v -1.340132 5.884551 0.490938 +v -0.994770 6.243831 0.002643 +v -1.331016 6.243245 -0.003975 +v 0.021235 6.075014 -0.897532 +v 0.021235 6.075014 0.897532 +v 0.288019 5.707444 0.897532 +v 0.288019 5.707444 -0.897532 +v 0.103085 5.292618 0.897532 +v 0.103085 5.292618 -0.897532 +v -0.348631 5.245362 0.897532 +v -0.348631 5.245362 -0.897532 +v -0.615414 5.612932 0.897532 +v -0.615414 5.612932 -0.897532 +v -0.430481 6.027758 0.897532 +v -0.430481 6.027758 -0.897532 +v -0.868643 2.165176 0.689521 +v -1.105512 2.543972 0.689521 +v -1.105512 2.543972 -0.689521 +v -0.868643 2.165176 -0.689521 +v 1.105512 2.543972 -0.689521 +v 0.868643 2.165176 -0.689521 +v 0.868643 2.165176 0.689521 +v 1.199654 4.481366 0.689521 +v 1.199654 4.481366 -0.689521 +v 0.857499 6.338323 -0.688818 +v 0.857499 6.338323 0.688818 +v -1.094646 5.192699 -0.689521 +v 1.105512 2.543972 0.689521 +v -1.104364 2.657593 -0.454835 +v -1.095794 5.079079 -0.454835 +v -1.094646 5.192699 0.689521 +v -1.075323 6.338323 0.688818 +v -1.075323 6.338323 -0.688818 +v 0.443011 6.780780 -0.689521 +v -0.748752 6.780780 -0.689521 +v -0.748752 6.780780 0.689521 +v 0.443011 6.780780 0.689521 +v -1.095794 5.079079 0.454835 +v -1.560949 4.983612 -0.454835 +v -1.560949 4.983612 0.454835 +v -1.104364 2.657593 0.454835 +v -1.744408 4.759537 0.454835 +v -1.751578 2.847407 0.454835 +v -1.565712 2.659905 0.454835 +v -1.565712 2.659905 -0.454835 +v -1.751578 2.847407 -0.454835 +v -1.744408 4.759537 -0.454835 +v 0.902946 2.617983 -0.365337 +v 1.624929 2.505614 -0.365337 +v 1.571494 2.162292 -0.112895 +v 0.849512 2.274660 -0.112895 +v 1.591904 2.293429 0.295564 +v 0.869922 2.405798 0.295564 +v 1.657953 2.717800 0.295564 +v 0.935971 2.830168 0.295564 +v 1.678363 2.848937 -0.112895 +v 0.956381 2.961306 -0.112895 +v 0.675515 5.594983 -0.365337 +v 1.390851 5.743908 -0.365337 +v 1.461669 5.403746 -0.112895 +v 0.746333 5.254820 -0.112895 +v 1.434619 5.533676 0.295564 +v 0.719283 5.384750 0.295564 +v 1.347083 5.954140 0.295564 +v 0.631746 5.805215 0.295564 +v 1.320033 6.084071 -0.112895 +v 0.604696 5.935145 -0.112895 +v 0.804842 4.824814 -0.365337 +v 1.529542 4.918053 -0.365337 +v 1.573880 4.573438 -0.112895 +v 0.849180 4.480198 -0.112895 +v 1.556945 4.705069 0.295564 +v 0.832244 4.611830 0.295564 +v 1.502140 5.131038 0.295564 +v 0.777439 5.037798 0.295564 +v 1.485204 5.262669 -0.112895 +v 0.760504 5.169430 -0.112895 +v 0.920711 4.059648 -0.365337 +v 1.648066 4.129222 -0.365337 +v 1.681150 3.783345 -0.112895 +v 0.953796 3.713770 -0.112895 +v 1.668513 3.915458 0.295564 +v 0.941159 3.845884 0.295564 +v 1.627618 4.342986 0.295564 +v 0.900264 4.273412 0.295564 +v 1.614981 4.475100 -0.112895 +v 0.887627 4.405526 -0.112895 +v 0.945849 3.338301 -0.365337 +v 1.676468 3.329257 -0.365337 +v 1.672167 2.981827 -0.112895 +v 0.941548 2.990872 -0.112895 +v 1.673810 3.114533 0.295564 +v 0.943191 3.123578 0.295564 +v 1.679126 3.543980 0.295564 +v 0.948508 3.553025 0.295564 +v 1.680769 3.676687 -0.112895 +v 0.950150 3.685731 -0.112895 +vt 0.734577 0.712371 +vt 0.689031 0.795268 +vt 0.706490 0.693161 +vt 0.804411 0.303943 +vt 0.758865 0.386840 +vt 0.776323 0.284733 +vt 0.786953 0.406050 +vt 0.741407 0.488948 +vt 0.752036 0.610264 +vt 0.723948 0.591054 +vt 0.704915 0.385185 +vt 0.689031 0.282055 +vt 0.633210 0.445087 +vt 0.609124 0.254698 +vt 0.633210 0.254698 +vt 0.609124 0.445087 +vt 0.585038 0.254698 +vt 0.729554 0.445087 +vt 0.705468 0.254698 +vt 0.729554 0.254698 +vt 0.705468 0.445087 +vt 0.681382 0.254698 +vt 0.729554 0.528523 +vt 0.693425 0.486805 +vt 0.681382 0.445087 +vt 0.657296 0.254698 +vt 0.657296 0.445087 +vt 0.693425 0.212980 +vt 0.705468 0.171262 +vt 0.174122 0.039077 +vt 0.146848 0.207453 +vt 0.146848 0.039077 +vt 0.137452 0.253472 +vt 0.120204 0.496470 +vt 0.115056 0.284604 +vt 0.116729 0.523112 +vt 0.010671 0.691488 +vt 0.010671 0.523112 +vt 0.262417 0.523112 +vt 0.377689 0.691402 +vt 0.262417 0.691488 +vt 0.144003 0.523112 +vt 0.144003 0.691488 +vt 0.335824 0.207453 +vt 0.181059 0.178798 +vt 0.328887 0.178799 +vt 0.335823 0.039077 +vt 0.405772 0.207367 +vt 0.298993 0.239102 +vt 0.374633 0.470381 +vt 0.487456 0.523112 +vt 0.414701 0.691488 +vt 0.414701 0.523112 +vt 0.368906 0.234669 +vt 0.400385 0.417212 +vt 0.377689 0.523198 +vt 0.405771 0.039163 +vt 0.439344 0.207453 +vt 0.120204 0.718130 +vt 0.137452 0.961127 +vt 0.115056 0.929996 +vt 0.116729 0.691488 +vt 0.374633 0.744218 +vt 0.298993 0.975498 +vt 0.400385 0.797388 +vt 0.368906 0.979930 +vt 0.347149 0.651237 +vt 0.318160 0.540170 +vt 0.347149 0.540170 +vt 0.328887 0.067731 +vt 0.174122 0.207453 +vt 0.181059 0.067731 +vt 0.300481 0.540170 +vt 0.183748 0.540170 +vt 0.172309 0.461061 +vt 0.183748 0.651237 +vt 0.300481 0.651237 +vt 0.172308 0.730346 +vt 0.167631 0.540170 +vt 0.318160 0.651237 +vt 0.139466 0.540170 +vt 0.167631 0.651237 +vt 0.139466 0.651237 +vt 0.296233 0.330392 +vt 0.392444 0.443495 +vt 0.296233 0.443495 +vt 0.392444 0.556598 +vt 0.296233 0.556598 +vt 0.296233 0.669700 +vt 0.092675 0.068302 +vt 0.075181 0.175984 +vt 0.018569 0.175984 +vt 0.392444 0.782803 +vt 0.296233 0.782803 +vt 0.296233 0.895906 +vt 0.006900 0.330392 +vt 0.103083 0.443589 +vt 0.006873 0.443495 +vt 0.006845 0.556598 +vt 0.103028 0.669794 +vt 0.006818 0.669701 +vt 0.046875 0.001750 +vt 0.092675 0.068302 +vt 0.075181 0.175984 +vt 0.006790 0.782803 +vt 0.103001 0.782897 +vt 0.006763 0.895906 +vt 0.488888 0.330392 +vt 0.392677 0.443495 +vt 0.392677 0.330393 +vt 0.488888 0.443495 +vt 0.392677 0.556598 +vt 0.488888 0.556598 +vt 0.392677 0.669700 +vt 0.046875 0.001750 +vt 0.092675 0.068302 +vt 0.075181 0.175984 +vt 0.488888 0.669700 +vt 0.392677 0.782803 +vt 0.488888 0.782803 +vt 0.392677 0.895906 +vt 0.296000 0.330393 +vt 0.199789 0.443496 +vt 0.199789 0.330392 +vt 0.295999 0.443495 +vt 0.199789 0.556598 +vt 0.295999 0.669701 +vt 0.199789 0.669701 +vt 0.046875 0.001750 +vt 0.092675 0.068302 +vt 0.075181 0.175984 +vt 0.199789 0.782803 +vt 0.296000 0.782803 +vt 0.199789 0.895906 +vt 0.103344 0.330393 +vt 0.199555 0.443495 +vt 0.103344 0.443495 +vt 0.103344 0.556598 +vt 0.199555 0.669701 +vt 0.103344 0.669701 +vt 0.046875 0.001750 +vt 0.092675 0.068302 +vt 0.075181 0.175984 +vt 0.199555 0.782803 +vt 0.103344 0.782803 +vt 0.199555 0.895906 +vt 0.103344 0.895906 +vt 0.717118 0.814478 +vt 0.769494 0.508157 +vt 0.733164 0.219973 +vt 0.585038 0.445087 +vt 0.741597 0.486805 +vt 0.705468 0.528523 +vt 0.729554 0.171262 +vt 0.741597 0.212980 +vt 0.487456 0.691488 +vt 0.396853 0.271873 +vt 0.439343 0.039077 +vt 0.396853 0.942726 +vt 0.172344 0.517391 +vt 0.320137 0.461124 +vt 0.314202 0.517873 +vt 0.314202 0.673534 +vt 0.320137 0.730284 +vt 0.172344 0.674016 +vt 0.392444 0.330393 +vt 0.392444 0.669700 +vt 0.001075 0.068302 +vt 0.046875 0.001750 +vt 0.392444 0.895906 +vt 0.103111 0.330486 +vt 0.103056 0.556692 +vt 0.018569 0.175984 +vt 0.001075 0.068302 +vt 0.102974 0.895999 +vt 0.018569 0.175984 +vt 0.001075 0.068302 +vt 0.488888 0.895906 +vt 0.296000 0.556598 +vt 0.018569 0.175984 +vt 0.001075 0.068302 +vt 0.296000 0.895906 +vt 0.199555 0.330392 +vt 0.199555 0.556598 +vt 0.018569 0.175984 +vt 0.001075 0.068302 +vn 0.0192 -0.3102 -0.9505 +vn 0.0017 -1.0000 0.0013 +vn -0.0182 -0.3078 0.9513 +vn -0.0130 0.8097 0.5866 +vn 0.0102 0.8083 -0.5887 +vn -0.9998 -0.0017 -0.0197 +vn 0.8093 0.5874 0.0000 +vn 0.9133 -0.4072 0.0000 +vn 0.1040 -0.9946 0.0000 +vn -0.8093 -0.5874 0.0000 +vn 0.0000 0.0000 1.0000 +vn -0.9133 0.4072 0.0000 +vn -0.1040 0.9946 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -0.8477 -0.5305 -0.0013 +vn -0.8479 -0.5302 0.0000 +vn 0.0012 -0.0007 -1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.9834 0.1812 0.0000 +vn 0.9835 0.1807 -0.0002 +vn 0.0012 0.0005 -1.0000 +vn 0.9988 -0.0485 0.0000 +vn -1.0000 0.0003 -0.0029 +vn -1.0000 0.0051 -0.0032 +vn -1.0000 0.0044 -0.0018 +vn -0.9998 0.0177 -0.0031 +vn -0.9999 0.0164 0.0002 +vn -0.9999 0.0169 0.0032 +vn 0.0029 0.0020 -1.0000 +vn 0.0002 -0.0001 -1.0000 +vn 0.0001 0.0004 -1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0005 -0.0015 -1.0000 +vn 0.0000 -0.0016 -1.0000 +vn -0.0005 -0.0016 -1.0000 +vn 0.7297 0.6838 0.0005 +vn 0.7298 0.6837 0.0000 +vn 0.7296 0.6839 -0.0004 +vn -0.8045 0.5940 -0.0004 +vn -0.8046 0.5938 0.0000 +vn -0.8044 0.5941 0.0004 +vn 0.0007 -0.0011 1.0000 +vn 0.8479 -0.5302 0.0000 +vn 0.0013 -0.0000 1.0000 +vn -0.0001 -0.0001 1.0000 +vn 0.0033 0.0010 1.0000 +vn 0.0001 0.0004 1.0000 +vn 0.0000 -0.0016 1.0000 +vn 0.0005 -0.0016 1.0000 +vn -0.0005 -0.0014 1.0000 +vn -0.2007 0.9797 -0.0015 +vn -0.2010 0.9796 0.0000 +vn -0.2010 0.9796 -0.0016 +vn -0.9999 0.0098 0.0032 +vn -0.9999 0.0108 0.0014 +vn -1.0000 0.0092 -0.0031 +vn -0.9999 0.0102 -0.0013 +vn -1.0000 0.0086 -0.0004 +vn -0.9999 0.0103 0.0013 +vn -1.0000 0.0009 -0.0030 +vn -1.0000 0.0039 -0.0014 +vn -1.0000 0.0054 -0.0029 +vn -0.0007 0.0014 1.0000 +vn -0.0013 0.0009 -1.0000 +vn -1.0000 0.0037 0.0000 +vn -0.7102 -0.7040 0.0000 +vn -0.7737 0.6335 0.0000 +vn -0.0056 -1.0000 -0.0014 +vn -0.0050 -1.0000 0.0000 +vn -0.0058 -1.0000 0.0013 +vn -0.0904 -0.5808 -0.8090 +vn -0.1463 -0.9397 0.3090 +vn 0.9881 -0.1538 -0.0000 +vn 0.1463 0.9397 0.3090 +vn 0.0904 0.5808 -0.8090 +vn 0.1198 -0.5754 -0.8090 +vn 0.1938 -0.9311 0.3090 +vn 0.9790 0.2038 0.0000 +vn -0.1938 0.9311 0.3090 +vn -0.1198 0.5754 -0.8090 +vn 0.0750 -0.5830 -0.8090 +vn 0.1214 -0.9433 0.3090 +vn 0.9918 0.1276 -0.0000 +vn -0.1214 0.9433 0.3090 +vn -0.0750 0.5830 -0.8090 +vn 0.0560 -0.5851 -0.8090 +vn 0.0906 -0.9467 0.3090 +vn 0.9955 0.0952 0.0000 +vn -0.0906 0.9467 0.3090 +vn -0.0560 0.5851 -0.8090 +vn -0.0073 -0.5877 -0.8090 +vn -0.0118 -0.9510 0.3090 +vn 0.9999 -0.0124 0.0000 +vn 0.0118 0.9510 0.3090 +vn 0.0073 0.5877 -0.8090 +vn -0.8479 -0.5302 -0.0013 +vn -0.8473 -0.5311 0.0008 +vn 0.0013 -0.0001 -1.0000 +vn 0.9835 0.1812 0.0005 +vn 0.9835 0.1810 -0.0005 +vn 0.0005 0.0013 -1.0000 +vn 0.0031 -0.0010 -1.0000 +vn -1.0000 0.0009 0.0029 +vn -1.0000 0.0052 0.0037 +vn -1.0000 0.0052 0.0019 +vn -0.9998 0.0196 -0.0016 +vn -0.9999 0.0169 -0.0005 +vn -0.9999 0.0167 0.0005 +vn 0.0001 0.0038 -1.0000 +vn 0.0004 0.0002 -1.0000 +vn -0.0005 0.0004 -1.0000 +vn 0.0004 -0.0013 -1.0000 +vn 0.7294 0.6840 0.0000 +vn -0.8043 0.5942 -0.0000 +vn 0.0013 -0.0003 1.0000 +vn 0.0022 -0.0023 1.0000 +vn 0.0010 0.0009 1.0000 +vn -0.0005 0.0005 1.0000 +vn -0.0000 0.0001 1.0000 +vn 0.0013 0.0035 1.0000 +vn 0.0005 -0.0015 1.0000 +vn -0.1997 0.9799 -0.0008 +vn -1.0000 0.0087 0.0029 +vn -0.9999 0.0103 -0.0016 +vn -0.9999 0.0107 -0.0012 +vn -1.0000 0.0094 -0.0014 +vn -0.9999 0.0100 0.0015 +vn -1.0000 0.0007 0.0016 +vn -1.0000 0.0020 0.0032 +vn -1.0000 0.0051 0.0033 +vn -0.0015 0.0004 1.0000 +vn -0.0001 0.0015 1.0000 +vn -0.0014 -0.0007 1.0000 +vn -0.0015 -0.0003 1.0000 +vn 0.0015 0.0005 -1.0000 +vn 0.0008 0.0013 -1.0000 +vn -0.0003 0.0015 -1.0000 +vn -0.0015 0.0002 -1.0000 +vn -0.0065 -1.0000 -0.0003 +s off +f 84/157/35 86/158/35 83/159/35 +f 85/160/36 88/161/36 86/162/36 +f 87/163/37 90/164/37 88/161/37 +f 90/164/38 91/165/38 92/166/38 +f 91/165/39 83/159/39 92/166/39 +f 86/162/40 90/167/40 92/168/40 +f 94/169/41 96/170/41 93/171/41 +f 95/172/42 98/173/42 96/170/42 +f 97/174/43 100/175/43 98/176/43 +f 99/177/44 102/178/44 100/175/44 +f 94/179/45 101/180/45 97/174/45 +f 101/181/46 104/182/46 102/178/46 +f 103/183/47 93/171/47 104/182/47 +f 100/175/48 102/184/48 104/185/48 +f 106/186/49 108/187/50 105/188/50 +f 107/189/51 110/190/48 108/191/48 +f 110/192/52 105/193/52 108/194/52 +f 113/195/53 115/196/54 112/197/53 +f 107/189/55 113/195/48 109/198/48 +f 109/198/56 112/197/56 117/199/56 +f 116/200/57 118/201/58 119/202/59 +f 120/203/60 122/204/61 116/200/62 +f 116/205/63 114/206/64 113/195/65 +f 124/207/66 126/208/66 123/209/66 +f 122/210/67 123/211/68 114/206/69 +f 114/212/70 126/208/71 115/196/72 +f 121/213/73 124/214/74 122/204/75 +f 111/215/45 106/216/76 105/217/45 +f 110/192/77 117/199/77 111/218/77 +f 112/197/45 106/216/78 117/199/45 +f 115/219/79 120/220/80 112/197/81 +f 126/221/82 121/222/83 115/219/84 +f 119/223/85 129/224/86 127/225/87 +f 116/200/88 127/226/89 120/203/90 +f 106/186/91 118/201/92 107/227/93 +f 120/203/94 130/228/95 106/186/96 +f 131/229/45 132/230/45 130/231/97 +f 135/232/48 136/233/48 118/234/98 +f 132/230/99 136/233/99 135/232/99 +f 135/232/100 133/235/100 132/230/100 +f 128/236/101 131/229/101 129/224/101 +f 130/237/102 134/238/103 118/239/104 +f 137/240/105 139/241/105 140/242/105 +f 140/242/106 141/243/106 142/244/106 +f 141/243/45 144/245/45 142/244/45 +f 145/246/107 143/247/107 141/248/107 +f 144/245/108 145/249/108 146/250/108 +f 145/249/109 137/251/109 146/250/109 +f 147/252/110 149/253/110 150/254/110 +f 149/253/111 152/255/111 150/254/111 +f 152/255/45 153/256/45 154/257/45 +f 148/258/112 155/259/112 153/260/112 +f 153/256/113 156/261/113 154/257/113 +f 155/262/114 147/263/114 156/261/114 +f 158/264/115 160/265/115 157/266/115 +f 159/267/116 162/268/116 160/265/116 +f 161/269/45 164/270/45 162/268/45 +f 158/271/117 165/272/117 163/273/117 +f 163/274/118 166/275/118 164/270/118 +f 165/276/119 157/277/119 166/275/119 +f 168/278/120 170/279/120 167/280/120 +f 169/281/121 172/282/121 170/279/121 +f 172/282/45 173/283/45 174/284/45 +f 168/285/122 175/286/122 173/287/122 +f 173/283/123 176/288/123 174/284/123 +f 175/289/124 167/290/124 176/288/124 +f 177/291/125 179/292/125 180/293/125 +f 179/292/126 182/294/126 180/293/126 +f 182/294/45 183/295/45 184/296/45 +f 178/297/127 185/298/127 183/299/127 +f 184/296/128 185/300/128 186/301/128 +f 186/301/129 178/302/129 177/303/129 +f 84/157/35 85/304/35 86/158/35 +f 85/160/36 87/163/36 88/161/36 +f 87/163/37 89/305/37 90/164/37 +f 90/164/38 89/305/38 91/165/38 +f 91/165/39 84/157/39 83/159/39 +f 92/168/40 83/306/40 86/162/40 +f 86/162/40 88/161/40 90/167/40 +f 94/169/41 95/172/41 96/170/41 +f 95/172/42 97/307/42 98/173/42 +f 97/174/43 99/177/43 100/175/43 +f 99/177/44 101/181/44 102/178/44 +f 97/174/45 95/308/45 94/179/45 +f 94/179/45 103/309/45 101/180/45 +f 101/180/45 99/177/45 97/174/45 +f 101/181/46 103/183/46 104/182/46 +f 103/183/47 94/169/47 93/171/47 +f 104/185/48 93/310/48 96/311/48 +f 96/311/48 98/176/48 104/185/48 +f 98/176/48 100/175/48 104/185/48 +f 106/186/130 107/227/131 108/187/50 +f 107/189/132 109/198/48 110/190/48 +f 110/192/52 111/218/52 105/193/52 +f 113/195/53 114/212/133 115/196/134 +f 107/189/135 116/205/136 113/195/48 +f 109/198/56 113/195/56 112/197/56 +f 116/200/137 107/227/138 118/201/139 +f 120/203/140 121/213/141 122/204/142 +f 116/205/143 122/210/144 114/206/145 +f 124/207/66 125/312/66 126/208/66 +f 122/210/146 124/313/68 123/211/68 +f 114/212/147 123/209/71 126/208/71 +f 121/213/148 125/314/74 124/214/74 +f 111/215/45 117/199/45 106/216/149 +f 110/192/77 109/198/77 117/199/77 +f 112/197/45 120/220/150 106/216/151 +f 115/219/152 121/222/153 120/220/154 +f 126/221/82 125/315/82 121/222/155 +f 119/223/156 128/236/86 129/224/86 +f 116/200/157 119/202/92 127/226/158 +f 106/186/159 130/228/160 118/201/161 +f 120/203/162 127/226/163 130/228/164 +f 133/316/45 130/231/165 132/230/45 +f 130/231/166 127/317/167 131/229/45 +f 127/317/168 129/318/45 131/229/45 +f 128/319/48 119/320/169 136/233/48 +f 119/320/170 118/234/171 136/233/48 +f 118/234/172 134/321/48 135/232/48 +f 132/230/99 131/229/99 136/233/99 +f 135/232/100 134/238/100 133/235/100 +f 128/236/101 136/233/101 131/229/101 +f 130/237/173 133/235/103 134/238/103 +f 137/240/105 138/322/105 139/241/105 +f 140/242/106 139/241/106 141/243/106 +f 141/243/45 143/323/45 144/245/45 +f 141/248/107 139/324/107 138/325/107 +f 138/325/107 145/246/107 141/248/107 +f 144/245/108 143/323/108 145/249/108 +f 145/249/109 138/326/109 137/251/109 +f 147/252/110 148/327/110 149/253/110 +f 149/253/111 151/328/111 152/255/111 +f 152/255/45 151/328/45 153/256/45 +f 151/329/112 149/330/112 153/260/112 +f 149/330/112 148/258/112 153/260/112 +f 153/256/113 155/262/113 156/261/113 +f 155/262/114 148/331/114 147/263/114 +f 158/264/115 159/267/115 160/265/115 +f 159/267/116 161/269/116 162/268/116 +f 161/269/45 163/274/45 164/270/45 +f 161/332/117 159/333/117 163/273/117 +f 159/333/117 158/271/117 163/273/117 +f 163/274/118 165/276/118 166/275/118 +f 165/276/119 158/334/119 157/277/119 +f 168/278/120 169/281/120 170/279/120 +f 169/281/121 171/335/121 172/282/121 +f 172/282/45 171/335/45 173/283/45 +f 171/336/122 169/337/122 173/287/122 +f 169/337/122 168/285/122 173/287/122 +f 173/283/123 175/289/123 176/288/123 +f 175/289/124 168/338/124 167/290/124 +f 177/291/125 178/339/125 179/292/125 +f 179/292/126 181/340/126 182/294/126 +f 182/294/45 181/340/45 183/295/45 +f 181/341/127 179/342/127 183/299/127 +f 179/342/127 178/297/127 183/299/127 +f 184/296/128 183/295/128 185/300/128 +f 186/301/129 185/300/129 178/302/129 +o Based +v -0.476324 0.117178 -1.155649 +v -0.476324 0.976271 -1.155649 +v 0.480355 0.976271 -1.153979 +v 0.480355 0.117178 -1.153979 +v 1.155649 0.976271 -0.476324 +v 1.155649 0.117178 -0.476324 +v 1.153979 0.976271 0.480355 +v 1.153979 0.117178 0.480355 +v 0.476324 0.976271 1.155649 +v 0.476324 0.117178 1.155649 +v -0.480355 0.976271 1.153980 +v -0.480355 0.117178 1.153980 +v -1.155649 0.976271 0.476324 +v -1.155649 0.117178 0.476324 +v 0.795350 1.043438 0.331072 +v 0.328294 1.043438 0.796501 +v -1.153980 0.976271 -0.480355 +v -1.153980 0.117178 -0.480355 +v 0.360808 0.117178 0.875387 +v 0.874122 0.117178 0.363862 +v -0.328294 1.043438 -0.796501 +v -0.795350 1.043438 -0.331072 +v -1.093998 1.088246 -0.455387 +v -0.451566 1.088246 -1.095581 +v -0.796501 1.043438 0.328294 +v 0.331072 1.043438 -0.795350 +v 0.796501 1.043438 -0.328294 +v -0.331072 1.043438 0.795350 +v 0.451566 1.088246 1.095581 +v 1.093998 1.088246 0.455387 +v 1.093998 1.310994 0.455387 +v 0.451566 1.310995 1.095581 +v -0.455387 1.088246 1.093998 +v -1.095581 1.088246 0.451566 +v 0.455387 1.088246 -1.093998 +v 1.095581 1.088246 -0.451566 +v -0.451566 1.310994 -1.095581 +v -1.093998 1.310994 -0.455387 +v -0.668254 1.435045 -0.278167 +v -0.275833 1.435045 -0.669221 +v 0.455387 1.310994 -1.093998 +v 1.095581 1.310994 -0.451566 +v -1.095581 1.310994 0.451566 +v -0.455387 1.310995 1.093998 +v -0.278167 1.435045 0.668254 +v 0.275833 1.435045 0.669221 +v 0.436165 1.536411 1.058215 +v -0.439856 1.536411 1.056686 +v -0.669221 1.435045 0.275833 +v 0.668254 1.435045 0.278168 +v 0.278167 1.435045 -0.668254 +v 0.669221 1.435045 -0.275833 +v 1.056686 1.536411 0.439856 +v 1.058215 1.536411 -0.436165 +v 1.058215 1.707899 -0.436165 +v 1.056686 1.707899 0.439856 +v -0.436165 1.536411 -1.058215 +v 0.439856 1.536411 -1.056686 +v -1.056686 1.536411 -0.439856 +v -1.058215 1.536411 0.436165 +v -1.056686 1.707899 -0.439856 +v -1.058215 1.707899 0.436165 +v -0.741679 1.821139 0.305698 +v -0.740608 1.821139 -0.308285 +v -0.436165 1.707899 -1.058215 +v 0.439856 1.707899 -1.056686 +v -0.439856 1.707899 1.056686 +v 0.436165 1.707899 1.058215 +v 0.308285 1.821139 -0.740607 +v 0.305698 1.821139 0.741679 +v 0.740607 1.821139 0.308285 +v 0.741679 1.821139 -0.305698 +v -0.308285 1.821139 0.740608 +v -0.305698 1.821139 -0.741679 +v -0.598298 -0.513317 0.246601 +v -0.597434 -0.513317 -0.248688 +v -0.597434 -1.343910 -0.248688 +v -0.598298 -1.343910 0.246601 +v -0.874122 0.117178 -0.363862 +v -0.875387 0.117178 0.360808 +v 0.875387 0.117178 -0.360808 +v 0.363862 0.117178 -0.874122 +v -0.363862 0.117178 0.874122 +v -0.360808 0.117178 -0.875387 +v -0.248688 -1.343910 0.597434 +v -0.975065 -1.373442 0.401893 +v -0.260556 -1.373442 0.625947 +v 0.246601 -0.513317 0.598298 +v -0.248688 -0.513317 0.597434 +v 0.246601 -1.343910 0.598298 +v 0.598298 -0.513317 -0.246601 +v 0.597434 -0.513317 0.248688 +v 0.597434 -1.343910 0.248688 +v 0.598298 -1.343910 -0.246601 +v -0.246601 -0.513317 -0.598298 +v 0.248688 -0.513317 -0.597434 +v 0.248688 -1.343910 -0.597434 +v -0.246601 -1.343910 -0.598298 +v -0.401893 -1.373442 -0.975065 +v 0.260556 -1.373442 -0.625947 +v 0.026543 -3.162143 -0.063765 +v -0.026320 -3.162143 -0.063857 +v 0.401893 -1.373442 0.975065 +v 0.625947 -1.373442 0.260556 +v 0.975065 -1.373442 -0.401893 +v -0.625947 -1.373442 -0.260556 +v -0.063765 -3.162143 -0.026543 +v 0.063857 -3.162143 -0.026320 +v 0.063765 -3.162143 0.026543 +v 0.026320 -3.162143 0.063857 +v -0.026543 -3.162143 0.063765 +v -0.063857 -3.162143 0.026320 +v 0.875387 -0.493910 -0.360808 +v 0.363862 -0.493910 -0.874122 +v 0.360808 -0.493910 0.875387 +v 0.874122 -0.493910 0.363862 +v -0.875387 -0.493910 0.360808 +v -0.363862 -0.493910 0.874122 +v -0.360808 -0.493910 -0.875387 +v -0.874122 -0.493910 -0.363862 +vt 0.872281 0.534636 +vt 0.822605 0.440198 +vt 0.875179 0.442976 +vt 0.820879 0.535179 +vt 0.768775 0.440298 +vt 0.767922 0.537229 +vt 0.714298 0.442725 +vt 0.714505 0.541417 +vt 0.658847 0.447191 +vt 0.660811 0.548715 +vt 0.600787 0.455120 +vt 0.606527 0.561669 +vt 0.537111 0.472517 +vt 0.661796 0.599848 +vt 0.969815 0.546227 +vt 0.925836 0.449611 +vt 0.974197 0.459371 +vt 0.921409 0.536355 +vt 0.706920 0.410802 +vt 0.870965 0.582319 +vt 0.918532 0.621801 +vt 0.869895 0.625279 +vt 0.919468 0.579715 +vt 0.767151 0.587629 +vt 0.609953 0.614303 +vt 0.819840 0.584762 +vt 0.714307 0.592268 +vt 0.546180 0.587418 +vt 0.609488 0.614399 +vt 0.561893 0.633359 +vt 0.713660 0.637878 +vt 0.663905 0.672730 +vt 0.662170 0.645110 +vt 0.556909 0.669718 +vt 0.819372 0.584716 +vt 0.766099 0.632876 +vt 0.961927 0.579016 +vt 0.661318 0.599870 +vt 0.611495 0.657113 +vt 0.766676 0.587587 +vt 0.870515 0.582267 +vt 0.818794 0.629251 +vt 0.919502 0.647338 +vt 0.870564 0.722266 +vt 0.870950 0.652394 +vt 0.767039 0.661357 +vt 0.970789 0.617301 +vt 0.613830 0.683727 +vt 0.714777 0.666196 +vt 0.819852 0.657475 +vt 0.558526 0.700429 +vt 0.663565 0.740854 +vt 0.614306 0.808200 +vt 0.616028 0.750600 +vt 0.574708 0.758346 +vt 0.714777 0.731739 +vt 0.664222 0.740881 +vt 0.767606 0.738395 +vt 0.962072 0.696043 +vt 0.919547 0.710030 +vt 0.766904 0.738360 +vt 0.715448 0.731786 +vt 0.869882 0.722252 +vt 0.819198 0.730314 +vt 0.765363 0.804002 +vt 0.712805 0.821896 +vt 0.712657 0.800660 +vt 0.818059 0.798447 +vt 0.922396 0.776157 +vt 0.870630 0.789375 +vt 0.565344 0.801835 +vt 0.662868 0.804960 +vt 0.980256 0.749479 +vt 0.982717 0.772283 +vt 0.938005 0.838340 +vt 0.924472 0.797426 +vt 0.818967 0.820347 +vt 0.871953 0.811076 +vt 0.564639 0.823456 +vt 0.663355 0.825332 +vt 0.765636 0.825797 +vt 0.614358 0.828508 +vt 0.869617 0.140202 +vt 0.858526 0.118021 +vt 0.858526 0.086653 +vt 0.622295 0.865615 +vt 0.756986 0.865737 +vt 0.719958 0.863003 +vt 0.865806 0.853105 +vt 0.828669 0.859602 +vt 0.919235 0.839751 +vt 0.882425 0.849319 +vt 0.571106 0.862348 +vt 0.671410 0.862747 +vt 0.774657 0.865888 +vt 0.943459 0.333805 +vt 0.972733 0.254883 +vt 0.968497 0.338857 +vt 0.969761 0.429873 +vt 0.816063 0.408694 +vt 0.650647 0.414159 +vt 0.920664 0.419148 +vt 0.869210 0.411858 +vt 0.761814 0.408697 +vt 0.590519 0.419948 +vt 0.715887 0.601468 +vt 0.699719 0.537434 +vt 0.702832 0.537392 +vt 0.609944 0.311349 +vt 0.636562 0.206427 +vt 0.640004 0.307244 +vt 0.725952 0.309036 +vt 0.753103 0.213184 +vt 0.754156 0.307779 +vt 0.836980 0.312416 +vt 0.865404 0.222565 +vt 0.864198 0.313854 +vt 0.891447 0.320806 +vt 0.920554 0.236280 +vt 0.917673 0.324242 +vt 0.541839 0.312744 +vt 0.567253 0.193170 +vt 0.574805 0.303737 +vt 0.669491 0.310634 +vt 0.696260 0.212038 +vt 0.698198 0.308322 +vt 0.781694 0.308754 +vt 0.809519 0.215232 +vt 0.809563 0.308702 +vt 0.797002 0.537432 +vt 0.928156 0.546644 +vt 0.799286 0.639227 +vt 0.715423 0.471720 +vt 0.748360 0.440271 +vt 0.748360 0.446543 +vt 0.781298 0.471719 +vt 0.793889 0.537390 +vt 0.748361 0.632265 +vt 0.697436 0.639229 +vt 0.696489 0.433976 +vt 0.800231 0.433973 +vt 0.780835 0.601467 +vt 0.748361 0.626098 +vt 0.826511 0.104116 +vt 0.820289 0.109271 +vt 0.817711 0.096826 +vt 0.751735 0.893085 +vt 0.748362 0.892239 +vt 0.568565 0.546652 +vt 0.568958 0.539856 +vt 0.744926 0.174843 +vt 0.748359 0.175704 +vt 0.928221 0.533067 +vt 0.927763 0.539848 +vt 0.744990 0.893085 +vt 0.568500 0.533075 +vt 0.751791 0.174843 +vt 0.775288 0.408770 +vt 0.816031 0.339926 +vt 0.664918 0.414184 +vt 0.705494 0.339963 +vt 0.542285 0.433126 +vt 0.584963 0.338601 +vt 0.882292 0.414121 +vt 0.922784 0.354432 +vt 0.829386 0.409754 +vt 0.870098 0.344694 +vt 0.720548 0.410535 +vt 0.761039 0.339101 +vt 0.606666 0.420165 +vt 0.648114 0.339985 +vt 0.933129 0.422480 +vt 0.972879 0.368090 +vt 0.713828 0.592247 +vt 0.919042 0.579655 +vt 0.918905 0.710085 +vt 0.970969 0.646088 +vt 0.615414 0.750609 +vt 0.818497 0.730271 +vt 0.978827 0.820718 +vt 0.869617 0.064471 +vt 0.885301 0.064472 +vt 0.896391 0.086653 +vt 0.896391 0.118021 +vt 0.885301 0.140202 +vt 0.656636 0.863389 +vt 0.605953 0.865889 +vt 0.706068 0.860339 +vt 0.812036 0.862068 +vt 0.947696 0.249830 +vt 0.606502 0.210532 +vt 0.724899 0.214440 +vt 0.838185 0.221126 +vt 0.894328 0.232845 +vt 0.534287 0.202177 +vt 0.667552 0.214350 +vt 0.781651 0.215285 +vt 0.820289 0.091671 +vt 0.823934 0.091671 +vt 0.826511 0.096826 +vt 0.823934 0.109271 +vt 0.817711 0.104116 +vt 0.775256 0.340002 +vt 0.663491 0.343346 +vt 0.536729 0.351779 +vt 0.884412 0.349406 +vt 0.830274 0.342590 +vt 0.719773 0.340939 +vt 0.604134 0.345991 +vt 0.936246 0.360697 +vn 0.0017 0.0000 -1.0000 +vn 0.7083 0.0000 -0.7059 +vn 1.0000 0.0000 0.0017 +vn 0.7059 -0.0000 0.7083 +vn -0.0017 0.0000 1.0000 +vn -0.7083 0.0000 0.7059 +vn 0.1299 0.9829 0.1303 +vn -1.0000 0.0000 -0.0017 +vn -0.7059 0.0000 -0.7083 +vn -0.0000 -1.0000 0.0000 +vn -0.1047 -0.9889 -0.1050 +vn -0.1840 0.9829 -0.0003 +vn 0.1303 0.9829 -0.1299 +vn -0.0003 0.9829 0.1840 +vn -0.1299 0.9829 -0.1303 +vn 0.0003 0.9829 -0.1840 +vn 0.1840 0.9829 0.0003 +vn -0.1303 0.9829 0.1299 +vn -0.1050 -0.9889 0.1047 +vn 0.1047 -0.9889 0.1050 +vn 0.1050 -0.9889 -0.1047 +vn -0.1483 -0.9889 -0.0003 +vn -0.0003 -0.9889 0.1483 +vn 0.1483 -0.9889 0.0003 +vn 0.0003 -0.9889 -0.1483 +vn -0.1973 0.9601 -0.1980 +vn -0.0004 -0.9676 0.2523 +vn -0.1980 0.9601 0.1973 +vn 0.1973 0.9601 0.1980 +vn 0.1980 0.9601 -0.1973 +vn -0.2796 0.9601 -0.0005 +vn -0.0005 0.9601 0.2796 +vn 0.2796 0.9601 0.0005 +vn 0.0005 0.9601 -0.2796 +vn 0.2523 -0.9676 0.0004 +vn 0.0004 -0.9676 -0.2523 +vn -0.1781 -0.9676 -0.1787 +vn -0.1787 -0.9676 0.1781 +vn 0.1781 -0.9676 0.1787 +vn 0.1787 -0.9676 -0.1781 +vn -0.2523 -0.9676 -0.0004 +vn -0.3371 0.9415 -0.0006 +vn 0.0000 1.0000 0.0000 +vn -0.0006 0.9415 0.3371 +vn 0.3371 0.9415 0.0006 +vn 0.0006 0.9415 -0.3371 +vn -0.2379 0.9415 -0.2388 +vn -0.2388 0.9415 0.2379 +vn 0.2379 0.9415 0.2388 +vn 0.2388 0.9415 -0.2379 +vn -0.5094 0.6948 0.5076 +vn 0.4397 -0.3327 -0.8343 +vn 0.5076 0.6948 0.5094 +vn 0.5094 0.6948 -0.5076 +vn -0.0995 0.9937 -0.0524 +vn -0.0524 0.9937 0.0995 +vn 0.0995 0.9937 0.0524 +vn 0.0524 0.9937 -0.0995 +vn -0.5076 0.6948 -0.5094 +vn -0.6733 -0.3000 -0.6757 +vn -0.6757 -0.3000 0.6733 +vn 0.6733 -0.3000 0.6757 +vn 0.6757 -0.3000 -0.6733 +vn -0.8343 -0.3327 -0.4397 +vn -0.4397 -0.3327 0.8343 +vn 0.8343 -0.3327 0.4397 +vn 0.0495 -0.9976 -0.0494 +vn 0.0494 -0.9976 0.0495 +vn -0.0495 -0.9976 0.0494 +vn -0.0494 -0.9976 -0.0495 +vn 0.0001 -0.9976 -0.0699 +vn 0.0699 -0.9976 0.0001 +vn -0.0001 -0.9976 0.0699 +vn -0.0699 -0.9976 -0.0001 +vn -0.0337 0.9937 0.1073 +vn 0.0017 -0.3000 -0.9539 +vn 0.1073 0.9937 0.0337 +vn 0.0337 0.9937 -0.1073 +vn -0.7192 0.6948 -0.0013 +vn -0.0013 0.6948 0.7192 +vn 0.7192 0.6948 0.0013 +vn 0.0013 0.6948 -0.7192 +vn -0.1073 0.9937 -0.0337 +vn -0.8998 -0.3327 -0.2822 +vn -0.2822 -0.3327 0.8998 +vn 0.8998 -0.3327 0.2822 +vn 0.2822 -0.3327 -0.8998 +vn -0.9539 -0.3000 -0.0017 +vn -0.0017 -0.3000 0.9539 +vn 0.9539 -0.3000 0.0017 +s off +f 188/343/174 190/344/174 187/345/174 +f 189/346/175 192/347/175 190/344/175 +f 191/348/176 194/349/176 192/347/176 +f 193/350/177 196/351/177 194/349/177 +f 195/352/178 198/353/178 196/351/178 +f 197/354/179 200/355/179 198/353/179 +f 193/350/180 202/356/180 195/352/180 +f 199/357/181 204/358/181 200/359/181 +f 203/360/182 187/345/182 204/358/182 +f 196/351/183 206/361/183 194/349/183 +f 207/362/184 209/363/184 210/364/184 +f 199/357/185 208/365/185 203/360/185 +f 189/346/186 213/366/186 191/348/186 +f 195/352/187 214/367/187 197/354/187 +f 203/360/188 207/362/188 188/343/188 +f 188/343/189 212/368/189 189/346/189 +f 191/348/190 201/369/190 193/350/190 +f 199/370/191 214/371/191 211/372/191 +f 216/373/177 218/374/177 215/375/177 +f 214/371/192 220/376/192 211/372/192 +f 202/356/193 216/373/193 215/375/193 +f 212/377/194 222/378/194 213/366/194 +f 211/379/195 209/363/195 208/365/195 +f 202/380/196 219/381/196 214/367/196 +f 213/382/197 216/373/197 201/369/197 +f 207/383/198 221/384/198 212/368/198 +f 224/385/199 226/386/199 223/387/199 +f 221/384/175 228/388/175 222/378/175 +f 220/389/181 224/385/181 209/363/181 +f 215/375/178 230/390/178 219/381/178 +f 222/378/176 217/391/176 216/373/176 +f 210/364/174 227/392/174 221/384/174 +f 209/363/182 223/387/182 210/364/182 +f 219/381/179 229/393/179 220/376/179 +f 232/394/200 234/395/200 231/396/200 +f 230/390/201 235/397/201 229/393/201 +f 218/374/202 236/398/202 232/399/202 +f 227/392/203 238/400/203 228/388/203 +f 224/385/204 235/401/204 225/402/204 +f 218/374/205 231/396/205 230/390/205 +f 217/391/206 238/403/206 236/404/206 +f 227/392/207 226/405/207 237/406/207 +f 240/407/176 242/408/176 239/409/176 +f 238/403/208 239/409/208 236/404/208 +f 226/405/209 244/410/209 237/406/209 +f 226/386/210 245/411/210 243/412/210 +f 235/397/211 234/395/211 246/413/211 +f 236/398/212 233/414/212 232/399/212 +f 238/400/213 244/410/213 240/407/213 +f 225/402/214 246/415/214 245/411/214 +f 248/416/215 250/417/215 247/418/215 +f 243/412/174 252/419/174 244/410/174 +f 245/411/182 251/420/182 243/412/182 +f 234/395/179 248/421/179 246/413/179 +f 239/409/177 254/422/177 233/414/177 +f 244/410/175 241/423/175 240/407/175 +f 246/415/181 247/418/181 245/411/181 +f 233/414/178 253/424/178 234/395/178 +f 260/425/216 250/426/216 249/427/216 +f 254/422/217 259/428/217 253/424/217 +f 242/408/218 258/429/218 257/430/218 +f 252/419/219 260/431/219 255/432/219 +f 251/420/220 250/433/220 260/434/220 +f 253/424/221 249/435/221 248/421/221 +f 242/408/222 256/436/222 254/422/222 +f 252/419/223 258/437/223 241/423/223 +f 262/438/181 264/439/181 261/440/181 +f 204/358/183 266/441/183 200/359/183 +f 192/347/183 268/442/183 190/344/183 +f 198/353/183 205/443/183 196/351/183 +f 187/345/183 265/444/183 204/358/183 +f 190/344/183 270/445/183 187/345/183 +f 194/349/183 267/446/183 192/347/183 +f 200/355/183 269/447/183 198/353/183 +f 264/448/224 273/449/224 271/450/224 +f 275/451/178 276/452/178 274/453/178 +f 278/454/176 280/455/176 277/456/176 +f 282/457/174 284/458/174 281/459/174 +f 281/460/182 263/461/182 262/462/182 +f 261/463/179 271/464/179 275/465/179 +f 274/466/177 279/467/177 278/468/177 +f 277/469/175 283/470/175 282/471/175 +f 286/472/225 288/473/225 285/474/225 +f 276/475/226 290/476/226 279/477/226 +f 280/478/227 286/472/227 283/479/227 +f 264/448/228 292/480/228 272/481/228 +f 276/475/229 273/449/229 289/482/229 +f 280/478/230 290/476/230 291/483/230 +f 284/484/231 286/472/231 285/474/231 +f 284/484/232 292/480/232 263/485/232 +f 294/486/183 296/487/183 298/488/183 +f 292/480/233 288/489/233 293/490/233 +f 273/449/234 298/491/234 297/492/234 +f 290/476/235 296/493/235 295/494/235 +f 286/472/236 294/495/236 287/496/236 +f 292/480/237 298/497/237 272/481/237 +f 273/449/238 296/498/238 289/482/238 +f 290/476/239 294/499/239 291/483/239 +f 267/500/175 300/501/175 268/442/175 +f 300/501/240 277/469/240 282/471/240 +f 205/502/177 302/503/177 206/361/177 +f 302/503/241 274/466/241 278/468/241 +f 266/504/179 304/505/179 269/447/179 +f 304/505/242 261/463/242 275/465/242 +f 270/506/182 306/507/182 265/444/182 +f 306/507/243 281/460/243 262/462/243 +f 268/508/174 305/509/174 270/445/174 +f 305/509/244 282/457/244 281/459/244 +f 206/510/176 299/511/176 267/446/176 +f 299/511/245 278/454/245 277/456/245 +f 269/512/178 301/513/178 205/443/178 +f 301/513/246 275/451/246 274/453/246 +f 265/514/181 303/515/181 266/441/181 +f 303/515/247 262/438/247 261/440/247 +f 188/343/174 189/346/174 190/344/174 +f 189/346/175 191/348/175 192/347/175 +f 191/348/176 193/350/176 194/349/176 +f 193/350/177 195/352/177 196/351/177 +f 195/352/178 197/354/178 198/353/178 +f 197/354/179 199/370/179 200/355/179 +f 193/350/180 201/516/180 202/356/180 +f 199/357/181 203/360/181 204/358/181 +f 203/360/182 188/343/182 187/345/182 +f 196/351/183 205/502/183 206/361/183 +f 207/362/184 208/517/184 209/363/184 +f 199/357/185 211/379/185 208/365/185 +f 189/346/186 212/377/186 213/366/186 +f 195/352/187 202/380/187 214/367/187 +f 203/360/188 208/517/188 207/362/188 +f 188/343/189 207/383/189 212/368/189 +f 191/348/190 213/382/190 201/369/190 +f 199/370/191 197/354/191 214/371/191 +f 216/373/177 217/391/177 218/374/177 +f 214/371/192 219/381/192 220/376/192 +f 202/356/193 201/516/193 216/373/193 +f 212/377/194 221/384/194 222/378/194 +f 211/379/195 220/389/195 209/363/195 +f 202/380/196 215/375/196 219/381/196 +f 213/382/197 222/378/197 216/373/197 +f 207/383/198 210/364/198 221/384/198 +f 224/385/199 225/518/199 226/386/199 +f 221/384/175 227/392/175 228/388/175 +f 220/389/181 229/519/181 224/385/181 +f 215/375/178 218/374/178 230/390/178 +f 222/378/176 228/388/176 217/391/176 +f 210/364/174 223/387/174 227/392/174 +f 209/363/182 224/385/182 223/387/182 +f 219/381/179 230/390/179 229/393/179 +f 232/394/200 233/414/200 234/395/200 +f 230/390/201 231/520/201 235/397/201 +f 218/374/202 217/391/202 236/398/202 +f 227/392/203 237/521/203 238/400/203 +f 224/385/204 229/519/204 235/401/204 +f 218/374/205 232/394/205 231/396/205 +f 217/391/206 228/388/206 238/403/206 +f 227/392/207 223/387/207 226/405/207 +f 240/407/176 241/423/176 242/408/176 +f 238/403/208 240/407/208 239/409/208 +f 226/405/209 243/412/209 244/410/209 +f 226/386/210 225/518/210 245/411/210 +f 235/397/211 231/520/211 234/395/211 +f 236/398/212 239/409/212 233/414/212 +f 238/400/213 237/521/213 244/410/213 +f 225/402/214 235/401/214 246/415/214 +f 248/416/215 249/522/215 250/417/215 +f 243/412/174 251/420/174 252/419/174 +f 245/411/182 247/418/182 251/420/182 +f 234/395/179 253/424/179 248/421/179 +f 239/409/177 242/408/177 254/422/177 +f 244/410/175 252/419/175 241/423/175 +f 246/415/181 248/416/181 247/418/181 +f 233/414/178 254/422/178 253/424/178 +f 249/427/216 259/523/216 256/524/216 +f 256/524/216 257/525/216 249/427/216 +f 257/525/216 258/526/216 249/427/216 +f 258/526/216 255/527/216 249/427/216 +f 255/527/216 260/425/216 249/427/216 +f 254/422/217 256/528/217 259/428/217 +f 242/408/218 241/423/218 258/429/218 +f 252/419/219 251/420/219 260/431/219 +f 251/420/220 247/418/220 250/433/220 +f 253/424/221 259/529/221 249/435/221 +f 242/408/222 257/530/222 256/436/222 +f 252/419/223 255/531/223 258/437/223 +f 262/438/181 263/532/181 264/439/181 +f 204/358/183 265/514/183 266/441/183 +f 192/347/183 267/500/183 268/442/183 +f 198/353/183 269/512/183 205/443/183 +f 187/345/183 270/506/183 265/444/183 +f 190/344/183 268/508/183 270/445/183 +f 194/349/183 206/510/183 267/446/183 +f 200/355/183 266/504/183 269/447/183 +f 264/448/248 272/481/248 273/449/248 +f 275/451/178 271/533/178 276/452/178 +f 278/454/176 279/534/176 280/455/176 +f 282/457/174 283/535/174 284/458/174 +f 281/460/182 284/536/182 263/461/182 +f 261/463/179 264/537/179 271/464/179 +f 274/466/177 276/538/177 279/467/177 +f 277/469/175 280/539/175 283/470/175 +f 286/472/249 287/496/249 288/473/249 +f 276/475/250 289/482/250 290/476/250 +f 280/478/251 291/483/251 286/472/251 +f 264/448/252 263/485/252 292/480/252 +f 276/475/253 271/450/253 273/449/253 +f 280/478/254 279/477/254 290/476/254 +f 284/484/255 283/479/255 286/472/255 +f 284/484/256 285/474/256 292/480/256 +f 298/488/183 293/540/183 288/541/183 +f 288/541/183 287/542/183 294/486/183 +f 294/486/183 295/543/183 296/487/183 +f 296/487/183 297/544/183 298/488/183 +f 298/488/183 288/541/183 294/486/183 +f 292/480/257 285/474/257 288/489/257 +f 273/449/258 272/481/258 298/491/258 +f 290/476/259 289/482/259 296/493/259 +f 286/472/260 291/483/260 294/495/260 +f 292/480/261 293/490/261 298/497/261 +f 273/449/262 297/492/262 296/498/262 +f 290/476/263 295/494/263 294/499/263 +f 267/500/175 299/545/175 300/501/175 +f 300/501/240 299/545/240 277/469/240 +f 205/502/177 301/546/177 302/503/177 +f 302/503/241 301/546/241 274/466/241 +f 266/504/179 303/547/179 304/505/179 +f 304/505/242 303/547/242 261/463/242 +f 270/506/182 305/548/182 306/507/182 +f 306/507/243 305/548/243 281/460/243 +f 268/508/174 300/549/174 305/509/174 +f 305/509/244 300/549/244 282/457/244 +f 206/510/176 302/550/176 299/511/176 +f 299/511/245 302/550/245 278/454/245 +f 269/512/178 304/551/178 301/513/178 +f 301/513/246 304/551/246 275/451/246 +f 265/514/181 306/552/181 303/515/181 +f 303/515/247 306/552/247 262/438/247 diff --git a/src/main/resources/assets/hbm/models/weapons/congolake.obj b/src/main/resources/assets/hbm/models/weapons/congolake.obj new file mode 100644 index 000000000..61dba5009 --- /dev/null +++ b/src/main/resources/assets/hbm/models/weapons/congolake.obj @@ -0,0 +1,3494 @@ +# Blender v2.79 (sub 0) OBJ File: 'CongoLake.blend' +# www.blender.org +o Pump_Pummp +v 0.000000 0.935654 2.185543 +v -0.193840 1.015945 2.185543 +v -0.214852 0.994933 2.177396 +v 0.000000 0.905939 2.177396 +v -0.193840 1.403625 2.185543 +v -0.274131 1.209785 2.185543 +v -0.274131 1.209785 3.266089 +v -0.193840 1.403625 3.266089 +v 0.000000 1.483656 2.185543 +v 0.000000 1.483656 3.266089 +v 0.274131 1.209785 2.185543 +v 0.193656 1.403441 2.185543 +v 0.193656 1.403441 3.266089 +v 0.274131 1.209785 3.266089 +v 0.000000 0.935915 3.266089 +v -0.193840 1.015945 3.266089 +v 0.193656 1.016130 2.185543 +v 0.193656 1.016130 3.266089 +v 0.000000 1.513631 2.177396 +v 0.214852 1.424637 2.177396 +v 0.214852 1.424637 2.113585 +v 0.000000 1.513631 2.113585 +v -0.214852 1.424637 2.177396 +v 0.214852 0.994933 2.177396 +v -0.303846 1.209785 2.177396 +v 0.303846 1.209785 2.177396 +v -0.214852 0.994933 2.113585 +v -0.303846 1.209785 2.113585 +v -0.273445 1.209785 2.100498 +v -0.193355 1.016430 2.100498 +v -0.214852 1.424637 2.113585 +v 0.000000 0.905939 2.113585 +v 0.214852 0.994933 2.113585 +v 0.303846 1.209785 2.113585 +v -0.193355 1.403140 2.100498 +v 0.000000 1.483230 2.100498 +v 0.193355 1.403140 2.100498 +v 0.273445 1.209785 2.100498 +v 0.193355 1.016430 2.100498 +v 0.000000 0.936340 2.100498 +v 0.000000 0.905939 3.274235 +v -0.214852 0.994933 3.274235 +v 0.000000 1.513631 3.274235 +v 0.000000 1.513631 3.338046 +v 0.214852 1.424637 3.338046 +v 0.214852 1.424637 3.274235 +v -0.214852 1.424637 3.274235 +v 0.214852 0.994933 3.274235 +v -0.303846 1.209785 3.274235 +v 0.303846 1.209785 3.274235 +v -0.214852 0.994933 3.338046 +v -0.193355 1.016430 3.351134 +v -0.273445 1.209785 3.351134 +v -0.303846 1.209785 3.338046 +v -0.214852 1.424637 3.338046 +v 0.214852 0.994933 3.338046 +v 0.000000 0.905939 3.338046 +v 0.303846 1.209785 3.338046 +v -0.193355 1.403140 3.351134 +v 0.000000 0.936340 3.351134 +v 0.193355 1.016430 3.351134 +v 0.273445 1.209785 3.351134 +v 0.193355 1.403140 3.351134 +v 0.000000 1.483230 3.351134 +vt 0.270772 0.021748 +vt 0.259071 0.044520 +vt 0.258022 0.040873 +vt 0.124225 0.297698 +vt 0.000380 0.290063 +vt 0.124223 0.290059 +vt 0.000378 0.282428 +vt 0.124220 0.282425 +vt 0.124223 0.335878 +vt 0.000382 0.328240 +vt 0.124225 0.328243 +vt 0.124227 0.305336 +vt 0.000387 0.312974 +vt 0.000384 0.305339 +vt 0.124221 0.343509 +vt 0.000380 0.335874 +vt 0.000384 0.320605 +vt 0.124227 0.320609 +vt 0.000382 0.297701 +vt 0.124229 0.312974 +vt 0.301296 0.107856 +vt 0.311550 0.080842 +vt 0.315428 0.086659 +vt 0.319568 0.052066 +vt 0.317107 0.080578 +vt 0.317107 0.050600 +vt 0.254931 0.052066 +vt 0.257392 0.080578 +vt 0.254911 0.079099 +vt 0.303748 0.109442 +vt 0.316485 0.090335 +vt 0.316477 0.040872 +vt 0.301296 0.023322 +vt 0.303727 0.021748 +vt 0.278234 0.017112 +vt 0.297242 0.020803 +vt 0.277257 0.020803 +vt 0.270772 0.109430 +vt 0.259071 0.086659 +vt 0.273203 0.107856 +vt 0.278234 0.114066 +vt 0.297242 0.110375 +vt 0.296257 0.114096 +vt 0.297242 0.029029 +vt 0.278257 0.033023 +vt 0.277257 0.029029 +vt 0.311623 0.050600 +vt 0.257392 0.050600 +vt 0.262876 0.080578 +vt 0.315428 0.044519 +vt 0.297418 0.029138 +vt 0.277081 0.102040 +vt 0.277257 0.110375 +vt 0.297242 0.102149 +vt 0.273203 0.023322 +vt 0.262949 0.050336 +vt 0.308960 0.079078 +vt 0.278257 0.098155 +vt 0.265539 0.052100 +vt 0.277257 0.102149 +vt 0.296243 0.098155 +vt 0.311623 0.080578 +vt 0.308960 0.052100 +vt 0.262876 0.050600 +vt 0.265539 0.079078 +vt 0.296242 0.033023 +vt 0.189118 0.066082 +vt 0.194118 0.093837 +vt 0.187203 0.068873 +vt 0.246869 0.062649 +vt 0.244287 0.031805 +vt 0.251935 0.059501 +vt 0.246935 0.093837 +vt 0.251935 0.066083 +vt 0.253850 0.068873 +vt 0.196766 0.031805 +vt 0.187203 0.056711 +vt 0.194097 0.031747 +vt 0.246956 0.031747 +vt 0.253850 0.056711 +vt 0.222720 0.109905 +vt 0.241223 0.102404 +vt 0.224565 0.112754 +vt 0.199830 0.102404 +vt 0.218332 0.109905 +vt 0.216488 0.112754 +vt 0.216488 0.012829 +vt 0.199869 0.027151 +vt 0.199830 0.023147 +vt 0.241184 0.027151 +vt 0.224565 0.012829 +vt 0.241223 0.023147 +vt 0.203910 0.087717 +vt 0.220431 0.102305 +vt 0.201967 0.090833 +vt 0.239221 0.090631 +vt 0.244287 0.093779 +vt 0.201832 0.034953 +vt 0.189118 0.059501 +vt 0.220622 0.102305 +vt 0.241184 0.098433 +vt 0.220431 0.023279 +vt 0.218333 0.015679 +vt 0.199868 0.098433 +vt 0.239086 0.034751 +vt 0.222720 0.015679 +vt 0.194184 0.062935 +vt 0.196766 0.093779 +vt 0.197027 0.062792 +vt 0.220527 0.027543 +vt 0.244026 0.062792 +vt 0.237143 0.037867 +vt 0.220622 0.023278 +vt 0.201832 0.090631 +vt 0.239221 0.034953 +vt 0.237143 0.087717 +vt 0.246869 0.062935 +vt 0.203910 0.037867 +vt 0.194184 0.062649 +vt 0.239086 0.090833 +vt 0.201967 0.034750 +vt 0.000378 0.343505 +vt 0.297419 0.102040 +vt 0.319588 0.079099 +vt 0.296265 0.017112 +vt 0.258014 0.090336 +vt 0.311550 0.050336 +vt 0.262949 0.080842 +vt 0.277081 0.029138 +vt 0.220526 0.098041 +vn -0.1089 -0.2628 0.9587 +vn -0.9239 0.3827 0.0000 +vn -0.3816 0.9243 0.0000 +vn 0.9234 0.3837 0.0000 +vn -0.3816 -0.9243 0.0000 +vn 0.3827 0.9239 0.0000 +vn 0.9234 -0.3837 0.0000 +vn -0.9239 -0.3827 0.0000 +vn 0.3837 -0.9234 0.0002 +vn -0.1089 0.2628 0.9587 +vn 0.1083 -0.2605 0.9594 +vn 0.1080 0.2607 0.9593 +vn -0.2629 0.1089 0.9587 +vn -0.2628 -0.1089 0.9587 +vn 0.2628 -0.1089 0.9587 +vn 0.2605 0.1083 0.9594 +vn -0.3902 -0.1616 -0.9064 +vn -0.3827 0.9239 0.0000 +vn 0.3827 -0.9239 0.0000 +vn 0.9239 -0.3827 0.0000 +vn 0.9239 0.3827 0.0000 +vn -0.3827 -0.9239 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.3902 0.1616 -0.9064 +vn -0.1616 -0.3902 -0.9064 +vn 0.1616 0.3902 -0.9064 +vn -0.1616 0.3902 -0.9064 +vn 0.1616 -0.3902 -0.9064 +vn -0.3902 0.1616 -0.9064 +vn 0.3902 -0.1616 -0.9064 +vn -0.1076 -0.2607 -0.9594 +vn -0.1076 0.2607 -0.9594 +vn 0.1080 -0.2607 -0.9594 +vn 0.1080 0.2607 -0.9594 +vn -0.2628 0.1089 -0.9587 +vn -0.2628 -0.1089 -0.9587 +vn 0.2605 -0.1082 -0.9594 +vn 0.2605 0.1082 -0.9594 +vn -0.3902 -0.1616 0.9064 +vn 0.0000 0.0000 1.0000 +vn 0.3902 0.1616 0.9064 +vn -0.1616 -0.3902 0.9064 +vn 0.1616 0.3902 0.9064 +vn -0.1616 0.3902 0.9064 +vn 0.1616 -0.3902 0.9064 +vn -0.3902 0.1616 0.9064 +vn 0.3902 -0.1616 0.9064 +vn -0.3827 -0.9239 0.0002 +vn -0.1077 0.2608 0.9594 +vn 0.1089 -0.2628 0.9587 +vn -0.2628 0.1089 0.9587 +vn -0.2629 -0.1089 0.9587 +vn 0.2605 -0.1083 0.9594 +vn 0.2628 0.1089 0.9587 +vn -0.1089 -0.2628 -0.9587 +vn -0.1089 0.2628 -0.9587 +vn 0.2628 -0.1089 -0.9587 +vn 0.2628 0.1089 -0.9587 +s off +f 2/1/1 4/2/1 1/3/1 +f 6/4/2 8/5/2 5/6/2 +f 5/6/3 10/7/3 9/8/3 +f 12/9/4 14/10/4 11/11/4 +f 2/12/5 15/13/5 16/14/5 +f 9/15/6 13/16/6 12/9/6 +f 11/11/7 18/17/7 17/18/7 +f 2/12/8 7/19/8 6/4/8 +f 17/18/9 15/13/9 1/20/9 +f 20/21/6 22/22/6 19/23/6 +f 5/24/10 19/25/10 23/26/10 +f 1/27/11 24/28/11 17/29/11 +f 12/30/12 19/23/12 9/31/12 +f 5/32/13 25/33/13 6/34/13 +f 2/35/14 25/36/14 3/37/14 +f 11/38/15 24/39/15 26/40/15 +f 11/41/16 20/42/16 12/43/16 +f 28/44/17 30/45/17 27/46/17 +f 19/25/18 31/47/18 23/26/18 +f 4/48/19 33/49/19 24/28/19 +f 23/50/2 28/51/2 25/33/2 +f 24/39/20 34/52/20 26/40/20 +f 25/36/8 27/46/8 3/37/8 +f 26/53/21 21/54/21 20/42/21 +f 3/55/22 32/56/22 4/2/22 +f 36/57/23 38/58/23 40/59/23 +f 34/60/24 37/61/24 21/54/24 +f 32/56/25 30/45/25 40/59/25 +f 22/22/26 37/61/26 36/57/26 +f 22/62/27 35/63/27 31/47/27 +f 32/64/28 39/65/28 33/49/28 +f 28/51/29 35/63/29 29/66/29 +f 34/52/30 39/65/30 38/58/30 +f 41/67/31 16/68/31 15/69/31 +f 44/70/6 46/71/6 43/72/6 +f 8/73/32 43/74/32 10/75/32 +f 48/76/33 15/77/33 18/78/33 +f 43/72/34 13/79/34 10/80/34 +f 49/81/35 8/82/35 7/83/35 +f 16/84/36 49/85/36 7/86/36 +f 14/87/37 48/88/37 18/89/37 +f 46/90/38 14/91/38 13/92/38 +f 52/93/39 54/94/39 51/95/39 +f 55/96/18 43/74/18 47/97/18 +f 56/98/19 41/99/19 48/76/19 +f 54/100/2 47/101/2 49/81/2 +f 58/102/20 48/88/20 50/103/20 +f 51/95/8 49/85/8 42/104/8 +f 45/105/21 50/106/21 46/90/21 +f 57/107/22 42/108/22 41/67/22 +f 60/109/40 62/110/40 64/111/40 +f 63/112/41 58/113/41 45/105/41 +f 60/109/42 51/114/42 57/107/42 +f 44/70/43 63/112/43 45/115/43 +f 59/116/44 44/117/44 55/96/44 +f 61/118/45 57/119/45 56/98/45 +f 54/100/46 59/116/46 55/120/46 +f 58/102/47 61/118/47 56/121/47 +f 2/1/1 3/55/1 4/2/1 +f 6/4/2 7/19/2 8/5/2 +f 5/6/3 8/5/3 10/7/3 +f 12/9/4 13/16/4 14/10/4 +f 2/12/48 1/20/48 15/13/48 +f 9/15/6 10/122/6 13/16/6 +f 11/11/7 14/10/7 18/17/7 +f 2/12/8 16/14/8 7/19/8 +f 17/18/19 18/17/19 15/13/19 +f 20/21/6 21/123/6 22/22/6 +f 5/24/49 9/124/49 19/25/49 +f 1/27/50 4/48/50 24/28/50 +f 12/30/12 20/21/12 19/23/12 +f 5/32/51 23/50/51 25/33/51 +f 2/35/52 6/125/52 25/36/52 +f 11/38/53 17/126/53 24/39/53 +f 11/41/54 26/53/54 20/42/54 +f 28/44/17 29/66/17 30/45/17 +f 19/25/18 22/62/18 31/47/18 +f 4/48/19 32/64/19 33/49/19 +f 23/50/2 31/127/2 28/51/2 +f 24/39/20 33/128/20 34/52/20 +f 25/36/8 28/44/8 27/46/8 +f 26/53/21 34/60/21 21/54/21 +f 3/55/22 27/129/22 32/56/22 +f 29/66/23 35/63/23 36/57/23 +f 36/57/23 37/61/23 38/58/23 +f 38/58/23 39/65/23 40/59/23 +f 40/59/23 30/45/23 29/66/23 +f 29/66/23 36/57/23 40/59/23 +f 34/60/24 38/58/24 37/61/24 +f 32/56/25 27/129/25 30/45/25 +f 22/22/26 21/123/26 37/61/26 +f 22/62/27 36/57/27 35/63/27 +f 32/64/28 40/59/28 39/65/28 +f 28/51/29 31/127/29 35/63/29 +f 34/52/30 33/128/30 39/65/30 +f 41/67/55 42/108/55 16/68/55 +f 44/70/6 45/115/6 46/71/6 +f 8/73/56 47/97/56 43/74/56 +f 48/76/33 41/99/33 15/77/33 +f 43/72/34 46/71/34 13/79/34 +f 49/81/35 47/101/35 8/82/35 +f 16/84/36 42/104/36 49/85/36 +f 14/87/57 50/103/57 48/88/57 +f 46/90/58 50/106/58 14/91/58 +f 52/93/39 53/130/39 54/94/39 +f 55/96/18 44/117/18 43/74/18 +f 56/98/19 57/119/19 41/99/19 +f 54/100/2 55/120/2 47/101/2 +f 58/102/20 56/121/20 48/88/20 +f 51/95/8 54/94/8 49/85/8 +f 45/105/21 58/113/21 50/106/21 +f 57/107/22 51/114/22 42/108/22 +f 64/111/40 59/116/40 53/130/40 +f 53/130/40 52/93/40 60/109/40 +f 60/109/40 61/118/40 62/110/40 +f 62/110/40 63/112/40 64/111/40 +f 64/111/40 53/130/40 60/109/40 +f 63/112/41 62/110/41 58/113/41 +f 60/109/42 52/93/42 51/114/42 +f 44/70/43 64/111/43 63/112/43 +f 59/116/44 64/111/44 44/117/44 +f 61/118/45 60/109/45 57/119/45 +f 54/100/46 53/130/46 59/116/46 +f 58/102/47 62/110/47 61/118/47 +o Gun +v 0.000000 2.012847 0.929753 +v 0.000000 2.012847 1.070247 +v 0.183294 1.927366 1.070247 +v 0.183618 1.926461 0.929220 +v 0.259217 1.720997 1.070247 +v 0.257984 1.718743 0.928515 +v 0.259047 1.606972 1.070247 +v 0.257604 1.541884 0.928170 +v -0.144433 0.866083 0.913514 +v -0.144446 0.864949 1.065059 +v -0.258151 1.005157 1.070247 +v -0.257451 1.005115 0.928270 +v -0.183294 1.927366 1.070247 +v -0.259216 1.720997 1.070247 +v -0.259043 1.604334 1.070247 +v -0.258413 1.181274 1.070247 +v -0.257166 1.181723 0.927804 +v -0.257983 1.718743 0.928515 +v -0.183294 1.927366 0.929753 +v 0.257451 1.005115 0.928270 +v 0.258152 1.005157 1.070247 +v 0.144446 0.864949 1.065059 +v 0.144434 0.866083 0.913514 +v -0.257983 1.718743 -0.730968 +v -0.183294 1.927366 -0.725578 +v 0.257356 1.541884 -0.031674 +v 0.257984 1.718742 -0.031674 +v 0.213936 1.724480 -0.012808 +v 0.213408 1.585937 -0.012808 +v 0.183294 1.927366 -0.031674 +v 0.151081 1.887906 -0.012808 +v 0.000000 2.012848 -0.725578 +v 0.000000 2.012847 -0.031673 +v -0.257237 1.370989 0.927836 +v -0.256750 1.371195 -0.736357 +v 0.187757 1.476302 -0.792273 +v 0.187757 1.335660 -0.792273 +v 0.146203 1.348426 -1.160494 +v 0.146203 1.506278 -1.160494 +v 0.256751 1.371195 -0.736357 +v 0.257984 1.718742 -0.730968 +v 0.257238 1.371176 0.927836 +v 0.257167 1.182080 0.927804 +v 0.256751 1.182173 -0.736357 +v -0.145153 1.919827 -0.781493 +v -0.201659 1.715739 -0.786883 +v -0.159904 1.695958 -1.155104 +v -0.115487 1.870179 -1.149714 +v -0.061328 1.229217 -0.792273 +v -0.200726 1.335660 -0.792273 +v -0.159171 1.348426 -1.160494 +v -0.060785 1.241984 -1.160494 +v -0.061222 1.231706 -0.864069 +v -0.256750 1.182173 -0.736357 +v 0.256751 0.956724 -0.734144 +v 0.256751 0.856270 -0.117823 +v -0.256750 0.856270 -0.117823 +v -0.256750 0.956724 -0.734144 +v -0.062749 0.957195 -0.735251 +v 0.051362 0.957195 -0.735251 +v 0.256751 0.867043 0.903277 +v -0.256750 0.867043 0.903277 +v 0.258415 1.181988 1.070247 +v 0.258696 1.371157 1.070247 +v -0.258695 1.370783 1.070247 +v 0.183294 1.927366 -0.725578 +v -0.003170 1.954868 0.910839 +v 0.151354 1.887197 0.910326 +v 0.213936 1.724480 0.909649 +v -0.003170 1.954868 -0.012807 +v 0.213616 1.585937 0.909317 +v -0.159171 1.506278 -1.160494 +v -0.159904 1.390979 -1.676333 +v -0.159171 1.268371 -1.681723 +v 0.146203 1.146998 -1.681723 +v 0.146203 1.268371 -1.681723 +v -0.115487 1.524939 -1.670943 +v -0.200726 1.476302 -0.792273 +v -0.006484 2.003450 -0.781493 +v -0.006484 1.941564 -1.149714 +v 0.132185 1.919827 -0.781493 +v 0.102519 1.870179 -1.149714 +v 0.188690 1.715739 -0.786883 +v 0.146936 1.695958 -1.155104 +v -0.159904 1.204788 -1.982580 +v -0.115487 1.394869 -1.977190 +v -0.049574 1.040555 -1.681723 +v -0.159171 1.146998 -1.681723 +v -0.159171 0.816467 -1.987970 +v -0.049574 0.710024 -1.987970 +v 0.146936 1.390979 -1.676333 +v 0.102519 1.524939 -1.670943 +v 0.102519 1.394869 -1.977190 +v 0.146936 1.204788 -1.982580 +v -0.006484 1.579827 -1.670943 +v 0.102519 1.539839 -2.297575 +v 0.146936 1.349759 -2.302965 +v 0.146203 0.988688 -1.987970 +v 0.146203 1.133659 -2.308354 +v -0.006484 1.472752 -1.977190 +v -0.006484 1.617722 -2.297575 +v 0.146203 0.816467 -1.987970 +v -0.159171 0.988688 -1.987970 +v -0.159171 0.961438 -2.308354 +v -0.159171 1.133659 -2.308354 +v -0.159171 0.787673 -4.057262 +v -0.159171 0.502792 -4.057262 +v -0.115487 1.539839 -2.297575 +v -0.115487 1.525341 -4.046483 +v -0.006484 1.654172 -4.046483 +v -0.159904 1.349759 -2.302965 +v -0.159904 1.210917 -4.051873 +v -0.049574 0.854995 -2.308354 +v 0.146203 0.961438 -2.308354 +v -0.159904 1.210283 -4.199338 +v -0.159171 0.787039 -4.204728 +v 0.146203 0.787673 -4.057262 +v 0.146203 0.502792 -4.057262 +v 0.146203 0.502158 -4.204728 +v 0.146203 0.787039 -4.204728 +v -0.115487 1.524706 -4.193949 +v 0.102519 1.525341 -4.046483 +v 0.146936 1.210917 -4.051873 +v -0.049574 0.396350 -4.057262 +v -0.083889 1.075730 -0.736357 +v 0.146936 1.210283 -4.199338 +v 0.102519 1.524706 -4.193949 +v 0.036802 0.395715 -4.204728 +v -0.006484 1.653537 -4.193949 +v -0.159171 0.502158 -4.204728 +v -0.049574 0.395715 -4.204728 +v 0.036802 0.396350 -4.057262 +v 0.071739 1.075730 -0.736357 +v 0.048556 1.229217 -0.792273 +v 0.048450 1.231706 -0.864069 +v 0.048450 0.960438 -0.864069 +v -0.061222 0.960438 -0.864069 +v 0.036802 0.854995 -2.308354 +v 0.036802 0.710024 -1.987970 +v 0.048013 1.241984 -1.160494 +v 0.036802 1.040555 -1.681723 +v 0.048556 0.958818 -0.792273 +v 0.048556 0.889021 -0.793779 +v 0.048450 0.890640 -0.865575 +v -0.061222 0.890640 -0.865575 +v -0.061328 0.958818 -0.792273 +v 0.050594 0.887869 -0.737864 +v -0.062623 0.887869 -0.737864 +v -0.062623 0.859409 -0.738478 +v 0.050594 0.859409 -0.738478 +v 0.048556 0.860561 -0.794393 +v -0.061328 0.889021 -0.793779 +v -0.061328 0.860561 -0.794393 +v -0.061222 0.862180 -0.866189 +v 0.048450 0.862180 -0.866189 +v 0.048450 0.897640 -1.189937 +v -0.061222 0.897640 -1.189937 +v -0.061222 0.869180 -1.190551 +v -0.061222 0.909566 -1.231055 +v -0.061222 0.883039 -1.241383 +v 0.048450 0.869180 -1.190551 +v 0.048450 0.909566 -1.231055 +v 0.048450 0.883039 -1.241383 +v 0.048450 0.923721 -1.286653 +v 0.048450 0.939453 -1.262928 +v -0.061222 0.923721 -1.286653 +v -0.061222 0.939453 -1.262928 +v -0.061222 0.990369 -1.269143 +v -0.061222 0.991506 -1.297587 +v 0.048450 0.990369 -1.269143 +v 0.048450 0.991506 -1.297587 +v -0.027604 1.183662 -1.022258 +v -0.027604 1.241078 -1.015614 +v -0.027604 1.241078 -1.073029 +v -0.027604 1.183662 -1.079673 +v 0.014636 1.241078 -1.073029 +v 0.014636 1.183662 -1.079673 +v 0.014636 1.241078 -1.015614 +v 0.014636 1.183662 -1.022258 +v 0.014636 1.135947 -1.081794 +v -0.027604 1.135947 -1.081794 +v 0.014636 1.135947 -1.031008 +v -0.027604 1.135947 -1.031008 +v -0.027604 1.073735 -1.037243 +v 0.014636 1.073735 -1.037243 +v 0.014636 1.073735 -1.077975 +v 0.014636 1.020584 -1.027559 +v 0.014636 1.020584 -1.064708 +v -0.027604 1.073735 -1.077975 +v 0.008448 0.973270 -0.999595 +v 0.008448 0.955554 -1.018985 +v -0.027604 1.020584 -1.064708 +v -0.027604 1.020584 -1.027559 +v -0.021416 0.973270 -0.999595 +v -0.014341 0.956268 -0.989678 +v 0.001372 0.956268 -0.989678 +v -0.021416 0.955554 -1.018985 +v -0.014341 0.946947 -0.999880 +v 0.001372 0.946947 -0.999880 +v -0.259043 1.604334 1.840350 +v 0.259047 1.606972 1.840350 +v -0.259043 1.604334 2.018898 +v 0.259047 1.606972 2.018898 +v 0.259030 1.580560 1.803183 +v 0.259030 1.580560 1.107413 +v -0.258712 1.397895 1.107085 +v -0.259026 1.580701 1.107085 +v 0.258696 1.371157 1.840350 +v -0.258695 1.370783 1.840350 +v -0.258695 1.370783 2.018898 +v 0.258696 1.371157 2.018898 +v 0.258713 1.397570 1.803183 +v 0.258713 1.397570 1.107413 +v 0.220014 1.397694 1.107413 +v 0.220014 1.397694 1.803183 +v -0.259026 1.580701 1.803511 +v -0.221491 1.580821 1.107085 +v -0.221491 1.580821 1.803511 +v -0.258712 1.397895 1.803511 +v -0.221177 1.398014 1.107085 +v -0.221177 1.398014 1.803511 +v 0.220331 1.580684 1.107413 +v 0.220331 1.580684 1.803183 +v 0.268254 1.513106 -0.078803 +v 0.268254 0.963807 -0.078803 +v 0.268254 0.963807 -0.628102 +v 0.268254 1.513106 -0.628102 +v 0.121073 1.490289 3.430747 +v 0.326188 1.490289 3.430747 +v 0.326188 1.452264 3.446498 +v 0.121073 1.452264 3.446498 +v 0.326188 1.436513 3.484523 +v 0.121073 1.436513 3.484523 +v 0.326188 1.452264 3.522549 +v 0.121073 1.452264 3.522549 +v 0.326188 1.490289 3.538300 +v 0.121073 1.490289 3.538300 +v 0.326188 1.528315 3.522549 +v 0.121073 1.528315 3.522549 +v 0.326188 1.544065 3.484523 +v 0.121073 1.544065 3.484523 +v 0.326188 1.528315 3.446498 +v 0.121073 1.528315 3.446498 +v 0.406256 1.125653 3.483772 +v 0.372781 1.206173 3.302696 +v 0.405798 1.241512 3.327720 +v 0.434647 1.172119 3.483772 +v 0.377865 1.264868 3.368210 +v 0.399229 1.213480 3.483772 +v 0.327584 1.243964 3.368210 +v 0.348947 1.192576 3.483772 +v 0.324441 1.207689 3.327720 +v 0.353290 1.138296 3.483772 +v 0.297563 1.387101 3.257974 +v 0.340975 1.397436 3.289178 +v 0.329861 1.380335 3.339669 +v 0.279580 1.359431 3.339669 +v 0.259618 1.363613 3.289178 +v 0.237243 1.532194 3.383282 +v 0.288991 1.522477 3.397170 +v 0.291365 1.472933 3.419640 +v 0.241084 1.452029 3.419640 +v 0.207634 1.488654 3.397170 +v 0.237243 1.532194 3.584262 +v 0.288991 1.522477 3.570374 +v 0.291365 1.472933 3.547904 +v 0.241084 1.452029 3.547904 +v 0.207634 1.488654 3.570374 +v 0.297563 1.387101 3.709570 +v 0.340975 1.397436 3.678366 +v 0.329861 1.380335 3.627876 +v 0.279580 1.359431 3.627876 +v 0.259618 1.363613 3.678366 +v 0.372781 1.206173 3.664848 +v 0.405798 1.241512 3.639824 +v 0.377865 1.264868 3.599334 +v 0.327584 1.243964 3.599334 +v 0.324441 1.207689 3.639824 +v 0.000000 1.983355 1.070358 +v 0.156272 1.918625 1.070358 +v 0.221002 1.762353 1.070358 +v 0.156272 1.606081 1.070358 +v 0.000000 1.541351 1.070358 +v -0.156272 1.606081 1.070358 +v -0.221002 1.762353 1.070358 +v 0.000000 1.541351 3.018507 +v 0.156272 1.606081 3.018507 +v 0.156272 1.606081 3.391006 +v 0.000000 1.541351 3.391006 +v -0.156272 1.918625 1.070358 +v 0.156272 1.918625 3.391006 +v 0.000000 1.983355 3.391006 +v 0.000000 2.025926 3.417953 +v 0.186374 1.948727 3.417953 +v -0.156272 1.918625 3.018507 +v -0.221002 1.762353 3.018507 +v -0.221002 1.762353 3.391006 +v -0.156272 1.918625 3.391006 +v 0.221002 1.762353 3.018507 +v 0.156272 1.918625 3.018507 +v 0.221002 1.762353 3.391006 +v -0.156272 1.606081 3.018507 +v -0.156272 1.606081 3.391006 +v 0.000000 1.983355 3.018507 +v -0.186374 1.948727 3.417953 +v -0.263573 1.762353 3.417953 +v -0.263573 1.762353 3.553212 +v -0.186374 1.948727 3.553212 +v -0.186374 1.575979 3.417953 +v 0.186374 1.575979 3.417953 +v 0.000000 1.495447 3.414135 +v 0.263573 1.762353 3.417953 +v 0.263573 1.762353 3.553212 +v 0.186374 1.948727 3.553212 +v 0.156272 1.918625 3.580159 +v 0.221002 1.762353 3.580159 +v 0.000000 1.495447 3.558366 +v -0.186374 1.575979 3.553212 +v 0.186374 1.575979 3.553212 +v 0.000000 2.025926 3.553212 +v 0.000000 1.983355 3.580159 +v -0.156272 1.918625 3.580159 +v -0.156272 1.918625 4.205390 +v 0.000000 1.983355 4.205390 +v -0.221002 1.762353 3.580159 +v 0.000000 1.541351 3.580159 +v -0.156272 1.606081 3.580159 +v 0.156272 1.606081 3.580159 +v 0.000000 2.017086 4.028187 +v 0.136534 1.975546 4.028187 +v 0.126058 1.959349 4.031190 +v -0.156272 1.606081 4.205390 +v 0.000000 1.541351 4.205390 +v 0.000000 1.568728 4.205390 +v -0.136914 1.625439 4.205390 +v -0.221002 1.762353 4.205390 +v 0.156272 1.606081 4.205390 +v 0.156272 1.918625 4.205390 +v 0.221002 1.762353 4.205390 +v -0.136914 1.899267 4.205390 +v -0.193625 1.762353 4.205390 +v -0.193625 1.762353 3.654342 +v -0.136914 1.899267 3.654342 +v 0.193625 1.762353 4.205390 +v 0.136914 1.625439 4.205390 +v 0.000000 1.955978 4.205390 +v 0.136914 1.899267 4.205390 +v -0.136914 1.625439 3.654342 +v 0.000000 1.568728 3.654342 +v 0.136914 1.625439 3.654342 +v 0.193625 1.762353 3.654342 +v 0.136914 1.899267 3.654342 +v 0.000000 1.955978 3.654342 +v -0.156124 1.365909 1.034639 +v 0.000000 1.430577 1.034639 +v 0.156124 1.365909 1.034639 +v 0.220792 1.209785 1.034639 +v 0.156124 1.053662 1.034639 +v 0.000000 0.988993 1.034639 +v -0.156124 1.053662 1.034639 +v -0.220792 1.209785 1.034639 +v 0.000000 1.430367 3.383215 +v -0.155975 1.365760 3.383215 +v -0.199637 1.409422 3.410316 +v -0.220582 1.209785 3.383215 +v 0.155975 1.365760 3.383215 +v 0.199637 1.409422 3.410316 +v 0.155975 1.053810 3.383215 +v 0.220582 1.209785 3.383215 +v 0.282329 1.209785 3.410316 +v 0.199637 1.010148 3.410316 +v 0.000000 0.989203 3.383215 +v 0.000000 0.927456 3.410316 +v -0.155975 1.053810 3.383215 +v -0.199637 1.010148 3.410316 +v -0.282329 1.209785 3.410316 +v -0.199637 1.010148 3.563519 +v -0.282329 1.209785 3.563519 +v -0.199637 1.409422 3.563519 +v 0.199637 1.010148 3.563519 +v 0.000000 0.927456 3.563519 +v 0.199637 1.409422 3.563519 +v 0.282329 1.209785 3.563519 +v 0.157156 1.052629 3.583857 +v 0.000000 0.987533 3.583857 +v 0.157156 1.366942 3.583857 +v 0.222253 1.209785 3.583857 +v -0.222253 1.209785 3.583857 +v -0.157156 1.366942 3.583857 +v -0.157156 1.052629 3.583857 +v 0.000000 1.432038 3.583857 +v 0.000000 1.432038 4.108382 +v 0.157156 1.366942 4.108382 +v -0.222253 1.209785 4.108382 +v -0.157156 1.052629 4.108382 +v -0.170965 1.038821 4.118903 +v -0.241780 1.209785 4.118903 +v 0.222253 1.209785 4.108382 +v 0.157156 1.052629 4.108382 +v 0.000000 0.987533 4.108382 +v -0.157156 1.366942 4.108382 +v -0.170965 1.380750 4.118903 +v -0.241780 1.209785 4.156476 +v -0.170965 1.380750 4.156476 +v 0.000000 0.968005 4.118903 +v 0.000000 1.451566 4.118903 +v 0.170965 1.380750 4.118903 +v 0.241780 1.209785 4.118903 +v 0.170965 1.038821 4.118903 +v 0.170965 1.038821 4.156476 +v 0.241780 1.209785 4.156476 +v 0.208075 1.209785 4.165493 +v 0.147131 1.062654 4.165493 +v -0.170965 1.038821 4.156476 +v 0.000000 0.968005 4.156476 +v 0.000000 1.451566 4.156476 +v 0.170965 1.380750 4.156476 +v -0.147131 1.356917 4.165493 +v -0.208075 1.209785 4.165493 +v -0.147131 1.062654 4.165493 +v 0.000000 1.001710 4.165493 +v 0.147131 1.356917 4.165493 +v 0.000000 1.417861 4.165493 +v 0.000000 1.994179 4.031190 +v -0.136534 1.975546 4.028187 +v -0.126058 1.959349 4.031190 +v -0.156272 1.606081 2.843204 +v -0.221002 1.762353 2.843204 +v -0.239682 1.762353 3.000497 +v -0.169481 1.592872 3.000497 +v 0.221002 1.762353 2.843204 +v 0.156272 1.606081 2.843204 +v 0.169481 1.592872 3.000497 +v 0.239682 1.762353 3.000497 +v 0.000000 1.983355 2.843204 +v 0.156272 1.918625 2.843204 +v 0.167155 1.934229 3.000244 +v 0.000569 2.004398 3.000244 +v -0.156272 1.918625 2.843204 +v -0.167155 1.934229 3.000244 +v 0.000000 1.541351 2.843204 +v 0.000000 1.522671 3.000497 +v 0.169481 1.592872 2.860280 +v 0.000000 1.522671 2.860280 +v -0.239682 1.762353 2.860280 +v -0.167155 1.934229 2.865422 +v 0.167155 1.934229 2.865422 +v 0.239682 1.762353 2.860280 +v -0.169481 1.592872 2.860280 +v 0.000569 2.004398 2.865422 +v -0.128183 2.091560 2.999992 +v -0.128183 2.091560 2.870565 +v -0.000564 2.091560 2.870565 +v 0.128183 2.091560 2.870565 +v 0.128183 2.091560 2.999992 +v -0.000758 2.091560 2.999992 +v -0.000758 2.040556 3.941854 +v -0.000758 2.038297 3.983544 +v -0.128183 2.038297 3.983544 +v -0.103443 2.040556 3.941854 +v -0.128183 2.117034 2.999992 +v -0.000758 2.117034 2.999992 +v -0.000564 2.117035 2.870565 +v -0.128183 2.117035 2.870565 +v 0.128183 2.117034 2.999992 +v 0.128183 2.117035 2.870565 +v -0.000758 2.113045 3.073697 +v -0.103443 2.113045 3.073697 +v -0.000758 2.063745 3.984738 +v -0.128183 2.063745 3.984738 +v 0.128183 2.038297 3.983544 +v 0.128183 2.063745 3.984738 +v -0.000758 2.087663 3.071927 +v 0.103443 2.087663 3.071927 +v 0.103443 2.065968 3.943648 +v -0.000758 2.065968 3.943648 +v -0.103443 2.087663 3.071927 +v -0.103443 2.065968 3.943648 +v 0.103443 2.040556 3.941854 +v 0.103443 2.113045 3.073697 +v -0.101627 1.929570 4.174595 +v -0.101627 2.046870 4.174595 +v -0.101627 2.046870 4.045168 +v -0.101627 1.929570 4.045168 +v -0.060619 2.046870 4.045168 +v 0.001267 2.046870 4.045168 +v 0.001138 1.971165 4.045168 +v 0.101627 1.929570 4.045168 +v 0.101627 2.046870 4.045168 +v 0.101627 2.046870 4.174595 +v 0.101627 1.929570 4.174595 +v 0.056925 2.046870 4.174595 +v 0.001287 2.046870 4.174595 +v 0.001138 1.971165 4.174595 +v 0.056926 2.046870 4.045168 +v 0.056926 2.055243 4.045168 +v 0.101627 2.083730 4.045168 +v -0.060365 2.046870 4.174595 +v -0.060365 2.055243 4.174595 +v -0.101627 2.083730 4.174595 +v -0.101627 2.083730 4.045168 +v 0.101627 2.083730 4.174595 +v -0.060365 2.065117 4.148927 +v -0.060365 2.065117 4.070836 +v -0.075271 2.144081 4.070836 +v -0.075271 2.144081 4.148927 +v 0.074745 2.144397 4.070836 +v 0.056926 2.065117 4.070836 +v 0.056926 2.065117 4.148927 +v 0.074745 2.144397 4.148927 +v -0.098636 2.129495 4.154779 +v -0.098636 2.129495 4.064983 +v 0.098636 2.129495 4.064983 +v 0.098636 2.129495 4.154779 +v -0.060365 2.055243 4.045168 +v 0.056926 2.055243 4.174595 +v -0.059365 1.189290 -1.312787 +v -0.059465 1.198896 -1.284075 +v 0.046693 1.198896 -1.284075 +v 0.046593 1.189290 -1.312787 +vt 0.314366 0.961863 +vt 0.294812 0.975635 +vt 0.294657 0.961939 +vt 0.273456 0.975731 +vt 0.273229 0.961965 +vt 0.262381 0.975737 +vt 0.256051 0.961941 +vt 0.125608 0.749505 +vt 0.097336 0.727764 +vt 0.125610 0.725602 +vt 0.168440 0.696871 +vt 0.168440 0.716405 +vt 0.109231 0.716275 +vt 0.127314 0.962819 +vt 0.110436 0.977071 +vt 0.110100 0.963138 +vt 0.056961 0.977985 +vt 0.034809 0.964084 +vt 0.057052 0.963821 +vt 0.034870 0.978067 +vt 0.014902 0.964099 +vt 0.199446 0.727764 +vt 0.171174 0.749505 +vt 0.171172 0.725602 +vt 0.035307 0.807355 +vt 0.010838 0.597288 +vt 0.017874 0.618909 +vt 0.015372 0.630834 +vt 0.013899 0.556050 +vt 0.009136 0.552343 +vt 0.015271 0.870213 +vt 0.091632 0.963445 +vt 0.055268 0.806356 +vt 0.088357 0.802601 +vt 0.013764 0.139760 +vt 0.049854 0.124762 +vt 0.048730 0.157936 +vt 0.271875 0.803748 +vt 0.255984 0.868690 +vt 0.239398 0.800845 +vt 0.221112 0.961929 +vt 0.221070 0.800394 +vt 0.043269 0.233050 +vt 0.010790 0.189172 +vt 0.008714 0.234441 +vt 0.040214 0.045310 +vt 0.041285 0.072586 +vt 0.016409 0.072577 +vt 0.106773 0.801728 +vt 0.188797 0.799828 +vt 0.189454 0.860441 +vt 0.168859 0.799931 +vt 0.203932 0.961982 +vt 0.190529 0.959560 +vt 0.139611 0.860982 +vt 0.140686 0.960100 +vt 0.179637 0.960676 +vt 0.191879 0.973114 +vt 0.221110 0.975759 +vt 0.239478 0.975750 +vt 0.239470 0.961920 +vt 0.091859 0.977480 +vt 0.068629 0.977845 +vt 0.151599 0.960980 +vt 0.139629 0.973680 +vt 0.295488 0.867180 +vt 0.309465 0.800651 +vt 0.314455 0.865726 +vt 0.099265 0.557700 +vt 0.088674 0.528893 +vt 0.091711 0.518805 +vt 0.273373 0.868342 +vt 0.291054 0.804240 +vt 0.137874 0.461278 +vt 0.058604 0.420707 +vt 0.138976 0.425869 +vt 0.064584 0.393192 +vt 0.133379 0.393550 +vt 0.134776 0.484662 +vt 0.059414 0.457228 +vt 0.017282 0.517402 +vt 0.096715 0.601134 +vt 0.094272 0.561212 +vt 0.090072 0.620005 +vt 0.092216 0.630834 +vt 0.019880 0.528535 +vt 0.093170 0.596621 +vt 0.048521 0.157264 +vt 0.099086 0.151375 +vt 0.101118 0.125172 +vt 0.100614 0.125701 +vt 0.096976 0.181286 +vt 0.045608 0.196565 +vt 0.014112 0.138899 +vt 0.044187 0.260468 +vt 0.009380 0.268657 +vt 0.010839 0.235095 +vt 0.047070 0.260910 +vt 0.012396 0.269226 +vt 0.011742 0.189926 +vt 0.045438 0.233562 +vt 0.050505 0.124018 +vt 0.015811 0.109271 +vt 0.046833 0.197155 +vt 0.129115 0.163540 +vt 0.092797 0.074820 +vt 0.123836 0.051890 +vt 0.125752 0.076448 +vt 0.099258 0.151849 +vt 0.129673 0.163858 +vt 0.097922 0.181697 +vt 0.098488 0.207838 +vt 0.102467 0.099218 +vt 0.100128 0.208179 +vt 0.086379 0.050726 +vt 0.161380 0.154835 +vt 0.130349 0.120529 +vt 0.161569 0.110452 +vt 0.161572 0.193930 +vt 0.129818 0.193381 +vt 0.101290 0.099804 +vt 0.131373 0.074271 +vt 0.130916 0.120113 +vt 0.133141 0.073753 +vt 0.128491 0.193132 +vt 0.134570 0.037458 +vt 0.163321 0.074493 +vt 0.324006 0.068216 +vt 0.325470 0.009804 +vt 0.159015 0.221209 +vt 0.319147 0.219954 +vt 0.160154 0.193815 +vt 0.162323 0.110144 +vt 0.321290 0.154865 +vt 0.153411 0.072905 +vt 0.160980 0.154628 +vt 0.161642 0.074882 +vt 0.136981 0.357463 +vt 0.167260 0.372515 +vt 0.136981 0.373289 +vt 0.088568 0.357595 +vt 0.068186 0.373289 +vt 0.068186 0.357463 +vt 0.189977 0.371792 +vt 0.167260 0.356690 +vt 0.189978 0.355966 +vt 0.321611 0.219338 +vt 0.161143 0.221263 +vt 0.322066 0.154397 +vt 0.321076 0.041804 +vt 0.323456 0.071128 +vt 0.322534 0.067945 +vt 0.250154 0.792851 +vt 0.273221 0.795467 +vt 0.091316 0.794644 +vt 0.293066 0.797695 +vt 0.016873 0.804883 +vt 0.033786 0.801329 +vt 0.077381 0.795722 +vt 0.155566 0.788575 +vt 0.138639 0.778486 +vt 0.158066 0.772764 +vt 0.054011 0.798812 +vt 0.236326 0.792079 +vt 0.202051 0.371732 +vt 0.202051 0.355906 +vt 0.116599 0.357595 +vt 0.116599 0.373421 +vt 0.015190 0.355966 +vt 0.003116 0.371732 +vt 0.003116 0.355906 +vt 0.037907 0.372515 +vt 0.037907 0.356690 +vt 0.015190 0.371792 +vt 0.105668 0.357644 +vt 0.105668 0.373470 +vt 0.099489 0.357644 +vt 0.088568 0.373421 +vt 0.099489 0.373470 +vt 0.188632 0.777943 +vt 0.167878 0.772654 +vt 0.181394 0.762326 +vt 0.294067 0.647961 +vt 0.303167 0.614199 +vt 0.303167 0.647961 +vt 0.153583 0.091790 +vt 0.321316 0.117408 +vt 0.153648 0.123361 +vt 0.323510 0.088039 +vt 0.124127 0.112592 +vt 0.125603 0.089619 +vt 0.041308 0.093532 +vt 0.086689 0.119252 +vt 0.039823 0.120997 +vt 0.273195 0.559127 +vt 0.289603 0.553152 +vt 0.290452 0.556695 +vt 0.091482 0.092156 +vt 0.016236 0.091777 +vt 0.281554 0.625218 +vt 0.271561 0.618402 +vt 0.294030 0.616776 +vt 0.170751 0.788410 +vt 0.193727 0.919817 +vt 0.180297 0.708701 +vt 0.193725 0.708701 +vt 0.265671 0.609576 +vt 0.271448 0.609440 +vt 0.294067 0.614199 +vt 0.303167 0.605510 +vt 0.293952 0.607827 +vt 0.236000 0.625228 +vt 0.245972 0.618420 +vt 0.245995 0.625548 +vt 0.223524 0.616863 +vt 0.246072 0.609463 +vt 0.254076 0.629043 +vt 0.263451 0.625557 +vt 0.263443 0.629089 +vt 0.265727 0.618518 +vt 0.263353 0.618566 +vt 0.265808 0.625494 +vt 0.254047 0.637653 +vt 0.263488 0.637699 +vt 0.251845 0.609578 +vt 0.251796 0.618515 +vt 0.251734 0.625465 +vt 0.157783 0.800051 +vt 0.138954 0.800369 +vt 0.254084 0.625511 +vt 0.254163 0.618559 +vt 0.263310 0.609597 +vt 0.254206 0.609594 +vt 0.294067 0.605510 +vt 0.303167 0.565131 +vt 0.251853 0.569232 +vt 0.253156 0.562875 +vt 0.254213 0.569233 +vt 0.263295 0.569233 +vt 0.265655 0.569230 +vt 0.266567 0.564085 +vt 0.267638 0.557134 +vt 0.268986 0.560040 +vt 0.294067 0.565131 +vt 0.303167 0.559802 +vt 0.264350 0.562875 +vt 0.263295 0.562688 +vt 0.248520 0.560043 +vt 0.244268 0.555593 +vt 0.249867 0.557136 +vt 0.254213 0.562688 +vt 0.263295 0.555128 +vt 0.250939 0.564087 +vt 0.294067 0.559802 +vt 0.303167 0.554364 +vt 0.294067 0.554364 +vt 0.303167 0.547980 +vt 0.273237 0.555588 +vt 0.254213 0.555128 +vt 0.263295 0.546600 +vt 0.263141 0.521961 +vt 0.254213 0.546600 +vt 0.254367 0.521961 +vt 0.303021 0.521961 +vt 0.294067 0.547980 +vt 0.294213 0.521961 +vt 0.227901 0.553165 +vt 0.244311 0.559132 +vt 0.227053 0.556709 +vt 0.322830 0.524494 +vt 0.328472 0.528894 +vt 0.323984 0.531427 +vt 0.330014 0.547183 +vt 0.325218 0.552440 +vt 0.325218 0.547183 +vt 0.328472 0.540213 +vt 0.322830 0.544613 +vt 0.323984 0.537680 +vt 0.329035 0.552477 +vt 0.324239 0.557734 +vt 0.324239 0.552477 +vt 0.321255 0.547183 +vt 0.320214 0.557734 +vt 0.315026 0.552477 +vt 0.320214 0.552477 +vt 0.319165 0.526989 +vt 0.319165 0.542118 +vt 0.320185 0.535986 +vt 0.314282 0.539490 +vt 0.310555 0.534572 +vt 0.315100 0.534572 +vt 0.321255 0.552440 +vt 0.316083 0.547183 +vt 0.320185 0.533121 +vt 0.314282 0.529617 +vt 0.309808 0.539058 +vt 0.304377 0.538124 +vt 0.310555 0.534535 +vt 0.309808 0.530049 +vt 0.315026 0.557734 +vt 0.310543 0.552477 +vt 0.316083 0.552440 +vt 0.311538 0.547183 +vt 0.305983 0.556964 +vt 0.304350 0.554128 +vt 0.305983 0.553247 +vt 0.304377 0.530983 +vt 0.305407 0.528102 +vt 0.311538 0.552440 +vt 0.304942 0.547953 +vt 0.303203 0.554128 +vt 0.304350 0.556083 +vt 0.303203 0.556083 +vt 0.303203 0.550789 +vt 0.303203 0.548833 +vt 0.305407 0.541005 +vt 0.303203 0.540240 +vt 0.303203 0.528867 +vt 0.303745 0.527351 +vt 0.009347 0.553762 +vt 0.097357 0.642576 +vt 0.009348 0.642577 +vt 0.107587 0.829304 +vt 0.189150 0.799526 +vt 0.189194 0.829363 +vt 0.107632 0.799414 +vt 0.189109 0.771635 +vt 0.107673 0.771635 +vt 0.097357 0.553762 +vt 0.117762 0.642576 +vt 0.093110 0.647104 +vt 0.013595 0.647105 +vt 0.013557 0.518373 +vt 0.013557 0.549711 +vt 0.009348 0.683002 +vt 0.097358 0.771695 +vt 0.009348 0.771696 +vt 0.144454 0.771725 +vt 0.117763 0.683001 +vt 0.144712 0.682911 +vt 0.097357 0.513726 +vt 0.117762 0.553762 +vt 0.097357 0.683001 +vt 0.117763 0.771695 +vt 0.280600 0.402906 +vt 0.283604 0.483938 +vt 0.280600 0.483938 +vt 0.013595 0.678474 +vt 0.093110 0.678473 +vt 0.300859 0.402771 +vt 0.303774 0.483879 +vt 0.300859 0.483879 +vt 0.093147 0.549711 +vt 0.093147 0.518373 +vt 0.009347 0.513726 +vt 0.317967 0.402771 +vt 0.303774 0.402771 +vt 0.303778 0.398399 +vt 0.320881 0.483879 +vt 0.320881 0.402771 +vt 0.303778 0.488250 +vt 0.317967 0.483879 +vt 0.317971 0.488250 +vt 0.297812 0.402906 +vt 0.283604 0.402906 +vt 0.297808 0.488445 +vt 0.297812 0.483938 +vt 0.300817 0.483938 +vt 0.300817 0.402906 +vt 0.297808 0.398399 +vt 0.283600 0.398399 +vt 0.080480 0.350713 +vt 0.103363 0.346034 +vt 0.103172 0.373989 +vt 0.333333 -0.000000 +vt 1.000000 1.000000 +vt 0.333333 1.000000 +vt 0.195007 0.381137 +vt 0.201745 0.431502 +vt 0.195007 0.431502 +vt 0.201745 0.381137 +vt 0.208482 0.431502 +vt 0.154582 0.381137 +vt 0.161320 0.431502 +vt 0.154582 0.431502 +vt 0.161319 0.381137 +vt 0.168057 0.431502 +vt 0.168057 0.381137 +vt 0.174795 0.431502 +vt 0.174795 0.381137 +vt 0.181532 0.431502 +vt 0.231060 0.416867 +vt 0.226296 0.424014 +vt 0.219558 0.399615 +vt 0.181532 0.381137 +vt 0.188270 0.431502 +vt 0.188270 0.381137 +vt 0.187482 0.431554 +vt 0.156855 0.444483 +vt 0.154582 0.431555 +vt 0.181530 0.456662 +vt 0.160534 0.456663 +vt 0.181530 0.470033 +vt 0.160534 0.470034 +vt 0.156855 0.482213 +vt 0.187482 0.495142 +vt 0.154582 0.495142 +vt 0.208478 0.431554 +vt 0.177852 0.444483 +vt 0.175578 0.431554 +vt 0.202527 0.456662 +vt 0.202527 0.470033 +vt 0.177852 0.482213 +vt 0.208479 0.495141 +vt 0.175579 0.495142 +vt 0.229475 0.431554 +vt 0.198848 0.444483 +vt 0.196575 0.431554 +vt 0.227202 0.444483 +vt 0.223523 0.470033 +vt 0.198849 0.482213 +vt 0.229475 0.495141 +vt 0.196575 0.495142 +vt 0.250472 0.431554 +vt 0.219845 0.444483 +vt 0.217572 0.431554 +vt 0.248198 0.444483 +vt 0.223523 0.456662 +vt 0.244520 0.456662 +vt 0.244520 0.470033 +vt 0.219845 0.482212 +vt 0.250472 0.495141 +vt 0.217572 0.495141 +vt 0.238569 0.431554 +vt 0.269195 0.444483 +vt 0.240842 0.444483 +vt 0.265517 0.456662 +vt 0.269195 0.482213 +vt 0.240842 0.482212 +vt 0.238568 0.495141 +vt 0.259565 0.431554 +vt 0.290192 0.444483 +vt 0.261838 0.444483 +vt 0.286513 0.456663 +vt 0.265517 0.470033 +vt 0.290191 0.482213 +vt 0.261838 0.482212 +vt 0.259565 0.495141 +vt 0.280562 0.431554 +vt 0.311188 0.444483 +vt 0.282835 0.444483 +vt 0.307510 0.456663 +vt 0.286513 0.470033 +vt 0.311188 0.482213 +vt 0.282835 0.482213 +vt 0.280561 0.495142 +vt 0.126584 0.919818 +vt 0.140012 0.708701 +vt 0.140013 0.919817 +vt 0.207154 0.708701 +vt 0.207155 0.919817 +vt 0.166870 0.919817 +vt 0.153440 0.708701 +vt 0.166869 0.708701 +vt 0.180298 0.919817 +vt 0.153441 0.919817 +vt 0.234135 0.875411 +vt 0.220697 0.919762 +vt 0.220707 0.875404 +vt 0.220583 0.919816 +vt 0.220582 0.708701 +vt 0.113155 0.708702 +vt 0.126584 0.708702 +vt 0.314568 0.891555 +vt 0.309497 0.867473 +vt 0.313761 0.869278 +vt 0.301277 0.875445 +vt 0.287839 0.919797 +vt 0.287849 0.875438 +vt 0.260992 0.875425 +vt 0.247553 0.919776 +vt 0.247564 0.875418 +vt 0.328134 0.875459 +vt 0.314695 0.919811 +vt 0.314706 0.875452 +vt 0.274410 0.919790 +vt 0.274420 0.875431 +vt 0.260982 0.919783 +vt 0.234125 0.919769 +vt 0.301267 0.919804 +vt 0.308531 0.948048 +vt 0.297558 0.919947 +vt 0.309626 0.921049 +vt 0.314647 0.896518 +vt 0.310460 0.894042 +vt 0.311777 0.973256 +vt 0.312696 0.950617 +vt 0.320287 0.797781 +vt 0.307573 0.814336 +vt 0.317673 0.792250 +vt 0.313606 0.864986 +vt 0.308535 0.840905 +vt 0.312799 0.842709 +vt 0.312873 0.946256 +vt 0.313792 0.923617 +vt 0.320287 0.992004 +vt 0.307435 0.975048 +vt 0.312643 0.838418 +vt 0.311836 0.816141 +vt 0.296659 0.841873 +vt 0.293357 0.866637 +vt 0.292551 0.844359 +vt 0.295697 0.815304 +vt 0.297621 0.868441 +vt 0.298902 0.894148 +vt 0.296462 0.946946 +vt 0.260683 0.910703 +vt 0.247255 0.985157 +vt 0.247255 0.910703 +vt 0.293215 0.921738 +vt 0.295366 0.973946 +vt 0.281238 0.988439 +vt 0.291201 0.971377 +vt 0.292395 0.840068 +vt 0.291588 0.817791 +vt 0.270381 0.881699 +vt 0.294350 0.864763 +vt 0.269266 0.880790 +vt 0.292119 0.948738 +vt 0.281862 0.800912 +vt 0.284016 0.795041 +vt 0.300968 0.985157 +vt 0.288372 0.988169 +vt 0.287540 0.985157 +vt 0.287540 0.910703 +vt 0.274112 0.985157 +vt 0.274112 0.910703 +vt 0.206969 0.910703 +vt 0.193541 0.985157 +vt 0.193541 0.910703 +vt 0.233826 0.910703 +vt 0.220398 0.985157 +vt 0.220398 0.910703 +vt 0.260683 0.985157 +vt 0.300968 0.910703 +vt 0.206969 0.985157 +vt 0.233826 0.985157 +vt 0.000000 0.406250 +vt 0.052083 0.421875 +vt 0.000000 0.421875 +vt 0.207801 0.988169 +vt 0.234658 0.988169 +vt 0.259851 0.988169 +vt 0.248086 0.988169 +vt 0.286708 0.988169 +vt 0.274943 0.988169 +vt 0.206138 0.988169 +vt 0.194373 0.988169 +vt 0.232995 0.988169 +vt 0.221230 0.988169 +vt 0.261515 0.988169 +vt 0.048732 0.447842 +vt 0.045556 0.447842 +vt 0.048732 0.436341 +vt 0.000000 0.375000 +vt 0.052083 0.390625 +vt 0.000000 0.390625 +vt 0.000000 0.468750 +vt 0.052083 0.484375 +vt 0.000000 0.484375 +vt 0.000000 0.437500 +vt 0.052083 0.453125 +vt 0.000000 0.453125 +vt 0.052083 0.437500 +vt 0.052083 0.406250 +vt 0.052083 0.500000 +vt 0.000000 0.500000 +vt 0.052083 0.468750 +vt 0.077693 0.682531 +vt 0.085752 0.702806 +vt 0.072784 0.686569 +vt 0.099335 0.548750 +vt 0.085924 0.828424 +vt 0.085920 0.548750 +vt 0.194542 0.682531 +vt 0.186482 0.702806 +vt 0.184647 0.695445 +vt 0.154742 0.695445 +vt 0.169694 0.702806 +vt 0.152906 0.702806 +vt 0.137953 0.695445 +vt 0.136117 0.702806 +vt 0.171530 0.695445 +vt 0.117493 0.695445 +vt 0.102541 0.702806 +vt 0.104376 0.695445 +vt 0.134281 0.695445 +vt 0.119329 0.702806 +vt 0.121165 0.695445 +vt 0.072504 0.548751 +vt 0.072521 0.828425 +vt 0.059088 0.548753 +vt 0.045714 0.828432 +vt 0.045673 0.548757 +vt 0.126166 0.548755 +vt 0.112729 0.828426 +vt 0.112751 0.548752 +vt 0.059117 0.828428 +vt 0.032312 0.828437 +vt 0.032257 0.548762 +vt 0.099327 0.828424 +vt 0.100705 0.695445 +vt 0.087588 0.695445 +vt 0.018909 0.828443 +vt 0.018841 0.548769 +vt 0.102541 0.720660 +vt 0.085752 0.720660 +vt 0.136117 0.720660 +vt 0.169694 0.720660 +vt 0.119329 0.720660 +vt 0.152906 0.720660 +vt 0.151119 0.727549 +vt 0.137904 0.727549 +vt 0.186482 0.720660 +vt 0.171480 0.727549 +vt 0.100754 0.727549 +vt 0.087538 0.727549 +vt 0.104327 0.727549 +vt 0.121115 0.727549 +vt 0.077795 0.740943 +vt 0.073051 0.737368 +vt 0.194439 0.740943 +vt 0.184696 0.727549 +vt 0.167908 0.727549 +vt 0.154692 0.727549 +vt 0.274714 0.919931 +vt 0.261210 0.982393 +vt 0.261210 0.919931 +vt 0.288333 0.987837 +vt 0.271580 0.973788 +vt 0.289932 0.985191 +vt 0.247705 0.919931 +vt 0.234201 0.982393 +vt 0.234201 0.919931 +vt 0.220697 0.982393 +vt 0.220697 0.919931 +vt 0.247705 0.982393 +vt 0.301723 0.919931 +vt 0.288219 0.982393 +vt 0.288219 0.919931 +vt 0.315227 0.919931 +vt 0.301723 0.982393 +vt 0.328732 0.919931 +vt 0.315227 0.982393 +vt 0.274714 0.982393 +vt 0.293124 0.985191 +vt 0.309933 0.968199 +vt 0.311477 0.973788 +vt 0.266945 0.970578 +vt 0.261721 0.942874 +vt 0.269323 0.970403 +vt 0.316112 0.970578 +vt 0.321335 0.942874 +vt 0.323100 0.945273 +vt 0.316112 0.910382 +vt 0.321335 0.938086 +vt 0.313734 0.910558 +vt 0.288333 0.893123 +vt 0.271580 0.907172 +vt 0.271463 0.903605 +vt 0.266945 0.910383 +vt 0.261721 0.938086 +vt 0.259957 0.935688 +vt 0.294723 0.893123 +vt 0.311476 0.907172 +vt 0.293124 0.895769 +vt 0.294723 0.987837 +vt 0.311593 0.977356 +vt 0.273123 0.912761 +vt 0.291528 0.906976 +vt 0.275734 0.916790 +vt 0.291476 0.979602 +vt 0.273049 0.968088 +vt 0.313734 0.970403 +vt 0.317609 0.940559 +vt 0.310007 0.912873 +vt 0.289932 0.895769 +vt 0.269323 0.910558 +vt 0.265447 0.940401 +vt 0.291581 0.901359 +vt 0.291528 0.973984 +vt 0.269192 0.940480 +vt 0.309933 0.912761 +vt 0.307322 0.964171 +vt 0.273123 0.968199 +vt 0.265447 0.940559 +vt 0.275734 0.964171 +vt 0.313864 0.940480 +vt 0.317609 0.940401 +vt 0.307322 0.916789 +vt 0.282700 0.682531 +vt 0.271598 0.702003 +vt 0.270797 0.682531 +vt 0.263862 0.653767 +vt 0.276843 0.637114 +vt 0.276843 0.652877 +vt 0.272434 0.675600 +vt 0.263862 0.635913 +vt 0.272669 0.614289 +vt 0.256381 0.695742 +vt 0.297255 0.695389 +vt 0.282107 0.702003 +vt 0.269648 0.894065 +vt 0.269215 0.907339 +vt 0.267789 0.894057 +vt 0.270334 0.906440 +vt 0.294268 0.923602 +vt 0.237869 0.893926 +vt 0.237791 0.911563 +vt 0.289962 0.934035 +vt 0.303659 0.931128 +vt 0.304214 0.934035 +vt 0.261457 0.934035 +vt 0.247760 0.931128 +vt 0.260902 0.931128 +vt 0.232711 0.934065 +vt 0.222295 0.920924 +vt 0.233498 0.931227 +vt 0.318708 0.934065 +vt 0.329124 0.920924 +vt 0.330769 0.923036 +vt 0.275710 0.934035 +vt 0.289407 0.931128 +vt 0.247205 0.934035 +vt 0.246640 0.931132 +vt 0.317921 0.931228 +vt 0.262012 0.931128 +vt 0.275154 0.931128 +vt 0.262012 0.953205 +vt 0.275709 0.950376 +vt 0.275154 0.953205 +vt 0.261457 0.950376 +vt 0.317931 0.952980 +vt 0.304214 0.950376 +vt 0.318708 0.949777 +vt 0.233488 0.952980 +vt 0.247205 0.950376 +vt 0.246629 0.953196 +vt 0.232711 0.949777 +vt 0.289407 0.953206 +vt 0.289962 0.950376 +vt 0.329533 0.962240 +vt 0.331194 0.959687 +vt 0.221886 0.962240 +vt 0.247760 0.953205 +vt 0.260902 0.953205 +vt 0.290517 0.953206 +vt 0.303659 0.953205 +vt 0.286548 0.925737 +vt 0.274178 0.941902 +vt 0.276506 0.922891 +vt 0.263857 0.931768 +vt 0.253669 0.941716 +vt 0.241589 0.925551 +vt 0.251491 0.922891 +vt 0.302318 0.955878 +vt 0.296095 0.940846 +vt 0.309892 0.941203 +vt 0.276157 1.000043 +vt 0.277845 0.988719 +vt 0.279031 0.999320 +vt 0.284417 0.944018 +vt 0.263815 0.960025 +vt 0.274027 0.944968 +vt 0.273860 0.960272 +vt 0.284163 0.946906 +vt 0.263891 0.944699 +vt 0.253734 0.959924 +vt 0.253781 0.944730 +vt 0.263905 0.941721 +vt 0.262350 0.883120 +vt 0.272118 0.893652 +vt 0.262350 0.893652 +vt 0.243789 0.946439 +vt 0.243564 0.943592 +vt 0.274698 0.990680 +vt 0.275897 0.990665 +vt 0.222326 0.666214 +vt 0.223796 0.675651 +vt 0.221878 0.675521 +vt 0.276984 0.883345 +vt 0.274471 0.883120 +vt 0.209797 0.558857 +vt 0.219735 0.569163 +vt 0.209797 0.569163 +vt 0.225468 0.664276 +vt 0.226612 0.674973 +vt 0.222094 0.558857 +vt 0.223523 0.666167 +vt 0.281111 0.893792 +vt 0.279697 0.988827 +vt 0.228356 0.674554 +vt 0.227211 0.663856 +vt 0.220401 0.664219 +vt 0.217884 0.569235 +vt 0.272118 0.897282 +vt 0.279262 0.893687 +vt 0.219072 0.674722 +vt 0.289130 0.883559 +vt 0.289049 0.893859 +vt 0.272776 0.988740 +vt 0.274236 0.999907 +vt 0.271463 0.999118 +vt 0.226877 0.569238 +vt 0.236860 0.558893 +vt 0.236778 0.569413 +vt 0.208616 0.698065 +vt 0.199561 0.713051 +vt 0.199561 0.698065 +vt 0.223046 0.714223 +vt 0.228088 0.714255 +vt 0.228001 0.723082 +vt 0.247216 0.713051 +vt 0.256270 0.698065 +vt 0.256270 0.713051 +vt 0.232635 0.696906 +vt 0.228128 0.696870 +vt 0.228192 0.688045 +vt 0.236144 0.714777 +vt 0.232647 0.713361 +vt 0.236489 0.710792 +vt 0.219824 0.696340 +vt 0.223052 0.697748 +vt 0.219448 0.700309 +vt 0.211461 0.713051 +vt 0.208616 0.713051 +vt 0.244371 0.698065 +vt 0.247216 0.698065 +vt 0.223330 0.710079 +vt 0.217127 0.701037 +vt 0.223330 0.701037 +vt 0.232384 0.710079 +vt 0.238657 0.701037 +vt 0.238657 0.710079 +vt 0.215001 0.700359 +vt 0.211461 0.698065 +vt 0.240830 0.700359 +vt 0.244370 0.713051 +vt 0.240830 0.710757 +vt 0.215001 0.710756 +vt 0.212477 0.718880 +vt 0.232384 0.701037 +vt 0.217127 0.710079 +vt 0.243247 0.691947 +vt 0.223051 0.713206 +vt 0.232650 0.697917 +vt 0.236090 0.696640 +vt 0.236348 0.700497 +vt 0.219875 0.714484 +vt 0.219585 0.710645 +vt 0.243247 0.719169 +vt 0.212477 0.692235 +vt 0.223082 0.696719 +vt 0.220294 0.682531 +vt 0.232619 0.714384 +vt 0.235699 0.728531 +vt 0.236749 0.573040 +vt 0.269746 0.998630 +vt 0.144323 0.762715 +vt 0.314455 0.975508 +vt 0.097131 0.750157 +vt 0.159735 0.751740 +vt 0.138787 0.766338 +vt 0.117867 0.751648 +vt 0.109270 0.696289 +vt 0.127627 0.976678 +vt 0.014857 0.978001 +vt 0.199651 0.750157 +vt 0.014710 0.592571 +vt 0.014697 0.110197 +vt 0.010653 0.072850 +vt 0.010554 0.041223 +vt 0.199186 0.800615 +vt 0.128645 0.801487 +vt 0.203942 0.975766 +vt 0.062578 0.483566 +vt 0.131861 0.038058 +vt 0.318354 0.254488 +vt 0.153393 0.041207 +vt 0.321715 0.253791 +vt 0.322483 0.009668 +vt 0.308636 0.795153 +vt 0.018435 0.799670 +vt 0.009876 0.122906 +vt 0.010440 0.091074 +vt 0.271559 0.625547 +vt 0.223589 0.607923 +vt 0.327319 0.521961 +vt 0.330014 0.552440 +vt 0.327319 0.547146 +vt 0.329035 0.557734 +vt 0.315100 0.534535 +vt 0.310543 0.557734 +vt 0.304942 0.551670 +vt 0.303745 0.541756 +vt 0.117762 0.513726 +vt 0.317971 0.398399 +vt 0.283600 0.488445 +vt 0.141926 0.346559 +vt 0.168187 0.351749 +vt 0.141640 0.374054 +vt 0.180275 0.360697 +vt 0.167479 0.368991 +vt 0.081648 0.369717 +vt 0.075115 0.362544 +vt 0.074695 0.357469 +vt 1.000000 -0.000000 +vt 0.208482 0.381137 +vt 0.219558 0.424014 +vt 0.214794 0.416868 +vt 0.214794 0.406761 +vt 0.226296 0.399615 +vt 0.231060 0.406761 +vt 0.185209 0.444483 +vt 0.185209 0.482213 +vt 0.206205 0.444482 +vt 0.206205 0.482213 +vt 0.227202 0.482212 +vt 0.248198 0.482212 +vt 0.271468 0.431554 +vt 0.271468 0.495142 +vt 0.292465 0.431554 +vt 0.292465 0.495142 +vt 0.313461 0.431555 +vt 0.307510 0.470034 +vt 0.313461 0.495142 +vt 0.113156 0.919818 +vt 0.328124 0.919818 +vt 0.313949 0.919163 +vt 0.317605 0.997602 +vt 0.292296 0.944377 +vt 0.283402 0.994429 +vt 0.300137 0.988169 +vt 0.219566 0.988169 +vt 0.246423 0.988169 +vt 0.273280 0.988169 +vt 0.043310 0.444474 +vt 0.043310 0.439710 +vt 0.045556 0.436341 +vt 0.050978 0.439710 +vt 0.050978 0.444474 +vt 0.052083 0.375000 +vt 0.199450 0.686569 +vt 0.167858 0.695445 +vt 0.151070 0.695445 +vt 0.126132 0.828429 +vt 0.117543 0.727549 +vt 0.134331 0.727549 +vt 0.199184 0.737368 +vt 0.271463 0.977356 +vt 0.328732 0.982393 +vt 0.291581 0.979602 +vt 0.259957 0.945273 +vt 0.323100 0.935687 +vt 0.311593 0.903605 +vt 0.291476 0.901359 +vt 0.310007 0.968087 +vt 0.273049 0.912873 +vt 0.237860 0.876290 +vt 0.290517 0.931128 +vt 0.220707 0.923131 +vt 0.276265 0.931128 +vt 0.304779 0.931132 +vt 0.304790 0.953196 +vt 0.276265 0.953205 +vt 0.220287 0.959600 +vt 0.293315 0.949913 +vt 0.224609 0.558677 +vt 0.218549 0.664294 +vt 0.262350 0.897282 +vt 0.220063 0.728189 +vt 0.235926 0.682997 +vt 0.216897 0.712351 +vt 0.238896 0.698725 +vt 0.238896 0.712391 +vt 0.216897 0.698764 +vt 0.226848 0.572865 +vt 0.271059 0.988251 +vn 0.4257 0.9049 -0.0048 +vn 0.9414 0.3371 -0.0135 +vn 1.0000 -0.0021 -0.0092 +vn 0.9999 -0.0056 -0.0127 +vn -0.7762 -0.6305 -0.0048 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0049 -0.0080 +vn -1.0000 0.0016 -0.0087 +vn -0.9414 0.3371 -0.0136 +vn -0.9415 0.3368 -0.0109 +vn -0.4227 0.9063 0.0000 +vn 0.7762 -0.6305 -0.0048 +vn -0.9415 0.3371 0.0000 +vn -0.9406 0.3396 0.0004 +vn 0.3933 -0.0014 0.9194 +vn 0.3737 0.1338 0.9179 +vn -1.0000 -0.0035 -0.0003 +vn 0.9937 0.0000 -0.1121 +vn 1.0000 -0.0035 0.0000 +vn 1.0000 0.0000 -0.0002 +vn -0.9568 0.2679 -0.1132 +vn -0.7341 -0.6786 -0.0246 +vn -1.0000 -0.0004 -0.0003 +vn -0.0014 -0.9870 -0.1609 +vn 1.0000 -0.0079 -0.0019 +vn 1.0000 -0.0051 0.0001 +vn -1.0000 -0.0051 0.0001 +vn -1.0000 -0.0079 -0.0019 +vn 0.0908 -0.1778 0.9799 +vn 0.0000 -1.0000 -0.0075 +vn 1.0000 0.0016 -0.0088 +vn 1.0000 0.0049 -0.0080 +vn 0.9999 -0.0004 -0.0153 +vn 0.9999 -0.0004 -0.0102 +vn -0.9999 -0.0004 -0.0102 +vn -0.9999 -0.0004 -0.0153 +vn -1.0000 -0.0021 -0.0092 +vn -0.9999 -0.0069 -0.0104 +vn -0.9999 -0.0048 -0.0096 +vn -0.0908 -0.1778 0.9799 +vn 0.4227 0.9063 0.0000 +vn 0.1385 0.3003 -0.9437 +vn 0.9415 0.3371 0.0000 +vn 0.9333 0.3590 -0.0000 +vn 0.4012 0.9160 0.0000 +vn 1.0000 -0.0023 0.0000 +vn 0.9985 -0.0546 0.0000 +vn 0.3719 0.1363 -0.9182 +vn 0.7077 0.7065 -0.0002 +vn 0.1397 0.2995 0.9438 +vn 0.3939 0.0013 -0.9192 +vn -1.0000 -0.0068 0.0000 +vn -1.0000 -0.0061 0.0028 +vn -1.0000 -0.0042 0.0047 +vn 1.0000 0.0000 0.0000 +vn 1.0000 0.0007 0.0027 +vn 1.0000 -0.0016 -0.0023 +vn -0.9546 0.2485 -0.1646 +vn -0.9937 -0.0007 -0.1122 +vn -0.5111 0.8476 -0.1425 +vn 0.5111 0.8476 -0.1425 +vn 0.9568 0.2679 -0.1132 +vn -0.9937 0.0000 -0.1121 +vn 0.9936 -0.0013 -0.1126 +vn -0.9389 0.3167 -0.1345 +vn -0.5509 -0.5672 0.6122 +vn 0.9389 0.3167 -0.1345 +vn -0.4738 0.7235 -0.5021 +vn -1.0000 0.0000 0.0000 +vn -1.0000 -0.0023 0.0014 +vn 0.4738 0.7235 -0.5021 +vn 1.0000 -0.0012 0.0016 +vn 1.0000 -0.0039 0.0023 +vn 0.9546 0.2485 -0.1646 +vn -0.6739 -0.6939 0.2537 +vn 0.9694 0.2236 0.1017 +vn 0.9694 0.2237 0.1012 +vn 1.0000 -0.0034 -0.0015 +vn 1.0000 -0.0017 -0.0014 +vn 1.0000 -0.0038 -0.0012 +vn 0.5456 0.7635 0.3455 +vn 1.0000 0.0015 0.0024 +vn 1.0000 -0.0023 -0.0015 +vn -1.0000 -0.0045 0.0006 +vn -1.0000 -0.0035 0.0032 +vn -1.0000 -0.0007 0.0039 +vn -0.4293 0.8526 -0.2981 +vn -1.0000 -0.0004 0.0028 +vn 0.4293 0.8526 -0.2981 +vn 1.0000 -0.0037 0.0023 +vn 1.0000 -0.0061 0.0037 +vn -0.5813 0.8136 -0.0067 +vn -1.0000 -0.0019 -0.0013 +vn -1.0000 -0.0017 0.0003 +vn -0.6627 -0.6823 -0.3087 +vn -0.9694 0.2237 0.1012 +vn -0.9694 0.2235 0.1017 +vn 1.0000 0.0006 -0.0028 +vn 1.0000 -0.0008 0.0015 +vn -1.0000 -0.0034 -0.0015 +vn -1.0000 -0.0033 0.0002 +vn -1.0000 -0.0014 -0.0035 +vn -0.5456 0.7635 0.3455 +vn -1.0000 -0.0025 -0.0012 +vn -1.0000 -0.0017 0.0000 +vn -0.9902 0.1399 -0.0006 +vn 0.5813 0.8136 -0.0067 +vn 1.0000 -0.0032 -0.0014 +vn 1.0000 -0.0034 0.0003 +vn 1.0000 -0.0038 -0.0000 +vn 0.9737 0.2279 -0.0023 +vn 0.9738 0.2276 -0.0019 +vn -0.6847 -0.7050 0.1849 +vn -0.9738 0.2276 -0.0019 +vn -0.9736 0.2281 -0.0020 +vn 1.0000 -0.0017 -0.0001 +vn 0.6275 0.0151 -0.7785 +vn 0.6330 0.0176 -0.7740 +vn -0.7019 0.0021 -0.7122 +vn -0.7064 0.0000 -0.7078 +vn 0.6040 0.2359 -0.7612 +vn 0.3767 0.8078 -0.4533 +vn -0.3910 0.8384 -0.3797 +vn -0.7142 0.0083 -0.6999 +vn -0.7143 0.0016 -0.6998 +vn -0.7176 0.0128 -0.6964 +vn -0.1915 -0.3110 -0.9309 +vn -0.6735 0.2590 -0.6923 +vn 0.6296 0.0075 -0.7769 +vn 0.6296 0.0000 -0.7769 +vn 0.6254 -0.0051 -0.7803 +vn -0.7634 0.6459 -0.0028 +vn 0.7634 0.6459 -0.0028 +vn 1.0000 -0.0017 0.0000 +vn 0.9902 0.1399 -0.0006 +vn -0.6967 -0.7173 0.0031 +vn 0.6973 -0.7167 0.0031 +vn 0.0000 -1.0000 0.0043 +vn 0.1962 -0.2566 -0.9464 +vn 0.0000 0.0000 -1.0000 +vn 0.6853 -0.7044 0.1847 +vn 0.0000 -0.9673 0.2537 +vn 0.6633 -0.6818 -0.3085 +vn 0.0000 -0.9111 -0.4123 +vn 0.7110 -0.6559 0.2535 +vn 0.9999 0.0128 -0.0066 +vn 0.9999 0.0080 -0.0062 +vn 0.5516 -0.5669 0.6119 +vn 0.0000 -0.6796 0.7335 +vn 0.7348 -0.6778 -0.0246 +vn 0.9238 0.0000 -0.3830 +vn 0.0056 -0.0098 -0.9999 +vn 0.0000 -1.0000 0.0095 +vn -0.9239 0.3827 0.0000 +vn 1.0000 0.0000 -0.0015 +vn 0.0000 0.0216 -0.9998 +vn -0.9840 -0.1758 -0.0295 +vn -1.0000 0.0000 -0.0015 +vn 0.0000 -0.0216 0.9998 +vn 0.9993 0.0008 -0.0364 +vn 0.0000 -0.0377 0.9993 +vn -0.9997 -0.0009 -0.0249 +vn -0.0057 -0.0103 -0.9999 +vn 0.0000 -0.9998 -0.0206 +vn 0.0000 -0.9997 -0.0225 +vn -0.9997 0.0005 -0.0231 +vn 0.0000 0.9998 0.0216 +vn 0.0000 -0.9998 -0.0216 +vn 0.0000 0.9604 0.2786 +vn 0.0000 -0.9648 -0.2630 +vn -1.0000 -0.0047 0.0009 +vn 0.0000 -0.7438 -0.6684 +vn 0.0000 0.7295 0.6840 +vn 0.0000 0.1212 0.9926 +vn 1.0000 -0.0039 0.0029 +vn 1.0000 -0.0005 -0.0048 +vn 0.0000 -0.1592 -0.9872 +vn 0.0000 -0.0766 -0.9971 +vn 0.0000 0.0714 0.9974 +vn -0.9999 0.0080 -0.0062 +vn -0.9999 0.0128 -0.0066 +vn 0.0000 0.1150 -0.9934 +vn 0.0000 -0.1150 0.9934 +vn 0.0000 0.0444 -0.9990 +vn 0.0000 -0.0997 0.9950 +vn 0.0000 -0.1804 0.9836 +vn 0.0000 -0.0613 -0.9981 +vn 0.9955 -0.0947 0.0000 +vn 0.0000 0.1792 0.9838 +vn 0.0000 -0.2422 -0.9702 +vn 0.0008 0.5015 0.8652 +vn 0.0000 0.5038 0.8638 +vn 0.0005 0.5013 0.8652 +vn -0.9934 -0.0844 0.0771 +vn 0.0000 0.5088 0.8609 +vn 0.0025 0.5075 0.8616 +vn -0.0026 0.5077 0.8616 +vn 0.0000 -0.5752 -0.8180 +vn 0.0000 -0.7383 0.6745 +vn 0.0000 -0.9117 -0.4108 +vn 0.9385 -0.2548 0.2328 +vn -0.9386 -0.2548 0.2328 +vn 0.0000 -0.9994 -0.0347 +vn -0.0051 1.0000 0.0000 +vn 0.0000 -0.0370 0.9993 +vn 0.9999 -0.0021 -0.0102 +vn 0.9999 0.0018 -0.0135 +vn -1.0000 -0.0035 -0.0069 +vn -0.9999 0.0001 -0.0134 +vn -1.0000 -0.0015 -0.0087 +vn 1.0000 0.0010 0.0047 +vn 1.0000 -0.0006 0.0000 +vn -1.0000 -0.0027 0.0042 +vn -1.0000 -0.0017 -0.0006 +vn 0.0007 -1.0000 -0.0000 +vn -1.0000 -0.0012 0.0001 +vn -1.0000 -0.0015 0.0000 +vn -1.0000 -0.0013 -0.0003 +vn 1.0000 -0.0015 0.0000 +vn 0.0032 1.0000 0.0000 +vn 1.0000 -0.0056 0.0033 +vn 1.0000 -0.0015 0.0006 +vn 1.0000 0.0015 0.0047 +vn 1.0000 -0.0017 0.0008 +vn 1.0000 -0.0006 0.0051 +vn 0.0032 -1.0000 -0.0000 +vn -1.0000 0.0013 0.0045 +vn -1.0000 -0.0007 -0.0000 +vn -1.0000 -0.0006 0.0003 +vn -1.0000 -0.0012 -0.0007 +vn -1.0000 -0.0015 -0.0006 +vn -1.0000 -0.0012 -0.0008 +vn -1.0000 -0.0004 0.0051 +vn -1.0000 -0.0006 0.0000 +vn -0.0032 1.0000 0.0000 +vn -0.0032 -1.0000 0.0000 +vn 0.0000 -0.3827 -0.9239 +vn 0.0000 -0.9239 -0.3827 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 -0.3827 0.9239 +vn 0.0000 0.3827 0.9239 +vn 0.0000 0.9239 0.3827 +vn 0.0000 0.9239 -0.3827 +vn 0.0000 0.3827 -0.9239 +vn 0.7951 -0.4858 -0.3630 +vn 0.7513 0.6433 0.1472 +vn -0.3459 0.8319 0.4339 +vn -0.9860 -0.0789 0.1472 +vn -0.2163 -0.9063 -0.3630 +vn 0.5772 0.0383 -0.8157 +vn 0.8396 0.4308 0.3307 +vn -0.0854 0.2055 0.9749 +vn -0.8976 -0.2914 0.3307 +vn -0.4343 -0.3822 -0.8157 +vn 0.3055 0.6919 -0.6541 +vn 0.9498 0.1658 0.2652 +vn 0.2394 -0.5757 0.7818 +vn -0.7874 -0.5564 0.2652 +vn -0.7060 0.2715 -0.6542 +vn 0.1846 0.9828 0.0000 +vn 0.9989 0.0479 0.0000 +vn 0.3839 -0.9234 0.0000 +vn -0.7384 -0.6744 0.0000 +vn -0.8269 0.5623 0.0000 +vn 0.3055 0.6919 0.6541 +vn 0.9498 0.1658 -0.2652 +vn 0.2394 -0.5757 -0.7818 +vn -0.7874 -0.5564 -0.2652 +vn -0.7060 0.2715 0.6541 +vn 0.5772 0.0383 0.8157 +vn 0.8396 0.4308 -0.3308 +vn -0.0854 0.2055 -0.9749 +vn -0.8976 -0.2914 -0.3307 +vn -0.4342 -0.3822 0.8157 +vn 0.7951 -0.4858 0.3630 +vn 0.7513 0.6433 -0.1472 +vn -0.3459 0.8319 -0.4339 +vn -0.9860 -0.0789 -0.1472 +vn -0.2163 -0.9063 0.3630 +vn 0.9239 -0.3827 -0.0000 +vn -0.9239 -0.3827 -0.0000 +vn 0.3827 0.9239 0.0000 +vn -0.3827 0.9239 0.0000 +vn 0.9239 0.3827 0.0000 +vn 0.3827 -0.9239 0.0000 +vn -0.3827 -0.9239 0.0000 +vn 0.2163 0.5222 -0.8249 +vn -0.2163 0.5222 -0.8249 +vn -0.5222 -0.2163 -0.8249 +vn 0.2081 -0.4401 -0.8735 +vn 0.5222 0.2163 -0.8249 +vn -0.5222 0.2163 -0.8249 +vn -0.2163 -0.5222 -0.8249 +vn 0.5222 -0.2163 -0.8249 +vn 0.5222 0.2163 0.8249 +vn -0.5222 0.2163 0.8249 +vn -0.2163 -0.5222 0.8249 +vn 0.5222 -0.2163 0.8249 +vn 0.3827 0.9238 -0.0120 +vn 0.8438 -0.5265 0.1041 +vn -0.5222 -0.2163 0.8250 +vn 0.2058 -0.4197 0.8840 +vn -0.1653 0.4232 -0.8908 +vn -0.9239 0.3827 0.0001 +vn 0.1642 0.3964 -0.9033 +vn 0.3964 -0.1642 -0.9033 +vn 0.1642 -0.3964 -0.9033 +vn 0.3964 0.1642 -0.9033 +vn -0.3964 -0.1642 -0.9033 +vn -0.1642 -0.3964 -0.9033 +vn -0.3827 0.9239 0.0001 +vn 0.9239 0.3827 0.0001 +vn -0.3827 -0.9239 0.0001 +vn 0.3827 0.9239 0.0001 +vn 0.9239 -0.3827 0.0001 +vn -0.9239 -0.3827 0.0001 +vn -0.3964 0.1642 -0.9033 +vn 0.3827 -0.9239 0.0001 +vn 0.1317 -0.3179 0.9389 +vn 0.3179 0.1317 0.9389 +vn -0.3179 0.1317 0.9389 +vn -0.3179 -0.1317 0.9389 +vn -0.1317 -0.3179 0.9389 +vn -0.1355 0.3696 0.9193 +vn 0.1317 0.3179 0.9389 +vn 0.3179 -0.1317 0.9390 +vn -0.4654 -0.1928 -0.8638 +vn -0.1928 -0.4654 -0.8638 +vn -0.1928 0.4654 -0.8638 +vn 0.1928 0.4654 -0.8638 +vn 0.4654 -0.1928 -0.8639 +vn 0.1928 -0.4654 -0.8638 +vn 0.4654 0.1928 -0.8638 +vn -0.4654 0.1928 -0.8639 +vn 0.2570 -0.1064 0.9605 +vn 0.1064 -0.2570 0.9605 +vn 0.2570 0.1064 0.9605 +vn -0.2570 0.1064 0.9605 +vn -0.2570 -0.1064 0.9605 +vn -0.1064 -0.2570 0.9605 +vn -0.1064 0.2570 0.9605 +vn 0.1064 0.2570 0.9605 +vn 0.9968 0.0794 0.0000 +vn -0.9968 0.0794 0.0000 +vn -0.0007 0.0459 -0.9989 +vn -0.0009 0.0618 0.9981 +vn 0.0009 0.0618 0.9981 +vn 0.0007 0.0459 -0.9989 +vn 0.0465 0.1529 0.9871 +vn -0.0359 0.1299 0.9909 +vn -0.2910 0.9565 0.0178 +vn -0.7522 -0.6487 0.1156 +vn -0.2662 -0.9636 0.0231 +vn 0.3820 -0.9223 0.0577 +vn -0.6671 -0.2763 0.6919 +vn 0.6671 -0.2763 0.6919 +vn 0.2683 0.6476 0.7132 +vn -0.2660 0.6359 0.7244 +vn -0.2763 -0.6671 0.6919 +vn 0.6671 0.2763 0.6919 +vn -0.6907 0.2924 0.6614 +vn 0.2763 -0.6671 0.6919 +vn 0.2692 -0.6498 -0.7108 +vn -0.7364 0.3285 -0.5914 +vn -0.9213 0.3888 0.0000 +vn 0.6498 0.2692 -0.7108 +vn 0.9213 0.3888 0.0000 +vn -0.2692 -0.6498 -0.7109 +vn -0.2921 0.6981 -0.6537 +vn 0.2936 0.7087 -0.6415 +vn 0.6498 -0.2692 -0.7109 +vn -0.6498 -0.2692 -0.7108 +vn -0.9707 0.2404 0.0000 +vn -0.0152 0.0364 -0.9992 +vn 0.9707 0.2404 0.0000 +vn 0.0008 0.0018 1.0000 +vn 0.0000 -0.9985 -0.0541 +vn -0.0007 0.0018 1.0000 +vn 0.0154 0.0365 -0.9992 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.9985 0.0540 +vn 0.0000 -0.0469 0.9989 +vn 0.0000 0.0704 -0.9975 +vn 0.0000 -0.0696 0.9976 +vn 0.9826 0.1855 0.0000 +vn -0.9757 0.2193 0.0000 +vn -0.9979 0.0652 0.0000 +vn 0.9979 0.0652 0.0000 +vn 0.5958 0.2860 -0.7505 +vn -0.5296 0.8483 0.0000 +vn 0.5292 0.8485 0.0000 +vn -0.5654 0.2963 0.7697 +vn 0.0000 0.9333 -0.3590 +vn -0.5112 0.8022 -0.3086 +vn 0.0000 0.9333 0.3590 +vn 0.5416 0.7846 0.3018 +vn -0.5654 0.2963 -0.7698 +vn 0.5416 0.7846 -0.3018 +vn 0.5958 0.2860 0.7504 +vn -0.5112 0.8022 0.3086 +vn 1.0000 -0.0023 -0.0003 +vn 0.0054 -0.0103 -0.9999 +vn -0.0060 -0.0098 -0.9999 +vn -0.2048 -0.2682 -0.9413 +vn 0.1799 -0.3126 -0.9327 +vn 0.0000 -0.9869 -0.1613 +vn 0.0015 -0.9870 -0.1609 +vn 0.9385 0.3453 -0.0001 +vn 1.0000 -0.0015 -0.0087 +vn 0.9999 0.0000 -0.0134 +vn -0.7768 -0.6298 -0.0036 +vn -1.0000 0.0004 -0.0021 +vn -1.0000 -0.0015 -0.0049 +vn -0.9385 0.3453 0.0000 +vn 0.7768 -0.6298 -0.0036 +vn -0.9412 0.3378 -0.0026 +vn 0.3935 -0.0015 0.9193 +vn 0.4060 0.1562 0.9004 +vn -1.0000 -0.0021 0.0000 +vn -1.0000 -0.0018 -0.0027 +vn 1.0000 -0.0036 0.0000 +vn 1.0000 -0.0004 -0.0003 +vn -0.9608 0.2487 -0.1223 +vn -0.6066 -0.7945 -0.0284 +vn -0.6264 -0.7733 -0.0975 +vn -1.0000 0.0000 -0.0003 +vn 1.0000 -0.0005 -0.0003 +vn 1.0000 0.0016 -0.0009 +vn 1.0000 0.0030 -0.0040 +vn -1.0000 0.0030 -0.0040 +vn -1.0000 0.0016 -0.0009 +vn -1.0000 -0.0005 -0.0003 +vn 1.0000 -0.0015 -0.0049 +vn 1.0000 0.0004 -0.0021 +vn 0.9999 -0.0056 -0.0118 +vn 1.0000 -0.0015 -0.0088 +vn -1.0000 -0.0015 -0.0088 +vn -0.9999 -0.0056 -0.0118 +vn -0.9999 -0.0015 -0.0102 +vn -0.9999 0.0036 -0.0103 +vn -0.9999 -0.0061 -0.0084 +vn 0.1422 0.3319 -0.9325 +vn 0.3982 0.9173 0.0006 +vn 1.0000 -0.0038 -0.0002 +vn 0.4062 0.1600 -0.8997 +vn 0.7079 0.7063 -0.0002 +vn 0.1430 0.3294 0.9333 +vn 0.3947 0.0009 -0.9188 +vn -1.0000 -0.0012 0.0016 +vn -1.0000 -0.0039 0.0023 +vn 1.0000 -0.0024 0.0014 +vn -0.9306 0.3160 -0.1849 +vn -0.9936 -0.0013 -0.1126 +vn -0.5412 0.8265 -0.1550 +vn 0.5412 0.8265 -0.1550 +vn 0.9608 0.2487 -0.1223 +vn 0.9937 -0.0007 -0.1122 +vn -0.9634 0.2291 -0.1393 +vn 0.9634 0.2291 -0.1393 +vn -0.3871 0.7687 -0.5092 +vn -1.0000 -0.0016 -0.0023 +vn -1.0000 0.0006 0.0027 +vn 0.3871 0.7687 -0.5092 +vn 1.0000 -0.0068 0.0000 +vn 1.0000 -0.0042 0.0048 +vn 1.0000 -0.0061 0.0028 +vn 0.9306 0.3160 -0.1849 +vn 0.0000 -0.9328 0.3605 +vn -0.7103 -0.6566 0.2537 +vn 0.9693 0.2241 0.1015 +vn 1.0000 -0.0008 -0.0027 +vn 1.0000 -0.0030 0.0001 +vn 1.0000 -0.0020 0.0020 +vn -1.0000 -0.0038 0.0023 +vn -1.0000 -0.0061 0.0037 +vn -0.5495 0.7690 -0.3266 +vn -1.0000 -0.0023 -0.0015 +vn -1.0000 0.0017 0.0022 +vn 0.5495 0.7690 -0.3266 +vn 1.0000 -0.0045 0.0006 +vn 1.0000 -0.0010 0.0046 +vn 1.0000 -0.0035 0.0032 +vn -1.0000 -0.0015 -0.0007 +vn -0.7633 0.6459 0.0135 +vn -1.0000 -0.0035 -0.0002 +vn -1.0000 -0.0034 0.0003 +vn -0.9693 0.2238 0.1017 +vn 1.0000 -0.0017 -0.0022 +vn -1.0000 -0.0039 -0.0015 +vn -1.0000 -0.0019 -0.0008 +vn -1.0000 0.0002 -0.0028 +vn -1.0000 -0.0012 0.0012 +vn 0.7633 0.6459 0.0135 +vn 1.0000 -0.0020 -0.0013 +vn 1.0000 -0.0017 0.0003 +vn 0.9901 0.1400 -0.0116 +vn 0.9901 0.1401 -0.0111 +vn -0.9901 0.1401 -0.0111 +vn -0.9901 0.1401 -0.0116 +vn 0.6385 0.0097 -0.7696 +vn 0.6425 0.0150 -0.7662 +vn 0.6390 0.0022 -0.7692 +vn -0.7068 0.0066 -0.7074 +vn -0.7028 -0.0044 -0.7114 +vn 0.7066 0.2135 -0.6746 +vn 0.5060 0.8391 -0.1997 +vn -0.5146 0.8533 -0.0838 +vn -0.7041 0.0132 -0.7100 +vn -0.7086 0.0154 -0.7055 +vn -0.7884 0.2333 -0.5692 +vn 0.6241 0.0024 -0.7814 +vn -0.6967 -0.7174 0.0031 +vn 0.6746 -0.6933 0.2534 +vn 0.9999 0.0140 -0.0012 +vn 0.9999 0.0097 0.0052 +vn 1.0000 0.0094 0.0004 +vn 0.6270 -0.7729 -0.0976 +vn 0.6072 -0.7941 -0.0284 +vn 0.9841 -0.1697 -0.0533 +vn -0.0095 -0.9999 0.0105 +vn 0.0095 -0.9999 0.0105 +vn -0.9274 0.0000 -0.3742 +vn 0.9987 -0.0092 -0.0494 +vn -1.0000 -0.0005 -0.0048 +vn -1.0000 -0.0039 0.0029 +vn 1.0000 -0.0047 0.0009 +vn -0.0004 -0.0719 -0.9974 +vn -1.0000 0.0094 0.0004 +vn -0.9999 0.0097 0.0052 +vn -0.9999 0.0140 -0.0012 +vn 0.0000 0.1149 -0.9934 +vn 0.0000 -0.1149 0.9934 +vn 0.9934 -0.0844 0.0771 +vn -0.0007 0.5014 0.8652 +vn -0.9955 -0.0947 0.0000 +vn 0.0026 0.5098 0.8603 +vn 0.0000 -0.9117 -0.4107 +vn 1.0000 -0.0015 -0.0095 +vn 1.0000 -0.0061 -0.0078 +vn 0.9999 0.0036 -0.0095 +vn 1.0000 0.0013 0.0045 +vn -1.0000 -0.0056 0.0033 +vn -1.0000 0.0016 0.0047 +vn -1.0000 -0.0015 0.0006 +vn -1.0000 -0.0013 0.0003 +vn 1.0000 -0.0030 0.0040 +vn 1.0000 -0.0017 -0.0008 +vn 1.0000 -0.0015 -0.0006 +vn 1.0000 -0.0004 0.0051 +vn -1.0000 0.0010 0.0046 +vn -1.0000 -0.0014 0.0008 +vn -1.0000 -0.0017 0.0006 +vn -1.0000 -0.0006 0.0051 +vn 0.0000 0.0127 -0.9999 +vn -0.0012 0.0155 -0.9999 +vn -0.0021 0.0150 -0.9999 +vn 0.0002 0.0112 -0.9999 +vn 0.0000 0.0171 -0.9999 +vn -0.0027 0.0139 -0.9999 +vn 0.0059 0.0010 -1.0000 +vn -0.0059 0.0011 -1.0000 +vn -0.0012 0.0113 -0.9999 +vn 0.0046 0.0133 -0.9999 +vn -0.4342 -0.3822 -0.8157 +vn -0.7060 0.2714 -0.6541 +vn 0.1845 0.9828 0.0000 +vn -0.7060 0.2715 0.6542 +vn 0.8396 0.4308 -0.3307 +vn -0.4343 -0.3822 0.8157 +vn 0.2163 -0.5222 -0.8249 +vn -0.5222 0.2163 -0.8250 +vn -0.2081 -0.4401 -0.8735 +vn -0.2058 -0.4197 0.8840 +vn 0.2910 0.9565 0.0178 +vn 0.7522 -0.6487 0.1156 +vn -0.5222 -0.2163 0.8249 +vn 0.2163 -0.5222 0.8249 +vn -0.1642 0.3964 -0.9033 +vn 0.1653 0.4232 -0.8908 +vn -0.3179 -0.1317 0.9390 +vn -0.1317 0.3179 0.9389 +vn 0.1355 0.3696 0.9193 +vn 0.3179 -0.1317 0.9389 +vn -0.4654 -0.1928 -0.8639 +vn 0.4654 -0.1928 -0.8638 +vn 0.4654 0.1928 -0.8639 +vn -0.4654 0.1928 -0.8638 +vn 0.0359 0.1299 0.9909 +vn -0.0465 0.1529 0.9871 +vn -0.3827 0.9238 -0.0120 +vn -0.8438 -0.5265 0.1041 +vn -0.3820 -0.9223 0.0577 +vn 0.2663 -0.9636 0.0231 +vn 0.2645 0.6280 0.7319 +vn -0.2683 0.6476 0.7132 +vn 0.6907 0.2924 0.6614 +vn -0.6671 0.2763 0.6919 +vn 0.2692 -0.6498 -0.7109 +vn -0.6498 0.2692 -0.7108 +vn 0.7364 0.3285 -0.5914 +vn -0.2692 -0.6498 -0.7108 +vn -0.2936 0.7087 -0.6415 +vn 0.2910 0.6909 -0.6618 +vn 0.6498 -0.2692 -0.7108 +vn -0.6498 -0.2692 -0.7109 +vn 0.0000 0.0589 -0.9983 +vn 0.0000 0.0029 1.0000 +vn 0.2185 0.0412 -0.9750 +vn -0.2098 0.0472 0.9766 +vn -0.2099 0.0472 -0.9766 +vn 0.2184 0.0412 0.9750 +vn 1.0000 -0.0021 -0.0003 +s off +f 65/131/59 67/132/59 68/133/59 +f 68/133/60 69/134/60 70/135/60 +f 70/135/61 71/136/62 72/137/61 +f 74/138/63 76/139/63 73/140/63 +f 71/141/64 69/142/64 78/143/64 +f 76/144/65 80/145/66 81/146/66 +f 78/147/67 83/148/67 82/149/68 +f 77/150/69 65/151/69 83/148/69 +f 84/152/70 86/153/70 87/154/70 +f 89/155/71 82/149/72 83/148/71 +f 91/156/73 93/157/73 90/158/73 +f 95/159/74 91/156/74 94/160/74 +f 97/161/69 83/148/69 65/151/69 +f 98/162/75 88/163/75 99/164/75 +f 100/165/76 102/166/76 103/167/76 +f 105/168/77 90/169/77 104/170/77 +f 104/170/78 107/171/78 108/172/78 +f 112/173/79 110/174/79 109/175/79 +f 115/176/80 116/177/80 117/178/80 +f 98/162/81 118/179/81 81/146/81 +f 119/180/82 120/181/82 124/182/82 +f 84/183/83 125/184/84 120/181/84 +f 121/185/85 126/186/85 76/144/86 +f 87/187/87 125/184/87 84/188/87 +f 73/140/88 86/153/88 74/138/88 +f 127/189/89 84/183/90 107/171/89 +f 128/190/91 107/171/92 106/191/92 +f 81/146/93 129/192/94 98/162/93 +f 98/162/95 79/193/96 82/149/97 +f 73/194/98 76/195/98 126/186/98 +f 94/196/99 96/197/99 97/198/99 +f 68/199/100 131/200/100 65/201/100 +f 91/202/101 130/203/101 94/196/101 +f 133/204/102 95/205/102 132/206/102 +f 132/206/103 134/207/103 131/208/103 +f 135/209/104 92/210/104 133/204/104 +f 131/200/105 97/211/105 65/201/105 +f 70/212/106 132/213/106 68/199/106 +f 90/158/107 135/214/107 72/215/107 +f 134/216/108 94/160/108 97/211/108 +f 70/212/109 135/214/109 133/217/109 +f 136/218/110 137/219/111 138/220/112 +f 102/166/113 140/221/114 103/167/115 +f 141/222/116 111/223/116 112/173/116 +f 142/224/117 111/223/117 136/218/117 +f 144/225/118 109/175/118 143/226/118 +f 145/227/119 144/228/119 143/229/119 +f 147/230/120 146/231/120 145/227/120 +f 142/224/121 115/232/121 114/233/121 +f 100/165/122 148/234/122 147/230/122 +f 150/235/123 137/219/123 141/222/123 +f 151/236/124 153/237/124 154/238/124 +f 155/239/125 157/240/125 156/241/125 +f 159/242/126 112/173/126 144/225/126 +f 115/232/127 138/220/128 152/243/127 +f 146/231/129 159/244/129 144/228/129 +f 103/167/130 155/239/131 148/234/131 +f 148/234/132 156/241/132 146/231/132 +f 116/177/133 152/245/133 151/236/133 +f 161/246/134 157/240/135 158/247/135 +f 158/247/136 163/248/137 161/246/138 +f 160/249/139 164/250/139 157/240/139 +f 139/251/113 162/252/140 140/221/141 +f 138/220/142 149/253/143 167/254/144 +f 164/255/145 141/222/145 159/242/145 +f 152/243/127 167/254/146 153/256/127 +f 156/241/147 164/250/147 159/244/147 +f 140/221/148 158/247/149 155/239/149 +f 168/257/127 170/258/127 171/259/127 +f 165/260/150 173/261/150 172/262/150 +f 169/263/151 176/264/152 170/258/152 +f 153/237/153 177/265/153 154/238/153 +f 150/235/154 175/266/155 149/253/154 +f 162/252/156 178/267/113 163/248/157 +f 149/253/158 169/263/159 167/254/160 +f 164/255/161 172/262/161 150/235/161 +f 167/254/162 168/257/127 153/256/127 +f 170/268/163 179/269/163 180/270/163 +f 182/271/113 184/272/113 181/273/113 +f 185/274/164 176/275/164 173/276/164 +f 186/277/165 165/278/165 160/249/165 +f 163/248/166 187/279/167 161/246/168 +f 161/246/169 186/277/170 160/249/170 +f 177/265/171 171/280/171 188/281/171 +f 173/261/172 175/266/173 172/262/172 +f 178/267/113 181/282/113 163/248/174 +f 105/168/175 100/283/176 147/284/175 +f 99/164/177 114/285/178 118/179/178 +f 147/284/179 130/203/179 105/168/179 +f 145/286/180 96/197/180 130/203/180 +f 96/287/181 109/288/181 89/155/181 +f 88/163/182 142/289/183 99/164/184 +f 189/290/185 118/291/185 113/292/185 +f 89/155/186 110/293/186 88/163/186 +f 104/170/187 101/294/188 100/283/189 +f 193/295/190 173/276/190 174/296/190 +f 171/297/127 180/270/127 194/298/127 +f 186/299/191 193/300/191 174/301/191 +f 181/273/192 190/302/192 187/303/192 +f 187/303/193 191/304/193 186/299/193 +f 188/305/194 194/298/194 195/306/194 +f 196/307/195 183/308/195 182/271/195 +f 188/305/196 192/309/196 196/307/196 +f 108/310/197 198/311/197 101/312/197 +f 199/313/198 201/314/198 117/315/198 +f 202/316/199 182/317/199 178/318/199 +f 177/265/200 196/319/200 202/316/200 +f 166/320/201 202/316/201 178/318/201 +f 154/238/202 202/316/202 203/321/202 +f 204/322/203 139/323/203 102/324/203 +f 234/325/204 584/326/205 583/327/205 +f 205/328/206 166/320/206 139/323/206 +f 151/236/207 203/321/207 205/328/207 +f 199/329/208 204/322/208 102/324/208 +f 197/330/209 206/331/209 198/332/209 +f 197/333/210 108/310/210 119/180/210 +f 87/187/211 73/194/211 120/181/211 +f 492/334/212 354/335/212 349/336/212 +f 206/331/213 208/337/213 200/338/213 +f 200/339/214 209/340/214 201/314/214 +f 198/332/213 200/338/213 199/341/213 +f 189/342/215 210/343/215 123/344/215 +f 113/345/216 201/346/216 210/343/216 +f 212/347/217 214/348/217 211/349/217 +f 207/350/218 214/348/218 215/351/218 +f 206/331/218 211/352/218 207/350/218 +f 123/353/219 211/349/219 124/354/219 +f 210/343/216 209/355/216 216/356/216 +f 210/343/220 212/357/220 123/344/220 +f 189/290/221 123/358/221 122/359/221 +f 213/360/222 215/351/222 214/348/222 +f 217/361/223 219/362/223 215/351/223 +f 216/356/216 218/363/216 217/361/216 +f 216/356/224 213/360/224 212/357/224 +f 208/364/225 221/365/225 209/340/225 +f 207/350/213 219/362/213 208/337/213 +f 221/366/127 224/367/127 222/368/127 +f 218/363/226 225/369/226 219/362/226 +f 208/337/113 225/369/113 220/370/113 +f 209/355/127 222/368/127 218/363/127 +f 226/371/113 228/372/113 229/373/113 +f 220/374/227 223/375/227 221/365/227 +f 220/370/113 227/376/113 226/371/113 +f 222/368/228 227/377/228 225/369/228 +f 231/378/127 233/379/229 230/380/127 +f 224/381/230 228/382/230 227/377/230 +f 223/383/127 230/380/127 224/367/127 +f 226/384/231 231/385/231 223/375/231 +f 229/386/232 232/387/232 231/385/232 +f 229/373/113 235/388/233 234/325/234 +f 230/389/235 235/390/235 228/382/235 +f 584/391/236 233/392/236 581/393/236 +f 582/394/237 234/395/237 583/396/237 +f 581/397/238 232/398/239 582/399/238 +f 236/400/127 238/401/127 239/402/127 +f 238/403/240 241/404/240 239/405/240 +f 240/406/113 243/407/113 241/408/113 +f 242/409/241 236/410/241 243/411/241 +f 241/404/242 245/412/242 239/405/242 +f 247/413/243 249/414/243 246/415/243 +f 239/402/127 247/416/127 236/400/127 +f 241/408/113 246/417/113 244/418/113 +f 236/410/244 246/415/244 243/411/244 +f 249/419/113 252/420/113 250/421/113 +f 244/422/245 253/423/245 245/412/245 +f 244/418/113 249/419/113 250/421/113 +f 245/424/127 248/425/127 247/416/127 +f 251/426/246 255/427/246 252/420/246 +f 248/425/127 256/428/127 257/429/127 +f 248/430/247 251/431/247 249/414/247 +f 250/432/248 256/433/248 253/423/248 +f 258/434/249 260/435/250 254/436/251 +f 257/429/252 261/437/252 258/438/252 +f 251/431/253 258/434/254 254/436/255 +f 252/439/256 261/440/256 256/433/256 +f 263/441/257 259/442/257 262/443/257 +f 261/440/258 263/444/258 262/445/258 +f 254/446/259 263/447/259 255/427/259 +f 258/438/260 262/448/260 259/449/260 +f 117/178/261 204/322/261 199/329/261 +f 79/450/262 265/451/262 71/452/262 +f 129/453/64 127/454/64 128/455/64 +f 80/456/64 85/457/64 127/454/64 +f 75/458/263 86/153/263 85/457/263 +f 72/137/264 128/190/265 106/191/264 +f 82/149/266 79/193/267 78/147/268 +f 264/459/262 267/460/262 265/451/262 +f 71/452/269 268/461/270 269/462/270 +f 79/450/271 270/463/272 271/464/272 +f 128/465/273 273/466/273 129/467/273 +f 266/468/64 275/469/64 267/470/64 +f 273/471/274 266/472/275 264/459/276 +f 272/473/273 274/474/273 273/466/273 +f 265/451/277 275/469/277 272/473/277 +f 277/475/278 279/476/278 276/477/278 +f 71/452/279 277/478/280 128/465/281 +f 265/451/282 276/479/282 268/461/282 +f 128/465/283 276/479/270 272/473/270 +f 271/480/284 282/481/284 280/482/284 +f 79/450/285 280/483/286 264/459/287 +f 264/459/288 283/484/289 273/471/290 +f 129/485/291 283/484/292 270/463/292 +f 284/486/163 282/481/163 281/487/163 +f 271/488/64 284/486/64 281/487/64 +f 283/489/293 284/486/293 270/490/293 +f 280/491/198 285/492/198 283/493/198 +f 286/494/192 279/476/192 278/495/192 +f 268/496/198 279/476/198 287/497/198 +f 268/498/294 286/494/294 269/499/294 +f 269/500/64 278/495/64 277/501/64 +f 194/502/198 180/503/198 184/504/198 +f 289/505/113 291/506/113 288/507/113 +f 293/508/295 295/509/295 292/510/295 +f 294/511/296 297/512/296 295/509/296 +f 296/513/297 299/514/297 297/515/297 +f 298/516/298 301/517/298 299/514/298 +f 300/518/299 303/519/299 301/517/299 +f 302/520/300 305/521/300 303/519/300 +f 298/522/113 296/523/113 304/524/113 +f 304/525/301 307/526/301 305/521/301 +f 306/527/302 292/510/302 307/526/302 +f 309/528/303 311/529/303 308/530/303 +f 311/529/304 312/531/304 313/532/304 +f 313/532/305 314/533/305 315/534/305 +f 314/533/306 317/535/306 315/534/306 +f 317/535/307 309/536/307 308/537/307 +f 318/538/308 310/539/308 309/540/308 +f 310/539/309 320/541/309 312/531/309 +f 312/531/310 321/542/310 314/533/310 +f 321/542/311 316/543/311 314/533/311 +f 316/543/312 318/544/312 309/545/312 +f 323/546/313 319/547/313 318/548/313 +f 324/549/314 320/541/314 319/547/314 +f 320/541/315 326/550/315 321/542/315 +f 326/550/316 322/551/316 321/542/316 +f 322/551/317 323/552/317 318/553/317 +f 328/554/318 324/555/318 323/556/318 +f 329/557/319 325/558/319 324/555/319 +f 330/559/320 326/550/320 325/558/320 +f 331/560/321 327/561/321 326/550/321 +f 327/561/322 328/562/322 323/563/322 +f 328/564/323 334/565/323 329/566/323 +f 329/566/324 335/567/324 330/559/324 +f 335/567/325 331/560/325 330/559/325 +f 331/560/326 337/568/326 332/569/326 +f 337/568/327 328/570/327 332/569/327 +f 333/571/328 339/572/328 334/573/328 +f 339/572/329 335/567/329 334/573/329 +f 340/574/330 336/575/330 335/567/330 +f 336/575/331 342/576/331 337/577/331 +f 342/576/332 333/578/332 337/577/332 +f 338/579/333 311/580/333 339/581/333 +f 311/580/334 340/574/334 339/581/334 +f 313/582/335 341/583/335 340/574/335 +f 341/583/336 317/584/336 342/585/336 +f 317/584/337 338/586/337 342/585/337 +f 496/587/338 345/588/338 495/589/338 +f 492/334/339 348/590/339 491/591/339 +f 499/592/340 344/593/340 343/594/340 +f 499/592/341 354/335/341 503/595/341 +f 495/589/342 344/593/342 500/596/342 +f 351/597/343 353/598/343 350/599/343 +f 505/600/344 348/590/344 347/601/344 +f 496/587/343 347/602/343 346/603/343 +f 356/604/345 358/605/345 355/606/345 +f 360/607/212 362/608/212 359/609/212 +f 364/610/342 365/611/342 363/612/342 +f 350/613/344 367/614/344 366/615/344 +f 359/609/341 356/616/341 368/617/341 +f 368/617/340 355/618/340 364/610/340 +f 363/612/338 352/619/338 351/597/338 +f 366/615/339 361/620/339 360/607/339 +f 370/621/212 372/622/212 369/623/212 +f 356/624/346 369/623/346 357/625/346 +f 367/626/347 370/621/347 361/627/347 +f 353/628/348 374/629/348 375/630/348 +f 355/631/349 376/632/349 365/633/349 +f 361/634/350 369/623/350 362/635/350 +f 353/636/351 373/637/351 367/626/351 +f 365/638/352 374/629/352 352/639/352 +f 377/640/353 379/641/353 380/642/353 +f 376/632/338 383/643/338 374/629/338 +f 357/625/340 378/644/340 358/605/340 +f 369/623/341 384/645/341 357/625/341 +f 373/637/339 371/646/339 370/621/339 +f 358/605/342 377/640/342 376/632/342 +f 386/647/341 388/648/341 385/649/341 +f 371/646/354 386/650/354 372/622/354 +f 382/651/355 390/652/355 391/653/355 +f 383/643/356 380/654/356 392/655/356 +f 384/645/357 394/656/357 378/644/357 +f 379/657/358 394/656/358 395/658/358 +f 382/651/359 389/659/359 371/646/359 +f 383/643/360 390/660/360 381/661/360 +f 397/662/64 399/663/64 396/664/64 +f 391/665/339 400/666/339 389/667/339 +f 392/668/343 397/669/343 390/670/343 +f 379/671/342 403/672/342 380/673/342 +f 389/667/212 387/674/212 386/647/212 +f 390/675/344 396/664/344 391/665/344 +f 380/673/338 401/676/338 392/668/338 +f 385/649/340 402/677/340 379/671/340 +f 405/678/338 407/679/338 404/680/338 +f 403/672/64 409/681/64 401/676/64 +f 388/648/64 411/682/64 402/677/64 +f 388/648/64 404/683/64 410/684/64 +f 400/666/64 399/685/64 405/686/64 +f 397/669/64 409/687/64 398/688/64 +f 403/672/64 411/689/64 408/690/64 +f 400/666/64 404/691/64 387/674/64 +f 417/692/64 407/693/64 414/694/64 +f 398/695/340 412/696/340 399/697/340 +f 408/698/212 414/699/212 409/700/212 +f 410/701/344 416/702/344 411/703/344 +f 404/680/343 417/704/343 410/701/343 +f 399/697/342 406/705/342 405/678/342 +f 409/700/341 413/706/341 398/707/341 +f 411/703/339 415/708/339 408/698/339 +f 426/709/361 428/710/361 375/711/361 +f 425/712/362 427/713/362 418/714/362 +f 426/715/363 431/716/363 430/717/363 +f 432/718/364 434/719/364 435/720/364 +f 436/721/365 435/720/365 437/722/365 +f 430/717/366 434/719/366 433/723/366 +f 438/724/367 440/725/367 429/726/367 +f 436/727/368 439/728/368 438/729/368 +f 419/730/369 427/713/369 426/731/369 +f 420/732/370 433/733/370 421/734/370 +f 423/735/371 438/736/371 424/737/371 +f 419/730/372 430/738/372 420/732/372 +f 421/734/373 432/739/373 422/740/373 +f 424/737/374 429/741/374 425/712/374 +f 429/742/375 428/710/375 427/743/375 +f 422/740/376 436/744/376 423/745/376 +f 439/728/339 442/746/339 440/725/339 +f 440/725/212 443/747/212 428/710/212 +f 435/720/343 445/748/343 437/722/343 +f 431/716/342 447/749/342 434/719/342 +f 437/722/344 441/750/344 439/728/344 +f 434/719/338 444/751/338 435/720/338 +f 445/748/377 448/752/377 449/753/377 +f 446/754/378 451/755/378 447/749/378 +f 443/747/379 452/756/379 453/757/379 +f 441/750/380 452/758/380 442/746/380 +f 445/748/381 454/759/381 441/750/381 +f 443/747/382 455/760/382 381/761/382 +f 446/754/383 455/762/383 450/763/383 +f 444/751/384 451/764/384 448/765/384 +f 455/766/340 457/767/340 450/768/340 +f 458/769/385 460/770/385 461/771/385 +f 451/772/338 463/773/338 448/774/338 +f 448/774/343 464/775/343 449/776/343 +f 450/768/342 462/777/342 451/772/342 +f 452/778/212 465/779/212 453/780/212 +f 454/781/339 458/782/339 452/778/339 +f 449/783/344 459/784/344 454/781/344 +f 453/780/341 456/785/341 455/766/341 +f 461/786/212 468/787/212 466/788/212 +f 459/789/386 469/790/386 460/791/386 +f 465/792/387 470/793/387 456/794/387 +f 457/795/388 470/796/388 471/797/388 +f 462/798/389 473/799/389 463/800/389 +f 463/801/390 469/802/390 464/803/390 +f 462/804/391 471/805/391 472/806/391 +f 458/807/392 466/788/392 465/808/392 +f 474/809/393 476/810/393 477/811/393 +f 460/770/339 467/812/339 461/771/339 +f 469/790/344 478/813/344 460/791/344 +f 466/814/341 480/815/341 470/793/341 +f 470/796/340 481/816/340 471/797/340 +f 472/817/338 474/809/338 473/799/338 +f 473/818/343 479/819/343 469/802/343 +f 471/805/342 475/820/342 472/806/342 +f 483/821/64 485/822/64 476/810/64 +f 479/819/394 477/811/394 485/822/394 +f 481/823/395 476/810/395 475/820/395 +f 468/787/396 483/821/396 482/824/396 +f 478/825/397 483/821/397 467/812/397 +f 479/826/398 484/827/398 478/813/398 +f 480/815/399 482/824/399 487/828/399 +f 480/829/400 486/830/400 481/816/400 +f 431/831/401 383/832/401 446/833/401 +f 428/834/402 382/835/402 373/836/402 +f 373/836/403 375/837/403 428/834/403 +f 382/835/404 443/838/404 381/839/404 +f 381/840/405 446/833/405 383/832/405 +f 375/841/406 374/842/406 431/831/406 +f 393/843/407 395/658/407 394/656/407 +f 393/843/408 490/844/408 488/845/408 +f 384/645/409 489/846/409 393/843/409 +f 386/847/410 489/846/410 372/622/410 +f 385/848/411 395/658/411 488/845/411 +f 385/848/412 490/844/412 386/849/412 +f 494/850/413 360/851/413 493/852/413 +f 497/853/414 363/854/414 351/855/414 +f 501/856/415 368/857/415 364/858/415 +f 504/859/416 368/860/416 502/861/416 +f 506/862/417 366/863/417 494/850/417 +f 498/864/418 364/858/418 363/865/418 +f 493/852/419 359/866/419 504/859/419 +f 506/862/420 351/867/420 350/868/420 +f 496/869/421 508/870/421 505/871/421 +f 507/872/343 506/862/343 508/870/343 +f 503/873/422 509/874/422 510/875/422 +f 510/875/423 493/852/423 504/859/423 +f 500/876/424 512/877/424 495/878/424 +f 511/879/425 498/864/425 512/877/425 +f 491/880/426 508/870/426 513/881/426 +f 508/870/344 494/850/344 513/881/344 +f 499/882/427 510/875/427 514/883/427 +f 499/884/428 511/879/428 500/876/428 +f 495/885/429 507/872/429 496/886/429 +f 512/877/338 497/853/338 507/872/338 +f 491/887/430 509/874/430 492/888/430 +f 513/881/339 493/852/339 509/874/339 +f 504/889/431 516/890/431 510/891/431 +f 516/890/432 514/892/432 510/891/432 +f 518/893/433 501/894/433 511/895/433 +f 519/896/434 502/897/434 501/898/434 +f 522/899/435 524/900/435 521/901/435 +f 502/897/436 515/902/436 504/889/436 +f 514/892/437 518/893/437 511/895/437 +f 526/903/438 528/904/438 525/905/438 +f 516/890/127 525/906/127 528/904/127 +f 527/907/438 529/908/438 530/909/438 +f 517/910/198 530/909/198 518/893/198 +f 516/890/198 527/907/198 517/910/198 +f 526/911/439 532/912/439 531/913/439 +f 518/893/113 529/914/113 519/915/113 +f 522/899/440 534/916/440 523/917/440 +f 535/918/440 533/919/440 522/920/440 +f 515/921/127 534/916/127 525/922/127 +f 520/923/435 538/924/435 537/925/435 +f 533/919/439 539/926/439 540/927/439 +f 519/928/113 536/929/113 535/918/113 +f 524/900/113 532/930/113 542/931/113 +f 521/932/441 539/926/441 543/933/441 +f 543/934/127 544/935/127 538/924/127 +f 541/936/442 531/913/442 532/912/442 +f 523/917/435 541/937/435 524/900/435 +f 543/934/435 522/920/435 521/938/435 +f 538/924/435 535/918/435 543/934/435 +f 541/937/435 520/939/435 537/940/435 +f 542/941/439 533/942/439 540/943/439 +f 536/929/439 544/944/439 539/926/439 +f 532/912/439 534/916/439 542/941/439 +f 544/944/439 526/945/439 531/946/439 +f 546/947/127 548/948/127 545/949/127 +f 549/950/198 550/951/198 551/952/198 +f 553/953/113 555/954/113 552/955/113 +f 556/956/64 557/957/64 558/958/64 +f 553/959/198 560/960/198 561/961/198 +f 546/962/64 563/963/64 564/964/64 +f 546/947/127 565/965/127 547/966/127 +f 553/953/113 566/967/113 554/968/113 +f 568/969/443 570/970/443 567/971/443 +f 572/972/444 574/973/444 571/974/444 +f 575/975/445 565/965/445 564/976/445 +f 578/977/446 561/978/446 577/979/446 +f 576/980/447 568/981/447 565/965/447 +f 572/972/438 567/971/438 573/982/438 +f 569/983/448 575/975/448 570/970/448 +f 571/974/449 578/977/449 577/979/449 +f 578/977/450 573/984/450 566/967/450 +f 568/969/451 560/960/451 579/985/451 +f 560/960/452 572/972/452 561/961/452 +f 573/982/453 563/963/453 580/986/453 +f 563/963/454 567/971/454 564/964/454 +f 580/986/64 554/987/64 566/988/64 +f 557/957/64 556/956/64 580/986/64 +f 579/985/198 547/989/198 565/990/198 +f 550/951/198 549/950/198 579/985/198 +f 572/991/455 577/979/455 561/978/455 +f 565/990/456 568/969/456 579/985/456 +f 567/992/457 575/975/457 564/976/457 +f 566/988/458 573/982/458 580/986/458 +f 562/993/64 546/962/64 545/994/64 +f 559/995/198 553/959/198 552/996/198 +f 537/997/442 544/944/442 531/946/442 +f 521/998/441 542/941/441 540/943/441 +f 90/169/459 106/191/459 104/170/459 +f 119/180/460 124/182/460 197/333/460 +f 122/359/461 118/291/461 189/290/461 +f 113/292/462 118/291/462 114/999/462 +f 198/311/463 108/310/463 197/333/463 +f 124/182/464 121/185/464 123/358/464 +f 123/358/465 121/185/465 122/359/465 +f 89/155/69 97/161/69 96/287/69 +f 65/131/99 66/1000/99 67/132/99 +f 68/133/466 67/132/466 69/134/466 +f 70/135/467 69/134/467 71/136/468 +f 74/138/469 75/1001/469 76/139/469 +f 69/142/64 67/1002/64 78/143/64 +f 67/1002/64 66/1003/64 77/1004/64 +f 78/143/64 67/1002/64 77/1004/64 +f 78/143/64 79/1005/64 71/141/64 +f 76/144/470 75/1006/471 80/145/471 +f 78/147/472 77/150/472 83/148/472 +f 77/150/69 66/1007/69 65/151/69 +f 84/152/473 85/1008/473 86/153/473 +f 89/155/71 88/163/71 82/149/474 +f 91/156/475 92/1009/475 93/157/475 +f 95/159/476 92/1009/476 91/156/476 +f 97/161/69 89/155/69 83/148/69 +f 98/162/477 82/149/478 88/163/477 +f 100/165/76 101/1010/76 102/166/76 +f 105/168/479 91/202/479 90/169/479 +f 104/170/480 106/191/480 107/171/480 +f 112/173/481 111/223/481 110/174/481 +f 117/178/482 113/1011/482 114/1012/482 +f 114/1012/483 115/176/483 117/178/483 +f 98/162/484 99/164/484 118/179/484 +f 119/1013/113 108/172/113 120/181/113 +f 108/172/485 107/171/485 120/181/485 +f 107/171/486 84/183/487 120/181/486 +f 76/144/488 81/146/489 121/185/489 +f 81/146/490 118/179/490 121/185/490 +f 118/179/127 122/1014/127 121/185/127 +f 73/140/88 87/154/88 86/153/88 +f 127/189/491 85/1015/491 84/183/492 +f 128/190/493 127/189/494 107/171/494 +f 81/146/495 80/145/495 129/192/496 +f 98/162/497 129/192/498 79/193/499 +f 94/196/99 130/203/99 96/197/99 +f 68/199/500 132/213/500 131/200/500 +f 91/202/101 105/168/101 130/203/101 +f 133/204/102 92/210/102 95/205/102 +f 132/206/501 95/205/501 134/207/501 +f 135/209/502 93/1016/502 92/210/502 +f 131/200/105 134/216/105 97/211/105 +f 70/212/503 133/217/503 132/213/503 +f 90/158/504 93/157/504 135/214/504 +f 134/216/505 95/159/505 94/160/505 +f 70/212/506 72/215/506 135/214/506 +f 136/218/507 111/223/508 137/219/508 +f 102/166/113 139/251/113 140/221/509 +f 141/222/510 137/219/510 111/223/510 +f 142/224/511 110/174/511 111/223/511 +f 144/225/512 112/173/512 109/175/512 +f 145/227/513 146/231/513 144/228/513 +f 147/230/514 148/234/514 146/231/514 +f 142/224/121 136/218/121 115/232/121 +f 100/165/515 103/167/515 148/234/515 +f 150/235/516 149/253/516 137/219/516 +f 151/236/124 152/245/124 153/237/124 +f 155/239/517 158/247/517 157/240/517 +f 159/242/518 141/222/518 112/173/518 +f 115/232/127 136/218/519 138/220/520 +f 146/231/521 156/241/521 159/244/521 +f 103/167/522 140/221/523 155/239/524 +f 148/234/525 155/239/525 156/241/525 +f 151/236/526 205/328/526 204/322/526 +f 116/177/527 115/176/527 152/245/527 +f 151/236/526 204/322/526 116/177/526 +f 161/246/528 160/249/135 157/240/135 +f 158/247/136 162/252/529 163/248/530 +f 160/249/139 165/278/139 164/250/139 +f 139/251/113 166/1017/113 162/252/531 +f 138/220/532 137/219/533 149/253/533 +f 164/255/534 150/235/534 141/222/534 +f 152/243/127 138/220/535 167/254/536 +f 156/241/537 157/240/537 164/250/537 +f 140/221/538 162/252/539 158/247/540 +f 168/257/127 169/263/541 170/258/127 +f 165/260/542 174/1018/542 173/261/542 +f 169/263/162 175/266/543 176/264/544 +f 153/237/153 168/1019/153 177/265/153 +f 150/235/154 172/262/154 175/266/545 +f 162/252/546 166/1017/113 178/267/113 +f 149/253/158 175/266/547 169/263/548 +f 164/255/161 165/260/161 172/262/161 +f 167/254/549 169/263/550 168/257/127 +f 170/268/163 176/275/163 179/269/163 +f 182/271/113 183/308/113 184/272/113 +f 185/274/164 179/269/164 176/275/164 +f 186/277/551 174/1020/551 165/278/551 +f 163/248/552 181/282/553 187/279/553 +f 161/246/554 187/279/555 186/277/555 +f 177/265/171 168/1019/171 171/280/171 +f 173/261/556 176/264/556 175/266/557 +f 178/267/113 182/1021/113 181/282/113 +f 105/168/558 104/170/559 100/283/560 +f 99/164/561 142/289/562 114/285/178 +f 147/284/563 145/286/563 130/203/563 +f 145/286/564 143/1022/564 96/197/564 +f 96/287/565 143/1023/565 109/288/565 +f 88/163/566 110/293/566 142/289/567 +f 89/155/568 109/288/568 110/293/568 +f 104/170/569 108/172/188 101/294/188 +f 193/295/190 185/274/190 173/276/190 +f 171/297/127 170/268/127 180/270/127 +f 186/299/191 191/304/191 193/300/191 +f 181/273/192 184/272/192 190/302/192 +f 187/303/193 190/302/193 191/304/193 +f 188/305/570 171/297/570 194/298/570 +f 196/307/195 192/309/195 183/308/195 +f 188/305/196 195/306/196 192/309/196 +f 199/313/198 200/339/198 201/314/198 +f 202/316/199 196/319/199 182/317/199 +f 177/265/200 188/281/200 196/319/200 +f 166/320/201 203/321/201 202/316/201 +f 154/238/202 177/265/202 202/316/202 +f 204/322/571 205/328/571 139/323/571 +f 234/325/572 235/388/573 584/326/574 +f 205/328/206 203/321/206 166/320/206 +f 151/236/207 154/238/207 203/321/207 +f 102/324/575 101/1024/575 199/329/575 +f 101/1024/576 198/1025/576 199/329/576 +f 197/330/577 124/1026/577 206/331/577 +f 126/186/578 121/185/578 73/194/578 +f 121/185/211 120/181/211 73/194/211 +f 120/181/579 125/184/579 87/187/579 +f 492/334/212 503/595/212 354/335/212 +f 206/331/213 207/350/213 208/337/213 +f 200/339/214 208/364/214 209/340/214 +f 198/332/213 206/331/213 200/338/213 +f 189/342/580 113/345/580 210/343/580 +f 113/345/216 117/1027/216 201/346/216 +f 212/347/217 213/360/217 214/348/217 +f 207/350/218 211/352/218 214/348/218 +f 206/331/581 124/1026/581 211/352/581 +f 123/353/219 212/347/219 211/349/219 +f 210/343/216 201/346/216 209/355/216 +f 210/343/224 216/356/224 212/357/224 +f 213/360/222 217/361/222 215/351/222 +f 217/361/223 218/363/223 219/362/223 +f 216/356/216 209/355/216 218/363/216 +f 216/356/224 217/361/224 213/360/224 +f 208/364/225 220/374/225 221/365/225 +f 207/350/213 215/351/213 219/362/213 +f 221/366/127 223/383/127 224/367/127 +f 218/363/226 222/368/226 225/369/226 +f 208/337/113 219/362/113 225/369/113 +f 209/355/127 221/366/127 222/368/127 +f 226/371/113 227/376/113 228/372/113 +f 220/374/227 226/384/227 223/375/227 +f 220/370/113 225/369/113 227/376/113 +f 222/368/228 224/381/228 227/377/228 +f 231/378/127 232/398/582 233/379/583 +f 224/381/230 230/389/230 228/382/230 +f 223/383/127 231/378/127 230/380/127 +f 226/384/231 229/386/231 231/385/231 +f 229/386/232 234/395/232 232/387/232 +f 229/373/113 228/372/113 235/388/584 +f 230/389/235 233/392/235 235/390/235 +f 584/391/236 235/390/585 233/392/236 +f 582/394/237 232/387/237 234/395/237 +f 581/397/586 233/379/587 232/398/588 +f 236/400/127 237/1028/127 238/401/127 +f 238/403/589 240/1029/589 241/404/589 +f 240/406/113 242/1030/113 243/407/113 +f 242/409/590 237/1031/590 236/410/590 +f 241/404/242 244/422/242 245/412/242 +f 247/413/243 248/430/243 249/414/243 +f 239/402/127 245/424/127 247/416/127 +f 241/408/113 243/407/113 246/417/113 +f 236/410/244 247/413/244 246/415/244 +f 249/419/113 251/426/113 252/420/113 +f 244/422/245 250/432/245 253/423/245 +f 244/418/113 246/417/113 249/419/113 +f 245/424/127 253/1032/127 248/425/127 +f 251/426/591 254/446/591 255/427/591 +f 248/425/127 253/1032/127 256/428/127 +f 248/430/247 257/1033/247 251/431/247 +f 250/432/248 252/439/248 256/433/248 +f 258/434/592 259/442/250 260/435/250 +f 257/429/593 256/428/593 261/437/593 +f 251/431/253 257/1033/253 258/434/594 +f 252/439/256 255/1034/256 261/440/256 +f 263/441/257 260/435/257 259/442/257 +f 261/440/595 255/1034/595 263/444/595 +f 254/446/259 260/1035/259 263/447/259 +f 258/438/260 261/437/260 262/448/260 +f 117/178/261 116/177/261 204/322/261 +f 79/450/262 264/459/262 265/451/262 +f 129/453/64 80/456/64 127/454/64 +f 80/456/64 75/458/64 85/457/64 +f 75/458/263 74/138/263 86/153/263 +f 72/137/596 71/136/597 128/190/598 +f 264/459/262 266/472/262 267/460/262 +f 71/452/599 265/451/270 268/461/270 +f 79/450/600 129/485/601 270/463/602 +f 128/465/273 272/473/273 273/466/273 +f 266/468/64 274/474/64 275/469/64 +f 273/471/603 274/1036/275 266/472/275 +f 272/473/273 275/469/273 274/474/273 +f 265/451/277 267/460/277 275/469/277 +f 277/475/278 278/495/278 279/476/278 +f 71/452/604 269/462/605 277/478/605 +f 265/451/606 272/473/606 276/479/606 +f 128/465/607 277/478/270 276/479/270 +f 271/480/284 281/487/284 282/481/284 +f 79/450/608 271/464/286 280/483/286 +f 264/459/609 280/483/610 283/484/610 +f 129/485/611 273/471/490 283/484/292 +f 284/486/163 285/492/163 282/481/163 +f 271/488/64 270/1037/64 284/486/64 +f 283/489/293 285/492/293 284/486/293 +f 280/491/198 282/481/198 285/492/198 +f 286/494/192 287/497/192 279/476/192 +f 268/496/198 276/1038/198 279/476/198 +f 268/498/294 287/497/294 286/494/294 +f 269/500/64 286/494/64 278/495/64 +f 180/503/612 179/1039/613 184/504/612 +f 179/1039/614 185/1040/615 190/1041/616 +f 184/504/612 179/1039/617 190/1041/612 +f 185/1040/618 193/1042/198 191/1043/619 +f 191/1043/620 190/1041/616 185/1040/621 +f 184/504/198 183/1044/198 194/502/198 +f 183/1044/198 192/1045/198 195/1046/198 +f 194/502/198 183/1044/198 195/1046/198 +f 289/505/113 290/1047/113 291/506/113 +f 293/508/295 294/511/295 295/509/295 +f 294/511/296 296/1048/296 297/512/296 +f 296/513/297 298/516/297 299/514/297 +f 298/516/298 300/518/298 301/517/298 +f 300/518/299 302/520/299 303/519/299 +f 302/520/300 304/525/300 305/521/300 +f 296/523/113 294/1049/113 304/524/113 +f 294/1049/113 293/1050/113 304/524/113 +f 293/1050/113 306/1051/113 304/524/113 +f 304/524/113 302/1052/113 300/1053/113 +f 300/1053/113 298/522/113 304/524/113 +f 304/525/301 306/527/301 307/526/301 +f 306/527/302 293/508/302 292/510/302 +f 309/528/303 310/1054/303 311/529/303 +f 311/529/304 310/1054/304 312/531/304 +f 313/532/305 312/531/305 314/533/305 +f 314/533/306 316/1055/306 317/535/306 +f 317/535/307 316/1055/307 309/536/307 +f 318/538/308 319/1056/308 310/539/308 +f 310/539/309 319/1056/309 320/541/309 +f 312/531/310 320/541/310 321/542/310 +f 321/542/311 322/1057/311 316/543/311 +f 316/543/622 322/1057/622 318/544/622 +f 323/546/313 324/549/313 319/547/313 +f 324/549/314 325/558/314 320/541/314 +f 320/541/315 325/558/315 326/550/315 +f 326/550/316 327/1058/316 322/551/316 +f 322/551/623 327/1058/623 323/552/623 +f 328/554/624 329/557/624 324/555/624 +f 329/557/319 330/559/319 325/558/319 +f 330/559/320 331/560/320 326/550/320 +f 331/560/321 332/1059/321 327/561/321 +f 327/561/322 332/1059/322 328/562/322 +f 328/564/323 333/1060/323 334/565/323 +f 329/566/324 334/565/324 335/567/324 +f 335/567/325 336/575/325 331/560/325 +f 331/560/326 336/575/326 337/568/326 +f 337/568/625 333/1061/625 328/570/625 +f 333/571/328 338/1062/328 339/572/328 +f 339/572/626 340/574/626 335/567/626 +f 340/574/330 341/583/330 336/575/330 +f 336/575/331 341/583/331 342/576/331 +f 342/576/627 338/1063/627 333/578/627 +f 338/579/333 308/1064/333 311/580/333 +f 311/580/334 313/582/334 340/574/334 +f 313/582/335 315/1065/335 341/583/335 +f 341/583/336 315/1065/336 317/584/336 +f 317/584/337 308/1066/337 338/586/337 +f 496/587/338 346/603/338 345/588/338 +f 492/334/339 349/336/339 348/590/339 +f 499/592/340 500/596/340 344/593/340 +f 499/592/341 343/594/341 354/335/341 +f 495/589/342 345/588/342 344/593/342 +f 351/597/343 352/619/343 353/598/343 +f 505/600/344 491/591/344 348/590/344 +f 496/587/343 505/1067/343 347/602/343 +f 356/604/345 357/625/345 358/605/345 +f 360/607/212 361/620/212 362/608/212 +f 364/610/342 355/618/342 365/611/342 +f 350/613/344 353/1068/344 367/614/344 +f 359/609/341 362/608/341 356/616/341 +f 368/617/340 356/616/340 355/618/340 +f 363/612/338 365/611/338 352/619/338 +f 366/615/339 367/614/339 361/620/339 +f 370/621/212 371/646/212 372/622/212 +f 356/624/346 362/1069/346 369/623/346 +f 367/626/347 373/637/347 370/621/347 +f 353/628/628 352/639/628 374/629/628 +f 355/631/349 358/605/349 376/632/349 +f 361/634/629 370/621/629 369/623/629 +f 353/636/630 375/1070/630 373/637/630 +f 365/638/352 376/632/352 374/629/352 +f 377/640/353 378/644/353 379/641/353 +f 376/632/338 377/640/338 383/643/338 +f 357/625/340 384/645/340 378/644/340 +f 369/623/341 372/622/341 384/645/341 +f 373/637/339 382/651/339 371/646/339 +f 358/605/342 378/644/342 377/640/342 +f 386/647/341 387/674/341 388/648/341 +f 371/646/354 389/1071/354 386/650/354 +f 382/651/631 381/1072/631 390/652/631 +f 383/643/356 377/640/356 380/654/356 +f 384/645/632 393/843/632 394/656/632 +f 379/657/633 378/644/633 394/656/633 +f 382/651/634 391/653/634 389/659/634 +f 383/643/635 392/655/635 390/660/635 +f 397/662/64 398/1073/64 399/663/64 +f 391/665/339 396/664/339 400/666/339 +f 392/668/343 401/676/343 397/669/343 +f 379/671/342 402/677/342 403/672/342 +f 389/667/212 400/666/212 387/674/212 +f 390/675/344 397/662/344 396/664/344 +f 380/673/338 403/672/338 401/676/338 +f 385/649/340 388/648/340 402/677/340 +f 405/678/338 406/705/338 407/679/338 +f 403/672/64 408/1074/64 409/681/64 +f 388/648/64 410/1075/64 411/682/64 +f 388/648/64 387/674/64 404/683/64 +f 400/666/64 396/664/64 399/685/64 +f 397/669/64 401/676/64 409/687/64 +f 403/672/64 402/677/64 411/689/64 +f 400/666/64 405/1076/64 404/691/64 +f 407/693/64 406/1077/64 412/1078/64 +f 412/1078/64 413/1079/64 407/693/64 +f 413/1079/64 414/694/64 407/693/64 +f 414/694/64 415/1080/64 416/1081/64 +f 416/1081/64 417/692/64 414/694/64 +f 398/695/340 413/1082/340 412/696/340 +f 408/698/212 415/708/212 414/699/212 +f 410/701/344 417/704/344 416/702/344 +f 404/680/343 407/679/343 417/704/343 +f 399/697/342 412/696/342 406/705/342 +f 409/700/341 414/699/341 413/706/341 +f 411/703/339 416/702/339 415/708/339 +f 426/709/636 427/743/636 428/710/636 +f 425/712/362 429/741/362 427/713/362 +f 426/715/637 375/1083/637 431/716/637 +f 432/718/364 433/1084/364 434/719/364 +f 436/721/365 432/1085/365 435/720/365 +f 430/717/366 431/716/366 434/719/366 +f 438/724/367 439/728/367 440/725/367 +f 436/727/368 437/722/368 439/728/368 +f 419/730/369 418/714/369 427/713/369 +f 420/732/370 430/738/370 433/733/370 +f 423/735/371 436/1086/371 438/736/371 +f 419/730/372 426/731/372 430/738/372 +f 421/734/373 433/733/373 432/739/373 +f 424/737/374 438/736/374 429/741/374 +f 429/742/375 440/725/375 428/710/375 +f 422/740/376 432/739/376 436/744/376 +f 439/728/339 441/750/339 442/746/339 +f 440/725/212 442/746/212 443/747/212 +f 435/720/343 444/751/343 445/748/343 +f 431/716/342 446/754/342 447/749/342 +f 437/722/344 445/748/344 441/750/344 +f 434/719/338 447/749/338 444/751/338 +f 445/748/377 444/751/377 448/752/377 +f 446/754/378 450/763/378 451/755/378 +f 443/747/379 442/746/379 452/756/379 +f 441/750/638 454/1087/638 452/758/638 +f 445/748/381 449/1088/381 454/759/381 +f 443/747/639 453/757/639 455/760/639 +f 446/754/640 381/1089/640 455/762/640 +f 444/751/641 447/749/641 451/764/641 +f 455/766/340 456/785/340 457/767/340 +f 458/769/642 459/1090/642 460/770/642 +f 451/772/338 462/777/338 463/773/338 +f 448/774/343 463/773/343 464/775/343 +f 450/768/342 457/767/342 462/777/342 +f 452/778/212 458/782/212 465/779/212 +f 454/781/339 459/784/339 458/782/339 +f 449/783/344 464/1091/344 459/784/344 +f 453/780/341 465/779/341 456/785/341 +f 461/786/212 467/1092/212 468/787/212 +f 459/789/386 464/1093/386 469/790/386 +f 465/792/387 466/814/387 470/793/387 +f 457/795/388 456/1094/388 470/796/388 +f 462/798/643 472/817/643 473/799/643 +f 463/801/390 473/818/390 469/802/390 +f 462/804/644 457/1095/644 471/805/644 +f 458/807/645 461/786/645 466/788/645 +f 474/809/393 475/1096/393 476/810/393 +f 460/770/339 478/825/339 467/812/339 +f 469/790/344 479/826/344 478/813/344 +f 466/814/341 468/1097/341 480/815/341 +f 470/796/340 480/829/340 481/816/340 +f 472/817/338 475/1096/338 474/809/338 +f 473/818/343 474/1098/343 479/819/343 +f 471/805/342 481/823/342 475/820/342 +f 487/828/64 482/824/64 483/821/64 +f 483/821/64 484/827/64 485/822/64 +f 485/822/64 477/811/64 476/810/64 +f 476/810/64 486/830/64 487/828/64 +f 487/828/64 483/821/64 476/810/64 +f 479/819/394 474/1098/394 477/811/394 +f 481/823/395 486/830/395 476/810/395 +f 468/787/396 467/1092/396 483/821/396 +f 478/825/397 484/827/397 483/821/397 +f 479/826/398 485/822/398 484/827/398 +f 480/815/399 468/1097/399 482/824/399 +f 480/829/400 487/828/400 486/830/400 +f 431/831/401 374/842/401 383/832/401 +f 428/834/402 443/838/402 382/835/402 +f 393/843/646 488/845/646 395/658/646 +f 393/843/647 489/846/647 490/844/647 +f 384/645/648 372/622/648 489/846/648 +f 386/847/649 490/844/649 489/846/649 +f 385/848/650 379/1099/650 395/658/650 +f 385/848/651 488/845/651 490/844/651 +f 494/850/413 366/1100/413 360/851/413 +f 497/853/414 498/864/414 363/854/414 +f 501/856/652 502/1101/652 368/857/652 +f 504/859/653 359/866/653 368/860/653 +f 506/862/417 350/1102/417 366/863/417 +f 498/864/654 501/856/654 364/858/654 +f 493/852/655 360/1103/655 359/866/655 +f 506/862/420 497/853/420 351/867/420 +f 496/869/656 507/872/656 508/870/656 +f 507/872/343 497/853/343 506/862/343 +f 503/873/657 492/1104/657 509/874/657 +f 510/875/423 509/874/423 493/852/423 +f 500/876/658 511/879/658 512/877/658 +f 511/879/425 501/856/425 498/864/425 +f 491/880/659 505/1105/659 508/870/659 +f 508/870/344 506/862/344 494/850/344 +f 499/882/660 503/873/660 510/875/660 +f 499/884/661 514/1106/661 511/879/661 +f 495/885/662 512/877/662 507/872/662 +f 512/877/338 498/864/338 497/853/338 +f 491/887/663 513/881/663 509/874/663 +f 513/881/339 494/850/339 493/852/339 +f 504/889/431 515/902/431 516/890/431 +f 516/890/664 517/910/664 514/892/664 +f 518/893/433 519/915/433 501/894/433 +f 519/896/665 520/1107/665 502/897/665 +f 522/899/435 523/917/435 524/900/435 +f 502/897/665 520/1107/665 515/902/665 +f 514/892/664 517/910/664 518/893/664 +f 526/903/438 527/907/438 528/904/438 +f 516/890/127 515/902/127 525/906/127 +f 527/907/438 526/903/438 529/908/438 +f 517/910/198 527/907/198 530/909/198 +f 516/890/198 528/904/198 527/907/198 +f 526/911/439 525/922/439 532/912/439 +f 518/893/113 530/909/113 529/914/113 +f 522/899/440 533/942/440 534/916/440 +f 535/918/440 536/929/440 533/919/440 +f 515/921/127 523/917/127 534/916/127 +f 520/923/435 519/928/435 538/924/435 +f 533/919/439 536/929/439 539/926/439 +f 519/928/113 529/1108/113 536/929/113 +f 524/900/113 541/937/113 532/930/113 +f 521/932/441 540/927/441 539/926/441 +f 543/934/127 539/1109/127 544/935/127 +f 541/936/442 537/1110/442 531/913/442 +f 523/917/435 515/921/435 541/937/435 +f 543/934/435 535/918/435 522/920/435 +f 538/924/435 519/928/435 535/918/435 +f 541/937/435 515/921/435 520/939/435 +f 542/941/439 534/916/439 533/942/439 +f 536/929/439 529/1108/439 544/944/439 +f 532/912/439 525/922/439 534/916/439 +f 544/944/439 529/1108/439 526/945/439 +f 546/947/127 547/966/127 548/948/127 +f 551/952/198 548/1111/198 549/950/198 +f 548/1111/198 547/989/198 549/950/198 +f 553/953/113 554/968/113 555/954/113 +f 558/958/64 555/1112/64 556/956/64 +f 555/1112/64 554/987/64 556/956/64 +f 553/959/198 559/995/198 560/960/198 +f 546/962/64 562/993/64 563/963/64 +f 546/947/127 564/976/127 565/965/127 +f 553/953/113 561/978/113 566/967/113 +f 568/969/443 569/983/443 570/970/443 +f 572/972/444 573/982/444 574/973/444 +f 575/975/445 576/980/445 565/965/445 +f 578/977/446 566/967/446 561/978/446 +f 576/980/666 569/1113/666 568/981/666 +f 572/972/438 568/969/438 567/971/438 +f 569/983/448 576/980/448 575/975/448 +f 571/974/449 574/973/449 578/977/449 +f 578/977/667 574/1114/667 573/984/667 +f 568/969/451 572/972/451 560/960/451 +f 573/982/453 567/971/453 563/963/453 +f 580/986/64 556/956/64 554/987/64 +f 580/986/64 563/963/64 557/957/64 +f 563/963/64 562/993/64 557/957/64 +f 579/985/198 549/950/198 547/989/198 +f 579/985/198 560/960/198 550/951/198 +f 560/960/198 559/995/198 550/951/198 +f 572/991/668 571/1115/668 577/979/668 +f 567/992/669 570/1116/669 575/975/669 +f 545/994/64 558/958/64 562/993/64 +f 558/958/64 557/957/64 562/993/64 +f 552/996/198 551/952/198 559/995/198 +f 551/952/198 550/951/198 559/995/198 +f 537/997/442 538/1117/442 544/944/442 +f 521/998/441 524/1118/441 542/941/441 +f 90/169/670 72/137/670 106/191/670 +f 124/182/464 120/181/464 121/185/464 diff --git a/src/main/resources/assets/hbm/sounds.json b/src/main/resources/assets/hbm/sounds.json index 647cf0296..297205dcb 100644 --- a/src/main/resources/assets/hbm/sounds.json +++ b/src/main/resources/assets/hbm/sounds.json @@ -180,6 +180,8 @@ "weapon.hicalShot": {"category": "player", "sounds": [{"name": "weapon/hicalShot", "stream": false}]}, "weapon.coilgunReload": {"category": "player", "sounds": [{"name": "weapon/coilgunReload", "stream": false}]}, "weapon.coilgunShoot": {"category": "player", "sounds": [{"name": "weapon/coilgunShoot", "stream": false}]}, + "weapon.glReload": {"category": "player", "sounds": [{"name": "weapon/glReload", "stream": false}]}, + "weapon.glShoot": {"category": "player", "sounds": [{"name": "weapon/glShoot", "stream": false}]}, "weapon.dFlash": {"category": "player", "sounds": [{"name": "weapon/dFlash", "stream": false}]}, diff --git a/src/main/resources/assets/hbm/sounds/weapon/glReload.ogg b/src/main/resources/assets/hbm/sounds/weapon/glReload.ogg new file mode 100644 index 0000000000000000000000000000000000000000..36de2dae710a5f913b2879bb737f90bfdcbd9b0a GIT binary patch literal 10791 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 F^j~g61Csy% literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/sounds/weapon/glShoot.ogg b/src/main/resources/assets/hbm/sounds/weapon/glShoot.ogg new file mode 100644 index 0000000000000000000000000000000000000000..f75be2fe68ee72ee2bf32b82c08993bcb73c57cb GIT binary patch literal 18670 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 N0K*Qr%^M8(_yC~i%S-?O literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/congolake.png b/src/main/resources/assets/hbm/textures/models/weapons/congolake.png index dd3c9cd71c018fbcbae3a1710f1cb525d93e3166..04b2d2e8b8c62d1c827d84d33313cd00071f90ea 100644 GIT binary patch delta 3497 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 X5UFE|b|*r100000NkvXXu0mjfNi450 delta 3287 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 VuXSmAPHX@G002ovPDHLkV1g!dUv2;Z From 27648ca7a6c282b237397c15e3e1deed718df90e Mon Sep 17 00:00:00 2001 From: Bob Date: Sat, 12 Aug 2023 22:46:59 +0200 Subject: [PATCH 236/432] lanterns, heating oven connection fix --- src/main/java/com/hbm/blocks/ModBlocks.java | 7 + .../com/hbm/blocks/generic/BlockLantern.java | 31 ++++ .../blocks/generic/BlockLanternBehemoth.java | 59 ++++++++ .../com/hbm/blocks/machine/HeaterOven.java | 2 +- .../hbm/handler/guncfg/GunGrenadeFactory.java | 2 +- .../com/hbm/items/special/ItemKitNBT.java | 2 +- src/main/java/com/hbm/main/ClientProxy.java | 2 + .../java/com/hbm/main/ResourceManager.java | 7 + .../hbm/render/tileentity/RenderLantern.java | 40 +++++ .../tileentity/RenderLanternBehemoth.java | 53 +++++++ .../java/com/hbm/tileentity/TileMappings.java | 2 + .../tileentity/deco/TileEntityLantern.java | 34 +++++ .../deco/TileEntityLanternBehemoth.java | 138 ++++++++++++++++++ src/main/resources/assets/hbm/lang/de_DE.lang | 1 + src/main/resources/assets/hbm/lang/en_US.lang | 6 +- src/main/resources/assets/hbm/sounds.json | 4 + .../hbm/textures/models/trinkets/lantern.png | Bin 288 -> 959 bytes .../models/trinkets/lantern_rusty.png | Bin 0 -> 1838 bytes 18 files changed, 385 insertions(+), 5 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/generic/BlockLantern.java create mode 100644 src/main/java/com/hbm/blocks/generic/BlockLanternBehemoth.java create mode 100644 src/main/java/com/hbm/render/tileentity/RenderLantern.java create mode 100644 src/main/java/com/hbm/render/tileentity/RenderLanternBehemoth.java create mode 100644 src/main/java/com/hbm/tileentity/deco/TileEntityLantern.java create mode 100644 src/main/java/com/hbm/tileentity/deco/TileEntityLanternBehemoth.java create mode 100644 src/main/resources/assets/hbm/textures/models/trinkets/lantern_rusty.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 5ccbb3267..7896435cf 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -336,6 +336,9 @@ public class ModBlocks { public static Block lamp_uv_on; public static Block lamp_demon; + public static Block lantern; + public static Block lantern_behemoth; + public static Block reinforced_stone; public static Block concrete_smooth; public static Block concrete_colored; @@ -1546,6 +1549,8 @@ public class ModBlocks { lamp_uv_off = new UVLamp(false).setBlockName("lamp_uv_off").setCreativeTab(MainRegistry.blockTab); lamp_uv_on = new UVLamp(true).setBlockName("lamp_uv_on").setCreativeTab(null); lamp_demon = new DemonLamp().setBlockName("lamp_demon").setStepSound(Block.soundTypeMetal).setCreativeTab(MainRegistry.blockTab).setLightLevel(1F).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":lamp_demon"); + lantern = new BlockLantern().setBlockName("lantern").setStepSound(Block.soundTypeMetal).setCreativeTab(MainRegistry.blockTab).setLightLevel(1F).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":lantern"); + lantern_behemoth = new BlockLanternBehemoth().setBlockName("lantern_behemoth").setStepSound(Block.soundTypeMetal).setCreativeTab(MainRegistry.blockTab).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":lantern"); reinforced_stone = new BlockGeneric(Material.rock).setBlockName("reinforced_stone").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(3000.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_stone"); concrete_smooth = new BlockRadResistant(Material.rock).setBlockName("concrete_smooth").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(4000.0F).setBlockTextureName(RefStrings.MODID + ":concrete"); @@ -2697,6 +2702,8 @@ public class ModBlocks { GameRegistry.registerBlock(lamp_uv_off, lamp_uv_off.getUnlocalizedName()); GameRegistry.registerBlock(lamp_uv_on, lamp_uv_on.getUnlocalizedName()); GameRegistry.registerBlock(lamp_demon, lamp_demon.getUnlocalizedName()); + GameRegistry.registerBlock(lantern, lantern.getUnlocalizedName()); + GameRegistry.registerBlock(lantern_behemoth, lantern_behemoth.getUnlocalizedName()); //Reinforced Blocks GameRegistry.registerBlock(asphalt, ItemBlockBlastInfo.class, asphalt.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/generic/BlockLantern.java b/src/main/java/com/hbm/blocks/generic/BlockLantern.java new file mode 100644 index 000000000..7b725afc9 --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockLantern.java @@ -0,0 +1,31 @@ +package com.hbm.blocks.generic; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.tileentity.deco.TileEntityLantern; + +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class BlockLantern extends BlockDummyable { + + public BlockLantern() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityLantern(); + return null; + } + + @Override + public int[] getDimensions() { + return new int[] {4, 0, 0, 0, 0, 0}; + } + + @Override + public int getOffset() { + return 0; + } +} diff --git a/src/main/java/com/hbm/blocks/generic/BlockLanternBehemoth.java b/src/main/java/com/hbm/blocks/generic/BlockLanternBehemoth.java new file mode 100644 index 000000000..b90c1ad44 --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockLanternBehemoth.java @@ -0,0 +1,59 @@ +package com.hbm.blocks.generic; + +import java.util.Random; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ILookOverlay; +import com.hbm.tileentity.IRepairable; +import com.hbm.tileentity.deco.TileEntityLanternBehemoth; + +import api.hbm.block.IToolable; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; + +public class BlockLanternBehemoth extends BlockDummyable implements IToolable, ILookOverlay { + + public BlockLanternBehemoth() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityLanternBehemoth(); + return null; + } + + @Override + public Item getItemDropped(int i, Random rand, int j) { + return null; + } + + @Override + public int[] getDimensions() { + return new int[] {4, 0, 0, 0, 0, 0}; + } + + @Override + public int getOffset() { + return 0; + } + + @Override + public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) { + + if(tool != ToolType.TORCH) return false; + return IRepairable.tryRepairMultiblock(world, x, y, z, this, player); + } + + @Override + @SideOnly(Side.CLIENT) + public void printHook(Pre event, World world, int x, int y, int z) { + IRepairable.addGenericOverlay(event, world, x, y, z, this); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/HeaterOven.java b/src/main/java/com/hbm/blocks/machine/HeaterOven.java index 1aa60151b..a7373310a 100644 --- a/src/main/java/com/hbm/blocks/machine/HeaterOven.java +++ b/src/main/java/com/hbm/blocks/machine/HeaterOven.java @@ -23,7 +23,7 @@ public class HeaterOven extends BlockDummyable implements ITooltipProvider { public TileEntity createNewTileEntity(World world, int meta) { if(meta >= 12) return new TileEntityHeaterOven(); - return new TileEntityProxyCombo(true, false, false); + return new TileEntityProxyCombo().inventory().fluid(); } @Override diff --git a/src/main/java/com/hbm/handler/guncfg/GunGrenadeFactory.java b/src/main/java/com/hbm/handler/guncfg/GunGrenadeFactory.java index 76a4bfe8c..092b7fd5a 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunGrenadeFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunGrenadeFactory.java @@ -282,7 +282,7 @@ public class GunGrenadeFactory { public static BulletConfiguration getGrenadeLeadbursterConfig() { - BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); + BulletConfiguration bullet = BulletConfigFactory.standardGrenadeConfig(); bullet.ammo = new ComparableStack(ModItems.ammo_grenade.stackFromEnum(AmmoGrenade.LEADBURSTER)); bullet.spread = 0.0F; diff --git a/src/main/java/com/hbm/items/special/ItemKitNBT.java b/src/main/java/com/hbm/items/special/ItemKitNBT.java index e310c04de..f7248759c 100644 --- a/src/main/java/com/hbm/items/special/ItemKitNBT.java +++ b/src/main/java/com/hbm/items/special/ItemKitNBT.java @@ -62,7 +62,7 @@ public class ItemKitNBT extends Item { list.add("Contains:"); for(ItemStack item : stacks) { - list.add("-" + item.getDisplayName()); + list.add("-" + item.getDisplayName() + (item.stackSize > 1 ? (" x" + item.stackSize) : "")); } } } diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 906b81b3c..6ae85aebc 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -169,6 +169,8 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityBobble.class, new RenderBobble()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySnowglobe.class, new RenderSnowglobe()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityEmitter.class, new RenderEmitter()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityLantern.class, new RenderLantern()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityLanternBehemoth.class, new RenderLanternBehemoth()); //bombs ClientRegistry.bindTileEntitySpecialRenderer(TileEntityNukeGadget.class, new RenderNukeGadget()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityNukeBoy.class, new RenderNukeBoy()); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 7429142fa..a6d11780e 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -306,6 +306,9 @@ public class ResourceManager { public static Animation transition_seal_anim; public static final WavefrontObjDisplayList fire_door = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/fire_door.obj")).asDisplayList(); + //Lantern + public static final IModelCustom lantern = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/trinkets/lantern.obj")); + //Tesla Coil public static final IModelCustom tesla = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/tesla.obj")); public static final IModelCustom teslacrab = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/mobs/teslacrab.obj")); @@ -664,6 +667,10 @@ public class ResourceManager { public static final ResourceLocation transition_seal_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/transition_seal.png"); public static final ResourceLocation fire_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/fire_door.png"); + //Lantern + public static final ResourceLocation lantern_tex = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/lantern.png"); + public static final ResourceLocation lantern_rusty_tex = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/lantern_rusty.png"); + //Tesla Coil public static final ResourceLocation tesla_tex = new ResourceLocation(RefStrings.MODID, "textures/models/tesla.png"); public static final ResourceLocation teslacrab_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/teslacrab.png"); diff --git a/src/main/java/com/hbm/render/tileentity/RenderLantern.java b/src/main/java/com/hbm/render/tileentity/RenderLantern.java new file mode 100644 index 000000000..15ddc8637 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderLantern.java @@ -0,0 +1,40 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.main.ResourceManager; + +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.tileentity.TileEntity; + +public class RenderLantern extends TileEntitySpecialRenderer { + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { + + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + + bindTexture(ResourceManager.lantern_tex); + ResourceManager.lantern.renderPart("Lantern"); + + GL11.glPushMatrix(); + GL11.glDisable(GL11.GL_TEXTURE_2D); + GL11.glPushAttrib(GL11.GL_LIGHTING_BIT); + GL11.glDisable(GL11.GL_LIGHTING); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); + float mult = (float) (Math.sin(System.currentTimeMillis() / 200D) / 2 + 0.5) * 0.1F + 0.9F; + GL11.glColor3f(1F * mult, 1F * mult, 0.7F * mult); + ResourceManager.lantern.renderPart("Light"); + GL11.glColor3f(1F, 1F, 1F); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glPopAttrib(); + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glPopMatrix(); + + GL11.glPopMatrix(); + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderLanternBehemoth.java b/src/main/java/com/hbm/render/tileentity/RenderLanternBehemoth.java new file mode 100644 index 000000000..b7d18c4f5 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderLanternBehemoth.java @@ -0,0 +1,53 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.main.ResourceManager; +import com.hbm.tileentity.deco.TileEntityLanternBehemoth; + +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.tileentity.TileEntity; + +public class RenderLanternBehemoth extends TileEntitySpecialRenderer { + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { + + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + + TileEntityLanternBehemoth lantern = (TileEntityLanternBehemoth) tile; + if(lantern.isBroken) { + GL11.glRotated(5, 1, 0, 0); + GL11.glRotated(10, 0, 0, 1); + } + + bindTexture(ResourceManager.lantern_rusty_tex); + ResourceManager.lantern.renderPart("Lantern"); + + GL11.glPushMatrix(); + GL11.glDisable(GL11.GL_TEXTURE_2D); + GL11.glPushAttrib(GL11.GL_LIGHTING_BIT); + GL11.glDisable(GL11.GL_LIGHTING); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); + + if(lantern.isBroken) { + float mult = (float) (Math.sin(System.currentTimeMillis() / 200D) / 2 + 0.5); + GL11.glColor3f(1F * mult, 0, 0); + } else { + float mult = (float) (Math.sin(System.currentTimeMillis() / 200D) / 2 + 0.5) * 0.5F + 0.5F; + GL11.glColor3f(0, 1F * mult, 0); + } + ResourceManager.lantern.renderPart("Light"); + GL11.glColor3f(1F, 1F, 1F); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glPopAttrib(); + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glPopMatrix(); + + GL11.glPopMatrix(); + } +} diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 8498efeaa..0b0d84621 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -182,6 +182,8 @@ public class TileMappings { put(TileEntitySILEX.class, "tileentity_silex"); put(TileEntityFEL.class, "tileentity_fel"); put(TileEntityDemonLamp.class, "tileentity_demonlamp"); + put(TileEntityLantern.class, "tileentity_lantern_ordinary"); + put(TileEntityLanternBehemoth.class, "tileentity_lantern_behemoth"); put(TileEntityStorageDrum.class, "tileentity_waste_storage_drum"); put(TileEntityDeaerator.class, "tileentity_deaerator"); put(TileEntityCableBaseNT.class, "tileentity_ohgod"); // what? diff --git a/src/main/java/com/hbm/tileentity/deco/TileEntityLantern.java b/src/main/java/com/hbm/tileentity/deco/TileEntityLantern.java new file mode 100644 index 000000000..a93e4a303 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/deco/TileEntityLantern.java @@ -0,0 +1,34 @@ +package com.hbm.tileentity.deco; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; + +public class TileEntityLantern extends TileEntity { + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord, + yCoord, + zCoord, + xCoord + 1, + yCoord + 6, + zCoord + 1 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } +} diff --git a/src/main/java/com/hbm/tileentity/deco/TileEntityLanternBehemoth.java b/src/main/java/com/hbm/tileentity/deco/TileEntityLanternBehemoth.java new file mode 100644 index 000000000..5a732670c --- /dev/null +++ b/src/main/java/com/hbm/tileentity/deco/TileEntityLanternBehemoth.java @@ -0,0 +1,138 @@ +package com.hbm.tileentity.deco; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.entity.missile.EntityBobmazon; +import com.hbm.inventory.OreDictManager; +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.inventory.RecipesCommon.OreDictStack; +import com.hbm.items.ModItems; +import com.hbm.items.special.ItemKitCustom; +import com.hbm.tileentity.INBTPacketReceiver; +import com.hbm.tileentity.IRepairable; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; + +public class TileEntityLanternBehemoth extends TileEntity implements INBTPacketReceiver, IRepairable { + + public boolean isBroken = false; + public int comTimer = -1; + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + if(comTimer == 360) worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:block.hornNearSingle", 10F, 1F); + if(comTimer == 280) worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:block.hornFarSingle", 10000F, 1F); + if(comTimer == 220) worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:block.hornNearDual", 10F, 1F); + if(comTimer == 100) worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:block.hornFarDual", 10000F, 1F); + + if(comTimer == 0) { + EntityBobmazon shuttle = new EntityBobmazon(worldObj); + shuttle.posX = xCoord + 0.5 + worldObj.rand.nextGaussian() * 10; + shuttle.posY = 300; + shuttle.posZ = zCoord + 0.5 + worldObj.rand.nextGaussian() * 10; + ItemStack payload = ItemKitCustom.create("Supplies", null, 0xffffff, 0x008000, + new ItemStack(ModItems.circuit_aluminium, 4 + worldObj.rand.nextInt(4)), + new ItemStack(ModItems.circuit_copper, 4 + worldObj.rand.nextInt(2)), + new ItemStack(ModItems.circuit_red_copper, 2 + worldObj.rand.nextInt(3)), + new ItemStack(ModItems.circuit_gold, 1 + worldObj.rand.nextInt(2)), + new ItemStack(Items.diamond, 6 + worldObj.rand.nextInt(6)), + new ItemStack(Blocks.red_flower)/*, + ItemBookLore.createBook("beacon", 12, 0x808080, 0xDFBE26)*/); + shuttle.payload = payload; + + worldObj.spawnEntityInWorld(shuttle); + } + + if(comTimer >= 0) { + comTimer--; + } + + NBTTagCompound data = new NBTTagCompound(); + data.setBoolean("isBroken", isBroken); + INBTPacketReceiver.networkPack(this, data, 150); + } + } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + this.isBroken = nbt.getBoolean("isBroken"); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + isBroken = nbt.getBoolean("isBroken"); + comTimer = nbt.getInteger("comTimer"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setBoolean("isBroken", isBroken); + nbt.setInteger("comTimer", comTimer); + } + + @Override + public boolean isDamaged() { + return isBroken; + } + + List repair = new ArrayList(); + @Override + public List getRepairMaterials() { + + if(!repair.isEmpty()) + return repair; + + repair.add(new OreDictStack(OreDictManager.STEEL.plate(), 2)); + repair.add(new ComparableStack(ModItems.circuit_copper, 1)); + return repair; + } + + @Override + public void repair() { + this.isBroken = false; + this.comTimer = 400; + this.markDirty(); + } + + @Override public void tryExtinguish(World world, int x, int y, int z, EnumExtinguishType type) { } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord, + yCoord, + zCoord, + xCoord + 1, + yCoord + 6, + zCoord + 1 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } +} diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 81d7d7848..d52e13b21 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -1010,6 +1010,7 @@ item.ammo_grenade_finned.name=40mm Granate (Geflügelt) item.ammo_grenade_he.name=40mm Granate (HE) item.ammo_grenade_incendiary.name=40mm Granate (Brand) item.ammo_grenade_kampf.name=40mm Rakete +item.ammo_grenade_leadburster.name=40mm Leadburster item.ammo_grenade_nuclear.name=40mm Granate (Привет) item.ammo_grenade_phosphorus.name=40mm Granate (WP) item.ammo_grenade_sleek.name=40mm Granate (IF-F&E) diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 247d26a66..a7db733db 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -442,8 +442,8 @@ book_lore.beacon.page.5=light up red, otherwise it will light up green. Note tha book_lore.beacon.page.6=Chapter 3: Fog Horn $ The fog horn is the primary communication device of the beacon. The beacon is designed for peer-to-peer (P2P) communication as well as for message broadcasting. book_lore.beacon.page.7=Chapter 4: Peer-to-Peer $ For details on communication, refer to the communications handbook. A short rundown of establishing a P2P connection follows: First, the beacon has to give the "START CONNECTION" signal, book_lore.beacon.page.8=being a single long tone. All available peers should respond with a single long tone as well (order specified by proximity, as well as the communication guidelines outlined in the handbook, section "Responding to a Connection") -book_lore.beacon.page.9=Once the desired peer has responded, give the "ACCEPT CONNECTION" signal, being two long tones, the peer will then also respond with two long tones. All communication afterwards has to happen using pre-negotiated signals, -book_lore.beacon.page.10=most commonly using the FAR-5M standard. Communication will end immediately if no standard has been negotiated, serving as a "ping". Should communication continue, the connection can be ended using another long single tone "END CONNECTION". +book_lore.beacon.page.9=Once the desired peer has responded, give the "ACCEPT CONNECTION" signal, being two long tones, the peer will then also respond with two long tones. All communication afterwards has to happen using pre-negotiated signals, most commonly +book_lore.beacon.page.10=using the FAR-5M standard. Communication will end immediately if no standard has been negotiated, serving as a "ping". Should communication continue, the connection can be ended using another long single tone "END CONNECTION". book_lore.beacon.page.11=Chapter 5: Warranty $ [ page intentionally left blank ] cannery.f1=[ Press F1 for help ] @@ -914,6 +914,7 @@ desc.item.ammo.neu_fun=* Fun for the whole family! desc.item.ammo.neu_heavy_metal=* Heavy Metal desc.item.ammo.neu_homing=* Homing desc.item.ammo.neu_jolt=* Jolt +desc.item.ammo.neu_leadburster=* Attaches to surfaces and sprays bullets desc.item.ammo.neu_less_bouncy=* Less bouncy desc.item.ammo.neu_maskman_flechette=* Fires a tracer which summons a storm of DU-flechettes desc.item.ammo.neu_maskman_meteorite=* Fires a high-damage round that summons a small meteorite @@ -1659,6 +1660,7 @@ item.ammo_grenade_finned.name=40mm Grenade (Finned) item.ammo_grenade_he.name=40mm Grenade (HE) item.ammo_grenade_incendiary.name=40mm Grenade (Incendiary) item.ammo_grenade_kampf.name=40mm Rocket +item.ammo_grenade_leadburster.name=40mm Leadburster item.ammo_grenade_nuclear.name=40mm Grenade (Привет) item.ammo_grenade_phosphorus.name=40mm Grenade (WP) item.ammo_grenade_sleek.name=40mm Grenade (IF-R&D) diff --git a/src/main/resources/assets/hbm/sounds.json b/src/main/resources/assets/hbm/sounds.json index 297205dcb..90efc5334 100644 --- a/src/main/resources/assets/hbm/sounds.json +++ b/src/main/resources/assets/hbm/sounds.json @@ -54,6 +54,10 @@ "block.damage": {"category": "block", "sounds": ["block/dam1", "block/dam2", "block/dam3", "block/dam4"]}, "block.electricHum": {"category": "block", "sounds": [{"name": "block/electricHum", "stream": false}]}, "block.boiler": {"category": "block", "sounds": [{"name": "block/boiler", "stream": false}]}, + "block.hornNearSingle": {"category": "block", "sounds": [{"name": "block/hornNearSingle", "stream": false}]}, + "block.hornNearDual": {"category": "block", "sounds": [{"name": "block/hornNearDual", "stream": false}]}, + "block.hornFarSingle": {"category": "block", "sounds": [{"name": "block/hornFarSingle", "stream": false}]}, + "block.hornFarDual": {"category": "block", "sounds": [{"name": "block/hornFarDual", "stream": false}]}, "door.TransitionSealOpen": {"category": "block", "sounds": [{"name": "block/door/transition_seal_open", "stream": true}]}, "door.wghStart": {"category": "block", "sounds": [{"name": "block/door/wgh_start", "stream": true}]}, diff --git a/src/main/resources/assets/hbm/textures/models/trinkets/lantern.png b/src/main/resources/assets/hbm/textures/models/trinkets/lantern.png index 78496dc2a426eb078beb6b678f327fdf71cf5d1d..554a434e21ee23f48d10436c43fcca98474f6892 100644 GIT binary patch delta 922 zcmV;L17-Z60>1~4Gk*hiNkl+)&2AVu>2M^Zp*c5i$gB_aMX-)%ang-6f z(?Fbar-O(HMC7}<{|9n%OaLIp_;--aW|IIQrG(qt+h1!%0Ds`@>W=M>98{u0y$$Voa;fD+{T`a0d; z-~UL@KvGHzch>7QhGF=TiFF}nve|6XG)-vR79xVDr>8Vc6S}U$IF5LJes)z5w*7vO zX__D+I2;ae&VOMT2Beg#%(8x>tw8&Vx~O8Txx4_eK@t0}ZiWyLLiiq}G-jYcF-FYu zd>n*#U{*X{lfh9Y+;92$zhY9GTmvi3Qp`IH!vN4wsjg$vJ0h41@3@B6R7u2w7apJmVTSH_$r5y^GJJw05T@E z4yM5TA>o{>-wMiVX4CTE&gOYhd1!HFbg{NgUVrC-Pr-cpszKA98bYvV&Kd)IWzcmU z4u^w*Y`5F2p31;3+))q?a_J5OzP!9FFF9oe#~9IdowY{R$uv!N|JMKu2UNQl$DquZ zTHCg!FVP9Qn6p#+U?` zmVZ>s&aPv9-)GhBSv0K5-EOxiJk|_vCd{O~=y6bM0ktE9by8j(nBB4Z%EYEMp+Ifh zX7SKD<2YJ?b*;(1JcoIlg;$=Gi+)lXXP~x`1)Two1@G7f`fDjxbu#tZy|v6*)=%^k wgiF6Xe`|~YI(PUxMoXT3=hKnXol?R-`xBsA$LgjzZvX%Q07*qoM6N<$g8aS1hX4Qo delta 245 zcmV_0TgIIdwE0)z00000NkvXXu0mjfwN7$) diff --git a/src/main/resources/assets/hbm/textures/models/trinkets/lantern_rusty.png b/src/main/resources/assets/hbm/textures/models/trinkets/lantern_rusty.png new file mode 100644 index 0000000000000000000000000000000000000000..7f734a12bcabfabd14c9ff77b7d4ed0fb4a0bff9 GIT binary patch literal 1838 zcmV+}2hsS6P)MFqHe5UmZ0`U$VQh@JnZ`s$KIc4^T?cGEyjaq#3%`Kwu<`n?G{PN_Y{X}Z11oECDJ?Q=Ww*TzI58@BM|M;zSdK77;vTytM z{><~jwq4&E$zvrg8)=>Z`12Q^#I{|zoKI{U{N<}JV%;m#X{PQwfBpMEMF~M5}oLbu(B9AR@ zd&S$x_v^2};c_{#v7rK`tmI_eeRq$T@!3Zo#QLzZZj~38`AI}n*~@s!<(&E1Pk%xW z2yftlPr^l^$MDpYjLXHjUawCg$&@*b!dgo7?(8KH0#$H8H9_x)8t#SSkaBtw!4#YG zhzdJy+_04CqL?^2D_sQlPN@z)O!-*Y(>#A~psOk`ZWiV&oF~BqaKT$=Ukeh!axxr! zilnzb!ewA#niB3EF`<`6shtQXoATgrbDro9N&QKr^q?O`nhdTFS8|$g6wMPic^YO@ z2>_ggtX?v_{!S=&c9;{?8pJ3q+NLGoaKm=E3@~lBR@N;(U50 zqA77Y&%?b6=h+6yQl>T#uT1ky;N1d7fF81@9HL#JpEhN~CP0WOxtKG|`&VOMTuQB^})n86DD;2?R?< zD+R)7trG~X6vQ1wpAWA_KR|tVx8gl8vk`ta<~b7`1SRK0Esgt!4JDqXBSJZ-bzTzl zlyS!96ds_7loT`p!Lm%`?A+aLV}k$b^N+&_)^#P%nbw@k;fMK*)07W0D!ml0 zd!v!}mLDJ%Q7p=t!faLZyuI4;WNoT%ODA?)o)=l1q)NCYgG6PgB3x`V3IN*RIy(CD?{ zYM3cyKO#9ViTQNq;kw}-^jf*wH$oC3U@C+dJ)C5Ug%bj;jrd1REb-#S4VDt?!z++6 zUwSP=AQ_g7WJ>SB-~RcpH}^Rf)|i45=f=-RffeEGW%BQV;2rIUwG zmf6OBvR7(v)aKl;4ZPEO0~J!Tai&z*?pNldEawZ89Vn<-Bnkm4;b;Uz)6j7l?pq4;nyc@b8A~bJAbm)z{yYJYxjcq%4l9SPTC%h3p zjAmKJY?DBGg=E79BAhQ5#0+=H_UKq8+!2Mq$GDKOJ+!3uW* zC8-c1cyHvasAfD4+jj&LVai6x;7KW!Qo$t1NeNXfy~d{zQ7Il=PSZiQ?uaRxGf@iR z!sX_ItUH!6nle*@Wtn)m-w5yQr9%L(Bgu1SnrH4`J#bwsDJdeti_1bBWb^KL4O%Je z$D~~5M96^D6Hi3RNoYOD*${&?rN<}lWyf^vFUy<=grrAzN_AQY-5uPSv$3rkW*It| zCeCL8g65r@o0-}JMA>T}k(AnKrP4}6Qo?e^ROt?;5MIZAB4gcZ>qc)4#VO?wIiC`> z6{clI)JCBhGdbKbGZ3SCjF*LM=AOecO&v%9ydW(DsI^VA-%d12N86DD!0W cy^%HeFa6E#kiO{TF8}}l07*qoM6N<$f*_-W`v3p{ literal 0 HcmV?d00001 From 157456a0c87450225794bcddbceba3f4793a26b0 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 13 Aug 2023 21:04:12 +0200 Subject: [PATCH 237/432] ashpit --- changelog | 53 +++--- gradle.properties | 2 +- src/main/java/com/hbm/blocks/ModBlocks.java | 7 +- .../com/hbm/blocks/machine/MachineAshpit.java | 47 +++++ .../java/com/hbm/crafting/PowderRecipes.java | 3 +- .../java/com/hbm/crafting/ToolRecipes.java | 1 + .../java/com/hbm/crafting/WeaponRecipes.java | 2 + .../com/hbm/entity/mob/EntityGlyphid.java | 17 +- .../java/com/hbm/handler/FuelHandler.java | 9 + .../com/hbm/inventory/OreDictManager.java | 7 + .../inventory/container/ContainerAshpit.java | 73 ++++++++ .../java/com/hbm/inventory/gui/GUIAshpit.java | 41 ++++ .../inventory/material/MatDistribution.java | 5 + .../inventory/recipes/CentrifugeRecipes.java | 8 +- .../inventory/recipes/CombinationRecipes.java | 7 +- .../inventory/recipes/anvil/AnvilRecipes.java | 7 + src/main/java/com/hbm/items/ItemEnums.java | 6 + src/main/java/com/hbm/items/ModItems.java | 3 + src/main/java/com/hbm/lib/HbmWorldGen.java | 29 ++- src/main/java/com/hbm/lib/RefStrings.java | 2 +- src/main/java/com/hbm/main/ClientProxy.java | 1 + .../java/com/hbm/main/CraftingManager.java | 1 + .../java/com/hbm/main/ResourceManager.java | 1 + .../hbm/render/tileentity/RenderAshpit.java | 71 +++++++ .../hbm/render/tileentity/RenderLantern.java | 31 +++- .../com/hbm/render/tileentity/RenderLoot.java | 23 ++- .../java/com/hbm/tileentity/TileMappings.java | 1 + .../tileentity/deco/TileEntityLantern.java | 19 ++ .../deco/TileEntityLanternBehemoth.java | 7 +- .../tileentity/machine/TileEntityAshpit.java | 175 ++++++++++++++++++ .../machine/TileEntityFireboxBase.java | 37 +++- src/main/java/com/hbm/util/LootGenerator.java | 10 + .../java/com/hbm/world/feature/Meteorite.java | 6 - src/main/resources/assets/hbm/lang/de_DE.lang | 4 + src/main/resources/assets/hbm/lang/en_US.lang | 8 + .../hbm/textures/gui/machine/gui_ashpit.png | Bin 0 -> 1145 bytes .../hbm/textures/items/powder_ash.coal.png | Bin 0 -> 260 bytes .../hbm/textures/items/powder_ash.misc.png | Bin 0 -> 236 bytes .../hbm/textures/items/powder_ash.wood.png | Bin 0 -> 277 bytes .../hbm/textures/models/machines/ashpit.png | Bin 0 -> 3976 bytes 40 files changed, 666 insertions(+), 58 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/machine/MachineAshpit.java create mode 100644 src/main/java/com/hbm/inventory/container/ContainerAshpit.java create mode 100644 src/main/java/com/hbm/inventory/gui/GUIAshpit.java create mode 100644 src/main/java/com/hbm/render/tileentity/RenderAshpit.java create mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityAshpit.java create mode 100644 src/main/resources/assets/hbm/textures/gui/machine/gui_ashpit.png create mode 100644 src/main/resources/assets/hbm/textures/items/powder_ash.coal.png create mode 100644 src/main/resources/assets/hbm/textures/items/powder_ash.misc.png create mode 100644 src/main/resources/assets/hbm/textures/items/powder_ash.wood.png create mode 100644 src/main/resources/assets/hbm/textures/models/machines/ashpit.png diff --git a/changelog b/changelog index a97d31b1d..29e0ddd73 100644 --- a/changelog +++ b/changelog @@ -1,30 +1,33 @@ ## Added -* Electrolysis machine - * A large machine that can do the chemical plant's electrolysis recipes, as well as crystal processing - * Crystals are turned into molten metals as well as byproducts, the metal can be cast using foundry blocks - * Processing crystals requires nitric acid and yields more than what the centrifuge would give -* Environment suit - * An airtight suit for diving with high radiation resistance - * Relatively cheap, but protection is comparatively low - * Has sprint assist and accelerated diving +* Analysis tool + * A more universal version of the power net analyzer + * Currently only works on fluid networks though + * In addition to seeing links and subscribers, the analysis tool also displays subscriber positions as well as a log (up to 50 entries) of what block received how much fluid + * This should finally give more insight in the bug that rarely causes fluids to disappear +* Leadburster + * A 40mm launcher grenade that doesn't explode, instead it attaches itself to a block and starts firing bullets + * Fires in circles for 2 seconds before it self-destructs +* Congo lake + * A 40mm pump-action grenade launcher with a capacity of 4 rounds +* Lantern + * Cheap and fancy illumination + * Will blind glyphids in a small radius + * Glyphids don't actually have eyes, just don't think about it too much +* Ashpit + * An optional part that can be placed under fireboxes and heating ovens + * Collects ashes, producing one ash pile for every 10 furnace operations worth of fuel + * Ash comes in different types like wood (from planks, logs and saplings), coal (coal, lignite and coke) and generic (everything else) + * Ashes can be used as dyes, for making industrial fertilizer, as low-efficiency furnace fuel or for carbon in the crucible + * Coal ashes can also be centrifuged, returning the flammable content as unburned coal dust as well as a small amount of boron ## Changed -* Bedrock ores now spawn in the nether - * Nether bedrock ores include red phosphorus, quartz and glowstone, all yielding the items directly instead of ores - * All current nether bedrock ores are tier 1 and do not require any bore fluid -* Custom machines now show their recipes in NEI - * All it took was battling NEI's source code for 3 hours and my sanity -* Changed energy OC compatibility - * Make sure to update your programs, as the getEnergyStored and getMaxEnergy have been deprecated. -* The chlorocalcite centrifugation process now requires 8,000mB of sulfuric acid instead of 100mB of water -* Mixed chlorocalcite solution now requires flux as a reducing agent -* All chlorine producing electrolysis recipes have been moved to the electrolysis machine and can no longer be done in the chemical plant - * If only there was a much simpler recipe that may have existed at some point, life could be a dream -* Zirconium and lithium are now recognized crucible materials -* Glowstone now yields 100mB of chlorine in the combination oven instead of the initial 50mB +* Updated polish and chinese localization +* Flechettes now get stuck in blocks for a few seconds +* NBT kits now display the amount of items in a stack +* Removed the special nuclear meteorite ## Fixed -* Fixed custom machines not sending fluid -* Fixed custom machine item IO not working beyond the first slot -* Fixed target designators not accepting coordinates when not designated first (OC compatibility) -* Fixed the player's arms clipping through the armor model when punching +* Fixed thermos craching config hitting before the config is saved, resulting in an empty config the first time the server is launched +* Fixed heating oven not visually connecting to exhaust pipes +* Fixed loot blocks not correctly rendering items that require multiple render passes +* Fixed special meteorites spawning in worldgen diff --git a/gradle.properties b/gradle.properties index f40234eee..e8d659222 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4683 +mod_build_number=4690 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 7896435cf..fe480dde1 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -668,6 +668,7 @@ public class ModBlocks { public static Block heater_oilburner; public static Block heater_electric; public static Block heater_heatex; + public static Block machine_ashpit; public static Block furnace_iron; public static Block furnace_steel; @@ -1549,8 +1550,8 @@ public class ModBlocks { lamp_uv_off = new UVLamp(false).setBlockName("lamp_uv_off").setCreativeTab(MainRegistry.blockTab); lamp_uv_on = new UVLamp(true).setBlockName("lamp_uv_on").setCreativeTab(null); lamp_demon = new DemonLamp().setBlockName("lamp_demon").setStepSound(Block.soundTypeMetal).setCreativeTab(MainRegistry.blockTab).setLightLevel(1F).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":lamp_demon"); - lantern = new BlockLantern().setBlockName("lantern").setStepSound(Block.soundTypeMetal).setCreativeTab(MainRegistry.blockTab).setLightLevel(1F).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":lantern"); - lantern_behemoth = new BlockLanternBehemoth().setBlockName("lantern_behemoth").setStepSound(Block.soundTypeMetal).setCreativeTab(MainRegistry.blockTab).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":lantern"); + lantern = new BlockLantern().setBlockName("lantern").setStepSound(Block.soundTypeMetal).setCreativeTab(MainRegistry.blockTab).setLightLevel(1F).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); + lantern_behemoth = new BlockLanternBehemoth().setBlockName("lantern_behemoth").setStepSound(Block.soundTypeMetal).setCreativeTab(null).setHardness(3.0F).setBlockTextureName(RefStrings.MODID + ":block_rust"); reinforced_stone = new BlockGeneric(Material.rock).setBlockName("reinforced_stone").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(3000.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_stone"); concrete_smooth = new BlockRadResistant(Material.rock).setBlockName("concrete_smooth").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(4000.0F).setBlockTextureName(RefStrings.MODID + ":concrete"); @@ -1816,6 +1817,7 @@ public class ModBlocks { heater_oilburner = new HeaterOilburner().setBlockName("heater_oilburner").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); heater_electric = new HeaterElectric().setBlockName("heater_electric").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); heater_heatex = new HeaterHeatex().setBlockName("heater_heatex").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_ashpit = new MachineAshpit().setBlockName("machine_ashpit").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName("stonebrick"); furnace_iron = new FurnaceIron().setBlockName("furnace_iron").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_aluminium"); furnace_steel = new FurnaceSteel().setBlockName("furnace_steel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); @@ -3066,6 +3068,7 @@ public class ModBlocks { GameRegistry.registerBlock(machine_epress, machine_epress.getUnlocalizedName()); register(heater_firebox); register(heater_oven); + register(machine_ashpit); register(heater_oilburner); register(heater_electric); register(heater_heatex); diff --git a/src/main/java/com/hbm/blocks/machine/MachineAshpit.java b/src/main/java/com/hbm/blocks/machine/MachineAshpit.java new file mode 100644 index 000000000..578c7c2ce --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineAshpit.java @@ -0,0 +1,47 @@ +package com.hbm.blocks.machine; + +import java.util.List; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ITooltipProvider; +import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.machine.TileEntityAshpit; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class MachineAshpit extends BlockDummyable implements ITooltipProvider { + + public MachineAshpit() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityAshpit(); + return new TileEntityProxyCombo().inventory(); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + return this.standardOpenBehavior(world, x, y, z, player, 0); + } + + @Override + public int[] getDimensions() { + return new int[] {0, 0, 1, 1, 1, 1}; + } + + @Override + public int getOffset() { + return 1; + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } +} diff --git a/src/main/java/com/hbm/crafting/PowderRecipes.java b/src/main/java/com/hbm/crafting/PowderRecipes.java index 22200d0ef..20eb1a2f1 100644 --- a/src/main/java/com/hbm/crafting/PowderRecipes.java +++ b/src/main/java/com/hbm/crafting/PowderRecipes.java @@ -63,8 +63,9 @@ public class PowderRecipes { CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_flux, 8), new Object[] { PB.dust(), S.dust(), KEY_SAND }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_flux, 12), new Object[] { CA.dust(), KEY_SAND }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_flux, 16), new Object[] { BORAX.dust(), KEY_SAND }); - + CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_fertilizer, 4), new Object[] { CA.dust(), P_RED.dust(), KNO.dust(), S.dust() }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_fertilizer, 4), new Object[] { ANY_ASH.any(), P_RED.dust(), KNO.dust(), S.dust() }); if(GeneralConfig.enableLBSM && GeneralConfig.enableLBSMSimpleCrafting) { CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_advanced_alloy, 4), new Object[] { REDSTONE.dust(), IRON.dust(), COAL.dust(), CU.dust() }); diff --git a/src/main/java/com/hbm/crafting/ToolRecipes.java b/src/main/java/com/hbm/crafting/ToolRecipes.java index 7577f03d9..f418904f6 100644 --- a/src/main/java/com/hbm/crafting/ToolRecipes.java +++ b/src/main/java/com/hbm/crafting/ToolRecipes.java @@ -129,6 +129,7 @@ public class ToolRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.mirror_tool), new Object[] { " A ", " IA", "I ", 'A', AL.ingot(), 'I', IRON.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.rbmk_tool), new Object[] { " A ", " IA", "I ", 'A', PB.ingot(), 'I', IRON.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.power_net_tool), new Object[] { "WRW", " I ", " B ", 'W', ModItems.wire_red_copper, 'R', REDSTONE.dust(), 'I', IRON.ingot(), 'B', ModItems.battery_su }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.analysis_tool), new Object[] { " G", " S ", "S ", 'G', KEY_ANYPANE, 'S', STEEL.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.kit_toolbox_empty), new Object[] { "CCC", "CIC", 'C', CU.plate(), 'I', IRON.ingot() }); diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index 9218f6ee6..f8f149b7f 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -75,6 +75,7 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_karl, 1), new Object[] { "SSW", " MW", 'S', ModItems.hull_small_steel, 'W', ALLOY.plate(), 'M', ModItems.mechanism_launcher_2 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_quadro, 1), new Object[] { "SSS", "SSS", "CM ", 'S', ModItems.hull_small_steel, 'C', ModItems.circuit_targeting_tier3, 'M', ModItems.mechanism_launcher_2 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_hk69, 1), new Object[] { "SSI", " MB", 'S', ModItems.hull_small_steel, 'I', IRON.ingot(), 'M', ModItems.mechanism_launcher_1, 'B', ModItems.bolt_tungsten }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_congolake, 1), new Object[] { "HHR", "WLW", 'H', ModItems.hull_small_aluminium, 'R', ModItems.mechanism_rifle_1, 'W', KEY_LOG, 'L', ModItems.mechanism_launcher_1 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_stinger, 1), new Object[] { "SSW", "CMW", 'S', STEEL.plate(), 'W', TI.plate(), 'C', ModItems.circuit_red_copper, 'M', ModItems.mechanism_launcher_2 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_stinger_rocket, 4), new Object[] { "SS ", "STI", " IR", 'S', STEEL.plate(), 'T', Item.getItemFromBlock(Blocks.tnt), 'I', AL.plate(), 'R', REDSTONE.dust() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver, 1), new Object[] { "SSM", " RW", 'S', STEEL.plate(), 'W', KEY_PLANKS, 'R', ModItems.wire_aluminium, 'M', ModItems.mechanism_revolver_1 }); @@ -261,6 +262,7 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(ModItems.ammo_grenade.stackFromEnum(2, AmmoGrenade.NUCLEAR), new Object[] { " P ", "GIG", " P ", 'G', ModItems.ammo_grenade.stackFromEnum(AmmoGrenade.HE), 'I', ModItems.neutron_reflector, 'P', PU239.nugget() }); CraftingManager.addRecipeAuto(ModItems.ammo_grenade.stackFromEnum(AmmoGrenade.FINNED), new Object[] { "G", "R", 'G', Items.feather, 'R', ModItems.ammo_grenade }); CraftingManager.addRecipeAuto(ModItems.ammo_grenade.stackFromEnum(AmmoGrenade.KAMPF), new Object[] { "G", "R", 'G', ModItems.ammo_rocket, 'R', ModItems.ammo_grenade }); + CraftingManager.addRecipeAuto(ModItems.ammo_grenade.stackFromEnum(AmmoGrenade.LEADBURSTER), new Object[] { "LCL", "CHC", "LML", 'L', ModItems.pellet_buckshot, 'C', ANY_SMOKELESS.dust(), 'H', ModItems.hull_small_aluminium, 'M', ModItems.motor }); //240mm Shells CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_shell, 4), new Object[] { " T ", "GHG", "CCC", 'T', ModBlocks.tnt, 'G', Items.gunpowder, 'H', ModItems.hull_small_steel, 'C', CU.ingot() }); diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java index 10337b458..599b66f6a 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java @@ -19,6 +19,7 @@ import net.minecraft.entity.monster.EntityMob; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.potion.Potion; import net.minecraft.util.DamageSource; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; @@ -68,6 +69,7 @@ public class EntityGlyphid extends EntityMob { @Override protected Entity findPlayerToAttack() { + if(this.isPotionActive(Potion.blindness)) return null; EntityPlayer entityplayer = this.worldObj.getClosestVulnerablePlayerToEntity(this, useExtendedTargeting() ? 128D : 16D); return entityplayer != null && this.canEntityBeSeen(entityplayer) ? entityplayer : null; } @@ -75,11 +77,18 @@ public class EntityGlyphid extends EntityMob { @Override protected void updateEntityActionState() { super.updateEntityActionState(); - - // hell yeah!! - if(useExtendedTargeting() && this.entityToAttack != null && !this.hasPath()) { - this.setPathToEntity(PathFinderUtils.getPathEntityToEntityPartial(worldObj, this, this.entityToAttack, 16F, true, false, false, true)); + + if(this.isPotionActive(Potion.blindness)) { + this.entityToAttack = null; + this.setPathToEntity(null); + } else { + + // hell yeah!! + if(useExtendedTargeting() && this.entityToAttack != null && !this.hasPath()) { + this.setPathToEntity(PathFinderUtils.getPathEntityToEntityPartial(worldObj, this, this.entityToAttack, 16F, true, false, false, true)); + } } + } public boolean useExtendedTargeting() { diff --git a/src/main/java/com/hbm/handler/FuelHandler.java b/src/main/java/com/hbm/handler/FuelHandler.java index af8f911e7..951a5d6c2 100644 --- a/src/main/java/com/hbm/handler/FuelHandler.java +++ b/src/main/java/com/hbm/handler/FuelHandler.java @@ -51,6 +51,15 @@ public class FuelHandler implements IFuelHandler { } } + if(fuel.getItem() == ModItems.powder_ash) { + int meta = fuel.getItemDamage(); + switch(meta) { + case 0: return single / 2; + case 1: return single; + case 2: return single / 2; + } + } + return 0; } diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index 1f96d0d4b..36a75a648 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -23,6 +23,7 @@ import com.hbm.inventory.material.Mats; import com.hbm.inventory.material.NTMMaterial; import com.hbm.inventory.material.NTMMaterial.SmeltingBehavior; import com.hbm.items.ModItems; +import com.hbm.items.ItemEnums.EnumAshType; import com.hbm.items.ItemEnums.EnumBriquetteType; import com.hbm.items.ItemEnums.EnumCokeType; import com.hbm.items.ItemEnums.EnumTarType; @@ -291,6 +292,7 @@ public class OreDictManager { public static final DictGroup ANY_TAR = new DictGroup("Tar", KEY_OIL_TAR, KEY_COAL_TAR, KEY_CRACK_TAR, KEY_WOOD_TAR); /** Any special post-RBMK gating material, namely bismuth and arsenic */ public static final DictFrame ANY_BISMOID = new DictFrame("AnyBismoid"); + public static final DictFrame ANY_ASH = new DictFrame("Ash"); public static void registerOres() { @@ -458,6 +460,7 @@ public class OreDictManager { for(int i = 0; i < 16; i++) { ANY_CONCRETE.any(new ItemStack(ModBlocks.concrete_colored_ext, 1, i)); } ANY_COKE .gem(fromAll(coke, EnumCokeType.class)).block(fromAll(block_coke, EnumCokeType.class)); ANY_BISMOID .ingot(ingot_bismuth, ingot_arsenic).nugget(nugget_bismuth, nugget_arsenic).block(block_bismuth); + ANY_ASH .any(fromOne(ModItems.powder_ash, EnumAshType.WOOD), fromOne(ModItems.powder_ash, EnumAshType.COAL), fromOne(ModItems.powder_ash, EnumAshType.MISC)); /* * TAR @@ -563,6 +566,10 @@ public class OreDictManager { OreDictionary.registerOre("dye", new ItemStack(oil_tar, 1, OreDictionary.WILDCARD_VALUE)); OreDictionary.registerOre("dyeOrange", powder_cadmium); OreDictionary.registerOre("dye", powder_cadmium); + OreDictionary.registerOre("dyeLightGray", fromOne(powder_ash, EnumAshType.WOOD)); + OreDictionary.registerOre("dyeBlack", fromOne(powder_ash, EnumAshType.COAL)); + OreDictionary.registerOre("dyeGray", fromOne(powder_ash, EnumAshType.MISC)); + OreDictionary.registerOre("dye", new ItemStack(powder_ash, 1, OreDictionary.WILDCARD_VALUE)); OreDictionary.registerOre("blockGlass", glass_boron); OreDictionary.registerOre("blockGlass", glass_lead); diff --git a/src/main/java/com/hbm/inventory/container/ContainerAshpit.java b/src/main/java/com/hbm/inventory/container/ContainerAshpit.java new file mode 100644 index 000000000..5d3505d63 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerAshpit.java @@ -0,0 +1,73 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotTakeOnly; +import com.hbm.tileentity.machine.TileEntityAshpit; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerAshpit extends Container { + + protected TileEntityAshpit ashpit; + + public ContainerAshpit(InventoryPlayer invPlayer, TileEntityAshpit ashpit) { + this.ashpit = ashpit; + this.ashpit.openInventory(); + + for(int i = 0; i < 5; i++) this.addSlotToContainer(new SlotTakeOnly(ashpit, i, 44 + i * 18, 27)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 86 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 144)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + ItemStack stack = null; + Slot slot = (Slot) this.inventorySlots.get(index); + + if(slot != null && slot.getHasStack()) { + ItemStack originalStack = slot.getStack(); + stack = originalStack.copy(); + + if(index <= 4) { + if(!this.mergeItemStack(originalStack, 5, this.inventorySlots.size(), true)) { + return null; + } + + slot.onSlotChange(originalStack, stack); + + } else { + return null; + } + + if(originalStack.stackSize == 0) { + slot.putStack((ItemStack) null); + } else { + slot.onSlotChanged(); + } + } + + return stack; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return ashpit.isUseableByPlayer(player); + } + + @Override + public void onContainerClosed(EntityPlayer player) { + super.onContainerClosed(player); + this.ashpit.closeInventory(); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIAshpit.java b/src/main/java/com/hbm/inventory/gui/GUIAshpit.java new file mode 100644 index 000000000..af5a768e1 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIAshpit.java @@ -0,0 +1,41 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerAshpit; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.machine.TileEntityAshpit; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUIAshpit extends GuiInfoContainer { + + private TileEntityAshpit firebox; + private final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/machine/gui_ashpit.png"); + + public GUIAshpit(InventoryPlayer invPlayer, TileEntityAshpit tedf) { + super(new ContainerAshpit(invPlayer, tedf)); + firebox = tedf; + + this.xSize = 176; + this.ySize = 168; + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.firebox.hasCustomInventoryName() ? this.firebox.getInventoryName() : I18n.format(this.firebox.getInventoryName()); + + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + } +} diff --git a/src/main/java/com/hbm/inventory/material/MatDistribution.java b/src/main/java/com/hbm/inventory/material/MatDistribution.java index 11a636399..5c04519b5 100644 --- a/src/main/java/com/hbm/inventory/material/MatDistribution.java +++ b/src/main/java/com/hbm/inventory/material/MatDistribution.java @@ -22,6 +22,7 @@ import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.material.Mats.MaterialStack; import com.hbm.inventory.recipes.loader.SerializableRecipe; import com.hbm.items.ModItems; +import com.hbm.items.ItemEnums.EnumAshType; import com.hbm.util.Compat; import net.minecraft.block.Block; @@ -85,6 +86,10 @@ public class MatDistribution extends SerializableRecipe { registerEntry(DictFrame.fromOne(ModBlocks.stone_resource, EnumStoneType.LIMESTONE), MAT_FLUX, DUST.q(10)); registerEntry(ModItems.powder_flux, MAT_FLUX, DUST.q(1)); registerEntry(new ItemStack(Items.coal, 1, 1), MAT_CARBON, NUGGET.q(3)); + + registerEntry(DictFrame.fromOne(ModItems.powder_ash, EnumAshType.WOOD), MAT_CARBON, NUGGET.q(1)); + registerEntry(DictFrame.fromOne(ModItems.powder_ash, EnumAshType.COAL), MAT_CARBON, NUGGET.q(2)); + registerEntry(DictFrame.fromOne(ModItems.powder_ash, EnumAshType.MISC), MAT_CARBON, NUGGET.q(1)); } public static void registerEntry(Object key, Object... matDef) { diff --git a/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java b/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java index 992ed2e3e..a3735f8bb 100644 --- a/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java @@ -19,6 +19,7 @@ import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.recipes.loader.SerializableRecipe; +import com.hbm.items.ItemEnums.EnumAshType; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemWatzPellet.EnumWatzType; import com.hbm.items.special.ItemBedrockOre.EnumBedrockOre; @@ -368,9 +369,14 @@ public class CentrifugeRecipes extends SerializableRecipe { recipes.put(new ComparableStack(ModBlocks.block_slag), new ItemStack[] { new ItemStack(Blocks.gravel, 1), new ItemStack(ModItems.powder_fire, 1), - new ItemStack(ModItems.powder_calcium), //temp + new ItemStack(ModItems.powder_calcium), new ItemStack(ModItems.dust) }); + recipes.put(new ComparableStack(ModItems.powder_ash, 1, EnumAshType.COAL.ordinal()), new ItemStack[] { + new ItemStack(ModItems.powder_coal_tiny, 2), + new ItemStack(ModItems.powder_boron_tiny, 1), + new ItemStack(ModItems.dust_tiny, 6)}); + for(EnumBedrockOre ore : EnumBedrockOre.values()) { int i = ore.ordinal(); diff --git a/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java b/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java index a84cae509..d1c218639 100644 --- a/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java @@ -18,6 +18,7 @@ import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.recipes.loader.SerializableRecipe; +import com.hbm.items.ItemEnums.EnumAshType; import com.hbm.items.ItemEnums.EnumBriquetteType; import com.hbm.items.ItemEnums.EnumCokeType; import com.hbm.items.ItemEnums.EnumTarType; @@ -47,9 +48,9 @@ public class CombinationRecipes extends SerializableRecipe { recipes.put(new ComparableStack(Items.glowstone_dust), new Pair(new ItemStack(ModItems.sulfur), new FluidStack(Fluids.CHLORINE, 100))); recipes.put(new ComparableStack(DictFrame.fromOne(ModBlocks.stone_resource, EnumStoneType.BAUXITE)), new Pair(new ItemStack(ModItems.ingot_aluminium, 2), new FluidStack(Fluids.REDMUD, 250))); - recipes.put(KEY_LOG, new Pair(new ItemStack(Items.coal, 1 ,1), new FluidStack(Fluids.WOODOIL, 250))); - recipes.put(KEY_SAPLING, new Pair(null, new FluidStack(Fluids.WOODOIL, 50))); - recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.briquette, EnumBriquetteType.WOOD)), new Pair(new ItemStack(Items.coal, 1 ,1), new FluidStack(Fluids.WOODOIL, 500))); + recipes.put(KEY_LOG, new Pair(new ItemStack(Items.coal, 1 ,1), new FluidStack(Fluids.WOODOIL, 250))); + recipes.put(KEY_SAPLING, new Pair(DictFrame.fromOne(ModItems.powder_ash, EnumAshType.WOOD), new FluidStack(Fluids.WOODOIL, 50))); + recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.briquette, EnumBriquetteType.WOOD)), new Pair(new ItemStack(Items.coal, 1 ,1), new FluidStack(Fluids.WOODOIL, 500))); recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRUDE)), new Pair(DictFrame.fromOne(ModItems.coke, EnumCokeType.PETROLEUM), null)); recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRACK)), new Pair(DictFrame.fromOne(ModItems.coke, EnumCokeType.PETROLEUM), null)); diff --git a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java index bc29c1fc2..1a488b9cb 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -237,6 +237,13 @@ public class AnvilRecipes { new OreDictStack(CU.ingot(), 8) }, new AnvilOutput(new ItemStack(ModBlocks.heater_oven))).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( + new AStack[] { + new ComparableStack(Blocks.stone, 8), + new OreDictStack(STEEL.plate(), 2), + new OreDictStack(IRON.ingot(), 4) + }, new AnvilOutput(new ItemStack(ModBlocks.machine_ashpit))).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] { new ComparableStack(ModItems.tank_steel, 4), diff --git a/src/main/java/com/hbm/items/ItemEnums.java b/src/main/java/com/hbm/items/ItemEnums.java index c1424f43f..a83f5171c 100644 --- a/src/main/java/com/hbm/items/ItemEnums.java +++ b/src/main/java/com/hbm/items/ItemEnums.java @@ -23,6 +23,12 @@ public class ItemEnums { PARAFFIN } + public static enum EnumAshType { + WOOD, + COAL, + MISC + } + public static enum EnumBriquetteType { COAL, LIGNITE, diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 0b8389465..0ea177e3b 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -109,6 +109,7 @@ public class ModItems { public static Item briquette; public static Item coal_infernal; public static Item cinnebar; + public static Item powder_ash; public static Item niter; public static Item ingot_copper; @@ -2724,6 +2725,7 @@ public class ModItems { powder_lignite = new Item().setUnlocalizedName("powder_lignite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_lignite"); coal_infernal = new Item().setUnlocalizedName("coal_infernal").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":coal_infernal"); cinnebar = new Item().setUnlocalizedName("cinnebar").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":cinnebar"); + powder_ash = new ItemEnumMulti(EnumAshType.class, true, true).setUnlocalizedName("powder_ash").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_ash"); ingot_gh336 = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("ingot_gh336").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_gh336"); nugget_gh336 = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("nugget_gh336").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_gh336"); @@ -5812,6 +5814,7 @@ public class ModItems { GameRegistry.registerItem(dust, dust.getUnlocalizedName()); GameRegistry.registerItem(dust_tiny, dust_tiny.getUnlocalizedName()); GameRegistry.registerItem(fallout, fallout.getUnlocalizedName()); + GameRegistry.registerItem(powder_ash, powder_ash.getUnlocalizedName()); //Powders GameRegistry.registerItem(powder_fire, powder_fire.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/lib/HbmWorldGen.java b/src/main/java/com/hbm/lib/HbmWorldGen.java index 323e01b0c..6182148ab 100644 --- a/src/main/java/com/hbm/lib/HbmWorldGen.java +++ b/src/main/java/com/hbm/lib/HbmWorldGen.java @@ -9,11 +9,14 @@ import com.hbm.blocks.generic.BlockNTMFlower.EnumFlowerType; import com.hbm.config.GeneralConfig; import com.hbm.config.MobConfig; import com.hbm.config.WorldConfig; +import com.hbm.handler.MultiblockHandlerXR; import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; import com.hbm.saveddata.TomSaveData; +import com.hbm.tileentity.deco.TileEntityLanternBehemoth; import com.hbm.tileentity.machine.storage.TileEntitySafe; import com.hbm.tileentity.machine.storage.TileEntitySoyuzCapsule; +import com.hbm.util.LootGenerator; import com.hbm.util.WeightedRandomGeneric; import com.hbm.world.dungeon.AncientTomb; import com.hbm.world.dungeon.Antenna; @@ -59,6 +62,7 @@ import net.minecraft.world.biome.BiomeGenJungle; import net.minecraft.world.biome.BiomeGenRiver; import net.minecraft.world.chunk.IChunkProvider; import net.minecraft.world.gen.feature.WorldGenMinable; +import net.minecraftforge.common.util.ForgeDirection; import cpw.mods.fml.common.IWorldGenerator; public class HbmWorldGen implements IWorldGenerator { @@ -389,6 +393,29 @@ public class HbmWorldGen implements IWorldGenerator { } } + if(rand.nextInt(1000) == 0) { + int x = i + rand.nextInt(16); + int z = j + rand.nextInt(16); + int y = world.getHeightValue(x, z); + + if(world.getBlock(x, y - 1, z).canPlaceTorchOnTop(world, x, y - 1, z) && world.getBlock(x, y, z).isReplaceable(world, x, y, z)) { + + world.setBlock(x, y, z, ModBlocks.lantern_behemoth, 12, 3); + MultiblockHandlerXR.fillSpace(world, x, y, z, new int[] {4, 0, 0, 0, 0, 0}, ModBlocks.lantern_behemoth, ForgeDirection.NORTH); + + TileEntityLanternBehemoth lantern = (TileEntityLanternBehemoth) world.getTileEntity(x, y, z); + lantern.isBroken = true; + + if(rand.nextInt(2) == 0) { + LootGenerator.setBlock(world, x, y, z - 2); + LootGenerator.lootBooklet(world, x, y, z - 2); + } + + if(GeneralConfig.enableDebugMode) + MainRegistry.logger.info("[Debug] Successfully spawned lantern at " + x + " " + (y) + " " + z); + } + } + if(GeneralConfig.enable528 && GeneralConfig.enable528BosniaSimulator && rand.nextInt(16) == 0) { int x = i + rand.nextInt(16); int z = j + rand.nextInt(16); @@ -629,7 +656,7 @@ public class HbmWorldGen implements IWorldGenerator { int x = i + rand.nextInt(16); int z = j + rand.nextInt(16); int y = world.getHeightValue(x, z) - rand.nextInt(10); - (new Meteorite()).generate(world, rand, x, y, z, false, true, false); + (new Meteorite()).generate(world, rand, x, y, z, false, false, false); } if (GeneralConfig.enableNITAN) { diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 3d7045278..a941f6568 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4683)"; + public static final String VERSION = "1.0.27 BETA (4690)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 6ae85aebc..4c469d776 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -266,6 +266,7 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFurnaceCombination.class, new RenderFurnaceCombination()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityHeaterFirebox.class, new RenderFirebox()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityHeaterOven.class, new RenderHeatingOven()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityAshpit.class, new RenderAshpit()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityHeaterOilburner.class, new RenderOilburner()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityHeaterElectric.class, new RenderElectricHeater()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityHeaterHeatex.class, new RenderHeaterHeatex()); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 1a4b56848..90dc90185 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -450,6 +450,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.lamp_tritium_green_off, 1), new Object[] { "GPG", "1T2", "GPG", 'G', KEY_ANYGLASS, 'P', P_RED.dust(), 'T', ModItems.cell_tritium, '1', "dustSulfur", '2', CU.dust() }); addRecipeAuto(new ItemStack(ModBlocks.lamp_tritium_blue_off, 1), new Object[] { "GPG", "1T2", "GPG", 'G', KEY_ANYGLASS, 'P',P_RED.dust(), 'T', ModItems.cell_tritium, '1', AL.dust(), '2', ST.dust() }); + addRecipeAuto(new ItemStack(ModBlocks.lantern, 1), new Object[] { "PGP", " S ", " S ", 'P', KEY_ANYPANE, 'G', Items.glowstone_dust, 'S', ModBlocks.steel_beam }); addRecipeAuto(new ItemStack(ModBlocks.barbed_wire, 16), new Object[] { "AIA", "I I", "AIA", 'A', ModItems.wire_aluminium, 'I', IRON.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.barbed_wire_fire, 8), new Object[] { "BBB", "BIB", "BBB", 'B', ModBlocks.barbed_wire, 'I', P_RED.dust() }); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index a6d11780e..5959f4f48 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -390,6 +390,7 @@ public class ResourceManager { //Heaters public static final ResourceLocation heater_firebox_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/firebox.png"); public static final ResourceLocation heater_oven_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/heating_oven.png"); + public static final ResourceLocation ashpit_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/ashpit.png"); public static final ResourceLocation heater_oilburner_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/oilburner.png"); public static final ResourceLocation heater_electric_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/electric_heater.png"); public static final ResourceLocation heater_heatex_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/heater_heatex.png"); diff --git a/src/main/java/com/hbm/render/tileentity/RenderAshpit.java b/src/main/java/com/hbm/render/tileentity/RenderAshpit.java new file mode 100644 index 000000000..cfee40260 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderAshpit.java @@ -0,0 +1,71 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; +import com.hbm.tileentity.machine.TileEntityAshpit; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderAshpit extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + + switch(tile.getBlockMetadata() - BlockDummyable.offset) { + case 3: GL11.glRotatef(0, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 2: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(270, 0F, 1F, 0F); break; + } + GL11.glRotatef(-90, 0F, 1F, 0F); + + TileEntityAshpit oven = (TileEntityAshpit) tile; + + bindTexture(ResourceManager.ashpit_tex); + ResourceManager.heater_oven.renderPart("Main"); + + GL11.glPushMatrix(); + float door = oven.prevDoorAngle + (oven.doorAngle - oven.prevDoorAngle) * interp; + GL11.glTranslated(0, 0, door * 0.75D / 135D); + ResourceManager.heater_oven.renderPart("Door"); + GL11.glPopMatrix(); + + if(oven.isFull) { + ResourceManager.heater_oven.renderPart("InnerBurning"); + } else { + ResourceManager.heater_oven.renderPart("Inner"); + } + + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.machine_ashpit); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase() { + public void renderInventory() { + GL11.glTranslated(0, -1, 0); + GL11.glScaled(3.25, 3.25, 3.25); + } + public void renderCommon() { + bindTexture(ResourceManager.ashpit_tex); + ResourceManager.heater_oven.renderPart("Main"); + ResourceManager.heater_oven.renderPart("Door"); + }}; + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderLantern.java b/src/main/java/com/hbm/render/tileentity/RenderLantern.java index 15ddc8637..d61594f60 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderLantern.java +++ b/src/main/java/com/hbm/render/tileentity/RenderLantern.java @@ -2,13 +2,17 @@ package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; +import com.hbm.blocks.ModBlocks; import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; -public class RenderLantern extends TileEntitySpecialRenderer { +public class RenderLantern extends TileEntitySpecialRenderer implements IItemRendererProvider { @Override public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { @@ -37,4 +41,29 @@ public class RenderLantern extends TileEntitySpecialRenderer { GL11.glPopMatrix(); } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.lantern); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase() { + public void renderInventory() { + GL11.glTranslated(0, -5, 0); + double scale = 2.75; + GL11.glScaled(scale, scale, scale); + } + public void renderCommon() { + bindTexture(ResourceManager.lantern_tex); + ResourceManager.lantern.renderPart("Lantern"); + GL11.glDisable(GL11.GL_TEXTURE_2D); + float mult = (float) (Math.sin(System.currentTimeMillis() / 200D) / 2 + 0.5) * 0.1F + 0.9F; + GL11.glColor3f(1F * mult, 1F * mult, 0.7F * mult); + ResourceManager.lantern.renderPart("Light"); + GL11.glColor3f(1F, 1F, 1F); + GL11.glEnable(GL11.GL_TEXTURE_2D); + }}; + } } diff --git a/src/main/java/com/hbm/render/tileentity/RenderLoot.java b/src/main/java/com/hbm/render/tileentity/RenderLoot.java index d25492de0..1813bb7d7 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderLoot.java +++ b/src/main/java/com/hbm/render/tileentity/RenderLoot.java @@ -100,11 +100,22 @@ public class RenderLoot extends TileEntitySpecialRenderer { GL11.glRotated(90, 1, 0, 0); bindTexture(TextureMap.locationItemsTexture); - IIcon icon = stack.getIconIndex(); - float f14 = icon.getMinU(); - float f15 = icon.getMaxU(); - float f4 = icon.getMinV(); - float f5 = icon.getMaxV(); - ItemRenderer.renderItemIn2D(Tessellator.instance, f15, f4, f14, f5, icon.getIconWidth(), icon.getIconHeight(), 0.0625F); + + for(int i = 0; i < stack.getItem().getRenderPasses(stack.getItemDamage()); i++) { + + IIcon icon = stack.getItem().getIcon(stack, i); + float f14 = icon.getMinU(); + float f15 = icon.getMaxU(); + float f4 = icon.getMinV(); + float f5 = icon.getMaxV(); + + int k1 = stack.getItem().getColorFromItemStack(stack, i); + float f10 = (float) (k1 >> 16 & 255) / 255.0F; + float f11 = (float) (k1 >> 8 & 255) / 255.0F; + float f12 = (float) (k1 & 255) / 255.0F; + GL11.glColor4f(1.0F * f10, 1.0F * f11, 1.0F * f12, 1.0F); + + ItemRenderer.renderItemIn2D(Tessellator.instance, f15, f4, f14, f5, icon.getIconWidth(), icon.getIconHeight(), 0.0625F); + } } } diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 0b0d84621..74b76c50b 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -259,6 +259,7 @@ public class TileMappings { private static void putMachines() { put(TileEntityHeaterFirebox.class, "tileentity_firebox"); put(TileEntityHeaterOven.class, "tileentity_heating_oven"); + put(TileEntityAshpit.class, "tileentity_ashpit"); put(TileEntityHeaterOilburner.class, "tileentity_oilburner"); put(TileEntityHeaterElectric.class, "tileentity_electric_heater"); put(TileEntityHeaterHeatex.class, "tileentity_heater_heatex"); diff --git a/src/main/java/com/hbm/tileentity/deco/TileEntityLantern.java b/src/main/java/com/hbm/tileentity/deco/TileEntityLantern.java index a93e4a303..65be4a600 100644 --- a/src/main/java/com/hbm/tileentity/deco/TileEntityLantern.java +++ b/src/main/java/com/hbm/tileentity/deco/TileEntityLantern.java @@ -1,12 +1,31 @@ package com.hbm.tileentity.deco; +import java.util.List; + +import com.hbm.entity.mob.EntityGlyphid; + import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; public class TileEntityLantern extends TileEntity { + @Override + public void updateEntity() { + + if(!worldObj.isRemote && worldObj.getTotalWorldTime() % 20 == 0) { + + List glyphids = worldObj.getEntitiesWithinAABB(EntityGlyphid.class, AxisAlignedBB.getBoundingBox(xCoord + 0.5, yCoord + 5.5, zCoord + 0.5, xCoord + 0.5, yCoord + 5.5, zCoord + 0.5).expand(7.5, 7.5, 7.5)); + + for(EntityGlyphid glyphid : glyphids) { + glyphid.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 0)); + } + } + } + AxisAlignedBB bb = null; @Override diff --git a/src/main/java/com/hbm/tileentity/deco/TileEntityLanternBehemoth.java b/src/main/java/com/hbm/tileentity/deco/TileEntityLanternBehemoth.java index 5a732670c..ca5731bb2 100644 --- a/src/main/java/com/hbm/tileentity/deco/TileEntityLanternBehemoth.java +++ b/src/main/java/com/hbm/tileentity/deco/TileEntityLanternBehemoth.java @@ -48,9 +48,8 @@ public class TileEntityLanternBehemoth extends TileEntity implements INBTPacketR new ItemStack(ModItems.circuit_copper, 4 + worldObj.rand.nextInt(2)), new ItemStack(ModItems.circuit_red_copper, 2 + worldObj.rand.nextInt(3)), new ItemStack(ModItems.circuit_gold, 1 + worldObj.rand.nextInt(2)), - new ItemStack(Items.diamond, 6 + worldObj.rand.nextInt(6)), - new ItemStack(Blocks.red_flower)/*, - ItemBookLore.createBook("beacon", 12, 0x808080, 0xDFBE26)*/); + worldObj.rand.nextInt(3) == 0 ? new ItemStack(ModItems.gem_alexandrite) : new ItemStack(Items.diamond, 6 + worldObj.rand.nextInt(6)), + new ItemStack(Blocks.red_flower)); shuttle.payload = payload; worldObj.spawnEntityInWorld(shuttle); @@ -62,7 +61,7 @@ public class TileEntityLanternBehemoth extends TileEntity implements INBTPacketR NBTTagCompound data = new NBTTagCompound(); data.setBoolean("isBroken", isBroken); - INBTPacketReceiver.networkPack(this, data, 150); + INBTPacketReceiver.networkPack(this, data, 250); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityAshpit.java b/src/main/java/com/hbm/tileentity/machine/TileEntityAshpit.java new file mode 100644 index 000000000..d5e27e4ac --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityAshpit.java @@ -0,0 +1,175 @@ +package com.hbm.tileentity.machine; + +import com.hbm.inventory.OreDictManager.DictFrame; +import com.hbm.inventory.container.ContainerAshpit; +import com.hbm.inventory.gui.GUIAshpit; +import com.hbm.items.ItemEnums.EnumAshType; +import com.hbm.items.ModItems; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.TileEntityMachineBase; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; + +public class TileEntityAshpit extends TileEntityMachineBase implements IGUIProvider { + + private int playersUsing = 0; + public float doorAngle = 0; + public float prevDoorAngle = 0; + public boolean isFull; + + public int ashLevelWood; + public int ashLevelCoal; + public int ashLevelMisc; + + public TileEntityAshpit() { + super(5); + } + + @Override + public void openInventory() { + if(!worldObj.isRemote) this.playersUsing++; + } + + @Override + public void closeInventory() { + if(!worldObj.isRemote) this.playersUsing--; + } + + @Override + public String getName() { + return "container.ashpit"; + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + int threshold = 2000; + + if(processAsh(ashLevelWood, EnumAshType.WOOD, threshold)) ashLevelWood -= threshold; + if(processAsh(ashLevelCoal, EnumAshType.COAL, threshold)) ashLevelCoal -= threshold; + if(processAsh(ashLevelMisc, EnumAshType.MISC, threshold)) ashLevelMisc -= threshold; + + isFull = false; + + for(int i = 0; i < 5; i++) { + if(slots[i] != null) isFull = true; + } + + NBTTagCompound data = new NBTTagCompound(); + data.setInteger("playersUsing", this.playersUsing); + data.setBoolean("isFull", this.isFull); + this.networkPack(data, 50); + + } else { + this.prevDoorAngle = this.doorAngle; + float swingSpeed = (doorAngle / 10F) + 3; + + if(this.playersUsing > 0) { + this.doorAngle += swingSpeed; + } else { + this.doorAngle -= swingSpeed; + } + + this.doorAngle = MathHelper.clamp_float(this.doorAngle, 0F, 135F); + } + } + + protected boolean processAsh(int level, EnumAshType type, int threshold) { + + if(level >= threshold) { + for(int i = 0; i < 5; i++) { + if(slots[i] == null) { + slots[i] = DictFrame.fromOne(ModItems.powder_ash, type); + ashLevelWood -= threshold; + return true; + } else if(slots[i].stackSize < slots[i].getMaxStackSize() && slots[i].getItem() == ModItems.powder_ash && slots[i].getItemDamage() == type.ordinal()) { + slots[i].stackSize++; + return true; + } + } + } + + return false; + } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + this.playersUsing = nbt.getInteger("playersUsing"); + this.isFull = nbt.getBoolean("isFull"); + } + + @Override + public int[] getAccessibleSlotsFromSide(int meta) { + return new int[] { 0, 1, 2, 3, 4 }; + } + + @Override + public boolean canExtractItem(int i, ItemStack itemStack, int j) { + return true; + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + this.ashLevelWood = nbt.getInteger("ashLevelWood"); + this.ashLevelCoal = nbt.getInteger("ashLevelCoal"); + this.ashLevelMisc = nbt.getInteger("ashLevelMisc"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + nbt.setInteger("ashLevelWood", ashLevelWood); + nbt.setInteger("ashLevelCoal", ashLevelCoal); + nbt.setInteger("ashLevelMisc", ashLevelMisc); + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 1, + yCoord, + zCoord - 1, + xCoord + 2, + yCoord + 1, + zCoord + 2 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerAshpit(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIAshpit(player.inventory, this); + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFireboxBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFireboxBase.java index e34d8eb8e..be4b8c82b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFireboxBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFireboxBase.java @@ -1,13 +1,17 @@ package com.hbm.tileentity.machine; +import java.util.List; + import com.hbm.blocks.BlockDummyable; import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.items.ItemEnums.EnumAshType; import com.hbm.module.ModuleBurnTime; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachinePolluting; +import com.hbm.util.ItemStackUtil; import api.hbm.fluid.IFluidStandardSender; import api.hbm.tile.IHeatSource; @@ -15,6 +19,7 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MathHelper; import net.minecraftforge.common.util.ForgeDirection; @@ -68,9 +73,21 @@ public abstract class TileEntityFireboxBase extends TileEntityMachinePolluting i for(int i = 0; i < 2; i++) { if(slots[i] != null) { - int fuel = (int) (getModule().getBurnTime(slots[i]) * getTimeMult()); + int baseTime = getModule().getBurnTime(slots[i]); - if(fuel > 0) { + if(baseTime > 0) { + int fuel = (int) (baseTime * getTimeMult()); + + TileEntity below = worldObj.getTileEntity(xCoord, yCoord - 1, zCoord); + + if(below instanceof TileEntityAshpit) { + TileEntityAshpit ashpit = (TileEntityAshpit) below; + EnumAshType type = this.getAshFromFuel(slots[i]); + if(type == EnumAshType.WOOD) ashpit.ashLevelWood += baseTime; + if(type == EnumAshType.COAL) ashpit.ashLevelCoal += baseTime; + if(type == EnumAshType.MISC) ashpit.ashLevelMisc += baseTime; + } + this.maxBurnTime = this.burnTime = fuel; this.burnHeat = getModule().getBurnHeat(getBaseHeat(), slots[i]); slots[i].stackSize--; @@ -133,6 +150,22 @@ public abstract class TileEntityFireboxBase extends TileEntityMachinePolluting i } } } + + public EnumAshType getAshFromFuel(ItemStack stack) { + + List names = ItemStackUtil.getOreDictNames(stack); + + for(String name : names) { + if(name.contains("Coke")) return EnumAshType.COAL; + if(name.contains("Coal")) return EnumAshType.COAL; + if(name.contains("Lignite")) return EnumAshType.COAL; + if(name.startsWith("log")) return EnumAshType.WOOD; + if(name.contains("Wood")) return EnumAshType.WOOD; + if(name.contains("Sapling")) return EnumAshType.WOOD; + } + + return EnumAshType.MISC; + } public abstract ModuleBurnTime getModule(); public abstract int getBaseHeat(); diff --git a/src/main/java/com/hbm/util/LootGenerator.java b/src/main/java/com/hbm/util/LootGenerator.java index fd95b1c4c..69b0af7f5 100644 --- a/src/main/java/com/hbm/util/LootGenerator.java +++ b/src/main/java/com/hbm/util/LootGenerator.java @@ -5,6 +5,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockLoot.TileEntityLoot; import com.hbm.items.ModItems; +import com.hbm.items.special.ItemBookLore; import com.hbm.items.ItemAmmoEnums.AmmoFatman; import net.minecraft.item.Item; @@ -21,6 +22,15 @@ public class LootGenerator { loot.addItem(stack, x + rand.nextGaussian() * 0.02, y, z + rand.nextGaussian() * 0.02); } + public static void lootBooklet(World world, int x, int y, int z) { + + TileEntityLoot loot = (TileEntityLoot) world.getTileEntity(x, y, z); + + if(loot != null && loot.items.isEmpty()) { + loot.addItem(ItemBookLore.createBook("beacon", 12, 0x404040, 0xD637B3), 0, 0, 0);; + } + } + public static void lootCapNuke(World world, int x, int y, int z) { TileEntityLoot loot = (TileEntityLoot) world.getTileEntity(x, y, z); diff --git a/src/main/java/com/hbm/world/feature/Meteorite.java b/src/main/java/com/hbm/world/feature/Meteorite.java index c383eefa0..b561d4451 100644 --- a/src/main/java/com/hbm/world/feature/Meteorite.java +++ b/src/main/java/com/hbm/world/feature/Meteorite.java @@ -8,7 +8,6 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.config.WorldConfig; import com.hbm.explosion.ExplosionLarge; -import com.hbm.explosion.ExplosionNukeSmall; import com.hbm.interfaces.Spaghetti; import com.hbm.items.ModItems; import com.hbm.lib.ModDamageSource; @@ -121,11 +120,6 @@ public class Meteorite { generateSphere5x5(world, rand, x, y, z, list10); setBlock(world, x, y, z, ModBlocks.taint, 9, 2); return; - case 11: - // Atomic meteorite - - ExplosionNukeSmall.explode(world, x + 0.5, y + 0.5, z + 0.5, safe ? ExplosionNukeSmall.PARAMS_SAFE : ExplosionNukeSmall.PARAMS_MEDIUM); - return; case 12: // Star Blaster world.createExplosion(null, x + 0.5, y + 0.5, z + 0.5, 10F, !safe); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index d52e13b21..c764f300e 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -3943,6 +3943,8 @@ tile.lamp_tritium_blue_off.name=Blaue Tritiumlampe tile.lamp_tritium_blue_on.name=Blaue Tritiumlampe tile.lamp_tritium_green_off.name=Grüne Tritiumlampe tile.lamp_tritium_green_on.name=Grüne Tritiumlampe +tile.lantern.name=Laterne +tile.lantern_behemoth.name=Alte Laterne tile.launch_pad.name=Raketenabschussrampe tile.launch_table.name=Große Startrampe tile.leaves_layer.name=Totes Laub @@ -3951,6 +3953,8 @@ tile.machine_amgen.name=Umgebungsstrahlungs-Generator tile.machine_arc_furnace_off.name=Lichtbogenofen tile.machine_arc_furnace_on.name=Lichtbogenofen tile.machine_armor_table.name=Rüstungsmodifikationstisch +tile.machine_ashpit.name=Ashekasten +tile.machine_ashpit.desc=Sammelt Asche von Feuerbüchsen und Heizöfen tile.machine_assembler.name=Fertigungsmaschine tile.machine_assemfac.name=Fertigungsfabrik tile.machine_autocrafter.name=Automatische Werkbank diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index a7db733db..6e2e10e35 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1740,6 +1740,7 @@ item.ams_focus_limiter.desc=Maximum performance for restriction field:$Standard item.ams_lens.name=Stabilizer Lens item.ams_muzzle.name=Ray-Emission Muzzle item.ams_muzzle.desc=...it emits an energy-beam thingy. +item.analysis_tool.name=Analysis Tool item.analyzer.name=Analyzer item.anchor_remote.name=Recall Device item.antiknock.name=Tetraethyllead Antiknock Agent @@ -3481,6 +3482,9 @@ item.powder_advanced_alloy.name=Advanced Alloy Powder item.powder_aluminium.name=Aluminium Powder item.powder_asbestos.name=Asbestos Powder item.powder_asbestos.desc=§o\"Sniffffffff- MHHHHHHMHHHHHHHHH\"§r +item.powder_ash.coal.name=Coal Ash +item.powder_ash.misc.name=Ash +item.powder_ash.wood.name=Wood Ash item.powder_astatine.name=Astatine Powder item.powder_at209.name=Astatine-209 Powder item.powder_au198.name=Gold-198 Powder @@ -4871,6 +4875,8 @@ tile.lamp_tritium_blue_off.name=Blue Tritium Lamp tile.lamp_tritium_blue_on.name=Blue Tritium Lamp tile.lamp_tritium_green_off.name=Green Tritium Lamp tile.lamp_tritium_green_on.name=Green Tritium Lamp +tile.lantern.name=Lantern +tile.lantern_behemoth.name=Old Lantern tile.launch_pad.name=Missile Launch Pad tile.launch_table.name=Large Launch Pad tile.leaves_layer.name=Fallen Leaves @@ -4879,6 +4885,8 @@ tile.machine_amgen.name=Ambience Radiation Generator tile.machine_arc_furnace_off.name=Arc Furnace tile.machine_arc_furnace_on.name=Arc Furnace tile.machine_armor_table.name=Armor Modification Table +tile.machine_ashpit.name=Ashpit +tile.machine_ashpit.desc=Collects ashes from fireboxes and heating ovens tile.machine_assembler.name=Assembly Machine tile.machine_assemfac.name=Assembly Factory tile.machine_autocrafter.name=Automatic Crafting Table diff --git a/src/main/resources/assets/hbm/textures/gui/machine/gui_ashpit.png b/src/main/resources/assets/hbm/textures/gui/machine/gui_ashpit.png new file mode 100644 index 0000000000000000000000000000000000000000..a8a29d6bcc1cdcef53f0e4b8fee550df51265ada GIT binary patch literal 1145 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K5893O0R7}x|G$6%N?Bp530R%N1DIGwrfv1aO zNX4ADcMs;?Dv&t#@O4*&P}vPWmw0Pv@Wud=KxD&gXkUSDXV<7udw}> zwtoLPM!VKg;(to?hpnqW^75vAGA)_^m+8mV8|*1J-j*r%KUrN-Q?o{>(etO-BOP^n z@m#anTHzg&i!Nt>g3z%&Og|2uR z1BV)efDePh3kB)hagx!9i{^K`mhGnU5D5LFsk5p7=KKLh9vJZc`LmQK{$8S9&CCpy{QM^dJm>14EquL8OHktI z_M%V5#>XFTJSF;CV^@`U!}I6Q&sUp%5dZeOHuPuWMTxqb><^x_>xeZG6R3A%ejRUb zZ(sfYK-Sh(haV>NS<25VuCK5ED)aA662q!E{sX4lZs*GKu@|5D`9WrXQ0{ROgHrDu zbHv)Pt#|X*|5JW8`QDuA?f2iSR=xVY@6}i1Gwe4x zQqDbjeuLvmUpi@tW3%9iIVaCAl$CBgGxLv(bmOg!V1bQ-D`d};md4VQCs<0`^78WeznmV#S1?%geb0aJL32IR kzqym;VTpyhbc6nT>q+w&r!yA3S_(4R)78&qol`;+00xVKNdN!< literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/powder_ash.coal.png b/src/main/resources/assets/hbm/textures/items/powder_ash.coal.png new file mode 100644 index 0000000000000000000000000000000000000000..cf1f593347043883bd98d06c31fb23a61ebd86c5 GIT binary patch literal 260 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfjZfD#+{j zo3q($vn99X9zK)ulWqO$E(ztR?0`@Pi>$Q|FFxRz>~ikrY4OQV`P4WWIt-Z@zSXvO z+);~kyK% zh3`Ad;?DbL*DU{77W0^=iu?J?dFA!n56w6EyU_oB`4#D>Mhz1}*930{dV|5!)z4*} HQ$iB}kDz9! literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/powder_ash.misc.png b/src/main/resources/assets/hbm/textures/items/powder_ash.misc.png new file mode 100644 index 0000000000000000000000000000000000000000..1d74394b871e592477a75a6ad1d654495e769b65 GIT binary patch literal 236 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfeARcJar(ah_L`s1#=Q($BvZaL^m&w%lYq5f%7cE@J9~Fm$6w8nKVe|Z z@Ivt7KCy!D``%l7I9&>QqGT{x_2Av(-(6F7D|<6BOkiPfVezU0425;e(CUrne_%cmtiw;OXk;vd$@?2>@KuSwR2* literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/powder_ash.wood.png b/src/main/resources/assets/hbm/textures/items/powder_ash.wood.png new file mode 100644 index 0000000000000000000000000000000000000000..33440e5eafd3b3ae34af85d5e76548933df93c84 GIT binary patch literal 277 zcmV+w0qXvVP)Wub)OFU?r<00000NkvXXu0mjfyo+{% literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/machines/ashpit.png b/src/main/resources/assets/hbm/textures/models/machines/ashpit.png new file mode 100644 index 0000000000000000000000000000000000000000..96dcf87b24b3afbc61dab8cebaf3a751ea2152fe GIT binary patch literal 3976 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 literal 0 HcmV?d00001 From b9b48f5a60693eb5d7fcd13e1c6e60fa1cb7c8c9 Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Sun, 13 Aug 2023 18:39:23 -0500 Subject: [PATCH 238/432] Fixing minor bug where the fluid burner would produce soot even when there was no fluid to consume. --- .../com/hbm/tileentity/machine/TileEntityHeaterOilburner.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOilburner.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOilburner.java index 41bb5ed92..964ef74fd 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOilburner.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOilburner.java @@ -82,7 +82,7 @@ public class TileEntityHeaterOilburner extends TileEntityMachinePolluting implem this.heatEnergy += heat * toBurn; - if(worldObj.getTotalWorldTime() % 20 == 0) { + if(worldObj.getTotalWorldTime() % 20 == 0 && toBurn > 0) { this.pollute(PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * burnRate * 0.5F); if(tank.getTankType().hasTrait(FT_Leaded.class)) this.pollute(PollutionType.HEAVYMETAL, PollutionHandler.HEAVY_METAL_PER_SECOND * burnRate * 0.5F); } From 6b381821b881df96bc5950651cb577d193085cf1 Mon Sep 17 00:00:00 2001 From: Boblet Date: Mon, 14 Aug 2023 16:40:14 +0200 Subject: [PATCH 239/432] FENSU and DFC fixes --- .../machine/TileEntityCoreEmitter.java | 3 ++ .../storage/TileEntityMachineFENSU.java | 26 ++++++++++++++++++ .../gui/processing/gui_catalytic_reformer.png | Bin 5357 -> 5356 bytes .../hbm/textures/gui/reactors/gui_pwr.png | Bin 0 -> 5843 bytes 4 files changed, 29 insertions(+) create mode 100644 src/main/resources/assets/hbm/textures/gui/reactors/gui_pwr.png diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java index 95b972949..3f0f6bba4 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java @@ -43,6 +43,7 @@ public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEne public boolean isOn; public FluidTank tank; public long prev; + public static long maxJoules = Long.MAX_VALUE / 100_000; public static final int range = 50; @@ -98,6 +99,8 @@ public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEne ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); for(int i = 1; i <= range; i++) { + if(out > maxJoules) out = maxJoules; + beam = i; int x = xCoord + dir.offsetX * i; diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFENSU.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFENSU.java index b936d41b8..eea2287d6 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFENSU.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFENSU.java @@ -146,4 +146,30 @@ public class TileEntityMachineFENSU extends TileEntityMachineBattery { public double getMaxRenderDistanceSquared() { return 65536.0D; } + + @Override + public long transferPower(long power) { + + long overshoot = 0; + + // if power exceeds our transfer limit, truncate + if(power > maxTransfer) { + overshoot += power - maxTransfer; + power = maxTransfer; + } + + // this check is in essence the same as the default implementation, but re-arranged to never overflow the int64 range + // if the remaining power exceeds the power cap, truncate again + long freespace = this.getMaxPower() - this.getPower(); + + if(freespace < power) { + overshoot += power - freespace; + power = freespace; + } + + // what remains is sure to not exceed the transfer limit and the power cap (and therefore the int64 range) + this.setPower(this.getPower() + power); + + return overshoot; + } } diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_catalytic_reformer.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_catalytic_reformer.png index 27b5d21fd3b8d4301307a7b7994b6e6a11551891..077d004fd381c2d6147f8d9563c16b672e1bf44c 100644 GIT binary patch literal 5356 zcmbtYXHXQ|w(cPfl2t$?N8!K_L?sLv$x#qQGKj!I1PKGf5J$p6GKVOF(i(8JoW-b-dX^J@-|^IKufRYYA1GtL)VXEtIs!Qi`%?>dQb z)95FqRAj~|Kw~-q)z6*Wsvx-DVempqH8UbI6;po05s8#thiUK~pbnN)0(FoPXYV^{ z{hLdu+>s+jLX8VQ_3HY%x{v(p2bT9Xg*qDP*z}UKpK4fy0wd$&`oRP@y?N*no>na= ztqGw*O+k{jS-g~t3vITMm}}afYTw)2GuWX3vgY4(_y2nFQMknqD2Sv17`YW&Iyb8E19f z<4{oO<&6BEP_4t=84Vk0LUD z@>?&&>ylJ_7Bw*V4t7bBW!a`tu!7QJ?DC9r%biQMfoh#;m&BSSh@I;>6c*8;jk^rF0XQTL6COAeP*& z-hK40t}ZH?kw@ziP@FKi`vn3b)+!`NcV`Hee{Ma0u!RIr;xfaKt{ayzvYrO=JR=ok90xyAjg9P80ycRweku1?o`5O1 zvL}t0x3r?=UTXqw8Wrkq6kd1k_iT#ok^Rf?Zj3pDCK$kb2Gv}ROz!jeD>{C{0n{Zf zfU1|{E<@6idF^s)@kM`bHNRX4$_a__1wa{f8>CH@W?*b2oPvUmcXl^N;Lj2g5@Oyd zH~20X&3HC0D>CZ1x5`6#wF~v1q+EBdzE7w0TG z2r-`*5Px|`4hl+*NIRyUvoFsT_Xr(2&trBnyJ60j>H3ca0W7>}8ktj|Kdk1h&~mZn zZbf~L2460;VhjV2S}R!2`YlJ>j}f?&c^(M}$@Q9^0s{~Sked-K;=N67z^(l9A^UI1nqwojQ*b~Jv6SGhYbH_tM<(HN zh|J@8izX%=tGJ4al1^Tx5reb|l#^b%)34IbUHEBYZFK`t9^F@Cvv;}8fC89ek;|=R z&B5y@p3~8prp8J(`7uOcD2U2T!Y)O|-}t*Pr;9D9S6qf*SK*7+^(JqV-`0CF>~p~_ zPraSG-B`c9sjQ5{{Z$$GE2XwtA#Yv;Z$N>r5+}@f+rHJaqV3H^bAtFqJJa6U9AXkC z!CZqSfR4?02sQ(v@UE7wRowsDgCzcePnGds_?6;xjSR5P04ruj(auK@4t(i;ZaRE7 z2HfsCAJCHm`qs5hc~DJFsHv*2FWJ2~L)3Av9^E21;a@^n9`OWw&7LB_?(6REesNyp z`P!NXbDZYJ&Mf*WCOXHtK3qgy24gkf$ zE%{sJ0k$Ybx8V&`*BT6*48D{ z_K55?90I{+Hj_VfcGv)*gLt9{_+p5L`Js+}^mi6G5Z@3r)a-hSv-X(7vFwxbnm87H z_mw|}{WL)o5VMlYxBkvx=n%Vp8*QvYVg@uOaNDPSQ%V($YGTcgemB5k3x2YenTPDb zJOo{5HQm?7f-wi_==SumiN3ZiBpzD15fa>dwmU!?p4uM^k_a#qOjrb@u!SqsWD8df z4(M|g!d^*RPm@A%7MrJi)1-A@Ifci(De5~+4!GAmE6<4v$6E%@dv;+8z{K&Qa`Xkk z+(m9xPOUm(QK-Mkyvuxvpaa0>voUup(6C&RewZ_qD^kV={6#1FA$Dk7<(DkAghtA< zT=Hir%|1sFt)(+kpZAOGF6*{(1An)Ukh2vYOLGO03DT3J`&3BndF|VZKYT55c40$( zezrI)v~PRn11V1)J9swiJu4@n*r!>)(&A?;hYi}2XEatmW0!qm(;jv*Ob9r=t>GjE z9LQngtSTTt*TbU@CrgrFOYTBzjTbvxZ*Z@-<2b8L{aGm9+oVz!0=%nOxVU$vA|(gW z6IqK8f#;BKy1g6IDH#kn-2x^(E2j$;KzFxAot<#&LEJMa?#9%Whz#e}8dyMX^u2}% zSINDBHF;r(Mw2(oqZi%R#JOS_KoG%vNiMGw4&N(spPl~kXqT00ci8V(3BVtE>dfFI zW>6(8Jb=|2LvHZtEzxi6KudTo0K{YOtBGcVL9la@9XynF+X-YaeV33vuX(b*Z~SX0 zTQ=FK#4Et&wnX;RIov_doJxz)DDJT7b?G(KKs?V@d$xhYun;g z=G^89?TUdmMymHu5xv{1QcibJZwI|L{2XdXde%y zL{0zv`O|$o`p~#a_q6lp&sQlPtB=qvktB^YWS7I@Z>n`l)cA= z&V*KZ&_)F_WKf>$KRJaaXwfd2(fD_3DQ9-LMsc40=;5&1DlZDAa*L{%C@1nY)l#8( zE573Tv}ZSQu_}s(G%r1`WZuhk7$=RAEROL3eqNEy@3*gPD$Z<{hLhTz?pGxfTsBub zlzm3&#?~05M???2vwsQOt`II$UWR?lB5#CVT-Eu+=f_#d+nWCu5T*qc;B5m%c0gkC4em7_aRk z^PAQlpwK~;L*D$^Q@?!Ph?WY3fE6|9*8vot% z${XBUJI2MyZ9an|Ifl>S7X5-iakhDLzLAjpF8qW9RHVk*mknK4v2U3*VG${11j-4n z2P2X6L!v}JQmr@zyYfZz1as(8>5C|Cp-e*CJCBLRP!=(LTAVkD=AK1{gC(m(g+zgA zMbWUYmzSB^+fl8if$)_NUGp_v4~c))je(e=)VU9X8NeJ=_-pIik=nrI7E*~jnJ?YB zSxXPm;tF69ZugQ@*IqI0a`kp|zOd$B-@M%CH?X#sta5>_3I>M%>(LpTHr^bEMVij~ zKF=cvWD@wD#}^Uje(pb)%)v6nhp%rHj28M`y0iQFil+VpOV-EZZA79XO%$iiuqMVz zyJ$eYAo+I1&?la}&;+w?Es4wy**-f*XB5OjqOxUMv38sbCMoWKLP1{oUunvXFe-@- z-^;<@aMSyI?MQm2s?OJe%O;h(*8hX!ld{K$0^!=^LvFes{^A%`ilYW!8AWV9fo# zoM54mJVRvS-m7z$nbF|W*#niJO9&c}v*~7U`YZ%HIJ1zbZ~!f(O-c?07R5vq(Ih6i zTWuRKoACz%r-T@IPu~?Un+kzE0)KW-K9~?I_k63@bET%|nCp+V7k4>-_*f#~wg9Q% zwsNMXsB?P_Y=;vHrbdhqSF*vEa_u67SC6FIqG?u6Z)QZMrkqI$fCYE+h4@zvaWi*% za4%=cV_0t=UtV9E_vB!9%%eIg_8ys!WnpnP5^)&!>u309S~_2t9K7UB_L*90V4y?h zElW_na)}Wb4C4%{dr~;L z^uW*g7Xk-1=zdS+fG6@!*)4F=zqZ%Ej`-zN@%|dkwJkq@_$|BQ6w{Czo87m&L1%!m zY23C5`wMLFilpyn=T!~%u$nAHSO|dDdg~YXx&PfccDcmMOK`N5*)BFfURwSWmi&2f zL#06e$@co(g{it{JKw*%N7ds1m>p?-*VxSEi?-jP*IIMd?@y4(o}Qlmt5?$#V-Y2M zsOeDi`J(LrldVVwU}a@RPsR`Y+cK#!kXvN95fL3u7v8dYTm6KQjw>{T{pOKEwEf9P zv{`ymEdnQSr;)#bZgHCU=xb||hjxByRA2;+!g^L%k?29GE5vB)qno!juc@Imz-B%h zZRoQ(H*)dM=gnUK)K}fUV9E6HCtH*RgM57Pdb*U6Y4ujviK)%`b<} z;JKcPz?_wUN$CCk7{q`;6JF_B@Qc2sHt;_6ni!8jjesKSh zvR}7A?po@}+q1bLX#A0~UU_%)+cTG#UH=*0ZNQsN_JZ7jGWH(NGk?6`3vsahqWUOx zYD@@`q~^HxP2xmx=5h}8W8~=OHsRg%N}L#q87Gj8N~1!XWNT1VY=Zch zUF(%#>(m;eBJ_Zx3^XQCJ6}7A+fCmZ3f_cMpj^^rM}C+-Kz_85$O~<5YD#!e&F178 zK0Y}a^~2|0M_41%YECgadUf9anggswgG=+mDMaP8}N>8oXWkXx^M$PrkD_HQ9iKeA&B?%uo!S2=i}C z6*dO0E-+E1J#!_$^fxyhph4vXtn%ux=S9Gt?Ci(DD1z-_Bu zelVX$Ph`j+A;j*myDczW1c%{690z_~R){j1Czg(8YllIFe+fn)W1~o`YV9_@@V34l zT7@ro7(Gl1r{;Z|VW3UlTS0_E~=`jS) zGo-j)U6$jT!jv;c|3>%!8T$|XoiBO38VX=cFMvPc1!vTQj&Q+LO7Q)_*s_uYT}V_l z&{l_^ay{*ymj)byf;blQ+L@V<6c6Cv2WJyikGvTEEu8-#0BZAjb~hly*>Y-XikmjGODcjJ zUH9%CtGm{-SFIORZ=FyscBIf2E>&+`K9}OZ9|Q3RVXDm?hOzL;3Gnz5(A6~3z^Xfh F{|~=%;=%v` literal 5357 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 Date: Mon, 14 Aug 2023 20:11:26 +0200 Subject: [PATCH 240/432] block drop fix for fallout effects --- changelog | 2 +- src/main/java/com/hbm/entity/effect/EntityFalloutRain.java | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/changelog b/changelog index 29e0ddd73..61558946a 100644 --- a/changelog +++ b/changelog @@ -27,7 +27,7 @@ * Removed the special nuclear meteorite ## Fixed -* Fixed thermos craching config hitting before the config is saved, resulting in an empty config the first time the server is launched +* Fixed thermos crashing config hitting before the config is saved, resulting in an empty config the first time the server is launched * Fixed heating oven not visually connecting to exhaust pipes * Fixed loot blocks not correctly rendering items that require multiple render passes * Fixed special meteorites spawning in worldgen diff --git a/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java b/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java index 079e2ab2c..51ee981cb 100644 --- a/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java +++ b/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java @@ -179,6 +179,7 @@ public class EntityFalloutRain extends Entity { hardness = worldObj.getBlock(x, y + i, z).getBlockHardness(worldObj, x, y + i, z); if(hardness <= Blocks.stonebrick.getExplosionResistance(null) && hardness >= 0) { EntityFallingBlock entityfallingblock = new EntityFallingBlock(worldObj, x + 0.5D, y + 0.5D + i, z + 0.5D, worldObj.getBlock(x, y + i, z), worldObj.getBlockMetadata(x, y + i, z)); + entityfallingblock.field_145813_c = false; //turn off block drops because block dropping was coded by a mule with dementia worldObj.spawnEntityInWorld(entityfallingblock); } } From 3c6e7920b5d8d70e07d11472eaad91b9944072e7 Mon Sep 17 00:00:00 2001 From: Bob Date: Tue, 15 Aug 2023 20:42:48 +0200 Subject: [PATCH 241/432] PWR preparation --- src/main/java/com/hbm/blocks/ModBlocks.java | 34 ++++ .../hbm/blocks/machine/BlockHadronCoil.java | 2 +- .../java/com/hbm/blocks/machine/BlockPWR.java | 52 ++++++ .../blocks/machine/MachinePWRController.java | 157 ++++++++++++++++++ .../com/hbm/render/block/ct/CTContext.java | 2 +- .../com/hbm/render/block/ct/IBlockCT.java | 3 +- .../hbm/render/block/ct/RenderBlocksCT.java | 53 ++++-- .../assets/hbm/textures/blocks/pwr_block.png | Bin 0 -> 333 bytes .../hbm/textures/blocks/pwr_block_ct.png | Bin 0 -> 842 bytes .../hbm/textures/blocks/pwr_block_ct_alt.png | Bin 0 -> 861 bytes .../assets/hbm/textures/blocks/pwr_casing.png | Bin 0 -> 589 bytes .../hbm/textures/blocks/pwr_casing_blank.png | Bin 0 -> 542 bytes .../hbm/textures/blocks/pwr_casing_port.png | Bin 0 -> 285 bytes .../textures/blocks/pwr_casing_port_ct.png | Bin 0 -> 898 bytes .../hbm/textures/blocks/pwr_channel_side.png | Bin 0 -> 171 bytes .../hbm/textures/blocks/pwr_channel_top.png | Bin 0 -> 176 bytes .../hbm/textures/blocks/pwr_concrete_flat.png | Bin 0 -> 520 bytes .../hbm/textures/blocks/pwr_control_side.png | Bin 0 -> 233 bytes .../hbm/textures/blocks/pwr_control_top.png | Bin 0 -> 259 bytes .../hbm/textures/blocks/pwr_controller.png | Bin 0 -> 550 bytes .../hbm/textures/blocks/pwr_fuel_side.png | Bin 0 -> 211 bytes .../hbm/textures/blocks/pwr_fuel_top.png | Bin 0 -> 253 bytes .../assets/hbm/textures/blocks/pwr_heatex.png | Bin 0 -> 373 bytes .../textures/blocks/pwr_neutron_source.png | Bin 0 -> 564 bytes .../assets/hbm/textures/blocks/pwr_port.png | Bin 0 -> 583 bytes .../hbm/textures/blocks/pwr_reflector.png | Bin 0 -> 490 bytes 26 files changed, 287 insertions(+), 16 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/machine/BlockPWR.java create mode 100644 src/main/java/com/hbm/blocks/machine/MachinePWRController.java create mode 100644 src/main/resources/assets/hbm/textures/blocks/pwr_block.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/pwr_block_ct.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/pwr_block_ct_alt.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/pwr_casing.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/pwr_casing_blank.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/pwr_casing_port.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/pwr_casing_port_ct.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/pwr_channel_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/pwr_channel_top.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/pwr_concrete_flat.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/pwr_control_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/pwr_control_top.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/pwr_controller.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/pwr_fuel_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/pwr_fuel_top.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/pwr_heatex.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/pwr_neutron_source.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/pwr_port.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/pwr_reflector.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index fe480dde1..f5b447bcd 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -875,6 +875,17 @@ public class ModBlocks { public static Block cm_circuit; public static Block cm_port; public static Block custom_machine; + + public static Block pwr_fuel; + public static Block pwr_control; + public static Block pwr_channel; + public static Block pwr_heatex; + public static Block pwr_neutron_source; + public static Block pwr_reflector; + public static Block pwr_casing; + public static Block pwr_controller; + public static Block pwr_block; + public static Block pwr_port; public static Block reactor_element; public static Block reactor_control; @@ -2036,6 +2047,17 @@ public class ModBlocks { cm_port = new BlockCMPort(Material.iron, EnumCMMaterials.class, true, true).setBlockName("cm_port").setCreativeTab(MainRegistry.machineTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":cm_port"); custom_machine = new BlockCustomMachine().setBlockName("custom_machine").setCreativeTab(MainRegistry.machineTab).setLightLevel(1F).setHardness(5.0F).setResistance(10.0F); + pwr_fuel = new BlockPillar(Material.iron, RefStrings.MODID + ":pwr_fuel_top").setBlockName("pwr_fuel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_fuel_side"); + pwr_control = new BlockPillar(Material.iron, RefStrings.MODID + ":pwr_control_top").setBlockName("pwr_control").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_control_side"); + pwr_channel = new BlockPillar(Material.iron, RefStrings.MODID + ":pwr_channel_top").setBlockName("pwr_channel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_channel_side"); + pwr_heatex = new BlockGeneric(Material.iron).setBlockName("pwr_heatex").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_heatex"); + pwr_neutron_source = new BlockGeneric(Material.iron).setBlockName("pwr_neutron_source").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_neutron_source"); + pwr_reflector = new BlockGeneric(Material.iron).setBlockName("pwr_reflector").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_reflector"); + pwr_casing = new BlockGeneric(Material.iron).setBlockName("pwr_casing").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_casing"); + pwr_port = new BlockGeneric(Material.iron).setBlockName("pwr_port").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_port"); + pwr_controller = new MachinePWRController(Material.iron).setBlockName("pwr_controller").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_casing_blank"); + pwr_block = new BlockPWR(Material.iron).setBlockName("pwr_block").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_block"); + reactor_element = new BlockPillar(Material.iron, RefStrings.MODID + ":reactor_element_top", RefStrings.MODID + ":reactor_element_base").setBlockName("reactor_element").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":reactor_element_side"); reactor_control = new BlockPillar(Material.iron, RefStrings.MODID + ":reactor_control_top").setBlockName("reactor_control").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":reactor_control_side"); reactor_hatch = new ReactorHatch(Material.iron).setBlockName("reactor_hatch").setHardness(5.0F).setResistance(1000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_concrete"); @@ -3366,6 +3388,18 @@ public class ModBlocks { register(cm_circuit); register(cm_port); + //PWR + GameRegistry.registerBlock(pwr_fuel, pwr_fuel.getUnlocalizedName()); + GameRegistry.registerBlock(pwr_control, pwr_control.getUnlocalizedName()); + GameRegistry.registerBlock(pwr_channel, pwr_channel.getUnlocalizedName()); + GameRegistry.registerBlock(pwr_heatex, pwr_heatex.getUnlocalizedName()); + GameRegistry.registerBlock(pwr_neutron_source, pwr_neutron_source.getUnlocalizedName()); + GameRegistry.registerBlock(pwr_reflector, pwr_reflector.getUnlocalizedName()); + GameRegistry.registerBlock(pwr_casing, pwr_casing.getUnlocalizedName()); + GameRegistry.registerBlock(pwr_port, pwr_port.getUnlocalizedName()); + GameRegistry.registerBlock(pwr_controller, pwr_controller.getUnlocalizedName()); + GameRegistry.registerBlock(pwr_block, pwr_block.getUnlocalizedName()); + //Multiblock Generators GameRegistry.registerBlock(reactor_element, reactor_element.getUnlocalizedName()); GameRegistry.registerBlock(reactor_control, reactor_control.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/machine/BlockHadronCoil.java b/src/main/java/com/hbm/blocks/machine/BlockHadronCoil.java index 20bd9f35a..ae323e1bf 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockHadronCoil.java +++ b/src/main/java/com/hbm/blocks/machine/BlockHadronCoil.java @@ -47,7 +47,7 @@ public class BlockHadronCoil extends Block implements IBlockCT, ITooltipProvider } @Override - public boolean canConnect(IBlockAccess world, int x, int y, int z, IBlockCT block) { + public boolean canConnect(IBlockAccess world, int x, int y, int z, Block block) { return block instanceof BlockHadronCoil; } diff --git a/src/main/java/com/hbm/blocks/machine/BlockPWR.java b/src/main/java/com/hbm/blocks/machine/BlockPWR.java new file mode 100644 index 000000000..865cff4c6 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/BlockPWR.java @@ -0,0 +1,52 @@ +package com.hbm.blocks.machine; + +import com.hbm.blocks.ModBlocks; +import com.hbm.lib.RefStrings; +import com.hbm.render.block.ct.CT; +import com.hbm.render.block.ct.CTStitchReceiver; +import com.hbm.render.block.ct.IBlockCT; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; + +public class BlockPWR extends Block implements IBlockCT { + + @SideOnly(Side.CLIENT) protected IIcon iconPort; + + public BlockPWR(Material mat) { + super(mat); + } + + @Override + public int getRenderType() { + return CT.renderID; + } + + @SideOnly(Side.CLIENT) public CTStitchReceiver rec; + @SideOnly(Side.CLIENT) public CTStitchReceiver recPort; + + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister reg) { + super.registerBlockIcons(reg); + this.iconPort = reg.registerIcon(RefStrings.MODID + ":pwr_casing_port"); + this.rec = IBlockCT.primeReceiver(reg, this.blockIcon.getIconName(), this.blockIcon); + this.recPort = IBlockCT.primeReceiver(reg, this.iconPort.getIconName(), this.iconPort); + } + + @Override + public IIcon[] getFragments(IBlockAccess world, int x, int y, int z) { + int meta = world.getBlockMetadata(x, y, z); + if(meta == 1) return recPort.fragCache; + return rec.fragCache; + } + + @Override + public boolean canConnect(IBlockAccess world, int x, int y, int z, Block block) { + return block == ModBlocks.pwr_block || block == ModBlocks.pwr_controller; + } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachinePWRController.java b/src/main/java/com/hbm/blocks/machine/MachinePWRController.java new file mode 100644 index 000000000..9eedb3d45 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachinePWRController.java @@ -0,0 +1,157 @@ +package com.hbm.blocks.machine; + +import java.util.HashMap; +import java.util.Map.Entry; + +import com.hbm.blocks.ModBlocks; +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class MachinePWRController extends BlockContainer { + + @SideOnly(Side.CLIENT) + private IIcon iconFront; + + public MachinePWRController(Material mat) { + super(mat); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return null; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + super.registerBlockIcons(iconRegister); + this.iconFront = iconRegister.registerIcon(RefStrings.MODID + ":pwr_controller"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + return metadata == 0 && side == 3 ? this.iconFront : (side == metadata ? this.iconFront : this.blockIcon); + } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { + int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; + + if(i == 0) world.setBlockMetadataWithNotify(x, y, z, 2, 2); + if(i == 1) world.setBlockMetadataWithNotify(x, y, z, 5, 2); + if(i == 2) world.setBlockMetadataWithNotify(x, y, z, 3, 2); + if(i == 3) world.setBlockMetadataWithNotify(x, y, z, 4, 2); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + + if(world.isRemote) { + return true; + } else if(!player.isSneaking()) { + + assemble(world, x, y, z); + + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); + return true; + } else { + return false; + } + } + + private static HashMap assembly = new HashMap(); + private static HashMap fuelRods = new HashMap(); + private static boolean errored; + private static final int maxSize = 1024; + + public void assemble(World world, int x, int y, int z) { + assembly.clear(); + assembly.put(new BlockPos(x, y, z), this); + + ForgeDirection dir = ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z)).getOpposite(); + x += dir.offsetX; + z += dir.offsetZ; + + errored = false; + floodFill(world, x, y, z); + + if(fuelRods.size() == 0) errored = true; + + if(!errored) { + for(Entry entry : assembly.entrySet()) { + + Block block = entry.getValue(); + + if(block != ModBlocks.pwr_controller) { + + if(block == ModBlocks.pwr_port) { + world.setBlock(entry.getKey().getX(), entry.getKey().getY(), entry.getKey().getZ(), ModBlocks.pwr_block, 1, 3); + } else { + world.setBlock(entry.getKey().getX(), entry.getKey().getY(), entry.getKey().getZ(), ModBlocks.pwr_block, 0, 3); + } + } + } + } + assembly.clear(); + } + + private void floodFill(World world, int x, int y, int z) { + + BlockPos pos = new BlockPos(x, y, z); + + if(assembly.containsKey(pos)) return; + if(assembly.size() >= maxSize) { + errored = true; + return; + } + + Block block = world.getBlock(x, y, z); + + if(isValidCasing(block)) { + assembly.put(pos, block); + return; + } + + if(isValidCore(block)) { + assembly.put(pos, block); + if(block == ModBlocks.pwr_fuel) fuelRods.put(pos, block); + floodFill(world, x + 1, y, z); + floodFill(world, x - 1, y, z); + floodFill(world, x, y + 1, z); + floodFill(world, x, y - 1, z); + floodFill(world, x, y, z + 1); + floodFill(world, x, y, z - 1); + return; + } + + errored = true; + } + + private boolean isValidCore(Block block) { + if(block == ModBlocks.pwr_fuel || block == ModBlocks.pwr_control || block == ModBlocks.pwr_channel || block == ModBlocks.pwr_heatex || block == ModBlocks.pwr_neutron_source) return true; + return false; + } + + private boolean isValidCasing(Block block) { + if(block == ModBlocks.pwr_casing || block == ModBlocks.pwr_reflector || block == ModBlocks.pwr_port) return true; + return false; + } +} diff --git a/src/main/java/com/hbm/render/block/ct/CTContext.java b/src/main/java/com/hbm/render/block/ct/CTContext.java index 30e1e9126..d028d2933 100644 --- a/src/main/java/com/hbm/render/block/ct/CTContext.java +++ b/src/main/java/com/hbm/render/block/ct/CTContext.java @@ -80,7 +80,7 @@ public class CTContext { int[] coord = dirs[j]; Block neighbor = world.getBlock(x + coord[0], y + coord[1], z + coord[2]); - if(neighbor instanceof IBlockCT && ((IBlockCT) neighbor).canConnect(world, x + coord[0], y + coord[1], z + coord[2], (IBlockCT)block)) { + if(((IBlockCT) block).canConnect(world, x + coord[0], y + coord[1], z + coord[2], neighbor)) { cons[j] = true; } } diff --git a/src/main/java/com/hbm/render/block/ct/IBlockCT.java b/src/main/java/com/hbm/render/block/ct/IBlockCT.java index 66bd967c0..c672784c0 100644 --- a/src/main/java/com/hbm/render/block/ct/IBlockCT.java +++ b/src/main/java/com/hbm/render/block/ct/IBlockCT.java @@ -1,5 +1,6 @@ package com.hbm.render.block.ct; +import net.minecraft.block.Block; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; @@ -8,7 +9,7 @@ public interface IBlockCT { public IIcon[] getFragments(IBlockAccess world, int x, int y, int z); - public default boolean canConnect(IBlockAccess world, int x, int y, int z, IBlockCT block) { + public default boolean canConnect(IBlockAccess world, int x, int y, int z, Block block) { return this == block; } diff --git a/src/main/java/com/hbm/render/block/ct/RenderBlocksCT.java b/src/main/java/com/hbm/render/block/ct/RenderBlocksCT.java index e59c4a6b5..bbd2655ee 100644 --- a/src/main/java/com/hbm/render/block/ct/RenderBlocksCT.java +++ b/src/main/java/com/hbm/render/block/ct/RenderBlocksCT.java @@ -37,7 +37,7 @@ public class RenderBlocksCT extends RenderBlocks { this.blockAccess = acc; } - private void initSideInfo() { + private void initSideInfo(int side) { if(!this.enableAO) return; @@ -49,15 +49,42 @@ public class RenderBlocksCT extends RenderBlocks { * it's only the color in ONE PARTICULAR SIDE. well thanks for that i think that's rather poggers, lex. */ - float red = (colorRedTopLeft + colorRedTopRight + colorRedBottomLeft + colorRedBottomRight) / 4F; + /*float red = (colorRedTopLeft + colorRedTopRight + colorRedBottomLeft + colorRedBottomRight) / 4F; float green = (colorGreenTopLeft + colorGreenTopRight + colorGreenBottomLeft + colorGreenBottomRight) / 4F; float blue = (colorBlueTopLeft + colorBlueTopRight + colorBlueBottomLeft + colorBlueBottomRight) / 4F; - int light = (brightnessTopLeft + brightnessTopRight + brightnessBottomLeft + brightnessBottomRight) / 4; + int light = (brightnessTopLeft + brightnessTopRight + brightnessBottomLeft + brightnessBottomRight) / 4;*/ - this.tl = new VertInfo(red, green, blue, light); - this.tr = new VertInfo(red, green, blue, light); - this.bl = new VertInfo(red, green, blue, light); - this.br = new VertInfo(red, green, blue, light); + if(side == ForgeDirection.SOUTH.ordinal()) { + this.tl = new VertInfo(colorRedTopLeft, colorGreenTopLeft, colorBlueTopLeft, brightnessTopLeft); + this.tr = new VertInfo(colorRedTopRight, colorGreenTopRight, colorBlueTopRight, brightnessTopRight); + this.bl = new VertInfo(colorRedBottomLeft, colorGreenBottomLeft, colorBlueBottomLeft, brightnessBottomLeft); + this.br = new VertInfo(colorRedBottomRight, colorGreenBottomRight, colorBlueBottomRight, brightnessBottomRight); + } else if(side == ForgeDirection.NORTH.ordinal()) { + this.tr = new VertInfo(colorRedTopLeft, colorGreenTopLeft, colorBlueTopLeft, brightnessTopLeft); + this.br = new VertInfo(colorRedTopRight, colorGreenTopRight, colorBlueTopRight, brightnessTopRight); + this.tl = new VertInfo(colorRedBottomLeft, colorGreenBottomLeft, colorBlueBottomLeft, brightnessBottomLeft); + this.bl = new VertInfo(colorRedBottomRight, colorGreenBottomRight, colorBlueBottomRight, brightnessBottomRight); + } else if(side == ForgeDirection.EAST.ordinal()) { + this.bl = new VertInfo(colorRedTopLeft, colorGreenTopLeft, colorBlueTopLeft, brightnessTopLeft); + this.tl = new VertInfo(colorRedTopRight, colorGreenTopRight, colorBlueTopRight, brightnessTopRight); + this.br = new VertInfo(colorRedBottomLeft, colorGreenBottomLeft, colorBlueBottomLeft, brightnessBottomLeft); + this.tr = new VertInfo(colorRedBottomRight, colorGreenBottomRight, colorBlueBottomRight, brightnessBottomRight); + } else if(side == ForgeDirection.WEST.ordinal()) { + this.tr = new VertInfo(colorRedTopLeft, colorGreenTopLeft, colorBlueTopLeft, brightnessTopLeft); + this.br = new VertInfo(colorRedTopRight, colorGreenTopRight, colorBlueTopRight, brightnessTopRight); + this.tl = new VertInfo(colorRedBottomLeft, colorGreenBottomLeft, colorBlueBottomLeft, brightnessBottomLeft); + this.bl = new VertInfo(colorRedBottomRight, colorGreenBottomRight, colorBlueBottomRight, brightnessBottomRight); + } else if(side == ForgeDirection.UP.ordinal()) { + this.br = new VertInfo(colorRedTopLeft, colorGreenTopLeft, colorBlueTopLeft, brightnessTopLeft); + this.bl = new VertInfo(colorRedTopRight, colorGreenTopRight, colorBlueTopRight, brightnessTopRight); + this.tr = new VertInfo(colorRedBottomLeft, colorGreenBottomLeft, colorBlueBottomLeft, brightnessBottomLeft); + this.tl = new VertInfo(colorRedBottomRight, colorGreenBottomRight, colorBlueBottomRight, brightnessBottomRight); + } else { + this.tl = new VertInfo(colorRedTopLeft, colorGreenTopLeft, colorBlueTopLeft, brightnessTopLeft); + this.tr = new VertInfo(colorRedTopRight, colorGreenTopRight, colorBlueTopRight, brightnessTopRight); + this.bl = new VertInfo(colorRedBottomLeft, colorGreenBottomLeft, colorBlueBottomLeft, brightnessBottomLeft); + this.br = new VertInfo(colorRedBottomRight, colorGreenBottomRight, colorBlueBottomRight, brightnessBottomRight); + } this.tc = VertInfo.avg(tl, tr); this.bc = VertInfo.avg(bl, br); @@ -82,7 +109,7 @@ public class RenderBlocksCT extends RenderBlocks { @Override public void renderFaceXPos(Block block, double x, double y, double z, IIcon icon) { - initSideInfo(); + initSideInfo(ForgeDirection.EAST.ordinal()); CTFace face = CTContext.faces[ForgeDirection.EAST.ordinal()]; /// ORDER: LEXICAL /// @@ -99,7 +126,7 @@ public class RenderBlocksCT extends RenderBlocks { @Override public void renderFaceXNeg(Block block, double x, double y, double z, IIcon icon) { - initSideInfo(); + initSideInfo(ForgeDirection.WEST.ordinal()); CTFace face = CTContext.faces[ForgeDirection.WEST.ordinal()]; /// ORDER: LEXICAL /// @@ -116,7 +143,7 @@ public class RenderBlocksCT extends RenderBlocks { @Override public void renderFaceYPos(Block block, double x, double y, double z, IIcon icon) { - initSideInfo(); + initSideInfo(ForgeDirection.UP.ordinal()); CTFace face = CTContext.faces[ForgeDirection.UP.ordinal()]; /// ORDER: LEXICAL /// @@ -133,7 +160,7 @@ public class RenderBlocksCT extends RenderBlocks { @Override public void renderFaceYNeg(Block block, double x, double y, double z, IIcon icon) { - initSideInfo(); + initSideInfo(ForgeDirection.DOWN.ordinal()); CTFace face = CTContext.faces[ForgeDirection.DOWN.ordinal()]; /// ORDER: LEXICAL /// @@ -150,7 +177,7 @@ public class RenderBlocksCT extends RenderBlocks { @Override public void renderFaceZPos(Block block, double x, double y, double z, IIcon icon) { - initSideInfo(); + initSideInfo(ForgeDirection.SOUTH.ordinal()); CTFace face = CTContext.faces[ForgeDirection.SOUTH.ordinal()]; /// ORDER: LEXICAL /// @@ -167,7 +194,7 @@ public class RenderBlocksCT extends RenderBlocks { @Override public void renderFaceZNeg(Block block, double x, double y, double z, IIcon icon) { - initSideInfo(); + initSideInfo(ForgeDirection.NORTH.ordinal()); CTFace face = CTContext.faces[ForgeDirection.NORTH.ordinal()]; /// ORDER: LEXICAL /// diff --git a/src/main/resources/assets/hbm/textures/blocks/pwr_block.png b/src/main/resources/assets/hbm/textures/blocks/pwr_block.png new file mode 100644 index 0000000000000000000000000000000000000000..8483b28147d16cd2da5931dae485943b6ab759fb GIT binary patch literal 333 zcmV-T0kZyyP)3!cu_!e*aYSZnygeyaLhd&3_?X*IjD$Ho01TpsJKoXqtxO z@kj^(5y8w@F5iD#B)5PVBdUss(DyyF*^E*OIcJ=6BQ+y{h~T}a)=G?#zVC6)5klZ_ zINbLDpp=4{F`Z6HDWR%_5HK?)lgVQR=P_!n%;$4dm0=jjIg@jK42Ut3Qo?&r2m$Xs zz@HwBMmQT+Yh@S)PNx$ha*2luoO77j#msBzDW&@g*6a1CV6k``o&5@E+xDsF{L*Iv f(Cv2nbThygff#NoKJtHT00000NkvXXu0mjfJe!Oe literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/pwr_block_ct.png b/src/main/resources/assets/hbm/textures/blocks/pwr_block_ct.png new file mode 100644 index 0000000000000000000000000000000000000000..d7b37f330b7044b1bf3fad743534d78aee9c77bf GIT binary patch literal 842 zcmV-Q1GW5#P)iXLDt(gXBvxkDCR zbdjPNXenC~DRLGa5te1k$;k5nK?}W){PB@`{E5$>|4RHD-uuDZ7=tl}Q_<&aw_D1x z%+GSUoaFEC?+5uB;N835h%w@vBgRPEwrH(!&JjW&r9?`J5CYzNlu`iv{8^5KefaQx zl0Oa&5JJFOi}#+UY4XRquJa&TYowGo=jfS!rH8TG?I!t?0<_k7Wm;>r)(9aGLQqu| zMNwoxN{J8x?>#A{@qicjQNH&+E9_U+zl);4T8mN&DP=CBQi>Sk$pJ6%$05DROe$QgD$mJG7Af=>dPQ@jDBmf}B$nEWI29;8DU59gy{eF)S0&6XGU1t&J zDsYJ(ZGkZcYb_}yVvNKXNhxu2b3;{CXsz>iV+>u_GfG&N;fSW3^hL zwWe)by!ZL(f3b5h#g7CSV`$r!loCoQoO4uFg;FXXpkAO5A`d<_`4m4A;Js(R-=mbG zZQFcs0NS=C#)y;>V+>krx~@ZOeey&D7x|MFSS%LA7_-WhQr_po(p6Q3wRX^~j^h$P z5&+~f^$Pn^HBFQExH;qLfyc+kVg7Qt zWV2c49?&!mTI+nDH%)`JcH{@@y5{-$1#9hyhx2~mpGND7-RC`EQ*4*ZGr!}6~nJ{(Kn_3|3CHv{k&HZaCdi?2YibkD9e(607sEl U2*M={rT_o{07*qoM6N<$f{P!LLI3~& literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/pwr_block_ct_alt.png b/src/main/resources/assets/hbm/textures/blocks/pwr_block_ct_alt.png new file mode 100644 index 0000000000000000000000000000000000000000..a1b7fd272332c79f8ef1d75a7e8aaa3fb3e41b74 GIT binary patch literal 861 zcmV-j1ETziP)fatO+(-9?afL2#l_XZc^N`L2mvW2D5bF3Y~Y*&0Hl-%oO4D90p5EEApig| zMjYD|{@93s)*9Y>SZnEL-}f-aAcO!ZB{=6W#?Y(AY`5E;#19BaDFJ|9CZ&Xw5{xl0 z#?ZDcg%SWb=U|M%dp}BG3O_i{7$b)JFAE`{sw!x$A%pgD%esB`!U{80nI+kd~_d3_l=H!dSwZ zQi3rC)>^FBYk2SBoCD_^F-D}6uv{)j!@r+~&+vnY^?eWL9CFSOLckb%W13O^uF*u@x;bEYtt zWm7^}RTYJ@?|UM0Y*Y9FffD`@0=3EhPS9FY?-vK_^%_d4gT1kDQ}_eI-g_EA*4jZj zIOnMA8qPUbYq4A|5B`r`ehNPzaDDxK)X`VXT1(4le{(9O21Wby^aR;7%~=WjtsdBJ zw;zJ!+ywqc5A5H0b^=p+;N|7z@ciTB1G=uGqA58n``lU!t@S_;l+CtUtp<4Db3Jf( z_u~LRTMx{|&(;HT@w4^7T>NZ3P;}u}@w4^7T>NZ3Fc&{t56s4Iw>KvT%Vu+V^8c~D zz5ON}+#aUGq?TG(6ih+-UD?_RD|FIq@ n_nw8o{rx>T{1-jYG!6a$>@cUcq0VNO00000NkvXXu0mjf()ESJ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/pwr_casing.png b/src/main/resources/assets/hbm/textures/blocks/pwr_casing.png new file mode 100644 index 0000000000000000000000000000000000000000..23f51e5033d450524fa2a65522a60955b20ed6c0 GIT binary patch literal 589 zcmV-T0z}+cjMYUtrSeAtl5+H=2 z^xnC+c#DWo$~rYLGem@(4}=hi@lmu!&YAsw&$`ZL)qn_?RmPBc2GD!s_A<%o<80v9#_l*`) zm<@2hKS4yPwNPuNR@)p=Qi>BGr9`cT-aD#FjETeHHzGnx2~}YX--6@B7-_9B#>}6Z z898S}lu`;gXLh?6j4@c(mDV~Ss4A+{iTRX%WU$-q=)KWeWr{jI7g46ol`#f6XF`aS zvK|>sL4@n;Z(LvBY=IfL4@y~yG2%Y9$&uUJd+zSO{|j(Tn5xoR0|u&-s)(>G3nI|k zOzgVmV~~39oSnU9Sr*&}wLS`#oHhu)X7)tuc|E$3bA8s6 bpYHzvZlG&(a_NQV00000NkvXXu0mjfMi>mc literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/pwr_casing_blank.png b/src/main/resources/assets/hbm/textures/blocks/pwr_casing_blank.png new file mode 100644 index 0000000000000000000000000000000000000000..6b8c7f6b4d7b88cae08c36fe195f952da444ad68 GIT binary patch literal 542 zcmV+(0^$9MP)|E3`Cy|bkCohBGTMv4v_nAW)x+UGz|tj3;O>*k>UkN zfXd~nLf+qh1Xr2aKYJ;KQVRd8`9eGz3&CnCsZ3n`_9yDwCom<_gVBc%ceDJgSK%~!USGcgt-83w^u}z-W$Dldbi6FrIfq?N-6Z-m~*14 zzk=iBoEc*fvGS*8My(YQrL{(_m3@C9A~?^JF(x3WDyqwgHOhQ4 z*!P_|2V-=WsQ&PK*}O7RYbB*jYv+@}6%8VmO)D^gd(hfR&KdW(I%jG<9$I|?SXSP3 z7-Il|>Y^$lY}G1wpP1Q$*4Mhb gQEUJ5ratcf0>-RoS!6FK(f|Me07*qoM6N<$f(NPf%K!iX literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/pwr_casing_port.png b/src/main/resources/assets/hbm/textures/blocks/pwr_casing_port.png new file mode 100644 index 0000000000000000000000000000000000000000..809c564c2c78010b9b225097231e7299e790f669 GIT binary patch literal 285 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfpA8fi^=HlDX1`Vcr4PAeV@i7J-B7YtrxU z{ye?bV!l3qnFce5Vvg3k-~U)|FrQp@aQ}ow8kcV7?3?+#GOC+{!SI;K^wgi%UNAER zTvun<^PM3gn=#||>-X9|S516hEm>vp{F2LRhWECLENzJur)w`4&iipK^~#H*{ti8Y z*}AK`4B3)-R?VuJk$sW*`JML8`bq_*EpJ5yJ(ch0mAjGrh3uR#AXc)I$ztaD0e0suSua$W!c literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/pwr_casing_port_ct.png b/src/main/resources/assets/hbm/textures/blocks/pwr_casing_port_ct.png new file mode 100644 index 0000000000000000000000000000000000000000..52fb4583a768368053dcf069e5150ede685ed0f5 GIT binary patch literal 898 zcmV-|1AY97P)NCOPCx7cK{qD3Nig{(v9|^ZwyKZ{B( z(OR<&blf?$yTAX-|2{r` zMGyp7YqxIL#ZQuPQ-G9`EX%xz^Ya-1i^T$f$z%e+<>g1Dl+>JEXyZ3B0AQ`<=;&yz zNG>ieNYm#cOOk~7e2&%{A%qvvhF$!I0IfA)7~-7sXaA`WsKqJ>51WRNKq7iVLqQXib!isRaG1u9JGpP<2M9otvNhA#9E6n2CX%h zmmkqu`;>k9^qU{6VHlFY2Dc-yp`Jyb#5-BBlp8El`TrP>C2qDB) z0bTq}_#&*T3g;Y3DXOYM2!YlbYb{br27`ew(k#o?M()~)I`|C%#u%)%lx68twE9j6 z!_fDBy}@ue?5y@Se&Y&mZ|`@`_WC4{?u=Q*moI;`@*AUgI-Ry|_)^qwRcQKw&8(fB zouTS+xi5ULA4rnq*^um8!1wrp)o1QqK$jo5y1H7AkK>r}IPrsJvG~(3u69NJyY>TF zmT_})M;L~k{8c~j?%iaK-`fxL^8^2t-`fxL<@fdjefeTGJ9kO) z140Ojq99HG_Q9)v)#|Z&eEiC%@$={3iQ||)eDUGKukCM_7vk>jrqvIO$3L&d?{yMh zUtjb7{V!BiMGyo&3$-7pujqdr#qgZ+vMhgVo7z{$yp-|!`VAWc*L Y0sX+_2L6zb2LJ#707*qoM6N<$f-rrood5s; literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/pwr_channel_side.png b/src/main/resources/assets/hbm/textures/blocks/pwr_channel_side.png new file mode 100644 index 0000000000000000000000000000000000000000..bc3b557a2c7956852233b8be8523f40e7d3b7e1d GIT binary patch literal 171 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf>%@!#`Zsudl(_oq+D-S*@1-ZZ5 z&Mqe`i(fBUHA8Zhmu73Udfgk@Ji+t8qFpPIx6m;OW&ymip{b;e} z+B!@1Y+Wx+hKial4o%f>_hv}O$tU;RK2x!J>!ZRB!#D;dr*o2_M<4$``2T@2zubiH WWvety*82giWbkzLb6Mw<&;$SyH$EBw literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/pwr_concrete_flat.png b/src/main/resources/assets/hbm/textures/blocks/pwr_concrete_flat.png new file mode 100644 index 0000000000000000000000000000000000000000..7dd3c4ba5d34cd04e847c1cc2a95da359f8ffc16 GIT binary patch literal 520 zcmV+j0{8uiP)2CFks{073`>z>z};gb)xBM1B?(3aZL=UG(0`IXm6+JlXf%wTlR<>V}&c z+FE1I$=lnT51JWc406t#=ZT1rQsTNU2bpssB7_(tA%tHst+jYO9vsI(2!WImYb|1o zj4^!4T8nT;a?_e~l5?h%!t3>-wMMNKRb`C9oRjDC=~3!+UDR4xYhh;OoH>pIGjjv) z1tLPunK6d^K!wdR>0$3aTT z%VuWioYQIET@VofN-5sFJC(1mFE7&=<2%Ot!CK2{-k;@`ux*=5xvtBB^rqi?C&uW8 z-8555p1rC9@Or(7F;Yq)wAQ>prIi2Vs4DxuQ){J^!t?q3b^jM7ctF!=Xl`);0000< KMNUMnLSTY=E$`|8 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/pwr_control_side.png b/src/main/resources/assets/hbm/textures/blocks/pwr_control_side.png new file mode 100644 index 0000000000000000000000000000000000000000..b36c421a2c7b3cf246b8a254ed7353f45984fda9 GIT binary patch literal 233 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf9UFLh)gTe~DWM4fEgM@d literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/pwr_control_top.png b/src/main/resources/assets/hbm/textures/blocks/pwr_control_top.png new file mode 100644 index 0000000000000000000000000000000000000000..d5ae636a02b56367f51d9a1f3f85874a5e98eaed GIT binary patch literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf565Gy2o6z?H{D%l-K5QxCl$6^DGm%&a!E?-4Y3j z9}m(K)wNC+DJlI}wk~_Upx~oa%dNH{dIF*=w7P7VjUUgREh^f(H6w~U`}__0K0SdV zXBR%#XIA{oE=O3M@;W#cJqk#LbMY0A4Ey-rZ~vzYQls&SC${|P+V?W=wn>X~ zREC6JJ#yxQ@2q8U$!SOC|FiU*^gwpcum5~?kND<&3Q^tFxbw(Epf4CaUHx3vIVCg! E0MKV+iU0rr literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/pwr_controller.png b/src/main/resources/assets/hbm/textures/blocks/pwr_controller.png new file mode 100644 index 0000000000000000000000000000000000000000..822cb4d266c6f82a9e1c477d78068c144e86ef63 GIT binary patch literal 550 zcmV+>0@?kEP)276-l+r)9h#(?7gu5OG zu)Y0~QVJqMDTNRM)>`_$C&q}XQc5A`M2rz*EKs?;{MiIjO3df;C3!$q>AH@b6J00d z9I>`TRRNexo{@7RrPKthwZs@XK0bQT?tSd-z2W@)lv*n`rKV)9U5nft2UH6{6EMaw z47Y0wcz;8!rU?L)k{OR5uPp!;)!Zr(!MQg5|AYN=swyePwW-c^h`3gZ2r&jGlL`C# zZvnWvx?nUKv$?s+VsVZ4o){C>Lf3VK5U91~&!v>`-ZLIQ;_U1@s)~qkbF<+3`Ufc` zYOSa$#;^=rzxuKj5k{jCrDQ&SdI!Ms4+j98oO~sv#B6p*trhP*ufH4-!mx5+rqkUz znLI&NQ7x!eoO6_-EFFwD=TDx>onavIbjfzAmb1a5Cb+l7mZ o`D$4AVT?gU@IL<4<5%y$0sJK;nbTOo0{{R307*qoM6N<$g0;-|TmS$7 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/pwr_fuel_side.png b/src/main/resources/assets/hbm/textures/blocks/pwr_fuel_side.png new file mode 100644 index 0000000000000000000000000000000000000000..1f22996bb5d37c3bb30cb8d7908c1fd34d9e26c1 GIT binary patch literal 211 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfrem>+k^eSejoN<4Yg@;zMk}wS48}MV3nbHIQ#Y>@s*Q56g7Rna8jwORy;#N z;1la4#hZ!YHlB}+=N2d5-KM)N#`96l&V{f21q4@Uxv+#rChT83u}HOZoqggC`wy~T z(|V^oS5Z{5mq>2;E~k0k(AEH-1EKS`um(&Y{B!+)*Jk9l#Gkz6lXJGFBJm1pTX1B&t;ucLK6Vk$X_o2 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/pwr_heatex.png b/src/main/resources/assets/hbm/textures/blocks/pwr_heatex.png new file mode 100644 index 0000000000000000000000000000000000000000..f579c8a45451d77ac9a0fe69f3e2bc594e752864 GIT binary patch literal 373 zcmV-*0gC>KP)F>Vw=5JlhbX+z|MLvT0;M5JT{a0yG62oV=R+`^GTB0(fb zSO(TRvsKlfU{|&Xm|&tVb-gO7s-C{Sf9=Xb62^EKfS+Hk`Ed1#fw_3|lK(M%)L{4h zGm@w*DvONb?#C^YU@o)9^o%49fy>8tKxMMu?OBFt5^GG)NGb+#h<~6zzh=&wNSigL zk1X;KEcXks1fz<|K}InNK&&xceF6ytwuvPfRb&Kb5(3tkzWa8=@7p`(-ORiXVo5TK zszDjbW{uIS=g*urVH3j`c-ll7CP4%0cs0_e;Plr7y==xQnFhf_qlOrQ-UN@e%)@lS zlP0t#(!0x#^d?@s-6)bd?qIV>594hW$-soRi*()_hV3FXiL$qgG}oX@t0Mgcv@$n4 T{_8}|00000NkvXXu0mjfp!%P4 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/pwr_neutron_source.png b/src/main/resources/assets/hbm/textures/blocks/pwr_neutron_source.png new file mode 100644 index 0000000000000000000000000000000000000000..bc1d78027976f3907a660ae9276d81e31d075bdf GIT binary patch literal 564 zcmV-40?Yl0P)Y=Fo97}7u|LL zTy#$Zv6D)7SE}lM=iEBw>dWVpS_yYDAxR2_)xnC4L``vXA_FohB7{4o6e5!55xhG+ zLCvVO0#HQ&Fn1z?hyb9JLPnrwhzJi4e`(><#M?K=wARQ>M1)cb!!QsLlu`g#tyYv$ z=)JSs-4mI#t{pc6;Qhx>s2gsMx$$a#PydR!^Zmy)A5PmMrL|hAt>Nyd8@t^ts`_kn z?Wj%P+wBdPuTRMcYHc*;M?`RQRF%8C+i6o*#y+B^tk;|Au&%V$CO=4oQi$0sb6YAN z9j-Y%I%2)quwHLCKf73n%xv<8g6s_f76R?hu~ikf{ox}rcS%i=oZFO{3&9@ysSoB( z*G^ZZ_s%$u48wqkOeSU~ZvJ28r`UTsGo!2G?z9LeBM=eHbusMx>;gB#+%dC-PHoy) zYo)bD%S_Y^Go!jM6~A47eQe>LWG0IU%#6&Wjk6w~FUfX$L+`p6)@STTSrdurRJ4(a zyE6;}8yPvid`adDdhZ+@oKS0>gEN`!v!u3alZ415BKZ01H?20zr)%x*0JPQ+5vs@% zE;mEw;5C5z`#%&BYOV7E$9-C~PbffmkR+M8B=a8w`wIve2v`&V0000dqfP7d3<~x3aBbKH{VeWTwZ=5r9@E_blnzf9jYE< z3UY?~`wgnf`S}M_6$4<5K{XJ9j-8J%rl2Saw%cEb2q~p$^bi6uCUVYLRYg^~y822= ziQC&B)1JHi51BO0Cq#t4e;pX8Dk4JHZ7GTZfW=}CzG)+TQRn&D&UDs4qHF2=k5<(#7yocCz9mmHr z`o5pKEtku`AnuIjTsbKt^Z6pz^;>ezsCwG=WlBD@_RiL`*%7LP8=s$F1{FZKyZbph z>?77%VoZcE6zKaN5h3TyX7fM@fz#8I1C;C?W{e?(0A!3Qh%q7}lx2wsgfKYv^|jkG zh%s_@_MWmVNh#yK0tsu~1Wg2ThPr--wQl4Uh7}$jT2yr+dl({ubB?a_2RYsJ{~Jqx VLcv4mF&+Q_002ovPDHLkV1h(l1A71f literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/pwr_reflector.png b/src/main/resources/assets/hbm/textures/blocks/pwr_reflector.png new file mode 100644 index 0000000000000000000000000000000000000000..c139a402ea33722cae5db29bd18aab8c22640e17 GIT binary patch literal 490 zcmV~=dhGXO*cGsDaf5!@XSK}6_JDFt`O%-C+X z1QB7k+Yw_#M94XlbEcF6fU4r|+-^7Aoe;v%=y*I5RF#wx*XwoYUTbAM9y1z^FtZ;8 zbIwdA6E2qvP1B&?$2y%(tX33fl`&&^}fPZ%GF+hxwTI*fJ zS}OpH#e%kNe~^BM4~GLG1Y(S+h>%hurSz}{r4*W`xqqQI#s6qfYaPs{P1D>Tst;?> zyEDdk*C2#|sy?hi*LB0{)y#%9KB_^j6%nD7g1o=K`+mRY>+6g8d`{Ce0K;bb)8js5 zudlCse0&hxo$+|gbULN$Isj5inAs2_GaEt_LZIi=S_yA&Z=BC(RF#}F?miIvLcP&) g&eU2dr3_j41uqSi!J1Qc{r~^~07*qoM6N<$f>}${+W-In literal 0 HcmV?d00001 From f912e572f7482d529d5bbe4b8dc121fe88e608b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=93=D1=80=D0=B8=D0=B3=D0=BE=D1=80=D0=B8=D0=B9=20=D0=92?= =?UTF-8?q?=D0=B5=D0=BB=D0=B8=D1=87=D0=BA=D0=BE?= Date: Wed, 16 Aug 2023 15:17:26 +0300 Subject: [PATCH 242/432] Fix Thermos preventer on Crucible --- src/main/java/com/hbm/main/MainRegistry.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 438847446..bc6e968f7 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -959,8 +959,8 @@ public class MainRegistry { config.save(); try { - if(GeneralConfig.enableThermosPreventer && Class.forName("thermos.Thermos") != null) { - throw new IllegalStateException("The mod tried to start on a Thermos server and therefore stopped. To allow the server to start on Thermos, change the appropriate " + if(GeneralConfig.enableThermosPreventer && Class.forName("thermos.ThermosClassTransformer") != null) { + throw new IllegalStateException("The mod tried to start on a Thermos or it's fork server and therefore stopped. To allow the server to start on Thermos, change the appropriate " + "config entry (0.00 in hbm.cfg). This was done because, by default, Thermos " + "uses a so-called \"optimization\" feature that reduces tile ticking a lot, which will inevitably break a lot of machines. Most people aren't even aware " + "of this, and start blaming random mods for all their stuff breaking. In order to adjust or even disable this feature, edit \"tileentities.yml\" in your " From cb0eb4271b39b20d86839c20024436561a757e0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=93=D1=80=D0=B8=D0=B3=D0=BE=D1=80=D0=B8=D0=B9=20=D0=92?= =?UTF-8?q?=D0=B5=D0=BB=D0=B8=D1=87=D0=BA=D0=BE?= Date: Wed, 16 Aug 2023 15:24:51 +0300 Subject: [PATCH 243/432] Fix hbmpollution.dat file on Crucible and probably Thermos --- .../java/com/hbm/handler/pollution/PollutionHandler.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java index 0ba128f52..6ddf72eec 100644 --- a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java +++ b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java @@ -153,8 +153,10 @@ public class PollutionHandler { public String getDataDir(WorldServer world) { String dir = world.getSaveHandler().getWorldDirectory().getAbsolutePath(); - if(world.provider.dimensionId != 0) { - dir += File.separator + "DIM" + world.provider.dimensionId; + // Crucible and probably Thermos provide dimId by themselves + String dimId = File.separator + "DIM" + world.provider.dimensionId; + if(world.provider.dimensionId != 0 && !dir.endsWith(dimId)) { + dir += dimId; } dir += File.separator + "data"; return dir; From f7dd3a0a93972553d2b172b7c3853688afd55839 Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 16 Aug 2023 16:21:11 +0200 Subject: [PATCH 244/432] more PWR crap --- src/main/java/com/hbm/blocks/ModBlocks.java | 2 +- .../java/com/hbm/blocks/machine/BlockPWR.java | 108 +++++++++++++++++- .../blocks/machine/MachinePWRController.java | 33 ++++-- .../hbm/inventory/container/ContainerPWR.java | 76 ++++++++++++ .../java/com/hbm/inventory/gui/GUIPWR.java | 40 +++++++ src/main/java/com/hbm/items/ModItems.java | 14 +++ .../com/hbm/items/machine/ItemPWRFuel.java | 26 +++++ .../java/com/hbm/tileentity/TileMappings.java | 4 + .../machine/TileEntityDiFurnace.java | 31 ++--- .../machine/TileEntityPWRController.java | 55 +++++++++ .../machine/rbmk/TileEntityRBMKInlet.java | 33 +----- .../machine/rbmk/TileEntityRBMKOutlet.java | 59 +--------- .../hbm/textures/gui/reactors/gui_pwr.png | Bin 5843 -> 5927 bytes .../hbm/textures/items/pwr_fuel.hea242.png | Bin 0 -> 428 bytes .../hbm/textures/items/pwr_fuel.hen237.png | Bin 0 -> 412 bytes .../hbm/textures/items/pwr_fuel.hep239.png | Bin 0 -> 403 bytes .../hbm/textures/items/pwr_fuel.hep241.png | Bin 0 -> 418 bytes .../hbm/textures/items/pwr_fuel.hes326.png | Bin 0 -> 431 bytes .../hbm/textures/items/pwr_fuel.hes327.png | Bin 0 -> 434 bytes .../hbm/textures/items/pwr_fuel.heu233.png | Bin 0 -> 433 bytes .../hbm/textures/items/pwr_fuel.heu235.png | Bin 0 -> 419 bytes .../hbm/textures/items/pwr_fuel.mea.png | Bin 0 -> 431 bytes .../hbm/textures/items/pwr_fuel.men.png | Bin 0 -> 429 bytes .../hbm/textures/items/pwr_fuel.mep.png | Bin 0 -> 414 bytes .../hbm/textures/items/pwr_fuel.meu.png | Bin 0 -> 422 bytes .../hbm/textures/items/pwr_fuel.mox.png | Bin 0 -> 414 bytes .../hbm/textures/items/pwr_fuel_base.png | Bin 0 -> 422 bytes .../hbm/textures/items/pwr_fuel_depleted.png | Bin 0 -> 373 bytes .../hbm/textures/items/pwr_fuel_hot.png | Bin 0 -> 401 bytes 29 files changed, 364 insertions(+), 117 deletions(-) create mode 100644 src/main/java/com/hbm/inventory/container/ContainerPWR.java create mode 100644 src/main/java/com/hbm/inventory/gui/GUIPWR.java create mode 100644 src/main/java/com/hbm/items/machine/ItemPWRFuel.java create mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java create mode 100644 src/main/resources/assets/hbm/textures/items/pwr_fuel.hea242.png create mode 100644 src/main/resources/assets/hbm/textures/items/pwr_fuel.hen237.png create mode 100644 src/main/resources/assets/hbm/textures/items/pwr_fuel.hep239.png create mode 100644 src/main/resources/assets/hbm/textures/items/pwr_fuel.hep241.png create mode 100644 src/main/resources/assets/hbm/textures/items/pwr_fuel.hes326.png create mode 100644 src/main/resources/assets/hbm/textures/items/pwr_fuel.hes327.png create mode 100644 src/main/resources/assets/hbm/textures/items/pwr_fuel.heu233.png create mode 100644 src/main/resources/assets/hbm/textures/items/pwr_fuel.heu235.png create mode 100644 src/main/resources/assets/hbm/textures/items/pwr_fuel.mea.png create mode 100644 src/main/resources/assets/hbm/textures/items/pwr_fuel.men.png create mode 100644 src/main/resources/assets/hbm/textures/items/pwr_fuel.mep.png create mode 100644 src/main/resources/assets/hbm/textures/items/pwr_fuel.meu.png create mode 100644 src/main/resources/assets/hbm/textures/items/pwr_fuel.mox.png create mode 100644 src/main/resources/assets/hbm/textures/items/pwr_fuel_base.png create mode 100644 src/main/resources/assets/hbm/textures/items/pwr_fuel_depleted.png create mode 100644 src/main/resources/assets/hbm/textures/items/pwr_fuel_hot.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index f5b447bcd..371268c24 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -883,9 +883,9 @@ public class ModBlocks { public static Block pwr_neutron_source; public static Block pwr_reflector; public static Block pwr_casing; + public static Block pwr_port; public static Block pwr_controller; public static Block pwr_block; - public static Block pwr_port; public static Block reactor_element; public static Block reactor_control; diff --git a/src/main/java/com/hbm/blocks/machine/BlockPWR.java b/src/main/java/com/hbm/blocks/machine/BlockPWR.java index 865cff4c6..7012f5437 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockPWR.java +++ b/src/main/java/com/hbm/blocks/machine/BlockPWR.java @@ -1,20 +1,29 @@ package com.hbm.blocks.machine; +import java.util.Random; + import com.hbm.blocks.ModBlocks; import com.hbm.lib.RefStrings; import com.hbm.render.block.ct.CT; import com.hbm.render.block.ct.CTStitchReceiver; import com.hbm.render.block.ct.IBlockCT; +import com.hbm.tileentity.machine.TileEntityPWRController; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.init.Blocks; +import net.minecraft.item.Item; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; -public class BlockPWR extends Block implements IBlockCT { +public class BlockPWR extends BlockContainer implements IBlockCT { @SideOnly(Side.CLIENT) protected IIcon iconPort; @@ -26,6 +35,11 @@ public class BlockPWR extends Block implements IBlockCT { public int getRenderType() { return CT.renderID; } + + @Override + public Item getItemDropped(int i, Random rand, int j) { + return null; + } @SideOnly(Side.CLIENT) public CTStitchReceiver rec; @SideOnly(Side.CLIENT) public CTStitchReceiver recPort; @@ -49,4 +63,96 @@ public class BlockPWR extends Block implements IBlockCT { public boolean canConnect(IBlockAccess world, int x, int y, int z, Block block) { return block == ModBlocks.pwr_block || block == ModBlocks.pwr_controller; } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityBlockPWR(); + } + + @Override + public void breakBlock(World world, int x, int y, int z, Block block, int meta) { + + TileEntity tile = world.getTileEntity(x, y, z); + + if(tile instanceof TileEntityBlockPWR) { + TileEntityBlockPWR pwr = (TileEntityBlockPWR) tile; + world.removeTileEntity(x, y, z); + if(pwr.block != null) { + world.setBlock(x, y, z, pwr.block); + TileEntity controller = world.getTileEntity(pwr.coreX, pwr.coreY, pwr.coreZ); + + if(controller instanceof TileEntityPWRController) { + ((TileEntityPWRController) controller).assembled = false; + } + } + } else { + world.removeTileEntity(x, y, z); + } + super.breakBlock(world, x, y, z, block, meta); + } + + public static class TileEntityBlockPWR extends TileEntity { + + public Block block; + public int coreX; + public int coreY; + public int coreZ; + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + if(worldObj.getTotalWorldTime() % 20 == 0 && block != null) { + + if(worldObj.getChunkProvider().chunkExists(coreX >> 4, coreZ >> 4)) { + + TileEntity tile = worldObj.getTileEntity(coreX, coreY, coreZ); + + if(tile instanceof TileEntityPWRController) { + TileEntityPWRController controller = (TileEntityPWRController) tile; + if(!controller.assembled) { + this.getBlockType().breakBlock(worldObj, xCoord, yCoord, zCoord, this.getBlockType(), this.getBlockMetadata()); + } + } else { + this.getBlockType().breakBlock(worldObj, xCoord, yCoord, zCoord, this.getBlockType(), this.getBlockMetadata()); + } + } + } + } + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + block = Block.getBlockById(nbt.getInteger("block")); + if(block != Blocks.air) { + coreX = nbt.getInteger("cX"); + coreY = nbt.getInteger("cY"); + coreZ = nbt.getInteger("cZ"); + } else { + block = null; + } + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + if(block != null) { + nbt.setInteger("block", Block.getIdFromBlock(block)); + nbt.setInteger("cX", coreX); + nbt.setInteger("cY", coreY); + nbt.setInteger("cZ", coreZ); + } + } + + @Override + public void markDirty() { + if(this.worldObj != null) { + this.worldObj.markTileEntityChunkModified(this.xCoord, this.yCoord, this.zCoord, this); + } + } + } } diff --git a/src/main/java/com/hbm/blocks/machine/MachinePWRController.java b/src/main/java/com/hbm/blocks/machine/MachinePWRController.java index 9eedb3d45..40c6748ed 100644 --- a/src/main/java/com/hbm/blocks/machine/MachinePWRController.java +++ b/src/main/java/com/hbm/blocks/machine/MachinePWRController.java @@ -4,8 +4,10 @@ import java.util.HashMap; import java.util.Map.Entry; import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.machine.BlockPWR.TileEntityBlockPWR; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; +import com.hbm.tileentity.machine.TileEntityPWRController; import com.hbm.util.fauxpointtwelve.BlockPos; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; @@ -35,7 +37,7 @@ public class MachinePWRController extends BlockContainer { @Override public TileEntity createNewTileEntity(World world, int meta) { - return null; + return new TileEntityPWRController(); } @Override @@ -67,10 +69,15 @@ public class MachinePWRController extends BlockContainer { if(world.isRemote) { return true; } else if(!player.isSneaking()) { + + TileEntityPWRController controller = (TileEntityPWRController) world.getTileEntity(x, y, z); - assemble(world, x, y, z); + if(!controller.assembled) { + assemble(world, x, y, z); + } else { + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); + } - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); return true; } else { return false; @@ -87,29 +94,39 @@ public class MachinePWRController extends BlockContainer { assembly.put(new BlockPos(x, y, z), this); ForgeDirection dir = ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z)).getOpposite(); - x += dir.offsetX; - z += dir.offsetZ; errored = false; - floodFill(world, x, y, z); + floodFill(world, x + dir.offsetX, y, z + dir.offsetZ); if(fuelRods.size() == 0) errored = true; if(!errored) { for(Entry entry : assembly.entrySet()) { + BlockPos pos = entry.getKey(); Block block = entry.getValue(); if(block != ModBlocks.pwr_controller) { if(block == ModBlocks.pwr_port) { - world.setBlock(entry.getKey().getX(), entry.getKey().getY(), entry.getKey().getZ(), ModBlocks.pwr_block, 1, 3); + world.setBlock(pos.getX(), pos.getY(), pos.getZ(), ModBlocks.pwr_block, 1, 3); } else { - world.setBlock(entry.getKey().getX(), entry.getKey().getY(), entry.getKey().getZ(), ModBlocks.pwr_block, 0, 3); + world.setBlock(pos.getX(), pos.getY(), pos.getZ(), ModBlocks.pwr_block, 0, 3); } + + TileEntityBlockPWR pwr = (TileEntityBlockPWR) world.getTileEntity(pos.getX(), pos.getY(), pos.getZ()); + pwr.block = block; + pwr.coreX = x; + pwr.coreY = y; + pwr.coreZ = z; + pwr.markDirty(); } } } + + TileEntityPWRController controller = (TileEntityPWRController) world.getTileEntity(x, y, z); + controller.assembled = !errored; + assembly.clear(); } diff --git a/src/main/java/com/hbm/inventory/container/ContainerPWR.java b/src/main/java/com/hbm/inventory/container/ContainerPWR.java new file mode 100644 index 000000000..92b638808 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerPWR.java @@ -0,0 +1,76 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotCraftingOutput; +import com.hbm.items.machine.IItemFluidIdentifier; +import com.hbm.tileentity.machine.TileEntityPWRController; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerPWR extends Container { + + TileEntityPWRController controller; + + public ContainerPWR(InventoryPlayer invPlayer, TileEntityPWRController controller) { + this.controller = controller; + + this.addSlotToContainer(new Slot(controller, 0, 53, 5)); + this.addSlotToContainer(new SlotCraftingOutput(invPlayer.player, controller, 1, 89, 32)); + this.addSlotToContainer(new Slot(controller, 2, 8, 59)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 108 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 164)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(par2); + + if(var4 != null && var4.getHasStack()) { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if(par2 <= 2) { + if(!this.mergeItemStack(var5, 3, this.inventorySlots.size(), true)) { + return null; + } + } else { + + if(var3.getItem() instanceof IItemFluidIdentifier) { + if(!this.mergeItemStack(var5, 2, 3, false)) { + return null; + } + } else { + if(!this.mergeItemStack(var5, 0, 1, false)) { + return null; + } + } + } + + if(var5.stackSize == 0) { + var4.putStack((ItemStack) null); + } else { + var4.onSlotChanged(); + } + } + + return var3; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return controller.isUseableByPlayer(player); + } + +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIPWR.java b/src/main/java/com/hbm/inventory/gui/GUIPWR.java new file mode 100644 index 000000000..8715854f1 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIPWR.java @@ -0,0 +1,40 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerPWR; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.machine.TileEntityPWRController; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUIPWR extends GuiInfoContainer { + + protected TileEntityPWRController controller; + private final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/reactors/gui_pwr.png"); + + public GUIPWR(InventoryPlayer inventory, TileEntityPWRController controller) { + super(new ContainerPWR(inventory, controller)); + this.controller = controller; + + this.xSize = 176; + this.ySize = 188; + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.controller.hasCustomInventoryName() ? this.controller.getInventoryName() : I18n.format(this.controller.getInventoryName()); + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + } +} diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 0ea177e3b..a5144423e 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -21,6 +21,7 @@ import com.hbm.items.machine.*; import com.hbm.items.machine.ItemFELCrystal.EnumWavelengths; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.items.machine.ItemPlateFuel.FunctionEnum; +import com.hbm.items.machine.ItemPWRFuel.EnumPWRFuel; import com.hbm.items.machine.ItemRBMKRod.EnumBurnFunc; import com.hbm.items.machine.ItemRBMKRod.EnumDepleteFunc; import com.hbm.items.machine.ItemRTGPelletDepleted.DepletedRTGMaterial; @@ -1103,6 +1104,10 @@ public class ModItems { public static Item plate_fuel_sa326; public static Item plate_fuel_ra226be; public static Item plate_fuel_pu238be; + + public static Item pwr_fuel; + public static Item pwr_fuel_hot; + public static Item pwr_fuel_depleted; public static Item rbmk_lid; public static Item rbmk_lid_glass; @@ -3547,6 +3552,10 @@ public class ModItems { plate_fuel_sa326 = new ItemPlateFuel(2000000).setFunction(FunctionEnum.LINEAR, 80).setUnlocalizedName("plate_fuel_sa326").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":plate_fuel_sa326"); plate_fuel_ra226be = new ItemPlateFuel(1300000).setFunction(FunctionEnum.PASSIVE, 30).setUnlocalizedName("plate_fuel_ra226be").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":plate_fuel_ra226be"); plate_fuel_pu238be = new ItemPlateFuel(1000000).setFunction(FunctionEnum.PASSIVE, 50).setUnlocalizedName("plate_fuel_pu238be").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":plate_fuel_pu238be"); + + pwr_fuel = new ItemPWRFuel().setUnlocalizedName("pwr_fuel").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pwr_fuel"); + pwr_fuel_hot = new ItemEnumMulti(EnumPWRFuel.class, true, false).setUnlocalizedName("pwr_fuel_hot").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pwr_fuel_hot"); + pwr_fuel_depleted = new ItemEnumMulti(EnumPWRFuel.class, true, false).setUnlocalizedName("pwr_fuel_depleted").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pwr_fuel_depleted"); rbmk_lid = new ItemRBMKLid().setUnlocalizedName("rbmk_lid").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rbmk_lid"); rbmk_lid_glass = new ItemRBMKLid().setUnlocalizedName("rbmk_lid_glass").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rbmk_lid_glass"); @@ -6640,6 +6649,11 @@ public class ModItems { GameRegistry.registerItem(plate_fuel_ra226be, plate_fuel_ra226be.getUnlocalizedName()); GameRegistry.registerItem(plate_fuel_pu238be, plate_fuel_pu238be.getUnlocalizedName()); + //PWR Parts + GameRegistry.registerItem(pwr_fuel, pwr_fuel.getUnlocalizedName()); + GameRegistry.registerItem(pwr_fuel_hot, pwr_fuel_hot.getUnlocalizedName()); + GameRegistry.registerItem(pwr_fuel_depleted, pwr_fuel_depleted.getUnlocalizedName()); + //RBMK parts GameRegistry.registerItem(rbmk_lid, rbmk_lid.getUnlocalizedName()); GameRegistry.registerItem(rbmk_lid_glass, rbmk_lid_glass.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/machine/ItemPWRFuel.java b/src/main/java/com/hbm/items/machine/ItemPWRFuel.java new file mode 100644 index 000000000..95198f494 --- /dev/null +++ b/src/main/java/com/hbm/items/machine/ItemPWRFuel.java @@ -0,0 +1,26 @@ +package com.hbm.items.machine; + +import com.hbm.items.ItemEnumMulti; + +public class ItemPWRFuel extends ItemEnumMulti { + + public ItemPWRFuel() { + super(EnumPWRFuel.class, true, true); + } + + public static enum EnumPWRFuel { + MEU, + HEU233, + HEU235, + MEN, + HEN237, + MOX, + MEP, + HEP239, + HEP241, + MEA, + HEA242, + HES326, + HES327; + } +} diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 74b76c50b..fd8d60aca 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -14,6 +14,7 @@ import com.hbm.blocks.generic.BlockLoot.TileEntityLoot; import com.hbm.blocks.generic.BlockMotherOfAllOres.TileEntityRandomOre; import com.hbm.blocks.generic.BlockSnowglobe.TileEntitySnowglobe; import com.hbm.blocks.generic.PartEmitter.TileEntityPartEmitter; +import com.hbm.blocks.machine.BlockPWR.TileEntityBlockPWR; import com.hbm.blocks.machine.MachineCapacitor.TileEntityCapacitor; import com.hbm.blocks.machine.MachineFan.TileEntityFan; import com.hbm.blocks.machine.PistonInserter.TileEntityPistonInserter; @@ -216,6 +217,9 @@ public class TileMappings { put(TileEntityRandomOre.class, "tileentity_mother_of_all_ores"); put(TileEntityBedrockOre.class, "tileentity_bedrock_ore"); + + put(TileEntityBlockPWR.class, "tileentity_block_pwr"); + put(TileEntityPWRController.class, "tileentity_pwr_controller"); putNetwork(); putBombs(); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnace.java b/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnace.java index 1a10e1a7e..4e5cf6c3b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnace.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnace.java @@ -132,32 +132,19 @@ public class TileEntityDiFurnace extends TileEntityMachinePolluting implements I } public boolean canProcess() { - if(slots[0] == null || slots[1] == null) { - return false; - } + if(slots[0] == null || slots[1] == null) return false; + if(!this.hasPower()) return false; - if(!this.hasPower()) { - return false; - } - - ItemStack itemStack = BlastFurnaceRecipes.getOutput(slots[0], slots[1]); - if(itemStack == null) { - return false; - } + ItemStack output = BlastFurnaceRecipes.getOutput(slots[0], slots[1]); + if(output == null) return false; + if(slots[3] == null) return true; + if(!slots[3].isItemEqual(output)) return false; - if(slots[3] == null) { + if(slots[3].stackSize + output.stackSize <= slots[3].getMaxStackSize()) { return true; } - - if(!slots[3].isItemEqual(itemStack)) { - return false; - } - - if(slots[3].stackSize < getInventoryStackLimit() && slots[3].stackSize < slots[3].getMaxStackSize()) { - return true; - } else { - return slots[3].stackSize < itemStack.getMaxStackSize(); - } + + return false; } private void processItem() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java new file mode 100644 index 000000000..f00014765 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java @@ -0,0 +1,55 @@ +package com.hbm.tileentity.machine; + +import com.hbm.inventory.container.ContainerPWR; +import com.hbm.inventory.gui.GUIPWR; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.TileEntityMachineBase; + +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; + +public class TileEntityPWRController extends TileEntityMachineBase implements IGUIProvider { + + public boolean assembled; + + public TileEntityPWRController() { + super(3); + } + + @Override + public String getName() { + return "container.pwrController"; + } + + @Override + public void updateEntity() { + + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + this.assembled = nbt.getBoolean("assembled"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + nbt.setBoolean("assembled", assembled); + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerPWR(player.inventory, this); + } + + @Override + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIPWR(player.inventory, this); + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKInlet.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKInlet.java index ddd96c7de..be66e767d 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKInlet.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKInlet.java @@ -2,8 +2,6 @@ package com.hbm.tileentity.machine.rbmk; import api.hbm.fluid.IFluidStandardReceiver; import com.hbm.blocks.machine.rbmk.RBMKBase; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.tileentity.TileEntityLoadedBase; @@ -13,12 +11,12 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityRBMKInlet extends TileEntityLoadedBase implements IFluidAcceptor, IFluidStandardReceiver { +public class TileEntityRBMKInlet extends TileEntityLoadedBase implements IFluidStandardReceiver { public FluidTank water; public TileEntityRBMKInlet() { - water = new FluidTank(Fluids.WATER, 32000, 0); + water = new FluidTank(Fluids.WATER, 32000); } @Override @@ -63,33 +61,6 @@ public class TileEntityRBMKInlet extends TileEntityLoadedBase implements IFluidA this.water.writeToNBT(nbt, "tank"); } - @Override - public void setFillForSync(int fill, int index) { - if(index == 0) water.setFill(fill); - } - - @Override - public void setFluidFill(int fill, FluidType type) { - if(type == Fluids.WATER) water.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if(index == 0) water.setTankType(type); - } - - @Override - public int getFluidFill(FluidType type) { - if(type == Fluids.WATER) return water.getFill(); - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - if(type == Fluids.WATER) return water.getMaxFill(); - return 0; - } - @Override public FluidTank[] getAllTanks() { return new FluidTank[] {water}; diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutlet.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutlet.java index 2c047cfd1..259ac0b4c 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutlet.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutlet.java @@ -1,16 +1,9 @@ package com.hbm.tileentity.machine.rbmk; -import java.util.ArrayList; -import java.util.List; - import api.hbm.fluid.IFluidStandardSender; import com.hbm.blocks.machine.rbmk.RBMKBase; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; -import com.hbm.lib.Library; import com.hbm.tileentity.TileEntityLoadedBase; import net.minecraft.block.Block; @@ -18,13 +11,12 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityRBMKOutlet extends TileEntityLoadedBase implements IFluidSource, IFluidStandardSender { +public class TileEntityRBMKOutlet extends TileEntityLoadedBase implements IFluidStandardSender { - public List list = new ArrayList(); public FluidTank steam; public TileEntityRBMKOutlet() { - steam = new FluidTank(Fluids.SUPERHOTSTEAM, 32000, 0); + steam = new FluidTank(Fluids.SUPERHOTSTEAM, 32000); } @Override @@ -53,8 +45,7 @@ public class TileEntityRBMKOutlet extends TileEntityLoadedBase implements IFluid } } - fillFluidInit(this.steam.getTankType()); - this.sendFluidToAll(steam, this); + fillFluidInit(); } } @@ -70,49 +61,9 @@ public class TileEntityRBMKOutlet extends TileEntityLoadedBase implements IFluid this.steam.writeToNBT(nbt, "tank"); } - @Override - public void setFillForSync(int fill, int index) { - steam.setFill(fill); - } - - @Override - public void setFluidFill(int fill, FluidType type) { - steam.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - steam.setTankType(type); - } - - @Override - public int getFluidFill(FluidType type) { - return steam.getFill(); - } - - @Override - public void fillFluidInit(FluidType type) { + public void fillFluidInit() { for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) - fillFluid(this.xCoord + dir.offsetX, this.yCoord + dir.offsetY, this.zCoord + dir.offsetZ, getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - @Deprecated - public boolean getTact() { return worldObj.getTotalWorldTime() % 2 == 0; } - - @Override - public List getFluidList(FluidType type) { - return this.list; - } - - @Override - public void clearFluidList(FluidType type) { - this.list.clear(); + this.sendFluid(steam, worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); } @Override diff --git a/src/main/resources/assets/hbm/textures/gui/reactors/gui_pwr.png b/src/main/resources/assets/hbm/textures/gui/reactors/gui_pwr.png index 7542ad6f4ada12ae6a2c872924702b579bfaf4b1..6910df3ee915d9ac2b1ce46a822bff5d4b139ab1 100644 GIT binary patch literal 5927 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 Wk;YT9wAa}H0000| literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/pwr_fuel.hen237.png b/src/main/resources/assets/hbm/textures/items/pwr_fuel.hen237.png new file mode 100644 index 0000000000000000000000000000000000000000..64228fb58cafece96f6e4ffa2c1517860b61cf5d GIT binary patch literal 412 zcmV;N0b~A&P)`)aJ+ABGx-PTXtTewgFquqbu~=ZO zy?DRhXFi`lEPi9-@mPAjo&Y!AYPDoA7)a5Zw<2-3+c6rA?)2esh_$w`c%?{`rm)>^ z(OPr;N9*;PNJYOt>ZWjDpg1#oTD?1W`i_O zp9cYSJ~~t@Rq{M1%QNC6MwD)7uEWF-uc!(D0000P)Nklb;@5JlhEV1fieoP~~xjx%r+?m$6JwHKhH<_6q=f&z&K z3oiz24ECf7g0LW2Ns*DJ`7`_GYiAe!TgbbjF-EuBEnyfEh9Q&5xH(^23d8;yqcdOdZW@m%6&vtck8Jn8*@pE!=4!z(WF;wkI( z8e1mRb162!QZ!Npsj=i-U;+WI%NSY)B>VDWBfP#J}fH6h_^@x6e0u>gEg_Cr1Bp`D4 x_r~L~)YKzTk7^+VD$M8e_y6qP&9CAwAYUSqzfT~IpDh3Y002ovPDHLkV1jJ~ut)#^ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/pwr_fuel.hep241.png b/src/main/resources/assets/hbm/textures/items/pwr_fuel.hep241.png new file mode 100644 index 0000000000000000000000000000000000000000..2a99abe38a9ef3e1e39439807765c45a2c99a1ad GIT binary patch literal 418 zcmV;T0bTxyP)b<842C}^5LyX}xJ7q1CN|E%QMdyGGt;{O8#6ax@4&!- z#6mu-syChOeS}m-`HR<(0046z>U}Ib?tV$>U!h3g6s8~e!u@C-s|;<1P&tmQq9IqdhONkX9R!~RqRdT{__j0EZt zeFFt5%;$3_>1##;B3FNJG#W`wJp%Qp7DAxHY&N_9&#u+{%KifK0hfNq{ZpJX-~a#s M07*qoM6N<$f{VJlc>n+a literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/pwr_fuel.hes326.png b/src/main/resources/assets/hbm/textures/items/pwr_fuel.hes326.png new file mode 100644 index 0000000000000000000000000000000000000000..d659fdd2fd0c54d2e31c22affa403e221d57822d GIT binary patch literal 431 zcmV;g0Z{&lP)fn-I}3vbrplxNJ2n@NxU6Oi{g#g(xC^=@;m2#=Wx$C@ZZch7ZgIM^?FSdMMP1= zWHPDDuMCXGV>O%2NYnJ&JDm>G>GW*zBO4Bf%JV!09C^K7SKV$`>E4(+ak*SF7z|GI zUav=*rrP4RPJFz%!FhW_2*KeW&F6E1b{m4=GLYrE__wz>udl>$OdQ7~Ny3ZgL6%+K zk?p$Jmc>KAPqtc-Nl7Lp#%>3-+T|dCTC<4_6sCyeu!c ZkPlbzw)NRTgn|G7002ovPDHLkV1igb!#Mx| literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/pwr_fuel.hes327.png b/src/main/resources/assets/hbm/textures/items/pwr_fuel.hes327.png new file mode 100644 index 0000000000000000000000000000000000000000..7a1f8df9883e8205beceed32f6f0e5d60b3419ff GIT binary patch literal 434 zcmV;j0ZsmiP)QSjf)S``#RXwUPIQX-|K*=(lf zrv@60hVFDaD5XBVR4UPGwN^I&VzpXL7mGy=d~w^hb-7&DrkadN?Dcw7tJQCMrBXpD zWo*7_5@#3ZygWW5gkbrOy4^1E=`lFYdLX+{V3Eu7^zcLw1O!1q7>2x^ov<~XtUuB2 zet|3&6!I+OkeNRu84k(L=OoE^eGtIj;Q`xPGuzl;lCc=;1&isF$o(M*Aa``c#Ii`x zjOH_9*Gw{t`3EjareH=ziV>8Hjw9U(FqFf%o-zOY+C{Hr-eUdQ3 zzP(SMNQ3@x03n2xajx+DuSD*ESV~5Iz|PGbj^h|t#QFePhP|uT>w5VgwcG90d$v5y cuk0@%@0pRus}j4>O8@`>07*qoM6N<$f~1ngga7~l literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/pwr_fuel.heu233.png b/src/main/resources/assets/hbm/textures/items/pwr_fuel.heu233.png new file mode 100644 index 0000000000000000000000000000000000000000..8961cc6363c24c7cb1b732a113ee6778464de80b GIT binary patch literal 433 zcmV;i0Z#sjP)9#~-6F!m;)|)j!;C>dQ zY)wyfYQl1{Ob6LV>{bD^j)_!s5ImdBQ$bk(@vwj4uTKi!_X&fLNJZ$W=IzZepUs)R zy6@<#Bd}WqkWz}5aYzt^M9~zjV@zy_o?`}sfpcwQ3lffh*J`!w?j7}dz2pCEx0_$d bUqC(qE854iDfK}300000NkvXXu0mjfhcv}Y literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/pwr_fuel.heu235.png b/src/main/resources/assets/hbm/textures/items/pwr_fuel.heu235.png new file mode 100644 index 0000000000000000000000000000000000000000..c80a207b0fafb1e1332017dd76ede97d9c56aa55 GIT binary patch literal 419 zcmV;U0bKrxP)=7zm1#W6)92aR!b;#{oD2)m{M6a1Cxi zK|w@j!8aHiR8*3@b>V~cTZ#>r$tqtUpq*Xwn(*4E@1o3Z>> zWIP@tgy6JC!{HFW{QPrJKA*$!T}Go3N-305#BogFHOF?lxdG(o@mvq%!$UU1{gcPt zqswl;!}aXFwt@f(#R9J5;y7ST!amuv-ELT~SGR!xN-rf6lW<55?Dji?z+M)lOij&H zYQTE6z5%3SA{kxS7mH;o$XeR;UE=#bVGt6@2sKm8=bGhW$!u!hBNxDcIVykv$C~IPW-u67$L1VCj^*xJt(H06qh7Cf{mxE*^DFra$QQY}zX$mFAJ_l@ N002ovPDHLkV1iD&zDocA literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/pwr_fuel.mea.png b/src/main/resources/assets/hbm/textures/items/pwr_fuel.mea.png new file mode 100644 index 0000000000000000000000000000000000000000..90305870db415327424c5da962d9fd6be9cbed1f GIT binary patch literal 431 zcmV;g0Z{&lP)P6LJ@Cfs^}27j+dfnig~a7@Nw?cQ&^w(D z&beUovygau-e9p)L0gr-G73gCvfb&*vCpFvei5<>u1`+cG|VqA!;X zM6E_5K<@;)@R-806KgiX4OM^uu95^FM?@YdOZ;v}5yfn>{CyyRZ(pwvww6@u1Ks5r*(N+y@M!nBB{7-@m7=uf>Dgje4wvWr+J-?9 zzz@8CbpR=)xLau+l|mVfwidfu@w3R7PN%^yB3?n?5eEtVe&6rEqw#or{GaVl^C9~e ZkUz7B%YO_Apwa*U002ovPDHLkV1fdI!5shq literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/pwr_fuel.men.png b/src/main/resources/assets/hbm/textures/items/pwr_fuel.men.png new file mode 100644 index 0000000000000000000000000000000000000000..c21db4157bc81194a7980fa73e2cfd885b0d35c4 GIT binary patch literal 429 zcmV;e0aE^nP)GPPR9<1L+hIHUE+SfXFMK%&_|;YT5G3y z=n{Y4|6sSh`+agg1Ej zG(k=6S5y>GwY0R?g8=UC?+E+=OUqOH#PL|;hdu{$_%{&1!|#U|NOPpDN=#wS_Bt<@ zrPb%L00000NkvXXu0mjfJv6>d literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/pwr_fuel.mep.png b/src/main/resources/assets/hbm/textures/items/pwr_fuel.mep.png new file mode 100644 index 0000000000000000000000000000000000000000..1d1334635620d17b9f7a97f35fde08d0709662ab GIT binary patch literal 414 zcmV;P0b%}$P)Z4A>a#Ns$DBSR*+~kt=O;XZFl!@4|nRdR6p1Pqy1FzVGAvKGW$mvp=&i9*<={ zpA!VZ?X=r%X0zGL;SU-Phtg`b1b8^rYE?R&j@a%vHgmJt(ChV{{BE~P5CqoY1)F(s zg!Ouj=Xu<}(Q>&YR@Q~=plYo~tWs916{C!oc=eRm^e7ytkO07*qo IM6N<$f-4-cp8x;= literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/pwr_fuel.meu.png b/src/main/resources/assets/hbm/textures/items/pwr_fuel.meu.png new file mode 100644 index 0000000000000000000000000000000000000000..ca1e8e89e9696083d76ebb4883d6b46e35b135ef GIT binary patch literal 422 zcmV;X0a^ZuP)>Yo$`5)9G9+ej<%V!<5Tq1Dt3klQGq5)!1@en{hlIQ?J+0?6q1At+lmy+GZ@h z6c~+02q8G0(O@vZD?R=kl*?stJeT2ch*Aor6j2nBf6lVmtgirhIZ|#4q zn|qh-Zi}0;&)NzC$QSasj*H`fF)_P%$7Zu;wOU>W0w_KeiA~Ht-m~3p@qK$+kgzp1 zRf!3!dc?5nyC_~g#F`H=?^99q1{f=CKH;g$bfDpp@ z90mA(Kp0L@Dndt^@FSw%?_1aA96+x)X93M-(;VMXx7)q^&yHX7EBOn^7r(E>Gu-lR QN&o-=07*qoM6N<$g8PZGMF0Q* literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/pwr_fuel.mox.png b/src/main/resources/assets/hbm/textures/items/pwr_fuel.mox.png new file mode 100644 index 0000000000000000000000000000000000000000..59d0a64a2fb0be0f2c930c34f446911e60fd6e59 GIT binary patch literal 414 zcmV;P0b%}$P)FzfXiDJ4=$Mx#+-eqmrR7?{aq zLKuc8wOTF4-Dbuolb`^46V(}HfOc= z#B#Yr2*LS|=JPoZ&y}BpYA-ch$7Qitpp-%>h41@Ryho1O`m$nBxm3mhbe>YpQ<6M| z%*7O}+6n@wzt$4>MuS-ZaI!ng9R*07*qo IM6N<$f))d`sQ>@~ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/pwr_fuel_base.png b/src/main/resources/assets/hbm/textures/items/pwr_fuel_base.png new file mode 100644 index 0000000000000000000000000000000000000000..9d614943b17da6e1230962e058ae2371d60efae9 GIT binary patch literal 422 zcmV;X0a^ZuP)6Hq%?_I@LFc|f5JCs(AOv~t=q>2n2k_suzBj_s{biX6A+e7MXQLAw(Jk0a8k& zl(gIJmHjIVtyU}T^?E3!zE!DI=yW=3&6lFlXr$$GIR%#Fx^7ynR#V$d)|MO&ht%u! zANg9XhEmFE?%0wCXMJApO9&xYyraQjK>2clf4(7TcQ223ddG9WL>PvIVMr839A3PT zde#v;$n_kY0u+yLh_xY_Cn%jjF^}H1a_k_09nT@R1$mt%H#6jP23-KHliz^=iY13+ z2Ifn8W>)rEUu_z#9{5o96Inr%@f>A=y~hdDz;0p%J$8?fBTXC{RAiV&hPT)d2Xp+Z z-OWKlh|JUN3FDDQjx>|;oN#P-xZcP2ed~&>-J52!nJ)gLZnwMnp8a`z0(ii&Q%dwW QaR2}S07*qoM6N<$f^vSgN&o-= literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/pwr_fuel_depleted.png b/src/main/resources/assets/hbm/textures/items/pwr_fuel_depleted.png new file mode 100644 index 0000000000000000000000000000000000000000..cb2b2d545e76b30c2713def15febd44e906d9498 GIT binary patch literal 373 zcmV-*0gC>KP)U5Ji7rffPZa%`u{MDNwqcfuqpn0GuF|FM!g(1?W*O zklsx!IikVFBX6}RXiY?_-I0Ft$MZ&-@c{oVR_~IGG5dHtAcTMr0+-8W_Wf+4C<#lgRVj?)Q5OV4}@tV~@w9b=7z-lXH$N%YON%(+OSIIh%jE%-ijT zBuT&+!|ROh_xop{FbvT&4U!~*loC=(JfBZ+&JhH`a!?dSAR^Rt4I&y91OYtHISn`H z2j=@ehzQ0Q5D`4jgE8ha5CE*#YZznT`#y{@vk+irYf7ovf?*hzgS6I8nAZ9;&~CSb zQVM$FXHJ!`lG_d5!WKtIj1#QaNHHoh4QYw{J z^kT7yQp#97ZW8aaAJ|`M9LHhtk9xfxPuD{(UN!_-X{aV%dH75tr9?`J=XpF{xmf$g zhRh(2Pp}dJw~1#s4LkP8Fcq{IfscEPh$rwSA>t3l;bT#`9!SB?{ vom0Bqt}$or-PG%Ky|_oMR%`P+`*ZsSfJBuSjPOT500000NkvXXu0mjf=7*-Y literal 0 HcmV?d00001 From 033285382232d1eb21e6c9c19b133d4630fc37b9 Mon Sep 17 00:00:00 2001 From: Bob Date: Wed, 16 Aug 2023 20:56:57 +0200 Subject: [PATCH 245/432] PWR GUI work, error messages, pre-calculation --- .../blocks/machine/MachinePWRController.java | 49 ++++++-- .../java/com/hbm/inventory/fluid/Fluids.java | 3 +- .../inventory/fluid/trait/FT_Heatable.java | 3 +- .../java/com/hbm/inventory/gui/GUIPWR.java | 30 ++++- .../machine/TileEntityPWRController.java | 118 ++++++++++++++++++ 5 files changed, 186 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/hbm/blocks/machine/MachinePWRController.java b/src/main/java/com/hbm/blocks/machine/MachinePWRController.java index 40c6748ed..f5c2b0ef9 100644 --- a/src/main/java/com/hbm/blocks/machine/MachinePWRController.java +++ b/src/main/java/com/hbm/blocks/machine/MachinePWRController.java @@ -7,6 +7,8 @@ import com.hbm.blocks.ModBlocks; import com.hbm.blocks.machine.BlockPWR.TileEntityBlockPWR; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; +import com.hbm.packet.AuxParticlePacketNT; +import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.machine.TileEntityPWRController; import com.hbm.util.fauxpointtwelve.BlockPos; @@ -19,7 +21,9 @@ import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; import net.minecraft.util.MathHelper; @@ -73,7 +77,7 @@ public class MachinePWRController extends BlockContainer { TileEntityPWRController controller = (TileEntityPWRController) world.getTileEntity(x, y, z); if(!controller.assembled) { - assemble(world, x, y, z); + assemble(world, x, y, z, player); } else { FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); } @@ -89,17 +93,20 @@ public class MachinePWRController extends BlockContainer { private static boolean errored; private static final int maxSize = 1024; - public void assemble(World world, int x, int y, int z) { + public void assemble(World world, int x, int y, int z, EntityPlayer player) { assembly.clear(); + fuelRods.clear(); assembly.put(new BlockPos(x, y, z), this); ForgeDirection dir = ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z)).getOpposite(); errored = false; - floodFill(world, x + dir.offsetX, y, z + dir.offsetZ); + floodFill(world, x + dir.offsetX, y, z + dir.offsetZ, player); if(fuelRods.size() == 0) errored = true; + TileEntityPWRController controller = (TileEntityPWRController) world.getTileEntity(x, y, z); + if(!errored) { for(Entry entry : assembly.entrySet()) { @@ -122,21 +129,23 @@ public class MachinePWRController extends BlockContainer { pwr.markDirty(); } } + + controller.setup(assembly, fuelRods); } - - TileEntityPWRController controller = (TileEntityPWRController) world.getTileEntity(x, y, z); controller.assembled = !errored; assembly.clear(); + fuelRods.clear(); } - private void floodFill(World world, int x, int y, int z) { + private void floodFill(World world, int x, int y, int z, EntityPlayer player) { BlockPos pos = new BlockPos(x, y, z); if(assembly.containsKey(pos)) return; if(assembly.size() >= maxSize) { errored = true; + sendError(world, x, y, z, "Max size exceeded", player); return; } @@ -150,18 +159,32 @@ public class MachinePWRController extends BlockContainer { if(isValidCore(block)) { assembly.put(pos, block); if(block == ModBlocks.pwr_fuel) fuelRods.put(pos, block); - floodFill(world, x + 1, y, z); - floodFill(world, x - 1, y, z); - floodFill(world, x, y + 1, z); - floodFill(world, x, y - 1, z); - floodFill(world, x, y, z + 1); - floodFill(world, x, y, z - 1); + floodFill(world, x + 1, y, z, player); + floodFill(world, x - 1, y, z, player); + floodFill(world, x, y + 1, z, player); + floodFill(world, x, y - 1, z, player); + floodFill(world, x, y, z + 1, player); + floodFill(world, x, y, z - 1, player); return; } - + + sendError(world, x, y, z, "Non-reactor block", player); errored = true; } + private void sendError(World world, int x, int y, int z, String message, EntityPlayer player) { + + if(player instanceof EntityPlayerMP) { + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "marker"); + data.setInteger("color", 0xff0000); + data.setInteger("expires", 5_000); + data.setDouble("dist", 128D); + if(message != null) data.setString("label", message); + PacketDispatcher.wrapper.sendTo(new AuxParticlePacketNT(data, x, y, z), (EntityPlayerMP) player); + } + } + private boolean isValidCore(Block block) { if(block == ModBlocks.pwr_fuel || block == ModBlocks.pwr_control || block == ModBlocks.pwr_channel || block == ModBlocks.pwr_heatex || block == ModBlocks.pwr_neutron_source) return true; return false; diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index 0c1d523d7..fba8a1b43 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -489,8 +489,9 @@ public class Fluids { HOTOIL.addTraits(new FT_Coolable(OIL, 1, 1, 10).setEff(CoolingType.HEATEXCHANGER, 1.0D)); HOTCRACKOIL.addTraits(new FT_Coolable(CRACKOIL, 1, 1, 10).setEff(CoolingType.HEATEXCHANGER, 1.0D)); - + COOLANT.addTraits(new FT_Heatable().setEff(HeatingType.HEATEXCHANGER, 1.0D).addStep(300, 1, COOLANT_HOT, 1)); + COOLANT.addTraits(new FT_Heatable().setEff(HeatingType.PWR, 1.0D).addStep(300, 1, COOLANT_HOT, 1)); COOLANT_HOT.addTraits(new FT_Coolable(COOLANT, 1, 1, 300).setEff(CoolingType.HEATEXCHANGER, 1.0D)); MUG.addTraits(new FT_Heatable().setEff(HeatingType.HEATEXCHANGER, 1.0D).addStep(400, 1, MUG_HOT, 1)); diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Heatable.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Heatable.java index 310083cf3..a10192c29 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Heatable.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Heatable.java @@ -69,7 +69,8 @@ public class FT_Heatable extends FluidTrait { public static enum HeatingType { BOILER("Boilable"), - HEATEXCHANGER("Heatable"); + HEATEXCHANGER("Heatable"), + PWR("PWR Coolant"); public String name; diff --git a/src/main/java/com/hbm/inventory/gui/GUIPWR.java b/src/main/java/com/hbm/inventory/gui/GUIPWR.java index 8715854f1..5e1e18999 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIPWR.java +++ b/src/main/java/com/hbm/inventory/gui/GUIPWR.java @@ -4,6 +4,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerPWR; import com.hbm.lib.RefStrings; +import com.hbm.render.util.GaugeUtil; +import com.hbm.render.util.GaugeUtil.Gauge; import com.hbm.tileentity.machine.TileEntityPWRController; import net.minecraft.client.Minecraft; @@ -24,11 +26,29 @@ public class GUIPWR extends GuiInfoContainer { this.ySize = 188; } + @Override + public void drawScreen(int x, int y, float interp) { + super.drawScreen(x, y, interp); + + this.drawCustomInfoStat(x, y, guiLeft + 115, guiTop + 31, 18, 18, x, y, new String[] { "Core: " + String.format("%,d", controller.coreHeat) + " / " + String.format("%,d", controller.coreHeatCapacity) + " TU" }); + this.drawCustomInfoStat(x, y, guiLeft + 151, guiTop + 31, 18, 18, x, y, new String[] { "Hull: " + String.format("%,d", controller.hullHeat) + " / " + String.format("%,d", controller.hullHeatCapacity) + " TU" }); + + int timeLeft = (controller.processTime - controller.progress) / 20; + this.drawCustomInfoStat(x, y, guiLeft + 52, guiTop + 31, 36, 18, x, y, new String[] { "Cycle: " + (timeLeft / 60) + ":" + String.format("%02d", timeLeft % 60)}); + + controller.tanks[0].renderTankInfo(this, x, y, guiLeft + 8, guiTop + 5, 16, 52); + controller.tanks[1].renderTankInfo(this, x, y, guiLeft + 26, guiTop + 5, 16, 52); + } + @Override protected void drawGuiContainerForegroundLayer(int i, int j) { - String name = this.controller.hasCustomInventoryName() ? this.controller.getInventoryName() : I18n.format(this.controller.getInventoryName()); - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + + double scale = 1.25; + String flux = String.format("%,.1f", 10000.0D); + GL11.glScaled(1 / scale, 1 / scale, 1); + this.fontRendererObj.drawString(flux, (int) (165 * scale - this.fontRendererObj.getStringWidth(flux)), (int)(64 * scale), 0x00ff00); + GL11.glScaled(scale, scale, 1); } @Override @@ -36,5 +56,11 @@ public class GUIPWR extends GuiInfoContainer { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + if(System.currentTimeMillis() % 1000 < 500) + drawTexturedModalRect(guiLeft + 147, guiTop, 176, 14, 26, 26); + + GaugeUtil.renderGauge(Gauge.ROUND_SMALL, guiLeft + 115, guiTop + 31, this.zLevel, 0.1D); + GaugeUtil.renderGauge(Gauge.ROUND_SMALL, guiLeft + 151, guiTop + 31, this.zLevel, 0.4D); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java index f00014765..1e860e007 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java @@ -1,22 +1,119 @@ package com.hbm.tileentity.machine; +import java.util.HashMap; +import java.util.Map.Entry; + +import com.hbm.blocks.ModBlocks; import com.hbm.inventory.container.ContainerPWR; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.inventory.fluid.trait.FT_Heatable; +import com.hbm.inventory.fluid.trait.FT_Heatable.HeatingType; import com.hbm.inventory.gui.GUIPWR; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.fauxpointtwelve.BlockPos; +import net.minecraft.block.Block; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; public class TileEntityPWRController extends TileEntityMachineBase implements IGUIProvider { + public FluidTank[] tanks; + public int coreHeat; + public int coreHeatCapacity; + public int hullHeat; + public int hullHeatCapacity; + public int rodLevel; + public int rodTarget; + public int progress; + public int processTime; + + public int rodCount; + public int connections; + public int connectionsControlled; + public int heatexCount; + public int channelCount; + public int sourceCount; + public boolean assembled; public TileEntityPWRController() { super(3); + + this.tanks = new FluidTank[2]; + this.tanks[0] = new FluidTank(Fluids.COOLANT, 128_000); + this.tanks[1] = new FluidTank(Fluids.COOLANT_HOT, 128_000); + } + + public void setup(HashMap partMap, HashMap rodMap) { + + rodCount = 0; + connections = 0; + connectionsControlled = 0; + heatexCount = 0; + channelCount = 0; + sourceCount = 0; + + int connectionsDouble = 0; + int connectionsControlledDouble = 0; + + for(Entry entry : partMap.entrySet()) { + Block block = entry.getValue(); + + if(block == ModBlocks.pwr_fuel) rodCount++; + if(block == ModBlocks.pwr_heatex) heatexCount++; + if(block == ModBlocks.pwr_channel) channelCount++; + if(block == ModBlocks.pwr_neutron_source) sourceCount++; + } + + for(Entry entry : rodMap.entrySet()) { + BlockPos fuelPos = entry.getKey(); + + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { + + boolean controlled = false; + + for(int i = 1; i < 16; i++) { + BlockPos checkPos = fuelPos.offset(dir, i); + Block atPos = partMap.get(checkPos); + if(atPos == null || atPos == ModBlocks.pwr_casing) break; + if(atPos == ModBlocks.pwr_control) controlled = true; + if(atPos == ModBlocks.pwr_fuel) { + if(controlled) { + connectionsControlledDouble++; + } else { + connectionsDouble++; + } + break; + } + if(atPos == ModBlocks.pwr_reflector) { + if(controlled) { + connectionsControlledDouble += 2; + } else { + connectionsDouble += 2; + } + break; + } + } + } + } + + connections = connectionsDouble / 2; + connectionsControlled = connectionsControlledDouble / 2; + + System.out.println("Finalized nuclear reactor!"); + System.out.println("Rods: " + rodCount); + System.out.println("Connections: " + connections); + System.out.println("Controlled connections: " + connectionsControlled); + System.out.println("Heatex: " + heatexCount); + System.out.println("Channels: " + channelCount); + System.out.println("Sources: " + sourceCount); } @Override @@ -27,6 +124,27 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG @Override public void updateEntity() { + if(!worldObj.isRemote) { + + this.tanks[0].setType(2, slots); + setupTanks(); + + NBTTagCompound data = new NBTTagCompound(); + tanks[0].writeToNBT(data, "t0"); + tanks[1].writeToNBT(data, "t1"); + } + } + + protected void setupTanks() { + + FT_Heatable trait = tanks[0].getTankType().getTrait(FT_Heatable.class); + + if(trait == null || trait.getEfficiency(HeatingType.PWR) <= 0) { + tanks[0].setTankType(Fluids.NONE); + tanks[1].setTankType(Fluids.NONE); + } + + tanks[1].setTankType(trait.getFirstStep().typeProduced); } @Override From fb97ffc88d3767de85058ef63dc9962f4aaf55ce Mon Sep 17 00:00:00 2001 From: Boblet Date: Thu, 17 Aug 2023 15:42:53 +0200 Subject: [PATCH 246/432] PWR fuel, atomized primers --- .../blocks/machine/MachinePWRController.java | 6 +- .../java/com/hbm/crafting/WeaponRecipes.java | 94 +++++++++--------- .../java/com/hbm/inventory/gui/GUIPWR.java | 5 +- .../inventory/recipes/AssemblerRecipes.java | 3 - .../inventory/recipes/anvil/AnvilRecipes.java | 5 - src/main/java/com/hbm/items/ModItems.java | 17 ---- .../com/hbm/items/machine/ItemPWRFuel.java | 88 +++++++++++++--- .../java/com/hbm/lib/HbmChestContents.java | 2 - src/main/java/com/hbm/main/MainRegistry.java | 5 + .../hbm/tileentity/TileEntityMachineBase.java | 11 +- .../machine/TileEntityPWRController.java | 48 ++++++++- .../assets/hbm/textures/items/primer_357.png | Bin 186 -> 0 bytes .../assets/hbm/textures/items/primer_44.png | Bin 187 -> 0 bytes .../assets/hbm/textures/items/primer_50.png | Bin 217 -> 0 bytes .../assets/hbm/textures/items/primer_9.png | Bin 186 -> 0 bytes .../hbm/textures/items/primer_buckshot.png | Bin 183 -> 0 bytes 16 files changed, 186 insertions(+), 98 deletions(-) delete mode 100644 src/main/resources/assets/hbm/textures/items/primer_357.png delete mode 100644 src/main/resources/assets/hbm/textures/items/primer_44.png delete mode 100644 src/main/resources/assets/hbm/textures/items/primer_50.png delete mode 100644 src/main/resources/assets/hbm/textures/items/primer_9.png delete mode 100644 src/main/resources/assets/hbm/textures/items/primer_buckshot.png diff --git a/src/main/java/com/hbm/blocks/machine/MachinePWRController.java b/src/main/java/com/hbm/blocks/machine/MachinePWRController.java index f5c2b0ef9..045822100 100644 --- a/src/main/java/com/hbm/blocks/machine/MachinePWRController.java +++ b/src/main/java/com/hbm/blocks/machine/MachinePWRController.java @@ -90,12 +90,14 @@ public class MachinePWRController extends BlockContainer { private static HashMap assembly = new HashMap(); private static HashMap fuelRods = new HashMap(); + private static HashMap sources = new HashMap(); private static boolean errored; private static final int maxSize = 1024; public void assemble(World world, int x, int y, int z, EntityPlayer player) { assembly.clear(); fuelRods.clear(); + sources.clear(); assembly.put(new BlockPos(x, y, z), this); ForgeDirection dir = ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z)).getOpposite(); @@ -103,7 +105,7 @@ public class MachinePWRController extends BlockContainer { errored = false; floodFill(world, x + dir.offsetX, y, z + dir.offsetZ, player); - if(fuelRods.size() == 0) errored = true; + if(fuelRods.size() == 0 || sources.size() == 0) errored = true; TileEntityPWRController controller = (TileEntityPWRController) world.getTileEntity(x, y, z); @@ -136,6 +138,7 @@ public class MachinePWRController extends BlockContainer { assembly.clear(); fuelRods.clear(); + sources.clear(); } private void floodFill(World world, int x, int y, int z, EntityPlayer player) { @@ -159,6 +162,7 @@ public class MachinePWRController extends BlockContainer { if(isValidCore(block)) { assembly.put(pos, block); if(block == ModBlocks.pwr_fuel) fuelRods.put(pos, block); + if(block == ModBlocks.pwr_neutron_source) sources.put(pos, block); floodFill(world, x + 1, y, z, player); floodFill(world, x - 1, y, z, player); floodFill(world, x, y + 1, z, player); diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index f8f149b7f..b9bb2aba5 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -168,65 +168,65 @@ public class WeaponRecipes { //Ammo assemblies CraftingManager.addRecipeAuto(new ItemStack(ModItems.pellet_flechette, 1), new Object[] { " L ", " L ", "LLL", 'L', PB.nugget() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.pellet_claws, 1), new Object[] { " X ", "X X", " XX", 'X', STEEL.plate() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_iron, 24), new Object[] { " I", "GC", " P", 'I', IRON.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_357, 'P', ModItems.primer_357 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_iron, 24), new Object[] { " I", "GC", " P", 'I', IRON.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_357, 'P', ModItems.primer_357 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_steel, 24), new Object[] { " I", "GC", " P", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_357, 'P', ModItems.primer_357 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_steel, 24), new Object[] { " I", "GC", " P", 'I', PB.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_357, 'P', ModItems.primer_357 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_lead, 24), new Object[] { " I", "GC", " P", 'I', U235.ingot(), 'G', ModItems.cordite, 'C', KEY_CLEARGLASS, 'P', ModItems.primer_357 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_lead, 24), new Object[] { " I", "GC", " P", 'I', PU239.ingot(), 'G', ModItems.cordite, 'C', KEY_CLEARGLASS, 'P', ModItems.primer_357 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_lead, 24), new Object[] { " I", "GC", " P", 'I', ModItems.trinitite, 'G', ModItems.cordite, 'C', KEY_CLEARGLASS, 'P', ModItems.primer_357 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_lead, 24), new Object[] { " I", "GC", " P", 'I', ModItems.nuclear_waste_tiny, 'G', ModItems.cordite, 'C', KEY_CLEARGLASS, 'P', ModItems.primer_357 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_gold, 24), new Object[] { " I", "GC", " P", 'I', GOLD.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_357, 'P', ModItems.primer_357 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_schrabidium, 6), new Object[] { " I ", "GCN", " P ", 'I', SA326.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_357, 'P', ModItems.primer_357, 'N', ModItems.billet_yharonite }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_nightmare, 24), new Object[] { " I", "GC", " P", 'I', W.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_357, 'P', ModItems.primer_357 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_desh, 24), new Object[] { " I", "GC", " P", 'I', DESH.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_357, 'P', ModItems.primer_357 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_smg, 32), new Object[] { " I", "GC", " P", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_9, 'P', ModItems.primer_9 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_smg, 32), new Object[] { " I", "GC", " P", 'I', PB.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_9, 'P', ModItems.primer_9 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_556, 32), new Object[] { " I", "GC", " P", 'I', STEEL.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_9, 'P', ModItems.primer_9 }); - CraftingManager.addRecipeAuto(ModItems.ammo_556.stackFromEnum(30, Ammo556mm.K), new Object[] { "G", "C", "P", 'G', ANY_GUNPOWDER.dust(), 'C', ModItems.casing_9, 'P', ModItems.primer_9 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_uzi, 32), new Object[] { " I", "GC", " P", 'I', IRON.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_9, 'P', ModItems.primer_9 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_uzi, 32), new Object[] { " I", "GC", " P", 'I', IRON.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_9, 'P', ModItems.primer_9 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_uzi, 32), new Object[] { " I", "GC", " P", 'I', IRON.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_9, 'P', ModItems.primer_9 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_uzi, 32), new Object[] { " I", "GC", " P", 'I', IRON.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_9, 'P', ModItems.primer_9 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_lacunae, 32), new Object[] { " I", "GC", " P", 'I', CU.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_9, 'P', ModItems.primer_9 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_nopip, 24), new Object[] { " I", "GC", " P", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_44, 'P', ModItems.primer_44 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_nopip, 24), new Object[] { " I", "GC", " P", 'I', PB.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_44, 'P', ModItems.primer_44 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_12gauge, 12), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_buckshot, 'G', ModItems.cordite, 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_12gauge, 12), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_buckshot, 'G', ModItems.ballistite, 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(ModItems.ammo_12gauge.stackFromEnum(12, Ammo12Gauge.PERCUSSION), new Object[] { "G", "C", "P", 'G', ModItems.ballistite, 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_4gauge, 12), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_buckshot, 'G', ModItems.cordite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(12, Ammo4Gauge.SLUG), new Object[] { " I ", "GCL", " P ", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(12, Ammo4Gauge.FLECHETTE), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_flechette, 'G', ModItems.cordite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(4, Ammo4Gauge.EXPLOSIVE), new Object[] { " I ", "GCL", " P ", 'I', ModBlocks.tnt, 'G', ModItems.cordite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(6, Ammo4Gauge.EXPLOSIVE), new Object[] { " I ", "GCL", " P ", 'I', ANY_PLASTICEXPLOSIVE.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(4, Ammo4Gauge.MINING), new Object[] { " I ", "GCL", " P ", 'I', ModBlocks.det_miner, 'G', ModItems.cordite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_iron, 24), new Object[] { " I", "GC", 'I', IRON.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_357 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_iron, 24), new Object[] { " I", "GC", 'I', IRON.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_357 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_steel, 24), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_357 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_steel, 24), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_357 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_lead, 24), new Object[] { " I", "GC", 'I', U235.ingot(), 'G', ModItems.cordite, 'C', KEY_CLEARGLASS }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_lead, 24), new Object[] { " I", "GC", 'I', PU239.ingot(), 'G', ModItems.cordite, 'C', KEY_CLEARGLASS }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_lead, 24), new Object[] { " I", "GC", 'I', ModItems.trinitite, 'G', ModItems.cordite, 'C', KEY_CLEARGLASS }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_lead, 24), new Object[] { " I", "GC", 'I', ModItems.nuclear_waste_tiny, 'G', ModItems.cordite, 'C', KEY_CLEARGLASS }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_gold, 24), new Object[] { " I", "GC", 'I', GOLD.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_357 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_schrabidium, 6), new Object[] { " I ", "GCN", 'I', SA326.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_357, 'N', ModItems.billet_yharonite }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_nightmare, 24), new Object[] { " I", "GC", 'I', W.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_357 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_desh, 24), new Object[] { " I", "GC", 'I', DESH.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_357 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_smg, 32), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_9 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_smg, 32), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_9 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_556, 32), new Object[] { " I", "GC", 'I', STEEL.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_9 }); + CraftingManager.addRecipeAuto(ModItems.ammo_556.stackFromEnum(30, Ammo556mm.K), new Object[] { "G", "C", 'G', ANY_GUNPOWDER.dust(), 'C', ModItems.casing_9 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_uzi, 32), new Object[] { " I", "GC", 'I', IRON.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_9 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_uzi, 32), new Object[] { " I", "GC", 'I', IRON.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_9 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_uzi, 32), new Object[] { " I", "GC", 'I', IRON.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_9 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_uzi, 32), new Object[] { " I", "GC", 'I', IRON.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_9 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_lacunae, 32), new Object[] { " I", "GC", 'I', CU.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_9 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_nopip, 24), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_44 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_nopip, 24), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_44 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_12gauge, 12), new Object[] { " I ", "GCL", 'I', ModItems.pellet_buckshot, 'G', ModItems.cordite, 'C', ModItems.casing_buckshot, 'L', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_12gauge, 12), new Object[] { " I ", "GCL", 'I', ModItems.pellet_buckshot, 'G', ModItems.ballistite, 'C', ModItems.casing_buckshot, 'L', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(ModItems.ammo_12gauge.stackFromEnum(12, Ammo12Gauge.PERCUSSION), new Object[] { "G", "C", 'G', ModItems.ballistite, 'C', ModItems.casing_buckshot }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_4gauge, 12), new Object[] { " I ", "GCL", 'I', ModItems.pellet_buckshot, 'G', ModItems.cordite, 'C', ModItems.casing_50, 'L', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(12, Ammo4Gauge.SLUG), new Object[] { " I ", "GCL", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_50, 'L', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(12, Ammo4Gauge.FLECHETTE), new Object[] { " I ", "GCL", 'I', ModItems.pellet_flechette, 'G', ModItems.cordite, 'C', ModItems.casing_50, 'L', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(4, Ammo4Gauge.EXPLOSIVE), new Object[] { " I ", "GCL", 'I', ModBlocks.tnt, 'G', ModItems.cordite, 'C', ModItems.casing_50, 'L', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(6, Ammo4Gauge.EXPLOSIVE), new Object[] { " I ", "GCL", 'I', ANY_PLASTICEXPLOSIVE.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_50, 'L', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(4, Ammo4Gauge.MINING), new Object[] { " I ", "GCL", 'I', ModBlocks.det_miner, 'G', ModItems.cordite, 'C', ModItems.casing_50, 'L', ModItems.plate_polymer }); CraftingManager.addShapelessAuto(ModItems.ammo_4gauge.stackFromEnum(Ammo4Gauge.QUACK), new Object[] { ModItems.ammo_4gauge, ModItems.nugget_bismuth, ModItems.nugget_tantalium, ModItems.ball_dynamite }); - CraftingManager.addRecipeAuto(ModItems.ammo_20gauge.stackFromEnum(12, Ammo20Gauge.STOCK), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_buckshot, 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', CU.plate() }); - CraftingManager.addRecipeAuto(ModItems.ammo_20gauge.stackFromEnum(12, Ammo20Gauge.SLUG), new Object[] { " I ", "GCL", " P ", 'I', PB.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', CU.plate() }); - CraftingManager.addRecipeAuto(ModItems.ammo_20gauge.stackFromEnum(12, Ammo20Gauge.EXPLOSIVE), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_cluster, 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', CU.plate() }); - CraftingManager.addRecipeAuto(ModItems.ammo_20gauge.stackFromEnum(20, Ammo20Gauge.FLECHETTE), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_flechette, 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', CU.plate() }); - CraftingManager.addRecipeAuto(ModItems.ammo_357.stackFromEnum(6, Ammo357Magnum.NIGHTMARE2), new Object[] { "I", "C", "P", 'I', ModItems.powder_power, 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_calamity, 12), new Object[] { " I ", "GCG", " P ", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_50, 'P', ModItems.primer_50 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_actionexpress, 12), new Object[] { " I", "GC", " P", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_50, 'P', ModItems.primer_50 }); + CraftingManager.addRecipeAuto(ModItems.ammo_20gauge.stackFromEnum(12, Ammo20Gauge.STOCK), new Object[] { " I ", "GCL", 'I', ModItems.pellet_buckshot, 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_buckshot, 'L', CU.plate() }); + CraftingManager.addRecipeAuto(ModItems.ammo_20gauge.stackFromEnum(12, Ammo20Gauge.SLUG), new Object[] { " I ", "GCL", 'I', PB.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_buckshot, 'L', CU.plate() }); + CraftingManager.addRecipeAuto(ModItems.ammo_20gauge.stackFromEnum(12, Ammo20Gauge.EXPLOSIVE), new Object[] { " I ", "GCL", 'I', ModItems.pellet_cluster, 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_buckshot, 'L', CU.plate() }); + CraftingManager.addRecipeAuto(ModItems.ammo_20gauge.stackFromEnum(20, Ammo20Gauge.FLECHETTE), new Object[] { " I ", "GCL", 'I', ModItems.pellet_flechette, 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_buckshot, 'L', CU.plate() }); + CraftingManager.addRecipeAuto(ModItems.ammo_357.stackFromEnum(6, Ammo357Magnum.NIGHTMARE2), new Object[] { "I", "C", 'I', ModItems.powder_power, 'C', ModItems.casing_buckshot }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_calamity, 12), new Object[] { " I ", "GCG", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_50 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_actionexpress, 12), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_50 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_nuke, 1), new Object[] { " WP", "SEP", " WP", 'W', ModItems.wire_aluminium, 'P', STEEL.plate(), 'S', ModItems.hull_small_steel, 'E', ANY_HIGHEXPLOSIVE.ingot() }); CraftingManager.addRecipeAuto(ModItems.ammo_dart.stackFromEnum(16, AmmoDart.GPS), new Object[] { "IPI", "ICI", "IPI", 'I', ModItems.plate_polymer, 'P', IRON.plate(), 'C', new ItemStack(ModItems.fluid_tank_lead_full, 1, Fluids.WATZ.getID()) }); CraftingManager.addRecipeAuto(ModItems.ammo_dart.stackFromEnum(16, AmmoDart.NERF), new Object[] { "I", "I", 'I', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_45, 32), " I", "GC", " P", 'I', CU.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_44, 'P', ModItems.primer_44); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_762, 32), " I", "GC", " P", 'I', CU.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_50, 'P', ModItems.primer_9); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_45, 32), " I", "GC", 'I', CU.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_44); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_762, 32), " I", "GC", 'I', CU.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_50); CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_luna, 4), new Object[] { " B ", "GCG", "GPG", 'B', FERRO.ingot(), 'G', ModItems.powder_nitan_mix, 'C', ModItems.casing_50, 'P', ModItems.powder_power}); //Folly shells CraftingManager.addRecipeAuto(new ItemStack(ModItems.folly_bullet, 1), new Object[] { " S ", "STS", "SMS", 'S', STAR.ingot(), 'T', ModItems.powder_magic, 'M', ModBlocks.block_meteor }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.folly_bullet_nuclear, 1), new Object[] { " N ", "UTU", "UTU", 'N', ModItems.ammo_nuke, 'U', IRON.ingot(), 'T', W.block() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.folly_bullet_du, 1), new Object[] { " U ", "UDU", "UTU", 'U', U238.block(), 'D', DESH.block(), 'T', W.block() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.folly_shell, 1), new Object[] { "IPI", "IPI", "IMI", 'I', IRON.ingot(), 'P', IRON.plate(), 'M', ModItems.primer_50 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.folly_shell, 1), new Object[] { "IPI", "IPI", "IMI", 'I', IRON.ingot(), 'P', IRON.plate(), 'M', ANY_SMOKELESS.dust() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_folly, 1), new Object[] { " B ", "MEM", " S ", 'B', ModItems.folly_bullet, 'M', ModItems.powder_magic, 'E', ModItems.powder_power, 'S', ModItems.folly_shell }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_folly_nuclear, 1), new Object[] { " B ", "EEE", " S ", 'B', ModItems.folly_bullet_nuclear, 'E', ModBlocks.det_charge, 'S', ModItems.folly_shell }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_folly_du, 1), new Object[] { " B ", "EEE", " S ", 'B', ModItems.folly_bullet_du, 'E', ModBlocks.det_charge, 'S', ModItems.folly_shell }); //Rockets - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_rocket, 1), new Object[] { " T ", "GCG", " P ", 'T', ModItems.ball_dynamite, 'G', ModItems.rocket_fuel, 'C', ModItems.hull_small_aluminium, 'P', ModItems.primer_50 });// I got tired of changing *all* of them, the stock one is always the first one anyway - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_rocket, 2), new Object[] { " T ", "GCG", " P ", 'T', ANY_PLASTICEXPLOSIVE.ingot(), 'G', ModItems.rocket_fuel, 'C', ModItems.hull_small_aluminium, 'P', ModItems.primer_50 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_rocket, 1), new Object[] { "T", "C", "G", 'T', ModItems.ball_dynamite, 'G', ModItems.rocket_fuel, 'C', ModItems.hull_small_aluminium, });// I got tired of changing *all* of them, the stock one is always the first one anyway + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_rocket, 2), new Object[] { "T", "C", "G", 'T', ANY_PLASTICEXPLOSIVE.ingot(), 'G', ModItems.rocket_fuel, 'C', ModItems.hull_small_aluminium }); CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.HE), new Object[] { "G", "R", 'G', ANY_PLASTICEXPLOSIVE.ingot(), 'R', ModItems.ammo_rocket }); CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.INCENDIARY), new Object[] { "G", "R", 'G', P_RED.dust(), 'R', ModItems.ammo_rocket }); CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.PHOSPHORUS), new Object[] { "G", "R", 'G', P_WHITE.ingot(), 'R', ModItems.ammo_rocket }); @@ -245,15 +245,15 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(2, AmmoRocket.RPC), new Object[] { "BP ", "CBH", " DR", 'B', ModItems.blades_steel, 'P', STEEL.plate(), 'C', Fluids.BIOFUEL.getDict(1000), 'H', ModItems.hull_small_steel, 'D', ModItems.piston_selenium, 'R', ModItems.ammo_rocket }); //Stinger Rockets - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_stinger_rocket, 2), "CE ", "FSF", " P ", 'C', ModItems.circuit_aluminium, 'E', ANY_PLASTICEXPLOSIVE.ingot(), 'F', ModItems.rocket_fuel, 'S', ModItems.hull_small_aluminium, 'P', ModItems.primer_50); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_stinger_rocket, 2), "CE ", " S ", " F ", 'C', ModItems.circuit_aluminium, 'E', ANY_PLASTICEXPLOSIVE.ingot(), 'F', ModItems.rocket_fuel, 'S', ModItems.hull_small_aluminium); CraftingManager.addRecipeAuto(ModItems.ammo_stinger_rocket.stackFromEnum(AmmoStinger.HE), new Object[] { "S", "R", 'S', ANY_PLASTICEXPLOSIVE.ingot(), 'R', ModItems.ammo_stinger_rocket }); CraftingManager.addRecipeAuto(ModItems.ammo_stinger_rocket.stackFromEnum(AmmoStinger.INCENDIARY), new Object[] { "S", "R", 'S', P_RED.dust(), 'R', ModItems.ammo_stinger_rocket }); CraftingManager.addRecipeAuto(ModItems.ammo_stinger_rocket.stackFromEnum(AmmoStinger.NUCLEAR), new Object[] { "RPR", "PSP", "RPR", 'R', ModItems.neutron_reflector, 'P', PU239.nugget(), 'S', ModItems.ammo_stinger_rocket.stackFromEnum(AmmoStinger.HE) }); CraftingManager.addRecipeAuto(ModItems.ammo_stinger_rocket.stackFromEnum(AmmoStinger.BONES), new Object[] { " C ", "SKR", " P ", 'C', ModItems.fallout, 'S', SR90.dust(), 'K', ModItems.ammo_stinger_rocket, 'R', RA226.dust(), 'P', PU.dust() }); //40mm grenades - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_grenade, 2), new Object[] { " T ", "GCI", " P ", 'T', ANY_HIGHEXPLOSIVE.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'I', IRON.plate() }); - CraftingManager.addRecipeAuto(ModItems.ammo_grenade.stackFromEnum(2, AmmoGrenade.TRACER), new Object[] { " T ", "GCI", " P ", 'T', LAPIS.dust(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'I', IRON.plate() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_grenade, 2), new Object[] { " T ", "GCI", 'T', ANY_HIGHEXPLOSIVE.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_50, 'I', IRON.plate() }); + CraftingManager.addRecipeAuto(ModItems.ammo_grenade.stackFromEnum(2, AmmoGrenade.TRACER), new Object[] { " T ", "GCI", 'T', LAPIS.dust(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_50, 'I', IRON.plate() }); CraftingManager.addRecipeAuto(ModItems.ammo_grenade.stackFromEnum(2, AmmoGrenade.HE), new Object[] { "GIG", 'G', ModItems.ammo_grenade, 'I', ANY_PLASTICEXPLOSIVE.ingot() }); CraftingManager.addRecipeAuto(ModItems.ammo_grenade.stackFromEnum(2, AmmoGrenade.INCENDIARY), new Object[] { "GIG", 'G', ModItems.ammo_grenade, 'I', P_RED.dust() }); CraftingManager.addRecipeAuto(ModItems.ammo_grenade.stackFromEnum(2, AmmoGrenade.PHOSPHORUS), new Object[] { "GIG", 'G', ModItems.ammo_grenade, 'I', P_WHITE.ingot() }); diff --git a/src/main/java/com/hbm/inventory/gui/GUIPWR.java b/src/main/java/com/hbm/inventory/gui/GUIPWR.java index 5e1e18999..4c2b04fb5 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIPWR.java +++ b/src/main/java/com/hbm/inventory/gui/GUIPWR.java @@ -33,8 +33,9 @@ public class GUIPWR extends GuiInfoContainer { this.drawCustomInfoStat(x, y, guiLeft + 115, guiTop + 31, 18, 18, x, y, new String[] { "Core: " + String.format("%,d", controller.coreHeat) + " / " + String.format("%,d", controller.coreHeatCapacity) + " TU" }); this.drawCustomInfoStat(x, y, guiLeft + 151, guiTop + 31, 18, 18, x, y, new String[] { "Hull: " + String.format("%,d", controller.hullHeat) + " / " + String.format("%,d", controller.hullHeatCapacity) + " TU" }); - int timeLeft = (controller.processTime - controller.progress) / 20; - this.drawCustomInfoStat(x, y, guiLeft + 52, guiTop + 31, 36, 18, x, y, new String[] { "Cycle: " + (timeLeft / 60) + ":" + String.format("%02d", timeLeft % 60)}); + //TODO: calculate some prediction using extrapolation (or some math sector that ends with -ic) + //int timeLeft = (controller.processTime - controller.progress) / 20; + //this.drawCustomInfoStat(x, y, guiLeft + 52, guiTop + 31, 36, 18, x, y, new String[] { "Cycle: " + (timeLeft / 60) + ":" + String.format("%02d", timeLeft % 60)}); controller.tanks[0].renderTankInfo(this, x, y, guiLeft + 8, guiTop + 5, 16, 52); controller.tanks[1].renderTankInfo(this, x, y, guiLeft + 26, guiTop + 5, 16, 52); diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 2c37aaa5d..88cbdd9a7 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -626,7 +626,6 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.ammo_75bolt, 2, ItemAmmoEnums.Ammo75Bolt.STOCK.ordinal()), new AStack[] { new OreDictStack(STEEL.plate(), 2), new OreDictStack(CU.plate(), 1), - new ComparableStack(ModItems.primer_50, 5), new ComparableStack(ModItems.casing_50, 5), new OreDictStack(ANY_PLASTICEXPLOSIVE.ingot(), 2), new ComparableStack(ModItems.cordite, 3), @@ -636,7 +635,6 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.ammo_75bolt, 2, ItemAmmoEnums.Ammo75Bolt.INCENDIARY.ordinal()), new AStack[] { new OreDictStack(STEEL.plate(), 2), new OreDictStack(CU.plate(), 1), - new ComparableStack(ModItems.primer_50, 5), new ComparableStack(ModItems.casing_50, 5), new OreDictStack(ANY_PLASTICEXPLOSIVE.ingot(), 3), new ComparableStack(ModItems.cordite, 3), @@ -646,7 +644,6 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.ammo_75bolt, 2, ItemAmmoEnums.Ammo75Bolt.HE.ordinal()), new AStack[] { new OreDictStack(STEEL.plate(), 2), new OreDictStack(CU.plate(), 1), - new ComparableStack(ModItems.primer_50, 5), new ComparableStack(ModItems.casing_50, 5), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 5), new ComparableStack(ModItems.cordite, 5), diff --git a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java index 1a488b9cb..fea2e23b0 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -524,11 +524,6 @@ public class AnvilRecipes { constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(CU.plate()), new AnvilOutput(new ItemStack(ModItems.casing_9))).setTier(1)); constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(CU.plate()), new AnvilOutput(new ItemStack(ModItems.casing_50))).setTier(1)); constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(CU.plate()), new AnvilOutput(new ItemStack(ModItems.casing_buckshot))).setTier(1)); - constructionRecipes.add(new AnvilConstructionRecipe(new AStack[] {new OreDictStack(IRON.plate()), new ComparableStack(Items.redstone)}, new AnvilOutput(new ItemStack(ModItems.primer_357))).setTier(1)); - constructionRecipes.add(new AnvilConstructionRecipe(new AStack[] {new OreDictStack(IRON.plate()), new ComparableStack(Items.redstone)}, new AnvilOutput(new ItemStack(ModItems.primer_44))).setTier(1)); - constructionRecipes.add(new AnvilConstructionRecipe(new AStack[] {new OreDictStack(IRON.plate()), new ComparableStack(Items.redstone)}, new AnvilOutput(new ItemStack(ModItems.primer_9))).setTier(1)); - constructionRecipes.add(new AnvilConstructionRecipe(new AStack[] {new OreDictStack(IRON.plate()), new ComparableStack(Items.redstone)}, new AnvilOutput(new ItemStack(ModItems.primer_50))).setTier(1)); - constructionRecipes.add(new AnvilConstructionRecipe(new AStack[] {new OreDictStack(IRON.plate()), new ComparableStack(Items.redstone)}, new AnvilOutput(new ItemStack(ModItems.primer_buckshot))).setTier(1)); Object[][] recs = new Object[][] { {ModItems.ammo_12gauge.stackFromEnum(20, Ammo12Gauge.STOCK), P_RED.dust(), ModItems.ammo_12gauge.stackFromEnum(20, Ammo12Gauge.INCENDIARY), 2}, diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index a5144423e..ba2d0ba6c 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -609,11 +609,6 @@ public class ModItems { public static Item mechanism_launcher_2; public static Item mechanism_special; - public static Item primer_357; - public static Item primer_44; - public static Item primer_9; - public static Item primer_50; - public static Item primer_buckshot; public static Item casing_357; public static Item casing_44; public static Item casing_9; @@ -3100,11 +3095,6 @@ public class ModItems { mechanism_launcher_1 = new Item().setUnlocalizedName("mechanism_launcher_1").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":mechanism_5"); mechanism_launcher_2 = new Item().setUnlocalizedName("mechanism_launcher_2").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":mechanism_6"); mechanism_special = new Item().setUnlocalizedName("mechanism_special").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":mechanism_7"); - primer_357 = new Item().setUnlocalizedName("primer_357").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":primer_357"); - primer_44 = new Item().setUnlocalizedName("primer_44").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":primer_44"); - primer_9 = new Item().setUnlocalizedName("primer_9").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":primer_9"); - primer_50 = new Item().setUnlocalizedName("primer_50").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":primer_50"); - primer_buckshot = new Item().setUnlocalizedName("primer_buckshot").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":primer_buckshot"); casing_357 = new Item().setUnlocalizedName("casing_357").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":casing_357"); casing_44 = new Item().setUnlocalizedName("casing_44").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":casing_44"); casing_9 = new Item().setUnlocalizedName("casing_9").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":casing_9"); @@ -6179,13 +6169,6 @@ public class ModItems { GameRegistry.registerItem(mechanism_launcher_2, mechanism_launcher_2.getUnlocalizedName()); GameRegistry.registerItem(mechanism_special, mechanism_special.getUnlocalizedName()); - //Primers - GameRegistry.registerItem(primer_357, primer_357.getUnlocalizedName()); - GameRegistry.registerItem(primer_44, primer_44.getUnlocalizedName()); - GameRegistry.registerItem(primer_9, primer_9.getUnlocalizedName()); - GameRegistry.registerItem(primer_50, primer_50.getUnlocalizedName()); - GameRegistry.registerItem(primer_buckshot, primer_buckshot.getUnlocalizedName()); - //Casings GameRegistry.registerItem(casing_357, casing_357.getUnlocalizedName()); GameRegistry.registerItem(casing_44, casing_44.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/machine/ItemPWRFuel.java b/src/main/java/com/hbm/items/machine/ItemPWRFuel.java index 95198f494..7bb6ce158 100644 --- a/src/main/java/com/hbm/items/machine/ItemPWRFuel.java +++ b/src/main/java/com/hbm/items/machine/ItemPWRFuel.java @@ -1,6 +1,15 @@ package com.hbm.items.machine; import com.hbm.items.ItemEnumMulti; +import com.hbm.util.EnumUtil; +import com.hbm.util.function.Function; +import com.hbm.util.function.Function.FunctionLogarithmic; +import com.hbm.util.function.Function.FunctionSqrt; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; public class ItemPWRFuel extends ItemEnumMulti { @@ -9,18 +18,71 @@ public class ItemPWRFuel extends ItemEnumMulti { } public static enum EnumPWRFuel { - MEU, - HEU233, - HEU235, - MEN, - HEN237, - MOX, - MEP, - HEP239, - HEP241, - MEA, - HEA242, - HES326, - HES327; + MEU( 05.0D, new FunctionLogarithmic(25)), + HEU233( 07.5D, new FunctionSqrt(25)), + HEU235( 07.5D, new FunctionSqrt(25)), + MEN( 07.5D, new FunctionLogarithmic(25)), + HEN237( 07.5D, new FunctionSqrt(25)), + MOX( 07.5D, new FunctionLogarithmic(25)), + MEP( 07.5D, new FunctionLogarithmic(25)), + HEP239( 10.0D, new FunctionSqrt(25)), + HEP24( 10.0D, new FunctionSqrt(25)), + MEA( 07.5D, new FunctionLogarithmic(25)), + HEA242( 10.0D, new FunctionSqrt(25)), + HES326( 15.0D, new FunctionSqrt(25)), + HES327( 15.0D, new FunctionSqrt(25)); + + public double yield = 1_000_000_000; + public double heatEmission; + public Function function; + + private EnumPWRFuel(double heatEmission, Function function) { + this.heatEmission = heatEmission; + this.function = function; + } + } + + @Override + public boolean showDurabilityBar(ItemStack stack) { + return getDurabilityForDisplay(stack) > 0D; + } + + @Override + public double getDurabilityForDisplay(ItemStack stack) { + return 1D - getEnrichment(stack); + } + + public static double getEnrichment(ItemStack stack) { + EnumPWRFuel num = EnumUtil.grabEnumSafely(EnumPWRFuel.class, stack.getItemDamage()); + return getYield(stack) / num.yield; + } + + public static double getYield(ItemStack stack) { + return getDouble(stack, "yield"); + } + + public static void setYield(ItemStack stack, double yield) { + setDouble(stack, "yield", yield); + } + + public static void setDouble(ItemStack stack, String key, double yield) { + if(!stack.hasTagCompound()) setNBTDefaults(stack); + stack.stackTagCompound.setDouble(key, yield); + } + + public static double getDouble(ItemStack stack, String key) { + if(!stack.hasTagCompound()) setNBTDefaults(stack); + return stack.stackTagCompound.getDouble(key); + } + + private static void setNBTDefaults(ItemStack stack) { + EnumPWRFuel num = EnumUtil.grabEnumSafely(EnumPWRFuel.class, stack.getItemDamage()); + stack.stackTagCompound = new NBTTagCompound(); + setYield(stack, num.yield); + } + + @Override + public void onCreated(ItemStack stack, World world, EntityPlayer player) { + setNBTDefaults(stack); } } diff --git a/src/main/java/com/hbm/lib/HbmChestContents.java b/src/main/java/com/hbm/lib/HbmChestContents.java index cdd0a61cd..852e84b61 100644 --- a/src/main/java/com/hbm/lib/HbmChestContents.java +++ b/src/main/java/com/hbm/lib/HbmChestContents.java @@ -34,8 +34,6 @@ public class HbmChestContents { new WeightedRandomChestContent(ModItems.ammo_20gauge, 0, 2, 6, 3), new WeightedRandomChestContent(ModItems.casing_9, 0, 4, 10, 3), new WeightedRandomChestContent(ModItems.casing_50, 0, 4, 10, 3), - new WeightedRandomChestContent(ModItems.primer_9, 0, 4, 10, 3), - new WeightedRandomChestContent(ModItems.primer_50, 0, 4, 10, 3), new WeightedRandomChestContent(ModItems.cordite, 0, 4, 6, 5), new WeightedRandomChestContent(ModItems.battery_generic, 0, 1, 1, 4), new WeightedRandomChestContent(ModItems.battery_advanced, 0, 1, 1, 2), diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index bc6e968f7..d17a16610 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -1161,6 +1161,11 @@ public class MainRegistry { ignoreMappings.add("hbm:item.canned_kerosene"); ignoreMappings.add("hbm:item.canned_recursion"); ignoreMappings.add("hbm:item.canned_bark"); + ignoreMappings.add("hbm:item.primer_357"); + ignoreMappings.add("hbm:item.primer_44"); + ignoreMappings.add("hbm:item.primer_9"); + ignoreMappings.add("hbm:item.primer_50"); + ignoreMappings.add("hbm:item.primer_buckshot"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java b/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java index 988d683b8..58c6d15e0 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java +++ b/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java @@ -102,17 +102,16 @@ public abstract class TileEntityMachineBase extends TileEntityLoadedBase impleme @Override public ItemStack decrStackSize(int slot, int amount) { - if(slots[slot] != null) - { - if(slots[slot].stackSize <= amount) - { + if(slots[slot] != null) { + + if(slots[slot].stackSize <= amount) { ItemStack itemStack = slots[slot]; slots[slot] = null; return itemStack; } + ItemStack itemStack1 = slots[slot].splitStack(amount); - if (slots[slot].stackSize == 0) - { + if(slots[slot].stackSize == 0) { slots[slot] = null; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java index 1e860e007..82ef6bf37 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java @@ -4,12 +4,14 @@ import java.util.HashMap; import java.util.Map.Entry; import com.hbm.blocks.ModBlocks; +import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.container.ContainerPWR; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Heatable; import com.hbm.inventory.fluid.trait.FT_Heatable.HeatingType; import com.hbm.inventory.gui.GUIPWR; +import com.hbm.items.ModItems; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.fauxpointtwelve.BlockPos; @@ -19,19 +21,24 @@ import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityPWRController extends TileEntityMachineBase implements IGUIProvider { +public class TileEntityPWRController extends TileEntityMachineBase implements IGUIProvider, IControlReceiver { public FluidTank[] tanks; public int coreHeat; public int coreHeatCapacity; public int hullHeat; public int hullHeatCapacity; + public int rodLevel; public int rodTarget; - public int progress; + + public int typeLoaded; + public int amountLoaded; + public double progress; public int processTime; public int rodCount; @@ -129,6 +136,16 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG this.tanks[0].setType(2, slots); setupTanks(); + if(typeLoaded == -1 || amountLoaded <= 0 && slots[0] != null && slots[0].getItem() == ModItems.pwr_fuel) { + typeLoaded = slots[0].getItemDamage(); + amountLoaded++; + this.decrStackSize(0, 1); + this.markChanged(); + } + + if(this.rodTarget > this.rodLevel) this.rodLevel++; + if(this.rodTarget < this.rodLevel) this.rodLevel--; + NBTTagCompound data = new NBTTagCompound(); tanks[0].writeToNBT(data, "t0"); tanks[1].writeToNBT(data, "t1"); @@ -147,6 +164,20 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG tanks[1].setTankType(trait.getFirstStep().typeProduced); } + public double getTotalProcessMultiplier() { + double totalConnections = this.connections + this.connectionsControlled * (1D - (this.rodLevel / 100D)); + double connectionsEff = connectinFunc(totalConnections); + return connectionsEff; + } + + public double connectinFunc(double connections) { + return connections * (1D - getXOverE(connections, 300D)) + connections / 2D * getXOverE(connections, 300D); //creates a curve that smoothly transitions from f(x)=x to f(x)=x/2 + } + + public double getXOverE(double x, double d) { + return -Math.pow(Math.E, -x / d); + } + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); @@ -161,6 +192,19 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG nbt.setBoolean("assembled", assembled); } + @Override + public boolean hasPermission(EntityPlayer player) { + return this.isUseableByPlayer(player); + } + + @Override + public void receiveControl(NBTTagCompound data) { + + if(data.hasKey("control")) { + this.rodTarget = MathHelper.clamp_int(data.getInteger("control"), 0, 100); + } + } + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerPWR(player.inventory, this); diff --git a/src/main/resources/assets/hbm/textures/items/primer_357.png b/src/main/resources/assets/hbm/textures/items/primer_357.png deleted file mode 100644 index c20411ce761d777fe3f9a7e916ae9c4fad1ed8e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 186 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfz>% diff --git a/src/main/resources/assets/hbm/textures/items/primer_44.png b/src/main/resources/assets/hbm/textures/items/primer_44.png deleted file mode 100644 index 1b7fd54357812de94b840bcc54f818929caf4bb8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 187 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfvjm6 z_*u<@@C4=x-W}h6*f&qoQ9eB1zP?~p;z2cz&AGpqmbBSFFUU?yI3V0{^ytz56X)8N iz6zO><<8j3z)+vBb>iRqo1h-kFAV7$1o)*0aMnC*a!|C{s#iJXI$;jT~C7khO|BtMs5S7>Fx8~5cZd(upO*;QRPjsxAs N;OXk;vd$@?2>=lhPw4;v diff --git a/src/main/resources/assets/hbm/textures/items/primer_9.png b/src/main/resources/assets/hbm/textures/items/primer_9.png deleted file mode 100644 index e88ab382f981dbb407781eab70ee6c5431c0b445..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 186 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfM-mV&xB|ys=JYD@<);T3K0RU|pLlXc1 diff --git a/src/main/resources/assets/hbm/textures/items/primer_buckshot.png b/src/main/resources/assets/hbm/textures/items/primer_buckshot.png deleted file mode 100644 index 701799005b6a405aad6b2e923b2bcacff1d5b0fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 183 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf Date: Thu, 17 Aug 2023 22:00:35 +0200 Subject: [PATCH 247/432] we have fission! --- .../hbm/inventory/container/ContainerPWR.java | 2 +- .../java/com/hbm/inventory/gui/GUIPWR.java | 40 ++++++++- .../hbm/inventory/gui/GuiInfoContainer.java | 13 +++ .../com/hbm/items/machine/ItemPWRFuel.java | 58 +++---------- .../machine/TileEntityPWRController.java | 87 +++++++++++++++++-- .../java/com/hbm/util/function/Function.java | 1 + 6 files changed, 147 insertions(+), 54 deletions(-) diff --git a/src/main/java/com/hbm/inventory/container/ContainerPWR.java b/src/main/java/com/hbm/inventory/container/ContainerPWR.java index 92b638808..ff6cc84fa 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerPWR.java +++ b/src/main/java/com/hbm/inventory/container/ContainerPWR.java @@ -23,7 +23,7 @@ public class ContainerPWR extends Container { for(int i = 0; i < 3; i++) { for(int j = 0; j < 9; j++) { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 108 + i * 18)); + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 106 + i * 18)); } } diff --git a/src/main/java/com/hbm/inventory/gui/GUIPWR.java b/src/main/java/com/hbm/inventory/gui/GUIPWR.java index 4c2b04fb5..af7130a47 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIPWR.java +++ b/src/main/java/com/hbm/inventory/gui/GUIPWR.java @@ -3,14 +3,19 @@ package com.hbm.inventory.gui; import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerPWR; +import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; import com.hbm.render.util.GaugeUtil; import com.hbm.render.util.GaugeUtil.Gauge; import com.hbm.tileentity.machine.TileEntityPWRController; import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.ResourceLocation; public class GUIPWR extends GuiInfoContainer { @@ -36,17 +41,40 @@ public class GUIPWR extends GuiInfoContainer { //TODO: calculate some prediction using extrapolation (or some math sector that ends with -ic) //int timeLeft = (controller.processTime - controller.progress) / 20; //this.drawCustomInfoStat(x, y, guiLeft + 52, guiTop + 31, 36, 18, x, y, new String[] { "Cycle: " + (timeLeft / 60) + ":" + String.format("%02d", timeLeft % 60)}); + + + if(controller.typeLoaded != -1 && controller.amountLoaded > 0) { + ItemStack display = new ItemStack(ModItems.pwr_fuel, 1, controller.typeLoaded); + if(guiLeft + 88 <= x && guiLeft + 88 + 18 > x && guiTop + 4 < y && guiTop + 4 + 18 >= y) this.renderToolTip(display, x, y); + } controller.tanks[0].renderTankInfo(this, x, y, guiLeft + 8, guiTop + 5, 16, 52); controller.tanks[1].renderTankInfo(this, x, y, guiLeft + 26, guiTop + 5, 16, 52); } + + @Override + protected void drawItemStack(ItemStack stack, int x, int y, String label) { + GL11.glPushMatrix(); + GL11.glTranslatef(0.0F, 0.0F, 32.0F); + this.zLevel = 200.0F; + itemRender.zLevel = 200.0F; + FontRenderer font = null; + if(stack != null) font = stack.getItem().getFontRenderer(stack); + if(font == null) font = fontRendererObj; + itemRender.renderItemAndEffectIntoGUI(font, this.mc.getTextureManager(), stack, x, y); + GL11.glScaled(0.5, 0.5, 0.5); + itemRender.renderItemOverlayIntoGUI(font, this.mc.getTextureManager(), stack, (x + font.getStringWidth(label) / 4) * 2, (y + 15) * 2, label); + this.zLevel = 0.0F; + itemRender.zLevel = 0.0F; + GL11.glPopMatrix(); + } @Override protected void drawGuiContainerForegroundLayer(int i, int j) { this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); double scale = 1.25; - String flux = String.format("%,.1f", 10000.0D); + String flux = String.format("%,.1f", controller.flux); GL11.glScaled(1 / scale, 1 / scale, 1); this.fontRendererObj.drawString(flux, (int) (165 * scale - this.fontRendererObj.getStringWidth(flux)), (int)(64 * scale), 0x00ff00); GL11.glScaled(scale, scale, 1); @@ -61,7 +89,13 @@ public class GUIPWR extends GuiInfoContainer { if(System.currentTimeMillis() % 1000 < 500) drawTexturedModalRect(guiLeft + 147, guiTop, 176, 14, 26, 26); - GaugeUtil.renderGauge(Gauge.ROUND_SMALL, guiLeft + 115, guiTop + 31, this.zLevel, 0.1D); - GaugeUtil.renderGauge(Gauge.ROUND_SMALL, guiLeft + 151, guiTop + 31, this.zLevel, 0.4D); + GaugeUtil.renderGauge(Gauge.ROUND_SMALL, guiLeft + 115, guiTop + 31, this.zLevel, (double) controller.coreHeat / (double) controller.coreHeatCapacity); + GaugeUtil.renderGauge(Gauge.ROUND_SMALL, guiLeft + 151, guiTop + 31, this.zLevel, (double) controller.hullHeat / (double) controller.hullHeatCapacity); + + if(controller.typeLoaded != -1 && controller.amountLoaded > 0) { + ItemStack display = new ItemStack(ModItems.pwr_fuel, 1, controller.typeLoaded); + this.drawItemStack(display, guiLeft + 89, guiTop + 5, EnumChatFormatting.YELLOW + "" + controller.amountLoaded + "/" + controller.rodCount); + RenderHelper.enableGUIStandardItemLighting(); + } } } diff --git a/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java b/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java index 4c041eaea..e5b244fc5 100644 --- a/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java +++ b/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java @@ -100,6 +100,19 @@ public abstract class GuiInfoContainer extends GuiContainer { return this.fontRendererObj; } + protected void drawItemStack(ItemStack stack, int x, int y, String label) { + GL11.glTranslatef(0.0F, 0.0F, 32.0F); + this.zLevel = 200.0F; + itemRender.zLevel = 200.0F; + FontRenderer font = null; + if(stack != null) font = stack.getItem().getFontRenderer(stack); + if(font == null) font = fontRendererObj; + itemRender.renderItemAndEffectIntoGUI(font, this.mc.getTextureManager(), stack, x, y); + itemRender.renderItemOverlayIntoGUI(font, this.mc.getTextureManager(), stack, x, y, label); + this.zLevel = 0.0F; + itemRender.zLevel = 0.0F; + } + protected void drawStackText(List lines, int x, int y, FontRenderer font) { if(!lines.isEmpty()) { diff --git a/src/main/java/com/hbm/items/machine/ItemPWRFuel.java b/src/main/java/com/hbm/items/machine/ItemPWRFuel.java index 7bb6ce158..d60aca579 100644 --- a/src/main/java/com/hbm/items/machine/ItemPWRFuel.java +++ b/src/main/java/com/hbm/items/machine/ItemPWRFuel.java @@ -1,5 +1,7 @@ package com.hbm.items.machine; +import java.util.List; + import com.hbm.items.ItemEnumMulti; import com.hbm.util.EnumUtil; import com.hbm.util.function.Function; @@ -8,8 +10,7 @@ import com.hbm.util.function.Function.FunctionSqrt; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; +import net.minecraft.util.EnumChatFormatting; public class ItemPWRFuel extends ItemEnumMulti { @@ -26,7 +27,7 @@ public class ItemPWRFuel extends ItemEnumMulti { MOX( 07.5D, new FunctionLogarithmic(25)), MEP( 07.5D, new FunctionLogarithmic(25)), HEP239( 10.0D, new FunctionSqrt(25)), - HEP24( 10.0D, new FunctionSqrt(25)), + HEP241( 10.0D, new FunctionSqrt(25)), MEA( 07.5D, new FunctionLogarithmic(25)), HEA242( 10.0D, new FunctionSqrt(25)), HES326( 15.0D, new FunctionSqrt(25)), @@ -41,48 +42,17 @@ public class ItemPWRFuel extends ItemEnumMulti { this.function = function; } } - - @Override - public boolean showDurabilityBar(ItemStack stack) { - return getDurabilityForDisplay(stack) > 0D; - } - - @Override - public double getDurabilityForDisplay(ItemStack stack) { - return 1D - getEnrichment(stack); - } - public static double getEnrichment(ItemStack stack) { + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { + EnumPWRFuel num = EnumUtil.grabEnumSafely(EnumPWRFuel.class, stack.getItemDamage()); - return getYield(stack) / num.yield; - } - - public static double getYield(ItemStack stack) { - return getDouble(stack, "yield"); - } - - public static void setYield(ItemStack stack, double yield) { - setDouble(stack, "yield", yield); - } - - public static void setDouble(ItemStack stack, String key, double yield) { - if(!stack.hasTagCompound()) setNBTDefaults(stack); - stack.stackTagCompound.setDouble(key, yield); - } - - public static double getDouble(ItemStack stack, String key) { - if(!stack.hasTagCompound()) setNBTDefaults(stack); - return stack.stackTagCompound.getDouble(key); - } - - private static void setNBTDefaults(ItemStack stack) { - EnumPWRFuel num = EnumUtil.grabEnumSafely(EnumPWRFuel.class, stack.getItemDamage()); - stack.stackTagCompound = new NBTTagCompound(); - setYield(stack, num.yield); - } - - @Override - public void onCreated(ItemStack stack, World world, EntityPlayer player) { - setNBTDefaults(stack); + + String color = EnumChatFormatting.GOLD + ""; + String reset = EnumChatFormatting.RESET + ""; + + list.add(color + "Heat per flux: " + reset + num.heatEmission + " TU"); + list.add(color + "Reacton function: " + reset + num.function.getLabelForFuel()); + list.add(color + "Fuel type: " + reset + num.function.getDangerFromFuel()); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java index 82ef6bf37..564df30ac 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java @@ -12,14 +12,17 @@ import com.hbm.inventory.fluid.trait.FT_Heatable; import com.hbm.inventory.fluid.trait.FT_Heatable.HeatingType; import com.hbm.inventory.gui.GUIPWR; import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemPWRFuel.EnumPWRFuel; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.EnumUtil; import com.hbm.util.fauxpointtwelve.BlockPos; import net.minecraft.block.Block; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; +import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.MathHelper; import net.minecraft.world.World; @@ -29,9 +32,10 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG public FluidTank[] tanks; public int coreHeat; - public int coreHeatCapacity; + public static final int coreHeatCapacity = 25_000_000; public int hullHeat; - public int hullHeatCapacity; + public static final int hullHeatCapacity = 25_000_000; + public double flux; public int rodLevel; public int rodTarget; @@ -39,7 +43,7 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG public int typeLoaded; public int amountLoaded; public double progress; - public int processTime; + public double processTime; public int rodCount; public int connections; @@ -58,6 +62,7 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG this.tanks[1] = new FluidTank(Fluids.COOLANT_HOT, 128_000); } + /** The initial creation of the reactor, does all the pre-calculation and whatnot */ public void setup(HashMap partMap, HashMap rodMap) { rodCount = 0; @@ -136,22 +141,92 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG this.tanks[0].setType(2, slots); setupTanks(); - if(typeLoaded == -1 || amountLoaded <= 0 && slots[0] != null && slots[0].getItem() == ModItems.pwr_fuel) { + if((typeLoaded == -1 || amountLoaded <= 0) && slots[0] != null && slots[0].getItem() == ModItems.pwr_fuel) { typeLoaded = slots[0].getItemDamage(); amountLoaded++; this.decrStackSize(0, 1); this.markChanged(); + } else if(slots[0] != null && slots[0].getItem() == ModItems.pwr_fuel && slots[0].getItemDamage() == typeLoaded && amountLoaded < rodCount){ + amountLoaded++; + this.decrStackSize(0, 1); + this.markChanged(); } if(this.rodTarget > this.rodLevel) this.rodLevel++; if(this.rodTarget < this.rodLevel) this.rodLevel--; + int newFlux = this.sourceCount * 20; + + if(typeLoaded != -1 && amountLoaded > 0) { + + EnumPWRFuel fuel = EnumUtil.grabEnumSafely(EnumPWRFuel.class, typeLoaded); + double usedRods = getTotalProcessMultiplier(); + double fluxPerRod = this.flux / this.rodCount; + double outputPerRod = fuel.function.effonix(fluxPerRod); + double totalOutput = outputPerRod * amountLoaded * usedRods; + double totalHeatOutput = totalOutput * fuel.heatEmission; + + this.coreHeat += totalHeatOutput; + newFlux += totalOutput; + + this.processTime = (int) fuel.yield; + this.progress += totalOutput; + + if(this.progress >= this.processTime) { + this.progress -= this.processTime; + + if(slots[1] == null) { + slots[1] = new ItemStack(ModItems.pwr_fuel_hot, 1, typeLoaded); + } else if(slots[1].getItem() == ModItems.pwr_fuel_hot && slots[1].getItemDamage() == typeLoaded && slots[1].stackSize < slots[1].getMaxStackSize()) { + slots[1].stackSize++; + } + + this.markChanged(); + } + } + + if(this.amountLoaded <= 0) { + this.typeLoaded = -1; + } + + /* CORE COOLING */ + double coreCoolingApproachNum = getXOverE(this.heatexCount, 10) / 2D; + int averageCoreHeat = (this.coreHeat + this.hullHeat) / 2; + this.coreHeat -= (coreHeat - averageCoreHeat) * coreCoolingApproachNum; + this.hullHeat -= (hullHeat - averageCoreHeat) * coreCoolingApproachNum; + + this.hullHeat *= 0.99D; + + this.flux = newFlux; + NBTTagCompound data = new NBTTagCompound(); tanks[0].writeToNBT(data, "t0"); tanks[1].writeToNBT(data, "t1"); + data.setInteger("rodCount", rodCount); + data.setInteger("coreHeat", coreHeat); + data.setInteger("hullHeat", hullHeat); + data.setDouble("flux", flux); + data.setDouble("processTime", processTime); + data.setDouble("progress", progress); + data.setInteger("typeLoaded", typeLoaded); + data.setInteger("amountLoaded", amountLoaded); + this.networkPack(data, 150); } } + public void networkUnpack(NBTTagCompound nbt) { + tanks[0].readFromNBT(nbt, "t0"); + tanks[1].readFromNBT(nbt, "t1"); + rodCount = nbt.getInteger("rodCount"); + coreHeat = nbt.getInteger("coreHeat"); + hullHeat = nbt.getInteger("hullHeat"); + flux = nbt.getDouble("flux"); + processTime = nbt.getDouble("processTime"); + progress = nbt.getDouble("progress"); + typeLoaded = nbt.getInteger("typeLoaded"); + amountLoaded = nbt.getInteger("amountLoaded"); + } + protected void setupTanks() { FT_Heatable trait = tanks[0].getTankType().getTrait(FT_Heatable.class); @@ -171,11 +246,11 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG } public double connectinFunc(double connections) { - return connections * (1D - getXOverE(connections, 300D)) + connections / 2D * getXOverE(connections, 300D); //creates a curve that smoothly transitions from f(x)=x to f(x)=x/2 + return connections / 10D * (1D - getXOverE(connections, 300D)) + connections / 150D * getXOverE(connections, 300D); } public double getXOverE(double x, double d) { - return -Math.pow(Math.E, -x / d); + return 1 - Math.pow(Math.E, -x / d); } @Override diff --git a/src/main/java/com/hbm/util/function/Function.java b/src/main/java/com/hbm/util/function/Function.java index 544328e5c..4e8cc26b9 100644 --- a/src/main/java/com/hbm/util/function/Function.java +++ b/src/main/java/com/hbm/util/function/Function.java @@ -15,6 +15,7 @@ public abstract class Function { protected double div = 1D; protected double off = 0; + //the german prononciation of f(x) - "F von X", tee hee public abstract double effonix(double x); public abstract String getLabelForFuel(); public abstract String getDangerFromFuel(); From a7b741fe48429250f70c72a5e5647ba237c65dc8 Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 18 Aug 2023 14:18:24 +0200 Subject: [PATCH 248/432] PWR heat transfer --- .../java/com/hbm/blocks/machine/BlockPWR.java | 46 +++++++- .../java/com/hbm/inventory/fluid/Fluids.java | 3 +- .../java/com/hbm/inventory/gui/GUIPWR.java | 9 ++ .../inventory/recipes/CentrifugeRecipes.java | 6 +- .../machine/TileEntityPWRController.java | 109 +++++++++++++++++- 5 files changed, 163 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/hbm/blocks/machine/BlockPWR.java b/src/main/java/com/hbm/blocks/machine/BlockPWR.java index 7012f5437..d30541e60 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockPWR.java +++ b/src/main/java/com/hbm/blocks/machine/BlockPWR.java @@ -3,12 +3,14 @@ package com.hbm.blocks.machine; import java.util.Random; import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.fluid.FluidType; import com.hbm.lib.RefStrings; import com.hbm.render.block.ct.CT; import com.hbm.render.block.ct.CTStitchReceiver; import com.hbm.render.block.ct.IBlockCT; import com.hbm.tileentity.machine.TileEntityPWRController; +import api.hbm.fluid.IFluidConnector; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; @@ -22,6 +24,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; public class BlockPWR extends BlockContainer implements IBlockCT { @@ -91,7 +94,7 @@ public class BlockPWR extends BlockContainer implements IBlockCT { super.breakBlock(world, x, y, z, block, meta); } - public static class TileEntityBlockPWR extends TileEntity { + public static class TileEntityBlockPWR extends TileEntity implements IFluidConnector { public Block block; public int coreX; @@ -154,5 +157,46 @@ public class BlockPWR extends BlockContainer implements IBlockCT { this.worldObj.markTileEntityChunkModified(this.xCoord, this.yCoord, this.zCoord, this); } } + + @Override + public long transferFluid(FluidType type, int pressure, long fluid) { + + if(this.getBlockMetadata() != 1) return fluid; + if(block == null) return fluid; + + if(worldObj.getChunkProvider().chunkExists(coreX >> 4, coreZ >> 4)) { + + TileEntity tile = worldObj.getTileEntity(coreX, coreY, coreZ); + if(tile instanceof TileEntityPWRController) { + TileEntityPWRController controller = (TileEntityPWRController) tile; + return controller.transferFluid(type, pressure, fluid); + } + } + + return fluid; + } + + @Override + public long getDemand(FluidType type, int pressure) { + + if(this.getBlockMetadata() != 1) return 0; + if(block == null) return 0; + + if(worldObj.getChunkProvider().chunkExists(coreX >> 4, coreZ >> 4)) { + + TileEntity tile = worldObj.getTileEntity(coreX, coreY, coreZ); + if(tile instanceof TileEntityPWRController) { + TileEntityPWRController controller = (TileEntityPWRController) tile; + return controller.getDemand(type, pressure); + } + } + + return 0; + } + + @Override + public boolean canConnect(FluidType type, ForgeDirection dir) { + return this.getBlockMetadata() == 1; + } } } diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index fba8a1b43..3c70626d5 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -490,8 +490,7 @@ public class Fluids { HOTOIL.addTraits(new FT_Coolable(OIL, 1, 1, 10).setEff(CoolingType.HEATEXCHANGER, 1.0D)); HOTCRACKOIL.addTraits(new FT_Coolable(CRACKOIL, 1, 1, 10).setEff(CoolingType.HEATEXCHANGER, 1.0D)); - COOLANT.addTraits(new FT_Heatable().setEff(HeatingType.HEATEXCHANGER, 1.0D).addStep(300, 1, COOLANT_HOT, 1)); - COOLANT.addTraits(new FT_Heatable().setEff(HeatingType.PWR, 1.0D).addStep(300, 1, COOLANT_HOT, 1)); + COOLANT.addTraits(new FT_Heatable().setEff(HeatingType.HEATEXCHANGER, 1.0D).setEff(HeatingType.PWR, 1.0D).addStep(300, 1, COOLANT_HOT, 1)); COOLANT_HOT.addTraits(new FT_Coolable(COOLANT, 1, 1, 300).setEff(CoolingType.HEATEXCHANGER, 1.0D)); MUG.addTraits(new FT_Heatable().setEff(HeatingType.HEATEXCHANGER, 1.0D).addStep(400, 1, MUG_HOT, 1)); diff --git a/src/main/java/com/hbm/inventory/gui/GUIPWR.java b/src/main/java/com/hbm/inventory/gui/GUIPWR.java index af7130a47..083cab0c7 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIPWR.java +++ b/src/main/java/com/hbm/inventory/gui/GUIPWR.java @@ -41,6 +41,8 @@ public class GUIPWR extends GuiInfoContainer { //TODO: calculate some prediction using extrapolation (or some math sector that ends with -ic) //int timeLeft = (controller.processTime - controller.progress) / 20; //this.drawCustomInfoStat(x, y, guiLeft + 52, guiTop + 31, 36, 18, x, y, new String[] { "Cycle: " + (timeLeft / 60) + ":" + String.format("%02d", timeLeft % 60)}); + + this.drawCustomInfoStat(x, y, guiLeft + 52, guiTop + 31, 36, 18, x, y, new String[] { ((int) (controller.progress * 100 / controller.processTime)) + "%" }); if(controller.typeLoaded != -1 && controller.amountLoaded > 0) { @@ -89,6 +91,9 @@ public class GUIPWR extends GuiInfoContainer { if(System.currentTimeMillis() % 1000 < 500) drawTexturedModalRect(guiLeft + 147, guiTop, 176, 14, 26, 26); + int p = (int) (controller.progress * 33 / controller.processTime); + drawTexturedModalRect(guiLeft + 54, guiTop + 33, 176, 0, p, 14); + GaugeUtil.renderGauge(Gauge.ROUND_SMALL, guiLeft + 115, guiTop + 31, this.zLevel, (double) controller.coreHeat / (double) controller.coreHeatCapacity); GaugeUtil.renderGauge(Gauge.ROUND_SMALL, guiLeft + 151, guiTop + 31, this.zLevel, (double) controller.hullHeat / (double) controller.hullHeatCapacity); @@ -96,6 +101,10 @@ public class GUIPWR extends GuiInfoContainer { ItemStack display = new ItemStack(ModItems.pwr_fuel, 1, controller.typeLoaded); this.drawItemStack(display, guiLeft + 89, guiTop + 5, EnumChatFormatting.YELLOW + "" + controller.amountLoaded + "/" + controller.rodCount); RenderHelper.enableGUIStandardItemLighting(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); } + + controller.tanks[0].renderTank(guiLeft + 8, guiTop + 57, this.zLevel, 16, 52); + controller.tanks[1].renderTank(guiLeft + 26, guiTop + 57, this.zLevel, 16, 52); } } diff --git a/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java b/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java index a3735f8bb..5e619c676 100644 --- a/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java @@ -1,6 +1,7 @@ package com.hbm.inventory.recipes; import java.io.IOException; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map.Entry; @@ -188,8 +189,9 @@ public class CentrifugeRecipes extends SerializableRecipe { new ItemStack(ModItems.nugget_pu238, 6), new ItemStack(ModItems.nuclear_waste, 2) }); - if(OreDictionary.doesOreNameExist("nuggetNaquadria")) { - ItemStack nuggetNQR = OreDictionary.getOres("nuggetNaquadria").get(0); + ArrayList naquadriaNuggets = OreDictionary.getOres("nuggetNaquadria"); + if(naquadriaNuggets.size() != 0) { + ItemStack nuggetNQR = naquadriaNuggets.get(0); ItemStack copy = nuggetNQR.copy(); copy.stackSize = 12; recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.watz_pellet_depleted, EnumWatzType.NQD)), new ItemStack[] { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java index 564df30ac..5aa739e75 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java @@ -1,6 +1,8 @@ package com.hbm.tileentity.machine; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map.Entry; import com.hbm.blocks.ModBlocks; @@ -9,6 +11,7 @@ import com.hbm.inventory.container.ContainerPWR; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Heatable; +import com.hbm.inventory.fluid.trait.FT_Heatable.HeatingStep; import com.hbm.inventory.fluid.trait.FT_Heatable.HeatingType; import com.hbm.inventory.gui.GUIPWR; import com.hbm.items.ModItems; @@ -18,6 +21,7 @@ import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.EnumUtil; import com.hbm.util.fauxpointtwelve.BlockPos; +import api.hbm.fluid.IFluidStandardTransceiver; import net.minecraft.block.Block; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; @@ -28,13 +32,13 @@ import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityPWRController extends TileEntityMachineBase implements IGUIProvider, IControlReceiver { +public class TileEntityPWRController extends TileEntityMachineBase implements IGUIProvider, IControlReceiver, IFluidStandardTransceiver { public FluidTank[] tanks; public int coreHeat; - public static final int coreHeatCapacity = 25_000_000; + public static final int coreHeatCapacity = 10_000_000; public int hullHeat; - public static final int hullHeatCapacity = 25_000_000; + public static final int hullHeatCapacity = 10_000_000; public double flux; public int rodLevel; @@ -53,6 +57,8 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG public int sourceCount; public boolean assembled; + + protected List ports = new ArrayList(); public TileEntityPWRController() { super(3); @@ -82,6 +88,7 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG if(block == ModBlocks.pwr_heatex) heatexCount++; if(block == ModBlocks.pwr_channel) channelCount++; if(block == ModBlocks.pwr_neutron_source) sourceCount++; + if(block == ModBlocks.pwr_port) ports.add(entry.getKey()); } for(Entry entry : rodMap.entrySet()) { @@ -141,6 +148,15 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG this.tanks[0].setType(2, slots); setupTanks(); + for(BlockPos pos : ports) { + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { + BlockPos portPos = pos.offset(dir); + + if(tanks[1].getFill() > 0) this.sendFluid(tanks[1], worldObj, portPos.getX(), portPos.getY(), portPos.getZ(), dir); + if(worldObj.getTotalWorldTime() % 20 == 0) this.trySubscribe(tanks[0].getTankType(), worldObj, portPos.getX(), portPos.getY(), portPos.getZ(), dir); + } + } + if((typeLoaded == -1 || amountLoaded <= 0) && slots[0] != null && slots[0].getItem() == ModItems.pwr_fuel) { typeLoaded = slots[0].getItemDamage(); amountLoaded++; @@ -190,12 +206,14 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG } /* CORE COOLING */ - double coreCoolingApproachNum = getXOverE(this.heatexCount, 10) / 2D; + double coreCoolingApproachNum = getXOverE((double) this.heatexCount / (double) this.rodCount, 2) / 2D; int averageCoreHeat = (this.coreHeat + this.hullHeat) / 2; this.coreHeat -= (coreHeat - averageCoreHeat) * coreCoolingApproachNum; this.hullHeat -= (hullHeat - averageCoreHeat) * coreCoolingApproachNum; - this.hullHeat *= 0.99D; + updateCoolant(); + + this.hullHeat *= 0.999D; this.flux = newFlux; @@ -214,6 +232,26 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG } } + protected void updateCoolant() { + + FT_Heatable trait = tanks[0].getTankType().getTrait(FT_Heatable.class); + if(trait == null || trait.getEfficiency(HeatingType.PWR) <= 0) return; + + double coolingEff = (double) this.channelCount / (double) this.rodCount * 0.1D; //10% cooling if numbers match + if(coolingEff > 1D) coolingEff = 1D; + + int heatToUse = (int) (this.hullHeat * coolingEff); + HeatingStep step = trait.getFirstStep(); + int coolCycles = tanks[0].getFill() / step.amountReq; + int hotCycles = (tanks[1].getMaxFill() - tanks[1].getFill()) / step.amountProduced; + int heatCycles = heatToUse / step.heatReq; + int cycles = Math.min(coolCycles, Math.min(hotCycles, heatCycles)); + + this.hullHeat -= step.heatReq * cycles; + this.tanks[0].setFill(tanks[0].getFill() - step.amountReq * cycles); + this.tanks[1].setFill(tanks[1].getFill() + step.amountProduced * cycles); + } + public void networkUnpack(NBTTagCompound nbt) { tanks[0].readFromNBT(nbt, "t0"); tanks[1].readFromNBT(nbt, "t1"); @@ -234,6 +272,7 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG if(trait == null || trait.getEfficiency(HeatingType.PWR) <= 0) { tanks[0].setTankType(Fluids.NONE); tanks[1].setTankType(Fluids.NONE); + return; } tanks[1].setTankType(trait.getFirstStep().typeProduced); @@ -258,6 +297,29 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG super.readFromNBT(nbt); this.assembled = nbt.getBoolean("assembled"); + this.coreHeat = nbt.getInteger("coreHeat"); + this.hullHeat = nbt.getInteger("hullHeat"); + this.flux = nbt.getDouble("flux"); + this.rodLevel = nbt.getInteger("rodLevel"); + this.rodTarget = nbt.getInteger("rodTarget"); + this.typeLoaded = nbt.getInteger("typeLoaded"); + this.amountLoaded = nbt.getInteger("amountLoaded"); + this.progress = nbt.getDouble("progress"); + this.processTime = nbt.getDouble("processTime"); + + this.rodCount = nbt.getInteger("rodCount"); + this.connections = nbt.getInteger("connections"); + this.connectionsControlled = nbt.getInteger("connectionsControlled"); + this.heatexCount = nbt.getInteger("heatexCount"); + this.channelCount = nbt.getInteger("channelCount"); + this.sourceCount = nbt.getInteger("sourceCount"); + + ports.clear(); + int portCount = nbt.getInteger("portCount"); + for(int i = 0; i < portCount; i++) { + int[] port = nbt.getIntArray("p" + i); + ports.add(new BlockPos(port[0], port[1], port[2])); + } } @Override @@ -265,6 +327,28 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG super.writeToNBT(nbt); nbt.setBoolean("assembled", assembled); + nbt.setInteger("coreHeat", coreHeat); + nbt.setInteger("hullHeat", hullHeat); + nbt.setDouble("flux", flux); + nbt.setInteger("rodLevel", rodLevel); + nbt.setInteger("rodTarget", rodTarget); + nbt.setInteger("typeLoaded", typeLoaded); + nbt.setInteger("amountLoaded", amountLoaded); + nbt.setDouble("progress", progress); + nbt.setDouble("processTime", processTime); + + nbt.setInteger("rodCount", rodCount); + nbt.setInteger("connections", connections); + nbt.setInteger("connectionsControlled", connectionsControlled); + nbt.setInteger("heatexCount", heatexCount); + nbt.setInteger("channelCount", channelCount); + nbt.setInteger("sourceCount", sourceCount); + + nbt.setInteger("portCount", ports.size()); + for(int i = 0; i < ports.size(); i++) { + BlockPos pos = ports.get(i); + nbt.setIntArray("p" + i, new int[] { pos.getX(), pos.getY(), pos.getZ() }); + } } @Override @@ -289,4 +373,19 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIPWR(player.inventory, this); } + + @Override + public FluidTank[] getAllTanks() { + return tanks; + } + + @Override + public FluidTank[] getSendingTanks() { + return new FluidTank[] { tanks[1] }; + } + + @Override + public FluidTank[] getReceivingTanks() { + return new FluidTank[] { tanks[0] }; + } } From 05f45e8a769f55c736760193a8bd2db1880be41b Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 20 Aug 2023 19:23:35 +0200 Subject: [PATCH 249/432] PWR controllability --- .../java/com/hbm/inventory/gui/GUIPWR.java | 68 ++++++++++++++++-- .../machine/TileEntityMachineChemplant.java | 2 + .../TileEntityMachineChemplantBase.java | 2 + .../machine/TileEntityPWRController.java | 64 ++++++++++++++++- src/main/resources/assets/hbm/sounds.json | 1 + .../assets/hbm/sounds/block/reactorLoop.ogg | Bin 0 -> 112164 bytes 6 files changed, 128 insertions(+), 9 deletions(-) create mode 100644 src/main/resources/assets/hbm/sounds/block/reactorLoop.ogg diff --git a/src/main/java/com/hbm/inventory/gui/GUIPWR.java b/src/main/java/com/hbm/inventory/gui/GUIPWR.java index 083cab0c7..b8888ec02 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIPWR.java +++ b/src/main/java/com/hbm/inventory/gui/GUIPWR.java @@ -1,21 +1,29 @@ package com.hbm.inventory.gui; +import org.apache.commons.lang3.math.NumberUtils; +import org.lwjgl.input.Keyboard; import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerPWR; import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; +import com.hbm.packet.NBTControlPacket; +import com.hbm.packet.PacketDispatcher; import com.hbm.render.util.GaugeUtil; import com.hbm.render.util.GaugeUtil.Gauge; import com.hbm.tileentity.machine.TileEntityPWRController; import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.gui.GuiTextField; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.MathHelper; import net.minecraft.util.ResourceLocation; public class GUIPWR extends GuiInfoContainer { @@ -23,6 +31,8 @@ public class GUIPWR extends GuiInfoContainer { protected TileEntityPWRController controller; private final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/reactors/gui_pwr.png"); + private GuiTextField field; + public GUIPWR(InventoryPlayer inventory, TileEntityPWRController controller) { super(new ContainerPWR(inventory, controller)); this.controller = controller; @@ -30,6 +40,21 @@ public class GUIPWR extends GuiInfoContainer { this.xSize = 176; this.ySize = 188; } + + @Override + public void initGui() { + super.initGui(); + + Keyboard.enableRepeatEvents(true); + + this.field = new GuiTextField(this.fontRendererObj, guiLeft + 57, guiTop + 63, 30, 8); + this.field.setTextColor(0x00ff00); + this.field.setDisabledTextColour(0x008000); + this.field.setEnableBackgroundDrawing(false); + this.field.setMaxStringLength(3); + + this.field.setText((100 - controller.rodTarget) + ""); + } @Override public void drawScreen(int x, int y, float interp) { @@ -37,13 +62,9 @@ public class GUIPWR extends GuiInfoContainer { this.drawCustomInfoStat(x, y, guiLeft + 115, guiTop + 31, 18, 18, x, y, new String[] { "Core: " + String.format("%,d", controller.coreHeat) + " / " + String.format("%,d", controller.coreHeatCapacity) + " TU" }); this.drawCustomInfoStat(x, y, guiLeft + 151, guiTop + 31, 18, 18, x, y, new String[] { "Hull: " + String.format("%,d", controller.hullHeat) + " / " + String.format("%,d", controller.hullHeatCapacity) + " TU" }); - - //TODO: calculate some prediction using extrapolation (or some math sector that ends with -ic) - //int timeLeft = (controller.processTime - controller.progress) / 20; - //this.drawCustomInfoStat(x, y, guiLeft + 52, guiTop + 31, 36, 18, x, y, new String[] { "Cycle: " + (timeLeft / 60) + ":" + String.format("%02d", timeLeft % 60)}); - - this.drawCustomInfoStat(x, y, guiLeft + 52, guiTop + 31, 36, 18, x, y, new String[] { ((int) (controller.progress * 100 / controller.processTime)) + "%" }); + this.drawCustomInfoStat(x, y, guiLeft + 52, guiTop + 31, 36, 18, x, y, new String[] { ((int) (controller.progress * 100 / controller.processTime)) + "%" }); + this.drawCustomInfoStat(x, y, guiLeft + 52, guiTop + 53, 54, 4, x, y, "Control rod level: " + (100 - controller.rodLevel) + "%"); if(controller.typeLoaded != -1 && controller.amountLoaded > 0) { ItemStack display = new ItemStack(ModItems.pwr_fuel, 1, controller.typeLoaded); @@ -88,12 +109,15 @@ public class GUIPWR extends GuiInfoContainer { Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - if(System.currentTimeMillis() % 1000 < 500) + if(controller.hullHeat > controller.hullHeatCapacity * 0.8 || controller.coreHeat > controller.coreHeatCapacity * 0.8) drawTexturedModalRect(guiLeft + 147, guiTop, 176, 14, 26, 26); int p = (int) (controller.progress * 33 / controller.processTime); drawTexturedModalRect(guiLeft + 54, guiTop + 33, 176, 0, p, 14); + int c = (int) (controller.rodLevel * 52 / 100); + drawTexturedModalRect(guiLeft + 53, guiTop + 54, 176, 40, c, 2); + GaugeUtil.renderGauge(Gauge.ROUND_SMALL, guiLeft + 115, guiTop + 31, this.zLevel, (double) controller.coreHeat / (double) controller.coreHeatCapacity); GaugeUtil.renderGauge(Gauge.ROUND_SMALL, guiLeft + 151, guiTop + 31, this.zLevel, (double) controller.hullHeat / (double) controller.hullHeatCapacity); @@ -103,8 +127,38 @@ public class GUIPWR extends GuiInfoContainer { RenderHelper.enableGUIStandardItemLighting(); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); } + + GL11.glDisable(GL11.GL_LIGHTING); controller.tanks[0].renderTank(guiLeft + 8, guiTop + 57, this.zLevel, 16, 52); controller.tanks[1].renderTank(guiLeft + 26, guiTop + 57, this.zLevel, 16, 52); + + this.field.drawTextBox(); + } + + @Override + protected void mouseClicked(int mouseX, int mouseY, int i) { + super.mouseClicked(mouseX, mouseY, i); + this.field.mouseClicked(mouseX, mouseY, i); + + if(guiLeft + 88 <= mouseX && guiLeft + 88 + 18 > mouseX && guiTop + 58 < mouseY && guiTop + 58 + 18 >= mouseY) { + + if(NumberUtils.isNumber(field.getText())) { + int level = (int)MathHelper.clamp_double(Double.parseDouble(field.getText()), 0, 100); + field.setText(level + ""); + + NBTTagCompound control = new NBTTagCompound(); + control.setInteger("control", 100 - level); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(control, controller.xCoord, controller.yCoord, controller.zCoord)); + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1F)); + + } + } + } + + @Override + protected void keyTyped(char c, int i) { + if(this.field.textboxKeyTyped(c, i)) return; + super.keyTyped(c, i); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java index 379a95c1b..3da9f3833 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java @@ -304,6 +304,8 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements this.maxProgress = recipe.getDuration() * this.speed / 100; + if(maxProgress <= 0) maxProgress = 1; + if(this.progress >= this.maxProgress) { consumeFluids(recipe); produceFluids(recipe); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java index d91102d51..99e38f3e4 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java @@ -150,6 +150,8 @@ public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBa this.maxProgress[index] = recipe.getDuration() * this.speed / 100; + if(maxProgress[index] <= 0) maxProgress[index] = 1; + if(this.progress[index] >= this.maxProgress[index]) { consumeFluids(recipe, index); produceFluids(recipe, index); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java index 5aa739e75..ec3a6488a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java @@ -16,6 +16,8 @@ import com.hbm.inventory.fluid.trait.FT_Heatable.HeatingType; import com.hbm.inventory.gui.GUIPWR; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemPWRFuel.EnumPWRFuel; +import com.hbm.main.MainRegistry; +import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.EnumUtil; @@ -41,8 +43,8 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG public static final int hullHeatCapacity = 10_000_000; public double flux; - public int rodLevel; - public int rodTarget; + public int rodLevel = 100; + public int rodTarget = 100; public int typeLoaded; public int amountLoaded; @@ -58,6 +60,8 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG public boolean assembled; + private AudioWrapper audio; + protected List ports = new ArrayList(); public TileEntityPWRController() { @@ -228,7 +232,54 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG data.setDouble("progress", progress); data.setInteger("typeLoaded", typeLoaded); data.setInteger("amountLoaded", amountLoaded); + data.setInteger("rodLevel", rodLevel); + data.setInteger("rodTarget", rodTarget); this.networkPack(data, 150); + } else { + + if(amountLoaded > 0) { + + if(audio == null) { + audio = createAudioLoop(); + audio.startSound(); + } else if(!audio.isPlaying()) { + audio = rebootAudio(audio); + } + + audio.keepAlive(); + + } else { + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + } + } + + @Override + public AudioWrapper createAudioLoop() { + return MainRegistry.proxy.getLoopedSound("hbm:block.reactorLoop", xCoord, yCoord, zCoord, 1F, 10F, 1.0F, 20); + } + + @Override + public void onChunkUnload() { + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + + @Override + public void invalidate() { + + super.invalidate(); + + if(audio != null) { + audio.stopSound(); + audio = null; } } @@ -263,6 +314,8 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG progress = nbt.getDouble("progress"); typeLoaded = nbt.getInteger("typeLoaded"); amountLoaded = nbt.getInteger("amountLoaded"); + rodLevel = nbt.getInteger("rodLevel"); + rodTarget = nbt.getInteger("rodTarget"); } protected void setupTanks() { @@ -295,6 +348,9 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); + + tanks[0].readFromNBT(nbt, "t0"); + tanks[1].readFromNBT(nbt, "t1"); this.assembled = nbt.getBoolean("assembled"); this.coreHeat = nbt.getInteger("coreHeat"); @@ -325,6 +381,9 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); + + tanks[0].writeToNBT(nbt, "t0"); + tanks[1].writeToNBT(nbt, "t1"); nbt.setBoolean("assembled", assembled); nbt.setInteger("coreHeat", coreHeat); @@ -361,6 +420,7 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG if(data.hasKey("control")) { this.rodTarget = MathHelper.clamp_int(data.getInteger("control"), 0, 100); + this.markChanged(); } } diff --git a/src/main/resources/assets/hbm/sounds.json b/src/main/resources/assets/hbm/sounds.json index 90efc5334..d2c6248c7 100644 --- a/src/main/resources/assets/hbm/sounds.json +++ b/src/main/resources/assets/hbm/sounds.json @@ -58,6 +58,7 @@ "block.hornNearDual": {"category": "block", "sounds": [{"name": "block/hornNearDual", "stream": false}]}, "block.hornFarSingle": {"category": "block", "sounds": [{"name": "block/hornFarSingle", "stream": false}]}, "block.hornFarDual": {"category": "block", "sounds": [{"name": "block/hornFarDual", "stream": false}]}, + "block.reactorLoop": {"category": "block", "sounds": [{"name": "block/reactorLoop", "stream": false}]}, "door.TransitionSealOpen": {"category": "block", "sounds": [{"name": "block/door/transition_seal_open", "stream": true}]}, "door.wghStart": {"category": "block", "sounds": [{"name": "block/door/wgh_start", "stream": true}]}, diff --git a/src/main/resources/assets/hbm/sounds/block/reactorLoop.ogg b/src/main/resources/assets/hbm/sounds/block/reactorLoop.ogg new file mode 100644 index 0000000000000000000000000000000000000000..428ddeabbfdcd94c2efc0856475005c552ce8e32 GIT binary patch literal 112164 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

    K-YCV lK0fmD@&dr;=O;o4{sRm%LVVdFF!%rf002ovPDHLkV1gTGH){X@ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/sodium_hot.png b/src/main/resources/assets/hbm/textures/gui/fluids/sodium_hot.png new file mode 100644 index 0000000000000000000000000000000000000000..61fe27c3f1c65f43e514e24d500a7eddcdbc7cfa GIT binary patch literal 707 zcmV;!0zCbRP)-HtE} z3BwR6B}%DTUDGsdHX8tjVZb?uSJ(BdAP5445WK&?ljk{Y+aiR(^E?3Bww>)oQ3QY| zgg`09FburDzH)YU#`X0zRaNn0&-ZwU#J~@O>YxH9`o%IF2Z#*lxEt=a5p;wk_6LE-x<;LQqu|*4jDTpS^JZJ$>(X zI{=(>07OxQbB_If&)3%%S(Z_jB>?B==Q!txqUdi%#u(n--e}vFuIrel31bXR(~xBu zLI|FppE;dQq-jbRhG?w;Sg+T3WmzJn#9GU8xx`w_G);tINLiMoX-d;H+}+)AI2<@0 zk63GwQc{*B;^EK@c#GBVw^w zuwJhj#}VK6xw^Un;N#}_Ev*ladDJv|Ww z0dXAv!@w{M0MvE;my@<_nWhQn92XZCc%H}o{XKPE6UQ;e7^IX)DH(==JkL=|5yvr} z=ivoGK-YC>t?9as)oO(?h9pTa#>@;TrO5M~#s8?sag1{g;he)5gVuWHAj>kEruiWa pfWGf}e0=2fIKKb@ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/throium_salt.png b/src/main/resources/assets/hbm/textures/gui/fluids/throium_salt.png new file mode 100644 index 0000000000000000000000000000000000000000..93d40f3e95b4c6bd4780982888334d43960a2abe GIT binary patch literal 748 zcmVkjYc1_KMmXp2rxW-0cNlB= z@%=kVlF*K0q*7?DX+lGFI8f|%Oy9o;z&S^Fdqd^h94Q60t4R`zkdpOk$?dy$6h(m) z0$wU)(y3yd}7 zyB#9SdKhcSdf7z`kR%C7yNwi*tlMROIG~lnA3bT>!CH$o1|dWX?>$;6X0sVh2uL9* z$^w7%3qf&O4X3s71! z8V=c46-@|4QA8(ADaw+5{~BWqN-3n2=M#j0$>a|2J=R)oMk4^$s}kmpnf|Go4Ox&M}|QNz?8nG}c<2YZFc<^4$)tHKHgB znh*$0!?52+O37cJK2a0}Y1+lr4yhDUDV%eR$73R`$+}&%)~F;&*dGp9W7!`L+>A!} zWl>5gg6h)8UXgZP*l7$lo3p>W$w2Kz{|Nlidp^IeE6ynB- zZS-MD!)TN)LIi!A3lARL`|g?j_`ZGv@ZQsP9Z?jal)`(@#|*;&z~yqGEL(;FK7U>T zAX;lg1Zypu&4w@xY1~^z=j= z$HZ}rQVOm0Dhrd0j)K=-I{S6QA*J?4bC~Pudfji%Cf{cH$C@5r6>xbD4HtM zT9YIR%jJ@?EV;Y8W53_yz2|f~;l0N>hlsqZwU+1SXPTy=ZCkweSZk^4nmo@D5q|&v z%jII3&*#K(j4=j)^?FTkKA%xa;hf{@>I&x^-h1LW=6pUgpUh*@X^OQLr4&jj`o5aa)3z;96rq&Dd(ZFmeGkC-e5NQ0`o8Dx?hXLa zS|cJ@Ygw&Ugkeb2GyrI=Y10qMEX&bB6h(*#UteG3c}`u|hzLOt08rQU7%xc@00I#~ zYfaa6yuZJ5adE-z?JY%7@Eb1-Lqr6CFbvu6_ZVX+%MzJRrx;_HPN(BB@L!BHO=+42 ztu@X$k|ZGvLyR$qh|u>vT5C3&4Z|>?l%lR{oO4`VT_GYAMS*i}eD1GGp65hSG*+gy zCP@+&iv>kd@bvV=ZnwjG&+&M~dyjJt5&5UqT0TENsq31iY4F}-t);3evMfVHczu24 zd_FUq&4}X|V+;Vx<&xlZI-!)pImhMYCC)j#_r!6`>2zW?n^9F2_xJbg_j?Y91I{^= zQk+gFCabH9AFVYvH#calQA#nN&p8|pG);ps2Im}o-;-q-&bg6+wr!EgWWsW}r0;ve zFy#9B8i4QbZ?Y@{z*;-*cDvo!z-%^S^5@QOD5dDSjy%uNT9c+JK@bo`Q8Z?4 znuf(@1)48s6GmSt2`^-CH6ZQJtv{LI_i f8vw`S5fR}p18_m4*41(X00000NkvXXu0mjfMQJ`( literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/chem_icon_THORIUM_SALT.png b/src/main/resources/assets/hbm/textures/items/chem_icon_THORIUM_SALT.png new file mode 100644 index 0000000000000000000000000000000000000000..734d6b43575555d129666b3f6ab99df3d0c4462d GIT binary patch literal 394 zcmV;50d@X~P)?@RzlbpEceV^aGcL)DQ4k!oI$wn2URID3| zkc0MAjPg58Nb5Jyz!eN!!6vSJ+ZNOzMsX6*Xbfgx?fU>^XA!}DRT~clyIsyQ#b`O8 z?r!=FT+x`|^W&V!G-5K1N>CvwC8h~}2h|2hk_0Iw!EAB#I-chd%%XB1J}t0q!Frox zIG`@Ox-c5u5{4n3=K=7x*TCcj4u=Y8nqXOi)#e*eA74tze6E9!uiCr5svfXVmgTIs zR1;X1F7|pok|g2bId5EJJQQW9&=!pLI~W%S6yzl&%bH<;)g~`Pb-xX;Ofh^kBu!I5 oe`8%ggGc3eP+jyo+5Bhp1zm)Dr*{5=`v3p{07*qoM6N<$f(w77XaE2J literal 0 HcmV?d00001 From 5832d5dc2f77ab091a9d04a8b707aee87d5ad0f5 Mon Sep 17 00:00:00 2001 From: Bob Date: Wed, 23 Aug 2023 21:42:04 +0200 Subject: [PATCH 257/432] torex condensation ring --- .../hbm/entity/effect/EntityNukeTorex.java | 109 ++++++++++++++++-- .../{throium_salt.png => thorium_salt.png} | Bin ...depleted.png => thorium_salt_depleted.png} | Bin ...oium_salt_hot.png => thorium_salt_hot.png} | Bin 4 files changed, 99 insertions(+), 10 deletions(-) rename src/main/resources/assets/hbm/textures/gui/fluids/{throium_salt.png => thorium_salt.png} (100%) rename src/main/resources/assets/hbm/textures/gui/fluids/{throium_salt_depleted.png => thorium_salt_depleted.png} (100%) rename src/main/resources/assets/hbm/textures/gui/fluids/{throium_salt_hot.png => thorium_salt_hot.png} (100%) diff --git a/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java b/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java index 71ed35d93..574a81992 100644 --- a/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java +++ b/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java @@ -96,6 +96,14 @@ public class EntityNukeTorex extends Entity { } } + if(ticksExisted < 200) { + for(int i = 0; i < 2; i++) { + Cloudlet cloud = new Cloudlet(posX, posY + coreHeight, posZ, (float)(rand.nextDouble() * 2D * Math.PI), 0, lifetime, TorexType.RING); + cloud.setScale(1F + this.ticksExisted * 0.005F * (float) s * 0.5F, 3F * (float) s); + cloudlets.add(cloud); + } + } + for(Cloudlet cloud : cloudlets) { cloud.update(); } @@ -192,8 +200,13 @@ public class EntityNukeTorex extends Entity { public float colorMod = 1.0F; public Vec3 color; public Vec3 prevColor; + public TorexType type; public Cloudlet(double posX, double posY, double posZ, float angle, int age, int maxAge) { + this(posX, posY, posZ, angle, age, maxAge, TorexType.STANDARD); + } + + public Cloudlet(double posX, double posY, double posZ, float angle, int age, int maxAge, TorexType type) { this.posX = posX; this.posY = posY; this.posZ = posZ; @@ -202,10 +215,9 @@ public class EntityNukeTorex extends Entity { this.angle = angle; this.rangeMod = 0.3F + rand.nextFloat() * 0.7F; this.colorMod = 0.8F + rand.nextFloat() * 0.2F; + this.type = type; this.updateColor(); - - //TODO: add movement types which excludes ground dust from convection sim, then let centered ground dust linger for longer } private void update() { @@ -223,14 +235,21 @@ public class EntityNukeTorex extends Entity { Vec3 simPos = Vec3.createVectorHelper(EntityNukeTorex.this.posX - this.posX, 0, EntityNukeTorex.this.posZ - this.posZ); double simPosX = EntityNukeTorex.this.posX + simPos.lengthVector(); double simPosZ = EntityNukeTorex.this.posZ + 0D; - - Vec3 convection = getConvectionMotion(simPosX, simPosZ); - Vec3 lift = getLiftMotion(simPosX, simPosZ); - double factor = MathHelper.clamp_double((this.posY - EntityNukeTorex.this.posY) / EntityNukeTorex.this.coreHeight, 0, 1); - this.motionX = convection.xCoord * factor + lift.xCoord * (1D - factor); - this.motionY = convection.yCoord * factor + lift.yCoord * (1D - factor); - this.motionZ = convection.zCoord * factor + lift.zCoord * (1D - factor); + if(this.type == TorexType.STANDARD) { + Vec3 convection = getConvectionMotion(simPosX, simPosZ); + Vec3 lift = getLiftMotion(simPosX, simPosZ); + + double factor = MathHelper.clamp_double((this.posY - EntityNukeTorex.this.posY) / EntityNukeTorex.this.coreHeight, 0, 1); + this.motionX = convection.xCoord * factor + lift.xCoord * (1D - factor); + this.motionY = convection.yCoord * factor + lift.yCoord * (1D - factor); + this.motionZ = convection.zCoord * factor + lift.zCoord * (1D - factor); + } else if(this.type == TorexType.RING) { + Vec3 motion = getRingMotion(simPosX, simPosZ); + this.motionX = motion.xCoord; + this.motionY = motion.yCoord; + this.motionZ = motion.zCoord; + } double mult = this.motionMult * getSimulationSpeed(); @@ -241,6 +260,67 @@ public class EntityNukeTorex extends Entity { this.updateColor(); } + private Vec3 getRingMotion(double simPosX, double simPosZ) { + + /*Vec3 targetPos = Vec3.createVectorHelper( + (EntityNukeTorex.this.posX + torusWidth * 1), + (EntityNukeTorex.this.posY + coreHeight * 0.5), + EntityNukeTorex.this.posZ); + + Vec3 delta = Vec3.createVectorHelper(targetPos.xCoord - simPosX, targetPos.yCoord - this.posY, targetPos.zCoord - simPosZ); + + double speed = 0.125D; + delta.xCoord *= speed; + delta.yCoord *= speed; + delta.zCoord *= speed; + + delta.rotateAroundY(this.angle); + return delta;*/ + + if(simPosX > EntityNukeTorex.this.posX + torusWidth * 2) + return Vec3.createVectorHelper(0, 0, 0); + + /* the position of the torus' outer ring center */ + Vec3 torusPos = Vec3.createVectorHelper( + (EntityNukeTorex.this.posX + torusWidth), + (EntityNukeTorex.this.posY + coreHeight * 0.5), + EntityNukeTorex.this.posZ); + + /* the difference between the cloudlet and the torus' ring center */ + Vec3 delta = Vec3.createVectorHelper(torusPos.xCoord - simPosX, torusPos.yCoord - this.posY, torusPos.zCoord - simPosZ); + + /* the distance this cloudlet wants to achieve to the torus' ring center */ + double roller = EntityNukeTorex.this.rollerSize * this.rangeMod * 0.25; + /* the distance between this cloudlet and the torus' outer ring perimeter */ + double dist = delta.lengthVector() / roller - 1D; + + /* euler function based on how far the cloudlet is away from the perimeter */ + double func = 1D - Math.pow(Math.E, -dist); // [0;1] + /* just an approximation, but it's good enough */ + float angle = (float) (func * Math.PI * 0.5D); // [0;90°] + + /* vector going from the ring center in the direction of the cloudlet, stopping at the perimeter */ + Vec3 rot = Vec3.createVectorHelper(-delta.xCoord / dist, -delta.yCoord / dist, -delta.zCoord / dist); + /* rotate by the approximate angle */ + rot.rotateAroundZ(angle); + + /* the direction from the cloudlet to the target position on the perimeter */ + Vec3 motion = Vec3.createVectorHelper( + torusPos.xCoord + rot.xCoord - simPosX, + torusPos.yCoord + rot.yCoord - this.posY, + torusPos.zCoord + rot.zCoord - simPosZ); + + double speed = 0.001D; + motion.xCoord *= speed; + motion.yCoord *= speed; + motion.zCoord *= speed; + + motion = motion.normalize(); + motion.rotateAroundY(this.angle); + + return motion; + } + /* simulated on a 2D-plane along the X/Y axis */ private Vec3 getConvectionMotion(double simPosX, double simPosZ) { @@ -256,7 +336,6 @@ public class EntityNukeTorex extends Entity { /* the difference between the cloudlet and the torus' ring center */ Vec3 delta = Vec3.createVectorHelper(torusPos.xCoord - simPosX, torusPos.yCoord - this.posY, torusPos.zCoord - simPosZ); - /* the distance this cloudlet wants to achieve to the torus' ring center */ double roller = EntityNukeTorex.this.rollerSize * this.rangeMod; /* the distance between this cloudlet and the torus' outer ring perimeter */ @@ -331,6 +410,11 @@ public class EntityNukeTorex extends Entity { public Vec3 getInterpColor(float interp) { double greying = EntityNukeTorex.this.getGreying(); + + if(this.type == TorexType.RING) { + greying += 1; + } + return Vec3.createVectorHelper( (prevColor.xCoord + (color.xCoord - prevColor.xCoord) * interp) * greying, (prevColor.yCoord + (color.yCoord - prevColor.yCoord) * interp) * greying, @@ -361,6 +445,11 @@ public class EntityNukeTorex extends Entity { return this; } } + + public static enum TorexType { + STANDARD, + RING + } @Override protected void readEntityFromNBT(NBTTagCompound nbt) { } diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/throium_salt.png b/src/main/resources/assets/hbm/textures/gui/fluids/thorium_salt.png similarity index 100% rename from src/main/resources/assets/hbm/textures/gui/fluids/throium_salt.png rename to src/main/resources/assets/hbm/textures/gui/fluids/thorium_salt.png diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/throium_salt_depleted.png b/src/main/resources/assets/hbm/textures/gui/fluids/thorium_salt_depleted.png similarity index 100% rename from src/main/resources/assets/hbm/textures/gui/fluids/throium_salt_depleted.png rename to src/main/resources/assets/hbm/textures/gui/fluids/thorium_salt_depleted.png diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/throium_salt_hot.png b/src/main/resources/assets/hbm/textures/gui/fluids/thorium_salt_hot.png similarity index 100% rename from src/main/resources/assets/hbm/textures/gui/fluids/throium_salt_hot.png rename to src/main/resources/assets/hbm/textures/gui/fluids/thorium_salt_hot.png From 549ecc091775678a7f8cecac105bdb75cb83475c Mon Sep 17 00:00:00 2001 From: Boblet Date: Thu, 24 Aug 2023 16:38:55 +0200 Subject: [PATCH 258/432] fancier PWR gauges, larger PWRs, fixes, finite corium fluid --- changelog | 8 ++ src/main/java/com/hbm/blocks/ModBlocks.java | 2 +- .../com/hbm/blocks/fluid/CoriumFinite.java | 84 ++++++++++++++++++ .../blocks/machine/MachinePWRController.java | 12 ++- .../entity/projectile/EntityThrowableNT.java | 2 +- .../java/com/hbm/extprop/HbmPlayerProps.java | 4 + .../java/com/hbm/inventory/gui/GUIPWR.java | 42 ++++++++- .../java/com/hbm/main/ModEventHandler.java | 7 +- .../machine/TileEntityPWRController.java | 2 +- .../machine/rbmk/TileEntityRBMKRod.java | 8 +- .../hbm/textures/gui/reactors/gui_pwr.png | Bin 5927 -> 5847 bytes 11 files changed, 153 insertions(+), 18 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/fluid/CoriumFinite.java diff --git a/changelog b/changelog index 868f93cb8..3b57b26e4 100644 --- a/changelog +++ b/changelog @@ -10,6 +10,10 @@ * Liquid sodium * Valid PWR coolant with high efficiency rating * Made by liquefacting sodium +* Liquid thorium salt + * Valid PWR coolant + * Has a high flux multiplication rate, boosting fuels + * After cooling, the depleted salt has to be reprocessed using a chemical plant ## Changed * Bedrock fluorite ore now yields actual ore instead of fluorite directly @@ -18,6 +22,7 @@ * The automatic buzzsaw can now use wood oil, ethanol, fish oil and heavy oil to run * Fluorite ore is now centrifugable * Fluorite crystals now centrifuge into slightly less fluorite but also yield sodalite +* Blast resistance values for most resistant blocks have been changed, most blocks now have much lower resistance which means there's now a practical difference between concrete and ducrete. Resistance values also match the block's cost more closely. ## Fixed * Fixed FEnSU's IO limit not working properly @@ -28,3 +33,6 @@ * Fixed blast furnace output overstacking * Fixed potential crash caused by centrifuges trying to create a recipe using non-registered items * Fixed chemplant GUI crashing when too many upgrades are applied to a short duration recipe +* Corium is now a finite fluid, fixing an issue where a single fuel rod can be used to create a giant blob of corium, lagging out the server +* Fixed bullets not being able to pass things like tall grass +* Whether the player has received a guide book is now saved as part of the extprop which might fix an issue where offline mode players get a new book on every start diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index c9ab74c54..ecd81f4fd 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -2384,7 +2384,7 @@ public class ModBlocks { corium_fluid = new CoriumFluid().setDensity(600000).setViscosity(12000).setLuminosity(10).setTemperature(1500).setUnlocalizedName("corium_fluid"); FluidRegistry.registerFluid(corium_fluid); - corium_block = new CoriumBlock(corium_fluid, fluidcorium).setBlockName("corium_block").setResistance(500F); + corium_block = new CoriumFinite(corium_fluid, fluidcorium).setBlockName("corium_block").setResistance(500F); volcanic_lava_fluid = new VolcanicFluid().setLuminosity(15).setDensity(3000).setViscosity(3000).setTemperature(1300).setUnlocalizedName("volcanic_lava_fluid"); FluidRegistry.registerFluid(volcanic_lava_fluid); diff --git a/src/main/java/com/hbm/blocks/fluid/CoriumFinite.java b/src/main/java/com/hbm/blocks/fluid/CoriumFinite.java new file mode 100644 index 000000000..1861e41b9 --- /dev/null +++ b/src/main/java/com/hbm/blocks/fluid/CoriumFinite.java @@ -0,0 +1,84 @@ +package com.hbm.blocks.fluid; + +import java.util.Random; + +import com.hbm.blocks.ModBlocks; +import com.hbm.lib.ModDamageSource; +import com.hbm.util.ContaminationUtil; +import com.hbm.util.ContaminationUtil.ContaminationType; +import com.hbm.util.ContaminationUtil.HazardType; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.fluids.Fluid; + +public class CoriumFinite extends GenericFiniteFluid { + + public CoriumFinite(Fluid fluid, Material material) { + super(fluid, material, "corium_still", "corium_flowing"); + setQuantaPerBlock(5); + this.tickRate = 30; + } + + @Override + public boolean canDisplace(IBlockAccess world, int x, int y, int z) { + Block b = world.getBlock(x, y, z); + float res = (float) (Math.sqrt(b.getExplosionResistance(null)) * 3); + + if(res < 1) + return true; + Random rand = new Random(); + + return b.getMaterial().isLiquid() || rand.nextInt((int) res) == 0; + } + + @Override + public boolean displaceIfPossible(World world, int x, int y, int z) { + + if(world.getBlock(x, y, z).getMaterial().isLiquid()) { + return false; + } + return canDisplace(world, x, y, z); + } + + @Override + public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) { + entity.setInWeb(); + entity.setFire(3); + entity.attackEntityFrom(ModDamageSource.radiation, 2F); + + if(entity instanceof EntityLivingBase) + ContaminationUtil.contaminate((EntityLivingBase)entity, HazardType.RADIATION, ContaminationType.CREATIVE, 1F); + } + + @Override + public void updateTick(World world, int x, int y, int z, Random rand) { + + super.updateTick(world, x, y, z, rand); + + if(!world.isRemote && rand.nextInt(10) == 0 && world.getBlock(x, y - 1, z) != this) { + + if(rand.nextInt(3) == 0) + world.setBlock(x, y, z, ModBlocks.block_corium); + else + world.setBlock(x, y, z, ModBlocks.block_corium_cobble); + } + } + + @Override + @SideOnly(Side.CLIENT) + public int getRenderBlockPass() { + return 0; + } + + @Override + public boolean isReplaceable(IBlockAccess world, int x, int y, int z) { + return false; + } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachinePWRController.java b/src/main/java/com/hbm/blocks/machine/MachinePWRController.java index 1f2580451..e40163c91 100644 --- a/src/main/java/com/hbm/blocks/machine/MachinePWRController.java +++ b/src/main/java/com/hbm/blocks/machine/MachinePWRController.java @@ -94,7 +94,7 @@ public class MachinePWRController extends BlockContainer implements ITooltipProv private static HashMap fuelRods = new HashMap(); private static HashMap sources = new HashMap(); private static boolean errored; - private static final int maxSize = 1024; + private static final int maxSize = 4096; public void assemble(World world, int x, int y, int z, EntityPlayer player) { assembly.clear(); @@ -107,7 +107,15 @@ public class MachinePWRController extends BlockContainer implements ITooltipProv errored = false; floodFill(world, x + dir.offsetX, y, z + dir.offsetZ, player); - if(fuelRods.size() == 0 || sources.size() == 0) errored = true; + if(fuelRods.size() == 0){ + sendError(world, x, y, z, "Fuel rods required", player); + errored = true; + } + + if(sources.size() == 0) { + sendError(world, x, y, z, "Neutron sources required", player); + errored = true; + } TileEntityPWRController controller = (TileEntityPWRController) world.getTileEntity(x, y, z); diff --git a/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java b/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java index 15cda441f..c07a22bd8 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java +++ b/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java @@ -177,7 +177,7 @@ public abstract class EntityThrowableNT extends Entity implements IProjectile { Vec3 pos = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); Vec3 nextPos = Vec3.createVectorHelper(this.posX + this.motionX * motionMult(), this.posY + this.motionY * motionMult(), this.posZ + this.motionZ * motionMult()); MovingObjectPosition mop = null; - if(!this.isSpectral()) mop = this.worldObj.rayTraceBlocks(pos, nextPos); + if(!this.isSpectral()) mop = this.worldObj.func_147447_a(pos, nextPos, false, true, false); pos = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); nextPos = Vec3.createVectorHelper(this.posX + this.motionX * motionMult(), this.posY + this.motionY * motionMult(), this.posZ + this.motionZ * motionMult()); diff --git a/src/main/java/com/hbm/extprop/HbmPlayerProps.java b/src/main/java/com/hbm/extprop/HbmPlayerProps.java index 63ee89a86..46d4c4a95 100644 --- a/src/main/java/com/hbm/extprop/HbmPlayerProps.java +++ b/src/main/java/com/hbm/extprop/HbmPlayerProps.java @@ -18,6 +18,8 @@ public class HbmPlayerProps implements IExtendedEntityProperties { public static final String key = "NTM_EXT_PLAYER"; public EntityPlayer player; + public boolean hasReceivedBook = false; + public boolean enableHUD = true; public boolean enableBackpack = true; @@ -150,6 +152,7 @@ public class HbmPlayerProps implements IExtendedEntityProperties { NBTTagCompound props = new NBTTagCompound(); + props.setBoolean("hasReceivedBook", hasReceivedBook); props.setFloat("shield", shield); props.setFloat("maxShield", maxShield); props.setBoolean("enableBackpack", enableBackpack); @@ -164,6 +167,7 @@ public class HbmPlayerProps implements IExtendedEntityProperties { NBTTagCompound props = (NBTTagCompound) nbt.getTag("HbmPlayerProps"); if(props != null) { + this.hasReceivedBook = props.getBoolean("hasReceivedBook"); this.shield = props.getFloat("shield"); this.maxShield = props.getFloat("maxShield"); this.enableBackpack = props.getBoolean("enableBackpack"); diff --git a/src/main/java/com/hbm/inventory/gui/GUIPWR.java b/src/main/java/com/hbm/inventory/gui/GUIPWR.java index b8888ec02..1b88a5084 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIPWR.java +++ b/src/main/java/com/hbm/inventory/gui/GUIPWR.java @@ -9,8 +9,6 @@ import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; -import com.hbm.render.util.GaugeUtil; -import com.hbm.render.util.GaugeUtil.Gauge; import com.hbm.tileentity.machine.TileEntityPWRController; import net.minecraft.client.Minecraft; @@ -18,6 +16,7 @@ import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.GuiTextField; import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; @@ -25,6 +24,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.MathHelper; import net.minecraft.util.ResourceLocation; +import net.minecraft.util.Vec3; public class GUIPWR extends GuiInfoContainer { @@ -118,8 +118,11 @@ public class GUIPWR extends GuiInfoContainer { int c = (int) (controller.rodLevel * 52 / 100); drawTexturedModalRect(guiLeft + 53, guiTop + 54, 176, 40, c, 2); - GaugeUtil.renderGauge(Gauge.ROUND_SMALL, guiLeft + 115, guiTop + 31, this.zLevel, (double) controller.coreHeat / (double) controller.coreHeatCapacity); - GaugeUtil.renderGauge(Gauge.ROUND_SMALL, guiLeft + 151, guiTop + 31, this.zLevel, (double) controller.hullHeat / (double) controller.hullHeatCapacity); + //GaugeUtil.renderGauge(Gauge.ROUND_SMALL, guiLeft + 115, guiTop + 31, this.zLevel, (double) controller.coreHeat / (double) controller.coreHeatCapacity); + //GaugeUtil.renderGauge(Gauge.ROUND_SMALL, guiLeft + 151, guiTop + 31, this.zLevel, (double) controller.hullHeat / (double) controller.hullHeatCapacity); + + drawGauge(guiLeft + 124, guiTop + 40, (double) controller.coreHeat / (double) controller.coreHeatCapacity); + drawGauge(guiLeft + 160, guiTop + 40, (double) controller.hullHeat / (double) controller.hullHeatCapacity); if(controller.typeLoaded != -1 && controller.amountLoaded > 0) { ItemStack display = new ItemStack(ModItems.pwr_fuel, 1, controller.typeLoaded); @@ -135,6 +138,37 @@ public class GUIPWR extends GuiInfoContainer { this.field.drawTextBox(); } + + private void drawGauge(int x, int y, double d) { + GL11.glDisable(GL11.GL_TEXTURE_2D); + + d = MathHelper.clamp_double(d, 0, 1); + + float angle = (float) Math.toRadians(-d * 270 - 45); + Vec3 tip = Vec3.createVectorHelper(0, 5, 0); + Vec3 left = Vec3.createVectorHelper(1, -2, 0); + Vec3 right = Vec3.createVectorHelper(-1, -2, 0); + + tip.rotateAroundZ(angle); + left.rotateAroundZ(angle); + right.rotateAroundZ(angle); + + Tessellator tess = Tessellator.instance; + tess.startDrawing(GL11.GL_TRIANGLES); + tess.setColorOpaque_F(0F, 0F, 0F); + double mult = 1.5; + tess.addVertex(x + tip.xCoord * mult, y + tip.yCoord * mult, this.zLevel); + tess.addVertex(x + left.xCoord * mult, y + left.yCoord * mult, this.zLevel); + tess.addVertex(x + right.xCoord * mult, y + right.yCoord * mult, this.zLevel); + tess.setColorOpaque_F(0.75F, 0F, 0F); + tess.addVertex(x + tip.xCoord, y + tip.yCoord, this.zLevel); + tess.addVertex(x + left.xCoord, y + left.yCoord, this.zLevel); + tess.addVertex(x + right.xCoord, y + right.yCoord, this.zLevel); + tess.draw(); + + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glEnable(GL11.GL_TEXTURE_2D); + } @Override protected void mouseClicked(int mouseX, int mouseY, int i) { diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index 7197df144..9b99a5f7a 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -176,10 +176,13 @@ public class ModEventHandler { if(MobConfig.enableDucks && event.player instanceof EntityPlayerMP && !event.player.getEntityData().getCompoundTag(EntityPlayer.PERSISTED_NBT_TAG).getBoolean("hasDucked")) PacketDispatcher.wrapper.sendTo(new PlayerInformPacket("Press O to Duck!", MainRegistry.proxy.ID_DUCK, 30_000), (EntityPlayerMP) event.player); - if(event.player instanceof EntityPlayerMP && !event.player.getEntityData().getCompoundTag(EntityPlayer.PERSISTED_NBT_TAG).getBoolean("hasGuide")) { + + HbmPlayerProps props = HbmPlayerProps.getData(event.player); + + if(!props.hasReceivedBook) { event.player.inventory.addItemStackToInventory(new ItemStack(ModItems.book_guide, 1, BookType.STARTER.ordinal())); event.player.inventoryContainer.detectAndSendChanges(); - event.player.getEntityData().getCompoundTag(EntityPlayer.PERSISTED_NBT_TAG).setBoolean("hasGuide", true); + props.hasReceivedBook = true; } } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java index 44fd69cf8..113669ab2 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java @@ -297,7 +297,7 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG double coolingEff = (double) this.channelCount / (double) this.rodCount * 0.1D; //10% cooling if numbers match if(coolingEff > 1D) coolingEff = 1D; - int heatToUse = (int) (this.hullHeat * coolingEff * trait.getEfficiency(HeatingType.PWR)); + int heatToUse = Math.min(this.hullHeat, (int) (this.hullHeat * coolingEff * trait.getEfficiency(HeatingType.PWR))); HeatingStep step = trait.getFirstStep(); int coolCycles = tanks[0].getFill() / step.amountReq; int hotCycles = (tanks[1].getMaxFill() - tanks[1].getFill()) / step.amountProduced; diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java index 9ec5ccd87..1b1f607d4 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java @@ -22,7 +22,6 @@ import li.cil.oc.api.machine.Context; import li.cil.oc.api.network.SimpleComponent; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -305,12 +304,7 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM if(corium) { for(int i = h; i >= 0; i--) { - - if(i <= h + 1 - reduce) { - worldObj.setBlock(xCoord, yCoord + i, zCoord, ModBlocks.corium_block); - } else { - worldObj.setBlock(xCoord, yCoord + i, zCoord, Blocks.air); - } + worldObj.setBlock(xCoord, yCoord + i, zCoord, ModBlocks.corium_block, 5, 3); worldObj.markBlockForUpdate(xCoord, yCoord + i, zCoord); } diff --git a/src/main/resources/assets/hbm/textures/gui/reactors/gui_pwr.png b/src/main/resources/assets/hbm/textures/gui/reactors/gui_pwr.png index 6910df3ee915d9ac2b1ce46a822bff5d4b139ab1..a90a45e0cb94c64fb42c70e5978afcfd6f8ac843 100644 GIT binary patch literal 5847 zcmc&&cTm&Mw*Q7CbO-{{6cSVfL5d>1g^qwUk*<`ebWnOgLO>8jDgOK+DugB|NE7LV zKm?^XAwZ-fV1Q7i2?TiY-kEpb+<7x^=Kk|`zVqGl{qFABb3S|aoIU%*!px9^RfrV; z0FJ9hdR71cqLUzinUP*O1r*$+SCBxRtJci)@__mFV*ubwx~ivb9hR{&;qNnc7sIqJ zD`ryt_R4m>Q~i(Xe7pE}EKVo_gSUS=r&Fm17Ieynca;kzTN?GKx%DT%)W@8f8JV&4 zmTJ!SO5M1fdujx7M!vxbpNLe@W~>lC3L6n`{c)rj`d6jnn=h-k)jr*};@*wP)BBdI zXLU|LVG4#kH=Jb%yQ9@anb}NcsK0(u1P1>6V?&PeUCM?cqKKi%)MrL$W`%Cszj*P2 zJUZIEv!hsDQ?v1f$GoSU?BoUS^jOLH_*< zzy51nDwS2nx$zl+Ko~A35E9)p(XCJC&WgG2t876pWc7h@3Z@I2%c(N-2^$Y(8dP`F zmHdAUr; zv@Q-BC|4ra?qc{~z1`iWeIsG7DVVG~BU@WrM9+)T(&(32*;|t5Y?|JF{i@&eY4D5| z4WxM(#2TlQ^A_e37|3JTWL2KpDglkolm>t>SJYd|X6R3f8b&imamXPPec;RcRNs7{ z{2>2nt_L;P=I76!>W5I+8=G>wXHLL^f$ZukA0ZPaiwx(l!L*{!7ks5<%QvOqjx8LY)f+$hq3BISVWid z<<|yhrIn2bpAJua+~xrMs=U_g>MZhfaa#bl9-^P^SOA+Bat>=Fh5VNEZYMAp)iNR! za^{838I4DI*70YCL`l$g6tZe^Yksr2y9Su9Yz=+UD{akqhBAvpiRztz;EZZjsx=E*Xxw@mk7b?s4wsrkk7C_mc?4(|z zOU=n?yA)C;EcJij6+(1-TP~Pnb<>M0hEn-w5`KotV>< zwXaUIR72qvSFO#!R=((oXo%V~m1IfDXV{Y_Bf z*Pc3EVMA5sk1!WKs7mit@~w}FzQIMWv8})~=>(u;B6d1X2$JLxKgnt|v)=#qS;$IL znecAqZ2Sqw$VG#^1E5(MhLE89wmIb{;c%(!Vrj-fwuqW4AUwwhsGYkGB+gU;bNNzSTpR?6u5j<;B%J(M zTl;u%(X%0?Cj_VJ)3XzfW0j=P~|jey)A0vuibOWsTTxx>u^1AmF1$|axNQf}f2$4r)!6}zutcr4P7c|4e+*-3AXtNa@wrp!yv z8B+$pSU|!U&x2$*ns$^0YpErg7LtU7GGa%S2=KA< zyl=|76{+F5A~2G~0!($xukU9y6%5nD0fCVi;wuab0tkktKoB_!XKFC9q^;|(E~Z+@ z=Xpk@r!2U_0rb`OyA{ToS+L@VHqPcQoDd_H74c`$h`1enf{z64n!fMu+lp!Gi^m2x z=vYbo9lN)Oz7sNhfZp!v>cV;|`*q*T1Lgu%9?Vi@ycq8^SMp3q}t#4ln$6T-WX zdYvoX>%RXhx=_pD$JKVc7-G1q*~Go}(Ql*9#ibszv`3RijHF{~`Uw(maCLHVLD`4_ z!&c>1rQyi~z`*F$Ppzv9fq~(&0+T>~xvB7y z2_5%wiJ^|x_n3Jm3$`U?l1`ENB>MjS6JfW7$TU#D1&Ku))tNJdT~df;p#7i+<tGW$$8IHN4ofACI114m}tc!{=TXBXng}#`CY@9qNoQe>ht$hh=LMD zNF3T*NTMacpQ{LS2@T~}@*5}O)IwE7n(ogsdQ}OT;Z*0T6tz1yl((99I@0%Sw0ZPT z99JV4Bp3j`BR>(ZI}JH}4O87H*N(mXM>syD#a^MdbY<%{Ef`48=ROb68bp{)SG|NW z6CsfL_-}qk;0&gIt3vB_GAdb^6`-r~Wp&kWYL_Y45FsvNKSiYDr`t5A=p0cLSF-Cn z7I8nk5kqlzKCsP#WhZk!0~dG%9`qb=EtP!>g$_7!AJ=~xF!uku9ERMCb3S6nXFZ$! z?w+->0G3GW3R}1Js#YvyyUZNq=<8nWtECwzlq>OrUypi4&+<#m8TzrT{zLEq&L6p_ zQpxbG=w|dRHWGNV(E&-yqCxOkiL=ww*})mFCgc7xD_GG!)jYr*b~_Sm$E7ARsAO#K z;II@n?ps2gQ;+O5Z)5!;G#WR$8VNd=Jr)V7FGZdfJ3GcSJy(5;?z4=N#Z!zJ7G*K) zg*iwsMNtJ_7xid^0sA-Fkmy@uIg!QNrBTn^ie76dDUC>ae04k6a4UZ-Z{fTaR5`GU zX8b#=REmqoW8}yNg!G5n1??pI%rMb|si;CGF^trxY9B92Bl4OhDxLm^;GWxC?liDd9RKJn-W<(UqAI=YIotA8yEPJT+0O(LBk!m?%3h%ml8PA>r$f9ETB) zNEF!JEGwkJMqA5PT(|`DGk*NkcTM2ENce)N&xC;CewyZr0JQeH>Z3Mz6ltU{q{VCG z=An&Ku7nP+epfRiz_z)`Rdqa8=)3KW5vPJ^-7pTi5R5SOb)fqAeV_>OZL;R+Fipn% zse~@|M!&C%b6Ilp@r?4HHi7ZZ+n3vKUygn-jM$&xE3uZeH>>=%*f%Ea^K;ZWs+&{m zm+nIp9NYIrbn=6#tdULD+PiGQhuA?3>`#j;y`}kH(d9C&sD92q*C;rtRTIb+K*0ga zXXP-gM5{q5jQI3sSc^erxs=@VQ)j<3$$80lD9e~(=poMXS)vo1DAzXeB=?;=u>L^~ zYA?|uw`#_FQUi>&jl0mUvp4MM5B;SQ5_w>bS-PqUU*2-&7OoE5?JO#5R9(LK?4r30 zs9R&LWwk2v%^RUncWM$`E2*dF8bB;N9v0hWi3|}r-flchi=P=MxY0N};H3=68U}w} z>$2c7-|{2;4@?wVmbQxO3qIPwgiPL0RXVOYn03_*Ejzu>*%25CM%LWlmSC@7F^tDO zoO!ZY_d>qf0dSRGCpZWu^hDAghG;*1@2onASw7s}>02uU^ZShR%O_CGX5=m4$eNos zTh4S=O~+*r5H4b!6tmC2?uZZv2CNW=fX$d2=-UTqVhIRuFhA~D>%;`iu9mi{;bZm5 z-k*0z4o%dS>1@6!0Rl?F?CH10-1PJLXaj;sOKg_%axFYA@cm5S5W_-sO$6BiWcdLK zP4@Rakx&2o%U2r7bqEkzo8MZo)f0FH{?YX$pl7L0Vr9O*0{epJd-e}a=vZI?6qkU_ zO!B5(SVkYNLB3xMN%o3-D>o8z_~?*PSd@9Q?s{$5C==I~Dor9OZtV5+rdr=t)HU8d zT(f&N;3Bi`>JSg7ILP%<%zDY3z=YzqKuC0r5Stc;rYxd%G|m-pd!}OZWzqh4LU-Nu zg72Jw<*287V4%Epml3X*0=Fjj;+lJE&;Vv3c%q1HZ1oa+IqZcQZ{LJeNH1>u5)&Yr z-Xpp9K-1VcoR^*;D`%;piC)|vE~}}X@-WD-yLF3^lcGUF@38hw{PKV4w6J~0VKPD! zauIBsT_?bqsdnPuim+RT-HG@o=dK7Ti?*NL=P&$|Ix3vi3-L_Pxy&4f0P$fGUOmu+ zef+w_0(u8gHA$0k{YOe(WLrkx z!})d>M<)dtyyS_aBu{2!bs2p`f%W3Pwsm0T;42Xl}Po;q~ux|BT)Htp00$l)s zvI!+6rHwgwWKvbxcN0U*Z}5YC&)uLTOg=;Lws{K+BfY=+dK~X+)Q;A@!?x@6SVMov z-@kw6k)6T@G#$DrqA$jEl6UVPhP$g4iu<3%U5&`}|1<0~A&MO}ODv!I&A)6Myxh*Q ze3fI`j&&gRFz9^pyA)F?a;cNPZ!rk{0i^x%{_V?&2BQbj0DWZgc<8afU!Djtu@v=! zvlm!WT0vL6l#Sj0w@g{R?++TPiVBZfK^7yNi`lD^xDHd+p1-jM4oF>w+Z{Jm5AX3} z+rhgb#cUqIeHgavaP#U1W}~~B%yIx1dU_Lod8Zx{eK^6m>ib=`cIc*HRp$%>v7%%# z@tm;}rSyk=ZOFWBd8A{rUtJObr@FdAvix3x3N>jRozikq!;!YzEH9W8*pQGG1aaNT zGE|gdGhz2~CM6w2pEpiN`}g!zQv$w5%xCK5`rb{!d3-Q!4liC_U40jS&}bpS{JO-s zW%5|KAlk*Y^(YB~UePvOBo9^a$o=b1<+AX*SykNY*RP`oS(?8-<&P^YWJ|bD!`zuq znAM5c_@O`33{?=Wb82nu3R+%JV?`wVK*Hsel;YjW+k;*uQG;?TjklZQ*fQxpYhW=x z4bZ#P3Ltq=bnX60WU!jfrMQt(towJ)k>EV+5xj5U6`Pt$Yl09*Ku?Al>vAz=zb|}d zdFR#9{;jpatk8Xt8Uf(3lN`S$)S{R*Z}5$S?A*h-J{kG~@^?c?bLGI&OyODKi@U(q08b|8_oe1Hnz5)(~TO+p%6D!SEIIuv;Cc&tbhv|Ey!#i zoglQz{3S>y%ZwZXSsHm*Rs(r<91?NMyvUJFw7?Ry1L9J-Jw%=IZq3@;wke}37*8|( zG4ZVr^SHckzN^?QIuzd$LT~D`X$yE6dlCHL_$PA&KmUp|V7_w8%DP-*-cnAw@_? z_O*}<25B0`;GN#(_x|4ZdjIyYftxjR0Bs~D#3ElY99 z%;bFcs(M_vkB@;6^ij=)&U9b2ZmaHwRA-HtC7d<<744)ONYJICC+VI^c_k#qC-S-< z!;gX={d`$YHn12rdo<#OslNR&$e1-Q{uzqlhH4htu^-vTQ>u}U=LfSjDq#M#51$9V>$0Yf*=HEDa_xB)FM zFSmDe?4F($5Q*Ho?)da&ZZ3QOP(f*zR7xK!D{HRZy9#~rQ)r69{p$6Nj1#LQ)he27 zwkE}`HhyaAs*kVlcuHfVvgXm=k{ORElCyiF15scq1-a0q*il_?^)kD4q4{^cA91$Y zg^--cry%}(;QHOWoT5=QCEwZR=z-@7=%ApcgGY>}^&%)I?L11ENYUWX5ZcWR91sxj zwltlmT5|Nq;}=g-d@Pe#Ko(tW_j-8lauxn?$?_Ax@xH*g-)pr)RTo*&fv?eq=l(K zUc|XaJ}NVcj5Td-N$oE3FVE)ZrK4s<06-Jp@a6ZuSpLufP<-zLbAU_UV-u zhegs)jI64?-TnPPkBIu=-BQtT&^R>pZbc`!w$b%)##jQ`d3hZyhe^0 z`Vt>)n!vds0g~HmgaSZR`sKwuz7y)X#dBNTmo*d_`%9#1Da@-E5;to*vP z4Uv}s6dWQ4X|%S}c`F6wcGY3$TyIilQ$)0get$cd6pz}wIOy?cOwguZk)aJx3kC~a zw434#Yt8G1Q?G;s^)<)$$`yQVEFJiw!!@3dD0Cqjs^u-~KEniZqufeVhbP+85v(`fJ2+XT&gn zGU}n?gjKb!onQv?d`W^VIN|T*HZ*C7ORy*Km8qt z5bYVv>Q@I!Ejq`k>QYjo z687cSKo72HU&j2eE1bY-AQtqlCZP1XP)G&JNN=lsm%Se_o;;bP4?J@WPFx4BEyme| zJAc~6qkVQ7^J8*u=`00MMWUxtMiw4ifV(1sxH>s9B!$*U*V&WDiBT$*eh69D_S=r$OTGaW`Q5 zGj!vA-LqABWIOg^hI6Oj+C7XA$^_sAMoX>R$rCyVq*1{FA5#DvH}r96NL3;_-!SEO z8(*q%p`waP>?&76EY!74(82^*!1L2Mk#ZOzkk?oF$@0I|@wt+IcAHVuAU{T}9U;)tuy?N-Xf6leSvzZR zLP~(89Ece!y9Ecwcjk5c7T;b+$FJ^^OS?FcXh^p!SaEPb3G30*+lwJ5>S$||5^w41 z)KYhEsg847rJN%3Gj8YH6R4(rA3Ii zJ7s>y!(bxGpwuT1=!xX!xsyYTo{a~vqy)h7`YH?~9`CmL+W9j>)Zez$Lr-|bZB9!9 z%P)RlKV4BvOU~T%BB3hM*Oy(n15)4Jf2WFjU4Fr5;d}QuKon| zbid_Jkx2&q;?${(@^dKHVJl+jC=pR8z7nz-7$}UDKq836RN^{-tAYSEm69NUq800= zopReLGd;L?ttAMy6EKvuPTM^>8E_dObuCA`Yia$Mn!{~1&cA@R%fJ$P6u!BlgCDZhd0@CQ$hf)b( zv421N=WDyCTRR`|bw&5h2$p3}ADhpWA#hM4M+R=}#Fl2BF^F)UQTCX>q`yA~ryDvk zhwWE>0H=*VxA?GH3;V*2eFily^5)VMf()lgz(g^>IQ1lqoj{h=p*;LAHQW0OmDDdds5hsE>H(;;F+zl?x1%6pXF#;P zJbbz5c0Bu;q3SZZD9%o)3^v^c{m!d^U`!LcD;f=%sB-GAbi@mY5P~)Z`d7}ei)wEW zR~^TQ=_uBw>Z)wLpBu7O*+XAHu5mXvM1UW@6$G#*11Gc9*Z?)jZISFANub#5stMR5 z3~(MRhD&;qDZ6%n?CLH(cC#GB6`L#B_mpQif3Q zP*8YbYs>{&Cr;Vm6;cb-XOmxSB!sto4V9eqZyLadb@)!)G&!_$MBoP5;UHw0_rc=> z4zKEwAcoIjT*oRpE(+Coci|{NNJ?S6FKL7sj1WB_nJ z!z1u!syZ)+0oTw#?R7TfdZ-7g*1A>6?lCl)Prc9%QHseKC)j}LSx1iXfU2?wN(Nns zXE#v10Kl!iIm)mWPb`Ijva!X-5bykT50N|MX|oCmH9Rrk+e4ivr_-3PY0k@e-S82j0|jW$SW{$HuMa$n6jXdC+tvIl$uz$ zX_nWyBYM{8clvwv7n`6E8_~LCG;sEAYwRnnL40IM{P#P|Q%>-x@@y16XnY@t*unvTE@~FB(BbZ z#XIyp>E*?8exd){+@;m^%BrB8xuoB-PniOme-)75qjGxm+o}*(R~^93%37P3W#|V- z&aCqhTSk)?2mYzPnD2yG!nt=>*i@sGW_J!FZ|y5@iKwS6I~o$BCqB}xT>N>R>v?X& zGuO?HdmA2@4;_D)Aa)#(x`~aa-bEffiM@(-+{c9ccy-`(=%eAV`KG+_&G~AxKfC{S z@w~iNX4lEUf;m&~a;II#7SYZ@ss-gDBQ9V_i{iQ&B`^V+jXFLxv_4W z*xCZrarxL5*|nD-0*miVfF^lUdO1^iwe~A~?@{YL>G9iJYE=y2+!uwTh}MUV9{i3` zn@ZFO!;zohX29h)MC^b;YKxp=)iXhkxl*;16q-V0p&9;ajT{hn)}#$q3ef=C8& zJml{M;`Nfyfc~lRU^HO1@pfI+BZxt&E?=P+cr*8K;?4$%#q z&5gC{T6VXfUZ2lFBB!N*;+VbxT*T62Rn2{&`i{fr1iyl8#JI-7sa1SHaQ}b;VRql( zM&jw`Ku;RQImIC*Ir;ZSz48HNtM}*6bHE}Zx6PA)GdKT6m{&da*U4_R`n7P$Kdurw zEW1c<6KM3s%Z*3zJ->EL3p(11E*6Xm)zP|Dp1poNL%XY!*J>4nLG;}f=0??rlEqBx zVd3FU_vc}|El-q-!hlG&y`XmZ)Ux)GbC%`q8lUKF=*A%;xFhoTlB?8MOSV|9#=f~7 z8fdx3j@9ATPj&3dY-o`fHclPNXQLp3iFyTVNqif}E{|LzjX!^M`ZW0f`XGp&#i> zcvBca9d|i?k(aKY>Y&^8Rp&NmK|t}m|E4pb&;yzte8^PD+Yo+c7_n;Bep3b{@ubhG z9nfh!LNz;fDduThMV|#-5M&ybj&^2fj;`i<2C58k5!5@Q$%^o z_Td3#Df-Zyg8NG@BCKx32@}NdeYS7HR2nO`*-+oswoyKFxpH=BL5`54v7hC=4$Kad z-qx;RJ+xyvB zp_*1wM^(L52uUvLW?yX3!pCP(;qy!mQu5~BBZ8X2;{U5n8xU&5;jBg_I)1vTmm2OA zwAIuMk3QnaEcA`-msrFy^V4_~Gff#?Q^q*KaF`g9LbD3F6|DX9JC3A0%l>gunrNny z_0-PJuC}QumR=WV+y9=`#Fb&Sa*wNoO*fvlu`yNeuafot`*)ASknfo{m+=dcGgr3N zZIVx#0{ZMBD^Kl~=~V)^yLW59?$C<^r!!6aTdsYw{-be~Q=0WOOSzz`@8WXblU5O( zpbdT%RaGs8UfJJ3ypZD2uOYv~eq`O0?5_#Zz`#Jr@{msVw~QA5f=i-{Pt0FFucr(c zxYh=ov{eLgs4eCW8Qi6CA16G`d;H%Qa|9uT?dRP0Zl4=2Jny?iue%r4X8$;?%9+?J zRISPlq(OeqYsGh+a$OKTl2LibGG2IA<^9}8z)3aw$e)xe^g zUUO3-*6ZVb0w4v5$IS*(#2DRB)=93etuY`=>_uq2+t?Mg?j59ftu8#C_k$aQo&oj( zbH-Wa-t~`A)G`i}f4{^R!b|4B%QW?$Ofa-eWGU%^S{tCaHlL2dZi3>4{BE`fVxOrD zQUK%Nf@ebsj-RAKbYDynL5^=do=DU*TE5S**^PFbPPLFHnSsCA@)icxmaD6D)6HYc zw`d~czKY0so{ojU08 z5OK65(~PltH~lwf-rO^bW~Z(pLO4faVq#I;R{c~3hszGhd*^YD3M z_=X!;tgeec;+z4q z8mPVi;$^+Yslil2CWS~)IhrA9%`Hj-mhrW8KbFO%>KaxtgGC2zogzRQ+h!3lX$YT1 zI^WSdu*gIo>a%vi=B5V^Vaob7cVK-C4ErJ0%qq~sVb=^2K%CS0nUn zbSTLQv$ShwKBr~`h$+a*0+WZUT`i|M26ir~^$16QUtI+O^ok002z=JF`OjyJTI398 z$tZKjIQQ`J%tmNsg@+cj+JoUDBOO|~<#CYAQBw6C@|&P~sIMzn%pcWiJ8yh)aGbq4 zfsO>!)7cns$z0(C^sb~>8l)oWXI2jHw%d2?ACy6=hYbR!J;_HNTRUEFQlI}1^8c|4 z|F@w;hPtVBD8y-iTj)=%(8BX2yl^!2-?L#742yh6CrIyK6#m2BCDN_d z(;R7{cMZi>x4Hh=;xs$h-_G^fQk;KMEBHx3vy9>&x`eWW5DK7w+37zpw}R{Gv$;h2 zTGh#Oah7*dtqm&1q9g^p=0JmSsF63v%SpQbd4$6WE&8YOMNw(eQc_{IoZ>PUfgkWC qRSS}lTzmz3o163hMGO6L3<`F Date: Thu, 24 Aug 2023 22:04:11 +0200 Subject: [PATCH 259/432] fixes, flixes, adjustments https://cdn.discordapp.com/attachments/979089797404565504/1144343034222350386/image.png --- .../com/hbm/blocks/generic/BlockBobble.java | 2 +- .../entity/projectile/EntityBulletBaseNT.java | 4 ++-- .../inventory/recipes/ChemplantRecipes.java | 10 +++++----- .../machine/TileEntityPWRController.java | 2 +- src/main/resources/assets/hbm/lang/de_DE.lang | 1 + src/main/resources/assets/hbm/lang/en_US.lang | 1 + .../hbm/textures/models/weapons/congolake.png | Bin 3514 -> 10856 bytes 7 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/hbm/blocks/generic/BlockBobble.java b/src/main/java/com/hbm/blocks/generic/BlockBobble.java index 66e1c5bc9..1ec769c03 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockBobble.java +++ b/src/main/java/com/hbm/blocks/generic/BlockBobble.java @@ -192,7 +192,7 @@ public class BlockBobble extends BlockContainer implements IGUIProvider { DRILLGON( "Drillgon200", "Drillgon200", "1.12 Port", null, false, ScrapType.CPU_LOGIC), CIRNO( "Cirno", "Cirno", "the only multi layered skin i had", "No brain. Head empty.", true, ScrapType.BOARD_BLANK), MICROWAVE( "Microwave", "Microwave", "OC compat", "they call me the food heater", true, ScrapType.BRIDGE_BIOS), - PEEP( "Peep", "LePeeperSauvage", "Coilgun model", "Fluffy ears can't hide in ash, nor snow.", true, ScrapType.CPU_CLOCK); + PEEP( "Peep", "LePeeperSauvage", "Coilgun, Leadburster and Congo Lake models, BDCL QC", "Fluffy ears can't hide in ash, nor snow.", true, ScrapType.CPU_CLOCK); public String name; //the title of the tooltip public String label; //the name engraved in the socket diff --git a/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java b/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java index a1a3a0961..1a34a8823 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java +++ b/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java @@ -216,10 +216,10 @@ public class EntityBulletBaseNT extends EntityThrowableInterp implements IBullet return; } - if(this.config.bntUpdate != null) this.config.bntUpdate.behaveUpdate(this); - if(this.ticksExisted > config.maxAge) this.setDead(); } + + if(this.config.bntUpdate != null) this.config.bntUpdate.behaveUpdate(this); this.prevPosX = posX; this.prevPosY = posY; diff --git a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java index c83df558c..f3639536b 100644 --- a/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ChemplantRecipes.java @@ -402,12 +402,12 @@ public class ChemplantRecipes extends SerializableRecipe { .inputFluids(new FluidStack(Fluids.CHLOROCALCITE_CLEANED, 500), new FluidStack(Fluids.SULFURIC_ACID, 8_000)) .outputFluids(new FluidStack(Fluids.POTASSIUM_CHLORIDE, 250), new FluidStack(Fluids.CALCIUM_CHLORIDE, 250))); recipes.add(new ChemRecipe(102, "THORIUM_SALT", 60) - .inputFluids(new FluidStack(Fluids.THORIUM_SALT_DEPLETED, 8_000)) - .inputItems(new OreDictStack(TH232.dust(), 1)) - .outputFluids(new FluidStack(Fluids.THORIUM_SALT, 8_000)) + .inputFluids(new FluidStack(Fluids.THORIUM_SALT_DEPLETED, 16_000)) + .inputItems(new OreDictStack(TH232.nugget(), 2)) + .outputFluids(new FluidStack(Fluids.THORIUM_SALT, 16_000)) .outputItems( - new ItemStack(ModItems.nugget_u233, 4, 10), - new ItemStack(ModItems.nuclear_waste_tiny, 5, 10))); + new ItemStack(ModItems.nugget_u233, 1), + new ItemStack(ModItems.nuclear_waste_tiny, 1))); } public static void registerFuelProcessing() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java index 113669ab2..2e92c1ad9 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java @@ -212,7 +212,7 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG } /* CORE COOLING */ - double coreCoolingApproachNum = getXOverE((double) this.heatexCount / (double) this.rodCount, 2) / 2D; + double coreCoolingApproachNum = getXOverE((double) this.heatexCount * 5 / (double) this.rodCount, 2) / 2D; int averageCoreHeat = (this.coreHeat + this.hullHeat) / 2; this.coreHeat -= (coreHeat - averageCoreHeat) * coreCoolingApproachNum; this.hullHeat -= (hullHeat - averageCoreHeat) * coreCoolingApproachNum; diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index de6d9f1ea..960cb5e02 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -260,6 +260,7 @@ chem.SULFURIC_ACID=Schwefelsäureherstellung chem.TATB=TATB-Synthese chem.TEL=TEL mischen chem.TEST=Test +chem.THORIUM_SALT=Thoriumsalz-Anreicherung chem.TNT=TNT-Synthese chem.UF6=Uranhexafluoridproduktion chem.VIT_GAS=Gas-Atommüllvitrifizierung diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 0af7fe0da..e0c251500 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -611,6 +611,7 @@ chem.SULFURIC_ACID=Sulfuric Acid Production chem.TATB=TATB Synthesis chem.TEL=TEL Mixing chem.TEST=Test +chem.THORIUM_SALT=Thorium Salt Enrichment chem.TNT=TNT Synthesis chem.UF6=Uranium Hexafluoride Production chem.VIT_GAS=Gaseous Nuclear Waste Vitrification diff --git a/src/main/resources/assets/hbm/textures/models/weapons/congolake.png b/src/main/resources/assets/hbm/textures/models/weapons/congolake.png index 04b2d2e8b8c62d1c827d84d33313cd00071f90ea..2d611e459a87a6f8706911613f55227313d70b1e 100644 GIT binary patch literal 10856 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 From 65587e7db73677d8f025b3718a3df76eaf6c085e Mon Sep 17 00:00:00 2001 From: Bob Date: Fri, 25 Aug 2023 21:48:45 +0200 Subject: [PATCH 260/432] PWR breeder rods, rod recycling, creative stirling --- changelog | 4 + src/main/java/com/hbm/blocks/ModBlocks.java | 5 +- .../hbm/blocks/machine/MachineStirling.java | 33 ++++---- .../hbm/inventory/gui/GUIMachinePress.java | 7 +- .../java/com/hbm/inventory/gui/GUIPWR.java | 11 ++- .../inventory/recipes/CentrifugeRecipes.java | 79 +++++++++++++++++- .../com/hbm/items/machine/ItemPWRFuel.java | 34 ++++---- .../java/com/hbm/main/ResourceManager.java | 1 + .../hbm/render/tileentity/RenderStirling.java | 7 +- .../java/com/hbm/render/util/GaugeUtil.java | 34 ++++++++ .../machine/TileEntityPWRController.java | 4 +- .../machine/TileEntityStirling.java | 12 ++- src/main/resources/assets/hbm/lang/de_DE.lang | 2 + src/main/resources/assets/hbm/lang/en_US.lang | 47 +++++++++++ .../assets/hbm/textures/gui/gui_press.png | Bin 4875 -> 2102 bytes .../textures/items/pwr_fuel.bfb_am_mix.png | Bin 0 -> 449 bytes .../hbm/textures/items/pwr_fuel.bfb_pu241.png | Bin 0 -> 438 bytes .../models/machines/stirling_creative.png | Bin 0 -> 3877 bytes 18 files changed, 233 insertions(+), 47 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/items/pwr_fuel.bfb_am_mix.png create mode 100644 src/main/resources/assets/hbm/textures/items/pwr_fuel.bfb_pu241.png create mode 100644 src/main/resources/assets/hbm/textures/models/machines/stirling_creative.png diff --git a/changelog b/changelog index 3b57b26e4..9862d630b 100644 --- a/changelog +++ b/changelog @@ -14,6 +14,10 @@ * Valid PWR coolant * Has a high flux multiplication rate, boosting fuels * After cooling, the depleted salt has to be reprocessed using a chemical plant +* Creative stirling engine + * A stirling engine with 100% efficiency and no heat cap + * Still has the 10% delta-T heat transfer rate as the other stirlings + * Great for quickly benchmarking reactors without needing to set up a turbine cycle ## Changed * Bedrock fluorite ore now yields actual ore instead of fluorite directly diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index ecd81f4fd..72da33957 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -675,6 +675,7 @@ public class ModBlocks { public static Block furnace_combination; public static Block machine_stirling; public static Block machine_stirling_steel; + public static Block machine_stirling_creative; public static Block machine_sawmill; public static Block machine_crucible; public static Block machine_boiler; @@ -1835,6 +1836,7 @@ public class ModBlocks { furnace_combination = new FurnaceCombination().setBlockName("furnace_combination").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_light_alt"); machine_stirling = new MachineStirling().setBlockName("machine_stirling").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_stirling_steel = new MachineStirling().setBlockName("machine_stirling_steel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_stirling_creative = new MachineStirling().setBlockName("machine_stirling_creative").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_sawmill = new MachineSawmill().setBlockName("machine_sawmill").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_crucible = new MachineCrucible().setBlockName("machine_crucible").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire"); machine_boiler = new MachineHeatBoiler().setBlockName("machine_boiler").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_copper"); @@ -2056,7 +2058,7 @@ public class ModBlocks { pwr_casing = new BlockGenericPWR(Material.iron).setBlockName("pwr_casing").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_casing"); pwr_port = new BlockGenericPWR(Material.iron).setBlockName("pwr_port").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_port"); pwr_controller = new MachinePWRController(Material.iron).setBlockName("pwr_controller").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_casing_blank"); - pwr_block = new BlockPWR(Material.iron).setBlockName("pwr_block").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_block"); + pwr_block = new BlockPWR(Material.iron).setBlockName("pwr_block").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":pwr_block"); reactor_element = new BlockPillar(Material.iron, RefStrings.MODID + ":reactor_element_top", RefStrings.MODID + ":reactor_element_base").setBlockName("reactor_element").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":reactor_element_side"); reactor_control = new BlockPillar(Material.iron, RefStrings.MODID + ":reactor_control_top").setBlockName("reactor_control").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":reactor_control_side"); @@ -3099,6 +3101,7 @@ public class ModBlocks { register(furnace_combination); register(machine_stirling); register(machine_stirling_steel); + register(machine_stirling_creative); register(machine_sawmill); register(machine_crucible); register(machine_boiler); diff --git a/src/main/java/com/hbm/blocks/machine/MachineStirling.java b/src/main/java/com/hbm/blocks/machine/MachineStirling.java index 800b7f361..3cdfde1e7 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineStirling.java +++ b/src/main/java/com/hbm/blocks/machine/MachineStirling.java @@ -7,6 +7,7 @@ import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.IBlockMulti; import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.ITooltipProvider; +import com.hbm.blocks.ModBlocks; import com.hbm.items.ModItems; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityStirling; @@ -156,26 +157,28 @@ public class MachineStirling extends BlockDummyable implements ILookOverlay, ITo return; TileEntityStirling stirling = (TileEntityStirling) te; - int maxHeat = stirling.maxHeat(); List text = new ArrayList(); text.add(stirling.heat + "TU/t"); text.add((stirling.hasCog ? stirling.powerBuffer : 0) + "HE/t"); - double percent = (double) stirling.heat / (double) maxHeat; - int color = ((int) (0xFF - 0xFF * percent)) << 16 | ((int)(0xFF * percent) << 8); - - if(percent > 1D) - color = 0xff0000; - - text.add("&[" + color + "&]" + ((stirling.heat * 1000 / maxHeat) / 10D) + "%"); - - if(stirling.heat > maxHeat) { - text.add("&[" + (BobMathUtil.getBlink() ? 0xff0000 : 0xffff00) + "&]! ! ! OVERSPEED ! ! !"); - } - - if(!stirling.hasCog) { - text.add("&[" + 0xff0000 + "&]Gear missing!"); + if(this != ModBlocks.machine_stirling_creative) { + int maxHeat = stirling.maxHeat(); + double percent = (double) stirling.heat / (double) maxHeat; + int color = ((int) (0xFF - 0xFF * percent)) << 16 | ((int)(0xFF * percent) << 8); + + if(percent > 1D) + color = 0xff0000; + + text.add("&[" + color + "&]" + ((stirling.heat * 1000 / maxHeat) / 10D) + "%"); + + if(stirling.heat > maxHeat) { + text.add("&[" + (BobMathUtil.getBlink() ? 0xff0000 : 0xffff00) + "&]! ! ! OVERSPEED ! ! !"); + } + + if(!stirling.hasCog) { + text.add("&[" + 0xff0000 + "&]Gear missing!"); + } } ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachinePress.java b/src/main/java/com/hbm/inventory/gui/GUIMachinePress.java index 19d1e30fb..63e98642b 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachinePress.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachinePress.java @@ -4,6 +4,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerMachinePress; import com.hbm.lib.RefStrings; +import com.hbm.render.util.GaugeUtil; import com.hbm.tileentity.machine.TileEntityMachinePress; import net.minecraft.client.Minecraft; @@ -46,14 +47,14 @@ public class GUIMachinePress extends GuiInfoContainer { Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - int i = press.speed * 12 / press.maxSpeed; - drawTexturedModalRect(guiLeft + 25, guiTop + 16, 176, 14 + 18 * i, 18, 18); - if(press.burnTime >= 20) { this.drawTexturedModalRect(guiLeft + 27, guiTop + 36, 176, 0, 14, 14); } int k = (int) (press.renderPress * 16 / press.maxPress); this.drawTexturedModalRect(guiLeft + 79, guiTop + 35, 194, 0, 18, k); + + double i = (double) press.speed / (double) press.maxSpeed; + GaugeUtil.drawSmoothGauge(guiLeft + 34, guiTop + 25, this.zLevel, i, 5, 2, 1, 0x7f0000); } } diff --git a/src/main/java/com/hbm/inventory/gui/GUIPWR.java b/src/main/java/com/hbm/inventory/gui/GUIPWR.java index 1b88a5084..d8549a9e4 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIPWR.java +++ b/src/main/java/com/hbm/inventory/gui/GUIPWR.java @@ -9,6 +9,7 @@ import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.render.util.GaugeUtil; import com.hbm.tileentity.machine.TileEntityPWRController; import net.minecraft.client.Minecraft; @@ -16,7 +17,6 @@ import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.GuiTextField; import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; @@ -24,7 +24,6 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.MathHelper; import net.minecraft.util.ResourceLocation; -import net.minecraft.util.Vec3; public class GUIPWR extends GuiInfoContainer { @@ -121,8 +120,8 @@ public class GUIPWR extends GuiInfoContainer { //GaugeUtil.renderGauge(Gauge.ROUND_SMALL, guiLeft + 115, guiTop + 31, this.zLevel, (double) controller.coreHeat / (double) controller.coreHeatCapacity); //GaugeUtil.renderGauge(Gauge.ROUND_SMALL, guiLeft + 151, guiTop + 31, this.zLevel, (double) controller.hullHeat / (double) controller.hullHeatCapacity); - drawGauge(guiLeft + 124, guiTop + 40, (double) controller.coreHeat / (double) controller.coreHeatCapacity); - drawGauge(guiLeft + 160, guiTop + 40, (double) controller.hullHeat / (double) controller.hullHeatCapacity); + GaugeUtil.drawSmoothGauge(guiLeft + 124, guiTop + 40, this.zLevel, (double) controller.coreHeat / (double) controller.coreHeatCapacity, 5, 2, 1, 0x7F0000); + GaugeUtil.drawSmoothGauge(guiLeft + 160, guiTop + 40, this.zLevel, (double) controller.hullHeat / (double) controller.hullHeatCapacity, 5, 2, 1, 0x7F0000); if(controller.typeLoaded != -1 && controller.amountLoaded > 0) { ItemStack display = new ItemStack(ModItems.pwr_fuel, 1, controller.typeLoaded); @@ -139,7 +138,7 @@ public class GUIPWR extends GuiInfoContainer { this.field.drawTextBox(); } - private void drawGauge(int x, int y, double d) { + /*private void drawGauge(int x, int y, double d) { GL11.glDisable(GL11.GL_TEXTURE_2D); d = MathHelper.clamp_double(d, 0, 1); @@ -168,7 +167,7 @@ public class GUIPWR extends GuiInfoContainer { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glEnable(GL11.GL_TEXTURE_2D); - } + }*/ @Override protected void mouseClicked(int mouseX, int mouseY, int i) { diff --git a/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java b/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java index 4f2bfe922..ae66e0670 100644 --- a/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java @@ -22,6 +22,7 @@ import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.recipes.loader.SerializableRecipe; import com.hbm.items.ItemEnums.EnumAshType; import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemPWRFuel.EnumPWRFuel; import com.hbm.items.machine.ItemWatzPellet.EnumWatzType; import com.hbm.items.special.ItemBedrockOre.EnumBedrockOre; import com.hbm.items.special.ItemByproduct.EnumByproduct; @@ -188,6 +189,82 @@ public class CentrifugeRecipes extends SerializableRecipe { new ItemStack(ModItems.nugget_polonium, 12), new ItemStack(ModItems.nugget_pu238, 6), new ItemStack(ModItems.nuclear_waste, 2) }); + + recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.MEU)), new ItemStack[] { + new ItemStack(ModItems.nugget_u238, 3), + new ItemStack(ModItems.nugget_plutonium, 4), + new ItemStack(ModItems.nugget_technetium, 2), + new ItemStack(ModItems.nuclear_waste_tiny, 3) }); + recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.HEU233)), new ItemStack[] { + new ItemStack(ModItems.nugget_u235, 3), + new ItemStack(ModItems.nugget_pu238, 3), + new ItemStack(ModItems.nugget_technetium, 1), + new ItemStack(ModItems.nuclear_waste_tiny, 5) }); + recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.HEU235)), new ItemStack[] { + new ItemStack(ModItems.nugget_neptunium, 3), + new ItemStack(ModItems.nugget_pu238, 3), + new ItemStack(ModItems.nugget_technetium, 1), + new ItemStack(ModItems.nuclear_waste_tiny, 5) }); + recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.MEN)), new ItemStack[] { + new ItemStack(ModItems.nugget_u238, 3), + new ItemStack(ModItems.nugget_pu239, 4), + new ItemStack(ModItems.nugget_technetium, 2), + new ItemStack(ModItems.nuclear_waste_tiny, 3) }); + recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.HEN237)), new ItemStack[] { + new ItemStack(ModItems.nugget_pu238, 2), + new ItemStack(ModItems.nugget_pu239, 4), + new ItemStack(ModItems.nugget_technetium, 1), + new ItemStack(ModItems.nuclear_waste_tiny, 5) }); + recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.MOX)), new ItemStack[] { + new ItemStack(ModItems.nugget_u238, 3), + new ItemStack(ModItems.nugget_pu240, 4), + new ItemStack(ModItems.nugget_technetium, 2), + new ItemStack(ModItems.nuclear_waste_tiny, 3) }); + recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.MEP)), new ItemStack[] { + new ItemStack(ModItems.nugget_lead, 2), + new ItemStack(ModItems.nugget_pu_mix, 4), + new ItemStack(ModItems.nugget_technetium, 2), + new ItemStack(ModItems.nuclear_waste_tiny, 3) }); + recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.HEP239)), new ItemStack[] { + new ItemStack(ModItems.nugget_pu_mix, 2), + new ItemStack(ModItems.nugget_pu240, 4), + new ItemStack(ModItems.nugget_technetium, 1), + new ItemStack(ModItems.nuclear_waste_tiny, 5) }); + recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.HEP241)), new ItemStack[] { + new ItemStack(ModItems.nugget_lead, 3), + new ItemStack(ModItems.nugget_zirconium, 2), + new ItemStack(ModItems.nugget_technetium, 1), + new ItemStack(ModItems.nuclear_waste_tiny, 6) }); + recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.MEA)), new ItemStack[] { + new ItemStack(ModItems.nugget_lead, 3), + new ItemStack(ModItems.nugget_zirconium, 2), + new ItemStack(ModItems.nugget_technetium, 1), + new ItemStack(ModItems.nuclear_waste_tiny, 6) }); + recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.HEA242)), new ItemStack[] { + new ItemStack(ModItems.nugget_lead, 3), + new ItemStack(ModItems.nugget_zirconium, 2), + new ItemStack(ModItems.nugget_technetium, 1), + new ItemStack(ModItems.nuclear_waste_tiny, 6) }); + recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.HES326)), new ItemStack[] { + new ItemStack(ModItems.nugget_solinium, 3), + new ItemStack(ModItems.nugget_lead, 2), + new ItemStack(ModItems.nugget_euphemium, 1), + new ItemStack(ModItems.nuclear_waste_tiny, 6) }); + recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.HES327)), new ItemStack[] { + new ItemStack(ModItems.nugget_australium, 4), + new ItemStack(ModItems.nugget_lead, 1), + new ItemStack(ModItems.nugget_euphemium, 1), + new ItemStack(ModItems.nuclear_waste_tiny, 6) }); + recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.BFB_AM_MIX)), new ItemStack[] { + new ItemStack(ModItems.nugget_am_mix, 4), + new ItemStack(ModItems.nugget_pu_mix, 1), + new ItemStack(ModItems.nugget_bismuth, 6), + new ItemStack(ModItems.nuclear_waste_tiny, 1) }); + recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.BFB_PU241)), new ItemStack[] { + new ItemStack(ModItems.nugget_pu241, 4), + new ItemStack(ModItems.nugget_pu_mix, 1), + new ItemStack(ModItems.nugget_bismuth, 6), + new ItemStack(ModItems.nuclear_waste_tiny, 1) }); ArrayList naquadriaNuggets = OreDictionary.getOres("nuggetNaquadria"); if(naquadriaNuggets.size() != 0) { @@ -452,7 +529,7 @@ public class CentrifugeRecipes extends SerializableRecipe { recipes.put(new ComparableStack(ModItems.crystal_iron), new ItemStack[] { new ItemStack(ModItems.powder_iron, 2), new ItemStack(ModItems.powder_iron, 2), new ItemStack(ModItems.powder_titanium, 1), new ItemStack(ModItems.powder_lithium_tiny, 1) }); recipes.put(new ComparableStack(ModItems.crystal_gold), new ItemStack[] { new ItemStack(ModItems.powder_gold, 2), new ItemStack(ModItems.powder_gold, 2), new ItemStack(ModItems.ingot_mercury, 1), new ItemStack(ModItems.powder_lithium_tiny, 1) }); recipes.put(new ComparableStack(ModItems.crystal_redstone), new ItemStack[] { new ItemStack(Items.redstone, 3), new ItemStack(Items.redstone, 3), new ItemStack(Items.redstone, 3), new ItemStack(ModItems.ingot_mercury, 3) }); - recipes.put(new ComparableStack(ModItems.crystal_lapis), new ItemStack[] { new ItemStack(ModItems.powder_lapis, 4), new ItemStack(ModItems.powder_lapis, 4), new ItemStack(ModItems.powder_cobalt, 1), new ItemStack(ModItems.gem_sodalite, 1) }); + recipes.put(new ComparableStack(ModItems.crystal_lapis), new ItemStack[] { new ItemStack(ModItems.powder_lapis, 4), new ItemStack(ModItems.powder_lapis, 4), new ItemStack(ModItems.powder_cobalt, 1), new ItemStack(ModItems.gem_sodalite, 2) }); recipes.put(new ComparableStack(ModItems.crystal_diamond), new ItemStack[] { new ItemStack(ModItems.powder_diamond, 1), new ItemStack(ModItems.powder_diamond, 1), new ItemStack(ModItems.powder_diamond, 1), new ItemStack(ModItems.powder_diamond, 1) }); recipes.put(new ComparableStack(ModItems.crystal_uranium), new ItemStack[] { new ItemStack(ModItems.powder_uranium, 2), new ItemStack(ModItems.powder_uranium, 2), new ItemStack(ModItems.nugget_ra226, 2), new ItemStack(ModItems.powder_lithium_tiny, 1) }); recipes.put(new ComparableStack(ModItems.crystal_thorium), new ItemStack[] { new ItemStack(ModItems.powder_thorium, 2), new ItemStack(ModItems.powder_thorium, 2), new ItemStack(ModItems.powder_uranium, 1), new ItemStack(ModItems.nugget_ra226, 1) }); diff --git a/src/main/java/com/hbm/items/machine/ItemPWRFuel.java b/src/main/java/com/hbm/items/machine/ItemPWRFuel.java index d60aca579..db802776a 100644 --- a/src/main/java/com/hbm/items/machine/ItemPWRFuel.java +++ b/src/main/java/com/hbm/items/machine/ItemPWRFuel.java @@ -19,28 +19,34 @@ public class ItemPWRFuel extends ItemEnumMulti { } public static enum EnumPWRFuel { - MEU( 05.0D, new FunctionLogarithmic(25)), - HEU233( 07.5D, new FunctionSqrt(25)), - HEU235( 07.5D, new FunctionSqrt(25)), - MEN( 07.5D, new FunctionLogarithmic(25)), - HEN237( 07.5D, new FunctionSqrt(25)), - MOX( 07.5D, new FunctionLogarithmic(25)), - MEP( 07.5D, new FunctionLogarithmic(25)), - HEP239( 10.0D, new FunctionSqrt(25)), - HEP241( 10.0D, new FunctionSqrt(25)), - MEA( 07.5D, new FunctionLogarithmic(25)), - HEA242( 10.0D, new FunctionSqrt(25)), - HES326( 15.0D, new FunctionSqrt(25)), - HES327( 15.0D, new FunctionSqrt(25)); + MEU( 05.0D, new FunctionLogarithmic(20 * 30).withDiv(2_500)), + HEU233( 07.5D, new FunctionSqrt(25)), + HEU235( 07.5D, new FunctionSqrt(22.5)), + MEN( 07.5D, new FunctionLogarithmic(22.5 * 30).withDiv(2_500)), + HEN237( 07.5D, new FunctionSqrt(27.5)), + MOX( 07.5D, new FunctionLogarithmic(20 * 30).withDiv(2_500)), + MEP( 07.5D, new FunctionLogarithmic(22.5 * 30).withDiv(2_500)), + HEP239( 10.0D, new FunctionSqrt(22.5)), + HEP241( 10.0D, new FunctionSqrt(25)), + MEA( 07.5D, new FunctionLogarithmic(25 * 30).withDiv(2_500)), + HEA242( 10.0D, new FunctionSqrt(25)), + HES326( 12.5D, new FunctionSqrt(27.5)), + HES327( 12.5D, new FunctionSqrt(30)), + BFB_AM_MIX( 2.5D, new FunctionSqrt(15), 250_000_000), + BFB_PU241( 2.5D, new FunctionSqrt(15), 250_000_000); public double yield = 1_000_000_000; public double heatEmission; public Function function; - private EnumPWRFuel(double heatEmission, Function function) { + private EnumPWRFuel(double heatEmission, Function function, double yield) { this.heatEmission = heatEmission; this.function = function; } + + private EnumPWRFuel(double heatEmission, Function function) { + this(heatEmission, function, 1_000_000_000); + } } @Override diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 5959f4f48..fcda9054a 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -398,6 +398,7 @@ public class ResourceManager { //Heat Engines public static final ResourceLocation stirling_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/stirling.png"); public static final ResourceLocation stirling_steel_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/stirling_steel.png"); + public static final ResourceLocation stirling_creative_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/stirling_creative.png"); public static final ResourceLocation sawmill_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/sawmill.png"); public static final ResourceLocation crucible_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/crucible_heat.png"); public static final ResourceLocation boiler_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/boiler.png"); diff --git a/src/main/java/com/hbm/render/tileentity/RenderStirling.java b/src/main/java/com/hbm/render/tileentity/RenderStirling.java index d1544382d..3957f074e 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderStirling.java +++ b/src/main/java/com/hbm/render/tileentity/RenderStirling.java @@ -47,6 +47,8 @@ public class RenderStirling extends TileEntitySpecialRenderer implements IItemRe if(type == 0) bindTexture(ResourceManager.stirling_tex); + else if(type == 2) + bindTexture(ResourceManager.stirling_creative_tex); else bindTexture(ResourceManager.stirling_steel_tex); @@ -86,7 +88,8 @@ public class RenderStirling extends TileEntitySpecialRenderer implements IItemRe public Item[] getItemsForRenderer() { return new Item[] { Item.getItemFromBlock(ModBlocks.machine_stirling), - Item.getItemFromBlock(ModBlocks.machine_stirling_steel) + Item.getItemFromBlock(ModBlocks.machine_stirling_steel), + Item.getItemFromBlock(ModBlocks.machine_stirling_creative) }; } @@ -100,7 +103,7 @@ public class RenderStirling extends TileEntitySpecialRenderer implements IItemRe public void renderCommonWithStack(ItemStack item) { GL11.glRotatef(90, 0F, 1F, 0F); boolean cog = item.getItemDamage() != 1; - RenderStirling.this.renderCommon(cog ? System.currentTimeMillis() % 3600 * 0.1F : 0, cog, item.getItem() == Item.getItemFromBlock(ModBlocks.machine_stirling) ? 0 : 1); + RenderStirling.this.renderCommon(cog ? System.currentTimeMillis() % 3600 * 0.1F : 0, cog, item.getItem() == Item.getItemFromBlock(ModBlocks.machine_stirling) ? 0 : item.getItem() == Item.getItemFromBlock(ModBlocks.machine_stirling_creative) ? 2 : 1); }}; } diff --git a/src/main/java/com/hbm/render/util/GaugeUtil.java b/src/main/java/com/hbm/render/util/GaugeUtil.java index e31455bac..751edabdf 100644 --- a/src/main/java/com/hbm/render/util/GaugeUtil.java +++ b/src/main/java/com/hbm/render/util/GaugeUtil.java @@ -1,10 +1,14 @@ package com.hbm.render.util; +import org.lwjgl.opengl.GL11; + import com.hbm.lib.RefStrings; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.Tessellator; +import net.minecraft.util.MathHelper; import net.minecraft.util.ResourceLocation; +import net.minecraft.util.Vec3; public class GaugeUtil { @@ -55,5 +59,35 @@ public class GaugeUtil { tess.addVertexWithUV(x, y, z, 0, frameOffset); tess.draw(); } + + public static void drawSmoothGauge(int x, int y, double z, double progress, double tipLength, double backLength, double backSide, int color) { + GL11.glDisable(GL11.GL_TEXTURE_2D); + + progress = MathHelper.clamp_double(progress, 0, 1); + + float angle = (float) Math.toRadians(-progress * 270 - 45); + Vec3 tip = Vec3.createVectorHelper(0, tipLength, 0); + Vec3 left = Vec3.createVectorHelper(backSide, -backLength, 0); + Vec3 right = Vec3.createVectorHelper(-backSide, -backLength, 0); + tip.rotateAroundZ(angle); + left.rotateAroundZ(angle); + right.rotateAroundZ(angle); + + Tessellator tess = Tessellator.instance; + tess.startDrawing(GL11.GL_TRIANGLES); + tess.setColorOpaque_F(0F, 0F, 0F); + double mult = 1.5; + tess.addVertex(x + tip.xCoord * mult, y + tip.yCoord * mult, z); + tess.addVertex(x + left.xCoord * mult, y + left.yCoord * mult, z); + tess.addVertex(x + right.xCoord * mult, y + right.yCoord * mult, z); + tess.setColorOpaque_I(color); + tess.addVertex(x + tip.xCoord, y + tip.yCoord, z); + tess.addVertex(x + left.xCoord, y + left.yCoord, z); + tess.addVertex(x + right.xCoord, y + right.yCoord, z); + tess.draw(); + + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glEnable(GL11.GL_TEXTURE_2D); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java index 2e92c1ad9..0b488f113 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java @@ -131,13 +131,13 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG connections = connectionsDouble / 2; connectionsControlled = connectionsControlledDouble / 2; - System.out.println("Finalized nuclear reactor!"); + /*System.out.println("Finalized nuclear reactor!"); System.out.println("Rods: " + rodCount); System.out.println("Connections: " + connections); System.out.println("Controlled connections: " + connectionsControlled); System.out.println("Heatex: " + heatexCount); System.out.println("Channels: " + channelCount); - System.out.println("Sources: " + sourceCount); + System.out.println("Sources: " + sourceCount);*/ } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityStirling.java b/src/main/java/com/hbm/tileentity/machine/TileEntityStirling.java index 19ecdf379..fc2560845 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityStirling.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityStirling.java @@ -48,12 +48,12 @@ public class TileEntityStirling extends TileEntityLoadedBase implements INBTPack if(hasCog) { tryPullHeat(); - this.powerBuffer = (long) (this.heat * this.efficiency); + this.powerBuffer = (long) (this.heat * (this.isCreative() ? 1 : this.efficiency)); if(warnCooldown > 0) warnCooldown--; - if(heat > maxHeat()) { + if(heat > maxHeat() && !isCreative()) { this.overspeed++; @@ -109,6 +109,8 @@ public class TileEntityStirling extends TileEntityLoadedBase implements INBTPack float momentum = powerBuffer * 50F / ((float) maxHeat()); + if(this.isCreative()) momentum = Math.min(momentum, 45F); + this.lastSpin = this.spin; this.spin += momentum; @@ -120,13 +122,17 @@ public class TileEntityStirling extends TileEntityLoadedBase implements INBTPack } public int getGeatMeta() { - return this.getBlockType() == ModBlocks.machine_stirling ? 0 : 1; + return this.getBlockType() == ModBlocks.machine_stirling ? 0 : this.getBlockType() == ModBlocks.machine_stirling_creative ? 2 : 1; } public int maxHeat() { return this.getBlockType() == ModBlocks.machine_stirling ? 300 : 1500; } + public boolean isCreative() { + return this.getBlockType() == ModBlocks.machine_stirling_creative; + } + protected DirPos[] getConPos() { return new DirPos[] { new DirPos(xCoord + 2, yCoord, zCoord, Library.POS_X), diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 960cb5e02..25ba97821 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -4078,6 +4078,8 @@ tile.machine_steam_engine.name=Dampfmaschine tile.machine_steam_engine.desc=Effizienz: 85%% tile.machine_stirling.name=Stirlingmotor tile.machine_stirling.desc=Erzeugt Energie aus Wärme. Benötigt externe Hitzequelle.$Wärmestransferrate: T*0.1 TU/t$Maximalaufnahme: 300 TU/t$Effizienz: 50%% +tile.machine_stirling_creative.name=Kreativer Stirlingmotor +tile.machine_stirling_creative.desc=Erzeugt Energie aus Wärme. Benötigt externe Hitzequelle.$Wärmestransferrate: T*0.1 TU/t$Keine Maximalaufnahme/t$Effizienz: 100%% tile.machine_stirling_steel.name=Schwerer Stirlingmotor tile.machine_stirling_steel.desc=Erzeugt Energie aus Wärme. Benötigt externe Hitzequelle.$Verwendet ein schwereres Zahnrad und verträgt höhere Temparaturen.$Wärmestransferrate: T*0.1 TU/t$Maximalaufnahme: 1500 TU/t$Effizienz: 50%% tile.machine_storage_drum.name=Atommüll-Lagertrommel diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index e0c251500..87e424890 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -3611,6 +3611,51 @@ item.primer_buckshot.name=Buckshot Primer (x12) item.protection_charm.name=Charm of Protection item.prototype_kit.name=Prototype Kit item.pudding.name=Pudding +item.pwr_fuel.bfb_am_mix.name=Fuel Grade Americium PWR ZFB Rod +item.pwr_fuel.bfb_pu241.name=Plutonium-241 PWR ZFB Rod +item.pwr_fuel.hea242.name=HEA-242 PWR Fuel Rod +item.pwr_fuel.hen237.name=HEN-237 PWR Fuel Rod +item.pwr_fuel.hep239.name=HEP-239 PWR Fuel Rod +item.pwr_fuel.hep241.name=HEP-241 PWR Fuel Rod +item.pwr_fuel.hes326.name=HES-326 PWR Fuel Rod +item.pwr_fuel.hes327.name=HES-327 PWR Fuel Rod +item.pwr_fuel.heu233.name=HEU-233 PWR Fuel Rod +item.pwr_fuel.heu235.name=HEU-235 PWR Fuel Rod +item.pwr_fuel.mea.name=MEA PWR Fuel Rod +item.pwr_fuel.men.name=MEN PWR Fuel Rod +item.pwr_fuel.mep.name=MEP PWR Fuel Rod +item.pwr_fuel.meu.name=MEU PWR Fuel Rod +item.pwr_fuel.mox.name=MOX PWR Fuel Rod +item.pwr_fuel_depleted.bfb_am_mix.name=Depleted Fuel Grade Americium PWR ZFB Rod +item.pwr_fuel_depleted.bfb_pu241.name=Depleted Plutonium-241 PWR ZFB Rod +item.pwr_fuel_depleted.hea242.name=Depleted HEA-242 PWR Fuel Rod +item.pwr_fuel_depleted.hen237.name=Depleted HEN-237 PWR Fuel Rod +item.pwr_fuel_depleted.hep239.name=Depleted HEP-239 PWR Fuel Rod +item.pwr_fuel_depleted.hep241.name=Depleted HEP-241 PWR Fuel Rod +item.pwr_fuel_depleted.hes326.name=Depleted HES-326 PWR Fuel Rod +item.pwr_fuel_depleted.hes327.name=Depleted HES-327 PWR Fuel Rod +item.pwr_fuel_depleted.heu233.name=Depleted HEU-233 PWR Fuel Rod +item.pwr_fuel_depleted.heu235.name=Depleted HEU-235 PWR Fuel Rod +item.pwr_fuel_depleted.mea.name=Depleted MEA PWR Fuel Rod +item.pwr_fuel_depleted.men.name=Depleted MEN PWR Fuel Rod +item.pwr_fuel_depleted.mep.name=Depleted MEP PWR Fuel Rod +item.pwr_fuel_depleted.meu.name=Depleted MEU PWR Fuel Rod +item.pwr_fuel_depleted.mox.name=Depleted MOX PWR Fuel Rod +item.pwr_fuel_hot.bfb_am_mix.name=Hot Fuel Grade Americium PWR ZFB Rod +item.pwr_fuel_hot.bfb_pu241.name=Hot Plutonium-241 PWR ZFB Rod +item.pwr_fuel_hot.hea242.name=Hot HEA-242 PWR Fuel Rod +item.pwr_fuel_hot.hen237.name=Hot HEN-237 PWR Fuel Rod +item.pwr_fuel_hot.hep239.name=Hot HEP-239 PWR Fuel Rod +item.pwr_fuel_hot.hep241.name=Hot HEP-241 PWR Fuel Rod +item.pwr_fuel_hot.hes326.name=Hot HES-326 PWR Fuel Rod +item.pwr_fuel_hot.hes327.name=Hot HES-327 PWR Fuel Rod +item.pwr_fuel_hot.heu233.name=Hot HEU-233 PWR Fuel Rod +item.pwr_fuel_hot.heu235.name=Hot HEU-235 PWR Fuel Rod +item.pwr_fuel_hot.mea.name=Hot MEA PWR Fuel Rod +item.pwr_fuel_hot.men.name=Hot MEN PWR Fuel Rod +item.pwr_fuel_hot.mep.name=Hot MEP PWR Fuel Rod +item.pwr_fuel_hot.meu.name=Hot MEU PWR Fuel Rod +item.pwr_fuel_hot.mox.name=Hot MOX PWR Fuel Rod item.quartz_plutonium.name=Plutonic Quartz item.radaway.name=RadAway item.radaway_flush.name=Elite RadAway @@ -5032,6 +5077,8 @@ tile.machine_steam_engine.name=Steam Engine tile.machine_steam_engine.desc=Efficiency: 85%% tile.machine_stirling.name=Stirling Engine tile.machine_stirling.desc=Turns heat into energy. Requires external heat source.$Heat transfer rate: T*0.1 TU/t$Max intake: 300 TU/t$Efficiency: 50%% +tile.machine_stirling_creative.name=Creative Stirling Engine +tile.machine_stirling_creative.desc=Turns heat into energy. Requires external heat source.$Heat transfer rate: T*0.1 TU/t$Infinite intake/t$Efficiency: 100%% tile.machine_stirling_steel.name=Heavy Stirling Engine tile.machine_stirling_steel.desc=Turns heat into energy. Requires external heat source.$Uses a much heavier gear to support higher temperatures.$Heat transfer rate: T*0.1 TU/t$Max intake: 1500 TU/t$Efficiency: 50%% tile.machine_storage_drum.name=Nuclear Waste Disposal Drum diff --git a/src/main/resources/assets/hbm/textures/gui/gui_press.png b/src/main/resources/assets/hbm/textures/gui/gui_press.png index 8c09adbe66983990eb89ef3693dd2d9ddb9c57d1..c1d48e76451b82913c370ba8b3525f9e63c80acb 100644 GIT binary patch literal 2102 zcmcIlSyYqP8a;`CG{{Y{j1py1so_FUsElQvF9Zq%87v_75~LU)41p3z(3KJa15{8{ zA}D20iii+U5C|ee!=y|yg~1e%Au=Ng!{2nRuDjZY-rJYEU%qqJIp5yj+56#KbHmz8 zBaR>d0Md>QHtqnxL`xWuln|Bk#L{3<5sR{N^pq5VEcp!`fP;KT8%xi)JU+L9pgf`^ zG3DCkPn}kNk`^d!=+bxFy)r0^wnQ^gBGjfWF~9*e%XF@4vqYL=;Ab{Yw{*N6n3Xp_ zRd7dSkpkJx@*HWg#skF#4q4fyDygWR_X)?S-rdNIlyRfwJR`lRXR;-Au)!w-P$8E< zT2B1vvb#*8Jlk+-S=7d0Fw&TBYsWNpDCJ)DecwkLGqdJbiJc#Mex}rO2?j4-JX%Su zygJx&ZkabhnoM6Bo^vrLZ<;X}j9G8yqd9DzXHscuZ2i&GvT$ZSKW=+rufurGh4i5& zZTN+gAdK7=cSC|xJQ&)#KG%B@k1tV zZ;1FftC^D2wu~(q8D@_;=CYiwJaBV#{b2uUwd1EG752Ol6#44Lju5m-0`%qABee#j zg8daf#qOM`&;HURgbu1gTLZUC4Z(YnA75FotPF zMT0G?X-hJBOAyHN$4{*~e69*gU-0Pkko{c){A|a?@H^y3dm z(u(xanG}rF)(~WBcmkAG_xn*ZdjI+DS;$y_(9ewghzbhcNx1Axmw^Q6O95}Y8W-_& zcj@6vHy_sMRLl&8lKL_G=i4T*`%cEBvB-^C7n|Lgy!abKQE~;Y!1=ARiTeh_QXQ zTcHx_A1YW|hN|U68<{s!S6C#>MW~(6@xMrW>gS-so)%gT7%WtdEV)1e*QR4W{*&I< zuiB@yhASTTaF7bze&1B*m(g%=?5f6I{MoyhAZXrez&u2pZ7P?fwK6Si&UrhCpbF6X zz>Bn4DY`njzrU=p-b7iqCPT9+dg}`+Uc6iU0NLl)GM%QisYxl5xLH?Uh1}~_Ca|4u zNW`qM-n)n#4r`>dNDZCIJL{AB4i8u4*$ad{r^WJy1f@-6**aIz;c+GiVfn7|RUnxJ zWDPH3PxT%uJkMxOWhfwa<-P7!KB0B=oH9Y;ijj8*Rkf^sQ>sD&Won!*Oc@-e)ZwPQ zEX`<}uxj7(5d9;SAC1-TV1o2&G#}SP(OPHoxAtQ<0`h!J`Eg3F);eDInbdMGtx%Tl z5@h&%4e23JST1%o@o($TOv7!Lvzb`Up~g`UG8NUaHxp_>uC8 z3j3;&^BckJ0eNF}Hym1cTuVzU2Rigiurph!ZXvu!?#+Bmbo7r=*Z(E>n(Eh;5lFmE z6Jz5@&L%6}f`2@x%Ui&$sE+c7fv683%ULgGw)8MQoig9< zTSRVR(I)eZvy`fuHcW^>QXNeuW9Ia})CNNNSdG{JHkpn;N>g(2^U+Ksq0L*IA`t}- z6s%|P<1gWX?)Fo*owx6CdgBr1;?D^EjY}pU^ew;Gy{B##Fw$f#Um{xq5*fm(lC`L; zzVqU_gTg#_!SgOFEUcK>J}B6KhTy@*GgIwy#jk793)?4#dTo!9ei}f>Ch>t_XA(&YF$(H2i2cJ++v3$#I!{Ot(Sd0Hf zt1y8uEz573;Bs*cVzEwpZ%J=&Q7^pf-CPBUM9L}5d)T@9YG&6^{4YoPt7+>aOsPJ5 zyDVb1wUM^1P3;)p&L&SOu9X}5R0ESHRZ2NB_iAHu}cT^JptDk=+`rT?fF?Z~I=Y=F4l#C>& zgKkm9ll@OFI!j{u=qE&uThDeWyNmHva*l_P7>(`C_`3=IL9r07C3>{3xt(}1F&$xQ zf`$DaIJ#(Z7k}0)jb0=Ip`N=nV|8Xvp53>$wq|7@_SpL1R9HGCnM(^3KcCM*iazQ8 c3)tEll+yON5vlF5vfl(8ZLv0wtpcz73L!X~8~^|S literal 4875 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/machines/stirling_creative.png b/src/main/resources/assets/hbm/textures/models/machines/stirling_creative.png new file mode 100644 index 0000000000000000000000000000000000000000..9ba16b6a329276bda09ce0f338dbce939afd6b4e GIT binary patch literal 3877 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 literal 0 HcmV?d00001 From f3c27c02e5453c648f3238d104ec6bf9475f7c81 Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Sat, 26 Aug 2023 03:47:34 -0500 Subject: [PATCH 261/432] More Opencomputers compatibility! :woo: --- .../tileentity/bomb/TileEntityLaunchPad.java | 11 --- .../bomb/TileEntityLaunchTable.java | 12 --- .../machine/TileEntityCoreEmitter.java | 12 --- .../machine/TileEntityCoreReceiver.java | 12 --- .../machine/TileEntityCoreStabilizer.java | 12 --- .../machine/TileEntityMachineRadar.java | 43 ++++++----- .../machine/TileEntityReactorControl.java | 74 ++++++++++++++++++- .../machine/rbmk/TileEntityCraneConsole.java | 9 +-- .../storage/TileEntityMachineBattery.java | 12 --- 9 files changed, 101 insertions(+), 96 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java index e69f71203..a0c0b82b2 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java @@ -278,17 +278,6 @@ public class TileEntityLaunchPad extends TileEntityLoadedBase implements ISidedI public String getComponentName() { return "launch_pad"; } - - @Callback - @Optional.Method(modid = "OpenComputers") - public Object[] getEnergyStored(Context context, Arguments args) { - return new Object[] {getPower(), "Consider switching to the main function 'getEnergyInfo', as this function is deprecated and will soon be removed."}; - } - @Callback - @Optional.Method(modid = "OpenComputers") - public Object[] getMaxEnergy(Context context, Arguments args) { - return new Object[] {getMaxPower(), "Consider switching to the main function 'getEnergyInfo', as this function is deprecated and will soon be removed."}; - } @Callback @Optional.Method(modid = "OpenComputers") diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java index fa1018dc7..1b1281ead 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java @@ -611,18 +611,6 @@ public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISide return "large_launch_pad"; } - @Callback - @Optional.Method(modid = "OpenComputers") - public Object[] getEnergyStored(Context context, Arguments args) { - return new Object[] {getPower(), "Consider switching to the main function 'getEnergyInfo', as this function is deprecated and will soon be removed."}; - } - - @Callback - @Optional.Method(modid = "OpenComputers") - public Object[] getMaxEnergy(Context context, Arguments args) { - return new Object[] {getMaxPower(), "Consider switching to the main function 'getEnergyInfo', as this function is deprecated and will soon be removed."}; - } - @Callback @Optional.Method(modid = "OpenComputers") public Object[] getEnergyInfo(Context context, Arguments args) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java index a3adb1bc1..d40fff7d8 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java @@ -279,18 +279,6 @@ public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEne return "dfc_emitter"; } - @Callback(direct = true, limit = 4) - @Optional.Method(modid = "OpenComputers") - public Object[] getEnergyStored(Context context, Arguments args) { - return new Object[] {getPower(), "Consider switching to the main function 'getEnergyInfo', as this function is deprecated and will soon be removed."}; - } - - @Callback(direct = true, limit = 4) - @Optional.Method(modid = "OpenComputers") - public Object[] getMaxEnergy(Context context, Arguments args) { - return new Object[] {getMaxPower(), "Consider switching to the main function 'getEnergyInfo', as this function is deprecated and will soon be removed."}; - } - @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getEnergyInfo(Context context, Arguments args) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java index 57fef61d5..4a9adbebc 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java @@ -191,18 +191,6 @@ public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEn return "dfc_receiver"; } - @Callback(direct = true, limit = 4) - @Optional.Method(modid = "OpenComputers") - public Object[] getInput(Context context, Arguments args) { - return new Object[] {joules, "Consider switching to the main function 'getEnergyInfo', as this function is deprecated and will soon be removed."}; - } - - @Callback(direct = true, limit = 4) - @Optional.Method(modid = "OpenComputers") - public Object[] getOutput(Context context, Arguments args) { - return new Object[] {getPower(), "Consider switching to the main function 'getEnergyInfo', as this function is deprecated and will soon be removed."}; - } - @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getEnergyInfo(Context context, Arguments args) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java index a60975ed3..74673c332 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java @@ -172,18 +172,6 @@ public class TileEntityCoreStabilizer extends TileEntityMachineBase implements I return "dfc_stabilizer"; } - @Callback(direct = true, limit = 4) - @Optional.Method(modid = "OpenComputers") - public Object[] getEnergyStored(Context context, Arguments args) { - return new Object[] {getPower(), "Consider switching to the main function 'getEnergyInfo', as this function is deprecated and will soon be removed."}; - } - - @Callback(direct = true, limit = 4) - @Optional.Method(modid = "OpenComputers") - public Object[] getMaxEnergy(Context context, Arguments args) { - return new Object[] {getMaxPower(), "Consider switching to the main function 'getEnergyInfo', as this function is deprecated and will soon be removed."}; - } - @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getEnergyInfo(Context context, Arguments args) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadar.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadar.java index d68ae05e9..074ce8f29 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadar.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadar.java @@ -298,32 +298,41 @@ public class TileEntityMachineRadar extends TileEntityTickingBase implements IEn return "ntm_radar"; } - @Callback + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") - public Object[] getPower(Context context, Arguments args) { - return new Object[] {power}; + public Object[] getEnergyInfo(Context context, Arguments args) { + return new Object[] {getPower(), getMaxPower()}; } - @Callback + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] isJammed(Context context, Arguments args) { return new Object[] {jammed}; } - @Callback + @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") - public Object[] getEntities(Context context, Arguments args) { - int index = args.checkInteger(0); - boolean raw = args.checkBoolean(1); - if(!raw && !jammed) { - Entity e = entList.get(index); - double a = (e.posX); - double b = (e.posY); - double c = (e.posZ); - boolean d = (e instanceof EntityPlayer); - return new Object[] {a, b, c, d}; - } else if (!jammed) { - return new Object[] {entList}; + public Object[] getEntities(Context context, Arguments args) { //fuck fuck fuck + if(!jammed) { + List list = new ArrayList(); + list.add(entList.size()); // small header of how many entities in the list + for (Entity e : entList) { + list.add(e.posX); // positions + list.add(e.posY); + list.add(e.posZ); + list.add(e.motionX); + list.add(e.motionY); + list.add(e.motionZ); + list.add(e.rotationYaw); // just do rotation so you can calculate DOT + list.add(Math.sqrt(Math.pow(e.posX - xCoord, 2) + Math.pow(e.posZ - zCoord, 2))); // distance + boolean player = e instanceof EntityPlayer; + list.add(player); // isPlayer boolean + if(!player) // missile tier + list.add(((IRadarDetectable) e).getTargetType().ordinal()); + else // player name (hopefully) + list.add(((EntityPlayer) e).getDisplayName()); + } + return new Object[] {list}; // long-ass list (like 9 entries per entity) } else { return new Object[] {"Radar jammed!"}; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorControl.java b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorControl.java index fb48aebab..c01045d7e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorControl.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorControl.java @@ -2,6 +2,7 @@ package com.hbm.tileentity.machine; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.machine.ReactorResearch; +import com.hbm.handler.CompatHandler; import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.container.ContainerReactorControl; import com.hbm.inventory.gui.GUIReactorControl; @@ -9,8 +10,13 @@ import com.hbm.items.ModItems; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; +import li.cil.oc.api.network.SimpleComponent; import net.minecraft.block.Block; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; @@ -23,7 +29,8 @@ import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.World; -public class TileEntityReactorControl extends TileEntityMachineBase implements IControlReceiver, IGUIProvider { +@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) +public class TileEntityReactorControl extends TileEntityMachineBase implements IControlReceiver, IGUIProvider, SimpleComponent { public TileEntityReactorControl() { super(1); @@ -101,9 +108,9 @@ public class TileEntityReactorControl extends TileEntityMachineBase implements I @Override public void updateEntity() { - + if(!worldObj.isRemote) { - + isLinked = establishLink(); if(isLinked) { @@ -244,6 +251,67 @@ public class TileEntityReactorControl extends TileEntityMachineBase implements I LOG } + // do some opencomputer stuff + @Override + public String getComponentName() { + return "research_reactor_control"; + } + + @Callback + @Optional.Method(modid = "OpenComputers") + public Object[] isLinked(Context context, Arguments args) { + return new Object[] {isLinked}; + } + + @Callback + @Optional.Method(modid = "OpenComputers") + public Object[] getReactor(Context context, Arguments args) { + return new Object[] {getDisplayData()}; + } + + @Callback + @Optional.Method(modid = "OpenComputers") + public Object[] setParams(Context context, Arguments args) { //i hate my life + int newFunction = args.checkInteger(0); + double newMaxheat = args.checkDouble(1); + double newMinheat = args.checkDouble(2); + double newMaxlevel = args.checkDouble(3)/100.0; + double newMinlevel = args.checkDouble(4)/100.0; + if (newFunction > 2) { //no more out of bounds for you (and yes there's integer values for functions, sue me) + newFunction = 0; + } else if (newFunction < 0) { + newFunction = 0; + } + if (newMaxheat < 0.0) { + newMaxheat = 0.0; + } + if (newMinheat < 0.0) { + newMinheat = 0.0; + } + if (newMaxlevel < 0.0) { + newMaxlevel = 0.0; + } else if (newMaxlevel > 1.0) { + newMaxlevel = 1.0; + } + if (newMinlevel < 0.0) { + newMinlevel = 0.0; + } else if (newMinlevel > 1.0) { + newMinlevel = 1.0; + } + function = RodFunction.values()[newFunction]; + heatUpper = newMaxheat; + heatLower = newMinheat; + levelUpper = newMaxlevel; + levelLower = newMinlevel; + return new Object[] {}; + } + + @Callback + @Optional.Method(modid = "OpenComputers") + public Object[] getParams(Context context, Arguments args) { + return new Object[] {function.ordinal(), heatUpper, heatLower, levelUpper, levelLower}; + } + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerReactorControl(player.inventory, this); diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityCraneConsole.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityCraneConsole.java index 344464db8..f6e81933f 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityCraneConsole.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityCraneConsole.java @@ -65,7 +65,7 @@ public class TileEntityCraneConsole extends TileEntity implements INBTPacketRece @Override public void updateEntity() { - + if(worldObj.isRemote) { lastTiltFront = tiltFront; lastTiltLeft = tiltLeft; @@ -342,9 +342,8 @@ public class TileEntityCraneConsole extends TileEntity implements INBTPacketRece @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] move(Context context, Arguments args) { - if(setUpCrane == true) { + if(setUpCrane) { String textbruh = args.checkString(0); - switch(textbruh) { case "up": tiltFront = 30; @@ -372,13 +371,13 @@ public class TileEntityCraneConsole extends TileEntity implements INBTPacketRece @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] load(Context context, Arguments args) { - if (setUpCrane == true) { + if (setUpCrane) { goesDown = true; return new Object[] {}; } return new Object[] {"Crane not found"}; } - + @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] getDepletion(Context context, Arguments args) { diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java index e14db7c8e..38371ad7f 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java @@ -395,18 +395,6 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I return "ntm_energy_storage"; //ok if someone else can figure out how to do this that'd be nice (change the component name based on the type of storage block) } - @Callback(direct = true, limit = 8) - @Optional.Method(modid = "OpenComputers") - public Object[] getEnergyStored(Context context, Arguments args) { //TODO for gamma: when ready remove these deprecated functions in all components - return new Object[] {getPower(), "Consider switching to the main function 'getEnergyInfo', as this function is deprecated and will soon be removed."}; - } - - @Callback(direct = true, limit = 8) - @Optional.Method(modid = "OpenComputers") - public Object[] getMaxEnergy(Context context, Arguments args) { - return new Object[] {getMaxPower(), "Consider switching to the main function 'getEnergyInfo', as this function is deprecated and will soon be removed."}; - } - @Callback(direct = true, limit = 8) @Optional.Method(modid = "OpenComputers") public Object[] getEnergyInfo(Context context, Arguments args) { From 93485afafe9277102e0564f6e303777e96de5d87 Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Sat, 26 Aug 2023 03:54:44 -0500 Subject: [PATCH 262/432] was testing something (forgot to remove an import) --- .../com/hbm/tileentity/machine/TileEntityReactorControl.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorControl.java b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorControl.java index c01045d7e..5cdb1990a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorControl.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorControl.java @@ -2,7 +2,6 @@ package com.hbm.tileentity.machine; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.machine.ReactorResearch; -import com.hbm.handler.CompatHandler; import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.container.ContainerReactorControl; import com.hbm.inventory.gui.GUIReactorControl; From dad189a24fe3c8756b4f02171be7e7f3ac876336 Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Sat, 26 Aug 2023 03:57:20 -0500 Subject: [PATCH 263/432] better component name --- .../com/hbm/tileentity/machine/TileEntityReactorControl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorControl.java b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorControl.java index 5cdb1990a..67c70eded 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorControl.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorControl.java @@ -253,7 +253,7 @@ public class TileEntityReactorControl extends TileEntityMachineBase implements I // do some opencomputer stuff @Override public String getComponentName() { - return "research_reactor_control"; + return "reactor_control"; } @Callback From a050ce51da6c34798f8a535b1b07eed8ffe326d5 Mon Sep 17 00:00:00 2001 From: MartinTheDragon Date: Sat, 26 Aug 2023 15:31:02 +0200 Subject: [PATCH 264/432] Make conveyor crane I/O sides configurable Right click with a screwdriver to change output direction, shift-right-click to change input direction. The ton of textures were made by 70k Co-authored-by: 70000hp <105080577+70000hp@users.noreply.github.com> --- .../hbm/blocks/network/BlockCraneBase.java | 196 +++++++++++++++++- .../com/hbm/blocks/network/CraneBoxer.java | 43 ++-- .../hbm/blocks/network/CraneExtractor.java | 44 +++- .../com/hbm/blocks/network/CraneGrabber.java | 36 ++-- .../com/hbm/blocks/network/CraneInserter.java | 48 ++--- .../com/hbm/blocks/network/CraneUnboxer.java | 58 ++++-- .../network/TileEntityCraneBase.java | 94 +++++++++ .../network/TileEntityCraneBoxer.java | 26 ++- .../network/TileEntityCraneExtractor.java | 29 ++- .../network/TileEntityCraneGrabber.java | 27 ++- .../network/TileEntityCraneInserter.java | 16 +- .../network/TileEntityCraneUnboxer.java | 16 +- .../crane_boxer_side_down_turn_left.png | Bin 0 -> 518 bytes .../crane_boxer_side_down_turn_right.png | Bin 0 -> 504 bytes .../crane_boxer_side_left_turn_down.png | Bin 0 -> 514 bytes .../blocks/crane_boxer_side_left_turn_up.png | Bin 0 -> 511 bytes .../crane_boxer_side_right_turn_down.png | Bin 0 -> 514 bytes .../blocks/crane_boxer_side_right_turn_up.png | Bin 0 -> 522 bytes .../blocks/crane_boxer_side_up_turn_left.png | Bin 0 -> 519 bytes .../blocks/crane_boxer_side_up_turn_right.png | Bin 0 -> 514 bytes .../textures/blocks/crane_boxer_top_left.png | Bin 0 -> 462 bytes .../textures/blocks/crane_boxer_top_right.png | Bin 0 -> 472 bytes .../crane_grabber_side_down_turn_left.png | Bin 0 -> 521 bytes .../crane_grabber_side_down_turn_right.png | Bin 0 -> 518 bytes .../crane_grabber_side_left_turn_down.png | Bin 0 -> 504 bytes .../crane_grabber_side_left_turn_up.png | Bin 0 -> 473 bytes .../crane_grabber_side_right_turn_down.png | Bin 0 -> 500 bytes .../crane_grabber_side_right_turn_up.png | Bin 0 -> 510 bytes .../crane_grabber_side_up_turn_left.png | Bin 0 -> 506 bytes .../crane_grabber_side_up_turn_right.png | Bin 0 -> 526 bytes .../blocks/crane_grabber_top_left.png | Bin 0 -> 768 bytes .../blocks/crane_grabber_top_right.png | Bin 0 -> 770 bytes .../assets/hbm/textures/blocks/crane_in.png | Bin 305 -> 252 bytes .../blocks/crane_in_side_down_turn_left.png | Bin 0 -> 496 bytes .../blocks/crane_in_side_down_turn_right.png | Bin 0 -> 524 bytes .../blocks/crane_in_side_left_turn_down.png | Bin 0 -> 524 bytes .../blocks/crane_in_side_left_turn_up.png | Bin 0 -> 490 bytes .../blocks/crane_in_side_right_turn_down.png | Bin 0 -> 530 bytes .../blocks/crane_in_side_right_turn_up.png | Bin 0 -> 508 bytes .../blocks/crane_in_side_up_turn_left.png | Bin 0 -> 507 bytes .../blocks/crane_in_side_up_turn_right.png | Bin 0 -> 526 bytes .../hbm/textures/blocks/crane_in_top_left.png | Bin 0 -> 776 bytes .../textures/blocks/crane_in_top_right.png | Bin 0 -> 772 bytes .../assets/hbm/textures/blocks/crane_out.png | Bin 252 -> 305 bytes .../blocks/crane_out_side_down_turn_left.png | Bin 0 -> 513 bytes .../blocks/crane_out_side_down_turn_right.png | Bin 0 -> 519 bytes .../blocks/crane_out_side_left_turn_down.png | Bin 0 -> 519 bytes .../blocks/crane_out_side_left_turn_up.png | Bin 0 -> 500 bytes .../blocks/crane_out_side_right_turn_down.png | Bin 0 -> 515 bytes .../blocks/crane_out_side_right_turn_up.png | Bin 0 -> 502 bytes .../blocks/crane_out_side_up_turn_left.png | Bin 0 -> 500 bytes .../blocks/crane_out_side_up_turn_right.png | Bin 0 -> 525 bytes .../textures/blocks/crane_out_top_left.png | Bin 0 -> 763 bytes .../textures/blocks/crane_out_top_right.png | Bin 0 -> 763 bytes .../hbm/textures/blocks/crane_side_in.png | Bin 358 -> 325 bytes .../hbm/textures/blocks/crane_side_out.png | Bin 325 -> 358 bytes .../crane_unboxer_side_down_turn_left.png | Bin 0 -> 488 bytes .../crane_unboxer_side_down_turn_right.png | Bin 0 -> 506 bytes .../crane_unboxer_side_left_turn_down.png | Bin 0 -> 507 bytes .../crane_unboxer_side_left_turn_up.png | Bin 0 -> 508 bytes .../crane_unboxer_side_right_turn_down.png | Bin 0 -> 516 bytes .../crane_unboxer_side_right_turn_up.png | Bin 0 -> 516 bytes .../crane_unboxer_side_up_turn_left.png | Bin 0 -> 491 bytes .../crane_unboxer_side_up_turn_right.png | Bin 0 -> 509 bytes .../blocks/crane_unboxer_top_left.png | Bin 0 -> 456 bytes .../blocks/crane_unboxer_top_right.png | Bin 0 -> 458 bytes 66 files changed, 473 insertions(+), 160 deletions(-) create mode 100644 src/main/java/com/hbm/tileentity/network/TileEntityCraneBase.java create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_boxer_side_down_turn_left.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_boxer_side_down_turn_right.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_boxer_side_left_turn_down.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_boxer_side_left_turn_up.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_boxer_side_right_turn_down.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_boxer_side_right_turn_up.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_boxer_side_up_turn_left.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_boxer_side_up_turn_right.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_boxer_top_left.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_boxer_top_right.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_grabber_side_down_turn_left.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_grabber_side_down_turn_right.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_grabber_side_left_turn_down.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_grabber_side_left_turn_up.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_grabber_side_right_turn_down.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_grabber_side_right_turn_up.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_grabber_side_up_turn_left.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_grabber_side_up_turn_right.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_grabber_top_left.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_grabber_top_right.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_in_side_down_turn_left.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_in_side_down_turn_right.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_in_side_left_turn_down.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_in_side_left_turn_up.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_in_side_right_turn_down.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_in_side_right_turn_up.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_in_side_up_turn_left.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_in_side_up_turn_right.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_in_top_left.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_in_top_right.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_out_side_down_turn_left.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_out_side_down_turn_right.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_out_side_left_turn_down.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_out_side_left_turn_up.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_out_side_right_turn_down.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_out_side_right_turn_up.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_out_side_up_turn_left.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_out_side_up_turn_right.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_out_top_left.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_out_top_right.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_unboxer_side_down_turn_left.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_unboxer_side_down_turn_right.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_unboxer_side_left_turn_down.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_unboxer_side_left_turn_up.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_unboxer_side_right_turn_down.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_unboxer_side_right_turn_up.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_unboxer_side_up_turn_left.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_unboxer_side_up_turn_right.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_unboxer_top_left.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_unboxer_top_right.png diff --git a/src/main/java/com/hbm/blocks/network/BlockCraneBase.java b/src/main/java/com/hbm/blocks/network/BlockCraneBase.java index 932381c24..3cdd1f8e5 100644 --- a/src/main/java/com/hbm/blocks/network/BlockCraneBase.java +++ b/src/main/java/com/hbm/blocks/network/BlockCraneBase.java @@ -1,11 +1,12 @@ package com.hbm.blocks.network; -import java.util.Random; - +import api.hbm.block.IToolable; import com.hbm.blocks.IBlockSideRotation; +import com.hbm.items.tool.ItemTooling; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; - +import com.hbm.tileentity.network.TileEntityCraneBase; +import com.hbm.util.ChatBuilder; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; @@ -21,11 +22,16 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public abstract class BlockCraneBase extends BlockContainer implements IBlockSideRotation { +import java.util.Random; + +public abstract class BlockCraneBase extends BlockContainer implements IBlockSideRotation, IToolable { @SideOnly(Side.CLIENT) protected IIcon iconSide; @SideOnly(Side.CLIENT) protected IIcon iconIn; @@ -37,10 +43,24 @@ public abstract class BlockCraneBase extends BlockContainer implements IBlockSid @SideOnly(Side.CLIENT) protected IIcon iconDirectionalUp; @SideOnly(Side.CLIENT) protected IIcon iconDirectionalDown; + @SideOnly(Side.CLIENT) protected IIcon iconDirectionalTurnLeft; + @SideOnly(Side.CLIENT) protected IIcon iconDirectionalTurnRight; + @SideOnly(Side.CLIENT) protected IIcon iconDirectionalSideLeftTurnUp; + @SideOnly(Side.CLIENT) protected IIcon iconDirectionalSideRightTurnUp; + @SideOnly(Side.CLIENT) protected IIcon iconDirectionalSideLeftTurnDown; + @SideOnly(Side.CLIENT) protected IIcon iconDirectionalSideRightTurnDown; + @SideOnly(Side.CLIENT) protected IIcon iconDirectionalSideUpTurnLeft; + @SideOnly(Side.CLIENT) protected IIcon iconDirectionalSideUpTurnRight; + @SideOnly(Side.CLIENT) protected IIcon iconDirectionalSideDownTurnLeft; + @SideOnly(Side.CLIENT) protected IIcon iconDirectionalSideDownTurnRight; + public BlockCraneBase(Material mat) { super(mat); } - + + @Override + public abstract TileEntityCraneBase createNewTileEntity(World p_149915_1_, int p_149915_2_); + @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconRegister) { @@ -54,7 +74,9 @@ public abstract class BlockCraneBase extends BlockContainer implements IBlockSid @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(world.isRemote) { + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof ItemTooling) { + return false; + } else if(world.isRemote) { return true; } else if(!player.isSneaking()) { FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); @@ -70,9 +92,149 @@ public abstract class BlockCraneBase extends BlockContainer implements IBlockSid world.setBlockMetadataWithNotify(x, y, z, l, 2); } + protected boolean hasReversedIO() { + return false; + } + + @Override + public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) { + if (tool != ToolType.SCREWDRIVER) return false; + + TileEntity te = world.getTileEntity(x, y, z); + if (!(te instanceof TileEntityCraneBase)) return false; + + TileEntityCraneBase craneTileEntity = (TileEntityCraneBase) te; + + // some cranes like the ejector have reversed input and output sides + // so this bit of logic is to hide that away from the player + boolean actuallyCycleInput = player.isSneaking() != hasReversedIO(); + ForgeDirection newDirection; + + if (actuallyCycleInput) { // cycle input + // it's in reverse because players are more likely to want to turn the output from DOWN to UP + int newValue = Math.floorMod(world.getBlockMetadata(x, y, z) - 1, 6); + newDirection = ForgeDirection.getOrientation(newValue); + + world.setBlockMetadataWithNotify(x, y, z, newValue, 3); + craneTileEntity.ensureOutputOverrideValid(); + } else { // cycle output + newDirection = craneTileEntity.cycleOutputOverride(); + } + + if (!world.isRemote) { + ChatBuilder message = player.isSneaking() + ? ChatBuilder.start("Input: ").color(EnumChatFormatting.GREEN) + : ChatBuilder.start("Output: ").color(EnumChatFormatting.RED); + message.next(newDirection.name()).color(EnumChatFormatting.WHITE); + player.addChatComponentMessage(message.flush()); + } + + return true; + } + + public ForgeDirection getInputSide(IBlockAccess world, int x, int y, int z) { + return ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z)); + } + + /** + * Returns the player-overridden output direction, or {@link ForgeDirection#UNKNOWN} if unset. + * A return value of {@link ForgeDirection#UNKNOWN} suggests use of default meta behavior. + * Should never return the current input direction. + */ + protected final ForgeDirection getOutputSideOverride(IBlockAccess world, int x, int y, int z) { + TileEntity te = world.getTileEntity(x, y, z); + if (!(te instanceof TileEntityCraneBase)) return ForgeDirection.UNKNOWN; + TileEntityCraneBase craneTileEntity = (TileEntityCraneBase) te; + + return craneTileEntity.getOutputOverride(); + } + + public ForgeDirection getOutputSide(IBlockAccess world, int x, int y, int z) { + TileEntity te = world.getTileEntity(x, y, z); + if (!(te instanceof TileEntityCraneBase)) return ForgeDirection.UNKNOWN; + TileEntityCraneBase craneTileEntity = (TileEntityCraneBase) te; + + return craneTileEntity.getOutputSide(); + } + + @Override + public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) { + ForgeDirection inputSide = getInputSide(world, x, y, z); + ForgeDirection outputOverride = getOutputSideOverride(world, x, y, z); + boolean outputSideOverridden = outputOverride != ForgeDirection.UNKNOWN && outputOverride.getOpposite() != inputSide; + ForgeDirection outputSide = outputSideOverridden ? outputOverride : inputSide.getOpposite(); + + // take your left hand, make your thumb the input side and the index finger the output side + // angle your middle finger to make your hand look like coordinate axes + // the direction your middle finger is pointing towards will be the direction returned from this function + ForgeDirection leftHandRotation = outputSide.getRotation(inputSide); + + if(side == 0 || side == 1) { + if(side == outputSide.ordinal()) { + return this.iconOut; + } + if(side == inputSide.ordinal()) { + return this.iconIn; + } + + if (side == 1) { + if (outputSideOverridden) { + if (leftHandRotation == ForgeDirection.UP) { + return this.iconDirectionalTurnLeft; + } + if (leftHandRotation == ForgeDirection.DOWN) { + return this.iconDirectionalTurnRight; + } + } else return iconDirectional; + } + + return this.blockIcon; + } + + if(side == outputSide.ordinal()) { + return this.iconSideOut; + } + if(side == inputSide.ordinal()) { + return this.iconSideIn; + } + + if (outputSideOverridden) { + if (leftHandRotation.ordinal() == side) { + if (outputSide == ForgeDirection.UP) + return this.iconDirectionalSideLeftTurnUp; + if (outputSide == ForgeDirection.DOWN) + return this.iconDirectionalSideRightTurnDown; + if (inputSide == ForgeDirection.UP) + return this.iconDirectionalSideUpTurnRight; + if (inputSide == ForgeDirection.DOWN) + return this.iconDirectionalSideDownTurnLeft; + } + if (leftHandRotation.getOpposite().ordinal() == side) { + if (outputSide == ForgeDirection.UP) + return this.iconDirectionalSideRightTurnUp; + if (outputSide == ForgeDirection.DOWN) + return this.iconDirectionalSideLeftTurnDown; + if (inputSide == ForgeDirection.UP) + return this.iconDirectionalSideUpTurnLeft; + if (inputSide == ForgeDirection.DOWN) + return this.iconDirectionalSideDownTurnRight; + } + } else { + if(outputSide == ForgeDirection.UP) { + return this.iconDirectionalUp; + } + if(outputSide == ForgeDirection.DOWN) { + return this.iconDirectionalDown; + } + } + + return this.iconSide; + } + + // kept for inventory rendering @Override public IIcon getIcon(int side, int metadata) { - + if(side == 0 || side == 1) { if(side == metadata) { return this.iconOut; @@ -80,10 +242,10 @@ public abstract class BlockCraneBase extends BlockContainer implements IBlockSid if(side == ForgeDirection.getOrientation(metadata).getOpposite().ordinal()) { return this.iconIn; } - + return side == 1 ? this.iconDirectional : this.blockIcon; } - + if(side == metadata) { return this.iconSideOut; } @@ -97,9 +259,23 @@ public abstract class BlockCraneBase extends BlockContainer implements IBlockSid if(metadata == 1) { return this.iconDirectionalDown; } - + return this.iconSide; } + + @Override + public int getRotationFromSide(IBlockAccess world, int x, int y, int z, int side) { + int meta = world.getBlockMetadata(x, y, z); + + if(meta > 1 && side == 1) { + if(meta == 2) return 3; + if(meta == 3) return 0; + if(meta == 4) return 1; + if(meta == 5) return 2; + } + + return 0; + } public static int renderIDClassic = RenderingRegistry.getNextAvailableRenderId(); diff --git a/src/main/java/com/hbm/blocks/network/CraneBoxer.java b/src/main/java/com/hbm/blocks/network/CraneBoxer.java index b884bd62f..2498e734c 100644 --- a/src/main/java/com/hbm/blocks/network/CraneBoxer.java +++ b/src/main/java/com/hbm/blocks/network/CraneBoxer.java @@ -1,11 +1,11 @@ package com.hbm.blocks.network; -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.network.TileEntityCraneBoxer; - import api.hbm.conveyor.IConveyorItem; import api.hbm.conveyor.IConveyorPackage; import api.hbm.conveyor.IEnterableBlock; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.network.TileEntityCraneBase; +import com.hbm.tileentity.network.TileEntityCraneBoxer; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; @@ -14,8 +14,6 @@ import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.item.EntityItem; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -26,7 +24,7 @@ public class CraneBoxer extends BlockCraneBase implements IEnterableBlock { } @Override - public TileEntity createNewTileEntity(World world, int meta) { + public TileEntityCraneBase createNewTileEntity(World world, int meta) { return new TileEntityCraneBoxer(); } @@ -34,31 +32,26 @@ public class CraneBoxer extends BlockCraneBase implements IEnterableBlock { @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconRegister) { super.registerBlockIcons(iconRegister); - this.iconIn = iconRegister.registerIcon(RefStrings.MODID + ":crane_box"); - this.iconSideIn = iconRegister.registerIcon(RefStrings.MODID + ":crane_side_box"); + this.iconOut = iconRegister.registerIcon(RefStrings.MODID + ":crane_box"); + this.iconSideOut = iconRegister.registerIcon(RefStrings.MODID + ":crane_side_box"); this.iconDirectional = iconRegister.registerIcon(RefStrings.MODID + ":crane_boxer_top"); this.iconDirectionalUp = iconRegister.registerIcon(RefStrings.MODID + ":crane_boxer_side_up"); this.iconDirectionalDown = iconRegister.registerIcon(RefStrings.MODID + ":crane_boxer_side_down"); + this.iconDirectionalTurnLeft = iconRegister.registerIcon(RefStrings.MODID + ":crane_boxer_top_left"); + this.iconDirectionalTurnRight = iconRegister.registerIcon(RefStrings.MODID + ":crane_boxer_top_right"); + this.iconDirectionalSideLeftTurnUp = iconRegister.registerIcon(RefStrings.MODID + ":crane_boxer_side_left_turn_up"); + this.iconDirectionalSideRightTurnUp = iconRegister.registerIcon(RefStrings.MODID + ":crane_boxer_side_right_turn_up"); + this.iconDirectionalSideLeftTurnDown = iconRegister.registerIcon(RefStrings.MODID + ":crane_boxer_side_left_turn_down"); + this.iconDirectionalSideRightTurnDown = iconRegister.registerIcon(RefStrings.MODID + ":crane_boxer_side_right_turn_down"); + this.iconDirectionalSideUpTurnLeft = iconRegister.registerIcon(RefStrings.MODID + ":crane_boxer_side_up_turn_left"); + this.iconDirectionalSideUpTurnRight = iconRegister.registerIcon(RefStrings.MODID + ":crane_boxer_side_up_turn_right"); + this.iconDirectionalSideDownTurnLeft = iconRegister.registerIcon(RefStrings.MODID + ":crane_boxer_side_down_turn_left"); + this.iconDirectionalSideDownTurnRight = iconRegister.registerIcon(RefStrings.MODID + ":crane_boxer_side_down_turn_right"); } - @Override - public int getRotationFromSide(IBlockAccess world, int x, int y, int z, int side) { - int meta = world.getBlockMetadata(x, y, z); - - if(meta > 1 && side == 1) { - if(meta == 2) return 3; - if(meta == 3) return 0; - if(meta == 4) return 1; - if(meta == 5) return 2; - } - - return 0; - } - - @Override + @Override public boolean canItemEnter(World world, int x, int y, int z, ForgeDirection dir, IConveyorItem entity) { - ForgeDirection orientation = ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z)); - return orientation == dir; + return getInputSide(world, x, y, z) == dir; } @Override diff --git a/src/main/java/com/hbm/blocks/network/CraneExtractor.java b/src/main/java/com/hbm/blocks/network/CraneExtractor.java index 51d754aa4..7b142bb70 100644 --- a/src/main/java/com/hbm/blocks/network/CraneExtractor.java +++ b/src/main/java/com/hbm/blocks/network/CraneExtractor.java @@ -1,16 +1,16 @@ package com.hbm.blocks.network; import com.hbm.lib.RefStrings; +import com.hbm.tileentity.network.TileEntityCraneBase; import com.hbm.tileentity.network.TileEntityCraneExtractor; - import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.tileentity.TileEntity; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; public class CraneExtractor extends BlockCraneBase { @@ -19,7 +19,7 @@ public class CraneExtractor extends BlockCraneBase { } @Override - public TileEntity createNewTileEntity(World world, int meta) { + public TileEntityCraneBase createNewTileEntity(World world, int meta) { return new TileEntityCraneExtractor(); } @@ -30,19 +30,53 @@ public class CraneExtractor extends BlockCraneBase { this.iconDirectional = iconRegister.registerIcon(RefStrings.MODID + ":crane_out_top"); this.iconDirectionalUp = iconRegister.registerIcon(RefStrings.MODID + ":crane_out_side_down"); this.iconDirectionalDown = iconRegister.registerIcon(RefStrings.MODID + ":crane_out_side_up"); + this.iconDirectionalTurnLeft = iconRegister.registerIcon(RefStrings.MODID + ":crane_out_top_right"); + this.iconDirectionalTurnRight = iconRegister.registerIcon(RefStrings.MODID + ":crane_out_top_left"); + this.iconDirectionalSideLeftTurnUp = iconRegister.registerIcon(RefStrings.MODID + ":crane_out_side_up_turn_left"); + this.iconDirectionalSideRightTurnUp = iconRegister.registerIcon(RefStrings.MODID + ":crane_out_side_up_turn_right"); + this.iconDirectionalSideLeftTurnDown = iconRegister.registerIcon(RefStrings.MODID + ":crane_out_side_down_turn_left"); + this.iconDirectionalSideRightTurnDown = iconRegister.registerIcon(RefStrings.MODID + ":crane_out_side_down_turn_right"); + this.iconDirectionalSideUpTurnLeft = iconRegister.registerIcon(RefStrings.MODID + ":crane_out_side_left_turn_up"); + this.iconDirectionalSideUpTurnRight = iconRegister.registerIcon(RefStrings.MODID + ":crane_out_side_right_turn_up"); + this.iconDirectionalSideDownTurnLeft = iconRegister.registerIcon(RefStrings.MODID + ":crane_out_side_left_turn_down"); + this.iconDirectionalSideDownTurnRight = iconRegister.registerIcon(RefStrings.MODID + ":crane_out_side_right_turn_down"); + } + + @Override + protected boolean hasReversedIO() { + return true; } @Override public int getRotationFromSide(IBlockAccess world, int x, int y, int z, int side) { int meta = world.getBlockMetadata(x, y, z); - + if(meta > 1 && side == 1) { + // ok so i've been sitting around for 4-5 hours trying to come up with a + // more elegant way to implement this and i have seriously no clue what + // the guys at mojang did, but the uv rotation makes absolutely no sense + // it's 2:30 am, please just accept this + // - martin + ForgeDirection leftHandDirection = getOutputSide(world, x, y, z).getRotation(getInputSide(world, x, y, z)); + if (leftHandDirection == ForgeDirection.UP) { + if (meta == 2) return 2; + if (meta == 3) return 1; + if (meta == 4) return 3; + if (meta == 5) return 0; + } + if (leftHandDirection == ForgeDirection.DOWN) { + if (meta == 2) return 1; + if (meta == 3) return 2; + if (meta == 4) return 0; + if (meta == 5) return 3; + } + if(meta == 2) return 0; if(meta == 3) return 3; if(meta == 4) return 2; if(meta == 5) return 1; } - + return 0; } diff --git a/src/main/java/com/hbm/blocks/network/CraneGrabber.java b/src/main/java/com/hbm/blocks/network/CraneGrabber.java index 5c0ee4bb1..fcda1d05a 100644 --- a/src/main/java/com/hbm/blocks/network/CraneGrabber.java +++ b/src/main/java/com/hbm/blocks/network/CraneGrabber.java @@ -1,15 +1,13 @@ package com.hbm.blocks.network; import com.hbm.lib.RefStrings; +import com.hbm.tileentity.network.TileEntityCraneBase; import com.hbm.tileentity.network.TileEntityCraneGrabber; - import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; public class CraneGrabber extends BlockCraneBase { @@ -19,7 +17,7 @@ public class CraneGrabber extends BlockCraneBase { } @Override - public TileEntity createNewTileEntity(World world, int meta) { + public TileEntityCraneBase createNewTileEntity(World world, int meta) { return new TileEntityCraneGrabber(); } @@ -27,28 +25,24 @@ public class CraneGrabber extends BlockCraneBase { @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconRegister) { super.registerBlockIcons(iconRegister); + this.iconIn = iconRegister.registerIcon(RefStrings.MODID + ":crane_pull"); + this.iconSideIn = iconRegister.registerIcon(RefStrings.MODID + ":crane_side_pull"); this.iconDirectional = iconRegister.registerIcon(RefStrings.MODID + ":crane_grabber_top"); this.iconDirectionalUp = iconRegister.registerIcon(RefStrings.MODID + ":crane_grabber_side_up"); this.iconDirectionalDown = iconRegister.registerIcon(RefStrings.MODID + ":crane_grabber_side_down"); - this.iconOut = iconRegister.registerIcon(RefStrings.MODID + ":crane_pull"); - this.iconSideOut = iconRegister.registerIcon(RefStrings.MODID + ":crane_side_pull"); + this.iconDirectionalTurnLeft = iconRegister.registerIcon(RefStrings.MODID + ":crane_grabber_top_left"); + this.iconDirectionalTurnRight = iconRegister.registerIcon(RefStrings.MODID + ":crane_grabber_top_right"); + this.iconDirectionalSideLeftTurnUp = iconRegister.registerIcon(RefStrings.MODID + ":crane_grabber_side_left_turn_up"); + this.iconDirectionalSideRightTurnUp = iconRegister.registerIcon(RefStrings.MODID + ":crane_grabber_side_right_turn_up"); + this.iconDirectionalSideLeftTurnDown = iconRegister.registerIcon(RefStrings.MODID + ":crane_grabber_side_left_turn_down"); + this.iconDirectionalSideRightTurnDown = iconRegister.registerIcon(RefStrings.MODID + ":crane_grabber_side_right_turn_down"); + this.iconDirectionalSideUpTurnLeft = iconRegister.registerIcon(RefStrings.MODID + ":crane_grabber_side_up_turn_left"); + this.iconDirectionalSideUpTurnRight = iconRegister.registerIcon(RefStrings.MODID + ":crane_grabber_side_up_turn_right"); + this.iconDirectionalSideDownTurnLeft = iconRegister.registerIcon(RefStrings.MODID + ":crane_grabber_side_down_turn_left"); + this.iconDirectionalSideDownTurnRight = iconRegister.registerIcon(RefStrings.MODID + ":crane_grabber_side_down_turn_right"); } - @Override - public int getRotationFromSide(IBlockAccess world, int x, int y, int z, int side) { - int meta = world.getBlockMetadata(x, y, z); - - if(meta > 1 && side == 1) { - if(meta == 2) return 3; - if(meta == 3) return 0; - if(meta == 4) return 1; - if(meta == 5) return 2; - } - - return 0; - } - - @Override + @Override public void breakBlock(World world, int x, int y, int z, Block block, int meta) { this.dropContents(world, x, y, z, block, meta, 9, 11); super.breakBlock(world, x, y, z, block, meta); diff --git a/src/main/java/com/hbm/blocks/network/CraneInserter.java b/src/main/java/com/hbm/blocks/network/CraneInserter.java index cf3917af4..97347dc3c 100644 --- a/src/main/java/com/hbm/blocks/network/CraneInserter.java +++ b/src/main/java/com/hbm/blocks/network/CraneInserter.java @@ -1,11 +1,11 @@ package com.hbm.blocks.network; -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.network.TileEntityCraneInserter; - import api.hbm.conveyor.IConveyorItem; import api.hbm.conveyor.IConveyorPackage; import api.hbm.conveyor.IEnterableBlock; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.network.TileEntityCraneBase; +import com.hbm.tileentity.network.TileEntityCraneInserter; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; @@ -18,7 +18,6 @@ import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntityFurnace; -import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -29,7 +28,7 @@ public class CraneInserter extends BlockCraneBase implements IEnterableBlock { } @Override - public TileEntity createNewTileEntity(World world, int meta) { + public TileEntityCraneBase createNewTileEntity(World world, int meta) { return new TileEntityCraneInserter(); } @@ -40,6 +39,16 @@ public class CraneInserter extends BlockCraneBase implements IEnterableBlock { this.iconDirectional = iconRegister.registerIcon(RefStrings.MODID + ":crane_in_top"); this.iconDirectionalUp = iconRegister.registerIcon(RefStrings.MODID + ":crane_in_side_up"); this.iconDirectionalDown = iconRegister.registerIcon(RefStrings.MODID + ":crane_in_side_down"); + this.iconDirectionalTurnLeft = iconRegister.registerIcon(RefStrings.MODID + ":crane_in_top_left"); + this.iconDirectionalTurnRight = iconRegister.registerIcon(RefStrings.MODID + ":crane_in_top_right"); + this.iconDirectionalSideLeftTurnUp = iconRegister.registerIcon(RefStrings.MODID + ":crane_in_side_left_turn_up"); + this.iconDirectionalSideRightTurnUp = iconRegister.registerIcon(RefStrings.MODID + ":crane_in_side_right_turn_up"); + this.iconDirectionalSideLeftTurnDown = iconRegister.registerIcon(RefStrings.MODID + ":crane_in_side_left_turn_down"); + this.iconDirectionalSideRightTurnDown = iconRegister.registerIcon(RefStrings.MODID + ":crane_in_side_right_turn_down"); + this.iconDirectionalSideUpTurnLeft = iconRegister.registerIcon(RefStrings.MODID + ":crane_in_side_up_turn_left"); + this.iconDirectionalSideUpTurnRight = iconRegister.registerIcon(RefStrings.MODID + ":crane_in_side_up_turn_right"); + this.iconDirectionalSideDownTurnLeft = iconRegister.registerIcon(RefStrings.MODID + ":crane_in_side_down_turn_left"); + this.iconDirectionalSideDownTurnRight = iconRegister.registerIcon(RefStrings.MODID + ":crane_in_side_down_turn_right"); } @Override @@ -50,7 +59,8 @@ public class CraneInserter extends BlockCraneBase implements IEnterableBlock { @Override public void onItemEnter(World world, int x, int y, int z, ForgeDirection dir, IConveyorItem entity) { - TileEntity te = world.getTileEntity(x - dir.offsetX, y - dir.offsetY, z - dir.offsetZ); + ForgeDirection outputDirection = getOutputSide(world, x, y, z); + TileEntity te = world.getTileEntity(x + outputDirection.offsetX, y + outputDirection.offsetY, z + outputDirection.offsetZ); if(entity == null || entity.getItemStack() == null || entity.getItemStack().stackSize <= 0) { return; @@ -62,19 +72,19 @@ public class CraneInserter extends BlockCraneBase implements IEnterableBlock { if(te instanceof ISidedInventory) { ISidedInventory sided = (ISidedInventory) te; - access = masquerade(sided, dir.ordinal()); + access = masquerade(sided, outputDirection.getOpposite().ordinal()); } if(te instanceof IInventory) { IInventory inv = (IInventory) te; - addToInventory(inv, access, toAdd, dir.ordinal()); + addToInventory(inv, access, toAdd, outputDirection.getOpposite().ordinal()); } - if(toAdd != null && toAdd.stackSize > 0) { - addToInventory((TileEntityCraneInserter) world.getTileEntity(x, y, z), null, toAdd, dir.ordinal()); + if(toAdd.stackSize > 0) { + addToInventory((TileEntityCraneInserter) world.getTileEntity(x, y, z), null, toAdd, outputDirection.getOpposite().ordinal()); } - if(toAdd != null && toAdd.stackSize > 0) { + if(toAdd.stackSize > 0) { EntityItem drop = new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, toAdd.copy()); world.spawnEntityInWorld(drop); } @@ -147,21 +157,7 @@ public class CraneInserter extends BlockCraneBase implements IEnterableBlock { @Override public void onPackageEnter(World world, int x, int y, int z, ForgeDirection dir, IConveyorPackage entity) { } - @Override - public int getRotationFromSide(IBlockAccess world, int x, int y, int z, int side) { - int meta = world.getBlockMetadata(x, y, z); - - if(meta > 1 && side == 1) { - if(meta == 2) return 3; - if(meta == 3) return 0; - if(meta == 4) return 1; - if(meta == 5) return 2; - } - - return 0; - } - - @Override + @Override public boolean hasComparatorInputOverride() { return true; } diff --git a/src/main/java/com/hbm/blocks/network/CraneUnboxer.java b/src/main/java/com/hbm/blocks/network/CraneUnboxer.java index 558de5654..109be9ac7 100644 --- a/src/main/java/com/hbm/blocks/network/CraneUnboxer.java +++ b/src/main/java/com/hbm/blocks/network/CraneUnboxer.java @@ -1,11 +1,11 @@ package com.hbm.blocks.network; -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.network.TileEntityCraneUnboxer; - import api.hbm.conveyor.IConveyorItem; import api.hbm.conveyor.IConveyorPackage; import api.hbm.conveyor.IEnterableBlock; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.network.TileEntityCraneBase; +import com.hbm.tileentity.network.TileEntityCraneUnboxer; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; @@ -14,7 +14,6 @@ import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.item.EntityItem; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -26,7 +25,7 @@ public class CraneUnboxer extends BlockCraneBase implements IEnterableBlock { } @Override - public TileEntity createNewTileEntity(World world, int meta) { + public TileEntityCraneBase createNewTileEntity(World world, int meta) { return new TileEntityCraneUnboxer(); } @@ -34,24 +33,58 @@ public class CraneUnboxer extends BlockCraneBase implements IEnterableBlock { @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconRegister) { super.registerBlockIcons(iconRegister); - this.iconIn = iconRegister.registerIcon(RefStrings.MODID + ":crane_box"); - this.iconSideIn = iconRegister.registerIcon(RefStrings.MODID + ":crane_side_box"); + this.iconOut = iconRegister.registerIcon(RefStrings.MODID + ":crane_box"); + this.iconSideOut = iconRegister.registerIcon(RefStrings.MODID + ":crane_side_box"); this.iconDirectional = iconRegister.registerIcon(RefStrings.MODID + ":crane_unboxer_top"); this.iconDirectionalUp = iconRegister.registerIcon(RefStrings.MODID + ":crane_unboxer_side_down"); this.iconDirectionalDown = iconRegister.registerIcon(RefStrings.MODID + ":crane_unboxer_side_up"); + this.iconDirectionalTurnLeft = iconRegister.registerIcon(RefStrings.MODID + ":crane_unboxer_top_right"); + this.iconDirectionalTurnRight = iconRegister.registerIcon(RefStrings.MODID + ":crane_unboxer_top_left"); + this.iconDirectionalSideLeftTurnUp = iconRegister.registerIcon(RefStrings.MODID + ":crane_unboxer_side_up_turn_left"); + this.iconDirectionalSideRightTurnUp = iconRegister.registerIcon(RefStrings.MODID + ":crane_unboxer_side_up_turn_right"); + this.iconDirectionalSideLeftTurnDown = iconRegister.registerIcon(RefStrings.MODID + ":crane_unboxer_side_down_turn_left"); + this.iconDirectionalSideRightTurnDown = iconRegister.registerIcon(RefStrings.MODID + ":crane_unboxer_side_down_turn_right"); + this.iconDirectionalSideUpTurnLeft = iconRegister.registerIcon(RefStrings.MODID + ":crane_unboxer_side_left_turn_up"); + this.iconDirectionalSideUpTurnRight = iconRegister.registerIcon(RefStrings.MODID + ":crane_unboxer_side_right_turn_up"); + this.iconDirectionalSideDownTurnLeft = iconRegister.registerIcon(RefStrings.MODID + ":crane_unboxer_side_left_turn_down"); + this.iconDirectionalSideDownTurnRight = iconRegister.registerIcon(RefStrings.MODID + ":crane_unboxer_side_right_turn_down"); + } + + @Override + protected boolean hasReversedIO() { + return true; } @Override public int getRotationFromSide(IBlockAccess world, int x, int y, int z, int side) { int meta = world.getBlockMetadata(x, y, z); - + if(meta > 1 && side == 1) { + // ok so i've been sitting around for 4-5 hours trying to come up with a + // more elegant way to implement this and i have seriously no clue what + // the guys at mojang did, but the uv rotation makes absolutely no sense + // it's 2:30 am, please just accept this + // - martin + ForgeDirection leftHandDirection = getOutputSide(world, x, y, z).getRotation(getInputSide(world, x, y, z)); + if (leftHandDirection == ForgeDirection.UP) { + if (meta == 2) return 2; + if (meta == 3) return 1; + if (meta == 4) return 3; + if (meta == 5) return 0; + } + if (leftHandDirection == ForgeDirection.DOWN) { + if (meta == 2) return 1; + if (meta == 3) return 2; + if (meta == 4) return 0; + if (meta == 5) return 3; + } + if(meta == 2) return 0; if(meta == 3) return 3; if(meta == 4) return 2; if(meta == 5) return 1; } - + return 0; } @@ -71,15 +104,16 @@ public class CraneUnboxer extends BlockCraneBase implements IEnterableBlock { @Override public boolean canPackageEnter(World world, int x, int y, int z, ForgeDirection dir, IConveyorPackage entity) { - return true; + return getOutputSide(world, x, y, z) == dir; } @Override public void onPackageEnter(World world, int x, int y, int z, ForgeDirection dir, IConveyorPackage entity) { TileEntityCraneUnboxer unboxer = (TileEntityCraneUnboxer) world.getTileEntity(x, y, z); - + ForgeDirection accessedSide = getOutputSide(world, x, y, z).getOpposite(); + for(ItemStack stack : entity.getItemStacks()) { - ItemStack remainder = CraneInserter.addToInventory(unboxer, unboxer.getAccessibleSlotsFromSide(dir.ordinal()), stack, dir.ordinal()); + ItemStack remainder = CraneInserter.addToInventory(unboxer, unboxer.getAccessibleSlotsFromSide(accessedSide.ordinal()), stack, accessedSide.ordinal()); if(remainder != null && remainder.stackSize > 0) { EntityItem drop = new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, remainder.copy()); diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCraneBase.java b/src/main/java/com/hbm/tileentity/network/TileEntityCraneBase.java new file mode 100644 index 000000000..28daa73f7 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCraneBase.java @@ -0,0 +1,94 @@ +package com.hbm.tileentity.network; + +import com.hbm.tileentity.TileEntityMachineBase; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraftforge.common.util.Constants; +import net.minecraftforge.common.util.ForgeDirection; + +public abstract class TileEntityCraneBase extends TileEntityMachineBase { + public TileEntityCraneBase(int scount) { + super(scount); + } + + // extension to the meta system + // for compatibility purposes, normal meta values are still used by default + private ForgeDirection outputOverride = ForgeDirection.UNKNOWN; + + // for extra stability in case the screwdriver action doesn't get synced to other clients + @SideOnly(Side.CLIENT) + private ForgeDirection cachedOutputOverride = ForgeDirection.UNKNOWN; + + @Override + public void updateEntity() { + if (hasWorldObj() && worldObj.isRemote) { + if (cachedOutputOverride != outputOverride) { + worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); + cachedOutputOverride = outputOverride; + } + } + } + + public ForgeDirection getInputSide() { + return ForgeDirection.getOrientation(getBlockMetadata()); + } + + public ForgeDirection getOutputSide() { + ForgeDirection override = getOutputOverride(); + return override != ForgeDirection.UNKNOWN ? override : ForgeDirection.getOrientation(getBlockMetadata()).getOpposite(); + } + + public ForgeDirection getOutputOverride() { + return outputOverride; + } + + public ForgeDirection cycleOutputOverride() { + do { + outputOverride = ForgeDirection.getOrientation(Math.floorMod(outputOverride.ordinal() - 1, 7)); + } while (outputOverride.ordinal() == getBlockMetadata()); + + onBlockChanged(); + return outputOverride; + } + + public void ensureOutputOverrideValid() { + if (outputOverride.ordinal() == getBlockMetadata()) + cycleOutputOverride(); + } + + protected void onBlockChanged() { + if (!hasWorldObj()) return; + worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); + worldObj.notifyBlockChange(xCoord, yCoord, zCoord, getBlockType()); + markDirty(); + } + + @Override + public Packet getDescriptionPacket() { + NBTTagCompound nbt = new NBTTagCompound(); + writeToNBT(nbt); + return new S35PacketUpdateTileEntity(xCoord, yCoord, zCoord, 0, nbt); + } + + @Override + public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { + readFromNBT(pkt.func_148857_g()); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + if (nbt.hasKey("CraneOutputOverride", Constants.NBT.TAG_BYTE)) + outputOverride = ForgeDirection.getOrientation(nbt.getByte("CraneOutputOverride")); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setByte("CraneOutputOverride", (byte) outputOverride.ordinal()); + } +} diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCraneBoxer.java b/src/main/java/com/hbm/tileentity/network/TileEntityCraneBoxer.java index bca0a3f22..2996d102a 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCraneBoxer.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCraneBoxer.java @@ -1,13 +1,11 @@ package com.hbm.tileentity.network; +import api.hbm.conveyor.IConveyorBelt; import com.hbm.entity.item.EntityMovingPackage; import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.container.ContainerCraneBoxer; import com.hbm.inventory.gui.GUICraneBoxer; import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityMachineBase; - -import api.hbm.conveyor.IConveyorBelt; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; @@ -20,7 +18,7 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityCraneBoxer extends TileEntityMachineBase implements IGUIProvider, IControlReceiver { +public class TileEntityCraneBoxer extends TileEntityCraneBase implements IGUIProvider, IControlReceiver { public byte mode = 0; public static final byte MODE_4 = 0; @@ -42,15 +40,15 @@ public class TileEntityCraneBoxer extends TileEntityMachineBase implements IGUIP @Override public void updateEntity() { - + super.updateEntity(); if(!worldObj.isRemote) { boolean redstone = worldObj.isBlockIndirectlyGettingPowered(xCoord, yCoord, zCoord); if(mode == MODE_REDSTONE && redstone && !lastRedstone) { - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()).getOpposite(); - Block b = worldObj.getBlock(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ); + ForgeDirection outputSide = getOutputSide(); + Block b = worldObj.getBlock(xCoord + outputSide.offsetX, yCoord + outputSide.offsetY, zCoord + outputSide.offsetZ); IConveyorBelt belt = null; if(b instanceof IConveyorBelt) { @@ -58,7 +56,7 @@ public class TileEntityCraneBoxer extends TileEntityMachineBase implements IGUIP } int pack = 0; - + for(int i = 0; i < slots.length; i++) { if(slots[i] != null) { pack++; @@ -79,8 +77,8 @@ public class TileEntityCraneBoxer extends TileEntityMachineBase implements IGUIP } EntityMovingPackage moving = new EntityMovingPackage(worldObj); - Vec3 pos = Vec3.createVectorHelper(xCoord + 0.5 + dir.offsetX * 0.55, yCoord + 0.5 + dir.offsetY * 0.55, zCoord + 0.5 + dir.offsetZ * 0.55); - Vec3 snap = belt.getClosestSnappingPosition(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, pos); + Vec3 pos = Vec3.createVectorHelper(xCoord + 0.5 + outputSide.offsetX * 0.55, yCoord + 0.5 + outputSide.offsetY * 0.55, zCoord + 0.5 + outputSide.offsetZ * 0.55); + Vec3 snap = belt.getClosestSnappingPosition(worldObj, xCoord + outputSide.offsetX, yCoord + outputSide.offsetY, zCoord + outputSide.offsetZ, pos); moving.setPosition(snap.xCoord, snap.yCoord, snap.zCoord); moving.setItemStacks(box); worldObj.spawnEntityInWorld(moving); @@ -116,8 +114,8 @@ public class TileEntityCraneBoxer extends TileEntityMachineBase implements IGUIP } } - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()).getOpposite(); - Block b = worldObj.getBlock(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ); + ForgeDirection outputSide = getOutputSide(); + Block b = worldObj.getBlock(xCoord + outputSide.offsetX, yCoord + outputSide.offsetY, zCoord + outputSide.offsetZ); IConveyorBelt belt = null; if(b instanceof IConveyorBelt) { @@ -138,8 +136,8 @@ public class TileEntityCraneBoxer extends TileEntityMachineBase implements IGUIP } EntityMovingPackage moving = new EntityMovingPackage(worldObj); - Vec3 pos = Vec3.createVectorHelper(xCoord + 0.5 + dir.offsetX * 0.55, yCoord + 0.5 + dir.offsetY * 0.55, zCoord + 0.5 + dir.offsetZ * 0.55); - Vec3 snap = belt.getClosestSnappingPosition(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, pos); + Vec3 pos = Vec3.createVectorHelper(xCoord + 0.5 + outputSide.offsetX * 0.55, yCoord + 0.5 + outputSide.offsetY * 0.55, zCoord + 0.5 + outputSide.offsetZ * 0.55); + Vec3 snap = belt.getClosestSnappingPosition(worldObj, xCoord + outputSide.offsetX, yCoord + outputSide.offsetY, zCoord + outputSide.offsetZ, pos); moving.setPosition(snap.xCoord, snap.yCoord, snap.zCoord); moving.setItemStacks(box); worldObj.spawnEntityInWorld(moving); diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java b/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java index 1da88ce44..d947f9922 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java @@ -1,5 +1,6 @@ package com.hbm.tileentity.network; +import api.hbm.conveyor.IConveyorBelt; import com.hbm.entity.item.EntityMovingItem; import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.container.ContainerCraneExtractor; @@ -7,9 +8,6 @@ import com.hbm.inventory.gui.GUICraneExtractor; import com.hbm.items.ModItems; import com.hbm.module.ModulePatternMatcher; import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityMachineBase; - -import api.hbm.conveyor.IConveyorBelt; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; @@ -26,7 +24,7 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityCraneExtractor extends TileEntityMachineBase implements IGUIProvider, IControlReceiver { +public class TileEntityCraneExtractor extends TileEntityCraneBase implements IGUIProvider, IControlReceiver { public boolean isWhitelist = false; public ModulePatternMatcher matcher; @@ -55,7 +53,7 @@ public class TileEntityCraneExtractor extends TileEntityMachineBase implements I @Override public void updateEntity() { - + super.updateEntity(); if(!worldObj.isRemote) { int delay = 20; @@ -78,10 +76,11 @@ public class TileEntityCraneExtractor extends TileEntityMachineBase implements I case 2: amount = 64; break; } } - - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); - TileEntity te = worldObj.getTileEntity(xCoord - dir.offsetX, yCoord - dir.offsetY, zCoord - dir.offsetZ); - Block b = worldObj.getBlock(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ); + + ForgeDirection inputSide = getOutputSide(); // note the switcheroo! + ForgeDirection outputSide = getInputSide(); + TileEntity te = worldObj.getTileEntity(xCoord + inputSide.offsetX, yCoord + inputSide.offsetY, zCoord + inputSide.offsetZ); + Block b = worldObj.getBlock(xCoord + outputSide.offsetX, yCoord + outputSide.offsetY, zCoord + outputSide.offsetZ); int[] access = null; ISidedInventory sided = null; @@ -89,7 +88,7 @@ public class TileEntityCraneExtractor extends TileEntityMachineBase implements I if(te instanceof ISidedInventory) { sided = (ISidedInventory) te; //access = sided.getAccessibleSlotsFromSide(dir.ordinal()); - access = masquerade(sided, dir.ordinal()); + access = masquerade(sided, inputSide.getOpposite().ordinal()); } boolean hasSent = false; @@ -108,7 +107,7 @@ public class TileEntityCraneExtractor extends TileEntityMachineBase implements I int index = access == null ? i : access[i]; ItemStack stack = inv.getStackInSlot(index); - if(stack != null && (sided == null || sided.canExtractItem(index, stack, dir.ordinal()))){ + if(stack != null && (sided == null || sided.canExtractItem(index, stack, inputSide.getOpposite().ordinal()))){ boolean match = this.matchesFilter(stack); @@ -119,8 +118,8 @@ public class TileEntityCraneExtractor extends TileEntityMachineBase implements I stack.stackSize = toSend; EntityMovingItem moving = new EntityMovingItem(worldObj); - Vec3 pos = Vec3.createVectorHelper(xCoord + 0.5 + dir.offsetX * 0.55, yCoord + 0.5 + dir.offsetY * 0.55, zCoord + 0.5 + dir.offsetZ * 0.55); - Vec3 snap = belt.getClosestSnappingPosition(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, pos); + Vec3 pos = Vec3.createVectorHelper(xCoord + 0.5 + outputSide.offsetX * 0.55, yCoord + 0.5 + outputSide.offsetY * 0.55, zCoord + 0.5 + outputSide.offsetZ * 0.55); + Vec3 snap = belt.getClosestSnappingPosition(worldObj, xCoord + outputSide.offsetX, yCoord + outputSide.offsetY, zCoord + outputSide.offsetZ, pos); moving.setPosition(snap.xCoord, snap.yCoord, snap.zCoord); moving.setItemStack(stack); worldObj.spawnEntityInWorld(moving); @@ -144,8 +143,8 @@ public class TileEntityCraneExtractor extends TileEntityMachineBase implements I stack.stackSize = toSend; EntityMovingItem moving = new EntityMovingItem(worldObj); - Vec3 pos = Vec3.createVectorHelper(xCoord + 0.5 + dir.offsetX * 0.55, yCoord + 0.5 + dir.offsetY * 0.55, zCoord + 0.5 + dir.offsetZ * 0.55); - Vec3 snap = belt.getClosestSnappingPosition(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, pos); + Vec3 pos = Vec3.createVectorHelper(xCoord + 0.5 + outputSide.offsetX * 0.55, yCoord + 0.5 + outputSide.offsetY * 0.55, zCoord + 0.5 + outputSide.offsetZ * 0.55); + Vec3 snap = belt.getClosestSnappingPosition(worldObj, xCoord + outputSide.offsetX, yCoord + outputSide.offsetY, zCoord + outputSide.offsetZ, pos); moving.setPosition(snap.xCoord, snap.yCoord, snap.zCoord); moving.setItemStack(stack); worldObj.spawnEntityInWorld(moving); diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCraneGrabber.java b/src/main/java/com/hbm/tileentity/network/TileEntityCraneGrabber.java index ba50abcea..e6dc6b48b 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCraneGrabber.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCraneGrabber.java @@ -1,7 +1,5 @@ package com.hbm.tileentity.network; -import java.util.List; - import com.hbm.blocks.ModBlocks; import com.hbm.blocks.network.CraneInserter; import com.hbm.entity.item.EntityMovingItem; @@ -11,8 +9,6 @@ import com.hbm.inventory.gui.GUICraneGrabber; import com.hbm.items.ModItems; import com.hbm.module.ModulePatternMatcher; import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityMachineBase; - import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; @@ -29,7 +25,9 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityCraneGrabber extends TileEntityMachineBase implements IGUIProvider, IControlReceiver { +import java.util.List; + +public class TileEntityCraneGrabber extends TileEntityCraneBase implements IGUIProvider, IControlReceiver { public boolean isWhitelist = false; public ModulePatternMatcher matcher; @@ -50,7 +48,7 @@ public class TileEntityCraneGrabber extends TileEntityMachineBase implements IGU @Override public void updateEntity() { - + super.updateEntity(); if(!worldObj.isRemote) { int delay = 20; @@ -74,15 +72,16 @@ public class TileEntityCraneGrabber extends TileEntityMachineBase implements IGU } } - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); - TileEntity te = worldObj.getTileEntity(xCoord - dir.offsetX, yCoord - dir.offsetY, zCoord - dir.offsetZ); + ForgeDirection inputSide = getInputSide(); + ForgeDirection outputSide = getOutputSide(); + TileEntity te = worldObj.getTileEntity(xCoord + outputSide.offsetX, yCoord + outputSide.offsetY, zCoord + outputSide.offsetZ); int[] access = null; ISidedInventory sided = null; if(te instanceof ISidedInventory) { sided = (ISidedInventory) te; - access = CraneInserter.masquerade(sided, dir.ordinal()); + access = CraneInserter.masquerade(sided, outputSide.getOpposite().ordinal()); } if(te instanceof IInventory) { @@ -95,14 +94,14 @@ public class TileEntityCraneGrabber extends TileEntityMachineBase implements IGU */ double reach = 1D; if(this.getBlockMetadata() > 1) { //ignore if pointing up or down - Block b = worldObj.getBlock(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ); + Block b = worldObj.getBlock(xCoord + inputSide.offsetX, yCoord + inputSide.offsetY, zCoord + inputSide.offsetZ); if(b == ModBlocks.conveyor_double) reach = 0.5D; if(b == ModBlocks.conveyor_triple) reach = 0.33D; } - double x = xCoord + dir.offsetX * reach; - double y = yCoord + dir.offsetY * reach; - double z = zCoord + dir.offsetZ * reach; + double x = xCoord + inputSide.offsetX * reach; + double y = yCoord + inputSide.offsetY * reach; + double z = zCoord + inputSide.offsetZ * reach; List items = worldObj.getEntitiesWithinAABB(EntityMovingItem.class, AxisAlignedBB.getBoundingBox(x + 0.1875D, y + 0.1875D, z + 0.1875D, x + 0.8125D, y + 0.8125D, z + 0.8125D)); for(EntityMovingItem item : items) { @@ -113,7 +112,7 @@ public class TileEntityCraneGrabber extends TileEntityMachineBase implements IGU ItemStack copy = stack.copy(); int toAdd = Math.min(stack.stackSize, amount); copy.stackSize = toAdd; - ItemStack ret = CraneInserter.addToInventory((IInventory) te, access, copy, dir.ordinal()); + ItemStack ret = CraneInserter.addToInventory((IInventory) te, access, copy, outputSide.getOpposite().ordinal()); int didAdd = toAdd - (ret != null ? ret.stackSize : 0); stack.stackSize -= didAdd; diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCraneInserter.java b/src/main/java/com/hbm/tileentity/network/TileEntityCraneInserter.java index 205fe3115..9de4fb7fc 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCraneInserter.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCraneInserter.java @@ -4,8 +4,6 @@ import com.hbm.blocks.network.CraneInserter; import com.hbm.inventory.container.ContainerCraneInserter; import com.hbm.inventory.gui.GUICraneInserter; import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityMachineBase; - import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.GuiScreen; @@ -18,7 +16,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityCraneInserter extends TileEntityMachineBase implements IGUIProvider { +public class TileEntityCraneInserter extends TileEntityCraneBase implements IGUIProvider { public static final int[] access = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 }; @@ -33,18 +31,18 @@ public class TileEntityCraneInserter extends TileEntityMachineBase implements IG @Override public void updateEntity() { - + super.updateEntity(); if(!worldObj.isRemote) { - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); - TileEntity te = worldObj.getTileEntity(xCoord - dir.offsetX, yCoord - dir.offsetY, zCoord - dir.offsetZ); + ForgeDirection outputSide = getOutputSide(); + TileEntity te = worldObj.getTileEntity(xCoord + outputSide.offsetX, yCoord + outputSide.offsetY, zCoord + outputSide.offsetZ); int[] access = null; if(te instanceof ISidedInventory) { ISidedInventory sided = (ISidedInventory) te; //access = sided.getAccessibleSlotsFromSide(dir.ordinal()); - access = CraneInserter.masquerade(sided, dir.ordinal()); + access = CraneInserter.masquerade(sided, outputSide.getOpposite().ordinal()); } if(te instanceof IInventory) { @@ -53,7 +51,7 @@ public class TileEntityCraneInserter extends TileEntityMachineBase implements IG ItemStack stack = slots[i]; if(stack != null) { - ItemStack ret = CraneInserter.addToInventory((IInventory) te, access, stack.copy(), dir.ordinal()); + ItemStack ret = CraneInserter.addToInventory((IInventory) te, access, stack.copy(), outputSide.getOpposite().ordinal()); if(ret == null || ret.stackSize != stack.stackSize) { slots[i] = ret; @@ -72,7 +70,7 @@ public class TileEntityCraneInserter extends TileEntityMachineBase implements IG if(stack != null) { stack = stack.copy(); stack.stackSize = 1; - ItemStack ret = CraneInserter.addToInventory((IInventory) te, access, stack.copy(), dir.ordinal()); + ItemStack ret = CraneInserter.addToInventory((IInventory) te, access, stack.copy(), outputSide.getOpposite().ordinal()); if(ret == null || ret.stackSize != stack.stackSize) { this.decrStackSize(i, 1); diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCraneUnboxer.java b/src/main/java/com/hbm/tileentity/network/TileEntityCraneUnboxer.java index 3cd1aa7da..31dd46c1e 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCraneUnboxer.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCraneUnboxer.java @@ -1,13 +1,11 @@ package com.hbm.tileentity.network; +import api.hbm.conveyor.IConveyorBelt; import com.hbm.entity.item.EntityMovingItem; import com.hbm.inventory.container.ContainerCraneUnboxer; import com.hbm.inventory.gui.GUICraneUnboxer; import com.hbm.items.ModItems; import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityMachineBase; - -import api.hbm.conveyor.IConveyorBelt; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; @@ -19,7 +17,7 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityCraneUnboxer extends TileEntityMachineBase implements IGUIProvider { +public class TileEntityCraneUnboxer extends TileEntityCraneBase implements IGUIProvider { public TileEntityCraneUnboxer() { super(23); @@ -32,7 +30,7 @@ public class TileEntityCraneUnboxer extends TileEntityMachineBase implements IGU @Override public void updateEntity() { - + super.updateEntity(); if(!worldObj.isRemote) { int delay = 20; @@ -65,8 +63,8 @@ public class TileEntityCraneUnboxer extends TileEntityMachineBase implements IGU } } - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); - Block b = worldObj.getBlock(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ); + ForgeDirection outputSide = getInputSide(); // note the switcheroo! + Block b = worldObj.getBlock(xCoord + outputSide.offsetX, yCoord + outputSide.offsetY, zCoord + outputSide.offsetZ); if(b instanceof IConveyorBelt) { @@ -82,8 +80,8 @@ public class TileEntityCraneUnboxer extends TileEntityMachineBase implements IGU stack.stackSize = toSend; EntityMovingItem moving = new EntityMovingItem(worldObj); - Vec3 pos = Vec3.createVectorHelper(xCoord + 0.5 + dir.offsetX * 0.55, yCoord + 0.5 + dir.offsetY * 0.55, zCoord + 0.5 + dir.offsetZ * 0.55); - Vec3 snap = belt.getClosestSnappingPosition(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, pos); + Vec3 pos = Vec3.createVectorHelper(xCoord + 0.5 + outputSide.offsetX * 0.55, yCoord + 0.5 + outputSide.offsetY * 0.55, zCoord + 0.5 + outputSide.offsetZ * 0.55); + Vec3 snap = belt.getClosestSnappingPosition(worldObj, xCoord + outputSide.offsetX, yCoord + outputSide.offsetY, zCoord + outputSide.offsetZ, pos); moving.setPosition(snap.xCoord, snap.yCoord, snap.zCoord); moving.setItemStack(stack); worldObj.spawnEntityInWorld(moving); diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_boxer_side_down_turn_left.png b/src/main/resources/assets/hbm/textures/blocks/crane_boxer_side_down_turn_left.png new file mode 100644 index 0000000000000000000000000000000000000000..5bdc5d132487da1bac043cc9c01c65961c5d1c3a GIT binary patch literal 518 zcmV+h0{Q)kP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!TugK~y+Tl~KJ) z!%!H#X^Kr7oq~(vpj|9tl?*}!2f@YJmk_#j^939V7Q{Y+4i0?-7nh1d(SlMO8(L~( zQ?vJWbO+fAAGSk|cBqmSv@&3xWU*$8q}ozW@G! zm6^1#h%1VM0RRISjs@5onyY#p>E79F5@lXo-6?g0f>_&MA+j3lyJe(z+YhO8)Si7NIGu)9{>OV07*qo IM6N<$g0!&Bi~s-t literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_boxer_side_down_turn_right.png b/src/main/resources/assets/hbm/textures/blocks/crane_boxer_side_down_turn_right.png new file mode 100644 index 0000000000000000000000000000000000000000..0c3c43bd97255ded4bba009e6a365a7df1b48513 GIT binary patch literal 504 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0gXvSK~y+Tl~O%V z!cY`_twajwMC#yXmRwpi2S0D zAdX4U0)ilbSQ-eb%FBcO?IUC7FJ90F;8l?*_!xUO$(I^GxUhZ6b1 zG+oz4R~qEi1W;n=RgWd2QmLT(dk2!@HGDr@^-y`$Zaabz&omdV zD>@v~fW47*UEivmO{dfIRtsZXcRDzn9*_XBx?C>F1Ast{cLV{j%X~h^bv8s%~s u{|g!k$Ou53MncAT+<+xKun_zO#=ZevV_jE7xuik>0000E literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_boxer_side_left_turn_down.png b/src/main/resources/assets/hbm/textures/blocks/crane_boxer_side_left_turn_down.png new file mode 100644 index 0000000000000000000000000000000000000000..e2590058df1a211b8e0d00bf2a9dab23d55d98c5 GIT binary patch literal 514 zcmV+d0{#7oP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0hdWcK~y+Tl~O%R z!%!5xsYTP)K%r!D5FCr3l0mGS;NtARXa^yJ|G}kHYJY~aiy$sV1#1hH;v@yJBx#Ga zv7~95cwTOZ-NeJ==G>3-?tSk?(siBw10m2fE%JzhAYdDlFiespnWow6^&&yP-{&F* z7e!7GpqeAyZg;6rC}c93`F!rWuIG6OeJ)@$8p*PZEW@_#1a!Xd!+|vn!#D1+b%7 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_boxer_side_left_turn_up.png b/src/main/resources/assets/hbm/textures/blocks/crane_boxer_side_left_turn_up.png new file mode 100644 index 0000000000000000000000000000000000000000..3c3f8f4691dd8237ac3419c001020161dc404054 GIT binary patch literal 511 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!TK1iKYQC4-<_!Nu97TgA0o2geR|vU~qS7iSkiM5rjJ6_ny6gkWjX z&lpM?TjP1T;n__*gqw5j$Gi8wr<6)1`VT~buIrH^3W9*GB%zxWMX@Za-EPNOce`Cq z0y>?}S+!~q-PY@dVZeiIPMb_7G5j3If%SbK+B8jMhf&(i=ToT^oDy(~kusSK1PXBW z#JqtwnOuM!kA2vU+%futAYnKhiVoi)zCu9mY_H_>wS&Fv;r^D4PN!2?NKxQ<9z>yB zKB?7k_VSWuyPt3(1UZ|{5M>(`@UE*w_yAQ^=W75?09@CNMuIr4RE`P-o?F(ioX2km z5KYry&o7@Z8m+6x_xt7tBu^qCZYiBks+;Uj$b-1vjth?pY8D-WI2?AtQ31#3#A)5OJ#^ z3IL^8EMf<|B98<}0x;*1VEg^PD1ZwW947n)q90nZNEpLAPm%xt002ovPDHLkV1f_6 B)35*l literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_boxer_side_right_turn_down.png b/src/main/resources/assets/hbm/textures/blocks/crane_boxer_side_right_turn_down.png new file mode 100644 index 0000000000000000000000000000000000000000..3e47bb1b0efc80be90c2345b23cc1e6418c10b15 GIT binary patch literal 514 zcmV+d0{#7oP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0hdWcK~y+Tl~O%V z!cY{wMWO|CB3&Fz9EpjV4o2KaT%7#_%&;-IGP_}r9e;qci-~a|Y9d0SAxwtEl-L3h zX-Fxh^}KhR%4R%yxt#lP-o5t~rBo`>e;@?9u7@5`5Cm)^BEzI8ifNktem@ip1_Lf) za8c+40jfFD>-AQ$*=#D6S}Yc>>l%gu<<}C%VgOj5j1eG>UBI0#^9RY4(tQhx9yuo=dStw z)H2|XMx*(B&M822KsD}$)iliv4$o>e1ThA1QK?v#g_K-S?l7Cp@FQBtCeWN03ZjigP)Px#1ZP1_K>z@;j|==^1poj5$xuvGMRIa-q@<*yqoa+Djf{+pp`oFmprDJ3i;$3z zkB^Uzj*fPAcK-kX;Q#=rsHlpHiiwGdYinzkmX>jGahjT%f`WpBgM*Zml!u3haBy&G zR5Np4IhB=_fq{X0dwY_Sl7)qZZfVGd007EKL_t(2 zQ)SF;Z-Ouo!0}TQ721^!LDsIw6wz9I;PyN>pT7Tx+KpEx`zM!Ne#ssDuS0daUa#-_ zet+->!%^UcjNge!2q6LPhfy3e#`!o&)0AN1We-Yet<$&R3QoS|?JMB$}}*bO2eFELBNDCoR-9LHjh=v{2N>1a0}sZXL*?*qI%*U*uH- z4)FQq^$p)Y5I?^V58r@4v>%T&C&cpsL0+!b+K_6REyVOgx|^K)1vq>f!pgrrMF0Q* M07*qoM6N<$g2)=;f&c&j literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_boxer_side_up_turn_left.png b/src/main/resources/assets/hbm/textures/blocks/crane_boxer_side_up_turn_left.png new file mode 100644 index 0000000000000000000000000000000000000000..fc5c0762aea97e3c925c878cf2a92df412c96a96 GIT binary patch literal 519 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%LhM0X`wFMMXtRmMmGkcyWJ!e{XMZPfyRng$oxfSkT?wJz>IxzP`S)va*K^ z4F4GzR;*aj)z#J6*_oZ4J#E^w#>U3N!oq@rf|iz++}zxzrl#iR<|$LAloyH8t_^@$K#HZEbC> zt*s>`B@GP?rKP1n*Ku-k{=doj{{|xv{JYNZ=PJXmD-1s_F+4fQuyzu||C{Vz&NF;E z%kb(LLtR~6MMXsi&+kHzwgQjHVg?4j!ywFfJby(BQ1G~?i(`mJaO#=p;6nxiZ4X^1 z+%hxl<<3&wD5j2ZF^dq1ap=dO89{pMTjPye>}>XtfLqgJ{P=p_bES3j3^ HP6Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0hdWcK~y+Tl~KV; z!$1(-)S_uIrxFkkg6*jYDme&x6TEo#Gji)^1kA;LM0@BTco9MHAX-pF=qU}9Hf`F* zP?9t@zR8rOH}SFAyqPz%J2R^^8V&Iu6!95`!3L0J*?2r&tyUnqu48Avq9~)$XfPO1 z0)QZBjNx!-TGoLO?N-Zi9C#4TVR0N6@C$+fdy*u}<H>Y-Y# z!ay9(j@?Ii%jIqCiv?wF?VY1G5CqI-Gr9p4OTauk-M=&ruP^F1S0^y;+Pn&<(q$Rz=i0L-~0?05}IfC~f81O9>#zj44uc!c5mTmS$707*qoM6N<$ Eg66WPx#1ZP1_K>z@;j|==^1poj5pHNIxMRIa-q@<*yqobmtqM@OoprD|Oi;IwukdKd# zj*gCvjg5?qjEahiiHV78YipL4mWPLjY;0_Tf`WsCgOrq%fq{W(R5Np4IhB=_dwYA5 zl9GLWeg6OepM*`ckXpQ$Vw01Te}8{@d3kzzdUtns;Q#=9e0+9xc3)p#hK7cPg@u=w zmw00009a7bBm000ic000ic0Tn1p zfB*mhxJg7oR47wr%-a&dFcgL1jkZxu>rhElLMsQNLY?0K*=*&)jQ{eRH4FY5V8h`k zisCqqk~ffXI?1vup*f|r0GN_|Ht$=MWr?t4Y|gn5oUa(G5Y`eD-)!reH#?~jXrYwY zq6i|5MaWaF$qnywmsY**4hKsb!T`Y6#gggUlx-W2d&Wl@Bjb+07*qoM6N<$ Ef+x(xzyJUM literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_boxer_top_right.png b/src/main/resources/assets/hbm/textures/blocks/crane_boxer_top_right.png new file mode 100644 index 0000000000000000000000000000000000000000..05881e5958b335e58d45f15d44ac680b65624f62 GIT binary patch literal 472 zcmV;}0Vn>6P)Px#1ZP1_K>z@;j|==^1poj5qEJj!MRIa-q@<*yqobmtqM@OoprD|Oi;IwukdKd# zj*gCvjg5?qjEahiiHV78YipL4mWPLjY;0_Tf`WsCgOrq%X;d?FUO9n*fqQ# zdUSMjYHDhelaqCIb%cb3e}8{zX=#3bet39zadB}j3u> O0000fag7k{ zeO$3IqGH~370+4AR$tB98@D}b?R%*S8y9MD$>>b?juB&-|9G$Q5;ueMpLI^VFg)mr zZ*I7HPC}4DF2QK#ndika2YW;d-z~iU`eEK>6aN!SpLFj(r#D-~vd(^MuCyw{ikZeM zj)g4lmC_Cn7G#*pxO2nIvuVnoC%vh4Y5R6{L-9d5rQ?My9A-uf9!)IM``U1rdHI*S z2M!46oMv+FY)gC)*?&g7$Mt$?!IcK}Y0DH3c;}@EG<7;DmMV4pG-+m@vGw-bCybv$ z>=XPycCE|s4xMLfc;7PRU!m{zexDUJx6jQNRqlHKGrOWB{Nsl<-iBwp^0wc0O%GzY zAmCuJd~N(BUXF#9sz110?Eecy)<3-Q^Eoh*_);T0(|mmyw18|5AO?X;!IMFhr>mdK II;Vst035N>cmMzZ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_grabber_side_down_turn_right.png b/src/main/resources/assets/hbm/textures/blocks/crane_grabber_side_down_turn_right.png new file mode 100644 index 0000000000000000000000000000000000000000..f1f7fb7d3cc50933c4c1554235a264e89cca1bfc GIT binary patch literal 518 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sEXgD|57Yp@DXL!+mQV~BCAUBz@M7 z2WzLuzJDOSU{B-v2e*1VxfiQRJ#J$4p9>-hU~CIY32Hkta*?^&k5o2%)! z{dVa8Mu}T*%O+|r-MX#N-6ztrPnhLkg^eE1=9_1_bk?l!*y5I}efZ&pr|MlwNwb!{ z{yJ;N%^Zd1gAG5JPaK)>{AbzjSiR|USNfH! za4Fqx{^t0tQL2lcc?WJ6KcywW%*iHn*{#^(z}yJa4e`0@6PARnR`oZD+Npj?w>~*? zs%_wM{X_izt-rUw`WM-8={@_+)rnq5`#-&@_!98pfgjI-mnBv)#{W6KnRy?bsG~D| zTUy#VH8!u94T67Im+oT-JRg%^eDBJCU<~o4MtG+A`Z8z%*&IL&0+)g(gD6i|KbLh* G2~7Y*K8a!PbLoEEK2A%afoFH)LO4G`DIV`sqy9?TU zDXd}gwiV5vSKEB;7n@yEx_%RT;6f!i7cQsU6SfI>O=>eK{I>j~2H)GVeRpTRc{kna zZr=2N%w}7nbgczNT^DXtnWT2Su;#ve|M4`ACI?q8(VGi37F;`%VY2FhI*+re7oK|bh-nl@`?uDZL{92GB&u-vLbGMv~R=AT=t0@ zstPKO`nXy3`w3RZ)f>(9nEUZI>w`^vc{yO)y#7cDOL7vnc6RGsW+o~2E+dT34 zUzVH;x1WkJedXDf_iOj|UpZ%|v+X+`wN`BJf=MBLJLc?9)?OvI*y-hjoz;i_{GKNl zKQrLt#<_br56`Z9=6~|A`s07h(hSQlzkKlSqu9qB&6`GCPpyQM{;}scaEa?Q?RWUX rY!z=C(|1Qm7Z@jesS%!OzP=1vKsE;ugTSTW$so$p)z4*}Q$iB}J|oWr literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_grabber_side_left_turn_up.png b/src/main/resources/assets/hbm/textures/blocks/crane_grabber_side_left_turn_up.png new file mode 100644 index 0000000000000000000000000000000000000000..959d1982bb839af2efd96af9ff0bf0deadd9cd2b GIT binary patch literal 473 zcmV;~0Ve*5P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!2kdb!2!6DYwZ940d7e|K~y+Tl~F-T z!%z^Ngn+g?TWILgr375`Hr~LRU2*5y8;HF@@8L#pAu3qJg-Ai#G>}L`(#A9~zWMY0 zwr<2nI(>iUz4?=gH5d%&KVUVG9+H%y$o&zg^MI0~4yB zcgnG1MClzrh9|e0hu3TXEZ_IB8GL;7R;8^S2$y*fd1){pg#|0YUm*Gd70y6LCS+88 P00000NkvXXu0mjfdRfX9 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_grabber_side_right_turn_down.png b/src/main/resources/assets/hbm/textures/blocks/crane_grabber_side_right_turn_down.png new file mode 100644 index 0000000000000000000000000000000000000000..5345e832c76dc6e571d1623d40956b997ff77853 GIT binary patch literal 500 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBufG}g$wN6f;hI~&K#}Etuse!)UhaCjwUTN4iZ%NbJi;Fqr zeii>=omO$`>gN9ow*F)K%QkA!eDB&q*sh7AoyFV9PptCT+7=UFIyMEV06k z5j9-5-fnxn%R}!v!}HSE>#MJ>((x`hV!)%`K7Gpn0H?)&ck7(K;NsnJhmq~*GV3dI zZU0@nx@wic+JzciXPMTpxmdlrvp~AcQBFByDsPP*W6%zEGlmSOE3dy!*pixTFweHx zgClF6+=PkeJ_jGUcu=Bt$+;UP3@^X`KD?gWdT+(CbD<)xi?(cNQ%h>w{4&5cz&t%* zgJb^mXpSq!H+RXszxV3itbCrD&WZ(pSf?&3J@WLI>~f{=5~5nm&y@SksK0;tv9_?0 z{Ozl=4Hmtbxxa0>|Fq-$ISexAKkvG$7bjTleNxVCVT`-eob%6f9Js`Fn)W+<;g)~z owlLn-BM=xLe5nzhX}-P;T0k}j5QD&_;K?A$)78&qol`;+00+{|V*mgE literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_grabber_side_right_turn_up.png b/src/main/resources/assets/hbm/textures/blocks/crane_grabber_side_right_turn_up.png new file mode 100644 index 0000000000000000000000000000000000000000..e0214f3d4562fa7f232c4366ed2c92e4e70217e5 GIT binary patch literal 510 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!2kdb!2!6DYwZ940eMM8K~y+Tl~O@U z!%z^N)QUEcLMb#2uG}dF7rlkvz@1BLTote24aDBSL%4GzxDXXB;<6w%386xWZ461{ zn?FCPJMocD-=BH!&!3+d!{Lzr12**geZ3+oib7&VRGJLK2!dcbooYiEhNvwT3#DX; zT40){*d~)n4S!J-A*N}%Eb*ZLDLCSH3CP%hY@X*z$w1%H_W7uH+39qoDoB!KWe{L9 z&+{Oq`6r%1eq4F7EJM@=Se1V1`@UA2E%CTthqi5_Bu9X_jvvpZfZAYug3QQ1gXhA$ z0!PnE6UVVW5*8r1JI8TAbca&?8*C7_tXD8wr{R9L+ttew+8|NDX|+A~QF)$E0n0VK zHOsQVFcyx4ajtO04G(U?DCtE9H8_It%tRPUie=?nAC zJ?8H>boa!BinonytQb-Jz)!`ad(DGeHUNg}y6tuw--SMXIg&s)w^cWZ6S4s*T(A=S z1)?99N>-RnqM-2r000hUSV?A0O#mtY000O800000007cclK=n!07*qoM6N<$f}S_m A)c^nh literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_grabber_side_up_turn_left.png b/src/main/resources/assets/hbm/textures/blocks/crane_grabber_side_up_turn_left.png new file mode 100644 index 0000000000000000000000000000000000000000..7c0e16cb9ba3893e93a89b706706c0a93ef1b431 GIT binary patch literal 506 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sEXgD|57Yp@DXL#d~WV~BZyikSAaY`5#2 z^UoFbGZ~qg_y%7${bX}K_WIV|>hqt?X7|4T?I@5?$KlAUg-GC(tbt*$D2-$2A$KtP8{78 zxBhtgWa+ys@~?wkE?Fkz|GD+pg3)=hisWS%sU4*WJ7eCJS+C@}<~?5%rhTV#1>?^wc4qbFg9`NrgIwQxt^M9;_LVnmdj1*z^)svazkE5> za_ju$SFwhRa*myETz+1bU;ZXT#D)CkWsUtb0-Ae#e-LEuvGWDw=)>gTe~DWM4fJ)p!* literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_grabber_side_up_turn_right.png b/src/main/resources/assets/hbm/textures/blocks/crane_grabber_side_up_turn_right.png new file mode 100644 index 0000000000000000000000000000000000000000..cda6ec6871a12199e3ecb2fa447b8d5c069397c3 GIT binary patch literal 526 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%Lg50X`wFMMXtRmMmGkc=4h|ixw_ixM0D8?(Xgh6DIWc_xJVn_4fAm^z?Lf zb#-=jW@l$ln>MYzy}h-yH8V4_rKP30xw)ySY08u-H8nL1Q~uZ1);2aaR##U~nly=_ z;VwhhyZZY2%F4>Bs;ctx@{W#{FrU@?DM(v^M`SSr z1K)lSX0%`pRsjm0^mK6y(FjiM$qsHd5OBTD72@p>G07o_Q`KxqYHjq|{{R2?$1IPx zdVF)QarOE3*8edE-A7X=Ey``-tbUenzArlXyZ}7 z-c4m^ADJD#r?`vnYJ!=L%fjmCRdOba(*y5h>g}1EXMUR@AT-SQ&g;oDmR&otVs6+g zl~*UDmQLwQv;7s@uqpG~@5BznS!Ht+8SdKK*j@b0eet#Q#fP#ln%_U3_}TMIse;Di z?ceK8pZUyJ_rqQC9LGa(w*?Y;x1aR30zJi-8sVAd>&u`8WOD#92wV!D45B<;{an^L HB{Ts56rSDK literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_grabber_top_left.png b/src/main/resources/assets/hbm/textures/blocks/crane_grabber_top_left.png new file mode 100644 index 0000000000000000000000000000000000000000..8877112aa3e2e29e38fb1e00713fd2884ce0e383 GIT binary patch literal 768 zcmV+b1ONPqP))=wP)CztrNlaTIZ9|eG#Z_=|5FA7o zzXtz-u7azAASi-}o4a3&NIcgH710}R&cl1}dpLOmp@ePbz1mU87koE05!YsB=d{Qp z^|TXZgihV`oUvpw!N2S6ni^HF`c$v~@BO(N7cI|(ntI_O({X)anTEu&?C`xcR8KAYgN+|-=G?q+k8mt+m(1^Z)R#o9!t|8X zcG(?xq?jO%hCzuXY<&8p79_L3ef?j)Ns8hzPj1i|}$5PTd!_zq4BRew=(8h#ahqpHPrp?MXK&#IcS z1t)9JcI)V_{w0NFhcX#>I)bKIXt{)j`ASyb=N#TZdPRQG1#Is?x7=@D_ykeoXfMH= zVGd00B5jL_t(2&y`X;Zi7G&Wf7HApa^_`q$L%% zN=xfHH!zM*kQ^b$Nr4m)3s^$Pe9R|rchDG<#(5HGX7t|7?AsMV5E%b~h0phW&ZlXj zKL=D7LZoRL$FW6umSxidEGB?Wm9}k_pe#%3(KOAnz0l~o&NNM4K}F*@4#QB_^+h9! zBBapteGfJf0BUD)PQBy!=l$soyHbUK7-FiZl^_KbIoQXSqj5f=2o14a*To+*uL4@y zw(Xs*+2<36C@$j7`H|uJHA(1-LKF yU5UY?bU8!`z{a9W>fg7>PAWm3=P>xr=lu&$N<0Z;1?Has0000)=wP)CztrNlaTIZ9|eG#Z_=|5FA7o zzXtz-u7azAASi-}o4a3&NIcgH710}R&cl1}dpLOmp@ePbz1mU87koE05!YsB=d{Qp z^|TXZgihV`oUvpw!N2S6ni^HF`c$v~@BO(N7cI|(ntI_O({X)anTEu&?C`xcR8KAYgN+|-=G?q+k8mt+m(1^Z)R#o9!t|8X zcG(?xq?jO%hCzuXY<&8p79_L3ef?j)Ns8hzPj1i|}$5PTd!_zq4BRew=(8h#ahqpHPrp?MXK&#IcS z1t)9JcI)V_{w0NFhcX#>I)bKIXt{)j`ASyb=N#TZdPRQG1#Is?x7=@D_ykeoXfMH= zVGd00BBlL_t(2&y`Y3PJ}=dq+wt&J7pGZb<2)h z>5@Bm19WcS6+DSIfbbFMgb?Ht!0LXaX>sFJLg)3P>V2DqVQAcf6TTn_)O}r7I+a0w z##m7lX_}tsUY6ymL5T@qlV=zPA!wQg=QxhbvK+!61b~STym_8+5)Z#kQ}~l4VG@f( z-}k$K&`Eqt#BqFmc!7p8Ow&a9g#c0#*tU&kz9guCtN(^ZEz6>~+muwTS(YKH(Q)H^ zC+IMw=IQgV4n;#fE{i~<~R05AWs0{j7xG=H;6L_t(Ijir+@4ul{OMIVOJyO?+v&tUI0JfpRViH)IymU;*m7J`9S8wrM|NjA5E4#&O&Y0Q$by3C=mnvb@x7+v2_7 z4VGomK+2W&-hYn}LeRi43;JkLLOxZ?v#ERer8wIS000000< KMNUMnLSTZ~a$p+( delta 261 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_in_side_right_turn_down.png b/src/main/resources/assets/hbm/textures/blocks/crane_in_side_right_turn_down.png new file mode 100644 index 0000000000000000000000000000000000000000..fb2fca3ffb5f0a2a91f5716068b47d41691d52c0 GIT binary patch literal 530 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBuf-vKbiP>*~8hSll978Pprv}=39}W=N>)9-|Fm~4zv0Ysp ze0Tq_>+v=1-YwYvZ(3G;TXXZ|=I#dyS{jQKB1EGu@q2m9o}pGb@Ao_7zDEo1%&UI4 zbLabg>058-{^H-U@M_k~9uG~`jS5j}r#IEyfB*gWvP2W9PEQ53$r`NNHTK4xKNc^* z(y>VCT-xSv-s`2Z#~XiqWiB}P+2;Hv9Z#WxBL@>clw8qWdx`tvyGV5&XP${dO8ySb z3uf?{PdIDorRf{&vgD4y@r^4OqD>y$+x;RzY9EuV`vfiX4{=fx3iuyQQ`{QGyGT>J z_3=#E9Ud+3Yv+_KF4uZF@A6#djtJ&m5)Jn`6~0#OeJQ)c*O-yz-NS+vbJ># z>&9&R=$_rXp5w_e%zX+CYg@v#r=L!U;NIR>v@|HvD*krW?fHJoJsOWDDSEpH9+}?3 zKI?v>OV0YwbN+BfPu$$drOJOM+-zoj+@-I!!a?Uxzg(Q=@=*6bm)sqRckzYH36=B0 z*M@!U+Qb)Q1Zd*k~5G4tKnmaC<-bV`9@$!wj|Tulc)+XzSKO-~Z)I4Ro6x9Z+N|H@#lZ;^#NwHW|4j8lyOr| z^5y5BCIQo)mL2Vyc);eW>+-vKi}y#Z-DZ5@5101TQ@>c>?kHJsz0E>&>P`QX(y#YA zUwdb3yKj?%=`G*;Ta~)z{S1Eb;pB@4jm!;CE%@&7{o}h4t^d*4g<(;uih>FVdQ&MBb@0IHJIRsaA1 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_in_side_up_turn_left.png b/src/main/resources/assets/hbm/textures/blocks/crane_in_side_up_turn_left.png new file mode 100644 index 0000000000000000000000000000000000000000..763c68afcb43742678492bca845eddfc1f256d05 GIT binary patch literal 507 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sEXgD|57Yp@DXLz$EqdRZE-$5`UbVupYNS}6Lh#V z_80#R0|}llT`O{ z7r*UJtZ(Sy-Fs!+Cl^+&FUEiAVt0M8}0t*3=v+S}m!X+I{x3@k2Z0RPzTs~p)!i0GncAd0jk`-i} zkSbX&@VaWR-G0e?*3%_kKFT}c#Cm4g%tQN_XRQmb22Wb_i4++&S zp{WX;f-Di=3T96Vs(QCMLZ?7|5!;j1rEGCCmd)IsuzFMZs&CSZeQIZ4y(;~AvGKEu z%(i=t7JmD@p)R~fqx#wM$1goT|Cq?z@X(?!HS&jhLVoBacOj1F+p^N;^zwQNS%Lg50X`wFMMXtRmMmGkc=4h|ixw_ixM0D8?(Xgh6DIWc_xJVn_4fAm^z?Lf zb#-=jW@l$ln>MYzy}h-yH8V4_rKP30xw)ySY08u-H8nLp{~2m)Ya1IItE;OgO`7Cz zox%AbLw$XHWo2bmRaJR;c}GV_Sy@?pe0*D5TU}jUNl8gVLqln4DbOLDoSgq}a{j-; z2n7GGGyJ*A@aqc0k4p?s4l=Br#PI(n`t~@QBhb}m?JRp4MG07o_Q`KxqYHjq|{{R2?$1IPx zdVF)QarOE3*8edE-A7X=Ey``-tbUenzArlXyZ}7 z-c4m^ADJD#r?`vnYJ!=L%fjmCRdOba(*y5h>g}1EXMUR@AT-SQ&g;oDmR&otVs6+g zl~*UDmQLwQv;7s@uqpG~@5BznS!Ht+8SdKK*j@b0eet#Q#fP#ln%_U3_}TMIse;Di z?ceK8pZUyJ_rqQC9LGa(w*?Y;x1aR30zJi-8sVAd>&u`8WOD#92wV!D45B<;{an^L HB{Ts5D+Jw3 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_in_top_left.png b/src/main/resources/assets/hbm/textures/blocks/crane_in_top_left.png new file mode 100644 index 0000000000000000000000000000000000000000..23721ae91edb5e07364485d2f68c0ea931f537a4 GIT binary patch literal 776 zcmV+j1NZ!iP))=wP)CztrNlaTIZ9|eG#Z_=|5FA7o zzXtz-u7azAASi-}o4a3&NIcgH710}R&cl1}dpLOmp@ePbz1mU87koE05!YsB=d{Qp z^|TXZgihV`oUvpw!N2S6ni^HF`c$v~@BO(N7cI|(ntI_O({X)anTEu&?C`xcR8KAYgN+|-=G?q+k8mt+m(1^Z)R#o9!t|8X zcG(?xq?jO%hCzuXY<&8p79_L3ef?j)Ns8hzPj1i|}$5PTd!_zq4BRew=(8h#ahqpHPrp?MXK&#IcS z1t)9JcI)V_{w0NFhcX#>I)bKIXt{)j`ASyb=N#TZdPRQG1#Is?x7=@D_ykeoXfMH= zVGd00BTrL_t(2&y`Y3PJ}=ZZIG2QA%Qy>6L#Ff zr4uiq?pPU5-~ncw%sDi1<=Q*Uaxg;pEeIJt3iz5gX&c>WC3LEa_v&v1K_LDk7Czti zl|7ClU!~A*7)FvLQ50FUvn(4mQRHD5@EViA)3&W7lx4{nP1ES%;UPya$;1a&-}iN0 ze@qgFAxuC&Cm{gBaHg^uJBr@7w`tIB;Y<({vmM3UYoE zShQ{1uXmezC;GiW5((OiqhoP;f91L^F;!I^N@ABp1B4f%l%GwLT@=OQX?1cYy_YY` zi^nAqp6AULhtaCR$8miAuzJ3}p-xWMb!Y%h<304CreRrDnx^2SSxQ|EaCRE{Y9TlQ z<>C6c<{1I|Vn&_JO*8q705l5Kp}%iYO;Qr_Jja0lc-~(^zCrx56djlV0000)=wP)CztrNlaTIZ9|eG#Z_=|5FA7o zzXtz-u7azAASi-}o4a3&NIcgH710}R&cl1}dpLOmp@ePbz1mU87koE05!YsB=d{Qp z^|TXZgihV`oUvpw!N2S6ni^HF`c$v~@BO(N7cI|(ntI_O({X)anTEu&?C`xcR8KAYgN+|-=G?q+k8mt+m(1^Z)R#o9!t|8X zcG(?xq?jO%hCzuXY<&8p79_L3ef?j)Ns8hzPj1i|}$5PTd!_zq4BRew=(8h#ahqpHPrp?MXK&#IcS z1t)9JcI)V_{w0NFhcX#>I)bKIXt{)j`ASyb=N#TZdPRQG1#Is?x7=@D_ykeoXfMH= zVGd00BHnL_t(2&y`X;PK8hu5|Mfj$=d} z&We65*f1_%LZduCS(XJtUDr!W%-(UFEgJ?k@XNZjZCfNB-u=f9AI8m{u#2K#8`hK% z0B2d2u(ZU)YWoGoc5&z_Dxx zw+PT?@OEP6DI2;9z{Xx|slRtoc2WrPJV%57xZXdpAW<$8SW%7u0000^*Bv9o7zrT&ptXK!R!R|L#5s2a#28D{Gk%Ct3V?mzOTPrzw(XGl z5hR-dLI?%$1zZj-%NT<(=2Fl7TI-((f0fL{M{1hpb3lE+aLjyGedy9!%Xx}d<_qAr z=CcaGdr#Z8muYgmTsyxR3E;iQId?JEs(-2&W7$i9Wm(=n;b-~=@_xsC)E05AWs0{j7xG=H;6L_t(Ijir+@4ul{OMIVOJyO?+v&tUI0JfpRViH)IymU;*m7J`9S8wrM|NjA5E4#&O&Y0Q$by3C=mnvb@x7+v2_7 z4VGomK+2W&-hYn}LeRi43;JkLLOxZ?v#ERer8wIS000000< KMNUMnLSTZ~a$p+( diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_out_side_down_turn_left.png b/src/main/resources/assets/hbm/textures/blocks/crane_out_side_down_turn_left.png new file mode 100644 index 0000000000000000000000000000000000000000..760f1c1f34839998da3280ee8aed12bad08caa87 GIT binary patch literal 513 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sEXgD|57Yp@DXLyf14V~B*!iEVY8B!&#Yyvjt_p)ZAl@DwUZxn9iL zD%F3yP)6Nz)6JZ1w{!Q#{lCX(WcH-8ul;LPZ_2*^rG_$#OqwF6EzQ(oV$iJPWm>_0 zSWt<<=0J*3q~7$3CQ0>2HqN{6y1jE-ocO&;-o^0Z#!nnO-;~Whs}{v@!8kmi`Qw7A zQtAPMf(%O;w-!X|h+SV-y-LKqulT7&*QCr@PAt`;7d{>+^}oVwVN-DGj;P7)ZPs)7 zB&KzoJ#;f`>$1z5N)PsMvGVjvKKuMLj#cr;BBebP0l+XkKI&jA- literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_out_side_down_turn_right.png b/src/main/resources/assets/hbm/textures/blocks/crane_out_side_down_turn_right.png new file mode 100644 index 0000000000000000000000000000000000000000..e9bd8e35259c231abea4f7d047508565d1d2a61d GIT binary patch literal 519 zcmV+i0{H!jP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGizW@LZzX3P}QzQTY0fI?HK~y+Tm6FX) z!cY)}rv;+8gbgd#nkFuID`dyY2dVZ!T)S{%;=-tj#<(B>Q^Jn~l0qs!rS+S8D;PG$ z6FQukduHy;v`(wllK(&x>h*f=iDX%3?UtCZIF2(Kjr#q5o-iJdt;oWPawp4B+eo+D zb@_{;2)kOXmdhn}ya^7fEt5wu=F`v)%1~XXZ zdETBH`yoP{p{*uQAREUh71zFh#EG6$Ya&h>D1~5g8@y_%%$%SheKxj zouD(&BA2pF^?z1gsZ@AV)Ux+80AL?3E89l52kZp3&9o&D0CjoF<#PN)XAAdK+e_a# zmZGQX)r<1OGv(o}+&?Rk?EN5lHB4mwsJ|_b9&$dq(*)o&n@wimi=ehS+I?`qa=q5{ z%*Hf<5DPYfzaa7rDTGmpUaP#;0000EWmrjOO-%qQ00008000000002eQ*~8k#&^978Pprv@5&9}W=MXTlnsIjtl^{dv~| zffxNPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!2kdb!2!6DYwZ940dGk}K~y+Tm66R# z!%z@~C!tj9w$Rdzdnvf+WB4X%z(rR+f)7y5^SBXQhzg3ha8Z%|WKn2H+nA=t@7@Ww z>P9@Y!?`o(%$+;&27`h82gcCr^{SIdS(X|dv1#!sXaIL~G?8lyfSD{?5(55so5t!hBB#@}qjf?7Wa$eczIo{QlS z&YksoT?J{HRwEGstLSt(5WNAQR)SiIF}MTU;Kj6uGZ>&Zfc!S-h?=Fndj=T=TnDM? zb~*UIuOpoYLATo_IiJswl2nfx%olAm8moJ{W&V-9?HRw+j79QC!}pI3f4`EO2ScQM z*(;tb6G`vP&++88;_1|89_W|WP50N2_ffNh2g1;d01?LPqk=GVM q_y7O^4rN$LW=%~1DgXcg2mk;800000(o>TF0000DH-?{LzWQ}`DPhhkV=j6v0fg-+Y!nY0PpWo`S(Dj-j+f^ya{^O#59$Bd^C_1@63II9C@aa{H~>X`_N0FH5S#+Sm&^^qLerg*r00riorypmB9;m1b&5rRrzf|l|BHC7=v&5i@ z>CVyBS6`PJta-XiuPSTntGjuH`hxshs+wG)ER*Iw;&q=?-ouls zf9AXYjQabR{u&D#$yfheZLsLc#Ql?w^G|axzr$d$@4dMc@18|@OjB3_&TT5%*?qK0 zTHp|?_rZ9DUyPh_7AC2e7=(e*!*~8VWsK978Pprv{$(I_w~_SD0n(ZHHMU597G> zK1nvo2L;EJJZ%^GtoWD7yoo!|QBYh@%W3k362VIXmrXw2**W>v+zO5D>F?$g%L|*% z^m$>Q(ER@QGnXsd)*g|)m>J}y>bWUGrzde|OqYj(QgKG~3RUCz=XL+2Mz%$ShF*N= z%$%|}PPwkUp@-M^a?bW>7sg+4?GJq=tooFBZz1H72(zU+r=; zVT;(huk*1)>q0xXX)jt{7;*giYqu_iMWr%xNr1Gq2Ybr;Ljv<|mT>7wN-%_&C_A3Y zTWWKjc_LrKith*6Rvg{H&r@b7w|iaoIoTe^MGP_59H!X3U*5Qwt0}=iq9NBzx~C=k z^rjD+4nGt)c{Qu`dArE^7THTCPyKJa{@SHJMQd$v?0eqmi;S;VRwdSz9Q*Tn+PnEP z1Af;<{ZA`KNb$ o^Ik{gGy-FUFEzq5&DWPf3&`dGVi33#JQ+lJy85}Sb4q9e072r)ng9R* literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_out_side_up_turn_left.png b/src/main/resources/assets/hbm/textures/blocks/crane_out_side_up_turn_left.png new file mode 100644 index 0000000000000000000000000000000000000000..3a5c6636e786a5ef655616f16d07fe3025796a38 GIT binary patch literal 500 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sEXgD|57Yp@DXL%yerV~B3O6#lnNx zjxifPIj*V|n17(RlY6n6RO!K{WeytloW8+aBCpKLXKgYxoVVrhPUGiyW>$A!fB*fd zeSq`w%PYf_QX`|*bb5C`uPl`DSDSpwVE%dE6obI68s1l?N%FPx)=g4T%-eqZY?`wS z58H(JMjzhx!-@OvZ$7t4hv)Eag^ooTd*k}u7JsZb^Nqt{-g9^61_Oy#0&1Hgbn==W zSaEy^(Cs>8qP{0WatiapA3~Pmj_xK~Zohq5a*8AE0$-UCm$={Dog7(7OcR!^EHikW zwRP9mzj^DAdwk#behOFG>KTVOGW$+HttzKo@VX(fZ1>z$o~Z|w4jlgG5*|7sg@ySv z+xAS&<=5>t-|VqAG~KX1OuFP^j@jn$ZKtHC=k51DRdgxr>$ljSH>ZAj;W+Q!6px>^ zQ8gB7llHv`{`_R;qmPTF8m_-Bi(V`CpW|EE(pMgAk8fQ&d*Tc{r~^~ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_out_side_up_turn_right.png b/src/main/resources/assets/hbm/textures/blocks/crane_out_side_up_turn_right.png new file mode 100644 index 0000000000000000000000000000000000000000..18271a72f6260f0ab2f4adb1a9a405d9f40c7cc7 GIT binary patch literal 525 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sEXgD|57Yp@DXLx-n}V~BV3!Yz!&awCu(9QuNTvVX=U4J_*R$INx1yaoUR>>b5$8&*j&5SK zY_8fEks#s8+R7Ms{p%~a3k#*^Y)a};NMJ6Kn6SdkavytwdaC@-?4^yuI*EVV+zOx0 z*_|41v24}JS5KOE79PA)z2teh+LU_v<@37)UDyAaVpF48@!<%YL-zLDU#n!fk8Qsi zSg6`qkhePR*xefqLSk!J>Kk9M->ZmkvbVj?4U8zh)CkWsUtb0-Ae#e-LEuvGWDw=) L>gTe~DWM4fz|_%A literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_out_top_left.png b/src/main/resources/assets/hbm/textures/blocks/crane_out_top_left.png new file mode 100644 index 0000000000000000000000000000000000000000..d2ffff31e885d294c7227355b112bb9d6451bcdb GIT binary patch literal 763 zcmV)=wP)CztrNlaTIZ9|eG#Z_=|5FA7o zzXtz-u7azAASi-}o4a3&NIcgH710}R&cl1}dpLOmp@ePbz1mU87koE05!YsB=d{Qp z^|TXZgihV`oUvpw!N2S6ni^HF`c$v~@BO(N7cI|(ntI_O({X)anTEu&?C`xcR8KAYgN+|-=G?q+k8mt+m(1^Z)R#o9!t|8X zcG(?xq?jO%hCzuXY<&8p79_L3ef?j)Ns8hzPj1i|}$5PTd!_zq4BRew=(8h#ahqpHPrp?MXK&#IcS z1t)9JcI)V_{w0NFhcX#>I)bKIXt{)j`ASyb=N#TZdPRQG1#Is?x7=@D_ykeoXfMH= zVGd00A>eL_t(2&y`X;ZiO%qG!|7F3TS9jN223a zuceBT3*-P0l5-?&F7t|j_!S5}@h4+1+4zwr8Ohe}dd9onwG~B?_z!HXFbvt>wvBc+ zC~jF+Q50F0+2mJMwHaVB0c?s4!=MCh+tM9<-<#K48q+kfU@vK1*JWA8al{#1?3Cvd{Z8g@z&o*z-J7L}frFpuz_`eR(}=5;Vm2JP$jv{RpUN$8jDW z75gFtk_c_w2=R0}xvoo`uIu)asLJy<>7wsu!-V7vP1C$5$(@dV#PM4k6C((MD*;-| zea!RxIZ1By0c>cXM04#_jY3W8@4v{MRD!y$(cnLR?=QBrE#VHJQ;7fo002ovPDHLkV1gQyS(g9+ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_out_top_right.png b/src/main/resources/assets/hbm/textures/blocks/crane_out_top_right.png new file mode 100644 index 0000000000000000000000000000000000000000..78f357645e1e02bbafde513763b0bc871fc15f52 GIT binary patch literal 763 zcmV)=wP)CztrNlaTIZ9|eG#Z_=|5FA7o zzXtz-u7azAASi-}o4a3&NIcgH710}R&cl1}dpLOmp@ePbz1mU87koE05!YsB=d{Qp z^|TXZgihV`oUvpw!N2S6ni^HF`c$v~@BO(N7cI|(ntI_O({X)anTEu&?C`xcR8KAYgN+|-=G?q+k8mt+m(1^Z)R#o9!t|8X zcG(?xq?jO%hCzuXY<&8p79_L3ef?j)Ns8hzPj1i|}$5PTd!_zq4BRew=(8h#ahqpHPrp?MXK&#IcS z1t)9JcI)V_{w0NFhcX#>I)bKIXt{)j`ASyb=N#TZdPRQG1#Is?x7=@D_ykeoXfMH= zVGd00A>eL_t(2&y`X;ZiO%qwBbSVS{ka0vbD0RlCwwG?Uib*e*h`E>nq(v_dzo49&YDM2#QuW|zAy~+dD}Kx^@ie{ z^Rg_nEW6OTs;bR^78Agx$T*Ht&~+WwX`0q`J*7Vh01F>@%d%i49)4SvjHhYJ6;_2| z7!Cp9uJEOhB*}9eLqj*r^Gx?k0i+~w90$#ODo_Ehag0W7+ors`OS;xP&yn@c*j2Hy z`B0jt+s*Sl5cuK5Gk*a5Nkl6Nur9P5N^N@AWhSYO%a(_-=CnAqG=lH zx^@BpWm(P#wAMsXw8*n8!x-ZP`o5n7K9;yK=G=m{b`Dfk1%E)2B#V3)1^|L}i z`zObbdpNv1U*!8vPM-)k)345a-oKoA^Nbw#&R2P!OB~0H<9IQP>$&)!%36zv&~=@A h%5B^J>2WQ70Td@Hz&nXJY*PRL002ovPDHLkV1n+Uidz5x delta 316 zcmV-C0mJ^q0_FmcGk*acNkl$npw~1Afp+e@B0bx04#^kJ5c1Ff9Es zEcaZ!AJ6$KvNhWddlf~IgkebAwu}4k%KfRVwTK91Sq?)iisI%KzN8;&3D_U|V|^R| O0000$npw~1Afp+e@B0bx04#^kJ5c1Ff9Es zEcaZ!AJ6$KvNhWddlf~IgkebAwu}4k%KfRVwTK91Sq?)iisI%KzN8;&3D_U|V|^R| O0000uK5Gk*a5Nkl6Nur9P5N^N@AWhSYO%a(_-=CnAqG=lH zx^@BpWm(P#wAMsXw8*n8!x-ZP`o5n7K9;yK=G=m{b`Dfk1%E)2B#V3)1^|L}i z`zObbdpNv1U*!8vPM-)k)345a-oKoA^Nbw#&R2P!OB~0H<9IQP>$&)!%36zv&~=@A h%5B^J>2WQ70Td@Hz&nXJY*PRL002ovPDHLkV1n+Uidz5x diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_unboxer_side_down_turn_left.png b/src/main/resources/assets/hbm/textures/blocks/crane_unboxer_side_down_turn_left.png new file mode 100644 index 0000000000000000000000000000000000000000..1d6cfc0b0c3e67f7eddf1d568d80327a5fcc997c GIT binary patch literal 488 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%LiR0X`wFMMXtRmMmGkc=5u83l}U{(B0iVVZwy|{{FtczTV#6o}QkruCC6` z&g|^$Y15_^7Z(>67UtySG&eU-nKGrdwKX%uxH!&o`t<3Ijg8gS)srSo^7+rOXGYTG z$&+hqYbz@&w@ipCFE4j~$S}Xfx2&uzK0dy^y}hlit)!%+p`oF^zP_}y6zCRCPR{=~ zIse~a1cHCp8U9>l_;rQh$0dd*2N~8*V)%cP{mXfVPiGlk9b>4gtE;G}IMF-h4@g^q zM`SSr1K&XqX529``z=s#m#2$kh(>VgnVWn~1_G@Q0~s5;l9qCWwKkO|-!YH5_kX9% zgJVbZXQq6Lm-%sBDR)<2qJ->buCVK6G1pBa`wgElep%c2o|lZ&dYfn>!q8%|I=71wnXFFgUfBp c>ofkcD(Q;NS%Lfm0X`wFMMXu$#l=gOELpsG@qz^l7A{=a-Q7K5!i4_*{=UAx-rnAxo}R9* zuFlTR?Ck7m)20;`7UtyS#K*@sH#bk2G9@#_xH!&o`t<3Ijg8gS)srSo%FoZA-{QMv zLe!oaNzM-$YHMpND=TwzbIZ%iJ32ai{xg)7m9@9Gx3#skwzgJPRh5*KG&D5S*VmVp zmI58c$;tWuCg=Yfj6m@3I>Vo<48N{0{J6yM>%N?bAyTVfD9(QGyDcJn?=EHvt6*h|V^c%u|-Onp| t*U@j>^!xYnDYGUni)?b2)~i4K)4sn@!eCCcCnz!*JYD@<);T3K0RTWV+KK=G literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_unboxer_side_left_turn_down.png b/src/main/resources/assets/hbm/textures/blocks/crane_unboxer_side_left_turn_down.png new file mode 100644 index 0000000000000000000000000000000000000000..99d98ea56f04b78c71d815d914b0341be1d376e4 GIT binary patch literal 507 zcmVPx#1ZP1_K>z@;j|==^1poj5y--Y4MRIa-b8~Z~q@<&xqoAOmp`oFRi;IwukdKd# zj*gCvjg5?qjEahiiHV78YipL4mT_@$Y;0^_UtfcRgOrq%X;d?FUOAVSmw|zSdwYA5 zl9HclaqaYeR+9#O#c9SdU|(vcZi6HL*W2+c6Nt{hlYlRg@uK5baa4# zfNE-Lb#-+B000RI3IEv%|JVTm0RjHk0Q}Ve`qTjU(g5Va0IiY$|Jeuh&j9kx0P4m7 zetv#sR6;-y_^>NH9Ci*j6BFA;*KS*5G5N=;|uvIPYCUT?Ov`yu+>6CI8~ xCw`yLd@e-S13_@RYpv(3ZI=-8jsX8bd;o1C7upqD@>Bo-002ovPDHLkV1iOE*R%it literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_unboxer_side_left_turn_up.png b/src/main/resources/assets/hbm/textures/blocks/crane_unboxer_side_left_turn_up.png new file mode 100644 index 0000000000000000000000000000000000000000..bbf523a73ba7a4bb36c943ca83252a27e68252c8 GIT binary patch literal 508 zcmVPx#1ZP1_K>z@;j|==^1poj5z)(z7MRIa-q@<*yqoa+Djf{+pp`oFmprDJ3i;$3z zkB^Uzj*fPAc1-^OL*W3ZsHlpHiiwGdYinzkmX>pKb8&HTY;0^_UtfcRgOrq%X;d?F zUOAVSmw|zSdwYA5l9F$4Z=Zxsw2)eplaqaYeR+9#yqIElcXx=0h=+%VhK7cPg@tr< zbbx?>e}8{0OY{{t&#x$*$4E`0P@WM z>c#+metvj(c&qU5{r~^~32;bRa{vGi!vFvd!vV){sAK>D0L4i}K~yMHWz5@df} z;ZfvJ*mc3e(xs?SaTP?yb3OO{-^#&wVbU*|Wb!97@Lz{?yGGBnEX%ap;C#4-$9P}( zLWlrh;CzN5W1L4aj$;a6MyOQ6c%syII;1eN$12Mi&olKiDJTe^wRk>F9IYw%Gyat2 ziK{&cFrPPx#1ZP1_K>z@;j|==^1poj5!%$3AMRIa-b8~Z~q@<&xqoAOmp`oFRi;IwukdKd# zj*gCvjg5?qjEahiiHV78YipL4mT_@$Y;0^_UtfcRgOrq%X;d?FUOAVSmw|zSdwYA5 zl9F$4Z=Zxsw2)f7m|~NYlYM=Cd3kwlZEZv00D5|QcXxM)h=@%80CskEhlhuThK7ZO zg>-aufPjE%YHD?LbpQYW2?+`R*$MyH0RaI4{?`Ef)d2d`0Qk}X5FBXYRSRt`&F`9%X(I()c_oDvwi=- z&o9K?9`W!E_(SjGkfZGL literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_unboxer_side_right_turn_up.png b/src/main/resources/assets/hbm/textures/blocks/crane_unboxer_side_right_turn_up.png new file mode 100644 index 0000000000000000000000000000000000000000..ccc53b86ee98abf10d84932e6f527db036d07971 GIT binary patch literal 516 zcmV+f0{i`mP)Px#1ZP1_K>z@;j|==^1poj5#!yUDMRIa-q@<*yqoa+Djf{+pp`oFmprDJ3i;$3z zkB^Uzj*fPAc1-^OL*W3ZsHlpHiiwGdYinzkmX>pKb8&HTY;0^_UtfcRgOrq%X;d?F zUOAVSmw|zSdwYA5l9F$4Z=Zxsw2)f7m|~NYlYM=Cd3kwlZEbpbdUtnsh=_=XhlhrS zhJ}TNbaZrpfPjC0e|2?r000092?_t%3IEsu0RaL2*8u$00Q%Gb_|gF6!2qq20RPzs z^v?kD%>e4g0DgXcczAde1cD*}000SaNLh0L01m?d01m?e$8V@)0002TNkljBzei9LE&;R-|>pc%t(S83{9xt3!V3c|Wxrc3fU$;t*4;A*|u z;%<+4I3k|TfEU`^mgWob`-Bkw{2F6?(liT*=trpjQR)wEEEo6FP^C@)0000NS%LiR0X`wFMMXu$#l=gOELpsG@qz^l7A{=a-Q7K5!i4_*{=UAx-rnAxo}R9* zuFlTR?Ck7m)20;`7UtyS#K*@sH#bk2GNrY(H8aGxIL^}NKZEl_hUwF%H#Rm_S65G( zG--Z|@0JNslP6EEt*x!BtlTprsl2?rtgNiPy}hlit)!%+p`oF^zP_}y6zCRCPR{=~ zIse~a1cHCp8U9>l_;rQh$0dd*2N~8*V)%cP{mXfVPiGlk9b>4gtE;G}cw}yV5u~la zBeIx*f$tCqGm2_>H2?+odb&7SBAkgq|tB>(X9wAll(;B+lKmYvj@BG!E z*e_=f82#trj=z>K#e2zQdhTuA<1E|Xme$-akC<*K#_%OZo98#1xKn_H%d{zli;^_k zUv?adP%%0!JT<+@NLORS6X&O!Z(N<_6keNJ`R1i1djyATe40yDE9cX6&58R3re?m9 z%sYNjv|XWV+RI66mMvby#<$~MPWcXd1v&qY=iCpb-rFuc*ZR@p9s!&9sMnS&UvoL# f68vC4XFubwtzt7xI_6vjdW6B#)z4*}Q$iB}-sjG^ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_unboxer_side_up_turn_right.png b/src/main/resources/assets/hbm/textures/blocks/crane_unboxer_side_up_turn_right.png new file mode 100644 index 0000000000000000000000000000000000000000..51827914cd045fec627c2eb9d630cfb281e01af4 GIT binary patch literal 509 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%Lfm0X`wFMMXu$#l=gOELpsG@qz^l7A{=a-Q7K5!i4_*{=UAx-rnAxo}R9* zuFlTR?Ck7m)20;`7UtyS`21&Ze#j6XAK%>EJY~w1%n;+^ILqnNr#Ch>R##U~nlvdt zKYxCU@0JNsduAln*49>5R_5mBmY0`zbaa%Jm9@9Gx3#skwzgJPRh5*KG&D5S*VmVp zmI58c$;tWuCg=Yfj6m@3I>Vo<48N{0{J6yMNo6SGe-WP2YP-2nzRvoA^ zb=svPg=Ze73Mi_1sduc;JeK&RuW*uftjLPxs_cSiCe7`Hf zS)D_-EnKCdpV|>8{z}Vtuiv+{aJECc;+AKBvpai=jpxGg=hw~u=5%b^@3PzWLgW48 w%JYRUR=NxP`x~7tz9utF;A7u~JBH7g)Y`>oetGotHPA;4p00i_>zopr0Q1q^VgLXD literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_unboxer_top_left.png b/src/main/resources/assets/hbm/textures/blocks/crane_unboxer_top_left.png new file mode 100644 index 0000000000000000000000000000000000000000..4d042062a00672ffd329dedb4aac3642c5c6dcee GIT binary patch literal 456 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%Lid0X`wFMMXtRmMmGkc=4h|ixw_ixM0D8?(Xgh6DIWc_xJVn_4fAm^z?Lf zb#-=jW@l$ln>MYzy}hlit+lnarKP30xw)ySY08u-#l^*ig@rjeIgO2t)z#ILCQZr= zF)og?oIH7QZEbC3Wu?!5hCMTqs;a8W%geV+h$<^9i;s_Ye#kJt#kZuSq@kf<`t<2j zr%o*`Ev>Jw&&6PHiO%M$h3XeTXVY!&0y|k~FtAzg)T1&hc@Do1{ZdozXMavtK3n@{=8J0bS4F>FVdQ&MBb@0OiEI=>Px# literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_unboxer_top_right.png b/src/main/resources/assets/hbm/textures/blocks/crane_unboxer_top_right.png new file mode 100644 index 0000000000000000000000000000000000000000..5f1aeb266e428c2ae456f7945a33217e6cc40a8f GIT binary patch literal 458 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%Lhe0X`wFMMXtRmMmGkc=4h|ixw_ixM0D8?(Xgh6DIWc_xJVn_4fAm^z?Lf zb#-=jW@l$ln>MYuxVW&eFefJ`K0dy=xp~TzDVZV0#c`I?r%!KeY^<)Xo-}Dvet!P^ z7T+xsqV~*4a(>8ATU%RMS(%%gTV7t?(b3`apP{U*ti8Rxt*x!KwY8z4Vd~VWlP6Cu zEiG+nX{oQT&&bLkOMw?%vOY Date: Sat, 26 Aug 2023 15:40:10 +0200 Subject: [PATCH 265/432] recipes, mug PWR cooling --- .../java/com/hbm/crafting/RodRecipes.java | 18 ++++++ .../java/com/hbm/inventory/fluid/Fluids.java | 2 +- .../machine/TileEntityPWRController.java | 56 ++++++++++++++++++- 3 files changed, 73 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/hbm/crafting/RodRecipes.java b/src/main/java/com/hbm/crafting/RodRecipes.java index 06f29fb44..62cd42f2d 100644 --- a/src/main/java/com/hbm/crafting/RodRecipes.java +++ b/src/main/java/com/hbm/crafting/RodRecipes.java @@ -3,6 +3,7 @@ package com.hbm.crafting; import static com.hbm.inventory.OreDictManager.*; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemBreedingRod.*; +import com.hbm.items.machine.ItemPWRFuel.EnumPWRFuel; import com.hbm.items.machine.ItemWatzPellet.EnumWatzType; import com.hbm.items.machine.ItemZirnoxRod.EnumZirnoxType; import com.hbm.main.CraftingManager; @@ -136,6 +137,23 @@ public class RodRecipes { addPellet(PB, EnumWatzType.LEAD); addPellet(B, EnumWatzType.BORON); addPellet(U238, EnumWatzType.DU); + + //PWR fuel + CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.pwr_fuel, EnumPWRFuel.MEU), new Object[] { "F", "I", "F", 'F', ModItems.billet_uranium_fuel, 'I', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.pwr_fuel, EnumPWRFuel.HEU233), new Object[] { "F", "I", "F", 'F', U233.billet(), 'I', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.pwr_fuel, EnumPWRFuel.HEU235), new Object[] { "F", "I", "F", 'F', U235.billet(), 'I', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.pwr_fuel, EnumPWRFuel.MEN), new Object[] { "F", "I", "F", 'F', ModItems.billet_neptunium_fuel, 'I', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.pwr_fuel, EnumPWRFuel.HEN237), new Object[] { "F", "I", "F", 'F', NP237.billet(), 'I', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.pwr_fuel, EnumPWRFuel.MOX), new Object[] { "F", "I", "F", 'F', ModItems.billet_mox_fuel, 'I', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.pwr_fuel, EnumPWRFuel.MEP), new Object[] { "F", "I", "F", 'F', ModItems.billet_pu_mix, 'I', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.pwr_fuel, EnumPWRFuel.HEP239), new Object[] { "F", "I", "F", 'F', PU239.billet(), 'I', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.pwr_fuel, EnumPWRFuel.HEP241), new Object[] { "F", "I", "F", 'F', PU241.billet(), 'I', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.pwr_fuel, EnumPWRFuel.MEA), new Object[] { "F", "I", "F", 'F', ModItems.billet_am_mix, 'I', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.pwr_fuel, EnumPWRFuel.HEA242), new Object[] { "F", "I", "F", 'F', AM242.billet(), 'I', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.pwr_fuel, EnumPWRFuel.HES326), new Object[] { "F", "I", "F", 'F', SA326.billet(), 'I', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.pwr_fuel, EnumPWRFuel.HES327), new Object[] { "F", "I", "F", 'F', SA327.billet(), 'I', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.pwr_fuel, EnumPWRFuel.BFB_AM_MIX), new Object[] { "F", "I", "B", 'F', ModItems.billet_am_mix, 'I', ModItems.plate_polymer, 'B', BI.billet() }); + CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.pwr_fuel, EnumPWRFuel.BFB_PU241), new Object[] { "F", "I", "B", 'F', PU241.billet(), 'I', ModItems.plate_polymer, 'B', BI.billet() }); } public static void registerInit() { diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index db2c231f5..cb2fb5539 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -511,7 +511,7 @@ public class Fluids { COOLANT.addTraits(new FT_Heatable().setEff(HeatingType.HEATEXCHANGER, 1.0D).setEff(HeatingType.PWR, 1.0D).addStep(300, 1, COOLANT_HOT, 1)); COOLANT_HOT.addTraits(new FT_Coolable(COOLANT, 1, 1, 300).setEff(CoolingType.HEATEXCHANGER, 1.0D)); - MUG.addTraits(new FT_Heatable().setEff(HeatingType.HEATEXCHANGER, 1.0D).addStep(400, 1, MUG_HOT, 1)); + MUG.addTraits(new FT_Heatable().setEff(HeatingType.HEATEXCHANGER, 1.0D).setEff(HeatingType.PWR, 1.0D).addStep(400, 1, MUG_HOT, 1), new FT_PWRModerator(1.15D)); MUG_HOT.addTraits(new FT_Coolable(MUG, 1, 1, 400).setEff(CoolingType.HEATEXCHANGER, 1.0D)); BLOOD.addTraits(new FT_Heatable().setEff(HeatingType.HEATEXCHANGER, 1.0D).addStep(500, 1, BLOOD_HOT, 1)); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java index 0b488f113..866820e63 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java @@ -62,8 +62,9 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG public boolean assembled; private AudioWrapper audio; - + protected List ports = new ArrayList(); + protected List rods = new ArrayList(); public TileEntityPWRController() { super(3); @@ -82,6 +83,8 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG heatexCount = 0; channelCount = 0; sourceCount = 0; + ports.clear(); + rods.clear(); int connectionsDouble = 0; int connectionsControlledDouble = 0; @@ -99,6 +102,8 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG for(Entry entry : rodMap.entrySet()) { BlockPos fuelPos = entry.getKey(); + rods.add(fuelPos); + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { boolean controlled = false; @@ -211,6 +216,8 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG this.typeLoaded = -1; } + if(amountLoaded > rodCount) amountLoaded = rodCount; + /* CORE COOLING */ double coreCoolingApproachNum = getXOverE((double) this.heatexCount * 5 / (double) this.rodCount, 2) / 2D; int averageCoreHeat = (this.coreHeat + this.hullHeat) / 2; @@ -218,7 +225,8 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG this.hullHeat -= (hullHeat - averageCoreHeat) * coreCoolingApproachNum; updateCoolant(); - + + this.coreHeat *= 0.999D; this.hullHeat *= 0.999D; this.flux = newFlux; @@ -227,6 +235,10 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG this.flux *= tanks[0].getTankType().getTrait(FT_PWRModerator.class).getMultiplier(); } + if(this.coreHeat > this.coreHeatCapacity) { + meltDown(); + } + NBTTagCompound data = new NBTTagCompound(); tanks[0].writeToNBT(data, "t0"); tanks[1].writeToNBT(data, "t1"); @@ -264,6 +276,31 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG } } + protected void meltDown() { + + worldObj.func_147480_a(xCoord, yCoord, zCoord, false); + + double x = 0; + double y = 0; + double z = 0; + + for(BlockPos pos : this.rods) { + Block b = worldObj.getBlock(pos.getX(), pos.getY(), pos.getZ()); + b.breakBlock(worldObj, pos.getX(), pos.getY(), pos.getZ(), b, worldObj.getBlockMetadata(pos.getX(), pos.getY(), pos.getZ())); + worldObj.setBlock(pos.getX(), pos.getY(), pos.getZ(), ModBlocks.corium_block, 5, 3); + + x += pos.getX() + 0.5; + y += pos.getY() + 0.5; + z += pos.getZ() + 0.5; + } + + x /= rods.size(); + y /= rods.size(); + z /= rods.size(); + + worldObj.newExplosion(null, x, y, z, 15F, true, true); + } + @Override public AudioWrapper createAudioLoop() { return MainRegistry.proxy.getLoopedSound("hbm:block.reactorLoop", xCoord, yCoord, zCoord, 1F, 10F, 1.0F, 20); @@ -398,6 +435,15 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG int[] port = nbt.getIntArray("p" + i); ports.add(new BlockPos(port[0], port[1], port[2])); } + + rods.clear(); + int rodCount = nbt.getInteger("rodCount"); + for(int i = 0; i < rodCount; i++) { + if(nbt.hasKey("r" + i)) { + int[] port = nbt.getIntArray("r" + i); + rods.add(new BlockPos(port[0], port[1], port[2])); + } + } } @Override @@ -430,6 +476,12 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG BlockPos pos = ports.get(i); nbt.setIntArray("p" + i, new int[] { pos.getX(), pos.getY(), pos.getZ() }); } + + nbt.setInteger("rodCount", rods.size()); + for(int i = 0; i < rods.size(); i++) { + BlockPos pos = rods.get(i); + nbt.setIntArray("r" + i, new int[] { pos.getX(), pos.getY(), pos.getZ() }); + } } @Override From 64db18a2b41d5667ce676f411c74bf3c579fe13d Mon Sep 17 00:00:00 2001 From: MartinTheDragon Date: Sat, 26 Aug 2023 21:28:36 +0200 Subject: [PATCH 266/432] Improve crane I/O screwdriver logic Instead of cycling through all directions, the side the player clicks on will be manipulated directly, and, if applicable, input will be swapped with output and vice versa. Right-clicking normally changes the conveyor side, shift-right-clicking the machine side. Clicking on a side twice will manipulate the opposite side. --- .../hbm/blocks/network/BlockCraneBase.java | 32 +++---------------- .../hbm/blocks/network/CraneExtractor.java | 5 --- .../com/hbm/blocks/network/CraneUnboxer.java | 5 --- .../network/TileEntityCraneBase.java | 31 ++++++++++++------ 4 files changed, 27 insertions(+), 46 deletions(-) diff --git a/src/main/java/com/hbm/blocks/network/BlockCraneBase.java b/src/main/java/com/hbm/blocks/network/BlockCraneBase.java index 3cdd1f8e5..577ceb614 100644 --- a/src/main/java/com/hbm/blocks/network/BlockCraneBase.java +++ b/src/main/java/com/hbm/blocks/network/BlockCraneBase.java @@ -6,7 +6,6 @@ import com.hbm.items.tool.ItemTooling; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.tileentity.network.TileEntityCraneBase; -import com.hbm.util.ChatBuilder; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; @@ -23,7 +22,6 @@ import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; @@ -92,10 +90,6 @@ public abstract class BlockCraneBase extends BlockContainer implements IBlockSid world.setBlockMetadataWithNotify(x, y, z, l, 2); } - protected boolean hasReversedIO() { - return false; - } - @Override public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) { if (tool != ToolType.SCREWDRIVER) return false; @@ -105,28 +99,12 @@ public abstract class BlockCraneBase extends BlockContainer implements IBlockSid TileEntityCraneBase craneTileEntity = (TileEntityCraneBase) te; - // some cranes like the ejector have reversed input and output sides - // so this bit of logic is to hide that away from the player - boolean actuallyCycleInput = player.isSneaking() != hasReversedIO(); - ForgeDirection newDirection; + ForgeDirection newDirection = ForgeDirection.getOrientation(side); - if (actuallyCycleInput) { // cycle input - // it's in reverse because players are more likely to want to turn the output from DOWN to UP - int newValue = Math.floorMod(world.getBlockMetadata(x, y, z) - 1, 6); - newDirection = ForgeDirection.getOrientation(newValue); - - world.setBlockMetadataWithNotify(x, y, z, newValue, 3); - craneTileEntity.ensureOutputOverrideValid(); - } else { // cycle output - newDirection = craneTileEntity.cycleOutputOverride(); - } - - if (!world.isRemote) { - ChatBuilder message = player.isSneaking() - ? ChatBuilder.start("Input: ").color(EnumChatFormatting.GREEN) - : ChatBuilder.start("Output: ").color(EnumChatFormatting.RED); - message.next(newDirection.name()).color(EnumChatFormatting.WHITE); - player.addChatComponentMessage(message.flush()); + if (player.isSneaking()) { + craneTileEntity.setOutputOverride(newDirection); + } else { + craneTileEntity.setInput(newDirection); } return true; diff --git a/src/main/java/com/hbm/blocks/network/CraneExtractor.java b/src/main/java/com/hbm/blocks/network/CraneExtractor.java index 7b142bb70..a50ff756a 100644 --- a/src/main/java/com/hbm/blocks/network/CraneExtractor.java +++ b/src/main/java/com/hbm/blocks/network/CraneExtractor.java @@ -42,11 +42,6 @@ public class CraneExtractor extends BlockCraneBase { this.iconDirectionalSideDownTurnRight = iconRegister.registerIcon(RefStrings.MODID + ":crane_out_side_right_turn_down"); } - @Override - protected boolean hasReversedIO() { - return true; - } - @Override public int getRotationFromSide(IBlockAccess world, int x, int y, int z, int side) { int meta = world.getBlockMetadata(x, y, z); diff --git a/src/main/java/com/hbm/blocks/network/CraneUnboxer.java b/src/main/java/com/hbm/blocks/network/CraneUnboxer.java index 109be9ac7..b9ffd19a2 100644 --- a/src/main/java/com/hbm/blocks/network/CraneUnboxer.java +++ b/src/main/java/com/hbm/blocks/network/CraneUnboxer.java @@ -50,11 +50,6 @@ public class CraneUnboxer extends BlockCraneBase implements IEnterableBlock { this.iconDirectionalSideDownTurnRight = iconRegister.registerIcon(RefStrings.MODID + ":crane_unboxer_side_right_turn_down"); } - @Override - protected boolean hasReversedIO() { - return true; - } - @Override public int getRotationFromSide(IBlockAccess world, int x, int y, int z, int side) { int meta = world.getBlockMetadata(x, y, z); diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCraneBase.java b/src/main/java/com/hbm/tileentity/network/TileEntityCraneBase.java index 28daa73f7..8449c27a1 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCraneBase.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCraneBase.java @@ -46,18 +46,31 @@ public abstract class TileEntityCraneBase extends TileEntityMachineBase { return outputOverride; } - public ForgeDirection cycleOutputOverride() { - do { - outputOverride = ForgeDirection.getOrientation(Math.floorMod(outputOverride.ordinal() - 1, 7)); - } while (outputOverride.ordinal() == getBlockMetadata()); + public void setOutputOverride(ForgeDirection direction) { + ForgeDirection oldSide = getOutputSide(); + if (oldSide == direction) + direction = direction.getOpposite(); - onBlockChanged(); - return outputOverride; + outputOverride = direction; + + if (direction == getInputSide()) + setInput(oldSide); + else + onBlockChanged(); } - public void ensureOutputOverrideValid() { - if (outputOverride.ordinal() == getBlockMetadata()) - cycleOutputOverride(); + public void setInput(ForgeDirection direction) { + outputOverride = getOutputSide(); // save the current output, if it isn't saved yet + + ForgeDirection oldSide = getInputSide(); + if (oldSide == direction) + direction = direction.getOpposite(); + + boolean needSwapOutput = direction == getOutputSide(); + worldObj.setBlockMetadataWithNotify(xCoord, yCoord, zCoord, direction.ordinal(), needSwapOutput ? 4 : 3); + + if (needSwapOutput) + setOutputOverride(oldSide); } protected void onBlockChanged() { From 51c5a3fdd42b514a843a0df1d90805ac9c5cde29 Mon Sep 17 00:00:00 2001 From: Bob Date: Sat, 26 Aug 2023 21:52:43 +0200 Subject: [PATCH 267/432] tsar makeover, torex tweaks --- .../hbm/entity/effect/EntityNukeTorex.java | 14 +- .../java/com/hbm/items/tool/ItemWandD.java | 2 +- .../java/com/hbm/main/ResourceManager.java | 4 +- .../hbm/render/entity/effect/RenderTorex.java | 3 + .../hbm/render/item/ItemRenderLibrary.java | 10 - .../hbm/render/tileentity/RenderNukeTsar.java | 68 +- .../resources/assets/hbm/models/TsarBomba.obj | 799 -- .../assets/hbm/models/bombs/tsar.obj | 10781 ++++++++++++++++ .../assets/hbm/textures/models/TsarBomba.png | Bin 17287 -> 0 bytes .../assets/hbm/textures/models/bombs/tsar.png | Bin 0 -> 15090 bytes 10 files changed, 10843 insertions(+), 838 deletions(-) delete mode 100644 src/main/resources/assets/hbm/models/TsarBomba.obj create mode 100644 src/main/resources/assets/hbm/models/bombs/tsar.obj delete mode 100644 src/main/resources/assets/hbm/textures/models/TsarBomba.png create mode 100644 src/main/resources/assets/hbm/textures/models/bombs/tsar.png diff --git a/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java b/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java index 574a81992..be72b5c8b 100644 --- a/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java +++ b/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java @@ -51,6 +51,7 @@ public class EntityNukeTorex extends Entity { public void onUpdate() { double s = this.getScale(); + double cs = 1.5; int maxAge = this.getMaxAge(); if(worldObj.isRemote) { @@ -77,7 +78,7 @@ public class EntityNukeTorex extends Entity { double x = posX + rand.nextGaussian() * range; double z = posZ + rand.nextGaussian() * range; Cloudlet cloud = new Cloudlet(x, lastSpawnY, z, (float)(rand.nextDouble() * 2D * Math.PI), 0, lifetime); - cloud.setScale(1F + this.ticksExisted * 0.005F * (float) s, 5F * (float) s); + cloud.setScale(1F + this.ticksExisted * 0.005F * (float) cs, 5F * (float) cs); cloudlets.add(cloud); } @@ -99,7 +100,7 @@ public class EntityNukeTorex extends Entity { if(ticksExisted < 200) { for(int i = 0; i < 2; i++) { Cloudlet cloud = new Cloudlet(posX, posY + coreHeight, posZ, (float)(rand.nextDouble() * 2D * Math.PI), 0, lifetime, TorexType.RING); - cloud.setScale(1F + this.ticksExisted * 0.005F * (float) s * 0.5F, 3F * (float) s); + cloud.setScale(1F + this.ticksExisted * 0.005F * (float) cs * 0.5F, 3F * (float) (cs * s)); cloudlets.add(cloud); } } @@ -123,6 +124,15 @@ public class EntityNukeTorex extends Entity { } } + public EntityNukeTorex setScale(float scale) { + getDataWatcher().updateObject(10, scale); + this.coreHeight = this.coreHeight / 1.5D * scale; + this.convectionHeight = this.convectionHeight / 1.5D * scale; + this.torusWidth = this.torusWidth / 1.5D * scale; + this.rollerSize = this.rollerSize / 1.5D * scale; + return this; + } + public double getSimulationSpeed() { int lifetime = getMaxAge(); diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index 1e8e427dc..f5c56a1a2 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -63,7 +63,7 @@ public class ItemWandD extends Item { EntityNukeTorex torex = new EntityNukeTorex(world); torex.setPositionAndRotation(pos.blockX, pos.blockY + 1, pos.blockZ, 0, 0); - torex.getDataWatcher().updateObject(10, 1.5F); + torex.setScale(1.5F); world.spawnEntityInWorld(torex); /*EntityTracker entitytracker = ((WorldServer) world).getEntityTracker(); IntHashMap map = ReflectionHelper.getPrivateValue(EntityTracker.class, entitytracker, "trackedEntityIDs", "field_72794_c"); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index fcda9054a..be61c02bd 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -242,7 +242,7 @@ public class ResourceManager { public static final IModelCustom bomb_boy = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/LilBoy1.obj")); public static final IModelCustom bomb_man = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/FatMan.obj")).asDisplayList(); public static final IModelCustom bomb_mike = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/ivymike.obj")); - public static final IModelCustom bomb_tsar = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/TsarBomba.obj")); + public static final IModelCustom bomb_tsar = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/tsar.obj")).asDisplayList(); public static final IModelCustom bomb_prototype = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/Prototype.obj")); public static final IModelCustom bomb_fleija = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/Fleija.obj")); public static final IModelCustom bomb_solinium = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/bombs/ufp.obj")); @@ -614,7 +614,7 @@ public class ResourceManager { public static final ResourceLocation bomb_boy_tex = new ResourceLocation(RefStrings.MODID, "textures/models/lilboy.png"); public static final ResourceLocation bomb_man_tex = new ResourceLocation(RefStrings.MODID, "textures/models/FatMan.png"); public static final ResourceLocation bomb_mike_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/ivymike.png"); - public static final ResourceLocation bomb_tsar_tex = new ResourceLocation(RefStrings.MODID, "textures/models/TsarBomba.png"); + public static final ResourceLocation bomb_tsar_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/tsar.png"); public static final ResourceLocation bomb_prototype_tex = new ResourceLocation(RefStrings.MODID, "textures/models/Prototype.png"); public static final ResourceLocation bomb_fleija_tex = new ResourceLocation(RefStrings.MODID, "textures/models/Fleija.png"); public static final ResourceLocation bomb_solinium_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/ufp.png"); diff --git a/src/main/java/com/hbm/render/entity/effect/RenderTorex.java b/src/main/java/com/hbm/render/entity/effect/RenderTorex.java index dfa21028c..e54f175a0 100644 --- a/src/main/java/com/hbm/render/entity/effect/RenderTorex.java +++ b/src/main/java/com/hbm/render/entity/effect/RenderTorex.java @@ -32,10 +32,13 @@ public class RenderTorex extends Render { GL11.glPushMatrix(); GL11.glTranslated(x, y, z); + boolean fog = GL11.glIsEnabled(GL11.GL_FOG); + if(fog) GL11.glDisable(GL11.GL_FOG); EntityNukeTorex cloud = (EntityNukeTorex)entity; cloudletWrapper(cloud, interp); if(cloud.ticksExisted < 101) flashWrapper(cloud, interp); if(cloud.ticksExisted < 10 && ModEventHandlerClient.flashTimer < 100) ModEventHandlerClient.flashTimer = 200; + if(fog) GL11.glEnable(GL11.GL_FOG); GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java index 57dadbfde..2e2820245 100644 --- a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java +++ b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java @@ -444,16 +444,6 @@ public class ItemRenderLibrary { ResourceManager.bomb_boy.renderAll(); }}); - renderers.put(Item.getItemFromBlock(ModBlocks.nuke_tsar), new ItemRenderBase() { - public void renderInventory() { - GL11.glScaled(2.25, 2.25, 2.25); - } - public void renderCommon() { - GL11.glTranslated(1.5, 0, 0); - bindTexture(ResourceManager.bomb_tsar_tex); - ResourceManager.bomb_tsar.renderAll(); - }}); - renderers.put(Item.getItemFromBlock(ModBlocks.nuke_prototype), new ItemRenderBase() { public void renderInventory() { GL11.glScaled(2.25, 2.25, 2.25); diff --git a/src/main/java/com/hbm/render/tileentity/RenderNukeTsar.java b/src/main/java/com/hbm/render/tileentity/RenderNukeTsar.java index 64f452ea5..c1a5032c3 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderNukeTsar.java +++ b/src/main/java/com/hbm/render/tileentity/RenderNukeTsar.java @@ -2,38 +2,58 @@ package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; +import com.hbm.blocks.ModBlocks; import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; -public class RenderNukeTsar extends TileEntitySpecialRenderer { +public class RenderNukeTsar extends TileEntitySpecialRenderer implements IItemRendererProvider { - @Override - public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) - { - GL11.glPushMatrix(); - GL11.glTranslated(x + 0.5D, y, z + 0.5D); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - switch(tileEntity.getBlockMetadata()) - { - case 2: - GL11.glRotatef(90, 0F, 1F, 0F); break; - case 4: - GL11.glRotatef(180, 0F, 1F, 0F); break; - case 3: - GL11.glRotatef(270, 0F, 1F, 0F); break; - case 5: - GL11.glRotatef(0, 0F, 1F, 0F); break; + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + + switch(tileEntity.getBlockMetadata()) { + case 2: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(0, 0F, 1F, 0F); break; } - bindTexture(ResourceManager.bomb_tsar_tex); - ResourceManager.bomb_tsar.renderAll(); - - GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.bomb_tsar_tex); + ResourceManager.bomb_tsar.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glPopMatrix(); - } + GL11.glPopMatrix(); + } + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.nuke_tsar); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase() { + public void renderInventory() { + GL11.glScaled(2.25, 2.25, 2.25); + } + public void renderCommon() { + GL11.glTranslated(1.5, 0, 0); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.bomb_tsar_tex); ResourceManager.bomb_tsar.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glEnable(GL11.GL_CULL_FACE); + }}; + } } diff --git a/src/main/resources/assets/hbm/models/TsarBomba.obj b/src/main/resources/assets/hbm/models/TsarBomba.obj deleted file mode 100644 index e74a3094e..000000000 --- a/src/main/resources/assets/hbm/models/TsarBomba.obj +++ /dev/null @@ -1,799 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'tsarBomb.blend' -# www.blender.org -o Cylinder -v -1.000000 0.999999 -1.000000 -v 1.000000 1.000001 -1.000000 -v -1.000000 0.617316 -0.923880 -v 1.000000 0.617317 -0.923880 -v -0.999999 0.292892 -0.707107 -v 1.000001 0.292894 -0.707107 -v -0.999999 0.076120 -0.382683 -v 1.000001 0.076121 -0.382683 -v -0.999999 -0.000001 0.000000 -v 1.000001 0.000001 0.000000 -v -0.999999 0.076120 0.382684 -v 1.000001 0.076121 0.382684 -v -0.999999 0.292892 0.707107 -v 1.000001 0.292894 0.707107 -v -1.000000 0.617316 0.923880 -v 1.000000 0.617317 0.923880 -v -1.000000 0.999999 1.000000 -v 1.000000 1.000001 1.000000 -v -1.000000 1.382682 0.923880 -v 1.000000 1.382684 0.923880 -v -1.000001 1.707106 0.707107 -v 0.999999 1.707108 0.707107 -v -1.000001 1.923879 0.382684 -v 0.999999 1.923880 0.382684 -v -1.000001 1.999999 -0.000000 -v 0.999999 2.000001 -0.000000 -v -1.000001 1.923878 -0.382684 -v 0.999999 1.923880 -0.382684 -v -1.000001 1.707106 -0.707107 -v 0.999999 1.707108 -0.707107 -v -1.000000 1.382682 -0.923880 -v 1.000000 1.382684 -0.923880 -v 2.000000 0.674719 -0.785298 -v 2.000000 0.398959 -0.601041 -v 1.999999 0.214702 -0.325281 -v 1.999999 0.150000 -0.000000 -v 1.999999 0.214702 0.325281 -v 2.000000 0.398959 0.601041 -v 2.000000 0.674719 0.785298 -v 2.000000 1.000000 0.850000 -v 2.000000 1.325281 0.785298 -v 2.000000 1.601041 0.601041 -v 2.000001 1.785298 0.325281 -v 2.000001 1.850000 0.000000 -v 2.000001 1.785298 -0.325281 -v 2.000000 1.601041 -0.601041 -v 2.000000 1.325281 -0.785298 -v 2.000000 1.000000 -0.850000 -v -3.500000 1.000000 -0.600000 -v -3.500000 1.229610 -0.554328 -v -3.499999 1.424264 -0.424264 -v -3.499999 1.554328 -0.229610 -v -3.499999 1.600000 0.000000 -v -3.499999 1.554328 0.229610 -v -3.499999 1.424264 0.424264 -v -3.500000 1.229610 0.554328 -v -3.500000 1.000000 0.600000 -v -3.500000 0.770390 0.554328 -v -3.500000 0.575736 0.424264 -v -3.500000 0.445672 0.229610 -v -3.500000 0.400000 -0.000000 -v -3.500000 0.445672 -0.229610 -v -3.500000 0.575736 -0.424264 -v -3.500000 0.770390 -0.554328 -v -5.000000 1.000000 -0.600000 -v -5.000000 1.229610 -0.554328 -v -5.000000 1.424264 -0.424264 -v -5.000000 1.554328 -0.229610 -v -4.999999 1.600000 0.000000 -v -5.000000 1.554328 0.229610 -v -5.000000 1.424264 0.424264 -v -5.000000 1.229610 0.554328 -v -5.000000 1.000000 0.600000 -v -5.000000 0.770390 0.554328 -v -5.000000 0.575736 0.424264 -v -5.000000 0.445672 0.229610 -v -5.000000 0.400000 -0.000000 -v -5.000000 0.445672 -0.229610 -v -5.000000 0.575736 -0.424264 -v -5.000000 0.770390 -0.554328 -v 2.700000 1.000000 -0.600000 -v 2.700000 1.229610 -0.554328 -v 2.700001 1.424264 -0.424264 -v 2.700001 1.554328 -0.229610 -v 2.700001 1.600000 0.000000 -v 2.700001 1.554328 0.229610 -v 2.700001 1.424264 0.424264 -v 2.700000 1.229610 0.554328 -v 2.700000 1.000000 0.600000 -v 2.700000 0.770390 0.554328 -v 2.700000 0.575736 0.424264 -v 2.699999 0.445672 0.229610 -v 2.699999 0.400000 -0.000000 -v 2.699999 0.445672 -0.229610 -v 2.700000 0.575736 -0.424264 -v 2.700000 0.770390 -0.554328 -v 3.000000 1.000000 -0.000000 -v -4.250000 0.289964 -1.196548 -v -4.250000 0.318774 -1.213181 -v -4.250000 1.391259 0.016633 -v -3.500000 1.391259 0.016633 -v -4.250000 1.391259 -0.016633 -v -3.500000 1.391259 -0.016633 -v -4.250000 2.391259 -0.016637 -v -4.250000 1.891259 0.016631 -v -4.250000 0.289968 1.196550 -v -4.250000 0.789966 0.330524 -v -3.500000 0.789966 0.330524 -v -4.250000 0.818775 0.347157 -v -3.500000 0.818775 0.347157 -v -4.250000 1.891259 -0.016635 -v -4.250000 0.818775 -0.347157 -v -3.500000 0.818775 -0.347157 -v -4.250000 0.789966 -0.330524 -v -3.500000 0.789966 -0.330524 -v -4.250000 2.391259 0.016629 -v -4.250000 0.318777 1.213183 -v -5.000000 2.391259 -0.016637 -v -5.000000 1.891259 0.016631 -v -5.000000 1.891259 -0.016635 -v -5.000000 2.391259 0.016629 -v -4.250000 2.057926 -0.016636 -v -4.250000 2.224592 -0.016636 -v -3.500000 2.224592 -0.016636 -v -3.750000 2.391259 -0.016637 -v -3.750000 2.391259 0.016629 -v -4.250000 2.057926 0.016630 -v -4.250000 2.224592 0.016630 -v -3.500000 2.224592 0.016630 -v -4.250000 0.568774 -0.780169 -v -4.250000 0.539965 -0.763536 -v -4.250000 0.568776 0.780170 -v -4.250000 0.539967 0.763537 -v -5.000000 0.289964 -1.196548 -v -5.000000 0.318773 -1.213181 -v -5.000000 0.568774 -0.780169 -v -5.000000 0.539965 -0.763536 -v -5.000000 0.289968 1.196550 -v -5.000000 0.318777 1.213183 -v -5.000000 0.568776 0.780170 -v -5.000000 0.539967 0.763537 -v -3.750000 0.289965 -1.196548 -v -3.500000 0.373298 -1.052211 -v -3.750000 0.318774 -1.213181 -v -3.500000 0.402107 -1.068844 -v -3.750000 0.318777 1.213183 -v -3.500000 0.402110 1.068846 -v -3.750000 0.289968 1.196550 -v -3.500000 0.373301 1.052213 -vt 0.160468 0.428574 -vt 0.125244 0.428574 -vt 0.125245 0.248024 -vt 0.090021 0.428574 -vt 0.090021 0.248023 -vt 0.054797 0.428574 -vt 0.054798 0.248023 -vt 0.019573 0.428574 -vt 0.019574 0.248023 -vt 0.583153 0.428576 -vt 0.547929 0.428576 -vt 0.547929 0.248025 -vt 0.512705 0.428576 -vt 0.512706 0.248025 -vt 0.477481 0.428575 -vt 0.477482 0.248025 -vt 0.442258 0.428575 -vt 0.442258 0.248025 -vt 0.407034 0.428575 -vt 0.407035 0.248025 -vt 0.371810 0.428575 -vt 0.371811 0.248024 -vt 0.336587 0.428575 -vt 0.336587 0.248024 -vt 0.301363 0.428575 -vt 0.301363 0.248024 -vt 0.266139 0.428575 -vt 0.266140 0.248024 -vt 0.230915 0.428575 -vt 0.195692 0.428575 -vt 0.160469 0.248024 -vt 0.195692 0.248024 -vt 0.308409 0.019574 -vt 0.329543 0.019574 -vt 0.343633 0.019575 -vt 0.364767 0.019575 -vt 0.378856 0.019574 -vt 0.399991 0.019574 -vt 0.414080 0.019575 -vt 0.435214 0.019575 -vt 0.449303 0.019574 -vt 0.470438 0.019574 -vt 0.484527 0.019575 -vt 0.505661 0.019575 -vt 0.519751 0.019574 -vt 0.540885 0.019574 -vt 0.554975 0.019575 -vt 0.576109 0.019575 -vt 0.583153 0.248025 -vt 0.026620 0.019573 -vt 0.047754 0.019573 -vt 0.061843 0.019574 -vt 0.082977 0.019574 -vt 0.097067 0.019574 -vt 0.118201 0.019574 -vt 0.132291 0.019574 -vt 0.153425 0.019574 -vt 0.167514 0.019573 -vt 0.188649 0.019573 -vt 0.202738 0.019575 -vt 0.223872 0.019575 -vt 0.230916 0.248024 -vt 0.237962 0.019573 -vt 0.259096 0.019574 -vt 0.273185 0.019574 -vt 0.294320 0.019574 -vt 0.980421 0.146384 -vt 0.980421 0.167518 -vt 0.845008 0.167513 -vt 0.980420 0.188653 -vt 0.980419 0.209787 -vt 0.845006 0.209781 -vt 0.980418 0.230921 -vt 0.845005 0.230915 -vt 0.980417 0.252055 -vt 0.845004 0.252050 -vt 0.980416 0.273189 -vt 0.845003 0.273184 -vt 0.980415 0.294324 -vt 0.845002 0.294318 -vt 0.980415 0.315458 -vt 0.845002 0.315452 -vt 0.980414 0.336592 -vt 0.845001 0.336587 -vt 0.980413 0.357726 -vt 0.845000 0.357721 -vt 0.845014 0.019573 -vt 0.980427 0.019579 -vt 0.980426 0.040713 -vt 0.845013 0.040707 -vt 0.980425 0.061847 -vt 0.845012 0.061842 -vt 0.980424 0.082982 -vt 0.845011 0.082976 -vt 0.980423 0.104116 -vt 0.845010 0.104110 -vt 0.980422 0.125250 -vt 0.845009 0.125244 -vt 0.062131 0.791805 -vt 0.027661 0.768773 -vt 0.042605 0.693644 -vt 0.052155 0.519821 -vt 0.047751 0.586778 -vt 0.026617 0.586778 -vt 0.580511 0.519823 -vt 0.576108 0.586780 -vt 0.554973 0.586780 -vt 0.515347 0.519823 -vt 0.545287 0.519823 -vt 0.540884 0.586780 -vt 0.480123 0.519822 -vt 0.510063 0.519822 -vt 0.505660 0.586780 -vt 0.444899 0.519822 -vt 0.474840 0.519822 -vt 0.470437 0.586780 -vt 0.409676 0.519822 -vt 0.439616 0.519822 -vt 0.435213 0.586780 -vt 0.374452 0.519822 -vt 0.404392 0.519822 -vt 0.399989 0.586780 -vt 0.097065 0.586779 -vt 0.118199 0.586779 -vt 0.107632 0.646408 -vt 0.339228 0.519822 -vt 0.369168 0.519822 -vt 0.364765 0.586780 -vt 0.304004 0.519822 -vt 0.333945 0.519822 -vt 0.329541 0.586780 -vt 0.298721 0.519822 -vt 0.294318 0.586779 -vt 0.273183 0.586779 -vt 0.263497 0.519822 -vt 0.259094 0.586779 -vt 0.237960 0.586779 -vt 0.228273 0.519822 -vt 0.223870 0.586779 -vt 0.202736 0.586779 -vt 0.193050 0.519822 -vt 0.188646 0.586779 -vt 0.167512 0.586779 -vt 0.519750 0.586780 -vt 0.530317 0.646409 -vt 0.484526 0.586780 -vt 0.495093 0.646409 -vt 0.449302 0.586780 -vt 0.459869 0.646409 -vt 0.414079 0.586780 -vt 0.424645 0.646409 -vt 0.378855 0.586780 -vt 0.389422 0.646409 -vt 0.343631 0.586780 -vt 0.354198 0.646409 -vt 0.308407 0.586780 -vt 0.318974 0.646409 -vt 0.283750 0.646409 -vt 0.248526 0.646409 -vt 0.213303 0.646409 -vt 0.178079 0.646408 -vt 0.132288 0.586779 -vt 0.153423 0.586779 -vt 0.142855 0.646408 -vt 0.061841 0.586778 -vt 0.082975 0.586779 -vt 0.072408 0.646408 -vt 0.037184 0.646408 -vt 0.565540 0.646410 -vt 0.087378 0.519821 -vt 0.122602 0.519821 -vt 0.157826 0.519822 -vt 0.233557 0.519822 -vt 0.268781 0.519822 -vt 0.550570 0.519823 -vt 0.164969 0.753263 -vt 0.164971 0.685556 -vt 0.167974 0.685556 -vt 0.207121 0.753262 -vt 0.207121 0.685556 -vt 0.210124 0.685556 -vt 0.249270 0.685556 -vt 0.252274 0.685556 -vt 0.252274 0.753264 -vt 0.249271 0.753264 -vt 0.252274 0.798401 -vt 0.715578 0.663671 -vt 0.712575 0.663671 -vt 0.712576 0.618535 -vt 0.712576 0.878866 -vt 0.712575 0.803639 -vt 0.715578 0.803639 -vt 0.712575 0.731377 -vt 0.715578 0.731377 -vt 0.712575 0.776515 -vt 0.667437 0.731377 -vt 0.667438 0.663671 -vt 0.697529 0.799084 -vt 0.622299 0.799084 -vt 0.760716 0.663671 -vt 0.760716 0.731377 -vt 0.715578 0.776515 -vt 0.730624 0.799084 -vt 0.164969 0.798401 -vt 0.167973 0.753263 -vt 0.712575 0.177554 -vt 0.715578 0.177554 -vt 0.715578 0.204678 -vt 0.207120 0.798401 -vt 0.210124 0.753262 -vt 0.715578 0.579388 -vt 0.712575 0.579388 -vt 0.712575 0.504161 -vt 0.715578 0.019573 -vt 0.715578 0.064710 -vt 0.712575 0.064710 -vt 0.760716 0.064710 -vt 0.760716 0.132416 -vt 0.715578 0.132416 -vt 0.712575 0.132416 -vt 0.667437 0.132416 -vt 0.667437 0.064710 -vt 0.712575 0.319054 -vt 0.715578 0.319054 -vt 0.715578 0.364192 -vt 0.712575 0.477036 -vt 0.715578 0.477036 -vt 0.760716 0.364192 -vt 0.760716 0.431899 -vt 0.715578 0.431899 -vt 0.712575 0.431899 -vt 0.667437 0.431899 -vt 0.667437 0.364192 -vt 0.697529 0.200123 -vt 0.622299 0.200123 -vt 0.730624 0.200123 -vt 0.712575 0.204678 -vt 0.715578 0.279908 -vt 0.697529 0.499605 -vt 0.622300 0.499605 -vt 0.730624 0.499605 -vt 0.845008 0.146379 -vt 0.845007 0.188647 -vt 0.062131 0.685556 -vt 0.083265 0.685556 -vt 0.102790 0.693644 -vt 0.117734 0.708588 -vt 0.125822 0.728113 -vt 0.125822 0.749248 -vt 0.117734 0.768773 -vt 0.102790 0.783717 -vt 0.083265 0.791805 -vt 0.042605 0.783717 -vt 0.019573 0.749248 -vt 0.019573 0.728114 -vt 0.027661 0.708588 -vt 0.022215 0.519821 -vt 0.198333 0.519822 -vt 0.163109 0.519822 -vt 0.057438 0.519821 -vt 0.092662 0.519821 -vt 0.127886 0.519821 -vt 0.249271 0.798401 -vt 0.715579 0.618535 -vt 0.715579 0.878866 -vt 0.622300 0.731377 -vt 0.805854 0.799084 -vt 0.805854 0.731377 -vt 0.167972 0.798401 -vt 0.210123 0.798401 -vt 0.715578 0.504161 -vt 0.712575 0.019573 -vt 0.712575 0.364192 -vt 0.622300 0.132416 -vt 0.805853 0.132416 -vt 0.805853 0.200123 -vt 0.712575 0.279908 -vt 0.622299 0.431899 -vt 0.805853 0.499605 -vt 0.805853 0.431899 -vn 0.000000 -0.195100 -0.980800 -vn 0.000000 -0.555600 -0.831500 -vn 0.000000 -0.831500 -0.555600 -vn 0.000000 -0.980800 -0.195100 -vn 0.000000 -0.980800 0.195100 -vn 0.000000 -0.831500 0.555600 -vn 0.000000 -0.555600 0.831500 -vn 0.000000 -0.195100 0.980800 -vn -0.000000 0.195100 0.980800 -vn -0.000000 0.555600 0.831500 -vn -0.000000 0.831500 0.555600 -vn -0.000000 0.980800 0.195100 -vn -0.000000 0.980800 -0.195100 -vn -0.000000 0.831500 -0.555600 -vn -0.000000 0.195100 -0.980800 -vn -0.000000 0.555600 -0.831500 -vn -0.155000 0.968900 0.192700 -vn -0.155000 0.821400 0.548900 -vn -0.155000 0.548900 0.821400 -vn -0.155000 0.192700 0.968900 -vn -0.155000 -0.192700 0.968900 -vn -0.155000 -0.548900 0.821400 -vn -0.155000 -0.821400 0.548900 -vn -0.155000 -0.968900 0.192700 -vn -0.155000 -0.968900 -0.192700 -vn -0.155000 -0.821400 -0.548900 -vn -0.155000 -0.548900 -0.821400 -vn -0.155000 -0.192700 -0.968900 -vn -0.155000 0.192700 -0.968900 -vn -0.155000 0.548900 -0.821400 -vn -0.155000 0.821400 -0.548900 -vn -0.155000 0.968900 -0.192700 -vn -1.000000 0.000000 0.000000 -vn 0.330600 -0.925600 -0.184100 -vn 0.330600 -0.925600 0.184100 -vn 0.330600 -0.784700 0.524300 -vn 0.330600 -0.524300 0.784700 -vn 0.330600 -0.184100 0.925600 -vn 0.330600 0.184100 0.925600 -vn 0.330600 0.524300 0.784700 -vn 0.890900 -0.252300 -0.377600 -vn 0.330600 0.784700 0.524300 -vn 0.330600 0.925600 0.184100 -vn 0.330600 0.925600 -0.184100 -vn 0.330600 0.784700 -0.524300 -vn 0.330600 0.524300 -0.784700 -vn 0.330600 0.184100 -0.925600 -vn 0.890900 -0.377600 0.252300 -vn 0.890900 -0.252300 0.377600 -vn 0.890900 -0.088600 0.445500 -vn 0.890900 0.088600 0.445500 -vn 0.890900 0.252300 0.377600 -vn 0.890900 0.377600 0.252300 -vn 0.890900 0.445500 0.088600 -vn 0.890900 0.445500 -0.088600 -vn 0.890900 0.377600 -0.252300 -vn 0.890900 0.252300 -0.377600 -vn 0.890900 0.088600 -0.445500 -vn 0.890900 -0.088600 -0.445500 -vn 0.890900 -0.377600 -0.252300 -vn 0.890900 -0.445500 -0.088600 -vn 0.890900 -0.445500 0.088600 -vn 0.330600 -0.784700 -0.524300 -vn 0.330600 -0.524300 -0.784700 -vn 0.330600 -0.184100 -0.925600 -vn 0.145600 -0.193000 -0.970300 -vn 0.145600 0.193000 -0.970300 -vn 0.145600 0.549700 -0.822600 -vn 0.145600 0.822600 -0.549700 -vn 0.145600 0.970300 -0.193000 -vn 0.145600 0.970300 0.193000 -vn 0.145600 0.822600 0.549700 -vn 0.145600 0.549700 0.822600 -vn 0.145600 0.193000 0.970300 -vn 0.145600 -0.193000 0.970300 -vn 0.145600 -0.549700 0.822600 -vn 0.145600 -0.822600 0.549700 -vn 0.145600 -0.970300 0.193000 -vn 0.145600 -0.970300 -0.193000 -vn 0.145600 -0.822600 -0.549700 -vn 0.145600 -0.549700 -0.822600 -vn 0.000000 0.500000 0.866000 -vn 0.000000 0.500000 -0.866000 -vn 0.000000 -1.000000 0.000000 -vn 1.000000 -0.000000 0.000000 -vn -0.000000 1.000000 -0.000000 -vn 0.554700 0.832100 0.000000 -vn 0.000000 -0.000000 -1.000000 -vn 0.000000 0.000000 1.000000 -vn 0.554700 -0.416000 -0.720600 -vn -0.000000 0.866000 -0.500000 -vn 0.000000 -0.866000 0.500000 -vn 0.554700 -0.416000 0.720600 -vn 0.000000 -0.866000 -0.500000 -vn -0.000000 0.866000 0.500000 -vn 0.000000 -0.500000 -0.866000 -vn -0.000000 -0.500000 0.866000 -vn 0.554700 0.832000 0.000000 -s off -f 2/1/1 4/2/1 3/3/1 -f 4/2/2 6/4/2 5/5/2 -f 6/4/3 8/6/3 7/7/3 -f 8/6/4 10/8/4 9/9/4 -f 10/10/5 12/11/5 11/12/5 -f 12/11/6 14/13/6 13/14/6 -f 14/13/7 16/15/7 15/16/7 -f 16/15/8 18/17/8 17/18/8 -f 18/17/9 20/19/9 19/20/9 -f 20/19/10 22/21/10 21/22/10 -f 22/21/11 24/23/11 23/24/11 -f 24/23/12 26/25/12 25/26/12 -f 25/26/13 26/25/13 28/27/13 -f 27/28/14 28/27/14 30/29/14 -f 32/30/15 2/1/15 1/31/15 -f 30/29/16 32/30/16 31/32/16 -f 53/33/17 54/34/17 23/24/17 -f 23/24/18 54/35/18 55/36/18 -f 55/37/19 56/38/19 19/20/19 -f 19/20/20 56/39/20 57/40/20 -f 17/18/21 57/41/21 58/42/21 -f 58/43/22 59/44/22 13/14/22 -f 59/45/23 60/46/23 11/12/23 -f 60/47/24 61/48/24 9/49/24 -f 61/50/25 62/51/25 7/7/25 -f 62/52/26 63/53/26 5/5/26 -f 63/54/27 64/55/27 3/3/27 -f 64/56/28 49/57/28 1/31/28 -f 1/31/29 49/58/29 50/59/29 -f 50/60/30 51/61/30 29/62/30 -f 51/63/31 52/64/31 27/28/31 -f 52/65/32 53/66/32 25/26/32 -f 67/67/14 68/68/14 52/69/14 -f 52/69/13 68/68/13 69/70/13 -f 69/70/12 70/71/12 54/72/12 -f 70/71/11 71/73/11 55/74/11 -f 71/73/10 72/75/10 56/76/10 -f 72/75/9 73/77/9 57/78/9 -f 73/77/8 74/79/8 58/80/8 -f 74/79/7 75/81/7 59/82/7 -f 75/81/6 76/83/6 60/84/6 -f 76/83/5 77/85/5 61/86/5 -f 61/87/4 77/88/4 78/89/4 -f 62/90/3 78/89/3 79/91/3 -f 63/92/2 79/91/2 80/93/2 -f 64/94/1 80/93/1 65/95/1 -f 49/96/15 65/95/15 66/97/15 -f 50/98/16 66/97/16 67/67/16 -f 73/99/33 71/100/33 67/101/33 -f 35/102/34 94/103/34 93/104/34 -f 36/105/35 93/106/35 92/107/35 -f 38/108/36 37/109/36 92/110/36 -f 39/111/37 38/112/37 91/113/37 -f 40/114/38 39/115/38 90/116/38 -f 41/117/39 40/118/39 89/119/39 -f 42/120/40 41/121/40 88/122/40 -f 95/123/41 96/124/41 97/125/41 -f 43/126/42 42/127/42 87/128/42 -f 44/129/43 43/130/43 86/131/43 -f 44/132/44 85/133/44 84/134/44 -f 45/135/45 84/136/45 83/137/45 -f 46/138/46 83/139/46 82/140/46 -f 47/141/47 82/142/47 81/143/47 -f 91/144/48 92/110/48 97/145/48 -f 90/146/49 91/113/49 97/147/49 -f 89/148/50 90/116/50 97/149/50 -f 88/150/51 89/119/51 97/151/51 -f 87/152/52 88/122/52 97/153/52 -f 86/154/53 87/128/53 97/155/53 -f 85/156/54 86/131/54 97/157/54 -f 84/134/55 85/133/55 97/158/55 -f 83/137/56 84/136/56 97/159/56 -f 82/140/57 83/139/57 97/160/57 -f 81/143/58 82/142/58 97/161/58 -f 96/162/59 81/163/59 97/164/59 -f 94/165/60 95/166/60 97/167/60 -f 93/104/61 94/103/61 97/168/61 -f 93/106/62 97/169/62 92/107/62 -f 34/170/63 95/166/63 94/165/63 -f 33/171/64 96/124/64 95/123/64 -f 48/172/65 81/163/65 96/162/65 -f 4/2/66 2/1/66 48/172/66 -f 2/1/67 32/30/67 47/141/67 -f 32/30/68 30/29/68 46/138/68 -f 28/27/69 45/135/69 46/173/69 -f 26/25/70 44/132/70 45/174/70 -f 24/23/71 43/130/71 44/129/71 -f 22/21/72 42/127/72 43/126/72 -f 20/19/73 41/121/73 42/120/73 -f 18/17/74 40/118/74 41/117/74 -f 16/15/75 39/115/75 40/114/75 -f 14/13/76 38/112/76 39/111/76 -f 12/11/77 37/109/77 38/108/77 -f 10/10/78 36/105/78 37/175/78 -f 10/8/79 8/6/79 35/102/79 -f 8/6/80 6/4/80 34/170/80 -f 6/4/81 4/2/81 33/171/81 -f 130/176/82 136/177/82 137/178/82 -f 133/179/83 141/180/83 140/181/83 -f 119/182/84 120/183/84 111/184/84 -f 105/185/33 111/184/33 102/186/33 -f 121/187/33 118/188/33 120/189/33 -f 103/190/85 124/191/85 129/192/85 -f 104/193/86 121/187/86 116/194/86 -f 129/192/87 124/191/87 125/195/87 -f 104/193/88 111/196/88 120/197/88 -f 111/196/88 124/198/88 103/199/88 -f 119/200/89 105/201/89 116/194/89 -f 126/202/89 105/201/89 129/203/89 -f 112/204/33 130/176/33 131/205/33 -f 142/206/90 144/207/90 145/208/90 -f 107/209/33 133/179/33 132/210/33 -f 108/211/85 110/212/85 147/213/85 -f 136/214/33 135/215/33 134/216/33 -f 136/217/91 130/218/91 99/219/91 -f 98/220/92 131/221/92 137/222/92 -f 140/223/33 141/224/33 138/225/33 -f 147/213/93 146/226/93 148/227/93 -f 141/228/94 133/229/94 106/230/94 -f 117/231/95 132/232/95 140/233/95 -f 131/221/92 143/234/92 115/235/92 -f 145/236/91 144/207/91 130/218/91 -f 98/220/96 99/219/96 144/207/96 -f 143/237/85 145/208/85 113/238/85 -f 117/231/97 138/225/97 106/230/97 -f 132/232/95 147/239/95 110/240/95 -f 148/227/94 133/229/94 149/241/94 -f 1/31/1 2/1/1 3/3/1 -f 3/3/2 4/2/2 5/5/2 -f 5/5/3 6/4/3 7/7/3 -f 7/7/4 8/6/4 9/9/4 -f 9/49/5 10/10/5 11/12/5 -f 11/12/6 12/11/6 13/14/6 -f 13/14/7 14/13/7 15/16/7 -f 15/16/8 16/15/8 17/18/8 -f 17/18/9 18/17/9 19/20/9 -f 19/20/10 20/19/10 21/22/10 -f 21/22/11 22/21/11 23/24/11 -f 23/24/12 24/23/12 25/26/12 -f 27/28/13 25/26/13 28/27/13 -f 29/62/14 27/28/14 30/29/14 -f 31/32/15 32/30/15 1/31/15 -f 29/62/16 30/29/16 31/32/16 -f 25/26/17 53/33/17 23/24/17 -f 21/22/18 23/24/18 55/36/18 -f 21/22/19 55/37/19 19/20/19 -f 17/18/20 19/20/20 57/40/20 -f 15/16/21 17/18/21 58/42/21 -f 15/16/22 58/43/22 13/14/22 -f 13/14/23 59/45/23 11/12/23 -f 11/12/24 60/47/24 9/49/24 -f 9/9/25 61/50/25 7/7/25 -f 7/7/26 62/52/26 5/5/26 -f 5/5/27 63/54/27 3/3/27 -f 3/3/28 64/56/28 1/31/28 -f 31/32/29 1/31/29 50/59/29 -f 31/32/30 50/60/30 29/62/30 -f 29/62/31 51/63/31 27/28/31 -f 27/28/32 52/65/32 25/26/32 -f 51/242/14 67/67/14 52/69/14 -f 53/243/13 52/69/13 69/70/13 -f 53/243/12 69/70/12 54/72/12 -f 54/72/11 70/71/11 55/74/11 -f 55/74/10 71/73/10 56/76/10 -f 56/76/9 72/75/9 57/78/9 -f 57/78/8 73/77/8 58/80/8 -f 58/80/7 74/79/7 59/82/7 -f 59/82/6 75/81/6 60/84/6 -f 60/84/5 76/83/5 61/86/5 -f 62/90/4 61/87/4 78/89/4 -f 63/92/3 62/90/3 79/91/3 -f 64/94/2 63/92/2 80/93/2 -f 49/96/1 64/94/1 65/95/1 -f 50/98/15 49/96/15 66/97/15 -f 51/242/16 50/98/16 67/67/16 -f 67/101/33 66/244/33 65/245/33 -f 65/245/33 80/246/33 79/247/33 -f 79/247/33 78/248/33 77/249/33 -f 77/249/33 76/250/33 75/251/33 -f 75/251/33 74/252/33 73/99/33 -f 73/99/33 72/253/33 71/100/33 -f 71/100/33 70/254/33 69/255/33 -f 69/255/33 68/256/33 71/100/33 -f 67/101/33 65/245/33 75/251/33 -f 79/247/33 77/249/33 75/251/33 -f 75/251/33 73/99/33 67/101/33 -f 71/100/33 68/256/33 67/101/33 -f 65/245/33 79/247/33 75/251/33 -f 36/257/34 35/102/34 93/104/34 -f 37/175/35 36/105/35 92/107/35 -f 91/144/36 38/108/36 92/110/36 -f 90/146/37 39/111/37 91/113/37 -f 89/148/38 40/114/38 90/116/38 -f 88/150/39 41/117/39 89/119/39 -f 87/152/40 42/120/40 88/122/40 -f 86/154/42 43/126/42 87/128/42 -f 85/156/43 44/129/43 86/131/43 -f 45/174/44 44/132/44 84/134/44 -f 46/173/45 45/135/45 83/137/45 -f 47/258/46 46/138/46 82/140/46 -f 48/259/47 47/141/47 81/143/47 -f 35/260/63 34/170/63 94/165/63 -f 34/261/64 33/171/64 95/123/64 -f 33/262/65 48/172/65 96/162/65 -f 33/262/66 4/2/66 48/172/66 -f 48/259/67 2/1/67 47/141/67 -f 47/258/68 32/30/68 46/138/68 -f 30/29/69 28/27/69 46/173/69 -f 28/27/70 26/25/70 45/174/70 -f 26/25/71 24/23/71 44/129/71 -f 24/23/72 22/21/72 43/126/72 -f 22/21/73 20/19/73 42/120/73 -f 20/19/74 18/17/74 41/117/74 -f 18/17/75 16/15/75 40/114/75 -f 16/15/76 14/13/76 39/111/76 -f 14/13/77 12/11/77 38/108/77 -f 12/11/78 10/10/78 37/175/78 -f 36/257/79 10/8/79 35/102/79 -f 35/260/80 8/6/80 34/170/80 -f 34/261/81 6/4/81 33/171/81 -f 131/205/82 130/176/82 137/178/82 -f 132/210/83 133/179/83 140/181/83 -f 105/185/84 119/182/84 111/184/84 -f 100/263/33 105/185/33 102/186/33 -f 119/264/33 121/187/33 120/189/33 -f 101/265/85 103/190/85 129/192/85 -f 126/202/86 125/195/86 104/193/86 -f 104/193/86 118/188/86 121/187/86 -f 116/194/86 126/202/86 104/193/86 -f 126/202/98 129/192/98 125/195/98 -f 118/188/88 104/193/88 120/197/88 -f 103/199/88 102/266/88 111/196/88 -f 111/196/88 104/193/88 125/195/88 -f 125/195/88 124/198/88 111/196/88 -f 121/187/89 119/200/89 116/194/89 -f 101/267/89 129/203/89 105/201/89 -f 126/202/89 116/194/89 105/201/89 -f 105/201/89 100/268/89 101/267/89 -f 114/269/33 112/204/33 131/205/33 -f 143/237/90 142/206/90 145/208/90 -f 109/270/33 107/209/33 132/210/33 -f 149/271/85 108/211/85 147/213/85 -f 137/272/33 136/214/33 134/216/33 -f 135/215/91 136/217/91 99/219/91 -f 134/216/92 98/220/92 137/222/92 -f 139/273/33 140/223/33 138/225/33 -f 149/271/93 147/213/93 148/227/93 -f 138/225/94 141/228/94 106/230/94 -f 139/273/95 117/231/95 140/233/95 -f 115/235/92 114/274/92 131/221/92 -f 131/221/92 98/220/92 142/206/92 -f 142/206/92 143/234/92 131/221/92 -f 130/218/91 112/275/91 113/276/91 -f 113/276/91 145/236/91 130/218/91 -f 144/207/91 99/219/91 130/218/91 -f 144/207/96 142/206/96 98/220/96 -f 98/220/96 134/216/96 135/215/96 -f 135/215/96 99/219/96 98/220/96 -f 115/277/85 143/237/85 113/238/85 -f 148/227/97 146/226/97 117/231/97 -f 117/231/97 139/273/97 138/225/97 -f 106/230/97 148/227/97 117/231/97 -f 110/240/95 109/278/95 132/232/95 -f 132/232/95 117/231/95 146/226/95 -f 146/226/95 147/239/95 132/232/95 -f 108/279/94 149/241/94 133/229/94 -f 148/227/94 106/230/94 133/229/94 -f 133/229/94 107/280/94 108/279/94 diff --git a/src/main/resources/assets/hbm/models/bombs/tsar.obj b/src/main/resources/assets/hbm/models/bombs/tsar.obj new file mode 100644 index 000000000..b40b0a192 --- /dev/null +++ b/src/main/resources/assets/hbm/models/bombs/tsar.obj @@ -0,0 +1,10781 @@ +# Blender v2.79 (sub 0) OBJ File: 'tsar.blend' +# www.blender.org +o Cylinder.004_Cylinder.007 +v -2.620922 1.635705 0.578094 +v -2.855725 1.642531 0.571237 +v -2.857056 1.618167 0.619268 +v -2.621934 1.617162 0.614649 +v -2.854581 1.570805 0.644821 +v -2.620051 1.581115 0.634097 +v -2.848963 1.513135 0.641050 +v -2.615775 1.537224 0.631227 +v -2.842643 1.466264 0.614492 +v -2.611261 1.503337 0.612760 +v -2.563446 1.585110 0.537187 +v -2.564632 1.589535 0.547590 +v -2.566141 1.591165 0.565786 +v -2.566561 1.583473 0.580950 +v -2.565780 1.568521 0.589017 +v -2.564006 1.550314 0.587826 +v -2.562723 1.539821 0.583649 +v -2.617283 1.631775 0.534227 +v -2.850945 1.637368 0.513600 +v -2.613003 1.612516 0.500754 +v -2.585983 1.617706 0.539960 +v -2.582817 1.603788 0.514795 +v -2.588855 1.620807 0.574583 +v -2.589654 1.606172 0.603435 +v -2.588167 1.577722 0.618784 +v -2.584792 1.543080 0.616519 +v -2.581442 1.517618 0.603197 +v -2.844932 1.609716 0.467325 +v -2.898388 1.597308 0.470969 +v -2.903679 1.621500 0.511863 +v -2.919393 1.564240 0.501247 +v -2.921673 1.574001 0.519696 +v -2.907963 1.626127 0.563514 +v -2.923886 1.576390 0.546373 +v -2.909156 1.604294 0.606555 +v -2.924502 1.565114 0.568603 +v -2.906938 1.561851 0.629454 +v -2.923356 1.543193 0.580430 +v -2.901903 1.510171 0.626075 +v -2.920756 1.516501 0.578685 +v -2.896337 1.468756 0.602850 +v -2.918334 1.497845 0.569361 +v 0.197844 1.759225 0.642473 +v 0.197845 1.827974 0.671655 +v 0.197844 1.912615 0.553176 +v 0.197844 2.031451 0.273215 +v 0.197844 2.057882 0.130027 +v 0.197844 1.989133 0.100845 +v 0.351714 2.057882 0.130027 +v 0.351714 1.989133 0.100845 +v 0.351714 2.031451 0.273215 +v 0.351714 1.912615 0.553176 +v 0.351714 1.827974 0.671655 +v 0.351714 1.759225 0.642473 +v 0.324833 2.031451 0.273215 +v 0.224726 2.031451 0.273215 +v 0.224726 2.090056 0.353570 +v 0.324833 2.090056 0.353570 +v 0.224726 2.082111 0.505154 +v 0.324832 2.082111 0.505154 +v 0.224726 1.912615 0.553176 +v 0.324832 1.912615 0.553176 +v 0.324833 2.071492 0.382580 +v 0.324833 2.008010 0.328440 +v 0.224726 2.071492 0.382581 +v 0.224726 2.008010 0.328439 +v 0.324833 2.066682 0.474362 +v 0.324833 1.936056 0.497951 +v 0.224726 1.936056 0.497951 +v 0.224726 2.066682 0.474362 +v -0.757311 1.000000 -1.032090 +v 1.306870 1.000000 -1.032090 +v 1.306870 0.681067 -0.981576 +v -0.757311 0.681066 -0.981576 +v 1.306869 0.393353 -0.834979 +v -0.757311 0.393352 -0.834979 +v 1.306870 0.165022 -0.606647 +v -0.757311 0.165021 -0.606647 +v 1.306870 0.018424 -0.318933 +v -0.757311 0.018424 -0.318933 +v 1.306870 -0.032090 -0.000000 +v -0.757311 -0.032090 -0.000000 +v 1.306870 0.018424 0.318934 +v -0.757311 0.018424 0.318933 +v 1.306870 0.165022 0.606647 +v -0.757311 0.165021 0.606647 +v 1.306870 0.393353 0.834979 +v -0.757311 0.393353 0.834979 +v 1.306870 0.681067 0.981576 +v -0.757311 0.681066 0.981576 +v 1.306870 1.000000 1.032090 +v -0.757311 1.000000 1.032090 +v 1.306870 1.318934 0.981576 +v -0.757311 1.318933 0.981576 +v -0.757311 1.606647 0.834979 +v 1.306870 1.606648 0.834979 +v 1.306869 1.834979 0.606647 +v -0.757311 1.834979 0.606647 +v 1.306869 1.981576 0.318934 +v -0.757311 1.981576 0.318934 +v 1.306869 2.032090 0.000000 +v -0.757311 2.032090 0.000000 +v 1.306870 1.981576 -0.318933 +v -0.757311 1.981576 -0.318933 +v 1.306870 1.834979 -0.606647 +v -0.757311 1.834978 -0.606647 +v 1.306870 1.606647 -0.834978 +v -0.757311 1.606647 -0.834978 +v 2.054217 0.490209 -0.701667 +v 2.054217 0.298333 -0.509791 +v -0.757311 1.318933 -0.981576 +v 1.306870 1.318933 -0.981576 +v -3.225221 0.299680 -0.227548 +v -3.225221 0.404272 -0.432822 +v 2.054217 0.490209 0.701667 +v 2.054217 0.298333 0.509791 +v 2.521168 0.480886 0.377158 +v 2.521168 0.622842 0.519114 +v 2.054217 1.000000 -0.867308 +v 2.054217 0.731987 -0.824859 +v 2.054217 1.509791 0.701667 +v 2.054217 1.701667 0.509791 +v 2.054217 1.701667 -0.509791 +v 2.054217 1.509791 -0.701667 +v 2.054217 0.132692 -0.000000 +v 2.054217 0.175141 0.268013 +v 2.054217 1.000000 0.867308 +v 2.054217 1.268013 0.824859 +v 2.054217 1.867308 0.000000 +v 2.054217 1.824859 -0.268013 +v 2.054217 0.175141 -0.268013 +v 2.054217 0.731987 0.824859 +v 2.054217 1.824859 0.268013 +v 2.054217 1.268013 -0.824859 +v 2.521168 0.358340 -0.000000 +v 2.521168 0.389745 -0.198284 +v 2.772793 0.679104 -0.104265 +v 2.772793 0.662590 -0.000000 +v 2.521168 1.000000 -0.641660 +v 2.521168 0.801716 -0.610255 +v 2.521168 1.641660 0.000000 +v 2.521168 1.610255 -0.198284 +v 2.521168 0.801716 0.610255 +v 2.521168 0.622842 -0.519114 +v 2.521168 1.519114 -0.377158 +v 2.521168 1.000000 0.641660 +v 2.521168 0.480886 -0.377158 +v 2.521168 1.377158 -0.519114 +v 2.521168 1.198284 0.610255 +v 2.521168 1.198284 -0.610255 +v 2.521168 1.377159 0.519114 +v 2.521168 1.519114 0.377158 +v 2.521168 0.389745 0.198284 +v 2.521168 1.610255 0.198284 +v 2.772792 1.337410 0.000000 +v 2.772792 1.320896 0.104265 +v 2.836521 1.161198 0.052376 +v 2.836520 1.169494 0.000000 +v 2.772792 1.104266 -0.320896 +v 2.772792 1.000000 -0.337410 +v 2.772793 1.198325 0.272970 +v 2.772793 1.272971 0.198325 +v 2.772792 0.679104 0.104265 +v 2.772793 0.727030 0.198325 +v 2.772793 0.801676 0.272971 +v 2.772793 0.895735 -0.320896 +v 2.772793 1.320896 -0.104266 +v 2.772793 0.895735 0.320896 +v 2.772793 0.801676 -0.272971 +v 2.772792 1.272971 -0.198325 +v 2.772792 1.000000 0.337410 +v 2.772792 0.727030 -0.198325 +v 2.772792 1.198325 -0.272970 +v 2.772792 1.104266 0.320896 +v 2.836521 0.947624 -0.161198 +v 2.836521 1.000000 -0.169493 +v 2.836520 1.052377 -0.161198 +v 2.836521 1.099626 -0.137123 +v 2.836521 1.137123 -0.099626 +v 2.836521 1.161198 -0.052376 +v 2.836521 1.137123 0.099626 +v 2.836521 1.099626 0.137123 +v 2.836521 1.052377 0.161198 +v 2.836521 1.000000 0.169493 +v 2.836521 0.947624 0.161198 +v 2.836520 0.900375 0.137123 +v 2.836521 0.862877 0.099626 +v 2.836521 0.838803 0.052376 +v 2.836521 0.830507 -0.000000 +v 2.836521 0.838803 -0.052376 +v 2.836521 0.862877 -0.099626 +v 2.836521 0.900375 -0.137123 +v -3.225221 1.700320 0.227548 +v -3.225221 1.736360 0.000000 +v -5.250397 1.736359 0.000000 +v -5.250397 1.700319 0.227548 +v -3.225221 0.772452 0.700320 +v -3.225221 0.567178 0.595728 +v -3.225221 1.595728 0.432822 +v -3.225221 1.227548 -0.700320 +v -3.225221 1.432822 -0.595728 +v -3.225221 0.567178 -0.595728 +v -3.225221 0.772452 -0.700320 +v -3.225221 0.404272 0.432822 +v -3.225221 0.299680 0.227548 +v -3.225221 1.432822 0.595728 +v -3.225221 1.227548 0.700320 +v -3.225221 1.595728 -0.432821 +v -3.225221 1.700320 -0.227548 +v -3.225221 0.263640 -0.000000 +v -3.225221 1.000000 0.736360 +v -3.225221 1.000000 -0.736360 +v -5.250397 1.700319 -0.227548 +v -5.250396 1.595727 -0.432821 +v -5.250396 1.534429 -0.388286 +v -5.250397 1.628259 -0.204134 +v -5.250397 0.567177 0.595728 +v -5.250396 0.404271 0.432822 +v -5.250397 0.772451 -0.700320 +v -5.250396 0.999999 -0.736360 +v -5.250397 0.772451 0.700320 +v -5.250397 0.567177 -0.595728 +v -5.250397 0.999999 0.736360 +v -5.250397 0.404271 -0.432822 +v -5.250397 1.432821 -0.595728 +v -5.250397 1.227547 0.700320 +v -5.250397 0.299679 -0.227548 +v -5.250397 1.227547 -0.700320 +v -5.250397 1.432821 0.595728 +v -5.250396 0.263639 -0.000000 +v -5.250397 1.595727 0.432822 +v -5.250396 0.299679 0.227548 +v -5.250397 1.388285 -0.534430 +v -5.250397 1.204133 -0.628260 +v -3.225221 1.204133 -0.628260 +v -3.225221 1.388285 -0.534430 +v -5.250397 0.999999 0.660592 +v -5.250397 0.795865 0.628260 +v -5.250397 0.465569 -0.388286 +v -5.250397 0.611713 -0.534430 +v -5.250397 1.204133 0.628260 +v -5.250396 0.371739 -0.204134 +v -5.250397 1.388285 0.534430 +v -5.250397 0.339407 -0.000000 +v -5.250397 0.999999 -0.660592 +v -5.250396 1.534429 0.388286 +v -5.250396 0.371739 0.204134 +v -5.250397 1.628259 0.204134 +v -5.250397 0.465569 0.388286 +v -5.250397 1.660591 0.000000 +v -5.250397 0.611713 0.534430 +v -5.250397 0.795865 -0.628260 +v -3.225221 0.999999 -0.660592 +v -3.225221 0.795865 -0.628260 +v -3.225221 0.611713 -0.534430 +v -3.225221 0.465569 -0.388286 +v -3.225221 0.371739 -0.204134 +v -3.225221 0.339407 -0.000000 +v -3.225221 0.371739 0.204134 +v -3.225221 0.465569 0.388286 +v -3.225221 0.611713 0.534430 +v -3.225221 0.795865 0.628260 +v -3.225221 0.999999 0.660592 +v -3.225221 1.204133 0.628260 +v -3.225221 1.388285 0.534430 +v -3.225221 1.534429 0.388286 +v -3.225221 1.628259 0.204134 +v -3.225221 1.660591 0.000000 +v -3.225221 1.628259 -0.204134 +v -3.225221 1.534429 -0.388286 +v 2.588751 1.000000 -0.551802 +v 2.764493 1.000000 -0.551802 +v 2.764494 0.935086 -0.524914 +v 2.588751 0.935086 -0.524914 +v 2.802250 1.000000 -0.533620 +v 2.816855 1.000000 -0.500856 +v 2.816855 0.971110 -0.488889 +v 2.802250 0.947943 -0.512057 +v 2.764493 0.908198 -0.460000 +v 2.588750 0.908198 -0.460000 +v 2.816855 0.959144 -0.460000 +v 2.802250 0.926380 -0.460000 +v 2.764493 0.935086 -0.395086 +v 2.588751 0.935086 -0.395086 +v 2.816855 0.971110 -0.431111 +v 2.802250 0.947943 -0.407943 +v 2.764493 1.000000 -0.368198 +v 2.588750 1.000000 -0.368198 +v 2.816855 1.000000 -0.419144 +v 2.802250 1.000000 -0.386380 +v 2.802250 1.052057 -0.407943 +v 2.764493 1.064914 -0.395086 +v 2.588750 1.064914 -0.395086 +v 2.816855 1.028889 -0.431110 +v 2.802250 1.073620 -0.460000 +v 2.764493 1.091802 -0.460000 +v 2.588751 1.091802 -0.460000 +v 2.816855 1.040856 -0.460000 +v 2.802250 1.052057 -0.512057 +v 2.764493 1.064914 -0.524914 +v 2.816855 1.028889 -0.488889 +v 2.588751 1.064914 -0.524914 +v 2.588751 1.000000 0.368198 +v 2.764493 1.000000 0.368198 +v 2.764493 0.935086 0.395086 +v 2.588751 0.935086 0.395086 +v 2.802250 1.000000 0.386380 +v 2.816855 1.000000 0.419144 +v 2.816855 0.971110 0.431111 +v 2.802250 0.947943 0.407943 +v 2.764493 0.908198 0.460000 +v 2.588751 0.908198 0.460000 +v 2.816855 0.959144 0.460000 +v 2.802250 0.926380 0.460000 +v 2.764494 0.935086 0.524914 +v 2.588751 0.935086 0.524914 +v 2.816855 0.971111 0.488889 +v 2.802250 0.947943 0.512057 +v 2.764493 1.000000 0.551802 +v 2.588751 1.000000 0.551802 +v 2.816854 1.000000 0.500856 +v 2.802250 1.000000 0.533620 +v 2.802250 1.052057 0.512057 +v 2.764493 1.064914 0.524914 +v 2.588750 1.064914 0.524914 +v 2.816855 1.028889 0.488889 +v 2.802250 1.073620 0.460000 +v 2.764494 1.091802 0.460000 +v 2.588751 1.091802 0.460000 +v 2.816855 1.040856 0.460000 +v 2.802250 1.052057 0.407943 +v 2.764494 1.064914 0.395086 +v 2.816855 1.028889 0.431111 +v 2.588751 1.064914 0.395086 +v 0.197845 1.759225 -0.642473 +v 0.197845 1.989133 -0.100845 +v 0.197844 2.057882 -0.130027 +v 0.197844 2.031451 -0.273215 +v 0.197845 1.912615 -0.553176 +v 0.197844 1.827974 -0.671655 +v 0.351714 1.989133 -0.100845 +v 0.351714 2.057882 -0.130027 +v 0.351714 1.759225 -0.642473 +v 0.351714 1.827974 -0.671655 +v 0.351714 1.912615 -0.553176 +v 0.351714 2.031451 -0.273215 +v 0.324833 2.031451 -0.273215 +v 0.324832 2.090055 -0.353570 +v 0.224726 2.090055 -0.353570 +v 0.224726 2.031451 -0.273215 +v 0.324833 2.082111 -0.505154 +v 0.224726 2.082111 -0.505154 +v 0.224726 1.912615 -0.553176 +v 0.324833 1.912615 -0.553176 +v 0.324833 2.008010 -0.328439 +v 0.324833 2.071492 -0.382581 +v 0.224726 2.008010 -0.328439 +v 0.224726 2.071492 -0.382580 +v 0.324833 2.066682 -0.474362 +v 0.324833 1.936056 -0.497951 +v 0.224726 2.066682 -0.474362 +v 0.224726 1.936056 -0.497951 +v 0.274779 1.028989 1.006440 +v 0.274779 0.957612 1.079144 +v 0.338506 0.940748 1.076465 +v 0.368048 1.004307 1.002519 +v 0.385156 0.894675 1.069146 +v 0.436326 0.936875 0.991806 +v 0.402232 0.831738 1.059147 +v 0.461318 0.844761 0.977173 +v 0.385156 0.768801 1.049149 +v 0.436327 0.752646 0.962539 +v 0.338506 0.722728 1.041829 +v 0.368049 0.685214 0.951826 +v 0.274779 0.705864 1.039150 +v 0.274779 0.660532 0.947905 +v 0.211053 0.722727 1.041829 +v 0.181510 0.685214 0.951826 +v 0.164402 0.768801 1.049149 +v 0.113232 0.752646 0.962539 +v 0.147327 0.831738 1.059147 +v 0.088241 0.844761 0.977173 +v 0.164402 0.894675 1.069146 +v 0.113232 0.936875 0.991806 +v 0.197515 0.787682 1.052148 +v 0.185562 0.831738 1.059147 +v 0.211053 0.940748 1.076465 +v 0.181510 1.004307 1.002519 +v 0.319388 0.908045 1.071270 +v 0.274779 0.919849 1.073145 +v 0.274779 0.925524 1.037426 +v 0.319387 0.913719 1.035550 +v 0.230171 0.755431 1.047024 +v 0.274779 0.743626 1.045149 +v 0.319388 0.755431 1.047024 +v 0.352043 0.787682 1.052148 +v 0.363996 0.831738 1.059147 +v 0.230171 0.908045 1.071270 +v 0.352043 0.875793 1.066146 +v 0.197515 0.875793 1.066146 +v 0.230171 0.913719 1.035550 +v 0.197515 0.881468 1.030426 +v 0.185562 0.837412 1.023427 +v 0.197515 0.793356 1.016428 +v 0.230171 0.761105 1.011305 +v 0.274779 0.749300 1.009429 +v 0.319388 0.761105 1.011305 +v 0.352043 0.793356 1.016428 +v 0.363996 0.837412 1.023427 +v 0.352043 0.881468 1.030427 +v 0.274779 1.028989 -1.006440 +v 0.368049 1.004307 -1.002519 +v 0.338505 0.940748 -1.076465 +v 0.274779 0.957612 -1.079144 +v 0.436327 0.936875 -0.991807 +v 0.385156 0.894675 -1.069146 +v 0.461318 0.844761 -0.977173 +v 0.402232 0.831738 -1.059147 +v 0.436327 0.752647 -0.962539 +v 0.385156 0.768801 -1.049149 +v 0.368049 0.685215 -0.951826 +v 0.338506 0.722728 -1.041829 +v 0.274779 0.660533 -0.947905 +v 0.274779 0.705864 -1.039150 +v 0.181510 0.685215 -0.951826 +v 0.211053 0.722728 -1.041829 +v 0.113232 0.752647 -0.962539 +v 0.164402 0.768801 -1.049149 +v 0.088241 0.844761 -0.977173 +v 0.147327 0.831738 -1.059147 +v 0.113232 0.936875 -0.991806 +v 0.164402 0.894675 -1.069146 +v 0.185563 0.831738 -1.059147 +v 0.197515 0.787682 -1.052148 +v 0.181510 1.004307 -1.002519 +v 0.211053 0.940748 -1.076465 +v 0.319388 0.908045 -1.071270 +v 0.319388 0.913720 -1.035550 +v 0.274779 0.925524 -1.037425 +v 0.274779 0.919850 -1.073145 +v 0.230171 0.755431 -1.047025 +v 0.274779 0.743626 -1.045149 +v 0.319388 0.755431 -1.047025 +v 0.352043 0.787682 -1.052148 +v 0.363996 0.831738 -1.059147 +v 0.230171 0.908045 -1.071270 +v 0.352043 0.875794 -1.066146 +v 0.197515 0.875794 -1.066146 +v 0.352043 0.881469 -1.030427 +v 0.363996 0.837413 -1.023427 +v 0.352043 0.793357 -1.016429 +v 0.319387 0.761106 -1.011305 +v 0.274779 0.749301 -1.009430 +v 0.230171 0.761106 -1.011305 +v 0.197515 0.793357 -1.016429 +v 0.185563 0.837413 -1.023427 +v 0.197515 0.881468 -1.030427 +v 0.230171 0.913720 -1.035550 +v -5.245664 1.724600 0.143804 +v -5.194486 1.806213 0.165672 +v -5.178945 1.806213 0.165672 +v -5.127767 1.724600 0.143804 +v -5.127767 1.699425 0.237762 +v -5.178945 1.781037 0.259629 +v -5.194487 1.781037 0.259629 +v -5.245664 1.699425 0.237762 +v -5.194486 1.789429 0.228310 +v -5.245664 1.707816 0.206443 +v -5.127767 1.707816 0.206443 +v -5.178945 1.789429 0.228310 +v -5.194486 1.780201 0.262749 +v -5.194487 1.657673 0.284806 +v -5.178945 1.657673 0.284806 +v -5.178945 1.780201 0.262749 +v -5.178945 1.807048 0.162553 +v -5.178945 1.711965 0.082187 +v -5.194486 1.711965 0.082187 +v -5.194486 1.807048 0.162553 +v -5.245664 1.716209 0.175123 +v -5.127767 1.716209 0.175123 +v -5.178945 1.797821 0.196991 +v -5.194486 1.797821 0.196991 +v -5.194487 1.680623 0.199156 +v -5.178945 1.680623 0.199156 +v -5.178945 1.689015 0.167837 +v -5.194487 1.689015 0.167837 +v -5.245664 1.676589 0.231643 +v -5.127767 1.676589 0.231643 +v -5.245664 1.693372 0.169004 +v -5.127767 1.693372 0.169004 +v -5.127767 1.684980 0.200324 +v -5.245664 1.684980 0.200324 +v -5.245664 1.701764 0.137685 +v -5.127767 1.701764 0.137685 +v -5.254691 1.721862 0.168034 +v -5.254690 1.709168 0.215409 +v -5.297078 1.734766 0.222269 +v -5.297078 1.747460 0.174893 +v -5.254690 1.809059 0.242176 +v -5.254690 1.821754 0.194800 +v -5.296170 1.782376 0.235026 +v -5.303239 1.758633 0.228664 +v -5.303239 1.771327 0.181288 +v -5.296170 1.795070 0.187649 +v -4.735427 1.756607 0.186990 +v -5.258313 1.800607 0.198463 +v -5.258313 1.792577 0.228430 +v -4.735427 1.748737 0.216365 +v -4.735427 1.714383 0.207160 +v -5.258312 1.727160 0.210900 +v -5.258312 1.735189 0.180934 +v -4.735427 1.722255 0.177786 +v -4.738048 1.775154 0.227643 +v -4.738048 1.685866 0.203718 +v -4.703030 1.716621 0.211958 +v -4.703030 1.747569 0.220251 +v -4.713286 1.767075 0.225477 +v -4.738048 1.695836 0.166508 +v -4.738048 1.785124 0.190433 +v -4.713286 1.777045 0.188268 +v -4.703029 1.757539 0.183041 +v -4.703030 1.726591 0.174749 +v -4.755419 1.709252 0.136762 +v -4.755419 1.754777 0.148961 +v -4.747920 1.774392 0.154217 +v -4.723568 1.784320 0.156877 +v -4.699216 1.774392 0.154217 +v -4.691718 1.754777 0.148961 +v -4.691718 1.709252 0.136762 +v -4.723568 1.766025 0.225158 +v -4.723568 1.757680 0.256300 +v -4.699217 1.747751 0.253640 +v -4.699216 1.756096 0.222498 +v -4.755419 1.700907 0.167905 +v -4.755419 1.746433 0.180104 +v -4.691718 1.690956 0.205043 +v -4.691718 1.736482 0.217242 +v -4.691718 1.728137 0.248385 +v -4.691718 1.682611 0.236187 +v -4.723568 1.775976 0.188019 +v -4.747920 1.766048 0.185359 +v -4.755419 1.736482 0.217242 +v -4.755419 1.728137 0.248385 +v -4.747920 1.747751 0.253640 +v -4.747920 1.756096 0.222498 +v -4.691718 1.746433 0.180104 +v -4.699217 1.766048 0.185359 +v -4.755419 1.682611 0.236187 +v -4.691718 1.700907 0.167905 +v -4.755418 1.690956 0.205043 +v -4.798187 1.751698 0.243955 +v -4.761486 1.751697 0.243955 +v -4.761486 1.751643 -0.243955 +v -4.798187 1.751643 -0.243955 +v -4.798187 1.569596 0.550618 +v -4.761486 1.569596 0.550619 +v -4.798186 1.248075 0.750550 +v -4.761485 1.248075 0.750550 +v -4.798187 0.878909 0.779609 +v -4.761485 0.878909 0.779609 +v -4.797982 0.536913 0.638658 +v -4.761280 0.536913 0.638658 +v -4.798189 0.295753 0.357419 +v -4.761487 0.295753 0.357419 +v -4.798187 0.210817 -0.000000 +v -4.761485 0.210817 -0.000000 +v -4.798189 0.295753 -0.355937 +v -4.761488 0.295753 -0.355937 +v -4.798189 0.537259 -0.641050 +v -4.761488 0.537259 -0.641050 +v -4.798187 0.878909 -0.780850 +v -4.761485 0.878909 -0.780850 +v -4.798187 1.248075 -0.750708 +v -4.761486 1.248075 -0.750708 +v -4.798186 1.557471 -0.558672 +v -4.761486 1.557471 -0.558672 +v -3.764244 1.624065 0.401704 +v -3.764243 1.604246 0.391606 +v -3.715309 1.604246 0.391606 +v -3.715310 1.624065 0.401704 +v -3.790732 1.674196 0.303318 +v -3.790732 1.654377 0.293219 +v -3.790732 1.621852 0.357052 +v -3.790732 1.641671 0.367150 +v -3.688820 1.654377 0.293219 +v -3.688820 1.674196 0.303318 +v -3.688820 1.641671 0.367150 +v -3.688820 1.621852 0.357052 +v -3.715309 1.691802 0.268764 +v -3.715309 1.671983 0.258666 +v -3.764243 1.671983 0.258666 +v -3.764243 1.691802 0.268764 +v -3.715309 2.365680 0.068327 +v -3.715309 2.365680 0.046084 +v -3.764244 2.365680 0.046084 +v -3.764243 2.365680 0.068327 +v -3.688820 2.255258 0.068327 +v -3.688820 2.255258 0.046084 +v -3.688820 2.326899 0.046084 +v -3.688820 2.326899 0.068327 +v -3.790732 2.255258 0.046083 +v -3.790732 2.255258 0.068327 +v -3.790732 2.326899 0.068327 +v -3.790732 2.326899 0.046084 +v -3.764243 2.216478 0.068327 +v -3.764244 2.216478 0.046084 +v -3.715309 2.216478 0.046084 +v -3.715309 2.216478 0.068327 +v -3.746801 2.291079 0.068327 +v -3.732751 2.291079 0.068327 +v -3.732750 1.657933 0.335234 +v -3.746801 1.657933 0.335234 +v -4.064243 1.624065 0.401704 +v -4.064243 1.604246 0.391606 +v -4.015309 1.604246 0.391606 +v -4.015309 1.624065 0.401704 +v -4.090732 1.674196 0.303318 +v -4.090733 1.654377 0.293219 +v -4.090732 1.621852 0.357052 +v -4.090732 1.641671 0.367150 +v -3.988820 1.654376 0.293219 +v -3.988820 1.674196 0.303318 +v -3.988820 1.641671 0.367150 +v -3.988820 1.621852 0.357052 +v -4.015309 1.691802 0.268764 +v -4.015309 1.671983 0.258666 +v -4.064243 1.671982 0.258666 +v -4.064243 1.691802 0.268764 +v -4.015309 2.365680 0.068327 +v -4.015309 2.365680 0.046083 +v -4.064244 2.365680 0.046084 +v -4.064244 2.365680 0.068327 +v -3.988821 2.255258 0.068327 +v -3.988821 2.255258 0.046084 +v -3.988821 2.326899 0.046084 +v -3.988820 2.326899 0.068327 +v -4.090732 2.255258 0.046084 +v -4.090732 2.255258 0.068327 +v -4.090732 2.326899 0.068327 +v -4.090732 2.326899 0.046084 +v -4.064244 2.216478 0.068327 +v -4.064244 2.216478 0.046084 +v -4.015309 2.216478 0.046084 +v -4.015309 2.216478 0.068327 +v -4.046802 2.291079 0.068327 +v -4.032752 2.291079 0.068327 +v -4.032751 1.657933 0.335234 +v -4.046801 1.657933 0.335234 +v -4.364244 1.624065 0.401704 +v -4.364244 1.604246 0.391606 +v -4.315310 1.604246 0.391606 +v -4.315310 1.624065 0.401704 +v -4.390733 1.674195 0.303318 +v -4.390733 1.654376 0.293219 +v -4.390733 1.621852 0.357052 +v -4.390733 1.641671 0.367150 +v -4.288821 1.654376 0.293219 +v -4.288821 1.674195 0.303318 +v -4.288821 1.641671 0.367150 +v -4.288821 1.621852 0.357052 +v -4.315310 1.691801 0.268764 +v -4.315310 1.671982 0.258666 +v -4.364244 1.671982 0.258666 +v -4.364243 1.691801 0.268764 +v -4.315309 2.365680 0.068327 +v -4.315310 2.365680 0.046084 +v -4.364244 2.365680 0.046084 +v -4.364244 2.365680 0.068327 +v -4.288821 2.255258 0.068327 +v -4.288821 2.255258 0.046084 +v -4.288821 2.326899 0.046084 +v -4.288821 2.326899 0.068327 +v -4.390733 2.255258 0.046083 +v -4.390733 2.255258 0.068327 +v -4.390733 2.326899 0.068327 +v -4.390733 2.326899 0.046084 +v -4.364244 2.216478 0.068327 +v -4.364244 2.216477 0.046084 +v -4.315310 2.216478 0.046083 +v -4.315309 2.216478 0.068327 +v -4.346802 2.291079 0.068327 +v -4.346802 1.657933 0.335234 +v -4.332751 1.657933 0.335234 +v -4.332752 2.291079 0.068327 +v -3.764244 1.624065 -0.401704 +v -3.715309 1.624065 -0.401704 +v -3.715309 1.604246 -0.391606 +v -3.764244 1.604246 -0.391606 +v -3.790732 1.674196 -0.303318 +v -3.790732 1.641671 -0.367150 +v -3.790732 1.621852 -0.357052 +v -3.790732 1.654377 -0.293219 +v -3.688820 1.654377 -0.293219 +v -3.688820 1.621852 -0.357052 +v -3.688821 1.641671 -0.367150 +v -3.688820 1.674196 -0.303318 +v -3.715309 1.691802 -0.268764 +v -3.715309 1.671982 -0.258666 +v -3.764244 1.671982 -0.258666 +v -3.764244 1.691801 -0.268764 +v -3.715310 2.365680 -0.068327 +v -3.764244 2.365680 -0.068327 +v -3.764244 2.365680 -0.046083 +v -3.715310 2.365680 -0.046083 +v -3.688821 2.255258 -0.068327 +v -3.688821 2.326899 -0.068327 +v -3.688821 2.326899 -0.046083 +v -3.688821 2.255258 -0.046084 +v -3.790733 2.255258 -0.046083 +v -3.790732 2.326899 -0.046083 +v -3.790733 2.326899 -0.068327 +v -3.790732 2.255258 -0.068327 +v -3.764244 2.216478 -0.068327 +v -3.764244 2.216478 -0.046083 +v -3.715310 2.216478 -0.046083 +v -3.715310 2.216478 -0.068327 +v -3.746802 2.291079 -0.068327 +v -3.732752 2.291079 -0.068327 +v -3.732751 1.657933 -0.335234 +v -3.746801 1.657933 -0.335234 +v -4.064244 1.624065 -0.401704 +v -4.015310 1.624065 -0.401704 +v -4.015310 1.604246 -0.391606 +v -4.064244 1.604246 -0.391606 +v -4.090733 1.674195 -0.303318 +v -4.090733 1.641671 -0.367150 +v -4.090733 1.621852 -0.357052 +v -4.090733 1.654376 -0.293219 +v -3.988821 1.654376 -0.293219 +v -3.988821 1.621852 -0.357052 +v -3.988820 1.641671 -0.367150 +v -3.988821 1.674195 -0.303318 +v -4.015309 1.691801 -0.268764 +v -4.015310 1.671982 -0.258666 +v -4.064243 1.671982 -0.258666 +v -4.064244 1.691801 -0.268764 +v -4.015310 2.365680 -0.068327 +v -4.064244 2.365680 -0.068327 +v -4.064244 2.365680 -0.046083 +v -4.015309 2.365680 -0.046084 +v -3.988821 2.255258 -0.068327 +v -3.988821 2.326899 -0.068327 +v -3.988821 2.326899 -0.046083 +v -3.988821 2.255258 -0.046084 +v -4.090733 2.255258 -0.046084 +v -4.090733 2.326899 -0.046083 +v -4.090733 2.326899 -0.068327 +v -4.090733 2.255258 -0.068327 +v -4.064244 2.216478 -0.068327 +v -4.064244 2.216478 -0.046083 +v -4.015309 2.216478 -0.046083 +v -4.015310 2.216478 -0.068327 +v -4.046802 2.291079 -0.068327 +v -4.046802 1.657933 -0.335234 +v -4.032751 1.657933 -0.335234 +v -4.032752 2.291079 -0.068327 +v -4.364244 1.624065 -0.401704 +v -4.315310 1.624065 -0.401704 +v -4.315310 1.604246 -0.391606 +v -4.364244 1.604246 -0.391606 +v -4.390733 1.674195 -0.303318 +v -4.390733 1.641671 -0.367150 +v -4.390733 1.621852 -0.357052 +v -4.390733 1.654376 -0.293219 +v -4.288821 1.654376 -0.293219 +v -4.288821 1.621852 -0.357052 +v -4.288821 1.641671 -0.367150 +v -4.288821 1.674195 -0.303318 +v -4.315310 1.691801 -0.268764 +v -4.315310 1.671982 -0.258666 +v -4.364244 1.671982 -0.258666 +v -4.364244 1.691801 -0.268764 +v -4.315310 2.365680 -0.068327 +v -4.364244 2.365680 -0.068327 +v -4.364244 2.365680 -0.046083 +v -4.315310 2.365680 -0.046084 +v -4.288821 2.255258 -0.068327 +v -4.288821 2.326899 -0.068327 +v -4.288821 2.326899 -0.046083 +v -4.288821 2.255258 -0.046083 +v -4.390733 2.255258 -0.046083 +v -4.390733 2.326899 -0.046083 +v -4.390733 2.326899 -0.068327 +v -4.390734 2.255258 -0.068327 +v -4.364244 2.216477 -0.068327 +v -4.364244 2.216478 -0.046083 +v -4.315310 2.216478 -0.046083 +v -4.315310 2.216477 -0.068327 +v -4.346802 2.291079 -0.068327 +v -4.332752 2.291079 -0.068327 +v -4.332752 1.657933 -0.335234 +v -4.346802 1.657933 -0.335234 +v -5.204793 2.553267 0.054916 +v -5.204793 1.948851 0.054916 +v -5.007714 1.696526 0.054916 +v -4.801618 1.696526 0.054916 +v -4.801618 1.993642 0.054916 +v -4.511972 1.993641 0.054916 +v -4.511972 1.696526 0.054916 +v -3.522396 1.696526 0.054916 +v -3.522397 2.356017 0.054916 +v -3.580169 2.495494 0.054916 +v -3.719646 2.553267 0.054916 +v -3.522396 1.696526 -0.054916 +v -3.522396 2.356017 -0.054916 +v -3.719646 2.553267 -0.054916 +v -3.580169 2.495494 -0.054916 +v -5.204792 2.553267 -0.054916 +v -5.204793 1.948851 -0.054916 +v -4.511971 1.696526 -0.054916 +v -4.511972 1.993642 -0.054916 +v -4.801618 1.993641 -0.054916 +v -5.007713 1.696526 -0.054916 +v -4.801618 1.696526 -0.054916 +v -2.620651 1.578781 -0.635644 +v -2.855374 1.570747 -0.643818 +v -2.857096 1.618464 -0.618870 +v -2.621962 1.615098 -0.616657 +v -2.855011 1.643442 -0.571184 +v -2.620375 1.634108 -0.580363 +v -2.849679 1.638988 -0.513535 +v -2.616317 1.630718 -0.536488 +v -2.843465 1.611886 -0.466963 +v -2.611883 1.611857 -0.502809 +v -2.563223 1.537561 -0.585249 +v -2.564442 1.548011 -0.589552 +v -2.566041 1.566218 -0.590966 +v -2.566585 1.581282 -0.583090 +v -2.565927 1.589168 -0.568035 +v -2.564244 1.587762 -0.549835 +v -2.562994 1.583461 -0.539387 +v -2.616795 1.534889 -0.632237 +v -2.850307 1.513076 -0.639342 +v -2.612434 1.501203 -0.613370 +v -2.585602 1.540616 -0.617930 +v -2.582372 1.515298 -0.604307 +v -2.588645 1.575259 -0.620619 +v -2.589679 1.603922 -0.605633 +v -2.588427 1.618926 -0.576988 +v -2.585224 1.616250 -0.542359 +v -2.581937 1.602633 -0.517045 +v -2.844189 1.466496 -0.612232 +v -2.897730 1.469698 -0.600068 +v -2.903115 1.510860 -0.623781 +v -2.919075 1.499452 -0.566742 +v -2.921404 1.518007 -0.576286 +v -2.907656 1.562540 -0.627793 +v -2.923749 1.544699 -0.578358 +v -2.909199 1.605301 -0.605436 +v -2.924546 1.566785 -0.566811 +v -2.907331 1.627685 -0.562703 +v -2.923581 1.578345 -0.544740 +v -2.902553 1.623693 -0.511042 +v -2.921113 1.576284 -0.518058 +v -2.897081 1.599987 -0.469888 +v -2.918740 1.566743 -0.499506 +v -2.620680 0.362780 -0.576979 +v -2.855411 0.354758 -0.569034 +v -2.857095 0.379520 -0.616850 +v -2.621962 0.381625 -0.613370 +v -2.854974 0.427107 -0.642012 +v -2.620347 0.417844 -0.632521 +v -2.849615 0.484770 -0.637781 +v -2.616268 0.461729 -0.629301 +v -2.843390 0.531445 -0.610858 +v -2.611826 0.495480 -0.610569 +v -2.563247 0.413306 -0.535926 +v -2.564463 0.408962 -0.546360 +v -2.566054 0.407479 -0.564562 +v -2.566586 0.415296 -0.579657 +v -2.565916 0.430320 -0.587602 +v -2.564224 0.448524 -0.586266 +v -2.562971 0.458988 -0.582005 +v -2.616845 0.366356 -0.533098 +v -2.850372 0.359457 -0.511379 +v -2.612492 0.385353 -0.499484 +v -2.585641 0.380625 -0.538865 +v -2.582418 0.394345 -0.513599 +v -2.588668 0.377802 -0.573498 +v -2.589680 0.392677 -0.602221 +v -2.588405 0.421262 -0.617336 +v -2.585186 0.455900 -0.614794 +v -2.581892 0.481265 -0.601274 +v -2.844264 0.386746 -0.464902 +v -2.897797 0.398925 -0.468179 +v -2.903173 0.375053 -0.509250 +v -2.919109 0.432145 -0.498074 +v -2.921433 0.422530 -0.516593 +v -2.907689 0.370842 -0.560917 +v -2.923766 0.420355 -0.543278 +v -2.909198 0.393032 -0.603766 +v -2.924546 0.431815 -0.565409 +v -2.907297 0.435677 -0.626315 +v -2.923563 0.453841 -0.577055 +v -2.902494 0.487350 -0.622523 +v -2.921083 0.480529 -0.575096 +v -2.897013 0.528594 -0.598975 +v -2.918705 0.499117 -0.565627 +v -2.620900 0.420081 0.634087 +v -2.855697 0.427027 0.641053 +v -2.857063 0.379093 0.616503 +v -2.621940 0.383600 0.615402 +v -2.854623 0.353723 0.569040 +v -2.620083 0.364291 0.579279 +v -2.849031 0.357716 0.511382 +v -2.615827 0.367330 0.535397 +v -2.842721 0.384454 0.464613 +v -2.611320 0.385928 0.501580 +v -2.563428 0.461157 0.583624 +v -2.564617 0.450738 0.588009 +v -2.566134 0.432536 0.589569 +v -2.566566 0.417403 0.581818 +v -2.565795 0.409394 0.566834 +v -2.564030 0.410654 0.548631 +v -2.562750 0.414872 0.538154 +v -2.617242 0.463962 0.630327 +v -2.850890 0.484682 0.636113 +v -2.612954 0.497508 0.611196 +v -2.585951 0.458268 0.616220 +v -2.582779 0.483486 0.602399 +v -2.588838 0.423635 0.619187 +v -2.589659 0.394841 0.604440 +v -2.588193 0.379602 0.575930 +v -2.584834 0.382001 0.541295 +v -2.581490 0.395420 0.515883 +v -2.844868 0.531061 0.608639 +v -2.898332 0.527492 0.596243 +v -2.903632 0.486507 0.620278 +v -2.919367 0.497353 0.563067 +v -2.921652 0.478868 0.572757 +v -2.907938 0.434840 0.624705 +v -2.923877 0.452183 0.575043 +v -2.909163 0.391885 0.602705 +v -2.924509 0.429997 0.563680 +v -2.906977 0.369150 0.560172 +v -2.923380 0.418255 0.541713 +v -2.901966 0.372729 0.508503 +v -2.920792 0.420104 0.515027 +v -2.896408 0.396113 0.467176 +v -2.918374 0.429498 0.496407 +v -0.694283 1.367351 -0.956906 +v -0.694283 1.558230 -0.859648 +v -0.643300 1.583064 -0.908389 +v -0.643300 1.392185 -1.005646 +v 1.243842 1.367351 0.956906 +v -0.694283 1.367351 0.956906 +v 1.243842 1.558230 0.859648 +v -0.694283 1.558230 0.859648 +v -0.643300 1.583064 0.908389 +v 1.192858 1.583065 0.908389 +v 1.243842 1.558230 -0.859648 +v 1.243842 1.367351 -0.956906 +v -0.643300 1.392185 1.005647 +v 1.192858 1.392185 1.005646 +v 1.192858 1.583065 -0.908389 +v 1.192858 1.392185 -1.005646 +v -3.764244 0.340080 0.339605 +v -3.764243 0.358734 0.327490 +v -3.715309 0.358734 0.327490 +v -3.715310 0.340080 0.339605 +v -3.790732 0.400219 0.432213 +v -3.790732 0.418874 0.420099 +v -3.790732 0.379856 0.360015 +v -3.790732 0.361201 0.372129 +v -3.688820 0.418874 0.420099 +v -3.688820 0.400219 0.432213 +v -3.688820 0.361201 0.372129 +v -3.688820 0.379856 0.360015 +v -3.715309 0.421341 0.464737 +v -3.715309 0.439995 0.452622 +v -3.764243 0.439995 0.452622 +v -3.764243 0.421341 0.464737 +v -3.715309 0.257985 1.148551 +v -3.715309 0.277248 1.159673 +v -3.764244 0.277248 1.159673 +v -3.764243 0.257985 1.148551 +v -3.688820 0.313196 1.052923 +v -3.688820 0.332459 1.064044 +v -3.688820 0.296639 1.126087 +v -3.688820 0.277376 1.114966 +v -3.790732 0.332460 1.064045 +v -3.790732 0.313196 1.052923 +v -3.790732 0.277376 1.114966 +v -3.790732 0.296639 1.126087 +v -3.764243 0.332586 1.019338 +v -3.764244 0.351849 1.030460 +v -3.715309 0.351849 1.030460 +v -3.715309 0.332586 1.019338 +v -3.746801 0.295286 1.083945 +v -3.732751 0.295286 1.083945 +v -3.732750 0.380710 0.402171 +v -3.746801 0.380710 0.402171 +v -4.064243 0.340080 0.339605 +v -4.064243 0.358734 0.327490 +v -4.015309 0.358734 0.327490 +v -4.015309 0.340080 0.339605 +v -4.090732 0.400219 0.432213 +v -4.090733 0.418874 0.420099 +v -4.090732 0.379856 0.360015 +v -4.090732 0.361201 0.372129 +v -3.988820 0.418875 0.420098 +v -3.988820 0.400219 0.432213 +v -3.988820 0.361201 0.372129 +v -3.988820 0.379856 0.360015 +v -4.015309 0.421341 0.464737 +v -4.015309 0.439995 0.452622 +v -4.064243 0.439996 0.452622 +v -4.064243 0.421341 0.464737 +v -4.015309 0.257985 1.148551 +v -4.015309 0.277249 1.159673 +v -4.064244 0.277248 1.159673 +v -4.064244 0.257985 1.148551 +v -3.988821 0.313196 1.052923 +v -3.988821 0.332459 1.064044 +v -3.988821 0.296639 1.126087 +v -3.988820 0.277376 1.114966 +v -4.090732 0.332459 1.064044 +v -4.090732 0.313196 1.052923 +v -4.090732 0.277376 1.114966 +v -4.090732 0.296639 1.126087 +v -4.064244 0.332586 1.019338 +v -4.064244 0.351849 1.030460 +v -4.015309 0.351849 1.030460 +v -4.015309 0.332586 1.019338 +v -4.046802 0.295286 1.083945 +v -4.032752 0.295286 1.083945 +v -4.032751 0.380710 0.402171 +v -4.046801 0.380710 0.402171 +v -4.364244 0.340080 0.339605 +v -4.364244 0.358734 0.327490 +v -4.315310 0.358734 0.327490 +v -4.315310 0.340080 0.339605 +v -4.390733 0.400219 0.432212 +v -4.390733 0.418875 0.420098 +v -4.390733 0.379856 0.360015 +v -4.390733 0.361201 0.372129 +v -4.288821 0.418875 0.420098 +v -4.288821 0.400219 0.432212 +v -4.288821 0.361201 0.372129 +v -4.288821 0.379856 0.360015 +v -4.315310 0.421341 0.464736 +v -4.315310 0.439996 0.452622 +v -4.364244 0.439996 0.452622 +v -4.364243 0.421341 0.464736 +v -4.315309 0.257985 1.148551 +v -4.315310 0.277248 1.159673 +v -4.364244 0.277248 1.159673 +v -4.364244 0.257985 1.148551 +v -4.288821 0.313196 1.052923 +v -4.288821 0.332459 1.064044 +v -4.288821 0.296639 1.126087 +v -4.288821 0.277376 1.114966 +v -4.390733 0.332460 1.064045 +v -4.390733 0.313196 1.052923 +v -4.390733 0.277376 1.114966 +v -4.390733 0.296639 1.126087 +v -4.364244 0.332586 1.019338 +v -4.364244 0.351850 1.030459 +v -4.315310 0.351850 1.030460 +v -4.315309 0.332586 1.019338 +v -4.346802 0.295286 1.083945 +v -4.346802 0.380710 0.402171 +v -4.332751 0.380710 0.402171 +v -4.332752 0.295286 1.083945 +v -3.764244 1.035851 0.741309 +v -3.715309 1.035851 0.741309 +v -3.715309 1.037016 0.719097 +v -3.764244 1.037016 0.719097 +v -3.790732 0.925581 0.735531 +v -3.790732 0.997124 0.739279 +v -3.790732 0.998288 0.717067 +v -3.790732 0.926745 0.713318 +v -3.688820 0.926745 0.713318 +v -3.688820 0.998288 0.717067 +v -3.688821 0.997124 0.739279 +v -3.688820 0.925581 0.735531 +v -3.715309 0.886853 0.733501 +v -3.715309 0.888018 0.711288 +v -3.764244 0.888018 0.711288 +v -3.764244 0.886854 0.733500 +v -3.715310 0.376331 1.216878 +v -3.764244 0.376331 1.216878 +v -3.764244 0.357067 1.205756 +v -3.715310 0.357067 1.205756 +v -3.688821 0.431542 1.121250 +v -3.688821 0.395721 1.183293 +v -3.688821 0.376458 1.172171 +v -3.688821 0.412279 1.110128 +v -3.790733 0.412278 1.110128 +v -3.790732 0.376458 1.172171 +v -3.790733 0.395721 1.183293 +v -3.790732 0.431542 1.121250 +v -3.764244 0.450932 1.087665 +v -3.764244 0.431668 1.076543 +v -3.715310 0.431668 1.076543 +v -3.715310 0.450932 1.087665 +v -3.746802 0.413631 1.152272 +v -3.732752 0.413631 1.152272 +v -3.732751 0.961353 0.737405 +v -3.746801 0.961353 0.737405 +v -4.064244 1.035851 0.741309 +v -4.015310 1.035851 0.741309 +v -4.015310 1.037016 0.719097 +v -4.064244 1.037016 0.719097 +v -4.090733 0.925582 0.735530 +v -4.090733 0.997124 0.739279 +v -4.090733 0.998288 0.717067 +v -4.090733 0.926745 0.713317 +v -3.988821 0.926745 0.713317 +v -3.988821 0.998288 0.717067 +v -3.988820 0.997124 0.739279 +v -3.988821 0.925582 0.735530 +v -4.015309 0.886854 0.733500 +v -4.015310 0.888018 0.711288 +v -4.064243 0.888018 0.711288 +v -4.064244 0.886854 0.733500 +v -4.015310 0.376331 1.216878 +v -4.064244 0.376331 1.216878 +v -4.064244 0.357067 1.205756 +v -4.015309 0.357068 1.205757 +v -3.988821 0.431542 1.121250 +v -3.988821 0.395721 1.183293 +v -3.988821 0.376458 1.172171 +v -3.988821 0.412279 1.110128 +v -4.090733 0.412279 1.110128 +v -4.090733 0.376458 1.172171 +v -4.090733 0.395721 1.183293 +v -4.090733 0.431542 1.121250 +v -4.064244 0.450932 1.087665 +v -4.064244 0.431668 1.076543 +v -4.015309 0.431668 1.076543 +v -4.015310 0.450932 1.087665 +v -4.046802 0.413631 1.152272 +v -4.046802 0.961353 0.737405 +v -4.032751 0.961353 0.737405 +v -4.032752 0.413631 1.152272 +v -4.364244 1.035851 0.741309 +v -4.315310 1.035851 0.741309 +v -4.315310 1.037016 0.719097 +v -4.364244 1.037016 0.719097 +v -4.390733 0.925582 0.735530 +v -4.390733 0.997124 0.739279 +v -4.390733 0.998288 0.717067 +v -4.390733 0.926745 0.713317 +v -4.288821 0.926745 0.713317 +v -4.288821 0.998288 0.717067 +v -4.288821 0.997124 0.739279 +v -4.288821 0.925582 0.735530 +v -4.315310 0.886854 0.733500 +v -4.315310 0.888018 0.711288 +v -4.364244 0.888018 0.711288 +v -4.364244 0.886854 0.733500 +v -4.315310 0.376331 1.216878 +v -4.364244 0.376331 1.216878 +v -4.364244 0.357067 1.205756 +v -4.315310 0.357068 1.205757 +v -4.288821 0.431542 1.121250 +v -4.288821 0.395721 1.183293 +v -4.288821 0.376458 1.172171 +v -4.288821 0.412278 1.110128 +v -4.390733 0.412278 1.110128 +v -4.390733 0.376458 1.172171 +v -4.390733 0.395721 1.183293 +v -4.390734 0.431542 1.121250 +v -4.364244 0.450932 1.087664 +v -4.364244 0.431668 1.076543 +v -4.315310 0.431668 1.076543 +v -4.315310 0.450932 1.087664 +v -4.346802 0.413631 1.152272 +v -4.332752 0.413631 1.152272 +v -4.332752 0.961353 0.737405 +v -4.346802 0.961353 0.737405 +v -5.204793 0.175806 1.317712 +v -5.204793 0.478014 0.794272 +v -5.007714 0.604176 0.575752 +v -4.801618 0.604176 0.575752 +v -4.801618 0.455618 0.833062 +v -4.511972 0.455619 0.833061 +v -4.511972 0.604176 0.575752 +v -3.522396 0.604176 0.575752 +v -3.522397 0.274431 1.146888 +v -3.580169 0.204692 1.267679 +v -3.719646 0.175806 1.317712 +v -3.522396 0.699294 0.630668 +v -3.522396 0.369548 1.201804 +v -3.719646 0.270923 1.372628 +v -3.580169 0.299810 1.322595 +v -5.204792 0.270923 1.372628 +v -5.204793 0.573131 0.849188 +v -4.511971 0.699294 0.630668 +v -4.511972 0.550736 0.887978 +v -4.801618 0.550736 0.887977 +v -5.007713 0.699294 0.630668 +v -4.801618 0.699294 0.630668 +v -3.764244 1.035852 -0.741309 +v -3.764243 1.037016 -0.719097 +v -3.715309 1.037016 -0.719097 +v -3.715310 1.035852 -0.741309 +v -3.790732 0.925581 -0.735531 +v -3.790732 0.926745 -0.713318 +v -3.790732 0.998288 -0.717067 +v -3.790732 0.997124 -0.739280 +v -3.688820 0.926745 -0.713318 +v -3.688820 0.925581 -0.735531 +v -3.688820 0.997124 -0.739280 +v -3.688820 0.998288 -0.717067 +v -3.715309 0.886854 -0.733501 +v -3.715309 0.888018 -0.711288 +v -3.764243 0.888018 -0.711288 +v -3.764243 0.886854 -0.733501 +v -3.715309 0.376331 -1.216878 +v -3.715309 0.357068 -1.205757 +v -3.764244 0.357068 -1.205757 +v -3.764243 0.376331 -1.216878 +v -3.688820 0.431542 -1.121250 +v -3.688820 0.412279 -1.110128 +v -3.688820 0.376459 -1.172171 +v -3.688820 0.395722 -1.183293 +v -3.790732 0.412278 -1.110128 +v -3.790732 0.431542 -1.121250 +v -3.790732 0.395722 -1.183293 +v -3.790732 0.376459 -1.172171 +v -3.764243 0.450932 -1.087665 +v -3.764244 0.431669 -1.076544 +v -3.715309 0.431669 -1.076544 +v -3.715309 0.450932 -1.087665 +v -3.746801 0.413632 -1.152272 +v -3.732751 0.413632 -1.152272 +v -3.732750 0.961353 -0.737405 +v -3.746801 0.961353 -0.737405 +v -4.064243 1.035852 -0.741309 +v -4.064243 1.037016 -0.719097 +v -4.015309 1.037016 -0.719097 +v -4.015309 1.035852 -0.741309 +v -4.090732 0.925581 -0.735531 +v -4.090733 0.926745 -0.713318 +v -4.090732 0.998288 -0.717067 +v -4.090732 0.997124 -0.739280 +v -3.988820 0.926745 -0.713317 +v -3.988820 0.925581 -0.735531 +v -3.988820 0.997124 -0.739280 +v -3.988820 0.998288 -0.717067 +v -4.015309 0.886854 -0.733501 +v -4.015309 0.888018 -0.711288 +v -4.064243 0.888019 -0.711288 +v -4.064243 0.886854 -0.733501 +v -4.015309 0.376331 -1.216878 +v -4.015309 0.357067 -1.205756 +v -4.064244 0.357068 -1.205757 +v -4.064244 0.376331 -1.216878 +v -3.988821 0.431542 -1.121250 +v -3.988821 0.412279 -1.110128 +v -3.988821 0.376459 -1.172171 +v -3.988820 0.395722 -1.183293 +v -4.090732 0.412279 -1.110128 +v -4.090732 0.431542 -1.121250 +v -4.090732 0.395722 -1.183293 +v -4.090732 0.376459 -1.172171 +v -4.064244 0.450932 -1.087665 +v -4.064244 0.431669 -1.076544 +v -4.015309 0.431669 -1.076544 +v -4.015309 0.450932 -1.087665 +v -4.046802 0.413632 -1.152272 +v -4.032752 0.413632 -1.152272 +v -4.032751 0.961353 -0.737405 +v -4.046801 0.961353 -0.737405 +v -4.364244 1.035852 -0.741309 +v -4.364244 1.037016 -0.719097 +v -4.315310 1.037016 -0.719097 +v -4.315310 1.035852 -0.741309 +v -4.390733 0.925582 -0.735530 +v -4.390733 0.926745 -0.713317 +v -4.390733 0.998288 -0.717067 +v -4.390733 0.997124 -0.739280 +v -4.288821 0.926745 -0.713317 +v -4.288821 0.925582 -0.735530 +v -4.288821 0.997124 -0.739280 +v -4.288821 0.998288 -0.717067 +v -4.315310 0.886854 -0.733500 +v -4.315310 0.888019 -0.711288 +v -4.364244 0.888019 -0.711288 +v -4.364243 0.886854 -0.733500 +v -4.315309 0.376331 -1.216878 +v -4.315310 0.357068 -1.205757 +v -4.364244 0.357068 -1.205757 +v -4.364244 0.376331 -1.216878 +v -4.288821 0.431542 -1.121250 +v -4.288821 0.412279 -1.110128 +v -4.288821 0.376459 -1.172171 +v -4.288821 0.395722 -1.183293 +v -4.390733 0.412278 -1.110128 +v -4.390733 0.431542 -1.121250 +v -4.390733 0.395722 -1.183293 +v -4.390733 0.376459 -1.172171 +v -4.364244 0.450932 -1.087665 +v -4.364244 0.431670 -1.076543 +v -4.315310 0.431668 -1.076543 +v -4.315309 0.450932 -1.087665 +v -4.346802 0.413632 -1.152272 +v -4.346802 0.961353 -0.737405 +v -4.332751 0.961353 -0.737405 +v -4.332752 0.413632 -1.152272 +v -3.764244 0.340080 -0.339605 +v -3.715309 0.340080 -0.339605 +v -3.715309 0.358734 -0.327491 +v -3.764244 0.358734 -0.327491 +v -3.790732 0.400219 -0.432213 +v -3.790732 0.361202 -0.372129 +v -3.790732 0.379856 -0.360015 +v -3.790732 0.418875 -0.420099 +v -3.688820 0.418875 -0.420099 +v -3.688820 0.379856 -0.360015 +v -3.688821 0.361202 -0.372129 +v -3.688820 0.400219 -0.432213 +v -3.715309 0.421341 -0.464737 +v -3.715309 0.439996 -0.452622 +v -3.764244 0.439996 -0.452622 +v -3.764244 0.421341 -0.464736 +v -3.715310 0.257985 -1.148551 +v -3.764244 0.257985 -1.148551 +v -3.764244 0.277249 -1.159673 +v -3.715310 0.277249 -1.159673 +v -3.688821 0.313196 -1.052923 +v -3.688821 0.277376 -1.114966 +v -3.688821 0.296640 -1.126088 +v -3.688821 0.332459 -1.064044 +v -3.790733 0.332460 -1.064045 +v -3.790732 0.296640 -1.126088 +v -3.790733 0.277376 -1.114966 +v -3.790732 0.313196 -1.052923 +v -3.764244 0.332586 -1.019338 +v -3.764244 0.351850 -1.030460 +v -3.715310 0.351850 -1.030460 +v -3.715310 0.332586 -1.019338 +v -3.746802 0.295286 -1.083945 +v -3.732752 0.295286 -1.083945 +v -3.732751 0.380711 -0.402171 +v -3.746801 0.380711 -0.402171 +v -4.064244 0.340080 -0.339605 +v -4.015310 0.340080 -0.339605 +v -4.015310 0.358734 -0.327491 +v -4.064244 0.358734 -0.327491 +v -4.090733 0.400220 -0.432212 +v -4.090733 0.361202 -0.372129 +v -4.090733 0.379856 -0.360015 +v -4.090733 0.418875 -0.420098 +v -3.988821 0.418875 -0.420098 +v -3.988821 0.379856 -0.360015 +v -3.988820 0.361202 -0.372129 +v -3.988821 0.400220 -0.432212 +v -4.015309 0.421341 -0.464736 +v -4.015310 0.439996 -0.452622 +v -4.064243 0.439996 -0.452622 +v -4.064244 0.421341 -0.464736 +v -4.015310 0.257985 -1.148551 +v -4.064244 0.257985 -1.148551 +v -4.064244 0.277249 -1.159673 +v -4.015309 0.277248 -1.159673 +v -3.988821 0.313196 -1.052923 +v -3.988821 0.277376 -1.114966 +v -3.988821 0.296640 -1.126088 +v -3.988821 0.332459 -1.064044 +v -4.090733 0.332459 -1.064044 +v -4.090733 0.296640 -1.126088 +v -4.090733 0.277376 -1.114966 +v -4.090733 0.313196 -1.052923 +v -4.064244 0.332586 -1.019338 +v -4.064244 0.351850 -1.030460 +v -4.015309 0.351850 -1.030460 +v -4.015310 0.332586 -1.019338 +v -4.046802 0.295286 -1.083945 +v -4.046802 0.380711 -0.402171 +v -4.032751 0.380711 -0.402171 +v -4.032752 0.295286 -1.083945 +v -4.364244 0.340080 -0.339605 +v -4.315310 0.340080 -0.339605 +v -4.315310 0.358734 -0.327491 +v -4.364244 0.358734 -0.327491 +v -4.390733 0.400220 -0.432212 +v -4.390733 0.361202 -0.372129 +v -4.390733 0.379856 -0.360015 +v -4.390733 0.418875 -0.420098 +v -4.288821 0.418875 -0.420098 +v -4.288821 0.379856 -0.360015 +v -4.288821 0.361202 -0.372129 +v -4.288821 0.400220 -0.432212 +v -4.315310 0.421341 -0.464736 +v -4.315310 0.439996 -0.452622 +v -4.364244 0.439996 -0.452622 +v -4.364244 0.421341 -0.464736 +v -4.315310 0.257985 -1.148551 +v -4.364244 0.257985 -1.148551 +v -4.364244 0.277249 -1.159673 +v -4.315310 0.277248 -1.159673 +v -4.288821 0.313196 -1.052923 +v -4.288821 0.277376 -1.114966 +v -4.288821 0.296640 -1.126088 +v -4.288821 0.332460 -1.064045 +v -4.390733 0.332460 -1.064045 +v -4.390733 0.296640 -1.126088 +v -4.390733 0.277376 -1.114966 +v -4.390734 0.313196 -1.052923 +v -4.364244 0.332587 -1.019337 +v -4.364244 0.351850 -1.030460 +v -4.315310 0.351850 -1.030460 +v -4.315310 0.332587 -1.019337 +v -4.346802 0.295286 -1.083945 +v -4.332752 0.295286 -1.083945 +v -4.332752 0.380711 -0.402171 +v -4.346802 0.380711 -0.402171 +v -5.204793 0.270923 -1.372628 +v -5.204793 0.573131 -0.849188 +v -5.007714 0.699294 -0.630668 +v -4.801618 0.699294 -0.630668 +v -4.801618 0.550736 -0.887978 +v -4.511972 0.550736 -0.887978 +v -4.511972 0.699294 -0.630668 +v -3.522396 0.699294 -0.630668 +v -3.522397 0.369548 -1.201805 +v -3.580169 0.299810 -1.322595 +v -3.719646 0.270923 -1.372628 +v -3.522396 0.604176 -0.575752 +v -3.522396 0.274431 -1.146888 +v -3.719646 0.175806 -1.317712 +v -3.580169 0.204693 -1.267679 +v -5.204792 0.175806 -1.317712 +v -5.204793 0.478014 -0.794273 +v -4.511971 0.604176 -0.575752 +v -4.511972 0.455619 -0.833062 +v -4.801618 0.455619 -0.833062 +v -5.007713 0.604176 -0.575752 +v -4.801618 0.604176 -0.575752 +v -5.245664 1.555620 0.486839 +v -5.194486 1.615364 0.546583 +v -5.178945 1.615364 0.546583 +v -5.127767 1.555620 0.486839 +v -5.127767 1.486839 0.555621 +v -5.178945 1.546583 0.615365 +v -5.194487 1.546583 0.615365 +v -5.245664 1.486839 0.555621 +v -5.194486 1.569510 0.592438 +v -5.245664 1.509765 0.532693 +v -5.127767 1.509765 0.532693 +v -5.178945 1.569510 0.592438 +v -5.194486 1.544299 0.617649 +v -5.194487 1.427158 0.575487 +v -5.178945 1.427158 0.575487 +v -5.178945 1.544299 0.617649 +v -5.178945 1.617648 0.544300 +v -5.178945 1.575486 0.427159 +v -5.194486 1.575486 0.427159 +v -5.194486 1.617648 0.544300 +v -5.245664 1.532693 0.509766 +v -5.127767 1.532693 0.509766 +v -5.178945 1.592438 0.569510 +v -5.194486 1.592438 0.569510 +v -5.194487 1.489858 0.512786 +v -5.178945 1.489858 0.512786 +v -5.178945 1.512786 0.489859 +v -5.194487 1.512786 0.489859 +v -5.245664 1.470121 0.538903 +v -5.127767 1.470121 0.538903 +v -5.245664 1.515976 0.493049 +v -5.127767 1.515976 0.493049 +v -5.127767 1.493048 0.515976 +v -5.245664 1.493048 0.515976 +v -5.245664 1.538902 0.470121 +v -5.127767 1.538902 0.470121 +v -5.254691 1.541133 0.506453 +v -5.254690 1.506452 0.541134 +v -5.297078 1.525191 0.559874 +v -5.297078 1.559873 0.525192 +v -5.254690 1.579578 0.614261 +v -5.254690 1.614260 0.579579 +v -5.296170 1.560045 0.594727 +v -5.303239 1.542663 0.577345 +v -5.303239 1.577344 0.542664 +v -5.296170 1.594726 0.560045 +v -4.735427 1.561746 0.540243 +v -5.258313 1.594114 0.572178 +v -5.258313 1.572177 0.594115 +v -4.735427 1.540243 0.561746 +v -4.735427 1.515094 0.536598 +v -5.258312 1.524289 0.546226 +v -5.258312 1.546225 0.524289 +v -4.735427 1.536598 0.515095 +v -4.738048 1.557482 0.584722 +v -4.738048 1.492118 0.519358 +v -4.703030 1.514633 0.541873 +v -4.703030 1.537288 0.564528 +v -4.713286 1.551567 0.578807 +v -4.738048 1.519357 0.492119 +v -4.738048 1.584721 0.557482 +v -4.713286 1.578807 0.551568 +v -4.703029 1.564527 0.537288 +v -4.703030 1.541872 0.514633 +v -4.755419 1.545849 0.473066 +v -4.755419 1.579176 0.506393 +v -4.747920 1.593535 0.520752 +v -4.723568 1.600803 0.528020 +v -4.699216 1.593535 0.520752 +v -4.691718 1.579176 0.506393 +v -4.691718 1.545849 0.473066 +v -4.723568 1.550818 0.578005 +v -4.723568 1.528020 0.600803 +v -4.699217 1.520751 0.593535 +v -4.699216 1.543549 0.570737 +v -4.755419 1.523051 0.495865 +v -4.755419 1.556378 0.529191 +v -4.691718 1.495864 0.523051 +v -4.691718 1.529191 0.556379 +v -4.691718 1.506393 0.579177 +v -4.691718 1.473065 0.545850 +v -4.723568 1.578005 0.550818 +v -4.747920 1.570737 0.543550 +v -4.755419 1.529191 0.556379 +v -4.755419 1.506393 0.579177 +v -4.747920 1.520751 0.593535 +v -4.747920 1.543549 0.570737 +v -4.691718 1.556378 0.529191 +v -4.699217 1.570737 0.543550 +v -4.755419 1.473065 0.545850 +v -4.691718 1.523051 0.495865 +v -4.755418 1.495864 0.523051 +v -5.245664 1.237761 0.699426 +v -5.194486 1.259629 0.781038 +v -5.178945 1.259629 0.781038 +v -5.127767 1.237761 0.699426 +v -5.127767 1.143804 0.724602 +v -5.178945 1.165672 0.806214 +v -5.194487 1.165672 0.806214 +v -5.245664 1.143804 0.724602 +v -5.194486 1.196991 0.797822 +v -5.245664 1.175123 0.716209 +v -5.127767 1.175123 0.716209 +v -5.178945 1.196991 0.797822 +v -5.194486 1.162552 0.807050 +v -5.194487 1.082186 0.711966 +v -5.178945 1.082186 0.711966 +v -5.178945 1.162552 0.807050 +v -5.178945 1.262748 0.780202 +v -5.178945 1.284806 0.657674 +v -5.194486 1.284806 0.657674 +v -5.194486 1.262748 0.780202 +v -5.245664 1.206442 0.707818 +v -5.127767 1.206442 0.707818 +v -5.178945 1.228311 0.789430 +v -5.194486 1.228311 0.789430 +v -5.194487 1.167837 0.689015 +v -5.178945 1.167837 0.689015 +v -5.178945 1.199156 0.680624 +v -5.194487 1.199156 0.680624 +v -5.245664 1.137685 0.701765 +v -5.127767 1.137685 0.701765 +v -5.245664 1.200324 0.684981 +v -5.127767 1.200324 0.684981 +v -5.127767 1.169004 0.693373 +v -5.245664 1.169004 0.693373 +v -5.245664 1.231642 0.676589 +v -5.127767 1.231642 0.676589 +v -5.254691 1.215409 0.709169 +v -5.254690 1.168033 0.721863 +v -5.297078 1.174892 0.747461 +v -5.297078 1.222268 0.734766 +v -5.254690 1.194798 0.821755 +v -5.254690 1.242175 0.809061 +v -5.296170 1.187649 0.795072 +v -5.303239 1.181287 0.771328 +v -5.303239 1.228663 0.758634 +v -5.296170 1.235025 0.782377 +v -4.735427 1.216364 0.748737 +v -5.258313 1.228428 0.792579 +v -5.258313 1.198462 0.800608 +v -4.735427 1.186990 0.756609 +v -4.735427 1.177785 0.722255 +v -5.258312 1.180934 0.735191 +v -5.258312 1.210900 0.727160 +v -4.735427 1.207160 0.714385 +v -4.738048 1.190432 0.785125 +v -4.738048 1.166507 0.695837 +v -4.703030 1.174749 0.726592 +v -4.703030 1.183041 0.757540 +v -4.713286 1.188267 0.777046 +v -4.738048 1.203717 0.685867 +v -4.738048 1.227642 0.775155 +v -4.713286 1.225477 0.767076 +v -4.703029 1.220250 0.747570 +v -4.703030 1.211958 0.716622 +v -4.755419 1.236186 0.682612 +v -4.755419 1.248384 0.728138 +v -4.747920 1.253640 0.747753 +v -4.723568 1.256300 0.757681 +v -4.699216 1.253640 0.747753 +v -4.691718 1.248384 0.728138 +v -4.691718 1.236186 0.682612 +v -4.723568 1.188019 0.775977 +v -4.723568 1.156877 0.784321 +v -4.699217 1.154216 0.774393 +v -4.699216 1.185358 0.766048 +v -4.755419 1.205043 0.690957 +v -4.755419 1.217242 0.736483 +v -4.691718 1.167905 0.700908 +v -4.691718 1.180103 0.746434 +v -4.691718 1.148961 0.754779 +v -4.691718 1.136761 0.709253 +v -4.723568 1.225158 0.766025 +v -4.747920 1.222498 0.756097 +v -4.755419 1.180103 0.746434 +v -4.755419 1.148961 0.754779 +v -4.747920 1.154216 0.774393 +v -4.747920 1.185358 0.766048 +v -4.691718 1.217242 0.736483 +v -4.699217 1.222498 0.756097 +v -4.755419 1.136761 0.709253 +v -4.691718 1.205043 0.690957 +v -4.755418 1.167905 0.700908 +v -5.245664 0.856194 0.724602 +v -5.194486 0.834327 0.806214 +v -5.178945 0.834327 0.806214 +v -5.127767 0.856194 0.724602 +v -5.127767 0.762237 0.699426 +v -5.178945 0.740369 0.781038 +v -5.194487 0.740369 0.781038 +v -5.245664 0.762237 0.699426 +v -5.194486 0.771688 0.789430 +v -5.245664 0.793556 0.707818 +v -5.127767 0.793556 0.707818 +v -5.178945 0.771688 0.789430 +v -5.194486 0.737249 0.780203 +v -5.194487 0.715192 0.657674 +v -5.178945 0.715192 0.657674 +v -5.178945 0.737249 0.780203 +v -5.178945 0.837446 0.807050 +v -5.178945 0.917811 0.711966 +v -5.194486 0.917811 0.711966 +v -5.194486 0.837446 0.807050 +v -5.245664 0.824875 0.716210 +v -5.127767 0.824875 0.716210 +v -5.178945 0.803008 0.797822 +v -5.194486 0.803008 0.797822 +v -5.194487 0.800843 0.680624 +v -5.178945 0.800843 0.680624 +v -5.178945 0.832162 0.689016 +v -5.194487 0.832162 0.689016 +v -5.245664 0.768356 0.676590 +v -5.127767 0.768356 0.676590 +v -5.245664 0.830994 0.693374 +v -5.127767 0.830994 0.693374 +v -5.127767 0.799675 0.684981 +v -5.245664 0.799675 0.684981 +v -5.245664 0.862314 0.701765 +v -5.127767 0.862314 0.701765 +v -5.254691 0.831965 0.721863 +v -5.254690 0.784589 0.709169 +v -5.297078 0.777730 0.734767 +v -5.297078 0.825106 0.747461 +v -5.254690 0.757823 0.809060 +v -5.254690 0.805199 0.821755 +v -5.296170 0.764973 0.782378 +v -5.303239 0.771335 0.758634 +v -5.303239 0.818710 0.771328 +v -5.296170 0.812349 0.795072 +v -4.735427 0.813008 0.756608 +v -5.258313 0.801535 0.800608 +v -5.258313 0.771569 0.792579 +v -4.735427 0.783634 0.748738 +v -4.735427 0.792839 0.714384 +v -5.258312 0.789098 0.727162 +v -5.258312 0.819065 0.735190 +v -4.735427 0.822213 0.722256 +v -4.738048 0.772356 0.775155 +v -4.738048 0.796281 0.685867 +v -4.703030 0.788040 0.716622 +v -4.703030 0.779748 0.747570 +v -4.713286 0.774521 0.767076 +v -4.738048 0.833491 0.695837 +v -4.738048 0.809566 0.785126 +v -4.713286 0.811731 0.777046 +v -4.703029 0.816957 0.757540 +v -4.703030 0.825250 0.726593 +v -4.755419 0.863237 0.709253 +v -4.755419 0.851038 0.754779 +v -4.747920 0.845782 0.774394 +v -4.723568 0.843122 0.784322 +v -4.699216 0.845782 0.774394 +v -4.691718 0.851038 0.754779 +v -4.691718 0.863237 0.709253 +v -4.723568 0.774841 0.766026 +v -4.723568 0.743698 0.757681 +v -4.699217 0.746358 0.747753 +v -4.699216 0.777501 0.756097 +v -4.755419 0.832093 0.700908 +v -4.755419 0.819895 0.746434 +v -4.691718 0.794956 0.690957 +v -4.691718 0.782757 0.736483 +v -4.691718 0.751614 0.728139 +v -4.691718 0.763812 0.682613 +v -4.723568 0.811980 0.775977 +v -4.747920 0.814640 0.766049 +v -4.755419 0.782757 0.736483 +v -4.755419 0.751614 0.728139 +v -4.747920 0.746358 0.747753 +v -4.747920 0.777501 0.756097 +v -4.691718 0.819895 0.746434 +v -4.699217 0.814640 0.766049 +v -4.755419 0.763812 0.682613 +v -4.691718 0.832093 0.700908 +v -4.755418 0.794956 0.690957 +v -5.245664 0.513160 0.555621 +v -5.194486 0.453416 0.615365 +v -5.178945 0.453416 0.615365 +v -5.127767 0.513160 0.555621 +v -5.127767 0.444378 0.486840 +v -5.178945 0.384634 0.546584 +v -5.194487 0.384634 0.546584 +v -5.245664 0.444378 0.486840 +v -5.194486 0.407561 0.569511 +v -5.245664 0.467305 0.509767 +v -5.127767 0.467305 0.509767 +v -5.178945 0.407561 0.569511 +v -5.194486 0.382350 0.544301 +v -5.194487 0.424512 0.427159 +v -5.178945 0.424512 0.427159 +v -5.178945 0.382350 0.544301 +v -5.178945 0.455699 0.617649 +v -5.178945 0.572839 0.575487 +v -5.194486 0.572839 0.575487 +v -5.194486 0.455699 0.617649 +v -5.245664 0.490232 0.532694 +v -5.127767 0.490232 0.532694 +v -5.178945 0.430488 0.592439 +v -5.194486 0.430488 0.592439 +v -5.194487 0.487213 0.489860 +v -5.178945 0.487213 0.489860 +v -5.178945 0.510140 0.512787 +v -5.194487 0.510140 0.512787 +v -5.245664 0.461096 0.470123 +v -5.127767 0.461096 0.470123 +v -5.245664 0.506950 0.515977 +v -5.127767 0.506950 0.515977 +v -5.127767 0.484023 0.493049 +v -5.245664 0.484023 0.493049 +v -5.245664 0.529878 0.538904 +v -5.127767 0.529878 0.538904 +v -5.254691 0.493546 0.541135 +v -5.254690 0.458864 0.506454 +v -5.297078 0.440125 0.525192 +v -5.297078 0.474807 0.559874 +v -5.254690 0.385738 0.579579 +v -5.254690 0.420420 0.614261 +v -5.296170 0.405272 0.560046 +v -5.303239 0.422653 0.542664 +v -5.303239 0.457334 0.577346 +v -5.296170 0.439954 0.594727 +v -4.735427 0.459756 0.561747 +v -5.258313 0.427820 0.594115 +v -5.258313 0.405884 0.572178 +v -4.735427 0.438252 0.540244 +v -4.735427 0.463401 0.515095 +v -5.258312 0.453773 0.524290 +v -5.258312 0.475710 0.546226 +v -4.735427 0.484904 0.536599 +v -4.738048 0.415277 0.557483 +v -4.738048 0.480641 0.492119 +v -4.703030 0.458126 0.514634 +v -4.703030 0.435471 0.537289 +v -4.713286 0.421191 0.551568 +v -4.738048 0.507880 0.519359 +v -4.738048 0.442516 0.584722 +v -4.713286 0.448431 0.578808 +v -4.703029 0.462710 0.564528 +v -4.703030 0.485366 0.541873 +v -4.755419 0.526933 0.545850 +v -4.755419 0.493605 0.579177 +v -4.747920 0.479246 0.593536 +v -4.723568 0.471979 0.600804 +v -4.699216 0.479246 0.593536 +v -4.691718 0.493605 0.579177 +v -4.691718 0.526933 0.545850 +v -4.723568 0.421993 0.550819 +v -4.723568 0.399196 0.528021 +v -4.699217 0.406463 0.520752 +v -4.699216 0.429261 0.543550 +v -4.755419 0.504134 0.523052 +v -4.755419 0.470807 0.556379 +v -4.691718 0.476948 0.495865 +v -4.691718 0.443620 0.529192 +v -4.691718 0.420822 0.506394 +v -4.691718 0.454149 0.473067 +v -4.723568 0.449181 0.578006 +v -4.747920 0.456449 0.570738 +v -4.755419 0.443620 0.529192 +v -4.755419 0.420822 0.506394 +v -4.747920 0.406463 0.520752 +v -4.747920 0.429261 0.543550 +v -4.691718 0.470807 0.556379 +v -4.699217 0.456449 0.570738 +v -4.755419 0.454149 0.473067 +v -4.691718 0.504134 0.523052 +v -4.755418 0.476948 0.495865 +v -5.245664 0.300573 0.237762 +v -5.194486 0.218961 0.259631 +v -5.178945 0.218961 0.259631 +v -5.127767 0.300573 0.237762 +v -5.127767 0.275397 0.143805 +v -5.178945 0.193785 0.165673 +v -5.194487 0.193785 0.165673 +v -5.245664 0.275397 0.143805 +v -5.194486 0.202177 0.196992 +v -5.245664 0.283789 0.175124 +v -5.127767 0.283789 0.175124 +v -5.178945 0.202177 0.196992 +v -5.194486 0.192949 0.162554 +v -5.194487 0.288033 0.082188 +v -5.178945 0.288033 0.082188 +v -5.178945 0.192949 0.162554 +v -5.178945 0.219797 0.262750 +v -5.178945 0.342324 0.284807 +v -5.194486 0.342324 0.284807 +v -5.194486 0.219797 0.262750 +v -5.245664 0.292181 0.206444 +v -5.127767 0.292181 0.206444 +v -5.178945 0.210569 0.228312 +v -5.194486 0.210569 0.228312 +v -5.194487 0.310983 0.167838 +v -5.178945 0.310983 0.167838 +v -5.178945 0.319375 0.199157 +v -5.194487 0.319375 0.199157 +v -5.245664 0.298234 0.137686 +v -5.127767 0.298234 0.137686 +v -5.245664 0.315018 0.200325 +v -5.127767 0.315018 0.200325 +v -5.127767 0.306626 0.169005 +v -5.245664 0.306626 0.169005 +v -5.245664 0.323410 0.231644 +v -5.127767 0.323410 0.231644 +v -5.254691 0.290830 0.215410 +v -5.254690 0.278136 0.168035 +v -5.297078 0.252538 0.174893 +v -5.297078 0.265232 0.222269 +v -5.254690 0.178244 0.194800 +v -5.254690 0.190938 0.242176 +v -5.296170 0.204927 0.187651 +v -5.303239 0.228671 0.181288 +v -5.303239 0.241365 0.228664 +v -5.296170 0.217622 0.235027 +v -4.735427 0.251261 0.216366 +v -5.258313 0.207420 0.228430 +v -5.258313 0.199391 0.198463 +v -4.735427 0.243390 0.186992 +v -4.735427 0.277744 0.177786 +v -5.258312 0.264808 0.180936 +v -5.258312 0.272838 0.210902 +v -4.735427 0.285614 0.207161 +v -4.738048 0.214873 0.190433 +v -4.738048 0.304162 0.166509 +v -4.703030 0.273406 0.174750 +v -4.703030 0.242459 0.183042 +v -4.713286 0.222953 0.188269 +v -4.738048 0.314132 0.203718 +v -4.738048 0.224844 0.227643 +v -4.713286 0.232923 0.225479 +v -4.703029 0.252429 0.220252 +v -4.703030 0.283377 0.211960 +v -4.755419 0.317387 0.236187 +v -4.755419 0.271861 0.248385 +v -4.747920 0.252246 0.253641 +v -4.723568 0.242318 0.256301 +v -4.699216 0.252246 0.253641 +v -4.691718 0.271861 0.248385 +v -4.691718 0.317387 0.236187 +v -4.723568 0.224022 0.188020 +v -4.723568 0.215677 0.156878 +v -4.699217 0.225606 0.154217 +v -4.699216 0.233951 0.185360 +v -4.755419 0.309042 0.205044 +v -4.755419 0.263516 0.217243 +v -4.691718 0.299091 0.167906 +v -4.691718 0.253565 0.180104 +v -4.691718 0.245220 0.148962 +v -4.691718 0.290746 0.136763 +v -4.723568 0.233974 0.225159 +v -4.747920 0.243901 0.222499 +v -4.755419 0.253565 0.180104 +v -4.755419 0.245220 0.148962 +v -4.747920 0.225606 0.154217 +v -4.747920 0.233951 0.185360 +v -4.691718 0.263516 0.217243 +v -4.699217 0.243901 0.222499 +v -4.755419 0.290746 0.136763 +v -4.691718 0.309042 0.205044 +v -4.755418 0.299091 0.167906 +v -5.245664 0.275397 -0.143804 +v -5.194486 0.193785 -0.165672 +v -5.178945 0.193785 -0.165672 +v -5.127767 0.275397 -0.143804 +v -5.127767 0.300573 -0.237762 +v -5.178945 0.218960 -0.259630 +v -5.194487 0.218960 -0.259630 +v -5.245664 0.300573 -0.237762 +v -5.194486 0.210569 -0.228310 +v -5.245664 0.292181 -0.206443 +v -5.127767 0.292181 -0.206443 +v -5.178945 0.210569 -0.228310 +v -5.194486 0.219796 -0.262750 +v -5.194487 0.342325 -0.284806 +v -5.178945 0.342325 -0.284806 +v -5.178945 0.219796 -0.262750 +v -5.178945 0.192949 -0.162553 +v -5.178945 0.288033 -0.082187 +v -5.194486 0.288033 -0.082187 +v -5.194486 0.192949 -0.162553 +v -5.245664 0.283789 -0.175124 +v -5.127767 0.283789 -0.175124 +v -5.178945 0.202177 -0.196991 +v -5.194486 0.202177 -0.196991 +v -5.194487 0.319375 -0.199156 +v -5.178945 0.319375 -0.199156 +v -5.178945 0.310982 -0.167837 +v -5.194487 0.310982 -0.167837 +v -5.245664 0.323409 -0.231643 +v -5.127767 0.323409 -0.231643 +v -5.245664 0.306625 -0.169004 +v -5.127767 0.306625 -0.169004 +v -5.127767 0.315018 -0.200323 +v -5.245664 0.315018 -0.200323 +v -5.245664 0.298234 -0.137685 +v -5.127767 0.298234 -0.137685 +v -5.254691 0.278136 -0.168034 +v -5.254690 0.290830 -0.215409 +v -5.297078 0.265232 -0.222269 +v -5.297078 0.252538 -0.174893 +v -5.254690 0.190938 -0.242176 +v -5.254690 0.178244 -0.194800 +v -5.296170 0.217621 -0.235026 +v -5.303239 0.241365 -0.228664 +v -5.303239 0.228671 -0.181288 +v -5.296170 0.204927 -0.187649 +v -4.735427 0.243390 -0.186991 +v -5.258313 0.199391 -0.198463 +v -5.258313 0.207420 -0.228430 +v -4.735427 0.251261 -0.216365 +v -4.735427 0.285615 -0.207160 +v -5.258312 0.272837 -0.210900 +v -5.258312 0.264809 -0.180934 +v -4.735427 0.277743 -0.177786 +v -4.738048 0.224844 -0.227643 +v -4.738048 0.314132 -0.203718 +v -4.703030 0.283376 -0.211958 +v -4.703030 0.252429 -0.220251 +v -4.713286 0.232923 -0.225478 +v -4.738048 0.304162 -0.166508 +v -4.738048 0.214873 -0.190433 +v -4.713286 0.222953 -0.188268 +v -4.703029 0.242459 -0.183041 +v -4.703030 0.273406 -0.174749 +v -4.755419 0.290746 -0.136762 +v -4.755419 0.245220 -0.148961 +v -4.747920 0.225605 -0.154217 +v -4.723568 0.215677 -0.156877 +v -4.699216 0.225605 -0.154217 +v -4.691718 0.245220 -0.148961 +v -4.691718 0.290746 -0.136762 +v -4.723568 0.233973 -0.225158 +v -4.723568 0.242318 -0.256300 +v -4.699217 0.252246 -0.253640 +v -4.699216 0.243902 -0.222498 +v -4.755419 0.299090 -0.167905 +v -4.755419 0.253565 -0.180103 +v -4.691718 0.309041 -0.205043 +v -4.691718 0.263516 -0.217242 +v -4.691718 0.271860 -0.248385 +v -4.691718 0.317386 -0.236187 +v -4.723568 0.224022 -0.188019 +v -4.747920 0.233950 -0.185359 +v -4.755419 0.263516 -0.217242 +v -4.755419 0.271860 -0.248385 +v -4.747920 0.252246 -0.253640 +v -4.747920 0.243902 -0.222498 +v -4.691718 0.253565 -0.180103 +v -4.699217 0.233950 -0.185359 +v -4.755419 0.317386 -0.236187 +v -4.691718 0.299090 -0.167905 +v -4.755418 0.309041 -0.205043 +v -5.245664 0.444378 -0.486839 +v -5.194486 0.384633 -0.546583 +v -5.178945 0.384633 -0.546583 +v -5.127767 0.444378 -0.486839 +v -5.127767 0.513159 -0.555621 +v -5.178945 0.453414 -0.615365 +v -5.194487 0.453414 -0.615365 +v -5.245664 0.513159 -0.555621 +v -5.194486 0.430488 -0.592437 +v -5.245664 0.490232 -0.532693 +v -5.127767 0.490232 -0.532693 +v -5.178945 0.430488 -0.592437 +v -5.194486 0.455698 -0.617649 +v -5.194487 0.572839 -0.575487 +v -5.178945 0.572839 -0.575487 +v -5.178945 0.455698 -0.617649 +v -5.178945 0.382350 -0.544300 +v -5.178945 0.424512 -0.427159 +v -5.194486 0.424512 -0.427159 +v -5.194486 0.382350 -0.544300 +v -5.245664 0.467304 -0.509767 +v -5.127767 0.467304 -0.509767 +v -5.178945 0.407560 -0.569510 +v -5.194486 0.407560 -0.569510 +v -5.194487 0.510139 -0.512786 +v -5.178945 0.510139 -0.512786 +v -5.178945 0.487211 -0.489859 +v -5.194487 0.487211 -0.489859 +v -5.245664 0.529876 -0.538903 +v -5.127767 0.529876 -0.538903 +v -5.245664 0.484022 -0.493049 +v -5.127767 0.484022 -0.493049 +v -5.127767 0.506949 -0.515976 +v -5.245664 0.506949 -0.515976 +v -5.245664 0.461095 -0.470121 +v -5.127767 0.461095 -0.470121 +v -5.254691 0.458864 -0.506453 +v -5.254690 0.493545 -0.541134 +v -5.297078 0.474807 -0.559874 +v -5.297078 0.440125 -0.525192 +v -5.254690 0.420420 -0.614261 +v -5.254690 0.385738 -0.579579 +v -5.296170 0.439953 -0.594727 +v -5.303239 0.457334 -0.577346 +v -5.303239 0.422653 -0.542664 +v -5.296170 0.405271 -0.560045 +v -4.735427 0.438252 -0.540243 +v -5.258313 0.405884 -0.572178 +v -5.258313 0.427820 -0.594115 +v -4.735427 0.459755 -0.561746 +v -4.735427 0.484904 -0.536598 +v -5.258312 0.475709 -0.546226 +v -5.258312 0.453773 -0.524289 +v -4.735427 0.463400 -0.515095 +v -4.738048 0.442516 -0.584722 +v -4.738048 0.507879 -0.519358 +v -4.703030 0.485365 -0.541873 +v -4.703030 0.462710 -0.564528 +v -4.713286 0.448430 -0.578807 +v -4.738048 0.480640 -0.492119 +v -4.738048 0.415276 -0.557482 +v -4.713286 0.421191 -0.551568 +v -4.703029 0.435470 -0.537288 +v -4.703030 0.458125 -0.514633 +v -4.755419 0.454149 -0.473066 +v -4.755419 0.420822 -0.506393 +v -4.747920 0.406463 -0.520753 +v -4.723568 0.399195 -0.528020 +v -4.699216 0.406463 -0.520753 +v -4.691718 0.420822 -0.506393 +v -4.691718 0.454149 -0.473066 +v -4.723568 0.449180 -0.578005 +v -4.723568 0.471978 -0.600803 +v -4.699217 0.479246 -0.593535 +v -4.699216 0.456449 -0.570737 +v -4.755419 0.476947 -0.495865 +v -4.755419 0.443620 -0.529191 +v -4.691718 0.504134 -0.523051 +v -4.691718 0.470807 -0.556379 +v -4.691718 0.493604 -0.579177 +v -4.691718 0.526932 -0.545850 +v -4.723568 0.421993 -0.550818 +v -4.747920 0.429260 -0.543550 +v -4.755419 0.470807 -0.556379 +v -4.755419 0.493604 -0.579177 +v -4.747920 0.479246 -0.593535 +v -4.747920 0.456449 -0.570737 +v -4.691718 0.443620 -0.529191 +v -4.699217 0.429260 -0.543550 +v -4.755419 0.526932 -0.545850 +v -4.691718 0.476947 -0.495865 +v -4.755418 0.504134 -0.523051 +v -5.245664 0.762236 -0.699426 +v -5.194486 0.740368 -0.781038 +v -5.178945 0.740368 -0.781038 +v -5.127767 0.762236 -0.699426 +v -5.127767 0.856193 -0.724602 +v -5.178945 0.834325 -0.806214 +v -5.194487 0.834325 -0.806214 +v -5.245664 0.856193 -0.724602 +v -5.194486 0.803006 -0.797821 +v -5.245664 0.824875 -0.716209 +v -5.127767 0.824875 -0.716209 +v -5.178945 0.803006 -0.797821 +v -5.194486 0.837445 -0.807050 +v -5.194487 0.917811 -0.711966 +v -5.178945 0.917811 -0.711966 +v -5.178945 0.837445 -0.807050 +v -5.178945 0.737249 -0.780202 +v -5.178945 0.715192 -0.657674 +v -5.194486 0.715192 -0.657674 +v -5.194486 0.737249 -0.780202 +v -5.245664 0.793555 -0.707818 +v -5.127767 0.793555 -0.707818 +v -5.178945 0.771687 -0.789430 +v -5.194486 0.771687 -0.789430 +v -5.194487 0.832161 -0.689015 +v -5.178945 0.832161 -0.689015 +v -5.178945 0.800841 -0.680624 +v -5.194487 0.800841 -0.680624 +v -5.245664 0.862312 -0.701765 +v -5.127767 0.862312 -0.701765 +v -5.245664 0.799674 -0.684981 +v -5.127767 0.799674 -0.684981 +v -5.127767 0.830993 -0.693373 +v -5.245664 0.830993 -0.693373 +v -5.245664 0.768355 -0.676589 +v -5.127767 0.768355 -0.676589 +v -5.254691 0.784589 -0.709169 +v -5.254690 0.831964 -0.721863 +v -5.297078 0.825106 -0.747461 +v -5.297078 0.777730 -0.734766 +v -5.254690 0.805199 -0.821755 +v -5.254690 0.757823 -0.809061 +v -5.296170 0.812348 -0.795072 +v -5.303239 0.818710 -0.771328 +v -5.303239 0.771335 -0.758634 +v -5.296170 0.764972 -0.782377 +v -4.735427 0.783633 -0.748737 +v -5.258313 0.771569 -0.792579 +v -5.258313 0.801535 -0.800608 +v -4.735427 0.813007 -0.756608 +v -4.735427 0.822213 -0.722255 +v -5.258312 0.819063 -0.735191 +v -5.258312 0.789097 -0.727160 +v -4.735427 0.792838 -0.714385 +v -4.738048 0.809565 -0.785125 +v -4.738048 0.833490 -0.695837 +v -4.703030 0.825249 -0.726592 +v -4.703030 0.816957 -0.757540 +v -4.713286 0.811730 -0.777046 +v -4.738048 0.796280 -0.685866 +v -4.738048 0.772356 -0.775155 +v -4.713286 0.774520 -0.767076 +v -4.703029 0.779747 -0.747570 +v -4.703030 0.788039 -0.716622 +v -4.755419 0.763812 -0.682612 +v -4.755419 0.751613 -0.728138 +v -4.747920 0.746358 -0.747753 +v -4.723568 0.743697 -0.757681 +v -4.699216 0.746358 -0.747753 +v -4.691718 0.751613 -0.728138 +v -4.691718 0.763812 -0.682612 +v -4.723568 0.811978 -0.775977 +v -4.723568 0.843121 -0.784321 +v -4.699217 0.845782 -0.774393 +v -4.699216 0.814639 -0.766048 +v -4.755419 0.794955 -0.690957 +v -4.755419 0.782756 -0.736483 +v -4.691718 0.832093 -0.700908 +v -4.691718 0.819895 -0.746434 +v -4.691718 0.851037 -0.754779 +v -4.691718 0.863236 -0.709253 +v -4.723568 0.774840 -0.766025 +v -4.747920 0.777500 -0.756097 +v -4.755419 0.819895 -0.746434 +v -4.755419 0.851037 -0.754779 +v -4.747920 0.845782 -0.774393 +v -4.747920 0.814639 -0.766048 +v -4.691718 0.782756 -0.736483 +v -4.699217 0.777500 -0.756097 +v -4.755419 0.863236 -0.709253 +v -4.691718 0.794955 -0.690957 +v -4.755418 0.832093 -0.700908 +v -5.245664 1.143803 -0.724602 +v -5.194486 1.165671 -0.806214 +v -5.178945 1.165671 -0.806214 +v -5.127767 1.143803 -0.724602 +v -5.127767 1.237760 -0.699426 +v -5.178945 1.259628 -0.781038 +v -5.194487 1.259628 -0.781038 +v -5.245664 1.237760 -0.699426 +v -5.194486 1.228309 -0.789430 +v -5.245664 1.206441 -0.707817 +v -5.127767 1.206441 -0.707817 +v -5.178945 1.228309 -0.789430 +v -5.194486 1.262748 -0.780203 +v -5.194487 1.284805 -0.657674 +v -5.178945 1.284805 -0.657674 +v -5.178945 1.262748 -0.780203 +v -5.178945 1.162552 -0.807049 +v -5.178945 1.082186 -0.711966 +v -5.194486 1.082186 -0.711966 +v -5.194486 1.162552 -0.807049 +v -5.245664 1.175122 -0.716210 +v -5.127767 1.175122 -0.716210 +v -5.178945 1.196990 -0.797822 +v -5.194486 1.196990 -0.797822 +v -5.194487 1.199155 -0.680624 +v -5.178945 1.199155 -0.680624 +v -5.178945 1.167835 -0.689016 +v -5.194487 1.167835 -0.689016 +v -5.245664 1.231641 -0.676590 +v -5.127767 1.231641 -0.676590 +v -5.245664 1.169003 -0.693373 +v -5.127767 1.169003 -0.693373 +v -5.127767 1.200322 -0.684981 +v -5.245664 1.200322 -0.684981 +v -5.245664 1.137684 -0.701765 +v -5.127767 1.137684 -0.701765 +v -5.254691 1.168033 -0.721863 +v -5.254690 1.215408 -0.709169 +v -5.297078 1.222268 -0.734767 +v -5.297078 1.174891 -0.747461 +v -5.254690 1.242175 -0.809060 +v -5.254690 1.194798 -0.821755 +v -5.296170 1.235024 -0.782378 +v -5.303239 1.228662 -0.758634 +v -5.303239 1.181287 -0.771328 +v -5.296170 1.187648 -0.795071 +v -4.735427 1.186989 -0.756608 +v -5.258313 1.198462 -0.800608 +v -5.258313 1.228428 -0.792578 +v -4.735427 1.216363 -0.748738 +v -4.735427 1.207159 -0.714384 +v -5.258312 1.210899 -0.727162 +v -5.258312 1.180933 -0.735190 +v -4.735427 1.177784 -0.722256 +v -4.738048 1.227641 -0.775155 +v -4.738048 1.203717 -0.685867 +v -4.703030 1.211957 -0.716622 +v -4.703030 1.220250 -0.747570 +v -4.713286 1.225476 -0.767076 +v -4.738048 1.166507 -0.695837 +v -4.738048 1.190431 -0.785126 +v -4.713286 1.188266 -0.777046 +v -4.703029 1.183040 -0.757540 +v -4.703030 1.174747 -0.726593 +v -4.755419 1.136761 -0.709253 +v -4.755419 1.148960 -0.754779 +v -4.747920 1.154216 -0.774394 +v -4.723568 1.156876 -0.784322 +v -4.699216 1.154216 -0.774394 +v -4.691718 1.148960 -0.754779 +v -4.691718 1.136761 -0.709253 +v -4.723568 1.225157 -0.766026 +v -4.723568 1.256299 -0.757681 +v -4.699217 1.253639 -0.747752 +v -4.699216 1.222497 -0.756097 +v -4.755419 1.167904 -0.700908 +v -4.755419 1.180102 -0.746434 +v -4.691718 1.205042 -0.690957 +v -4.691718 1.217241 -0.736483 +v -4.691718 1.248383 -0.728139 +v -4.691718 1.236185 -0.682613 +v -4.723568 1.188018 -0.775977 +v -4.747920 1.185358 -0.766049 +v -4.755419 1.217241 -0.736483 +v -4.755419 1.248383 -0.728139 +v -4.747920 1.253639 -0.747752 +v -4.747920 1.222497 -0.756097 +v -4.691718 1.180102 -0.746434 +v -4.699217 1.185358 -0.766049 +v -4.755419 1.236185 -0.682613 +v -4.691718 1.167904 -0.700908 +v -4.755418 1.205042 -0.690957 +v -5.245664 1.486838 -0.555621 +v -5.194486 1.546582 -0.615365 +v -5.178945 1.546582 -0.615365 +v -5.127767 1.486838 -0.555621 +v -5.127767 1.555619 -0.486840 +v -5.178945 1.615364 -0.546584 +v -5.194487 1.615364 -0.546584 +v -5.245664 1.555619 -0.486840 +v -5.194486 1.592436 -0.569511 +v -5.245664 1.532692 -0.509767 +v -5.127767 1.532692 -0.509767 +v -5.178945 1.592436 -0.569511 +v -5.194486 1.617648 -0.544301 +v -5.194487 1.575485 -0.427159 +v -5.178945 1.575485 -0.427159 +v -5.178945 1.617648 -0.544301 +v -5.178945 1.544298 -0.617649 +v -5.178945 1.427158 -0.575487 +v -5.194486 1.427158 -0.575487 +v -5.194486 1.544298 -0.617649 +v -5.245664 1.509765 -0.532694 +v -5.127767 1.509765 -0.532694 +v -5.178945 1.569509 -0.592439 +v -5.194486 1.569509 -0.592439 +v -5.194487 1.512785 -0.489860 +v -5.178945 1.512785 -0.489860 +v -5.178945 1.489858 -0.512787 +v -5.194487 1.489858 -0.512787 +v -5.245664 1.538902 -0.470122 +v -5.127767 1.538902 -0.470122 +v -5.245664 1.493047 -0.515977 +v -5.127767 1.493047 -0.515977 +v -5.127767 1.515975 -0.493049 +v -5.245664 1.515975 -0.493049 +v -5.245664 1.470120 -0.538903 +v -5.127767 1.470120 -0.538903 +v -5.254691 1.506452 -0.541135 +v -5.254690 1.541133 -0.506454 +v -5.297078 1.559873 -0.525192 +v -5.297078 1.525191 -0.559874 +v -5.254690 1.614259 -0.579579 +v -5.254690 1.579578 -0.614261 +v -5.296170 1.594726 -0.560046 +v -5.303239 1.577344 -0.542664 +v -5.303239 1.542663 -0.577345 +v -5.296170 1.560044 -0.594727 +v -4.735427 1.540241 -0.561747 +v -5.258313 1.572177 -0.594115 +v -5.258313 1.594114 -0.572178 +v -4.735427 1.561745 -0.540244 +v -4.735427 1.536597 -0.515095 +v -5.258312 1.546225 -0.524290 +v -5.258312 1.524287 -0.546226 +v -4.735427 1.515094 -0.536599 +v -4.738048 1.584721 -0.557483 +v -4.738048 1.519357 -0.492119 +v -4.703030 1.541871 -0.514634 +v -4.703030 1.564527 -0.537289 +v -4.713286 1.578806 -0.551568 +v -4.738048 1.492117 -0.519359 +v -4.738048 1.557481 -0.584722 +v -4.713286 1.551566 -0.578808 +v -4.703029 1.537287 -0.564528 +v -4.703030 1.514632 -0.541873 +v -4.755419 1.473064 -0.545850 +v -4.755419 1.506392 -0.579177 +v -4.747920 1.520751 -0.593536 +v -4.723568 1.528019 -0.600804 +v -4.699216 1.520751 -0.593536 +v -4.691718 1.506392 -0.579177 +v -4.691718 1.473064 -0.545850 +v -4.723568 1.578004 -0.550819 +v -4.723568 1.600802 -0.528021 +v -4.699217 1.593534 -0.520752 +v -4.699216 1.570736 -0.543550 +v -4.755419 1.495863 -0.523052 +v -4.755419 1.529190 -0.556379 +v -4.691718 1.523050 -0.495865 +v -4.691718 1.556377 -0.529192 +v -4.691718 1.579175 -0.506394 +v -4.691718 1.545849 -0.473066 +v -4.723568 1.550817 -0.578006 +v -4.747920 1.543549 -0.570738 +v -4.755419 1.556377 -0.529192 +v -4.755419 1.579175 -0.506394 +v -4.747920 1.593534 -0.520752 +v -4.747920 1.570736 -0.543550 +v -4.691718 1.529190 -0.556379 +v -4.699217 1.543549 -0.570738 +v -4.755419 1.545849 -0.473066 +v -4.691718 1.495863 -0.523052 +v -4.755418 1.523050 -0.495865 +v -5.245664 1.699424 -0.237762 +v -5.194486 1.781036 -0.259631 +v -5.178945 1.781036 -0.259631 +v -5.127767 1.699424 -0.237762 +v -5.127767 1.724600 -0.143805 +v -5.178945 1.806212 -0.165673 +v -5.194487 1.806212 -0.165673 +v -5.245664 1.724600 -0.143805 +v -5.194486 1.797820 -0.196992 +v -5.245664 1.716208 -0.175124 +v -5.127767 1.716208 -0.175124 +v -5.178945 1.797820 -0.196992 +v -5.194486 1.807049 -0.162554 +v -5.194487 1.711964 -0.082188 +v -5.178945 1.711964 -0.082188 +v -5.178945 1.807049 -0.162554 +v -5.178945 1.780200 -0.262750 +v -5.178945 1.657673 -0.284807 +v -5.194486 1.657673 -0.284807 +v -5.194486 1.780200 -0.262750 +v -5.245664 1.707817 -0.206443 +v -5.127767 1.707817 -0.206443 +v -5.178945 1.789428 -0.228312 +v -5.194486 1.789428 -0.228312 +v -5.194487 1.689014 -0.167838 +v -5.178945 1.689014 -0.167838 +v -5.178945 1.680623 -0.199157 +v -5.194487 1.680623 -0.199157 +v -5.245664 1.701764 -0.137686 +v -5.127767 1.701764 -0.137686 +v -5.245664 1.684980 -0.200325 +v -5.127767 1.684980 -0.200325 +v -5.127767 1.693372 -0.169005 +v -5.245664 1.693372 -0.169005 +v -5.245664 1.676587 -0.231643 +v -5.127767 1.676587 -0.231643 +v -5.254691 1.709167 -0.215410 +v -5.254690 1.721861 -0.168034 +v -5.297078 1.747460 -0.174893 +v -5.297078 1.734765 -0.222269 +v -5.254690 1.821754 -0.194800 +v -5.254690 1.809059 -0.242176 +v -5.296170 1.795070 -0.187650 +v -5.303239 1.771327 -0.181288 +v -5.303239 1.758633 -0.228664 +v -5.296170 1.782376 -0.235027 +v -4.735427 1.748736 -0.216365 +v -5.258313 1.792577 -0.228430 +v -5.258313 1.800607 -0.198463 +v -4.735427 1.756607 -0.186992 +v -4.735427 1.722253 -0.177786 +v -5.258312 1.735189 -0.180936 +v -5.258312 1.727159 -0.210902 +v -4.735427 1.714383 -0.207161 +v -4.738048 1.785124 -0.190433 +v -4.738048 1.695836 -0.166509 +v -4.703030 1.726591 -0.174750 +v -4.703030 1.757539 -0.183042 +v -4.713286 1.777045 -0.188269 +v -4.738048 1.685865 -0.203718 +v -4.738048 1.775154 -0.227643 +v -4.713286 1.767074 -0.225478 +v -4.703029 1.747568 -0.220252 +v -4.703030 1.716621 -0.211960 +v -4.755419 1.682611 -0.236187 +v -4.755419 1.728137 -0.248385 +v -4.747920 1.747752 -0.253641 +v -4.723568 1.757680 -0.256301 +v -4.699216 1.747752 -0.253641 +v -4.691718 1.728137 -0.248385 +v -4.691718 1.682611 -0.236187 +v -4.723568 1.775975 -0.188020 +v -4.723568 1.784320 -0.156878 +v -4.699217 1.774391 -0.154217 +v -4.699216 1.766047 -0.185359 +v -4.755419 1.690956 -0.205044 +v -4.755419 1.736481 -0.217243 +v -4.691718 1.700907 -0.167906 +v -4.691718 1.746433 -0.180104 +v -4.691718 1.754778 -0.148962 +v -4.691718 1.709252 -0.136763 +v -4.723568 1.766024 -0.225159 +v -4.747920 1.756096 -0.222499 +v -4.755419 1.746433 -0.180104 +v -4.755419 1.754778 -0.148962 +v -4.747920 1.774391 -0.154217 +v -4.747920 1.766047 -0.185359 +v -4.691718 1.736481 -0.217243 +v -4.699217 1.756096 -0.222499 +v -4.755419 1.709252 -0.136763 +v -4.691718 1.690956 -0.205044 +v -4.755418 1.700907 -0.167906 +vt 0.854271 0.490000 +vt 0.844221 0.480000 +vt 0.844221 0.470000 +vt 0.844221 0.490000 +vt 0.839196 0.510000 +vt 0.839196 0.490000 +vt 0.874372 0.510000 +vt 0.884422 0.520000 +vt 0.884422 0.530000 +vt 0.889447 0.510000 +vt 0.884422 0.490000 +vt 0.889447 0.490000 +vt 0.874372 0.490000 +vt 0.839196 0.460000 +vt 0.849246 0.440000 +vt 0.839196 0.440000 +vt 0.849246 0.460000 +vt 0.864322 0.440000 +vt 0.879397 0.440000 +vt 0.864322 0.460000 +vt 0.879397 0.460000 +vt 0.839196 0.430000 +vt 0.849246 0.410000 +vt 0.839196 0.410000 +vt 0.864322 0.430000 +vt 0.879397 0.430000 +vt 0.864322 0.410000 +vt 0.849246 0.430000 +vt 0.864322 0.470000 +vt 0.879397 0.470000 +vt 0.839196 0.470000 +vt 0.844221 0.510000 +vt 0.854271 0.510000 +vt 0.673367 0.410000 +vt 0.678392 0.450000 +vt 0.673367 0.450000 +vt 0.673367 0.750000 +vt 0.678392 0.790000 +vt 0.673367 0.790000 +vt 0.673367 0.110000 +vt 0.678392 0.150000 +vt 0.673367 0.150000 +vt 0.673367 0.350000 +vt 0.678392 0.390000 +vt 0.673367 0.390000 +vt 0.678392 0.710000 +vt 0.678392 0.750000 +vt 0.673367 0.050000 +vt 0.678392 0.090000 +vt 0.673367 0.090000 +vt 0.673367 0.310000 +vt 0.678392 0.350000 +vt 0.673367 0.690000 +vt 0.678392 0.650000 +vt 0.678392 0.690000 +vt 0.673367 0.010000 +vt 0.678392 0.050000 +vt 0.673367 0.250000 +vt 0.678392 0.290000 +vt 0.673367 0.290000 +vt 0.673367 0.610000 +vt 0.673367 0.650000 +vt 0.673367 0.990000 +vt 0.678392 0.950000 +vt 0.678392 0.990000 +vt 0.673367 0.550000 +vt 0.678392 0.590000 +vt 0.673367 0.590000 +vt 0.673367 0.950000 +vt 0.678392 0.910000 +vt 0.673367 0.510000 +vt 0.678392 0.550000 +vt 0.673367 0.850000 +vt 0.678392 0.890000 +vt 0.673367 0.890000 +vt 0.678392 0.210000 +vt 0.678392 0.250000 +vt 0.673367 0.490000 +vt 0.678392 0.490000 +vt 0.673367 0.810000 +vt 0.678392 0.850000 +vt 0.673367 0.190000 +vt 0.678392 0.190000 +vt 0.941328 0.806921 +vt 0.891960 0.878298 +vt 0.842592 0.806921 +vt 0.874372 0.490000 +vt 0.854271 0.490000 +vt 0.844221 0.470000 +vt 0.889447 0.490000 +vt 0.884422 0.510000 +vt 0.884422 0.490000 +vt 0.854271 0.510000 +vt 0.874372 0.510000 +vt 0.884422 0.530000 +vt 0.839196 0.490000 +vt 0.844221 0.510000 +vt 0.839196 0.510000 +vt 0.844221 0.490000 +vt 0.849246 0.440000 +vt 0.839196 0.460000 +vt 0.839196 0.440000 +vt 0.864322 0.460000 +vt 0.849246 0.460000 +vt 0.879397 0.440000 +vt 0.879397 0.460000 +vt 0.839196 0.430000 +vt 0.849246 0.410000 +vt 0.849246 0.430000 +vt 0.864322 0.440000 +vt 0.864322 0.430000 +vt 0.879397 0.430000 +vt 0.864322 0.410000 +vt 0.864322 0.470000 +vt 0.879397 0.470000 +vt 0.839196 0.470000 +vt 0.889446 0.390000 +vt 0.884422 0.400000 +vt 0.884421 0.390000 +vt 0.894472 0.400000 +vt 0.889447 0.400000 +vt 0.894471 0.390000 +vt 0.899498 0.400000 +vt 0.839196 0.390000 +vt 0.844221 0.400000 +vt 0.839196 0.400000 +vt 0.849246 0.390000 +vt 0.844221 0.390000 +vt 0.854271 0.400000 +vt 0.849246 0.400000 +vt 0.869346 0.390000 +vt 0.874372 0.400000 +vt 0.869347 0.400000 +vt 0.864322 0.400000 +vt 0.864321 0.390000 +vt 0.854271 0.390000 +vt 0.859297 0.400000 +vt 0.879396 0.390000 +vt 0.874371 0.390000 +vt 0.859296 0.390000 +vt 0.879397 0.400000 +vt 0.853224 0.347841 +vt 0.853094 0.362605 +vt 0.840244 0.362159 +vt 0.854271 0.390000 +vt 0.849246 0.400000 +vt 0.849246 0.390000 +vt 0.844221 0.390000 +vt 0.839196 0.400000 +vt 0.839196 0.390000 +vt 0.899498 0.400000 +vt 0.894473 0.390000 +vt 0.899498 0.390000 +vt 0.894472 0.400000 +vt 0.889448 0.390000 +vt 0.884422 0.400000 +vt 0.884422 0.390000 +vt 0.869347 0.400000 +vt 0.864322 0.390000 +vt 0.869347 0.390000 +vt 0.874372 0.390000 +vt 0.879397 0.390000 +vt 0.859297 0.400000 +vt 0.859297 0.390000 +vt 0.874372 0.400000 +vt 0.840307 0.347617 +vt 0.853160 0.347617 +vt 0.846734 0.369767 +vt 0.892504 0.171358 +vt 0.887001 0.180001 +vt 0.887003 0.164722 +vt 0.892503 0.186632 +vt 0.887001 0.195279 +vt 0.887001 0.180000 +vt 0.893434 0.199481 +vt 0.893434 0.195279 +vt 0.893434 0.175798 +vt 0.887001 0.175798 +vt 0.892503 0.167152 +vt 0.892503 0.169166 +vt 0.892340 0.181007 +vt 0.884233 0.178993 +vt 0.892340 0.178993 +vt 0.888941 0.169623 +vt 0.889953 0.185757 +vt 0.888941 0.185757 +vt 0.894662 0.178993 +vt 0.894662 0.181007 +vt 0.887000 0.184202 +vt 0.892501 0.192852 +vt 0.886997 0.199481 +vt 0.893436 0.164726 +vt 0.887004 0.160520 +vt 0.893437 0.160524 +vt 0.889953 0.190377 +vt 0.893433 0.180005 +vt 0.886692 0.191404 +vt 0.893329 0.185188 +vt 0.886692 0.168596 +vt 0.883717 0.174516 +vt 0.886841 0.187724 +vt 0.895178 0.174516 +vt 0.889953 0.169623 +vt 0.885461 0.180000 +vt 0.885460 0.184201 +vt 0.885461 0.160520 +vt 0.887001 0.160520 +vt 0.885464 0.160519 +vt 0.885461 0.175798 +vt 0.887001 0.199480 +vt 0.885461 0.195279 +vt 0.885463 0.164721 +vt 0.885461 0.180000 +vt 0.886081 0.183178 +vt 0.882826 0.176822 +vt 0.886081 0.176822 +vt 0.892816 0.176822 +vt 0.892816 0.183178 +vt 0.891017 0.188554 +vt 0.887807 0.188671 +vt 0.887807 0.171329 +vt 0.889416 0.170530 +vt 0.891017 0.171446 +vt 0.879397 0.190000 +vt 0.839196 0.180000 +vt 0.879397 0.180000 +vt 0.839196 0.170000 +vt 0.879397 0.170000 +vt 0.879397 0.160000 +vt 0.839196 0.160000 +vt 0.839196 0.200000 +vt 0.879397 0.200000 +vt 0.896061 0.183178 +vt 0.897727 0.176822 +vt 0.897727 0.183178 +vt 0.881167 0.176822 +vt 0.882826 0.183178 +vt 0.881167 0.183178 +vt 0.887433 0.182496 +vt 0.889293 0.187034 +vt 0.885347 0.182496 +vt 0.889293 0.172966 +vt 0.887433 0.177504 +vt 0.885347 0.177504 +vt 0.890610 0.177504 +vt 0.888908 0.182496 +vt 0.888908 0.177504 +vt 0.882265 0.177504 +vt 0.882265 0.182496 +vt 0.896630 0.182496 +vt 0.890610 0.182496 +vt 0.889417 0.171745 +vt 0.891408 0.175873 +vt 0.889416 0.180000 +vt 0.889417 0.180000 +vt 0.891408 0.184128 +vt 0.889417 0.188255 +vt 0.889416 0.184178 +vt 0.891408 0.188306 +vt 0.889416 0.192433 +vt 0.889417 0.175822 +vt 0.889417 0.167567 +vt 0.891408 0.171694 +vt 0.839196 0.260000 +vt 0.844221 0.200000 +vt 0.844221 0.260000 +vt 0.839196 0.200000 +vt 0.844221 0.260000 +vt 0.839196 0.260000 +vt 0.839196 0.200000 +vt 0.844221 0.260000 +vt 0.839196 0.260000 +vt 0.844221 0.200000 +vt 0.839196 0.260000 +vt 0.839196 0.200000 +vt 0.839196 0.200000 +vt 0.844221 0.260000 +vt 0.839196 0.260000 +vt 0.844221 0.200000 +vt 0.839196 0.260000 +vt 0.839196 0.200000 +vt 0.839196 0.200000 +vt 0.844221 0.260000 +vt 0.839196 0.260000 +vt 0.844221 0.200000 +vt 0.839196 0.260000 +vt 0.839196 0.200000 +vt 0.844221 0.200000 +vt 0.839196 0.260000 +vt 0.839196 0.200000 +vt 0.839196 0.200000 +vt 0.844221 0.260000 +vt 0.839196 0.260000 +vt 0.844221 0.200000 +vt 0.839196 0.260000 +vt 0.839196 0.200000 +vt 0.839196 0.200000 +vt 0.844221 0.260000 +vt 0.839196 0.260000 +vt 0.839196 0.260000 +vt 0.844221 0.200000 +vt 0.844221 0.260000 +vt 0.894472 0.650000 +vt 0.894472 0.640000 +vt 0.909548 0.650000 +vt 0.500000 0.416667 +vt 0.500000 0.416667 +vt 0.500000 0.333333 +vt 0.894472 0.650000 +vt 0.894472 0.640000 +vt 0.909548 0.650000 +vt 0.894472 0.650000 +vt 0.894472 0.640000 +vt 0.909548 0.650000 +vt 0.500000 0.416667 +vt 0.500000 0.416667 +vt 0.500000 0.333333 +vt 0.909548 0.640000 +vt 0.909548 0.650000 +vt 0.894472 0.640000 +vt 0.894472 0.650000 +vt 0.894472 0.640000 +vt 0.909548 0.650000 +vt 0.500000 0.416667 +vt 0.500000 0.416667 +vt 0.500000 0.333333 +vt 0.894472 0.650000 +vt 0.894472 0.640000 +vt 0.909548 0.650000 +vt 0.909548 0.650000 +vt 0.904523 0.660000 +vt 0.894472 0.650000 +vt 0.500000 0.416667 +vt 0.500000 0.416667 +vt 0.500000 0.333333 +vt 0.909548 0.650000 +vt 0.904523 0.660000 +vt 0.894472 0.650000 +vt 0.909548 0.650000 +vt 0.904523 0.660000 +vt 0.894472 0.650000 +vt 0.500000 0.416667 +vt 0.500000 0.416667 +vt 0.500000 0.333333 +vt 0.909548 0.650000 +vt 0.904523 0.660000 +vt 0.894472 0.650000 +vt 0.909548 0.650000 +vt 0.904523 0.660000 +vt 0.894472 0.650000 +vt 0.500000 0.416667 +vt 0.500000 0.416667 +vt 0.500000 0.333333 +vt 0.909548 0.650000 +vt 0.904523 0.660000 +vt 0.894472 0.650000 +vt 0.984925 0.140000 +vt 0.929648 0.055312 +vt 0.866520 0.140313 +vt 0.849246 0.110000 +vt 0.839196 0.010000 +vt 0.849246 0.010000 +vt 0.864322 0.160000 +vt 0.854271 0.140000 +vt 0.864322 0.140000 +vt 0.849246 0.130000 +vt 0.839196 0.110000 +vt 0.984925 0.140000 +vt 0.994975 0.140000 +vt 0.984925 0.040000 +vt 0.994975 0.040000 +vt 0.929648 0.010000 +vt 0.919598 0.050000 +vt 0.929648 0.050000 +vt 0.949749 0.070000 +vt 0.949749 0.050000 +vt 0.969849 0.010000 +vt 0.949749 0.055312 +vt 0.949749 0.010000 +vt 0.959799 0.010000 +vt 0.959799 0.050000 +vt 0.994975 0.010000 +vt 0.984925 0.010000 +vt 1.000000 0.890000 +vt 0.994975 0.930000 +vt 0.994975 0.890000 +vt 0.839196 1.000000 +vt 0.994975 0.990000 +vt 1.000000 1.000000 +vt 0.994975 0.950000 +vt 0.844221 0.990000 +vt 0.844221 0.950000 +vt 0.844221 0.930000 +vt 0.839196 0.940000 +vt 0.839196 0.930000 +vt 0.844221 0.890000 +vt 0.839196 0.950000 +vt 0.839196 0.990000 +vt 1.000000 0.990000 +vt 1.000000 0.950000 +vt 1.000000 0.880000 +vt 0.839196 0.880000 +vt 1.000000 0.940000 +vt 0.929648 0.055312 +vt 0.866520 0.140313 +vt 0.984925 0.047500 +vt 0.949749 0.055312 +vt 0.969849 0.010000 +vt 0.949749 0.010000 +vt 0.984925 0.047500 +vt 0.849246 0.110000 +vt 0.854428 0.130313 +vt 0.849246 0.010000 +vt 0.894472 0.650000 +vt 0.894472 0.640000 +vt 0.909548 0.650000 +vt 0.500000 0.416667 +vt 0.500000 0.416667 +vt 0.500000 0.333333 +vt 0.894472 0.650000 +vt 0.894472 0.640000 +vt 0.909548 0.650000 +vt 0.894472 0.650000 +vt 0.894472 0.640000 +vt 0.909548 0.650000 +vt 0.500000 0.416667 +vt 0.500000 0.416667 +vt 0.500000 0.333333 +vt 0.909548 0.640000 +vt 0.909548 0.650000 +vt 0.894472 0.640000 +vt 0.894472 0.650000 +vt 0.894472 0.640000 +vt 0.909548 0.650000 +vt 0.500000 0.416667 +vt 0.500000 0.416667 +vt 0.500000 0.333333 +vt 0.894472 0.650000 +vt 0.894472 0.640000 +vt 0.909548 0.650000 +vt 0.909548 0.650000 +vt 0.904523 0.660000 +vt 0.894472 0.650000 +vt 0.500000 0.333333 +vt 0.500000 0.333333 +vt 0.500000 0.416667 +vt 0.909548 0.650000 +vt 0.904523 0.660000 +vt 0.894472 0.650000 +vt 0.909548 0.650000 +vt 0.904523 0.660000 +vt 0.894472 0.650000 +vt 0.500000 0.416667 +vt 0.500000 0.416667 +vt 0.500000 0.333333 +vt 0.909548 0.650000 +vt 0.904523 0.660000 +vt 0.894472 0.650000 +vt 0.909548 0.650000 +vt 0.904523 0.660000 +vt 0.894472 0.650000 +vt 0.500000 0.416667 +vt 0.500000 0.416667 +vt 0.500000 0.333333 +vt 0.909548 0.650000 +vt 0.904523 0.660000 +vt 0.894472 0.650000 +vt 0.984925 0.140000 +vt 0.929648 0.055312 +vt 0.866520 0.140313 +vt 0.849246 0.110000 +vt 0.839196 0.010000 +vt 0.849246 0.010000 +vt 0.864322 0.140000 +vt 0.854271 0.160000 +vt 0.854271 0.140000 +vt 0.849246 0.130000 +vt 0.839196 0.110000 +vt 0.984925 0.140000 +vt 0.864322 0.160000 +vt 0.994975 0.040000 +vt 0.984925 0.040000 +vt 0.929648 0.010000 +vt 0.919598 0.050000 +vt 0.929648 0.050000 +vt 0.949749 0.070000 +vt 0.949749 0.050000 +vt 0.969849 0.010000 +vt 0.949749 0.055312 +vt 0.949749 0.010000 +vt 0.959799 0.010000 +vt 0.959799 0.050000 +vt 0.994975 0.010000 +vt 0.984925 0.010000 +vt 0.929648 0.055312 +vt 0.866520 0.140313 +vt 0.984925 0.047500 +vt 0.949749 0.055312 +vt 0.969849 0.010000 +vt 0.949749 0.010000 +vt 0.984925 0.047500 +vt 0.849246 0.110000 +vt 0.854428 0.130313 +vt 0.849246 0.010000 +vt 0.894472 0.650000 +vt 0.894472 0.640000 +vt 0.909548 0.650000 +vt 0.500000 0.416667 +vt 0.500000 0.416667 +vt 0.500000 0.333333 +vt 0.894472 0.650000 +vt 0.894472 0.640000 +vt 0.909548 0.650000 +vt 0.894472 0.650000 +vt 0.894472 0.640000 +vt 0.909548 0.650000 +vt 0.500000 0.416667 +vt 0.500000 0.416667 +vt 0.500000 0.333333 +vt 0.909548 0.640000 +vt 0.909548 0.650000 +vt 0.894472 0.640000 +vt 0.894472 0.650000 +vt 0.894472 0.640000 +vt 0.909548 0.650000 +vt 0.500000 0.416667 +vt 0.500000 0.416667 +vt 0.500000 0.333333 +vt 0.894472 0.650000 +vt 0.894472 0.640000 +vt 0.909548 0.650000 +vt 0.909548 0.650000 +vt 0.904523 0.660000 +vt 0.894472 0.650000 +vt 0.500000 0.416667 +vt 0.500000 0.416667 +vt 0.500000 0.333333 +vt 0.909548 0.650000 +vt 0.904523 0.660000 +vt 0.894472 0.650000 +vt 0.909548 0.650000 +vt 0.904523 0.660000 +vt 0.894472 0.650000 +vt 0.500000 0.416667 +vt 0.500000 0.416667 +vt 0.500000 0.333333 +vt 0.909548 0.650000 +vt 0.904523 0.660000 +vt 0.894472 0.650000 +vt 0.909548 0.650000 +vt 0.904523 0.660000 +vt 0.894472 0.650000 +vt 0.500000 0.416667 +vt 0.500000 0.416667 +vt 0.500000 0.333333 +vt 0.909548 0.650000 +vt 0.904523 0.660000 +vt 0.894472 0.650000 +vt 0.984925 0.140000 +vt 0.929648 0.055312 +vt 0.866520 0.140313 +vt 0.849246 0.110000 +vt 0.839196 0.010000 +vt 0.849246 0.010000 +vt 0.864322 0.140000 +vt 0.854271 0.160000 +vt 0.854271 0.140000 +vt 0.849246 0.130000 +vt 0.839196 0.110000 +vt 0.984925 0.140000 +vt 0.864322 0.160000 +vt 0.994975 0.140000 +vt 0.984925 0.040000 +vt 0.994975 0.040000 +vt 0.929648 0.010000 +vt 0.919598 0.050000 +vt 0.929648 0.050000 +vt 0.949749 0.070000 +vt 0.949749 0.050000 +vt 0.969849 0.010000 +vt 0.949749 0.055312 +vt 0.949749 0.010000 +vt 0.959799 0.010000 +vt 0.959799 0.050000 +vt 0.994975 0.010000 +vt 0.984925 0.010000 +vt 0.929648 0.055312 +vt 0.866520 0.140313 +vt 0.984925 0.047500 +vt 0.949749 0.055312 +vt 0.969849 0.010000 +vt 0.949749 0.010000 +vt 0.984925 0.047500 +vt 0.849246 0.110000 +vt 0.854428 0.130313 +vt 0.849246 0.010000 +vt 0.892504 0.171358 +vt 0.887001 0.180001 +vt 0.887003 0.164722 +vt 0.892503 0.186632 +vt 0.887001 0.195279 +vt 0.887001 0.180000 +vt 0.893434 0.199481 +vt 0.893434 0.195279 +vt 0.893434 0.175798 +vt 0.887001 0.175798 +vt 0.892503 0.167152 +vt 0.892503 0.169166 +vt 0.892340 0.181007 +vt 0.884233 0.178993 +vt 0.892340 0.178993 +vt 0.888941 0.169623 +vt 0.889953 0.185757 +vt 0.888941 0.185757 +vt 0.894662 0.178993 +vt 0.894662 0.181007 +vt 0.887000 0.184202 +vt 0.892501 0.192852 +vt 0.886997 0.199481 +vt 0.893436 0.164726 +vt 0.887004 0.160520 +vt 0.893437 0.160524 +vt 0.889953 0.190377 +vt 0.893433 0.180005 +vt 0.886692 0.191404 +vt 0.893329 0.185188 +vt 0.886692 0.168596 +vt 0.883717 0.174516 +vt 0.886841 0.187724 +vt 0.895178 0.174516 +vt 0.889953 0.169623 +vt 0.885461 0.180000 +vt 0.885460 0.184201 +vt 0.885461 0.160520 +vt 0.887001 0.160520 +vt 0.885464 0.160519 +vt 0.885461 0.175798 +vt 0.887001 0.199480 +vt 0.885461 0.195279 +vt 0.885463 0.164721 +vt 0.885461 0.180000 +vt 0.886081 0.176822 +vt 0.882826 0.183178 +vt 0.882826 0.176822 +vt 0.886081 0.183178 +vt 0.892816 0.176822 +vt 0.892816 0.183178 +vt 0.891017 0.188554 +vt 0.887807 0.188671 +vt 0.887807 0.171329 +vt 0.889416 0.170530 +vt 0.891017 0.171446 +vt 0.879397 0.190000 +vt 0.839196 0.180000 +vt 0.879397 0.180000 +vt 0.839196 0.170000 +vt 0.879397 0.170000 +vt 0.839196 0.160000 +vt 0.839196 0.200000 +vt 0.879397 0.200000 +vt 0.896061 0.183178 +vt 0.897727 0.176822 +vt 0.897727 0.183178 +vt 0.881167 0.176822 +vt 0.881167 0.183178 +vt 0.887433 0.182496 +vt 0.889293 0.187034 +vt 0.885347 0.182496 +vt 0.889293 0.172966 +vt 0.887433 0.177504 +vt 0.885347 0.177504 +vt 0.890610 0.177504 +vt 0.888908 0.182496 +vt 0.888908 0.177504 +vt 0.882265 0.182496 +vt 0.896630 0.182496 +vt 0.890610 0.182496 +vt 0.889417 0.171745 +vt 0.891408 0.175873 +vt 0.889416 0.180000 +vt 0.889417 0.180000 +vt 0.891408 0.184128 +vt 0.889417 0.188255 +vt 0.889416 0.184178 +vt 0.891408 0.188306 +vt 0.889416 0.192433 +vt 0.889417 0.175822 +vt 0.889417 0.167567 +vt 0.891408 0.171694 +vt 0.892504 0.171358 +vt 0.887001 0.180001 +vt 0.887003 0.164722 +vt 0.892503 0.186632 +vt 0.887001 0.195279 +vt 0.887001 0.180000 +vt 0.893434 0.199481 +vt 0.893434 0.195279 +vt 0.893434 0.175798 +vt 0.887001 0.175798 +vt 0.892503 0.167152 +vt 0.892503 0.169166 +vt 0.892340 0.181007 +vt 0.884233 0.178993 +vt 0.892340 0.178993 +vt 0.888941 0.169623 +vt 0.889953 0.185757 +vt 0.888941 0.185757 +vt 0.894662 0.178993 +vt 0.894662 0.181007 +vt 0.887000 0.184202 +vt 0.892501 0.192852 +vt 0.886997 0.199481 +vt 0.893436 0.164726 +vt 0.887004 0.160520 +vt 0.893437 0.160524 +vt 0.889953 0.190377 +vt 0.893433 0.180005 +vt 0.886692 0.191404 +vt 0.893329 0.185188 +vt 0.886692 0.168596 +vt 0.883717 0.174516 +vt 0.886841 0.187724 +vt 0.895178 0.174516 +vt 0.889953 0.169623 +vt 0.885461 0.180000 +vt 0.885460 0.184201 +vt 0.885461 0.160520 +vt 0.887001 0.160520 +vt 0.885464 0.160519 +vt 0.885461 0.175798 +vt 0.887001 0.199480 +vt 0.885461 0.195279 +vt 0.885463 0.164721 +vt 0.885461 0.180000 +vt 0.886081 0.176822 +vt 0.882826 0.183178 +vt 0.882826 0.176822 +vt 0.892816 0.183178 +vt 0.892816 0.176822 +vt 0.891017 0.188554 +vt 0.887807 0.188671 +vt 0.886081 0.183178 +vt 0.887807 0.171329 +vt 0.889416 0.170530 +vt 0.891017 0.171446 +vt 0.839196 0.190000 +vt 0.879397 0.180000 +vt 0.879397 0.190000 +vt 0.839196 0.170000 +vt 0.879397 0.170000 +vt 0.879397 0.160000 +vt 0.839196 0.160000 +vt 0.839196 0.200000 +vt 0.879397 0.200000 +vt 0.896061 0.183178 +vt 0.897727 0.176822 +vt 0.897727 0.183178 +vt 0.881167 0.176822 +vt 0.881167 0.183178 +vt 0.887433 0.182496 +vt 0.889293 0.187034 +vt 0.885347 0.182496 +vt 0.889293 0.172966 +vt 0.887433 0.177504 +vt 0.885347 0.177504 +vt 0.890610 0.177504 +vt 0.888908 0.182496 +vt 0.888908 0.177504 +vt 0.882265 0.177504 +vt 0.882265 0.182496 +vt 0.896630 0.182496 +vt 0.890610 0.182496 +vt 0.889417 0.171745 +vt 0.891408 0.175873 +vt 0.889416 0.180000 +vt 0.889417 0.180000 +vt 0.891408 0.184128 +vt 0.889417 0.188255 +vt 0.889416 0.184178 +vt 0.891408 0.188306 +vt 0.889416 0.192433 +vt 0.889417 0.175822 +vt 0.889417 0.167567 +vt 0.891408 0.171694 +vt 0.892504 0.171358 +vt 0.887001 0.180001 +vt 0.887003 0.164722 +vt 0.892503 0.186632 +vt 0.887001 0.195279 +vt 0.887001 0.180000 +vt 0.893434 0.199481 +vt 0.893434 0.195279 +vt 0.893434 0.175798 +vt 0.887001 0.175798 +vt 0.892503 0.167152 +vt 0.892503 0.169166 +vt 0.892340 0.181007 +vt 0.884233 0.178993 +vt 0.892340 0.178993 +vt 0.888941 0.169623 +vt 0.889953 0.185757 +vt 0.888941 0.185757 +vt 0.894662 0.178993 +vt 0.894662 0.181007 +vt 0.887000 0.184202 +vt 0.892501 0.192852 +vt 0.886997 0.199481 +vt 0.893436 0.164726 +vt 0.887004 0.160520 +vt 0.893437 0.160524 +vt 0.889953 0.190377 +vt 0.893433 0.180005 +vt 0.886692 0.191404 +vt 0.893329 0.185188 +vt 0.886692 0.168596 +vt 0.883717 0.174516 +vt 0.886841 0.187724 +vt 0.895178 0.174516 +vt 0.889953 0.169623 +vt 0.885461 0.180000 +vt 0.885460 0.184201 +vt 0.885461 0.160520 +vt 0.887001 0.160520 +vt 0.885464 0.160519 +vt 0.885461 0.175798 +vt 0.887001 0.199480 +vt 0.885461 0.195279 +vt 0.885463 0.164721 +vt 0.885461 0.180000 +vt 0.886081 0.183178 +vt 0.882826 0.176822 +vt 0.886081 0.176822 +vt 0.892816 0.183178 +vt 0.892816 0.176822 +vt 0.891017 0.188554 +vt 0.887807 0.188671 +vt 0.887807 0.171329 +vt 0.889416 0.170530 +vt 0.891017 0.171446 +vt 0.879397 0.190000 +vt 0.839196 0.180000 +vt 0.879397 0.180000 +vt 0.839196 0.170000 +vt 0.879397 0.170000 +vt 0.879397 0.160000 +vt 0.839196 0.160000 +vt 0.839196 0.200000 +vt 0.879397 0.200000 +vt 0.896061 0.183178 +vt 0.897727 0.176822 +vt 0.897727 0.183178 +vt 0.881167 0.183178 +vt 0.882826 0.183178 +vt 0.887433 0.182496 +vt 0.889293 0.187034 +vt 0.885347 0.182496 +vt 0.889293 0.172966 +vt 0.887433 0.177504 +vt 0.885347 0.177504 +vt 0.890610 0.177504 +vt 0.888908 0.182496 +vt 0.888908 0.177504 +vt 0.882265 0.177504 +vt 0.882265 0.182496 +vt 0.896630 0.182496 +vt 0.890610 0.182496 +vt 0.889417 0.171745 +vt 0.891408 0.175873 +vt 0.889416 0.180000 +vt 0.889417 0.180000 +vt 0.891408 0.184128 +vt 0.889417 0.188255 +vt 0.889416 0.184178 +vt 0.891408 0.188306 +vt 0.889416 0.192433 +vt 0.889417 0.175822 +vt 0.889417 0.167567 +vt 0.891408 0.171694 +vt 0.892504 0.171358 +vt 0.887001 0.180001 +vt 0.887003 0.164722 +vt 0.892503 0.186632 +vt 0.887001 0.195279 +vt 0.887001 0.180000 +vt 0.893434 0.199481 +vt 0.893434 0.195279 +vt 0.893434 0.175798 +vt 0.887001 0.175798 +vt 0.892503 0.167152 +vt 0.892503 0.169166 +vt 0.892340 0.181007 +vt 0.884233 0.178993 +vt 0.892340 0.178993 +vt 0.888941 0.169623 +vt 0.889953 0.185757 +vt 0.888941 0.185757 +vt 0.894662 0.178993 +vt 0.894662 0.181007 +vt 0.887000 0.184202 +vt 0.892501 0.192852 +vt 0.886997 0.199481 +vt 0.893436 0.164726 +vt 0.887004 0.160520 +vt 0.893437 0.160524 +vt 0.889953 0.190377 +vt 0.893433 0.180005 +vt 0.886692 0.191404 +vt 0.893329 0.185188 +vt 0.886692 0.168596 +vt 0.883717 0.174516 +vt 0.886841 0.187724 +vt 0.895178 0.174516 +vt 0.889953 0.169623 +vt 0.885461 0.180000 +vt 0.885460 0.184201 +vt 0.885461 0.160520 +vt 0.887001 0.160520 +vt 0.885464 0.160519 +vt 0.885461 0.175798 +vt 0.887001 0.199480 +vt 0.885461 0.195279 +vt 0.885463 0.164721 +vt 0.885461 0.180000 +vt 0.886081 0.176822 +vt 0.882826 0.183178 +vt 0.882826 0.176822 +vt 0.892816 0.183178 +vt 0.892816 0.176822 +vt 0.891017 0.188554 +vt 0.887807 0.188671 +vt 0.886081 0.183178 +vt 0.887807 0.171329 +vt 0.889416 0.170530 +vt 0.891017 0.171446 +vt 0.879397 0.190000 +vt 0.839196 0.180000 +vt 0.879397 0.180000 +vt 0.839196 0.170000 +vt 0.879397 0.170000 +vt 0.879397 0.160000 +vt 0.839196 0.160000 +vt 0.839196 0.200000 +vt 0.879397 0.200000 +vt 0.896061 0.183178 +vt 0.897727 0.176822 +vt 0.897727 0.183178 +vt 0.881167 0.176822 +vt 0.881167 0.183178 +vt 0.887433 0.182496 +vt 0.889293 0.187034 +vt 0.885347 0.182496 +vt 0.889293 0.172966 +vt 0.887433 0.177504 +vt 0.885347 0.177504 +vt 0.890610 0.177504 +vt 0.888908 0.182496 +vt 0.888908 0.177504 +vt 0.882265 0.177504 +vt 0.882265 0.182496 +vt 0.896630 0.182496 +vt 0.890610 0.182496 +vt 0.889417 0.171745 +vt 0.891408 0.175873 +vt 0.889416 0.180000 +vt 0.889417 0.180000 +vt 0.891408 0.184128 +vt 0.889417 0.188255 +vt 0.889416 0.184178 +vt 0.891408 0.188306 +vt 0.889416 0.192433 +vt 0.889417 0.175822 +vt 0.889417 0.167567 +vt 0.891408 0.171694 +vt 0.892504 0.171358 +vt 0.887001 0.180001 +vt 0.887003 0.164722 +vt 0.892503 0.186632 +vt 0.887001 0.195279 +vt 0.887001 0.180000 +vt 0.893434 0.199481 +vt 0.893434 0.195279 +vt 0.893434 0.175798 +vt 0.887001 0.175798 +vt 0.892503 0.167152 +vt 0.892503 0.169166 +vt 0.892340 0.181007 +vt 0.884233 0.178993 +vt 0.892340 0.178993 +vt 0.888941 0.169623 +vt 0.889953 0.185757 +vt 0.888941 0.185757 +vt 0.894662 0.178993 +vt 0.894662 0.181007 +vt 0.887000 0.184202 +vt 0.892501 0.192852 +vt 0.886997 0.199481 +vt 0.893436 0.164726 +vt 0.887004 0.160520 +vt 0.893437 0.160524 +vt 0.889953 0.190377 +vt 0.893433 0.180005 +vt 0.886692 0.191404 +vt 0.893329 0.185188 +vt 0.886692 0.168596 +vt 0.883717 0.174516 +vt 0.886841 0.187724 +vt 0.895178 0.174516 +vt 0.889953 0.169623 +vt 0.885461 0.180000 +vt 0.885460 0.184201 +vt 0.885461 0.160520 +vt 0.887001 0.160520 +vt 0.885464 0.160519 +vt 0.885461 0.175798 +vt 0.887001 0.199480 +vt 0.885461 0.195279 +vt 0.885463 0.164721 +vt 0.885461 0.180000 +vt 0.886081 0.176822 +vt 0.882826 0.183178 +vt 0.882826 0.176822 +vt 0.892816 0.183178 +vt 0.892816 0.176822 +vt 0.891017 0.188554 +vt 0.887807 0.188671 +vt 0.886081 0.183178 +vt 0.887807 0.171329 +vt 0.889416 0.170530 +vt 0.891017 0.171446 +vt 0.839196 0.190000 +vt 0.879397 0.180000 +vt 0.879397 0.190000 +vt 0.839196 0.170000 +vt 0.879397 0.170000 +vt 0.839196 0.160000 +vt 0.839196 0.200000 +vt 0.879397 0.200000 +vt 0.896061 0.183178 +vt 0.897727 0.176822 +vt 0.897727 0.183178 +vt 0.881167 0.176822 +vt 0.881167 0.183178 +vt 0.887433 0.182496 +vt 0.889293 0.187034 +vt 0.885347 0.182496 +vt 0.889293 0.172966 +vt 0.887433 0.177504 +vt 0.885347 0.177504 +vt 0.890610 0.177504 +vt 0.888908 0.182496 +vt 0.888908 0.177504 +vt 0.882265 0.177504 +vt 0.882265 0.182496 +vt 0.896630 0.182496 +vt 0.890610 0.182496 +vt 0.889417 0.171745 +vt 0.891408 0.175873 +vt 0.889416 0.180000 +vt 0.889417 0.180000 +vt 0.891408 0.184128 +vt 0.889417 0.188255 +vt 0.889416 0.184178 +vt 0.891408 0.188306 +vt 0.889416 0.192433 +vt 0.889417 0.175822 +vt 0.889417 0.167567 +vt 0.891408 0.171694 +vt 0.892504 0.171358 +vt 0.887001 0.180001 +vt 0.887003 0.164722 +vt 0.892503 0.186632 +vt 0.887001 0.195279 +vt 0.887001 0.180000 +vt 0.887001 0.199480 +vt 0.893434 0.195279 +vt 0.893434 0.199481 +vt 0.893434 0.175798 +vt 0.887001 0.175798 +vt 0.892503 0.167152 +vt 0.892503 0.169166 +vt 0.892340 0.181007 +vt 0.884233 0.178993 +vt 0.892340 0.178993 +vt 0.888941 0.169623 +vt 0.889953 0.185757 +vt 0.888941 0.185757 +vt 0.894662 0.178993 +vt 0.894662 0.181007 +vt 0.887000 0.184202 +vt 0.892501 0.192852 +vt 0.886997 0.199481 +vt 0.893436 0.164726 +vt 0.887004 0.160520 +vt 0.893437 0.160524 +vt 0.889953 0.190377 +vt 0.893433 0.180005 +vt 0.886692 0.191404 +vt 0.893329 0.185188 +vt 0.886692 0.168596 +vt 0.883717 0.174516 +vt 0.886841 0.187724 +vt 0.895178 0.174516 +vt 0.889953 0.169623 +vt 0.885461 0.180000 +vt 0.885460 0.184201 +vt 0.885461 0.160520 +vt 0.887001 0.160520 +vt 0.885464 0.160519 +vt 0.885461 0.175798 +vt 0.885461 0.195279 +vt 0.885463 0.164721 +vt 0.885461 0.180000 +vt 0.886081 0.176822 +vt 0.882826 0.183178 +vt 0.882826 0.176822 +vt 0.892816 0.183178 +vt 0.892816 0.176822 +vt 0.891017 0.188554 +vt 0.887807 0.188671 +vt 0.886081 0.183178 +vt 0.887807 0.171329 +vt 0.889416 0.170530 +vt 0.891017 0.171446 +vt 0.879397 0.190000 +vt 0.839196 0.180000 +vt 0.879397 0.180000 +vt 0.839196 0.170000 +vt 0.879397 0.170000 +vt 0.879397 0.160000 +vt 0.839196 0.160000 +vt 0.839196 0.200000 +vt 0.879397 0.200000 +vt 0.896061 0.183178 +vt 0.897727 0.176822 +vt 0.897727 0.183178 +vt 0.881167 0.176822 +vt 0.881167 0.183178 +vt 0.887433 0.182496 +vt 0.889293 0.187034 +vt 0.885347 0.182496 +vt 0.889293 0.172966 +vt 0.887433 0.177504 +vt 0.885347 0.177504 +vt 0.890610 0.177504 +vt 0.888908 0.182496 +vt 0.888908 0.177504 +vt 0.882265 0.177504 +vt 0.882265 0.182496 +vt 0.896630 0.182496 +vt 0.890610 0.182496 +vt 0.889417 0.171745 +vt 0.891408 0.175873 +vt 0.889416 0.180000 +vt 0.889417 0.180000 +vt 0.891408 0.184128 +vt 0.889417 0.188255 +vt 0.889416 0.184178 +vt 0.891408 0.188306 +vt 0.889416 0.192433 +vt 0.889417 0.175822 +vt 0.889417 0.167567 +vt 0.891408 0.171694 +vt 0.892504 0.171358 +vt 0.887001 0.180001 +vt 0.887003 0.164722 +vt 0.892503 0.186632 +vt 0.887001 0.195279 +vt 0.887001 0.180000 +vt 0.893434 0.199481 +vt 0.893434 0.195279 +vt 0.893434 0.175798 +vt 0.887001 0.175798 +vt 0.892503 0.167152 +vt 0.892503 0.169166 +vt 0.892340 0.181007 +vt 0.884233 0.178993 +vt 0.892340 0.178993 +vt 0.888941 0.169623 +vt 0.889953 0.185757 +vt 0.888941 0.185757 +vt 0.894662 0.178993 +vt 0.894662 0.181007 +vt 0.887000 0.184202 +vt 0.892501 0.192852 +vt 0.886997 0.199481 +vt 0.893436 0.164726 +vt 0.887004 0.160520 +vt 0.893437 0.160524 +vt 0.889953 0.190377 +vt 0.893433 0.180005 +vt 0.886692 0.191404 +vt 0.893329 0.185188 +vt 0.886692 0.168596 +vt 0.883717 0.174516 +vt 0.886841 0.187724 +vt 0.895178 0.174516 +vt 0.889953 0.169623 +vt 0.885461 0.180000 +vt 0.885460 0.184201 +vt 0.885461 0.160520 +vt 0.887001 0.160520 +vt 0.885464 0.160519 +vt 0.885461 0.175798 +vt 0.887001 0.199480 +vt 0.885461 0.195279 +vt 0.885463 0.164721 +vt 0.885461 0.180000 +vt 0.886081 0.176822 +vt 0.882826 0.183178 +vt 0.882826 0.176822 +vt 0.892816 0.183178 +vt 0.892816 0.176822 +vt 0.891017 0.188554 +vt 0.887807 0.188671 +vt 0.886081 0.183178 +vt 0.887807 0.171329 +vt 0.889416 0.170530 +vt 0.891017 0.171446 +vt 0.839196 0.190000 +vt 0.879397 0.180000 +vt 0.879397 0.190000 +vt 0.839196 0.170000 +vt 0.879397 0.170000 +vt 0.839196 0.160000 +vt 0.839196 0.200000 +vt 0.879397 0.200000 +vt 0.896061 0.183178 +vt 0.897727 0.176822 +vt 0.897727 0.183178 +vt 0.881167 0.176822 +vt 0.881167 0.183178 +vt 0.887433 0.182496 +vt 0.889293 0.187034 +vt 0.885347 0.182496 +vt 0.889293 0.172966 +vt 0.887433 0.177504 +vt 0.885347 0.177504 +vt 0.890610 0.177504 +vt 0.888908 0.182496 +vt 0.888908 0.177504 +vt 0.882265 0.177504 +vt 0.882265 0.182496 +vt 0.896630 0.182496 +vt 0.890610 0.182496 +vt 0.889417 0.171745 +vt 0.891408 0.175873 +vt 0.889416 0.180000 +vt 0.889417 0.180000 +vt 0.891408 0.184128 +vt 0.889417 0.188255 +vt 0.889416 0.184178 +vt 0.891408 0.188306 +vt 0.889416 0.192433 +vt 0.889417 0.175822 +vt 0.889417 0.167567 +vt 0.891408 0.171694 +vt 0.892504 0.171358 +vt 0.887001 0.180001 +vt 0.887003 0.164722 +vt 0.892503 0.186632 +vt 0.887001 0.195279 +vt 0.887001 0.180000 +vt 0.887001 0.199480 +vt 0.893434 0.195279 +vt 0.893434 0.199481 +vt 0.893434 0.175798 +vt 0.887001 0.175798 +vt 0.892503 0.167152 +vt 0.892503 0.169166 +vt 0.892340 0.181007 +vt 0.884233 0.178993 +vt 0.892340 0.178993 +vt 0.888941 0.169623 +vt 0.889953 0.185757 +vt 0.888941 0.185757 +vt 0.894662 0.178993 +vt 0.894662 0.181007 +vt 0.887000 0.184202 +vt 0.892501 0.192852 +vt 0.886997 0.199481 +vt 0.893436 0.164726 +vt 0.887004 0.160520 +vt 0.893437 0.160524 +vt 0.889953 0.190377 +vt 0.893433 0.180005 +vt 0.886692 0.191404 +vt 0.893329 0.185188 +vt 0.886692 0.168596 +vt 0.883717 0.174516 +vt 0.886841 0.187724 +vt 0.895178 0.174516 +vt 0.889953 0.169623 +vt 0.885461 0.180000 +vt 0.885460 0.184201 +vt 0.885461 0.160520 +vt 0.887001 0.160520 +vt 0.885464 0.160519 +vt 0.885461 0.175798 +vt 0.885461 0.195279 +vt 0.885463 0.164721 +vt 0.885461 0.180000 +vt 0.886081 0.183178 +vt 0.882826 0.176822 +vt 0.886081 0.176822 +vt 0.892816 0.183178 +vt 0.892816 0.176822 +vt 0.891017 0.188554 +vt 0.887807 0.188671 +vt 0.887807 0.171329 +vt 0.889416 0.170530 +vt 0.891017 0.171446 +vt 0.879397 0.190000 +vt 0.839196 0.180000 +vt 0.879397 0.180000 +vt 0.839196 0.170000 +vt 0.879397 0.170000 +vt 0.879397 0.160000 +vt 0.839196 0.160000 +vt 0.839196 0.200000 +vt 0.879397 0.200000 +vt 0.896061 0.183178 +vt 0.897727 0.176822 +vt 0.897727 0.183178 +vt 0.881167 0.176822 +vt 0.882826 0.183178 +vt 0.881167 0.183178 +vt 0.887433 0.182496 +vt 0.889293 0.187034 +vt 0.885347 0.182496 +vt 0.889293 0.172966 +vt 0.887433 0.177504 +vt 0.885347 0.177504 +vt 0.890610 0.182496 +vt 0.888908 0.177504 +vt 0.890610 0.177504 +vt 0.882265 0.177504 +vt 0.882265 0.182496 +vt 0.896630 0.182496 +vt 0.889417 0.171745 +vt 0.891408 0.175873 +vt 0.889416 0.180000 +vt 0.889417 0.180000 +vt 0.891408 0.184128 +vt 0.889417 0.188255 +vt 0.889416 0.184178 +vt 0.891408 0.188306 +vt 0.889416 0.192433 +vt 0.889417 0.175822 +vt 0.889417 0.167567 +vt 0.891408 0.171694 +vt 0.892504 0.171358 +vt 0.887001 0.180001 +vt 0.887003 0.164722 +vt 0.892503 0.186632 +vt 0.887001 0.195279 +vt 0.887001 0.180000 +vt 0.893434 0.199481 +vt 0.893434 0.195279 +vt 0.893434 0.175798 +vt 0.887001 0.175798 +vt 0.892503 0.167152 +vt 0.892503 0.169166 +vt 0.892340 0.181007 +vt 0.884233 0.178993 +vt 0.892340 0.178993 +vt 0.888941 0.169623 +vt 0.889953 0.185757 +vt 0.888941 0.185757 +vt 0.894662 0.178993 +vt 0.894662 0.181007 +vt 0.887000 0.184202 +vt 0.892501 0.192852 +vt 0.886997 0.199481 +vt 0.893436 0.164726 +vt 0.887004 0.160520 +vt 0.893437 0.160524 +vt 0.889953 0.190377 +vt 0.893433 0.180005 +vt 0.886692 0.191404 +vt 0.893329 0.185188 +vt 0.886692 0.168596 +vt 0.883717 0.174516 +vt 0.886841 0.187724 +vt 0.895178 0.174516 +vt 0.889953 0.169623 +vt 0.885461 0.180000 +vt 0.885460 0.184201 +vt 0.885461 0.160520 +vt 0.887001 0.160520 +vt 0.885464 0.160519 +vt 0.885461 0.175798 +vt 0.887001 0.199480 +vt 0.885461 0.195279 +vt 0.885463 0.164721 +vt 0.885461 0.180000 +vt 0.886081 0.176822 +vt 0.882826 0.183178 +vt 0.882826 0.176822 +vt 0.892816 0.183178 +vt 0.892816 0.176822 +vt 0.891017 0.188554 +vt 0.887807 0.188671 +vt 0.886081 0.183178 +vt 0.887807 0.171329 +vt 0.889416 0.170530 +vt 0.891017 0.171446 +vt 0.879397 0.190000 +vt 0.839196 0.180000 +vt 0.879397 0.180000 +vt 0.839196 0.170000 +vt 0.879397 0.170000 +vt 0.839196 0.160000 +vt 0.839196 0.200000 +vt 0.879397 0.200000 +vt 0.896061 0.183178 +vt 0.897727 0.176822 +vt 0.897727 0.183178 +vt 0.881167 0.176822 +vt 0.881167 0.183178 +vt 0.887433 0.182496 +vt 0.889293 0.187034 +vt 0.885347 0.182496 +vt 0.889293 0.172966 +vt 0.887433 0.177504 +vt 0.885347 0.177504 +vt 0.890610 0.177504 +vt 0.888908 0.182496 +vt 0.888908 0.177504 +vt 0.882265 0.177504 +vt 0.882265 0.182496 +vt 0.896630 0.182496 +vt 0.890610 0.182496 +vt 0.889417 0.171745 +vt 0.891408 0.175873 +vt 0.889416 0.180000 +vt 0.889417 0.180000 +vt 0.891408 0.184128 +vt 0.889417 0.188255 +vt 0.889416 0.184178 +vt 0.891408 0.188306 +vt 0.889416 0.192433 +vt 0.889417 0.175822 +vt 0.889417 0.167567 +vt 0.891408 0.171694 +vt 0.892504 0.171358 +vt 0.887001 0.180001 +vt 0.887003 0.164722 +vt 0.892503 0.186632 +vt 0.887001 0.195279 +vt 0.887001 0.180000 +vt 0.893434 0.199481 +vt 0.893434 0.195279 +vt 0.893434 0.175798 +vt 0.887001 0.175798 +vt 0.892503 0.167152 +vt 0.892503 0.169166 +vt 0.892340 0.181007 +vt 0.884233 0.178993 +vt 0.892340 0.178993 +vt 0.888941 0.169623 +vt 0.889953 0.185757 +vt 0.888941 0.185757 +vt 0.894662 0.178993 +vt 0.894662 0.181007 +vt 0.886997 0.199481 +vt 0.892501 0.190838 +vt 0.892501 0.192852 +vt 0.893436 0.164726 +vt 0.887004 0.160520 +vt 0.893437 0.160524 +vt 0.889953 0.190377 +vt 0.893433 0.180005 +vt 0.887000 0.184202 +vt 0.886692 0.191404 +vt 0.893329 0.185188 +vt 0.886692 0.168596 +vt 0.883717 0.174516 +vt 0.886841 0.187724 +vt 0.895178 0.174516 +vt 0.889953 0.169623 +vt 0.885461 0.180000 +vt 0.885460 0.184201 +vt 0.885461 0.160520 +vt 0.887001 0.160520 +vt 0.885464 0.160519 +vt 0.885461 0.175798 +vt 0.887001 0.199480 +vt 0.885461 0.195279 +vt 0.885463 0.164721 +vt 0.885461 0.180000 +vt 0.886081 0.176822 +vt 0.882826 0.183178 +vt 0.882826 0.176822 +vt 0.892816 0.183178 +vt 0.892816 0.176822 +vt 0.891017 0.188554 +vt 0.887807 0.188671 +vt 0.886081 0.183178 +vt 0.887807 0.171329 +vt 0.889416 0.170530 +vt 0.891017 0.171446 +vt 0.839196 0.190000 +vt 0.879397 0.180000 +vt 0.879397 0.190000 +vt 0.839196 0.170000 +vt 0.879397 0.170000 +vt 0.879397 0.160000 +vt 0.839196 0.160000 +vt 0.839196 0.200000 +vt 0.879397 0.200000 +vt 0.896061 0.183178 +vt 0.897727 0.176822 +vt 0.897727 0.183178 +vt 0.881167 0.176822 +vt 0.881167 0.183178 +vt 0.887433 0.182496 +vt 0.889293 0.187034 +vt 0.885347 0.182496 +vt 0.889293 0.172966 +vt 0.887433 0.177504 +vt 0.885347 0.177504 +vt 0.890610 0.177504 +vt 0.888908 0.182496 +vt 0.888908 0.177504 +vt 0.882265 0.177504 +vt 0.882265 0.182496 +vt 0.896630 0.182496 +vt 0.890610 0.182496 +vt 0.889417 0.171745 +vt 0.891408 0.175873 +vt 0.889416 0.180000 +vt 0.889417 0.180000 +vt 0.891408 0.184128 +vt 0.889417 0.188255 +vt 0.889416 0.184178 +vt 0.891408 0.188306 +vt 0.889416 0.192433 +vt 0.889417 0.175822 +vt 0.889417 0.167567 +vt 0.891408 0.171694 +vt 0.892504 0.171358 +vt 0.887001 0.180001 +vt 0.887003 0.164722 +vt 0.892503 0.186632 +vt 0.887001 0.195279 +vt 0.887001 0.180000 +vt 0.893434 0.199481 +vt 0.893434 0.195279 +vt 0.887001 0.175798 +vt 0.893434 0.180000 +vt 0.892503 0.167152 +vt 0.892503 0.169166 +vt 0.892340 0.181007 +vt 0.884233 0.178993 +vt 0.892340 0.178993 +vt 0.888941 0.169623 +vt 0.889953 0.185757 +vt 0.888941 0.185757 +vt 0.894662 0.178993 +vt 0.894662 0.181007 +vt 0.886997 0.199481 +vt 0.892501 0.190838 +vt 0.892501 0.192852 +vt 0.893436 0.164726 +vt 0.887004 0.160520 +vt 0.893437 0.160524 +vt 0.889953 0.190377 +vt 0.893433 0.180005 +vt 0.887000 0.184202 +vt 0.886692 0.191404 +vt 0.893329 0.185188 +vt 0.886692 0.168596 +vt 0.883717 0.174516 +vt 0.886841 0.187724 +vt 0.895178 0.174516 +vt 0.889953 0.169623 +vt 0.885461 0.180000 +vt 0.885460 0.184201 +vt 0.885461 0.160520 +vt 0.887001 0.160520 +vt 0.885464 0.160519 +vt 0.885461 0.175798 +vt 0.887001 0.199480 +vt 0.885461 0.195279 +vt 0.885463 0.164721 +vt 0.885461 0.180000 +vt 0.886081 0.183178 +vt 0.882826 0.176822 +vt 0.886081 0.176822 +vt 0.892816 0.183178 +vt 0.892816 0.176822 +vt 0.891017 0.188554 +vt 0.887807 0.188671 +vt 0.887807 0.171329 +vt 0.889416 0.170530 +vt 0.891017 0.171446 +vt 0.839196 0.190000 +vt 0.879397 0.180000 +vt 0.879397 0.190000 +vt 0.839196 0.170000 +vt 0.879397 0.170000 +vt 0.879397 0.160000 +vt 0.839196 0.160000 +vt 0.839196 0.200000 +vt 0.879397 0.200000 +vt 0.896061 0.183178 +vt 0.897727 0.176822 +vt 0.897727 0.183178 +vt 0.881167 0.176822 +vt 0.882826 0.183178 +vt 0.881167 0.183178 +vt 0.887433 0.182496 +vt 0.889293 0.187034 +vt 0.885347 0.182496 +vt 0.889293 0.172966 +vt 0.887433 0.177504 +vt 0.885347 0.177504 +vt 0.890610 0.177504 +vt 0.888908 0.182496 +vt 0.888908 0.177504 +vt 0.882265 0.177504 +vt 0.882265 0.182496 +vt 0.896630 0.177504 +vt 0.890610 0.182496 +vt 0.889417 0.171745 +vt 0.891408 0.175873 +vt 0.889416 0.180000 +vt 0.889417 0.180000 +vt 0.891408 0.184128 +vt 0.889417 0.188255 +vt 0.889416 0.184178 +vt 0.891408 0.188306 +vt 0.889416 0.192433 +vt 0.889417 0.175822 +vt 0.889417 0.167567 +vt 0.891408 0.171694 +vt 0.884422 0.470000 +vt 0.884422 0.480000 +vt 0.844221 0.530000 +vt 0.844221 0.520000 +vt 0.884422 0.510000 +vt 0.879397 0.410000 +vt 0.849246 0.470000 +vt 0.678392 0.410000 +vt 0.678392 0.110000 +vt 0.673367 0.710000 +vt 0.678392 0.310000 +vt 0.678392 0.010000 +vt 0.678392 0.610000 +vt 0.673367 0.910000 +vt 0.678392 0.510000 +vt 0.673367 0.210000 +vt 0.678392 0.810000 +vt 0.840052 0.775000 +vt 0.842592 0.743079 +vt 0.849965 0.714283 +vt 0.861449 0.691430 +vt 0.875920 0.676758 +vt 0.922471 0.691430 +vt 0.891960 0.671702 +vt 0.908001 0.676758 +vt 0.933955 0.714283 +vt 0.941328 0.743079 +vt 0.943869 0.775000 +vt 0.933955 0.835717 +vt 0.922471 0.858570 +vt 0.908001 0.873242 +vt 0.875920 0.873242 +vt 0.861449 0.858570 +vt 0.849965 0.835717 +vt 0.844221 0.480000 +vt 0.884422 0.470000 +vt 0.884422 0.480000 +vt 0.889447 0.510000 +vt 0.884422 0.520000 +vt 0.844221 0.530000 +vt 0.844221 0.520000 +vt 0.839196 0.410000 +vt 0.879397 0.410000 +vt 0.849246 0.470000 +vt 0.899496 0.390000 +vt 0.850331 0.367915 +vt 0.846604 0.369764 +vt 0.842912 0.367657 +vt 0.839314 0.354742 +vt 0.840373 0.347395 +vt 0.843136 0.342085 +vt 0.846863 0.340235 +vt 0.850556 0.342342 +vt 0.854153 0.355258 +vt 0.854271 0.400000 +vt 0.844221 0.400000 +vt 0.889447 0.400000 +vt 0.864322 0.400000 +vt 0.879397 0.400000 +vt 0.843023 0.367788 +vt 0.840307 0.362383 +vt 0.839313 0.355000 +vt 0.843024 0.342212 +vt 0.846734 0.340233 +vt 0.850444 0.342212 +vt 0.854154 0.355000 +vt 0.853160 0.362383 +vt 0.850444 0.367788 +vt 0.892504 0.173372 +vt 0.892503 0.188646 +vt 0.893434 0.180000 +vt 0.884233 0.181007 +vt 0.892501 0.190838 +vt 0.888941 0.190377 +vt 0.893433 0.184206 +vt 0.893329 0.174812 +vt 0.892054 0.187724 +vt 0.885458 0.199480 +vt 0.885461 0.199481 +vt 0.889416 0.189470 +vt 0.839196 0.190000 +vt 0.896061 0.176822 +vt 0.888748 0.183825 +vt 0.883273 0.187034 +vt 0.883273 0.172966 +vt 0.888748 0.176175 +vt 0.896630 0.177504 +vt 0.886347 0.180000 +vt 0.886347 0.171745 +vt 0.890739 0.172717 +vt 0.890739 0.179029 +vt 0.886347 0.188255 +vt 0.886347 0.180000 +vt 0.890739 0.180972 +vt 0.890739 0.187283 +vt 0.890739 0.185150 +vt 0.890739 0.191462 +vt 0.886347 0.192433 +vt 0.886347 0.184178 +vt 0.890739 0.174850 +vt 0.886347 0.175822 +vt 0.886347 0.167567 +vt 0.890739 0.168539 +vt 0.839196 0.200000 +vt 0.844221 0.200000 +vt 0.844221 0.200000 +vt 0.844221 0.260000 +vt 0.844221 0.200000 +vt 0.844221 0.260000 +vt 0.844221 0.200000 +vt 0.844221 0.260000 +vt 0.844221 0.260000 +vt 0.844221 0.200000 +vt 0.844221 0.260000 +vt 0.844221 0.200000 +vt 0.839196 0.200000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.909548 0.640000 +vt 0.904523 0.660000 +vt 0.899498 0.660000 +vt 0.500000 0.333333 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.909548 0.640000 +vt 0.904523 0.660000 +vt 0.899498 0.660000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.909548 0.640000 +vt 0.904523 0.660000 +vt 0.899498 0.660000 +vt 0.500000 0.333333 +vt 0.904523 0.660000 +vt 0.899498 0.660000 +vt 0.894472 0.650000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.909548 0.640000 +vt 0.904523 0.660000 +vt 0.899498 0.660000 +vt 0.500000 0.333333 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.909548 0.640000 +vt 0.904523 0.660000 +vt 0.899498 0.660000 +vt 0.899498 0.660000 +vt 0.894472 0.640000 +vt 0.909548 0.640000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.500000 0.333333 +vt 0.899498 0.660000 +vt 0.894472 0.640000 +vt 0.909548 0.640000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.899498 0.660000 +vt 0.894472 0.640000 +vt 0.909548 0.640000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.500000 0.333333 +vt 0.899498 0.660000 +vt 0.894472 0.640000 +vt 0.909548 0.640000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.899498 0.660000 +vt 0.894472 0.640000 +vt 0.909548 0.640000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.500000 0.333333 +vt 0.899498 0.660000 +vt 0.894472 0.640000 +vt 0.909548 0.640000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.854271 0.160000 +vt 0.839196 0.130000 +vt 0.984925 0.160000 +vt 0.919598 0.010000 +vt 0.929648 0.070000 +vt 1.000000 0.930000 +vt 1.000000 0.940000 +vt 0.839196 0.890000 +vt 0.839196 0.940000 +vt 0.854428 0.130313 +vt 0.929648 0.010000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.909548 0.640000 +vt 0.904523 0.660000 +vt 0.899498 0.660000 +vt 0.500000 0.333333 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.909548 0.640000 +vt 0.904523 0.660000 +vt 0.899498 0.660000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.909548 0.640000 +vt 0.904523 0.660000 +vt 0.899498 0.660000 +vt 0.500000 0.333333 +vt 0.904523 0.660000 +vt 0.899498 0.660000 +vt 0.894472 0.650000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.909548 0.640000 +vt 0.904523 0.660000 +vt 0.899498 0.660000 +vt 0.500000 0.333333 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.909548 0.640000 +vt 0.904523 0.660000 +vt 0.899498 0.660000 +vt 0.899498 0.660000 +vt 0.894472 0.640000 +vt 0.909548 0.640000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.500000 0.416667 +vt 0.899498 0.660000 +vt 0.894472 0.640000 +vt 0.909548 0.640000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.899498 0.660000 +vt 0.894472 0.640000 +vt 0.909548 0.640000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.500000 0.333333 +vt 0.899498 0.660000 +vt 0.894472 0.640000 +vt 0.909548 0.640000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.899498 0.660000 +vt 0.894472 0.640000 +vt 0.909548 0.640000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.500000 0.333333 +vt 0.899498 0.660000 +vt 0.894472 0.640000 +vt 0.909548 0.640000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.839196 0.130000 +vt 0.984925 0.160000 +vt 0.994975 0.140000 +vt 0.919598 0.010000 +vt 0.929648 0.070000 +vt 0.854428 0.130313 +vt 0.929648 0.010000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.909548 0.640000 +vt 0.904523 0.660000 +vt 0.899498 0.660000 +vt 0.500000 0.333333 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.909548 0.640000 +vt 0.904523 0.660000 +vt 0.899498 0.660000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.909548 0.640000 +vt 0.904523 0.660000 +vt 0.899498 0.660000 +vt 0.500000 0.333333 +vt 0.904523 0.660000 +vt 0.899498 0.660000 +vt 0.894472 0.650000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.909548 0.640000 +vt 0.904523 0.660000 +vt 0.899498 0.660000 +vt 0.500000 0.333333 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.909548 0.640000 +vt 0.904523 0.660000 +vt 0.899498 0.660000 +vt 0.899498 0.660000 +vt 0.894472 0.640000 +vt 0.909548 0.640000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.500000 0.333333 +vt 0.899498 0.660000 +vt 0.894472 0.640000 +vt 0.909548 0.640000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.899498 0.660000 +vt 0.894472 0.640000 +vt 0.909548 0.640000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.500000 0.333333 +vt 0.899498 0.660000 +vt 0.894472 0.640000 +vt 0.909548 0.640000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.899498 0.660000 +vt 0.894472 0.640000 +vt 0.909548 0.640000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.500000 0.333333 +vt 0.899498 0.660000 +vt 0.894472 0.640000 +vt 0.909548 0.640000 +vt 0.899498 0.630000 +vt 0.904523 0.630000 +vt 0.839196 0.130000 +vt 0.984925 0.160000 +vt 0.919598 0.010000 +vt 0.929648 0.070000 +vt 0.854428 0.130313 +vt 0.929648 0.010000 +vt 0.892504 0.173372 +vt 0.892503 0.188646 +vt 0.893434 0.180000 +vt 0.884233 0.181007 +vt 0.892501 0.190838 +vt 0.888941 0.190377 +vt 0.893433 0.184206 +vt 0.893329 0.174812 +vt 0.892054 0.187724 +vt 0.885458 0.199480 +vt 0.885461 0.199481 +vt 0.889416 0.189470 +vt 0.839196 0.190000 +vt 0.879397 0.160000 +vt 0.896061 0.176822 +vt 0.888748 0.183825 +vt 0.883273 0.187034 +vt 0.883273 0.172966 +vt 0.888748 0.176175 +vt 0.882265 0.177504 +vt 0.896630 0.177504 +vt 0.886347 0.180000 +vt 0.886347 0.171745 +vt 0.890739 0.172717 +vt 0.890739 0.179029 +vt 0.886347 0.188255 +vt 0.886347 0.180000 +vt 0.890739 0.180972 +vt 0.890739 0.187283 +vt 0.890739 0.185150 +vt 0.890739 0.191462 +vt 0.886347 0.192433 +vt 0.886347 0.184178 +vt 0.890739 0.174850 +vt 0.886347 0.175822 +vt 0.886347 0.167567 +vt 0.890739 0.168539 +vt 0.892504 0.173372 +vt 0.892503 0.188646 +vt 0.893434 0.180000 +vt 0.884233 0.181007 +vt 0.892501 0.190838 +vt 0.888941 0.190377 +vt 0.893433 0.184206 +vt 0.893329 0.174812 +vt 0.892054 0.187724 +vt 0.885458 0.199480 +vt 0.885461 0.199481 +vt 0.889416 0.189470 +vt 0.839196 0.180000 +vt 0.896061 0.176822 +vt 0.888748 0.183825 +vt 0.883273 0.187034 +vt 0.883273 0.172966 +vt 0.888748 0.176175 +vt 0.896630 0.177504 +vt 0.886347 0.180000 +vt 0.886347 0.171745 +vt 0.890739 0.172717 +vt 0.890739 0.179029 +vt 0.886347 0.188255 +vt 0.886347 0.180000 +vt 0.890739 0.180972 +vt 0.890739 0.187283 +vt 0.890739 0.185150 +vt 0.890739 0.191462 +vt 0.886347 0.192433 +vt 0.886347 0.184178 +vt 0.890739 0.174850 +vt 0.886347 0.175822 +vt 0.886347 0.167567 +vt 0.890739 0.168539 +vt 0.892504 0.173372 +vt 0.892503 0.188646 +vt 0.893434 0.180000 +vt 0.884233 0.181007 +vt 0.892501 0.190838 +vt 0.888941 0.190377 +vt 0.893433 0.184206 +vt 0.893329 0.174812 +vt 0.892054 0.187724 +vt 0.885458 0.199480 +vt 0.885461 0.199481 +vt 0.889416 0.189470 +vt 0.839196 0.190000 +vt 0.896061 0.176822 +vt 0.881167 0.176822 +vt 0.888748 0.183825 +vt 0.883273 0.187034 +vt 0.883273 0.172966 +vt 0.888748 0.176175 +vt 0.896630 0.177504 +vt 0.886347 0.180000 +vt 0.886347 0.171745 +vt 0.890739 0.172717 +vt 0.890739 0.179029 +vt 0.886347 0.188255 +vt 0.886347 0.180000 +vt 0.890739 0.180972 +vt 0.890739 0.187283 +vt 0.890739 0.185150 +vt 0.890739 0.191462 +vt 0.886347 0.192433 +vt 0.886347 0.184178 +vt 0.890739 0.174850 +vt 0.886347 0.175822 +vt 0.886347 0.167567 +vt 0.890739 0.168539 +vt 0.892504 0.173372 +vt 0.892503 0.188646 +vt 0.893434 0.180000 +vt 0.884233 0.181007 +vt 0.892501 0.190838 +vt 0.888941 0.190377 +vt 0.893433 0.184206 +vt 0.893329 0.174812 +vt 0.892054 0.187724 +vt 0.885458 0.199480 +vt 0.885461 0.199481 +vt 0.889416 0.189470 +vt 0.839196 0.190000 +vt 0.896061 0.176822 +vt 0.888748 0.183825 +vt 0.883273 0.187034 +vt 0.883273 0.172966 +vt 0.888748 0.176175 +vt 0.896630 0.177504 +vt 0.886347 0.180000 +vt 0.886347 0.171745 +vt 0.890739 0.172717 +vt 0.890739 0.179029 +vt 0.886347 0.188255 +vt 0.886347 0.180000 +vt 0.890739 0.180972 +vt 0.890739 0.187283 +vt 0.890739 0.185150 +vt 0.890739 0.191462 +vt 0.886347 0.192433 +vt 0.886347 0.184178 +vt 0.890739 0.174850 +vt 0.886347 0.175822 +vt 0.886347 0.167567 +vt 0.890739 0.168539 +vt 0.892504 0.173372 +vt 0.892503 0.188646 +vt 0.893434 0.180000 +vt 0.884233 0.181007 +vt 0.892501 0.190838 +vt 0.888941 0.190377 +vt 0.893433 0.184206 +vt 0.893329 0.174812 +vt 0.892054 0.187724 +vt 0.885458 0.199480 +vt 0.885461 0.199481 +vt 0.889416 0.189470 +vt 0.839196 0.180000 +vt 0.879397 0.160000 +vt 0.896061 0.176822 +vt 0.888748 0.183825 +vt 0.883273 0.187034 +vt 0.883273 0.172966 +vt 0.888748 0.176175 +vt 0.896630 0.177504 +vt 0.886347 0.180000 +vt 0.886347 0.171745 +vt 0.890739 0.172717 +vt 0.890739 0.179029 +vt 0.886347 0.188255 +vt 0.886347 0.180000 +vt 0.890739 0.180972 +vt 0.890739 0.187283 +vt 0.890739 0.185150 +vt 0.890739 0.191462 +vt 0.886347 0.192433 +vt 0.886347 0.184178 +vt 0.890739 0.174850 +vt 0.886347 0.175822 +vt 0.886347 0.167567 +vt 0.890739 0.168539 +vt 0.892504 0.173372 +vt 0.892503 0.188646 +vt 0.893434 0.180000 +vt 0.884233 0.181007 +vt 0.892501 0.190838 +vt 0.888941 0.190377 +vt 0.893433 0.184206 +vt 0.893329 0.174812 +vt 0.892054 0.187724 +vt 0.885458 0.199480 +vt 0.885461 0.199481 +vt 0.889416 0.189470 +vt 0.839196 0.190000 +vt 0.896061 0.176822 +vt 0.888748 0.183825 +vt 0.883273 0.187034 +vt 0.883273 0.172966 +vt 0.888748 0.176175 +vt 0.896630 0.177504 +vt 0.886347 0.180000 +vt 0.886347 0.171745 +vt 0.890739 0.172717 +vt 0.890739 0.179029 +vt 0.886347 0.188255 +vt 0.886347 0.180000 +vt 0.890739 0.180972 +vt 0.890739 0.187283 +vt 0.890739 0.185150 +vt 0.890739 0.191462 +vt 0.886347 0.192433 +vt 0.886347 0.184178 +vt 0.890739 0.174850 +vt 0.886347 0.175822 +vt 0.886347 0.167567 +vt 0.890739 0.168539 +vt 0.892504 0.173372 +vt 0.892503 0.188646 +vt 0.893434 0.180000 +vt 0.884233 0.181007 +vt 0.892501 0.190838 +vt 0.888941 0.190377 +vt 0.893433 0.184206 +vt 0.893329 0.174812 +vt 0.892054 0.187724 +vt 0.885458 0.199480 +vt 0.885461 0.199481 +vt 0.889416 0.189470 +vt 0.839196 0.180000 +vt 0.879397 0.160000 +vt 0.896061 0.176822 +vt 0.888748 0.183825 +vt 0.883273 0.187034 +vt 0.883273 0.172966 +vt 0.888748 0.176175 +vt 0.896630 0.177504 +vt 0.886347 0.180000 +vt 0.886347 0.171745 +vt 0.890739 0.172717 +vt 0.890739 0.179029 +vt 0.886347 0.188255 +vt 0.886347 0.180000 +vt 0.890739 0.180972 +vt 0.890739 0.187283 +vt 0.890739 0.185150 +vt 0.890739 0.191462 +vt 0.886347 0.192433 +vt 0.886347 0.184178 +vt 0.890739 0.174850 +vt 0.886347 0.175822 +vt 0.886347 0.167567 +vt 0.890739 0.168539 +vt 0.892504 0.173372 +vt 0.892503 0.188646 +vt 0.893434 0.180000 +vt 0.884233 0.181007 +vt 0.892501 0.190838 +vt 0.888941 0.190377 +vt 0.893433 0.184206 +vt 0.893329 0.174812 +vt 0.892054 0.187724 +vt 0.885458 0.199480 +vt 0.885461 0.199481 +vt 0.889416 0.189470 +vt 0.839196 0.190000 +vt 0.896061 0.176822 +vt 0.888748 0.183825 +vt 0.883273 0.187034 +vt 0.883273 0.172966 +vt 0.888748 0.176175 +vt 0.888908 0.182496 +vt 0.896630 0.177504 +vt 0.886347 0.180000 +vt 0.886347 0.171745 +vt 0.890739 0.172717 +vt 0.890739 0.179029 +vt 0.886347 0.188255 +vt 0.886347 0.180000 +vt 0.890739 0.180972 +vt 0.890739 0.187283 +vt 0.890739 0.185150 +vt 0.890739 0.191462 +vt 0.886347 0.192433 +vt 0.886347 0.184178 +vt 0.890739 0.174850 +vt 0.886347 0.175822 +vt 0.886347 0.167567 +vt 0.890739 0.168539 +vt 0.892504 0.173372 +vt 0.892503 0.188646 +vt 0.893434 0.180000 +vt 0.884233 0.181007 +vt 0.892501 0.190838 +vt 0.888941 0.190377 +vt 0.893433 0.184206 +vt 0.893329 0.174812 +vt 0.892054 0.187724 +vt 0.885458 0.199480 +vt 0.885461 0.199481 +vt 0.889416 0.189470 +vt 0.839196 0.190000 +vt 0.879397 0.160000 +vt 0.896061 0.176822 +vt 0.888748 0.183825 +vt 0.883273 0.187034 +vt 0.883273 0.172966 +vt 0.888748 0.176175 +vt 0.896630 0.177504 +vt 0.886347 0.180000 +vt 0.886347 0.171745 +vt 0.890739 0.172717 +vt 0.890739 0.179029 +vt 0.886347 0.188255 +vt 0.886347 0.180000 +vt 0.890739 0.180972 +vt 0.890739 0.187283 +vt 0.890739 0.185150 +vt 0.890739 0.191462 +vt 0.886347 0.192433 +vt 0.886347 0.184178 +vt 0.890739 0.174850 +vt 0.886347 0.175822 +vt 0.886347 0.167567 +vt 0.890739 0.168539 +vt 0.892504 0.173372 +vt 0.892503 0.188646 +vt 0.893434 0.180000 +vt 0.884233 0.181007 +vt 0.888941 0.190377 +vt 0.893433 0.184206 +vt 0.893329 0.174812 +vt 0.892054 0.187724 +vt 0.885458 0.199480 +vt 0.885461 0.199481 +vt 0.889416 0.189470 +vt 0.839196 0.180000 +vt 0.896061 0.176822 +vt 0.888748 0.183825 +vt 0.883273 0.187034 +vt 0.883273 0.172966 +vt 0.888748 0.176175 +vt 0.896630 0.177504 +vt 0.886347 0.180000 +vt 0.886347 0.171745 +vt 0.890739 0.172717 +vt 0.890739 0.179029 +vt 0.886347 0.188255 +vt 0.886347 0.180000 +vt 0.890739 0.180972 +vt 0.890739 0.187283 +vt 0.890739 0.185150 +vt 0.890739 0.191462 +vt 0.886347 0.192433 +vt 0.886347 0.184178 +vt 0.890739 0.174850 +vt 0.886347 0.175822 +vt 0.886347 0.167567 +vt 0.890739 0.168539 +vt 0.892504 0.173372 +vt 0.892503 0.188646 +vt 0.893434 0.175798 +vt 0.884233 0.181007 +vt 0.888941 0.190377 +vt 0.893433 0.184206 +vt 0.893329 0.174812 +vt 0.892054 0.187724 +vt 0.885458 0.199480 +vt 0.885461 0.199481 +vt 0.889416 0.189470 +vt 0.839196 0.180000 +vt 0.896061 0.176822 +vt 0.888748 0.183825 +vt 0.883273 0.187034 +vt 0.883273 0.172966 +vt 0.888748 0.176175 +vt 0.896630 0.182496 +vt 0.886347 0.180000 +vt 0.886347 0.171745 +vt 0.890739 0.172717 +vt 0.890739 0.179029 +vt 0.886347 0.188255 +vt 0.886347 0.180000 +vt 0.890739 0.180972 +vt 0.890739 0.187283 +vt 0.890739 0.185150 +vt 0.890739 0.191462 +vt 0.886347 0.192433 +vt 0.886347 0.184178 +vt 0.890739 0.174850 +vt 0.886347 0.175822 +vt 0.886347 0.167567 +vt 0.890739 0.168539 +vt 0.869347 0.630000 +vt 0.849246 0.640000 +vt 0.849246 0.630000 +vt 0.869347 0.650000 +vt 0.849246 0.650000 +vt 0.869347 0.660000 +vt 0.849246 0.660000 +vt 0.869347 0.670000 +vt 0.849246 0.670000 +vt 0.880221 0.658724 +vt 0.886848 0.662880 +vt 0.881997 0.662880 +vt 0.869347 0.620000 +vt 0.849246 0.620000 +vt 0.849246 0.610000 +vt 0.844221 0.620000 +vt 0.844221 0.610000 +vt 0.839196 0.610000 +vt 0.844221 0.630000 +vt 0.839196 0.630000 +vt 0.839196 0.620000 +vt 0.844221 0.640000 +vt 0.839196 0.640000 +vt 0.844221 0.650000 +vt 0.844221 0.660000 +vt 0.839196 0.650000 +vt 0.839196 0.670000 +vt 0.839196 0.660000 +vt 0.869347 0.610000 +vt 0.874372 0.620000 +vt 0.874372 0.610000 +vt 0.879397 0.620000 +vt 0.874372 0.630000 +vt 0.879397 0.630000 +vt 0.874372 0.640000 +vt 0.869347 0.640000 +vt 0.879397 0.640000 +vt 0.874372 0.650000 +vt 0.879397 0.650000 +vt 0.874372 0.660000 +vt 0.879397 0.660000 +vt 0.874372 0.670000 +vt 0.879397 0.670000 +vt 0.886888 0.643403 +vt 0.884422 0.644949 +vt 0.881957 0.643403 +vt 0.145729 0.250000 +vt 0.311558 0.200000 +vt 0.311558 0.250000 +vt 0.145729 0.150000 +vt 0.311558 0.150000 +vt 0.311558 0.100000 +vt 0.145729 0.100000 +vt 0.311558 0.050000 +vt 0.145729 0.050000 +vt 0.311558 -0.000000 +vt 0.145729 1.000000 +vt 0.311558 0.950000 +vt 0.311558 1.000000 +vt 0.145729 0.950000 +vt 0.311558 0.900000 +vt 0.145729 0.900000 +vt 0.311558 0.850000 +vt 0.145729 0.800000 +vt 0.311558 0.800000 +vt 0.311558 0.750000 +vt 0.145729 0.700000 +vt 0.311558 0.700000 +vt 0.311558 0.650000 +vt 0.145729 0.600000 +vt 0.311558 0.600000 +vt 0.311558 0.550000 +vt 0.145729 0.550000 +vt 0.311558 0.500000 +vt 0.145729 0.500000 +vt 0.311558 0.450000 +vt 0.145729 0.400000 +vt 0.311558 0.400000 +vt 0.311558 0.350000 +vt 0.085427 0.150000 +vt 0.085427 0.110000 +vt 0.145729 0.300000 +vt 0.311558 0.300000 +vt 0.512563 0.050000 +vt 0.512563 0.090000 +vt 0.085427 0.890000 +vt 0.045226 0.850000 +vt 0.085427 0.850000 +vt 0.145729 0.850000 +vt 0.085427 0.210000 +vt 0.145729 0.200000 +vt 0.145729 0.650000 +vt 0.085427 0.610000 +vt 0.145729 0.350000 +vt 0.085427 0.390000 +vt 0.085427 0.350000 +vt 0.085427 0.950000 +vt 0.145729 0.750000 +vt 0.085427 0.710000 +vt 0.145729 0.450000 +vt 0.085427 0.490000 +vt 0.085427 0.450000 +vt 0.085427 0.050000 +vt 0.085427 0.810000 +vt 0.085427 0.550000 +vt 0.085427 0.310000 +vt 0.085427 0.910000 +vt 0.085427 0.650000 +vt 0.085427 0.410000 +vt 0.085427 0.010000 +vt 0.145729 -0.000000 +vt 0.085427 0.750000 +vt 0.085427 0.510000 +vt 0.085427 0.250000 +vt 0.045226 0.020000 +vt 0.015075 0.050000 +vt 0.015075 0.030000 +vt 0.045226 0.220000 +vt 0.045226 0.450000 +vt 0.045226 0.820000 +vt 0.085427 0.190000 +vt 0.045226 0.150000 +vt 0.045226 0.420000 +vt 0.085427 0.790000 +vt 0.045226 0.750000 +vt 0.045226 0.120000 +vt 0.045226 0.380000 +vt 0.045226 0.350000 +vt 0.045226 0.720000 +vt 0.045226 0.080000 +vt 0.045226 0.050000 +vt 0.045226 0.320000 +vt 0.085427 0.690000 +vt 0.045226 0.650000 +vt 0.085427 0.290000 +vt 0.045226 0.250000 +vt 0.045226 0.620000 +vt 0.085427 0.990000 +vt 0.045226 0.950000 +vt 0.085427 0.590000 +vt 0.045226 0.550000 +vt 0.045226 0.920000 +vt 0.045226 0.520000 +vt 0.015075 0.550000 +vt 0.000000 0.540000 +vt 0.015075 0.530000 +vt 0.045226 0.280000 +vt 0.015075 0.250000 +vt 0.015075 0.630000 +vt 0.045226 0.980000 +vt 0.015075 0.950000 +vt 0.015075 0.570000 +vt 0.015075 0.930000 +vt 0.015075 0.870000 +vt 0.015075 0.850000 +vt 0.015075 0.230000 +vt 0.015075 0.470000 +vt 0.015075 0.450000 +vt 0.015075 0.830000 +vt 0.045226 0.180000 +vt 0.015075 0.150000 +vt 0.015075 0.430000 +vt 0.045226 0.780000 +vt 0.015075 0.750000 +vt 0.015075 0.130000 +vt 0.015075 0.370000 +vt 0.015075 0.350000 +vt 0.015075 0.730000 +vt 0.015075 0.070000 +vt 0.015075 0.330000 +vt 0.015075 0.670000 +vt 0.015075 0.650000 +vt 0.953345 0.878086 +vt 0.945036 0.854673 +vt 0.953658 0.831713 +vt -0.000000 0.860000 +vt 0.000000 0.850000 +vt 0.000000 0.240000 +vt -0.000000 0.460000 +vt -0.000000 0.450000 +vt 0.000000 0.840000 +vt 0.000000 0.160000 +vt 0.000000 0.150000 +vt -0.000000 0.440000 +vt 0.000000 0.760000 +vt 0.000000 0.750000 +vt 0.000000 0.140000 +vt -0.000000 0.360000 +vt 0.000000 0.350000 +vt 0.000000 0.740000 +vt -0.000000 0.060000 +vt 0.000000 0.050000 +vt -0.000000 0.340000 +vt 0.000000 0.660000 +vt 0.000000 0.650000 +vt -0.000000 0.040000 +vt 0.000000 0.260000 +vt 0.000000 0.250000 +vt 0.000000 0.640000 +vt -0.000000 0.960000 +vt 0.000000 0.950000 +vt -0.000000 0.560000 +vt 0.000000 0.550000 +vt 0.000000 0.940000 +vt 0.512563 0.510000 +vt 0.512563 0.550000 +vt 0.512563 0.850000 +vt 0.512563 0.590000 +vt 0.512563 0.350000 +vt 0.512563 0.190000 +vt 0.512563 0.910000 +vt 0.512563 0.950000 +vt 0.512563 0.690000 +vt 0.512563 0.450000 +vt 0.512563 0.790000 +vt 0.512563 0.290000 +vt 0.512563 0.150000 +vt 0.512563 0.890000 +vt 0.512563 0.210000 +vt 0.512563 0.250000 +vt 0.512563 0.650000 +vt 0.512563 0.390000 +vt 0.512563 0.990000 +vt 0.512563 0.750000 +vt 0.512563 0.490000 +vt 0.512563 0.810000 +vt 0.512563 0.110000 +vt 0.512563 0.710000 +vt 0.512563 0.310000 +vt 0.839196 0.350000 +vt 0.839196 0.690000 +vt 0.839196 0.010000 +vt 0.839196 0.050000 +vt 0.839196 0.290000 +vt 0.839196 0.650000 +vt 0.839196 0.990000 +vt 0.839196 0.550000 +vt 0.839196 0.590000 +vt 0.839196 0.910000 +vt 0.839196 0.950000 +vt 0.839196 0.890000 +vt 0.839196 0.250000 +vt 0.839196 0.490000 +vt 0.839196 0.850000 +vt 0.839196 0.190000 +vt 0.839196 0.450000 +vt 0.839196 0.790000 +vt 0.839196 0.150000 +vt 0.839196 0.390000 +vt 0.839196 0.750000 +vt 0.839196 0.090000 +vt 0.849246 0.550000 +vt 0.864322 0.540000 +vt 0.864322 0.550000 +vt 0.839196 0.550000 +vt 0.844221 0.540000 +vt 0.844221 0.550000 +vt 0.849246 0.540000 +vt 0.849246 0.530000 +vt 0.864322 0.530000 +vt 0.839196 0.540000 +vt 0.844221 0.530000 +vt 0.849246 0.610000 +vt 0.864322 0.600000 +vt 0.864322 0.610000 +vt 0.844221 0.610000 +vt 0.839196 0.600000 +vt 0.844221 0.600000 +vt 0.849246 0.600000 +vt 0.849246 0.590000 +vt 0.864322 0.590000 +vt 0.839196 0.590000 +vt 0.844221 0.590000 +vt 0.844221 0.580000 +vt 0.849246 0.580000 +vt 0.864322 0.580000 +vt 0.839196 0.580000 +vt 0.849246 0.570000 +vt 0.864322 0.570000 +vt 0.839196 0.570000 +vt 0.844221 0.570000 +vt 0.844221 0.560000 +vt 0.849246 0.560000 +vt 0.864368 0.600000 +vt 0.865827 0.592995 +vt 0.869347 0.590093 +vt 0.864322 0.560000 +vt 0.849246 0.550000 +vt 0.864322 0.540000 +vt 0.864322 0.550000 +vt 0.839196 0.550000 +vt 0.844221 0.540000 +vt 0.844221 0.550000 +vt 0.849246 0.540000 +vt 0.864322 0.530000 +vt 0.839196 0.540000 +vt 0.844221 0.530000 +vt 0.849246 0.530000 +vt 0.849246 0.610000 +vt 0.864322 0.600000 +vt 0.864322 0.610000 +vt 0.839196 0.610000 +vt 0.844221 0.600000 +vt 0.844221 0.610000 +vt 0.849246 0.600000 +vt 0.849246 0.590000 +vt 0.864322 0.590000 +vt 0.839196 0.590000 +vt 0.844221 0.590000 +vt 0.849246 0.580000 +vt 0.864322 0.580000 +vt 0.844221 0.580000 +vt 0.849246 0.570000 +vt 0.864322 0.570000 +vt 0.839196 0.570000 +vt 0.844221 0.570000 +vt 0.844221 0.560000 +vt 0.849246 0.560000 +vt 0.864368 0.600000 +vt 0.865827 0.592995 +vt 0.869347 0.590093 +vt 0.864322 0.560000 +vt 0.864321 0.370000 +vt 0.869346 0.370000 +vt 0.859296 0.370000 +vt 0.854271 0.370000 +vt 0.849246 0.370000 +vt 0.844221 0.370000 +vt 0.839196 0.370000 +vt 0.899496 0.370000 +vt 0.894471 0.370000 +vt 0.889446 0.370000 +vt 0.884421 0.370000 +vt 0.879396 0.370000 +vt 0.874371 0.370000 +vt 0.864322 0.410000 +vt 0.889447 0.410000 +vt 0.849246 0.410000 +vt 0.844221 0.410000 +vt 0.869347 0.410000 +vt 0.859297 0.410000 +vt 0.884422 0.410000 +vt 0.839196 0.410000 +vt 0.854271 0.410000 +vt 0.879397 0.410000 +vt 0.894472 0.410000 +vt 0.874372 0.410000 +vt 0.869347 0.370000 +vt 0.874372 0.370000 +vt 0.879397 0.370000 +vt 0.889448 0.370000 +vt 0.884422 0.370000 +vt 0.899498 0.370000 +vt 0.894473 0.370000 +vt 0.839196 0.370000 +vt 0.849246 0.370000 +vt 0.844221 0.370000 +vt 0.854271 0.370000 +vt 0.864322 0.370000 +vt 0.859297 0.370000 +vt 0.874372 0.410000 +vt 0.844221 0.410000 +vt 0.889447 0.410000 +vt 0.864322 0.410000 +vt 0.879397 0.410000 +vt 0.849246 0.410000 +vt 0.894472 0.410000 +vt 0.884422 0.410000 +vt 0.859297 0.410000 +vt 0.839196 0.410000 +vt 0.892547 0.180000 +vt 0.890826 0.175822 +vt 0.892547 0.175822 +vt 0.886347 0.167567 +vt 0.892548 0.167567 +vt 0.890826 0.171745 +vt 0.890826 0.167567 +vt 0.890826 0.192433 +vt 0.889417 0.192433 +vt 0.890826 0.184178 +vt 0.890826 0.180000 +vt 0.892547 0.188255 +vt 0.890826 0.188255 +vt 0.886347 0.192433 +vt 0.892547 0.180000 +vt 0.890826 0.180000 +vt 0.904523 0.670000 +vt 0.914573 0.640000 +vt 0.889447 0.640000 +vt 0.889447 0.650000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.889447 0.660000 +vt 0.894472 0.660000 +vt 0.909548 0.630000 +vt 0.914573 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.650000 +vt 0.914573 0.660000 +vt 0.899498 0.620000 +vt 0.904523 0.670000 +vt 0.914573 0.640000 +vt 0.889447 0.650000 +vt 0.889447 0.640000 +vt 0.889447 0.630000 +vt 0.894472 0.630000 +vt 0.889447 0.660000 +vt 0.894472 0.660000 +vt 0.909548 0.630000 +vt 0.914573 0.630000 +vt 0.914573 0.660000 +vt 0.909548 0.660000 +vt 0.904523 0.620000 +vt 0.904523 0.670000 +vt 0.914573 0.640000 +vt 0.889447 0.640000 +vt 0.889447 0.650000 +vt 0.889447 0.630000 +vt 0.894472 0.630000 +vt 0.894472 0.660000 +vt 0.889447 0.660000 +vt 0.914573 0.630000 +vt 0.909548 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.650000 +vt 0.914573 0.660000 +vt 0.899498 0.620000 +vt 0.904523 0.620000 +vt 0.889447 0.650000 +vt 0.914573 0.640000 +vt 0.914573 0.650000 +vt 0.914573 0.660000 +vt 0.909548 0.660000 +vt 0.909548 0.630000 +vt 0.914573 0.630000 +vt 0.894472 0.660000 +vt 0.889447 0.660000 +vt 0.894472 0.630000 +vt 0.889447 0.640000 +vt 0.889447 0.630000 +vt 0.904523 0.670000 +vt 0.904523 0.670000 +vt 0.914573 0.650000 +vt 0.889447 0.650000 +vt 0.889447 0.640000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.894472 0.660000 +vt 0.889447 0.660000 +vt 0.914573 0.630000 +vt 0.909548 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.899498 0.620000 +vt 0.904523 0.670000 +vt 0.914573 0.640000 +vt 0.889447 0.650000 +vt 0.889447 0.640000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.894472 0.660000 +vt 0.889447 0.660000 +vt 0.909548 0.630000 +vt 0.914573 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.650000 +vt 0.914573 0.660000 +vt 0.904523 0.620000 +vt 0.904523 0.620000 +vt 0.914573 0.650000 +vt 0.889447 0.650000 +vt 0.894472 0.660000 +vt 0.889447 0.630000 +vt 0.889447 0.640000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.909548 0.630000 +vt 0.914573 0.640000 +vt 0.899498 0.670000 +vt 0.904523 0.620000 +vt 0.914573 0.650000 +vt 0.889447 0.640000 +vt 0.889447 0.650000 +vt 0.889447 0.660000 +vt 0.894472 0.660000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.914573 0.630000 +vt 0.909548 0.630000 +vt 0.899498 0.670000 +vt 0.904523 0.620000 +vt 0.914573 0.640000 +vt 0.914573 0.650000 +vt 0.889447 0.640000 +vt 0.889447 0.650000 +vt 0.894472 0.660000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.909548 0.630000 +vt 0.899498 0.670000 +vt 0.899498 0.620000 +vt 0.904523 0.620000 +vt 0.914573 0.650000 +vt 0.889447 0.650000 +vt 0.894472 0.660000 +vt 0.894472 0.630000 +vt 0.889447 0.640000 +vt 0.889447 0.630000 +vt 0.914573 0.660000 +vt 0.914573 0.630000 +vt 0.909548 0.630000 +vt 0.899498 0.670000 +vt 0.904523 0.620000 +vt 0.914573 0.640000 +vt 0.914573 0.650000 +vt 0.889447 0.640000 +vt 0.889447 0.650000 +vt 0.894472 0.660000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.909548 0.630000 +vt 0.899498 0.670000 +vt 0.904523 0.620000 +vt 0.914573 0.650000 +vt 0.889447 0.640000 +vt 0.889447 0.650000 +vt 0.889447 0.660000 +vt 0.894472 0.660000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.914573 0.660000 +vt 0.914573 0.630000 +vt 0.909548 0.630000 +vt 0.899498 0.670000 +vt 0.869347 0.630000 +vt 0.849246 0.640000 +vt 0.849246 0.630000 +vt 0.869347 0.650000 +vt 0.849246 0.650000 +vt 0.869347 0.660000 +vt 0.849246 0.660000 +vt 0.869347 0.670000 +vt 0.849246 0.670000 +vt 0.880221 0.658725 +vt 0.879571 0.655599 +vt 0.888623 0.658724 +vt 0.869347 0.620000 +vt 0.849246 0.620000 +vt 0.849246 0.610000 +vt 0.844221 0.620000 +vt 0.844221 0.610000 +vt 0.839196 0.610000 +vt 0.844221 0.630000 +vt 0.839196 0.630000 +vt 0.839196 0.620000 +vt 0.844221 0.640000 +vt 0.839196 0.640000 +vt 0.844221 0.650000 +vt 0.844221 0.660000 +vt 0.839196 0.650000 +vt 0.839196 0.670000 +vt 0.839196 0.660000 +vt 0.869347 0.610000 +vt 0.874372 0.620000 +vt 0.874372 0.610000 +vt 0.879397 0.620000 +vt 0.874372 0.630000 +vt 0.879397 0.630000 +vt 0.874372 0.640000 +vt 0.869347 0.640000 +vt 0.879397 0.640000 +vt 0.874372 0.650000 +vt 0.879397 0.650000 +vt 0.874372 0.660000 +vt 0.879397 0.660000 +vt 0.874372 0.670000 +vt 0.879397 0.670000 +vt 0.886888 0.643403 +vt 0.884422 0.644949 +vt 0.881957 0.643403 +vt 0.869347 0.630000 +vt 0.849246 0.640000 +vt 0.849246 0.630000 +vt 0.869347 0.650000 +vt 0.849246 0.650000 +vt 0.869347 0.660000 +vt 0.849246 0.660000 +vt 0.869347 0.670000 +vt 0.849246 0.670000 +vt 0.880221 0.658725 +vt 0.886848 0.662880 +vt 0.881997 0.662880 +vt 0.869347 0.620000 +vt 0.849246 0.620000 +vt 0.849246 0.610000 +vt 0.844221 0.620000 +vt 0.844221 0.610000 +vt 0.839196 0.610000 +vt 0.844221 0.630000 +vt 0.839196 0.630000 +vt 0.839196 0.620000 +vt 0.844221 0.640000 +vt 0.839196 0.640000 +vt 0.844221 0.650000 +vt 0.844221 0.660000 +vt 0.839196 0.650000 +vt 0.839196 0.670000 +vt 0.839196 0.660000 +vt 0.869347 0.610000 +vt 0.874372 0.620000 +vt 0.874372 0.610000 +vt 0.879397 0.620000 +vt 0.874372 0.630000 +vt 0.879397 0.630000 +vt 0.874372 0.640000 +vt 0.869347 0.640000 +vt 0.879397 0.640000 +vt 0.874372 0.650000 +vt 0.879397 0.650000 +vt 0.874372 0.660000 +vt 0.879397 0.660000 +vt 0.874372 0.670000 +vt 0.879397 0.670000 +vt 0.886888 0.643402 +vt 0.884422 0.644949 +vt 0.881957 0.643402 +vt 0.869347 0.630000 +vt 0.849246 0.640000 +vt 0.849246 0.630000 +vt 0.869347 0.650000 +vt 0.849246 0.650000 +vt 0.869347 0.660000 +vt 0.849246 0.660000 +vt 0.869347 0.670000 +vt 0.849246 0.670000 +vt 0.880221 0.658724 +vt 0.879571 0.655599 +vt 0.888623 0.658724 +vt 0.869347 0.620000 +vt 0.849246 0.620000 +vt 0.849246 0.610000 +vt 0.844221 0.620000 +vt 0.844221 0.610000 +vt 0.839196 0.610000 +vt 0.844221 0.630000 +vt 0.839196 0.630000 +vt 0.839196 0.620000 +vt 0.844221 0.640000 +vt 0.839196 0.640000 +vt 0.844221 0.650000 +vt 0.844221 0.660000 +vt 0.839196 0.650000 +vt 0.839196 0.670000 +vt 0.839196 0.660000 +vt 0.869347 0.610000 +vt 0.874372 0.620000 +vt 0.874372 0.610000 +vt 0.879397 0.620000 +vt 0.874372 0.630000 +vt 0.879397 0.630000 +vt 0.874372 0.640000 +vt 0.869347 0.640000 +vt 0.879397 0.640000 +vt 0.874372 0.650000 +vt 0.879397 0.650000 +vt 0.874372 0.660000 +vt 0.879397 0.660000 +vt 0.874372 0.670000 +vt 0.879397 0.670000 +vt 0.886888 0.643403 +vt 0.884422 0.644949 +vt 0.881957 0.643403 +vt 0.904523 0.670000 +vt 0.914573 0.650000 +vt 0.889447 0.650000 +vt 0.889447 0.640000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.889447 0.660000 +vt 0.894472 0.660000 +vt 0.914573 0.640000 +vt 0.909548 0.630000 +vt 0.914573 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.899498 0.620000 +vt 0.904523 0.670000 +vt 0.914573 0.650000 +vt 0.889447 0.650000 +vt 0.889447 0.640000 +vt 0.889447 0.630000 +vt 0.894472 0.630000 +vt 0.889447 0.660000 +vt 0.894472 0.660000 +vt 0.914573 0.630000 +vt 0.909548 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.904523 0.620000 +vt 0.904523 0.670000 +vt 0.914573 0.650000 +vt 0.889447 0.640000 +vt 0.889447 0.650000 +vt 0.889447 0.630000 +vt 0.894472 0.630000 +vt 0.894472 0.660000 +vt 0.889447 0.660000 +vt 0.914573 0.630000 +vt 0.909548 0.630000 +vt 0.914573 0.660000 +vt 0.909548 0.660000 +vt 0.904523 0.620000 +vt 0.904523 0.620000 +vt 0.889447 0.640000 +vt 0.914573 0.640000 +vt 0.914573 0.650000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.914573 0.630000 +vt 0.909548 0.630000 +vt 0.889447 0.660000 +vt 0.894472 0.660000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.904523 0.670000 +vt 0.904523 0.670000 +vt 0.914573 0.650000 +vt 0.889447 0.650000 +vt 0.889447 0.640000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.894472 0.660000 +vt 0.889447 0.660000 +vt 0.914573 0.630000 +vt 0.909548 0.630000 +vt 0.914573 0.660000 +vt 0.909548 0.660000 +vt 0.899498 0.620000 +vt 0.904523 0.670000 +vt 0.914573 0.650000 +vt 0.889447 0.650000 +vt 0.889447 0.640000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.889447 0.660000 +vt 0.894472 0.660000 +vt 0.914573 0.640000 +vt 0.909548 0.630000 +vt 0.914573 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.904523 0.620000 +vt 0.904523 0.620000 +vt 0.914573 0.650000 +vt 0.889447 0.650000 +vt 0.894472 0.660000 +vt 0.889447 0.630000 +vt 0.889447 0.640000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.909548 0.630000 +vt 0.914573 0.640000 +vt 0.899498 0.670000 +vt 0.904523 0.620000 +vt 0.914573 0.650000 +vt 0.889447 0.640000 +vt 0.889447 0.650000 +vt 0.889447 0.660000 +vt 0.894472 0.660000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.909548 0.630000 +vt 0.914573 0.640000 +vt 0.899498 0.670000 +vt 0.904523 0.620000 +vt 0.914573 0.640000 +vt 0.914573 0.650000 +vt 0.889447 0.640000 +vt 0.889447 0.650000 +vt 0.894472 0.660000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.909548 0.630000 +vt 0.899498 0.670000 +vt 0.899498 0.620000 +vt 0.904523 0.620000 +vt 0.914573 0.650000 +vt 0.889447 0.650000 +vt 0.894472 0.660000 +vt 0.894472 0.630000 +vt 0.889447 0.640000 +vt 0.889447 0.630000 +vt 0.914573 0.660000 +vt 0.914573 0.630000 +vt 0.909548 0.630000 +vt 0.899498 0.670000 +vt 0.904523 0.620000 +vt 0.914573 0.640000 +vt 0.914573 0.650000 +vt 0.889447 0.640000 +vt 0.889447 0.650000 +vt 0.894472 0.660000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.909548 0.630000 +vt 0.899498 0.670000 +vt 0.904523 0.620000 +vt 0.914573 0.640000 +vt 0.914573 0.650000 +vt 0.889447 0.640000 +vt 0.889447 0.650000 +vt 0.889447 0.660000 +vt 0.894472 0.660000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.914573 0.660000 +vt 0.914573 0.630000 +vt 0.909548 0.630000 +vt 0.899498 0.670000 +vt 0.904523 0.670000 +vt 0.914573 0.650000 +vt 0.889447 0.650000 +vt 0.889447 0.640000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.889447 0.660000 +vt 0.894472 0.660000 +vt 0.914573 0.640000 +vt 0.909548 0.630000 +vt 0.914573 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.899498 0.620000 +vt 0.904523 0.670000 +vt 0.914573 0.650000 +vt 0.889447 0.650000 +vt 0.889447 0.640000 +vt 0.889447 0.630000 +vt 0.894472 0.630000 +vt 0.889447 0.660000 +vt 0.894472 0.660000 +vt 0.914573 0.640000 +vt 0.909548 0.630000 +vt 0.914573 0.630000 +vt 0.914573 0.660000 +vt 0.909548 0.660000 +vt 0.904523 0.620000 +vt 0.904523 0.670000 +vt 0.914573 0.650000 +vt 0.889447 0.640000 +vt 0.889447 0.650000 +vt 0.889447 0.630000 +vt 0.894472 0.630000 +vt 0.894472 0.660000 +vt 0.889447 0.660000 +vt 0.914573 0.630000 +vt 0.909548 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.899498 0.620000 +vt 0.904523 0.620000 +vt 0.889447 0.640000 +vt 0.914573 0.640000 +vt 0.914573 0.650000 +vt 0.914573 0.660000 +vt 0.909548 0.660000 +vt 0.909548 0.630000 +vt 0.914573 0.630000 +vt 0.889447 0.660000 +vt 0.894472 0.660000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.904523 0.670000 +vt 0.904523 0.670000 +vt 0.914573 0.650000 +vt 0.889447 0.650000 +vt 0.889447 0.640000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.894472 0.660000 +vt 0.889447 0.660000 +vt 0.914573 0.630000 +vt 0.909548 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.899498 0.620000 +vt 0.904523 0.670000 +vt 0.914573 0.650000 +vt 0.889447 0.650000 +vt 0.889447 0.640000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.889447 0.660000 +vt 0.894472 0.660000 +vt 0.914573 0.640000 +vt 0.909548 0.630000 +vt 0.914573 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.904523 0.620000 +vt 0.904523 0.620000 +vt 0.914573 0.650000 +vt 0.889447 0.650000 +vt 0.894472 0.660000 +vt 0.889447 0.630000 +vt 0.889447 0.640000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.909548 0.630000 +vt 0.914573 0.640000 +vt 0.899498 0.670000 +vt 0.904523 0.620000 +vt 0.914573 0.650000 +vt 0.889447 0.650000 +vt 0.889447 0.660000 +vt 0.894472 0.660000 +vt 0.894472 0.630000 +vt 0.889447 0.640000 +vt 0.889447 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.909548 0.630000 +vt 0.914573 0.640000 +vt 0.899498 0.670000 +vt 0.904523 0.620000 +vt 0.914573 0.640000 +vt 0.914573 0.650000 +vt 0.889447 0.640000 +vt 0.889447 0.650000 +vt 0.894472 0.660000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.909548 0.630000 +vt 0.899498 0.670000 +vt 0.899498 0.620000 +vt 0.904523 0.620000 +vt 0.914573 0.650000 +vt 0.889447 0.650000 +vt 0.894472 0.660000 +vt 0.894472 0.630000 +vt 0.889447 0.640000 +vt 0.889447 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.914573 0.630000 +vt 0.909548 0.630000 +vt 0.899498 0.670000 +vt 0.904523 0.620000 +vt 0.914573 0.640000 +vt 0.914573 0.650000 +vt 0.889447 0.640000 +vt 0.889447 0.650000 +vt 0.894472 0.660000 +vt 0.894472 0.630000 +vt 0.889447 0.630000 +vt 0.909548 0.660000 +vt 0.914573 0.660000 +vt 0.914573 0.630000 +vt 0.909548 0.630000 +vt 0.899498 0.670000 +vt 0.904523 0.620000 +vt 0.914573 0.650000 +vt 0.889447 0.650000 +vt 0.894472 0.660000 +vt 0.889447 0.630000 +vt 0.889447 0.640000 +vt 0.914573 0.660000 +vt 0.914573 0.630000 +vt 0.909548 0.630000 +vt 0.899498 0.670000 +vt 0.892547 0.180000 +vt 0.890826 0.175822 +vt 0.892547 0.175822 +vt 0.886347 0.167567 +vt 0.892548 0.167567 +vt 0.890826 0.171745 +vt 0.890826 0.167567 +vt 0.890826 0.192433 +vt 0.889417 0.192433 +vt 0.890826 0.184178 +vt 0.890826 0.180000 +vt 0.892547 0.188255 +vt 0.890826 0.188255 +vt 0.886347 0.192433 +vt 0.892547 0.180000 +vt 0.890826 0.180000 +vt 0.892547 0.180000 +vt 0.890826 0.175822 +vt 0.892547 0.175822 +vt 0.886347 0.167567 +vt 0.892548 0.167567 +vt 0.890826 0.171745 +vt 0.890826 0.167567 +vt 0.890826 0.192433 +vt 0.889417 0.192433 +vt 0.890826 0.184178 +vt 0.890826 0.180000 +vt 0.892547 0.188255 +vt 0.890826 0.188255 +vt 0.886347 0.192433 +vt 0.892547 0.180000 +vt 0.890826 0.180000 +vt 0.892547 0.180000 +vt 0.890826 0.175822 +vt 0.892547 0.175822 +vt 0.886347 0.167567 +vt 0.892548 0.167567 +vt 0.890826 0.171745 +vt 0.890826 0.167567 +vt 0.890826 0.192433 +vt 0.889417 0.192433 +vt 0.890826 0.184178 +vt 0.890826 0.180000 +vt 0.892547 0.188255 +vt 0.890826 0.188255 +vt 0.886347 0.192433 +vt 0.892547 0.180000 +vt 0.890826 0.180000 +vt 0.892547 0.175822 +vt 0.890826 0.180000 +vt 0.890826 0.175822 +vt 0.886347 0.167567 +vt 0.892548 0.167567 +vt 0.890826 0.171745 +vt 0.890826 0.167567 +vt 0.890826 0.192433 +vt 0.889417 0.192433 +vt 0.890826 0.184178 +vt 0.892547 0.188255 +vt 0.890826 0.188255 +vt 0.886347 0.192433 +vt 0.892547 0.180000 +vt 0.890826 0.180000 +vt 0.892547 0.180000 +vt 0.890826 0.175822 +vt 0.892547 0.175822 +vt 0.886347 0.167567 +vt 0.892548 0.167567 +vt 0.890826 0.171745 +vt 0.890826 0.167567 +vt 0.890826 0.192433 +vt 0.889417 0.192433 +vt 0.890826 0.184178 +vt 0.890826 0.180000 +vt 0.892547 0.188255 +vt 0.890826 0.188255 +vt 0.886347 0.192433 +vt 0.892547 0.180000 +vt 0.890826 0.180000 +vt 0.892547 0.180000 +vt 0.890826 0.175822 +vt 0.892547 0.175822 +vt 0.886347 0.167567 +vt 0.892548 0.167567 +vt 0.890826 0.171745 +vt 0.890826 0.167567 +vt 0.890826 0.192433 +vt 0.889417 0.192433 +vt 0.890826 0.184178 +vt 0.890826 0.180000 +vt 0.892547 0.188255 +vt 0.890826 0.188255 +vt 0.886347 0.192433 +vt 0.892547 0.180000 +vt 0.890826 0.180000 +vt 0.892547 0.180000 +vt 0.890826 0.175822 +vt 0.892547 0.175822 +vt 0.886347 0.167567 +vt 0.892548 0.167567 +vt 0.890826 0.171745 +vt 0.890826 0.167567 +vt 0.890826 0.192433 +vt 0.889417 0.192433 +vt 0.890826 0.184178 +vt 0.890826 0.180000 +vt 0.892547 0.188255 +vt 0.890826 0.188255 +vt 0.886347 0.192433 +vt 0.892547 0.180000 +vt 0.890826 0.180000 +vt 0.892547 0.180000 +vt 0.890826 0.175822 +vt 0.892547 0.175822 +vt 0.886347 0.167567 +vt 0.892548 0.167567 +vt 0.890826 0.171745 +vt 0.890826 0.167567 +vt 0.890826 0.192433 +vt 0.889417 0.192433 +vt 0.890826 0.184178 +vt 0.890826 0.180000 +vt 0.892547 0.188255 +vt 0.890826 0.188255 +vt 0.886347 0.192433 +vt 0.892547 0.180000 +vt 0.890826 0.180000 +vt 0.892547 0.180000 +vt 0.890826 0.175822 +vt 0.892547 0.175822 +vt 0.886347 0.167567 +vt 0.892548 0.167567 +vt 0.890826 0.171745 +vt 0.890826 0.167567 +vt 0.890826 0.192433 +vt 0.889417 0.192433 +vt 0.890826 0.184178 +vt 0.890826 0.180000 +vt 0.892547 0.188255 +vt 0.890826 0.188255 +vt 0.886347 0.192433 +vt 0.892547 0.180000 +vt 0.890826 0.180000 +vt 0.892547 0.180000 +vt 0.890826 0.175822 +vt 0.892547 0.175822 +vt 0.886347 0.167567 +vt 0.892548 0.167567 +vt 0.890826 0.171745 +vt 0.890826 0.167567 +vt 0.890826 0.192433 +vt 0.889417 0.192433 +vt 0.890826 0.184178 +vt 0.890826 0.180000 +vt 0.892547 0.188255 +vt 0.890826 0.188255 +vt 0.886347 0.192433 +vt 0.892547 0.180000 +vt 0.890826 0.180000 +vt 0.892547 0.180000 +vt 0.890826 0.175822 +vt 0.892547 0.175822 +vt 0.886347 0.167567 +vt 0.892548 0.167567 +vt 0.890826 0.171745 +vt 0.890826 0.167567 +vt 0.890826 0.192433 +vt 0.889417 0.192433 +vt 0.890826 0.184178 +vt 0.890826 0.180000 +vt 0.892547 0.188255 +vt 0.890826 0.188255 +vt 0.886347 0.192433 +vt 0.892547 0.180000 +vt 0.890826 0.180000 +vt 0.879571 0.655599 +vt 0.889273 0.655599 +vt 0.888623 0.658724 +vt 0.884422 0.664401 +vt 0.844221 0.670000 +vt 0.879397 0.610000 +vt 0.880152 0.639179 +vt 0.888693 0.639179 +vt 0.879491 0.635051 +vt 0.889353 0.635051 +vt 0.045226 0.880000 +vt 0.085427 0.090000 +vt 0.045226 0.480000 +vt 0.045226 0.680000 +vt 0.045226 0.580000 +vt 0.015075 0.270000 +vt 0.015075 0.970000 +vt 0.015075 0.170000 +vt 0.015075 0.770000 +vt 0.967295 0.840936 +vt 0.968989 0.847779 +vt 0.969538 0.855329 +vt 0.968887 0.862846 +vt 0.967101 0.869596 +vt 0.964355 0.874917 +vt 0.960916 0.878289 +vt 0.957122 0.879380 +vt 0.949953 0.874532 +vt 0.947279 0.869066 +vt 0.945585 0.862223 +vt 0.945687 0.847156 +vt 0.947473 0.840406 +vt 0.950219 0.835085 +vt 0.957452 0.830621 +vt 0.961229 0.831916 +vt 0.964621 0.835470 +vt 0.512563 0.410000 +vt 0.512563 0.010000 +vt 0.512563 0.610000 +vt 0.839196 0.310000 +vt 0.839196 0.610000 +vt 0.839196 0.510000 +vt 0.839196 0.210000 +vt 0.839196 0.810000 +vt 0.839196 0.410000 +vt 0.839196 0.110000 +vt 0.839196 0.710000 +vt 0.839196 0.530000 +vt 0.839196 0.610000 +vt 0.872867 0.592995 +vt 0.874325 0.600000 +vt 0.872867 0.607005 +vt 0.869347 0.609907 +vt 0.865827 0.607005 +vt 0.839196 0.560000 +vt 0.839196 0.530000 +vt 0.839196 0.600000 +vt 0.839196 0.580000 +vt 0.872867 0.592994 +vt 0.874325 0.600000 +vt 0.872867 0.607005 +vt 0.869347 0.609907 +vt 0.865827 0.607005 +vt 0.839196 0.560000 +vt 0.899498 0.410000 +vt 0.869347 0.410000 +vt 0.854271 0.410000 +vt 0.899498 0.410000 +vt 0.889417 0.167567 +vt 0.892547 0.171745 +vt 0.892547 0.192433 +vt 0.892547 0.184178 +vt 0.899498 0.670000 +vt 0.904523 0.620000 +vt 0.899498 0.670000 +vt 0.914573 0.650000 +vt 0.899498 0.620000 +vt 0.899498 0.670000 +vt 0.904523 0.620000 +vt 0.899498 0.620000 +vt 0.899498 0.670000 +vt 0.899498 0.670000 +vt 0.914573 0.640000 +vt 0.904523 0.620000 +vt 0.899498 0.670000 +vt 0.899498 0.620000 +vt 0.899498 0.620000 +vt 0.889447 0.660000 +vt 0.894472 0.630000 +vt 0.914573 0.630000 +vt 0.904523 0.670000 +vt 0.899498 0.620000 +vt 0.914573 0.640000 +vt 0.904523 0.670000 +vt 0.899498 0.620000 +vt 0.889447 0.660000 +vt 0.914573 0.630000 +vt 0.904523 0.670000 +vt 0.914573 0.640000 +vt 0.889447 0.660000 +vt 0.909548 0.660000 +vt 0.904523 0.670000 +vt 0.899498 0.620000 +vt 0.889447 0.660000 +vt 0.914573 0.630000 +vt 0.904523 0.670000 +vt 0.899498 0.620000 +vt 0.914573 0.640000 +vt 0.909548 0.660000 +vt 0.904523 0.670000 +vt 0.889273 0.655599 +vt 0.886848 0.662880 +vt 0.881997 0.662880 +vt 0.884422 0.664401 +vt 0.844221 0.670000 +vt 0.879397 0.610000 +vt 0.880152 0.639179 +vt 0.888693 0.639179 +vt 0.879491 0.635051 +vt 0.889353 0.635051 +vt 0.879571 0.655599 +vt 0.889273 0.655599 +vt 0.888623 0.658725 +vt 0.884422 0.664401 +vt 0.844221 0.670000 +vt 0.879397 0.610000 +vt 0.880152 0.639179 +vt 0.888692 0.639179 +vt 0.879491 0.635051 +vt 0.889353 0.635051 +vt 0.889273 0.655599 +vt 0.886848 0.662880 +vt 0.881997 0.662880 +vt 0.884422 0.664401 +vt 0.844221 0.670000 +vt 0.879397 0.610000 +vt 0.880152 0.639179 +vt 0.888693 0.639179 +vt 0.879491 0.635051 +vt 0.889353 0.635051 +vt 0.899498 0.670000 +vt 0.904523 0.620000 +vt 0.899498 0.670000 +vt 0.914573 0.640000 +vt 0.899498 0.620000 +vt 0.899498 0.670000 +vt 0.914573 0.640000 +vt 0.899498 0.620000 +vt 0.899498 0.620000 +vt 0.889447 0.650000 +vt 0.899498 0.670000 +vt 0.899498 0.670000 +vt 0.914573 0.640000 +vt 0.904523 0.620000 +vt 0.899498 0.670000 +vt 0.899498 0.620000 +vt 0.899498 0.620000 +vt 0.889447 0.660000 +vt 0.894472 0.630000 +vt 0.914573 0.630000 +vt 0.904523 0.670000 +vt 0.899498 0.620000 +vt 0.914573 0.630000 +vt 0.904523 0.670000 +vt 0.899498 0.620000 +vt 0.889447 0.660000 +vt 0.914573 0.630000 +vt 0.904523 0.670000 +vt 0.914573 0.640000 +vt 0.889447 0.660000 +vt 0.909548 0.660000 +vt 0.904523 0.670000 +vt 0.899498 0.620000 +vt 0.889447 0.660000 +vt 0.914573 0.630000 +vt 0.904523 0.670000 +vt 0.899498 0.620000 +vt 0.909548 0.660000 +vt 0.904523 0.670000 +vt 0.899498 0.670000 +vt 0.904523 0.620000 +vt 0.899498 0.670000 +vt 0.899498 0.620000 +vt 0.899498 0.670000 +vt 0.914573 0.640000 +vt 0.904523 0.620000 +vt 0.899498 0.620000 +vt 0.889447 0.650000 +vt 0.899498 0.670000 +vt 0.899498 0.670000 +vt 0.914573 0.640000 +vt 0.904523 0.620000 +vt 0.899498 0.670000 +vt 0.899498 0.620000 +vt 0.899498 0.620000 +vt 0.889447 0.660000 +vt 0.894472 0.630000 +vt 0.914573 0.630000 +vt 0.904523 0.670000 +vt 0.899498 0.620000 +vt 0.914573 0.630000 +vt 0.904523 0.670000 +vt 0.899498 0.620000 +vt 0.889447 0.660000 +vt 0.914573 0.630000 +vt 0.904523 0.670000 +vt 0.914573 0.640000 +vt 0.889447 0.660000 +vt 0.904523 0.670000 +vt 0.899498 0.620000 +vt 0.889447 0.660000 +vt 0.904523 0.670000 +vt 0.899498 0.620000 +vt 0.914573 0.640000 +vt 0.889447 0.660000 +vt 0.894472 0.630000 +vt 0.909548 0.660000 +vt 0.904523 0.670000 +vt 0.889417 0.167567 +vt 0.892547 0.171745 +vt 0.892547 0.192433 +vt 0.892547 0.184178 +vt 0.889417 0.167567 +vt 0.892547 0.171745 +vt 0.892547 0.192433 +vt 0.892547 0.184178 +vt 0.889417 0.167567 +vt 0.892547 0.171745 +vt 0.892547 0.192433 +vt 0.892547 0.184178 +vt 0.892547 0.180000 +vt 0.889417 0.167567 +vt 0.892547 0.171745 +vt 0.892547 0.192433 +vt 0.892547 0.184178 +vt 0.889417 0.167567 +vt 0.892547 0.171745 +vt 0.892547 0.192433 +vt 0.892547 0.184178 +vt 0.889417 0.167567 +vt 0.892547 0.171745 +vt 0.892547 0.192433 +vt 0.892547 0.184178 +vt 0.889417 0.167567 +vt 0.892547 0.171745 +vt 0.892547 0.192433 +vt 0.892547 0.184178 +vt 0.889417 0.167567 +vt 0.892547 0.171745 +vt 0.892547 0.192433 +vt 0.892547 0.184178 +vt 0.889417 0.167567 +vt 0.892547 0.171745 +vt 0.892547 0.192433 +vt 0.892547 0.184178 +vt 0.889417 0.167567 +vt 0.892547 0.171745 +vt 0.892547 0.192433 +vt 0.892547 0.184178 +vt 0.889417 0.167567 +vt 0.892547 0.171745 +vt 0.892547 0.192433 +vt 0.892547 0.184178 +vn -1.0000 -0.0000 0.0000 +vn 0.0000 0.3907 -0.9205 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -0.3907 0.9205 +vn 0.0000 0.8137 0.5813 +vn 0.0000 0.8079 -0.5893 +vn 0.0000 0.9986 0.0523 +vn 0.0000 0.2726 0.9621 +vn -0.0000 -0.6489 0.7609 +vn 0.0000 -0.1777 -0.9841 +vn -0.0000 -0.9986 -0.0523 +vn 0.0000 0.9834 0.1815 +vn 0.0000 0.9205 0.3907 +vn 0.0000 0.3907 0.9205 +vn 0.0000 -0.3907 -0.9205 +vn 0.0000 0.8137 -0.5813 +vn 0.0000 0.8080 0.5892 +vn 0.0000 0.9986 -0.0523 +vn 0.0000 0.2726 -0.9621 +vn -0.0000 -0.6489 -0.7609 +vn 0.0000 -0.1777 0.9841 +vn 0.0000 -0.9986 0.0523 +vn 0.0000 0.9834 -0.1815 +vn 0.0000 0.9205 -0.3907 +vn 0.0000 -0.1569 0.9876 +vn 0.0000 -0.1569 -0.9876 +vn 0.0000 0.2588 -0.9659 +vn 0.0000 -0.2588 0.9659 +vn -0.8553 0.5004 0.1341 +vn 0.8553 0.5004 0.1341 +vn 0.0000 0.1772 0.9842 +vn 0.0000 0.6455 -0.7637 +vn 0.0000 0.9659 0.2588 +vn -0.5301 -0.8190 -0.2194 +vn -0.0001 0.2588 -0.9659 +vn 0.0866 0.9623 0.2578 +vn 0.0006 -0.2588 0.9659 +vn -0.0254 -0.9656 -0.2587 +vn 0.0006 0.2588 -0.9659 +vn -0.9611 0.2669 0.0715 +vn -0.9703 -0.2337 -0.0626 +vn -0.5543 0.8040 0.2154 +vn 0.3200 0.9151 0.2452 +vn 0.8916 0.4374 0.1172 +vn 0.6727 -0.7147 -0.1915 +vn 0.0000 1.0000 -0.0001 +vn -0.0000 0.8598 0.5106 +vn 0.0000 0.5281 0.8492 +vn 0.0000 0.0785 0.9969 +vn 0.0000 -0.3810 0.9246 +vn 0.0000 -0.7591 0.6510 +vn 0.0000 -0.9729 0.2312 +vn 0.0000 -0.9727 -0.2321 +vn 0.0000 -0.7630 -0.6463 +vn 0.0000 -0.3787 -0.9255 +vn 0.0000 0.0814 -0.9967 +vn 0.0000 0.5273 -0.8496 +vn 0.0000 0.8511 -0.5251 +vn 0.0000 0.8910 0.4540 +vn 0.0000 0.3885 0.9215 +vn 0.0000 -0.0000 1.0000 +vn 0.0000 0.8910 -0.4540 +vn 0.0000 0.3884 -0.9215 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.3885 -0.9215 +vn 0.3827 0.9239 0.0000 +vn 0.9239 0.3827 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -0.7881 -0.6156 -0.0000 +vn -0.7315 0.3095 -0.6075 +vn 0.0000 0.4540 0.8910 +vn -0.0000 0.4540 -0.8910 +vn 0.0000 -0.8910 0.4540 +vn 0.7315 0.3095 -0.6075 +vn -0.7315 0.3095 0.6075 +vn 0.7315 0.3095 0.6075 +vn 0.0000 -0.8910 -0.4540 +vn 0.0000 -0.8387 0.5446 +vn 0.0000 -0.9922 -0.1243 +vn 0.0000 -0.8660 -0.5000 +vn 0.0000 -0.0524 0.9986 +vn 0.0000 0.6038 0.7972 +vn 0.0000 0.8660 0.5000 +vn 0.0000 -0.0523 0.9986 +vn 0.0000 0.6038 0.7971 +vn 0.3827 -0.4619 0.8001 +vn 0.9239 -0.1913 0.3314 +vn 0.0000 -0.5000 0.8660 +vn 0.0000 0.5000 -0.8660 +vn -0.7881 0.3078 -0.5331 +vn 0.0000 -0.0523 -0.9986 +vn 0.0000 0.6038 -0.7971 +vn 0.0000 0.8660 -0.5000 +vn 0.0000 -0.8387 -0.5447 +vn 0.0000 -0.9922 0.1243 +vn 0.0000 -0.8660 0.5000 +vn 0.0000 -0.8387 -0.5446 +vn 0.3827 -0.4619 -0.8001 +vn 0.9239 -0.1913 -0.3314 +vn 0.0000 -0.5000 -0.8660 +vn 0.0000 0.5000 0.8660 +vn -0.7881 0.3078 0.5331 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 -0.7071 0.7071 +vn -0.8553 0.3664 0.3663 +vn 0.8553 0.3664 0.3663 +vn 0.0000 -0.3387 0.9409 +vn 0.0000 0.9409 -0.3387 +vn 0.0000 0.7071 0.7071 +vn -0.8553 0.3663 0.3663 +vn -0.5301 -0.5996 -0.5996 +vn -0.0001 0.7071 -0.7071 +vn 0.0866 0.7045 0.7044 +vn 0.0006 -0.7071 0.7071 +vn -0.0254 -0.7069 -0.7069 +vn 0.0006 0.7071 -0.7071 +vn -0.9610 0.1954 0.1954 +vn -0.9703 -0.1711 -0.1711 +vn -0.5543 0.5885 0.5885 +vn 0.3200 0.6699 0.6699 +vn 0.8916 0.3202 0.3202 +vn 0.6727 -0.5232 -0.5232 +vn 0.0000 0.9659 -0.2588 +vn 0.0000 -0.9659 0.2588 +vn -0.8553 0.1341 0.5004 +vn 0.8553 0.1341 0.5004 +vn 0.0000 -0.7637 0.6455 +vn 0.0000 0.9842 0.1772 +vn 0.0000 0.2588 0.9659 +vn -0.5301 -0.2195 -0.8190 +vn -0.0001 0.9659 -0.2588 +vn 0.0866 0.2579 0.9623 +vn 0.0006 -0.9659 0.2588 +vn -0.0254 -0.2588 -0.9656 +vn 0.0006 0.9659 -0.2588 +vn -0.9611 0.0715 0.2669 +vn -0.9703 -0.0626 -0.2337 +vn -0.5543 0.2154 0.8040 +vn 0.3200 0.2452 0.9151 +vn 0.8916 0.1172 0.4374 +vn 0.6727 -0.1915 -0.7147 +vn 0.0000 -0.9659 -0.2588 +vn -0.8553 -0.1341 0.5004 +vn 0.8553 -0.1341 0.5004 +vn 0.0000 -0.9842 0.1772 +vn 0.0000 0.7637 0.6455 +vn -0.5301 0.2194 -0.8190 +vn -0.0001 0.9659 0.2588 +vn 0.0866 -0.2578 0.9623 +vn 0.0006 -0.9659 -0.2588 +vn -0.0254 0.2587 -0.9656 +vn 0.0006 0.9659 0.2588 +vn -0.9611 -0.0715 0.2669 +vn -0.9703 0.0626 -0.2337 +vn -0.5543 -0.2154 0.8040 +vn 0.3200 -0.2452 0.9151 +vn 0.8916 -0.1172 0.4374 +vn 0.6727 0.1915 -0.7147 +vn 0.0000 -0.7071 -0.7071 +vn -0.8553 -0.3663 0.3664 +vn 0.8553 -0.3663 0.3664 +vn 0.0000 -0.9409 -0.3386 +vn 0.0000 0.3387 0.9409 +vn -0.8553 -0.3663 0.3663 +vn -0.5301 0.5996 -0.5996 +vn -0.0001 0.7071 0.7071 +vn 0.0866 -0.7044 0.7045 +vn 0.0006 -0.7071 -0.7071 +vn -0.0254 0.7069 -0.7069 +vn 0.0006 0.7071 0.7071 +vn -0.9611 -0.1954 0.1954 +vn -0.9703 0.1711 -0.1711 +vn -0.5543 -0.5885 0.5885 +vn 0.3200 -0.6699 0.6699 +vn 0.8916 -0.3202 0.3202 +vn 0.6727 0.5232 -0.5232 +vn 0.0000 -0.2588 -0.9659 +vn -0.8553 -0.5004 0.1341 +vn 0.8553 -0.5004 0.1341 +vn 0.0000 -0.6455 -0.7637 +vn 0.0000 -0.1772 0.9842 +vn -0.5301 0.8190 -0.2195 +vn -0.0001 0.2588 0.9659 +vn 0.0866 -0.9623 0.2579 +vn 0.0006 -0.2588 -0.9659 +vn -0.0254 0.9656 -0.2588 +vn 0.0006 0.2588 0.9659 +vn -0.9610 -0.2670 0.0715 +vn -0.9703 0.2337 -0.0626 +vn -0.5543 -0.8040 0.2154 +vn 0.3200 -0.9151 0.2452 +vn 0.8916 -0.4374 0.1172 +vn 0.6727 0.7147 -0.1915 +vn -0.8553 -0.5004 -0.1341 +vn 0.8553 -0.5004 -0.1341 +vn 0.0000 -0.1772 -0.9842 +vn 0.0000 -0.6455 0.7637 +vn -0.5301 0.8190 0.2195 +vn -0.0001 -0.2588 0.9659 +vn 0.0866 -0.9623 -0.2578 +vn -0.0254 0.9656 0.2587 +vn -0.9611 -0.2669 -0.0715 +vn -0.9703 0.2337 0.0626 +vn -0.5543 -0.8040 -0.2154 +vn 0.3200 -0.9151 -0.2452 +vn 0.8916 -0.4374 -0.1172 +vn 0.6727 0.7147 0.1915 +vn -0.8553 -0.3664 -0.3663 +vn 0.8553 -0.3663 -0.3663 +vn 0.0000 0.3387 -0.9409 +vn 0.0000 -0.9409 0.3386 +vn -0.5301 0.5996 0.5996 +vn -0.0001 -0.7071 0.7071 +vn 0.0866 -0.7045 -0.7044 +vn -0.0254 0.7069 0.7069 +vn -0.9611 -0.1954 -0.1954 +vn -0.9703 0.1711 0.1711 +vn -0.5543 -0.5885 -0.5885 +vn 0.3200 -0.6699 -0.6699 +vn 0.8916 -0.3202 -0.3202 +vn 0.6727 0.5232 0.5232 +vn -0.8553 -0.1341 -0.5004 +vn 0.8553 -0.1341 -0.5004 +vn 0.0000 0.7637 -0.6455 +vn 0.0000 -0.9842 -0.1772 +vn -0.5301 0.2195 0.8190 +vn -0.0001 -0.9659 0.2588 +vn 0.0866 -0.2579 -0.9623 +vn -0.0254 0.2588 0.9656 +vn -0.9611 -0.0715 -0.2669 +vn -0.9703 0.0626 0.2337 +vn -0.5543 -0.2154 -0.8040 +vn 0.3200 -0.2452 -0.9151 +vn 0.8916 -0.1172 -0.4374 +vn 0.6727 0.1915 0.7147 +vn -0.8553 0.1340 -0.5004 +vn 0.8553 0.1341 -0.5004 +vn 0.0000 0.9842 -0.1772 +vn 0.0000 -0.7637 -0.6455 +vn -0.8553 0.1341 -0.5004 +vn -0.5301 -0.2195 0.8190 +vn -0.0001 -0.9659 -0.2588 +vn 0.0866 0.2578 -0.9623 +vn -0.0254 -0.2587 0.9656 +vn -0.9611 0.0715 -0.2669 +vn -0.9703 -0.0626 0.2337 +vn -0.5543 0.2154 -0.8040 +vn 0.3200 0.2452 -0.9151 +vn 0.8916 0.1172 -0.4374 +vn 0.6727 -0.1915 0.7147 +vn -0.8553 0.3663 -0.3664 +vn 0.8553 0.3663 -0.3663 +vn 0.0000 0.9409 0.3386 +vn 0.0000 -0.3387 -0.9409 +vn -0.5301 -0.5996 0.5996 +vn -0.0001 -0.7071 -0.7071 +vn 0.0866 0.7044 -0.7045 +vn -0.0254 -0.7069 0.7069 +vn -0.9610 0.1954 -0.1954 +vn -0.9703 -0.1711 0.1711 +vn -0.5543 0.5886 -0.5885 +vn 0.3200 0.6699 -0.6699 +vn 0.8916 0.3202 -0.3202 +vn 0.6727 -0.5232 0.5232 +vn -0.8553 0.5004 -0.1341 +vn 0.8553 0.5004 -0.1341 +vn 0.0000 0.6455 0.7637 +vn 0.0000 0.1772 -0.9842 +vn -0.5301 -0.8190 0.2195 +vn -0.0001 -0.2588 -0.9659 +vn 0.0866 0.9623 -0.2579 +vn -0.0254 -0.9656 0.2588 +vn -0.9610 0.2670 -0.0715 +vn -0.9703 -0.2337 0.0626 +vn -0.5543 0.8040 -0.2154 +vn 0.3200 0.9151 -0.2452 +vn 0.8916 0.4374 -0.1172 +vn 0.6727 -0.7147 0.1915 +vn 0.0000 0.8080 0.5893 +vn -0.0254 -0.9656 -0.2588 +vn -0.9610 0.2670 0.0715 +vn -0.5543 0.8039 0.2154 +vn 0.0000 -0.7591 0.6509 +vn 0.0000 0.5274 -0.8496 +vn 0.0000 0.3884 0.9215 +vn -0.7881 -0.6155 0.0000 +vn 0.0000 -0.8387 0.5447 +vn 0.0000 0.6038 -0.7972 +vn 0.8553 0.3663 0.3663 +vn 0.0000 0.9409 -0.3386 +vn 0.0866 0.7044 0.7045 +vn -0.9611 0.1954 0.1954 +vn -0.0000 -0.9659 0.2589 +vn 0.0866 0.2578 0.9623 +vn -0.0254 -0.2587 -0.9656 +vn -0.5301 0.2195 -0.8190 +vn 0.0866 -0.2579 0.9623 +vn -0.0254 0.2588 -0.9656 +vn -0.9611 -0.0715 0.2670 +vn 0.8553 -0.3663 0.3663 +vn 0.0000 -0.9409 -0.3387 +vn 0.0866 -0.7045 0.7044 +vn -0.9610 -0.1954 0.1954 +vn -0.9703 0.1710 -0.1711 +vn 0.0866 -0.9623 0.2578 +vn -0.0254 0.9656 -0.2587 +vn -0.9611 -0.2669 0.0715 +vn -0.5301 0.8190 0.2194 +vn -0.0254 0.9656 0.2588 +vn -0.0000 0.2589 -0.9659 +vn 0.0000 -0.9409 0.3387 +vn -0.8553 -0.3663 -0.3663 +vn 0.0866 -0.7044 -0.7045 +vn -0.9610 -0.1954 -0.1954 +vn -0.0000 0.9659 -0.2589 +vn 0.0866 -0.2578 -0.9623 +vn -0.0254 0.2587 0.9656 +vn -0.9611 -0.0715 -0.2670 +vn -0.5301 -0.2194 0.8190 +vn 0.0866 0.2579 -0.9623 +vn -0.0254 -0.2588 0.9656 +vn -0.9611 0.0715 -0.2670 +vn -0.8553 0.3663 -0.3663 +vn 0.8553 0.3663 -0.3664 +vn 0.0000 0.9409 0.3387 +vn 0.0866 0.7045 -0.7044 +vn -0.9611 0.1954 -0.1954 +vn -0.9703 -0.1710 0.1711 +vn -0.5543 0.5885 -0.5885 +vn 0.0866 0.9623 -0.2578 +vn -0.0254 -0.9656 0.2587 +vn -0.9611 0.2669 -0.0715 +vn -0.1484 0.9718 0.1832 +vn 0.2193 0.7003 0.6793 +vn 0.2207 0.9548 0.1989 +vn -0.1362 0.2058 0.9691 +vn 0.2323 0.2268 0.9458 +vn -0.0878 -0.2912 0.9526 +vn 0.2563 -0.2412 0.9360 +vn -0.0599 -0.4966 0.8659 +vn 0.2606 -0.4321 0.8634 +vn 0.9315 0.0185 0.3634 +vn 0.9150 0.3857 0.1185 +vn 0.9188 0.1426 0.3680 +vn -0.1074 0.9434 -0.3139 +vn 0.2376 0.9334 -0.2690 +vn 0.2401 0.8559 -0.4580 +vn 0.6185 0.7666 -0.1725 +vn 0.6022 0.7283 -0.3270 +vn 0.9115 0.4026 -0.0841 +vn 0.6147 0.7680 0.1798 +vn 0.9257 0.3782 -0.0057 +vn 0.6179 0.5678 0.5439 +vn 0.9138 0.2979 0.2761 +vn 0.6236 0.2090 0.7533 +vn 0.6330 -0.1431 0.7608 +vn 0.9189 -0.0596 0.3901 +vn -0.0814 0.8519 -0.5174 +vn -0.6382 0.7109 -0.2955 +vn -0.5963 0.6564 -0.4621 +vn -0.9783 0.1436 -0.1493 +vn -0.6797 0.7264 0.1017 +vn -0.9889 0.1441 -0.0351 +vn -0.6959 0.5088 0.5068 +vn -0.1625 0.7053 0.6900 +vn -0.9933 0.0744 0.0879 +vn -0.6698 0.1098 0.7344 +vn -0.9859 -0.0467 0.1607 +vn -0.6223 -0.2870 0.7283 +vn -0.9735 -0.1608 0.1629 +vn -0.5786 -0.4543 0.6774 +vn -0.9610 -0.2130 0.1765 +vn 0.1072 0.0000 -0.9942 +vn -0.0592 -0.3085 -0.9494 +vn -0.0592 0.0000 -0.9982 +vn 0.1072 -0.5844 -0.8044 +vn -0.0592 -0.5868 -0.8076 +vn -0.0592 -0.8076 -0.5868 +vn 0.1072 -0.8044 -0.5844 +vn -0.0592 -0.9494 -0.3085 +vn 0.1072 -0.9456 -0.3072 +vn -0.0592 -0.9982 -0.0000 +vn 0.1072 -0.9942 -0.0000 +vn -0.0592 -0.9494 0.3085 +vn 0.1072 -0.9456 0.3072 +vn -0.0592 -0.8076 0.5868 +vn 0.1072 -0.8044 0.5844 +vn -0.0592 -0.5868 0.8076 +vn 0.1072 -0.3072 0.9456 +vn -0.0592 -0.3085 0.9494 +vn -0.0592 0.0000 0.9982 +vn 0.1072 0.3072 0.9456 +vn -0.0592 0.3085 0.9494 +vn -0.0592 0.5868 0.8076 +vn 0.1072 0.8044 0.5844 +vn -0.0592 0.8076 0.5868 +vn -0.0592 0.9494 0.3085 +vn 0.1072 0.9456 0.3072 +vn -0.0592 0.9982 0.0000 +vn 0.1072 0.9942 -0.0000 +vn -0.0592 0.9494 -0.3085 +vn 0.1072 0.8044 -0.5844 +vn -0.0592 0.8076 -0.5868 +vn -0.0592 0.5868 -0.8076 +vn 0.3239 -0.5561 -0.7654 +vn 0.3239 -0.7654 -0.5561 +vn 0.1072 0.3072 -0.9456 +vn -0.0592 0.3085 -0.9494 +vn -0.0600 -0.9493 -0.3085 +vn -0.0600 -0.8076 -0.5867 +vn 0.3239 -0.7654 0.5561 +vn 0.6069 -0.4672 0.6430 +vn 0.3239 -0.5561 0.7654 +vn 0.1072 -0.5844 0.8044 +vn 0.3239 -0.2924 -0.8998 +vn 0.1072 -0.3072 -0.9456 +vn 0.1072 0.5844 0.8044 +vn 0.3239 0.7654 0.5561 +vn 0.1072 0.5844 -0.8044 +vn 0.3239 0.7654 -0.5561 +vn 0.3239 0.5561 -0.7654 +vn 0.3239 -0.8998 0.2924 +vn 0.1072 -0.0000 0.9942 +vn 0.3239 0.2924 0.8998 +vn 0.1072 0.9456 -0.3072 +vn 0.3239 0.9461 0.0000 +vn 0.3239 0.8998 -0.2924 +vn 0.3239 -0.8998 -0.2924 +vn 0.3239 -0.2924 0.8998 +vn 0.3239 0.8998 0.2924 +vn 0.3239 0.2924 -0.8998 +vn 0.3239 0.5561 0.7654 +vn 0.3239 -0.9461 -0.0000 +vn 0.3239 -0.0000 0.9461 +vn 0.3239 0.0000 -0.9461 +vn 0.6069 -0.7948 0.0000 +vn 0.8573 -0.4896 -0.1591 +vn 0.8573 -0.5148 0.0000 +vn 0.6069 -0.2456 -0.7559 +vn 0.6069 0.7559 -0.2456 +vn 0.6069 -0.2456 0.7559 +vn 0.6069 -0.4672 -0.6430 +vn 0.6069 0.6430 -0.4672 +vn 0.6069 -0.0000 0.7948 +vn 0.6069 -0.6430 -0.4672 +vn 0.6069 0.4672 -0.6430 +vn 0.6069 0.2456 0.7559 +vn 0.6069 -0.7559 -0.2456 +vn 0.6069 0.2456 -0.7559 +vn 0.6069 0.4672 0.6430 +vn 0.6069 0.0000 -0.7948 +vn 0.6069 0.6430 0.4672 +vn 0.6069 -0.7559 0.2456 +vn 0.6069 0.7559 0.2456 +vn 0.6069 -0.6430 0.4672 +vn 0.6069 0.7948 -0.0000 +vn 0.8573 0.4896 0.1591 +vn 0.9802 0.1978 0.0000 +vn 0.8573 0.5148 0.0000 +vn 0.8573 0.0000 -0.5148 +vn 0.8573 0.4165 0.3026 +vn 0.8573 -0.4896 0.1591 +vn 0.8573 -0.4165 0.3026 +vn 0.8573 -0.3026 0.4165 +vn 0.8573 -0.1591 -0.4896 +vn 0.8573 0.4896 -0.1591 +vn 0.8573 -0.1591 0.4896 +vn 0.8573 -0.3026 -0.4165 +vn 0.8573 0.4165 -0.3026 +vn 0.8573 0.0000 0.5148 +vn 0.8573 -0.4165 -0.3026 +vn 0.8573 0.3026 -0.4165 +vn 0.8573 0.1591 0.4896 +vn 0.8573 0.1591 -0.4896 +vn 0.8573 0.3026 0.4165 +vn 0.9803 0.1880 0.0611 +vn 0.9803 -0.0000 0.1977 +vn 0.9803 -0.1880 0.0611 +vn 0.9803 -0.1599 0.1162 +vn 0.9803 -0.1162 0.1600 +vn 0.9803 -0.0611 -0.1880 +vn 0.9803 0.1880 -0.0611 +vn 0.9803 -0.0611 0.1880 +vn 0.9803 -0.1162 -0.1599 +vn 0.9803 0.1600 -0.1162 +vn 0.9803 -0.1600 -0.1162 +vn 0.9803 0.1162 -0.1600 +vn 0.9803 0.0611 0.1880 +vn 0.9803 -0.1880 -0.0611 +vn 0.9803 0.0611 -0.1881 +vn 0.9803 0.1162 0.1599 +vn 0.9803 -0.1977 0.0000 +vn 0.9803 0.0000 -0.1977 +vn 0.9803 0.1599 0.1162 +vn -0.0600 0.9982 -0.0000 +vn -0.0000 0.9511 0.3090 +vn -0.0600 0.9493 0.3085 +vn -0.0600 -0.5867 0.8076 +vn -0.0600 0.8076 0.5867 +vn -0.0600 0.5867 -0.8076 +vn -0.0600 -0.3085 -0.9493 +vn -0.0600 -0.8076 0.5867 +vn -0.0600 -0.9493 0.3085 +vn -0.0600 0.3085 0.9493 +vn -0.0600 0.9493 -0.3085 +vn -0.0600 -0.3085 0.9493 +vn -0.0600 0.3085 -0.9493 +vn -0.0600 -0.5867 -0.8076 +vn -0.0600 -0.0000 -0.9982 +vn -0.0600 0.5867 0.8076 +vn -0.0600 0.8076 -0.5867 +vn -0.0600 -0.9982 0.0000 +vn -0.0600 -0.0000 0.9982 +vn 0.0000 -0.8090 0.5878 +vn -0.0000 0.9511 -0.3090 +vn 0.0000 -0.5878 0.8090 +vn 0.0000 -0.3090 -0.9511 +vn -0.0000 0.8090 -0.5878 +vn 0.0000 -0.3090 0.9511 +vn 0.0000 -0.5878 -0.8090 +vn 0.0000 -0.8090 -0.5878 +vn -0.0000 0.5878 -0.8090 +vn -0.0000 0.5878 0.8090 +vn -0.0000 0.3090 0.9511 +vn 0.0000 -0.9511 -0.3090 +vn -0.0000 0.3090 -0.9511 +vn -0.0000 0.8090 0.5878 +vn 0.0000 -0.9511 0.3090 +vn 0.2116 0.0000 -0.9774 +vn 0.9665 0.0000 -0.2567 +vn 0.6774 -0.5201 -0.5201 +vn 0.6774 0.0000 -0.7356 +vn 0.2116 -0.6911 -0.6911 +vn 0.2116 -0.9774 0.0000 +vn 0.9665 -0.1815 -0.1815 +vn 0.6774 -0.7356 0.0000 +vn 0.9665 -0.1815 0.1815 +vn 0.6774 -0.5201 0.5201 +vn 0.2116 -0.6911 0.6911 +vn 0.2116 -0.0000 0.9774 +vn 0.9665 -0.0000 0.2567 +vn 0.6774 -0.0000 0.7356 +vn 0.6774 0.5201 0.5201 +vn 0.2116 0.6911 0.6911 +vn 0.9665 0.1815 0.1815 +vn 0.2116 0.9774 -0.0000 +vn 0.9665 0.2567 -0.0000 +vn 0.6774 0.7356 -0.0000 +vn 0.6774 0.5201 -0.5201 +vn 0.2116 0.6911 -0.6911 +vn 0.9665 -0.2567 0.0000 +vn -0.0000 0.7136 0.7006 +vn 0.4073 0.6058 0.6834 +vn 0.7055 0.3113 0.6367 +vn 0.8147 -0.0910 0.5727 +vn 0.7055 -0.4933 0.5088 +vn 0.4073 -0.7878 0.4621 +vn 0.0000 -0.8956 0.4449 +vn -0.4073 -0.7878 0.4621 +vn -0.4073 -0.7878 0.4620 +vn -0.7055 -0.4933 0.5088 +vn -0.8147 -0.0910 0.5727 +vn -0.7055 0.3113 0.6367 +vn -0.4073 0.6058 0.6834 +vn -0.0000 -0.9876 -0.1569 +vn -0.5000 -0.8553 -0.1359 +vn 0.5000 0.8553 0.1359 +vn 0.8660 0.4938 0.0784 +vn -0.5000 0.8553 0.1359 +vn -0.8660 0.4938 0.0784 +vn 0.5000 -0.8553 -0.1359 +vn -0.8660 -0.4938 -0.0784 +vn -0.8660 -0.4938 -0.0785 +vn 0.0000 0.9876 0.1569 +vn 0.8660 -0.4938 -0.0785 +vn -0.0000 0.7136 -0.7006 +vn 0.4073 0.6058 -0.6834 +vn 0.7055 0.3113 -0.6367 +vn 0.8147 -0.0910 -0.5727 +vn 0.7055 -0.4933 -0.5088 +vn 0.4073 -0.7878 -0.4620 +vn -0.0000 -0.8956 -0.4449 +vn -0.4073 -0.7878 -0.4620 +vn -0.7055 -0.4933 -0.5088 +vn -0.8147 -0.0910 -0.5727 +vn -0.7055 0.3113 -0.6367 +vn -0.4073 0.6058 -0.6834 +vn -0.5000 -0.8553 0.1359 +vn 0.0000 -0.9876 0.1569 +vn 0.8660 0.4938 -0.0785 +vn 0.5000 0.8553 -0.1359 +vn -0.5000 0.8553 -0.1359 +vn -0.8660 0.4938 -0.0785 +vn 0.5000 -0.8553 0.1359 +vn -0.8660 -0.4938 0.0785 +vn 0.0000 0.9876 -0.1569 +vn 0.8660 -0.4938 0.0784 +vn 0.7231 0.6672 0.1788 +vn -0.9844 0.1700 0.0455 +vn 0.9844 0.1699 0.0455 +vn -0.7230 0.6673 0.1788 +vn -0.7231 0.6673 0.1788 +vn -0.7231 0.6672 0.1788 +vn -0.9844 0.1699 0.0455 +vn 0.9844 0.1700 0.0455 +vn -0.4669 -0.4015 0.7879 +vn 0.4669 -0.4015 0.7880 +vn -0.9554 0.1340 -0.2630 +vn -0.9555 -0.1340 0.2630 +vn 0.9554 0.1340 -0.2630 +vn 0.9554 -0.1340 0.2630 +vn 0.4669 0.4015 -0.7879 +vn 0.4669 -0.4015 0.7879 +vn -0.4669 0.4015 -0.7879 +vn -0.9554 -0.1340 0.2630 +vn 0.4669 0.8843 -0.0000 +vn -0.4669 0.8843 0.0000 +vn 0.9554 -0.2952 0.0000 +vn 0.9554 0.2952 0.0000 +vn -0.9554 -0.2952 0.0000 +vn -0.9555 0.2952 0.0000 +vn -0.4669 -0.8843 0.0000 +vn -0.9554 0.2952 0.0000 +vn 0.4669 -0.8843 0.0000 +vn 0.9555 0.2951 0.0000 +vn 0.9555 -0.2952 0.0000 +vn 0.9555 0.2952 -0.0000 +vn 0.4669 -0.4015 -0.7879 +vn -0.4669 -0.4015 -0.7879 +vn -0.9555 -0.1340 -0.2630 +vn -0.9554 0.1340 0.2630 +vn -0.9555 0.1340 0.2630 +vn 0.9554 0.1340 0.2630 +vn 0.9554 -0.1340 -0.2630 +vn 0.9555 0.1340 0.2630 +vn 0.4669 0.4015 0.7879 +vn 0.9554 -0.1339 -0.2630 +vn -0.4669 0.4015 0.7879 +vn -0.4669 0.4014 0.7879 +vn -0.9554 -0.1340 -0.2630 +vn 0.4669 0.4014 0.7879 +vn -0.4669 0.4014 0.7880 +vn 0.4669 0.4014 0.7880 +vn -0.9554 -0.2952 0.0001 +vn -0.1442 0.1945 -0.9703 +vn 0.2193 0.6891 -0.6907 +vn 0.2247 0.2119 -0.9511 +vn -0.1404 0.9708 -0.1946 +vn 0.2284 0.9498 -0.2139 +vn -0.0945 0.9485 0.3025 +vn 0.2500 0.9343 0.2542 +vn -0.0672 0.8594 0.5069 +vn 0.2536 0.8593 0.4441 +vn 0.9295 0.3686 -0.0089 +vn 0.9164 0.3942 0.0693 +vn 0.9277 0.0040 -0.3732 +vn -0.1007 -0.3028 -0.9477 +vn 0.2441 -0.2561 -0.9353 +vn 0.2471 -0.4461 -0.8602 +vn 0.6235 -0.1596 -0.7654 +vn 0.6078 -0.3147 -0.7290 +vn 0.9141 -0.0743 -0.3987 +vn 0.6177 0.1926 -0.7624 +vn 0.9164 0.1282 -0.3793 +vn 0.6179 0.5542 -0.5577 +vn 0.9138 0.2847 -0.2895 +vn 0.6206 0.7592 -0.1964 +vn 0.6281 0.7624 0.1559 +vn 0.9176 0.3746 -0.1330 +vn -0.0740 -0.5073 -0.8586 +vn -0.6328 -0.2901 -0.7179 +vn -0.5903 -0.4572 -0.6653 +vn -0.9767 -0.1528 -0.1507 +vn -0.6763 0.1071 -0.7288 +vn -0.9880 -0.0386 -0.1498 +vn -0.6959 0.5093 -0.5063 +vn -0.1625 0.6978 -0.6976 +vn -0.9934 0.0835 -0.0786 +vn -0.6732 0.7321 -0.1043 +vn -0.9870 0.1548 0.0434 +vn -0.6278 0.7213 0.2926 +vn -0.9752 0.1557 0.1575 +vn -0.5846 0.6686 0.4596 +vn -0.9630 0.1687 0.2099 +vn -0.1446 -0.9709 -0.1907 +vn 0.2194 -0.6935 -0.6862 +vn 0.2243 -0.9520 -0.2081 +vn -0.1400 -0.1983 -0.9701 +vn 0.2287 -0.2177 -0.9488 +vn -0.0939 0.2988 -0.9497 +vn 0.2506 0.2504 -0.9352 +vn -0.0665 0.5036 -0.8614 +vn 0.2542 0.4406 -0.8609 +vn 0.9297 -0.0109 -0.3681 +vn 0.9162 -0.3803 -0.1262 +vn 0.9177 -0.1350 -0.3736 +vn -0.1013 -0.9465 0.3064 +vn 0.2434 -0.9344 0.2599 +vn 0.2464 -0.8586 0.4496 +vn 0.6230 -0.7650 0.1629 +vn 0.6073 -0.7281 0.3179 +vn 0.9138 -0.3989 0.0763 +vn 0.6175 -0.7635 -0.1893 +vn 0.9275 -0.3737 -0.0021 +vn 0.6179 -0.5602 -0.5517 +vn 0.9138 -0.2911 -0.2831 +vn 0.6209 -0.1996 -0.7581 +vn 0.6286 0.1526 -0.7626 +vn 0.9166 0.0673 -0.3940 +vn -0.0747 -0.8566 0.5106 +vn -0.6333 -0.7165 0.2926 +vn -0.5908 -0.6632 0.4595 +vn -0.9769 -0.1495 0.1529 +vn -0.6766 -0.7288 -0.1046 +vn -0.9881 -0.1492 0.0387 +vn -0.6959 -0.5079 -0.5077 +vn -0.1625 -0.7002 -0.6952 +vn -0.9934 -0.0784 -0.0837 +vn -0.6729 -0.1068 -0.7320 +vn -0.9869 0.0433 -0.1555 +vn -0.6272 0.2901 -0.7228 +vn -0.9750 0.1574 -0.1568 +vn -0.5841 0.4572 -0.6707 +vn -0.9628 0.2098 -0.1700 +vn -0.1480 -0.1870 0.9712 +vn 0.2193 -0.6821 0.6976 +vn 0.2211 -0.2028 0.9539 +vn -0.1366 -0.9698 0.2021 +vn 0.2320 -0.9468 0.2230 +vn -0.0884 -0.9514 -0.2949 +vn 0.2558 -0.9352 -0.2450 +vn -0.0606 -0.8639 -0.4999 +vn 0.2600 -0.8618 -0.4356 +vn 0.9313 -0.3639 0.0166 +vn 0.9186 -0.3903 -0.0616 +vn 0.9259 0.0037 0.3777 +vn -0.1068 0.3103 0.9446 +vn 0.2382 0.2653 0.9343 +vn 0.2407 0.4546 0.8576 +vn 0.6190 0.1692 0.7670 +vn 0.6027 0.3239 0.7293 +vn 0.9117 0.0821 0.4025 +vn 0.6150 -0.1831 0.7670 +vn 0.9151 -0.1204 0.3848 +vn 0.6179 -0.5464 0.5654 +vn 0.9138 -0.2778 0.2964 +vn 0.6233 -0.7544 0.2058 +vn 0.6326 -0.7605 -0.1463 +vn 0.9187 -0.3690 0.1407 +vn -0.0807 0.5141 0.8539 +vn -0.6377 0.2930 0.7124 +vn -0.5957 0.4599 0.6585 +vn -0.9782 0.1492 0.1446 +vn -0.6794 -0.1042 0.7264 +vn -0.9889 0.0350 0.1447 +vn -0.6959 -0.5084 0.5072 +vn -0.1625 -0.6927 0.7027 +vn -0.9934 -0.0877 0.0745 +vn -0.6701 -0.7345 0.1073 +vn -0.9860 -0.1600 -0.0469 +vn -0.6228 -0.7268 -0.2896 +vn -0.9736 -0.1618 -0.1609 +vn -0.5791 -0.6753 -0.4567 +vn -0.9612 -0.1752 -0.2132 +vn -0.4669 -0.4816 -0.7417 +vn 0.4669 -0.4817 -0.7416 +vn -0.4669 -0.4816 -0.7416 +vn -0.9554 0.1608 0.2475 +vn -0.9554 -0.1608 -0.2475 +vn 0.9554 0.1607 0.2475 +vn 0.9554 -0.1608 -0.2475 +vn 0.9554 0.1608 0.2476 +vn 0.4669 0.4816 0.7416 +vn 0.4669 0.4817 0.7416 +vn 0.4669 -0.4816 -0.7416 +vn -0.9554 0.1608 0.2476 +vn -0.4669 0.4816 0.7416 +vn 0.4669 -0.4422 0.7658 +vn -0.4669 -0.4422 0.7658 +vn 0.9554 0.1476 -0.2556 +vn 0.9554 -0.1476 0.2556 +vn -0.9554 0.1476 -0.2556 +vn -0.9555 -0.1476 0.2556 +vn -0.9555 0.1476 -0.2556 +vn -0.4669 0.4421 -0.7658 +vn -0.4669 0.4421 -0.7659 +vn -0.9554 -0.1476 0.2556 +vn 0.4669 0.4422 -0.7658 +vn -0.9554 0.1607 0.2476 +vn 0.9554 0.1608 0.2475 +vn -0.4669 0.4817 0.7416 +vn -0.4669 -0.4421 0.7658 +vn -0.4669 0.4422 -0.7658 +vn -0.4669 0.4816 0.7417 +vn 0.4669 -0.4421 0.7659 +vn 0.4669 -0.4421 0.7658 +vn 0.9555 0.1476 -0.2556 +vn 0.9555 -0.1476 0.2556 +vn 0.4669 0.8831 0.0463 +vn -0.4669 0.8831 0.0463 +vn -0.9555 0.2947 0.0155 +vn -0.9554 -0.2948 -0.0154 +vn -0.9554 -0.2947 -0.0154 +vn 0.9554 -0.2948 -0.0154 +vn 0.9554 0.2948 0.0155 +vn 0.4669 -0.8831 -0.0463 +vn -0.4669 -0.8831 -0.0463 +vn -0.9554 0.2948 0.0155 +vn 0.9554 0.2948 0.0154 +vn 0.9555 -0.2947 -0.0154 +vn -0.9554 0.1475 -0.2556 +vn -0.9554 0.1475 -0.2557 +vn 0.4669 0.4421 -0.7659 +vn -0.4669 0.8831 -0.0463 +vn 0.4669 0.8831 -0.0463 +vn -0.9554 -0.2948 0.0154 +vn -0.9554 0.2948 -0.0154 +vn -0.9555 0.2947 -0.0154 +vn 0.9554 -0.2948 0.0154 +vn 0.9554 0.2948 -0.0155 +vn 0.4669 -0.8831 0.0463 +vn -0.4669 -0.8831 0.0463 +vn 0.4669 -0.4422 -0.7658 +vn -0.4669 -0.4421 -0.7659 +vn 0.9554 0.1476 0.2556 +vn 0.9554 -0.1476 -0.2556 +vn -0.9554 0.1476 0.2556 +vn -0.9555 -0.1476 -0.2556 +vn -0.9555 0.1476 0.2556 +vn -0.4669 0.4422 0.7658 +vn -0.4669 -0.4421 -0.7658 +vn -0.9554 -0.1476 -0.2556 +vn 0.4669 0.4422 0.7658 +vn -0.9554 0.2948 -0.0155 +vn -0.4669 -0.4422 -0.7658 +vn 0.9555 -0.1476 -0.2556 +vn 0.4669 0.4421 0.7658 +vn 0.4669 0.4421 0.7659 +vn 0.4669 -0.4816 0.7416 +vn -0.4669 -0.4816 0.7416 +vn -0.9555 -0.1608 0.2475 +vn -0.9554 0.1608 -0.2475 +vn 0.9554 0.1607 -0.2476 +vn 0.9554 -0.1608 0.2475 +vn 0.9555 0.1607 -0.2475 +vn 0.4669 0.4817 -0.7416 +vn -0.4669 0.4816 -0.7416 +vn -0.9554 -0.1608 0.2475 +vn -0.9554 0.1475 0.2556 +vn -0.9554 -0.1475 -0.2556 +vn -0.9554 0.1475 0.2557 +vn -0.4669 0.4421 0.7658 +vn -0.9554 -0.1475 -0.2557 +vn -0.4669 -0.4817 0.7416 +vn -0.9554 0.1608 -0.2476 +vn 0.9554 -0.1607 0.2476 +vn 0.9554 0.1608 -0.2475 +vn -0.4669 0.4817 -0.7416 +vn 0.9554 0.1607 -0.2475 +vn 0.9554 0.1608 -0.2476 +vn 0.4669 0.4816 -0.7416 +vn 0.7231 0.4884 0.4884 +vn -0.9844 0.1244 0.1244 +vn 0.9844 0.1244 0.1244 +vn -0.7231 0.4885 0.4885 +vn 0.7231 0.4885 0.4885 +vn 0.7231 0.4884 0.4885 +vn 0.7231 0.1788 0.6672 +vn -0.9844 0.0455 0.1700 +vn 0.9844 0.0455 0.1700 +vn -0.7231 0.1788 0.6673 +vn -0.7231 0.1788 0.6672 +vn 0.9844 0.0455 0.1699 +vn 0.9844 0.0456 0.1700 +vn 0.7231 0.1787 0.6672 +vn 0.7231 -0.1788 0.6672 +vn -0.9844 -0.0455 0.1700 +vn 0.9844 -0.0455 0.1699 +vn -0.7231 -0.1788 0.6673 +vn -0.7231 -0.1788 0.6672 +vn 0.9844 -0.0455 0.1700 +vn 0.9844 -0.0456 0.1700 +vn 0.7231 -0.4885 0.4884 +vn -0.9844 -0.1244 0.1244 +vn 0.9844 -0.1244 0.1244 +vn -0.7231 -0.4885 0.4885 +vn 0.7231 -0.4885 0.4885 +vn 0.7231 -0.6672 0.1788 +vn -0.9844 -0.1700 0.0455 +vn 0.9844 -0.1700 0.0455 +vn -0.7231 -0.6673 0.1788 +vn -0.7231 -0.6672 0.1788 +vn -0.9844 -0.1699 0.0455 +vn 0.9844 -0.1699 0.0455 +vn 0.7231 -0.6672 -0.1788 +vn -0.9844 -0.1699 -0.0455 +vn 0.9844 -0.1699 -0.0455 +vn -0.7231 -0.6672 -0.1788 +vn -0.7231 -0.6673 -0.1788 +vn -0.9844 -0.1700 -0.0455 +vn 0.9844 -0.1700 -0.0455 +vn 0.7231 -0.4884 -0.4885 +vn -0.9844 -0.1244 -0.1244 +vn 0.9844 -0.1244 -0.1244 +vn -0.7231 -0.4885 -0.4885 +vn 0.7231 -0.4885 -0.4885 +vn 0.7231 -0.1788 -0.6672 +vn -0.9844 -0.0455 -0.1700 +vn 0.9844 -0.0455 -0.1699 +vn -0.7231 -0.1788 -0.6673 +vn -0.7231 -0.1788 -0.6672 +vn 0.9844 -0.0456 -0.1700 +vn 0.9844 -0.0455 -0.1700 +vn 0.7231 -0.1788 -0.6673 +vn 0.7231 -0.1787 -0.6672 +vn 0.7231 0.1788 -0.6672 +vn -0.9844 0.0455 -0.1700 +vn 0.9844 0.0456 -0.1699 +vn -0.7231 0.1788 -0.6673 +vn -0.7231 0.1788 -0.6672 +vn 0.9844 0.0455 -0.1699 +vn 0.9844 0.0455 -0.1700 +vn 0.9844 0.0456 -0.1700 +vn 0.7231 0.4885 -0.4884 +vn -0.9844 0.1244 -0.1244 +vn 0.9844 0.1244 -0.1244 +vn -0.7231 0.4885 -0.4885 +vn 0.7231 0.6672 -0.1788 +vn -0.9844 0.1700 -0.0455 +vn 0.9844 0.1699 -0.0455 +vn -0.7231 0.6673 -0.1788 +vn -0.7231 0.6672 -0.1788 +vn -0.9844 0.1699 -0.0455 +vn 0.9844 0.1700 -0.0455 +vn 0.6186 -0.2988 0.7267 +vn -0.9669 0.1561 -0.2020 +vn 0.9665 0.1815 -0.1815 +vn -0.9555 0.2952 0.0001 +vn 0.9554 -0.1341 -0.2630 +vn 0.6130 0.7263 0.3111 +vn -0.9649 -0.2053 -0.1637 +vn 0.6135 0.3079 -0.7272 +vn -0.9651 -0.1624 0.2054 +vn 0.6181 -0.7258 -0.3020 +vn -0.9667 0.2019 0.1573 +vn 0.9555 0.1476 0.2556 +vn 0.9554 -0.1607 0.2475 +s off +f 46/1/1 47/2/1 48/3/1 +f 47/4/2 50/5/2 48/6/2 +f 52/7/3 53/8/3 54/9/3 +f 54/10/4 44/11/4 43/12/4 +f 44/11/5 52/7/5 45/13/5 +f 56/14/6 58/15/6 55/16/6 +f 57/17/7 60/18/7 58/15/7 +f 62/19/8 59/20/8 61/21/8 +f 58/15/3 64/22/3 55/16/3 +f 64/22/9 65/23/9 66/24/9 +f 67/25/3 58/15/3 60/18/3 +f 60/18/3 68/26/3 67/25/3 +f 68/26/10 70/27/10 67/25/10 +f 67/25/11 65/23/11 63/28/11 +f 57/17/1 70/29/1 59/20/1 +f 59/20/1 69/30/1 61/21/1 +f 66/31/1 57/17/1 56/14/1 +f 46/1/12 49/32/12 47/4/12 +f 45/13/13 51/33/13 46/1/13 +f 214/34/1 216/35/1 213/36/1 +f 223/37/1 238/38/1 221/39/1 +f 224/40/1 240/41/1 222/42/1 +f 225/43/1 215/44/1 214/45/1 +f 223/37/1 241/46/1 237/47/1 +f 227/48/1 239/49/1 224/50/1 +f 228/51/1 233/52/1 225/43/1 +f 226/53/1 243/54/1 241/55/1 +f 230/56/1 242/57/1 227/48/1 +f 220/58/1 234/59/1 228/60/1 +f 231/61/1 243/54/1 229/62/1 +f 230/63/1 247/64/1 244/65/1 +f 196/66/1 246/67/1 231/68/1 +f 232/69/1 249/70/1 247/64/1 +f 195/71/1 248/72/1 196/66/1 +f 217/73/1 249/74/1 218/75/1 +f 220/58/1 252/76/1 245/77/1 +f 195/78/1 216/35/1 250/79/1 +f 221/80/1 251/81/1 217/73/1 +f 219/82/1 240/41/1 252/83/1 +f 264/84/1 268/85/1 235/86/1 +f 338/87/1 339/88/1 335/89/1 +f 336/90/14 342/91/14 337/92/14 +f 345/93/3 346/94/3 341/95/3 +f 335/96/15 344/97/15 343/98/15 +f 339/88/16 344/97/16 340/99/16 +f 348/100/17 350/101/17 347/102/17 +f 348/100/18 352/103/18 349/104/18 +f 352/103/19 354/105/19 353/106/19 +f 355/107/3 348/100/3 347/102/3 +f 355/107/20 358/108/20 356/109/20 +f 351/110/3 356/109/3 359/111/3 +f 351/110/3 360/112/3 354/105/3 +f 361/113/21 360/112/21 359/111/21 +f 356/109/22 361/113/22 359/111/22 +f 361/114/1 349/104/1 352/103/1 +f 352/103/1 362/115/1 361/114/1 +f 349/104/1 357/116/1 350/101/1 +f 342/91/23 338/87/23 337/92/23 +f 346/94/24 339/88/24 338/87/24 +f 379/117/25 386/118/25 381/119/25 +f 379/117/25 393/120/25 385/121/25 +f 377/122/25 394/123/25 393/120/25 +f 375/124/25 395/125/25 394/126/25 +f 371/127/25 395/125/25 373/128/25 +f 371/127/25 397/129/25 396/130/25 +f 364/131/25 398/132/25 390/133/25 +f 364/131/25 389/134/25 365/135/25 +f 369/136/25 399/137/25 397/129/25 +f 383/138/25 398/132/25 387/139/25 +f 367/140/25 389/134/25 399/137/25 +f 381/119/25 400/141/25 383/138/25 +f 408/142/25 410/143/25 402/144/25 +f 430/145/26 434/146/26 428/147/26 +f 434/146/26 426/148/26 428/147/26 +f 426/148/26 442/149/26 424/150/26 +f 442/151/26 422/152/26 424/153/26 +f 443/154/26 420/155/26 422/152/26 +f 420/155/26 445/156/26 418/157/26 +f 440/158/26 436/159/26 414/160/26 +f 413/161/26 440/158/26 414/160/26 +f 445/156/26 416/162/26 418/157/26 +f 436/159/26 448/163/26 432/164/26 +f 416/162/26 437/165/26 413/161/26 +f 448/163/26 430/145/26 432/164/26 +f 451/166/26 455/167/26 439/168/26 +f 460/169/27 462/170/27 459/171/27 +f 464/172/28 466/173/28 463/174/28 +f 467/175/29 466/173/29 465/176/29 +f 470/177/30 463/174/30 469/178/30 +f 469/178/27 467/179/27 470/180/27 +f 471/181/31 473/182/31 474/183/31 +f 476/184/32 478/185/32 475/186/32 +f 471/181/33 470/187/33 467/188/33 +f 480/189/28 482/190/28 479/191/28 +f 460/192/29 479/193/29 482/194/29 +f 482/195/33 475/186/33 478/185/33 +f 461/196/30 480/189/30 462/170/30 +f 483/197/1 471/181/1 467/198/1 +f 484/199/3 474/183/3 473/182/3 +f 485/200/3 475/186/3 481/201/3 +f 486/202/1 478/185/1 477/203/1 +f 466/173/28 488/204/28 463/174/28 +f 479/191/28 490/205/28 480/189/28 +f 469/178/27 492/206/27 468/207/27 +f 459/171/1 489/208/1 479/193/1 +f 469/178/3 488/204/3 491/209/3 +f 468/210/1 487/211/1 466/173/1 +f 462/170/27 493/212/27 459/171/27 +f 462/170/3 490/205/3 494/213/3 +f 496/214/34 498/215/34 495/216/34 +f 496/214/3 500/217/3 499/218/3 +f 501/219/28 497/220/28 496/214/28 +f 498/221/35 503/222/35 504/223/35 +f 505/224/36 507/225/36 508/226/36 +f 508/226/37 510/227/37 509/228/37 +f 512/229/38 510/227/38 511/230/38 +f 511/231/39 505/224/39 512/232/39 +f 501/233/40 503/234/40 502/235/40 +f 503/236/41 497/237/41 502/238/41 +f 500/217/42 501/233/42 499/218/42 +f 516/239/28 513/240/28 515/241/28 +f 519/242/27 521/243/27 522/244/27 +f 519/245/43 517/246/43 520/247/43 +f 517/246/44 521/243/44 520/247/44 +f 521/243/3 515/241/3 522/244/3 +f 518/248/45 515/241/45 514/249/45 +f 519/245/1 514/250/1 513/251/1 +f 524/252/27 526/253/27 528/254/27 +f 538/255/28 531/256/28 543/257/28 +f 546/258/28 540/259/28 535/260/28 +f 537/261/27 542/262/27 530/263/27 +f 552/264/46 554/265/46 551/266/46 +f 552/267/47 555/268/47 556/269/47 +f 556/270/48 557/271/48 558/272/48 +f 557/273/49 560/274/49 558/275/49 +f 560/276/50 561/277/50 562/278/50 +f 561/279/51 564/280/51 562/281/51 +f 564/282/52 565/283/52 566/284/52 +f 565/285/53 568/286/53 566/287/53 +f 567/288/54 570/289/54 568/290/54 +f 570/291/55 571/292/55 572/293/55 +f 571/294/56 574/295/56 572/296/56 +f 574/297/57 575/298/57 576/299/57 +f 553/300/58 575/301/58 554/302/58 +f 587/303/59 586/304/59 584/305/59 +f 612/306/60 610/307/60 609/308/60 +f 603/309/61 602/310/61 600/311/61 +f 623/312/59 622/313/59 620/314/59 +f 648/315/60 646/316/60 645/317/60 +f 639/318/61 638/319/61 636/320/61 +f 659/321/59 658/322/59 656/323/59 +f 682/324/60 684/325/60 681/326/60 +f 675/327/61 674/328/61 672/329/61 +f 689/330/62 700/331/62 696/332/62 +f 718/333/63 720/334/63 717/335/63 +f 705/336/64 716/337/64 712/338/64 +f 725/339/62 736/340/62 732/341/62 +f 756/342/65 754/343/65 753/344/65 +f 741/345/64 752/346/64 748/347/64 +f 761/348/62 772/349/62 768/350/62 +f 790/351/65 792/352/65 789/353/65 +f 777/354/64 788/355/64 784/356/64 +f 793/357/61 798/358/61 803/359/61 +f 805/360/3 800/361/3 804/362/3 +f 803/363/66 807/364/66 806/365/66 +f 807/366/67 801/367/67 805/360/67 +f 808/368/68 803/363/68 806/365/68 +f 793/369/1 809/370/1 794/371/1 +f 810/372/1 798/373/1 811/374/1 +f 811/374/69 797/375/69 812/376/69 +f 813/377/64 812/378/64 814/379/64 +f 796/380/3 812/376/3 797/381/3 +f 795/382/70 809/370/70 813/383/70 +f 941/384/71 943/385/71 944/386/71 +f 948/387/62 950/388/62 947/389/62 +f 954/390/72 949/391/72 953/392/72 +f 955/393/73 944/386/73 943/385/73 +f 946/394/74 954/390/74 953/392/74 +f 951/395/75 956/396/75 955/393/75 +f 946/397/76 949/391/76 948/398/76 +f 947/399/77 954/390/77 945/400/77 +f 941/401/78 956/396/78 952/402/78 +f 942/403/59 955/393/59 943/385/59 +f 811/404/64 804/362/64 810/372/64 +f 806/405/64 805/360/64 811/404/64 +f 808/368/64 811/404/64 812/378/64 +f 812/378/64 809/406/64 808/368/64 +f 797/407/61 795/408/61 796/409/61 +f 797/407/61 794/410/61 795/408/61 +f 803/359/61 801/411/61 802/412/61 +f 798/358/61 800/413/61 801/411/61 +f 967/414/79 966/415/79 964/416/79 +f 992/417/80 990/418/80 989/419/80 +f 983/420/81 982/421/81 980/422/81 +f 1003/423/79 1002/424/79 1000/425/79 +f 1028/426/80 1026/427/80 1025/428/80 +f 1019/429/81 1018/430/81 1016/431/81 +f 1039/432/79 1038/433/79 1036/434/79 +f 1062/435/80 1064/436/80 1061/437/80 +f 1055/438/81 1054/439/81 1052/440/81 +f 1069/441/82 1080/442/82 1076/443/82 +f 1097/444/83 1099/445/83 1100/446/83 +f 1085/447/84 1096/448/84 1092/449/84 +f 1105/450/85 1116/451/85 1112/452/85 +f 1136/453/86 1134/454/86 1133/455/86 +f 1121/456/84 1132/457/84 1128/458/84 +f 1141/459/85 1152/460/85 1148/461/85 +f 1170/462/86 1172/463/86 1169/464/86 +f 1157/465/84 1168/466/84 1164/467/84 +f 1173/468/81 1178/469/81 1183/470/81 +f 1185/471/3 1180/472/3 1184/473/3 +f 1186/474/87 1182/475/87 1187/476/87 +f 1187/477/88 1181/478/88 1185/471/88 +f 1188/479/89 1183/480/89 1186/474/89 +f 1174/481/1 1188/479/1 1189/482/1 +f 1190/483/1 1178/484/1 1191/485/1 +f 1191/485/90 1177/486/90 1192/487/90 +f 1193/488/84 1192/489/84 1194/490/84 +f 1176/491/3 1192/487/3 1177/492/3 +f 1175/493/91 1189/482/91 1193/494/91 +f 1191/495/84 1184/473/84 1190/483/84 +f 1186/496/84 1185/471/84 1191/495/84 +f 1188/479/84 1191/495/84 1192/489/84 +f 1192/489/84 1189/497/84 1188/479/84 +f 1177/498/81 1175/499/81 1176/500/81 +f 1177/498/81 1174/501/81 1175/499/81 +f 1183/470/81 1181/502/81 1182/503/81 +f 1178/469/81 1180/504/81 1181/502/81 +f 1205/505/92 1204/506/92 1202/507/92 +f 1230/508/93 1228/509/93 1227/510/93 +f 1221/511/94 1220/512/94 1218/513/94 +f 1241/514/92 1240/515/92 1238/516/92 +f 1266/517/93 1264/518/93 1263/519/93 +f 1257/520/94 1256/521/94 1254/522/94 +f 1277/523/92 1276/524/92 1274/525/92 +f 1300/526/93 1302/527/93 1299/528/93 +f 1293/529/94 1292/530/94 1290/531/94 +f 1307/532/95 1318/533/95 1314/534/95 +f 1336/535/96 1338/536/96 1335/537/96 +f 1323/538/97 1334/539/97 1330/540/97 +f 1343/541/98 1354/542/98 1350/543/98 +f 1374/544/96 1372/545/96 1371/546/96 +f 1359/547/97 1370/548/97 1366/549/97 +f 1379/550/98 1390/551/98 1386/552/98 +f 1408/553/96 1410/554/96 1407/555/96 +f 1395/556/97 1406/557/97 1402/558/97 +f 1411/559/94 1416/560/94 1421/561/94 +f 1423/562/3 1418/563/3 1422/564/3 +f 1424/565/99 1420/566/99 1425/567/99 +f 1425/568/100 1419/569/100 1423/562/100 +f 1426/570/101 1421/571/101 1424/565/101 +f 1411/572/1 1427/573/1 1412/574/1 +f 1428/575/1 1416/576/1 1429/577/1 +f 1429/577/102 1415/578/102 1430/579/102 +f 1431/580/97 1430/581/97 1432/582/97 +f 1414/583/3 1430/579/3 1415/584/3 +f 1413/585/103 1427/573/103 1431/586/103 +f 1429/587/97 1422/564/97 1428/575/97 +f 1424/588/97 1423/562/97 1429/587/97 +f 1426/570/97 1429/587/97 1430/581/97 +f 1430/581/97 1427/589/97 1426/570/97 +f 1415/590/94 1413/591/94 1414/592/94 +f 1415/590/94 1412/593/94 1413/591/94 +f 1421/561/94 1419/594/94 1420/595/94 +f 1416/560/94 1418/596/94 1419/594/94 +f 1434/597/104 1436/598/104 1433/599/104 +f 1438/600/105 1440/601/105 1437/602/105 +f 1441/603/106 1440/601/106 1439/604/106 +f 1444/605/107 1437/602/107 1443/606/107 +f 1443/606/104 1441/607/104 1444/608/104 +f 1445/609/108 1447/610/108 1448/611/108 +f 1450/612/109 1452/613/109 1449/614/109 +f 1445/609/110 1444/615/110 1441/616/110 +f 1454/617/105 1456/618/105 1453/619/105 +f 1434/620/111 1453/621/111 1456/622/111 +f 1456/623/110 1449/614/110 1452/613/110 +f 1435/624/107 1454/617/107 1436/598/107 +f 1457/625/1 1445/609/1 1441/626/1 +f 1458/627/3 1448/611/3 1447/610/3 +f 1459/628/3 1449/614/3 1455/629/3 +f 1460/630/1 1452/613/1 1451/631/1 +f 1440/601/105 1462/632/105 1437/602/105 +f 1453/619/105 1464/633/105 1454/617/105 +f 1443/606/104 1466/634/104 1442/635/104 +f 1433/599/1 1463/636/1 1453/621/1 +f 1443/606/3 1462/632/3 1465/637/3 +f 1442/638/1 1461/639/1 1440/601/1 +f 1436/598/104 1467/640/104 1433/599/104 +f 1436/598/3 1464/633/3 1468/641/3 +f 1469/642/112 1471/643/112 1472/644/112 +f 1470/645/3 1474/646/3 1473/647/3 +f 1475/648/105 1471/649/105 1470/645/105 +f 1472/650/113 1477/651/113 1478/652/113 +f 1479/653/114 1481/654/114 1482/655/114 +f 1482/655/115 1484/656/115 1483/657/115 +f 1485/658/116 1483/657/116 1484/656/116 +f 1485/659/117 1479/653/117 1486/660/117 +f 1475/661/118 1477/662/118 1476/663/118 +f 1477/664/119 1471/643/119 1476/665/119 +f 1474/646/120 1475/661/120 1473/647/120 +f 1490/666/105 1487/667/105 1489/668/105 +f 1493/669/104 1495/670/104 1496/671/104 +f 1493/672/121 1491/673/121 1494/674/121 +f 1494/674/122 1490/666/122 1495/670/122 +f 1495/670/3 1489/668/3 1496/671/3 +f 1488/675/123 1496/671/123 1489/668/123 +f 1493/672/1 1488/676/1 1487/677/1 +f 1498/678/104 1500/679/104 1502/680/104 +f 1512/681/105 1505/682/105 1517/683/105 +f 1520/684/105 1514/685/105 1509/686/105 +f 1511/687/104 1516/688/104 1504/689/104 +f 1526/690/124 1528/691/124 1525/692/124 +f 1530/693/125 1532/694/125 1529/695/125 +f 1533/696/126 1532/694/126 1531/697/126 +f 1536/698/127 1529/695/127 1535/699/127 +f 1535/699/124 1533/700/124 1536/701/124 +f 1537/702/128 1539/703/128 1540/704/128 +f 1542/705/129 1544/706/129 1541/707/129 +f 1537/702/130 1536/708/130 1533/709/130 +f 1546/710/125 1548/711/125 1545/712/125 +f 1526/713/126 1545/714/126 1548/715/126 +f 1548/716/130 1541/707/130 1544/706/130 +f 1527/717/127 1546/710/127 1528/691/127 +f 1549/718/1 1537/702/1 1533/719/1 +f 1550/720/3 1540/704/3 1539/703/3 +f 1551/721/3 1541/707/3 1547/722/3 +f 1552/723/1 1544/706/1 1543/724/1 +f 1532/694/125 1554/725/125 1529/695/125 +f 1545/712/125 1556/726/125 1546/710/125 +f 1535/699/124 1558/727/124 1534/728/124 +f 1525/692/1 1555/729/1 1545/714/1 +f 1535/699/3 1554/725/3 1557/730/3 +f 1534/731/1 1553/732/1 1532/694/1 +f 1528/691/124 1559/733/124 1525/692/124 +f 1528/691/3 1556/726/3 1560/734/3 +f 1561/735/131 1563/736/131 1564/737/131 +f 1565/738/3 1561/735/3 1566/739/3 +f 1567/740/125 1563/741/125 1562/742/125 +f 1564/743/132 1569/744/132 1570/745/132 +f 1572/746/133 1574/747/133 1571/748/133 +f 1574/747/134 1576/749/134 1575/750/134 +f 1578/751/135 1576/749/135 1577/752/135 +f 1577/753/136 1571/748/136 1578/754/136 +f 1567/755/137 1569/756/137 1568/757/137 +f 1569/758/138 1563/736/138 1568/759/138 +f 1566/739/139 1567/755/139 1565/738/139 +f 1582/760/125 1579/761/125 1581/762/125 +f 1585/763/124 1587/764/124 1588/765/124 +f 1585/766/140 1583/767/140 1586/768/140 +f 1583/767/141 1587/764/141 1586/768/141 +f 1587/764/3 1581/762/3 1588/765/3 +f 1584/769/142 1581/762/142 1580/770/142 +f 1585/766/1 1580/771/1 1579/772/1 +f 1590/773/124 1592/774/124 1594/775/124 +f 1604/776/125 1597/777/125 1609/778/125 +f 1612/779/125 1606/780/125 1601/781/125 +f 1603/782/124 1608/783/124 1596/784/124 +f 1618/785/33 1620/786/33 1617/787/33 +f 1622/788/143 1624/789/143 1621/790/143 +f 1625/791/144 1624/789/144 1623/792/144 +f 1628/793/145 1621/790/145 1627/794/145 +f 1627/794/33 1625/795/33 1628/796/33 +f 1629/797/146 1631/798/146 1632/799/146 +f 1634/800/147 1636/801/147 1633/802/147 +f 1629/797/28 1628/803/28 1625/804/28 +f 1638/805/143 1640/806/143 1637/807/143 +f 1618/808/144 1637/809/144 1640/810/144 +f 1640/811/28 1633/802/28 1636/801/28 +f 1619/812/145 1638/805/145 1620/786/145 +f 1641/813/1 1629/797/1 1625/814/1 +f 1642/815/3 1632/799/3 1631/798/3 +f 1643/816/3 1633/802/3 1639/817/3 +f 1644/818/1 1636/801/1 1635/819/1 +f 1624/789/143 1646/820/143 1621/790/143 +f 1637/807/143 1648/821/143 1638/805/143 +f 1627/794/33 1650/822/33 1626/823/33 +f 1617/787/1 1647/824/1 1637/809/1 +f 1627/794/3 1646/820/3 1649/825/3 +f 1626/826/1 1645/827/1 1624/789/1 +f 1620/786/33 1651/828/33 1617/787/33 +f 1620/786/3 1648/821/3 1652/829/3 +f 1654/830/148 1656/831/148 1653/832/148 +f 1657/833/3 1653/832/3 1658/834/3 +f 1659/835/143 1655/836/143 1654/830/143 +f 1656/837/149 1661/838/149 1662/839/149 +f 1663/840/150 1665/841/150 1666/842/150 +f 1666/842/151 1668/843/151 1667/844/151 +f 1670/845/152 1668/843/152 1669/846/152 +f 1669/847/153 1663/840/153 1670/848/153 +f 1659/849/154 1661/850/154 1660/851/154 +f 1660/852/155 1656/831/155 1655/853/155 +f 1658/834/156 1659/849/156 1657/833/156 +f 1674/854/143 1671/855/143 1673/856/143 +f 1677/857/33 1679/858/33 1680/859/33 +f 1677/860/157 1675/861/157 1678/862/157 +f 1675/861/158 1679/858/158 1678/862/158 +f 1679/858/3 1673/856/3 1680/859/3 +f 1676/863/159 1673/856/159 1672/864/159 +f 1677/860/1 1672/865/1 1671/866/1 +f 1682/867/33 1684/868/33 1686/869/33 +f 1696/870/143 1689/871/143 1701/872/143 +f 1704/873/143 1698/874/143 1693/875/143 +f 1695/876/33 1700/877/33 1688/878/33 +f 1710/879/110 1712/880/110 1709/881/110 +f 1714/882/160 1716/883/160 1713/884/160 +f 1717/885/161 1716/883/161 1715/886/161 +f 1720/887/162 1713/884/162 1719/888/162 +f 1719/888/110 1717/889/110 1720/890/110 +f 1721/891/163 1723/892/163 1724/893/163 +f 1726/894/164 1728/895/164 1725/896/164 +f 1721/891/105 1720/897/105 1717/898/105 +f 1730/899/160 1732/900/160 1729/901/160 +f 1710/902/165 1729/903/165 1732/904/165 +f 1732/905/105 1725/896/105 1728/895/105 +f 1711/906/162 1730/899/162 1712/880/162 +f 1733/907/1 1721/891/1 1717/908/1 +f 1734/909/3 1724/893/3 1723/892/3 +f 1735/910/3 1725/896/3 1731/911/3 +f 1736/912/1 1728/895/1 1727/913/1 +f 1716/883/160 1738/914/160 1713/884/160 +f 1729/901/160 1740/915/160 1730/899/160 +f 1719/888/110 1742/916/110 1718/917/110 +f 1709/881/1 1739/918/1 1729/903/1 +f 1719/888/3 1738/914/3 1741/919/3 +f 1718/920/1 1737/921/1 1716/883/1 +f 1712/880/110 1743/922/110 1709/881/110 +f 1712/880/3 1740/915/3 1744/923/3 +f 1745/924/166 1747/925/166 1748/926/166 +f 1749/927/3 1745/924/3 1750/928/3 +f 1751/929/160 1747/930/160 1746/931/160 +f 1748/932/167 1753/933/167 1754/934/167 +f 1755/935/168 1757/936/168 1758/937/168 +f 1758/937/169 1760/938/169 1759/939/169 +f 1762/940/170 1760/938/170 1761/941/170 +f 1761/942/171 1755/935/171 1762/943/171 +f 1751/944/172 1753/945/172 1752/946/172 +f 1753/947/173 1747/925/173 1752/948/173 +f 1750/928/174 1751/944/174 1749/927/174 +f 1766/949/160 1763/950/160 1765/951/160 +f 1769/952/110 1771/953/110 1772/954/110 +f 1769/955/175 1767/956/175 1770/957/175 +f 1770/957/176 1766/949/176 1771/953/176 +f 1771/953/3 1765/951/3 1772/954/3 +f 1768/958/177 1765/951/177 1764/959/177 +f 1769/955/1 1764/960/1 1763/961/1 +f 1774/962/110 1776/963/110 1778/964/110 +f 1788/965/160 1781/966/160 1793/967/160 +f 1796/968/160 1790/969/160 1785/970/160 +f 1787/971/110 1792/972/110 1780/973/110 +f 1802/974/130 1804/975/130 1801/976/130 +f 1806/977/178 1808/978/178 1805/979/178 +f 1809/980/179 1808/978/179 1807/981/179 +f 1812/982/180 1805/979/180 1811/983/180 +f 1811/983/130 1809/984/130 1812/985/130 +f 1813/986/181 1815/987/181 1816/988/181 +f 1818/989/182 1820/990/182 1817/991/182 +f 1813/986/125 1812/992/125 1809/993/125 +f 1822/994/178 1824/995/178 1821/996/178 +f 1802/997/179 1821/998/179 1824/999/179 +f 1824/1000/125 1817/991/125 1820/990/125 +f 1803/1001/180 1822/994/180 1804/975/180 +f 1825/1002/1 1813/986/1 1809/1003/1 +f 1826/1004/3 1816/988/3 1815/987/3 +f 1827/1005/3 1817/991/3 1823/1006/3 +f 1828/1007/1 1820/990/1 1819/1008/1 +f 1808/978/178 1830/1009/178 1805/979/178 +f 1821/996/178 1832/1010/178 1822/994/178 +f 1811/983/130 1834/1011/130 1810/1012/130 +f 1801/976/1 1831/1013/1 1821/998/1 +f 1811/983/3 1830/1009/3 1833/1014/3 +f 1810/1015/1 1829/1016/1 1808/978/1 +f 1804/975/130 1835/1017/130 1801/976/130 +f 1804/975/3 1832/1010/3 1836/1018/3 +f 1837/1019/183 1839/1020/183 1840/1021/183 +f 1841/1022/3 1837/1019/3 1842/1023/3 +f 1843/1024/178 1839/1025/178 1838/1026/178 +f 1840/1027/184 1845/1028/184 1846/1029/184 +f 1848/1030/185 1850/1031/185 1847/1032/185 +f 1850/1031/186 1852/1033/186 1851/1034/186 +f 1853/1035/187 1851/1034/187 1852/1033/187 +f 1853/1036/188 1847/1032/188 1854/1037/188 +f 1843/1038/189 1845/1039/189 1844/1040/189 +f 1845/1041/190 1839/1020/190 1844/1042/190 +f 1842/1023/191 1843/1038/191 1841/1022/191 +f 1858/1043/178 1855/1044/178 1857/1045/178 +f 1861/1046/130 1863/1047/130 1864/1048/130 +f 1861/1049/192 1859/1050/192 1862/1051/192 +f 1859/1050/193 1863/1047/193 1862/1051/193 +f 1863/1047/3 1857/1045/3 1864/1048/3 +f 1860/1052/194 1857/1045/194 1856/1053/194 +f 1861/1049/1 1856/1054/1 1855/1055/1 +f 1866/1056/130 1868/1057/130 1870/1058/130 +f 1880/1059/178 1873/1060/178 1885/1061/178 +f 1888/1062/178 1882/1063/178 1877/1064/178 +f 1879/1065/130 1884/1066/130 1872/1067/130 +f 1894/1068/28 1896/1069/28 1893/1070/28 +f 1898/1071/27 1900/1072/27 1897/1073/27 +f 1902/1074/195 1899/1075/195 1901/1076/195 +f 1904/1077/196 1897/1073/196 1903/1078/196 +f 1903/1078/28 1901/1079/28 1904/1080/28 +f 1905/1081/197 1907/1082/197 1908/1083/197 +f 1910/1084/198 1912/1085/198 1909/1086/198 +f 1905/1081/143 1904/1087/143 1901/1088/143 +f 1914/1089/27 1916/1090/27 1913/1091/27 +f 1894/1092/195 1913/1093/195 1916/1094/195 +f 1916/1095/143 1909/1086/143 1912/1085/143 +f 1895/1096/196 1914/1089/196 1896/1069/196 +f 1917/1097/1 1905/1081/1 1901/1098/1 +f 1918/1099/3 1908/1083/3 1907/1082/3 +f 1919/1100/3 1909/1086/3 1915/1101/3 +f 1920/1102/1 1912/1085/1 1911/1103/1 +f 1900/1072/27 1922/1104/27 1897/1073/27 +f 1913/1091/27 1924/1105/27 1914/1089/27 +f 1903/1078/28 1926/1106/28 1902/1107/28 +f 1893/1070/1 1923/1108/1 1913/1093/1 +f 1903/1078/3 1922/1104/3 1925/1109/3 +f 1902/1074/1 1921/1110/1 1900/1072/1 +f 1896/1069/28 1927/1111/28 1893/1070/28 +f 1896/1069/3 1924/1105/3 1928/1112/3 +f 1929/1113/199 1931/1114/199 1932/1115/199 +f 1933/1116/3 1929/1113/3 1934/1117/3 +f 1935/1118/27 1931/1119/27 1930/1120/27 +f 1932/1121/200 1937/1122/200 1938/1123/200 +f 1939/1124/201 1941/1125/201 1942/1126/201 +f 1942/1126/39 1944/1127/39 1943/1128/39 +f 1946/1129/202 1944/1127/202 1945/1130/202 +f 1945/1131/37 1939/1124/37 1946/1132/37 +f 1935/1133/203 1937/1134/203 1936/1135/203 +f 1937/1136/204 1931/1114/204 1936/1137/204 +f 1934/1117/205 1935/1133/205 1933/1116/205 +f 1950/1138/27 1947/1139/27 1949/1140/27 +f 1953/1141/28 1955/1142/28 1956/1143/28 +f 1953/1144/206 1951/1145/206 1954/1146/206 +f 1951/1145/207 1955/1142/207 1954/1146/207 +f 1955/1142/3 1949/1140/3 1956/1143/3 +f 1952/1147/208 1949/1140/208 1948/1148/208 +f 1953/1144/1 1948/1149/1 1947/1150/1 +f 1958/1151/28 1960/1152/28 1962/1153/28 +f 1972/1154/27 1965/1155/27 1977/1156/27 +f 1980/1157/27 1974/1158/27 1969/1159/27 +f 1971/1160/28 1976/1161/28 1964/1162/28 +f 1986/1163/105 1988/1164/105 1985/1165/105 +f 1990/1166/104 1992/1167/104 1989/1168/104 +f 1993/1169/209 1992/1167/209 1991/1170/209 +f 1996/1171/210 1989/1168/210 1995/1172/210 +f 1995/1172/105 1993/1173/105 1996/1174/105 +f 1997/1175/211 1999/1176/211 2000/1177/211 +f 2002/1178/212 2004/1179/212 2001/1180/212 +f 1997/1175/160 1996/1181/160 1993/1182/160 +f 2006/1183/104 2008/1184/104 2005/1185/104 +f 1986/1186/209 2005/1187/209 2008/1188/209 +f 2008/1189/160 2001/1180/160 2004/1179/160 +f 1987/1190/210 2006/1183/210 1988/1164/210 +f 2009/1191/1 1997/1175/1 1993/1192/1 +f 2010/1193/3 2000/1177/3 1999/1176/3 +f 2011/1194/3 2001/1180/3 2007/1195/3 +f 2012/1196/1 2004/1179/1 2003/1197/1 +f 1992/1167/104 2014/1198/104 1989/1168/104 +f 2005/1185/104 2016/1199/104 2006/1183/104 +f 1995/1172/105 2018/1200/105 1994/1201/105 +f 1985/1165/1 2015/1202/1 2005/1187/1 +f 1995/1172/3 2014/1198/3 2017/1203/3 +f 1994/1204/1 2013/1205/1 1992/1167/1 +f 1988/1164/105 2019/1206/105 1985/1165/105 +f 1988/1164/3 2016/1199/3 2020/1207/3 +f 2021/1208/213 2023/1209/213 2024/1210/213 +f 2025/1211/3 2021/1208/3 2026/1212/3 +f 2027/1213/104 2023/1214/104 2022/1215/104 +f 2024/1216/214 2029/1217/214 2030/1218/214 +f 2032/1219/215 2034/1220/215 2031/1221/215 +f 2034/1220/117 2036/1222/117 2035/1223/117 +f 2037/1224/216 2035/1223/216 2036/1222/216 +f 2037/1225/115 2031/1221/115 2038/1226/115 +f 2027/1227/217 2029/1228/217 2028/1229/217 +f 2029/1230/218 2023/1209/218 2028/1231/218 +f 2026/1212/219 2027/1227/219 2025/1211/219 +f 2042/1232/104 2039/1233/104 2041/1234/104 +f 2045/1235/105 2047/1236/105 2048/1237/105 +f 2045/1238/220 2043/1239/220 2046/1240/220 +f 2043/1239/221 2047/1236/221 2046/1240/221 +f 2047/1236/3 2041/1234/3 2048/1237/3 +f 2044/1241/222 2041/1234/222 2040/1242/222 +f 2045/1238/1 2040/1243/1 2039/1244/1 +f 2050/1245/105 2052/1246/105 2054/1247/105 +f 2064/1248/104 2057/1249/104 2069/1250/104 +f 2072/1251/104 2066/1252/104 2061/1253/104 +f 2063/1254/105 2068/1255/105 2056/1256/105 +f 2078/1257/125 2080/1258/125 2077/1259/125 +f 2082/1260/124 2084/1261/124 2081/1262/124 +f 2086/1263/223 2083/1264/223 2085/1265/223 +f 2088/1266/224 2081/1262/224 2087/1267/224 +f 2087/1267/125 2085/1268/125 2088/1269/125 +f 2089/1270/225 2091/1271/225 2092/1272/225 +f 2094/1273/226 2096/1274/226 2093/1275/226 +f 2089/1270/178 2088/1276/178 2085/1277/178 +f 2098/1278/124 2100/1279/124 2097/1280/124 +f 2078/1281/223 2097/1282/223 2100/1283/223 +f 2100/1284/178 2093/1275/178 2096/1274/178 +f 2079/1285/224 2098/1278/224 2080/1258/224 +f 2101/1286/1 2089/1270/1 2085/1287/1 +f 2102/1288/3 2092/1272/3 2091/1271/3 +f 2103/1289/3 2093/1275/3 2099/1290/3 +f 2104/1291/1 2096/1274/1 2095/1292/1 +f 2084/1261/124 2106/1293/124 2081/1262/124 +f 2097/1280/124 2108/1294/124 2098/1278/124 +f 2087/1267/125 2110/1295/125 2086/1296/125 +f 2077/1259/1 2107/1297/1 2097/1282/1 +f 2087/1267/3 2106/1293/3 2109/1298/3 +f 2086/1263/1 2105/1299/1 2084/1261/1 +f 2080/1258/125 2111/1300/125 2077/1259/125 +f 2080/1258/3 2108/1294/3 2112/1301/3 +f 2114/1302/227 2116/1303/227 2113/1304/227 +f 2117/1305/3 2113/1304/3 2118/1306/3 +f 2119/1307/124 2115/1308/124 2114/1302/124 +f 2116/1309/228 2121/1310/228 2122/1311/228 +f 2123/1312/229 2125/1313/229 2126/1314/229 +f 2126/1314/136 2128/1315/136 2127/1316/136 +f 2130/1317/230 2128/1315/230 2129/1318/230 +f 2129/1319/134 2123/1312/134 2130/1320/134 +f 2119/1321/231 2121/1322/231 2120/1323/231 +f 2121/1324/232 2115/1325/232 2120/1326/232 +f 2118/1306/233 2119/1321/233 2117/1305/233 +f 2134/1327/124 2131/1328/124 2133/1329/124 +f 2137/1330/125 2139/1331/125 2140/1332/125 +f 2131/1333/234 2138/1334/234 2137/1335/234 +f 2138/1334/235 2134/1327/235 2139/1331/235 +f 2139/1331/3 2133/1329/3 2140/1332/3 +f 2136/1336/236 2133/1329/236 2132/1337/236 +f 2137/1335/1 2132/1338/1 2131/1333/1 +f 2142/1339/125 2144/1340/125 2146/1341/125 +f 2156/1342/124 2149/1343/124 2161/1344/124 +f 2164/1345/124 2158/1346/124 2153/1347/124 +f 2155/1348/125 2160/1349/125 2148/1350/125 +f 2170/1351/143 2172/1352/143 2169/1353/143 +f 2174/1354/33 2176/1355/33 2173/1356/33 +f 2177/1357/237 2176/1355/237 2175/1358/237 +f 2180/1359/238 2173/1356/238 2179/1360/238 +f 2179/1360/143 2177/1361/143 2180/1362/143 +f 2181/1363/239 2183/1364/239 2184/1365/239 +f 2186/1366/240 2188/1367/240 2185/1368/240 +f 2181/1363/27 2180/1369/27 2177/1370/27 +f 2190/1371/33 2192/1372/33 2189/1373/33 +f 2170/1374/241 2189/1375/241 2192/1376/241 +f 2192/1377/27 2185/1368/27 2188/1367/27 +f 2171/1378/238 2190/1371/238 2172/1352/238 +f 2193/1379/1 2181/1363/1 2177/1380/1 +f 2194/1381/3 2184/1365/3 2183/1364/3 +f 2195/1382/3 2185/1368/3 2191/1383/3 +f 2196/1384/1 2188/1367/1 2187/1385/1 +f 2176/1355/33 2198/1386/33 2173/1356/33 +f 2189/1373/33 2200/1387/33 2190/1371/33 +f 2179/1360/143 2202/1388/143 2178/1389/143 +f 2169/1353/1 2199/1390/1 2189/1375/1 +f 2179/1360/3 2198/1386/3 2201/1391/3 +f 2178/1392/1 2197/1393/1 2176/1355/1 +f 2172/1352/143 2203/1394/143 2169/1353/143 +f 2172/1352/3 2200/1387/3 2204/1395/3 +f 2205/1396/242 2207/1397/242 2208/1398/242 +f 2209/1399/3 2205/1396/3 2210/1400/3 +f 2211/1401/33 2207/1402/33 2206/1403/33 +f 2208/1404/243 2213/1405/243 2214/1406/243 +f 2215/1407/244 2217/1408/244 2218/1409/244 +f 2218/1409/153 2220/1410/153 2219/1411/153 +f 2221/1412/245 2219/1411/245 2220/1410/245 +f 2221/1413/151 2215/1407/151 2222/1414/151 +f 2211/1415/246 2213/1416/246 2212/1417/246 +f 2213/1418/247 2207/1397/247 2212/1419/247 +f 2210/1400/248 2211/1415/248 2209/1399/248 +f 2226/1420/33 2223/1421/33 2225/1422/33 +f 2229/1423/143 2231/1424/143 2232/1425/143 +f 2229/1426/249 2227/1427/249 2230/1428/249 +f 2230/1428/250 2226/1420/250 2231/1424/250 +f 2231/1424/3 2225/1422/3 2232/1425/3 +f 2228/1429/251 2225/1422/251 2224/1430/251 +f 2229/1426/1 2224/1431/1 2223/1432/1 +f 2234/1433/143 2236/1434/143 2238/1435/143 +f 2248/1436/33 2241/1437/33 2253/1438/33 +f 2256/1439/33 2250/1440/33 2245/1441/33 +f 2247/1442/143 2252/1443/143 2240/1444/143 +f 2262/1445/160 2264/1446/160 2261/1447/160 +f 2266/1448/110 2268/1449/110 2265/1450/110 +f 2269/1451/252 2268/1449/252 2267/1452/252 +f 2272/1453/253 2265/1450/253 2271/1454/253 +f 2271/1454/160 2269/1455/160 2272/1456/160 +f 2273/1457/254 2275/1458/254 2276/1459/254 +f 2278/1460/255 2280/1461/255 2277/1462/255 +f 2273/1457/104 2272/1463/104 2269/1464/104 +f 2281/1465/110 2283/1466/110 2284/1467/110 +f 2262/1468/252 2281/1469/252 2284/1470/252 +f 2284/1471/104 2277/1462/104 2280/1461/104 +f 2263/1472/253 2282/1473/253 2264/1446/253 +f 2285/1474/1 2273/1457/1 2269/1475/1 +f 2286/1476/3 2276/1459/3 2275/1458/3 +f 2287/1477/3 2277/1462/3 2283/1478/3 +f 2288/1479/1 2280/1461/1 2279/1480/1 +f 2268/1449/110 2290/1481/110 2265/1450/110 +f 2281/1465/110 2292/1482/110 2282/1473/110 +f 2271/1454/160 2294/1483/160 2270/1484/160 +f 2261/1447/1 2291/1485/1 2281/1469/1 +f 2271/1454/3 2290/1481/3 2293/1486/3 +f 2270/1487/1 2289/1488/1 2268/1449/1 +f 2264/1446/160 2295/1489/160 2261/1447/160 +f 2264/1446/3 2292/1482/3 2296/1490/3 +f 2297/1491/256 2299/1492/256 2300/1493/256 +f 2301/1494/3 2297/1491/3 2302/1495/3 +f 2303/1496/110 2299/1497/110 2298/1498/110 +f 2300/1499/257 2305/1500/257 2306/1501/257 +f 2308/1502/258 2310/1503/258 2307/1504/258 +f 2310/1503/171 2312/1505/171 2311/1506/171 +f 2314/1507/259 2312/1505/259 2313/1508/259 +f 2313/1509/169 2307/1504/169 2314/1510/169 +f 2303/1511/260 2305/1512/260 2304/1513/260 +f 2305/1514/261 2299/1492/261 2304/1515/261 +f 2302/1495/262 2303/1511/262 2301/1494/262 +f 2318/1516/110 2315/1517/110 2317/1518/110 +f 2321/1519/160 2323/1520/160 2324/1521/160 +f 2321/1522/263 2319/1523/263 2322/1524/263 +f 2322/1524/264 2318/1516/264 2323/1520/264 +f 2323/1520/3 2317/1518/3 2324/1521/3 +f 2320/1525/265 2317/1518/265 2316/1526/265 +f 2321/1522/1 2316/1527/1 2315/1528/1 +f 2326/1529/160 2328/1530/160 2330/1531/160 +f 2340/1532/110 2333/1533/110 2345/1534/110 +f 2348/1535/110 2342/1536/110 2337/1537/110 +f 2339/1538/160 2344/1539/160 2332/1540/160 +f 2354/1541/178 2356/1542/178 2353/1543/178 +f 2358/1544/130 2360/1545/130 2357/1546/130 +f 2361/1547/266 2360/1545/266 2359/1548/266 +f 2363/1549/267 2358/1550/267 2357/1546/267 +f 2363/1549/178 2361/1551/178 2364/1552/178 +f 2365/1553/268 2367/1554/268 2368/1555/268 +f 2370/1556/269 2372/1557/269 2369/1558/269 +f 2365/1553/124 2364/1559/124 2361/1560/124 +f 2373/1561/130 2375/1562/130 2376/1563/130 +f 2354/1564/266 2373/1565/266 2376/1566/266 +f 2376/1567/124 2369/1558/124 2372/1557/124 +f 2355/1568/267 2374/1569/267 2356/1542/267 +f 2377/1570/1 2365/1553/1 2361/1571/1 +f 2378/1572/3 2368/1555/3 2367/1554/3 +f 2379/1573/3 2369/1558/3 2375/1574/3 +f 2380/1575/1 2372/1557/1 2371/1576/1 +f 2360/1545/130 2382/1577/130 2357/1546/130 +f 2373/1561/130 2384/1578/130 2374/1569/130 +f 2363/1549/178 2386/1579/178 2362/1580/178 +f 2353/1543/1 2383/1581/1 2373/1565/1 +f 2363/1549/3 2382/1577/3 2385/1582/3 +f 2362/1583/1 2381/1584/1 2360/1545/1 +f 2356/1542/178 2387/1585/178 2353/1543/178 +f 2356/1542/3 2384/1578/3 2388/1586/3 +f 2390/1587/270 2392/1588/270 2389/1589/270 +f 2393/1590/3 2389/1589/3 2394/1591/3 +f 2395/1592/130 2391/1593/130 2390/1587/130 +f 2392/1594/271 2397/1595/271 2398/1596/271 +f 2400/1597/272 2402/1598/272 2399/1599/272 +f 2402/1598/188 2404/1600/188 2403/1601/188 +f 2406/1602/273 2404/1600/273 2405/1603/273 +f 2405/1604/186 2399/1599/186 2406/1605/186 +f 2395/1606/274 2397/1607/274 2396/1608/274 +f 2397/1609/275 2391/1610/275 2396/1611/275 +f 2394/1591/276 2395/1606/276 2393/1590/276 +f 2410/1612/130 2407/1613/130 2409/1614/130 +f 2413/1615/178 2415/1616/178 2416/1617/178 +f 2413/1618/277 2411/1619/277 2414/1620/277 +f 2411/1619/278 2415/1616/278 2414/1620/278 +f 2415/1616/3 2409/1614/3 2416/1617/3 +f 2412/1621/279 2409/1614/279 2408/1622/279 +f 2412/1623/1 2407/1624/1 2413/1618/1 +f 2418/1625/178 2420/1626/178 2422/1627/178 +f 2432/1628/130 2425/1629/130 2437/1630/130 +f 2440/1631/130 2434/1632/130 2429/1633/130 +f 2431/1634/178 2436/1635/178 2424/1636/178 +f 48/3/1 43/1637/1 46/1/1 +f 43/1637/1 44/1638/1 45/13/1 +f 46/1/1 43/1637/1 45/13/1 +f 47/4/2 49/32/2 50/5/2 +f 54/9/3 50/1639/3 52/7/3 +f 50/1639/3 49/1640/3 51/33/3 +f 52/7/3 50/1639/3 51/33/3 +f 54/10/4 53/1641/4 44/11/4 +f 44/11/5 53/1641/5 52/7/5 +f 56/14/6 57/17/6 58/15/6 +f 57/17/7 59/20/7 60/18/7 +f 62/19/8 60/18/8 59/20/8 +f 58/15/3 63/28/3 64/22/3 +f 64/22/9 63/28/9 65/23/9 +f 67/25/3 63/28/3 58/15/3 +f 60/18/3 62/19/3 68/26/3 +f 68/26/10 69/1642/10 70/27/10 +f 67/25/11 70/27/11 65/23/11 +f 57/17/1 65/1643/1 70/29/1 +f 59/20/1 70/29/1 69/30/1 +f 66/31/1 65/1643/1 57/17/1 +f 46/1/12 51/33/12 49/32/12 +f 45/13/13 52/7/13 51/33/13 +f 214/34/1 215/1644/1 216/35/1 +f 223/37/1 237/47/1 238/38/1 +f 224/40/1 239/1645/1 240/41/1 +f 225/43/1 233/52/1 215/44/1 +f 223/37/1 226/1646/1 241/46/1 +f 227/48/1 242/57/1 239/49/1 +f 228/51/1 234/1647/1 233/52/1 +f 226/53/1 229/62/1 243/54/1 +f 230/56/1 244/1648/1 242/57/1 +f 220/58/1 245/77/1 234/59/1 +f 231/61/1 246/1649/1 243/54/1 +f 230/63/1 232/69/1 247/64/1 +f 196/66/1 248/72/1 246/67/1 +f 232/69/1 218/1650/1 249/70/1 +f 195/71/1 250/1651/1 248/72/1 +f 217/73/1 251/81/1 249/74/1 +f 220/58/1 219/1652/1 252/76/1 +f 195/78/1 213/36/1 216/35/1 +f 221/80/1 238/1653/1 251/81/1 +f 219/82/1 222/42/1 240/41/1 +f 235/86/1 253/1654/1 254/1655/1 +f 254/1655/1 255/1656/1 256/1657/1 +f 256/1657/1 257/1658/1 260/1659/1 +f 257/1658/1 258/1660/1 260/1659/1 +f 258/1660/1 259/1661/1 260/1659/1 +f 260/1659/1 261/1662/1 262/1663/1 +f 262/1663/1 263/1664/1 264/84/1 +f 264/84/1 265/1665/1 266/1666/1 +f 266/1666/1 267/1667/1 264/84/1 +f 267/1667/1 268/85/1 264/84/1 +f 268/85/1 269/1668/1 235/86/1 +f 269/1668/1 270/1669/1 235/86/1 +f 270/1669/1 236/1670/1 235/86/1 +f 235/86/1 254/1655/1 256/1657/1 +f 260/1659/1 262/1663/1 264/84/1 +f 235/86/1 256/1657/1 260/1659/1 +f 260/1659/1 264/84/1 235/86/1 +f 340/1671/1 335/89/1 339/88/1 +f 335/89/1 336/1672/1 338/87/1 +f 336/1672/1 337/1673/1 338/87/1 +f 336/90/14 341/1674/14 342/91/14 +f 342/1675/3 341/95/3 346/94/3 +f 341/95/3 343/1676/3 345/93/3 +f 343/1676/3 344/1677/3 345/93/3 +f 335/96/15 340/99/15 344/97/15 +f 339/88/16 345/93/16 344/97/16 +f 348/100/280 349/104/280 350/101/280 +f 348/100/18 351/110/18 352/103/18 +f 352/103/19 351/110/19 354/105/19 +f 355/107/3 356/109/3 348/100/3 +f 355/107/20 357/1678/20 358/108/20 +f 351/110/3 348/100/3 356/109/3 +f 351/110/3 359/111/3 360/112/3 +f 361/113/21 362/1679/21 360/112/21 +f 356/109/22 358/108/22 361/113/22 +f 361/114/1 358/1680/1 349/104/1 +f 352/103/1 353/106/1 362/115/1 +f 349/104/1 358/1680/1 357/116/1 +f 342/91/23 346/94/23 338/87/23 +f 346/94/24 345/93/24 339/88/24 +f 379/117/25 385/121/25 386/118/25 +f 379/117/25 377/122/25 393/120/25 +f 377/122/25 375/1681/25 394/123/25 +f 375/124/25 373/128/25 395/125/25 +f 371/127/25 396/130/25 395/125/25 +f 371/127/25 369/136/25 397/129/25 +f 364/131/25 387/139/25 398/132/25 +f 364/131/25 390/133/25 389/134/25 +f 369/136/25 367/140/25 399/137/25 +f 383/138/25 400/141/25 398/132/25 +f 367/140/25 365/135/25 389/134/25 +f 381/119/25 386/118/25 400/141/25 +f 410/143/25 392/1682/25 402/144/25 +f 392/1682/25 391/1683/25 402/144/25 +f 391/1683/25 401/1684/25 402/144/25 +f 402/144/25 403/1685/25 404/1686/25 +f 404/1686/25 405/1687/25 402/144/25 +f 405/1687/25 406/1688/25 402/144/25 +f 406/1688/25 407/1689/25 408/142/25 +f 408/142/25 409/1690/25 410/143/25 +f 406/1688/25 408/142/25 402/144/25 +f 430/145/26 433/1691/26 434/146/26 +f 434/146/26 441/1692/26 426/148/26 +f 426/148/26 441/1692/26 442/149/26 +f 442/151/26 443/154/26 422/152/26 +f 443/154/26 444/1693/26 420/155/26 +f 420/155/26 444/1693/26 445/156/26 +f 440/158/26 446/1694/26 436/159/26 +f 413/161/26 437/165/26 440/158/26 +f 445/156/26 447/1695/26 416/162/26 +f 436/159/26 446/1694/26 448/163/26 +f 416/162/26 447/1695/26 437/165/26 +f 448/163/26 433/1691/26 430/145/26 +f 439/168/26 438/1696/26 449/1697/26 +f 449/1697/26 450/1698/26 439/168/26 +f 450/1698/26 451/166/26 439/168/26 +f 451/166/26 452/1699/26 455/167/26 +f 452/1699/26 453/1700/26 455/167/26 +f 453/1700/26 454/1701/26 455/167/26 +f 455/167/26 456/1702/26 439/168/26 +f 456/1702/26 457/1703/26 439/168/26 +f 457/1703/26 458/1704/26 439/168/26 +f 460/169/27 461/1705/27 462/170/27 +f 464/172/28 465/1706/28 466/173/28 +f 467/175/29 468/210/29 466/173/29 +f 470/177/30 464/1707/30 463/174/30 +f 469/178/27 468/207/27 467/179/27 +f 471/181/31 472/1708/31 473/182/31 +f 476/184/32 477/203/32 478/185/32 +f 471/181/33 474/183/33 470/187/33 +f 480/189/28 481/1709/28 482/190/28 +f 460/192/29 459/171/29 479/193/29 +f 482/195/33 481/1710/33 475/186/33 +f 461/196/30 481/1711/30 480/189/30 +f 483/197/1 472/1708/1 471/181/1 +f 484/199/3 470/1712/3 474/183/3 +f 485/200/3 476/184/3 475/186/3 +f 486/202/1 482/1713/1 478/185/1 +f 466/173/28 487/211/28 488/204/28 +f 479/191/28 489/1714/28 490/205/28 +f 469/178/27 491/209/27 492/206/27 +f 459/171/1 493/212/1 489/208/1 +f 469/178/3 463/174/3 488/204/3 +f 468/210/1 492/1715/1 487/211/1 +f 462/170/27 494/213/27 493/212/27 +f 462/170/3 480/189/3 490/205/3 +f 496/214/34 497/237/34 498/215/34 +f 496/214/3 495/216/3 500/217/3 +f 496/214/28 499/218/28 501/219/28 +f 501/219/28 502/1716/28 497/220/28 +f 504/223/27 500/217/27 495/216/27 +f 495/216/27 498/221/27 504/223/27 +f 505/224/36 506/1717/36 507/225/36 +f 508/226/37 507/225/37 510/227/37 +f 512/229/281 509/228/281 510/227/281 +f 511/231/39 506/1717/39 505/224/39 +f 501/233/282 504/1718/282 503/234/282 +f 503/236/41 498/215/41 497/237/41 +f 500/217/283 504/1718/283 501/233/283 +f 517/1719/28 513/240/28 516/239/28 +f 513/240/28 514/1720/28 515/241/28 +f 522/244/27 518/1721/27 519/242/27 +f 519/242/27 520/1722/27 521/243/27 +f 519/245/43 513/251/43 517/246/43 +f 517/246/44 516/239/44 521/243/44 +f 521/243/3 516/239/3 515/241/3 +f 518/248/45 522/244/45 515/241/45 +f 519/245/1 518/1723/1 514/250/1 +f 529/1724/27 523/1725/27 524/252/27 +f 524/252/27 525/1726/27 526/253/27 +f 526/253/27 527/1727/27 528/254/27 +f 528/254/27 529/1724/27 524/252/27 +f 548/1728/28 539/1729/28 538/255/28 +f 538/255/28 532/1730/28 531/256/28 +f 531/256/28 544/1731/28 543/257/28 +f 543/257/28 548/1728/28 538/255/28 +f 546/258/28 547/1732/28 540/259/28 +f 540/259/28 541/1733/28 535/260/28 +f 535/260/28 534/1734/28 549/1735/28 +f 549/1735/28 546/258/28 535/260/28 +f 530/263/27 533/1736/27 537/261/27 +f 537/261/27 536/1737/27 550/1738/27 +f 550/1738/27 542/262/27 537/261/27 +f 542/262/27 545/1739/27 530/263/27 +f 552/264/46 553/1740/46 554/265/46 +f 552/267/47 551/1741/47 555/268/47 +f 556/270/48 555/1742/48 557/271/48 +f 557/273/49 559/1743/49 560/274/49 +f 560/276/50 559/1744/50 561/277/50 +f 561/279/284 563/1745/284 564/280/284 +f 564/282/52 563/1746/52 565/283/52 +f 565/285/53 567/1747/53 568/286/53 +f 567/288/54 569/1748/54 570/289/54 +f 570/291/55 569/1749/55 571/292/55 +f 571/294/56 573/1750/56 574/295/56 +f 574/297/285 573/1751/285 575/298/285 +f 553/300/58 576/1752/58 575/301/58 +f 586/304/59 589/1753/59 592/1754/59 +f 592/1754/59 581/1755/59 586/304/59 +f 581/1755/59 584/305/59 586/304/59 +f 584/305/59 577/1756/59 580/1757/59 +f 580/1757/59 587/303/59 584/305/59 +f 612/306/60 611/1758/60 610/307/60 +f 602/310/61 605/1759/61 608/1760/61 +f 608/1760/61 597/1761/61 602/310/61 +f 597/1761/61 600/311/61 602/310/61 +f 600/311/61 593/1762/61 596/1763/61 +f 596/1763/61 603/309/61 600/311/61 +f 622/313/59 625/1764/59 628/1765/59 +f 628/1765/59 617/1766/59 622/313/59 +f 617/1766/59 620/314/59 622/313/59 +f 620/314/59 613/1767/59 616/1768/59 +f 616/1768/59 623/312/59 620/314/59 +f 648/315/60 647/1769/60 646/316/60 +f 638/319/61 641/1770/61 644/1771/61 +f 644/1771/61 633/1772/61 638/319/61 +f 633/1772/61 636/320/61 638/319/61 +f 636/320/61 629/1773/61 632/1774/61 +f 632/1774/61 639/318/61 636/320/61 +f 658/322/59 661/1775/59 664/1776/59 +f 664/1776/59 653/1777/59 658/322/59 +f 653/1777/59 656/323/59 658/322/59 +f 656/323/59 649/1778/59 652/1779/59 +f 652/1779/59 659/321/59 656/323/59 +f 682/324/286 683/1780/286 684/325/286 +f 674/328/61 677/1781/61 680/1782/61 +f 680/1782/61 669/1783/61 674/328/61 +f 669/1783/61 672/329/61 674/328/61 +f 672/329/61 665/1784/61 668/1785/61 +f 668/1785/61 675/327/61 672/329/61 +f 700/331/62 697/1786/62 696/332/62 +f 696/332/62 695/1787/62 690/1788/62 +f 695/1787/62 686/1789/62 690/1788/62 +f 686/1789/62 685/1790/62 690/1788/62 +f 690/1788/62 689/330/62 696/332/62 +f 718/333/65 719/1791/65 720/334/65 +f 716/337/64 713/1792/64 712/338/64 +f 712/338/64 711/1793/64 706/1794/64 +f 711/1793/64 702/1795/64 706/1794/64 +f 702/1795/64 701/1796/64 706/1794/64 +f 706/1794/64 705/336/64 712/338/64 +f 736/340/62 733/1797/62 732/341/62 +f 732/341/62 731/1798/62 726/1799/62 +f 731/1798/62 722/1800/62 726/1799/62 +f 722/1800/62 721/1801/62 726/1799/62 +f 726/1799/62 725/339/62 732/341/62 +f 756/342/63 755/1802/63 754/343/63 +f 752/346/64 749/1803/64 748/347/64 +f 748/347/64 747/1804/64 742/1805/64 +f 747/1804/64 738/1806/64 742/1805/64 +f 738/1806/64 737/1807/64 742/1805/64 +f 742/1805/64 741/345/64 748/347/64 +f 772/349/62 769/1808/62 768/350/62 +f 768/350/62 767/1809/62 762/1810/62 +f 767/1809/62 758/1811/62 762/1810/62 +f 758/1811/62 757/1812/62 762/1810/62 +f 762/1810/62 761/348/62 768/350/62 +f 790/351/63 791/1813/63 792/352/63 +f 788/355/64 785/1814/64 784/356/64 +f 784/356/64 783/1815/64 778/1816/64 +f 783/1815/64 774/1817/64 778/1816/64 +f 774/1817/64 773/1818/64 778/1816/64 +f 778/1816/64 777/354/64 784/356/64 +f 793/357/61 797/407/61 798/358/61 +f 805/360/3 801/367/3 800/361/3 +f 803/363/66 802/1819/66 807/364/66 +f 807/366/67 802/1820/67 801/367/67 +f 808/368/68 793/1821/68 803/363/68 +f 793/369/1 808/368/1 809/370/1 +f 810/372/1 799/1822/1 798/373/1 +f 811/374/69 798/1823/69 797/375/69 +f 796/380/3 814/379/3 812/376/3 +f 795/382/287 794/371/287 809/370/287 +f 941/384/71 942/1824/71 943/385/71 +f 948/387/62 949/391/62 950/388/62 +f 954/390/72 950/388/72 949/391/72 +f 955/393/73 956/396/73 944/386/73 +f 946/394/74 945/1825/74 954/390/74 +f 951/395/75 952/1826/75 956/396/75 +f 946/397/76 953/392/76 949/391/76 +f 947/399/77 950/388/77 954/390/77 +f 941/401/78 944/386/78 956/396/78 +f 942/403/59 951/1827/59 955/393/59 +f 811/404/64 805/360/64 804/362/64 +f 806/405/64 807/1828/64 805/360/64 +f 808/368/64 806/405/64 811/404/64 +f 812/378/64 813/377/64 809/406/64 +f 797/407/61 793/357/61 794/410/61 +f 803/359/61 798/358/61 801/411/61 +f 798/358/61 799/1829/61 800/413/61 +f 966/415/79 969/1830/79 972/1831/79 +f 972/1831/79 961/1832/79 966/415/79 +f 961/1832/79 964/416/79 966/415/79 +f 964/416/79 957/1833/79 960/1834/79 +f 960/1834/79 967/414/79 964/416/79 +f 992/417/80 991/1835/80 990/418/80 +f 982/421/81 985/1836/81 988/1837/81 +f 988/1837/81 977/1838/81 982/421/81 +f 977/1838/81 980/422/81 982/421/81 +f 980/422/81 973/1839/81 976/1840/81 +f 976/1840/81 983/420/81 980/422/81 +f 1002/424/288 1005/1841/288 1008/1842/288 +f 1008/1842/79 997/1843/79 1002/424/79 +f 997/1843/79 1000/425/79 1002/424/79 +f 1000/425/79 993/1844/79 996/1845/79 +f 996/1845/79 1003/423/79 1000/425/79 +f 1028/426/80 1027/1846/80 1026/427/80 +f 1018/430/81 1021/1847/81 1024/1848/81 +f 1024/1848/81 1013/1849/81 1018/430/81 +f 1013/1849/81 1016/431/81 1018/430/81 +f 1016/431/81 1009/1850/81 1012/1851/81 +f 1012/1851/81 1019/429/81 1016/431/81 +f 1038/433/79 1041/1852/79 1044/1853/79 +f 1044/1853/79 1033/1854/79 1038/433/79 +f 1033/1854/79 1036/434/79 1038/433/79 +f 1036/434/79 1029/1855/79 1032/1856/79 +f 1032/1856/79 1039/432/79 1036/434/79 +f 1062/435/80 1063/1857/80 1064/436/80 +f 1054/439/81 1057/1858/81 1060/1859/81 +f 1060/1859/81 1049/1860/81 1054/439/81 +f 1049/1860/81 1052/440/81 1054/439/81 +f 1052/440/81 1045/1861/81 1048/1862/81 +f 1048/1862/81 1055/438/81 1052/440/81 +f 1080/442/85 1077/1863/85 1076/443/85 +f 1076/443/85 1075/1864/85 1070/1865/85 +f 1075/1864/85 1066/1866/85 1070/1865/85 +f 1066/1866/85 1065/1867/85 1070/1865/85 +f 1070/1865/85 1069/441/85 1076/443/85 +f 1097/444/86 1098/1868/86 1099/445/86 +f 1096/448/84 1093/1869/84 1092/449/84 +f 1092/449/84 1091/1870/84 1086/1871/84 +f 1091/1870/84 1082/1872/84 1086/1871/84 +f 1082/1872/84 1081/1873/84 1086/1871/84 +f 1086/1871/84 1085/447/84 1092/449/84 +f 1116/451/85 1113/1874/85 1112/452/85 +f 1112/452/85 1111/1875/85 1106/1876/85 +f 1111/1875/85 1102/1877/85 1106/1876/85 +f 1102/1877/85 1101/1878/85 1106/1876/85 +f 1106/1876/85 1105/450/85 1112/452/85 +f 1136/453/83 1135/1879/83 1134/454/83 +f 1132/457/84 1129/1880/84 1128/458/84 +f 1128/458/84 1127/1881/84 1122/1882/84 +f 1127/1881/84 1118/1883/84 1122/1882/84 +f 1118/1883/84 1117/1884/84 1122/1882/84 +f 1122/1882/84 1121/456/84 1128/458/84 +f 1152/460/85 1149/1885/85 1148/461/85 +f 1148/461/85 1147/1886/85 1142/1887/85 +f 1147/1886/85 1138/1888/85 1142/1887/85 +f 1138/1888/85 1137/1889/85 1142/1887/85 +f 1142/1887/85 1141/459/85 1148/461/85 +f 1170/462/83 1171/1890/83 1172/463/83 +f 1168/466/84 1165/1891/84 1164/467/84 +f 1164/467/84 1163/1892/84 1158/1893/84 +f 1163/1892/84 1154/1894/84 1158/1893/84 +f 1154/1894/84 1153/1895/84 1158/1893/84 +f 1158/1893/84 1157/465/84 1164/467/84 +f 1173/468/81 1177/498/81 1178/469/81 +f 1185/471/3 1181/478/3 1180/472/3 +f 1186/474/87 1183/480/87 1182/475/87 +f 1187/477/88 1182/1896/88 1181/478/88 +f 1188/479/89 1173/1897/89 1183/480/89 +f 1174/481/1 1173/1898/1 1188/479/1 +f 1190/483/1 1179/1899/1 1178/484/1 +f 1191/485/90 1178/1900/90 1177/486/90 +f 1176/491/3 1194/490/3 1192/487/3 +f 1175/493/91 1174/481/91 1189/482/91 +f 1191/495/84 1185/471/84 1184/473/84 +f 1186/496/84 1187/1901/84 1185/471/84 +f 1188/479/84 1186/496/84 1191/495/84 +f 1192/489/84 1193/488/84 1189/497/84 +f 1177/498/81 1173/468/81 1174/501/81 +f 1183/470/81 1178/469/81 1181/502/81 +f 1178/469/81 1179/1902/81 1180/504/81 +f 1204/506/92 1207/1903/92 1210/1904/92 +f 1210/1904/92 1199/1905/92 1204/506/92 +f 1199/1905/92 1202/507/92 1204/506/92 +f 1202/507/92 1195/1906/92 1198/1907/92 +f 1198/1907/92 1205/505/92 1202/507/92 +f 1230/508/289 1229/1908/289 1228/509/289 +f 1220/512/94 1223/1909/94 1226/1910/94 +f 1226/1910/94 1215/1911/94 1220/512/94 +f 1215/1911/94 1218/513/94 1220/512/94 +f 1218/513/94 1211/1912/94 1214/1913/94 +f 1214/1913/94 1221/511/94 1218/513/94 +f 1240/515/92 1243/1914/92 1246/1915/92 +f 1246/1915/92 1235/1916/92 1240/515/92 +f 1235/1916/92 1238/516/92 1240/515/92 +f 1238/516/92 1231/1917/92 1234/1918/92 +f 1234/1918/92 1241/514/92 1238/516/92 +f 1266/517/93 1265/1919/93 1264/518/93 +f 1256/521/94 1259/1920/94 1262/1921/94 +f 1262/1921/94 1251/1922/94 1256/521/94 +f 1251/1922/94 1254/522/94 1256/521/94 +f 1254/522/94 1247/1923/94 1250/1924/94 +f 1250/1924/94 1257/520/94 1254/522/94 +f 1276/524/92 1279/1925/92 1282/1926/92 +f 1282/1926/92 1271/1927/92 1276/524/92 +f 1271/1927/92 1274/525/92 1276/524/92 +f 1274/525/92 1267/1928/92 1270/1929/92 +f 1270/1929/92 1277/523/92 1274/525/92 +f 1300/526/289 1301/1930/289 1302/527/289 +f 1292/530/94 1295/1931/94 1298/1932/94 +f 1298/1932/94 1287/1933/94 1292/530/94 +f 1287/1933/94 1290/531/94 1292/530/94 +f 1290/531/94 1283/1934/94 1286/1935/94 +f 1286/1935/94 1293/529/94 1290/531/94 +f 1318/533/98 1315/1936/98 1314/534/98 +f 1314/534/98 1313/1937/98 1308/1938/98 +f 1313/1937/98 1304/1939/98 1308/1938/98 +f 1304/1939/98 1303/1940/98 1308/1938/98 +f 1308/1938/98 1307/532/98 1314/534/98 +f 1336/535/96 1337/1941/96 1338/536/96 +f 1334/539/97 1331/1942/97 1330/540/97 +f 1330/540/97 1329/1943/97 1324/1944/97 +f 1329/1943/97 1320/1945/97 1324/1944/97 +f 1320/1945/97 1319/1946/97 1324/1944/97 +f 1324/1944/97 1323/538/97 1330/540/97 +f 1354/542/98 1351/1947/98 1350/543/98 +f 1350/543/98 1349/1948/98 1344/1949/98 +f 1349/1948/98 1340/1950/98 1344/1949/98 +f 1340/1950/98 1339/1951/98 1344/1949/98 +f 1344/1949/98 1343/541/98 1350/543/98 +f 1374/544/96 1373/1952/96 1372/545/96 +f 1370/548/97 1367/1953/97 1366/549/97 +f 1366/549/97 1365/1954/97 1360/1955/97 +f 1365/1954/97 1356/1956/97 1360/1955/97 +f 1356/1956/97 1355/1957/97 1360/1955/97 +f 1360/1955/97 1359/547/97 1366/549/97 +f 1390/551/95 1387/1958/95 1386/552/95 +f 1386/552/98 1385/1959/98 1380/1960/98 +f 1385/1959/98 1376/1961/98 1380/1960/98 +f 1376/1961/95 1375/1962/95 1380/1960/95 +f 1380/1960/98 1379/550/98 1386/552/98 +f 1408/553/96 1409/1963/96 1410/554/96 +f 1406/557/97 1403/1964/97 1402/558/97 +f 1402/558/97 1401/1965/97 1396/1966/97 +f 1401/1965/97 1392/1967/97 1396/1966/97 +f 1392/1967/97 1391/1968/97 1396/1966/97 +f 1396/1966/97 1395/556/97 1402/558/97 +f 1411/559/94 1415/590/94 1416/560/94 +f 1423/562/3 1419/569/3 1418/563/3 +f 1424/565/99 1421/571/99 1420/566/99 +f 1425/568/100 1420/1969/100 1419/569/100 +f 1426/570/101 1411/1970/101 1421/571/101 +f 1411/572/1 1426/570/1 1427/573/1 +f 1428/575/1 1417/1971/1 1416/576/1 +f 1429/577/102 1416/1972/102 1415/578/102 +f 1414/583/3 1432/582/3 1430/579/3 +f 1413/585/103 1412/574/103 1427/573/103 +f 1429/587/97 1423/562/97 1422/564/97 +f 1424/588/97 1425/1973/97 1423/562/97 +f 1426/570/97 1424/588/97 1429/587/97 +f 1430/581/97 1431/580/97 1427/589/97 +f 1415/590/94 1411/559/94 1412/593/94 +f 1421/561/94 1416/560/94 1419/594/94 +f 1416/560/94 1417/1974/94 1418/596/94 +f 1434/597/104 1435/1975/104 1436/598/104 +f 1438/600/105 1439/1976/105 1440/601/105 +f 1441/603/106 1442/638/106 1440/601/106 +f 1444/605/290 1438/1977/290 1437/602/290 +f 1443/606/104 1442/635/104 1441/607/104 +f 1445/609/108 1446/1978/108 1447/610/108 +f 1450/612/291 1451/631/291 1452/613/291 +f 1445/609/110 1448/611/110 1444/615/110 +f 1454/617/105 1455/1979/105 1456/618/105 +f 1434/620/111 1433/599/111 1453/621/111 +f 1456/623/110 1455/1980/110 1449/614/110 +f 1435/624/107 1455/1981/107 1454/617/107 +f 1457/625/1 1446/1978/1 1445/609/1 +f 1458/627/3 1444/1982/3 1448/611/3 +f 1459/628/3 1450/612/3 1449/614/3 +f 1460/630/1 1456/1983/1 1452/613/1 +f 1440/601/105 1461/639/105 1462/632/105 +f 1453/619/105 1463/1984/105 1464/633/105 +f 1443/606/104 1465/637/104 1466/634/104 +f 1433/599/1 1467/640/1 1463/636/1 +f 1443/606/3 1437/602/3 1462/632/3 +f 1442/638/1 1466/1985/1 1461/639/1 +f 1436/598/104 1468/641/104 1467/640/104 +f 1436/598/3 1454/617/3 1464/633/3 +f 1469/642/112 1470/645/112 1471/643/112 +f 1470/645/3 1469/642/3 1474/646/3 +f 1470/645/105 1473/647/105 1475/648/105 +f 1475/648/214 1476/1986/214 1471/649/214 +f 1478/652/104 1474/646/104 1469/642/104 +f 1469/642/104 1472/650/104 1478/652/104 +f 1479/653/292 1480/1987/292 1481/654/292 +f 1482/655/115 1481/654/115 1484/656/115 +f 1485/658/116 1486/1988/116 1483/657/116 +f 1485/659/117 1480/1987/117 1479/653/117 +f 1475/661/293 1478/1989/293 1477/662/293 +f 1477/664/119 1472/644/119 1471/643/119 +f 1474/646/120 1478/1989/120 1475/661/120 +f 1491/1990/105 1487/667/105 1490/666/105 +f 1487/667/105 1488/1991/105 1489/668/105 +f 1496/671/104 1492/1992/104 1493/669/104 +f 1493/669/104 1494/1993/104 1495/670/104 +f 1493/672/121 1487/677/121 1491/673/121 +f 1494/674/122 1491/673/122 1490/666/122 +f 1495/670/3 1490/666/3 1489/668/3 +f 1488/675/123 1492/1994/123 1496/671/123 +f 1493/672/1 1492/1995/1 1488/676/1 +f 1503/1996/104 1497/1997/104 1498/678/104 +f 1498/678/104 1499/1998/104 1500/679/104 +f 1500/679/104 1501/1999/104 1502/680/104 +f 1502/680/104 1503/1996/104 1498/678/104 +f 1522/2000/105 1513/2001/105 1512/681/105 +f 1512/681/105 1506/2002/105 1505/682/105 +f 1505/682/105 1518/2003/105 1517/683/105 +f 1517/683/105 1522/2000/105 1512/681/105 +f 1520/684/105 1521/2004/105 1514/685/105 +f 1514/685/105 1515/2005/105 1509/686/105 +f 1509/686/105 1508/2006/105 1523/2007/105 +f 1523/2007/105 1520/684/105 1509/686/105 +f 1504/689/104 1507/2008/104 1511/687/104 +f 1511/687/104 1510/2009/104 1524/2010/104 +f 1524/2010/104 1516/688/104 1511/687/104 +f 1516/688/104 1519/2011/104 1504/689/104 +f 1526/690/124 1527/2012/124 1528/691/124 +f 1530/693/125 1531/2013/125 1532/694/125 +f 1533/696/126 1534/731/126 1532/694/126 +f 1536/698/127 1530/2014/127 1529/695/127 +f 1535/699/124 1534/728/124 1533/700/124 +f 1537/702/128 1538/2015/128 1539/703/128 +f 1542/705/129 1543/724/129 1544/706/129 +f 1537/702/130 1540/704/130 1536/708/130 +f 1546/710/125 1547/2016/125 1548/711/125 +f 1526/713/126 1525/692/126 1545/714/126 +f 1548/716/130 1547/2017/130 1541/707/130 +f 1527/717/127 1547/2018/127 1546/710/127 +f 1549/718/1 1538/2015/1 1537/702/1 +f 1550/720/3 1536/2019/3 1540/704/3 +f 1551/721/3 1542/705/3 1541/707/3 +f 1552/723/1 1548/2020/1 1544/706/1 +f 1532/694/125 1553/732/125 1554/725/125 +f 1545/712/125 1555/2021/125 1556/726/125 +f 1535/699/124 1557/730/124 1558/727/124 +f 1525/692/1 1559/733/1 1555/729/1 +f 1535/699/3 1529/695/3 1554/725/3 +f 1534/731/1 1558/2022/1 1553/732/1 +f 1528/691/124 1560/734/124 1559/733/124 +f 1528/691/3 1546/710/3 1556/726/3 +f 1561/735/131 1562/742/131 1563/736/131 +f 1565/738/3 1562/742/3 1561/735/3 +f 1562/742/125 1565/738/125 1567/740/125 +f 1567/740/294 1568/2023/294 1563/741/294 +f 1570/745/124 1566/739/124 1561/735/124 +f 1561/735/124 1564/743/124 1570/745/124 +f 1572/746/295 1573/2024/295 1574/747/295 +f 1574/747/134 1573/2024/134 1576/749/134 +f 1578/751/296 1575/750/296 1576/749/296 +f 1577/753/136 1572/746/136 1571/748/136 +f 1567/755/137 1570/2025/137 1569/756/137 +f 1569/758/138 1564/737/138 1563/736/138 +f 1566/739/139 1570/2025/139 1567/755/139 +f 1583/2026/125 1579/761/125 1582/760/125 +f 1579/761/125 1580/2027/125 1581/762/125 +f 1588/765/124 1584/2028/124 1585/763/124 +f 1585/763/124 1586/2029/124 1587/764/124 +f 1585/766/140 1579/772/140 1583/767/140 +f 1583/767/141 1582/760/141 1587/764/141 +f 1587/764/3 1582/760/3 1581/762/3 +f 1584/769/142 1588/765/142 1581/762/142 +f 1585/766/1 1584/2030/1 1580/771/1 +f 1595/2031/124 1589/2032/124 1590/773/124 +f 1590/773/124 1591/2033/124 1592/774/124 +f 1592/774/124 1593/2034/124 1594/775/124 +f 1594/775/124 1595/2031/124 1590/773/124 +f 1614/2035/125 1605/2036/125 1604/776/125 +f 1604/776/125 1598/2037/125 1597/777/125 +f 1597/777/125 1610/2038/125 1609/778/125 +f 1609/778/125 1614/2035/125 1604/776/125 +f 1612/779/125 1613/2039/125 1606/780/125 +f 1606/780/125 1607/2040/125 1601/781/125 +f 1601/781/125 1600/2041/125 1615/2042/125 +f 1615/2042/125 1612/779/125 1601/781/125 +f 1596/784/124 1599/2043/124 1603/782/124 +f 1603/782/124 1602/2044/124 1616/2045/124 +f 1616/2045/124 1608/783/124 1603/782/124 +f 1608/783/124 1611/2046/124 1596/784/124 +f 1618/785/33 1619/2047/33 1620/786/33 +f 1622/788/143 1623/2048/143 1624/789/143 +f 1625/791/144 1626/826/144 1624/789/144 +f 1628/793/145 1622/2049/145 1621/790/145 +f 1627/794/33 1626/823/33 1625/795/33 +f 1629/797/146 1630/2050/146 1631/798/146 +f 1634/800/147 1635/819/147 1636/801/147 +f 1629/797/28 1632/799/28 1628/803/28 +f 1638/805/143 1639/2051/143 1640/806/143 +f 1618/808/144 1617/787/144 1637/809/144 +f 1640/811/28 1639/2052/28 1633/802/28 +f 1619/812/145 1639/2053/145 1638/805/145 +f 1641/813/1 1630/2050/1 1629/797/1 +f 1642/815/3 1628/2054/3 1632/799/3 +f 1643/816/3 1634/800/3 1633/802/3 +f 1644/818/1 1640/2055/1 1636/801/1 +f 1624/789/143 1645/827/143 1646/820/143 +f 1637/807/143 1647/2056/143 1648/821/143 +f 1627/794/33 1649/825/33 1650/822/33 +f 1617/787/1 1651/828/1 1647/824/1 +f 1627/794/3 1621/790/3 1646/820/3 +f 1626/826/1 1650/2057/1 1645/827/1 +f 1620/786/33 1652/829/33 1651/828/33 +f 1620/786/3 1638/805/3 1648/821/3 +f 1654/830/297 1655/853/297 1656/831/297 +f 1657/833/3 1654/830/3 1653/832/3 +f 1654/830/143 1657/833/143 1659/835/143 +f 1659/835/143 1660/2058/143 1655/836/143 +f 1662/839/33 1658/834/33 1653/832/33 +f 1653/832/33 1656/837/33 1662/839/33 +f 1663/840/298 1664/2059/298 1665/841/298 +f 1666/842/151 1665/841/151 1668/843/151 +f 1670/845/299 1667/844/299 1668/843/299 +f 1669/847/153 1664/2059/153 1663/840/153 +f 1659/849/300 1662/2060/300 1661/850/300 +f 1660/852/155 1661/2061/155 1656/831/155 +f 1658/834/156 1662/2060/156 1659/849/156 +f 1675/2062/143 1671/855/143 1674/854/143 +f 1671/855/143 1672/2063/143 1673/856/143 +f 1680/859/33 1676/2064/33 1677/857/33 +f 1677/857/33 1678/2065/33 1679/858/33 +f 1677/860/157 1671/866/157 1675/861/157 +f 1675/861/158 1674/854/158 1679/858/158 +f 1679/858/3 1674/854/3 1673/856/3 +f 1676/863/159 1680/859/159 1673/856/159 +f 1677/860/1 1676/2066/1 1672/865/1 +f 1687/2067/33 1681/2068/33 1682/867/33 +f 1682/867/33 1683/2069/33 1684/868/33 +f 1684/868/33 1685/2070/33 1686/869/33 +f 1686/869/33 1687/2067/33 1682/867/33 +f 1706/2071/143 1697/2072/143 1696/870/143 +f 1696/870/143 1690/2073/143 1689/871/143 +f 1689/871/143 1702/2074/143 1701/872/143 +f 1701/872/143 1706/2071/143 1696/870/143 +f 1704/873/143 1705/2075/143 1698/874/143 +f 1698/874/143 1699/2076/143 1693/875/143 +f 1693/875/143 1692/2077/143 1707/2078/143 +f 1707/2078/143 1704/873/143 1693/875/143 +f 1688/878/33 1691/2079/33 1695/876/33 +f 1695/876/33 1694/2080/33 1708/2081/33 +f 1708/2081/33 1700/877/33 1695/876/33 +f 1700/877/33 1703/2082/33 1688/878/33 +f 1710/879/110 1711/2083/110 1712/880/110 +f 1714/882/160 1715/2084/160 1716/883/160 +f 1717/885/165 1718/920/165 1716/883/165 +f 1720/887/301 1714/2085/301 1713/884/301 +f 1719/888/110 1718/917/110 1717/889/110 +f 1721/891/302 1722/2086/302 1723/892/302 +f 1726/894/164 1727/913/164 1728/895/164 +f 1721/891/105 1724/893/105 1720/897/105 +f 1730/899/160 1731/2087/160 1732/900/160 +f 1710/902/161 1709/881/161 1729/903/161 +f 1732/905/105 1731/2088/105 1725/896/105 +f 1711/906/301 1731/2089/301 1730/899/301 +f 1733/907/1 1722/2086/1 1721/891/1 +f 1734/909/3 1720/2090/3 1724/893/3 +f 1735/910/3 1726/894/3 1725/896/3 +f 1736/912/1 1732/2091/1 1728/895/1 +f 1716/883/160 1737/921/160 1738/914/160 +f 1729/901/160 1739/2092/160 1740/915/160 +f 1719/888/110 1741/919/110 1742/916/110 +f 1709/881/1 1743/922/1 1739/918/1 +f 1719/888/3 1713/884/3 1738/914/3 +f 1718/920/1 1742/2093/1 1737/921/1 +f 1712/880/110 1744/923/110 1743/922/110 +f 1712/880/3 1730/899/3 1740/915/3 +f 1745/924/166 1746/931/166 1747/925/166 +f 1749/927/3 1746/931/3 1745/924/3 +f 1746/931/160 1749/927/160 1751/929/160 +f 1751/929/160 1752/2094/160 1747/930/160 +f 1754/934/110 1750/928/110 1745/924/110 +f 1745/924/110 1748/932/110 1754/934/110 +f 1755/935/303 1756/2095/303 1757/936/303 +f 1758/937/169 1757/936/169 1760/938/169 +f 1762/940/170 1759/939/170 1760/938/170 +f 1761/942/171 1756/2095/171 1755/935/171 +f 1751/944/304 1754/2096/304 1753/945/304 +f 1753/947/305 1748/926/305 1747/925/305 +f 1750/928/174 1754/2096/174 1751/944/174 +f 1767/2097/160 1763/950/160 1766/949/160 +f 1763/950/160 1764/2098/160 1765/951/160 +f 1772/954/110 1768/2099/110 1769/952/110 +f 1769/952/110 1770/2100/110 1771/953/110 +f 1769/955/175 1763/961/175 1767/956/175 +f 1770/957/176 1767/956/176 1766/949/176 +f 1771/953/3 1766/949/3 1765/951/3 +f 1768/958/177 1772/954/177 1765/951/177 +f 1769/955/1 1768/2101/1 1764/960/1 +f 1779/2102/110 1773/2103/110 1774/962/110 +f 1774/962/110 1775/2104/110 1776/963/110 +f 1776/963/110 1777/2105/110 1778/964/110 +f 1778/964/110 1779/2102/110 1774/962/110 +f 1798/2106/160 1789/2107/160 1788/965/160 +f 1788/965/160 1782/2108/160 1781/966/160 +f 1781/966/160 1794/2109/160 1793/967/160 +f 1793/967/160 1798/2106/160 1788/965/160 +f 1796/968/160 1797/2110/160 1790/969/160 +f 1790/969/160 1791/2111/160 1785/970/160 +f 1785/970/160 1784/2112/160 1799/2113/160 +f 1799/2113/160 1796/968/160 1785/970/160 +f 1780/973/110 1783/2114/110 1787/971/110 +f 1787/971/110 1786/2115/110 1800/2116/110 +f 1800/2116/110 1792/972/110 1787/971/110 +f 1792/972/110 1795/2117/110 1780/973/110 +f 1802/974/130 1803/2118/130 1804/975/130 +f 1806/977/178 1807/2119/178 1808/978/178 +f 1809/980/179 1810/1015/179 1808/978/179 +f 1812/982/180 1806/2120/180 1805/979/180 +f 1811/983/130 1810/1012/130 1809/984/130 +f 1813/986/181 1814/2121/181 1815/987/181 +f 1818/989/182 1819/1008/182 1820/990/182 +f 1813/986/294 1816/988/294 1812/992/294 +f 1822/994/178 1823/2122/178 1824/995/178 +f 1802/997/179 1801/976/179 1821/998/179 +f 1824/1000/125 1823/2123/125 1817/991/125 +f 1803/1001/180 1823/2124/180 1822/994/180 +f 1825/1002/1 1814/2121/1 1813/986/1 +f 1826/1004/3 1812/2125/3 1816/988/3 +f 1827/1005/3 1818/989/3 1817/991/3 +f 1828/1007/1 1824/2126/1 1820/990/1 +f 1808/978/178 1829/1016/178 1830/1009/178 +f 1821/996/178 1831/2127/178 1832/1010/178 +f 1811/983/130 1833/1014/130 1834/1011/130 +f 1801/976/1 1835/1017/1 1831/1013/1 +f 1811/983/3 1805/979/3 1830/1009/3 +f 1810/1015/1 1834/2128/1 1829/1016/1 +f 1804/975/130 1836/1018/130 1835/1017/130 +f 1804/975/3 1822/994/3 1832/1010/3 +f 1837/1019/183 1838/1026/183 1839/1020/183 +f 1841/1022/3 1838/1026/3 1837/1019/3 +f 1838/1026/178 1841/1022/178 1843/1024/178 +f 1843/1024/178 1844/2129/178 1839/1025/178 +f 1846/1029/130 1842/1023/130 1837/1019/130 +f 1837/1019/130 1840/1027/130 1846/1029/130 +f 1848/1030/306 1849/2130/306 1850/1031/306 +f 1850/1031/186 1849/2130/186 1852/1033/186 +f 1853/1035/307 1854/2131/307 1851/1034/307 +f 1853/1036/188 1848/1030/188 1847/1032/188 +f 1843/1038/308 1846/2132/308 1845/1039/308 +f 1845/1041/190 1840/1021/190 1839/1020/190 +f 1842/1023/191 1846/2132/191 1843/1038/191 +f 1859/2133/178 1855/1044/178 1858/1043/178 +f 1855/1044/178 1856/2134/178 1857/1045/178 +f 1864/1048/130 1860/2135/130 1861/1046/130 +f 1861/1046/130 1862/2136/130 1863/1047/130 +f 1861/1049/192 1855/1055/192 1859/1050/192 +f 1859/1050/193 1858/1043/193 1863/1047/193 +f 1863/1047/3 1858/1043/3 1857/1045/3 +f 1860/1052/194 1864/1048/194 1857/1045/194 +f 1861/1049/1 1860/2137/1 1856/1054/1 +f 1871/2138/130 1865/2139/130 1870/1058/130 +f 1865/2139/130 1866/1056/130 1870/1058/130 +f 1866/1056/130 1867/2140/130 1868/1057/130 +f 1868/1057/130 1869/2141/130 1870/1058/130 +f 1890/2142/178 1881/2143/178 1880/1059/178 +f 1880/1059/178 1874/2144/178 1873/1060/178 +f 1873/1060/178 1886/2145/178 1885/1061/178 +f 1885/1061/178 1890/2142/178 1880/1059/178 +f 1888/1062/178 1889/2146/178 1882/1063/178 +f 1882/1063/178 1883/2147/178 1877/1064/178 +f 1877/1064/178 1876/2148/178 1891/2149/178 +f 1891/2149/178 1888/1062/178 1877/1064/178 +f 1872/1067/130 1875/2150/130 1879/1065/130 +f 1879/1065/130 1878/2151/130 1892/2152/130 +f 1892/2152/130 1884/1066/130 1879/1065/130 +f 1884/1066/130 1887/2153/130 1872/1067/130 +f 1894/1068/28 1895/2154/28 1896/1069/28 +f 1898/1071/27 1899/2155/27 1900/1072/27 +f 1902/1074/195 1900/1072/195 1899/1075/195 +f 1904/1077/196 1898/2156/196 1897/1073/196 +f 1903/1078/28 1902/1107/28 1901/1079/28 +f 1905/1081/197 1906/2157/197 1907/1082/197 +f 1910/1084/198 1911/1103/198 1912/1085/198 +f 1905/1081/143 1908/1083/143 1904/1087/143 +f 1914/1089/27 1915/2158/27 1916/1090/27 +f 1894/1092/195 1893/1070/195 1913/1093/195 +f 1916/1095/143 1915/2159/143 1909/1086/143 +f 1895/1096/196 1915/2160/196 1914/1089/196 +f 1917/1097/1 1906/2157/1 1905/1081/1 +f 1918/1099/3 1904/2161/3 1908/1083/3 +f 1919/1100/3 1910/1084/3 1909/1086/3 +f 1920/1102/1 1916/2162/1 1912/1085/1 +f 1900/1072/27 1921/1110/27 1922/1104/27 +f 1913/1091/27 1923/2163/27 1924/1105/27 +f 1903/1078/28 1925/1109/28 1926/1106/28 +f 1893/1070/1 1927/1111/1 1923/1108/1 +f 1903/1078/3 1897/1073/3 1922/1104/3 +f 1902/1074/1 1926/2164/1 1921/1110/1 +f 1896/1069/28 1928/1112/28 1927/1111/28 +f 1896/1069/3 1914/1089/3 1924/1105/3 +f 1929/1113/309 1930/1120/309 1931/1114/309 +f 1933/1116/3 1930/1120/3 1929/1113/3 +f 1930/1120/27 1933/1116/27 1935/1118/27 +f 1935/1118/27 1936/2165/27 1931/1119/27 +f 1938/1123/28 1934/1117/28 1929/1113/28 +f 1929/1113/28 1932/1121/28 1938/1123/28 +f 1939/1124/201 1940/2166/201 1941/1125/201 +f 1942/1126/39 1941/1125/39 1944/1127/39 +f 1946/1129/310 1943/1128/310 1944/1127/310 +f 1945/1131/37 1940/2166/37 1939/1124/37 +f 1935/1133/203 1938/2167/203 1937/1134/203 +f 1937/1136/204 1932/1115/204 1931/1114/204 +f 1934/1117/205 1938/2167/205 1935/1133/205 +f 1951/2168/27 1947/1139/27 1950/1138/27 +f 1947/1139/27 1948/2169/27 1949/1140/27 +f 1956/1143/28 1952/2170/28 1953/1141/28 +f 1953/1141/28 1954/2171/28 1955/1142/28 +f 1953/1144/206 1947/1150/206 1951/1145/206 +f 1951/1145/207 1950/1138/207 1955/1142/207 +f 1955/1142/3 1950/1138/3 1949/1140/3 +f 1952/1147/208 1956/1143/208 1949/1140/208 +f 1953/1144/1 1952/2172/1 1948/1149/1 +f 1963/2173/28 1957/2174/28 1962/1153/28 +f 1957/2174/28 1958/1151/28 1962/1153/28 +f 1958/1151/28 1959/2175/28 1960/1152/28 +f 1960/1152/28 1961/2176/28 1962/1153/28 +f 1982/2177/27 1973/2178/27 1977/1156/27 +f 1973/2178/27 1972/1154/27 1977/1156/27 +f 1972/1154/311 1966/2179/311 1965/1155/311 +f 1965/1155/27 1978/2180/27 1977/1156/27 +f 1980/1157/27 1981/2181/27 1974/1158/27 +f 1974/1158/27 1975/2182/27 1969/1159/27 +f 1969/1159/27 1968/2183/27 1983/2184/27 +f 1983/2184/27 1980/1157/27 1969/1159/27 +f 1964/1162/28 1967/2185/28 1971/1160/28 +f 1971/1160/28 1970/2186/28 1984/2187/28 +f 1984/2187/28 1976/1161/28 1971/1160/28 +f 1976/1161/28 1979/2188/28 1964/1162/28 +f 1986/1163/105 1987/2189/105 1988/1164/105 +f 1990/1166/104 1991/2190/104 1992/1167/104 +f 1993/1169/209 1994/1204/209 1992/1167/209 +f 1996/1171/210 1990/2191/210 1989/1168/210 +f 1995/1172/105 1994/1201/105 1993/1173/105 +f 1997/1175/211 1998/2192/211 1999/1176/211 +f 2002/1178/312 2003/1197/312 2004/1179/312 +f 1997/1175/160 2000/1177/160 1996/1181/160 +f 2006/1183/104 2007/2193/104 2008/1184/104 +f 1986/1186/313 1985/1165/313 2005/1187/313 +f 2008/1189/160 2007/2194/160 2001/1180/160 +f 1987/1190/210 2007/2195/210 2006/1183/210 +f 2009/1191/1 1998/2192/1 1997/1175/1 +f 2010/1193/3 1996/2196/3 2000/1177/3 +f 2011/1194/3 2002/1178/3 2001/1180/3 +f 2012/1196/1 2008/2197/1 2004/1179/1 +f 1992/1167/104 2013/1205/104 2014/1198/104 +f 2005/1185/104 2015/2198/104 2016/1199/104 +f 1995/1172/105 2017/1203/105 2018/1200/105 +f 1985/1165/1 2019/1206/1 2015/1202/1 +f 1995/1172/3 1989/1168/3 2014/1198/3 +f 1994/1204/1 2018/2199/1 2013/1205/1 +f 1988/1164/105 2020/1207/105 2019/1206/105 +f 1988/1164/3 2006/1183/3 2016/1199/3 +f 2021/1208/213 2022/1215/213 2023/1209/213 +f 2025/1211/3 2022/1215/3 2021/1208/3 +f 2022/1215/104 2025/1211/104 2027/1213/104 +f 2027/1213/104 2028/2200/104 2023/1214/104 +f 2030/1218/105 2026/1212/105 2021/1208/105 +f 2021/1208/105 2024/1216/105 2030/1218/105 +f 2032/1219/314 2033/2201/314 2034/1220/314 +f 2034/1220/117 2033/2201/117 2036/1222/117 +f 2037/1224/216 2038/2202/216 2035/1223/216 +f 2037/1225/115 2032/1219/115 2031/1221/115 +f 2027/1227/315 2030/2203/315 2029/1228/315 +f 2029/1230/218 2024/1210/218 2023/1209/218 +f 2026/1212/219 2030/2203/219 2027/1227/219 +f 2043/2204/104 2039/1233/104 2042/1232/104 +f 2039/1233/104 2040/2205/104 2041/1234/104 +f 2048/1237/105 2044/2206/105 2045/1235/105 +f 2045/1235/105 2046/2207/105 2047/1236/105 +f 2045/1238/220 2039/1244/220 2043/1239/220 +f 2043/1239/221 2042/1232/221 2047/1236/221 +f 2047/1236/3 2042/1232/3 2041/1234/3 +f 2044/1241/222 2048/1237/222 2041/1234/222 +f 2045/1238/1 2044/2208/1 2040/1243/1 +f 2055/2209/105 2049/2210/105 2050/1245/105 +f 2050/1245/105 2051/2211/105 2052/1246/105 +f 2052/1246/105 2053/2212/105 2054/1247/105 +f 2054/1247/105 2055/2209/105 2050/1245/105 +f 2074/2213/104 2065/2214/104 2069/1250/104 +f 2065/2214/104 2064/1248/104 2069/1250/104 +f 2064/1248/104 2058/2215/104 2057/1249/104 +f 2057/1249/104 2070/2216/104 2069/1250/104 +f 2072/1251/104 2073/2217/104 2066/1252/104 +f 2066/1252/104 2067/2218/104 2061/1253/104 +f 2061/1253/104 2060/2219/104 2075/2220/104 +f 2075/2220/104 2072/1251/104 2061/1253/104 +f 2056/1256/105 2059/2221/105 2063/1254/105 +f 2063/1254/105 2062/2222/105 2076/2223/105 +f 2076/2223/105 2068/1255/105 2063/1254/105 +f 2068/1255/105 2071/2224/105 2056/1256/105 +f 2078/1257/125 2079/2225/125 2080/1258/125 +f 2082/1260/124 2083/2226/124 2084/1261/124 +f 2086/1263/223 2084/1261/223 2083/1264/223 +f 2088/1266/224 2082/2227/224 2081/1262/224 +f 2087/1267/125 2086/1296/125 2085/1268/125 +f 2089/1270/225 2090/2228/225 2091/1271/225 +f 2094/1273/226 2095/1292/226 2096/1274/226 +f 2089/1270/178 2092/1272/178 2088/1276/178 +f 2098/1278/124 2099/2229/124 2100/1279/124 +f 2078/1281/223 2077/1259/223 2097/1282/223 +f 2100/1284/178 2099/2230/178 2093/1275/178 +f 2079/1285/224 2099/2231/224 2098/1278/224 +f 2101/1286/1 2090/2228/1 2089/1270/1 +f 2102/1288/3 2088/2232/3 2092/1272/3 +f 2103/1289/3 2094/1273/3 2093/1275/3 +f 2104/1291/1 2100/2233/1 2096/1274/1 +f 2084/1261/124 2105/1299/124 2106/1293/124 +f 2097/1280/124 2107/2234/124 2108/1294/124 +f 2087/1267/125 2109/1298/125 2110/1295/125 +f 2077/1259/1 2111/1300/1 2107/1297/1 +f 2087/1267/3 2081/1262/3 2106/1293/3 +f 2086/1263/1 2110/2235/1 2105/1299/1 +f 2080/1258/125 2112/1301/125 2111/1300/125 +f 2080/1258/3 2098/1278/3 2108/1294/3 +f 2114/1302/227 2115/1325/227 2116/1303/227 +f 2117/1305/3 2114/1302/3 2113/1304/3 +f 2114/1302/124 2117/1305/124 2119/1307/124 +f 2119/1307/316 2120/2236/316 2115/1308/316 +f 2122/1311/125 2118/1306/125 2113/1304/125 +f 2113/1304/125 2116/1309/125 2122/1311/125 +f 2123/1312/317 2124/2237/317 2125/1313/317 +f 2126/1314/136 2125/1313/136 2128/1315/136 +f 2130/1317/318 2127/1316/318 2128/1315/318 +f 2129/1319/134 2124/2237/134 2123/1312/134 +f 2119/1321/319 2122/2238/319 2121/1322/319 +f 2121/1324/232 2116/1303/232 2115/1325/232 +f 2118/1306/233 2122/2238/233 2119/1321/233 +f 2135/2239/124 2131/1328/124 2134/1327/124 +f 2131/1328/124 2132/2240/124 2133/1329/124 +f 2140/1332/125 2136/2241/125 2137/1330/125 +f 2137/1330/125 2138/2242/125 2139/1331/125 +f 2131/1333/234 2135/2243/234 2138/1334/234 +f 2138/1334/235 2135/2243/235 2134/1327/235 +f 2139/1331/3 2134/1327/3 2133/1329/3 +f 2136/1336/236 2140/1332/236 2133/1329/236 +f 2137/1335/1 2136/2244/1 2132/1338/1 +f 2147/2245/125 2141/2246/125 2142/1339/125 +f 2142/1339/125 2143/2247/125 2144/1340/125 +f 2144/1340/125 2145/2248/125 2146/1341/125 +f 2146/1341/125 2147/2245/125 2142/1339/125 +f 2166/2249/124 2157/2250/124 2156/1342/124 +f 2156/1342/124 2150/2251/124 2149/1343/124 +f 2149/1343/124 2162/2252/124 2161/1344/124 +f 2161/1344/124 2166/2249/124 2156/1342/124 +f 2164/1345/124 2165/2253/124 2158/1346/124 +f 2158/1346/124 2159/2254/124 2153/1347/124 +f 2153/1347/124 2152/2255/124 2167/2256/124 +f 2167/2256/124 2164/1345/124 2153/1347/124 +f 2148/1350/125 2151/2257/125 2155/1348/125 +f 2155/1348/125 2154/2258/125 2168/2259/125 +f 2168/2259/125 2160/1349/125 2155/1348/125 +f 2160/1349/125 2163/2260/125 2148/1350/125 +f 2170/1351/143 2171/2261/143 2172/1352/143 +f 2174/1354/33 2175/2262/33 2176/1355/33 +f 2177/1357/241 2178/1392/241 2176/1355/241 +f 2180/1359/238 2174/2263/238 2173/1356/238 +f 2179/1360/143 2178/1389/143 2177/1361/143 +f 2181/1363/239 2182/2264/239 2183/1364/239 +f 2186/1366/240 2187/1385/240 2188/1367/240 +f 2181/1363/27 2184/1365/27 2180/1369/27 +f 2190/1371/33 2191/2265/33 2192/1372/33 +f 2170/1374/241 2169/1353/241 2189/1375/241 +f 2192/1377/27 2191/2266/27 2185/1368/27 +f 2171/1378/238 2191/2267/238 2190/1371/238 +f 2193/1379/1 2182/2264/1 2181/1363/1 +f 2194/1381/3 2180/2268/3 2184/1365/3 +f 2195/1382/3 2186/1366/3 2185/1368/3 +f 2196/1384/1 2192/2269/1 2188/1367/1 +f 2176/1355/33 2197/1393/33 2198/1386/33 +f 2189/1373/33 2199/2270/33 2200/1387/33 +f 2179/1360/143 2201/1391/143 2202/1388/143 +f 2169/1353/1 2203/1394/1 2199/1390/1 +f 2179/1360/3 2173/1356/3 2198/1386/3 +f 2178/1392/1 2202/2271/1 2197/1393/1 +f 2172/1352/143 2204/1395/143 2203/1394/143 +f 2172/1352/3 2190/1371/3 2200/1387/3 +f 2205/1396/320 2206/1403/320 2207/1397/320 +f 2209/1399/3 2206/1403/3 2205/1396/3 +f 2206/1403/33 2209/1399/33 2211/1401/33 +f 2211/1401/33 2212/2272/33 2207/1402/33 +f 2214/1406/143 2210/1400/143 2205/1396/143 +f 2205/1396/143 2208/1404/143 2214/1406/143 +f 2215/1407/321 2216/2273/321 2217/1408/321 +f 2218/1409/153 2217/1408/153 2220/1410/153 +f 2221/1412/322 2222/2274/322 2219/1411/322 +f 2221/1413/151 2216/2273/151 2215/1407/151 +f 2211/1415/323 2214/2275/323 2213/1416/323 +f 2213/1418/247 2208/1398/247 2207/1397/247 +f 2210/1400/248 2214/2275/248 2211/1415/248 +f 2227/2276/33 2223/1421/33 2226/1420/33 +f 2223/1421/33 2224/2277/33 2225/1422/33 +f 2232/1425/143 2228/2278/143 2229/1423/143 +f 2229/1423/143 2230/2279/143 2231/1424/143 +f 2229/1426/249 2223/1432/249 2227/1427/249 +f 2230/1428/250 2227/1427/250 2226/1420/250 +f 2231/1424/3 2226/1420/3 2225/1422/3 +f 2228/1429/251 2232/1425/251 2225/1422/251 +f 2229/1426/1 2228/2280/1 2224/1431/1 +f 2239/2281/143 2233/2282/143 2234/1433/143 +f 2234/1433/143 2235/2283/143 2236/1434/143 +f 2236/1434/143 2237/2284/143 2238/1435/143 +f 2238/1435/143 2239/2281/143 2234/1433/143 +f 2258/2285/33 2249/2286/33 2248/1436/33 +f 2248/1436/33 2242/2287/33 2241/1437/33 +f 2241/1437/33 2254/2288/33 2253/1438/33 +f 2253/1438/33 2258/2285/33 2248/1436/33 +f 2256/1439/33 2257/2289/33 2250/1440/33 +f 2250/1440/33 2251/2290/33 2245/1441/33 +f 2245/1441/33 2244/2291/33 2259/2292/33 +f 2259/2292/33 2256/1439/33 2245/1441/33 +f 2240/1444/143 2243/2293/143 2247/1442/143 +f 2247/1442/143 2246/2294/143 2260/2295/143 +f 2260/2295/143 2252/1443/143 2247/1442/143 +f 2252/1443/143 2255/2296/143 2240/1444/143 +f 2262/1445/160 2263/2297/160 2264/1446/160 +f 2266/1448/110 2267/2298/110 2268/1449/110 +f 2269/1451/324 2270/1487/324 2268/1449/324 +f 2272/1453/325 2266/2299/325 2265/1450/325 +f 2271/1454/160 2270/1484/160 2269/1455/160 +f 2273/1457/326 2274/2300/326 2275/1458/326 +f 2278/1460/255 2279/1480/255 2280/1461/255 +f 2273/1457/104 2276/1459/104 2272/1463/104 +f 2281/1465/110 2282/1473/110 2283/1466/110 +f 2262/1468/324 2261/1447/324 2281/1469/324 +f 2284/1471/104 2283/2301/104 2277/1462/104 +f 2263/1472/325 2283/2302/325 2282/1473/325 +f 2285/1474/1 2274/2300/1 2273/1457/1 +f 2286/1476/3 2272/2303/3 2276/1459/3 +f 2287/1477/3 2278/1460/3 2277/1462/3 +f 2288/1479/1 2284/2304/1 2280/1461/1 +f 2268/1449/110 2289/1488/110 2290/1481/110 +f 2281/1465/110 2291/2305/110 2292/1482/110 +f 2271/1454/160 2293/1486/160 2294/1483/160 +f 2261/1447/1 2295/1489/1 2291/1485/1 +f 2271/1454/3 2265/1450/3 2290/1481/3 +f 2270/1487/1 2294/2306/1 2289/1488/1 +f 2264/1446/160 2296/1490/160 2295/1489/160 +f 2264/1446/3 2282/1473/3 2292/1482/3 +f 2297/1491/256 2298/1498/256 2299/1492/256 +f 2301/1494/3 2298/1498/3 2297/1491/3 +f 2298/1498/110 2301/1494/110 2303/1496/110 +f 2303/1496/110 2304/2307/110 2299/1497/110 +f 2306/1501/160 2302/1495/160 2297/1491/160 +f 2297/1491/160 2300/1499/160 2306/1501/160 +f 2308/1502/327 2309/2308/327 2310/1503/327 +f 2310/1503/171 2309/2308/171 2312/1505/171 +f 2314/1507/259 2311/1506/259 2312/1505/259 +f 2313/1509/169 2308/1502/169 2307/1504/169 +f 2303/1511/328 2306/2309/328 2305/1512/328 +f 2305/1514/329 2300/1493/329 2299/1492/329 +f 2302/1495/330 2306/2309/330 2303/1511/330 +f 2319/2310/110 2315/1517/110 2318/1516/110 +f 2315/1517/110 2316/2311/110 2317/1518/110 +f 2324/1521/160 2320/2312/160 2321/1519/160 +f 2321/1519/160 2322/2313/160 2323/1520/160 +f 2321/1522/263 2315/1528/263 2319/1523/263 +f 2322/1524/264 2319/1523/264 2318/1516/264 +f 2323/1520/3 2318/1516/3 2317/1518/3 +f 2320/1525/265 2324/1521/265 2317/1518/265 +f 2321/1522/1 2320/2314/1 2316/1527/1 +f 2331/2315/160 2325/2316/160 2326/1529/160 +f 2326/1529/160 2327/2317/160 2328/1530/160 +f 2328/1530/160 2329/2318/160 2330/1531/160 +f 2330/1531/160 2331/2315/160 2326/1529/160 +f 2350/2319/110 2341/2320/110 2340/1532/110 +f 2340/1532/110 2334/2321/110 2333/1533/110 +f 2333/1533/110 2346/2322/110 2345/1534/110 +f 2345/1534/110 2350/2319/110 2340/1532/110 +f 2348/1535/110 2349/2323/110 2342/1536/110 +f 2342/1536/110 2343/2324/110 2337/1537/110 +f 2337/1537/110 2336/2325/110 2351/2326/110 +f 2351/2326/110 2348/1535/110 2337/1537/110 +f 2332/1540/160 2335/2327/160 2339/1538/160 +f 2339/1538/160 2338/2328/160 2352/2329/160 +f 2352/2329/160 2344/1539/160 2339/1538/160 +f 2344/1539/160 2347/2330/160 2332/1540/160 +f 2354/1541/178 2355/2331/178 2356/1542/178 +f 2358/1544/130 2359/2332/130 2360/1545/130 +f 2361/1547/266 2362/1583/266 2360/1545/266 +f 2363/1549/267 2364/2333/267 2358/1550/267 +f 2363/1549/178 2362/1580/178 2361/1551/178 +f 2365/1553/268 2366/2334/268 2367/1554/268 +f 2370/1556/269 2371/1576/269 2372/1557/269 +f 2365/1553/124 2368/1555/124 2364/1559/124 +f 2373/1561/130 2374/1569/130 2375/1562/130 +f 2354/1564/266 2353/1543/266 2373/1565/266 +f 2376/1567/124 2375/2335/124 2369/1558/124 +f 2355/1568/267 2375/2336/267 2374/1569/267 +f 2377/1570/1 2366/2334/1 2365/1553/1 +f 2378/1572/3 2364/2337/3 2368/1555/3 +f 2379/1573/3 2370/1556/3 2369/1558/3 +f 2380/1575/1 2376/2338/1 2372/1557/1 +f 2360/1545/130 2381/1584/130 2382/1577/130 +f 2373/1561/130 2383/2339/130 2384/1578/130 +f 2363/1549/178 2385/1582/178 2386/1579/178 +f 2353/1543/1 2387/1585/1 2383/1581/1 +f 2363/1549/3 2357/1546/3 2382/1577/3 +f 2362/1583/1 2386/2340/1 2381/1584/1 +f 2356/1542/178 2388/1586/178 2387/1585/178 +f 2356/1542/3 2374/1569/3 2384/1578/3 +f 2390/1587/270 2391/1610/270 2392/1588/270 +f 2393/1590/3 2390/1587/3 2389/1589/3 +f 2390/1587/130 2393/1590/130 2395/1592/130 +f 2395/1592/130 2396/2341/130 2391/1593/130 +f 2398/1596/178 2394/1591/178 2389/1589/178 +f 2389/1589/178 2392/1594/178 2398/1596/178 +f 2400/1597/331 2401/2342/331 2402/1598/331 +f 2402/1598/188 2401/2342/188 2404/1600/188 +f 2406/1602/332 2403/1601/332 2404/1600/332 +f 2405/1604/186 2400/1597/186 2399/1599/186 +f 2395/1606/333 2398/2343/333 2397/1607/333 +f 2397/1609/275 2392/1588/275 2391/1610/275 +f 2394/1591/276 2398/2343/276 2395/1606/276 +f 2411/2344/130 2407/1613/130 2410/1612/130 +f 2407/1613/130 2408/2345/130 2409/1614/130 +f 2416/1617/178 2412/2346/178 2413/1615/178 +f 2413/1615/178 2414/2347/178 2415/1616/178 +f 2413/1618/277 2407/1624/277 2411/1619/277 +f 2411/1619/278 2410/1612/278 2415/1616/278 +f 2415/1616/3 2410/1612/3 2409/1614/3 +f 2412/1621/279 2416/1617/279 2409/1614/279 +f 2412/1623/1 2408/2348/1 2407/1624/1 +f 2423/2349/178 2417/2350/178 2418/1625/178 +f 2418/1625/178 2419/2351/178 2420/1626/178 +f 2420/1626/178 2421/2352/178 2422/1627/178 +f 2422/1627/178 2423/2349/178 2418/1625/178 +f 2442/2353/130 2433/2354/130 2432/1628/130 +f 2432/1628/130 2426/2355/130 2425/1629/130 +f 2425/1629/130 2438/2356/130 2437/1630/130 +f 2437/1630/130 2442/2353/130 2432/1628/130 +f 2440/1631/130 2441/2357/130 2434/1632/130 +f 2434/1632/130 2435/2358/130 2429/1633/130 +f 2429/1633/130 2428/2359/130 2443/2360/130 +f 2443/2360/130 2440/1631/130 2429/1633/130 +f 2424/1636/178 2427/2361/178 2431/1634/178 +f 2431/1634/178 2430/2362/178 2444/2363/178 +f 2444/2363/178 2436/1635/178 2431/1634/178 +f 2436/1635/178 2439/2364/178 2424/1636/178 +s 1 +f 2/2365/334 4/2366/335 1/2367/336 +f 4/2366/335 5/2368/337 6/2369/338 +f 6/2369/338 7/2370/339 8/2371/340 +f 8/2371/340 9/2372/341 10/2373/342 +f 16/2374/343 13/2375/344 15/2376/345 +f 19/2377/346 1/2367/336 18/2378/347 +f 20/2379/348 21/2380/349 22/2381/350 +f 21/2380/349 11/2382/351 22/2381/350 +f 18/2378/347 23/2383/352 21/2380/349 +f 21/2380/349 13/2384/344 12/2385/353 +f 1/2367/336 24/2386/354 23/2383/352 +f 23/2383/352 14/2387/355 13/2384/344 +f 6/2369/338 24/2386/354 4/2366/335 +f 25/2388/356 14/2387/355 24/2386/354 +f 8/2371/340 25/2388/356 6/2369/338 +f 26/2389/357 15/2390/345 25/2388/356 +f 10/2373/342 26/2389/357 8/2371/340 +f 26/2389/357 17/2391/358 16/2392/343 +f 28/2393/359 18/2378/347 20/2379/348 +f 28/2393/359 30/2394/360 19/2377/346 +f 29/2395/361 32/2396/362 30/2394/360 +f 19/2377/346 33/2397/363 2/2365/334 +f 30/2394/360 34/2398/364 33/2397/363 +f 2/2365/334 35/2399/365 3/2400/366 +f 33/2397/363 36/2401/367 35/2399/365 +f 5/2368/337 35/2399/365 37/2402/368 +f 37/2402/368 36/2401/367 38/2403/369 +f 7/2370/339 37/2402/368 39/2404/370 +f 39/2404/370 38/2403/369 40/2405/371 +f 9/2372/341 39/2404/370 41/2406/372 +f 41/2406/372 40/2405/371 42/2407/373 +f 38/2408/369 36/2409/367 34/2410/364 +f 72/2411/374 74/2412/375 71/2413/376 +f 74/2412/375 75/2414/377 76/2415/378 +f 75/2414/377 78/2416/379 76/2415/378 +f 77/2417/380 80/2418/381 78/2416/379 +f 79/2419/382 82/2420/383 80/2418/381 +f 81/2421/384 84/2422/385 82/2423/383 +f 83/2424/386 86/2425/387 84/2422/385 +f 85/2426/388 88/2427/389 86/2425/387 +f 88/2427/389 89/2428/390 90/2429/391 +f 89/2428/390 92/2430/392 90/2429/391 +f 92/2430/392 93/2431/393 94/2432/394 +f 95/2433/395 97/2434/396 98/2435/397 +f 97/2434/396 100/2436/398 98/2435/397 +f 99/2437/399 102/2438/400 100/2436/398 +f 101/2439/401 104/2440/402 102/2438/400 +f 104/2440/402 105/2441/403 106/2442/404 +f 105/2441/403 108/2443/405 106/2442/404 +f 77/2417/380 109/2444/406 110/2445/407 +f 112/2446/408 71/2413/376 111/2447/409 +f 78/2416/379 113/2448/410 114/2449/411 +f 116/2450/412 118/2451/413 115/2452/414 +f 85/2426/388 115/2452/414 87/2453/415 +f 72/2411/374 120/2454/416 73/2455/417 +f 96/2456/418 122/2457/419 97/2434/396 +f 107/2458/420 123/2459/421 124/2460/422 +f 81/2421/384 126/2461/423 83/2424/386 +f 91/2462/424 128/2463/425 93/2431/393 +f 103/2464/426 129/2465/427 130/2466/428 +f 77/2417/380 131/2467/429 79/2419/382 +f 87/2453/415 132/2468/430 89/2428/390 +f 97/2434/396 133/2469/431 99/2437/399 +f 107/2458/420 134/2470/432 112/2446/408 +f 73/2455/417 109/2444/406 75/2414/377 +f 85/2426/388 126/2461/423 116/2471/412 +f 93/2431/393 121/2472/433 96/2456/418 +f 105/2441/403 130/2466/428 123/2473/421 +f 79/2419/382 125/2474/434 81/2475/384 +f 89/2428/390 127/2476/435 91/2462/424 +f 101/2439/401 133/2469/431 129/2477/427 +f 112/2446/408 119/2478/436 72/2411/374 +f 135/2479/437 137/2480/438 138/2481/439 +f 119/2478/436 140/2482/440 120/2454/416 +f 129/2465/427 142/2483/441 130/2466/428 +f 115/2452/414 143/2484/442 132/2468/430 +f 120/2485/416 144/2486/443 109/2444/406 +f 130/2466/428 145/2487/444 123/2473/421 +f 132/2488/430 146/2489/445 127/2476/435 +f 109/2444/406 147/2490/446 110/2445/407 +f 124/2460/422 145/2491/444 148/2492/447 +f 127/2476/435 149/2493/448 128/2463/425 +f 131/2467/429 147/2494/446 136/2495/449 +f 124/2460/422 150/2496/450 134/2470/432 +f 128/2497/425 151/2498/451 121/2472/433 +f 125/2474/434 136/2495/449 135/2479/437 +f 134/2499/432 139/2500/452 119/2478/436 +f 122/2457/419 151/2498/451 152/2501/453 +f 125/2502/434 153/2503/454 126/2461/423 +f 122/2504/419 154/2505/455 133/2469/431 +f 116/2471/412 153/2503/454 117/2506/456 +f 133/2469/431 141/2507/457 129/2477/427 +f 156/2508/458 158/2509/459 155/2510/460 +f 150/2511/450 160/2512/461 139/2500/452 +f 151/2498/451 162/2513/462 152/2501/453 +f 135/2514/437 163/2515/463 153/2503/454 +f 154/2505/455 162/2516/462 156/2508/458 +f 117/2506/456 163/2515/463 164/2517/464 +f 141/2507/457 156/2508/458 155/2510/460 +f 118/2451/413 164/2518/464 165/2519/465 +f 140/2482/440 160/2512/461 166/2520/466 +f 142/2483/441 155/2521/460 167/2522/467 +f 143/2484/442 165/2519/465 168/2523/468 +f 140/2524/440 169/2525/469 144/2486/443 +f 142/2483/441 170/2526/470 145/2487/444 +f 143/2527/442 171/2528/471 146/2489/445 +f 144/2486/443 172/2529/472 147/2490/446 +f 148/2492/447 170/2530/470 173/2531/473 +f 146/2489/445 174/2532/474 149/2493/448 +f 136/2495/449 172/2533/472 137/2480/438 +f 148/2492/447 159/2534/475 150/2496/450 +f 151/2498/451 174/2535/474 161/2536/476 +f 157/2537/477 184/2538/478 188/2539/479 +f 165/2519/465 187/2540/480 186/2541/481 +f 160/2512/461 175/2542/482 166/2520/466 +f 167/2522/467 158/2543/459 180/2544/483 +f 168/2523/468 186/2541/481 185/2545/484 +f 169/2525/469 175/2546/482 192/2547/485 +f 167/2522/467 179/2548/486 170/2526/470 +f 171/2528/471 185/2549/484 184/2550/478 +f 169/2525/469 191/2551/487 172/2529/472 +f 173/2531/473 179/2552/486 178/2553/488 +f 171/2528/471 183/2554/489 174/2532/474 +f 137/2480/438 191/2555/487 190/2556/490 +f 173/2531/473 177/2557/491 159/2534/475 +f 161/2536/476 183/2558/489 182/2559/492 +f 137/2480/438 189/2560/493 138/2481/439 +f 160/2512/461 177/2561/491 176/2562/494 +f 161/2536/476 181/2563/495 162/2513/462 +f 163/2515/463 189/2564/493 188/2565/479 +f 156/2508/458 181/2566/495 157/2567/477 +f 163/2515/463 187/2568/480 164/2517/464 +f 194/2569/496 196/66/497 193/2570/498 +f 90/2429/391 198/2571/499 88/2427/389 +f 100/2436/398 199/2572/500 98/2435/397 +f 111/2447/409 201/2573/501 108/2443/405 +f 76/2415/378 203/2574/502 74/2412/375 +f 84/2422/385 204/2575/503 205/2576/504 +f 95/2433/395 207/2577/505 94/2432/394 +f 106/2442/404 209/2578/506 104/2440/402 +f 82/2420/383 113/2448/410 80/2418/381 +f 92/2430/392 197/2579/507 90/2429/391 +f 102/2438/400 193/2570/498 100/2436/398 +f 71/2413/376 200/2580/508 111/2447/409 +f 78/2416/379 202/2581/509 76/2415/378 +f 88/2427/389 204/2582/503 86/2425/387 +f 71/2413/376 203/2583/502 212/2584/510 +f 98/2435/397 206/2585/511 95/2433/395 +f 108/2443/405 208/2586/512 106/2442/404 +f 84/2422/385 210/2587/513 82/2423/383 +f 94/2432/394 211/2588/514 92/2430/392 +f 104/2440/402 194/2589/496 102/2438/400 +f 198/2571/499 218/75/515 204/2582/503 +f 203/2583/502 220/58/64 212/2584/510 +f 194/2589/496 213/36/516 195/78/68 +f 197/2590/507 217/73/517 198/2571/499 +f 202/2581/509 219/82/518 203/2574/502 +f 209/2578/506 214/34/519 213/36/516 +f 197/2579/507 223/37/61 221/39/520 +f 114/2591/411 222/42/521 202/2581/509 +f 201/2573/501 214/45/519 208/2586/512 +f 207/2592/505 223/37/61 211/2588/514 +f 113/2448/410 224/50/522 114/2449/411 +f 200/2593/508 225/43/523 201/2573/501 +f 207/2577/505 229/62/524 226/53/525 +f 113/2448/410 230/56/69 227/48/526 +f 200/2580/508 220/58/64 228/60/527 +f 206/2585/511 231/61/528 229/62/524 +f 205/2576/504 230/63/69 210/2587/513 +f 193/2570/498 231/68/528 199/2572/500 +f 204/2575/503 232/69/529 205/2576/504 +f 112/2446/408 108/2443/405 107/2458/420 +f 96/2456/418 94/2432/394 93/2431/393 +f 234/1647/520 236/2594/517 233/52/517 +f 243/54/521 264/2595/518 241/55/518 +f 242/57/497 258/2596/68 257/2597/497 +f 245/77/61 235/2598/520 234/59/520 +f 246/1649/522 265/2599/521 243/54/521 +f 247/64/516 258/2600/68 244/65/68 +f 246/67/522 267/2601/526 266/2602/522 +f 247/64/516 260/2603/519 259/2604/516 +f 250/1651/69 267/2601/526 248/72/526 +f 251/81/523 260/2605/519 249/74/519 +f 252/76/525 253/2606/61 245/77/61 +f 216/35/529 268/2607/69 250/79/69 +f 238/1653/527 261/2608/523 251/81/523 +f 240/41/524 254/2609/525 252/83/525 +f 215/1644/515 269/2610/529 216/35/529 +f 237/47/64 262/2611/527 238/38/527 +f 239/1645/528 255/2612/524 240/41/524 +f 215/44/515 236/2594/517 270/2613/515 +f 241/46/518 263/2614/64 237/47/64 +f 242/57/497 256/2615/528 239/49/528 +f 272/2616/530 274/2617/160 271/2618/64 +f 276/2619/531 278/2620/532 275/2621/533 +f 272/2616/530 278/2620/532 273/2622/534 +f 274/2617/160 279/2623/535 280/2624/69 +f 277/2625/536 282/2626/537 278/2620/532 +f 273/2622/534 282/2626/537 279/2623/535 +f 279/2627/535 284/2628/105 280/2629/69 +f 282/2630/537 285/2631/538 286/2632/539 +f 279/2627/535 286/2632/539 283/2633/540 +f 284/2628/105 287/2634/541 288/2635/61 +f 286/2632/539 289/2636/542 290/2637/543 +f 286/2632/539 287/2634/541 283/2633/540 +f 287/2634/541 291/2638/544 292/2639/545 +f 287/2634/541 293/2640/110 288/2635/61 +f 290/2637/543 294/2641/546 291/2638/544 +f 291/2638/544 296/2642/547 292/2639/545 +f 292/2639/545 297/2643/68 293/2640/110 +f 291/2638/544 298/2644/548 295/2645/549 +f 296/2642/547 299/2646/550 300/2647/551 +f 289/2648/542 285/2649/538 281/2650/552 +f 296/2642/547 302/2651/104 297/2643/68 +f 298/2644/548 299/2646/550 295/2645/549 +f 300/2647/551 271/2618/64 302/2651/104 +f 299/2646/550 276/2619/531 275/2621/533 +f 299/2646/550 272/2616/530 300/2647/551 +f 304/2652/530 306/2653/160 303/2654/64 +f 308/2655/531 310/2656/532 307/2657/533 +f 304/2652/530 310/2656/532 305/2658/534 +f 305/2658/534 312/2659/69 306/2653/160 +f 309/2660/536 314/2661/537 310/2656/532 +f 310/2656/532 311/2662/535 305/2658/534 +f 311/2663/535 316/2664/105 312/2665/69 +f 313/2666/552 318/2667/539 314/2668/537 +f 314/2668/537 315/2669/540 311/2663/535 +f 316/2664/105 319/2670/541 320/2671/61 +f 318/2667/539 321/2672/542 322/2673/543 +f 315/2669/540 322/2673/543 319/2670/541 +f 322/2673/543 324/2674/545 319/2670/541 +f 320/2671/61 324/2674/545 325/2675/110 +f 321/2672/542 323/2676/544 322/2673/543 +f 323/2676/544 328/2677/547 324/2674/545 +f 324/2674/545 329/2678/68 325/2675/110 +f 323/2676/544 330/2679/548 327/2680/549 +f 328/2677/547 331/2681/550 332/2682/551 +f 321/2683/542 317/2684/538 313/2685/552 +f 328/2677/547 334/2686/104 329/2678/68 +f 330/2679/548 331/2681/550 327/2680/549 +f 334/2686/104 304/2652/530 303/2654/64 +f 331/2681/550 308/2655/531 307/2657/533 +f 332/2682/551 307/2657/533 304/2652/530 +f 364/131/553 366/2687/554 363/2688/553 +f 365/135/554 368/2689/555 366/2687/554 +f 368/2689/555 369/136/556 370/2690/556 +f 369/136/556 372/2691/557 370/2690/556 +f 372/2691/557 373/128/558 374/2692/558 +f 373/128/558 376/2693/559 374/2692/558 +f 376/2694/559 377/122/560 378/2695/561 +f 377/122/560 380/2696/562 378/2695/561 +f 379/117/562 382/2697/563 380/2696/562 +f 382/2697/563 383/138/564 384/2698/564 +f 383/138/564 388/2699/565 384/2698/564 +f 388/2699/565 364/131/553 363/2688/553 +f 390/133/566 392/2700/567 389/134/567 +f 393/120/568 404/2701/569 385/121/569 +f 395/125/570 408/2702/571 407/2703/570 +f 398/132/572 391/2704/566 390/133/566 +f 389/134/567 410/2705/573 399/137/574 +f 385/121/569 403/2706/3 386/118/3 +f 394/126/575 407/2703/570 406/2707/575 +f 397/129/1 410/2705/573 409/2708/1 +f 386/118/3 402/2709/576 400/141/576 +f 394/123/575 405/2710/568 393/120/568 +f 396/130/571 409/2708/1 408/2702/571 +f 400/141/576 401/2711/572 398/132/572 +f 411/2712/577 413/161/578 414/160/577 +f 412/2713/578 416/162/579 413/161/578 +f 415/2714/579 418/157/580 416/162/579 +f 419/2715/581 418/157/580 417/2716/580 +f 419/2715/581 422/152/582 420/155/581 +f 423/2717/583 422/152/582 421/2718/582 +f 423/2719/583 426/148/584 424/150/583 +f 427/2720/585 426/148/584 425/2721/584 +f 427/2720/585 430/145/586 428/147/585 +f 429/2722/586 432/164/587 430/145/586 +f 435/2723/588 432/164/587 431/2724/587 +f 435/2723/588 414/160/577 436/159/588 +f 438/2725/589 440/158/590 437/165/589 +f 434/146/591 454/2726/592 441/1692/592 +f 443/154/593 451/2727/594 444/1693/594 +f 440/158/590 458/2728/595 446/1694/595 +f 449/2729/596 437/165/589 447/1695/596 +f 433/1691/3 455/2730/591 434/146/591 +f 442/151/597 452/2731/593 443/154/593 +f 450/2732/1 447/1695/596 445/156/1 +f 457/2733/598 433/1691/3 448/163/598 +f 441/1692/592 453/2734/597 442/149/597 +f 451/2727/594 445/156/1 444/1693/594 +f 446/1694/595 457/2733/598 448/163/598 +f 531/2735/33 533/2736/599 530/2737/33 +f 534/2738/1 524/252/600 523/1725/1 +f 537/261/601 539/1729/3 536/1737/3 +f 540/2739/33 525/2740/602 541/2741/603 +f 543/257/600 545/2742/604 542/2743/605 +f 528/254/601 547/2744/599 546/258/606 +f 538/255/606 533/2736/599 532/2745/599 +f 524/252/600 541/2741/603 525/2740/602 +f 531/2746/33 545/2742/604 544/2747/604 +f 528/254/601 549/1735/3 529/1724/3 +f 548/1728/1 542/2743/605 550/2748/1 +f 526/2749/33 547/2744/599 527/2750/599 +f 578/2751/607 580/1757/608 577/1756/607 +f 582/2752/609 584/305/610 581/1755/609 +f 585/2753/611 587/303/612 588/2754/612 +f 589/2755/613 585/2753/611 590/2756/613 +f 579/2757/614 587/303/612 580/2758/608 +f 582/2752/609 592/2759/615 591/2760/615 +f 577/2761/607 583/2762/616 578/2763/607 +f 590/2764/613 592/1754/615 589/1753/613 +f 594/2765/617 596/1763/618 593/1762/617 +f 598/2766/619 600/311/620 597/1761/619 +f 602/310/621 604/2767/622 601/2768/621 +f 602/310/621 606/2769/623 605/2770/623 +f 595/2771/618 603/309/624 596/2772/618 +f 598/2766/619 608/2773/625 607/2774/625 +f 600/311/620 594/2775/617 593/2776/617 +f 605/1759/623 607/2777/625 608/1760/625 +f 614/2778/607 616/1768/614 613/1767/607 +f 618/2779/609 620/314/616 617/1766/609 +f 621/2780/611 623/312/612 624/2781/612 +f 622/313/611 626/2782/613 625/2783/613 +f 624/2781/612 616/2784/614 615/2785/614 +f 627/2786/615 617/1766/609 628/2787/615 +f 613/2788/607 619/2789/616 614/2790/607 +f 626/2791/613 628/1765/615 625/1764/613 +f 629/1773/617 631/2792/618 632/1774/618 +f 634/2793/619 636/320/620 633/1772/619 +f 638/319/621 640/2794/624 637/2795/621 +f 638/319/621 642/2796/623 641/2797/623 +f 640/2794/624 632/2798/618 631/2799/618 +f 634/2793/619 644/2800/625 643/2801/625 +f 629/2802/617 635/2803/620 630/2804/617 +f 642/2805/623 644/1771/625 641/1770/623 +f 650/2806/607 652/1779/614 649/1778/607 +f 653/1777/609 655/2807/616 656/323/616 +f 658/322/611 660/2808/612 657/2809/611 +f 661/2810/613 657/2809/611 662/2811/613 +f 660/2808/612 652/2812/614 651/2813/614 +f 663/2814/615 653/1777/609 664/2815/615 +f 649/2816/607 655/2807/616 650/2817/607 +f 662/2818/613 664/1776/615 661/1775/613 +f 666/2819/617 668/1785/618 665/1784/617 +f 670/2820/619 672/329/626 669/1783/627 +f 674/328/621 676/2821/624 673/2822/621 +f 677/2823/623 673/2822/621 678/2824/623 +f 676/2821/624 668/2825/618 667/2826/618 +f 670/2820/619 680/2827/625 679/2828/625 +f 665/2829/617 671/2830/628 666/2831/617 +f 677/1781/623 679/2832/625 680/1782/625 +f 686/1789/629 688/2833/630 685/1790/630 +f 690/1788/631 692/2834/632 689/330/633 +f 693/2835/634 695/1787/635 696/332/636 +f 697/2836/637 693/2835/634 696/332/636 +f 687/2837/629 695/1787/635 694/2838/638 +f 700/2839/639 692/2834/632 699/2840/640 +f 685/2841/630 691/2842/641 690/1788/631 +f 700/331/639 698/2843/642 697/1786/637 +f 702/1795/618 704/2844/617 701/1796/617 +f 706/1794/620 708/2845/619 705/336/619 +f 710/2846/624 712/338/621 709/2847/621 +f 714/2848/623 712/338/621 713/2849/623 +f 702/2850/618 710/2846/624 703/2851/618 +f 716/2852/625 708/2845/619 715/2853/625 +f 704/2854/617 706/1794/620 701/2855/617 +f 716/337/625 714/2856/623 713/1792/623 +f 722/1800/629 724/2857/630 721/1801/630 +f 725/339/632 727/2858/641 728/2859/632 +f 730/2860/635 732/341/636 729/2861/634 +f 733/2862/642 729/2861/634 732/341/636 +f 722/2863/629 730/2860/635 723/2864/629 +f 736/2865/640 728/2859/632 735/2866/643 +f 721/2867/630 727/2858/641 726/1799/641 +f 736/340/640 734/2868/644 733/1797/642 +f 737/1807/617 739/2869/618 740/2870/617 +f 742/1805/620 744/2871/619 741/345/619 +f 745/2872/621 747/1804/624 748/347/621 +f 749/2873/623 745/2872/621 748/347/621 +f 738/2874/618 746/2875/624 739/2876/618 +f 751/2877/625 741/345/619 744/2871/619 +f 740/2878/617 742/1805/620 737/2879/617 +f 752/346/625 750/2880/623 749/1803/623 +f 758/1811/629 760/2881/630 757/1812/630 +f 761/348/632 763/2882/641 764/2883/632 +f 766/2884/635 768/350/634 765/2885/634 +f 769/2886/637 765/2885/634 768/350/634 +f 758/2887/629 766/2884/635 759/2888/629 +f 772/2889/639 764/2883/632 771/2890/639 +f 757/2891/630 763/2882/641 762/1810/641 +f 772/349/639 770/2892/637 769/1808/637 +f 774/1817/618 776/2893/617 773/1818/617 +f 778/1816/620 780/2894/619 777/354/619 +f 782/2895/624 784/356/645 781/2896/645 +f 786/2897/623 784/356/645 785/2898/623 +f 774/2899/618 782/2895/624 775/2900/618 +f 787/2901/625 777/354/619 780/2894/619 +f 776/2902/617 778/1816/620 773/2903/617 +f 788/355/625 786/2904/623 785/1814/623 +f 816/2905/646 818/2906/647 815/2907/648 +f 818/2906/647 819/2908/649 820/2909/650 +f 820/2909/650 821/2910/651 822/2911/652 +f 822/2911/652 823/2912/653 824/2913/654 +f 830/2914/655 831/2915/656 826/2916/657 +f 833/2917/658 815/2907/648 832/2918/659 +f 834/2919/660 835/2920/661 836/2921/662 +f 835/2920/661 825/2922/663 836/2921/662 +f 832/2918/659 837/2923/664 835/2920/661 +f 835/2920/661 827/2924/665 826/2925/657 +f 815/2907/648 838/2926/666 837/2923/664 +f 837/2923/664 828/2927/667 827/2924/665 +f 820/2909/650 838/2926/666 818/2906/647 +f 839/2928/668 828/2927/667 838/2926/666 +f 822/2911/652 839/2928/668 820/2909/650 +f 840/2929/669 829/2930/670 839/2928/668 +f 824/2913/654 840/2929/669 822/2911/652 +f 840/2929/669 831/2931/656 830/2932/655 +f 842/2933/671 832/2918/659 834/2919/660 +f 842/2933/671 844/2934/672 833/2917/658 +f 843/2935/673 846/2936/674 844/2934/672 +f 833/2917/658 847/2937/675 816/2905/646 +f 844/2934/672 848/2938/676 847/2937/675 +f 816/2905/646 849/2939/677 817/2940/678 +f 847/2937/675 850/2941/679 849/2939/677 +f 819/2908/649 849/2939/677 851/2942/680 +f 851/2942/680 850/2941/679 852/2943/681 +f 821/2910/651 851/2942/680 853/2944/682 +f 853/2944/682 852/2943/681 854/2945/683 +f 823/2912/653 853/2944/682 855/2946/684 +f 855/2946/684 854/2945/683 856/2947/685 +f 852/2948/681 850/2949/679 848/2950/676 +f 858/2951/686 860/2952/687 857/2953/688 +f 860/2952/687 861/2954/689 862/2955/690 +f 862/2955/690 863/2956/691 864/2957/692 +f 864/2957/692 865/2958/693 866/2959/694 +f 872/2960/695 869/2961/696 871/2962/697 +f 875/2963/698 857/2953/688 874/2964/699 +f 876/2965/700 877/2966/701 878/2967/702 +f 877/2966/701 867/2968/703 878/2967/702 +f 874/2964/699 879/2969/704 877/2966/701 +f 877/2966/701 869/2970/696 868/2971/705 +f 857/2953/688 880/2972/706 879/2969/704 +f 879/2969/704 870/2973/707 869/2970/696 +f 862/2955/690 880/2972/706 860/2952/687 +f 881/2974/708 870/2973/707 880/2972/706 +f 864/2957/692 881/2974/708 862/2955/690 +f 882/2975/709 871/2976/697 881/2974/708 +f 866/2959/694 882/2975/709 864/2957/692 +f 882/2975/709 873/2977/710 872/2978/695 +f 884/2979/711 874/2964/699 876/2965/700 +f 884/2979/711 886/2980/712 875/2963/698 +f 885/2981/713 888/2982/714 886/2980/712 +f 875/2963/698 889/2983/715 858/2951/686 +f 886/2980/712 890/2984/716 889/2983/715 +f 858/2951/686 891/2985/717 859/2986/718 +f 889/2983/715 892/2987/719 891/2985/717 +f 861/2954/689 891/2985/717 893/2988/720 +f 893/2988/720 892/2987/719 894/2989/721 +f 863/2956/691 893/2988/720 895/2990/722 +f 895/2990/722 894/2989/721 896/2991/723 +f 865/2958/693 895/2990/722 897/2992/724 +f 897/2992/724 896/2991/723 898/2993/725 +f 894/2994/721 892/2995/719 890/2996/716 +f 900/2997/726 902/2998/727 899/2999/728 +f 902/2998/727 903/3000/729 904/3001/730 +f 904/3001/730 905/3002/731 906/3003/732 +f 906/3003/732 907/3004/733 908/3005/734 +f 914/3006/735 915/3007/736 910/3008/737 +f 917/3009/738 899/2999/728 916/3010/739 +f 918/3011/740 919/3012/741 920/3013/742 +f 919/3012/741 909/3014/743 920/3013/742 +f 916/3010/739 921/3015/744 919/3012/741 +f 919/3012/741 911/3016/745 910/3017/737 +f 899/2999/728 922/3018/746 921/3015/744 +f 921/3015/744 912/3019/747 911/3016/745 +f 904/3001/730 922/3018/746 902/2998/727 +f 923/3020/748 912/3019/747 922/3018/746 +f 906/3003/732 923/3020/748 904/3001/730 +f 924/3021/749 913/3022/750 923/3020/748 +f 908/3005/734 924/3021/749 906/3003/732 +f 924/3021/749 915/3023/736 914/3024/735 +f 926/3025/751 916/3010/739 918/3011/740 +f 926/3025/751 928/3026/752 917/3009/738 +f 927/3027/753 930/3028/754 928/3026/752 +f 917/3009/738 931/3029/755 900/2997/726 +f 928/3026/752 932/3030/756 931/3029/755 +f 900/2997/726 933/3031/757 901/3032/758 +f 931/3029/755 934/3033/759 933/3031/757 +f 903/3000/729 933/3031/757 935/3034/760 +f 935/3034/760 934/3033/759 936/3035/761 +f 905/3002/731 935/3034/760 937/3036/762 +f 937/3036/762 936/3035/761 938/3037/763 +f 907/3004/733 937/3036/762 939/3038/764 +f 939/3038/764 938/3037/763 940/3039/765 +f 936/3040/761 934/3041/759 932/3042/756 +f 958/3043/766 960/1834/767 957/1833/768 +f 961/1832/769 963/3044/770 964/416/770 +f 966/415/771 968/3045/772 965/3046/773 +f 969/3047/774 965/3046/773 970/3048/775 +f 959/3049/776 967/414/772 960/3050/767 +f 962/3051/777 972/3052/778 971/3053/778 +f 957/3054/768 963/3044/770 958/3055/766 +f 970/3056/775 972/1831/778 969/1830/774 +f 974/3057/779 976/1840/780 973/1839/779 +f 977/1838/781 979/3058/782 980/422/782 +f 982/421/783 984/3059/784 981/3060/785 +f 982/421/783 986/3061/786 985/3062/787 +f 975/3063/780 983/420/788 976/3064/780 +f 987/3065/789 977/1838/781 988/3066/789 +f 973/3067/779 979/3058/782 974/3068/779 +f 985/1836/787 987/3069/789 988/1837/789 +f 994/3070/768 996/1845/776 993/1844/768 +f 997/1843/790 999/3071/770 1000/425/770 +f 1001/3072/791 1003/423/772 1004/3073/772 +f 1002/424/791 1006/3074/774 1005/3075/774 +f 1004/3073/772 996/3076/776 995/3077/776 +f 1007/3078/778 997/1843/790 1008/3079/792 +f 1000/425/770 994/3080/768 993/3081/768 +f 1005/1841/774 1007/3082/778 1008/1842/792 +f 1009/1850/779 1011/3083/793 1012/1851/793 +f 1013/1849/781 1015/3084/782 1016/431/782 +f 1018/430/783 1020/3085/788 1017/3086/783 +f 1021/3087/794 1017/3086/783 1022/3088/794 +f 1011/3089/793 1019/429/788 1012/3090/793 +f 1023/3091/789 1013/1849/781 1024/3092/789 +f 1009/3093/779 1015/3084/782 1010/3094/779 +f 1022/3095/794 1024/1848/789 1021/1847/794 +f 1030/3096/768 1032/1856/776 1029/1855/768 +f 1033/1854/769 1035/3097/770 1036/434/770 +f 1038/433/791 1040/3098/772 1037/3099/773 +f 1041/3100/774 1037/3099/773 1042/3101/774 +f 1040/3098/772 1032/3102/776 1031/3103/776 +f 1043/3104/778 1033/1854/769 1044/3105/795 +f 1036/434/770 1030/3106/768 1029/3107/768 +f 1042/3108/774 1044/1853/795 1041/1852/774 +f 1046/3109/796 1048/1862/780 1045/1861/797 +f 1049/1860/798 1051/3110/799 1052/440/799 +f 1054/439/783 1056/3111/788 1053/3112/783 +f 1057/3113/787 1053/3112/783 1058/3114/787 +f 1047/3115/780 1055/438/788 1048/3116/780 +f 1050/3117/798 1060/3118/789 1059/3119/789 +f 1045/3120/797 1051/3110/799 1046/3121/796 +f 1057/1858/787 1059/3122/789 1060/1859/789 +f 1066/1866/800 1068/3123/801 1065/1867/801 +f 1070/1865/802 1072/3124/803 1069/441/804 +f 1073/3125/805 1075/1864/806 1076/443/805 +f 1077/3126/807 1073/3125/805 1076/443/805 +f 1067/3127/800 1075/1864/806 1074/3128/806 +f 1080/3129/808 1072/3124/803 1079/3130/808 +f 1065/3131/801 1071/3132/809 1070/1865/802 +f 1080/442/808 1078/3133/807 1077/1863/807 +f 1082/1872/780 1084/3134/779 1081/1873/779 +f 1086/1871/782 1088/3135/781 1085/447/781 +f 1090/3136/788 1092/449/783 1089/3137/783 +f 1094/3138/794 1092/449/783 1093/3139/794 +f 1082/3140/780 1090/3136/788 1083/3141/780 +f 1096/3142/789 1088/3135/781 1095/3143/789 +f 1081/3144/779 1087/3145/782 1086/1871/782 +f 1096/448/789 1094/3146/794 1093/1869/794 +f 1102/1877/800 1104/3147/801 1101/1878/801 +f 1105/450/803 1107/3148/809 1108/3149/803 +f 1110/3150/810 1112/452/811 1109/3151/805 +f 1113/3152/807 1109/3151/805 1112/452/811 +f 1102/3153/800 1110/3150/810 1103/3154/800 +f 1116/3155/808 1108/3149/803 1115/3156/808 +f 1101/3157/801 1107/3148/809 1106/1876/809 +f 1116/451/808 1114/3158/807 1113/1874/807 +f 1117/1884/796 1119/3159/793 1120/3160/797 +f 1122/1882/799 1124/3161/781 1121/456/781 +f 1125/3162/783 1127/1881/788 1128/458/783 +f 1129/3163/794 1125/3162/783 1128/458/783 +f 1118/3164/780 1126/3165/788 1119/3166/793 +f 1131/3167/789 1121/456/781 1124/3161/781 +f 1120/3168/797 1122/1882/799 1117/3169/796 +f 1132/457/789 1130/3170/794 1129/1880/794 +f 1138/1888/800 1140/3171/801 1137/1889/801 +f 1141/459/803 1143/3172/809 1144/3173/803 +f 1146/3174/806 1148/461/805 1145/3175/805 +f 1149/3176/807 1145/3175/805 1148/461/805 +f 1138/3177/800 1146/3174/806 1139/3178/800 +f 1152/3179/808 1144/3173/803 1151/3180/808 +f 1137/3181/801 1143/3172/809 1142/1887/809 +f 1152/460/808 1150/3182/807 1149/1885/807 +f 1154/1894/780 1156/3183/779 1153/1895/779 +f 1157/465/781 1159/3184/782 1160/3185/781 +f 1162/3186/788 1164/467/812 1161/3187/813 +f 1166/3188/787 1164/467/812 1165/3189/787 +f 1154/3190/780 1162/3186/788 1155/3191/780 +f 1167/3192/814 1157/465/781 1160/3185/781 +f 1156/3193/779 1158/1893/782 1153/3194/779 +f 1168/466/814 1166/3195/787 1165/1891/787 +f 1196/3196/815 1198/1907/816 1195/1906/815 +f 1199/1905/817 1201/3197/818 1202/507/819 +f 1204/506/820 1206/3198/821 1203/3199/820 +f 1207/3200/822 1203/3199/820 1208/3201/822 +f 1197/3202/816 1205/505/821 1198/3203/816 +f 1200/3204/817 1210/3205/823 1209/3206/823 +f 1195/3207/815 1201/3197/818 1196/3208/815 +f 1208/3209/822 1210/1904/823 1207/1903/822 +f 1212/3210/824 1214/1913/825 1211/1912/824 +f 1215/1911/826 1217/3211/827 1218/513/827 +f 1220/512/828 1222/3212/829 1219/3213/830 +f 1220/512/828 1224/3214/831 1223/3215/831 +f 1213/3216/832 1221/511/833 1214/3217/825 +f 1216/3218/826 1226/3219/834 1225/3220/834 +f 1218/513/827 1212/3221/824 1211/3222/824 +f 1223/1909/831 1225/3223/834 1226/1910/834 +f 1232/3224/815 1234/1918/816 1231/1917/815 +f 1235/1916/817 1237/3225/835 1238/516/818 +f 1239/3226/820 1241/514/821 1242/3227/821 +f 1240/515/820 1244/3228/822 1243/3229/822 +f 1242/3227/821 1234/3230/816 1233/3231/816 +f 1245/3232/823 1235/1916/817 1246/3233/823 +f 1231/3234/815 1237/3225/835 1232/3235/815 +f 1244/3236/822 1246/1915/823 1243/1914/822 +f 1247/1923/824 1249/3237/836 1250/1924/836 +f 1251/1922/826 1253/3238/837 1254/522/837 +f 1256/521/828 1258/3239/833 1255/3240/828 +f 1256/521/828 1260/3241/831 1259/3242/831 +f 1258/3239/833 1250/3243/836 1249/3244/836 +f 1261/3245/834 1251/1922/826 1262/3246/834 +f 1247/3247/824 1253/3238/837 1248/3248/824 +f 1260/3249/831 1262/1921/834 1259/1920/831 +f 1268/3250/815 1270/1929/816 1267/1928/815 +f 1271/1927/817 1273/3251/835 1274/525/835 +f 1276/524/820 1278/3252/821 1275/3253/820 +f 1279/3254/822 1275/3253/820 1280/3255/822 +f 1278/3252/821 1270/3256/816 1269/3257/816 +f 1281/3258/823 1271/1927/817 1282/3259/823 +f 1267/3260/815 1273/3251/835 1268/3261/815 +f 1280/3262/822 1282/1926/823 1279/1925/822 +f 1284/3263/824 1286/1935/836 1283/1934/824 +f 1287/1933/826 1289/3264/837 1290/531/837 +f 1292/530/828 1294/3265/833 1291/3266/828 +f 1295/3267/831 1291/3266/828 1296/3268/831 +f 1285/3269/836 1293/529/833 1286/3270/836 +f 1288/3271/826 1298/3272/838 1297/3273/839 +f 1283/3274/824 1289/3264/837 1284/3275/824 +f 1295/1931/831 1297/3276/839 1298/1932/838 +f 1304/1939/840 1306/3277/841 1303/1940/841 +f 1308/1938/842 1310/3278/843 1307/532/843 +f 1311/3279/844 1313/1937/845 1314/534/846 +f 1315/3280/847 1311/3279/844 1314/534/846 +f 1305/3281/840 1313/1937/845 1312/3282/845 +f 1318/3283/848 1310/3278/843 1317/3284/848 +f 1303/3285/841 1309/3286/849 1308/1938/842 +f 1318/533/848 1316/3287/847 1315/1936/847 +f 1320/1945/832 1322/3288/824 1319/1946/824 +f 1324/1944/827 1326/3289/826 1323/538/826 +f 1327/3290/850 1329/1943/851 1330/540/852 +f 1332/3291/853 1330/540/852 1331/3292/831 +f 1320/3293/832 1328/3294/854 1321/3295/836 +f 1334/3296/834 1326/3289/826 1333/3297/834 +f 1319/3298/824 1325/3299/827 1324/1944/827 +f 1334/539/834 1332/3300/853 1331/1942/831 +f 1340/1950/840 1342/3301/855 1339/1951/841 +f 1343/541/843 1345/3302/849 1346/3303/856 +f 1348/3304/857 1350/543/846 1347/3305/858 +f 1351/3306/847 1347/3305/858 1350/543/846 +f 1340/3307/840 1348/3304/857 1341/3308/840 +f 1354/3309/848 1346/3303/856 1353/3310/859 +f 1339/3311/841 1345/3302/849 1344/1949/849 +f 1354/542/848 1352/3312/847 1351/1947/847 +f 1355/1957/824 1357/3313/836 1358/3314/824 +f 1360/1955/827 1362/3315/826 1359/547/826 +f 1363/3316/828 1365/1954/833 1366/549/828 +f 1367/3317/853 1363/3316/828 1366/549/828 +f 1356/3318/836 1364/3319/833 1357/3320/836 +f 1370/3321/839 1362/3315/826 1369/3322/839 +f 1358/3323/824 1360/1955/827 1355/3324/824 +f 1370/548/839 1368/3325/853 1367/1953/853 +f 1376/1961/840 1378/3326/841 1375/1962/841 +f 1379/550/843 1381/3327/849 1382/3328/856 +f 1384/3329/845 1386/552/860 1383/3330/861 +f 1387/3331/862 1383/3330/861 1386/552/860 +f 1376/3332/840 1384/3329/845 1377/3333/840 +f 1390/3334/848 1382/3328/856 1389/3335/848 +f 1378/3336/841 1380/1960/849 1375/3337/841 +f 1390/551/848 1388/3338/862 1387/1958/862 +f 1392/1967/836 1394/3339/824 1391/1968/824 +f 1396/1966/827 1398/3340/826 1395/556/826 +f 1399/3341/828 1401/1965/833 1402/558/828 +f 1403/3342/831 1399/3341/828 1402/558/828 +f 1393/3343/836 1401/1965/833 1400/3344/833 +f 1405/3345/834 1395/556/826 1398/3340/826 +f 1394/3346/824 1396/1966/827 1391/3347/824 +f 1406/557/834 1404/3348/831 1403/1964/831 +f 1505/3349/110 1507/3350/863 1504/3351/110 +f 1508/3352/1 1498/678/864 1497/1997/1 +f 1511/687/865 1513/2001/3 1510/2009/3 +f 1514/3353/110 1499/3354/866 1515/3355/866 +f 1517/683/864 1519/3356/866 1516/3357/864 +f 1502/680/865 1521/3358/867 1520/684/865 +f 1512/681/865 1507/3350/863 1506/3359/868 +f 1498/678/864 1515/3355/866 1499/3354/866 +f 1505/3360/110 1519/3356/866 1518/3361/866 +f 1502/680/865 1523/2007/3 1503/1996/3 +f 1522/2000/1 1516/3357/864 1524/3362/1 +f 1500/3363/110 1521/3358/867 1501/3364/868 +f 1597/3365/130 1599/3366/869 1596/3367/130 +f 1600/3368/1 1590/773/870 1589/2032/1 +f 1602/2044/3 1604/776/871 1605/2036/3 +f 1606/3369/130 1591/3370/872 1607/3371/873 +f 1609/778/870 1611/3372/873 1608/3373/870 +f 1594/775/874 1613/3374/869 1612/779/875 +f 1604/776/871 1599/3366/869 1598/3375/869 +f 1590/773/870 1607/3371/873 1591/3370/872 +f 1597/3376/130 1611/3372/873 1610/3377/873 +f 1594/775/874 1615/2042/3 1595/2031/3 +f 1609/778/870 1616/3378/1 1614/2035/1 +f 1592/3379/130 1613/3374/869 1593/3380/876 +f 1689/3381/28 1691/3382/877 1688/3383/28 +f 1692/3384/1 1682/867/878 1681/2068/1 +f 1695/876/879 1697/2072/3 1694/2080/3 +f 1698/3385/28 1683/3386/880 1699/3387/880 +f 1701/872/878 1703/3388/881 1700/3389/878 +f 1686/869/879 1705/3390/877 1704/873/882 +f 1696/870/883 1691/3382/877 1690/3391/877 +f 1682/867/878 1699/3387/880 1683/3386/880 +f 1689/3392/28 1703/3388/881 1702/3393/881 +f 1686/869/879 1707/2078/3 1687/2067/3 +f 1706/2071/1 1700/3389/878 1708/3394/1 +f 1684/3395/28 1705/3390/877 1685/3396/877 +f 1780/3397/105 1782/3398/884 1783/3399/884 +f 1784/3400/1 1774/962/885 1773/2103/1 +f 1787/971/886 1789/2107/3 1786/2115/3 +f 1790/3401/105 1775/3402/887 1791/3403/887 +f 1793/967/885 1795/3404/887 1792/3405/885 +f 1778/964/886 1797/3406/888 1796/968/886 +f 1788/965/886 1783/3399/884 1782/3398/884 +f 1774/962/885 1791/3403/887 1775/3402/887 +f 1781/3407/105 1795/3404/887 1794/3408/887 +f 1778/964/886 1799/2113/3 1779/2102/3 +f 1798/2106/1 1792/3405/885 1800/3409/1 +f 1776/3410/105 1797/3406/888 1777/3411/884 +f 1873/3412/125 1875/3413/889 1872/3414/125 +f 1876/3415/1 1866/1056/890 1865/2139/1 +f 1879/1065/891 1881/2143/3 1878/2151/3 +f 1882/3416/125 1867/3417/892 1883/3418/892 +f 1885/1061/890 1887/3419/893 1884/3420/894 +f 1870/1058/895 1889/3421/889 1888/1062/891 +f 1880/1059/891 1875/3413/889 1874/3422/889 +f 1866/1056/890 1883/3418/892 1867/3417/892 +f 1873/3423/125 1887/3419/893 1886/3424/893 +f 1870/1058/895 1891/2149/3 1871/2138/3 +f 1890/2142/1 1884/3420/894 1892/3425/1 +f 1868/3426/125 1889/3421/889 1869/3427/889 +f 1965/3428/143 1967/3429/896 1964/3430/143 +f 1968/3431/1 1958/1151/897 1957/2174/1 +f 1971/1160/898 1973/2178/3 1970/2186/3 +f 1974/3432/143 1959/3433/899 1975/3434/900 +f 1977/1156/901 1979/3435/899 1976/3436/901 +f 1962/1153/898 1981/3437/896 1980/1157/902 +f 1972/1154/898 1967/3429/896 1966/3438/896 +f 1958/1151/897 1975/3434/900 1959/3433/899 +f 1965/3439/143 1979/3435/899 1978/3440/899 +f 1962/1153/898 1983/2184/3 1963/2173/3 +f 1982/2177/1 1976/3436/901 1984/3441/1 +f 1960/3442/143 1981/3437/896 1961/3443/896 +f 2057/3444/160 2059/3445/903 2056/3446/160 +f 2060/3447/1 2050/1245/904 2049/2210/1 +f 2063/1254/905 2065/2214/3 2062/2222/3 +f 2066/3448/160 2051/3449/906 2067/3450/906 +f 2069/1250/904 2071/3451/906 2068/3452/904 +f 2054/1247/905 2073/3453/907 2072/1251/905 +f 2064/1248/905 2059/3445/903 2058/3454/903 +f 2050/1245/904 2067/3450/906 2051/3449/906 +f 2057/3455/160 2071/3451/906 2070/3456/906 +f 2054/1247/905 2075/2220/3 2055/2209/3 +f 2074/2213/1 2068/3452/904 2076/3457/1 +f 2052/3458/160 2073/3453/907 2053/3459/903 +f 2149/3460/178 2151/3461/908 2148/3462/178 +f 2152/3463/1 2142/1339/909 2141/2246/1 +f 2155/1348/910 2157/2250/3 2154/2258/3 +f 2158/3464/178 2143/3465/911 2159/3466/911 +f 2161/1344/909 2163/3467/912 2160/3468/909 +f 2146/1341/910 2165/3469/908 2164/1345/913 +f 2156/1342/914 2151/3461/908 2150/3470/915 +f 2142/1339/909 2159/3466/911 2143/3465/911 +f 2149/3471/178 2163/3467/912 2162/3472/912 +f 2146/1341/910 2167/2256/3 2147/2245/3 +f 2166/2249/1 2160/3468/909 2168/3473/1 +f 2144/3474/178 2165/3469/908 2145/3475/916 +f 2241/3476/27 2243/3477/917 2240/3478/27 +f 2244/3479/1 2234/1433/918 2233/2282/1 +f 2247/1442/919 2249/2286/3 2246/2294/3 +f 2250/3480/27 2235/3481/920 2251/3482/920 +f 2253/1438/918 2255/3483/921 2252/3484/918 +f 2238/1435/922 2257/3485/917 2256/1439/923 +f 2248/1436/924 2243/3477/917 2242/3486/917 +f 2234/1433/918 2251/3482/920 2235/3481/920 +f 2241/3487/27 2255/3483/921 2254/3488/921 +f 2238/1435/922 2259/2292/3 2239/2281/3 +f 2258/2285/1 2252/3484/918 2260/3489/1 +f 2236/3490/27 2257/3485/917 2237/3491/917 +f 2333/3492/104 2335/3493/925 2332/3494/104 +f 2336/3495/1 2326/1529/926 2325/2316/1 +f 2339/1538/927 2341/2320/3 2338/2328/3 +f 2342/3496/104 2327/3497/928 2343/3498/928 +f 2345/1534/926 2347/3499/928 2344/3500/926 +f 2330/1531/927 2349/3501/925 2348/1535/927 +f 2340/1532/927 2335/3493/925 2334/3502/925 +f 2326/1529/926 2343/3498/928 2327/3497/928 +f 2333/3503/104 2347/3499/928 2346/3504/928 +f 2330/1531/927 2351/2326/3 2331/2315/3 +f 2350/2319/1 2344/3500/926 2352/3505/1 +f 2328/3506/104 2349/3501/925 2329/3507/925 +f 2425/3508/124 2427/3509/929 2424/3510/124 +f 2428/3511/1 2418/1625/930 2417/2350/1 +f 2431/1634/931 2433/2354/3 2430/2362/3 +f 2434/3512/124 2419/3513/932 2435/3514/932 +f 2437/1630/930 2439/3515/933 2436/3516/934 +f 2422/1627/931 2441/3517/929 2440/1631/935 +f 2432/1628/935 2427/3509/929 2426/3518/929 +f 2418/1625/930 2435/3514/932 2419/3513/932 +f 2425/3519/124 2439/3515/933 2438/3520/933 +f 2422/1627/931 2443/2360/3 2423/2349/3 +f 2442/2353/1 2436/3516/934 2444/3521/1 +f 2420/3522/124 2441/3517/929 2421/3523/929 +f 2/2365/334 3/2400/366 4/2366/335 +f 4/2366/335 3/2400/366 5/2368/337 +f 6/2369/338 5/2368/337 7/2370/339 +f 8/2371/340 7/2370/339 9/2372/341 +f 17/3524/358 11/3525/351 16/2374/343 +f 11/3525/351 12/3526/353 16/2374/343 +f 12/3526/353 13/2375/344 16/2374/343 +f 13/2375/344 14/3527/355 15/2376/345 +f 19/2377/346 2/2365/334 1/2367/336 +f 20/2379/348 18/2378/347 21/2380/349 +f 21/2380/349 12/2385/353 11/2382/351 +f 18/2378/347 1/2367/336 23/2383/352 +f 21/2380/349 23/2383/352 13/2384/344 +f 1/2367/336 4/2366/335 24/2386/354 +f 23/2383/352 24/2386/354 14/2387/355 +f 6/2369/338 25/2388/356 24/2386/354 +f 25/2388/356 15/2390/345 14/2387/355 +f 8/2371/340 26/2389/357 25/2388/356 +f 26/2389/357 16/2392/343 15/2390/345 +f 10/2373/342 27/3528/936 26/2389/357 +f 26/2389/357 27/3528/936 17/2391/358 +f 28/2393/359 19/2377/346 18/2378/347 +f 28/2393/359 29/2395/361 30/2394/360 +f 29/2395/361 31/3529/937 32/2396/362 +f 19/2377/346 30/2394/360 33/2397/363 +f 30/2394/360 32/2396/362 34/2398/364 +f 2/2365/334 33/2397/363 35/2399/365 +f 33/2397/363 34/2398/364 36/2401/367 +f 5/2368/337 3/2400/366 35/2399/365 +f 37/2402/368 35/2399/365 36/2401/367 +f 7/2370/339 5/2368/337 37/2402/368 +f 39/2404/370 37/2402/368 38/2403/369 +f 9/2372/341 7/2370/339 39/2404/370 +f 41/2406/372 39/2404/370 40/2405/371 +f 34/2410/364 32/3530/362 40/3531/371 +f 32/3530/362 31/3532/937 40/3531/371 +f 31/3532/937 42/3533/373 40/3531/371 +f 40/3531/371 38/2408/369 34/2410/364 +f 72/2411/374 73/2455/417 74/2412/375 +f 74/2412/375 73/2455/417 75/2414/377 +f 75/2414/377 77/2417/380 78/2416/379 +f 77/2417/380 79/2419/382 80/2418/381 +f 79/2419/382 81/2475/384 82/2420/383 +f 81/2421/384 83/2424/386 84/2422/385 +f 83/2424/386 85/2426/388 86/2425/387 +f 85/2426/388 87/2453/415 88/2427/389 +f 88/2427/389 87/2453/415 89/2428/390 +f 89/2428/390 91/2462/424 92/2430/392 +f 92/2430/392 91/2462/424 93/2431/393 +f 95/2433/395 96/2456/418 97/2434/396 +f 97/2434/396 99/2437/399 100/2436/398 +f 99/2437/399 101/2439/401 102/2438/400 +f 101/2439/401 103/2464/426 104/2440/402 +f 104/2440/402 103/2464/426 105/2441/403 +f 105/2441/403 107/2458/420 108/2443/405 +f 77/2417/380 75/2414/377 109/2444/406 +f 112/2446/408 72/2411/374 71/2413/376 +f 78/2416/379 80/2418/381 113/2448/410 +f 116/2450/412 117/3534/456 118/2451/413 +f 85/2426/388 116/2450/412 115/2452/414 +f 72/2411/374 119/2478/436 120/2454/416 +f 96/2456/418 121/2472/433 122/2457/419 +f 107/2458/420 105/2441/403 123/2459/421 +f 81/2421/384 125/2502/434 126/2461/423 +f 91/2462/424 127/2476/435 128/2463/425 +f 103/2464/426 101/2439/401 129/2465/427 +f 77/2417/380 110/3535/407 131/2467/429 +f 87/2453/415 115/2452/414 132/2468/430 +f 97/2434/396 122/2504/419 133/2469/431 +f 107/2458/420 124/2460/422 134/2470/432 +f 73/2455/417 120/2485/416 109/2444/406 +f 85/2426/388 83/2424/386 126/2461/423 +f 93/2431/393 128/2497/425 121/2472/433 +f 105/2441/403 103/2464/426 130/2466/428 +f 79/2419/382 131/2467/429 125/2474/434 +f 89/2428/390 132/2488/430 127/2476/435 +f 101/2439/401 99/2437/399 133/2469/431 +f 112/2446/408 134/2499/432 119/2478/436 +f 135/2479/437 136/2495/449 137/2480/438 +f 119/2478/436 139/2500/452 140/2482/440 +f 129/2465/427 141/3536/457 142/2483/441 +f 115/2452/414 118/2451/413 143/2484/442 +f 120/2485/416 140/2524/440 144/2486/443 +f 130/2466/428 142/2483/441 145/2487/444 +f 132/2488/430 143/2527/442 146/2489/445 +f 109/2444/406 144/2486/443 147/2490/446 +f 124/2460/422 123/2459/421 145/2491/444 +f 127/2476/435 146/2489/445 149/2493/448 +f 131/2467/429 110/3535/407 147/2494/446 +f 124/2460/422 148/2492/447 150/2496/450 +f 128/2497/425 149/3537/448 151/2498/451 +f 125/2474/434 131/2467/429 136/2495/449 +f 134/2499/432 150/2511/450 139/2500/452 +f 122/2457/419 121/2472/433 151/2498/451 +f 125/2502/434 135/2514/437 153/2503/454 +f 122/2504/419 152/3538/453 154/2505/455 +f 116/2471/412 126/2461/423 153/2503/454 +f 133/2469/431 154/2505/455 141/2507/457 +f 156/2508/458 157/2567/477 158/2509/459 +f 150/2511/450 159/3539/475 160/2512/461 +f 151/2498/451 161/2536/476 162/2513/462 +f 135/2514/437 138/3540/439 163/2515/463 +f 154/2505/455 152/3538/453 162/2516/462 +f 117/2506/456 153/2503/454 163/2515/463 +f 141/2507/457 154/2505/455 156/2508/458 +f 118/2451/413 117/3534/456 164/2518/464 +f 140/2482/440 139/2500/452 160/2512/461 +f 142/2483/441 141/3536/457 155/2521/460 +f 143/2484/442 118/2451/413 165/2519/465 +f 140/2524/440 166/3541/466 169/2525/469 +f 142/2483/441 167/2522/467 170/2526/470 +f 143/2527/442 168/3542/468 171/2528/471 +f 144/2486/443 169/2525/469 172/2529/472 +f 148/2492/447 145/2491/444 170/2530/470 +f 146/2489/445 171/2528/471 174/2532/474 +f 136/2495/449 147/2494/446 172/2533/472 +f 148/2492/447 173/2531/473 159/2534/475 +f 151/2498/451 149/3537/448 174/2535/474 +f 192/3543/485 175/3544/482 176/3545/494 +f 176/3545/494 177/3546/491 178/3547/488 +f 178/3547/488 179/3548/486 180/3549/483 +f 180/3549/483 158/3550/459 157/2537/477 +f 157/2537/477 181/3551/495 184/2538/478 +f 181/3551/495 182/3552/492 184/2538/478 +f 182/3552/492 183/3553/489 184/2538/478 +f 184/2538/478 185/3554/484 186/3555/481 +f 186/3555/481 187/3556/480 188/2539/479 +f 188/2539/479 189/3557/493 190/3558/490 +f 190/3558/490 191/3559/487 192/3543/485 +f 192/3543/485 176/3545/494 157/2537/477 +f 176/3545/494 178/3547/488 157/2537/477 +f 178/3547/488 180/3549/483 157/2537/477 +f 184/2538/478 186/3555/481 188/2539/479 +f 188/2539/479 190/3558/490 157/2537/477 +f 190/3558/490 192/3543/485 157/2537/477 +f 165/2519/465 164/2518/464 187/2540/480 +f 160/2512/461 176/2562/494 175/2542/482 +f 167/2522/467 155/2521/460 158/2543/459 +f 168/2523/468 165/2519/465 186/2541/481 +f 169/2525/469 166/3541/466 175/2546/482 +f 167/2522/467 180/2544/483 179/2548/486 +f 171/2528/471 168/3542/468 185/2549/484 +f 169/2525/469 192/2547/485 191/2551/487 +f 173/2531/473 170/2530/470 179/2552/486 +f 171/2528/471 184/2550/478 183/2554/489 +f 137/2480/438 172/2533/472 191/2555/487 +f 173/2531/473 178/2553/488 177/2557/491 +f 161/2536/476 174/2535/474 183/2558/489 +f 137/2480/438 190/2556/490 189/2560/493 +f 160/2512/461 159/3539/475 177/2561/491 +f 161/2536/476 182/2559/492 181/2563/495 +f 163/2515/463 138/3540/439 189/2564/493 +f 156/2508/458 162/2516/462 181/2566/495 +f 163/2515/463 188/2565/479 187/2568/480 +f 194/2569/496 195/71/68 196/66/497 +f 90/2429/391 197/2590/507 198/2571/499 +f 100/2436/398 193/2570/498 199/2572/500 +f 111/2447/409 200/2593/508 201/2573/501 +f 76/2415/378 202/2581/509 203/2574/502 +f 84/2422/385 86/2425/387 204/2575/503 +f 95/2433/395 206/2585/511 207/2577/505 +f 106/2442/404 208/3560/512 209/2578/506 +f 82/2420/383 210/3561/513 113/2448/410 +f 92/2430/392 211/2588/514 197/2579/507 +f 102/2438/400 194/2569/496 193/2570/498 +f 71/2413/376 212/2584/510 200/2580/508 +f 78/2416/379 114/2591/411 202/2581/509 +f 88/2427/389 198/2571/499 204/2582/503 +f 71/2413/376 74/2412/375 203/2583/502 +f 98/2435/397 199/3562/500 206/2585/511 +f 108/2443/405 201/2573/501 208/2586/512 +f 84/2422/385 205/2576/504 210/2587/513 +f 94/2432/394 207/2592/505 211/2588/514 +f 104/2440/402 209/2578/506 194/2589/496 +f 198/2571/499 217/73/517 218/75/515 +f 203/2583/502 219/1652/518 220/58/64 +f 194/2589/496 209/2578/506 213/36/516 +f 197/2590/507 221/80/520 217/73/517 +f 202/2581/509 222/42/521 219/82/518 +f 209/2578/506 208/3560/512 214/34/519 +f 197/2579/507 211/2588/514 223/37/61 +f 114/2591/411 224/40/522 222/42/521 +f 201/2573/501 225/43/523 214/45/519 +f 207/2592/505 226/1646/525 223/37/61 +f 113/2448/410 227/48/526 224/50/522 +f 200/2593/508 228/51/527 225/43/523 +f 207/2577/505 206/2585/511 229/62/524 +f 113/2448/410 210/3561/513 230/56/69 +f 200/2580/508 212/2584/510 220/58/64 +f 206/2585/511 199/3562/500 231/61/528 +f 205/2576/504 232/69/529 230/63/69 +f 193/2570/498 196/66/497 231/68/528 +f 204/2575/503 218/1650/515 232/69/529 +f 112/2446/408 111/2447/409 108/2443/405 +f 96/2456/418 95/2433/395 94/2432/394 +f 234/1647/520 235/3563/520 236/2594/517 +f 243/54/521 265/2599/521 264/2595/518 +f 242/57/497 244/1648/68 258/2596/68 +f 245/77/61 253/2606/61 235/2598/520 +f 246/1649/522 266/3564/522 265/2599/521 +f 247/64/516 259/2604/516 258/2600/68 +f 246/67/522 248/72/526 267/2601/526 +f 247/64/516 249/70/519 260/2603/519 +f 250/1651/69 268/3565/69 267/2601/526 +f 251/81/523 261/2608/523 260/2605/519 +f 252/76/525 254/3566/525 253/2606/61 +f 216/35/529 269/2610/529 268/2607/69 +f 238/1653/527 262/3567/527 261/2608/523 +f 240/41/524 255/2612/524 254/2609/525 +f 215/1644/515 270/3568/515 269/2610/529 +f 237/47/64 263/2614/64 262/2611/527 +f 239/1645/528 256/3569/528 255/2612/524 +f 215/44/515 233/52/517 236/2594/517 +f 241/46/518 264/3570/518 263/2614/64 +f 242/57/497 257/2597/497 256/2615/528 +f 272/2616/530 273/2622/534 274/2617/160 +f 276/2619/531 277/2625/536 278/2620/532 +f 272/2616/530 275/2621/533 278/2620/532 +f 274/2617/160 273/2622/534 279/2623/535 +f 277/2625/536 281/3571/552 282/2626/537 +f 273/2622/534 278/2620/532 282/2626/537 +f 279/2627/535 283/2633/540 284/2628/105 +f 282/2630/537 281/3572/552 285/2631/538 +f 279/2627/535 282/2630/537 286/2632/539 +f 284/2628/105 283/2633/540 287/2634/541 +f 286/2632/539 285/2631/538 289/2636/542 +f 286/2632/539 290/2637/543 287/2634/541 +f 287/2634/541 290/2637/543 291/2638/544 +f 287/2634/541 292/2639/545 293/2640/110 +f 290/2637/543 289/2636/542 294/2641/546 +f 291/2638/544 295/2645/549 296/2642/547 +f 292/2639/545 296/2642/547 297/2643/68 +f 291/2638/544 294/2641/546 298/2644/548 +f 296/2642/547 295/2645/549 299/2646/550 +f 281/2650/552 277/3573/536 276/3574/531 +f 276/3574/531 301/3575/938 281/2650/552 +f 301/3575/938 298/3576/548 281/2650/552 +f 298/3576/548 294/3577/546 281/2650/552 +f 294/3577/546 289/2648/542 281/2650/552 +f 296/2642/547 300/2647/551 302/2651/104 +f 298/2644/548 301/3578/938 299/2646/550 +f 300/2647/551 272/2616/530 271/2618/64 +f 299/2646/550 301/3578/938 276/2619/531 +f 299/2646/550 275/2621/533 272/2616/530 +f 304/2652/530 305/2658/534 306/2653/160 +f 308/2655/531 309/2660/536 310/2656/532 +f 304/2652/530 307/2657/533 310/2656/532 +f 305/2658/534 311/2662/535 312/2659/69 +f 309/2660/536 313/3579/552 314/2661/537 +f 310/2656/532 314/2661/537 311/2662/535 +f 311/2663/535 315/2669/540 316/2664/105 +f 313/2666/552 317/3580/538 318/2667/539 +f 314/2668/537 318/2667/539 315/2669/540 +f 316/2664/105 315/2669/540 319/2670/541 +f 318/2667/539 317/3580/538 321/2672/542 +f 315/2669/540 318/2667/539 322/2673/543 +f 322/2673/543 323/2676/544 324/2674/545 +f 320/2671/61 319/2670/541 324/2674/545 +f 321/2672/542 326/3581/546 323/2676/544 +f 323/2676/544 327/2680/549 328/2677/547 +f 324/2674/545 328/2677/547 329/2678/68 +f 323/2676/544 326/3581/546 330/2679/548 +f 328/2677/547 327/2680/549 331/2681/550 +f 313/2685/552 309/3582/536 308/3583/531 +f 308/3583/531 333/3584/938 313/2685/552 +f 333/3584/938 330/3585/548 313/2685/552 +f 330/3585/548 326/3586/546 313/2685/552 +f 326/3586/546 321/2683/542 313/2685/552 +f 328/2677/547 332/2682/551 334/2686/104 +f 330/2679/548 333/3587/938 331/2681/550 +f 334/2686/104 332/2682/551 304/2652/530 +f 331/2681/550 333/3587/938 308/2655/531 +f 332/2682/551 331/2681/550 307/2657/533 +f 364/131/553 365/135/554 366/2687/554 +f 365/135/554 367/140/555 368/2689/555 +f 368/2689/555 367/140/555 369/136/556 +f 369/136/556 371/127/557 372/2691/557 +f 372/2691/557 371/127/557 373/128/558 +f 373/128/558 375/124/559 376/2693/559 +f 376/2694/559 375/1681/559 377/122/560 +f 377/122/560 379/117/562 380/2696/562 +f 379/117/562 381/119/563 382/2697/563 +f 382/2697/563 381/119/563 383/138/564 +f 383/138/564 387/139/565 388/2699/565 +f 388/2699/565 387/139/565 364/131/553 +f 390/133/566 391/2704/566 392/2700/567 +f 393/120/568 405/2710/568 404/2701/569 +f 395/125/570 396/130/571 408/2702/571 +f 398/132/572 401/2711/572 391/2704/566 +f 389/134/567 392/2700/567 410/2705/573 +f 385/121/569 404/2701/569 403/2706/3 +f 394/126/575 395/125/570 407/2703/570 +f 397/129/1 399/137/574 410/2705/573 +f 386/118/3 403/2706/3 402/2709/576 +f 394/123/575 406/3588/575 405/2710/568 +f 396/130/571 397/129/1 409/2708/1 +f 400/141/576 402/2709/576 401/2711/572 +f 411/2712/577 412/2713/578 413/161/578 +f 412/2713/578 415/2714/579 416/162/579 +f 415/2714/579 417/2716/580 418/157/580 +f 419/2715/581 420/155/581 418/157/580 +f 419/2715/581 421/2718/582 422/152/582 +f 423/2717/583 424/153/583 422/152/582 +f 423/2719/583 425/2721/584 426/148/584 +f 427/2720/585 428/147/585 426/148/584 +f 427/2720/585 429/2722/586 430/145/586 +f 429/2722/586 431/2724/587 432/164/587 +f 435/2723/588 436/159/588 432/164/587 +f 435/2723/588 411/2712/577 414/160/577 +f 438/2725/589 439/3589/590 440/158/590 +f 434/146/591 455/2730/591 454/2726/592 +f 443/154/593 452/2731/593 451/2727/594 +f 440/158/590 439/3589/590 458/2728/595 +f 449/2729/596 438/2725/589 437/165/589 +f 433/1691/3 456/3590/3 455/2730/591 +f 442/151/597 453/3591/597 452/2731/593 +f 450/2732/1 449/2729/596 447/1695/596 +f 457/2733/598 456/3590/3 433/1691/3 +f 441/1692/592 454/2726/592 453/2734/597 +f 451/2727/594 450/2732/1 445/156/1 +f 446/1694/595 458/2728/595 457/2733/598 +f 531/2735/33 532/2745/599 533/2736/599 +f 534/2738/1 535/3592/600 524/252/600 +f 537/261/601 538/255/606 539/1729/3 +f 540/2739/33 526/3593/33 525/2740/602 +f 543/257/600 544/2747/604 545/2742/604 +f 528/254/601 527/2750/599 547/2744/599 +f 538/255/606 537/261/601 533/2736/599 +f 524/252/600 535/3592/600 541/2741/603 +f 531/2746/33 530/3594/33 545/2742/604 +f 528/254/601 546/258/606 549/1735/3 +f 548/1728/1 543/257/600 542/2743/605 +f 526/2749/33 540/3595/33 547/2744/599 +f 578/2751/607 579/3596/614 580/1757/608 +f 582/2752/609 583/2762/616 584/305/610 +f 585/2753/611 586/304/611 587/303/612 +f 589/2755/613 586/304/611 585/2753/611 +f 579/2757/614 588/2754/612 587/303/612 +f 582/2752/609 581/1755/609 592/2759/615 +f 577/2761/607 584/305/610 583/2762/616 +f 590/2764/613 591/3597/615 592/1754/615 +f 594/2765/617 595/3598/618 596/1763/618 +f 598/2766/619 599/3599/620 600/311/620 +f 602/310/621 603/309/624 604/2767/622 +f 602/310/621 601/2768/621 606/2769/623 +f 595/2771/618 604/2767/622 603/309/624 +f 598/2766/619 597/1761/619 608/2773/625 +f 600/311/620 599/3599/620 594/2775/617 +f 605/1759/623 606/3600/623 607/2777/625 +f 614/2778/607 615/3601/614 616/1768/614 +f 618/2779/609 619/2789/616 620/314/616 +f 621/2780/611 622/313/611 623/312/612 +f 622/313/611 621/2780/611 626/2782/613 +f 624/2781/612 623/312/612 616/2784/614 +f 627/2786/615 618/2779/609 617/1766/609 +f 613/2788/607 620/314/616 619/2789/616 +f 626/2791/613 627/3602/615 628/1765/615 +f 629/1773/617 630/3603/617 631/2792/618 +f 634/2793/619 635/2803/620 636/320/620 +f 638/319/621 639/318/624 640/2794/624 +f 638/319/621 637/2795/621 642/2796/623 +f 640/2794/624 639/318/624 632/2798/618 +f 634/2793/619 633/1772/619 644/2800/625 +f 629/2802/617 636/320/620 635/2803/620 +f 642/2805/623 643/3604/625 644/1771/625 +f 650/2806/607 651/3605/614 652/1779/614 +f 653/1777/609 654/3606/609 655/2807/616 +f 658/322/611 659/321/612 660/2808/612 +f 661/2810/613 658/322/611 657/2809/611 +f 660/2808/612 659/321/612 652/2812/614 +f 663/2814/615 654/3606/609 653/1777/609 +f 649/2816/607 656/323/616 655/2807/616 +f 662/2818/613 663/3607/615 664/1776/615 +f 666/2819/617 667/3608/618 668/1785/618 +f 670/2820/619 671/2830/628 672/329/626 +f 674/328/621 675/327/624 676/2821/624 +f 677/2823/623 674/328/621 673/2822/621 +f 676/2821/624 675/327/624 668/2825/618 +f 670/2820/619 669/1783/627 680/2827/625 +f 665/2829/617 672/329/626 671/2830/628 +f 677/1781/623 678/3609/623 679/2832/625 +f 686/1789/629 687/3610/629 688/2833/630 +f 690/1788/631 691/2842/641 692/2834/632 +f 693/2835/634 694/2838/638 695/1787/635 +f 697/2836/637 698/3611/642 693/2835/634 +f 687/2837/629 686/3612/629 695/1787/635 +f 700/2839/639 689/330/633 692/2834/632 +f 685/2841/630 688/3613/630 691/2842/641 +f 700/331/639 699/3614/640 698/2843/642 +f 702/1795/618 703/3615/618 704/2844/617 +f 706/1794/620 707/3616/620 708/2845/619 +f 710/2846/624 711/1793/939 712/338/621 +f 714/2848/623 709/2847/621 712/338/621 +f 702/2850/618 711/1793/939 710/2846/624 +f 716/2852/625 705/336/619 708/2845/619 +f 704/2854/617 707/3616/620 706/1794/620 +f 716/337/625 715/3617/625 714/2856/623 +f 722/1800/629 723/3618/629 724/2857/630 +f 725/339/632 726/1799/641 727/2858/641 +f 730/2860/635 731/1798/940 732/341/636 +f 733/2862/642 734/3619/644 729/2861/634 +f 722/2863/629 731/1798/940 730/2860/635 +f 736/2865/640 725/339/632 728/2859/632 +f 721/2867/630 724/3620/630 727/2858/641 +f 736/340/640 735/3621/643 734/2868/644 +f 737/1807/617 738/1806/618 739/2869/618 +f 742/1805/620 743/3622/626 744/2871/619 +f 745/2872/621 746/2875/624 747/1804/624 +f 749/2873/623 750/3623/623 745/2872/621 +f 738/2874/618 747/1804/624 746/2875/624 +f 751/2877/625 752/3624/625 741/345/619 +f 740/2878/617 743/3622/626 742/1805/620 +f 752/346/625 751/3625/625 750/2880/623 +f 758/1811/629 759/3626/629 760/2881/630 +f 761/348/632 762/1810/641 763/2882/641 +f 766/2884/635 767/1809/635 768/350/634 +f 769/2886/637 770/3627/637 765/2885/634 +f 758/2887/629 767/1809/635 766/2884/635 +f 772/2889/639 761/348/632 764/2883/632 +f 757/2891/630 760/3628/630 763/2882/641 +f 772/349/639 771/3629/639 770/2892/637 +f 774/1817/618 775/3630/618 776/2893/617 +f 778/1816/620 779/3631/620 780/2894/619 +f 782/2895/624 783/1815/624 784/356/645 +f 786/2897/623 781/2896/645 784/356/645 +f 774/2899/618 783/1815/624 782/2895/624 +f 787/2901/625 788/3632/625 777/354/619 +f 776/2902/617 779/3631/620 778/1816/620 +f 788/355/625 787/3633/625 786/2904/623 +f 816/2905/646 817/2940/678 818/2906/647 +f 818/2906/647 817/2940/678 819/2908/649 +f 820/2909/650 819/2908/649 821/2910/651 +f 822/2911/652 821/2910/651 823/2912/653 +f 831/2915/656 825/3634/663 826/2916/657 +f 826/2916/657 827/3635/665 829/3636/670 +f 827/3635/665 828/3637/667 829/3636/670 +f 829/3636/670 830/2914/655 826/2916/657 +f 833/2917/658 816/2905/646 815/2907/648 +f 834/2919/660 832/2918/659 835/2920/661 +f 835/2920/661 826/2925/657 825/2922/663 +f 832/2918/659 815/2907/648 837/2923/664 +f 835/2920/661 837/2923/664 827/2924/665 +f 815/2907/648 818/2906/647 838/2926/666 +f 837/2923/664 838/2926/666 828/2927/667 +f 820/2909/650 839/2928/668 838/2926/666 +f 839/2928/668 829/2930/670 828/2927/667 +f 822/2911/652 840/2929/669 839/2928/668 +f 840/2929/669 830/2932/655 829/2930/670 +f 824/2913/654 841/3638/941 840/2929/669 +f 840/2929/669 841/3638/941 831/2931/656 +f 842/2933/671 833/2917/658 832/2918/659 +f 842/2933/671 843/2935/673 844/2934/672 +f 843/2935/673 845/3639/942 846/2936/674 +f 833/2917/658 844/2934/672 847/2937/675 +f 844/2934/672 846/2936/674 848/2938/676 +f 816/2905/646 847/2937/675 849/2939/677 +f 847/2937/675 848/2938/676 850/2941/679 +f 819/2908/649 817/2940/678 849/2939/677 +f 851/2942/680 849/2939/677 850/2941/679 +f 821/2910/651 819/2908/649 851/2942/680 +f 853/2944/682 851/2942/680 852/2943/681 +f 823/2912/653 821/2910/651 853/2944/682 +f 855/2946/684 853/2944/682 854/2945/683 +f 848/2950/676 846/3640/674 854/3641/683 +f 846/3640/674 845/3642/942 854/3641/683 +f 845/3642/942 856/3643/685 854/3641/683 +f 854/3641/683 852/2948/681 848/2950/676 +f 858/2951/686 859/2986/718 860/2952/687 +f 860/2952/687 859/2986/718 861/2954/689 +f 862/2955/690 861/2954/689 863/2956/691 +f 864/2957/692 863/2956/691 865/2958/693 +f 873/3644/710 867/3645/703 872/2960/695 +f 867/3645/703 868/3646/705 872/2960/695 +f 868/3646/705 869/2961/696 872/2960/695 +f 869/2961/696 870/3647/707 871/2962/697 +f 875/2963/698 858/2951/686 857/2953/688 +f 876/2965/700 874/2964/699 877/2966/701 +f 877/2966/701 868/2971/705 867/2968/703 +f 874/2964/699 857/2953/688 879/2969/704 +f 877/2966/701 879/2969/704 869/2970/696 +f 857/2953/688 860/2952/687 880/2972/706 +f 879/2969/704 880/2972/706 870/2973/707 +f 862/2955/690 881/2974/708 880/2972/706 +f 881/2974/708 871/2976/697 870/2973/707 +f 864/2957/692 882/2975/709 881/2974/708 +f 882/2975/709 872/2978/695 871/2976/697 +f 866/2959/694 883/3648/943 882/2975/709 +f 882/2975/709 883/3648/943 873/2977/710 +f 884/2979/711 875/2963/698 874/2964/699 +f 884/2979/711 885/2981/713 886/2980/712 +f 885/2981/713 887/3649/944 888/2982/714 +f 875/2963/698 886/2980/712 889/2983/715 +f 886/2980/712 888/2982/714 890/2984/716 +f 858/2951/686 889/2983/715 891/2985/717 +f 889/2983/715 890/2984/716 892/2987/719 +f 861/2954/689 859/2986/718 891/2985/717 +f 893/2988/720 891/2985/717 892/2987/719 +f 863/2956/691 861/2954/689 893/2988/720 +f 895/2990/722 893/2988/720 894/2989/721 +f 865/2958/693 863/2956/691 895/2990/722 +f 897/2992/724 895/2990/722 896/2991/723 +f 890/2996/716 888/3650/714 896/3651/723 +f 888/3650/714 887/3652/944 896/3651/723 +f 887/3652/944 898/3653/725 896/3651/723 +f 896/3651/723 894/2994/721 890/2996/716 +f 900/2997/726 901/3032/758 902/2998/727 +f 902/2998/727 901/3032/758 903/3000/729 +f 904/3001/730 903/3000/729 905/3002/731 +f 906/3003/732 905/3002/731 907/3004/733 +f 915/3007/736 909/3654/743 910/3008/737 +f 910/3008/737 911/3655/745 913/3656/750 +f 911/3655/745 912/3657/747 913/3656/750 +f 913/3656/750 914/3006/735 910/3008/737 +f 917/3009/738 900/2997/726 899/2999/728 +f 918/3011/740 916/3010/739 919/3012/741 +f 919/3012/741 910/3017/737 909/3014/743 +f 916/3010/739 899/2999/728 921/3015/744 +f 919/3012/741 921/3015/744 911/3016/745 +f 899/2999/728 902/2998/727 922/3018/746 +f 921/3015/744 922/3018/746 912/3019/747 +f 904/3001/730 923/3020/748 922/3018/746 +f 923/3020/748 913/3022/750 912/3019/747 +f 906/3003/732 924/3021/749 923/3020/748 +f 924/3021/749 914/3024/735 913/3022/750 +f 908/3005/734 925/3658/945 924/3021/749 +f 924/3021/749 925/3658/945 915/3023/736 +f 926/3025/751 917/3009/738 916/3010/739 +f 926/3025/751 927/3027/753 928/3026/752 +f 927/3027/753 929/3659/946 930/3028/754 +f 917/3009/738 928/3026/752 931/3029/755 +f 928/3026/752 930/3028/754 932/3030/756 +f 900/2997/726 931/3029/755 933/3031/757 +f 931/3029/755 932/3030/756 934/3033/759 +f 903/3000/729 901/3032/758 933/3031/757 +f 935/3034/760 933/3031/757 934/3033/759 +f 905/3002/731 903/3000/729 935/3034/760 +f 937/3036/762 935/3034/760 936/3035/761 +f 907/3004/733 905/3002/731 937/3036/762 +f 939/3038/764 937/3036/762 938/3037/763 +f 932/3042/756 930/3660/754 938/3661/763 +f 930/3660/754 929/3662/946 938/3661/763 +f 929/3662/946 940/3663/765 938/3661/763 +f 938/3661/763 936/3040/761 932/3042/756 +f 958/3043/766 959/3664/776 960/1834/767 +f 961/1832/769 962/3051/777 963/3044/770 +f 966/415/771 967/414/772 968/3045/772 +f 969/3047/774 966/415/771 965/3046/773 +f 959/3049/776 968/3045/772 967/414/772 +f 962/3051/777 961/1832/769 972/3052/778 +f 957/3054/768 964/416/770 963/3044/770 +f 970/3056/775 971/3665/778 972/1831/778 +f 974/3057/779 975/3666/780 976/1840/780 +f 977/1838/781 978/3667/781 979/3058/782 +f 982/421/783 983/420/788 984/3059/784 +f 982/421/783 981/3060/785 986/3061/786 +f 975/3063/780 984/3059/784 983/420/788 +f 987/3065/789 978/3667/781 977/1838/781 +f 973/3067/779 980/422/782 979/3058/782 +f 985/1836/787 986/3668/786 987/3069/789 +f 994/3070/768 995/3669/776 996/1845/776 +f 997/1843/790 998/3670/790 999/3071/770 +f 1001/3072/791 1002/424/791 1003/423/772 +f 1002/424/791 1001/3072/791 1006/3074/774 +f 1004/3073/772 1003/423/772 996/3076/776 +f 1007/3078/778 998/3670/790 997/1843/790 +f 1000/425/770 999/3071/770 994/3080/768 +f 1005/1841/774 1006/3671/774 1007/3082/778 +f 1009/1850/779 1010/3672/779 1011/3083/793 +f 1013/1849/781 1014/3673/798 1015/3084/782 +f 1018/430/783 1019/429/788 1020/3085/788 +f 1021/3087/794 1018/430/783 1017/3086/783 +f 1011/3089/793 1020/3085/788 1019/429/788 +f 1023/3091/789 1014/3673/798 1013/1849/781 +f 1009/3093/779 1016/431/782 1015/3084/782 +f 1022/3095/794 1023/3674/789 1024/1848/789 +f 1030/3096/768 1031/3675/776 1032/1856/776 +f 1033/1854/769 1034/3676/777 1035/3097/770 +f 1038/433/791 1039/432/772 1040/3098/772 +f 1041/3100/774 1038/433/791 1037/3099/773 +f 1040/3098/772 1039/432/772 1032/3102/776 +f 1043/3104/778 1034/3676/777 1033/1854/769 +f 1036/434/770 1035/3097/770 1030/3106/768 +f 1042/3108/774 1043/3677/778 1044/1853/795 +f 1046/3109/796 1047/3678/780 1048/1862/780 +f 1049/1860/798 1050/3117/798 1051/3110/799 +f 1054/439/783 1055/438/788 1056/3111/788 +f 1057/3113/787 1054/439/783 1053/3112/783 +f 1047/3115/780 1056/3111/788 1055/438/788 +f 1050/3117/798 1049/1860/798 1060/3118/789 +f 1045/3120/797 1052/440/799 1051/3110/799 +f 1057/1858/787 1058/3679/787 1059/3122/789 +f 1066/1866/800 1067/3680/800 1068/3123/801 +f 1070/1865/802 1071/3132/809 1072/3124/803 +f 1073/3125/805 1074/3128/806 1075/1864/806 +f 1077/3126/807 1078/3681/807 1073/3125/805 +f 1067/3127/800 1066/3682/800 1075/1864/806 +f 1080/3129/808 1069/441/804 1072/3124/803 +f 1065/3131/801 1068/3683/801 1071/3132/809 +f 1080/442/808 1079/3684/808 1078/3133/807 +f 1082/1872/780 1083/3685/780 1084/3134/779 +f 1086/1871/782 1087/3145/782 1088/3135/781 +f 1090/3136/788 1091/1870/784 1092/449/783 +f 1094/3138/794 1089/3137/783 1092/449/783 +f 1082/3140/780 1091/1870/784 1090/3136/788 +f 1096/3142/789 1085/447/781 1088/3135/781 +f 1081/3144/779 1084/3686/779 1087/3145/782 +f 1096/448/789 1095/3687/789 1094/3146/794 +f 1102/1877/800 1103/3688/800 1104/3147/801 +f 1105/450/803 1106/1876/809 1107/3148/809 +f 1110/3150/810 1111/1875/810 1112/452/811 +f 1113/3152/807 1114/3689/807 1109/3151/805 +f 1102/3153/800 1111/1875/810 1110/3150/810 +f 1116/3155/808 1105/450/803 1108/3149/803 +f 1101/3157/801 1104/3690/801 1107/3148/809 +f 1116/451/808 1115/3691/808 1114/3158/807 +f 1117/1884/796 1118/1883/780 1119/3159/793 +f 1122/1882/799 1123/3692/799 1124/3161/781 +f 1125/3162/783 1126/3165/788 1127/1881/788 +f 1129/3163/794 1130/3693/794 1125/3162/783 +f 1118/3164/780 1127/1881/788 1126/3165/788 +f 1131/3167/789 1132/3694/789 1121/456/781 +f 1120/3168/797 1123/3692/799 1122/1882/799 +f 1132/457/789 1131/3695/789 1130/3170/794 +f 1138/1888/800 1139/3696/800 1140/3171/801 +f 1141/459/803 1142/1887/809 1143/3172/809 +f 1146/3174/806 1147/1886/806 1148/461/805 +f 1149/3176/807 1150/3697/807 1145/3175/805 +f 1138/3177/800 1147/1886/806 1146/3174/806 +f 1152/3179/808 1141/459/803 1144/3173/803 +f 1137/3181/801 1140/3698/801 1143/3172/809 +f 1152/460/808 1151/3699/808 1150/3182/807 +f 1154/1894/780 1155/3700/780 1156/3183/779 +f 1157/465/781 1158/1893/782 1159/3184/782 +f 1162/3186/788 1163/1892/788 1164/467/812 +f 1166/3188/787 1161/3187/813 1164/467/812 +f 1154/3190/780 1163/1892/788 1162/3186/788 +f 1167/3192/814 1168/3701/814 1157/465/781 +f 1156/3193/779 1159/3184/782 1158/1893/782 +f 1168/466/814 1167/3702/814 1166/3195/787 +f 1196/3196/815 1197/3703/816 1198/1907/816 +f 1199/1905/817 1200/3204/817 1201/3197/818 +f 1204/506/820 1205/505/821 1206/3198/821 +f 1207/3200/822 1204/506/820 1203/3199/820 +f 1197/3202/816 1206/3198/821 1205/505/821 +f 1200/3204/817 1199/1905/817 1210/3205/823 +f 1195/3207/815 1202/507/819 1201/3197/818 +f 1208/3209/822 1209/3704/823 1210/1904/823 +f 1212/3210/824 1213/3705/832 1214/1913/825 +f 1215/1911/826 1216/3218/826 1217/3211/827 +f 1220/512/828 1221/511/833 1222/3212/829 +f 1220/512/828 1219/3213/830 1224/3214/831 +f 1213/3216/832 1222/3212/829 1221/511/833 +f 1216/3218/826 1215/1911/826 1226/3219/834 +f 1218/513/827 1217/3211/827 1212/3221/824 +f 1223/1909/831 1224/3706/831 1225/3223/834 +f 1232/3224/815 1233/3707/816 1234/1918/816 +f 1235/1916/817 1236/3708/817 1237/3225/835 +f 1239/3226/820 1240/515/820 1241/514/821 +f 1240/515/820 1239/3226/820 1244/3228/822 +f 1242/3227/821 1241/514/821 1234/3230/816 +f 1245/3232/823 1236/3708/817 1235/1916/817 +f 1231/3234/815 1238/516/818 1237/3225/835 +f 1244/3236/822 1245/3709/823 1246/1915/823 +f 1247/1923/824 1248/3710/824 1249/3237/836 +f 1251/1922/826 1252/3711/947 1253/3238/837 +f 1256/521/828 1257/520/833 1258/3239/833 +f 1256/521/828 1255/3240/828 1260/3241/831 +f 1258/3239/833 1257/520/833 1250/3243/836 +f 1261/3245/834 1252/3711/947 1251/1922/826 +f 1247/3247/824 1254/522/837 1253/3238/837 +f 1260/3249/831 1261/3712/834 1262/1921/834 +f 1268/3250/815 1269/3713/816 1270/1929/816 +f 1271/1927/817 1272/3714/817 1273/3251/835 +f 1276/524/820 1277/523/821 1278/3252/821 +f 1279/3254/822 1276/524/820 1275/3253/820 +f 1278/3252/821 1277/523/821 1270/3256/816 +f 1281/3258/823 1272/3714/817 1271/1927/817 +f 1267/3260/815 1274/525/835 1273/3251/835 +f 1280/3262/822 1281/3715/823 1282/1926/823 +f 1284/3263/824 1285/3716/836 1286/1935/836 +f 1287/1933/826 1288/3271/826 1289/3264/837 +f 1292/530/828 1293/529/833 1294/3265/833 +f 1295/3267/831 1292/530/828 1291/3266/828 +f 1285/3269/836 1294/3265/833 1293/529/833 +f 1288/3271/826 1287/1933/826 1298/3272/838 +f 1283/3274/824 1290/531/837 1289/3264/837 +f 1295/1931/831 1296/3717/831 1297/3276/839 +f 1304/1939/840 1305/3718/840 1306/3277/841 +f 1308/1938/842 1309/3286/849 1310/3278/843 +f 1311/3279/844 1312/3282/845 1313/1937/845 +f 1315/3280/847 1316/3719/847 1311/3279/844 +f 1305/3281/840 1304/3720/840 1313/1937/845 +f 1318/3283/848 1307/532/843 1310/3278/843 +f 1303/3285/841 1306/3721/841 1309/3286/849 +f 1318/533/848 1317/3722/848 1316/3287/847 +f 1320/1945/832 1321/3723/836 1322/3288/824 +f 1324/1944/827 1325/3299/827 1326/3289/826 +f 1327/3290/850 1328/3294/854 1329/1943/851 +f 1332/3291/853 1327/3290/850 1330/540/852 +f 1320/3293/832 1329/1943/851 1328/3294/854 +f 1334/3296/834 1323/538/826 1326/3289/826 +f 1319/3298/824 1322/3724/824 1325/3299/827 +f 1334/539/834 1333/3725/834 1332/3300/853 +f 1340/1950/840 1341/3726/840 1342/3301/855 +f 1343/541/843 1344/1949/849 1345/3302/849 +f 1348/3304/857 1349/1948/857 1350/543/846 +f 1351/3306/847 1352/3727/847 1347/3305/858 +f 1340/3307/840 1349/1948/857 1348/3304/857 +f 1354/3309/848 1343/541/843 1346/3303/856 +f 1339/3311/841 1342/3728/855 1345/3302/849 +f 1354/542/848 1353/3729/859 1352/3312/847 +f 1355/1957/824 1356/1956/836 1357/3313/836 +f 1360/1955/827 1361/3730/827 1362/3315/826 +f 1363/3316/828 1364/3319/833 1365/1954/833 +f 1367/3317/853 1368/3731/853 1363/3316/828 +f 1356/3318/836 1365/1954/833 1364/3319/833 +f 1370/3321/839 1359/547/826 1362/3315/826 +f 1358/3323/824 1361/3730/827 1360/1955/827 +f 1370/548/839 1369/3732/839 1368/3325/853 +f 1376/1961/840 1377/3733/840 1378/3326/841 +f 1379/550/843 1380/1960/849 1381/3327/849 +f 1384/3329/845 1385/1959/948 1386/552/860 +f 1387/3331/862 1388/3734/862 1383/3330/861 +f 1376/3332/840 1385/1959/948 1384/3329/845 +f 1390/3334/848 1379/550/843 1382/3328/856 +f 1378/3336/841 1381/3327/849 1380/1960/849 +f 1390/551/848 1389/3735/848 1388/3338/862 +f 1392/1967/836 1393/3736/836 1394/3339/824 +f 1396/1966/827 1397/3737/827 1398/3340/826 +f 1399/3341/828 1400/3344/833 1401/1965/833 +f 1403/3342/831 1404/3738/831 1399/3341/828 +f 1393/3343/836 1392/3739/836 1401/1965/833 +f 1405/3345/834 1406/3740/834 1395/556/826 +f 1394/3346/824 1397/3737/827 1396/1966/827 +f 1406/557/834 1405/3741/834 1404/3348/831 +f 1505/3349/110 1506/3359/868 1507/3350/863 +f 1508/3352/1 1509/3742/864 1498/678/864 +f 1511/687/865 1512/681/865 1513/2001/3 +f 1514/3353/110 1500/3743/110 1499/3354/866 +f 1517/683/864 1518/3361/866 1519/3356/866 +f 1502/680/865 1501/3364/868 1521/3358/867 +f 1512/681/865 1511/687/865 1507/3350/863 +f 1498/678/864 1509/3742/864 1515/3355/866 +f 1505/3360/110 1504/3744/110 1519/3356/866 +f 1502/680/865 1520/684/865 1523/2007/3 +f 1522/2000/1 1517/683/864 1516/3357/864 +f 1500/3363/110 1514/3745/110 1521/3358/867 +f 1597/3365/130 1598/3375/869 1599/3366/869 +f 1600/3368/1 1601/3746/870 1590/773/870 +f 1602/2044/3 1603/782/874 1604/776/871 +f 1606/3369/130 1592/3747/130 1591/3370/872 +f 1609/778/870 1610/3377/873 1611/3372/873 +f 1594/775/874 1593/3380/876 1613/3374/869 +f 1604/776/871 1603/782/874 1599/3366/869 +f 1590/773/870 1601/3746/870 1607/3371/873 +f 1597/3376/130 1596/3748/130 1611/3372/873 +f 1594/775/874 1612/779/875 1615/2042/3 +f 1609/778/870 1608/3373/870 1616/3378/1 +f 1592/3379/130 1606/3749/130 1613/3374/869 +f 1689/3381/28 1690/3391/877 1691/3382/877 +f 1692/3384/1 1693/3750/878 1682/867/878 +f 1695/876/879 1696/870/883 1697/2072/3 +f 1698/3385/28 1684/3751/28 1683/3386/880 +f 1701/872/878 1702/3393/881 1703/3388/881 +f 1686/869/879 1685/3396/877 1705/3390/877 +f 1696/870/883 1695/876/879 1691/3382/877 +f 1682/867/878 1693/3750/878 1699/3387/880 +f 1689/3392/28 1688/3752/28 1703/3388/881 +f 1686/869/879 1704/873/882 1707/2078/3 +f 1706/2071/1 1701/872/878 1700/3389/878 +f 1684/3395/28 1698/3753/28 1705/3390/877 +f 1780/3397/105 1781/3754/105 1782/3398/884 +f 1784/3400/1 1785/3755/885 1774/962/885 +f 1787/971/886 1788/965/886 1789/2107/3 +f 1790/3401/105 1776/3756/105 1775/3402/887 +f 1793/967/885 1794/3408/887 1795/3404/887 +f 1778/964/886 1777/3411/884 1797/3406/888 +f 1788/965/886 1787/971/886 1783/3399/884 +f 1774/962/885 1785/3755/885 1791/3403/887 +f 1781/3407/105 1780/3757/105 1795/3404/887 +f 1778/964/886 1796/968/886 1799/2113/3 +f 1798/2106/1 1793/967/885 1792/3405/885 +f 1776/3410/105 1790/3758/105 1797/3406/888 +f 1873/3412/125 1874/3422/889 1875/3413/889 +f 1876/3415/1 1877/3759/890 1866/1056/890 +f 1879/1065/891 1880/1059/891 1881/2143/3 +f 1882/3416/125 1868/3760/125 1867/3417/892 +f 1885/1061/890 1886/3424/893 1887/3419/893 +f 1870/1058/895 1869/3427/889 1889/3421/889 +f 1880/1059/891 1879/1065/891 1875/3413/889 +f 1866/1056/890 1877/3759/890 1883/3418/892 +f 1873/3423/125 1872/3761/125 1887/3419/893 +f 1870/1058/895 1888/1062/891 1891/2149/3 +f 1890/2142/1 1885/1061/890 1884/3420/894 +f 1868/3426/125 1882/3762/125 1889/3421/889 +f 1965/3428/143 1966/3438/896 1967/3429/896 +f 1968/3431/1 1969/3763/897 1958/1151/897 +f 1971/1160/898 1972/1154/898 1973/2178/3 +f 1974/3432/143 1960/3764/143 1959/3433/899 +f 1977/1156/901 1978/3440/899 1979/3435/899 +f 1962/1153/898 1961/3443/896 1981/3437/896 +f 1972/1154/898 1971/1160/898 1967/3429/896 +f 1958/1151/897 1969/3763/897 1975/3434/900 +f 1965/3439/143 1964/3765/143 1979/3435/899 +f 1962/1153/898 1980/1157/902 1983/2184/3 +f 1982/2177/1 1977/1156/901 1976/3436/901 +f 1960/3442/143 1974/3766/143 1981/3437/896 +f 2057/3444/160 2058/3454/903 2059/3445/903 +f 2060/3447/1 2061/3767/904 2050/1245/904 +f 2063/1254/905 2064/1248/905 2065/2214/3 +f 2066/3448/160 2052/3768/160 2051/3449/906 +f 2069/1250/904 2070/3456/906 2071/3451/906 +f 2054/1247/905 2053/3459/903 2073/3453/907 +f 2064/1248/905 2063/1254/905 2059/3445/903 +f 2050/1245/904 2061/3767/904 2067/3450/906 +f 2057/3455/160 2056/3769/160 2071/3451/906 +f 2054/1247/905 2072/1251/905 2075/2220/3 +f 2074/2213/1 2069/1250/904 2068/3452/904 +f 2052/3458/160 2066/3770/160 2073/3453/907 +f 2149/3460/178 2150/3470/915 2151/3461/908 +f 2152/3463/1 2153/3771/909 2142/1339/909 +f 2155/1348/910 2156/1342/914 2157/2250/3 +f 2158/3464/178 2144/3772/178 2143/3465/911 +f 2161/1344/909 2162/3472/912 2163/3467/912 +f 2146/1341/910 2145/3475/916 2165/3469/908 +f 2156/1342/914 2155/1348/910 2151/3461/908 +f 2142/1339/909 2153/3771/909 2159/3466/911 +f 2149/3471/178 2148/3773/178 2163/3467/912 +f 2146/1341/910 2164/1345/913 2167/2256/3 +f 2166/2249/1 2161/1344/909 2160/3468/909 +f 2144/3474/178 2158/3774/178 2165/3469/908 +f 2241/3476/27 2242/3486/917 2243/3477/917 +f 2244/3479/1 2245/3775/918 2234/1433/918 +f 2247/1442/919 2248/1436/924 2249/2286/3 +f 2250/3480/27 2236/3776/27 2235/3481/920 +f 2253/1438/918 2254/3488/921 2255/3483/921 +f 2238/1435/922 2237/3491/917 2257/3485/917 +f 2248/1436/924 2247/1442/919 2243/3477/917 +f 2234/1433/918 2245/3775/918 2251/3482/920 +f 2241/3487/27 2240/3777/27 2255/3483/921 +f 2238/1435/922 2256/1439/923 2259/2292/3 +f 2258/2285/1 2253/1438/918 2252/3484/918 +f 2236/3490/27 2250/3778/27 2257/3485/917 +f 2333/3492/104 2334/3502/925 2335/3493/925 +f 2336/3495/1 2337/3779/926 2326/1529/926 +f 2339/1538/927 2340/1532/927 2341/2320/3 +f 2342/3496/104 2328/3780/104 2327/3497/928 +f 2345/1534/926 2346/3504/928 2347/3499/928 +f 2330/1531/927 2329/3507/925 2349/3501/925 +f 2340/1532/927 2339/1538/927 2335/3493/925 +f 2326/1529/926 2337/3779/926 2343/3498/928 +f 2333/3503/104 2332/3781/104 2347/3499/928 +f 2330/1531/927 2348/1535/927 2351/2326/3 +f 2350/2319/1 2345/1534/926 2344/3500/926 +f 2328/3506/104 2342/3782/104 2349/3501/925 +f 2425/3508/124 2426/3518/929 2427/3509/929 +f 2428/3511/1 2429/3783/930 2418/1625/930 +f 2431/1634/931 2432/1628/935 2433/2354/3 +f 2434/3512/124 2420/3784/124 2419/3513/932 +f 2437/1630/930 2438/3520/933 2439/3515/933 +f 2422/1627/931 2421/3523/929 2441/3517/929 +f 2432/1628/935 2431/1634/931 2427/3509/929 +f 2418/1625/930 2429/3783/930 2435/3514/932 +f 2425/3519/124 2424/3785/124 2439/3515/933 +f 2422/1627/931 2440/1631/935 2443/2360/3 +f 2442/2353/1 2437/1630/930 2436/3516/934 +f 2420/3522/124 2434/3786/124 2441/3517/929 diff --git a/src/main/resources/assets/hbm/textures/models/TsarBomba.png b/src/main/resources/assets/hbm/textures/models/TsarBomba.png deleted file mode 100644 index ff12919c1a439af288ee4b47b3c712ebea430fa2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17287 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 diff --git a/src/main/resources/assets/hbm/textures/models/bombs/tsar.png b/src/main/resources/assets/hbm/textures/models/bombs/tsar.png new file mode 100644 index 0000000000000000000000000000000000000000..479e5c44b1e3b9217bd8ac439b8ab15565c02f92 GIT binary patch literal 15090 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 Date: Sun, 27 Aug 2023 19:29:37 +0200 Subject: [PATCH 268/432] the malicious gigglefish from the silly dimension --- changelog | 12 ++++ gradle.properties | 8 +-- src/main/java/com/hbm/blocks/ModBlocks.java | 43 ++++++------- .../com/hbm/blocks/bomb/ExplosiveCharge.java | 9 +-- .../java/com/hbm/blocks/bomb/NukeBoy.java | 1 - .../java/com/hbm/blocks/bomb/NukeCustom.java | 10 +-- .../java/com/hbm/blocks/bomb/NukeGadget.java | 11 +--- .../java/com/hbm/blocks/bomb/NukeMan.java | 9 +-- .../java/com/hbm/blocks/bomb/NukeMike.java | 9 +-- src/main/java/com/hbm/blocks/bomb/NukeN2.java | 9 +-- .../java/com/hbm/blocks/bomb/NukeTsar.java | 13 +--- .../hbm/blocks/generic/BlockBedrockOre.java | 51 --------------- .../com/hbm/blocks/generic/BlockHazard.java | 1 + .../hbm/blocks/generic/BlockSellafield.java | 17 ++--- .../hbm/blocks/machine/BlockFluidBarrel.java | 1 - .../blocks/machine/MachineBigAssTank9000.java | 1 - .../com/hbm/blocks/machine/MachineFan.java | 9 ++- .../hbm/blocks/machine/MachineFluidTank.java | 1 - .../hbm/blocks/machine/PistonInserter.java | 10 ++- .../hbm/blocks/network/BlockConveyorBase.java | 11 +++- .../hbm/blocks/network/BlockCraneBase.java | 9 ++- .../com/hbm/blocks/network/CraneRouter.java | 13 ++-- .../com/hbm/blocks/network/CraneSplitter.java | 11 +++- .../java/com/hbm/blocks/test/TestCore.java | 9 +-- .../entity/effect/EntityNukeCloudSmall.java | 1 + .../hbm/entity/effect/EntityNukeTorex.java | 57 +++++++++++++---- .../com/hbm/entity/missile/EntityMIRV.java | 9 +-- .../entity/missile/EntityMissileCustom.java | 15 ++--- .../hbm/entity/missile/EntityMissileMirv.java | 9 +-- .../entity/missile/EntityMissileNuclear.java | 9 +-- .../hbm/entity/projectile/EntityModBeam.java | 4 +- .../explosion/ExplosionNukeRayBatched.java | 9 ++- .../container/ContainerNukeTsar.java | 55 +++++++---------- .../com/hbm/inventory/gui/GUINukeTsar.java | 35 +++++++---- .../inventory/recipes/AssemblerRecipes.java | 11 +--- .../recipes/ElectrolyserFluidRecipes.java | 3 +- .../java/com/hbm/items/armor/ItemModLens.java | 1 - .../java/com/hbm/items/tool/ItemWandD.java | 1 + .../com/hbm/items/tool/WeaponSpecial.java | 9 +-- .../com/hbm/items/weapon/ItemAmmoArty.java | 8 +-- src/main/java/com/hbm/lib/RefStrings.java | 2 +- .../java/com/hbm/main/CraftingManager.java | 2 - src/main/java/com/hbm/main/MainRegistry.java | 1 + .../com/hbm/main/ModEventHandlerClient.java | 1 - .../tileentity/bomb/TileEntityLaunchPad.java | 2 - .../bomb/TileEntityNukeBalefire.java | 4 +- .../tileentity/bomb/TileEntityNukeN45.java | 9 +-- .../machine/TileEntityPWRController.java | 2 +- .../machine/TileEntityStorageDrum.java | 15 +++-- .../machine/storage/TileEntityBarrel.java | 1 - .../storage/TileEntityMachineFluidTank.java | 1 - .../java/com/hbm/world/feature/BiomeCave.java | 4 +- .../java/com/hbm/world/feature/DeepLayer.java | 4 +- .../java/com/hbm/world/feature/OreCave.java | 4 +- .../java/com/hbm/world/feature/OreLayer.java | 4 +- .../com/hbm/world/feature/OreLayer3D.java | 4 +- .../com/hbm/world/feature/SchistStratum.java | 4 +- src/main/resources/assets/hbm/lang/de_DE.lang | 38 +++++++++++- src/main/resources/assets/hbm/lang/en_US.lang | 58 +++++++++++------- .../textures/gui/weapon/ivyMikeSchematic.png | Bin 16860 -> 16183 bytes .../gui/weapon/tsarBombaSchematic.png | Bin 2706 -> 9652 bytes 61 files changed, 340 insertions(+), 334 deletions(-) delete mode 100644 src/main/java/com/hbm/blocks/generic/BlockBedrockOre.java diff --git a/changelog b/changelog index 9862d630b..8e2b10e3a 100644 --- a/changelog +++ b/changelog @@ -4,6 +4,7 @@ * Has some design similarities with the RBMK, but in 3D * Relatively easy to build and safe to operate * Does not use any tile entity rendering and all math is pre-calculated when the reactor is assembled, making this one even more performant than the old large reactor + * Balancing might change, so keep that in mind when updating in the future * Sodalite * A gem that can be extracted from fluorite or lapis ore * Can be heated in the combination oven to make sodium and chlorine @@ -27,6 +28,16 @@ * Fluorite ore is now centrifugable * Fluorite crystals now centrifuge into slightly less fluorite but also yield sodalite * Blast resistance values for most resistant blocks have been changed, most blocks now have much lower resistance which means there's now a practical difference between concrete and ducrete. Resistance values also match the block's cost more closely. +* Using a screwdriver, the input and output sides of conveyor cranes (inserters, ejectors, etc) can now be configured, allowing them to operate around corners +* Sandstone's blast resistance is now as high as stone's, but only against nuclear explosions +* The tsar bomba model has been updated +* The nuclear explosion animation has been replaced with the TOREX system, instead of a static model that moves around, the mushroom clouds are now made of simulated particles +* Sellafite now uses random ticks instead of scheduled ticks every second, while this does reduce its radioactivity quite a bit, it prevents the tick queue from slowing down to a crawl with large amounts of sellafite from nuclear explosions +* Conveyor blocks now have tooltips explaining what they do and how they can be configured +* The large reactor still works despite the PWR being added, but the parts have been made uncraftable +* Unused watz parts have been hidden from the creative inventory +* Removed the bedrok coltan ore, since it was replaced by generic bedrock ores anyway +* Updated decal on the congo lake grenade launcher ## Fixed * Fixed FEnSU's IO limit not working properly @@ -40,3 +51,4 @@ * Corium is now a finite fluid, fixing an issue where a single fuel rod can be used to create a giant blob of corium, lagging out the server * Fixed bullets not being able to pass things like tall grass * Whether the player has received a guide book is now saved as part of the extprop which might fix an issue where offline mode players get a new book on every start +* Fixed electrolyser fluid recipes not showing the input amount diff --git a/gradle.properties b/gradle.properties index e8d659222..962c3fabf 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4690 +mod_build_number=4704 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ @@ -8,11 +8,11 @@ credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion al \ (chinese localization), Frooz (models), Minecreep (models), VT-6/24 (models, textures), Pheo (textures,\ \ various machines, models, weapons), Vr (gas centrifuges, better worldgen, ZIRNOX, CP-1 parts, starter guide),\ \ Adam29 (liquid petroleum, ethanol, electric furnace), Pashtet (russian localization), MartinTheDragon\ - \ (calculator, chunk-based fallout), haru315 (spiral point algorithm), Sten89 (models), Pixelguru26\ - \ (textures), TheBlueHat (textures), Alcater (GUI textures, porting), impbk2002 (project settings),\ + \ (calculator, chunk-based fallout, bendable cranes), haru315 (spiral point algorithm), Sten89 (models), Pixelguru26\ + \ (textures), TheBlueHat (textures), Alcater (GUI textures, porting), impbk2002 (project settings), Nos (models),\ \ Burningwater202 (laminate glass), OvermindDL1 (project settings), TehTemmie (reacher radiation function),\ \ Toshayo (satellite loot system, project settings, gradle curse task), Silly541 (config for safe ME drives),\ \ Voxelstice (OpenComputers integration, turbine spinup), BallOfEnergy1 (OpenComputers integration), martemen\ \ (project settings), Pvndols (thorium fuel recipe, gas turbine), JamesH2 (blood mechanics, nitric acid,\ \ particle emitter), sdddddf80 (recipe configs, chinese localization, custom machine holograms),\ - \ SuperCraftAlex (tooltips) LePeep (coilgun model, BDCL QC), Maksymisio (polish localization) + \ SuperCraftAlex (tooltips) LePeep (coilgun model, BDCL QC), 70k (textures), Maksymisio (polish localization) diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 72da33957..dd5bf106a 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -88,8 +88,6 @@ public class ModBlocks { public static Block ore_bedrock; public static Block ore_volcano; - public static Block ore_bedrock_coltan; - public static Block ore_nether_coal; public static Block ore_nether_smoldering; public static Block ore_nether_uranium; @@ -1398,8 +1396,6 @@ public class ModBlocks { ore_cinnebar = new BlockOre(Material.rock).setBlockName("ore_cinnebar").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_cinnebar"); ore_coltan = new BlockOre(Material.rock).setBlockName("ore_coltan").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_coltan"); - ore_bedrock_coltan = new BlockBedrockOre().setBlockName("ore_bedrock_coltan").setCreativeTab(null).setBlockUnbreakable().setResistance(1_000_000).setBlockTextureName(RefStrings.MODID + ":ore_bedrock_coltan"); - ore_oil = new BlockOre(Material.rock).setBlockName("ore_oil").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_oil"); ore_oil_empty = new BlockGeneric(Material.rock).setBlockName("ore_oil_empty").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_oil_empty"); ore_oil_sand = new BlockFalling(Material.sand).setBlockName("ore_oil_sand").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeSand).setHardness(0.5F).setResistance(1.0F).setBlockTextureName(RefStrings.MODID + ":ore_oil_sand_alt"); @@ -1579,7 +1575,7 @@ public class ModBlocks { brick_concrete_cracked = new BlockGeneric(Material.rock).setBlockName("brick_concrete_cracked").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete_cracked"); brick_concrete_broken = new BlockGeneric(Material.rock).setBlockName("brick_concrete_broken").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(45.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete_broken"); brick_concrete_marked = new BlockWriting(Material.rock, RefStrings.MODID + ":brick_concrete").setBlockName("brick_concrete_marked").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(160.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete_marked"); - brick_obsidian = new BlockGeneric(Material.rock).setBlockName("brick_obsidian").setCreativeTab(MainRegistry.blockTab).setLightOpacity(15).setHardness(15.0F).setResistance(2400.0F).setBlockTextureName(RefStrings.MODID + ":brick_obsidian"); + brick_obsidian = new BlockGeneric(Material.rock).setBlockName("brick_obsidian").setCreativeTab(MainRegistry.blockTab).setLightOpacity(15).setHardness(15.0F).setResistance(120.0F).setBlockTextureName(RefStrings.MODID + ":brick_obsidian"); brick_light = new BlockGeneric(Material.rock).setBlockName("brick_light").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":brick_light"); brick_compound = new BlockGeneric(Material.rock).setBlockName("brick_compound").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(400.0F).setBlockTextureName(RefStrings.MODID + ":brick_compound"); cmb_brick = new BlockGeneric(Material.rock).setBlockName("cmb_brick").setCreativeTab(MainRegistry.blockTab).setHardness(25.0F).setResistance(5000.0F).setBlockTextureName(RefStrings.MODID + ":cmb_brick"); @@ -1990,7 +1986,6 @@ public class ModBlocks { crane_unboxer = new CraneUnboxer().setBlockName("crane_unboxer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); crane_splitter = new CraneSplitter().setBlockName("crane_splitter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":crane_side"); fan = new MachineFan().setBlockName("fan").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - piston_inserter = new PistonInserter().setBlockName("piston_inserter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); chain = new BlockChain(Material.iron).setBlockName("dungeon_chain").setHardness(0.25F).setResistance(2.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":chain"); @@ -2082,9 +2077,9 @@ public class ModBlocks { watz_control = new BlockPillar(Material.iron, RefStrings.MODID + ":watz_control_top").setBlockName("watz_control").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":watz_control_side"); watz_cooler = new BlockPillar(Material.iron, RefStrings.MODID + ":watz_cooler_top").setBlockName("watz_cooler").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":watz_cooler_side"); watz_end = new BlockToolConversion(Material.iron).addVariant("_bolted").setBlockName("watz_end").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":watz_casing"); - watz_hatch = new WatzHatch(Material.iron).setBlockName("watz_hatch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":watz_hatch"); - watz_conductor = new BlockCableConnect(Material.iron).setBlockName("watz_conductor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":watz_conductor_top"); - watz_core = new WatzCore(Material.iron).setBlockName("watz_core").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":watz_computer"); + watz_hatch = new WatzHatch(Material.iron).setBlockName("watz_hatch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":watz_hatch"); + watz_conductor = new BlockCableConnect(Material.iron).setBlockName("watz_conductor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":watz_conductor_top"); + watz_core = new WatzCore(Material.iron).setBlockName("watz_core").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":watz_computer"); watz = new Watz().setBlockName("watz").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); watz_pump = new WatzPump().setBlockName("watz_pump").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); @@ -2485,7 +2480,6 @@ public class ModBlocks { GameRegistry.registerBlock(cluster_copper, ItemBlockBase.class, cluster_copper.getUnlocalizedName()); //Bedrock ores - GameRegistry.registerBlock(ore_bedrock_coltan, ore_bedrock_coltan.getUnlocalizedName()); GameRegistry.registerBlock(ore_bedrock_oil, ore_bedrock_oil.getUnlocalizedName()); //Nice Meme @@ -3233,21 +3227,20 @@ public class ModBlocks { register(radio_torch_receiver); register(radio_torch_counter); - GameRegistry.registerBlock(crane_extractor, crane_extractor.getUnlocalizedName()); - GameRegistry.registerBlock(crane_inserter, crane_inserter.getUnlocalizedName()); - GameRegistry.registerBlock(crane_grabber, crane_grabber.getUnlocalizedName()); - GameRegistry.registerBlock(crane_router, crane_router.getUnlocalizedName()); - GameRegistry.registerBlock(crane_boxer, crane_boxer.getUnlocalizedName()); - GameRegistry.registerBlock(crane_unboxer, crane_unboxer.getUnlocalizedName()); - GameRegistry.registerBlock(conveyor, conveyor.getUnlocalizedName()); - GameRegistry.registerBlock(conveyor_double, conveyor_double.getUnlocalizedName()); - GameRegistry.registerBlock(conveyor_triple, conveyor_triple.getUnlocalizedName()); - GameRegistry.registerBlock(conveyor_chute, conveyor_chute.getUnlocalizedName()); - GameRegistry.registerBlock(conveyor_lift, conveyor_lift.getUnlocalizedName()); - GameRegistry.registerBlock(crane_splitter, crane_splitter.getUnlocalizedName()); - GameRegistry.registerBlock(fan, fan.getUnlocalizedName()); - - GameRegistry.registerBlock(piston_inserter, piston_inserter.getUnlocalizedName()); + register(crane_extractor); + register(crane_inserter); + register(crane_grabber); + register(crane_router); + register(crane_boxer); + register(crane_unboxer); + register(conveyor); + register(conveyor_double); + register(conveyor_triple); + register(conveyor_chute); + register(conveyor_lift); + register(crane_splitter); + register(fan); + register(piston_inserter); GameRegistry.registerBlock(chain, chain.getUnlocalizedName()); GameRegistry.registerBlock(ladder_sturdy, ladder_sturdy.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/bomb/ExplosiveCharge.java b/src/main/java/com/hbm/blocks/bomb/ExplosiveCharge.java index f3d5f88e8..262f4be36 100644 --- a/src/main/java/com/hbm/blocks/bomb/ExplosiveCharge.java +++ b/src/main/java/com/hbm/blocks/bomb/ExplosiveCharge.java @@ -2,7 +2,7 @@ package com.hbm.blocks.bomb; import com.hbm.blocks.ModBlocks; import com.hbm.config.BombConfig; -import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.explosion.ExplosionLarge; import com.hbm.explosion.ExplosionNT; @@ -78,12 +78,7 @@ public class ExplosiveCharge extends Block implements IBomb, IDetConnectible { } if(this == ModBlocks.det_nuke) { world.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(world, BombConfig.missileRadius, x + 0.5, y + 0.5, z + 0.5)); - - EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(world, 1000, BombConfig.missileRadius * 0.005F); - entity2.posX = x; - entity2.posY = y; - entity2.posZ = z; - world.spawnEntityInWorld(entity2); + EntityNukeTorex.statFac(world, x + 0.5, y + 0.5, z + 0.5, BombConfig.missileRadius); } } diff --git a/src/main/java/com/hbm/blocks/bomb/NukeBoy.java b/src/main/java/com/hbm/blocks/bomb/NukeBoy.java index d25f59ace..c6b96a476 100644 --- a/src/main/java/com/hbm/blocks/bomb/NukeBoy.java +++ b/src/main/java/com/hbm/blocks/bomb/NukeBoy.java @@ -4,7 +4,6 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.config.BombConfig; -import com.hbm.entity.effect.EntityNukeCloudSmall; import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.interfaces.IBomb; diff --git a/src/main/java/com/hbm/blocks/bomb/NukeCustom.java b/src/main/java/com/hbm/blocks/bomb/NukeCustom.java index a00b74d56..ebc21403e 100644 --- a/src/main/java/com/hbm/blocks/bomb/NukeCustom.java +++ b/src/main/java/com/hbm/blocks/bomb/NukeCustom.java @@ -4,7 +4,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.entity.effect.EntityCloudFleija; -import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.grenade.EntityGrenadeZOMG; import com.hbm.entity.logic.EntityBalefire; import com.hbm.entity.logic.EntityNukeExplosionMK3; @@ -169,7 +169,7 @@ public class NukeCustom extends BlockContainer implements IBomb { bf.setPosition(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5); bf.destructionRange = (int) amat; worldObj.spawnEntityInWorld(bf); - worldObj.spawnEntityInWorld(EntityNukeCloudSmall.statFacBale(worldObj, xCoord + 0.5, yCoord + 5, zCoord + 0.5, amat * 1.5F, 1000)); + EntityNukeTorex.statFacBale(worldObj, xCoord + 0.5, yCoord + 5, zCoord + 0.5, amat); /// HYDROGEN /// } else if(hydro > 0) { @@ -179,7 +179,7 @@ public class NukeCustom extends BlockContainer implements IBomb { dirty *= 0.25F; worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, (int)hydro, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5).moreFallout((int)dirty)); - worldObj.spawnEntityInWorld(EntityNukeCloudSmall.statFac(worldObj, xCoord + 0.5, yCoord + 5, zCoord + 0.5, hydro)); + EntityNukeTorex.statFac(worldObj, xCoord + 0.5, yCoord + 5, zCoord + 0.5, hydro); /// NUCLEAR /// } else if(nuke > 0) { @@ -188,7 +188,7 @@ public class NukeCustom extends BlockContainer implements IBomb { nuke = Math.min(nuke, maxNuke); worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, (int)nuke, xCoord + 0.5, yCoord + 5, zCoord + 0.5).moreFallout((int)dirty)); - worldObj.spawnEntityInWorld(EntityNukeCloudSmall.statFac(worldObj, xCoord + 0.5, yCoord + 5, zCoord + 0.5, nuke)); + EntityNukeTorex.statFac(worldObj, xCoord + 0.5, yCoord + 5, zCoord + 0.5, nuke); /// NON-NUCLEAR /// } else if(tnt >= 75) { @@ -196,7 +196,7 @@ public class NukeCustom extends BlockContainer implements IBomb { tnt = Math.min(tnt, maxTnt); worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFacNoRad(worldObj, (int)tnt, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5)); - worldObj.spawnEntityInWorld(EntityNukeCloudSmall.statFac(worldObj, xCoord + 0.5, yCoord + 5, zCoord + 0.5, tnt)); + EntityNukeTorex.statFac(worldObj, xCoord + 0.5, yCoord + 5, zCoord + 0.5, tnt); } else if(tnt > 0) { ExplosionLarge.explode(worldObj, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, tnt, true, true, true); diff --git a/src/main/java/com/hbm/blocks/bomb/NukeGadget.java b/src/main/java/com/hbm/blocks/bomb/NukeGadget.java index 9c555b132..a09d7c31f 100644 --- a/src/main/java/com/hbm/blocks/bomb/NukeGadget.java +++ b/src/main/java/com/hbm/blocks/bomb/NukeGadget.java @@ -4,7 +4,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.config.BombConfig; -import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.interfaces.IBomb; import com.hbm.main.MainRegistry; @@ -130,13 +130,8 @@ public class NukeGadget extends BlockContainer implements IBomb { tetn.clearSlots(); world.playSoundEffect(x, y, z, "random.explode", 1.0f, world.rand.nextFloat() * 0.1F + 0.9F); - world.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(world, BombConfig.gadgetRadius, x + 0.5, y + 0.5, z + 0.5)); - - EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(world, 1000, BombConfig.gadgetRadius * 0.005F); - entity2.posX = x; - entity2.posY = y; - entity2.posZ = z; - world.spawnEntityInWorld(entity2); + world.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(world, BombConfig.gadgetRadius, x + 0.5, y + 0.5, z + 0.5)); + EntityNukeTorex.statFac(world, x + 0.5, y + 0.5, z + 0.5, BombConfig.gadgetRadius); } return false; diff --git a/src/main/java/com/hbm/blocks/bomb/NukeMan.java b/src/main/java/com/hbm/blocks/bomb/NukeMan.java index 9f8a8b941..d9fc4f1a5 100644 --- a/src/main/java/com/hbm/blocks/bomb/NukeMan.java +++ b/src/main/java/com/hbm/blocks/bomb/NukeMan.java @@ -4,7 +4,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.config.BombConfig; -import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.interfaces.IBomb; import com.hbm.main.MainRegistry; @@ -124,12 +124,7 @@ public class NukeMan extends BlockContainer implements IBomb { world.playSoundEffect(x, y, z, "random.explode", 1.0f, world.rand.nextFloat() * 0.1F + 0.9F); world.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(world, BombConfig.manRadius, x + 0.5, y + 0.5, z + 0.5)); - - EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(world, 1000, BombConfig.manRadius * 0.005F); - entity2.posX = x; - entity2.posY = y; - entity2.posZ = z; - world.spawnEntityInWorld(entity2); + EntityNukeTorex.statFac(world, x + 0.5, y + 0.5, z + 0.5, BombConfig.manRadius); } return false; diff --git a/src/main/java/com/hbm/blocks/bomb/NukeMike.java b/src/main/java/com/hbm/blocks/bomb/NukeMike.java index 75216a1eb..84e178758 100644 --- a/src/main/java/com/hbm/blocks/bomb/NukeMike.java +++ b/src/main/java/com/hbm/blocks/bomb/NukeMike.java @@ -4,7 +4,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.config.BombConfig; -import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.interfaces.IBomb; import com.hbm.main.MainRegistry; @@ -131,12 +131,7 @@ public class NukeMike extends BlockContainer implements IBomb { world.playSoundEffect(x, y, z, "random.explode", 1.0f, world.rand.nextFloat() * 0.1F + 0.9F); world.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(world, BombConfig.mikeRadius, x + 0.5, y + 0.5, z + 0.5)); - - EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(world, 1000, r * 0.005F); - entity2.posX = x; - entity2.posY = y; - entity2.posZ = z; - world.spawnEntityInWorld(entity2); + EntityNukeTorex.statFac(world, x + 0.5, y + 0.5, z + 0.5, BombConfig.mikeRadius); } return false; diff --git a/src/main/java/com/hbm/blocks/bomb/NukeN2.java b/src/main/java/com/hbm/blocks/bomb/NukeN2.java index a01f83d25..c65eef0f7 100644 --- a/src/main/java/com/hbm/blocks/bomb/NukeN2.java +++ b/src/main/java/com/hbm/blocks/bomb/NukeN2.java @@ -4,7 +4,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.config.BombConfig; -import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.interfaces.IBomb; import com.hbm.main.MainRegistry; @@ -120,12 +120,7 @@ public class NukeN2 extends BlockContainer implements IBomb { world.playSoundEffect(x, y, z, "random.explode", 1.0f, world.rand.nextFloat() * 0.1F + 0.9F); world.spawnEntityInWorld(EntityNukeExplosionMK5.statFacNoRad(world, r, x + 0.5, y + 0.5, z + 0.5)); - - EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(world, 1000, r * 0.005F); - entity2.posX = x; - entity2.posY = y; - entity2.posZ = z; - world.spawnEntityInWorld(entity2); + EntityNukeTorex.statFac(world, x + 0.5, y + 0.5, z + 0.5, r); } return false; diff --git a/src/main/java/com/hbm/blocks/bomb/NukeTsar.java b/src/main/java/com/hbm/blocks/bomb/NukeTsar.java index 51514ced2..f064a053a 100644 --- a/src/main/java/com/hbm/blocks/bomb/NukeTsar.java +++ b/src/main/java/com/hbm/blocks/bomb/NukeTsar.java @@ -4,7 +4,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.config.BombConfig; -import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.interfaces.IBomb; import com.hbm.main.MainRegistry; @@ -127,18 +127,9 @@ public class NukeTsar extends BlockContainer implements IBomb { public boolean igniteTestBomb(World world, int x, int y, int z, int r) { if(!world.isRemote) { tetn.clearSlots(); - // world.spawnParticle("hugeexplosion", x, y, z, 0, 0, 0); world.playSoundEffect(x, y, z, "random.explode", 1.0f, world.rand.nextFloat() * 0.1F + 0.9F); - world.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(world, r, x + 0.5, y + 0.5, z + 0.5)); - - EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(world, 1000, r * 0.005F); - entity2.posX = x; - entity2.posY = y; - entity2.posZ = z; - world.spawnEntityInWorld(entity2); - - // ExplosionNukeAdvanced.mush(world, x, y, z); + EntityNukeTorex.statFac(world, x + 0.5, y + 0.5, z + 0.5, r); } return false; diff --git a/src/main/java/com/hbm/blocks/generic/BlockBedrockOre.java b/src/main/java/com/hbm/blocks/generic/BlockBedrockOre.java deleted file mode 100644 index 766f3df31..000000000 --- a/src/main/java/com/hbm/blocks/generic/BlockBedrockOre.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.hbm.blocks.generic; - -import com.hbm.blocks.ModBlocks; -import com.hbm.items.ModItems; - -import api.hbm.block.IDrillInteraction; -import api.hbm.block.IMiningDrill; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class BlockBedrockOre extends Block implements IDrillInteraction { - - public BlockBedrockOre() { - super(Material.rock); - } - - @Override - public boolean canBreak(World world, int x, int y, int z, int meta, IMiningDrill drill) { - return drill.getDrillRating() > 70; - } - - @Override - public ItemStack extractResource(World world, int x, int y, int z, int meta, IMiningDrill drill) { - - if(drill.getDrillRating() > 70) - return null; - - Item drop = this.getDrop(); - - if(drop == null) - return null; - - return world.rand.nextInt(50) == 0 ? new ItemStack(drop) : null; - } - - @Override - public float getRelativeHardness(World world, int x, int y, int z, int meta, IMiningDrill drill) { - return 30; - } - - private Item getDrop() { - - if(this == ModBlocks.ore_bedrock_coltan) - return ModItems.fragment_coltan; - - return null; - } -} diff --git a/src/main/java/com/hbm/blocks/generic/BlockHazard.java b/src/main/java/com/hbm/blocks/generic/BlockHazard.java index 94008085f..b3bdfc145 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockHazard.java +++ b/src/main/java/com/hbm/blocks/generic/BlockHazard.java @@ -138,6 +138,7 @@ public class BlockHazard extends Block implements ITooltipProvider { public void onBlockAdded(World world, int x, int y, int z) { super.onBlockAdded(world, x, y, z); + // who wrote this??? rad = HazardSystem.getHazardLevelFromStack(new ItemStack(this), HazardRegistry.RADIATION) * 0.1F; if(this.rad > 0) diff --git a/src/main/java/com/hbm/blocks/generic/BlockSellafield.java b/src/main/java/com/hbm/blocks/generic/BlockSellafield.java index 2f4a618c3..03c53b9f4 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockSellafield.java +++ b/src/main/java/com/hbm/blocks/generic/BlockSellafield.java @@ -29,6 +29,8 @@ public class BlockSellafield extends BlockHazard { public BlockSellafield(Material mat) { super(mat); this.setCreativeTab(MainRegistry.blockTab); + this.needsRandomTick = true; + this.rad = 0.5F; } @Override @@ -41,19 +43,20 @@ public class BlockSellafield extends BlockHazard { @Override public void updateTick(World world, int x, int y, int z, Random rand) { - - ChunkRadiationManager.proxy.incrementRad(world, x, y, z, this.rad); - + int meta = world.getBlockMetadata(x, y, z); - if(rand.nextInt(meta == 0 ? 30 * 60 : 15 * 60) == 0) { + ChunkRadiationManager.proxy.incrementRad(world, x, y, z, this.rad * (meta + 1)); + + if(rand.nextInt(meta == 0 ? 25 : 15) == 0) { if(meta > 0) world.setBlockMetadataWithNotify(x, y, z, meta - 1, 2); else world.setBlock(x, y, z, ModBlocks.sellafield_slaked); } - - world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world)); } + + @Override public void onBlockAdded(World world, int x, int y, int z) { } + @SideOnly(Side.CLIENT) protected IIcon[] icons; @@ -86,6 +89,4 @@ public class BlockSellafield extends BlockHazard { public IIcon getIcon(int side, int meta) { return this.icons[meta % this.icons.length]; } - - } diff --git a/src/main/java/com/hbm/blocks/machine/BlockFluidBarrel.java b/src/main/java/com/hbm/blocks/machine/BlockFluidBarrel.java index 1798b5b59..7444f30f1 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockFluidBarrel.java +++ b/src/main/java/com/hbm/blocks/machine/BlockFluidBarrel.java @@ -12,7 +12,6 @@ import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.main.MainRegistry; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.machine.storage.TileEntityBarrel; -import com.hbm.tileentity.machine.storage.TileEntityMachineFluidTank; import com.hbm.util.I18nUtil; import cpw.mods.fml.client.registry.RenderingRegistry; diff --git a/src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java b/src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java index 782bc09ee..54aecbef7 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java +++ b/src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java @@ -12,7 +12,6 @@ import com.hbm.main.MainRegistry; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.storage.TileEntityMachineBAT9000; -import com.hbm.tileentity.machine.storage.TileEntityMachineFluidTank; import com.hbm.util.I18nUtil; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; diff --git a/src/main/java/com/hbm/blocks/machine/MachineFan.java b/src/main/java/com/hbm/blocks/machine/MachineFan.java index 6a37de202..37a96e5f8 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineFan.java +++ b/src/main/java/com/hbm/blocks/machine/MachineFan.java @@ -2,6 +2,8 @@ package com.hbm.blocks.machine; import java.util.List; +import com.hbm.blocks.ITooltipProvider; + import api.hbm.block.IBlowable; import api.hbm.block.IToolable; import cpw.mods.fml.relauncher.Side; @@ -20,7 +22,7 @@ import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class MachineFan extends BlockContainer implements IToolable { +public class MachineFan extends BlockContainer implements IToolable, ITooltipProvider { public MachineFan() { super(Material.iron); @@ -142,4 +144,9 @@ public class MachineFan extends BlockContainer implements IToolable { return true; } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineFluidTank.java b/src/main/java/com/hbm/blocks/machine/MachineFluidTank.java index f6d487718..e24b46847 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineFluidTank.java +++ b/src/main/java/com/hbm/blocks/machine/MachineFluidTank.java @@ -14,7 +14,6 @@ import com.hbm.main.MainRegistry; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.IRepairable; import com.hbm.tileentity.TileEntityProxyCombo; -import com.hbm.tileentity.machine.storage.TileEntityMachineBattery; import com.hbm.tileentity.machine.storage.TileEntityMachineFluidTank; import com.hbm.util.I18nUtil; diff --git a/src/main/java/com/hbm/blocks/machine/PistonInserter.java b/src/main/java/com/hbm/blocks/machine/PistonInserter.java index 91e3e25b1..8b95fed92 100644 --- a/src/main/java/com/hbm/blocks/machine/PistonInserter.java +++ b/src/main/java/com/hbm/blocks/machine/PistonInserter.java @@ -1,6 +1,9 @@ package com.hbm.blocks.machine; +import java.util.List; + import com.hbm.blocks.BlockContainerBase; +import com.hbm.blocks.ITooltipProvider; import com.hbm.tileentity.INBTPacketReceiver; import api.hbm.block.IInsertable; @@ -21,7 +24,7 @@ import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class PistonInserter extends BlockContainerBase { +public class PistonInserter extends BlockContainerBase implements ITooltipProvider { public PistonInserter() { super(Material.iron); @@ -383,4 +386,9 @@ public class PistonInserter extends BlockContainerBase { @Override public boolean isItemValidForSlot(int slot, ItemStack stack) { return true; } } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } } diff --git a/src/main/java/com/hbm/blocks/network/BlockConveyorBase.java b/src/main/java/com/hbm/blocks/network/BlockConveyorBase.java index 62a8a2b55..44ce47839 100644 --- a/src/main/java/com/hbm/blocks/network/BlockConveyorBase.java +++ b/src/main/java/com/hbm/blocks/network/BlockConveyorBase.java @@ -1,5 +1,8 @@ package com.hbm.blocks.network; +import java.util.List; + +import com.hbm.blocks.ITooltipProvider; import com.hbm.entity.item.EntityMovingItem; import com.hbm.lib.RefStrings; @@ -13,6 +16,7 @@ import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.IIcon; @@ -22,7 +26,7 @@ import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public abstract class BlockConveyorBase extends Block implements IConveyorBelt { +public abstract class BlockConveyorBase extends Block implements IConveyorBelt, ITooltipProvider { @SideOnly(Side.CLIENT) protected IIcon sideIcon; @@ -159,4 +163,9 @@ public abstract class BlockConveyorBase extends Block implements IConveyorBelt { world.setBlockMetadataWithNotify(x, y, z, 4, 2); } } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } } diff --git a/src/main/java/com/hbm/blocks/network/BlockCraneBase.java b/src/main/java/com/hbm/blocks/network/BlockCraneBase.java index 577ceb614..ef73c5f4f 100644 --- a/src/main/java/com/hbm/blocks/network/BlockCraneBase.java +++ b/src/main/java/com/hbm/blocks/network/BlockCraneBase.java @@ -2,6 +2,7 @@ package com.hbm.blocks.network; import api.hbm.block.IToolable; import com.hbm.blocks.IBlockSideRotation; +import com.hbm.blocks.ITooltipProvider; import com.hbm.items.tool.ItemTooling; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; @@ -27,9 +28,10 @@ import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +import java.util.List; import java.util.Random; -public abstract class BlockCraneBase extends BlockContainer implements IBlockSideRotation, IToolable { +public abstract class BlockCraneBase extends BlockContainer implements IBlockSideRotation, IToolable, ITooltipProvider { @SideOnly(Side.CLIENT) protected IIcon iconSide; @SideOnly(Side.CLIENT) protected IIcon iconIn; @@ -304,4 +306,9 @@ public abstract class BlockCraneBase extends BlockContainer implements IBlockSid super.breakBlock(world, x, y, z, block, meta); } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } } diff --git a/src/main/java/com/hbm/blocks/network/CraneRouter.java b/src/main/java/com/hbm/blocks/network/CraneRouter.java index 06dc1769f..a89d2a695 100644 --- a/src/main/java/com/hbm/blocks/network/CraneRouter.java +++ b/src/main/java/com/hbm/blocks/network/CraneRouter.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.List; import com.hbm.blocks.IBlockMultiPass; +import com.hbm.blocks.ITooltipProvider; import com.hbm.entity.item.EntityMovingItem; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; @@ -32,7 +33,7 @@ import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class CraneRouter extends BlockContainer implements IBlockMultiPass, IEnterableBlock { +public class CraneRouter extends BlockContainer implements IBlockMultiPass, IEnterableBlock, ITooltipProvider { @SideOnly(Side.CLIENT) protected IIcon iconOverlay; @@ -194,11 +195,11 @@ public class CraneRouter extends BlockContainer implements IBlockMultiPass, IEnt } } - @Override - public boolean canPackageEnter(World world, int x, int y, int z, ForgeDirection dir, IConveyorPackage entity) { - return false; - } + @Override public boolean canPackageEnter(World world, int x, int y, int z, ForgeDirection dir, IConveyorPackage entity) { return false; } + @Override public void onPackageEnter(World world, int x, int y, int z, ForgeDirection dir, IConveyorPackage entity) { } @Override - public void onPackageEnter(World world, int x, int y, int z, ForgeDirection dir, IConveyorPackage entity) { } + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } } diff --git a/src/main/java/com/hbm/blocks/network/CraneSplitter.java b/src/main/java/com/hbm/blocks/network/CraneSplitter.java index 11de7afda..a39396fb0 100644 --- a/src/main/java/com/hbm/blocks/network/CraneSplitter.java +++ b/src/main/java/com/hbm/blocks/network/CraneSplitter.java @@ -1,6 +1,9 @@ package com.hbm.blocks.network; +import java.util.List; + import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ITooltipProvider; import com.hbm.entity.item.EntityMovingItem; import com.hbm.lib.RefStrings; import com.hbm.tileentity.network.TileEntityCraneSplitter; @@ -14,6 +17,7 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; @@ -22,7 +26,7 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class CraneSplitter extends BlockDummyable implements IConveyorBelt, IEnterableBlock { +public class CraneSplitter extends BlockDummyable implements IConveyorBelt, IEnterableBlock, ITooltipProvider { @SideOnly(Side.CLIENT) public IIcon iconTopLeft; @SideOnly(Side.CLIENT) public IIcon iconTopRight; @@ -154,4 +158,9 @@ public class CraneSplitter extends BlockDummyable implements IConveyorBelt, IEnt if(meta >= 12) return ForgeDirection.getOrientation(meta - offset); return ForgeDirection.getOrientation(meta).getRotation(ForgeDirection.UP); } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } } diff --git a/src/main/java/com/hbm/blocks/test/TestCore.java b/src/main/java/com/hbm/blocks/test/TestCore.java index ff070e919..049f7eae9 100644 --- a/src/main/java/com/hbm/blocks/test/TestCore.java +++ b/src/main/java/com/hbm/blocks/test/TestCore.java @@ -3,7 +3,7 @@ package com.hbm.blocks.test; import java.util.Random; import com.hbm.config.BombConfig; -import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.logic.EntityNukeExplosionMK5; import net.minecraft.block.Block; @@ -27,12 +27,7 @@ public class TestCore extends Block { world.setBlockToAir(x, y, z); world.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(world, BombConfig.missileRadius, x + 0.5, y + 0.5, z + 0.5)); - - EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(world, 1000, BombConfig.missileRadius * 0.005F); - entity2.posX = x; - entity2.posY = y; - entity2.posZ = z; - world.spawnEntityInWorld(entity2); + EntityNukeTorex.statFac(world, x + 0.5, y + 0.5, z + 0.5, BombConfig.missileRadius); } else if(meta > 0) { diff --git a/src/main/java/com/hbm/entity/effect/EntityNukeCloudSmall.java b/src/main/java/com/hbm/entity/effect/EntityNukeCloudSmall.java index b2794a939..2aee5b349 100644 --- a/src/main/java/com/hbm/entity/effect/EntityNukeCloudSmall.java +++ b/src/main/java/com/hbm/entity/effect/EntityNukeCloudSmall.java @@ -9,6 +9,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.Vec3; import net.minecraft.world.World; +@Deprecated public class EntityNukeCloudSmall extends Entity { public int maxAge = 1000; diff --git a/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java b/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java index be72b5c8b..56f2a9f67 100644 --- a/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java +++ b/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java @@ -2,6 +2,8 @@ package com.hbm.entity.effect; import java.util.ArrayList; +import com.hbm.util.TrackerUtil; + import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.Entity; @@ -34,6 +36,7 @@ public class EntityNukeTorex extends Entity { @Override protected void entityInit() { this.dataWatcher.addObject(10, new Float(1)); + this.dataWatcher.addObject(11, new Integer(0)); } @Override @@ -60,7 +63,7 @@ public class EntityNukeTorex extends Entity { lastSpawnY = posY - 3; } - int spawnTarget = worldObj.getHeightValue((int) Math.floor(posX), (int) Math.floor(posZ)) - 3; + int spawnTarget = Math.max(worldObj.getHeightValue((int) Math.floor(posX), (int) Math.floor(posZ)) - 3, 1); double moveSpeed = 0.5D; if(Math.abs(spawnTarget - lastSpawnY) < moveSpeed) { @@ -69,6 +72,7 @@ public class EntityNukeTorex extends Entity { lastSpawnY += moveSpeed * Math.signum(spawnTarget - lastSpawnY); } + // spawn mush clouds double range = (torusWidth - rollerSize) * 0.25; double simSpeed = getSimulationSpeed(); int toSpawn = (int) Math.ceil(10 * simSpeed * simSpeed); @@ -82,7 +86,8 @@ public class EntityNukeTorex extends Entity { cloudlets.add(cloud); } - if(ticksExisted < 50) { + // spawn shock clouds + if(ticksExisted < 100) { int cloudCount = ticksExisted * 5; int shockLife = Math.max(300 - ticksExisted * 20, 50); @@ -97,6 +102,7 @@ public class EntityNukeTorex extends Entity { } } + // spawn ring clouds if(ticksExisted < 200) { for(int i = 0; i < 2; i++) { Cloudlet cloud = new Cloudlet(posX, posY + coreHeight, posZ, (float)(rand.nextDouble() * 2D * Math.PI), 0, lifetime, TorexType.RING); @@ -133,6 +139,11 @@ public class EntityNukeTorex extends Entity { return this; } + public EntityNukeTorex setType(int type) { + this.dataWatcher.updateObject(11, type); + return this; + } + public double getSimulationSpeed() { int lifetime = getMaxAge(); @@ -404,11 +415,21 @@ public class EntityNukeTorex extends Entity { dist = Math.max(dist, 1); double col = 2D / dist; - this.color = Vec3.createVectorHelper( - Math.max(col * 2, 0.25), - Math.max(col * 1.5, 0.25), - Math.max(col * 0.5, 0.25) - ); + int type = EntityNukeTorex.this.dataWatcher.getWatchableObjectInt(11); + + if(type == 1) { + this.color = Vec3.createVectorHelper( + Math.max(col * 1, 0.25), + Math.max(col * 2, 0.25), + Math.max(col * 0.5, 0.25) + ); + } else { + this.color = Vec3.createVectorHelper( + Math.max(col * 2, 0.25), + Math.max(col * 1.5, 0.25), + Math.max(col * 0.5, 0.25) + ); + } } public Vec3 getInterpPos(float interp) { @@ -461,15 +482,27 @@ public class EntityNukeTorex extends Entity { RING } - @Override - protected void readEntityFromNBT(NBTTagCompound nbt) { } - - @Override - protected void writeEntityToNBT(NBTTagCompound nbt) { } + @Override protected void writeEntityToNBT(NBTTagCompound nbt) { } + @Override public boolean writeToNBTOptional(NBTTagCompound nbt) { return false; } + @Override public void readEntityFromNBT(NBTTagCompound nbt) { this.setDead(); } @Override @SideOnly(Side.CLIENT) public boolean isInRangeToRenderDist(double distance) { return true; } + + public static void statFac(World world, double x, double y, double z, float scale) { + EntityNukeTorex torex = new EntityNukeTorex(world).setScale(MathHelper.clamp_float(scale * 0.01F, 0.5F, 5F)); + torex.setPosition(x, y, z); + world.spawnEntityInWorld(torex); + TrackerUtil.setTrackingRange(world, torex, 1000); + } + + public static void statFacBale(World world, double x, double y, double z, float scale) { + EntityNukeTorex torex = new EntityNukeTorex(world).setScale(MathHelper.clamp_float(scale * 0.01F, 0.5F, 5F)).setType(1); + torex.setPosition(x, y, z); + world.spawnEntityInWorld(torex); + TrackerUtil.setTrackingRange(world, torex, 1000); + } } diff --git a/src/main/java/com/hbm/entity/missile/EntityMIRV.java b/src/main/java/com/hbm/entity/missile/EntityMIRV.java index c7aa4b0af..e5a4054f6 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMIRV.java +++ b/src/main/java/com/hbm/entity/missile/EntityMIRV.java @@ -1,7 +1,7 @@ package com.hbm.entity.missile; import com.hbm.config.BombConfig; -import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.entity.particle.EntitySmokeFX; @@ -37,12 +37,7 @@ public class EntityMIRV extends EntityThrowable { if(this.worldObj.getBlock((int) this.posX, (int) this.posY, (int) this.posZ) != Blocks.air) { if(!this.worldObj.isRemote) { worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, BombConfig.mirvRadius, posX, posY, posZ)); - - EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(this.worldObj, 1000, BombConfig.mirvRadius * 0.005F); - entity2.posX = this.posX; - entity2.posY = this.posY; - entity2.posZ = this.posZ; - this.worldObj.spawnEntityInWorld(entity2); + EntityNukeTorex.statFac(worldObj, posX, posY, posZ, BombConfig.mirvRadius); } this.setDead(); } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java b/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java index 6deaa70ce..41841568c 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java @@ -6,6 +6,7 @@ import java.util.List; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.bomb.BlockTaint; import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.logic.EntityBalefire; import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.entity.logic.IChunkLoader; @@ -327,11 +328,7 @@ public class EntityMissileCustom extends Entity implements IChunkLoader, IRadarD case NUCLEAR: case TX: worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, (int) strength, posX, posY, posZ)); - EntityNukeCloudSmall nuke = new EntityNukeCloudSmall(worldObj, 1000, strength * 0.005F); - nuke.posX = posX; - nuke.posY = posY; - nuke.posZ = posZ; - worldObj.spawnEntityInWorld(nuke); + EntityNukeTorex.statFac(worldObj, posX, posY, posZ, strength); break; case BALEFIRE: EntityBalefire bf = new EntityBalefire(worldObj); @@ -340,15 +337,11 @@ public class EntityMissileCustom extends Entity implements IChunkLoader, IRadarD bf.posZ = this.posZ; bf.destructionRange = (int) strength; worldObj.spawnEntityInWorld(bf); - worldObj.spawnEntityInWorld(EntityNukeCloudSmall.statFacBale(worldObj, posX, posY + 5, posZ, strength * 1.5F, 1000)); + EntityNukeTorex.statFacBale(worldObj, posX, posY, posZ, strength); break; case N2: worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFacNoRad(worldObj, (int) strength, posX, posY, posZ)); - EntityNukeCloudSmall n2 = new EntityNukeCloudSmall(worldObj, 1000, strength * 0.005F); - n2.posX = posX; - n2.posY = posY; - n2.posZ = posZ; - worldObj.spawnEntityInWorld(n2); + EntityNukeTorex.statFac(worldObj, posX, posY, posZ, strength); break; case TAINT: int r = (int) strength; diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileMirv.java b/src/main/java/com/hbm/entity/missile/EntityMissileMirv.java index 627d074a1..e5dbe3db7 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileMirv.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileMirv.java @@ -4,7 +4,7 @@ import java.util.ArrayList; import java.util.List; import com.hbm.config.BombConfig; -import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.items.ModItems; @@ -25,12 +25,7 @@ public class EntityMissileMirv extends EntityMissileBaseAdvanced { public void onImpact() { worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, BombConfig.missileRadius * 2, posX, posY, posZ)); - - EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(this.worldObj, 1000, BombConfig.missileRadius * 2 * 0.005F); - entity2.posX = this.posX; - entity2.posY = this.posY - 9; - entity2.posZ = this.posZ; - this.worldObj.spawnEntityInWorld(entity2); + EntityNukeTorex.statFac(worldObj, posX, posY, posZ, BombConfig.missileRadius * 2); } @Override diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileNuclear.java b/src/main/java/com/hbm/entity/missile/EntityMissileNuclear.java index 76d2d3e1e..f7db04860 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileNuclear.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileNuclear.java @@ -4,7 +4,7 @@ import java.util.ArrayList; import java.util.List; import com.hbm.config.BombConfig; -import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.items.ModItems; @@ -25,12 +25,7 @@ public class EntityMissileNuclear extends EntityMissileBaseAdvanced { public void onImpact() { this.worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, BombConfig.missileRadius, posX, posY, posZ)); - - EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(this.worldObj, 1000, BombConfig.missileRadius * 0.005F); - entity2.posX = this.posX; - entity2.posY = this.posY; - entity2.posZ = this.posZ; - this.worldObj.spawnEntityInWorld(entity2); + EntityNukeTorex.statFac(worldObj, posX, posY, posZ, BombConfig.missileRadius); } @Override diff --git a/src/main/java/com/hbm/entity/projectile/EntityModBeam.java b/src/main/java/com/hbm/entity/projectile/EntityModBeam.java index b8e8365f9..f8a2e6be7 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityModBeam.java +++ b/src/main/java/com/hbm/entity/projectile/EntityModBeam.java @@ -5,7 +5,7 @@ import java.util.List; import com.hbm.config.BombConfig; import com.hbm.entity.effect.EntityBlackHole; import com.hbm.entity.effect.EntityCloudFleijaRainbow; -import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.effect.EntityRagingVortex; import com.hbm.entity.effect.EntityVortex; import com.hbm.entity.grenade.EntityGrenadeZOMG; @@ -490,7 +490,7 @@ public class EntityModBeam extends Entity implements IProjectile { this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, "random.explode", 100.0f, this.worldObj.rand.nextFloat() * 0.1F + 0.9F); this.worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, BombConfig.gadgetRadius, posX, posY, posZ)); - this.worldObj.spawnEntityInWorld(EntityNukeCloudSmall.statFac(worldObj, posX, posY, posZ, BombConfig.gadgetRadius)); + EntityNukeTorex.statFac(worldObj, posX, posY, posZ, BombConfig.gadgetRadius); } } } diff --git a/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java b/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java index 8077d7dc6..f66c5f047 100644 --- a/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java +++ b/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java @@ -108,7 +108,7 @@ public class ExplosionNukeRayBatched { Block block = world.getBlock(iX, iY, iZ); if(!block.getMaterial().isLiquid()) - res -= Math.pow(block.getExplosionResistance(null), 7.5D - fac); + res -= Math.pow(masqueradeResistance(block), 7.5D - fac); //else // res -= Math.pow(Blocks.air.getExplosionResistance(null), 7.5D - fac); // air is 0, might want to raise that is necessary @@ -150,6 +150,13 @@ public class ExplosionNukeRayBatched { isAusf3Complete = true; } + public static float masqueradeResistance(Block block) { + + if(block == Blocks.sandstone) return Blocks.stone.getExplosionResistance(null); + if(block == Blocks.obsidian) return Blocks.stone.getExplosionResistance(null) * 3; + return block.getExplosionResistance(null); + } + /** little comparator for roughly sorting chunks by distance to the center */ public class CoordComparator implements Comparator { diff --git a/src/main/java/com/hbm/inventory/container/ContainerNukeTsar.java b/src/main/java/com/hbm/inventory/container/ContainerNukeTsar.java index aafabe2d5..9877e66f3 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerNukeTsar.java +++ b/src/main/java/com/hbm/inventory/container/ContainerNukeTsar.java @@ -16,59 +16,50 @@ private TileEntityNukeTsar nukeTsar; nukeTsar = tedf; - this.addSlotToContainer(new Slot(tedf, 0, 35, 17)); - this.addSlotToContainer(new Slot(tedf, 1, 71, 17)); - this.addSlotToContainer(new Slot(tedf, 2, 35, 53)); - this.addSlotToContainer(new Slot(tedf, 3, 71, 53)); - this.addSlotToContainer(new Slot(tedf, 4, 53, 35)); - this.addSlotToContainer(new Slot(tedf, 5, 98, 35)); + this.addSlotToContainer(new Slot(tedf, 0, 48, 101)); + this.addSlotToContainer(new Slot(tedf, 1, 66, 101)); + this.addSlotToContainer(new Slot(tedf, 2, 84, 101)); + this.addSlotToContainer(new Slot(tedf, 3, 102, 101)); + this.addSlotToContainer(new Slot(tedf, 4, 55, 51)); + this.addSlotToContainer(new Slot(tedf, 5, 138, 101)); - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, 9 + j + i * 9, 48 + j * 18, 151 + i * 18)); } } - - for(int i = 0; i < 9; i++) - { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142)); + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 48 + i * 18, 209)); } } @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { ItemStack var3 = null; Slot var4 = (Slot) this.inventorySlots.get(par2); - - if (var4 != null && var4.getHasStack()) - { + + if(var4 != null && var4.getHasStack()) { ItemStack var5 = var4.getStack(); var3 = var5.copy(); - - if (par2 <= 5) { - if (!this.mergeItemStack(var5, 6, this.inventorySlots.size(), true)) - { + + if(par2 <= 5) { + if(!this.mergeItemStack(var5, 6, this.inventorySlots.size(), true)) { return null; } } else { return null; } - - if (var5.stackSize == 0) - { + + if(var5.stackSize == 0) { var4.putStack((ItemStack) null); - } - else - { + } else { var4.onSlotChanged(); } } - + return var3; - } + } @Override public boolean canInteractWith(EntityPlayer player) { diff --git a/src/main/java/com/hbm/inventory/gui/GUINukeTsar.java b/src/main/java/com/hbm/inventory/gui/GUINukeTsar.java index e91e91e65..4d22cde31 100644 --- a/src/main/java/com/hbm/inventory/gui/GUINukeTsar.java +++ b/src/main/java/com/hbm/inventory/gui/GUINukeTsar.java @@ -8,6 +8,7 @@ import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerNukeTsar; +import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; import com.hbm.tileentity.bomb.TileEntityNukeTsar; import com.hbm.util.I18nUtil; @@ -15,14 +16,15 @@ import com.hbm.util.I18nUtil; public class GUINukeTsar extends GuiInfoContainer { private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/weapon/tsarBombaSchematic.png"); - private TileEntityNukeTsar testNuke; + private static ResourceLocation textureMike = new ResourceLocation(RefStrings.MODID + ":textures/gui/weapon/ivyMikeSchematic.png"); + private TileEntityNukeTsar tsar; public GUINukeTsar(InventoryPlayer invPlayer, TileEntityNukeTsar tedf) { super(new ContainerNukeTsar(invPlayer, tedf)); - testNuke = tedf; + tsar = tedf; - this.xSize = 176; - this.ySize = 166; + this.xSize = 256; + this.ySize = 233; } @Override @@ -35,10 +37,10 @@ public class GUINukeTsar extends GuiInfoContainer { @Override protected void drawGuiContainerForegroundLayer( int i, int j) { - String name = this.testNuke.hasCustomInventoryName() ? this.testNuke.getInventoryName() : I18n.format(this.testNuke.getInventoryName()); + String name = this.tsar.hasCustomInventoryName() ? this.tsar.getInventoryName() : I18n.format(this.tsar.getInventoryName()); this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); - this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 48, this.ySize - 96 + 2, 4210752); } @Override @@ -46,16 +48,23 @@ public class GUINukeTsar extends GuiInfoContainer { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + Minecraft.getMinecraft().getTextureManager().bindTexture(textureMike); - if(testNuke.isReady()) - { - drawTexturedModalRect(guiLeft + 133, guiTop + 34, 176, 0, 16, 16); - } + if(tsar.isFilled()) drawTexturedModalRect(guiLeft + 18, guiTop + 50, 176, 18, 16, 16); + else if(tsar.isReady()) drawTexturedModalRect(guiLeft + 18, guiTop + 50, 176, 0, 16, 16); - if(testNuke.isFilled()) - { - drawTexturedModalRect(guiLeft + 133, guiTop + 34, 176, 18, 16, 16); + for(int i = 0; i < 4; i++) { + if(tsar.getStackInSlot(i) != null && tsar.getStackInSlot(i).getItem() == ModItems.explosive_lenses) switch(i) { + case 0: drawTexturedModalRect(guiLeft + 24 + 16, guiTop + 20 + 16, 209, 1, 23, 23); break; + case 2: drawTexturedModalRect(guiLeft + 47 + 16, guiTop + 20 + 16, 232, 1, 23, 23); break; + case 1: drawTexturedModalRect(guiLeft + 24 + 16, guiTop + 43 + 16, 209, 24, 23, 23); break; + case 3: drawTexturedModalRect(guiLeft + 47 + 16, guiTop + 43 + 16, 232, 24, 23, 23); break; + } } + + if(tsar.getStackInSlot(5) != null && tsar.getStackInSlot(5).getItem() == ModItems.tsar_core) + drawTexturedModalRect(guiLeft + 75 + 16, guiTop + 25 + 16, 176, 220, 80, 36); this.drawInfoPanel(guiLeft - 16, guiTop + 16, 16, 16, 2); } diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 88cbdd9a7..81d40b76e 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -391,9 +391,9 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.mp_thruster_15_solid_hexdecuple, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.plate(), 6), new OreDictStack(DURA.ingot(), 12), new ComparableStack(ModItems.coil_tungsten, 6), },500); makeRecipe(new ComparableStack(ModItems.mp_thruster_15_hydrogen, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModBlocks.deco_pipe_quad, 1), new OreDictStack(W.ingot(), 8), new OreDictStack(STEEL.plate(), 6), new ComparableStack(ModItems.tank_steel, 1), new OreDictStack(DESH.ingot(), 4), },500); makeRecipe(new ComparableStack(ModItems.mp_thruster_15_hydrogen_dual, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModBlocks.deco_pipe_quad, 1), new OreDictStack(W.ingot(), 4), new OreDictStack(STEEL.plate(), 6), new ComparableStack(ModItems.tank_steel, 1), new OreDictStack(DESH.ingot(), 1), },500); - makeRecipe(new ComparableStack(ModItems.mp_thruster_15_balefire_short, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModBlocks.reactor_element, 1), new OreDictStack(DESH.ingot(), 8), new OreDictStack(BIGMT.plate(), 12), new ComparableStack(ModItems.board_copper, 2), new ComparableStack(ModItems.ingot_uranium_fuel, 4), new ComparableStack(ModItems.pipes_steel, 2), },500); - makeRecipe(new ComparableStack(ModItems.mp_thruster_15_balefire, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModItems.plate_polymer, 16), new ComparableStack(ModBlocks.reactor_element, 2), new OreDictStack(DESH.ingot(), 16), new OreDictStack(BIGMT.plate(), 24), new ComparableStack(ModItems.board_copper, 4), new ComparableStack(ModItems.ingot_uranium_fuel, 8), new ComparableStack(ModItems.pipes_steel, 2), },500); - makeRecipe(new ComparableStack(ModItems.mp_thruster_15_balefire_large, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModItems.plate_polymer, 16), new ComparableStack(ModBlocks.reactor_element, 2), new OreDictStack(DESH.ingot(), 24), new OreDictStack(BIGMT.plate(), 32), new ComparableStack(ModItems.board_copper, 4), new ComparableStack(ModItems.ingot_uranium_fuel, 8), new ComparableStack(ModItems.pipes_steel, 2), },500); + makeRecipe(new ComparableStack(ModItems.mp_thruster_15_balefire_short, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModBlocks.pwr_fuel, 1), new OreDictStack(DESH.ingot(), 8), new OreDictStack(BIGMT.plate(), 12), new ComparableStack(ModItems.board_copper, 2), new ComparableStack(ModItems.ingot_uranium_fuel, 4), new ComparableStack(ModItems.pipes_steel, 2), },500); + makeRecipe(new ComparableStack(ModItems.mp_thruster_15_balefire, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModItems.plate_polymer, 16), new ComparableStack(ModBlocks.pwr_fuel, 2), new OreDictStack(DESH.ingot(), 16), new OreDictStack(BIGMT.plate(), 24), new ComparableStack(ModItems.board_copper, 4), new ComparableStack(ModItems.ingot_uranium_fuel, 8), new ComparableStack(ModItems.pipes_steel, 2), },500); + makeRecipe(new ComparableStack(ModItems.mp_thruster_15_balefire_large, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModItems.plate_polymer, 16), new ComparableStack(ModBlocks.pwr_fuel, 2), new OreDictStack(DESH.ingot(), 24), new OreDictStack(BIGMT.plate(), 32), new ComparableStack(ModItems.board_copper, 4), new ComparableStack(ModItems.ingot_uranium_fuel, 8), new ComparableStack(ModItems.pipes_steel, 2), },500); makeRecipe(new ComparableStack(ModItems.mp_thruster_20_kerosene, 1), new AStack[] {new ComparableStack(ModItems.seg_20, 1), new ComparableStack(ModBlocks.deco_pipe_quad, 1), new OreDictStack(W.ingot(), 16), new OreDictStack(STEEL.plate(), 12), new OreDictStack(DESH.ingot(), 8), },500); makeRecipe(new ComparableStack(ModItems.mp_thruster_20_kerosene_dual, 1), new AStack[] {new ComparableStack(ModItems.seg_20, 1), new ComparableStack(ModBlocks.deco_pipe_quad, 1), new OreDictStack(W.ingot(), 8), new OreDictStack(STEEL.plate(), 6), new OreDictStack(DESH.ingot(), 4), },500); makeRecipe(new ComparableStack(ModItems.mp_thruster_20_kerosene_triple, 1), new AStack[] {new ComparableStack(ModItems.seg_20, 1), new ComparableStack(ModBlocks.deco_pipe_quad, 1), new OreDictStack(W.ingot(), 12), new OreDictStack(STEEL.plate(), 8), new OreDictStack(DESH.ingot(), 6), },500); @@ -1029,11 +1029,6 @@ public class AssemblerRecipes { if(!GeneralConfig.enable528) { makeRecipe(new ComparableStack(ModBlocks.machine_hephaestus, 1), new AStack[] { new ComparableStack(ModItems.pipes_steel, 1), new OreDictStack(STEEL.ingot(), 24), new OreDictStack(CU.plate(), 24), new OreDictStack(NB.ingot(), 4), new OreDictStack(RUBBER.ingot(), 12), new ComparableStack(ModBlocks.glass_quartz, 16) }, 150); - makeRecipe(new ComparableStack(ModBlocks.reactor_element, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(OreDictManager.getReflector(), 4), new OreDictStack(PB.plate(), 2), new OreDictStack(ZR.ingot(), 2), },150); - makeRecipe(new ComparableStack(ModBlocks.reactor_control, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(PB.ingot(), 6), new ComparableStack(ModItems.bolt_tungsten, 6), new ComparableStack(ModItems.motor, 1), },100); - makeRecipe(new ComparableStack(ModBlocks.reactor_hatch, 1), new AStack[] {new ComparableStack(ModBlocks.brick_concrete, 1), new OreDictStack(STEEL.plate(), 6), },150); - makeRecipe(new ComparableStack(ModBlocks.reactor_conductor, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(CU.plate(), 12), new ComparableStack(ModItems.wire_tungsten, 4), },130); - makeRecipe(new ComparableStack(ModBlocks.reactor_computer, 1), new AStack[] {new ComparableStack(ModBlocks.reactor_conductor, 2), new ComparableStack(ModItems.circuit_targeting_tier3, 4), new ComparableStack(ModItems.circuit_gold, 1), },250); makeRecipe(new ComparableStack(ModBlocks.machine_radgen, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(STEEL.plate(), 32), new ComparableStack(ModItems.coil_magnetized_tungsten, 6), new ComparableStack(ModItems.wire_magnetized_tungsten, 24), new ComparableStack(ModItems.circuit_gold, 4), new ComparableStack(ModItems.reactor_core, 3), new OreDictStack(STAR.ingot(), 1), new OreDictStack("dyeRed", 1), },400); makeRecipe(new ComparableStack(ModBlocks.machine_reactor_breeding, 1), new AStack[] {new ComparableStack(ModItems.reactor_core, 1), new OreDictStack(STEEL.ingot(), 12), new OreDictStack(PB.plate(), 16), new ComparableStack(ModBlocks.reinforced_glass, 4), new OreDictStack(ASBESTOS.ingot(), 4), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new ComparableStack(ModItems.crt_display, 1)},150); makeRecipe(new ComparableStack(ModBlocks.reactor_research, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new ComparableStack(ModItems.motor_desh, 2), new OreDictStack(B.ingot(), 5), new OreDictStack(PB.plate(), 8), new ComparableStack(ModItems.crt_display, 3), new ComparableStack(ModItems.circuit_copper, 2), },300); diff --git a/src/main/java/com/hbm/inventory/recipes/ElectrolyserFluidRecipes.java b/src/main/java/com/hbm/inventory/recipes/ElectrolyserFluidRecipes.java index 0f783b9f9..658f0d305 100644 --- a/src/main/java/com/hbm/inventory/recipes/ElectrolyserFluidRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ElectrolyserFluidRecipes.java @@ -12,7 +12,6 @@ import com.google.gson.stream.JsonWriter; import com.hbm.inventory.FluidStack; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.recipes.loader.SerializableRecipe; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemFluidIcon; @@ -45,7 +44,7 @@ public class ElectrolyserFluidRecipes extends SerializableRecipe { if(recipe.output2.type != Fluids.NONE) outputs.add(ItemFluidIcon.make(recipe.output2)); for(ItemStack byproduct : recipe.byproduct) outputs.add(byproduct); - recipes.put(new ComparableStack(ItemFluidIcon.make(input)), outputs.toArray()); + recipes.put(ItemFluidIcon.make(input), outputs.toArray()); } return recipes; diff --git a/src/main/java/com/hbm/items/armor/ItemModLens.java b/src/main/java/com/hbm/items/armor/ItemModLens.java index f7d3675fc..a9df9cfff 100644 --- a/src/main/java/com/hbm/items/armor/ItemModLens.java +++ b/src/main/java/com/hbm/items/armor/ItemModLens.java @@ -84,7 +84,6 @@ public class ItemModLens extends ItemArmorMod implements ISatChip { if(addIf(ModBlocks.ore_oil, b, 300, aX, seg, aZ, "Oil", 0xa0a0a0, player)) hits++; if(addIf(ModBlocks.ore_bedrock_oil, b, 300, aX, seg, aZ, "Bedrock Oil", 0xa0a0a0, player)) hits++; if(addIf(ModBlocks.ore_coltan, b, 5, aX, seg, aZ, "Coltan", 0xa0a000, player)) hits++; - if(addIf(ModBlocks.ore_bedrock_coltan, b, 1, aX, seg, aZ, "Bedrock Coltan", 0xa0a000, player)) hits++; if(addIf(ModBlocks.stone_gneiss, b, 5000, aX, seg, aZ, "Schist", 0x8080ff, player)) hits++; if(addIf(ModBlocks.ore_australium, b, 1000, aX, seg, aZ, "Australium", 0xffff00, player)) hits++; if(addIf(Blocks.end_portal_frame, b, 1, aX, seg, aZ, "End Portal", 0x40b080, player)) hits++; diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index f5c56a1a2..2d661577c 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -64,6 +64,7 @@ public class ItemWandD extends Item { EntityNukeTorex torex = new EntityNukeTorex(world); torex.setPositionAndRotation(pos.blockX, pos.blockY + 1, pos.blockZ, 0, 0); torex.setScale(1.5F); + torex.setType(1); world.spawnEntityInWorld(torex); /*EntityTracker entitytracker = ((WorldServer) world).getEntityTracker(); IntHashMap map = ReflectionHelper.getPrivateValue(EntityTracker.class, entitytracker, "trackedEntityIDs", "field_72794_c"); diff --git a/src/main/java/com/hbm/items/tool/WeaponSpecial.java b/src/main/java/com/hbm/items/tool/WeaponSpecial.java index 1fc052d41..c59daa016 100644 --- a/src/main/java/com/hbm/items/tool/WeaponSpecial.java +++ b/src/main/java/com/hbm/items/tool/WeaponSpecial.java @@ -4,7 +4,7 @@ import java.util.List; import java.util.Random; import com.google.common.collect.Multimap; -import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.entity.projectile.EntityRubble; import com.hbm.items.ModItems; @@ -152,12 +152,7 @@ public class WeaponSpecial extends ItemSword { if(entityPlayer.fallDistance >= 20 && !((EntityPlayer)entityPlayer).capabilities.isCreativeMode) { if(!world.isRemote) { world.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(world, 100, entity.posX, entity.posY, entity.posZ)); - - EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(world, 1000, 100 * 0.005F); - entity2.posX = entity.posX; - entity2.posY = entity.posY; - entity2.posZ = entity.posZ; - world.spawnEntityInWorld(entity2); + EntityNukeTorex.statFac(world, entity.posX, entity.posY, entity.posZ, 100); } } } diff --git a/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java b/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java index bb62a11b5..30b1fdeab 100644 --- a/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java +++ b/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java @@ -6,7 +6,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.config.BombConfig; import com.hbm.entity.effect.EntityMist; -import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.entity.projectile.EntityArtilleryShell; import com.hbm.explosion.ExplosionChaos; @@ -263,11 +263,7 @@ public class ItemAmmoArty extends Item { this.itemTypes[NUKE] = new ArtilleryShell("ammo_arty_nuke", SpentCasing.COLOR_CASE_16INCH_NUKE) { public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { shell.worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(shell.worldObj, BombConfig.missileRadius, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord)); - EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(shell.worldObj, 1000, BombConfig.missileRadius * 0.005F); - entity2.posX = mop.hitVec.xCoord; - entity2.posY = mop.hitVec.yCoord; - entity2.posZ = mop.hitVec.zCoord; - shell.worldObj.spawnEntityInWorld(entity2); + EntityNukeTorex.statFac(shell.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, BombConfig.missileRadius); shell.setDead(); } }; diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index a941f6568..aff896dcf 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4690)"; + public static final String VERSION = "1.0.27 BETA (4704)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 18a1e1f49..7c0d6c047 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -1056,8 +1056,6 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.struct_launcher_core_large, 1), new Object[] { "SIS", "ICI", "BEB", 'S', ModItems.circuit_red_copper, 'I', Blocks.iron_bars, 'C', ModItems.circuit_targeting_tier4, 'B', ModBlocks.struct_launcher, 'E', ModBlocks.machine_battery }); addRecipeAuto(new ItemStack(ModBlocks.struct_soyuz_core, 1), new Object[] { "CUC", "TST", "TBT", 'C', ModItems.circuit_targeting_tier4, 'U', ModItems.upgrade_power_3, 'T', ModBlocks.barrel_steel, 'S', ModBlocks.steel_scaffold, 'B', ModBlocks.machine_lithium_battery }); addRecipeAuto(new ItemStack(ModItems.reactor_sensor, 1), new Object[] { "WPW", "CMC", "PPP", 'W', ModItems.wire_tungsten, 'P', PB.plate(), 'C', ModItems.circuit_targeting_tier3, 'M', ModItems.magnetron }); - addRecipeAuto(new ItemStack(ModBlocks.reactor_ejector, 1), new Object[] { "CLC", "MHM", "CLC", 'C', ModBlocks.brick_concrete, 'L', PB.plate(), 'M', ModItems.motor, 'H', ModBlocks.reactor_hatch }); - addRecipeAuto(new ItemStack(ModBlocks.reactor_inserter, 1), new Object[] { "CLC", "MHM", "CLC", 'C', ModBlocks.brick_concrete, 'L', CU.plate(), 'M', ModItems.motor, 'H', ModBlocks.reactor_hatch }); addRecipeAuto(new ItemStack(ModBlocks.rbmk_console, 1), new Object[] { "BBB", "DGD", "DCD", 'B', B.ingot(), 'D', ModBlocks.deco_rbmk, 'G', KEY_ANYPANE, 'C', ModItems.circuit_targeting_tier3 }); addRecipeAuto(new ItemStack(ModBlocks.rbmk_crane_console, 1), new Object[] { "BCD", "DDD", 'B', B.ingot(), 'D', ModBlocks.deco_rbmk, 'C', ModItems.circuit_targeting_tier3 }); addRecipeAuto(new ItemStack(ModBlocks.hadron_core, 1), new Object[] { "CCC", "DSD", "CCC", 'C', ModBlocks.hadron_coil_alloy, 'D', ModBlocks.hadron_diode, 'S', ModItems.circuit_schrabidium }); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index d17a16610..e8834cff7 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -1166,6 +1166,7 @@ public class MainRegistry { ignoreMappings.add("hbm:item.primer_9"); ignoreMappings.add("hbm:item.primer_50"); ignoreMappings.add("hbm:item.primer_buckshot"); + ignoreMappings.add("hbm:tile.ore_bedrock_coltan"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index a1bc1b705..8390aa880 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -68,7 +68,6 @@ import com.hbm.tileentity.machine.TileEntityNukeFurnace; import com.hbm.util.I18nUtil; import com.hbm.util.ItemStackUtil; import com.hbm.util.LoggingUtil; -import com.hbm.util.fauxpointtwelve.BlockPos; import com.hbm.wiaj.GuiWorldInAJar; import com.hbm.wiaj.cannery.CanneryBase; import com.hbm.wiaj.cannery.Jars; diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java index a0c0b82b2..7781511f5 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java @@ -4,8 +4,6 @@ import com.hbm.blocks.ModBlocks; import com.hbm.blocks.bomb.LaunchPad; import com.hbm.inventory.container.ContainerLaunchPadTier1; import com.hbm.inventory.gui.GUILaunchPadTier1; -import com.hbm.items.ModItems; -import com.hbm.items.tool.ItemDesingator; import com.hbm.lib.Library; import com.hbm.packet.AuxElectricityPacket; import com.hbm.packet.PacketDispatcher; diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeBalefire.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeBalefire.java index 6403145d4..4044d26df 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeBalefire.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeBalefire.java @@ -1,6 +1,6 @@ package com.hbm.tileentity.bomb; -import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.logic.EntityBalefire; import com.hbm.inventory.container.ContainerNukeFstbmb; import com.hbm.inventory.gui.GUINukeFstbmb; @@ -128,7 +128,7 @@ public class TileEntityNukeBalefire extends TileEntityMachineBase implements IGU bf.posZ = zCoord + 0.5; bf.destructionRange = (int) 250; worldObj.spawnEntityInWorld(bf); - worldObj.spawnEntityInWorld(EntityNukeCloudSmall.statFacBale(worldObj, xCoord + 0.5, yCoord + 5, zCoord + 0.5, 250 * 1.5F, 1000)); + EntityNukeTorex.statFacBale(worldObj, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, 250); } public String getMinutes() { diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeN45.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeN45.java index 19fe5165d..07cd73d6a 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeN45.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeN45.java @@ -4,7 +4,7 @@ import java.util.List; import com.hbm.blocks.ModBlocks; import com.hbm.config.BombConfig; -import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.explosion.ExplosionLarge; import com.hbm.inventory.container.ContainerNukeN45; @@ -262,12 +262,7 @@ public class TileEntityNukeN45 extends TileEntity implements ISidedInventory, IG break; case 4: world.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(world, (int)(BombConfig.missileRadius * 0.75F), x + 0.5, y + 0.5, z + 0.5)); - - EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(world, 1000, BombConfig.missileRadius * 0.005F * 0.75F); - entity2.posX = x; - entity2.posY = y; - entity2.posZ = z; - world.spawnEntityInWorld(entity2); + EntityNukeTorex.statFac(world, x + 0.5, y + 0.5, z + 0.5, BombConfig.missileRadius * 0.75F); break; } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java index 866820e63..ec42fb0c8 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java @@ -231,7 +231,7 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG this.flux = newFlux; - if(tanks[0].getTankType().hasTrait(FT_PWRModerator.class)) { + if(tanks[0].getTankType().hasTrait(FT_PWRModerator.class) && tanks[0].getFill() > 0) { this.flux *= tanks[0].getTankType().getTrait(FT_PWRModerator.class).getMultiplier(); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java b/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java index 9b9a4432c..151c61c12 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java @@ -107,19 +107,26 @@ public class TileEntityStorageDrum extends TileEntityMachineBase implements IFlu slots[i] = new ItemStack(ModItems.nuclear_waste_short_depleted_tiny, 1, meta); } - if(item == ModItems.ingot_au198 && worldObj.rand.nextInt(VersatileConfig.getShortDecayChance() / 100) == 0) { + if(item == ModItems.ingot_au198 && worldObj.rand.nextInt(VersatileConfig.getShortDecayChance() / 20) == 0) { slots[i] = new ItemStack(ModItems.ingot_mercury, 1, meta); } - if(item == ModItems.ingot_au198 && worldObj.rand.nextInt(VersatileConfig.getShortDecayChance() / 20) == 0) { + if(item == ModItems.nugget_au198 && worldObj.rand.nextInt(VersatileConfig.getShortDecayChance() / 100) == 0) { slots[i] = new ItemStack(ModItems.nugget_mercury, 1, meta); } - if(item == ModItems.ingot_pb209 && worldObj.rand.nextInt(VersatileConfig.getShortDecayChance() / 50) == 0) { + if(item == ModItems.ingot_pb209 && worldObj.rand.nextInt(VersatileConfig.getShortDecayChance() / 10) == 0) { slots[i] = new ItemStack(ModItems.ingot_bismuth, 1, meta); } - if(item == ModItems.nugget_pb209 && worldObj.rand.nextInt(VersatileConfig.getShortDecayChance() / 10) == 0) { + if(item == ModItems.nugget_pb209 && worldObj.rand.nextInt(VersatileConfig.getShortDecayChance() / 50) == 0) { slots[i] = new ItemStack(ModItems.nugget_bismuth, 1, meta); } + + if(item == ModItems.powder_sr90 && worldObj.rand.nextInt(VersatileConfig.getShortDecayChance() / 10) == 0) { + slots[i] = new ItemStack(ModItems.powder_zirconium, 1, meta); + } + if(item == ModItems.nugget_sr90 && worldObj.rand.nextInt(VersatileConfig.getShortDecayChance() / 50) == 0) { + slots[i] = new ItemStack(ModItems.nugget_zirconium, 1, meta); + } } } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java index 360d25ebe..32444fda7 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java @@ -16,7 +16,6 @@ import com.hbm.saveddata.TomSaveData; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.TileEntityMachineBase; -import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java index 9332cb750..ec0d5ae57 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java @@ -33,7 +33,6 @@ import com.hbm.tileentity.IOverpressurable; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.IRepairable; import com.hbm.tileentity.TileEntityMachineBase; -import com.hbm.util.I18nUtil; import com.hbm.util.ParticleUtil; import com.hbm.util.fauxpointtwelve.DirPos; import cpw.mods.fml.common.Optional; diff --git a/src/main/java/com/hbm/world/feature/BiomeCave.java b/src/main/java/com/hbm/world/feature/BiomeCave.java index 0add71808..f1beb0d10 100644 --- a/src/main/java/com/hbm/world/feature/BiomeCave.java +++ b/src/main/java/com/hbm/world/feature/BiomeCave.java @@ -13,7 +13,7 @@ import net.minecraft.world.biome.BiomeGenBase.TempCategory; import net.minecraft.world.gen.NoiseGeneratorPerlin; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.event.terraingen.DecorateBiomeEvent; +import net.minecraftforge.event.terraingen.PopulateChunkEvent; public class BiomeCave { @@ -52,7 +52,7 @@ public class BiomeCave { } @SubscribeEvent - public void onDecorate(DecorateBiomeEvent.Pre event) { + public void onDecorate(PopulateChunkEvent.Pre event) { World world = event.world; diff --git a/src/main/java/com/hbm/world/feature/DeepLayer.java b/src/main/java/com/hbm/world/feature/DeepLayer.java index b8f29cf41..685fdb7eb 100644 --- a/src/main/java/com/hbm/world/feature/DeepLayer.java +++ b/src/main/java/com/hbm/world/feature/DeepLayer.java @@ -11,14 +11,14 @@ import net.minecraft.init.Blocks; import net.minecraft.world.World; import net.minecraft.world.gen.NoiseGeneratorPerlin; import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.event.terraingen.DecorateBiomeEvent; +import net.minecraftforge.event.terraingen.PopulateChunkEvent; public class DeepLayer { NoiseGeneratorPerlin noise; @SubscribeEvent - public void onDecorate(DecorateBiomeEvent.Pre event) { + public void onDecorate(PopulateChunkEvent.Pre event) { World world = event.world; if(world.provider == null || world.provider.dimensionId != 0) return; diff --git a/src/main/java/com/hbm/world/feature/OreCave.java b/src/main/java/com/hbm/world/feature/OreCave.java index eed1cdfdc..49ae81a9b 100644 --- a/src/main/java/com/hbm/world/feature/OreCave.java +++ b/src/main/java/com/hbm/world/feature/OreCave.java @@ -13,7 +13,7 @@ import net.minecraft.world.World; import net.minecraft.world.gen.NoiseGeneratorPerlin; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.event.terraingen.DecorateBiomeEvent; +import net.minecraftforge.event.terraingen.PopulateChunkEvent; public class OreCave { @@ -71,7 +71,7 @@ public class OreCave { @SuppressWarnings("incomplete-switch") @SubscribeEvent - public void onDecorate(DecorateBiomeEvent.Pre event) { + public void onDecorate(PopulateChunkEvent.Pre event) { World world = event.world; diff --git a/src/main/java/com/hbm/world/feature/OreLayer.java b/src/main/java/com/hbm/world/feature/OreLayer.java index b0411b147..8e658cb65 100644 --- a/src/main/java/com/hbm/world/feature/OreLayer.java +++ b/src/main/java/com/hbm/world/feature/OreLayer.java @@ -10,7 +10,7 @@ import net.minecraft.init.Blocks; import net.minecraft.world.World; import net.minecraft.world.gen.NoiseGeneratorPerlin; import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.terraingen.DecorateBiomeEvent; +import net.minecraftforge.event.terraingen.PopulateChunkEvent; public class OreLayer { @@ -65,7 +65,7 @@ public class OreLayer { } @SubscribeEvent - public void onDecorate(DecorateBiomeEvent.Pre event) { + public void onDecorate(PopulateChunkEvent.Pre event) { World world = event.world; diff --git a/src/main/java/com/hbm/world/feature/OreLayer3D.java b/src/main/java/com/hbm/world/feature/OreLayer3D.java index aee3cf43d..08650db8e 100644 --- a/src/main/java/com/hbm/world/feature/OreLayer3D.java +++ b/src/main/java/com/hbm/world/feature/OreLayer3D.java @@ -8,7 +8,7 @@ import net.minecraft.block.material.Material; import net.minecraft.world.World; import net.minecraft.world.gen.NoiseGeneratorPerlin; import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.terraingen.DecorateBiomeEvent; +import net.minecraftforge.event.terraingen.PopulateChunkEvent; public class OreLayer3D { @@ -51,7 +51,7 @@ public class OreLayer3D { } @SubscribeEvent - public void onDecorate(DecorateBiomeEvent.Pre event) { + public void onDecorate(PopulateChunkEvent.Pre event) { World world = event.world; diff --git a/src/main/java/com/hbm/world/feature/SchistStratum.java b/src/main/java/com/hbm/world/feature/SchistStratum.java index f16f4b93a..28d5d6fe2 100644 --- a/src/main/java/com/hbm/world/feature/SchistStratum.java +++ b/src/main/java/com/hbm/world/feature/SchistStratum.java @@ -9,14 +9,14 @@ import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.world.World; import net.minecraft.world.gen.NoiseGeneratorPerlin; -import net.minecraftforge.event.terraingen.DecorateBiomeEvent; +import net.minecraftforge.event.terraingen.PopulateChunkEvent; public class SchistStratum { NoiseGeneratorPerlin noise; @SubscribeEvent - public void onDecorate(DecorateBiomeEvent.Pre event) { + public void onDecorate(PopulateChunkEvent.Pre event) { if(this.noise == null) { this.noise = new NoiseGeneratorPerlin(new Random(event.world.getSeed()), 4); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 25ba97821..c93c37910 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -275,6 +275,7 @@ container.amsLimiter=AMS-Stabilisator (Deko) container.anvil=Stufe %s Amboss container.arcFurnace=Lichtbogenofen container.armorTable=Rüstungsmodifikationstisch +container.ashpit=Aschekasten container.assembler=Fertigungsmaschine container.autocrafter=Automatische Werkbank container.barrel=Fass @@ -1893,6 +1894,7 @@ item.gun_calamity_ammo.name=.50 BMG Patrone (LEGACY) item.gun_calamity_dual.name=Sattelkanone item.gun_chemthrower.name=Chemowerfer item.gun_coilgun.name=Gaußpistole +item.gun_cryocannon.name=Kyro-Kanone item.gun_cryolator.name=Der Cryolator item.gun_cryolator_ammo.name=Kryozelle item.gun_dampfmaschine.name=Garantiert keine Scherzwaffe @@ -3710,18 +3712,30 @@ tile.concrete_stairs.name=Betonfliesentreppe tile.concrete_super.name=Super Beton tile.concrete_super_broken.name=Schimmliger Schutt tile.conveyor.name=Förderband +tile.conveyor.desc=Bewegt Items$Kann mit Schraubenzieher im Uhrzeigersinn gedreht werden$Shiftclick umdas Band zu biegen tile.conveyor_chute.name=Förderschütte +tile.conveyor_chute.desc=Bewegt Items nach unten$Die unterste Schütte verhält sich wie ein normales Förderband tile.conveyor_double.name=Zweispuriges Förderband +tile.conveyor_double.desc=Bewegt Items$Kann mit Schraubenzieher im Uhrzeigersinn gedreht werden$Shiftclick umdas Band zu biegen tile.conveyor_lift.name=Kettenaufzug +tile.conveyor_lift.desc=Bewegt Items nach oben$Benötigt mindestens zwei Aufzüge übereinander um richtig zu funktionieren tile.conveyor_triple.name=Dreispuriges Förderband +tile.conveyor_triple.desc=Bewegt Items$Kann mit Schraubenzieher im Uhrzeigersinn gedreht werden$Shiftclick umdas Band zu biegen tile.corium_block.name=Corium tile.crane_boxer.name=Förderband-Verpacker +tile.crane_boxer.desc=Lädt eine konfigurierbare Menge Stacks in Boxen$Rechstclick mit Schraubenzieher um Eingang zu definieren$Shiftclick mit Schraubenzieher um Ausgang zu definieren$Zweimal clicken, um gegenüberliegende Seite zu definieren tile.crane_extractor.name=Förderband-Auswerfer +tile.crane_extractor.desc=Nimmt Items aus behältern und legt sie auf Förderbänder$Hat bis zu 9 Filterslots mit Black- und Whitelist$Rechstclick mit Schraubenzieher um Ausgang zu definieren$Shiftclick mit Schraubenzieher um Eingang zu definieren$Zweimal clicken, um gegenüberliegende Seite zu definieren tile.crane_grabber.name=Förderband-Greifer +tile.crane_grabber.desc=Nimmt Items von vorbeilaufenden Förderbändern und legt sie in Behälter$Nimmt nur Items von der nähesten Spur$Hat bis zu 9 Filterslots mit Black- und Whitelist$Rechstclick mit Schraubenzieher um Eingang zu definieren$Shiftclick mit Schraubenzieher um Ausgang zu definieren$Zweimal clicken, um gegenüberliegende Seite zu definieren tile.crane_inserter.name=Förderband-Einsetzer +tile.crane_inserter.desc=Akzeptiert Items von Förderbändern und legt sie in Behälter$Rechstclick mit Schraubenzieher um Eingang zu definieren$Shiftclick mit Schraubenzieher um Ausgang zu definieren$Zweimal clicken, um gegenüberliegende Seite zu definieren tile.crane_router.name=Förderband-Sortierer +tile.crane_router.desc=Sortiert Items basierend auf eingestellte Kriterien$Seiten können als Blacklist, Whitelist oder Wildcard eingestellt werden$Widlcard-Seiten werden nur verwendet, wenn kein anderer Filter zutrifft tile.crate_splitter.name=Förderband-Teiler +tile.crane_splitter.desc=Teilt Items und Stacks gleichmäßig auf zwei Förderbänder$Zählt selbst als Förderband, kann also direkt in Einsetzer und Sortierer führen tile.crane_unboxer.name=Förderband-Entpacker +tile.crane_unboxer.desc=Öffnet boxen$Rechstclick mit Schraubenzieher um Ausgang zu definieren$Shiftclick mit Schraubenzieher um Eingang zu definieren$Zweimal clicken, um gegenüberliegende Seite zu definieren tile.crashed_bomb.name=Blindgänger tile.crate.name=Vorratskiste tile.crate_ammo.name=Sternenmetallkiste @@ -3814,6 +3828,7 @@ tile.factory_titanium_furnace.name=Einfache Fabrikzugriffsluke tile.factory_titanium_hull.name=Fabrikblock tile.fallout.name=Fallout tile.fan.name=Ventilator +tile.fan.desc=Kann mit Redstone aktiviert werden$Bewegt Entities bis zu 10 Blöcke$Rechtsclick mit Schraubenzieher um den Ventilator umzudrehen tile.fence_metal.name=Maschendrahtzaun tile.field_disturber.name=Hochenergiefeld-Jammer tile.fire_digamma.name=Verweilendes Digamma @@ -3961,7 +3976,7 @@ tile.machine_amgen.name=Umgebungsstrahlungs-Generator tile.machine_arc_furnace_off.name=Lichtbogenofen tile.machine_arc_furnace_on.name=Lichtbogenofen tile.machine_armor_table.name=Rüstungsmodifikationstisch -tile.machine_ashpit.name=Ashekasten +tile.machine_ashpit.name=Aschekasten tile.machine_ashpit.desc=Sammelt Asche von Feuerbüchsen und Heizöfen tile.machine_assembler.name=Fertigungsmaschine tile.machine_assemfac.name=Fertigungsfabrik @@ -4211,6 +4226,8 @@ tile.pink_log.name=Pinkes Holz tile.pink_planks.name=Pinke Holzbretter tile.pink_slab.name=Pinke Holzstufe tile.pink_stairs.name=Pinke Holztreppen +tile.piston_inserter.name=Einsetzer-Kolben +tile.piston_inserter.desc=Kann ein Item halten$Wenn mit Redstone aktiviert, setzt das Item in gebohrten Graphit ein$Alle Items in gebohrten Graphitblöcken in der Linie werden einen Block verschoben$Benötigt einen Luftblock zwischen sich selbst und dem Graphit tile.plant_dead.name=Tote Pflanze tile.plant_flower.cd0.name=Senf-Weide tile.plant_flower.cd1.name=Senf-Weide @@ -4232,6 +4249,25 @@ tile.pribris.name=RBMK-Schutt tile.pribris_burning.name=Flammender RBMK-Schutt tile.pribris_digamma.name=Geschwärzter RBMK-Schutt tile.pribris_radiating.name=Glühender RBMK-Schutt +tile.pwr_block.name=PWR +tile.pwr_casing.name=PWR Druckbehälter +tile.pwr_casing.desc=Muss alle internen Teile des PWRs abdecken$Platzierung: Hülle +tile.pwr_channel.name=PWR Kühlmittelkanal +tile.pwr_channel.desc=Nutzt Hitze aus der Hülle um Kühlmittle zu erhitzen$Platzierung: Egal +tile.pwr_control.name=PWR Steuerstäbe +tile.pwr_control.desc=Reguliert verbundene Brennstäbe$Platzierung: Gitter, zwischen Brennstäben +tile.pwr_controller.name=PWR Controller +tile.pwr_controller.desc=Zugangsterminal zum PWR$Platzierung: Hülle, nur eines pro Reaktor$Rechtsclick um Reaktor zusammenzubauen +tile.pwr_fuel.name=PWR Brennstäbe +tile.pwr_fuel.desc=Erhöht die Kapazität für Brennelemente$Platzierung: Gitter, für höhere Reaktivität +tile.pwr_heatex.name=PWR Waärmetauscher +tile.pwr_heatex.desc=Gleicht Kerntemparatur mit Hülltemparatur aus$Platzierung: Egal +tile.pwr_neutron_source.name=PWR Neutronenquelle +tile.pwr_neutron_source.desc=Fügt dem Kern 20 Flux hinzu$Platzierung: Egal$Flux erreicht den Kern nur, wenn Steuerstäbe offen sind +tile.pwr_port.name=PWR Zugangsport +tile.pwr_port.desc=Erlaubt IO für Items und Flüssigkeiten$Platzierung: Hülle +tile.pwr_reflector.name=PWR Neutronenreflektor +tile.pwr_reflector.desc=Reflektier Neutronen auf Brennstäbe zurück$Platzierung: Hülle, für höhere Reaktivität$Gültiger Block für Hülle tile.radio_torch_counter.name=Redstone-over-Radio Itemzähler tile.radio_torch_counter.desc=Kann auf ebenen Flächen oder Komparator-kompatiblen Blöcken platziert werden$Signal basiert auf Anzahl passender Items tile.radio_torch_receiver.name=Redstone-over-Radio Empfänger diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 87e424890..a34f8457c 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -632,6 +632,7 @@ container.amsLimiter=AMS Stabilizer (Deco) container.anvil=Tier %s Anvil container.arcFurnace=Arc Furnace container.armorTable=Armor Modification Table +container.ashpit=Ashpit container.assembler=Assembly Machine container.autocrafter=Automatic Crafting Table container.barrel=Barrel @@ -2610,6 +2611,7 @@ item.gun_calamity_dual.name=Saddle Gun item.gun_chemthrower.name=Chemthrower item.gun_coilgun.name=Coilgun item.gun_congolake.name=Congo Lake +item.gun_cryocannon.name=Cryo Cannon item.gun_cryolator.name=The Cryolator item.gun_cryolator_ammo.name=Cryo Cell item.gun_dampfmaschine.name=Totally Not a Joke Weapon @@ -4680,18 +4682,30 @@ tile.concrete_stairs.name=Concrete Tile Stairs tile.concrete_super.name=Über Concrete tile.concrete_super_broken.name=Moldy Debris tile.conveyor.name=Conveyor Belt +tile.conveyor.desc=Moves items dropped on it$Can be rotated clockwise with a screwdriver$Shift-click with screwdriver to bend tile.conveyor_chute.name=Conveyor Chute +tile.conveyor_chute.desc=Moves items down$The bottom-most chute will act like a regular conveyor belt tile.conveyor_double.name=Double-Lane Conveyor Belt +tile.conveyor_double.desc=Moves items dropped on it$Can be rotated clockwise with a screwdriver$Shift-click with screwdriver to bend tile.conveyor_lift.name=Conveyor Chain Lift +tile.conveyor_lift.desc=Moves items up$Requires at least two blocks on top of each other to work properly tile.conveyor_triple.name=Triple-Lane Conveyor Belt +tile.conveyor_triple.desc=Moves items dropped on it$Can be rotated clockwise with a screwdriver$Shift-click with screwdriver to bend tile.corium_block.name=Corium tile.crane_boxer.name=Conveyor Boxer +tile.crane_boxer.desc=Loads a configurable amount of stacks into boxes which move along conveyor belts$Right-click with screwdriver to set input side$Shift-click with screwdriver to set the output side$Click twice to set the opposite side tile.crane_extractor.name=Conveyor Ejector +tile.crane_extractor.desc=Takes items from inventories and places them on covneyor belts$Has up to 9 filter slots with black and whitelist$Right-click with screwdriver to set output side$Shift-click with screwdriver to set the input side$Click twice to set the opposite side tile.crane_grabber.name=Conveyor Grabber +tile.crane_grabber.desc=Takes items from passing conveyors and places them into containers$Will only take items from the closest lane$Has up to 9 filter slots with black and whitelist$Right-click with screwdriver to set input side$Shift-click with screwdriver to set the output side$Click twice to set the opposite side tile.crane_inserter.name=Conveyor Inserter +tile.crane_inserter.desc=Accepts items from conveyors and places them into containers$Right-click with screwdriver to set input side$Shift-click with screwdriver to set the output side$Click twice to set the opposite side tile.crane_router.name=Conveyor Sorter +tile.crane_router.desc=Sorts item based on defined criteria$Sides can be defined as blacklist, whitelist or wildcard$Wildcard sides are only chosen if no other filter matches tile.crane_splitter.name=Conveyor Splitter +tile.crane_splitter.desc=Splits items and stacks evenly onto two conveyor belts$Is a conveyor belt itself, so it can directly input into an inserter or sorter tile.crane_unboxer.name=Conveyor Unboxer +tile.crane_unboxer.desc=Receives boxes and extracts their contents$Right-click with screwdriver to set output side$Shift-click with screwdriver to set the input side$Click twice to set the opposite side tile.crashed_bomb.name=Dud tile.crate.name=Supply Crate tile.crate_ammo.name=Starmetal Crate @@ -4714,27 +4728,6 @@ tile.deco_asbestos.name=Asbestos Roof tile.deco_beryllium.name=Beryllium Deco Block tile.deco_computer.ibm_300pl.name=IBM Personal Computer 300PL tile.deco_emitter.name=Deco Light Emitter -tile.part_emitter.name=Deco Particle Emitter -tile.piston_inserter.name=Inserter -tile.pwr_block.name=PWR -tile.pwr_casing.name=PWR Pressure Vessel -tile.pwr_casing.desc=Needs to cover all internal parts for the reactor to form$Placement: Casing -tile.pwr_channel.name=PWR Coolant Channel -tile.pwr_channel.desc=Uses hull heat to heat up coolant$Placement: Any -tile.pwr_control.name=PWR Control Rod -tile.pwr_control.desc=Allows connected fuel rods to be controlled$Placement: Grid, between control rods -tile.pwr_controller.name=PWR Controller -tile.pwr_controller.desc=Access terminal for the PWR$Placement: Casing, only one per reactor$Right-click to assemble the reactor -tile.pwr_fuel.name=PWR Fuel Rod -tile.pwr_fuel.desc=Increases PWR fuel capacity$Placement: Grid, for increased reactivity -tile.pwr_heatex.name=PWR Heat Exchanger -tile.pwr_heatex.desc=Moves core heat to the hull$Placement: Any -tile.pwr_neutron_source.name=PWR Neutron Source -tile.pwr_neutron_source.desc=Adds 20 flux to the core$Placement: Any$Flux only reaches fuel rods if connections are open -tile.pwr_port.name=PWR Access Port -tile.pwr_port.desc=Allows item and fluid IO$Placement: Casing -tile.pwr_reflector.name=PWR Neutron Reflector -tile.pwr_reflector.desc=Reflects neutrons back to fuel rods$Placement: Grid, for increased reactivity$Valid casing material tile.deco_lead.name=Lead Deco Block tile.deco_rbmk.name=RBMK Deco Block tile.deco_rbmk_smooth.name=Smooth RBMK Deco Block @@ -4806,6 +4799,7 @@ tile.factory_titanium_furnace.name=Basic Factory Access Hatch tile.factory_titanium_hull.name=Factory Block tile.fallout.name=Fallout tile.fan.name=Fan +tile.fan.desc=Activates using redstone$Will push entities up to 10 blocks$Right-click with screwdriver to flip tile.fence_metal.name=Chainlink Fence tile.field_disturber.name=High Energy Field Jammer tile.filing_cabinet.green.name=Dusty Filing Cabinet @@ -5205,11 +5199,14 @@ tile.ore_uranium_scorched.name=Scorched Uranium Ore tile.ore_verticium.name=Dollar Green Mineral tile.ore_volcano.name=Geothermal Vent tile.ore_weidanium.name=Weidite +tile.part_emitter.name=Deco Particle Emitter tile.pink_barrel.name=Kerosene Barrel tile.pink_log.name=Pink Log tile.pink_planks.name=Pink Wood Planks tile.pink_slab.name=Pink Wood Slab tile.pink_stairs.name=Pink Wood Stairs +tile.piston_inserter.name=Inserter +tile.piston_inserter.desc=Can receive one item using automation$Using redstone, it will insert the item into drilled graphite$All drilled graphite in the chain will have their items pushed by one block$Needs one block of air between the graphite tile.plant_dead.name=Dead Plant tile.plant_flower.cd0.name=Mustard Willow tile.plant_flower.cd1.name=Mustard Willow @@ -5231,6 +5228,25 @@ tile.pribris.name=RBMK Debris tile.pribris_burning.name=Flaming RBMK Debris tile.pribris_digamma.name=Blackened RBMK Debris tile.pribris_radiating.name=Smoldering RBMK Debris +tile.pwr_block.name=PWR +tile.pwr_casing.name=PWR Pressure Vessel +tile.pwr_casing.desc=Needs to cover all internal parts for the reactor to form$Placement: Casing +tile.pwr_channel.name=PWR Coolant Channel +tile.pwr_channel.desc=Uses hull heat to heat up coolant$Placement: Any +tile.pwr_control.name=PWR Control Rod +tile.pwr_control.desc=Allows connected fuel rods to be controlled$Placement: Grid, between fuel rods +tile.pwr_controller.name=PWR Controller +tile.pwr_controller.desc=Access terminal for the PWR$Placement: Casing, only one per reactor$Right-click to assemble the reactor +tile.pwr_fuel.name=PWR Fuel Rod +tile.pwr_fuel.desc=Increases PWR fuel capacity$Placement: Grid, for increased reactivity +tile.pwr_heatex.name=PWR Heat Exchanger +tile.pwr_heatex.desc=Moves core heat to the hull$Placement: Any +tile.pwr_neutron_source.name=PWR Neutron Source +tile.pwr_neutron_source.desc=Adds 20 flux to the core$Placement: Any$Flux only reaches fuel rods if connections are open +tile.pwr_port.name=PWR Access Port +tile.pwr_port.desc=Allows item and fluid IO$Placement: Casing +tile.pwr_reflector.name=PWR Neutron Reflector +tile.pwr_reflector.desc=Reflects neutrons back to fuel rods$Placement: Grid, for increased reactivity$Valid casing material tile.radio_torch_counter.name=Redstone-over-Radio Item Counter tile.radio_torch_counter.desc=Placable on flat surfaces or comparator-compatible blocks$Bases signal on the amount of matching items tile.radio_torch_receiver.name=Redstone-over-Radio Receiver diff --git a/src/main/resources/assets/hbm/textures/gui/weapon/ivyMikeSchematic.png b/src/main/resources/assets/hbm/textures/gui/weapon/ivyMikeSchematic.png index 6a1c5e40f275e5b7adde98dd23df9347c1589cac..6df7cce0facb7b0744bc3a0395ca4ec0482a3176 100644 GIT binary patch literal 16183 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 KwoJw(=zjr(Tqu5F7#o2<{LV+y`C$ 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 literal 2706 zcmeHJYfw{H5I*;ktKmijF+6=yi5Ns)0+kU1mk5$n9vNPO6$}W7C=Y2WNT^;ARNg2Q zG(sj!DN-v?uvHWa5fOwUMA0fnAgvSuMG_Pe1xbTC`oF(Aqi6Qap80mq?0&m@W=;mn z(@g_4L;(OAOood$0Fdek0iv2p?Yj`*t5SqL&K}MH)aH?9Ll6Me0L$IiRfTWdxY5tg zFDomnt*uR|RH~5A>vIJ@kqV?f)}zcn6ppv2k81co zv|O0 z6-k0yyDsBS6Xb{JsijZX%f1*%sI_5Yg+Z>Z?9B^m2v))6KMG7G>|=O47~RP-PD=8; zt3yW0t4|IwH^AM+6We++*3$j4hP7oC0;+IO|3uxUxUCU7gXbK6E~6 zom|Az6FvJW-ruM_(TEtQBpm#!oy73G^0=mYxVL{2t(4m)`p(;SK%H?=hk@qHu};EN zhPcQd`{5k(0;WkWK&6dtV2;t5T+in(PE8HlbP=JfT~r^y-Ee5yZwFMxw>XG&Bzr>- znzmreMbQ`GhqTf}6%q=adUFe=ln!yt4l}ve&L5Q5bOd=K{gkWufTg!kmh24Rk zFjYTs$OAi;4j-2OZiCD88?}WBtJTnC->Sr;IH9@A*ou#sL)q=v4)A!%N!+c7h|wy8 zCiug)I>E$euy>iNyRl1+e5SZH>cYn3vP?XxLM>XBb9iPu!FIz6#!<)VQm54tMG9R7 z4@B$mYD|UEZ#<6!`SxBto+Z_2ETLfqyt(eh9)cpgs=)+lEz3rQJ@uh1oI8@I2=&3a z&m43SiH#`M1I?GtSf&=?MO9fS(H3DSGR;Xad;}9J`<2eyz+>w=$CbiFb{TLteb2<+ zAH`@lcee2P_XE~RIL!I-D4mC+>-=%Ci)<3+(fV&@pL(@kSNd)iO3A|)gYlgqPApy4 z_-IQ{L<*h>X$-5qu1LlGy%ut3HOT_Y-RZ>y+az9^!i-R;antXf@AEP{OF>_+QEsyf zb{lWL%JWM2!%Q&X^N;nMA(T)umK_|Fan9?}rC;aAq+6z^UjJl|dGTH4$--B0G@9!j z#m|HxjkhiJSFEBuq#^OLVwF$R`Mu@F0zDc6-K?W%hbqE zavkY};UKtEb|2M3WV5|j1Y2LeEUCP)%Urm`K_s@f*3Y|U24xplwkrXY%U|wwCsSzv zlYg^XzPyoswLFZIg7>7tR2;UN2w?$4C6W<69Hz2)AURL7b?`YY%PoQ=EUrE}=(Vg2 zpn~_(#nmTc&<8oAY|1eVaM%zCo;MIo2E@)9oSZIQ{QHAe2dteo(my($mRqTUeURb) z4ghOIk z4(zXm@_~`!mkzUT(V@zSGT?iW q1 Date: Mon, 28 Aug 2023 16:45:17 +0200 Subject: [PATCH 269/432] fixes --- .../machine/TileEntityPWRController.java | 154 +++++++++--------- .../tileentity/machine/TileEntityWatz.java | 6 + .../network/TileEntityCraneBase.java | 27 ++- 3 files changed, 96 insertions(+), 91 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java index ec42fb0c8..5ef179413 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java @@ -158,85 +158,87 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG this.tanks[0].setType(2, slots); setupTanks(); - for(BlockPos pos : ports) { - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { - BlockPos portPos = pos.offset(dir); - - if(tanks[1].getFill() > 0) this.sendFluid(tanks[1], worldObj, portPos.getX(), portPos.getY(), portPos.getZ(), dir); - if(worldObj.getTotalWorldTime() % 20 == 0) this.trySubscribe(tanks[0].getTankType(), worldObj, portPos.getX(), portPos.getY(), portPos.getZ(), dir); - } - } - - if((typeLoaded == -1 || amountLoaded <= 0) && slots[0] != null && slots[0].getItem() == ModItems.pwr_fuel) { - typeLoaded = slots[0].getItemDamage(); - amountLoaded++; - this.decrStackSize(0, 1); - this.markChanged(); - } else if(slots[0] != null && slots[0].getItem() == ModItems.pwr_fuel && slots[0].getItemDamage() == typeLoaded && amountLoaded < rodCount){ - amountLoaded++; - this.decrStackSize(0, 1); - this.markChanged(); - } - - if(this.rodTarget > this.rodLevel) this.rodLevel++; - if(this.rodTarget < this.rodLevel) this.rodLevel--; - - int newFlux = this.sourceCount * 20; - - if(typeLoaded != -1 && amountLoaded > 0) { - - EnumPWRFuel fuel = EnumUtil.grabEnumSafely(EnumPWRFuel.class, typeLoaded); - double usedRods = getTotalProcessMultiplier(); - double fluxPerRod = this.flux / this.rodCount; - double outputPerRod = fuel.function.effonix(fluxPerRod); - double totalOutput = outputPerRod * amountLoaded * usedRods; - double totalHeatOutput = totalOutput * fuel.heatEmission; - - this.coreHeat += totalHeatOutput; - newFlux += totalOutput; - - this.processTime = (int) fuel.yield; - this.progress += totalOutput; - - if(this.progress >= this.processTime) { - this.progress -= this.processTime; - - if(slots[1] == null) { - slots[1] = new ItemStack(ModItems.pwr_fuel_hot, 1, typeLoaded); - } else if(slots[1].getItem() == ModItems.pwr_fuel_hot && slots[1].getItemDamage() == typeLoaded && slots[1].stackSize < slots[1].getMaxStackSize()) { - slots[1].stackSize++; + if(this.assembled) { + for(BlockPos pos : ports) { + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { + BlockPos portPos = pos.offset(dir); + + if(tanks[1].getFill() > 0) this.sendFluid(tanks[1], worldObj, portPos.getX(), portPos.getY(), portPos.getZ(), dir); + if(worldObj.getTotalWorldTime() % 20 == 0) this.trySubscribe(tanks[0].getTankType(), worldObj, portPos.getX(), portPos.getY(), portPos.getZ(), dir); } - - this.amountLoaded--; + } + + if((typeLoaded == -1 || amountLoaded <= 0) && slots[0] != null && slots[0].getItem() == ModItems.pwr_fuel) { + typeLoaded = slots[0].getItemDamage(); + amountLoaded++; + this.decrStackSize(0, 1); + this.markChanged(); + } else if(slots[0] != null && slots[0].getItem() == ModItems.pwr_fuel && slots[0].getItemDamage() == typeLoaded && amountLoaded < rodCount){ + amountLoaded++; + this.decrStackSize(0, 1); this.markChanged(); } - } - - if(this.amountLoaded <= 0) { - this.typeLoaded = -1; - } - - if(amountLoaded > rodCount) amountLoaded = rodCount; - - /* CORE COOLING */ - double coreCoolingApproachNum = getXOverE((double) this.heatexCount * 5 / (double) this.rodCount, 2) / 2D; - int averageCoreHeat = (this.coreHeat + this.hullHeat) / 2; - this.coreHeat -= (coreHeat - averageCoreHeat) * coreCoolingApproachNum; - this.hullHeat -= (hullHeat - averageCoreHeat) * coreCoolingApproachNum; - - updateCoolant(); - - this.coreHeat *= 0.999D; - this.hullHeat *= 0.999D; - - this.flux = newFlux; - - if(tanks[0].getTankType().hasTrait(FT_PWRModerator.class) && tanks[0].getFill() > 0) { - this.flux *= tanks[0].getTankType().getTrait(FT_PWRModerator.class).getMultiplier(); - } - - if(this.coreHeat > this.coreHeatCapacity) { - meltDown(); + + if(this.rodTarget > this.rodLevel) this.rodLevel++; + if(this.rodTarget < this.rodLevel) this.rodLevel--; + + int newFlux = this.sourceCount * 20; + + if(typeLoaded != -1 && amountLoaded > 0) { + + EnumPWRFuel fuel = EnumUtil.grabEnumSafely(EnumPWRFuel.class, typeLoaded); + double usedRods = getTotalProcessMultiplier(); + double fluxPerRod = this.flux / this.rodCount; + double outputPerRod = fuel.function.effonix(fluxPerRod); + double totalOutput = outputPerRod * amountLoaded * usedRods; + double totalHeatOutput = totalOutput * fuel.heatEmission; + + this.coreHeat += totalHeatOutput; + newFlux += totalOutput; + + this.processTime = (int) fuel.yield; + this.progress += totalOutput; + + if(this.progress >= this.processTime) { + this.progress -= this.processTime; + + if(slots[1] == null) { + slots[1] = new ItemStack(ModItems.pwr_fuel_hot, 1, typeLoaded); + } else if(slots[1].getItem() == ModItems.pwr_fuel_hot && slots[1].getItemDamage() == typeLoaded && slots[1].stackSize < slots[1].getMaxStackSize()) { + slots[1].stackSize++; + } + + this.amountLoaded--; + this.markChanged(); + } + } + + if(this.amountLoaded <= 0) { + this.typeLoaded = -1; + } + + if(amountLoaded > rodCount) amountLoaded = rodCount; + + /* CORE COOLING */ + double coreCoolingApproachNum = getXOverE((double) this.heatexCount * 5 / (double) this.rodCount, 2) / 2D; + int averageCoreHeat = (this.coreHeat + this.hullHeat) / 2; + this.coreHeat -= (coreHeat - averageCoreHeat) * coreCoolingApproachNum; + this.hullHeat -= (hullHeat - averageCoreHeat) * coreCoolingApproachNum; + + updateCoolant(); + + this.coreHeat *= 0.999D; + this.hullHeat *= 0.999D; + + this.flux = newFlux; + + if(tanks[0].getTankType().hasTrait(FT_PWRModerator.class) && tanks[0].getFill() > 0) { + this.flux *= tanks[0].getTankType().getTrait(FT_PWRModerator.class).getMultiplier(); + } + + if(this.coreHeat > this.coreHeatCapacity) { + meltDown(); + } } NBTTagCompound data = new NBTTagCompound(); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityWatz.java b/src/main/java/com/hbm/tileentity/machine/TileEntityWatz.java index 8b3e4baeb..8991fb974 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityWatz.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityWatz.java @@ -494,6 +494,12 @@ public class TileEntityWatz extends TileEntityMachineBase implements IFluidStand setBrokenColumn(1, ModBlocks.watz_end, 1, 2, -2); setBrokenColumn(1, ModBlocks.watz_end, 1, -2, 2); setBrokenColumn(1, ModBlocks.watz_end, 1, -2, -2); + + List players = worldObj.getEntitiesWithinAABB(EntityPlayer.class, AxisAlignedBB.getBoundingBox(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5).expand(50, 50, 50)); + + for(EntityPlayer player : players) { + player.triggerAchievement(MainRegistry.achWatzBoom); + } } private void setBrokenColumn(int minHeight, Block b, int meta, int x, int z) { diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCraneBase.java b/src/main/java/com/hbm/tileentity/network/TileEntityCraneBase.java index 8449c27a1..2158d0fe7 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCraneBase.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCraneBase.java @@ -1,8 +1,6 @@ package com.hbm.tileentity.network; import com.hbm.tileentity.TileEntityMachineBase; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.NetworkManager; import net.minecraft.network.Packet; @@ -11,6 +9,7 @@ import net.minecraftforge.common.util.Constants; import net.minecraftforge.common.util.ForgeDirection; public abstract class TileEntityCraneBase extends TileEntityMachineBase { + public TileEntityCraneBase(int scount) { super(scount); } @@ -19,15 +18,15 @@ public abstract class TileEntityCraneBase extends TileEntityMachineBase { // for compatibility purposes, normal meta values are still used by default private ForgeDirection outputOverride = ForgeDirection.UNKNOWN; - // for extra stability in case the screwdriver action doesn't get synced to other clients - @SideOnly(Side.CLIENT) + // for extra stability in case the screwdriver action doesn't get synced to + // other clients private ForgeDirection cachedOutputOverride = ForgeDirection.UNKNOWN; @Override public void updateEntity() { - if (hasWorldObj() && worldObj.isRemote) { - if (cachedOutputOverride != outputOverride) { - worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); + if(hasWorldObj() && worldObj.isRemote) { + if(cachedOutputOverride != outputOverride) { + worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); cachedOutputOverride = outputOverride; } } @@ -48,12 +47,11 @@ public abstract class TileEntityCraneBase extends TileEntityMachineBase { public void setOutputOverride(ForgeDirection direction) { ForgeDirection oldSide = getOutputSide(); - if (oldSide == direction) - direction = direction.getOpposite(); + if(oldSide == direction) direction = direction.getOpposite(); outputOverride = direction; - if (direction == getInputSide()) + if(direction == getInputSide()) setInput(oldSide); else onBlockChanged(); @@ -63,18 +61,17 @@ public abstract class TileEntityCraneBase extends TileEntityMachineBase { outputOverride = getOutputSide(); // save the current output, if it isn't saved yet ForgeDirection oldSide = getInputSide(); - if (oldSide == direction) - direction = direction.getOpposite(); + if(oldSide == direction) direction = direction.getOpposite(); boolean needSwapOutput = direction == getOutputSide(); worldObj.setBlockMetadataWithNotify(xCoord, yCoord, zCoord, direction.ordinal(), needSwapOutput ? 4 : 3); - if (needSwapOutput) + if(needSwapOutput) setOutputOverride(oldSide); } protected void onBlockChanged() { - if (!hasWorldObj()) return; + if(!hasWorldObj()) return; worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); worldObj.notifyBlockChange(xCoord, yCoord, zCoord, getBlockType()); markDirty(); @@ -95,7 +92,7 @@ public abstract class TileEntityCraneBase extends TileEntityMachineBase { @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); - if (nbt.hasKey("CraneOutputOverride", Constants.NBT.TAG_BYTE)) + if(nbt.hasKey("CraneOutputOverride", Constants.NBT.TAG_BYTE)) outputOverride = ForgeDirection.getOrientation(nbt.getByte("CraneOutputOverride")); } From 9d76d50bc6380b3a47e82d4aeaaf7dd41ad7b62d Mon Sep 17 00:00:00 2001 From: Bob Date: Mon, 28 Aug 2023 17:35:12 +0200 Subject: [PATCH 270/432] bah --- changelog | 56 ++--------------------- gradle.properties | 2 +- src/main/java/com/hbm/lib/RefStrings.java | 2 +- 3 files changed, 5 insertions(+), 55 deletions(-) diff --git a/changelog b/changelog index 8e2b10e3a..feecf7204 100644 --- a/changelog +++ b/changelog @@ -1,54 +1,4 @@ -## Added -* PWR - * The successor to the old large nuclear reactor - * Has some design similarities with the RBMK, but in 3D - * Relatively easy to build and safe to operate - * Does not use any tile entity rendering and all math is pre-calculated when the reactor is assembled, making this one even more performant than the old large reactor - * Balancing might change, so keep that in mind when updating in the future -* Sodalite - * A gem that can be extracted from fluorite or lapis ore - * Can be heated in the combination oven to make sodium and chlorine -* Liquid sodium - * Valid PWR coolant with high efficiency rating - * Made by liquefacting sodium -* Liquid thorium salt - * Valid PWR coolant - * Has a high flux multiplication rate, boosting fuels - * After cooling, the depleted salt has to be reprocessed using a chemical plant -* Creative stirling engine - * A stirling engine with 100% efficiency and no heat cap - * Still has the 10% delta-T heat transfer rate as the other stirlings - * Great for quickly benchmarking reactors without needing to set up a turbine cycle - -## Changed -* Bedrock fluorite ore now yields actual ore instead of fluorite directly -* Blocks that fall from fallout effects no longer drop items when falling on small blocks, preventing issues like gas blocks being dropped -* Bullets no longer need primers to be crafted, primers no longer exist at all -* The automatic buzzsaw can now use wood oil, ethanol, fish oil and heavy oil to run -* Fluorite ore is now centrifugable -* Fluorite crystals now centrifuge into slightly less fluorite but also yield sodalite -* Blast resistance values for most resistant blocks have been changed, most blocks now have much lower resistance which means there's now a practical difference between concrete and ducrete. Resistance values also match the block's cost more closely. -* Using a screwdriver, the input and output sides of conveyor cranes (inserters, ejectors, etc) can now be configured, allowing them to operate around corners -* Sandstone's blast resistance is now as high as stone's, but only against nuclear explosions -* The tsar bomba model has been updated -* The nuclear explosion animation has been replaced with the TOREX system, instead of a static model that moves around, the mushroom clouds are now made of simulated particles -* Sellafite now uses random ticks instead of scheduled ticks every second, while this does reduce its radioactivity quite a bit, it prevents the tick queue from slowing down to a crawl with large amounts of sellafite from nuclear explosions -* Conveyor blocks now have tooltips explaining what they do and how they can be configured -* The large reactor still works despite the PWR being added, but the parts have been made uncraftable -* Unused watz parts have been hidden from the creative inventory -* Removed the bedrok coltan ore, since it was replaced by generic bedrock ores anyway -* Updated decal on the congo lake grenade launcher - ## Fixed -* Fixed FEnSU's IO limit not working properly -* Fixed overflow caused by uncapped Spk values of DFC beams, they are now capped at 9,200,000 Spk -* Fixed smooth lighting not working on connected textures -* Fixed the Thermos preventer not working on Crucible type servers -* Fixed pollution save files not working correctly on certain Thermos forks -* Fixed blast furnace output overstacking -* Fixed potential crash caused by centrifuges trying to create a recipe using non-registered items -* Fixed chemplant GUI crashing when too many upgrades are applied to a short duration recipe -* Corium is now a finite fluid, fixing an issue where a single fuel rod can be used to create a giant blob of corium, lagging out the server -* Fixed bullets not being able to pass things like tall grass -* Whether the player has received a guide book is now saved as part of the extprop which might fix an issue where offline mode players get a new book on every start -* Fixed electrolyser fluid recipes not showing the input amount +* Fixed PWR still operating as normal even when the structure is dissolved +* Fixed the new watz not giving the meltdown achievement +* Fixed serverside crash caused by conveyor cranes \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 962c3fabf..d57216f6b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4704 +mod_build_number=4705 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index aff896dcf..aeebbd4c0 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4704)"; + public static final String VERSION = "1.0.27 BETA (4705)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version From 328f84cdd4468101d45a092f15f95de816e7009d Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 29 Aug 2023 16:10:17 +0200 Subject: [PATCH 271/432] missing tank textures, lang keys --- CONTRIBUTING.md | 38 ++++++++++++++++++ .../java/com/hbm/inventory/fluid/Fluids.java | 6 +-- src/main/resources/assets/hbm/lang/de_DE.lang | 1 + src/main/resources/assets/hbm/lang/en_US.lang | 1 + .../models/tank/tank_HEAVYWATER_HOT.png | Bin 0 -> 1104 bytes .../hbm/textures/models/tank/tank_SODIUM.png | Bin 0 -> 1192 bytes .../textures/models/tank/tank_SODIUM_HOT.png | Bin 0 -> 1260 bytes 7 files changed, 43 insertions(+), 3 deletions(-) create mode 100644 CONTRIBUTING.md create mode 100644 src/main/resources/assets/hbm/textures/models/tank/tank_HEAVYWATER_HOT.png create mode 100644 src/main/resources/assets/hbm/textures/models/tank/tank_SODIUM.png create mode 100644 src/main/resources/assets/hbm/textures/models/tank/tank_SODIUM_HOT.png diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..9d02a90df --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,38 @@ +# NTM Contribution Guidelines, Version 1 + +## Keep it concise + +The best PRs are the ones that are small and to the point. The entire PR should focus on the thing you're trying to do, whether it's a fix or a feature PR. If your PR adds the Super Weldtronic 9000, there's no reason to include changes and tweaks to other things that have nothing to do with the Super Weldtronic 9000. If you think those changes are still necessary, open a new PR. + +## Keep it clean + +While admittedly my own code isn't the cleanest on earth, please try to keep terrible practices at a minimum. Also avoid things like unused variables and imports, mixed indentation styles or changes that have a high likelihood of breaking things. + +Things you should also avoid include: +* new libraries (unless your PR absolutely needs it like for special mod compat) +* duplicate util functions (just use what we have, man) +* unused or half finished util functions (for obvious reasons) +* half finished or obviously broken features (à la "bob will fix it, i'm sure of it", please don't do that) + +## Test your code + +This should go without saying, but please don't PR code that was never actually tested or has obvious compiler errors in it. + +## Communication + +If you're planning on adding some new thing or doing a grand change, it's best to ask whether that's a good idea before spending 50 hours on a project that won't end up getting merged, due to issues that could have been entirely avoidable with communication. + +## No guarantees + +This ties together with the previous point - there's no guarantees that your PR gets merged no matter how hard or long you've worked on it. However, if you follow these guidelines, there's a good chance that your PR will be accepted. + +## I want to help but don't know where to start + +If you want to help the project, consider getting involved with the [wiki](ntm.fandom.com) first. Writing an article is the easiest and quickest way of helping, and requires no programming knowledge. If you do know Java and want to help, consider these places first: + +* Localization, i.e. translations in different language are always accepted. +* `IConfigurableMachine`, an interface that allows machines to be added to the `hbmMachines.json` config, is still not used by many machines. +* F1 Presentations, also known as "Stare" or "Jar Presentations", is a neat system of creating a short movie explaining functionality. All the relevant code can be found in `com.hbm.wiaj`. +* Some guns still use the old "bow-style" systems and not `ItemGunBase`. +* Many guns don't have any animations whatsoever, just adding a minor recoil would already improve them by a lot. +* Adding tooltips to more machines, explaining some of the basics. diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index cb2fb5539..093030189 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -321,9 +321,9 @@ public class Fluids { HEAVYWATER_HOT = new FluidType("HEAVYWATER_HOT", 0x4D007B, 1, 0, 0, EnumSymbol.NONE).setTemp(600).addTraits(LIQUID); SODIUM = new FluidType("SODIUM", 0xCCD4D5, 1, 2, 3, EnumSymbol.NONE).setTemp(400).addTraits(LIQUID); SODIUM_HOT = new FluidType("SODIUM_HOT", 0xE2ADC1, 1, 2, 3, EnumSymbol.NONE).setTemp(1200).addTraits(LIQUID); - THORIUM_SALT = new FluidType("THORIUM_SALT", 0x7A5542, 2, 0, 3, EnumSymbol.NONE).setTemp(800).addTraits(LIQUID); - THORIUM_SALT_HOT = new FluidType("THORIUM_SALT_HOT", 0x3E3627, 2, 0, 3, EnumSymbol.NONE).setTemp(1600).addTraits(LIQUID); - THORIUM_SALT_DEPLETED = new FluidType(129, "THORIUM_SALT_DEPLETED", 0x302D1C, 2, 0, 3, EnumSymbol.NONE).setTemp(800).addTraits(LIQUID); + THORIUM_SALT = new FluidType("THORIUM_SALT", 0x7A5542, 2, 0, 3, EnumSymbol.NONE).setTemp(800).addTraits(LIQUID, new FT_Corrosive(65)); + THORIUM_SALT_HOT = new FluidType("THORIUM_SALT_HOT", 0x3E3627, 2, 0, 3, EnumSymbol.NONE).setTemp(1600).addTraits(LIQUID, new FT_Corrosive(65)); + THORIUM_SALT_DEPLETED = new FluidType(129, "THORIUM_SALT_DEPLETED", 0x302D1C, 2, 0, 3, EnumSymbol.NONE).setTemp(800).addTraits(LIQUID, new FT_Corrosive(65)); // ^ ^ ^ ^ ^ ^ ^ ^ //ADD NEW FLUIDS HERE diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index c93c37910..84147f821 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -666,6 +666,7 @@ hbmfluid.heatingoil_vacuum=Schweres Heizöl hbmfluid.heavyoil=Schweröl hbmfluid.heavyoil_vacuum=Vakuum-Schweröl hbmfluid.heavywater=Schweres Wasser +hbmfluid.heavywater_hot=Heißes Schweres Wasser hbmfluid.helium3=Helium-3 hbmfluid.helium4=Helium-4 hbmfluid.hotcrackoil=Heißes Crack-Öl diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index a34f8457c..0a303319d 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1308,6 +1308,7 @@ hbmfluid.heatingoil_vacuum=Heavy Heating Oil hbmfluid.heavyoil=Heavy Oil hbmfluid.heavyoil_vacuum=Vacuum Heavy Oil hbmfluid.heavywater=Heavy Water +hbmfluid.heavywater_hot=Hot Heavy Water hbmfluid.helium3=Helium-3 hbmfluid.helium4=Helium-4 hbmfluid.hotcrackoil=Hot Cracked Oil diff --git a/src/main/resources/assets/hbm/textures/models/tank/tank_HEAVYWATER_HOT.png b/src/main/resources/assets/hbm/textures/models/tank/tank_HEAVYWATER_HOT.png new file mode 100644 index 0000000000000000000000000000000000000000..09ce7b6d20cbc2d851d14aab2763decf0f93f201 GIT binary patch literal 1104 zcmV-W1h4yvP)d;~ zFzTM`+)=kCTC^e850@W4A8ub4+c)t_5%CJEqw98pLOVgBogiK*B3>bgcvUIl6;z}y z6?EMV$m!xKbOYYH{4@&Pfc^9Ib)0ymXzh5#HM$aW<5kXf#4AN>#jBj{h*u4v>js5x z0Xf=4c&Dls=+$ZEVSSm9wuD z24jY#7G}@+gGl``5U&*Ra3F$sI1oupYB)iTc7k`WHpaVG2x4iAO0l#BRM2%dj#0N0 z%w9Rc?A6A2I1oWR99St!4+qks4dLA@Br)oCg09;MmbTa!OIsj_r7bGO!+{9m;Xowq zpRXpz0~Fc`3he~5SBkXa)%bOtoZm%@HY7J*^&|3g5U&(z#j821ArP+&VQC8#qeWLP z_XT-cv=hWDMH=yH9Ia^470QWMbE1_9@k*6OyqY^2XE0`nX1t=%l_*_)ifgnJ6xs>m zl_E{<*r(Hdam%(8uiUR3I4p8s*wD|mM%P^+R?y++t-A50xh?cmt8J~=E(<-?U57^B zwHKSEEfjtJ`ddUqj>lv49Ith5UAE{@OTF3M$N_AY|)lxuNEDQ zrA}~Z3tozq;|Q6%FnbQ-RV9d5$U>o=;Nd_;JRFE1)A0&%mf{ufUKzr>S13lIouJT8 z5U&&wuMkAMsub}GLBuN*qtH%JXeWqQiilSTB3@OBc!eP16^c=4Cn&TN#4AOX;?-Y$ WFGd}B^O>mt00002% literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/tank/tank_SODIUM.png b/src/main/resources/assets/hbm/textures/models/tank/tank_SODIUM.png new file mode 100644 index 0000000000000000000000000000000000000000..a17ee9e4954052c96ab8e1b1f64d26a696914eec GIT binary patch literal 1192 zcmeAS@N?(olHy`uVBq!ia0vp^RY2Us!3HEZPulwcNU;<Eakt zG3V{wjd_&C3!r9wG2EXp1WYdbexFJPfx%6?zx7?)|}rSw>#TB-gmyaoxfW9 zx7h!8-<*2e{@eQVv$wndmIaDDJAB+YQAZVv&FQ_5TLmyJzCh^Y!iWJ>8(I z7FFUT_wIdM&i`G1CEwmSqV0G@+d^=?K#!BQ`CD*;V1Ygx|6$x5CFhR#x5qobF^3MR$eY6||&Vel%fX?M6+!S`1uX2@`; ztFfnboop#U7iSm#9CQVRCrYZ0Ez{4iu*>-v3h+t0l;Yjau+ z3HnK0;olxx*=1bh{MZ{_D>hp>juR+U8|JJKr`obqSD;61uH|~h`3qfFJMIxu5nTVv zMLRj;qUXoX@Y?Gi)qsjS!fV|h^BfaWl3cG*qE_R6-4_@j3odv8~Gn{j! z_)eXipK(1&HnDyXJC5&OzN>R;*7`x3AcyZhq{ISg`TVm2Wq!`er#h^8V_R zPd{%C-IlTY#MA4)et&&`(|)q@qfp<-H_NWwzWQ~#c5;v5>8G14(*)N)*|POY)#&1qD5!)LbQvc@rt+?y^&GtU8lJ&0LAewz;?xYnT zPl@`zdVh8MZkL%w_Ahm$cOO{1w>nfzxy&)?`Rx!@+4VW=u1P!hxyt44u`0>DxGx}4 ze0^rT?xxCbt5#a9YckvWZj=5WR&lH86$|J7;#P|)`0jNfVVg z6xa@(xxgpj0E#ft23%nXb|qx-MryV6G~IgNPhyQm))+rp-9Px0)5B+X_8Dt0q=;ib#H(fz+qBMeD>w@Wcwyw86sXmMZCgj6xs<2?F8}45b+8s;#H=I zS5S4uE3F}(o?Oe>`BBjIZw}oH@Zin2{=;pRZ7V&l~;IhuI2d-TyxkfTxK>Xo6n;#Ei=O^Z%QY`hA( z9!liF?MJ;MprDLi*_5;lBv;bq^IgUw4;~sMdwSSVFocX4n2h z40#Zqcx8y21EI3KIgr8F0&r2o339X(JbSfcJbMKdQ(I(;sV$(goZ5mz_X05Lc7m%{ zPB3%ej&XA!RNNexDQ*sg%JSJO4&4jDsM`rnm^d-Z)E3x|sV$&lYKu&9b0Abn&m4%| zsgA-QUcQk>SKZ?Q`e-L8v=hWDLss#s{kTpDT697}<5fK(AAope$SPjN%!a_IJ0VPM zfzfEunG1bDo)+x{@yd`zyo!ldBDCnFgv6_uXeC0tGG!63Vn^c)#u8!~uPAgT#!f#) zAMFH%c7k|iXs(+BL(rlV!k-n+6o2;$Dz08(Gz#qmg?55?)v$kjAR;2S7dMmak9d`! zs>to-IT5dnX@%WCJ{aAyiB}0}7P%^HwQh=H4?(;#q7}KlysN|b)JC`HTo3ETW?e78 zSgobltmVaO-Pq!~-e&*!p!MEwx%}lImo2(oack{(_2K24$@cBK&?0{pdsjua<~Cm4b=^7Q?vhK_HEE011~J8Et-jXc ziuPW}Ywa`J>$KNR&B9JK>Q0GiylO_3YI$3P>08%a9ukA9?LuylM+=J=?xlL~q?=?5fBq#VgaRSIwgL{j&Q`OSVsPwD&jUvr?7KvscXm zwbyCe^{vy^cfB66tv90!olCs%&ix4!FSvSTXwmTs@v@3n_{~kc!Z6$%h|wst6BODB z;*}xd6;#BlOcAf3B3@xM3he}ic7k|ihzUKvU$Ui|`; Ws43x5F|T$20000 Date: Tue, 29 Aug 2023 13:19:14 -0400 Subject: [PATCH 272/432] less painful ammo recipes + chloro rounds fnuy --- .../java/com/hbm/crafting/WeaponRecipes.java | 2 +- .../com/hbm/handler/BulletConfiguration.java | 9 +- .../inventory/recipes/anvil/AnvilRecipes.java | 128 +++++++++--------- 3 files changed, 72 insertions(+), 67 deletions(-) diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index b9bb2aba5..bc652f236 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -188,7 +188,7 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_uzi, 32), new Object[] { " I", "GC", 'I', IRON.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_9 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_uzi, 32), new Object[] { " I", "GC", 'I', IRON.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_9 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_uzi, 32), new Object[] { " I", "GC", 'I', IRON.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_9 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_lacunae, 32), new Object[] { " I", "GC", 'I', CU.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_9 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_lacunae, 64), new Object[] { " I", "GC", 'I', CU.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_9 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_nopip, 24), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_44 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_nopip, 24), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_44 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_12gauge, 12), new Object[] { " I ", "GCL", 'I', ModItems.pellet_buckshot, 'G', ModItems.cordite, 'C', ModItems.casing_buckshot, 'L', ModItems.plate_polymer }); diff --git a/src/main/java/com/hbm/handler/BulletConfiguration.java b/src/main/java/com/hbm/handler/BulletConfiguration.java index 9a08d0c03..ba426102b 100644 --- a/src/main/java/com/hbm/handler/BulletConfiguration.java +++ b/src/main/java/com/hbm/handler/BulletConfiguration.java @@ -182,12 +182,13 @@ public class BulletConfiguration implements Cloneable { } public BulletConfiguration getChlorophyte() { - this.bntUpdate = BulletConfigFactory.getHomingBehavior(200, 45); - this.dmgMin *= 1.5F; - this.dmgMax *= 1.5F; + this.bntUpdate = BulletConfigFactory.getHomingBehavior(20, 360); + this.dmgMin *= 2F; + this.dmgMax *= 2F; this.wear *= 0.5; + this.velocity *= 0.2; this.doesRicochet = false; - this.doesPenetrate = false; + this.doesPenetrate = true; this.vPFX = "greendust"; if(this.spentCasing != null) { diff --git a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java index fea2e23b0..165631293 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -524,85 +524,89 @@ public class AnvilRecipes { constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(CU.plate()), new AnvilOutput(new ItemStack(ModItems.casing_9))).setTier(1)); constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(CU.plate()), new AnvilOutput(new ItemStack(ModItems.casing_50))).setTier(1)); constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(CU.plate()), new AnvilOutput(new ItemStack(ModItems.casing_buckshot))).setTier(1)); + + pullFromAssembler(new ComparableStack(ModItems.pellet_buckshot), 1); + pullFromAssembler(new ComparableStack(ModItems.pellet_cluster), 1); + pullFromAssembler(new ComparableStack(ModItems.pellet_chlorophyte), 1); Object[][] recs = new Object[][] { - {ModItems.ammo_12gauge.stackFromEnum(20, Ammo12Gauge.STOCK), P_RED.dust(), ModItems.ammo_12gauge.stackFromEnum(20, Ammo12Gauge.INCENDIARY), 2}, - {ModItems.ammo_12gauge.stackFromEnum(20, Ammo12Gauge.STOCK), Item.getItemFromBlock(ModBlocks.gravel_obsidian), ModItems.ammo_12gauge.stackFromEnum(20, Ammo12Gauge.SHRAPNEL), 2}, - {ModItems.ammo_12gauge.stackFromEnum(20, Ammo12Gauge.STOCK), U238.ingot(), ModItems.ammo_12gauge.stackFromEnum(20, Ammo12Gauge.DU), 3}, - {ModItems.ammo_12gauge.stackFromEnum(100, Ammo12Gauge.STOCK), ModItems.coin_maskman, ModItems.ammo_12gauge.stackFromEnum(100, Ammo12Gauge.SLEEK), 4}, + {ModItems.ammo_12gauge.stackFromEnum(12, Ammo12Gauge.STOCK), P_RED.dust(), ModItems.ammo_12gauge.stackFromEnum(12, Ammo12Gauge.INCENDIARY), 2}, + {ModItems.ammo_12gauge.stackFromEnum(12, Ammo12Gauge.STOCK), Item.getItemFromBlock(ModBlocks.gravel_obsidian), ModItems.ammo_12gauge.stackFromEnum(12, Ammo12Gauge.SHRAPNEL), 2}, + {ModItems.ammo_12gauge.stackFromEnum(12, Ammo12Gauge.STOCK), U238.ingot(), ModItems.ammo_12gauge.stackFromEnum(12, Ammo12Gauge.DU), 3}, + {ModItems.ammo_12gauge.stackFromEnum(120, Ammo12Gauge.STOCK), ModItems.coin_maskman, ModItems.ammo_12gauge.stackFromEnum(120, Ammo12Gauge.SLEEK), 4}, - {ModItems.ammo_20gauge.stackFromEnum(20, Ammo20Gauge.STOCK), P_RED.dust(), ModItems.ammo_20gauge.stackFromEnum(20, Ammo20Gauge.INCENDIARY), 2}, - {ModItems.ammo_20gauge.stackFromEnum(20, Ammo20Gauge.STOCK), Item.getItemFromBlock(ModBlocks.gravel_obsidian), ModItems.ammo_20gauge.stackFromEnum(20, Ammo20Gauge.SHRAPNEL), 2}, - {ModItems.ammo_20gauge.stackFromEnum(20, Ammo20Gauge.STOCK), ModItems.powder_poison, ModItems.ammo_20gauge.stackFromEnum(20, Ammo20Gauge.CAUSTIC), 2}, - {ModItems.ammo_20gauge.stackFromEnum(20, Ammo20Gauge.STOCK), DIAMOND.dust(), ModItems.ammo_20gauge.stackFromEnum(20, Ammo20Gauge.SHOCK), 2}, - {ModItems.ammo_20gauge.stackFromEnum(10, Ammo20Gauge.STOCK), Item.getItemFromBlock(Blocks.soul_sand), ModItems.ammo_20gauge.stackFromEnum(10, Ammo20Gauge.WITHER), 3}, - {ModItems.ammo_20gauge.stackFromEnum(100, Ammo20Gauge.STOCK), ModItems.coin_maskman, ModItems.ammo_20gauge.stackFromEnum(100, Ammo20Gauge.SLEEK), 4}, + {ModItems.ammo_20gauge.stackFromEnum(12, Ammo20Gauge.STOCK), P_RED.dust(), ModItems.ammo_20gauge.stackFromEnum(12, Ammo20Gauge.INCENDIARY), 2}, + {ModItems.ammo_20gauge.stackFromEnum(12, Ammo20Gauge.STOCK), Item.getItemFromBlock(ModBlocks.gravel_obsidian), ModItems.ammo_20gauge.stackFromEnum(12, Ammo20Gauge.SHRAPNEL), 2}, + {ModItems.ammo_20gauge.stackFromEnum(12, Ammo20Gauge.STOCK), ModItems.powder_poison, ModItems.ammo_20gauge.stackFromEnum(12, Ammo20Gauge.CAUSTIC), 2}, + {ModItems.ammo_20gauge.stackFromEnum(12, Ammo20Gauge.STOCK), DIAMOND.dust(), ModItems.ammo_20gauge.stackFromEnum(12, Ammo20Gauge.SHOCK), 2}, + {ModItems.ammo_20gauge.stackFromEnum(12, Ammo20Gauge.STOCK), Item.getItemFromBlock(Blocks.soul_sand), ModItems.ammo_20gauge.stackFromEnum(12, Ammo20Gauge.WITHER), 3}, + {ModItems.ammo_20gauge.stackFromEnum(120, Ammo20Gauge.STOCK), ModItems.coin_maskman, ModItems.ammo_20gauge.stackFromEnum(120, Ammo20Gauge.SLEEK), 4}, - {ModItems.ammo_4gauge.stackFromEnum(20, Ammo4Gauge.FLECHETTE), P_WHITE.ingot(), ModItems.ammo_4gauge.stackFromEnum(20, Ammo4Gauge.FLECHETTE_PHOSPHORUS), 2}, - {ModItems.ammo_4gauge.stackFromEnum(10, Ammo4Gauge.EXPLOSIVE), ModItems.egg_balefire_shard, ModItems.ammo_4gauge.stackFromEnum(10, Ammo4Gauge.BALEFIRE), 4}, + {ModItems.ammo_4gauge.stackFromEnum(12, Ammo4Gauge.FLECHETTE), P_WHITE.ingot(), ModItems.ammo_4gauge.stackFromEnum(12, Ammo4Gauge.FLECHETTE_PHOSPHORUS), 2}, + {ModItems.ammo_4gauge.stackFromEnum(12, Ammo4Gauge.EXPLOSIVE), ModItems.egg_balefire_shard, ModItems.ammo_4gauge.stackFromEnum(12, Ammo4Gauge.BALEFIRE), 4}, {ModItems.ammo_4gauge.stackFromEnum(4, Ammo4Gauge.EXPLOSIVE), ModItems.ammo_rocket, ModItems.ammo_4gauge.stackFromEnum(4, Ammo4Gauge.KAMPF), 2}, - {ModItems.ammo_4gauge.stackFromEnum(10, Ammo4Gauge.KAMPF), ModItems.pellet_canister, ModItems.ammo_4gauge.stackFromEnum(10, Ammo4Gauge.CANISTER), 3}, + {ModItems.ammo_4gauge.stackFromEnum(12, Ammo4Gauge.KAMPF), ModItems.pellet_canister, ModItems.ammo_4gauge.stackFromEnum(12, Ammo4Gauge.CANISTER), 3}, {ModItems.ammo_4gauge.stackFromEnum(4, Ammo4Gauge.STOCK), ModItems.pellet_claws, ModItems.ammo_4gauge.stackFromEnum(4, Ammo4Gauge.CLAW), 5}, {ModItems.ammo_4gauge.stackFromEnum(4, Ammo4Gauge.STOCK), ModItems.toothpicks, ModItems.ammo_4gauge.stackFromEnum(4, Ammo4Gauge.VAMPIRE), 5}, {ModItems.ammo_4gauge.stackFromEnum(Ammo4Gauge.STOCK), ModItems.pellet_charged, ModItems.ammo_4gauge.stackFromEnum(Ammo4Gauge.VOID), 5}, - {ModItems.ammo_4gauge.stackFromEnum(100, Ammo4Gauge.STOCK), ModItems.coin_maskman, ModItems.ammo_4gauge.stackFromEnum(100, Ammo4Gauge.SLEEK), 4}, + {ModItems.ammo_4gauge.stackFromEnum(120, Ammo4Gauge.STOCK), ModItems.coin_maskman, ModItems.ammo_4gauge.stackFromEnum(120, Ammo4Gauge.SLEEK), 4}, - {ModItems.ammo_44.stackFromEnum(20, Ammo44Magnum.STOCK), DURA.ingot(), ModItems.ammo_44.stackFromEnum(20, Ammo44Magnum.AP), 2}, - {ModItems.ammo_44.stackFromEnum(20, Ammo44Magnum.STOCK), U238.ingot(), ModItems.ammo_44.stackFromEnum(20, Ammo44Magnum.DU), 2}, - {ModItems.ammo_44.stackFromEnum(20, Ammo44Magnum.STOCK), P_WHITE.ingot(), ModItems.ammo_44.stackFromEnum(20, Ammo44Magnum.PHOSPHORUS), 2}, - {ModItems.ammo_44.stackFromEnum(10, Ammo44Magnum.DU), STAR.ingot(), ModItems.ammo_44.stackFromEnum(10, Ammo44Magnum.STAR), 3}, - {ModItems.ammo_44.stackFromEnum(10, Ammo44Magnum.STOCK), ModItems.pellet_chlorophyte, ModItems.ammo_44.stackFromEnum(10, Ammo44Magnum.CHLOROPHYTE), 3}, + {ModItems.ammo_44.stackFromEnum(24, Ammo44Magnum.STOCK), DURA.ingot(), ModItems.ammo_44.stackFromEnum(24, Ammo44Magnum.AP), 2}, + {ModItems.ammo_44.stackFromEnum(24, Ammo44Magnum.STOCK), U238.ingot(), ModItems.ammo_44.stackFromEnum(24, Ammo44Magnum.DU), 2}, + {ModItems.ammo_44.stackFromEnum(24, Ammo44Magnum.STOCK), P_WHITE.ingot(), ModItems.ammo_44.stackFromEnum(24, Ammo44Magnum.PHOSPHORUS), 2}, + {ModItems.ammo_44.stackFromEnum(12, Ammo44Magnum.DU), STAR.ingot(), ModItems.ammo_44.stackFromEnum(12, Ammo44Magnum.STAR), 3}, + {ModItems.ammo_44.stackFromEnum(24, Ammo44Magnum.STOCK), ModItems.pellet_chlorophyte, ModItems.ammo_44.stackFromEnum(24, Ammo44Magnum.CHLOROPHYTE), 3}, - {ModItems.ammo_45.stackFromEnum(20, Ammo45ACP.STOCK), DURA.ingot(), ModItems.ammo_45.stackFromEnum(20, Ammo45ACP.AP), 3}, - {ModItems.ammo_45.stackFromEnum(10, Ammo45ACP.STOCK), U238.ingot(), ModItems.ammo_45.stackFromEnum(10, Ammo45ACP.DU), 3}, + {ModItems.ammo_45.stackFromEnum(32, Ammo45ACP.STOCK), DURA.ingot(), ModItems.ammo_45.stackFromEnum(32, Ammo45ACP.AP), 3}, + {ModItems.ammo_45.stackFromEnum(32, Ammo45ACP.STOCK), U238.ingot(), ModItems.ammo_45.stackFromEnum(32, Ammo45ACP.DU), 3}, - {ModItems.ammo_5mm.stackFromEnum(100, Ammo5mm.STOCK), ModItems.ingot_semtex, ModItems.ammo_5mm.stackFromEnum(100, Ammo5mm.EXPLOSIVE), 2}, - {ModItems.ammo_5mm.stackFromEnum(100, Ammo5mm.STOCK), U238.ingot(), ModItems.ammo_5mm.stackFromEnum(100, Ammo5mm.DU), 2}, - {ModItems.ammo_5mm.stackFromEnum(25, Ammo5mm.DU), STAR.ingot(), ModItems.ammo_5mm.stackFromEnum(25, Ammo5mm.STAR), 3}, - {ModItems.ammo_5mm.stackFromEnum(100, Ammo5mm.STOCK), ModItems.pellet_chlorophyte, ModItems.ammo_5mm.stackFromEnum(100, Ammo5mm.CHLOROPHYTE), 3}, + {ModItems.ammo_5mm.stackFromEnum(128, Ammo5mm.STOCK), ModItems.ingot_semtex, ModItems.ammo_5mm.stackFromEnum(128, Ammo5mm.EXPLOSIVE), 2}, + {ModItems.ammo_5mm.stackFromEnum(128, Ammo5mm.STOCK), U238.ingot(), ModItems.ammo_5mm.stackFromEnum(128, Ammo5mm.DU), 2}, + {ModItems.ammo_5mm.stackFromEnum(32, Ammo5mm.DU), STAR.ingot(), ModItems.ammo_5mm.stackFromEnum(32, Ammo5mm.STAR), 3}, + {ModItems.ammo_5mm.stackFromEnum(128, Ammo5mm.STOCK), ModItems.pellet_chlorophyte, ModItems.ammo_5mm.stackFromEnum(128, Ammo5mm.CHLOROPHYTE), 3}, - {ModItems.ammo_9mm.stackFromEnum(20, Ammo9mm.STOCK), DURA.ingot(), ModItems.ammo_9mm.stackFromEnum(20, Ammo9mm.AP), 2}, - {ModItems.ammo_9mm.stackFromEnum(20, Ammo9mm.STOCK), U238.ingot(), ModItems.ammo_9mm.stackFromEnum(20, Ammo9mm.DU), 2}, - {ModItems.ammo_9mm.stackFromEnum(10, Ammo9mm.STOCK), ModItems.pellet_chlorophyte, ModItems.ammo_9mm.stackFromEnum(10, Ammo9mm.CHLOROPHYTE), 3}, + {ModItems.ammo_9mm.stackFromEnum(32, Ammo9mm.STOCK), DURA.ingot(), ModItems.ammo_9mm.stackFromEnum(32, Ammo9mm.AP), 2}, + {ModItems.ammo_9mm.stackFromEnum(32, Ammo9mm.STOCK), U238.ingot(), ModItems.ammo_9mm.stackFromEnum(32, Ammo9mm.DU), 2}, + {ModItems.ammo_9mm.stackFromEnum(32, Ammo9mm.STOCK), ModItems.pellet_chlorophyte, ModItems.ammo_9mm.stackFromEnum(32, Ammo9mm.CHLOROPHYTE), 3}, - {ModItems.ammo_22lr.stackFromEnum(20, Ammo22LR.STOCK), DURA.ingot(), ModItems.ammo_22lr.stackFromEnum(20, Ammo22LR.AP), 2}, - {ModItems.ammo_22lr.stackFromEnum(10, Ammo22LR.STOCK), ModItems.pellet_chlorophyte, ModItems.ammo_22lr.stackFromEnum(10, Ammo22LR.CHLOROPHYTE), 3}, + {ModItems.ammo_22lr.stackFromEnum(32, Ammo22LR.STOCK), DURA.ingot(), ModItems.ammo_22lr.stackFromEnum(32, Ammo22LR.AP), 2}, + {ModItems.ammo_22lr.stackFromEnum(32, Ammo22LR.STOCK), ModItems.pellet_chlorophyte, ModItems.ammo_22lr.stackFromEnum(32, Ammo22LR.CHLOROPHYTE), 3}, - {ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.STOCK), P_RED.dust(), ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.INCENDIARY), 2}, - {ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.STOCK), P_WHITE.ingot(), ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.PHOSPHORUS), 2}, - {ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.STOCK), ModItems.ingot_semtex, ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.EXPLOSIVE), 2}, - {ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.STOCK), DURA.ingot(), ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.AP), 2}, - {ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.STOCK), U238.ingot(), ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.DU), 2}, - {ModItems.ammo_50bmg.stackFromEnum(10, Ammo50BMG.DU), STAR.ingot(), ModItems.ammo_50bmg.stackFromEnum(10, Ammo50BMG.STAR), 3}, - {ModItems.ammo_50bmg.stackFromEnum(10, Ammo50BMG.STOCK), ModItems.pellet_chlorophyte, ModItems.ammo_50bmg.stackFromEnum(10, Ammo50BMG.CHLOROPHYTE), 3}, - {ModItems.ammo_50bmg.stackFromEnum(100, Ammo50BMG.STOCK), ModItems.coin_maskman, ModItems.ammo_50bmg.stackFromEnum(100, Ammo50BMG.SLEEK), 4}, - {ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.STOCK), ModItems.pellet_flechette, ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.FLECHETTE), 2}, - {ModItems.ammo_50bmg.stackFromEnum(10, Ammo50BMG.FLECHETTE), ModItems.nugget_am_mix, ModItems.ammo_50bmg.stackFromEnum(10, Ammo50BMG.FLECHETTE_AM), 3}, - {ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.FLECHETTE), ModItems.powder_polonium, ModItems.ammo_50bmg.stackFromEnum(20, Ammo50BMG.FLECHETTE_PO), 3}, + {ModItems.ammo_50bmg.stackFromEnum(16, Ammo50BMG.STOCK), P_RED.dust(), ModItems.ammo_50bmg.stackFromEnum(16, Ammo50BMG.INCENDIARY), 2}, + {ModItems.ammo_50bmg.stackFromEnum(16, Ammo50BMG.STOCK), P_WHITE.ingot(), ModItems.ammo_50bmg.stackFromEnum(16, Ammo50BMG.PHOSPHORUS), 2}, + {ModItems.ammo_50bmg.stackFromEnum(16, Ammo50BMG.STOCK), ModItems.ingot_semtex, ModItems.ammo_50bmg.stackFromEnum(16, Ammo50BMG.EXPLOSIVE), 2}, + {ModItems.ammo_50bmg.stackFromEnum(16, Ammo50BMG.STOCK), DURA.ingot(), ModItems.ammo_50bmg.stackFromEnum(16, Ammo50BMG.AP), 2}, + {ModItems.ammo_50bmg.stackFromEnum(16, Ammo50BMG.STOCK), U238.ingot(), ModItems.ammo_50bmg.stackFromEnum(16, Ammo50BMG.DU), 2}, + {ModItems.ammo_50bmg.stackFromEnum(8, Ammo50BMG.DU), STAR.ingot(), ModItems.ammo_50bmg.stackFromEnum(8, Ammo50BMG.STAR), 3}, + {ModItems.ammo_50bmg.stackFromEnum(16, Ammo50BMG.STOCK), ModItems.pellet_chlorophyte, ModItems.ammo_50bmg.stackFromEnum(16, Ammo50BMG.CHLOROPHYTE), 3}, + {ModItems.ammo_50bmg.stackFromEnum(128, Ammo50BMG.STOCK), ModItems.coin_maskman, ModItems.ammo_50bmg.stackFromEnum(128, Ammo50BMG.SLEEK), 4}, + {ModItems.ammo_50bmg.stackFromEnum(16, Ammo50BMG.STOCK), ModItems.pellet_flechette, ModItems.ammo_50bmg.stackFromEnum(16, Ammo50BMG.FLECHETTE), 2}, + {ModItems.ammo_50bmg.stackFromEnum(16, Ammo50BMG.FLECHETTE), ModItems.nugget_am_mix, ModItems.ammo_50bmg.stackFromEnum(16, Ammo50BMG.FLECHETTE_AM), 3}, + {ModItems.ammo_50bmg.stackFromEnum(32, Ammo50BMG.FLECHETTE), ModItems.powder_polonium, ModItems.ammo_50bmg.stackFromEnum(32, Ammo50BMG.FLECHETTE_PO), 3}, - {ModItems.ammo_50ae.stackFromEnum(20, Ammo50AE.STOCK), DURA.ingot(), ModItems.ammo_50ae.stackFromEnum(20, Ammo50AE.AP), 2}, - {ModItems.ammo_50ae.stackFromEnum(20, Ammo50AE.STOCK), U238.ingot(), ModItems.ammo_50ae.stackFromEnum(20, Ammo50AE.DU), 2}, - {ModItems.ammo_50ae.stackFromEnum(10, Ammo50AE.DU), STAR.ingot(), ModItems.ammo_50ae.stackFromEnum(10, Ammo50AE.STAR), 3}, - {ModItems.ammo_50ae.stackFromEnum(10, Ammo50AE.STOCK), ModItems.pellet_chlorophyte, ModItems.ammo_50ae.stackFromEnum(10, Ammo50AE.CHLOROPHYTE), 3}, + {ModItems.ammo_50ae.stackFromEnum(32, Ammo50AE.STOCK), DURA.ingot(), ModItems.ammo_50ae.stackFromEnum(32, Ammo50AE.AP), 2}, + {ModItems.ammo_50ae.stackFromEnum(32, Ammo50AE.STOCK), U238.ingot(), ModItems.ammo_50ae.stackFromEnum(32, Ammo50AE.DU), 2}, + {ModItems.ammo_50ae.stackFromEnum(16, Ammo50AE.DU), STAR.ingot(), ModItems.ammo_50ae.stackFromEnum(16, Ammo50AE.STAR), 3}, + {ModItems.ammo_50ae.stackFromEnum(32, Ammo50AE.STOCK), ModItems.pellet_chlorophyte, ModItems.ammo_50ae.stackFromEnum(32, Ammo50AE.CHLOROPHYTE), 3}, - {ModItems.ammo_556.stackFromEnum(20, Ammo556mm.STOCK), P_WHITE.ingot(), ModItems.ammo_556.stackFromEnum(20, Ammo556mm.PHOSPHORUS), 2}, - {ModItems.ammo_556.stackFromEnum(20, Ammo556mm.STOCK), DURA.ingot(), ModItems.ammo_556.stackFromEnum(20, Ammo556mm.AP), 2}, - {ModItems.ammo_556.stackFromEnum(20, Ammo556mm.STOCK), U238.ingot(), ModItems.ammo_556.stackFromEnum(20, Ammo556mm.DU), 2}, - {ModItems.ammo_556.stackFromEnum(10, Ammo556mm.DU), STAR.ingot(), ModItems.ammo_556.stackFromEnum(10, Ammo556mm.STAR), 3}, - {ModItems.ammo_556.stackFromEnum(10, Ammo556mm.STOCK), ModItems.pellet_chlorophyte, ModItems.ammo_556.stackFromEnum(10, Ammo556mm.CHLOROPHYTE), 3}, - {ModItems.ammo_556.stackFromEnum(100, Ammo556mm.STOCK), ModItems.coin_maskman, ModItems.ammo_556.stackFromEnum(100, Ammo556mm.SLEEK), 4}, - {ModItems.ammo_556.stackFromEnum(20, Ammo556mm.STOCK), Items.redstone, ModItems.ammo_556.stackFromEnum(20, Ammo556mm.TRACER), 2}, - {ModItems.ammo_556.stackFromEnum(20, Ammo556mm.STOCK), ModItems.pellet_flechette, ModItems.ammo_556.stackFromEnum(20, Ammo556mm.FLECHETTE), 2}, - {ModItems.ammo_556.stackFromEnum(20, Ammo556mm.FLECHETTE), P_RED.dust(), ModItems.ammo_556.stackFromEnum(20, Ammo556mm.FLECHETTE_INCENDIARY), 2}, - {ModItems.ammo_556.stackFromEnum(20, Ammo556mm.FLECHETTE), P_WHITE.ingot(), ModItems.ammo_556.stackFromEnum(20, Ammo556mm.FLECHETTE_PHOSPHORUS), 2}, - {ModItems.ammo_556.stackFromEnum(20, Ammo556mm.FLECHETTE), U238.ingot(), ModItems.ammo_556.stackFromEnum(20, Ammo556mm.FLECHETTE_DU), 2}, - {ModItems.ammo_556.stackFromEnum(100, Ammo556mm.FLECHETTE), ModItems.coin_maskman, ModItems.ammo_556.stackFromEnum(100, Ammo556mm.FLECHETTE_SLEEK), 4}, - {ModItems.ammo_556.stackFromEnum(10, Ammo556mm.FLECHETTE), ModItems.pellet_chlorophyte, ModItems.ammo_556.stackFromEnum(10, Ammo556mm.FLECHETTE_CHLOROPHYTE), 3}, + {ModItems.ammo_556.stackFromEnum(32, Ammo556mm.STOCK), P_WHITE.ingot(), ModItems.ammo_556.stackFromEnum(32, Ammo556mm.PHOSPHORUS), 2}, + {ModItems.ammo_556.stackFromEnum(32, Ammo556mm.STOCK), DURA.ingot(), ModItems.ammo_556.stackFromEnum(32, Ammo556mm.AP), 2}, + {ModItems.ammo_556.stackFromEnum(32, Ammo556mm.STOCK), U238.ingot(), ModItems.ammo_556.stackFromEnum(32, Ammo556mm.DU), 2}, + {ModItems.ammo_556.stackFromEnum(16, Ammo556mm.DU), STAR.ingot(), ModItems.ammo_556.stackFromEnum(16, Ammo556mm.STAR), 3}, + {ModItems.ammo_556.stackFromEnum(32, Ammo556mm.STOCK), ModItems.pellet_chlorophyte, ModItems.ammo_556.stackFromEnum(32, Ammo556mm.CHLOROPHYTE), 3}, + {ModItems.ammo_556.stackFromEnum(128, Ammo556mm.STOCK), ModItems.coin_maskman, ModItems.ammo_556.stackFromEnum(128, Ammo556mm.SLEEK), 4}, + {ModItems.ammo_556.stackFromEnum(32, Ammo556mm.STOCK), Items.redstone, ModItems.ammo_556.stackFromEnum(32, Ammo556mm.TRACER), 2}, + {ModItems.ammo_556.stackFromEnum(32, Ammo556mm.STOCK), ModItems.pellet_flechette, ModItems.ammo_556.stackFromEnum(32, Ammo556mm.FLECHETTE), 2}, + {ModItems.ammo_556.stackFromEnum(32, Ammo556mm.FLECHETTE), P_RED.dust(), ModItems.ammo_556.stackFromEnum(32, Ammo556mm.FLECHETTE_INCENDIARY), 2}, + {ModItems.ammo_556.stackFromEnum(32, Ammo556mm.FLECHETTE), P_WHITE.ingot(), ModItems.ammo_556.stackFromEnum(32, Ammo556mm.FLECHETTE_PHOSPHORUS), 2}, + {ModItems.ammo_556.stackFromEnum(32, Ammo556mm.FLECHETTE), U238.ingot(), ModItems.ammo_556.stackFromEnum(32, Ammo556mm.FLECHETTE_DU), 2}, + {ModItems.ammo_556.stackFromEnum(100, Ammo556mm.FLECHETTE), ModItems.coin_maskman, ModItems.ammo_556.stackFromEnum(128, Ammo556mm.FLECHETTE_SLEEK), 4}, + {ModItems.ammo_556.stackFromEnum(32, Ammo556mm.FLECHETTE), ModItems.pellet_chlorophyte, ModItems.ammo_556.stackFromEnum(32, Ammo556mm.FLECHETTE_CHLOROPHYTE), 3}, - {ModItems.ammo_762.stackFromEnum(20, Ammo762NATO.STOCK), Items.redstone, ModItems.ammo_762.stackFromEnum(20, Ammo762NATO.TRACER), 2}, - {ModItems.ammo_762.stackFromEnum(20, Ammo762NATO.STOCK), DURA.ingot(), ModItems.ammo_762.stackFromEnum(20, Ammo762NATO.AP), 2}, - {ModItems.ammo_762.stackFromEnum(20, Ammo762NATO.STOCK), P_WHITE.ingot(), ModItems.ammo_762.stackFromEnum(20, Ammo762NATO.PHOSPHORUS), 2}, - {ModItems.ammo_762.stackFromEnum(10, Ammo762NATO.STOCK), U238.ingot(), ModItems.ammo_762.stackFromEnum(20, Ammo762NATO.DU), 2} + {ModItems.ammo_762.stackFromEnum(32, Ammo762NATO.STOCK), Items.redstone, ModItems.ammo_762.stackFromEnum(32, Ammo762NATO.TRACER), 2}, + {ModItems.ammo_762.stackFromEnum(32, Ammo762NATO.STOCK), DURA.ingot(), ModItems.ammo_762.stackFromEnum(32, Ammo762NATO.AP), 2}, + {ModItems.ammo_762.stackFromEnum(32, Ammo762NATO.STOCK), P_WHITE.ingot(), ModItems.ammo_762.stackFromEnum(32, Ammo762NATO.PHOSPHORUS), 2}, + {ModItems.ammo_762.stackFromEnum(32, Ammo762NATO.STOCK), U238.ingot(), ModItems.ammo_762.stackFromEnum(32, Ammo762NATO.DU), 2} }; for(Object[] objs : recs) { From a7d393e6631bf4b29011048d039828829a68cfab Mon Sep 17 00:00:00 2001 From: 70000hp <105080577+70000hp@users.noreply.github.com> Date: Tue, 29 Aug 2023 16:34:02 -0400 Subject: [PATCH 273/432] some things I forgot --- src/main/java/com/hbm/handler/BulletConfiguration.java | 2 +- .../com/hbm/inventory/recipes/anvil/AnvilRecipes.java | 8 ++++++-- src/main/java/com/hbm/lib/HbmCollection.java | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/hbm/handler/BulletConfiguration.java b/src/main/java/com/hbm/handler/BulletConfiguration.java index ba426102b..87163cdec 100644 --- a/src/main/java/com/hbm/handler/BulletConfiguration.java +++ b/src/main/java/com/hbm/handler/BulletConfiguration.java @@ -186,7 +186,7 @@ public class BulletConfiguration implements Cloneable { this.dmgMin *= 2F; this.dmgMax *= 2F; this.wear *= 0.5; - this.velocity *= 0.2; + this.velocity *= 0.3; this.doesRicochet = false; this.doesPenetrate = true; this.vPFX = "greendust"; diff --git a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java index 165631293..26eca9d7d 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -526,8 +526,12 @@ public class AnvilRecipes { constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(CU.plate()), new AnvilOutput(new ItemStack(ModItems.casing_buckshot))).setTier(1)); pullFromAssembler(new ComparableStack(ModItems.pellet_buckshot), 1); - pullFromAssembler(new ComparableStack(ModItems.pellet_cluster), 1); - pullFromAssembler(new ComparableStack(ModItems.pellet_chlorophyte), 1); + pullFromAssembler(new ComparableStack(ModItems.pellet_canister), 1); + + constructionRecipes.add(new AnvilConstructionRecipe( new AStack[]{ + new ComparableStack(ModItems.powder_chlorophyte, 1), + new OreDictStack(PB.nugget(), 12),}, + new AnvilOutput(new ItemStack(ModItems.pellet_chlorophyte, 2))).setTier(1)); Object[][] recs = new Object[][] { {ModItems.ammo_12gauge.stackFromEnum(12, Ammo12Gauge.STOCK), P_RED.dust(), ModItems.ammo_12gauge.stackFromEnum(12, Ammo12Gauge.INCENDIARY), 2}, diff --git a/src/main/java/com/hbm/lib/HbmCollection.java b/src/main/java/com/hbm/lib/HbmCollection.java index 06bcd4799..6c2e7df23 100644 --- a/src/main/java/com/hbm/lib/HbmCollection.java +++ b/src/main/java/com/hbm/lib/HbmCollection.java @@ -18,7 +18,7 @@ public class HbmCollection { public static final Set ExplosiveType = ImmutableSet.of(AmmoItemTrait.PRO_EXPLOSIVE, AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.CON_HEAVY_WEAR); public static final Set DUType = ImmutableSet.of(AmmoItemTrait.PRO_HEAVY_DAMAGE, AmmoItemTrait.NEU_HEAVY_METAL, AmmoItemTrait.CON_HEAVY_WEAR); public static final Set StarmetalType = ImmutableSet.of(AmmoItemTrait.PRO_HEAVY_DAMAGE, AmmoItemTrait.NEU_STARMETAL, AmmoItemTrait.CON_HEAVY_WEAR); - public static final Set ChlorophyteType = ImmutableSet.of(AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.PRO_WEAR, AmmoItemTrait.NEU_CHLOROPHYTE, AmmoItemTrait.NEU_HOMING, AmmoItemTrait.CON_PENETRATION); + public static final Set ChlorophyteType = ImmutableSet.of(AmmoItemTrait.PRO_DAMAGE, AmmoItemTrait.PRO_WEAR, AmmoItemTrait.PRO_PENETRATION, AmmoItemTrait.NEU_CHLOROPHYTE, AmmoItemTrait.NEU_HOMING, AmmoItemTrait.CON_SPEED); /// BULLET COLLECTIONS // SHOTGUNS From 07cf03b36576e76c2ab9fd87ff28d3ea1208b039 Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 30 Aug 2023 09:42:25 +0200 Subject: [PATCH 274/432] changelog + version bump --- changelog | 10 +++++++--- gradle.properties | 2 +- src/main/java/com/hbm/lib/RefStrings.java | 2 +- .../tileentity/machine/TileEntityPWRController.java | 3 +++ 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/changelog b/changelog index feecf7204..f8a8f7652 100644 --- a/changelog +++ b/changelog @@ -1,4 +1,8 @@ +## Changed +* Thorium salts can no longer be stored in normal tanks due to being corrosive +* Updated russian localization + ## Fixed -* Fixed PWR still operating as normal even when the structure is dissolved -* Fixed the new watz not giving the meltdown achievement -* Fixed serverside crash caused by conveyor cranes \ No newline at end of file +* Fixed PWR crashing servers instantly +* Fixed missing tank textures for sodium +* Fixed missing lang entry for hot heavy water \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index d57216f6b..444f62413 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4705 +mod_build_number=4707 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index aeebbd4c0..3d31d7c2a 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4705)"; + public static final String VERSION = "1.0.27 BETA (4707)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java index 5ef179413..8d1568b2d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java @@ -25,6 +25,8 @@ import com.hbm.util.EnumUtil; import com.hbm.util.fauxpointtwelve.BlockPos; import api.hbm.fluid.IFluidStandardTransceiver; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; @@ -506,6 +508,7 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG } @Override + @SideOnly(Side.CLIENT) public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIPWR(player.inventory, this); } From e0d13496cd59127af20d7094f3fb17da1f52cad8 Mon Sep 17 00:00:00 2001 From: 70000hp <105080577+70000hp@users.noreply.github.com> Date: Wed, 30 Aug 2023 12:28:26 -0400 Subject: [PATCH 275/432] Improved chloro rounds logic --- .../java/com/hbm/handler/BulletConfiguration.java | 3 ++- .../com/hbm/handler/guncfg/BulletConfigFactory.java | 12 ++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/hbm/handler/BulletConfiguration.java b/src/main/java/com/hbm/handler/BulletConfiguration.java index 87163cdec..aa1d73ca5 100644 --- a/src/main/java/com/hbm/handler/BulletConfiguration.java +++ b/src/main/java/com/hbm/handler/BulletConfiguration.java @@ -182,7 +182,8 @@ public class BulletConfiguration implements Cloneable { } public BulletConfiguration getChlorophyte() { - this.bntUpdate = BulletConfigFactory.getHomingBehavior(20, 360); + this.bntUpdate = BulletConfigFactory.getHomingBehavior(30, 180); + this.bntHurt = BulletConfigFactory.getPenHomingBehavior(); this.dmgMin *= 2F; this.dmgMax *= 2F; this.wear *= 0.5; diff --git a/src/main/java/com/hbm/handler/guncfg/BulletConfigFactory.java b/src/main/java/com/hbm/handler/guncfg/BulletConfigFactory.java index c4672568d..9e1e8bc13 100644 --- a/src/main/java/com/hbm/handler/guncfg/BulletConfigFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/BulletConfigFactory.java @@ -446,7 +446,7 @@ public class BulletConfigFactory { } public static IBulletUpdateBehaviorNT getHomingBehavior(final double range, final double angle) { - + IBulletUpdateBehaviorNT onUpdate = new IBulletUpdateBehaviorNT() { @Override @@ -465,7 +465,6 @@ public class BulletConfigFactory { Vec3 delta = Vec3.createVectorHelper(target.posX - bullet.posX, target.posY + target.height / 2 - bullet.posY, target.posZ - bullet.posZ); delta = delta.normalize(); - double vel = Vec3.createVectorHelper(bullet.motionX, bullet.motionY, bullet.motionZ).lengthVector(); bullet.motionX = delta.xCoord * vel; @@ -500,6 +499,10 @@ public class BulletConfigFactory { double deltaAngle = BobMathUtil.getCrossAngle(mot, delta); if(deltaAngle < targetAngle) { + //Checks if the bullet is not already inside the entity's bounding box, so it doesn't pick the same target + if(bullet.getConfig().doesPenetrate && bullet.worldObj.getEntitiesWithinAABB(EntityLivingBase.class, bullet.boundingBox.expand(2, 2, 2)) == null) { + continue; + } target = e; targetAngle = deltaAngle; } @@ -514,4 +517,9 @@ public class BulletConfigFactory { return onUpdate; } + /** Resets the bullet's target **/ + public static IBulletHurtBehaviorNT getPenHomingBehavior(){ + return (bullet, hit) -> bullet.getEntityData().setInteger("homingTarget", 0); + } + } From 2ff5096562656f083f73047dfdb0751f6fcb1cd8 Mon Sep 17 00:00:00 2001 From: Boblet Date: Thu, 31 Aug 2023 15:50:42 +0200 Subject: [PATCH 276/432] spiralpoint visualization, less console spam from pollution handler --- .../explosion/ExplosionNukeRayBatched.java | 17 ++++- .../handler/pollution/PollutionHandler.java | 7 +- src/main/java/com/hbm/main/ClientProxy.java | 9 +++ .../com/hbm/particle/ParticleDebugLine.java | 72 +++++++++++++++++++ 4 files changed, 102 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/hbm/particle/ParticleDebugLine.java diff --git a/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java b/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java index f66c5f047..f8cc562fe 100644 --- a/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java +++ b/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java @@ -6,10 +6,14 @@ import java.util.HashMap; import java.util.HashSet; import java.util.List; +import com.hbm.packet.AuxParticlePacketNT; +import com.hbm.packet.PacketDispatcher; import com.hbm.util.fauxpointtwelve.BlockPos; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.block.Block; import net.minecraft.init.Blocks; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.Vec3; import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.world.World; @@ -76,6 +80,8 @@ public class ExplosionNukeRayBatched { } public void collectTip(int count) { + + //count = Math.min(count, 10); int amountProcessed = 0; @@ -119,7 +125,16 @@ public class ExplosionNukeRayBatched { chunkCoords.add(chunkPos); } - if(res <= 0 || i + 1 >= this.length) { + if(res <= 0 || i + 1 >= this.length || i == length - 1) { + + /*NBTTagCompound fx = new NBTTagCompound(); + fx.setString("type", "debugline"); + fx.setDouble("mX", vec.xCoord * i); + fx.setDouble("mY", vec.yCoord * i); + fx.setDouble("mZ", vec.zCoord * i); + fx.setInteger("color", 0xff0000); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(fx, posX, posY, posZ), new TargetPoint(world.provider.dimensionId, posX, posY, posZ, 200));*/ + break; } } diff --git a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java index 6ddf72eec..4ff3b70c1 100644 --- a/src/main/java/com/hbm/handler/pollution/PollutionHandler.java +++ b/src/main/java/com/hbm/handler/pollution/PollutionHandler.java @@ -142,8 +142,11 @@ public class PollutionHandler { try { if(!pollutionFile.getParentFile().exists()) pollutionFile.getParentFile().mkdirs(); if(!pollutionFile.exists()) pollutionFile.createNewFile(); - NBTTagCompound data = perWorld.get(world).writeToNBT(); - CompressedStreamTools.writeCompressed(data, new FileOutputStream(pollutionFile)); + PollutionPerWorld ppw = perWorld.get(world); + if(ppw != null) { + NBTTagCompound data = ppw.writeToNBT(); + CompressedStreamTools.writeCompressed(data, new FileOutputStream(pollutionFile)); + } } catch(Exception ex) { System.out.println("Failed to write " + pollutionFile.getAbsolutePath()); ex.printStackTrace(); diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 4c469d776..49b3aae01 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -1833,6 +1833,15 @@ public class ClientProxy extends ServerProxy { Minecraft.getMinecraft().effectRenderer.addEffect(text); } + if("debugline".equals(type)) { + double mX = data.getDouble("mX"); + double mY = data.getDouble("mY"); + double mZ = data.getDouble("mZ"); + int color = data.getInteger("color"); + ParticleDebugLine text = new ParticleDebugLine(world, x, y, z, mX, mY, mZ, color); + Minecraft.getMinecraft().effectRenderer.addEffect(text); + } + if("network".equals(type)) { ParticleDebug debug = null; double mX = data.getDouble("mX"); diff --git a/src/main/java/com/hbm/particle/ParticleDebugLine.java b/src/main/java/com/hbm/particle/ParticleDebugLine.java new file mode 100644 index 000000000..5207e7658 --- /dev/null +++ b/src/main/java/com/hbm/particle/ParticleDebugLine.java @@ -0,0 +1,72 @@ +package com.hbm.particle; + +import org.lwjgl.opengl.GL11; + +import net.minecraft.client.particle.EntityFX; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.world.World; + +public class ParticleDebugLine extends EntityFX { + + int color; + + public ParticleDebugLine(World world, double x, double y, double z, double lx, double ly, double lz, int color) { + super(world, x, y, z, lx, ly, lz); + this.motionX = lx; + this.motionY = ly; + this.motionZ = lz; + this.color = color; + this.particleMaxAge = 60; + } + + @Override + public void onUpdate() { + this.prevPosX = this.posX; + this.prevPosY = this.posY; + this.prevPosZ = this.posZ; + + if(this.particleAge++ >= this.particleMaxAge) { + this.setDead(); + } + } + + @Override + public int getFXLayer() { + return 3; + } + + @Override + public void renderParticle(Tessellator tess, float interp, float x, float y, float z, float tx, float tz) { + + double pX = this.prevPosX + (this.posX - this.prevPosX) * (double) interp - interpPosX; + double pY = this.prevPosY + (this.posY - this.prevPosY) * (double) interp - interpPosY; + double pZ = this.prevPosZ + (this.posZ - this.prevPosZ) * (double) interp - interpPosZ; + + double mX = pX + motionX; + double mY = pY + motionY; + double mZ = pZ + motionZ; + + GL11.glPushMatrix(); + GL11.glDisable(GL11.GL_COLOR_MATERIAL); + GL11.glDisable(GL11.GL_TEXTURE_2D); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_POINT_SMOOTH); + GL11.glEnable(GL11.GL_BLEND); + GL11.glDisable(GL11.GL_DEPTH_TEST); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA,GL11.GL_ONE_MINUS_SRC_ALPHA); + + tess.startDrawing(GL11.GL_LINES); + tess.setBrightness((int) (240 - (240 * (this.particleAge + interp) / this.particleMaxAge))); + tess.setColorOpaque_I(color); + tess.addVertex(pX, pY, pZ); + tess.addVertex(mX, mY, mZ); + tess.draw(); + + GL11.glEnable(GL11.GL_COLOR_MATERIAL); + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glDisable(GL11.GL_POINT_SMOOTH); + GL11.glDisable(GL11.GL_BLEND); + GL11.glEnable(GL11.GL_DEPTH_TEST); + GL11.glPopMatrix(); + } +} From cb90b2973c5684883185307ccac547b4c7dce3a5 Mon Sep 17 00:00:00 2001 From: 70000hp <105080577+70000hp@users.noreply.github.com> Date: Thu, 31 Aug 2023 10:13:34 -0400 Subject: [PATCH 277/432] josh anims :3 --- .../hbm/handler/guncfg/Gun50BMGFactory.java | 22 +- .../item/weapon/ItemRenderWeaponAR15.java | 122 +- .../assets/hbm/models/weapons/ar15.obj | 15865 ++++++++-------- 3 files changed, 7910 insertions(+), 8099 deletions(-) diff --git a/src/main/java/com/hbm/handler/guncfg/Gun50BMGFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun50BMGFactory.java index f9e0a191b..5da9631d2 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun50BMGFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun50BMGFactory.java @@ -108,6 +108,7 @@ public class Gun50BMGFactory { config.firingMode = GunConfiguration.FIRE_AUTO; config.reloadDuration = 20; config.firingDuration = 0; + config.reloadSoundEnd = false; config.ammoCap = 50; config.reloadType = GunConfiguration.RELOAD_FULL; config.allowsInfinity = true; @@ -134,7 +135,26 @@ public class Gun50BMGFactory { config.config.add(BulletConfigSyncingUtil.BMG50_SLEEK); config.ejector = EJECTOR_BMG; - + + config.animations.put(AnimType.CYCLE, new BusAnimation() + .addBus("RECOIL", new BusAnimationSequence() + .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 25)) + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 75)) + ) + ); + config.animations.put(AnimType.RELOAD, new BusAnimation() + .addBus("TILT", new BusAnimationSequence() + .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 125)) + .addKeyframe(new BusAnimationKeyframe(1, 0, 0, 750)) + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 125)) + ) + .addBus("MAG", new BusAnimationSequence() + .addKeyframe(new BusAnimationKeyframe(0, 0, 1, 200)) + .addKeyframe(new BusAnimationKeyframe(1, 0, 1, 200)) + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 200)) + ) + ); + return config; } diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponAR15.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponAR15.java index 62d35a29d..27e348b32 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponAR15.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponAR15.java @@ -1,5 +1,7 @@ package com.hbm.render.item.weapon; +import com.hbm.render.anim.HbmAnimations; +import net.minecraftforge.client.model.IModelCustom; import org.lwjgl.opengl.GL11; import com.hbm.main.ResourceManager; @@ -32,62 +34,90 @@ public class ItemRenderWeaponAR15 implements IItemRenderer { @Override public void renderItem(ItemRenderType type, ItemStack item, Object... data) { - + GL11.glPushMatrix(); - + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.ar15_tex); - - switch(type) { - - case EQUIPPED_FIRST_PERSON: - - double s0 = 0.125D; - GL11.glRotated(25, 0, 0, 1); - GL11.glTranslated(1.0, 0.0, -0.5); - GL11.glRotated(80, 0, 1, 0); - GL11.glScaled(s0, s0, s0); - - break; - - case EQUIPPED: - double scale = 0.125D; - GL11.glScaled(scale, scale, scale); - GL11.glRotatef(20F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(10, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(15F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(4F, -2F, 5F); - - break; - - case ENTITY: + IModelCustom model = ResourceManager.ar15; - double s1 = 0.1D; - GL11.glScaled(s1, s1, s1); - - break; - - case INVENTORY: + switch (type) { - GL11.glEnable(GL11.GL_LIGHTING); - - double s = 0.75D; - GL11.glTranslated(6, 9, 0); - GL11.glRotated(-90, 0, 1, 0); - GL11.glRotated(-135, 1, 0, 0); - GL11.glScaled(s, s, -s); - - break; - - default: break; + case EQUIPPED_FIRST_PERSON: + + double s0 = 0.25D; + GL11.glRotated(25, 0, 0, 1); + GL11.glTranslated(1.25, 0, -0.25); + GL11.glRotated(-100, 0, 1, 0); + GL11.glScaled(s0, s0, s0); + + double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL"); + GL11.glRotated(recoil[0] * 2.5, 1, 0, 0); + GL11.glTranslated(0, 0, recoil[0]); + + + double[] tilt = HbmAnimations.getRelevantTransformation("TILT"); + GL11.glTranslated(0, tilt[0], 3); + GL11.glRotated(tilt[0] * -35, 0, 0, 1); + GL11.glTranslated(0, 0, -3); + + model.renderPart("main"); + + double[] mag = HbmAnimations.getRelevantTransformation("MAG"); + GL11.glPushMatrix(); + GL11.glTranslated(0, 0, 5); + GL11.glRotated(mag[0] * 60 * (mag[2] == 1 ? 2.5 : 1), -1, 0, 0); + GL11.glTranslated(0, 0, -5); + model.renderPart("mag"); + GL11.glPopMatrix(); + + break; + + case EQUIPPED: + + double scale = 0.25D; + GL11.glScaled(scale, scale, scale); + GL11.glRotatef(15F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(-170, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(-15F, 1.0F, 0.0F, 0.0F); + GL11.glTranslatef(-2F, -0.9F, -0.75F); + + break; + + case ENTITY: + + double s1 = 0.2D; + GL11.glScaled(s1, s1, s1); + GL11.glTranslated(0, 1, 0); + GL11.glRotatef(90, 0, 1, 0); + + break; + + case INVENTORY: + + GL11.glEnable(GL11.GL_LIGHTING); + + double s = 1.45D; + + GL11.glTranslated(6, 9, 0); + GL11.glRotated(90, 0, 1, 0); + GL11.glRotated(135, 1, 0, 0); + GL11.glScaled(s, s, -s); + + break; + + default: + break; + } + + if (type != ItemRenderType.EQUIPPED_FIRST_PERSON) { + model.renderAll(); } - GL11.glShadeModel(GL11.GL_SMOOTH); - ResourceManager.ar15.renderAll(); GL11.glShadeModel(GL11.GL_FLAT); - GL11.glPopMatrix(); } } diff --git a/src/main/resources/assets/hbm/models/weapons/ar15.obj b/src/main/resources/assets/hbm/models/weapons/ar15.obj index ccb6ad550..091d07aee 100644 --- a/src/main/resources/assets/hbm/models/weapons/ar15.obj +++ b/src/main/resources/assets/hbm/models/weapons/ar15.obj @@ -1,1794 +1,1707 @@ -# Blender v2.79 (sub 0) OBJ File: 'ar15.blend' +# Blender 3.6.1 # www.blender.org -o Mag -v -0.130136 2.873658 -1.302511 -v -0.130136 2.838598 -1.273999 -v -0.118132 2.826593 -1.273941 -v -0.082933 2.826456 -1.302281 -v -0.130136 2.814589 -1.273882 -v -0.130136 2.779253 -1.302052 -v -0.142140 2.826593 -1.273941 -v -0.177340 2.826456 -1.302281 -v -0.130136 2.909554 -2.720071 -v -0.040136 2.819556 -2.719633 -v -0.130136 2.729557 -2.719195 -v -0.220136 2.819556 -2.719633 -v -0.220136 2.824332 -1.738555 -v -0.130136 2.914331 -1.738993 -v -0.130136 2.734333 -1.738117 -v -0.040136 2.824332 -1.738555 -v 0.070075 2.964277 -1.293117 -v 0.070075 2.918879 -1.265522 -v 0.085603 2.903351 -1.265447 -v 0.131135 2.903217 -1.292820 -v 0.070075 2.887822 -1.265371 -v 0.070075 2.842158 -1.292523 -v 0.054546 2.903351 -1.265447 -v 0.009014 2.903218 -1.292820 -v 0.070075 3.012795 -2.698728 -v 0.186495 2.896376 -2.698161 -v 0.070075 2.779957 -2.697594 -v -0.046346 2.896376 -2.698161 -v -0.046346 2.901113 -1.725164 -v 0.070075 3.017532 -1.725731 -v 0.070075 2.784694 -1.724598 -v 0.186495 2.901113 -1.725164 -v 0.215413 2.799175 -2.697022 -v 0.215413 1.412339 -2.717431 -v 0.215413 1.413240 -2.778677 -v 0.215413 2.800076 -2.758268 -v 0.215413 1.395214 -1.553753 -v 0.215413 1.390708 -1.247522 -v 0.200031 0.789030 -1.253212 -v 0.200031 0.741453 -1.544326 -v 0.207611 0.254733 -1.182100 -v 0.207611 0.171899 -1.466945 -v 0.215413 -0.149166 -1.083426 -v 0.215413 -0.264245 -1.368191 -v 0.215413 -1.168349 -1.026934 -v 0.215413 -1.053270 -0.742170 -v 0.215413 -1.100854 -0.724209 -v 0.215413 -1.215933 -1.008973 -v -0.267178 2.799175 -2.697022 -v -0.267178 2.800076 -2.758268 -v -0.267178 1.413240 -2.778677 -v -0.267178 1.412339 -2.717431 -v -0.267178 1.395214 -1.553753 -v -0.252014 0.741454 -1.544326 -v -0.252014 0.789030 -1.253212 -v -0.267178 1.390708 -1.247522 -v -0.259486 0.171899 -1.466945 -v -0.259486 0.254733 -1.182100 -v -0.267178 -0.264245 -1.368191 -v -0.267178 -0.149166 -1.083426 -v -0.267178 -1.168349 -1.026934 -v -0.267178 -1.215933 -1.008973 -v -0.267178 -1.100854 -0.724209 -v -0.267178 -1.053270 -0.742170 -v 0.215413 2.777544 -1.227113 -v -0.267178 2.777544 -1.227113 -v 0.215413 -1.628665 -2.165990 -v -0.267178 -1.628665 -2.165990 -v -0.267178 -0.724561 -2.507246 -v 0.215413 -0.724561 -2.507246 -v -0.259486 -0.159440 -2.606327 -v 0.207611 -0.159440 -2.606327 -v -0.252014 0.551146 -2.708783 -v 0.200031 0.551146 -2.708783 -v 0.215413 -1.653234 -2.091076 -v -0.267178 -1.653234 -2.091076 -v -0.267178 -1.676250 -2.148029 -v 0.215413 -1.676250 -2.148029 -v 0.215413 -1.571169 -1.888006 -v 0.215413 -1.605717 -2.110279 -v 0.215413 -1.523651 -1.907209 -v 0.215413 -1.296767 -1.208995 -v -0.267178 -1.296767 -1.208995 -v -0.267178 -1.398925 -1.461787 -v 0.215413 -1.398925 -1.461787 -v -0.267178 -1.571169 -1.888006 -v -0.267178 -1.523651 -1.907209 -v -0.267178 -1.605650 -2.109037 -v -0.267178 -1.351341 -1.479748 -v -0.267178 -1.249182 -1.226956 -v -0.217019 -1.249182 -1.226956 -v -0.217019 -0.345078 -1.568213 -v -0.267178 -0.345078 -1.568213 -v -0.267178 -0.701545 -2.450294 -v -0.259486 -0.142873 -2.549358 -v -0.259486 0.040180 -1.919889 -v -0.267178 -0.447236 -1.821005 -v -0.259486 0.113714 -1.667024 -v -0.210937 0.113714 -1.667024 -v -0.252014 0.560662 -2.650560 -v -0.252014 0.665800 -2.007238 -v -0.252014 0.708035 -1.748809 -v -0.205029 0.708035 -1.748809 -v -0.267178 1.402380 -2.040703 -v -0.267178 1.398380 -1.768854 -v -0.217019 1.398380 -1.768854 -v -0.267178 2.782051 -1.533345 -v -0.217019 2.785216 -1.748445 -v -0.267178 2.785216 -1.748445 -v -0.267178 2.789217 -2.020294 -v 0.215413 -1.605650 -2.109037 -v 0.159762 -1.605650 -2.109037 -v 0.159762 -1.653234 -2.091076 -v 0.159762 -1.571169 -1.888006 -v 0.159762 -1.523585 -1.905967 -v 0.215413 -1.351341 -1.479748 -v 0.215413 -1.249182 -1.226956 -v 0.207611 -0.142873 -2.549358 -v 0.215413 -0.701545 -2.450294 -v 0.153746 -0.142873 -2.549358 -v 0.153746 -0.083803 -2.346230 -v 0.159762 -0.619481 -2.247224 -v 0.159762 -0.701545 -2.450294 -v 0.207611 0.040180 -1.919889 -v 0.207611 0.113714 -1.667024 -v 0.215413 -0.345078 -1.568213 -v 0.215413 -0.447236 -1.821005 -v 0.200031 0.560662 -2.650560 -v 0.147902 0.560662 -2.650560 -v 0.147902 0.594589 -2.442962 -v 0.200031 0.665800 -2.007238 -v 0.200031 0.708035 -1.748809 -v 0.159762 1.412339 -2.717431 -v 0.159762 1.409125 -2.499052 -v 0.215413 1.402380 -2.040703 -v 0.215413 1.398380 -1.768854 -v 0.215413 2.782051 -1.533345 -v 0.215413 2.785216 -1.748445 -v 0.215413 2.789217 -2.020294 -v 0.159761 2.795962 -2.478644 -v 0.159761 2.799175 -2.697022 -v 0.215413 2.791796 -2.195606 -v 0.215413 1.404960 -2.216014 -v 0.215413 1.409125 -2.499052 -v 0.215413 2.795962 -2.478644 -v 0.200031 0.638563 -2.173895 -v 0.200031 0.594589 -2.442962 -v 0.207611 -0.007241 -2.082958 -v 0.207611 -0.083803 -2.346230 -v 0.215413 -0.513117 -1.984027 -v 0.215413 -0.619481 -2.247224 -v 0.215413 -1.523585 -1.905967 -v 0.215413 -1.417221 -1.642770 -v 0.215413 -1.464806 -1.624809 -v -0.267178 2.791796 -2.195606 -v -0.267178 2.795962 -2.478644 -v -0.267178 1.409125 -2.499052 -v -0.267178 1.404960 -2.216014 -v -0.252014 0.594589 -2.442962 -v -0.252014 0.638563 -2.173895 -v -0.259486 -0.083803 -2.346230 -v -0.259486 -0.007241 -2.082958 -v -0.267178 -0.619481 -2.247224 -v -0.267178 -0.513117 -1.984027 -v -0.267178 -1.523585 -1.905967 -v -0.267178 -1.464806 -1.624809 -v -0.267178 -1.417221 -1.642770 -v -0.267178 -1.605717 -2.110279 -v -0.267178 2.936115 -2.193482 -v -0.267178 2.940280 -2.476520 -v -0.267178 2.933535 -2.018171 -v 0.215413 2.936115 -2.193482 -v 0.215413 2.940280 -2.476520 -v 0.215413 2.933535 -2.018171 -v 0.215413 2.943494 -2.694898 -v 0.215413 2.929535 -1.746321 -v 0.215413 2.926369 -1.531221 -v 0.215413 2.921863 -1.224990 -v -0.267178 2.943494 -2.694898 -v -0.267178 2.929535 -1.746321 -v -0.267178 2.926369 -1.531221 -v -0.267178 2.921863 -1.224990 -v -0.267178 2.944395 -2.756145 -v 0.215413 2.944395 -2.756145 -v -0.219901 2.795962 -2.478644 -v -0.219901 2.799175 -2.697022 -v -0.219901 1.412339 -2.717431 -v -0.219901 1.409125 -2.499052 -v -0.207729 0.560662 -2.650560 -v -0.207729 0.594589 -2.442962 -v -0.213727 -0.142873 -2.549358 -v -0.213727 -0.083803 -2.346230 -v -0.219901 -0.701545 -2.450294 -v -0.219901 -0.619481 -2.247224 -v -0.219901 -1.605650 -2.109037 -v -0.219901 -1.523585 -1.905967 -v -0.219901 -1.571169 -1.888006 -v -0.219901 -1.653234 -2.091076 -v -0.221792 -1.417221 -1.642770 -v -0.221792 -1.351341 -1.479748 -v -0.221792 -1.398925 -1.461787 -v -0.221792 -1.464806 -1.624809 -v -0.215557 -0.007241 -2.082958 -v -0.221792 -0.513117 -1.984027 -v -0.221792 -0.447236 -1.821005 -v -0.215557 0.040180 -1.919889 -v -0.209500 0.638563 -2.173895 -v -0.209500 0.665800 -2.007238 -v -0.221792 1.404960 -2.216014 -v -0.221792 1.402380 -2.040703 -v -0.221792 2.789217 -2.020294 -v -0.221792 2.791796 -2.195606 -v -0.217019 -1.168349 -1.026934 -v -0.217019 -1.215933 -1.008973 -v -0.217019 -1.296767 -1.208995 -v -0.217019 -0.264245 -1.368191 -v -0.210937 0.171899 -1.466945 -v -0.205029 0.741454 -1.544326 -v -0.217019 1.395214 -1.553753 -v -0.217019 2.782051 -1.533345 -v 0.159762 -1.249182 -1.226956 -v 0.159762 -1.296767 -1.208995 -v 0.159762 -1.215933 -1.008973 -v 0.159762 -1.168349 -1.026934 -v 0.153746 0.113714 -1.667024 -v 0.153746 0.171899 -1.466945 -v 0.159762 -0.264245 -1.368191 -v 0.159762 -0.345078 -1.568213 -v 0.147902 0.708035 -1.748809 -v 0.147902 0.741453 -1.544326 -v 0.159762 1.398380 -1.768854 -v 0.159762 1.395214 -1.553753 -v 0.159761 2.782051 -1.533345 -v 0.159761 2.785216 -1.748445 -v 0.159762 -1.417221 -1.642770 -v 0.159762 -1.464806 -1.624809 -v 0.159762 -1.398925 -1.461787 -v 0.159762 -1.351341 -1.479748 -v 0.153746 -0.007241 -2.082958 -v 0.153746 0.040180 -1.919889 -v 0.159762 -0.447236 -1.821005 -v 0.159762 -0.513117 -1.984027 -v 0.147902 0.638563 -2.173895 -v 0.147902 0.665800 -2.007238 -v 0.159762 1.404960 -2.216014 -v 0.159762 1.402380 -2.040703 -v 0.159761 2.789217 -2.020294 -v 0.159761 2.791796 -2.195606 -v 0.215413 -1.168416 -1.028176 -v -0.267178 -1.168416 -1.028176 -v -0.267178 -1.249248 -1.228198 -v 0.215413 -1.249248 -1.228198 -v 0.215413 -1.351407 -1.480990 -v -0.267178 -1.351407 -1.480990 -v -0.267178 -1.417288 -1.644012 -v 0.215413 -1.417288 -1.644012 -v 0.215413 2.800076 -2.758268 -v -0.267178 2.800076 -2.758268 -v -0.267178 2.944395 -2.756145 -v 0.215413 2.944395 -2.756145 -v 0.184787 2.799175 -2.697022 -v 0.189682 2.799606 -2.726298 -v 0.184787 1.412789 -2.748054 -v 0.184787 1.412339 -2.717431 -v -0.236552 2.799175 -2.697022 -v -0.236551 1.412339 -2.717431 -v -0.236551 1.412789 -2.748054 -v -0.241447 2.799606 -2.726298 -v 0.184787 2.777995 -1.257736 -v 0.184787 1.391158 -1.278145 -v -0.236551 1.391158 -1.278145 -v -0.236552 2.777995 -1.257736 -v -0.236551 1.395214 -1.553753 -v -0.236552 2.782051 -1.533345 -v -0.236552 2.785216 -1.748445 -v -0.236551 1.398380 -1.768854 -v -0.236551 1.402380 -2.040703 -v -0.236552 2.789217 -2.020294 -v 0.184787 2.782051 -1.533345 -v 0.184787 1.395214 -1.553753 -v 0.184787 2.785216 -1.748445 -v 0.184787 2.789217 -2.020294 -v 0.184787 1.402380 -2.040703 -v 0.184787 1.398380 -1.768854 -v 0.184787 2.791796 -2.195606 -v 0.184787 2.795962 -2.478644 -v 0.184787 1.409125 -2.499052 -v 0.184787 1.404960 -2.216014 -v -0.236552 2.791796 -2.195606 -v -0.236551 1.404960 -2.216014 -v -0.236551 1.409125 -2.499052 -v -0.236552 2.795962 -2.478644 -v -0.236552 2.936115 -2.193482 -v -0.236552 2.940280 -2.476520 -v -0.236552 2.933535 -2.018171 -v 0.184787 2.936115 -2.193482 -v 0.184787 2.940280 -2.476520 -v 0.184787 2.933535 -2.018171 -v 0.184787 2.943494 -2.694898 -v 0.184787 2.929535 -1.746321 -v 0.184787 2.926369 -1.531221 -v 0.184787 2.922313 -1.255613 -v -0.236552 2.943494 -2.694898 -v -0.236552 2.929535 -1.746321 -v -0.236552 2.926369 -1.531221 -v -0.236552 2.922313 -1.255613 -v -0.236552 2.944395 -2.756145 -v 0.184787 2.944395 -2.756145 -v 0.215413 2.799626 -2.727645 -v 0.215413 2.943944 -2.725522 -v -0.267178 2.943945 -2.725522 -v -0.267178 2.799626 -2.727645 -v -0.156794 3.000995 -2.500587 -v -0.156794 2.998746 -2.254960 -v -0.156794 3.002730 -2.690100 -v -0.175825 3.000995 -2.500587 -v -0.175825 3.002730 -2.690100 -v -0.156794 2.997354 -2.102820 -v -0.175825 2.997354 -2.102820 -v 0.105029 3.000995 -2.500587 -v 0.105029 3.002730 -2.690100 -v -0.175825 2.998746 -2.254960 -v 0.124060 3.002730 -2.690100 -v 0.124060 3.000995 -2.500587 -v 0.105029 2.998746 -2.254960 -v 0.124060 2.998746 -2.254960 -v 0.105029 2.997354 -2.102820 -v 0.124060 2.997354 -2.102820 -v 0.215413 2.799175 -2.697022 -v 0.215413 1.412339 -2.717431 -v 0.215413 1.413240 -2.778677 -v 0.215413 2.800076 -2.758268 -v 0.215413 1.395214 -1.553753 -v 0.215413 1.390708 -1.247522 -v 0.200031 0.789030 -1.253212 -v 0.200031 0.741453 -1.544326 -v 0.207611 0.254733 -1.182100 -v 0.207611 0.171899 -1.466945 -v 0.215413 -0.149166 -1.083426 -v 0.215413 -0.264245 -1.368191 -v 0.215413 -1.168349 -1.026934 -v 0.215413 -1.053270 -0.742170 -v -0.267178 2.799175 -2.697022 -v -0.267178 2.800076 -2.758268 -v -0.267178 1.413240 -2.778677 -v -0.267178 1.412339 -2.717431 -v -0.267178 1.395214 -1.553753 -v -0.252014 0.741454 -1.544326 -v -0.252014 0.789030 -1.253212 -v -0.267178 1.390708 -1.247522 -v -0.259486 0.171899 -1.466945 -v -0.259486 0.254733 -1.182100 -v -0.267178 -0.264245 -1.368191 -v -0.267178 -0.149166 -1.083426 -v -0.267178 -1.168349 -1.026934 -v -0.267178 -1.053270 -0.742170 -v 0.215413 2.777544 -1.227113 -v -0.267178 2.777544 -1.227113 -v 0.215413 -1.628665 -2.165990 -v -0.267178 -1.628665 -2.165990 -v -0.267178 -0.724561 -2.507246 -v 0.215413 -0.724561 -2.507246 -v -0.259486 -0.159440 -2.606327 -v 0.207611 -0.159440 -2.606327 -v -0.252014 0.551146 -2.708783 -v 0.200031 0.551146 -2.708783 -v -0.267178 -1.605650 -2.109037 -v -0.267178 -1.351341 -1.479748 -v -0.267178 -1.249182 -1.226956 -v -0.217019 -1.249182 -1.226956 -v -0.217019 -0.345078 -1.568213 -v -0.267178 -0.345078 -1.568213 -v -0.267178 -0.701545 -2.450294 -v -0.259486 -0.142873 -2.549358 -v -0.259486 0.040180 -1.919889 -v -0.267178 -0.447236 -1.821005 -v -0.259486 0.113714 -1.667024 -v -0.210937 0.113714 -1.667024 -v -0.252014 0.560662 -2.650560 -v -0.252014 0.665800 -2.007238 -v -0.252014 0.708035 -1.748809 -v -0.205029 0.708035 -1.748809 -v -0.267178 1.402380 -2.040703 -v -0.267178 1.398380 -1.768854 -v -0.217019 1.398380 -1.768854 -v -0.267178 2.782051 -1.533345 -v -0.217019 2.785216 -1.748445 -v -0.267178 2.785216 -1.748445 -v -0.267178 2.789217 -2.020294 -v 0.215413 -1.605650 -2.109037 -v 0.159762 -1.605650 -2.109037 -v 0.159762 -1.523585 -1.905967 -v 0.215413 -1.351341 -1.479748 -v 0.215413 -1.249182 -1.226956 -v 0.207611 -0.142873 -2.549358 -v 0.215413 -0.701545 -2.450294 -v 0.153746 -0.142873 -2.549358 -v 0.153746 -0.083803 -2.346230 -v 0.159762 -0.619481 -2.247224 -v 0.159762 -0.701545 -2.450294 -v 0.207611 0.040180 -1.919889 -v 0.207611 0.113714 -1.667024 -v 0.215413 -0.345078 -1.568213 -v 0.215413 -0.447236 -1.821005 -v 0.200031 0.560662 -2.650560 -v 0.147902 0.560662 -2.650560 -v 0.147902 0.594589 -2.442962 -v 0.200031 0.665800 -2.007238 -v 0.200031 0.708035 -1.748809 -v 0.159762 1.412339 -2.717431 -v 0.159762 1.409125 -2.499052 -v 0.215413 1.402380 -2.040703 -v 0.215413 1.398380 -1.768854 -v 0.215413 2.782051 -1.533345 -v 0.215413 2.785216 -1.748445 -v 0.215413 2.789217 -2.020294 -v 0.159761 2.795962 -2.478644 -v 0.159761 2.799175 -2.697022 -v 0.215413 2.791796 -2.195606 -v 0.215413 1.404960 -2.216014 -v 0.215413 1.409125 -2.499052 -v 0.215413 2.795962 -2.478644 -v 0.200031 0.638563 -2.173895 -v 0.200031 0.594589 -2.442962 -v 0.207611 -0.007241 -2.082958 -v 0.207611 -0.083803 -2.346230 -v 0.215413 -0.513117 -1.984027 -v 0.215413 -0.619481 -2.247224 -v 0.215413 -1.523585 -1.905967 -v 0.215413 -1.417221 -1.642770 -v -0.267178 2.791796 -2.195606 -v -0.267178 2.795962 -2.478644 -v -0.267178 1.409125 -2.499052 -v -0.267178 1.404960 -2.216014 -v -0.252014 0.594589 -2.442962 -v -0.252014 0.638563 -2.173895 -v -0.259486 -0.083803 -2.346230 -v -0.259486 -0.007241 -2.082958 -v -0.267178 -0.619481 -2.247224 -v -0.267178 -0.513117 -1.984027 -v -0.267178 -1.523585 -1.905967 -v -0.267178 -1.417221 -1.642770 -v 0.215413 2.921863 -1.224990 -v -0.267178 2.921863 -1.224990 -v -0.219901 2.795962 -2.478644 -v -0.219901 2.799175 -2.697022 -v -0.219901 1.412339 -2.717431 -v -0.219901 1.409125 -2.499052 -v -0.207729 0.560662 -2.650560 -v -0.207729 0.594589 -2.442962 -v -0.213727 -0.142873 -2.549358 -v -0.213727 -0.083803 -2.346230 -v -0.219901 -0.701545 -2.450294 -v -0.219901 -0.619481 -2.247224 -v -0.219901 -1.605650 -2.109037 -v -0.219901 -1.523585 -1.905967 -v -0.221792 -1.417221 -1.642770 -v -0.221792 -1.351341 -1.479748 -v -0.215557 -0.007241 -2.082958 -v -0.221792 -0.513117 -1.984027 -v -0.221792 -0.447236 -1.821005 -v -0.215557 0.040180 -1.919889 -v -0.209500 0.638563 -2.173895 -v -0.209500 0.665800 -2.007238 -v -0.221792 1.404960 -2.216014 -v -0.221792 1.402380 -2.040703 -v -0.221792 2.789217 -2.020294 -v -0.221792 2.791796 -2.195606 -v -0.217019 -1.168349 -1.026934 -v -0.217019 -0.264245 -1.368191 -v -0.210937 0.171899 -1.466945 -v -0.205029 0.741454 -1.544326 -v -0.217019 1.395214 -1.553753 -v -0.217019 2.782051 -1.533345 -v 0.159762 -1.249182 -1.226956 -v 0.159762 -1.168349 -1.026934 -v 0.153746 0.113714 -1.667024 -v 0.153746 0.171899 -1.466945 -v 0.159762 -0.264245 -1.368191 -v 0.159762 -0.345078 -1.568213 -v 0.147902 0.708035 -1.748809 -v 0.147902 0.741453 -1.544326 -v 0.159762 1.398380 -1.768854 -v 0.159762 1.395214 -1.553753 -v 0.159761 2.782051 -1.533345 -v 0.159761 2.785216 -1.748445 -v 0.159762 -1.417221 -1.642770 -v 0.159762 -1.351341 -1.479748 -v 0.153746 -0.007241 -2.082958 -v 0.153746 0.040180 -1.919889 -v 0.159762 -0.447236 -1.821005 -v 0.159762 -0.513117 -1.984027 -v 0.147902 0.638563 -2.173895 -v 0.147902 0.665800 -2.007238 -v 0.159762 1.404960 -2.216014 -v 0.159762 1.402380 -2.040703 -v 0.159761 2.789217 -2.020294 -v 0.159761 2.791796 -2.195606 -vt 0.008879 0.261663 -vt 0.020745 0.024611 -vt 0.026244 0.025163 -vt 0.113358 0.272155 -vt 0.133590 0.377540 -vt 0.106872 0.383764 -vt 0.134010 0.469169 -vt 0.107462 0.481450 -vt 0.138370 0.538729 -vt 0.111468 0.556512 -vt 0.132039 0.712997 -vt 0.160025 0.703450 -vt 0.133122 0.721233 -vt 0.180770 0.767756 -vt 0.168904 0.530703 -vt 0.186269 0.767203 -vt 0.273383 0.520211 -vt 0.293615 0.414826 -vt 0.300878 0.517451 -vt 0.266897 0.408602 -vt 0.294035 0.323197 -vt 0.267486 0.310916 -vt 0.298395 0.253638 -vt 0.292064 0.079369 -vt 0.320050 0.088917 -vt 0.318967 0.097153 -vt 0.485092 0.681372 -vt 0.402571 0.689617 -vt 0.402571 0.681372 -vt 0.402571 0.850275 -vt 0.397572 0.767754 -vt 0.402571 0.767754 -vt 0.372674 0.850275 -vt 0.347683 0.767754 -vt 0.372674 0.767754 -vt 0.152917 0.818907 -vt 0.145390 0.792366 -vt 0.152917 0.795909 -vt 0.619140 0.695924 -vt 0.596954 0.613403 -vt 0.619140 0.613403 -vt 0.484540 0.689617 -vt 0.476292 0.772139 -vt 0.476292 0.689617 -vt 0.184453 0.008236 -vt 0.190917 0.003557 -vt 0.189834 0.011793 -vt 0.249285 0.051091 -vt 0.274250 0.058642 -vt 0.273167 0.066878 -vt 0.161290 0.261792 -vt 0.169262 0.168278 -vt 0.166600 0.264248 -vt 0.225270 0.291388 -vt 0.252596 0.223363 -vt 0.248838 0.302289 -vt 0.160025 0.383705 -vt 0.165368 0.384950 -vt 0.224412 0.398705 -vt 0.248130 0.404230 -vt 0.163405 0.531255 -vt 0.229663 0.524602 -vt 0.254071 0.522151 -vt 0.290748 0.756711 -vt 0.318242 0.753951 -vt 0.247028 0.761102 -vt 0.271435 0.758651 -vt 0.024429 0.784130 -vt 0.030892 0.788810 -vt 0.025511 0.792366 -vt 0.160385 0.796005 -vt 0.167853 0.815364 -vt 0.160385 0.819002 -vt 0.089260 0.741275 -vt 0.114225 0.733724 -vt 0.090343 0.749511 -vt 0.001266 0.530574 -vt 0.009237 0.624088 -vt 0.003857 0.627645 -vt 0.663280 0.502867 -vt 0.684772 0.586248 -vt 0.665533 0.598848 -vt 0.065245 0.500979 -vt 0.092571 0.569003 -vt 0.068689 0.584790 -vt 0.000000 0.408661 -vt 0.006576 0.528118 -vt 0.662562 0.382162 -vt 0.682250 0.494190 -vt 0.064387 0.393662 -vt 0.088813 0.490077 -vt 0.003380 0.261111 -vt 0.666713 0.236424 -vt 0.681634 0.377804 -vt 0.069638 0.267765 -vt 0.088105 0.388136 -vt 0.140853 0.274916 -vt 0.130723 0.035655 -vt 0.158218 0.038416 -vt 0.094046 0.270216 -vt 0.087003 0.031264 -vt 0.111411 0.033715 -vt 0.686311 0.238476 -vt 0.685081 0.000000 -vt 0.704679 0.002052 -vt 0.071263 0.029684 -vt 0.028486 0.263632 -vt 0.045851 0.027132 -vt 0.049091 0.397225 -vt 0.024397 0.402978 -vt 0.050046 0.508009 -vt 0.025508 0.519360 -vt 0.053287 0.594970 -vt 0.028422 0.611407 -vt 0.048994 0.767892 -vt 0.074942 0.759692 -vt 0.050077 0.776128 -vt 0.231288 0.762682 -vt 0.188511 0.528734 -vt 0.213923 0.526182 -vt 0.209116 0.395141 -vt 0.184422 0.389389 -vt 0.210071 0.284357 -vt 0.185533 0.273006 -vt 0.213312 0.197396 -vt 0.209019 0.024474 -vt 0.234967 0.032675 -vt 0.233884 0.040911 -vt 0.145390 0.792366 -vt 0.137863 0.818907 -vt 0.137863 0.795909 -vt 0.620053 0.613403 -vt 0.596954 0.530882 -vt 0.620053 0.530882 -vt 0.233095 0.787293 -vt 0.205875 0.765234 -vt 0.248835 0.785713 -vt 0.073070 0.005073 -vt 0.047658 0.002521 -vt 0.088810 0.006654 -vt 0.028051 0.000552 -vt 0.113218 0.009104 -vt 0.132530 0.011044 -vt 0.160025 0.013805 -vt 0.188076 0.791814 -vt 0.207682 0.789845 -vt 0.273242 0.783262 -vt 0.292555 0.781322 -vt 0.320050 0.778562 -vt 0.182577 0.792366 -vt 0.022552 0.000000 -vt 0.642964 0.755419 -vt 0.644194 0.516943 -vt 0.662562 0.753367 -vt 0.624595 0.518994 -vt 0.639516 0.377615 -vt 0.620444 0.373257 -vt 0.640132 0.261229 -vt 0.621163 0.252552 -vt 0.642654 0.169171 -vt 0.152917 0.815364 -vt 0.160385 0.796005 -vt 0.160385 0.819002 -vt 0.274474 0.796005 -vt 0.267006 0.810828 -vt 0.267006 0.792366 -vt 0.791881 0.243520 -vt 0.810278 0.166681 -vt 0.807102 0.250503 -vt 0.791279 0.354307 -vt 0.806586 0.357822 -vt 0.796500 0.485332 -vt 0.812235 0.483702 -vt 0.814617 0.721776 -vt 0.830352 0.720146 -vt 0.190375 0.815018 -vt 0.197842 0.796005 -vt 0.197842 0.818657 -vt 0.705188 0.235458 -vt 0.727712 0.168979 -vt 0.723853 0.244048 -vt 0.704679 0.337400 -vt 0.723455 0.341735 -vt 0.710846 0.455309 -vt 0.730155 0.453332 -vt 0.747979 0.689798 -vt 0.244484 0.811776 -vt 0.235907 0.792366 -vt 0.244484 0.792366 -vt 0.182907 0.796005 -vt 0.190375 0.815018 -vt 0.182907 0.818657 -vt 0.748488 0.456317 -vt 0.771012 0.522795 -vt 0.752091 0.535250 -vt 0.747979 0.354375 -vt 0.767153 0.447727 -vt 0.754146 0.236466 -vt 0.766755 0.350040 -vt 0.773455 0.238443 -vt 0.771971 0.000000 -vt 0.791279 0.001977 -vt 0.259538 0.796005 -vt 0.267006 0.810828 -vt 0.259538 0.814467 -vt 0.830953 0.478256 -vt 0.849350 0.555095 -vt 0.833916 0.565226 -vt 0.830352 0.367469 -vt 0.846174 0.471274 -vt 0.835572 0.236444 -vt 0.845659 0.363955 -vt 0.851307 0.238074 -vt 0.853689 0.000000 -vt 0.869424 0.001631 -vt 0.938689 0.685553 -vt 0.929173 0.677304 -vt 0.938689 0.677304 -vt 0.917629 0.008245 -vt 0.927145 0.000000 -vt 0.927145 0.008245 -vt 0.207358 0.811776 -vt 0.216875 0.792366 -vt 0.216875 0.811776 -vt 0.915601 0.718231 -vt 0.906084 0.709982 -vt 0.915601 0.709982 -vt 0.283051 0.808186 -vt 0.292567 0.792366 -vt 0.292567 0.808186 -vt 0.894540 0.008245 -vt 0.904056 0.000000 -vt 0.904056 0.008245 -vt 0.892512 0.748989 -vt 0.882996 0.740740 -vt 0.892512 0.740740 -vt 0.871452 0.008245 -vt 0.880968 0.000000 -vt 0.880968 0.008245 -vt 0.197842 0.812072 -vt 0.207358 0.792366 -vt 0.207358 0.812072 -vt 0.614509 0.860967 -vt 0.596954 0.778446 -vt 0.614509 0.778446 -vt 0.614776 0.778446 -vt 0.596954 0.695924 -vt 0.614776 0.695924 -vt 0.581725 0.784464 -vt 0.596033 0.866985 -vt 0.581725 0.866985 -vt 0.869324 0.721776 -vt 0.861081 0.804298 -vt 0.861081 0.721776 -vt 0.484540 0.772139 -vt 0.476292 0.854660 -vt 0.476292 0.772139 -vt 0.259538 0.795909 -vt 0.252011 0.810828 -vt 0.252011 0.792366 -vt 0.175380 0.792366 -vt 0.167853 0.818561 -vt 0.167853 0.795909 -vt 0.182907 0.818561 -vt 0.175380 0.792366 -vt 0.182907 0.795909 -vt 0.852838 0.804298 -vt 0.861081 0.721776 -vt 0.861081 0.804298 -vt 0.252011 0.810828 -vt 0.244484 0.795909 -vt 0.252011 0.792366 -vt 0.093140 0.874888 -vt 0.101383 0.792366 -vt 0.101383 0.874888 -vt 0.700265 0.755419 -vt 0.692018 0.837940 -vt 0.692018 0.755419 -vt 0.581725 0.866985 -vt 0.557139 0.784464 -vt 0.581725 0.784464 -vt 0.485092 0.530882 -vt 0.485092 0.530882 -vt 0.485092 0.530882 -vt 0.485092 0.530882 -vt 0.485092 0.530882 -vt 0.485092 0.530882 -vt 0.485092 0.530882 -vt 0.485092 0.530882 -vt 0.557139 0.555468 -vt 0.485092 0.791728 -vt 0.485092 0.555468 -vt 0.620444 0.502578 -vt 0.595584 0.266107 -vt 0.620444 0.265441 -vt 0.535846 0.001360 -vt 0.510315 0.025353 -vt 0.510315 0.000676 -vt 0.551659 0.026461 -vt 0.551659 0.001784 -vt 0.535846 0.529522 -vt 0.510315 0.505529 -vt 0.535846 0.504845 -vt 0.551660 0.504421 -vt 0.551660 0.529098 -vt 0.490617 0.530734 -vt 0.510315 0.530206 -vt 0.576181 0.528441 -vt 0.576181 0.503764 -vt 0.595584 0.503244 -vt 0.595584 0.527921 -vt 0.620444 0.527255 -vt 0.490617 0.000148 -vt 0.576181 0.002441 -vt 0.595584 0.027638 -vt 0.595584 0.002961 -vt 0.620444 0.003627 -vt 0.476292 0.925939 -vt 0.403408 0.689618 -vt 0.475455 0.689618 -vt 0.485092 0.530882 -vt 0.557139 0.530882 -vt 0.487972 0.024754 -vt 0.485092 0.000000 -vt 0.487972 0.506128 -vt 0.490617 0.506057 -vt 0.397268 0.767754 -vt 0.372674 0.850275 -vt 0.372674 0.767754 -vt 0.305887 0.807001 -vt 0.301411 0.831587 -vt 0.300651 0.806674 -vt 0.704679 0.755419 -vt 0.701916 0.832703 -vt 0.701916 0.760656 -vt 0.618985 0.828899 -vt 0.614509 0.804313 -vt 0.619745 0.803986 -vt 0.704679 0.827177 -vt 0.709079 0.824292 -vt 0.704679 0.827177 -vt 0.910364 0.236260 -vt 0.915601 0.000000 -vt 0.915601 0.236260 -vt 0.065027 0.833726 -vt 0.051389 0.814098 -vt 0.065027 0.808186 -vt 0.620303 0.695924 -vt 0.617540 0.701161 -vt 0.614776 0.695924 -vt 0.222112 0.810188 -vt 0.216875 0.829894 -vt 0.216875 0.810188 -vt 0.689255 0.760656 -vt 0.664385 0.755419 -vt 0.692018 0.755419 -vt 0.617540 0.773209 -vt 0.614776 0.778446 -vt 0.065027 0.853432 -vt 0.051389 0.836254 -vt 0.003254 0.809576 -vt 0.018875 0.792366 -vt 0.018875 0.812072 -vt 0.212595 0.811776 -vt 0.207358 0.817303 -vt 0.207358 0.811776 -vt 0.619746 0.778446 -vt 0.614509 0.803986 -vt 0.614509 0.778446 -vt 0.241144 0.792366 -vt 0.235907 0.811776 -vt 0.787200 0.792098 -vt 0.790305 0.776917 -vt 0.790305 0.796315 -vt 0.620303 0.778446 -vt 0.037751 0.809544 -vt 0.051389 0.792366 -vt 0.051389 0.812072 -vt 0.689255 0.832703 -vt 0.692018 0.837940 -vt 0.620444 0.832703 -vt 0.644975 0.837940 -vt 0.620444 0.837940 -vt 0.485092 0.530882 -vt 0.290177 0.815715 -vt 0.295414 0.810188 -vt 0.295414 0.815715 -vt 0.787200 0.827177 -vt 0.310167 0.817907 -vt 0.315404 0.792366 -vt 0.315404 0.817907 -vt 0.644975 0.832703 -vt 0.664385 0.837940 -vt 0.003254 0.845457 -vt 0.018875 0.837612 -vt 0.018875 0.853432 -vt 0.344919 0.772991 -vt 0.320049 0.767754 -vt 0.347683 0.767754 -vt 0.644975 0.760656 -vt 0.620444 0.755419 -vt 0.644975 0.755419 -vt 0.300651 0.810188 -vt 0.295414 0.826008 -vt 0.295414 0.810188 -vt 0.226391 0.834451 -vt 0.231628 0.809921 -vt 0.231628 0.834451 -vt 0.664385 0.760656 -vt 0.344919 0.845038 -vt 0.347683 0.850275 -vt 0.320049 0.850275 -vt 0.789964 0.691775 -vt 0.787200 0.774296 -vt 0.787200 0.691775 -vt 0.287330 0.808186 -vt 0.887275 0.236260 -vt 0.892512 0.000000 -vt 0.892512 0.236260 -vt 0.202121 0.812072 -vt 0.288288 0.808186 -vt 0.283051 0.832716 -vt 0.283051 0.808186 -vt 0.787200 0.824414 -vt 0.787200 0.827177 -vt 0.933452 0.236260 -vt 0.938689 0.000000 -vt 0.938689 0.236260 -vt 0.211638 0.811776 -vt 0.000000 0.809576 -vt 0.003254 0.792481 -vt 0.000000 0.831733 -vt 0.003254 0.831733 -vt 0.018875 0.853317 -vt 0.022130 0.836222 -vt 0.022130 0.853317 -vt 0.018875 0.836222 -vt 0.022130 0.814065 -vt 0.018875 0.814065 -vt 0.022130 0.800341 -vt 0.000000 0.845457 -vt 0.790305 0.814896 -vt 0.787470 0.800718 -vt 0.790305 0.796315 -vt 0.037751 0.831700 -vt 0.051389 0.837612 -vt 0.037751 0.853432 -vt 0.037751 0.833726 -vt 0.051389 0.800375 -vt 0.065027 0.792366 -vt 0.037751 0.808186 -vt 0.037751 0.845424 -vt 0.051389 0.853432 -vt 0.307332 0.823587 -vt 0.310167 0.809409 -vt 0.310167 0.827990 -vt 0.037751 0.792366 -vt 0.318509 0.811765 -vt 0.315404 0.796584 -vt 0.318509 0.792366 -vt 0.283051 0.792366 -vt 0.274474 0.809921 -vt 0.274474 0.792366 -vt 0.282234 0.809921 -vt 0.274474 0.824228 -vt 0.274474 0.809921 -vt 0.310167 0.806674 -vt 0.300651 0.792366 -vt 0.310167 0.792366 -vt 0.300651 0.792366 -vt 0.292567 0.810188 -vt 0.292567 0.792366 -vt 0.216875 0.792366 -vt 0.226391 0.810188 -vt 0.216875 0.810188 -vt 0.869424 0.711645 -vt 0.853990 0.721776 -vt 0.791279 0.679320 -vt 0.772358 0.691775 -vt 0.940771 0.763658 -vt 0.948855 0.755412 -vt 0.948855 0.763658 -vt 0.959020 0.008249 -vt 0.950936 0.000000 -vt 0.959020 0.000000 -vt 0.982377 0.730012 -vt 0.990137 0.721766 -vt 0.990137 0.730012 -vt 1.000000 0.008249 -vt 0.992239 0.000000 -vt 1.000000 0.000000 -vt 0.980275 0.008249 -vt 0.971698 0.000000 -vt 0.980275 0.000000 -vt 0.708791 0.156525 -vt 0.747979 0.012455 -vt 0.794844 0.156550 -vt 0.830352 0.010131 -vt 0.623416 0.156571 -vt 0.662562 0.012600 -vt 0.188447 0.180960 -vt 0.073859 0.751456 -vt 0.113143 0.725488 -vt 0.704679 0.742819 -vt 0.685441 0.755419 -vt 0.029809 0.780574 -vt 0.961070 0.700006 -vt 0.969648 0.691761 -vt 0.969648 0.700006 -vt 0.228713 0.207577 -vt 0.163882 0.164721 -vt 0.402571 0.000000 -vt 0.320050 0.008249 -vt 0.320050 0.000000 -vt 0.271492 0.235855 -vt 0.158942 0.695214 -vt 0.226391 0.792366 -vt 0.235907 0.809921 -vt 0.226391 0.809921 -vt 0.782801 0.824292 -vt 0.709916 0.691775 -vt 0.781963 0.691775 -vt 0.293147 0.071133 -vt 0.485092 0.689617 -vt 0.397572 0.850275 -vt 0.347683 0.850275 -vt 0.145390 0.815364 -vt 0.596954 0.695924 -vt 0.484540 0.772139 -vt 0.185536 0.000000 -vt 0.250368 0.042855 -vt 0.167853 0.792366 -vt 0.005344 0.407416 -vt 0.053898 0.266184 -vt 0.210101 0.016238 -vt 0.145391 0.815364 -vt 0.596954 0.613403 -vt 0.152917 0.792366 -vt 0.274474 0.814467 -vt 0.190375 0.792366 -vt 0.728671 0.691775 -vt 0.190375 0.792366 -vt 0.267006 0.792366 -vt 0.929173 0.685553 -vt 0.917629 0.000000 -vt 0.207358 0.792366 -vt 0.906084 0.718231 -vt 0.283051 0.792366 -vt 0.894540 0.000000 -vt 0.882996 0.748989 -vt 0.871452 0.000000 -vt 0.197842 0.792366 -vt 0.596954 0.860967 -vt 0.596954 0.778446 -vt 0.596033 0.784464 -vt 0.869324 0.804298 -vt 0.484540 0.854660 -vt 0.259538 0.814371 -vt 0.175380 0.815018 -vt 0.175380 0.815018 -vt 0.852838 0.721776 -vt 0.244484 0.814371 -vt 0.093140 0.792366 -vt 0.700265 0.837940 -vt 0.557139 0.866985 -vt 0.557139 0.791728 -vt 0.535846 0.026037 -vt 0.490617 0.024825 -vt 0.576181 0.027118 -vt 0.620444 0.028304 -vt 0.402571 0.925939 -vt 0.397268 0.850275 -vt 0.305811 0.831587 -vt 0.704679 0.837940 -vt 0.614585 0.828899 -vt 0.704679 0.824414 -vt 0.910364 0.000000 -vt 0.620303 0.701161 -vt 0.222112 0.829894 -vt 0.051389 0.853349 -vt 0.212595 0.817303 -vt 0.619746 0.803986 -vt 0.241144 0.811776 -vt 0.788376 0.774296 -vt 0.620303 0.773209 -vt 0.037751 0.792449 -vt 0.485092 0.530882 -vt 0.290177 0.810188 -vt 0.310167 0.792366 -vt 0.664385 0.832703 -vt 0.320049 0.772991 -vt 0.620444 0.760656 -vt 0.300651 0.826008 -vt 0.226391 0.809921 -vt 0.320049 0.845038 -vt 0.789964 0.774296 -vt 0.287330 0.792366 -vt 0.887275 0.000000 -vt 0.202121 0.792366 -vt 0.288288 0.832716 -vt 0.933452 0.000000 -vt 0.211638 0.792366 -vt 0.000000 0.792481 -vt 0.018875 0.800341 -vt 0.788543 0.817632 -vt 0.308405 0.806674 -vt 0.316580 0.814385 -vt 0.283051 0.809921 -vt 0.282234 0.824228 -vt 0.300651 0.806674 -vt 0.300651 0.810188 -vt 0.226391 0.792366 -vt 0.940771 0.755412 -vt 0.950936 0.008249 -vt 0.982377 0.721766 -vt 0.992239 0.008249 -vt 0.971698 0.008249 -vt 0.729058 0.000000 -vt 0.814918 0.000000 -vt 0.643324 0.000000 -vt 0.961070 0.691761 -vt 0.402571 0.008249 -vt 0.235907 0.792366 -vt 0.127497 0.811550 -vt 0.123116 0.818581 -vt 0.123116 0.807181 -vt 0.127497 0.814449 -vt 0.134517 0.818552 -vt 0.130396 0.811543 -vt 0.130396 0.814442 -vt 0.134517 0.807151 -vt 0.101383 0.814099 -vt 0.123116 0.792429 -vt 0.123116 0.814162 -vt 0.837444 0.761082 -vt 0.852838 0.849638 -vt 0.837444 0.849557 -vt 0.822059 0.761163 -vt 0.822059 0.849638 -vt 0.806673 0.761082 -vt 0.806673 0.849557 -vt 0.791279 0.849638 -vt 0.555515 0.792251 -vt 0.540125 0.831298 -vt 0.540125 0.791728 -vt 0.829377 0.721819 -vt 0.814741 0.721819 -vt 0.524736 0.792251 -vt 0.123116 0.807113 -vt 0.132491 0.801514 -vt 0.137863 0.807151 -vt 0.132491 0.797763 -vt 0.137863 0.792404 -vt 0.128740 0.797754 -vt 0.123116 0.792366 -vt 0.065027 0.820479 -vt 0.093140 0.792447 -vt 0.093140 0.820560 -vt 0.577041 0.657568 -vt 0.596954 0.569926 -vt 0.596954 0.657673 -vt 0.557139 0.569926 -vt 0.557139 0.657673 -vt 0.577053 0.784359 -vt 0.596954 0.696717 -vt 0.596954 0.784464 -vt 0.557139 0.696717 -vt 0.557139 0.784464 -vt 0.524736 0.801194 -vt 0.485092 0.811635 -vt 0.485768 0.791728 -vt 0.566606 0.530937 -vt 0.577041 0.569822 -vt 0.577053 0.696612 -vt 0.587488 0.657728 -vt 0.524381 0.811635 -vt 0.485768 0.831543 -vt 0.403905 0.455114 -vt 0.485092 0.524709 -vt 0.402571 0.524709 -vt 0.485092 0.024594 -vt 0.402571 0.260929 -vt 0.402571 0.024594 -vt 0.405201 0.363486 -vt 0.483777 0.455114 -vt 0.402571 0.008249 -vt 0.320050 0.164983 -vt 0.320050 0.008249 -vt 0.485092 0.260929 -vt 0.402571 0.164983 -vt 0.321384 0.262078 -vt 0.401256 0.262078 -vt 0.322680 0.383997 -vt 0.402571 0.531494 -vt 0.320050 0.531494 -vt 0.961070 0.691761 -vt 0.969648 0.535097 -vt 0.969648 0.691761 -vt 0.968332 0.456142 -vt 0.961070 0.535097 -vt 0.960031 0.456142 -vt 0.967054 0.354200 -vt 0.961070 0.236335 -vt 0.959020 0.354200 -vt 0.969647 0.000000 -vt 0.961070 0.000000 -vt 0.320050 0.767754 -vt 0.485092 0.000000 -vt 0.402571 0.000000 -vt 0.980275 0.164984 -vt 0.971698 0.008249 -vt 0.980275 0.008249 -vt 0.978959 0.240089 -vt 0.971698 0.164984 -vt 0.977682 0.337774 -vt 0.970658 0.240089 -vt 0.971698 0.449293 -vt 0.969647 0.337774 -vt 0.971698 0.685554 -vt 0.980275 0.449293 -vt 0.980275 0.685554 -vt 0.990137 0.236335 -vt 0.982376 0.000000 -vt 0.990137 0.000000 -vt 0.992239 0.718231 -vt 1.000000 0.481971 -vt 1.000000 0.718231 -vt 0.997407 0.356149 -vt 0.992239 0.481971 -vt 0.990137 0.356149 -vt 0.987544 0.367330 -vt 0.982376 0.236335 -vt 0.981310 0.478117 -vt 0.988822 0.478117 -vt 0.991173 0.248831 -vt 0.998685 0.248831 -vt 0.982377 0.565103 -vt 0.990137 0.565103 -vt 0.992239 0.164983 -vt 1.000000 0.164983 -vt 0.992239 0.008249 -vt 1.000000 0.008249 -vt 0.982377 0.721766 -vt 0.990137 0.721766 -vt 0.959020 0.164983 -vt 0.950936 0.008249 -vt 0.959020 0.008249 -vt 0.957705 0.257059 -vt 0.950936 0.164983 -vt 0.956427 0.373445 -vt 0.949880 0.257059 -vt 0.950936 0.512729 -vt 0.948855 0.373445 -vt 0.950936 0.748989 -vt 0.959020 0.512729 -vt 0.959020 0.748989 -vt 0.948855 0.236335 -vt 0.940770 0.000000 -vt 0.948855 0.000000 -vt 0.946262 0.382053 -vt 0.940770 0.236335 -vt 0.939715 0.502760 -vt 0.947539 0.502760 -vt 0.940770 0.598749 -vt 0.948855 0.598749 -vt 0.940771 0.755412 -vt 0.948855 0.755412 -vt 0.936059 0.347780 -vt 0.929173 0.236260 -vt 0.938689 0.236260 -vt 0.938689 0.000000 -vt 0.928144 0.445465 -vt 0.927145 0.347780 -vt 0.937355 0.445465 -vt 0.929173 0.520570 -vt 0.925811 0.243865 -vt 0.917629 0.164909 -vt 0.927145 0.164909 -vt 0.927145 0.700006 -vt 0.917629 0.463671 -vt 0.927145 0.463671 -vt 0.924515 0.345806 -vt 0.916600 0.243865 -vt 0.912970 0.362082 -vt 0.905056 0.469401 -vt 0.904056 0.362082 -vt 0.906084 0.236260 -vt 0.915601 0.236260 -vt 0.915601 0.000000 -vt 0.914266 0.469401 -vt 0.906084 0.553248 -vt 0.904056 0.730011 -vt 0.894540 0.493676 -vt 0.904056 0.493676 -vt 0.901426 0.362682 -vt 0.893512 0.251894 -vt 0.902722 0.251894 -vt 0.894540 0.164908 -vt 0.904056 0.164908 -vt 0.882996 0.236260 -vt 0.892512 0.000000 -vt 0.892512 0.236260 -vt 0.889882 0.375544 -vt 0.881967 0.491931 -vt 0.880968 0.375544 -vt 0.891178 0.491931 -vt 0.882996 0.584006 -vt 0.879634 0.260898 -vt 0.871452 0.164909 -vt 0.880968 0.164909 -vt 0.878338 0.381605 -vt 0.870423 0.260898 -vt 0.871452 0.527323 -vt 0.880968 0.527323 -vt 0.880968 0.763658 -vt 0.880968 0.008245 -vt 0.892512 0.740740 -vt 0.892512 0.584006 -vt 0.904056 0.008245 -vt 0.915601 0.709982 -vt 0.915601 0.553248 -vt 0.927145 0.008245 -vt 0.938689 0.677304 -vt 0.938689 0.520570 -vt 0.402571 0.681372 -vt 0.101383 0.792366 -vt 0.852838 0.761163 -vt 0.791279 0.761163 -vt 0.548197 0.831572 -vt 0.837446 0.721776 -vt 0.806671 0.721776 -vt 0.532054 0.831572 -vt 0.128740 0.801504 -vt 0.065027 0.792366 -vt 0.577044 0.530882 -vt 0.577050 0.657673 -vt 0.524736 0.822076 -vt 0.482499 0.363486 -vt 0.399978 0.383997 -vt 0.969647 0.236335 -vt 0.402571 0.767754 -vt 0.980275 0.367330 -vt 0.938689 0.382053 -vt 0.929173 0.000000 -vt 0.917629 0.700006 -vt 0.915601 0.345806 -vt 0.906084 0.000000 -vt 0.894540 0.730011 -vt 0.892512 0.362682 -vt 0.882996 0.000000 -vt 0.869424 0.381605 -vt 0.871452 0.763658 -vt 0.871452 0.008245 -vt 0.882996 0.740740 -vt 0.894540 0.008245 -vt 0.906084 0.709982 -vt 0.917629 0.008245 -vt 0.929173 0.677304 -vt 0.485092 0.681372 -vn 1.0000 0.0000 0.0000 -vn 0.9997 -0.0235 0.0038 -vn 0.9999 0.0128 -0.0037 -vn 0.9999 0.0131 -0.0049 -vn 0.9999 0.0139 -0.0032 -vn 0.9999 0.0154 -0.0060 -vn 0.9998 0.0164 -0.0066 -vn -1.0000 -0.0000 0.0000 -vn -0.9997 -0.0252 -0.0004 -vn -0.9999 0.0137 -0.0022 -vn -0.9999 0.0149 -0.0025 -vn -0.9998 0.0171 -0.0043 -vn -0.9998 0.0178 -0.0052 -vn -0.9998 0.0172 -0.0062 -vn 0.0000 0.3531 0.9356 -vn 0.0000 -0.9272 0.3747 -vn 0.0000 -0.3747 -0.9272 -vn -0.9999 0.0123 -0.0035 -vn -0.9999 0.0164 -0.0046 -vn -0.9999 0.0131 -0.0038 -vn -0.9999 0.0158 -0.0046 -vn -0.9999 0.0154 -0.0056 -vn -0.9999 0.0104 -0.0017 -vn -0.9999 0.0123 -0.0020 -vn -0.9999 0.0133 -0.0022 -vn -0.9998 -0.0176 -0.0003 -vn -0.9998 -0.0220 -0.0003 -vn 0.9999 0.0129 -0.0052 -vn 0.9999 0.0115 -0.0084 -vn 0.9998 0.0162 -0.0061 -vn 0.9999 0.0094 -0.0038 -vn 0.9999 0.0091 -0.0066 -vn 0.9999 0.0126 -0.0049 -vn 0.9999 0.0138 -0.0054 -vn 0.9999 0.0148 -0.0060 -vn 0.9999 0.0102 -0.0030 -vn 0.9999 0.0106 -0.0037 -vn 1.0000 0.0080 -0.0023 -vn 1.0000 0.0086 -0.0020 -vn 0.9999 0.0116 -0.0034 -vn 0.9999 0.0120 -0.0044 -vn 0.9999 0.0126 -0.0029 -vn 0.9998 -0.0179 -0.0003 -vn 0.9999 -0.0137 0.0022 -vn 0.9998 -0.0207 0.0034 -vn 0.9998 -0.0187 0.0031 -vn 0.9999 0.0107 -0.0031 -vn 0.9999 0.0110 -0.0040 -vn 0.9999 0.0136 -0.0055 -vn -0.9998 -0.0198 -0.0003 -vn -0.9999 0.0113 -0.0018 -vn -0.9999 0.0137 -0.0035 -vn -0.9999 0.0144 -0.0042 -vn -0.9999 0.0140 -0.0051 -vn -1.0000 -0.0015 -0.0017 -vn -1.0000 -0.0012 0.0020 -vn 1.0000 -0.0008 -0.0022 -vn 1.0000 -0.0010 0.0023 -vn 1.0000 -0.0004 0.0023 -vn 1.0000 -0.0023 -0.0010 -vn -1.0000 -0.0009 -0.0023 -vn -0.9999 -0.0150 -0.0002 -vn -1.0000 0.0086 -0.0014 -vn -0.9999 0.0109 -0.0032 -vn -0.9999 0.0135 -0.0042 -vn -0.9999 0.0114 -0.0031 -vn -0.9999 0.0149 -0.0046 -vn -0.9999 0.0121 -0.0035 -vn -1.0000 0.0095 -0.0015 -vn -0.9999 -0.0167 -0.0002 -vn -0.9999 0.0124 -0.0032 -vn -0.9999 0.0161 -0.0052 -vn -0.9999 0.0101 -0.0017 -vn -0.9998 -0.0183 -0.0003 -vn 0.0000 -0.9999 -0.0147 -vn 0.9999 0.0113 -0.0045 -vn 0.9999 0.0108 -0.0079 -vn 0.9999 0.0153 -0.0057 -vn 1.0000 0.0095 -0.0027 -vn 0.9999 0.0102 -0.0024 -vn 0.9998 -0.0171 0.0028 -vn 0.9999 0.0103 -0.0042 -vn 0.9999 0.0099 -0.0072 -vn 0.9999 0.0139 -0.0053 -vn 1.0000 0.0087 -0.0025 -vn 1.0000 0.0094 -0.0022 -vn 0.9999 -0.0153 0.0025 -vn 0.0000 -0.3531 -0.9356 -vn 0.0000 0.3747 0.9271 -vn 0.0000 0.3747 0.9272 -vn 0.0000 0.0147 -0.9999 -vn 0.0000 0.0000 1.0000 -vn 1.0000 -0.0023 0.0008 -vn 1.0000 0.0024 0.0010 -vn 1.0000 0.0024 0.0005 -vn -1.0000 0.0018 -0.0016 -vn -1.0000 -0.0021 -0.0012 +mtllib ar15.mtl +o mag +v 0.065068 1.436829 0.651256 +v 0.065068 1.419299 0.637000 +v 0.059066 1.413296 0.636971 +v 0.041467 1.413228 0.651141 +v 0.065068 1.407295 0.636941 +v 0.065068 1.389627 0.651026 +v 0.071070 1.413296 0.636971 +v 0.088670 1.413228 0.651141 +v 0.065068 1.454777 1.360036 +v 0.020068 1.409778 1.359817 +v 0.065068 1.364778 1.359598 +v 0.110068 1.409778 1.359817 +v 0.110068 1.412166 0.869278 +v 0.065068 1.457165 0.869497 +v 0.065068 1.367166 0.869059 +v 0.020068 1.412166 0.869278 +v -0.035037 1.482139 0.646559 +v -0.035037 1.459440 0.632761 +v -0.042801 1.451676 0.632724 +v -0.065567 1.451609 0.646410 +v -0.035037 1.443911 0.632686 +v -0.035037 1.421079 0.646262 +v -0.027273 1.451676 0.632724 +v -0.004507 1.451609 0.646410 +v -0.035037 1.506397 1.349364 +v -0.093247 1.448188 1.349081 +v -0.035037 1.389978 1.348797 +v 0.023173 1.448188 1.349081 +v 0.023173 1.450556 0.862582 +v -0.035037 1.508766 0.862866 +v -0.035037 1.392347 0.862299 +v -0.093247 1.450556 0.862582 +v -0.107706 1.399587 1.348511 +v -0.107706 0.706169 1.358716 +v -0.107706 0.706620 1.389339 +v -0.107706 1.400038 1.379134 +v -0.107706 0.697607 0.776877 +v -0.107706 0.695354 0.623761 +v -0.100015 0.394515 0.626606 +v -0.100015 0.370726 0.772163 +v -0.103805 0.127366 0.591050 +v -0.103805 0.085949 0.733473 +v -0.107706 -0.074583 0.541713 +v -0.107706 -0.132123 0.684096 +v -0.107706 -0.584175 0.513467 +v -0.107706 -0.526635 0.371085 +v -0.107706 -0.550427 0.362104 +v -0.107706 -0.607967 0.504486 +v 0.133589 1.399587 1.348511 +v 0.133589 1.400038 1.379134 +v 0.133589 0.706620 1.389338 +v 0.133589 0.706169 1.358716 +v 0.133589 0.697607 0.776877 +v 0.126007 0.370727 0.772163 +v 0.126007 0.394515 0.626606 +v 0.133589 0.695354 0.623761 +v 0.129743 0.085949 0.733473 +v 0.129743 0.127366 0.591050 +v 0.133589 -0.132123 0.684096 +v 0.133589 -0.074583 0.541713 +v 0.133589 -0.584175 0.513467 +v 0.133589 -0.607967 0.504486 +v 0.133589 -0.550427 0.362104 +v 0.133589 -0.526635 0.371085 +v -0.107706 1.388772 0.613557 +v 0.133589 1.388772 0.613557 +v -0.107706 -0.814333 1.082995 +v 0.133589 -0.814333 1.082995 +v 0.133589 -0.362281 1.253623 +v -0.107706 -0.362281 1.253623 +v 0.129743 -0.079720 1.303164 +v -0.103805 -0.079720 1.303164 +v 0.126007 0.275573 1.354391 +v -0.100015 0.275573 1.354391 +v -0.107706 -0.826617 1.045538 +v 0.133589 -0.826617 1.045538 +v 0.133589 -0.838125 1.074014 +v -0.107706 -0.838125 1.074015 +v -0.107706 -0.785585 0.944003 +v -0.107706 -0.802859 1.055140 +v -0.107706 -0.761826 0.953604 +v -0.107706 -0.648384 0.604497 +v 0.133589 -0.648384 0.604497 +v 0.133589 -0.699463 0.730893 +v -0.107706 -0.699463 0.730893 +v 0.133589 -0.785585 0.944003 +v 0.133589 -0.761826 0.953604 +v 0.133589 -0.802825 1.054518 +v 0.133589 -0.675671 0.739874 +v 0.133589 -0.624591 0.613478 +v 0.108510 -0.624591 0.613478 +v 0.108510 -0.172539 0.784106 +v 0.133589 -0.172539 0.784106 +v 0.133589 -0.350773 1.225147 +v 0.129743 -0.071437 1.274679 +v 0.129743 0.020090 0.959944 +v 0.133589 -0.223618 0.910502 +v 0.129743 0.056857 0.833512 +v 0.105469 0.056857 0.833512 +v 0.126007 0.280331 1.325280 +v 0.126007 0.332900 1.003619 +v 0.126007 0.354017 0.874404 +v 0.102515 0.354017 0.874404 +v 0.133589 0.701190 1.020352 +v 0.133589 0.699190 0.884427 +v 0.108510 0.699190 0.884427 +v 0.133589 1.391026 0.766673 +v 0.108510 1.392608 0.874223 +v 0.133589 1.392608 0.874223 +v 0.133589 1.394608 1.010147 +v -0.107706 -0.802825 1.054518 +v -0.079881 -0.802825 1.054518 +v -0.079881 -0.826617 1.045538 +v -0.079881 -0.785585 0.944003 +v -0.079881 -0.761793 0.952983 +v -0.107706 -0.675671 0.739874 +v -0.107706 -0.624591 0.613478 +v -0.103805 -0.071437 1.274679 +v -0.107706 -0.350773 1.225147 +v -0.076873 -0.071437 1.274679 +v -0.076873 -0.041902 1.173115 +v -0.079881 -0.309741 1.123612 +v -0.079881 -0.350773 1.225147 +v -0.103805 0.020090 0.959944 +v -0.103805 0.056857 0.833512 +v -0.107706 -0.172539 0.784106 +v -0.107706 -0.223618 0.910502 +v -0.100015 0.280331 1.325280 +v -0.073951 0.280331 1.325280 +v -0.073951 0.297294 1.221481 +v -0.100015 0.332900 1.003619 +v -0.100015 0.354017 0.874405 +v -0.079881 0.706169 1.358716 +v -0.079881 0.704562 1.249526 +v -0.107706 0.701190 1.020352 +v -0.107706 0.699190 0.884427 +v -0.107706 1.391026 0.766673 +v -0.107706 1.392608 0.874223 +v -0.107706 1.394608 1.010147 +v -0.079880 1.397981 1.239322 +v -0.079880 1.399587 1.348511 +v -0.107706 1.395898 1.097803 +v -0.107706 0.702480 1.108007 +v -0.107706 0.704562 1.249526 +v -0.107706 1.397981 1.239322 +v -0.100015 0.319281 1.086947 +v -0.100015 0.297294 1.221481 +v -0.103805 -0.003621 1.041479 +v -0.103805 -0.041902 1.173115 +v -0.107706 -0.256559 0.992014 +v -0.107706 -0.309741 1.123612 +v -0.107706 -0.761793 0.952983 +v -0.107706 -0.708611 0.821385 +v -0.107706 -0.732403 0.812404 +v 0.133589 1.395898 1.097803 +v 0.133589 1.397981 1.239322 +v 0.133589 0.704562 1.249526 +v 0.133589 0.702480 1.108007 +v 0.126007 0.297294 1.221481 +v 0.126007 0.319281 1.086947 +v 0.129743 -0.041902 1.173115 +v 0.129743 -0.003621 1.041479 +v 0.133589 -0.309741 1.123612 +v 0.133589 -0.256559 0.992013 +v 0.133589 -0.761793 0.952983 +v 0.133589 -0.732403 0.812404 +v 0.133589 -0.708611 0.821385 +v 0.133589 -0.802859 1.055139 +v 0.133589 1.468057 1.096741 +v 0.133589 1.470140 1.238260 +v 0.133589 1.466767 1.009086 +v -0.107706 1.468057 1.096741 +v -0.107706 1.470140 1.238260 +v -0.107706 1.466767 1.009086 +v -0.107706 1.471747 1.347449 +v -0.107706 1.464767 0.873161 +v -0.107706 1.463184 0.765611 +v -0.107706 1.460932 0.612495 +v 0.133589 1.471747 1.347449 +v 0.133589 1.464767 0.873161 +v 0.133589 1.463184 0.765611 +v 0.133589 1.460932 0.612495 +v 0.133589 1.472197 1.378073 +v -0.107706 1.472197 1.378073 +v 0.109951 1.397981 1.239322 +v 0.109951 1.399587 1.348511 +v 0.109951 0.706169 1.358716 +v 0.109951 0.704562 1.249526 +v 0.103865 0.280331 1.325280 +v 0.103865 0.297294 1.221481 +v 0.106864 -0.071437 1.274679 +v 0.106864 -0.041902 1.173115 +v 0.109951 -0.350773 1.225147 +v 0.109951 -0.309741 1.123612 +v 0.109951 -0.802825 1.054518 +v 0.109951 -0.761793 0.952983 +v 0.109951 -0.785585 0.944003 +v 0.109951 -0.826617 1.045538 +v 0.110896 -0.708611 0.821385 +v 0.110896 -0.675671 0.739874 +v 0.110896 -0.699463 0.730893 +v 0.110896 -0.732403 0.812404 +v 0.107779 -0.003621 1.041479 +v 0.110896 -0.256559 0.992014 +v 0.110896 -0.223618 0.910502 +v 0.107779 0.020090 0.959944 +v 0.104750 0.319281 1.086947 +v 0.104750 0.332900 1.003619 +v 0.110896 0.702480 1.108007 +v 0.110896 0.701190 1.020352 +v 0.110896 1.394608 1.010147 +v 0.110896 1.395898 1.097803 +v 0.108510 -0.584175 0.513467 +v 0.108510 -0.607967 0.504486 +v 0.108510 -0.648384 0.604497 +v 0.108510 -0.132123 0.684096 +v 0.105469 0.085949 0.733473 +v 0.102515 0.370727 0.772163 +v 0.108510 0.697607 0.776877 +v 0.108510 1.391026 0.766673 +v -0.079881 -0.624591 0.613478 +v -0.079881 -0.648384 0.604497 +v -0.079881 -0.607967 0.504486 +v -0.079881 -0.584175 0.513467 +v -0.076873 0.056857 0.833512 +v -0.076873 0.085949 0.733473 +v -0.079881 -0.132123 0.684096 +v -0.079881 -0.172539 0.784106 +v -0.073951 0.354017 0.874405 +v -0.073951 0.370726 0.772163 +v -0.079881 0.699190 0.884427 +v -0.079881 0.697607 0.776877 +v -0.079880 1.391026 0.766673 +v -0.079880 1.392608 0.874223 +v -0.079881 -0.708611 0.821385 +v -0.079881 -0.732403 0.812404 +v -0.079881 -0.699463 0.730893 +v -0.079881 -0.675671 0.739874 +v -0.076873 -0.003621 1.041479 +v -0.076873 0.020090 0.959944 +v -0.079881 -0.223618 0.910502 +v -0.079881 -0.256559 0.992014 +v -0.073951 0.319281 1.086947 +v -0.073951 0.332900 1.003619 +v -0.079881 0.702480 1.108007 +v -0.079881 0.701190 1.020352 +v -0.079880 1.394608 1.010147 +v -0.079880 1.395898 1.097803 +v -0.107706 -0.584208 0.514088 +v 0.133589 -0.584208 0.514088 +v 0.133589 -0.624624 0.614099 +v -0.107706 -0.624624 0.614099 +v -0.107706 -0.675704 0.740495 +v 0.133589 -0.675704 0.740495 +v 0.133589 -0.708644 0.822006 +v -0.107706 -0.708644 0.822006 +v -0.107706 1.400038 1.379134 +v 0.133589 1.400038 1.379134 +v 0.133589 1.472197 1.378073 +v -0.107706 1.472197 1.378073 +v -0.092393 1.399587 1.348511 +v -0.094841 1.399803 1.363149 +v -0.092393 0.706394 1.374027 +v -0.092393 0.706169 1.358716 +v 0.118276 1.399587 1.348511 +v 0.118276 0.706169 1.358716 +v 0.118276 0.706394 1.374027 +v 0.120724 1.399803 1.363149 +v -0.092393 1.388998 0.628868 +v -0.092393 0.695579 0.639073 +v 0.118276 0.695579 0.639073 +v 0.118276 1.388998 0.628868 +v 0.118276 0.697607 0.776877 +v 0.118276 1.391026 0.766673 +v 0.118276 1.392608 0.874223 +v 0.118276 0.699190 0.884427 +v 0.118276 0.701190 1.020352 +v 0.118276 1.394608 1.010147 +v -0.092393 1.391026 0.766673 +v -0.092393 0.697607 0.776877 +v -0.092393 1.392608 0.874223 +v -0.092393 1.394608 1.010147 +v -0.092393 0.701190 1.020352 +v -0.092393 0.699190 0.884427 +v -0.092393 1.395898 1.097803 +v -0.092393 1.397981 1.239322 +v -0.092393 0.704562 1.249526 +v -0.092393 0.702480 1.108007 +v 0.118276 1.395898 1.097803 +v 0.118276 0.702480 1.108007 +v 0.118276 0.704562 1.249526 +v 0.118276 1.397981 1.239322 +v 0.118276 1.468057 1.096741 +v 0.118276 1.470140 1.238260 +v 0.118276 1.466767 1.009086 +v -0.092393 1.468057 1.096741 +v -0.092393 1.470140 1.238260 +v -0.092393 1.466767 1.009086 +v -0.092393 1.471747 1.347449 +v -0.092393 1.464767 0.873161 +v -0.092393 1.463184 0.765611 +v -0.092393 1.461156 0.627807 +v 0.118276 1.471747 1.347449 +v 0.118276 1.464767 0.873161 +v 0.118276 1.463184 0.765611 +v 0.118276 1.461156 0.627807 +v 0.118276 1.472197 1.378073 +v -0.092393 1.472197 1.378073 +v -0.107706 1.399813 1.363823 +v -0.107706 1.471972 1.362761 +v 0.133589 1.471972 1.362761 +v 0.133589 1.399813 1.363823 +v 0.078397 1.500497 1.250294 +v 0.078397 1.499373 1.127480 +v 0.078397 1.501365 1.345050 +v 0.087913 1.500497 1.250294 +v 0.087913 1.501365 1.345050 +v 0.078397 1.498677 1.051410 +v 0.087913 1.498677 1.051410 +v -0.052514 1.500497 1.250294 +v -0.052514 1.501365 1.345050 +v 0.087913 1.499373 1.127480 +v -0.062030 1.501365 1.345050 +v -0.062030 1.500497 1.250294 +v -0.052514 1.499373 1.127480 +v -0.062030 1.499373 1.127480 +v -0.052514 1.498677 1.051410 +v -0.062030 1.498677 1.051410 +v -0.107706 1.399587 1.348511 +v -0.107706 0.706169 1.358716 +v -0.107706 0.706620 1.389339 +v -0.107706 1.400038 1.379134 +v -0.107706 0.697607 0.776877 +v -0.107706 0.695354 0.623761 +v -0.100015 0.394515 0.626606 +v -0.100015 0.370726 0.772163 +v -0.103805 0.127366 0.591050 +v -0.103805 0.085949 0.733473 +v -0.107706 -0.074583 0.541713 +v -0.107706 -0.132123 0.684096 +v -0.107706 -0.584175 0.513467 +v -0.107706 -0.526635 0.371085 +v 0.133589 1.399587 1.348511 +v 0.133589 1.400038 1.379134 +v 0.133589 0.706620 1.389338 +v 0.133589 0.706169 1.358716 +v 0.133589 0.697607 0.776877 +v 0.126007 0.370727 0.772163 +v 0.126007 0.394515 0.626606 +v 0.133589 0.695354 0.623761 +v 0.129743 0.085949 0.733473 +v 0.129743 0.127366 0.591050 +v 0.133589 -0.132123 0.684096 +v 0.133589 -0.074583 0.541713 +v 0.133589 -0.584175 0.513467 +v 0.133589 -0.526635 0.371085 +v -0.107706 1.388772 0.613557 +v 0.133589 1.388772 0.613557 +v -0.107706 -0.814333 1.082995 +v 0.133589 -0.814333 1.082995 +v 0.133589 -0.362281 1.253623 +v -0.107706 -0.362281 1.253623 +v 0.129743 -0.079720 1.303164 +v -0.103805 -0.079720 1.303164 +v 0.126007 0.275573 1.354391 +v -0.100015 0.275573 1.354391 +v 0.133589 -0.802825 1.054518 +v 0.133589 -0.675671 0.739874 +v 0.133589 -0.624591 0.613478 +v 0.108510 -0.624591 0.613478 +v 0.108510 -0.172539 0.784106 +v 0.133589 -0.172539 0.784106 +v 0.133589 -0.350773 1.225147 +v 0.129743 -0.071437 1.274679 +v 0.129743 0.020090 0.959944 +v 0.133589 -0.223618 0.910502 +v 0.129743 0.056857 0.833512 +v 0.105469 0.056857 0.833512 +v 0.126007 0.280331 1.325280 +v 0.126007 0.332900 1.003619 +v 0.126007 0.354017 0.874404 +v 0.102515 0.354017 0.874404 +v 0.133589 0.701190 1.020352 +v 0.133589 0.699190 0.884427 +v 0.108510 0.699190 0.884427 +v 0.133589 1.391026 0.766673 +v 0.108510 1.392608 0.874223 +v 0.133589 1.392608 0.874223 +v 0.133589 1.394608 1.010147 +v -0.107706 -0.802825 1.054518 +v -0.079881 -0.802825 1.054518 +v -0.079881 -0.761793 0.952983 +v -0.107706 -0.675671 0.739874 +v -0.107706 -0.624591 0.613478 +v -0.103805 -0.071437 1.274679 +v -0.107706 -0.350773 1.225147 +v -0.076873 -0.071437 1.274679 +v -0.076873 -0.041902 1.173115 +v -0.079881 -0.309741 1.123612 +v -0.079881 -0.350773 1.225147 +v -0.103805 0.020090 0.959944 +v -0.103805 0.056857 0.833512 +v -0.107706 -0.172539 0.784106 +v -0.107706 -0.223618 0.910502 +v -0.100015 0.280331 1.325280 +v -0.073951 0.280331 1.325280 +v -0.073951 0.297294 1.221481 +v -0.100015 0.332900 1.003619 +v -0.100015 0.354017 0.874405 +v -0.079881 0.706169 1.358716 +v -0.079881 0.704562 1.249526 +v -0.107706 0.701190 1.020352 +v -0.107706 0.699190 0.884427 +v -0.107706 1.391026 0.766673 +v -0.107706 1.392608 0.874223 +v -0.107706 1.394608 1.010147 +v -0.079880 1.397981 1.239322 +v -0.079880 1.399587 1.348511 +v -0.107706 1.395898 1.097803 +v -0.107706 0.702480 1.108007 +v -0.107706 0.704562 1.249526 +v -0.107706 1.397981 1.239322 +v -0.100015 0.319281 1.086947 +v -0.100015 0.297294 1.221481 +v -0.103805 -0.003621 1.041479 +v -0.103805 -0.041902 1.173115 +v -0.107706 -0.256559 0.992014 +v -0.107706 -0.309741 1.123612 +v -0.107706 -0.761793 0.952983 +v -0.107706 -0.708611 0.821385 +v 0.133589 1.395898 1.097803 +v 0.133589 1.397981 1.239322 +v 0.133589 0.704562 1.249526 +v 0.133589 0.702480 1.108007 +v 0.126007 0.297294 1.221481 +v 0.126007 0.319281 1.086947 +v 0.129743 -0.041902 1.173115 +v 0.129743 -0.003621 1.041479 +v 0.133589 -0.309741 1.123612 +v 0.133589 -0.256559 0.992013 +v 0.133589 -0.761793 0.952983 +v 0.133589 -0.708611 0.821385 +v -0.107706 1.460932 0.612495 +v 0.133589 1.460932 0.612495 +v 0.109951 1.397981 1.239322 +v 0.109951 1.399587 1.348511 +v 0.109951 0.706169 1.358716 +v 0.109951 0.704562 1.249526 +v 0.103865 0.280331 1.325280 +v 0.103865 0.297294 1.221481 +v 0.106864 -0.071437 1.274679 +v 0.106864 -0.041902 1.173115 +v 0.109951 -0.350773 1.225147 +v 0.109951 -0.309741 1.123612 +v 0.109951 -0.802825 1.054518 +v 0.109951 -0.761793 0.952983 +v 0.110896 -0.708611 0.821385 +v 0.110896 -0.675671 0.739874 +v 0.107779 -0.003621 1.041479 +v 0.110896 -0.256559 0.992014 +v 0.110896 -0.223618 0.910502 +v 0.107779 0.020090 0.959944 +v 0.104750 0.319281 1.086947 +v 0.104750 0.332900 1.003619 +v 0.110896 0.702480 1.108007 +v 0.110896 0.701190 1.020352 +v 0.110896 1.394608 1.010147 +v 0.110896 1.395898 1.097803 +v 0.108510 -0.584175 0.513467 +v 0.108510 -0.132123 0.684096 +v 0.105469 0.085949 0.733473 +v 0.102515 0.370727 0.772163 +v 0.108510 0.697607 0.776877 +v 0.108510 1.391026 0.766673 +v -0.079881 -0.624591 0.613478 +v -0.079881 -0.584175 0.513467 +v -0.076873 0.056857 0.833512 +v -0.076873 0.085949 0.733473 +v -0.079881 -0.132123 0.684096 +v -0.079881 -0.172539 0.784106 +v -0.073951 0.354017 0.874405 +v -0.073951 0.370726 0.772163 +v -0.079881 0.699190 0.884427 +v -0.079881 0.697607 0.776877 +v -0.079880 1.391026 0.766673 +v -0.079880 1.392608 0.874223 +v -0.079881 -0.708611 0.821385 +v -0.079881 -0.675671 0.739874 +v -0.076873 -0.003621 1.041479 +v -0.076873 0.020090 0.959944 +v -0.079881 -0.223618 0.910502 +v -0.079881 -0.256559 0.992014 +v -0.073951 0.319281 1.086947 +v -0.073951 0.332900 1.003619 +v -0.079881 0.702480 1.108007 +v -0.079881 0.701190 1.020352 +v -0.079880 1.394608 1.010147 +v -0.079880 1.395898 1.097803 +vn -1.0000 -0.0000 -0.0000 +vn -0.9997 -0.0235 -0.0038 +vn -0.9999 0.0128 0.0037 +vn -0.9999 0.0131 0.0047 +vn -0.9999 0.0139 0.0032 +vn -0.9999 0.0156 0.0062 +vn -0.9998 0.0164 0.0066 +vn 1.0000 -0.0000 -0.0000 +vn 0.9997 -0.0252 0.0004 +vn 0.9999 0.0137 0.0022 +vn 0.9999 0.0148 0.0025 +vn 0.9998 0.0171 0.0043 +vn 0.9998 0.0178 0.0052 +vn 0.9998 0.0172 0.0062 +vn -0.0000 0.3532 -0.9356 +vn -0.0000 -0.9272 -0.3747 +vn -0.0000 -0.3747 0.9272 +vn 0.9999 0.0126 0.0036 +vn 0.9999 0.0164 0.0046 +vn 0.9999 0.0131 0.0038 +vn 0.9999 0.0158 0.0046 +vn 0.9999 0.0154 0.0056 +vn 0.9999 0.0104 0.0017 +vn 0.9999 0.0123 0.0020 +vn 0.9999 0.0131 0.0022 +vn 0.9998 -0.0176 0.0003 +vn 0.9998 -0.0220 0.0003 +vn -0.9999 0.0129 0.0052 +vn -0.9999 0.0115 0.0084 +vn -0.9998 0.0162 0.0061 +vn -0.9999 0.0094 0.0038 +vn -0.9999 0.0091 0.0066 +vn -0.9999 0.0126 0.0049 +vn -0.9999 0.0139 0.0054 +vn -0.9999 0.0148 0.0060 +vn -0.9999 0.0102 0.0030 +vn -0.9999 0.0104 0.0033 +vn -1.0000 0.0080 0.0023 +vn -1.0000 0.0088 0.0020 +vn -0.9999 0.0116 0.0034 +vn -0.9999 0.0120 0.0044 +vn -0.9999 0.0126 0.0029 +vn -0.9998 -0.0179 0.0003 +vn -0.9999 -0.0137 -0.0022 +vn -0.9998 -0.0207 -0.0034 +vn -0.9998 -0.0187 -0.0031 +vn -0.9999 0.0107 0.0031 +vn -0.9999 0.0110 0.0038 +vn -0.9999 0.0136 0.0055 +vn 0.9998 -0.0198 0.0003 +vn 0.9999 0.0113 0.0018 +vn 0.9999 0.0122 0.0020 +vn 0.9999 0.0139 0.0037 +vn 0.9999 0.0144 0.0042 +vn 0.9999 0.0140 0.0050 +vn 1.0000 -0.0015 0.0017 +vn 1.0000 -0.0012 -0.0020 +vn -1.0000 -0.0008 0.0022 +vn -1.0000 -0.0010 -0.0023 +vn -1.0000 -0.0004 -0.0023 +vn -1.0000 -0.0023 0.0010 +vn 1.0000 -0.0009 0.0023 +vn 0.9999 -0.0150 0.0002 +vn 1.0000 0.0086 0.0014 +vn 0.9999 0.0109 0.0032 +vn 0.9999 0.0135 0.0042 +vn 0.9999 0.0115 0.0032 +vn 0.9999 0.0149 0.0046 +vn 0.9999 0.0121 0.0035 +vn 1.0000 0.0095 0.0015 +vn 0.9999 -0.0167 0.0002 +vn 0.9999 0.0125 0.0033 +vn 0.9999 0.0160 0.0052 +vn 0.9999 0.0101 0.0017 +vn 0.9998 -0.0183 0.0003 +vn -0.0000 -0.9999 0.0147 +vn -0.9999 0.0114 0.0045 +vn -0.9999 0.0108 0.0079 +vn -0.9999 0.0153 0.0057 +vn -1.0000 0.0095 0.0027 +vn -0.9999 0.0102 0.0025 +vn -0.9999 -0.0171 -0.0028 +vn -0.9999 0.0102 0.0042 +vn -0.9999 0.0099 0.0072 +vn -0.9999 0.0139 0.0053 +vn -1.0000 0.0087 0.0025 +vn -1.0000 0.0094 0.0022 +vn -0.9999 -0.0153 -0.0025 +vn -0.0000 -0.3532 0.9356 +vn -0.0000 0.3531 -0.9356 +vn -0.0000 -0.3531 0.9356 +vn -0.0000 0.3747 -0.9271 +vn -0.0000 -0.3747 0.9271 +vn -0.0000 0.3747 -0.9272 +vn -0.0000 0.0147 0.9999 +vn 0.0001 -0.0000 -1.0000 +vn -0.0000 -0.0000 -1.0000 +vn -1.0000 -0.0023 -0.0008 vn -1.0000 0.0024 -0.0010 -vn 1.0000 -0.0010 0.0024 -vn 0.0000 -0.0157 0.9999 -vn 0.9994 -0.0339 -0.0005 -vn 0.8112 0.0604 -0.5816 -vn -0.9863 0.0024 -0.1649 -vn 0.0000 -0.0147 0.9999 -vn 0.7010 -0.1212 -0.7028 -vn 0.1631 -0.0109 -0.9865 -vn 0.0000 0.9999 0.0147 -vn 0.5878 0.8090 0.0079 -vn 0.3071 0.8163 -0.4892 -vn -0.7010 -0.1212 -0.7028 -vn -0.4897 0.4583 -0.7417 -vn 0.6139 -0.7893 -0.0125 -vn 0.6122 -0.7906 -0.0092 -vn 0.6101 -0.7922 -0.0123 -vn 0.6034 -0.7973 -0.0117 -vn 0.6032 -0.7975 -0.0092 -vn 0.6015 -0.7988 -0.0126 -vn -0.5528 0.8333 0.0106 -vn -0.5512 0.8343 0.0123 -vn -0.5495 0.8354 0.0110 -vn -0.3193 0.8162 -0.4815 -vn 0.0000 0.7985 0.6020 -vn -0.6049 -0.7962 -0.0136 -vn -0.6034 -0.7973 -0.0117 -vn -0.6046 -0.7965 -0.0096 -vn 0.0000 0.0000 -1.0000 -vn -0.5590 0.1816 -0.8090 -vn -0.5651 0.8250 0.0121 -vn -0.5646 0.8252 0.0144 -vn 0.0023 1.0000 0.0079 -vn 0.0000 1.0000 0.0092 -vn 0.0023 1.0000 0.0082 -vn 0.0022 1.0000 0.0081 -vn 0.0000 0.9999 0.0116 -vn 0.0021 1.0000 0.0083 -vn -0.0001 1.0000 0.0067 -vn -0.0023 0.9999 0.0102 -vn -0.0000 1.0000 0.0069 -vn -0.0023 0.9999 0.0101 -vn -0.0022 0.9999 0.0103 -vn 0.0000 1.0000 0.0091 -vn -0.0021 0.9999 0.0100 -vn 0.0001 0.9999 0.0114 -vn 0.0000 0.0807 -0.9967 -vn -0.6133 -0.7898 -0.0135 -vn -0.6100 -0.7923 -0.0113 -vn -0.6134 -0.7897 -0.0099 -vn -0.5613 0.8276 0.0107 -vn -0.5596 0.8286 0.0147 -vn -0.5585 0.8295 0.0106 -vn 0.5512 0.8343 0.0123 -vn 0.5533 0.8329 0.0120 -vn 0.5506 0.8347 0.0099 -vn 0.6188 -0.7855 -0.0130 -vn 0.6172 -0.7867 -0.0116 -vn 0.5591 0.8290 0.0145 -vn 0.5617 0.8272 0.0124 -vn 0.5593 0.8289 0.0100 -vn -0.6172 -0.7867 -0.0116 -vn -0.6153 -0.7882 -0.0111 -vn 0.5639 0.8257 0.0140 -vn 0.5651 0.8250 0.0121 -vn 1.0000 -0.0024 0.0018 -vn 1.0000 -0.0026 0.0020 -vn -1.0000 0.0006 -0.0032 -vn -1.0000 -0.0030 -0.0014 -vn -1.0000 0.0006 -0.0030 -vn -1.0000 -0.0028 -0.0013 -vn -1.0000 0.0005 -0.0027 -vn -1.0000 -0.0025 -0.0011 -vn 1.0000 -0.0020 0.0019 -vn 1.0000 -0.0030 0.0018 -vn -1.0000 0.0009 -0.0033 -vn -1.0000 -0.0031 -0.0014 -vn 0.9997 -0.0256 -0.0004 -vn 0.9999 0.0139 -0.0023 -vn 0.9999 0.0150 -0.0028 -vn 0.9998 0.0179 -0.0041 -vn 0.9998 0.0169 -0.0057 -vn 0.9998 0.0180 -0.0052 -vn -0.9997 -0.0231 0.0038 -vn -0.9999 0.0126 -0.0037 -vn -0.9999 0.0130 -0.0026 -vn -0.9999 0.0135 -0.0045 -vn -0.9999 0.0150 -0.0062 -vn -0.9998 0.0162 -0.0065 -vn -0.9999 0.0119 -0.0050 -vn -0.9999 0.0095 -0.0064 -vn -0.9999 0.0142 -0.0082 -vn -0.9999 0.0146 -0.0059 -vn -0.9999 0.0101 -0.0029 -vn -0.9999 0.0104 -0.0022 -vn -0.9999 0.0115 -0.0033 -vn -0.9999 0.0123 -0.0040 -vn -0.9998 -0.0176 0.0029 -vn -0.9998 -0.0204 0.0033 -vn 0.9999 0.0133 -0.0039 -vn 0.9999 0.0125 -0.0042 -vn 0.9999 0.0166 -0.0049 -vn 0.9999 0.0104 -0.0025 -vn 0.9999 0.0130 -0.0046 -vn 0.9999 0.0158 -0.0036 -vn 0.9999 0.0151 -0.0051 -vn 0.9999 0.0160 -0.0047 -vn 0.9999 0.0105 -0.0017 -vn 0.9999 0.0113 -0.0019 -vn 1.0000 0.0084 -0.0014 -vn 0.9999 0.0125 -0.0020 -vn 0.9999 0.0135 -0.0024 -vn 0.9998 -0.0178 0.0029 -vn 0.9999 -0.0146 -0.0002 -vn 0.9998 -0.0223 -0.0003 -vn 0.9998 -0.0201 -0.0003 -vn 0.9999 0.0115 -0.0019 -vn 0.9999 0.0124 -0.0022 -vn 0.9999 0.0146 -0.0042 -vn 0.9999 0.0137 -0.0047 -vn -0.9998 -0.0184 0.0030 -vn -0.9999 0.0106 -0.0031 -vn -0.9999 0.0109 -0.0022 -vn -0.9999 0.0113 -0.0037 -vn -0.9999 0.0125 -0.0052 -vn -0.9999 0.0134 -0.0054 -vn -1.0000 -0.0002 -0.0023 -vn -1.0000 -0.0023 0.0009 -vn -1.0000 -0.0023 0.0005 -vn 1.0000 -0.0022 -0.0007 -vn 1.0000 -0.0018 0.0014 -vn -0.9999 -0.0141 0.0023 -vn -1.0000 0.0082 -0.0024 -vn -0.9999 0.0103 -0.0042 -vn -1.0000 0.0077 -0.0052 -vn -0.9999 0.0112 -0.0068 -vn -0.9999 0.0107 -0.0045 -vn -0.9999 0.0086 -0.0057 -vn -0.9999 0.0124 -0.0075 -vn -1.0000 0.0090 -0.0026 -vn -1.0000 0.0093 -0.0019 -vn -0.9999 -0.0159 0.0026 -vn -0.9999 0.0114 -0.0047 -vn -0.9999 0.0091 -0.0061 -vn -0.9999 0.0131 -0.0081 -vn -1.0000 0.0096 -0.0028 -vn -0.9999 0.0099 -0.0020 -vn -0.9998 -0.0173 0.0028 -vn 0.9999 0.0128 -0.0029 -vn 0.9999 0.0129 -0.0038 -vn 0.9999 0.0154 -0.0059 -vn 0.9999 0.0100 -0.0016 -vn 0.9998 -0.0181 -0.0003 -vn 0.9999 0.0115 -0.0026 -vn 0.9999 0.0117 -0.0034 -vn 0.9999 0.0142 -0.0049 -vn 1.0000 0.0091 -0.0015 -vn 0.9999 -0.0161 -0.0002 -vn 1.0000 -0.0007 0.0023 -vn 1.0000 0.0015 0.0020 -vn -1.0000 0.0024 -0.0002 +vn -1.0000 0.0024 -0.0005 +vn 1.0000 0.0018 0.0016 +vn 1.0000 -0.0021 0.0012 +vn 1.0000 0.0024 0.0010 vn -1.0000 -0.0010 -0.0024 -vn -1.0000 -0.0005 -0.0024 -vn 0.9863 0.0024 -0.1649 -vn -0.9994 -0.0339 -0.0005 -vn -0.8272 0.5267 -0.1956 -vn -0.0523 0.0147 -0.9985 -vn 0.5622 0.8115 -0.1598 -vn 0.0523 0.0147 -0.9985 -vn 0.6045 -0.7966 -0.0099 -vn 0.6062 -0.7953 -0.0064 -vn 0.6024 -0.7981 -0.0065 -vn 0.5965 -0.8026 -0.0073 -vn 0.5945 -0.8040 -0.0065 -vn -0.5446 0.8387 0.0052 -vn -0.5443 0.8388 0.0077 -vn -0.0272 0.8176 -0.5752 -vn -0.5986 -0.8010 -0.0076 -vn -0.5965 -0.8026 -0.0073 -vn -0.5590 -0.1816 0.8090 -vn 0.4756 0.3454 0.8090 -vn 0.5806 0.8103 -0.0800 -vn -0.5620 0.8271 0.0076 -vn -0.5633 0.8262 0.0092 -vn -0.5602 0.8283 0.0084 -vn 0.0026 1.0000 0.0090 -vn 0.0024 1.0000 0.0091 -vn -0.0010 1.0000 0.0068 -vn 0.0011 0.9999 0.0114 -vn 0.0010 0.9999 0.0116 -vn -0.0011 1.0000 0.0069 -vn -0.0026 1.0000 0.0091 -vn 0.0009 0.9999 0.0114 -vn -0.0010 1.0000 0.0071 -vn -0.0024 1.0000 0.0092 -vn -0.0009 1.0000 0.0069 -vn 0.0011 0.9999 0.0112 -vn -0.6062 -0.7953 -0.0075 -vn -0.6032 -0.7975 -0.0095 -vn -0.6028 -0.7978 -0.0055 -vn -0.5523 0.8336 0.0053 -vn -0.5539 0.8326 0.0089 -vn -0.5506 0.8347 0.0094 -vn 0.5443 0.8388 0.0077 -vn 0.5451 0.8383 0.0054 -vn 0.6137 -0.7895 -0.0096 -vn 0.6160 -0.7877 -0.0066 -vn 0.6141 -0.7892 -0.0072 -vn 0.5500 0.8351 0.0079 -vn 0.5528 0.8333 0.0100 -vn 0.5528 0.8333 0.0055 -vn -0.6141 -0.7892 -0.0072 -vn -0.6127 -0.7902 -0.0089 -vn -0.6134 -0.7898 -0.0050 -vn 0.5601 0.8284 0.0071 -vn 0.5625 0.8268 0.0098 -vn 0.5620 0.8271 0.0076 -vn 1.0000 0.0013 0.0027 -vn 1.0000 -0.0028 0.0010 -vn 1.0000 0.0014 0.0030 -vn 1.0000 -0.0030 0.0012 -vn -1.0000 0.0027 -0.0019 -vn -1.0000 0.0025 -0.0018 -vn -1.0000 0.0022 -0.0016 -vn 1.0000 0.0014 0.0024 -vn 1.0000 -0.0026 0.0009 -vn 1.0000 0.0016 0.0031 -vn 1.0000 -0.0032 0.0013 -vn -1.0000 0.0029 -0.0018 -vn -0.0000 0.4647 0.8855 -vn 0.9102 0.0020 0.4142 -vn 0.0000 0.9122 0.4097 -vn 0.4604 0.0043 0.8877 -vn 0.0000 -0.9082 0.4186 -vn -0.4604 0.0043 0.8877 -vn 0.0000 -0.4560 0.8900 -vn -0.9102 0.0020 0.4142 -vn -0.0000 0.8137 -0.5813 -vn -0.0000 -0.8193 -0.5734 -vn -0.8165 -0.0028 -0.5773 -vn -0.9989 0.0002 0.0478 -vn -0.0000 -0.9986 0.0527 -vn 0.9989 0.0002 0.0478 -vn 0.8165 -0.0028 -0.5773 -vn -0.0000 0.9991 0.0430 -vn 0.0000 0.8842 0.4672 -vn 0.3799 0.0045 0.9250 -vn 0.8819 0.0023 0.4715 -vn -0.0000 -0.3754 0.9269 -vn 0.0000 -0.8796 0.4758 -vn -0.3799 0.0045 0.9250 -vn -0.8819 0.0023 0.4715 -vn 0.0000 0.9984 0.0570 -vn 0.0000 -0.9978 0.0667 -vn -0.9981 0.0003 0.0619 -vn 0.9981 0.0003 0.0619 -vn -0.0011 0.1857 0.9826 -vn 0.0000 0.2961 0.9552 -vn 0.0000 -0.0121 0.9999 -vn 0.0000 0.0611 0.9981 -vn 0.0004 0.1844 0.9829 -vn 0.0002 -0.2679 -0.9634 -vn -0.0035 -0.2641 -0.9645 -vn 0.0000 -0.1578 -0.9875 -vn 0.0002 -0.1570 -0.9876 -vn 0.0000 -0.1117 -0.9937 -vn 0.0000 -0.0328 -0.9995 -vn 0.0000 0.2830 0.9591 -vn 0.0002 0.1729 0.9849 -vn 0.0032 0.2825 0.9593 -vn -0.0001 0.1741 0.9847 -vn 0.0000 0.0826 0.9966 -vn 0.0000 0.0073 1.0000 -vn 0.0000 0.0829 0.9966 -vn 0.0000 -0.2880 -0.9576 -vn 0.0001 -0.1772 -0.9842 -vn -0.0034 -0.2874 -0.9578 -vn 0.0000 -0.0745 -0.9972 -vn 0.0000 -0.1776 -0.9841 -vn 0.0000 0.0001 -1.0000 -vn 0.0000 -0.0748 -0.9972 -vn 0.0000 0.0003 -1.0000 -vn 0.0000 0.0199 0.9998 -vn 0.0000 -0.0151 -0.9999 -vn 0.0000 -0.0918 -0.9958 -vn 0.0000 -0.0155 -0.9999 -vn 0.0000 -0.0920 -0.9958 -vn 0.0000 0.0971 0.9953 -vn 0.0000 0.0203 0.9998 -vn -0.0001 0.1663 0.9861 -vn 0.0002 0.1651 0.9863 -vn 0.0000 -0.1684 -0.9857 -vn 0.0000 -0.1689 -0.9856 -vn 0.0029 0.2734 0.9619 -vn 0.0000 0.2739 0.9618 -vn -0.0032 -0.2766 -0.9610 -vn 0.0000 -0.2773 -0.9608 -vn 0.0000 -0.2689 -0.9632 -vn 0.0002 -0.1608 -0.9870 -vn -0.0029 -0.2682 -0.9633 -vn 0.0000 -0.1049 -0.9945 -vn 0.0000 -0.1614 -0.9869 -vn 0.0000 -0.0272 -0.9996 -vn 0.0000 -0.1051 -0.9945 -vn 0.0000 -0.0268 -0.9996 -vn 0.0000 0.0316 0.9995 -vn 0.0000 0.1103 0.9939 -vn 0.0000 0.0320 0.9995 -vn 0.0000 0.1584 0.9874 -vn 0.0000 0.1586 0.9873 -vn 0.0026 0.2649 0.9643 -vn 0.0033 0.2653 0.9642 -vn -0.0012 -0.1786 -0.9839 -vn -0.0001 -0.2842 -0.9588 -vn -0.0010 0.1741 0.9847 -vn -0.0001 0.2793 0.9602 -vn 0.0000 0.0070 1.0000 -vn 0.0008 0.1731 0.9849 -vn -0.0011 -0.1692 -0.9856 -vn -0.0000 -0.2736 -0.9618 -vn 0.0007 0.1654 0.9862 -vn -0.0009 0.1662 0.9861 -vn -0.0001 0.2705 0.9627 -vn 0.0000 -0.1617 -0.9868 -vn 0.0000 -0.2655 -0.9641 -vn -0.0008 0.1588 0.9873 -vn -0.0002 0.2622 0.9650 -vn -0.0000 0.2686 0.9633 -vn 0.0007 0.1583 0.9874 -vn 0.0000 0.0315 0.9995 -vn 0.0000 0.3844 0.9232 -vn 0.0000 0.0973 0.9953 -vn 0.0000 0.1104 0.9939 -s off +vn -0.0000 -0.0157 -0.9999 +vn -0.9994 -0.0339 0.0005 +vn -0.8112 0.0604 0.5816 +vn 0.9863 0.0024 0.1649 +vn -0.0000 -0.0147 -0.9999 +vn -0.7010 -0.1212 0.7028 +vn -0.1631 -0.0109 0.9866 +vn -0.0000 0.9999 -0.0147 +vn -0.5878 0.8090 -0.0079 +vn -0.3071 0.8163 0.4892 +vn 0.7010 -0.1212 0.7028 +vn 0.4897 0.4583 0.7417 +vn -0.0000 -0.0001 -1.0000 +vn -0.6139 -0.7893 0.0125 +vn -0.6122 -0.7906 0.0092 +vn -0.6101 -0.7922 0.0123 +vn -0.0001 0.9999 -0.0147 +vn -0.0000 -0.9999 0.0148 +vn -0.6034 -0.7973 0.0117 +vn -0.6032 -0.7975 0.0092 +vn -0.6015 -0.7988 0.0126 +vn 0.5527 0.8333 -0.0106 +vn 0.5512 0.8343 -0.0123 +vn 0.5496 0.8354 -0.0110 +vn 0.3193 0.8162 0.4815 +vn -0.0000 0.7985 -0.6020 +vn 0.6049 -0.7962 0.0136 +vn 0.6034 -0.7973 0.0117 +vn 0.6046 -0.7965 0.0096 +vn -0.0000 0.9999 -0.0146 +vn -0.0000 -0.0000 1.0000 +vn 0.5590 0.1816 0.8090 +vn 0.5651 0.8249 -0.0121 +vn 0.5646 0.8252 -0.0142 +vn 0.0001 0.9999 -0.0147 +vn -0.0023 1.0000 -0.0079 +vn -0.0000 1.0000 -0.0092 +vn -0.0023 1.0000 -0.0082 +vn -0.0022 1.0000 -0.0081 +vn -0.0000 0.9999 -0.0115 +vn -0.0021 1.0000 -0.0083 +vn 0.0001 1.0000 -0.0068 +vn 0.0023 0.9999 -0.0102 +vn -0.0000 1.0000 -0.0070 +vn 0.0023 0.9999 -0.0101 +vn 0.0022 0.9999 -0.0103 +vn -0.0000 1.0000 -0.0091 +vn 0.0021 0.9999 -0.0100 +vn -0.0001 0.9999 -0.0114 +vn -0.0000 0.0807 0.9967 +vn 0.6133 -0.7897 0.0135 +vn 0.6100 -0.7923 0.0113 +vn 0.6134 -0.7897 0.0099 +vn 0.5612 0.8276 -0.0107 +vn 0.5596 0.8286 -0.0146 +vn 0.5585 0.8295 -0.0106 +vn -0.5512 0.8343 -0.0123 +vn -0.5533 0.8329 -0.0120 +vn -0.5506 0.8347 -0.0099 +vn -0.6188 -0.7855 0.0130 +vn -0.6172 -0.7867 0.0116 +vn -0.5591 0.8290 -0.0146 +vn -0.5617 0.8272 -0.0124 +vn -0.5593 0.8289 -0.0099 +vn 0.6172 -0.7867 0.0116 +vn 0.6154 -0.7882 0.0111 +vn -0.5639 0.8257 -0.0139 +vn -0.5651 0.8250 -0.0121 +vn -1.0000 -0.0024 -0.0018 +vn -1.0000 -0.0026 -0.0020 +vn 1.0000 0.0006 0.0032 +vn 1.0000 -0.0030 0.0014 +vn 1.0000 0.0006 0.0030 +vn 1.0000 -0.0028 0.0013 +vn 1.0000 0.0005 0.0027 +vn 1.0000 -0.0025 0.0011 +vn -1.0000 -0.0020 -0.0019 +vn -1.0000 -0.0030 -0.0018 +vn 1.0000 0.0009 0.0033 +vn 1.0000 -0.0031 0.0014 +vn -0.9997 -0.0256 0.0004 +vn -0.9999 0.0139 0.0023 +vn -0.9999 0.0149 0.0027 +vn -0.9998 0.0179 0.0041 +vn -0.9998 0.0169 0.0057 +vn -0.9998 0.0180 0.0052 +vn 0.9997 -0.0231 -0.0038 +vn 0.9999 0.0126 0.0037 +vn 0.9999 0.0130 0.0025 +vn 0.9999 0.0135 0.0045 +vn 0.9999 0.0151 0.0062 +vn 0.9998 0.0162 0.0065 +vn 0.9999 0.0124 0.0051 +vn 0.9999 0.0095 0.0064 +vn 0.9999 0.0142 0.0082 +vn 0.9999 0.0146 0.0059 +vn 0.9999 0.0101 0.0029 +vn 0.9999 0.0104 0.0022 +vn 0.9999 0.0115 0.0033 +vn 0.9999 0.0122 0.0039 +vn 0.9998 -0.0176 -0.0029 +vn 0.9998 -0.0204 -0.0033 +vn -0.9999 0.0133 0.0039 +vn -0.9999 0.0124 0.0042 +vn -0.9998 0.0166 0.0049 +vn -0.9999 0.0104 0.0027 +vn -0.9999 0.0130 0.0046 +vn -0.9999 0.0158 0.0037 +vn -0.9999 0.0152 0.0051 +vn -0.9999 0.0160 0.0047 +vn -0.9999 0.0105 0.0017 +vn -0.9999 0.0109 0.0018 +vn -1.0000 0.0084 0.0014 +vn -0.9999 0.0125 0.0020 +vn -0.9999 0.0135 0.0024 +vn -0.9998 -0.0178 -0.0029 +vn -0.9999 -0.0146 0.0002 +vn -0.9998 -0.0223 0.0003 +vn -0.9998 -0.0201 0.0003 +vn -0.9999 0.0115 0.0019 +vn -0.9999 0.0125 0.0022 +vn -0.9999 0.0146 0.0042 +vn -0.9999 0.0137 0.0047 +vn 0.9998 -0.0184 -0.0030 +vn 0.9999 0.0106 0.0031 +vn 0.9999 0.0108 0.0025 +vn 0.9999 0.0113 0.0037 +vn 0.9999 0.0128 0.0053 +vn 0.9999 0.0134 0.0054 +vn 1.0000 -0.0002 0.0023 +vn 1.0000 -0.0023 -0.0009 +vn 1.0000 -0.0023 -0.0005 +vn -1.0000 -0.0022 0.0007 +vn -1.0000 -0.0018 -0.0014 +vn 0.9999 -0.0141 -0.0023 +vn 1.0000 0.0082 0.0024 +vn 0.9999 0.0103 0.0042 +vn 1.0000 0.0077 0.0052 +vn 0.9999 0.0112 0.0068 +vn 0.9999 0.0108 0.0045 +vn 0.9999 0.0086 0.0057 +vn 0.9999 0.0124 0.0075 +vn 1.0000 0.0090 0.0026 +vn 1.0000 0.0093 0.0019 +vn 0.9999 -0.0159 -0.0026 +vn 0.9999 0.0115 0.0048 +vn 0.9999 0.0091 0.0061 +vn 0.9999 0.0131 0.0081 +vn 1.0000 0.0096 0.0028 +vn 1.0000 0.0097 0.0025 +vn 0.9998 -0.0173 -0.0028 +vn -0.9999 0.0128 0.0029 +vn -0.9999 0.0129 0.0038 +vn -0.9999 0.0154 0.0059 +vn -0.9999 0.0100 0.0016 +vn -0.9998 -0.0181 0.0003 +vn -0.9999 0.0115 0.0026 +vn -0.9999 0.0117 0.0034 +vn -0.9999 0.0142 0.0049 +vn -1.0000 0.0091 0.0015 +vn -0.9999 -0.0161 0.0002 +vn -1.0000 -0.0007 -0.0023 +vn -1.0000 0.0015 -0.0020 +vn 1.0000 0.0024 0.0002 +vn 1.0000 -0.0010 0.0024 +vn 1.0000 -0.0005 0.0024 +vn -0.9863 0.0024 0.1649 +vn 0.9994 -0.0339 0.0005 +vn 0.8272 0.5267 0.1956 +vn 0.0523 0.0147 0.9985 +vn -0.5622 0.8114 0.1598 +vn -0.0523 0.0147 0.9985 +vn -0.6045 -0.7966 0.0099 +vn -0.6062 -0.7953 0.0064 +vn -0.6024 -0.7982 0.0065 +vn -0.5965 -0.8026 0.0074 +vn -0.5945 -0.8041 0.0065 +vn 0.5446 0.8387 -0.0052 +vn 0.5443 0.8388 -0.0077 +vn 0.0272 0.8176 0.5752 +vn 0.5986 -0.8010 0.0076 +vn 0.5965 -0.8026 0.0074 +vn 0.5591 -0.1816 -0.8090 +vn -0.4756 0.3454 -0.8090 +vn -0.5806 0.8103 0.0800 +vn 0.5620 0.8271 -0.0076 +vn 0.5633 0.8262 -0.0092 +vn 0.5602 0.8283 -0.0084 +vn -0.0026 1.0000 -0.0090 +vn -0.0023 1.0000 -0.0091 +vn 0.0010 1.0000 -0.0068 +vn -0.0011 0.9999 -0.0114 +vn -0.0010 0.9999 -0.0116 +vn 0.0011 1.0000 -0.0070 +vn 0.0026 1.0000 -0.0091 +vn -0.0009 0.9999 -0.0114 +vn 0.0010 1.0000 -0.0071 +vn 0.0023 1.0000 -0.0092 +vn 0.0009 1.0000 -0.0069 +vn -0.0011 0.9999 -0.0112 +vn 0.6062 -0.7953 0.0075 +vn 0.6032 -0.7975 0.0095 +vn 0.6028 -0.7979 0.0055 +vn 0.5523 0.8336 -0.0053 +vn 0.5538 0.8326 -0.0089 +vn 0.5506 0.8347 -0.0094 +vn -0.5443 0.8388 -0.0077 +vn -0.5451 0.8383 -0.0054 +vn -0.6137 -0.7895 0.0096 +vn -0.6160 -0.7877 0.0066 +vn -0.6141 -0.7892 0.0072 +vn -0.5500 0.8351 -0.0079 +vn -0.5528 0.8333 -0.0100 +vn -0.5528 0.8333 -0.0055 +vn 0.6141 -0.7892 0.0072 +vn 0.6127 -0.7902 0.0089 +vn 0.6134 -0.7898 0.0051 +vn -0.5601 0.8284 -0.0071 +vn -0.5625 0.8268 -0.0098 +vn -0.5620 0.8271 -0.0076 +vn -1.0000 0.0013 -0.0027 +vn -1.0000 -0.0028 -0.0010 +vn -1.0000 0.0014 -0.0030 +vn -1.0000 -0.0030 -0.0012 +vn 1.0000 0.0027 0.0019 +vn 1.0000 0.0025 0.0018 +vn 1.0000 0.0022 0.0016 +vn -1.0000 0.0014 -0.0024 +vn -1.0000 -0.0026 -0.0009 +vn -1.0000 0.0016 -0.0031 +vn -1.0000 -0.0032 -0.0013 +vn 1.0000 0.0029 0.0018 +vn -0.0000 0.4647 -0.8855 +vn -0.9102 0.0020 -0.4142 +vn -0.0000 0.9122 -0.4097 +vn -0.4604 0.0043 -0.8877 +vn -0.0000 -0.9082 -0.4186 +vn 0.4604 0.0043 -0.8877 +vn -0.0000 -0.4560 -0.8900 +vn 0.9102 0.0020 -0.4142 +vn -0.0000 0.8137 0.5813 +vn -0.0000 -0.8193 0.5734 +vn 0.8165 -0.0028 0.5773 +vn 0.9989 0.0002 -0.0478 +vn -0.0000 -0.9986 -0.0527 +vn -0.9989 0.0002 -0.0478 +vn -0.8165 -0.0028 0.5773 +vn -0.0000 0.9991 -0.0430 +vn -0.0000 0.8842 -0.4672 +vn -0.3799 0.0045 -0.9250 +vn -0.8819 0.0023 -0.4715 +vn -0.0000 -0.3754 -0.9269 +vn -0.0000 -0.8796 -0.4758 +vn 0.3799 0.0045 -0.9250 +vn 0.8819 0.0023 -0.4715 +vn -0.0000 0.9984 -0.0570 +vn -0.0000 -0.9978 -0.0667 +vn 0.9981 0.0003 -0.0619 +vn -0.9981 0.0003 -0.0619 +vn 0.0010 0.1857 -0.9826 +vn -0.0000 0.2961 -0.9552 +vn -0.0000 -0.0121 -0.9999 +vn -0.0000 0.0611 -0.9981 +vn -0.0004 0.1846 -0.9828 +vn -0.0002 -0.2679 0.9635 +vn 0.0035 -0.2641 0.9645 +vn -0.0000 -0.1578 0.9875 +vn -0.0002 -0.1570 0.9876 +vn -0.0000 -0.1117 0.9937 +vn -0.0000 -0.0328 0.9995 +vn -0.0000 0.2830 -0.9591 +vn -0.0002 0.1732 -0.9849 +vn -0.0032 0.2825 -0.9593 +vn 0.0001 0.1740 -0.9847 +vn -0.0000 0.0826 -0.9966 +vn -0.0000 0.0073 -1.0000 +vn -0.0000 0.0829 -0.9966 +vn -0.0000 -0.2880 0.9576 +vn -0.0001 -0.1775 0.9841 +vn 0.0034 -0.2874 0.9578 +vn -0.0000 -0.0745 0.9972 +vn -0.0000 -0.1776 0.9841 +vn -0.0000 0.0001 1.0000 +vn -0.0000 -0.0748 0.9972 +vn -0.0000 0.0003 1.0000 +vn -0.0000 0.0199 -0.9998 +vn -0.0000 -0.0151 0.9999 +vn -0.0000 -0.0918 0.9958 +vn -0.0000 -0.0155 0.9999 +vn -0.0000 -0.0920 0.9958 +vn -0.0000 0.0971 -0.9953 +vn -0.0000 0.0203 -0.9998 +vn 0.0001 0.1660 -0.9861 +vn -0.0002 0.1651 -0.9863 +vn -0.0000 -0.1684 0.9857 +vn -0.0000 -0.1689 0.9856 +vn -0.0029 0.2734 -0.9619 +vn -0.0000 0.2739 -0.9618 +vn 0.0032 -0.2766 0.9610 +vn -0.0000 -0.2773 0.9608 +vn -0.0000 -0.2689 0.9632 +vn -0.0002 -0.1611 0.9869 +vn 0.0028 -0.2682 0.9634 +vn -0.0000 -0.1049 0.9945 +vn -0.0000 -0.1614 0.9869 +vn -0.0000 -0.0272 0.9996 +vn -0.0000 -0.1051 0.9945 +vn -0.0000 -0.0268 0.9996 +vn -0.0000 0.0316 -0.9995 +vn -0.0000 0.1103 -0.9939 +vn -0.0000 0.0320 -0.9995 +vn -0.0000 0.1584 -0.9874 +vn -0.0000 0.1586 -0.9873 +vn -0.0026 0.2649 -0.9643 +vn -0.0033 0.2653 -0.9642 +vn 0.0011 -0.1786 0.9839 +vn 0.0001 -0.2843 0.9587 +vn 0.0010 0.1741 -0.9847 +vn 0.0001 0.2793 -0.9602 +vn -0.0000 0.0070 -1.0000 +vn -0.0005 0.1732 -0.9849 +vn 0.0012 -0.1692 0.9856 +vn -0.0000 -0.2736 0.9618 +vn -0.0007 0.1654 -0.9862 +vn 0.0008 0.1662 -0.9861 +vn 0.0001 0.2705 -0.9627 +vn -0.0000 -0.1617 0.9868 +vn -0.0000 -0.2655 0.9641 +vn 0.0006 0.1588 -0.9873 +vn 0.0002 0.2622 -0.9650 +vn -0.0000 0.2686 -0.9633 +vn -0.0005 0.1583 -0.9874 +vn -0.0000 0.0315 -0.9995 +vn -0.0000 0.3844 -0.9232 +vn -0.0000 0.0973 -0.9953 +vn -0.0000 0.1104 -0.9939 +vt 0.293178 0.253940 +vt 0.294447 0.228588 +vt 0.295035 0.228647 +vt 0.304352 0.255062 +vt 0.306516 0.266333 +vt 0.303659 0.266999 +vt 0.306561 0.276133 +vt 0.303722 0.277446 +vt 0.307027 0.283572 +vt 0.304150 0.285474 +vt 0.306350 0.302210 +vt 0.309343 0.301189 +vt 0.306466 0.303091 +vt 0.311562 0.308066 +vt 0.310293 0.282714 +vt 0.312150 0.308007 +vt 0.321467 0.281591 +vt 0.323630 0.270321 +vt 0.324407 0.281296 +vt 0.320773 0.269655 +vt 0.323675 0.260521 +vt 0.320836 0.259208 +vt 0.324142 0.253082 +vt 0.323465 0.234444 +vt 0.326458 0.235465 +vt 0.326342 0.236346 +vt 0.344109 0.298827 +vt 0.335283 0.299709 +vt 0.335283 0.298827 +vt 0.335283 0.316891 +vt 0.334749 0.308066 +vt 0.335283 0.308066 +vt 0.332086 0.316891 +vt 0.329413 0.308066 +vt 0.332086 0.308066 +vt 0.308583 0.313537 +vt 0.307778 0.310698 +vt 0.308583 0.311077 +vt 0.358445 0.300384 +vt 0.356072 0.291558 +vt 0.358445 0.291558 +vt 0.344050 0.299709 +vt 0.343168 0.308535 +vt 0.343168 0.299709 +vt 0.311956 0.226836 +vt 0.312647 0.226336 +vt 0.312531 0.227217 +vt 0.318889 0.231420 +vt 0.321559 0.232227 +vt 0.321444 0.233108 +vt 0.309478 0.253954 +vt 0.310331 0.243953 +vt 0.310046 0.254216 +vt 0.316321 0.257119 +vt 0.319244 0.249844 +vt 0.318842 0.258285 +vt 0.309343 0.266992 +vt 0.309915 0.267125 +vt 0.316229 0.268597 +vt 0.318766 0.269187 +vt 0.309705 0.282773 +vt 0.316791 0.282061 +vt 0.319401 0.281799 +vt 0.323324 0.306885 +vt 0.326264 0.306590 +vt 0.318648 0.307354 +vt 0.321258 0.307092 +vt 0.294841 0.309817 +vt 0.295533 0.310318 +vt 0.294957 0.310698 +vt 0.309382 0.311087 +vt 0.310180 0.313158 +vt 0.309382 0.313547 +vt 0.301775 0.305234 +vt 0.304445 0.304426 +vt 0.301891 0.306115 +vt 0.292364 0.282700 +vt 0.293217 0.292701 +vt 0.292641 0.293081 +vt 0.363166 0.279737 +vt 0.365464 0.288654 +vt 0.363407 0.290002 +vt 0.299207 0.279535 +vt 0.302129 0.286810 +vt 0.299575 0.288498 +vt 0.292229 0.269661 +vt 0.292932 0.282437 +vt 0.363089 0.266827 +vt 0.365195 0.278809 +vt 0.299115 0.268057 +vt 0.301727 0.278369 +vt 0.292590 0.253881 +vt 0.363533 0.251241 +vt 0.365129 0.266361 +vt 0.299676 0.254593 +vt 0.301651 0.267466 +vt 0.307293 0.255357 +vt 0.306209 0.229769 +vt 0.309150 0.230064 +vt 0.302287 0.254855 +vt 0.301534 0.229299 +vt 0.304144 0.229561 +vt 0.365629 0.251460 +vt 0.365497 0.225955 +vt 0.367593 0.226175 +vt 0.299850 0.229130 +vt 0.295275 0.254151 +vt 0.297132 0.228857 +vt 0.297479 0.268438 +vt 0.294838 0.269054 +vt 0.297581 0.280286 +vt 0.294957 0.281500 +vt 0.297928 0.289587 +vt 0.295268 0.291345 +vt 0.297469 0.308081 +vt 0.300244 0.307204 +vt 0.297584 0.308962 +vt 0.316965 0.307523 +vt 0.312390 0.282503 +vt 0.315107 0.282230 +vt 0.314593 0.268215 +vt 0.311952 0.267600 +vt 0.314696 0.256367 +vt 0.312071 0.255153 +vt 0.315042 0.247067 +vt 0.314583 0.228573 +vt 0.317358 0.229450 +vt 0.317242 0.230331 +vt 0.306973 0.313537 +vt 0.306973 0.311077 +vt 0.358543 0.291558 +vt 0.356072 0.282733 +vt 0.358543 0.282733 +vt 0.317158 0.310156 +vt 0.314247 0.307796 +vt 0.318841 0.309987 +vt 0.300043 0.226498 +vt 0.297326 0.226225 +vt 0.301727 0.226667 +vt 0.295229 0.226014 +vt 0.304337 0.226929 +vt 0.306403 0.227137 +vt 0.309343 0.227432 +vt 0.312343 0.310639 +vt 0.314440 0.310429 +vt 0.321452 0.309724 +vt 0.323517 0.309517 +vt 0.326458 0.309222 +vt 0.311755 0.310698 +vt 0.294641 0.225955 +vt 0.360993 0.306747 +vt 0.361125 0.281242 +vt 0.363089 0.306527 +vt 0.359028 0.281461 +vt 0.360624 0.266341 +vt 0.358584 0.265875 +vt 0.360690 0.253894 +vt 0.358661 0.252966 +vt 0.360960 0.244048 +vt 0.308583 0.313158 +vt 0.321583 0.311087 +vt 0.320785 0.312673 +vt 0.320785 0.310698 +vt 0.376920 0.252000 +vt 0.378887 0.243782 +vt 0.378547 0.252746 +vt 0.376855 0.263848 +vt 0.378492 0.264224 +vt 0.377413 0.277861 +vt 0.379096 0.277687 +vt 0.379351 0.303149 +vt 0.381034 0.302974 +vt 0.312589 0.313121 +vt 0.313388 0.311087 +vt 0.313388 0.313510 +vt 0.367648 0.251137 +vt 0.370057 0.244028 +vt 0.369644 0.252056 +vt 0.367593 0.262040 +vt 0.369601 0.262504 +vt 0.368253 0.274650 +vt 0.370318 0.274439 +vt 0.372224 0.299729 +vt 0.318376 0.312774 +vt 0.317459 0.310698 +vt 0.318376 0.310698 +vt 0.311790 0.311087 +vt 0.311790 0.313510 +vt 0.372279 0.274758 +vt 0.374688 0.281868 +vt 0.372664 0.283200 +vt 0.372224 0.263855 +vt 0.374275 0.273839 +vt 0.372884 0.251245 +vt 0.374232 0.263392 +vt 0.374949 0.251457 +vt 0.374790 0.225955 +vt 0.376855 0.226167 +vt 0.319986 0.311087 +vt 0.319986 0.313062 +vt 0.381098 0.277104 +vt 0.383066 0.285322 +vt 0.381415 0.286406 +vt 0.381034 0.265256 +vt 0.382726 0.276358 +vt 0.381592 0.251243 +vt 0.382671 0.264880 +vt 0.383275 0.251417 +vt 0.383530 0.225955 +vt 0.385213 0.226130 +vt 0.392620 0.299275 +vt 0.391603 0.298392 +vt 0.392620 0.298392 +vt 0.390368 0.226837 +vt 0.391386 0.225955 +vt 0.391386 0.226837 +vt 0.314405 0.312774 +vt 0.315423 0.310698 +vt 0.315423 0.312774 +vt 0.390151 0.302769 +vt 0.389133 0.301887 +vt 0.390151 0.301887 +vt 0.322501 0.312390 +vt 0.323518 0.310698 +vt 0.323518 0.312390 +vt 0.387899 0.226837 +vt 0.388916 0.225955 +vt 0.388916 0.226837 +vt 0.387682 0.306059 +vt 0.386664 0.305177 +vt 0.387682 0.305177 +vt 0.385430 0.226837 +vt 0.386447 0.225955 +vt 0.386447 0.226837 +vt 0.313388 0.312806 +vt 0.314405 0.310698 +vt 0.314405 0.312806 +vt 0.357950 0.318035 +vt 0.356072 0.309209 +vt 0.357950 0.309209 +vt 0.357978 0.309209 +vt 0.356072 0.300384 +vt 0.357978 0.300384 +vt 0.354444 0.309853 +vt 0.355974 0.318679 +vt 0.354444 0.318679 +vt 0.385202 0.303149 +vt 0.384320 0.311974 +vt 0.384320 0.303149 +vt 0.344050 0.308535 +vt 0.343168 0.317360 +vt 0.319986 0.311077 +vt 0.319181 0.312673 +vt 0.319181 0.310698 +vt 0.310985 0.310698 +vt 0.310180 0.313500 +vt 0.310180 0.311077 +vt 0.311790 0.313500 +vt 0.311790 0.311077 +vt 0.383439 0.311974 +vt 0.318376 0.311077 +vt 0.302190 0.319524 +vt 0.303071 0.310698 +vt 0.303071 0.319524 +vt 0.367121 0.306747 +vt 0.366239 0.315572 +vt 0.366239 0.306747 +vt 0.351814 0.309853 +vt 0.344109 0.282733 +vt 0.351814 0.285362 +vt 0.344109 0.310630 +vt 0.344109 0.285362 +vt 0.358584 0.279706 +vt 0.355926 0.254415 +vt 0.358584 0.254344 +vt 0.349537 0.226101 +vt 0.346806 0.228667 +vt 0.346806 0.226028 +vt 0.351228 0.228785 +vt 0.351228 0.226146 +vt 0.349537 0.282587 +vt 0.346806 0.280021 +vt 0.349537 0.279948 +vt 0.351228 0.279903 +vt 0.351228 0.282542 +vt 0.344700 0.282717 +vt 0.346806 0.282660 +vt 0.353851 0.282472 +vt 0.353851 0.279832 +vt 0.355926 0.279777 +vt 0.355926 0.282416 +vt 0.358584 0.282345 +vt 0.344700 0.225971 +vt 0.353851 0.226217 +vt 0.355926 0.228911 +vt 0.355926 0.226272 +vt 0.358584 0.226343 +vt 0.343168 0.324984 +vt 0.335373 0.299709 +vt 0.343078 0.299709 +vt 0.351814 0.282733 +vt 0.344417 0.228603 +vt 0.344109 0.225955 +vt 0.344417 0.280085 +vt 0.344700 0.280078 +vt 0.334716 0.308066 +vt 0.324943 0.312263 +vt 0.324464 0.314893 +vt 0.324383 0.312228 +vt 0.367593 0.306747 +vt 0.367298 0.315012 +vt 0.367298 0.307307 +vt 0.358428 0.314605 +vt 0.357950 0.311976 +vt 0.358510 0.311941 +vt 0.367593 0.314421 +vt 0.368064 0.314113 +vt 0.389591 0.251223 +vt 0.390151 0.225955 +vt 0.390151 0.251223 +vt 0.299183 0.315122 +vt 0.297725 0.313022 +vt 0.299183 0.312390 +vt 0.358569 0.300384 +vt 0.358274 0.300944 +vt 0.315983 0.312604 +vt 0.315423 0.314712 +vt 0.315423 0.312604 +vt 0.365944 0.307307 +vt 0.363284 0.306747 +vt 0.358274 0.308649 +vt 0.299183 0.317229 +vt 0.297725 0.315392 +vt 0.292577 0.312539 +vt 0.294247 0.310698 +vt 0.294247 0.312806 +vt 0.314965 0.312774 +vt 0.314405 0.313365 +vt 0.358510 0.309209 +vt 0.357950 0.311941 +vt 0.318019 0.310698 +vt 0.317459 0.312774 +vt 0.376419 0.310669 +vt 0.376751 0.309046 +vt 0.376751 0.311120 +vt 0.358569 0.309209 +vt 0.296266 0.312535 +vt 0.297725 0.310698 +vt 0.297725 0.312806 +vt 0.365944 0.315012 +vt 0.358584 0.315012 +vt 0.361208 0.315572 +vt 0.358584 0.315572 +vt 0.323263 0.313195 +vt 0.323823 0.312604 +vt 0.323823 0.313195 +vt 0.376419 0.314421 +vt 0.325401 0.313430 +vt 0.325961 0.310698 +vt 0.325961 0.313430 +vt 0.361208 0.315012 +vt 0.363284 0.315572 +vt 0.292577 0.316376 +vt 0.294247 0.315537 +vt 0.294247 0.317229 +vt 0.329117 0.308626 +vt 0.326458 0.308066 +vt 0.361208 0.307307 +vt 0.358584 0.306747 +vt 0.361208 0.306747 +vt 0.324383 0.312604 +vt 0.323823 0.314296 +vt 0.316441 0.315199 +vt 0.317001 0.312576 +vt 0.317001 0.315199 +vt 0.363284 0.307307 +vt 0.329117 0.316331 +vt 0.329413 0.316891 +vt 0.326458 0.316891 +vt 0.376714 0.299940 +vt 0.376419 0.308766 +vt 0.376419 0.299940 +vt 0.322958 0.312390 +vt 0.387122 0.251223 +vt 0.387682 0.225955 +vt 0.387682 0.251223 +vt 0.313845 0.312806 +vt 0.323061 0.312390 +vt 0.322501 0.315013 +vt 0.376419 0.314126 +vt 0.392060 0.251223 +vt 0.392620 0.225955 +vt 0.392620 0.251223 +vt 0.314863 0.312774 +vt 0.292229 0.312539 +vt 0.292577 0.310710 +vt 0.292229 0.314908 +vt 0.292577 0.314908 +vt 0.294247 0.317217 +vt 0.294595 0.315388 +vt 0.294595 0.317217 +vt 0.294247 0.315388 +vt 0.294595 0.313019 +vt 0.294247 0.313019 +vt 0.294595 0.311551 +vt 0.292229 0.316376 +vt 0.376751 0.313108 +vt 0.376448 0.311591 +vt 0.296266 0.314905 +vt 0.297725 0.315537 +vt 0.296266 0.317229 +vt 0.296266 0.315122 +vt 0.297725 0.311555 +vt 0.299183 0.310698 +vt 0.296266 0.312390 +vt 0.296266 0.316373 +vt 0.297725 0.317229 +vt 0.325098 0.314037 +vt 0.325401 0.312521 +vt 0.325401 0.314508 +vt 0.296266 0.310698 +vt 0.326293 0.312773 +vt 0.325961 0.311149 +vt 0.326293 0.310698 +vt 0.322501 0.310698 +vt 0.321583 0.312576 +vt 0.321583 0.310698 +vt 0.322413 0.312576 +vt 0.321583 0.314106 +vt 0.325401 0.312228 +vt 0.324383 0.310698 +vt 0.325401 0.310698 +vt 0.323518 0.312604 +vt 0.316441 0.312604 +vt 0.385213 0.302065 +vt 0.383562 0.303149 +vt 0.376855 0.298608 +vt 0.374831 0.299940 +vt 0.392843 0.307628 +vt 0.393708 0.306746 +vt 0.393708 0.307628 +vt 0.394795 0.226838 +vt 0.393930 0.225955 +vt 0.394795 0.225955 +vt 0.397293 0.304029 +vt 0.398123 0.303148 +vt 0.398123 0.304029 +vt 0.399178 0.226838 +vt 0.398348 0.225955 +vt 0.399178 0.225955 +vt 0.397068 0.226838 +vt 0.396151 0.225955 +vt 0.397068 0.225955 +vt 0.368033 0.242696 +vt 0.372224 0.227288 +vt 0.377236 0.242698 +vt 0.381034 0.227039 +vt 0.358902 0.242701 +vt 0.363089 0.227303 +vt 0.312383 0.245309 +vt 0.300128 0.306323 +vt 0.304329 0.303546 +vt 0.367593 0.305399 +vt 0.365536 0.306747 +vt 0.295417 0.309437 +vt 0.395014 0.300820 +vt 0.395931 0.299939 +vt 0.395931 0.300820 +vt 0.316689 0.248156 +vt 0.309756 0.243572 +vt 0.335283 0.225955 +vt 0.326458 0.226838 +vt 0.326458 0.225955 +vt 0.321264 0.251180 +vt 0.309227 0.300308 +vt 0.316441 0.310698 +vt 0.317459 0.312576 +vt 0.316441 0.312576 +vt 0.375948 0.314113 +vt 0.368153 0.299940 +vt 0.375859 0.299940 +vt 0.323580 0.233563 +vt 0.344109 0.299709 +vt 0.334749 0.316891 +vt 0.307778 0.313158 +vt 0.312072 0.225955 +vt 0.319005 0.230539 +vt 0.310180 0.310698 +vt 0.292800 0.269528 +vt 0.297993 0.254424 +vt 0.314699 0.227692 +vt 0.307778 0.313158 +vt 0.308583 0.310698 +vt 0.321583 0.313062 +vt 0.312589 0.310698 +vt 0.370159 0.299940 +vt 0.391603 0.299275 +vt 0.390368 0.225955 +vt 0.389133 0.302769 +vt 0.387899 0.225955 +vt 0.386664 0.306059 +vt 0.385430 0.225955 +vt 0.313388 0.310698 +vt 0.356072 0.318035 +vt 0.355974 0.309853 +vt 0.385202 0.311974 +vt 0.344050 0.317360 +vt 0.319986 0.313052 +vt 0.310985 0.313121 +vt 0.383439 0.303149 +vt 0.318376 0.313052 +vt 0.302190 0.310698 +vt 0.367121 0.315572 +vt 0.351814 0.318679 +vt 0.351814 0.310630 +vt 0.349537 0.228740 +vt 0.344700 0.228610 +vt 0.353851 0.228856 +vt 0.358584 0.228983 +vt 0.335283 0.324984 +vt 0.334716 0.316891 +vt 0.324935 0.314893 +vt 0.367593 0.315572 +vt 0.357958 0.314605 +vt 0.367593 0.314126 +vt 0.389591 0.225955 +vt 0.358569 0.300944 +vt 0.315983 0.314712 +vt 0.297725 0.317220 +vt 0.314965 0.313365 +vt 0.358510 0.311941 +vt 0.318019 0.312774 +vt 0.376545 0.308766 +vt 0.358569 0.308649 +vt 0.296266 0.310707 +vt 0.323263 0.312604 +vt 0.363284 0.315012 +vt 0.326458 0.308626 +vt 0.358584 0.307307 +vt 0.324383 0.314296 +vt 0.326458 0.316331 +vt 0.376714 0.308766 +vt 0.322958 0.310698 +vt 0.387122 0.225955 +vt 0.313845 0.310698 +vt 0.323061 0.315013 +vt 0.392060 0.225955 +vt 0.314863 0.310698 +vt 0.292229 0.310710 +vt 0.294247 0.311551 +vt 0.376562 0.313400 +vt 0.325212 0.312228 +vt 0.326087 0.313053 +vt 0.322501 0.312576 +vt 0.322413 0.314106 +vt 0.392843 0.306746 +vt 0.393930 0.226838 +vt 0.397293 0.303148 +vt 0.398348 0.226838 +vt 0.396151 0.226838 +vt 0.370201 0.225955 +vt 0.379383 0.225955 +vt 0.361031 0.225955 +vt 0.395014 0.299939 +vt 0.335283 0.226838 +vt 0.305864 0.312750 +vt 0.305396 0.313502 +vt 0.305396 0.312283 +vt 0.305864 0.313060 +vt 0.306615 0.313499 +vt 0.306174 0.312749 +vt 0.306174 0.313059 +vt 0.306615 0.312279 +vt 0.303071 0.313022 +vt 0.305396 0.310705 +vt 0.305396 0.313029 +vt 0.381792 0.307352 +vt 0.383439 0.316823 +vt 0.381792 0.316815 +vt 0.380147 0.307361 +vt 0.380147 0.316823 +vt 0.378501 0.307352 +vt 0.378501 0.316815 +vt 0.376855 0.316823 +vt 0.351640 0.310686 +vt 0.349994 0.314862 +vt 0.349994 0.310630 +vt 0.380930 0.303153 +vt 0.379364 0.303153 +vt 0.348349 0.310686 +vt 0.305396 0.312275 +vt 0.306398 0.311677 +vt 0.306973 0.312279 +vt 0.306398 0.311275 +vt 0.306973 0.310702 +vt 0.305997 0.311274 +vt 0.305396 0.310698 +vt 0.299183 0.313705 +vt 0.302190 0.310707 +vt 0.302190 0.313713 +vt 0.353943 0.296282 +vt 0.356072 0.286908 +vt 0.356072 0.296293 +vt 0.351814 0.286908 +vt 0.351814 0.296293 +vt 0.353944 0.309842 +vt 0.356072 0.300469 +vt 0.356072 0.309853 +vt 0.351814 0.300469 +vt 0.348349 0.311642 +vt 0.344109 0.312759 +vt 0.344181 0.310630 +vt 0.352827 0.282739 +vt 0.353943 0.286897 +vt 0.353944 0.300457 +vt 0.355060 0.296299 +vt 0.348311 0.312759 +vt 0.344181 0.314888 +vt 0.335426 0.274629 +vt 0.344109 0.282073 +vt 0.335283 0.282073 +vt 0.344109 0.228586 +vt 0.335283 0.253862 +vt 0.335283 0.228586 +vt 0.335564 0.264830 +vt 0.343968 0.274629 +vt 0.326458 0.243600 +vt 0.344109 0.253862 +vt 0.335283 0.243600 +vt 0.326600 0.253984 +vt 0.335143 0.253984 +vt 0.326739 0.267024 +vt 0.335283 0.282798 +vt 0.326458 0.282798 +vt 0.395931 0.283183 +vt 0.395791 0.274739 +vt 0.395014 0.283183 +vt 0.394903 0.274739 +vt 0.395654 0.263837 +vt 0.395014 0.251231 +vt 0.394795 0.263837 +vt 0.395931 0.225955 +vt 0.395014 0.225955 +vt 0.326458 0.308066 +vt 0.397068 0.243600 +vt 0.396927 0.251633 +vt 0.396151 0.243600 +vt 0.396791 0.262080 +vt 0.396039 0.251633 +vt 0.396151 0.274007 +vt 0.395931 0.262080 +vt 0.396151 0.299275 +vt 0.397068 0.274007 +vt 0.397068 0.299275 +vt 0.398123 0.251231 +vt 0.397293 0.225955 +vt 0.398123 0.225955 +vt 0.398348 0.302769 +vt 0.399178 0.277502 +vt 0.399178 0.302769 +vt 0.398900 0.264045 +vt 0.398348 0.277502 +vt 0.398123 0.264045 +vt 0.397845 0.265241 +vt 0.397293 0.251231 +vt 0.397179 0.277090 +vt 0.397982 0.277090 +vt 0.398234 0.252568 +vt 0.399037 0.252568 +vt 0.397293 0.286393 +vt 0.398123 0.286393 +vt 0.398348 0.243600 +vt 0.399178 0.243600 +vt 0.394795 0.243600 +vt 0.394654 0.253448 +vt 0.393930 0.243600 +vt 0.394517 0.265895 +vt 0.393817 0.253448 +vt 0.393930 0.280791 +vt 0.393708 0.265895 +vt 0.393930 0.306059 +vt 0.394795 0.280791 +vt 0.394795 0.306059 +vt 0.393708 0.251231 +vt 0.392843 0.225955 +vt 0.393708 0.225955 +vt 0.393430 0.266816 +vt 0.392843 0.251231 +vt 0.392730 0.279725 +vt 0.393567 0.279725 +vt 0.392843 0.289991 +vt 0.393708 0.289991 +vt 0.392339 0.263150 +vt 0.391603 0.251223 +vt 0.391493 0.273597 +vt 0.391386 0.263150 +vt 0.392478 0.273597 +vt 0.391603 0.281630 +vt 0.391243 0.252037 +vt 0.390368 0.243592 +vt 0.391386 0.243592 +vt 0.391386 0.300820 +vt 0.390368 0.275545 +vt 0.391386 0.275545 +vt 0.391105 0.262939 +vt 0.390258 0.252037 +vt 0.389870 0.264680 +vt 0.389023 0.276157 +vt 0.388916 0.264680 +vt 0.389133 0.251223 +vt 0.390008 0.276157 +vt 0.389133 0.285125 +vt 0.388916 0.304029 +vt 0.387899 0.278754 +vt 0.388916 0.278754 +vt 0.388635 0.264744 +vt 0.387789 0.252895 +vt 0.388774 0.252895 +vt 0.387899 0.243592 +vt 0.388916 0.243592 +vt 0.386664 0.251223 +vt 0.387401 0.266119 +vt 0.386554 0.278567 +vt 0.386447 0.266119 +vt 0.387539 0.278567 +vt 0.386664 0.288414 +vt 0.386305 0.253858 +vt 0.385430 0.243592 +vt 0.386447 0.243592 +vt 0.386166 0.266768 +vt 0.385319 0.253858 +vt 0.385430 0.282352 +vt 0.386447 0.282352 +vt 0.386447 0.307628 +vt 0.387682 0.288414 +vt 0.390151 0.285125 +vt 0.392620 0.281630 +vt 0.383439 0.307361 +vt 0.376855 0.307361 +vt 0.350858 0.314891 +vt 0.381793 0.303149 +vt 0.378501 0.303149 +vt 0.349131 0.314891 +vt 0.305997 0.311675 +vt 0.353943 0.282733 +vt 0.353944 0.296293 +vt 0.348349 0.313876 +vt 0.343831 0.264830 +vt 0.335006 0.267024 +vt 0.395931 0.251231 +vt 0.397068 0.265241 +vt 0.392620 0.266816 +vt 0.391603 0.225955 +vt 0.390368 0.300820 +vt 0.390151 0.262939 +vt 0.389133 0.225955 +vt 0.387899 0.304029 +vt 0.387682 0.264744 +vt 0.386664 0.225955 +vt 0.385213 0.266768 +vt 0.385430 0.307628 +s 0 f 34/1/1 36/2/1 33/3/1 f 37/4/2 39/5/2 40/6/2 f 40/6/3 41/7/4 42/8/5 @@ -1837,2372 +1750,3647 @@ f 149/112/49 150/113/49 151/114/49 f 152/115/1 154/116/1 79/117/1 f 155/118/8 157/119/8 158/120/8 f 157/119/50 160/121/50 158/120/50 -f 159/122/51 162/123/24 160/121/51 -f 161/124/52 164/125/53 162/123/54 +f 159/122/51 162/123/52 160/121/51 +f 161/124/53 164/125/54 162/123/55 f 165/126/8 166/127/8 167/128/8 -f 76/129/8 87/130/8 168/131/8 -f 166/132/16 79/133/16 154/134/16 -f 169/135/55 156/136/8 155/118/8 -f 169/135/56 110/66/8 171/137/8 -f 172/138/57 145/108/1 173/139/58 -f 139/101/1 172/138/59 174/140/1 -f 145/108/1 175/141/1 173/139/60 -f 176/142/1 139/101/1 174/140/1 -f 137/98/1 176/142/1 177/143/1 -f 178/144/1 137/98/1 177/143/1 -f 179/145/8 156/136/8 170/146/61 -f 180/147/8 110/66/8 109/67/8 -f 180/147/8 107/64/8 181/148/8 -f 182/149/8 107/64/8 66/65/8 -f 183/150/8 49/16/8 179/145/8 -f 33/3/1 184/151/1 175/141/1 -f 186/152/8 188/153/8 185/154/8 -f 187/155/62 190/156/62 188/153/62 -f 189/157/63 192/158/63 190/156/63 -f 191/159/64 194/160/65 192/158/64 -f 195/161/1 197/162/1 198/163/1 -f 199/164/1 201/165/1 202/166/1 -f 203/167/66 205/168/67 206/169/68 -f 207/170/69 206/169/69 208/171/69 -f 209/172/70 208/171/70 210/173/70 -f 212/174/8 210/173/8 211/175/8 -f 91/176/1 214/177/1 215/178/1 -f 99/179/71 216/180/72 217/181/20 -f 103/182/73 217/181/73 218/183/73 -f 106/184/74 218/183/74 219/185/74 -f 220/186/8 106/184/8 219/185/8 -f 220/187/75 109/188/75 108/189/75 -f 221/190/8 223/191/8 224/192/8 -f 225/193/76 227/194/77 228/195/78 -f 229/196/79 226/197/79 225/193/80 -f 231/198/81 230/199/81 229/196/81 -f 232/200/1 234/201/1 233/202/1 -f 235/203/8 237/204/8 238/205/8 -f 239/206/82 241/207/83 242/208/84 -f 243/209/85 240/210/85 239/206/86 -f 245/211/87 244/212/87 243/209/87 -f 246/213/1 248/214/1 247/215/1 -f 48/216/88 224/217/88 45/218/88 -f 221/219/15 82/220/15 117/221/15 -f 233/222/75 138/223/75 137/224/75 -f 85/225/88 238/226/88 116/227/88 -f 247/228/75 142/229/75 139/230/75 -f 235/231/15 154/232/15 153/233/15 -f 79/234/88 115/235/88 152/236/88 -f 112/237/15 75/238/15 111/239/15 -f 140/240/75 33/241/75 145/242/75 -f 250/243/16 252/244/16 249/245/16 -f 87/246/16 80/247/16 81/248/16 -f 254/249/16 256/250/16 253/251/16 -f 80/252/89 76/253/89 75/254/89 -f 250/255/17 48/256/17 62/257/17 -f 85/258/1 256/259/1 253/260/1 -f 83/261/8 250/262/8 251/263/8 -f 82/264/1 249/265/1 48/266/1 -f 252/267/90 83/268/90 82/269/90 -f 84/270/8 255/271/8 166/272/8 -f 256/273/90 166/274/90 154/275/90 -f 254/276/17 85/277/17 84/278/17 -f 258/279/91 260/280/91 257/281/91 -f 184/282/92 257/283/92 260/284/92 -f 183/285/92 260/284/92 259/286/92 -f 50/287/92 259/286/92 258/288/92 -f 36/289/92 258/288/92 50/287/92 -f 269/290/91 271/291/91 272/292/91 -f 269/293/8 280/294/8 270/295/8 -f 293/296/93 292/297/1 294/298/94 -f 278/299/1 293/296/95 295/300/1 -f 296/301/96 286/302/8 285/303/8 -f 296/301/97 282/304/8 298/305/8 -f 299/306/8 286/302/8 297/307/98 -f 300/308/8 282/304/8 281/309/8 -f 300/308/8 279/310/8 301/311/8 -f 302/312/8 279/310/8 269/293/8 -f 292/297/1 303/313/1 294/298/99 -f 304/314/1 278/299/1 295/300/1 -f 274/315/1 304/314/1 305/316/1 -f 306/317/1 274/315/1 305/316/1 -f 262/318/100 267/319/100 263/320/100 -f 269/290/91 306/321/91 302/322/91 -f 303/313/101 268/323/101 307/324/102 -f 299/306/103 262/325/103 261/326/103 -f 310/327/104 312/328/104 309/329/104 -f 310/330/105 262/331/105 308/332/106 -f 311/333/107 308/334/108 307/335/109 -f 268/336/110 311/337/110 307/338/111 -f 258/339/92 268/340/92 50/341/92 -f 283/342/91 139/343/91 135/344/91 -f 294/345/112 314/346/113 293/347/114 -f 34/348/75 263/349/75 35/350/75 -f 265/351/75 156/352/75 49/353/75 -f 306/354/107 181/355/107 182/356/107 -f 35/350/75 267/357/75 51/358/75 -f 303/359/115 313/360/116 294/345/117 -f 316/361/118 179/362/119 170/363/120 -f 308/364/121 175/365/107 184/366/107 -f 291/367/75 158/368/75 157/369/75 -f 275/370/75 107/371/75 109/188/75 -f 295/372/122 319/373/122 171/374/122 -f 267/357/75 52/375/75 51/358/75 -f 320/376/123 299/377/124 297/378/125 -f 302/379/107 182/356/107 178/380/107 -f 298/381/107 176/382/107 174/383/107 -f 183/285/126 308/384/127 184/282/126 -f 303/385/107 183/386/107 179/387/107 -f 268/340/107 36/388/107 50/341/107 -f 288/389/75 144/390/75 143/391/75 -f 300/392/107 177/393/107 176/382/107 -f 319/394/128 169/395/129 171/396/128 -f 270/397/75 37/398/75 38/399/75 -f 304/400/107 171/401/107 180/402/107 -f 289/403/75 110/404/75 155/405/75 -f 284/406/75 135/407/75 136/408/75 -f 305/409/107 180/402/107 181/355/107 -f 271/410/75 38/399/75 56/411/75 -f 53/412/75 271/410/75 56/411/75 -f 309/413/75 258/414/75 257/415/75 -f 282/416/75 142/229/75 139/230/75 -f 287/417/91 145/418/91 144/419/91 -f 286/420/75 33/241/75 145/242/75 -f 277/421/75 105/422/75 104/423/75 -f 36/388/92 309/424/92 257/425/92 -f 280/426/91 137/427/91 37/428/91 -f 177/393/107 302/379/107 178/380/107 -f 279/429/75 138/223/75 137/224/75 -f 313/430/130 317/431/131 316/361/132 -f 314/432/133 316/361/134 322/433/135 -f 321/434/131 324/435/136 323/436/131 -f 320/437/137 326/438/138 324/435/139 -f 325/439/140 328/440/141 326/438/142 -f 318/441/141 322/433/143 319/394/141 -f 317/442/144 303/443/144 179/444/144 -f 325/445/145 297/378/146 296/446/147 -f 322/433/148 170/363/149 169/395/150 -f 175/447/151 324/435/152 173/448/153 -f 293/347/154 318/449/155 295/450/155 -f 173/448/156 326/438/157 172/451/158 -f 327/452/159 296/446/160 298/453/159 -f 299/454/144 323/455/144 175/456/144 -f 172/451/161 328/440/162 174/457/162 -f 328/458/122 298/459/122 174/460/122 -f 215/461/16 62/462/16 83/463/16 -f 202/464/16 84/465/16 166/466/16 -f 85/467/16 236/468/16 154/469/16 -f 198/470/16 86/471/16 76/472/16 -f 79/473/16 113/474/16 75/475/16 -f 242/208/163 238/476/1 235/477/1 -f 228/195/164 224/478/1 221/479/1 -f 198/480/15 88/481/15 76/482/15 -f 165/483/88 197/484/88 86/485/88 -f 202/486/15 167/487/15 166/488/15 -f 89/489/88 201/490/88 84/491/88 -f 61/492/88 214/493/88 62/494/88 -f 92/495/165 213/496/8 216/180/166 -f 204/497/167 200/498/8 205/168/168 -f 193/499/169 196/500/8 194/160/170 -f 163/501/8 167/128/8 164/125/8 -f 151/114/1 153/502/1 152/115/1 -f 127/85/1 117/503/1 116/74/1 -f 123/82/171 115/504/1 112/505/1 -f 70/79/172 111/506/1 67/68/1 -f 215/507/15 90/508/15 83/509/15 -f 97/510/8 90/50/8 93/55/8 -f 69/511/173 88/47/8 94/52/174 -f 77/512/88 67/513/88 78/514/88 -f 59/515/8 64/26/8 60/23/8 -f 44/10/1 46/516/1 45/11/1 -f 48/517/16 222/518/16 82/519/16 -f 262/520/107 272/521/107 269/522/107 +f 76/37/8 87/129/8 168/130/8 +f 166/131/16 79/132/16 154/133/16 +f 169/134/56 156/135/8 155/118/8 +f 169/134/57 110/66/8 171/136/8 +f 172/137/58 145/108/1 173/138/59 +f 139/101/1 172/137/60 174/139/1 +f 145/108/1 175/140/1 173/138/61 +f 176/141/1 139/101/1 174/139/1 +f 137/98/1 176/141/1 177/142/1 +f 178/143/1 137/98/1 177/142/1 +f 179/144/8 156/135/8 170/145/62 +f 180/146/8 110/66/8 109/67/8 +f 180/146/8 107/64/8 181/147/8 +f 182/148/8 107/64/8 66/65/8 +f 183/149/8 49/16/8 179/144/8 +f 33/3/1 184/150/1 175/140/1 +f 186/151/8 188/152/8 185/153/8 +f 187/154/63 190/155/63 188/152/63 +f 189/156/64 192/157/64 190/155/64 +f 191/158/65 194/159/66 192/157/65 +f 195/160/1 197/71/1 198/73/1 +f 199/161/1 201/162/1 202/163/1 +f 203/164/67 205/165/68 206/166/69 +f 207/167/70 206/166/70 208/168/70 +f 209/169/71 208/168/71 210/170/71 +f 212/171/8 210/170/8 211/172/8 +f 91/173/1 214/174/1 215/175/1 +f 99/176/72 216/177/73 217/178/20 +f 103/179/74 217/178/74 218/180/74 +f 106/181/75 218/180/75 219/182/75 +f 220/183/8 106/181/8 219/182/8 +f 220/184/76 109/185/76 108/186/76 +f 221/187/8 223/173/8 224/188/8 +f 225/189/77 227/190/78 228/191/79 +f 229/192/80 226/193/80 225/189/81 +f 231/194/82 230/195/82 229/192/82 +f 232/196/1 234/197/1 233/198/1 +f 235/199/8 237/162/8 238/200/8 +f 239/201/83 241/202/84 242/203/85 +f 243/204/86 240/205/86 239/201/87 +f 245/206/88 244/207/88 243/204/88 +f 246/208/1 248/209/1 247/210/1 +f 48/211/89 224/212/89 45/213/89 +f 221/214/90 82/215/90 117/216/90 +f 233/217/76 138/218/76 137/219/76 +f 85/220/89 238/221/89 116/222/89 +f 247/223/76 142/224/76 139/225/76 +f 235/226/15 154/227/15 153/228/15 +f 79/229/91 115/230/91 152/231/91 +f 112/232/90 75/233/90 111/234/90 +f 140/235/76 33/236/76 145/237/76 +f 250/238/16 252/239/16 249/240/16 +f 87/241/16 80/242/16 81/243/16 +f 254/244/16 256/245/16 253/246/16 +f 80/247/92 76/248/92 75/249/92 +f 250/250/93 48/251/93 62/43/93 +f 85/252/1 256/253/1 253/254/1 +f 83/255/8 250/256/8 251/257/8 +f 82/258/1 249/255/1 48/259/1 +f 252/260/94 83/249/94 82/248/94 +f 84/253/8 255/261/8 166/254/8 +f 256/262/92 166/263/92 154/264/92 +f 254/265/93 85/266/93 84/267/93 +f 258/246/95 260/268/95 257/244/95 +f 184/269/96 257/269/97 260/269/97 +f 183/269/97 260/269/97 259/269/97 +f 50/269/97 259/269/97 258/269/97 +f 36/269/97 258/269/97 50/269/97 +f 269/270/95 271/271/95 272/272/95 +f 269/273/8 280/274/8 270/275/8 +f 293/276/98 292/277/1 294/278/99 +f 278/279/1 293/276/100 295/280/1 +f 296/281/101 286/282/8 285/283/8 +f 296/281/102 282/284/8 298/285/8 +f 299/286/8 286/282/8 297/287/103 +f 300/288/8 282/284/8 281/289/8 +f 300/288/8 279/290/8 301/291/8 +f 302/292/8 279/290/8 269/273/8 +f 292/277/1 303/293/1 294/278/104 +f 304/294/1 278/279/1 295/280/1 +f 274/295/1 304/294/1 305/296/1 +f 306/297/1 274/295/1 305/296/1 +f 262/298/105 267/299/105 263/300/105 +f 269/270/95 306/269/95 302/301/95 +f 303/293/106 268/302/106 307/303/107 +f 299/286/108 262/304/108 261/305/108 +f 310/306/109 312/33/109 309/35/109 +f 310/307/110 262/308/110 308/309/111 +f 311/310/112 308/311/113 307/312/114 +f 268/313/115 311/314/115 307/315/116 +f 258/316/97 268/317/117 50/316/97 +f 283/318/95 139/319/95 135/320/95 +f 294/321/118 314/322/119 293/323/120 +f 34/324/76 263/325/76 35/243/76 +f 265/326/76 156/327/76 49/328/76 +f 306/329/121 181/330/121 182/267/121 +f 35/243/122 267/331/122 51/241/122 +f 303/332/123 313/333/124 294/321/125 +f 316/334/126 179/335/127 170/336/128 +f 308/337/129 175/338/112 184/217/112 +f 291/339/76 158/340/76 157/240/76 +f 275/341/76 107/342/76 109/185/76 +f 295/343/130 319/344/130 171/345/130 +f 267/331/76 52/346/76 51/241/76 +f 320/347/131 299/348/132 297/349/133 +f 302/350/134 182/267/134 178/266/134 +f 298/351/112 176/352/112 174/353/112 +f 183/269/135 308/269/136 184/269/135 +f 303/354/112 183/355/112 179/356/112 +f 268/317/112 36/357/112 50/316/112 +f 288/358/76 144/359/76 143/360/76 +f 300/361/112 177/362/112 176/352/112 +f 319/363/137 169/364/138 171/365/137 +f 270/366/76 37/367/76 38/34/76 +f 304/368/112 171/369/112 180/370/112 +f 289/371/76 110/372/76 155/355/76 +f 284/373/76 135/374/76 136/375/76 +f 305/376/112 180/370/112 181/330/112 +f 271/377/76 38/34/76 56/378/76 +f 53/379/76 271/377/76 56/378/76 +f 309/380/76 258/381/76 257/382/76 +f 282/383/76 142/224/76 139/225/76 +f 287/384/95 145/385/95 144/386/95 +f 286/387/76 33/236/76 145/237/76 +f 277/388/76 105/389/76 104/223/76 +f 36/357/97 309/390/97 257/357/97 +f 280/391/95 137/392/95 37/393/95 +f 177/362/139 302/350/139 178/266/139 +f 279/394/76 138/218/76 137/219/76 +f 313/395/140 317/396/141 316/334/142 +f 314/397/143 316/334/144 322/398/145 +f 321/399/141 324/400/146 323/401/141 +f 320/402/147 326/403/148 324/400/149 +f 325/404/150 328/405/151 326/403/152 +f 318/406/151 322/398/153 319/363/151 +f 317/407/154 303/408/154 179/345/154 +f 325/409/155 297/349/156 296/410/157 +f 322/398/158 170/336/159 169/364/160 +f 175/411/161 324/400/162 173/412/163 +f 293/323/164 318/413/165 295/414/165 +f 173/412/166 326/403/167 172/415/168 +f 327/416/169 296/410/170 298/417/169 +f 299/418/154 323/419/154 175/420/154 +f 172/415/171 328/405/172 174/421/172 +f 328/422/130 298/423/130 174/424/130 +f 215/425/16 62/426/16 83/427/16 +f 202/428/16 84/429/16 166/426/16 +f 85/430/16 236/431/16 154/432/16 +f 198/431/16 86/433/16 76/224/16 +f 79/218/16 113/434/16 75/328/16 +f 242/203/173 238/435/1 235/436/1 +f 228/191/174 224/437/1 221/438/1 +f 198/439/90 88/440/90 76/441/90 +f 165/442/91 197/443/91 86/444/91 +f 202/445/15 167/446/15 166/447/15 +f 89/448/89 201/449/89 84/450/89 +f 61/451/89 214/452/89 62/453/89 +f 92/454/175 213/455/8 216/177/176 +f 204/456/177 200/457/8 205/165/178 +f 193/458/179 196/459/8 194/159/180 +f 163/460/8 167/128/8 164/125/8 +f 151/114/1 153/461/1 152/115/1 +f 127/85/1 117/462/1 116/74/1 +f 123/82/181 115/463/1 112/464/1 +f 70/79/182 111/465/1 67/68/1 +f 215/466/90 90/467/90 83/468/90 +f 97/469/8 90/50/8 93/55/8 +f 69/470/183 88/47/8 94/52/184 +f 77/471/91 67/472/91 78/473/91 +f 59/474/8 64/26/8 60/23/8 +f 44/10/1 46/475/1 45/11/1 +f 48/476/16 222/477/16 82/478/16 +f 262/479/112 272/480/112 269/481/112 f 34/1/1 35/92/1 36/2/1 -f 37/4/175 38/97/175 39/5/175 -f 40/6/176 39/5/176 41/7/177 -f 42/8/178 41/7/179 43/9/180 -f 45/11/1 46/516/1 47/12/1 +f 37/4/185 38/97/185 39/5/185 +f 40/6/186 39/5/186 41/7/187 +f 42/8/188 41/7/189 43/9/190 +f 45/11/1 46/475/1 47/12/1 f 50/14/8 51/61/8 52/15/8 -f 53/17/181 54/20/181 55/18/181 -f 54/20/182 57/22/183 58/21/184 -f 57/22/185 59/515/186 60/23/186 -f 61/24/8 62/523/8 63/25/8 -f 64/27/15 63/524/15 47/28/15 -f 76/30/16 77/525/16 78/31/16 -f 63/33/16 62/526/16 48/34/16 -f 75/36/1 80/527/1 81/37/1 -f 83/39/16 84/528/16 85/40/16 -f 87/42/17 81/529/17 79/43/17 -f 68/45/8 77/530/8 76/46/8 -f 89/48/8 84/531/8 83/49/8 -f 71/51/187 69/511/188 94/52/189 -f 96/54/190 97/510/190 93/55/190 -f 73/57/191 71/51/192 95/53/191 -f 101/59/193 96/54/193 98/56/194 -f 73/57/195 100/58/195 52/15/195 -f 104/62/196 101/59/196 102/60/196 +f 53/17/191 54/20/191 55/18/191 +f 54/20/192 57/22/193 58/21/194 +f 57/22/195 59/474/196 60/23/196 +f 61/24/8 62/482/8 63/25/8 +f 64/27/15 63/483/15 47/28/15 +f 76/30/16 77/484/16 78/31/16 +f 63/33/16 62/378/16 48/34/16 +f 75/36/1 80/485/1 81/37/1 +f 83/39/16 84/242/16 85/40/16 +f 87/42/17 81/250/17 79/43/17 +f 68/45/8 77/486/8 76/46/8 +f 89/48/8 84/487/8 83/49/8 +f 71/51/197 69/470/198 94/52/199 +f 96/54/200 97/469/200 93/55/200 +f 73/57/201 71/51/202 95/53/201 +f 101/59/203 96/54/203 98/56/204 +f 73/57/205 100/58/205 52/15/205 +f 104/62/206 101/59/206 102/60/206 f 107/64/8 53/17/8 56/19/8 f 110/66/8 104/62/8 105/63/8 -f 67/68/1 111/506/1 75/69/1 -f 112/71/8 113/532/8 114/72/8 -f 116/74/1 117/503/1 82/75/1 -f 72/77/197 118/87/198 119/78/199 -f 120/80/200 121/89/47 122/81/201 -f 124/83/202 125/91/203 126/84/204 -f 74/86/205 128/533/205 118/87/206 -f 129/88/207 130/94/207 121/89/207 -f 131/90/208 132/96/208 125/91/209 -f 34/1/210 128/533/210 74/86/210 -f 133/93/211 134/103/211 130/94/211 -f 135/95/212 136/100/212 132/96/212 +f 67/68/1 111/465/1 75/69/1 +f 112/71/8 113/488/8 114/72/8 +f 116/74/1 117/462/1 82/75/1 +f 72/77/207 118/87/208 119/78/209 +f 120/80/210 121/89/47 122/81/211 +f 124/83/212 125/91/213 126/84/214 +f 74/86/215 128/489/215 118/87/216 +f 129/88/217 130/94/217 121/89/217 +f 131/90/218 132/96/218 125/91/219 +f 34/1/220 128/489/220 74/86/220 +f 133/93/221 134/103/221 130/94/221 +f 135/95/222 136/100/222 132/96/222 f 38/97/1 37/4/1 137/98/1 f 136/100/1 135/95/1 139/101/1 f 134/103/1 133/93/1 141/104/1 -f 142/106/1 143/534/1 144/107/1 -f 144/107/213 143/534/213 146/109/213 -f 147/110/214 146/109/214 148/111/215 -f 149/112/216 148/111/217 150/113/216 -f 152/115/1 153/502/1 154/116/1 -f 155/118/8 156/136/8 157/119/8 -f 157/119/218 159/122/218 160/121/218 -f 159/122/219 161/124/220 162/123/221 -f 161/124/222 163/501/223 164/125/223 -f 165/126/8 86/535/8 166/127/8 -f 76/129/8 86/536/8 87/130/8 -f 166/132/16 86/537/16 79/133/16 -f 169/135/224 170/146/225 156/136/8 -f 169/135/226 155/118/8 110/66/8 -f 172/138/227 142/106/1 145/108/1 -f 139/101/1 142/106/1 172/138/228 -f 145/108/1 33/3/1 175/141/1 -f 176/142/1 138/102/1 139/101/1 -f 137/98/1 138/102/1 176/142/1 -f 178/144/1 65/99/1 137/98/1 -f 179/145/8 49/16/8 156/136/8 -f 180/147/8 171/137/8 110/66/8 -f 180/147/8 109/67/8 107/64/8 -f 182/149/8 181/148/8 107/64/8 -f 183/150/8 50/14/8 49/16/8 -f 33/3/1 36/2/1 184/151/1 -f 186/152/8 187/155/8 188/153/8 -f 187/155/229 189/157/229 190/156/229 -f 189/157/230 191/159/230 192/158/230 -f 191/159/231 193/499/232 194/160/233 -f 195/161/1 196/538/1 197/162/1 -f 199/164/1 200/539/1 201/165/1 -f 203/167/234 204/497/235 205/168/236 -f 207/170/237 203/167/238 206/169/237 -f 209/172/239 207/170/239 208/171/239 -f 212/174/8 209/172/8 210/173/8 -f 91/176/1 213/540/1 214/177/1 -f 99/179/240 92/495/241 216/180/242 -f 103/182/243 99/179/244 217/181/243 -f 106/184/245 103/182/245 218/183/245 -f 220/186/8 108/541/8 106/184/8 -f 220/187/75 107/371/75 109/188/75 -f 221/190/8 222/542/8 223/191/8 -f 225/193/246 226/197/247 227/194/248 -f 229/196/249 230/199/249 226/197/249 -f 231/198/250 232/200/250 230/199/250 -f 232/200/1 231/198/1 234/201/1 -f 235/203/8 236/543/8 237/204/8 -f 239/206/251 240/210/252 241/207/253 -f 243/209/254 244/212/254 240/210/254 -f 245/211/255 246/213/255 244/212/255 -f 246/213/1 245/211/1 248/214/1 -f 48/216/88 223/544/88 224/217/88 -f 221/219/15 222/545/15 82/220/15 -f 233/222/75 234/546/75 138/223/75 -f 85/225/88 237/547/88 238/226/88 -f 247/228/75 248/548/75 142/229/75 -f 235/231/15 236/549/15 154/232/15 -f 79/234/88 114/550/88 115/235/88 -f 112/237/15 113/551/15 75/238/15 -f 140/240/75 141/552/75 33/241/75 -f 250/243/16 251/553/16 252/244/16 -f 87/246/16 168/554/16 80/247/16 -f 254/249/16 255/555/16 256/250/16 -f 80/252/89 168/556/89 76/253/89 -f 250/255/17 249/557/17 48/256/17 -f 85/258/1 154/558/1 256/259/1 -f 83/261/8 62/559/8 250/262/8 -f 82/264/1 252/560/1 249/265/1 -f 252/267/90 251/561/90 83/268/90 -f 84/270/8 254/562/8 255/271/8 -f 256/273/90 255/563/90 166/274/90 -f 254/276/17 253/564/17 85/277/17 -f 258/279/91 259/565/91 260/280/91 -f 184/282/92 36/289/92 257/283/92 -f 183/285/92 184/282/92 260/284/92 -f 50/287/92 183/285/92 259/286/92 -f 36/289/92 257/283/92 258/288/92 -f 269/290/91 270/566/91 271/291/91 -f 269/293/8 279/310/8 280/294/8 -f 293/296/256 289/567/1 292/297/1 -f 278/299/1 289/567/1 293/296/257 -f 296/301/258 297/307/259 286/302/8 -f 296/301/260 285/303/8 282/304/8 -f 299/306/8 261/326/8 286/302/8 -f 300/308/8 298/305/8 282/304/8 -f 300/308/8 281/309/8 279/310/8 -f 302/312/8 301/311/8 279/310/8 -f 292/297/1 265/568/1 303/313/1 -f 304/314/1 275/569/1 278/299/1 -f 274/315/1 275/569/1 304/314/1 -f 306/317/1 272/570/1 274/315/1 -f 262/318/100 268/571/100 267/319/100 -f 269/290/91 272/292/91 306/321/91 -f 303/313/261 265/568/261 268/323/261 -f 299/306/262 308/384/263 262/325/262 -f 310/327/104 311/572/104 312/328/104 -f 310/330/264 309/573/264 262/331/264 -f 311/333/107 310/574/107 308/334/265 -f 268/336/266 312/575/266 311/337/266 -f 258/339/107 312/576/107 268/340/107 -f 283/342/91 282/577/91 139/343/91 -f 294/345/267 313/360/268 314/346/269 -f 34/348/75 264/578/75 263/349/75 -f 265/351/75 292/579/75 156/352/75 -f 306/354/107 305/409/107 181/355/107 -f 35/350/75 263/349/75 267/357/75 -f 303/359/270 315/580/270 313/360/271 -f 316/361/272 317/431/273 179/362/273 -f 308/364/274 299/581/107 175/365/107 -f 291/367/75 290/582/75 158/368/75 -f 275/370/75 274/583/75 107/371/75 -f 295/372/122 318/584/122 319/373/122 -f 267/357/75 266/585/75 52/375/75 -f 320/376/275 321/586/276 299/377/276 -f 302/379/107 306/354/107 182/356/107 -f 298/381/107 300/392/107 176/382/107 -f 183/285/92 307/587/277 308/384/278 -f 303/385/107 307/588/279 183/386/107 -f 268/340/107 262/520/107 36/388/107 -f 288/389/75 287/589/75 144/390/75 -f 300/392/107 301/590/107 177/393/107 -f 319/394/280 322/433/281 169/395/282 -f 270/397/75 280/591/75 37/398/75 -f 304/400/107 295/592/107 171/401/107 -f 289/403/75 278/593/75 110/404/75 -f 284/406/75 283/594/75 135/407/75 -f 305/409/107 304/400/107 180/402/107 -f 271/410/75 270/397/75 38/399/75 -f 53/412/75 273/595/75 271/410/75 -f 309/413/75 312/596/75 258/414/75 -f 282/416/75 285/597/75 142/229/75 -f 287/417/91 286/598/91 145/418/91 -f 286/420/75 261/599/75 33/241/75 -f 277/421/75 276/600/75 105/422/75 -f 36/388/107 262/520/107 309/424/107 -f 280/426/91 279/601/91 137/427/91 -f 177/393/107 301/590/107 302/379/107 -f 279/429/75 281/602/75 138/223/75 -f 313/430/283 315/603/131 317/431/131 -f 314/432/284 313/430/285 316/361/286 -f 321/434/131 320/437/287 324/435/288 -f 320/437/289 325/439/290 326/438/291 -f 325/439/292 327/604/141 328/440/141 -f 318/441/141 314/432/293 322/433/294 -f 317/442/144 315/605/144 303/443/144 -f 325/445/295 320/376/296 297/378/297 -f 322/433/298 316/361/299 170/363/300 -f 175/447/301 323/436/301 324/435/302 -f 293/347/303 314/346/304 318/449/305 -f 173/448/306 324/435/307 326/438/308 -f 327/452/309 325/445/310 296/446/311 -f 299/454/144 321/606/144 323/455/144 -f 172/451/312 326/438/313 328/440/314 -f 328/458/122 327/607/122 298/459/122 -f 215/461/16 214/608/16 62/462/16 -f 202/464/16 201/609/16 84/465/16 -f 85/467/16 237/610/16 236/468/16 -f 198/470/16 197/611/16 86/471/16 -f 79/473/16 114/612/16 113/474/16 -f 242/208/315 241/207/316 238/476/1 -f 228/195/317 227/194/318 224/478/1 -f 198/480/15 195/613/15 88/481/15 -f 165/483/88 196/614/88 197/484/88 -f 202/486/15 199/615/15 167/487/15 -f 89/489/88 200/616/88 201/490/88 -f 61/492/88 213/617/88 214/493/88 -f 92/495/319 91/618/8 213/496/8 -f 204/497/320 199/619/8 200/498/8 -f 193/499/321 195/620/8 196/500/8 -f 163/501/8 165/126/8 167/128/8 -f 151/114/1 150/113/1 153/502/1 -f 127/85/1 126/84/1 117/503/1 -f 123/82/322 122/81/323 115/504/1 -f 70/79/324 119/78/325 111/506/1 -f 215/507/15 91/621/15 90/508/15 -f 97/510/8 89/48/8 90/50/8 -f 69/511/326 68/45/8 88/47/8 -f 77/512/88 68/622/88 67/513/88 -f 59/515/8 61/24/8 64/26/8 -f 44/10/1 43/9/1 46/516/1 -f 48/517/16 223/623/16 222/518/16 -f 262/520/107 268/340/107 272/521/107 +f 142/106/1 143/490/1 144/107/1 +f 144/107/223 143/490/223 146/109/223 +f 147/110/224 146/109/224 148/111/225 +f 149/112/226 148/111/227 150/113/226 +f 152/115/1 153/461/1 154/116/1 +f 155/118/8 156/135/8 157/119/8 +f 157/119/228 159/122/228 160/121/228 +f 159/122/229 161/124/230 162/123/231 +f 161/124/232 163/460/233 164/125/233 +f 165/126/8 86/491/8 166/127/8 +f 76/37/8 86/492/8 87/129/8 +f 166/131/16 86/40/16 79/132/16 +f 169/134/234 170/145/235 156/135/8 +f 169/134/236 155/118/8 110/66/8 +f 172/137/237 142/106/1 145/108/1 +f 139/101/1 142/106/1 172/137/238 +f 145/108/1 33/3/1 175/140/1 +f 176/141/1 138/102/1 139/101/1 +f 137/98/1 138/102/1 176/141/1 +f 178/143/1 65/99/1 137/98/1 +f 179/144/8 49/16/8 156/135/8 +f 180/146/8 171/136/8 110/66/8 +f 180/146/8 109/67/8 107/64/8 +f 182/148/8 181/147/8 107/64/8 +f 183/149/8 50/14/8 49/16/8 +f 33/3/1 36/2/1 184/150/1 +f 186/151/8 187/154/8 188/152/8 +f 187/154/239 189/156/239 190/155/239 +f 189/156/240 191/158/240 192/157/240 +f 191/158/241 193/458/242 194/159/243 +f 195/160/1 196/493/1 197/71/1 +f 199/161/1 200/494/1 201/162/1 +f 203/164/244 204/456/245 205/165/246 +f 207/167/247 203/164/248 206/166/247 +f 209/169/249 207/167/249 208/168/249 +f 212/171/8 209/169/8 210/170/8 +f 91/173/1 213/495/1 214/174/1 +f 99/176/250 92/454/251 216/177/252 +f 103/179/253 99/176/254 217/178/253 +f 106/181/255 103/179/255 218/180/255 +f 220/183/8 108/496/8 106/181/8 +f 220/184/76 107/342/76 109/185/76 +f 221/187/8 222/495/8 223/173/8 +f 225/189/256 226/193/257 227/190/258 +f 229/192/259 230/195/259 226/193/259 +f 231/194/260 232/196/260 230/195/260 +f 232/196/1 231/194/1 234/197/1 +f 235/199/8 236/163/8 237/162/8 +f 239/201/261 240/205/262 241/202/263 +f 243/204/264 244/207/264 240/205/264 +f 245/206/265 246/208/265 244/207/265 +f 246/208/1 245/206/1 248/209/1 +f 48/211/89 223/497/89 224/212/89 +f 221/214/90 222/498/90 82/215/90 +f 233/217/76 234/236/76 138/218/76 +f 85/220/89 237/499/89 238/221/89 +f 247/223/76 248/425/76 142/224/76 +f 235/226/15 236/500/15 154/227/15 +f 79/229/91 114/501/91 115/230/91 +f 112/232/90 113/502/90 75/233/90 +f 140/235/76 141/503/76 33/236/76 +f 250/238/16 251/504/16 252/239/16 +f 87/241/16 168/239/16 80/242/16 +f 254/244/16 255/505/16 256/245/16 +f 80/247/94 168/506/94 76/248/94 +f 250/250/93 249/507/93 48/251/93 +f 85/252/1 154/508/1 256/253/1 +f 83/255/8 62/509/8 250/256/8 +f 82/258/1 252/509/1 249/255/1 +f 252/260/94 251/510/94 83/249/94 +f 84/253/8 254/511/8 255/261/8 +f 256/262/92 255/512/92 166/263/92 +f 254/265/93 253/513/93 85/266/93 +f 258/246/95 259/514/95 260/268/95 +f 184/269/97 36/269/97 257/269/97 +f 183/269/97 184/269/97 260/269/97 +f 50/269/97 183/269/97 259/269/96 +f 36/269/97 257/269/97 258/269/97 +f 269/270/95 270/515/95 271/271/95 +f 269/273/8 279/290/8 280/274/8 +f 293/276/266 289/516/1 292/277/1 +f 278/279/1 289/516/1 293/276/267 +f 296/281/268 297/287/269 286/282/8 +f 296/281/270 285/283/8 282/284/8 +f 299/286/8 261/305/8 286/282/8 +f 300/288/8 298/285/8 282/284/8 +f 300/288/8 281/289/8 279/290/8 +f 302/292/8 301/291/8 279/290/8 +f 292/277/1 265/517/1 303/293/1 +f 304/294/1 275/518/1 278/279/1 +f 274/295/1 275/518/1 304/294/1 +f 306/297/1 272/519/1 274/295/1 +f 262/298/105 268/520/105 267/299/105 +f 269/270/95 272/272/95 306/269/95 +f 303/293/271 265/517/271 268/302/271 +f 299/286/272 308/269/273 262/304/272 +f 310/306/109 311/521/109 312/33/109 +f 310/307/274 309/522/274 262/308/274 +f 311/310/112 310/523/112 308/311/275 +f 268/313/276 312/524/276 311/314/276 +f 258/316/112 312/525/112 268/317/112 +f 283/318/95 282/526/95 139/319/95 +f 294/321/277 313/333/278 314/322/279 +f 34/324/76 264/527/76 263/325/76 +f 265/326/76 292/528/76 156/327/76 +f 306/329/112 305/376/112 181/330/112 +f 35/243/122 263/325/122 267/331/122 +f 303/332/280 315/529/280 313/333/281 +f 316/334/282 317/396/283 179/335/283 +f 308/337/284 299/530/112 175/338/112 +f 291/339/76 290/531/76 158/340/76 +f 275/341/76 274/532/76 107/342/76 +f 295/343/130 318/533/130 319/344/130 +f 267/331/76 266/534/76 52/346/76 +f 320/347/285 321/535/286 299/348/286 +f 302/350/134 306/329/134 182/267/134 +f 298/351/112 300/361/112 176/352/112 +f 183/269/97 307/269/287 308/269/288 +f 303/354/112 307/536/289 183/355/112 +f 268/317/112 262/479/112 36/357/112 +f 288/358/76 287/432/76 144/359/76 +f 300/361/112 301/537/112 177/362/112 +f 319/363/290 322/398/291 169/364/292 +f 270/366/76 280/538/76 37/367/76 +f 304/368/112 295/539/112 171/369/112 +f 289/371/76 278/540/76 110/372/76 +f 284/373/76 283/478/76 135/374/76 +f 305/376/112 304/368/112 180/370/112 +f 271/377/76 270/366/76 38/34/76 +f 53/379/76 273/541/76 271/377/76 +f 309/380/76 312/542/76 258/381/76 +f 282/383/76 285/543/76 142/224/76 +f 287/384/95 286/544/95 145/385/95 +f 286/387/76 261/545/76 33/236/76 +f 277/388/76 276/546/76 105/389/76 +f 36/357/112 262/479/112 309/390/112 +f 280/391/95 279/547/95 137/392/95 +f 177/362/112 301/537/112 302/350/112 +f 279/394/76 281/548/76 138/218/76 +f 313/395/293 315/549/141 317/396/141 +f 314/397/294 313/395/295 316/334/296 +f 321/399/141 320/402/297 324/400/298 +f 320/402/299 325/404/300 326/403/301 +f 325/404/302 327/550/151 328/405/151 +f 318/406/151 314/397/303 322/398/304 +f 317/407/154 315/551/154 303/408/154 +f 325/409/305 320/347/306 297/349/307 +f 322/398/308 316/334/309 170/336/310 +f 175/411/311 323/401/311 324/400/312 +f 293/323/313 314/322/314 318/413/315 +f 173/412/316 324/400/317 326/403/318 +f 327/416/319 325/409/320 296/410/321 +f 299/418/154 321/552/154 323/419/154 +f 172/415/322 326/403/323 328/405/324 +f 328/422/130 327/553/130 298/423/130 +f 215/425/16 214/554/16 62/426/16 +f 202/428/16 201/555/16 84/429/16 +f 85/430/16 237/309/16 236/431/16 +f 198/431/16 197/371/16 86/433/16 +f 79/218/16 114/476/16 113/434/16 +f 242/203/325 241/202/326 238/435/1 +f 228/191/327 227/190/328 224/437/1 +f 198/439/90 195/556/90 88/440/90 +f 165/442/91 196/557/91 197/443/91 +f 202/445/15 199/558/15 167/446/15 +f 89/448/89 200/559/89 201/449/89 +f 61/451/89 213/560/89 214/452/89 +f 92/454/329 91/561/8 213/455/8 +f 204/456/330 199/562/8 200/457/8 +f 193/458/331 195/563/8 196/459/8 +f 163/460/8 165/126/8 167/128/8 +f 151/114/1 150/113/1 153/461/1 +f 127/85/1 126/84/1 117/462/1 +f 123/82/332 122/81/333 115/463/1 +f 70/79/334 119/78/335 111/465/1 +f 215/466/90 91/564/90 90/467/90 +f 97/469/8 89/48/8 90/50/8 +f 69/470/336 68/45/8 88/47/8 +f 77/471/89 68/565/89 67/472/89 +f 59/474/8 61/24/8 64/26/8 +f 44/10/1 43/9/1 46/475/1 +f 48/476/16 223/185/16 222/477/16 +f 262/479/112 268/317/112 272/480/112 s 1 -f 2/624/327 4/625/328 1/626/329 -f 3/627/330 6/628/331 4/625/328 -f 3/627/330 7/629/332 5/630/333 -f 6/628/331 7/629/332 8/631/334 -f 7/629/332 1/626/329 8/631/334 -f 9/632/335 11/633/336 12/634/337 -f 13/635/338 9/636/335 12/637/337 -f 15/638/339 12/637/337 11/639/336 -f 16/640/340 11/639/336 10/641/341 -f 9/642/335 16/640/340 10/641/341 -f 13/643/338 1/644/329 14/645/342 -f 6/646/331 13/635/338 15/638/339 -f 16/640/340 6/647/331 15/638/339 -f 1/644/329 16/648/340 14/645/342 -f 17/649/343 19/650/344 20/651/345 -f 20/651/345 21/652/346 22/653/347 -f 19/650/344 23/654/348 21/652/346 -f 22/653/347 23/654/348 24/655/349 -f 23/654/348 17/649/343 24/655/349 -f 25/656/335 27/657/336 28/658/337 -f 28/659/337 30/660/350 25/661/335 -f 31/662/351 28/659/337 27/663/336 -f 26/664/341 31/665/351 27/666/336 -f 30/667/350 26/664/341 25/668/335 -f 24/669/349 30/670/350 29/671/352 -f 22/672/347 29/673/352 31/662/351 -f 32/674/353 22/675/347 31/665/351 -f 17/676/343 32/677/353 30/670/350 -f 337/678/354 354/679/355 339/680/355 -f 358/681/104 334/682/356 357/683/104 -f 335/684/357 352/685/358 337/678/354 -f 360/686/88 362/687/359 359/688/88 -f 350/689/356 335/684/357 334/682/356 -f 361/690/360 364/691/361 362/687/359 -f 363/692/362 366/693/363 364/691/361 -f 366/693/363 345/694/364 331/695/364 -f 370/696/15 372/697/365 369/698/15 -f 377/699/366 371/700/367 378/701/368 -f 378/701/368 381/702/369 377/699/366 -f 385/703/370 381/702/369 382/704/371 -f 388/705/104 385/703/370 387/706/104 -f 345/694/364 332/707/91 331/695/364 -f 444/708/104 357/683/104 443/709/104 -f 353/710/372 469/711/88 355/712/88 -f 351/713/373 470/714/374 353/710/372 -f 348/715/375 471/716/376 351/713/373 -f 348/715/375 473/717/377 472/718/378 -f 474/719/91 347/720/379 386/721/91 -f 434/722/380 468/723/104 431/724/104 -f 467/725/91 383/726/381 389/727/91 -f 380/728/382 466/729/383 464/730/384 -f 436/731/385 465/732/386 434/722/380 -f 459/733/387 436/731/385 438/734/388 -f 380/728/382 462/735/389 375/736/390 -f 460/737/391 438/734/388 440/738/392 -f 375/736/390 461/739/393 376/740/394 -f 376/740/394 458/741/88 368/742/88 -f 457/743/15 440/738/392 442/744/15 -f 439/745/395 456/746/88 441/747/88 -f 437/748/396 454/749/397 439/745/395 -f 435/750/398 452/751/399 437/748/396 -f 435/750/398 448/752/400 450/753/401 -f 445/754/91 433/755/402 432/756/91 -f 346/757/403 446/758/104 343/759/104 -f 379/760/404 447/761/405 346/757/403 -f 451/762/406 379/760/404 374/763/407 -f 453/764/408 374/763/407 373/765/409 -f 455/766/15 373/765/409 367/767/15 -f 336/768/375 484/769/377 333/770/379 -f 484/769/377 414/771/91 333/770/379 -f 336/768/375 478/772/376 482/773/378 -f 338/774/410 479/775/411 478/772/376 -f 402/776/412 480/777/413 403/778/365 -f 415/779/104 483/780/370 413/781/414 -f 483/780/370 409/782/369 413/781/414 -f 409/782/369 477/783/415 402/776/412 -f 408/784/382 490/785/389 494/786/384 -f 408/784/382 496/787/383 412/788/381 -f 496/787/383 416/789/91 412/788/381 -f 401/790/416 491/791/417 490/785/389 -f 419/792/104 495/793/386 420/794/380 -f 495/793/386 423/795/385 420/794/380 -f 423/795/385 489/796/418 425/797/419 -f 425/797/419 492/798/420 427/799/392 -f 411/800/400 422/801/91 421/802/402 -f 424/803/398 411/800/400 421/802/402 -f 424/803/398 398/804/399 407/805/401 -f 426/806/421 399/807/422 398/804/399 -f 395/808/423 400/809/424 396/810/425 -f 405/811/404 397/812/426 395/808/423 -f 410/813/405 405/811/404 330/814/427 -f 329/815/104 410/813/405 330/814/427 -f 400/809/424 390/816/15 396/810/425 -f 429/817/88 399/807/422 428/818/395 -f 492/798/420 430/819/15 427/799/392 -f 393/820/88 491/791/417 404/821/394 -f 480/777/413 394/822/15 403/778/365 -f 341/823/88 479/775/411 340/824/372 -f 354/679/355 342/825/15 339/680/355 -f 2/624/327 3/627/330 4/625/328 -f 3/627/330 5/630/333 6/628/331 -f 3/627/330 2/624/327 7/629/332 -f 6/628/331 5/630/333 7/629/332 -f 7/629/332 2/624/327 1/626/329 -f 9/632/335 10/826/341 11/633/336 -f 13/635/338 14/827/342 9/636/335 -f 15/638/339 13/635/338 12/637/337 -f 16/640/340 15/638/339 11/639/336 -f 9/642/335 14/828/342 16/640/340 -f 13/643/338 8/829/334 1/644/329 -f 6/646/331 8/830/334 13/635/338 -f 16/640/340 4/831/328 6/647/331 -f 1/644/329 4/832/328 16/648/340 -f 17/649/343 18/833/428 19/650/344 -f 20/651/345 19/650/344 21/652/346 -f 19/650/344 18/833/428 23/654/348 -f 22/653/347 21/652/346 23/654/348 -f 23/654/348 18/833/428 17/649/343 -f 25/656/335 26/834/341 27/657/336 -f 28/659/337 29/673/352 30/660/350 -f 31/662/351 29/673/352 28/659/337 -f 26/664/341 32/674/353 31/665/351 -f 30/667/350 32/674/353 26/664/341 -f 24/669/349 17/676/343 30/670/350 -f 22/672/347 24/835/349 29/673/352 -f 32/674/353 20/836/345 22/675/347 -f 17/676/343 20/837/345 32/677/353 -f 337/678/354 352/685/358 354/679/355 -f 358/681/104 350/689/356 334/682/356 -f 335/684/357 349/838/357 352/685/358 -f 360/686/88 361/690/360 362/687/359 -f 350/689/356 349/838/357 335/684/357 -f 361/690/360 363/692/362 364/691/361 -f 363/692/362 365/839/363 366/693/363 -f 366/693/363 365/839/363 345/694/364 -f 370/696/15 371/700/367 372/697/365 -f 377/699/366 372/697/365 371/700/367 -f 378/701/368 382/704/371 381/702/369 -f 385/703/370 384/840/414 381/702/369 -f 388/705/104 384/840/414 385/703/370 -f 345/694/364 344/841/91 332/707/91 -f 444/708/104 358/681/104 357/683/104 -f 353/710/372 470/714/374 469/711/88 -f 351/713/373 471/716/376 470/714/374 -f 348/715/375 472/718/378 471/716/376 -f 348/715/375 347/720/379 473/717/377 -f 474/719/91 473/717/377 347/720/379 -f 434/722/380 465/732/386 468/723/104 -f 467/725/91 466/729/383 383/726/381 -f 380/728/382 383/726/381 466/729/383 -f 436/731/385 463/842/429 465/732/386 -f 459/733/387 463/842/429 436/731/385 -f 380/728/382 464/730/384 462/735/389 -f 460/737/391 459/733/387 438/734/388 -f 375/736/390 462/735/389 461/739/393 -f 376/740/394 461/739/393 458/741/88 -f 457/743/15 460/737/391 440/738/392 -f 439/745/395 454/749/397 456/746/88 -f 437/748/396 452/751/399 454/749/397 -f 435/750/398 450/753/401 452/751/399 -f 435/750/398 433/755/402 448/752/400 -f 445/754/91 448/752/400 433/755/402 -f 346/757/403 447/761/405 446/758/104 -f 379/760/404 449/843/430 447/761/405 -f 451/762/406 449/843/430 379/760/404 -f 453/764/408 451/762/406 374/763/407 -f 455/766/15 453/764/408 373/765/409 -f 336/768/375 482/773/378 484/769/377 -f 484/769/377 485/844/91 414/771/91 -f 336/768/375 338/774/410 478/772/376 -f 338/774/410 340/824/372 479/775/411 -f 402/776/412 477/783/415 480/777/413 -f 415/779/104 486/845/104 483/780/370 -f 483/780/370 481/846/371 409/782/369 -f 409/782/369 481/846/371 477/783/415 -f 408/784/382 401/790/416 490/785/389 -f 408/784/382 494/786/384 496/787/383 -f 496/787/383 497/847/91 416/789/91 -f 401/790/416 404/821/394 491/791/417 -f 419/792/104 498/848/104 495/793/386 -f 495/793/386 493/849/429 423/795/385 -f 423/795/385 493/849/429 489/796/418 -f 425/797/419 489/796/418 492/798/420 -f 411/800/400 417/850/91 422/801/91 -f 424/803/398 407/805/401 411/800/400 -f 424/803/398 426/806/421 398/804/399 -f 426/806/421 428/818/395 399/807/422 -f 395/808/423 397/812/426 400/809/424 -f 405/811/404 406/851/430 397/812/426 -f 410/813/405 406/851/430 405/811/404 -f 329/815/104 418/852/104 410/813/405 -f 400/809/424 391/853/15 390/816/15 -f 429/817/88 392/854/88 399/807/422 -f 492/798/420 487/855/15 430/819/15 -f 393/820/88 488/856/88 491/791/417 -f 480/777/413 475/857/15 394/822/15 -f 341/823/88 476/858/88 479/775/411 -f 354/679/355 356/859/15 342/825/15 -o Main -v 0.404348 2.344625 -0.169240 -v -0.025414 2.229476 -0.168127 -v -0.025414 2.447085 -0.235523 -v 0.295223 2.532996 -0.236354 -v 0.161965 3.479305 11.476994 -v 0.026115 3.515703 11.476642 -v 0.026115 3.520083 12.578159 -v 0.158830 3.484524 12.578503 -v 0.360992 2.553488 7.419190 -v 0.026117 2.463763 7.420058 -v -0.856289 3.221189 -0.177715 -v -0.806233 2.871109 -0.174330 -v -0.581955 2.963729 7.415224 -v -0.620958 3.236514 7.412587 -v 0.718957 3.518703 -0.180592 -v 0.404349 3.833296 -0.183633 -v 0.360992 3.713472 7.407975 -v 0.606137 3.468339 7.410346 -v -0.025414 3.948445 -0.184746 -v -0.455176 3.833296 -0.183633 -v -0.308757 3.713473 7.407975 -v 0.026117 3.803198 7.407108 -v 0.718957 2.659218 -0.172282 -v 0.606137 2.798622 7.416821 -v -0.785146 2.848658 -0.174113 -v -0.455177 2.344625 -0.169240 -v -0.308757 2.553488 7.419190 -v -0.565872 2.946235 7.415394 -v -0.769785 3.518703 -0.180592 -v -0.553902 3.468339 7.410346 -v 0.791086 3.249524 -0.177989 -v 0.791023 3.004963 -0.175625 -v 0.579132 3.025661 -0.241117 -v 0.583760 3.208122 -0.242881 -v 0.425803 3.342331 -0.916230 -v 0.469526 3.179162 -0.914652 -v 0.300966 3.184552 -0.543207 -v 0.271888 3.293070 -0.544256 -v 0.662341 3.258592 7.412374 -v 0.261414 3.108174 11.480582 -v 0.281334 3.212642 11.479572 -v 0.284214 3.294771 11.478778 -v 0.261414 3.379859 11.477955 -v -0.109735 3.479305 11.476994 -v -0.209184 3.379859 11.477955 -v -0.234384 3.285815 11.478865 -v -0.218685 3.175153 11.479935 -v -0.109735 3.008729 11.481544 -v 0.026115 2.972330 11.481895 -v 0.161965 3.008729 11.481544 -v -0.203755 3.387375 12.579442 -v -0.106601 3.484524 12.578503 -v 0.026115 2.989248 12.583291 -v -0.106601 3.024806 12.582948 -v 0.255984 3.387375 12.579442 -v 0.278259 3.304250 12.580246 -v 0.158830 3.024806 12.582948 -v -0.213038 3.187391 12.581376 -v -0.228374 3.295500 12.580331 -v 0.255984 3.121957 12.582008 -v 0.226939 3.190377 8.484865 -v 0.229205 3.255001 8.484241 -v 0.221033 3.253622 8.507836 -v 0.218858 3.191598 8.508436 -v 0.128710 3.037602 8.509925 -v 0.203814 3.112703 8.509199 -v 0.225277 3.128225 11.396477 -v 0.141101 3.044054 11.397291 -v 0.026117 3.420470 8.506223 -v -0.076477 3.392981 8.506489 -v -0.088871 3.442358 11.393440 -v 0.026115 3.473166 11.393142 -v 0.203814 3.317881 8.507215 -v 0.128710 3.392981 8.506489 -v 0.141101 3.442358 11.393440 -v 0.225277 3.358186 11.394254 -v -0.170612 3.246857 8.507902 -v -0.158757 3.163285 8.508710 -v -0.181089 3.184917 11.395928 -v -0.194377 3.278584 11.395023 -v 0.026117 3.010113 8.510191 -v 0.026115 3.013243 11.397589 -v 0.244576 3.286165 11.394950 -v -0.076477 3.037602 8.509925 -v -0.088871 3.044054 11.397291 -v -0.151581 3.317881 8.507215 -v -0.173046 3.358186 11.394254 -v 0.133012 3.400203 8.482837 -v 0.026117 3.428843 8.482559 -v -0.080779 3.400203 8.482837 -v -0.159031 3.321954 8.483593 -v -0.080779 3.029925 8.486416 -v 0.026117 3.001283 8.486693 -v 0.211264 3.321954 8.483593 -v 0.133012 3.029925 8.486416 -v -0.178861 3.247952 8.484308 -v -0.166508 3.160877 8.485150 -v 0.211264 3.108174 8.485660 -v 0.130800 3.031615 8.264970 -v 0.207433 3.108244 8.264229 -v 0.026117 3.422280 8.261192 -v -0.078566 3.394231 8.261463 -v 0.207433 3.317600 8.262204 -v 0.130800 3.394231 8.261463 -v -0.174619 3.245131 8.262905 -v -0.162522 3.159858 8.263730 -v 0.026117 3.003567 8.265241 -v 0.225003 3.252033 8.262838 -v -0.078566 3.031615 8.264970 -v -0.155200 3.317600 8.262204 -v 0.125120 3.384223 8.243902 -v 0.026117 3.410749 8.243646 -v -0.072887 3.384223 8.243902 -v -0.145362 3.311750 8.244603 -v -0.072887 3.041281 8.247218 -v 0.026117 3.014755 8.247475 -v 0.214212 3.249741 8.245203 -v 0.197596 3.311750 8.244603 -v 0.125120 3.041281 8.247218 -v -0.163728 3.243213 8.245266 -v -0.152287 3.162566 8.246045 -v 0.197596 3.113754 8.246517 -v 0.126247 3.033054 7.598080 -v 0.199547 3.106351 7.597371 -v 0.026117 3.406727 7.594467 -v -0.074013 3.379899 7.594727 -v 0.199547 3.306602 7.595435 -v 0.126247 3.379899 7.594727 -v -0.165888 3.237284 7.596105 -v -0.154317 3.155719 7.596893 -v 0.026117 3.006226 7.598339 -v 0.216353 3.243886 7.596042 -v -0.074013 3.033054 7.598080 -v -0.147313 3.306602 7.595435 -v 0.214230 3.183352 7.596626 -v 0.655241 3.056143 7.414330 -v 0.662640 3.068029 7.414216 -v -0.150892 3.150488 7.596944 -v -0.025414 2.339091 -0.673720 -v 0.347100 2.438901 -0.674685 -v -0.640253 3.186982 -0.242677 -v -0.603200 2.925795 -0.240152 -v 0.529946 3.408951 -0.244823 -v 0.295223 3.643663 -0.247092 -v -0.025414 3.729573 -0.247923 -v -0.346051 3.643663 -0.247092 -v 0.529946 2.767707 -0.238623 -v -0.592235 2.909045 -0.239990 -v -0.580774 3.408952 -0.244823 -v -0.346051 2.532996 -0.236354 -v 0.676943 3.011275 -0.680219 -v 0.688901 3.198697 -0.682031 -v 0.682320 3.223258 -0.682268 -v 0.474129 3.163835 -0.723243 -v 0.469526 3.181010 -0.723409 -v -0.739729 3.198697 -0.682031 -v -0.696682 2.895252 -0.679097 -v 0.619799 3.456579 -0.684524 -v 0.347100 3.729265 -0.687160 -v -0.025414 3.829076 -0.688125 -v -0.397928 3.729265 -0.687160 -v 0.619799 2.711587 -0.677321 -v -0.683942 2.875792 -0.678909 -v -0.670627 3.456579 -0.684524 -v -0.397928 2.438901 -0.674685 -v 0.465767 3.032764 -0.721976 -v 0.465767 3.030915 -0.913219 -v 0.474129 3.161986 -0.914486 -v -0.025414 2.562685 -0.717431 -v 0.235096 2.632485 -0.718106 -v -0.524957 3.163835 -0.723243 -v -0.494852 2.951626 -0.721192 -v 0.425803 3.344180 -0.724987 -v 0.235097 3.534878 -0.726831 -v -0.025414 3.604678 -0.727505 -v -0.285924 3.534878 -0.726831 -v 0.425803 2.823183 -0.719950 -v -0.485943 2.938017 -0.721060 -v -0.476631 3.344180 -0.724987 -v 0.674422 2.998053 -0.680091 -v 0.464004 3.023518 -0.721887 -v -0.285924 2.632485 -0.718106 -v -0.488505 3.299868 -0.724558 -v -0.476631 3.342331 -0.916230 -v -0.488505 3.298019 -0.915802 -v 0.235096 2.630636 -0.909349 -v -0.025414 2.560836 -0.908674 -v -0.028200 2.773328 -0.539231 -v 0.145056 2.819749 -0.539680 -v -0.524957 3.161986 -0.914486 -v -0.494852 2.949777 -0.912435 -v 0.235097 3.533029 -0.918074 -v -0.025414 3.602829 -0.918749 -v -0.285924 3.533029 -0.918074 -v 0.425803 2.821334 -0.911193 -v -0.485943 2.936168 -0.912303 -v -0.285924 2.630636 -0.909349 -v 0.300966 3.137746 -5.384423 -v 0.304027 3.126323 -5.384313 -v 0.180622 3.105078 -5.752636 -v 0.178769 3.111992 -5.752703 -v -0.360427 3.173130 -0.543097 -v -0.340405 3.031997 -0.541732 -v 0.145056 3.419896 -0.545482 -v -0.028200 3.466318 -0.545931 -v -0.201455 3.419896 -0.545482 -v 0.271888 2.946575 -0.540906 -v -0.334480 3.022947 -0.541645 -v -0.328287 3.293070 -0.544256 -v 0.464004 3.021669 -0.913130 -v 0.297293 3.079810 -0.542194 -v -0.201455 2.819749 -0.539680 -v -0.687605 3.393217 -0.683911 -v 0.304027 3.173130 -0.543097 -v -0.125370 3.254456 -5.754081 -v -0.202147 3.177683 -5.753338 -v -0.206927 3.159843 -5.753165 -v -0.210469 3.146626 -5.753037 -v -0.214011 3.133408 -5.752910 -v -0.217553 3.120190 -5.752782 -v -0.220761 3.108217 -5.752666 -v -0.221602 3.105078 -5.752636 -v -0.209482 3.019644 -5.751810 -v -0.205896 3.014165 -5.751757 -v -0.125370 2.891161 -5.750567 -v -0.020490 2.863060 -5.750297 -v 0.084389 2.891161 -5.750567 -v 0.161166 2.967934 -5.751310 -v 0.176545 3.048587 -5.752090 -v 0.177255 3.052310 -5.752126 -v 0.161166 3.177683 -5.753338 -v 0.084389 3.254456 -5.754081 -v -0.020490 3.282557 -5.754352 -v 0.145056 2.772943 -5.380897 -v -0.028200 2.726521 -5.380447 -v -0.340405 2.985191 -5.382949 -v -0.360427 3.126323 -5.384313 -v 0.145056 3.373090 -5.386699 -v 0.271888 3.246264 -5.385472 -v -0.201455 3.373090 -5.386699 -v -0.028200 3.419511 -5.387148 -v 0.271888 2.899769 -5.382123 -v -0.334480 2.976140 -5.382861 -v -0.328287 3.246264 -5.385472 -v 0.297293 3.033004 -5.383410 -v -0.201455 2.772943 -5.380897 -v -0.336184 3.263600 -0.543971 -v 0.298466 3.039153 -5.383471 -v 0.298466 3.085960 -0.542254 -v 0.212113 3.189888 8.245781 -v 0.222783 3.188746 8.263451 -v 0.242138 3.216650 11.395622 -v 0.275445 3.224015 12.581021 -v -0.359037 3.131510 -5.384363 -v -0.336184 3.216794 -5.385188 -v -0.522867 3.169785 -0.914562 -v -0.359037 3.178316 -0.543147 -v -0.736741 3.209849 -0.682138 -v -0.522867 3.171633 -0.723319 -v -0.201455 2.788822 -3.738577 -v -0.334480 2.992019 -3.740541 -v -0.334500 3.252076 -3.741569 -v -0.328287 3.262142 -3.743153 -v 0.300966 3.153625 -3.742104 -v 0.300966 3.166108 -2.450925 -v 0.297293 3.061366 -2.449912 -v 0.297293 3.048883 -3.741091 -v 0.271888 3.262142 -3.743153 -v -0.028200 2.742400 -3.738128 -v 0.271888 2.915648 -3.739803 -v -0.201455 3.388968 -3.744379 -v -0.028200 3.435390 -3.744828 -v 0.145056 3.388968 -3.744379 -v -0.340405 3.001070 -3.740629 -v 0.145056 2.788822 -3.738577 -v 0.145056 2.801305 -2.447398 -v -0.028200 2.754883 -2.446949 -v 0.145056 3.401452 -2.453200 -v 0.271888 3.274626 -2.451974 -v -0.201455 3.401452 -2.453200 -v -0.028200 3.447873 -2.453649 -v 0.271888 2.928131 -2.448624 -v -0.334480 3.004502 -2.449363 -v -0.340405 3.013553 -2.449450 -v -0.328287 3.274626 -2.451974 -v -0.201455 2.801305 -2.447398 -v -0.334500 3.264560 -2.450390 -v -0.359037 3.147388 -3.742043 -v -0.347886 3.172076 -3.771701 -v -0.347886 3.156482 -5.384604 -v -0.353737 3.151288 -5.384554 -v -0.342035 3.241765 -0.543760 -v -0.342035 3.223584 -2.424222 -v -0.342035 3.210553 -3.772073 -v -0.342035 3.194958 -5.384976 -v -0.497303 3.265187 -0.915484 -v -0.700186 3.346269 -0.683457 -v -0.497303 3.267036 -0.724241 -v -0.514898 3.201372 -0.723606 -v -0.514898 3.199523 -0.914849 -v -0.725346 3.252373 -0.682550 -v -0.353737 3.198094 -0.543338 -v -0.359037 3.159872 -2.450865 -v -0.712766 3.299321 -0.683003 -v -0.506101 3.234204 -0.723924 -v -0.506101 3.232355 -0.915167 -v -0.347886 3.203671 -0.543392 -v -0.347886 3.185490 -2.423854 -v -0.330283 3.239839 -4.036386 -v -0.330283 3.455639 -4.038473 -v -0.330283 3.442577 -5.389550 -v -0.330283 3.226777 -5.387465 -v 0.190607 2.026066 -5.584056 -v -0.246987 2.026066 -5.584056 -v -0.232000 2.105978 -6.077040 -v 0.175621 2.105978 -6.077040 -v 0.273904 3.226777 -5.387465 -v 0.273904 3.442577 -5.389550 -v 0.273904 3.455639 -4.038473 -v 0.273904 3.239839 -4.036386 -v -0.321697 3.575348 -1.209314 -v -0.143134 3.576650 -0.930052 -v -0.143134 3.637300 -0.930267 -v -0.321697 3.635997 -1.209528 -v -0.330283 1.706711 -4.021564 -v -0.330283 1.693649 -5.372642 -v -0.330283 1.408763 -5.369888 -v -0.330283 1.454738 -4.298106 -v -0.321697 3.563178 -3.730762 -v -0.321697 3.570713 -2.951427 -v -0.321697 3.631362 -2.951642 -v -0.321697 3.623828 -3.730978 -v 0.273904 3.252129 -2.441601 -v 0.273904 3.467488 -2.443747 -v 0.273904 3.470904 -1.159974 -v 0.273904 3.256656 -1.157677 -v 0.273904 3.242578 -3.753104 -v 0.273904 3.458378 -3.755191 -v 0.273904 3.466133 -2.953055 -v 0.273904 3.250333 -2.950969 -v -0.330283 3.144529 -3.752156 -v -0.330283 1.709450 -3.738282 -v -0.330283 1.717205 -2.936146 -v -0.330283 3.152284 -2.950021 -v 0.273904 1.709450 -3.738282 -v 0.273904 1.717205 -2.936146 -v -0.330283 1.734557 -1.141361 -v 0.273904 1.734557 -1.141361 -v 0.090118 2.663733 -0.868376 -v -0.146497 2.663733 -0.868376 -v 0.298165 1.329196 -1.082963 -v -0.354544 1.329196 -1.082963 -v -0.354544 1.269344 -1.084694 -v 0.298165 1.269344 -1.084694 -v -0.330283 3.154280 -2.440626 -v -0.330283 1.722134 -2.426354 -v -0.330283 3.159312 -1.156634 -v -0.321697 3.608476 -5.318881 -v -0.321697 3.621167 -4.006207 -v -0.330283 3.695073 -4.039322 -v -0.330283 3.682011 -5.390399 -v -0.354544 0.976347 -2.441677 -v 0.298165 0.976347 -2.441677 -v -0.354544 0.965281 -2.983357 -v 0.298165 0.965281 -2.983357 -v 0.298165 0.860108 -2.980030 -v -0.354544 0.860108 -2.980030 -v 0.298165 1.068648 -2.443568 -v -0.354544 1.068648 -2.443568 -v 0.151434 -0.563161 -5.307450 -v -0.387438 -0.380119 -6.075793 -v 0.082453 -0.903583 -5.396180 -v 0.193095 -0.803404 -5.819082 -v 0.234464 1.611982 -4.534523 -v 0.234464 1.612759 -4.454083 -v 0.273904 1.444370 -4.539809 -v 0.273904 1.442717 -4.578357 -v 0.273904 1.706711 -4.021564 -v 0.273904 1.454738 -4.298106 -v 0.273904 1.693649 -5.372642 -v 0.273904 1.408763 -5.369888 -v 0.045572 -0.803404 -5.819082 -v 0.008691 -0.903583 -5.396180 -v -0.243738 -0.288598 -6.459964 -v -0.246513 -0.451829 -6.564517 -v -0.249474 -0.603046 -6.664886 -v -0.249474 -0.703225 -6.241984 -v -0.284789 0.951510 -3.091764 -v -0.207814 -0.563161 -5.307450 -v -0.138832 -0.903583 -5.396180 -v -0.065070 -0.903583 -5.396180 -v 0.044585 -0.451829 -6.564517 -v 0.190134 -0.451829 -6.564517 -v 0.193095 -0.603046 -6.664886 -v 0.045572 -0.603046 -6.664886 -v -0.232000 3.262850 -6.088224 -v -0.232000 3.425689 -6.089799 -v 0.175621 3.425689 -6.089799 -v 0.175621 3.262850 -6.088224 -v -0.246987 3.442819 -5.597754 -v 0.190607 3.442819 -5.597754 -v -0.246987 3.268006 -5.596064 -v 0.190607 3.188580 -5.595296 -v 0.175621 3.188864 -6.087509 -v 0.273904 3.128728 -5.386516 -v 0.090118 3.372483 -0.872028 -v 0.090118 3.472245 -0.872542 -v -0.146497 3.472245 -0.872542 -v -0.146497 3.372483 -0.872028 -v -0.146497 3.327156 -0.871794 -v 0.265317 3.608476 -5.318881 -v 0.273904 3.682011 -5.390399 -v 0.032229 1.408763 -5.369888 -v 0.153067 1.408763 -5.369888 -v 0.169948 0.735733 -5.803853 -v 0.037856 0.735733 -5.803853 -v 0.187359 -0.288598 -6.459964 -v -0.179237 1.454738 -4.298106 -v 0.308184 0.328695 -5.216453 -v 0.139997 0.233605 -4.853300 -v -0.330283 1.424088 -5.012627 -v -0.209446 1.408763 -5.369888 -v -0.226328 0.735733 -5.803853 -v -0.364563 0.423784 -5.579605 -v 0.273904 1.439413 -4.655366 -v 0.122857 1.454738 -4.298106 -v -0.230014 0.518873 -5.942758 -v -0.114424 0.980412 -3.109781 -v 0.171927 0.619351 -5.878399 -v 0.038516 0.619351 -5.878399 -v -0.196376 0.233605 -4.853300 -v 0.173634 0.518873 -5.942758 -v -0.228306 0.619351 -5.878399 -v 0.305337 0.408198 -5.059734 -v 0.138574 0.302622 -4.650402 -v -0.361716 0.513774 -5.469066 -v 0.173634 0.518873 -5.942758 -v 0.039085 0.518873 -5.942758 -v -0.228306 0.619351 -5.878399 -v -0.284789 1.135689 -2.992763 -v -0.230014 0.518873 -5.942758 -v -0.194953 0.302622 -4.650402 -v 0.171927 0.619351 -5.878399 -v 0.302040 0.560031 -5.096963 -v 0.187359 -0.288598 -6.459964 -v 0.043660 -0.288598 -6.459964 -v 0.136925 0.472180 -4.743518 -v -0.358420 0.647882 -5.450408 -v -0.243738 -0.288598 -6.459964 -v -0.226328 0.735733 -5.803853 -v -0.115506 1.151276 -3.032256 -v -0.193305 0.472180 -4.743518 -v 0.265317 3.621167 -4.006207 -v 0.273904 3.695073 -4.039322 -v 0.265317 3.632679 -2.456811 -v 0.265317 3.631362 -2.951642 -v 0.273904 3.705567 -2.953904 -v 0.273904 3.706922 -2.444596 -v 0.086755 3.637300 -0.930267 -v 0.265317 3.635997 -1.209528 -v 0.273904 3.710337 -1.160822 -v 0.090118 3.711678 -0.873391 -v 0.265317 3.623828 -3.730978 -v 0.273904 3.697812 -3.756040 -v -0.321697 3.632679 -2.456811 -v -0.330283 3.710337 -1.160822 -v -0.330283 3.706922 -2.444596 -v -0.146497 3.711678 -0.873391 -v -0.330283 3.705567 -2.953904 -v -0.330283 3.697812 -3.756040 -v 0.273904 3.779082 -4.039882 -v 0.273904 3.781820 -3.756600 -v -0.330283 3.794346 -1.161382 -v -0.330283 3.790930 -2.445156 -v 0.273904 3.766019 -5.390960 -v 0.273904 3.794346 -1.161382 -v 0.090118 3.795687 -0.873952 -v -0.330283 3.789575 -2.954464 -v -0.330283 3.781820 -3.756600 -v 0.273904 3.789575 -2.954464 -v 0.273904 3.790930 -2.445156 -v -0.330283 3.766019 -5.390960 -v -0.146497 3.795687 -0.873952 -v -0.330283 3.779082 -4.039882 -v 0.086755 3.576650 -0.930052 -v -0.321697 3.572029 -2.456596 -v 0.265317 3.563178 -3.730762 -v 0.265317 3.560517 -4.005992 -v 0.265317 3.575348 -1.209314 -v 0.265317 3.572029 -2.456596 -v 0.265317 3.570713 -2.951427 -v 0.265317 3.547827 -5.318666 -v -0.321697 3.547827 -5.318666 -v -0.321697 3.560517 -4.005992 -v -0.330283 3.467488 -2.443747 -v -0.330283 3.470904 -1.159974 -v -0.330283 3.458378 -3.755191 -v -0.330283 3.466133 -2.953055 -v 0.273904 3.789575 -2.954464 -v 0.273904 3.790930 -2.445156 -v 0.273904 3.779082 -4.039882 -v 0.273904 3.781820 -3.756600 -v 0.273904 3.766019 -5.390960 -v -0.330283 3.781820 -3.756600 -v -0.330283 3.789575 -2.954464 -v -0.330283 3.766019 -5.390960 -v -0.330283 3.779082 -4.039882 -v -0.330283 3.790930 -2.445156 -v -0.330283 3.794346 -1.161382 -v 0.273904 3.794346 -1.161382 -v -0.330283 0.979098 -2.912797 -v -0.330283 1.074369 -2.413089 -v 0.273904 1.722134 -2.426354 -v 0.273904 1.314513 -1.153514 -v 0.273904 1.074369 -2.413089 -v 0.273904 0.979098 -2.912797 -v -0.330283 1.314513 -1.153514 -v 0.169948 0.735733 -5.803853 -v 0.193095 -0.603046 -6.664886 -v 0.190134 -0.451829 -6.564517 -v -0.284789 1.330151 -2.942667 -v -0.138832 -0.903583 -5.396180 -v -0.210126 -0.762632 -5.266933 -v -0.117756 1.329624 -3.000926 -v -0.249474 -0.703225 -6.241984 -v -0.249474 -0.603046 -6.664886 -v -0.246513 -0.451829 -6.564517 -v 0.273904 1.424088 -5.012627 -v -0.330283 1.439413 -4.655366 -v -0.249474 -0.803404 -5.819082 -v 0.193095 -0.703225 -6.241984 -v 0.045572 -0.703225 -6.241984 -v -0.101951 -0.703225 -6.241984 -v -0.101951 -0.803404 -5.819082 -v -0.101951 -0.603046 -6.664886 -v -0.392062 -0.555430 -6.131989 -v -0.284789 1.523609 -2.996514 -v -0.100039 -0.288598 -6.459964 -v -0.100964 -0.451829 -6.564517 -v 0.193095 -0.803404 -5.819082 -v -0.095464 0.518873 -5.942758 -v 0.082453 -0.903583 -5.396180 -v -0.094895 0.619351 -5.878399 -v 0.153746 -0.762632 -5.266933 -v -0.094236 0.735733 -5.803853 -v 0.335683 -0.659031 -5.699462 -v -0.088608 1.408763 -5.369888 -v 0.273904 3.159313 -1.156634 -v 0.090118 3.327156 -0.871794 -v -0.330283 3.256656 -1.157677 -v -0.330283 3.128728 -5.386516 -v -0.246987 3.188580 -5.595296 -v 0.190607 3.268006 -5.596064 -v -0.232000 3.188864 -6.087509 -v -0.330283 3.252129 -2.441601 -v -0.330283 3.242578 -3.753104 -v -0.330283 3.250333 -2.950969 -v 0.273904 3.144529 -3.752156 -v 0.273904 3.152284 -2.950021 -v 0.273904 3.154280 -2.440626 -v 0.273904 3.141790 -4.035439 -v -0.330283 3.141790 -4.035439 -v 0.233100 1.888631 -4.550890 -v 0.273904 3.136409 -4.592074 -v 0.273904 3.136791 -4.552498 -v 0.234464 1.886212 -4.456727 -v 0.273904 1.706711 -4.021564 -v 0.273904 1.454738 -4.298106 -v 0.273904 3.141790 -4.035439 -v 0.273904 1.841250 -4.022865 -v 0.273904 1.828188 -5.373942 -v 0.273904 3.128728 -5.386516 -v 0.273904 3.135626 -4.673046 -v 0.234464 1.883843 -4.701743 -v 0.273904 1.693649 -5.372642 -v 0.234464 1.610391 -4.699099 -v 0.273904 1.439333 -4.657226 -v 0.273904 1.408763 -5.369888 -v 0.273904 1.742807 -5.373117 -v 0.234464 1.710306 -4.700065 -v 0.234464 1.712675 -4.455049 -v 0.273904 1.755870 -4.022039 -v 0.331254 1.883843 -4.701743 -v 0.331254 1.710306 -4.700065 -v 0.331254 1.711897 -4.535489 -v 0.329314 1.891838 -4.545410 -v 0.331254 1.886212 -4.456727 -v 0.331254 1.712675 -4.455049 -v 0.234464 1.611019 -4.634068 -v 0.331254 1.610391 -4.699099 -v 0.331254 1.611019 -4.634068 -v 0.331254 1.612759 -4.454083 -v 0.294289 1.971530 -4.579909 -v 0.235999 1.975935 -4.584616 -v 0.331254 1.611982 -4.534523 -v 0.331254 1.710935 -4.635034 -v 0.330367 1.891374 -4.629972 -v 0.234464 1.889147 -4.633514 -v 0.273904 3.135935 -4.641050 -v 0.273904 1.440670 -4.626060 -v 0.422689 1.611982 -4.534523 -v 0.331254 1.300388 -4.531510 -v 0.422689 1.300388 -4.531510 -v 0.422689 1.711897 -4.535489 -v 0.422689 1.611019 -4.634068 -v 0.422689 1.710935 -4.635034 -v 0.331254 1.299426 -4.631055 -v 0.234464 1.299426 -4.631055 -v 0.234464 1.300388 -4.531510 -v 0.422689 1.299426 -4.631055 -v 0.292923 1.970817 -4.597499 -v 0.234464 1.973841 -4.593580 -v 0.304490 2.087529 -6.086900 -v 0.304490 3.424876 -6.092767 -v -0.385685 3.424876 -6.092767 -v -0.385685 2.087529 -6.086900 -v -0.385685 1.875774 -7.043372 -v 0.304490 1.875774 -7.043372 -v 0.304490 3.299155 -13.055437 -v -0.385685 3.299155 -13.055437 -v -0.385685 0.051586 -12.420024 -v -0.385685 0.019905 -12.750216 -v 0.304490 0.019905 -12.750216 -v 0.304490 0.051586 -12.420024 -v 0.304490 0.470741 -11.143966 -v 0.304490 0.911194 -9.875237 -v -0.385685 0.911194 -9.875237 -v -0.385685 0.470741 -11.143966 -v -0.385685 3.361983 -9.577537 -v 0.304490 3.361983 -9.577537 -v -0.385685 3.424876 -6.092767 -v 0.304490 3.424876 -6.092767 -v 0.304490 1.308804 -8.801523 -v 0.304490 1.642280 -7.761399 -v -0.385685 1.642280 -7.761399 -v -0.385685 1.308804 -8.801523 -v 0.577935 1.794459 -12.737568 -v 0.577935 0.846547 -12.590424 -v -0.585645 1.646944 -8.028779 -v -0.585645 1.349062 -8.957884 -v -0.585645 2.044671 -6.533008 -v -0.585645 3.239276 -6.538247 -v -0.585645 3.183095 -9.651071 -v -0.585645 3.126972 -12.757756 -v -0.585645 2.512112 -12.820806 -v -0.585645 1.796385 -12.781429 -v -0.585645 0.831648 -12.631672 -v -0.585645 0.197734 -12.485114 -v -0.585645 0.226034 -12.190164 -v -0.585645 0.600450 -11.050306 -v -0.585645 0.993891 -9.916996 -v -0.585645 1.855517 -7.387390 -v 0.577935 1.852561 -7.437602 -v 0.577935 1.647625 -8.067804 -v 0.577935 1.354939 -8.980706 -v 0.577935 1.005961 -9.923091 -v 0.577935 0.619383 -11.036636 -v 0.577935 0.251496 -12.156615 -v 0.577935 0.223689 -12.446421 -v 0.577935 2.497705 -12.776258 -v 0.577935 3.101842 -12.714309 -v 0.577935 3.156986 -9.661803 -v 0.577935 3.212186 -6.603268 -v 0.577935 2.038415 -6.598119 -v -0.032053 1.094781 -3.724003 -v -0.038611 1.122167 -3.698678 -v -0.284789 1.515775 -4.233112 -v -0.284789 1.321313 -4.283208 -v 0.014587 1.095661 -3.723721 -v -0.284789 1.700950 -4.031070 -v -0.116041 1.658715 -3.772054 -v 0.008028 1.123047 -3.698396 -v -0.284789 1.707290 -3.635175 -v -0.284789 1.705085 -3.772867 -v -0.032053 1.094781 -3.724003 -v -0.284789 1.712767 -3.235150 -v -0.038611 1.122167 -3.698678 -v -0.284789 1.523609 -2.996514 -v -0.040570 1.152858 -3.878815 -v -0.284789 1.330151 -2.942667 -v -0.042336 1.278494 -3.947056 -v -0.284789 1.135689 -2.992763 -v -0.042443 1.187165 -3.770670 -v -0.284789 0.951510 -3.091764 -v -0.044210 1.312802 -3.838912 -v -0.284789 0.931451 -3.627675 -v -0.043276 1.492857 -3.839123 -v -0.284789 0.934137 -4.036023 -v -0.043276 1.491040 -3.952579 -v -0.284789 1.127856 -4.229362 -v 0.234423 1.314280 -4.470789 -v -0.285355 1.314280 -4.470789 -v -0.285355 1.634126 -4.471505 -v 0.234423 1.634126 -4.471505 -v -0.285355 1.752750 -4.467820 -v 0.234423 1.752750 -4.467820 -v -0.285355 1.763648 -3.638703 -v 0.234423 1.763648 -3.638703 -v -0.285355 1.772588 -2.905027 -v 0.234423 1.772588 -2.905027 -v -0.285355 1.667477 -2.901424 -v 0.234423 1.667477 -2.901424 -v -0.285355 1.333338 -2.898680 -v 0.234423 1.333338 -2.898680 -v -0.285355 0.896085 -2.902554 -v 0.234423 0.896085 -2.902554 -v -0.285355 0.896631 -3.015312 -v 0.234423 0.896631 -3.015312 -v -0.285355 0.873620 -3.630098 -v 0.234423 0.873620 -3.630098 -v -0.285355 0.876701 -4.098548 -v 0.234423 0.876701 -4.098548 -v -0.285355 0.847201 -4.575191 -v 0.234423 0.847200 -4.575191 -v 0.233857 1.712767 -3.235150 -v 0.233857 1.707290 -3.635175 -v 0.233857 1.330151 -2.942667 -v 0.233857 1.523608 -2.996514 -v 0.233857 1.515775 -4.233112 -v 0.233857 1.321313 -4.283208 -v 0.233857 1.705085 -3.772867 -v 0.233857 1.702504 -3.934052 -v 0.233857 1.700950 -4.031070 -v 0.233857 0.934137 -4.036023 -v 0.233857 0.931451 -3.627675 -v 0.233857 1.127856 -4.229362 -v 0.233857 1.135689 -2.992763 -v 0.233857 0.951510 -3.091764 -v -0.284789 1.702504 -3.934052 -v -0.116041 1.656134 -3.933240 -v 0.065110 1.658714 -3.772054 -v 0.065110 1.656132 -3.933240 -v -0.058661 1.651579 -3.933167 -v -0.058661 1.654160 -3.771982 -v -0.058661 1.654160 -3.771982 -v -0.058661 1.651579 -3.933167 -v 0.014587 1.095661 -3.723721 -v 0.008028 1.123047 -3.698396 -v 0.006151 1.153709 -3.878275 -v 0.004278 1.188017 -3.770131 -v 0.004385 1.279346 -3.946517 -v 0.002511 1.313654 -3.838373 -v 0.003456 1.491040 -3.952579 -v 0.003456 1.492857 -3.839123 -v 0.007729 1.654159 -3.771982 -v 0.007729 1.651578 -3.933167 -v 0.007729 1.651578 -3.933167 -v 0.007729 1.654159 -3.771982 -v 0.003456 1.492857 -3.839123 -v 0.003456 1.491040 -3.952579 -v 0.002511 1.313654 -3.838373 -v 0.004385 1.279346 -3.946517 -v -0.043276 1.491040 -3.952579 -v -0.043276 1.492857 -3.839123 -v -0.044210 1.312802 -3.838912 -v -0.042443 1.187165 -3.770670 -v 0.004278 1.188017 -3.770131 -v -0.042336 1.278494 -3.947056 -v 0.006151 1.153709 -3.878275 -v 0.008028 1.123047 -3.698396 -v 0.014587 1.095661 -3.723721 -v -0.040570 1.152858 -3.878815 -v -0.038611 1.122167 -3.698678 -v -0.032053 1.094781 -3.724003 -v -0.103188 3.357830 8.539176 -v -0.103188 3.672956 8.536129 -v -0.103188 3.669909 8.221003 -v -0.103188 3.354783 8.224050 -v 0.107425 3.669909 8.221003 -v 0.107425 3.354783 8.224050 -v 0.107425 3.672956 8.536129 -v 0.107425 3.357830 8.539176 -v -0.032984 3.357830 8.539176 -v -0.032984 3.672956 8.536129 -v 0.037220 3.357830 8.539176 -v 0.121946 3.708827 8.298789 -v 0.121946 3.708827 8.298789 -v 0.083971 4.069171 8.313674 -v 0.108349 4.069171 8.313674 -v -0.103665 3.711009 8.524389 -v -0.103665 3.711009 8.524389 -v -0.090068 4.071090 8.512082 -v -0.090068 4.071090 8.512082 -v -0.103665 3.708827 8.298789 -v -0.090068 4.069171 8.313674 -v 0.037220 3.672956 8.536129 -v 0.121946 3.711009 8.524389 -v 0.046743 3.711009 8.524389 -v -0.090068 4.405278 8.288956 -v -0.023929 4.405278 8.288956 -v 0.042210 4.405278 8.288956 -v 0.083971 4.405278 8.288956 -v 0.042210 4.071090 8.512082 -v 0.108349 4.071090 8.512082 -v 0.108349 4.407197 8.487363 -v 0.042210 4.407197 8.487363 -v 0.108349 4.071090 8.512082 -v 0.108349 4.405278 8.288956 -v 0.108349 4.407197 8.487363 -v -0.103665 3.708827 8.298789 -v -0.059739 4.069171 8.313674 -v 0.121946 3.711009 8.524389 -v 0.108349 4.812802 8.249234 -v 0.108349 4.814721 8.447641 -v 0.108349 4.610959 8.467504 -v 0.108349 4.610959 8.467504 -v 0.108349 4.814721 8.447641 -v -0.059739 4.405278 8.288956 -v -0.090068 4.812802 8.249234 -v -0.090068 4.812802 8.249234 -v -0.090068 4.407197 8.487363 -v -0.090068 4.407197 8.487363 -v -0.023929 4.812802 8.249234 -v -0.090068 4.814721 8.447641 -v -0.023929 4.814721 8.447641 -v 0.108349 4.812802 8.249234 -v -0.090068 4.814721 8.447641 -v 0.042210 4.664865 8.473516 -v 0.042210 4.814721 8.447641 -v -0.090068 4.610959 8.467504 -v -0.090068 4.610959 8.467504 -v -0.059739 4.418322 8.157631 -v -0.059739 4.082213 8.182349 -v 0.083971 4.082213 8.182349 -v 0.083971 4.418322 8.157631 -v -0.090068 4.793198 8.155925 -v -0.090068 4.782697 8.105946 -v -0.090068 4.463150 7.849932 -v -0.090068 4.442965 8.003063 -v 0.108349 4.463150 7.849932 -v 0.108349 4.712172 8.049443 -v 0.108349 4.782697 8.105946 -v 0.108349 4.442004 8.010345 -v 0.108349 4.463150 7.849932 -v 0.108349 4.782697 8.105946 -v 0.108349 4.793696 8.158301 -v -0.090068 4.782697 8.105946 -v -0.090068 4.712172 8.049443 -v -0.090068 4.463150 7.849932 -v 0.108349 4.405278 8.288956 -v 0.108349 4.463150 7.849932 -v -0.090068 4.463150 7.849932 -v -0.090068 4.442965 8.003063 -v 0.042210 4.658266 8.043429 -v 0.042210 4.782697 8.105946 -v -0.023929 4.782697 8.105946 -v -0.023929 4.812802 8.249234 -v -0.090068 4.463150 7.849932 -v -0.090068 4.442965 8.003063 -v 0.108349 4.442004 8.010345 -v 0.108349 4.463150 7.849932 -v -0.090068 4.463150 7.849932 -v -0.090068 4.405278 8.288956 -v -0.065027 3.757016 7.321871 -v -0.060844 3.766371 7.510190 -v 0.088251 3.766989 7.521697 -v 0.092221 3.756975 7.324428 -v 0.083737 3.522897 8.173863 -v 0.083737 3.672082 8.172421 -v -0.065455 3.672082 8.172421 -v -0.065455 3.522897 8.173863 -v 0.083737 3.517609 7.626964 -v 0.088711 3.661251 7.628131 -v -0.066596 3.661242 7.625576 -v -0.065455 3.517609 7.626964 -v 0.083737 3.514731 7.329237 -v 0.088711 3.658372 7.330404 -v -0.066596 3.658364 7.327848 -v -0.065455 3.514731 7.329237 -v 0.083737 3.385996 7.628237 -v 0.083737 3.383117 7.330510 -v -0.065455 3.371527 7.330622 -v -0.065455 3.374406 7.628348 -v 0.042210 4.812802 8.249234 -v -0.023929 4.658266 8.043429 -v 0.042210 4.812802 8.249234 -v -0.023929 4.407197 8.487363 -v -0.023929 4.664865 8.473516 -v -0.028461 3.711009 8.524389 -v -0.023929 4.071090 8.512082 -v -0.023929 4.463150 7.849932 -v 0.042210 4.463150 7.849932 -v -0.090068 4.069731 8.308047 -v -0.090068 4.405837 8.283328 -v 0.108349 4.069801 8.307324 -v 0.108349 4.405909 8.282606 -v -0.128788 3.939337 -4.286372 -v -0.128788 3.725225 -4.284302 -v -0.339690 3.725225 -4.284302 -v -0.339690 3.939337 -4.286372 -v 0.085334 3.939337 -4.286372 -v 0.085334 3.725225 -4.284302 -v 0.085334 3.715957 -5.242964 -v 0.085334 3.930068 -5.245033 -v 0.085334 3.941407 -4.072260 -v 0.274737 3.941407 -4.072260 -v 0.274737 3.939337 -4.286372 -v -0.128788 3.941407 -4.072260 -v -0.128788 3.727295 -4.070190 -v -0.128788 3.752047 -1.509983 -v -0.128788 3.966159 -1.512053 -v 0.013960 3.725225 -4.284302 -v 0.085334 3.727295 -4.070190 -v 0.013960 3.727295 -4.070190 -v -0.087317 3.939388 -4.275171 -v -0.057414 3.941407 -4.072260 -v -0.128788 3.968520 -1.267860 -v -0.293372 3.966159 -1.512053 -v -0.293372 3.968520 -1.267860 -v 0.085334 3.752047 -1.509983 -v 0.013960 3.752047 -1.509983 -v -0.057414 3.966159 -1.512053 -v 0.085334 3.966159 -1.512053 -v -0.057414 3.754408 -1.265790 -v -0.057414 3.968520 -1.267860 -v -0.128788 3.754408 -1.265790 -v 0.013960 3.968520 -1.267860 -v 0.085334 3.968520 -1.267860 -v 0.085334 4.334809 -1.271402 -v 0.013960 4.334809 -1.271402 -v 0.085334 3.754408 -1.265790 -v 0.334377 3.754408 -1.265790 -v 0.334377 3.968520 -1.267860 -v 0.013960 3.754408 -1.265790 -v -0.128788 4.490870 -1.497192 -v -0.128788 4.389227 -1.297727 -v -0.128788 4.537484 -1.491777 -v -0.128788 4.332448 -1.515594 -v -0.057414 4.332448 -1.515594 -v 0.085334 4.332448 -1.515594 -v -0.128788 4.334809 -1.271402 -v -0.057414 4.537484 -1.491777 -v -0.057414 4.376855 -1.291742 -v -0.098593 4.547485 -1.579802 -v -0.098593 4.514018 -1.583690 -v 0.085334 4.376855 -1.291742 -v 0.085334 4.490870 -1.497192 -v 0.085334 4.537484 -1.491777 -v 0.003895 4.547485 -1.579802 -v 0.055139 4.547485 -1.579802 -v 0.175042 4.762084 -4.264839 -v 0.043863 4.762084 -4.264839 -v -0.098593 4.400275 -1.596903 -v -0.047349 4.400275 -1.596903 -v 0.055139 4.400275 -1.596903 -v 0.055139 4.514018 -1.583690 -v 0.013960 4.537484 -1.491777 -v 0.175042 4.284624 -4.842155 -v 0.175042 4.293411 -4.398141 -v 0.175042 4.036338 -4.393054 -v 0.175042 4.027551 -4.837068 -v -0.218496 4.762084 -4.264839 -v -0.218496 4.676412 -4.274791 -v -0.218496 4.385243 -4.308614 -v -0.087317 4.385243 -4.308614 -v 0.175042 4.385243 -4.308614 -v 0.175042 4.676412 -4.274791 -v -0.087317 3.929435 -4.839783 -v -0.218496 3.929435 -4.839783 -v -0.218496 3.918185 -5.516152 -v -0.087317 3.918185 -5.516152 -v -0.218496 4.293411 -4.398141 -v -0.218496 4.284624 -4.842155 -v -0.218496 4.027551 -4.837068 -v -0.218496 4.036338 -4.393054 -v -0.218496 3.939388 -4.275171 -v -0.218496 4.365192 -4.846815 -v -0.087317 4.293411 -4.398141 -v -0.218496 4.016302 -5.513437 -v 0.175042 4.016302 -5.513437 -v -0.087317 4.036338 -4.393054 -v -0.218496 4.734344 -5.370099 -v -0.218496 4.842429 -5.370595 -v -0.218496 4.663689 -5.549295 -v -0.218496 4.599157 -5.547852 -v 0.043863 4.842429 -5.370595 -v 0.175042 4.842429 -5.370595 -v 0.175042 4.663689 -5.549295 -v 0.043863 4.663689 -5.549295 -v 0.175042 4.734344 -5.370099 -v 0.175042 4.367011 -5.368414 -v 0.175042 4.379847 -5.542946 -v 0.175042 4.599157 -5.547852 -v 0.043863 4.599157 -5.547852 -v 0.175042 4.736579 -4.882914 -v 0.175042 4.365105 -4.867969 -v 0.043863 4.844664 -4.883410 -v 0.175042 4.844664 -4.883410 -v -0.218496 4.736579 -4.882914 -v -0.218496 4.844664 -4.883410 -v -0.087317 4.367011 -5.368414 -v -0.218496 4.367011 -5.368414 -v -0.218496 4.379847 -5.542946 -v -0.087317 4.379847 -5.542946 -v 0.043863 4.801307 -4.848616 -v 0.175042 4.801307 -4.848616 -v 0.175042 4.702158 -4.848207 -v -0.087317 4.365192 -4.846815 -v -0.218496 4.369246 -4.881228 -v -0.087317 4.369246 -4.881228 -v -0.218496 4.702158 -4.848207 -v -0.218496 4.801307 -4.848616 -v -0.057414 3.725225 -4.284302 -v -0.128788 3.715957 -5.242964 -v -0.057414 3.715957 -5.242964 -v 0.043863 3.939388 -4.275171 -v 0.013960 3.930068 -5.245033 -v -0.128788 3.930068 -5.245033 -v 0.013960 3.709850 -5.865262 -v 0.013960 3.912128 -5.795037 -v 0.085334 3.912128 -5.795037 -v 0.085334 3.709850 -5.865262 -v 0.175042 3.929435 -4.839783 -v 0.175042 3.918185 -5.516152 -v -0.128788 3.912128 -5.795037 -v -0.128788 3.709850 -5.865262 -v -0.057414 3.709850 -5.865262 -v 0.043863 4.365105 -4.867969 -v 0.175042 4.353942 -5.523185 -v 0.043863 4.353942 -5.523185 -v -0.218496 4.353942 -5.523185 -v -0.218496 4.273375 -5.518525 -v -0.218496 3.912346 -5.794299 -v -0.057414 3.912128 -5.795037 -v 0.175042 4.273375 -5.518525 -v 0.043863 4.273375 -5.518525 -v 0.175042 4.294797 -5.661301 -v 0.043863 4.294797 -5.661301 -v 0.175042 3.939388 -4.275171 -v 0.043863 4.016843 -5.754391 -v 0.175042 4.016843 -5.754391 -v 0.175042 3.912346 -5.794299 -v -0.218496 4.016843 -5.754391 -v -0.218496 4.294797 -5.661301 -v -0.087317 4.294797 -5.661301 -v -0.087317 4.016843 -5.754391 -v 0.043863 4.036338 -4.393054 -v -0.087317 4.273375 -5.518525 -v -0.087317 4.353942 -5.523185 -v 0.043863 3.918185 -5.516152 -v 0.013960 3.715957 -5.242964 -v -0.057414 3.930068 -5.245033 -v 0.043863 3.929435 -4.839783 -v -0.087317 4.762084 -4.264839 -v -0.087317 4.801220 -4.869769 -v 0.043863 4.367011 -5.368414 -v -0.087317 4.844664 -4.883410 -v 0.043863 4.379847 -5.542946 -v -0.087317 4.842429 -5.370595 -v -0.087317 4.663689 -5.549295 -v -0.087317 4.599157 -5.547852 -v 0.043863 4.293411 -4.398141 -v 0.043863 4.385243 -4.308614 -v 0.003895 4.400275 -1.596903 -v -0.047349 4.547485 -1.579802 -v 0.013960 4.332448 -1.515594 -v 0.042011 4.595339 -5.296710 -v -0.085465 4.595339 -5.296710 -v 0.013960 4.376855 -1.291742 -v 0.013960 3.966159 -1.512053 -v -0.057414 3.752047 -1.509983 -v -0.057414 4.334809 -1.271402 -v 0.013960 3.941407 -4.072260 -v -0.057414 3.727295 -4.070190 -v -0.086140 4.596731 -5.388300 -v 0.274737 3.725225 -4.284302 -v 0.274737 3.727295 -4.070190 -v -0.339690 3.727295 -4.070190 -v -0.339690 3.941407 -4.072260 -v -0.293372 3.752047 -1.509983 -v -0.293372 3.754408 -1.265790 -v 0.334377 3.752047 -1.509983 -v 0.334377 3.966159 -1.512053 -v -0.020524 4.043039 -5.178573 -v -0.020524 4.040238 -5.468335 -v 0.184378 4.041059 -5.383466 -v -0.020524 4.263888 -5.180708 -v 0.184378 4.261907 -5.385601 -v -0.020524 4.261086 -5.470470 -v 0.269252 4.043039 -5.178573 -v 0.269252 4.263888 -5.180708 -v 0.184378 4.045021 -4.973680 -v 0.184378 4.265869 -4.975815 -v -0.020524 4.045841 -4.888810 -v -0.020524 4.266689 -4.890945 -v -0.225427 4.045021 -4.973680 -v -0.225427 4.265869 -4.975815 -v -0.310300 4.043039 -5.178573 -v -0.310300 4.263888 -5.180708 -v -0.225427 4.041059 -5.383466 -v -0.225427 4.261907 -5.385601 -v 0.042687 4.596731 -5.388300 -v -0.074426 4.640141 -5.380030 -v 0.030972 4.640141 -5.380030 -v -0.073873 4.639002 -5.305097 -v 0.029752 4.654943 -5.320924 -v -0.021181 4.633978 -5.323280 -v 0.024096 4.664785 -5.357850 -v -0.021181 4.638448 -5.363047 -v 0.042850 4.705805 -5.317441 -v 0.042850 4.709779 -5.352792 -v 0.024096 4.754773 -5.347733 -v 0.024096 4.750798 -5.312383 -v -0.021181 4.773410 -5.345638 -v -0.021181 4.777135 -5.307187 -v -0.072114 4.760641 -5.349310 -v -0.066458 4.750798 -5.312383 -v -0.085213 4.709779 -5.352792 -v -0.093211 4.705556 -5.315233 -v -0.066458 4.664785 -5.357850 -v -0.214659 4.417867 -5.192763 -v -0.214119 4.436285 -5.115522 -v -0.274848 4.436007 -5.144247 -v -0.213685 4.486393 -5.053922 -v -0.213445 4.558267 -5.020162 -v -0.349903 4.557643 -5.084703 -v -0.323116 4.485892 -5.105680 -v -0.213445 4.637671 -5.020929 -v -0.213685 4.708880 -5.056073 -v -0.323116 4.708379 -5.107832 -v -0.349903 4.637048 -5.085471 -v -0.214119 4.757788 -5.118630 -v -0.214659 4.774708 -5.196214 -v -0.274848 4.757510 -5.147355 -v -0.384519 4.635627 -5.232394 -v -0.384519 4.556222 -5.231627 -v -0.290254 4.756878 -5.212741 -v -0.350876 4.707240 -5.225655 -v -0.290254 4.435375 -5.209634 -v -0.350876 4.484754 -5.223503 -v -0.248736 4.434864 -5.262445 -v -0.291228 4.555075 -5.350295 -v -0.276063 4.483833 -5.318668 -v -0.276063 4.706320 -5.320819 -v -0.291228 4.634480 -5.351063 -v -0.248736 4.756367 -5.265553 -v -0.181557 4.434860 -5.262915 -v -0.140279 4.555065 -5.351349 -v -0.155011 4.483825 -5.319513 -v -0.155011 4.706312 -5.321664 -v -0.140279 4.634470 -5.352117 -v -0.181557 4.756362 -5.266023 -v -0.576565 3.014771 -5.569995 -v -0.604169 3.016425 -5.679888 -v -0.460427 3.032423 -5.715754 -v -0.432823 3.030769 -5.605861 -v -0.382525 3.158213 -5.733428 -v -0.354921 3.156559 -5.623536 -v -0.429126 3.299072 -5.719602 -v -0.401522 3.297418 -5.609710 -v -0.565138 3.348930 -5.684687 -v -0.537534 3.347276 -5.574795 -v -0.688141 3.270244 -5.654974 -v -0.660537 3.268590 -5.545082 -v -0.705511 3.122265 -5.652839 -v -0.677907 3.120611 -5.542946 -v -0.055919 2.973660 -3.634294 -v 0.087823 2.989658 -3.670160 -v 0.165724 3.115448 -3.687835 -v 0.119123 3.256307 -3.674009 -v -0.016889 3.306165 -3.639094 -v -0.139891 3.227479 -3.609381 -v -0.157262 3.079500 -3.607245 -v -0.601651 3.136804 -5.555968 -v -0.538175 3.070511 -5.572911 -v -0.590771 3.229491 -5.557307 -v -0.513728 3.278776 -5.575917 -v -0.428538 3.247547 -5.597787 -v -0.399349 3.159320 -5.606446 -v -0.448143 3.080532 -5.595376 -v -0.482560 2.999224 -5.332764 -v -0.338818 3.015222 -5.368630 -v -0.260917 3.141012 -5.386305 -v -0.307518 3.281871 -5.372479 -v -0.443529 3.331730 -5.337564 -v -0.566532 3.253043 -5.307851 -v -0.583902 3.105064 -5.305715 -v -0.479087 3.064332 -5.340877 -v -0.389054 3.074353 -5.363341 -v -0.340261 3.153141 -5.374412 -v -0.369449 3.241368 -5.365751 -v -0.454640 3.272597 -5.343883 -v -0.531682 3.223312 -5.325272 -v -0.542562 3.130625 -5.323935 -v -0.363587 3.145624 -3.764716 -v -0.355013 3.102182 -3.763593 -v -0.355013 3.101992 -3.783260 -v -0.363587 3.145434 -3.784383 -v -0.363587 3.150487 -3.261750 -v -0.355013 3.107044 -3.260627 -v -0.355013 3.103132 -3.665258 -v -0.363587 3.146575 -3.666381 -v -0.363587 3.158700 -2.412168 -v -0.355013 3.115258 -2.411045 -v -0.355013 3.114258 -2.514499 -v -0.363587 3.157700 -2.515622 -v -0.353813 3.282961 -2.413369 -v -0.357413 3.255744 -2.413106 -v -0.357413 3.254744 -2.516561 -v -0.353813 3.281961 -2.516824 -v -0.353813 3.274748 -3.262952 -v -0.357413 3.247530 -3.262689 -v -0.357413 3.243618 -3.667320 -v -0.353813 3.270836 -3.667583 -v -0.353813 3.269885 -3.765918 -v -0.357413 3.242667 -3.765655 -v -0.357413 3.242477 -3.785322 -v -0.353813 3.269695 -3.785585 -v -0.353813 3.278354 -2.889888 -v -0.357413 3.251137 -2.889625 -v -0.355013 3.110651 -2.887563 -v -0.363587 3.154094 -2.888686 -v -0.357413 3.255977 -2.389014 -v -0.363587 3.158933 -2.388076 -v -0.353813 3.283194 -2.389277 -v -0.355013 3.115491 -2.386953 -v -0.351350 3.289458 -3.667763 -v -0.351350 3.288507 -3.766098 -v -0.351350 3.300584 -2.517004 -v -0.351350 3.296977 -2.890068 -v -0.351350 3.293370 -3.263132 -v -0.351350 3.301584 -2.413549 -v -0.373501 3.146935 -3.764729 -v -0.373501 3.146745 -3.784396 -v -0.362845 3.095773 -3.783200 -v -0.362845 3.095964 -3.763533 -v -0.373501 3.151798 -3.261763 -v -0.373501 3.147886 -3.666394 -v -0.362845 3.096914 -3.665198 -v -0.362845 3.100826 -3.260567 -v -0.373501 3.160012 -2.412180 -v -0.373501 3.159012 -2.515635 -v -0.362845 3.108040 -2.514439 -v -0.362845 3.109040 -2.410985 -v -0.363727 3.284273 -2.413382 -v -0.363727 3.283272 -2.516836 -v -0.367327 3.256055 -2.516573 -v -0.367327 3.257055 -2.413119 -v -0.363727 3.276059 -3.262964 -v -0.363727 3.272147 -3.667595 -v -0.367327 3.244929 -3.667332 -v -0.367327 3.248841 -3.262701 -v -0.363727 3.271196 -3.765930 -v -0.363727 3.271006 -3.785597 -v -0.367327 3.243788 -3.785334 -v -0.367327 3.243979 -3.765667 -v -0.363727 3.279666 -2.889900 -v -0.367327 3.252448 -2.889637 -v -0.373501 3.155405 -2.888699 -v -0.362845 3.104433 -2.887503 -v -0.367327 3.257288 -2.389027 -v -0.373501 3.160245 -2.388088 -v -0.363727 3.284506 -2.389290 -v -0.362845 3.109273 -2.386893 -v -0.361263 3.290770 -3.667776 -v -0.361263 3.289819 -3.766110 -v -0.361263 3.301895 -2.517016 -v -0.361263 3.298288 -2.890080 -v -0.361263 3.294681 -3.263144 -v -0.361263 3.302895 -2.413562 -v 0.026115 3.520083 12.578159 -v 0.158830 3.484524 12.578503 -v -0.203755 3.387375 12.579442 -v -0.106601 3.484524 12.578503 -v 0.026115 2.989248 12.583291 -v -0.106601 3.024806 12.582948 -v 0.255984 3.387375 12.579442 -v 0.278259 3.304250 12.580246 -v 0.158830 3.024806 12.582948 -v -0.213038 3.187391 12.581376 -v -0.228374 3.295500 12.580331 -v 0.255984 3.121957 12.582008 -v 0.275445 3.224015 12.581021 -v -0.089518 3.454937 12.578789 -v 0.026115 3.485919 12.578489 -v -0.174167 3.370292 12.579607 -v -0.181397 3.199310 12.581261 -v -0.194754 3.293464 12.580350 -v 0.026115 3.023412 12.582961 -v -0.085890 3.053421 12.582671 -v 0.141747 3.054394 12.582662 -v 0.225469 3.138112 12.581852 -v 0.242553 3.227706 12.580986 -v 0.141747 3.454937 12.578789 -v 0.226396 3.370292 12.579607 -v 0.245105 3.300474 12.580282 -v 0.132682 3.422947 11.477539 -v 0.030794 3.450246 11.477275 -v 0.207268 3.144599 11.480230 -v 0.222208 3.222950 11.479473 -v 0.224368 3.284547 11.478877 -v 0.207268 3.348363 11.478260 -v -0.071093 3.422947 11.477539 -v -0.145680 3.348363 11.478260 -v -0.164580 3.277830 11.478942 -v -0.152806 3.194833 11.479744 -v -0.071093 3.070015 11.480951 -v 0.030794 3.042716 11.481215 -v 0.132682 3.070015 11.480951 -v -0.089518 3.454937 12.578789 -v 0.026115 3.485919 12.578489 -v -0.174167 3.370292 12.579607 -v -0.181397 3.199310 12.581261 -v -0.194754 3.293464 12.580350 -v 0.026115 3.023411 12.582961 -v -0.085890 3.053421 12.582671 -v 0.141747 3.054393 12.582662 -v 0.225469 3.138112 12.581852 -v 0.242553 3.227706 12.580986 -v 0.141747 3.454937 12.578789 -v 0.226396 3.370292 12.579607 -v 0.245105 3.300475 12.580282 -v 0.132682 3.422947 11.477539 -v 0.030794 3.450246 11.477275 -v 0.207268 3.144599 11.480230 -v 0.222208 3.222950 11.479473 -v 0.224368 3.284547 11.478877 -v 0.207268 3.348363 11.478260 -v -0.071093 3.422947 11.477539 -v -0.145680 3.348363 11.478260 -v -0.164580 3.277830 11.478942 -v -0.152806 3.194833 11.479744 -v -0.071093 3.070015 11.480951 -v 0.030794 3.042716 11.481215 -v 0.132682 3.070015 11.480951 -v 0.161965 3.479305 11.476994 -v 0.026115 3.515703 11.476642 -v 0.261414 3.108174 11.480582 -v 0.281334 3.212642 11.479572 -v 0.284214 3.294771 11.478778 -v 0.261414 3.379859 11.477955 -v -0.109735 3.479305 11.476994 -v -0.209184 3.379859 11.477955 -v -0.234384 3.285815 11.478865 -v -0.218685 3.175153 11.479935 -v -0.109735 3.008729 11.481544 -v 0.026115 2.972330 11.481895 -v 0.161965 3.008729 11.481544 -v 0.225277 3.128225 11.396477 -v 0.141101 3.044054 11.397291 -v -0.088871 3.442358 11.393440 -v 0.026115 3.473166 11.393142 -v 0.141101 3.442358 11.393440 -v 0.225277 3.358186 11.394254 -v -0.181089 3.184917 11.395928 -v -0.194377 3.278584 11.395023 -v 0.026115 3.013243 11.397589 -v 0.244576 3.286165 11.394950 -v -0.088871 3.044054 11.397291 -v -0.173046 3.358186 11.394254 -v 0.242138 3.216650 11.395622 -v 0.226939 3.190377 8.484865 -v 0.229205 3.255001 8.484241 -v 0.221033 3.253622 8.507836 -v 0.218858 3.191598 8.508436 -v 0.128710 3.037602 8.509925 -v 0.203814 3.112703 8.509199 -v 0.026117 3.420470 8.506223 -v -0.076477 3.392981 8.506489 -v 0.203814 3.317881 8.507215 -v 0.128710 3.392981 8.506489 -v -0.170612 3.246857 8.507902 -v -0.158757 3.163285 8.508710 -v 0.026117 3.010113 8.510191 -v -0.076477 3.037602 8.509925 -v -0.151581 3.317881 8.507215 -v 0.133012 3.400203 8.482837 -v 0.026117 3.428843 8.482559 -v -0.080779 3.400203 8.482837 -v -0.159031 3.321954 8.483593 -v -0.080779 3.029925 8.486416 -v 0.026117 3.001283 8.486693 -v 0.211264 3.321954 8.483593 -v 0.133012 3.029925 8.486416 -v -0.178861 3.247952 8.484308 -v -0.166508 3.160877 8.485150 -v 0.211264 3.108174 8.485660 -v 0.130800 3.031615 8.264970 -v 0.207433 3.108244 8.264229 -v 0.026117 3.422280 8.261192 -v -0.078566 3.394231 8.261463 -v 0.207433 3.317600 8.262204 -v 0.130800 3.394231 8.261463 -v -0.174619 3.245131 8.262905 -v -0.162522 3.159858 8.263730 -v 0.026117 3.003567 8.265241 -v 0.225003 3.252033 8.262838 -v -0.078566 3.031615 8.264970 -v -0.155200 3.317600 8.262204 -v 0.125120 3.384223 8.243902 -v 0.026117 3.410749 8.243646 -v -0.072887 3.384223 8.243902 -v -0.145362 3.311750 8.244603 -v -0.072887 3.041281 8.247218 -v 0.026117 3.014755 8.247475 -v 0.214212 3.249741 8.245203 -v 0.197596 3.311750 8.244603 -v 0.125120 3.041281 8.247218 -v -0.163728 3.243213 8.245266 -v -0.152287 3.162566 8.246045 -v 0.197596 3.113754 8.246517 -v 0.212113 3.189888 8.245781 -v 0.222783 3.188746 8.263451 -v 0.360992 2.553488 7.419190 -v 0.026117 2.463763 7.420058 -v -0.581955 2.963729 7.415224 -v -0.620958 3.236514 7.412587 -v 0.360992 3.713472 7.407975 -v 0.606137 3.468339 7.410346 -v -0.308757 3.713473 7.407975 -v 0.026117 3.803198 7.407108 -v 0.606137 2.798622 7.416821 -v -0.308757 2.553488 7.419190 -v -0.565872 2.946235 7.415394 -v -0.553902 3.468339 7.410346 -v 0.662341 3.258592 7.412374 -v 0.126247 3.033054 7.598080 -v 0.199547 3.106351 7.597371 -v 0.026117 3.406727 7.594467 -v -0.074013 3.379899 7.594727 -v 0.199547 3.306602 7.595435 -v 0.126247 3.379899 7.594727 -v -0.165888 3.237284 7.596105 -v -0.154317 3.155719 7.596893 -v 0.026117 3.006226 7.598339 -v 0.216353 3.243886 7.596042 -v -0.074013 3.033054 7.598080 -v -0.147313 3.306602 7.595435 -v 0.214230 3.183352 7.596626 -v 0.655241 3.056143 7.414330 -v 0.662640 3.068029 7.414216 -v -0.150892 3.150488 7.596944 -v 0.404348 2.344625 -0.169240 -v -0.025414 2.229476 -0.168127 -v -0.025414 2.447085 -0.235523 -v 0.295223 2.532996 -0.236354 -v -0.856289 3.221189 -0.177715 -v -0.806233 2.871109 -0.174330 -v 0.718957 3.518703 -0.180592 -v 0.404349 3.833296 -0.183633 -v -0.025414 3.948445 -0.184746 -v -0.455176 3.833296 -0.183633 -v 0.718957 2.659218 -0.172282 -v -0.785146 2.848658 -0.174113 -v -0.455177 2.344625 -0.169240 -v -0.769785 3.518703 -0.180592 -v 0.791086 3.249524 -0.177989 -v 0.791023 3.004963 -0.175625 -v 0.579132 3.025661 -0.241117 -v 0.583760 3.208122 -0.242881 -v -0.640253 3.186982 -0.242677 -v -0.603200 2.925795 -0.240152 -v 0.529946 3.408951 -0.244823 -v 0.295223 3.643663 -0.247092 -v -0.025414 3.729573 -0.247923 -v -0.346051 3.643663 -0.247092 -v 0.529946 2.767707 -0.238623 -v -0.592235 2.909045 -0.239990 -v -0.580774 3.408952 -0.244823 -v -0.346051 2.532996 -0.236354 -v -0.025414 2.339091 -0.673720 -v 0.347100 2.438901 -0.674685 -v 0.676943 3.011275 -0.680219 -v 0.688901 3.198697 -0.682031 -v 0.682320 3.223258 -0.682268 -v 0.474129 3.163835 -0.723243 -v 0.469526 3.181010 -0.723409 -v -0.739729 3.198697 -0.682031 -v -0.696682 2.895252 -0.679097 -v 0.619799 3.456579 -0.684524 -v 0.347100 3.729265 -0.687160 -v -0.025414 3.829076 -0.688125 -v -0.397928 3.729265 -0.687160 -v 0.619799 2.711587 -0.677321 -v -0.683942 2.875792 -0.678909 -v -0.670627 3.456579 -0.684524 -v -0.397928 2.438901 -0.674685 -v 0.465767 3.032764 -0.721976 -v -0.025414 2.562685 -0.717431 -v 0.235096 2.632485 -0.718106 -v -0.524957 3.163835 -0.723243 -v -0.494852 2.951626 -0.721192 -v 0.425803 3.344180 -0.724987 -v 0.235097 3.534878 -0.726831 -v -0.025414 3.604678 -0.727505 -v -0.285924 3.534878 -0.726831 -v 0.425803 2.823183 -0.719950 -v -0.485943 2.938017 -0.721060 -v -0.476631 3.344180 -0.724987 -v 0.674422 2.998053 -0.680091 -v 0.464004 3.023518 -0.721887 -v -0.285924 2.632485 -0.718106 -v -0.488505 3.299868 -0.724558 -v -0.687605 3.393217 -0.683911 -v -0.736741 3.209849 -0.682138 -v -0.522867 3.171633 -0.723319 -v -0.700186 3.346269 -0.683457 -v -0.497303 3.267036 -0.724241 -v -0.514898 3.201372 -0.723606 -v -0.725346 3.252373 -0.682550 -v -0.712766 3.299321 -0.683003 -v -0.506101 3.234204 -0.723924 -v 0.425803 3.342331 -0.916230 -v 0.469526 3.179162 -0.914652 -v 0.300966 3.184552 -0.543207 -v 0.271888 3.293070 -0.544256 -v 0.465767 3.030915 -0.913219 -v 0.474129 3.161986 -0.914486 -v -0.476631 3.342331 -0.916230 -v -0.488505 3.298019 -0.915802 -v 0.235096 2.630636 -0.909349 -v -0.025414 2.560836 -0.908674 -v -0.028200 2.773328 -0.539231 -v 0.145056 2.819749 -0.539680 -v -0.524957 3.161986 -0.914486 -v -0.494852 2.949777 -0.912435 -v 0.235097 3.533029 -0.918074 -v -0.025414 3.602829 -0.918749 -v -0.285924 3.533029 -0.918074 -v 0.425803 2.821334 -0.911193 -v -0.485943 2.936168 -0.912303 -v -0.285924 2.630636 -0.909349 -v -0.360427 3.173130 -0.543097 -v -0.340405 3.031997 -0.541732 -v 0.145056 3.419896 -0.545482 -v -0.028200 3.466318 -0.545931 -v -0.201455 3.419896 -0.545482 -v 0.271888 2.946575 -0.540906 -v -0.334480 3.022947 -0.541645 -v -0.328287 3.293070 -0.544256 -v 0.464004 3.021669 -0.913130 -v 0.297293 3.079810 -0.542194 -v -0.201455 2.819749 -0.539680 -v 0.304027 3.173130 -0.543097 -v -0.336184 3.263600 -0.543971 -v 0.298466 3.085960 -0.542254 -v -0.522867 3.169785 -0.914562 -v -0.359037 3.178316 -0.543147 -v -0.342035 3.241765 -0.543760 -v -0.497303 3.265187 -0.915484 -v -0.514898 3.199523 -0.914849 -v -0.353737 3.198094 -0.543338 -v -0.506101 3.232355 -0.915167 -v -0.347886 3.203671 -0.543392 -v -0.088064 -0.563161 -5.307450 -v -0.207814 -0.563161 -5.307450 -v 0.139997 0.233605 -4.853300 -v -0.084252 0.233605 -4.853300 -v -0.196376 0.233605 -4.853300 -v 0.136925 0.472180 -4.743518 -v 0.122857 1.454738 -4.298106 -v -0.083228 0.472180 -4.743518 -v -0.193305 0.472180 -4.743518 -v -0.179237 1.454738 -4.298106 -v -0.078539 1.454738 -4.298106 -v 0.153746 -0.762632 -5.266933 -v 0.082453 -0.903583 -5.396180 -v 0.008691 -0.903583 -5.396180 -v -0.088835 -0.762632 -5.266933 -v 0.153067 1.408763 -5.369888 -v 0.169948 0.735733 -5.803853 -v -0.114885 1.502682 -3.027913 -v -0.179237 1.454738 -4.298106 -v -0.193305 0.472180 -4.743518 -v -0.284789 1.712767 -3.235150 -v -0.330283 1.424088 -5.012627 -v -0.209446 1.408763 -5.369888 -v -0.226328 0.735733 -5.803853 -v -0.358420 0.647882 -5.450408 -v 0.273904 1.439413 -4.655366 -v 0.122857 1.454738 -4.298106 -v 0.136925 0.472180 -4.743518 -v 0.302040 0.560031 -5.096963 -v -0.210126 -0.762632 -5.266933 -v -0.138832 -0.903583 -5.396180 -v -0.065070 -0.903583 -5.396180 -v -0.193305 0.472180 -4.743518 -v -0.083228 0.472180 -4.743518 -v 0.136925 0.472180 -4.743518 -v -0.194953 0.302622 -4.650402 -v 0.173634 0.518873 -5.942758 -v -0.196376 0.233605 -4.853300 -v -0.114812 1.677601 -3.247157 -v -0.230014 0.518873 -5.942758 -v -0.364563 0.423784 -5.579605 -v 0.139997 0.233605 -4.853300 -v 0.308184 0.328695 -5.216453 -v 0.187359 -0.288598 -6.459964 -v -0.207814 -0.563161 -5.307450 -v -0.284789 1.705085 -3.772867 -v -0.243738 -0.288598 -6.459964 -v -0.387438 -0.380119 -6.075793 -v 0.151434 -0.563161 -5.307450 -v 0.331058 -0.471640 -5.691622 -v 0.331058 -0.380119 -6.075793 -v -0.083777 0.302622 -4.650402 -v -0.387438 -0.471640 -5.691622 -v 0.138574 0.302622 -4.650402 -v 0.308184 0.423784 -5.579605 -v -0.364563 0.328694 -5.216453 -v -0.196376 0.233605 -4.853300 -v -0.084252 0.233605 -4.853300 -v 0.302040 0.647882 -5.450408 -v -0.358420 0.560031 -5.096963 -v 0.273904 1.424088 -5.012627 -v -0.330283 1.439413 -4.655366 -v 0.139997 0.233605 -4.853300 -v -0.207814 -0.563161 -5.307450 -v -0.284789 1.707290 -3.635175 -v -0.088064 -0.563161 -5.307450 -v -0.116042 1.660913 -3.634511 -v 0.151434 -0.563161 -5.307450 -v -0.116041 1.658715 -3.772054 -v -0.284789 1.700950 -4.031070 -v 0.331058 -0.471640 -5.691622 -v 0.331058 -0.380119 -6.075793 -v 0.335683 -0.555430 -6.131989 -v -0.387438 -0.471640 -5.691622 -v -0.392062 -0.659031 -5.699462 -v 0.308184 0.423784 -5.579605 -v -0.364563 0.328694 -5.216453 -v 0.305337 0.513775 -5.469066 -v -0.361716 0.408198 -5.059734 -v 0.302040 0.647882 -5.450408 -v -0.358420 0.560031 -5.096963 -v -0.249474 -0.803404 -5.819082 -v 0.193095 -0.703225 -6.241984 -v -0.114767 1.666757 -4.017442 -v -0.284789 1.321313 -4.283208 -v -0.284789 1.515775 -4.233112 -v -0.114964 1.495999 -4.200259 -v -0.117773 1.321858 -4.224834 -v 0.151434 -0.563161 -5.307450 -v 0.031685 -0.563161 -5.307450 -v 0.027873 0.233605 -4.853300 -v 0.026849 0.472180 -4.743518 -v 0.022159 1.454738 -4.298106 -v 0.031685 -0.563161 -5.307450 -v 0.032456 -0.762632 -5.266933 -v 0.027873 0.233605 -4.853300 -v 0.027398 0.302622 -4.650402 -v 0.026849 0.472180 -4.743518 -v -0.116145 0.978564 -3.628443 -v -0.284789 0.931451 -3.627675 -v -0.114705 0.967637 -4.021990 -v -0.284789 0.934137 -4.036023 -v -0.115059 1.147580 -4.195626 -v -0.284789 1.127856 -4.229362 -v 0.233857 1.712767 -3.235150 -v 0.233857 1.707290 -3.635175 -v 0.233857 1.330151 -2.942667 -v 0.233857 1.523608 -2.996514 -v 0.233857 1.515775 -4.233112 -v 0.233857 1.321313 -4.283208 -v 0.233857 1.705085 -3.772867 -v 0.233857 1.702504 -3.934052 -v 0.233857 1.700950 -4.031070 -v 0.233857 0.934137 -4.036023 -v 0.233857 0.931451 -3.627675 -v 0.233857 1.127856 -4.229362 -v 0.233857 1.135689 -2.992763 -v 0.233857 0.951510 -3.091764 -v -0.284789 1.702504 -3.934052 -v -0.116041 1.656134 -3.933240 -v 0.065110 1.658714 -3.772054 -v 0.065110 1.656132 -3.933240 -v -0.058661 1.651579 -3.933167 -v -0.058661 1.654160 -3.771982 -v 0.063835 1.666756 -4.017442 -v 0.066841 1.321858 -4.224834 -v 0.064127 1.147580 -4.195626 -v 0.063773 0.967636 -4.021990 -v 0.065213 0.978564 -3.628443 -v 0.063492 0.980412 -3.109781 -v 0.064574 1.151276 -3.032256 -v 0.066824 1.329624 -3.000926 -v 0.063953 1.502682 -3.027913 -v 0.063880 1.677601 -3.247157 -v 0.065110 1.660913 -3.634511 -v 0.064032 1.495999 -4.200259 -v 0.007729 1.651578 -3.933167 -v 0.007729 1.654159 -3.771982 -v -0.576565 3.014771 -5.569995 -v -0.604169 3.016425 -5.679888 -v -0.460427 3.032423 -5.715754 -v -0.432823 3.030769 -5.605861 -v -0.382525 3.158213 -5.733428 -v -0.354921 3.156559 -5.623536 -v -0.429126 3.299072 -5.719602 -v -0.401522 3.297418 -5.609710 -v -0.565138 3.348930 -5.684687 -v -0.537534 3.347276 -5.574795 -v -0.688141 3.270244 -5.654974 -v -0.660537 3.268590 -5.545082 -v -0.705511 3.122265 -5.652839 -v -0.677907 3.120611 -5.542946 -v -0.055919 2.973660 -3.634294 -v 0.087823 2.989658 -3.670160 -v 0.165724 3.115448 -3.687835 -v 0.119123 3.256307 -3.674009 -v -0.016889 3.306165 -3.639094 -v -0.139891 3.227479 -3.609381 -v -0.157262 3.079500 -3.607245 -v -0.601651 3.136804 -5.555968 -v -0.538175 3.070511 -5.572911 -v -0.590771 3.229491 -5.557307 -v -0.513728 3.278776 -5.575917 -v -0.428538 3.247547 -5.597787 -v -0.399349 3.159320 -5.606446 -v -0.448143 3.080532 -5.595376 -v -0.482560 2.999224 -5.332764 -v -0.338818 3.015222 -5.368630 -v -0.260917 3.141012 -5.386305 -v -0.307518 3.281871 -5.372479 -v -0.443529 3.331730 -5.337564 -v -0.566532 3.253043 -5.307851 -v -0.583902 3.105064 -5.305715 -v -0.479087 3.064332 -5.340877 -v -0.389054 3.074353 -5.363341 -v -0.340261 3.153141 -5.374412 -v -0.369449 3.241368 -5.365751 -v -0.454640 3.272597 -5.343883 -v -0.531682 3.223312 -5.325272 -v -0.542562 3.130625 -5.323935 -v -0.020524 4.040238 -5.468335 -v 0.184378 4.041059 -5.383466 -v 0.184378 4.261907 -5.385601 -v -0.020524 4.261086 -5.470470 -v 0.269252 4.043039 -5.178573 -v 0.269252 4.263888 -5.180708 -v 0.184378 4.045021 -4.973680 -v 0.184378 4.265869 -4.975815 -v -0.020524 4.045841 -4.888810 -v -0.020524 4.266689 -4.890945 -v -0.225427 4.045021 -4.973680 -v -0.225427 4.265869 -4.975815 -v -0.310300 4.043039 -5.178573 -v -0.310300 4.263888 -5.180708 -v -0.225427 4.041059 -5.383466 -v -0.225427 4.261907 -5.385601 -v -0.385685 2.610826 -13.126019 -v -0.385685 3.299155 -13.055437 -v 0.304490 3.299155 -13.055437 -v 0.304490 2.610826 -13.126019 -v -0.385685 0.019905 -12.750216 -v 0.304490 0.019905 -12.750216 -v -0.385685 0.729564 -12.914287 -v -0.385685 1.809576 -13.081938 -v 0.304490 1.809576 -13.081938 -v 0.304490 0.729564 -12.914287 -v 0.577935 1.794459 -12.737568 -v 0.577935 0.846547 -12.590424 -v -0.585645 3.126972 -12.757756 -v -0.585645 2.512112 -12.820806 -v -0.585645 1.796385 -12.781429 -v -0.585645 0.831648 -12.631672 -v -0.585645 0.197734 -12.485114 -v 0.577935 0.223689 -12.446421 -v 0.577935 2.497705 -12.776258 -v 0.577935 3.101842 -12.714309 -v -0.585645 3.239276 -6.538247 -v -0.585645 3.183095 -9.651071 -v -0.585645 3.126972 -12.757756 -v 0.577935 3.101842 -12.714309 -v 0.577935 3.156986 -9.661803 -v 0.577935 3.212186 -6.603268 +f 2/566/337 4/567/338 1/568/339 +f 3/569/340 6/570/341 4/567/338 +f 3/569/340 7/571/342 5/572/343 +f 6/570/341 7/571/342 8/573/344 +f 7/571/342 1/568/339 8/573/344 +f 9/574/345 11/575/346 12/576/347 +f 13/577/348 9/578/345 12/579/347 +f 15/580/349 12/579/347 11/581/346 +f 16/582/350 11/581/346 10/583/351 +f 9/584/345 16/582/350 10/583/351 +f 13/585/348 1/586/339 14/587/352 +f 6/588/341 13/577/348 15/580/349 +f 16/582/350 6/589/341 15/580/349 +f 1/586/339 16/590/350 14/587/352 +f 17/591/353 19/592/354 20/593/355 +f 20/593/355 21/594/356 22/595/357 +f 19/592/354 23/596/358 21/594/356 +f 22/595/357 23/596/358 24/597/359 +f 23/596/358 17/591/353 24/597/359 +f 25/598/345 27/599/346 28/600/347 +f 28/601/347 30/602/360 25/603/345 +f 31/604/361 28/601/347 27/605/346 +f 26/606/351 31/607/361 27/608/346 +f 30/609/360 26/606/351 25/268/345 +f 24/610/359 30/611/360 29/612/362 +f 22/613/357 29/614/362 31/604/361 +f 32/615/363 22/616/357 31/607/361 +f 17/617/353 32/618/363 30/611/360 +f 337/619/364 354/620/365 339/621/365 +f 358/622/109 334/623/366 357/624/109 +f 335/625/367 352/626/368 337/619/364 +f 360/565/91 362/627/369 359/472/91 +f 350/628/366 335/625/367 334/623/366 +f 361/629/370 364/630/371 362/627/369 +f 363/631/372 366/632/373 364/630/371 +f 366/632/373 345/633/374 331/634/374 +f 370/564/90 372/635/375 369/467/90 +f 377/636/376 371/637/377 378/638/378 +f 378/638/378 381/639/379 377/636/376 +f 385/640/380 381/639/379 382/641/381 +f 388/642/109 385/640/380 387/643/109 +f 345/633/374 332/644/95 331/634/374 +f 444/303/109 357/624/109 443/471/109 +f 353/645/382 469/560/91 355/451/91 +f 351/646/383 470/647/384 353/645/382 +f 348/648/385 471/649/386 351/646/383 +f 348/648/385 473/650/387 472/651/388 +f 474/652/95 347/653/389 386/654/95 +f 434/655/390 468/656/109 431/657/109 +f 467/658/95 383/659/391 389/660/95 +f 380/661/392 466/662/393 464/663/394 +f 436/664/395 465/665/396 434/655/390 +f 459/666/397 436/664/395 438/667/398 +f 380/661/392 462/668/399 375/669/400 +f 460/670/401 438/667/398 440/671/402 +f 375/669/400 461/672/403 376/673/404 +f 376/673/404 458/559/91 368/448/91 +f 457/558/90 440/671/402 442/446/90 +f 439/674/405 456/557/91 441/442/91 +f 437/675/406 454/676/407 439/674/405 +f 435/677/408 452/678/409 437/675/406 +f 435/677/408 448/679/410 450/680/411 +f 445/681/95 433/682/412 432/683/95 +f 346/684/413 446/685/109 343/686/109 +f 379/687/414 447/688/415 346/684/413 +f 451/689/416 379/687/414 374/690/417 +f 453/691/418 374/690/417 373/692/419 +f 455/556/90 373/692/419 367/440/90 +f 336/693/385 484/694/387 333/393/389 +f 484/694/387 414/392/95 333/393/389 +f 336/693/385 478/695/386 482/696/388 +f 338/697/420 479/698/421 478/695/386 +f 402/699/422 480/700/423 403/701/375 +f 415/702/109 483/703/380 413/704/424 +f 483/703/380 409/705/379 413/704/424 +f 409/705/379 477/706/425 402/699/422 +f 408/707/392 490/708/399 494/709/394 +f 408/707/392 496/710/393 412/320/391 +f 496/710/393 416/319/95 412/320/391 +f 401/711/426 491/712/427 490/708/399 +f 419/713/109 495/714/396 420/715/390 +f 495/714/396 423/716/395 420/715/390 +f 423/716/395 489/717/428 425/718/429 +f 425/718/429 492/719/430 427/720/402 +f 411/721/410 422/385/95 421/386/412 +f 424/722/408 411/721/410 421/386/412 +f 424/722/408 398/723/409 407/724/411 +f 426/725/431 399/726/432 398/723/409 +f 395/727/433 400/728/434 396/729/435 +f 405/730/414 397/731/436 395/727/433 +f 410/732/415 405/730/414 330/733/437 +f 329/734/109 410/732/415 330/733/437 +f 400/728/434 390/234/90 396/729/435 +f 429/231/91 399/726/432 428/735/405 +f 492/719/430 430/228/90 427/720/402 +f 393/222/91 491/712/427 404/736/404 +f 480/700/423 394/216/90 403/701/375 +f 341/213/91 479/698/421 340/737/382 +f 354/620/365 342/29/90 339/621/365 +f 2/566/337 3/569/340 4/567/338 +f 3/569/340 5/572/343 6/570/341 +f 3/569/340 2/566/337 7/571/342 +f 6/570/341 5/572/343 7/571/342 +f 7/571/342 2/566/337 1/568/339 +f 9/574/345 10/263/351 11/575/346 +f 13/577/348 14/738/352 9/578/345 +f 15/580/349 13/577/348 12/579/347 +f 16/582/350 15/580/349 11/581/346 +f 9/584/345 14/739/352 16/582/350 +f 13/585/348 8/740/344 1/586/339 +f 6/588/341 8/741/344 13/577/348 +f 16/582/350 4/742/338 6/589/341 +f 1/586/339 4/743/338 16/590/350 +f 17/591/353 18/744/438 19/592/354 +f 20/593/355 19/592/354 21/594/356 +f 19/592/354 18/744/438 23/596/358 +f 22/595/357 21/594/356 23/596/358 +f 23/596/358 18/744/438 17/591/353 +f 25/598/345 26/414/351 27/599/346 +f 28/601/347 29/614/362 30/602/360 +f 31/604/361 29/614/362 28/601/347 +f 26/606/351 32/615/363 31/607/361 +f 30/609/360 32/615/363 26/606/351 +f 24/610/359 17/617/353 30/611/360 +f 22/613/357 24/745/359 29/614/362 +f 32/615/363 20/746/355 22/616/357 +f 17/617/353 20/747/355 32/618/363 +f 337/619/364 352/626/368 354/620/365 +f 358/622/109 350/628/366 334/623/366 +f 335/625/367 349/748/367 352/626/368 +f 360/565/91 361/629/370 362/627/369 +f 350/628/366 349/748/367 335/625/367 +f 361/629/370 363/631/372 364/630/371 +f 363/631/372 365/749/373 366/632/373 +f 366/632/373 365/749/373 345/633/374 +f 370/564/90 371/637/377 372/635/375 +f 377/636/376 372/635/375 371/637/377 +f 378/638/378 382/641/381 381/639/379 +f 385/640/380 384/750/424 381/639/379 +f 388/642/109 384/750/424 385/640/380 +f 345/633/374 344/32/95 332/644/95 +f 444/303/109 358/622/109 357/624/109 +f 353/645/382 470/647/384 469/560/91 +f 351/646/383 471/649/386 470/647/384 +f 348/648/385 472/651/388 471/649/386 +f 348/648/385 347/653/389 473/650/387 +f 474/652/95 473/650/387 347/653/389 +f 434/655/390 465/665/396 468/656/109 +f 467/658/95 466/662/393 383/659/391 +f 380/661/392 383/659/391 466/662/393 +f 436/664/395 463/751/439 465/665/396 +f 459/666/397 463/751/439 436/664/395 +f 380/661/392 464/663/394 462/668/399 +f 460/670/401 459/666/397 438/667/398 +f 375/669/400 462/668/399 461/672/403 +f 376/673/404 461/672/403 458/559/91 +f 457/558/90 460/670/401 440/671/402 +f 439/674/405 454/676/407 456/557/91 +f 437/675/406 452/678/409 454/676/407 +f 435/677/408 450/680/411 452/678/409 +f 435/677/408 433/682/412 448/679/410 +f 445/681/95 448/679/410 433/682/412 +f 346/684/413 447/688/415 446/685/109 +f 379/687/414 449/752/440 447/688/415 +f 451/689/416 449/752/440 379/687/414 +f 453/691/418 451/689/416 374/690/417 +f 455/556/90 453/691/418 373/692/419 +f 336/693/385 482/696/388 484/694/387 +f 484/694/387 485/753/95 414/392/95 +f 336/693/385 338/697/420 478/695/386 +f 338/697/420 340/737/382 479/698/421 +f 402/699/422 477/706/425 480/700/423 +f 415/702/109 486/754/109 483/703/380 +f 483/703/380 481/755/381 409/705/379 +f 409/705/379 481/755/381 477/706/425 +f 408/707/392 401/711/426 490/708/399 +f 408/707/392 494/709/394 496/710/393 +f 496/710/393 497/756/95 416/319/95 +f 401/711/426 404/736/404 491/712/427 +f 419/713/109 498/757/109 495/714/396 +f 495/714/396 493/758/439 423/716/395 +f 423/716/395 493/758/439 489/717/428 +f 425/718/429 489/717/428 492/719/430 +f 411/721/410 417/759/95 422/385/95 +f 424/722/408 407/724/411 411/721/410 +f 424/722/408 426/725/431 398/723/409 +f 426/725/431 428/735/405 399/726/432 +f 395/727/433 397/731/436 400/728/434 +f 405/730/414 406/760/440 397/731/436 +f 410/732/415 406/760/440 405/730/414 +f 329/734/109 418/761/109 410/732/415 +f 400/728/434 391/232/90 390/234/90 +f 429/231/91 392/230/91 399/726/432 +f 492/719/430 487/226/90 430/228/90 +f 393/222/91 488/221/91 491/712/427 +f 480/700/423 475/214/90 394/216/90 +f 341/213/91 476/212/91 479/698/421 +f 354/620/365 356/27/90 342/29/90 +o main +v -0.202174 1.172312 0.084620 +v 0.012707 1.114738 0.084064 +v 0.012707 1.223542 0.117762 +v -0.147611 1.266498 0.118177 +v -0.080983 1.739653 -5.738497 +v -0.013058 1.757851 -5.738321 +v -0.013058 1.760041 -6.289080 +v -0.079416 1.742262 -6.289251 +v -0.180496 1.276744 -3.709595 +v -0.013059 1.231882 -3.710029 +v 0.428145 1.610595 0.088858 +v 0.403116 1.435555 0.087165 +v 0.290977 1.481865 -3.707612 +v 0.310479 1.618257 -3.706294 +v -0.359479 1.759351 0.090296 +v -0.202174 1.916648 0.091817 +v -0.180496 1.856736 -3.703987 +v -0.303069 1.734170 -3.705173 +v 0.012707 1.974223 0.092373 +v 0.227588 1.916648 0.091817 +v 0.154378 1.856737 -3.703987 +v -0.013059 1.901599 -3.703554 +v -0.359479 1.329609 0.086141 +v -0.303069 1.399311 -3.708410 +v 0.392573 1.424329 0.087057 +v 0.227589 1.172312 0.084620 +v 0.154378 1.276744 -3.709595 +v 0.282936 1.473118 -3.707697 +v 0.384892 1.759351 0.090296 +v 0.276951 1.734170 -3.705173 +v -0.395543 1.624762 0.088995 +v -0.395512 1.502481 0.087813 +v -0.289566 1.512830 0.120559 +v -0.291880 1.604061 0.121441 +v -0.212901 1.671165 0.458115 +v -0.234763 1.589581 0.457326 +v -0.150483 1.592276 0.271604 +v -0.135944 1.646535 0.272128 +v -0.331171 1.629296 -3.706187 +v -0.130708 1.554088 -5.740291 +v -0.140668 1.606321 -5.739786 +v -0.142108 1.647385 -5.739389 +v -0.130708 1.689929 -5.738977 +v 0.054867 1.739653 -5.738497 +v 0.104592 1.689929 -5.738977 +v 0.117192 1.642908 -5.739432 +v 0.109342 1.587577 -5.739967 +v 0.054867 1.504364 -5.740772 +v -0.013058 1.486166 -5.740948 +v -0.080983 1.504364 -5.740772 +v 0.101877 1.693688 -6.289721 +v 0.053300 1.742262 -6.289251 +v -0.013058 1.494624 -6.291646 +v 0.053300 1.512403 -6.291474 +v -0.127993 1.693688 -6.289721 +v -0.139130 1.652125 -6.290123 +v -0.079416 1.512403 -6.291474 +v 0.106518 1.593696 -6.290688 +v 0.114186 1.647750 -6.290165 +v -0.127993 1.560979 -6.291004 +v -0.113470 1.595189 -4.242433 +v -0.114603 1.627501 -4.242120 +v -0.110517 1.626811 -4.253918 +v -0.109429 1.595799 -4.254218 +v -0.064355 1.518801 -4.254962 +v -0.101907 1.556352 -4.254600 +v -0.112639 1.564113 -5.698238 +v -0.070551 1.522027 -5.698646 +v -0.013059 1.710235 -4.253111 +v 0.038238 1.696491 -4.253244 +v 0.044435 1.721179 -5.696720 +v -0.013058 1.736583 -5.696571 +v -0.101907 1.658941 -4.253607 +v -0.064355 1.696491 -4.253244 +v -0.070551 1.721179 -5.696720 +v -0.112639 1.679093 -5.697127 +v 0.085306 1.623429 -4.253951 +v 0.079378 1.581643 -4.254355 +v 0.090544 1.592458 -5.697964 +v 0.097188 1.639292 -5.697512 +v -0.013059 1.505057 -4.255095 +v -0.013058 1.506621 -5.698794 +v -0.122289 1.643082 -5.697475 +v 0.038238 1.518801 -4.254962 +v 0.044435 1.522027 -5.698646 +v 0.075790 1.658941 -4.253607 +v 0.086522 1.679093 -5.697127 +v -0.066506 1.700102 -4.241418 +v -0.013059 1.714422 -4.241280 +v 0.040389 1.700102 -4.241418 +v 0.079515 1.660977 -4.241796 +v 0.040389 1.514963 -4.243208 +v -0.013059 1.500642 -4.243347 +v -0.105632 1.660977 -4.241796 +v -0.066506 1.514963 -4.243208 +v 0.089430 1.623976 -4.242154 +v 0.083254 1.580439 -4.242575 +v -0.105632 1.554087 -4.242830 +v -0.065400 1.515808 -4.132485 +v -0.103717 1.554122 -4.132114 +v -0.013059 1.711140 -4.130596 +v 0.039283 1.697116 -4.130732 +v -0.103717 1.658800 -4.131102 +v -0.065400 1.697116 -4.130732 +v 0.087309 1.622566 -4.131453 +v 0.081261 1.579929 -4.131865 +v -0.013059 1.501784 -4.132620 +v -0.112502 1.626017 -4.131419 +v 0.039283 1.515808 -4.132485 +v 0.077600 1.658800 -4.131102 +v -0.062560 1.692112 -4.121951 +v -0.013059 1.705375 -4.121823 +v 0.036443 1.692112 -4.121951 +v 0.072681 1.655875 -4.122302 +v 0.036443 1.520641 -4.123609 +v -0.013059 1.507378 -4.123737 +v -0.107106 1.624871 -4.122602 +v -0.098798 1.655875 -4.122302 +v -0.062560 1.520641 -4.123609 +v 0.081864 1.621607 -4.122633 +v 0.076143 1.581283 -4.123023 +v -0.098798 1.556877 -4.123259 +v -0.063124 1.516527 -3.799040 +v -0.099774 1.553176 -3.798685 +v -0.013059 1.703364 -3.797233 +v 0.037006 1.689950 -3.797363 +v -0.099774 1.653301 -3.797717 +v -0.063124 1.689950 -3.797363 +v 0.082944 1.618642 -3.798053 +v 0.077158 1.577860 -3.798446 +v -0.013059 1.503113 -3.799170 +v -0.108177 1.621943 -3.798021 +v 0.037006 1.516527 -3.799040 +v 0.073656 1.653301 -3.797718 +v -0.107115 1.591676 -3.798313 +v -0.327621 1.528072 -3.707165 +v -0.331320 1.534015 -3.707108 +v 0.075446 1.575244 -3.798472 +v 0.012707 1.169546 0.336860 +v -0.173550 1.219450 0.337343 +v 0.320127 1.593491 0.121339 +v 0.301600 1.462898 0.120076 +v -0.264973 1.704476 0.122412 +v -0.147611 1.821831 0.123546 +v 0.012707 1.864787 0.123962 +v 0.173026 1.821831 0.123546 +v -0.264973 1.383854 0.119312 +v 0.296118 1.454522 0.119995 +v 0.290387 1.704476 0.122412 +v 0.173026 1.266498 0.118177 +v -0.338471 1.505638 0.340110 +v -0.344450 1.599349 0.341016 +v -0.341160 1.611629 0.341134 +v -0.237064 1.581918 0.361622 +v -0.234763 1.590505 0.361705 +v 0.369865 1.599349 0.341016 +v 0.348341 1.447626 0.339549 +v -0.309899 1.728289 0.342262 +v -0.173550 1.864632 0.343580 +v 0.012707 1.914538 0.344063 +v 0.198964 1.864632 0.343580 +v -0.309899 1.355793 0.338661 +v 0.341971 1.437896 0.339455 +v 0.335314 1.728289 0.342262 +v 0.198964 1.219450 0.337343 +v -0.232883 1.516382 0.360988 +v -0.232883 1.515458 0.456610 +v -0.237064 1.580993 0.457243 +v 0.012707 1.281343 0.358716 +v -0.117548 1.316242 0.359053 +v 0.262479 1.581918 0.361622 +v 0.247426 1.475813 0.360596 +v -0.212901 1.672090 0.362494 +v -0.117548 1.767439 0.363416 +v 0.012707 1.802339 0.363753 +v 0.142962 1.767439 0.363416 +v -0.212901 1.411592 0.359975 +v 0.242972 1.469008 0.360530 +v 0.238316 1.672090 0.362494 +v -0.337211 1.499027 0.340046 +v -0.232002 1.511759 0.360944 +v 0.142962 1.316242 0.359053 +v 0.244253 1.649934 0.362279 +v 0.238316 1.671165 0.458115 +v 0.244253 1.649009 0.457901 +v -0.117548 1.315318 0.454675 +v 0.012707 1.280418 0.454337 +v 0.014100 1.386664 0.269616 +v -0.072528 1.409875 0.269840 +v 0.262479 1.580993 0.457243 +v 0.247426 1.474888 0.456218 +v -0.117548 1.766515 0.459037 +v 0.012707 1.801414 0.459375 +v 0.142962 1.766515 0.459037 +v -0.212901 1.410667 0.455597 +v 0.242972 1.468084 0.456152 +v 0.142962 1.315318 0.454675 +v -0.150483 1.568873 2.692212 +v -0.152013 1.563161 2.692157 +v -0.090311 1.552539 2.876318 +v -0.089384 1.555996 2.876352 +v 0.180214 1.586565 0.271549 +v 0.170203 1.515998 0.270866 +v -0.072528 1.709948 0.272741 +v 0.014100 1.733159 0.272966 +v 0.100728 1.709948 0.272741 +v -0.135944 1.473287 0.270453 +v 0.167240 1.511474 0.270823 +v 0.164144 1.646535 0.272128 +v -0.232002 1.510834 0.456565 +v -0.148646 1.539905 0.271097 +v 0.100728 1.409875 0.269840 +v 0.343803 1.696609 0.341956 +v -0.152013 1.586565 0.271549 +v 0.062685 1.627228 2.877040 +v 0.101074 1.588841 2.876669 +v 0.103464 1.579921 2.876582 +v 0.105235 1.573313 2.876518 +v 0.107006 1.566704 2.876455 +v 0.108777 1.560095 2.876391 +v 0.110381 1.554108 2.876333 +v 0.110801 1.552539 2.876318 +v 0.104741 1.509822 2.875905 +v 0.102948 1.507082 2.875879 +v 0.062685 1.445580 2.875283 +v 0.010245 1.431530 2.875149 +v -0.042194 1.445580 2.875283 +v -0.080583 1.483967 2.875655 +v -0.088272 1.524293 2.876045 +v -0.088627 1.526155 2.876063 +v -0.080583 1.588841 2.876669 +v -0.042194 1.627228 2.877041 +v 0.010245 1.641278 2.877176 +v -0.072528 1.386471 2.690449 +v 0.014100 1.363260 2.690223 +v 0.170203 1.492595 2.691474 +v 0.180214 1.563161 2.692157 +v -0.072528 1.686545 2.693350 +v -0.135944 1.623132 2.692736 +v 0.100728 1.686545 2.693350 +v 0.014100 1.709755 2.693574 +v -0.135944 1.449884 2.691062 +v 0.167240 1.488070 2.691431 +v 0.164144 1.623132 2.692736 +v -0.148646 1.516502 2.691705 +v 0.100728 1.386471 2.690449 +v 0.168092 1.631800 0.271986 +v -0.149233 1.519576 2.691736 +v -0.149233 1.542980 0.271127 +v -0.106057 1.594944 -4.122890 +v -0.111392 1.594373 -4.131725 +v -0.121069 1.608325 -5.697811 +v -0.137723 1.612007 -6.290511 +v 0.179519 1.565755 2.692182 +v 0.168092 1.608397 2.692594 +v 0.261434 1.584893 0.457281 +v 0.179519 1.589158 0.271574 +v 0.368371 1.604925 0.341069 +v 0.261434 1.585817 0.361660 +v 0.100728 1.394411 1.869289 +v 0.167240 1.496009 1.870271 +v 0.167250 1.626038 1.870785 +v 0.164144 1.631071 1.871577 +v -0.150483 1.576812 1.871052 +v -0.150483 1.583054 1.225463 +v -0.148646 1.530683 1.224956 +v -0.148646 1.524441 1.870546 +v -0.135944 1.631071 1.871577 +v 0.014100 1.371200 1.869064 +v -0.135944 1.457824 1.869902 +v 0.100728 1.694484 1.872190 +v 0.014100 1.717695 1.872414 +v -0.072528 1.694484 1.872190 +v 0.170203 1.500535 1.870315 +v -0.072528 1.394411 1.869289 +v -0.072528 1.400652 1.223699 +v 0.014100 1.377441 1.223475 +v -0.072528 1.700726 1.226600 +v -0.135944 1.637313 1.225987 +v 0.100728 1.700726 1.226600 +v 0.014100 1.723936 1.226825 +v -0.135944 1.464065 1.224312 +v 0.167240 1.502251 1.224682 +v 0.170203 1.506776 1.224725 +v 0.164144 1.637313 1.225987 +v 0.100728 1.400652 1.223699 +v 0.167250 1.632280 1.225195 +v 0.179519 1.573694 1.871022 +v 0.173943 1.586038 1.885851 +v 0.173943 1.578241 2.692302 +v 0.176869 1.575644 2.692277 +v 0.171018 1.620883 0.271880 +v 0.171018 1.611792 1.212111 +v 0.171018 1.605276 1.886037 +v 0.171018 1.597479 2.692488 +v 0.248652 1.632594 0.457742 +v 0.350093 1.673134 0.341729 +v 0.248652 1.633518 0.362121 +v 0.257449 1.600686 0.361803 +v 0.257449 1.599761 0.457425 +v 0.362673 1.626186 0.341275 +v 0.176869 1.599047 0.271669 +v 0.179519 1.579936 1.225433 +v 0.356383 1.649660 0.341502 +v 0.253051 1.617102 0.361962 +v 0.253051 1.616178 0.457584 +v 0.173943 1.601835 0.271696 +v 0.173943 1.592745 1.211927 +v 0.165142 1.619919 2.018193 +v 0.165142 1.727819 2.019237 +v 0.165142 1.721288 2.694775 +v 0.165142 1.613388 2.693733 +v -0.095303 1.013033 2.792028 +v 0.123494 1.013033 2.792028 +v 0.116000 1.052989 3.038520 +v -0.087810 1.052989 3.038520 +v -0.136952 1.613388 2.693733 +v -0.136952 1.721288 2.694775 +v -0.136952 1.727819 2.019237 +v -0.136952 1.619919 2.018193 +v 0.160849 1.787674 0.604657 +v 0.071567 1.788325 0.465026 +v 0.071567 1.818650 0.465134 +v 0.160849 1.817999 0.604764 +v 0.165142 0.853355 2.010782 +v 0.165142 0.846824 2.686321 +v 0.165142 0.704381 2.684944 +v 0.165142 0.727369 2.149053 +v 0.160849 1.781589 1.865381 +v 0.160849 1.785356 1.475714 +v 0.160849 1.815681 1.475821 +v 0.160849 1.811914 1.865489 +v -0.136952 1.626064 1.220801 +v -0.136952 1.733744 1.221874 +v -0.136952 1.735452 0.579987 +v -0.136952 1.628328 0.578839 +v -0.136952 1.621289 1.876552 +v -0.136952 1.729189 1.877596 +v -0.136952 1.733066 1.476528 +v -0.136952 1.625166 1.475485 +v 0.165142 1.572264 1.876078 +v 0.165142 0.854725 1.869141 +v 0.165142 0.858602 1.468073 +v 0.165142 1.576142 1.475011 +v -0.136952 0.854725 1.869141 +v -0.136952 0.858602 1.468073 +v 0.165142 0.867278 0.570681 +v -0.136952 0.867278 0.570681 +v -0.045059 1.331867 0.434188 +v 0.073249 1.331867 0.434188 +v -0.149082 0.664598 0.541482 +v 0.177272 0.664598 0.541482 +v 0.177272 0.634672 0.542347 +v -0.149082 0.634672 0.542347 +v 0.165142 1.577140 1.220313 +v 0.165142 0.861067 1.213177 +v 0.165142 1.579656 0.578317 +v 0.160849 1.804238 2.659441 +v 0.160849 1.810583 2.003104 +v 0.165142 1.847536 2.019661 +v 0.165142 1.841005 2.695200 +v 0.177272 0.488173 1.220839 +v -0.149082 0.488173 1.220839 +v 0.177272 0.482640 1.491678 +v -0.149082 0.482640 1.491678 +v -0.149082 0.430054 1.490015 +v 0.177272 0.430054 1.490015 +v -0.149082 0.534324 1.221784 +v 0.177272 0.534324 1.221784 +v -0.075717 -0.281581 2.653725 +v 0.193719 -0.190060 3.037896 +v -0.041226 -0.451792 2.698090 +v -0.096547 -0.401702 2.909541 +v -0.117232 0.805991 2.267262 +v -0.117232 0.806379 2.227041 +v -0.136952 0.722185 2.269905 +v -0.136952 0.721358 2.289179 +v -0.136952 0.853355 2.010782 +v -0.136952 0.727369 2.149053 +v -0.136952 0.846824 2.686321 +v -0.136952 0.704381 2.684944 +v -0.022786 -0.401702 2.909541 +v -0.004345 -0.451792 2.698090 +v 0.121869 -0.144299 3.229982 +v 0.123257 -0.225915 3.282259 +v 0.124737 -0.301523 3.332443 +v 0.124737 -0.351613 3.120992 +v 0.142395 0.475755 1.545882 +v 0.103907 -0.281581 2.653725 +v 0.069416 -0.451792 2.698090 +v 0.032535 -0.451792 2.698090 +v -0.022292 -0.225915 3.282259 +v -0.095067 -0.225915 3.282259 +v -0.096547 -0.301523 3.332443 +v -0.022786 -0.301523 3.332443 +v 0.116000 1.631425 3.044112 +v 0.116000 1.712844 3.044899 +v -0.087810 1.712844 3.044900 +v -0.087810 1.631425 3.044112 +v 0.123494 1.721409 2.798877 +v -0.095303 1.721409 2.798877 +v 0.123494 1.634003 2.798032 +v -0.095303 1.594290 2.797648 +v -0.087810 1.594432 3.043755 +v -0.136952 1.564364 2.693258 +v -0.045059 1.686242 0.436014 +v -0.045059 1.736122 0.436271 +v 0.073249 1.736122 0.436271 +v 0.073249 1.686242 0.436014 +v 0.073249 1.663578 0.435897 +v -0.132658 1.804238 2.659441 +v -0.136952 1.841005 2.695200 +v -0.016114 0.704381 2.684944 +v -0.076533 0.704381 2.684944 +v -0.084974 0.367866 2.901927 +v -0.018928 0.367866 2.901927 +v -0.093679 -0.144299 3.229982 +v 0.089619 0.727369 2.149053 +v -0.154092 0.164347 2.608227 +v -0.069998 0.116802 2.426650 +v 0.165142 0.712044 2.506314 +v 0.104723 0.704381 2.684944 +v 0.113164 0.367866 2.901927 +v 0.182282 0.211892 2.789803 +v -0.136952 0.719706 2.327683 +v -0.061428 0.727369 2.149053 +v 0.115007 0.259436 2.971379 +v 0.057212 0.490206 1.554891 +v -0.085963 0.309675 2.939199 +v -0.019258 0.309675 2.939199 +v 0.098188 0.116802 2.426650 +v -0.086817 0.259436 2.971379 +v 0.114153 0.309675 2.939199 +v -0.152668 0.204099 2.529867 +v -0.069287 0.151311 2.325201 +v 0.180858 0.256887 2.734533 +v -0.086817 0.259436 2.971379 +v -0.019542 0.259436 2.971379 +v 0.114153 0.309675 2.939199 +v 0.142395 0.567844 1.496382 +v 0.115007 0.259436 2.971379 +v 0.097477 0.151311 2.325201 +v -0.085963 0.309675 2.939199 +v -0.151020 0.280015 2.548481 +v -0.093679 -0.144299 3.229982 +v -0.021830 -0.144299 3.229982 +v -0.068462 0.236090 2.371759 +v 0.179210 0.323941 2.725204 +v 0.121869 -0.144299 3.229982 +v 0.113164 0.367866 2.901927 +v 0.057753 0.575638 1.516128 +v 0.096653 0.236090 2.371759 +v -0.132658 1.810583 2.003104 +v -0.136952 1.847536 2.019661 +v -0.132658 1.816339 1.228406 +v -0.132658 1.815681 1.475821 +v -0.136952 1.852783 1.476952 +v -0.136952 1.853461 1.222298 +v -0.043377 1.818650 0.465134 +v -0.132658 1.817999 0.604764 +v -0.136952 1.855168 0.580411 +v -0.045059 1.855839 0.436696 +v -0.132658 1.811914 1.865489 +v -0.136952 1.848906 1.878020 +v 0.160849 1.816339 1.228406 +v 0.165142 1.855168 0.580411 +v 0.165142 1.853461 1.222298 +v 0.073249 1.855839 0.436696 +v 0.165142 1.852783 1.476952 +v 0.165142 1.848906 1.878020 +v -0.136952 1.889541 2.019941 +v -0.136952 1.890910 1.878300 +v 0.165142 1.897173 0.580691 +v 0.165142 1.895465 1.222578 +v -0.136952 1.883009 2.695480 +v -0.136952 1.897173 0.580691 +v -0.045059 1.897843 0.436976 +v 0.165142 1.894787 1.477232 +v 0.165142 1.890910 1.878300 +v -0.136952 1.894787 1.477232 +v -0.136952 1.895465 1.222578 +v 0.165142 1.883009 2.695480 +v 0.073249 1.897843 0.436976 +v 0.165142 1.889541 2.019941 +v -0.043377 1.788325 0.465026 +v 0.160849 1.786014 1.228298 +v -0.132658 1.781589 1.865381 +v -0.132658 1.780258 2.002996 +v -0.132658 1.787674 0.604657 +v -0.132658 1.786014 1.228298 +v -0.132658 1.785356 1.475714 +v -0.132658 1.773913 2.659333 +v 0.160849 1.773913 2.659333 +v 0.160849 1.780258 2.002996 +v 0.165142 1.733744 1.221874 +v 0.165142 1.735452 0.579987 +v 0.165142 1.729189 1.877596 +v 0.165142 1.733066 1.476528 +v -0.136952 1.894787 1.477232 +v -0.136952 1.895465 1.222578 +v -0.136952 1.889541 2.019941 +v -0.136952 1.890910 1.878300 +v -0.136952 1.883009 2.695480 +v 0.165142 1.890910 1.878300 +v 0.165142 1.894787 1.477232 +v 0.165142 1.883009 2.695480 +v 0.165142 1.889541 2.019941 +v 0.165142 1.895465 1.222578 +v 0.165142 1.897173 0.580691 +v -0.136952 1.897173 0.580691 +v 0.165142 0.489549 1.456398 +v 0.165142 0.537184 1.206545 +v -0.136952 0.861067 1.213177 +v -0.136952 0.657256 0.576757 +v -0.136952 0.537184 1.206545 +v -0.136952 0.489549 1.456398 +v 0.165142 0.657256 0.576757 +v -0.084974 0.367866 2.901927 +v -0.096547 -0.301523 3.332443 +v -0.095067 -0.225915 3.282259 +v 0.142395 0.665075 1.471334 +v 0.069416 -0.451792 2.698090 +v 0.105063 -0.381316 2.633466 +v 0.058878 0.664812 1.500463 +v 0.124737 -0.351613 3.120992 +v 0.124737 -0.301523 3.332443 +v 0.123257 -0.225915 3.282259 +v -0.136952 0.712044 2.506314 +v 0.165142 0.719706 2.327683 +v 0.124737 -0.401702 2.909541 +v -0.096547 -0.351613 3.120992 +v -0.022786 -0.351613 3.120992 +v 0.050976 -0.351613 3.120992 +v 0.050976 -0.401702 2.909541 +v 0.050976 -0.301523 3.332443 +v 0.196031 -0.277715 3.065995 +v 0.142395 0.761804 1.498257 +v 0.050020 -0.144299 3.229982 +v 0.050482 -0.225915 3.282259 +v -0.096547 -0.401702 2.909541 +v 0.047732 0.259436 2.971379 +v -0.041226 -0.451792 2.698090 +v 0.047448 0.309675 2.939199 +v -0.076873 -0.381316 2.633466 +v 0.047118 0.367866 2.901927 +v -0.167841 -0.329516 2.849731 +v 0.044304 0.704381 2.684944 +v -0.136952 1.579656 0.578317 +v -0.045059 1.663578 0.435897 +v 0.165142 1.628328 0.578839 +v 0.165142 1.564364 2.693258 +v 0.123494 1.594290 2.797648 +v -0.095303 1.634003 2.798032 +v 0.116000 1.594432 3.043755 +v 0.165142 1.626064 1.220801 +v 0.165142 1.621289 1.876552 +v 0.165142 1.625166 1.475485 +v -0.136952 1.572264 1.876078 +v -0.136952 1.576142 1.475011 +v -0.136952 1.577140 1.220313 +v -0.136952 1.570895 2.017720 +v 0.165142 1.570895 2.017720 +v -0.116550 0.944315 2.275445 +v -0.136952 1.568204 2.296037 +v -0.136952 1.568395 2.276249 +v -0.117232 0.943106 2.228364 +v -0.136952 0.853355 2.010782 +v -0.136952 0.727369 2.149053 +v -0.136952 1.570895 2.017720 +v -0.136952 0.920625 2.011432 +v -0.136952 0.914094 2.686971 +v -0.136952 1.564364 2.693258 +v -0.136952 1.567813 2.336523 +v -0.117232 0.941921 2.350872 +v -0.136952 0.846824 2.686321 +v -0.117232 0.805195 2.349550 +v -0.136952 0.719666 2.328613 +v -0.136952 0.704381 2.684944 +v -0.136952 0.871403 2.686558 +v -0.117232 0.855153 2.350033 +v -0.117232 0.856337 2.227525 +v -0.136952 0.877935 2.011019 +v -0.165627 0.941921 2.350872 +v -0.165627 0.855153 2.350033 +v -0.165627 0.855948 2.267745 +v -0.164657 0.945919 2.272705 +v -0.165627 0.943106 2.228364 +v -0.165627 0.856337 2.227525 +v -0.117232 0.805509 2.317034 +v -0.165627 0.805195 2.349550 +v -0.165627 0.805509 2.317034 +v -0.165627 0.806379 2.227041 +v -0.147144 0.985765 2.289954 +v -0.117999 0.987967 2.292308 +v -0.165627 0.805991 2.267262 +v -0.165627 0.855467 2.317517 +v -0.165183 0.945687 2.314986 +v -0.117232 0.944573 2.316757 +v -0.136952 1.567967 2.320525 +v -0.136952 0.720335 2.313030 +v -0.211344 0.805991 2.267262 +v -0.165627 0.650194 2.265755 +v -0.211344 0.650194 2.265755 +v -0.211344 0.855948 2.267745 +v -0.211344 0.805509 2.317034 +v -0.211344 0.855467 2.317517 +v -0.165627 0.649713 2.315527 +v -0.117232 0.649713 2.315527 +v -0.117232 0.650194 2.265755 +v -0.211344 0.649713 2.315527 +v -0.146461 0.985408 2.298749 +v -0.117232 0.986920 2.296790 +v -0.152245 1.043764 3.043450 +v -0.152245 1.712438 3.046384 +v 0.192843 1.712438 3.046383 +v 0.192843 1.043764 3.043450 +v 0.192843 0.937887 3.521686 +v -0.152245 0.937887 3.521686 +v -0.152244 1.649577 6.527719 +v 0.192843 1.649577 6.527719 +v 0.192843 0.025793 6.210012 +v 0.192843 0.009952 6.375108 +v -0.152244 0.009952 6.375108 +v -0.152244 0.025793 6.210012 +v -0.152245 0.235370 5.571983 +v -0.152245 0.455597 4.937619 +v 0.192843 0.455597 4.937619 +v 0.192843 0.235370 5.571983 +v 0.192843 1.680991 4.788768 +v -0.152245 1.680991 4.788768 +v 0.192843 1.712438 3.046383 +v -0.152245 1.712438 3.046384 +v -0.152245 0.654402 4.400762 +v -0.152245 0.821140 3.880699 +v 0.192843 0.821140 3.880699 +v 0.192843 0.654402 4.400762 +v -0.288967 0.897229 6.368784 +v -0.288967 0.423273 6.295212 +v 0.292823 0.823472 4.014390 +v 0.292823 0.674531 4.478942 +v 0.292823 1.022335 3.266504 +v 0.292823 1.619638 3.269124 +v 0.292823 1.591547 4.825535 +v 0.292823 1.563486 6.378878 +v 0.292823 1.256055 6.410403 +v 0.292823 0.898192 6.390715 +v 0.292823 0.415824 6.315836 +v 0.292823 0.098867 6.242557 +v 0.292823 0.113017 6.095082 +v 0.292823 0.300225 5.525153 +v 0.292823 0.496945 4.958498 +v 0.292823 0.927758 3.693695 +v -0.288967 0.926280 3.718801 +v -0.288967 0.823812 4.033902 +v -0.288967 0.677469 4.490353 +v -0.288967 0.502980 4.961545 +v -0.288967 0.309691 5.518318 +v -0.288967 0.125748 6.078308 +v -0.288967 0.111844 6.223210 +v -0.288967 1.248852 6.388129 +v -0.288967 1.550920 6.357154 +v -0.288967 1.578493 4.830902 +v -0.288967 1.606093 3.301634 +v -0.288967 1.019207 3.299059 +v 0.016027 0.547390 1.862002 +v 0.019306 0.561083 1.849339 +v 0.142395 0.757887 2.116556 +v 0.142395 0.660656 2.141604 +v -0.007293 0.547830 1.861861 +v 0.142395 0.850475 2.015535 +v 0.058021 0.829357 1.886027 +v -0.004014 0.561523 1.849198 +v 0.142395 0.853645 1.817587 +v 0.142395 0.852542 1.886433 +v 0.016027 0.547390 1.862002 +v 0.142395 0.856383 1.617575 +v 0.019306 0.561083 1.849339 +v 0.142395 0.761804 1.498257 +v 0.020285 0.576429 1.939407 +v 0.142395 0.665075 1.471334 +v 0.021168 0.639247 1.973528 +v 0.142395 0.567844 1.496382 +v 0.021222 0.593582 1.885335 +v 0.142395 0.475755 1.545882 +v 0.022105 0.656401 1.919456 +v 0.142395 0.465725 1.813838 +v 0.021638 0.746428 1.919562 +v 0.142395 0.467068 2.018012 +v 0.021638 0.745520 1.976290 +v 0.142395 0.563928 2.114681 +v -0.117211 0.657140 2.235394 +v 0.142678 0.657140 2.235394 +v 0.142678 0.817063 2.235753 +v -0.117211 0.817063 2.235753 +v 0.142678 0.876375 2.233910 +v -0.117211 0.876375 2.233910 +v 0.142678 0.881824 1.819352 +v -0.117211 0.881824 1.819352 +v 0.142678 0.886294 1.452513 +v -0.117211 0.886294 1.452514 +v 0.142678 0.833738 1.450712 +v -0.117211 0.833738 1.450712 +v 0.142678 0.666669 1.449340 +v -0.117211 0.666669 1.449340 +v 0.142678 0.448042 1.451277 +v -0.117211 0.448042 1.451277 +v 0.142678 0.448315 1.507656 +v -0.117211 0.448315 1.507656 +v 0.142678 0.436810 1.815049 +v -0.117211 0.436810 1.815049 +v 0.142678 0.438350 2.049274 +v -0.117211 0.438350 2.049274 +v 0.142678 0.423600 2.287596 +v -0.117211 0.423600 2.287596 +v -0.116928 0.856383 1.617575 +v -0.116928 0.853645 1.817588 +v -0.116928 0.665075 1.471334 +v -0.116928 0.761804 1.498257 +v -0.116928 0.757887 2.116556 +v -0.116928 0.660656 2.141604 +v -0.116928 0.852542 1.886434 +v -0.116928 0.851252 1.967026 +v -0.116928 0.850475 2.015535 +v -0.116928 0.467068 2.018012 +v -0.116928 0.465725 1.813838 +v -0.116928 0.563928 2.114681 +v -0.116928 0.567844 1.496382 +v -0.116928 0.475755 1.545882 +v 0.142395 0.851252 1.967026 +v 0.058021 0.828067 1.966620 +v -0.032555 0.829357 1.886027 +v -0.032555 0.828066 1.966620 +v 0.029331 0.825789 1.966584 +v 0.029331 0.827080 1.885991 +v 0.029331 0.827080 1.885991 +v 0.029331 0.825789 1.966584 +v -0.007293 0.547830 1.861861 +v -0.004014 0.561523 1.849198 +v -0.003075 0.576854 1.939137 +v -0.002139 0.594008 1.885066 +v -0.002192 0.639673 1.973258 +v -0.001255 0.656827 1.919186 +v -0.001728 0.745520 1.976290 +v -0.001728 0.746428 1.919562 +v -0.003864 0.827079 1.885991 +v -0.003864 0.825789 1.966584 +v -0.003864 0.825789 1.966584 +v -0.003864 0.827079 1.885991 +v -0.001728 0.746428 1.919562 +v -0.001728 0.745520 1.976290 +v -0.001255 0.656827 1.919186 +v -0.002192 0.639673 1.973258 +v 0.021638 0.745520 1.976290 +v 0.021638 0.746428 1.919562 +v 0.022105 0.656401 1.919456 +v 0.021222 0.593582 1.885335 +v -0.002139 0.594008 1.885066 +v 0.021168 0.639247 1.973528 +v -0.003075 0.576854 1.939137 +v -0.004014 0.561523 1.849198 +v -0.007293 0.547830 1.861861 +v 0.020285 0.576429 1.939407 +v 0.019306 0.561083 1.849339 +v 0.016027 0.547390 1.862002 +v 0.051594 1.678915 -4.269588 +v 0.051594 1.836478 -4.268064 +v 0.051594 1.834955 -4.110501 +v 0.051594 1.677392 -4.112025 +v -0.053713 1.834955 -4.110501 +v -0.053713 1.677392 -4.112025 +v -0.053713 1.836478 -4.268064 +v -0.053713 1.678915 -4.269588 +v 0.016492 1.678915 -4.269588 +v 0.016492 1.836478 -4.268064 +v -0.018610 1.678915 -4.269588 +v -0.060973 1.854414 -4.149395 +v -0.060973 1.854414 -4.149395 +v -0.041986 2.034586 -4.156837 +v -0.054175 2.034586 -4.156837 +v 0.051832 1.855505 -4.262195 +v 0.051832 1.855505 -4.262195 +v 0.045034 2.035545 -4.256041 +v 0.045034 2.035545 -4.256041 +v 0.051832 1.854414 -4.149395 +v 0.045034 2.034586 -4.156837 +v -0.018610 1.836478 -4.268064 +v -0.060973 1.855505 -4.262195 +v -0.023372 1.855505 -4.262195 +v 0.045034 2.202639 -4.144478 +v 0.011964 2.202639 -4.144478 +v -0.021105 2.202639 -4.144478 +v -0.041986 2.202639 -4.144478 +v -0.021105 2.035545 -4.256041 +v -0.054175 2.035545 -4.256041 +v -0.054175 2.203599 -4.243681 +v -0.021105 2.203599 -4.243681 +v -0.054175 2.035545 -4.256041 +v -0.054175 2.202639 -4.144478 +v -0.054175 2.203599 -4.243681 +v 0.051832 1.854414 -4.149395 +v 0.029869 2.034586 -4.156837 +v -0.060973 1.855505 -4.262195 +v -0.054175 2.406401 -4.124617 +v -0.054175 2.407361 -4.223821 +v -0.054175 2.305480 -4.233752 +v -0.054175 2.305480 -4.233752 +v -0.054175 2.407361 -4.223821 +v 0.029869 2.202639 -4.144478 +v 0.045034 2.406401 -4.124617 +v 0.045034 2.406401 -4.124617 +v 0.045034 2.203599 -4.243681 +v 0.045034 2.203599 -4.243681 +v 0.011964 2.406401 -4.124617 +v 0.045034 2.407361 -4.223821 +v 0.011964 2.407361 -4.223821 +v -0.054175 2.406401 -4.124617 +v 0.045034 2.407361 -4.223821 +v -0.021105 2.332433 -4.236758 +v -0.021105 2.407361 -4.223821 +v 0.045034 2.305480 -4.233752 +v 0.045034 2.305480 -4.233752 +v 0.029869 2.209161 -4.078815 +v 0.029869 2.041107 -4.091175 +v -0.041986 2.041107 -4.091175 +v -0.041986 2.209161 -4.078815 +v 0.045034 2.396599 -4.077962 +v 0.045034 2.391349 -4.052973 +v 0.045034 2.231575 -3.924966 +v 0.045034 2.221483 -4.001532 +v -0.054175 2.231575 -3.924966 +v -0.054175 2.356086 -4.024722 +v -0.054175 2.391349 -4.052973 +v -0.054175 2.221002 -4.005173 +v -0.054175 2.231575 -3.924966 +v -0.054175 2.391349 -4.052973 +v -0.054175 2.396848 -4.079151 +v 0.045034 2.391349 -4.052973 +v 0.045034 2.356086 -4.024722 +v 0.045034 2.231575 -3.924966 +v -0.054175 2.202639 -4.144478 +v -0.054175 2.231575 -3.924966 +v 0.045034 2.231575 -3.924966 +v 0.045034 2.221483 -4.001532 +v -0.021105 2.329133 -4.021715 +v -0.021105 2.391349 -4.052973 +v 0.011964 2.391349 -4.052973 +v 0.011964 2.406401 -4.124617 +v 0.045034 2.231575 -3.924966 +v 0.045034 2.221483 -4.001532 +v -0.054175 2.221002 -4.005173 +v -0.054175 2.231575 -3.924966 +v 0.045034 2.231575 -3.924966 +v 0.045034 2.202639 -4.144478 +v 0.032513 1.878508 -3.660935 +v 0.030422 1.883186 -3.755095 +v -0.044126 1.883495 -3.760848 +v -0.046111 1.878488 -3.662214 +v -0.041869 1.761449 -4.086932 +v -0.041869 1.836041 -4.086211 +v 0.032727 1.836041 -4.086211 +v 0.032727 1.761449 -4.086932 +v -0.041869 1.758805 -3.813482 +v -0.044356 1.830626 -3.814065 +v 0.033298 1.830621 -3.812788 +v 0.032727 1.758805 -3.813482 +v -0.041869 1.757366 -3.664618 +v -0.044356 1.829186 -3.665202 +v 0.033298 1.829182 -3.663924 +v 0.032727 1.757366 -3.664618 +v -0.041869 1.692998 -3.814118 +v -0.041869 1.691559 -3.665255 +v 0.032727 1.685764 -3.665311 +v 0.032727 1.687203 -3.814174 +v -0.021105 2.406401 -4.124617 +v 0.011964 2.329133 -4.021715 +v -0.021105 2.406401 -4.124617 +v 0.011964 2.203599 -4.243681 +v 0.011964 2.332433 -4.236758 +v 0.014230 1.855505 -4.262195 +v 0.011964 2.035545 -4.256041 +v 0.011964 2.231575 -3.924966 +v -0.021105 2.231575 -3.924966 +v 0.045034 2.034866 -4.154024 +v 0.045034 2.202919 -4.141664 +v -0.054175 2.034901 -4.153662 +v -0.054175 2.202955 -4.141303 +v 0.064394 1.969668 2.143186 +v 0.064394 1.862612 2.142151 +v 0.169845 1.862612 2.142151 +v 0.169845 1.969668 2.143186 +v -0.042667 1.969668 2.143186 +v -0.042667 1.862612 2.142151 +v -0.042667 1.857978 2.621482 +v -0.042667 1.965034 2.622517 +v -0.042667 1.970703 2.036130 +v -0.137368 1.970703 2.036130 +v -0.137368 1.969668 2.143186 +v 0.064394 1.970703 2.036130 +v 0.064394 1.863647 2.035095 +v 0.064394 1.876024 0.754992 +v 0.064394 1.983080 0.756027 +v -0.006980 1.862612 2.142151 +v -0.042667 1.863647 2.035095 +v -0.006980 1.863647 2.035095 +v 0.043659 1.969694 2.137586 +v 0.028707 1.970703 2.036130 +v 0.064394 1.984260 0.633930 +v 0.146686 1.983080 0.756027 +v 0.146686 1.984260 0.633930 +v -0.042667 1.876024 0.754992 +v -0.006980 1.876024 0.754992 +v 0.028707 1.983080 0.756027 +v -0.042667 1.983080 0.756027 +v 0.028707 1.877204 0.632895 +v 0.028707 1.984260 0.633930 +v 0.064394 1.877204 0.632895 +v -0.006980 1.984260 0.633930 +v -0.042667 1.984260 0.633930 +v -0.042667 2.167404 0.635701 +v -0.006980 2.167404 0.635701 +v -0.042667 1.877204 0.632895 +v -0.167188 1.877204 0.632895 +v -0.167188 1.984260 0.633930 +v -0.006980 1.877204 0.632895 +v 0.064394 2.245435 0.748596 +v 0.064394 2.194613 0.648864 +v 0.064394 2.268742 0.745889 +v 0.064394 2.166224 0.757797 +v 0.028707 2.166224 0.757797 +v -0.042667 2.166224 0.757797 +v 0.064394 2.167404 0.635701 +v 0.028707 2.268742 0.745889 +v 0.028707 2.188427 0.645871 +v 0.049297 2.273742 0.789901 +v 0.049297 2.257009 0.791845 +v -0.042667 2.188427 0.645871 +v -0.042667 2.245435 0.748596 +v -0.042667 2.268742 0.745889 +v -0.001947 2.273742 0.789901 +v -0.027569 2.273742 0.789901 +v -0.087521 2.381042 2.132420 +v -0.021931 2.381042 2.132420 +v 0.049297 2.200138 0.798452 +v 0.023675 2.200138 0.798452 +v -0.027569 2.200138 0.798452 +v -0.027569 2.257009 0.791845 +v -0.006980 2.268742 0.745889 +v -0.087521 2.142312 2.421078 +v -0.087521 2.146705 2.199071 +v -0.087521 2.018169 2.196527 +v -0.087521 2.013775 2.418534 +v 0.109248 2.381042 2.132420 +v 0.109248 2.338206 2.137396 +v 0.109248 2.192621 2.154307 +v 0.043659 2.192621 2.154307 +v -0.087521 2.192621 2.154307 +v -0.087521 2.338206 2.137396 +v 0.043659 1.964717 2.419892 +v 0.109248 1.964717 2.419892 +v 0.109248 1.959092 2.758076 +v 0.043659 1.959092 2.758076 +v 0.109248 2.146705 2.199071 +v 0.109248 2.142312 2.421078 +v 0.109248 2.013775 2.418534 +v 0.109248 2.018169 2.196527 +v 0.109248 1.969694 2.137586 +v 0.109248 2.182596 2.423408 +v 0.043659 2.146705 2.199071 +v 0.109248 2.008151 2.756719 +v -0.087521 2.008151 2.756719 +v 0.043659 2.018169 2.196527 +v 0.109248 2.367172 2.685050 +v 0.109248 2.421214 2.685298 +v 0.109248 2.331844 2.774648 +v 0.109248 2.299578 2.773926 +v -0.021931 2.421214 2.685298 +v -0.087521 2.421214 2.685298 +v -0.087521 2.331844 2.774648 +v -0.021931 2.331844 2.774648 +v -0.087521 2.367172 2.685050 +v -0.087521 2.183505 2.684207 +v -0.087521 2.189923 2.771473 +v -0.087521 2.299578 2.773926 +v -0.021931 2.299578 2.773926 +v -0.087521 2.368289 2.441457 +v -0.087521 2.182552 2.433985 +v -0.021931 2.422332 2.441705 +v -0.087521 2.422332 2.441705 +v 0.109248 2.368289 2.441457 +v 0.109248 2.422332 2.441705 +v 0.043659 2.183505 2.684207 +v 0.109248 2.183505 2.684207 +v 0.109248 2.189923 2.771473 +v 0.043659 2.189923 2.771473 +v -0.021931 2.400653 2.424308 +v -0.087521 2.400653 2.424308 +v -0.087521 2.351079 2.424104 +v 0.043659 2.182596 2.423408 +v 0.109248 2.184623 2.440614 +v 0.043659 2.184623 2.440614 +v 0.109248 2.351079 2.424104 +v 0.109248 2.400653 2.424308 +v 0.028707 1.862612 2.142151 +v 0.064394 1.857978 2.621482 +v 0.028707 1.857978 2.621482 +v -0.021931 1.969694 2.137586 +v -0.006980 1.965034 2.622517 +v 0.064394 1.965034 2.622517 +v -0.006980 1.854925 2.932631 +v -0.006980 1.956064 2.897519 +v -0.042667 1.956064 2.897519 +v -0.042667 1.854925 2.932631 +v -0.087521 1.964717 2.419892 +v -0.087521 1.959092 2.758076 +v 0.064394 1.956064 2.897519 +v 0.064394 1.854925 2.932631 +v 0.028707 1.854925 2.932631 +v -0.021931 2.182552 2.433985 +v -0.087521 2.176971 2.761593 +v -0.021931 2.176971 2.761593 +v 0.109248 2.176971 2.761593 +v 0.109248 2.136687 2.759263 +v 0.109248 1.956173 2.897150 +v 0.028707 1.956064 2.897519 +v -0.087521 2.136687 2.759263 +v -0.021931 2.136687 2.759263 +v -0.087521 2.147398 2.830651 +v -0.021931 2.147398 2.830651 +v -0.087521 1.969694 2.137586 +v -0.021931 2.008421 2.877196 +v -0.087521 2.008421 2.877196 +v -0.087521 1.956173 2.897150 +v 0.109248 2.008421 2.877196 +v 0.109248 2.147398 2.830651 +v 0.043659 2.147398 2.830651 +v 0.043659 2.008421 2.877196 +v -0.021931 2.018169 2.196527 +v 0.043659 2.136687 2.759263 +v 0.043659 2.176971 2.761593 +v -0.021931 1.959092 2.758076 +v -0.006980 1.857978 2.621482 +v 0.028707 1.965034 2.622517 +v -0.021931 1.964717 2.419892 +v 0.043659 2.381042 2.132420 +v 0.043659 2.400610 2.434885 +v -0.021931 2.183505 2.684207 +v 0.043659 2.422332 2.441705 +v -0.021931 2.189923 2.771473 +v 0.043659 2.421214 2.685298 +v 0.043659 2.331844 2.774648 +v 0.043659 2.299578 2.773926 +v -0.021931 2.146705 2.199071 +v -0.021931 2.192621 2.154307 +v -0.001947 2.200138 0.798452 +v 0.023675 2.273742 0.789901 +v -0.006980 2.166224 0.757797 +v -0.021005 2.297669 2.648355 +v 0.042733 2.297669 2.648355 +v -0.006980 2.188427 0.645871 +v -0.006980 1.983080 0.756027 +v 0.028707 1.876024 0.754992 +v 0.028707 2.167404 0.635701 +v -0.006980 1.970703 2.036130 +v 0.028707 1.863647 2.035095 +v 0.043070 2.298365 2.694150 +v -0.137368 1.862612 2.142151 +v -0.137368 1.863647 2.035095 +v 0.169845 1.863647 2.035095 +v 0.169845 1.970703 2.036130 +v 0.146686 1.876024 0.754992 +v 0.146686 1.877204 0.632895 +v -0.167188 1.876024 0.754992 +v -0.167188 1.983080 0.756027 +v 0.010262 2.021519 2.589287 +v 0.010262 2.020119 2.734168 +v -0.092189 2.020529 2.691733 +v 0.010262 2.131944 2.590354 +v -0.092189 2.130953 2.692801 +v 0.010262 2.130543 2.735235 +v -0.134626 2.021519 2.589287 +v -0.134626 2.131944 2.590354 +v -0.092189 2.022510 2.486840 +v -0.092189 2.132934 2.487908 +v 0.010262 2.022920 2.444405 +v 0.010262 2.133344 2.445473 +v 0.112714 2.022510 2.486840 +v 0.112714 2.132934 2.487908 +v 0.155150 2.021519 2.589287 +v 0.155150 2.131944 2.590354 +v 0.112714 2.020529 2.691733 +v 0.112714 2.130953 2.692801 +v -0.021343 2.298365 2.694150 +v 0.037213 2.320070 2.690015 +v -0.015486 2.320070 2.690015 +v 0.036937 2.319501 2.652549 +v -0.014876 2.327471 2.660462 +v 0.010591 2.316989 2.661640 +v -0.012048 2.332392 2.678925 +v 0.010591 2.319224 2.681524 +v -0.021425 2.352902 2.658721 +v -0.021425 2.354889 2.676396 +v -0.012048 2.377386 2.673867 +v -0.012048 2.375399 2.656192 +v 0.010591 2.386705 2.672819 +v 0.010591 2.388567 2.653594 +v 0.036057 2.380320 2.674655 +v 0.033229 2.375399 2.656192 +v 0.042607 2.354889 2.676396 +v 0.046606 2.352778 2.657617 +v 0.033229 2.332392 2.678925 +v 0.107330 2.208933 2.596382 +v 0.107060 2.218142 2.557761 +v 0.137424 2.218003 2.572124 +v 0.106843 2.243196 2.526961 +v 0.106723 2.279133 2.510081 +v 0.174952 2.278821 2.542352 +v 0.161558 2.242946 2.552840 +v 0.106723 2.318835 2.510465 +v 0.106843 2.354440 2.528037 +v 0.161558 2.354189 2.553916 +v 0.174952 2.318524 2.542736 +v 0.107060 2.378894 2.559315 +v 0.107330 2.387354 2.598107 +v 0.137424 2.378755 2.573678 +v 0.192260 2.317813 2.616197 +v 0.192260 2.278111 2.615814 +v 0.145127 2.378439 2.606371 +v 0.175438 2.353620 2.612828 +v 0.145127 2.217687 2.604817 +v 0.175438 2.242377 2.611752 +v 0.124368 2.217432 2.631223 +v 0.145614 2.277537 2.675148 +v 0.138032 2.241916 2.659334 +v 0.138032 2.353160 2.660410 +v 0.145614 2.317240 2.675532 +v 0.124368 2.378183 2.632777 +v 0.090779 2.217430 2.631458 +v 0.070140 2.277532 2.675675 +v 0.077506 2.241912 2.659757 +v 0.077506 2.353156 2.660832 +v 0.070140 2.317235 2.676059 +v 0.090779 2.378181 2.633012 +v 0.288283 1.507385 2.784997 +v 0.302085 1.508212 2.839944 +v 0.230214 1.516211 2.857877 +v 0.216412 1.515384 2.802931 +v 0.191263 1.579106 2.866714 +v 0.177461 1.578279 2.811768 +v 0.214563 1.649536 2.859801 +v 0.200761 1.648709 2.804855 +v 0.282569 1.674465 2.842344 +v 0.268767 1.673638 2.787397 +v 0.344071 1.635122 2.827487 +v 0.330269 1.634295 2.772541 +v 0.352756 1.561132 2.826420 +v 0.338954 1.560305 2.771473 +v 0.027960 1.486830 1.817147 +v -0.043911 1.494829 1.835080 +v -0.082862 1.557724 1.843918 +v -0.059561 1.628153 1.837005 +v 0.008445 1.653082 1.819547 +v 0.069946 1.613739 1.804691 +v 0.078631 1.539750 1.803623 +v 0.300826 1.568402 2.777984 +v 0.269088 1.535255 2.786455 +v 0.295386 1.614745 2.778653 +v 0.256864 1.639388 2.787958 +v 0.214269 1.623773 2.798893 +v 0.199675 1.579660 2.803223 +v 0.224072 1.540266 2.797688 +v 0.241280 1.499612 2.666382 +v 0.169409 1.507611 2.684315 +v 0.130459 1.570506 2.693152 +v 0.153759 1.640935 2.686239 +v 0.221765 1.665865 2.668782 +v 0.283266 1.626521 2.653925 +v 0.291951 1.552532 2.652858 +v 0.239544 1.532166 2.670439 +v 0.194527 1.537176 2.681670 +v 0.170131 1.576570 2.687206 +v 0.184725 1.620684 2.682875 +v 0.227320 1.636298 2.671942 +v 0.265841 1.611656 2.662636 +v 0.271281 1.565312 2.661968 +v 0.181794 1.572812 1.882358 +v 0.177507 1.551091 1.881797 +v 0.177507 1.550996 1.891630 +v 0.181794 1.572717 1.892192 +v 0.181794 1.575243 1.630875 +v 0.177507 1.553522 1.630314 +v 0.177507 1.551566 1.832629 +v 0.181794 1.573287 1.833191 +v 0.181794 1.579350 1.206084 +v 0.177507 1.557629 1.205523 +v 0.177507 1.557129 1.257250 +v 0.181794 1.578850 1.257811 +v 0.176907 1.641480 1.206685 +v 0.178707 1.627872 1.206553 +v 0.178707 1.627372 1.258281 +v 0.176907 1.640980 1.258412 +v 0.176907 1.637374 1.631476 +v 0.178707 1.623765 1.631345 +v 0.178707 1.621809 1.833660 +v 0.176907 1.635418 1.833792 +v 0.176907 1.634942 1.882959 +v 0.178707 1.621333 1.882828 +v 0.178707 1.621238 1.892661 +v 0.176907 1.634847 1.892793 +v 0.176907 1.639177 1.444944 +v 0.178707 1.625568 1.444813 +v 0.177507 1.555325 1.443782 +v 0.181794 1.577047 1.444343 +v 0.178707 1.627988 1.194507 +v 0.181794 1.579466 1.194038 +v 0.176907 1.641597 1.194639 +v 0.177507 1.557745 1.193477 +v 0.175675 1.644729 1.833882 +v 0.175675 1.644253 1.883049 +v 0.175675 1.650292 1.258502 +v 0.175675 1.648488 1.445034 +v 0.175675 1.646685 1.631566 +v 0.175675 1.650792 1.206775 +v 0.186751 1.573467 1.882365 +v 0.186751 1.573372 1.892198 +v 0.181423 1.547886 1.891600 +v 0.181423 1.547982 1.881767 +v 0.186751 1.575899 1.630882 +v 0.186751 1.573943 1.833197 +v 0.181423 1.548457 1.832599 +v 0.181423 1.550413 1.630284 +v 0.186751 1.580006 1.206090 +v 0.186751 1.579506 1.257818 +v 0.181423 1.554020 1.257220 +v 0.181423 1.554520 1.205493 +v 0.181864 1.642136 1.206691 +v 0.181864 1.641636 1.258418 +v 0.183664 1.628027 1.258287 +v 0.183664 1.628527 1.206560 +v 0.181864 1.638029 1.631482 +v 0.181864 1.636073 1.833798 +v 0.183664 1.622464 1.833666 +v 0.183664 1.624420 1.631351 +v 0.181864 1.635598 1.882965 +v 0.181864 1.635503 1.892799 +v 0.183664 1.621894 1.892667 +v 0.183664 1.621989 1.882834 +v 0.181864 1.639833 1.444950 +v 0.183664 1.626224 1.444819 +v 0.186751 1.577702 1.444350 +v 0.181423 1.552216 1.443752 +v 0.183664 1.628644 1.194514 +v 0.186751 1.580122 1.194044 +v 0.181864 1.642253 1.194645 +v 0.181423 1.554636 1.193447 +v 0.180632 1.645385 1.833888 +v 0.180632 1.644909 1.883055 +v 0.180632 1.650947 1.258508 +v 0.180632 1.649144 1.445040 +v 0.180632 1.647340 1.631572 +v 0.180632 1.651447 1.206781 +v -0.013058 1.760041 -6.289080 +v -0.079416 1.742262 -6.289251 +v 0.101877 1.693688 -6.289721 +v 0.053300 1.742262 -6.289251 +v -0.013058 1.494624 -6.291646 +v 0.053300 1.512403 -6.291474 +v -0.127993 1.693688 -6.289721 +v -0.139130 1.652125 -6.290123 +v -0.079416 1.512403 -6.291474 +v 0.106518 1.593696 -6.290688 +v 0.114186 1.647750 -6.290165 +v -0.127993 1.560979 -6.291004 +v -0.137723 1.612007 -6.290511 +v 0.044758 1.727468 -6.289394 +v -0.013058 1.742959 -6.289245 +v 0.087083 1.685145 -6.289804 +v 0.090698 1.599656 -6.290630 +v 0.097376 1.646731 -6.290175 +v -0.013058 1.511706 -6.291481 +v 0.042944 1.526711 -6.291336 +v -0.070874 1.527197 -6.291331 +v -0.112735 1.569057 -6.290926 +v -0.121277 1.613853 -6.290493 +v -0.070874 1.727468 -6.289394 +v -0.113199 1.685145 -6.289804 +v -0.122553 1.650236 -6.290141 +v -0.066341 1.711473 -5.738770 +v -0.015398 1.725124 -5.738637 +v -0.103634 1.572299 -5.740115 +v -0.111104 1.611475 -5.739737 +v -0.112185 1.642274 -5.739439 +v -0.103634 1.674182 -5.739130 +v 0.035546 1.711473 -5.738770 +v 0.072839 1.674182 -5.739130 +v 0.082290 1.638914 -5.739471 +v 0.076403 1.597417 -5.739872 +v 0.035546 1.535007 -5.740476 +v -0.015398 1.521358 -5.740607 +v -0.066341 1.535007 -5.740476 +v 0.044758 1.727468 -6.289394 +v -0.013058 1.742959 -6.289245 +v 0.087083 1.685145 -6.289804 +v 0.090698 1.599656 -6.290630 +v 0.097376 1.646731 -6.290175 +v -0.013058 1.511706 -6.291481 +v 0.042944 1.526711 -6.291336 +v -0.070874 1.527197 -6.291331 +v -0.112735 1.569057 -6.290926 +v -0.121277 1.613853 -6.290493 +v -0.070874 1.727468 -6.289394 +v -0.113199 1.685145 -6.289804 +v -0.122553 1.650238 -6.290141 +v -0.066341 1.711473 -5.738770 +v -0.015398 1.725124 -5.738637 +v -0.103634 1.572299 -5.740115 +v -0.111104 1.611475 -5.739737 +v -0.112185 1.642274 -5.739439 +v -0.103634 1.674182 -5.739130 +v 0.035546 1.711473 -5.738770 +v 0.072839 1.674182 -5.739130 +v 0.082290 1.638914 -5.739471 +v 0.076403 1.597417 -5.739872 +v 0.035546 1.535007 -5.740476 +v -0.015398 1.521358 -5.740607 +v -0.066341 1.535007 -5.740476 +v -0.080983 1.739653 -5.738497 +v -0.013058 1.757851 -5.738321 +v -0.130708 1.554088 -5.740291 +v -0.140668 1.606321 -5.739786 +v -0.142108 1.647385 -5.739389 +v -0.130708 1.689929 -5.738977 +v 0.054867 1.739653 -5.738497 +v 0.104592 1.689929 -5.738977 +v 0.117192 1.642908 -5.739432 +v 0.109342 1.587577 -5.739967 +v 0.054867 1.504364 -5.740772 +v -0.013058 1.486166 -5.740948 +v -0.080983 1.504364 -5.740772 +v -0.112639 1.564113 -5.698238 +v -0.070551 1.522027 -5.698646 +v 0.044435 1.721179 -5.696720 +v -0.013058 1.736583 -5.696571 +v -0.070551 1.721179 -5.696720 +v -0.112639 1.679093 -5.697127 +v 0.090544 1.592458 -5.697964 +v 0.097188 1.639292 -5.697512 +v -0.013058 1.506621 -5.698794 +v -0.122289 1.643082 -5.697475 +v 0.044435 1.522027 -5.698646 +v 0.086522 1.679093 -5.697127 +v -0.121069 1.608325 -5.697811 +v -0.113470 1.595189 -4.242433 +v -0.114603 1.627501 -4.242120 +v -0.110517 1.626811 -4.253918 +v -0.109429 1.595799 -4.254218 +v -0.064355 1.518801 -4.254962 +v -0.101907 1.556352 -4.254600 +v -0.013059 1.710235 -4.253111 +v 0.038238 1.696491 -4.253244 +v -0.101907 1.658941 -4.253607 +v -0.064355 1.696491 -4.253244 +v 0.085306 1.623429 -4.253951 +v 0.079378 1.581643 -4.254355 +v -0.013059 1.505057 -4.255095 +v 0.038238 1.518801 -4.254962 +v 0.075790 1.658941 -4.253607 +v -0.066506 1.700102 -4.241418 +v -0.013059 1.714422 -4.241280 +v 0.040389 1.700102 -4.241418 +v 0.079515 1.660977 -4.241796 +v 0.040389 1.514963 -4.243208 +v -0.013059 1.500642 -4.243347 +v -0.105632 1.660977 -4.241796 +v -0.066506 1.514963 -4.243208 +v 0.089430 1.623976 -4.242154 +v 0.083254 1.580439 -4.242575 +v -0.105632 1.554087 -4.242830 +v -0.065400 1.515808 -4.132485 +v -0.103717 1.554122 -4.132114 +v -0.013059 1.711140 -4.130596 +v 0.039283 1.697116 -4.130732 +v -0.103717 1.658800 -4.131102 +v -0.065400 1.697116 -4.130732 +v 0.087309 1.622566 -4.131453 +v 0.081261 1.579929 -4.131865 +v -0.013059 1.501784 -4.132620 +v -0.112502 1.626017 -4.131419 +v 0.039283 1.515808 -4.132485 +v 0.077600 1.658800 -4.131102 +v -0.062560 1.692112 -4.121951 +v -0.013059 1.705375 -4.121823 +v 0.036443 1.692112 -4.121951 +v 0.072681 1.655875 -4.122302 +v 0.036443 1.520641 -4.123609 +v -0.013059 1.507378 -4.123737 +v -0.107106 1.624871 -4.122602 +v -0.098798 1.655875 -4.122302 +v -0.062560 1.520641 -4.123609 +v 0.081864 1.621607 -4.122633 +v 0.076143 1.581283 -4.123023 +v -0.098798 1.556877 -4.123259 +v -0.106057 1.594944 -4.122890 +v -0.111392 1.594373 -4.131725 +v -0.180496 1.276744 -3.709595 +v -0.013059 1.231882 -3.710029 +v 0.290977 1.481865 -3.707612 +v 0.310479 1.618257 -3.706294 +v -0.180496 1.856736 -3.703987 +v -0.303069 1.734170 -3.705173 +v 0.154378 1.856737 -3.703987 +v -0.013059 1.901599 -3.703554 +v -0.303069 1.399311 -3.708410 +v 0.154378 1.276744 -3.709595 +v 0.282936 1.473118 -3.707697 +v 0.276951 1.734170 -3.705173 +v -0.331171 1.629296 -3.706187 +v -0.063124 1.516527 -3.799040 +v -0.099774 1.553176 -3.798685 +v -0.013059 1.703364 -3.797233 +v 0.037006 1.689950 -3.797363 +v -0.099774 1.653301 -3.797717 +v -0.063124 1.689950 -3.797363 +v 0.082944 1.618642 -3.798053 +v 0.077158 1.577860 -3.798446 +v -0.013059 1.503113 -3.799170 +v -0.108177 1.621943 -3.798021 +v 0.037006 1.516527 -3.799040 +v 0.073656 1.653301 -3.797718 +v -0.107115 1.591676 -3.798313 +v -0.327621 1.528072 -3.707165 +v -0.331320 1.534015 -3.707108 +v 0.075446 1.575244 -3.798472 +v -0.202174 1.172312 0.084620 +v 0.012707 1.114738 0.084064 +v 0.012707 1.223542 0.117762 +v -0.147611 1.266498 0.118177 +v 0.428145 1.610595 0.088858 +v 0.403116 1.435555 0.087165 +v -0.359479 1.759351 0.090296 +v -0.202174 1.916648 0.091817 +v 0.012707 1.974223 0.092373 +v 0.227588 1.916648 0.091817 +v -0.359479 1.329609 0.086141 +v 0.392573 1.424329 0.087057 +v 0.227589 1.172312 0.084620 +v 0.384892 1.759351 0.090296 +v -0.395543 1.624762 0.088995 +v -0.395512 1.502481 0.087813 +v -0.289566 1.512830 0.120559 +v -0.291880 1.604061 0.121441 +v 0.320127 1.593491 0.121339 +v 0.301600 1.462898 0.120076 +v -0.264973 1.704476 0.122412 +v -0.147611 1.821831 0.123546 +v 0.012707 1.864787 0.123962 +v 0.173026 1.821831 0.123546 +v -0.264973 1.383854 0.119312 +v 0.296118 1.454522 0.119995 +v 0.290387 1.704476 0.122412 +v 0.173026 1.266498 0.118177 +v 0.012707 1.169546 0.336860 +v -0.173550 1.219450 0.337343 +v -0.338471 1.505638 0.340110 +v -0.344450 1.599349 0.341016 +v -0.341160 1.611629 0.341134 +v -0.237064 1.581918 0.361622 +v -0.234763 1.590505 0.361705 +v 0.369865 1.599349 0.341016 +v 0.348341 1.447626 0.339549 +v -0.309899 1.728289 0.342262 +v -0.173550 1.864632 0.343580 +v 0.012707 1.914538 0.344063 +v 0.198964 1.864632 0.343580 +v -0.309899 1.355793 0.338661 +v 0.341971 1.437896 0.339455 +v 0.335314 1.728289 0.342262 +v 0.198964 1.219450 0.337343 +v -0.232883 1.516382 0.360988 +v 0.012707 1.281343 0.358716 +v -0.117548 1.316242 0.359053 +v 0.262479 1.581918 0.361622 +v 0.247426 1.475813 0.360596 +v -0.212901 1.672090 0.362494 +v -0.117548 1.767439 0.363416 +v 0.012707 1.802339 0.363753 +v 0.142962 1.767439 0.363416 +v -0.212901 1.411592 0.359975 +v 0.242972 1.469008 0.360530 +v 0.238316 1.672090 0.362494 +v -0.337211 1.499027 0.340046 +v -0.232002 1.511759 0.360944 +v 0.142962 1.316242 0.359053 +v 0.244253 1.649934 0.362279 +v 0.343803 1.696609 0.341956 +v 0.368371 1.604925 0.341069 +v 0.261434 1.585817 0.361660 +v 0.350093 1.673134 0.341729 +v 0.248652 1.633518 0.362121 +v 0.257449 1.600686 0.361803 +v 0.362673 1.626186 0.341275 +v 0.356383 1.649660 0.341502 +v 0.253051 1.617102 0.361962 +v -0.212901 1.671165 0.458115 +v -0.234763 1.589581 0.457326 +v -0.150483 1.592276 0.271604 +v -0.135944 1.646535 0.272128 +v -0.232883 1.515458 0.456610 +v -0.237064 1.580993 0.457243 +v 0.238316 1.671165 0.458115 +v 0.244253 1.649009 0.457901 +v -0.117548 1.315318 0.454675 +v 0.012707 1.280418 0.454337 +v 0.014100 1.386664 0.269616 +v -0.072528 1.409875 0.269840 +v 0.262479 1.580993 0.457243 +v 0.247426 1.474888 0.456218 +v -0.117548 1.766515 0.459037 +v 0.012707 1.801414 0.459375 +v 0.142962 1.766515 0.459037 +v -0.212901 1.410667 0.455597 +v 0.242972 1.468084 0.456152 +v 0.142962 1.315318 0.454675 +v 0.180214 1.586565 0.271549 +v 0.170203 1.515998 0.270866 +v -0.072528 1.709948 0.272741 +v 0.014100 1.733159 0.272966 +v 0.100728 1.709948 0.272741 +v -0.135944 1.473287 0.270453 +v 0.167240 1.511474 0.270823 +v 0.164144 1.646535 0.272128 +v -0.232002 1.510834 0.456565 +v -0.148646 1.539905 0.271097 +v 0.100728 1.409875 0.269840 +v -0.152013 1.586565 0.271549 +v 0.168092 1.631800 0.271986 +v -0.149233 1.542980 0.271127 +v 0.261434 1.584893 0.457281 +v 0.179519 1.589158 0.271574 +v 0.171018 1.620883 0.271880 +v 0.248652 1.632594 0.457742 +v 0.257449 1.599761 0.457425 +v 0.176869 1.599047 0.271669 +v 0.253051 1.616178 0.457584 +v 0.173943 1.601835 0.271696 +v 0.044032 -0.281581 2.653725 +v 0.103907 -0.281581 2.653725 +v -0.069998 0.116802 2.426650 +v 0.042126 0.116802 2.426650 +v 0.098188 0.116802 2.426650 +v -0.068462 0.236090 2.371759 +v -0.061428 0.727369 2.149053 +v 0.041614 0.236090 2.371759 +v 0.096653 0.236090 2.371759 +v 0.089619 0.727369 2.149053 +v 0.039270 0.727369 2.149053 +v -0.076873 -0.381316 2.633466 +v -0.041226 -0.451792 2.698090 +v -0.004345 -0.451792 2.698090 +v 0.044418 -0.381316 2.633466 +v -0.076533 0.704381 2.684944 +v -0.084974 0.367866 2.901927 +v 0.057443 0.751341 1.513957 +v 0.089619 0.727369 2.149053 +v 0.096653 0.236090 2.371759 +v 0.142395 0.856383 1.617575 +v 0.165142 0.712044 2.506314 +v 0.104723 0.704381 2.684944 +v 0.113164 0.367866 2.901927 +v 0.179210 0.323941 2.725204 +v -0.136952 0.719706 2.327683 +v -0.061428 0.727369 2.149053 +v -0.068462 0.236090 2.371759 +v -0.151020 0.280015 2.548481 +v 0.105063 -0.381316 2.633466 +v 0.069416 -0.451792 2.698090 +v 0.032535 -0.451792 2.698090 +v 0.096653 0.236090 2.371759 +v 0.041614 0.236090 2.371759 +v -0.068462 0.236090 2.371759 +v 0.097477 0.151311 2.325201 +v -0.086817 0.259436 2.971379 +v 0.098188 0.116802 2.426650 +v 0.057406 0.838800 1.623579 +v 0.115007 0.259436 2.971379 +v 0.182282 0.211892 2.789803 +v -0.069998 0.116802 2.426650 +v -0.154092 0.164347 2.608227 +v -0.093679 -0.144299 3.229982 +v 0.103907 -0.281581 2.653725 +v 0.142395 0.852542 1.886433 +v 0.121869 -0.144299 3.229982 +v 0.193719 -0.190060 3.037896 +v -0.075717 -0.281581 2.653725 +v -0.165529 -0.235820 2.845811 +v -0.165529 -0.190060 3.037896 +v 0.041889 0.151311 2.325201 +v 0.193719 -0.235820 2.845811 +v -0.069287 0.151311 2.325201 +v -0.154092 0.211892 2.789803 +v 0.182282 0.164347 2.608227 +v 0.098188 0.116802 2.426650 +v 0.042126 0.116802 2.426650 +v -0.151020 0.323941 2.725204 +v 0.179210 0.280015 2.548481 +v -0.136952 0.712044 2.506314 +v 0.165142 0.719706 2.327683 +v -0.069998 0.116802 2.426650 +v 0.103907 -0.281581 2.653725 +v 0.142395 0.853645 1.817587 +v 0.044032 -0.281581 2.653725 +v 0.058021 0.830456 1.817255 +v -0.075717 -0.281581 2.653725 +v 0.058021 0.829357 1.886027 +v 0.142395 0.850475 2.015535 +v -0.165529 -0.235820 2.845811 +v -0.165529 -0.190060 3.037896 +v -0.167841 -0.277715 3.065995 +v 0.193719 -0.235820 2.845811 +v 0.196031 -0.329516 2.849731 +v -0.154092 0.211892 2.789803 +v 0.182282 0.164347 2.608227 +v -0.152668 0.256887 2.734533 +v 0.180858 0.204099 2.529867 +v -0.151020 0.323941 2.725204 +v 0.179210 0.280015 2.548481 +v 0.124737 -0.401702 2.909541 +v -0.096547 -0.351613 3.120992 +v 0.057384 0.833378 2.008721 +v 0.142395 0.660656 2.141604 +v 0.142395 0.757887 2.116556 +v 0.057482 0.747999 2.100130 +v 0.058887 0.660929 2.112417 +v -0.075717 -0.281581 2.653725 +v -0.015842 -0.281581 2.653725 +v -0.013936 0.116802 2.426650 +v -0.013424 0.236090 2.371759 +v -0.011079 0.727369 2.149053 +v -0.015842 -0.281581 2.653725 +v -0.016228 -0.381316 2.633466 +v -0.013936 0.116802 2.426650 +v -0.013699 0.151311 2.325201 +v -0.013424 0.236090 2.371759 +v 0.058073 0.489282 1.814222 +v 0.142395 0.465725 1.813838 +v 0.057353 0.483818 2.010995 +v 0.142395 0.467068 2.018012 +v 0.057530 0.573790 2.097813 +v 0.142395 0.563928 2.114681 +v -0.116928 0.856383 1.617575 +v -0.116928 0.853645 1.817588 +v -0.116928 0.665075 1.471334 +v -0.116928 0.761804 1.498257 +v -0.116928 0.757887 2.116556 +v -0.116928 0.660656 2.141604 +v -0.116928 0.852542 1.886434 +v -0.116928 0.851252 1.967026 +v -0.116928 0.850475 2.015535 +v -0.116928 0.467068 2.018012 +v -0.116928 0.465725 1.813838 +v -0.116928 0.563928 2.114681 +v -0.116928 0.567844 1.496382 +v -0.116928 0.475755 1.545882 +v 0.142395 0.851252 1.967026 +v 0.058021 0.828067 1.966620 +v -0.032555 0.829357 1.886027 +v -0.032555 0.828066 1.966620 +v 0.029331 0.825789 1.966584 +v 0.029331 0.827080 1.885991 +v -0.031917 0.833378 2.008721 +v -0.033420 0.660929 2.112417 +v -0.032063 0.573790 2.097813 +v -0.031886 0.483818 2.010995 +v -0.032606 0.489282 1.814222 +v -0.031746 0.490206 1.554891 +v -0.032287 0.575638 1.516128 +v -0.033412 0.664812 1.500463 +v -0.031976 0.751341 1.513957 +v -0.031940 0.838800 1.623579 +v -0.032555 0.830456 1.817256 +v -0.032016 0.747999 2.100130 +v -0.003864 0.825789 1.966584 +v -0.003864 0.827079 1.885991 +v 0.288283 1.507385 2.784997 +v 0.302085 1.508212 2.839944 +v 0.230214 1.516211 2.857877 +v 0.216412 1.515384 2.802931 +v 0.191263 1.579106 2.866714 +v 0.177461 1.578279 2.811768 +v 0.214563 1.649536 2.859801 +v 0.200761 1.648709 2.804855 +v 0.282569 1.674465 2.842344 +v 0.268767 1.673638 2.787397 +v 0.344071 1.635122 2.827487 +v 0.330269 1.634295 2.772541 +v 0.352756 1.561132 2.826420 +v 0.338954 1.560305 2.771473 +v 0.027960 1.486830 1.817147 +v -0.043911 1.494829 1.835080 +v -0.082862 1.557724 1.843918 +v -0.059561 1.628153 1.837005 +v 0.008445 1.653082 1.819547 +v 0.069946 1.613739 1.804691 +v 0.078631 1.539750 1.803623 +v 0.300826 1.568402 2.777984 +v 0.269088 1.535255 2.786455 +v 0.295386 1.614745 2.778653 +v 0.256864 1.639388 2.787958 +v 0.214269 1.623773 2.798893 +v 0.199675 1.579660 2.803223 +v 0.224072 1.540266 2.797688 +v 0.241280 1.499612 2.666382 +v 0.169409 1.507611 2.684315 +v 0.130459 1.570506 2.693152 +v 0.153759 1.640935 2.686239 +v 0.221765 1.665865 2.668782 +v 0.283266 1.626521 2.653925 +v 0.291951 1.552532 2.652858 +v 0.239544 1.532166 2.670439 +v 0.194527 1.537176 2.681670 +v 0.170131 1.576570 2.687206 +v 0.184725 1.620684 2.682875 +v 0.227320 1.636298 2.671942 +v 0.265841 1.611656 2.662636 +v 0.271281 1.565312 2.661968 +v 0.010262 2.020119 2.734168 +v -0.092189 2.020529 2.691733 +v -0.092189 2.130953 2.692801 +v 0.010262 2.130543 2.735235 +v -0.134626 2.021519 2.589287 +v -0.134626 2.131944 2.590354 +v -0.092189 2.022510 2.486840 +v -0.092189 2.132934 2.487908 +v 0.010262 2.022920 2.444405 +v 0.010262 2.133344 2.445473 +v 0.112714 2.022510 2.486840 +v 0.112714 2.132934 2.487908 +v 0.155150 2.021519 2.589287 +v 0.155150 2.131944 2.590354 +v 0.112714 2.020529 2.691733 +v 0.112714 2.130953 2.692801 +v 0.192843 1.305413 6.563009 +v 0.192843 1.649577 6.527719 +v -0.152244 1.649577 6.527719 +v -0.152244 1.305413 6.563009 +v 0.192843 0.009952 6.375108 +v -0.152244 0.009952 6.375108 +v 0.192843 0.364782 6.457143 +v 0.192843 0.904788 6.540969 +v -0.152244 0.904788 6.540969 +v -0.152244 0.364782 6.457143 +v -0.288967 0.897229 6.368784 +v -0.288967 0.423273 6.295212 +v 0.292823 1.563486 6.378878 +v 0.292823 1.256055 6.410403 +v 0.292823 0.898192 6.390715 +v 0.292823 0.415824 6.315836 +v 0.292823 0.098867 6.242557 +v -0.288967 0.111844 6.223210 +v -0.288967 1.248852 6.388129 +v -0.288967 1.550920 6.357154 +v 0.292823 1.619638 3.269124 +v 0.292823 1.591547 4.825535 +v 0.292823 1.563486 6.378878 +v -0.288967 1.550920 6.357154 +v -0.288967 1.578493 4.830902 +v -0.288967 1.606093 3.301634 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 -0.9871 0.1600 +vn -1.0000 -0.0000 -0.0000 +vn 0.8425 0.0019 -0.5387 +vn -0.0000 -1.0000 -0.0097 +vn -0.0000 -0.2819 -0.9594 +vn -0.0000 -0.0289 -0.9996 +vn 0.9934 -0.1149 -0.0011 +vn -0.0000 -0.9775 -0.2111 +vn -0.0000 -0.0316 0.9995 +vn -0.9736 0.2281 0.0100 +vn -0.9733 0.2293 0.0098 +vn -0.9732 0.2300 0.0089 +vn -0.0000 -0.7392 -0.6735 +vn -0.0000 -0.0097 1.0000 +vn -0.0000 -0.9731 0.2305 +vn -0.0000 0.5530 0.8332 +vn -0.0000 0.9994 0.0348 +vn 0.9995 -0.0003 0.0304 +vn -0.9995 -0.0003 0.0304 +vn -0.9284 -0.0036 0.3715 +vn 0.9284 -0.0036 0.3714 +vn -0.0000 1.0000 -0.0012 +vn -0.0000 -0.5366 0.8438 +vn -0.0000 0.0052 -1.0000 +vn 0.8422 0.0034 -0.5392 +vn 0.8410 0.0028 -0.5410 +vn 0.8404 0.0047 -0.5420 +vn -0.0000 -0.6972 0.7169 +vn -0.8420 0.0058 -0.5394 +vn -0.0000 0.5419 0.8404 +vn -0.0000 0.5394 0.8421 +vn -0.9934 -0.1149 -0.0011 +vn -0.9934 -0.1150 -0.0003 +vn -0.7671 -0.4112 -0.4924 +vn 0.9934 -0.1149 -0.0003 +vn -0.0000 -0.6074 -0.7944 +vn 0.7671 -0.4112 -0.4924 +vn -0.8425 0.0036 -0.5387 +vn -0.0000 -0.0067 1.0000 +vn 0.8425 0.0036 -0.5387 +vn -0.0000 0.0067 -1.0000 +vn -0.0000 0.0036 -1.0000 +vn -0.8425 0.0019 -0.5387 +vn -0.0000 -0.0036 1.0000 +vn 0.9966 0.0818 0.0008 +vn -0.0000 0.5586 0.8294 +vn -0.9966 0.0819 0.0008 +vn -0.9966 0.0818 0.0002 +vn -0.8023 0.3076 -0.5116 +vn 0.9966 0.0818 0.0002 +vn -0.0000 0.4825 -0.8759 +vn 0.8023 0.3076 -0.5116 +vn 0.9987 -0.0000 -0.0512 +vn 1.0000 -0.0000 0.0027 +vn 0.7071 -0.0000 0.7071 +vn -0.0000 -0.0000 -0.0000 +vn 0.0025 -0.7128 -0.7013 +vn 0.0025 -0.7071 0.7071 +vn 0.0036 -1.0000 -0.0000 +vn -0.0000 1.0000 0.0047 +vn -0.0000 1.0000 0.0097 +vn -0.0000 1.0000 0.0027 +vn 0.9966 0.0096 -0.0815 +vn 0.7714 0.0075 0.6363 +vn 1.0000 0.0097 -0.0000 +vn 0.3994 0.5930 -0.6992 +vn 0.5573 0.8275 -0.0674 +vn 0.3950 0.5865 0.7071 +vn -0.3535 -0.1464 0.9239 +vn -0.3827 -0.0000 0.9239 +vn -0.0000 -0.0000 1.0000 +vn 0.9793 0.0026 0.2024 +vn 0.7096 0.0019 -0.7046 +vn 1.0000 0.0027 -0.0000 +vn 0.3535 0.1464 0.9239 +vn 0.3827 -0.0000 0.9239 +vn -0.0035 0.9829 0.1840 +vn -0.0037 0.9823 0.1873 +vn 0.0037 0.9823 0.1873 +vn -0.0030 0.9811 0.1935 +vn 0.0015 0.9820 0.1887 +vn 0.0019 0.9820 0.1890 +vn -0.0000 0.9790 0.2038 +vn -0.0000 0.9991 0.0429 +vn -0.0000 -0.9991 -0.0429 +vn -0.0000 -0.0000 -1.0000 +vn -0.8418 0.0058 -0.5397 +vn -0.8407 0.0065 -0.5414 +vn -0.8425 0.0039 -0.5387 +vn 0.8425 0.0028 -0.5387 +vn -0.0000 -0.0096 1.0000 +vn -0.9993 -0.0327 0.0153 +vn 0.9284 -0.0036 0.3715 +vn -0.8390 0.0080 -0.5441 +vn -0.8386 0.0058 -0.5447 +vn 0.8415 0.0028 -0.5403 +vn 0.8406 0.0014 -0.5417 +vn 0.8002 -0.0000 0.5997 +vn 0.7071 -0.0000 -0.7071 +vn 1.0000 -0.0000 -0.0097 +vn -0.0147 0.9816 0.1903 +vn -0.0124 0.9821 0.1881 +vn -0.0155 0.9824 0.1861 +vn -0.0475 0.9810 0.1879 +vn 0.9911 0.0096 0.1327 +vn 0.7072 0.0068 -0.7070 +vn -0.9641 -0.0000 0.2654 +vn -0.7071 -0.0000 -0.7071 +vn -1.0000 -0.0000 0.0097 +vn -0.9725 0.2329 0.0100 +vn -0.9959 -0.0009 0.0906 +vn -0.9983 0.0006 -0.0585 +vn 0.0348 0.9991 -0.0262 +vn -0.0000 0.0097 -1.0000 +vn 0.0479 0.3613 -0.9312 +vn -0.0000 -1.0000 -0.0096 +vn -0.9999 0.0108 0.0001 +vn -0.9993 -0.0321 -0.0206 +vn -0.9994 -0.0321 -0.0163 +vn -0.9743 0.2251 0.0097 +vn -0.9741 0.2258 0.0106 +vn -0.9745 0.2242 0.0022 +vn -0.9995 -0.0315 -0.0025 +vn -0.9996 -0.0272 -0.0022 +vn -0.0000 0.9970 0.0775 +vn -0.9140 0.4057 -0.0091 +vn -0.0250 0.3883 0.9212 +vn -0.0347 0.9719 0.2330 +vn 0.9998 0.0078 0.0165 +vn -0.0000 0.0044 -1.0000 +vn 0.9126 0.0018 -0.4089 +vn -0.8819 0.0021 -0.4715 +vn -0.0000 -0.0022 1.0000 +vn -0.0000 0.0311 0.9995 +vn -0.0000 0.9999 0.0131 +vn -0.0000 0.9999 0.0122 +vn -0.0000 0.0343 -0.9994 +vn -0.0000 0.0082 -1.0000 +vn -0.0000 -0.0089 -1.0000 +vn -0.0000 -1.0000 0.0048 +vn -0.0000 -0.9993 -0.0374 +vn -0.0000 -1.0000 0.0066 +vn -0.0000 -0.9981 -0.0618 +vn -0.0000 0.2181 0.9759 +vn -1.0000 -0.0026 0.0020 +vn -0.9999 -0.0100 -0.0002 +vn -1.0000 0.0047 -0.0047 +vn -1.0000 0.0029 0.0053 +vn 1.0000 0.0029 0.0053 +vn 1.0000 -0.0026 0.0020 +vn 0.9999 -0.0100 -0.0002 +vn 1.0000 0.0022 0.0001 +vn 1.0000 -0.0063 -0.0000 +vn -0.0000 0.0413 0.9991 +vn -0.0001 -0.0000 -1.0000 +vn -0.0000 0.2947 -0.9556 +vn -0.0000 0.8943 0.4474 +vn -0.0000 -0.0733 0.9973 +vn -0.0000 0.0734 -0.9973 +vn 0.9926 0.1211 0.0012 +vn -0.9993 0.0377 0.0004 +vn -0.0000 0.0342 -0.9994 +vn 0.0001 -0.0000 -1.0000 +vn -0.1592 0.3844 0.9093 +vn 0.9885 -0.0111 0.1510 +vn -0.0733 0.9973 -0.0000 +vn -0.0519 0.7052 -0.7071 +vn -0.0720 0.9793 0.1891 +vn 0.0720 -0.9793 0.1891 +vn 0.0734 -0.9973 -0.0000 +vn 0.0519 -0.7052 -0.7071 +vn -0.0000 0.1701 -0.9854 +vn -0.0000 -0.0970 0.9953 +vn -0.9979 -0.0402 -0.0501 +vn 0.2738 0.4318 0.8594 +vn -0.0000 0.9786 0.2056 +vn -0.0000 -0.9951 0.0988 +vn -0.0000 -0.0734 0.9973 +vn 0.4239 -0.9013 0.0895 +vn -0.1710 -0.9768 0.1288 +vn -0.0000 0.9914 -0.1307 +vn 0.9992 -0.0394 0.0052 +vn -0.9996 -0.0272 0.0036 +vn -0.8988 -0.0042 0.4384 +vn 0.7896 -0.0059 0.6136 +vn -1.0000 0.0001 -0.0091 +vn 1.0000 -0.0000 -0.0021 +vn -0.9994 -0.0346 -0.0003 +vn 1.0000 -0.0079 -0.0001 +vn 0.9985 0.0541 0.0005 +vn -0.9992 -0.0342 -0.0218 +vn -0.0132 0.5967 0.8023 +vn -0.0162 -0.0611 0.9980 +vn -0.0775 -0.9969 -0.0096 +vn -0.0000 -0.2860 0.9582 +vn 0.9999 -0.0126 0.0062 +vn 0.9999 -0.0125 -0.0001 +vn 0.9999 -0.0124 -0.0073 +vn -0.9346 -0.3556 -0.0034 +vn 0.0326 -0.5854 -0.8101 +vn 0.0116 0.7093 -0.7048 +vn -0.0000 -0.9914 0.1307 +vn -0.0000 0.9998 0.0199 +vn -0.2738 0.4318 0.8594 +vn -0.1333 0.0532 -0.9896 +vn -0.0000 0.0537 -0.9986 +vn 0.1672 0.0956 -0.9813 +vn -0.0000 0.9999 0.0153 +vn -0.0000 0.0970 -0.9953 +vn -0.0000 0.2948 -0.9556 +vn -0.0000 0.7042 0.7100 +vn -0.0000 1.0000 0.0099 +vn -0.0824 0.7771 -0.6240 +vn 0.9465 0.0372 0.3204 +vn -0.0000 0.9968 -0.0797 +vn -0.0000 -0.7679 0.6406 +vn -0.9465 0.0372 0.3205 +vn -0.0000 0.9936 -0.1129 +vn 0.9990 -0.0051 -0.0442 +vn -0.0000 -1.0000 -0.0055 +vn -0.9990 -0.0051 -0.0442 +vn -0.0000 -0.9999 -0.0166 +vn -0.0000 -0.6981 -0.7160 +vn -0.0000 0.9999 0.0166 +vn -0.0000 0.0198 -0.9998 +vn -0.0000 0.7070 0.7072 +vn -0.0000 -0.0224 0.9997 +vn -0.0000 1.0000 0.0046 +vn -0.0000 -0.9973 0.0734 +vn -0.0000 0.6259 -0.7799 +vn -0.0000 -0.9931 0.1170 +vn -0.0000 -1.0000 -0.0046 +vn -0.0000 0.9978 -0.0670 +vn -0.0000 -0.0198 0.9998 +vn -0.0000 -0.9998 -0.0176 +vn 0.0013 1.0000 0.0096 +vn -0.0000 0.3280 0.9447 +vn -0.0000 -1.0000 -0.0098 +vn -0.0000 0.9999 0.0170 +vn 0.0013 -0.9998 -0.0216 +vn -0.0000 -0.0577 0.9983 +vn -0.0000 0.9889 -0.1484 +vn -0.0000 0.7723 -0.6352 +vn -0.0023 0.3616 0.9323 +vn -0.0038 0.3609 0.9326 +vn -0.0042 0.3593 0.9332 +vn -0.0000 0.3176 0.9482 +vn -0.0016 0.3559 0.9345 +vn -0.0000 0.3568 0.9342 +vn -0.0005 0.3634 0.9316 +vn 0.0017 0.3617 0.9323 +vn 0.0002 0.3635 0.9316 +vn -0.0000 -0.9998 -0.0210 +vn -0.0000 -0.9998 -0.0217 +vn 0.0020 0.9999 0.0166 +vn -0.0000 1.0000 0.0096 +vn -0.0000 -1.0000 0.0038 +vn 0.0312 -0.9995 0.0038 +vn 0.0195 -0.9929 0.1170 +vn -0.1252 0.6209 -0.7738 +vn -0.0000 -0.9973 0.0733 +vn -0.0000 0.9999 -0.0152 +vn -0.0000 0.7797 -0.6261 +vn 0.0014 1.0000 0.0097 +vn -0.0000 0.4355 -0.9002 +vn -1.0000 0.0052 0.0052 +vn -0.0000 0.1871 0.9823 +vn -0.0000 0.9700 0.2429 +vn 0.9659 0.2586 -0.0110 +vn -0.9813 0.1906 0.0275 +vn -0.0000 0.1887 -0.9820 +vn 0.5087 0.8556 -0.0962 +vn 0.9507 0.2307 -0.2071 +vn -0.9239 0.3803 -0.0427 +vn -0.4938 0.8655 0.0838 +vn 0.4938 0.8655 0.0838 +vn 0.8507 0.5109 0.1237 +vn -0.9067 0.3518 -0.2326 +vn -0.2383 0.8589 -0.4533 +vn -0.3827 -0.9181 0.1032 +vn -0.9685 -0.2475 0.0278 +vn 0.9243 -0.3038 0.2310 +vn 0.0998 -0.9949 0.0144 +vn 0.2646 0.6033 0.7523 +vn 0.6990 0.3607 0.6175 +vn -0.6810 0.3558 0.6400 +vn -0.2608 0.5979 0.7580 +vn 0.2436 0.0146 0.9698 +vn -0.2436 -0.0146 -0.9698 +vn -0.1833 -0.0750 -0.9802 +vn -0.1695 -0.0057 -0.9855 +vn -0.2016 0.0541 -0.9780 +vn -0.2753 0.0800 -0.9580 +vn -0.3604 0.0277 -0.9324 +vn -0.3529 -0.0877 -0.9316 +vn -0.2532 -0.1242 -0.9594 +vn -0.9811 0.1936 0.0019 +vn -0.9914 -0.1311 -0.0013 +vn -0.9980 -0.0635 -0.0006 +vn -0.9914 -0.1312 -0.0013 +vn 0.9788 -0.2046 -0.0020 +vn 0.9914 0.1311 0.0013 +vn 0.9980 0.0635 0.0006 +vn 0.9914 0.1312 0.0013 +vn 0.0094 0.0215 -0.9997 +vn -0.6219 -0.7830 -0.0077 +vn -0.1312 0.9913 0.0096 +vn -0.6218 -0.7831 -0.0076 +vn -0.1310 0.9913 0.0096 +vn 0.0002 0.0097 -1.0000 +vn 0.0001 -0.0097 1.0000 +vn -0.0001 0.0097 -1.0000 +vn 0.0020 -0.0263 0.9997 +vn 0.0095 0.0215 -0.9997 +vn 0.0020 -0.0262 0.9997 +vn 0.1312 -0.9913 -0.0096 +vn -0.1034 0.7877 -0.6073 +vn -0.6218 -0.7831 -0.0075 +vn -0.0948 0.7102 0.6976 +vn 0.0001 0.0097 -1.0000 +vn -0.0000 0.0096 -1.0000 +vn -0.9736 0.2282 0.0013 +vn -0.9734 0.2291 0.0022 +vn 0.8390 0.0080 -0.5441 +vn 0.8386 0.0058 -0.5447 +vn -0.8425 0.0028 -0.5387 +vn -1.0000 -0.0000 0.0027 +vn -0.7071 -0.0000 0.7071 +vn -0.9987 -0.0000 -0.0512 +vn 0.9794 -0.0000 -0.2018 +vn 0.0025 -0.7071 -0.7071 +vn 0.0035 -1.0000 -0.0000 +vn 0.0025 -0.7128 0.7013 +vn 0.7240 0.0070 -0.6897 +vn 0.9966 0.0096 0.0815 +vn 0.3950 0.5865 -0.7071 +vn 0.3994 0.5930 0.6992 +vn 0.7072 0.0019 0.7070 +vn 0.9793 0.0026 -0.2024 +vn 0.0147 0.9816 0.1903 +vn 0.0156 0.9824 0.1861 +vn 0.0124 0.9821 0.1881 +vn 0.0475 0.9810 0.1879 +vn -0.0033 0.9814 0.1922 +vn 0.0030 0.9812 0.1932 +vn -0.0020 0.9820 0.1890 +vn 0.9701 0.2425 -0.0000 +vn -0.8415 0.0028 -0.5403 +vn -0.8405 0.0014 -0.5418 +vn 0.8420 0.0058 -0.5394 +vn -0.9995 -0.0327 -0.0003 +vn -0.8422 0.0034 -0.5392 +vn -0.8404 0.0047 -0.5420 +vn -0.8410 0.0028 -0.5410 +vn 0.8418 0.0058 -0.5397 +vn 0.8425 0.0039 -0.5387 +vn 0.8408 0.0065 -0.5414 +vn 1.0000 -0.0000 0.0097 +vn 0.8059 -0.0000 -0.5921 +vn -1.0000 -0.0000 -0.0039 +vn -0.8002 -0.0000 0.5997 +vn 0.0035 0.9829 0.1839 +vn 0.7171 0.0069 0.6969 +vn 0.9911 0.0096 -0.1327 +vn 0.9641 -0.0000 0.2654 +vn -0.9846 0.1294 0.1179 +vn -0.9995 -0.0315 -0.0003 +vn -0.9749 0.2224 0.0095 +vn -0.9997 0.0096 0.0213 +vn -0.0000 0.9980 -0.0633 +vn 0.0651 0.3722 -0.9259 +vn -0.9999 0.0046 -0.0124 +vn -0.9999 0.0027 -0.0144 +vn -0.9996 -0.0273 -0.0004 +vn -0.9995 -0.0316 -0.0003 +vn -0.9738 0.2275 0.0022 +vn -0.9740 0.2267 0.0031 +vn -0.9735 0.2285 0.0022 +vn -0.9996 -0.0274 -0.0003 +vn -0.9999 0.0046 -0.0119 +vn -0.9999 0.0025 -0.0101 +vn 0.0192 0.9943 0.1046 +vn -0.8869 0.4537 0.0873 +vn 0.0385 0.4262 0.9038 +vn -0.0790 0.9958 0.0465 +vn 0.9850 0.0897 -0.1476 +vn -0.9999 -0.0100 -0.0001 +vn -1.0000 -0.0001 0.0017 +vn -1.0000 -0.0000 0.0059 +vn -1.0000 0.0046 0.0060 +vn -0.9999 0.0005 0.0148 +vn -1.0000 -0.0025 0.0081 +vn -0.9999 -0.0035 0.0126 +vn -0.9999 -0.0101 -0.0001 +vn -1.0000 -0.0008 -0.0030 +vn -1.0000 -0.0005 -0.0056 +vn -1.0000 0.0019 -0.0042 +vn -1.0000 -0.0000 -0.0024 +vn -1.0000 -0.0001 -0.0023 +vn -1.0000 -0.0098 -0.0001 +vn -1.0000 -0.0013 -0.0011 +vn -1.0000 0.0098 -0.0001 +vn -1.0000 0.0022 0.0001 +vn -1.0000 -0.0004 -0.0020 +vn -1.0000 -0.0030 -0.0018 +vn -1.0000 -0.0006 -0.0052 +vn -1.0000 0.0008 -0.0030 +vn -0.9999 0.0034 0.0131 +vn -0.9999 -0.0012 0.0136 +vn -0.9998 0.0029 0.0177 +vn -1.0000 -0.0041 0.0081 +vn -1.0000 0.0001 0.0061 +vn -1.0000 0.0024 -0.0000 +vn -1.0000 0.0098 0.0004 +vn 0.9998 0.0029 0.0177 +vn 0.9999 -0.0012 0.0136 +vn 0.9999 0.0034 0.0131 +vn 1.0000 0.0098 0.0004 +vn 1.0000 0.0001 0.0061 +vn 1.0000 -0.0041 0.0081 +vn 1.0000 0.0024 -0.0000 +vn 0.9999 -0.0100 -0.0001 +vn 0.9999 -0.0035 0.0126 +vn 1.0000 -0.0025 0.0081 +vn 0.9999 0.0005 0.0148 +vn 0.9999 -0.0101 -0.0001 +vn 1.0000 -0.0000 0.0059 +vn 1.0000 0.0046 0.0060 +vn 1.0000 -0.0001 0.0017 +vn 1.0000 -0.0005 -0.0056 +vn 1.0000 -0.0008 -0.0030 +vn 1.0000 0.0018 -0.0041 +vn 1.0000 -0.0000 -0.0024 +vn 1.0000 -0.0013 -0.0011 +vn 1.0000 -0.0001 -0.0023 +vn 1.0000 -0.0098 -0.0001 +vn 1.0000 0.0098 -0.0001 +vn 1.0000 0.0008 -0.0030 +vn 1.0000 -0.0006 -0.0051 +vn 1.0000 0.0047 -0.0047 +vn 1.0000 -0.0004 -0.0020 +vn 1.0000 -0.0030 -0.0018 +vn 1.0000 -0.0045 0.0044 +vn 1.0000 -0.0071 -0.0001 +vn 0.9880 0.0321 0.1513 +vn -0.0000 -0.4489 0.8936 +vn 0.0519 -0.7052 0.7071 +vn 0.0720 -0.9793 -0.1891 +vn -0.1672 0.0956 -0.9813 +vn 0.9939 -0.0813 0.0752 +vn 0.9884 -0.0147 0.1510 +vn -0.9980 -0.0569 -0.0287 +vn 0.9968 -0.0499 -0.0623 +vn 0.9969 -0.0707 -0.0356 +vn -0.0000 0.6252 0.7804 +vn 0.9982 -0.0540 -0.0248 +vn -0.9990 -0.0393 -0.0221 +vn 0.9996 0.0172 -0.0213 +vn -1.0000 0.0043 -0.0000 +vn -0.0000 0.5989 0.8008 +vn -0.0164 -0.0607 0.9980 +vn -0.0165 0.0076 0.9998 +vn 0.9999 -0.0115 0.0061 +vn 0.0597 -0.5894 -0.8056 +vn 0.0548 0.7394 -0.6710 +vn -0.0003 0.9998 0.0198 +vn 0.1333 0.0532 -0.9896 +vn -0.4017 0.5726 0.7147 +vn 0.4017 0.5726 0.7147 +vn -0.0014 1.0000 0.0097 +vn -0.0000 0.7946 -0.6071 +vn 0.9465 0.0372 0.3205 +vn 0.0016 0.3559 0.9345 +vn 0.0022 0.3616 0.9323 +vn 0.0042 0.3593 0.9332 +vn 0.0038 0.3609 0.9326 +vn 0.0008 0.3633 0.9317 +vn -0.0018 0.3621 0.9321 +vn 0.0010 0.3630 0.9318 +vn -0.0013 -0.9998 -0.0216 +vn -0.0013 1.0000 0.0096 +vn -0.0111 0.9979 -0.0646 +vn -0.0000 0.2995 -0.9541 +vn -0.9976 0.0689 0.0093 +vn -0.6286 -0.7775 0.0165 +vn -1.0000 0.0053 0.0073 +vn -1.0000 -0.0002 0.0074 +vn -1.0000 0.0075 -0.0000 +vn -1.0000 0.0012 -0.0038 +vn -1.0000 0.0079 -0.0005 +vn 0.9974 0.0718 0.0091 +vn 0.1496 0.9886 -0.0161 +vn -0.9659 0.2585 -0.0111 +vn -0.0803 0.3893 -0.9176 +vn 0.3755 0.8796 -0.2919 +vn 0.9239 0.3803 -0.0427 +vn -0.9239 0.3803 -0.0428 +vn -0.3827 0.9181 -0.1032 +vn 0.2524 0.9247 -0.2851 +vn -0.9103 0.3068 -0.2779 +vn -0.5087 0.8556 -0.0962 +vn -0.1106 -0.9636 -0.2436 +vn -0.9786 -0.1938 -0.0687 +vn 0.9879 -0.1550 -0.0049 +vn -0.0041 -0.9937 0.1117 +vn -0.0023 0.0263 -0.9997 +vn -0.0095 -0.0215 0.9997 +vn -0.0021 0.0262 -0.9997 +vn -0.0094 -0.0215 0.9997 +vn 0.1310 -0.9913 -0.0096 +vn -0.1035 0.7877 -0.6073 +vn -0.1821 0.0393 0.9825 +vn -0.1579 0.0817 0.9841 +vn -0.0000 1.0000 0.0040 +vn -0.5000 0.8660 0.0027 +vn -0.4993 -0.8660 -0.0267 +vn -0.0011 -0.9995 -0.0309 +vn 0.0011 -0.9995 -0.0309 +vn 0.9018 -0.4309 -0.0319 +vn 0.9971 0.0692 -0.0308 +vn 0.9970 0.0714 -0.0307 +vn -0.8653 0.5010 -0.0162 +vn -0.5010 0.8653 -0.0165 +vn -0.8664 0.4991 -0.0162 +vn 0.0011 0.9998 -0.0191 +vn 0.4992 0.8662 -0.0233 +vn -0.0011 0.9998 -0.0191 +vn -0.8797 -0.4751 -0.0221 +vn -0.5005 -0.8653 -0.0267 +vn 0.5870 -0.8089 -0.0336 +vn 0.7893 -0.6132 -0.0307 +vn 0.7850 -0.6187 -0.0307 +vn -0.4987 0.8666 -0.0165 +vn 0.5003 0.8655 -0.0233 +vn 0.8605 0.5086 -0.0279 +vn -0.1906 -0.0335 0.9811 +vn -0.1872 0.0078 0.9823 +vn -0.1869 0.0101 0.9823 +vn 0.5851 -0.8102 -0.0336 +vn -0.9912 0.1311 -0.0167 +vn -0.9913 0.1309 -0.0166 +vn 0.5000 0.8660 0.0027 +vn 0.8660 0.5000 -0.0009 +vn -0.0000 -0.9999 -0.0154 +vn 0.5864 -0.8099 -0.0135 +vn 0.5862 -0.8101 -0.0135 +vn -0.9936 0.1132 -0.0044 +vn -0.8660 0.5000 -0.0009 +vn -0.9936 0.1131 -0.0044 +vn -0.5000 -0.8659 -0.0141 +vn 0.9358 -0.3524 -0.0087 +vn 0.9982 0.0604 -0.0049 +vn 0.9982 0.0605 -0.0049 +vn -0.8838 -0.4678 -0.0102 +vn 0.9358 -0.3525 -0.0087 +vn -0.8838 -0.4679 0.0041 +vn -0.5000 -0.8660 0.0002 +vn 0.5000 0.8659 0.0170 +vn -0.0000 0.9998 0.0183 +vn -0.5000 0.8659 0.0170 +vn -0.8660 0.4999 0.0134 +vn 0.9981 0.0602 0.0089 +vn 0.9358 -0.3525 0.0046 +vn 0.9981 0.0604 0.0089 +vn -0.0000 -1.0000 -0.0011 +vn -0.9935 0.1131 0.0094 +vn -0.9936 0.1130 0.0094 +vn 0.5864 -0.8100 0.0007 +vn 0.5861 -0.8102 0.0007 +vn 0.8660 0.4999 0.0134 +vn 0.9357 -0.3527 0.0046 +vn 0.6006 0.5955 0.5336 +vn 0.7283 0.4152 0.5451 +vn 0.2198 -0.8153 -0.5357 +vn -0.0000 -0.8357 -0.5492 +vn 0.8871 -0.3274 -0.3254 +vn 0.5581 -0.7533 -0.3481 +vn 0.8846 -0.3343 -0.3252 +vn -0.4697 -0.8102 -0.3505 +vn -0.8315 -0.4341 -0.3467 +vn -0.2441 -0.9142 0.3235 +vn -0.4697 0.8168 -0.3349 +vn -0.8136 0.4730 -0.3381 +vn 0.9417 0.0560 -0.3318 +vn 0.9411 0.0639 -0.3320 +vn -0.0000 -0.9361 -0.3518 +vn -0.9369 0.1122 -0.3310 +vn -0.9375 0.1074 -0.3310 +vn 0.1822 0.0393 0.9825 +vn 0.1821 0.0393 0.9825 +vn 0.1821 0.0394 0.9825 +vn 0.1702 -0.1209 0.9780 +vn 0.1130 -0.1548 0.9815 +vn 0.1047 -0.1596 0.9816 +vn 0.5456 -0.7620 -0.3487 +vn 0.1886 -0.0010 0.9821 +vn 0.1878 0.0039 0.9822 +vn -0.8837 -0.4679 0.0154 +vn -0.4999 -0.8660 0.0116 +vn -0.0000 -0.9996 -0.0296 +vn -0.2588 -0.9655 -0.0286 +vn -0.7070 0.7067 0.0261 +vn -0.8658 0.4997 0.0248 +vn -0.8659 0.4997 0.0248 +vn 0.9980 0.0600 0.0199 +vn 0.9357 -0.3524 0.0152 +vn 0.9980 0.0604 0.0199 +vn -0.0000 -0.9999 0.0103 +vn -0.9934 0.1131 0.0204 +vn -0.9934 0.1128 0.0204 +vn 0.5866 -0.8098 0.0120 +vn 0.5858 -0.8104 0.0120 +vn 0.8659 0.4997 0.0248 +vn 0.7070 0.7068 0.0261 +vn 0.7070 0.7067 0.0261 +vn 0.2588 -0.9655 -0.0286 +vn -0.1893 -0.0456 0.9809 +vn -0.1906 -0.0337 0.9811 +vn 0.3383 0.2001 -0.9195 +vn 0.3751 0.0362 -0.9263 +vn 0.3331 0.2137 -0.9184 +vn 0.2948 -0.2253 -0.9286 +vn 0.3442 -0.1181 -0.9314 +vn 0.3304 -0.1463 -0.9324 +vn -0.3207 -0.0291 -0.9467 +vn -0.3108 -0.1408 -0.9400 +vn -0.2987 -0.1576 -0.9412 +vn 0.2095 -0.2501 -0.9453 +vn 0.3112 -0.1946 -0.9302 +vn -0.1672 -0.2717 -0.9477 +vn -0.1608 -0.2749 -0.9479 +vn -0.0000 0.4273 -0.9041 +vn 0.1994 0.3681 -0.9082 +vn -0.2088 0.3617 -0.9086 +vn -0.3331 0.2137 -0.9184 +vn -0.3401 0.1973 -0.9195 +vn 0.3739 0.0324 -0.9269 +vn 0.9356 -0.3528 0.0152 +vn -0.0000 -0.3122 -0.9500 +vn -0.5000 -0.8659 -0.0118 +vn -0.8838 -0.4678 -0.0080 +vn 0.5000 0.8660 0.0049 +vn -0.0000 1.0000 0.0062 +vn -0.5000 0.8660 0.0049 +vn -0.8660 0.5000 0.0014 +vn 0.9358 -0.3524 -0.0066 +vn 0.9982 0.0604 -0.0028 +vn 0.9982 0.0605 -0.0028 +vn -0.0000 -0.9999 -0.0131 +vn -0.9936 0.1132 -0.0023 +vn -0.9936 0.1131 -0.0023 +vn 0.5862 -0.8101 -0.0113 +vn 0.5864 -0.8100 -0.0113 +vn 0.8660 0.5000 0.0014 +vn 0.2877 0.0123 0.9576 +vn 0.2456 0.1353 0.9599 +vn 0.2875 0.0040 0.9578 +vn 0.2520 -0.2136 0.9439 +vn 0.1771 -0.2377 0.9551 +vn 0.1646 -0.2450 0.9554 +vn -0.2930 0.0306 0.9556 +vn -0.2482 0.1340 0.9594 +vn -0.2944 -0.0398 0.9548 +vn -0.2524 -0.1425 0.9571 +vn -0.2914 -0.0406 0.9557 +vn -0.0000 -0.2958 0.9552 +vn 0.1433 0.2389 0.9604 +vn 0.2469 0.1363 0.9594 +vn -0.0000 0.2773 0.9608 +vn -0.1433 0.2389 0.9604 +vn 0.2797 -0.1228 0.9522 +vn 0.2659 -0.1832 0.9464 +vn -0.1433 -0.2575 0.9556 +vn -0.2517 -0.1465 0.9567 +vn -0.4866 -0.8406 -0.2380 +vn -0.0000 -0.9709 -0.2393 +vn 0.1579 0.0817 0.9841 +vn -0.0000 -0.1919 0.9814 +vn -0.1621 -0.0934 0.9823 +vn -0.1893 -0.0455 0.9809 +vn 0.0912 0.1484 0.9847 +vn -0.0912 0.1484 0.9847 +vn -0.0000 0.1729 0.9849 +vn 0.1818 -0.0810 0.9800 +vn -0.0912 -0.1674 0.9817 +vn -0.1608 -0.0957 0.9823 +vn -0.9946 -0.1025 -0.0180 +vn -0.9685 -0.1066 -0.2252 +vn -0.9681 -0.1203 -0.2196 +vn -0.9695 0.0996 -0.2239 +vn -0.8888 -0.2388 0.3913 +vn -0.8264 -0.4164 0.3790 +vn -0.8872 -0.2446 0.3912 +vn 0.9733 0.0582 -0.2219 +vn 0.9147 -0.3399 -0.2185 +vn 0.9130 -0.3446 -0.2184 +vn -0.8428 0.4888 -0.2252 +vn -0.4866 0.8450 -0.2217 +vn -0.0000 0.9754 -0.2205 +vn 0.4866 0.8450 -0.2217 +vn -0.8609 -0.4517 -0.2341 +vn -0.8595 -0.4544 -0.2342 +vn 0.8187 -0.5339 -0.2115 +vn 0.8428 0.4888 -0.2252 +vn 0.5753 -0.7831 -0.2362 +vn -0.9951 0.0989 0.0010 +vn -0.9659 0.2588 0.0025 +vn -0.7876 -0.4941 0.3683 +vn -0.8898 -0.2422 0.3869 +vn -0.8897 -0.2422 0.3869 +vn -0.9009 -0.1935 0.3885 +vn -0.7590 0.4928 0.4255 +vn -0.5352 0.6962 0.4784 +vn -0.5025 0.7178 0.4820 +vn -0.9131 -0.0646 0.4026 +vn -0.9135 -0.0545 0.4031 +vn 0.8994 0.1124 0.4223 +vn 0.8896 0.1656 0.4257 +vn 0.9003 0.1074 0.4219 +vn 0.9066 -0.0888 0.4126 +vn 0.9058 -0.1000 0.4119 +vn -0.7936 -0.4755 0.3795 +vn 0.8851 -0.2410 0.3982 +vn -0.0011 0.8668 0.4986 +vn 0.0008 0.8668 0.4986 +vn 0.8660 0.5000 0.0048 +vn 0.9659 0.2588 0.0025 +vn -0.5000 -0.8660 -0.0084 +vn 0.9358 -0.3525 -0.0034 +vn 0.9982 0.0604 0.0006 +vn -0.5000 0.8660 0.0084 +vn -0.8660 0.5000 0.0048 +vn 0.5000 0.8660 0.0084 +vn -0.8838 -0.4679 -0.0045 +vn 0.8367 -0.5477 -0.0053 +vn 0.8367 -0.5476 -0.0053 +vn -0.9587 -0.1806 -0.2195 +vn 0.5863 -0.8101 -0.0078 +vn -0.9533 0.2538 0.1638 +vn -0.9429 0.0892 0.3210 +vn -0.9156 0.2423 0.3208 +vn 0.8896 0.1654 0.4257 +vn 0.7923 0.3968 0.4635 +vn 0.0022 -0.6241 -0.7813 +vn 0.4237 0.8995 -0.1063 +vn 0.0022 0.6327 -0.7744 +vn -0.0014 0.9861 -0.1661 +vn 0.9234 -0.3460 0.1660 +vn 0.9336 0.0499 0.3548 +vn 0.8767 -0.3375 0.3427 +vn -0.8880 0.4032 0.2212 +vn -0.6700 0.6669 0.3260 +vn -0.1154 -0.4222 -0.8991 +vn -0.0014 -0.9841 -0.1777 +vn -0.4253 -0.8971 -0.1196 +vn -0.9058 -0.3635 0.2177 +vn -0.6674 -0.6706 0.3240 +vn -0.8352 -0.4389 0.3315 +vn 0.8246 -0.5415 0.1640 +vn 0.7888 -0.5195 0.3285 +vn 0.4239 -0.8980 -0.1183 +vn 0.6639 0.6605 0.3508 +vn 0.8069 0.4657 0.3635 +vn 0.8849 0.3985 0.2412 +vn -0.9697 -0.1866 0.1576 +vn -0.9324 -0.1808 0.3130 +vn -0.1202 0.4571 -0.8813 +vn -0.2550 0.9533 -0.1620 +vn -0.9795 -0.1258 0.1573 +vn -0.9823 0.0966 0.1604 +vn -0.4710 -0.8087 0.3523 +vn -0.8040 -0.4565 0.3811 +vn -0.9938 -0.1115 -0.0044 +vn -0.3787 0.0550 -0.9239 +vn -0.3745 0.0494 -0.9259 +vn -0.9936 -0.1117 0.0178 +vn 0.6669 0.6701 -0.3259 +vn 0.8136 0.4730 -0.3381 +vn -0.9937 -0.1116 0.0070 +vn -0.9937 -0.1114 -0.0065 +vn -0.9823 -0.1872 -0.0018 +vn -0.9921 -0.1256 -0.0012 +vn 0.9506 0.2530 0.1801 +vn 0.9831 0.0579 0.1735 +vn 0.1831 -0.0764 0.9801 +vn 0.0010 -0.9390 0.3438 +vn 0.4582 -0.8137 0.3578 +vn -0.0012 -0.9390 0.3438 +vn -0.9417 0.2544 -0.2200 +vn -0.8180 0.4686 0.3336 +vn -0.8837 -0.4680 0.0041 +vn -0.2441 0.9142 -0.3235 +vn 0.1853 -0.2625 -0.9470 +vn -0.8835 -0.4681 0.0154 +vn -0.3744 -0.0300 -0.9268 +vn 0.2733 -0.1317 0.9529 +vn -0.9415 -0.1222 0.3139 +vn -0.8513 0.3099 0.4234 +vn -0.7589 0.4929 0.4255 +vn 0.9503 0.2529 0.1815 +vn 0.9040 0.2388 0.3545 +vn 0.7780 0.4215 0.4659 +vn 0.4424 0.7501 0.4915 +vn 0.9659 0.2589 0.0025 +vn 0.7888 -0.5196 0.3285 +vn 0.8258 -0.5421 0.1553 +vn -0.4611 -0.8146 0.3519 +vn 0.5668 -0.7892 -0.2365 +vn -0.2920 0.0256 0.9561 +vn 0.9024 -0.4297 -0.0319 +vn 0.8533 0.5213 0.0103 +vn 0.9177 0.3972 0.0076 +vn -0.9935 0.1134 0.0016 +vn -0.9937 -0.1118 -0.0016 +vn -0.9935 0.1135 0.0006 +vn -0.2588 0.9659 0.0093 +vn -0.9823 -0.1873 -0.0018 +vn -0.7071 -0.7071 -0.0068 +vn -0.7570 -0.6534 -0.0063 +vn 0.5000 -0.8660 -0.0084 +vn 0.9444 -0.3286 0.0103 +vn 0.7071 0.7071 0.0068 +vn 0.7071 -0.7071 -0.0068 +vn 0.9445 -0.3282 -0.0167 +vn 0.8366 -0.5477 -0.0053 +vn -0.7873 -0.6165 -0.0060 +vn -0.9269 -0.3753 -0.0036 +vn -0.9937 -0.1118 -0.0006 +vn -0.9071 0.4210 0.0041 +vn -0.9951 0.0987 0.0012 +vn -0.8513 -0.5246 -0.0051 +vn 0.6839 -0.7296 -0.0071 +vn 0.8366 -0.5478 -0.0053 +vn 0.8657 0.5005 0.0039 +vn 0.9159 0.4015 0.0035 +vn 0.9661 0.2583 0.0016 +vn 0.9964 0.0177 0.0830 +vn -0.9823 -0.1874 -0.0018 +vn 0.7815 0.6238 0.0060 +vn 0.9857 0.1685 0.0011 +vn 0.9786 0.2056 0.0020 +vn 0.9857 0.1683 0.0023 +vn 0.9632 0.2006 0.1790 +vn 0.8367 -0.5476 -0.0084 +vn 0.9358 -0.3525 -0.0066 +vn 0.9065 0.2362 0.3498 +vn 0.4712 -0.8058 0.3586 +vn 0.7894 -0.4744 0.3895 +vn -0.8470 0.3207 0.4240 +vn 0.8444 0.5082 0.1695 +vn 0.9041 0.2387 0.3545 +vn 0.9579 -0.1245 0.2586 +vn 0.9524 -0.1186 -0.2810 +vn 0.2088 0.3617 -0.9086 +vn -0.1994 0.3681 -0.9082 +vn -0.9393 -0.1024 -0.3274 +vn -0.9394 -0.1021 -0.3274 +vn 0.8603 0.5091 -0.0278 +vn 0.9417 0.2545 -0.2200 +vn 0.4335 0.7551 0.4919 +vn 0.8006 -0.4537 0.3914 +vn 0.8866 0.4626 0.0045 +vn 0.9961 0.0214 -0.0862 +vn 0.8592 0.4785 0.1808 +vn 0.9050 0.2425 0.3496 +vn 0.9075 0.2399 0.3449 +vn 0.9369 -0.3497 0.0009 +vn 0.9983 0.0583 0.0063 +vn -0.9613 -0.2748 -0.0185 +vn -0.9316 -0.3630 -0.0187 +vn -0.1530 -0.9867 0.0547 +vn -0.0792 -0.9967 -0.0160 +vn -0.0791 -0.9967 -0.0160 +vn -0.1418 0.0120 -0.9898 +vn 0.1127 -0.4565 -0.8826 +vn 0.1418 0.0120 -0.9898 +vn -0.2462 -0.4736 -0.8456 +vn -0.3299 0.0091 -0.9440 +vn -0.1260 -0.9413 -0.3133 +vn -0.1127 -0.4565 -0.8826 +vn -0.1337 -0.9906 -0.0294 +vn 0.1533 -0.9880 -0.0158 +vn -0.1534 -0.9880 -0.0158 +vn -0.2650 -0.9641 -0.0154 +vn 0.1530 -0.9867 0.0547 +vn 0.1260 -0.9413 -0.3133 +vn -0.2413 -0.9704 0.0048 +vn -0.2116 -0.9080 -0.3616 +vn 0.0791 -0.9967 -0.0160 +vn 0.2650 -0.9641 -0.0154 +vn 0.2413 -0.9704 0.0048 +vn 0.2116 -0.9080 -0.3616 +vn 0.2464 0.4622 -0.8519 +vn 0.1146 0.4450 -0.8882 +vn 0.1164 0.9181 -0.3790 +vn 0.2088 0.9021 -0.3777 +vn -0.9445 -0.2527 0.2099 +vn -0.7423 -0.6651 0.0812 +vn -0.8371 -0.4874 0.2486 +vn -0.9854 0.0047 0.1703 +vn -0.9998 0.0169 -0.0040 +vn 0.9445 -0.2527 0.2099 +vn 0.7423 -0.6651 0.0812 +vn 0.9352 -0.3329 -0.1212 +vn 0.7729 -0.6171 -0.1477 +vn 0.9080 -0.2753 -0.3160 +vn 0.9843 0.0622 -0.1650 +vn 0.9908 0.0847 0.1058 +vn 0.9564 -0.1410 -0.2558 +vn 0.8789 0.2188 -0.4238 +vn 0.9300 -0.1110 -0.3503 +vn -0.9840 0.0600 -0.1677 +vn -0.9908 0.0847 0.1058 +vn -0.9832 0.0494 0.1759 +vn -0.9475 0.1641 0.2744 +vn -0.9396 0.2056 0.2735 +vn 0.9916 -0.1072 -0.0724 +vn 0.8195 -0.5358 -0.2033 +vn -0.9916 -0.1072 -0.0724 +vn -0.9636 0.2121 0.1629 +vn -0.9343 0.2035 0.2929 +vn 0.9804 0.0160 -0.1961 +vn 0.9094 0.0735 -0.4094 +vn -0.9804 0.0160 -0.1961 +vn -0.9855 0.0749 0.1525 +vn -0.9428 0.1762 0.2830 +vn -0.9094 0.0735 -0.4094 +vn -0.9352 -0.3329 -0.1212 +vn 0.9428 0.1762 0.2830 +vn 0.9855 0.0749 0.1525 +vn 0.2493 0.9683 0.0141 +vn 0.1360 0.9906 0.0155 +vn -0.9564 -0.1410 -0.2558 +vn -0.8195 -0.5358 -0.2033 +vn 0.9396 0.2056 0.2735 +vn 0.9636 0.2121 0.1629 +vn 0.1195 0.8349 0.5373 +vn 0.1960 0.8321 0.5188 +vn -0.8789 0.2188 -0.4238 +vn 0.9475 0.1641 0.2744 +vn 0.9826 0.0512 0.1786 +vn 0.2458 0.3187 0.9154 +vn 0.1231 0.2914 0.9486 +vn 0.1445 0.0045 0.9895 +vn 0.3293 -0.0091 0.9442 +vn 0.9854 0.0047 0.1703 +vn 0.8371 -0.4874 0.2486 +vn -0.7729 -0.6171 -0.1477 +vn -0.1256 -0.9608 -0.2472 +vn 0.0576 -0.9747 -0.2158 +vn 0.1467 -0.9583 -0.2454 +vn 0.2007 -0.9752 -0.0936 +vn -0.2533 -0.9513 -0.1759 +vn 0.2919 -0.9407 -0.1729 +vn -0.1826 -0.9254 -0.3321 +vn 0.2163 -0.9254 -0.3112 +vn -0.1850 -0.9314 -0.3134 +vn -0.1722 -0.9368 -0.3047 +vn 0.2012 -0.9320 -0.3015 +vn -0.1764 -0.9315 -0.3181 +vn 0.2135 -0.9195 -0.3300 +vn 0.2064 -0.9261 -0.3158 +vn 0.3986 -0.8724 -0.2829 +vn 0.4109 -0.8594 -0.3042 +vn -0.3144 0.9491 0.0171 +vn -0.5969 0.8022 0.0145 +vn -0.2092 0.9777 0.0177 +vn 0.4177 -0.8553 -0.3065 +vn 0.3763 -0.8860 -0.2709 +vn 0.4727 -0.8497 -0.2337 +vn 0.2633 -0.9419 -0.2085 +vn 0.3551 0.9347 0.0169 +vn 0.6639 0.7477 0.0135 +vn 0.6044 -0.7930 -0.0761 +vn 0.4200 -0.8590 -0.2929 +vn -0.5365 -0.8400 -0.0806 +vn -0.4144 -0.8788 -0.2367 +vn 0.1780 0.9839 0.0178 +vn -0.3529 -0.8823 -0.3114 +vn 0.2247 0.9743 0.0176 +vn -0.3196 -0.9068 -0.2750 +vn -0.3617 -0.8825 -0.3006 +vn -0.1688 0.9855 0.0178 +vn -0.2230 -0.9518 -0.2107 +vn -0.0543 -0.9749 -0.2158 +vn -0.3595 -0.8784 -0.3148 +vn -0.3423 -0.8938 -0.2899 +vn 0.9172 -0.3289 -0.2248 +vn 0.3319 -0.9414 -0.0595 +vn 0.3285 -0.9427 -0.0585 +vn 0.8159 0.5339 -0.2220 +vn 0.9192 -0.3228 -0.2255 +vn 0.0973 0.9939 -0.0512 +vn 0.8136 0.5375 -0.2215 +vn -0.6909 0.7057 0.1571 +vn -0.6947 0.7017 0.1582 +vn -0.9621 -0.1135 0.2480 +vn -0.9614 -0.1194 0.2480 +vn -0.5071 -0.8484 0.1517 +vn -0.5057 -0.8493 0.1514 +vn 0.9181 -0.3259 -0.2257 +vn 0.3279 -0.9422 -0.0682 +vn 0.8169 0.5359 -0.2133 +vn 0.1006 0.9941 -0.0402 +vn -0.9999 0.0106 -0.0110 +vn -0.9991 0.0430 -0.0037 +vn -0.9998 0.0127 -0.0133 +vn -0.9971 0.0758 -0.0061 +vn -0.9897 0.1348 -0.0485 +vn -0.9999 -0.0137 -0.0031 +vn 0.9971 -0.0762 0.0059 +vn 0.9896 -0.1356 0.0481 +vn 0.9841 -0.1548 0.0874 +vn -0.0000 0.0158 -0.9999 +vn -0.0000 -0.1169 -0.9931 +vn -0.0000 -0.1207 -0.9927 +vn -0.0000 -0.0158 0.9999 +vn -0.0000 0.0284 0.9996 +vn -0.9996 -0.0267 -0.0004 +vn -0.9999 -0.0172 -0.0003 +vn 0.9999 -0.0106 0.0110 +vn 0.9991 -0.0432 0.0036 +vn -0.0000 0.0298 0.9996 +vn -0.0008 0.0483 0.9988 +vn -0.6915 0.7038 0.1631 +vn 0.0009 -0.1992 -0.9800 +vn -0.0000 -0.1957 -0.9807 +vn 0.0147 0.2452 -0.9694 +vn 0.0203 0.6164 -0.7871 +vn 0.0199 0.6195 -0.7848 +vn -0.0150 -0.2579 0.9660 +vn -0.0159 -0.2595 0.9656 +vn -0.9628 -0.1165 0.2436 +vn 0.9990 -0.0449 0.0022 +vn 0.9987 -0.0513 -0.0008 +vn 0.9954 -0.0956 -0.0015 +vn -0.0213 -0.7492 0.6620 +vn -0.5092 -0.8491 0.1407 +vn -0.0212 -0.7581 0.6517 +vn -0.0200 -0.9356 0.3524 +vn -0.0083 -0.6779 -0.7352 +vn -0.0083 -0.6779 -0.7351 +vn 0.0189 0.7409 -0.6714 +vn 0.0180 0.7406 -0.6717 +vn 0.4678 0.0244 0.8835 +vn 0.8432 0.0548 0.5347 +vn 0.4172 0.0927 0.9041 +vn 0.4653 -0.1686 0.8689 +vn 0.8298 -0.0604 0.5548 +vn 0.4643 -0.0912 0.8810 +vn 0.8307 -0.1254 0.5424 +vn 0.8292 -0.1042 0.5491 +vn -0.4283 -0.1721 0.8871 +vn -0.7799 -0.0676 0.6222 +vn -0.7792 -0.1169 0.6157 +vn -0.4275 -0.0931 0.8992 +vn -0.3889 -0.2075 0.8976 +vn 0.4192 -0.2045 0.8845 +vn -0.4320 0.0249 0.9015 +vn 0.1376 -0.9903 0.0208 +vn 0.2230 -0.8487 -0.4796 +vn 0.3750 -0.8730 -0.3118 +vn 0.3558 -0.5474 -0.7575 +vn 0.7601 -0.2043 -0.6169 +vn 0.6250 -0.5899 -0.5113 +vn 0.3558 0.5619 -0.7468 +vn 0.7601 0.2162 -0.6128 +vn 0.4198 0.1988 -0.8856 +vn 0.2230 0.8578 -0.4631 +vn 0.1376 0.9897 0.0400 +vn 0.3750 0.8789 -0.2949 +vn 0.4198 -0.1816 -0.8893 +vn 0.6250 0.5997 -0.4998 +vn 0.9546 0.2082 0.2129 +vn 0.9546 -0.2123 0.2089 +vn 0.4710 0.8750 0.1125 +vn 0.7849 0.5931 0.1791 +vn 0.4710 -0.8770 0.0956 +vn 0.7849 -0.5965 0.1676 +vn 0.2123 -0.8801 0.4246 +vn 0.4303 -0.2187 0.8758 +vn 0.3538 -0.6018 0.7160 +vn 0.4303 0.2017 0.8798 +vn 0.2123 0.8718 0.4415 +vn 0.3538 0.5878 0.7275 +vn 0.0036 -0.8583 0.5132 +vn 0.0058 -0.5627 0.8266 +vn 0.0058 0.5466 0.8373 +vn 0.0069 0.1807 0.9835 +vn 0.0037 0.8482 0.5297 +vn 0.0069 -0.1997 0.9798 +vn -0.7889 0.0070 0.6145 +vn -0.7959 0.0618 0.6023 +vn -0.7809 -0.1407 0.6086 +vn 0.8373 0.0058 0.5467 +vn 0.7071 -0.0068 0.7071 +vn 0.7071 0.0068 -0.7071 +vn -0.7071 0.0068 -0.7071 +vn -0.7071 -0.0068 0.7071 +vn 0.3814 -0.0415 0.9235 +vn 0.2981 -0.1024 0.9490 +vn 0.2765 -0.1043 0.9553 +vn 0.3719 0.1045 0.9224 +vn 0.3905 -0.0244 0.9203 +vn 0.2717 0.1526 0.9502 +vn 0.2482 0.1489 0.9572 +vn 0.1720 0.1002 0.9800 +vn 0.1642 0.0879 0.9825 +vn 0.1476 0.0045 0.9890 +vn 0.1479 0.0025 0.9890 +vn 0.1873 -0.0715 0.9797 +vn 0.1949 -0.0781 0.9777 +vn -0.8654 -0.5001 -0.0323 +vn -0.5005 -0.8651 -0.0335 +vn -0.8660 -0.4989 -0.0323 +vn -0.4992 -0.8659 -0.0335 +vn -0.0007 -0.9995 -0.0324 +vn 0.0007 -0.9995 -0.0324 +vn 0.4995 -0.8658 -0.0293 +vn 0.5003 -0.8654 -0.0293 +vn 0.8658 -0.4997 -0.0250 +vn 0.8659 -0.4997 -0.0250 +vn 0.9934 -0.1132 -0.0203 +vn 0.9934 -0.1127 -0.0203 +vn 0.9936 0.1118 -0.0179 +vn 0.8841 0.4670 -0.0174 +vn 0.9936 0.1115 -0.0179 +vn 0.5005 0.8656 -0.0164 +vn 0.8831 0.4690 -0.0174 +vn 0.0007 0.9998 -0.0175 +vn 0.4992 0.8663 -0.0164 +vn -0.5867 0.8095 -0.0201 +vn -0.0007 0.9998 -0.0175 +vn -0.9357 0.3521 -0.0229 +vn -0.5854 0.8105 -0.0201 +vn -0.9978 -0.0598 -0.0282 +vn -0.9353 0.3532 -0.0228 +vn -0.9978 -0.0605 -0.0282 +vn -0.7929 -0.4205 0.4409 +vn -0.4477 -0.7797 0.4378 +vn 0.4477 0.7711 0.4528 +vn -0.0000 0.8910 0.4539 +vn -0.4477 0.7711 0.4528 +vn -0.7754 0.4434 0.4496 +vn 0.9001 0.0449 0.4334 +vn 0.8504 -0.3199 0.4178 +vn 0.8993 0.0548 0.4339 +vn -0.0000 -0.8997 0.4366 +vn -0.8954 0.1006 0.4337 +vn -0.8962 0.0947 0.4335 +vn 0.5345 -0.7241 0.4359 +vn 0.5188 -0.7350 0.4366 +vn 0.7754 0.4434 0.4496 +vn 0.8473 -0.3286 0.4174 +vn -0.8991 -0.1052 0.4248 +vn -0.8992 -0.1048 0.4248 +vn -0.7903 -0.4254 0.4410 +vn -0.0000 -0.8462 0.5329 +vn 0.4864 -0.6926 0.5327 +vn 0.5045 -0.6802 0.5318 +vn -0.7283 0.4152 0.5451 +vn -0.8437 0.0942 0.5286 +vn -0.8446 0.0874 0.5282 +vn -0.4205 -0.7335 0.5339 +vn 0.8483 0.0400 0.5280 +vn 0.8040 -0.3027 0.5117 +vn 0.8473 0.0513 0.5286 +vn -0.6006 0.5955 0.5336 +vn -0.2198 -0.8153 -0.5357 +vn -0.4205 -0.7335 0.5340 +vn -0.7421 -0.4012 0.5371 +vn 0.8005 -0.3128 0.5112 +vn -0.8488 -0.1005 0.5191 +vn -0.8489 -0.1000 0.5190 +vn -0.8294 -0.4381 -0.3468 +vn -0.7451 -0.3955 0.5370 +vn -0.1154 -0.9429 0.3126 +vn 0.1337 -0.9906 -0.0294 +vn -0.2566 -0.9662 -0.0250 +vn -0.1111 -0.4968 0.8607 +vn 0.1154 -0.9429 0.3126 +vn 0.2460 -0.5123 0.8228 +vn 0.1111 -0.4968 0.8607 +vn 0.9245 0.2144 0.3152 +vn 0.9750 0.1377 0.1746 +vn 0.9896 0.0945 0.1082 +vn -0.9601 -0.0989 -0.2615 +vn -0.9082 -0.1637 -0.3852 +vn -0.9837 -0.0512 -0.1726 +vn -0.2460 -0.5123 0.8228 +vn -0.2136 -0.9247 0.3150 +vn -0.1445 0.0045 0.9895 +vn -0.1231 0.2914 0.9486 +vn -0.2458 0.3187 0.9154 +vn -0.3293 -0.0091 0.9442 +vn 0.2136 -0.9247 0.3150 +vn 0.9333 0.2069 0.2936 +vn 0.9745 0.1360 0.1782 +vn 0.9879 0.1010 0.1179 +vn -0.9682 -0.1082 -0.2257 +vn -0.9060 -0.1974 -0.3744 +vn -0.9847 -0.0673 -0.1606 +vn -0.1195 0.8349 0.5373 +vn -0.1360 0.9906 0.0155 +vn -0.2493 0.9683 0.0141 +vn -0.1960 0.8321 0.5188 +vn -0.1164 0.9181 -0.3790 +vn -0.1146 0.4450 -0.8882 +vn -0.2464 0.4622 -0.8519 +vn -0.2088 0.9021 -0.3777 +vn -0.9333 0.2069 0.2936 +vn -0.9745 0.1360 0.1782 +vn -0.9314 0.2074 0.2990 +vn -0.9879 0.1010 0.1179 +vn 0.9682 -0.1082 -0.2257 +vn 0.9060 -0.1974 -0.3744 +vn 0.9083 -0.1973 -0.3690 +vn 0.9847 -0.0673 -0.1606 +vn -0.0000 -0.4129 -0.9108 +vn -0.0000 -0.4952 -0.8688 +vn -0.9245 0.2144 0.3152 +vn -0.9742 0.1397 0.1774 +vn -0.9313 0.2136 0.2950 +vn -0.9896 0.0945 0.1082 +vn 0.9601 -0.0989 -0.2615 +vn 0.9082 -0.1637 -0.3852 +vn 0.9061 -0.1639 -0.3901 +vn 0.9831 -0.0533 -0.1753 +vn -0.0000 -0.2676 -0.9635 +vn -0.0000 -0.6758 -0.7370 +vn -0.0000 0.4814 -0.8765 +vn -0.0000 -0.3619 -0.9322 +vn -0.0000 -0.3673 -0.9301 +vn -0.0000 -0.9467 -0.3220 +vn -0.0000 0.1991 -0.9800 +vn -0.0000 -0.2060 -0.9786 +vn 0.2566 -0.9662 -0.0250 +vn 0.2462 -0.4736 -0.8456 +vn 0.3299 0.0091 -0.9440 +vn -0.8837 -0.4675 -0.0217 +vn -0.9660 0.1205 -0.2287 +vn 0.9730 0.0636 -0.2220 +vn -0.9921 -0.1257 -0.0012 +vn -0.0001 0.0096 -1.0000 +vn -0.0000 0.0098 -1.0000 +vn -0.0003 0.0095 -1.0000 +vn 0.0001 0.0096 -1.0000 +vn 0.1145 -0.4185 -0.9010 +vn 0.0004 0.0097 -1.0000 +vn -0.0004 0.0096 -1.0000 +vn 0.0003 0.0097 -1.0000 +vn 0.1131 0.4306 -0.8954 +vn -0.9938 -0.1114 -0.0065 +vn -0.9921 -0.1257 -0.0010 +vn 0.9659 0.2588 0.0047 +vn 0.8603 0.5098 0.0061 +vn 0.0792 -0.9967 -0.0160 +vn -0.9080 -0.2753 -0.3160 +vn -0.9300 -0.1109 -0.3503 +vn 0.9343 0.2035 0.2929 +vn 0.9998 0.0169 -0.0040 +vn -0.1859 -0.9781 -0.0938 +vn 0.0983 0.9938 -0.0515 +vn -0.9841 0.1541 -0.0882 +vn 0.9998 -0.0127 0.0133 +vn -0.0000 0.0464 0.9989 +vn 0.0157 0.2484 -0.9685 +vn -0.0198 -0.9356 0.3525 +vn -0.3889 0.0940 0.9165 +vn 0.3783 0.0960 0.9207 +vn 0.9313 0.2136 0.2950 +vn -0.9061 -0.1639 -0.3901 +vn 0.9314 0.2074 0.2990 +vn -0.9083 -0.1973 -0.3690 vt 0.592751 0.548916 vt 0.578308 0.637378 vt 0.578622 0.548873 @@ -4295,7 +5483,6 @@ vt 0.306859 0.794688 vt 0.540070 0.341778 vt 0.583504 0.341714 vt 0.613965 0.683939 -vt 0.609285 0.722969 vt 0.609285 0.683388 vt 0.586312 0.341635 vt 0.202491 0.788236 @@ -4370,13 +5557,6 @@ vt 0.593003 0.477813 vt 0.592817 0.530359 vt 0.592597 0.360358 vt 0.116890 0.461562 -vt 0.116890 0.461562 -vt 0.116890 0.461562 -vt 0.116890 0.461562 -vt 0.116890 0.461562 -vt 0.116890 0.461562 -vt 0.116890 0.461562 -vt 0.116890 0.461562 vt 0.918599 0.993142 vt 0.937429 0.965601 vt 0.937429 0.981102 @@ -4389,18 +5569,6 @@ vt 0.614296 0.497468 vt 0.653876 0.690444 vt 0.614296 0.774545 vt 0.614295 0.690444 -vt 0.116890 0.461562 -vt 0.116890 0.461562 -vt 0.116890 0.461562 -vt 0.116890 0.461562 -vt 0.116890 0.461562 -vt 0.116890 0.461562 -vt 0.116890 0.461562 -vt 0.116890 0.461562 -vt 0.116890 0.461562 -vt 0.116890 0.461562 -vt 0.116890 0.461562 -vt 0.116890 0.461562 vt 0.478498 0.477464 vt 0.436204 0.443481 vt 0.478690 0.239539 @@ -4491,9 +5659,7 @@ vt 0.539880 0.341651 vt 0.578570 0.360301 vt 0.580771 0.000052 vt 0.478181 0.135049 -vt 0.116890 0.461562 vt 0.653877 0.585975 -vt 0.116890 0.461562 vt 0.603930 0.205721 vt 0.613926 0.548867 vt 0.614295 0.205596 @@ -4504,9 +5670,7 @@ vt 0.751117 0.799136 vt 0.430167 0.207444 vt 0.451421 0.360871 vt 0.478915 0.359892 -vt 0.116890 0.461562 vt 0.653876 0.657079 -vt 0.116890 0.461562 vt 0.599713 0.319824 vt 0.603840 0.477656 vt 0.614045 0.323042 @@ -4515,7 +5679,6 @@ vt 0.215017 0.716530 vt 0.211212 0.717469 vt 0.208242 0.588264 vt 0.215022 0.589505 -vt 0.380372 0.927363 vt 0.423132 0.927341 vt 0.490229 0.783288 vt 0.500394 0.793738 @@ -4594,7 +5757,6 @@ vt 0.683099 0.858255 vt 0.676578 0.864596 vt 0.676578 0.858255 vt 0.683099 0.864596 -vt 0.676578 0.870586 vt 0.994011 0.129824 vt 0.429652 0.823549 vt 0.423131 0.803145 @@ -4698,11 +5860,7 @@ vt 0.284111 0.975408 vt 0.992479 0.619180 vt 0.990020 0.595605 vt 0.991617 0.595605 -vt 0.116890 0.461562 -vt 0.116890 0.461562 -vt 0.116890 0.461562 vt 0.977701 0.619180 -vt 0.992479 0.619180 vt 0.983993 0.364999 vt 0.980026 0.367478 vt 0.979394 0.364999 @@ -4722,41 +5880,22 @@ vt 0.293925 0.790098 vt 0.280321 0.813782 vt 0.279146 0.790098 vt 0.980607 0.595605 -vt 0.977701 0.619180 -vt 0.116890 0.461562 -vt 0.116890 0.461562 -vt 0.116890 0.461562 vt 0.653151 0.846895 vt 0.635810 0.774545 vt 0.648806 0.774545 vt 0.649978 0.787906 -vt 0.116890 0.461562 -vt 0.116890 0.461562 -vt 0.116890 0.461562 vt 0.326089 0.714280 vt 0.326057 0.687635 -vt 0.326057 0.687635 -vt 0.116890 0.461562 -vt 0.116890 0.461562 vt 0.991690 0.573888 vt 0.291951 0.835730 vt 0.278926 0.835802 -vt 0.116890 0.461562 -vt 0.116890 0.461562 vt 0.513905 0.809068 vt 0.518238 0.796070 vt 0.518238 0.809068 -vt 0.116890 0.461562 -vt 0.116890 0.461562 -vt 0.116890 0.461562 -vt 0.116890 0.461562 -vt 0.116890 0.461562 vt 0.979776 0.429893 vt 0.984128 0.439677 vt 0.979796 0.439677 vt 0.983125 0.547624 -vt 0.116890 0.461562 -vt 0.991790 0.547624 vt 0.991790 0.547624 vt 0.290786 0.849082 vt 0.289621 0.862434 @@ -4781,10 +5920,6 @@ vt 0.026114 0.987759 vt 0.000000 0.981707 vt 0.325697 0.714280 vt 0.324102 0.743009 -vt 0.325697 0.714280 -vt 0.116890 0.461562 -vt 0.116890 0.461562 -vt 0.116890 0.461562 vt 0.074665 0.997135 vt 0.070333 0.992094 vt 0.074706 0.988591 @@ -4800,14 +5935,8 @@ vt 0.328769 0.929860 vt 0.430167 0.495866 vt 0.430167 0.524692 vt 0.429573 0.504448 -vt 0.571940 0.770988 vt 0.573537 0.779591 vt 0.571941 0.789237 -vt 0.116890 0.461562 -vt 0.116890 0.461562 -vt 0.116890 0.461562 -vt 0.116890 0.461562 -vt 0.116890 0.461562 vt 0.326089 0.658794 vt 0.326089 0.687635 vt 0.324107 0.658931 @@ -4816,7 +5945,6 @@ vt 0.227491 0.794465 vt 0.260253 0.838378 vt 0.587472 0.842593 vt 0.609435 0.797197 -vt 0.619928 0.798684 vt 0.630026 0.858997 vt 0.630026 0.849223 vt 0.274025 0.787601 @@ -4868,7 +5996,6 @@ vt 0.564398 0.885040 vt 0.339238 0.816319 vt 0.334905 0.825701 vt 0.334905 0.816320 -vt 0.116890 0.461562 vt 0.083329 0.992246 vt 0.078997 0.997186 vt 0.079038 0.988642 @@ -4881,9 +6008,7 @@ vt 0.971131 0.439677 vt 0.971114 0.426355 vt 0.334905 0.816319 vt 0.339238 0.788145 -vt 0.339238 0.816319 vt 0.513905 0.822065 -vt 0.518238 0.809068 vt 0.518238 0.822065 vt 0.971098 0.413033 vt 0.975100 0.367478 @@ -4897,7 +6022,6 @@ vt 0.074665 0.974521 vt 0.078997 0.974571 vt 0.083329 0.974622 vt 0.070333 0.974470 -vt 0.116890 0.461562 vt 0.216539 0.985698 vt 0.221661 0.969636 vt 0.239249 0.989889 @@ -4951,7 +6075,6 @@ vt 0.772369 0.497686 vt 0.143020 0.743452 vt 0.149846 0.756426 vt 0.139974 0.743848 -vt 0.070333 0.974470 vt 0.065658 0.998313 vt 0.065658 0.974480 vt 0.116846 0.477622 @@ -5141,7 +6264,6 @@ vt 0.118642 0.978350 vt 0.127236 0.978350 vt 0.214994 0.820151 vt 0.206401 0.852067 -vt 0.206401 0.820151 vt 0.574740 0.967422 vt 0.583322 0.971615 vt 0.574730 0.971615 @@ -5234,7 +6356,6 @@ vt 0.998748 0.239984 vt 0.987968 0.226077 vt 0.998748 0.226053 vt 0.792236 0.514013 -vt 0.751117 0.923555 vt 0.961047 0.440110 vt 0.975075 0.456106 vt 0.961047 0.456106 @@ -5318,7 +6439,6 @@ vt 0.331509 0.762352 vt 0.331509 0.765794 vt 0.329752 0.765305 vt 0.080261 0.845476 -vt 0.079009 0.840719 vt 0.339493 0.845390 vt 0.327922 0.765685 vt 0.328799 0.762352 @@ -5456,7 +6576,6 @@ vt 0.429472 0.613181 vt 0.430167 0.570250 vt 0.429517 0.594689 vt 0.429517 0.570249 -vt 0.429473 0.551821 vt 0.428663 0.550227 vt 0.429312 0.550227 vt 0.429655 0.526273 @@ -5532,7 +6651,6 @@ vt 0.513905 0.830416 vt 0.429301 0.876495 vt 0.423132 0.841456 vt 0.175808 0.883270 -vt 0.079009 0.828671 vt 0.478997 0.683388 vt 0.334905 0.825758 vt 0.214762 0.760239 @@ -5604,25 +6722,19 @@ vt 0.177412 0.997717 vt 0.288711 0.975408 vt 0.288711 0.996052 vt 0.274913 0.975408 -vt 0.116890 0.461562 vt 0.984953 0.367478 vt 0.079009 0.797630 vt 0.987357 0.573888 vt 0.984096 0.413033 vt 0.293346 0.813711 -vt 0.116890 0.461562 vt 0.324102 0.714280 vt 0.980680 0.573888 vt 0.513905 0.796070 -vt 0.116890 0.461562 vt 0.978793 0.547624 vt 0.270333 0.836739 -vt 0.206401 0.852067 vt 0.026114 0.958754 vt 0.029297 0.973844 vt 0.026114 0.964797 -vt 0.609435 0.797197 -vt 0.250236 0.839796 vt 0.325697 0.743098 vt 0.070333 0.997085 vt 0.083341 0.821764 @@ -5630,9 +6742,6 @@ vt 0.206401 0.902711 vt 0.215003 0.904696 vt 0.338182 0.951546 vt 0.573537 0.770988 -vt 0.116890 0.461562 -vt 0.116890 0.461562 -vt 0.326089 0.687635 vt 0.215154 0.793962 vt 0.594203 0.867619 vt 0.215470 0.768719 @@ -5648,7 +6757,6 @@ vt 0.339238 0.825699 vt 0.083329 0.997237 vt 0.975463 0.439677 vt 0.334905 0.788145 -vt 0.513905 0.809068 vt 0.215154 0.976682 vt 0.232180 0.962005 vt 0.751117 0.978285 @@ -5673,7 +6781,6 @@ vt 0.175604 0.966579 vt 0.116890 0.490144 vt 0.600517 0.967422 vt 0.086470 0.741176 -vt 0.214994 0.820151 vt 0.144423 0.978351 vt 0.513905 0.845374 vt 0.710468 0.730573 @@ -5728,7 +6835,6 @@ vt 0.676578 0.993443 vt 0.337791 0.832805 vt 0.206401 0.915149 vt 0.609285 0.772595 -vt 0.423131 0.870065 vt 0.646558 0.880433 vt 0.513905 0.829630 vt 0.749221 0.845709 @@ -5861,24 +6967,17 @@ vt 0.929730 0.437061 vt 0.923236 0.438182 vt 0.923240 0.437032 vt 0.665501 0.765850 -vt 0.657628 0.764388 -vt 0.665663 0.764313 vt 0.946951 0.724606 vt 0.942312 0.723150 -vt 0.947219 0.723063 vt 0.923202 0.452684 vt 0.916483 0.454234 vt 0.916204 0.452684 vt 0.969859 0.268470 vt 0.974506 0.266914 vt 0.974975 0.268469 -vt 0.671107 0.764301 vt 0.671173 0.765839 vt 0.953948 0.724525 -vt 0.953936 0.722986 vt 0.190207 0.729927 -vt 0.186103 0.728414 -vt 0.190313 0.728393 vt 0.171617 0.830018 vt 0.158550 0.824066 vt 0.159660 0.822151 @@ -5891,32 +6990,21 @@ vt 0.157439 0.825981 vt 0.176934 0.802917 vt 0.155869 0.780630 vt 0.166196 0.770646 -vt 0.960661 0.722939 vt 0.960956 0.724478 vt 0.162041 0.818046 vt 0.175020 0.824148 vt 0.199682 0.744456 vt 0.204955 0.730046 vt 0.204704 0.744552 -vt 0.923202 0.452684 vt 0.916382 0.438182 -vt 0.923236 0.438182 vt 0.180948 0.744552 vt 0.185821 0.729949 vt 0.185966 0.744456 vt 0.671131 0.780347 -vt 0.665501 0.765850 -vt 0.671173 0.765839 vt 0.954082 0.739033 -vt 0.946951 0.724606 -vt 0.953948 0.724525 -vt 0.190207 0.729927 vt 0.190261 0.744434 vt 0.960944 0.738985 -vt 0.960956 0.724478 -vt 0.675922 0.780365 vt 0.681372 0.765929 -vt 0.681119 0.780436 vt 0.930098 0.438213 vt 0.088889 0.787728 vt 0.101539 0.793128 @@ -5964,7 +7052,6 @@ vt 0.190401 0.745605 vt 0.961047 0.782675 vt 0.960584 0.740150 vt 0.675620 0.824054 -vt 0.680488 0.781597 vt 0.680592 0.824121 vt 0.365901 0.951373 vt 0.365974 0.993900 @@ -6137,9 +7224,6 @@ vt 0.485370 0.842440 vt 0.513904 0.835563 vt 0.194441 0.729930 vt 0.194408 0.744437 -vt 0.681372 0.765929 -vt 0.675801 0.764319 -vt 0.680895 0.764388 vt 0.194565 0.539250 vt 0.194376 0.728395 vt 0.194879 0.533706 @@ -6160,7 +7244,6 @@ vt 0.392940 0.803050 vt 0.201519 0.461589 vt 0.200358 0.539271 vt 0.962861 0.268406 -vt 0.969596 0.266915 vt 0.440496 0.807421 vt 0.199827 0.729949 vt 0.484209 0.838647 @@ -6279,8 +7362,6 @@ vt 0.675572 0.781530 vt 0.460171 0.880794 vt 0.676065 0.765857 vt 0.481975 0.852570 -vt 0.194441 0.729930 -vt 0.194376 0.728395 vt 0.676658 0.575169 vt 0.677941 0.569638 vt 0.787951 0.497050 @@ -6435,7 +7516,6 @@ vt 0.176233 0.851937 vt 0.170142 0.866881 vt 0.170142 0.851735 vt 0.992872 0.129838 -vt 0.987671 0.145580 vt 0.987671 0.129893 vt 0.998628 0.145531 vt 0.998628 0.129844 @@ -6467,7 +7547,6 @@ vt 0.995852 0.843418 vt 0.999538 0.103036 vt 0.991430 0.102738 vt 0.995779 0.102738 -vt 0.985780 0.748635 vt 0.993888 0.748339 vt 0.997645 0.748635 vt 0.989169 0.344362 @@ -6506,22 +7585,15 @@ vt 0.325698 0.766766 vt 0.322648 0.762218 vt 0.325698 0.762047 vt 0.385194 0.461623 -vt 0.418071 0.436698 vt 0.430166 0.456164 vt 0.261800 0.450042 -vt 0.331002 0.439865 vt 0.332693 0.459710 -vt 0.226007 0.422400 -vt 0.267675 0.431229 vt 0.046677 0.011642 -vt 0.116223 0.024813 -vt 0.053960 0.033329 vt 0.563909 0.849501 vt 0.518666 0.797791 vt 0.563872 0.797623 vt 0.563954 0.728457 vt 0.518867 0.683556 -vt 0.564074 0.683388 vt 0.518748 0.728625 vt 0.564074 0.894829 vt 0.518703 0.849669 @@ -6531,7 +7603,6 @@ vt 0.124631 0.991251 vt 0.206136 0.942946 vt 0.215039 0.938320 vt 0.213269 0.943044 -vt 0.206136 0.928376 vt 0.215039 0.933120 vt 0.206144 0.932998 vt 0.965577 0.984105 @@ -6578,7 +7649,6 @@ vt 0.419690 0.653932 vt 0.429418 0.765000 vt 0.419690 0.764790 vt 0.161838 0.966526 -vt 0.170142 0.851735 vt 0.170142 0.966465 vt 0.152648 0.851757 vt 0.152648 0.966486 @@ -6590,12 +7660,8 @@ vt 0.292378 0.862434 vt 0.964537 0.897609 vt 0.964537 0.782884 vt 0.117617 0.001940 -vt 0.162332 0.023110 vt 0.170151 0.000000 -vt 0.201830 0.027882 -vt 0.012993 0.042023 vt 0.000000 0.021548 -vt 0.377898 0.441574 vt 0.981779 0.879791 vt 0.995498 0.893344 vt 0.981129 0.893313 @@ -6655,63 +7721,14 @@ vt 0.459084 0.953123 vt 0.475016 0.880794 vt 0.467766 0.880812 vt 0.474808 0.952991 -vt 0.200358 0.539271 -vt 0.208241 0.533854 -vt 0.205875 0.539375 vt 0.957756 0.077634 -vt 0.965368 0.072295 -vt 0.965292 0.077756 vt 0.179780 0.539375 -vt 0.183925 0.533731 -vt 0.185292 0.539271 -vt 0.671396 0.575149 -vt 0.664516 0.569630 -vt 0.671724 0.569615 vt 0.944672 0.533923 -vt 0.952142 0.528317 -vt 0.952199 0.533837 -vt 0.189499 0.533702 -vt 0.190010 0.539247 -vt 0.959737 0.533785 -vt 0.961047 0.528255 -vt 0.676658 0.575169 -vt 0.684687 0.569730 -vt 0.682367 0.575246 -vt 0.972821 0.077826 -vt 0.974262 0.072377 vt 0.656289 0.575246 -vt 0.665295 0.575161 -vt 0.194879 0.533706 -vt 0.194565 0.539250 -vt 0.201724 0.533731 -vt 0.677941 0.569638 -vt 0.954094 0.740195 -vt 0.960944 0.738985 -vt 0.960584 0.740150 -vt 0.186339 0.745625 -vt 0.190261 0.744434 -vt 0.190401 0.745605 vt 0.947229 0.739111 -vt 0.954082 0.739033 -vt 0.671042 0.781513 -vt 0.665577 0.780358 -vt 0.671131 0.780347 vt 0.181592 0.745715 -vt 0.185966 0.744456 -vt 0.916382 0.438182 vt 0.916759 0.437032 -vt 0.204060 0.745715 -vt 0.199682 0.744456 -vt 0.204704 0.744552 -vt 0.658035 0.781597 -vt 0.665789 0.781524 -vt 0.194408 0.744437 vt 0.194322 0.745607 -vt 0.199545 0.728414 -vt 0.199827 0.729949 -vt 0.199310 0.745625 -vt 0.675572 0.781530 -vt 0.676065 0.765857 vt 0.141488 0.916338 vt 0.129703 0.890961 vt 0.152618 0.890921 @@ -6720,11 +7737,8 @@ vt 0.129782 0.916338 vt 0.328679 0.967761 vt 0.317516 0.966177 vt 0.297681 0.502185 -vt 0.274879 0.547165 vt 0.278294 0.488857 vt 0.341908 0.645403 -vt 0.312646 0.588881 -vt 0.335063 0.581322 vt 0.152648 0.932747 vt 0.152618 0.917128 vt 0.305669 0.955095 @@ -6736,11 +7750,6 @@ vt 0.294797 0.955539 vt 0.118671 0.932747 vt 0.118641 0.917128 vt 0.297700 0.571531 -vt 0.272885 0.625991 -vt 0.274052 0.564095 -vt 0.333447 0.564346 -vt 0.307032 0.511863 -vt 0.331258 0.503428 vt 0.305802 0.931584 vt 0.263870 0.897599 vt 0.263756 0.863621 @@ -6752,14 +7761,6 @@ vt 0.734834 0.984075 vt 0.723142 0.984071 vt 0.711860 0.973826 vt 0.711991 0.986279 -vt 0.380341 0.549012 -vt 0.355668 0.494867 -vt 0.380224 0.486206 -vt 0.356825 0.556726 -vt 0.250681 0.556462 -vt 0.224450 0.608577 -vt 0.227657 0.548582 -vt 0.248483 0.617416 vt 0.984170 0.344362 vt 0.977558 0.279463 vt 0.984769 0.279463 @@ -6775,37 +7776,27 @@ vt 0.555518 0.917404 vt 0.970977 0.344362 vt 0.977574 0.344362 vt 0.380316 0.618326 -vt 0.357650 0.573647 -vt 0.380372 0.565879 vt 0.361050 0.631907 vt 0.259155 0.475351 -vt 0.230059 0.531546 vt 0.240328 0.461623 -vt 0.252299 0.539476 vt 0.555437 0.904387 vt 0.552249 0.894998 vt 0.557081 0.894998 vt 0.970347 0.279463 vt 0.977456 0.268470 -vt 0.977558 0.279463 vt 0.977701 0.694015 vt 0.990998 0.701278 vt 0.977701 0.701298 vt 0.547674 0.917404 -vt 0.555518 0.917404 -vt 0.571207 0.917404 vt 0.563383 0.904387 vt 0.571328 0.904387 -vt 0.563362 0.917404 vt 0.118641 0.890922 vt 0.977701 0.715865 vt 0.990998 0.708623 vt 0.990998 0.715969 vt 0.977701 0.708581 -vt 0.991980 0.279463 vt 0.984739 0.268470 vt 0.992022 0.268470 -vt 0.984769 0.279463 vt 0.118671 0.851736 vt 0.745835 0.948432 vt 0.745800 0.961230 @@ -6820,22 +7811,12 @@ vt 0.942794 0.456264 vt 0.177768 0.461709 vt 0.956464 0.072151 vt 0.653877 0.569730 -vt 0.957756 0.077634 -vt 0.179780 0.539375 -vt 0.944672 0.533923 -vt 0.656289 0.575246 -vt 0.930098 0.438213 vt 0.657130 0.765929 vt 0.941837 0.724697 vt 0.923200 0.454234 -vt 0.185821 0.729949 -vt 0.916204 0.452684 vt 0.180697 0.730046 -vt 0.947229 0.739111 vt 0.930209 0.452717 -vt 0.657130 0.765929 vt 0.378946 0.993900 -vt 0.181592 0.745715 vt 0.947929 0.782795 vt 0.177412 0.960627 vt 0.603229 0.905585 @@ -6872,9 +7853,7 @@ vt 0.419690 0.778932 vt 0.904258 0.000016 vt 0.743763 0.838827 vt 0.985780 0.723884 -vt 0.194322 0.745607 vt 0.194833 0.461565 -vt 0.962879 0.266853 vt 0.510690 0.823504 vt 0.487822 0.947429 vt 0.428663 0.461780 @@ -6896,7 +7875,6 @@ vt 0.133464 0.871395 vt 0.252085 0.934792 vt 0.297732 0.502307 vt 0.301507 0.582836 -vt 0.297700 0.571531 vt 0.328639 0.929828 vt 0.297731 0.658945 vt 0.867621 0.456105 @@ -6924,7 +7902,6 @@ vt 0.518867 0.894998 vt 0.213269 0.928474 vt 0.129813 0.996170 vt 0.916203 0.452545 -vt 0.129813 0.978351 vt 0.207904 0.977190 vt 0.981129 0.897520 vt 0.429418 0.654142 @@ -6933,7 +7910,6 @@ vt 0.274913 0.974696 vt 0.215153 0.005436 vt 0.996148 0.879822 vt 0.562151 0.996988 -vt 0.562151 0.970144 vt 0.241092 0.971372 vt 0.241092 0.998218 vt 0.255557 0.971368 @@ -6944,3704 +7920,2489 @@ vt 0.487695 0.880950 vt 0.990700 0.907841 vt 0.964358 0.980046 vt 0.976544 0.000026 -vt 0.956464 0.072151 -vt 0.177412 0.533854 -vt 0.943249 0.528419 -vt 0.653877 0.569730 -vt 0.947613 0.740270 -vt 0.180948 0.744552 -vt 0.657378 0.780436 vt 0.129804 0.930688 -vt 0.297731 0.554659 vt 0.322920 0.658794 -vt 0.297584 0.634355 -vt 0.310241 0.571848 -vt 0.294668 0.929828 vt 0.274913 0.924289 -vt 0.547674 0.917404 -vt 0.970347 0.279463 vt 0.547492 0.904387 -vt 0.970173 0.268470 vt 0.990998 0.693932 -vn -1.0000 0.0000 0.0000 -vn 0.0000 -0.9871 -0.1600 -vn 1.0000 0.0000 0.0000 -vn -0.8425 0.0019 0.5387 -vn 0.0000 -1.0000 0.0097 -vn 0.0000 -0.2819 0.9594 -vn 0.0000 -0.0289 0.9996 -vn -0.9934 -0.1149 0.0011 -vn 0.0000 -0.9775 0.2111 -vn 0.0000 -0.0316 -0.9995 -vn 0.9736 0.2281 -0.0100 -vn 0.9733 0.2293 -0.0098 -vn 0.9731 0.2300 -0.0089 -vn 0.0000 -0.7392 0.6735 -vn 0.0000 -0.0097 -1.0000 -vn 0.0000 -0.9731 -0.2305 -vn 0.0000 0.5530 -0.8332 -vn 0.0000 0.9994 -0.0348 -vn -0.9995 -0.0003 -0.0304 -vn 0.9995 -0.0003 -0.0304 -vn 0.9284 -0.0036 -0.3715 -vn -0.9284 -0.0036 -0.3714 -vn 0.0000 1.0000 0.0012 -vn 0.0000 -0.5367 -0.8438 -vn 0.0000 0.0052 1.0000 -vn -0.8422 0.0034 0.5392 -vn -0.8410 0.0028 0.5410 -vn -0.8404 0.0047 0.5420 -vn 0.0000 -0.6972 -0.7169 -vn 0.8420 0.0058 0.5394 -vn 0.0000 0.5419 -0.8404 -vn 0.0000 0.5394 -0.8421 -vn 0.9934 -0.1149 0.0011 -vn 0.9934 -0.1149 0.0003 -vn 0.7671 -0.4112 0.4924 -vn -0.9934 -0.1149 0.0003 -vn 0.0000 -0.6074 0.7944 -vn -0.7671 -0.4112 0.4924 -vn 0.8425 0.0036 0.5387 -vn 0.0000 -0.0067 -1.0000 -vn -0.8425 0.0036 0.5387 -vn 0.0000 0.0067 1.0000 -vn 0.0000 0.0035 1.0000 -vn 0.8425 0.0019 0.5387 -vn 0.0000 -0.0035 -1.0000 -vn -0.9966 0.0818 -0.0008 -vn 0.0000 0.5586 -0.8294 -vn 0.9966 0.0818 -0.0008 -vn 0.9966 0.0818 -0.0002 -vn 0.8023 0.3076 0.5116 -vn -0.9966 0.0818 -0.0002 -vn 0.0000 0.4825 0.8759 -vn -0.8023 0.3076 0.5116 -vn 0.0000 0.0000 0.0000 -vn 0.0000 1.0000 -0.0047 -vn 0.0000 1.0000 -0.0097 -vn 0.0000 1.0000 -0.0027 -vn 0.3535 -0.1464 -0.9239 -vn 0.3827 0.0000 -0.9239 -vn 0.0000 0.0000 -0.9239 -vn -0.3535 0.1464 -0.9239 -vn -0.3827 0.0000 -0.9239 -vn 0.0035 0.9829 -0.1840 -vn 0.0036 0.9823 -0.1873 -vn -0.0036 0.9823 -0.1873 -vn 0.0030 0.9811 -0.1935 -vn -0.0015 0.9820 -0.1887 -vn -0.0019 0.9820 -0.1890 -vn 0.0000 0.9790 -0.2038 -vn 0.0000 0.9991 -0.0429 -vn 0.0000 -0.9991 0.0429 -vn 0.0000 0.0000 1.0000 -vn 0.8418 0.0058 0.5397 -vn 0.8407 0.0065 0.5415 -vn 0.8425 0.0039 0.5387 -vn -0.8425 0.0028 0.5387 -vn 0.9993 -0.0327 -0.0153 -vn -0.9284 -0.0036 -0.3715 -vn 0.8390 0.0080 0.5441 -vn 0.8386 0.0058 0.5447 -vn -0.8415 0.0028 0.5403 -vn -0.8405 0.0014 0.5417 -vn 0.0147 0.9816 -0.1903 -vn 0.0124 0.9821 -0.1881 -vn 0.0156 0.9824 -0.1861 -vn 0.0474 0.9810 -0.1879 -vn 0.9725 0.2329 -0.0100 -vn 0.9959 -0.0009 -0.0906 -vn 0.9983 0.0006 0.0585 -vn -0.0348 0.9991 0.0262 -vn 0.0000 0.0097 1.0000 -vn -0.0479 0.3613 0.9312 -vn 0.9999 0.0108 -0.0001 -vn 0.9993 -0.0321 0.0206 -vn 0.9994 -0.0321 0.0163 -vn 0.9743 0.2251 -0.0097 -vn 0.9741 0.2258 -0.0106 -vn 0.9745 0.2242 -0.0022 -vn 0.9995 -0.0315 0.0025 -vn 0.9996 -0.0272 0.0022 -vn 0.0000 0.9970 -0.0775 -vn 0.9140 0.4057 0.0092 -vn 0.0250 0.3883 -0.9212 -vn 0.0346 0.9719 -0.2330 -vn -0.9998 0.0078 -0.0165 -vn 0.0000 0.0044 1.0000 -vn -0.9126 0.0018 0.4089 -vn 0.8819 0.0021 0.4715 -vn 0.0000 -0.0022 -1.0000 -vn 0.0000 0.0310 -0.9995 -vn 0.0000 0.9999 -0.0131 -vn 0.0000 0.9999 -0.0122 -vn 0.0000 0.0343 0.9994 -vn 0.0000 0.0082 1.0000 -vn 0.0000 -0.0089 1.0000 -vn 0.0000 -1.0000 -0.0048 -vn 0.0000 -0.9993 0.0374 -vn 0.0000 -1.0000 -0.0066 -vn 0.0000 -0.9981 0.0618 -vn -0.0000 0.2181 -0.9759 -vn 1.0000 -0.0026 -0.0020 -vn 0.9999 -0.0100 0.0002 -vn 1.0000 0.0047 0.0047 -vn 1.0000 0.0029 -0.0053 -vn -1.0000 0.0029 -0.0053 -vn -1.0000 -0.0026 -0.0020 -vn -0.9999 -0.0100 0.0002 -vn -1.0000 0.0022 -0.0001 -vn -1.0000 -0.0063 0.0000 -vn 0.0000 0.0413 -0.9991 -vn 0.0000 0.2948 0.9556 -vn 0.0000 0.8943 -0.4475 -vn 0.0000 -0.0733 -0.9973 -vn 0.0000 0.0733 0.9973 -vn -0.9926 0.1211 -0.0012 -vn 0.9993 0.0377 -0.0004 -vn 0.0000 0.0342 0.9994 -vn 0.0000 0.0000 -0.9093 -vn 0.1592 0.3844 -0.9093 -vn -0.9885 -0.0111 -0.1510 -vn 0.0000 0.1701 0.9854 -vn 0.0000 -0.0970 -0.9953 -vn 0.9979 -0.0402 0.0501 -vn -0.2738 0.4318 -0.8594 -vn 0.0000 0.9786 -0.2056 -vn 0.0000 -0.9951 -0.0988 -vn -0.4239 -0.9013 -0.0895 -vn 0.1710 -0.9768 -0.1288 -vn 0.0000 0.9914 0.1307 -vn -0.9992 -0.0394 -0.0052 -vn 0.9996 -0.0272 -0.0036 -vn 0.8988 -0.0042 -0.4384 -vn -0.7896 -0.0059 -0.6136 -vn 1.0000 0.0001 0.0091 -vn -1.0000 0.0000 0.0021 -vn 0.9994 -0.0346 0.0003 -vn -1.0000 -0.0079 0.0001 -vn -0.9985 0.0541 -0.0005 -vn 0.9992 -0.0342 0.0218 -vn 0.0132 0.5967 -0.8023 -vn 0.0162 -0.0611 -0.9980 -vn 0.0775 -0.9969 0.0096 -vn 0.0000 -0.2860 -0.9582 -vn -0.9999 -0.0126 -0.0062 -vn -0.9999 -0.0125 0.0001 -vn -0.9999 -0.0124 0.0073 -vn 0.9346 -0.3556 0.0034 -vn -0.0326 -0.5854 0.8101 -vn -0.0116 0.7094 0.7048 -vn 0.0000 -0.9914 -0.1307 -vn 0.0000 0.9998 -0.0199 -vn 0.2738 0.4318 -0.8594 -vn 0.1333 0.0532 0.9896 -vn 0.0000 0.0537 0.9986 -vn -0.1672 0.0957 0.9813 -vn 0.0000 0.9999 -0.0153 -vn 0.0000 0.0970 0.9953 -vn 0.0000 0.7042 -0.7100 -vn 0.0000 1.0000 -0.0099 -vn 0.0824 0.7771 0.6240 -vn -0.9465 0.0372 -0.3205 -vn 0.0000 0.9968 0.0797 -vn 0.0000 -0.7679 -0.6406 -vn 0.9465 0.0372 -0.3205 -vn 0.0000 0.9936 0.1129 -vn -0.9990 -0.0051 0.0442 -vn 0.0000 -1.0000 0.0055 -vn 0.9990 -0.0051 0.0442 -vn 0.0000 -0.9999 0.0166 -vn 0.0000 -0.6981 0.7160 -vn 0.0000 0.9999 -0.0166 -vn 0.0000 0.0198 0.9998 -vn 0.0000 0.7070 -0.7072 -vn 0.0000 -0.0224 -0.9998 -vn 0.0000 1.0000 -0.0046 -vn 0.0000 -0.9973 -0.0733 -vn 0.0000 0.6259 0.7799 -vn 0.0000 -0.9931 -0.1170 -vn 0.0000 -1.0000 0.0046 -vn 0.0000 0.9978 0.0670 -vn 0.0000 -0.0198 -0.9998 -vn 0.0000 -0.9998 0.0176 -vn -0.0014 1.0000 -0.0096 -vn 0.0000 0.3280 -0.9447 -vn 0.0000 -1.0000 0.0098 -vn 0.0000 0.9999 -0.0170 -vn -0.0013 -0.9998 0.0216 -vn 0.0000 -0.0577 -0.9983 -vn 0.0000 0.9889 0.1484 -vn 0.0000 0.7724 0.6352 -vn 0.0021 0.3616 -0.9323 -vn 0.0038 0.3609 -0.9326 -vn 0.0042 0.3592 -0.9332 -vn 0.0000 0.3176 -0.9482 -vn 0.0016 0.3559 -0.9345 -vn 0.0000 0.3568 -0.9342 -vn 0.0005 0.3635 -0.9316 -vn -0.0018 0.3617 -0.9323 -vn -0.0002 0.3636 -0.9316 -vn 0.0000 -0.9998 0.0210 -vn 0.0000 -0.9998 0.0217 -vn -0.0020 0.9999 -0.0166 -vn 0.0000 1.0000 -0.0096 -vn 0.0000 -1.0000 -0.0038 -vn -0.0312 -0.9995 -0.0038 -vn -0.0195 -0.9929 -0.1170 -vn 0.1252 0.6210 0.7738 -vn 0.0000 0.9999 0.0152 -vn 0.0000 0.7797 0.6261 -vn -0.0014 1.0000 -0.0097 -vn 0.0000 0.4355 0.9002 -vn 0.0000 -0.0224 -0.9997 -vn 0.9465 0.0372 -0.3204 -vn 1.0000 0.0052 -0.0052 -vn 0.0000 0.1871 -0.9823 -vn 0.0000 0.9700 -0.2429 -vn -0.9659 0.2585 0.0111 -vn 0.9813 0.1907 -0.0275 -vn 0.0000 0.1886 0.9820 -vn -0.5087 0.8556 0.0962 -vn -0.9507 0.2307 0.2071 -vn 0.9239 0.3803 0.0427 -vn 0.4938 0.8655 -0.0838 -vn -0.4938 0.8655 -0.0838 -vn -0.8507 0.5109 -0.1237 -vn 0.9067 0.3518 0.2326 -vn 0.2383 0.8589 0.4533 -vn 0.3827 -0.9181 -0.1032 -vn 0.9685 -0.2475 -0.0278 -vn -0.9243 -0.3038 -0.2310 -vn -0.0998 -0.9949 -0.0144 -vn -0.2646 0.6033 -0.7524 -vn -0.6990 0.3607 -0.6175 -vn 0.6810 0.3558 -0.6400 -vn 0.2608 0.5979 -0.7580 -vn -0.2436 0.0146 -0.9698 -vn 0.2436 -0.0146 0.9698 -vn 0.1833 -0.0750 0.9802 -vn 0.1695 -0.0057 0.9855 -vn 0.2016 0.0541 0.9780 -vn 0.2752 0.0799 0.9580 -vn 0.3604 0.0277 0.9324 -vn 0.3529 -0.0877 0.9316 -vn 0.2532 -0.1242 0.9594 -vn 0.9811 0.1936 -0.0019 -vn 0.9914 -0.1311 0.0013 -vn 0.9980 -0.0635 0.0006 -vn -0.9788 -0.2046 0.0020 -vn -0.9914 0.1311 -0.0013 -vn -0.9980 0.0635 -0.0006 -vn -0.9914 0.1312 -0.0013 -vn -0.0094 0.0215 0.9997 -vn 0.6219 -0.7831 0.0076 -vn 0.1312 0.9913 -0.0096 -vn 0.6218 -0.7831 0.0076 -vn 0.1311 0.9913 -0.0096 -vn 0.0001 0.0097 1.0000 -vn -0.0022 -0.0263 -0.9997 -vn -0.0021 -0.0263 -0.9997 -vn -0.1311 -0.9913 0.0096 -vn 0.1034 0.7877 0.6073 -vn -0.0001 -0.0097 -1.0000 -vn 0.0948 0.7102 -0.6976 -vn 0.9736 0.2282 -0.0013 -vn 0.9734 0.2291 -0.0022 -vn -0.8390 0.0080 0.5441 -vn -0.8386 0.0058 0.5447 -vn 0.8425 0.0028 0.5387 -vn -0.0147 0.9816 -0.1903 -vn -0.0156 0.9824 -0.1861 -vn -0.0124 0.9821 -0.1881 -vn -0.0474 0.9810 -0.1879 -vn 0.0033 0.9813 -0.1922 -vn -0.0031 0.9812 -0.1932 -vn 0.0020 0.9820 -0.1890 -vn -0.9701 0.2425 0.0000 -vn 0.8415 0.0028 0.5403 -vn 0.8405 0.0014 0.5418 -vn -0.8420 0.0058 0.5394 -vn 0.9995 -0.0327 0.0003 -vn 0.8422 0.0034 0.5392 -vn 0.8404 0.0047 0.5420 -vn 0.8410 0.0028 0.5410 -vn -0.8418 0.0058 0.5397 -vn -0.8425 0.0039 0.5387 -vn -0.8407 0.0065 0.5415 -vn -0.0035 0.9829 -0.1840 -vn 0.9846 0.1294 -0.1179 -vn 0.9995 -0.0315 0.0003 -vn 0.9749 0.2224 -0.0095 -vn 0.9997 0.0096 -0.0213 -vn 0.0000 0.9980 0.0633 -vn -0.0651 0.3722 0.9259 -vn 0.9999 0.0046 0.0124 -vn 0.9999 0.0027 0.0144 -vn 0.9996 -0.0273 0.0004 -vn 0.9995 -0.0316 0.0003 -vn 0.9738 0.2275 -0.0022 -vn 0.9740 0.2267 -0.0032 -vn 0.9735 0.2286 -0.0022 -vn 0.9996 -0.0273 0.0003 -vn 0.9999 0.0046 0.0119 -vn 0.9999 0.0025 0.0101 -vn -0.0192 0.9943 -0.1046 -vn 0.8869 0.4537 -0.0873 -vn -0.0385 0.4262 -0.9038 -vn 0.0790 0.9958 -0.0465 -vn -0.9850 0.0898 0.1477 -vn 0.9999 -0.0100 0.0001 -vn 1.0000 -0.0001 -0.0017 -vn 1.0000 -0.0000 -0.0059 -vn 1.0000 0.0046 -0.0060 -vn 0.9999 0.0005 -0.0148 -vn 1.0000 -0.0025 -0.0081 -vn 0.9999 -0.0035 -0.0126 -vn 0.9999 -0.0101 0.0001 -vn 1.0000 -0.0008 0.0030 -vn 1.0000 -0.0005 0.0056 -vn 1.0000 0.0019 0.0042 -vn 1.0000 0.0000 0.0024 -vn 1.0000 -0.0001 0.0023 -vn 1.0000 -0.0098 0.0001 -vn 1.0000 -0.0013 0.0011 -vn 1.0000 0.0098 0.0001 -vn 1.0000 0.0022 -0.0001 -vn 1.0000 -0.0004 0.0020 -vn 1.0000 -0.0030 0.0018 -vn 1.0000 -0.0006 0.0052 -vn 1.0000 0.0008 0.0030 -vn 0.9999 0.0034 -0.0131 -vn 0.9999 -0.0012 -0.0136 -vn 0.9998 0.0029 -0.0177 -vn 1.0000 -0.0041 -0.0081 -vn 1.0000 0.0001 -0.0061 -vn 1.0000 0.0024 0.0000 -vn 1.0000 0.0098 -0.0004 -vn -0.9998 0.0029 -0.0177 -vn -0.9999 -0.0012 -0.0136 -vn -0.9999 0.0034 -0.0131 -vn -1.0000 0.0098 -0.0004 -vn -1.0000 0.0001 -0.0061 -vn -1.0000 -0.0041 -0.0081 -vn -1.0000 0.0024 0.0000 -vn -0.9999 -0.0100 0.0001 -vn -0.9999 -0.0035 -0.0126 -vn -1.0000 -0.0025 -0.0081 -vn -0.9999 0.0005 -0.0148 -vn -0.9999 -0.0101 0.0001 -vn -1.0000 -0.0000 -0.0059 -vn -1.0000 0.0046 -0.0060 -vn -1.0000 -0.0001 -0.0017 -vn -1.0000 -0.0005 0.0056 -vn -1.0000 -0.0008 0.0030 -vn -1.0000 0.0018 0.0041 -vn -1.0000 0.0000 0.0024 -vn -1.0000 -0.0013 0.0011 -vn -1.0000 -0.0001 0.0023 -vn -1.0000 -0.0098 0.0001 -vn -1.0000 0.0098 0.0001 -vn -1.0000 0.0008 0.0030 -vn -1.0000 -0.0006 0.0051 -vn -1.0000 0.0047 0.0047 -vn -1.0000 -0.0004 0.0020 -vn -1.0000 -0.0030 0.0018 -vn -1.0000 -0.0045 -0.0044 -vn -1.0000 -0.0071 0.0001 -vn 0.0000 0.8943 -0.4474 -vn -0.9880 0.0321 -0.1513 -vn 0.0000 -0.4489 -0.8936 -vn 0.1672 0.0957 0.9813 -vn -0.9939 -0.0813 -0.0752 -vn -0.9884 -0.0147 -0.1510 -vn 0.9980 -0.0569 0.0287 -vn -0.9968 -0.0499 0.0623 -vn -0.9969 -0.0707 0.0356 -vn 0.0000 0.6252 -0.7804 -vn -0.9982 -0.0540 0.0249 -vn 0.9990 -0.0393 0.0221 -vn -0.9996 0.0172 0.0213 -vn 1.0000 0.0043 -0.0000 -vn 0.0000 0.5989 -0.8008 -vn 0.0164 -0.0607 -0.9980 -vn 0.0165 0.0076 -0.9998 -vn 0.0000 -0.2861 -0.9582 -vn -0.9999 -0.0115 -0.0061 -vn -0.0597 -0.5894 0.8056 -vn -0.0549 0.7394 0.6710 -vn 0.0003 0.9998 -0.0198 -vn -0.1333 0.0532 0.9896 -vn 0.4017 0.5726 -0.7147 -vn -0.4017 0.5726 -0.7147 -vn 0.0014 1.0000 -0.0097 -vn 0.0000 0.7946 0.6071 -vn -0.9465 0.0372 -0.3204 -vn -0.0016 0.3559 -0.9345 -vn -0.0021 0.3616 -0.9323 -vn -0.0042 0.3593 -0.9332 -vn -0.0038 0.3609 -0.9326 -vn -0.0008 0.3634 -0.9316 -vn 0.0019 0.3621 -0.9321 -vn -0.0012 0.3631 -0.9317 -vn 0.0013 -0.9998 0.0216 -vn 0.0014 1.0000 -0.0096 -vn 0.0111 0.9979 0.0646 -vn 0.0000 0.2996 0.9541 -vn 0.0000 1.0000 -0.0100 -vn 0.9976 0.0689 -0.0093 -vn 0.6286 -0.7775 -0.0165 -vn 1.0000 0.0053 -0.0073 -vn 1.0000 -0.0002 -0.0074 -vn 1.0000 0.0075 -0.0000 -vn 1.0000 0.0012 0.0038 -vn 1.0000 0.0079 0.0005 -vn -0.9974 0.0718 -0.0091 -vn -0.1496 0.9886 0.0161 -vn -0.9659 0.2586 0.0110 -vn 0.9659 0.2586 0.0111 -vn 0.0803 0.3893 0.9176 -vn -0.3756 0.8796 0.2920 -vn -0.9239 0.3803 0.0427 -vn 0.9239 0.3803 0.0428 -vn 0.3827 0.9181 0.1032 -vn -0.2524 0.9247 0.2851 -vn 0.9103 0.3068 0.2779 -vn 0.5087 0.8556 0.0962 -vn 0.1106 -0.9635 0.2436 -vn 0.9786 -0.1938 0.0687 -vn -0.9879 -0.1550 0.0049 -vn 0.0040 -0.9937 -0.1117 -vn 0.2017 0.0541 0.9780 -vn 0.2753 0.0800 0.9580 -vn 0.3529 -0.0876 0.9316 -vn 0.0023 0.0263 0.9997 -vn -0.0001 0.0097 1.0000 -vn 0.0094 -0.0215 -0.9997 -vn 0.0022 0.0263 0.9997 -vn 0.0093 -0.0215 -0.9997 -vn 0.1035 0.7877 0.6073 -vn 0.1821 0.0393 -0.9825 -vn 0.1579 0.0817 -0.9841 -vn 0.0000 1.0000 -0.0040 -vn 0.5000 0.8660 -0.0027 -vn 0.4994 -0.8660 0.0267 -vn 0.0011 -0.9995 0.0309 -vn -0.0011 -0.9995 0.0309 -vn -0.9018 -0.4309 0.0319 -vn -0.9971 0.0692 0.0308 -vn -0.9970 0.0714 0.0307 -vn 0.8653 0.5010 0.0162 -vn 0.5010 0.8653 0.0165 -vn 0.8664 0.4991 0.0162 -vn -0.0011 0.9998 0.0191 -vn -0.4992 0.8662 0.0233 -vn 0.0011 0.9998 0.0191 -vn 0.8797 -0.4751 0.0221 -vn 0.5005 -0.8653 0.0267 -vn -0.5870 -0.8089 0.0336 -vn -0.7893 -0.6132 0.0307 -vn -0.7850 -0.6187 0.0307 -vn 0.4987 0.8666 0.0165 -vn -0.5003 0.8655 0.0233 -vn -0.8605 0.5086 0.0279 -vn 0.1906 -0.0335 -0.9811 -vn 0.1872 0.0078 -0.9823 -vn 0.1869 0.0101 -0.9823 -vn -0.5852 -0.8102 0.0336 -vn 0.9912 0.1311 0.0167 -vn 0.9913 0.1309 0.0166 -vn -0.5000 0.8660 -0.0027 -vn -0.8660 0.5000 0.0009 -vn 0.0000 -0.9999 0.0154 -vn -0.5864 -0.8099 0.0135 -vn -0.5862 -0.8101 0.0135 -vn 0.9936 0.1132 0.0044 -vn 0.8660 0.5000 0.0009 -vn 0.9936 0.1131 0.0044 -vn 0.5000 -0.8659 0.0141 -vn -0.9358 -0.3524 0.0087 -vn -0.9982 0.0604 0.0049 -vn -0.9982 0.0605 0.0049 -vn 0.8838 -0.4678 0.0102 -vn -0.9358 -0.3525 0.0087 -vn 0.8838 -0.4679 -0.0041 -vn 0.5000 -0.8660 -0.0002 -vn -0.5000 0.8659 -0.0170 -vn -0.0000 0.9998 -0.0183 -vn 0.5000 0.8659 -0.0170 -vn 0.8660 0.4999 -0.0134 -vn -0.9981 0.0602 -0.0089 -vn -0.9358 -0.3525 -0.0046 -vn -0.9981 0.0604 -0.0089 -vn -0.0000 -1.0000 0.0011 -vn 0.9935 0.1131 -0.0094 -vn 0.9936 0.1130 -0.0094 -vn -0.5864 -0.8100 -0.0007 -vn -0.5861 -0.8102 -0.0007 -vn -0.8660 0.4999 -0.0134 -vn -0.9357 -0.3527 -0.0046 -vn -0.6006 0.5955 -0.5336 -vn -0.7283 0.4152 -0.5451 -vn -0.2198 -0.8153 0.5357 -vn 0.0000 -0.8357 0.5492 -vn -0.8871 -0.3274 0.3253 -vn -0.5580 -0.7533 0.3481 -vn -0.8846 -0.3343 0.3252 -vn 0.4697 -0.8102 0.3506 -vn 0.8315 -0.4341 0.3467 -vn 0.2441 -0.9142 -0.3235 -vn 0.4697 0.8169 0.3349 -vn 0.8136 0.4730 0.3382 -vn -0.9417 0.0560 0.3318 -vn -0.9411 0.0639 0.3320 -vn 0.0000 -0.9361 0.3518 -vn 0.9369 0.1122 0.3310 -vn 0.9375 0.1074 0.3310 -vn -0.1821 0.0393 -0.9825 -vn -0.1822 0.0393 -0.9825 -vn -0.1702 -0.1209 -0.9780 -vn -0.1130 -0.1548 -0.9815 -vn -0.1047 -0.1596 -0.9816 -vn -0.5456 -0.7620 0.3487 -vn -0.1886 -0.0010 -0.9821 -vn -0.1878 0.0039 -0.9822 -vn 0.8837 -0.4678 -0.0154 -vn 0.4999 -0.8660 -0.0116 -vn -0.0000 -0.9996 0.0296 -vn 0.2588 -0.9655 0.0286 -vn 0.7070 0.7068 -0.0261 -vn 0.8659 0.4997 -0.0248 -vn -0.9980 0.0600 -0.0199 -vn -0.9357 -0.3524 -0.0152 -vn -0.9980 0.0604 -0.0199 -vn 0.0000 -0.9999 -0.0103 -vn 0.9934 0.1131 -0.0204 -vn 0.9934 0.1128 -0.0204 -vn -0.5866 -0.8098 -0.0120 -vn -0.5858 -0.8104 -0.0120 -vn -0.8659 0.4997 -0.0248 -vn -0.7070 0.7068 -0.0261 -vn -0.2588 -0.9655 0.0286 -vn 0.1893 -0.0456 -0.9809 -vn 0.1906 -0.0338 -0.9811 -vn -0.3383 0.2001 0.9195 -vn -0.3751 0.0362 0.9263 -vn -0.3331 0.2137 0.9184 -vn -0.2948 -0.2253 0.9286 -vn -0.3441 -0.1182 0.9315 -vn -0.3304 -0.1463 0.9324 -vn 0.3207 -0.0291 0.9467 -vn 0.3108 -0.1408 0.9400 -vn 0.2987 -0.1576 0.9412 -vn -0.2095 -0.2501 0.9453 -vn -0.3111 -0.1947 0.9302 -vn 0.1672 -0.2717 0.9477 -vn 0.1608 -0.2749 0.9479 -vn -0.0000 0.4273 0.9041 -vn -0.1994 0.3681 0.9082 -vn 0.2088 0.3617 0.9086 -vn 0.3331 0.2137 0.9184 -vn 0.3401 0.1973 0.9195 -vn -0.3739 0.0324 0.9269 -vn -0.9356 -0.3528 -0.0152 -vn -0.0000 -0.3122 0.9500 -vn 0.5000 -0.8659 0.0118 -vn 0.8838 -0.4678 0.0080 -vn -0.5000 0.8660 -0.0049 -vn 0.0000 1.0000 -0.0062 -vn 0.5000 0.8660 -0.0049 -vn 0.8660 0.5000 -0.0014 -vn -0.9358 -0.3525 0.0066 -vn -0.9982 0.0604 0.0028 -vn -0.9982 0.0605 0.0028 -vn 0.0000 -0.9999 0.0131 -vn 0.9936 0.1132 0.0023 -vn 0.9936 0.1131 0.0023 -vn -0.5862 -0.8101 0.0113 -vn -0.5864 -0.8100 0.0113 -vn -0.8660 0.5000 -0.0014 -vn -0.2877 0.0123 -0.9576 -vn -0.2456 0.1353 -0.9599 -vn -0.2875 0.0040 -0.9578 -vn -0.2520 -0.2137 -0.9438 -vn -0.1771 -0.2377 -0.9551 -vn -0.1646 -0.2450 -0.9554 -vn 0.2930 0.0306 -0.9556 -vn 0.2482 0.1340 -0.9594 -vn 0.2944 -0.0398 -0.9548 -vn 0.2524 -0.1425 -0.9571 -vn 0.2914 -0.0406 -0.9557 -vn 0.0000 -0.2958 -0.9552 -vn -0.1433 0.2389 -0.9604 -vn -0.2469 0.1363 -0.9594 -vn 0.0000 0.2773 -0.9608 -vn 0.1433 0.2389 -0.9604 -vn -0.2797 -0.1228 -0.9522 -vn -0.2659 -0.1832 -0.9464 -vn 0.1433 -0.2575 -0.9556 -vn 0.2517 -0.1465 -0.9567 -vn 0.4866 -0.8406 0.2380 -vn -0.0000 -0.9709 0.2393 -vn -0.1579 0.0817 -0.9841 -vn -0.0000 -0.1919 -0.9814 -vn 0.1621 -0.0934 -0.9823 -vn -0.0912 0.1484 -0.9847 -vn 0.0912 0.1484 -0.9847 -vn 0.0000 0.1729 -0.9849 -vn -0.1818 -0.0810 -0.9800 -vn 0.0912 -0.1674 -0.9817 -vn 0.1608 -0.0957 -0.9823 -vn 0.9946 -0.1025 0.0180 -vn 0.9685 -0.1066 0.2252 -vn 0.9681 -0.1204 0.2196 -vn 0.9695 0.0996 0.2239 -vn 0.8888 -0.2388 -0.3913 -vn 0.8265 -0.4164 -0.3789 -vn 0.8872 -0.2447 -0.3912 -vn -0.9733 0.0582 0.2219 -vn -0.9147 -0.3399 0.2185 -vn -0.9130 -0.3446 0.2184 -vn 0.8428 0.4888 0.2252 -vn 0.4866 0.8450 0.2217 -vn -0.0000 0.9754 0.2205 -vn -0.4866 0.8450 0.2217 -vn 0.8609 -0.4517 0.2341 -vn 0.8595 -0.4544 0.2342 -vn -0.8187 -0.5339 0.2115 -vn -0.8428 0.4888 0.2252 -vn -0.5753 -0.7831 0.2362 -vn 0.9951 0.0989 -0.0010 -vn 0.9659 0.2588 -0.0025 -vn 0.7876 -0.4940 -0.3683 -vn 0.8898 -0.2422 -0.3869 -vn 0.8897 -0.2422 -0.3869 -vn 0.9009 -0.1935 -0.3885 -vn 0.7590 0.4928 -0.4255 -vn 0.5352 0.6962 -0.4784 -vn 0.5025 0.7178 -0.4820 -vn 0.9131 -0.0646 -0.4026 -vn 0.9135 -0.0545 -0.4031 -vn -0.8994 0.1125 -0.4223 -vn -0.8896 0.1655 -0.4257 -vn -0.9003 0.1073 -0.4219 -vn -0.9066 -0.0888 -0.4126 -vn -0.9058 -0.1000 -0.4118 -vn 0.7936 -0.4755 -0.3795 -vn -0.8851 -0.2410 -0.3981 -vn 0.0011 0.8668 -0.4986 -vn -0.0008 0.8668 -0.4986 -vn -0.8660 0.5000 -0.0048 -vn -0.9659 0.2588 -0.0025 -vn 0.5000 -0.8660 0.0084 -vn -0.9358 -0.3525 0.0034 -vn -0.9982 0.0604 -0.0006 -vn 0.5000 0.8660 -0.0084 -vn 0.8660 0.5000 -0.0048 -vn -0.5000 0.8660 -0.0084 -vn 0.8838 -0.4679 0.0045 -vn -0.8367 -0.5477 0.0053 -vn 0.9587 -0.1807 0.2195 -vn -0.5863 -0.8101 0.0078 -vn 0.9533 0.2539 -0.1638 -vn 0.9429 0.0892 -0.3211 -vn 0.9156 0.2423 -0.3208 -vn -0.7923 0.3968 -0.4635 -vn -0.0022 -0.6242 0.7813 -vn -0.4237 0.8995 0.1063 -vn -0.0022 0.6327 0.7744 -vn 0.0014 0.9861 0.1661 -vn -0.9235 -0.3459 -0.1660 -vn -0.9336 0.0501 -0.3548 -vn -0.8767 -0.3375 -0.3427 -vn 0.8880 0.4032 -0.2212 -vn 0.6700 0.6669 -0.3260 -vn 0.1154 -0.4222 0.8991 -vn 0.0014 -0.9841 0.1777 -vn 0.4253 -0.8971 0.1195 -vn 0.9058 -0.3635 -0.2177 -vn 0.6674 -0.6706 -0.3240 -vn 0.8352 -0.4389 -0.3315 -vn -0.8246 -0.5414 -0.1640 -vn -0.7888 -0.5195 -0.3285 -vn -0.4239 -0.8980 0.1183 -vn -0.6639 0.6605 -0.3508 -vn -0.8069 0.4657 -0.3635 -vn -0.8849 0.3985 -0.2412 -vn 0.9697 -0.1865 -0.1576 -vn 0.9324 -0.1808 -0.3130 -vn 0.1202 0.4570 0.8813 -vn 0.2550 0.9533 0.1620 -vn 0.9795 -0.1257 -0.1573 -vn 0.9823 0.0966 -0.1604 -vn 0.4710 -0.8087 -0.3523 -vn 0.8040 -0.4565 -0.3811 -vn 0.9938 -0.1115 0.0044 -vn 0.3787 0.0550 0.9239 -vn 0.3745 0.0494 0.9259 -vn 0.9936 -0.1117 -0.0178 -vn -0.6669 0.6701 0.3259 -vn -0.8136 0.4730 0.3382 -vn 0.9937 -0.1116 -0.0070 -vn 0.9937 -0.1114 0.0065 -vn 0.9823 -0.1873 0.0018 -vn 0.9921 -0.1257 0.0012 -vn -0.9506 0.2530 -0.1801 -vn -0.9831 0.0579 -0.1735 -vn -0.1831 -0.0764 -0.9801 -vn -0.0010 -0.9390 -0.3438 -vn -0.4582 -0.8137 -0.3578 -vn 0.0012 -0.9390 -0.3438 -vn 0.9417 0.2545 0.2200 -vn 0.8180 0.4686 -0.3336 -vn 0.8837 -0.4680 -0.0041 -vn 0.2441 0.9142 0.3235 -vn -0.1853 -0.2625 0.9470 -vn 0.8835 -0.4681 -0.0154 -vn 0.3744 -0.0300 0.9268 -vn 0.8838 -0.4679 0.0080 -vn -0.2733 -0.1317 -0.9529 -vn 0.9415 -0.1223 -0.3139 -vn 0.8513 0.3098 -0.4234 -vn -0.9503 0.2529 -0.1815 -vn -0.9040 0.2388 -0.3545 -vn -0.7780 0.4215 -0.4659 -vn -0.4424 0.7501 -0.4915 -vn -0.7888 -0.5196 -0.3285 -vn -0.8258 -0.5421 -0.1553 -vn 0.4611 -0.8146 -0.3519 -vn -0.5668 -0.7892 0.2365 -vn 0.2920 0.0256 -0.9561 -vn -0.9024 -0.4297 0.0319 -vn -0.8533 0.5214 -0.0103 -vn -0.9177 0.3972 -0.0076 -vn 0.9935 0.1134 -0.0016 -vn 0.9937 -0.1118 0.0016 -vn 0.9935 0.1135 -0.0006 -vn 0.2588 0.9659 -0.0093 -vn 0.7071 -0.7071 0.0068 -vn 0.7570 -0.6534 0.0063 -vn -0.5000 -0.8660 0.0084 -vn -0.9444 -0.3286 -0.0103 -vn -0.7071 0.7071 -0.0068 -vn -0.7071 -0.7071 0.0068 -vn -0.9445 -0.3282 0.0167 -vn 0.7873 -0.6165 0.0060 -vn 0.9269 -0.3753 0.0036 -vn 0.9937 -0.1118 0.0006 -vn 0.9071 0.4210 -0.0041 -vn 0.9951 0.0988 -0.0012 -vn 0.8513 -0.5246 0.0051 -vn -0.6839 -0.7296 0.0071 -vn -0.8657 0.5005 -0.0039 -vn -0.9158 0.4015 -0.0035 -vn -0.9661 0.2583 -0.0016 -vn -0.9964 0.0177 -0.0830 -vn -0.7815 0.6239 -0.0060 -vn -0.9857 0.1685 -0.0011 -vn -0.9786 0.2056 -0.0020 -vn -0.9857 0.1683 -0.0023 -vn -0.9632 0.2006 -0.1790 -vn -0.8367 -0.5477 0.0084 -vn -0.9066 0.2362 -0.3498 -vn -0.4712 -0.8058 -0.3586 -vn -0.7894 -0.4744 -0.3895 -vn 0.8470 0.3207 -0.4240 -vn -0.8444 0.5082 -0.1695 -vn -0.9579 -0.1245 -0.2586 -vn -0.9524 -0.1186 0.2809 -vn -0.2088 0.3617 0.9086 -vn 0.1994 0.3681 0.9082 -vn 0.9393 -0.1024 0.3273 -vn 0.9394 -0.1021 0.3273 -vn -0.8603 0.5091 0.0278 -vn -0.9417 0.2545 0.2200 -vn -0.4335 0.7551 -0.4919 -vn -0.8006 -0.4537 -0.3914 -vn -0.8866 0.4625 -0.0045 -vn -0.9961 0.0214 0.0862 -vn -0.8593 0.4785 -0.1808 -vn -0.9050 0.2425 -0.3497 -vn -0.9075 0.2398 -0.3449 -vn -0.9368 -0.3499 -0.0009 -vn -0.9983 0.0583 -0.0063 -vn 0.9613 -0.2749 0.0185 -vn 0.9316 -0.3631 0.0187 -vn 0.1530 -0.9867 -0.0547 -vn 0.0791 -0.9967 0.0160 -vn 0.1418 0.0120 0.9898 -vn -0.1127 -0.4565 0.8826 -vn -0.1418 0.0120 0.9898 -vn 0.2462 -0.4736 0.8456 -vn 0.3300 0.0091 0.9440 -vn 0.1260 -0.9413 0.3133 -vn 0.1127 -0.4565 0.8826 -vn 0.1337 -0.9906 0.0294 -vn -0.1533 -0.9880 0.0158 -vn 0.1534 -0.9880 0.0158 -vn 0.2650 -0.9641 0.0154 -vn -0.1530 -0.9867 -0.0547 -vn -0.1260 -0.9413 0.3133 -vn 0.2413 -0.9704 -0.0048 -vn 0.2116 -0.9080 0.3616 -vn -0.0791 -0.9967 0.0160 -vn -0.2650 -0.9641 0.0154 -vn -0.2413 -0.9704 -0.0048 -vn -0.2116 -0.9080 0.3616 -vn -0.2464 0.4622 0.8519 -vn -0.1146 0.4450 0.8882 -vn -0.1164 0.9181 0.3790 -vn -0.2088 0.9021 0.3777 -vn 0.9445 -0.2527 -0.2099 -vn 0.7423 -0.6651 -0.0812 -vn 0.8371 -0.4874 -0.2486 -vn 0.9854 0.0047 -0.1703 -vn 0.9998 0.0169 0.0040 -vn -0.9445 -0.2527 -0.2099 -vn -0.7423 -0.6651 -0.0812 -vn -0.9352 -0.3329 0.1212 -vn -0.7729 -0.6171 0.1477 -vn -0.9080 -0.2753 0.3160 -vn -0.9843 0.0622 0.1649 -vn -0.9908 0.0846 -0.1058 -vn -0.9564 -0.1410 0.2558 -vn -0.8789 0.2188 0.4238 -vn -0.9300 -0.1110 0.3503 -vn 0.9840 0.0600 0.1677 -vn 0.9908 0.0847 -0.1058 -vn 0.9832 0.0494 -0.1759 -vn 0.9475 0.1642 -0.2743 -vn 0.9396 0.2056 -0.2735 -vn -0.9916 -0.1072 0.0726 -vn -0.8195 -0.5358 0.2033 -vn 0.9916 -0.1071 0.0724 -vn 0.9635 0.2124 -0.1630 -vn 0.9343 0.2035 -0.2929 -vn -0.9804 0.0160 0.1961 -vn -0.9094 0.0735 0.4094 -vn 0.9804 0.0160 0.1961 -vn 0.9855 0.0749 -0.1525 -vn 0.9428 0.1762 -0.2830 -vn 0.9094 0.0735 0.4094 -vn 0.9352 -0.3329 0.1212 -vn -0.9428 0.1762 -0.2830 -vn -0.9855 0.0749 -0.1525 -vn -0.2493 0.9683 -0.0141 -vn -0.1360 0.9906 -0.0155 -vn 0.9564 -0.1410 0.2558 -vn 0.8195 -0.5358 0.2033 -vn -0.9396 0.2056 -0.2735 -vn -0.9636 0.2121 -0.1628 -vn -0.1195 0.8349 -0.5373 -vn -0.1960 0.8321 -0.5188 -vn 0.8789 0.2188 0.4238 -vn -0.9475 0.1641 -0.2744 -vn -0.9826 0.0514 -0.1786 -vn -0.2458 0.3187 -0.9154 -vn -0.1231 0.2914 -0.9486 -vn -0.1445 0.0045 -0.9895 -vn -0.3293 -0.0091 -0.9442 -vn -0.9854 0.0047 -0.1703 -vn -0.8371 -0.4874 -0.2486 -vn 0.7729 -0.6171 0.1477 -vn 0.1256 -0.9608 0.2472 -vn -0.0576 -0.9747 0.2158 -vn -0.1467 -0.9583 0.2454 -vn -0.2007 -0.9752 0.0936 -vn 0.2533 -0.9513 0.1759 -vn -0.2919 -0.9407 0.1729 -vn 0.1826 -0.9254 0.3321 -vn -0.2163 -0.9254 0.3112 -vn 0.1850 -0.9314 0.3134 -vn 0.1722 -0.9368 0.3047 -vn -0.2012 -0.9320 0.3015 -vn 0.1764 -0.9315 0.3181 -vn -0.2135 -0.9195 0.3300 -vn -0.2064 -0.9261 0.3159 -vn -0.3986 -0.8724 0.2829 -vn -0.4109 -0.8594 0.3042 -vn 0.3144 0.9491 -0.0171 -vn 0.5969 0.8022 -0.0145 -vn 0.2092 0.9777 -0.0177 -vn -0.4177 -0.8553 0.3065 -vn -0.3763 -0.8860 0.2709 -vn -0.4727 -0.8497 0.2337 -vn -0.2633 -0.9419 0.2085 -vn -0.3551 0.9347 -0.0169 -vn -0.6639 0.7477 -0.0135 -vn -0.6044 -0.7930 0.0761 -vn -0.4200 -0.8590 0.2929 -vn 0.5365 -0.8400 0.0806 -vn 0.4144 -0.8788 0.2367 -vn -0.1780 0.9839 -0.0178 -vn 0.3529 -0.8823 0.3114 -vn -0.2247 0.9743 -0.0176 -vn 0.3196 -0.9068 0.2750 -vn 0.3617 -0.8825 0.3006 -vn 0.1688 0.9855 -0.0178 -vn 0.2230 -0.9518 0.2107 -vn 0.0543 -0.9749 0.2158 -vn 0.3595 -0.8784 0.3148 -vn 0.3423 -0.8938 0.2899 -vn -0.9172 -0.3289 0.2248 -vn -0.3319 -0.9414 0.0595 -vn -0.3285 -0.9427 0.0585 -vn -0.8159 0.5339 0.2220 -vn -0.9192 -0.3228 0.2255 -vn -0.0973 0.9939 0.0512 -vn -0.8136 0.5375 0.2215 -vn 0.6909 0.7057 -0.1571 -vn 0.6947 0.7016 -0.1582 -vn 0.9621 -0.1135 -0.2480 -vn 0.9614 -0.1194 -0.2480 -vn 0.5071 -0.8484 -0.1517 -vn 0.5057 -0.8493 -0.1514 -vn -0.9181 -0.3259 0.2257 -vn -0.3279 -0.9422 0.0682 -vn -0.8169 0.5359 0.2133 -vn -0.1006 0.9941 0.0402 -vn 0.9999 0.0106 0.0110 -vn 0.9991 0.0430 0.0037 -vn 0.9998 0.0127 0.0133 -vn 0.9971 0.0758 0.0061 -vn 0.9897 0.1349 0.0486 -vn 0.9999 -0.0137 0.0031 -vn -0.9971 -0.0762 -0.0059 -vn -0.9896 -0.1356 -0.0481 -vn -0.9841 -0.1548 -0.0874 -vn 0.0000 0.0158 0.9999 -vn -0.0000 -0.1169 0.9931 -vn 0.0000 -0.1207 0.9927 -vn 0.0000 -0.0160 -0.9999 -vn 0.0000 0.0283 -0.9996 -vn 0.9996 -0.0267 0.0004 -vn 0.9999 -0.0172 0.0003 -vn -0.9999 -0.0106 -0.0110 -vn -0.9991 -0.0431 -0.0036 -vn 0.0000 0.0297 -0.9996 -vn 0.0008 0.0483 -0.9988 -vn 0.6915 0.7038 -0.1631 -vn -0.0009 -0.1992 0.9800 -vn 0.0000 -0.1958 0.9807 -vn -0.0147 0.2452 0.9694 -vn -0.0203 0.6164 0.7871 -vn -0.0199 0.6195 0.7848 -vn 0.0150 -0.2579 -0.9660 -vn 0.0159 -0.2595 -0.9656 -vn 0.9628 -0.1165 -0.2436 -vn -0.9990 -0.0449 -0.0022 -vn -0.9987 -0.0513 0.0008 -vn -0.9954 -0.0956 0.0015 -vn 0.0213 -0.7492 -0.6620 -vn 0.5092 -0.8491 -0.1407 -vn 0.0212 -0.7581 -0.6517 -vn 0.0200 -0.9356 -0.3524 -vn 0.0083 -0.6778 0.7352 -vn -0.0190 0.7409 0.6714 -vn -0.0180 0.7406 0.6717 -vn -0.4678 0.0244 -0.8835 -vn -0.8432 0.0548 -0.5347 -vn -0.4172 0.0927 -0.9041 -vn -0.4653 -0.1686 -0.8689 -vn -0.8298 -0.0604 -0.5548 -vn -0.4643 -0.0912 -0.8810 -vn -0.8307 -0.1254 -0.5424 -vn -0.8292 -0.1042 -0.5491 -vn 0.4283 -0.1721 -0.8871 -vn 0.7799 -0.0676 -0.6222 -vn 0.7793 -0.1169 -0.6157 -vn 0.4275 -0.0931 -0.8992 -vn 0.3889 -0.2075 -0.8976 -vn -0.4192 -0.2045 -0.8845 -vn 0.4320 0.0249 -0.9015 -vn -0.1376 -0.9903 -0.0208 -vn -0.2230 -0.8487 0.4796 -vn -0.3750 -0.8730 0.3118 -vn -0.3558 -0.5474 0.7575 -vn -0.7601 -0.2043 0.6169 -vn -0.6250 -0.5899 0.5113 -vn -0.3558 0.5620 0.7467 -vn -0.7601 0.2162 0.6128 -vn -0.4198 0.1988 0.8856 -vn -0.2230 0.8578 0.4631 -vn -0.1376 0.9897 -0.0400 -vn -0.3750 0.8789 0.2949 -vn -0.4198 -0.1816 0.8893 -vn -0.6250 0.5997 0.4998 -vn -0.9546 0.2082 -0.2129 -vn -0.9546 -0.2123 -0.2089 -vn -0.4710 0.8750 -0.1125 -vn -0.7849 0.5931 -0.1791 -vn -0.4710 -0.8770 -0.0956 -vn -0.7849 -0.5965 -0.1676 -vn -0.2123 -0.8801 -0.4246 -vn -0.4303 -0.2187 -0.8758 -vn -0.3538 -0.6018 -0.7160 -vn -0.4303 0.2017 -0.8798 -vn -0.2123 0.8718 -0.4415 -vn -0.3538 0.5878 -0.7275 -vn -0.0036 -0.8583 -0.5132 -vn -0.0058 -0.5627 -0.8266 -vn -0.0058 0.5466 -0.8373 -vn -0.0069 0.1807 -0.9835 -vn -0.0036 0.8482 -0.5297 -vn -0.0069 -0.1997 -0.9798 -vn 0.7889 0.0070 -0.6145 -vn 0.7959 0.0618 -0.6023 -vn 0.7809 -0.1407 -0.6085 -vn -0.8373 0.0058 -0.5467 -vn -0.7071 -0.0068 -0.7071 -vn -0.7071 0.0068 0.7071 -vn 0.7071 0.0068 0.7071 -vn 0.7071 -0.0068 -0.7071 -vn -0.3813 -0.0415 -0.9235 -vn -0.2981 -0.1024 -0.9490 -vn -0.2765 -0.1043 -0.9553 -vn -0.3719 0.1045 -0.9224 -vn -0.3905 -0.0244 -0.9203 -vn -0.2717 0.1526 -0.9502 -vn -0.2482 0.1489 -0.9572 -vn -0.1720 0.1002 -0.9800 -vn -0.1642 0.0879 -0.9825 -vn -0.1476 0.0045 -0.9890 -vn -0.1479 0.0024 -0.9890 -vn -0.1873 -0.0715 -0.9797 -vn -0.1949 -0.0781 -0.9777 -vn 0.8654 -0.5001 0.0323 -vn 0.5005 -0.8651 0.0335 -vn 0.8660 -0.4989 0.0323 -vn 0.4992 -0.8659 0.0335 -vn 0.0007 -0.9995 0.0324 -vn -0.0007 -0.9995 0.0324 -vn -0.4995 -0.8658 0.0293 -vn -0.5003 -0.8654 0.0293 -vn -0.8658 -0.4997 0.0250 -vn -0.8659 -0.4996 0.0250 -vn -0.9934 -0.1132 0.0203 -vn -0.9934 -0.1127 0.0203 -vn -0.9936 0.1118 0.0179 -vn -0.8841 0.4670 0.0174 -vn -0.9936 0.1115 0.0179 -vn -0.5005 0.8656 0.0164 -vn -0.8830 0.4690 0.0174 -vn -0.0007 0.9998 0.0175 -vn -0.4992 0.8664 0.0164 -vn 0.5867 0.8095 0.0201 -vn 0.0007 0.9998 0.0175 -vn 0.9357 0.3521 0.0229 -vn 0.5854 0.8105 0.0201 -vn 0.9978 -0.0597 0.0282 -vn 0.9353 0.3531 0.0228 -vn 0.9978 -0.0605 0.0282 -vn 0.7929 -0.4205 -0.4409 -vn 0.4477 -0.7797 -0.4378 -vn -0.4477 0.7711 -0.4528 -vn 0.0000 0.8910 -0.4539 -vn 0.4477 0.7711 -0.4528 -vn 0.7754 0.4434 -0.4496 -vn -0.9001 0.0449 -0.4334 -vn -0.8504 -0.3199 -0.4178 -vn -0.8993 0.0548 -0.4339 -vn -0.0000 -0.8997 -0.4366 -vn 0.8954 0.1006 -0.4337 -vn 0.8962 0.0947 -0.4335 -vn -0.5345 -0.7241 -0.4359 -vn -0.5188 -0.7350 -0.4366 -vn -0.7754 0.4434 -0.4496 -vn -0.8473 -0.3286 -0.4174 -vn 0.8991 -0.1052 -0.4248 -vn 0.8992 -0.1048 -0.4248 -vn 0.7903 -0.4254 -0.4410 -vn 0.0000 -0.8462 -0.5329 -vn -0.4863 -0.6926 -0.5327 -vn -0.5045 -0.6802 -0.5318 -vn 0.7283 0.4153 -0.5451 -vn 0.8437 0.0942 -0.5285 -vn 0.8446 0.0874 -0.5282 -vn 0.4205 -0.7335 -0.5340 -vn -0.8482 0.0400 -0.5281 -vn -0.8040 -0.3028 -0.5117 -vn -0.8472 0.0513 -0.5287 -vn 0.6005 0.5955 -0.5336 -vn 0.2198 -0.8153 0.5357 -vn 0.7421 -0.4012 -0.5370 -vn -0.8005 -0.3128 -0.5112 -vn 0.8488 -0.1005 -0.5190 -vn 0.8489 -0.1000 -0.5190 -vn 0.8294 -0.4381 0.3468 -vn 0.7452 -0.3955 -0.5369 -vn -0.8136 0.4730 0.3381 -vn 0.1154 -0.9429 -0.3126 -vn -0.1337 -0.9906 0.0294 -vn 0.2566 -0.9662 0.0250 -vn 0.1111 -0.4968 -0.8607 -vn -0.1154 -0.9429 -0.3126 -vn -0.2460 -0.5123 -0.8228 -vn -0.1111 -0.4968 -0.8607 -vn -0.9245 0.2144 -0.3152 -vn -0.9750 0.1377 -0.1746 -vn -0.9896 0.0945 -0.1082 -vn 0.9601 -0.0989 0.2615 -vn 0.9082 -0.1637 0.3852 -vn 0.9837 -0.0512 0.1726 -vn 0.2460 -0.5123 -0.8228 -vn 0.2136 -0.9247 -0.3150 -vn 0.1445 0.0045 -0.9895 -vn 0.1231 0.2914 -0.9486 -vn 0.2458 0.3187 -0.9154 -vn 0.3293 -0.0091 -0.9442 -vn -0.2136 -0.9247 -0.3150 -vn -0.9333 0.2069 -0.2936 -vn -0.9745 0.1360 -0.1782 -vn -0.9879 0.1010 -0.1180 -vn 0.9682 -0.1083 0.2257 -vn 0.9060 -0.1974 0.3744 -vn 0.9847 -0.0673 0.1606 -vn 0.1195 0.8349 -0.5373 -vn 0.1360 0.9906 -0.0155 -vn 0.2493 0.9683 -0.0141 -vn 0.1960 0.8321 -0.5188 -vn 0.1164 0.9181 0.3790 -vn 0.1146 0.4450 0.8882 -vn 0.2464 0.4622 0.8519 -vn 0.2088 0.9021 0.3777 -vn 0.9333 0.2069 -0.2936 -vn 0.9745 0.1360 -0.1782 -vn 0.9314 0.2074 -0.2990 -vn 0.9879 0.1007 -0.1179 -vn -0.9682 -0.1082 0.2255 -vn -0.9060 -0.1974 0.3744 -vn -0.9083 -0.1973 0.3690 -vn -0.9847 -0.0673 0.1606 -vn 0.0000 -0.4129 0.9108 -vn 0.0000 -0.4952 0.8688 -vn 0.9245 0.2144 -0.3152 -vn 0.9742 0.1397 -0.1774 -vn 0.9313 0.2136 -0.2950 -vn 0.9896 0.0945 -0.1082 -vn -0.9601 -0.0989 0.2615 -vn -0.9082 -0.1637 0.3852 -vn -0.9061 -0.1639 0.3901 -vn -0.9831 -0.0533 0.1753 -vn 0.0000 -0.2676 0.9635 -vn 0.0000 -0.6758 0.7370 -vn 0.0000 0.4814 0.8765 -vn 0.0000 -0.3619 0.9322 -vn 0.0000 -0.3673 0.9301 -vn 0.0000 -0.9467 0.3220 -vn 0.0000 0.1991 0.9800 -vn 0.0000 -0.2060 0.9786 -vn -0.2566 -0.9662 0.0250 -vn -0.2462 -0.4736 0.8456 -vn -0.3300 0.0091 0.9440 -vn 0.8837 -0.4675 0.0217 -vn 0.9660 0.1205 0.2287 -vn -0.9730 0.0636 0.2220 -vn 0.0000 0.0096 1.0000 -vn -0.1145 -0.4185 0.9010 -vn -0.0004 0.0097 1.0000 -vn 0.0002 0.0097 1.0000 -vn 0.0003 0.0096 1.0000 -vn -0.0002 0.0097 1.0000 -vn -0.1131 0.4306 0.8955 -vn 0.9921 -0.1256 0.0010 -vn -0.9659 0.2588 -0.0047 -vn -0.8603 0.5097 -0.0061 -vn 0.9080 -0.2753 0.3160 -vn 0.9300 -0.1110 0.3503 -vn -0.9343 0.2035 -0.2929 -vn -0.9998 0.0169 0.0040 -vn 0.1859 -0.9781 0.0938 -vn -0.0983 0.9938 0.0515 -vn 0.9841 0.1542 0.0882 -vn -0.9998 -0.0127 -0.0133 -vn 0.0000 0.0464 -0.9989 -vn -0.0157 0.2484 0.9685 -vn 0.0198 -0.9356 -0.3525 -vn 0.3889 0.0940 -0.9165 -vn -0.3783 0.0960 -0.9207 -vn -0.9313 0.2136 -0.2950 -vn 0.9061 -0.1639 0.3901 -vn -0.9314 0.2074 -0.2990 -vn 0.9083 -0.1973 0.3690 -s off -f 808/860/431 810/861/431 807/862/431 -f 811/863/432 813/864/432 814/865/432 -f 816/866/433 818/867/433 815/868/433 -f 820/869/434 822/870/434 819/871/434 -f 824/872/431 826/873/431 823/874/431 -f 828/875/431 830/876/431 827/877/431 -f 831/878/433 833/879/433 834/880/433 -f 835/881/433 837/882/433 838/883/433 -f 840/884/431 842/885/431 839/886/431 -f 843/887/435 841/888/435 840/889/435 -f 845/890/436 847/891/436 848/892/436 -f 850/893/437 852/894/437 849/895/437 -f 854/896/431 855/897/431 853/898/431 -f 856/899/438 858/900/438 859/901/438 -f 861/902/439 851/903/439 860/904/439 -f 863/905/440 865/906/440 862/907/440 -f 866/908/433 852/909/433 861/910/433 -f 862/911/431 860/912/431 867/913/431 -f 872/914/441 874/915/442 875/916/443 -f 823/917/444 877/918/444 876/919/444 -f 878/920/445 825/921/445 824/922/445 -f 880/923/446 870/924/446 881/925/446 -f 891/926/447 893/927/447 890/928/447 -f 895/929/445 897/930/445 894/931/445 -f 899/932/448 895/933/448 898/934/448 -f 900/935/449 895/936/449 894/937/449 -f 901/938/450 814/939/450 902/940/450 -f 903/941/451 811/942/451 901/938/451 -f 809/943/452 900/935/452 810/861/452 -f 809/944/453 899/932/453 898/934/453 -f 824/922/454 811/945/454 878/920/454 -f 905/946/455 907/947/455 904/948/455 -f 855/897/456 848/949/457 908/950/458 -f 909/951/459 859/952/459 910/953/459 -f 833/879/460 904/954/460 834/880/460 -f 912/955/461 914/956/461 911/957/461 -f 913/958/462 928/959/462 914/956/462 -f 927/960/462 936/961/462 928/959/462 -f 935/962/462 944/963/462 936/961/462 -f 943/964/462 890/928/462 944/963/462 -f 909/965/463 952/966/463 951/967/463 -f 953/968/464 955/969/464 956/970/464 -f 957/971/465 959/972/465 960/973/465 -f 951/967/463 962/974/463 961/975/463 -f 822/870/466 965/976/466 963/977/466 -f 957/978/467 966/979/467 821/980/467 -f 821/981/468 964/982/468 822/870/468 -f 830/876/438 967/983/438 968/984/438 -f 962/974/433 969/985/433 970/986/433 -f 965/976/431 971/987/431 972/988/431 -f 952/966/433 973/989/433 969/985/433 -f 959/972/469 975/990/469 960/973/469 -f 967/983/431 977/991/431 968/984/431 -f 955/969/433 979/992/433 956/970/433 -f 859/993/470 973/994/470 910/995/470 -f 964/982/471 981/996/471 971/987/471 -f 858/900/431 980/997/431 859/901/431 -f 960/998/472 981/999/472 966/979/472 -f 983/1000/473 821/980/473 820/1001/473 -f 984/1002/431 822/870/431 963/977/431 -f 985/1003/433 951/967/433 961/975/433 -f 983/1004/474 958/1005/474 957/971/474 -f 989/1006/433 953/968/433 988/1007/433 -f 986/1008/433 909/965/433 951/967/433 -f 991/1009/475 909/1010/475 990/1011/475 -f 992/1012/431 856/899/431 991/1013/431 -f 808/860/476 991/1013/476 809/943/476 -f 809/1014/477 990/1011/477 816/1015/477 -f 817/1016/478 990/1017/478 986/1008/478 -f 837/882/479 988/1007/479 832/1018/479 -f 833/879/480 983/1004/480 905/1019/480 -f 836/1020/478 986/1008/478 985/1003/478 -f 993/1021/481 819/871/481 984/1002/481 -f 905/946/482 820/1001/482 906/1022/482 -f 996/1023/476 827/877/476 995/1024/476 -f 994/1025/483 820/869/483 819/871/483 -f 979/1026/484 997/1027/484 998/1028/484 -f 970/1029/484 999/1030/484 1000/1031/484 -f 969/1032/484 1001/1033/484 999/1030/484 -f 974/1034/485 981/1035/485 975/1036/485 -f 1002/1037/486 997/1038/486 1000/1039/486 -f 1004/1040/486 999/1041/486 1001/1042/486 -f 1006/1043/487 1008/1044/487 998/1045/487 -f 980/1046/484 1005/1047/484 1004/1048/484 -f 972/1049/484 1007/1050/484 1006/1051/484 -f 973/1052/488 1004/1048/489 1001/1033/490 -f 977/1053/484 1003/1054/484 1002/1055/484 -f 971/1056/491 1008/1057/492 1007/1050/490 -f 841/1058/431 1010/1059/431 854/896/431 -f 1011/1060/433 1012/1061/433 1013/1062/433 -f 844/1063/440 1009/1064/440 841/1065/440 -f 845/890/437 1012/1066/437 846/1067/437 -f 1009/1068/493 867/1069/494 1010/1070/494 -f 1012/1071/495 866/1072/495 1013/1073/495 -f 1009/1068/496 863/1074/497 862/1075/498 -f 1015/1076/499 849/1077/499 1012/1071/499 -f 892/1078/446 1030/1079/446 893/1080/446 -f 1029/1081/446 880/923/446 1030/1079/446 -f 1031/1082/446 1028/1083/446 885/1084/446 -f 1030/1079/446 1032/1085/446 1031/1082/446 -f 1033/1086/446 885/1084/446 884/1087/446 -f 893/1080/446 1031/1082/446 1033/1086/446 -f 947/1088/462 1037/1089/462 883/1090/462 -f 944/963/462 1037/1089/462 1036/1091/462 -f 939/1092/462 1036/1091/462 947/1088/462 -f 936/961/462 1036/1091/462 1039/1093/462 -f 931/1094/462 1039/1093/462 939/1092/462 -f 928/959/462 1039/1093/462 1041/1095/462 -f 921/1096/462 1041/1095/462 931/1094/462 -f 914/956/462 1041/1095/462 1043/1097/462 -f 920/1098/461 1043/1097/461 921/1096/461 -f 1045/1099/461 914/956/461 1043/1097/461 -f 883/1090/447 1033/1100/447 884/1101/447 -f 890/928/447 1033/1100/447 1037/1089/447 -f 1032/1085/446 888/1102/446 1028/1083/446 -f 880/923/446 889/1103/446 1032/1085/446 -f 877/1104/500 1026/1105/500 912/1106/500 -f 825/1107/431 919/1108/431 826/1109/431 -f 877/918/501 924/1110/501 923/1111/501 -f 916/1112/502 924/1110/502 826/1109/502 -f 834/880/503 1047/1113/504 1046/1114/505 -f 994/1025/506 907/1115/506 906/1116/506 -f 904/948/455 908/1117/455 1047/1118/455 -f 810/861/452 1050/1119/452 1049/1120/452 -f 816/866/451 1051/1121/451 899/1122/451 -f 1051/1121/450 896/1123/450 899/1122/450 -f 900/935/449 1052/1124/449 1050/1119/449 -f 894/931/445 902/1125/445 1052/1126/445 -f 1053/1127/431 994/1025/431 993/1021/431 -f 1054/1128/431 996/1023/431 995/1024/431 -f 835/881/433 1057/1129/433 1056/1130/433 -f 1058/1131/433 834/880/433 1046/1114/433 -f 903/941/433 818/867/433 1059/1132/433 -f 807/862/431 1049/1120/431 1060/1133/431 -f 1060/1133/431 824/872/431 823/874/431 -f 1061/1134/507 1063/1135/507 1064/1136/507 -f 1011/1060/433 1046/1114/433 846/1137/433 -f 1056/1130/433 844/1138/433 843/1139/433 -f 1052/1126/445 814/1140/445 813/1141/445 -f 1050/1119/449 813/1142/449 812/1143/449 -f 1049/1120/508 812/1143/508 824/872/508 -f 1047/1118/455 848/892/455 847/891/455 -f 1046/1114/509 847/1144/510 846/1137/510 -f 1048/1145/511 908/950/512 907/1115/511 -f 815/868/451 901/938/451 1051/1121/451 -f 1051/1121/450 902/940/450 897/1146/450 -f 853/898/431 1048/1145/431 1053/1127/431 -f 807/862/431 839/886/431 1054/1128/431 -f 1059/1132/433 843/1139/433 876/1147/433 -f 818/867/433 1056/1130/433 1059/1132/433 -f 807/862/431 995/1024/431 808/860/431 -f 982/1148/484 1002/1055/484 1005/1047/484 -f 1005/1149/486 1000/1039/486 999/1041/486 -f 978/1150/484 1000/1031/484 997/1027/484 -f 995/1024/476 992/1012/476 808/860/476 -f 837/882/478 985/1003/478 989/1006/478 -f 989/1006/433 961/975/433 954/1151/433 -f 968/984/431 982/1152/431 858/900/431 -f 955/969/433 970/986/433 978/1153/433 -f 857/1154/438 968/984/438 858/900/438 -f 961/975/463 955/969/463 954/1151/463 -f 876/919/435 840/889/435 823/917/435 -f 1060/1133/431 840/884/431 839/886/431 -f 818/867/433 836/1020/433 835/881/433 -f 827/877/431 857/1154/431 992/1012/431 -f 844/1138/433 1058/1131/433 1011/1060/433 -f 1057/1129/433 831/878/433 1058/1131/433 -f 1055/1155/431 993/1021/431 996/1023/431 -f 1014/1156/513 866/1072/514 863/1074/515 -f 1015/1076/516 867/1069/516 850/1157/516 -f 844/1138/433 1013/1062/433 1014/1158/433 -f 854/896/431 1015/1159/431 845/1160/431 -f 976/1161/484 1006/1051/484 1003/1054/484 -f 1003/1162/487 998/1045/487 997/1038/487 -f 974/1163/484 998/1028/484 1008/1057/484 -f 996/1023/481 984/1002/481 828/875/481 -f 832/1018/479 987/1164/479 833/879/479 -f 988/1007/433 958/1005/433 987/1164/433 -f 828/875/431 963/977/431 829/1165/431 -f 956/970/433 974/1166/433 959/972/433 -f 967/983/431 972/988/431 976/1167/431 -f 963/977/466 967/983/466 829/1165/466 -f 958/1005/464 956/970/464 959/972/464 -f 867/913/431 851/1168/431 850/1169/431 -f 863/1170/433 861/910/433 864/1171/433 -f 864/1172/439 860/904/439 865/1173/439 -f 841/1058/431 853/898/431 842/885/431 -f 838/883/433 832/1018/433 831/878/433 -f 873/1174/517 1066/1175/517 874/915/517 -f 1064/1136/518 1067/1176/518 1068/1177/518 -f 1070/1178/519 1072/1179/519 1069/1180/519 -f 1074/1181/519 1076/1182/519 1073/1183/519 -f 1069/1180/519 1078/1184/519 1077/1185/519 -f 1079/1186/518 1068/1177/518 1080/1187/518 -f 1072/1188/445 1082/1189/445 1078/1190/445 -f 1083/1191/433 1085/1192/433 1086/1193/433 -f 1074/1194/435 1089/1195/435 1087/1196/435 -f 1064/1197/520 1084/1198/520 1061/1199/520 -f 873/1200/521 1086/1201/521 1079/1202/521 -f 1061/1203/522 1091/1204/522 1092/1205/522 -f 872/1206/435 1090/1207/435 873/1208/435 -f 1094/1209/523 1084/1210/523 1083/1191/523 -f 1096/1211/524 1062/1212/525 1061/1134/525 -f 1087/1213/526 875/916/527 1098/1214/526 -f 1087/1213/528 1075/1215/528 1074/1181/528 -f 1071/1216/529 1096/1211/530 1072/1179/529 -f 1081/1217/433 1094/1209/433 1082/1218/433 -f 1096/1219/531 1081/1220/531 1072/1221/531 -f 1093/1222/521 1101/1223/521 1099/1224/521 -f 1088/1225/433 1094/1209/433 1089/1226/433 -f 1093/1222/521 1102/1227/521 1083/1228/521 -f 1079/1202/521 1085/1229/521 1064/1230/521 -f 1093/1231/433 1086/1193/433 1090/1232/433 -f 1078/1190/445 1088/1233/445 1074/1234/445 -f 1079/1186/518 1065/1235/518 873/1174/518 -f 1073/1183/519 1078/1184/519 1074/1181/519 -f 1104/1236/433 1099/1237/433 1103/1238/433 -f 1094/1239/445 1103/1240/445 1089/1241/445 -f 1089/1241/445 1106/1242/445 1087/1243/445 -f 1083/1244/486 1104/1245/486 1094/1246/486 -f 1106/1247/435 1100/1248/435 1107/1249/435 -f 1105/1250/435 1101/1251/435 1100/1248/435 -f 1103/1240/445 1105/1252/445 1089/1241/445 -f 872/1253/431 1106/1254/431 1107/1255/431 -f 872/1256/521 1100/1257/521 1093/1222/521 -f 1099/1237/433 1108/1258/433 1103/1238/433 -f 1095/1259/532 1091/1260/532 1084/1210/532 -f 1096/1261/533 1109/1262/533 1095/1263/533 -f 1092/1264/534 1109/1265/534 1110/1266/534 -f 1061/1267/535 1110/1268/535 1096/1269/535 -f 1112/1270/536 1114/1271/536 1111/1272/536 -f 1143/1273/431 1148/1274/431 1141/1275/431 -f 1114/1276/537 1140/1277/537 1139/1278/537 -f 1158/1279/433 1160/1280/433 1155/1281/433 -f 1111/1282/538 1161/1283/538 1112/1284/538 -f 1190/1285/539 1192/1286/539 1189/1287/539 -f 1191/1288/540 1194/1289/540 1192/1286/540 -f 1193/1290/541 1196/1291/541 1194/1292/541 -f 1195/1293/542 1198/1294/542 1196/1291/542 -f 1197/1295/543 1200/1296/543 1198/1297/543 -f 1199/1298/544 1202/1299/544 1200/1296/544 -f 1201/1300/545 1204/1301/545 1202/1299/545 -f 1203/1302/546 1206/1303/546 1204/1304/546 -f 1205/1305/547 1208/1306/547 1206/1303/547 -f 1207/1307/548 1210/1308/548 1208/1306/548 -f 1209/1309/549 1212/1310/549 1210/1308/549 -f 1211/1311/550 1189/1287/550 1212/1312/550 -f 1200/1313/551 1216/1314/551 1213/1315/551 -f 1196/1316/552 1220/1317/552 1221/1318/552 -f 1224/1319/553 1222/1320/553 1210/1321/553 -f 1225/1322/554 1206/1323/554 1226/1324/554 -f 1180/1325/555 1182/1326/555 1205/1327/555 -f 1174/1328/556 1176/1329/556 1199/1330/556 -f 1227/1331/557 1172/1332/557 1195/1333/557 -f 1209/1334/558 1188/1335/558 1211/1336/558 -f 1264/1337/559 1266/1338/431 1263/1339/431 -f 1265/1340/445 1268/1341/445 1266/1342/445 -f 1267/1343/433 1270/1344/433 1268/1345/433 -f 1272/1346/521 1263/1347/521 1271/1348/521 -f 1268/1349/435 1273/1350/435 1271/1351/435 -f 1274/1352/560 1276/1353/560 1277/1354/560 -f 1278/1355/502 1280/1356/502 1281/1357/502 -f 1282/1358/560 1276/1353/560 1275/1359/560 -f 1269/1360/561 1286/1361/561 1284/1362/561 -f 1267/1363/562 1282/1364/562 1275/1365/562 -f 1283/1366/563 1287/1367/563 1288/1368/563 -f 1292/1369/564 1294/1370/564 1291/1371/564 -f 1277/1372/433 1297/1373/433 1295/1374/433 -f 1278/1375/565 1299/1376/565 1298/1377/565 -f 1282/1358/502 1299/1378/502 1298/1379/502 -f 1285/1380/502 1295/1381/502 1292/1382/502 -f 1300/1383/566 1277/1372/566 1295/1374/566 -f 1286/1361/567 1292/1369/567 1291/1371/567 -f 1301/1384/433 1302/1385/433 1303/1386/433 -f 1304/1387/502 1302/1388/568 1305/1389/569 -f 1287/1390/502 1307/1391/502 1308/1392/502 -f 1281/1357/502 1309/1393/502 1310/1394/502 -f 1276/1353/563 1296/1395/563 1277/1354/563 -f 1299/1376/570 1310/1396/570 1306/1397/570 -f 1287/1367/563 1299/1378/563 1283/1366/563 -f 1292/1382/502 1297/1398/502 1293/1399/502 -f 1308/1400/486 1313/1401/486 1311/1402/486 -f 1314/1403/484 1302/1388/484 1301/1404/484 -f 1312/1405/484 1307/1406/484 1315/1407/484 -f 1316/1408/571 1305/1409/571 1317/1410/571 -f 1287/1367/572 1311/1411/572 1288/1368/572 -f 1318/1412/502 1312/1405/568 1315/1407/569 -f 1296/1395/502 1314/1413/502 1301/1414/502 -f 1318/1415/431 1315/1416/431 1307/1417/431 -f 1306/1397/431 1321/1418/431 1299/1376/431 -f 1290/1419/433 1322/1420/433 1323/1421/433 -f 1325/1422/431 1327/1423/431 1324/1424/431 -f 1290/1425/573 1328/1426/573 1329/1427/573 -f 1331/1428/433 1333/1429/433 1334/1430/433 -f 1307/1417/431 1335/1431/431 1336/1432/431 -f 1296/1433/433 1334/1430/433 1301/1384/433 -f 1324/1424/431 1287/1434/431 1308/1435/431 -f 1328/1436/502 1338/1437/502 1339/1438/502 -f 1326/1439/502 1341/1440/502 1327/1441/502 -f 1343/1442/574 1329/1443/574 1342/1444/574 -f 1335/1445/575 1345/1446/575 1344/1447/575 -f 1299/1448/576 1322/1449/576 1276/1450/576 -f 1321/1451/563 1323/1452/563 1322/1453/563 -f 1306/1454/577 1337/1455/577 1320/1456/577 -f 1296/1457/578 1323/1458/578 1331/1459/578 -f 1340/1460/502 1347/1461/502 1341/1440/502 -f 1331/1462/502 1349/1463/502 1332/1464/502 -f 1306/1465/579 1350/1466/579 1351/1467/579 -f 1346/1468/580 1353/1469/580 1347/1470/580 -f 1354/1471/581 1349/1472/581 1348/1473/581 -f 1267/1343/582 1356/1474/582 1357/1475/582 -f 1265/1476/583 1359/1477/583 1266/1338/583 -f 1356/1474/584 1361/1478/584 1357/1475/584 -f 1362/1479/585 1359/1477/585 1358/1480/585 -f 1360/1481/586 1365/1482/586 1361/1478/586 -f 1362/1479/587 1367/1483/587 1363/1484/587 -f 1360/1481/433 1369/1485/433 1364/1486/433 -f 1367/1483/431 1371/1487/431 1363/1484/431 -f 1353/1469/588 1366/1488/588 1362/1479/588 -f 1354/1471/589 1365/1482/589 1355/1489/589 -f 1352/1490/590 1349/1491/590 1355/1492/590 -f 1365/1493/591 1352/1490/591 1355/1492/591 -f 1366/1494/445 1364/1495/445 1367/1496/445 -f 1369/1497/445 1367/1496/445 1364/1495/445 -f 1369/1498/592 1371/1499/592 1370/1500/592 -f 1368/1501/521 1363/1502/521 1371/1503/521 -f 1356/1504/435 1363/1505/435 1360/1506/435 -f 1268/1341/593 1359/1507/593 1356/1508/593 -f 1264/1337/594 1298/1377/595 1265/1476/596 -f 1269/1509/597 1274/1510/597 1300/1383/597 -f 1347/1511/598 1354/1512/598 1348/1513/598 -f 1354/1514/599 1362/1515/599 1361/1516/599 -f 1351/1517/600 1339/1518/600 1338/1519/600 -f 1361/1516/601 1358/1520/601 1357/1521/601 -f 1343/1522/575 1314/1523/575 1330/1524/575 -f 1310/1394/502 1319/1525/502 1318/1412/502 -f 1336/1526/602 1344/1527/602 1373/1528/602 -f 1294/1370/603 1304/1529/603 1316/1408/603 -f 1290/1530/572 1374/1531/572 1314/1413/572 -f 1294/1370/604 1376/1532/604 1375/1533/604 -f 1376/1532/605 1312/1534/605 1319/1535/605 -f 1316/1536/606 1373/1537/606 1376/1538/606 -f 1374/1539/486 1305/1540/486 1314/1541/486 -f 1375/1533/607 1319/1535/607 1309/1542/607 -f 1377/1543/567 1280/1544/567 1279/1545/567 -f 1377/1543/567 1291/1371/567 1378/1546/567 -f 1378/1546/564 1309/1542/564 1280/1544/564 -f 1291/1371/564 1375/1533/564 1378/1546/564 -f 1272/1346/561 1279/1545/561 1264/1547/561 -f 1284/1362/561 1377/1543/561 1272/1346/561 -f 1269/1360/521 1273/1548/521 1270/1549/521 -f 1284/1362/521 1271/1348/521 1273/1548/521 -f 1373/1528/608 1380/1550/608 1379/1551/608 -f 1337/1552/608 1373/1528/608 1379/1551/608 -f 1342/1444/608 1328/1553/608 1380/1550/608 -f 1293/1399/502 1303/1554/502 1304/1387/502 -f 1373/1555/433 1311/1556/433 1288/1557/433 -f 1311/1556/433 1376/1558/433 1288/1557/433 -f 1374/1559/431 1316/1560/431 1317/1561/431 -f 1374/1559/431 1342/1562/431 1289/1563/431 -f 1381/1564/433 1287/1565/433 1283/1566/433 -f 1383/1567/433 1296/1433/433 1277/1372/433 -f 1386/1568/445 1388/1569/445 1385/1570/445 -f 1390/1571/433 1392/1572/433 1389/1573/433 -f 1393/1574/486 1395/1575/486 1389/1576/486 -f 1396/1577/431 1398/1578/431 1399/1579/431 -f 1390/1580/435 1402/1581/435 1400/1582/435 -f 1403/1583/609 1396/1584/609 1404/1585/609 -f 1399/1586/486 1407/1587/486 1405/1588/486 -f 1401/1589/435 1409/1590/435 1402/1581/435 -f 1396/1584/486 1410/1591/486 1404/1585/486 -f 1393/1592/433 1408/1593/433 1401/1594/433 -f 1413/1595/521 1414/1596/521 1412/1597/521 -f 1416/1598/521 1418/1599/521 1415/1600/521 -f 1419/1601/521 1421/1602/521 1416/1598/521 -f 1408/1603/435 1422/1604/435 1409/1590/435 -f 1423/1605/431 1424/1606/431 1425/1607/431 -f 1399/1608/445 1427/1609/445 1410/1610/445 -f 1411/1611/433 1417/1612/433 1416/1613/433 -f 1399/1614/431 1429/1615/431 1426/1616/431 -f 1430/1617/610 1424/1618/610 1431/1619/610 -f 1425/1607/611 1433/1620/611 1423/1605/611 -f 1434/1621/433 1435/1622/433 1436/1623/433 -f 1438/1624/612 1440/1625/612 1437/1626/612 -f 1427/1627/613 1441/1628/613 1442/1629/613 -f 1435/1622/614 1443/1630/614 1444/1631/614 -f 1445/1632/615 1438/1624/615 1437/1626/615 -f 1446/1633/433 1448/1634/433 1449/1635/433 -f 1433/1620/616 1450/1636/616 1451/1637/616 -f 1441/1628/617 1453/1638/617 1442/1629/617 -f 1443/1630/618 1455/1639/618 1444/1631/618 -f 1457/1640/619 1459/1641/619 1456/1642/619 -f 1461/1643/431 1463/1644/431 1460/1645/431 -f 1463/1644/431 1457/1646/431 1464/1647/431 -f 1465/1648/431 1460/1645/431 1452/1649/431 -f 1452/1650/620 1466/1651/620 1453/1652/620 -f 1462/1653/621 1468/1654/621 1467/1655/621 -f 1460/1656/622 1469/1657/622 1466/1651/622 -f 1470/1658/431 1472/1659/431 1473/1660/431 -f 1475/1661/623 1477/1662/623 1474/1663/623 -f 1479/1664/433 1481/1665/433 1478/1666/433 -f 1477/1662/624 1481/1667/624 1482/1668/624 -f 1483/1669/433 1479/1664/433 1478/1666/433 -f 1486/1670/625 1474/1671/625 1485/1672/625 -f 1488/1673/431 1470/1658/431 1487/1674/431 -f 1490/1675/626 1492/1676/626 1489/1677/626 -f 1494/1678/627 1485/1679/627 1493/1680/627 -f 1495/1681/433 1484/1682/433 1483/1669/433 -f 1465/1683/628 1498/1684/628 1496/1685/628 -f 1497/1686/629 1489/1677/629 1498/1684/629 -f 1500/1687/431 1487/1674/431 1499/1688/431 -f 1484/1682/433 1447/1689/433 1446/1633/433 -f 1450/1636/431 1499/1688/431 1451/1637/431 -f 1439/1690/630 1493/1691/630 1440/1625/630 -f 1454/1692/433 1495/1681/433 1455/1639/433 -f 1462/1693/631 1446/1694/631 1449/1695/631 -f 1386/1696/435 1503/1697/435 1501/1698/435 -f 1464/1699/632 1456/1642/632 1403/1700/632 -f 1389/1576/633 1505/1701/633 1504/1702/633 -f 1386/1703/431 1506/1704/431 1502/1705/431 -f 1508/1706/634 1510/1707/634 1507/1708/634 -f 1511/1709/433 1468/1710/433 1449/1635/433 -f 1502/1705/431 1513/1711/431 1514/1712/431 -f 1391/1713/433 1509/1714/433 1392/1572/433 -f 1502/1715/635 1515/1716/635 1503/1697/635 -f 1484/1717/636 1518/1718/636 1516/1719/636 -f 1465/1648/431 1520/1720/431 1461/1643/431 -f 1459/1641/637 1521/1721/637 1522/1722/637 -f 1517/1723/638 1524/1724/638 1518/1725/638 -f 1523/1726/639 1526/1727/639 1524/1728/639 -f 1457/1646/431 1467/1729/431 1458/1730/431 -f 1448/1634/433 1511/1709/433 1449/1635/433 -f 1463/1731/640 1403/1583/640 1469/1732/640 -f 1484/1682/433 1523/1733/433 1517/1734/433 -f 1528/1735/641 1530/1736/642 1508/1706/643 -f 1525/1737/644 1528/1735/644 1526/1738/644 -f 1458/1730/431 1531/1739/431 1521/1740/431 -f 1468/1710/433 1525/1741/433 1523/1733/433 -f 1512/1742/433 1529/1743/433 1468/1710/433 -f 1467/1729/431 1532/1744/431 1531/1739/431 -f 1533/1745/644 1531/1746/644 1532/1747/644 -f 1526/1738/644 1534/1748/644 1533/1745/644 -f 1534/1748/645 1521/1749/646 1531/1746/646 -f 1528/1735/647 1522/1750/648 1534/1748/649 -f 1535/1751/640 1527/1752/640 1448/1753/640 -f 1469/1732/640 1504/1702/640 1535/1751/640 -f 1536/1754/639 1532/1755/639 1520/1756/639 -f 1524/1728/639 1533/1757/639 1536/1754/639 -f 1537/1758/638 1520/1759/638 1519/1760/638 -f 1518/1725/638 1536/1761/638 1537/1758/638 -f 1538/1762/650 1530/1763/650 1512/1764/650 -f 1459/1641/651 1508/1765/651 1538/1762/651 -f 1496/1766/621 1519/1767/621 1465/1768/621 -f 1516/1719/652 1537/1769/652 1496/1766/652 -f 1539/1770/635 1510/1771/635 1391/1772/635 -f 1503/1697/635 1507/1773/635 1539/1770/635 -f 1513/1774/634 1515/1775/634 1514/1776/634 -f 1522/1750/634 1507/1708/634 1515/1775/634 -f 1385/1777/486 1540/1778/486 1506/1779/486 -f 1504/1702/653 1540/1778/653 1403/1583/653 -f 1504/1780/632 1511/1781/632 1527/1782/632 -f 1403/1700/632 1541/1783/632 1504/1780/632 -f 1400/1582/435 1391/1772/435 1390/1580/435 -f 1501/1698/435 1539/1770/435 1400/1582/435 -f 1542/1784/630 1500/1785/630 1450/1786/630 -f 1516/1787/654 1479/1788/654 1484/1789/654 -f 1498/1684/655 1544/1790/655 1516/1787/655 -f 1516/1787/656 1496/1685/656 1498/1684/656 -f 1543/1791/657 1488/1792/657 1500/1793/657 -f 1544/1790/626 1480/1794/626 1479/1788/626 -f 1489/1677/626 1546/1795/626 1544/1790/626 -f 1545/1796/625 1471/1797/625 1488/1798/625 -f 1472/1799/624 1549/1800/624 1473/1801/624 -f 1547/1802/623 1472/1799/623 1471/1803/623 -f 1550/1804/622 1448/1805/622 1447/1806/622 -f 1466/1651/622 1535/1807/622 1550/1804/622 -f 1551/1808/620 1447/1806/620 1454/1809/620 -f 1453/1652/620 1550/1804/620 1551/1808/620 -f 1541/1783/619 1512/1764/619 1511/1781/619 -f 1456/1642/619 1538/1762/619 1541/1783/619 -f 1443/1810/617 1551/1811/617 1454/1812/617 -f 1442/1629/617 1551/1811/617 1552/1813/617 -f 1430/1617/615 1432/1814/615 1425/1815/615 -f 1445/1632/615 1553/1816/615 1430/1617/615 -f 1554/1817/613 1443/1810/613 1428/1818/613 -f 1427/1627/613 1552/1813/613 1554/1817/613 -f 1432/1814/612 1542/1784/612 1450/1786/612 -f 1556/1819/658 1445/1632/658 1555/1820/658 -f 1445/1632/659 1434/1821/659 1436/1822/659 -f 1430/1617/659 1557/1823/659 1445/1632/659 -f 1558/1824/445 1428/1825/445 1411/1826/445 -f 1410/1610/445 1554/1827/445 1558/1824/445 -f 1559/1828/435 1414/1829/435 1398/1830/435 -f 1409/1590/435 1412/1831/435 1559/1828/435 -f 1413/1595/521 1429/1832/521 1405/1833/521 -f 1415/1600/521 1560/1834/521 1413/1595/521 -f 1416/1598/521 1422/1835/521 1419/1601/521 -f 1415/1600/521 1412/1597/521 1422/1835/521 -f 1561/1836/486 1411/1837/486 1393/1574/486 -f 1404/1585/486 1558/1838/486 1561/1836/486 -f 1562/1839/435 1398/1830/435 1397/1840/435 -f 1402/1581/435 1559/1828/435 1562/1839/435 -f 1504/1702/660 1393/1574/660 1389/1576/660 -f 1403/1583/609 1561/1836/609 1504/1702/609 -f 1501/1698/435 1397/1840/435 1386/1696/435 -f 1400/1582/435 1562/1839/435 1501/1698/435 -f 1418/1599/661 1431/1841/661 1560/1834/661 -f 1429/1832/661 1431/1841/661 1424/1842/661 -f 1549/1800/662 1546/1843/662 1492/1844/662 -f 1473/1801/662 1492/1844/662 1491/1845/662 -f 1439/1846/433 1495/1681/433 1494/1847/433 -f 1452/1649/431 1499/1688/431 1465/1648/431 -f 1499/1688/431 1497/1848/431 1465/1648/431 -f 1494/1847/433 1483/1669/433 1486/1849/433 -f 1487/1674/431 1490/1850/431 1497/1848/431 -f 1486/1849/433 1478/1666/433 1475/1851/433 -f 1482/1668/662 1480/1852/662 1546/1843/662 -f 1478/1666/433 1476/1853/433 1475/1851/433 -f 1490/1850/431 1473/1660/431 1491/1854/431 -f 1444/1631/618 1439/1846/618 1438/1855/618 -f 1441/1856/616 1451/1637/616 1452/1649/616 -f 1436/1623/663 1444/1631/663 1438/1855/663 -f 1417/1857/661 1557/1858/661 1418/1599/661 -f 1428/1859/433 1434/1621/433 1417/1612/433 -f 1423/1605/611 1441/1856/611 1426/1616/611 -f 1426/1616/431 1424/1606/431 1423/1605/431 -f 1563/1860/664 1548/1861/664 1547/1862/664 -f 1493/1863/431 1474/1864/431 1482/1865/431 -f 1395/1866/433 1565/1867/433 1564/1868/433 -f 1389/1869/445 1564/1870/445 1390/1871/445 -f 1401/1872/521 1394/1873/521 1393/1874/521 -f 1390/1580/435 1565/1875/435 1401/1589/435 -f 1567/1876/431 1387/1877/431 1566/1878/431 -f 1396/1879/521 1566/1880/521 1397/1881/521 -f 1385/1777/486 1567/1882/486 1396/1584/486 -f 1397/1840/435 1387/1883/435 1386/1696/435 -f 1568/1884/431 1407/1885/431 1406/1886/431 -f 1398/1887/445 1406/1888/445 1399/1889/445 -f 1414/1829/435 1568/1890/435 1398/1830/435 -f 1405/1833/521 1569/1891/521 1414/1596/521 -f 1570/1892/433 1421/1893/433 1420/1894/433 -f 1416/1895/486 1571/1896/486 1411/1897/486 -f 1411/1898/445 1570/1899/445 1408/1900/445 -f 1408/1603/435 1420/1901/435 1419/1902/435 -f 1468/1903/622 1520/1904/622 1467/1905/622 -f 1461/1906/619 1523/1907/619 1446/1908/619 -f 1572/1909/435 1573/1910/435 1574/1911/435 -f 1575/1912/486 1576/1913/486 1577/1914/486 -f 1572/1909/435 1574/1911/435 1578/1915/435 -f 1575/1912/486 1579/1916/486 1576/1913/486 -f 1572/1909/435 1578/1915/435 1580/1917/435 -f 1575/1912/486 1581/1918/486 1579/1916/486 -f 1572/1909/435 1580/1917/435 1582/1919/435 -f 1575/1912/486 1583/1920/486 1581/1918/486 -f 1572/1909/435 1582/1919/435 1584/1921/435 -f 1575/1912/486 1585/1922/486 1583/1920/486 -f 1572/1909/435 1584/1921/435 1586/1923/435 -f 1575/1912/486 1587/1924/486 1585/1922/486 -f 1572/1909/435 1586/1923/435 1588/1925/435 -f 1575/1912/486 1589/1926/486 1587/1924/486 -f 1572/1909/435 1588/1925/435 1573/1910/435 -f 1575/1912/486 1577/1914/486 1589/1926/486 -f 1563/1927/665 1592/1928/665 1590/1929/665 -f 1482/1930/658 1563/1931/658 1590/1932/658 -f 1591/1933/666 1594/1934/666 1592/1935/666 -f 1563/1936/667 1593/1937/667 1591/1938/667 -f 1555/1939/668 1592/1940/668 1594/1941/668 -f 1555/1942/669 1593/1943/669 1556/1944/669 -f 1595/1945/670 1596/1946/670 1597/1947/670 -f 1598/1948/671 1596/1949/671 1594/1950/671 -f 1599/1951/672 1601/1952/672 1598/1953/672 -f 1601/1954/673 1602/1955/673 1603/1956/673 -f 1602/1955/674 1605/1957/674 1603/1956/674 -f 1605/1958/675 1606/1959/675 1607/1960/675 -f 1607/1961/676 1608/1962/676 1606/1963/676 -f 1595/1945/677 1608/1964/677 1593/1965/677 -f 1597/1966/678 1594/1967/678 1595/1968/678 -f 1594/1941/679 1599/1951/679 1598/1953/679 -f 1606/1959/680 1593/1937/680 1607/1960/680 -f 1591/1969/681 1595/1968/681 1593/1970/681 -f 1597/1971/682 1596/1972/682 1592/1973/682 -f 1596/1949/683 1599/1974/683 1592/1975/683 -f 1606/1963/684 1608/1962/684 1591/1976/684 -f 1608/1977/685 1597/1978/685 1591/1979/685 -f 1649/1980/686 1647/1981/686 1642/1982/686 -f 1659/1983/687 1660/1984/687 1656/1985/687 -f 1662/1986/688 1641/1987/688 1663/1988/688 -f 1664/1989/689 1654/1990/689 1662/1986/689 -f 1650/1991/690 1664/1989/690 1665/1992/690 -f 1648/1993/691 1665/1992/691 1666/1994/691 -f 1646/1995/692 1666/1994/692 1667/1996/692 -f 1668/1997/693 1646/1995/693 1667/1996/693 -f 1663/1988/694 1644/1998/694 1668/1997/694 -f 1683/1999/695 1685/2000/695 1686/2001/695 -f 1687/2002/695 1689/2003/695 1690/2004/695 -f 1691/2005/695 1693/2006/695 1694/2007/695 -f 1696/2008/696 1698/2009/696 1695/2010/696 -f 1700/2011/696 1702/2012/696 1699/2013/696 -f 1704/2014/696 1706/2015/696 1703/2016/696 -f 1708/2017/696 1699/2013/696 1707/2018/696 -f 1701/2019/697 1683/1999/697 1704/2014/697 -f 1694/2007/695 1709/2020/695 1710/2021/695 -f 1697/2022/696 1707/2018/696 1698/2009/696 -f 1697/2022/697 1710/2021/697 1708/2017/697 -f 1708/2017/697 1687/2002/697 1700/2011/697 -f 1696/2008/697 1694/2007/697 1697/2022/697 -f 1700/2011/697 1690/2004/697 1701/2019/697 -f 1704/2014/697 1686/2001/697 1705/2023/697 -f 1701/2019/696 1703/2016/696 1702/2012/696 -f 1690/2004/695 1684/2024/695 1683/1999/695 -f 1712/2025/697 1696/2008/697 1711/2026/697 -f 1711/2026/696 1695/2010/696 1713/2027/696 -f 1712/2025/695 1692/2028/695 1691/2005/695 -f 1702/2012/696 1716/2029/696 1715/2030/696 -f 1698/2009/696 1718/2031/696 1717/2032/696 -f 1707/2018/696 1719/2033/696 1718/2031/696 -f 1699/2013/696 1715/2030/696 1719/2033/696 -f 1695/2010/696 1717/2032/696 1720/2034/696 -f 1721/2035/698 1723/2036/698 1724/2037/698 -f 1725/2038/698 1727/2039/698 1728/2040/698 -f 1729/2041/698 1731/2042/698 1732/2043/698 -f 1734/2044/699 1736/2045/699 1733/2046/699 -f 1738/2047/699 1740/2048/699 1737/2049/699 -f 1742/2050/699 1744/2051/699 1741/2052/699 -f 1737/2049/699 1746/2053/699 1745/2054/699 -f 1744/2051/700 1726/2055/700 1739/2056/700 -f 1730/2057/698 1748/2058/698 1731/2042/698 -f 1745/2054/699 1735/2059/699 1734/2044/699 -f 1746/2053/700 1730/2057/700 1735/2059/700 -f 1740/2048/700 1747/2060/700 1746/2053/700 -f 1736/2045/700 1730/2057/700 1729/2041/700 -f 1739/2056/700 1725/2038/700 1740/2048/700 -f 1743/2061/700 1721/2035/700 1744/2051/700 -f 1741/2052/699 1739/2056/699 1738/2047/699 -f 1726/2055/698 1724/2037/698 1727/2039/698 -f 1749/2062/700 1729/2041/700 1750/2063/700 -f 1733/2046/699 1749/2062/699 1751/2064/699 -f 1750/2063/698 1732/2043/698 1752/2065/698 -f 1753/2066/701 1741/2052/701 1738/2047/701 -f 1756/2067/701 1734/2044/701 1755/2068/701 -f 1757/2069/701 1745/2054/701 1756/2067/701 -f 1757/2069/701 1738/2047/701 1737/2049/701 -f 1755/2068/701 1733/2046/701 1758/2070/701 -f 1714/2071/702 1750/2072/702 1752/2073/702 -f 1685/2074/703 1724/2075/703 1723/2076/703 -f 1715/2077/704 1754/2078/704 1753/2079/704 -f 1689/2080/705 1728/2081/705 1727/2082/705 -f 1717/2083/706 1756/2084/706 1755/2085/706 -f 1693/2086/705 1732/2087/705 1731/2088/705 -f 1713/2089/521 1749/2090/521 1711/2091/521 -f 1705/2092/445 1722/2093/445 1743/2094/445 -f 1684/2095/705 1727/2082/705 1724/2075/705 -f 1719/2096/706 1753/2079/706 1757/2097/706 -f 1718/2098/706 1757/2097/706 1756/2084/706 -f 1709/2099/705 1731/2088/705 1748/2100/705 -f 1711/2091/707 1750/2072/707 1712/2101/707 -f 1685/2102/708 1722/2093/708 1686/2103/708 -f 1688/2104/702 1725/2105/702 1728/2106/702 -f 1709/2107/709 1747/2108/709 1710/2109/709 -f 1687/2110/710 1747/2111/710 1725/2112/710 -f 1751/2113/711 1720/2114/711 1758/2115/711 -f 1720/2114/706 1755/2085/706 1758/2115/706 -f 1692/2116/705 1752/2117/705 1732/2087/705 -f 1706/2118/712 1743/2094/712 1742/2119/712 -f 1716/2120/713 1742/2119/713 1754/2121/713 -f 1716/2029/696 1703/2016/696 1706/2015/696 -f 1754/2122/701 1742/2050/701 1741/2052/701 -f 1695/2010/696 1720/2034/696 1713/2027/696 -f 1758/2070/701 1733/2046/701 1751/2064/701 -f 1772/2123/521 1759/2124/521 1762/2125/521 -f 1772/2123/521 1761/2126/521 1774/2127/521 -f 1775/2128/707 1769/2129/707 1768/2130/707 -f 1778/2131/521 1763/2132/521 1777/2133/521 -f 1779/2134/521 1763/2132/521 1767/2135/521 -f 1780/2136/521 1767/2135/521 1770/2137/521 -f 1780/2136/707 1771/2138/707 1781/2139/707 -f 1782/2140/521 1765/2141/521 1760/2142/521 -f 1782/2140/521 1759/2124/521 1773/2143/521 -f 1783/2144/707 1766/2145/707 1765/2141/707 -f 1784/2146/707 1771/2138/707 1766/2145/707 -f 1778/2131/521 1768/2130/521 1764/2147/521 -f 1774/2127/521 1769/2129/521 1776/2148/521 -f 1814/2149/521 1812/2150/521 1820/2151/521 -f 808/860/431 809/943/431 810/861/431 -f 811/863/432 812/2152/432 813/864/432 -f 816/866/433 817/1016/433 818/867/433 -f 820/869/434 821/981/434 822/870/434 -f 824/872/431 825/2153/431 826/873/431 -f 828/875/431 829/1165/431 830/876/431 -f 831/878/433 832/1018/433 833/879/433 -f 835/881/433 836/1020/433 837/882/433 -f 840/884/431 841/1058/431 842/885/431 -f 843/887/435 844/2154/435 841/888/435 -f 845/890/436 846/1067/436 847/891/436 -f 850/893/437 851/2155/437 852/894/437 -f 854/896/431 845/1160/431 855/897/431 -f 856/899/438 857/1154/438 858/900/438 -f 861/902/439 852/2156/439 851/903/439 -f 863/905/440 864/2157/440 865/906/440 -f 866/908/433 849/2158/433 852/909/433 -f 862/911/431 865/2159/431 860/912/431 -f 872/914/714 873/1174/715 874/915/715 -f 823/917/444 826/1109/444 877/918/444 -f 878/920/445 879/2160/445 825/921/445 -f 880/923/446 871/2161/446 870/924/446 -f 891/926/447 892/2162/447 893/927/447 -f 895/929/445 896/2163/445 897/930/445 -f 899/932/448 896/2164/448 895/933/448 -f 900/935/449 898/2165/449 895/936/449 -f 901/938/450 811/942/450 814/939/450 -f 903/941/451 878/2166/451 811/942/451 -f 809/943/452 898/2165/452 900/935/452 -f 809/944/453 816/2167/453 899/932/453 -f 824/922/454 812/2168/454 811/945/454 -f 905/946/455 906/1022/455 907/947/455 -f 855/897/716 845/1160/717 848/949/717 -f 909/951/459 856/2169/459 859/952/459 -f 833/879/718 905/1019/718 904/954/718 -f 912/955/461 913/958/461 914/956/461 -f 913/958/462 927/960/462 928/959/462 -f 927/960/462 935/962/462 936/961/462 -f 935/962/462 943/964/462 944/963/462 -f 943/964/462 891/926/462 890/928/462 -f 909/965/463 910/2170/463 952/966/463 -f 953/968/464 954/1151/464 955/969/464 -f 957/971/465 958/1005/465 959/972/465 -f 951/967/463 952/966/463 962/974/463 -f 822/870/466 964/982/466 965/976/466 -f 957/978/467 960/998/467 966/979/467 -f 821/981/468 966/2171/468 964/982/468 -f 830/876/438 829/1165/438 967/983/438 -f 962/974/433 952/966/433 969/985/433 -f 965/976/431 964/982/431 971/987/431 -f 952/966/433 910/2170/433 973/989/433 -f 959/972/469 974/1166/469 975/990/469 -f 967/983/431 976/1167/431 977/991/431 -f 955/969/433 978/1153/433 979/992/433 -f 859/993/470 980/2172/470 973/994/470 -f 964/982/471 966/2171/471 981/996/471 -f 858/900/431 982/1152/431 980/997/431 -f 960/998/472 975/2173/472 981/999/472 -f 983/1000/473 957/978/473 821/980/473 -f 984/1002/431 819/871/431 822/870/431 -f 985/1003/433 986/1008/433 951/967/433 -f 983/1004/474 987/1164/474 958/1005/474 -f 989/1006/433 954/1151/433 953/968/433 -f 986/1008/433 990/1017/433 909/965/433 -f 991/1009/475 856/2174/475 909/1010/475 -f 992/1012/431 857/1154/431 856/899/431 -f 808/860/476 992/1012/476 991/1013/476 -f 809/1014/477 991/1009/477 990/1011/477 -f 817/1016/478 816/866/478 990/1017/478 -f 837/882/479 989/1006/479 988/1007/479 -f 833/879/480 987/1164/480 983/1004/480 -f 836/1020/478 817/1016/478 986/1008/478 -f 993/1021/481 994/1025/481 819/871/481 -f 905/946/482 983/1000/482 820/1001/482 -f 996/1023/476 828/875/476 827/877/476 -f 994/1025/483 906/1116/483 820/869/483 -f 979/1026/484 978/1150/484 997/1027/484 -f 970/1029/484 969/1032/484 999/1030/484 -f 969/1032/484 973/1052/484 1001/1033/484 -f 974/1034/485 971/2175/485 981/1035/485 -f 1002/1037/486 1003/1162/486 997/1038/486 -f 1004/1040/486 1005/1149/486 999/1041/486 -f 1006/1043/487 1007/2176/487 1008/1044/487 -f 980/1046/484 982/1148/484 1005/1047/484 -f 972/1049/484 971/1056/484 1007/1050/484 -f 973/1052/492 980/1046/490 1004/1048/491 -f 977/1053/484 976/1161/484 1003/1054/484 -f 971/1056/489 974/1163/490 1008/1057/488 -f 841/1058/431 1009/2177/431 1010/1059/431 -f 1011/1060/433 846/1137/433 1012/1061/433 -f 844/1063/440 1014/2178/440 1009/1064/440 -f 845/890/437 1015/2179/437 1012/1066/437 -f 1009/1068/719 862/1075/720 867/1069/721 -f 1012/1071/722 849/1077/722 866/1072/722 -f 1009/1068/723 1014/1156/724 863/1074/725 -f 1015/1076/499 850/1157/499 849/1077/499 -f 892/1078/446 1029/1081/446 1030/1079/446 -f 1029/1081/446 871/2161/446 880/923/446 -f 1031/1082/446 1032/1085/446 1028/1083/446 -f 1030/1079/446 880/923/446 1032/1085/446 -f 1033/1086/446 1031/1082/446 885/1084/446 -f 893/1080/446 1030/1079/446 1031/1082/446 -f 947/1088/462 1036/1091/462 1037/1089/462 -f 944/963/462 890/928/462 1037/1089/462 -f 939/1092/462 1039/1093/462 1036/1091/462 -f 936/961/462 944/963/462 1036/1091/462 -f 931/1094/462 1041/1095/462 1039/1093/462 -f 928/959/462 936/961/462 1039/1093/462 -f 921/1096/462 1043/1097/462 1041/1095/462 -f 914/956/462 928/959/462 1041/1095/462 -f 920/1098/461 1045/1099/461 1043/1097/461 -f 1045/1099/461 911/957/461 914/956/461 -f 883/1090/447 1037/1089/447 1033/1100/447 -f 890/928/447 893/927/447 1033/1100/447 -f 1032/1085/446 889/1103/446 888/1102/446 -f 880/923/446 881/925/446 889/1103/446 -f 877/1104/431 879/2180/431 1026/1105/431 -f 825/1107/501 920/2181/501 919/1108/501 -f 877/918/502 826/1109/502 924/1110/502 -f 923/1111/433 879/2182/433 877/918/433 -f 826/1109/726 919/1108/726 1027/2183/726 -f 826/1109/501 1027/2183/501 916/1112/501 -f 834/880/727 904/954/727 1047/1113/728 -f 994/1025/729 1048/1145/729 907/1115/729 -f 904/948/455 907/947/455 908/1117/455 -f 810/861/452 900/935/452 1050/1119/452 -f 816/866/451 815/868/451 1051/1121/451 -f 1051/1121/450 897/1146/450 896/1123/450 -f 900/935/449 894/937/449 1052/1124/449 -f 894/931/445 897/930/445 902/1125/445 -f 1053/1127/431 1048/1145/431 994/1025/431 -f 1054/1128/431 1055/1155/431 996/1023/431 -f 835/881/433 838/883/433 1057/1129/433 -f 1058/1131/433 831/878/433 834/880/433 -f 903/941/433 815/868/433 818/867/433 -f 807/862/431 810/861/431 1049/1120/431 -f 1060/1133/431 1049/1120/431 824/872/431 -f 1061/1134/730 1062/1212/730 1063/1135/730 -f 1011/1060/433 1058/1131/433 1046/1114/433 -f 1056/1130/433 1057/1129/433 844/1138/433 -f 1052/1126/445 902/1125/445 814/1140/445 -f 1050/1119/449 1052/1124/449 813/1142/449 -f 1049/1120/452 1050/1119/452 812/1143/452 -f 1047/1118/455 908/1117/455 848/892/455 -f 1046/1114/731 1047/1113/732 847/1144/733 -f 1048/1145/734 855/897/735 908/950/736 -f 815/868/451 903/941/451 901/938/451 -f 1051/1121/450 901/938/450 902/940/450 -f 853/898/431 855/897/431 1048/1145/431 -f 807/862/431 1060/1133/431 839/886/431 -f 1059/1132/433 1056/1130/433 843/1139/433 -f 818/867/433 835/881/433 1056/1130/433 -f 807/862/431 1054/1128/431 995/1024/431 -f 982/1148/484 977/1053/484 1002/1055/484 -f 1005/1149/486 1002/1037/486 1000/1039/486 -f 978/1150/484 970/1029/484 1000/1031/484 -f 995/1024/476 827/877/476 992/1012/476 -f 837/882/478 836/1020/478 985/1003/478 -f 989/1006/433 985/1003/433 961/975/433 -f 968/984/431 977/991/431 982/1152/431 -f 955/969/433 962/974/433 970/986/433 -f 857/1154/438 830/876/438 968/984/438 -f 961/975/463 962/974/463 955/969/463 -f 876/919/435 843/887/435 840/889/435 -f 1060/1133/431 823/874/431 840/884/431 -f 818/867/433 817/1016/433 836/1020/433 -f 827/877/431 830/876/431 857/1154/431 -f 844/1138/433 1057/1129/433 1058/1131/433 -f 1057/1129/433 838/883/433 831/878/433 -f 1055/1155/431 1053/1127/431 993/1021/431 -f 1014/1156/737 1013/1073/495 866/1072/495 -f 1015/1076/494 1010/1070/494 867/1069/494 -f 844/1138/433 1011/1060/433 1013/1062/433 -f 854/896/431 1010/1059/431 1015/1159/431 -f 976/1161/484 972/1049/484 1006/1051/484 -f 1003/1162/487 1006/1043/487 998/1045/487 -f 974/1163/484 979/1026/484 998/1028/484 -f 996/1023/481 993/1021/481 984/1002/481 -f 832/1018/479 988/1007/479 987/1164/479 -f 988/1007/433 953/968/433 958/1005/433 -f 828/875/431 984/1002/431 963/977/431 -f 956/970/433 979/992/433 974/1166/433 -f 967/983/431 965/976/431 972/988/431 -f 963/977/466 965/976/466 967/983/466 -f 958/1005/464 953/968/464 956/970/464 -f 867/913/431 860/912/431 851/1168/431 -f 863/1170/433 866/908/433 861/910/433 -f 864/1172/439 861/902/439 860/904/439 -f 841/1058/431 854/896/431 853/898/431 -f 838/883/433 837/882/433 832/1018/433 -f 873/1174/738 1065/1235/738 1066/1175/738 -f 1064/1136/739 1063/1135/739 1067/1176/739 -f 1070/1178/739 1071/1216/739 1072/1179/739 -f 1074/1181/740 1075/1215/740 1076/1182/740 -f 1069/1180/519 1072/1179/519 1078/1184/519 -f 1079/1186/518 1064/1136/518 1068/1177/518 -f 1072/1188/445 1081/2184/445 1082/1189/445 -f 1083/1191/741 1084/1210/741 1085/1192/741 -f 1074/1194/435 1088/2185/435 1089/1195/435 -f 1064/1197/742 1085/2186/742 1084/1198/742 -f 873/1200/521 1090/2187/521 1086/1201/521 -f 1061/1203/743 1084/2188/743 1091/1204/743 -f 872/1206/435 1093/2189/435 1090/1207/435 -f 1094/1209/744 1095/1259/745 1084/1210/744 -f 1096/1211/746 1097/2190/747 1062/1212/747 -f 1087/1213/748 872/914/749 875/916/750 -f 1087/1213/526 1098/1214/526 1075/1215/526 -f 1071/1216/747 1097/2190/747 1096/1211/751 -f 1081/1217/752 1095/1259/753 1094/1209/752 -f 1096/1219/754 1095/2191/754 1081/1220/754 -f 1093/1222/521 1100/1257/521 1101/1223/521 -f 1088/1225/433 1082/1218/433 1094/1209/433 -f 1093/1222/521 1099/1224/521 1102/1227/521 -f 1079/1202/521 1086/1201/521 1085/1229/521 -f 1093/1231/433 1083/1191/433 1086/1193/433 -f 1078/1190/445 1082/1189/445 1088/1233/445 -f 1079/1186/518 1080/1187/518 1065/1235/518 -f 1073/1183/519 1077/1185/519 1078/1184/519 -f 1104/1236/433 1102/2192/433 1099/1237/433 -f 1094/1239/445 1104/2193/445 1103/1240/445 -f 1089/1241/445 1105/1252/445 1106/1242/445 -f 1083/1244/486 1102/2194/486 1104/1245/486 -f 1106/1247/435 1105/1250/435 1100/1248/435 -f 1105/1250/435 1108/2195/435 1101/1251/435 -f 1103/1240/445 1108/2196/445 1105/1252/445 -f 872/1253/431 1087/2197/431 1106/1254/431 -f 872/1256/521 1107/2198/521 1100/1257/521 -f 1099/1237/433 1101/2199/433 1108/1258/433 -f 1095/1259/755 1109/2200/755 1091/1260/755 -f 1096/1261/756 1110/2201/756 1109/1262/756 -f 1092/1264/757 1091/2202/757 1109/1265/757 -f 1061/1267/758 1092/2203/758 1110/1268/758 -f 1112/1270/536 1113/2204/536 1114/1271/536 -f 1150/2205/431 1139/1278/431 1140/1277/431 -f 1140/1277/431 1141/1275/431 1150/2205/431 -f 1141/1275/431 1142/2206/431 1143/1273/431 -f 1150/2205/431 1141/1275/431 1137/2207/431 -f 1143/1273/431 1144/2208/431 1148/1274/431 -f 1144/2208/431 1145/2209/431 1148/1274/431 -f 1145/2209/431 1146/2210/431 1147/2211/431 -f 1148/1274/431 1145/2209/431 1147/2211/431 -f 1148/1274/431 1149/2212/431 1141/1275/431 -f 1149/2212/431 1138/2213/431 1141/1275/431 -f 1138/2213/431 1137/2207/431 1141/1275/431 -f 1114/1276/537 1113/2214/537 1140/1277/537 -f 1151/2215/433 1152/2216/433 1160/1280/433 -f 1152/2216/433 1153/2217/433 1160/1280/433 -f 1153/2217/433 1154/2218/433 1160/1280/433 -f 1154/2218/433 1155/1281/433 1160/1280/433 -f 1155/1281/433 1156/2219/433 1136/2220/433 -f 1156/2219/433 1157/2221/433 1136/2220/433 -f 1136/2220/433 1135/2222/433 1155/1281/433 -f 1135/2222/433 1158/1279/433 1155/1281/433 -f 1158/1279/433 1159/2223/433 1160/1280/433 -f 1160/1280/433 1161/1283/433 1151/2215/433 -f 1161/1283/433 1162/2224/433 1151/2215/433 -f 1111/1282/538 1162/2224/538 1161/1283/538 -f 1190/1285/539 1191/1288/539 1192/1286/539 -f 1191/1288/540 1193/2225/540 1194/1289/540 -f 1193/1290/541 1195/1293/541 1196/1291/541 -f 1195/1293/542 1197/2226/542 1198/1294/542 -f 1197/1295/543 1199/1298/543 1200/1296/543 -f 1199/1298/544 1201/1300/544 1202/1299/544 -f 1201/1300/545 1203/2227/545 1204/1301/545 -f 1203/1302/546 1205/1305/546 1206/1303/546 -f 1205/1305/547 1207/1307/547 1208/1306/547 -f 1207/1307/548 1209/1309/548 1210/1308/548 -f 1209/1309/549 1211/2228/549 1212/1310/549 -f 1211/1311/550 1190/1285/550 1189/1287/550 -f 1213/1315/759 1214/2229/759 1196/1316/759 -f 1198/2230/760 1200/1313/760 1213/1315/760 -f 1200/1313/761 1202/2231/762 1216/1314/761 -f 1202/2231/763 1215/2232/764 1216/1314/765 -f 1213/1315/766 1196/1316/766 1198/2230/766 -f 1217/2233/767 1218/2234/767 1189/2235/768 -f 1189/2235/769 1192/2236/770 1217/2233/770 -f 1192/2236/771 1194/2237/771 1217/2233/771 -f 1194/2237/772 1196/1316/772 1221/1318/772 -f 1196/1316/552 1214/2229/552 1219/2238/552 -f 1220/1317/552 1196/1316/552 1219/2238/552 -f 1221/1318/773 1217/2233/773 1194/2237/773 -f 1222/1320/774 1223/2239/774 1208/2240/774 -f 1210/1321/775 1212/2241/775 1224/1319/775 -f 1212/2241/776 1189/2235/777 1224/1319/776 -f 1222/1320/774 1208/2240/774 1210/1321/774 -f 1189/2235/778 1218/2234/779 1224/1319/779 -f 1225/1322/780 1215/2232/781 1202/2231/782 -f 1202/2231/783 1204/2242/784 1225/1322/784 -f 1204/2242/785 1206/1323/785 1225/1322/785 -f 1206/1323/786 1208/2240/786 1226/1324/786 -f 1208/2240/786 1223/2239/786 1226/1324/786 -f 1201/2243/787 1178/2244/788 1180/1325/789 -f 1182/1326/790 1184/2245/790 1207/2246/790 -f 1203/2247/791 1201/2243/792 1180/1325/791 -f 1182/1326/790 1207/2246/790 1205/1327/790 -f 1203/2247/793 1180/1325/793 1205/1327/793 -f 1195/1333/794 1171/2248/794 1174/1328/794 -f 1176/1329/795 1178/2244/796 1201/2243/797 -f 1197/2249/798 1195/1333/798 1174/1328/798 -f 1176/1329/799 1201/2243/800 1199/1330/799 -f 1197/2249/801 1174/1328/801 1199/1330/801 -f 1190/2250/802 1166/2251/803 1165/2252/803 -f 1190/2250/804 1165/2252/805 1191/2253/805 -f 1165/2252/806 1168/2254/806 1193/2255/806 -f 1193/2255/807 1191/2253/807 1165/2252/807 -f 1171/2248/557 1195/1333/557 1172/1332/557 -f 1195/1333/808 1193/2255/808 1168/2254/808 -f 1227/1331/557 1195/1333/557 1168/2254/557 -f 1207/2246/809 1184/2245/809 1186/2256/809 -f 1188/1335/810 1166/2251/810 1190/2250/811 -f 1209/1334/809 1207/2246/809 1186/2256/809 -f 1186/2256/812 1188/1335/812 1209/1334/812 -f 1188/1335/813 1190/2250/814 1211/1336/813 -f 1264/1337/815 1265/1476/816 1266/1338/431 -f 1265/1340/445 1267/2257/445 1268/1341/445 -f 1267/1343/433 1269/1509/433 1270/1344/433 -f 1272/1346/521 1264/1547/521 1263/1347/521 -f 1263/2258/435 1266/2259/435 1271/1351/435 -f 1266/2259/435 1268/1349/435 1271/1351/435 -f 1268/1349/435 1270/2260/435 1273/1350/435 -f 1274/1352/502 1275/1359/502 1276/1353/502 -f 1278/1355/502 1279/2261/502 1280/1356/502 -f 1282/1358/560 1283/1366/560 1276/1353/560 -f 1269/1360/561 1285/2262/561 1286/1361/561 -f 1267/1363/817 1265/2263/817 1282/1364/817 -f 1290/1530/563 1276/1353/563 1289/2264/563 -f 1276/1353/563 1283/1366/563 1288/1368/563 -f 1289/2264/563 1276/1353/563 1288/1368/563 -f 1292/1369/564 1293/2265/564 1294/1370/564 -f 1277/1372/433 1296/1433/433 1297/1373/433 -f 1278/1375/818 1281/2266/818 1299/1376/818 -f 1282/1358/560 1283/1366/560 1299/1378/560 -f 1285/1380/502 1300/2267/502 1295/1381/502 -f 1300/1383/566 1274/1510/566 1277/1372/566 -f 1286/1361/567 1285/2262/567 1292/1369/567 -f 1303/1386/433 1297/1373/433 1296/1433/433 -f 1296/1433/433 1301/1384/433 1303/1386/433 -f 1304/1387/502 1303/1554/502 1302/1388/819 -f 1287/1390/607 1306/2268/607 1307/1391/607 -f 1281/1357/502 1280/1356/502 1309/1393/502 -f 1276/1353/563 1290/1530/563 1296/1395/563 -f 1299/1376/570 1281/2266/570 1310/1396/570 -f 1287/1367/563 1306/2269/563 1299/1378/563 -f 1292/1382/502 1295/1381/502 1297/1398/502 -f 1308/1400/486 1312/2270/486 1313/1401/486 -f 1314/1403/484 1305/1389/484 1302/1388/484 -f 1312/1405/484 1308/2271/484 1307/1406/484 -f 1316/1408/820 1304/1529/820 1305/1409/820 -f 1287/1367/572 1308/2272/572 1311/1411/572 -f 1318/1412/502 1319/1525/502 1312/1405/819 -f 1296/1395/572 1290/1530/572 1314/1413/572 -f 1307/1417/821 1306/1397/821 1318/1415/821 -f 1306/1397/822 1310/1396/822 1318/1415/822 -f 1306/1397/431 1320/2273/431 1321/1418/431 -f 1290/1419/433 1276/2274/433 1322/1420/433 -f 1325/1422/431 1326/2275/431 1327/1423/431 -f 1330/2276/433 1314/2277/433 1329/1427/433 -f 1314/2277/823 1290/1425/823 1329/1427/823 -f 1331/1428/433 1332/2278/433 1333/1429/433 -f 1337/2279/824 1306/1397/824 1336/1432/824 -f 1306/1397/825 1307/1417/825 1336/1432/825 -f 1296/1433/433 1331/1428/433 1334/1430/433 -f 1324/1424/431 1327/1423/431 1287/1434/431 -f 1328/1436/579 1290/2280/579 1338/1437/579 -f 1326/1439/502 1340/1460/502 1341/1440/502 -f 1343/1442/826 1330/2281/826 1329/1443/826 -f 1335/1445/575 1307/2282/575 1345/1446/575 -f 1299/1448/576 1321/2283/576 1322/1449/576 -f 1276/1450/502 1283/2284/502 1299/1448/502 -f 1321/1451/563 1320/2285/563 1323/1452/563 -f 1296/1457/576 1290/2286/576 1323/1458/576 -f 1340/1460/502 1346/2287/502 1347/1461/502 -f 1331/1462/502 1348/2288/502 1349/1463/502 -f 1306/1465/502 1337/2289/502 1350/1466/502 -f 1346/1468/827 1352/2290/827 1353/1469/827 -f 1354/1471/828 1355/1489/828 1349/1472/828 -f 1267/1343/582 1268/1345/582 1356/1474/582 -f 1265/1476/583 1358/1480/583 1359/1477/583 -f 1356/1474/586 1360/1481/586 1361/1478/586 -f 1362/1479/587 1363/1484/587 1359/1477/587 -f 1360/1481/586 1364/1486/586 1365/1482/586 -f 1362/1479/587 1366/1488/587 1367/1483/587 -f 1360/1481/433 1368/2291/433 1369/1485/433 -f 1367/1483/431 1370/2292/431 1371/1487/431 -f 1353/1469/829 1352/2290/829 1366/1488/829 -f 1354/1471/830 1361/1478/830 1365/1482/830 -f 1352/1490/831 1346/2293/831 1349/1491/831 -f 1365/1493/832 1366/1494/832 1352/1490/832 -f 1366/1494/833 1365/1493/833 1364/1495/833 -f 1369/1497/445 1370/2294/445 1367/1496/445 -f 1369/1498/592 1368/2295/592 1371/1499/592 -f 1368/1501/521 1360/2296/521 1363/1502/521 -f 1356/1504/435 1359/2297/435 1363/1505/435 -f 1268/1341/834 1266/1342/834 1359/1507/834 -f 1264/1337/835 1278/1375/595 1298/1377/595 -f 1269/1509/597 1267/1343/597 1274/1510/597 -f 1347/1511/836 1353/2298/836 1354/1512/836 -f 1354/1514/837 1353/2299/837 1362/1515/837 -f 1351/1517/600 1350/2300/600 1339/1518/600 -f 1361/1516/838 1362/1515/838 1358/1520/838 -f 1343/1522/575 1372/2301/575 1314/1523/575 -f 1310/1394/502 1309/1393/502 1319/1525/502 -f 1336/1526/826 1335/2302/826 1344/1527/826 -f 1294/1370/607 1293/2265/607 1304/1529/607 -f 1290/1530/572 1289/2264/572 1374/1531/572 -f 1294/1370/604 1316/1408/604 1376/1532/604 -f 1376/1532/571 1313/2303/571 1312/1534/571 -f 1316/1536/606 1342/2304/606 1373/1537/606 -f 1374/1539/486 1317/2305/486 1305/1540/486 -f 1375/1533/839 1376/1532/839 1319/1535/839 -f 1377/1543/567 1378/1546/567 1280/1544/567 -f 1377/1543/567 1286/1361/567 1291/1371/567 -f 1378/1546/564 1375/1533/564 1309/1542/564 -f 1291/1371/564 1294/1370/564 1375/1533/564 -f 1272/1346/561 1377/1543/561 1279/1545/561 -f 1284/1362/561 1286/1361/561 1377/1543/561 -f 1269/1360/521 1284/1362/521 1273/1548/521 -f 1284/1362/521 1272/1346/521 1271/1348/521 -f 1373/1528/608 1342/1444/608 1380/1550/608 -f 1337/1552/840 1336/1526/840 1373/1528/840 -f 1342/1444/841 1329/1443/841 1328/1553/841 -f 1293/1399/502 1297/1398/502 1303/1554/502 -f 1373/1555/433 1344/2306/433 1311/1556/433 -f 1311/1556/433 1313/2307/433 1376/1558/433 -f 1374/1559/431 1289/1563/431 1316/1560/431 -f 1374/1559/431 1343/2308/431 1342/1562/431 -f 1381/1564/433 1382/2309/433 1287/1565/433 -f 1383/1567/433 1384/2310/433 1296/1433/433 -f 1386/1568/445 1387/2311/445 1388/1569/445 -f 1390/1571/433 1391/1713/433 1392/1572/433 -f 1393/1574/486 1394/2312/486 1395/1575/486 -f 1396/1577/431 1397/2313/431 1398/1578/431 -f 1390/1580/435 1401/1589/435 1402/1581/435 -f 1403/1583/842 1385/1777/842 1396/1584/842 -f 1399/1586/486 1406/2314/486 1407/1587/486 -f 1401/1589/435 1408/1603/435 1409/1590/435 -f 1396/1584/486 1399/2315/486 1410/1591/486 -f 1393/1592/433 1411/2316/433 1408/1593/433 -f 1413/1595/521 1405/1833/521 1414/1596/521 -f 1416/1598/521 1417/1857/521 1418/1599/521 -f 1419/1601/521 1420/2317/521 1421/1602/521 -f 1408/1603/435 1419/1902/435 1422/1604/435 -f 1399/1608/445 1426/2318/445 1427/1609/445 -f 1411/1611/433 1428/1859/433 1417/1612/433 -f 1399/1614/431 1405/2319/431 1429/1615/431 -f 1430/1617/843 1425/1815/843 1424/1618/843 -f 1425/1607/844 1432/2320/844 1433/1620/844 -f 1438/1624/612 1439/1690/612 1440/1625/612 -f 1427/1627/613 1426/2321/613 1441/1628/613 -f 1435/1622/614 1428/1859/614 1443/1630/614 -f 1445/1632/615 1436/1822/615 1438/1624/615 -f 1446/1633/433 1447/1689/433 1448/1634/433 -f 1433/1620/616 1432/2320/616 1450/1636/616 -f 1441/1628/617 1452/2322/617 1453/1638/617 -f 1443/1630/618 1454/1692/618 1455/1639/618 -f 1457/1640/619 1458/2323/619 1459/1641/619 -f 1461/1643/431 1462/2324/431 1463/1644/431 -f 1463/1644/431 1462/2324/431 1457/1646/431 -f 1465/1648/431 1461/1643/431 1460/1645/431 -f 1452/1650/620 1460/1656/620 1466/1651/620 -f 1462/1653/621 1449/2325/621 1468/1654/621 -f 1460/1656/622 1463/2326/622 1469/1657/622 -f 1470/1658/431 1471/2327/431 1472/1659/431 -f 1475/1661/623 1476/2328/623 1477/1662/623 -f 1479/1664/433 1480/2329/433 1481/1665/433 -f 1477/1662/624 1476/2328/624 1481/1667/624 -f 1483/1669/433 1484/1682/433 1479/1664/433 -f 1486/1670/625 1475/2330/625 1474/1671/625 -f 1488/1673/431 1471/2327/431 1470/1658/431 -f 1490/1675/626 1491/2331/626 1492/1676/626 -f 1494/1678/627 1486/2332/627 1485/1679/627 -f 1465/1683/628 1497/1686/628 1498/1684/628 -f 1497/1686/629 1490/1675/629 1489/1677/629 -f 1500/1687/431 1488/1673/431 1487/1674/431 -f 1484/1682/433 1454/1692/433 1447/1689/433 -f 1450/1636/431 1500/1687/431 1499/1688/431 -f 1439/1690/630 1494/2333/630 1493/1691/630 -f 1454/1692/433 1484/1682/433 1495/1681/433 -f 1462/1693/631 1461/2334/631 1446/1694/631 -f 1386/1696/435 1502/1715/435 1503/1697/435 -f 1464/1699/632 1457/1640/632 1456/1642/632 -f 1389/1576/486 1392/2335/486 1505/1701/486 -f 1386/1703/431 1385/2336/431 1506/1704/431 -f 1508/1706/634 1509/2337/634 1510/1707/634 -f 1511/1709/433 1512/1742/433 1468/1710/433 -f 1502/1705/431 1506/1704/431 1513/1711/431 -f 1391/1713/433 1510/2338/433 1509/1714/433 -f 1502/1715/635 1514/2339/635 1515/1716/635 -f 1484/1717/636 1517/2340/636 1518/1718/636 -f 1465/1648/431 1519/2341/431 1520/1720/431 -f 1459/1641/650 1458/2323/650 1521/1721/650 -f 1517/1723/638 1523/2342/638 1524/1724/638 -f 1523/1726/639 1525/2343/639 1526/1727/639 -f 1457/1646/431 1462/2324/431 1467/1729/431 -f 1448/1634/433 1527/2344/433 1511/1709/433 -f 1463/1731/640 1464/2345/640 1403/1583/640 -f 1484/1682/433 1446/1633/433 1523/1733/433 -f 1528/1735/845 1529/2346/646 1530/1736/646 -f 1525/1737/644 1529/2346/644 1528/1735/644 -f 1458/1730/431 1467/1729/431 1531/1739/431 -f 1468/1710/433 1529/1743/433 1525/1741/433 -f 1512/1742/433 1530/2347/433 1529/1743/433 -f 1467/1729/431 1520/1720/431 1532/1744/431 -f 1533/1745/644 1534/1748/644 1531/1746/644 -f 1526/1738/644 1528/1735/644 1534/1748/644 -f 1534/1748/846 1522/1750/847 1521/1749/848 -f 1528/1735/849 1508/1706/850 1522/1750/851 -f 1535/1751/640 1504/1702/640 1527/1752/640 -f 1469/1732/640 1403/1583/640 1504/1702/640 -f 1536/1754/639 1533/1757/639 1532/1755/639 -f 1524/1728/639 1526/1727/639 1533/1757/639 -f 1537/1758/638 1536/1761/638 1520/1759/638 -f 1518/1725/638 1524/1724/638 1536/1761/638 -f 1538/1762/852 1508/1765/852 1530/1763/852 -f 1459/1641/651 1522/1722/651 1508/1765/651 -f 1496/1766/621 1537/1769/621 1519/1767/621 -f 1516/1719/636 1518/1718/636 1537/1769/636 -f 1539/1770/635 1507/1773/635 1510/1771/635 -f 1503/1697/635 1515/1716/635 1507/1773/635 -f 1513/1774/634 1522/1750/634 1515/1775/634 -f 1522/1750/634 1508/1706/634 1507/1708/634 -f 1385/1777/853 1403/1583/853 1540/1778/853 -f 1504/1702/653 1505/1701/653 1540/1778/653 -f 1504/1780/632 1541/1783/632 1511/1781/632 -f 1403/1700/632 1456/1642/632 1541/1783/632 -f 1400/1582/435 1539/1770/435 1391/1772/435 -f 1501/1698/435 1503/1697/435 1539/1770/435 -f 1542/1784/854 1543/2348/854 1500/1785/854 -f 1516/1787/654 1544/1790/654 1479/1788/654 -f 1498/1684/629 1489/1677/629 1544/1790/629 -f 1543/1791/855 1545/2349/855 1488/1792/855 -f 1544/1790/626 1546/1795/626 1480/1794/626 -f 1489/1677/626 1492/1676/626 1546/1795/626 -f 1545/1796/625 1547/2350/625 1471/1797/625 -f 1472/1799/624 1548/2351/624 1549/1800/624 -f 1547/1802/623 1548/2351/623 1472/1799/623 -f 1550/1804/622 1535/1807/622 1448/1805/622 -f 1466/1651/622 1469/1657/622 1535/1807/622 -f 1551/1808/620 1550/1804/620 1447/1806/620 -f 1453/1652/620 1466/1651/620 1550/1804/620 -f 1541/1783/619 1538/1762/619 1512/1764/619 -f 1456/1642/619 1459/1641/619 1538/1762/619 -f 1443/1810/617 1552/1813/617 1551/1811/617 -f 1442/1629/617 1453/1638/617 1551/1811/617 -f 1430/1617/615 1553/1816/615 1432/1814/615 -f 1445/1632/615 1437/1626/615 1553/1816/615 -f 1554/1817/613 1552/1813/613 1443/1810/613 -f 1427/1627/613 1442/1629/613 1552/1813/613 -f 1432/1814/612 1553/1816/612 1542/1784/612 -f 1556/1819/658 1430/1617/658 1445/1632/658 -f 1445/1632/659 1557/1823/659 1434/1821/659 -f 1430/1617/659 1431/1619/659 1557/1823/659 -f 1558/1824/445 1554/1827/445 1428/1825/445 -f 1410/1610/445 1427/1609/445 1554/1827/445 -f 1559/1828/435 1412/1831/435 1414/1829/435 -f 1409/1590/435 1422/1604/435 1412/1831/435 -f 1413/1595/521 1560/1834/521 1429/1832/521 -f 1415/1600/521 1418/1599/521 1560/1834/521 -f 1416/1598/521 1415/1600/521 1422/1835/521 -f 1415/1600/521 1413/1595/521 1412/1597/521 -f 1561/1836/486 1558/1838/486 1411/1837/486 -f 1404/1585/486 1410/1591/486 1558/1838/486 -f 1562/1839/435 1559/1828/435 1398/1830/435 -f 1402/1581/435 1409/1590/435 1559/1828/435 -f 1504/1702/609 1561/1836/609 1393/1574/609 -f 1403/1583/856 1404/1585/856 1561/1836/856 -f 1501/1698/435 1562/1839/435 1397/1840/435 -f 1400/1582/435 1402/1581/435 1562/1839/435 -f 1418/1599/661 1557/1858/661 1431/1841/661 -f 1429/1832/661 1560/1834/661 1431/1841/661 -f 1549/1800/662 1482/1668/662 1546/1843/662 -f 1473/1801/662 1549/1800/662 1492/1844/662 -f 1439/1846/433 1455/1639/433 1495/1681/433 -f 1452/1649/431 1451/1637/431 1499/1688/431 -f 1499/1688/431 1487/1674/431 1497/1848/431 -f 1494/1847/433 1495/1681/433 1483/1669/433 -f 1487/1674/431 1470/1658/431 1490/1850/431 -f 1486/1849/433 1483/1669/433 1478/1666/433 -f 1482/1668/662 1481/1667/662 1480/1852/662 -f 1478/1666/433 1481/1665/433 1476/1853/433 -f 1490/1850/431 1470/1658/431 1473/1660/431 -f 1444/1631/618 1455/1639/618 1439/1846/618 -f 1441/1856/616 1433/1620/616 1451/1637/616 -f 1436/1623/614 1435/1622/614 1444/1631/614 -f 1417/1857/661 1434/2352/661 1557/1858/661 -f 1428/1859/433 1435/1622/433 1434/1621/433 -f 1423/1605/611 1433/1620/611 1441/1856/611 -f 1426/1616/431 1429/1615/431 1424/1606/431 -f 1542/2353/857 1553/2354/857 1556/2355/857 -f 1553/2354/858 1430/2356/858 1556/2355/858 -f 1556/2355/859 1563/1860/859 1547/1862/859 -f 1563/1860/860 1549/2357/860 1548/1861/860 -f 1547/1862/861 1545/2358/861 1556/2355/861 -f 1545/2358/862 1543/2359/862 1556/2355/862 -f 1543/2359/863 1542/2353/863 1556/2355/863 -f 1437/2360/864 1440/2361/864 1482/1865/864 -f 1440/2361/431 1493/1863/431 1482/1865/431 -f 1493/1863/431 1485/2362/431 1474/1864/431 -f 1474/1864/431 1477/2363/431 1482/1865/431 -f 1395/1866/433 1394/2364/433 1565/1867/433 -f 1389/1869/445 1395/2365/445 1564/1870/445 -f 1401/1872/521 1565/2366/521 1394/1873/521 -f 1390/1580/435 1564/2367/435 1565/1875/435 -f 1567/1876/431 1388/2368/431 1387/1877/431 -f 1396/1879/521 1567/2369/521 1566/1880/521 -f 1385/1777/486 1388/2370/486 1567/1882/486 -f 1397/1840/435 1566/2371/435 1387/1883/435 -f 1568/1884/431 1569/2372/431 1407/1885/431 -f 1398/1887/445 1568/2373/445 1406/1888/445 -f 1414/1829/435 1569/2374/435 1568/1890/435 -f 1405/1833/521 1407/2375/521 1569/1891/521 -f 1570/1892/433 1571/2376/433 1421/1893/433 -f 1416/1895/486 1421/2377/486 1571/1896/486 -f 1411/1898/445 1571/2378/445 1570/1899/445 -f 1408/1603/435 1570/2379/435 1420/1901/435 -f 1468/1903/622 1523/2380/622 1520/1904/622 -f 1461/1906/619 1520/2381/619 1523/1907/619 -f 1563/1927/665 1591/2382/665 1592/1928/665 -f 1482/1930/658 1549/2383/658 1563/1931/658 -f 1591/1933/865 1593/2384/865 1594/1934/865 -f 1563/1936/866 1556/2385/866 1593/1937/866 -f 1555/1939/867 1590/2386/867 1592/1940/867 -f 1555/1942/868 1594/2387/868 1593/1943/868 -f 1595/1945/869 1594/2388/869 1596/1946/869 -f 1598/1948/870 1599/1974/870 1596/1949/870 -f 1599/1951/871 1600/2389/871 1601/1952/871 -f 1601/1954/872 1600/2390/872 1602/1955/872 -f 1602/1955/873 1604/2391/873 1605/1957/873 -f 1605/1958/671 1604/2392/671 1606/1959/671 -f 1607/1961/874 1593/2393/874 1608/1962/874 -f 1595/1945/875 1597/1947/875 1608/1964/875 -f 1597/1966/876 1592/2394/876 1594/1967/876 -f 1594/1941/877 1592/1940/877 1599/1951/877 -f 1606/1959/878 1591/1938/878 1593/1937/878 -f 1591/1969/879 1597/1966/879 1595/1968/879 -f 1645/2395/686 1643/2396/686 1647/1981/686 -f 1643/2396/686 1642/1982/686 1647/1981/686 -f 1642/1982/686 1653/2397/686 1651/2398/686 -f 1651/2398/686 1649/1980/686 1642/1982/686 -f 1661/2399/687 1655/2400/687 1660/1984/687 -f 1655/2400/687 1656/1985/687 1660/1984/687 -f 1656/1985/687 1657/2401/687 1658/2402/687 -f 1658/2402/687 1659/1983/687 1656/1985/687 -f 1662/1986/688 1654/1990/688 1641/1987/688 -f 1664/1989/689 1652/2403/689 1654/1990/689 -f 1650/1991/880 1652/2403/880 1664/1989/880 -f 1648/1993/881 1650/1991/881 1665/1992/881 -f 1646/1995/692 1648/1993/692 1666/1994/692 -f 1668/1997/882 1644/1998/882 1646/1995/882 -f 1663/1988/694 1641/1987/694 1644/1998/694 -f 1683/1999/695 1684/2024/695 1685/2000/695 -f 1687/2002/695 1688/2404/695 1689/2003/695 -f 1691/2005/695 1692/2028/695 1693/2006/695 -f 1696/2008/696 1697/2022/696 1698/2009/696 -f 1700/2011/696 1701/2019/696 1702/2012/696 -f 1704/2014/696 1705/2023/696 1706/2015/696 -f 1708/2017/696 1700/2011/696 1699/2013/696 -f 1701/2019/697 1690/2004/697 1683/1999/697 -f 1694/2007/695 1693/2006/695 1709/2020/695 -f 1697/2022/696 1708/2017/696 1707/2018/696 -f 1697/2022/697 1694/2007/697 1710/2021/697 -f 1708/2017/697 1710/2021/697 1687/2002/697 -f 1696/2008/697 1691/2005/697 1694/2007/697 -f 1700/2011/697 1687/2002/697 1690/2004/697 -f 1704/2014/697 1683/1999/697 1686/2001/697 -f 1701/2019/696 1704/2014/696 1703/2016/696 -f 1690/2004/695 1689/2003/695 1684/2024/695 -f 1712/2025/697 1691/2005/697 1696/2008/697 -f 1711/2026/696 1696/2008/696 1695/2010/696 -f 1712/2025/695 1714/2405/695 1692/2028/695 -f 1702/2012/696 1703/2016/696 1716/2029/696 -f 1698/2009/696 1707/2018/696 1718/2031/696 -f 1707/2018/696 1699/2013/696 1719/2033/696 -f 1699/2013/696 1702/2012/696 1715/2030/696 -f 1695/2010/696 1698/2009/696 1717/2032/696 -f 1721/2035/698 1722/2406/698 1723/2036/698 -f 1725/2038/698 1726/2055/698 1727/2039/698 -f 1729/2041/698 1730/2057/698 1731/2042/698 -f 1734/2044/699 1735/2059/699 1736/2045/699 -f 1738/2047/699 1739/2056/699 1740/2048/699 -f 1742/2050/699 1743/2061/699 1744/2051/699 -f 1737/2049/699 1740/2048/699 1746/2053/699 -f 1744/2051/700 1721/2035/700 1726/2055/700 -f 1730/2057/698 1747/2060/698 1748/2058/698 -f 1745/2054/699 1746/2053/699 1735/2059/699 -f 1746/2053/700 1747/2060/700 1730/2057/700 -f 1740/2048/700 1725/2038/700 1747/2060/700 -f 1736/2045/700 1735/2059/700 1730/2057/700 -f 1739/2056/700 1726/2055/700 1725/2038/700 -f 1743/2061/700 1722/2406/700 1721/2035/700 -f 1741/2052/699 1744/2051/699 1739/2056/699 -f 1726/2055/698 1721/2035/698 1724/2037/698 -f 1749/2062/700 1736/2045/700 1729/2041/700 -f 1733/2046/699 1736/2045/699 1749/2062/699 -f 1750/2063/698 1729/2041/698 1732/2043/698 -f 1753/2066/701 1754/2122/701 1741/2052/701 -f 1756/2067/701 1745/2054/701 1734/2044/701 -f 1757/2069/701 1737/2049/701 1745/2054/701 -f 1757/2069/701 1753/2066/701 1738/2047/701 -f 1755/2068/701 1734/2044/701 1733/2046/701 -f 1714/2071/883 1712/2101/883 1750/2072/883 -f 1685/2074/705 1684/2095/705 1724/2075/705 -f 1715/2077/704 1716/2407/704 1754/2078/704 -f 1689/2080/705 1688/2408/705 1728/2081/705 -f 1717/2083/706 1718/2098/706 1756/2084/706 -f 1693/2086/705 1692/2116/705 1732/2087/705 -f 1713/2089/521 1751/2409/521 1749/2090/521 -f 1705/2092/445 1686/2103/445 1722/2093/445 -f 1684/2095/705 1689/2080/705 1727/2082/705 -f 1719/2096/704 1715/2077/704 1753/2079/704 -f 1718/2098/706 1719/2096/706 1757/2097/706 -f 1709/2099/705 1693/2086/705 1731/2088/705 -f 1711/2091/884 1749/2090/884 1750/2072/884 -f 1685/2102/885 1723/2410/885 1722/2093/885 -f 1688/2104/886 1687/2411/886 1725/2105/886 -f 1709/2107/887 1748/2412/887 1747/2108/887 -f 1687/2110/710 1710/2413/710 1747/2111/710 -f 1751/2113/888 1713/2414/888 1720/2114/888 -f 1720/2114/706 1717/2083/706 1755/2085/706 -f 1692/2116/705 1714/2415/705 1752/2117/705 -f 1706/2118/712 1705/2092/712 1743/2094/712 -f 1716/2120/713 1706/2118/713 1742/2119/713 -f 1772/2123/521 1773/2143/521 1759/2124/521 -f 1772/2123/521 1762/2125/521 1761/2126/521 -f 1775/2128/521 1776/2148/521 1769/2129/521 -f 1778/2131/521 1764/2147/521 1763/2132/521 -f 1779/2134/521 1777/2133/521 1763/2132/521 -f 1780/2136/521 1779/2134/521 1767/2135/521 -f 1780/2136/521 1770/2137/521 1771/2138/521 -f 1782/2140/521 1783/2144/521 1765/2141/521 -f 1782/2140/521 1760/2142/521 1759/2124/521 -f 1783/2144/521 1784/2146/521 1766/2145/521 -f 1784/2146/521 1781/2139/521 1771/2138/521 -f 1778/2131/521 1775/2128/521 1768/2130/521 -f 1774/2127/521 1761/2126/521 1769/2129/521 -f 1823/2416/521 1813/2417/521 1814/2149/521 -f 1814/2149/884 1815/2418/884 1811/2419/884 -f 1815/2418/521 1816/2420/521 1811/2419/521 -f 1811/2419/521 1812/2150/521 1814/2149/521 -f 1812/2150/521 1817/2421/521 1820/2151/521 -f 1817/2421/521 1818/2422/521 1819/2423/521 -f 1820/2151/521 1817/2421/521 1819/2423/521 -f 1820/2151/521 1821/2424/521 1822/2425/521 -f 1822/2425/521 1823/2416/521 1814/2149/521 -f 1820/2151/521 1822/2425/521 1814/2149/521 +s 0 +f 808/762/441 810/763/441 807/764/441 +f 811/765/442 813/766/442 814/767/442 +f 816/768/443 818/769/443 815/770/443 +f 820/771/444 822/772/444 819/773/444 +f 824/774/441 826/775/441 823/776/441 +f 828/777/441 830/778/441 827/779/441 +f 831/780/443 833/781/443 834/782/443 +f 835/783/443 837/784/443 838/785/443 +f 840/786/441 842/787/441 839/788/441 +f 843/789/445 841/790/445 840/791/445 +f 845/792/446 847/793/446 848/794/446 +f 850/795/447 852/796/447 849/797/447 +f 854/798/441 855/799/441 853/800/441 +f 856/801/448 858/802/448 859/803/448 +f 861/804/449 851/805/449 860/806/449 +f 863/807/450 865/808/450 862/809/450 +f 866/810/443 852/811/443 861/812/443 +f 862/813/441 860/814/441 867/815/441 +f 872/816/451 874/817/452 875/818/453 +f 823/819/454 877/820/454 876/821/454 +f 878/822/455 825/823/455 824/824/455 +f 880/825/456 870/826/456 881/827/456 +f 891/828/457 893/829/457 890/830/457 +f 895/831/455 897/832/455 894/833/455 +f 899/834/458 895/835/458 898/836/458 +f 900/837/459 895/838/459 894/839/459 +f 901/840/460 814/841/460 902/842/460 +f 903/843/461 811/844/461 901/840/461 +f 809/845/462 900/837/462 810/763/462 +f 809/846/463 899/834/463 898/836/463 +f 824/824/464 811/847/464 878/822/464 +f 905/848/465 907/849/465 904/850/465 +f 855/799/466 848/851/467 908/852/468 +f 909/853/469 859/795/469 910/854/469 +f 833/781/470 904/855/470 834/782/470 +f 912/856/471 914/857/471 911/858/471 +f 913/859/472 928/860/472 914/857/472 +f 927/861/472 936/862/472 928/860/472 +f 935/863/472 944/864/472 936/862/472 +f 943/865/472 890/830/472 944/864/472 +f 909/866/473 952/867/473 951/868/473 +f 953/869/474 955/870/474 956/871/474 +f 957/872/475 959/873/475 960/874/475 +f 951/868/473 962/875/473 961/876/473 +f 822/772/476 965/877/476 963/878/476 +f 957/879/477 966/880/477 821/881/477 +f 821/882/478 964/883/478 822/772/478 +f 830/778/448 967/884/448 968/885/448 +f 962/875/443 969/886/443 970/887/443 +f 965/877/441 971/888/441 972/889/441 +f 952/867/443 973/890/443 969/886/443 +f 959/873/479 975/891/479 960/874/479 +f 967/884/441 977/892/441 968/885/441 +f 955/870/443 979/893/443 956/871/443 +f 859/894/480 973/895/480 910/896/480 +f 964/883/481 981/897/481 971/888/481 +f 858/802/441 980/898/441 859/803/441 +f 960/899/482 981/900/482 966/880/482 +f 983/901/483 821/881/483 820/902/483 +f 984/903/441 822/772/441 963/878/441 +f 985/904/443 951/868/443 961/876/443 +f 983/905/484 958/906/484 957/872/484 +f 989/907/443 953/869/443 988/908/443 +f 986/909/443 909/866/443 951/868/443 +f 991/910/485 909/911/485 990/912/485 +f 992/913/441 856/801/441 991/914/441 +f 808/762/486 991/914/486 809/845/486 +f 809/915/487 990/912/487 816/916/487 +f 817/917/488 990/918/488 986/909/488 +f 837/784/489 988/908/489 832/919/489 +f 833/781/490 983/905/490 905/920/490 +f 836/921/488 986/909/488 985/904/488 +f 993/922/491 819/773/491 984/903/491 +f 905/848/492 820/902/492 906/923/492 +f 996/924/486 827/779/486 995/925/486 +f 994/926/493 820/771/493 819/773/493 +f 979/927/494 997/927/495 998/927/496 +f 970/927/497 999/927/497 1000/927/497 +f 969/927/498 1001/927/499 999/927/500 +f 974/928/501 981/929/501 975/930/501 +f 1002/931/502 997/932/502 1000/933/502 +f 1004/934/502 999/935/502 1001/936/502 +f 1006/937/503 1008/938/503 998/939/503 +f 980/927/504 1005/927/505 1004/927/506 +f 972/927/507 1007/927/508 1006/927/509 +f 973/927/510 1004/927/511 1001/927/512 +f 977/927/513 1003/927/514 1002/927/515 +f 971/927/516 1008/927/517 1007/927/512 +f 841/940/441 1010/941/441 854/798/441 +f 1011/942/443 1012/943/443 1013/944/443 +f 844/945/450 1009/946/450 841/947/450 +f 845/792/447 1012/948/447 846/949/447 +f 1009/950/518 867/951/519 1010/952/519 +f 1012/953/520 866/954/520 1013/955/520 +f 1009/950/521 863/956/522 862/957/523 +f 1015/958/524 849/959/524 1012/953/524 +f 892/960/456 1030/961/456 893/962/456 +f 1029/963/456 880/825/456 1030/961/456 +f 1031/964/456 1028/965/456 885/966/456 +f 1030/961/456 1032/967/456 1031/964/456 +f 1033/968/456 885/966/456 884/969/456 +f 893/962/456 1031/964/456 1033/968/456 +f 947/970/472 1037/971/472 883/972/472 +f 944/864/472 1037/971/472 1036/973/472 +f 939/974/472 1036/973/472 947/970/472 +f 936/862/472 1036/973/472 1039/975/472 +f 931/976/472 1039/975/472 939/974/472 +f 928/860/472 1039/975/472 1041/977/472 +f 921/978/472 1041/977/472 931/976/472 +f 914/857/472 1041/977/472 1043/979/472 +f 920/980/471 1043/979/471 921/978/471 +f 1045/981/471 914/857/471 1043/979/471 +f 883/972/457 1033/982/457 884/983/457 +f 890/830/457 1033/982/457 1037/971/457 +f 1032/967/456 888/984/456 1028/965/456 +f 880/825/456 889/985/456 1032/967/456 +f 877/986/525 1026/987/525 912/988/525 +f 825/989/441 919/990/441 826/991/441 +f 877/820/526 924/992/526 923/993/526 +f 916/994/527 924/992/527 826/991/527 +f 834/782/528 1047/995/529 1046/996/530 +f 994/926/531 907/997/531 906/998/531 +f 904/850/465 908/999/465 1047/1000/465 +f 810/763/462 1050/1001/462 1049/1002/462 +f 816/768/461 1051/1003/461 899/1004/461 +f 1051/1003/460 896/1005/460 899/1004/460 +f 900/837/459 1052/1006/459 1050/1001/459 +f 894/833/532 902/1007/532 1052/1008/532 +f 1053/1009/441 994/926/441 993/922/441 +f 1054/1010/441 996/924/441 995/925/441 +f 835/783/443 1057/1011/443 1056/1012/443 +f 1058/1013/443 834/782/443 1046/996/443 +f 903/843/443 818/769/443 1059/1014/443 +f 807/764/441 1049/1002/441 1060/1015/441 +f 1060/1015/441 824/774/441 823/776/441 +f 1061/1016/533 1063/1017/533 1064/1018/533 +f 1011/942/443 1046/996/443 846/1019/443 +f 1056/1012/443 844/1020/443 843/1021/443 +f 1052/1008/455 814/1022/455 813/1023/455 +f 1050/1001/459 813/1024/459 812/1025/459 +f 1049/1002/534 812/1025/534 824/774/534 +f 1047/1000/465 848/794/465 847/793/465 +f 1046/996/535 847/1026/536 846/1019/536 +f 1048/1027/537 908/852/538 907/997/537 +f 815/770/461 901/840/461 1051/1003/461 +f 1051/1003/460 902/842/460 897/1028/460 +f 853/800/441 1048/1027/441 1053/1009/441 +f 807/764/441 839/788/441 1054/1010/441 +f 1059/1014/443 843/1021/443 876/1029/443 +f 818/769/443 1056/1012/443 1059/1014/443 +f 807/764/441 995/925/441 808/762/441 +f 982/927/497 1002/927/497 1005/927/497 +f 1005/1030/502 1000/933/502 999/935/502 +f 978/927/539 1000/927/540 997/927/541 +f 995/925/486 992/913/486 808/762/486 +f 837/784/488 985/904/488 989/907/488 +f 989/907/443 961/876/443 954/1031/443 +f 968/885/441 982/1032/441 858/802/441 +f 955/870/443 970/887/443 978/1033/443 +f 857/1034/448 968/885/448 858/802/448 +f 961/876/473 955/870/473 954/1031/473 +f 876/821/445 840/791/445 823/819/445 +f 1060/1015/441 840/786/441 839/788/441 +f 818/769/443 836/921/443 835/783/443 +f 827/779/441 857/1034/441 992/913/441 +f 844/1020/443 1058/1013/443 1011/942/443 +f 1057/1011/443 831/780/443 1058/1013/443 +f 1055/1035/441 993/922/441 996/924/441 +f 1014/1036/542 866/954/543 863/956/544 +f 1015/958/545 867/951/545 850/1037/545 +f 844/1020/443 1013/944/443 1014/1038/443 +f 854/798/441 1015/1039/441 845/1040/441 +f 976/927/546 1006/927/506 1003/927/547 +f 1003/1041/503 998/939/503 997/932/503 +f 974/927/548 998/927/549 1008/927/550 +f 996/924/491 984/903/491 828/777/491 +f 832/919/489 987/1042/489 833/781/489 +f 988/908/443 958/906/443 987/1042/443 +f 828/777/441 963/878/441 829/1043/441 +f 956/871/443 974/1044/443 959/873/443 +f 967/884/441 972/889/441 976/1045/441 +f 963/878/476 967/884/476 829/1043/476 +f 958/906/474 956/871/474 959/873/474 +f 867/815/441 851/1046/441 850/1047/441 +f 863/1048/443 861/812/443 864/1049/443 +f 864/823/449 860/806/449 865/1050/449 +f 841/940/441 853/800/441 842/787/441 +f 838/785/443 832/919/443 831/780/443 +f 873/1051/551 1066/1052/551 874/817/551 +f 1064/1018/552 1067/1053/552 1068/1054/552 +f 1070/1055/553 1072/1056/553 1069/1057/553 +f 1074/1058/553 1076/1059/553 1073/1060/553 +f 1069/1057/553 1078/1061/553 1077/1062/553 +f 1079/1063/552 1068/1054/552 1080/1064/552 +f 1072/1065/455 1082/1066/455 1078/1067/455 +f 1083/1068/443 1085/1069/443 1086/1070/443 +f 1074/1071/445 1089/1072/445 1087/1073/445 +f 1064/1074/554 1084/1075/554 1061/1076/554 +f 873/1077/555 1086/1078/555 1079/1079/555 +f 1061/1080/556 1091/1081/556 1092/1082/556 +f 872/1083/557 1090/1084/557 873/1085/557 +f 1094/1086/558 1084/1087/558 1083/1068/558 +f 1096/1088/559 1062/1089/560 1061/1016/560 +f 1087/1090/561 875/818/562 1098/1091/561 +f 1087/1090/563 1075/1092/563 1074/1058/563 +f 1071/1093/564 1096/1088/565 1072/1056/564 +f 1081/1094/443 1094/1086/443 1082/1095/443 +f 1096/1096/566 1081/1097/566 1072/1098/566 +f 1093/1099/555 1101/1100/555 1099/1101/555 +f 1088/1102/443 1094/1086/443 1089/1103/443 +f 1093/1099/555 1102/1104/555 1083/1105/555 +f 1079/1079/555 1085/1106/555 1064/1107/555 +f 1093/1108/443 1086/1070/443 1090/1109/443 +f 1078/1067/455 1088/1110/455 1074/1111/455 +f 1079/1063/552 1065/1112/552 873/1051/552 +f 1073/1060/553 1078/1061/553 1074/1058/553 +f 1104/1113/443 1099/1114/443 1103/1115/443 +f 1094/1116/455 1103/1117/455 1089/1118/455 +f 1089/1118/455 1106/1119/455 1087/1120/455 +f 1083/1121/502 1104/1122/502 1094/1123/502 +f 1106/1124/445 1100/1125/445 1107/1126/445 +f 1105/1127/445 1101/1121/445 1100/1125/445 +f 1103/1117/455 1105/1128/455 1089/1118/455 +f 872/1129/441 1106/1130/441 1107/1131/441 +f 872/1132/555 1100/1133/555 1093/1099/555 +f 1099/1114/443 1108/1134/443 1103/1115/443 +f 1095/1135/567 1091/1136/567 1084/1087/567 +f 1096/1137/568 1109/1138/568 1095/1139/568 +f 1092/1140/569 1109/1141/569 1110/1142/569 +f 1061/1143/570 1110/1144/570 1096/1145/570 +f 1112/1146/571 1114/1147/571 1111/1148/571 +f 1143/1149/441 1148/1150/441 1141/1151/441 +f 1114/1152/572 1140/1153/572 1139/1154/572 +f 1158/1155/443 1160/1156/443 1155/1157/443 +f 1111/1158/573 1161/1159/573 1112/1160/573 +f 1190/1161/574 1192/1162/574 1189/1163/574 +f 1191/1164/575 1194/1165/575 1192/1162/575 +f 1193/1166/576 1196/1167/576 1194/1168/576 +f 1195/1169/577 1198/1170/577 1196/1167/577 +f 1197/1171/578 1200/1172/578 1198/1173/578 +f 1199/1174/579 1202/1175/579 1200/1172/579 +f 1201/1176/580 1204/1177/580 1202/1175/580 +f 1203/1178/581 1206/1179/581 1204/1180/581 +f 1205/1181/582 1208/1182/582 1206/1179/582 +f 1207/1183/583 1210/1184/583 1208/1182/583 +f 1209/1185/584 1212/1186/584 1210/1184/584 +f 1211/1187/585 1189/1163/585 1212/1188/585 +f 1200/1189/586 1216/1190/586 1213/1191/586 +f 1196/1192/587 1220/1193/587 1221/1194/587 +f 1224/1195/588 1222/1196/588 1210/1197/588 +f 1225/1198/589 1206/1199/589 1226/1200/589 +f 1180/1201/590 1182/1202/590 1205/1203/590 +f 1174/1204/591 1176/1205/591 1199/1206/591 +f 1227/1207/592 1172/1208/592 1195/1209/592 +f 1209/1210/593 1188/1211/593 1211/1212/593 +f 1264/1213/594 1266/1214/441 1263/1215/441 +f 1265/1216/455 1268/1217/455 1266/1218/455 +f 1267/1219/443 1270/1220/443 1268/1221/443 +f 1272/1222/555 1263/1223/555 1271/1224/555 +f 1268/1225/445 1273/1226/445 1271/1227/445 +f 1274/1228/595 1276/1229/595 1277/1230/595 +f 1278/927/596 1280/927/527 1281/927/527 +f 1282/1231/595 1276/1229/595 1275/1228/595 +f 1269/1232/597 1286/1233/597 1284/1234/597 +f 1267/1235/598 1282/1236/598 1275/1237/598 +f 1283/1238/599 1287/1239/599 1288/1240/599 +f 1292/1241/600 1294/1242/600 1291/1243/600 +f 1277/1244/443 1297/1245/443 1295/1246/443 +f 1278/1247/601 1299/1248/601 1298/1249/601 +f 1282/1231/527 1299/1250/527 1298/1231/527 +f 1285/927/596 1295/927/527 1292/927/527 +f 1300/1251/602 1277/1244/602 1295/1246/602 +f 1286/1233/603 1292/1241/603 1291/1243/603 +f 1301/1252/443 1302/1253/443 1303/1254/443 +f 1304/927/604 1302/927/512 1305/927/605 +f 1287/1255/604 1307/1256/527 1308/1256/527 +f 1281/927/596 1309/927/527 1310/927/527 +f 1276/1229/599 1296/1257/599 1277/1230/599 +f 1299/1248/606 1310/1258/606 1306/1259/606 +f 1287/1239/599 1299/1250/599 1283/1238/599 +f 1292/927/596 1297/927/527 1293/927/527 +f 1308/1260/502 1313/1261/502 1311/1262/502 +f 1314/927/607 1302/927/608 1301/927/609 +f 1312/927/610 1307/927/611 1315/927/612 +f 1316/1263/613 1305/1264/613 1317/1265/613 +f 1287/1239/614 1311/1266/614 1288/1240/614 +f 1318/927/604 1312/927/512 1315/927/605 +f 1296/1257/604 1314/1267/527 1301/1267/527 +f 1318/1268/441 1315/1269/441 1307/1270/441 +f 1306/1259/441 1321/1271/441 1299/1248/441 +f 1290/1272/443 1322/1273/443 1323/1274/443 +f 1325/1275/441 1327/1276/441 1324/1277/441 +f 1290/1278/615 1328/1279/615 1329/1280/615 +f 1331/1281/443 1333/1282/443 1334/1283/443 +f 1307/1270/441 1335/1284/441 1336/1285/441 +f 1296/1286/443 1334/1283/443 1301/1252/443 +f 1324/1277/441 1287/1287/441 1308/1288/441 +f 1328/1289/527 1338/1290/596 1339/1289/527 +f 1326/927/527 1341/927/527 1327/927/527 +f 1343/1291/616 1329/1292/616 1342/1293/616 +f 1335/1294/617 1345/1295/617 1344/1296/617 +f 1299/1297/618 1322/1298/618 1276/1299/618 +f 1321/1300/619 1323/1301/619 1322/1302/619 +f 1306/1303/620 1337/1304/620 1320/1305/620 +f 1296/988/621 1323/1306/621 1331/1307/621 +f 1340/927/527 1347/927/527 1341/927/527 +f 1331/927/596 1349/927/527 1332/927/527 +f 1306/1308/622 1350/1309/622 1351/1310/622 +f 1346/1311/623 1353/1312/623 1347/1313/623 +f 1354/1314/624 1349/1315/624 1348/1281/624 +f 1267/1219/625 1356/1316/625 1357/1317/625 +f 1265/1318/626 1359/1319/626 1266/1214/626 +f 1356/1316/627 1361/1320/627 1357/1317/627 +f 1362/1321/628 1359/1319/628 1358/1322/628 +f 1360/1323/629 1365/1324/629 1361/1320/629 +f 1362/1321/630 1367/1325/630 1363/1326/630 +f 1360/1323/443 1369/1327/443 1364/1328/443 +f 1367/1325/441 1371/1329/441 1363/1326/441 +f 1353/1312/631 1366/1330/631 1362/1321/631 +f 1354/1314/632 1365/1324/632 1355/1331/632 +f 1352/1332/633 1349/1333/633 1355/1334/633 +f 1365/1335/634 1352/1332/634 1355/1334/634 +f 1366/1336/455 1364/1337/455 1367/1338/455 +f 1369/1339/455 1367/1338/455 1364/1337/455 +f 1369/1340/635 1371/1341/635 1370/1342/635 +f 1368/1343/555 1363/1344/555 1371/1345/555 +f 1356/1346/445 1363/1347/445 1360/1348/445 +f 1268/1217/636 1359/1349/636 1356/1350/636 +f 1264/1213/637 1298/1249/638 1265/1318/639 +f 1269/1351/640 1274/1352/640 1300/1251/640 +f 1347/1353/641 1354/1354/641 1348/1355/641 +f 1354/1356/642 1362/1357/642 1361/1358/642 +f 1351/1359/643 1339/1360/643 1338/1361/643 +f 1361/1358/644 1358/1362/644 1357/1363/644 +f 1343/1364/617 1314/1365/617 1330/1366/617 +f 1310/927/604 1319/927/527 1318/927/527 +f 1336/1367/645 1344/1368/645 1373/1369/645 +f 1294/1242/646 1304/1370/646 1316/1263/646 +f 1290/1371/614 1374/1372/614 1314/1267/614 +f 1294/1242/647 1376/1373/647 1375/1374/647 +f 1376/1373/648 1312/1375/648 1319/1376/648 +f 1316/1377/649 1373/1378/649 1376/1364/649 +f 1374/1379/502 1305/1262/502 1314/1380/502 +f 1375/1374/650 1319/1376/650 1309/1381/650 +f 1377/1382/603 1280/1383/603 1279/1384/603 +f 1377/1382/603 1291/1243/603 1378/1385/603 +f 1378/1385/600 1309/1381/600 1280/1383/600 +f 1291/1243/600 1375/1374/600 1378/1385/600 +f 1272/1222/651 1279/1384/651 1264/1386/651 +f 1284/1234/651 1377/1382/651 1272/1222/651 +f 1269/1232/555 1273/1387/555 1270/1388/555 +f 1284/1234/555 1271/1224/555 1273/1387/555 +f 1373/1369/652 1380/1389/652 1379/1390/652 +f 1337/1391/652 1373/1369/652 1379/1390/652 +f 1342/1293/652 1328/1392/652 1380/1389/652 +f 1293/927/604 1303/927/527 1304/927/527 +f 1373/1393/443 1311/1394/443 1288/1395/443 +f 1311/1394/443 1376/1396/443 1288/1395/443 +f 1374/1397/441 1316/1398/441 1317/1399/441 +f 1374/1397/441 1342/1400/441 1289/1401/441 +f 1381/1402/443 1287/1403/443 1283/1404/443 +f 1383/1405/443 1296/1286/443 1277/1244/443 +f 1386/1406/455 1388/1407/455 1385/1408/455 +f 1390/1409/443 1392/1410/443 1389/1411/443 +f 1393/1412/502 1395/1413/502 1389/1414/502 +f 1396/1415/441 1398/1416/441 1399/1417/441 +f 1390/1418/445 1402/1419/445 1400/1420/445 +f 1403/1421/653 1396/1422/653 1404/1423/653 +f 1399/1424/502 1407/1425/502 1405/1426/502 +f 1401/1427/445 1409/1428/445 1402/1419/445 +f 1396/1422/502 1410/1429/502 1404/1423/502 +f 1393/1430/443 1408/1431/443 1401/1432/443 +f 1413/1433/555 1414/1434/555 1412/1435/555 +f 1416/1436/555 1418/1437/555 1415/1438/555 +f 1419/1439/555 1421/1440/555 1416/1436/555 +f 1408/1441/445 1422/1442/445 1409/1428/445 +f 1423/1443/441 1424/1444/441 1425/1445/441 +f 1399/1392/455 1427/1446/455 1410/1447/455 +f 1411/1448/443 1417/1449/443 1416/1450/443 +f 1399/1451/441 1429/1452/441 1426/1453/441 +f 1430/1454/654 1424/1455/654 1431/1456/654 +f 1425/1445/655 1433/1457/655 1423/1443/655 +f 1434/1458/443 1435/1459/443 1436/1460/443 +f 1438/1461/656 1440/1462/656 1437/1463/656 +f 1427/1464/657 1441/1465/657 1442/1466/657 +f 1435/1459/658 1443/1467/658 1444/1468/658 +f 1445/1469/659 1438/1461/659 1437/1463/659 +f 1446/1470/443 1448/1471/443 1449/1472/443 +f 1433/1457/660 1450/1473/660 1451/1474/660 +f 1441/1465/661 1453/1475/661 1442/1466/661 +f 1443/1467/662 1455/1476/662 1444/1468/662 +f 1457/1477/663 1459/1478/663 1456/1479/663 +f 1461/1480/441 1463/1481/441 1460/1482/441 +f 1463/1481/441 1457/1483/441 1464/1484/441 +f 1465/1485/441 1460/1482/441 1452/1486/441 +f 1452/1487/664 1466/1488/664 1453/1489/664 +f 1462/1490/665 1468/1491/665 1467/1492/665 +f 1460/1493/666 1469/1494/666 1466/1488/666 +f 1470/1495/441 1472/1496/441 1473/1497/441 +f 1475/1498/667 1477/1499/667 1474/1500/667 +f 1479/1501/443 1481/1502/443 1478/1503/443 +f 1477/1499/668 1481/1504/668 1482/1505/668 +f 1483/1506/443 1479/1501/443 1478/1503/443 +f 1486/1507/669 1474/1508/669 1485/1509/669 +f 1488/1510/441 1470/1495/441 1487/1511/441 +f 1490/1512/670 1492/1513/670 1489/1514/670 +f 1494/1515/671 1485/1516/671 1493/1517/671 +f 1495/1518/443 1484/1519/443 1483/1506/443 +f 1465/1520/672 1498/1521/672 1496/1522/672 +f 1497/1523/673 1489/1514/673 1498/1521/673 +f 1500/1524/441 1487/1511/441 1499/1525/441 +f 1484/1519/443 1447/1526/443 1446/1470/443 +f 1450/1473/441 1499/1525/441 1451/1474/441 +f 1439/1527/674 1493/1528/674 1440/1462/674 +f 1454/1529/443 1495/1518/443 1455/1476/443 +f 1462/1530/675 1446/1531/675 1449/1532/675 +f 1386/1533/445 1503/1534/445 1501/1535/445 +f 1464/1536/676 1456/1479/676 1403/1537/676 +f 1389/1414/677 1505/1538/677 1504/1539/677 +f 1386/1540/441 1506/1541/441 1502/1542/441 +f 1508/1543/678 1510/1544/678 1507/1545/678 +f 1511/1546/443 1468/1547/443 1449/1472/443 +f 1502/1542/441 1513/1548/441 1514/1549/441 +f 1391/1550/443 1509/1551/443 1392/1410/443 +f 1502/1552/679 1515/1553/679 1503/1534/679 +f 1484/1554/680 1518/1555/680 1516/1556/680 +f 1465/1485/441 1520/1557/441 1461/1480/441 +f 1459/1478/681 1521/1558/681 1522/1559/681 +f 1517/1560/682 1524/1561/682 1518/1562/682 +f 1523/1563/683 1526/1564/683 1524/1565/683 +f 1457/1483/441 1467/1566/441 1458/1567/441 +f 1448/1471/443 1511/1546/443 1449/1472/443 +f 1463/1568/684 1403/1421/684 1469/1569/684 +f 1484/1519/443 1523/1570/443 1517/1571/443 +f 1528/1572/685 1530/1573/686 1508/1543/687 +f 1525/1574/688 1528/1572/688 1526/1575/688 +f 1458/1567/441 1531/1576/441 1521/1577/441 +f 1468/1547/443 1525/1578/443 1523/1570/443 +f 1512/1579/443 1529/1580/443 1468/1547/443 +f 1467/1566/441 1532/1581/441 1531/1576/441 +f 1533/1582/688 1531/1583/688 1532/1584/688 +f 1526/1575/688 1534/1585/688 1533/1582/688 +f 1534/1585/689 1521/1586/690 1531/1583/690 +f 1528/1572/691 1522/1587/692 1534/1585/693 +f 1535/1588/684 1527/1589/684 1448/1590/684 +f 1469/1569/684 1504/1539/684 1535/1588/684 +f 1536/1591/683 1532/1592/683 1520/1593/683 +f 1524/1565/683 1533/1594/683 1536/1591/683 +f 1537/1595/682 1520/1596/682 1519/1597/682 +f 1518/1562/682 1536/1598/682 1537/1595/682 +f 1538/1599/694 1530/1600/694 1512/1601/694 +f 1459/1478/695 1508/1602/695 1538/1599/695 +f 1496/1603/665 1519/1604/665 1465/1605/665 +f 1516/1556/696 1537/1606/696 1496/1603/696 +f 1539/1607/679 1510/1608/679 1391/1609/679 +f 1503/1534/679 1507/1610/679 1539/1607/679 +f 1513/1611/678 1515/1612/678 1514/1613/678 +f 1522/1587/678 1507/1545/678 1515/1612/678 +f 1385/1614/502 1540/1615/502 1506/1616/502 +f 1504/1539/697 1540/1615/697 1403/1421/697 +f 1504/1617/676 1511/1618/676 1527/1619/676 +f 1403/1537/676 1541/1620/676 1504/1617/676 +f 1400/1420/445 1391/1609/445 1390/1418/445 +f 1501/1535/445 1539/1607/445 1400/1420/445 +f 1542/1621/674 1500/1622/674 1450/1623/674 +f 1516/1624/698 1479/1625/698 1484/1626/698 +f 1498/1521/699 1544/1627/699 1516/1624/699 +f 1516/1624/700 1496/1522/700 1498/1521/700 +f 1543/1628/701 1488/1629/701 1500/1630/701 +f 1544/1627/702 1480/1631/702 1479/1625/702 +f 1489/1514/702 1546/1632/702 1544/1627/702 +f 1545/1633/669 1471/1634/669 1488/1508/669 +f 1472/1635/668 1549/1636/668 1473/1637/668 +f 1547/1638/667 1472/1635/667 1471/1639/667 +f 1550/1640/666 1448/1641/666 1447/1642/666 +f 1466/1488/666 1535/1643/666 1550/1640/666 +f 1551/1644/664 1447/1642/664 1454/1645/664 +f 1453/1489/664 1550/1640/664 1551/1644/664 +f 1541/1620/663 1512/1601/663 1511/1618/663 +f 1456/1479/663 1538/1599/663 1541/1620/663 +f 1443/1646/661 1551/1647/661 1454/1648/661 +f 1442/1466/661 1551/1647/661 1552/1649/661 +f 1430/1454/659 1432/1650/659 1425/1651/659 +f 1445/1469/659 1553/1652/659 1430/1454/659 +f 1554/1653/657 1443/1646/657 1428/1654/657 +f 1427/1464/657 1552/1649/657 1554/1653/657 +f 1432/1650/656 1542/1621/656 1450/1623/656 +f 1556/1655/703 1445/1469/703 1555/1656/703 +f 1445/1469/704 1434/1657/704 1436/1658/704 +f 1430/1454/704 1557/1659/704 1445/1469/704 +f 1558/1660/455 1428/1661/455 1411/1662/455 +f 1410/1447/455 1554/1663/455 1558/1660/455 +f 1559/1664/445 1414/1665/445 1398/1666/445 +f 1409/1428/445 1412/1667/445 1559/1664/445 +f 1413/1433/555 1429/1668/555 1405/1669/555 +f 1415/1438/555 1560/1670/555 1413/1433/555 +f 1416/1436/555 1422/1671/555 1419/1439/555 +f 1415/1438/555 1412/1435/555 1422/1671/555 +f 1561/1672/502 1411/1673/502 1393/1412/502 +f 1404/1423/502 1558/1674/502 1561/1672/502 +f 1562/1675/445 1398/1666/445 1397/1676/445 +f 1402/1419/445 1559/1664/445 1562/1675/445 +f 1504/1539/705 1393/1412/705 1389/1414/705 +f 1403/1421/653 1561/1672/653 1504/1539/653 +f 1501/1535/445 1397/1676/445 1386/1533/445 +f 1400/1420/445 1562/1675/445 1501/1535/445 +f 1418/1437/706 1431/1677/706 1560/1670/706 +f 1429/1668/706 1431/1677/706 1424/1678/706 +f 1549/1636/668 1546/1679/668 1492/1680/668 +f 1473/1637/668 1492/1680/668 1491/1681/668 +f 1439/1682/443 1495/1518/443 1494/1683/443 +f 1452/1486/441 1499/1525/441 1465/1485/441 +f 1499/1525/441 1497/1684/441 1465/1485/441 +f 1494/1683/443 1483/1506/443 1486/1685/443 +f 1487/1511/441 1490/1686/441 1497/1684/441 +f 1486/1685/443 1478/1503/443 1475/1687/443 +f 1482/1505/668 1480/1688/668 1546/1679/668 +f 1478/1503/443 1476/1689/443 1475/1687/443 +f 1490/1686/441 1473/1497/441 1491/1690/441 +f 1444/1468/662 1439/1682/662 1438/1691/662 +f 1441/1692/660 1451/1474/660 1452/1486/660 +f 1436/1460/658 1444/1468/658 1438/1691/658 +f 1417/1693/706 1557/1694/706 1418/1437/706 +f 1428/1695/443 1434/1458/443 1417/1449/443 +f 1423/1443/655 1441/1692/655 1426/1453/655 +f 1426/1453/441 1424/1444/441 1423/1443/441 +f 1563/1696/707 1548/1697/707 1547/1698/707 +f 1493/1699/441 1474/1700/441 1482/1701/441 +f 1395/1702/443 1565/1703/443 1564/1704/443 +f 1389/1705/455 1564/1706/455 1390/1707/455 +f 1401/1708/555 1394/1709/555 1393/1710/555 +f 1390/1418/445 1565/1711/445 1401/1427/445 +f 1567/1712/441 1387/1713/441 1566/1714/441 +f 1396/1715/555 1566/1716/555 1397/1717/555 +f 1385/1614/502 1567/1718/502 1396/1422/502 +f 1397/1676/445 1387/1719/445 1386/1533/445 +f 1568/1720/441 1407/1721/441 1406/1722/441 +f 1398/1723/455 1406/1724/455 1399/1725/455 +f 1414/1665/445 1568/1726/445 1398/1666/445 +f 1405/1669/555 1569/957/555 1414/1434/555 +f 1570/1727/443 1421/1728/443 1420/1729/443 +f 1416/1730/502 1571/1731/502 1411/1732/502 +f 1411/1733/455 1570/1734/455 1408/1735/455 +f 1408/1441/445 1420/1736/445 1419/1737/445 +f 1468/1738/666 1520/1739/666 1467/1740/666 +f 1461/1741/663 1523/1742/663 1446/1743/663 +f 1572/1744/445 1573/1745/445 1574/1746/445 +f 1575/1747/502 1576/1748/502 1577/1749/502 +f 1572/1744/445 1574/1746/445 1578/1750/445 +f 1575/1747/502 1579/1751/502 1576/1748/502 +f 1572/1744/445 1578/1750/445 1580/1752/445 +f 1575/1747/502 1581/1753/502 1579/1751/502 +f 1572/1744/445 1580/1752/445 1582/1754/445 +f 1575/1747/502 1583/1755/502 1581/1753/502 +f 1572/1744/445 1582/1754/445 1584/1756/445 +f 1575/1747/502 1585/1757/502 1583/1755/502 +f 1572/1744/445 1584/1756/445 1586/1758/445 +f 1575/1747/502 1587/1759/502 1585/1757/502 +f 1572/1744/445 1586/1758/445 1588/1760/445 +f 1575/1747/502 1589/1761/502 1587/1759/502 +f 1572/1744/445 1588/1760/445 1573/1745/445 +f 1575/1747/502 1577/1749/502 1589/1761/502 +f 1563/1762/708 1592/1763/708 1590/1764/708 +f 1482/1765/703 1563/1766/703 1590/1767/703 +f 1591/1768/709 1594/1769/709 1592/1770/709 +f 1563/1771/710 1593/1772/710 1591/1773/710 +f 1555/1774/711 1592/1775/711 1594/1776/711 +f 1555/1777/712 1593/1778/712 1556/1779/712 +f 1595/1780/713 1596/1781/713 1597/1782/713 +f 1598/1783/714 1596/1784/714 1594/1785/714 +f 1599/1786/715 1601/1787/715 1598/1788/715 +f 1601/1789/716 1602/1790/716 1603/1791/716 +f 1602/1790/717 1605/1792/717 1603/1791/717 +f 1605/1793/718 1606/1794/718 1607/1795/718 +f 1607/1796/719 1608/1797/719 1606/1798/719 +f 1595/1780/720 1608/1799/720 1593/1800/720 +f 1597/1801/721 1594/1802/721 1595/1803/721 +f 1594/1776/722 1599/1786/722 1598/1788/722 +f 1606/1794/723 1593/1772/723 1607/1795/723 +f 1591/1804/724 1595/1803/724 1593/1805/724 +f 1597/1806/725 1596/1807/725 1592/1808/725 +f 1596/1784/726 1599/1809/726 1592/1143/726 +f 1606/1798/727 1608/1797/727 1591/1810/727 +f 1608/1811/728 1597/1812/728 1591/1813/728 +f 1649/1814/729 1647/1815/729 1642/1816/729 +f 1659/1817/730 1660/1818/730 1656/1819/730 +f 1662/1820/731 1641/1821/731 1663/1822/731 +f 1664/1823/732 1654/1824/732 1662/1820/732 +f 1650/1825/733 1664/1823/733 1665/1826/733 +f 1648/1827/734 1665/1826/734 1666/1828/734 +f 1646/1829/735 1666/1828/735 1667/1830/735 +f 1668/1831/736 1646/1829/736 1667/1830/736 +f 1663/1822/737 1644/1832/737 1668/1831/737 +f 1683/1833/738 1685/1834/738 1686/1835/738 +f 1687/1836/738 1689/1837/738 1690/1838/738 +f 1691/1839/738 1693/1840/738 1694/1841/738 +f 1696/1842/739 1698/1843/739 1695/1844/739 +f 1700/1845/739 1702/1846/739 1699/1847/739 +f 1704/1848/739 1706/1849/739 1703/1850/739 +f 1708/1851/739 1699/1847/739 1707/1852/739 +f 1701/1853/740 1683/1833/740 1704/1848/740 +f 1694/1841/738 1709/1854/738 1710/1855/738 +f 1697/1856/739 1707/1852/739 1698/1843/739 +f 1697/1856/740 1710/1855/740 1708/1851/740 +f 1708/1851/740 1687/1836/740 1700/1845/740 +f 1696/1842/740 1694/1841/740 1697/1856/740 +f 1700/1845/740 1690/1838/740 1701/1853/740 +f 1704/1848/740 1686/1835/740 1705/1857/740 +f 1701/1853/739 1703/1850/739 1702/1846/739 +f 1690/1838/738 1684/1858/738 1683/1833/738 +f 1712/1859/740 1696/1842/740 1711/1860/740 +f 1711/1860/739 1695/1844/739 1713/1861/739 +f 1712/1859/738 1692/1862/738 1691/1839/738 +f 1702/1846/741 1716/1863/741 1715/1864/741 +f 1698/1843/739 1718/1865/739 1717/1866/739 +f 1707/1852/741 1719/1867/741 1718/1865/741 +f 1699/1847/741 1715/1864/741 1719/1867/741 +f 1695/1844/739 1717/1866/739 1720/1868/739 +f 1721/1869/742 1723/1870/742 1724/1871/742 +f 1725/1872/742 1727/1873/742 1728/1874/742 +f 1729/1875/742 1731/1876/742 1732/1877/742 +f 1734/1878/743 1736/1879/743 1733/1880/743 +f 1738/1881/743 1740/1882/743 1737/1883/743 +f 1742/1884/743 1744/1885/743 1741/1886/743 +f 1737/1883/743 1746/1887/743 1745/1888/743 +f 1744/1885/744 1726/1889/744 1739/1890/744 +f 1730/1891/742 1748/1892/742 1731/1876/742 +f 1745/1888/743 1735/1893/743 1734/1878/743 +f 1746/1887/744 1730/1891/744 1735/1893/744 +f 1740/1882/744 1747/1894/744 1746/1887/744 +f 1736/1879/744 1730/1891/744 1729/1875/744 +f 1739/1890/744 1725/1872/744 1740/1882/744 +f 1743/1895/744 1721/1869/744 1744/1885/744 +f 1741/1886/743 1739/1890/743 1738/1881/743 +f 1726/1889/742 1724/1871/742 1727/1873/742 +f 1749/1896/744 1729/1875/744 1750/1897/744 +f 1733/1880/743 1749/1896/743 1751/1898/743 +f 1750/1897/742 1732/1877/742 1752/1899/742 +f 1753/1900/743 1741/1886/743 1738/1881/743 +f 1756/1901/745 1734/1878/745 1755/1902/745 +f 1757/1903/745 1745/1888/745 1756/1901/745 +f 1757/1903/745 1738/1881/745 1737/1883/745 +f 1755/1902/745 1733/1880/745 1758/1904/745 +f 1714/1905/746 1750/1906/746 1752/1907/746 +f 1685/1908/747 1724/1909/747 1723/1910/747 +f 1715/1911/748 1754/1912/748 1753/1913/748 +f 1689/1914/749 1728/1915/749 1727/1916/749 +f 1717/1917/750 1756/1918/750 1755/1919/750 +f 1693/1920/749 1732/1921/749 1731/1922/749 +f 1713/1923/751 1749/1924/751 1711/1925/751 +f 1705/1926/752 1722/1927/752 1743/1928/752 +f 1684/1929/749 1727/1916/749 1724/1909/749 +f 1719/1930/750 1753/1913/750 1757/1931/750 +f 1718/1932/748 1757/1931/748 1756/1918/748 +f 1709/1933/749 1731/1922/749 1748/1934/749 +f 1711/1925/753 1750/1906/753 1712/1935/753 +f 1685/1936/754 1722/1927/754 1686/1937/754 +f 1688/1938/755 1725/1939/755 1728/1940/755 +f 1709/1941/756 1747/1942/756 1710/1943/756 +f 1687/1944/757 1747/1945/757 1725/1946/757 +f 1751/1939/758 1720/1947/758 1758/1948/758 +f 1720/1947/750 1755/1919/750 1758/1948/750 +f 1692/1949/759 1752/1950/759 1732/1921/759 +f 1706/1951/752 1743/1928/752 1742/1952/752 +f 1716/1953/760 1742/1952/760 1754/1954/760 +f 1716/1863/741 1703/1850/741 1706/1849/741 +f 1754/1955/745 1742/1884/745 1741/1886/745 +f 1695/1844/739 1720/1868/739 1713/1861/739 +f 1758/1904/745 1733/1880/745 1751/1898/745 +f 1772/1956/555 1759/1957/555 1762/1958/555 +f 1772/1956/555 1761/1959/555 1774/1960/555 +f 1775/1961/555 1769/1962/555 1768/1963/555 +f 1778/1964/555 1763/1965/555 1777/1966/555 +f 1779/1967/555 1763/1965/555 1767/1968/555 +f 1780/1969/761 1767/1968/761 1770/1970/761 +f 1780/1969/555 1771/1971/555 1781/1972/555 +f 1782/1973/555 1765/1974/555 1760/1975/555 +f 1782/1973/555 1759/1957/555 1773/1976/555 +f 1783/1977/753 1766/1978/753 1765/1974/753 +f 1784/1979/555 1771/1971/555 1766/1978/555 +f 1778/1964/762 1768/1963/762 1764/1980/762 +f 1774/1960/555 1769/1962/555 1776/1981/555 +f 1814/1982/555 1812/1983/555 1820/1984/555 +f 808/762/441 809/845/441 810/763/441 +f 811/765/442 812/1985/442 813/766/442 +f 816/768/443 817/917/443 818/769/443 +f 820/771/444 821/882/444 822/772/444 +f 824/774/441 825/1986/441 826/775/441 +f 828/777/441 829/1043/441 830/778/441 +f 831/780/443 832/919/443 833/781/443 +f 835/783/443 836/921/443 837/784/443 +f 840/786/441 841/940/441 842/787/441 +f 843/789/445 844/1987/445 841/790/445 +f 845/792/446 846/949/446 847/793/446 +f 850/795/447 851/1988/447 852/796/447 +f 854/798/441 845/1040/441 855/799/441 +f 856/801/448 857/1034/448 858/802/448 +f 861/804/449 852/1989/449 851/805/449 +f 863/807/450 864/1990/450 865/808/450 +f 866/810/443 849/1991/443 852/811/443 +f 862/813/441 865/1992/441 860/814/441 +f 872/816/763 873/1051/764 874/817/764 +f 823/819/454 826/991/454 877/820/454 +f 878/822/455 879/1993/455 825/823/455 +f 880/825/456 871/1994/456 870/826/456 +f 891/828/457 892/1995/457 893/829/457 +f 895/831/455 896/1996/455 897/832/455 +f 899/834/458 896/1997/458 895/835/458 +f 900/837/459 898/1998/459 895/838/459 +f 901/840/460 811/844/460 814/841/460 +f 903/843/461 878/1999/461 811/844/461 +f 809/845/462 898/1998/462 900/837/462 +f 809/846/463 816/2000/463 899/834/463 +f 824/824/464 812/2001/464 811/847/464 +f 905/848/465 906/923/465 907/849/465 +f 855/799/765 845/1040/766 848/851/766 +f 909/853/469 856/2002/469 859/795/469 +f 833/781/767 905/920/767 904/855/767 +f 912/856/471 913/859/471 914/857/471 +f 913/859/472 927/861/472 928/860/472 +f 927/861/472 935/863/472 936/862/472 +f 935/863/472 943/865/472 944/864/472 +f 943/865/472 891/828/472 890/830/472 +f 909/866/473 910/2003/473 952/867/473 +f 953/869/474 954/1031/474 955/870/474 +f 957/872/475 958/906/475 959/873/475 +f 951/868/473 952/867/473 962/875/473 +f 822/772/476 964/883/476 965/877/476 +f 957/879/477 960/899/477 966/880/477 +f 821/882/478 966/2004/478 964/883/478 +f 830/778/448 829/1043/448 967/884/448 +f 962/875/443 952/867/443 969/886/443 +f 965/877/441 964/883/441 971/888/441 +f 952/867/443 910/2003/443 973/890/443 +f 959/873/479 974/1044/479 975/891/479 +f 967/884/441 976/1045/441 977/892/441 +f 955/870/443 978/1033/443 979/893/443 +f 859/894/480 980/2005/480 973/895/480 +f 964/883/481 966/2004/481 981/897/481 +f 858/802/441 982/1032/441 980/898/441 +f 960/899/482 975/2006/482 981/900/482 +f 983/901/483 957/879/483 821/881/483 +f 984/903/441 819/773/441 822/772/441 +f 985/904/443 986/909/443 951/868/443 +f 983/905/484 987/1042/484 958/906/484 +f 989/907/443 954/1031/443 953/869/443 +f 986/909/443 990/918/443 909/866/443 +f 991/910/485 856/2007/485 909/911/485 +f 992/913/441 857/1034/441 856/801/441 +f 808/762/486 992/913/486 991/914/486 +f 809/915/487 991/910/487 990/912/487 +f 817/917/488 816/768/488 990/918/488 +f 837/784/489 989/907/489 988/908/489 +f 833/781/490 987/1042/490 983/905/490 +f 836/921/488 817/917/488 986/909/488 +f 993/922/491 994/926/491 819/773/491 +f 905/848/492 983/901/492 820/902/492 +f 996/924/486 828/777/486 827/779/486 +f 994/926/493 906/998/493 820/771/493 +f 979/927/768 978/927/769 997/927/770 +f 970/927/541 969/927/496 999/927/771 +f 969/927/772 973/927/773 1001/927/774 +f 974/928/501 971/2008/501 981/929/501 +f 1002/931/502 1003/1041/502 997/932/502 +f 1004/934/502 1005/1030/502 999/935/502 +f 1006/937/503 1007/2009/503 1008/938/503 +f 980/927/775 982/927/506 1005/927/776 +f 972/927/508 971/927/777 1007/927/778 +f 973/927/517 980/927/512 1004/927/516 +f 977/927/779 976/927/515 1003/927/780 +f 971/927/511 974/927/512 1008/927/510 +f 841/940/441 1009/2010/441 1010/941/441 +f 1011/942/443 846/1019/443 1012/943/443 +f 844/945/450 1014/2011/450 1009/946/450 +f 845/792/447 1015/2012/447 1012/948/447 +f 1009/950/781 862/957/782 867/951/783 +f 1012/953/784 849/959/784 866/954/784 +f 1009/950/785 1014/1036/786 863/956/787 +f 1015/958/524 850/1037/524 849/959/524 +f 892/960/456 1029/963/456 1030/961/456 +f 1029/963/456 871/1994/456 880/825/456 +f 1031/964/456 1032/967/456 1028/965/456 +f 1030/961/456 880/825/456 1032/967/456 +f 1033/968/456 1031/964/456 885/966/456 +f 893/962/456 1030/961/456 1031/964/456 +f 947/970/472 1036/973/472 1037/971/472 +f 944/864/472 890/830/472 1037/971/472 +f 939/974/472 1039/975/472 1036/973/472 +f 936/862/472 944/864/472 1036/973/472 +f 931/976/472 1041/977/472 1039/975/472 +f 928/860/472 936/862/472 1039/975/472 +f 921/978/472 1043/979/472 1041/977/472 +f 914/857/472 928/860/472 1041/977/472 +f 920/980/471 1045/981/471 1043/979/471 +f 1045/981/471 911/858/471 914/857/471 +f 883/972/457 1037/971/457 1033/982/457 +f 890/830/457 893/829/457 1033/982/457 +f 1032/967/456 889/985/456 888/984/456 +f 880/825/456 881/827/456 889/985/456 +f 877/986/441 879/2013/441 1026/987/441 +f 825/989/526 920/2014/526 919/990/526 +f 877/820/527 826/991/527 924/992/527 +f 923/993/443 879/2015/443 877/820/443 +f 826/991/788 919/990/788 1027/2016/788 +f 826/991/526 1027/2016/526 916/994/526 +f 834/782/789 904/855/789 1047/995/790 +f 994/926/791 1048/1027/791 907/997/791 +f 904/850/465 907/849/465 908/999/465 +f 810/763/462 900/837/462 1050/1001/462 +f 816/768/461 815/770/461 1051/1003/461 +f 1051/1003/460 897/1028/460 896/1005/460 +f 900/837/459 894/839/459 1052/1006/459 +f 894/833/532 897/832/532 902/1007/532 +f 1053/1009/441 1048/1027/441 994/926/441 +f 1054/1010/441 1055/1035/441 996/924/441 +f 835/783/443 838/785/443 1057/1011/443 +f 1058/1013/443 831/780/443 834/782/443 +f 903/843/443 815/770/443 818/769/443 +f 807/764/441 810/763/441 1049/1002/441 +f 1060/1015/441 1049/1002/441 824/774/441 +f 1061/1016/792 1062/1089/792 1063/1017/792 +f 1011/942/443 1058/1013/443 1046/996/443 +f 1056/1012/443 1057/1011/443 844/1020/443 +f 1052/1008/455 902/1007/455 814/1022/455 +f 1050/1001/459 1052/1006/459 813/1024/459 +f 1049/1002/462 1050/1001/462 812/1025/462 +f 1047/1000/465 908/999/465 848/794/465 +f 1046/996/793 1047/995/794 847/1026/795 +f 1048/1027/796 855/799/797 908/852/798 +f 815/770/461 903/843/461 901/840/461 +f 1051/1003/460 901/840/460 902/842/460 +f 853/800/441 855/799/441 1048/1027/441 +f 807/764/441 1060/1015/441 839/788/441 +f 1059/1014/443 1056/1012/443 843/1021/443 +f 818/769/443 835/783/443 1056/1012/443 +f 807/764/441 1054/1010/441 995/925/441 +f 982/927/799 977/927/496 1002/927/800 +f 1005/1030/502 1002/931/502 1000/933/502 +f 978/927/549 970/927/801 1000/927/802 +f 995/925/486 827/779/486 992/913/486 +f 837/784/488 836/921/488 985/904/488 +f 989/907/443 985/904/443 961/876/443 +f 968/885/441 977/892/441 982/1032/441 +f 955/870/443 962/875/443 970/887/443 +f 857/1034/448 830/778/448 968/885/448 +f 961/876/473 962/875/473 955/870/473 +f 876/821/445 843/789/445 840/791/445 +f 1060/1015/441 823/776/441 840/786/441 +f 818/769/443 817/917/443 836/921/443 +f 827/779/441 830/778/441 857/1034/441 +f 844/1020/443 1057/1011/443 1058/1013/443 +f 1057/1011/443 838/785/443 831/780/443 +f 1055/1035/441 1053/1009/441 993/922/441 +f 1014/1036/803 1013/955/520 866/954/520 +f 1015/958/519 1010/952/519 867/951/519 +f 844/1020/443 1011/942/443 1013/944/443 +f 854/798/441 1010/941/441 1015/1039/441 +f 976/927/506 972/927/804 1006/927/805 +f 1003/1041/503 1006/937/503 998/939/503 +f 974/927/540 979/927/799 998/927/806 +f 996/924/491 993/922/491 984/903/491 +f 832/919/489 988/908/489 987/1042/489 +f 988/908/443 953/869/443 958/906/443 +f 828/777/441 984/903/441 963/878/441 +f 956/871/443 979/893/443 974/1044/443 +f 967/884/441 965/877/441 972/889/441 +f 963/878/476 965/877/476 967/884/476 +f 958/906/474 953/869/474 956/871/474 +f 867/815/441 860/814/441 851/1046/441 +f 863/1048/443 866/810/443 861/812/443 +f 864/823/449 861/804/449 860/806/449 +f 841/940/441 854/798/441 853/800/441 +f 838/785/443 837/784/443 832/919/443 +f 873/1051/807 1065/1112/807 1066/1052/807 +f 1064/1018/808 1063/1017/808 1067/1053/808 +f 1070/1055/808 1071/1093/808 1072/1056/808 +f 1074/1058/809 1075/1092/809 1076/1059/809 +f 1069/1057/553 1072/1056/553 1078/1061/553 +f 1079/1063/552 1064/1018/552 1068/1054/552 +f 1072/1065/455 1081/2017/455 1082/1066/455 +f 1083/1068/810 1084/1087/810 1085/1069/810 +f 1074/1071/445 1088/2018/445 1089/1072/445 +f 1064/1074/811 1085/2019/811 1084/1075/811 +f 873/1077/555 1090/2020/555 1086/1078/555 +f 1061/1080/812 1084/2021/812 1091/1081/812 +f 872/1083/557 1093/1804/557 1090/1084/557 +f 1094/1086/813 1095/1135/814 1084/1087/813 +f 1096/1088/815 1097/2022/816 1062/1089/816 +f 1087/1090/817 872/816/818 875/818/819 +f 1087/1090/561 1098/1091/561 1075/1092/561 +f 1071/1093/816 1097/2022/816 1096/1088/820 +f 1081/1094/821 1095/1135/822 1094/1086/821 +f 1096/1096/823 1095/2023/823 1081/1097/823 +f 1093/1099/555 1100/1133/555 1101/1100/555 +f 1088/1102/443 1082/1095/443 1094/1086/443 +f 1093/1099/555 1099/1101/555 1102/1104/555 +f 1079/1079/555 1086/1078/555 1085/1106/555 +f 1093/1108/443 1083/1068/443 1086/1070/443 +f 1078/1067/455 1082/1066/455 1088/1110/455 +f 1079/1063/552 1080/1064/552 1065/1112/552 +f 1073/1060/553 1077/1062/553 1078/1061/553 +f 1104/1113/443 1102/2024/443 1099/1114/443 +f 1094/1116/455 1104/2025/455 1103/1117/455 +f 1089/1118/455 1105/1128/455 1106/1119/455 +f 1083/1121/502 1102/2026/502 1104/1122/502 +f 1106/1124/445 1105/1127/445 1100/1125/445 +f 1105/1127/445 1108/2027/445 1101/1121/445 +f 1103/1117/455 1108/2028/455 1105/1128/455 +f 872/1129/441 1087/2029/441 1106/1130/441 +f 872/1132/555 1107/2030/555 1100/1133/555 +f 1099/1114/443 1101/2031/443 1108/1134/443 +f 1095/1135/824 1109/2032/824 1091/1136/824 +f 1096/1137/825 1110/2033/825 1109/1138/825 +f 1092/1140/826 1091/2034/826 1109/1141/826 +f 1061/1143/827 1092/2035/827 1110/1144/827 +f 1112/1146/571 1113/2036/571 1114/1147/571 +f 1150/2037/441 1139/1154/441 1140/1153/441 +f 1140/1153/441 1141/1151/441 1150/2037/441 +f 1141/1151/441 1142/2038/441 1143/1149/441 +f 1150/2037/441 1141/1151/441 1137/2039/441 +f 1143/1149/441 1144/2040/441 1148/1150/441 +f 1144/2040/441 1145/2041/441 1148/1150/441 +f 1145/2041/441 1146/2042/441 1147/2043/441 +f 1148/1150/441 1145/2041/441 1147/2043/441 +f 1148/1150/441 1149/2044/441 1141/1151/441 +f 1149/2044/441 1138/2045/441 1141/1151/441 +f 1138/2045/441 1137/2039/441 1141/1151/441 +f 1114/1152/572 1113/2046/572 1140/1153/572 +f 1151/2047/443 1152/2048/443 1160/1156/443 +f 1152/2048/443 1153/2049/443 1160/1156/443 +f 1153/2049/443 1154/2050/443 1160/1156/443 +f 1154/2050/443 1155/1157/443 1160/1156/443 +f 1155/1157/443 1156/2051/443 1136/2052/443 +f 1156/2051/443 1157/2053/443 1136/2052/443 +f 1136/2052/443 1135/2054/443 1155/1157/443 +f 1135/2054/443 1158/1155/443 1155/1157/443 +f 1158/1155/443 1159/2055/443 1160/1156/443 +f 1160/1156/443 1161/1159/443 1151/2047/443 +f 1161/1159/443 1162/2056/443 1151/2047/443 +f 1111/1158/573 1162/2056/573 1161/1159/573 +f 1190/1161/574 1191/1164/574 1192/1162/574 +f 1191/1164/575 1193/2057/575 1194/1165/575 +f 1193/1166/576 1195/1169/576 1196/1167/576 +f 1195/1169/577 1197/2058/577 1198/1170/577 +f 1197/1171/603 1199/1174/603 1200/1172/603 +f 1199/1174/579 1201/1176/579 1202/1175/579 +f 1201/1176/580 1203/2059/580 1204/1177/580 +f 1203/1178/581 1205/1181/581 1206/1179/581 +f 1205/1181/582 1207/1183/582 1208/1182/582 +f 1207/1183/583 1209/1185/583 1210/1184/583 +f 1209/1185/584 1211/2060/584 1212/1186/584 +f 1211/1187/585 1190/1161/585 1189/1163/585 +f 1213/1191/828 1214/2061/828 1196/1192/828 +f 1198/2062/829 1200/1189/829 1213/1191/829 +f 1200/1189/830 1202/2063/831 1216/1190/830 +f 1202/2063/832 1215/2064/833 1216/1190/834 +f 1213/1191/835 1196/1192/835 1198/2062/835 +f 1217/2065/836 1218/2066/836 1189/2067/837 +f 1189/2067/838 1192/2068/839 1217/2065/839 +f 1192/2068/840 1194/2069/840 1217/2065/840 +f 1194/2069/841 1196/1192/841 1221/1194/841 +f 1196/1192/587 1214/2061/587 1219/2070/587 +f 1220/1193/587 1196/1192/587 1219/2070/587 +f 1221/1194/842 1217/2065/842 1194/2069/842 +f 1222/1196/843 1223/2071/843 1208/2072/843 +f 1210/1197/844 1212/2073/844 1224/1195/844 +f 1212/2073/845 1189/2067/846 1224/1195/845 +f 1222/1196/843 1208/2072/843 1210/1197/843 +f 1189/2067/847 1218/2066/848 1224/1195/848 +f 1225/1198/849 1215/2064/850 1202/2063/851 +f 1202/2063/852 1204/2074/853 1225/1198/853 +f 1204/2074/854 1206/1199/854 1225/1198/854 +f 1206/1199/855 1208/2072/855 1226/1200/855 +f 1208/2072/855 1223/2071/855 1226/1200/855 +f 1201/2075/856 1178/2076/857 1180/1201/858 +f 1182/1202/859 1184/2077/859 1207/2078/859 +f 1203/2079/860 1201/2075/861 1180/1201/860 +f 1182/1202/859 1207/2078/859 1205/1203/859 +f 1203/2079/862 1180/1201/862 1205/1203/862 +f 1195/1209/863 1171/2080/863 1174/1204/863 +f 1176/1205/864 1178/2076/865 1201/2075/866 +f 1197/2081/867 1195/1209/867 1174/1204/867 +f 1176/1205/868 1201/2075/869 1199/1206/868 +f 1197/2081/870 1174/1204/870 1199/1206/870 +f 1190/2082/871 1166/2083/872 1165/2084/872 +f 1190/2082/873 1165/2084/874 1191/2085/874 +f 1165/2084/875 1168/2086/875 1193/2087/875 +f 1193/2087/876 1191/2085/876 1165/2084/876 +f 1171/2080/592 1195/1209/592 1172/1208/592 +f 1195/1209/877 1193/2087/877 1168/2086/877 +f 1227/1207/592 1195/1209/592 1168/2086/592 +f 1207/2078/878 1184/2077/878 1186/2088/878 +f 1188/1211/879 1166/2083/879 1190/2082/880 +f 1209/1210/878 1207/2078/878 1186/2088/878 +f 1186/2088/881 1188/1211/881 1209/1210/881 +f 1188/1211/882 1190/2082/883 1211/1212/882 +f 1264/1213/884 1265/1318/885 1266/1214/441 +f 1265/1216/455 1267/2089/455 1268/1217/455 +f 1267/1219/443 1269/1351/443 1270/1220/443 +f 1272/1222/555 1264/1386/555 1263/1223/555 +f 1263/2090/445 1266/2091/445 1271/1227/445 +f 1266/2091/445 1268/1225/445 1271/1227/445 +f 1268/1225/445 1270/2092/445 1273/1226/445 +f 1274/1228/527 1275/1228/527 1276/1229/527 +f 1278/927/527 1279/927/527 1280/927/527 +f 1282/1231/595 1283/1238/595 1276/1229/595 +f 1269/1232/597 1285/2093/597 1286/1233/597 +f 1267/1235/598 1265/2094/598 1282/1236/598 +f 1290/1371/599 1276/1229/599 1289/2095/599 +f 1276/1229/599 1283/1238/599 1288/1240/599 +f 1289/2095/599 1276/1229/599 1288/1240/599 +f 1292/1241/600 1293/2096/600 1294/1242/600 +f 1277/1244/443 1296/1286/443 1297/1245/443 +f 1278/1247/886 1281/2097/886 1299/1248/886 +f 1282/1231/595 1283/1238/595 1299/1250/595 +f 1285/927/527 1300/927/527 1295/927/527 +f 1300/1251/602 1274/1352/602 1277/1244/602 +f 1286/1233/603 1285/2093/603 1292/1241/603 +f 1303/1254/443 1297/1245/443 1296/1286/443 +f 1296/1286/443 1301/1252/443 1303/1254/443 +f 1304/927/527 1303/927/527 1302/927/887 +f 1287/1255/650 1306/2098/650 1307/1256/650 +f 1281/927/527 1280/927/527 1309/927/596 +f 1276/1229/599 1290/1371/599 1296/1257/599 +f 1299/1248/606 1281/2097/606 1310/1258/606 +f 1287/1239/599 1306/2099/599 1299/1250/599 +f 1292/927/527 1295/927/527 1297/927/596 +f 1308/1260/502 1312/2100/502 1313/1261/502 +f 1314/927/611 1305/927/888 1302/927/889 +f 1312/927/497 1308/927/497 1307/927/497 +f 1316/1263/890 1304/1370/890 1305/1264/890 +f 1287/1239/614 1308/2101/614 1311/1266/614 +f 1318/927/527 1319/927/527 1312/927/887 +f 1296/1257/614 1290/1371/614 1314/1267/614 +f 1307/1270/891 1306/1259/891 1318/1268/891 +f 1306/1259/892 1310/1258/892 1318/1268/892 +f 1306/1259/441 1320/2102/441 1321/1271/441 +f 1290/1272/443 1276/1634/443 1322/1273/443 +f 1325/1275/441 1326/2103/441 1327/1276/441 +f 1330/2104/443 1314/2105/443 1329/1280/443 +f 1314/2105/893 1290/1278/893 1329/1280/893 +f 1331/1281/443 1332/1315/443 1333/1282/443 +f 1337/1311/894 1306/1259/894 1336/1285/894 +f 1306/1259/895 1307/1270/895 1336/1285/895 +f 1296/1286/443 1331/1281/443 1334/1283/443 +f 1324/1277/441 1327/1276/441 1287/1287/441 +f 1328/1289/622 1290/2106/622 1338/1290/622 +f 1326/927/527 1340/927/527 1341/927/596 +f 1343/1291/896 1330/2107/896 1329/1292/896 +f 1335/1294/617 1307/2108/617 1345/1295/617 +f 1299/1297/618 1321/2109/618 1322/1298/618 +f 1276/1299/527 1283/2110/527 1299/1297/527 +f 1321/1300/619 1320/2111/619 1323/1301/619 +f 1296/988/618 1290/2112/618 1323/1306/618 +f 1340/927/527 1346/927/527 1347/927/596 +f 1331/927/527 1348/927/527 1349/927/527 +f 1306/1308/527 1337/1309/527 1350/1309/527 +f 1346/1311/897 1352/2113/897 1353/1312/897 +f 1354/1314/898 1355/1331/898 1349/1315/898 +f 1267/1219/625 1268/1221/625 1356/1316/625 +f 1265/1318/626 1358/1322/626 1359/1319/626 +f 1356/1316/629 1360/1323/629 1361/1320/629 +f 1362/1321/630 1363/1326/630 1359/1319/630 +f 1360/1323/629 1364/1328/629 1365/1324/629 +f 1362/1321/630 1366/1330/630 1367/1325/630 +f 1360/1323/443 1368/2114/443 1369/1327/443 +f 1367/1325/441 1370/2115/441 1371/1329/441 +f 1353/1312/899 1352/2113/899 1366/1330/899 +f 1354/1314/900 1361/1320/900 1365/1324/900 +f 1352/1332/901 1346/2116/901 1349/1333/901 +f 1365/1335/902 1366/1336/902 1352/1332/902 +f 1366/1336/903 1365/1335/903 1364/1337/903 +f 1369/1339/455 1370/2117/455 1367/1338/455 +f 1369/1340/635 1368/2118/635 1371/1341/635 +f 1368/1343/555 1360/2119/555 1363/1344/555 +f 1356/1346/445 1359/2120/445 1363/1347/445 +f 1268/1217/636 1266/1218/636 1359/1349/636 +f 1264/1213/904 1278/1247/638 1298/1249/638 +f 1269/1351/640 1267/1219/640 1274/1352/640 +f 1347/1353/905 1353/2121/905 1354/1354/905 +f 1354/1356/906 1353/2122/906 1362/1357/906 +f 1351/1359/643 1350/2123/643 1339/1360/643 +f 1361/1358/907 1362/1357/907 1358/1362/907 +f 1343/1364/617 1372/2124/617 1314/1365/617 +f 1310/927/527 1309/927/527 1319/927/604 +f 1336/1367/896 1335/2125/896 1344/1368/896 +f 1294/1242/650 1293/2096/650 1304/1370/650 +f 1290/1371/614 1289/2095/614 1374/1372/614 +f 1294/1242/647 1316/1263/647 1376/1373/647 +f 1376/1373/613 1313/2126/613 1312/1375/613 +f 1316/1377/649 1342/2127/649 1373/1378/649 +f 1374/1379/502 1317/1260/502 1305/1262/502 +f 1375/1374/908 1376/1373/908 1319/1376/908 +f 1377/1382/603 1378/1385/603 1280/1383/603 +f 1377/1382/603 1286/1233/603 1291/1243/603 +f 1378/1385/600 1375/1374/600 1309/1381/600 +f 1291/1243/600 1294/1242/600 1375/1374/600 +f 1272/1222/651 1377/1382/651 1279/1384/651 +f 1284/1234/597 1286/1233/597 1377/1382/597 +f 1269/1232/555 1284/1234/555 1273/1387/555 +f 1284/1234/555 1272/1222/555 1271/1224/555 +f 1373/1369/652 1342/1293/652 1380/1389/652 +f 1337/1391/909 1336/1367/909 1373/1369/909 +f 1342/1293/910 1329/1292/910 1328/1392/910 +f 1293/927/527 1297/927/527 1303/927/604 +f 1373/1393/443 1344/2128/443 1311/1394/443 +f 1311/1394/443 1313/2129/443 1376/1396/443 +f 1374/1397/441 1289/1401/441 1316/1398/441 +f 1374/1397/441 1343/2130/441 1342/1400/441 +f 1381/1402/443 1382/2131/443 1287/1403/443 +f 1383/1405/443 1384/2132/443 1296/1286/443 +f 1386/1406/455 1387/2133/455 1388/1407/455 +f 1390/1409/443 1391/1550/443 1392/1410/443 +f 1393/1412/502 1394/2134/502 1395/1413/502 +f 1396/1415/441 1397/2135/441 1398/1416/441 +f 1390/1418/445 1401/1427/445 1402/1419/445 +f 1403/1421/911 1385/1614/911 1396/1422/911 +f 1399/1424/502 1406/2136/502 1407/1425/502 +f 1401/1427/445 1408/1441/445 1409/1428/445 +f 1396/1422/502 1399/2137/502 1410/1429/502 +f 1393/1430/443 1411/2138/443 1408/1431/443 +f 1413/1433/555 1405/1669/555 1414/1434/555 +f 1416/1436/555 1417/1693/555 1418/1437/555 +f 1419/1439/555 1420/2139/555 1421/1440/555 +f 1408/1441/445 1419/1737/445 1422/1442/445 +f 1399/1392/455 1426/2140/455 1427/1446/455 +f 1411/1448/443 1428/1695/443 1417/1449/443 +f 1399/1451/441 1405/2141/441 1429/1452/441 +f 1430/1454/912 1425/1651/912 1424/1455/912 +f 1425/1445/913 1432/2142/913 1433/1457/913 +f 1438/1461/656 1439/1527/656 1440/1462/656 +f 1427/1464/657 1426/2143/657 1441/1465/657 +f 1435/1459/658 1428/1695/658 1443/1467/658 +f 1445/1469/659 1436/1658/659 1438/1461/659 +f 1446/1470/443 1447/1526/443 1448/1471/443 +f 1433/1457/660 1432/2142/660 1450/1473/660 +f 1441/1465/661 1452/2144/661 1453/1475/661 +f 1443/1467/662 1454/1529/662 1455/1476/662 +f 1457/1477/663 1458/2145/663 1459/1478/663 +f 1461/1480/441 1462/2146/441 1463/1481/441 +f 1463/1481/441 1462/2146/441 1457/1483/441 +f 1465/1485/441 1461/1480/441 1460/1482/441 +f 1452/1487/664 1460/1493/664 1466/1488/664 +f 1462/1490/665 1449/2147/665 1468/1491/665 +f 1460/1493/666 1463/2148/666 1469/1494/666 +f 1470/1495/441 1471/2149/441 1472/1496/441 +f 1475/1498/667 1476/2150/667 1477/1499/667 +f 1479/1501/443 1480/2151/443 1481/1502/443 +f 1477/1499/668 1476/2150/668 1481/1504/668 +f 1483/1506/443 1484/1519/443 1479/1501/443 +f 1486/1507/669 1475/1633/669 1474/1508/669 +f 1488/1510/441 1471/2149/441 1470/1495/441 +f 1490/1512/702 1491/2152/702 1492/1513/702 +f 1494/1515/671 1486/2153/671 1485/1516/671 +f 1465/1520/672 1497/1523/672 1498/1521/672 +f 1497/1523/673 1490/1512/673 1489/1514/673 +f 1500/1524/441 1488/1510/441 1487/1511/441 +f 1484/1519/443 1454/1529/443 1447/1526/443 +f 1450/1473/441 1500/1524/441 1499/1525/441 +f 1439/1527/674 1494/2154/674 1493/1528/674 +f 1454/1529/443 1484/1519/443 1495/1518/443 +f 1462/1530/675 1461/2155/675 1446/1531/675 +f 1386/1533/445 1502/1552/445 1503/1534/445 +f 1464/1536/676 1457/1477/676 1456/1479/676 +f 1389/1414/502 1392/2156/502 1505/1538/502 +f 1386/1540/441 1385/2157/441 1506/1541/441 +f 1508/1543/678 1509/2158/678 1510/1544/678 +f 1511/1546/443 1512/1579/443 1468/1547/443 +f 1502/1542/441 1506/1541/441 1513/1548/441 +f 1391/1550/443 1510/2159/443 1509/1551/443 +f 1502/1552/679 1514/2160/679 1515/1553/679 +f 1484/1554/680 1517/2161/680 1518/1555/680 +f 1465/1485/441 1519/2162/441 1520/1557/441 +f 1459/1478/694 1458/2145/694 1521/1558/694 +f 1517/1560/682 1523/2163/682 1524/1561/682 +f 1523/1563/683 1525/2164/683 1526/1564/683 +f 1457/1483/441 1462/2146/441 1467/1566/441 +f 1448/1471/443 1527/2165/443 1511/1546/443 +f 1463/1568/684 1464/2166/684 1403/1421/684 +f 1484/1519/443 1446/1470/443 1523/1570/443 +f 1528/1572/914 1529/2167/690 1530/1573/690 +f 1525/1574/688 1529/2167/688 1528/1572/688 +f 1458/1567/441 1467/1566/441 1531/1576/441 +f 1468/1547/443 1529/1580/443 1525/1578/443 +f 1512/1579/443 1530/2168/443 1529/1580/443 +f 1467/1566/441 1520/1557/441 1532/1581/441 +f 1533/1582/688 1534/1585/688 1531/1583/688 +f 1526/1575/688 1528/1572/688 1534/1585/688 +f 1534/1585/915 1522/1587/916 1521/1586/917 +f 1528/1572/918 1508/1543/919 1522/1587/920 +f 1535/1588/684 1504/1539/684 1527/1589/684 +f 1469/1569/684 1403/1421/684 1504/1539/684 +f 1536/1591/683 1533/1594/683 1532/1592/683 +f 1524/1565/683 1526/1564/683 1533/1594/683 +f 1537/1595/682 1536/1598/682 1520/1596/682 +f 1518/1562/682 1524/1561/682 1536/1598/682 +f 1538/1599/921 1508/1602/921 1530/1600/921 +f 1459/1478/695 1522/1559/695 1508/1602/695 +f 1496/1603/665 1537/1606/665 1519/1604/665 +f 1516/1556/680 1518/1555/680 1537/1606/680 +f 1539/1607/679 1507/1610/679 1510/1608/679 +f 1503/1534/679 1515/1553/679 1507/1610/679 +f 1513/1611/678 1522/1587/678 1515/1612/678 +f 1522/1587/678 1508/1543/678 1507/1545/678 +f 1385/1614/922 1403/1421/922 1540/1615/922 +f 1504/1539/697 1505/1538/697 1540/1615/697 +f 1504/1617/676 1541/1620/676 1511/1618/676 +f 1403/1537/676 1456/1479/676 1541/1620/676 +f 1400/1420/445 1539/1607/445 1391/1609/445 +f 1501/1535/445 1503/1534/445 1539/1607/445 +f 1542/1621/923 1543/2169/923 1500/1622/923 +f 1516/1624/698 1544/1627/698 1479/1625/698 +f 1498/1521/673 1489/1514/673 1544/1627/673 +f 1543/1628/924 1545/2170/924 1488/1629/924 +f 1544/1627/702 1546/1632/702 1480/1631/702 +f 1489/1514/702 1492/1513/702 1546/1632/702 +f 1545/1633/669 1547/2171/669 1471/1634/669 +f 1472/1635/668 1548/2172/668 1549/1636/668 +f 1547/1638/667 1548/2172/667 1472/1635/667 +f 1550/1640/666 1535/1643/666 1448/1641/666 +f 1466/1488/666 1469/1494/666 1535/1643/666 +f 1551/1644/664 1550/1640/664 1447/1642/664 +f 1453/1489/664 1466/1488/664 1550/1640/664 +f 1541/1620/663 1538/1599/663 1512/1601/663 +f 1456/1479/663 1459/1478/663 1538/1599/663 +f 1443/1646/661 1552/1649/661 1551/1647/661 +f 1442/1466/661 1453/1475/661 1551/1647/661 +f 1430/1454/659 1553/1652/659 1432/1650/659 +f 1445/1469/659 1437/1463/659 1553/1652/659 +f 1554/1653/657 1552/1649/657 1443/1646/657 +f 1427/1464/657 1442/1466/657 1552/1649/657 +f 1432/1650/656 1553/1652/656 1542/1621/656 +f 1556/1655/703 1430/1454/703 1445/1469/703 +f 1445/1469/704 1557/1659/704 1434/1657/704 +f 1430/1454/704 1431/1456/704 1557/1659/704 +f 1558/1660/455 1554/1663/455 1428/1661/455 +f 1410/1447/455 1427/1446/455 1554/1663/455 +f 1559/1664/445 1412/1667/445 1414/1665/445 +f 1409/1428/445 1422/1442/445 1412/1667/445 +f 1413/1433/555 1560/1670/555 1429/1668/555 +f 1415/1438/555 1418/1437/555 1560/1670/555 +f 1416/1436/555 1415/1438/555 1422/1671/555 +f 1415/1438/555 1413/1433/555 1412/1435/555 +f 1561/1672/502 1558/1674/502 1411/1673/502 +f 1404/1423/502 1410/1429/502 1558/1674/502 +f 1562/1675/445 1559/1664/445 1398/1666/445 +f 1402/1419/445 1409/1428/445 1559/1664/445 +f 1504/1539/653 1561/1672/653 1393/1412/653 +f 1403/1421/653 1404/1423/653 1561/1672/653 +f 1501/1535/445 1562/1675/445 1397/1676/445 +f 1400/1420/445 1402/1419/445 1562/1675/445 +f 1418/1437/706 1557/1694/706 1431/1677/706 +f 1429/1668/706 1560/1670/706 1431/1677/706 +f 1549/1636/668 1482/1505/668 1546/1679/668 +f 1473/1637/668 1549/1636/668 1492/1680/668 +f 1439/1682/443 1455/1476/443 1495/1518/443 +f 1452/1486/441 1451/1474/441 1499/1525/441 +f 1499/1525/441 1487/1511/441 1497/1684/441 +f 1494/1683/443 1495/1518/443 1483/1506/443 +f 1487/1511/441 1470/1495/441 1490/1686/441 +f 1486/1685/443 1483/1506/443 1478/1503/443 +f 1482/1505/668 1481/1504/668 1480/1688/668 +f 1478/1503/443 1481/1502/443 1476/1689/443 +f 1490/1686/441 1470/1495/441 1473/1497/441 +f 1444/1468/662 1455/1476/662 1439/1682/662 +f 1441/1692/660 1433/1457/660 1451/1474/660 +f 1436/1460/658 1435/1459/658 1444/1468/658 +f 1417/1693/706 1434/2173/706 1557/1694/706 +f 1428/1695/443 1435/1459/443 1434/1458/443 +f 1423/1443/655 1433/1457/655 1441/1692/655 +f 1426/1453/441 1429/1452/441 1424/1444/441 +f 1542/2174/925 1553/2175/925 1556/2176/925 +f 1553/2175/926 1430/2177/926 1556/2176/926 +f 1556/2176/927 1563/1696/927 1547/1698/927 +f 1563/1696/928 1549/2178/928 1548/1697/928 +f 1547/1698/929 1545/2179/929 1556/2176/929 +f 1545/2179/930 1543/2180/930 1556/2176/930 +f 1543/2180/931 1542/2174/931 1556/2176/931 +f 1437/2181/932 1440/2182/932 1482/1701/932 +f 1440/2182/441 1493/1699/441 1482/1701/441 +f 1493/1699/441 1485/2183/441 1474/1700/441 +f 1474/1700/441 1477/2184/441 1482/1701/441 +f 1395/1702/443 1394/2185/443 1565/1703/443 +f 1389/1705/455 1395/2186/455 1564/1706/455 +f 1401/1708/555 1565/2187/555 1394/1709/555 +f 1390/1418/445 1564/2188/445 1565/1711/445 +f 1567/1712/441 1388/2189/441 1387/1713/441 +f 1396/1715/555 1567/2190/555 1566/1716/555 +f 1385/1614/502 1388/2191/502 1567/1718/502 +f 1397/1676/445 1566/2192/445 1387/1719/445 +f 1568/1720/441 1569/2193/441 1407/1721/441 +f 1398/1723/455 1568/2194/455 1406/1724/455 +f 1414/1665/445 1569/2195/445 1568/1726/445 +f 1405/1669/555 1407/2196/555 1569/957/555 +f 1570/1727/443 1571/2197/443 1421/1728/443 +f 1416/1730/502 1421/2198/502 1571/1731/502 +f 1411/1733/455 1571/2199/455 1570/1734/455 +f 1408/1441/445 1570/2200/445 1420/1736/445 +f 1468/1738/666 1523/2201/666 1520/1739/666 +f 1461/1741/663 1520/2202/663 1523/1742/663 +f 1563/1762/708 1591/2203/708 1592/1763/708 +f 1482/1765/703 1549/2204/703 1563/1766/703 +f 1591/1768/933 1593/2205/933 1594/1769/933 +f 1563/1771/710 1556/1076/710 1593/1772/710 +f 1555/1774/934 1590/2206/934 1592/1775/934 +f 1555/1777/935 1594/2207/935 1593/1778/935 +f 1595/1780/936 1594/2208/936 1596/1781/936 +f 1598/1783/937 1599/1809/937 1596/1784/937 +f 1599/1786/938 1600/2209/938 1601/1787/938 +f 1601/1789/939 1600/2210/939 1602/1790/939 +f 1602/1790/940 1604/2211/940 1605/1792/940 +f 1605/1793/714 1604/2212/714 1606/1794/714 +f 1607/1796/941 1593/2213/941 1608/1797/941 +f 1595/1780/942 1597/1782/942 1608/1799/942 +f 1597/1801/943 1592/2214/943 1594/1802/943 +f 1594/1776/944 1592/1775/944 1599/1786/944 +f 1606/1794/945 1591/1773/945 1593/1772/945 +f 1591/1804/946 1597/1801/946 1595/1803/946 +f 1645/2215/729 1643/2216/729 1647/1815/729 +f 1643/2216/729 1642/1816/729 1647/1815/729 +f 1642/1816/729 1653/2217/729 1651/2218/729 +f 1651/2218/729 1649/1814/729 1642/1816/729 +f 1661/2219/730 1655/2220/730 1660/1818/730 +f 1655/2220/730 1656/1819/730 1660/1818/730 +f 1656/1819/730 1657/2221/730 1658/2222/730 +f 1658/2222/730 1659/1817/730 1656/1819/730 +f 1662/1820/731 1654/1824/731 1641/1821/731 +f 1664/1823/732 1652/2223/732 1654/1824/732 +f 1650/1825/733 1652/2223/733 1664/1823/733 +f 1648/1827/734 1650/1825/734 1665/1826/734 +f 1646/1829/735 1648/1827/735 1666/1828/735 +f 1668/1831/736 1644/1832/736 1646/1829/736 +f 1663/1822/737 1641/1821/737 1644/1832/737 +f 1683/1833/738 1684/1858/738 1685/1834/738 +f 1687/1836/738 1688/2224/738 1689/1837/738 +f 1691/1839/738 1692/1862/738 1693/1840/738 +f 1696/1842/739 1697/1856/739 1698/1843/739 +f 1700/1845/739 1701/1853/739 1702/1846/739 +f 1704/1848/739 1705/1857/739 1706/1849/739 +f 1708/1851/739 1700/1845/739 1699/1847/739 +f 1701/1853/740 1690/1838/740 1683/1833/740 +f 1694/1841/738 1693/1840/738 1709/1854/738 +f 1697/1856/739 1708/1851/739 1707/1852/739 +f 1697/1856/740 1694/1841/740 1710/1855/740 +f 1708/1851/740 1710/1855/740 1687/1836/740 +f 1696/1842/740 1691/1839/740 1694/1841/740 +f 1700/1845/740 1687/1836/740 1690/1838/740 +f 1704/1848/740 1683/1833/740 1686/1835/740 +f 1701/1853/739 1704/1848/739 1703/1850/739 +f 1690/1838/738 1689/1837/738 1684/1858/738 +f 1712/1859/740 1691/1839/740 1696/1842/740 +f 1711/1860/739 1696/1842/739 1695/1844/739 +f 1712/1859/738 1714/2225/738 1692/1862/738 +f 1702/1846/741 1703/1850/741 1716/1863/741 +f 1698/1843/741 1707/1852/741 1718/1865/741 +f 1707/1852/741 1699/1847/741 1719/1867/741 +f 1699/1847/741 1702/1846/741 1715/1864/741 +f 1695/1844/739 1698/1843/739 1717/1866/739 +f 1721/1869/742 1722/2226/742 1723/1870/742 +f 1725/1872/742 1726/1889/742 1727/1873/742 +f 1729/1875/742 1730/1891/742 1731/1876/742 +f 1734/1878/743 1735/1893/743 1736/1879/743 +f 1738/1881/743 1739/1890/743 1740/1882/743 +f 1742/1884/743 1743/1895/743 1744/1885/743 +f 1737/1883/743 1740/1882/743 1746/1887/743 +f 1744/1885/744 1721/1869/744 1726/1889/744 +f 1730/1891/742 1747/1894/742 1748/1892/742 +f 1745/1888/743 1746/1887/743 1735/1893/743 +f 1746/1887/744 1747/1894/744 1730/1891/744 +f 1740/1882/744 1725/1872/744 1747/1894/744 +f 1736/1879/744 1735/1893/744 1730/1891/744 +f 1739/1890/744 1726/1889/744 1725/1872/744 +f 1743/1895/744 1722/2226/744 1721/1869/744 +f 1741/1886/743 1744/1885/743 1739/1890/743 +f 1726/1889/742 1721/1869/742 1724/1871/742 +f 1749/1896/744 1736/1879/744 1729/1875/744 +f 1733/1880/743 1736/1879/743 1749/1896/743 +f 1750/1897/742 1729/1875/742 1732/1877/742 +f 1753/1900/745 1754/1955/745 1741/1886/745 +f 1756/1901/745 1745/1888/745 1734/1878/745 +f 1757/1903/745 1737/1883/745 1745/1888/745 +f 1757/1903/743 1753/1900/743 1738/1881/743 +f 1755/1902/745 1734/1878/745 1733/1880/745 +f 1714/1905/947 1712/1935/947 1750/1906/947 +f 1685/1908/749 1684/1929/749 1724/1909/749 +f 1715/1911/748 1716/2227/748 1754/1912/748 +f 1689/1914/749 1688/2228/749 1728/1915/749 +f 1717/1917/748 1718/1932/748 1756/1918/748 +f 1693/1920/749 1692/1949/749 1732/1921/749 +f 1713/1923/762 1751/2229/762 1749/1924/762 +f 1705/1926/752 1686/1937/752 1722/1927/752 +f 1684/1929/749 1689/1914/749 1727/1916/749 +f 1719/1930/748 1715/1911/748 1753/1913/748 +f 1718/1932/750 1719/1930/750 1757/1931/750 +f 1709/1933/749 1693/1920/749 1731/1922/749 +f 1711/1925/761 1749/1924/761 1750/1906/761 +f 1685/1936/948 1723/2230/948 1722/1927/948 +f 1688/1938/949 1687/2231/949 1725/1939/949 +f 1709/1941/950 1748/2232/950 1747/1942/950 +f 1687/1944/951 1710/2233/951 1747/1945/951 +f 1751/1939/952 1713/2234/952 1720/1947/952 +f 1720/1947/750 1717/1917/750 1755/1919/750 +f 1692/1949/759 1714/2235/759 1752/1950/759 +f 1706/1951/752 1705/1926/752 1743/1928/752 +f 1716/1953/760 1706/1951/760 1742/1952/760 +f 1772/1956/555 1773/1976/555 1759/1957/555 +f 1772/1956/555 1762/1958/555 1761/1959/555 +f 1775/1961/555 1776/1981/555 1769/1962/555 +f 1778/1964/762 1764/1980/762 1763/1965/762 +f 1779/1967/555 1777/1966/555 1763/1965/555 +f 1780/1969/555 1779/1967/555 1767/1968/555 +f 1780/1969/555 1770/1970/555 1771/1971/555 +f 1782/1973/555 1783/1977/555 1765/1974/555 +f 1782/1973/555 1760/1975/555 1759/1957/555 +f 1783/1977/761 1784/1979/761 1766/1978/761 +f 1784/1979/555 1781/1972/555 1771/1971/555 +f 1778/1964/555 1775/1961/555 1768/1963/555 +f 1774/1960/761 1761/1959/761 1769/1962/761 +f 1823/2236/762 1813/2237/762 1814/1982/762 +f 1814/1982/753 1815/2238/753 1811/2239/753 +f 1815/2238/555 1816/2240/555 1811/2239/555 +f 1811/2239/555 1812/1983/555 1814/1982/555 +f 1812/1983/555 1817/2241/555 1820/1984/555 +f 1817/2241/555 1818/2242/555 1819/2243/555 +f 1820/1984/555 1817/2241/555 1819/2243/555 +f 1820/1984/753 1821/2244/753 1822/2245/753 +f 1822/2245/555 1823/2236/555 1814/1982/555 +f 1820/1984/555 1822/2245/555 1814/1982/555 s 1 -f 1963/2426/889 1981/2427/890 1968/2428/890 -f 504/2429/891 506/2430/892 503/2431/892 -f 499/2432/893 508/2433/894 500/2434/895 -f 510/2435/896 512/2436/897 509/2437/898 -f 513/2438/899 515/2439/900 516/2440/901 -f 517/2441/902 519/2442/903 520/2443/904 -f 521/2444/905 507/2445/906 499/2446/893 -f 524/2447/907 526/2448/908 523/2449/909 -f 514/2450/910 520/2443/904 515/2451/900 -f 518/2452/911 528/2453/912 519/2454/903 -f 1961/2455/913 1964/2456/914 1962/2457/915 -f 500/2434/895 525/2458/916 524/2459/907 -f 529/2460/917 516/2440/901 537/2461/918 -f 542/2462/919 549/2463/920 550/2464/919 -f 547/2465/921 552/2466/922 546/2467/923 -f 540/2468/924 553/2469/925 554/2470/926 -f 548/2471/927 551/2472/921 547/2465/921 -f 545/2473/928 557/2474/929 544/2475/930 -f 503/2476/892 553/2469/925 541/2477/925 -f 504/2429/891 550/2478/919 505/2479/891 -f 538/2480/931 555/2481/927 548/2482/927 -f 545/2473/928 552/2483/922 556/2484/932 -f 564/2485/933 566/2486/934 563/2487/934 -f 568/2488/935 570/2489/936 567/2490/936 -f 572/2491/937 574/2492/938 571/2493/938 -f 575/2494/939 577/2495/940 578/2496/941 -f 563/2497/934 580/2498/942 579/2499/942 -f 571/2493/938 581/2500/943 561/2501/944 -f 582/2502/945 580/2498/942 583/2503/946 -f 584/2504/947 569/2505/935 568/2506/935 -f 572/2507/937 570/2489/936 573/2508/937 -f 582/2509/945 577/2495/940 576/2510/948 -f 1890/2511/949 1887/2512/950 1879/2513/949 -f 1888/2514/951 1878/2515/952 1889/2516/952 -f 1874/2517/953 1863/2518/954 1861/2519/955 -f 1872/2520/956 1855/2521/957 1854/2522/956 -f 1866/2523/958 1857/2524/958 1867/2525/958 -f 1865/2526/959 1858/2527/960 1871/2528/960 -f 1874/2517/953 1860/2529/961 1873/2530/962 -f 1870/2531/963 1854/2522/956 1862/2532/963 -f 1851/2533/964 1858/2534/960 1852/2535/965 -f 1999/2536/966 1996/2537/966 2000/2538/966 -f 1998/2539/966 2000/2538/966 1997/2540/966 -f 1998/2539/966 1994/2541/967 1993/2542/966 -f 1995/2543/966 1991/2544/966 1996/2537/966 -f 1973/2545/968 1990/2546/969 1975/2547/970 -f 1870/2531/963 1863/2548/954 1869/2549/971 -f 1993/2542/966 1979/2550/972 1966/2551/973 -f 598/2552/974 593/2553/975 597/2554/975 -f 587/2555/976 600/2556/977 599/2557/976 -f 602/2558/978 592/2559/979 601/2560/979 -f 603/2561/980 595/2562/981 594/2563/982 -f 605/2564/983 593/2565/975 591/2566/983 -f 601/2560/979 560/2567/984 606/2568/985 -f 607/2569/986 591/2566/983 590/2570/987 -f 608/2571/988 588/2572/989 600/2573/989 -f 602/2574/990 587/2555/976 599/2557/976 -f 1988/2575/991 1976/2576/992 1961/2455/913 -f 1913/2577/993 1921/2578/994 1926/2579/995 -f 1912/2580/996 1922/2581/997 1904/2582/998 -f 1928/2583/999 1916/2584/1000 1910/2585/1001 -f 1912/2580/996 1925/2586/1002 1930/2587/1003 -f 1910/2585/1001 1915/2588/1004 1902/2589/1005 -f 1909/2590/1006 1918/2591/1007 1917/2592/1006 -f 1906/2593/1008 1919/2594/1009 1907/2595/1010 -f 1905/2596/1011 1922/2581/997 1921/2578/994 -f 607/2597/986 595/2562/981 604/2598/1012 -f 1902/2589/1005 1923/2599/1013 1903/2600/1013 -f 621/2601/1014 620/2602/1015 617/2603/1014 -f 624/2604/1016 610/2605/1017 623/2606/1017 -f 626/2607/1018 616/2608/1019 625/2609/1019 -f 628/2610/1020 618/2611/1021 627/2612/1022 -f 629/2613/1023 617/2614/1014 614/2615/1023 -f 630/2616/1024 616/2608/1019 615/2617/1025 -f 631/2618/1026 614/2615/1023 613/2619/1027 -f 632/2620/1028 611/2621/1016 624/2622/1016 -f 626/2623/1018 610/2605/1017 609/2624/1018 -f 1935/2625/1029 1957/2626/1030 1949/2627/1031 -f 1942/2628/1032 1958/2629/1033 1943/2630/1034 -f 1945/2631/1035 1951/2632/1036 1937/2633/1036 -f 1946/2634/1037 1955/2635/1038 1947/2636/1039 -f 1932/2637/1040 1958/2629/1033 1933/2638/1040 -f 1940/2639/1041 1957/2626/1030 1944/2640/1042 -f 1939/2641/1043 1952/2642/1044 1953/2643/1043 -f 1942/2628/1032 1950/2644/1045 1956/2645/1046 -f 1931/2646/1047 1955/2635/1038 1941/2647/1048 -f 1940/2639/1041 1953/2643/1043 1954/2648/1041 -f 1938/2649/1044 1951/2632/1036 1952/2642/1044 -f 502/2650/1049 637/2651/1050 638/2652/1049 -f 1992/2653/966 1987/2654/1051 1991/2544/966 -f 1959/2655/1052 1990/2546/969 1977/2656/1052 -f 1988/2575/991 1985/2657/1053 1989/2658/991 -f 1971/2659/1054 1987/2654/1051 1974/2660/1051 -f 1969/2661/1055 1983/2662/1056 1970/2663/1056 -f 1973/2545/968 1980/2664/1057 1986/2665/968 -f 1960/2666/1058 1985/2657/1053 1972/2667/1059 -f 537/2461/918 530/2668/1060 529/2460/917 -f 1970/2663/1056 1984/2669/1054 1971/2659/1054 -f 531/2670/1061 649/2671/1062 650/2672/1063 -f 2038/2673/1064 2042/2674/1065 2041/2675/1066 -f 639/2676/1067 655/2677/1068 640/2678/1069 -f 641/2679/1070 657/2680/1071 642/2681/1071 -f 643/2682/1072 659/2683/1073 644/2684/1073 -f 645/2685/1074 638/2652/1049 660/2686/1075 -f 640/2678/1069 661/2687/1076 646/2688/1076 -f 643/2682/1072 657/2680/1071 658/2689/1072 -f 647/2690/1077 659/2691/1073 662/2692/1077 -f 1969/2661/1055 1981/2427/890 1982/2693/1055 -f 648/2694/1078 637/2651/1050 501/2695/1050 -f 666/2696/1079 534/2697/1080 653/2698/1080 -f 2041/2675/1066 2040/2699/1081 2039/2700/1082 -f 2039/2700/1082 2036/2701/1083 2035/2702/1082 -f 2008/2703/1082 2037/2704/1084 2038/2673/1064 -f 2019/2705/1085 2031/2706/1086 2020/2707/1087 -f 2035/2702/1082 2021/2708/1088 2013/2709/1089 -f 2005/2710/1090 2030/2711/1091 2034/2712/1092 -f 2006/2713/1093 2034/2712/1092 2032/2714/1094 -f 2008/2703/1082 2028/2715/1095 2033/2716/1082 -f 2002/2717/1096 2032/2714/1094 2003/2718/1096 -f 2020/2719/1087 2011/2720/1097 2010/2721/1098 -f 677/2722/1099 683/2723/1100 681/2724/1100 -f 668/2725/1101 685/2726/435 684/2727/1101 -f 670/2728/1102 688/2729/1103 689/2730/1102 -f 672/2731/1104 533/2732/1105 690/2733/1104 -f 674/2734/1106 691/2735/486 692/2736/1106 -f 675/2737/1107 684/2738/1101 693/2739/1107 -f 670/2728/1102 694/2740/1108 676/2741/1108 -f 672/2742/1104 691/2735/486 673/2743/486 -f 674/2744/1106 682/2745/1099 677/2722/1099 -f 645/2746/1074 660/2747/1075 678/2748/1109 -f 680/2749/1110 685/2726/435 667/2750/435 -f 696/2751/1111 698/2752/1112 699/2753/1113 -f 2029/2754/1091 2026/2755/1114 2030/2711/1091 -f 727/2756/521 731/2757/1115 722/2758/521 -f 732/2759/1116 724/2760/1117 733/2761/1118 -f 734/2762/1119 720/2763/1120 721/2764/1121 -f 737/2765/1122 730/2766/1123 736/2767/1123 -f 713/2768/1124 739/2769/1125 738/2770/1126 -f 740/2771/1127 725/2772/1128 726/2773/1129 -f 741/2774/1130 721/2764/1121 722/2775/1131 -f 731/2776/1115 736/2777/1132 739/2769/1125 -f 738/2778/1133 714/2779/1134 742/2780/1135 -f 743/2781/1136 726/2773/1129 727/2782/1137 -f 733/2761/1118 723/2783/1138 744/2784/1139 -f 746/2785/1140 698/2752/1112 697/2786/1141 -f 2017/2787/1142 2028/2715/1095 2007/2788/1143 -f 615/2617/1025 633/2789/1144 630/2616/1024 -f 1907/2595/1010 1924/2790/1145 1914/2791/1146 -f 606/2568/985 559/2792/1147 749/2793/1147 -f 1867/2794/1148 1864/2795/1149 1857/2796/1148 -f 561/2501/944 750/2797/1150 562/2798/1150 -f 554/2470/926 539/2799/1151 540/2468/924 -f 708/2800/1152 665/2801/1153 679/2802/1152 -f 752/2803/1154 720/2763/1120 735/2804/1155 -f 1967/2805/1156 1979/2550/972 1980/2664/1057 -f 2016/2806/1157 2023/2807/1158 2024/2808/1159 -f 641/2809/1070 651/2810/1160 656/2811/1070 -f 671/2812/1105 534/2697/1080 533/2732/1105 -f 696/2751/1111 729/2813/1161 737/2765/1122 -f 539/2799/1151 558/2814/931 538/2480/931 -f 564/2485/933 750/2797/1150 565/2815/1162 -f 1866/2816/1163 1859/2817/959 1865/2526/959 -f 1911/2818/1164 1923/2599/1013 1925/2586/1002 -f 598/2552/974 559/2792/1147 596/2819/1165 -f 1928/2583/999 1914/2791/1146 1927/2820/1166 -f 633/2789/1144 620/2602/1015 622/2821/1167 -f 1936/2822/1168 1949/2627/1031 1950/2644/1045 -f 743/2781/1136 728/2823/1169 746/2785/1140 -f 2019/2705/1085 2022/2824/1170 2027/2825/1085 -f 753/2826/1171 714/2779/1134 715/2827/1172 -f 2018/2828/1173 2012/2829/1174 2026/2755/1114 -f 757/2830/1100 688/2729/1103 669/2831/1103 -f 741/2774/1130 723/2832/1175 744/2833/1176 -f 676/2741/1108 695/2834/1110 680/2835/1110 -f 2016/2806/1157 2025/2836/1177 2017/2837/1142 -f 648/2838/1078 661/2687/1076 663/2839/1178 -f 1959/2655/1052 1978/2840/1058 1960/2666/1058 -f 1946/2634/1037 1948/2841/1179 1945/2631/1035 -f 523/2449/909 511/2842/1180 510/2435/896 -f 758/2843/1108 741/2774/1130 744/2833/1176 -f 761/2844/1181 753/2826/1171 760/2845/1182 -f 763/2846/1183 765/2847/1184 762/2848/1185 -f 762/2848/1185 737/2765/1122 766/2849/1080 -f 733/2761/1118 758/2850/1186 767/2851/486 -f 768/2852/1152 743/2781/1136 765/2847/1184 -f 742/2853/1187 769/2854/1101 761/2855/1188 -f 739/2769/1125 771/2856/1189 770/2857/435 -f 772/2858/1190 741/2774/1130 759/2859/1108 -f 740/2860/1191 773/2861/1106 768/2862/1191 -f 738/2770/1126 770/2857/435 769/2863/1101 -f 771/2856/1189 737/2864/1192 766/2865/1192 -f 773/2866/1106 733/2761/1118 767/2851/486 -f 774/2867/1106 767/2851/486 775/2868/486 -f 771/2856/1189 777/2869/1192 776/2870/1189 -f 769/2863/1101 779/2871/435 778/2872/1101 -f 768/2862/1191 774/2873/1106 780/2874/1191 -f 782/2875/1193 759/2859/1108 781/2876/1108 -f 770/2857/435 776/2870/1189 779/2871/435 -f 761/2855/1188 778/2877/1101 783/2878/1194 -f 780/2879/1195 765/2847/1184 764/2880/1196 -f 767/2851/486 784/2881/1186 775/2868/486 -f 763/2846/1183 766/2849/1080 777/2882/1197 -f 712/2883/1198 764/2880/1196 763/2846/1183 -f 760/2884/1199 783/2878/1194 785/2885/1199 -f 781/2876/1108 758/2843/1108 784/2886/1200 -f 706/2887/1108 784/2886/1200 710/2888/1110 -f 707/2889/1201 785/2890/1202 745/2891/1203 -f 535/2892/1080 777/2882/1197 536/2893/1105 -f 734/2762/1119 772/2858/1190 787/2894/1204 -f 746/2785/1140 697/2786/1141 765/2847/1184 -f 710/2895/1110 775/2896/435 686/2897/435 -f 705/2898/1107 764/2880/1196 709/2899/1152 -f 707/2889/1201 778/2900/1106 783/2901/1205 -f 703/2902/486 776/2903/1104 779/2904/486 -f 706/2887/1108 782/2875/1193 781/2876/1108 -f 687/2905/1101 780/2879/1195 705/2898/1107 -f 703/2902/486 778/2906/1106 704/2907/1106 -f 536/2893/1105 776/2908/1104 702/2909/1104 -f 687/2910/1101 775/2896/435 774/2911/1101 -f 745/2891/1203 791/2912/1206 790/2913/1207 -f 792/2914/1208 753/2826/1171 793/2915/1209 -f 636/2916/1210 613/2917/1027 619/2918/1020 -f 793/2915/1209 715/2827/1172 716/2919/1211 -f 2015/2920/1212 2004/2921/1213 2023/2807/1158 -f 681/2724/1100 794/2922/1100 796/2923/1100 -f 757/2830/1100 798/2924/1100 754/2925/1100 -f 2013/2709/1089 2022/2824/1170 2014/2926/1214 -f 789/2927/1215 719/2928/1172 752/2803/1154 -f 786/2929/1216 782/2875/1193 801/2930/1217 -f 1931/2646/1047 1933/2638/1040 1934/2931/1047 -f 627/2612/1022 612/2932/1028 632/2620/1028 -f 1908/2933/1218 1926/2579/995 1918/2591/1007 -f 608/2571/988 594/2563/982 589/2934/988 -f 1909/2590/1006 1920/2935/1219 1906/2593/1008 -f 1850/2936/1220 1852/2535/965 1853/2937/1221 -f 584/2504/947 578/2496/941 585/2938/947 -f 544/2475/930 549/2463/920 543/2939/920 -f 509/2437/898 528/2453/912 527/2940/1222 -f 1963/2426/889 1964/2456/914 1965/2941/889 -f 802/2942/1223 799/2943/1223 639/2676/1067 -f 803/2944/1100 798/2924/1100 797/2945/1100 -f 803/2944/1100 794/2922/1100 804/2946/1100 -f 2009/2947/1224 2011/2720/1097 2012/2948/1174 -f 2001/2949/1225 2003/2718/1096 2004/2950/1213 -f 805/2951/1226 791/2912/1206 806/2952/1227 -f 788/2953/1228 718/2954/1229 789/2927/1215 -f 788/2953/1228 716/2919/1211 717/2955/1230 -f 787/2894/1204 793/2915/1209 788/2953/1228 -f 701/2956/1231 700/2957/1232 806/2952/1227 -f 530/2668/1060 635/2958/1233 634/2959/1234 -f 2164/2960/1235 2180/2961/1236 2179/2962/1236 -f 2168/2963/1237 2129/2964/1238 2130/2965/1239 -f 2151/2966/1240 2168/2963/1237 2152/2967/1241 -f 2167/2968/1242 2129/2969/1238 2178/2970/1243 -f 2151/2971/1240 2167/2968/1242 2178/2970/1243 -f 2177/2972/1244 2111/2973/1245 2163/2974/1246 -f 2153/2975/1247 2177/2972/1244 2163/2974/1246 -f 2167/2968/1242 2162/2976/1248 2126/2977/1249 -f 2154/2978/1250 2167/2968/1242 2155/2979/1251 -f 2162/2976/1248 2166/2980/1252 2111/2973/1245 -f 2153/2975/1247 2164/2960/1235 2154/2978/1250 -f 2162/2976/1248 2088/2981/1253 2161/2982/1254 -f 2126/2977/1249 2161/2982/1254 2112/2983/1255 -f 2130/2965/1239 2146/2984/1256 2145/2985/1257 -f 2143/2986/1258 2146/2987/1256 2144/2988/1259 -f 2115/2989/1260 1038/2990/1261 2125/2991/1262 -f 1018/2992/1263 2125/2991/1262 1017/2993/1264 -f 1034/2994/1265 2124/2995/1266 2117/2996/1267 -f 2117/2996/1267 1020/2997/1268 1021/2998/1269 -f 2123/2999/1270 934/3000/1271 2121/3001/1272 -f 950/3002/1273 2121/3001/1272 940/3003/1274 -f 942/3004/1275 2120/3005/1276 2122/3006/1277 -f 1016/3007/1278 2120/3005/1276 941/3008/1279 -f 934/3000/1271 2119/3009/1280 2121/3001/1272 -f 2121/3001/1272 929/3010/1281 940/3003/1274 -f 2120/3005/1276 917/3011/1282 2118/3012/1283 -f 941/3008/1279 2118/3012/1283 930/3013/1284 -f 2116/3014/1285 1034/2994/1265 2117/2996/1267 -f 887/3015/1286 2117/2996/1267 1021/2998/1269 -f 2113/3016/1287 2115/2989/1260 2114/3017/1288 -f 915/3018/1289 2115/2989/1260 1018/2992/1263 -f 868/3019/1290 1044/3020/1291 2113/3016/1287 -f 882/3021/1292 1034/2994/1265 869/3022/1293 -f 2143/2986/1258 2142/3023/1294 2141/3024/1295 -f 932/3025/1296 918/3026/1297 917/3011/1282 -f 937/3027/1298 922/3028/1299 934/3000/1271 -f 926/3029/1300 2142/3023/1294 886/3030/1301 -f 945/3031/1302 932/3025/1296 942/3004/1275 -f 948/3032/1303 934/3000/1271 946/3033/1304 -f 926/3034/1300 938/3035/1305 949/3036/1306 -f 1022/3037/1307 938/3035/1305 1019/3038/1308 -f 1025/3039/1309 1023/3040/1310 1034/2994/1265 -f 1044/3020/1291 1040/3041/1311 1038/2990/1261 -f 1116/3042/1312 1114/3043/1313 1115/3044/1314 -f 1120/3045/1315 1122/3046/1316 1119/3047/1317 -f 1124/3048/1318 1126/3049/1319 1123/3050/1320 -f 1123/3050/1320 1119/3047/1317 1122/3046/1316 -f 1132/3051/1321 1115/3044/1314 1133/3052/1322 -f 1131/3053/1323 1125/3054/1324 1124/3048/1318 -f 1134/3055/1325 1137/3056/1326 1138/3057/1327 -f 1128/3058/1328 2262/3059/1329 1117/3060/1330 -f 1125/3054/1324 1138/3057/1327 1149/3061/1331 -f 1133/3052/1322 1150/3062/1332 1137/3056/1326 -f 1128/3058/1328 2264/3063/1329 2263/3064/1329 -f 1126/3049/1319 1147/3065/1333 1119/3047/1317 -f 1115/3044/1314 1139/3066/1334 1150/3062/1332 -f 1127/3067/1335 2261/3068/1336 2260/3069/1336 -f 1119/3047/1317 1146/3070/1337 1120/3045/1315 -f 1125/3054/1324 1148/3071/1338 1126/3049/1319 -f 1122/3046/1316 1157/3072/1339 1156/3073/1340 -f 1127/3067/1335 2259/3074/1336 1129/3075/1341 -f 1124/3048/1318 1153/3076/1342 1131/3053/1323 -f 1118/3077/1343 1128/3058/1328 1117/3060/1330 -f 1132/3051/1321 1151/3078/1344 1116/3042/1312 -f 1123/3050/1320 1156/3073/1340 1155/3079/1345 -f 1127/3067/1335 1130/3080/1346 1128/3058/1328 -f 1116/3042/1312 1162/3081/1347 1111/3082/1348 -f 1124/3048/1318 1155/3079/1345 1154/3083/1349 -f 1131/3053/1323 1152/3084/1350 1132/3051/1321 -f 2222/3085/1351 2203/3086/1352 2216/3087/1353 -f 2221/3088/1354 2202/3089/1355 2222/3090/1351 -f 2220/3091/1356 2204/3092/1357 2221/3093/1354 -f 2206/3094/1358 2220/3091/1356 2219/3095/1359 -f 2207/3096/1360 2219/3097/1359 2218/3098/1361 -f 2208/3099/1362 2218/3098/1361 2217/3100/1363 -f 2216/3087/1353 2208/3101/1362 2217/3102/1363 -f 2193/3103/1364 2181/3104/1365 2194/3105/1364 -f 2191/3106/1366 2194/3107/1364 2192/3108/1366 -f 2189/3109/1367 2192/3110/1366 2190/3111/1367 -f 1240/3112/1368 1237/3113/1369 1239/3114/1370 -f 1238/3115/1371 1235/3116/1372 1237/3113/1369 -f 1241/3117/1373 1240/3112/1368 1239/3114/1370 -f 1181/3118/1374 1173/3119/1375 1175/3120/1376 -f 1229/3121/1377 1232/3122/1378 1246/3123/1379 -f 1230/3124/1380 1231/3125/1381 1228/3126/1380 -f 1244/3127/1382 1242/3128/1383 1241/3117/1373 -f 1183/3129/1384 1177/3130/1385 1181/3118/1374 -f 1245/3131/1386 1251/3132/1387 1231/3125/1381 -f 2187/3133/1388 2190/3111/1367 2188/3134/1388 -f 1246/3123/1379 1252/3135/1389 1247/3136/1390 -f 1249/3137/1391 1254/3138/1392 1255/3139/1393 -f 1251/3132/1387 1250/3140/1394 1256/3141/1395 -f 2185/3142/1396 2188/3143/1388 2186/3144/1396 -f 1252/3135/1389 1249/3137/1391 1247/3136/1390 -f 1187/3145/1397 1183/3129/1384 1185/3146/1398 -f 1234/3147/1399 1185/3146/1398 1233/3148/1399 -f 1250/3140/1394 1260/3149/1400 1256/3141/1395 -f 2184/3150/1401 2185/3142/1396 2186/3144/1396 -f 2182/3151/1365 2184/3152/1401 2181/3104/1365 -f 1257/3153/1402 1262/3154/1403 1260/3155/1400 -f 1170/3156/1404 1163/3157/1404 1167/3158/1404 -f 1255/3159/1393 1261/3160/1405 1258/3161/1406 -f 2239/3162/1407 2251/3163/1408 2240/3164/1409 -f 2245/3165/1410 2253/3166/1411 2246/3167/1412 -f 2245/3165/1410 2255/3168/1413 2254/3169/1414 -f 2248/3170/1415 2249/3171/1416 2250/3172/1417 -f 2239/3173/1407 2247/3174/1418 2246/3175/1412 -f 2245/3176/1410 2244/3177/1419 2243/3178/1420 -f 2246/3175/1412 2248/3179/1415 2245/3176/1410 -f 2240/3180/1409 2242/3181/1421 2239/3173/1407 -f 1609/3182/1422 1610/3183/1423 1611/3184/1424 -f 1612/3185/1425 1614/3186/1426 1615/3187/1427 -f 1617/3188/1428 1619/3189/1429 1616/3190/1430 -f 1620/3191/1431 1621/3192/1432 1622/3193/1433 -f 1610/3183/1423 1615/3194/1427 1611/3184/1424 -f 1616/3190/1430 1614/3186/1426 1613/3195/1434 -f 1620/3191/1431 1618/3196/1435 1617/3197/1428 -f 1614/3198/1426 1623/3199/1436 1624/3200/1437 -f 1618/3196/1435 1625/3201/1438 1626/3202/1439 -f 1609/3182/1422 1611/3184/1424 1627/3203/1440 -f 1614/3198/1426 1628/3204/1441 1615/3205/1427 -f 1618/3206/1435 1623/3199/1436 1619/3207/1429 -f 1622/3193/1433 1621/3192/1432 1625/3201/1438 -f 1611/3184/1424 1628/3208/1441 1627/3203/1440 -f 1609/3182/1422 1627/3203/1440 1629/3209/1442 -f 1628/3204/1441 1630/3210/1443 1631/3211/1444 -f 1626/3212/1439 1633/3213/1445 1623/3199/1436 -f 1625/3201/1438 1621/3192/1432 1634/3214/1446 -f 1627/3203/1440 1631/3215/1444 1629/3209/1442 -f 1623/3199/1436 1630/3210/1443 1624/3200/1437 -f 1626/3202/1439 1634/3214/1446 1632/3216/1447 -f 1609/3182/1422 1629/3209/1442 1635/3217/1448 -f 1630/3218/1443 1637/3219/1449 1631/3220/1444 -f 1633/3221/1445 1638/3222/1450 1639/3223/1451 -f 1634/3214/1446 1621/3192/1432 1640/3224/1452 -f 1631/3215/1444 1635/3217/1448 1629/3209/1442 -f 1633/3221/1445 1636/3225/1453 1630/3218/1443 -f 1632/3226/1447 1640/3227/1452 1638/3222/1450 -f 2201/3228/1364 2209/3229/1365 2195/3230/1365 -f 2214/3231/1366 2201/3232/1364 2200/3233/1366 -f 2199/3234/1367 2214/3235/1366 2200/3236/1366 -f 2212/3237/1388 2199/3234/1367 2198/3238/1388 -f 2211/3239/1396 2198/3240/1388 2197/3241/1396 -f 2210/3242/1401 2197/3241/1396 2196/3243/1401 -f 2195/3230/1365 2210/3244/1401 2196/3245/1401 -f 2247/3246/1418 2257/3247/1454 2249/3171/1416 -f 2242/3248/1421 2258/3249/1455 2257/3247/1454 -f 2248/3170/1415 2256/3250/1456 2244/3251/1419 -f 2246/3167/1412 2252/3252/1457 2239/3162/1407 -f 2237/3253/1458 2226/3254/445 2223/3255/445 -f 2236/3256/431 2237/3257/1458 2235/3258/431 -f 2233/3259/1459 2236/3256/431 2235/3258/431 -f 2232/3260/521 2233/3261/1459 2231/3262/521 -f 2229/3263/1460 2232/3260/521 2231/3262/521 -f 2228/3264/433 2229/3265/1460 2227/3266/433 -f 2224/3267/1461 2228/3264/433 2227/3266/433 -f 2226/3254/445 2224/3268/1461 2223/3255/445 -f 1675/3269/1462 1676/3270/1463 1669/3271/1464 -f 1674/3272/1465 1682/3273/1466 1675/3269/1462 -f 1680/3274/1467 1674/3272/1465 1673/3275/1468 -f 1679/3276/1469 1673/3275/1468 1672/3277/1470 -f 1678/3278/1471 1672/3277/1470 1671/3279/1472 -f 1670/3280/1473 1678/3278/1471 1671/3279/1472 -f 1669/3271/1464 1677/3281/1474 1670/3280/1473 -f 1792/3282/1475 1798/3283/1476 1800/3284/1477 -f 1791/3285/1478 1799/3286/1479 1798/3287/1476 -f 1786/3288/1480 1808/3289/1481 1799/3286/1479 -f 1785/3290/1482 1809/3291/1483 1808/3289/1481 -f 1790/3292/1484 1810/3293/1485 1809/3294/1483 -f 1789/3295/1486 1807/3296/1487 1810/3293/1485 -f 1787/3297/1488 1807/3296/1487 1788/3298/1489 -f 1797/3299/1490 1806/3300/1491 1787/3297/1488 -f 1796/3301/1492 1805/3302/1493 1797/3303/1490 -f 1795/3304/1494 1803/3305/1495 1796/3301/1492 -f 1795/3306/1494 1801/3307/1496 1804/3308/1497 -f 1793/3309/1498 1801/3307/1496 1794/3310/1499 -f 1792/3282/1475 1802/3311/1500 1793/3309/1498 -f 1837/3312/1501 1836/3313/1502 1838/3314/1502 -f 1839/3315/1503 1825/3316/1504 1840/3317/1504 -f 1841/3318/1505 1829/3319/1506 1842/3320/1506 -f 1844/3321/1507 1833/3322/1508 1832/3323/1509 -f 1838/3324/1502 1835/3325/1510 1845/3326/1510 -f 1842/3320/1506 1828/3327/1511 1846/3328/1512 -f 1847/3329/1513 1835/3325/1510 1834/3330/1514 -f 1848/3331/1515 1830/3332/1503 1839/3333/1503 -f 1841/3334/1505 1825/3316/1504 1824/3335/1505 -f 1847/3336/1513 1833/3322/1508 1843/3337/1516 -f 1846/3328/1512 1827/3338/1517 1849/3339/1518 -f 1837/3312/1501 1827/3338/1517 1826/3340/1519 -f 1848/3331/1515 1832/3323/1509 1831/3341/1515 -f 1893/3342/1520 1886/3343/1521 1892/3344/1522 -f 1895/3345/1523 1885/3346/1524 1894/3347/1525 -f 1893/3342/1520 1876/3348/1526 1884/3349/1520 -f 1897/3350/1527 1883/3351/1528 1882/3352/1529 -f 1888/3353/1530 1880/3354/1523 1895/3345/1523 -f 1889/2516/952 1879/3355/1531 1890/3356/1531 -f 1896/3357/1526 1877/3358/1532 1876/3359/1526 -f 1892/3360/1522 1883/3351/1528 1898/3361/1533 -f 1894/3347/1525 1901/3362/1534 1900/3363/1535 -f 1850/2936/1220 1855/3364/957 1875/3365/1536 -f 1899/3366/1537 1901/3362/1534 1877/3358/1532 -f 1891/3367/950 1882/3352/1529 1887/2512/950 -f 1873/2530/962 1864/2795/1149 1868/3368/1538 -f 2176/3369/1539 2109/3370/1540 2177/2972/1244 -f 2148/3371/1541 2176/3369/1539 2177/2972/1244 -f 2175/3372/1542 2081/3373/1543 2176/3369/1539 -f 1022/3037/1307 1035/3374/1544 2060/3375/1545 -f 2065/3376/1546 2067/3377/1547 2064/3378/1548 -f 2068/3379/1549 2070/3380/1550 2071/3381/1551 -f 2150/3382/1552 2176/3369/1539 2147/3383/1553 -f 2174/3384/1554 2060/3375/1545 2175/3385/1542 -f 2150/3386/1552 2174/3384/1554 2175/3385/1542 -f 2173/3387/1555 1022/3037/1307 2174/3384/1554 -f 2159/3388/1556 2174/3384/1554 2149/3389/1557 -f 2173/3387/1555 926/3034/1300 949/3036/1306 -f 2081/3373/1543 1035/3390/1544 2063/3391/1558 -f 2082/3392/1559 2090/3393/1560 2083/3394/1561 -f 2085/3395/1562 2091/3396/1563 2092/3397/1564 -f 2159/3388/1556 2172/3398/1565 2173/3387/1555 -f 2171/3399/1566 926/3029/1300 2172/3400/1565 -f 2157/3401/1567 2172/3400/1565 2160/3402/1568 -f 2170/3403/1569 2141/3024/1295 2171/3399/1566 -f 2157/3401/1567 2170/3403/1569 2171/3399/1566 -f 2169/3404/1570 2143/3405/1258 2170/3406/1569 -f 2158/3407/1571 2170/3406/1569 2156/3408/1572 -f 2079/3409/1573 2093/3410/1574 2086/3411/1575 -f 2097/3412/1576 2092/3397/1564 2093/3410/1574 -f 2098/3413/1577 2087/3414/1578 2080/3415/1579 -f 2083/3394/1561 2095/3416/1580 2098/3413/1577 -f 2168/2963/1237 2145/2985/1257 2169/3404/1570 -f 2158/3407/1571 2168/2963/1237 2169/3404/1570 -f 2135/3417/1581 2050/3418/1581 2134/3419/1581 -f 2049/3420/1581 2134/3419/1581 2048/3421/1581 -f 2046/3422/1582 2132/3423/1582 2133/3424/1582 -f 2045/3425/1582 2132/3423/1582 2131/3426/1582 -f 2047/3427/1582 2043/3428/1582 2046/3422/1582 -f 2052/3429/1581 2050/3418/1581 2053/3430/1581 -f 2058/3431/1583 2101/3432/1584 2059/3433/1585 -f 2103/3434/1586 2071/3381/1551 2101/3432/1584 -f 2104/3435/1587 2062/3436/1588 2061/3437/1589 -f 2064/3378/1548 2102/3438/1590 2104/3435/1587 -f 2057/3439/1591 2073/3440/1592 2074/3441/1592 -f 2075/3442/1593 2094/3443/1594 2076/3444/1593 -f 2078/3445/1595 2100/3446/1596 2094/3447/1594 -f 2106/3448/1597 2057/3439/1591 2108/3449/1597 -f 2110/3450/1597 2137/3451/1591 2054/3452/1598 -f 2108/3449/1597 2137/3451/1591 2136/3453/1597 -f 2081/3373/1543 2107/3454/1599 2109/3370/1540 -f 2109/3370/1540 2088/2981/1253 2111/2973/1245 -f 2096/3455/1595 2138/3456/1596 2105/3457/1596 -f 2094/3447/1594 2138/3456/1596 2139/3458/1594 -f 2077/3459/1593 2139/3460/1594 2096/3461/1595 -f 2076/3444/1593 2139/3460/1594 2140/3462/1593 -f 2126/2977/1249 2128/3463/1600 2129/2969/1238 -f 2130/2965/1239 2128/3464/1600 2127/3465/1601 -f 2137/3451/1591 2055/3466/1592 2054/3452/1598 -f 2057/3439/1591 2056/3467/1592 2137/3451/1591 -f 1963/2426/889 1965/2941/889 1981/2427/890 -f 504/2429/891 505/2479/891 506/2430/892 -f 499/2432/893 507/3468/906 508/2433/894 -f 510/2435/896 511/2842/1180 512/2436/897 -f 513/2438/899 514/3469/910 515/2439/900 -f 517/2441/902 518/3470/911 519/2442/903 -f 521/2444/905 522/3471/1602 507/2445/906 -f 524/2447/907 525/3472/916 526/2448/908 -f 514/2450/910 517/2441/902 520/2443/904 -f 518/2452/911 527/2940/1222 528/2453/912 -f 1961/2455/913 1976/2576/992 1964/2456/914 -f 500/2434/895 508/2433/894 525/2458/916 -f 529/2460/917 513/2438/899 516/2440/901 -f 542/2462/919 543/2939/920 549/2463/920 -f 547/2465/921 551/2472/921 552/2466/922 -f 540/2468/924 541/2477/925 553/2469/925 -f 548/2471/927 555/3473/927 551/2472/921 -f 545/2473/928 556/2484/932 557/2474/929 -f 503/2476/892 506/3474/892 553/2469/925 -f 504/2429/891 542/3475/919 550/2478/919 -f 538/2480/931 558/2814/931 555/2481/927 -f 545/2473/928 546/3476/923 552/2483/922 -f 564/2485/933 565/2815/1162 566/2486/934 -f 568/2488/935 569/3477/935 570/2489/936 -f 572/2491/937 573/3478/937 574/2492/938 -f 575/2494/939 576/2510/948 577/2495/940 -f 563/2497/934 566/3479/934 580/2498/942 -f 571/2493/938 574/2492/938 581/2500/943 -f 582/2502/945 579/2499/942 580/2498/942 -f 584/2504/947 585/2938/947 569/2505/935 -f 572/2507/937 567/2490/936 570/2489/936 -f 582/2509/945 583/3480/946 577/2495/940 -f 1890/2511/949 1891/3367/950 1887/2512/950 -f 1888/2514/951 1881/3481/951 1878/2515/952 -f 1874/2517/953 1869/3482/971 1863/2518/954 -f 1872/2520/956 1875/3483/1536 1855/2521/957 -f 1866/2523/958 1856/3484/958 1857/2524/958 -f 1865/2526/959 1859/2817/959 1858/2527/960 -f 1874/2517/953 1861/2519/955 1860/2529/961 -f 1870/2531/963 1872/2520/956 1854/2522/956 -f 1851/2533/964 1871/3485/960 1858/2534/960 -f 1999/2536/966 1995/2543/966 1996/2537/966 -f 1998/2539/966 1999/2536/966 2000/2538/966 -f 1998/2539/966 1997/2540/966 1994/2541/967 -f 1995/2543/966 1992/2653/966 1991/2544/966 -f 1973/2545/968 1986/2665/968 1990/2546/969 -f 1870/2531/963 1862/2532/963 1863/2548/954 -f 1993/2542/966 1994/2541/967 1979/2550/972 -f 598/2552/974 596/2819/1165 593/2553/975 -f 587/2555/976 588/3486/977 600/2556/977 -f 602/2558/978 586/3487/978 592/2559/979 -f 603/2561/980 604/2598/1012 595/2562/981 -f 605/2564/983 597/3488/975 593/2565/975 -f 601/2560/979 592/2559/979 560/2567/984 -f 607/2569/986 605/2564/983 591/2566/983 -f 608/2571/988 589/2934/988 588/2572/989 -f 602/2574/990 586/3489/990 587/2555/976 -f 1988/2575/991 1989/2658/991 1976/2576/992 -f 1913/2577/993 1905/2596/1011 1921/2578/994 -f 1912/2580/996 1930/2587/1003 1922/2581/997 -f 1928/2583/999 1927/2820/1166 1916/2584/1000 -f 1912/2580/996 1911/2818/1164 1925/2586/1002 -f 1910/2585/1001 1916/2584/1000 1915/2588/1004 -f 1909/2590/1006 1908/2933/1218 1918/2591/1007 -f 1906/2593/1008 1920/2935/1219 1919/2594/1009 -f 1905/2596/1011 1904/2582/998 1922/2581/997 -f 607/2597/986 590/3490/987 595/2562/981 -f 1902/2589/1005 1915/2588/1004 1923/2599/1013 -f 621/2601/1014 622/2821/1167 620/2602/1015 -f 624/2604/1016 611/3491/1016 610/2605/1017 -f 626/2607/1018 609/3492/1018 616/2608/1019 -f 628/2610/1020 619/2918/1020 618/2611/1021 -f 629/2613/1023 621/3493/1014 617/2614/1014 -f 630/2616/1024 625/2609/1019 616/2608/1019 -f 631/2618/1026 629/2613/1023 614/2615/1023 -f 632/2620/1028 612/2932/1028 611/2621/1016 -f 626/2623/1018 623/2606/1017 610/2605/1017 -f 1935/2625/1029 1944/2640/1042 1957/2626/1030 -f 1942/2628/1032 1956/2645/1046 1958/2629/1033 -f 1945/2631/1035 1948/2841/1179 1951/2632/1036 -f 1946/2634/1037 1941/2647/1048 1955/2635/1038 -f 1932/2637/1040 1943/2630/1034 1958/2629/1033 -f 1940/2639/1041 1954/2648/1041 1957/2626/1030 -f 1939/2641/1043 1938/2649/1044 1952/2642/1044 -f 1942/2628/1032 1936/2822/1168 1950/2644/1045 -f 1931/2646/1047 1934/2931/1047 1955/2635/1038 -f 1940/2639/1041 1939/2641/1043 1953/2643/1043 -f 1938/2649/1044 1937/2633/1036 1951/2632/1036 -f 502/2650/1049 501/2695/1050 637/2651/1050 -f 1992/2653/966 1974/2660/1051 1987/2654/1051 -f 1959/2655/1052 1975/2547/970 1990/2546/969 -f 1988/2575/991 1972/2667/1059 1985/2657/1053 -f 1971/2659/1054 1984/2669/1054 1987/2654/1051 -f 1969/2661/1055 1982/2693/1055 1983/2662/1056 -f 1973/2545/968 1967/2805/1156 1980/2664/1057 -f 1960/2666/1058 1978/2840/1058 1985/2657/1053 -f 537/2461/918 635/2958/1233 530/2668/1060 -f 1970/2663/1056 1983/2662/1056 1984/2669/1054 -f 651/2810/1160 532/3494/1603 650/2672/1063 -f 532/3494/1603 531/2670/1061 650/2672/1063 -f 2038/2673/1064 2037/2704/1084 2042/2674/1065 -f 639/2676/1067 654/3495/1604 655/2677/1068 -f 641/2679/1070 656/3496/1070 657/2680/1071 -f 643/2682/1072 658/2689/1072 659/2683/1073 -f 645/2685/1074 502/2650/1049 638/2652/1049 -f 640/2678/1069 655/2677/1068 661/2687/1076 -f 643/2682/1072 642/2681/1071 657/2680/1071 -f 647/2690/1077 644/3497/1073 659/2691/1073 -f 1969/2661/1055 1968/2428/890 1981/2427/890 -f 648/2694/1078 663/3498/1178 637/2651/1050 -f 653/2698/1080 652/3499/1079 666/2696/1079 -f 652/3499/1079 664/3500/1153 666/2696/1079 -f 664/3500/1153 665/2801/1153 666/2696/1079 -f 2041/2675/1066 2042/2674/1065 2040/2699/1081 -f 2039/2700/1082 2040/2699/1081 2036/2701/1083 -f 2008/2703/1082 2033/2716/1082 2037/2704/1084 -f 2019/2705/1085 2027/2825/1085 2031/2706/1086 -f 2035/2702/1082 2036/2701/1083 2021/2708/1088 -f 2005/2710/1090 2029/2754/1091 2030/2711/1091 -f 2006/2713/1093 2005/2710/1090 2034/2712/1092 -f 2008/2703/1082 2007/2788/1143 2028/2715/1095 -f 2002/2717/1096 2006/2713/1093 2032/2714/1094 -f 2020/2719/1087 2031/3501/1086 2011/2720/1097 -f 677/2722/1099 682/2745/1099 683/2723/1100 -f 668/2725/1101 667/2750/435 685/2726/435 -f 670/2728/1102 669/2831/1103 688/2729/1103 -f 672/2731/1104 671/2812/1105 533/2732/1105 -f 674/2734/1106 673/2743/486 691/2735/486 -f 675/2737/1107 668/3502/1101 684/2738/1101 -f 670/2728/1102 689/2730/1102 694/2740/1108 -f 672/2742/1104 690/3503/1104 691/2735/486 -f 674/2744/1106 692/3504/1106 682/2745/1099 -f 649/2671/1062 531/2670/1061 678/2748/1109 -f 531/2670/1061 645/2746/1074 678/2748/1109 -f 680/2749/1110 695/3505/1110 685/2726/435 -f 696/2751/1111 697/2786/1141 698/2752/1112 -f 2029/2754/1091 2018/2828/1173 2026/2755/1114 -f 731/2757/1115 713/3506/1124 717/3507/521 -f 713/3506/1124 714/3508/521 715/3509/521 -f 715/3509/521 716/3510/1605 713/3506/1124 -f 716/3510/1605 717/3507/521 713/3506/1124 -f 729/3511/884 730/3512/1606 699/3513/521 -f 730/3512/1606 731/2757/1115 727/2756/521 -f 699/3513/521 730/3512/1606 728/3514/521 -f 728/3514/521 698/3515/1607 699/3513/521 -f 717/3507/521 718/3516/1608 722/2758/521 -f 718/3516/1608 719/3517/521 722/2758/521 -f 722/2758/521 719/3517/521 720/3518/1609 -f 720/3518/1609 721/3519/1610 722/2758/521 -f 722/2758/521 723/3520/1138 724/3521/1117 -f 724/3521/1117 725/3522/1611 727/2756/521 -f 724/3521/1117 727/2756/521 722/2758/521 -f 725/3522/1611 726/3523/521 727/2756/521 -f 727/2756/521 728/3514/521 730/3512/1606 -f 731/2757/1115 717/3507/521 722/2758/521 -f 732/2759/1116 725/3524/1611 724/2760/1117 -f 734/2762/1119 735/2804/1155 720/2763/1120 -f 737/2765/1122 729/2813/1161 730/2766/1123 -f 713/2768/1124 731/2776/1115 739/2769/1125 -f 740/2771/1127 732/3525/1128 725/2772/1128 -f 741/2774/1130 734/2762/1119 721/2764/1121 -f 731/2776/1115 730/3526/1606 736/2777/1132 -f 738/2778/1133 713/3527/1133 714/2779/1134 -f 743/2781/1136 740/2771/1127 726/2773/1129 -f 733/2761/1118 724/2760/1117 723/2783/1138 -f 746/2785/1140 728/2823/1169 698/2752/1112 -f 2017/2787/1142 2025/3528/1177 2028/2715/1095 -f 615/2617/1025 748/3529/1144 633/2789/1144 -f 1907/2595/1010 1919/2594/1009 1924/2790/1145 -f 606/2568/985 560/2567/984 559/2792/1147 -f 1867/2794/1148 1868/3368/1538 1864/2795/1149 -f 561/2501/944 581/2500/943 750/2797/1150 -f 554/2470/926 751/3530/1151 539/2799/1151 -f 665/2801/1153 664/3500/1153 679/2802/1152 -f 679/2802/1152 675/2737/1107 693/2739/1107 -f 693/2739/1107 708/2800/1152 679/2802/1152 -f 752/2803/1154 719/2928/1172 720/2763/1120 -f 1967/2805/1156 1966/2551/973 1979/2550/972 -f 2016/2806/1157 2015/2920/1212 2023/2807/1158 -f 641/2809/1070 532/3494/1603 651/2810/1160 -f 671/2812/1105 653/2698/1080 534/2697/1080 -f 696/2751/1111 699/2753/1113 729/2813/1161 -f 539/2799/1151 751/3530/1151 558/2814/931 -f 564/2485/933 562/2798/1150 750/2797/1150 -f 1866/2816/1163 1856/3531/1163 1859/2817/959 -f 1911/2818/1164 1903/2600/1013 1923/2599/1013 -f 598/2552/974 749/2793/1147 559/2792/1147 -f 1929/3532/1610 1914/2791/1146 1928/2583/999 -f 1914/2791/1146 1924/2790/1145 1927/2820/1166 -f 633/2789/1144 748/3529/1144 620/2602/1015 -f 1936/2822/1168 1935/2625/1029 1949/2627/1031 -f 743/2781/1136 727/2782/1137 728/2823/1169 -f 2019/2705/1085 2014/2926/1214 2022/2824/1170 -f 753/2826/1171 742/2780/1135 714/2779/1134 -f 2018/2828/1173 2009/3533/1224 2012/2829/1174 -f 757/2830/1100 754/2925/1100 688/2729/1103 -f 741/2774/1130 722/2775/1131 723/2832/1175 -f 676/2741/1108 694/2740/1108 695/2834/1110 -f 2016/2806/1157 2024/2808/1159 2025/2836/1177 -f 648/2838/1078 646/2688/1076 661/2687/1076 -f 1959/2655/1052 1977/2656/1052 1978/2840/1058 -f 1946/2634/1037 1947/2636/1039 1948/2841/1179 -f 523/2449/909 526/2448/908 511/2842/1180 -f 758/2843/1108 759/2859/1108 741/2774/1130 -f 761/2844/1181 742/2780/1135 753/2826/1171 -f 763/2846/1183 764/2880/1196 765/2847/1184 -f 762/2848/1185 696/2751/1111 737/2765/1122 -f 733/2761/1118 744/2784/1139 758/2850/1186 -f 768/2852/1152 740/2771/1127 743/2781/1136 -f 742/2853/1187 738/3534/1126 769/2854/1101 -f 739/2769/1125 736/2777/1132 771/2856/1189 -f 772/2858/1190 734/2762/1119 741/2774/1130 -f 740/2860/1191 732/3535/1116 773/2861/1106 -f 738/2770/1126 739/2769/1125 770/2857/435 -f 771/2856/1189 736/2777/1132 737/2864/1192 -f 773/2866/1106 732/2759/1116 733/2761/1118 -f 774/2867/1106 773/2866/1106 767/2851/486 -f 771/2856/1189 766/2865/1192 777/2869/1192 -f 769/2863/1101 770/2857/435 779/2871/435 -f 768/2862/1191 773/2861/1106 774/2873/1106 -f 782/2875/1193 772/2858/1190 759/2859/1108 -f 770/2857/435 771/2856/1189 776/2870/1189 -f 761/2855/1188 769/2854/1101 778/2877/1101 -f 780/2879/1195 768/2852/1152 765/2847/1184 -f 767/2851/486 758/2850/1186 784/2881/1186 -f 763/2846/1183 762/2848/1185 766/2849/1080 -f 763/2846/1183 535/2892/1080 712/2883/1198 -f 712/2883/1198 747/3536/1612 764/2880/1196 -f 747/3536/1612 709/2899/1152 764/2880/1196 -f 760/2884/1199 761/2855/1188 783/2878/1194 -f 781/2876/1108 759/2859/1108 758/2843/1108 -f 706/2887/1108 781/2876/1108 784/2886/1200 -f 707/2889/1201 783/2901/1205 785/2890/1202 -f 535/2892/1080 763/2846/1183 777/2882/1197 -f 772/2858/1190 786/2929/1216 787/2894/1204 -f 787/2894/1204 788/2953/1228 789/2927/1215 -f 752/2803/1154 735/2804/1155 787/2894/1204 -f 735/2804/1155 734/2762/1119 787/2894/1204 -f 787/2894/1204 789/2927/1215 752/2803/1154 -f 696/2751/1111 762/2848/1185 697/2786/1141 -f 762/2848/1185 765/2847/1184 697/2786/1141 -f 765/2847/1184 743/2781/1136 746/2785/1140 -f 710/2895/1110 784/3537/1200 775/2896/435 -f 705/2898/1107 780/2879/1195 764/2880/1196 -f 707/2889/1201 704/3538/1106 778/2900/1106 -f 703/2902/486 702/3539/1104 776/2903/1104 -f 706/2887/1108 701/2956/1231 782/2875/1193 -f 687/2905/1101 774/3540/1101 780/2879/1195 -f 703/2902/486 779/2904/486 778/2906/1106 -f 536/2893/1105 777/2882/1197 776/2908/1104 -f 687/2910/1101 686/2897/435 775/2896/435 -f 745/2891/1203 785/2890/1202 791/2912/1206 -f 792/2914/1208 760/2845/1182 753/2826/1171 -f 619/2918/1020 628/2610/1020 636/2916/1210 -f 636/2916/1210 631/3541/1026 613/2917/1027 -f 793/2915/1209 753/2826/1171 715/2827/1172 -f 2015/2920/1212 2001/3542/1225 2004/2921/1213 -f 681/2724/1100 683/2723/1100 794/2922/1100 -f 757/2830/1100 797/2945/1100 798/2924/1100 -f 2013/2709/1089 2021/2708/1088 2022/2824/1170 -f 789/2927/1215 718/2954/1229 719/2928/1172 -f 786/2929/1216 772/2858/1190 782/2875/1193 -f 1931/2646/1047 1932/2637/1040 1933/2638/1040 -f 627/2612/1022 618/2611/1021 612/2932/1028 -f 1908/2933/1218 1913/2577/993 1926/2579/995 -f 608/2571/988 603/2561/980 594/2563/982 -f 1909/2590/1006 1917/2592/1006 1920/2935/1219 -f 1850/2936/1220 1851/2533/964 1852/2535/965 -f 584/2504/947 575/2494/939 578/2496/941 -f 544/2475/930 557/2474/929 549/2463/920 -f 509/2437/898 512/2436/897 528/2453/912 -f 1963/2426/889 1962/2457/915 1964/2456/914 -f 654/3495/1604 639/2676/1067 756/3543/1223 -f 639/2676/1067 647/2690/1077 802/2942/1223 -f 756/3543/1223 639/2676/1067 799/2943/1223 -f 647/2690/1077 662/2692/1077 711/3544/1223 -f 711/3544/1223 795/3545/1223 647/2690/1077 -f 795/3545/1223 802/2942/1223 647/2690/1077 -f 803/2944/1100 804/2946/1100 798/2924/1100 -f 803/2944/1100 796/2923/1100 794/2922/1100 -f 2009/2947/1224 2010/2721/1098 2011/2720/1097 -f 2001/2949/1225 2002/2717/1096 2003/2718/1096 -f 805/2951/1226 790/2913/1207 791/2912/1206 -f 788/2953/1228 717/2955/1230 718/2954/1229 -f 788/2953/1228 793/2915/1209 716/2919/1211 -f 787/2894/1204 792/2914/1208 793/2915/1209 -f 755/3546/1613 800/3547/1614 806/2952/1227 -f 800/3547/1614 805/2951/1226 806/2952/1227 -f 806/2952/1227 801/2930/1217 782/2875/1193 -f 755/3546/1613 806/2952/1227 700/2957/1232 -f 782/2875/1193 701/2956/1231 806/2952/1227 -f 522/3471/1602 521/2444/905 634/2959/1234 -f 521/2444/905 530/2668/1060 634/2959/1234 -f 2164/2960/1235 2163/2974/1246 2180/2961/1236 -f 2168/2963/1237 2178/3548/1243 2129/2964/1238 -f 2151/2966/1240 2178/3548/1243 2168/2963/1237 -f 2167/2968/1242 2126/2977/1249 2129/2969/1238 -f 2151/2971/1240 2155/2979/1251 2167/2968/1242 -f 2177/2972/1244 2109/3370/1540 2111/2973/1245 -f 2153/2975/1247 2148/3371/1541 2177/2972/1244 -f 2167/2968/1242 2164/2960/1235 2162/2976/1248 -f 2154/2978/1250 2164/2960/1235 2167/2968/1242 -f 2162/2976/1248 2165/3549/1252 2166/2980/1252 -f 2153/2975/1247 2163/2974/1246 2164/2960/1235 -f 2162/2976/1248 2111/2973/1245 2088/2981/1253 -f 2126/2977/1249 2162/2976/1248 2161/2982/1254 -f 2130/2965/1239 2127/3465/1601 2146/2984/1256 -f 2143/2986/1258 2145/3550/1257 2146/2987/1256 -f 2115/2989/1260 1044/3020/1291 1038/2990/1261 -f 1018/2992/1263 2115/2989/1260 2125/2991/1262 -f 1034/2994/1265 1023/3040/1310 2124/2995/1266 -f 2117/2996/1267 2124/2995/1266 1020/2997/1268 -f 2123/2999/1270 946/3033/1304 934/3000/1271 -f 950/3002/1273 2123/2999/1270 2121/3001/1272 -f 942/3004/1275 932/3025/1296 2120/3005/1276 -f 1016/3007/1278 2122/3006/1277 2120/3005/1276 -f 934/3000/1271 922/3028/1299 2119/3009/1280 -f 2121/3001/1272 2119/3009/1280 929/3010/1281 -f 2120/3005/1276 932/3025/1296 917/3011/1282 -f 941/3008/1279 2120/3005/1276 2118/3012/1283 -f 2116/3014/1285 869/3022/1293 1034/2994/1265 -f 887/3015/1286 2116/3014/1285 2117/2996/1267 -f 2113/3016/1287 1044/3020/1291 2115/2989/1260 -f 915/3018/1289 2114/3017/1288 2115/2989/1260 -f 868/3019/1290 1042/3551/1615 1044/3020/1291 -f 882/3021/1292 1025/3039/1309 1034/2994/1265 -f 2143/2986/1258 2144/2988/1259 2142/3023/1294 -f 932/3025/1296 933/3552/1616 918/3026/1297 -f 937/3027/1298 925/3553/1617 922/3028/1299 -f 926/3029/1300 2141/3024/1295 2142/3023/1294 -f 945/3031/1302 933/3552/1616 932/3025/1296 -f 948/3032/1303 937/3027/1298 934/3000/1271 -f 926/3034/1300 886/3554/1301 938/3035/1305 -f 1022/3037/1307 949/3036/1306 938/3035/1305 -f 1025/3039/1309 1024/3555/1618 1023/3040/1310 -f 1044/3020/1291 1042/3551/1615 1040/3041/1311 -f 1116/3042/1312 1111/3082/1348 1114/3043/1313 -f 1120/3045/1315 1121/3556/1619 1122/3046/1316 -f 1124/3048/1318 1125/3054/1324 1126/3049/1319 -f 1123/3050/1320 1126/3049/1319 1119/3047/1317 -f 1134/3055/1325 1131/3053/1323 1132/3051/1321 -f 1132/3051/1321 1116/3042/1312 1115/3044/1314 -f 1133/3052/1322 1134/3055/1325 1132/3051/1321 -f 1131/3053/1323 1134/3055/1325 1125/3054/1324 -f 1134/3055/1325 1133/3052/1322 1137/3056/1326 -f 1128/3058/1328 2263/3064/1329 2262/3059/1329 -f 1125/3054/1324 1134/3055/1325 1138/3057/1327 -f 1133/3052/1322 1115/3044/1314 1150/3062/1332 -f 1128/3058/1328 1130/3080/1346 2264/3063/1329 -f 1126/3049/1319 1148/3071/1338 1147/3065/1333 -f 1115/3044/1314 1114/3043/1313 1139/3066/1334 -f 1127/3067/1335 1118/3077/1343 2261/3068/1336 -f 1119/3047/1317 1147/3065/1333 1146/3070/1337 -f 1125/3054/1324 1149/3061/1331 1148/3071/1338 -f 1122/3046/1316 1121/3556/1619 1157/3072/1339 -f 1127/3067/1335 2260/3069/1336 2259/3074/1336 -f 1124/3048/1318 1154/3083/1349 1153/3076/1342 -f 1118/3077/1343 1127/3067/1335 1128/3058/1328 -f 1132/3051/1321 1152/3084/1350 1151/3078/1344 -f 1123/3050/1320 1122/3046/1316 1156/3073/1340 -f 1127/3067/1335 1129/3075/1341 1130/3080/1346 -f 1116/3042/1312 1151/3078/1344 1162/3081/1347 -f 1124/3048/1318 1123/3050/1320 1155/3079/1345 -f 1131/3053/1323 1153/3076/1342 1152/3084/1350 -f 2222/3085/1351 2202/3557/1355 2203/3086/1352 -f 2221/3088/1354 2204/3558/1357 2202/3089/1355 -f 2220/3091/1356 2205/3559/1620 2204/3092/1357 -f 2206/3094/1358 2205/3559/1620 2220/3091/1356 -f 2207/3096/1360 2206/3560/1358 2219/3097/1359 -f 2208/3099/1362 2207/3096/1360 2218/3098/1361 -f 2216/3087/1353 2203/3086/1352 2208/3101/1362 -f 2193/3103/1364 2182/3151/1365 2181/3104/1365 -f 2191/3106/1366 2193/3561/1364 2194/3107/1364 -f 2189/3109/1367 2191/3562/1366 2192/3110/1366 -f 1240/3112/1368 1238/3115/1371 1237/3113/1369 -f 1238/3115/1371 1236/3563/1621 1235/3116/1372 -f 1241/3117/1373 1242/3128/1383 1240/3112/1368 -f 1181/3118/1374 1177/3130/1385 1173/3119/1375 -f 1229/3121/1377 1169/3564/1377 1232/3122/1378 -f 1230/3124/1380 1245/3131/1386 1231/3125/1381 -f 1244/3127/1382 1243/3565/1382 1242/3128/1383 -f 1183/3129/1384 1179/3566/1622 1177/3130/1385 -f 1245/3131/1386 1248/3567/1623 1251/3132/1387 -f 2187/3133/1388 2189/3109/1367 2190/3111/1367 -f 1246/3123/1379 1232/3122/1378 1252/3135/1389 -f 1249/3137/1391 1253/3568/1624 1254/3138/1392 -f 1251/3132/1387 1248/3567/1623 1250/3140/1394 -f 2185/3142/1396 2187/3569/1388 2188/3143/1388 -f 1252/3135/1389 1253/3568/1624 1249/3137/1391 -f 1187/3145/1397 1179/3566/1622 1183/3129/1384 -f 1234/3147/1399 1187/3145/1397 1185/3146/1398 -f 1250/3140/1394 1257/3570/1402 1260/3149/1400 -f 2184/3150/1401 2183/3571/1401 2185/3142/1396 -f 2182/3151/1365 2183/3572/1401 2184/3152/1401 -f 1257/3153/1402 1259/3573/1625 1262/3154/1403 -f 1170/3156/1404 1164/3574/1404 1163/3157/1404 -f 1255/3159/1393 1254/3575/1392 1261/3160/1405 -f 2239/3162/1407 2252/3252/1457 2251/3163/1408 -f 2245/3165/1410 2254/3169/1414 2253/3166/1411 -f 2245/3165/1410 2243/3576/1420 2255/3168/1413 -f 2248/3170/1415 2247/3246/1418 2249/3171/1416 -f 2239/3173/1407 2242/3181/1421 2247/3174/1418 -f 2245/3176/1410 2248/3179/1415 2244/3177/1419 -f 2246/3175/1412 2247/3174/1418 2248/3179/1415 -f 2240/3180/1409 2241/3577/1626 2242/3181/1421 -f 1612/3185/1425 1613/3195/1434 1614/3186/1426 -f 1617/3188/1428 1618/3578/1435 1619/3189/1429 -f 1610/3183/1423 1612/3579/1425 1615/3194/1427 -f 1616/3190/1430 1619/3189/1429 1614/3186/1426 -f 1620/3191/1431 1622/3193/1433 1618/3196/1435 -f 1614/3198/1426 1619/3207/1429 1623/3199/1436 -f 1618/3196/1435 1622/3193/1433 1625/3201/1438 -f 1614/3198/1426 1624/3200/1437 1628/3204/1441 -f 1618/3206/1435 1626/3212/1439 1623/3199/1436 -f 1611/3184/1424 1615/3194/1427 1628/3208/1441 -f 1628/3204/1441 1624/3200/1437 1630/3210/1443 -f 1626/3212/1439 1632/3580/1447 1633/3213/1445 -f 1627/3203/1440 1628/3208/1441 1631/3215/1444 -f 1623/3199/1436 1633/3213/1445 1630/3210/1443 -f 1626/3202/1439 1625/3201/1438 1634/3214/1446 -f 1630/3218/1443 1636/3225/1453 1637/3219/1449 -f 1633/3221/1445 1632/3226/1447 1638/3222/1450 -f 1631/3215/1444 1637/3581/1449 1635/3217/1448 -f 1633/3221/1445 1639/3223/1451 1636/3225/1453 -f 1632/3226/1447 1634/3582/1446 1640/3227/1452 -f 2201/3228/1364 2215/3583/1364 2209/3229/1365 -f 2214/3231/1366 2215/3584/1364 2201/3232/1364 -f 2199/3234/1367 2213/3585/1367 2214/3235/1366 -f 2212/3237/1388 2213/3585/1367 2199/3234/1367 -f 2211/3239/1396 2212/3586/1388 2198/3240/1388 -f 2210/3242/1401 2211/3239/1396 2197/3241/1396 -f 2195/3230/1365 2209/3229/1365 2210/3244/1401 -f 2247/3246/1418 2242/3248/1421 2257/3247/1454 -f 2242/3248/1421 2241/3587/1626 2258/3249/1455 -f 2248/3170/1415 2250/3172/1417 2256/3250/1456 -f 2246/3167/1412 2253/3166/1411 2252/3252/1457 -f 2237/3253/1458 2238/3588/1458 2226/3254/445 -f 2236/3256/431 2238/3589/1458 2237/3257/1458 -f 2233/3259/1459 2234/3590/1459 2236/3256/431 -f 2232/3260/521 2234/3591/1459 2233/3261/1459 -f 2229/3263/1460 2230/3592/1460 2232/3260/521 -f 2228/3264/433 2230/3593/1460 2229/3265/1460 -f 2224/3267/1461 2225/3594/1461 2228/3264/433 -f 2226/3254/445 2225/3595/1461 2224/3268/1461 -f 1675/3269/1462 1682/3273/1466 1676/3270/1463 -f 1674/3272/1465 1681/3596/1627 1682/3273/1466 -f 1680/3274/1467 1681/3596/1627 1674/3272/1465 -f 1679/3276/1469 1680/3274/1467 1673/3275/1468 -f 1678/3278/1471 1679/3276/1469 1672/3277/1470 -f 1670/3280/1473 1677/3281/1474 1678/3278/1471 -f 1669/3271/1464 1676/3270/1463 1677/3281/1474 -f 1792/3282/1475 1791/3597/1478 1798/3283/1476 -f 1791/3285/1478 1786/3288/1480 1799/3286/1479 -f 1786/3288/1480 1785/3290/1482 1808/3289/1481 -f 1785/3290/1482 1790/3598/1484 1809/3291/1483 -f 1790/3292/1484 1789/3295/1486 1810/3293/1485 -f 1789/3295/1486 1788/3298/1489 1807/3296/1487 -f 1787/3297/1488 1806/3300/1491 1807/3296/1487 -f 1797/3299/1490 1805/3599/1493 1806/3300/1491 -f 1796/3301/1492 1803/3305/1495 1805/3302/1493 -f 1795/3304/1494 1804/3600/1497 1803/3305/1495 -f 1795/3306/1494 1794/3310/1499 1801/3307/1496 -f 1793/3309/1498 1802/3311/1500 1801/3307/1496 -f 1792/3282/1475 1800/3284/1477 1802/3311/1500 -f 1837/3312/1501 1826/3340/1519 1836/3313/1502 -f 1839/3315/1503 1830/3601/1503 1825/3316/1504 -f 1841/3318/1505 1824/3602/1505 1829/3319/1506 -f 1844/3321/1507 1843/3337/1516 1833/3322/1508 -f 1838/3324/1502 1836/3603/1502 1835/3325/1510 -f 1842/3320/1506 1829/3319/1506 1828/3327/1511 -f 1847/3329/1513 1845/3326/1510 1835/3325/1510 -f 1848/3331/1515 1831/3341/1515 1830/3332/1503 -f 1841/3334/1505 1840/3317/1504 1825/3316/1504 -f 1847/3336/1513 1834/3604/1514 1833/3322/1508 -f 1846/3328/1512 1828/3327/1511 1827/3338/1517 -f 1837/3312/1501 1849/3339/1518 1827/3338/1517 -f 1848/3331/1515 1844/3321/1507 1832/3323/1509 -f 1893/3342/1520 1884/3349/1520 1886/3343/1521 -f 1895/3345/1523 1880/3354/1523 1885/3346/1524 -f 1893/3342/1520 1896/3605/1526 1876/3348/1526 -f 1897/3350/1527 1898/3361/1533 1883/3351/1528 -f 1888/3353/1530 1881/3606/1530 1880/3354/1523 -f 1889/2516/952 1878/2515/952 1879/3355/1531 -f 1896/3357/1526 1899/3366/1537 1877/3358/1532 -f 1892/3360/1522 1886/3607/1521 1883/3351/1528 -f 1894/3347/1525 1885/3346/1524 1901/3362/1534 -f 1850/2936/1220 1853/2937/1221 1855/3364/957 -f 1899/3366/1537 1900/3363/1535 1901/3362/1534 -f 1891/3367/950 1897/3350/1527 1882/3352/1529 -f 1873/2530/962 1860/2529/961 1864/2795/1149 -f 2176/3369/1539 2081/3373/1543 2109/3370/1540 -f 2148/3371/1541 2147/3383/1553 2176/3369/1539 -f 2175/3372/1542 2060/3608/1545 2081/3373/1543 -f 1022/3037/1307 1019/3038/1308 1035/3374/1544 -f 2065/3376/1546 2066/3609/1628 2067/3377/1547 -f 2068/3379/1549 2069/3610/1629 2070/3380/1550 -f 2150/3382/1552 2175/3372/1542 2176/3369/1539 -f 2174/3384/1554 1022/3037/1307 2060/3375/1545 -f 2150/3386/1552 2149/3389/1557 2174/3384/1554 -f 2173/3387/1555 949/3036/1306 1022/3037/1307 -f 2159/3388/1556 2173/3387/1555 2174/3384/1554 -f 2173/3387/1555 2172/3398/1565 926/3034/1300 -f 2081/3373/1543 2060/3608/1545 1035/3390/1544 -f 2082/3392/1559 2089/3611/1630 2090/3393/1560 -f 2085/3395/1562 2084/3612/1631 2091/3396/1563 -f 2159/3388/1556 2160/3613/1568 2172/3398/1565 -f 2171/3399/1566 2141/3024/1295 926/3029/1300 -f 2157/3401/1567 2171/3399/1566 2172/3400/1565 -f 2170/3403/1569 2143/2986/1258 2141/3024/1295 -f 2157/3401/1567 2156/3614/1572 2170/3403/1569 -f 2169/3404/1570 2145/2985/1257 2143/3405/1258 -f 2158/3407/1571 2169/3404/1570 2170/3406/1569 -f 2079/3409/1573 2097/3412/1576 2093/3410/1574 -f 2097/3412/1576 2085/3395/1562 2092/3397/1564 -f 2098/3413/1577 2095/3416/1580 2087/3414/1578 -f 2083/3394/1561 2090/3393/1560 2095/3416/1580 -f 2168/2963/1237 2130/2965/1239 2145/2985/1257 -f 2158/3407/1571 2152/2967/1241 2168/2963/1237 -f 2135/3417/1581 2053/3430/1581 2050/3418/1581 -f 2049/3420/1581 2135/3417/1581 2134/3419/1581 -f 2046/3422/1582 2043/3428/1582 2132/3423/1582 -f 2045/3425/1582 2133/3424/1582 2132/3423/1582 -f 2047/3427/1582 2044/3615/1582 2043/3428/1582 -f 2052/3429/1581 2051/3616/1581 2050/3418/1581 -f 2058/3431/1583 2103/3434/1586 2101/3432/1584 -f 2103/3434/1586 2068/3379/1549 2071/3381/1551 -f 2104/3435/1587 2102/3438/1590 2062/3436/1588 -f 2064/3378/1548 2067/3377/1547 2102/3438/1590 -f 2057/3439/1591 2072/3617/1598 2073/3440/1592 -f 2075/3442/1593 2078/3618/1595 2094/3443/1594 -f 2078/3445/1595 2099/3619/1596 2100/3446/1596 -f 2106/3448/1597 2072/3617/1598 2057/3439/1591 -f 2110/3450/1597 2136/3453/1597 2137/3451/1591 -f 2108/3449/1597 2057/3439/1591 2137/3451/1591 -f 2081/3373/1543 2063/3391/1558 2107/3454/1599 -f 2109/3370/1540 2107/3454/1599 2088/2981/1253 -f 2096/3455/1595 2139/3458/1594 2138/3456/1596 -f 2094/3447/1594 2100/3446/1596 2138/3456/1596 -f 2077/3459/1593 2140/3462/1593 2139/3460/1594 -f 2076/3444/1593 2094/3443/1594 2139/3460/1594 -f 2126/2977/1249 2112/2983/1255 2128/3463/1600 -f 2130/2965/1239 2129/2964/1238 2128/3464/1600 -f 2137/3451/1591 2056/3467/1592 2055/3466/1592 -f 2057/3439/1591 2074/3441/1592 2056/3467/1592 +f 1963/2246/953 1981/2247/954 1968/2248/954 +f 504/2249/955 506/2250/956 503/2251/956 +f 499/2252/957 508/2253/958 500/2254/959 +f 510/2255/960 512/2256/961 509/2257/962 +f 513/2258/963 515/2259/964 516/2260/965 +f 517/2261/966 519/2262/967 520/2263/968 +f 521/2264/969 507/2265/970 499/2266/957 +f 524/2267/971 526/2268/972 523/2269/973 +f 514/2270/974 520/2263/968 515/2271/964 +f 518/2272/975 528/2273/976 519/2274/967 +f 1961/2275/977 1964/2276/978 1962/2277/979 +f 500/2254/959 525/2278/980 524/2279/971 +f 529/2280/981 516/2260/965 537/2281/982 +f 542/2282/983 549/2283/984 550/2284/983 +f 547/2285/985 552/2286/986 546/2287/987 +f 540/2288/988 553/2289/989 554/2290/990 +f 548/2291/991 551/2292/985 547/2285/985 +f 545/2293/992 557/2294/993 544/2295/994 +f 503/2296/956 553/2289/989 541/2297/989 +f 504/2249/955 550/2298/983 505/2299/955 +f 538/2300/995 555/2301/991 548/2302/991 +f 545/2293/992 552/2303/986 556/2304/996 +f 564/2305/997 566/2306/998 563/2307/998 +f 568/2308/999 570/2309/1000 567/2310/1000 +f 572/2311/1001 574/2312/1002 571/2313/1002 +f 575/2314/1003 577/2315/1004 578/2316/1005 +f 563/2317/998 580/2318/1006 579/2319/1006 +f 571/2313/1002 581/2320/1007 561/2321/1008 +f 582/2322/1009 580/2318/1006 583/2323/1010 +f 584/2324/1011 569/2325/999 568/2326/999 +f 572/2327/1001 570/2309/1000 573/2328/1001 +f 582/2329/1009 577/2315/1004 576/2330/1012 +f 1890/2331/1013 1887/2332/1014 1879/2333/1013 +f 1888/2334/1015 1878/2335/1016 1889/2336/1016 +f 1874/2337/1017 1863/2329/1018 1861/2330/1019 +f 1872/2338/1020 1855/2339/1021 1854/2317/1020 +f 1866/2340/1022 1857/2341/1022 1867/2342/1022 +f 1865/2343/1023 1858/2344/1024 1871/2345/1024 +f 1874/2337/1017 1860/2314/1025 1873/2346/1026 +f 1870/2347/1027 1854/2317/1020 1862/2319/1027 +f 1851/2348/1028 1858/2313/1024 1852/2321/1029 +f 1999/2349/1030 1996/2350/1031 2000/2351/1030 +f 1998/2352/1030 2000/2351/1030 1997/2353/1031 +f 1998/2352/1030 1994/2354/1031 1993/2355/1032 +f 1995/2356/1031 1991/2357/1031 1996/2350/1031 +f 1973/2358/1033 1990/2359/1034 1975/2360/1035 +f 1870/2347/1027 1863/2322/1018 1869/2361/1036 +f 1993/2355/1032 1979/2362/1037 1966/2363/1038 +f 598/2364/1039 593/2365/1040 597/2366/1040 +f 587/2340/1041 600/2367/1042 599/2335/1041 +f 602/2368/1043 592/2369/1044 601/2370/1045 +f 603/2371/1046 595/2337/1047 594/2346/1048 +f 605/2372/1049 593/2338/1040 591/2347/1049 +f 601/2370/1045 560/2348/1050 606/2373/1051 +f 607/2374/1052 591/2347/1049 590/2361/1053 +f 608/2332/1054 588/2375/1055 600/2333/1056 +f 602/2376/1057 587/2340/1041 599/2335/1041 +f 1988/2377/1058 1976/2378/1059 1961/2275/977 +f 1913/2379/1060 1921/2380/1061 1926/2381/1062 +f 1912/2382/1063 1922/2383/1064 1904/2384/1065 +f 1928/2385/1066 1916/2386/1067 1910/2387/1068 +f 1912/2382/1063 1925/2388/1069 1930/2389/1070 +f 1910/2387/1068 1915/2390/1071 1902/2391/1072 +f 1909/2392/1073 1918/2393/1074 1917/2394/1073 +f 1906/2395/1075 1919/2396/1076 1907/2397/1077 +f 1905/2398/1078 1922/2383/1064 1921/2380/1061 +f 607/2399/1052 595/2337/1047 604/2400/1079 +f 1902/2391/1072 1923/2401/1080 1903/2402/1080 +f 621/2403/1081 620/2404/1082 617/2405/1081 +f 624/2406/1083 610/2407/1084 623/2408/1084 +f 626/2409/1085 616/2410/1086 625/2411/1086 +f 628/2412/1087 618/2413/1088 627/2414/1089 +f 629/2415/1090 617/2416/1081 614/2417/1090 +f 630/2418/1091 616/2410/1086 615/2419/1092 +f 631/2420/1093 614/2417/1090 613/2421/1094 +f 632/2422/1095 611/2331/1083 624/2423/1083 +f 626/2424/1085 610/2407/1084 609/2425/1085 +f 1935/2426/1096 1957/2427/1097 1949/2428/1098 +f 1942/2429/1099 1958/2430/1100 1943/2431/1101 +f 1945/2432/1102 1951/2433/1103 1937/2434/1103 +f 1946/2435/1104 1955/2436/1105 1947/2437/1106 +f 1932/2438/1107 1958/2430/1100 1933/2439/1107 +f 1940/2440/1108 1957/2427/1097 1944/2441/1109 +f 1939/2442/1110 1952/2443/1111 1953/2444/1110 +f 1942/2429/1099 1950/2445/1112 1956/2446/1113 +f 1931/2447/1114 1955/2436/1105 1941/2448/1115 +f 1940/2440/1108 1953/2444/1110 1954/2449/1108 +f 1938/2450/1111 1951/2433/1103 1952/2443/1111 +f 502/2451/1116 637/2452/1117 638/2453/1116 +f 1992/2454/1031 1987/2455/1118 1991/2357/1031 +f 1959/2456/1119 1990/2359/1034 1977/2457/1119 +f 1988/2377/1058 1985/2458/1120 1989/2459/1121 +f 1971/2460/1122 1987/2455/1118 1974/2461/1118 +f 1969/2462/1123 1983/2463/1124 1970/2464/1124 +f 1973/2358/1033 1980/2465/1125 1986/2466/1033 +f 1960/2467/1126 1985/2458/1120 1972/2468/1127 +f 537/2281/982 530/2469/1128 529/2280/981 +f 1970/2464/1124 1984/2470/1122 1971/2460/1122 +f 531/2471/1129 649/2472/1130 650/2473/1131 +f 2038/2474/1132 2042/2475/1133 2041/2476/1134 +f 639/2477/1135 655/2478/1136 640/2479/1137 +f 641/2480/1138 657/2481/1139 642/2482/1139 +f 643/2483/1140 659/2484/1141 644/2485/1141 +f 645/2486/1142 638/2453/1116 660/2487/1143 +f 640/2479/1137 661/2488/1144 646/2489/1144 +f 643/2483/1140 657/2481/1139 658/2490/1140 +f 647/2491/1145 659/2492/1141 662/2493/1145 +f 1969/2462/1123 1981/2247/954 1982/2494/1123 +f 648/2495/1146 637/2452/1117 501/2496/1117 +f 666/2497/1147 534/2498/1148 653/2499/1148 +f 2041/2476/1134 2040/2500/1149 2039/2501/1150 +f 2039/2501/1150 2036/2502/1151 2035/2503/1150 +f 2008/2504/1150 2037/2505/1152 2038/2474/1132 +f 2019/2506/1153 2031/2507/1154 2020/2508/1155 +f 2035/2503/1150 2021/2509/1156 2013/2510/1157 +f 2005/2511/1158 2030/2512/1159 2034/2513/1160 +f 2006/2514/1161 2034/2513/1160 2032/2515/1162 +f 2008/2504/1150 2028/2516/1163 2033/2517/1150 +f 2002/2518/1164 2032/2515/1162 2003/2519/1164 +f 2020/2520/1155 2011/2521/1165 2010/2522/1166 +f 677/2523/1167 683/2524/1168 681/2525/1168 +f 668/2526/1169 685/2527/445 684/2528/1169 +f 670/2529/1170 688/2530/1171 689/2531/1170 +f 672/2532/1172 533/2533/1173 690/2534/1172 +f 674/2535/1174 691/2536/502 692/2537/1174 +f 675/2538/1175 684/2539/1169 693/2540/1175 +f 670/2529/1170 694/2541/1176 676/2542/1177 +f 672/2543/1172 691/2536/502 673/2544/502 +f 674/2545/1174 682/2546/1167 677/2523/1167 +f 645/2547/1142 660/2548/1143 678/2549/1178 +f 680/2550/1179 685/2527/445 667/2551/445 +f 696/2552/1180 698/2553/1181 699/2554/1182 +f 2029/2555/1183 2026/2556/1184 2030/2512/1159 +f 727/2557/555 731/2558/1185 722/2559/555 +f 732/2560/1186 724/2561/1187 733/2562/1188 +f 734/2563/1189 720/2564/1190 721/2565/1191 +f 737/2566/1192 730/2567/1193 736/2568/1193 +f 713/2569/1194 739/2570/1195 738/2571/1196 +f 740/2572/1197 725/2573/1198 726/2574/1199 +f 741/2575/1200 721/2565/1191 722/2576/1201 +f 731/2577/1185 736/2578/1202 739/2570/1195 +f 738/2579/1203 714/2580/1204 742/2581/1205 +f 743/2582/1206 726/2574/1199 727/2583/1207 +f 733/2562/1188 723/2584/1208 744/2585/1209 +f 746/2586/1210 698/2553/1181 697/2587/1211 +f 2017/2588/1212 2028/2516/1163 2007/2589/1213 +f 615/2419/1092 633/2590/1214 630/2418/1091 +f 1907/2397/1077 1924/2591/1215 1914/2592/1216 +f 606/2373/1051 559/2593/1217 749/2594/1217 +f 1867/2375/1218 1864/2324/1219 1857/2326/1218 +f 561/2321/1008 750/2595/1220 562/2596/1220 +f 554/2290/990 539/2597/1221 540/2288/988 +f 708/2598/1222 665/2599/1223 679/2600/1222 +f 752/2601/1224 720/2564/1190 735/2602/1225 +f 1967/2603/1226 1979/2362/1037 1980/2465/1125 +f 2016/2604/1227 2023/2605/1228 2024/2606/1229 +f 641/2607/1138 651/2608/1230 656/2609/1138 +f 671/2610/1173 534/2498/1148 533/2533/1173 +f 696/2552/1180 729/2611/1231 737/2566/1192 +f 539/2597/1221 558/2612/995 538/2300/995 +f 564/2305/997 750/2595/1220 565/2613/1232 +f 1866/2614/1233 1859/2327/1023 1865/2343/1023 +f 1911/2615/1234 1923/2401/1080 1925/2388/1069 +f 598/2364/1039 559/2593/1217 596/2616/1235 +f 1928/2385/1066 1914/2592/1216 1927/2617/1236 +f 633/2590/1214 620/2404/1082 622/2618/1082 +f 1936/2619/1237 1949/2428/1098 1950/2445/1112 +f 743/2582/1206 728/2620/1238 746/2586/1210 +f 2019/2506/1153 2022/2621/1239 2027/2622/1240 +f 753/2623/1241 714/2580/1204 715/2624/1242 +f 2018/2625/1243 2012/2626/1244 2026/2556/1184 +f 757/2627/1245 688/2530/1171 669/2628/1171 +f 741/2575/1200 723/2629/1246 744/2630/1247 +f 676/2542/1177 695/2631/1179 680/2632/1179 +f 2016/2604/1227 2025/2633/1248 2017/2634/1212 +f 648/2635/1146 661/2488/1144 663/2636/1249 +f 1959/2456/1119 1978/2637/1126 1960/2467/1126 +f 1946/2435/1104 1948/2638/1250 1945/2432/1102 +f 523/2269/973 511/2639/1251 510/2255/960 +f 758/2640/1176 741/2575/1200 744/2630/1247 +f 761/2641/1252 753/2623/1241 760/2642/1253 +f 763/2643/1254 765/2644/1255 762/2645/1256 +f 762/2645/1256 737/2566/1192 766/2646/1148 +f 733/2562/1188 758/2647/1257 767/2648/502 +f 768/2649/1258 743/2582/1206 765/2644/1255 +f 742/2650/1259 769/2651/1169 761/2652/1260 +f 739/2570/1195 771/2653/1261 770/2654/445 +f 772/2655/1262 741/2575/1200 759/2656/1176 +f 740/2657/1263 773/2658/1174 768/2659/1263 +f 738/2571/1196 770/2654/445 769/2660/1169 +f 771/2653/1261 737/2661/1264 766/2662/1264 +f 773/2663/1174 733/2562/1188 767/2648/502 +f 774/2664/1174 767/2648/502 775/2665/502 +f 771/2653/1261 777/2666/1264 776/2667/1261 +f 769/2660/1169 779/2668/445 778/2669/1169 +f 768/2659/1263 774/2670/1174 780/2671/1263 +f 782/2672/1265 759/2656/1176 781/2673/1266 +f 770/2654/445 776/2667/1261 779/2668/445 +f 761/2652/1260 778/2674/1169 783/2675/1267 +f 780/2676/1268 765/2644/1255 764/2677/1269 +f 767/2648/502 784/2678/1257 775/2665/502 +f 763/2643/1254 766/2646/1148 777/2679/1270 +f 712/2680/1271 764/2677/1269 763/2643/1254 +f 760/2681/1272 783/2675/1267 785/2682/1272 +f 781/2673/1266 758/2640/1176 784/2683/1273 +f 706/2684/1274 784/2683/1273 710/2685/1179 +f 707/2686/1275 785/2687/1276 745/2688/1277 +f 535/2689/1148 777/2679/1270 536/2690/1173 +f 734/2563/1189 772/2655/1262 787/2691/1278 +f 746/2586/1210 697/2587/1211 765/2644/1255 +f 710/2692/1179 775/2693/445 686/2694/445 +f 705/2695/1175 764/2677/1269 709/2696/1279 +f 707/2686/1275 778/2697/1174 783/2698/1280 +f 703/2699/502 776/2700/1172 779/2701/502 +f 706/2684/1274 782/2672/1265 781/2673/1266 +f 687/2702/1169 780/2676/1268 705/2695/1175 +f 703/2699/502 778/2703/1174 704/2704/1174 +f 536/2690/1173 776/2705/1172 702/2706/1172 +f 687/2707/1169 775/2693/445 774/2708/1169 +f 745/2688/1277 791/2709/1281 790/2710/1282 +f 792/2711/1283 753/2623/1241 793/2712/1284 +f 636/2713/1285 613/2714/1094 619/2715/1286 +f 793/2712/1284 715/2624/1242 716/2716/1287 +f 2015/2717/1288 2004/2718/1289 2023/2605/1228 +f 681/2525/1168 794/2719/1168 796/2720/1168 +f 757/2627/1245 798/2721/1168 754/2722/1168 +f 2013/2510/1157 2022/2621/1239 2014/2723/1290 +f 789/2724/1291 719/2725/1292 752/2601/1224 +f 786/2726/1293 782/2672/1265 801/2727/1294 +f 1931/2447/1114 1933/2439/1107 1934/2728/1114 +f 627/2414/1089 612/2729/1095 632/2422/1095 +f 1908/2730/1295 1926/2381/1062 1918/2393/1074 +f 608/2332/1054 594/2346/1048 589/2731/1054 +f 1909/2392/1073 1920/2732/1296 1906/2395/1075 +f 1850/2593/1297 1852/2321/1029 1853/2596/1298 +f 584/2324/1011 578/2316/1005 585/2733/1011 +f 544/2295/994 549/2283/984 543/2734/984 +f 509/2257/962 528/2273/976 527/2735/1299 +f 1963/2246/953 1964/2276/978 1965/2736/953 +f 802/2737/1300 799/2738/1300 639/2477/1135 +f 803/2739/1168 798/2721/1168 797/2740/1168 +f 803/2739/1168 794/2719/1168 804/2741/1168 +f 2009/2742/1301 2011/2521/1165 2012/2743/1244 +f 2001/2744/1302 2003/2519/1164 2004/2745/1289 +f 805/2746/1303 791/2709/1281 806/2747/1304 +f 788/2748/1305 718/2749/1306 789/2724/1291 +f 788/2748/1305 716/2716/1287 717/2750/1307 +f 787/2691/1278 793/2712/1284 788/2748/1305 +f 701/2751/1308 700/2752/1309 806/2747/1304 +f 530/2469/1128 635/2753/1310 634/2754/1311 +f 2164/2755/1312 2180/2756/1313 2179/2757/1314 +f 2168/2758/1315 2129/2759/1316 2130/2760/1317 +f 2151/2761/1318 2168/2758/1315 2152/2762/1319 +f 2167/2763/1320 2129/2764/1316 2178/2765/1321 +f 2151/2766/1318 2167/2763/1320 2178/2765/1321 +f 2177/2767/1322 2111/2768/1323 2163/2769/1324 +f 2153/2770/1325 2177/2767/1322 2163/2769/1324 +f 2167/2763/1320 2162/2771/1326 2126/2772/1327 +f 2154/2773/1328 2167/2763/1320 2155/2774/1329 +f 2162/2771/1326 2166/2775/1330 2111/2768/1323 +f 2153/2770/1325 2164/2755/1312 2154/2773/1328 +f 2162/2771/1326 2088/2776/1331 2161/2777/1332 +f 2126/2772/1327 2161/2777/1332 2112/2778/1333 +f 2130/2760/1317 2146/2779/1334 2145/2780/1335 +f 2143/2781/1336 2146/2782/1334 2144/2783/1337 +f 2115/2784/1338 1038/2785/1339 2125/2786/1340 +f 1018/2787/1341 2125/2786/1340 1017/2788/1342 +f 1034/2789/1343 2124/2790/1344 2117/2791/1345 +f 2117/2791/1345 1020/2792/1346 1021/2793/1347 +f 2123/2794/1348 934/2795/1349 2121/2796/1350 +f 950/2797/1351 2121/2796/1350 940/2798/1352 +f 942/2799/1353 2120/2800/1354 2122/2801/1355 +f 1016/2802/1356 2120/2800/1354 941/2803/1357 +f 934/2795/1349 2119/2804/1358 2121/2796/1350 +f 2121/2796/1350 929/2805/1359 940/2798/1352 +f 2120/2800/1354 917/2806/1360 2118/2807/1361 +f 941/2803/1357 2118/2807/1361 930/2808/1362 +f 2116/2809/1363 1034/2789/1343 2117/2791/1345 +f 887/2810/1364 2117/2791/1345 1021/2793/1347 +f 2113/2811/1365 2115/2784/1338 2114/2812/1366 +f 915/2813/1367 2115/2784/1338 1018/2787/1341 +f 868/2814/1368 1044/2815/1369 2113/2811/1365 +f 882/2816/1370 1034/2789/1343 869/2817/1371 +f 2143/2781/1336 2142/2818/1372 2141/2819/1373 +f 932/2820/1374 918/2821/1375 917/2806/1360 +f 937/2822/1376 922/2823/1377 934/2795/1349 +f 926/2824/1378 2142/2818/1372 886/2825/1379 +f 945/2826/1380 932/2820/1374 942/2799/1353 +f 948/2827/1381 934/2795/1349 946/2828/1382 +f 926/2829/1378 938/2830/1383 949/2831/1384 +f 1022/2832/1385 938/2830/1383 1019/2833/1386 +f 1025/2834/1387 1023/2835/1388 1034/2789/1343 +f 1044/2815/1369 1040/2836/1389 1038/2785/1339 +f 1116/2837/1390 1114/2838/1391 1115/2839/1392 +f 1120/2840/1393 1122/2841/1394 1119/2842/1395 +f 1124/2843/1396 1126/2844/1397 1123/2845/1398 +f 1123/2845/1398 1119/2842/1395 1122/2841/1394 +f 1132/2846/1399 1115/2839/1392 1133/2847/1400 +f 1131/2848/1401 1125/2849/1402 1124/2843/1396 +f 1134/2850/1403 1137/2851/1404 1138/2852/1405 +f 1128/2853/1406 2262/2854/1407 1117/2855/1408 +f 1125/2849/1402 1138/2852/1405 1149/2856/1409 +f 1133/2847/1400 1150/2857/1410 1137/2851/1404 +f 1128/2853/1406 2264/2858/1407 2263/2859/1407 +f 1126/2844/1397 1147/2860/1411 1119/2842/1395 +f 1115/2839/1392 1139/2861/1412 1150/2857/1410 +f 1127/2862/1413 2261/2863/1414 2260/2864/1414 +f 1119/2842/1395 1146/2865/1415 1120/2840/1393 +f 1125/2849/1402 1148/2866/1416 1126/2844/1397 +f 1122/2841/1394 1157/2867/1417 1156/2868/1418 +f 1127/2862/1413 2259/2869/1414 1129/2870/1419 +f 1124/2843/1396 1153/2871/1420 1131/2848/1401 +f 1118/2872/1421 1128/2853/1406 1117/2855/1408 +f 1132/2846/1399 1151/2873/1422 1116/2837/1390 +f 1123/2845/1398 1156/2868/1418 1155/2874/1423 +f 1127/2862/1413 1130/2875/1424 1128/2853/1406 +f 1116/2837/1390 1162/2876/1425 1111/2877/1426 +f 1124/2843/1396 1155/2874/1423 1154/2878/1427 +f 1131/2848/1401 1152/2879/1428 1132/2846/1399 +f 2222/2880/1429 2203/2881/1430 2216/2882/1431 +f 2221/2883/1432 2202/2884/1433 2222/2885/1429 +f 2220/2886/1434 2204/1425/1435 2221/2887/1432 +f 2206/2888/1436 2220/2886/1434 2219/2889/1437 +f 2207/2890/1438 2219/2891/1437 2218/2892/1439 +f 2208/2893/1440 2218/2892/1439 2217/2894/1441 +f 2216/2882/1431 2208/2895/1440 2217/2896/1441 +f 2193/2897/1442 2181/2898/1443 2194/2899/1442 +f 2191/2900/1444 2194/2901/1442 2192/2902/1444 +f 2189/2903/1445 2192/2904/1444 2190/2905/1445 +f 1240/2906/1446 1237/2907/1447 1239/2908/1448 +f 1238/2909/1449 1235/2910/1450 1237/2907/1447 +f 1241/2911/1451 1240/2906/1446 1239/2908/1448 +f 1181/2912/1452 1173/2913/1453 1175/2914/1454 +f 1229/2915/1455 1232/2916/1456 1246/2917/1457 +f 1230/1361/1458 1231/2918/1459 1228/2919/1458 +f 1244/2920/1460 1242/2921/1461 1241/2911/1451 +f 1183/2922/1462 1177/2923/1463 1181/2912/1452 +f 1245/2924/1464 1251/2925/1465 1231/2918/1459 +f 2187/2926/1466 2190/2905/1445 2188/2927/1466 +f 1246/2917/1457 1252/2928/1467 1247/2929/1468 +f 1249/2930/1469 1254/2931/1470 1255/2932/1471 +f 1251/2925/1465 1250/2933/1472 1256/2934/1473 +f 2185/2935/1474 2188/2936/1466 2186/2937/1474 +f 1252/2928/1467 1249/2930/1469 1247/2929/1468 +f 1187/2938/1475 1183/2922/1462 1185/2939/1476 +f 1234/2940/1477 1185/2939/1476 1233/2941/1477 +f 1250/2933/1472 1260/2942/1478 1256/2934/1473 +f 2184/2943/1479 2185/2935/1474 2186/2937/1474 +f 2182/2944/1443 2184/2945/1479 2181/2898/1443 +f 1257/2946/1480 1262/2947/1481 1260/2948/1478 +f 1170/2949/1482 1163/2950/1482 1167/2951/1483 +f 1255/2952/1471 1261/2953/1484 1258/2954/1485 +f 2239/2955/1486 2251/2038/1487 2240/2956/1488 +f 2245/2957/1489 2253/2040/1490 2246/2958/1491 +f 2245/2957/1489 2255/2042/1492 2254/2041/1493 +f 2248/2959/1494 2249/2054/1495 2250/2052/1496 +f 2239/2960/1486 2247/2961/1497 2246/2962/1491 +f 2245/2963/1489 2244/2964/1498 2243/1146/1499 +f 2246/2962/1491 2248/2965/1494 2245/2963/1489 +f 2240/2966/1488 2242/2967/1500 2239/2960/1486 +f 1609/2968/1501 1610/2969/1502 1611/2970/1503 +f 1612/2971/1504 1614/2972/1505 1615/2973/1506 +f 1617/2548/1507 1619/2974/1508 1616/2975/1509 +f 1620/2976/1510 1621/2977/1511 1622/2978/1512 +f 1610/2969/1502 1615/2979/1506 1611/2970/1503 +f 1616/2975/1509 1614/2972/1505 1613/2980/1513 +f 1620/2976/1510 1618/2981/1514 1617/2982/1507 +f 1614/2983/1505 1623/2984/1515 1624/2985/1516 +f 1618/2981/1514 1625/2986/1517 1626/2987/1518 +f 1609/2968/1501 1611/2970/1503 1627/2988/1519 +f 1614/2983/1505 1628/2989/1520 1615/2990/1506 +f 1618/2991/1514 1623/2984/1515 1619/2992/1508 +f 1622/2978/1512 1621/2977/1511 1625/2986/1517 +f 1611/2970/1503 1628/2993/1520 1627/2988/1519 +f 1609/2968/1501 1627/2988/1519 1629/2994/1521 +f 1628/2989/1520 1630/2995/1522 1631/2996/1523 +f 1626/2997/1518 1633/2998/1524 1623/2984/1515 +f 1625/2986/1517 1621/2977/1511 1634/2999/1525 +f 1627/2988/1519 1631/3000/1523 1629/2994/1521 +f 1623/2984/1515 1630/2995/1522 1624/2985/1516 +f 1626/2987/1518 1634/2999/1525 1632/3001/1526 +f 1609/2968/1501 1629/2994/1521 1635/3002/1527 +f 1630/3003/1522 1637/3004/1528 1631/3005/1523 +f 1633/3006/1524 1638/3007/1529 1639/3008/1530 +f 1634/2999/1525 1621/2977/1511 1640/3009/1531 +f 1631/3000/1523 1635/3002/1527 1629/2994/1521 +f 1633/3006/1524 1636/3010/1532 1630/3003/1522 +f 1632/3011/1526 1640/3012/1531 1638/3007/1529 +f 2201/3013/1442 2209/3014/1443 2195/3015/1443 +f 2214/3016/1444 2201/3017/1442 2200/3018/1444 +f 2199/3019/1445 2214/2885/1444 2200/3020/1444 +f 2212/3021/1466 2199/3019/1445 2198/3022/1466 +f 2211/3023/1474 2198/3024/1466 2197/3025/1474 +f 2210/3026/1479 2197/3025/1474 2196/3027/1479 +f 2195/3015/1443 2210/3028/1479 2196/3029/1479 +f 2247/3030/1497 2257/1155/1533 2249/2054/1495 +f 2242/3031/1500 2258/2055/1534 2257/1155/1533 +f 2248/2959/1494 2256/2053/1535 2244/3032/1498 +f 2246/2958/1491 2252/1149/1536 2239/2955/1486 +f 2237/3033/1537 2226/3034/455 2223/3035/455 +f 2236/3036/441 2237/3037/1537 2235/3038/441 +f 2233/3039/1538 2236/3036/441 2235/3038/441 +f 2232/3040/555 2233/3041/1538 2231/3042/555 +f 2229/3043/1539 2232/3040/555 2231/3042/555 +f 2228/3044/443 2229/3045/1539 2227/3046/443 +f 2224/3047/1540 2228/3044/443 2227/3046/443 +f 2226/3034/455 2224/3048/1540 2223/3035/455 +f 1675/3049/1541 1676/3050/1542 1669/3051/1543 +f 1674/3052/1544 1682/3053/1545 1675/3049/1541 +f 1680/3054/1546 1674/3052/1544 1673/3055/1547 +f 1679/3056/1548 1673/3055/1547 1672/3057/1549 +f 1678/3058/1550 1672/3057/1549 1671/3059/1551 +f 1670/3060/1552 1678/3058/1550 1671/3059/1551 +f 1669/3051/1543 1677/3061/1553 1670/3060/1552 +f 1792/3062/1554 1798/3063/1555 1800/3064/1556 +f 1791/3065/1557 1799/3066/1558 1798/3067/1555 +f 1786/3068/1559 1808/3069/1560 1799/3066/1558 +f 1785/3070/1561 1809/3071/1562 1808/3069/1560 +f 1790/3072/1563 1810/3073/1564 1809/3074/1562 +f 1789/3075/1565 1807/3076/1566 1810/3073/1564 +f 1787/3077/1567 1807/3076/1566 1788/3078/1568 +f 1797/3079/1569 1806/3080/1570 1787/3077/1567 +f 1796/3081/1571 1805/3082/1572 1797/3083/1569 +f 1795/3084/1573 1803/3085/1574 1796/3081/1571 +f 1795/3086/1573 1801/3087/1575 1804/3088/1576 +f 1793/3089/1577 1801/3087/1575 1794/3090/1578 +f 1792/3062/1554 1802/3091/1579 1793/3089/1577 +f 1837/2613/1580 1836/2302/1581 1838/2306/1581 +f 1839/3092/1582 1825/2249/1583 1840/2309/1583 +f 1841/3093/1584 1829/2297/1585 1842/2312/1585 +f 1844/2316/1586 1833/2293/1587 1832/2295/1588 +f 1838/3094/1581 1835/2285/1589 1845/2318/1589 +f 1842/2312/1585 1828/2288/1590 1846/2320/1591 +f 1847/2323/1592 1835/2285/1589 1834/2287/1593 +f 1848/2733/1594 1830/2282/1582 1839/2325/1582 +f 1841/2328/1584 1825/2249/1583 1824/2251/1584 +f 1847/3095/1592 1833/2293/1587 1843/2315/1595 +f 1846/2320/1591 1827/2597/1596 1849/2595/1597 +f 1837/2613/1580 1827/2597/1596 1826/2300/1598 +f 1848/2733/1594 1832/2295/1588 1831/2734/1594 +f 1893/2417/1599 1886/2374/1600 1892/2421/1601 +f 1895/2410/1602 1885/2373/1603 1894/2419/1604 +f 1893/2417/1599 1876/3096/1605 1884/2372/1599 +f 1897/2413/1606 1883/2400/1607 1882/2371/1608 +f 1888/3097/1609 1880/2370/1602 1895/2410/1602 +f 1889/2336/1016 1879/2367/1610 1890/3098/1610 +f 1896/2405/1611 1877/2364/1612 1876/2366/1605 +f 1892/2714/1601 1883/2400/1607 1898/2715/1613 +f 1894/2419/1604 1901/2594/1614 1900/3099/1615 +f 1850/2593/1297 1855/2305/1021 1875/2616/1616 +f 1899/2404/1617 1901/2594/1614 1877/2364/1612 +f 1891/2729/1014 1882/2371/1608 1887/2332/1014 +f 1873/2346/1026 1864/2324/1219 1868/2731/1219 +f 2176/3100/1618 2109/3101/1619 2177/2767/1322 +f 2148/3102/1620 2176/3100/1618 2177/2767/1322 +f 2175/3103/1621 2081/3104/1622 2176/3100/1618 +f 1022/2832/1385 1035/3105/1623 2060/3106/1624 +f 2065/3107/1625 2067/2828/1626 2064/3108/1627 +f 2068/3109/1628 2070/2826/1629 2071/2799/1630 +f 2150/3110/1631 2176/3100/1618 2147/3111/1632 +f 2174/3112/1633 2060/3106/1624 2175/3113/1621 +f 2150/3114/1631 2174/3112/1633 2175/3113/1621 +f 2173/3115/1634 1022/2832/1385 2174/3112/1633 +f 2159/3116/1635 2174/3112/1633 2149/3117/1636 +f 2173/3115/1634 926/2829/1378 949/2831/1384 +f 2081/3104/1622 1035/3118/1623 2063/3119/1637 +f 2082/3120/1638 2090/2817/1639 2083/2823/1640 +f 2085/2806/1641 2091/2814/1642 2092/2811/1643 +f 2159/3116/1635 2172/3121/1644 2173/3115/1634 +f 2171/3122/1645 926/2824/1378 2172/3123/1644 +f 2157/3124/1646 2172/3123/1644 2160/3125/1647 +f 2170/3126/1648 2141/2819/1373 2171/3122/1645 +f 2157/3124/1646 2170/3126/1648 2171/3122/1645 +f 2169/3127/1649 2143/3128/1336 2170/3129/1648 +f 2158/3130/1650 2170/3129/1648 2156/3131/1651 +f 2079/2808/1652 2093/2812/1653 2086/2813/1654 +f 2097/2807/1655 2092/2811/1643 2093/2812/1653 +f 2098/2804/1656 2087/2810/1657 2080/2805/1658 +f 2083/2823/1640 2095/2809/1659 2098/2804/1656 +f 2168/2758/1315 2145/2780/1335 2169/3127/1649 +f 2158/3130/1650 2168/2758/1315 2169/3127/1649 +f 2135/3132/1660 2050/3133/1660 2134/3134/1660 +f 2049/3135/1660 2134/3134/1660 2048/3136/1660 +f 2046/3137/1661 2132/3138/1661 2133/3139/1661 +f 2045/3140/1661 2132/3138/1661 2131/3141/1661 +f 2047/3142/1661 2043/3143/1661 2046/3137/1661 +f 2052/3144/1660 2050/3133/1660 2053/3145/1660 +f 2058/3146/1662 2101/2801/1663 2059/2802/1664 +f 2103/3147/1665 2071/2799/1630 2101/2801/1663 +f 2104/3148/1666 2062/2797/1667 2061/3149/1668 +f 2064/3108/1627 2102/2794/1669 2104/3148/1666 +f 2057/3150/1670 2073/3151/1671 2074/3152/1671 +f 2075/3153/1672 2094/3154/1673 2076/3133/1672 +f 2078/3155/1674 2100/3156/1675 2094/3157/1673 +f 2106/3158/1676 2057/3150/1670 2108/3143/1676 +f 2110/3141/1676 2137/3159/1670 2054/3160/1677 +f 2108/3143/1676 2137/3159/1670 2136/3138/1676 +f 2081/3104/1622 2107/3161/1678 2109/3101/1619 +f 2109/3101/1619 2088/2776/1331 2111/2768/1323 +f 2096/3162/1674 2138/3163/1675 2105/3164/1675 +f 2094/3157/1673 2138/3163/1675 2139/3165/1673 +f 2077/3136/1672 2139/3166/1673 2096/3167/1674 +f 2076/3133/1672 2139/3166/1673 2140/3134/1672 +f 2126/2772/1327 2128/3168/1679 2129/2764/1316 +f 2130/2760/1317 2128/3169/1679 2127/3170/1680 +f 2137/3159/1670 2055/3171/1671 2054/3160/1677 +f 2057/3150/1670 2056/3172/1671 2137/3159/1670 +f 1963/2246/953 1965/2736/953 1981/2247/954 +f 504/2249/955 505/2299/955 506/2250/956 +f 499/2252/957 507/3173/970 508/2253/958 +f 510/2255/960 511/2639/1251 512/2256/961 +f 513/2258/963 514/3174/974 515/2259/964 +f 517/2261/966 518/3175/975 519/2262/967 +f 521/2264/969 522/3176/1681 507/2265/970 +f 524/2267/971 525/3177/980 526/2268/972 +f 514/2270/974 517/2261/966 520/2263/968 +f 518/2272/975 527/2735/1299 528/2273/976 +f 1961/2275/977 1976/2378/1059 1964/2276/978 +f 500/2254/959 508/2253/958 525/2278/980 +f 529/2280/981 513/2258/963 516/2260/965 +f 542/2282/983 543/2734/984 549/2283/984 +f 547/2285/985 551/2292/985 552/2286/986 +f 540/2288/988 541/2297/989 553/2289/989 +f 548/2291/991 555/3178/991 551/2292/985 +f 545/2293/992 556/2304/996 557/2294/993 +f 503/2296/956 506/3179/956 553/2289/989 +f 504/2249/955 542/3180/983 550/2298/983 +f 538/2300/995 558/2612/995 555/2301/991 +f 545/2293/992 546/3181/987 552/2303/986 +f 564/2305/997 565/2613/1232 566/2306/998 +f 568/2308/999 569/3092/999 570/2309/1000 +f 572/2311/1001 573/3093/1001 574/2312/1002 +f 575/2314/1003 576/2330/1012 577/2315/1004 +f 563/2317/998 566/3094/998 580/2318/1006 +f 571/2313/1002 574/2312/1002 581/2320/1007 +f 582/2322/1009 579/2319/1006 580/2318/1006 +f 584/2324/1011 585/2733/1011 569/2325/999 +f 572/2327/1001 567/2310/1000 570/2309/1000 +f 582/2329/1009 583/3095/1010 577/2315/1004 +f 1890/2331/1013 1891/2729/1014 1887/2332/1014 +f 1888/2334/1015 1881/2376/1015 1878/2335/1016 +f 1874/2337/1017 1869/3182/1036 1863/2329/1018 +f 1872/2338/1020 1875/3183/1616 1855/2339/1021 +f 1866/2340/1022 1856/3184/1022 1857/2341/1022 +f 1865/2343/1023 1859/2327/1023 1858/2344/1024 +f 1874/2337/1017 1861/2330/1019 1860/2314/1025 +f 1870/2347/1027 1872/2338/1020 1854/2317/1020 +f 1851/2348/1028 1871/2369/1024 1858/2313/1024 +f 1999/2349/1030 1995/2356/1031 1996/2350/1031 +f 1998/2352/1030 1999/2349/1030 2000/2351/1030 +f 1998/2352/1030 1997/2353/1031 1994/2354/1031 +f 1995/2356/1031 1992/2454/1031 1991/2357/1031 +f 1973/2358/1033 1986/2466/1033 1990/2359/1034 +f 1870/2347/1027 1862/2319/1027 1863/2322/1018 +f 1993/2355/1032 1994/2354/1031 1979/2362/1037 +f 598/2364/1039 596/2616/1235 593/2365/1040 +f 587/2340/1041 588/2342/1042 600/2367/1042 +f 602/2368/1043 586/3185/1043 592/2369/1044 +f 603/2371/1046 604/2400/1079 595/2337/1047 +f 605/2372/1049 597/3096/1040 593/2338/1040 +f 601/2370/1045 592/2369/1044 560/2348/1050 +f 607/2374/1052 605/2372/1049 591/2347/1049 +f 608/2332/1054 589/2731/1054 588/2375/1055 +f 602/2376/1057 586/3186/1057 587/2340/1041 +f 1988/2377/1058 1989/2459/1121 1976/2378/1059 +f 1913/2379/1060 1905/2398/1078 1921/2380/1061 +f 1912/2382/1063 1930/2389/1070 1922/2383/1064 +f 1928/2385/1066 1927/2617/1236 1916/2386/1067 +f 1912/2382/1063 1911/2615/1234 1925/2388/1069 +f 1910/2387/1068 1916/2386/1067 1915/2390/1071 +f 1909/2392/1073 1908/2730/1295 1918/2393/1074 +f 1906/2395/1075 1920/2732/1296 1919/2396/1076 +f 1905/2398/1078 1904/2384/1065 1922/2383/1064 +f 607/2399/1052 590/3182/1053 595/2337/1047 +f 1902/2391/1072 1915/2390/1071 1923/2401/1080 +f 621/2403/1081 622/2618/1082 620/2404/1082 +f 624/2406/1083 611/3187/1083 610/2407/1084 +f 626/2409/1085 609/3097/1085 616/2410/1086 +f 628/2412/1087 619/2715/1286 618/2413/1088 +f 629/2415/1090 621/3188/1081 617/2416/1081 +f 630/2418/1091 625/2411/1086 616/2410/1086 +f 631/2420/1093 629/2415/1090 614/2417/1090 +f 632/2422/1095 612/2729/1095 611/2331/1083 +f 626/2424/1085 623/2408/1084 610/2407/1084 +f 1935/2426/1096 1944/2441/1109 1957/2427/1097 +f 1942/2429/1099 1956/2446/1113 1958/2430/1100 +f 1945/2432/1102 1948/2638/1250 1951/2433/1103 +f 1946/2435/1104 1941/2448/1115 1955/2436/1105 +f 1932/2438/1107 1943/2431/1101 1958/2430/1100 +f 1940/2440/1108 1954/2449/1108 1957/2427/1097 +f 1939/2442/1110 1938/2450/1111 1952/2443/1111 +f 1942/2429/1099 1936/2619/1237 1950/2445/1112 +f 1931/2447/1114 1934/2728/1114 1955/2436/1105 +f 1940/2440/1108 1939/2442/1110 1953/2444/1110 +f 1938/2450/1111 1937/2434/1103 1951/2433/1103 +f 502/2451/1116 501/2496/1117 637/2452/1117 +f 1992/2454/1031 1974/2461/1118 1987/2455/1118 +f 1959/2456/1119 1975/2360/1035 1990/2359/1034 +f 1988/2377/1058 1972/2468/1127 1985/2458/1120 +f 1971/2460/1122 1984/2470/1122 1987/2455/1118 +f 1969/2462/1123 1982/2494/1123 1983/2463/1124 +f 1973/2358/1033 1967/2603/1226 1980/2465/1125 +f 1960/2467/1126 1978/2637/1126 1985/2458/1120 +f 537/2281/982 635/2753/1310 530/2469/1128 +f 1970/2464/1124 1983/2463/1124 1984/2470/1122 +f 651/2608/1230 532/3189/1682 650/2473/1131 +f 532/3189/1682 531/2471/1129 650/2473/1131 +f 2038/2474/1132 2037/2505/1152 2042/2475/1133 +f 639/2477/1135 654/3190/1683 655/2478/1136 +f 641/2480/1138 656/3191/1138 657/2481/1139 +f 643/2483/1140 658/2490/1140 659/2484/1141 +f 645/2486/1142 502/2451/1116 638/2453/1116 +f 640/2479/1137 655/2478/1136 661/2488/1144 +f 643/2483/1140 642/2482/1139 657/2481/1139 +f 647/2491/1145 644/3192/1141 659/2492/1141 +f 1969/2462/1123 1968/2248/954 1981/2247/954 +f 648/2495/1146 663/3193/1249 637/2452/1117 +f 653/2499/1148 652/3194/1147 666/2497/1147 +f 652/3194/1147 664/3195/1684 666/2497/1147 +f 664/3195/1684 665/2599/1223 666/2497/1147 +f 2041/2476/1134 2042/2475/1133 2040/2500/1149 +f 2039/2501/1150 2040/2500/1149 2036/2502/1151 +f 2008/2504/1150 2033/2517/1150 2037/2505/1152 +f 2019/2506/1153 2027/2622/1240 2031/2507/1154 +f 2035/2503/1150 2036/2502/1151 2021/2509/1156 +f 2005/2511/1158 2029/2555/1183 2030/2512/1159 +f 2006/2514/1161 2005/2511/1158 2034/2513/1160 +f 2008/2504/1150 2007/2589/1213 2028/2516/1163 +f 2002/2518/1164 2006/2514/1161 2032/2515/1162 +f 2020/2520/1155 2031/3196/1154 2011/2521/1165 +f 677/2523/1167 682/2546/1167 683/2524/1168 +f 668/2526/1169 667/2551/445 685/2527/445 +f 670/2529/1170 669/2628/1171 688/2530/1171 +f 672/2532/1172 671/2610/1173 533/2533/1173 +f 674/2535/1174 673/2544/502 691/2536/502 +f 675/2538/1175 668/3197/1169 684/2539/1169 +f 670/2529/1170 689/2531/1170 694/2541/1176 +f 672/2543/1172 690/3198/1172 691/2536/502 +f 674/2545/1174 692/3199/1174 682/2546/1167 +f 649/2472/1130 531/2471/1129 678/2549/1178 +f 531/2471/1129 645/2547/1142 678/2549/1178 +f 680/2550/1179 695/3200/1179 685/2527/445 +f 696/2552/1180 697/2587/1211 698/2553/1181 +f 2029/2555/1183 2018/2625/1243 2026/2556/1184 +f 731/2558/1185 713/3201/1194 717/3202/1685 +f 713/3201/1194 714/3203/1686 715/3204/555 +f 715/3204/555 716/3205/1687 713/3201/1194 +f 716/3205/1687 717/3202/1685 713/3201/1194 +f 729/3206/1688 730/3207/1689 699/3208/761 +f 730/3207/1689 731/2558/1185 727/2557/555 +f 699/3208/761 730/3207/1689 728/3209/555 +f 728/3209/555 698/3210/1690 699/3208/761 +f 717/3202/1685 718/3211/753 722/2559/555 +f 718/3211/753 719/3212/761 722/2559/555 +f 722/2559/555 719/3212/761 720/3213/1691 +f 720/3213/1691 721/3214/1692 722/2559/555 +f 722/2559/555 723/3215/1208 724/3216/1187 +f 724/3216/1187 725/3217/1693 727/2557/555 +f 724/3216/1187 727/2557/555 722/2559/555 +f 725/3217/1693 726/3218/555 727/2557/555 +f 727/2557/555 728/3209/555 730/3207/1689 +f 731/2558/1185 717/3202/1685 722/2559/555 +f 732/2560/1186 725/3219/1693 724/2561/1187 +f 734/2563/1189 735/2602/1225 720/2564/1190 +f 737/2566/1192 729/2611/1231 730/2567/1193 +f 713/2569/1194 731/2577/1185 739/2570/1195 +f 740/2572/1197 732/3220/1198 725/2573/1198 +f 741/2575/1200 734/2563/1189 721/2565/1191 +f 731/2577/1185 730/3221/1689 736/2578/1202 +f 738/2579/1203 713/3222/1203 714/2580/1204 +f 743/2582/1206 740/2572/1197 726/2574/1199 +f 733/2562/1188 724/2561/1187 723/2584/1208 +f 746/2586/1210 728/2620/1238 698/2553/1181 +f 2017/2588/1212 2025/3223/1248 2028/2516/1163 +f 615/2419/1092 748/3099/1214 633/2590/1214 +f 1907/2397/1077 1919/2396/1076 1924/2591/1215 +f 606/2373/1051 560/2348/1050 559/2593/1217 +f 1867/2375/1218 1868/2731/1219 1864/2324/1219 +f 561/2321/1008 581/2320/1007 750/2595/1220 +f 554/2290/990 751/3224/1694 539/2597/1221 +f 665/2599/1223 664/3195/1684 679/2600/1222 +f 679/2600/1222 675/2538/1175 693/2540/1175 +f 693/2540/1175 708/2598/1222 679/2600/1222 +f 752/2601/1224 719/2725/1292 720/2564/1190 +f 1967/2603/1226 1966/2363/1038 1979/2362/1037 +f 2016/2604/1227 2015/2717/1288 2023/2605/1228 +f 641/2607/1138 532/3189/1682 651/2608/1230 +f 671/2610/1173 653/2499/1148 534/2498/1148 +f 696/2552/1180 699/2554/1182 729/2611/1231 +f 539/2597/1221 751/3224/1694 558/2612/995 +f 564/2305/997 562/2596/1220 750/2595/1220 +f 1866/2614/1233 1856/2310/1233 1859/2327/1023 +f 1911/2615/1234 1903/2402/1080 1923/2401/1080 +f 598/2364/1039 749/2594/1217 559/2593/1217 +f 1929/3225/555 1914/2592/1216 1928/2385/1066 +f 1914/2592/1216 1924/2591/1215 1927/2617/1236 +f 633/2590/1214 748/3099/1214 620/2404/1082 +f 1936/2619/1237 1935/2426/1096 1949/2428/1098 +f 743/2582/1206 727/2583/1207 728/2620/1238 +f 2019/2506/1153 2014/2723/1290 2022/2621/1239 +f 753/2623/1241 742/2581/1205 714/2580/1204 +f 2018/2625/1243 2009/3226/1301 2012/2626/1244 +f 757/2627/1245 754/2722/1168 688/2530/1171 +f 741/2575/1200 722/2576/1201 723/2629/1246 +f 676/2542/1177 694/2541/1176 695/2631/1179 +f 2016/2604/1227 2024/2606/1229 2025/2633/1248 +f 648/2635/1146 646/2489/1144 661/2488/1144 +f 1959/2456/1119 1977/2457/1119 1978/2637/1126 +f 1946/2435/1104 1947/2437/1106 1948/2638/1250 +f 523/2269/973 526/2268/972 511/2639/1251 +f 758/2640/1176 759/2656/1176 741/2575/1200 +f 761/2641/1252 742/2581/1205 753/2623/1241 +f 763/2643/1254 764/2677/1269 765/2644/1255 +f 762/2645/1256 696/2552/1180 737/2566/1192 +f 733/2562/1188 744/2585/1209 758/2647/1257 +f 768/2649/1258 740/2572/1197 743/2582/1206 +f 742/2650/1259 738/3227/1196 769/2651/1169 +f 739/2570/1195 736/2578/1202 771/2653/1261 +f 772/2655/1262 734/2563/1189 741/2575/1200 +f 740/2657/1263 732/3228/1186 773/2658/1174 +f 738/2571/1196 739/2570/1195 770/2654/445 +f 771/2653/1261 736/2578/1202 737/2661/1264 +f 773/2663/1174 732/2560/1186 733/2562/1188 +f 774/2664/1174 773/2663/1174 767/2648/502 +f 771/2653/1261 766/2662/1264 777/2666/1264 +f 769/2660/1169 770/2654/445 779/2668/445 +f 768/2659/1263 773/2658/1174 774/2670/1174 +f 782/2672/1265 772/2655/1262 759/2656/1176 +f 770/2654/445 771/2653/1261 776/2667/1261 +f 761/2652/1260 769/2651/1169 778/2674/1169 +f 780/2676/1268 768/2649/1258 765/2644/1255 +f 767/2648/502 758/2647/1257 784/2678/1257 +f 763/2643/1254 762/2645/1256 766/2646/1148 +f 763/2643/1254 535/2689/1148 712/2680/1271 +f 712/2680/1271 747/3229/1695 764/2677/1269 +f 747/3229/1695 709/2696/1279 764/2677/1269 +f 760/2681/1272 761/2652/1260 783/2675/1267 +f 781/2673/1266 759/2656/1176 758/2640/1176 +f 706/2684/1274 781/2673/1266 784/2683/1273 +f 707/2686/1275 783/2698/1280 785/2687/1276 +f 535/2689/1148 763/2643/1254 777/2679/1270 +f 772/2655/1262 786/2726/1293 787/2691/1278 +f 787/2691/1278 788/2748/1305 789/2724/1291 +f 752/2601/1224 735/2602/1225 787/2691/1278 +f 735/2602/1225 734/2563/1189 787/2691/1278 +f 787/2691/1278 789/2724/1291 752/2601/1224 +f 696/2552/1180 762/2645/1256 697/2587/1211 +f 762/2645/1256 765/2644/1255 697/2587/1211 +f 765/2644/1255 743/2582/1206 746/2586/1210 +f 710/2692/1179 784/3230/1273 775/2693/445 +f 705/2695/1175 780/2676/1268 764/2677/1269 +f 707/2686/1275 704/3231/1174 778/2697/1174 +f 703/2699/502 702/3232/1172 776/2700/1172 +f 706/2684/1274 701/2751/1308 782/2672/1265 +f 687/2702/1169 774/3233/1169 780/2676/1268 +f 703/2699/502 779/2701/502 778/2703/1174 +f 536/2690/1173 777/2679/1270 776/2705/1172 +f 687/2707/1169 686/2694/445 775/2693/445 +f 745/2688/1277 785/2687/1276 791/2709/1281 +f 792/2711/1283 760/2642/1253 753/2623/1241 +f 619/2715/1286 628/2412/1087 636/2713/1285 +f 636/2713/1285 631/3234/1093 613/2714/1094 +f 793/2712/1284 753/2623/1241 715/2624/1242 +f 2015/2717/1288 2001/3235/1302 2004/2718/1289 +f 681/2525/1168 683/2524/1168 794/2719/1168 +f 757/2627/1245 797/2740/1168 798/2721/1168 +f 2013/2510/1157 2021/2509/1156 2022/2621/1239 +f 789/2724/1291 718/2749/1306 719/2725/1292 +f 786/2726/1293 772/2655/1262 782/2672/1265 +f 1931/2447/1114 1932/2438/1107 1933/2439/1107 +f 627/2414/1089 618/2413/1088 612/2729/1095 +f 1908/2730/1295 1913/2379/1060 1926/2381/1062 +f 608/2332/1054 603/2371/1046 594/2346/1048 +f 1909/2392/1073 1917/2394/1073 1920/2732/1296 +f 1850/2593/1297 1851/2348/1028 1852/2321/1029 +f 584/2324/1011 575/2314/1003 578/2316/1005 +f 544/2295/994 557/2294/993 549/2283/984 +f 509/2257/962 512/2256/961 528/2273/976 +f 1963/2246/953 1962/2277/979 1964/2276/978 +f 654/3190/1683 639/2477/1135 756/3236/1300 +f 639/2477/1135 647/2491/1145 802/2737/1300 +f 756/3236/1300 639/2477/1135 799/2738/1300 +f 647/2491/1145 662/2493/1145 711/3237/1300 +f 711/3237/1300 795/3238/1300 647/2491/1145 +f 795/3238/1300 802/2737/1300 647/2491/1145 +f 803/2739/1168 804/2741/1168 798/2721/1168 +f 803/2739/1168 796/2720/1168 794/2719/1168 +f 2009/2742/1301 2010/2522/1166 2011/2521/1165 +f 2001/2744/1302 2002/2518/1164 2003/2519/1164 +f 805/2746/1303 790/2710/1282 791/2709/1281 +f 788/2748/1305 717/2750/1307 718/2749/1306 +f 788/2748/1305 793/2712/1284 716/2716/1287 +f 787/2691/1278 792/2711/1283 793/2712/1284 +f 755/3239/1696 800/3240/1697 806/2747/1304 +f 800/3240/1697 805/2746/1303 806/2747/1304 +f 806/2747/1304 801/2727/1294 782/2672/1265 +f 755/3239/1696 806/2747/1304 700/2752/1309 +f 782/2672/1265 701/2751/1308 806/2747/1304 +f 522/3176/1681 521/2264/969 634/2754/1311 +f 521/2264/969 530/2469/1128 634/2754/1311 +f 2164/2755/1312 2163/2769/1324 2180/2756/1313 +f 2168/2758/1315 2178/3241/1321 2129/2759/1316 +f 2151/2761/1318 2178/3241/1321 2168/2758/1315 +f 2167/2763/1320 2126/2772/1327 2129/2764/1316 +f 2151/2766/1318 2155/2774/1329 2167/2763/1320 +f 2177/2767/1322 2109/3101/1619 2111/2768/1323 +f 2153/2770/1325 2148/3102/1620 2177/2767/1322 +f 2167/2763/1320 2164/2755/1312 2162/2771/1326 +f 2154/2773/1328 2164/2755/1312 2167/2763/1320 +f 2162/2771/1326 2165/3242/1698 2166/2775/1330 +f 2153/2770/1325 2163/2769/1324 2164/2755/1312 +f 2162/2771/1326 2111/2768/1323 2088/2776/1331 +f 2126/2772/1327 2162/2771/1326 2161/2777/1332 +f 2130/2760/1317 2127/3170/1680 2146/2779/1334 +f 2143/2781/1336 2145/3243/1335 2146/2782/1334 +f 2115/2784/1338 1044/2815/1369 1038/2785/1339 +f 1018/2787/1341 2115/2784/1338 2125/2786/1340 +f 1034/2789/1343 1023/2835/1388 2124/2790/1344 +f 2117/2791/1345 2124/2790/1344 1020/2792/1346 +f 2123/2794/1348 946/2828/1382 934/2795/1349 +f 950/2797/1351 2123/2794/1348 2121/2796/1350 +f 942/2799/1353 932/2820/1374 2120/2800/1354 +f 1016/2802/1356 2122/2801/1355 2120/2800/1354 +f 934/2795/1349 922/2823/1377 2119/2804/1358 +f 2121/2796/1350 2119/2804/1358 929/2805/1359 +f 2120/2800/1354 932/2820/1374 917/2806/1360 +f 941/2803/1357 2120/2800/1354 2118/2807/1361 +f 2116/2809/1363 869/2817/1371 1034/2789/1343 +f 887/2810/1364 2116/2809/1363 2117/2791/1345 +f 2113/2811/1365 1044/2815/1369 2115/2784/1338 +f 915/2813/1367 2114/2812/1366 2115/2784/1338 +f 868/2814/1368 1042/3244/1699 1044/2815/1369 +f 882/2816/1370 1025/2834/1387 1034/2789/1343 +f 2143/2781/1336 2144/2783/1337 2142/2818/1372 +f 932/2820/1374 933/3245/1700 918/2821/1375 +f 937/2822/1376 925/3120/1701 922/2823/1377 +f 926/2824/1378 2141/2819/1373 2142/2818/1372 +f 945/2826/1380 933/3245/1700 932/2820/1374 +f 948/2827/1381 937/2822/1376 934/2795/1349 +f 926/2829/1378 886/3246/1379 938/2830/1383 +f 1022/2832/1385 949/2831/1384 938/2830/1383 +f 1025/2834/1387 1024/3247/1702 1023/2835/1388 +f 1044/2815/1369 1042/3244/1699 1040/2836/1389 +f 1116/2837/1390 1111/2877/1426 1114/2838/1391 +f 1120/2840/1393 1121/3248/1703 1122/2841/1394 +f 1124/2843/1396 1125/2849/1402 1126/2844/1397 +f 1123/2845/1398 1126/2844/1397 1119/2842/1395 +f 1134/2850/1403 1131/2848/1401 1132/2846/1399 +f 1132/2846/1399 1116/2837/1390 1115/2839/1392 +f 1133/2847/1400 1134/2850/1403 1132/2846/1399 +f 1131/2848/1401 1134/2850/1403 1125/2849/1402 +f 1134/2850/1403 1133/2847/1400 1137/2851/1404 +f 1128/2853/1406 2263/2859/1407 2262/2854/1407 +f 1125/2849/1402 1134/2850/1403 1138/2852/1405 +f 1133/2847/1400 1115/2839/1392 1150/2857/1410 +f 1128/2853/1406 1130/2875/1424 2264/2858/1407 +f 1126/2844/1397 1148/2866/1416 1147/2860/1411 +f 1115/2839/1392 1114/2838/1391 1139/2861/1412 +f 1127/2862/1413 1118/2872/1421 2261/2863/1414 +f 1119/2842/1395 1147/2860/1411 1146/2865/1415 +f 1125/2849/1402 1149/2856/1409 1148/2866/1416 +f 1122/2841/1394 1121/3248/1703 1157/2867/1417 +f 1127/2862/1413 2260/2864/1414 2259/2869/1414 +f 1124/2843/1396 1154/2878/1427 1153/2871/1420 +f 1118/2872/1421 1127/2862/1413 1128/2853/1406 +f 1132/2846/1399 1152/2879/1428 1151/2873/1422 +f 1123/2845/1398 1122/2841/1394 1156/2868/1418 +f 1127/2862/1413 1129/2870/1419 1130/2875/1424 +f 1116/2837/1390 1151/2873/1422 1162/2876/1425 +f 1124/2843/1396 1123/2845/1398 1155/2874/1423 +f 1131/2848/1401 1153/2871/1420 1152/2879/1428 +f 2222/2880/1429 2202/3249/1433 2203/2881/1430 +f 2221/2883/1432 2204/3250/1435 2202/2884/1433 +f 2220/2886/1434 2205/3251/1704 2204/1425/1435 +f 2206/2888/1436 2205/3251/1704 2220/2886/1434 +f 2207/2890/1438 2206/3252/1436 2219/2891/1437 +f 2208/2893/1440 2207/2890/1438 2218/2892/1439 +f 2216/2882/1431 2203/2881/1430 2208/2895/1440 +f 2193/2897/1442 2182/2944/1443 2181/2898/1443 +f 2191/2900/1444 2193/3253/1442 2194/2901/1442 +f 2189/2903/1445 2191/3254/1444 2192/2904/1444 +f 1240/2906/1446 1238/2909/1449 1237/2907/1447 +f 1238/2909/1449 1236/3255/1705 1235/2910/1450 +f 1241/2911/1451 1242/2921/1461 1240/2906/1446 +f 1181/2912/1452 1177/2923/1463 1173/2913/1453 +f 1229/2915/1455 1169/3256/1455 1232/2916/1456 +f 1230/1361/1458 1245/2924/1464 1231/2918/1459 +f 1244/2920/1460 1243/3257/1460 1242/2921/1461 +f 1183/2922/1462 1179/3258/1706 1177/2923/1463 +f 1245/2924/1464 1248/3259/1707 1251/2925/1465 +f 2187/2926/1466 2189/2903/1445 2190/2905/1445 +f 1246/2917/1457 1232/2916/1456 1252/2928/1467 +f 1249/2930/1469 1253/3260/1708 1254/2931/1470 +f 1251/2925/1465 1248/3259/1707 1250/2933/1472 +f 2185/2935/1474 2187/3261/1466 2188/2936/1466 +f 1252/2928/1467 1253/3260/1708 1249/2930/1469 +f 1187/2938/1475 1179/3258/1706 1183/2922/1462 +f 1234/2940/1477 1187/2938/1475 1185/2939/1476 +f 1250/2933/1472 1257/3262/1480 1260/2942/1478 +f 2184/2943/1479 2183/3263/1479 2185/2935/1474 +f 2182/2944/1443 2183/3264/1479 2184/2945/1479 +f 1257/2946/1480 1259/3265/1709 1262/2947/1481 +f 1170/2949/1482 1164/3266/1482 1163/2950/1482 +f 1255/2952/1471 1254/3267/1470 1261/2953/1484 +f 2239/2955/1486 2252/1149/1536 2251/2038/1487 +f 2245/2957/1489 2254/2041/1493 2253/2040/1490 +f 2245/2957/1489 2243/3268/1499 2255/2042/1492 +f 2248/2959/1494 2247/3030/1497 2249/2054/1495 +f 2239/2960/1486 2242/2967/1500 2247/2961/1497 +f 2245/2963/1489 2248/2965/1494 2244/2964/1498 +f 2246/2962/1491 2247/2961/1497 2248/2965/1494 +f 2240/2966/1488 2241/3269/1710 2242/2967/1500 +f 1612/2971/1504 1613/2980/1513 1614/2972/1505 +f 1617/2548/1507 1618/3270/1514 1619/2974/1508 +f 1610/2969/1502 1612/3271/1504 1615/2979/1506 +f 1616/2975/1509 1619/2974/1508 1614/2972/1505 +f 1620/2976/1510 1622/2978/1512 1618/2981/1514 +f 1614/2983/1505 1619/2992/1508 1623/2984/1515 +f 1618/2981/1514 1622/2978/1512 1625/2986/1517 +f 1614/2983/1505 1624/2985/1516 1628/2989/1520 +f 1618/2991/1514 1626/2997/1518 1623/2984/1515 +f 1611/2970/1503 1615/2979/1506 1628/2993/1520 +f 1628/2989/1520 1624/2985/1516 1630/2995/1522 +f 1626/2997/1518 1632/3272/1526 1633/2998/1524 +f 1627/2988/1519 1628/2993/1520 1631/3000/1523 +f 1623/2984/1515 1633/2998/1524 1630/2995/1522 +f 1626/2987/1518 1625/2986/1517 1634/2999/1525 +f 1630/3003/1522 1636/3010/1532 1637/3004/1528 +f 1633/3006/1524 1632/3011/1526 1638/3007/1529 +f 1631/3000/1523 1637/1702/1528 1635/3002/1527 +f 1633/3006/1524 1639/3008/1530 1636/3010/1532 +f 1632/3011/1526 1634/3273/1525 1640/3012/1531 +f 2201/3013/1442 2215/3274/1442 2209/3014/1443 +f 2214/3016/1444 2215/3275/1442 2201/3017/1442 +f 2199/3019/1445 2213/3276/1445 2214/2885/1444 +f 2212/3021/1466 2213/3276/1445 2199/3019/1445 +f 2211/3023/1474 2212/3277/1466 2198/3024/1466 +f 2210/3026/1479 2211/3023/1474 2197/3025/1474 +f 2195/3015/1443 2209/3014/1443 2210/3028/1479 +f 2247/3030/1497 2242/3031/1500 2257/1155/1533 +f 2242/3031/1500 2241/3278/1710 2258/2055/1534 +f 2248/2959/1494 2250/2052/1496 2256/2053/1535 +f 2246/2958/1491 2253/2040/1490 2252/1149/1536 +f 2237/3033/1537 2238/3279/1537 2226/3034/455 +f 2236/3036/441 2238/3280/1537 2237/3037/1537 +f 2233/3039/1538 2234/1104/1538 2236/3036/441 +f 2232/3040/555 2234/3281/1538 2233/3041/1538 +f 2229/3043/1539 2230/3282/1539 2232/3040/555 +f 2228/3044/443 2230/3283/1539 2229/3045/1539 +f 2224/3047/1540 2225/3284/1540 2228/3044/443 +f 2226/3034/455 2225/3285/1540 2224/3048/1540 +f 1675/3049/1541 1682/3053/1545 1676/3050/1542 +f 1674/3052/1544 1681/3286/1711 1682/3053/1545 +f 1680/3054/1546 1681/3286/1711 1674/3052/1544 +f 1679/3056/1548 1680/3054/1546 1673/3055/1547 +f 1678/3058/1550 1679/3056/1548 1672/3057/1549 +f 1670/3060/1552 1677/3061/1553 1678/3058/1550 +f 1669/3051/1543 1676/3050/1542 1677/3061/1553 +f 1792/3062/1554 1791/3287/1557 1798/3063/1555 +f 1791/3065/1557 1786/3068/1559 1799/3066/1558 +f 1786/3068/1559 1785/3070/1561 1808/3069/1560 +f 1785/3070/1561 1790/3288/1563 1809/3071/1562 +f 1790/3072/1563 1789/3075/1565 1810/3073/1564 +f 1789/3075/1565 1788/3078/1568 1807/3076/1566 +f 1787/3077/1567 1806/3080/1570 1807/3076/1566 +f 1797/3079/1569 1805/3289/1572 1806/3080/1570 +f 1796/3081/1571 1803/3085/1574 1805/3082/1572 +f 1795/3084/1573 1804/3290/1576 1803/3085/1574 +f 1795/3086/1573 1794/3090/1578 1801/3087/1575 +f 1793/3089/1577 1802/3091/1579 1801/3087/1575 +f 1792/3062/1554 1800/3064/1556 1802/3091/1579 +f 1837/2613/1580 1826/2300/1598 1836/2302/1581 +f 1839/3092/1582 1830/3180/1582 1825/2249/1583 +f 1841/3093/1584 1824/2296/1584 1829/2297/1585 +f 1844/2316/1586 1843/2315/1595 1833/2293/1587 +f 1838/3094/1581 1836/2291/1581 1835/2285/1589 +f 1842/2312/1585 1829/2297/1585 1828/2288/1590 +f 1847/2323/1592 1845/2318/1589 1835/2285/1589 +f 1848/2733/1594 1831/2734/1594 1830/2282/1582 +f 1841/2328/1584 1840/2309/1583 1825/2249/1583 +f 1847/3095/1592 1834/3181/1593 1833/2293/1587 +f 1846/2320/1591 1828/2288/1590 1827/2597/1596 +f 1837/2613/1580 1849/2595/1597 1827/2597/1596 +f 1848/2733/1594 1844/2316/1586 1832/2295/1588 +f 1893/2417/1599 1884/2372/1599 1886/2374/1600 +f 1895/2410/1602 1880/2370/1602 1885/2373/1603 +f 1893/2417/1599 1896/2416/1611 1876/3096/1605 +f 1897/2413/1606 1898/2715/1613 1883/2400/1607 +f 1888/3097/1609 1881/2368/1609 1880/2370/1602 +f 1889/2336/1016 1878/2335/1016 1879/2367/1610 +f 1896/2405/1611 1899/2404/1617 1877/2364/1612 +f 1892/2714/1601 1886/2399/1600 1883/2400/1607 +f 1894/2419/1604 1885/2373/1603 1901/2594/1614 +f 1850/2593/1297 1853/2596/1298 1855/2305/1021 +f 1899/2404/1617 1900/3099/1615 1901/2594/1614 +f 1891/2729/1014 1897/2413/1606 1882/2371/1608 +f 1873/2346/1026 1860/2314/1025 1864/2324/1219 +f 2176/3100/1618 2081/3104/1622 2109/3101/1619 +f 2148/3102/1620 2147/3111/1632 2176/3100/1618 +f 2175/3103/1621 2060/3291/1624 2081/3104/1622 +f 1022/2832/1385 1019/2833/1386 1035/3105/1623 +f 2065/3107/1625 2066/2827/1712 2067/2828/1626 +f 2068/3109/1628 2069/3292/1713 2070/2826/1629 +f 2150/3110/1631 2175/3103/1621 2176/3100/1618 +f 2174/3112/1633 1022/2832/1385 2060/3106/1624 +f 2150/3114/1631 2149/3117/1636 2174/3112/1633 +f 2173/3115/1634 949/2831/1384 1022/2832/1385 +f 2159/3116/1635 2173/3115/1634 2174/3112/1633 +f 2173/3115/1634 2172/3121/1644 926/2829/1378 +f 2081/3104/1622 2060/3291/1624 1035/3118/1623 +f 2082/3120/1638 2089/2816/1714 2090/2817/1639 +f 2085/2806/1641 2084/2821/1715 2091/2814/1642 +f 2159/3116/1635 2160/948/1647 2172/3121/1644 +f 2171/3122/1645 2141/2819/1373 926/2824/1378 +f 2157/3124/1646 2171/3122/1645 2172/3123/1644 +f 2170/3126/1648 2143/2781/1336 2141/2819/1373 +f 2157/3124/1646 2156/3293/1651 2170/3126/1648 +f 2169/3127/1649 2145/2780/1335 2143/3128/1336 +f 2158/3130/1650 2169/3127/1649 2170/3129/1648 +f 2079/2808/1652 2097/2807/1655 2093/2812/1653 +f 2097/2807/1655 2085/2806/1641 2092/2811/1643 +f 2098/2804/1656 2095/2809/1659 2087/2810/1657 +f 2083/2823/1640 2090/2817/1639 2095/2809/1659 +f 2168/2758/1315 2130/2760/1317 2145/2780/1335 +f 2158/3130/1650 2152/2762/1319 2168/2758/1315 +f 2135/3132/1660 2053/3145/1660 2050/3133/1660 +f 2049/3135/1660 2135/3132/1660 2134/3134/1660 +f 2046/3137/1661 2043/3143/1661 2132/3138/1661 +f 2045/3140/1661 2133/3139/1661 2132/3138/1661 +f 2047/3142/1661 2044/3158/1661 2043/3143/1661 +f 2052/3144/1660 2051/3153/1660 2050/3133/1660 +f 2058/3146/1662 2103/3147/1665 2101/2801/1663 +f 2103/3147/1665 2068/3109/1628 2071/2799/1630 +f 2104/3148/1666 2102/2794/1669 2062/2797/1667 +f 2064/3108/1627 2067/2828/1626 2102/2794/1669 +f 2057/3150/1670 2072/3294/1677 2073/3151/1671 +f 2075/3153/1672 2078/1417/1674 2094/3154/1673 +f 2078/3155/1674 2099/3295/1675 2100/3156/1675 +f 2106/3158/1676 2072/3294/1677 2057/3150/1670 +f 2110/3141/1676 2136/3138/1676 2137/3159/1670 +f 2108/3143/1676 2057/3150/1670 2137/3159/1670 +f 2081/3104/1622 2063/3119/1637 2107/3161/1678 +f 2109/3101/1619 2107/3161/1678 2088/2776/1331 +f 2096/3162/1674 2139/3165/1673 2138/3163/1675 +f 2094/3157/1673 2100/3156/1675 2138/3163/1675 +f 2077/3136/1672 2140/3134/1672 2139/3166/1673 +f 2076/3133/1672 2094/3154/1673 2139/3166/1673 +f 2126/2772/1327 2112/2778/1333 2128/3168/1679 +f 2130/2760/1317 2129/2759/1316 2128/3169/1679 +f 2137/3159/1670 2056/3172/1671 2055/3171/1671 +f 2057/3150/1670 2074/3152/1671 2056/3172/1671 From bfe09fed47981f1bdf9256f4b27e6a613b4dbc5b Mon Sep 17 00:00:00 2001 From: 70000hp <105080577+70000hp@users.noreply.github.com> Date: Thu, 31 Aug 2023 19:11:02 -0400 Subject: [PATCH 278/432] Fixing the weird UV --- .../assets/hbm/models/weapons/UAC pistol.obj | 15141 ++++++++-------- 1 file changed, 7335 insertions(+), 7806 deletions(-) diff --git a/src/main/resources/assets/hbm/models/weapons/UAC pistol.obj b/src/main/resources/assets/hbm/models/weapons/UAC pistol.obj index 6e34a53d1..0a7aa02dd 100644 --- a/src/main/resources/assets/hbm/models/weapons/UAC pistol.obj +++ b/src/main/resources/assets/hbm/models/weapons/UAC pistol.obj @@ -1,5 +1,6 @@ -# Blender v2.79 (sub 0) OBJ File: '' +# Blender 3.6.1 # www.blender.org +mtllib UAC pistol.mtl o bool_obj_bool_obj_data.002 v -0.395192 7.596701 -3.479156 v 0.584592 7.596701 -3.479156 @@ -9,26 +10,26 @@ v -0.395192 8.736673 -5.713195 v 0.584592 8.736673 -5.713195 v -0.395192 9.164925 -5.571519 v 0.584592 9.164925 -5.571519 -v -0.395192 9.566045 -5.817649 -v 0.584592 9.566045 -5.817649 +v -0.395192 9.566045 -5.817651 +v 0.584592 9.566045 -5.817651 v -0.395192 9.328085 -6.240386 v 0.584592 9.328085 -6.240386 -v -0.395192 8.650140 -6.472072 -v 0.584592 8.650140 -6.472072 -v -0.395192 8.023211 -6.974553 -v 0.584592 8.023211 -6.974553 +v -0.395192 8.650138 -6.472074 +v 0.584592 8.650138 -6.472074 +v -0.395192 8.023209 -6.974555 +v 0.584592 8.023209 -6.974555 v -0.395192 7.262578 -7.039774 v 0.584592 7.262578 -7.039774 -v -0.395192 7.029797 -6.702052 -v 0.584592 7.029797 -6.702052 -v -0.395192 7.269282 -6.422195 -v 0.584592 7.269282 -6.422195 -v -0.395192 7.572930 -6.422195 -v 0.584592 7.572930 -6.422195 -v -0.395192 8.226030 -6.011783 -v 0.584592 8.226030 -6.011783 -v -0.395192 6.903951 -4.234123 -v 0.584592 6.903951 -4.234123 +v -0.395192 7.029797 -6.702054 +v 0.584592 7.029797 -6.702054 +v -0.395192 7.269280 -6.422195 +v 0.584592 7.269280 -6.422195 +v -0.395192 7.572928 -6.422195 +v 0.584592 7.572928 -6.422195 +v -0.395192 8.226030 -6.011785 +v 0.584592 8.226030 -6.011785 +v -0.395192 6.903951 -4.234125 +v 0.584592 6.903951 -4.234125 v -0.395192 6.148036 -4.191928 v 0.584592 6.148036 -4.191928 v -0.395192 7.596701 -3.479156 @@ -39,4669 +40,112 @@ v -0.395192 8.736673 -5.713195 v 0.584592 8.736673 -5.713195 v -0.395192 9.164925 -5.571519 v 0.584592 9.164925 -5.571519 -v -0.395192 9.566045 -5.817649 -v 0.584592 9.566045 -5.817649 +v -0.395192 9.566045 -5.817651 +v 0.584592 9.566045 -5.817651 v -0.395192 9.328085 -6.240386 v 0.584592 9.328085 -6.240386 -v -0.395192 8.650140 -6.472072 -v 0.584592 8.650140 -6.472072 -v -0.395192 8.023211 -6.974553 -v 0.584592 8.023211 -6.974553 +v -0.395192 8.650138 -6.472074 +v 0.584592 8.650138 -6.472074 +v -0.395192 8.023209 -6.974555 +v 0.584592 8.023209 -6.974555 v -0.395192 7.262578 -7.039774 v 0.584592 7.262578 -7.039774 -v -0.395192 7.029797 -6.702052 -v 0.584592 7.029797 -6.702052 -v -0.395192 7.269282 -6.422195 -v 0.584592 7.269282 -6.422195 -v -0.395192 7.572930 -6.422195 -v 0.584592 7.572930 -6.422195 -v -0.395192 8.226030 -6.011783 -v 0.584592 8.226030 -6.011783 -v -0.395192 6.903951 -4.234123 -v 0.584592 6.903951 -4.234123 +v -0.395192 7.029797 -6.702054 +v 0.584592 7.029797 -6.702054 +v -0.395192 7.269280 -6.422195 +v 0.584592 7.269280 -6.422195 +v -0.395192 7.572928 -6.422195 +v 0.584592 7.572928 -6.422195 +v -0.395192 8.226030 -6.011785 +v 0.584592 8.226030 -6.011785 +v -0.395192 6.903951 -4.234125 +v 0.584592 6.903951 -4.234125 v -0.395192 6.148036 -4.191928 v 0.584592 6.148036 -4.191928 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 +vn 1.0000 -0.0000 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 0.5222 0.8528 +vn -0.0000 -0.6977 0.7164 +vn -0.0000 0.3799 0.9250 +vn -0.0000 0.1152 0.9933 +vn -0.0000 0.9679 0.2511 +vn -0.0000 0.6394 -0.7689 +vn -0.0000 0.4816 -0.8764 +vn -0.0000 0.3715 -0.9284 +vn -0.0000 -0.4267 -0.9044 +vn -0.0000 -0.9986 0.0521 +vn -0.0000 -0.4182 0.9083 +vn -0.0000 -0.2769 0.9609 +vn -0.0000 -0.9829 0.1841 +vn -0.0000 -0.4738 -0.8807 +vn -0.0000 -0.7356 -0.6775 vt 0.382588 0.627146 vt 0.395485 0.647711 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.395485 0.647711 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.395485 0.647711 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.382588 0.627146 -vt 0.395485 0.647711 -vt 0.382588 0.627146 -vn 1.0000 0.0000 0.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.5222 0.8528 -vn 0.0000 -0.6977 0.7164 -vn 0.0000 0.3799 0.9250 -vn 0.0000 0.1152 0.9933 -vn 0.0000 0.9679 0.2512 -vn 0.0000 0.6394 -0.7689 -vn 0.0000 0.4816 -0.8764 -vn 0.0000 0.3715 -0.9284 -vn 0.0000 -0.4267 -0.9044 -vn 0.0000 -0.9986 0.0521 -vn 0.0000 -0.4182 0.9083 -vn 0.0000 -0.2769 0.9609 -vn 0.0000 -0.9829 0.1841 -vn 0.0000 -0.4738 -0.8807 -vn 0.0000 -0.4737 -0.8807 -vn 0.0000 -0.7356 -0.6775 -s off -f 22/1/1 20/2/1 18/3/1 -f 17/4/2 21/5/2 23/6/2 -f 25/7/2 15/8/2 23/6/2 -f 16/9/1 26/10/1 24/11/1 -f 14/12/1 6/13/1 26/10/1 -f 13/14/2 25/7/2 5/15/2 -f 5/15/2 11/16/2 13/14/2 -f 12/17/1 6/13/1 14/12/1 -f 7/18/2 9/19/2 11/16/2 -f 12/17/1 10/20/1 8/21/1 -f 6/13/1 28/22/1 26/10/1 -f 28/22/1 3/23/1 30/24/1 -f 27/25/2 5/15/2 25/7/2 -f 27/25/2 4/26/2 1/27/2 -f 16/9/1 24/11/1 18/3/1 -f 24/11/1 22/1/1 18/3/1 -f 23/6/2 15/8/2 17/4/2 -f 17/4/2 19/28/2 21/5/2 -f 25/7/2 13/14/2 15/8/2 -f 16/9/1 14/12/1 26/10/1 -f 5/15/2 7/18/2 11/16/2 -f 12/17/1 8/21/1 6/13/1 -f 6/13/1 2/29/1 28/22/1 -f 28/22/1 2/29/1 3/23/1 -f 27/25/2 1/27/2 5/15/2 -f 27/25/2 29/30/2 4/26/2 +s 0 +f 22/1/1 20/1/1 18/1/1 +f 17/1/2 21/1/2 23/1/2 +f 25/1/2 15/1/2 23/1/2 +f 16/1/1 26/1/1 24/1/1 +f 14/1/1 6/1/1 26/1/1 +f 13/1/2 25/1/2 5/1/2 +f 5/1/2 11/1/2 13/1/2 +f 12/1/1 6/1/1 14/1/1 +f 7/1/2 9/1/2 11/1/2 +f 12/1/1 10/1/1 8/1/1 +f 6/1/1 28/1/1 26/1/1 +f 28/1/1 3/2/1 30/1/1 +f 27/1/2 5/1/2 25/1/2 +f 27/1/2 4/2/2 1/1/2 +f 16/1/1 24/1/1 18/1/1 +f 24/1/1 22/1/1 18/1/1 +f 23/1/2 15/1/2 17/1/2 +f 17/1/2 19/1/2 21/1/2 +f 25/1/2 13/1/2 15/1/2 +f 16/1/1 14/1/1 26/1/1 +f 5/1/2 7/1/2 11/1/2 +f 12/1/1 8/1/1 6/1/1 +f 6/1/1 2/1/1 28/1/1 +f 28/1/1 2/1/1 3/2/1 +f 27/1/2 1/1/2 5/1/2 +f 27/1/2 29/1/2 4/2/2 s 1 -f 31/31/3 33/32/4 32/33/3 -f 32/33/3 35/34/5 31/31/3 -f 36/35/5 37/36/6 35/34/5 -f 38/37/6 39/38/7 37/36/6 -f 40/39/7 41/40/8 39/38/7 -f 42/41/8 43/42/9 41/40/8 -f 44/43/9 45/44/10 43/42/9 -f 46/45/10 47/46/11 45/44/10 -f 48/47/11 49/48/12 47/46/11 -f 50/49/12 51/50/13 49/48/12 -f 52/51/13 53/52/14 51/50/13 -f 54/53/14 55/54/15 53/52/14 -f 56/55/15 57/56/16 55/54/15 -f 58/57/17 59/58/18 57/56/16 -f 34/59/4 60/60/18 33/32/4 -f 31/31/3 34/59/4 33/32/4 -f 32/33/3 36/35/5 35/34/5 -f 36/35/5 38/37/6 37/36/6 -f 38/37/6 40/39/7 39/38/7 -f 40/39/7 42/41/8 41/40/8 -f 42/41/8 44/43/9 43/42/9 -f 44/43/9 46/45/10 45/44/10 -f 46/45/10 48/47/11 47/46/11 -f 48/47/11 50/49/12 49/48/12 -f 50/49/12 52/51/13 51/50/13 -f 52/51/13 54/53/14 53/52/14 -f 54/53/14 56/55/15 55/54/15 -f 56/55/15 58/57/17 57/56/16 -f 58/57/17 60/60/18 59/58/18 -f 34/59/4 59/58/18 60/60/18 -o slide_pistol_0 -v 1.014517 11.207904 -2.625849 -v 1.014517 11.207904 -2.300615 -v 1.014517 10.723700 -1.978914 -v -1.014517 10.157009 -2.625849 -v -1.014517 11.207904 -2.625849 -v -0.335502 10.613042 -2.625849 -v -1.526129 9.326169 3.920666 -v -1.526129 9.326169 3.413728 -v -1.526129 8.752565 3.413728 -v -1.705540 8.752565 3.920666 -v -1.705540 7.184847 3.920666 -v -1.705540 8.402288 6.532843 -v -1.526129 8.752565 3.920666 -v -1.705540 8.752565 3.920666 -v -1.705540 8.752759 6.288157 -v -1.526129 8.752565 3.920666 -v -1.524936 8.752759 6.288157 -v 1.705540 7.247200 -1.820036 -v 1.526129 7.247200 -1.820036 -v 1.526043 7.614016 -2.276281 -v 1.321148 7.184845 12.021435 -v -1.171832 7.184845 11.897297 -v 1.156401 7.184845 11.897297 -v 1.526043 7.614016 -2.276281 -v 1.526129 7.247200 -1.820036 -v 1.526043 7.184847 -2.765843 -v 1.321148 7.184845 11.214216 -v -1.705540 7.184847 2.105287 -v -1.705540 8.757562 2.105289 -v -1.705540 8.927025 1.935824 -v 1.526129 7.247200 -1.820036 -v 1.526129 7.184847 -1.313097 -v 1.526043 7.184847 -2.765843 -v -1.524936 9.326169 6.288157 -v -1.326382 10.025589 6.288157 -v -1.705540 9.660696 6.288157 -v -1.705540 9.326169 6.288157 -v 0.813732 7.184845 16.849926 -v 1.705540 7.184845 12.021435 -v 1.705540 7.184845 18.319260 -v 1.326382 7.184845 19.492821 -v -1.705540 7.967402 7.346316 -v -1.705540 8.055081 6.892088 -v 1.705540 7.637856 11.214216 -v 1.705540 7.184845 11.214216 -v 1.705540 7.967402 7.346316 -v -1.705540 7.184847 3.920666 -v -1.526129 7.184847 3.920666 -v -1.171832 7.184845 5.830760 -v 1.705540 7.184847 3.920666 -v 1.705540 7.184845 11.214216 -v 1.156401 7.184845 5.830760 -v 1.705540 7.184847 -2.765843 -v 1.705540 7.184847 -4.842922 -v 1.705540 8.782389 -4.842922 -v 1.705540 7.614016 -2.276281 -v 1.231429 7.184847 -4.842922 -v 1.526129 7.184847 -1.313097 -v 1.231024 7.184847 1.879624 -v -1.526129 7.184847 2.105287 -v -1.526129 7.184847 2.612226 -v -1.526129 8.752565 2.612226 -v 1.705540 7.184847 3.920666 -v 1.321148 7.184845 11.214216 -v 1.705540 7.184845 11.214216 -v 1.705540 7.637856 11.214216 -v -0.813732 7.184845 16.849926 -v 1.526129 7.184847 3.920666 -v 0.000000 9.832471 21.944122 -v 0.947015 10.390595 21.944122 -v -0.947015 10.390595 21.944122 -v 1.705540 8.055081 6.892088 -v -1.171832 7.184845 11.897297 -v -1.171832 8.402286 11.660704 -v -1.171832 8.578351 11.777046 -v 0.167762 11.355708 20.190464 -v -0.167762 11.355708 20.190464 -v -0.167762 10.787156 20.190464 -v 0.814306 10.492231 20.190464 -v 0.814306 10.492231 19.285318 -v 0.359371 10.492231 19.285318 -v 0.893030 10.492231 20.116810 -v 0.893030 10.492231 19.372772 -v -1.526129 7.184847 3.413727 -v 1.526129 7.184847 3.413727 -v -0.393269 7.184847 1.879624 -v 0.393269 7.184847 1.879624 -v -1.333642 8.402288 6.532843 -v -1.333642 8.055081 6.892088 -v -1.333642 7.967402 7.346316 -v -1.016029 10.321226 11.777046 -v -0.947015 10.390595 11.777046 -v -0.654714 10.019365 11.777046 -v -0.813732 7.184845 16.849926 -v 0.813732 7.184845 16.849926 -v 0.813732 5.420440 16.849926 -v 0.471660 5.087638 16.849926 -v -0.471660 5.087638 16.849926 -v -0.813732 5.420440 16.849926 -v -1.333642 7.184845 21.944122 -v -1.333642 7.184845 19.492821 -v -0.813732 7.184845 21.944122 -v -1.526129 7.184847 0.796846 -v -1.705540 7.184847 0.796846 -v -1.705540 7.184847 -0.004656 -v -0.728164 8.051682 1.879624 -v -0.393269 9.417000 1.879624 -v -0.393269 7.184847 1.879624 -v -0.728164 7.586768 1.879624 -v -1.238688 7.184847 1.879624 -v 1.231024 9.417000 1.879624 -v 1.231024 8.051682 1.879624 -v 0.728164 8.051682 1.879624 -v 1.526129 7.184847 2.105287 -v 1.526129 7.184847 2.612226 -v 1.705540 7.184847 -1.313097 -v 1.705540 7.184847 -0.511595 -v 1.526129 7.184847 -0.511595 -v 1.705540 7.184847 2.612226 -v 1.705540 7.184847 3.413727 -v 1.526129 7.184847 3.920666 -v 1.526129 9.833411 3.920666 -v 1.705540 9.660696 3.920666 -v 0.408756 10.107763 -3.259710 -v -0.409408 10.107763 -3.259710 -v -0.409408 10.390597 -3.172265 -v 1.705540 9.660696 3.413728 -v 1.526129 9.833411 3.413728 -v 1.526129 7.184847 3.413727 -v -0.392768 7.184847 -4.842922 -v 0.393269 9.417000 1.879624 -v 0.393269 7.184847 1.879624 -v 0.392768 7.184847 -4.842922 -v 1.705540 7.184847 2.612226 -v 1.526129 7.184847 2.612226 -v 1.526129 9.833411 2.612226 -v 1.526129 7.184847 2.105287 -v 1.705540 7.184847 2.105287 -v 1.705540 9.660696 2.105289 -v 0.392768 8.782389 -4.842922 -v 0.392768 9.417337 -4.333549 -v 1.231024 7.184847 1.879624 -v 1.231024 7.586768 1.879624 -v 1.231429 7.587345 -4.842922 -v 0.408756 10.390597 -3.531358 -v 0.408756 10.107763 -3.763226 -v 0.408756 10.107763 -3.259710 -v 1.526129 9.833411 1.303785 -v 1.705540 9.660696 1.303785 -v 1.705540 7.184847 1.303785 -v 0.728571 7.587345 -4.842922 -v 0.728571 8.051105 -4.842922 -v 1.231429 8.051105 -4.842922 -v 1.705540 9.660696 0.796846 -v 1.526129 9.833411 0.796846 -v 1.526129 7.184847 0.796846 -v 0.813732 7.184845 21.944122 -v 1.231024 9.417000 1.879624 -v 0.393269 9.417000 1.879624 -v 0.392768 9.417337 -4.333549 -v 1.231024 7.586768 1.879624 -v 0.728164 7.586768 1.879624 -v 0.728571 7.587345 -4.842922 -v 1.526129 9.833411 -0.004656 -v 1.705540 9.660696 -0.004656 -v 1.705540 7.184847 -0.004656 -v 1.705540 7.184847 -4.842922 -v 1.231429 7.184847 -4.842922 -v 1.231429 7.587345 -4.842922 -v 1.526129 7.184847 -0.511595 -v 1.705540 7.184847 -0.511595 -v 1.705540 9.660696 -0.511595 -v 1.231429 9.417337 -4.333549 -v 1.231429 8.782389 -4.842922 -v 1.231024 9.417000 1.879624 -v 0.728164 7.586768 1.879624 -v 0.728164 8.051682 1.879624 -v 0.728571 8.051105 -4.842922 -v 1.526129 9.833411 -1.313097 -v 1.705540 9.660696 -1.313097 -v 1.705540 7.184847 -1.313097 -v 1.231024 8.051682 1.879624 -v 0.728164 8.051682 1.879624 -v 1.231024 8.051682 1.879624 -v 1.231429 8.051105 -4.842922 -v 0.947015 10.390597 -2.821980 -v -0.947015 10.390597 -2.821980 -v -1.132077 10.212755 -2.753814 -v 1.526129 7.247200 -1.820036 -v 1.705540 7.247200 -1.820036 -v 1.705540 9.660696 -1.820036 -v 1.705540 8.752767 6.288157 -v 1.705540 8.402288 6.532843 -v -1.132077 10.212755 0.576711 -v -0.947015 10.390597 0.637665 -v 0.947015 10.390597 0.637665 -v 1.326382 7.184845 21.944122 -v 1.526129 7.184847 -0.004656 -v -1.526129 7.184847 2.612226 -v -1.238688 7.184847 1.879624 -v 1.705540 7.184847 2.105287 -v 1.526129 7.184847 1.303785 -v 1.705540 7.184847 1.303785 -v 1.526129 7.184847 0.796846 -v 1.705540 7.184847 -0.004656 -v 0.728164 7.586768 1.879624 -v 1.231024 7.586768 1.879624 -v 1.231024 7.184847 1.879624 -v 0.393269 7.184847 1.879624 -v -1.238688 9.417000 1.879624 -v -1.526129 7.184847 2.105287 -v -1.705540 7.184847 -1.313097 -v -1.526129 7.184847 -1.313097 -v -1.526129 7.184847 -0.511595 -v -1.705540 7.184847 2.612226 -v -1.526129 9.326169 3.920666 -v -1.705540 9.326169 3.920666 -v -1.705540 9.660696 3.920666 -v -1.526129 7.184847 3.920666 -v -1.705540 7.184847 3.920666 -v -1.705540 8.752565 3.920666 -v -1.705540 7.184847 3.413727 -v -1.526129 7.184847 3.413727 -v -1.526129 8.752565 3.413728 -v -1.705540 9.326169 3.413728 -v -1.526129 9.326169 3.413728 -v -1.526129 9.833411 3.413728 -v -1.705540 7.184847 2.612226 -v -1.705540 7.184847 3.413727 -v -1.705540 8.752565 3.413728 -v -0.393269 9.417000 1.879624 -v -0.392768 8.782389 -4.842922 -v -0.392768 7.184847 -4.842922 -v -1.526129 9.326169 2.612226 -v -1.705540 9.326169 2.612226 -v -1.705540 9.660696 2.612226 -v -1.526129 7.184847 2.612226 -v -1.705540 7.184847 2.612226 -v -1.705540 8.752565 2.612226 -v -0.392768 9.417337 -4.333549 -v -1.238688 7.184847 1.879624 -v -1.238688 7.184847 -4.842922 -v -1.238688 7.587345 -4.842922 -v -0.409408 10.390597 -3.531358 -v -0.409408 10.390597 -3.172265 -v -0.409408 10.107763 -3.259710 -v -1.526129 9.833411 1.303785 -v -1.526129 7.184847 1.303785 -v -1.705540 7.184847 1.303785 -v -0.728571 7.587345 -4.842922 -v -1.238688 7.587345 -4.842922 -v -1.238688 8.051105 -4.842922 -v -1.705540 9.660696 0.796846 -v -1.705540 7.184847 0.796846 -v -1.526129 7.184847 0.796846 -v -1.238688 9.417000 1.879624 -v -1.238688 9.417337 -4.333549 -v -0.392768 9.417337 -4.333549 -v -1.238688 7.586768 1.879624 -v -1.238688 7.587345 -4.842922 -v -0.728571 7.587345 -4.842922 -v -1.526129 9.833411 -0.004656 -v -1.526129 7.184847 -0.004656 -v -1.705540 7.184847 -0.004656 -v -1.238688 7.184847 -4.842922 -v -1.705540 7.184847 -4.842922 -v -1.526129 7.184847 -0.511595 -v -1.526129 9.833411 -0.511595 -v -1.705540 9.660696 -0.511595 -v -1.238688 8.782389 -4.842922 -v -1.238688 9.417337 -4.333549 -v -1.238688 9.417000 1.879624 -v -0.728164 7.586768 1.879624 -v -0.728571 7.587345 -4.842922 -v -0.728571 8.051105 -4.842922 -v -1.526129 7.184847 -0.004656 -v -1.238688 7.184847 -4.842922 -v -1.526129 9.833411 -1.313097 -v -1.526129 7.184847 -1.313097 -v -1.705540 7.184847 -1.313097 -v -1.238688 8.051682 1.879624 -v -1.238688 8.051105 -4.842922 -v -0.728164 8.051682 1.879624 -v -0.728571 8.051105 -4.842922 -v -1.238688 8.051105 -4.842922 -v -1.705540 7.184847 -4.842922 -v -1.526129 7.184847 -1.820036 -v -1.705540 7.184847 2.105287 -v -1.705540 7.184847 1.303785 -v -1.526129 7.184847 -1.820036 -v -1.526129 9.833411 -1.820036 -v -1.705540 9.660696 -1.820036 -v -1.526129 7.184847 1.303785 -v -1.526129 7.184847 3.413727 -v -1.526129 7.184847 3.920666 -v -1.526129 8.752565 3.920666 -v -0.947015 10.390597 6.288157 -v -0.654714 10.019367 6.288157 -v -0.409408 10.390597 6.288157 -v -1.171832 9.475291 6.288157 -v -0.409408 10.019367 5.830760 -v -0.409408 10.390597 5.830760 -v -0.409408 10.390597 6.288157 -v 0.408756 10.019367 5.830760 -v 0.408756 10.019367 6.288157 -v 0.408756 10.390597 6.288157 -v 0.408756 10.019367 5.830760 -v 0.408756 10.390597 5.830760 -v -0.409408 10.390597 5.830760 -v 0.408756 10.019367 6.288157 -v 0.632517 10.019367 6.288157 -v 0.408756 10.390597 6.288157 -v 0.958007 9.683089 6.288157 -v 1.018419 10.321527 6.288157 -v -1.171832 9.475289 11.777046 -v -1.171832 7.184845 5.830760 -v -1.171832 8.752774 6.288157 -v -1.171832 8.402288 6.532843 -v -0.409408 10.019367 6.288157 -v -1.333642 8.402286 11.660704 -v -1.171832 8.402286 11.660704 -v -1.171832 8.402288 6.532843 -v -0.409408 10.019367 5.830760 -v -0.654714 10.019367 5.830760 -v -1.171832 9.475291 5.830760 -v -1.171832 7.184845 5.830760 -v 1.156401 7.184845 5.830760 -v 1.156401 9.475291 5.830760 -v 1.014517 11.207904 -2.625849 -v 0.335502 10.613042 -2.625849 -v 0.335502 11.207904 -2.625849 -v -0.167762 11.355708 20.190464 -v 0.167762 11.355708 20.190464 -v 0.167762 11.355708 19.816681 -v 0.143185 11.207904 -2.300615 -v 0.143185 11.269897 -2.300615 -v 0.143185 11.269897 -2.690542 -v 1.014517 11.207904 -2.625849 -v 0.335502 11.207904 -2.625849 -v 0.335502 11.207904 -2.300615 -v 1.014517 11.207904 -2.300615 -v 0.335502 11.207904 -2.625849 -v 0.335502 11.269897 -2.690542 -v 0.335502 11.269897 -2.300615 -v 0.335502 10.613042 -2.625849 -v 0.335502 10.613042 -2.690542 -v 0.335502 11.269897 -2.690542 -v 0.143185 11.269897 -2.300615 -v 0.335502 11.269897 -2.300615 -v 0.335502 11.269897 -2.690542 -v -0.720340 8.093417 11.897297 -v -0.389845 7.872590 11.897297 -v -1.171832 7.184845 11.897297 -v -0.941169 8.423912 11.897297 -v -1.018714 8.813757 11.897297 -v 0.000000 7.795043 11.897297 -v 0.471660 5.087638 21.944122 -v 0.813732 5.420440 21.944122 -v -0.813732 5.420440 21.944122 -v 0.813732 7.184845 21.944122 -v -1.333642 7.184845 21.944122 -v -0.813732 7.184845 21.944122 -v -0.720340 8.093417 21.944122 -v -1.018714 8.813757 21.944122 -v -1.326382 10.025587 21.944122 -v -0.720340 9.534097 21.944122 -v 0.720340 9.534097 21.944122 -v 1.326382 10.025587 21.944122 -v 1.018714 8.813757 21.944122 -v 1.326382 7.184845 21.944122 -v 0.720340 8.093417 21.944122 -v 0.941169 9.203602 21.944122 -v 0.389845 9.754926 21.944122 -v -0.941169 9.203602 21.944122 -v -0.941169 8.423912 21.944122 -v -0.389845 7.872588 21.944122 -v 0.000000 7.795043 21.944122 -v 0.389845 7.872588 21.944122 -v 0.941169 8.423912 21.944122 -v -0.471660 5.087638 21.944122 -v -0.389845 9.754926 21.944122 -v 1.321148 7.637856 11.214216 -v 1.321148 7.444345 12.021435 -v 1.321148 7.184845 12.021435 -v 1.705540 7.184845 12.021435 -v 1.321148 7.184845 12.021435 -v 1.321148 7.444345 12.021435 -v 1.705540 7.637856 11.214216 -v 1.705540 7.444345 12.021435 -v 1.321148 7.444345 12.021435 -v -1.526129 9.326169 3.413728 -v -1.705540 9.326169 3.413728 -v -1.705540 9.326169 2.612226 -v -1.524936 9.326169 6.288157 -v -1.705540 9.326169 6.288157 -v -1.705540 9.326169 3.920666 -v -1.526129 8.752565 2.612226 -v -1.705540 8.752565 2.612226 -v -1.705540 8.752565 3.413728 -v -1.526129 8.752565 2.612226 -v 0.632517 10.019367 5.830760 -v 0.335502 10.613042 -2.690542 -v 0.143185 10.723700 -2.690542 -v 0.143185 11.269897 -2.690542 -v -0.335502 10.613042 -2.690542 -v -0.143185 10.723700 -2.690542 -v -0.335502 10.613042 -2.625849 -v -0.335502 10.613042 -2.690542 -v 0.335502 10.613042 -2.690542 -v 0.143185 10.723700 -2.690542 -v 0.143185 10.723700 -1.978914 -v -0.814306 10.492231 20.190464 -v -0.359371 10.492231 20.190464 -v -0.359371 10.492231 19.285318 -v -0.893030 10.492231 20.116810 -v -0.814306 10.492231 19.285318 -v -0.335502 11.207904 -2.625849 -v -0.335502 10.613042 -2.625849 -v -0.335502 11.207904 -2.625849 -v -0.335502 11.269897 -2.690542 -v -0.335502 11.269897 -2.690542 -v -0.143185 11.269897 -2.690542 -v -0.143185 10.723700 -2.690542 -v -0.143185 11.269897 -2.690542 -v -0.143185 11.207904 -2.300615 -v -0.335502 11.207904 -2.625849 -v -0.335502 11.207904 -2.300615 -v -0.335502 11.269897 -2.300615 -v -0.143185 11.269897 -2.300615 -v -0.143185 11.269897 -2.690542 -v -0.335502 11.269897 -2.690542 -v -0.143185 11.269897 -2.300615 -v -0.335502 11.207904 -2.625849 -v -1.014517 11.207904 -2.625849 -v -0.335502 11.207904 -2.300615 -v -1.014517 11.207904 -2.300615 -v 1.014517 10.157009 -2.625849 -v 1.014517 10.606321 -1.825947 -v 1.014517 10.491154 -1.431074 -v 1.014517 10.157009 -2.625849 -v 0.167762 10.787156 20.190464 -v -0.359371 10.492231 20.190464 -v -1.014517 11.207904 -2.625849 -v -1.014517 10.157009 -2.625849 -v -1.014517 10.723700 -1.978914 -v -1.014517 10.606321 -1.825947 -v -1.014517 10.491154 -1.431074 -v 0.359371 10.492231 20.190464 -v -1.014517 11.207904 -2.300615 -v -0.451145 8.974197 5.975873 -v 0.000000 8.787328 5.975873 -v -0.345291 9.132619 5.975873 -v 0.186870 8.336183 5.975873 -v 0.000000 8.299012 5.975873 -v -0.186870 9.238472 5.975873 -v 0.000000 9.275643 5.975873 -v 0.345291 8.442036 5.975873 -v 0.186870 9.238472 5.975873 -v 0.345291 9.132619 5.975873 -v 0.451145 8.600457 5.975873 -v 0.451145 8.974197 5.975873 -v 0.488316 8.787328 5.975873 -v -0.488316 8.787328 5.975873 -v -0.186870 8.336183 5.975873 -v -0.451145 8.600457 5.975873 -v -0.345291 8.442036 5.975873 -v -1.659889 9.270180 6.250484 -v -1.659889 9.270180 2.190356 -v -1.659889 8.796173 2.190356 -v -1.659889 9.139336 2.059511 -v -1.659889 8.927017 2.059511 -v -1.360494 9.270180 6.250484 -v -1.659889 9.270180 6.250484 -v -1.659889 8.796173 6.250484 -v -1.705540 8.752759 6.288157 -v -1.524936 8.752759 6.288157 -v -1.524936 9.326169 6.288157 -v 1.705540 7.614016 -2.276281 -v -1.705540 7.184847 1.303785 -v -1.705540 9.151711 1.935824 -v 1.321148 7.637856 11.214216 -v 0.359371 10.492231 20.190464 -v -1.238688 7.586768 1.879624 -v 0.393269 9.417000 1.879624 -v 1.705540 7.184847 3.920666 -v 0.408756 10.390597 -3.172265 -v 1.705540 7.184847 3.413727 -v 0.392768 7.184847 -4.842922 -v 1.705540 9.660696 2.612226 -v 1.526129 9.833411 2.105289 -v 1.231429 7.184847 -4.842922 -v 0.408756 10.390597 -3.172265 -v 1.526129 7.184847 1.303785 -v 1.705540 7.184847 0.796846 -v 1.231429 9.417337 -4.333549 -v 1.231429 7.587345 -4.842922 -v 1.526129 7.184847 -0.004656 -v 1.526129 9.833411 -0.511595 -v 0.728571 7.587345 -4.842922 -v 1.526129 7.184847 -1.313097 -v 1.231429 8.051105 -4.842922 -v 0.728571 8.051105 -4.842922 -v 1.132077 10.212755 -2.753814 -v 1.526129 9.833411 -1.820036 -v 1.132077 10.212755 0.576711 -v 1.705540 7.184847 0.796846 -v -1.238688 8.051682 1.879624 -v -1.705540 7.184847 -0.511595 -v -1.705540 7.184847 3.413727 -v -1.526129 9.833411 3.920666 -v -1.526129 8.752565 3.920666 -v -1.705540 8.752565 3.413728 -v -1.705540 9.660696 3.413728 -v -1.705540 8.752565 2.612226 -v -0.393269 7.184847 1.879624 -v -1.526129 9.833411 2.612226 -v -1.526129 8.752565 2.612226 -v -1.705540 7.184845 18.319260 -v -1.238688 7.586768 1.879624 -v -0.409408 10.107763 -3.763226 -v -1.705540 9.660696 1.303785 -v -0.728571 8.051105 -4.842922 -v -1.526129 9.833411 0.796846 -v -0.393269 9.417000 1.879624 -v -0.728164 7.586768 1.879624 -v -1.705540 9.660696 -0.004656 -v -1.705540 7.184847 -0.511595 -v -0.728164 8.051682 1.879624 -v -1.705540 9.660696 -1.313097 -v -1.238688 8.051682 1.879624 -v -1.705540 7.184847 -1.820036 -v -1.705540 7.184847 -1.820036 -v -1.705540 7.184847 -4.842922 -v -1.705540 7.184847 -1.820036 -v -1.705540 8.782389 -4.842922 -v -1.526129 8.752565 3.413728 -v -0.409408 10.019367 6.288157 -v 0.408756 10.390597 5.830760 -v -1.326382 10.025587 11.777046 -v -1.333642 8.402288 6.532843 -v -0.167762 11.355708 19.816681 -v 0.335502 11.207904 -2.300615 -v 0.335502 11.207904 -2.625849 -v 0.143185 11.269897 -2.690542 -v 1.321148 7.184845 11.214216 -v 1.705540 7.444345 12.021435 -v 1.321148 7.637856 11.214216 -v -1.526129 9.326169 2.612226 -v -1.526129 9.326169 3.920666 -v -1.526129 8.752565 3.413728 -v -1.526129 9.326169 2.612226 -v 0.335502 11.269897 -2.690542 -v 0.335502 10.613042 -2.625849 -v -0.893030 10.492231 19.372772 -v -0.335502 10.613042 -2.690542 -v -0.143185 10.723700 -1.978914 -v -0.335502 11.269897 -2.690542 -v -0.335502 11.269897 -2.300615 -v -1.659889 8.796173 6.250484 -v -1.360494 8.796173 6.250484 -v -1.705540 8.402288 6.532843 -v -1.333642 8.402288 6.532843 -v -1.524936 8.752759 6.288157 -v -1.171832 8.752774 6.288157 -v -0.654714 10.019365 11.897297 -v -0.654714 10.019365 11.777046 -v 0.632517 10.019365 11.777046 -v 0.632517 10.019365 11.777046 -v -1.705540 9.660696 6.288157 -v -1.705540 9.660696 3.920666 -v -1.705540 9.326169 3.920666 -v -1.526129 8.752565 2.110282 -v -1.526129 9.321173 2.105289 -v -1.524936 9.151711 1.935824 -v -1.526129 7.184847 1.303785 -v -1.526129 9.833411 1.303785 -v -1.526129 9.833411 0.796846 -v -1.705540 9.660696 1.303785 -v 1.526129 9.833411 -1.820036 -v 1.526129 9.833411 -1.313097 -v -1.171832 9.475289 11.777046 -v 1.705540 7.184845 18.319260 -v 1.705540 7.184845 12.021435 -v 1.705540 7.444345 12.021435 -v 1.705540 9.660696 -1.820036 -v 1.705540 7.247200 -1.820036 -v 1.705540 7.967400 18.319260 -v 1.526043 7.184847 -2.765843 -v 1.705540 7.184847 -4.842922 -v 1.705540 7.184847 -2.765843 -v -1.526129 9.321173 2.105289 -v -1.705540 9.321173 2.105289 -v -1.705540 9.151711 1.935824 -v -1.705540 8.927025 1.935824 -v -1.705540 8.757562 2.105289 -v -1.526129 8.752565 2.110282 -v 1.018714 8.813757 11.876558 -v 1.156401 9.475289 11.866871 -v 1.156401 7.184845 11.897297 -v -1.014517 10.157009 0.196241 -v -1.014517 10.369081 0.196241 -v 0.167762 10.787156 19.556133 -v 0.167762 11.355708 19.816681 -v 0.167762 11.355708 20.190464 -v 0.359371 10.492231 20.190464 -v 0.359371 10.492231 19.285318 -v 0.872165 9.770428 11.711023 -v 1.156401 9.475289 11.866871 -v 0.632517 10.019365 11.897297 -v 1.018419 10.321525 11.521421 -v 1.019789 10.321226 19.320282 -v 1.326382 10.025587 21.944122 -v 0.872165 9.770428 11.711023 -v 0.947015 10.390595 11.752501 -v 1.018419 10.321525 11.521421 -v 1.018419 10.321527 6.288157 -v 0.958007 9.683089 6.288157 -v 0.958007 9.683128 11.555180 -v 0.632517 10.019367 5.830760 -v 1.156401 9.475291 5.830760 -v 0.958007 9.683089 6.288157 -v 1.326382 7.967400 19.492821 -v 1.326382 7.967402 7.346316 -v 1.326382 8.055081 6.892088 -v 1.326382 8.402288 6.532843 -v 1.326382 10.025589 6.288157 -v -1.333642 7.967400 19.492821 -v -1.333642 8.578351 11.777046 -v -1.333642 8.402286 11.660704 -v -1.326382 10.025587 21.944122 -v -1.326382 10.025587 11.777046 -v 0.947015 10.390595 19.208494 -v 0.947015 10.390595 11.752501 -v 0.869641 10.390595 11.777046 -v -0.409408 10.390597 -3.531358 -v -0.409408 10.107763 -3.763226 -v -0.947015 10.390597 -3.531358 -v 0.869641 10.390595 11.777046 -v -1.238688 8.782389 -4.842922 -v -1.333642 8.578351 11.777046 -v -1.526129 7.184847 -0.004656 -v -1.526129 9.833411 -0.004656 -v -1.526129 9.833411 -0.511595 -v -0.947015 10.390597 0.637665 -v -0.947015 10.390597 6.288157 -v -0.409408 10.390597 5.830760 -v 0.408756 10.390597 5.830760 -v 0.947015 10.390597 0.637665 -v 0.408756 10.390597 6.288157 -v 1.018419 10.321527 6.288157 -v -1.171832 9.475291 5.830760 -v -1.171832 9.475291 6.288157 -v 1.018419 10.321527 6.288157 -v 1.326382 10.025589 6.288157 -v 1.132077 10.212755 0.576711 -v -0.409408 10.390597 6.288157 -v -1.526129 9.833411 2.105289 -v -1.526129 9.833411 2.612226 -v -1.132077 10.212755 0.576711 -v -1.526129 9.833411 3.920666 -v -1.326382 10.025589 6.288157 -v -1.526129 9.833411 3.413728 -v 0.947015 10.390597 -3.531358 -v 0.947015 10.390597 -2.821980 -v 1.132077 10.212755 -2.753814 -v 0.947015 10.390595 19.208494 -v -0.947015 10.390595 19.208494 -v -1.016029 10.321226 19.320282 -v 0.947015 10.390595 20.281315 -v -0.947015 10.390595 20.281315 -v -0.947015 10.390595 21.944122 -v 1.705540 7.184847 2.612226 -v 1.705540 9.660696 2.612226 -v 1.705540 9.660696 3.413728 -v 1.019789 10.321226 20.144449 -v -1.016029 10.321226 20.144449 -v 1.326382 7.967400 19.492821 -v 1.326382 7.184845 19.492821 -v 0.471660 5.087638 16.849926 -v 0.813732 5.420440 16.849926 -v 0.813732 5.420440 21.944122 -v 0.408756 10.390597 -3.531358 -v 0.408756 10.390597 -3.172265 -v 1.019789 10.321226 20.144449 -v -0.409408 10.107763 -3.763226 -v -0.409408 10.107763 -3.259710 -v 0.408756 10.107763 -3.259710 -v 1.705540 7.967402 7.346316 -v 1.326382 7.967402 7.346316 -v 1.326382 7.967400 19.492821 -v 1.326382 7.184845 21.944122 -v 1.326382 7.184845 19.492821 -v 1.526129 7.184847 1.303785 -v 1.526129 7.184847 0.796846 -v 1.526129 9.833411 0.796846 -v 1.705540 8.402288 6.532843 -v 1.326382 8.402288 6.532843 -v 1.326382 8.055081 6.892088 -v 1.705540 8.055081 6.892088 -v 1.705540 9.660696 6.288157 -v 1.326382 10.025589 6.288157 -v 1.326382 8.752767 6.288157 -v 1.705540 9.660696 -4.131680 -v 1.231429 9.417337 -4.333549 -v 0.408756 10.107763 -3.763226 -v -0.392768 9.417337 -4.333549 -v -0.409408 10.390597 -3.172265 -v -0.947015 10.390597 -2.821980 -v 0.392768 9.417337 -4.333549 -v 0.392768 8.782389 -4.842922 -v 1.231429 8.782389 -4.842922 -v 1.705540 8.782389 -4.842922 -v 1.705540 9.660696 -4.131680 -v 0.947015 10.390597 -3.531358 -v 1.526129 9.833411 2.612226 -v 1.705540 9.660696 6.288157 -v 1.705540 9.660696 3.920666 -v 1.526129 9.833411 3.920666 -v -1.132077 10.212755 0.576711 -v 1.132077 10.212755 0.576711 -v 1.132077 10.212755 -2.753814 -v 1.705540 9.660696 -1.313097 -v 1.705540 9.660696 -0.511595 -v 1.705540 7.184847 -0.511595 -v 1.705540 9.660696 -0.004656 -v 1.705540 9.660696 0.796846 -v 1.705540 7.184847 0.796846 -v 1.526129 7.184847 2.612226 -v 1.526129 7.184847 2.105287 -v 1.526129 9.833411 2.105289 -v 1.705540 9.660696 3.920666 -v 1.705540 9.660696 6.288157 -v 1.019789 10.321226 19.320282 -v -0.471660 5.087638 16.849926 -v 0.471660 5.087638 21.944122 -v 0.813732 7.184845 16.849926 -v 0.813732 7.184845 21.944122 -v 0.947015 10.390595 20.281315 -v 0.947015 10.390595 21.944122 -v 1.705540 8.752767 6.288157 -v 1.526129 7.184847 3.920666 -v 1.526129 7.184847 3.413727 -v 1.526129 9.833411 3.413728 -v 0.392768 7.184847 -4.842922 -v -0.392768 7.184847 -4.842922 -v -0.392768 8.782389 -4.842922 -v 0.408756 10.390597 -3.531358 -v 1.526129 7.184847 -0.004656 -v 1.526129 7.184847 -0.511595 -v 1.526129 9.833411 -0.511595 -v 1.705540 7.184847 1.303785 -v 1.705540 9.660696 1.303785 -v 1.705540 9.660696 2.105289 -v 1.526129 9.833411 3.413728 -v 1.526129 9.833411 -0.511595 -v 1.526129 9.833411 -1.313097 -v 1.526129 9.833411 -1.820036 -v 1.526129 9.833411 -0.004656 -v 1.526129 9.833411 2.105289 -v 1.526129 9.833411 1.303785 -v 1.705540 7.184847 -2.765843 -v 1.705540 7.614016 -2.276281 -v 1.526043 7.614016 -2.276281 -v -0.947015 10.390597 -3.531358 -v -1.705540 9.660696 -4.131680 -v -1.132077 10.212755 -2.753814 -v -1.705540 7.184845 18.319260 -v -1.705540 7.967400 18.319260 -v -1.526129 9.833411 -1.313097 -v -1.526129 9.833411 -0.511595 -v -1.705540 9.660696 -1.820036 -v -1.526129 9.833411 -1.820036 -v -1.705540 9.660696 3.413728 -v -1.705540 9.660696 2.612226 -v -1.705540 9.326169 2.612226 -v -1.333642 7.184845 19.492821 -v -0.471660 5.087638 21.944122 -v -0.813732 5.420440 21.944122 -v -0.409408 10.390597 -3.531358 -v -1.705540 7.184847 2.105287 -v -1.526129 7.184847 2.105287 -v -1.526129 9.833411 2.105289 -v -1.705540 7.967402 7.346316 -v -1.705540 7.967400 18.319260 -v -1.333642 7.967400 19.492821 -v -1.333642 7.184845 19.492821 -v -1.705540 9.321173 2.105289 -v -1.705540 9.660696 2.105289 -v -1.705540 8.055081 6.892088 -v -1.333642 8.055081 6.892088 -v -1.333642 7.967402 7.346316 -v -1.705540 9.660696 -0.511595 -v -1.238688 9.417337 -4.333549 -v -1.705540 9.660696 -4.131680 -v -1.526129 9.833411 1.303785 -v -1.705540 8.782389 -4.842922 -v -1.705540 9.660696 -1.313097 -v -1.705540 7.184847 -1.313097 -v -1.705540 7.184847 -0.511595 -v -1.705540 9.660696 -0.004656 -v -1.705540 7.184847 -0.004656 -v -1.705540 7.184847 0.796846 -v -1.526129 9.833411 -0.004656 -v -1.705540 9.660696 0.796846 -v -1.526129 9.833411 0.796846 -v -0.813732 5.420440 16.849926 -v -0.813732 7.184845 21.944122 -v -1.526129 7.184847 -1.313097 -v -1.526129 9.833411 -1.313097 -v -1.526129 9.833411 -1.820036 -v -0.947015 10.390595 11.777046 -v -1.016029 10.321226 11.777046 -v -1.705540 8.752759 6.288157 -v -1.526129 9.833411 3.920666 -v -1.526129 9.833411 3.413728 -v -1.526129 9.326169 3.413728 -v 1.326382 8.752767 6.288157 -v -1.171832 8.402288 6.532843 -v -1.171832 8.578351 11.777046 -v -1.171832 8.402286 11.660704 -v 0.632517 10.019367 5.830760 -v 0.632517 10.019367 6.288157 -v 0.408756 10.019367 6.288157 -v -0.654714 10.019367 5.830760 -v -0.409408 10.019367 5.830760 -v -0.409408 10.019367 6.288157 -v 0.632517 10.019367 6.288157 -v 0.958007 9.683128 11.555180 -v 1.156401 7.184845 5.830760 -v 1.156401 7.184845 11.897297 -v 0.941169 9.203602 11.872112 -v 1.018714 8.813757 11.876558 -v 1.018714 8.813757 21.944122 -v 0.720340 9.534097 11.876596 -v 0.941169 9.203602 21.944122 -v 0.389845 9.754926 11.891426 -v 0.720340 9.534097 21.944122 -v 0.000000 9.832471 11.897297 -v 0.389845 9.754926 21.944122 -v 0.814306 10.296812 20.190464 -v 0.814306 10.492231 20.190464 -v 0.000000 9.832471 21.944122 -v -0.389845 9.754926 21.944122 -v -0.389845 9.754926 11.897297 -v -0.720340 9.534097 21.944122 -v -0.720340 9.534097 11.896717 -v 0.893030 10.296812 20.116810 -v 0.893030 10.492231 20.116810 -v 0.893030 10.296812 19.372772 -v 0.893030 10.492231 19.372772 -v -0.941169 9.203602 11.897297 -v -0.941169 9.203602 21.944122 -v -1.018714 8.813757 21.944122 -v -1.018714 8.813757 11.897297 -v -0.941169 8.423912 21.944122 -v -0.941169 8.423912 11.897297 -v -0.720340 8.093417 21.944122 -v -0.720340 8.093417 11.897297 -v -0.389845 7.872588 21.944122 -v -0.389845 7.872590 11.897297 -v 0.000000 7.795043 21.944122 -v 0.000000 7.795043 11.897297 -v 0.000000 7.795043 21.944122 -v 0.389845 7.872588 21.944122 -v 0.389845 7.872590 11.897297 -v 0.720340 8.093417 21.944122 -v 0.720340 8.093417 11.890942 -v 0.814306 10.296812 19.285318 -v 0.814306 10.492231 19.285318 -v 0.893030 10.492231 19.372772 -v 0.941169 8.423912 11.883170 -v 0.941169 8.423912 21.944122 -v 0.359371 10.492231 19.285318 -v -0.814306 10.296812 19.285318 -v -0.359371 10.492231 19.285318 -v -0.167762 10.787156 19.556133 -v 0.167762 10.787156 19.556133 -v -0.167762 11.355708 19.816681 -v 0.167762 11.355708 19.816681 -v -0.814306 10.157009 0.372431 -v 0.814306 10.157009 0.372431 -v 0.814306 10.357646 0.372431 -v 1.014517 10.157009 0.196241 -v 1.014517 10.369081 0.196241 -v -0.143185 10.723700 -1.978914 -v 0.143185 10.723700 -1.978914 -v 0.143185 10.723700 -2.690542 -v 0.143185 11.207904 -2.300615 -v 0.143185 10.723700 -1.978914 -v 0.335502 11.207904 -2.300615 -v 1.014517 10.723700 -1.978914 -v 1.014517 11.207904 -2.300615 -v 1.014517 10.606321 -1.825947 -v -1.014517 10.606321 -1.825947 -v -1.014517 10.491154 -1.431074 -v 1.014517 10.491154 -1.431074 -v -0.814306 10.357646 0.372431 -v 0.814306 10.357646 0.372431 -v 1.014517 10.369081 0.196241 -v -1.014517 10.369081 0.196241 -v -1.171832 9.475289 11.897297 -v 0.632517 10.019365 11.897297 -v 0.720340 9.534097 11.876596 -v 0.000000 9.832471 11.897297 -v -0.654714 10.019365 11.897297 -v -0.720340 9.534097 11.896717 -v -1.171832 9.475289 11.897297 -v 0.941169 8.423912 11.883170 -v 0.720340 8.093417 11.890942 -v 0.389845 7.872590 11.897297 -v -0.941169 9.203602 11.897297 -v -0.389845 9.754926 11.897297 -v 0.389845 9.754926 11.891426 -v 0.941169 9.203602 11.872112 -v -1.524936 8.927025 1.935824 -v -1.526129 9.833411 2.105289 -v -1.526129 9.321173 2.105289 -v -1.526129 9.326169 2.612226 -v 0.335502 11.269897 -2.300615 -v 0.143185 11.269897 -2.300615 -v -0.167762 10.787156 19.556133 -v -0.167762 10.787156 20.190464 -v -0.167762 11.355708 20.190464 -v -0.359371 10.492231 20.190464 -v -0.814306 10.492231 20.190464 -v -0.814306 10.296812 20.190464 -v -0.893030 10.296812 20.116810 -v -0.893030 10.296812 19.372772 -v -0.893030 10.492231 20.116810 -v -0.893030 10.296812 19.372772 -v -0.893030 10.492231 19.372772 -v -0.814306 10.492231 19.285318 -v -0.143185 10.723700 -1.978914 -v -1.014517 10.723700 -1.978914 -v -0.814306 10.357646 0.372431 -v -0.335502 11.269897 -2.300615 -v -0.335502 11.207904 -2.300615 -v -0.143185 11.207904 -2.300615 -v 1.526129 9.833411 0.796846 -v -0.451145 8.974197 5.975873 -v -0.345291 9.132619 5.975873 -v -0.345291 9.132619 5.773401 -v -0.186870 9.238472 5.975873 -v -0.186870 9.238472 5.773401 -v 0.345291 8.442036 5.975873 -v 0.186870 8.336183 5.975873 -v 0.186870 8.336183 5.773401 -v 0.000000 9.275643 5.975873 -v 0.000000 9.275643 5.773401 -v 0.186870 9.238472 5.975873 -v 0.186870 9.238472 5.773401 -v 0.451145 8.600457 5.975873 -v 0.345291 8.442036 5.773401 -v 0.345291 9.132619 5.975873 -v 0.345291 9.132619 5.773401 -v 0.451145 8.974197 5.975873 -v 0.451145 8.974197 5.773401 -v 0.488316 8.787328 5.975873 -v 0.451145 8.600457 5.773401 -v 0.488316 8.787328 5.773401 -v -0.186870 8.336183 5.975873 -v -0.345291 8.442036 5.975873 -v -0.345291 8.442036 5.773401 -v -0.451145 8.600457 5.975873 -v -0.488316 8.787328 5.975873 -v -0.488316 8.787328 5.773401 -v 0.000000 8.299012 5.975873 -v -0.186870 8.336183 5.773401 -v 0.000000 8.299012 5.773401 -v -0.451145 8.974197 5.773401 -v -0.451145 8.600457 5.773401 -v -1.360494 8.796173 2.190356 -v -1.659889 8.796173 2.190356 -v -1.659889 8.927017 2.059511 -v -1.659889 9.139336 2.059511 -v -1.360494 9.139336 2.059511 -v -1.360494 8.927017 2.059511 -v -1.360494 9.270180 2.190356 -v -1.659889 9.270180 2.190356 -v -1.659889 9.270180 6.250484 -v -1.360494 8.796173 6.250484 -v -1.659889 8.796173 6.250484 -v -1.705540 9.326169 6.288157 -v -1.524936 8.927025 1.935824 -v -1.526129 7.184847 0.796846 -v -1.526129 8.752565 2.110282 -v -1.524936 9.151711 1.935824 -v 0.167762 10.787156 20.190464 -v -1.526129 7.184847 -0.511595 -v 0.947015 10.390595 21.944122 -v 1.705540 7.184847 3.413727 -v 0.408756 10.107763 -3.763226 -v 1.705540 7.967400 18.319260 -v 1.526129 9.833411 1.303785 -v -1.132077 10.212755 -2.753814 -v 1.705540 7.184847 -1.313097 -v 1.705540 7.184847 -0.004656 -v 1.526129 9.833411 2.612226 -v 1.526129 9.833411 3.920666 -v 1.526129 9.833411 -0.004656 -v 1.705540 7.184847 2.105287 -v 1.526043 7.184847 -2.765843 -v -1.705540 9.326169 3.413728 -v -1.333642 7.967400 19.492821 -v -1.705540 9.660696 2.105289 -v -1.333642 7.184845 21.944122 -v -0.813732 7.184845 16.849926 -v -1.526129 7.184847 -1.820036 -v -1.526129 9.326169 3.920666 -v -1.333642 8.402286 11.660704 -v 0.408756 10.019367 5.830760 -v -0.654714 10.019367 6.288157 -v 0.869641 10.390595 11.777046 -v 0.000000 7.795043 11.897297 -v 0.893030 10.296812 19.372772 -v -0.143185 10.723700 -2.690542 -v -1.526129 9.833411 2.612226 -v -0.167762 11.355708 19.816681 -v -0.359371 10.492231 19.285318 -v -0.893030 10.492231 19.372772 -v -0.143185 11.269897 -2.300615 -v -1.014517 11.207904 -2.300615 -v -1.360494 9.270180 6.250484 -vt 0.665882 0.347767 -vt 0.666023 0.347766 -vt 0.666162 0.347974 -vt 0.668422 0.348903 -vt 0.668420 0.348450 -vt 0.668128 0.348707 -vt 0.670331 0.347891 -vt 0.670113 0.347891 -vt 0.670112 0.348138 -vt 0.648961 0.347035 -vt 0.648963 0.347711 -vt 0.650088 0.347182 -vt 0.670330 0.348139 -vt 0.670330 0.348216 -vt 0.671351 0.348220 -vt 0.670330 0.348139 -vt 0.671351 0.348142 -vt 0.655673 0.344315 -vt 0.655725 0.344372 -vt 0.655911 0.344201 -vt 0.649593 0.340884 -vt 0.649645 0.341960 -vt 0.649646 0.340955 -vt 0.655911 0.344201 -vt 0.655725 0.344372 -vt 0.656134 0.344371 -vt 0.649941 0.340885 -vt 0.655073 0.340475 -vt 0.655070 0.339797 -vt 0.654996 0.339724 -vt 0.671575 0.327451 -vt 0.671356 0.327477 -vt 0.671982 0.327480 -vt 0.644693 0.340192 -vt 0.644385 0.340134 -vt 0.644557 0.340283 -vt 0.644700 0.340269 -vt 0.647509 0.341099 -vt 0.649593 0.340718 -vt 0.646875 0.340713 -vt 0.646368 0.340876 -vt 0.650439 0.347369 -vt 0.650243 0.347332 -vt 0.648903 0.346602 -vt 0.648902 0.346797 -vt 0.650571 0.346464 -vt 0.653087 0.342196 -vt 0.653087 0.342119 -vt 0.652263 0.341965 -vt 0.653089 0.340724 -vt 0.649942 0.340719 -vt 0.652265 0.340960 -vt 0.652957 0.336625 -vt 0.652061 0.336628 -vt 0.652064 0.337317 -vt 0.653168 0.336809 -vt 0.656866 0.340895 -vt 0.655346 0.340806 -vt 0.653970 0.340890 -vt 0.671253 0.338233 -vt 0.671472 0.338233 -vt 0.671470 0.337557 -vt 0.652046 0.346806 -vt 0.665497 0.338599 -vt 0.665663 0.338599 -vt 0.665663 0.338404 -vt 0.647507 0.341802 -vt 0.653089 0.340802 -vt 0.669772 0.341914 -vt 0.669364 0.341701 -vt 0.670181 0.341704 -vt 0.650766 0.346427 -vt 0.652276 0.346675 -vt 0.652808 0.346599 -vt 0.652882 0.346653 -vt 0.666531 0.348446 -vt 0.666675 0.348446 -vt 0.666674 0.348692 -vt 0.671544 0.335436 -vt 0.671154 0.335438 -vt 0.671154 0.335634 -vt 0.671512 0.335403 -vt 0.671191 0.335404 -vt 0.653306 0.342119 -vt 0.653308 0.340802 -vt 0.653969 0.341610 -vt 0.653969 0.341314 -vt 0.657096 0.340687 -vt 0.657251 0.340835 -vt 0.657446 0.340872 -vt 0.666338 0.341178 -vt 0.666344 0.341136 -vt 0.666141 0.341132 -vt 0.671982 0.327709 -vt 0.671281 0.327706 -vt 0.671277 0.328466 -vt 0.671424 0.328610 -vt 0.671831 0.328612 -vt 0.671979 0.328470 -vt 0.645308 0.342022 -vt 0.646366 0.342024 -vt 0.645309 0.341798 -vt 0.654435 0.342121 -vt 0.654435 0.342199 -vt 0.654781 0.342199 -vt 0.671983 0.325746 -vt 0.671796 0.325132 -vt 0.671793 0.326094 -vt 0.671982 0.325897 -vt 0.672220 0.326096 -vt 0.671777 0.334214 -vt 0.671776 0.334827 -vt 0.672010 0.334827 -vt 0.653873 0.340803 -vt 0.653654 0.340803 -vt 0.655346 0.340729 -vt 0.655001 0.340728 -vt 0.655001 0.340805 -vt 0.653654 0.340725 -vt 0.653308 0.340725 -vt 0.671788 0.332239 -vt 0.671789 0.331098 -vt 0.671711 0.331172 -vt 0.652553 0.348753 -vt 0.652553 0.349106 -vt 0.652681 0.349106 -vt 0.672085 0.331172 -vt 0.672007 0.331098 -vt 0.672006 0.332240 -vt 0.656870 0.341615 -vt 0.668193 0.332067 -vt 0.669156 0.332072 -vt 0.669169 0.329174 -vt 0.671795 0.322170 -vt 0.671872 0.322170 -vt 0.671867 0.321028 -vt 0.672090 0.322169 -vt 0.672168 0.322168 -vt 0.672163 0.321101 -vt 0.668481 0.329171 -vt 0.668206 0.329389 -vt 0.666338 0.332059 -vt 0.666535 0.332060 -vt 0.666549 0.329162 -vt 0.652436 0.348631 -vt 0.652336 0.348753 -vt 0.652553 0.348753 -vt 0.671870 0.322396 -vt 0.671793 0.322471 -vt 0.671795 0.323538 -vt 0.670269 0.345604 -vt 0.670270 0.345453 -vt 0.670505 0.345454 -vt 0.672166 0.322470 -vt 0.672088 0.322396 -vt 0.672090 0.323538 -vt 0.645310 0.341095 -vt 0.667770 0.332065 -vt 0.668193 0.332067 -vt 0.668206 0.329389 -vt 0.666535 0.332060 -vt 0.666770 0.332061 -vt 0.666784 0.329163 -vt 0.671056 0.346443 -vt 0.670979 0.346517 -vt 0.670974 0.347585 -vt 0.670666 0.345804 -vt 0.670503 0.345803 -vt 0.670504 0.345605 -vt 0.671270 0.347586 -vt 0.671347 0.347586 -vt 0.671352 0.346519 -vt 0.667782 0.329387 -vt 0.667509 0.329166 -vt 0.667770 0.332065 -vt 0.666770 0.332061 -vt 0.666922 0.332062 -vt 0.666935 0.329164 -vt 0.671361 0.326336 -vt 0.671283 0.326410 -vt 0.671279 0.327477 -vt 0.667157 0.332063 -vt 0.666922 0.332062 -vt 0.667157 0.332063 -vt 0.667170 0.329165 -vt 0.657272 0.345497 -vt 0.657273 0.344680 -vt 0.657191 0.344600 -vt 0.671575 0.327451 -vt 0.671652 0.327452 -vt 0.671656 0.326411 -vt 0.651028 0.346127 -vt 0.650922 0.346278 -vt 0.655755 0.344598 -vt 0.655674 0.344677 -vt 0.655673 0.345494 -vt 0.645310 0.340874 -vt 0.654782 0.340805 -vt 0.653652 0.342120 -vt 0.653968 0.342037 -vt 0.653873 0.340726 -vt 0.654218 0.340804 -vt 0.654219 0.340726 -vt 0.654437 0.340804 -vt 0.654782 0.340727 -vt 0.672010 0.334979 -vt 0.671775 0.334978 -vt 0.671775 0.335176 -vt 0.672199 0.335177 -vt 0.672223 0.325134 -vt 0.653871 0.342120 -vt 0.655345 0.342200 -vt 0.655345 0.342122 -vt 0.655000 0.342122 -vt 0.653652 0.342197 -vt 0.656756 0.344189 -vt 0.656833 0.344189 -vt 0.656833 0.344045 -vt 0.671877 0.347120 -vt 0.671954 0.347119 -vt 0.671951 0.346443 -vt 0.671581 0.347121 -vt 0.671659 0.347121 -vt 0.671655 0.346445 -vt 0.656460 0.344190 -vt 0.656538 0.344190 -vt 0.656537 0.343971 -vt 0.671606 0.348023 -vt 0.671952 0.348024 -vt 0.671954 0.347348 -vt 0.667304 0.332303 -vt 0.667016 0.335199 -vt 0.666328 0.335196 -vt 0.671469 0.337246 -vt 0.671546 0.337245 -vt 0.671544 0.337101 -vt 0.671472 0.338233 -vt 0.671549 0.338232 -vt 0.671547 0.337557 -vt 0.667291 0.334981 -vt 0.669169 0.332311 -vt 0.669156 0.335209 -vt 0.668958 0.335208 -vt 0.652436 0.349228 -vt 0.652591 0.349228 -vt 0.652553 0.349106 -vt 0.672007 0.329730 -vt 0.672007 0.330872 -vt 0.672084 0.330872 -vt 0.669596 0.345601 -vt 0.669357 0.345600 -vt 0.669358 0.345449 -vt 0.671711 0.329804 -vt 0.671711 0.330872 -vt 0.671788 0.330872 -vt 0.667731 0.332305 -vt 0.667718 0.334983 -vt 0.667291 0.334981 -vt 0.668972 0.332310 -vt 0.668958 0.335208 -vt 0.668720 0.335207 -vt 0.672007 0.332466 -vt 0.672006 0.333607 -vt 0.672083 0.333608 -vt 0.669356 0.345798 -vt 0.669196 0.345797 -vt 0.671787 0.333607 -vt 0.671789 0.332465 -vt 0.671711 0.332540 -vt 0.667991 0.335204 -vt 0.667718 0.334983 -vt 0.667731 0.332305 -vt 0.668734 0.332309 -vt 0.668720 0.335207 -vt 0.668569 0.335206 -vt 0.654781 0.342122 -vt 0.656868 0.342041 -vt 0.672089 0.323764 -vt 0.672090 0.324906 -vt 0.672168 0.324906 -vt 0.668344 0.332307 -vt 0.668331 0.335205 -vt 0.668582 0.332308 -vt 0.668569 0.335206 -vt 0.668331 0.335205 -vt 0.656869 0.342187 -vt 0.655687 0.342123 -vt 0.653870 0.342198 -vt 0.654216 0.342198 -vt 0.671872 0.324906 -vt 0.671870 0.323765 -vt 0.671793 0.323839 -vt 0.654216 0.342121 -vt 0.671659 0.347121 -vt 0.671877 0.347120 -vt 0.671874 0.346444 -vt 0.644214 0.339986 -vt 0.644362 0.339846 -vt 0.644193 0.339756 -vt 0.644615 0.340046 -vt 0.644334 0.339545 -vt 0.644175 0.339559 -vt 0.644193 0.339756 -vt 0.661765 0.343274 -vt 0.661774 0.343476 -vt 0.661938 0.343468 -vt 0.644761 0.345897 -vt 0.644761 0.345737 -vt 0.644408 0.345736 -vt 0.661774 0.343476 -vt 0.661779 0.343575 -vt 0.661938 0.343468 -vt 0.661664 0.343724 -vt 0.661914 0.343724 -vt 0.666088 0.341451 -vt 0.652408 0.344048 -vt 0.653077 0.344280 -vt 0.652920 0.344378 -vt 0.644352 0.339741 -vt 0.665748 0.341793 -vt 0.665706 0.341738 -vt 0.663936 0.343063 -vt 0.644408 0.345896 -vt 0.644302 0.345896 -vt 0.644079 0.346130 -vt 0.644077 0.347117 -vt 0.645080 0.347119 -vt 0.645082 0.346132 -vt 0.667545 0.348453 -vt 0.667839 0.348708 -vt 0.667838 0.348452 -vt 0.671547 0.336174 -vt 0.671546 0.336029 -vt 0.671385 0.336030 -vt 0.645949 0.348760 -vt 0.645922 0.348760 -vt 0.645922 0.348928 -vt 0.645519 0.348898 -vt 0.645812 0.348899 -vt 0.645813 0.348759 -vt 0.645520 0.348758 -vt 0.645812 0.348899 -vt 0.645839 0.348927 -vt 0.645839 0.348759 -vt 0.665999 0.338618 -vt 0.666027 0.338619 -vt 0.666027 0.338335 -vt 0.645922 0.348760 -vt 0.645839 0.348759 -vt 0.645839 0.348927 -vt 0.671398 0.339640 -vt 0.671245 0.339741 -vt 0.671571 0.340011 -vt 0.671500 0.339488 -vt 0.671536 0.339308 -vt 0.671066 0.339776 -vt 0.669561 0.343988 -vt 0.669414 0.343844 -vt 0.670116 0.343846 -vt 0.669417 0.343083 -vt 0.670343 0.343087 -vt 0.670119 0.343086 -vt 0.670101 0.342715 -vt 0.670239 0.342384 -vt 0.670344 0.341862 -vt 0.670103 0.342052 -vt 0.669440 0.342050 -vt 0.669200 0.341858 -vt 0.669301 0.342381 -vt 0.669196 0.343083 -vt 0.669438 0.342713 -vt 0.669338 0.342202 -vt 0.669592 0.341949 -vt 0.670204 0.342205 -vt 0.670203 0.342563 -vt 0.669948 0.342816 -vt 0.669769 0.342851 -vt 0.669589 0.342815 -vt 0.669336 0.342560 -vt 0.669968 0.343989 -vt 0.669951 0.341950 -vt 0.665497 0.338404 -vt 0.665149 0.338488 -vt 0.665150 0.338600 -vt 0.664984 0.338600 -vt 0.665150 0.338600 -vt 0.665149 0.338488 -vt 0.665458 0.338243 -vt 0.665110 0.338327 -vt 0.665149 0.338488 -vt 0.670113 0.347891 -vt 0.670113 0.347813 -vt 0.669767 0.347812 -vt 0.671352 0.347895 -vt 0.671352 0.347817 -vt 0.670331 0.347814 -vt 0.669766 0.348137 -vt 0.669766 0.348214 -vt 0.670112 0.348215 -vt 0.669766 0.348137 -vt 0.644857 0.345897 -vt 0.666027 0.338619 -vt 0.666110 0.338571 -vt 0.666110 0.338335 -vt 0.666316 0.338619 -vt 0.666233 0.338571 -vt 0.666316 0.338647 -vt 0.666316 0.338619 -vt 0.666027 0.338619 -vt 0.646157 0.348929 -vt 0.646158 0.348622 -vt 0.671549 0.336766 -vt 0.671548 0.336570 -vt 0.671158 0.336572 -vt 0.671517 0.336801 -vt 0.671159 0.336768 -vt 0.668127 0.348451 -vt 0.666344 0.338619 -vt 0.666344 0.338363 -vt 0.666317 0.338336 -vt 0.666317 0.338336 -vt 0.666234 0.338336 -vt 0.646280 0.348929 -vt 0.646516 0.348930 -vt 0.646490 0.348762 -vt 0.646626 0.348903 -vt 0.646626 0.348763 -vt 0.646599 0.348763 -vt 0.646517 0.348762 -vt 0.646516 0.348930 -vt 0.646599 0.348931 -vt 0.646517 0.348762 -vt 0.646626 0.348903 -vt 0.646918 0.348904 -vt 0.646626 0.348763 -vt 0.646919 0.348764 -vt 0.665884 0.348220 -vt 0.666228 0.348025 -vt 0.666399 0.348073 -vt 0.667547 0.348906 -vt 0.666529 0.348691 -vt 0.666756 0.348819 -vt 0.669247 0.347752 -vt 0.669249 0.348205 -vt 0.668969 0.347962 -vt 0.668904 0.348013 -vt 0.668734 0.348063 -vt 0.666446 0.348817 -vt 0.669107 0.347753 -vt 0.651009 0.348764 -vt 0.651047 0.348947 -vt 0.651082 0.348764 -vt 0.650945 0.349104 -vt 0.650893 0.349053 -vt 0.651150 0.348791 -vt 0.651202 0.348842 -vt 0.651013 0.349131 -vt 0.651231 0.348909 -vt 0.651231 0.348982 -vt 0.651086 0.349131 -vt 0.651204 0.349050 -vt 0.651153 0.349102 -vt 0.650942 0.348793 -vt 0.650864 0.348986 -vt 0.650891 0.348845 -vt 0.650864 0.348913 -vt 0.672001 0.336533 -vt 0.671992 0.338283 -vt 0.672197 0.338284 -vt 0.672049 0.338339 -vt 0.672140 0.338340 -vt 0.665496 0.328592 -vt 0.665496 0.328721 -vt 0.665700 0.328722 -vt 0.649982 0.347032 -vt 0.671351 0.348142 -vt 0.671352 0.347895 -vt 0.655858 0.344144 -vt 0.654727 0.340476 -vt 0.654996 0.339627 -vt 0.665497 0.338404 -vt 0.671545 0.335632 -vt 0.672221 0.325898 -vt 0.672200 0.334214 -vt 0.671711 0.332239 -vt 0.652681 0.348753 -vt 0.672084 0.332240 -vt 0.656871 0.341319 -vt 0.671790 0.321103 -vt 0.672085 0.321027 -vt 0.666351 0.329161 -vt 0.652591 0.348631 -vt 0.671872 0.323538 -vt 0.672168 0.323538 -vt 0.667782 0.329387 -vt 0.666549 0.329162 -vt 0.671051 0.347585 -vt 0.671275 0.346444 -vt 0.666784 0.329163 -vt 0.671356 0.327477 -vt 0.667170 0.329165 -vt 0.666935 0.329164 -vt 0.657189 0.345576 -vt 0.671579 0.326337 -vt 0.655754 0.345574 -vt 0.654437 0.340727 -vt 0.672221 0.325747 -vt 0.654999 0.342199 -vt 0.653306 0.342197 -vt 0.656755 0.343970 -vt 0.671874 0.346444 -vt 0.671578 0.346445 -vt 0.656460 0.344046 -vt 0.671609 0.347347 -vt 0.666342 0.332298 -vt 0.671466 0.337028 -vt 0.671470 0.337557 -vt 0.646872 0.342185 -vt 0.668972 0.332310 -vt 0.652336 0.349106 -vt 0.672085 0.329805 -vt 0.669596 0.345450 -vt 0.671789 0.329730 -vt 0.667304 0.332303 -vt 0.668734 0.332309 -vt 0.672085 0.332540 -vt 0.671710 0.333607 -vt 0.668582 0.332308 -vt 0.672166 0.323838 -vt 0.668344 0.332307 -vt 0.655687 0.342193 -vt 0.671795 0.324906 -vt 0.652075 0.340487 -vt 0.653379 0.340482 -vt 0.652073 0.339798 -vt 0.671655 0.346445 -vt 0.644352 0.339741 -vt 0.661929 0.343266 -vt 0.666317 0.341361 -vt 0.663978 0.343119 -vt 0.671386 0.336174 -vt 0.645813 0.348759 -vt 0.665999 0.338362 -vt 0.645922 0.348928 -vt 0.665497 0.338599 -vt 0.664984 0.338489 -vt 0.665497 0.338404 -vt 0.669767 0.347890 -vt 0.670331 0.347891 -vt 0.670112 0.348138 -vt 0.669767 0.347890 -vt 0.666027 0.338335 -vt 0.666027 0.338646 -vt 0.671197 0.336802 -vt 0.666316 0.338619 -vt 0.646282 0.348623 -vt 0.646599 0.348931 -vt 0.646599 0.348763 -vt 0.672205 0.336534 -vt 0.665701 0.328592 -vt 0.645130 0.340230 -vt 0.645115 0.340070 -vt 0.644939 0.340169 -vt 0.644925 0.340018 -vt 0.653589 0.346722 -vt 0.653589 0.346671 -vt 0.654138 0.346662 -vt 0.665807 0.340688 -vt 0.656870 0.339398 -vt 0.655850 0.339403 -vt 0.655851 0.339547 -vt 0.669550 0.348136 -vt 0.669549 0.347891 -vt 0.669475 0.347964 -vt 0.672007 0.330872 -vt 0.672007 0.329730 -vt 0.671789 0.329730 -vt 0.654722 0.339409 -vt 0.671579 0.326337 -vt 0.671361 0.326336 -vt 0.653268 0.346667 -vt 0.645840 0.346789 -vt 0.648555 0.346796 -vt 0.648555 0.346685 -vt 0.653368 0.337690 -vt 0.653364 0.336650 -vt 0.645841 0.346452 -vt 0.655971 0.340807 -vt 0.656866 0.340731 -vt 0.655971 0.340730 -vt 0.671250 0.337251 -vt 0.671173 0.337252 -vt 0.671174 0.337355 -vt 0.671175 0.337452 -vt 0.671176 0.337555 -vt 0.671254 0.337557 -vt 0.670598 0.339307 -vt 0.670569 0.339021 -vt 0.670567 0.340009 -vt 0.668033 0.348210 -vt 0.668032 0.348119 -vt 0.671272 0.335785 -vt 0.671385 0.336030 -vt 0.671546 0.336029 -vt 0.671545 0.335632 -vt 0.671154 0.335634 -vt 0.654284 0.346628 -vt 0.654463 0.346686 -vt 0.654139 0.346714 -vt 0.343293 0.494352 -vt 0.403663 0.495033 -vt 0.424011 0.491967 -vt 0.665656 0.340670 -vt 0.665851 0.340483 -vt 0.665756 0.340431 -vt 0.664125 0.338873 -vt 0.663934 0.339073 -vt 0.665576 0.340641 -vt 0.654003 0.344111 -vt 0.654328 0.344094 -vt 0.654215 0.344297 -vt 0.405218 0.475819 -vt 0.311194 0.474745 -vt 0.651779 0.345198 -vt 0.651935 0.345050 -vt 0.652048 0.344354 -vt 0.651583 0.345233 -vt 0.662656 0.340850 -vt 0.659345 0.340602 -vt 0.659296 0.340678 -vt 0.424375 0.496265 -vt 0.345807 0.496601 -vt 0.345855 0.507785 -vt 0.646508 0.344057 -vt 0.649684 0.344093 -vt 0.649669 0.344043 -vt 0.669763 0.344216 -vt 0.669762 0.344374 -vt 0.669531 0.344215 -vt 0.665873 0.340511 -vt 0.669360 0.345109 -vt 0.665821 0.341739 -vt 0.672006 0.333607 -vt 0.672007 0.332466 -vt 0.671789 0.332465 -vt 0.654433 0.338957 -vt 0.656867 0.338944 -vt 0.656669 0.338713 -vt 0.656667 0.338361 -vt 0.654429 0.338141 -vt 0.656864 0.338360 -vt 0.656863 0.338096 -vt 0.653400 0.344098 -vt 0.653390 0.344296 -vt 0.652050 0.344171 -vt 0.649802 0.344145 -vt 0.656863 0.337912 -vt 0.654402 0.338030 -vt 0.656866 0.338712 -vt 0.655067 0.339300 -vt 0.655286 0.339299 -vt 0.654407 0.339067 -vt 0.655849 0.339296 -vt 0.656869 0.339171 -vt 0.655631 0.339297 -vt 0.652632 0.338147 -vt 0.652938 0.338146 -vt 0.652967 0.338035 -vt 0.662503 0.338903 -vt 0.662477 0.339733 -vt 0.662538 0.339781 -vt 0.411117 0.477267 -vt 0.411370 0.492239 -vt 0.424354 0.492076 -vt 0.655278 0.336619 -vt 0.655279 0.337686 -vt 0.655624 0.337686 -vt 0.662902 0.338878 -vt 0.662914 0.339780 -vt 0.662981 0.339739 -vt 0.645309 0.346450 -vt 0.645308 0.346788 -vt 0.666773 0.346076 -vt 0.666773 0.346282 -vt 0.668969 0.346283 -vt 0.652633 0.338379 -vt 0.652788 0.338378 -vt 0.302821 0.490584 -vt 0.410043 0.495106 -vt 0.652336 0.349106 -vt 0.652553 0.349106 -vt 0.652553 0.348753 -vt 0.661163 0.348102 -vt 0.661163 0.347939 -vt 0.655926 0.347949 -vt 0.424262 0.469977 -vt 0.405287 0.469761 -vt 0.671872 0.323538 -vt 0.672090 0.323538 -vt 0.672088 0.322396 -vt 0.661578 0.348101 -vt 0.661577 0.347938 -vt 0.661362 0.347939 -vt 0.661362 0.348102 -vt 0.662153 0.348100 -vt 0.662310 0.347937 -vt 0.661761 0.347938 -vt 0.670672 0.344629 -vt 0.670508 0.344764 -vt 0.670115 0.344376 -vt 0.669789 0.344760 -vt 0.652789 0.338731 -vt 0.652941 0.338962 -vt 0.670084 0.344762 -vt 0.670082 0.345113 -vt 0.670506 0.345115 -vt 0.670670 0.345116 -vt 0.652372 0.337694 -vt 0.670348 0.344219 -vt 0.655279 0.337793 -vt 0.656863 0.337685 -vt 0.655843 0.337686 -vt 0.655843 0.337793 -vt 0.655755 0.344598 -vt 0.655754 0.345574 -vt 0.657189 0.345576 -vt 0.653587 0.337690 -vt 0.653932 0.337689 -vt 0.653928 0.336621 -vt 0.654151 0.337688 -vt 0.654496 0.337687 -vt 0.654493 0.336620 -vt 0.671872 0.322170 -vt 0.672090 0.322169 -vt 0.672085 0.321027 -vt 0.652049 0.345739 -vt 0.651029 0.345736 -vt 0.662560 0.338873 -vt 0.666774 0.345670 -vt 0.668969 0.346078 -vt 0.666773 0.347043 -vt 0.668969 0.347044 -vt 0.411093 0.495895 -vt 0.423965 0.496042 -vt 0.646451 0.344107 -vt 0.661762 0.348101 -vt 0.671788 0.332239 -vt 0.672006 0.332240 -vt 0.672007 0.331098 -vt 0.670079 0.345801 -vt 0.669784 0.345800 -vt 0.669787 0.345111 -vt 0.670116 0.344218 -vt 0.671051 0.347585 -vt 0.671270 0.347586 -vt 0.671275 0.346444 -vt 0.654713 0.336619 -vt 0.654715 0.337686 -vt 0.655060 0.337686 -vt 0.655624 0.337793 -vt 0.653933 0.337796 -vt 0.653587 0.337797 -vt 0.653369 0.337798 -vt 0.654151 0.337795 -vt 0.655060 0.337793 -vt 0.654715 0.337794 -vt 0.656181 0.344310 -vt 0.655958 0.344139 -vt 0.655911 0.344201 -vt 0.652635 0.338964 -vt 0.652378 0.339418 -vt 0.652971 0.339073 -vt 0.655170 0.347691 -vt 0.655169 0.347353 -vt 0.653593 0.339306 -vt 0.653939 0.339305 -vt 0.653375 0.339415 -vt 0.653374 0.339307 -vt 0.655631 0.339404 -vt 0.655286 0.339406 -vt 0.655287 0.339550 -vt 0.655701 0.347689 -vt 0.668970 0.345671 -vt 0.668970 0.345465 -vt 0.652634 0.338732 -vt 0.403381 0.492993 -vt 0.410153 0.492980 -vt 0.671176 0.338233 -vt 0.671253 0.338233 -vt 0.671248 0.337030 -vt 0.645543 0.340191 -vt 0.650254 0.339752 -vt 0.650742 0.339545 -vt 0.405500 0.512252 -vt 0.405526 0.518299 -vt 0.655068 0.339554 -vt 0.655068 0.339408 -vt 0.645344 0.340210 -vt 0.645329 0.340050 -vt 0.645528 0.340032 -vt 0.653939 0.339413 -vt 0.669362 0.344758 -vt 0.669202 0.344621 -vt 0.654722 0.339302 -vt 0.669200 0.345108 -vt 0.653593 0.339414 -vt 0.653597 0.340482 -vt 0.653943 0.340480 -vt 0.654158 0.339412 -vt 0.654162 0.340479 -vt 0.654508 0.340478 -vt 0.654157 0.339304 -vt 0.654504 0.339410 -vt 0.654503 0.339303 -vt 0.666774 0.345464 -vt 0.668970 0.344705 -vt 0.672090 0.324906 -vt 0.672089 0.323764 -vt 0.671870 0.323765 -vt 0.659341 0.339758 -vt 0.659342 0.339807 -vt 0.644946 0.340247 -vt 0.656755 0.343970 -vt 0.656537 0.343971 -vt 0.656538 0.344190 -vt 0.652042 0.344901 -vt 0.645109 0.340001 -vt 0.665779 0.341683 -vt 0.665706 0.341738 -vt 0.661666 0.343279 -vt 0.661676 0.343481 -vt 0.661774 0.343476 -vt 0.653725 0.344114 -vt 0.653832 0.344119 -vt 0.653822 0.344318 -vt 0.654014 0.344308 -vt 0.654333 0.346558 -vt 0.655311 0.344043 -vt 0.655447 0.346648 -vt 0.661438 0.342326 -vt 0.661436 0.342143 -vt 0.657096 0.342143 -vt 0.661436 0.342509 -vt 0.657096 0.342326 -vt 0.661430 0.342692 -vt 0.657096 0.342509 -vt 0.661427 0.342875 -vt 0.657096 0.342692 -vt 0.666250 0.348901 -vt 0.666250 0.348816 -vt 0.657096 0.342875 -vt 0.657096 0.343058 -vt 0.661427 0.343058 -vt 0.657096 0.343240 -vt 0.661427 0.343240 -vt 0.666203 0.348900 -vt 0.666204 0.348816 -vt 0.665882 0.348899 -vt 0.665883 0.348814 -vt 0.661427 0.343423 -vt 0.657096 0.343423 -vt 0.657096 0.343606 -vt 0.661427 0.343606 -vt 0.657096 0.343789 -vt 0.661427 0.343789 -vt 0.657096 0.343972 -vt 0.661427 0.343972 -vt 0.657096 0.344155 -vt 0.661427 0.344155 -vt 0.657096 0.344338 -vt 0.661427 0.344338 -vt 0.657096 0.341411 -vt 0.657096 0.341594 -vt 0.661427 0.341594 -vt 0.657096 0.341777 -vt 0.661430 0.341777 -vt 0.649012 0.349171 -vt 0.649012 0.349086 -vt 0.648961 0.349086 -vt 0.661433 0.341960 -vt 0.657096 0.341960 -vt 0.649208 0.349086 -vt 0.649714 0.349170 -vt 0.649518 0.349086 -vt 0.649435 0.348914 -vt 0.649290 0.348914 -vt 0.649435 0.348644 -vt 0.649290 0.348644 -vt 0.667918 0.348211 -vt 0.667216 0.348214 -vt 0.667216 0.348127 -vt 0.667101 0.348214 -vt 0.667100 0.348123 -vt 0.646282 0.348623 -vt 0.646158 0.348622 -vt 0.646157 0.348929 -vt 0.656458 0.342453 -vt 0.656457 0.342704 -vt 0.656541 0.342453 -vt 0.656833 0.342705 -vt 0.656833 0.342454 -vt 0.656832 0.342788 -vt 0.655958 0.342785 -vt 0.655957 0.342962 -vt 0.656832 0.342965 -vt 0.656041 0.343742 -vt 0.656743 0.343745 -vt 0.656829 0.343669 -vt 0.655955 0.343666 -vt 0.653267 0.346719 -vt 0.670795 0.338787 -vt 0.670736 0.338975 -vt 0.671068 0.338839 -vt 0.671350 0.338788 -vt 0.671399 0.338977 -vt 0.671573 0.339023 -vt 0.670633 0.339486 -vt 0.670735 0.339638 -vt 0.670887 0.339740 -vt 0.671500 0.339129 -vt 0.671247 0.338875 -vt 0.670888 0.338874 -vt 0.670634 0.339127 -vt 0.671253 0.337451 -vt 0.671248 0.337030 -vt 0.671250 0.337251 -vt 0.671469 0.337246 -vt 0.656541 0.342427 -vt 0.656458 0.342426 -vt 0.671274 0.336420 -vt 0.671548 0.336419 -vt 0.671547 0.336174 -vt 0.671548 0.336570 -vt 0.666952 0.348820 -vt 0.666952 0.348904 -vt 0.666998 0.348905 -vt 0.667319 0.348906 -vt 0.666998 0.348820 -vt 0.649765 0.349170 -vt 0.649765 0.349086 -vt 0.649714 0.349086 -vt 0.656334 0.342703 -vt 0.655958 0.342702 -vt 0.667918 0.348124 -vt 0.656252 0.342426 -vt 0.656251 0.342452 -vt 0.656334 0.342453 -vt 0.654496 0.337794 -vt 0.651009 0.348764 -vt 0.651082 0.348764 -vt 0.651103 0.348667 -vt 0.651150 0.348791 -vt 0.651206 0.348710 -vt 0.651013 0.349131 -vt 0.650945 0.349104 -vt 0.650889 0.349185 -vt 0.651202 0.348842 -vt 0.651285 0.348789 -vt 0.651231 0.348909 -vt 0.651328 0.348892 -vt 0.651086 0.349131 -vt 0.650992 0.349228 -vt 0.651231 0.348982 -vt 0.651328 0.349003 -vt 0.651204 0.349050 -vt 0.651285 0.349106 -vt 0.651153 0.349102 -vt 0.651103 0.349228 -vt 0.651206 0.349185 -vt 0.650864 0.348986 -vt 0.650864 0.348913 -vt 0.650767 0.348892 -vt 0.650891 0.348845 -vt 0.650942 0.348793 -vt 0.650889 0.348710 -vt 0.650893 0.349053 -vt 0.650767 0.349003 -vt 0.650810 0.349106 -vt 0.650992 0.348667 -vt 0.650810 0.348789 -vt 0.663495 0.328582 -vt 0.663495 0.328711 -vt 0.663575 0.328712 -vt 0.663666 0.328712 -vt 0.663667 0.328583 -vt 0.663575 0.328583 -vt 0.663746 0.328583 -vt 0.663746 0.328713 -vt 0.665496 0.328721 -vt 0.661745 0.328574 -vt 0.661745 0.328703 -vt 0.656871 0.339542 -vt 0.669475 0.348061 -vt 0.671788 0.330872 -vt 0.671254 0.337557 -vt 0.671252 0.337354 -vt 0.671545 0.335784 -vt 0.671787 0.333607 -vt 0.424233 0.477149 -vt 0.655624 0.336619 -vt 0.662967 0.338908 -vt 0.652336 0.348753 -vt 0.656433 0.348111 -vt 0.671870 0.322396 -vt 0.657191 0.344600 -vt 0.653583 0.336623 -vt 0.654148 0.336621 -vt 0.671867 0.321028 -vt 0.671789 0.331098 -vt 0.671056 0.346443 -vt 0.655059 0.336619 -vt 0.656134 0.344371 -vt 0.655632 0.339548 -vt 0.655699 0.347352 -vt 0.659343 0.339981 -vt 0.671171 0.337105 -vt 0.424469 0.518218 -vt 0.666774 0.344703 -vt 0.671872 0.324906 -vt 0.656756 0.344189 -vt 0.665748 0.341793 -vt 0.661765 0.343274 -vt 0.653715 0.344312 -vt 0.659330 0.338958 -vt 0.661427 0.341411 -vt 0.648961 0.349171 -vt 0.646280 0.348929 -vt 0.671466 0.337028 -vt 0.671386 0.336174 -vt 0.671158 0.336572 -vt 0.667319 0.348822 -vt 0.656334 0.342426 -vt 0.655959 0.342451 -vt 0.665496 0.328592 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 1.0000 -0.0001 -vn -1.0000 0.0000 0.0005 -vn -1.0000 0.0000 0.0002 -vn 0.0000 -0.7793 -0.6266 -vn 0.0000 -1.0000 0.0000 -vn 1.0000 0.0001 -0.0001 -vn 1.0000 -0.0005 -0.0001 -vn 0.0000 0.0000 1.0000 -vn 0.0000 1.0000 0.0000 -vn 0.0000 0.2954 -0.9554 -vn 1.0000 0.0000 -0.0001 -vn -1.0000 0.0000 -0.0001 -vn 0.0000 -1.0000 -0.0001 -vn -1.0000 0.0001 -0.0001 -vn 0.0000 0.3579 0.9338 -vn 0.0000 0.3242 -0.9460 -vn 0.0000 -0.9724 -0.2331 -vn 0.0000 0.6488 0.7610 -vn -0.0000 0.6112 0.7915 -vn -0.0000 0.3594 0.9332 -vn -0.0000 0.3979 0.9174 -vn 0.3944 -0.9189 0.0000 -vn -0.2584 -0.9660 0.0000 -vn -0.0544 0.0347 -0.9979 -vn -0.9202 0.3915 0.0000 -vn -0.9202 0.3914 0.0000 -vn -1.0000 -0.0000 -0.0023 -vn -1.0000 -0.0001 -0.0070 -vn -0.7948 0.6069 -0.0000 -vn -0.8837 0.4681 0.0000 -vn -0.9815 0.1914 -0.0000 -vn 0.9202 0.3914 0.0000 -vn 0.7785 0.6277 -0.0000 -vn 0.8716 -0.4902 0.0001 -vn 0.9946 0.0000 0.1036 -vn 0.9501 0.3120 -0.0000 -vn 0.9922 0.0000 0.1244 -vn 0.0000 -0.9849 0.1730 -vn -0.0000 -0.8848 0.4659 -vn -0.0000 -0.5054 0.8629 -vn 0.0001 -0.2527 0.9675 -vn 0.0000 -0.3827 0.9239 -vn -0.0001 0.5055 0.8628 -vn -0.0151 0.3827 0.9237 -vn -0.0075 0.3820 0.9241 -vn -0.0098 -0.0134 -0.9999 -vn -0.0135 0.0030 -0.9999 -vn -0.0078 -0.0088 -0.9999 -vn -0.9112 -0.0000 0.4119 -vn 0.9588 0.2841 -0.0000 -vn 0.8386 0.5448 0.0000 -vn -0.8061 -0.3082 -0.5053 -vn -0.8143 -0.5805 -0.0013 -vn -0.5167 -0.8561 0.0000 -vn 0.6939 0.7201 -0.0000 -vn 0.4341 0.8971 0.0825 -vn 0.9006 0.4347 0.0001 -vn -0.6892 0.1308 -0.7126 -vn -0.9536 0.0970 -0.2850 -vn -0.9956 0.0942 -0.0000 -vn -0.8233 -0.5676 0.0006 -vn -0.9600 -0.2555 -0.1143 -vn -0.3908 -0.9205 0.0012 -vn -0.9277 -0.3732 0.0009 -vn -0.8233 -0.5676 0.0008 -vn 0.8835 0.4684 0.0000 -vn -0.9987 0.0005 0.0512 -vn -1.0000 0.0021 0.0000 -vn -0.9198 0.3923 -0.0002 -vn -0.8535 0.5212 0.0001 -vn 0.1239 0.9740 0.1894 -vn 0.4932 0.8699 -0.0000 -vn -0.0000 0.9039 -0.4278 -vn 0.0000 0.8020 -0.5974 -vn -0.2691 0.9151 -0.3004 -vn -0.1559 0.0685 -0.9854 -vn 0.0000 0.2196 -0.9756 -vn 0.0000 0.2883 -0.9575 -vn -0.8561 0.5167 0.0000 -vn -0.2979 0.9546 0.0000 -vn -0.2469 0.9690 0.0000 -vn 0.0544 0.9985 0.0027 -vn 0.3979 0.9174 0.0029 -vn 0.1126 0.9936 0.0000 -vn 0.4235 0.9059 0.0029 -vn 0.9695 -0.2451 0.0000 -vn 0.8716 -0.4902 0.0000 -vn 0.4233 0.9060 0.0029 -vn 0.6497 0.7602 -0.0000 -vn -0.8837 0.4680 0.0000 -vn -0.6017 0.7987 -0.0000 -vn -0.8561 0.5168 0.0000 -vn -0.6934 0.7206 0.0000 -vn -0.8186 0.5743 0.0000 -vn 0.2692 0.9150 -0.3004 -vn 0.1831 0.9831 -0.0000 -vn 0.5496 0.8354 0.0000 -vn -0.2622 0.9451 0.1950 -vn -0.4802 0.8651 0.1452 -vn 0.3027 0.9480 -0.0986 -vn -0.3083 0.9299 -0.2006 -vn -0.2470 0.9690 0.0000 -vn 0.3052 0.9313 -0.1990 -vn -0.3051 0.9470 -0.1000 -vn 0.9878 0.0000 0.1556 -vn 0.4972 -0.8676 0.0000 -vn 0.9665 -0.2568 0.0000 -vn 0.8580 -0.5136 0.0000 -vn 0.0000 0.9980 0.0635 -vn 0.0000 0.9919 0.1269 -vn 0.8837 0.4681 0.0000 -vn 0.0000 0.6730 0.7397 -vn 0.0000 0.6239 0.7815 -vn 0.0000 0.8374 0.5466 -vn 0.0000 0.9284 0.3717 -vn 0.0000 0.1989 0.9800 -vn 0.0033 0.6337 -0.7736 -vn 0.0022 0.6323 -0.7747 -vn -0.0001 0.7210 -0.6930 -vn -0.0000 0.6324 -0.7747 -vn -0.2468 0.9691 0.0000 -vn 0.0000 0.6332 -0.7740 -vn -0.0001 0.4392 -0.8984 -vn 0.0028 0.4406 -0.8977 -vn 0.8561 0.5169 -0.0001 -vn 0.2691 0.9151 -0.3004 -vn 0.7948 0.6069 -0.0000 -vn 0.8561 0.5168 0.0000 -vn 0.9660 0.2584 0.0000 -vn 0.8561 0.5168 -0.0002 -vn 0.8561 0.5168 -0.0001 -vn -0.3763 -0.9265 0.0000 -vn 0.2486 -0.9686 0.0000 -vn 0.3737 0.9275 -0.0000 -vn -0.0001 0.2196 -0.9756 -vn 0.8837 0.4680 0.0000 -vn 0.7785 0.6276 -0.0000 -vn 0.9202 0.3915 0.0000 -vn 0.0000 -0.7520 0.6592 -vn -0.8561 0.5169 -0.0001 -vn -0.6262 0.7797 -0.0000 -vn -0.9883 0.0000 0.1528 -vn -0.9881 0.0006 0.1536 -vn -0.8580 -0.5136 -0.0000 -vn -0.0139 -0.0016 0.9999 -vn 0.0000 -0.0032 1.0000 -vn -0.9881 0.0014 0.1536 -vn 0.0000 0.9284 0.3716 -vn -0.0000 0.8374 0.5465 -vn -0.0022 0.6324 -0.7746 -vn -0.0027 0.6339 -0.7734 -vn -0.0015 0.4406 -0.8977 -vn -0.9660 0.2584 -0.0000 -vn -0.9665 -0.2568 -0.0000 -vn -0.3839 0.9234 0.0000 -vn -0.6994 0.7147 0.0000 -vn 0.0000 0.5725 0.8199 -vn 0.0000 0.5724 0.8200 -vn 0.0000 0.2878 -0.9577 -vn 0.0000 0.5513 -0.8343 -vn -0.3908 -0.9205 0.0007 -vn -0.3902 -0.9207 0.0000 -vn -0.9601 -0.2554 -0.1143 -vn -0.9472 -0.3207 0.0000 -vn -0.9978 0.0661 -0.0000 -vn -0.9978 -0.0662 0.0000 -vn -0.7523 -0.6588 -0.0000 -vn -0.8965 -0.4430 -0.0000 -vn -0.4430 -0.8965 0.0000 -vn -0.6588 -0.7523 0.0000 -vn -0.0661 -0.9978 0.0000 -vn -0.3207 -0.9472 0.0000 -vn 0.1802 -0.0001 0.9836 -vn 0.4855 -0.0001 0.8742 -vn 0.0662 -0.9978 0.0000 -vn 0.3827 -0.9239 0.0000 -vn 0.3828 -0.9238 0.0000 -vn 0.7071 -0.7071 0.0000 -vn 0.8510 -0.0001 0.5252 -vn 0.9649 0.0000 0.2626 -vn 0.9715 0.0000 -0.2369 -vn 0.8806 -0.0000 -0.4739 -vn 0.8965 -0.4430 -0.0000 -vn 0.9472 -0.3207 0.0000 -vn 0.9978 0.0662 -0.0000 -vn 0.9978 -0.0662 0.0000 -vn 0.8965 0.4430 -0.0000 -vn 0.9472 0.3207 0.0000 -vn 0.6588 0.7523 0.0000 -vn 0.7523 0.6588 0.0001 -vn 0.3207 0.9472 0.0000 -vn 0.4430 0.8965 0.0000 -vn -0.0662 0.9978 0.0000 -vn 0.0661 0.9978 0.0000 -vn -0.0661 0.9978 0.0000 -vn -0.3827 0.9239 0.0000 -vn -0.3829 0.9238 0.0000 -vn -0.7071 0.7071 0.0000 -vn 0.4068 0.0000 -0.9135 -vn -0.8965 0.4430 0.0000 -vn -0.9472 0.3207 0.0000 -vn 0.0000 0.2895 -0.9572 -vn -0.3241 -0.0000 -0.9460 -vn -0.0000 0.2399 -0.9708 -vn 0.0000 0.5962 -0.8028 -vn -0.0000 0.5087 -0.8609 -vn 0.0000 0.4166 -0.9091 -vn -0.2336 0.0000 0.9723 -vn 0.3531 0.0000 0.9356 -vn 0.9112 -0.0000 0.4119 -vn 0.0000 0.8520 0.5235 -vn -0.0003 0.7892 0.6142 -vn 0.0000 0.1917 0.9814 -vn -0.0000 0.7892 0.6142 -vn 0.0000 0.4287 0.9035 -vn 0.0000 0.6411 0.7674 -vn 0.0000 0.5534 0.8329 -vn 0.0000 0.8920 0.4521 -vn 0.0000 0.8459 0.5334 -vn 0.0000 0.9771 0.2126 -vn 0.0000 0.9896 0.1439 -vn 0.0000 0.9979 0.0648 -vn 0.0000 0.9977 0.0682 -vn 0.0000 0.9974 0.0716 -vn 0.9695 -0.2451 -0.0001 -vn -0.0111 0.0273 -0.9996 -vn -0.0194 0.0258 -0.9995 -vn -0.0030 0.0101 -0.9999 -vn 0.0000 0.0008 -1.0000 -vn -0.0005 0.0005 -1.0000 -vn -0.0009 -0.0000 -1.0000 -vn -0.0148 -0.0140 -0.9998 -vn -0.0127 -0.0131 -0.9998 -vn -0.0055 -0.0061 -1.0000 -vn -0.0004 -0.0004 -1.0000 -vn 0.0004 0.0004 -1.0000 -vn -0.0138 0.0348 -0.9993 -vn -0.0152 -0.0072 -0.9999 -vn 0.0000 0.2527 0.9675 -vn -0.9588 0.2841 -0.0000 -vn -0.8386 0.5448 0.0000 -vn -0.4855 0.0000 0.8742 -vn -0.2428 0.0000 0.9701 -vn -0.8510 0.0000 0.5252 -vn -0.9715 0.0001 -0.2369 -vn -0.9649 0.0000 0.2626 -vn -0.9715 0.0000 -0.2370 -vn -0.8806 -0.0000 -0.4739 -vn -0.4068 0.0000 -0.9135 -vn 0.0000 0.8521 0.5234 -vn -0.4670 -0.0000 0.8842 -vn -0.6588 0.7523 0.0000 -vn -0.7523 0.6588 0.0000 -vn -0.3207 0.9472 0.0000 -vn -0.4430 0.8965 0.0000 -vn 0.6588 -0.7523 0.0000 -vn 0.3207 -0.9472 0.0000 -vn 0.4430 -0.8965 0.0000 -vn 0.7523 -0.6588 0.0000 -vn 0.7523 0.6588 0.0000 -vn 0.9978 -0.0661 0.0000 -vn 0.9978 0.0661 0.0000 -vn -0.9978 -0.0661 0.0000 -vn 0.0661 -0.9978 0.0000 -vn -0.0001 -0.8629 -0.5054 -vn -0.0000 -0.9675 -0.2527 -vn -0.0001 -0.5054 -0.8629 -vn -0.0000 0.2527 -0.9675 -vn 0.0000 0.5054 -0.8629 -vn 0.0000 -0.2527 -0.9675 -vn 0.0000 0.9675 -0.2527 -vn 0.0001 0.8629 -0.5054 -vn -1.0000 0.0000 -0.0068 -vn -1.0000 0.0000 -0.0028 -vn 0.0000 -0.3821 0.9241 -vn 0.3738 0.9275 -0.0000 -vn 0.0001 0.7210 -0.6930 -vn 0.7948 0.6069 -0.0002 -vn -0.6262 0.7797 -0.0001 -vn 0.0000 -0.9849 0.1731 -vn -0.9987 0.0000 0.0512 -vn -1.0000 0.0026 0.0000 -vn 0.0662 0.9978 -0.0000 -vn 0.9715 0.0000 -0.2370 -s off -f 61/61/19 62/62/19 63/63/19 -f 64/64/20 65/65/20 66/66/20 -f 67/67/21 68/68/21 69/69/21 -f 70/70/21 71/71/21 72/72/21 -f 73/73/22 74/74/22 75/75/22 -f 67/67/23 76/76/24 77/77/23 -f 78/78/25 79/79/25 80/80/25 -f 81/81/26 82/82/26 83/83/26 -f 84/84/27 85/85/27 86/86/27 -f 81/81/26 83/83/26 87/87/26 -f 88/88/21 89/89/21 90/90/21 -f 91/91/28 92/92/28 93/93/28 -f 94/94/29 95/95/29 96/96/29 -f 96/96/29 97/97/29 94/94/29 -f 98/98/26 81/81/26 99/99/26 -f 100/100/26 101/101/26 98/98/26 -f 71/71/21 102/102/21 103/103/21 -f 104/104/19 105/105/19 106/106/19 -f 107/107/26 108/108/26 109/109/26 -f 110/110/26 111/111/26 112/112/26 -f 100/100/26 98/98/26 99/99/26 -f 113/113/19 114/114/19 115/115/19 -f 115/115/19 116/116/19 113/113/19 -f 117/117/26 118/118/26 119/119/26 -f 120/120/21 121/121/21 122/122/21 -f 105/105/19 123/123/19 106/106/19 -f 124/124/29 125/125/29 126/126/29 -f 111/111/26 87/87/26 112/112/26 -f 83/83/26 112/112/26 87/87/26 -f 98/98/26 127/127/26 81/81/26 -f 112/112/26 128/128/26 110/110/26 -f 129/129/29 130/130/29 131/131/29 -f 132/132/19 106/106/19 123/123/19 -f 133/133/19 134/134/19 135/135/19 -f 136/136/29 137/137/29 138/138/29 -f 139/139/30 140/140/30 141/141/30 -f 142/142/30 143/143/30 140/140/30 -f 112/112/26 109/109/26 108/108/26 -f 144/144/26 145/145/26 128/128/26 -f 146/146/26 147/147/26 145/145/26 -f 148/148/21 149/149/21 150/150/21 -f 151/151/20 152/152/20 153/153/20 -f 154/154/20 155/155/20 156/156/20 -f 157/157/20 158/158/20 159/159/20 -f 160/160/26 161/161/26 162/162/26 -f 163/163/26 164/164/26 165/165/26 -f 166/166/20 167/167/20 168/168/20 -f 169/169/20 168/168/20 170/170/20 -f 171/171/20 172/172/20 173/173/20 -f 174/174/26 175/175/26 119/119/26 -f 176/176/26 177/177/26 178/178/26 -f 179/179/26 180/180/26 145/145/26 -f 181/181/20 182/182/20 183/183/20 -f 184/184/31 185/185/31 186/186/31 -f 187/187/29 188/188/29 189/189/29 -f 147/147/26 146/146/26 190/190/26 -f 191/191/32 192/192/32 193/193/32 -f 194/194/20 195/195/20 196/196/20 -f 197/197/29 198/198/29 199/199/29 -f 200/200/27 201/201/27 191/191/27 -f 202/202/33 203/203/33 204/204/33 -f 205/205/21 206/206/21 207/207/21 -f 208/208/20 209/209/20 210/210/20 -f 211/211/20 212/212/20 213/213/20 -f 214/214/29 215/215/29 216/216/29 -f 101/101/26 217/217/26 98/98/26 -f 218/218/34 219/219/34 220/220/34 -f 221/221/34 222/222/34 223/223/34 -f 224/224/20 225/225/20 226/226/20 -f 227/227/20 228/228/20 229/229/20 -f 230/230/29 231/231/29 232/232/29 -f 229/229/20 213/213/20 227/227/20 -f 233/233/35 234/234/35 235/235/35 -f 236/236/33 237/237/33 238/238/33 -f 239/239/20 240/240/20 241/241/20 -f 242/242/33 235/235/33 234/234/33 -f 243/243/22 244/244/22 245/245/22 -f 246/246/36 247/247/36 248/248/36 -f 249/249/29 250/250/29 251/251/29 -f 252/252/19 253/253/19 123/123/19 -f 254/254/37 255/255/37 256/256/37 -f 101/101/26 257/257/26 217/217/26 -f 178/178/26 258/258/26 119/119/26 -f 145/145/26 147/147/26 119/119/26 -f 144/144/26 259/259/26 260/260/26 -f 261/261/26 174/174/26 119/119/26 -f 119/119/26 262/262/26 263/263/26 -f 264/264/26 262/262/26 119/119/26 -f 264/264/26 258/258/26 265/265/26 -f 266/266/20 267/267/20 268/268/20 -f 173/173/20 266/266/20 269/269/20 -f 270/270/20 167/167/20 166/166/20 -f 259/259/26 271/271/26 260/260/26 -f 272/272/26 273/273/26 274/274/26 -f 275/275/26 259/259/26 144/144/26 -f 276/276/20 277/277/20 278/278/20 -f 279/279/20 280/280/20 281/281/20 -f 282/282/29 283/283/29 284/284/29 -f 285/285/29 286/286/29 287/287/29 -f 288/288/21 289/289/21 290/290/21 -f 291/291/33 292/292/33 293/293/33 -f 294/294/20 295/295/20 296/296/20 -f 297/297/20 298/298/20 299/299/20 -f 107/107/26 82/82/26 161/161/26 -f 300/300/35 292/292/35 291/291/35 -f 301/301/19 302/302/19 303/303/19 -f 304/304/19 305/305/19 306/306/19 -f 307/307/20 308/308/20 309/309/20 -f 127/127/26 161/161/26 82/82/26 -f 310/310/20 311/311/20 312/312/20 -f 313/313/29 314/314/29 315/315/29 -f 162/162/26 161/161/26 127/127/26 -f 316/316/34 317/317/34 318/318/34 -f 319/319/34 320/320/34 321/321/34 -f 322/322/20 323/323/20 324/324/20 -f 325/325/20 326/326/20 311/311/20 -f 327/327/29 328/328/29 329/329/29 -f 312/312/20 311/311/20 326/326/20 -f 330/330/19 331/331/19 332/332/19 -f 333/333/32 334/334/32 335/335/32 -f 260/260/26 336/336/26 274/274/26 -f 337/337/26 260/260/26 273/273/26 -f 338/338/20 339/339/20 340/340/20 -f 341/341/19 342/342/19 330/330/19 -f 343/343/22 344/344/22 345/345/22 -f 346/346/26 337/337/26 347/347/26 -f 348/348/26 349/349/26 260/260/26 -f 350/350/29 351/351/29 352/352/29 -f 353/353/26 260/260/26 349/349/26 -f 354/354/21 355/355/21 356/356/21 -f 163/163/26 336/336/26 260/260/26 -f 357/357/29 358/358/29 359/359/29 -f 95/95/29 360/360/29 358/358/29 -f 95/95/29 94/94/29 360/360/29 -f 361/361/19 362/362/19 363/363/19 -f 364/364/21 365/365/21 366/366/21 -f 367/367/29 368/368/29 369/369/29 -f 370/370/29 371/371/29 372/372/29 -f 373/373/29 374/374/29 372/372/29 -f 151/151/20 153/153/20 375/375/20 -f 376/376/19 377/377/19 378/378/19 -f 358/358/29 379/379/29 359/359/29 -f 380/380/30 381/381/30 382/382/30 -f 383/383/29 384/384/29 385/385/29 -f 386/386/29 387/387/29 388/388/29 -f 389/389/20 390/390/20 391/391/20 -f 392/392/30 393/393/30 394/394/30 -f 395/395/21 396/396/21 397/397/21 -f 398/398/30 399/399/30 400/400/30 -f 400/400/30 401/401/30 398/398/30 -f 402/402/19 403/403/19 404/404/19 -f 405/405/19 406/406/19 407/407/19 -f 408/408/30 409/409/30 410/410/30 -f 378/378/19 134/134/19 133/133/19 -f 109/109/26 82/82/26 107/107/26 -f 411/411/20 412/412/20 413/413/20 -f 414/414/20 411/411/20 413/413/20 -f 415/415/20 414/414/20 413/413/20 -f 376/376/19 378/378/19 133/133/19 -f 412/412/20 416/416/20 413/413/20 -f 417/417/29 418/418/29 419/419/29 -f 419/419/29 418/418/29 420/420/29 -f 421/421/29 422/422/29 423/423/29 -f 424/424/29 425/425/29 421/421/29 -f 131/131/29 425/425/29 426/426/29 -f 427/427/29 428/428/29 130/130/29 -f 429/429/29 430/430/29 428/428/29 -f 431/431/29 420/420/29 430/430/29 -f 432/432/29 429/429/29 428/428/29 -f 427/427/29 432/432/29 428/428/29 -f 129/129/29 433/433/29 130/130/29 -f 434/434/29 426/426/29 425/425/29 -f 424/424/29 434/434/29 425/425/29 -f 435/435/29 424/424/29 421/421/29 -f 436/436/29 423/423/29 422/422/29 -f 437/437/29 436/436/29 422/422/29 -f 437/437/29 422/422/29 420/420/29 -f 431/431/29 438/438/29 420/420/29 -f 429/429/29 439/439/29 430/430/29 -f 440/440/29 417/417/29 419/419/29 -f 422/422/29 419/419/29 420/420/29 -f 435/435/29 421/421/29 423/423/29 -f 441/441/29 131/131/29 426/426/29 -f 433/433/29 427/427/29 130/130/29 -f 439/439/29 431/431/29 430/430/29 -f 438/438/29 437/437/29 420/420/29 -f 441/441/29 129/129/29 131/131/29 -f 442/442/19 443/443/19 444/444/19 -f 127/127/26 82/82/26 81/81/26 -f 445/445/20 446/446/20 447/447/20 -f 448/448/38 449/449/38 450/450/38 -f 451/451/26 452/452/26 453/453/26 -f 454/454/26 455/455/26 456/456/26 -f 457/457/30 458/458/30 459/459/30 -f 460/460/21 69/69/21 68/68/21 -f 388/388/29 461/461/29 367/367/29 -f 383/383/29 385/385/29 388/388/29 -f 462/462/20 463/463/20 464/464/20 -f 462/462/20 465/465/20 466/466/20 -f 467/467/26 468/468/26 469/469/26 -f 470/470/21 471/471/21 395/395/21 -f 472/472/30 473/473/30 474/474/30 -f 475/475/30 472/472/30 476/476/30 -f 66/66/20 65/65/20 477/477/20 -f 478/478/21 479/479/21 480/480/21 -f 465/465/20 481/481/20 482/482/20 -f 483/483/19 484/484/19 485/485/19 -f 486/486/21 487/487/21 488/488/21 -f 489/489/30 490/490/30 491/491/30 -f 492/492/19 485/485/19 484/484/19 -f 493/493/30 494/494/30 495/495/30 -f 496/496/30 495/495/30 494/494/30 -f 497/497/19 498/498/19 499/499/19 -f 497/497/19 63/63/19 498/498/19 -f 66/66/20 390/390/20 500/500/20 -f 390/390/20 389/389/20 500/500/20 -f 501/501/29 138/138/29 502/502/29 -f 503/503/21 504/504/21 505/505/21 -f 506/506/21 505/505/21 504/504/21 -f 507/507/21 506/506/21 504/504/21 -f 64/64/20 66/66/20 500/500/20 -f 508/508/29 501/501/29 502/502/29 -f 509/509/21 503/503/21 505/505/21 -f 497/497/19 61/61/19 63/63/19 -f 501/501/29 136/136/29 138/138/29 -f 510/510/29 511/511/29 512/512/29 -f 513/513/29 511/511/29 514/514/29 -f 512/512/29 511/511/29 515/515/29 -f 515/515/29 511/511/29 516/516/29 -f 517/517/29 511/511/29 513/513/29 -f 516/516/29 511/511/29 518/518/29 -f 518/518/29 511/511/29 519/519/29 -f 520/520/29 511/511/29 517/517/29 -f 519/519/29 511/511/29 521/521/29 -f 521/521/29 511/511/29 522/522/29 -f 522/522/29 511/511/29 520/520/29 -f 523/523/29 511/511/29 510/510/29 -f 514/514/29 511/511/29 524/524/29 -f 525/525/29 511/511/29 523/523/29 -f 524/524/29 511/511/29 526/526/29 -f 526/526/29 511/511/29 525/525/29 -f 527/527/21 528/528/21 529/529/21 -f 530/530/21 531/531/21 529/529/21 -f 532/532/29 533/533/29 534/534/29 -f 76/76/21 67/67/21 69/69/21 -f 535/535/21 70/70/21 72/72/21 -f 536/536/22 73/73/22 75/75/22 -f 537/537/23 67/67/23 77/77/23 -f 538/538/25 78/78/25 80/80/25 -f 539/539/21 88/88/21 90/90/21 -f 90/90/21 540/540/21 539/539/21 -f 72/72/21 71/71/21 103/103/21 -f 541/541/29 124/124/29 126/126/29 -f 253/253/19 132/132/19 123/123/19 -f 542/542/30 139/139/30 141/141/30 -f 139/139/30 142/142/30 140/140/30 -f 128/128/26 112/112/26 108/108/26 -f 108/108/26 144/144/26 128/128/26 -f 144/144/26 146/146/26 145/145/26 -f 159/159/20 154/154/20 156/156/20 -f 156/156/20 157/157/20 159/159/20 -f 336/336/26 163/163/26 165/165/26 -f 169/169/20 166/166/20 168/168/20 -f 543/543/20 169/169/20 170/170/20 -f 544/544/20 171/171/20 173/173/20 -f 118/118/26 176/176/26 178/178/26 -f 175/175/26 179/179/26 145/145/26 -f 545/545/20 181/181/20 183/183/20 -f 546/546/31 184/184/31 186/186/31 -f 547/547/29 187/187/29 189/189/29 -f 548/548/26 147/147/26 190/190/26 -f 200/200/32 191/191/32 193/193/32 -f 549/549/20 194/194/20 196/196/20 -f 550/550/29 197/197/29 199/199/29 -f 551/551/33 202/202/33 204/204/33 -f 552/552/21 205/205/21 207/207/21 -f 553/553/20 208/208/20 210/210/20 -f 229/229/20 211/211/20 213/213/20 -f 554/554/29 214/214/29 216/216/29 -f 555/555/34 218/218/34 220/220/34 -f 556/556/34 221/221/34 223/223/34 -f 557/557/20 224/224/20 226/226/20 -f 558/558/29 230/230/29 232/232/29 -f 559/559/33 236/236/33 238/238/33 -f 560/560/20 239/239/20 241/241/20 -f 561/561/33 242/242/33 234/234/33 -f 562/562/22 243/243/22 245/245/22 -f 563/563/36 246/246/36 248/248/36 -f 564/564/29 249/249/29 251/251/29 -f 565/565/37 254/254/37 256/256/37 -f 118/118/26 178/178/26 119/119/26 -f 175/175/26 145/145/26 119/119/26 -f 146/146/26 144/144/26 260/260/26 -f 263/263/26 261/261/26 119/119/26 -f 258/258/26 264/264/26 119/119/26 -f 566/566/26 264/264/26 265/265/26 -f 269/269/20 266/266/20 268/268/20 -f 544/544/20 173/173/20 269/269/20 -f 567/567/20 270/270/20 166/166/20 -f 568/568/26 272/272/26 274/274/26 -f 569/569/26 275/275/26 144/144/26 -f 570/570/20 276/276/20 278/278/20 -f 571/571/20 279/279/20 281/281/20 -f 572/572/29 282/282/29 284/284/29 -f 573/573/29 285/285/29 287/287/29 -f 574/574/21 288/288/21 290/290/21 -f 575/575/33 291/291/33 293/293/33 -f 576/576/20 294/294/20 296/296/20 -f 577/577/20 297/297/20 299/299/20 -f 578/578/26 107/107/26 161/161/26 -f 579/579/19 301/301/19 303/303/19 -f 580/580/19 304/304/19 306/306/19 -f 581/581/20 307/307/20 309/309/20 -f 582/582/20 310/310/20 312/312/20 -f 583/583/29 313/313/29 315/315/29 -f 584/584/34 316/316/34 318/318/34 -f 585/585/34 319/319/34 321/321/34 -f 586/586/20 322/322/20 324/324/20 -f 587/587/29 327/327/29 329/329/29 -f 588/588/32 333/333/32 335/335/32 -f 273/273/26 260/260/26 274/274/26 -f 347/347/26 337/337/26 273/273/26 -f 589/589/20 338/338/20 340/340/20 -f 332/332/19 341/341/19 330/330/19 -f 590/590/22 343/343/22 345/345/22 -f 591/591/26 346/346/26 347/347/26 -f 271/271/26 348/348/26 260/260/26 -f 592/592/29 350/350/29 352/352/29 -f 593/593/21 594/594/21 595/595/21 -f 596/596/21 354/354/21 356/356/21 -f 353/353/26 163/163/26 260/260/26 -f 357/357/29 95/95/29 358/358/29 -f 597/597/19 361/361/19 363/363/19 -f 598/598/21 364/364/21 366/366/21 -f 383/383/29 367/367/29 369/369/29 -f 371/371/29 373/373/29 372/372/29 -f 599/599/20 151/151/20 375/375/20 -f 600/600/30 380/380/30 382/382/30 -f 385/385/29 386/386/29 388/388/29 -f 601/601/30 392/392/30 394/394/30 -f 602/602/19 402/402/19 404/404/19 -f 603/603/19 405/405/19 407/407/19 -f 604/604/30 408/408/30 410/410/30 -f 605/605/19 442/442/19 444/444/19 -f 606/606/20 445/445/20 447/447/20 -f 607/607/38 448/448/38 450/450/38 -f 608/608/26 451/451/26 453/453/26 -f 609/609/26 454/454/26 456/456/26 -f 610/610/30 457/457/30 459/459/30 -f 611/611/21 460/460/21 68/68/21 -f 367/367/29 383/383/29 388/388/29 -f 612/612/20 462/462/20 464/464/20 -f 463/463/20 462/462/20 466/466/20 -f 613/613/26 467/467/26 469/469/26 -f 397/397/21 470/470/21 395/395/21 -f 476/476/30 472/472/30 474/474/30 -f 614/614/30 475/475/30 476/476/30 -f 615/615/21 478/478/21 480/480/21 -f 466/466/20 465/465/20 482/482/20 -f 616/616/19 483/483/19 485/485/19 -f 617/617/21 486/486/21 488/488/21 -f 618/618/30 489/489/30 491/491/30 -f 619/619/21 527/527/21 529/529/21 -f 528/528/21 530/530/21 529/529/21 -f 620/620/29 532/532/29 534/534/29 -s 1 -f 621/621/39 622/622/40 623/623/41 -f 623/623/41 624/624/42 360/360/29 -f 625/625/43 626/626/43 627/627/44 -f 628/628/45 153/153/20 152/152/20 -f 629/629/46 630/630/47 631/631/21 -f 632/632/48 633/633/48 634/634/49 -f 635/635/21 636/636/50 637/637/51 -f 540/540/21 638/638/52 539/539/21 -f 639/639/53 640/640/54 92/92/19 -f 641/641/55 626/626/43 625/625/43 -f 642/642/56 643/643/19 644/644/19 -f 116/116/19 115/115/19 645/645/57 -f 645/645/57 646/646/19 116/116/19 -f 644/644/19 104/104/19 647/647/58 -f 104/104/19 106/106/19 647/647/58 -f 118/118/26 117/117/26 648/648/59 -f 649/649/26 650/650/60 648/648/59 -f 642/642/56 644/644/19 647/647/58 -f 651/651/61 652/652/62 653/653/63 -f 654/654/64 655/655/65 656/656/66 -f 657/657/67 658/658/68 659/659/69 -f 660/660/70 661/661/70 507/507/21 -f 662/662/71 663/663/19 664/664/19 -f 665/665/72 666/666/72 662/662/71 -f 667/667/73 668/668/74 669/669/75 -f 670/670/76 671/671/77 672/672/78 -f 673/673/73 674/674/79 675/675/80 -f 676/676/81 677/677/82 678/678/83 -f 679/679/84 680/680/85 681/681/86 -f 672/672/78 682/682/56 683/683/19 -f 684/684/19 685/685/19 686/686/87 -f 683/687/19 684/684/19 686/686/87 -f 687/688/88 688/689/89 689/690/21 -f 690/691/90 691/692/91 688/693/89 -f 687/688/88 689/690/21 148/148/21 -f 692/694/92 693/695/93 694/696/30 -f 695/697/94 696/698/95 697/699/96 -f 628/628/45 698/700/97 673/673/73 -f 699/701/98 312/312/20 326/326/20 -f 375/375/20 700/702/99 599/599/20 -f 701/703/21 702/704/50 703/705/100 -f 704/706/101 705/707/102 706/708/30 -f 707/709/103 708/710/104 704/706/101 -f 707/709/103 709/711/105 710/712/106 -f 711/713/107 712/714/108 377/377/19 -f 686/686/87 713/715/109 670/716/76 -f 714/717/87 715/718/110 708/710/104 -f 716/719/30 706/708/30 705/707/102 -f 717/720/111 718/721/50 719/722/112 -f 720/723/113 721/724/114 719/722/112 -f 704/706/101 719/722/112 721/724/114 -f 722/725/115 720/723/113 719/722/112 -f 723/726/116 724/727/117 725/728/118 -f 726/729/92 727/730/119 728/731/120 -f 729/732/121 730/733/122 731/734/123 -f 732/735/19 733/736/53 734/737/53 -f 735/738/124 736/739/125 730/740/122 -f 647/647/58 737/741/56 738/742/126 -f 739/743/127 740/744/128 741/745/129 -f 723/726/116 742/746/94 743/747/30 -f 672/672/78 686/748/87 670/670/76 -f 672/672/78 671/671/77 744/749/124 -f 745/750/95 746/751/30 747/752/30 -f 748/753/130 749/754/131 750/755/30 -f 672/672/78 751/756/19 752/757/126 -f 753/758/19 754/759/19 755/760/132 -f 756/761/133 757/762/134 758/763/135 -f 759/764/136 758/763/135 749/754/131 -f 760/765/29 761/766/29 762/767/137 -f 763/768/138 764/769/139 765/770/140 -f 766/771/141 696/698/95 765/770/140 -f 767/772/30 768/773/142 724/727/117 -f 766/771/141 769/774/143 770/775/144 -f 771/776/98 764/769/139 772/777/145 -f 764/769/139 769/774/143 765/770/140 -f 773/778/146 645/645/57 115/115/19 -f 765/770/140 774/779/147 763/768/138 -f 743/747/30 724/727/117 723/726/116 -f 734/737/53 733/736/53 775/780/148 -f 776/781/149 777/782/150 778/783/148 -f 779/784/112 780/785/110 781/786/118 -f 782/787/150 783/788/151 784/789/19 -f 764/769/139 763/768/138 772/777/145 -f 785/790/150 786/791/152 787/792/19 -f 788/793/19 789/794/19 790/795/132 -f 791/796/150 792/797/149 252/252/19 -f 793/798/77 728/731/120 736/739/125 -f 794/799/153 739/743/127 795/800/154 -f 740/744/128 796/801/19 797/802/19 -f 798/803/121 799/804/155 672/672/78 -f 670/716/76 693/695/93 671/805/77 -f 757/762/134 756/761/133 800/806/42 -f 801/807/19 802/808/19 803/809/132 -f 804/810/20 805/811/20 806/812/156 -f 765/770/140 807/813/94 774/779/147 -f 771/776/98 772/777/145 227/227/20 -f 808/814/19 809/815/19 810/816/132 -f 811/817/19 812/818/53 813/819/53 -f 252/252/19 123/123/19 791/796/150 -f 814/820/157 775/780/148 715/718/110 -f 815/821/157 816/822/158 715/718/110 -f 645/645/57 773/778/146 725/728/118 -f 816/822/158 817/823/159 725/728/118 -f 783/788/151 782/787/150 816/822/158 -f 818/824/148 815/821/157 715/718/110 -f 786/791/152 785/790/150 818/824/148 -f 819/825/157 820/826/148 715/718/110 -f 813/819/53 812/818/53 820/826/148 -f 775/780/148 819/825/157 715/718/110 -f 714/717/87 778/783/148 715/718/110 -f 821/827/60 822/828/160 823/829/160 -f 824/830/96 825/831/161 826/832/162 -f 71/71/21 827/833/163 828/834/163 -f 826/832/162 829/835/50 830/836/113 -f 831/837/47 832/838/46 826/832/162 -f 833/839/47 834/840/47 835/841/21 -f 832/838/46 829/835/50 826/832/162 -f 828/834/163 827/833/163 836/842/164 -f 794/799/153 837/843/153 838/844/165 -f 839/845/94 824/830/96 767/772/30 -f 691/692/91 690/691/90 728/846/120 -f 728/846/120 690/691/90 736/847/125 -f 840/848/166 841/849/167 656/656/66 -f 652/652/62 651/651/61 842/850/29 -f 710/712/106 708/710/104 707/709/103 -f 843/851/130 844/852/30 845/853/30 -f 690/691/90 687/854/88 846/855/168 -f 847/856/21 848/857/113 638/638/52 -f 621/621/39 849/858/169 850/859/170 -f 849/858/169 843/851/130 851/860/131 -f 852/861/113 830/836/113 829/835/50 -f 853/862/171 854/863/172 696/698/95 -f 848/857/113 717/720/111 855/864/50 -f 853/862/171 699/701/98 856/865/173 -f 766/771/141 853/862/171 696/698/95 -f 831/837/47 825/831/161 595/595/21 -f 697/699/96 696/698/95 854/863/172 -f 768/773/142 767/772/30 824/830/96 -f 833/839/47 722/725/115 718/721/50 -f 629/629/46 721/724/114 720/723/113 -f 857/866/174 858/867/21 859/868/21 -f 854/863/172 853/862/171 856/865/173 -f 860/869/174 861/870/21 862/871/21 -f 594/594/21 831/837/47 595/595/21 -f 830/836/113 863/872/50 719/722/112 -f 864/873/113 865/874/111 863/872/50 -f 866/875/175 838/844/165 867/876/21 -f 730/733/122 736/847/125 690/691/90 -f 868/877/21 869/878/50 870/879/47 -f 871/880/176 872/881/177 728/731/120 -f 621/621/39 623/623/41 873/882/178 -f 874/883/113 875/884/115 876/885/21 -f 855/864/50 717/720/111 719/722/112 -f 685/685/19 877/886/19 686/686/87 -f 698/700/97 674/674/79 673/673/73 -f 377/377/19 376/376/19 711/713/107 -f 622/622/40 878/887/179 624/624/42 -f 700/702/99 879/888/180 880/889/181 -f 700/702/99 375/375/20 879/888/180 -f 881/890/182 882/891/183 883/892/26 -f 884/893/43 885/894/26 886/895/26 -f 712/714/108 711/713/107 884/893/43 -f 679/679/84 681/681/86 887/896/183 -f 871/880/176 727/730/119 726/729/92 -f 688/693/89 687/854/88 690/691/90 -f 693/695/93 692/694/92 671/805/77 -f 668/668/74 888/897/184 681/681/86 -f 680/680/85 889/898/21 890/899/21 -f 668/668/74 667/667/73 888/897/184 -f 669/669/75 627/627/44 667/667/73 -f 891/900/185 892/901/186 893/902/187 -f 894/903/188 891/900/185 895/904/189 -f 896/905/190 894/903/188 897/906/191 -f 898/907/192 896/905/190 899/908/193 -f 900/909/194 901/910/195 508/508/29 -f 902/911/196 903/912/197 904/913/198 -f 905/914/199 906/915/199 904/913/198 -f 907/916/200 908/917/201 901/910/195 -f 909/918/202 910/919/203 908/917/201 -f 911/920/204 906/915/199 905/914/199 -f 912/921/205 913/922/206 914/923/207 -f 913/922/206 915/924/208 916/925/209 -f 915/924/208 917/926/210 918/927/211 -f 917/926/210 919/928/212 920/929/213 -f 919/928/212 921/930/214 922/931/215 -f 923/932/216 924/933/217 925/934/218 -f 926/935/219 927/936/219 925/934/218 -f 928/937/220 929/938/220 930/939/203 -f 931/940/221 927/936/219 926/935/219 -f 892/901/186 931/940/221 932/941/222 -f 928/937/220 933/942/223 929/938/220 -f 934/943/224 935/944/225 933/942/223 -f 936/945/226 937/946/227 933/942/223 -f 938/947/228 939/948/228 937/946/227 -f 940/949/229 941/950/230 942/951/230 -f 943/952/231 944/953/231 942/951/230 -f 945/954/232 946/955/233 947/956/30 -f 948/957/234 949/958/235 950/959/236 -f 951/960/237 952/961/238 950/959/236 -f 949/958/235 953/962/239 951/960/237 -f 954/963/240 953/962/239 949/958/235 -f 955/964/241 956/965/242 953/962/239 -f 957/966/243 958/967/243 959/968/244 -f 960/969/245 959/968/244 956/965/242 -f 135/135/19 641/641/55 961/970/246 -f 962/971/247 658/658/68 963/972/248 -f 964/973/249 965/974/250 962/971/247 -f 966/975/251 967/976/252 965/974/250 -f 415/415/20 413/413/20 967/976/252 -f 416/416/20 659/659/69 413/413/20 -f 968/977/253 657/657/67 659/659/69 -f 969/978/254 968/977/253 659/659/69 -f 970/979/255 969/978/254 659/659/69 -f 416/416/20 970/979/255 659/659/69 -f 971/980/256 415/415/20 967/976/252 -f 966/975/251 971/980/256 967/976/252 -f 964/973/249 972/981/257 965/974/250 -f 973/982/258 964/973/249 962/971/247 -f 974/983/259 963/972/248 658/658/68 -f 657/657/67 974/983/259 658/658/68 -f 133/133/19 135/135/19 961/970/246 -f 973/982/258 962/971/247 963/972/248 -f 972/981/257 966/975/251 965/974/250 -f 653/653/63 654/654/64 975/984/260 -f 632/632/48 460/460/21 611/611/21 -f 976/985/51 977/986/48 978/987/21 -f 979/988/29 980/989/29 948/957/234 -f 981/990/261 982/991/261 983/992/21 -f 984/993/262 982/991/261 981/990/261 -f 985/994/263 986/995/264 502/502/29 -f 987/996/265 986/995/264 985/994/263 -f 988/997/266 987/996/265 989/998/267 -f 934/943/224 990/999/268 991/1000/269 -f 935/944/225 934/943/224 992/1001/270 -f 954/963/240 993/1002/271 994/1003/237 -f 660/660/70 940/949/229 995/1004/272 -f 996/1005/29 997/1006/236 998/1007/234 -f 993/1002/271 998/1007/234 997/1006/236 -f 994/1003/237 993/1002/271 997/1006/236 -f 499/499/19 944/953/231 943/952/231 -f 502/502/29 986/995/264 900/909/194 -f 497/497/19 499/499/19 943/952/231 -f 508/508/29 502/502/29 900/909/194 -f 504/504/21 660/660/70 507/507/21 -f 820/826/148 999/1008/157 715/718/110 -f 816/822/158 725/728/118 715/718/110 -f 863/872/50 865/874/111 719/722/112 -f 830/836/113 719/722/112 826/832/162 -f 1000/1009/221 1001/1010/273 1002/1011/274 -f 1001/1010/273 1003/1012/275 1004/1013/276 -f 1005/1014/277 1006/1015/278 1007/1016/279 -f 1003/1012/275 1008/1017/215 1009/1018/216 -f 1008/1017/215 1010/1019/213 1011/1020/212 -f 1012/1021/204 1005/1014/277 1013/1022/280 -f 1010/1019/213 1014/1023/281 1015/1024/210 -f 1014/1023/281 1016/1025/209 1017/1026/208 -f 1018/1027/282 1012/1021/204 1019/1028/205 -f 1016/1025/209 1018/1027/282 1020/1029/283 -f 1021/1030/190 1022/1031/188 1023/1032/191 -f 1024/1033/185 1025/1034/186 1026/1035/284 -f 1027/1036/192 1021/1030/190 1028/1037/193 -f 1006/1015/278 1027/1036/192 1029/1038/285 -f 1025/1034/186 1000/1009/221 1030/1039/222 -f 1022/1031/188 1024/1033/185 1031/1040/189 -f 1032/1041/286 1033/1042/287 1034/1043/288 -f 1035/1044/289 1036/1045/290 1037/1046/291 -f 1038/1047/292 1039/1048/293 1040/1049/30 -f 1041/1050/26 1042/1051/26 1033/1042/287 -f 1036/1045/290 1035/1044/289 1039/1048/293 -f 94/94/29 623/623/41 360/360/29 -f 669/669/75 625/625/43 627/627/44 -f 698/700/97 628/628/45 152/152/20 -f 1043/1052/21 629/629/46 631/631/21 -f 1044/1053/294 632/632/48 634/634/49 -f 1045/1054/21 635/635/21 637/637/51 -f 91/91/19 639/639/53 92/92/19 -f 961/970/246 641/641/55 625/625/43 -f 117/117/26 649/649/26 648/648/59 -f 1046/1055/295 120/120/21 122/122/21 -f 1047/1056/296 651/651/61 653/653/63 -f 975/984/260 654/654/64 656/656/66 -f 1048/1057/71 662/662/71 664/664/19 -f 1048/1057/71 665/665/72 662/662/71 -f 678/678/83 673/673/73 675/675/80 -f 675/675/80 676/676/81 678/678/83 -f 686/748/87 672/672/78 683/683/19 -f 150/150/21 687/688/88 148/148/21 -f 856/865/173 699/701/98 326/326/20 -f 1049/1058/21 701/703/21 703/705/100 -f 706/708/30 707/709/103 704/706/101 -f 710/712/106 714/717/87 708/710/104 -f 705/707/102 704/706/101 721/724/114 -f 718/721/50 722/725/115 719/722/112 -f 773/778/146 723/726/116 725/728/118 -f 793/798/77 726/729/92 728/731/120 -f 1050/1059/297 729/732/121 731/734/123 -f 1051/1060/19 732/735/19 734/737/53 -f 729/1061/121 735/738/124 730/740/122 -f 642/642/56 647/647/58 738/742/126 -f 795/800/154 739/743/127 741/745/129 -f 1052/1062/298 745/750/95 747/752/30 -f 1053/1063/30 748/753/130 750/755/30 -f 682/682/56 672/672/78 752/757/126 -f 1054/1064/299 753/758/19 755/760/132 -f 759/764/136 756/761/133 758/763/135 -f 748/753/130 759/764/136 749/754/131 -f 800/806/42 760/765/29 762/767/137 -f 769/774/143 766/771/141 765/770/140 -f 743/747/30 767/772/30 724/727/117 -f 806/812/156 766/771/141 770/775/144 -f 814/820/157 734/737/53 775/780/148 -f 714/717/87 776/781/149 778/783/148 -f 1055/1065/300 779/784/112 781/786/118 -f 1056/1066/19 782/787/150 784/789/19 -f 1057/1067/19 785/790/150 787/792/19 -f 1058/1068/299 788/793/19 790/795/132 -f 735/738/124 793/798/77 736/739/125 -f 837/843/153 794/799/153 795/800/154 -f 741/745/129 740/744/128 797/802/19 -f 744/749/124 798/803/121 672/672/78 -f 762/767/137 757/762/134 800/806/42 -f 1059/1069/148 801/807/19 803/809/132 -f 770/775/144 804/810/20 806/812/156 -f 213/213/20 771/776/98 227/227/20 -f 1060/1070/299 808/814/19 810/816/132 -f 1061/1071/19 811/817/19 813/819/53 -f 778/783/148 814/820/157 715/718/110 -f 817/823/159 645/645/57 725/728/118 -f 815/821/157 783/788/151 816/822/158 -f 999/1008/157 818/824/148 715/718/110 -f 999/1008/157 786/791/152 818/824/148 -f 819/825/157 813/819/53 820/826/148 -f 1062/1072/301 821/827/60 823/829/160 -f 768/773/142 824/830/96 826/832/162 -f 102/102/21 71/71/21 828/834/163 -f 825/831/161 831/837/47 826/832/162 -f 1063/1073/21 833/839/47 835/841/21 -f 1064/1074/302 828/834/163 836/842/164 -f 866/875/175 794/799/153 838/844/165 -f 872/881/177 691/1075/91 728/731/120 -f 655/655/65 840/848/166 656/656/66 -f 1065/1076/29 652/652/62 842/850/29 -f 851/860/131 843/851/130 845/853/30 -f 1066/1077/303 690/691/90 846/855/168 -f 540/540/21 847/856/21 638/638/52 -f 622/622/40 621/621/39 850/859/170 -f 850/859/170 849/858/169 851/860/131 -f 857/866/174 852/861/113 829/835/50 -f 638/638/52 848/857/113 855/864/50 -f 834/840/47 833/839/47 718/721/50 -f 630/630/47 629/629/46 720/723/113 -f 852/861/113 857/866/174 859/868/21 -f 864/873/113 860/869/174 862/871/21 -f 860/869/174 864/873/113 863/872/50 -f 1067/1078/21 866/875/175 867/876/21 -f 731/734/123 730/733/122 690/691/90 -f 1068/1079/21 868/877/21 870/879/47 -f 727/730/119 871/880/176 728/731/120 -f 1069/1080/21 874/883/113 876/885/21 -f 865/874/111 855/864/50 719/722/112 -f 623/623/41 622/622/40 624/624/42 -f 1070/1081/181 700/702/99 880/889/181 -f 1071/1082/26 881/890/182 883/892/26 -f 1072/1083/43 884/893/43 886/895/26 -f 1072/1083/43 712/714/108 884/893/43 -f 1073/1084/30 871/880/176 726/729/92 -f 680/680/85 668/668/74 681/681/86 -f 668/668/74 680/680/85 890/899/21 -f 895/904/189 891/900/185 893/902/187 -f 897/906/191 894/903/188 895/904/189 -f 899/908/193 896/905/190 897/906/191 -f 902/911/196 898/907/192 899/908/193 -f 898/907/192 902/911/196 904/913/198 -f 903/912/197 905/914/199 904/913/198 -f 900/909/194 907/916/200 901/910/195 -f 907/916/200 909/918/202 908/917/201 -f 912/921/205 911/920/204 905/914/199 -f 911/920/204 912/921/205 914/923/207 -f 914/923/207 913/922/206 916/925/209 -f 916/925/209 915/924/208 918/927/211 -f 918/927/211 917/926/210 920/929/213 -f 920/929/213 919/928/212 922/931/215 -f 1074/1085/304 923/932/216 925/934/218 -f 924/933/217 926/935/219 925/934/218 -f 1075/1086/305 928/937/220 930/939/203 -f 932/941/222 931/940/221 926/935/219 -f 893/902/187 892/901/186 932/941/222 -f 928/937/220 934/943/224 933/942/223 -f 935/944/225 936/945/226 933/942/223 -f 936/945/226 938/947/228 937/946/227 -f 995/1004/272 940/949/229 942/951/230 -f 941/950/230 943/952/231 942/951/230 -f 1076/1087/30 945/954/232 947/956/30 -f 949/958/235 951/960/237 950/959/236 -f 993/1002/271 954/963/240 949/958/235 -f 954/963/240 955/964/241 953/962/239 -f 960/969/245 957/966/243 959/968/244 -f 955/964/241 960/969/245 956/965/242 -f 1047/1056/296 653/653/63 975/984/260 -f 633/633/48 632/632/48 611/611/21 -f 1077/1088/50 976/985/51 978/987/21 -f 950/959/236 979/988/29 948/957/234 -f 1078/1089/21 981/990/261 983/992/21 -f 1079/1090/262 984/993/262 981/990/261 -f 989/998/267 987/996/265 985/994/263 -f 1080/1091/269 988/997/266 989/998/267 -f 992/1001/270 934/943/224 991/1000/269 -f 661/661/70 660/660/70 995/1004/272 -f 1081/1092/29 996/1005/29 998/1007/234 -f 1082/1093/238 994/1003/237 997/1006/236 -f 1030/1039/222 1000/1009/221 1002/1011/274 -f 1002/1011/274 1001/1010/273 1004/1013/276 -f 1013/1022/280 1005/1014/277 1007/1016/279 -f 1004/1013/276 1003/1012/275 1009/1018/216 -f 1009/1018/216 1008/1017/215 1011/1020/212 -f 1019/1028/205 1012/1021/204 1013/1022/280 -f 1011/1020/212 1010/1019/213 1015/1024/210 -f 1015/1024/210 1014/1023/281 1017/1026/208 -f 1020/1029/283 1018/1027/282 1019/1028/205 -f 1017/1026/208 1016/1025/209 1020/1029/283 -f 1028/1037/193 1021/1030/190 1023/1032/191 -f 1031/1040/189 1024/1033/185 1026/1035/284 -f 1029/1038/285 1027/1036/192 1028/1037/193 -f 1007/1016/279 1006/1015/278 1029/1038/285 -f 1026/1035/284 1025/1034/186 1030/1039/222 -f 1023/1032/191 1022/1031/188 1031/1040/189 -f 1037/1046/291 1032/1041/286 1034/1043/288 -f 1034/1043/288 1035/1044/289 1037/1046/291 -f 1083/1094/30 1038/1047/292 1040/1049/30 -f 1032/1041/286 1041/1050/26 1033/1042/287 -f 1038/1047/292 1036/1045/290 1039/1048/293 -o trigger_pistol_0 -v 0.255916 1.582615 6.859656 -v 0.255916 1.449703 6.660409 -v 0.255916 1.810704 6.457509 -v 0.255916 2.466018 6.344805 -v 0.255916 1.892926 6.633237 -v 0.577175 1.435798 6.186546 -v 0.577175 1.810704 6.457509 -v 0.577175 1.449703 6.660409 -v 0.577175 3.484048 5.722968 -v 0.577175 3.243770 6.479860 -v 0.577175 2.895699 6.381779 -v 0.577175 1.924939 5.885275 -v 0.577175 2.439333 5.691723 -v 0.577175 2.466018 6.344805 -v 0.577175 3.484048 5.722968 -v 0.401255 3.484048 5.722968 -v 0.401255 3.243770 6.479860 -v 0.401255 3.588838 6.684444 -v 0.401255 3.243770 6.479860 -v 0.401255 3.484048 5.722968 -v 0.401255 4.331120 5.796535 -v 0.401255 4.331120 7.553139 -v 0.401255 3.911054 6.978125 -v 0.401255 4.776393 4.607953 -v 0.401255 5.500355 4.607955 -v 0.401255 5.500353 7.553141 -v -0.401255 4.331120 5.796535 -v -0.401255 4.776393 4.607953 -v 0.401255 4.776393 4.607953 -v -0.401255 5.500355 4.607955 -v 0.401255 5.500355 4.607955 -v 0.401255 4.776393 4.607953 -v 0.577175 2.851677 5.639833 -v -0.577175 3.484048 5.722968 -v -0.577175 3.243770 6.479860 -v -0.401255 3.243770 6.479860 -v -0.255916 1.582615 6.859656 -v -0.255916 1.892926 6.633237 -v -0.255916 1.810704 6.457509 -v -0.401255 3.243770 6.479860 -v -0.401255 3.588838 6.684444 -v -0.401255 3.484048 5.722968 -v -0.401255 4.331120 7.553139 -v -0.401255 4.331120 5.796535 -v -0.401255 3.911054 6.978125 -v -0.401255 4.776393 4.607953 -v -0.401255 5.500355 4.607955 -v -0.401255 5.500353 7.553141 -v -0.255916 2.466018 6.344805 -v -0.577175 2.466018 6.344805 -v -0.577175 2.895699 6.381779 -v -0.577175 2.851677 5.639833 -v -0.577175 1.810704 6.457509 -v -0.577175 1.435798 6.186546 -v -0.577175 1.449703 6.660409 -v -0.577175 3.484048 5.722968 -v -0.577175 1.924939 5.885275 -v -0.577175 2.439333 5.691723 -v 0.577175 3.243770 6.479860 -v 0.401255 4.331120 5.796535 -v -0.401255 4.776393 4.607953 -v -0.401255 3.484048 5.722968 -v -0.255916 1.449703 6.660409 -v -0.577175 3.243770 6.479860 -v -0.255916 1.892926 6.633237 -v 0.255916 1.892926 6.633237 -v 0.255916 2.466018 6.344805 -v 0.577175 2.895699 6.381779 -v 0.577175 3.243770 6.479860 -v 0.401255 3.243770 6.479860 -v -0.401255 3.243770 6.479860 -v -0.577175 2.895699 6.381779 -v -0.136434 1.170197 7.267153 -v 0.136434 1.170197 7.267153 -v 0.255916 1.274900 7.159120 -v -0.255916 1.274900 7.159120 -v 0.255916 1.582615 6.859656 -v -0.255916 1.582615 6.859656 -v -0.136434 1.170197 7.267153 -v -0.140214 0.908798 7.158844 -v 0.140214 0.908798 7.158844 -v 0.255916 1.049089 7.041913 -v 0.255916 1.274900 7.159120 -v 0.136434 1.170197 7.267153 -v 0.255916 2.466018 6.344805 -v 0.577175 2.466018 6.344805 -v 0.577175 1.049089 7.041913 -v 0.255916 1.049089 7.041913 -v 0.140214 0.908798 7.158844 -v -0.140214 0.908798 7.158844 -v -0.238265 0.780515 7.270253 -v 0.238265 0.780515 7.270253 -v 0.577175 1.810704 6.457509 -v 0.255916 1.810704 6.457509 -v 0.255916 1.449703 6.660409 -v 0.577175 1.449703 6.660409 -v -0.242153 0.574698 7.190140 -v 0.242153 0.574698 7.190140 -v 0.238265 0.780515 7.270253 -v 0.557295 0.748788 6.906375 -v 0.577175 1.049089 7.041913 -v 0.577175 1.022907 6.562050 -v -0.255916 2.466018 6.344805 -v -0.401255 4.331120 5.796535 -v 0.401255 4.331120 5.796535 -v 0.401255 3.484048 5.722968 -v 0.401255 3.588838 6.684444 -v -0.401255 3.588838 6.684444 -v 0.401255 3.911054 6.978125 -v 0.401255 4.331120 7.553139 -v -0.401255 4.331120 7.553139 -v -0.401255 3.911054 6.978125 -v 0.401255 5.500353 7.553141 -v -0.401255 5.500353 7.553141 -v 0.577175 2.851677 5.639833 -v 0.577175 3.484048 5.722968 -v -0.577175 2.851677 5.639833 -v -0.401255 3.484048 5.722968 -v 0.577175 1.022907 6.562050 -v -0.577175 1.022907 6.562050 -v -0.577175 1.435798 6.186546 -v 0.577175 1.435798 6.186546 -v -0.577175 1.924939 5.885275 -v -0.577175 2.439333 5.691723 -v 0.577175 2.439333 5.691723 -v 0.577175 1.924939 5.885275 -v 0.242153 0.574698 7.190140 -v -0.242153 0.574698 7.190140 -v -0.557295 0.748788 6.906375 -v 0.557295 0.748788 6.906375 -v -0.577175 3.243770 6.479860 -v -0.255916 1.049089 7.041913 -v -0.577175 2.466018 6.344805 -v -0.255916 1.274900 7.159120 -v -0.577175 1.049089 7.041913 -v -0.577175 3.484048 5.722968 -v -0.577175 1.810704 6.457509 -v -0.577175 1.449703 6.660409 -v -0.255916 1.449703 6.660409 -v -0.255916 1.810704 6.457509 -v -0.255916 1.049089 7.041913 -v -0.557295 0.748788 6.906375 -v -0.238265 0.780515 7.270253 -v -0.577175 1.022907 6.562050 -v -0.577175 1.049089 7.041913 -v -0.255916 2.466018 6.344805 -vt 0.482997 0.972676 -vt 0.483169 0.972693 -vt 0.483177 0.972380 -vt 0.483034 0.971858 -vt 0.483023 0.972386 -vt 0.471310 0.981774 -vt 0.471246 0.981454 -vt 0.471009 0.981626 -vt 0.472210 0.980596 -vt 0.471654 0.980527 -vt 0.471614 0.980779 -vt 0.471647 0.981549 -vt 0.471923 0.981275 -vt 0.471511 0.981066 -vt 0.472210 0.980596 -vt 0.472225 0.980472 -vt 0.471669 0.980404 -vt 0.471639 0.980122 -vt 0.471669 0.980404 -vt 0.472225 0.980472 -vt 0.472428 0.979907 -vt 0.471300 0.979390 -vt 0.471545 0.979829 -vt 0.473322 0.979971 -vt 0.473535 0.979507 -vt 0.471644 0.978639 -vt 0.480249 0.946278 -vt 0.480249 0.945382 -vt 0.480816 0.945382 -vt 0.480249 0.944870 -vt 0.480816 0.944870 -vt 0.480816 0.945382 -vt 0.472077 0.981026 -vt 0.468113 0.980573 -vt 0.468670 0.980511 -vt 0.468657 0.980387 -vt 0.482644 0.972678 -vt 0.482622 0.972386 -vt 0.482468 0.972377 -vt 0.468657 0.980387 -vt 0.468690 0.980106 -vt 0.468100 0.980449 -vt 0.469037 0.979378 -vt 0.467904 0.979882 -vt 0.468786 0.979814 -vt 0.467009 0.979936 -vt 0.466802 0.979469 -vt 0.468701 0.978624 -vt 0.482618 0.971864 -vt 0.468807 0.981051 -vt 0.468707 0.980763 -vt 0.468241 0.981005 -vt 0.469067 0.981441 -vt 0.469000 0.981761 -vt 0.469302 0.981616 -vt 0.468113 0.980573 -vt 0.468666 0.981532 -vt 0.468393 0.981256 -vt 0.471654 0.980527 -vt 0.480816 0.946278 -vt 0.480249 0.945382 -vt 0.468100 0.980449 -vt 0.482469 0.972694 -vt 0.468670 0.980511 -vt 0.482622 0.972386 -vt 0.483023 0.972386 -vt 0.483034 0.971858 -vt 0.480078 0.973332 -vt 0.480077 0.973077 -vt 0.479953 0.973077 -vt 0.479387 0.973079 -vt 0.479263 0.973334 -vt 0.482753 0.972998 -vt 0.482894 0.972996 -vt 0.482958 0.972932 -vt 0.482686 0.972938 -vt 0.482997 0.972676 -vt 0.482644 0.972678 -vt 0.482753 0.972998 -vt 0.482726 0.973162 -vt 0.482929 0.973155 -vt 0.483051 0.973046 -vt 0.482958 0.972932 -vt 0.482894 0.972996 -vt 0.479852 0.973637 -vt 0.480079 0.973637 -vt 0.480081 0.974789 -vt 0.479855 0.974790 -vt 0.479773 0.974919 -vt 0.479575 0.974919 -vt 0.479506 0.975040 -vt 0.479843 0.975039 -vt 0.480080 0.974106 -vt 0.479853 0.974107 -vt 0.479854 0.974399 -vt 0.480081 0.974399 -vt 0.469982 0.982043 -vt 0.470324 0.982045 -vt 0.470322 0.981889 -vt 0.470645 0.982004 -vt 0.470647 0.981771 -vt 0.470947 0.981928 -vt 0.479491 0.973638 -vt 0.480249 0.946278 -vt 0.480816 0.946278 -vt 0.480816 0.946878 -vt 0.479953 0.972794 -vt 0.479386 0.972795 -vt 0.479952 0.972486 -vt 0.479951 0.971983 -vt 0.479384 0.971985 -vt 0.479385 0.972488 -vt 0.479949 0.971158 -vt 0.479382 0.971159 -vt 0.480940 0.947328 -vt 0.480940 0.946878 -vt 0.480125 0.947328 -vt 0.480249 0.946878 -vt 0.480940 0.948810 -vt 0.480125 0.948810 -vt 0.480125 0.948416 -vt 0.480940 0.948415 -vt 0.480125 0.948010 -vt 0.480125 0.947622 -vt 0.480940 0.947622 -vt 0.480940 0.948010 -vt 0.480704 0.949355 -vt 0.480362 0.949355 -vt 0.480139 0.949120 -vt 0.480926 0.949120 -vt 0.479262 0.973079 -vt 0.482592 0.973062 -vt 0.479264 0.973639 -vt 0.482686 0.972938 -vt 0.479266 0.974791 -vt 0.480125 0.946878 -vt 0.479265 0.974108 -vt 0.479265 0.974401 -vt 0.479492 0.974400 -vt 0.479492 0.974108 -vt 0.479493 0.974791 -vt 0.469662 0.981998 -vt 0.469986 0.981887 -vt 0.469361 0.981919 -vt 0.469663 0.981765 -vt 0.482618 0.971864 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.9531 0.3026 -vn 0.0000 -0.9364 -0.3508 -vn 0.0000 0.0000 -1.0000 -vn -1.0000 -0.0000 0.0000 -vn 0.0000 0.4977 0.8674 -vn 0.0000 0.5444 0.8388 -vn 0.0000 0.1395 0.9902 -vn 0.0000 -0.1979 0.9802 -vn 0.0000 -0.2712 0.9625 -vn 0.0000 -0.3535 0.9354 -vn -0.0000 -0.3697 0.9291 -vn 0.0000 -0.1606 0.9870 -vn 0.0000 0.7181 0.6960 -vn 0.0000 0.7113 0.7029 -vn -0.0000 0.7044 0.7098 -vn 0.0000 0.6629 0.7487 -vn 0.0000 0.6268 0.7792 -vn -0.4404 -0.3550 0.8247 -vn -0.4552 -0.3352 0.8249 -vn 0.2991 -0.3616 0.8831 -vn 0.9038 -0.1780 0.3893 -vn 0.9745 -0.1034 0.1993 -vn 0.5796 -0.3268 0.7465 -vn 0.0001 0.1395 0.9902 -vn 0.0000 0.0850 0.9964 -vn -0.0023 0.6611 0.7503 -vn -0.0000 0.6735 0.7392 -vn -0.0023 0.6496 0.7603 -vn 0.0017 0.6512 0.7589 -vn 0.0038 0.6541 0.7564 -vn -0.0023 0.6547 0.7559 -vn 0.0000 0.3882 0.9216 -vn 0.0000 0.2799 0.9600 -vn 0.0000 0.5604 0.8282 -vn 0.0000 0.6274 0.7787 -vn -0.2580 -0.3462 0.9020 -vn 0.3908 -0.3275 0.8603 -vn 0.3829 -0.3520 0.8541 -vn 0.8580 -0.2283 0.4601 -vn 0.9627 -0.1436 0.2294 -vn 0.9997 -0.0226 0.0012 -vn 0.0000 0.1148 0.9934 -vn 0.0000 0.0865 -0.9962 -vn 0.0000 0.1129 -0.9936 -vn 0.0000 -0.5671 0.8236 -vn 0.0000 -0.6219 0.7831 -vn 0.0000 -0.7215 0.6924 -vn -0.0001 -0.5953 0.8035 -vn 0.0001 -0.2977 0.9547 -vn 0.0000 -0.7663 0.6425 -vn 0.0000 -0.0000 1.0000 -vn 0.0000 0.0456 -0.9990 -vn 0.0000 0.1303 -0.9915 -vn 0.0000 0.0285 -0.9996 -vn 0.0000 0.1158 -0.9933 -vn -0.0000 -0.7114 -0.7028 -vn -0.0000 -0.7480 -0.6637 -vn 0.0000 -0.6258 -0.7800 -vn 0.0000 -0.5761 -0.8174 -vn -0.0000 -0.4689 -0.8832 -vn 0.0000 -0.2781 -0.9606 -vn 0.0000 -0.2019 -0.9794 -vn -0.0000 -0.4113 -0.9115 -vn 0.0000 -0.8524 -0.5229 -vn 0.0000 -0.8304 -0.5572 -vn 0.0000 -0.8071 -0.5904 -vn -0.9038 -0.1780 0.3893 -vn -0.9745 -0.1034 0.1993 -vn 0.0023 0.6611 0.7503 -vn -0.8580 -0.2283 0.4601 -vn -0.5059 -0.3351 0.7948 -vn -0.9997 -0.0226 0.0012 -vn -0.9627 -0.1436 0.2294 -vn 0.0000 0.1149 0.9934 -s off -f 1084/1095/306 1085/1096/306 1086/1097/306 -f 1086/1097/306 1087/1098/306 1088/1099/306 -f 1089/1100/306 1090/1101/306 1091/1102/306 -f 1092/1103/306 1093/1104/306 1094/1105/306 -f 1089/1100/306 1095/1106/306 1090/1101/306 -f 1096/1107/306 1097/1108/306 1090/1101/306 -f 1098/1109/307 1099/1110/307 1100/1111/307 -f 1101/1112/306 1102/1113/306 1103/1114/306 -f 1104/1115/306 1105/1116/306 1106/1117/306 -f 1101/1112/306 1103/1114/306 1104/1115/306 -f 1104/1115/306 1107/1118/306 1108/1119/306 -f 1109/1120/306 1105/1116/306 1104/1115/306 -f 1110/1121/308 1111/1122/308 1112/1123/308 -f 1113/1124/309 1114/1125/309 1115/1126/309 -f 1097/1108/306 1096/1107/306 1116/1127/306 -f 1117/1128/307 1118/1129/307 1119/1130/307 -f 1120/1131/310 1121/1132/310 1122/1133/310 -f 1123/1134/310 1124/1135/310 1125/1136/310 -f 1126/1137/310 1127/1138/310 1128/1139/310 -f 1124/1135/310 1128/1139/310 1127/1138/310 -f 1129/1140/310 1127/1138/310 1130/1141/310 -f 1131/1142/310 1130/1141/310 1127/1138/310 -f 1132/1143/310 1122/1133/310 1121/1132/310 -f 1133/1144/310 1134/1145/310 1135/1146/310 -f 1136/1147/310 1137/1148/310 1138/1149/310 -f 1139/1150/310 1135/1146/310 1134/1145/310 -f 1140/1151/310 1137/1148/310 1136/1147/310 -f 1141/1152/310 1140/1151/310 1136/1147/310 -f 1088/1099/306 1084/1095/306 1086/1097/306 -f 1116/1127/306 1092/1103/306 1094/1105/306 -f 1095/1106/306 1096/1107/306 1090/1101/306 -f 1142/1153/307 1098/1109/307 1100/1111/307 -f 1106/1117/306 1101/1112/306 1104/1115/306 -f 1108/1119/306 1109/1120/306 1104/1115/306 -f 1143/1154/308 1110/1121/308 1112/1123/308 -f 1144/1155/309 1113/1124/309 1115/1126/309 -f 1094/1105/306 1097/1108/306 1116/1127/306 -f 1145/1156/307 1117/1128/307 1119/1130/307 -f 1146/1157/310 1120/1131/310 1122/1133/310 -f 1125/1136/310 1124/1135/310 1127/1138/310 -f 1126/1137/310 1131/1142/310 1127/1138/310 -f 1141/1152/310 1133/1144/310 1135/1146/310 -f 1147/1158/310 1139/1150/310 1134/1145/310 -f 1133/1144/310 1141/1152/310 1136/1147/310 -s 1 -f 1148/1159/311 1149/1160/312 1150/1161/313 -f 1151/1162/314 1152/1163/315 1153/1164/316 -f 1154/1165/317 1155/1166/318 1151/1162/314 -f 1156/1167/319 1157/1168/319 1158/1169/320 -f 1159/1170/321 1158/1169/320 1160/1171/322 -f 1149/1160/312 1148/1159/311 1161/1172/323 -f 1162/1173/324 1163/1174/325 1164/1175/326 -f 1165/1176/327 1166/1177/328 1167/1178/329 -f 1168/1179/330 1169/1180/331 1151/1162/314 -f 1085/1096/306 1084/1095/306 1166/1177/328 -f 1170/1181/332 1171/1182/333 1172/1183/334 -f 1173/1184/335 1174/1185/336 1175/1186/337 -f 1176/1187/338 1177/1188/339 1178/1189/340 -f 1169/1180/331 1168/1179/330 1177/1188/339 -f 1171/1182/333 1170/1181/332 1179/1190/341 -f 1180/1191/342 1181/1192/343 1182/1193/344 -f 1183/1194/345 1184/1195/346 1182/1193/344 -f 1185/1196/347 1091/1102/306 1184/1195/346 -f 1185/1196/347 1089/1100/306 1091/1102/306 -f 1155/1166/318 1186/1197/348 1168/1179/330 -f 1187/1198/349 1188/1199/349 1189/1200/350 -f 1190/1201/351 1191/1202/352 1154/1165/317 -f 1191/1202/352 1190/1201/351 1192/1203/353 -f 1193/1204/354 1194/1205/355 1195/1206/356 -f 1196/1207/357 1197/1208/357 1194/1205/355 -f 1198/1209/358 1189/1200/350 1199/1210/359 -f 1200/1211/360 1201/1212/361 1189/1200/350 -f 1202/1213/362 1203/1214/363 1204/1215/364 -f 1205/1216/365 1204/1215/364 1206/1217/366 -f 1207/1218/367 1208/1219/368 1209/1220/369 -f 1200/1211/360 1198/1209/358 1208/1219/368 -f 1210/1221/370 1211/1222/370 1212/1223/371 -f 1203/1214/363 1202/1213/362 1213/1224/372 -f 1214/1225/315 1155/1166/318 1154/1165/317 -f 1215/1226/373 1163/1174/325 1162/1173/324 -f 1216/1227/331 1186/1197/348 1155/1166/318 -f 1146/1157/310 1215/1226/373 1217/1228/374 -f 1218/1229/375 1174/1185/336 1173/1184/335 -f 1201/1212/361 1200/1211/360 1219/1230/359 -f 1220/1231/338 1221/1232/341 1222/1233/340 -f 1216/1227/331 1220/1231/338 1223/1234/339 -f 1224/1235/333 1222/1233/340 1221/1232/341 -f 1225/1236/376 1180/1191/342 1226/1237/377 -f 1227/1238/378 1225/1236/376 1228/1239/379 -f 1137/1148/310 1227/1238/378 1138/1149/310 -f 1229/1240/380 1148/1159/311 1150/1161/313 -f 1153/1164/316 1154/1165/317 1151/1162/314 -f 1159/1170/321 1156/1167/319 1158/1169/320 -f 1161/1172/323 1159/1170/321 1160/1171/322 -f 1160/1171/322 1149/1160/312 1161/1172/323 -f 1167/1178/329 1162/1173/324 1164/1175/326 -f 1164/1175/326 1165/1176/327 1167/1178/329 -f 1165/1176/327 1085/1096/306 1166/1177/328 -f 1175/1186/337 1170/1181/332 1172/1183/334 -f 1172/1183/334 1173/1184/335 1175/1186/337 -f 1179/1190/341 1176/1187/338 1178/1189/340 -f 1176/1187/338 1169/1180/331 1177/1188/339 -f 1178/1189/340 1171/1182/333 1179/1190/341 -f 1226/1237/377 1180/1191/342 1182/1193/344 -f 1181/1192/343 1183/1194/345 1182/1193/344 -f 1183/1194/345 1185/1196/347 1184/1195/346 -f 1151/1162/314 1155/1166/318 1168/1179/330 -f 1201/1212/361 1187/1198/349 1189/1200/350 -f 1153/1164/316 1190/1201/351 1154/1165/317 -f 1195/1206/356 1191/1202/352 1192/1203/353 -f 1192/1203/353 1193/1204/354 1195/1206/356 -f 1193/1204/354 1196/1207/357 1194/1205/355 -f 1198/1209/358 1200/1211/360 1189/1200/350 -f 1205/1216/365 1202/1213/362 1204/1215/364 -f 1209/1220/369 1205/1216/365 1206/1217/366 -f 1206/1217/366 1207/1218/367 1209/1220/369 -f 1207/1218/367 1200/1211/360 1208/1219/368 -f 1213/1224/372 1210/1221/370 1212/1223/371 -f 1212/1223/371 1203/1214/363 1213/1224/372 -f 1217/1228/374 1215/1226/373 1162/1173/324 -f 1120/1131/310 1146/1157/310 1217/1228/374 -f 1224/1235/333 1218/1229/375 1173/1184/335 -f 1223/1234/339 1220/1231/338 1222/1233/340 -f 1186/1197/348 1216/1227/331 1223/1234/339 -f 1218/1229/375 1224/1235/333 1221/1232/341 -f 1228/1239/379 1225/1236/376 1226/1237/377 -f 1138/1149/310 1227/1238/378 1228/1239/379 -o mag_pistol_0 -v -1.109136 1.854146 1.546994 -v -1.109136 6.483851 2.313161 -v -1.109136 1.746315 1.309461 -v 1.109136 6.483851 2.313161 -v 1.109136 6.193875 2.563060 -v 1.109136 1.854146 1.546994 -v 1.109136 1.746315 1.309461 -v -1.109136 6.193875 2.563060 -v -1.109136 7.455005 0.432841 -v -0.855096 7.454038 0.681172 -v -0.637953 7.455005 0.432841 -v -1.109136 7.447666 2.316916 -v -0.851242 7.447666 2.316916 -v -0.645065 7.456246 0.114420 -v -0.808240 7.456246 0.114420 -v -0.882817 -7.449294 -6.242331 -v -1.332151 -7.578506 -5.806304 -v -1.109136 -7.583717 -5.788713 -v -1.260158 -8.694220 -2.041337 -v -1.109136 -8.686133 -2.068621 -v -0.818644 -8.777006 -1.761974 -v -0.549908 -9.201518 -0.329464 -v 0.549908 -9.201518 -0.329464 -v 0.855096 7.454038 0.681172 -v 1.109136 7.455005 0.432841 -v 0.637953 7.455005 0.432841 -v 0.645065 7.456246 0.114420 -v 0.808240 7.456246 0.114420 -v -0.413784 6.208827 -0.016872 -v 0.413784 6.208827 -0.016872 -v 0.440888 6.323021 -0.358271 -v 0.851242 7.447666 2.316916 -v -0.791829 -7.487273 -6.114170 -v 0.791829 -7.487273 -6.114170 -v 0.882817 -7.449294 -6.242331 -v 1.109136 -7.583717 -5.788713 -v 1.332151 -7.578506 -5.806304 -v 1.109136 -8.686133 -2.068621 -v -0.527911 -9.865828 -0.558223 -v 0.527911 -9.865828 -0.558223 -v 0.549908 -9.201518 -0.329464 -v 0.527911 -9.865828 -0.558223 -v -0.527911 -9.865828 -0.558223 -v -1.263812 -9.320386 -2.284041 -v -0.889556 -7.991921 -6.487401 -v 0.889556 -7.991921 -6.487401 -v 1.326758 -8.130615 -6.048566 -v 1.263812 -9.320386 -2.284041 -v -1.326758 -8.130615 -6.048566 -v 1.260158 -8.694220 -2.041337 -v 0.818644 -8.777006 -1.761974 -v -0.440888 6.323021 -0.358271 -v 1.109136 7.447666 2.316916 -v -0.549908 -9.201518 -0.329464 -v -0.330292 5.643600 3.823889 -v 0.330292 5.643600 3.823889 -v -0.639183 4.693711 3.350439 -v -0.784649 4.758710 3.184810 -v -0.823423 6.188930 3.832172 -v -0.613250 5.916148 3.869261 -v 0.639183 4.693711 3.350439 -v 0.613250 5.916148 3.869261 -v -0.791829 -7.487273 -6.114170 -v -0.440888 6.323021 -0.358271 -v 0.791829 -7.487273 -6.114170 -v 1.109136 6.187971 4.078715 -v 1.109136 1.608211 2.157616 -v 1.109136 7.455005 0.432841 -v 1.109136 -7.583717 -5.788713 -v 1.109136 1.421237 1.150594 -v 1.109136 1.152737 1.225781 -v 0.613250 6.186937 4.344060 -v 0.613250 5.905007 4.230343 -v 0.807799 6.186929 4.345726 -v -0.367306 5.610397 4.110494 -v -0.804550 1.432484 2.382775 -v 0.367306 5.610397 4.110494 -v -0.613250 6.186937 4.344060 -v -0.807799 6.186929 4.345726 -v -0.613250 5.905007 4.230343 -v -0.818644 -8.777006 -1.761974 -v 0.818644 -8.777006 -1.761974 -v -0.775337 0.764493 2.107609 -v -1.109136 1.608211 2.157616 -v -1.109136 7.455005 0.432841 -v -1.109136 1.421237 1.150594 -v -1.109136 -7.583717 -5.788713 -v -1.109136 1.152737 1.225781 -v -0.629678 6.747400 -0.181054 -v 0.440888 6.323021 -0.358271 -v 0.629678 6.747400 -0.181054 -v -0.784480 5.973367 0.123958 -v -0.784649 4.758710 3.184810 -v 0.784480 5.973367 0.123958 -v 1.109136 7.447666 2.316916 -v 1.109136 -8.686133 -2.068621 -v 0.804550 1.432484 2.382775 -v 0.775337 0.764493 2.107609 -v -1.109136 0.828570 1.868721 -v -1.109136 -8.686133 -2.068621 -v -1.109136 6.187971 4.078715 -v -0.613250 6.189570 3.985306 -v -1.109136 6.193875 2.563060 -v -1.109136 6.187971 4.078715 -v -0.823423 6.188930 3.832172 -v -0.808240 7.456246 0.114420 -v -1.109136 7.447666 2.316916 -v -1.109136 6.483851 2.313161 -v -0.839998 6.483851 2.313161 -v -0.855295 6.193875 2.563060 -v -0.855096 7.454038 0.681172 -v -0.851242 7.447666 2.316916 -v -0.839998 6.483851 2.313161 -v -0.613250 5.916148 3.869261 -v -0.613250 5.905007 4.230343 -v -0.367306 5.610397 4.110494 -v -0.613250 6.189570 3.985306 -v -0.613250 6.186937 4.344060 -v -0.804550 1.432484 2.382775 -v -0.804550 1.432484 2.382775 -v -0.836434 1.761413 1.534160 -v -0.864811 1.209287 1.297543 -v -0.866598 1.383340 1.228519 -v -1.109136 1.608211 2.157616 -v -1.109136 1.854146 1.546994 -v -0.836434 1.761413 1.534160 -v -1.109136 1.746315 1.309461 -v -0.853872 1.693580 1.365606 -v -1.109136 1.421237 1.150594 -v -0.866598 1.383340 1.228519 -v -1.109136 1.152737 1.225781 -v -0.864811 1.209287 1.297543 -v -1.109136 0.828570 1.868721 -v -0.775337 0.764493 2.107609 -v -0.818644 -8.777006 -1.761974 -v -1.326758 -8.130615 -6.048566 -v -1.332151 -7.578506 -5.806304 -v -0.882817 -7.449294 -6.242331 -v -1.263812 -9.320386 -2.284041 -v -1.260158 -8.694220 -2.041337 -v -0.527911 -9.865828 -0.558223 -v -0.549908 -9.201518 -0.329464 -v -0.855295 6.193875 2.563060 -v -0.637953 7.455005 0.432841 -v -0.610240 6.670014 0.107513 -v -0.586664 6.044359 -0.058251 -v -0.413784 6.208827 -0.016872 -v -0.629678 6.747400 -0.181054 -v -0.645065 7.456246 0.114420 -v -0.610240 6.670014 0.107513 -v -0.784480 5.973367 0.123958 -v -0.637953 7.455005 0.432841 -v -0.413784 6.208827 -0.016872 -v -0.440888 6.323021 -0.358271 -v -0.807799 6.186929 4.345726 -v -0.613250 6.189570 3.985306 -v 0.586664 6.044359 -0.058251 -v 0.889556 -7.991921 -6.487401 -v -0.889556 -7.991921 -6.487401 -v 0.784480 5.973367 0.123958 -v 0.855096 7.454038 0.681172 -v 0.610240 6.670014 0.107513 -v 0.637953 7.455005 0.432841 -v 0.645065 7.456246 0.114420 -v 0.610240 6.670014 0.107513 -v 1.109136 6.187971 4.078715 -v 1.109136 6.193875 2.563060 -v 0.823423 6.188930 3.832172 -v 0.851242 7.447666 2.316916 -v 0.839998 6.483851 2.313161 -v 0.855295 6.193875 2.563060 -v 0.413784 6.208827 -0.016872 -v 0.440888 6.323021 -0.358271 -v 0.413784 6.208827 -0.016872 -v 0.629678 6.747400 -0.181054 -v 0.807799 6.186929 4.345726 -v 0.613250 6.189570 3.985306 -v 0.784649 4.758710 3.184810 -v 0.586664 6.044359 -0.058251 -v 0.613250 6.186937 4.344060 -v 0.613250 6.189570 3.985306 -v 0.823423 6.188930 3.832172 -v 0.808240 7.456246 0.114420 -v 1.109136 7.447666 2.316916 -v 0.851242 7.447666 2.316916 -v 0.839998 6.483851 2.313161 -v 1.109136 6.483851 2.313161 -v 0.855295 6.193875 2.563060 -v -0.330292 5.643600 3.823889 -v 0.367306 5.610397 4.110494 -v 0.613250 5.916148 3.869261 -v 0.330292 5.643600 3.823889 -v 0.613250 5.905007 4.230343 -v 0.613250 6.186937 4.344060 -v 0.807799 6.186929 4.345726 -v 0.804550 1.432484 2.382775 -v 0.804550 1.432484 2.382775 -v 0.775337 0.764493 2.107609 -v 0.864811 1.209287 1.297543 -v 0.866598 1.383340 1.228519 -v 0.853872 1.693580 1.365606 -v 0.836434 1.761413 1.534160 -v 1.109136 1.608211 2.157616 -v 0.804550 1.432484 2.382775 -v 0.836434 1.761413 1.534160 -v 1.109136 1.854146 1.546994 -v 0.853872 1.693580 1.365606 -v 1.109136 1.746315 1.309461 -v 0.866598 1.383340 1.228519 -v 1.109136 1.421237 1.150594 -v 0.864811 1.209287 1.297543 -v 1.109136 1.152737 1.225781 -v 0.775337 0.764493 2.107609 -v 1.109136 0.828570 1.868721 -v 0.775337 0.764493 2.107609 -v 0.818644 -8.777006 -1.761974 -v -0.613250 6.186937 4.344060 -v 1.326758 -8.130615 -6.048566 -v 0.882817 -7.449294 -6.242331 -v 1.332151 -7.578506 -5.806304 -v 1.260158 -8.694220 -2.041337 -v 1.263812 -9.320386 -2.284041 -v 0.549908 -9.201518 -0.329464 -v 0.637953 7.455005 0.432841 -v 0.610240 6.670014 0.107513 -v 0.586664 6.044359 -0.058251 -v -0.586664 6.044359 -0.058251 -v -0.639183 4.693711 3.350439 -v 0.639183 4.693711 3.350439 -v 0.784649 4.758710 3.184810 -v -1.109136 7.447666 2.316916 -v -0.851242 7.447666 2.316916 -v -0.807799 6.186929 4.345726 -v -0.775337 0.764493 2.107609 -v -0.853872 1.693580 1.365606 -v -0.804550 1.432484 2.382775 -v -0.775337 0.764493 2.107609 -v 0.613250 6.189570 3.985306 -v 1.109136 0.828570 1.868721 -v 0.527911 -9.865828 -0.558223 -v 0.645065 7.456246 0.114420 -v -0.645065 7.456246 0.114420 -vt 0.318637 0.836460 -vt 0.322686 0.835525 -vt 0.318469 0.836302 -vt 0.322662 0.829447 -vt 0.322506 0.829146 -vt 0.318606 0.828545 -vt 0.318439 0.828704 -vt 0.322533 0.835828 -vt 0.335540 0.815841 -vt 0.335689 0.816068 -vt 0.335880 0.815923 -vt 0.335363 0.817407 -vt 0.335570 0.817415 -vt 0.335928 0.815727 -vt 0.335827 0.815658 -vt 0.338110 0.834998 -vt 0.338521 0.834581 -vt 0.338361 0.834565 -vt 0.338450 0.830987 -vt 0.338327 0.831013 -vt 0.338045 0.830721 -vt 0.337797 0.829353 -vt 0.336791 0.829355 -vt 0.338509 0.816056 -vt 0.338639 0.815806 -vt 0.338293 0.815922 -vt 0.338229 0.815719 -vt 0.338328 0.815642 -vt 0.336756 0.815704 -vt 0.337372 0.815710 -vt 0.337407 0.815436 -vt 0.338796 0.817419 -vt 0.338027 0.834876 -vt 0.336577 0.834878 -vt 0.336494 0.835000 -vt 0.336242 0.834568 -vt 0.336082 0.834585 -vt 0.336266 0.831016 -vt 0.351326 0.453820 -vt 0.352262 0.453765 -vt 0.352318 0.454386 -vt 0.365837 0.453882 -vt 0.365836 0.454819 -vt 0.367442 0.455473 -vt 0.371353 0.455145 -vt 0.371355 0.453566 -vt 0.370947 0.453178 -vt 0.367444 0.453230 -vt 0.370945 0.455532 -vt 0.336143 0.830990 -vt 0.336546 0.830723 -vt 0.336722 0.815432 -vt 0.339004 0.817387 -vt 0.351343 0.454443 -vt 0.336608 0.810165 -vt 0.336600 0.809579 -vt 0.335671 0.810452 -vt 0.335670 0.810656 -vt 0.337063 0.810641 -vt 0.336849 0.810420 -vt 0.335654 0.809318 -vt 0.336833 0.809316 -vt 0.308406 0.833228 -vt 0.321347 0.832873 -vt 0.308400 0.831858 -vt 0.323003 0.827899 -vt 0.318606 0.827962 -vt 0.322837 0.831313 -vt 0.308428 0.831448 -vt 0.318119 0.828727 -vt 0.317924 0.828577 -vt 0.334726 0.805815 -vt 0.334724 0.806084 -vt 0.334898 0.805815 -vt 0.333853 0.806363 -vt 0.333448 0.810373 -vt 0.334505 0.806366 -vt 0.333637 0.805810 -vt 0.333465 0.805809 -vt 0.333636 0.806080 -vt 0.333393 0.820149 -vt 0.334845 0.820155 -vt 0.333471 0.811014 -vt 0.318642 0.837043 -vt 0.322847 0.833658 -vt 0.318149 0.836281 -vt 0.308437 0.833638 -vt 0.317955 0.836433 -vt 0.321830 0.833071 -vt 0.321344 0.832110 -vt 0.321826 0.831909 -vt 0.338990 0.829527 -vt 0.338986 0.832448 -vt 0.340382 0.829528 -vt 0.323455 0.829763 -vt 0.308753 0.828027 -vt 0.334875 0.810379 -vt 0.334847 0.811020 -vt 0.317906 0.837069 -vt 0.308789 0.837056 -vt 0.323039 0.837070 -vt 0.337112 0.810416 -vt 0.335399 0.818676 -vt 0.335644 0.820232 -vt 0.335864 0.819933 -vt 0.322740 0.833285 -vt 0.335363 0.817407 -vt 0.335368 0.818297 -vt 0.335604 0.818285 -vt 0.335628 0.818648 -vt 0.336965 0.813654 -vt 0.337545 0.812323 -vt 0.336761 0.811981 -vt 0.336450 0.819974 -vt 0.336387 0.820399 -vt 0.336865 0.820333 -vt 0.336109 0.820051 -vt 0.336132 0.820332 -vt 0.318573 0.837406 -vt 0.297273 0.862936 -vt 0.296468 0.862987 -vt 0.296450 0.863484 -vt 0.296375 0.863361 -vt 0.296982 0.862655 -vt 0.296349 0.862774 -vt 0.296468 0.862987 -vt 0.296171 0.863007 -vt 0.296386 0.863086 -vt 0.296139 0.863393 -vt 0.296375 0.863361 -vt 0.296301 0.863656 -vt 0.296450 0.863484 -vt 0.296981 0.863857 -vt 0.297271 0.863612 -vt 0.308818 0.837437 -vt 0.360171 0.453244 -vt 0.360165 0.453779 -vt 0.359601 0.453718 -vt 0.363650 0.453662 -vt 0.363616 0.454257 -vt 0.365371 0.453864 -vt 0.365306 0.454484 -vt 0.336615 0.811674 -vt 0.336865 0.813929 -vt 0.336111 0.813900 -vt 0.335542 0.813822 -vt 0.335664 0.813999 -vt 0.336339 0.815514 -vt 0.335928 0.815727 -vt 0.336384 0.815738 -vt 0.335562 0.813576 -vt 0.335880 0.815923 -vt 0.336756 0.815704 -vt 0.336722 0.815432 -vt 0.335975 0.820462 -vt 0.336109 0.820051 -vt 0.335363 0.814848 -vt 0.358032 0.453178 -vt 0.359611 0.453190 -vt 0.335454 0.806199 -vt 0.336854 0.806081 -vt 0.335993 0.805859 -vt 0.338293 0.815922 -vt 0.338229 0.815719 -vt 0.337754 0.815749 -vt 0.338970 0.820225 -vt 0.339108 0.818663 -vt 0.338736 0.819939 -vt 0.337473 0.807394 -vt 0.336699 0.807758 -vt 0.336562 0.808069 -vt 0.335538 0.814723 -vt 0.337407 0.815436 -vt 0.337372 0.815710 -vt 0.337796 0.815517 -vt 0.338647 0.820469 -vt 0.338501 0.820063 -vt 0.335647 0.809115 -vt 0.335427 0.805954 -vt 0.338482 0.820342 -vt 0.337096 0.809313 -vt 0.337040 0.809089 -vt 0.322734 0.831687 -vt 0.339004 0.817387 -vt 0.338796 0.817419 -vt 0.338866 0.818294 -vt 0.339103 0.818281 -vt 0.338879 0.818655 -vt 0.336917 0.819991 -vt 0.337747 0.820341 -vt 0.338164 0.819987 -vt 0.337700 0.819998 -vt 0.338225 0.820410 -vt 0.338482 0.820342 -vt 0.323089 0.827553 -vt 0.318534 0.827599 -vt 0.299359 0.862966 -vt 0.299357 0.863640 -vt 0.300188 0.863503 -vt 0.300265 0.863381 -vt 0.300257 0.863103 -vt 0.300174 0.863004 -vt 0.299646 0.862698 -vt 0.299359 0.862966 -vt 0.300174 0.863004 -vt 0.300297 0.862779 -vt 0.300257 0.863103 -vt 0.300477 0.863024 -vt 0.300265 0.863381 -vt 0.300502 0.863417 -vt 0.300188 0.863503 -vt 0.300332 0.863678 -vt 0.299357 0.863640 -vt 0.317870 0.827942 -vt 0.317895 0.827574 -vt 0.308779 0.827646 -vt 0.336132 0.820332 -vt 0.357471 0.453223 -vt 0.358034 0.453706 -vt 0.357469 0.453758 -vt 0.354011 0.454184 -vt 0.353986 0.453589 -vt 0.352318 0.454386 -vt 0.336746 0.805809 -vt 0.335925 0.814967 -vt 0.340207 0.829355 -vt 0.339165 0.829353 -vt 0.339115 0.832606 -vt 0.340249 0.832608 -vt 0.340379 0.832450 -vt 0.323476 0.835203 -vt 0.335570 0.817415 -vt 0.323128 0.837416 -vt 0.297271 0.863612 -vt 0.296386 0.863086 -vt 0.297273 0.862936 -vt 0.317935 0.837436 -vt 0.338501 0.820063 -vt 0.299652 0.863857 -vt 0.352262 0.453765 -vt 0.322736 0.831880 -vt 0.322741 0.833092 -vn -1.0000 0.0000 0.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0000 1.0000 0.0039 -vn -0.0000 0.9588 0.2841 -vn 0.0000 0.9484 0.3172 -vn 0.0000 -0.3256 0.9455 -vn 0.0000 -0.9535 -0.3014 -vn 0.1103 0.4144 -0.9034 -vn -0.0735 0.4256 -0.9019 -vn 0.3275 0.3966 -0.8576 -vn 0.9708 0.1320 -0.2001 -vn 0.7758 0.2586 -0.5755 -vn 0.4477 0.3447 -0.8251 -vn -0.3560 0.3788 -0.8543 -vn -0.5482 0.3301 -0.7685 -vn -0.1944 0.3772 -0.9055 -vn -0.0010 0.3847 -0.9230 -vn 0.1540 0.3797 -0.9122 -vn 0.8357 -0.2111 0.5070 -vn 0.9636 -0.1035 0.2467 -vn 0.9886 0.0575 -0.1389 -vn 0.9535 0.1154 -0.2784 -vn -0.0080 -0.3741 0.9274 -vn 0.0012 -0.3791 0.9254 -vn 0.2219 -0.3696 0.9023 -vn -0.0034 -0.3819 0.9242 -vn -0.1726 -0.3764 0.9102 -vn 0.0022 -0.3819 0.9242 -vn 0.0080 -0.3741 0.9274 -vn -0.2219 -0.3696 0.9023 -vn -0.0011 -0.3791 0.9254 -vn -0.4729 -0.3319 0.8162 -vn 0.3572 -0.3516 0.8653 -vn -0.1539 -0.3721 0.9154 -vn -0.9636 -0.1035 0.2467 -vn -0.9886 0.0575 -0.1389 -vn -0.9535 0.1154 -0.2784 -vn -0.0009 0.3847 -0.9230 -vn 0.0010 0.3847 -0.9230 -vn 0.0009 0.3847 -0.9230 -vn 0.0000 0.9310 0.3650 -vn 0.0000 0.9300 0.3676 -vn 0.0000 0.9302 0.3669 -vn 0.9710 -0.0914 0.2209 -vn 0.2322 -0.3719 0.8988 -vn 0.1539 -0.3734 0.9148 -vn -0.8442 -0.2022 0.4964 -vn -0.9710 -0.0914 0.2209 -vn -0.8357 -0.2111 0.5070 -vn 0.5563 0.3246 -0.7649 -vn 0.0001 0.9608 0.2772 -vn -0.0015 1.0000 0.0040 -vn -0.0014 1.0000 0.0023 -vn -0.5115 0.3297 -0.7935 -vn 0.0000 -0.0039 1.0000 -vn 0.0001 0.4597 0.8881 -vn 0.0000 0.2278 0.9737 -vn -0.0000 0.8351 0.5501 -vn 0.9387 -0.0984 0.3305 -vn 0.9999 0.0117 -0.0023 -vn 0.9998 0.0092 0.0149 -vn 0.9323 0.3580 0.0512 -vn 0.9411 0.3379 0.0104 -vn 0.5309 0.8401 0.1116 -vn -0.9980 -0.0211 0.0598 -vn -0.9970 0.0146 0.0763 -vn -0.9979 -0.0076 0.0647 -vn -0.9959 0.0068 0.0899 -vn -0.2927 -0.8910 -0.3470 -vn -0.3083 -0.9391 0.1520 -vn -0.3077 -0.9451 -0.1103 -vn -0.3087 -0.5872 0.7483 -vn -0.2906 -0.7546 0.5883 -vn -0.3189 0.0702 0.9452 -vn -0.3014 -0.1559 0.9407 -vn -0.2877 0.6969 0.6569 -vn -0.3131 0.5002 0.8073 -vn -0.1491 0.8829 0.4452 -vn -0.2405 0.8515 0.4659 -vn -0.9295 0.1497 -0.3372 -vn -0.9281 0.1420 -0.3443 -vn -0.3883 0.3779 -0.8405 -vn -0.9660 -0.0947 0.2406 -vn -0.9906 -0.0493 0.1279 -vn -0.9257 -0.1502 0.3472 -vn -0.9273 -0.1397 0.3472 -vn 0.9997 0.0240 0.0100 -vn 0.9368 -0.1053 0.3338 -vn 0.8731 -0.0619 0.4836 -vn 0.2534 -0.2345 0.9385 -vn 0.0038 -0.2478 0.9688 -vn 0.9613 0.2751 0.0139 -vn 0.9983 0.0446 -0.0387 -vn 0.8731 -0.0618 0.4836 -vn 0.9557 -0.0568 0.2888 -vn 0.9367 -0.1053 0.3338 -vn 0.9220 0.3843 0.0482 -vn 0.9207 0.3862 0.0561 -vn -0.0011 1.0000 0.0067 -vn -0.0020 1.0000 0.0042 -vn -0.1880 -0.2385 0.9528 -vn 0.2591 0.4017 -0.8784 -vn -0.3925 0.3826 -0.8364 -vn -0.9557 -0.0568 0.2888 -vn -0.9387 -0.0984 0.3305 -vn -0.8731 -0.0618 0.4836 -vn -0.9367 -0.1053 0.3338 -vn -0.9983 0.0446 -0.0387 -vn 0.0015 1.0000 0.0040 -vn -0.0000 0.9608 0.2772 -vn 0.0012 1.0000 0.0025 -vn -0.9999 0.0117 -0.0023 -vn -0.9998 0.0092 0.0149 -vn -0.9997 0.0240 0.0100 -vn -0.0058 -0.2497 0.9683 -vn -0.9207 0.3862 0.0561 -vn -0.9220 0.3843 0.0482 -vn -0.9613 0.2751 0.0139 -vn 0.0011 1.0000 0.0067 -vn 0.0020 1.0000 0.0042 -vn -0.9140 0.1852 -0.3611 -vn -0.0000 1.0000 0.0073 -vn -0.5563 0.3246 -0.7649 -vn -0.7857 0.2615 -0.5606 -vn 0.5115 0.3297 -0.7935 -vn 0.0000 0.4597 0.8881 -vn 0.2491 0.9578 0.1431 -vn -0.4021 0.9083 0.1151 -vn -0.9323 0.3580 0.0512 -vn -0.3771 0.9132 0.1545 -vn -0.9411 0.3379 0.0104 -vn 0.9980 -0.0211 0.0598 -vn 0.9949 -0.0724 0.0701 -vn 0.9979 -0.0076 0.0647 -vn 0.9959 0.0068 0.0899 -vn 0.9944 -0.0057 0.1052 -vn 0.9970 0.0146 0.0763 -vn 0.2927 -0.8910 -0.3470 -vn 0.2692 -0.9013 -0.3393 -vn 0.3091 -0.9446 -0.1104 -vn 0.3083 -0.9391 0.1520 -vn 0.2906 -0.7546 0.5883 -vn 0.3087 -0.5872 0.7483 -vn 0.3014 -0.1559 0.9407 -vn 0.3189 0.0702 0.9452 -vn 0.3131 0.5002 0.8073 -vn 0.2877 0.6969 0.6569 -vn 0.2405 0.8515 0.4659 -vn 0.8442 -0.2022 0.4964 -vn 0.1539 -0.3733 0.9148 -vn 0.9294 0.1498 -0.3372 -vn 0.5126 0.3515 -0.7834 -vn 0.9281 0.1420 -0.3443 -vn 0.9906 -0.0493 0.1279 -vn 0.9660 -0.0947 0.2406 -vn 0.9273 -0.1397 0.3472 -vn -0.9368 -0.1053 0.3338 -vn -0.8731 -0.0619 0.4836 -vn 0.0000 0.9318 0.3630 -vn 0.0000 0.9309 0.3653 -vn -0.0000 0.9303 0.3668 -vn -0.9949 -0.0724 0.0701 -vn -0.9944 -0.0057 0.1052 -vn -0.2692 -0.9013 -0.3393 -vn -0.1539 -0.3720 0.9154 -vn 0.1491 0.8829 0.4452 -vn 0.9257 -0.1502 0.3472 -vn 0.0000 0.3847 -0.9230 -s off -f 1230/1241/381 1231/1242/381 1232/1243/381 -f 1233/1244/382 1234/1245/382 1235/1246/382 -f 1233/1244/382 1235/1246/382 1236/1247/382 -f 1230/1241/381 1237/1248/381 1231/1242/381 -f 1238/1249/383 1239/1250/383 1240/1251/383 -f 1238/1249/383 1241/1252/383 1242/1253/383 -f 1240/1251/383 1243/1254/383 1244/1255/383 -f 1245/1256/384 1246/1257/384 1247/1258/384 -f 1246/1257/384 1248/1259/384 1249/1260/384 -f 1244/1255/383 1238/1249/383 1240/1251/383 -f 1250/1261/384 1251/1262/384 1252/1263/384 -f 1253/1264/383 1254/1265/383 1255/1266/383 -f 1256/1267/383 1255/1266/383 1257/1268/383 -f 1258/1269/385 1259/1270/385 1260/1271/385 -f 1254/1265/383 1253/1264/383 1261/1272/383 -f 1245/1256/384 1262/1273/384 1263/1274/384 -f 1264/1275/384 1263/1274/384 1265/1276/384 -f 1266/1277/384 1265/1276/384 1267/1278/384 -f 1268/1279/386 1269/1280/386 1270/1281/386 -f 1254/1265/383 1257/1268/383 1255/1266/383 -f 1271/1282/387 1272/1283/387 1273/1284/387 -f 1274/1285/387 1275/1286/387 1276/1287/387 -f 1277/1288/387 1273/1284/387 1278/1289/387 -f 1279/1290/384 1267/1278/384 1280/1291/384 -f 1239/1250/383 1238/1249/383 1242/1253/383 -f 1262/1273/384 1245/1256/384 1247/1258/384 -f 1247/1258/384 1246/1257/384 1249/1260/384 -f 1280/1291/384 1250/1261/384 1252/1263/384 -f 1281/1292/385 1258/1269/385 1260/1271/385 -f 1282/1293/383 1254/1265/383 1261/1272/383 -f 1264/1275/384 1245/1256/384 1263/1274/384 -f 1266/1277/384 1264/1275/384 1265/1276/384 -f 1279/1290/384 1266/1277/384 1267/1278/384 -f 1283/1294/386 1268/1279/386 1270/1281/386 -f 1277/1288/387 1271/1282/387 1273/1284/387 -f 1278/1289/387 1274/1285/387 1276/1287/387 -f 1276/1287/387 1277/1288/387 1278/1289/387 -f 1252/1263/384 1279/1290/384 1280/1291/384 -f 1250/1261/384 1249/1260/384 1251/1262/384 -s 1 -f 1284/1295/388 1285/1296/389 1286/1297/390 -f 1286/1297/390 1287/1298/391 1288/1299/392 -f 1286/1297/390 1289/1300/393 1284/1295/388 -f 1285/1296/389 1290/1301/394 1286/1297/390 -f 1285/1296/389 1291/1302/395 1290/1301/394 -f 1292/1303/396 1293/1304/397 1294/1305/398 -f 1295/1306/399 1296/1307/400 1234/1245/382 -f 1297/1308/401 1233/1244/382 1236/1247/382 -f 1298/1309/402 1297/1308/401 1299/1310/382 -f 1299/1310/382 1300/1311/382 1298/1309/402 -f 1301/1312/403 1302/1313/404 1303/1314/405 -f 1304/1315/406 1305/1316/407 1306/1317/408 -f 1307/1318/409 1308/1319/410 1309/1320/411 -f 1310/1321/412 1311/1322/413 1312/1323/414 -f 1230/1241/381 1313/1324/415 1237/1248/381 -f 1232/1243/381 1314/1325/416 1315/1326/381 -f 1315/1326/381 1316/1327/417 1317/1328/381 -f 1292/1303/396 1318/1329/418 1293/1304/397 -f 1293/1304/397 1319/1330/419 1294/1305/398 -f 1294/1305/398 1319/1330/419 1320/1331/420 -f 1321/1332/421 1322/1333/422 1323/1334/423 -f 1297/1308/401 1324/1335/382 1233/1244/382 -f 1296/1307/400 1235/1246/382 1234/1245/382 -f 1297/1308/401 1236/1247/382 1299/1310/382 -f 1300/1311/382 1325/1336/424 1298/1309/402 -f 1302/1313/404 1326/1337/425 1303/1314/405 -f 1302/1313/404 1306/1317/408 1326/1337/425 -f 1305/1316/407 1326/1337/425 1306/1317/408 -f 1304/1315/406 1309/1320/411 1305/1316/407 -f 1308/1319/410 1305/1316/407 1309/1320/411 -f 1311/1322/413 1327/1338/426 1312/1323/414 -f 1328/1339/427 1317/1328/381 1329/1340/428 -f 1231/1242/381 1314/1325/416 1232/1243/381 -f 1313/1324/415 1330/1341/429 1237/1248/381 -f 1314/1325/416 1316/1327/417 1315/1326/381 -f 1316/1327/417 1329/1340/428 1317/1328/381 -f 1288/1299/392 1331/1342/430 1289/1300/393 -f 1332/1343/431 1333/1344/432 1334/1345/433 -f 1335/1346/434 1292/1303/396 1316/1327/417 -f 1336/1347/435 1337/1348/436 1338/1349/437 -f 1337/1348/436 1332/1343/431 1339/1350/438 -f 1340/1351/439 1341/1352/440 1342/1353/441 -f 1343/1354/442 1344/1355/443 1345/1356/444 -f 1343/1354/442 1346/1357/382 1347/1358/382 -f 1330/1341/429 1313/1324/415 1348/1359/407 -f 1349/1360/445 1350/1361/446 1351/1362/447 -f 1352/1363/448 1351/1362/447 1350/1361/446 -f 1353/1364/449 1354/1365/450 1355/1366/451 -f 1354/1365/450 1356/1367/452 1357/1368/453 -f 1356/1367/452 1358/1369/454 1359/1370/455 -f 1358/1369/454 1360/1371/456 1361/1372/457 -f 1360/1371/456 1362/1373/458 1363/1374/459 -f 1328/1339/427 1329/1340/428 1364/1375/412 -f 1365/1376/460 1366/1377/461 1367/1378/462 -f 1365/1376/460 1368/1379/463 1369/1380/464 -f 1368/1379/463 1370/1381/465 1371/1382/466 -f 1287/1298/391 1372/1383/467 1288/1299/392 -f 1373/1384/468 1340/1351/439 1374/1385/469 -f 1374/1385/469 1375/1386/470 1376/1387/471 -f 1377/1388/472 1378/1389/473 1379/1390/474 -f 1340/1351/439 1380/1391/475 1374/1385/469 -f 1378/1389/473 1381/1392/476 1379/1390/474 -f 1380/1391/475 1342/1353/441 1372/1383/467 -f 1382/1393/477 1383/1394/478 1377/1388/472 -f 1333/1344/432 1384/1395/479 1385/1396/480 -f 1380/1391/475 1340/1351/439 1342/1353/441 -f 1339/1350/438 1332/1343/431 1334/1345/433 -f 1287/1298/391 1380/1391/475 1372/1383/467 -f 1374/1385/469 1380/1391/475 1375/1386/470 -f 1375/1386/470 1386/1397/481 1376/1387/471 -f 1379/1390/474 1382/1393/477 1377/1388/472 -f 1387/1398/482 1388/1399/483 1367/1378/462 -f 1389/1400/484 1390/1401/485 1391/1402/486 -f 1392/1403/487 1393/1404/488 1394/1405/486 -f 1395/1406/489 1396/1407/490 1397/1408/491 -f 1398/1409/492 1390/1401/485 1399/1410/493 -f 1399/1410/493 1389/1400/484 1400/1411/494 -f 1376/1387/471 1386/1397/481 1401/1412/495 -f 1402/1413/496 1403/1414/497 1404/1415/498 -f 1405/1416/499 1395/1406/489 1406/1417/500 -f 1390/1401/485 1389/1400/484 1399/1410/493 -f 1389/1400/484 1407/1418/501 1400/1411/494 -f 1389/1400/484 1391/1402/486 1408/1419/481 -f 1403/1414/497 1394/1405/486 1404/1415/498 -f 1395/1406/489 1397/1408/491 1406/1417/500 -f 1405/1416/499 1406/1417/500 1409/1420/502 -f 1291/1302/395 1410/1421/503 1411/1422/504 -f 1334/1345/433 1333/1344/432 1385/1396/480 -f 1412/1423/505 1297/1308/401 1298/1309/402 -f 1413/1424/435 1414/1425/435 1415/1426/437 -f 1416/1427/506 1415/1426/437 1417/1428/438 -f 1418/1429/507 1345/1356/444 1419/1430/508 -f 1420/1431/509 1421/1432/510 1419/1430/508 -f 1420/1431/509 1422/1433/511 1423/1434/381 -f 1295/1306/399 1424/1435/405 1425/1436/425 -f 1426/1437/512 1427/1438/513 1428/1439/514 -f 1429/1440/515 1430/1441/516 1431/1442/517 -f 1432/1443/518 1433/1444/519 1434/1445/520 -f 1435/1446/521 1434/1445/520 1436/1447/522 -f 1437/1448/523 1436/1447/522 1438/1449/524 -f 1439/1450/525 1438/1449/524 1440/1451/526 -f 1441/1452/527 1440/1451/526 1442/1453/528 -f 1443/1454/529 1444/1455/530 1445/1456/413 -f 1385/1396/480 1384/1395/479 1446/1457/502 -f 1447/1458/531 1387/1398/482 1448/1459/532 -f 1447/1458/531 1449/1460/533 1450/1461/534 -f 1451/1462/535 1450/1461/534 1452/1463/536 -f 1400/1411/494 1407/1418/501 1411/1422/504 -f 1390/1401/485 1453/1464/537 1391/1402/486 -f 1386/1397/481 1454/1465/538 1401/1412/495 -f 1393/1404/488 1404/1415/498 1394/1405/486 -f 1396/1407/490 1417/1428/438 1397/1408/491 -f 1249/1260/384 1248/1259/384 1251/1262/384 -f 1312/1323/414 1327/1338/426 1305/1316/407 -f 1455/1466/539 1456/1467/539 1321/1332/421 -f 1457/1468/540 1458/1469/540 1459/1470/541 -f 1322/1333/422 1459/1470/541 1323/1334/423 -f 1411/1422/504 1407/1418/501 1291/1302/395 -f 1300/1311/382 1443/1454/529 1325/1336/424 -f 1327/1338/426 1326/1337/425 1305/1316/407 -f 1231/1242/381 1460/1471/381 1314/1325/416 -f 1407/1418/501 1290/1301/394 1291/1302/395 -f 1289/1300/393 1286/1297/390 1288/1299/392 -f 1314/1325/416 1335/1346/434 1316/1327/417 -f 1461/1472/435 1336/1347/435 1338/1349/437 -f 1338/1349/437 1337/1348/436 1339/1350/438 -f 1418/1429/507 1343/1354/442 1345/1356/444 -f 1344/1355/443 1343/1354/442 1347/1358/382 -f 1462/1473/410 1330/1341/429 1348/1359/407 -f 1463/1474/542 1349/1360/445 1351/1362/447 -f 1464/1475/543 1352/1363/448 1350/1361/446 -f 1465/1476/544 1353/1364/449 1355/1366/451 -f 1355/1366/451 1354/1365/450 1357/1368/453 -f 1357/1368/453 1356/1367/452 1359/1370/455 -f 1359/1370/455 1358/1369/454 1361/1372/457 -f 1361/1372/457 1360/1371/456 1363/1374/459 -f 1466/1477/545 1328/1339/427 1364/1375/412 -f 1388/1399/483 1365/1376/460 1367/1378/462 -f 1366/1377/461 1365/1376/460 1369/1380/464 -f 1369/1380/464 1368/1379/463 1371/1382/466 -f 1448/1459/532 1387/1398/482 1367/1378/462 -f 1294/1305/398 1412/1423/505 1298/1309/402 -f 1416/1427/506 1413/1424/435 1415/1426/437 -f 1396/1407/490 1416/1427/506 1417/1428/438 -f 1421/1432/510 1418/1429/507 1419/1430/508 -f 1422/1433/511 1420/1431/509 1419/1430/508 -f 1467/1478/381 1420/1431/509 1423/1434/381 -f 1296/1307/400 1295/1306/399 1425/1436/425 -f 1431/1442/517 1426/1437/512 1428/1439/514 -f 1428/1439/514 1429/1440/515 1431/1442/517 -f 1435/1446/521 1432/1443/518 1434/1445/520 -f 1437/1448/523 1435/1446/521 1436/1447/522 -f 1439/1450/525 1437/1448/523 1438/1449/524 -f 1441/1452/527 1439/1450/525 1440/1451/526 -f 1468/1479/546 1441/1452/527 1442/1453/528 -f 1325/1336/424 1443/1454/529 1445/1456/413 -f 1449/1460/533 1447/1458/531 1448/1459/532 -f 1451/1462/535 1447/1458/531 1450/1461/534 -f 1469/1480/547 1451/1462/535 1452/1463/536 -f 1323/1334/423 1455/1466/539 1321/1332/421 -f 1322/1333/422 1457/1468/540 1459/1470/541 -f 1294/1305/398 1320/1331/420 1470/1481/548 -f 1294/1305/398 1470/1481/548 1412/1423/505 -f 1292/1303/396 1335/1346/434 1471/1482/548 -f 1292/1303/396 1471/1482/548 1318/1329/418 +f 31/1/3 33/2/4 32/1/3 +f 32/1/3 35/1/5 31/1/3 +f 36/1/5 37/1/6 35/1/5 +f 38/1/6 39/1/7 37/1/6 +f 40/1/7 41/1/8 39/1/7 +f 42/1/8 43/1/9 41/1/8 +f 44/1/9 45/1/10 43/1/9 +f 46/1/10 47/1/11 45/1/10 +f 48/1/11 49/1/12 47/1/11 +f 50/1/12 51/1/13 49/1/12 +f 52/1/13 53/1/14 51/1/13 +f 54/1/14 55/1/15 53/1/14 +f 56/1/15 57/1/16 55/1/15 +f 58/1/16 59/1/17 57/1/16 +f 34/2/4 60/1/17 33/2/4 +f 31/1/3 34/2/4 33/2/4 +f 32/1/3 36/1/5 35/1/5 +f 36/1/5 38/1/6 37/1/6 +f 38/1/6 40/1/7 39/1/7 +f 40/1/7 42/1/8 41/1/8 +f 42/1/8 44/1/9 43/1/9 +f 44/1/9 46/1/10 45/1/10 +f 46/1/10 48/1/11 47/1/11 +f 48/1/11 50/1/12 49/1/12 +f 50/1/12 52/1/13 51/1/13 +f 52/1/13 54/1/14 53/1/14 +f 54/1/14 56/1/15 55/1/15 +f 56/1/15 58/1/16 57/1/16 +f 58/1/16 60/1/17 59/1/17 +f 34/2/4 59/1/17 60/1/17 o lower_pistol_0 -v 1.709833 6.807340 5.318413 -v 1.709833 6.807340 5.149458 -v 1.965886 6.807340 5.149458 -v 1.363295 6.807340 7.165412 -v 1.363295 6.807340 5.318413 -v 1.882584 6.807340 5.848535 +v 1.709833 6.807342 5.318411 +v 1.709833 6.807342 5.149457 +v 1.965886 6.807342 5.149457 +v 1.363295 6.807342 7.165411 +v 1.363295 6.807342 5.318411 +v 1.882584 6.807342 5.848535 v 2.253843 6.902664 -4.747439 v 2.253843 6.534985 -3.056432 v 1.924818 6.534985 -3.056432 @@ -4710,244 +154,244 @@ v 1.924818 6.534985 -3.056432 v 2.253843 6.534985 -3.056432 v 2.253843 6.534985 -3.056432 v 2.253843 6.902664 -4.747439 -v 2.253843 7.162437 -4.697546 +v 2.253843 7.162436 -4.697546 v 1.924818 6.930664 -2.831019 v 1.592578 6.930664 -2.831019 -v 1.592578 7.603653 -2.269642 +v 1.592578 7.603653 -2.269644 v 1.592578 6.534985 -3.056432 v 1.592578 6.902664 -4.747439 v 1.924818 6.125614 -1.931486 v 1.592578 6.902664 -4.747439 -v 1.592578 7.162437 -4.697546 -v 2.253843 7.162437 -4.697546 -v 2.253843 7.603653 -2.269642 -v 2.253843 7.371370 -2.466391 -v 1.924818 7.371370 -2.466391 -v 2.253843 7.371370 -2.466391 -v 2.253843 7.603653 -2.269642 -v 2.253843 6.966193 -1.398447 -v 2.253843 7.603653 -2.269642 -v 1.592578 7.603653 -2.269642 -v 1.592578 6.966193 -1.398447 -v 1.592578 7.162437 -4.697546 +v 1.592578 7.162436 -4.697546 +v 2.253843 7.162436 -4.697546 +v 2.253843 7.603653 -2.269644 +v 2.253843 7.371370 -2.466393 +v 1.924818 7.371370 -2.466393 +v 2.253843 7.371370 -2.466393 +v 2.253843 7.603653 -2.269644 +v 2.253843 6.966193 -1.398448 +v 2.253843 7.603653 -2.269644 +v 1.592578 7.603653 -2.269644 +v 1.592578 6.966193 -1.398448 +v 1.592578 7.162436 -4.697546 v 1.592578 6.902664 -4.747439 v 1.592578 6.534985 -3.056432 v 2.253843 6.930664 -2.831019 -v 2.253843 7.162437 -4.697546 -v 1.592578 7.162437 -4.697546 -v 1.924818 7.371370 -2.466391 +v 2.253843 7.162436 -4.697546 +v 1.592578 7.162436 -4.697546 +v 1.924818 7.371370 -2.466393 v 1.924818 6.726052 -1.549974 v 1.924818 6.125614 -1.931486 -v 2.253843 6.966193 -1.398447 -v 1.592578 6.966193 -1.398447 +v 2.253843 6.966193 -1.398448 +v 1.592578 6.966193 -1.398448 v 1.924818 6.726052 -1.549974 -v 1.709833 7.483092 5.149458 -v 1.709833 6.807340 5.149458 -v 1.709833 7.118922 5.318413 -v 1.363295 7.118922 5.318413 -v 1.363295 6.807340 7.165412 -v 1.363295 7.118922 10.804636 -v 1.363295 6.201983 10.638463 -v 1.363295 6.617640 11.001136 -v 1.363295 7.118922 10.804636 -v 1.882584 7.118922 7.165412 -v 1.363295 7.118922 5.318413 -v 2.249606 7.118922 10.804636 -v 2.249606 7.118922 7.165412 +v 1.709833 7.483092 5.149457 +v 1.709833 6.807342 5.149457 +v 1.709833 7.118924 5.318411 +v 1.363295 7.118924 5.318411 +v 1.363295 6.807342 7.165411 +v 1.363295 7.118924 10.804634 +v 1.363295 6.201985 10.638463 +v 1.363295 6.617642 11.001134 +v 1.363295 7.118924 10.804634 +v 1.882584 7.118924 7.165411 +v 1.363295 7.118924 5.318411 +v 2.249606 7.118924 10.804634 +v 2.249606 7.118924 7.165411 v 1.709833 7.483090 5.848535 v 1.709833 7.483090 5.848535 -v 1.882584 7.118922 5.848535 +v 1.882584 7.118924 5.848535 v 1.965886 7.483090 5.848535 -v 2.249606 7.118922 10.804636 -v 2.249606 6.617640 11.001136 -v 2.249606 6.201983 10.638463 -v 2.249606 7.118922 7.165412 -v 1.363295 6.915576 11.004508 -v 1.363295 6.411723 10.933466 -v 1.709833 7.118922 5.848535 -v 1.709833 7.118922 5.848535 -v 1.882584 6.807340 5.848535 -v 1.965886 6.807340 5.848535 -v 2.249606 6.411723 10.933466 -v 2.249606 6.807340 7.165412 -v 2.249606 6.807340 7.165412 -v 2.249606 6.201983 10.638463 -v 1.363295 6.201983 10.638463 -v 1.363295 6.915576 11.004508 -v 2.249606 6.915576 11.004508 -v 1.363295 6.617640 11.001136 -v 2.249606 6.617640 11.001136 -v 1.363295 6.411723 10.933466 -v 2.249606 6.411723 10.933466 -v 1.882584 6.807340 7.165412 -v 1.709833 7.118922 5.318413 -v 1.363295 6.807340 5.318413 -v 1.363295 7.118922 5.318413 -v 1.709833 7.118922 5.318413 -v 1.709833 6.807340 5.149458 -v 1.709833 7.483092 5.149458 -v 1.965886 7.483092 5.149458 -v 1.965886 7.483092 5.149458 -v 1.709833 7.483092 5.149458 +v 2.249606 7.118924 10.804634 +v 2.249606 6.617642 11.001134 +v 2.249606 6.201985 10.638463 +v 2.249606 7.118924 7.165411 +v 1.363295 6.915578 11.004506 +v 1.363295 6.411725 10.933464 +v 1.709833 7.118924 5.848535 +v 1.709833 7.118924 5.848535 +v 1.882584 6.807342 5.848535 +v 1.965886 6.807342 5.848535 +v 2.249606 6.411725 10.933464 +v 2.249606 6.807342 7.165411 +v 2.249606 6.807342 7.165411 +v 2.249606 6.201985 10.638463 +v 1.363295 6.201985 10.638463 +v 1.363295 6.915578 11.004506 +v 2.249606 6.915578 11.004506 +v 1.363295 6.617642 11.001134 +v 2.249606 6.617642 11.001134 +v 1.363295 6.411725 10.933464 +v 2.249606 6.411725 10.933464 +v 1.882584 6.807342 7.165411 +v 1.709833 7.118924 5.318411 +v 1.363295 6.807342 5.318411 +v 1.363295 7.118924 5.318411 +v 1.709833 7.118924 5.318411 +v 1.709833 6.807342 5.149457 +v 1.709833 7.483092 5.149457 +v 1.965886 7.483092 5.149457 +v 1.965886 7.483092 5.149457 +v 1.709833 7.483092 5.149457 v 1.709833 7.483090 5.848535 -v 1.965886 6.807340 5.149458 -v 1.965886 7.483092 5.149458 +v 1.965886 6.807342 5.149457 +v 1.965886 7.483092 5.149457 v 1.965886 7.483090 5.848535 -v 1.882584 6.807340 5.848535 -v 1.882584 7.118922 5.848535 -v 1.882584 7.118922 7.165412 -v 1.882584 6.807340 7.165412 -v 1.882584 7.118922 7.165412 -v 2.249606 7.118922 7.165412 -v 1.363295 6.807340 5.318413 -v 1.882584 7.118922 5.848535 -v 1.709833 6.807340 5.318413 -v 1.709833 7.118922 5.848535 -v 2.249606 6.915576 11.004508 +v 1.882584 6.807342 5.848535 +v 1.882584 7.118924 5.848535 +v 1.882584 7.118924 7.165411 +v 1.882584 6.807342 7.165411 +v 1.882584 7.118924 7.165411 +v 2.249606 7.118924 7.165411 +v 1.363295 6.807342 5.318411 +v 1.882584 7.118924 5.848535 +v 1.709833 6.807342 5.318411 +v 1.709833 7.118924 5.848535 +v 2.249606 6.915578 11.004506 v 0.741864 8.870750 5.649786 v 0.685393 8.586851 5.649786 -v 0.685393 8.586849 22.443676 +v 0.685393 8.586853 22.443676 v -1.051055 4.245723 5.289183 v -1.051055 4.815591 5.698347 -v -1.582758 4.978194 4.997455 -v -1.051055 0.126897 9.525374 +v -1.582758 4.978196 4.997455 +v -1.051055 0.126899 9.525374 v -1.051055 0.126897 6.278877 v -1.051055 -0.223472 3.408138 -v -1.051055 5.194825 19.361946 -v -1.051055 4.834128 12.349441 -v -1.051055 4.834128 19.361946 -v -1.582758 5.194827 5.282278 -v -1.373788 7.218982 19.361946 -v -1.373788 6.342137 19.361946 -v -0.857694 7.218982 19.361946 -v -1.051055 5.194825 19.361946 -v -0.857694 5.453605 19.361946 -v -1.373788 5.534109 19.361946 -v 0.741864 8.870749 22.443676 -v 0.685393 8.586849 22.443676 -v 0.912610 8.492733 22.443676 -v 0.987802 8.870749 22.443676 -v 0.912610 8.492733 22.443676 +v -1.051055 5.194829 19.361946 +v -1.051055 4.834130 12.349441 +v -1.051055 4.834130 19.361946 +v -1.582758 5.194829 5.282278 +v -1.373788 7.218986 19.361946 +v -1.373788 6.342139 19.361946 +v -0.857694 7.218986 19.361946 +v -1.051055 5.194829 19.361946 +v -0.857694 5.453609 19.361946 +v -1.373788 5.534112 19.361946 +v 0.741864 8.870753 22.443676 +v 0.685393 8.586853 22.443676 +v 0.912610 8.492737 22.443676 +v 0.987802 8.870753 22.443676 +v 0.912610 8.492737 22.443676 v 0.912610 8.492735 5.649786 v 0.987802 8.870750 5.649786 v 0.912610 8.492735 5.649786 v 0.685393 8.586851 5.649786 v 0.524577 8.346173 5.649786 -v 0.524577 8.346171 22.443676 -v 0.524577 8.346171 22.443676 -v 0.698482 8.172267 22.443676 -v 0.698482 8.172267 22.443676 +v 0.524577 8.346175 22.443676 +v 0.524577 8.346175 22.443676 +v 0.698482 8.172271 22.443676 +v 0.698482 8.172271 22.443676 v 0.698482 8.172269 5.649786 v 0.698482 8.172269 5.649786 v 0.524577 8.346173 5.649786 v 0.283899 8.185357 5.649786 -v 0.283899 8.185355 22.443676 -v 0.283899 8.185355 22.443676 -v 0.378015 7.958138 22.443676 -v 0.378015 7.958138 22.443676 +v 0.283899 8.185359 22.443676 +v 0.283899 8.185359 22.443676 +v 0.378015 7.958142 22.443676 +v 0.378015 7.958142 22.443676 v 0.378015 7.958138 5.649786 v 0.378015 7.958138 5.649786 v 0.283899 8.185357 5.649786 v 0.000000 8.128886 5.649786 -v 0.000000 8.128884 22.443676 -v 0.000000 8.128884 22.443676 -v 0.000000 7.882946 22.443676 -v 0.000000 7.882946 22.443676 +v 0.000000 8.128888 22.443676 +v 0.000000 8.128888 22.443676 +v 0.000000 7.882950 22.443676 +v 0.000000 7.882950 22.443676 v 0.000000 7.882946 5.649786 v 0.000000 7.882946 5.649786 v 0.000000 8.128886 5.649786 v 0.000000 8.128886 5.649786 v -0.283899 8.185357 5.649786 -v -0.283899 8.185355 22.443676 -v -0.283899 8.185355 22.443676 -v -0.378015 7.958138 22.443676 -v 0.000000 7.882946 22.443676 -v -0.378015 7.958138 22.443676 +v -0.283899 8.185359 22.443676 +v -0.283899 8.185359 22.443676 +v -0.378015 7.958142 22.443676 +v 0.000000 7.882950 22.443676 +v -0.378015 7.958142 22.443676 v -0.378015 7.958138 5.649786 v -0.378015 7.958138 5.649786 v -0.283899 8.185357 5.649786 v -0.524577 8.346173 5.649786 -v -0.524577 8.346171 22.443676 -v -0.524577 8.346171 22.443676 -v -0.698482 8.172267 22.443676 -v -0.698482 8.172267 22.443676 +v -0.524577 8.346175 22.443676 +v -0.524577 8.346175 22.443676 +v -0.698482 8.172271 22.443676 +v -0.698482 8.172271 22.443676 v -0.698482 8.172269 5.649786 v -0.698482 8.172269 5.649786 v -0.524577 8.346173 5.649786 v -0.685393 8.586851 5.649786 -v -0.685393 8.586849 22.443676 -v -0.685393 8.586849 22.443676 -v -0.912610 8.492733 22.443676 -v -0.912610 8.492733 22.443676 +v -0.685393 8.586853 22.443676 +v -0.685393 8.586853 22.443676 +v -0.912610 8.492737 22.443676 +v -0.912610 8.492737 22.443676 v -0.912610 8.492735 5.649786 v -0.912610 8.492735 5.649786 v -0.685393 8.586851 5.649786 v -0.741864 8.870750 5.649786 -v -0.741864 8.870749 22.443676 -v -0.741864 8.870749 22.443676 -v -0.987802 8.870749 22.443676 -v -0.987802 8.870749 22.443676 +v -0.741864 8.870753 22.443676 +v -0.741864 8.870753 22.443676 +v -0.987802 8.870753 22.443676 +v -0.987802 8.870753 22.443676 v -0.987802 8.870750 5.649786 v -0.987802 8.870750 5.649786 v -0.741864 8.870750 5.649786 v -0.685393 9.154650 5.649786 -v -0.685393 9.154648 22.443676 -v -0.685393 9.154648 22.443676 -v -0.912610 9.248764 22.443676 -v -0.912610 9.248764 22.443676 +v -0.685393 9.154652 22.443676 +v -0.685393 9.154652 22.443676 +v -0.912610 9.248768 22.443676 +v -0.912610 9.248768 22.443676 v -0.912610 9.248766 5.649786 v -0.912610 9.248766 5.649786 v -0.685393 9.154650 5.649786 v -0.524577 9.395328 5.649786 -v -0.524577 9.395326 22.443676 -v -0.524577 9.395326 22.443676 -v -0.698482 9.569230 22.443676 -v -0.698482 9.569230 22.443676 -v -0.698482 9.569232 5.649786 -v -0.698482 9.569232 5.649786 +v -0.524577 9.395329 22.443676 +v -0.524577 9.395329 22.443676 +v -0.698482 9.569234 22.443676 +v -0.698482 9.569234 22.443676 +v -0.698482 9.569232 5.649784 +v -0.698482 9.569232 5.649784 v -0.524577 9.395328 5.649786 -v -0.283899 9.556144 5.649786 -v -0.283899 9.556142 22.443676 -v -0.283899 9.556142 22.443676 -v -0.378015 9.783358 22.443676 -v -0.378015 9.783358 22.443676 -v -0.378015 9.783360 5.649786 -v -0.378015 9.783360 5.649786 -v -0.283899 9.556144 5.649786 -v 0.000000 9.612615 5.649786 -v 0.000000 9.612613 22.443676 -v 0.000000 9.612613 22.443676 -v 0.000000 9.858550 22.443676 -v 0.000000 9.858550 22.443676 -v 0.000000 9.858552 5.649786 -v 0.000000 9.858552 5.649786 -v 0.000000 9.612615 5.649786 -v 0.283899 9.556144 5.649786 -v 0.283899 9.556142 22.443676 -v 0.283899 9.556142 22.443676 -v 0.378015 9.783358 22.443676 -v 0.378015 9.783358 22.443676 -v 0.378015 9.783360 5.649786 -v 0.378015 9.783360 5.649786 -v 0.283899 9.556144 5.649786 +v -0.283899 9.556144 5.649784 +v -0.283899 9.556146 22.443676 +v -0.283899 9.556146 22.443676 +v -0.378015 9.783361 22.443676 +v -0.378015 9.783361 22.443676 +v -0.378015 9.783360 5.649784 +v -0.378015 9.783360 5.649784 +v -0.283899 9.556144 5.649784 +v 0.000000 9.612615 5.649784 +v 0.000000 9.612617 22.443676 +v 0.000000 9.612617 22.443676 +v 0.000000 9.858554 22.443676 +v 0.000000 9.858554 22.443676 +v 0.000000 9.858552 5.649784 +v 0.000000 9.858552 5.649784 +v 0.000000 9.612615 5.649784 +v 0.283899 9.556144 5.649784 +v 0.283899 9.556146 22.443676 +v 0.283899 9.556146 22.443676 +v 0.378015 9.783361 22.443676 +v 0.378015 9.783361 22.443676 +v 0.378015 9.783360 5.649784 +v 0.378015 9.783360 5.649784 +v 0.283899 9.556144 5.649784 v 0.524577 9.395328 5.649786 -v 0.524577 9.395326 22.443676 -v 0.524577 9.395326 22.443676 -v 0.698482 9.569230 22.443676 -v 0.698482 9.569230 22.443676 -v 0.698482 9.569232 5.649786 -v 0.698482 9.569232 5.649786 +v 0.524577 9.395329 22.443676 +v 0.524577 9.395329 22.443676 +v 0.698482 9.569234 22.443676 +v 0.698482 9.569234 22.443676 +v 0.698482 9.569232 5.649784 +v 0.698482 9.569232 5.649784 v 0.524577 9.395328 5.649786 v 0.685393 9.154650 5.649786 -v 0.685393 9.154648 22.443676 -v 0.685393 9.154648 22.443676 -v 0.912610 9.248764 22.443676 -v 0.912610 9.248764 22.443676 +v 0.685393 9.154652 22.443676 +v 0.685393 9.154652 22.443676 +v 0.912610 9.248768 22.443676 +v 0.912610 9.248768 22.443676 v 0.912610 9.248766 5.649786 v 0.912610 9.248766 5.649786 v 0.685393 9.154650 5.649786 -v 0.741864 8.870749 22.443676 -v 0.987802 8.870749 22.443676 +v 0.741864 8.870753 22.443676 +v 0.987802 8.870753 22.443676 v 0.987802 8.870750 5.649786 v 0.741864 8.870750 5.649786 v 1.133210 1.741260 4.213062 @@ -5040,33 +484,33 @@ v 1.133210 1.741260 4.213062 v -2.120367 6.032114 -1.127586 v -2.168285 6.052625 -0.925915 v -2.124553 6.332816 -1.081475 -v -1.803483 -8.183756 -0.940654 -v -1.550631 -8.207280 -0.940181 +v -1.803483 -8.183756 -0.940652 +v -1.550631 -8.207280 -0.940179 v -1.803497 2.273637 3.302741 v -2.107996 4.322828 -0.236828 v -2.163024 4.259209 -0.066218 v -2.116467 4.647215 -0.174769 v -2.168202 1.521683 2.220641 -v -2.172835 -7.439816 -1.372818 +v -2.172835 -7.439816 -1.372816 v -2.137654 1.534970 2.385706 v -1.849792 2.296251 3.228978 v -1.880736 2.578792 3.289423 v -1.879857 2.017154 3.056580 -v -1.803508 -5.875544 -4.913877 -v -1.803499 -6.096515 -4.976789 -v -2.130997 -6.177512 -4.485744 -v -1.550631 -5.813593 -4.933243 -v -1.550631 -6.027862 -4.968081 +v -1.803508 -5.875546 -4.913877 +v -1.803499 -6.096517 -4.976789 +v -2.130997 -6.177514 -4.485744 +v -1.550631 -5.813593 -4.933241 +v -1.550631 -6.027864 -4.968081 v -1.839455 4.411472 -0.653382 -v -2.137789 6.702975 -0.434405 -v -1.803504 7.006510 -0.872316 -v -1.803507 7.133335 -0.533682 -v -1.550631 7.026423 -0.881127 -v -1.803483 6.443164 -1.419198 -v -2.176839 -6.680809 -4.296602 -v -2.176541 -6.266698 -4.325728 -v -2.177566 -6.820210 -4.161257 -v -2.121354 -6.703000 -4.498363 +v -2.137789 6.702975 -0.434407 +v -1.803504 7.006510 -0.872318 +v -1.803507 7.133335 -0.533684 +v -1.550631 7.026423 -0.881129 +v -1.803483 6.443164 -1.419199 +v -2.176839 -6.680809 -4.296600 +v -2.176541 -6.266698 -4.325727 +v -2.177566 -6.820210 -4.161255 +v -2.121354 -6.703001 -4.498363 v -2.173862 1.655341 1.737604 v -1.978566 2.889965 3.247607 v -1.933436 2.830892 2.688685 @@ -5091,24 +535,24 @@ v -1.883795 2.419949 2.091068 v -2.169390 2.475281 1.132310 v -2.174314 6.129676 4.109241 v -2.176527 6.514084 3.866836 -v -2.108078 6.117068 4.317321 +v -2.108078 6.117068 4.317319 v -2.174668 5.841984 -0.795250 v -2.179727 5.017104 -0.002164 v -2.141465 5.765682 -0.955082 v -2.145445 -6.930309 -4.281384 -v -2.119612 -7.822574 -1.480976 -v -2.176766 -7.604493 -1.548246 +v -2.119612 -7.822574 -1.480974 +v -2.176766 -7.604493 -1.548244 v -2.174624 4.663060 0.053574 v -2.163947 6.294227 -0.887580 -v -2.176857 6.557230 -0.328893 +v -2.176857 6.557230 -0.328894 v -1.803505 6.986403 4.265716 -v -2.129669 6.678270 3.948849 +v -2.129669 6.678270 3.948848 v -1.550631 7.011675 4.277203 -v -1.803498 6.146345 4.785964 -v -1.550631 5.888644 4.797830 -v -1.550631 6.141139 4.807182 -v -1.803494 -8.338592 -1.148253 -v -2.121051 -7.647707 -1.285315 +v -1.803498 6.146347 4.785964 +v -1.550631 5.888646 4.797830 +v -1.550631 6.141140 4.807180 +v -1.803494 -8.338592 -1.148251 +v -2.121051 -7.647707 -1.285313 v -1.284940 0.829702 3.740532 v -1.284940 1.075818 2.934655 v -1.284940 0.583586 2.934655 @@ -5212,10 +656,10 @@ v 1.979996 6.727209 -1.926155 v 1.979996 6.787141 -2.070845 v 1.979996 6.727209 -1.926155 v 1.979996 6.582519 -2.070845 -v -1.702916 6.582519 -1.866222 -v -1.702916 6.582519 -1.866222 -v 1.979996 6.582519 -1.866222 -v 1.979996 6.582519 -1.866222 +v -1.702916 6.582519 -1.866223 +v -1.702916 6.582519 -1.866223 +v 1.979996 6.582519 -1.866223 +v 1.979996 6.582519 -1.866223 v -1.702916 6.437829 -1.926155 v -1.702916 6.437829 -1.926155 v 1.979996 6.437829 -1.926155 @@ -5229,103 +673,103 @@ v -1.702916 6.437829 -2.215535 v -1.702916 6.437829 -2.215535 v 1.979996 6.437829 -2.215535 v 1.979996 6.437829 -2.215535 -v -1.702916 6.582519 -2.275468 -v -1.702916 6.582519 -2.275468 -v 1.979996 6.582519 -2.275468 -v -1.425465 5.714319 12.324278 -v -1.425465 5.534111 12.470450 -v -1.425465 6.342137 12.470450 -v 1.979996 6.582519 -2.275468 +v -1.702916 6.582519 -2.275470 +v -1.702916 6.582519 -2.275470 +v 1.979996 6.582519 -2.275470 +v -1.425465 5.714321 12.324278 +v -1.425465 5.534113 12.470450 +v -1.425465 6.342139 12.470448 +v 1.979996 6.582519 -2.275470 v -1.702916 6.727209 -2.215535 -v -1.373788 5.534109 19.361946 +v -1.373788 5.534112 19.361946 v -1.702916 6.727209 -2.215535 v 1.979996 6.727209 -2.215535 v 1.979996 6.727209 -2.215535 -v -1.425465 5.714319 12.324278 -v -1.425465 6.129148 12.324278 -v -1.582758 6.173631 12.234967 -v -1.425465 5.534111 12.470450 -v -1.582758 5.657321 12.234967 +v -1.425465 5.714321 12.324278 +v -1.425465 6.129150 12.324278 +v -1.582758 6.173633 12.234967 +v -1.425465 5.534113 12.470450 +v -1.582758 5.657323 12.234967 v 1.979996 6.787141 -2.070845 -v 0.000000 6.215098 -5.421183 +v 0.000000 6.215096 -5.421185 v -1.582758 6.749187 -4.912819 v 1.582758 6.749187 -4.912819 v 1.488590 5.921740 -5.685918 -v 0.000000 6.031167 -5.736894 -v -1.582758 5.957942 -5.266877 +v 0.000000 6.031167 -5.736896 +v -1.582758 5.957942 -5.266879 v -1.582758 5.870734 -4.399592 v -1.582758 6.749187 -4.912819 -v 1.582758 5.957942 -5.266877 -v 1.582758 6.154639 -5.365934 +v 1.582758 5.957942 -5.266879 +v 1.582758 6.154637 -5.365934 v 1.582758 6.749187 -4.912819 -v 1.582758 5.848901 -5.238699 +v 1.582758 5.848899 -5.238699 v 1.582758 5.870734 -4.399592 v 0.983988 5.324528 -5.327059 -v -1.425465 6.342137 12.470450 -v -1.582758 6.342137 12.374792 -v -1.582758 5.848901 -5.238699 +v -1.425465 6.342139 12.470448 +v -1.582758 6.342139 12.374790 +v -1.582758 5.848899 -5.238699 v -1.484238 5.789523 -5.649559 v -0.983988 5.324528 -5.327059 v 1.488590 5.921740 -5.685918 -v -1.425465 6.342137 12.470450 -v -1.373788 6.342137 19.361946 -v -1.582758 6.342137 18.331852 -v -1.051055 0.805342 10.660654 -v -1.051055 0.446518 11.231197 -v -1.051055 3.374604 10.660654 -v -1.051055 -0.223474 11.574593 -v -1.051055 0.200441 10.158533 -v -0.836559 7.218984 0.486124 -v -1.148529 7.218984 0.843372 -v -1.148529 -7.632973 -5.164886 +v -1.425465 6.342139 12.470448 +v -1.373788 6.342139 19.361946 +v -1.582758 6.342139 18.331852 +v -1.051055 0.805344 10.660654 +v -1.051055 0.446520 11.231197 +v -1.051055 3.374606 10.660654 +v -1.051055 -0.223472 11.574593 +v -1.051055 0.200443 10.158533 +v -0.836559 7.218984 0.486122 +v -1.148529 7.218984 0.843370 +v -1.148529 -7.632975 -5.164886 v -1.092400 5.576506 -6.393807 -v -1.582758 6.342137 18.331852 -v -1.582758 7.218982 18.331852 -v -1.582758 6.342137 12.374792 -v -1.051055 5.194827 6.202400 -v -1.051055 5.194825 19.361946 -v -1.582758 5.194825 18.331852 -v -1.373788 5.194825 19.361946 +v -1.582758 6.342139 18.331852 +v -1.582758 7.218986 18.331852 +v -1.582758 6.342139 12.374790 +v -1.051055 5.194829 6.202400 +v -1.051055 5.194829 19.361946 +v -1.582758 5.194829 18.331852 +v -1.373788 5.194829 19.361946 v -0.580398 3.816195 5.489355 -v -0.580398 5.143752 5.307025 -v -0.580398 4.250057 5.891657 -v -1.148529 7.218984 4.965837 -v -1.148529 -8.749960 -1.489985 -v -0.580398 4.410827 6.286258 -v -0.580398 4.410827 8.504850 -v -1.051055 4.410827 9.595867 +v -0.580398 5.143754 5.307024 +v -0.580398 4.250059 5.891655 +v -1.148529 7.218986 4.965837 +v -1.148529 -8.749960 -1.489983 +v -0.580398 4.410829 6.286258 +v -0.580398 4.410829 8.504850 +v -1.051055 4.410829 9.595867 v -1.582758 7.218984 -4.804955 -v -0.843982 7.218984 5.409400 -v -1.148529 7.218984 4.965837 -v -0.957142 7.218984 5.409400 -v -1.582758 7.218984 5.409400 -v -1.582758 7.218984 5.409400 -v -1.582758 7.218982 18.331852 -v -0.857694 7.218984 12.938878 -v -1.213076 8.145895 -1.953275 -v -0.692288 8.145895 -1.953275 -v -0.427195 9.430100 -1.953275 -v -0.708688 7.624437 -1.953275 -v -0.397424 7.218984 -1.953275 -v -1.213076 7.624437 -1.953275 -v -1.213076 7.218984 -1.953275 -v -1.213076 7.218984 -1.953275 -v -0.836559 7.218984 0.486124 -v -0.397424 7.218984 -1.953275 -v -0.843982 7.218984 5.409400 -v -0.957142 7.218984 5.409400 +v -0.843982 7.218986 5.409400 +v -1.148529 7.218986 4.965837 +v -0.957142 7.218986 5.409400 +v -1.582758 7.218986 5.409400 +v -1.582758 7.218986 5.409400 +v -1.582758 7.218986 18.331852 +v -0.857694 7.218986 12.938876 +v -1.213076 8.145895 -1.953277 +v -0.692288 8.145895 -1.953277 +v -0.427195 9.430100 -1.953277 +v -0.708688 7.624437 -1.953277 +v -0.397424 7.218984 -1.953277 +v -1.213076 7.624437 -1.953277 +v -1.213076 7.218984 -1.953277 +v -1.213076 7.218984 -1.953277 +v -0.836559 7.218984 0.486122 +v -0.397424 7.218984 -1.953277 +v -0.843982 7.218986 5.409400 +v -0.957142 7.218986 5.409400 v -0.957142 7.863286 5.710876 v -1.488590 5.921740 -5.685918 -v -1.582758 6.154639 -5.365934 -v -1.582758 5.957942 -5.266877 +v -1.582758 6.154637 -5.365934 +v -1.582758 5.957942 -5.266879 v -1.488590 5.921740 -5.685918 -v 1.582758 5.957942 -5.266877 +v 1.582758 5.957942 -5.266879 v 1.484238 5.789523 -5.649559 v -1.051055 0.730363 5.438924 v -1.052369 1.419883 5.161799 v -1.051770 1.087353 3.958939 v -1.052369 2.312512 5.048415 -v -1.052369 3.020580 5.130578 +v -1.052369 3.020581 5.130578 v -1.051055 4.245723 5.289183 v -1.582758 0.545047 3.068055 v -1.582758 -0.142682 2.781362 @@ -5341,95 +785,95 @@ v -1.582758 2.997752 -1.677936 v -1.582758 0.676579 2.788985 v -1.582758 0.955821 2.788985 v -1.582758 1.087353 2.951361 -v -1.582758 7.218984 0.532610 -v -0.443586 5.533404 -6.767138 +v -1.582758 7.218984 0.532608 +v -0.443586 5.533402 -6.767138 v -0.528251 5.631948 -6.753191 -v 0.000000 5.631948 -6.801856 -v 1.239158 -6.459403 -6.210184 -v 1.239158 -6.716357 -6.316617 -v 1.239158 -5.908380 -6.182570 -v -1.239158 -6.459403 -6.210184 -v -1.239158 -6.352968 -5.953228 -v -1.239158 -5.908380 -6.182570 +v 0.000000 5.631948 -6.801857 +v 1.239158 -6.459404 -6.210184 +v 1.239158 -6.716359 -6.316617 +v 1.239158 -5.908381 -6.182570 +v -1.239158 -6.459404 -6.210184 +v -1.239158 -6.352970 -5.953228 +v -1.239158 -5.908381 -6.182570 v 1.239158 -7.503078 -5.592237 -v 1.239158 -6.973310 -5.696272 -v 1.239158 -6.751891 -5.355608 -v 1.239158 -7.188473 -6.627295 +v 1.239158 -6.973310 -5.696270 +v 1.239158 -6.751893 -5.355608 +v 1.239158 -7.188475 -6.627295 v 1.239158 -7.079744 -5.953228 -v 1.239158 -6.352968 -5.953228 -v 1.239158 -6.111135 -5.821549 -v 1.239158 -6.459403 -5.696272 -v 1.239158 -6.353005 -5.417203 -v 1.239158 -6.716357 -5.589839 +v 1.239158 -6.352970 -5.953228 +v 1.239158 -6.111135 -5.821548 +v 1.239158 -6.459404 -5.696270 +v 1.239158 -6.353005 -5.417202 +v 1.239158 -6.716359 -5.589839 v -1.239158 -7.503078 -5.592237 v -1.239158 -7.079744 -5.953228 -v -1.239158 -7.188473 -6.627295 -v -1.239158 -6.716357 -5.589839 -v -1.239158 -6.973310 -5.696272 -v -1.239158 -6.751891 -5.355608 -v -1.239158 -6.459403 -5.696272 -v -1.239158 -6.353005 -5.417203 -v -1.239158 -6.111135 -5.821549 -v -1.239158 -6.716357 -6.316617 +v -1.239158 -7.188475 -6.627295 +v -1.239158 -6.716359 -5.589839 +v -1.239158 -6.973310 -5.696270 +v -1.239158 -6.751893 -5.355608 +v -1.239158 -6.459404 -5.696270 +v -1.239158 -6.353005 -5.417202 +v -1.239158 -6.111135 -5.821548 +v -1.239158 -6.716359 -6.316617 v 1.239158 -6.973310 -6.210184 v -1.239158 -6.973310 -6.210184 -v -1.148529 7.218984 0.843372 -v -1.582758 -8.611731 0.338328 -v -1.582758 -7.606416 0.140500 -v -1.539709 -9.237019 0.112444 +v -1.148529 7.218984 0.843370 +v -1.582758 -8.611731 0.338330 +v -1.582758 -7.606416 0.140502 +v -1.539709 -9.237019 0.112446 v -1.582758 -6.783546 -5.235445 v -1.582758 -7.547009 -5.447709 -v -1.582758 -6.272798 -5.294007 -v -1.582758 -6.767919 0.122678 +v -1.582758 -6.272799 -5.294005 +v -1.582758 -6.767919 0.122680 v -1.582758 -5.973763 -5.781600 -v -1.582758 -3.887019 -5.026797 +v -1.582758 -3.887019 -5.026795 v 0.000000 5.385467 -6.635780 -v 0.000000 5.533404 -6.815803 -v -0.957142 7.218984 7.609767 +v 0.000000 5.533402 -6.815804 +v -0.957142 7.218986 7.609766 v -1.582758 7.218984 -4.804955 v -1.213076 7.218984 -4.804955 v -1.582758 4.316335 -1.880566 v -1.582758 5.060399 -2.393605 -v -1.213076 9.430100 -1.953275 +v -1.213076 9.430100 -1.953277 v -1.213076 9.430100 -4.335176 v -1.213076 8.145895 -4.804955 v -1.582758 5.060399 -2.393605 -v -1.582758 5.705916 -3.303000 +v -1.582758 5.705914 -3.303000 v -0.974568 4.768444 -3.230170 -v -1.113677 5.685023 -6.433600 +v -1.113677 5.685021 -6.433600 v -1.488590 5.921740 -5.685918 -v -1.582758 5.705916 -3.303000 +v -1.582758 5.705914 -3.303000 v -1.582758 7.218984 -4.804955 v -1.213076 7.218984 -4.804955 -v -0.703050 7.624437 -4.804955 +v -0.703050 7.624435 -4.804955 v -0.702042 8.145895 -4.804955 v -0.419459 8.845671 -4.804955 -v -1.239158 -7.188473 -6.627295 -v -1.239158 -5.908380 -6.182570 -v -0.974568 -7.096977 -6.928317 -v -1.239158 -5.908380 -6.182570 -v -1.239158 -6.111135 -5.821549 +v -1.239158 -7.188475 -6.627295 +v -1.239158 -5.908381 -6.182570 +v -0.974568 -7.096979 -6.928317 +v -1.239158 -5.908381 -6.182570 +v -1.239158 -6.111135 -5.821548 v -1.582758 -5.973763 -5.781600 v -1.582758 -7.547009 -5.447709 v -1.582758 -6.783546 -5.235445 -v -1.239158 -6.751891 -5.355608 -v -1.582758 -6.272798 -5.294007 +v -1.239158 -6.751893 -5.355608 +v -1.582758 -6.272799 -5.294005 v 2.119590 3.136953 3.088691 -v 2.108078 6.117068 4.317321 -v 1.803502 5.931036 4.779144 +v 2.108078 6.117068 4.317319 +v 1.803502 5.931036 4.779142 v 1.880736 2.578792 3.289423 v 1.978566 2.889965 3.247607 v 1.803497 2.273637 3.302741 v 1.962750 1.737307 2.831918 v 1.879857 2.017154 3.056580 -v 1.803483 -8.183756 -0.940654 +v 1.803483 -8.183756 -0.940652 v 2.068853 1.609260 2.541311 v 2.137654 1.534970 2.385706 -v 1.803499 -6.096515 -4.976789 -v 2.130997 -6.177512 -4.485744 -v 2.121354 -6.703000 -4.498363 -v 1.550631 -7.022314 -4.915743 -v 1.550631 -6.027862 -4.968081 +v 1.803499 -6.096517 -4.976789 +v 2.130997 -6.177514 -4.485744 +v 2.121354 -6.703001 -4.498363 +v 1.550631 -7.022316 -4.915741 +v 1.550631 -6.027864 -4.968081 v 2.116467 4.647215 -0.174769 v 2.107996 4.322828 -0.236828 v 1.839455 4.411472 -0.653382 @@ -5441,138 +885,138 @@ v 2.120367 6.032114 -1.127586 v 1.803477 5.747915 -1.279529 v 2.124553 6.332816 -1.081475 v 1.803468 6.136785 -1.467315 -v 1.803507 7.133335 -0.533682 -v 1.803500 7.103070 4.086896 -v 2.129669 6.678270 3.948849 +v 1.803507 7.133335 -0.533684 +v 1.803500 7.103070 4.086895 +v 2.129669 6.678270 3.948848 v 1.550631 4.920799 -0.676702 v 1.550631 5.750243 -1.260870 -v 1.550631 6.117420 -1.448276 -v 1.550631 6.431123 -1.427430 -v 1.803483 6.443164 -1.419198 +v 1.550631 6.117420 -1.448277 +v 1.550631 6.431123 -1.427431 +v 1.803483 6.443164 -1.419199 v 1.550631 4.711940 -0.618973 v 1.839455 4.411472 -0.653382 v 2.179727 5.017104 -0.002164 v 2.174624 4.663060 0.053574 -v 2.119612 -7.822574 -1.480976 -v 2.176766 -7.604493 -1.548246 -v 2.121051 -7.647707 -1.285315 +v 2.119612 -7.822574 -1.480974 +v 2.176766 -7.604493 -1.548244 +v 2.121051 -7.647707 -1.285313 v 1.803505 -7.014567 -4.882656 -v 2.137789 6.702975 -0.434405 +v 2.137789 6.702975 -0.434407 v 1.550631 4.418573 -0.651555 -v 1.550631 5.888644 4.797830 -v 1.550631 -8.207280 -0.940181 +v 1.550631 5.888646 4.797830 +v 1.550631 -8.207280 -0.940179 v 2.163024 4.259209 -0.066218 -v 2.172835 -7.439816 -1.372818 -v 1.803508 -5.875544 -4.913877 -v 1.803504 7.006510 -0.872316 -v 1.550631 7.026423 -0.881127 -v 2.176857 6.557230 -0.328893 +v 2.172835 -7.439816 -1.372816 +v 1.803508 -5.875546 -4.913877 +v 1.803504 7.006510 -0.872318 +v 1.550631 7.026423 -0.881129 +v 2.176857 6.557230 -0.328894 v 2.163947 6.294227 -0.887580 v 2.176527 6.514084 3.866836 v 2.168285 6.052625 -0.925915 -v -0.823032 5.400963 -6.289593 -v -1.373788 7.218982 19.361946 -v -0.857694 7.218982 19.361946 +v -0.823032 5.400961 -6.289595 +v -1.373788 7.218986 19.361946 +v -0.857694 7.218986 19.361946 v 1.092400 5.576506 -6.393807 -v 0.443586 5.533404 -6.767138 -v 0.823032 5.400963 -6.289593 +v 0.443586 5.533402 -6.767138 +v 0.823032 5.400961 -6.289595 v 0.403942 7.218984 -4.804955 v 1.213076 7.218984 -4.804955 -v 0.974568 5.132455 -4.066989 +v 0.974568 5.132453 -4.066989 v 1.213076 8.145895 -4.804955 v 1.213076 8.845671 -4.804955 v 1.213076 9.430100 -4.335176 -v 0.703050 7.624437 -4.804955 -v 0.708688 7.624437 -1.953275 -v 1.213076 7.624437 -1.953275 -v 1.213076 7.624437 -1.953275 -v 1.213076 7.218984 -1.953275 +v 0.703050 7.624435 -4.804955 +v 0.708688 7.624437 -1.953277 +v 1.213076 7.624437 -1.953277 +v 1.213076 7.624437 -1.953277 +v 1.213076 7.218984 -1.953277 v 1.213076 7.218984 -4.804955 -v 0.703050 7.624437 -4.804955 +v 0.703050 7.624435 -4.804955 v 0.702042 8.145895 -4.804955 -v 0.692288 8.145895 -1.953275 -v 0.692288 8.145895 -1.953275 +v 0.692288 8.145895 -1.953277 +v 0.692288 8.145895 -1.953277 v 0.702042 8.145895 -4.804955 v 1.213076 8.145895 -4.804955 v 1.213076 9.430100 -4.335176 v 0.450662 9.430100 -4.335176 -v 0.427195 9.430100 -1.953275 +v 0.427195 9.430100 -1.953277 v 1.582758 7.218984 -4.804955 v 0.528251 5.631948 -6.753191 -v 0.000000 5.631948 -6.801856 -v 1.113677 5.685023 -6.433600 -v 1.582758 6.154639 -5.365934 +v 0.000000 5.631948 -6.801857 +v 1.113677 5.685021 -6.433600 +v 1.582758 6.154637 -5.365934 v -0.403942 7.218984 -4.804955 -v 1.213076 7.218984 -1.953275 +v 1.213076 7.218984 -1.953277 v 1.582758 7.218984 -4.804955 v 1.213076 7.218984 -4.804955 -v 0.703050 7.624437 -4.804955 +v 0.703050 7.624435 -4.804955 v 0.419459 8.845671 -4.804955 -v 1.213076 7.624437 -4.804955 +v 1.213076 7.624435 -4.804955 v 1.213076 8.845671 -4.804955 v 1.213076 8.145895 -4.804955 v 0.702042 8.145895 -4.804955 v 0.450662 9.430100 -4.335176 v 1.213076 9.430100 -4.335176 -v 0.836559 7.218984 0.486124 -v 0.397424 7.218984 -1.953275 -v -1.582758 6.154639 -5.365934 +v 0.836559 7.218984 0.486122 +v 0.397424 7.218984 -1.953277 +v -1.582758 6.154637 -5.365934 v 1.582758 2.997752 -1.677936 v 1.582758 4.606297 4.761065 v 1.582758 5.060399 -2.393605 -v 1.582758 5.705916 -3.303000 -v 1.582758 7.218984 0.532610 -v 1.582758 4.978194 4.997455 -v 1.582758 7.218984 5.409400 -v 1.582758 6.173631 12.234967 -v 1.582758 5.194827 5.282278 -v 1.582758 5.194825 18.331852 -v 1.582758 5.534111 12.374792 +v 1.582758 5.705914 -3.303000 +v 1.582758 7.218984 0.532608 +v 1.582758 4.978196 4.997455 +v 1.582758 7.218986 5.409400 +v 1.582758 6.173633 12.234967 +v 1.582758 5.194829 5.282278 +v 1.582758 5.194829 18.331852 +v 1.582758 5.534113 12.374792 v 1.582758 4.316335 -1.880566 v 1.582758 7.218984 -4.804955 -v 1.582758 6.342137 12.374792 -v 1.582758 5.657321 12.234967 -v 1.582758 7.218982 18.331852 -v 1.582758 7.218984 5.409400 -v 0.857694 7.218984 12.938878 -v 1.148529 7.218984 4.965837 -v 0.957142 7.218984 5.409400 -v 0.857694 7.218982 19.361946 -v 1.373788 7.218982 19.361946 -v 0.957142 7.218984 7.609767 -v 1.148529 7.218984 0.843372 -v 0.957142 7.218984 6.277361 -v 0.857694 5.453763 12.938878 -v 0.580191 5.127946 12.938878 -v 0.580398 5.127510 19.361946 -v 0.857694 7.218984 12.938878 -v 0.857694 5.453605 19.361946 -v -1.803494 -8.338592 -1.148253 -v -1.803496 -7.249153 -4.729249 -v -1.550631 -7.254866 -4.756801 -v -1.550631 -8.362582 -1.129572 +v 1.582758 6.342139 12.374790 +v 1.582758 5.657323 12.234967 +v 1.582758 7.218986 18.331852 +v 1.582758 7.218986 5.409400 +v 0.857694 7.218986 12.938876 +v 1.148529 7.218986 4.965837 +v 0.957142 7.218986 5.409400 +v 0.857694 7.218986 19.361946 +v 1.373788 7.218986 19.361946 +v 0.957142 7.218986 7.609766 +v 1.148529 7.218984 0.843370 +v 0.957142 7.218986 6.277359 +v 0.857694 5.453765 12.938878 +v 0.580191 5.127948 12.938878 +v 0.580398 5.127513 19.361946 +v 0.857694 7.218986 12.938876 +v 0.857694 5.453609 19.361946 +v -1.803494 -8.338592 -1.148251 +v -1.803496 -7.249155 -4.729249 +v -1.550631 -7.254868 -4.756801 +v -1.550631 -8.362582 -1.129570 v -1.803505 -7.014567 -4.882656 -v -1.803500 7.103070 4.086896 -v -1.550631 7.159328 -0.581056 +v -1.803500 7.103070 4.086895 +v -1.550631 7.159328 -0.581058 v -1.839455 4.411472 -0.653382 v -1.550631 4.418573 -0.651555 -v -1.803502 5.931036 4.779144 +v -1.803502 5.931036 4.779142 v -2.138861 4.925927 -0.212349 -v -1.550631 -7.022314 -4.915743 +v -1.550631 -7.022316 -4.915741 v -1.832909 4.741830 -0.615315 v -1.803493 4.979961 -0.698811 v -1.803477 5.747915 -1.279529 v -1.803468 6.136785 -1.467315 v -1.550631 4.920799 -0.676702 v -1.550631 5.750243 -1.260870 -v -1.550631 6.117420 -1.448276 -v -1.550631 6.431123 -1.427430 +v -1.550631 6.117420 -1.448277 +v -1.550631 6.431123 -1.427431 v -1.550631 4.711940 -0.618973 v 2.168202 1.521683 2.220641 v 1.849792 2.296251 3.228978 -v 1.550631 -5.813593 -4.933243 -v 2.176839 -6.680809 -4.296602 -v 2.177566 -6.820210 -4.161257 +v 1.550631 -5.813593 -4.933241 +v 2.176839 -6.680809 -4.296600 +v 2.177566 -6.820210 -4.161255 v 2.145445 -6.930309 -4.281384 v 2.173862 1.655341 1.737604 v 1.933436 2.830892 2.688685 @@ -5594,191 +1038,191 @@ v 1.883795 2.419949 2.091068 v 2.169390 2.475281 1.132310 v 2.174314 6.129676 4.109241 v 2.174668 5.841984 -0.795250 -v 2.176541 -6.266698 -4.325728 +v 2.176541 -6.266698 -4.325727 v 1.803505 6.986403 4.265716 -v 1.803498 6.146345 4.785964 +v 1.803498 6.146347 4.785964 v 1.550631 7.011675 4.277203 -v 1.550631 6.141139 4.807182 -v 1.803494 -8.338592 -1.148253 -v 1.550631 -8.362582 -1.129572 -v 1.803494 -8.338592 -1.148253 -v 1.803496 -7.249153 -4.729249 -v 1.550631 -7.254866 -4.756801 -v 1.550631 7.159328 -0.581056 -v 1.550631 7.128137 4.054968 -v -1.239158 -6.353005 -5.417203 -v -1.113677 5.685023 -6.433600 -v -1.582758 6.173631 12.234967 -v -1.582758 5.657321 12.234967 +v 1.550631 6.141140 4.807180 +v 1.803494 -8.338592 -1.148251 +v 1.550631 -8.362582 -1.129570 +v 1.803494 -8.338592 -1.148251 +v 1.803496 -7.249155 -4.729249 +v 1.550631 -7.254868 -4.756801 +v 1.550631 7.159328 -0.581058 +v 1.550631 7.128139 4.054966 +v -1.239158 -6.353005 -5.417202 +v -1.113677 5.685021 -6.433600 +v -1.582758 6.173633 12.234967 +v -1.582758 5.657323 12.234967 v -0.974568 4.193733 -2.693952 v -1.582758 4.316335 -1.880566 v -1.582758 5.870734 -4.399592 -v -0.974568 5.132455 -4.066989 +v -0.974568 5.132453 -4.066989 v -0.974568 2.986196 -2.567274 v -1.582758 2.997752 -1.677936 v -0.974568 -2.299957 -4.683156 v -1.582758 -2.770208 -4.057409 -v -0.974568 -3.532901 -5.626941 -v -1.582758 -3.887019 -5.026797 +v -0.974568 -3.532902 -5.626941 +v -1.582758 -3.887019 -5.026795 v -1.582758 -5.973763 -5.781600 -v -0.427195 9.430100 -1.953275 -v -0.397424 7.218984 -1.953275 +v -0.427195 9.430100 -1.953277 +v -0.397424 7.218984 -1.953277 v -0.450662 9.430100 -4.335176 -v -0.580398 4.410827 6.286258 -v -0.580398 5.143752 8.504850 +v -0.580398 4.410829 6.286258 +v -0.580398 5.143754 8.504850 v 0.403942 7.218984 -4.804955 -v -0.580398 3.410160 5.307025 -v 0.397424 7.218984 -1.953275 +v -0.580398 3.410161 5.307024 +v 0.397424 7.218984 -1.953277 v 0.450662 9.430100 -4.335176 v 0.419459 8.845671 -4.804955 -v -0.857694 5.453763 12.938878 -v -0.857694 5.453605 19.361946 -v -0.580398 5.127510 19.361946 -v -0.857694 7.218984 12.938878 -v -0.857694 7.218982 19.361946 -v -0.957142 7.863286 7.609767 -v -0.957142 7.218984 5.409400 -v -0.957142 7.218984 6.277361 +v -0.857694 5.453765 12.938878 +v -0.857694 5.453609 19.361946 +v -0.580398 5.127513 19.361946 +v -0.857694 7.218986 12.938876 +v -0.857694 7.218986 19.361946 +v -0.957142 7.863286 7.609766 +v -0.957142 7.218986 5.409400 +v -0.957142 7.218986 6.277359 v -0.957142 7.863286 5.710876 v -1.213076 8.845671 -4.804955 -v -0.703050 7.624437 -4.804955 -v -1.213076 7.624437 -4.804955 -v -1.213076 7.624437 -1.953275 -v -1.213076 7.624437 -1.953275 -v -1.213076 7.624437 -4.804955 +v -0.703050 7.624435 -4.804955 +v -1.213076 7.624435 -4.804955 +v -1.213076 7.624437 -1.953277 +v -1.213076 7.624437 -1.953277 +v -1.213076 7.624435 -4.804955 v -1.213076 7.218984 -4.804955 -v -1.148529 -8.749960 -1.489985 -v -0.843982 -8.845317 -1.176260 -v -1.539709 -9.237019 0.112444 -v -0.703050 7.624437 -4.804955 -v -0.708688 7.624437 -1.953275 -v -0.692288 8.145895 -1.953275 -v -0.580398 3.410160 5.307025 +v -1.148529 -8.749960 -1.489983 +v -0.843982 -8.845317 -1.176258 +v -1.539709 -9.237019 0.112446 +v -0.703050 7.624435 -4.804955 +v -0.708688 7.624437 -1.953277 +v -0.692288 8.145895 -1.953277 +v -0.580398 3.410161 5.307024 v -0.580398 3.816195 5.489355 -v -1.051055 3.816076 5.489355 -v -1.051055 4.250057 5.891657 -v -0.580398 4.250057 5.891657 -v -1.051055 4.410827 6.286258 -v -0.692288 8.145895 -1.953275 -v -1.213076 8.145895 -1.953275 +v -1.051055 3.816077 5.489355 +v -1.051055 4.250059 5.891655 +v -0.580398 4.250059 5.891655 +v -1.051055 4.410829 6.286258 +v -0.692288 8.145895 -1.953277 +v -1.213076 8.145895 -1.953277 v -1.213076 8.145895 -4.804955 -v -1.052369 3.020580 5.130578 -v -1.582758 5.534109 18.331852 -v -1.582758 5.534111 12.374792 -v -1.582758 5.194825 18.331852 -v -1.051055 3.986079 11.231197 +v -1.052369 3.020581 5.130578 +v -1.582758 5.534112 18.331852 +v -1.582758 5.534113 12.374792 +v -1.582758 5.194829 18.331852 +v -1.051055 3.986081 11.231197 v -1.213076 9.430100 -4.335176 -v -1.213076 9.430100 -1.953275 -v -0.427195 9.430100 -1.953275 -v -1.051055 4.197896 10.160744 -v -1.051055 4.410827 9.595867 -v -1.051055 5.194827 6.202400 -v -1.051055 4.410827 6.286258 +v -1.213076 9.430100 -1.953277 +v -0.427195 9.430100 -1.953277 +v -1.051055 4.197898 10.160744 +v -1.051055 4.410829 9.595867 +v -1.051055 5.194829 6.202400 +v -1.051055 4.410829 6.286258 v -1.051055 4.815591 5.698347 -v -1.051055 4.250057 5.891657 +v -1.051055 4.250059 5.891655 v 1.051203 0.060934 3.592092 v 1.051055 -0.223472 3.408138 v 1.358388 0.595196 3.367662 -v -1.051055 0.491167 10.501270 -v -1.051055 3.846210 10.532600 -v -1.051055 3.816076 5.489355 +v -1.051055 0.491169 10.501270 +v -1.051055 3.846212 10.532600 +v -1.051055 3.816077 5.489355 v -1.051055 0.303245 5.858099 -v -1.051055 0.145061 11.660562 +v -1.051055 0.145063 11.660562 v -0.403942 7.218984 -4.804955 v -0.419459 8.845671 -4.804955 -v -0.580398 5.127510 19.361946 -v -1.213076 7.624437 -4.804955 +v -0.580398 5.127513 19.361946 +v -1.213076 7.624435 -4.804955 v -1.213076 8.845671 -4.804955 v -1.213076 9.430100 -4.335176 v -0.528251 5.631948 -6.753191 -v -1.051055 -7.663412 0.798394 -v -1.051055 -6.827383 0.859532 -v -1.051055 -9.408401 0.676293 -v -1.051055 -8.710466 0.929088 +v -1.051055 -7.663412 0.798396 +v -1.051055 -6.827383 0.859534 +v -1.051055 -9.408401 0.676295 +v -1.051055 -8.710466 0.929090 v -0.832096 -2.281892 2.617995 v -1.051055 -0.223472 3.408138 -v -1.051055 -6.827383 0.859532 +v -1.051055 -6.827383 0.859534 v -0.832096 -3.798709 2.025143 v -0.832096 -3.666983 2.980051 v -0.832096 -2.992427 3.243009 -v -1.051055 4.834128 19.361946 -v -1.582758 5.534111 12.374792 -v -1.582758 5.534109 18.331852 -v -1.373788 5.534109 19.361946 -v -1.373788 7.218982 19.361946 -v -1.373788 5.194825 19.361946 -v -0.372438 10.036927 5.890272 -v -0.372438 10.296735 5.890272 -v 0.372438 10.036927 5.890272 -v -0.570611 9.870735 5.890272 -v 0.570611 9.870735 5.890272 -v 0.667251 10.036927 5.890272 -v -0.667251 10.036927 5.890272 -v -0.372438 10.036927 5.890272 -v -0.667251 10.036927 5.890272 -v -0.666265 10.036925 11.908644 +v -1.051055 4.834130 19.361946 +v -1.582758 5.534113 12.374792 +v -1.582758 5.534112 18.331852 +v -1.373788 5.534112 19.361946 +v -1.373788 7.218986 19.361946 +v -1.373788 5.194829 19.361946 +v -0.372438 10.036927 5.890270 +v -0.372438 10.296735 5.890270 +v 0.372438 10.036927 5.890270 +v -0.570611 9.870735 5.890270 +v 0.570611 9.870735 5.890270 +v 0.667251 10.036927 5.890270 +v -0.667251 10.036927 5.890270 +v -0.372438 10.036927 5.890270 +v -0.667251 10.036927 5.890270 +v -0.666265 10.036927 11.908642 v -1.159394 7.167399 5.890272 -v -1.159394 7.167399 11.908644 -v -1.159394 9.473119 11.908644 -v -1.018901 7.167399 11.908644 -v -1.018901 9.373807 11.908644 -v -1.159394 9.473119 11.908644 +v -1.159394 7.167401 11.908642 +v -1.159394 9.473121 11.908642 +v -1.018901 7.167401 11.908642 +v -1.018901 9.373809 11.908642 +v -1.159394 9.473121 11.908642 v -1.018901 7.167399 5.890272 v -1.159394 7.167399 5.890272 v -1.159394 9.473121 5.890272 -v -0.570611 9.870733 11.908644 -v -0.666265 10.036925 11.908644 +v -0.570611 9.870735 11.908642 +v -0.666265 10.036927 11.908642 v 1.018901 9.373809 5.890272 v 1.018901 7.167399 5.890272 -v 1.018901 7.167399 11.908644 -v 1.018901 9.373807 11.908644 -v 0.570611 9.870733 11.908644 -v -0.372438 10.036927 8.085609 -v 0.372438 10.036927 8.085609 -v 0.372438 10.296735 5.890272 +v 1.018901 7.167401 11.908642 +v 1.018901 9.373809 11.908642 +v 0.570611 9.870735 11.908642 +v -0.372438 10.036929 8.085607 +v 0.372438 10.036929 8.085607 +v 0.372438 10.296735 5.890270 v 1.018901 7.167399 5.890272 v 1.018901 9.373809 5.890272 v 1.159394 9.473121 5.890272 -v 0.372438 10.036927 5.890272 -v 0.372438 10.296735 5.890272 -v 0.372438 10.036927 8.085609 -v 0.372438 10.036927 5.890272 -v 0.372438 10.036927 8.085609 -v 0.666265 10.036925 11.908644 +v 0.372438 10.036927 5.890270 +v 0.372438 10.296735 5.890270 +v 0.372438 10.036929 8.085607 +v 0.372438 10.036927 5.890270 +v 0.372438 10.036929 8.085607 +v 0.666265 10.036927 11.908642 v 1.159394 7.167399 5.890272 v 1.159394 9.473121 5.890272 -v 1.159394 9.473119 11.908644 -v 1.018901 7.167399 11.908644 -v 1.159394 7.167399 11.908644 -v 1.159394 9.473119 11.908644 -v 0.570611 9.870733 11.908644 -v 1.018901 9.373807 11.908644 -v 0.667251 10.036927 5.890272 +v 1.159394 9.473121 11.908642 +v 1.018901 7.167401 11.908642 +v 1.159394 7.167401 11.908642 +v 1.159394 9.473121 11.908642 +v 0.570611 9.870735 11.908642 +v 1.018901 9.373809 11.908642 +v 0.667251 10.036927 5.890270 v -1.018901 9.373809 5.890272 -v -1.018901 9.373807 11.908644 -v -1.018901 7.167399 11.908644 -v -0.372438 10.036927 8.085609 -v -0.372438 10.296735 5.890272 -v -0.372438 10.036927 5.890272 -v -0.372438 10.036927 8.085609 -v -0.570611 9.870735 5.890272 -v -0.570611 9.870733 11.908644 -v 0.570611 9.870735 5.890272 -v 0.372438 10.296735 5.890272 +v -1.018901 9.373809 11.908642 +v -1.018901 7.167401 11.908642 +v -0.372438 10.036929 8.085607 +v -0.372438 10.296735 5.890270 +v -0.372438 10.036927 5.890270 +v -0.372438 10.036929 8.085607 +v -0.570611 9.870735 5.890270 +v -0.570611 9.870735 11.908642 +v 0.570611 9.870735 5.890270 +v 0.372438 10.296735 5.890270 v 1.592578 6.930664 -2.831019 v 1.924818 6.930664 -2.831019 v 1.924818 6.930664 -2.831019 v 2.253843 6.726052 -1.549974 v 1.592578 6.125614 -1.931486 -v 1.592578 6.966193 -1.398447 +v 1.592578 6.966193 -1.398448 v 1.924818 6.125614 -1.931486 v 1.592578 6.125614 -1.931486 -v 1.592578 7.603653 -2.269642 +v 1.592578 7.603653 -2.269644 v 1.592578 6.930664 -2.831019 v 1.924818 6.534985 -3.056432 v 1.924818 6.726052 -1.549974 -v 1.924818 7.371370 -2.466391 -v 2.253843 7.371370 -2.466391 +v 1.924818 7.371370 -2.466393 +v 2.253843 7.371370 -2.466393 v -1.051770 0.545047 3.730687 v 1.360567 1.614293 3.789785 v 1.051232 1.834943 4.322482 @@ -5806,73 +1250,73 @@ v -1.582758 1.087353 2.951361 v 1.050937 0.062500 3.588312 v 1.051055 0.730363 5.438924 v 1.050937 1.329366 3.504859 -v 1.239158 -6.352968 -5.953228 -v -1.239158 -6.352968 -5.953228 -v -1.239158 -6.459403 -6.210184 +v 1.239158 -6.352970 -5.953228 +v -1.239158 -6.352970 -5.953228 +v -1.239158 -6.459404 -6.210184 v -1.239158 -6.973310 -6.210184 v 1.239158 -6.973310 -6.210184 -v 1.239158 -6.716357 -6.316617 +v 1.239158 -6.716359 -6.316617 v -1.239158 -7.079744 -5.953228 -v -1.239158 -6.716357 -5.589839 -v 1.239158 -6.716357 -5.589839 -v 1.239158 -6.973310 -5.696272 +v -1.239158 -6.716359 -5.589839 +v 1.239158 -6.716359 -5.589839 +v 1.239158 -6.973310 -5.696270 v -0.836559 -7.541790 -5.464879 -v -1.148529 -7.632973 -5.164886 +v -1.148529 -7.632975 -5.164886 v -1.239158 -7.503078 -5.592237 -v -0.843982 -8.845317 -1.176260 +v -0.843982 -8.845317 -1.176258 v -1.582758 -7.547009 -5.447709 -v -0.974568 -7.096977 -6.928317 -v -1.239158 -7.188473 -6.627295 -v -0.857694 5.453763 12.938878 -v 0.857694 5.453763 12.938878 -v 0.857694 7.218984 12.938878 -v -0.580191 5.127946 12.938878 -v 0.580191 5.127946 12.938878 -v 0.427195 9.430100 -1.953275 -v -1.051055 -9.408401 0.676293 -v -0.580191 5.127946 12.938878 +v -0.974568 -7.096979 -6.928317 +v -1.239158 -7.188475 -6.627295 +v -0.857694 5.453765 12.938878 +v 0.857694 5.453765 12.938878 +v 0.857694 7.218986 12.938876 +v -0.580191 5.127948 12.938878 +v 0.580191 5.127948 12.938878 +v 0.427195 9.430100 -1.953277 +v -1.051055 -9.408401 0.676295 +v -0.580191 5.127948 12.938878 v 0.403942 7.218984 -4.804955 -v 1.239158 -6.459403 -6.210184 -v -1.239158 -6.459403 -5.696272 -v 1.239158 -6.459403 -5.696272 +v 1.239158 -6.459404 -6.210184 +v -1.239158 -6.459404 -5.696270 +v 1.239158 -6.459404 -5.696270 v 1.239158 -7.079744 -5.953228 -v 1.239158 -6.352968 -5.953228 -v 0.957142 7.218984 5.409400 -v 0.843982 7.218984 5.409400 +v 1.239158 -6.352970 -5.953228 +v 0.957142 7.218986 5.409400 +v 0.843982 7.218986 5.409400 v 0.957142 7.863286 5.710876 -v 1.213076 7.624437 -1.953275 -v 0.708688 7.624437 -1.953275 -v 0.397424 7.218984 -1.953275 -v 0.692288 8.145895 -1.953275 -v 0.427195 9.430100 -1.953275 -v 1.213076 8.145895 -1.953275 -v 1.213076 9.430100 -1.953275 -v -0.957142 7.218984 6.277361 -v 1.582758 7.218982 18.331852 -v 0.843982 7.218984 5.409400 +v 1.213076 7.624437 -1.953277 +v 0.708688 7.624437 -1.953277 +v 0.397424 7.218984 -1.953277 +v 0.692288 8.145895 -1.953277 +v 0.427195 9.430100 -1.953277 +v 1.213076 8.145895 -1.953277 +v 1.213076 9.430100 -1.953277 +v -0.957142 7.218986 6.277359 +v 1.582758 7.218986 18.331852 +v 0.843982 7.218986 5.409400 v 1.582758 5.870734 -4.399592 -v 0.580398 4.410827 6.286258 -v 1.051055 4.410827 6.286258 -v 1.051055 4.410827 9.595867 -v -0.580398 4.410827 8.504850 -v -0.580398 5.143752 8.504850 -v 0.580398 5.143752 8.504850 -v 0.580398 5.143752 5.307025 +v 0.580398 4.410829 6.286258 +v 1.051055 4.410829 6.286258 +v 1.051055 4.410829 9.595867 +v -0.580398 4.410829 8.504850 +v -0.580398 5.143754 8.504850 +v 0.580398 5.143754 8.504850 +v 0.580398 5.143754 5.307024 v 0.580398 3.816195 5.489355 -v 0.580398 4.250057 5.891657 -v 1.582758 5.194825 18.331852 -v 1.373788 5.194825 19.361946 -v 1.051055 5.194825 19.361946 -v 1.051055 5.194827 6.202400 -v 1.582758 5.194827 5.282278 -v 1.582758 6.342137 18.331852 -v 1.051055 4.834128 12.349441 -v -1.051055 4.834128 12.349441 -v -1.051055 3.986079 11.231197 -v -1.051055 4.197896 10.160744 -v 1.051055 -0.223474 11.574593 -v 1.051055 0.126897 9.525374 -v 1.051055 0.200441 10.158533 +v 0.580398 4.250059 5.891655 +v 1.582758 5.194829 18.331852 +v 1.373788 5.194829 19.361946 +v 1.051055 5.194829 19.361946 +v 1.051055 5.194829 6.202400 +v 1.582758 5.194829 5.282278 +v 1.582758 6.342139 18.331852 +v 1.051055 4.834130 12.349441 +v -1.051055 4.834130 12.349441 +v -1.051055 3.986081 11.231197 +v -1.051055 4.197898 10.160744 +v 1.051055 -0.223472 11.574593 +v 1.051055 0.126899 9.525374 +v 1.051055 0.200443 10.158533 v -1.051770 0.545047 2.951361 v -1.051770 1.087353 2.951361 v -1.051770 0.955821 2.753111 @@ -5881,62 +1325,62 @@ v 1.051203 0.060934 3.592092 v 1.358388 0.595196 3.367662 v -1.582758 0.955821 2.788985 v -1.051770 0.955821 2.753111 -v 1.051055 0.446518 11.231197 -v 1.051055 0.805342 10.660654 -v 1.051055 3.374604 10.660654 -v 1.425465 6.342137 12.470450 -v 1.582758 6.342137 12.374792 -v 1.582758 6.342137 18.331852 -v 1.425465 6.129148 12.324278 -v 1.582758 6.173631 12.234967 -v 1.582758 6.342137 12.374792 -v 1.425465 5.534111 12.470450 -v 1.582758 5.534111 12.374792 -v 1.582758 5.657321 12.234967 -v 1.425465 5.714319 12.324278 -v 1.425465 6.342137 12.470450 -v 1.373788 6.342137 19.361946 -v 1.373788 5.534109 19.361946 -v 1.425465 5.714319 12.324278 -v 1.425465 6.129148 12.324278 -v 1.051055 5.194825 19.361946 -v 1.373788 5.194825 19.361946 -v 1.373788 5.534109 19.361946 -v 1.373788 6.342137 19.361946 -v 1.373788 7.218982 19.361946 -v 0.857694 7.218982 19.361946 +v 1.051055 0.446520 11.231197 +v 1.051055 0.805344 10.660654 +v 1.051055 3.374606 10.660654 +v 1.425465 6.342139 12.470448 +v 1.582758 6.342139 12.374790 +v 1.582758 6.342139 18.331852 +v 1.425465 6.129150 12.324278 +v 1.582758 6.173633 12.234967 +v 1.582758 6.342139 12.374790 +v 1.425465 5.534113 12.470450 +v 1.582758 5.534113 12.374792 +v 1.582758 5.657323 12.234967 +v 1.425465 5.714321 12.324278 +v 1.425465 6.342139 12.470448 +v 1.373788 6.342139 19.361946 +v 1.373788 5.534112 19.361946 +v 1.425465 5.714321 12.324278 +v 1.425465 6.129150 12.324278 +v 1.051055 5.194829 19.361946 +v 1.373788 5.194829 19.361946 +v 1.373788 5.534112 19.361946 +v 1.373788 6.342139 19.361946 +v 1.373788 7.218986 19.361946 +v 0.857694 7.218986 19.361946 v -1.582758 0.676579 2.788985 v -1.051770 0.676579 2.753111 -v 1.051055 5.194827 6.202400 +v 1.051055 5.194829 6.202400 v 1.051055 4.815591 5.698347 -v 1.051055 4.834128 12.349441 -v 1.051055 5.194825 19.361946 -v 1.051055 4.834128 19.361946 +v 1.051055 4.834130 12.349441 +v 1.051055 5.194829 19.361946 +v 1.051055 4.834130 19.361946 v 1.051203 0.060934 3.592092 v 1.050937 0.062500 3.588312 v 1.051055 -0.223472 3.408138 v 1.051055 4.245723 5.289183 -v 1.582758 5.534109 18.331852 -v 1.373788 5.534109 19.361946 -v 1.373788 5.194825 19.361946 -v 1.373788 7.218982 19.361946 -v 1.373788 6.342137 19.361946 -v 1.373788 5.534109 19.361946 -v 1.051055 4.834128 19.361946 -v 0.857694 5.453605 19.361946 -v 0.580398 5.127510 19.361946 -v -1.051055 0.145061 11.660562 -v -1.051055 -0.223474 11.574593 -v 1.051055 -0.223474 11.574593 +v 1.582758 5.534112 18.331852 +v 1.373788 5.534112 19.361946 +v 1.373788 5.194829 19.361946 +v 1.373788 7.218986 19.361946 +v 1.373788 6.342139 19.361946 +v 1.373788 5.534112 19.361946 +v 1.051055 4.834130 19.361946 +v 0.857694 5.453609 19.361946 +v 0.580398 5.127513 19.361946 +v -1.051055 0.145063 11.660562 +v -1.051055 -0.223472 11.574593 +v 1.051055 -0.223472 11.574593 v 1.494327 1.329366 3.504859 -v 1.051055 -0.223474 11.574593 -v -1.051055 -0.223474 11.574593 +v 1.051055 -0.223472 11.574593 +v -1.051055 -0.223472 11.574593 v -1.051055 -0.223472 3.408138 -v -1.051055 0.446518 11.231197 -v -1.051055 0.145061 11.660562 -v 1.051055 0.145061 11.660562 -v 1.051055 0.446518 11.231197 -v -1.051055 4.834128 19.361946 +v -1.051055 0.446520 11.231197 +v -1.051055 0.145063 11.660562 +v 1.051055 0.145063 11.660562 +v 1.051055 0.446520 11.231197 +v -1.051055 4.834130 19.361946 v -0.832096 -2.992427 3.243009 v 0.832096 -2.992427 3.243009 v 0.832096 -2.281892 2.617995 @@ -5950,162 +1394,162 @@ v -0.832096 -3.798709 2.025143 v 0.832096 -3.798709 2.025143 v 0.832096 -3.666983 2.980051 v 1.051055 -0.223472 3.408138 -v 1.051055 -6.827383 0.859532 -v 1.582758 -6.767919 0.122678 -v 1.582758 -7.606416 0.140500 -v 1.051055 -7.663412 0.798394 -v 1.051055 -8.710466 0.929088 +v 1.051055 -6.827383 0.859534 +v 1.582758 -6.767919 0.122680 +v 1.582758 -7.606416 0.140502 +v 1.051055 -7.663412 0.798396 +v 1.051055 -8.710466 0.929090 v 0.832096 -2.281892 2.617995 v 0.832096 -3.798709 2.025143 -v 1.051055 -6.827383 0.859532 -v 1.051055 -9.408401 0.676293 -v 1.539709 -9.237019 0.112444 -v 1.582758 -8.611731 0.338328 -v 1.051055 -7.663412 0.798394 -v -1.051055 -7.663412 0.798394 -v -1.051055 -8.710466 0.929088 +v 1.051055 -6.827383 0.859534 +v 1.051055 -9.408401 0.676295 +v 1.539709 -9.237019 0.112446 +v 1.582758 -8.611731 0.338330 +v 1.051055 -7.663412 0.798396 +v -1.051055 -7.663412 0.798396 +v -1.051055 -8.710466 0.929090 v -0.832096 -3.798709 2.025143 -v -1.051055 -9.408401 0.676293 -v 1.051055 -9.408401 0.676293 -v 1.051055 -8.710466 0.929088 +v -1.051055 -9.408401 0.676295 +v 1.051055 -9.408401 0.676295 +v 1.051055 -8.710466 0.929090 v -0.403942 7.218984 -4.804955 -v 1.051055 0.491167 10.501270 -v 1.051055 0.145061 11.660562 +v 1.051055 0.491169 10.501270 +v 1.051055 0.145063 11.660562 v 1.051055 4.245723 5.289183 -v 1.052369 3.020580 5.130578 +v 1.052369 3.020581 5.130578 v 1.052369 2.312512 5.048415 -v 1.051055 3.816076 5.489355 -v 1.051055 4.250057 5.891657 -v 1.051055 4.410827 6.286258 +v 1.051055 3.816077 5.489355 +v 1.051055 4.250059 5.891655 +v 1.051055 4.410829 6.286258 v 1.051055 4.815591 5.698347 -v 1.051055 5.194827 6.202400 -v 1.051055 4.410827 9.595867 -v 1.051055 4.197896 10.160744 -v 1.051055 3.986079 11.231197 -v 1.051055 3.846210 10.532600 +v 1.051055 5.194829 6.202400 +v 1.051055 4.410829 9.595867 +v 1.051055 4.197898 10.160744 +v 1.051055 3.986081 11.231197 +v 1.051055 3.846212 10.532600 v 1.050937 1.329366 3.504859 -v -1.052369 3.020580 5.130578 +v -1.052369 3.020581 5.130578 v -1.052369 2.312512 5.048415 v 1.052369 2.312512 5.048415 -v 1.052369 3.020580 5.130578 -v 1.051055 3.816076 5.489355 -v 0.580398 3.410160 5.307025 -v 0.580398 4.250057 5.891657 -v 1.051055 4.250057 5.891657 +v 1.052369 3.020581 5.130578 +v 1.051055 3.816077 5.489355 +v 0.580398 3.410161 5.307024 +v 0.580398 4.250059 5.891655 +v 1.051055 4.250059 5.891655 v 0.580398 3.816195 5.489355 -v -1.051055 0.126897 9.525374 -v -1.051055 0.200441 10.158533 -v 1.051055 0.200441 10.158533 -v -1.051055 0.491167 10.501270 -v 1.051055 0.491167 10.501270 +v -1.051055 0.126899 9.525374 +v -1.051055 0.200443 10.158533 +v 1.051055 0.200443 10.158533 +v -1.051055 0.491169 10.501270 +v 1.051055 0.491169 10.501270 v -1.051055 0.126897 6.278877 -v 1.051055 0.126897 9.525374 -v -1.051055 0.805342 10.660654 -v 1.051055 0.805342 10.660654 +v 1.051055 0.126899 9.525374 +v -1.051055 0.805344 10.660654 +v 1.051055 0.805344 10.660654 v -1.051055 0.303245 5.858099 v 1.051055 0.126897 6.278877 -v -1.051055 3.374604 10.660654 -v 1.051055 3.374604 10.660654 +v -1.051055 3.374606 10.660654 +v 1.051055 3.374606 10.660654 v -1.051055 0.730363 5.438924 v 1.051055 0.303245 5.858099 -v -1.051055 3.846210 10.532600 -v 1.051055 3.846210 10.532600 +v -1.051055 3.846212 10.532600 +v 1.051055 3.846212 10.532600 v -1.052369 1.419883 5.161799 v 1.051055 0.730363 5.438924 -v 1.051055 4.197896 10.160744 +v 1.051055 4.197898 10.160744 v 1.052369 1.419883 5.161799 -v 0.580398 5.143752 5.307025 -v -0.580398 5.143752 5.307025 -v -0.580398 3.410160 5.307025 -v 0.580398 3.410160 5.307025 -v 0.580398 4.410827 6.286258 -v 0.580398 5.143752 8.504850 -v -0.580398 5.143752 8.504850 -v -0.580398 5.143752 5.307025 -v 0.580398 4.410827 8.504850 -v 0.580398 5.143752 8.504850 -v 0.580398 4.410827 8.504850 -v 1.582758 -3.887019 -5.026797 +v 0.580398 5.143754 5.307024 +v -0.580398 5.143754 5.307024 +v -0.580398 3.410161 5.307024 +v 0.580398 3.410161 5.307024 +v 0.580398 4.410829 6.286258 +v 0.580398 5.143754 8.504850 +v -0.580398 5.143754 8.504850 +v -0.580398 5.143754 5.307024 +v 0.580398 4.410829 8.504850 +v 0.580398 5.143754 8.504850 +v 0.580398 4.410829 8.504850 +v 1.582758 -3.887019 -5.026795 v 1.582758 -5.973763 -5.781600 -v 1.239158 -5.908380 -6.182570 -v 0.974568 -7.096977 -6.928317 -v 0.974568 -3.532901 -5.626941 +v 1.239158 -5.908381 -6.182570 +v 0.974568 -7.096979 -6.928317 +v 0.974568 -3.532902 -5.626941 v 0.974568 -2.299957 -4.683156 v 1.582758 -2.770208 -4.057409 v 0.974568 2.986196 -2.567274 v 1.582758 2.997752 -1.677936 v 0.974568 4.768444 -3.230170 -v 1.582758 5.705916 -3.303000 +v 1.582758 5.705914 -3.303000 v 0.974568 4.193733 -2.693952 v 1.582758 4.316335 -1.880566 v 1.582758 5.060399 -2.393605 -v 1.113677 5.685023 -6.433600 +v 1.113677 5.685021 -6.433600 v 1.488590 5.921740 -5.685918 v 0.528251 5.631948 -6.753191 -v 1.239158 -6.353005 -5.417203 -v 1.582758 -6.272798 -5.294007 +v 1.239158 -6.353005 -5.417202 +v 1.582758 -6.272799 -5.294005 v 1.582758 -6.783546 -5.235445 -v 1.239158 -6.111135 -5.821549 +v 1.239158 -6.111135 -5.821548 v 1.582758 -7.547009 -5.447709 v 1.239158 -7.503078 -5.592237 -v 1.239158 -6.751891 -5.355608 -v 1.239158 -5.908380 -6.182570 +v 1.239158 -6.751893 -5.355608 +v 1.239158 -5.908381 -6.182570 v 1.582758 -5.973763 -5.781600 -v 1.239158 -7.188473 -6.627295 -v 1.213076 9.430100 -1.953275 -v 1.213076 8.145895 -1.953275 +v 1.239158 -7.188475 -6.627295 +v 1.213076 9.430100 -1.953277 +v 1.213076 8.145895 -1.953277 v 1.582758 -2.770208 -4.057409 -v 1.582758 -3.887019 -5.026797 -v 1.582758 -6.272798 -5.294007 +v 1.582758 -3.887019 -5.026795 +v 1.582758 -6.272799 -5.294005 v 1.582758 -5.973763 -5.781600 v 1.582758 -6.783546 -5.235445 v 1.582758 -7.547009 -5.447709 v 1.582758 -7.547009 -5.447709 -v 1.148529 -7.632973 -5.164886 +v 1.148529 -7.632975 -5.164886 v 1.239158 -7.503078 -5.592237 v 0.836559 -7.541790 -5.464879 -v 0.974568 -7.096977 -6.928317 -v 1.239158 -7.188473 -6.627295 -v 1.539709 -9.237019 0.112444 -v 1.051055 -9.408401 0.676293 -v 0.843982 -8.845317 -1.176260 -v 0.843982 -8.845317 -1.176260 -v 0.843982 7.218984 5.409400 -v 1.148529 7.218984 4.965837 -v 1.148529 7.218984 0.843372 -v 1.148529 -7.632973 -5.164886 -v 0.836559 7.218984 0.486124 +v 0.974568 -7.096979 -6.928317 +v 1.239158 -7.188475 -6.627295 +v 1.539709 -9.237019 0.112446 +v 1.051055 -9.408401 0.676295 +v 0.843982 -8.845317 -1.176258 +v 0.843982 -8.845317 -1.176258 +v 0.843982 7.218986 5.409400 +v 1.148529 7.218986 4.965837 +v 1.148529 7.218984 0.843370 +v 1.148529 -7.632975 -5.164886 +v 0.836559 7.218984 0.486122 v 0.836559 -7.541790 -5.464879 -v 1.148529 -7.632973 -5.164886 +v 1.148529 -7.632975 -5.164886 v -0.836559 -7.541790 -5.464879 -v -0.843982 7.218984 5.409400 -v 1.148529 -8.749960 -1.489985 -v 0.957142 7.863286 7.609767 -v -0.957142 7.863286 7.609767 -v -0.957142 7.218984 7.609767 -v 0.957142 7.218984 5.409400 +v -0.843982 7.218986 5.409400 +v 1.148529 -8.749960 -1.489983 +v 0.957142 7.863286 7.609766 +v -0.957142 7.863286 7.609766 +v -0.957142 7.218986 7.609766 +v 0.957142 7.218986 5.409400 v 0.957142 7.863286 5.710876 -v 0.957142 7.863286 7.609767 -v -0.957142 7.863286 7.609767 -v 0.957142 7.863286 7.609767 +v 0.957142 7.863286 7.609766 +v -0.957142 7.863286 7.609766 +v 0.957142 7.863286 7.609766 v 0.957142 7.863286 5.710876 -v 0.957142 7.218984 7.609767 -v 0.957142 7.218984 6.277361 +v 0.957142 7.218986 7.609766 +v 0.957142 7.218986 6.277359 v 2.253843 6.930664 -2.831019 v 2.253843 6.930664 -2.831019 v 1.592578 6.125614 -1.931486 v 2.253843 6.902664 -4.747439 v 2.253843 6.726052 -1.549974 -v 2.253843 6.966193 -1.398447 -v 1.709833 6.807340 5.318413 -v 1.965886 6.807340 5.149458 +v 2.253843 6.966193 -1.398448 +v 1.709833 6.807342 5.318411 +v 1.965886 6.807342 5.149457 v 1.965886 7.483090 5.848535 -v 1.965886 6.807340 5.848535 -v 1.882584 6.807340 7.165412 -v 2.249606 6.807340 7.165412 -v -1.051055 5.194827 6.202400 -v -1.373788 5.194825 19.361946 -v 0.000000 8.128884 22.443676 +v 1.965886 6.807342 5.848535 +v 1.882584 6.807342 7.165411 +v 2.249606 6.807342 7.165411 +v -1.051055 5.194829 6.202400 +v -1.373788 5.194829 19.361946 +v 0.000000 8.128888 22.443676 v 0.000000 7.882946 5.649786 v 1.469249 0.829702 3.368853 v 1.133210 0.829702 3.301505 @@ -6113,75 +1557,757 @@ v -0.991334 0.714416 2.803811 v -0.991334 0.583586 2.934655 v -1.284940 0.714416 2.803811 v 1.979996 6.437829 -1.926155 -v -1.425465 6.129148 12.324278 -v -1.373788 6.342137 19.361946 -v -1.582758 6.342137 12.374792 -v -1.582758 5.194827 5.282278 -v -1.213076 9.430100 -1.953275 +v -1.425465 6.129150 12.324278 +v -1.373788 6.342139 19.361946 +v -1.582758 6.342139 12.374790 +v -1.582758 5.194829 5.282278 +v -1.213076 9.430100 -1.953277 v -1.051770 0.545047 3.730687 -v -1.213076 8.145895 -1.953275 +v -1.213076 8.145895 -1.953277 v -1.239158 -7.503078 -5.592237 -v 1.213076 7.624437 -4.804955 -v 1.213076 7.624437 -4.804955 -v 0.708688 7.624437 -1.953275 -v 1.213076 8.145895 -1.953275 -v 1.213076 9.430100 -1.953275 -v 0.857694 7.218982 19.361946 -v -1.550631 -8.362582 -1.129572 -v -1.550631 7.128137 4.054968 -v 1.550631 -8.362582 -1.129572 -v -0.580398 4.410827 8.504850 -v -0.957142 7.218984 7.609767 -v -0.708688 7.624437 -1.953275 -v -1.213076 7.218984 -1.953275 +v 1.213076 7.624435 -4.804955 +v 1.213076 7.624435 -4.804955 +v 0.708688 7.624437 -1.953277 +v 1.213076 8.145895 -1.953277 +v 1.213076 9.430100 -1.953277 +v 0.857694 7.218986 19.361946 +v -1.550631 -8.362582 -1.129570 +v -1.550631 7.128139 4.054966 +v 1.550631 -8.362582 -1.129570 +v -0.580398 4.410829 8.504850 +v -0.957142 7.218986 7.609766 +v -0.708688 7.624437 -1.953277 +v -1.213076 7.218984 -1.953277 v -0.702042 8.145895 -4.804955 v -0.702042 8.145895 -4.804955 v -0.450662 9.430100 -4.335176 v -1.213076 8.145895 -4.804955 v -0.450662 9.430100 -4.335176 v -0.832096 -2.281892 2.617995 -v -1.373788 6.342137 19.361946 -v -1.373788 5.534109 19.361946 +v -1.373788 6.342139 19.361946 +v -1.373788 5.534112 19.361946 v -1.159394 9.473121 5.890272 -v -1.159394 7.167399 11.908644 +v -1.159394 7.167401 11.908642 v -1.018901 9.373809 5.890272 -v -0.372438 10.296735 5.890272 +v -0.372438 10.296735 5.890270 v 1.159394 7.167399 5.890272 -v 1.159394 7.167399 11.908644 -v 0.666265 10.036925 11.908644 +v 1.159394 7.167401 11.908642 +v 0.666265 10.036927 11.908642 v -1.018901 7.167399 5.890272 v 2.253843 6.726052 -1.549974 v -1.051770 0.676579 2.753111 v 1.050937 0.595196 3.367662 v -1.051770 1.087353 2.951361 -v -1.239158 -6.716357 -6.316617 -v -1.239158 -6.973310 -5.696272 -v -0.857694 7.218984 12.938878 -v -1.239158 -6.352968 -5.953228 -v 1.213076 7.218984 -1.953275 -v 0.580398 4.410827 8.504850 -v 1.051055 3.986079 11.231197 +v -1.239158 -6.716359 -6.316617 +v -1.239158 -6.973310 -5.696270 +v -0.857694 7.218986 12.938876 +v -1.239158 -6.352970 -5.953228 +v 1.213076 7.218984 -1.953277 +v 0.580398 4.410829 8.504850 +v 1.051055 3.986081 11.231197 v -1.051770 0.676579 2.753111 v 1.050937 0.062500 3.588312 -v 1.373788 6.342137 19.361946 -v 1.425465 6.342137 12.470450 -v 1.425465 5.534111 12.470450 -v 1.582758 5.534109 18.331852 -v 1.051055 0.145061 11.660562 +v 1.373788 6.342139 19.361946 +v 1.425465 6.342139 12.470448 +v 1.425465 5.534113 12.470450 +v 1.582758 5.534112 18.331852 +v 1.051055 0.145063 11.660562 v 1.051055 -0.223472 3.408138 -v 1.051055 4.834128 19.361946 +v 1.051055 4.834130 19.361946 v -0.832096 -2.281892 2.617995 v -0.832096 -2.992427 3.243009 v 0.832096 -3.666983 2.980051 v -0.832096 -3.666983 2.980051 -v 1.052369 3.020580 5.130578 -v 0.580398 3.410160 5.307025 -v 0.580398 5.143752 5.307025 -v 1.148529 -8.749960 -1.489985 -v 1.148529 7.218984 0.843372 -v 0.957142 7.218984 7.609767 +v 1.052369 3.020581 5.130578 +v 0.580398 3.410161 5.307024 +v 0.580398 5.143754 5.307024 +v 1.148529 -8.749960 -1.489983 +v 1.148529 7.218984 0.843370 +v 0.957142 7.218986 7.609766 v -0.957142 7.863286 5.710876 -v 1.965886 6.807340 5.848535 +v 1.965886 6.807342 5.848535 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 -0.9983 -0.0575 +vn -0.0000 -0.9772 -0.2125 +vn -0.0000 -0.9666 -0.2562 +vn -0.0000 -0.4950 0.8689 +vn 1.0000 -0.0000 -0.0000 +vn -0.0053 0.6390 -0.7692 +vn -0.0000 0.6406 -0.7679 +vn -0.0035 0.6415 -0.7671 +vn -0.0000 -0.9606 -0.2778 +vn -0.0000 -0.9397 -0.3420 +vn -0.0000 0.1886 -0.9821 +vn -0.0000 0.6463 -0.7631 +vn -0.0036 0.6433 -0.7656 +vn -0.0000 0.8070 0.5905 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 0.9924 0.1232 +vn -0.0000 -0.5336 0.8457 +vn -0.0011 -0.5347 0.8451 +vn -0.0008 -0.5346 0.8451 +vn 0.0002 0.9819 0.1892 +vn -0.0000 1.0000 -0.0000 +vn -0.0000 0.8598 0.5106 +vn -0.0000 -0.0000 1.0000 +vn -0.0000 -0.9851 -0.1717 +vn -0.0000 -0.9356 0.3532 +vn -0.0000 -0.9999 0.0171 +vn -0.0000 0.3735 0.9276 +vn -0.0000 -0.2142 0.9768 +vn -0.0000 -0.1128 0.9936 +vn -0.0000 -0.6774 0.7356 +vn -0.0000 -0.5021 0.8648 +vn -0.0000 -0.9934 -0.1149 +vn -0.0000 -0.0000 -1.0000 +vn -0.9978 0.0662 -0.0000 +vn -0.8965 0.4430 -0.0000 +vn -0.9472 0.3207 -0.0000 +vn -0.9575 -0.1451 0.2492 +vn -0.9344 -0.2629 0.2404 +vn -0.9389 -0.2242 0.2612 +vn -0.8781 -0.1764 0.4448 +vn -0.9776 -0.1677 0.1269 +vn 0.9978 -0.0662 -0.0000 +vn 0.8965 -0.4430 -0.0000 +vn 0.9472 -0.3207 -0.0000 +vn -0.6588 0.7523 -0.0000 +vn -0.7523 0.6588 -0.0000 +vn 0.6588 -0.7523 -0.0000 +vn 0.7523 -0.6588 -0.0000 +vn -0.3207 0.9472 -0.0001 +vn -0.4430 0.8965 -0.0001 +vn 0.3207 -0.9472 -0.0000 +vn 0.4430 -0.8965 -0.0000 +vn 0.0662 0.9978 -0.0000 +vn -0.0661 0.9978 -0.0000 +vn -0.0662 -0.9978 -0.0000 +vn 0.0661 -0.9978 -0.0000 +vn 0.0661 0.9978 -0.0000 +vn 0.4430 0.8965 -0.0000 +vn 0.3207 0.9472 -0.0000 +vn -0.0661 -0.9978 -0.0000 +vn -0.4430 -0.8965 -0.0000 +vn -0.3207 -0.9472 -0.0000 +vn 0.7523 0.6588 -0.0000 +vn 0.6588 0.7523 -0.0000 +vn -0.7523 -0.6588 -0.0000 +vn -0.6588 -0.7523 -0.0000 +vn 0.9472 0.3207 -0.0000 +vn 0.8965 0.4430 -0.0001 +vn -0.9472 -0.3207 -0.0000 +vn -0.8965 -0.4430 -0.0000 +vn 0.9978 0.0662 -0.0000 +vn -0.9978 -0.0662 -0.0000 +vn 0.8965 -0.4430 0.0001 +vn -0.3207 0.9472 -0.0000 +vn -0.4430 0.8965 -0.0000 +vn 0.0662 -0.9978 -0.0000 +vn -0.0662 0.9978 -0.0000 +vn -0.4430 -0.8965 0.0001 +vn -0.3207 -0.9472 0.0001 +vn 0.8965 0.4430 -0.0000 +vn -0.0000 0.9071 -0.4210 +vn -0.0000 0.9960 0.0890 +vn -0.0000 0.9960 -0.0890 +vn -0.0000 0.9960 0.0889 +vn -0.0000 0.8181 0.5750 +vn -0.0000 0.9071 0.4210 +vn -0.0000 0.5751 -0.8181 +vn -0.0000 0.8181 -0.5751 +vn -0.0000 0.4210 0.9071 +vn -0.0000 0.5750 0.8181 +vn -0.0000 0.0890 -0.9960 +vn -0.0000 0.4210 -0.9071 +vn -0.0000 -0.0889 0.9960 +vn -0.0000 0.0889 0.9960 +vn -0.0000 -0.4210 -0.9071 +vn -0.0000 0.0889 -0.9960 +vn -0.0000 -0.0890 -0.9960 +vn -0.0000 -0.5750 0.8181 +vn -0.0000 -0.4210 0.9071 +vn -0.0000 -0.8181 -0.5751 +vn -0.0000 -0.5751 -0.8181 +vn -0.0000 -0.9071 0.4210 +vn -0.0000 -0.8181 0.5750 +vn -0.0000 -0.9960 -0.0890 +vn -0.0000 -0.9071 -0.4210 +vn -0.0000 -0.9960 -0.0889 +vn -0.0000 -0.9960 0.0889 +vn -0.0000 -0.9960 0.0890 +vn -0.0000 -0.8181 -0.5750 +vn -0.0000 -0.5751 0.8181 +vn -0.0000 -0.8181 0.5751 +vn -0.0000 -0.5750 -0.8181 +vn -0.0000 -0.0890 0.9960 +vn -0.0000 0.0890 0.9960 +vn -0.0000 0.5750 -0.8181 +vn -0.0000 0.8181 0.5751 +vn -0.0000 0.5751 0.8181 +vn -0.0000 0.8181 -0.5750 +vn -0.0000 0.9960 -0.0889 +vn -0.8737 -0.1315 -0.4684 +vn -0.9862 -0.0041 -0.1656 +vn -0.8872 0.2205 -0.4054 +vn -0.7168 -0.3702 0.5909 +vn -0.0822 -0.6000 0.7957 +vn -0.6767 -0.2422 0.6953 +vn -0.9125 0.1216 -0.3905 +vn -0.9940 0.0221 -0.1068 +vn -0.9139 -0.0027 -0.4059 +vn -0.9673 0.2232 0.1202 +vn -0.9954 -0.0433 0.0853 +vn -0.9560 0.1006 0.2757 +vn -0.9685 -0.0991 0.2284 +vn -0.9504 -0.2074 0.2318 +vn -0.9883 0.1182 0.0969 +vn -0.4530 0.2801 -0.8464 +vn -0.4864 0.0390 -0.8729 +vn -0.9142 0.0704 -0.3992 +vn -0.1396 0.2721 -0.9521 +vn -0.0360 0.1283 -0.9911 +vn -0.8460 0.1204 -0.5194 +vn -0.9076 0.3995 -0.1294 +vn -0.4854 0.7468 -0.4545 +vn -0.5755 0.8091 -0.1186 +vn -0.0534 0.7747 -0.6301 +vn -0.3445 0.4756 -0.8094 +vn -0.9779 -0.0642 -0.1992 +vn -0.9947 0.0245 -0.0996 +vn -0.9931 -0.0834 -0.0820 +vn -0.9058 -0.1444 -0.3984 +vn -0.9566 0.2613 0.1289 +vn -0.9201 -0.3126 0.2362 +vn -0.9313 -0.3635 0.0218 +vn -0.9227 -0.2852 0.2592 +vn -0.9128 -0.3909 0.1182 +vn -0.9312 -0.3570 0.0740 +vn -0.9684 -0.1692 0.1830 +vn -0.9038 -0.3696 0.2156 +vn -0.9809 -0.1776 0.0789 +vn -0.9786 -0.2002 0.0480 +vn -0.9987 -0.0475 -0.0201 +vn -0.9688 0.2308 0.0903 +vn -0.9376 0.0952 0.3344 +vn -0.9649 0.1135 0.2367 +vn -0.9495 0.2763 0.1486 +vn -0.9832 0.0556 0.1736 +vn -0.9844 0.1276 0.1212 +vn -0.9290 0.2500 0.2729 +vn -0.9956 -0.0665 0.0653 +vn -0.9625 -0.0724 0.2614 +vn -0.9851 -0.1084 0.1335 +vn -0.9833 -0.0502 0.1751 +vn -0.9846 -0.0087 0.1745 +vn -0.9900 0.1007 0.0988 +vn -0.8989 0.0907 0.4287 +vn -0.9942 -0.0403 -0.1002 +vn -0.9968 -0.0448 -0.0663 +vn -0.8695 -0.2858 -0.4029 +vn -0.9335 -0.3023 -0.1926 +vn -0.9089 -0.4170 0.0072 +vn -0.9846 -0.1696 0.0430 +vn -0.9932 -0.0221 -0.1146 +vn -0.9900 0.0999 -0.0998 +vn -0.9920 0.1239 -0.0234 +vn -0.5747 0.5494 0.6065 +vn -0.8998 0.4026 0.1680 +vn -0.0745 0.7122 0.6980 +vn -0.3706 0.2403 0.8972 +vn -0.0963 -0.2070 0.9736 +vn -0.0758 0.2517 0.9648 +vn -0.6409 -0.7662 -0.0458 +vn -0.9298 -0.2330 0.2848 +vn -0.0000 -0.5750 0.8182 +vn -0.0000 -0.5750 -0.8182 +vn -0.0000 -0.8182 -0.5750 +vn -0.0000 0.5750 0.8182 +vn -0.0000 -0.0889 -0.9960 +vn -0.0000 -0.9239 -0.3826 +vn -0.0000 0.9239 -0.3826 +vn -0.0001 0.9675 -0.2527 +vn -0.0000 -0.3827 -0.9239 +vn -0.0000 0.3827 -0.9239 +vn -0.0000 0.8629 -0.5054 +vn -0.0000 -0.9676 -0.2526 +vn -0.0000 -0.8629 -0.5054 +vn 0.0002 -0.9676 -0.2526 +vn -0.0000 0.9906 0.1368 +vn -0.0000 0.6038 0.7972 +vn -0.0000 0.7972 0.6038 +vn -0.0000 -0.1368 0.9906 +vn -0.0000 0.1368 0.9906 +vn -0.0000 -0.7972 0.6037 +vn -0.0000 -0.6038 0.7972 +vn -0.0000 -0.7972 0.6038 +vn -0.0000 -0.9906 -0.1368 +vn -0.0000 -0.9906 0.1368 +vn -0.0000 -0.6038 -0.7972 +vn -0.0000 -0.7972 -0.6038 +vn -0.0000 0.1368 -0.9906 +vn -0.0000 -0.1368 -0.9906 +vn -1.0000 -0.0000 0.0037 +vn -1.0000 -0.0000 0.0075 +vn -0.0000 0.7972 -0.6038 +vn -0.0000 0.6038 -0.7972 +vn -0.5344 0.1812 0.8256 +vn -0.5073 -0.3627 0.7818 +vn -0.5247 -0.1884 0.8302 +vn -0.3422 0.8174 0.4635 +vn -0.5018 0.4301 0.7505 +vn -0.0000 0.9906 -0.1368 +vn 0.0138 0.7488 -0.6626 +vn -0.0105 0.4047 -0.9144 +vn 0.0087 0.3748 -0.9271 +vn 0.0713 0.8730 -0.4825 +vn -0.0055 0.9136 -0.4067 +vn -0.9958 -0.0324 -0.0853 +vn -0.9474 -0.3190 -0.0268 +vn 0.9932 -0.0426 -0.1083 +vn 0.9930 -0.0531 -0.1054 +vn 0.9015 -0.4270 -0.0701 +vn 0.9474 -0.3190 -0.0268 +vn 0.4260 -0.8999 -0.0934 +vn -0.4482 -0.5058 0.7370 +vn -0.4877 -0.5255 0.6971 +vn -0.9280 -0.3587 -0.1012 +vn -0.8534 -0.4727 -0.2197 +vn -0.4260 -0.8989 -0.1030 +vn 0.9394 -0.1625 -0.3019 +vn 0.5145 -0.3209 0.7952 +vn 0.9295 -0.1383 0.3419 +vn 0.9268 -0.1407 0.3483 +vn -0.6818 -0.5955 -0.4249 +vn -0.9911 -0.0000 0.1331 +vn -0.9978 -0.0000 0.0666 +vn 0.9404 0.1281 -0.3149 +vn 0.9304 0.1374 -0.3398 +vn -0.0000 -0.9918 0.1279 +vn -0.0000 -0.9960 -0.0893 +vn 0.1721 0.4024 -0.8991 +vn -0.0000 0.4238 -0.9058 +vn -0.9476 -0.1416 -0.2864 +vn -0.9930 -0.0531 -0.1054 +vn -0.9476 -0.1416 -0.2865 +vn 0.8934 -0.3903 -0.2225 +vn -1.0000 -0.0006 0.0001 +vn -1.0000 -0.0010 -0.0002 +vn -0.9886 -0.0584 0.1389 +vn -1.0000 -0.0000 -0.0006 +vn -1.0000 0.0008 -0.0006 +vn -0.8859 -0.1792 0.4279 +vn -0.9569 -0.1081 0.2694 +vn -0.9391 -0.1502 0.3090 +vn -0.9371 -0.1343 0.3223 +vn 0.4203 -0.4751 0.7730 +vn 0.3339 -0.2816 0.8996 +vn 0.8896 -0.1729 0.4226 +vn -0.9473 0.1523 -0.2819 +vn -0.9802 0.0091 -0.1979 +vn -0.2835 -0.4795 -0.8305 +vn -0.2965 -0.1206 -0.9474 +vn -0.0364 0.1142 -0.9928 +vn 0.9363 0.1191 -0.3304 +vn -0.9363 0.1191 -0.3304 +vn 0.9910 0.0439 -0.1265 +vn -0.9910 0.0439 -0.1265 +vn -0.8724 -0.1036 0.4777 +vn -0.9603 0.0267 0.2778 +vn -0.9801 -0.1117 0.1641 +vn -0.9999 -0.0132 -0.0001 +vn -0.9719 -0.0333 0.2329 +vn -0.9376 0.1183 -0.3271 +vn -0.9212 0.1912 -0.3389 +vn -0.0000 -0.9072 -0.4206 +vn 0.0208 -0.2762 -0.9609 +vn -0.0000 0.2238 -0.9746 +vn -0.0000 0.1500 -0.9887 +vn -0.9257 -0.1856 -0.3295 +vn -0.9477 -0.2262 -0.2251 +vn -0.9436 -0.3063 -0.1256 +vn -0.5812 -0.6406 -0.5019 +vn -0.0856 0.9400 -0.3303 +vn -0.0807 0.8763 -0.4749 +vn 0.0006 0.2651 -0.9642 +vn -0.9910 0.0440 -0.1265 +vn -0.9363 0.1191 -0.3303 +vn -0.4139 0.3096 -0.8560 +vn -0.3758 -0.8080 -0.4538 +vn -0.3691 -0.8001 -0.4728 +vn -0.3743 -0.7996 -0.4696 +vn -0.3715 0.2637 -0.8902 +vn -0.3430 0.0002 -0.9393 +vn -0.3595 0.1300 -0.9240 +vn -0.3937 -0.6141 -0.6841 +vn 0.9227 -0.2852 0.2592 +vn 0.8989 0.0907 0.4287 +vn 0.6998 -0.1880 0.6892 +vn 0.9504 -0.2074 0.2318 +vn 0.9201 -0.3126 0.2362 +vn 0.6767 -0.2422 0.6953 +vn 0.9649 0.1135 0.2367 +vn 0.9883 0.1182 0.0969 +vn 0.7168 -0.3702 0.5909 +vn 0.9376 0.0952 0.3344 +vn 0.9560 0.1006 0.2757 +vn 0.4864 0.0390 -0.8729 +vn 0.9142 0.0704 -0.3992 +vn 0.9058 -0.1444 -0.3984 +vn 0.0717 -0.2461 -0.9666 +vn 0.0360 0.1283 -0.9911 +vn 0.9139 -0.0027 -0.4059 +vn 0.9125 0.1216 -0.3905 +vn 0.8460 0.1204 -0.5194 +vn 0.9083 -0.1711 -0.3818 +vn 0.4795 -0.1233 -0.8689 +vn 0.8695 -0.2858 -0.4029 +vn 0.3927 -0.4709 -0.7900 +vn 0.8737 -0.1315 -0.4684 +vn 0.3129 -0.4800 -0.8196 +vn 0.8872 0.2205 -0.4054 +vn 0.3805 -0.0664 -0.9224 +vn 0.5755 0.8091 -0.1186 +vn 0.3592 0.8985 0.2523 +vn 0.8999 0.4025 0.1679 +vn 0.0333 -0.3953 -0.9180 +vn -0.0238 -0.5460 -0.8375 +vn -0.0633 -0.2827 -0.9571 +vn -0.0221 0.3133 -0.9494 +vn 0.3445 0.4756 -0.8094 +vn 0.0128 -0.0140 -0.9998 +vn 0.0009 0.2043 -0.9789 +vn 0.9968 -0.0448 -0.0663 +vn 0.9932 -0.0221 -0.1146 +vn 0.9089 -0.4170 0.0072 +vn 0.9846 -0.1696 0.0430 +vn 0.9298 -0.2330 0.2848 +vn 0.4446 -0.3490 -0.8249 +vn 0.9076 0.3995 -0.1294 +vn 0.0550 0.2948 -0.9540 +vn 0.0963 -0.2070 0.9736 +vn 0.0822 -0.6000 0.7957 +vn 0.9940 0.0221 -0.1068 +vn 0.9954 -0.0433 0.0853 +vn 0.4530 0.2801 -0.8464 +vn 0.4854 0.7468 -0.4545 +vn 0.0534 0.7747 -0.6301 +vn 0.9920 0.1239 -0.0234 +vn 0.9900 0.0999 -0.0998 +vn 0.9900 0.1007 0.0988 +vn 0.9862 -0.0041 -0.1656 +vn -0.1765 -0.9638 -0.1996 +vn 0.6818 -0.5955 -0.4249 +vn 0.3051 -0.5726 -0.7609 +vn 0.2122 -0.9513 -0.2235 +vn -0.0000 0.0901 -0.9959 +vn 0.4259 -0.8802 -0.2092 +vn 0.9999 0.0167 0.0007 +vn 1.0000 0.0019 0.0034 +vn -0.0000 0.9018 -0.4322 +vn 0.0616 0.9395 -0.3370 +vn -0.0000 0.9364 -0.3510 +vn 0.0856 0.9400 -0.3303 +vn 0.0516 0.7096 -0.7027 +vn -0.0000 0.1126 -0.9936 +vn -0.0000 0.2651 -0.9642 +vn -0.0000 0.2199 -0.9755 +vn -0.0000 0.9018 -0.4321 +vn -0.0613 0.7646 -0.6415 +vn 0.9666 0.0118 -0.2559 +vn 0.9053 -0.1764 0.3864 +vn 0.9477 -0.2262 -0.2251 +vn 0.9436 -0.3063 -0.1256 +vn 0.9389 -0.2242 0.2612 +vn 0.9776 -0.1677 0.1269 +vn 0.9978 -0.0000 0.0666 +vn 0.9257 -0.1856 -0.3295 +vn -0.8895 0.4570 -0.0000 +vn -0.2763 0.9611 0.0002 +vn -0.5527 0.8333 0.0001 +vn -0.9736 0.2284 -0.0000 +vn -0.0976 -0.7839 0.6132 +vn -0.6439 -0.6219 -0.4457 +vn -0.0928 -0.7999 -0.5929 +vn -0.0690 -0.9541 -0.2914 +vn -0.4446 -0.3490 -0.8249 +vn -0.3592 0.8985 0.2523 +vn -0.1134 0.9756 -0.1878 +vn -0.0002 0.2043 -0.9789 +vn -0.0550 0.2948 -0.9540 +vn -0.6998 -0.1881 0.6892 +vn -0.9083 -0.1711 -0.3818 +vn -0.0717 -0.2461 -0.9666 +vn -0.4795 -0.1233 -0.8689 +vn -0.3927 -0.4709 -0.7900 +vn -0.3129 -0.4800 -0.8196 +vn -0.3805 -0.0664 -0.9224 +vn -0.0333 -0.3953 -0.9180 +vn 0.0238 -0.5460 -0.8375 +vn 0.0633 -0.2827 -0.9571 +vn 0.0221 0.3133 -0.9494 +vn -0.0128 -0.0140 -0.9998 +vn 0.9673 0.2232 0.1202 +vn 0.9685 -0.0991 0.2284 +vn 0.1396 0.2721 -0.9521 +vn 0.9779 -0.0642 -0.1992 +vn 0.9931 -0.0834 -0.0820 +vn 0.9335 -0.3023 -0.1926 +vn 0.9566 0.2613 0.1289 +vn 0.9313 -0.3635 0.0219 +vn 0.9128 -0.3909 0.1182 +vn 0.9786 -0.2002 0.0480 +vn 0.9312 -0.3570 0.0740 +vn 0.9038 -0.3696 0.2156 +vn 0.9684 -0.1692 0.1830 +vn 0.9809 -0.1776 0.0789 +vn 0.9987 -0.0475 -0.0201 +vn 0.9688 0.2308 0.0903 +vn 0.9495 0.2763 0.1486 +vn 0.9290 0.2500 0.2729 +vn 0.9844 0.1276 0.1212 +vn 0.9832 0.0556 0.1736 +vn 0.9956 -0.0665 0.0653 +vn 0.9625 -0.0724 0.2614 +vn 0.9851 -0.1084 0.1335 +vn 0.9833 -0.0502 0.1751 +vn 0.9846 -0.0087 0.1745 +vn 0.9942 -0.0403 -0.1002 +vn 0.9947 0.0245 -0.0996 +vn 0.5747 0.5494 0.6065 +vn 0.3706 0.2403 0.8972 +vn 0.0745 0.7122 0.6980 +vn 0.0758 0.2517 0.9648 +vn 0.6409 -0.7662 -0.0458 +vn 0.1193 -0.7677 0.6296 +vn 0.0973 -0.7840 0.6130 +vn 0.6439 -0.6219 -0.4457 +vn 0.0928 -0.7999 -0.5929 +vn 0.1134 0.9756 -0.1878 +vn 0.0654 0.9680 0.2423 +vn -0.3723 -0.3800 -0.8468 +vn -0.6432 -0.3414 -0.6854 +vn -0.4592 -0.4012 -0.7925 +vn -0.4263 -0.8678 -0.2554 +vn -0.3935 0.1531 -0.9065 +vn -0.5149 0.4477 -0.7311 +vn -0.4133 0.4461 -0.7938 +vn -0.9212 0.1912 -0.3390 +vn -0.9375 0.1183 -0.3271 +vn 0.9999 0.0135 -0.0099 +vn 0.9998 0.0213 0.0011 +vn 0.9996 0.0271 0.0029 +vn -0.9998 0.0213 0.0011 +vn -0.9996 0.0271 0.0029 +vn -0.9997 0.0252 0.0067 +vn 0.8895 0.4570 -0.0000 +vn 0.9736 0.2284 -0.0000 +vn 0.4196 0.9077 -0.0000 +vn -0.0000 -0.9568 -0.2908 +vn -0.9999 0.0167 0.0007 +vn -0.9995 0.0314 -0.0020 +vn -0.0004 -0.2799 0.9600 +vn 0.0001 -0.5968 0.8024 +vn -0.0004 -0.5061 0.8625 +vn 0.0001 -0.7783 0.6279 +vn -0.0000 -0.8622 0.5066 +vn -0.0000 -0.9667 0.2558 +vn -0.0004 -0.2668 0.9638 +vn -0.9911 -0.0000 0.1332 +vn -0.9894 -0.1160 0.0873 +vn 0.8417 -0.2936 0.4532 +vn 0.4395 -0.3448 0.8294 +vn 0.4540 -0.0806 0.8873 +vn -1.0000 0.0006 0.0012 +vn 1.0000 0.0095 -0.0023 +vn 0.9997 0.0252 0.0067 +vn 0.0001 0.2199 -0.9755 +vn -0.0616 0.9395 -0.3370 +vn -0.4392 0.0051 0.8984 +vn -0.3221 -0.2815 0.9039 +vn -0.4149 -0.3225 0.8508 +vn -0.4184 -0.0205 0.9080 +vn 0.0147 -0.3602 0.9328 +vn -0.3221 -0.2814 0.9039 +vn -0.1337 0.9663 0.2198 +vn -0.9800 -0.0000 0.1988 +vn -0.5451 0.8383 -0.0000 +vn -0.2015 0.9795 0.0001 +vn -0.9362 0.3516 0.0001 +vn -0.9334 -0.3588 -0.0000 +vn -0.5359 -0.8443 -0.0000 +vn -0.0000 0.9989 0.0471 +vn -0.0000 0.9992 0.0392 +vn -0.0000 0.9931 0.1175 +vn -0.0000 0.9992 0.0393 +vn 0.1595 0.9872 0.0003 +vn 0.9363 0.3512 -0.0000 +vn 0.9362 0.3516 0.0001 +vn 0.5451 0.8383 0.0001 +vn 0.9334 -0.3588 -0.0000 +vn 0.4063 -0.9137 -0.0000 +vn -0.2679 -0.9634 -0.0000 +vn -0.0000 -0.5363 0.8440 +vn -0.0005 -0.5361 0.8442 +vn -0.0000 -0.8176 -0.5758 +vn -0.9850 -0.0671 0.1589 +vn 0.4464 -0.6134 0.6515 +vn -0.0000 -0.9239 0.3827 +vn -0.0000 -0.7929 0.6094 +vn 0.4465 -0.6134 0.6515 +vn 0.0655 0.8693 0.4899 +vn 0.0479 0.9748 0.2177 +vn 0.0450 0.9407 0.3362 +vn 1.0000 -0.0001 -0.0003 +vn 1.0000 0.0004 -0.0008 +vn 1.0000 -0.0007 -0.0006 +vn 0.9756 -0.0842 0.2027 +vn 1.0000 0.0004 -0.0001 +vn 0.4540 -0.0805 0.8873 +vn -0.0000 -0.1298 0.9915 +vn 0.0112 -0.9503 0.3111 +vn 1.0000 0.0002 -0.0001 +vn 1.0000 -0.0007 -0.0000 +vn -0.0000 -0.7071 0.7071 +vn -0.0000 0.6037 0.7972 +vn -0.0000 0.7972 0.6037 +vn -0.0000 0.7071 -0.7071 +vn 0.4240 0.3427 -0.8383 +vn -0.9999 0.0135 -0.0099 +vn 0.4193 0.9079 0.0001 +vn -1.0000 0.0095 -0.0023 +vn 0.0001 -0.7972 -0.6037 +vn -0.0001 -0.6037 -0.7972 +vn -0.1722 0.3928 -0.9033 +vn -0.0000 -0.9929 -0.1193 +vn 0.9911 -0.0000 0.1332 +vn -0.0000 -0.9478 0.3188 +vn -0.0000 -0.4448 0.8956 +vn -0.0000 -0.8814 -0.4724 +vn -0.9418 0.2820 0.1830 +vn -0.7726 0.5655 0.2886 +vn 0.0646 -0.2831 0.9569 +vn 0.0405 -0.5936 0.8037 +vn 0.5073 -0.3627 0.7818 +vn 0.5247 -0.1884 0.8302 +vn 0.4877 -0.5255 0.6971 +vn 0.3422 0.8174 0.4635 +vn 0.1337 0.9663 0.2198 +vn 0.5018 0.4301 0.7505 +vn 0.5344 0.1812 0.8256 +vn 1.0000 -0.0000 0.0037 +vn 1.0000 -0.0000 0.0075 +vn 0.0674 -0.0000 0.9977 +vn 0.9894 -0.1160 0.0873 +vn 0.9344 -0.2629 0.2404 +vn -0.9978 -0.0354 0.0555 +vn 0.9575 -0.1436 0.2500 +vn 0.9800 -0.0000 0.1988 +vn -0.0000 -0.2272 0.9739 +vn 0.0002 0.6059 0.7955 +vn -0.0000 0.8184 0.5746 +vn -0.0002 0.3029 0.9530 +vn -0.0000 0.6605 0.7508 +vn -0.0000 -0.3632 0.9317 +vn -0.0000 -0.9906 0.1367 +vn 0.4395 -0.3449 0.8294 +vn 0.3228 -0.2420 0.9150 +vn 0.9719 -0.0333 0.2329 +vn 0.9603 0.0267 0.2778 +vn 0.4392 0.0417 0.8974 +vn 0.4198 -0.1075 0.9012 +vn -0.0197 -0.3607 0.9325 +vn -0.0257 -0.3607 0.9323 +vn 0.5470 -0.3017 0.7809 +vn 0.9801 -0.1117 0.1641 +vn 0.8724 -0.1036 0.4777 +vn -0.4184 -0.0204 0.9080 +vn 0.0385 -0.3613 0.9316 +vn 0.5470 -0.3018 0.7808 +vn 0.4198 -0.1076 0.9012 +vn 1.0000 0.0009 -0.0015 +vn 1.0000 0.0001 -0.0016 +vn 1.0000 0.0006 0.0012 +vn -0.0000 -0.4993 0.8664 +vn -0.0000 -0.2667 0.9638 +vn -0.0000 0.0459 0.9989 +vn -0.0000 -0.0351 0.9994 +vn 0.0006 -0.3409 0.9401 +vn 0.0003 -0.5061 0.8625 +vn 0.0003 -0.3136 0.9496 +vn -0.0000 -0.7783 0.6279 +vn -0.0001 -0.5968 0.8024 +vn -0.0000 0.9970 -0.0770 +vn -0.0000 0.8727 -0.4883 +vn -0.0001 0.9526 -0.3041 +vn -0.0000 0.5657 -0.8246 +vn -0.0000 0.6710 -0.7415 +vn -0.0000 0.9914 0.1311 +vn -0.0000 0.9993 -0.0385 +vn -0.0000 0.1546 -0.9880 +vn -0.0000 0.3091 -0.9510 +vn -0.0000 0.8635 0.5044 +vn -0.0000 0.9650 0.2623 +vn -0.0000 -0.1761 -0.9844 +vn -0.0000 -0.0880 -0.9961 +vn -0.0000 0.6016 0.7988 +vn -0.0000 0.7882 0.6154 +vn -0.0000 -0.5913 -0.8065 +vn -0.0000 -0.4311 -0.9023 +vn -0.0000 0.2927 0.9562 +vn -0.0000 0.4905 0.8714 +vn -0.0000 -0.8104 -0.5859 +vn -0.0000 0.2098 0.9777 +vn -0.0002 -0.2799 0.9600 +vn 0.9212 0.1912 -0.3390 +vn 0.9375 0.1183 -0.3271 +vn 0.9363 0.1191 -0.3303 +vn 0.5457 0.2840 -0.7884 +vn 0.4129 0.3969 -0.8198 +vn 0.3689 0.4766 -0.7979 +vn 0.9473 0.1523 -0.2819 +vn 0.5471 0.1521 -0.8231 +vn 0.4428 -0.7141 -0.5422 +vn 0.4578 -0.2885 -0.8409 +vn 0.6432 -0.3414 -0.6854 +vn 0.2347 -0.0372 -0.9713 +vn 0.3723 -0.3800 -0.8468 +vn 0.3937 -0.6141 -0.6841 +vn 0.3430 0.0002 -0.9393 +vn 0.3691 -0.8001 -0.4728 +vn 0.3715 0.2637 -0.8902 +vn 0.4024 0.2750 -0.8731 +vn 0.3595 0.1300 -0.9240 +vn 0.3758 -0.8080 -0.4538 +vn 0.3743 -0.7997 -0.4695 +vn 0.9910 0.0440 -0.1265 +vn 0.9212 0.1912 -0.3389 +vn 0.9376 0.1183 -0.3271 +vn 0.9999 -0.0132 -0.0001 +vn -0.5587 0.3131 -0.7680 +vn -0.1722 0.3928 -0.9034 +vn -0.9404 0.1281 -0.3149 +vn -0.9295 -0.1383 0.3419 +vn -0.9268 -0.1407 0.3483 +vn -0.3897 -0.3446 0.8541 +vn -0.3829 -0.3454 0.8568 +vn -0.9268 -0.1406 0.3483 +vn 0.2529 -0.3618 0.8973 +vn 0.1722 0.4024 -0.8991 +vn -0.0000 -0.6037 0.7972 +vn -0.4024 0.2750 -0.8731 +vn 0.9995 0.0314 -0.0020 +vn -0.1193 -0.7677 0.6296 +vn -0.0654 0.9680 0.2423 +vn 0.0690 -0.9541 -0.2914 +vn -1.0000 0.0019 0.0034 +vn -0.9363 0.3512 -0.0000 +vn 0.0373 0.8327 0.5525 +vn -0.0000 0.1951 0.9808 +vn -0.0000 -0.9574 0.2887 +vn -0.0000 0.3827 0.9239 +vn 0.4482 -0.5058 0.7370 +vn 0.0004 -0.3409 0.9401 +vn -0.9304 0.1374 -0.3398 vt 0.359688 0.958662 vt 0.362249 0.958669 vt 0.362239 0.962551 @@ -6194,7 +2320,6 @@ vt 0.802908 0.855453 vt 0.510231 0.845136 vt 0.505784 0.850420 vt 0.501968 0.847202 -vt 0.501968 0.847202 vt 0.477758 0.837077 vt 0.479214 0.833341 vt 0.823042 0.855453 @@ -6203,7 +2328,6 @@ vt 0.827595 0.857179 vt 0.802908 0.857179 vt 0.811898 0.857179 vt 0.796689 0.855453 -vt 0.811898 0.857179 vt 0.813272 0.857179 vt 0.813272 0.853744 vt 0.827595 0.853744 @@ -6212,20 +2336,15 @@ vt 0.826014 0.855453 vt 0.520442 0.836072 vt 0.524015 0.833150 vt 0.535257 0.845043 -vt 0.827595 0.853744 -vt 0.827595 0.857179 vt 0.833203 0.857179 vt 0.897698 0.596442 vt 0.896258 0.600185 vt 0.920512 0.610205 vt 0.823042 0.853744 -vt 0.813272 0.853744 -vt 0.813272 0.857179 vt 0.516880 0.839562 vt 0.528775 0.851703 vt 0.521438 0.859613 vt 0.833202 0.853744 -vt 0.833203 0.857179 vt 0.834678 0.855453 vt 0.790690 0.954682 vt 0.780443 0.954656 @@ -6267,24 +2386,18 @@ vt 0.272751 0.953162 vt 0.272713 0.966602 vt 0.331675 0.961203 vt 0.177415 0.958145 -vt 0.359702 0.953407 vt 0.364426 0.953420 vt 0.364412 0.958675 vt 0.968179 0.972572 vt 0.957932 0.972563 vt 0.957935 0.968680 vt 0.794573 0.954693 -vt 0.790690 0.954682 -vt 0.790662 0.965283 vt 0.804820 0.954720 -vt 0.794573 0.954693 vt 0.794545 0.965293 vt 0.516662 0.969893 vt 0.516635 0.965166 vt 0.536604 0.965056 vt 0.536631 0.969780 -vt 0.536604 0.965056 -vt 0.542169 0.965022 vt 0.422489 0.970295 vt 0.185446 0.960788 vt 0.780437 0.957218 @@ -6630,28 +2743,16 @@ vt 0.167364 0.945664 vt 0.166181 0.948525 vt 0.178034 0.954320 vt 0.174785 0.956657 -vt 0.174541 0.955967 vt 0.179705 0.950732 -vt 0.177491 0.953870 vt 0.170851 0.956935 -vt 0.170974 0.956250 vt 0.179415 0.946774 -vt 0.179011 0.950603 vt 0.177257 0.943358 -vt 0.178740 0.946996 vt 0.167318 0.955307 -vt 0.167756 0.954771 vt 0.173333 0.941582 -vt 0.176717 0.943925 vt 0.169069 0.942125 -vt 0.173219 0.942341 vt 0.165031 0.952168 -vt 0.165672 0.951916 vt 0.166033 0.944684 -vt 0.169417 0.942815 vt 0.164562 0.948303 -vt 0.166596 0.945097 -vt 0.165246 0.948395 vt 0.507413 0.952649 vt 0.505313 0.947007 vt 0.509953 0.950848 @@ -6764,7 +2865,6 @@ vt 0.477729 0.848052 vt 0.472954 0.850913 vt 0.479582 0.858578 vt 0.157244 0.800156 -vt 0.467929 0.425487 vt 0.498939 0.421464 vt 0.494112 0.421021 vt 0.147537 0.667691 @@ -6907,69 +3007,25 @@ vt 0.926803 0.522223 vt 0.717079 0.850025 vt 0.697889 0.850599 vt 0.717428 0.855838 -vt 0.613102 0.701990 -vt 0.607249 0.704798 vt 0.604947 0.699432 vt 0.592611 0.724172 vt 0.593958 0.711478 -vt 0.599324 0.712678 vt 0.597415 0.704236 -vt 0.312958 0.141183 -vt 0.288488 0.144289 vt 0.288507 0.148770 -vt 0.317240 0.144505 -vt 0.314711 0.143246 -vt 0.319804 0.145507 -vt 0.325454 0.142462 -vt 0.322554 0.143866 -vt 0.409234 0.135866 -vt 0.327219 0.140192 -vt 0.328247 0.138878 -vt 0.405721 0.101225 -vt 0.404279 0.105677 -vt 0.407977 0.107246 vt 0.413761 0.103579 -vt 0.405876 0.098902 -vt 0.306707 0.110882 -vt 0.309657 0.110962 -vt 0.309891 0.106421 vt 0.304331 0.110232 vt 0.306789 0.105923 -vt 0.297301 0.104416 vt 0.304667 0.104836 -vt 0.295338 0.103287 vt 0.297557 0.100926 -vt 0.293302 0.103617 vt 0.294488 0.100201 -vt 0.286363 0.106300 vt 0.281002 0.141297 -vt 0.285169 0.140549 vt 0.305962 0.103033 vt 0.298304 0.099009 vt 0.294755 0.098165 vt 0.291840 0.098506 -vt 0.292374 0.100537 vt 0.307621 0.103550 -vt 0.309891 0.106421 -vt 0.303415 0.111921 -vt 0.306196 0.112876 -vt 0.407352 0.130669 -vt 0.405962 0.129635 -vt 0.405654 0.131658 vt 0.411997 0.105183 -vt 0.290334 0.107950 vt 0.310018 0.103888 -vt 0.288440 0.150917 -vt 0.410611 0.137862 -vt 0.309823 0.112593 -vt 0.404333 0.130464 -vt 0.403938 0.100755 -vt 0.287801 0.103905 -vt 0.286167 0.102470 -vt 0.291353 0.108873 -vt 0.293525 0.104978 -vt 0.286523 0.140196 -vt 0.295221 0.104723 vt 0.467771 0.862417 vt 0.497984 0.436373 vt 0.497981 0.437334 @@ -6985,14 +3041,11 @@ vt 0.530971 0.430508 vt 0.530207 0.434348 vt 0.534930 0.434344 vt 0.534933 0.435180 -vt 0.534933 0.435180 vt 0.534935 0.435851 vt 0.530211 0.435865 vt 0.741145 0.587771 vt 0.741138 0.579863 vt 0.784380 0.579822 -vt 0.784380 0.579822 -vt 0.741138 0.579863 vt 0.741104 0.572114 vt 0.536277 0.431807 vt 0.536268 0.430545 @@ -7051,66 +3104,11 @@ vt 0.508686 0.443623 vt 0.508723 0.431665 vt 0.504603 0.443610 vt 0.507926 0.431663 -vt 0.410802 0.134669 vt 0.413032 0.107126 vt 0.415337 0.106231 vt 0.412617 0.135954 -vt 0.411997 0.105183 -vt 0.281002 0.141297 -vt 0.284455 0.105100 -vt 0.309891 0.106421 -vt 0.310018 0.103888 -vt 0.288507 0.148770 -vt 0.304331 0.110232 -vt 0.413761 0.103579 -vt 0.306789 0.105923 -vt 0.304667 0.104836 -vt 0.297557 0.100926 -vt 0.294488 0.100201 -vt 0.305962 0.103033 -vt 0.298304 0.099009 -vt 0.294755 0.098165 -vt 0.291840 0.098506 -vt 0.307621 0.103550 -vt 0.328674 0.137629 -vt 0.319775 0.144719 -vt 0.403791 0.098527 -vt 0.407173 0.108601 -vt 0.407718 0.109926 -vt 0.408817 0.109428 -vt 0.328434 0.133594 -vt 0.316677 0.139029 -vt 0.317532 0.135389 -vt 0.314226 0.135381 -vt 0.312794 0.139989 -vt 0.319269 0.131437 -vt 0.319955 0.127728 -vt 0.317360 0.129659 -vt 0.319718 0.142303 -vt 0.322593 0.139719 -vt 0.324800 0.135588 -vt 0.325386 0.131443 -vt 0.327174 0.129527 -vt 0.325027 0.127340 -vt 0.319686 0.138706 -vt 0.322039 0.131554 -vt 0.321220 0.135209 -vt 0.322767 0.126903 -vt 0.288842 0.142654 -vt 0.296744 0.105669 -vt 0.404441 0.107178 -vt 0.281673 0.142822 -vt 0.286951 0.148225 -vt 0.279556 0.143871 -vt 0.286064 0.150224 -vt 0.410802 0.134669 -vt 0.412617 0.135954 -vt 0.410802 0.134669 -vt 0.413032 0.107126 -vt 0.415337 0.106231 vt 0.284455 0.105100 vt 0.278808 0.141349 -vt 0.601402 0.707792 vt 0.464288 0.857946 vt 0.430491 0.785523 vt 0.430922 0.789755 @@ -7143,20 +3141,15 @@ vt 0.507074 0.443643 vt 0.507113 0.431685 vt 0.503826 0.431675 vt 0.510646 0.441203 -vt 0.506151 0.441448 vt 0.507810 0.441837 -vt 0.507140 0.440872 vt 0.528708 0.431775 vt 0.528715 0.434644 vt 0.528717 0.435489 vt 0.533441 0.435479 -vt 0.533441 0.435479 -vt 0.528717 0.435489 vt 0.528719 0.436161 vt 0.067244 0.893667 vt 0.062278 0.889043 vt 0.041841 0.899568 -vt 0.528715 0.434644 vt 0.533439 0.434643 vt 0.533438 0.433779 vt 0.420110 0.482081 @@ -7171,7 +3164,6 @@ vt 0.783848 0.868579 vt 0.426594 0.489238 vt 0.479489 0.785493 vt 0.432181 0.790646 -vt 0.479552 0.788234 vt 0.138986 0.619442 vt 0.527793 0.430554 vt 0.523847 0.430532 @@ -7214,7 +3206,6 @@ vt 0.467778 0.429604 vt 0.494848 0.426750 vt 0.499402 0.425107 vt 0.489382 0.771430 -vt 0.488196 0.788828 vt 0.510766 0.435967 vt 0.510768 0.435484 vt 0.512152 0.435975 @@ -7248,8 +3239,6 @@ vt 0.513321 0.441323 vt 0.513348 0.437216 vt 0.513611 0.437033 vt 0.513479 0.428610 -vt 0.513960 0.428667 -vt 0.513966 0.424552 vt 0.503406 0.437409 vt 0.507493 0.437415 vt 0.514611 0.436879 @@ -7268,25 +3257,17 @@ vt 0.517467 0.430640 vt 0.507491 0.438802 vt 0.515346 0.428669 vt 0.515827 0.428613 -vt 0.515352 0.424554 vt 0.512081 0.419451 vt 0.512113 0.430656 vt 0.509957 0.419458 vt 0.512155 0.435491 vt 0.924937 0.604905 -vt 0.823042 0.855453 -vt 0.510231 0.845136 vt 0.834678 0.853744 vt 0.936206 0.619330 vt 0.946414 0.608213 vt 0.838373 0.855453 vt 0.838373 0.857178 vt 0.935119 0.596362 -vt 0.823042 0.857179 -vt 0.505784 0.850420 -vt 0.528775 0.851703 -vt 0.516880 0.839562 -vt 0.520442 0.836072 vt 0.252649 0.671850 vt 0.216060 0.837967 vt 0.688976 0.721051 @@ -7366,16 +3347,13 @@ vt 0.397927 0.464479 vt 0.397927 0.457342 vt 0.347741 0.457341 vt 0.842467 0.852745 -vt 0.834622 0.844873 vt 0.822154 0.857297 vt 0.787926 0.822949 vt 0.775618 0.839118 vt 0.784584 0.838795 -vt 0.119684 0.819896 vt 0.126237 0.820376 vt 0.126494 0.822480 vt 0.043968 0.831329 -vt 0.037050 0.828634 vt 0.121011 0.813305 vt 0.377326 0.801464 vt 0.377276 0.833340 @@ -7389,7 +3367,6 @@ vt 0.264488 0.663647 vt 0.268153 0.665649 vt 0.688940 0.756131 vt 0.689025 0.756305 -vt 0.693601 0.747407 vt 0.987901 0.699231 vt 0.995953 0.699177 vt 0.220114 0.689486 @@ -7400,7 +3377,6 @@ vt 0.467704 0.425373 vt 0.494826 0.421949 vt 0.467887 0.426702 vt 0.467013 0.426422 -vt 0.467704 0.425373 vt 0.468799 0.429341 vt 0.468185 0.429873 vt 0.467346 0.429192 @@ -7416,7 +3392,6 @@ vt 0.837620 0.485005 vt 0.825367 0.485004 vt 0.812070 0.485004 vt 0.812071 0.477177 -vt 0.987930 0.703465 vt 0.995981 0.703411 vt 0.236699 0.817843 vt 0.233036 0.819558 @@ -7429,7 +3404,6 @@ vt 0.167737 0.702484 vt 0.229706 0.822739 vt 0.119645 0.817818 vt 0.126369 0.818161 -vt 0.126237 0.820376 vt 0.127194 0.807182 vt 0.127669 0.812736 vt 0.500038 0.426193 @@ -7441,26 +3415,18 @@ vt 0.460186 0.833470 vt 0.465924 0.833478 vt 0.465974 0.801603 vt 0.695669 0.735883 -vt 0.465974 0.801603 -vt 0.465924 0.833478 vt 0.589758 0.833672 vt 0.452231 0.833457 -vt 0.460186 0.833470 vt 0.460236 0.801593 vt 0.452281 0.801581 vt 0.270941 0.833175 -vt 0.706497 0.462469 vt 0.731733 0.462463 vt 0.731730 0.448114 -vt 0.706500 0.473447 vt 0.731735 0.473442 -vt 0.731733 0.462463 vt 0.744502 0.480559 vt 0.744475 0.455864 -vt 0.731733 0.462463 vt 0.706503 0.488064 vt 0.731738 0.488059 -vt 0.731735 0.473442 vt 0.151521 0.818331 vt 0.187828 0.891142 vt 0.181881 0.889467 @@ -7527,16 +3493,10 @@ vt 0.186143 0.489237 vt 0.197411 0.457342 vt 0.338586 0.457341 vt 0.186142 0.457322 -vt 0.787926 0.822949 -vt 0.800394 0.810525 vt 0.781838 0.791904 vt 0.769305 0.841505 vt 0.790535 0.841313 -vt 0.822154 0.857297 -vt 0.834622 0.844873 -vt 0.800394 0.810525 vt 0.814282 0.865143 -vt 0.822154 0.857297 vt 0.364285 0.464478 vt 0.665099 0.895783 vt 0.696240 0.896784 @@ -7555,14 +3515,9 @@ vt 0.517264 0.902279 vt 0.465653 0.886011 vt 0.473472 0.893576 vt 0.461836 0.878509 -vt 0.531071 0.731273 vt 0.527098 0.727704 vt 0.523628 0.734935 -vt 0.536918 0.728310 vt 0.522247 0.747613 -vt 0.528420 0.748113 -vt 0.528989 0.736149 -vt 0.542761 0.725538 vt 0.534645 0.722946 vt 0.717036 0.890009 vt 0.534917 0.430491 @@ -7597,28 +3552,15 @@ vt 0.519860 0.437209 vt 0.519310 0.440420 vt 0.529931 0.440635 vt 0.530292 0.436681 -vt 0.506125 0.436830 -vt 0.507183 0.437514 vt 0.510722 0.437437 -vt 0.510646 0.441203 -vt 0.510722 0.437437 -vt 0.507183 0.437514 vt 0.930383 0.894023 vt 0.928759 0.883534 vt 0.907068 0.886893 vt 0.506415 0.841924 -vt 0.506415 0.841924 vt 0.796689 0.857179 -vt 0.811898 0.853744 vt 0.532339 0.848213 -vt 0.833202 0.853744 -vt 0.359688 0.958662 vt 0.968182 0.968689 -vt 0.794545 0.965293 vt 0.804792 0.965320 -vt 0.536631 0.969780 -vt 0.542195 0.969746 -vt 0.379766 0.803761 vt 0.842763 0.443343 vt 0.050841 0.952323 vt 0.054072 0.949210 @@ -7647,27 +3589,19 @@ vt 0.177713 0.925811 vt 0.169469 0.975019 vt 0.277487 0.834962 vt 0.368558 0.820578 -vt 0.467205 0.425127 -vt 0.370634 0.800249 vt 0.650931 0.968701 vt 0.351976 0.840046 vt 0.533435 0.432916 -vt 0.598796 0.724641 -vt 0.530209 0.435193 vt 0.530209 0.435193 vt 0.784387 0.587733 vt 0.784346 0.571925 vt 0.532332 0.431836 vt 0.504640 0.431653 -vt 0.412617 0.135954 -vt 0.278808 0.141349 -vt 0.412617 0.135954 vt 0.842494 0.837028 vt 0.514929 0.443643 vt 0.927409 0.934733 vt 0.929762 0.924701 vt 0.906663 0.929866 -vt 0.533439 0.434643 vt 0.533442 0.436150 vt 0.528715 0.433781 vt 0.786503 0.868569 @@ -7680,13 +3614,10 @@ vt 0.488357 0.785906 vt 0.503401 0.440738 vt 0.458378 0.058547 vt 0.509556 0.437196 -vt 0.515346 0.428669 vt 0.513582 0.441326 vt 0.514620 0.431192 vt 0.414941 0.030725 vt 0.517435 0.419436 -vt 0.532339 0.848213 -vt 0.995981 0.703411 vt 0.688948 0.747403 vt 0.995924 0.695002 vt 0.594498 0.858432 @@ -7700,2181 +3631,5779 @@ vt 0.695084 0.980879 vt 0.829999 0.865170 vt 0.398608 0.801497 vt 0.268144 0.669886 -vt 0.688940 0.756131 vt 0.499658 0.422525 -vt 0.468430 0.425751 vt 0.232286 0.840869 vt 0.495422 0.427721 -vt 0.460236 0.801593 vt 0.589808 0.801796 vt 0.270991 0.801299 vt 0.706494 0.448119 -vt 0.706497 0.462469 -vt 0.731735 0.473442 -vt 0.706500 0.473447 vt 0.161689 0.457323 vt 0.769370 0.804329 -vt 0.787926 0.822949 vt 0.489394 0.507784 vt 0.537143 0.425757 vt 0.519297 0.436720 -vt 0.507140 0.440872 vt 0.507859 0.436561 vt 0.351639 0.962522 +s 1 +f 61/3/18 62/4/18 63/5/18 +f 64/6/19 65/7/18 66/8/18 +f 67/9/20 68/10/20 69/11/21 +f 70/12/22 71/13/22 72/14/22 +f 73/14/23 74/15/23 75/16/23 +f 76/17/24 77/18/25 78/19/26 +f 79/20/27 80/21/20 67/9/20 +f 79/20/27 69/11/21 81/22/28 +f 82/21/29 83/23/29 84/24/29 +f 85/25/30 86/26/30 87/27/31 +f 88/28/23 89/29/23 90/30/23 +f 91/25/32 92/19/32 93/31/32 +f 79/20/27 67/9/20 69/11/21 +f 94/32/33 95/33/33 96/34/33 +f 97/35/34 98/24/34 99/23/34 +f 100/36/23 101/37/23 102/38/23 +f 103/39/35 104/31/36 105/40/37 +f 106/41/33 107/42/33 108/43/33 +f 109/44/33 110/45/33 111/46/33 +f 111/46/33 112/47/33 113/48/33 +f 114/49/38 115/50/39 116/51/39 +f 117/52/40 118/53/39 114/49/38 +f 106/41/33 108/43/33 119/54/33 +f 120/55/41 121/56/41 122/57/41 +f 123/58/23 124/59/23 125/60/23 +f 123/58/23 125/60/23 126/61/23 +f 127/62/33 111/46/33 113/48/33 +f 110/45/33 112/47/33 111/46/33 +f 112/47/33 128/63/33 113/48/33 +f 115/50/39 129/64/39 116/51/39 +f 118/53/39 115/50/39 114/49/38 +f 108/43/33 130/65/33 119/54/33 +f 131/66/41 132/67/41 121/56/41 +f 121/56/41 132/67/41 122/57/41 +f 124/59/23 133/68/23 125/60/23 +f 125/60/23 134/69/23 126/61/23 +f 135/70/42 136/71/43 137/72/44 +f 138/73/45 139/74/45 117/52/40 +f 138/73/45 140/75/46 141/76/47 +f 140/75/46 142/77/48 143/78/49 +f 142/77/48 137/72/44 136/71/43 +f 144/79/50 137/72/44 64/6/19 +f 145/80/39 116/51/39 129/64/39 +f 146/7/51 147/81/51 148/82/51 +f 149/83/51 150/84/51 151/85/51 +f 152/86/39 153/41/39 154/54/39 +f 155/87/23 156/86/23 157/88/23 +f 158/89/23 159/90/23 160/91/23 +f 161/92/51 162/91/51 163/61/51 +f 109/44/33 164/93/33 110/45/33 +f 129/64/39 115/50/39 165/94/39 +f 107/42/33 166/95/33 108/43/33 +f 120/55/41 167/96/41 121/56/41 +f 123/58/23 168/97/23 124/59/23 +f 169/98/52 170/99/53 171/100/54 +f 172/101/55 173/102/56 174/103/57 +f 175/104/33 176/105/33 177/106/58 +f 178/107/33 179/108/33 180/109/33 +f 181/110/59 174/103/57 173/102/56 +f 182/111/41 183/112/41 184/113/41 +f 185/114/41 186/115/41 187/116/41 +f 188/117/41 189/118/41 190/119/41 +f 191/120/60 192/121/61 193/122/62 +f 194/123/51 195/124/51 196/125/51 +f 170/99/53 197/126/63 198/127/64 +f 189/128/41 199/129/41 200/130/41 +f 192/121/61 201/131/65 202/132/66 +f 195/124/51 203/133/51 204/134/51 +f 197/126/63 205/135/67 206/136/68 +f 199/137/41 207/138/41 208/139/41 +f 201/131/65 209/140/69 210/141/70 +f 203/133/51 211/142/51 212/143/51 +f 205/135/67 213/144/71 214/145/72 +f 207/138/41 215/146/41 216/147/41 +f 209/148/69 217/149/73 218/150/74 +f 211/142/51 219/151/51 220/152/51 +f 221/153/75 222/154/76 223/155/77 +f 215/146/41 224/156/41 225/157/41 +f 226/158/78 227/159/79 228/160/80 +f 219/151/51 229/161/51 230/162/51 +f 222/163/76 231/164/81 232/165/82 +f 224/156/41 233/166/41 234/167/41 +f 227/159/79 235/168/83 236/169/84 +f 229/161/51 237/170/51 238/171/51 +f 231/164/81 239/172/85 240/173/86 +f 233/166/41 241/174/41 242/175/41 +f 235/168/83 243/176/87 244/177/88 +f 237/170/51 245/178/51 246/179/51 +f 239/180/85 247/181/60 248/182/89 +f 241/174/41 249/183/41 250/184/41 +f 243/176/87 251/185/52 252/186/90 +f 245/178/51 253/187/51 254/188/51 +f 247/181/60 255/189/91 256/190/62 +f 249/183/41 257/191/41 258/192/41 +f 251/185/52 259/193/53 260/194/54 +f 253/187/51 261/195/51 262/196/51 +f 255/189/91 263/197/65 264/198/66 +f 257/191/41 265/199/41 266/200/41 +f 259/193/53 267/201/63 268/202/64 +f 261/195/51 269/203/51 270/204/51 +f 263/197/65 271/205/69 272/206/70 +f 265/199/41 273/207/41 274/208/41 +f 267/201/63 275/209/92 276/210/93 +f 269/203/51 277/211/51 278/212/51 +f 271/205/69 279/213/73 280/214/94 +f 273/207/41 281/215/41 282/216/41 +f 275/209/92 283/217/71 284/218/95 +f 277/211/51 285/219/51 286/220/51 +f 279/213/73 287/221/96 288/222/97 +f 281/215/41 289/223/41 290/224/41 +f 283/225/71 291/226/76 292/227/77 +f 285/219/51 293/228/51 294/229/51 +f 287/221/96 295/230/83 296/231/84 +f 289/223/41 297/232/41 298/233/41 +f 291/226/76 299/234/81 300/235/82 +f 293/228/51 301/236/51 302/237/51 +f 295/230/83 303/238/87 304/239/88 +f 297/232/41 305/240/41 306/241/41 +f 299/234/81 307/242/85 308/243/98 +f 301/236/51 309/244/51 310/245/51 +f 303/238/87 169/98/52 311/246/90 +f 305/240/41 188/117/41 312/247/41 +f 307/242/85 191/120/60 313/248/89 +f 309/244/51 194/123/51 314/249/51 +f 315/250/23 316/251/23 317/252/23 +f 316/251/23 318/253/23 319/254/23 +f 318/253/23 320/255/23 321/256/23 +f 320/255/23 322/257/23 323/258/23 +f 322/257/23 324/259/23 325/260/23 +f 324/259/23 326/261/23 327/262/23 +f 326/261/23 328/263/23 329/264/23 +f 328/263/23 330/265/23 331/266/23 +f 330/265/23 332/267/23 333/268/23 +f 332/267/23 334/269/23 335/270/23 +f 334/269/23 336/271/23 337/272/23 +f 336/271/23 315/250/23 338/273/23 +f 339/274/99 340/275/100 341/276/101 +f 342/277/102 343/278/103 344/279/104 +f 345/280/23 346/281/23 347/282/23 +f 348/283/105 339/274/99 349/284/106 +f 343/278/103 350/285/107 351/286/108 +f 346/281/23 352/287/23 347/282/23 +f 353/288/109 348/283/105 354/289/110 +f 350/285/107 355/290/111 356/291/112 +f 352/287/23 357/292/23 347/282/23 +f 358/293/113 359/294/114 360/295/115 +f 355/290/111 361/296/116 362/297/117 +f 357/292/23 363/298/23 347/282/23 +f 364/299/118 358/293/113 365/300/119 +f 361/296/116 366/301/120 367/302/121 +f 363/298/23 368/303/23 347/282/23 +f 369/304/122 364/299/118 370/305/123 +f 366/301/120 371/306/124 372/307/125 +f 368/303/23 373/308/23 347/282/23 +f 374/309/120 369/304/122 375/310/126 +f 371/306/124 376/311/127 377/312/123 +f 373/308/23 378/313/23 347/282/23 +f 379/314/128 374/309/120 380/315/129 +f 376/311/127 381/316/113 382/317/130 +f 378/313/23 383/318/23 347/282/23 +f 384/319/131 379/314/128 385/320/117 +f 381/316/113 386/321/114 387/322/115 +f 383/318/23 388/323/23 347/282/23 +f 389/324/107 384/319/131 390/325/132 +f 391/326/109 392/327/133 393/328/110 +f 388/323/23 394/329/23 347/282/23 +f 395/330/134 389/324/107 396/331/135 +f 392/327/133 397/332/99 398/333/136 +f 394/329/23 399/334/23 347/282/23 +f 340/275/100 395/330/134 400/335/104 +f 397/332/99 342/277/102 401/336/137 +f 399/334/23 345/280/23 347/282/23 +f 402/337/138 403/338/139 404/339/140 +f 405/340/141 406/341/142 407/342/143 +f 408/343/144 409/344/145 410/345/146 +f 411/346/147 412/347/148 413/348/149 +f 414/349/150 407/342/143 415/350/151 +f 416/351/152 407/342/143 414/349/150 +f 417/352/153 418/353/154 419/354/155 +f 420/355/156 421/356/157 417/352/153 +f 408/343/144 422/357/158 417/352/153 +f 423/358/159 424/359/160 404/339/140 +f 424/359/160 423/358/159 425/360/161 +f 424/359/160 426/361/162 427/362/163 +f 428/363/164 429/364/165 419/354/155 +f 430/365/166 428/363/164 431/366/167 +f 411/346/147 432/367/168 412/347/148 +f 433/368/169 434/369/170 415/350/151 +f 435/370/171 434/369/170 433/368/169 +f 436/371/172 434/369/170 437/372/173 +f 438/373/174 439/374/175 440/375/176 +f 441/376/177 440/375/176 439/374/175 +f 414/349/150 415/350/151 442/377/178 +f 443/378/179 413/348/149 444/379/180 +f 445/380/181 416/351/152 443/378/179 +f 411/346/147 413/348/149 446/381/182 +f 432/367/168 411/346/147 446/381/182 +f 446/381/182 413/348/149 443/378/179 +f 447/382/183 448/383/184 449/384/185 +f 434/369/170 442/377/178 415/350/151 +f 443/378/179 442/377/178 450/385/186 +f 451/386/187 452/387/188 436/371/172 +f 452/387/188 450/385/186 434/369/170 +f 446/381/182 452/387/188 451/386/187 +f 450/385/186 452/387/188 446/381/182 +f 449/384/185 451/386/187 447/382/183 +f 438/373/174 453/388/189 451/386/187 +f 454/389/190 437/372/173 435/370/171 +f 455/390/191 454/389/190 456/391/192 +f 457/392/193 403/338/139 402/337/138 +f 458/393/194 457/392/193 459/394/195 +f 429/364/165 409/344/145 408/343/144 +f 460/395/196 461/396/197 462/397/198 +f 437/372/173 434/369/170 435/370/171 +f 450/385/186 442/377/178 434/369/170 +f 416/351/152 414/349/150 442/377/178 +f 442/377/178 443/378/179 416/351/152 +f 445/380/181 443/378/179 444/379/180 +f 432/367/168 449/384/185 448/383/184 +f 453/388/189 447/382/183 451/386/187 +f 439/374/175 438/373/174 451/386/187 +f 462/397/198 412/347/148 430/365/166 +f 432/367/168 448/383/184 412/347/148 +f 412/347/148 448/383/184 429/364/165 +f 453/388/189 409/344/145 447/382/183 +f 438/373/174 409/344/145 453/388/189 +f 438/373/174 440/375/176 409/344/145 +f 440/375/176 441/376/177 463/398/199 +f 437/372/173 454/389/190 441/376/177 +f 441/376/177 455/390/191 458/393/194 +f 464/399/200 457/392/193 465/400/201 +f 403/338/139 457/392/193 464/399/200 +f 429/364/165 428/363/164 430/365/166 +f 412/347/148 429/364/165 430/365/166 +f 448/383/184 447/382/183 429/364/165 +f 409/344/145 429/364/165 447/382/183 +f 440/375/176 463/398/199 409/344/145 +f 441/376/177 458/393/194 463/398/199 +f 454/389/190 455/390/191 441/376/177 +f 455/390/191 465/400/201 458/393/194 +f 457/392/193 458/393/194 465/400/201 +f 466/401/202 467/402/203 456/391/192 +f 468/403/204 466/401/202 469/404/205 +f 470/405/206 471/406/207 469/404/205 +f 472/407/208 405/340/141 473/408/209 +f 474/409/33 475/410/33 476/411/33 +f 477/412/121 478/413/117 479/414/210 +f 480/415/125 477/412/121 481/416/120 +f 478/413/117 482/417/112 483/418/111 +f 484/419/123 480/415/125 485/420/124 +f 486/421/211 484/419/123 487/422/212 +f 482/417/112 488/423/213 489/424/107 +f 490/425/214 486/421/211 491/426/113 +f 492/427/110 490/425/214 493/428/114 +f 488/423/213 494/429/104 495/430/103 +f 496/431/136 492/427/110 497/432/133 +f 498/433/137 496/431/136 499/434/99 +f 494/429/104 498/433/137 500/435/102 +f 501/436/33 502/437/33 503/413/33 +f 504/438/33 501/436/33 505/412/33 +f 502/437/33 506/439/33 507/417/33 +f 508/440/33 504/438/33 509/415/33 +f 510/441/33 508/440/33 511/419/33 +f 506/439/33 512/442/33 513/423/33 +f 474/443/33 510/441/33 514/421/33 +f 515/444/33 474/443/33 516/425/33 +f 512/442/33 517/445/33 518/429/33 +f 519/446/33 515/444/33 520/427/33 +f 521/447/33 519/446/33 522/431/33 +f 517/445/33 521/447/33 523/433/33 +f 524/448/33 525/449/33 526/450/33 +f 527/451/116 528/452/120 529/453/121 +f 530/454/111 527/451/116 531/455/117 +f 526/450/33 525/449/33 532/456/33 +f 528/452/120 533/457/124 534/458/125 +f 535/459/33 525/449/33 524/448/33 +f 532/456/33 525/449/33 536/460/33 +f 533/457/124 537/461/127 538/462/123 +f 539/463/107 530/454/111 540/464/112 +f 536/460/33 525/449/33 541/465/33 +f 537/461/127 542/466/215 543/467/215 +f 544/468/33 525/449/33 535/459/33 +f 541/465/33 525/449/33 545/469/33 +f 546/470/216 547/471/216 548/472/217 +f 549/473/103 539/463/107 550/474/108 +f 545/469/33 525/449/33 551/475/33 +f 552/476/218 553/477/219 554/478/219 +f 555/479/33 525/449/33 544/468/33 +f 551/475/33 525/449/33 556/480/33 +f 546/470/216 557/481/99 558/482/136 +f 559/483/102 549/473/103 560/484/104 +f 556/480/33 525/449/33 561/485/33 +f 557/481/99 559/483/102 562/486/137 +f 561/485/33 525/449/33 555/479/33 +f 563/487/220 548/472/217 554/478/219 +f 474/409/33 515/488/33 475/410/33 +f 543/467/215 542/466/215 564/489/221 +f 565/490/222 566/491/223 552/476/218 +f 476/492/33 475/493/33 567/494/33 +f 476/411/33 510/495/33 474/409/33 +f 568/496/33 569/497/33 570/498/33 +f 571/499/224 572/500/225 573/501/226 +f 574/502/23 575/503/23 576/504/23 +f 570/498/33 569/497/33 577/505/33 +f 572/500/225 578/506/227 579/507/228 +f 575/503/23 580/508/23 576/504/23 +f 577/505/33 569/497/33 581/509/33 +f 578/506/227 582/510/229 583/511/230 +f 580/508/23 584/512/23 576/504/23 +f 581/509/33 569/497/33 585/513/33 +f 586/514/231 587/515/232 588/516/233 +f 584/512/23 589/517/23 576/504/23 +f 585/513/33 569/497/33 590/518/33 +f 587/515/232 591/519/234 592/520/235 +f 589/517/23 593/521/23 576/504/23 +f 590/518/33 569/497/33 594/522/33 +f 591/519/234 595/523/236 596/524/237 +f 597/525/33 598/526/238 599/527/238 +f 593/521/23 600/528/23 576/504/23 +f 594/522/33 569/497/33 601/529/33 +f 599/527/238 598/526/238 602/530/239 +f 595/523/236 603/531/240 604/532/241 +f 600/528/23 605/533/23 576/504/23 +f 606/534/242 607/535/243 608/536/244 +f 609/537/245 606/534/242 610/538/246 +f 601/529/33 569/497/33 568/496/33 +f 603/531/240 571/499/224 611/539/247 +f 605/533/23 574/502/23 576/504/23 +f 612/540/248 613/541/249 614/542/250 +f 615/543/251 616/544/252 612/540/248 +f 617/545/253 618/546/254 619/547/33 +f 620/548/255 621/549/256 622/550/23 +f 623/551/257 624/552/258 625/553/259 +f 607/535/243 626/554/260 627/555/261 +f 628/556/262 629/557/263 630/558/264 +f 620/548/255 631/559/265 621/549/256 +f 632/554/18 633/560/18 634/561/18 +f 635/562/33 636/563/33 637/564/33 +f 175/104/33 638/565/33 639/566/33 +f 640/567/266 641/568/267 642/569/268 +f 630/558/264 629/557/263 643/570/269 +f 644/571/270 645/572/271 646/573/33 +f 647/574/18 648/575/18 649/576/18 +f 650/577/18 649/576/18 648/575/18 +f 651/578/23 652/579/23 653/580/23 +f 654/581/272 655/582/273 642/569/268 +f 656/583/274 657/584/18 658/585/275 +f 619/547/33 618/546/254 659/586/33 +f 660/587/39 661/588/39 662/589/39 +f 645/572/271 663/590/33 646/573/33 +f 664/591/39 665/592/39 666/593/39 +f 662/589/39 661/588/39 664/594/39 +f 667/595/41 668/596/41 669/597/41 +f 668/596/41 670/598/41 671/599/41 +f 672/600/41 673/601/41 671/599/41 +f 674/602/39 675/603/39 676/604/39 +f 677/605/276 678/606/277 679/607/277 +f 680/608/278 617/545/253 681/609/279 +f 628/556/262 682/610/253 683/611/280 +f 684/612/255 623/551/257 685/613/281 +f 686/614/282 687/615/283 688/616/284 +f 688/616/284 687/615/283 689/617/285 +f 688/616/284 689/617/285 690/618/286 +f 688/616/284 690/618/286 691/619/55 +f 692/620/287 693/621/288 694/622/58 +f 695/623/289 696/624/290 697/625/284 +f 698/626/291 699/627/292 700/628/293 +f 701/629/294 693/621/288 702/630/295 +f 703/631/33 704/632/33 702/630/295 +f 704/632/33 705/633/33 702/630/295 +f 706/634/33 702/630/295 705/633/33 +f 693/621/288 703/631/33 702/630/295 +f 703/631/33 693/621/288 692/620/287 +f 707/635/296 708/636/297 709/637/298 +f 710/638/23 711/639/23 712/640/299 +f 713/641/33 714/642/33 715/643/300 +f 716/644/23 717/645/23 718/646/23 +f 716/644/23 719/647/301 720/648/23 +f 710/638/23 712/640/299 721/649/23 +f 721/649/23 722/650/23 723/651/23 +f 723/651/23 724/652/23 725/653/23 +f 726/654/33 727/655/33 728/656/302 +f 729/657/33 730/658/33 731/659/33 +f 732/660/33 729/657/33 733/661/33 +f 714/642/33 732/660/33 734/662/33 +f 713/641/33 715/643/300 735/663/33 +f 711/639/23 736/664/23 719/647/301 +f 720/648/23 717/645/23 716/644/23 +f 717/645/23 725/653/23 718/646/23 +f 719/647/301 736/664/23 720/648/23 +f 712/640/299 722/650/23 721/649/23 +f 722/650/23 724/652/23 723/651/23 +f 724/652/23 718/646/23 725/653/23 +f 737/665/33 735/663/33 728/656/302 +f 730/658/33 727/655/33 726/654/33 +f 727/655/33 737/665/33 728/656/302 +f 730/658/33 726/654/33 731/659/33 +f 729/657/33 731/659/33 733/661/33 +f 732/660/33 733/661/33 734/662/33 +f 715/643/300 728/656/302 735/663/33 +f 738/666/39 675/603/39 674/602/39 +f 739/667/303 740/668/304 741/669/305 +f 742/670/33 743/671/306 740/668/304 +f 744/672/33 742/670/33 745/673/307 +f 746/674/308 744/672/33 747/675/309 +f 701/629/294 747/675/309 745/673/307 +f 748/676/310 707/635/296 749/677/311 +f 750/678/39 664/594/39 666/679/39 +f 751/680/312 752/681/313 613/541/249 +f 753/682/314 702/630/295 706/634/33 +f 754/683/315 753/682/314 706/634/33 +f 619/547/33 681/609/279 617/545/253 +f 755/684/33 756/685/33 757/686/33 +f 758/687/315 759/688/316 760/689/317 +f 616/544/252 761/690/318 762/691/319 +f 659/586/33 763/692/316 706/634/33 +f 663/590/33 706/634/33 174/103/57 +f 764/693/39 674/694/39 765/695/39 +f 766/696/51 767/697/51 768/698/320 +f 769/699/321 770/700/322 771/701/323 +f 772/643/324 773/662/325 774/702/326 +f 775/703/327 776/704/328 777/659/329 +f 778/705/330 774/702/326 773/662/325 +f 779/370/331 780/391/332 781/706/333 +f 781/706/333 782/350/334 783/368/335 +f 784/342/336 785/380/337 786/351/338 +f 787/340/339 788/379/340 785/380/337 +f 789/348/341 788/379/340 787/340/339 +f 784/342/336 787/340/339 785/380/337 +f 790/353/342 791/354/343 792/366/344 +f 793/707/345 794/356/346 790/353/342 +f 795/345/347 796/343/348 797/357/349 +f 798/708/350 795/345/347 799/709/351 +f 800/394/352 798/708/350 801/710/353 +f 802/337/354 800/394/352 803/711/355 +f 804/339/356 802/337/354 805/712/357 +f 806/360/358 807/713/359 808/402/360 +f 809/714/361 801/710/353 799/709/351 +f 810/715/362 803/711/355 801/710/353 +f 811/716/363 805/712/357 803/711/355 +f 812/717/364 813/362/365 805/712/357 +f 814/718/366 799/709/351 815/357/367 +f 816/393/368 817/398/369 798/708/350 +f 818/396/370 819/397/371 820/408/372 +f 783/368/335 779/370/331 781/706/333 +f 820/408/372 789/348/341 787/340/339 +f 821/719/373 790/353/342 792/366/344 +f 821/719/373 793/707/345 790/353/342 +f 801/710/353 798/708/350 799/709/351 +f 803/711/355 800/394/352 801/710/353 +f 805/712/357 802/337/354 803/711/355 +f 813/362/365 804/339/356 805/712/357 +f 822/358/374 806/360/358 808/402/360 +f 814/718/366 809/714/361 799/709/351 +f 809/714/361 810/715/362 801/710/353 +f 810/715/362 811/716/363 803/711/355 +f 811/716/363 812/717/364 805/712/357 +f 823/720/375 814/718/366 815/357/367 +f 824/405/376 825/341/377 784/342/336 +f 817/398/369 826/344/378 795/345/347 +f 820/408/372 827/347/379 789/348/341 +f 781/706/333 784/342/336 782/350/334 +f 790/353/342 794/356/346 828/352/380 +f 813/362/365 829/359/381 804/339/356 +f 812/717/364 830/361/382 813/362/365 +f 831/400/383 822/358/374 808/402/360 +f 832/399/384 804/339/356 822/358/374 +f 833/390/385 831/400/383 808/402/360 +f 831/400/383 832/399/384 822/358/374 +f 832/399/384 834/338/386 804/339/356 +f 643/570/269 707/635/296 835/721/387 +f 836/722/39 837/723/39 665/592/39 +f 625/553/259 838/724/388 685/613/281 +f 839/725/389 838/724/388 840/726/390 +f 841/727/391 842/728/313 614/542/250 +f 843/729/392 625/553/259 624/552/258 +f 844/730/23 845/731/23 846/732/23 +f 847/733/39 848/734/39 849/735/39 +f 850/735/23 851/736/23 852/737/23 +f 853/738/393 854/739/394 855/740/393 +f 856/740/18 857/739/18 858/741/18 +f 859/742/395 860/743/395 861/744/39 +f 738/666/39 664/594/39 661/588/39 +f 842/728/313 862/745/312 614/542/250 +f 863/746/396 864/747/397 616/544/252 +f 616/544/252 615/543/251 865/748/398 +f 612/540/248 614/542/250 866/749/399 +f 614/542/250 613/541/249 867/750/400 +f 868/751/39 869/752/39 870/753/39 +f 871/754/51 841/727/391 872/755/401 +f 873/756/51 842/728/313 841/727/391 +f 874/757/402 875/758/51 876/759/51 +f 872/755/401 877/760/403 878/761/403 +f 865/748/398 863/746/396 616/544/252 +f 879/762/39 868/751/39 880/763/39 +f 616/544/252 762/691/319 881/764/404 +f 700/628/293 882/765/405 883/766/406 +f 884/767/407 885/768/408 886/769/23 +f 883/766/406 886/769/23 887/770/409 +f 888/771/23 889/772/23 890/773/410 +f 891/774/411 890/773/410 892/775/23 +f 890/776/410 887/770/409 888/777/23 +f 882/765/405 886/769/23 883/766/406 +f 882/765/405 893/778/412 886/769/23 +f 893/778/412 884/767/407 886/769/23 +f 885/768/408 894/779/23 886/769/23 +f 886/769/23 888/777/23 887/770/409 +f 888/771/23 895/780/23 889/772/23 +f 889/772/23 896/781/23 890/773/410 +f 890/773/410 896/781/23 892/775/23 +f 897/782/39 898/783/39 899/784/39 +f 900/785/39 901/786/39 898/787/39 +f 902/788/39 903/789/39 897/782/39 +f 898/783/39 904/790/39 899/784/39 +f 898/787/39 905/791/39 900/785/39 +f 906/792/39 904/793/39 898/787/39 +f 905/791/39 898/787/39 869/752/39 +f 907/794/413 908/795/414 909/796/415 +f 910/797/33 907/794/413 911/798/416 +f 406/341/142 405/340/141 912/407/417 +f 913/799/418 472/407/208 461/396/197 +f 914/800/419 915/801/420 472/407/208 +f 914/800/419 913/799/418 916/719/421 +f 431/366/167 916/719/421 913/799/418 +f 917/713/422 467/402/203 466/401/202 +f 918/802/423 426/361/162 424/359/160 +f 918/802/423 425/360/161 917/713/422 +f 917/713/422 466/401/202 468/403/204 +f 417/352/153 919/357/424 920/720/425 +f 407/342/143 470/405/206 921/706/426 +f 410/345/146 463/398/199 922/708/427 +f 412/347/148 462/397/198 473/408/209 +f 456/391/192 921/706/426 469/404/205 +f 456/391/192 435/370/171 921/706/426 +f 415/350/151 921/706/426 433/368/169 +f 445/380/181 407/342/143 416/351/152 +f 444/379/180 405/340/141 445/380/181 +f 444/379/180 413/348/149 405/340/141 +f 405/340/141 407/342/143 445/380/181 +f 419/354/155 418/353/154 431/366/167 +f 421/356/157 923/707/428 418/353/154 +f 410/345/146 924/709/429 422/357/158 +f 410/345/146 922/708/427 924/709/429 +f 922/708/427 459/394/195 925/710/430 +f 459/394/195 402/337/138 926/711/431 +f 402/337/138 404/339/140 927/712/432 +f 917/713/422 425/360/161 467/402/203 +f 925/710/430 928/714/433 924/709/429 +f 926/711/431 929/715/434 925/710/430 +f 927/712/432 930/716/435 926/711/431 +f 427/362/163 931/717/436 927/712/432 +f 924/709/429 932/718/437 919/357/424 +f 463/398/199 458/393/194 922/708/427 +f 462/397/198 461/396/197 473/408/209 +f 435/370/171 433/368/169 921/706/426 +f 413/348/149 473/408/209 405/340/141 +f 418/353/154 916/719/421 431/366/167 +f 923/707/428 916/719/421 418/353/154 +f 922/708/427 925/710/430 924/709/429 +f 459/394/195 926/711/431 925/710/430 +f 402/337/138 927/712/432 926/711/431 +f 404/339/140 427/362/163 927/712/432 +f 425/360/161 423/358/159 467/402/203 +f 928/714/433 932/718/437 924/709/429 +f 929/715/434 928/714/433 925/710/430 +f 930/716/435 929/715/434 926/711/431 +f 931/717/436 930/716/435 927/712/432 +f 932/718/437 920/720/425 919/357/424 +f 406/341/142 470/405/206 407/342/143 +f 409/344/145 463/398/199 410/345/146 +f 412/347/148 473/408/209 413/348/149 +f 407/342/143 921/706/426 415/350/151 +f 421/356/157 418/353/154 417/352/153 +f 424/359/160 427/362/163 404/339/140 +f 426/361/162 931/717/436 427/362/163 +f 423/358/159 465/400/201 467/402/203 +f 404/339/140 464/399/200 423/358/159 +f 465/400/201 455/390/191 467/402/203 +f 464/399/200 465/400/201 423/358/159 +f 403/338/139 464/399/200 404/339/140 +f 834/338/386 802/337/354 804/339/356 +f 825/341/377 787/340/339 784/342/336 +f 826/344/378 796/343/348 795/345/347 +f 827/347/379 933/346/438 789/348/341 +f 784/342/336 934/349/439 782/350/334 +f 784/342/336 786/351/338 934/349/439 +f 790/353/342 828/352/380 791/354/343 +f 794/356/346 935/355/440 828/352/380 +f 796/343/348 791/354/343 828/352/380 +f 829/359/381 822/358/374 804/339/356 +f 822/358/374 829/359/381 806/360/358 +f 830/361/382 829/359/381 813/362/365 +f 936/363/441 792/366/344 791/354/343 +f 937/365/442 938/395/443 792/366/344 +f 939/367/444 933/346/438 827/347/379 +f 940/369/445 783/368/335 782/350/334 +f 940/369/445 779/370/331 783/368/335 +f 941/371/446 942/376/447 943/372/448 +f 944/374/449 945/373/450 946/375/451 +f 942/376/447 941/371/446 944/374/449 +f 782/350/334 934/349/439 947/377/452 +f 789/348/341 948/378/453 788/379/340 +f 786/351/338 785/380/337 948/378/453 +f 789/348/341 933/346/438 949/381/454 +f 939/367/444 950/384/455 949/381/454 +f 789/348/341 949/381/454 948/378/453 +f 951/383/456 952/382/457 950/384/455 +f 947/377/452 940/369/445 782/350/334 +f 947/377/452 948/378/453 953/385/458 +f 954/386/459 944/374/449 941/371/446 +f 955/387/460 941/371/446 940/369/445 +f 949/381/454 950/384/455 954/386/459 +f 953/385/458 948/378/453 949/381/454 +f 954/386/459 950/384/455 952/382/457 +f 956/388/461 945/373/450 954/386/459 +f 957/389/462 780/391/332 779/370/331 +f 833/390/385 808/402/360 780/391/332 +f 958/392/463 800/394/352 802/337/354 +f 816/393/368 798/708/350 800/394/352 +f 959/364/464 791/354/343 796/343/348 +f 938/395/443 937/365/442 819/397/371 +f 940/369/445 943/372/448 779/370/331 +f 947/377/452 953/385/458 940/369/445 +f 934/349/439 786/351/338 947/377/452 +f 948/378/453 947/377/452 786/351/338 +f 948/378/453 785/380/337 788/379/340 +f 950/384/455 939/367/444 951/383/456 +f 952/382/457 956/388/461 954/386/459 +f 945/373/450 944/374/449 954/386/459 +f 827/347/379 819/397/371 937/365/442 +f 951/383/456 939/367/444 827/347/379 +f 951/383/456 827/347/379 959/364/464 +f 826/344/378 956/388/461 952/382/457 +f 826/344/378 945/373/450 956/388/461 +f 946/375/451 945/373/450 826/344/378 +f 942/376/447 946/375/451 817/398/369 +f 957/389/462 943/372/448 942/376/447 +f 833/390/385 942/376/447 816/393/368 +f 958/392/463 832/399/384 831/400/383 +f 958/392/463 834/338/386 832/399/384 +f 936/363/441 959/364/464 937/365/442 +f 959/364/464 827/347/379 937/365/442 +f 952/382/457 951/383/456 959/364/464 +f 959/364/464 826/344/378 952/382/457 +f 817/398/369 946/375/451 826/344/378 +f 816/393/368 942/376/447 817/398/369 +f 833/390/385 957/389/462 942/376/447 +f 831/400/383 833/390/385 816/393/368 +f 816/393/368 958/392/463 831/400/383 +f 960/401/465 961/404/466 780/391/332 +f 962/403/467 963/406/468 961/404/466 +f 824/405/376 781/706/333 961/404/466 +f 964/407/469 818/396/370 820/408/372 +f 825/341/377 965/801/470 966/407/471 +f 967/799/472 938/395/443 818/396/370 +f 968/800/473 967/799/472 964/407/469 +f 968/800/473 793/707/345 821/719/373 +f 792/366/344 938/395/443 967/799/472 +f 808/402/360 807/713/359 960/401/465 +f 969/802/474 806/360/358 829/359/381 +f 969/802/474 970/803/475 807/713/359 +f 807/713/359 970/803/475 962/403/467 +f 828/352/380 935/355/440 823/720/375 +f 824/405/376 784/342/336 781/706/333 +f 817/398/369 795/345/347 798/708/350 +f 819/397/371 827/347/379 820/408/372 +f 781/706/333 780/391/332 961/404/466 +f 971/661/476 777/659/329 776/704/328 +f 972/804/477 708/636/297 707/635/296 +f 646/573/33 663/590/33 973/805/33 +f 643/570/269 629/557/263 683/611/280 +f 835/721/387 707/635/296 748/676/310 +f 974/806/33 973/805/33 181/110/59 +f 835/721/387 630/558/264 643/570/269 +f 760/689/317 975/807/478 976/808/314 +f 977/809/254 978/810/479 759/688/316 +f 975/807/478 979/811/480 980/812/295 +f 628/556/262 630/558/264 977/809/254 +f 978/810/479 760/689/317 759/688/316 +f 979/811/480 981/813/481 982/814/294 +f 981/813/481 983/815/482 984/816/483 +f 984/816/483 983/815/482 770/700/322 +f 771/701/323 770/700/322 983/815/482 +f 985/817/484 984/816/483 770/700/322 +f 682/610/253 628/556/262 977/809/254 +f 986/818/485 987/819/486 988/820/487 +f 989/821/23 652/579/23 990/822/23 +f 676/604/39 880/763/39 991/823/39 +f 989/821/23 653/580/23 652/579/23 +f 651/578/23 992/824/23 652/579/23 +f 993/825/488 994/826/489 995/827/490 +f 664/594/39 738/666/39 764/828/39 +f 996/829/491 997/830/492 998/831/493 +f 999/832/23 1000/833/23 997/834/492 +f 1001/835/33 1002/606/33 1003/836/33 +f 752/681/313 867/750/400 613/541/249 +f 1004/607/33 1002/606/33 1001/835/33 +f 1005/837/33 757/686/33 756/685/33 +f 1006/838/39 1007/839/39 1008/840/39 +f 1009/840/33 1010/839/33 1011/841/33 +f 1012/842/494 1013/843/494 1014/844/494 +f 1015/838/495 1016/845/496 1017/846/495 +f 1018/847/497 1019/848/498 1020/849/499 +f 1021/850/500 1020/849/499 1019/848/498 +f 1022/851/501 656/583/274 1023/852/502 +f 1024/853/18 1025/854/18 1026/855/18 +f 1020/849/499 1027/856/503 1018/847/497 +f 837/723/39 666/593/39 665/592/39 +f 1028/857/504 1029/858/33 1030/576/271 +f 636/563/33 1031/859/33 637/564/33 +f 1032/860/395 1033/861/39 1034/862/39 +f 1035/863/33 1031/859/33 179/108/33 +f 1036/864/33 179/108/33 1037/865/505 +f 1038/866/33 1037/865/505 1039/867/56 +f 1040/868/33 1039/867/56 691/619/55 +f 1041/869/506 1042/870/507 1043/871/508 +f 638/565/33 636/563/33 1044/872/33 +f 637/564/33 1031/859/33 1045/873/33 +f 1045/873/33 1031/859/33 1035/863/33 +f 1036/864/33 1035/863/33 179/108/33 +f 1038/866/33 1036/864/33 1037/865/505 +f 1037/865/505 179/108/33 178/107/33 +f 1040/868/33 1038/866/33 1039/867/56 +f 1046/874/509 1040/868/33 691/619/55 +f 1046/874/509 691/619/55 690/618/286 +f 177/106/58 176/105/33 1047/875/33 +f 686/614/282 177/106/58 1047/875/33 +f 1048/876/33 636/563/33 638/565/33 +f 639/566/33 638/565/33 1044/872/33 +f 1044/872/33 636/563/33 635/562/33 +f 1049/877/510 1050/878/511 987/819/486 +f 1051/879/41 186/115/41 185/114/41 +f 184/113/41 183/112/41 186/115/41 +f 1052/880/51 766/696/51 867/750/400 +f 1053/881/512 768/698/320 767/697/51 +f 768/698/320 1053/881/512 1054/882/403 +f 1055/883/513 761/690/318 616/544/252 +f 745/673/307 740/668/304 1056/884/514 +f 693/621/288 1057/885/515 694/622/58 +f 1058/886/516 1059/887/517 739/667/303 +f 1060/888/518 1061/889/58 1062/890/519 +f 740/668/304 739/667/303 1059/887/517 +f 745/673/307 1057/885/515 693/621/288 +f 974/806/33 181/110/59 1029/858/33 +f 612/540/248 881/764/404 613/541/249 +f 864/747/397 1055/883/513 616/544/252 +f 1063/891/33 1064/892/33 1065/893/33 +f 763/692/316 754/683/315 706/634/33 +f 706/634/33 695/623/289 174/103/57 +f 973/805/33 663/590/33 181/110/59 +f 181/110/59 1030/576/271 1029/858/33 +f 174/103/57 181/110/59 663/590/33 +f 630/558/264 978/810/479 977/809/254 +f 1066/894/41 1051/895/41 185/896/41 +f 187/116/41 186/115/41 183/112/41 +f 676/604/39 675/603/39 880/763/39 +f 1067/897/520 1068/898/39 1069/899/39 +f 1070/900/521 645/572/271 644/571/270 +f 1028/857/504 1030/576/271 1071/577/521 +f 1072/901/51 1073/902/51 1074/903/51 +f 1075/904/51 1072/901/51 1076/905/51 +f 1074/903/51 1077/906/51 1076/905/51 +f 1072/901/51 1074/903/51 1076/905/51 +f 1075/904/51 1078/907/51 1072/901/51 +f 1079/908/39 1080/909/522 1081/910/523 +f 1082/911/33 1083/912/33 1084/913/524 +f 1085/914/41 1086/915/41 1087/916/41 +f 1088/917/51 1089/918/51 1090/919/51 +f 1091/920/41 1092/921/41 1087/916/41 +f 1084/913/524 1081/910/523 1080/909/522 +f 1093/922/525 1094/923/33 1095/924/33 +f 1093/922/525 1096/925/525 1097/926/526 +f 1098/927/527 1099/928/528 1100/929/529 +f 1101/930/51 1102/931/51 1103/932/51 +f 1103/932/51 1102/931/51 1076/905/51 +f 1104/933/23 1105/929/23 1106/928/23 +f 1107/934/39 1108/935/530 1109/936/531 +f 1110/937/23 1111/938/532 1112/939/533 +f 1113/940/41 1114/941/41 1115/942/41 +f 1092/921/41 1091/920/41 1116/943/41 +f 1116/943/41 1117/944/41 1115/942/41 +f 1112/939/533 1111/938/532 1118/945/534 +f 1119/946/535 1120/947/535 1121/948/23 +f 1109/936/531 1108/935/530 1122/949/527 +f 1090/919/51 1078/907/51 1075/904/51 +f 1123/950/33 1124/951/33 1125/927/33 +f 1119/946/535 1126/952/536 1127/953/536 +f 1128/954/537 1097/926/526 1127/953/536 +f 1073/902/51 1129/955/51 1074/903/51 +f 1130/956/33 94/32/33 96/34/33 +f 1131/17/34 97/35/34 99/23/34 +f 1132/12/23 100/36/23 102/38/23 +f 1133/957/35 103/39/35 105/40/37 +f 1134/958/33 1135/959/33 1130/956/33 +f 1136/960/538 105/40/37 1137/961/539 +f 96/34/33 1134/958/33 1130/956/33 +f 1135/959/33 1138/962/33 1130/956/33 +f 1131/17/34 99/23/34 1139/18/34 +f 102/38/23 1140/13/23 1132/12/23 +f 105/40/37 104/31/36 1137/961/539 +f 1141/37/540 1142/36/540 1143/28/540 +f 1144/963/541 177/106/58 686/614/282 +f 883/766/406 1145/964/542 698/626/291 +f 883/766/406 698/626/291 700/628/293 +f 699/627/292 1043/871/508 700/628/293 +f 705/633/33 696/624/290 695/623/289 +f 1146/965/543 1147/966/544 1148/967/545 +f 1149/968/546 1150/969/547 1151/970/548 +f 1152/971/549 1153/972/550 1154/973/551 +f 1153/972/550 1155/974/552 1154/973/551 +f 1042/870/507 700/628/293 1043/871/508 +f 1151/970/548 1150/969/547 1156/975/39 +f 1157/976/23 1158/977/553 1159/978/23 +f 1160/979/552 1145/964/542 883/766/406 +f 1152/971/549 1161/980/23 1153/972/550 +f 1162/981/554 1163/982/292 1164/983/555 +f 1165/984/18 1166/985/18 1167/986/556 +f 1168/987/557 1152/971/549 1169/988/558 +f 1161/980/23 1170/989/23 1153/972/550 +f 714/642/33 734/662/33 715/643/300 +f 711/639/23 719/647/301 712/640/299 +f 1171/990/18 1172/991/18 1173/992/559 +f 1174/993/560 1175/994/561 1176/995/41 +f 1175/996/561 1174/997/560 1177/998/39 +f 1178/999/51 1179/1000/51 1180/1001/562 +f 1181/1002/494 1182/1003/494 1183/1004/494 +f 1184/1005/563 655/582/273 654/581/272 +f 1182/1003/494 1185/1006/494 1183/1004/494 +f 1186/1007/494 1181/1002/494 1187/1008/494 +f 618/546/254 763/692/316 659/586/33 +f 1188/1009/41 1189/1010/41 1190/1011/41 +f 1191/1012/41 1192/1013/41 1189/1010/41 +f 993/825/488 1193/1014/564 994/826/489 +f 701/629/294 745/673/307 693/621/288 +f 747/675/309 744/672/33 745/673/307 +f 1182/1003/494 1012/842/494 1014/844/494 +f 1194/1015/494 1014/844/494 1013/843/494 +f 742/670/33 740/668/304 745/673/307 +f 1187/1008/494 1181/1002/494 1183/1004/494 +f 743/671/306 741/669/305 740/668/304 +f 675/603/39 879/762/39 880/763/39 +f 1050/878/511 988/820/487 987/819/486 +f 908/795/414 1195/1016/565 998/831/493 +f 1196/1017/566 993/825/488 995/827/490 +f 1176/995/41 1197/1018/559 1173/992/559 +f 1178/999/51 1198/1019/567 1199/1020/568 +f 1180/1001/562 1200/1021/39 1177/1022/39 +f 1201/1023/18 1199/1020/568 1198/1019/567 +f 1202/1024/277 1203/1025/569 1204/1026/277 +f 677/605/276 679/607/277 1204/1026/277 +f 1205/1027/41 1206/1028/41 1207/1029/41 +f 1208/1030/41 1209/1031/41 1207/1029/41 +f 1210/1032/41 1211/1033/41 1209/1031/41 +f 1212/1034/39 662/589/39 664/594/39 +f 888/771/23 1213/1035/411 895/780/23 +f 900/785/39 1214/1036/39 901/786/39 +f 1215/1037/258 622/550/23 894/779/23 +f 1216/1038/274 1217/1039/502 1218/1040/570 +f 1219/1041/51 1220/822/51 1221/1042/51 +f 1222/1043/33 1223/1044/33 1224/1045/33 +f 1225/774/18 1226/1046/18 1227/1047/18 +f 1228/1048/18 1229/773/18 1225/774/18 +f 1213/1035/411 1230/1049/571 895/780/23 +f 1231/1050/572 1232/1051/572 1233/1052/573 +f 1234/1053/574 658/585/275 1218/1040/570 +f 1235/1054/23 1236/1055/23 1237/1056/23 +f 1238/1057/33 1239/1058/33 1240/1059/33 +f 1241/1060/575 1242/1061/575 1243/981/576 +f 1167/986/556 1244/1062/577 1245/1063/578 +f 1246/1064/23 1247/1065/23 1248/1066/23 +f 1249/1067/18 1250/1068/18 1251/1069/18 +f 1252/1070/579 1253/1071/580 1254/1068/581 +f 1255/1072/582 1256/1073/583 1257/1074/584 +f 1258/1075/585 1257/1074/584 1253/1071/580 +f 1259/1076/586 1260/1077/587 1261/1078/587 +f 1262/1079/23 1263/1080/23 1259/1076/586 +f 1264/1081/41 1265/1082/41 1266/1083/41 +f 1267/1084/41 1268/1085/41 1269/1086/41 +f 1244/1062/577 1270/968/588 1271/1087/588 +f 890/776/410 1272/1088/589 1273/1089/590 +f 1274/1090/23 1275/1091/23 1276/1092/23 +f 1277/1093/575 1278/1094/575 1279/1095/591 +f 1236/1055/23 1235/1054/23 1158/977/553 +f 1158/977/553 1168/987/557 1159/978/23 +f 1280/1096/592 883/766/406 887/770/409 +f 1281/1097/571 1282/1098/593 1283/1046/593 +f 1284/1099/593 1285/1100/593 1230/1049/571 +f 1256/1073/583 1255/1072/582 1286/1101/39 +f 1051/895/41 1066/894/41 1287/1102/41 +f 1288/1103/41 1266/1083/41 1267/1084/41 +f 1289/1104/41 1287/1102/41 1264/1105/41 +f 1290/1106/594 1291/1107/594 1292/1108/594 +f 1280/1096/592 1160/979/552 883/766/406 +f 695/623/289 706/634/33 705/633/33 +f 1293/1109/291 1148/967/545 1147/966/544 +f 1294/1108/18 1295/1107/18 1296/1110/18 +f 1152/971/549 1154/973/551 1169/988/558 +f 1297/1111/595 1298/1106/596 1299/1112/596 +f 1233/1052/573 1297/1111/595 1300/1113/597 +f 1301/1114/18 1232/1051/572 1231/1050/572 +f 1302/893/598 1303/1115/598 1304/1116/598 +f 1305/892/599 1306/1117/599 1307/1115/599 +f 1308/1118/23 1309/1119/23 1310/1115/23 +f 1311/1120/600 1312/1121/600 1313/1117/600 +f 1314/1122/601 1061/889/58 1060/888/518 +f 1315/1123/602 1316/1124/603 700/628/293 +f 1317/1125/604 1318/1126/605 1319/1127/606 +f 1320/1128/607 1321/1129/608 1322/1130/602 +f 1323/1131/609 1324/1132/610 1325/1133/611 +f 1315/1123/602 700/628/293 1042/870/507 +f 1316/1124/603 1315/1123/602 1318/1126/605 +f 1326/1134/605 1327/1135/514 1328/1136/612 +f 1327/1135/514 1326/1134/605 1322/1130/602 +f 1321/1129/608 1329/1137/613 1062/890/519 +f 1330/1138/516 1331/1139/614 1332/1140/615 +f 1267/1084/41 1269/1086/41 1288/1103/41 +f 1288/1103/41 1289/1141/41 1264/1081/41 +f 1333/1142/39 676/604/39 991/823/39 +f 1246/1064/23 1334/1143/23 1247/1065/23 +f 1235/1054/23 1237/1056/23 1334/1143/23 +f 1246/1064/23 1335/1144/23 1235/1054/23 +f 1144/963/541 686/614/282 688/616/284 +f 688/616/284 1239/1058/33 1238/1057/33 +f 1155/974/552 1336/1145/592 1337/1146/616 +f 1159/978/23 1168/987/557 1169/988/558 +f 1338/1147/617 1154/973/551 1155/974/552 +f 1336/1145/592 1339/1148/618 1337/1146/616 +f 1340/1149/23 1339/1148/618 1336/1145/592 +f 1341/1150/23 1340/1149/23 1342/1151/590 +f 1274/1090/23 1343/1152/589 1275/1091/23 +f 1344/1153/23 1341/1150/23 1343/1152/589 +f 1345/1154/23 1344/1153/23 1274/1090/23 +f 1346/1155/23 1347/1156/23 1345/1154/23 +f 1346/1155/23 1248/1066/23 1347/1156/23 +f 1246/1064/23 1235/1054/23 1334/1143/23 +f 1163/982/292 1293/1109/291 1348/1157/619 +f 1342/1151/590 1340/1149/23 1336/1145/592 +f 1343/1152/589 1341/1150/23 1342/1151/590 +f 1274/1090/23 1344/1153/23 1343/1152/589 +f 1346/1155/23 1345/1154/23 1274/1090/23 +f 1349/1158/620 1350/1159/621 1351/1160/622 +f 1346/1155/23 1246/1064/23 1248/1066/23 +f 892/775/23 1281/1097/571 891/774/411 +f 899/784/39 902/788/39 897/782/39 +f 1352/1161/623 1353/1162/624 1354/1163/625 +f 1018/847/497 1027/856/503 1352/1161/623 +f 1355/1164/501 1356/1165/626 1217/1039/502 +f 1356/1165/626 1355/1164/501 1357/1166/627 +f 1357/1166/627 1354/1163/625 1353/1162/624 +f 1358/1167/628 1359/1168/629 1360/1169/630 +f 1359/1168/629 1361/1170/631 1362/1171/632 +f 1363/1172/633 1358/1167/628 1364/1173/634 +f 1361/1170/631 1365/1174/635 1366/1175/636 +f 1367/1176/637 1363/1172/633 1368/1177/638 +f 1365/1174/635 1369/1178/639 1370/1179/640 +f 1371/1180/641 1367/1176/637 1372/1181/642 +f 1369/1178/639 1373/1182/643 1374/1183/644 +f 1375/1184/645 1371/1180/641 1376/1185/646 +f 1373/1182/643 1234/1053/574 1377/1186/647 +f 1350/1159/621 1375/1184/645 1378/1187/648 +f 1379/1043/41 1380/579/41 1381/1188/649 +f 1382/1189/33 1223/1044/33 1222/1043/33 +f 1224/1045/33 1383/1190/33 1222/1043/33 +f 1384/1042/18 1385/822/18 1386/579/18 +f 1383/1190/33 1387/1191/33 1388/1042/33 +f 657/584/18 1389/1192/18 1218/1040/570 +f 620/548/255 622/550/23 1215/1037/258 +f 1390/1193/650 1391/1194/651 1392/1195/652 +f 1392/1195/652 1393/1196/653 1394/1197/654 +f 1394/1197/654 1390/1193/650 1392/1195/652 +f 1395/1198/655 1396/1199/656 1390/1193/650 +f 1397/1200/657 1398/1201/405 1396/1199/656 +f 1399/1202/658 843/729/392 1400/1203/408 +f 625/553/259 685/613/281 623/551/257 +f 1401/1204/659 1402/1205/412 1398/1201/405 +f 843/729/392 624/552/258 1400/1203/408 +f 1399/1202/658 1403/1206/407 1402/1205/412 +f 625/553/259 840/726/390 838/724/388 +f 749/677/311 839/725/389 748/676/310 +f 839/725/389 840/726/390 748/676/310 +f 838/724/388 1404/1207/660 1405/1208/265 +f 749/677/311 709/637/298 1406/1209/661 +f 1404/1207/660 838/724/388 839/725/389 +f 1407/652/662 1408/1210/663 1409/1211/664 +f 1408/1210/663 1407/652/662 1410/650/665 +f 1411/1212/666 1412/644/667 1413/646/668 +f 1410/650/665 1414/640/669 1415/1213/670 +f 1392/1195/652 1416/1214/671 1393/1196/653 +f 771/701/323 983/815/482 1394/1197/654 +f 983/815/482 981/813/481 1395/1198/655 +f 979/811/480 975/807/478 1401/1204/659 +f 1395/1198/655 981/813/481 979/811/480 +f 975/807/478 760/689/317 1399/1202/658 +f 1400/1203/408 1403/1206/407 1399/1202/658 +f 1417/1215/23 1418/1216/23 844/730/23 +f 684/612/255 624/552/258 623/551/257 +f 835/721/387 748/676/310 840/726/390 +f 1399/1202/658 760/689/317 978/810/479 +f 835/721/387 840/726/390 625/553/259 +f 843/729/392 978/810/479 630/558/264 +f 1419/1217/656 882/765/405 700/628/293 +f 1420/1218/672 1419/1217/656 1316/1124/603 +f 1421/1219/23 1422/1220/673 1420/1218/672 +f 1423/1221/23 1421/1219/23 1316/1124/603 +f 1424/1222/674 1423/1221/23 1317/1125/604 +f 1317/1125/604 1325/1133/611 1324/1132/610 +f 905/791/39 869/752/39 868/751/39 +f 1316/1124/603 1419/1217/656 700/628/293 +f 1421/1219/23 1420/1218/672 1316/1124/603 +f 1317/1125/604 1423/1221/23 1316/1124/603 +f 1324/1132/610 1424/1222/674 1317/1125/604 +f 885/768/408 1215/1037/258 894/779/23 +f 1425/1223/494 1426/1224/494 1427/1225/494 +f 1428/1226/494 1429/1227/494 1430/1228/494 +f 1428/1226/494 1430/1228/494 1427/1225/494 +f 1426/1224/494 1428/1226/494 1427/1225/494 +f 1426/1224/494 1425/1223/494 1431/1229/494 +f 1431/1229/494 1432/1230/494 1433/1231/494 +f 1194/1015/494 1013/843/494 1433/1231/494 +f 1434/1232/675 1435/1233/676 1436/1234/677 +f 1436/1234/677 1437/1235/678 1438/1236/679 +f 1439/1237/680 1440/1238/681 1441/1239/682 +f 1442/1240/683 1440/1238/681 1439/1237/680 +f 1184/1005/563 1443/1241/684 1435/1233/676 +f 1181/1002/494 1186/1007/494 1429/1227/494 +f 1433/1231/494 1444/1242/494 1431/1229/494 +f 750/1243/39 666/593/39 899/784/39 +f 1445/1244/41 1446/1245/41 1447/1246/41 +f 1448/1024/23 1449/1026/23 1450/1247/23 +f 1451/835/39 1452/1247/39 1453/1026/39 +f 1450/1248/23 1454/1249/23 1455/1250/23 +f 1456/1251/22 70/12/22 72/14/22 +f 1457/1251/23 73/14/23 75/16/23 +f 87/27/31 76/17/24 78/19/26 +f 1458/1252/28 79/20/27 81/22/28 +f 1459/9/29 82/21/29 84/24/29 +f 78/19/26 85/25/30 87/27/31 +f 1460/1253/23 88/28/23 90/30/23 +f 1461/39/32 91/25/32 93/31/32 +f 144/79/50 135/70/42 137/72/44 +f 114/49/38 138/73/45 117/52/40 +f 139/74/45 138/73/45 141/76/47 +f 141/76/47 140/75/46 143/78/49 +f 143/78/49 142/77/48 136/71/43 +f 1462/3/51 146/7/51 148/82/51 +f 1463/1254/51 149/83/51 151/85/51 +f 1464/88/39 152/86/39 154/54/39 +f 1465/1255/23 155/87/23 157/88/23 +f 1466/92/23 158/89/23 160/91/23 +f 1467/69/51 161/92/51 163/61/51 +f 311/246/90 169/98/52 171/100/54 +f 695/623/289 172/101/55 174/103/57 +f 638/565/33 175/104/33 177/106/58 +f 1468/574/505 181/110/59 173/102/56 +f 1469/1256/41 185/114/41 187/116/41 +f 312/247/41 188/117/41 190/119/41 +f 313/248/89 191/120/60 193/122/62 +f 314/249/51 194/123/51 196/125/51 +f 171/100/54 170/99/53 198/127/64 +f 190/119/41 189/118/41 200/1257/41 +f 193/122/62 192/121/61 202/132/66 +f 196/125/51 195/124/51 204/134/51 +f 198/127/64 197/126/63 206/136/68 +f 200/1257/41 199/137/41 208/139/41 +f 202/132/66 201/131/65 210/141/70 +f 204/134/51 203/133/51 212/143/51 +f 206/1258/68 205/1259/67 214/1260/72 +f 208/139/41 207/138/41 216/147/41 +f 210/1261/70 209/1262/69 218/1263/74 +f 212/143/51 211/142/51 220/152/51 +f 1470/1264/95 221/1265/75 223/1266/77 +f 216/147/41 215/146/41 225/157/41 +f 1471/1267/94 226/158/78 228/160/80 +f 220/152/51 219/151/51 230/162/51 +f 223/1266/77 222/163/76 232/165/82 +f 225/157/41 224/156/41 234/167/41 +f 228/160/80 227/159/79 236/169/84 +f 230/162/51 229/161/51 238/171/51 +f 232/165/82 231/164/81 240/173/86 +f 234/167/41 233/166/41 242/175/41 +f 236/169/84 235/168/83 244/177/88 +f 238/171/51 237/170/51 246/179/51 +f 240/173/86 239/172/85 248/1268/89 +f 242/175/41 241/174/41 250/184/41 +f 244/177/88 243/176/87 252/186/90 +f 246/179/51 245/178/51 254/188/51 +f 248/1268/89 247/1269/60 256/1270/62 +f 250/184/41 249/183/41 258/192/41 +f 252/186/90 251/185/52 260/194/54 +f 254/188/51 253/187/51 262/196/51 +f 256/1270/62 255/1271/91 264/1272/66 +f 258/192/41 257/191/41 266/200/41 +f 260/194/54 259/193/53 268/202/64 +f 262/196/51 261/195/51 270/204/51 +f 264/1272/66 263/1273/65 272/1274/70 +f 266/200/41 265/199/41 274/208/41 +f 268/202/64 267/201/63 276/210/93 +f 270/204/51 269/203/51 278/212/51 +f 272/206/70 271/205/69 280/214/94 +f 274/208/41 273/207/41 282/216/41 +f 276/210/93 275/209/92 284/218/95 +f 278/212/51 277/211/51 286/220/51 +f 280/214/94 279/213/73 288/222/97 +f 282/216/41 281/215/41 290/224/41 +f 284/1275/95 283/225/71 292/227/77 +f 286/220/51 285/219/51 294/229/51 +f 288/222/97 287/221/96 296/231/84 +f 290/224/41 289/223/41 298/233/41 +f 292/227/77 291/226/76 300/235/82 +f 294/229/51 293/228/51 302/237/51 +f 296/231/84 295/230/83 304/239/88 +f 298/233/41 297/232/41 306/241/41 +f 300/235/82 299/234/81 308/243/98 +f 302/237/51 301/236/51 310/245/51 +f 304/239/88 303/238/87 311/246/90 +f 306/241/41 305/240/41 312/247/41 +f 308/243/98 307/242/85 313/248/89 +f 310/245/51 309/244/51 314/249/51 +f 338/273/23 315/250/23 317/252/23 +f 317/252/23 316/251/23 319/254/23 +f 319/254/23 318/253/23 321/256/23 +f 321/256/23 320/255/23 323/258/23 +f 323/258/23 322/257/23 325/260/23 +f 325/260/23 324/259/23 327/262/23 +f 327/262/23 326/261/23 329/264/23 +f 329/264/23 328/263/23 331/266/23 +f 331/266/23 330/265/23 333/268/23 +f 333/268/23 332/267/23 335/270/23 +f 335/270/23 334/269/23 337/272/23 +f 337/272/23 336/271/23 338/273/23 +f 349/284/106 339/274/99 341/276/101 +f 401/336/137 342/277/102 344/279/104 +f 354/289/110 348/283/105 349/284/106 +f 344/279/104 343/278/103 351/286/108 +f 1472/1276/214 353/288/109 354/289/110 +f 351/286/108 350/285/107 356/291/112 +f 365/300/119 358/293/113 360/295/115 +f 356/291/112 355/290/111 362/297/117 +f 370/305/123 364/299/118 365/300/119 +f 362/297/117 361/296/116 367/302/121 +f 375/310/126 369/304/122 370/305/123 +f 367/302/121 366/301/120 372/307/125 +f 380/315/129 374/309/120 375/310/126 +f 372/307/125 371/306/124 377/312/123 +f 385/320/117 379/314/128 380/315/129 +f 377/312/123 376/311/127 382/317/130 +f 390/325/132 384/319/131 385/320/117 +f 382/317/130 381/316/113 387/322/115 +f 396/331/135 389/324/107 390/325/132 +f 1473/1277/214 391/326/109 393/328/110 +f 400/335/104 395/330/134 396/331/135 +f 393/328/110 392/327/133 398/333/136 +f 341/276/101 340/275/100 400/335/104 +f 398/333/136 397/332/99 401/336/137 +f 419/354/155 408/343/144 417/352/153 +f 431/366/167 428/363/164 419/354/155 +f 460/395/196 430/365/166 431/366/167 +f 441/376/177 436/371/172 437/372/173 +f 436/371/172 441/376/177 439/374/175 +f 449/384/185 432/367/168 446/381/182 +f 439/374/175 451/386/187 436/371/172 +f 436/371/172 452/387/188 434/369/170 +f 449/384/185 446/381/182 451/386/187 +f 443/378/179 450/385/186 446/381/182 +f 456/391/192 454/389/190 435/370/171 +f 467/402/203 455/390/191 456/391/192 +f 459/394/195 457/392/193 402/337/138 +f 922/708/427 458/393/194 459/394/195 +f 419/354/155 429/364/165 408/343/144 +f 430/365/166 460/395/196 462/397/198 +f 469/404/205 466/401/202 456/391/192 +f 471/406/207 468/403/204 469/404/205 +f 921/706/426 470/405/206 469/404/205 +f 461/396/197 472/407/208 473/408/209 +f 481/416/120 477/412/121 479/414/210 +f 485/420/124 480/415/125 481/416/120 +f 479/414/210 478/413/117 483/418/111 +f 487/422/212 484/419/123 485/420/124 +f 491/426/113 486/421/211 487/422/212 +f 483/418/111 482/417/112 489/424/107 +f 493/428/114 490/425/214 491/426/113 +f 497/432/133 492/427/110 493/428/114 +f 489/424/107 488/423/213 495/430/103 +f 499/434/99 496/431/136 497/432/133 +f 500/435/102 498/433/137 499/434/99 +f 495/430/103 494/429/104 500/435/102 +f 505/412/33 501/436/33 503/413/33 +f 509/415/33 504/438/33 505/412/33 +f 503/413/33 502/437/33 507/417/33 +f 511/419/33 508/440/33 509/415/33 +f 514/421/33 510/441/33 511/419/33 +f 507/417/33 506/439/33 513/423/33 +f 516/425/33 474/443/33 514/421/33 +f 520/427/33 515/444/33 516/425/33 +f 513/423/33 512/442/33 518/429/33 +f 522/431/33 519/446/33 520/427/33 +f 523/433/33 521/447/33 522/431/33 +f 518/429/33 517/445/33 523/433/33 +f 531/455/117 527/451/116 529/453/121 +f 540/464/112 530/454/111 531/455/117 +f 529/453/121 528/452/120 534/458/125 +f 534/458/125 533/457/124 538/462/123 +f 550/474/108 539/463/107 540/464/112 +f 538/462/123 537/461/127 543/467/215 +f 563/487/220 546/470/216 548/472/217 +f 560/484/104 549/473/103 550/474/108 +f 1474/1278/218 552/476/218 554/478/219 +f 547/471/216 546/470/216 558/482/136 +f 562/486/137 559/483/102 560/484/104 +f 558/482/136 557/481/99 562/486/137 +f 553/477/219 563/487/220 554/478/219 +f 1475/1279/222 543/467/215 564/489/221 +f 1474/1278/218 565/490/222 552/476/218 +f 1476/1280/33 476/492/33 567/494/33 +f 611/539/247 571/499/224 573/501/226 +f 573/501/226 572/500/225 579/507/228 +f 579/507/228 578/506/227 583/511/230 +f 1477/1281/685 586/514/231 588/516/233 +f 588/516/233 587/515/232 592/520/235 +f 592/520/235 591/519/234 596/524/237 +f 1478/1282/33 597/525/33 599/527/238 +f 1479/1283/239 599/527/238 602/530/239 +f 596/524/237 595/523/236 604/532/241 +f 610/538/246 606/534/242 608/536/244 +f 1067/897/520 609/537/245 610/538/246 +f 604/532/241 603/531/240 611/539/247 +f 866/749/399 615/543/251 612/540/248 +f 608/536/244 607/535/243 627/555/261 +f 1480/555/18 632/554/18 634/561/18 +f 1442/1240/683 640/567/266 642/569/268 +f 1481/110/18 647/574/18 649/576/18 +f 641/568/267 654/581/272 642/569/268 +f 1023/852/502 656/583/274 658/585/275 +f 1482/1284/41 667/595/41 669/597/41 +f 669/597/41 668/596/41 671/599/41 +f 670/598/41 672/600/41 671/599/41 +f 629/557/263 628/556/262 683/611/280 +f 1405/1208/265 684/612/255 685/613/281 +f 1483/1285/541 692/620/287 694/622/58 +f 172/101/55 695/623/289 697/625/284 +f 749/677/311 707/635/296 709/637/298 +f 764/828/39 738/666/39 674/602/39 +f 1484/1286/33 755/684/33 757/686/33 +f 867/750/400 766/696/51 768/698/320 +f 1485/654/686 775/703/327 777/659/329 +f 971/661/476 778/705/330 773/662/325 +f 799/709/351 795/345/347 797/357/349 +f 1486/1287/39 847/733/39 849/735/39 +f 1487/1287/23 850/735/23 852/737/23 +f 1488/1288/687 853/738/393 855/740/393 +f 1489/1289/18 856/740/18 858/741/18 +f 1490/1290/39 859/742/395 861/744/39 +f 841/727/391 614/542/250 867/750/400 +f 876/759/51 871/754/51 872/755/401 +f 871/754/51 873/756/51 841/727/391 +f 872/755/401 874/757/402 876/759/51 +f 874/757/402 872/755/401 878/761/403 +f 612/540/248 616/544/252 881/764/404 +f 901/786/39 906/792/39 898/787/39 +f 911/798/416 907/794/413 909/796/415 +f 1491/1291/33 910/797/33 911/798/416 +f 1492/801/688 406/341/142 912/407/417 +f 460/395/196 913/799/418 461/396/197 +f 913/799/418 914/800/419 472/407/208 +f 923/707/428 914/800/419 916/719/421 +f 460/395/196 431/366/167 913/799/418 +f 425/360/161 918/802/423 424/359/160 +f 1493/803/689 918/802/423 917/713/422 +f 1493/803/689 917/713/422 468/403/204 +f 420/355/156 417/352/153 920/720/425 +f 408/343/144 410/345/146 422/357/158 +f 797/357/349 796/343/348 828/352/380 +f 959/364/464 936/363/441 791/354/343 +f 936/363/441 937/365/442 792/366/344 +f 940/369/445 941/371/446 943/372/448 +f 946/375/451 942/376/447 944/374/449 +f 933/346/438 939/367/444 949/381/454 +f 955/387/460 954/386/459 941/371/446 +f 953/385/458 955/387/460 940/369/445 +f 955/387/460 949/381/454 954/386/459 +f 955/387/460 953/385/458 949/381/454 +f 943/372/448 957/389/462 779/370/331 +f 957/389/462 833/390/385 780/391/332 +f 834/338/386 958/392/463 802/337/354 +f 958/392/463 816/393/368 800/394/352 +f 826/344/378 959/364/464 796/343/348 +f 818/396/370 938/395/443 819/397/371 +f 808/402/360 960/401/465 780/391/332 +f 960/401/465 962/403/467 961/404/466 +f 963/406/468 824/405/376 961/404/466 +f 787/340/339 964/407/469 820/408/372 +f 787/340/339 825/341/377 966/407/471 +f 964/407/469 967/799/472 818/396/370 +f 1494/801/690 968/800/473 964/407/469 +f 967/799/472 968/800/473 821/719/373 +f 821/719/373 792/366/344 967/799/472 +f 830/361/382 969/802/474 829/359/381 +f 806/360/358 969/802/474 807/713/359 +f 960/401/465 807/713/359 962/403/467 +f 815/357/367 828/352/380 823/720/375 +f 778/705/330 971/661/476 776/704/328 +f 643/570/269 972/804/477 707/635/296 +f 972/804/477 643/570/269 683/611/280 +f 758/687/315 760/689/317 976/808/314 +f 976/808/314 975/807/478 980/812/295 +f 980/812/295 979/811/480 982/814/294 +f 982/814/294 981/813/481 984/816/483 +f 1495/1292/23 989/821/23 990/822/23 +f 1195/1016/565 996/829/491 998/831/493 +f 996/829/491 999/1293/23 997/830/492 +f 1496/1294/33 1001/1295/33 1003/1296/33 +f 1497/845/39 1006/838/39 1008/840/39 +f 1498/1297/33 1009/840/33 1011/841/33 +f 1499/1298/691 1015/838/495 1017/846/495 +f 1022/851/501 1021/850/500 1019/848/498 +f 1021/850/500 1022/851/501 1023/852/502 +f 1500/1299/18 1024/853/18 1026/855/18 +f 1501/1300/395 1032/860/395 1034/862/39 +f 752/681/313 1052/880/51 867/750/400 +f 1502/1301/51 1053/881/512 767/697/51 +f 1503/1302/403 768/698/320 1054/882/403 +f 1057/885/515 745/673/307 1056/884/514 +f 741/669/305 1058/886/516 739/667/303 +f 1329/1137/613 1060/888/518 1062/890/519 +f 1056/884/514 740/668/304 1059/887/517 +f 1504/1303/33 1063/891/33 1065/893/33 +f 609/537/245 1067/897/520 1069/899/39 +f 1505/1304/521 1070/900/521 644/571/270 +f 1506/1305/521 1028/857/504 1071/577/521 +f 1122/949/527 1079/908/39 1081/910/523 +f 1507/1306/692 1082/911/33 1084/913/524 +f 1508/1307/41 1085/914/41 1087/916/41 +f 1509/1308/51 1088/917/51 1090/919/51 +f 1086/915/41 1091/920/41 1087/916/41 +f 1507/1306/692 1084/913/524 1080/909/522 +f 1096/925/525 1093/922/525 1095/924/33 +f 1128/954/537 1093/922/525 1097/926/526 +f 1510/950/529 1098/927/527 1100/929/529 +f 1511/1309/51 1101/930/51 1103/932/51 +f 1077/906/51 1103/932/51 1076/905/51 +f 1118/945/534 1107/934/39 1109/936/531 +f 1512/1310/23 1110/937/23 1112/939/533 +f 1117/944/41 1113/940/41 1115/942/41 +f 1513/1311/41 1092/921/41 1116/943/41 +f 1513/1311/41 1116/943/41 1115/942/41 +f 1109/936/531 1112/939/533 1118/945/534 +f 1514/1312/23 1119/946/535 1121/948/23 +f 1081/910/523 1109/936/531 1122/949/527 +f 1509/1308/51 1090/919/51 1075/904/51 +f 1120/947/535 1119/946/535 1127/953/536 +f 1126/952/536 1128/954/537 1127/953/536 +f 1515/1253/540 1141/37/540 1143/28/540 +f 1516/1087/693 1149/968/546 1151/970/548 +f 1517/1313/694 1162/981/554 1164/983/555 +f 1518/1314/695 1165/984/18 1167/986/556 +f 1197/1018/559 1171/990/18 1173/992/559 +f 1519/1315/41 1174/993/560 1176/995/41 +f 1200/1316/39 1175/996/561 1177/998/39 +f 1520/1317/562 1178/999/51 1180/1001/562 +f 1443/1241/684 1184/1005/563 654/581/272 +f 1521/1318/41 1188/1009/41 1190/1011/41 +f 1188/1009/41 1191/1012/41 1189/1010/41 +f 1185/1006/494 1182/1003/494 1014/844/494 +f 909/796/415 908/795/414 998/831/493 +f 1519/1315/41 1176/995/41 1173/992/559 +f 1179/1000/51 1178/999/51 1199/1020/568 +f 1520/1317/562 1180/1001/562 1177/1022/39 +f 1522/1319/18 1201/1320/18 1198/1321/567 +f 1203/1025/569 677/605/276 1204/1026/277 +f 1523/1322/41 1205/1027/41 1207/1029/41 +f 1206/1028/41 1208/1030/41 1207/1029/41 +f 1208/1030/41 1210/1032/41 1209/1031/41 +f 750/678/39 1212/1034/39 664/594/39 +f 1389/1192/18 1216/1038/274 1218/1040/570 +f 1524/1323/51 1219/1041/51 1221/1042/51 +f 1227/1047/18 1228/1048/18 1225/774/18 +f 1525/1324/573 1231/1050/572 1233/1052/573 +f 1377/1186/647 1234/1053/574 1218/1040/570 +f 1526/1325/33 1238/1057/33 1240/1059/33 +f 1517/1313/694 1527/1060/696 1162/981/554 +f 1518/1314/695 1167/986/556 1245/1063/578 +f 1528/1326/18 1249/1067/18 1251/1069/18 +f 1529/1067/697 1252/1070/579 1254/1068/581 +f 1258/1075/585 1255/1072/582 1257/1074/584 +f 1252/1070/579 1258/1075/585 1253/1071/580 +f 1530/1327/586 1259/1076/586 1261/1078/587 +f 1530/1327/586 1262/1079/23 1259/1076/586 +f 1288/1103/41 1264/1081/41 1266/1083/41 +f 1245/1063/578 1244/1062/577 1271/1087/588 +f 887/770/409 890/776/410 1273/1089/590 +f 1157/976/23 1236/1055/23 1158/977/553 +f 1273/1089/590 1280/1096/592 887/770/409 +f 891/774/411 1281/1097/571 1283/1046/593 +f 1213/1035/411 1284/1099/593 1230/1049/571 +f 1531/1328/39 1256/1073/583 1286/1101/39 +f 1289/1104/41 1051/895/41 1287/1102/41 +f 1532/1112/594 1290/1106/594 1292/1108/594 +f 1348/1157/619 1293/1109/291 1147/966/544 +f 1533/1329/18 1294/1108/18 1296/1110/18 +f 1300/1113/597 1297/1111/595 1299/1112/596 +f 1525/1324/573 1233/1052/573 1300/1113/597 +f 1534/1330/18 1301/1114/18 1231/1050/572 +f 1535/1331/598 1302/893/598 1304/1116/598 +f 1536/893/599 1305/892/599 1307/1115/599 +f 1537/1117/23 1308/1118/23 1310/1115/23 +f 1538/892/600 1311/1120/600 1313/1117/600 +f 1320/1128/607 1314/1122/601 1060/888/518 +f 1325/1133/611 1317/1125/604 1319/1127/606 +f 1314/1122/601 1320/1128/607 1322/1130/602 +f 1319/1127/606 1323/1131/609 1325/1133/611 +f 1317/1125/604 1316/1124/603 1318/1126/605 +f 1332/1140/615 1326/1134/605 1328/1136/612 +f 1062/890/519 1327/1135/514 1322/1130/602 +f 1322/1130/602 1321/1129/608 1062/890/519 +f 1328/1136/612 1330/1138/516 1332/1140/615 +f 1144/963/541 688/616/284 1238/1057/33 +f 1337/1146/616 1338/1147/617 1155/974/552 +f 1164/983/555 1163/982/292 1348/1157/619 +f 1539/1332/698 1349/1158/620 1351/1160/622 +f 1354/1163/625 1018/847/497 1352/1161/623 +f 1216/1038/274 1355/1164/501 1217/1039/502 +f 1353/1162/624 1356/1165/626 1357/1166/627 +f 1364/1173/634 1358/1167/628 1360/1169/630 +f 1360/1169/630 1359/1168/629 1362/1171/632 +f 1368/1177/638 1363/1172/633 1364/1173/634 +f 1362/1171/632 1361/1170/631 1366/1175/636 +f 1372/1181/642 1367/1176/637 1368/1177/638 +f 1366/1175/636 1365/1174/635 1370/1179/640 +f 1376/1185/646 1371/1180/641 1372/1181/642 +f 1370/1179/640 1369/1178/639 1374/1183/644 +f 1378/1187/648 1375/1184/645 1376/1185/646 +f 1374/1183/644 1373/1182/643 1377/1186/647 +f 1351/1160/622 1350/1159/621 1378/1187/648 +f 1540/1333/625 1379/1043/41 1381/1188/649 +f 1541/1043/18 1384/1042/18 1386/579/18 +f 1222/1043/33 1383/1190/33 1388/1042/33 +f 658/585/275 657/584/18 1218/1040/570 +f 1394/1197/654 1395/1198/655 1390/1193/650 +f 1395/1198/655 1397/1200/657 1396/1199/656 +f 1397/1200/657 1401/1204/659 1398/1201/405 +f 1401/1204/659 1399/1202/658 1402/1205/412 +f 685/613/281 838/724/388 1405/1208/265 +f 839/725/389 749/677/311 1406/1209/661 +f 1406/1209/661 1404/1207/660 839/725/389 +f 1413/646/668 1407/652/662 1409/1211/664 +f 1415/1213/670 1408/1210/663 1410/650/665 +f 1409/1211/664 1411/1212/666 1413/646/668 +f 1393/1196/653 771/701/323 1394/1197/654 +f 1394/1197/654 983/815/482 1395/1198/655 +f 1397/1200/657 979/811/480 1401/1204/659 +f 1397/1200/657 1395/1198/655 979/811/480 +f 1401/1204/659 975/807/478 1399/1202/658 +f 846/732/23 1417/1215/23 844/730/23 +f 843/729/392 1399/1202/658 978/810/479 +f 630/558/264 835/721/387 625/553/259 +f 625/553/259 843/729/392 630/558/264 +f 879/762/39 905/791/39 868/751/39 +f 1444/1242/494 1426/1224/494 1431/1229/494 +f 1432/1230/494 1194/1015/494 1433/1231/494 +f 1542/1334/699 1434/1232/675 1436/1234/677 +f 1542/1334/699 1436/1234/677 1438/1236/679 +f 1543/1335/678 1439/1237/680 1441/1239/682 +f 640/567/266 1442/1240/683 1439/1237/680 +f 1434/1232/675 1184/1005/563 1435/1233/676 +f 1428/1226/494 1181/1002/494 1429/1227/494 +f 904/790/39 750/1243/39 899/784/39 +f 1544/1336/41 1445/1244/41 1447/1246/41 +f 1545/607/39 1451/835/39 1453/1026/39 +f 1448/1024/23 1450/1247/23 1455/1337/23 +f 61/3/18 63/5/18 1546/1338/18 +f 61/3/18 66/8/18 65/7/18 +f 66/8/18 61/3/18 1546/1338/18 +f 144/79/50 64/6/19 66/8/18 +o mag_pistol_0 +v -1.109136 1.854146 1.546994 +v -1.109136 6.483851 2.313159 +v -1.109136 1.746315 1.309461 +v 1.109136 6.483851 2.313159 +v 1.109136 6.193875 2.563060 +v 1.109136 1.854146 1.546994 +v 1.109136 1.746315 1.309461 +v -1.109136 6.193875 2.563060 +v -1.109136 7.455005 0.432839 +v -0.855096 7.454038 0.681170 +v -0.637953 7.455005 0.432839 +v -1.109136 7.447666 2.316916 +v -0.851242 7.447666 2.316916 +v -0.645065 7.456246 0.114418 +v -0.808240 7.456246 0.114418 +v -0.882817 -7.449296 -6.242331 +v -1.332151 -7.578506 -5.806304 +v -1.109136 -7.583717 -5.788713 +v -1.260158 -8.694220 -2.041335 +v -1.109136 -8.686133 -2.068619 +v -0.818644 -8.777006 -1.761972 +v -0.549908 -9.201518 -0.329462 +v 0.549908 -9.201518 -0.329462 +v 0.855096 7.454038 0.681170 +v 1.109136 7.455005 0.432839 +v 0.637953 7.455005 0.432839 +v 0.645065 7.456246 0.114418 +v 0.808240 7.456246 0.114418 +v -0.413784 6.208827 -0.016872 +v 0.413784 6.208827 -0.016872 +v 0.440888 6.323021 -0.358271 +v 0.851242 7.447666 2.316916 +v -0.791829 -7.487275 -6.114170 +v 0.791829 -7.487275 -6.114170 +v 0.882817 -7.449296 -6.242331 +v 1.109136 -7.583717 -5.788713 +v 1.332151 -7.578506 -5.806304 +v 1.109136 -8.686133 -2.068619 +v -0.527911 -9.865828 -0.558221 +v 0.527911 -9.865828 -0.558221 +v 0.549908 -9.201518 -0.329462 +v 0.527911 -9.865828 -0.558221 +v -0.527911 -9.865828 -0.558221 +v -1.263812 -9.320386 -2.284039 +v -0.889556 -7.991921 -6.487401 +v 0.889556 -7.991921 -6.487401 +v 1.326758 -8.130615 -6.048564 +v 1.263812 -9.320386 -2.284039 +v -1.326758 -8.130615 -6.048564 +v 1.260158 -8.694220 -2.041335 +v 0.818644 -8.777006 -1.761972 +v -0.440888 6.323021 -0.358271 +v 1.109136 7.447666 2.316916 +v -0.549908 -9.201518 -0.329462 +v -0.330292 5.643600 3.823889 +v 0.330292 5.643600 3.823889 +v -0.639183 4.693711 3.350439 +v -0.784649 4.758710 3.184808 +v -0.823423 6.188931 3.832170 +v -0.613250 5.916150 3.869261 +v 0.639183 4.693711 3.350439 +v 0.613250 5.916150 3.869261 +v -0.791829 -7.487275 -6.114170 +v -0.440888 6.323021 -0.358271 +v 0.791829 -7.487275 -6.114170 +v 1.109136 6.187973 4.078713 +v 1.109136 1.608211 2.157616 +v 1.109136 7.455005 0.432839 +v 1.109136 -7.583717 -5.788713 +v 1.109136 1.421237 1.150594 +v 1.109136 1.152737 1.225781 +v 0.613250 6.186937 4.344059 +v 0.613250 5.905007 4.230341 +v 0.807799 6.186931 4.345726 +v -0.367306 5.610397 4.110494 +v -0.804550 1.432484 2.382775 +v 0.367306 5.610397 4.110494 +v -0.613250 6.186937 4.344059 +v -0.807799 6.186931 4.345726 +v -0.613250 5.905007 4.230341 +v -0.818644 -8.777006 -1.761972 +v 0.818644 -8.777006 -1.761972 +v -0.775337 0.764493 2.107609 +v -1.109136 1.608211 2.157616 +v -1.109136 7.455005 0.432839 +v -1.109136 1.421237 1.150594 +v -1.109136 -7.583717 -5.788713 +v -1.109136 1.152737 1.225781 +v -0.629678 6.747400 -0.181056 +v 0.440888 6.323021 -0.358271 +v 0.629678 6.747400 -0.181056 +v -0.784480 5.973367 0.123958 +v -0.784649 4.758710 3.184808 +v 0.784480 5.973367 0.123958 +v 1.109136 7.447666 2.316916 +v 1.109136 -8.686133 -2.068619 +v 0.804550 1.432484 2.382775 +v 0.775337 0.764493 2.107609 +v -1.109136 0.828570 1.868721 +v -1.109136 -8.686133 -2.068619 +v -1.109136 6.187973 4.078713 +v -0.613250 6.189570 3.985306 +v -1.109136 6.193875 2.563060 +v -1.109136 6.187973 4.078713 +v -0.823423 6.188931 3.832170 +v -0.808240 7.456246 0.114418 +v -1.109136 7.447666 2.316916 +v -1.109136 6.483851 2.313159 +v -0.839998 6.483851 2.313159 +v -0.855295 6.193875 2.563060 +v -0.855096 7.454038 0.681170 +v -0.851242 7.447666 2.316916 +v -0.839998 6.483851 2.313159 +v -0.613250 5.916150 3.869261 +v -0.613250 5.905007 4.230341 +v -0.367306 5.610397 4.110494 +v -0.613250 6.189570 3.985306 +v -0.613250 6.186937 4.344059 +v -0.804550 1.432484 2.382775 +v -0.804550 1.432484 2.382775 +v -0.836434 1.761413 1.534160 +v -0.864811 1.209287 1.297543 +v -0.866598 1.383340 1.228519 +v -1.109136 1.608211 2.157616 +v -1.109136 1.854146 1.546994 +v -0.836434 1.761413 1.534160 +v -1.109136 1.746315 1.309461 +v -0.853872 1.693580 1.365606 +v -1.109136 1.421237 1.150594 +v -0.866598 1.383340 1.228519 +v -1.109136 1.152737 1.225781 +v -0.864811 1.209287 1.297543 +v -1.109136 0.828570 1.868721 +v -0.775337 0.764493 2.107609 +v -0.818644 -8.777006 -1.761972 +v -1.326758 -8.130615 -6.048564 +v -1.332151 -7.578506 -5.806304 +v -0.882817 -7.449296 -6.242331 +v -1.263812 -9.320386 -2.284039 +v -1.260158 -8.694220 -2.041335 +v -0.527911 -9.865828 -0.558221 +v -0.549908 -9.201518 -0.329462 +v -0.855295 6.193875 2.563060 +v -0.637953 7.455005 0.432839 +v -0.610240 6.670014 0.107511 +v -0.586664 6.044359 -0.058251 +v -0.413784 6.208827 -0.016872 +v -0.629678 6.747400 -0.181056 +v -0.645065 7.456246 0.114418 +v -0.610240 6.670014 0.107511 +v -0.784480 5.973367 0.123958 +v -0.637953 7.455005 0.432839 +v -0.413784 6.208827 -0.016872 +v -0.440888 6.323021 -0.358271 +v -0.807799 6.186931 4.345726 +v -0.613250 6.189570 3.985306 +v 0.586664 6.044359 -0.058251 +v 0.889556 -7.991921 -6.487401 +v -0.889556 -7.991921 -6.487401 +v 0.784480 5.973367 0.123958 +v 0.855096 7.454038 0.681170 +v 0.610240 6.670014 0.107511 +v 0.637953 7.455005 0.432839 +v 0.645065 7.456246 0.114418 +v 0.610240 6.670014 0.107511 +v 1.109136 6.187973 4.078713 +v 1.109136 6.193875 2.563060 +v 0.823423 6.188931 3.832170 +v 0.851242 7.447666 2.316916 +v 0.839998 6.483851 2.313159 +v 0.855295 6.193875 2.563060 +v 0.413784 6.208827 -0.016872 +v 0.440888 6.323021 -0.358271 +v 0.413784 6.208827 -0.016872 +v 0.629678 6.747400 -0.181056 +v 0.807799 6.186931 4.345726 +v 0.613250 6.189570 3.985306 +v 0.784649 4.758710 3.184808 +v 0.586664 6.044359 -0.058251 +v 0.613250 6.186937 4.344059 +v 0.613250 6.189570 3.985306 +v 0.823423 6.188931 3.832170 +v 0.808240 7.456246 0.114418 +v 1.109136 7.447666 2.316916 +v 0.851242 7.447666 2.316916 +v 0.839998 6.483851 2.313159 +v 1.109136 6.483851 2.313159 +v 0.855295 6.193875 2.563060 +v -0.330292 5.643600 3.823889 +v 0.367306 5.610397 4.110494 +v 0.613250 5.916150 3.869261 +v 0.330292 5.643600 3.823889 +v 0.613250 5.905007 4.230341 +v 0.613250 6.186937 4.344059 +v 0.807799 6.186931 4.345726 +v 0.804550 1.432484 2.382775 +v 0.804550 1.432484 2.382775 +v 0.775337 0.764493 2.107609 +v 0.864811 1.209287 1.297543 +v 0.866598 1.383340 1.228519 +v 0.853872 1.693580 1.365606 +v 0.836434 1.761413 1.534160 +v 1.109136 1.608211 2.157616 +v 0.804550 1.432484 2.382775 +v 0.836434 1.761413 1.534160 +v 1.109136 1.854146 1.546994 +v 0.853872 1.693580 1.365606 +v 1.109136 1.746315 1.309461 +v 0.866598 1.383340 1.228519 +v 1.109136 1.421237 1.150594 +v 0.864811 1.209287 1.297543 +v 1.109136 1.152737 1.225781 +v 0.775337 0.764493 2.107609 +v 1.109136 0.828570 1.868721 +v 0.775337 0.764493 2.107609 +v 0.818644 -8.777006 -1.761972 +v -0.613250 6.186937 4.344059 +v 1.326758 -8.130615 -6.048564 +v 0.882817 -7.449296 -6.242331 +v 1.332151 -7.578506 -5.806304 +v 1.260158 -8.694220 -2.041335 +v 1.263812 -9.320386 -2.284039 +v 0.549908 -9.201518 -0.329462 +v 0.637953 7.455005 0.432839 +v 0.610240 6.670014 0.107511 +v 0.586664 6.044359 -0.058251 +v -0.586664 6.044359 -0.058251 +v -0.639183 4.693711 3.350439 +v 0.639183 4.693711 3.350439 +v 0.784649 4.758710 3.184808 +v -1.109136 7.447666 2.316916 +v -0.851242 7.447666 2.316916 +v -0.807799 6.186931 4.345726 +v -0.775337 0.764493 2.107609 +v -0.853872 1.693580 1.365606 +v -0.804550 1.432484 2.382775 +v -0.775337 0.764493 2.107609 +v 0.613250 6.189570 3.985306 +v 1.109136 0.828570 1.868721 +v 0.527911 -9.865828 -0.558221 +v 0.645065 7.456246 0.114418 +v -0.645065 7.456246 0.114418 +vn -1.0000 -0.0000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 1.0000 0.0039 +vn -0.0000 0.9588 0.2841 +vn -0.0000 0.9484 0.3172 +vn -0.0000 -0.3256 0.9455 +vn -0.0000 -0.9535 -0.3014 +vn 0.1103 0.4144 -0.9034 +vn -0.0735 0.4256 -0.9019 +vn 0.3275 0.3966 -0.8576 +vn 0.9708 0.1320 -0.2001 +vn 0.7758 0.2586 -0.5755 +vn 0.4477 0.3447 -0.8251 +vn -0.3560 0.3788 -0.8543 +vn -0.5482 0.3301 -0.7685 +vn -0.1944 0.3772 -0.9055 +vn -0.0010 0.3847 -0.9230 +vn 0.1540 0.3797 -0.9122 +vn 0.8357 -0.2111 0.5070 +vn 0.9636 -0.1035 0.2467 +vn 0.9886 0.0575 -0.1389 +vn 0.9535 0.1154 -0.2784 +vn -0.0080 -0.3741 0.9274 +vn 0.0012 -0.3791 0.9254 +vn 0.2219 -0.3696 0.9023 +vn -0.0036 -0.3819 0.9242 +vn -0.1726 -0.3764 0.9102 +vn 0.0022 -0.3819 0.9242 +vn 0.0080 -0.3741 0.9274 +vn -0.2219 -0.3696 0.9023 +vn -0.0011 -0.3791 0.9254 +vn -0.4729 -0.3319 0.8162 +vn 0.3572 -0.3516 0.8653 +vn -0.1539 -0.3721 0.9154 +vn -0.9636 -0.1035 0.2467 +vn -0.9886 0.0575 -0.1389 +vn -0.9535 0.1154 -0.2784 +vn 0.0010 0.3847 -0.9230 +vn -0.0000 0.9310 0.3651 +vn -0.0000 0.9300 0.3676 +vn -0.0000 0.9302 0.3669 +vn 0.9710 -0.0914 0.2209 +vn 0.2322 -0.3719 0.8988 +vn 0.1539 -0.3734 0.9148 +vn -0.8442 -0.2022 0.4964 +vn -0.9710 -0.0914 0.2209 +vn -0.8357 -0.2111 0.5070 +vn 0.5563 0.3246 -0.7649 +vn 0.0001 0.9608 0.2772 +vn -0.0015 1.0000 0.0040 +vn -0.0014 1.0000 0.0023 +vn -0.5115 0.3297 -0.7935 +vn -0.0000 -0.0039 1.0000 +vn 0.0001 0.4597 0.8881 +vn -0.0000 0.2278 0.9737 +vn -0.0000 0.8351 0.5501 +vn 0.9387 -0.0984 0.3305 +vn 0.9999 0.0117 -0.0023 +vn 0.9998 0.0092 0.0149 +vn 0.9323 0.3580 0.0512 +vn 0.9411 0.3379 0.0104 +vn 0.5309 0.8401 0.1116 +vn -0.9980 -0.0211 0.0598 +vn -0.9970 0.0146 0.0763 +vn -0.9979 -0.0076 0.0647 +vn -0.9959 0.0068 0.0899 +vn -0.2927 -0.8910 -0.3470 +vn -0.3083 -0.9391 0.1520 +vn -0.3077 -0.9451 -0.1103 +vn -0.3087 -0.5872 0.7483 +vn -0.2906 -0.7546 0.5883 +vn -0.3189 0.0702 0.9452 +vn -0.3014 -0.1559 0.9407 +vn -0.2877 0.6969 0.6569 +vn -0.3131 0.5002 0.8073 +vn -0.1491 0.8829 0.4452 +vn -0.2405 0.8515 0.4659 +vn -0.9295 0.1497 -0.3372 +vn -0.9281 0.1420 -0.3443 +vn -0.3883 0.3779 -0.8405 +vn -0.9660 -0.0947 0.2406 +vn -0.9906 -0.0493 0.1279 +vn -0.9257 -0.1502 0.3472 +vn -0.9273 -0.1397 0.3472 +vn 0.9997 0.0240 0.0100 +vn 0.9368 -0.1053 0.3338 +vn 0.8731 -0.0619 0.4836 +vn 0.2534 -0.2345 0.9385 +vn 0.0038 -0.2478 0.9688 +vn 0.9613 0.2751 0.0139 +vn 0.9983 0.0446 -0.0387 +vn 0.8731 -0.0618 0.4836 +vn 0.9557 -0.0568 0.2888 +vn 0.9367 -0.1053 0.3338 +vn 0.9220 0.3843 0.0481 +vn 0.9207 0.3862 0.0561 +vn -0.0011 1.0000 0.0067 +vn -0.0020 1.0000 0.0042 +vn -0.1880 -0.2385 0.9528 +vn 0.2591 0.4017 -0.8784 +vn -0.3925 0.3826 -0.8364 +vn -0.9557 -0.0568 0.2888 +vn -0.9387 -0.0984 0.3305 +vn -0.8731 -0.0618 0.4836 +vn -0.9367 -0.1053 0.3338 +vn -0.9983 0.0446 -0.0387 +vn 0.0015 1.0000 0.0040 +vn -0.0000 0.9608 0.2772 +vn 0.0014 1.0000 0.0023 +vn -0.9999 0.0117 -0.0023 +vn -0.9998 0.0092 0.0149 +vn -0.9997 0.0240 0.0100 +vn -0.0056 -0.2495 0.9684 +vn -0.9207 0.3862 0.0561 +vn -0.9220 0.3843 0.0482 +vn -0.9613 0.2751 0.0139 +vn 0.0011 1.0000 0.0067 +vn 0.0020 1.0000 0.0042 +vn -0.9140 0.1852 -0.3611 +vn -0.0000 1.0000 0.0073 +vn -0.5563 0.3246 -0.7649 +vn -0.7857 0.2615 -0.5606 +vn 0.5115 0.3297 -0.7935 +vn -0.0000 0.4597 0.8881 +vn 0.2491 0.9578 0.1431 +vn -0.4021 0.9083 0.1151 +vn -0.9323 0.3580 0.0512 +vn -0.3771 0.9132 0.1545 +vn -0.9411 0.3379 0.0104 +vn 0.9980 -0.0211 0.0598 +vn 0.9949 -0.0724 0.0701 +vn 0.9979 -0.0076 0.0647 +vn 0.9959 0.0068 0.0899 +vn 0.9944 -0.0057 0.1052 +vn 0.9970 0.0146 0.0763 +vn 0.2927 -0.8910 -0.3470 +vn 0.2692 -0.9013 -0.3393 +vn 0.3091 -0.9446 -0.1104 +vn 0.3083 -0.9391 0.1520 +vn 0.2906 -0.7546 0.5883 +vn 0.3087 -0.5872 0.7483 +vn 0.3014 -0.1559 0.9407 +vn 0.3189 0.0702 0.9452 +vn 0.3131 0.5002 0.8073 +vn 0.2877 0.6969 0.6569 +vn 0.2405 0.8515 0.4659 +vn 0.8442 -0.2022 0.4964 +vn 0.1539 -0.3733 0.9148 +vn 0.9294 0.1498 -0.3372 +vn 0.5126 0.3515 -0.7834 +vn 0.9281 0.1420 -0.3443 +vn 0.9906 -0.0493 0.1279 +vn 0.9660 -0.0947 0.2406 +vn 0.9273 -0.1397 0.3472 +vn -0.9368 -0.1053 0.3338 +vn -0.8731 -0.0619 0.4836 +vn -0.0000 0.9318 0.3630 +vn -0.0000 0.9309 0.3653 +vn -0.0000 0.9302 0.3671 +vn -0.9949 -0.0724 0.0701 +vn -0.9944 -0.0057 0.1052 +vn -0.2692 -0.9013 -0.3393 +vn -0.1539 -0.3720 0.9154 +vn 0.1491 0.8829 0.4452 +vn 0.9257 -0.1502 0.3472 +vn -0.0000 0.3847 -0.9230 +vt 0.318637 0.836460 +vt 0.322686 0.835525 +vt 0.318469 0.836302 +vt 0.322662 0.829447 +vt 0.322506 0.829146 +vt 0.318606 0.828545 +vt 0.318439 0.828704 +vt 0.322533 0.835828 +vt 0.335540 0.815841 +vt 0.335689 0.816068 +vt 0.335880 0.815923 +vt 0.335363 0.817407 +vt 0.335570 0.817415 +vt 0.335928 0.815727 +vt 0.335827 0.815658 +vt 0.338110 0.834998 +vt 0.338521 0.834581 +vt 0.338361 0.834565 +vt 0.338450 0.830987 +vt 0.338327 0.831013 +vt 0.338045 0.830721 +vt 0.337797 0.829353 +vt 0.336791 0.829355 +vt 0.338509 0.816056 +vt 0.338639 0.815806 +vt 0.338293 0.815922 +vt 0.338229 0.815719 +vt 0.338328 0.815642 +vt 0.336756 0.815704 +vt 0.337372 0.815710 +vt 0.337407 0.815436 +vt 0.338796 0.817419 +vt 0.338027 0.834876 +vt 0.336577 0.834878 +vt 0.336494 0.835000 +vt 0.336242 0.834568 +vt 0.336082 0.834585 +vt 0.336266 0.831016 +vt 0.351326 0.453820 +vt 0.352262 0.453765 +vt 0.352318 0.454386 +vt 0.365837 0.453882 +vt 0.365836 0.454819 +vt 0.367442 0.455473 +vt 0.371353 0.455145 +vt 0.371355 0.453566 +vt 0.370947 0.453178 +vt 0.367444 0.453230 +vt 0.370945 0.455532 +vt 0.336143 0.830990 +vt 0.336546 0.830723 +vt 0.336722 0.815432 +vt 0.339004 0.817387 +vt 0.351343 0.454443 +vt 0.336608 0.810165 +vt 0.336600 0.809579 +vt 0.335671 0.810452 +vt 0.335670 0.810656 +vt 0.337063 0.810641 +vt 0.336849 0.810420 +vt 0.335654 0.809318 +vt 0.336833 0.809316 +vt 0.308406 0.833228 +vt 0.321347 0.832873 +vt 0.308400 0.831858 +vt 0.323003 0.827899 +vt 0.318606 0.827962 +vt 0.322837 0.831313 +vt 0.308428 0.831448 +vt 0.318119 0.828727 +vt 0.317924 0.828577 +vt 0.334726 0.805815 +vt 0.334724 0.806084 +vt 0.334898 0.805815 +vt 0.333853 0.806363 +vt 0.333448 0.810373 +vt 0.334505 0.806366 +vt 0.333637 0.805810 +vt 0.333465 0.805809 +vt 0.333636 0.806080 +vt 0.333393 0.820149 +vt 0.334845 0.820155 +vt 0.333471 0.811014 +vt 0.318642 0.837043 +vt 0.322847 0.833658 +vt 0.318149 0.836281 +vt 0.308437 0.833638 +vt 0.317955 0.836433 +vt 0.321830 0.833071 +vt 0.321344 0.832110 +vt 0.321826 0.831909 +vt 0.338990 0.829527 +vt 0.338986 0.832448 +vt 0.340382 0.829528 +vt 0.323455 0.829763 +vt 0.308753 0.828027 +vt 0.334875 0.810379 +vt 0.334847 0.811020 +vt 0.317906 0.837069 +vt 0.308789 0.837056 +vt 0.323039 0.837070 +vt 0.337112 0.810416 +vt 0.335399 0.818676 +vt 0.335644 0.820232 +vt 0.335864 0.819933 +vt 0.322740 0.833285 +vt 0.335368 0.818297 +vt 0.335604 0.818285 +vt 0.335628 0.818648 +vt 0.336965 0.813654 +vt 0.337545 0.812323 +vt 0.336761 0.811981 +vt 0.336450 0.819974 +vt 0.336387 0.820399 +vt 0.336865 0.820333 +vt 0.336109 0.820051 +vt 0.336132 0.820332 +vt 0.318573 0.837406 +vt 0.297273 0.862936 +vt 0.296468 0.862987 +vt 0.296450 0.863484 +vt 0.296375 0.863361 +vt 0.296982 0.862655 +vt 0.296349 0.862774 +vt 0.296171 0.863007 +vt 0.296386 0.863086 +vt 0.296139 0.863393 +vt 0.296301 0.863656 +vt 0.296981 0.863857 +vt 0.297271 0.863612 +vt 0.308818 0.837437 +vt 0.360171 0.453244 +vt 0.360165 0.453779 +vt 0.359601 0.453718 +vt 0.363650 0.453662 +vt 0.363616 0.454257 +vt 0.365371 0.453864 +vt 0.365306 0.454484 +vt 0.336615 0.811674 +vt 0.336865 0.813929 +vt 0.336111 0.813900 +vt 0.335542 0.813822 +vt 0.335664 0.813999 +vt 0.336339 0.815514 +vt 0.336384 0.815738 +vt 0.335562 0.813576 +vt 0.335975 0.820462 +vt 0.335363 0.814848 +vt 0.358032 0.453178 +vt 0.359611 0.453190 +vt 0.335454 0.806199 +vt 0.336854 0.806081 +vt 0.335993 0.805859 +vt 0.337754 0.815749 +vt 0.338970 0.820225 +vt 0.339108 0.818663 +vt 0.338736 0.819939 +vt 0.337473 0.807394 +vt 0.336699 0.807758 +vt 0.336562 0.808069 +vt 0.335538 0.814723 +vt 0.337796 0.815517 +vt 0.338647 0.820469 +vt 0.338501 0.820063 +vt 0.335647 0.809115 +vt 0.335427 0.805954 +vt 0.338482 0.820342 +vt 0.337096 0.809313 +vt 0.337040 0.809089 +vt 0.322734 0.831687 +vt 0.338866 0.818294 +vt 0.339103 0.818281 +vt 0.338879 0.818655 +vt 0.336917 0.819991 +vt 0.337747 0.820341 +vt 0.338164 0.819987 +vt 0.337700 0.819998 +vt 0.338225 0.820410 +vt 0.323089 0.827553 +vt 0.318534 0.827599 +vt 0.299359 0.862966 +vt 0.299357 0.863640 +vt 0.300188 0.863503 +vt 0.300265 0.863381 +vt 0.300257 0.863103 +vt 0.300174 0.863004 +vt 0.299646 0.862698 +vt 0.300297 0.862779 +vt 0.300477 0.863024 +vt 0.300502 0.863417 +vt 0.300332 0.863678 +vt 0.317870 0.827942 +vt 0.317895 0.827574 +vt 0.308779 0.827646 +vt 0.357471 0.453223 +vt 0.358034 0.453706 +vt 0.357469 0.453758 +vt 0.354011 0.454184 +vt 0.353986 0.453589 +vt 0.336746 0.805809 +vt 0.335925 0.814967 +vt 0.340207 0.829355 +vt 0.339165 0.829353 +vt 0.339115 0.832606 +vt 0.340249 0.832608 +vt 0.340379 0.832450 +vt 0.323476 0.835203 +vt 0.323128 0.837416 +vt 0.317935 0.837436 +vt 0.299652 0.863857 +vt 0.322736 0.831880 +vt 0.322741 0.833092 +s 0 +f 1547/1339/700 1548/1340/700 1549/1341/700 +f 1550/1342/701 1551/1343/701 1552/1344/701 +f 1550/1342/701 1552/1344/701 1553/1345/701 +f 1547/1339/700 1554/1346/700 1548/1340/700 +f 1555/1347/702 1556/1348/702 1557/1349/702 +f 1555/1347/702 1558/1350/702 1559/1351/702 +f 1557/1349/702 1560/1352/702 1561/1353/702 +f 1562/1354/703 1563/1355/703 1564/1356/703 +f 1563/1355/703 1565/1357/703 1566/1358/703 +f 1561/1353/702 1555/1347/702 1557/1349/702 +f 1567/1359/703 1568/1360/703 1569/1361/703 +f 1570/1362/702 1571/1363/702 1572/1364/702 +f 1573/1365/702 1572/1364/702 1574/1366/702 +f 1575/1367/704 1576/1368/704 1577/1369/704 +f 1571/1363/702 1570/1362/702 1578/1370/702 +f 1562/1354/703 1579/1371/703 1580/1372/703 +f 1581/1373/703 1580/1372/703 1582/1374/703 +f 1583/1375/703 1582/1374/703 1584/1376/703 +f 1585/1377/705 1586/1378/705 1587/1379/705 +f 1571/1363/702 1574/1366/702 1572/1364/702 +f 1588/1380/706 1589/1381/706 1590/1382/706 +f 1591/1383/706 1592/1384/706 1593/1385/706 +f 1594/1386/706 1590/1382/706 1595/1387/706 +f 1596/1388/703 1584/1376/703 1597/1389/703 +f 1556/1348/702 1555/1347/702 1559/1351/702 +f 1579/1371/703 1562/1354/703 1564/1356/703 +f 1564/1356/703 1563/1355/703 1566/1358/703 +f 1597/1389/703 1567/1359/703 1569/1361/703 +f 1598/1390/704 1575/1367/704 1577/1369/704 +f 1599/1391/702 1571/1363/702 1578/1370/702 +f 1581/1373/703 1562/1354/703 1580/1372/703 +f 1583/1375/703 1581/1373/703 1582/1374/703 +f 1596/1388/703 1583/1375/703 1584/1376/703 +f 1600/1392/705 1585/1377/705 1587/1379/705 +f 1594/1386/706 1588/1380/706 1590/1382/706 +f 1595/1387/706 1591/1383/706 1593/1385/706 +f 1593/1385/706 1594/1386/706 1595/1387/706 +f 1569/1361/703 1596/1388/703 1597/1389/703 +f 1567/1359/703 1566/1358/703 1568/1360/703 +s 1 +f 1601/1393/707 1602/1394/708 1603/1395/709 +f 1603/1395/709 1604/1396/710 1605/1397/711 +f 1603/1395/709 1606/1398/712 1601/1393/707 +f 1602/1394/708 1607/1399/713 1603/1395/709 +f 1602/1394/708 1608/1400/714 1607/1399/713 +f 1609/1401/715 1610/1402/716 1611/1403/717 +f 1612/1404/718 1613/1405/719 1551/1343/701 +f 1614/1406/720 1550/1342/701 1553/1345/701 +f 1615/1407/721 1614/1406/720 1616/1408/701 +f 1616/1408/701 1617/1409/701 1615/1407/721 +f 1618/1410/722 1619/1411/723 1620/1412/724 +f 1621/1413/725 1622/1414/726 1623/1415/727 +f 1624/1416/728 1625/1417/729 1626/1418/730 +f 1627/1419/731 1628/1420/732 1629/1421/733 +f 1547/1339/700 1630/1422/734 1554/1346/700 +f 1549/1341/700 1631/1423/735 1632/1424/700 +f 1632/1424/700 1633/1425/736 1634/1426/700 +f 1609/1401/715 1635/1427/716 1610/1402/716 +f 1610/1402/716 1636/1428/737 1611/1403/717 +f 1611/1403/717 1636/1428/737 1637/1429/737 +f 1638/1430/738 1639/1431/739 1640/1432/740 +f 1614/1406/720 1641/1433/701 1550/1342/701 +f 1613/1405/719 1552/1344/701 1551/1343/701 +f 1614/1406/720 1553/1345/701 1616/1408/701 +f 1617/1409/701 1642/1434/741 1615/1407/721 +f 1619/1411/723 1643/1435/742 1620/1412/724 +f 1619/1411/723 1623/1415/727 1643/1435/742 +f 1622/1414/726 1643/1435/742 1623/1415/727 +f 1621/1413/725 1626/1418/730 1622/1414/726 +f 1625/1417/729 1622/1414/726 1626/1418/730 +f 1628/1420/732 1644/1436/743 1629/1421/733 +f 1645/1437/744 1634/1426/700 1646/1438/745 +f 1548/1340/700 1631/1423/735 1549/1341/700 +f 1630/1422/734 1647/1439/746 1554/1346/700 +f 1631/1423/735 1633/1425/736 1632/1424/700 +f 1633/1425/736 1646/1438/745 1634/1426/700 +f 1605/1397/711 1648/1440/747 1606/1398/712 +f 1649/1441/748 1650/1442/749 1651/1443/750 +f 1652/1444/751 1609/1401/715 1633/1425/736 +f 1653/1350/752 1654/1445/753 1655/1446/754 +f 1654/1445/753 1649/1441/748 1656/1447/755 +f 1657/1448/756 1658/1449/757 1659/1450/758 +f 1660/1451/759 1661/1452/760 1662/1453/761 +f 1660/1451/759 1663/1454/701 1664/1455/701 +f 1647/1439/746 1630/1422/734 1665/1456/726 +f 1666/1457/762 1667/1458/763 1668/1459/764 +f 1669/1460/765 1668/1459/764 1667/1458/763 +f 1670/1461/766 1671/1462/767 1672/1458/768 +f 1671/1462/767 1673/1463/769 1674/1464/770 +f 1673/1463/769 1675/1465/771 1676/1460/772 +f 1675/1465/771 1677/1466/773 1678/1459/774 +f 1677/1466/773 1679/1467/775 1680/1468/776 +f 1645/1437/744 1646/1438/745 1681/1469/731 +f 1682/1470/777 1683/1471/778 1684/1472/779 +f 1682/1470/777 1685/1473/780 1686/1474/781 +f 1685/1473/780 1687/1475/782 1688/1476/783 +f 1604/1396/710 1689/1477/784 1605/1397/711 +f 1690/1478/785 1657/1448/756 1691/1479/786 +f 1691/1479/786 1692/1480/787 1693/1481/788 +f 1694/1482/789 1695/1352/790 1696/1483/791 +f 1657/1448/756 1697/1484/792 1691/1479/786 +f 1695/1352/790 1698/1349/793 1696/1483/791 +f 1697/1484/792 1659/1450/758 1689/1477/784 +f 1699/1367/794 1700/1390/795 1694/1482/789 +f 1650/1442/749 1701/1485/796 1702/1454/797 +f 1697/1484/792 1657/1448/756 1659/1450/758 +f 1656/1447/755 1649/1441/748 1651/1443/750 +f 1604/1396/710 1697/1484/792 1689/1477/784 +f 1691/1479/786 1697/1484/792 1692/1480/787 +f 1692/1480/787 1703/1486/798 1693/1481/788 +f 1696/1483/791 1699/1367/794 1694/1482/789 +f 1704/1487/799 1705/1488/800 1684/1472/779 +f 1706/1489/801 1707/1490/802 1708/1491/803 +f 1709/1364/804 1710/1365/805 1711/1492/803 +f 1712/1493/806 1713/1494/807 1714/1495/808 +f 1715/1496/809 1707/1490/802 1716/1497/810 +f 1716/1497/810 1706/1489/801 1717/1498/811 +f 1693/1481/788 1703/1486/798 1718/1499/812 +f 1719/1369/813 1720/1368/814 1721/1500/815 +f 1722/1501/816 1712/1493/806 1723/1502/817 +f 1707/1490/802 1706/1489/801 1716/1497/810 +f 1706/1489/801 1724/1503/818 1717/1498/811 +f 1706/1489/801 1708/1491/803 1725/1504/798 +f 1720/1368/814 1711/1492/803 1721/1500/815 +f 1712/1493/806 1714/1495/808 1723/1502/817 +f 1722/1501/816 1723/1502/817 1726/1505/819 +f 1608/1400/714 1727/1506/820 1728/1507/821 +f 1651/1443/750 1650/1442/749 1702/1454/797 +f 1729/1508/822 1614/1406/720 1615/1407/721 +f 1730/1391/752 1731/1370/752 1732/1509/754 +f 1733/1510/823 1732/1509/754 1734/1511/755 +f 1735/1512/824 1662/1453/761 1736/1513/825 +f 1737/1514/826 1738/1515/827 1736/1513/825 +f 1737/1514/826 1739/1516/828 1740/1505/700 +f 1612/1404/718 1741/1517/724 1742/1518/742 +f 1743/1519/829 1744/1520/830 1745/1521/831 +f 1746/1522/832 1747/1523/833 1748/1524/834 +f 1749/1525/835 1750/1519/836 1751/1524/837 +f 1752/1526/838 1751/1524/837 1753/1523/839 +f 1754/1527/840 1753/1523/839 1755/1522/841 +f 1756/1528/842 1755/1522/841 1757/1521/843 +f 1758/1529/844 1757/1521/843 1759/1520/845 +f 1760/1530/846 1761/1531/847 1762/1532/732 +f 1702/1454/797 1701/1485/796 1763/1455/819 +f 1764/1533/848 1704/1487/799 1765/1534/849 +f 1764/1533/848 1766/1535/850 1767/1536/851 +f 1768/1537/852 1767/1536/851 1769/1379/853 +f 1717/1498/811 1724/1503/818 1728/1507/821 +f 1707/1490/802 1770/1538/854 1708/1491/803 +f 1703/1486/798 1771/1539/855 1718/1499/812 +f 1710/1365/805 1721/1500/815 1711/1492/803 +f 1713/1494/807 1734/1511/755 1714/1495/808 +f 1566/1358/703 1565/1357/703 1568/1360/703 +f 1629/1421/733 1644/1436/743 1622/1414/726 +f 1772/1540/856 1773/1541/856 1638/1430/738 +f 1774/1542/857 1775/1543/857 1776/1544/858 +f 1639/1431/739 1776/1544/858 1640/1432/740 +f 1728/1507/821 1724/1503/818 1608/1400/714 +f 1617/1409/701 1760/1530/846 1642/1434/741 +f 1644/1436/743 1643/1435/742 1622/1414/726 +f 1548/1340/700 1777/1545/700 1631/1423/735 +f 1724/1503/818 1607/1399/713 1608/1400/714 +f 1606/1398/712 1603/1395/709 1605/1397/711 +f 1631/1423/735 1652/1444/751 1633/1425/736 +f 1778/1351/752 1653/1350/752 1655/1446/754 +f 1655/1446/754 1654/1445/753 1656/1447/755 +f 1735/1512/824 1660/1451/759 1662/1453/761 +f 1661/1452/760 1660/1451/759 1664/1455/701 +f 1779/1546/729 1647/1439/746 1665/1456/726 +f 1780/1468/859 1666/1457/762 1668/1459/764 +f 1781/1464/860 1669/1460/765 1667/1458/763 +f 1782/1457/861 1670/1461/766 1672/1458/768 +f 1672/1458/768 1671/1462/767 1674/1464/770 +f 1674/1464/770 1673/1463/769 1676/1460/772 +f 1676/1460/772 1675/1465/771 1678/1459/774 +f 1678/1459/774 1677/1466/773 1680/1468/776 +f 1783/1547/862 1645/1437/744 1681/1469/731 +f 1705/1488/800 1682/1470/777 1684/1472/779 +f 1683/1471/778 1682/1470/777 1686/1474/781 +f 1686/1474/781 1685/1473/780 1688/1476/783 +f 1765/1534/849 1704/1487/799 1684/1472/779 +f 1611/1403/717 1729/1508/822 1615/1407/721 +f 1733/1510/823 1730/1391/752 1732/1509/754 +f 1713/1494/807 1733/1510/823 1734/1511/755 +f 1738/1515/827 1735/1512/824 1736/1513/825 +f 1739/1516/828 1737/1514/826 1736/1513/825 +f 1784/1502/700 1737/1514/826 1740/1505/700 +f 1613/1405/719 1612/1404/718 1742/1518/742 +f 1748/1524/834 1743/1519/829 1745/1521/831 +f 1745/1521/831 1746/1522/832 1748/1524/834 +f 1752/1526/838 1749/1525/835 1751/1524/837 +f 1754/1527/840 1752/1526/838 1753/1523/839 +f 1756/1528/842 1754/1527/840 1755/1522/841 +f 1758/1529/844 1756/1528/842 1757/1521/843 +f 1785/1548/863 1758/1529/844 1759/1520/845 +f 1642/1434/741 1760/1530/846 1762/1532/732 +f 1766/1535/850 1764/1533/848 1765/1534/849 +f 1768/1537/852 1764/1533/848 1767/1536/851 +f 1786/1378/864 1768/1537/852 1769/1379/853 +f 1640/1432/740 1772/1540/856 1638/1430/738 +f 1639/1431/739 1774/1542/857 1776/1544/858 +f 1611/1403/717 1637/1429/737 1787/1549/865 +f 1611/1403/717 1787/1549/865 1729/1508/822 +f 1609/1401/715 1652/1444/751 1788/1550/865 +f 1609/1401/715 1788/1550/865 1635/1427/716 +o slide_pistol_0 +v 1.014517 11.207904 -2.625851 +v 1.014517 11.207904 -2.300617 +v 1.014517 10.723700 -1.978916 +v -1.014517 10.157009 -2.625851 +v -1.014517 11.207904 -2.625851 +v -0.335502 10.613042 -2.625851 +v -1.526129 9.326169 3.920664 +v -1.526129 9.326169 3.413726 +v -1.526129 8.752565 3.413726 +v -1.705540 8.752565 3.920664 +v -1.705540 7.184847 3.920666 +v -1.705540 8.402290 6.532843 +v -1.526129 8.752565 3.920664 +v -1.705540 8.752565 3.920664 +v -1.705540 8.752759 6.288157 +v -1.526129 8.752565 3.920664 +v -1.524936 8.752759 6.288157 +v 1.705540 7.247200 -1.820038 +v 1.526129 7.247200 -1.820038 +v 1.526043 7.614016 -2.276283 +v 1.321148 7.184847 12.021433 +v -1.171832 7.184847 11.897295 +v 1.156401 7.184847 11.897295 +v 1.526043 7.614016 -2.276283 +v 1.526129 7.247200 -1.820038 +v 1.526043 7.184847 -2.765843 +v 1.321148 7.184847 11.214214 +v -1.705540 7.184847 2.105287 +v -1.705540 8.757562 2.105287 +v -1.705540 8.927025 1.935822 +v 1.526129 7.247200 -1.820038 +v 1.526129 7.184847 -1.313099 +v 1.526043 7.184847 -2.765843 +v -1.524936 9.326169 6.288157 +v -1.326382 10.025589 6.288155 +v -1.705540 9.660696 6.288155 +v -1.705540 9.326169 6.288157 +v 0.813732 7.184847 16.849926 +v 1.705540 7.184847 12.021433 +v 1.705540 7.184847 18.319260 +v 1.326382 7.184847 19.492821 +v -1.705540 7.967402 7.346314 +v -1.705540 8.055083 6.892087 +v 1.705540 7.637858 11.214214 +v 1.705540 7.184847 11.214214 +v 1.705540 7.967402 7.346314 +v -1.705540 7.184847 3.920666 +v -1.526129 7.184847 3.920666 +v -1.171832 7.184845 5.830760 +v 1.705540 7.184847 3.920666 +v 1.705540 7.184847 11.214214 +v 1.156401 7.184845 5.830760 +v 1.705540 7.184847 -2.765843 +v 1.705540 7.184845 -4.842924 +v 1.705540 8.782389 -4.842924 +v 1.705540 7.614016 -2.276283 +v 1.231429 7.184845 -4.842924 +v 1.526129 7.184847 -1.313099 +v 1.231024 7.184847 1.879622 +v -1.526129 7.184847 2.105287 +v -1.526129 7.184847 2.612226 +v -1.526129 8.752565 2.612224 +v 1.705540 7.184847 3.920666 +v 1.321148 7.184847 11.214214 +v 1.705540 7.184847 11.214214 +v 1.705540 7.637858 11.214214 +v -0.813732 7.184847 16.849926 +v 1.526129 7.184847 3.920666 +v 0.000000 9.832475 21.944122 +v 0.947015 10.390599 21.944122 +v -0.947015 10.390599 21.944122 +v 1.705540 8.055083 6.892087 +v -1.171832 7.184847 11.897295 +v -1.171832 8.402287 11.660702 +v -1.171832 8.578353 11.777044 +v 0.167762 11.355712 20.190464 +v -0.167762 11.355712 20.190464 +v -0.167762 10.787160 20.190464 +v 0.814306 10.492235 20.190464 +v 0.814306 10.492235 19.285318 +v 0.359371 10.492235 19.285318 +v 0.893030 10.492235 20.116810 +v 0.893030 10.492235 19.372772 +v -1.526129 7.184847 3.413727 +v 1.526129 7.184847 3.413727 +v -0.393269 7.184847 1.879622 +v 0.393269 7.184847 1.879622 +v -1.333642 8.402290 6.532843 +v -1.333642 8.055083 6.892087 +v -1.333642 7.967402 7.346314 +v -1.016029 10.321228 11.777044 +v -0.947015 10.390597 11.777044 +v -0.654714 10.019367 11.777044 +v -0.813732 7.184847 16.849926 +v 0.813732 7.184847 16.849926 +v 0.813732 5.420444 16.849926 +v 0.471660 5.087640 16.849926 +v -0.471660 5.087640 16.849926 +v -0.813732 5.420444 16.849926 +v -1.333642 7.184847 21.944122 +v -1.333642 7.184847 19.492821 +v -0.813732 7.184847 21.944122 +v -1.526129 7.184847 0.796844 +v -1.705540 7.184847 0.796844 +v -1.705540 7.184847 -0.004658 +v -0.728164 8.051682 1.879622 +v -0.393269 9.417000 1.879622 +v -0.393269 7.184847 1.879622 +v -0.728164 7.586768 1.879622 +v -1.238688 7.184847 1.879622 +v 1.231024 9.417000 1.879622 +v 1.231024 8.051682 1.879622 +v 0.728164 8.051682 1.879622 +v 1.526129 7.184847 2.105287 +v 1.526129 7.184847 2.612226 +v 1.705540 7.184847 -1.313099 +v 1.705540 7.184847 -0.511597 +v 1.526129 7.184847 -0.511597 +v 1.705540 7.184847 2.612226 +v 1.705540 7.184847 3.413727 +v 1.526129 7.184847 3.920666 +v 1.526129 9.833411 3.920664 +v 1.705540 9.660696 3.920664 +v 0.408756 10.107763 -3.259712 +v -0.409408 10.107763 -3.259712 +v -0.409408 10.390597 -3.172267 +v 1.705540 9.660696 3.413726 +v 1.526129 9.833411 3.413726 +v 1.526129 7.184847 3.413727 +v -0.392768 7.184845 -4.842924 +v 0.393269 9.417000 1.879622 +v 0.393269 7.184847 1.879622 +v 0.392768 7.184845 -4.842924 +v 1.705540 7.184847 2.612226 +v 1.526129 7.184847 2.612226 +v 1.526129 9.833411 2.612224 +v 1.526129 7.184847 2.105287 +v 1.705540 7.184847 2.105287 +v 1.705540 9.660696 2.105287 +v 0.392768 8.782389 -4.842924 +v 0.392768 9.417337 -4.333549 +v 1.231024 7.184847 1.879622 +v 1.231024 7.586768 1.879622 +v 1.231429 7.587345 -4.842924 +v 0.408756 10.390597 -3.531360 +v 0.408756 10.107763 -3.763228 +v 0.408756 10.107763 -3.259712 +v 1.526129 9.833411 1.303783 +v 1.705540 9.660696 1.303783 +v 1.705540 7.184847 1.303783 +v 0.728571 7.587345 -4.842924 +v 0.728571 8.051105 -4.842924 +v 1.231429 8.051105 -4.842924 +v 1.705540 9.660696 0.796844 +v 1.526129 9.833411 0.796844 +v 1.526129 7.184847 0.796844 +v 0.813732 7.184847 21.944122 +v 1.231024 9.417000 1.879622 +v 0.393269 9.417000 1.879622 +v 0.392768 9.417337 -4.333549 +v 1.231024 7.586768 1.879622 +v 0.728164 7.586768 1.879622 +v 0.728571 7.587345 -4.842924 +v 1.526129 9.833411 -0.004658 +v 1.705540 9.660696 -0.004658 +v 1.705540 7.184847 -0.004658 +v 1.705540 7.184845 -4.842924 +v 1.231429 7.184845 -4.842924 +v 1.231429 7.587345 -4.842924 +v 1.526129 7.184847 -0.511597 +v 1.705540 7.184847 -0.511597 +v 1.705540 9.660696 -0.511597 +v 1.231429 9.417337 -4.333549 +v 1.231429 8.782389 -4.842924 +v 1.231024 9.417000 1.879622 +v 0.728164 7.586768 1.879622 +v 0.728164 8.051682 1.879622 +v 0.728571 8.051105 -4.842924 +v 1.526129 9.833411 -1.313099 +v 1.705540 9.660696 -1.313099 +v 1.705540 7.184847 -1.313099 +v 1.231024 8.051682 1.879622 +v 0.728164 8.051682 1.879622 +v 1.231024 8.051682 1.879622 +v 1.231429 8.051105 -4.842924 +v 0.947015 10.390597 -2.821982 +v -0.947015 10.390597 -2.821982 +v -1.132077 10.212755 -2.753816 +v 1.526129 7.247200 -1.820038 +v 1.705540 7.247200 -1.820038 +v 1.705540 9.660696 -1.820038 +v 1.705540 8.752767 6.288157 +v 1.705540 8.402290 6.532843 +v -1.132077 10.212755 0.576709 +v -0.947015 10.390597 0.637663 +v 0.947015 10.390597 0.637663 +v 1.326382 7.184847 21.944122 +v 1.526129 7.184847 -0.004658 +v -1.526129 7.184847 2.612226 +v -1.238688 7.184847 1.879622 +v 1.705540 7.184847 2.105287 +v 1.526129 7.184847 1.303783 +v 1.705540 7.184847 1.303783 +v 1.526129 7.184847 0.796844 +v 1.705540 7.184847 -0.004658 +v 0.728164 7.586768 1.879622 +v 1.231024 7.586768 1.879622 +v 1.231024 7.184847 1.879622 +v 0.393269 7.184847 1.879622 +v -1.238688 9.417000 1.879622 +v -1.526129 7.184847 2.105287 +v -1.705540 7.184847 -1.313099 +v -1.526129 7.184847 -1.313099 +v -1.526129 7.184847 -0.511597 +v -1.705540 7.184847 2.612226 +v -1.526129 9.326169 3.920664 +v -1.705540 9.326169 3.920664 +v -1.705540 9.660696 3.920664 +v -1.526129 7.184847 3.920666 +v -1.705540 7.184847 3.920666 +v -1.705540 8.752565 3.920664 +v -1.705540 7.184847 3.413727 +v -1.526129 7.184847 3.413727 +v -1.526129 8.752565 3.413726 +v -1.705540 9.326169 3.413726 +v -1.526129 9.326169 3.413726 +v -1.526129 9.833411 3.413726 +v -1.705540 7.184847 2.612226 +v -1.705540 7.184847 3.413727 +v -1.705540 8.752565 3.413726 +v -0.393269 9.417000 1.879622 +v -0.392768 8.782389 -4.842924 +v -0.392768 7.184845 -4.842924 +v -1.526129 9.326169 2.612224 +v -1.705540 9.326169 2.612224 +v -1.705540 9.660696 2.612224 +v -1.526129 7.184847 2.612226 +v -1.705540 7.184847 2.612226 +v -1.705540 8.752565 2.612224 +v -0.392768 9.417337 -4.333549 +v -1.238688 7.184847 1.879622 +v -1.238688 7.184845 -4.842924 +v -1.238688 7.587345 -4.842924 +v -0.409408 10.390597 -3.531360 +v -0.409408 10.390597 -3.172267 +v -0.409408 10.107763 -3.259712 +v -1.526129 9.833411 1.303783 +v -1.526129 7.184847 1.303783 +v -1.705540 7.184847 1.303783 +v -0.728571 7.587345 -4.842924 +v -1.238688 7.587345 -4.842924 +v -1.238688 8.051105 -4.842924 +v -1.705540 9.660696 0.796844 +v -1.705540 7.184847 0.796844 +v -1.526129 7.184847 0.796844 +v -1.238688 9.417000 1.879622 +v -1.238688 9.417337 -4.333549 +v -0.392768 9.417337 -4.333549 +v -1.238688 7.586768 1.879622 +v -1.238688 7.587345 -4.842924 +v -0.728571 7.587345 -4.842924 +v -1.526129 9.833411 -0.004658 +v -1.526129 7.184847 -0.004658 +v -1.705540 7.184847 -0.004658 +v -1.238688 7.184845 -4.842924 +v -1.705540 7.184845 -4.842924 +v -1.526129 7.184847 -0.511597 +v -1.526129 9.833411 -0.511597 +v -1.705540 9.660696 -0.511597 +v -1.238688 8.782389 -4.842924 +v -1.238688 9.417337 -4.333549 +v -1.238688 9.417000 1.879622 +v -0.728164 7.586768 1.879622 +v -0.728571 7.587345 -4.842924 +v -0.728571 8.051105 -4.842924 +v -1.526129 7.184847 -0.004658 +v -1.238688 7.184845 -4.842924 +v -1.526129 9.833411 -1.313099 +v -1.526129 7.184847 -1.313099 +v -1.705540 7.184847 -1.313099 +v -1.238688 8.051682 1.879622 +v -1.238688 8.051105 -4.842924 +v -0.728164 8.051682 1.879622 +v -0.728571 8.051105 -4.842924 +v -1.238688 8.051105 -4.842924 +v -1.705540 7.184845 -4.842924 +v -1.526129 7.184847 -1.820038 +v -1.705540 7.184847 2.105287 +v -1.705540 7.184847 1.303783 +v -1.526129 7.184847 -1.820038 +v -1.526129 9.833411 -1.820038 +v -1.705540 9.660696 -1.820038 +v -1.526129 7.184847 1.303783 +v -1.526129 7.184847 3.413727 +v -1.526129 7.184847 3.920666 +v -1.526129 8.752565 3.920664 +v -0.947015 10.390597 6.288155 +v -0.654714 10.019367 6.288155 +v -0.409408 10.390597 6.288155 +v -1.171832 9.475291 6.288155 +v -0.409408 10.019367 5.830758 +v -0.409408 10.390597 5.830758 +v -0.409408 10.390597 6.288155 +v 0.408756 10.019367 5.830758 +v 0.408756 10.019367 6.288155 +v 0.408756 10.390597 6.288155 +v 0.408756 10.019367 5.830758 +v 0.408756 10.390597 5.830758 +v -0.409408 10.390597 5.830758 +v 0.408756 10.019367 6.288155 +v 0.632517 10.019367 6.288155 +v 0.408756 10.390597 6.288155 +v 0.958007 9.683089 6.288155 +v 1.018419 10.321527 6.288155 +v -1.171832 9.475291 11.777044 +v -1.171832 7.184845 5.830760 +v -1.171832 8.752774 6.288157 +v -1.171832 8.402290 6.532843 +v -0.409408 10.019367 6.288155 +v -1.333642 8.402287 11.660702 +v -1.171832 8.402287 11.660702 +v -1.171832 8.402290 6.532843 +v -0.409408 10.019367 5.830758 +v -0.654714 10.019367 5.830758 +v -1.171832 9.475291 5.830758 +v -1.171832 7.184845 5.830760 +v 1.156401 7.184845 5.830760 +v 1.156401 9.475291 5.830758 +v 1.014517 11.207904 -2.625851 +v 0.335502 10.613042 -2.625851 +v 0.335502 11.207904 -2.625851 +v -0.167762 11.355712 20.190464 +v 0.167762 11.355712 20.190464 +v 0.167762 11.355712 19.816681 +v 0.143185 11.207904 -2.300617 +v 0.143185 11.269897 -2.300617 +v 0.143185 11.269897 -2.690544 +v 1.014517 11.207904 -2.625851 +v 0.335502 11.207904 -2.625851 +v 0.335502 11.207904 -2.300617 +v 1.014517 11.207904 -2.300617 +v 0.335502 11.207904 -2.625851 +v 0.335502 11.269897 -2.690544 +v 0.335502 11.269897 -2.300617 +v 0.335502 10.613042 -2.625851 +v 0.335502 10.613042 -2.690544 +v 0.335502 11.269897 -2.690544 +v 0.143185 11.269897 -2.300617 +v 0.335502 11.269897 -2.300617 +v 0.335502 11.269897 -2.690544 +v -0.720340 8.093419 11.897295 +v -0.389845 7.872592 11.897295 +v -1.171832 7.184847 11.897295 +v -0.941169 8.423914 11.897295 +v -1.018714 8.813759 11.897295 +v 0.000000 7.795045 11.897295 +v 0.471660 5.087640 21.944122 +v 0.813732 5.420444 21.944122 +v -0.813732 5.420444 21.944122 +v 0.813732 7.184847 21.944122 +v -1.333642 7.184847 21.944122 +v -0.813732 7.184847 21.944122 +v -0.720340 8.093421 21.944122 +v -1.018714 8.813761 21.944122 +v -1.326382 10.025591 21.944122 +v -0.720340 9.534101 21.944122 +v 0.720340 9.534101 21.944122 +v 1.326382 10.025591 21.944122 +v 1.018714 8.813761 21.944122 +v 1.326382 7.184847 21.944122 +v 0.720340 8.093421 21.944122 +v 0.941169 9.203606 21.944122 +v 0.389845 9.754930 21.944122 +v -0.941169 9.203606 21.944122 +v -0.941169 8.423916 21.944122 +v -0.389845 7.872591 21.944122 +v 0.000000 7.795045 21.944122 +v 0.389845 7.872591 21.944122 +v 0.941169 8.423916 21.944122 +v -0.471660 5.087640 21.944122 +v -0.389845 9.754930 21.944122 +v 1.321148 7.637858 11.214214 +v 1.321148 7.444347 12.021433 +v 1.321148 7.184847 12.021433 +v 1.705540 7.184847 12.021433 +v 1.321148 7.184847 12.021433 +v 1.321148 7.444347 12.021433 +v 1.705540 7.637858 11.214214 +v 1.705540 7.444347 12.021433 +v 1.321148 7.444347 12.021433 +v -1.526129 9.326169 3.413726 +v -1.705540 9.326169 3.413726 +v -1.705540 9.326169 2.612224 +v -1.524936 9.326169 6.288157 +v -1.705540 9.326169 6.288157 +v -1.705540 9.326169 3.920664 +v -1.526129 8.752565 2.612224 +v -1.705540 8.752565 2.612224 +v -1.705540 8.752565 3.413726 +v -1.526129 8.752565 2.612224 +v 0.632517 10.019367 5.830758 +v 0.335502 10.613042 -2.690544 +v 0.143185 10.723700 -2.690544 +v 0.143185 11.269897 -2.690544 +v -0.335502 10.613042 -2.690544 +v -0.143185 10.723700 -2.690544 +v -0.335502 10.613042 -2.625851 +v -0.335502 10.613042 -2.690544 +v 0.335502 10.613042 -2.690544 +v 0.143185 10.723700 -2.690544 +v 0.143185 10.723700 -1.978916 +v -0.814306 10.492235 20.190464 +v -0.359371 10.492235 20.190464 +v -0.359371 10.492235 19.285318 +v -0.893030 10.492235 20.116810 +v -0.814306 10.492235 19.285318 +v -0.335502 11.207904 -2.625851 +v -0.335502 10.613042 -2.625851 +v -0.335502 11.207904 -2.625851 +v -0.335502 11.269897 -2.690544 +v -0.335502 11.269897 -2.690544 +v -0.143185 11.269897 -2.690544 +v -0.143185 10.723700 -2.690544 +v -0.143185 11.269897 -2.690544 +v -0.143185 11.207904 -2.300617 +v -0.335502 11.207904 -2.625851 +v -0.335502 11.207904 -2.300617 +v -0.335502 11.269897 -2.300617 +v -0.143185 11.269897 -2.300617 +v -0.143185 11.269897 -2.690544 +v -0.335502 11.269897 -2.690544 +v -0.143185 11.269897 -2.300617 +v -0.335502 11.207904 -2.625851 +v -1.014517 11.207904 -2.625851 +v -0.335502 11.207904 -2.300617 +v -1.014517 11.207904 -2.300617 +v 1.014517 10.157009 -2.625851 +v 1.014517 10.606321 -1.825949 +v 1.014517 10.491154 -1.431076 +v 1.014517 10.157009 -2.625851 +v 0.167762 10.787160 20.190464 +v -0.359371 10.492235 20.190464 +v -1.014517 11.207904 -2.625851 +v -1.014517 10.157009 -2.625851 +v -1.014517 10.723700 -1.978916 +v -1.014517 10.606321 -1.825949 +v -1.014517 10.491154 -1.431076 +v 0.359371 10.492235 20.190464 +v -1.014517 11.207904 -2.300617 +v -0.451145 8.974197 5.975873 +v 0.000000 8.787328 5.975873 +v -0.345291 9.132619 5.975873 +v 0.186870 8.336183 5.975873 +v 0.000000 8.299012 5.975873 +v -0.186870 9.238472 5.975873 +v 0.000000 9.275643 5.975873 +v 0.345291 8.442036 5.975873 +v 0.186870 9.238472 5.975873 +v 0.345291 9.132619 5.975873 +v 0.451145 8.600457 5.975873 +v 0.451145 8.974197 5.975873 +v 0.488316 8.787328 5.975873 +v -0.488316 8.787328 5.975873 +v -0.186870 8.336183 5.975873 +v -0.451145 8.600457 5.975873 +v -0.345291 8.442036 5.975873 +v -1.659889 9.270180 6.250484 +v -1.659889 9.270180 2.190354 +v -1.659889 8.796173 2.190354 +v -1.659889 9.139336 2.059509 +v -1.659889 8.927017 2.059509 +v -1.360494 9.270180 6.250484 +v -1.659889 9.270180 6.250484 +v -1.659889 8.796173 6.250484 +v -1.705540 8.752759 6.288157 +v -1.524936 8.752759 6.288157 +v -1.524936 9.326169 6.288157 +v 1.705540 7.614016 -2.276283 +v -1.705540 7.184847 1.303783 +v -1.705540 9.151711 1.935822 +v 1.321148 7.637858 11.214214 +v 0.359371 10.492235 20.190464 +v -1.238688 7.586768 1.879622 +v 0.393269 9.417000 1.879622 +v 1.705540 7.184847 3.920666 +v 0.408756 10.390597 -3.172267 +v 1.705540 7.184847 3.413727 +v 0.392768 7.184845 -4.842924 +v 1.705540 9.660696 2.612224 +v 1.526129 9.833411 2.105287 +v 1.231429 7.184845 -4.842924 +v 0.408756 10.390597 -3.172267 +v 1.526129 7.184847 1.303783 +v 1.705540 7.184847 0.796844 +v 1.231429 9.417337 -4.333549 +v 1.231429 7.587345 -4.842924 +v 1.526129 7.184847 -0.004658 +v 1.526129 9.833411 -0.511597 +v 0.728571 7.587345 -4.842924 +v 1.526129 7.184847 -1.313099 +v 1.231429 8.051105 -4.842924 +v 0.728571 8.051105 -4.842924 +v 1.132077 10.212755 -2.753816 +v 1.526129 9.833411 -1.820038 +v 1.132077 10.212755 0.576709 +v 1.705540 7.184847 0.796844 +v -1.238688 8.051682 1.879622 +v -1.705540 7.184847 -0.511597 +v -1.705540 7.184847 3.413727 +v -1.526129 9.833411 3.920664 +v -1.526129 8.752565 3.920664 +v -1.705540 8.752565 3.413726 +v -1.705540 9.660696 3.413726 +v -1.705540 8.752565 2.612224 +v -0.393269 7.184847 1.879622 +v -1.526129 9.833411 2.612224 +v -1.526129 8.752565 2.612224 +v -1.705540 7.184847 18.319260 +v -1.238688 7.586768 1.879622 +v -0.409408 10.107763 -3.763228 +v -1.705540 9.660696 1.303783 +v -0.728571 8.051105 -4.842924 +v -1.526129 9.833411 0.796844 +v -0.393269 9.417000 1.879622 +v -0.728164 7.586768 1.879622 +v -1.705540 9.660696 -0.004658 +v -1.705540 7.184847 -0.511597 +v -0.728164 8.051682 1.879622 +v -1.705540 9.660696 -1.313099 +v -1.238688 8.051682 1.879622 +v -1.705540 7.184847 -1.820038 +v -1.705540 7.184847 -1.820038 +v -1.705540 7.184845 -4.842924 +v -1.705540 7.184847 -1.820038 +v -1.705540 8.782389 -4.842924 +v -1.526129 8.752565 3.413726 +v -0.409408 10.019367 6.288155 +v 0.408756 10.390597 5.830758 +v -1.326382 10.025589 11.777044 +v -1.333642 8.402290 6.532843 +v -0.167762 11.355712 19.816681 +v 0.335502 11.207904 -2.300617 +v 0.335502 11.207904 -2.625851 +v 0.143185 11.269897 -2.690544 +v 1.321148 7.184847 11.214214 +v 1.705540 7.444347 12.021433 +v 1.321148 7.637858 11.214214 +v -1.526129 9.326169 2.612224 +v -1.526129 9.326169 3.920664 +v -1.526129 8.752565 3.413726 +v -1.526129 9.326169 2.612224 +v 0.335502 11.269897 -2.690544 +v 0.335502 10.613042 -2.625851 +v -0.893030 10.492235 19.372772 +v -0.335502 10.613042 -2.690544 +v -0.143185 10.723700 -1.978916 +v -0.335502 11.269897 -2.690544 +v -0.335502 11.269897 -2.300617 +v -1.659889 8.796173 6.250484 +v -1.360494 8.796173 6.250484 +v -1.705540 8.402290 6.532843 +v -1.333642 8.402290 6.532843 +v -1.524936 8.752759 6.288157 +v -1.171832 8.752774 6.288157 +v -0.654714 10.019367 11.897295 +v -0.654714 10.019367 11.777044 +v 0.632517 10.019367 11.777044 +v 0.632517 10.019367 11.777044 +v -1.705540 9.660696 6.288155 +v -1.705540 9.660696 3.920664 +v -1.705540 9.326169 3.920664 +v -1.526129 8.752565 2.110280 +v -1.526129 9.321173 2.105287 +v -1.524936 9.151711 1.935822 +v -1.526129 7.184847 1.303783 +v -1.526129 9.833411 1.303783 +v -1.526129 9.833411 0.796844 +v -1.705540 9.660696 1.303783 +v 1.526129 9.833411 -1.820038 +v 1.526129 9.833411 -1.313099 +v -1.171832 9.475291 11.777044 +v 1.705540 7.184847 18.319260 +v 1.705540 7.184847 12.021433 +v 1.705540 7.444347 12.021433 +v 1.705540 9.660696 -1.820038 +v 1.705540 7.247200 -1.820038 +v 1.705540 7.967403 18.319260 +v 1.526043 7.184847 -2.765843 +v 1.705540 7.184845 -4.842924 +v 1.705540 7.184847 -2.765843 +v -1.526129 9.321173 2.105287 +v -1.705540 9.321173 2.105287 +v -1.705540 9.151711 1.935822 +v -1.705540 8.927025 1.935822 +v -1.705540 8.757562 2.105287 +v -1.526129 8.752565 2.110280 +v 1.018714 8.813759 11.876556 +v 1.156401 9.475291 11.866869 +v 1.156401 7.184847 11.897295 +v -1.014517 10.157009 0.196239 +v -1.014517 10.369081 0.196239 +v 0.167762 10.787160 19.556133 +v 0.167762 11.355712 19.816681 +v 0.167762 11.355712 20.190464 +v 0.359371 10.492235 20.190464 +v 0.359371 10.492235 19.285318 +v 0.872165 9.770430 11.711021 +v 1.156401 9.475291 11.866869 +v 0.632517 10.019367 11.897295 +v 1.018419 10.321527 11.521419 +v 1.019789 10.321230 19.320282 +v 1.326382 10.025591 21.944122 +v 0.872165 9.770430 11.711021 +v 0.947015 10.390597 11.752499 +v 1.018419 10.321527 11.521419 +v 1.018419 10.321527 6.288155 +v 0.958007 9.683089 6.288155 +v 0.958007 9.683130 11.555178 +v 0.632517 10.019367 5.830758 +v 1.156401 9.475291 5.830758 +v 0.958007 9.683089 6.288155 +v 1.326382 7.967403 19.492821 +v 1.326382 7.967402 7.346314 +v 1.326382 8.055083 6.892087 +v 1.326382 8.402290 6.532843 +v 1.326382 10.025589 6.288155 +v -1.333642 7.967403 19.492821 +v -1.333642 8.578353 11.777044 +v -1.333642 8.402287 11.660702 +v -1.326382 10.025591 21.944122 +v -1.326382 10.025589 11.777044 +v 0.947015 10.390599 19.208494 +v 0.947015 10.390597 11.752499 +v 0.869641 10.390597 11.777044 +v -0.409408 10.390597 -3.531360 +v -0.409408 10.107763 -3.763228 +v -0.947015 10.390597 -3.531360 +v 0.869641 10.390597 11.777044 +v -1.238688 8.782389 -4.842924 +v -1.333642 8.578353 11.777044 +v -1.526129 7.184847 -0.004658 +v -1.526129 9.833411 -0.004658 +v -1.526129 9.833411 -0.511597 +v -0.947015 10.390597 0.637663 +v -0.947015 10.390597 6.288155 +v -0.409408 10.390597 5.830758 +v 0.408756 10.390597 5.830758 +v 0.947015 10.390597 0.637663 +v 0.408756 10.390597 6.288155 +v 1.018419 10.321527 6.288155 +v -1.171832 9.475291 5.830758 +v -1.171832 9.475291 6.288155 +v 1.018419 10.321527 6.288155 +v 1.326382 10.025589 6.288155 +v 1.132077 10.212755 0.576709 +v -0.409408 10.390597 6.288155 +v -1.526129 9.833411 2.105287 +v -1.526129 9.833411 2.612224 +v -1.132077 10.212755 0.576709 +v -1.526129 9.833411 3.920664 +v -1.326382 10.025589 6.288155 +v -1.526129 9.833411 3.413726 +v 0.947015 10.390597 -3.531360 +v 0.947015 10.390597 -2.821982 +v 1.132077 10.212755 -2.753816 +v 0.947015 10.390599 19.208494 +v -0.947015 10.390599 19.208494 +v -1.016029 10.321230 19.320282 +v 0.947015 10.390599 20.281315 +v -0.947015 10.390599 20.281315 +v -0.947015 10.390599 21.944122 +v 1.705540 7.184847 2.612226 +v 1.705540 9.660696 2.612224 +v 1.705540 9.660696 3.413726 +v 1.019789 10.321230 20.144449 +v -1.016029 10.321230 20.144449 +v 1.326382 7.967403 19.492821 +v 1.326382 7.184847 19.492821 +v 0.471660 5.087640 16.849926 +v 0.813732 5.420444 16.849926 +v 0.813732 5.420444 21.944122 +v 0.408756 10.390597 -3.531360 +v 0.408756 10.390597 -3.172267 +v 1.019789 10.321230 20.144449 +v -0.409408 10.107763 -3.763228 +v -0.409408 10.107763 -3.259712 +v 0.408756 10.107763 -3.259712 +v 1.705540 7.967402 7.346314 +v 1.326382 7.967402 7.346314 +v 1.326382 7.967403 19.492821 +v 1.326382 7.184847 21.944122 +v 1.326382 7.184847 19.492821 +v 1.526129 7.184847 1.303783 +v 1.526129 7.184847 0.796844 +v 1.526129 9.833411 0.796844 +v 1.705540 8.402290 6.532843 +v 1.326382 8.402290 6.532843 +v 1.326382 8.055083 6.892087 +v 1.705540 8.055083 6.892087 +v 1.705540 9.660696 6.288155 +v 1.326382 10.025589 6.288155 +v 1.326382 8.752767 6.288157 +v 1.705540 9.660696 -4.131682 +v 1.231429 9.417337 -4.333549 +v 0.408756 10.107763 -3.763228 +v -0.392768 9.417337 -4.333549 +v -0.409408 10.390597 -3.172267 +v -0.947015 10.390597 -2.821982 +v 0.392768 9.417337 -4.333549 +v 0.392768 8.782389 -4.842924 +v 1.231429 8.782389 -4.842924 +v 1.705540 8.782389 -4.842924 +v 1.705540 9.660696 -4.131682 +v 0.947015 10.390597 -3.531360 +v 1.526129 9.833411 2.612224 +v 1.705540 9.660696 6.288155 +v 1.705540 9.660696 3.920664 +v 1.526129 9.833411 3.920664 +v -1.132077 10.212755 0.576709 +v 1.132077 10.212755 0.576709 +v 1.132077 10.212755 -2.753816 +v 1.705540 9.660696 -1.313099 +v 1.705540 9.660696 -0.511597 +v 1.705540 7.184847 -0.511597 +v 1.705540 9.660696 -0.004658 +v 1.705540 9.660696 0.796844 +v 1.705540 7.184847 0.796844 +v 1.526129 7.184847 2.612226 +v 1.526129 7.184847 2.105287 +v 1.526129 9.833411 2.105287 +v 1.705540 9.660696 3.920664 +v 1.705540 9.660696 6.288155 +v 1.019789 10.321230 19.320282 +v -0.471660 5.087640 16.849926 +v 0.471660 5.087640 21.944122 +v 0.813732 7.184847 16.849926 +v 0.813732 7.184847 21.944122 +v 0.947015 10.390599 20.281315 +v 0.947015 10.390599 21.944122 +v 1.705540 8.752767 6.288157 +v 1.526129 7.184847 3.920666 +v 1.526129 7.184847 3.413727 +v 1.526129 9.833411 3.413726 +v 0.392768 7.184845 -4.842924 +v -0.392768 7.184845 -4.842924 +v -0.392768 8.782389 -4.842924 +v 0.408756 10.390597 -3.531360 +v 1.526129 7.184847 -0.004658 +v 1.526129 7.184847 -0.511597 +v 1.526129 9.833411 -0.511597 +v 1.705540 7.184847 1.303783 +v 1.705540 9.660696 1.303783 +v 1.705540 9.660696 2.105287 +v 1.526129 9.833411 3.413726 +v 1.526129 9.833411 -0.511597 +v 1.526129 9.833411 -1.313099 +v 1.526129 9.833411 -1.820038 +v 1.526129 9.833411 -0.004658 +v 1.526129 9.833411 2.105287 +v 1.526129 9.833411 1.303783 +v 1.705540 7.184847 -2.765843 +v 1.705540 7.614016 -2.276283 +v 1.526043 7.614016 -2.276283 +v -0.947015 10.390597 -3.531360 +v -1.705540 9.660696 -4.131682 +v -1.132077 10.212755 -2.753816 +v -1.705540 7.184847 18.319260 +v -1.705540 7.967403 18.319260 +v -1.526129 9.833411 -1.313099 +v -1.526129 9.833411 -0.511597 +v -1.705540 9.660696 -1.820038 +v -1.526129 9.833411 -1.820038 +v -1.705540 9.660696 3.413726 +v -1.705540 9.660696 2.612224 +v -1.705540 9.326169 2.612224 +v -1.333642 7.184847 19.492821 +v -0.471660 5.087640 21.944122 +v -0.813732 5.420444 21.944122 +v -0.409408 10.390597 -3.531360 +v -1.705540 7.184847 2.105287 +v -1.526129 7.184847 2.105287 +v -1.526129 9.833411 2.105287 +v -1.705540 7.967402 7.346314 +v -1.705540 7.967403 18.319260 +v -1.333642 7.967403 19.492821 +v -1.333642 7.184847 19.492821 +v -1.705540 9.321173 2.105287 +v -1.705540 9.660696 2.105287 +v -1.705540 8.055083 6.892087 +v -1.333642 8.055083 6.892087 +v -1.333642 7.967402 7.346314 +v -1.705540 9.660696 -0.511597 +v -1.238688 9.417337 -4.333549 +v -1.705540 9.660696 -4.131682 +v -1.526129 9.833411 1.303783 +v -1.705540 8.782389 -4.842924 +v -1.705540 9.660696 -1.313099 +v -1.705540 7.184847 -1.313099 +v -1.705540 7.184847 -0.511597 +v -1.705540 9.660696 -0.004658 +v -1.705540 7.184847 -0.004658 +v -1.705540 7.184847 0.796844 +v -1.526129 9.833411 -0.004658 +v -1.705540 9.660696 0.796844 +v -1.526129 9.833411 0.796844 +v -0.813732 5.420444 16.849926 +v -0.813732 7.184847 21.944122 +v -1.526129 7.184847 -1.313099 +v -1.526129 9.833411 -1.313099 +v -1.526129 9.833411 -1.820038 +v -0.947015 10.390597 11.777044 +v -1.016029 10.321228 11.777044 +v -1.705540 8.752759 6.288157 +v -1.526129 9.833411 3.920664 +v -1.526129 9.833411 3.413726 +v -1.526129 9.326169 3.413726 +v 1.326382 8.752767 6.288157 +v -1.171832 8.402290 6.532843 +v -1.171832 8.578353 11.777044 +v -1.171832 8.402287 11.660702 +v 0.632517 10.019367 5.830758 +v 0.632517 10.019367 6.288155 +v 0.408756 10.019367 6.288155 +v -0.654714 10.019367 5.830758 +v -0.409408 10.019367 5.830758 +v -0.409408 10.019367 6.288155 +v 0.632517 10.019367 6.288155 +v 0.958007 9.683130 11.555178 +v 1.156401 7.184845 5.830760 +v 1.156401 7.184847 11.897295 +v 0.941169 9.203604 11.872110 +v 1.018714 8.813759 11.876556 +v 1.018714 8.813761 21.944122 +v 0.720340 9.534099 11.876594 +v 0.941169 9.203606 21.944122 +v 0.389845 9.754928 11.891424 +v 0.720340 9.534101 21.944122 +v 0.000000 9.832473 11.897295 +v 0.389845 9.754930 21.944122 +v 0.814306 10.296816 20.190464 +v 0.814306 10.492235 20.190464 +v 0.000000 9.832475 21.944122 +v -0.389845 9.754930 21.944122 +v -0.389845 9.754928 11.897295 +v -0.720340 9.534101 21.944122 +v -0.720340 9.534099 11.896715 +v 0.893030 10.296816 20.116810 +v 0.893030 10.492235 20.116810 +v 0.893030 10.296816 19.372772 +v 0.893030 10.492235 19.372772 +v -0.941169 9.203604 11.897295 +v -0.941169 9.203606 21.944122 +v -1.018714 8.813761 21.944122 +v -1.018714 8.813759 11.897295 +v -0.941169 8.423916 21.944122 +v -0.941169 8.423914 11.897295 +v -0.720340 8.093421 21.944122 +v -0.720340 8.093419 11.897295 +v -0.389845 7.872591 21.944122 +v -0.389845 7.872592 11.897295 +v 0.000000 7.795045 21.944122 +v 0.000000 7.795045 11.897295 +v 0.000000 7.795045 21.944122 +v 0.389845 7.872591 21.944122 +v 0.389845 7.872592 11.897295 +v 0.720340 8.093421 21.944122 +v 0.720340 8.093419 11.890940 +v 0.814306 10.296816 19.285318 +v 0.814306 10.492235 19.285318 +v 0.893030 10.492235 19.372772 +v 0.941169 8.423914 11.883168 +v 0.941169 8.423916 21.944122 +v 0.359371 10.492235 19.285318 +v -0.814306 10.296816 19.285318 +v -0.359371 10.492235 19.285318 +v -0.167762 10.787160 19.556133 +v 0.167762 10.787160 19.556133 +v -0.167762 11.355712 19.816681 +v 0.167762 11.355712 19.816681 +v -0.814306 10.157009 0.372429 +v 0.814306 10.157009 0.372429 +v 0.814306 10.357646 0.372429 +v 1.014517 10.157009 0.196239 +v 1.014517 10.369081 0.196239 +v -0.143185 10.723700 -1.978916 +v 0.143185 10.723700 -1.978916 +v 0.143185 10.723700 -2.690544 +v 0.143185 11.207904 -2.300617 +v 0.143185 10.723700 -1.978916 +v 0.335502 11.207904 -2.300617 +v 1.014517 10.723700 -1.978916 +v 1.014517 11.207904 -2.300617 +v 1.014517 10.606321 -1.825949 +v -1.014517 10.606321 -1.825949 +v -1.014517 10.491154 -1.431076 +v 1.014517 10.491154 -1.431076 +v -0.814306 10.357646 0.372429 +v 0.814306 10.357646 0.372429 +v 1.014517 10.369081 0.196239 +v -1.014517 10.369081 0.196239 +v -1.171832 9.475291 11.897295 +v 0.632517 10.019367 11.897295 +v 0.720340 9.534099 11.876594 +v 0.000000 9.832473 11.897295 +v -0.654714 10.019367 11.897295 +v -0.720340 9.534099 11.896715 +v -1.171832 9.475291 11.897295 +v 0.941169 8.423914 11.883168 +v 0.720340 8.093419 11.890940 +v 0.389845 7.872592 11.897295 +v -0.941169 9.203604 11.897295 +v -0.389845 9.754928 11.897295 +v 0.389845 9.754928 11.891424 +v 0.941169 9.203604 11.872110 +v -1.524936 8.927025 1.935822 +v -1.526129 9.833411 2.105287 +v -1.526129 9.321173 2.105287 +v -1.526129 9.326169 2.612224 +v 0.335502 11.269897 -2.300617 +v 0.143185 11.269897 -2.300617 +v -0.167762 10.787160 19.556133 +v -0.167762 10.787160 20.190464 +v -0.167762 11.355712 20.190464 +v -0.359371 10.492235 20.190464 +v -0.814306 10.492235 20.190464 +v -0.814306 10.296816 20.190464 +v -0.893030 10.296816 20.116810 +v -0.893030 10.296816 19.372772 +v -0.893030 10.492235 20.116810 +v -0.893030 10.296816 19.372772 +v -0.893030 10.492235 19.372772 +v -0.814306 10.492235 19.285318 +v -0.143185 10.723700 -1.978916 +v -1.014517 10.723700 -1.978916 +v -0.814306 10.357646 0.372429 +v -0.335502 11.269897 -2.300617 +v -0.335502 11.207904 -2.300617 +v -0.143185 11.207904 -2.300617 +v 1.526129 9.833411 0.796844 +v -0.451145 8.974197 5.975873 +v -0.345291 9.132619 5.975873 +v -0.345291 9.132619 5.773399 +v -0.186870 9.238472 5.975873 +v -0.186870 9.238472 5.773399 +v 0.345291 8.442036 5.975873 +v 0.186870 8.336183 5.975873 +v 0.186870 8.336183 5.773399 +v 0.000000 9.275643 5.975873 +v 0.000000 9.275643 5.773399 +v 0.186870 9.238472 5.975873 +v 0.186870 9.238472 5.773399 +v 0.451145 8.600457 5.975873 +v 0.345291 8.442036 5.773399 +v 0.345291 9.132619 5.975873 +v 0.345291 9.132619 5.773399 +v 0.451145 8.974197 5.975873 +v 0.451145 8.974197 5.773399 +v 0.488316 8.787328 5.975873 +v 0.451145 8.600457 5.773399 +v 0.488316 8.787328 5.773399 +v -0.186870 8.336183 5.975873 +v -0.345291 8.442036 5.975873 +v -0.345291 8.442036 5.773399 +v -0.451145 8.600457 5.975873 +v -0.488316 8.787328 5.975873 +v -0.488316 8.787328 5.773399 +v 0.000000 8.299012 5.975873 +v -0.186870 8.336183 5.773399 +v 0.000000 8.299012 5.773399 +v -0.451145 8.974197 5.773399 +v -0.451145 8.600457 5.773399 +v -1.360494 8.796173 2.190354 +v -1.659889 8.796173 2.190354 +v -1.659889 8.927017 2.059509 +v -1.659889 9.139336 2.059509 +v -1.360494 9.139336 2.059509 +v -1.360494 8.927017 2.059509 +v -1.360494 9.270180 2.190354 +v -1.659889 9.270180 2.190354 +v -1.659889 9.270180 6.250484 +v -1.360494 8.796173 6.250484 +v -1.659889 8.796173 6.250484 +v -1.705540 9.326169 6.288157 +v -1.524936 8.927025 1.935822 +v -1.526129 7.184847 0.796844 +v -1.526129 8.752565 2.110280 +v -1.524936 9.151711 1.935822 +v 0.167762 10.787160 20.190464 +v -1.526129 7.184847 -0.511597 +v 0.947015 10.390599 21.944122 +v 1.705540 7.184847 3.413727 +v 0.408756 10.107763 -3.763228 +v 1.705540 7.967403 18.319260 +v 1.526129 9.833411 1.303783 +v -1.132077 10.212755 -2.753816 +v 1.705540 7.184847 -1.313099 +v 1.705540 7.184847 -0.004658 +v 1.526129 9.833411 2.612224 +v 1.526129 9.833411 3.920664 +v 1.526129 9.833411 -0.004658 +v 1.705540 7.184847 2.105287 +v 1.526043 7.184847 -2.765843 +v -1.705540 9.326169 3.413726 +v -1.333642 7.967403 19.492821 +v -1.705540 9.660696 2.105287 +v -1.333642 7.184847 21.944122 +v -0.813732 7.184847 16.849926 +v -1.526129 7.184847 -1.820038 +v -1.526129 9.326169 3.920664 +v -1.333642 8.402287 11.660702 +v 0.408756 10.019367 5.830758 +v -0.654714 10.019367 6.288155 +v 0.869641 10.390597 11.777044 +v 0.000000 7.795045 11.897295 +v 0.893030 10.296816 19.372772 +v -0.143185 10.723700 -2.690544 +v -1.526129 9.833411 2.612224 +v -0.167762 11.355712 19.816681 +v -0.359371 10.492235 19.285318 +v -0.893030 10.492235 19.372772 +v -0.143185 11.269897 -2.300617 +v -1.014517 11.207904 -2.300617 +v -1.360494 9.270180 6.250484 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 1.0000 -0.0001 +vn -1.0000 -0.0000 0.0005 +vn -0.0000 -0.7793 -0.6266 vn -0.0000 -1.0000 -0.0000 -vn -0.0000 -0.9983 -0.0575 -vn 0.0000 -0.9772 -0.2125 -vn 0.0000 -0.9666 -0.2562 -vn 0.0000 -0.4950 0.8689 -vn 1.0000 -0.0000 0.0000 -vn -0.0053 0.6390 -0.7692 -vn 0.0000 0.6406 -0.7679 -vn -0.0035 0.6415 -0.7671 -vn 0.0000 -0.9606 -0.2778 -vn 0.0000 -0.9397 -0.3420 -vn 0.0000 0.1886 -0.9821 -vn 0.0000 0.6463 -0.7631 -vn -0.0036 0.6433 -0.7656 -vn 0.0000 0.8070 0.5905 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.9924 0.1232 -vn 0.0000 -0.5336 0.8457 -vn -0.0011 -0.5347 0.8451 -vn -0.0007 -0.5346 0.8451 -vn 0.0002 0.9819 0.1892 -vn 0.0000 1.0000 -0.0000 -vn -0.0000 0.8598 0.5106 -vn 0.0000 0.0000 1.0000 -vn 0.0000 -0.9851 -0.1717 -vn 0.0000 -0.9356 0.3532 -vn 0.0000 -0.9999 0.0171 -vn 0.0000 0.3735 0.9276 -vn 0.0000 -0.2142 0.9768 -vn 0.0000 -0.1128 0.9936 -vn 0.0000 -0.6774 0.7356 -vn 0.0000 -0.5021 0.8648 -vn 0.0000 -0.9934 -0.1149 -vn 0.0000 0.0000 -1.0000 -vn -0.9978 0.0662 -0.0000 -vn -0.8965 0.4430 0.0000 -vn -0.9472 0.3207 -0.0000 -vn -0.9575 -0.1451 0.2492 -vn -0.9344 -0.2629 0.2404 -vn -0.9389 -0.2242 0.2612 -vn -0.8781 -0.1764 0.4448 -vn -0.9776 -0.1677 0.1269 -vn 0.9978 -0.0662 0.0000 +vn 1.0000 0.0001 -0.0001 +vn 1.0000 -0.0005 -0.0001 +vn -0.0000 -0.0000 1.0000 +vn -0.0000 1.0000 -0.0000 +vn -0.0000 0.2954 -0.9554 +vn 1.0000 -0.0000 -0.0001 +vn -1.0000 -0.0000 -0.0001 +vn -0.0000 -1.0000 -0.0001 +vn -1.0000 0.0001 -0.0001 +vn -0.0000 0.3579 0.9338 +vn -0.0000 0.3242 -0.9460 +vn -0.0000 -0.9724 -0.2331 +vn -0.0000 0.6488 0.7610 +vn -0.0000 0.6112 0.7915 +vn -0.0000 0.3594 0.9332 +vn -0.0000 0.3979 0.9174 +vn 0.3944 -0.9189 -0.0000 +vn -0.2584 -0.9660 -0.0000 +vn -0.0544 0.0347 -0.9979 +vn -0.9202 0.3915 -0.0000 +vn -0.9202 0.3914 -0.0000 +vn -1.0000 -0.0000 -0.0023 +vn -1.0000 -0.0001 -0.0070 +vn -0.7948 0.6069 -0.0000 +vn -0.8837 0.4681 -0.0000 +vn -0.9815 0.1914 -0.0000 +vn 0.9202 0.3914 -0.0000 +vn 0.7785 0.6277 -0.0000 +vn 0.8716 -0.4902 0.0001 +vn 0.9946 -0.0000 0.1036 +vn 0.9501 0.3120 -0.0000 +vn 0.9922 -0.0000 0.1244 +vn -0.0000 -0.9849 0.1730 +vn -0.0000 -0.8848 0.4659 +vn -0.0000 -0.5054 0.8629 +vn 0.0001 -0.2527 0.9675 +vn -0.0000 -0.3827 0.9239 +vn -0.0001 0.5055 0.8628 +vn -0.0151 0.3827 0.9237 +vn -0.0075 0.3820 0.9241 +vn -0.0098 -0.0134 -0.9999 +vn -0.0135 0.0030 -0.9999 +vn -0.0078 -0.0088 -0.9999 +vn -0.9112 -0.0000 0.4119 +vn 0.9588 0.2841 -0.0000 +vn 0.8386 0.5448 -0.0000 +vn -0.8061 -0.3082 -0.5053 +vn -0.8143 -0.5805 -0.0013 +vn -0.5167 -0.8561 -0.0000 +vn 0.6940 0.7200 -0.0000 +vn 0.4341 0.8971 0.0825 +vn 0.9006 0.4347 0.0001 +vn -0.6892 0.1308 -0.7126 +vn -0.9536 0.0970 -0.2850 +vn -0.9956 0.0942 -0.0000 +vn -0.8233 -0.5676 0.0006 +vn -0.9600 -0.2555 -0.1143 +vn -0.3908 -0.9205 0.0012 +vn -0.9277 -0.3732 0.0009 +vn -0.8233 -0.5676 0.0008 +vn 0.8835 0.4684 -0.0000 +vn -0.9987 0.0005 0.0512 +vn -1.0000 0.0021 -0.0000 +vn -0.9198 0.3925 -0.0002 +vn -0.8535 0.5212 0.0001 +vn 0.1239 0.9740 0.1894 +vn 0.4932 0.8699 -0.0000 +vn -0.0000 0.9039 -0.4278 +vn -0.0000 0.8020 -0.5974 +vn -0.2691 0.9151 -0.3004 +vn -0.1559 0.0685 -0.9854 +vn -0.0000 0.2196 -0.9756 +vn -0.0000 0.2883 -0.9575 +vn -0.8561 0.5167 -0.0000 +vn -0.2979 0.9546 -0.0000 +vn -0.2469 0.9690 -0.0000 +vn 0.0544 0.9985 0.0027 +vn 0.3979 0.9174 0.0029 +vn 0.1126 0.9936 -0.0000 +vn 0.4235 0.9059 0.0029 +vn 0.9695 -0.2451 -0.0000 +vn 0.8716 -0.4902 -0.0000 +vn 0.4233 0.9060 0.0029 +vn 0.6497 0.7602 -0.0000 +vn -0.8837 0.4680 -0.0000 +vn -0.6017 0.7987 -0.0000 +vn -0.8561 0.5168 -0.0000 +vn -0.6934 0.7206 -0.0000 +vn -0.8186 0.5743 -0.0000 +vn 0.2692 0.9150 -0.3004 +vn 0.1831 0.9831 -0.0000 +vn 0.5496 0.8354 -0.0000 +vn -0.2622 0.9451 0.1950 +vn -0.4802 0.8651 0.1452 +vn 0.3027 0.9480 -0.0986 +vn -0.3083 0.9299 -0.2006 +vn -0.2470 0.9690 -0.0000 +vn 0.3052 0.9313 -0.1990 +vn -0.3051 0.9470 -0.1000 +vn 0.9878 -0.0000 0.1556 +vn 0.4972 -0.8676 -0.0000 +vn 0.9665 -0.2568 -0.0000 +vn 0.8580 -0.5136 -0.0000 +vn -0.0000 0.9980 0.0635 +vn -0.0000 0.9919 0.1269 +vn 0.8837 0.4681 -0.0000 +vn -0.0000 0.6730 0.7397 +vn -0.0000 0.6239 0.7815 +vn -0.0000 0.8374 0.5466 +vn -0.0000 0.9284 0.3717 +vn -0.0000 0.1989 0.9800 +vn 0.0033 0.6337 -0.7736 +vn 0.0022 0.6324 -0.7747 +vn -0.0001 0.7210 -0.6930 +vn -0.0000 0.6324 -0.7746 +vn -0.2468 0.9691 -0.0000 +vn -0.0000 0.6332 -0.7740 +vn -0.0001 0.4392 -0.8984 +vn 0.0028 0.4406 -0.8977 +vn 0.8561 0.5169 -0.0001 +vn 0.2691 0.9151 -0.3004 +vn 0.7948 0.6069 -0.0000 +vn 0.8561 0.5168 -0.0000 +vn 0.9660 0.2584 -0.0000 +vn 0.9660 0.2584 0.0001 +vn 0.8561 0.5168 -0.0002 +vn 0.8561 0.5168 -0.0001 +vn -0.3763 -0.9265 -0.0000 +vn 0.2486 -0.9686 -0.0000 +vn 0.3737 0.9275 -0.0000 +vn -0.0001 0.2196 -0.9756 +vn 0.8837 0.4680 -0.0000 +vn 0.7785 0.6276 -0.0000 +vn 0.9202 0.3915 -0.0000 +vn -0.0000 -0.7520 0.6592 +vn -0.8561 0.5169 -0.0001 +vn -0.6262 0.7797 -0.0000 +vn -0.9883 -0.0000 0.1528 +vn -0.9881 0.0006 0.1536 +vn -0.8580 -0.5136 -0.0000 +vn -0.0139 -0.0016 0.9999 +vn -0.0000 -0.0032 1.0000 +vn -0.9881 0.0014 0.1536 +vn -0.0000 0.9284 0.3716 +vn -0.0000 0.8374 0.5465 +vn -0.0022 0.6324 -0.7746 +vn -0.0027 0.6339 -0.7734 +vn -0.0015 0.4406 -0.8977 +vn -0.9660 0.2584 -0.0000 +vn -0.9665 -0.2568 -0.0000 +vn -0.3839 0.9234 -0.0000 +vn -0.6994 0.7147 -0.0000 +vn -0.0000 0.5725 0.8199 +vn -0.0000 0.5724 0.8199 +vn -0.0000 0.2878 -0.9577 +vn -0.0000 0.5513 -0.8343 +vn -0.3908 -0.9205 0.0007 +vn -0.3902 -0.9207 -0.0000 +vn -0.9601 -0.2554 -0.1143 +vn -0.9472 -0.3207 -0.0000 +vn -0.9978 0.0661 -0.0000 +vn -0.9978 -0.0662 -0.0000 +vn -0.7523 -0.6588 -0.0000 +vn -0.8965 -0.4430 -0.0000 +vn -0.4430 -0.8965 -0.0000 +vn -0.6588 -0.7523 -0.0000 +vn -0.0661 -0.9978 -0.0000 +vn -0.3207 -0.9472 -0.0000 +vn 0.1802 -0.0001 0.9836 +vn 0.4855 -0.0001 0.8742 +vn 0.0662 -0.9978 -0.0000 +vn 0.3827 -0.9239 -0.0000 +vn 0.3828 -0.9238 -0.0000 +vn 0.7071 -0.7071 -0.0000 +vn 0.8510 -0.0001 0.5252 +vn 0.9649 -0.0001 0.2626 +vn 0.9715 -0.0000 -0.2369 +vn 0.8806 -0.0000 -0.4739 vn 0.8965 -0.4430 -0.0000 vn 0.9472 -0.3207 -0.0000 -vn -0.6588 0.7523 0.0000 +vn 0.9978 0.0662 -0.0000 +vn 0.9978 -0.0662 -0.0000 +vn 0.8965 0.4430 -0.0000 +vn 0.9472 0.3207 -0.0000 +vn 0.6588 0.7523 -0.0000 +vn 0.7523 0.6588 0.0001 +vn 0.3207 0.9472 -0.0000 +vn 0.4430 0.8965 -0.0000 +vn -0.0662 0.9978 -0.0000 +vn 0.0661 0.9978 -0.0000 +vn -0.0661 0.9978 -0.0000 +vn -0.3827 0.9239 -0.0000 +vn -0.3831 0.9237 -0.0000 +vn -0.7071 0.7071 -0.0000 +vn 0.4068 -0.0000 -0.9135 +vn -0.8965 0.4430 -0.0000 +vn -0.9472 0.3207 -0.0000 +vn -0.0000 0.2895 -0.9572 +vn -0.3241 -0.0000 -0.9460 +vn -0.0000 0.2399 -0.9708 +vn -0.0000 0.5962 -0.8028 +vn -0.0000 0.5087 -0.8609 +vn -0.0000 0.4166 -0.9091 +vn -0.2336 -0.0000 0.9723 +vn 0.3531 -0.0000 0.9356 +vn 0.9112 -0.0000 0.4119 +vn -0.0000 0.8520 0.5235 +vn -0.0003 0.7892 0.6142 +vn -0.0000 0.1917 0.9814 +vn -0.0000 0.7892 0.6142 +vn -0.0000 0.4287 0.9035 +vn -0.0000 0.6411 0.7674 +vn -0.0000 0.5534 0.8329 +vn -0.0000 0.8920 0.4521 +vn -0.0000 0.8459 0.5334 +vn -0.0000 0.9771 0.2126 +vn -0.0000 0.9896 0.1439 +vn -0.0000 0.9979 0.0648 +vn -0.0000 0.9977 0.0682 +vn -0.0000 0.9974 0.0716 +vn 0.9695 -0.2451 -0.0001 +vn -0.0111 0.0273 -0.9996 +vn -0.0194 0.0258 -0.9995 +vn -0.0030 0.0101 -0.9999 +vn -0.0000 0.0008 -1.0000 +vn -0.0005 0.0005 -1.0000 +vn -0.0009 -0.0000 -1.0000 +vn -0.0148 -0.0140 -0.9998 +vn -0.0126 -0.0131 -0.9998 +vn -0.0055 -0.0061 -1.0000 +vn -0.0004 -0.0004 -1.0000 +vn 0.0004 0.0004 -1.0000 +vn -0.0138 0.0348 -0.9993 +vn -0.0152 -0.0072 -0.9999 +vn -0.0000 0.2527 0.9675 +vn -0.9588 0.2841 -0.0000 +vn -0.8386 0.5448 -0.0000 +vn -0.4855 -0.0000 0.8742 +vn -0.2428 -0.0000 0.9701 +vn -0.8510 -0.0000 0.5252 +vn -0.9715 0.0001 -0.2369 +vn -0.9649 -0.0000 0.2626 +vn -0.9715 -0.0000 -0.2370 +vn -0.8806 -0.0000 -0.4739 +vn -0.4068 -0.0000 -0.9135 +vn -0.0000 0.8521 0.5234 +vn -0.4670 -0.0000 0.8842 +vn -0.6588 0.7523 -0.0000 vn -0.7523 0.6588 -0.0000 +vn -0.3207 0.9472 -0.0000 +vn -0.4430 0.8965 -0.0000 vn 0.6588 -0.7523 -0.0000 -vn 0.7523 -0.6588 -0.0000 -vn -0.3207 0.9472 -0.0001 -vn -0.4430 0.8965 -0.0001 vn 0.3207 -0.9472 -0.0000 vn 0.4430 -0.8965 -0.0000 -vn 0.0662 0.9978 0.0000 -vn -0.0661 0.9978 0.0000 -vn -0.0662 -0.9978 -0.0000 -vn 0.0661 -0.9978 0.0000 -vn 0.0661 0.9978 0.0000 -vn 0.4430 0.8965 -0.0000 -vn 0.3207 0.9472 0.0000 -vn -0.0661 -0.9978 -0.0000 -vn -0.4430 -0.8965 -0.0000 -vn -0.3207 -0.9472 -0.0000 +vn 0.7523 -0.6588 -0.0000 vn 0.7523 0.6588 -0.0000 -vn 0.6588 0.7523 0.0000 -vn -0.7523 -0.6588 -0.0000 -vn -0.6588 -0.7523 -0.0000 -vn 0.9472 0.3207 -0.0000 -vn 0.8965 0.4430 -0.0001 -vn -0.9472 -0.3207 -0.0000 -vn -0.8965 -0.4430 -0.0000 -vn 0.9978 0.0662 -0.0000 -vn -0.9978 -0.0662 0.0000 -vn 0.8965 -0.4430 0.0001 -vn -0.3207 0.9472 0.0000 -vn -0.4430 0.8965 0.0000 -vn 0.0662 -0.9978 -0.0000 -vn -0.0662 0.9978 0.0000 -vn -0.4430 -0.8965 0.0001 -vn -0.3207 -0.9472 0.0001 -vn 0.8965 0.4430 0.0000 -vn 0.0000 0.9071 -0.4210 -vn 0.0000 0.9960 0.0890 -vn 0.0000 0.9960 -0.0890 -vn 0.0000 0.9960 0.0889 -vn 0.0000 0.8181 0.5750 -vn 0.0000 0.9071 0.4210 -vn 0.0000 0.5751 -0.8181 -vn 0.0000 0.8181 -0.5751 -vn 0.0000 0.4210 0.9071 -vn 0.0000 0.5750 0.8181 -vn 0.0000 0.0890 -0.9960 -vn 0.0000 0.4210 -0.9071 -vn 0.0000 -0.0889 0.9960 -vn 0.0000 0.0889 0.9960 -vn 0.0000 -0.4210 -0.9071 -vn 0.0000 0.0889 -0.9960 -vn -0.0000 -0.0890 -0.9960 -vn 0.0000 -0.5750 0.8181 -vn 0.0000 -0.4210 0.9071 -vn 0.0000 -0.8181 -0.5751 -vn 0.0000 -0.5751 -0.8181 -vn 0.0000 -0.9071 0.4210 -vn 0.0000 -0.8181 0.5750 -vn 0.0000 -0.9960 -0.0890 -vn 0.0000 -0.9071 -0.4210 -vn 0.0000 -0.9960 -0.0889 -vn 0.0000 -0.9960 0.0889 -vn 0.0000 -0.9960 0.0890 -vn 0.0000 -0.8181 -0.5750 -vn 0.0000 -0.5751 0.8181 -vn 0.0000 -0.8181 0.5751 -vn 0.0000 -0.5750 -0.8181 -vn 0.0000 -0.0890 0.9960 -vn -0.0001 -0.0890 -0.9960 -vn 0.0000 0.0890 0.9960 -vn 0.0000 0.5750 -0.8181 -vn 0.0000 0.8181 0.5751 -vn 0.0000 0.5751 0.8181 -vn 0.0000 0.8181 -0.5750 -vn 0.0000 0.9960 -0.0889 -vn -0.8737 -0.1315 -0.4684 -vn -0.9862 -0.0041 -0.1656 -vn -0.8872 0.2205 -0.4054 -vn -0.7168 -0.3702 0.5909 -vn -0.0822 -0.6000 0.7957 -vn -0.6767 -0.2422 0.6953 -vn -0.9125 0.1216 -0.3905 -vn -0.9940 0.0221 -0.1068 -vn -0.9139 -0.0027 -0.4059 -vn -0.9673 0.2232 0.1202 -vn -0.9954 -0.0433 0.0853 -vn -0.9560 0.1006 0.2757 -vn -0.9685 -0.0991 0.2284 -vn -0.9504 -0.2074 0.2318 -vn -0.9883 0.1182 0.0969 -vn -0.4530 0.2801 -0.8464 -vn -0.4864 0.0390 -0.8729 -vn -0.9142 0.0704 -0.3992 -vn -0.1396 0.2721 -0.9521 -vn -0.0360 0.1283 -0.9911 -vn -0.8460 0.1204 -0.5194 -vn -0.9076 0.3995 -0.1294 -vn -0.4854 0.7468 -0.4545 -vn -0.5755 0.8091 -0.1186 -vn -0.0534 0.7747 -0.6301 -vn -0.3445 0.4756 -0.8094 -vn -0.9779 -0.0642 -0.1992 -vn -0.9947 0.0245 -0.0996 -vn -0.9931 -0.0834 -0.0820 -vn -0.9058 -0.1444 -0.3984 -vn -0.9566 0.2613 0.1289 -vn -0.9201 -0.3126 0.2362 -vn -0.9313 -0.3635 0.0218 -vn -0.9227 -0.2852 0.2592 -vn -0.9128 -0.3909 0.1182 -vn -0.9312 -0.3570 0.0740 -vn -0.9684 -0.1692 0.1830 -vn -0.9038 -0.3696 0.2156 -vn -0.9809 -0.1776 0.0789 -vn -0.9786 -0.2002 0.0480 -vn -0.9987 -0.0475 -0.0201 -vn -0.9688 0.2308 0.0903 -vn -0.9376 0.0952 0.3344 -vn -0.9649 0.1135 0.2367 -vn -0.9495 0.2763 0.1486 -vn -0.9832 0.0556 0.1736 -vn -0.9844 0.1276 0.1212 -vn -0.9290 0.2500 0.2729 -vn -0.9956 -0.0665 0.0653 -vn -0.9625 -0.0724 0.2614 -vn -0.9851 -0.1084 0.1335 -vn -0.9833 -0.0502 0.1751 -vn -0.9846 -0.0087 0.1745 -vn -0.9900 0.1007 0.0988 -vn -0.8989 0.0907 0.4287 -vn -0.9942 -0.0403 -0.1002 -vn -0.9968 -0.0448 -0.0663 -vn -0.8695 -0.2858 -0.4029 -vn -0.9335 -0.3023 -0.1926 -vn -0.9089 -0.4170 0.0072 -vn -0.9846 -0.1696 0.0430 -vn -0.9932 -0.0221 -0.1146 -vn -0.9900 0.0999 -0.0998 -vn -0.9920 0.1239 -0.0234 -vn -0.5747 0.5494 0.6065 -vn -0.8998 0.4026 0.1680 -vn -0.0745 0.7122 0.6980 -vn -0.3706 0.2403 0.8972 -vn -0.0963 -0.2070 0.9736 -vn -0.0758 0.2517 0.9648 -vn -0.6409 -0.7662 -0.0458 -vn -0.9298 -0.2330 0.2848 -vn 0.0000 -0.5750 0.8182 -vn 0.0000 -0.5750 -0.8182 -vn 0.0000 -0.8182 -0.5750 -vn 0.0000 0.5750 0.8182 -vn 0.0000 -0.0889 -0.9960 -vn 0.0000 -0.9239 -0.3826 -vn 0.0000 0.9239 -0.3826 -vn 0.0000 0.9675 -0.2527 -vn 0.0000 -0.3827 -0.9239 -vn 0.0000 0.3827 -0.9239 -vn -0.0000 0.8629 -0.5054 -vn 0.0000 -0.9676 -0.2526 -vn -0.0000 -0.8629 -0.5054 -vn 0.0002 -0.9676 -0.2526 -vn 0.0000 0.9906 0.1368 -vn 0.0000 0.6038 0.7972 -vn 0.0000 0.7972 0.6038 -vn 0.0000 -0.1368 0.9906 -vn 0.0000 0.1368 0.9906 -vn 0.0000 -0.7972 0.6037 -vn -0.0000 -0.6038 0.7972 -vn 0.0000 -0.7972 0.6038 -vn 0.0000 -0.9906 -0.1368 -vn 0.0000 -0.9906 0.1368 -vn 0.0000 -0.6038 -0.7972 -vn 0.0000 -0.7972 -0.6038 -vn 0.0000 0.1368 -0.9906 -vn 0.0000 -0.1368 -0.9906 -vn -1.0000 0.0000 0.0037 -vn -1.0000 0.0000 0.0075 -vn 0.0000 0.7972 -0.6038 -vn 0.0000 0.6038 -0.7972 -vn -0.5344 0.1812 0.8256 -vn -0.5073 -0.3627 0.7818 -vn -0.5247 -0.1884 0.8302 -vn -0.3422 0.8174 0.4635 -vn -0.5018 0.4301 0.7505 -vn 0.0000 0.9906 -0.1368 -vn 0.0138 0.7488 -0.6626 -vn -0.0105 0.4047 -0.9144 -vn 0.0087 0.3748 -0.9271 -vn 0.0713 0.8730 -0.4825 -vn -0.0055 0.9136 -0.4067 -vn -0.9958 -0.0324 -0.0853 -vn -0.9474 -0.3190 -0.0268 -vn 0.9932 -0.0426 -0.1083 -vn 0.9930 -0.0531 -0.1054 -vn 0.9015 -0.4270 -0.0701 -vn 0.9474 -0.3190 -0.0268 -vn 0.4260 -0.8999 -0.0934 -vn -0.4482 -0.5058 0.7370 -vn -0.4877 -0.5255 0.6971 -vn -0.9280 -0.3587 -0.1012 -vn -0.8534 -0.4727 -0.2197 -vn -0.4260 -0.8989 -0.1030 -vn 0.9394 -0.1625 -0.3019 -vn 0.5145 -0.3209 0.7952 -vn 0.9295 -0.1383 0.3419 -vn 0.9268 -0.1407 0.3483 -vn -0.6818 -0.5955 -0.4249 -vn -0.9911 0.0000 0.1331 -vn -0.9978 -0.0000 0.0666 -vn 0.9404 0.1281 -0.3149 -vn 0.9304 0.1374 -0.3398 -vn -0.0000 -0.9918 0.1279 -vn -0.0000 -0.9960 -0.0893 -vn 0.1721 0.4024 -0.8991 -vn 0.0000 0.4238 -0.9058 -vn -0.9476 -0.1416 -0.2864 -vn -0.9930 -0.0531 -0.1054 -vn -0.9476 -0.1416 -0.2865 -vn 0.8934 -0.3903 -0.2225 -vn -1.0000 -0.0006 0.0001 -vn -1.0000 -0.0010 -0.0002 -vn -0.9886 -0.0584 0.1389 -vn -1.0000 0.0000 -0.0006 -vn -1.0000 0.0008 -0.0005 -vn -0.8859 -0.1792 0.4279 -vn -0.9569 -0.1081 0.2694 -vn -0.9391 -0.1502 0.3090 -vn -0.9371 -0.1343 0.3223 -vn 0.4203 -0.4751 0.7730 -vn 0.3339 -0.2816 0.8996 -vn 0.8896 -0.1729 0.4226 -vn -0.9473 0.1523 -0.2819 -vn -0.9802 0.0091 -0.1979 -vn -0.2835 -0.4795 -0.8305 -vn -0.2965 -0.1206 -0.9474 -vn -0.0364 0.1142 -0.9928 -vn 0.9363 0.1191 -0.3304 -vn -0.9363 0.1191 -0.3304 -vn 0.9910 0.0439 -0.1265 -vn -0.9910 0.0439 -0.1265 -vn -0.8724 -0.1036 0.4777 -vn -0.9603 0.0267 0.2778 -vn -0.9801 -0.1117 0.1641 -vn -0.9999 -0.0132 -0.0001 -vn -0.9719 -0.0333 0.2329 -vn -0.9376 0.1183 -0.3271 -vn -0.9212 0.1912 -0.3389 -vn 0.0000 -0.9072 -0.4206 -vn 0.0208 -0.2762 -0.9609 -vn 0.0000 0.2238 -0.9746 -vn 0.0000 0.1500 -0.9887 -vn -0.9257 -0.1856 -0.3295 -vn -0.9477 -0.2262 -0.2251 -vn -0.9436 -0.3063 -0.1256 -vn -0.5812 -0.6406 -0.5019 -vn -0.0857 0.9400 -0.3302 -vn -0.0807 0.8763 -0.4749 -vn 0.0006 0.2651 -0.9642 -vn -0.9910 0.0440 -0.1265 -vn -0.9363 0.1191 -0.3303 -vn -0.4139 0.3096 -0.8560 -vn -0.3758 -0.8080 -0.4538 -vn -0.3691 -0.8001 -0.4728 -vn -0.3743 -0.7996 -0.4696 -vn -0.3715 0.2637 -0.8902 -vn -0.3430 0.0002 -0.9393 -vn -0.3595 0.1300 -0.9240 -vn -0.3937 -0.6141 -0.6841 -vn 0.9227 -0.2852 0.2592 -vn 0.8989 0.0907 0.4287 -vn 0.6998 -0.1880 0.6892 -vn 0.9504 -0.2074 0.2318 -vn 0.9201 -0.3126 0.2362 -vn 0.6767 -0.2422 0.6953 -vn 0.9649 0.1135 0.2367 -vn 0.9883 0.1182 0.0969 -vn 0.7168 -0.3702 0.5909 -vn 0.9376 0.0952 0.3344 -vn 0.9560 0.1006 0.2757 -vn 0.4864 0.0390 -0.8729 -vn 0.9142 0.0704 -0.3992 -vn 0.9058 -0.1444 -0.3984 -vn 0.0717 -0.2461 -0.9666 -vn 0.0360 0.1283 -0.9911 -vn 0.9139 -0.0027 -0.4059 -vn 0.9125 0.1216 -0.3905 -vn 0.8460 0.1204 -0.5194 -vn 0.9083 -0.1711 -0.3818 -vn 0.4795 -0.1233 -0.8689 -vn 0.8695 -0.2858 -0.4029 -vn 0.3927 -0.4709 -0.7900 -vn 0.8737 -0.1315 -0.4684 -vn 0.3129 -0.4800 -0.8196 -vn 0.8872 0.2205 -0.4054 -vn 0.3805 -0.0664 -0.9224 -vn 0.5755 0.8091 -0.1186 -vn 0.3592 0.8985 0.2523 -vn 0.8999 0.4025 0.1679 -vn 0.0333 -0.3953 -0.9180 -vn -0.0238 -0.5460 -0.8375 -vn -0.0633 -0.2827 -0.9571 -vn -0.0221 0.3133 -0.9494 -vn 0.3445 0.4756 -0.8094 -vn 0.0128 -0.0140 -0.9998 -vn 0.0009 0.2043 -0.9789 -vn 0.9968 -0.0448 -0.0663 -vn 0.9932 -0.0221 -0.1146 -vn 0.9089 -0.4170 0.0072 -vn 0.9846 -0.1696 0.0430 -vn 0.9298 -0.2330 0.2848 -vn 0.4446 -0.3490 -0.8249 -vn 0.9076 0.3995 -0.1294 -vn 0.0550 0.2948 -0.9540 -vn 0.0963 -0.2070 0.9736 -vn 0.0822 -0.6000 0.7957 -vn 0.9940 0.0221 -0.1068 -vn 0.9954 -0.0433 0.0853 -vn 0.4530 0.2801 -0.8464 -vn 0.4854 0.7468 -0.4545 -vn 0.0534 0.7747 -0.6301 -vn 0.9920 0.1239 -0.0234 -vn 0.9900 0.0999 -0.0998 -vn 0.9900 0.1007 0.0988 -vn 0.9862 -0.0041 -0.1656 -vn -0.1765 -0.9638 -0.1996 -vn 0.6818 -0.5955 -0.4249 -vn 0.3051 -0.5726 -0.7609 -vn 0.2122 -0.9513 -0.2235 -vn 0.0000 0.0901 -0.9959 -vn 0.4259 -0.8802 -0.2092 -vn 0.9999 0.0167 0.0007 -vn 1.0000 0.0019 0.0034 -vn -0.0000 0.9018 -0.4322 -vn 0.0616 0.9395 -0.3370 -vn 0.0000 0.9364 -0.3510 -vn 0.0857 0.9400 -0.3302 -vn 0.0516 0.7096 -0.7027 -vn -0.0000 0.1126 -0.9936 -vn -0.0000 0.2651 -0.9642 -vn 0.0000 0.2199 -0.9755 -vn -0.0000 0.9018 -0.4321 -vn -0.0613 0.7646 -0.6415 -vn 0.9666 0.0118 -0.2559 -vn 0.9053 -0.1764 0.3864 -vn 0.9477 -0.2262 -0.2251 -vn 0.9436 -0.3063 -0.1256 -vn 0.9389 -0.2242 0.2612 -vn 0.9776 -0.1677 0.1269 -vn 0.9978 -0.0000 0.0666 -vn 0.9257 -0.1856 -0.3295 -vn -0.8895 0.4570 0.0000 -vn -0.2763 0.9611 0.0002 -vn -0.5527 0.8333 0.0001 -vn -0.9736 0.2284 -0.0000 -vn -0.0976 -0.7838 0.6132 -vn -0.6439 -0.6219 -0.4457 -vn -0.0928 -0.7999 -0.5929 -vn -0.0690 -0.9541 -0.2914 -vn -0.4446 -0.3490 -0.8249 -vn -0.3592 0.8985 0.2523 -vn -0.1134 0.9756 -0.1878 -vn -0.0002 0.2043 -0.9789 -vn -0.0550 0.2948 -0.9540 -vn -0.6998 -0.1881 0.6892 -vn -0.9083 -0.1711 -0.3818 -vn -0.0717 -0.2461 -0.9666 -vn -0.4795 -0.1233 -0.8689 -vn -0.3927 -0.4709 -0.7900 -vn -0.3129 -0.4800 -0.8196 -vn -0.3805 -0.0664 -0.9224 -vn -0.0333 -0.3953 -0.9180 -vn 0.0238 -0.5460 -0.8375 -vn 0.0633 -0.2827 -0.9571 -vn 0.0221 0.3133 -0.9494 -vn -0.0128 -0.0140 -0.9998 -vn 0.9673 0.2232 0.1202 -vn 0.9685 -0.0991 0.2284 -vn 0.1396 0.2721 -0.9521 -vn 0.9779 -0.0642 -0.1992 -vn 0.9931 -0.0834 -0.0820 -vn 0.9335 -0.3023 -0.1926 -vn 0.9566 0.2613 0.1289 -vn 0.9313 -0.3635 0.0219 -vn 0.9128 -0.3909 0.1182 -vn 0.9786 -0.2002 0.0480 -vn 0.9312 -0.3570 0.0740 -vn 0.9038 -0.3696 0.2156 -vn 0.9684 -0.1692 0.1830 -vn 0.9809 -0.1776 0.0789 -vn 0.9987 -0.0475 -0.0201 -vn 0.9688 0.2308 0.0903 -vn 0.9495 0.2763 0.1486 -vn 0.9290 0.2500 0.2729 -vn 0.9844 0.1276 0.1212 -vn 0.9832 0.0556 0.1736 -vn 0.9956 -0.0665 0.0653 -vn 0.9625 -0.0724 0.2614 -vn 0.9851 -0.1084 0.1335 -vn 0.9833 -0.0502 0.1751 -vn 0.9846 -0.0087 0.1745 -vn 0.9942 -0.0403 -0.1002 -vn 0.9947 0.0245 -0.0996 -vn 0.5747 0.5494 0.6065 -vn 0.3706 0.2403 0.8972 -vn 0.0745 0.7122 0.6980 -vn 0.0758 0.2517 0.9648 -vn 0.6409 -0.7662 -0.0458 -vn 0.1193 -0.7677 0.6296 -vn 0.0973 -0.7840 0.6130 -vn 0.6439 -0.6219 -0.4457 -vn 0.0928 -0.7999 -0.5929 -vn 0.1134 0.9756 -0.1878 -vn 0.0654 0.9680 0.2423 -vn -0.3723 -0.3800 -0.8468 -vn -0.6432 -0.3414 -0.6854 -vn -0.4592 -0.4012 -0.7925 -vn -0.4263 -0.8678 -0.2554 -vn -0.3935 0.1531 -0.9065 -vn -0.5149 0.4477 -0.7311 -vn -0.4133 0.4461 -0.7938 -vn -0.9212 0.1912 -0.3390 -vn -0.9375 0.1183 -0.3271 -vn 0.9999 0.0135 -0.0099 -vn 0.9998 0.0213 0.0011 -vn 0.9996 0.0271 0.0029 -vn -0.9998 0.0213 0.0011 -vn -0.9996 0.0271 0.0029 -vn -0.9997 0.0252 0.0067 -vn 0.8895 0.4570 0.0000 -vn 0.9736 0.2284 0.0000 -vn 0.4196 0.9077 0.0000 -vn -0.0000 -0.9568 -0.2908 -vn -0.9999 0.0167 0.0007 -vn -0.9995 0.0314 -0.0020 -vn -0.0004 -0.2799 0.9600 -vn 0.0001 -0.5968 0.8024 -vn -0.0004 -0.5061 0.8625 -vn 0.0001 -0.7783 0.6279 -vn 0.0000 -0.8622 0.5066 -vn 0.0000 -0.9667 0.2558 -vn -0.0004 -0.2668 0.9638 -vn -0.9911 -0.0000 0.1332 -vn -0.9894 -0.1160 0.0873 -vn 0.8417 -0.2936 0.4532 -vn 0.4395 -0.3448 0.8294 -vn 0.4540 -0.0806 0.8873 -vn -1.0000 0.0006 0.0012 -vn 1.0000 0.0095 -0.0023 -vn 0.9997 0.0252 0.0067 -vn 0.0001 0.2199 -0.9755 -vn -0.0616 0.9395 -0.3370 -vn -0.4392 0.0051 0.8984 -vn -0.3221 -0.2815 0.9039 -vn -0.4149 -0.3225 0.8508 -vn -0.4184 -0.0205 0.9080 -vn 0.0147 -0.3602 0.9328 -vn -0.3221 -0.2814 0.9039 -vn -0.1337 0.9663 0.2198 -vn -0.9800 0.0000 0.1988 -vn -0.5451 0.8383 0.0000 -vn -0.2015 0.9795 0.0001 -vn -0.9362 0.3516 0.0001 -vn -0.9334 -0.3588 -0.0000 -vn -0.5359 -0.8443 -0.0000 -vn -0.0000 0.9989 0.0471 -vn 0.0000 0.9992 0.0392 -vn 0.0000 0.9931 0.1175 -vn 0.0000 0.9992 0.0393 -vn 0.1595 0.9872 0.0003 -vn 0.9363 0.3512 0.0000 -vn 0.9362 0.3516 0.0001 -vn 0.5451 0.8383 0.0001 -vn 0.9334 -0.3588 -0.0000 -vn 0.4063 -0.9137 -0.0000 -vn -0.2679 -0.9634 -0.0000 -vn 0.0000 -0.5363 0.8440 -vn -0.0005 -0.5361 0.8442 -vn 0.0000 -0.8176 -0.5758 -vn -0.9850 -0.0671 0.1589 -vn 0.4464 -0.6134 0.6515 -vn 0.0000 -0.9239 0.3827 -vn 0.0000 -0.7929 0.6094 -vn 0.4465 -0.6134 0.6515 -vn 0.0655 0.8693 0.4899 -vn 0.0479 0.9748 0.2177 -vn 0.0450 0.9407 0.3362 -vn 1.0000 -0.0001 -0.0003 -vn 1.0000 0.0004 -0.0008 -vn 1.0000 -0.0007 -0.0006 -vn 0.9756 -0.0842 0.2027 -vn 1.0000 0.0004 -0.0001 -vn 0.4540 -0.0805 0.8873 -vn 0.0000 -0.1298 0.9915 -vn 0.0112 -0.9503 0.3111 -vn 1.0000 0.0002 -0.0001 -vn 1.0000 -0.0007 -0.0000 -vn 0.0000 -0.7071 0.7071 -vn 0.0000 0.6037 0.7972 -vn 0.0000 0.7972 0.6037 -vn 0.0000 0.7071 -0.7071 -vn 0.4240 0.3427 -0.8383 -vn -0.9999 0.0135 -0.0099 -vn 0.4193 0.9079 0.0001 -vn -1.0000 0.0095 -0.0023 -vn 0.0001 -0.7972 -0.6037 -vn 0.0000 -0.6037 -0.7972 -vn -0.1722 0.3928 -0.9033 -vn 0.0000 -0.9929 -0.1193 -vn 0.9911 0.0000 0.1332 -vn 0.0000 -0.9478 0.3188 -vn 0.0000 -0.4448 0.8956 -vn -0.0000 -0.8814 -0.4724 -vn -0.9418 0.2820 0.1830 -vn -0.7726 0.5655 0.2886 -vn 0.0646 -0.2831 0.9569 -vn 0.0405 -0.5936 0.8037 -vn 0.5073 -0.3627 0.7818 -vn 0.5247 -0.1884 0.8302 -vn 0.4877 -0.5255 0.6971 -vn 0.3422 0.8174 0.4635 -vn 0.1337 0.9663 0.2198 -vn 0.5018 0.4301 0.7505 -vn 0.5344 0.1812 0.8256 -vn 1.0000 -0.0000 0.0037 -vn 1.0000 0.0000 0.0075 -vn 0.0674 0.0000 0.9977 -vn 0.9894 -0.1160 0.0873 -vn 0.9344 -0.2629 0.2404 -vn -0.9978 -0.0354 0.0555 -vn 0.9575 -0.1436 0.2500 -vn 0.9800 0.0000 0.1988 -vn 0.0000 -0.2272 0.9739 -vn 0.0002 0.6059 0.7955 -vn 0.0000 0.8184 0.5746 -vn -0.0002 0.3029 0.9530 -vn 0.0000 0.6605 0.7508 -vn 0.0000 -0.3632 0.9317 -vn 0.0000 -0.9906 0.1367 -vn 0.4395 -0.3449 0.8294 -vn 0.3228 -0.2420 0.9150 -vn 0.9719 -0.0333 0.2329 -vn 0.9603 0.0267 0.2778 -vn 0.4392 0.0417 0.8974 -vn 0.4198 -0.1075 0.9012 -vn -0.0197 -0.3607 0.9325 -vn -0.0257 -0.3607 0.9323 -vn 0.5470 -0.3017 0.7809 -vn 0.9801 -0.1117 0.1641 -vn 0.8724 -0.1036 0.4777 -vn -0.4184 -0.0204 0.9080 -vn 0.0385 -0.3613 0.9316 -vn 0.5470 -0.3018 0.7808 -vn 0.4198 -0.1076 0.9012 -vn 1.0000 0.0009 -0.0015 -vn 1.0000 0.0001 -0.0016 -vn 1.0000 0.0006 0.0012 -vn 0.0000 -0.4993 0.8664 -vn 0.0000 -0.2667 0.9638 -vn -0.0000 0.0459 0.9989 -vn 0.0000 -0.0351 0.9994 -vn 0.0006 -0.3409 0.9401 -vn 0.0003 -0.5061 0.8625 -vn 0.0003 -0.3136 0.9496 -vn -0.0000 -0.7783 0.6279 -vn -0.0001 -0.5968 0.8024 -vn 0.0000 0.9970 -0.0770 -vn 0.0000 0.8727 -0.4883 -vn -0.0001 0.9526 -0.3041 -vn -0.0000 0.5657 -0.8246 -vn 0.0000 0.6710 -0.7415 -vn 0.0000 0.9914 0.1311 -vn -0.0000 0.9993 -0.0385 -vn 0.0000 0.1546 -0.9880 -vn 0.0000 0.3091 -0.9510 -vn -0.0000 0.8635 0.5044 -vn -0.0000 0.9650 0.2623 -vn 0.0000 -0.1761 -0.9844 -vn 0.0000 -0.0880 -0.9961 -vn -0.0000 0.6016 0.7988 -vn 0.0000 0.7882 0.6154 -vn -0.0000 -0.5913 -0.8065 -vn 0.0000 -0.4311 -0.9023 -vn 0.0000 0.2927 0.9562 -vn -0.0000 0.4905 0.8714 -vn 0.0000 -0.8104 -0.5859 -vn 0.0000 0.2098 0.9777 -vn -0.0002 -0.2799 0.9600 -vn 0.9212 0.1912 -0.3390 -vn 0.9375 0.1183 -0.3271 -vn 0.9363 0.1191 -0.3303 -vn 0.5457 0.2840 -0.7884 -vn 0.4129 0.3969 -0.8198 -vn 0.3689 0.4766 -0.7979 -vn 0.9473 0.1523 -0.2819 -vn 0.5471 0.1521 -0.8231 -vn 0.4428 -0.7141 -0.5422 -vn 0.4578 -0.2885 -0.8409 -vn 0.6432 -0.3414 -0.6854 -vn 0.2347 -0.0372 -0.9713 -vn 0.3723 -0.3800 -0.8468 -vn 0.3937 -0.6141 -0.6841 -vn 0.3430 0.0002 -0.9393 -vn 0.3691 -0.8001 -0.4728 -vn 0.3715 0.2637 -0.8902 -vn 0.4024 0.2750 -0.8731 -vn 0.3595 0.1300 -0.9240 -vn 0.3758 -0.8080 -0.4538 -vn 0.3743 -0.7997 -0.4695 -vn 0.9910 0.0440 -0.1265 -vn 0.9212 0.1912 -0.3389 -vn 0.9376 0.1183 -0.3271 -vn 0.9999 -0.0132 -0.0001 -vn -0.5587 0.3131 -0.7680 -vn -0.1722 0.3928 -0.9034 -vn -0.9404 0.1281 -0.3149 -vn -0.9295 -0.1383 0.3419 -vn -0.9268 -0.1407 0.3483 -vn -0.3897 -0.3446 0.8541 -vn -0.3829 -0.3454 0.8568 -vn -0.9268 -0.1406 0.3483 -vn 0.2529 -0.3618 0.8973 -vn 0.1722 0.4024 -0.8991 -vn -0.0000 -0.6037 0.7972 -vn -0.4024 0.2750 -0.8731 -vn 0.9995 0.0314 -0.0020 -vn -0.1193 -0.7677 0.6296 -vn -0.0654 0.9680 0.2423 -vn 0.0690 -0.9541 -0.2914 -vn -1.0000 0.0019 0.0034 -vn -0.9363 0.3512 0.0000 -vn 0.0373 0.8327 0.5525 -vn 0.0000 0.1951 0.9808 -vn 0.0000 -0.9574 0.2887 -vn 0.0000 0.3827 0.9239 -vn 0.4482 -0.5058 0.7370 -vn 0.0004 -0.3409 0.9401 -vn -0.9304 0.1374 -0.3398 +vn 0.9978 -0.0661 -0.0000 +vn 0.9978 0.0661 -0.0000 +vn -0.9978 -0.0661 -0.0000 +vn 0.0661 -0.9978 -0.0000 +vn -0.0001 -0.8629 -0.5054 +vn -0.0000 -0.9675 -0.2527 +vn -0.0001 -0.5054 -0.8629 +vn -0.0000 0.2527 -0.9675 +vn -0.0000 0.5054 -0.8629 +vn -0.0000 -0.2527 -0.9675 +vn -0.0000 0.9675 -0.2527 +vn 0.0001 0.8629 -0.5054 +vn -1.0000 -0.0000 -0.0068 +vn -1.0000 -0.0000 -0.0028 +vn -0.0000 -0.3821 0.9241 +vn 0.3738 0.9275 -0.0000 +vn 0.0001 0.7210 -0.6930 +vn 0.7948 0.6069 -0.0002 +vn -0.6262 0.7797 -0.0001 +vn 0.7948 0.6069 0.0002 +vn -0.0000 -0.9849 0.1731 +vn -0.9987 -0.0000 0.0512 +vn -1.0000 0.0026 -0.0000 +vn 0.0662 0.9978 -0.0000 +vn 0.9715 -0.0000 -0.2370 +vt 0.665882 0.347767 +vt 0.666023 0.347766 +vt 0.666162 0.347974 +vt 0.668422 0.348903 +vt 0.668420 0.348450 +vt 0.668128 0.348707 +vt 0.670331 0.347891 +vt 0.670113 0.347891 +vt 0.670112 0.348138 +vt 0.648961 0.347035 +vt 0.648963 0.347711 +vt 0.650088 0.347182 +vt 0.670330 0.348139 +vt 0.670330 0.348216 +vt 0.671351 0.348220 +vt 0.671351 0.348142 +vt 0.655673 0.344315 +vt 0.655725 0.344372 +vt 0.655911 0.344201 +vt 0.649593 0.340884 +vt 0.649645 0.341960 +vt 0.649646 0.340955 +vt 0.656134 0.344371 +vt 0.649941 0.340885 +vt 0.655073 0.340475 +vt 0.655070 0.339797 +vt 0.654996 0.339724 +vt 0.671575 0.327451 +vt 0.671356 0.327477 +vt 0.671982 0.327480 +vt 0.644693 0.340192 +vt 0.644385 0.340134 +vt 0.644557 0.340283 +vt 0.644700 0.340269 +vt 0.647509 0.341099 +vt 0.649593 0.340718 +vt 0.646875 0.340713 +vt 0.646368 0.340876 +vt 0.650439 0.347369 +vt 0.650243 0.347332 +vt 0.648903 0.346602 +vt 0.648902 0.346797 +vt 0.650571 0.346464 +vt 0.653087 0.342196 +vt 0.653087 0.342119 +vt 0.652263 0.341965 +vt 0.653089 0.340724 +vt 0.649942 0.340719 +vt 0.652265 0.340960 +vt 0.652957 0.336625 +vt 0.652061 0.336628 +vt 0.652064 0.337317 +vt 0.653168 0.336809 +vt 0.656866 0.340895 +vt 0.655346 0.340806 +vt 0.653970 0.340890 +vt 0.671253 0.338233 +vt 0.671472 0.338233 +vt 0.671470 0.337557 +vt 0.652046 0.346806 +vt 0.665497 0.338599 +vt 0.665663 0.338599 +vt 0.665663 0.338404 +vt 0.647507 0.341802 +vt 0.653089 0.340802 +vt 0.669772 0.341914 +vt 0.669364 0.341701 +vt 0.670181 0.341704 +vt 0.650766 0.346427 +vt 0.652276 0.346675 +vt 0.652808 0.346599 +vt 0.652882 0.346653 +vt 0.666531 0.348446 +vt 0.666675 0.348446 +vt 0.666674 0.348692 +vt 0.671544 0.335436 +vt 0.671154 0.335438 +vt 0.671154 0.335634 +vt 0.671512 0.335403 +vt 0.671191 0.335404 +vt 0.653306 0.342119 +vt 0.653308 0.340802 +vt 0.653969 0.341610 +vt 0.653969 0.341314 +vt 0.657096 0.340687 +vt 0.657251 0.340835 +vt 0.657446 0.340872 +vt 0.666338 0.341178 +vt 0.666344 0.341136 +vt 0.666141 0.341132 +vt 0.671982 0.327709 +vt 0.671281 0.327706 +vt 0.671277 0.328466 +vt 0.671424 0.328610 +vt 0.671831 0.328612 +vt 0.671979 0.328470 +vt 0.645308 0.342022 +vt 0.646366 0.342024 +vt 0.645309 0.341798 +vt 0.654435 0.342121 +vt 0.654435 0.342199 +vt 0.654781 0.342199 +vt 0.671983 0.325746 +vt 0.671796 0.325132 +vt 0.671793 0.326094 +vt 0.671982 0.325897 +vt 0.672220 0.326096 +vt 0.671777 0.334214 +vt 0.671776 0.334827 +vt 0.672010 0.334827 +vt 0.653873 0.340803 +vt 0.653654 0.340803 +vt 0.655346 0.340729 +vt 0.655001 0.340728 +vt 0.655001 0.340805 +vt 0.653654 0.340725 +vt 0.653308 0.340725 +vt 0.671788 0.332239 +vt 0.671789 0.331098 +vt 0.671711 0.331172 +vt 0.652553 0.348753 +vt 0.652553 0.349106 +vt 0.652681 0.349106 +vt 0.672085 0.331172 +vt 0.672007 0.331098 +vt 0.672006 0.332240 +vt 0.656870 0.341615 +vt 0.668193 0.332067 +vt 0.669156 0.332072 +vt 0.669169 0.329174 +vt 0.671795 0.322170 +vt 0.671872 0.322170 +vt 0.671867 0.321028 +vt 0.672090 0.322169 +vt 0.672168 0.322168 +vt 0.672163 0.321101 +vt 0.668481 0.329171 +vt 0.668206 0.329389 +vt 0.666338 0.332059 +vt 0.666535 0.332060 +vt 0.666549 0.329162 +vt 0.652436 0.348631 +vt 0.652336 0.348753 +vt 0.671870 0.322396 +vt 0.671793 0.322471 +vt 0.671795 0.323538 +vt 0.670269 0.345604 +vt 0.670270 0.345453 +vt 0.670505 0.345454 +vt 0.672166 0.322470 +vt 0.672088 0.322396 +vt 0.672090 0.323538 +vt 0.645310 0.341095 +vt 0.667770 0.332065 +vt 0.666770 0.332061 +vt 0.666784 0.329163 +vt 0.671056 0.346443 +vt 0.670979 0.346517 +vt 0.670974 0.347585 +vt 0.670666 0.345804 +vt 0.670503 0.345803 +vt 0.670504 0.345605 +vt 0.671270 0.347586 +vt 0.671347 0.347586 +vt 0.671352 0.346519 +vt 0.667782 0.329387 +vt 0.667509 0.329166 +vt 0.666922 0.332062 +vt 0.666935 0.329164 +vt 0.671361 0.326336 +vt 0.671283 0.326410 +vt 0.671279 0.327477 +vt 0.667157 0.332063 +vt 0.667170 0.329165 +vt 0.657272 0.345497 +vt 0.657273 0.344680 +vt 0.657191 0.344600 +vt 0.671652 0.327452 +vt 0.671656 0.326411 +vt 0.651028 0.346127 +vt 0.650922 0.346278 +vt 0.655755 0.344598 +vt 0.655674 0.344677 +vt 0.655673 0.345494 +vt 0.645310 0.340874 +vt 0.654782 0.340805 +vt 0.653652 0.342120 +vt 0.653968 0.342037 +vt 0.653873 0.340726 +vt 0.654218 0.340804 +vt 0.654219 0.340726 +vt 0.654437 0.340804 +vt 0.654782 0.340727 +vt 0.672010 0.334979 +vt 0.671775 0.334978 +vt 0.671775 0.335176 +vt 0.672199 0.335177 +vt 0.672223 0.325134 +vt 0.653871 0.342120 +vt 0.655345 0.342200 +vt 0.655345 0.342122 +vt 0.655000 0.342122 +vt 0.653652 0.342197 +vt 0.656756 0.344189 +vt 0.656833 0.344189 +vt 0.656833 0.344045 +vt 0.671877 0.347120 +vt 0.671954 0.347119 +vt 0.671951 0.346443 +vt 0.671581 0.347121 +vt 0.671659 0.347121 +vt 0.671655 0.346445 +vt 0.656460 0.344190 +vt 0.656538 0.344190 +vt 0.656537 0.343971 +vt 0.671606 0.348023 +vt 0.671952 0.348024 +vt 0.671954 0.347348 +vt 0.667304 0.332303 +vt 0.667016 0.335199 +vt 0.666328 0.335196 +vt 0.671469 0.337246 +vt 0.671546 0.337245 +vt 0.671544 0.337101 +vt 0.671549 0.338232 +vt 0.671547 0.337557 +vt 0.667291 0.334981 +vt 0.669169 0.332311 +vt 0.669156 0.335209 +vt 0.668958 0.335208 +vt 0.652436 0.349228 +vt 0.652591 0.349228 +vt 0.672007 0.329730 +vt 0.672007 0.330872 +vt 0.672084 0.330872 +vt 0.669596 0.345601 +vt 0.669357 0.345600 +vt 0.669358 0.345449 +vt 0.671711 0.329804 +vt 0.671711 0.330872 +vt 0.671788 0.330872 +vt 0.667731 0.332305 +vt 0.667718 0.334983 +vt 0.668972 0.332310 +vt 0.668720 0.335207 +vt 0.672007 0.332466 +vt 0.672006 0.333607 +vt 0.672083 0.333608 +vt 0.669356 0.345798 +vt 0.669196 0.345797 +vt 0.671787 0.333607 +vt 0.671789 0.332465 +vt 0.671711 0.332540 +vt 0.667991 0.335204 +vt 0.668734 0.332309 +vt 0.668569 0.335206 +vt 0.654781 0.342122 +vt 0.656868 0.342041 +vt 0.672089 0.323764 +vt 0.672090 0.324906 +vt 0.672168 0.324906 +vt 0.668344 0.332307 +vt 0.668331 0.335205 +vt 0.668582 0.332308 +vt 0.656869 0.342187 +vt 0.655687 0.342123 +vt 0.653870 0.342198 +vt 0.654216 0.342198 +vt 0.671872 0.324906 +vt 0.671870 0.323765 +vt 0.671793 0.323839 +vt 0.654216 0.342121 +vt 0.671874 0.346444 +vt 0.644214 0.339986 +vt 0.644362 0.339846 +vt 0.644193 0.339756 +vt 0.644615 0.340046 +vt 0.644334 0.339545 +vt 0.644175 0.339559 +vt 0.661765 0.343274 +vt 0.661774 0.343476 +vt 0.661938 0.343468 +vt 0.644761 0.345897 +vt 0.644761 0.345737 +vt 0.644408 0.345736 +vt 0.661779 0.343575 +vt 0.661664 0.343724 +vt 0.661914 0.343724 +vt 0.666088 0.341451 +vt 0.652408 0.344048 +vt 0.653077 0.344280 +vt 0.652920 0.344378 +vt 0.644352 0.339741 +vt 0.665748 0.341793 +vt 0.665706 0.341738 +vt 0.663936 0.343063 +vt 0.644408 0.345896 +vt 0.644302 0.345896 +vt 0.644079 0.346130 +vt 0.644077 0.347117 +vt 0.645080 0.347119 +vt 0.645082 0.346132 +vt 0.667545 0.348453 +vt 0.667839 0.348708 +vt 0.667838 0.348452 +vt 0.671547 0.336174 +vt 0.671546 0.336029 +vt 0.671385 0.336030 +vt 0.645949 0.348760 +vt 0.645922 0.348760 +vt 0.645922 0.348928 +vt 0.645519 0.348898 +vt 0.645812 0.348899 +vt 0.645813 0.348759 +vt 0.645520 0.348758 +vt 0.645839 0.348927 +vt 0.645839 0.348759 +vt 0.665999 0.338618 +vt 0.666027 0.338619 +vt 0.666027 0.338335 +vt 0.671398 0.339640 +vt 0.671245 0.339741 +vt 0.671571 0.340011 +vt 0.671500 0.339488 +vt 0.671536 0.339308 +vt 0.671066 0.339776 +vt 0.669561 0.343988 +vt 0.669414 0.343844 +vt 0.670116 0.343846 +vt 0.669417 0.343083 +vt 0.670343 0.343087 +vt 0.670119 0.343086 +vt 0.670101 0.342715 +vt 0.670239 0.342384 +vt 0.670344 0.341862 +vt 0.670103 0.342052 +vt 0.669440 0.342050 +vt 0.669200 0.341858 +vt 0.669301 0.342381 +vt 0.669196 0.343083 +vt 0.669438 0.342713 +vt 0.669338 0.342202 +vt 0.669592 0.341949 +vt 0.670204 0.342205 +vt 0.670203 0.342563 +vt 0.669948 0.342816 +vt 0.669769 0.342851 +vt 0.669589 0.342815 +vt 0.669336 0.342560 +vt 0.669968 0.343989 +vt 0.669951 0.341950 +vt 0.665497 0.338404 +vt 0.665149 0.338488 +vt 0.665150 0.338600 +vt 0.664984 0.338600 +vt 0.665458 0.338243 +vt 0.665110 0.338327 +vt 0.670113 0.347813 +vt 0.669767 0.347812 +vt 0.671352 0.347895 +vt 0.671352 0.347817 +vt 0.670331 0.347814 +vt 0.669766 0.348137 +vt 0.669766 0.348214 +vt 0.670112 0.348215 +vt 0.644857 0.345897 +vt 0.666110 0.338571 +vt 0.666110 0.338335 +vt 0.666316 0.338619 +vt 0.666233 0.338571 +vt 0.666316 0.338647 +vt 0.646157 0.348929 +vt 0.646158 0.348622 +vt 0.671549 0.336766 +vt 0.671548 0.336570 +vt 0.671158 0.336572 +vt 0.671517 0.336801 +vt 0.671159 0.336768 +vt 0.668127 0.348451 +vt 0.666344 0.338619 +vt 0.666344 0.338363 +vt 0.666317 0.338336 +vt 0.666234 0.338336 +vt 0.646280 0.348929 +vt 0.646516 0.348930 +vt 0.646490 0.348762 +vt 0.646626 0.348903 +vt 0.646626 0.348763 +vt 0.646599 0.348763 +vt 0.646517 0.348762 +vt 0.646599 0.348931 +vt 0.646918 0.348904 +vt 0.646919 0.348764 +vt 0.665884 0.348220 +vt 0.666228 0.348025 +vt 0.666399 0.348073 +vt 0.667547 0.348906 +vt 0.666529 0.348691 +vt 0.666756 0.348819 +vt 0.669247 0.347752 +vt 0.669249 0.348205 +vt 0.668969 0.347962 +vt 0.668904 0.348013 +vt 0.668734 0.348063 +vt 0.666446 0.348817 +vt 0.669107 0.347753 +vt 0.651009 0.348764 +vt 0.651047 0.348947 +vt 0.651082 0.348764 +vt 0.650945 0.349104 +vt 0.650893 0.349053 +vt 0.651150 0.348791 +vt 0.651202 0.348842 +vt 0.651013 0.349131 +vt 0.651231 0.348909 +vt 0.651231 0.348982 +vt 0.651086 0.349131 +vt 0.651204 0.349050 +vt 0.651153 0.349102 +vt 0.650942 0.348793 +vt 0.650864 0.348986 +vt 0.650891 0.348845 +vt 0.650864 0.348913 +vt 0.672001 0.336533 +vt 0.671992 0.338283 +vt 0.672197 0.338284 +vt 0.672049 0.338339 +vt 0.672140 0.338340 +vt 0.665496 0.328592 +vt 0.665496 0.328721 +vt 0.665700 0.328722 +vt 0.649982 0.347032 +vt 0.655858 0.344144 +vt 0.654727 0.340476 +vt 0.654996 0.339627 +vt 0.671545 0.335632 +vt 0.672221 0.325898 +vt 0.672200 0.334214 +vt 0.671711 0.332239 +vt 0.652681 0.348753 +vt 0.672084 0.332240 +vt 0.656871 0.341319 +vt 0.671790 0.321103 +vt 0.672085 0.321027 +vt 0.666351 0.329161 +vt 0.652591 0.348631 +vt 0.671872 0.323538 +vt 0.672168 0.323538 +vt 0.671051 0.347585 +vt 0.671275 0.346444 +vt 0.657189 0.345576 +vt 0.671579 0.326337 +vt 0.655754 0.345574 +vt 0.654437 0.340727 +vt 0.672221 0.325747 +vt 0.654999 0.342199 +vt 0.653306 0.342197 +vt 0.656755 0.343970 +vt 0.671578 0.346445 +vt 0.656460 0.344046 +vt 0.671609 0.347347 +vt 0.666342 0.332298 +vt 0.671466 0.337028 +vt 0.646872 0.342185 +vt 0.652336 0.349106 +vt 0.672085 0.329805 +vt 0.669596 0.345450 +vt 0.671789 0.329730 +vt 0.672085 0.332540 +vt 0.671710 0.333607 +vt 0.672166 0.323838 +vt 0.655687 0.342193 +vt 0.671795 0.324906 +vt 0.652075 0.340487 +vt 0.653379 0.340482 +vt 0.652073 0.339798 +vt 0.661929 0.343266 +vt 0.666317 0.341361 +vt 0.663978 0.343119 +vt 0.671386 0.336174 +vt 0.665999 0.338362 +vt 0.664984 0.338489 +vt 0.669767 0.347890 +vt 0.666027 0.338646 +vt 0.671197 0.336802 +vt 0.646282 0.348623 +vt 0.672205 0.336534 +vt 0.665701 0.328592 +vt 0.645130 0.340230 +vt 0.645115 0.340070 +vt 0.644939 0.340169 +vt 0.644925 0.340018 +vt 0.653589 0.346722 +vt 0.653589 0.346671 +vt 0.654138 0.346662 +vt 0.665807 0.340688 +vt 0.656870 0.339398 +vt 0.655850 0.339403 +vt 0.655851 0.339547 +vt 0.669550 0.348136 +vt 0.669549 0.347891 +vt 0.669475 0.347964 +vt 0.654722 0.339409 +vt 0.653268 0.346667 +vt 0.645840 0.346789 +vt 0.648555 0.346796 +vt 0.648555 0.346685 +vt 0.653368 0.337690 +vt 0.653364 0.336650 +vt 0.645841 0.346452 +vt 0.655971 0.340807 +vt 0.656866 0.340731 +vt 0.655971 0.340730 +vt 0.671250 0.337251 +vt 0.671173 0.337252 +vt 0.671174 0.337355 +vt 0.671175 0.337452 +vt 0.671176 0.337555 +vt 0.671254 0.337557 +vt 0.670598 0.339307 +vt 0.670569 0.339021 +vt 0.670567 0.340009 +vt 0.668033 0.348210 +vt 0.668032 0.348119 +vt 0.671272 0.335785 +vt 0.654284 0.346628 +vt 0.654463 0.346686 +vt 0.654139 0.346714 +vt 0.653167 0.344749 +vt 0.668714 0.344925 +vt 0.673954 0.344135 +vt 0.665656 0.340670 +vt 0.665851 0.340483 +vt 0.665756 0.340431 +vt 0.664125 0.338873 +vt 0.663934 0.339073 +vt 0.665576 0.340641 +vt 0.654003 0.344111 +vt 0.654328 0.344094 +vt 0.654215 0.344297 +vt 0.669114 0.339976 +vt 0.644900 0.339700 +vt 0.651779 0.345198 +vt 0.651935 0.345050 +vt 0.652048 0.344354 +vt 0.651583 0.345233 +vt 0.662656 0.340850 +vt 0.659345 0.340602 +vt 0.659296 0.340678 +vt 0.674047 0.345242 +vt 0.653814 0.345328 +vt 0.653827 0.348209 +vt 0.646508 0.344057 +vt 0.649684 0.344093 +vt 0.649669 0.344043 +vt 0.669763 0.344216 +vt 0.669762 0.344374 +vt 0.669531 0.344215 +vt 0.665873 0.340511 +vt 0.669360 0.345109 +vt 0.665821 0.341739 +vt 0.654433 0.338957 +vt 0.656867 0.338944 +vt 0.656669 0.338713 +vt 0.656667 0.338361 +vt 0.654429 0.338141 +vt 0.656864 0.338360 +vt 0.656863 0.338096 +vt 0.653400 0.344098 +vt 0.653390 0.344296 +vt 0.652050 0.344171 +vt 0.649802 0.344145 +vt 0.656863 0.337912 +vt 0.654402 0.338030 +vt 0.656866 0.338712 +vt 0.655067 0.339300 +vt 0.655286 0.339299 +vt 0.654407 0.339067 +vt 0.655849 0.339296 +vt 0.656869 0.339171 +vt 0.655631 0.339297 +vt 0.652632 0.338147 +vt 0.652938 0.338146 +vt 0.652967 0.338035 +vt 0.662503 0.338903 +vt 0.662477 0.339733 +vt 0.662538 0.339781 +vt 0.670633 0.340349 +vt 0.670698 0.344205 +vt 0.674042 0.344163 +vt 0.655278 0.336619 +vt 0.655279 0.337686 +vt 0.655624 0.337686 +vt 0.662902 0.338878 +vt 0.662914 0.339780 +vt 0.662981 0.339739 +vt 0.645309 0.346450 +vt 0.645308 0.346788 +vt 0.666773 0.346076 +vt 0.666773 0.346282 +vt 0.668969 0.346283 +vt 0.652633 0.338379 +vt 0.652788 0.338378 +vt 0.642744 0.343779 +vt 0.670357 0.344943 +vt 0.661163 0.348102 +vt 0.661163 0.347939 +vt 0.655926 0.347949 +vt 0.674018 0.338472 +vt 0.669132 0.338416 +vt 0.661578 0.348101 +vt 0.661577 0.347938 +vt 0.661362 0.347939 +vt 0.661362 0.348102 +vt 0.662153 0.348100 +vt 0.662310 0.347937 +vt 0.661761 0.347938 +vt 0.670672 0.344629 +vt 0.670508 0.344764 +vt 0.670115 0.344376 +vt 0.669789 0.344760 +vt 0.652789 0.338731 +vt 0.652941 0.338962 +vt 0.670084 0.344762 +vt 0.670082 0.345113 +vt 0.670506 0.345115 +vt 0.670670 0.345116 +vt 0.652372 0.337694 +vt 0.670348 0.344219 +vt 0.655279 0.337793 +vt 0.656863 0.337685 +vt 0.655843 0.337686 +vt 0.655843 0.337793 +vt 0.653587 0.337690 +vt 0.653932 0.337689 +vt 0.653928 0.336621 +vt 0.654151 0.337688 +vt 0.654496 0.337687 +vt 0.654493 0.336620 +vt 0.652049 0.345739 +vt 0.651029 0.345736 +vt 0.662560 0.338873 +vt 0.666774 0.345670 +vt 0.668969 0.346078 +vt 0.666773 0.347043 +vt 0.668969 0.347044 +vt 0.670627 0.345147 +vt 0.673942 0.345184 +vt 0.646451 0.344107 +vt 0.661762 0.348101 +vt 0.670079 0.345801 +vt 0.669784 0.345800 +vt 0.669787 0.345111 +vt 0.670116 0.344218 +vt 0.654713 0.336619 +vt 0.654715 0.337686 +vt 0.655060 0.337686 +vt 0.655624 0.337793 +vt 0.653933 0.337796 +vt 0.653587 0.337797 +vt 0.653369 0.337798 +vt 0.654151 0.337795 +vt 0.655060 0.337793 +vt 0.654715 0.337794 +vt 0.656181 0.344310 +vt 0.655958 0.344139 +vt 0.652635 0.338964 +vt 0.652378 0.339418 +vt 0.652971 0.339073 +vt 0.655170 0.347691 +vt 0.655169 0.347353 +vt 0.653593 0.339306 +vt 0.653939 0.339305 +vt 0.653375 0.339415 +vt 0.653374 0.339307 +vt 0.655631 0.339404 +vt 0.655286 0.339406 +vt 0.655287 0.339550 +vt 0.655701 0.347689 +vt 0.668970 0.345671 +vt 0.668970 0.345465 +vt 0.652634 0.338732 +vt 0.668641 0.344399 +vt 0.670385 0.344396 +vt 0.671176 0.338233 +vt 0.671248 0.337030 +vt 0.645543 0.340191 +vt 0.650254 0.339752 +vt 0.650742 0.339545 +vt 0.669187 0.349359 +vt 0.669193 0.350916 +vt 0.655068 0.339554 +vt 0.655068 0.339408 +vt 0.645344 0.340210 +vt 0.645329 0.340050 +vt 0.645528 0.340032 +vt 0.653939 0.339413 +vt 0.669362 0.344758 +vt 0.669202 0.344621 +vt 0.654722 0.339302 +vt 0.669200 0.345108 +vt 0.653593 0.339414 +vt 0.653597 0.340482 +vt 0.653943 0.340480 +vt 0.654158 0.339412 +vt 0.654162 0.340479 +vt 0.654508 0.340478 +vt 0.654157 0.339304 +vt 0.654504 0.339410 +vt 0.654503 0.339303 +vt 0.666774 0.345464 +vt 0.668970 0.344705 +vt 0.659341 0.339758 +vt 0.659342 0.339807 +vt 0.644946 0.340247 +vt 0.652042 0.344901 +vt 0.645109 0.340001 +vt 0.665779 0.341683 +vt 0.661666 0.343279 +vt 0.661676 0.343481 +vt 0.653725 0.344114 +vt 0.653832 0.344119 +vt 0.653822 0.344318 +vt 0.654014 0.344308 +vt 0.654333 0.346558 +vt 0.655311 0.344043 +vt 0.655447 0.346648 +vt 0.661438 0.342326 +vt 0.661436 0.342143 +vt 0.657096 0.342143 +vt 0.661436 0.342509 +vt 0.657096 0.342326 +vt 0.661430 0.342692 +vt 0.657096 0.342509 +vt 0.661427 0.342875 +vt 0.657096 0.342692 +vt 0.666250 0.348901 +vt 0.666250 0.348816 +vt 0.657096 0.342875 +vt 0.657096 0.343058 +vt 0.661427 0.343058 +vt 0.657096 0.343240 +vt 0.661427 0.343240 +vt 0.666203 0.348900 +vt 0.666204 0.348816 +vt 0.665882 0.348899 +vt 0.665883 0.348814 +vt 0.661427 0.343423 +vt 0.657096 0.343423 +vt 0.657096 0.343606 +vt 0.661427 0.343606 +vt 0.657096 0.343789 +vt 0.661427 0.343789 +vt 0.657096 0.343972 +vt 0.661427 0.343972 +vt 0.657096 0.344155 +vt 0.661427 0.344155 +vt 0.657096 0.344338 +vt 0.661427 0.344338 +vt 0.657096 0.341411 +vt 0.657096 0.341594 +vt 0.661427 0.341594 +vt 0.657096 0.341777 +vt 0.661430 0.341777 +vt 0.649012 0.349171 +vt 0.649012 0.349086 +vt 0.648961 0.349086 +vt 0.661433 0.341960 +vt 0.657096 0.341960 +vt 0.649208 0.349086 +vt 0.649714 0.349170 +vt 0.649518 0.349086 +vt 0.649435 0.348914 +vt 0.649290 0.348914 +vt 0.649435 0.348644 +vt 0.649290 0.348644 +vt 0.667918 0.348211 +vt 0.667216 0.348214 +vt 0.667216 0.348127 +vt 0.667101 0.348214 +vt 0.667100 0.348123 +vt 0.656458 0.342453 +vt 0.656457 0.342704 +vt 0.656541 0.342453 +vt 0.656833 0.342705 +vt 0.656833 0.342454 +vt 0.656832 0.342788 +vt 0.655958 0.342785 +vt 0.655957 0.342962 +vt 0.656832 0.342965 +vt 0.656041 0.343742 +vt 0.656743 0.343745 +vt 0.656829 0.343669 +vt 0.655955 0.343666 +vt 0.653267 0.346719 +vt 0.670795 0.338787 +vt 0.670736 0.338975 +vt 0.671068 0.338839 +vt 0.671350 0.338788 +vt 0.671399 0.338977 +vt 0.671573 0.339023 +vt 0.670633 0.339486 +vt 0.670735 0.339638 +vt 0.670887 0.339740 +vt 0.671500 0.339129 +vt 0.671247 0.338875 +vt 0.670888 0.338874 +vt 0.670634 0.339127 +vt 0.671253 0.337451 +vt 0.656541 0.342427 +vt 0.656458 0.342426 +vt 0.671274 0.336420 +vt 0.671548 0.336419 +vt 0.666952 0.348820 +vt 0.666952 0.348904 +vt 0.666998 0.348905 +vt 0.667319 0.348906 +vt 0.666998 0.348820 +vt 0.649765 0.349170 +vt 0.649765 0.349086 +vt 0.649714 0.349086 +vt 0.656334 0.342703 +vt 0.655958 0.342702 +vt 0.667918 0.348124 +vt 0.656252 0.342426 +vt 0.656251 0.342452 +vt 0.656334 0.342453 +vt 0.654496 0.337794 +vt 0.651103 0.348667 +vt 0.651206 0.348710 +vt 0.650889 0.349185 +vt 0.651285 0.348789 +vt 0.651328 0.348892 +vt 0.650992 0.349228 +vt 0.651328 0.349003 +vt 0.651285 0.349106 +vt 0.651103 0.349228 +vt 0.651206 0.349185 +vt 0.650767 0.348892 +vt 0.650889 0.348710 +vt 0.650767 0.349003 +vt 0.650810 0.349106 +vt 0.650992 0.348667 +vt 0.650810 0.348789 +vt 0.663495 0.328582 +vt 0.663495 0.328711 +vt 0.663575 0.328712 +vt 0.663666 0.328712 +vt 0.663667 0.328583 +vt 0.663575 0.328583 +vt 0.663746 0.328583 +vt 0.663746 0.328713 +vt 0.661745 0.328574 +vt 0.661745 0.328703 +vt 0.656871 0.339542 +vt 0.669475 0.348061 +vt 0.671252 0.337354 +vt 0.671545 0.335784 +vt 0.674011 0.340319 +vt 0.655624 0.336619 +vt 0.662967 0.338908 +vt 0.656433 0.348111 +vt 0.653583 0.336623 +vt 0.654148 0.336621 +vt 0.655059 0.336619 +vt 0.655632 0.339548 +vt 0.655699 0.347352 +vt 0.659343 0.339981 +vt 0.671171 0.337105 +vt 0.674072 0.350895 +vt 0.666774 0.344703 +vt 0.653715 0.344312 +vt 0.659330 0.338958 +vt 0.661427 0.341411 +vt 0.648961 0.349171 +vt 0.667319 0.348822 +vt 0.656334 0.342426 +vt 0.655959 0.342451 +s 0 +f 1789/1551/866 1790/1552/866 1791/1553/866 +f 1792/1554/867 1793/1555/867 1794/1556/867 +f 1795/1557/868 1796/1558/868 1797/1559/868 +f 1798/1560/868 1799/1561/868 1800/1562/868 +f 1801/1563/869 1802/1564/869 1803/1565/869 +f 1795/1557/870 1804/1563/870 1805/1566/870 +f 1806/1567/871 1807/1568/871 1808/1569/871 +f 1809/1570/872 1810/1571/872 1811/1572/872 +f 1812/1569/873 1813/1568/873 1814/1573/873 +f 1809/1570/872 1811/1572/872 1815/1574/872 +f 1816/1575/868 1817/1576/868 1818/1577/868 +f 1819/1578/874 1820/1579/874 1821/1580/874 +f 1822/1581/875 1823/1582/875 1824/1583/875 +f 1824/1583/875 1825/1584/875 1822/1581/875 +f 1826/1585/872 1809/1570/872 1827/1586/872 +f 1828/1587/872 1829/1588/872 1826/1585/872 +f 1799/1561/868 1830/1589/868 1831/1590/868 +f 1832/1591/866 1833/1592/866 1834/1593/866 +f 1835/1594/872 1836/1595/872 1837/1596/872 +f 1838/1597/872 1839/1598/872 1840/1599/872 +f 1828/1587/872 1826/1585/872 1827/1586/872 +f 1841/1600/866 1842/1601/866 1843/1602/866 +f 1843/1602/866 1844/1603/866 1841/1600/866 +f 1845/1604/872 1846/1605/872 1847/1606/872 +f 1848/1607/868 1849/1608/868 1850/1609/868 +f 1833/1592/866 1851/1610/866 1834/1593/866 +f 1852/1611/875 1853/1612/875 1854/1613/875 +f 1839/1598/872 1815/1574/872 1840/1599/872 +f 1811/1572/872 1840/1599/872 1815/1574/872 +f 1826/1585/872 1855/1614/872 1809/1570/872 +f 1840/1599/872 1856/1615/872 1838/1597/872 +f 1857/1616/875 1858/1617/875 1859/1618/875 +f 1860/1619/866 1834/1593/866 1851/1610/866 +f 1861/1620/866 1862/1621/866 1863/1622/866 +f 1864/1623/875 1865/1624/875 1866/1625/875 +f 1867/1626/876 1868/1627/876 1869/1628/876 +f 1870/1629/876 1871/1630/876 1868/1627/876 +f 1840/1599/872 1837/1596/872 1836/1595/872 +f 1872/1631/872 1873/1632/872 1856/1615/872 +f 1874/1633/872 1875/1634/872 1873/1632/872 +f 1876/1635/868 1877/1636/868 1878/1637/868 +f 1879/1638/867 1880/1639/867 1881/1640/867 +f 1882/1641/867 1883/1642/867 1884/1643/867 +f 1885/1644/867 1886/1645/867 1887/1646/867 +f 1888/1647/872 1889/1648/872 1890/1649/872 +f 1891/1650/872 1892/1651/872 1893/1652/872 +f 1894/1653/867 1895/1654/867 1896/1655/867 +f 1897/1656/867 1896/1655/867 1898/1657/867 +f 1899/1658/867 1900/1659/867 1901/1660/867 +f 1902/1661/872 1903/1662/872 1847/1606/872 +f 1904/1663/872 1905/1664/872 1906/1665/872 +f 1907/1666/872 1908/1667/872 1873/1632/872 +f 1909/1668/867 1910/1669/867 1911/1670/867 +f 1912/1671/877 1913/1672/877 1914/1673/877 +f 1915/1674/875 1916/1675/875 1917/1676/875 +f 1875/1634/872 1874/1633/872 1918/1677/872 +f 1919/1678/878 1920/1679/878 1921/1680/878 +f 1922/1681/867 1923/1682/867 1924/1683/867 +f 1925/1684/875 1926/1685/875 1927/1686/875 +f 1928/1687/873 1929/1688/873 1919/1678/873 +f 1930/1689/879 1931/1690/879 1932/1691/879 +f 1933/1692/868 1934/1693/868 1935/1671/868 +f 1936/1694/867 1937/1695/867 1938/1696/867 +f 1939/1697/867 1940/1698/867 1941/1699/867 +f 1942/1700/875 1943/1701/875 1944/1702/875 +f 1829/1588/872 1945/1703/872 1826/1585/872 +f 1946/1704/880 1947/1678/880 1948/1688/880 +f 1949/1690/880 1950/1705/880 1951/1706/880 +f 1952/1707/867 1953/1708/867 1954/1709/867 +f 1955/1710/867 1956/1711/867 1957/1712/867 +f 1958/1713/875 1959/1714/875 1960/1715/875 +f 1957/1712/867 1941/1699/867 1955/1710/867 +f 1961/1716/881 1962/1717/881 1963/1704/881 +f 1964/1705/879 1965/1718/879 1966/1719/879 +f 1967/1720/867 1968/1721/867 1969/1722/867 +f 1970/1723/879 1963/1704/879 1962/1717/879 +f 1971/1718/869 1972/1723/869 1973/1724/869 +f 1974/1725/882 1975/1726/882 1976/1727/882 +f 1977/1578/875 1978/1728/875 1979/1729/875 +f 1980/1730/866 1981/1731/866 1851/1610/866 +f 1982/1732/883 1983/1733/883 1984/1734/883 +f 1829/1588/872 1985/1735/872 1945/1703/872 +f 1906/1665/872 1986/1736/872 1847/1606/872 +f 1873/1632/872 1875/1634/872 1847/1606/872 +f 1872/1631/872 1987/1737/872 1988/1738/872 +f 1989/1739/872 1902/1661/872 1847/1606/872 +f 1847/1606/872 1990/1740/872 1991/1741/872 +f 1992/1742/872 1990/1740/872 1847/1606/872 +f 1992/1742/872 1986/1736/872 1993/1743/872 +f 1994/1744/867 1995/1745/867 1996/1746/867 +f 1901/1660/867 1994/1744/867 1997/1747/867 +f 1998/1748/867 1895/1654/867 1894/1653/867 +f 1987/1737/872 1999/1749/872 1988/1738/872 +f 2000/1750/872 2001/1751/872 2002/1752/872 +f 2003/1753/872 1987/1737/872 1872/1631/872 +f 2004/1754/867 2005/1755/867 2006/1756/867 +f 2007/1757/867 2008/1758/867 2009/1759/867 +f 2010/1760/875 2011/1761/875 2012/1762/875 +f 2013/1763/875 2014/1764/875 2015/1765/875 +f 2016/1766/868 2017/1767/868 2018/1768/868 +f 2019/1769/879 2020/1770/879 2021/1771/879 +f 2022/1772/867 2023/1773/867 2024/1774/867 +f 2025/1608/867 2026/1775/867 2027/1776/867 +f 1835/1594/872 1810/1571/872 1889/1648/872 +f 2028/1777/881 2020/1770/881 2019/1769/881 +f 2029/1778/866 2030/1779/866 2031/1780/866 +f 2032/1781/866 2033/1782/866 2034/1672/866 +f 2035/1783/867 2036/1784/867 2037/1785/867 +f 1855/1614/872 1889/1648/872 1810/1571/872 +f 2038/1786/867 2039/1787/867 2040/1788/867 +f 2041/1789/875 2042/1790/875 2043/1791/875 +f 1890/1649/872 1889/1648/872 1855/1614/872 +f 2044/1792/880 2045/1793/880 2046/1777/880 +f 2047/1794/880 2048/1780/880 2049/1795/880 +f 2050/1796/867 2051/1797/867 2052/1798/867 +f 2053/1799/867 2054/1800/867 2039/1787/867 +f 2055/1801/875 2056/1802/875 2057/1803/875 +f 2040/1788/867 2039/1787/867 2054/1800/867 +f 2058/1804/866 2059/1793/866 2060/1792/866 +f 2061/1805/878 2062/1795/878 2063/1806/878 +f 1988/1738/872 2064/1807/872 2002/1752/872 +f 2065/1808/872 1988/1738/872 2001/1751/872 +f 2066/1809/867 2067/1810/867 2068/1811/867 +f 2069/1812/866 2070/1813/866 2058/1804/866 +f 2071/1814/869 2072/1806/869 2073/1813/869 +f 2074/1815/872 2065/1808/872 2075/1816/872 +f 2076/1817/872 2077/1818/872 1988/1738/872 +f 2078/1819/875 2079/1820/875 2080/1821/875 +f 2081/1822/872 1988/1738/872 2077/1818/872 +f 2082/1761/868 2083/1757/868 2084/1823/868 +f 1891/1650/872 2064/1807/872 1988/1738/872 +f 2085/1824/875 2086/1825/875 2087/1826/875 +f 1823/1582/875 2088/1827/875 2086/1825/875 +f 1823/1582/875 1822/1581/875 2088/1827/875 +f 2089/1828/866 2090/1829/866 2091/1826/866 +f 2092/1830/868 2093/1831/868 2094/1832/868 +f 2095/1833/875 2096/1834/875 2097/1835/875 +f 2098/1831/875 2099/1836/875 2100/1832/875 +f 2101/1837/875 2102/1838/875 2100/1832/875 +f 1879/1638/867 1881/1640/867 2103/1839/867 +f 2104/1840/866 2105/1841/866 2106/1842/866 +f 2086/1825/875 2107/1843/875 2087/1826/875 +f 2108/1844/876 2109/1845/876 2110/1846/876 +f 2111/1847/875 2112/1848/875 2113/1849/875 +f 2114/1850/875 2115/1851/875 2116/1852/875 +f 2117/1853/867 2118/1854/867 2119/1855/867 +f 2120/1856/876 2121/1857/876 2122/1858/876 +f 2123/1859/868 2124/1860/868 2125/1861/868 +f 2126/1862/876 2127/1863/876 2128/1864/876 +f 2128/1864/876 2129/1865/876 2126/1862/876 +f 2130/1863/866 2131/1866/866 2132/1867/866 +f 2133/1868/866 2134/1869/866 2135/1870/866 +f 2136/1860/876 2137/1867/876 2138/1866/876 +f 2106/1842/866 1862/1621/866 1861/1620/866 +f 1837/1596/872 1810/1571/872 1835/1594/872 +f 2139/1871/867 2140/1872/867 2141/1873/867 +f 2142/1874/867 2139/1871/867 2141/1873/867 +f 2143/1875/867 2142/1874/867 2141/1873/867 +f 2104/1840/866 2106/1842/866 1861/1620/866 +f 2140/1872/867 2144/1876/867 2141/1873/867 +f 2145/1877/875 2146/1878/875 2147/1879/875 +f 2147/1879/875 2146/1878/875 2148/1880/875 +f 2149/1881/875 2150/1882/875 2151/1883/875 +f 2152/1884/875 2153/1885/875 2149/1881/875 +f 1859/1618/875 2153/1885/875 2154/1886/875 +f 2155/1887/875 2156/1888/875 1858/1617/875 +f 2157/1889/875 2158/1890/875 2156/1888/875 +f 2159/1891/875 2148/1880/875 2158/1890/875 +f 2160/1892/875 2157/1889/875 2156/1888/875 +f 2155/1887/875 2160/1892/875 2156/1888/875 +f 1857/1616/875 2161/1893/875 1858/1617/875 +f 2162/1894/875 2154/1886/875 2153/1885/875 +f 2152/1884/875 2162/1894/875 2153/1885/875 +f 2163/1895/875 2152/1884/875 2149/1881/875 +f 2164/1896/875 2151/1883/875 2150/1882/875 +f 2165/1897/875 2164/1896/875 2150/1882/875 +f 2165/1897/875 2150/1882/875 2148/1880/875 +f 2159/1891/875 2166/1898/875 2148/1880/875 +f 2157/1889/875 2167/1899/875 2158/1890/875 +f 2168/1900/875 2145/1877/875 2147/1879/875 +f 2150/1882/875 2147/1879/875 2148/1880/875 +f 2163/1895/875 2149/1881/875 2151/1883/875 +f 2169/1901/875 1859/1618/875 2154/1886/875 +f 2161/1893/875 2155/1887/875 1858/1617/875 +f 2167/1899/875 2159/1891/875 2158/1890/875 +f 2166/1898/875 2165/1897/875 2148/1880/875 +f 2169/1901/875 1857/1616/875 1859/1618/875 +f 2170/1902/866 2171/1903/866 2172/1904/866 +f 1855/1614/872 1810/1571/872 1809/1570/872 +f 2173/1905/867 2174/1904/867 2175/1903/867 +f 2176/1906/884 2177/1907/884 2178/1903/884 +f 2179/1558/872 2180/1908/872 2181/1909/872 +f 2182/1910/872 2183/1911/872 2184/1912/872 +f 2185/1913/876 2186/1914/876 2187/1915/876 +f 2188/1913/868 1797/1559/868 1796/1558/868 +f 2116/1852/875 2189/1916/875 2095/1833/875 +f 2111/1847/875 2113/1849/875 2116/1852/875 +f 2190/1869/867 2191/1917/867 2192/1918/867 +f 2190/1869/867 2193/1919/867 2194/1920/867 +f 2195/1921/872 2196/1919/872 2197/1869/872 +f 2198/1922/868 2199/1923/868 2123/1859/868 +f 2200/1924/876 2201/1925/876 2202/1926/876 +f 2203/1927/876 2200/1924/876 2204/1928/876 +f 1794/1556/867 1793/1555/867 2205/1929/867 +f 2206/1930/868 2207/1931/868 2208/1932/868 +f 2193/1919/867 2209/1932/867 2210/1933/867 +f 2211/1934/866 2212/1935/866 2213/1936/866 +f 2214/1937/868 2215/1938/868 2216/1939/868 +f 2217/1940/876 2218/1935/876 2219/1941/876 +f 2220/1940/866 2213/1936/866 2212/1935/866 +f 2221/1937/876 2222/1942/876 2223/1938/876 +f 2224/1943/876 2223/1938/876 2222/1942/876 +f 2225/1944/866 2226/1945/866 2227/1946/866 +f 2225/1944/866 1791/1553/866 2226/1945/866 +f 1794/1556/867 2118/1854/867 2228/1947/867 +f 2118/1854/867 2117/1853/867 2228/1947/867 +f 2229/1948/875 1866/1625/875 2230/1949/875 +f 2231/1950/868 2232/1951/868 2233/1952/868 +f 2234/1953/868 2233/1952/868 2232/1951/868 +f 2235/1954/868 2234/1953/868 2232/1951/868 +f 1792/1554/867 1794/1556/867 2228/1947/867 +f 2236/1955/875 2229/1948/875 2230/1949/875 +f 2237/1956/868 2231/1950/868 2233/1952/868 +f 2225/1944/866 1789/1551/866 1791/1553/866 +f 2229/1948/875 1864/1623/875 1866/1625/875 +f 2238/1957/875 2239/1958/875 2240/1959/875 +f 2241/1960/875 2239/1958/875 2242/1961/875 +f 2240/1959/875 2239/1958/875 2243/1962/875 +f 2243/1962/875 2239/1958/875 2244/1963/875 +f 2245/1964/875 2239/1958/875 2241/1960/875 +f 2244/1963/875 2239/1958/875 2246/1965/875 +f 2246/1965/875 2239/1958/875 2247/1966/875 +f 2248/1967/875 2239/1958/875 2245/1964/875 +f 2247/1966/875 2239/1958/875 2249/1968/875 +f 2249/1968/875 2239/1958/875 2250/1969/875 +f 2250/1969/875 2239/1958/875 2248/1967/875 +f 2251/1970/875 2239/1958/875 2238/1957/875 +f 2242/1961/875 2239/1958/875 2252/1971/875 +f 2253/1972/875 2239/1958/875 2251/1970/875 +f 2252/1971/875 2239/1958/875 2254/1973/875 +f 2254/1973/875 2239/1958/875 2253/1972/875 +f 2255/1974/868 2256/1975/868 2257/1976/868 +f 2258/1977/868 2259/1978/868 2257/1976/868 +f 2260/1979/875 2261/1980/875 2262/1981/875 +f 1804/1563/868 1795/1557/868 1797/1559/868 +f 2263/1982/868 1798/1560/868 1800/1562/868 +f 2264/1566/869 1801/1563/869 1803/1565/869 +f 2265/1910/870 1795/1557/870 1805/1566/870 +f 2266/1983/871 1806/1567/871 1808/1569/871 +f 2267/1984/868 1816/1575/868 1818/1577/868 +f 1818/1577/868 2268/1985/868 2267/1984/868 +f 1800/1562/868 1799/1561/868 1831/1590/868 +f 2269/1902/875 1852/1611/875 1854/1613/875 +f 1981/1731/866 1860/1619/866 1851/1610/866 +f 2270/1986/876 1867/1626/876 1869/1628/876 +f 1867/1626/876 1870/1629/876 1868/1627/876 +f 1856/1615/872 1840/1599/872 1836/1595/872 +f 1836/1595/872 1872/1631/872 1856/1615/872 +f 1872/1631/872 1874/1633/872 1873/1632/872 +f 1887/1646/867 1882/1641/867 1884/1643/867 +f 1884/1643/867 1885/1644/867 1887/1646/867 +f 2064/1807/872 1891/1650/872 1893/1652/872 +f 1897/1656/867 1894/1653/867 1896/1655/867 +f 2271/1987/867 1897/1656/867 1898/1657/867 +f 2272/1988/867 1899/1658/867 1901/1660/867 +f 1846/1605/872 1904/1663/872 1906/1665/872 +f 1903/1662/872 1907/1666/872 1873/1632/872 +f 2273/1989/867 1909/1668/867 1911/1670/867 +f 2274/1990/877 1912/1671/877 1914/1673/877 +f 2275/1991/875 1915/1674/875 1917/1676/875 +f 2276/1992/872 1875/1634/872 1918/1677/872 +f 1928/1687/878 1919/1678/878 1921/1680/878 +f 2277/1993/867 1922/1681/867 1924/1683/867 +f 2278/1994/875 1925/1684/875 1927/1686/875 +f 2279/1995/879 1930/1689/879 1932/1691/879 +f 2280/1996/868 1933/1692/868 1935/1671/868 +f 2281/1997/867 1936/1694/867 1938/1696/867 +f 1957/1712/867 1939/1697/867 1941/1699/867 +f 2282/1998/875 1942/1700/875 1944/1702/875 +f 2283/1716/880 1946/1704/880 1948/1688/880 +f 2284/1691/880 1949/1690/880 1951/1706/880 +f 2285/1999/867 1952/1707/867 1954/1709/867 +f 2286/2000/875 1958/1713/875 1960/1715/875 +f 2287/1706/879 1964/1705/879 1966/1719/879 +f 2288/1579/867 1967/1720/867 1969/1722/867 +f 2289/1724/879 1970/1723/879 1962/1717/879 +f 2290/1719/869 1971/1718/869 1973/1724/869 +f 2291/2001/882 1974/1725/882 1976/1727/882 +f 2292/2002/875 1977/1578/875 1979/1729/875 +f 2293/2003/883 1982/1732/883 1984/1734/883 +f 1846/1605/872 1906/1665/872 1847/1606/872 +f 1903/1662/872 1873/1632/872 1847/1606/872 +f 1874/1633/872 1872/1631/872 1988/1738/872 +f 1991/1741/872 1989/1739/872 1847/1606/872 +f 1986/1736/872 1992/1742/872 1847/1606/872 +f 2294/2004/872 1992/1742/872 1993/1743/872 +f 1997/1747/867 1994/1744/867 1996/1746/867 +f 2272/1988/867 1901/1660/867 1997/1747/867 +f 2295/2005/867 1998/1748/867 1894/1653/867 +f 2296/2006/872 2000/1750/872 2002/1752/872 +f 2297/2007/872 2003/1753/872 1872/1631/872 +f 2298/2008/867 2004/1754/867 2006/1756/867 +f 2299/1823/867 2007/1757/867 2009/1759/867 +f 2300/2009/875 2010/1760/875 2012/1762/875 +f 2301/2010/875 2013/1763/875 2015/1765/875 +f 2302/2011/868 2016/1766/868 2018/1768/868 +f 2303/2012/879 2019/1769/879 2021/1771/879 +f 2304/2013/867 2022/1772/867 2024/1774/867 +f 2305/1609/867 2025/1608/867 2027/1776/867 +f 2306/2014/872 1835/1594/872 1889/1648/872 +f 2307/1794/866 2029/1778/866 2031/1780/866 +f 2308/2015/866 2032/1781/866 2034/1672/866 +f 2309/2016/867 2035/1783/867 2037/1785/867 +f 2310/2017/867 2038/1786/867 2040/1788/867 +f 2311/2018/875 2041/1789/875 2043/1791/875 +f 2312/1769/880 2044/1792/880 2046/1777/880 +f 2313/1805/880 2047/1794/880 2049/1795/880 +f 2314/2019/867 2050/1796/867 2052/1798/867 +f 2315/2020/875 2055/1801/875 2057/1803/875 +f 2316/1814/878 2061/1805/878 2063/1806/878 +f 2001/1751/872 1988/1738/872 2002/1752/872 +f 2075/1816/872 2065/1808/872 2001/1751/872 +f 2317/2021/867 2066/1809/867 2068/1811/867 +f 2060/1792/866 2069/1812/866 2058/1804/866 +f 2318/1812/869 2071/1814/869 2073/1813/869 +f 2319/2022/872 2074/1815/872 2075/1816/872 +f 1999/1749/872 2076/1817/872 1988/1738/872 +f 2320/2023/875 2078/1819/875 2080/1821/875 +f 2321/2024/868 2322/2025/868 2323/2026/868 +f 2324/1762/868 2082/1761/868 2084/1823/868 +f 2081/1822/872 1891/1650/872 1988/1738/872 +f 2085/1824/875 1823/1582/875 2086/1825/875 +f 2325/1843/866 2089/1828/866 2091/1826/866 +f 2326/2027/868 2092/1830/868 2094/1832/868 +f 2111/1847/875 2095/1833/875 2097/1835/875 +f 2099/1836/875 2101/1837/875 2100/1832/875 +f 2327/2028/867 1879/1638/867 2103/1839/867 +f 2328/2029/876 2108/1844/876 2110/1846/876 +f 2113/1849/875 2114/1850/875 2116/1852/875 +f 2329/2030/876 2120/1856/876 2122/1858/876 +f 2330/1864/866 2130/1863/866 2132/1867/866 +f 2331/2031/866 2133/1868/866 2135/1870/866 +f 2332/1861/876 2136/1860/876 2138/1866/876 +f 2333/1611/866 2170/1902/866 2172/1904/866 +f 2334/2032/867 2173/1905/867 2175/1903/867 +f 2335/1902/884 2176/1906/884 2178/1903/884 +f 2336/2033/872 2179/1558/872 2181/1909/872 +f 2337/1557/872 2182/1910/872 2184/1912/872 +f 2338/1559/876 2185/1913/876 2187/1915/876 +f 2339/2033/868 2188/1913/868 1796/1558/868 +f 2095/1833/875 2111/1847/875 2116/1852/875 +f 2340/1870/867 2190/1869/867 2192/1918/867 +f 2191/1917/867 2190/1869/867 2194/1920/867 +f 2341/2034/872 2195/1921/872 2197/1869/872 +f 2125/1861/868 2198/1922/868 2123/1859/868 +f 2204/1928/876 2200/1924/876 2202/1926/876 +f 2342/2035/876 2203/1927/876 2204/1928/876 +f 2343/1919/868 2206/1930/868 2208/1932/868 +f 2194/1920/867 2193/1919/867 2210/1933/867 +f 2344/2036/866 2211/1934/866 2213/1936/866 +f 2345/1941/868 2214/1937/868 2216/1939/868 +f 2346/1939/876 2217/1940/876 2219/1941/876 +f 2347/2037/868 2255/1974/868 2257/1976/868 +f 2256/1975/868 2258/1977/868 2257/1976/868 +f 2348/2038/875 2260/1979/875 2262/1981/875 s 1 -f 1472/1483/549 1473/1484/549 1474/1485/549 -f 1475/1486/550 1476/1487/549 1477/1488/549 -f 1478/1489/551 1479/1490/551 1480/1491/552 -f 1481/1492/553 1482/1493/553 1483/1494/553 -f 1484/1495/554 1485/1496/554 1486/1497/554 -f 1487/1498/555 1488/1499/556 1489/1500/557 -f 1490/1501/558 1491/1502/551 1478/1489/551 -f 1490/1501/558 1480/1491/552 1492/1503/559 -f 1493/1504/560 1494/1505/560 1495/1506/560 -f 1496/1507/561 1497/1508/561 1498/1509/562 -f 1499/1510/554 1500/1511/554 1501/1512/554 -f 1502/1513/563 1503/1514/563 1504/1515/563 -f 1490/1501/558 1478/1489/551 1480/1491/552 -f 1505/1516/564 1506/1517/564 1507/1518/564 -f 1508/1519/565 1509/1520/565 1510/1521/565 -f 1511/1522/554 1512/1523/554 1513/1524/554 -f 1514/1525/566 1515/1526/567 1516/1527/568 -f 1517/1528/564 1518/1529/564 1519/1530/564 -f 1520/1531/564 1521/1532/564 1522/1533/564 -f 1522/1533/564 1523/1534/564 1524/1535/564 -f 1525/1536/569 1526/1537/570 1527/1538/570 -f 1528/1539/571 1529/1540/570 1525/1536/569 -f 1517/1528/564 1519/1530/564 1530/1541/564 -f 1531/1542/572 1532/1543/572 1533/1544/572 -f 1534/1545/554 1535/1546/554 1536/1547/554 -f 1534/1545/554 1536/1547/554 1537/1548/554 -f 1538/1549/564 1522/1533/564 1524/1535/564 -f 1521/1532/564 1523/1534/564 1522/1533/564 -f 1523/1534/564 1539/1550/564 1524/1535/564 -f 1526/1537/570 1540/1551/570 1527/1538/570 -f 1529/1540/570 1526/1537/570 1525/1536/569 -f 1519/1530/564 1541/1552/564 1530/1541/564 -f 1542/1553/572 1543/1554/572 1532/1543/572 -f 1532/1543/572 1543/1554/572 1533/1544/572 -f 1535/1546/554 1544/1555/554 1536/1547/554 -f 1536/1547/554 1545/1556/554 1537/1548/554 -f 1546/1557/573 1547/1558/574 1548/1559/575 -f 1549/1560/576 1550/1561/576 1528/1539/571 -f 1549/1560/576 1551/1562/577 1552/1563/578 -f 1551/1562/577 1553/1564/579 1554/1565/580 -f 1553/1564/579 1548/1559/575 1547/1558/574 -f 1555/1566/581 1548/1559/575 1475/1486/550 -f 1556/1567/570 1527/1538/570 1540/1551/570 -f 1557/1568/582 1558/1569/582 1559/1570/582 -f 1560/1571/582 1561/1572/582 1562/1573/582 -f 1563/1574/570 1564/1575/570 1565/1576/570 -f 1566/1577/554 1567/1578/554 1568/1579/554 -f 1569/1580/554 1570/1581/554 1571/1582/554 -f 1572/1583/582 1573/1584/582 1574/1585/582 -f 1520/1531/564 1575/1586/564 1521/1532/564 -f 1540/1551/570 1526/1537/570 1576/1587/570 -f 1518/1529/564 1577/1588/564 1519/1530/564 -f 1531/1542/572 1578/1589/572 1532/1543/572 -f 1534/1545/554 1579/1590/554 1535/1546/554 -f 1580/1591/583 1581/1592/584 1582/1593/585 -f 1583/1594/586 1584/1595/587 1585/1596/588 -f 1586/1597/564 1587/1598/564 1588/1599/589 -f 1589/1600/564 1590/1601/564 1591/1602/564 -f 1592/1603/590 1585/1596/588 1584/1595/587 -f 1593/1604/572 1594/1605/572 1595/1606/572 -f 1596/1607/572 1597/1608/572 1598/1609/572 -f 1599/1610/572 1600/1611/572 1601/1612/572 -f 1602/1613/591 1603/1614/592 1604/1615/593 -f 1605/1616/582 1606/1617/582 1607/1618/582 -f 1581/1592/584 1608/1619/594 1609/1620/595 -f 1600/1621/572 1610/1622/572 1611/1623/572 -f 1603/1614/592 1612/1624/596 1613/1625/597 -f 1606/1617/582 1614/1626/582 1615/1627/582 -f 1608/1619/594 1616/1628/598 1617/1629/599 -f 1610/1630/572 1618/1631/572 1619/1632/572 -f 1612/1624/596 1620/1633/600 1621/1634/601 -f 1614/1626/582 1622/1635/582 1623/1636/582 -f 1616/1628/598 1624/1637/602 1625/1638/603 -f 1618/1631/572 1626/1639/572 1627/1640/572 -f 1620/1641/600 1628/1642/604 1629/1643/605 -f 1622/1635/582 1630/1644/582 1631/1645/582 -f 1632/1646/606 1633/1647/607 1634/1648/608 -f 1626/1639/572 1635/1649/572 1636/1650/572 -f 1637/1651/609 1638/1652/610 1639/1653/611 -f 1630/1644/582 1640/1654/582 1641/1655/582 -f 1633/1656/607 1642/1657/612 1643/1658/613 -f 1635/1649/572 1644/1659/572 1645/1660/572 -f 1638/1652/610 1646/1661/614 1647/1662/615 -f 1640/1654/582 1648/1663/582 1649/1664/582 -f 1642/1657/612 1650/1665/616 1651/1666/617 -f 1644/1659/572 1652/1667/572 1653/1668/572 -f 1646/1661/614 1654/1669/618 1655/1670/619 -f 1648/1663/582 1656/1671/582 1657/1672/582 -f 1650/1673/616 1658/1674/591 1659/1675/620 -f 1652/1667/572 1660/1676/572 1661/1677/572 -f 1654/1669/618 1662/1678/583 1663/1679/621 -f 1656/1671/582 1664/1680/582 1665/1681/582 -f 1658/1674/591 1666/1682/622 1667/1683/593 -f 1660/1676/572 1668/1684/572 1669/1685/572 -f 1662/1678/583 1670/1686/584 1671/1687/585 -f 1664/1680/582 1672/1688/582 1673/1689/582 -f 1666/1682/622 1674/1690/596 1675/1691/597 -f 1668/1684/572 1676/1692/572 1677/1693/572 -f 1670/1686/584 1678/1694/594 1679/1695/595 -f 1672/1688/582 1680/1696/582 1681/1697/582 -f 1674/1690/596 1682/1698/600 1683/1699/601 -f 1676/1692/572 1684/1700/572 1685/1701/572 -f 1678/1694/594 1686/1702/623 1687/1703/624 -f 1680/1696/582 1688/1704/582 1689/1705/582 -f 1682/1698/600 1690/1706/604 1691/1707/625 -f 1684/1700/572 1692/1708/572 1693/1709/572 -f 1686/1702/623 1694/1710/602 1695/1711/626 -f 1688/1704/582 1696/1712/582 1697/1713/582 -f 1690/1706/604 1698/1714/627 1699/1715/628 -f 1692/1708/572 1700/1716/572 1701/1717/572 -f 1694/1718/602 1702/1719/607 1703/1720/608 -f 1696/1712/582 1704/1721/582 1705/1722/582 -f 1698/1714/627 1706/1723/614 1707/1724/615 -f 1700/1716/572 1708/1725/572 1709/1726/572 -f 1702/1719/607 1710/1727/612 1711/1728/613 -f 1704/1721/582 1712/1729/582 1713/1730/582 -f 1706/1723/614 1714/1731/618 1715/1732/619 -f 1708/1725/572 1716/1733/572 1717/1734/572 -f 1710/1727/612 1718/1735/616 1719/1736/629 -f 1712/1729/582 1720/1737/582 1721/1738/582 -f 1714/1731/618 1580/1591/583 1722/1739/621 -f 1716/1733/572 1599/1610/572 1723/1740/572 -f 1718/1735/616 1602/1613/591 1724/1741/620 -f 1720/1737/582 1605/1616/582 1725/1742/582 -f 1726/1743/554 1727/1744/554 1728/1745/554 -f 1727/1744/554 1729/1746/554 1730/1747/554 -f 1729/1746/554 1731/1748/554 1732/1749/554 -f 1731/1748/554 1733/1750/554 1734/1751/554 -f 1733/1750/554 1735/1752/554 1736/1753/554 -f 1735/1752/554 1737/1754/554 1738/1755/554 -f 1737/1754/554 1739/1756/554 1740/1757/554 -f 1739/1756/554 1741/1758/554 1742/1759/554 -f 1741/1758/554 1743/1760/554 1744/1761/554 -f 1743/1760/554 1745/1762/554 1746/1763/554 -f 1745/1762/554 1747/1764/554 1748/1765/554 -f 1747/1764/554 1726/1743/554 1749/1766/554 -f 1750/1767/630 1751/1768/631 1752/1769/632 -f 1753/1770/633 1754/1771/634 1755/1772/635 -f 1756/1773/554 1757/1774/554 1758/1775/554 -f 1759/1776/636 1750/1767/630 1760/1777/637 -f 1754/1771/634 1761/1778/638 1762/1779/639 -f 1757/1774/554 1763/1780/554 1758/1775/554 -f 1764/1781/640 1759/1776/636 1765/1782/641 -f 1761/1778/638 1766/1783/642 1767/1784/643 -f 1763/1780/554 1768/1785/554 1758/1775/554 -f 1769/1786/644 1770/1787/645 1771/1788/646 -f 1766/1783/642 1772/1789/647 1773/1790/648 -f 1768/1785/554 1774/1791/554 1758/1775/554 -f 1775/1792/649 1769/1786/644 1776/1793/650 -f 1772/1789/647 1777/1794/651 1778/1795/652 -f 1774/1791/554 1779/1796/554 1758/1775/554 -f 1780/1797/653 1775/1792/649 1781/1798/654 -f 1777/1794/651 1782/1799/655 1783/1800/656 -f 1779/1796/554 1784/1801/554 1758/1775/554 -f 1785/1802/651 1780/1797/653 1786/1803/657 -f 1782/1799/655 1787/1804/658 1788/1805/654 -f 1784/1801/554 1789/1806/554 1758/1775/554 -f 1790/1807/659 1785/1802/651 1791/1808/660 -f 1787/1804/658 1792/1809/644 1793/1810/661 -f 1789/1806/554 1794/1811/554 1758/1775/554 -f 1795/1812/662 1790/1807/659 1796/1813/648 -f 1792/1809/644 1797/1814/645 1798/1815/663 -f 1794/1811/554 1799/1816/554 1758/1775/554 -f 1800/1817/638 1795/1812/662 1801/1818/664 -f 1802/1819/640 1803/1820/665 1804/1821/641 -f 1799/1816/554 1805/1822/554 1758/1775/554 -f 1806/1823/666 1800/1817/638 1807/1824/667 -f 1803/1820/665 1808/1825/630 1809/1826/668 -f 1805/1822/554 1810/1827/554 1758/1775/554 -f 1751/1768/631 1806/1823/666 1811/1828/635 -f 1808/1825/630 1753/1770/633 1812/1829/669 -f 1810/1827/554 1756/1773/554 1758/1775/554 -f 1813/1830/670 1814/1831/671 1815/1832/672 -f 1816/1833/673 1817/1834/674 1818/1835/675 -f 1819/1836/676 1820/1837/677 1821/1838/678 -f 1822/1839/679 1823/1840/680 1824/1841/681 -f 1825/1842/682 1818/1835/675 1826/1843/683 -f 1827/1844/684 1818/1835/675 1825/1842/682 -f 1828/1845/685 1829/1846/686 1830/1847/687 -f 1831/1848/688 1832/1849/689 1828/1845/685 -f 1819/1836/676 1833/1850/690 1828/1845/685 -f 1834/1851/691 1835/1852/692 1815/1832/672 -f 1835/1852/692 1834/1851/691 1836/1853/693 -f 1835/1852/692 1837/1854/694 1838/1855/695 -f 1839/1856/696 1840/1857/697 1830/1847/687 -f 1841/1858/698 1839/1856/696 1842/1859/699 -f 1822/1839/679 1843/1860/700 1823/1840/680 -f 1844/1861/701 1845/1862/702 1826/1843/683 -f 1846/1863/703 1845/1862/702 1844/1861/701 -f 1847/1864/704 1845/1862/702 1848/1865/705 -f 1849/1866/706 1850/1867/707 1851/1868/708 -f 1852/1869/709 1851/1868/708 1850/1867/707 -f 1825/1842/682 1826/1843/683 1853/1870/710 -f 1854/1871/711 1824/1841/681 1855/1872/712 -f 1856/1873/713 1827/1844/684 1854/1871/711 -f 1822/1839/679 1824/1841/681 1857/1874/714 -f 1843/1860/700 1822/1839/679 1857/1874/714 -f 1857/1874/714 1824/1841/681 1854/1871/711 -f 1858/1875/715 1859/1876/716 1860/1877/717 -f 1845/1862/702 1853/1870/710 1826/1843/683 -f 1854/1871/711 1853/1870/710 1861/1878/718 -f 1862/1879/719 1863/1880/720 1847/1864/704 -f 1863/1880/720 1861/1878/718 1845/1862/702 -f 1857/1874/714 1863/1880/720 1862/1879/719 -f 1861/1878/718 1863/1880/720 1857/1874/714 -f 1860/1877/717 1862/1879/719 1858/1875/715 -f 1849/1866/706 1864/1881/721 1862/1879/719 -f 1865/1882/722 1848/1865/705 1846/1863/703 -f 1866/1883/723 1865/1882/722 1867/1884/724 -f 1868/1885/725 1814/1831/671 1813/1830/670 -f 1869/1886/726 1868/1885/725 1870/1887/727 -f 1840/1857/697 1820/1837/677 1819/1836/676 -f 1871/1888/728 1872/1889/729 1873/1890/730 -f 1848/1865/705 1845/1862/702 1846/1863/703 -f 1861/1878/718 1853/1870/710 1845/1862/702 -f 1827/1844/684 1825/1842/682 1853/1870/710 -f 1853/1870/710 1854/1871/711 1827/1844/684 -f 1856/1873/713 1854/1871/711 1855/1872/712 -f 1843/1860/700 1860/1877/717 1859/1876/716 -f 1864/1881/721 1858/1875/715 1862/1879/719 -f 1850/1867/707 1849/1866/706 1862/1879/719 -f 1873/1890/730 1823/1840/680 1841/1858/698 -f 1843/1860/700 1859/1876/716 1823/1840/680 -f 1823/1840/680 1859/1876/716 1840/1857/697 -f 1864/1881/721 1820/1837/677 1858/1875/715 -f 1849/1866/706 1820/1837/677 1864/1881/721 -f 1849/1866/706 1851/1868/708 1820/1837/677 -f 1851/1868/708 1852/1869/709 1874/1891/731 -f 1848/1865/705 1865/1882/722 1852/1869/709 -f 1852/1869/709 1866/1883/723 1869/1886/726 -f 1875/1892/732 1868/1885/725 1876/1893/733 -f 1814/1831/671 1868/1885/725 1875/1892/732 -f 1840/1857/697 1839/1856/696 1841/1858/698 -f 1823/1840/680 1840/1857/697 1841/1858/698 -f 1859/1876/716 1858/1875/715 1840/1857/697 -f 1820/1837/677 1840/1857/697 1858/1875/715 -f 1851/1868/708 1874/1891/731 1820/1837/677 -f 1852/1869/709 1869/1886/726 1874/1891/731 -f 1865/1882/722 1866/1883/723 1852/1869/709 -f 1866/1883/723 1876/1893/733 1869/1886/726 -f 1868/1885/725 1869/1886/726 1876/1893/733 -f 1877/1894/734 1878/1895/735 1867/1884/724 -f 1879/1896/736 1877/1894/734 1880/1897/737 -f 1881/1898/738 1882/1899/739 1880/1897/737 -f 1883/1900/740 1816/1833/673 1884/1901/741 -f 1885/1902/564 1886/1903/564 1887/1904/564 -f 1888/1905/652 1889/1906/648 1890/1907/742 -f 1891/1908/656 1888/1905/652 1892/1909/651 -f 1889/1906/648 1893/1910/643 1894/1911/642 -f 1895/1912/654 1891/1908/656 1896/1913/655 -f 1897/1914/743 1895/1912/654 1898/1915/744 -f 1893/1910/643 1899/1916/745 1900/1917/638 -f 1901/1918/746 1897/1914/743 1902/1919/644 -f 1903/1920/641 1901/1918/746 1904/1921/645 -f 1899/1916/745 1905/1922/635 1906/1923/634 -f 1907/1924/668 1903/1920/641 1908/1925/665 -f 1909/1926/669 1907/1924/668 1910/1927/630 -f 1905/1922/635 1909/1926/669 1911/1928/633 -f 1912/1929/564 1913/1930/564 1914/1931/564 -f 1915/1932/564 1912/1929/564 1916/1933/564 -f 1913/1930/564 1917/1934/564 1918/1935/564 -f 1919/1936/564 1915/1932/564 1920/1937/564 -f 1921/1938/564 1919/1936/564 1922/1939/564 -f 1917/1934/564 1923/1940/564 1924/1941/564 -f 1885/1942/564 1921/1938/564 1925/1943/564 -f 1926/1944/564 1885/1942/564 1927/1945/564 -f 1923/1940/564 1928/1946/564 1929/1947/564 -f 1930/1948/564 1926/1944/564 1931/1949/564 -f 1932/1950/564 1930/1948/564 1933/1951/564 -f 1928/1946/564 1932/1950/564 1934/1952/564 -f 1935/1953/564 1936/1954/564 1937/1955/564 -f 1938/1956/647 1939/1957/651 1940/1958/652 -f 1941/1959/642 1938/1956/647 1942/1960/648 -f 1937/1955/564 1936/1954/564 1943/1961/564 -f 1939/1957/651 1944/1962/655 1945/1963/656 -f 1946/1964/564 1936/1954/564 1935/1953/564 -f 1943/1961/564 1936/1954/564 1947/1965/564 -f 1944/1962/655 1948/1966/658 1949/1967/654 -f 1950/1968/638 1941/1959/642 1951/1969/643 -f 1947/1965/564 1936/1954/564 1952/1970/564 -f 1948/1966/658 1953/1971/747 1954/1972/747 -f 1955/1973/564 1936/1954/564 1946/1964/564 -f 1952/1970/564 1936/1954/564 1956/1974/564 -f 1957/1975/748 1958/1976/748 1959/1977/749 -f 1960/1978/634 1950/1968/638 1961/1979/639 -f 1956/1974/564 1936/1954/564 1962/1980/564 -f 1963/1981/750 1964/1982/751 1965/1983/751 -f 1966/1984/564 1936/1954/564 1955/1973/564 -f 1962/1980/564 1936/1954/564 1967/1985/564 -f 1957/1975/748 1968/1986/630 1969/1987/668 -f 1970/1988/633 1960/1978/634 1971/1989/635 -f 1967/1985/564 1936/1954/564 1972/1990/564 -f 1968/1986/630 1970/1988/633 1973/1991/669 -f 1972/1990/564 1936/1954/564 1966/1984/564 -f 1974/1992/752 1959/1977/749 1965/1983/751 -f 1885/1902/564 1926/1993/564 1886/1903/564 -f 1954/1972/747 1953/1971/747 1975/1994/753 -f 1976/1995/754 1977/1996/755 1963/1981/750 -f 1887/1997/564 1886/1998/564 1978/1999/564 -f 1887/1904/564 1921/2000/564 1885/1902/564 -f 1979/2001/564 1980/2002/564 1981/2003/564 -f 1982/2004/756 1983/2005/757 1984/2006/758 -f 1985/2007/554 1986/2008/554 1987/2009/554 -f 1981/2003/564 1980/2002/564 1988/2010/564 -f 1983/2005/757 1989/2011/759 1990/2012/760 -f 1986/2008/554 1991/2013/554 1987/2009/554 -f 1988/2010/564 1980/2002/564 1992/2014/564 -f 1989/2011/759 1993/2015/761 1994/2016/762 -f 1991/2013/554 1995/2017/554 1987/2009/554 -f 1992/2014/564 1980/2002/564 1996/2018/564 -f 1997/2019/763 1998/2020/764 1999/2021/765 -f 1995/2017/554 2000/2022/554 1987/2009/554 -f 1996/2018/564 1980/2002/564 2001/2023/564 -f 1998/2020/764 2002/2024/766 2003/2025/767 -f 2000/2022/554 2004/2026/554 1987/2009/554 -f 2001/2023/564 1980/2002/564 2005/2027/564 -f 2002/2024/766 2006/2028/768 2007/2029/769 -f 2008/2030/564 2009/2031/770 2010/2032/770 -f 2004/2026/554 2011/2033/554 1987/2009/554 -f 2005/2027/564 1980/2002/564 2012/2034/564 -f 2010/2032/770 2009/2031/770 2013/2035/771 -f 2006/2028/768 2014/2036/772 2015/2037/773 -f 2011/2033/554 2016/2038/554 1987/2009/554 -f 2017/2039/774 2018/2040/775 2019/2041/776 -f 2020/2042/777 2017/2039/774 2021/2043/778 -f 2012/2034/564 1980/2002/564 1979/2001/564 -f 2014/2036/772 1982/2004/756 2022/2044/779 -f 2016/2038/554 1985/2007/554 1987/2009/554 -f 2023/2045/780 2024/2046/781 2025/2047/782 -f 2026/2048/783 2027/2049/784 2023/2045/780 -f 2028/2050/785 2029/2051/786 2030/2052/564 -f 2031/2053/787 2032/2054/788 2033/2055/554 -f 2034/2056/789 2035/2057/790 2036/2058/791 -f 2018/2040/775 2037/2059/792 2038/2060/793 -f 2039/2061/794 2040/2062/795 2041/2063/796 -f 2031/2053/787 2042/2064/797 2032/2054/788 -f 2043/2065/549 2044/2066/549 2045/2067/549 -f 2046/2068/564 2047/2069/564 2048/2070/564 -f 1586/1597/564 2049/2071/564 2050/2072/564 -f 2051/2073/798 2052/2074/799 2053/2075/800 -f 2041/2063/796 2040/2062/795 2054/2076/801 -f 2055/2077/802 2056/2078/803 2057/2079/564 -f 2058/2080/549 2059/2081/549 2060/2082/549 -f 2061/2083/549 2060/2082/549 2059/2081/549 -f 2062/2084/554 2063/2085/554 2064/2086/554 -f 2065/2087/804 2066/2088/805 2053/2075/800 -f 2067/2089/806 2068/2090/549 2069/2091/807 -f 2030/2052/564 2029/2051/786 2070/2092/564 -f 2071/2093/570 2072/2094/570 2073/2095/570 -f 2056/2078/803 2074/2096/564 2057/2079/564 -f 2075/2097/570 2076/2098/570 2077/2099/570 -f 2073/2095/570 2072/2094/570 2075/2100/570 -f 2078/2101/572 2079/2102/572 2080/2103/572 -f 2079/2102/572 2081/2104/572 2082/2105/572 -f 2083/2106/572 2084/2107/572 2082/2105/572 -f 2085/2108/570 2086/2109/570 2087/2110/570 -f 2088/2111/808 2089/2112/809 2090/2113/809 -f 2091/2114/810 2028/2050/785 2092/2115/811 -f 2039/2061/794 2093/2116/785 2094/2117/812 -f 2095/2118/787 2034/2056/789 2096/2119/813 -f 2097/2120/814 2098/2121/815 2099/2122/816 -f 2099/2122/816 2098/2121/815 2100/2123/817 -f 2099/2122/816 2100/2123/817 2101/2124/818 -f 2099/2122/816 2101/2124/818 2102/2125/586 -f 2103/2126/819 2104/2127/820 2105/2128/589 -f 2106/2129/821 2107/2130/822 2108/2131/816 -f 2109/2132/823 2110/2133/824 2111/2134/825 -f 2112/2135/826 2104/2127/820 2113/2136/827 -f 2114/2137/564 2115/2138/564 2113/2136/827 -f 2115/2138/564 2116/2139/564 2113/2136/827 -f 2117/2140/564 2113/2136/827 2116/2139/564 -f 2104/2127/820 2114/2137/564 2113/2136/827 -f 2114/2137/564 2104/2127/820 2103/2126/819 -f 2118/2141/828 2119/2142/829 2120/2143/830 -f 2121/2144/554 2122/2145/554 2123/2146/831 -f 2124/2147/564 2125/2148/564 2126/2149/832 -f 2127/2150/554 2128/2151/554 2129/2152/554 -f 2127/2150/554 2130/2153/833 2131/2154/554 -f 2121/2144/554 2123/2146/831 2132/2155/554 -f 2132/2155/554 2133/2156/554 2134/2157/554 -f 2134/2157/554 2135/2158/554 2136/2159/554 -f 2137/2160/564 2138/2161/564 2139/2162/834 -f 2140/2163/564 2141/2164/564 2142/2165/564 -f 2143/2166/564 2140/2163/564 2144/2167/564 -f 2125/2148/564 2143/2166/564 2145/2168/564 -f 2124/2147/564 2126/2149/832 2146/2169/564 -f 2122/2145/554 2147/2170/554 2130/2153/833 -f 2131/2154/554 2128/2151/554 2127/2150/554 -f 2128/2151/554 2136/2159/554 2129/2152/554 -f 2130/2153/833 2147/2170/554 2131/2154/554 -f 2123/2146/831 2133/2156/554 2132/2155/554 -f 2133/2156/554 2135/2158/554 2134/2157/554 -f 2135/2158/554 2129/2152/554 2136/2159/554 -f 2148/2171/564 2146/2169/564 2139/2162/834 -f 2141/2164/564 2138/2161/564 2137/2160/564 -f 2138/2161/564 2148/2171/564 2139/2162/834 -f 2141/2164/564 2137/2160/564 2142/2165/564 -f 2140/2163/564 2142/2165/564 2144/2167/564 -f 2143/2166/564 2144/2167/564 2145/2168/564 -f 2126/2149/832 2139/2162/834 2146/2169/564 -f 2149/2172/570 2086/2109/570 2085/2108/570 -f 2150/2173/835 2151/2174/836 2152/2175/837 -f 2153/2176/564 2154/2177/838 2151/2174/836 -f 2155/2178/564 2153/2176/564 2156/2179/839 -f 2157/2180/840 2155/2178/564 2158/2181/841 -f 2112/2135/826 2158/2181/841 2156/2179/839 -f 2159/2182/842 2118/2141/828 2160/2183/843 -f 2161/2184/570 2075/2100/570 2077/2185/570 -f 2162/2186/844 2163/2187/845 2024/2046/781 -f 2164/2188/846 2113/2136/827 2117/2140/564 -f 2165/2189/847 2164/2188/846 2117/2140/564 -f 2030/2052/564 2092/2115/811 2028/2050/785 -f 2166/2190/564 2167/2191/564 2168/2192/564 -f 2169/2193/847 2170/2194/848 2171/2195/849 -f 2027/2049/784 2172/2196/850 2173/2197/851 -f 2070/2092/564 2174/2198/848 2117/2140/564 -f 2074/2096/564 2117/2140/564 1585/1596/588 -f 2175/2199/570 2085/2200/570 2176/2201/570 -f 2177/2202/582 2178/2203/582 2179/2204/852 -f 2180/2205/853 2181/2206/854 2182/2207/855 -f 2183/2208/856 2184/2209/857 2185/2210/858 -f 2186/2211/859 2187/2212/860 2188/2213/861 -f 2189/2214/862 2185/2210/858 2184/2209/857 -f 2190/2215/863 2191/2216/864 2192/2217/865 -f 2192/2217/865 2193/2218/866 2194/2219/867 -f 2195/2220/868 2196/2221/869 2197/2222/870 -f 2198/2223/871 2199/2224/872 2196/2221/869 -f 2200/2225/873 2199/2224/872 2198/2223/871 -f 2195/2220/868 2198/2223/871 2196/2221/869 -f 2201/2226/874 2202/2227/875 2203/2228/876 -f 2204/2229/877 2205/2230/878 2201/2226/874 -f 2206/2231/879 2207/2232/880 2208/2233/881 -f 2209/2234/882 2206/2231/879 2210/2235/883 -f 2211/2236/884 2209/2234/882 2212/2237/885 -f 2213/2238/886 2211/2236/884 2214/2239/887 -f 2215/2240/888 2213/2238/886 2216/2241/889 -f 2217/2242/890 2218/2243/891 2219/2244/892 -f 2220/2245/893 2212/2237/885 2210/2235/883 -f 2221/2246/894 2214/2239/887 2212/2237/885 -f 2222/2247/895 2216/2241/889 2214/2239/887 -f 2223/2248/896 2224/2249/897 2216/2241/889 -f 2225/2250/898 2210/2235/883 2226/2251/899 -f 2227/2252/900 2228/2253/901 2209/2234/882 -f 2229/2254/902 2230/2255/903 2231/2256/904 -f 2194/2219/867 2190/2215/863 2192/2217/865 -f 2231/2256/904 2200/2225/873 2198/2223/871 -f 2232/2257/905 2201/2226/874 2203/2228/876 -f 2232/2257/905 2204/2229/877 2201/2226/874 -f 2212/2237/885 2209/2234/882 2210/2235/883 -f 2214/2239/887 2211/2236/884 2212/2237/885 -f 2216/2241/889 2213/2238/886 2214/2239/887 -f 2224/2249/897 2215/2240/888 2216/2241/889 -f 2233/2258/906 2217/2242/890 2219/2244/892 -f 2225/2250/898 2220/2245/893 2210/2235/883 -f 2220/2245/893 2221/2246/894 2212/2237/885 -f 2221/2246/894 2222/2247/895 2214/2239/887 -f 2222/2247/895 2223/2248/896 2216/2241/889 -f 2234/2259/907 2225/2250/898 2226/2251/899 -f 2235/2260/908 2236/2261/909 2195/2220/868 -f 2228/2253/901 2237/2262/910 2206/2231/879 -f 2231/2256/904 2238/2263/911 2200/2225/873 -f 2192/2217/865 2195/2220/868 2193/2218/866 -f 2201/2226/874 2205/2230/878 2239/2264/912 -f 2224/2249/897 2240/2265/913 2215/2240/888 -f 2223/2248/896 2241/2266/914 2224/2249/897 -f 2242/2267/915 2233/2258/906 2219/2244/892 -f 2243/2268/916 2215/2240/888 2233/2258/906 -f 2244/2269/917 2242/2267/915 2219/2244/892 -f 2242/2267/915 2243/2268/916 2233/2258/906 -f 2243/2268/916 2245/2270/918 2215/2240/888 -f 2054/2076/801 2118/2141/828 2246/2271/919 -f 2247/2272/570 2248/2273/570 2076/2098/570 -f 2036/2058/791 2249/2274/920 2096/2119/813 -f 2250/2275/921 2249/2274/920 2251/2276/922 -f 2252/2277/923 2253/2278/845 2025/2047/782 -f 2254/2279/924 2036/2058/791 2035/2057/790 -f 2255/2280/554 2256/2281/554 2257/2282/554 -f 2258/2283/570 2259/2284/570 2260/2285/570 -f 2261/2286/554 2262/2287/554 2263/2288/554 -f 2264/2289/925 2265/2290/926 2266/2291/925 -f 2267/2292/549 2268/2293/549 2269/2294/549 -f 2270/2295/927 2271/2296/927 2272/2297/570 -f 2149/2172/570 2075/2100/570 2072/2094/570 -f 2253/2278/845 2273/2298/844 2025/2047/782 -f 2274/2299/928 2275/2300/929 2027/2049/784 -f 2027/2049/784 2026/2048/783 2276/2301/930 -f 2023/2045/780 2025/2047/782 2277/2302/931 -f 2025/2047/782 2024/2046/781 2278/2303/932 -f 2279/2304/570 2280/2305/570 2281/2306/570 -f 2282/2307/582 2252/2277/923 2283/2308/933 -f 2284/2309/582 2253/2278/845 2252/2277/923 -f 2285/2310/934 2286/2311/582 2287/2312/582 -f 2283/2308/933 2288/2313/935 2289/2314/935 -f 2276/2301/930 2274/2299/928 2027/2049/784 -f 2290/2315/570 2279/2304/570 2291/2316/570 -f 2027/2049/784 2173/2197/851 2292/2317/936 -f 2111/2134/825 2293/2318/937 2294/2319/938 -f 2295/2320/939 2296/2321/940 2297/2322/554 -f 2294/2319/938 2297/2322/554 2298/2323/941 -f 2299/2324/554 2300/2325/554 2301/2326/942 -f 2302/2327/943 2301/2326/942 2303/2328/554 -f 2301/2329/942 2298/2323/941 2299/2330/554 -f 2293/2318/937 2297/2322/554 2294/2319/938 -f 2293/2318/937 2304/2331/944 2297/2322/554 -f 2304/2331/944 2295/2320/939 2297/2322/554 -f 2296/2321/940 2305/2332/554 2297/2322/554 -f 2297/2322/554 2299/2330/554 2298/2323/941 -f 2299/2324/554 2306/2333/554 2300/2325/554 -f 2300/2325/554 2307/2334/554 2301/2326/942 -f 2301/2326/942 2307/2334/554 2303/2328/554 -f 2308/2335/570 2309/2336/570 2310/2337/570 -f 2311/2338/570 2312/2339/570 2309/2340/570 -f 2313/2341/570 2314/2342/570 2308/2335/570 -f 2309/2336/570 2315/2343/570 2310/2337/570 -f 2309/2340/570 2316/2344/570 2311/2338/570 -f 2317/2345/570 2315/2346/570 2309/2340/570 -f 2316/2344/570 2309/2340/570 2280/2305/570 -f 2318/2347/945 2319/2348/946 2320/2349/947 -f 2321/2350/564 2318/2347/945 2322/2351/948 -f 1817/1834/674 1816/1833/673 2323/2352/949 -f 2324/2353/950 1883/1900/740 1872/1889/729 -f 2325/2354/951 2326/2355/952 1883/1900/740 -f 2325/2354/951 2324/2353/950 2327/2356/953 -f 1842/1859/699 2327/2356/953 2324/2353/950 -f 2328/2357/954 1878/1895/735 1877/1894/734 -f 2329/2358/955 1837/1854/694 1835/1852/692 -f 2329/2358/955 1836/1853/693 2328/2357/954 -f 2328/2357/954 1877/1894/734 1879/1896/736 -f 1828/1845/685 2330/2359/956 2331/2360/957 -f 1818/1835/675 1881/1898/738 2332/2361/958 -f 1821/1838/678 1874/1891/731 2333/2362/959 -f 1823/1840/680 1873/1890/730 1884/1901/741 -f 1867/1884/724 2332/2361/958 1880/1897/737 -f 1867/1884/724 1846/1863/703 2332/2361/958 -f 1826/1843/683 2332/2361/958 1844/1861/701 -f 1856/1873/713 1818/1835/675 1827/1844/684 -f 1855/1872/712 1816/1833/673 1856/1873/713 -f 1855/1872/712 1824/1841/681 1816/1833/673 -f 1816/1833/673 1818/1835/675 1856/1873/713 -f 1830/1847/687 1829/1846/686 1842/1859/699 -f 1832/1849/689 2334/2363/960 1829/1846/686 -f 1821/1838/678 2335/2364/961 1833/1850/690 -f 1821/1838/678 2333/2362/959 2335/2364/961 -f 2333/2362/959 1870/1887/727 2336/2365/962 -f 1870/1887/727 1813/1830/670 2337/2366/963 -f 1813/1830/670 1815/1832/672 2338/2367/964 -f 2328/2357/954 1836/1853/693 1878/1895/735 -f 2336/2365/962 2339/2368/965 2335/2364/961 -f 2337/2366/963 2340/2369/966 2336/2365/962 -f 2338/2367/964 2341/2370/967 2337/2366/963 -f 1838/1855/695 2342/2371/968 2338/2367/964 -f 2335/2364/961 2343/2372/969 2330/2359/956 -f 1874/1891/731 1869/1886/726 2333/2362/959 -f 1873/1890/730 1872/1889/729 1884/1901/741 -f 1846/1863/703 1844/1861/701 2332/2361/958 -f 1824/1841/681 1884/1901/741 1816/1833/673 -f 1829/1846/686 2327/2356/953 1842/1859/699 -f 2334/2363/960 2327/2356/953 1829/1846/686 -f 2333/2362/959 2336/2365/962 2335/2364/961 -f 1870/1887/727 2337/2366/963 2336/2365/962 -f 1813/1830/670 2338/2367/964 2337/2366/963 -f 1815/1832/672 1838/1855/695 2338/2367/964 -f 1836/1853/693 1834/1851/691 1878/1895/735 -f 2339/2368/965 2343/2372/969 2335/2364/961 -f 2340/2369/966 2339/2368/965 2336/2365/962 -f 2341/2370/967 2340/2369/966 2337/2366/963 -f 2342/2371/968 2341/2370/967 2338/2367/964 -f 2343/2372/969 2331/2360/957 2330/2359/956 -f 1817/1834/674 1881/1898/738 1818/1835/675 -f 1820/1837/677 1874/1891/731 1821/1838/678 -f 1823/1840/680 1884/1901/741 1824/1841/681 -f 1818/1835/675 2332/2361/958 1826/1843/683 -f 1832/1849/689 1829/1846/686 1828/1845/685 -f 1835/1852/692 1838/1855/695 1815/1832/672 -f 1837/1854/694 2342/2371/968 1838/1855/695 -f 1834/1851/691 1876/1893/733 1878/1895/735 -f 1815/1832/672 1875/1892/732 1834/1851/691 -f 1876/1893/733 1866/1883/723 1878/1895/735 -f 1875/1892/732 1876/1893/733 1834/1851/691 -f 1814/1831/671 1875/1892/732 1815/1832/672 -f 2245/2270/918 2213/2238/886 2215/2240/888 -f 2236/2261/909 2198/2223/871 2195/2220/868 -f 2237/2262/910 2207/2232/880 2206/2231/879 -f 2238/2263/911 2344/2373/970 2200/2225/873 -f 2195/2220/868 2345/2374/971 2193/2218/866 -f 2195/2220/868 2197/2222/870 2345/2374/971 -f 2201/2226/874 2239/2264/912 2202/2227/875 -f 2205/2230/878 2346/2375/972 2239/2264/912 -f 2207/2232/880 2202/2227/875 2239/2264/912 -f 2240/2265/913 2233/2258/906 2215/2240/888 -f 2233/2258/906 2240/2265/913 2217/2242/890 -f 2241/2266/914 2240/2265/913 2224/2249/897 -f 2347/2376/973 2203/2228/876 2202/2227/875 -f 2348/2377/974 2349/2378/975 2203/2228/876 -f 2350/2379/976 2344/2373/970 2238/2263/911 -f 2351/2380/977 2194/2219/867 2193/2218/866 -f 2351/2380/977 2190/2215/863 2194/2219/867 -f 2352/2381/978 2353/2382/979 2354/2383/980 -f 2355/2384/981 2356/2385/982 2357/2386/983 -f 2353/2382/979 2352/2381/978 2355/2384/981 -f 2193/2218/866 2345/2374/971 2358/2387/984 -f 2200/2225/873 2359/2388/985 2199/2224/872 -f 2197/2222/870 2196/2221/869 2359/2388/985 -f 2200/2225/873 2344/2373/970 2360/2389/986 -f 2350/2379/976 2361/2390/987 2360/2389/986 -f 2200/2225/873 2360/2389/986 2359/2388/985 -f 2362/2391/988 2363/2392/989 2361/2390/987 -f 2358/2387/984 2351/2380/977 2193/2218/866 -f 2358/2387/984 2359/2388/985 2364/2393/990 -f 2365/2394/991 2355/2384/981 2352/2381/978 -f 2366/2395/992 2352/2381/978 2351/2380/977 -f 2360/2389/986 2361/2390/987 2365/2394/991 -f 2364/2393/990 2359/2388/985 2360/2389/986 -f 2365/2394/991 2361/2390/987 2363/2392/989 -f 2367/2396/993 2356/2385/982 2365/2394/991 -f 2368/2397/994 2191/2216/864 2190/2215/863 -f 2244/2269/917 2219/2244/892 2191/2216/864 -f 2369/2398/995 2211/2236/884 2213/2238/886 -f 2227/2252/900 2209/2234/882 2211/2236/884 -f 2370/2399/996 2202/2227/875 2207/2232/880 -f 2349/2378/975 2348/2377/974 2230/2255/903 -f 2351/2380/977 2354/2383/980 2190/2215/863 -f 2358/2387/984 2364/2393/990 2351/2380/977 -f 2345/2374/971 2197/2222/870 2358/2387/984 -f 2359/2388/985 2358/2387/984 2197/2222/870 -f 2359/2388/985 2196/2221/869 2199/2224/872 -f 2361/2390/987 2350/2379/976 2362/2391/988 -f 2363/2392/989 2367/2396/993 2365/2394/991 -f 2356/2385/982 2355/2384/981 2365/2394/991 -f 2238/2263/911 2230/2255/903 2348/2377/974 -f 2362/2391/988 2350/2379/976 2238/2263/911 -f 2362/2391/988 2238/2263/911 2370/2399/996 -f 2237/2262/910 2367/2396/993 2363/2392/989 -f 2237/2262/910 2356/2385/982 2367/2396/993 -f 2357/2386/983 2356/2385/982 2237/2262/910 -f 2353/2382/979 2357/2386/983 2228/2253/901 -f 2368/2397/994 2354/2383/980 2353/2382/979 -f 2244/2269/917 2353/2382/979 2227/2252/900 -f 2369/2398/995 2243/2268/916 2242/2267/915 -f 2369/2398/995 2245/2270/918 2243/2268/916 -f 2347/2376/973 2370/2399/996 2348/2377/974 -f 2370/2399/996 2238/2263/911 2348/2377/974 -f 2363/2392/989 2362/2391/988 2370/2399/996 -f 2370/2399/996 2237/2262/910 2363/2392/989 -f 2228/2253/901 2357/2386/983 2237/2262/910 -f 2227/2252/900 2353/2382/979 2228/2253/901 -f 2244/2269/917 2368/2397/994 2353/2382/979 -f 2242/2267/915 2244/2269/917 2227/2252/900 -f 2227/2252/900 2369/2398/995 2242/2267/915 -f 2371/2400/997 2372/2401/998 2191/2216/864 -f 2373/2402/999 2374/2403/1000 2372/2401/998 -f 2235/2260/908 2192/2217/865 2372/2401/998 -f 2375/2404/1001 2229/2254/902 2231/2256/904 -f 2236/2261/909 2376/2405/1002 2377/2406/1003 -f 2378/2407/1004 2349/2378/975 2229/2254/902 -f 2379/2408/1005 2378/2407/1004 2375/2404/1001 -f 2379/2408/1005 2204/2229/877 2232/2257/905 -f 2203/2228/876 2349/2378/975 2378/2407/1004 -f 2219/2244/892 2218/2243/891 2371/2400/997 -f 2380/2409/1006 2217/2242/890 2240/2265/913 -f 2380/2409/1006 2381/2410/1007 2218/2243/891 -f 2218/2243/891 2381/2410/1007 2373/2402/999 -f 2239/2264/912 2346/2375/972 2234/2259/907 -f 2235/2260/908 2195/2220/868 2192/2217/865 -f 2228/2253/901 2206/2231/879 2209/2234/882 -f 2230/2255/903 2238/2263/911 2231/2256/904 -f 2192/2217/865 2191/2216/864 2372/2401/998 -f 2382/2411/1008 2188/2213/861 2187/2212/860 -f 2383/2412/1009 2119/2142/829 2118/2141/828 -f 2057/2079/564 2074/2096/564 2384/2413/564 -f 2054/2076/801 2040/2062/795 2094/2117/812 -f 2246/2271/919 2118/2141/828 2159/2182/842 -f 2385/2414/564 2384/2413/564 1592/1603/590 -f 2246/2271/919 2041/2063/796 2054/2076/801 -f 2171/2195/849 2386/2415/1010 2387/2416/846 -f 2388/2417/786 2389/2418/1011 2170/2194/848 -f 2386/2415/1010 2390/2419/1012 2391/2420/827 -f 2039/2061/794 2041/2063/796 2388/2417/786 -f 2389/2418/1011 2171/2195/849 2170/2194/848 -f 2390/2419/1012 2392/2421/1013 2393/2422/826 -f 2392/2421/1013 2394/2423/1014 2395/2424/1015 -f 2395/2424/1015 2394/2423/1014 2181/2206/854 -f 2182/2207/855 2181/2206/854 2394/2423/1014 -f 2396/2425/1016 2395/2424/1015 2181/2206/854 -f 2093/2116/785 2039/2061/794 2388/2417/786 -f 2397/2426/1017 2398/2427/1018 2399/2428/1019 -f 2400/2429/554 2063/2085/554 2401/2430/554 -f 2087/2110/570 2291/2316/570 2402/2431/570 -f 2400/2429/554 2064/2086/554 2063/2085/554 -f 2062/2084/554 2403/2432/554 2063/2085/554 -f 2404/2433/1020 2405/2434/1021 2406/2435/1022 -f 2075/2100/570 2149/2172/570 2175/2436/570 -f 2407/2437/1023 2408/2438/1024 2409/2439/1025 -f 2410/2440/554 2411/2441/554 2408/2442/1024 -f 2412/2443/564 2413/2444/564 2414/2445/564 -f 2163/2187/845 2278/2303/932 2024/2046/781 -f 2415/2446/564 2413/2444/564 2412/2443/564 -f 2416/2447/564 2168/2192/564 2167/2191/564 -f 2417/2448/570 2418/2449/570 2419/2450/570 -f 2420/2451/564 2421/2452/564 2422/2453/564 -f 2423/2454/1026 2424/2455/1026 2425/2456/1026 -f 2426/2457/1027 2427/2458/1028 2428/2459/1027 -f 2429/2460/1029 2430/2461/1030 2431/2462/1031 -f 2432/2463/1032 2431/2462/1031 2430/2461/1030 -f 2433/2464/1033 2067/2089/806 2434/2465/1034 -f 2435/2466/549 2436/2467/549 2437/2468/549 -f 2431/2462/1031 2438/2469/1035 2429/2460/1029 -f 2248/2273/570 2077/2099/570 2076/2098/570 -f 2439/2470/1036 2440/2471/564 2441/2472/803 -f 2047/2069/564 2442/2473/564 2048/2070/564 -f 2443/2474/927 2444/2475/570 2445/2476/570 -f 2446/2477/564 2442/2473/564 1590/1601/564 -f 2447/2478/564 1590/1601/564 2448/2479/1037 -f 2449/2480/564 2448/2479/1037 2450/2481/587 -f 2451/2482/564 2450/2481/587 2102/2125/586 -f 2452/2483/1038 2453/2484/1039 2454/2485/1040 -f 2049/2071/564 2047/2069/564 2455/2486/564 -f 2048/2070/564 2442/2473/564 2456/2487/564 -f 2456/2487/564 2442/2473/564 2446/2477/564 -f 2447/2478/564 2446/2477/564 1590/1601/564 -f 2449/2480/564 2447/2478/564 2448/2479/1037 -f 2448/2479/1037 1590/1601/564 1589/1600/564 -f 2451/2482/564 2449/2480/564 2450/2481/587 -f 2457/2488/1041 2451/2482/564 2102/2125/586 -f 2457/2488/1041 2102/2125/586 2101/2124/818 -f 1588/1599/589 1587/1598/564 2458/2489/564 -f 2097/2120/814 1588/1599/589 2458/2489/564 -f 2459/2490/564 2047/2069/564 2049/2071/564 -f 2050/2072/564 2049/2071/564 2455/2486/564 -f 2455/2486/564 2047/2069/564 2046/2068/564 -f 2460/2491/1042 2461/2492/1043 2398/2427/1018 -f 2462/2493/572 1597/1608/572 1596/1607/572 -f 1595/1606/572 1594/1605/572 1597/1608/572 -f 2463/2494/582 2177/2202/582 2278/2303/932 -f 2464/2495/1044 2179/2204/852 2178/2203/582 -f 2179/2204/852 2464/2495/1044 2465/2496/935 -f 2466/2497/1045 2172/2196/850 2027/2049/784 -f 2156/2179/839 2151/2174/836 2467/2498/1046 -f 2104/2127/820 2468/2499/1047 2105/2128/589 -f 2469/2500/1048 2470/2501/1049 2150/2173/835 -f 2471/2502/1050 2472/2503/589 2473/2504/1051 -f 2151/2174/836 2150/2173/835 2470/2501/1049 -f 2156/2179/839 2468/2499/1047 2104/2127/820 -f 2385/2414/564 1592/1603/590 2440/2471/564 -f 2023/2045/780 2292/2317/936 2024/2046/781 -f 2275/2300/929 2466/2497/1045 2027/2049/784 -f 2474/2505/564 2475/2506/564 2476/2507/564 -f 2174/2198/848 2165/2189/847 2117/2140/564 -f 2117/2140/564 2106/2129/821 1585/1596/588 -f 2384/2413/564 2074/2096/564 1592/1603/590 -f 1592/1603/590 2441/2472/803 2440/2471/564 -f 1585/1596/588 1592/1603/590 2074/2096/564 -f 2041/2063/796 2389/2418/1011 2388/2417/786 -f 2477/2508/572 2462/2509/572 1596/2510/572 -f 1598/1609/572 1597/1608/572 1594/1605/572 -f 2087/2110/570 2086/2109/570 2291/2316/570 -f 2478/2511/1052 2479/2512/570 2480/2513/570 -f 2481/2514/1053 2056/2078/803 2055/2077/802 -f 2439/2470/1036 2441/2472/803 2482/2515/1053 -f 2483/2516/582 2484/2517/582 2485/2518/582 -f 2486/2519/582 2483/2516/582 2487/2520/582 -f 2485/2518/582 2488/2521/582 2487/2520/582 -f 2483/2516/582 2485/2518/582 2487/2520/582 -f 2486/2519/582 2489/2522/582 2483/2516/582 -f 2490/2523/570 2491/2524/1054 2492/2525/1055 -f 2493/2526/564 2494/2527/564 2495/2528/1056 -f 2496/2529/572 2497/2530/572 2498/2531/572 -f 2499/2532/582 2500/2533/582 2501/2534/582 -f 2502/2535/572 2503/2536/572 2498/2531/572 -f 2495/2528/1056 2492/2525/1055 2491/2524/1054 -f 2504/2537/1057 2505/2538/564 2506/2539/564 -f 2504/2537/1057 2507/2540/1057 2508/2541/1058 -f 2509/2542/1059 2510/2543/1060 2511/2544/1061 -f 2512/2545/582 2513/2546/582 2514/2547/582 -f 2514/2547/582 2513/2546/582 2487/2520/582 -f 2515/2548/554 2516/2549/554 2517/2550/554 -f 2518/2551/570 2519/2552/1062 2520/2553/1063 -f 2521/2554/554 2522/2555/1064 2523/2556/1065 -f 2524/2557/572 2525/2558/572 2526/2559/572 -f 2503/2536/572 2502/2535/572 2527/2560/572 -f 2527/2560/572 2528/2561/572 2526/2559/572 -f 2523/2556/1065 2522/2555/1064 2529/2562/1066 -f 2530/2563/1067 2531/2564/1067 2532/2565/554 -f 2520/2553/1063 2519/2552/1062 2533/2566/1059 -f 2501/2534/582 2489/2522/582 2486/2519/582 -f 2534/2567/564 2535/2568/564 2536/2569/564 -f 2530/2563/1067 2537/2570/1068 2538/2571/1068 -f 2539/2572/1069 2508/2541/1058 2538/2571/1068 -f 2484/2517/582 2540/2573/582 2485/2518/582 -f 2541/2574/564 1505/1516/564 1507/1518/564 -f 2542/2575/565 1508/1519/565 1510/1521/565 -f 2543/2576/554 1511/1522/554 1513/1524/554 -f 2544/2577/566 1514/1525/566 1516/1527/568 -f 2545/2578/564 2546/2579/564 2541/2574/564 -f 2547/2580/1070 1516/1527/568 2548/2581/1071 -f 1507/1518/564 2545/2578/564 2541/2574/564 -f 2546/2579/564 2549/2582/564 2541/2574/564 -f 2542/2575/565 1510/1521/565 2550/2583/565 -f 1513/1524/554 2551/2584/554 2543/2576/554 -f 1516/1527/568 1515/1526/567 2548/2581/1071 -f 2552/2585/1072 2553/2586/1072 2554/2587/1072 -f 2555/2588/1073 1588/1599/589 2097/2120/814 -f 2294/2319/938 2556/2589/1074 2109/2132/823 -f 2294/2319/938 2109/2132/823 2111/2134/825 -f 2110/2133/824 2454/2485/1040 2111/2134/825 -f 2116/2139/564 2107/2130/822 2106/2129/821 -f 2557/2590/1075 2558/2591/1076 2559/2592/1077 -f 2560/2593/1078 2561/2594/1079 2562/2595/1080 -f 2563/2596/1081 2564/2597/1082 2565/2598/1083 -f 2564/2597/1082 2566/2599/1084 2565/2598/1083 -f 2453/2484/1039 2111/2134/825 2454/2485/1040 -f 2562/2595/1080 2561/2594/1079 2567/2600/570 -f 2568/2601/554 2569/2602/1085 2570/2603/554 -f 2571/2604/1084 2556/2589/1074 2294/2319/938 -f 2563/2596/1081 2572/2605/554 2564/2597/1082 -f 2573/2606/1086 2574/2607/824 2575/2608/1087 -f 2576/2609/549 2577/2610/549 2578/2611/1088 -f 2579/2612/1089 2563/2596/1081 2580/2613/1090 -f 2572/2605/554 2581/2614/554 2564/2597/1082 -f 2125/2148/564 2145/2168/564 2126/2149/832 -f 2122/2145/554 2130/2153/833 2123/2146/831 -f 2582/2615/549 2583/2616/549 2584/2617/1091 -f 2585/2618/1092 2586/2619/1093 2587/2620/572 -f 2586/2621/1093 2585/2622/1092 2588/2623/570 -f 2589/2624/582 2590/2625/582 2591/2626/1094 -f 2592/2627/1026 2593/2628/1026 2594/2629/1026 -f 2595/2630/1095 2066/2088/805 2065/2087/804 -f 2593/2628/1026 2596/2631/1026 2594/2629/1026 -f 2597/2632/1026 2592/2627/1026 2598/2633/1026 -f 2029/2051/786 2174/2198/848 2070/2092/564 -f 2599/2634/572 2600/2635/572 2601/2636/572 -f 2602/2637/572 2603/2638/572 2600/2635/572 -f 2404/2433/1020 2604/2639/1096 2405/2434/1021 -f 2112/2135/826 2156/2179/839 2104/2127/820 -f 2158/2181/841 2155/2178/564 2156/2179/839 -f 2593/2628/1026 2423/2454/1026 2425/2456/1026 -f 2605/2640/1026 2425/2456/1026 2424/2455/1026 -f 2153/2176/564 2151/2174/836 2156/2179/839 -f 2598/2633/1026 2592/2627/1026 2594/2629/1026 -f 2154/2177/838 2152/2175/837 2151/2174/836 -f 2086/2109/570 2290/2315/570 2291/2316/570 -f 2461/2492/1043 2399/2428/1019 2398/2427/1018 -f 2319/2348/946 2606/2641/1097 2409/2439/1025 -f 2607/2642/1098 2404/2433/1020 2406/2435/1022 -f 2587/2620/572 2608/2643/1091 2584/2617/1091 -f 2589/2624/582 2609/2644/1099 2610/2645/1100 -f 2591/2626/1094 2611/2646/570 2588/2647/570 -f 2612/2648/549 2610/2645/1100 2609/2644/1099 -f 2613/2649/809 2614/2650/1101 2615/2651/809 -f 2088/2111/808 2090/2113/809 2615/2651/809 -f 2616/2652/572 2617/2653/572 2618/2654/572 -f 2619/2655/572 2620/2656/572 2618/2654/572 -f 2621/2657/572 2622/2658/572 2620/2656/572 -f 2623/2659/570 2073/2095/570 2075/2100/570 -f 2299/2324/554 2624/2660/943 2306/2333/554 -f 2311/2338/570 2625/2661/570 2312/2339/570 -f 2626/2662/790 2033/2055/554 2305/2332/554 -f 2627/2663/806 2628/2664/1034 2629/2665/1102 -f 2630/2666/582 2631/2667/582 2632/2668/582 -f 2633/2669/564 2634/2670/564 2635/2671/564 -f 2636/2672/549 2637/2673/549 2638/2674/549 -f 2639/2675/549 2640/2676/549 2636/2672/549 -f 2624/2660/943 2641/2677/1103 2306/2333/554 -f 2642/2678/1104 2643/2679/1104 2644/2680/1105 -f 2645/2681/1106 2069/2091/807 2629/2665/1102 -f 2646/2682/554 2647/2683/554 2648/2684/554 -f 2649/2685/564 2650/2686/564 2651/2687/564 -f 2652/2688/1107 2653/2689/1107 2654/2690/1108 -f 2578/2611/1088 2655/2691/1109 2656/2692/1110 -f 2657/2693/554 2658/2694/554 2659/2695/554 -f 2660/2696/549 2661/2697/549 2662/2698/549 -f 2663/2699/1111 2664/2700/1112 2665/2701/1113 -f 2666/2702/1114 2667/2703/1115 2668/2704/1116 -f 2669/2705/1117 2668/2704/1116 2664/2700/1112 -f 2670/2706/1118 2671/2707/1119 2672/2708/1119 -f 2673/2709/554 2674/2710/554 2670/2706/1118 -f 2675/2711/572 2676/2712/572 2677/2713/572 -f 2678/2714/572 2679/2715/572 2680/2716/572 -f 2655/2691/1109 2681/2717/1120 2682/2718/1120 -f 2301/2329/942 2683/2719/1121 2684/2720/1122 -f 2685/2721/554 2686/2722/554 2687/2723/554 -f 2688/2724/1107 2689/2725/1107 2690/2726/1123 -f 2647/2683/554 2646/2682/554 2569/2602/1085 -f 2569/2602/1085 2579/2612/1089 2570/2603/554 -f 2691/2727/1124 2294/2319/938 2298/2323/941 -f 2692/2728/1103 2693/2729/1125 2694/2730/1125 -f 2695/2731/1125 2696/2732/1125 2641/2677/1103 -f 2667/2703/1115 2666/2702/1114 2697/2733/570 -f 2462/2509/572 2477/2508/572 2698/2734/572 -f 2699/2735/572 2677/2713/572 2678/2714/572 -f 2700/2736/572 2698/2734/572 2675/2737/572 -f 2701/2738/1126 2702/2739/1126 2703/2740/1126 -f 2691/2727/1124 2571/2604/1084 2294/2319/938 -f 2106/2129/821 2117/2140/564 2116/2139/564 -f 2704/2741/823 2559/2592/1077 2558/2591/1076 -f 2705/2742/549 2706/2743/549 2707/2744/549 -f 2563/2596/1081 2565/2598/1083 2580/2613/1090 -f 2708/2745/1127 2709/2746/1128 2710/2747/1128 -f 2644/2680/1105 2708/2745/1127 2711/2748/1129 -f 2712/2749/549 2643/2679/1104 2642/2678/1104 -f 2713/2750/1130 2714/2751/1130 2715/2752/1130 -f 2716/2753/1131 2717/2754/1131 2718/2755/1131 -f 2719/2756/554 2720/2757/554 2721/2758/554 -f 2722/2759/1132 2723/2760/1132 2724/2761/1132 -f 2725/2762/1133 2472/2503/589 2471/2502/1050 -f 2726/2763/1134 2727/2764/1135 2111/2134/825 -f 2728/2765/1136 2729/2766/1137 2730/2767/1138 -f 2731/2768/1139 2732/2769/1140 2733/2770/1134 -f 2734/2771/1141 2735/2772/1142 2736/2773/1143 -f 2726/2763/1134 2111/2134/825 2453/2484/1039 -f 2727/2764/1135 2726/2763/1134 2729/2766/1137 -f 2737/2774/1137 2738/2775/1046 2739/2776/1144 -f 2738/2775/1046 2737/2774/1137 2733/2770/1134 -f 2732/2769/1140 2740/2777/1145 2473/2504/1051 -f 2741/2778/1048 2742/2779/1146 2743/2780/1147 -f 2678/2714/572 2680/2716/572 2699/2735/572 -f 2699/2735/572 2700/2781/572 2675/2711/572 -f 2744/2782/570 2087/2110/570 2402/2431/570 -f 2657/2693/554 2745/2783/554 2658/2694/554 -f 2646/2682/554 2648/2684/554 2745/2783/554 -f 2657/2693/554 2746/2784/554 2646/2682/554 -f 2555/2588/1073 2097/2120/814 2099/2122/816 -f 2099/2122/816 2650/2686/564 2649/2685/564 -f 2566/2599/1084 2747/2785/1124 2748/2786/1148 -f 2570/2603/554 2579/2612/1089 2580/2613/1090 -f 2749/2787/1149 2565/2598/1083 2566/2599/1084 -f 2747/2785/1124 2750/2788/1150 2748/2786/1148 -f 2751/2789/554 2750/2788/1150 2747/2785/1124 -f 2752/2790/554 2751/2789/554 2753/2791/1122 -f 2685/2721/554 2754/2792/1121 2686/2722/554 -f 2755/2793/554 2752/2790/554 2754/2792/1121 -f 2756/2794/554 2755/2793/554 2685/2721/554 -f 2757/2795/554 2758/2796/554 2756/2794/554 -f 2757/2795/554 2659/2695/554 2758/2796/554 -f 2657/2693/554 2646/2682/554 2745/2783/554 -f 2574/2607/824 2704/2741/823 2759/2797/1151 -f 2753/2791/1122 2751/2789/554 2747/2785/1124 -f 2754/2792/1121 2752/2790/554 2753/2791/1122 -f 2685/2721/554 2755/2793/554 2754/2792/1121 -f 2757/2795/554 2756/2794/554 2685/2721/554 -f 2760/2798/1152 2761/2799/1153 2762/2800/1154 -f 2757/2795/554 2657/2693/554 2659/2695/554 -f 2303/2328/554 2692/2728/1103 2302/2327/943 -f 2310/2337/570 2313/2341/570 2308/2335/570 -f 2763/2801/1155 2764/2802/1156 2765/2803/1157 -f 2429/2460/1029 2438/2469/1035 2763/2801/1155 -f 2766/2804/1033 2767/2805/1158 2628/2664/1034 -f 2767/2805/1158 2766/2804/1033 2768/2806/1159 -f 2768/2806/1159 2765/2803/1157 2764/2802/1156 -f 2769/2807/1160 2770/2808/1161 2771/2809/1162 -f 2770/2808/1161 2772/2810/1163 2773/2811/1164 -f 2774/2812/1165 2769/2807/1160 2775/2813/1166 -f 2772/2810/1163 2776/2814/1167 2777/2815/1168 -f 2778/2816/1169 2774/2812/1165 2779/2817/1170 -f 2776/2814/1167 2780/2818/1171 2781/2819/1172 -f 2782/2820/1173 2778/2816/1169 2783/2821/1174 -f 2780/2818/1171 2784/2822/1175 2785/2823/1176 -f 2786/2824/1177 2782/2820/1173 2787/2825/1178 -f 2784/2822/1175 2645/2681/1106 2788/2826/1179 -f 2761/2799/1153 2786/2824/1177 2789/2827/1180 -f 2790/2828/572 2791/2829/572 2792/2830/1181 -f 2793/2831/564 2634/2670/564 2633/2669/564 -f 2635/2671/564 2794/2832/564 2633/2669/564 -f 2795/2833/549 2796/2834/549 2797/2835/549 -f 2794/2832/564 2798/2836/564 2799/2837/564 -f 2068/2090/549 2800/2838/549 2629/2665/1102 -f 2031/2053/787 2033/2055/554 2626/2662/790 -f 2801/2839/1182 2802/2840/1183 2803/2841/1184 -f 2803/2841/1184 2804/2842/1185 2805/2843/1186 -f 2805/2843/1186 2801/2839/1182 2803/2841/1184 -f 2806/2844/1187 2807/2845/1188 2801/2839/1182 -f 2808/2846/1189 2809/2847/937 2807/2845/1188 -f 2810/2848/1190 2254/2279/924 2811/2849/940 -f 2036/2058/791 2096/2119/813 2034/2056/789 -f 2812/2850/1191 2813/2851/944 2809/2847/937 -f 2254/2279/924 2035/2057/790 2811/2849/940 -f 2810/2848/1190 2814/2852/939 2813/2851/944 -f 2036/2058/791 2251/2276/922 2249/2274/920 -f 2160/2183/843 2250/2275/921 2159/2182/842 -f 2250/2275/921 2251/2276/922 2159/2182/842 -f 2249/2274/920 2815/2853/1192 2816/2854/797 -f 2160/2183/843 2120/2143/830 2817/2855/1193 -f 2815/2853/1192 2249/2274/920 2250/2275/921 -f 2818/2856/1194 2819/2857/1195 2820/2858/1196 -f 2819/2857/1195 2818/2856/1194 2821/2859/1197 -f 2822/2860/1198 2823/2861/1199 2824/2862/1200 -f 2821/2859/1197 2825/2863/1201 2826/2864/1202 -f 2803/2841/1184 2827/2865/1203 2804/2842/1185 -f 2182/2207/855 2394/2423/1014 2805/2843/1186 -f 2394/2423/1014 2392/2421/1013 2806/2844/1187 -f 2390/2419/1012 2386/2415/1010 2812/2850/1191 -f 2806/2844/1187 2392/2421/1013 2390/2419/1012 -f 2386/2415/1010 2171/2195/849 2810/2848/1190 -f 2811/2849/940 2814/2852/939 2810/2848/1190 -f 2828/2866/554 2829/2867/554 2255/2280/554 -f 2095/2118/787 2035/2057/790 2034/2056/789 -f 2246/2271/919 2159/2182/842 2251/2276/922 -f 2810/2848/1190 2171/2195/849 2389/2418/1011 -f 2246/2271/919 2251/2276/922 2036/2058/791 -f 2254/2279/924 2389/2418/1011 2041/2063/796 -f 2830/2868/1188 2293/2318/937 2111/2134/825 -f 2831/2869/1204 2830/2868/1188 2727/2764/1135 -f 2832/2870/554 2833/2871/1205 2831/2869/1204 -f 2834/2872/554 2832/2870/554 2727/2764/1135 -f 2835/2873/1206 2834/2872/554 2728/2765/1136 -f 2728/2765/1136 2736/2773/1143 2735/2772/1142 -f 2316/2344/570 2280/2305/570 2279/2304/570 -f 2727/2764/1135 2830/2868/1188 2111/2134/825 -f 2832/2870/554 2831/2869/1204 2727/2764/1135 -f 2728/2765/1136 2834/2872/554 2727/2764/1135 -f 2735/2772/1142 2835/2873/1206 2728/2765/1136 -f 2296/2321/940 2626/2662/790 2305/2332/554 -f 2836/2874/1026 2837/2875/1026 2838/2876/1026 -f 2839/2877/1026 2840/2878/1026 2841/2879/1026 -f 2839/2877/1026 2841/2879/1026 2838/2876/1026 -f 2837/2875/1026 2839/2877/1026 2838/2876/1026 -f 2837/2875/1026 2836/2874/1026 2842/2880/1026 -f 2842/2880/1026 2843/2881/1026 2844/2882/1026 -f 2605/2640/1026 2424/2455/1026 2844/2882/1026 -f 2845/2883/1207 2846/2884/1208 2847/2885/1209 -f 2847/2885/1209 2848/2886/1210 2849/2887/1211 -f 2850/2888/1212 2851/2889/1213 2852/2890/1214 -f 2853/2891/1215 2851/2889/1213 2850/2888/1212 -f 2595/2630/1095 2854/2892/1216 2846/2884/1208 -f 2592/2627/1026 2597/2632/1026 2840/2878/1026 -f 2844/2882/1026 2855/2893/1026 2842/2880/1026 -f 2161/2894/570 2077/2099/570 2310/2337/570 -f 2856/2895/572 2857/2896/572 2858/2897/572 -f 2859/2898/554 2860/2899/554 2861/2900/554 -f 2862/2901/570 2863/2902/570 2864/2903/570 -f 2861/2904/554 2865/2905/554 2866/2906/554 -f 2867/2907/553 1481/1492/553 1483/1494/553 -f 2868/2908/554 1484/1495/554 1486/1497/554 -f 1498/1509/562 1487/1498/555 1489/1500/557 -f 2869/2909/559 1490/1501/558 1492/1503/559 -f 2870/2910/560 1493/1504/560 1495/1506/560 -f 1489/1500/557 1496/1507/561 1498/1509/562 -f 2871/2911/554 1499/1510/554 1501/1512/554 -f 2872/2912/563 1502/1513/563 1504/1515/563 -f 1555/1566/581 1546/1557/573 1548/1559/575 -f 1525/1536/569 1549/1560/576 1528/1539/571 -f 1550/1561/576 1549/1560/576 1552/1563/578 -f 1552/1563/578 1551/1562/577 1554/1565/580 -f 1554/1565/580 1553/1564/579 1547/1558/574 -f 2873/2913/582 1557/1568/582 1559/1570/582 -f 2874/2914/582 1560/1571/582 1562/1573/582 -f 2875/2915/570 1563/1574/570 1565/1576/570 -f 2876/2916/554 1566/1577/554 1568/1579/554 -f 2877/2917/554 1569/1580/554 1571/1582/554 -f 2878/2918/582 1572/1583/582 1574/1585/582 -f 1722/1739/621 1580/1591/583 1582/1593/585 -f 2106/2129/821 1583/1594/586 1585/1596/588 -f 2049/2071/564 1586/1597/564 1588/1599/589 -f 2879/2919/1037 1592/1603/590 1584/1595/587 -f 2880/2920/572 1596/1607/572 1598/1609/572 -f 1723/1740/572 1599/1610/572 1601/1612/572 -f 1724/1741/620 1602/1613/591 1604/1615/593 -f 1725/1742/582 1605/1616/582 1607/1618/582 -f 1582/1593/585 1581/1592/584 1609/1620/595 -f 1601/1612/572 1600/1611/572 1611/2921/572 -f 1604/1615/593 1603/1614/592 1613/1625/597 -f 1607/1618/582 1606/1617/582 1615/1627/582 -f 1609/1620/595 1608/1619/594 1617/1629/599 -f 1611/2921/572 1610/1630/572 1619/1632/572 -f 1613/1625/597 1612/1624/596 1621/1634/601 -f 1615/1627/582 1614/1626/582 1623/1636/582 -f 1617/2922/599 1616/2923/598 1625/2924/603 -f 1619/1632/572 1618/1631/572 1627/1640/572 -f 1621/2925/601 1620/2926/600 1629/2927/605 -f 1623/1636/582 1622/1635/582 1631/1645/582 -f 2881/2928/626 1632/2929/606 1634/2930/608 -f 1627/1640/572 1626/1639/572 1636/1650/572 -f 2882/2931/625 1637/1651/609 1639/1653/611 -f 1631/1645/582 1630/1644/582 1641/1655/582 -f 1634/2930/608 1633/1656/607 1643/1658/613 -f 1636/1650/572 1635/1649/572 1645/1660/572 -f 1639/1653/611 1638/1652/610 1647/1662/615 -f 1641/1655/582 1640/1654/582 1649/1664/582 -f 1643/1658/613 1642/1657/612 1651/1666/617 -f 1645/1660/572 1644/1659/572 1653/1668/572 -f 1647/1662/615 1646/1661/614 1655/1670/619 -f 1649/1664/582 1648/1663/582 1657/1672/582 -f 1651/1666/617 1650/1665/616 1659/2932/620 -f 1653/1668/572 1652/1667/572 1661/1677/572 -f 1655/1670/619 1654/1669/618 1663/1679/621 -f 1657/1672/582 1656/1671/582 1665/1681/582 -f 1659/2932/620 1658/2933/591 1667/2934/593 -f 1661/1677/572 1660/1676/572 1669/1685/572 -f 1663/1679/621 1662/1678/583 1671/1687/585 -f 1665/1681/582 1664/1680/582 1673/1689/582 -f 1667/2934/593 1666/2935/622 1675/2936/597 -f 1669/1685/572 1668/1684/572 1677/1693/572 -f 1671/1687/585 1670/1686/584 1679/1695/595 -f 1673/1689/582 1672/1688/582 1681/1697/582 -f 1675/2936/597 1674/2937/596 1683/2938/601 -f 1677/1693/572 1676/1692/572 1685/1701/572 -f 1679/1695/595 1678/1694/594 1687/1703/624 -f 1681/1697/582 1680/1696/582 1689/1705/582 -f 1683/1699/601 1682/1698/600 1691/1707/625 -f 1685/1701/572 1684/1700/572 1693/1709/572 -f 1687/1703/624 1686/1702/623 1695/1711/626 -f 1689/1705/582 1688/1704/582 1697/1713/582 -f 1691/1707/625 1690/1706/604 1699/1715/628 -f 1693/1709/572 1692/1708/572 1701/1717/572 -f 1695/2939/626 1694/1718/602 1703/1720/608 -f 1697/1713/582 1696/1712/582 1705/1722/582 -f 1699/1715/628 1698/1714/627 1707/1724/615 -f 1701/1717/572 1700/1716/572 1709/1726/572 -f 1703/1720/608 1702/1719/607 1711/1728/613 -f 1705/1722/582 1704/1721/582 1713/1730/582 -f 1707/1724/615 1706/1723/614 1715/1732/619 -f 1709/1726/572 1708/1725/572 1717/1734/572 -f 1711/1728/613 1710/1727/612 1719/1736/629 -f 1713/1730/582 1712/1729/582 1721/1738/582 -f 1715/1732/619 1714/1731/618 1722/1739/621 -f 1717/1734/572 1716/1733/572 1723/1740/572 -f 1719/1736/629 1718/1735/616 1724/1741/620 -f 1721/1738/582 1720/1737/582 1725/1742/582 -f 1749/1766/554 1726/1743/554 1728/1745/554 -f 1728/1745/554 1727/1744/554 1730/1747/554 -f 1730/1747/554 1729/1746/554 1732/1749/554 -f 1732/1749/554 1731/1748/554 1734/1751/554 -f 1734/1751/554 1733/1750/554 1736/1753/554 -f 1736/1753/554 1735/1752/554 1738/1755/554 -f 1738/1755/554 1737/1754/554 1740/1757/554 -f 1740/1757/554 1739/1756/554 1742/1759/554 -f 1742/1759/554 1741/1758/554 1744/1761/554 -f 1744/1761/554 1743/1760/554 1746/1763/554 -f 1746/1763/554 1745/1762/554 1748/1765/554 -f 1748/1765/554 1747/1764/554 1749/1766/554 -f 1760/1777/637 1750/1767/630 1752/1769/632 -f 1812/1829/669 1753/1770/633 1755/1772/635 -f 1765/1782/641 1759/1776/636 1760/1777/637 -f 1755/1772/635 1754/1771/634 1762/1779/639 -f 2883/2940/746 1764/1781/640 1765/1782/641 -f 1762/1779/639 1761/1778/638 1767/1784/643 -f 1776/1793/650 1769/1786/644 1771/1788/646 -f 1767/1784/643 1766/1783/642 1773/1790/648 -f 1781/1798/654 1775/1792/649 1776/1793/650 -f 1773/1790/648 1772/1789/647 1778/1795/652 -f 1786/1803/657 1780/1797/653 1781/1798/654 -f 1778/1795/652 1777/1794/651 1783/1800/656 -f 1791/1808/660 1785/1802/651 1786/1803/657 -f 1783/1800/656 1782/1799/655 1788/1805/654 -f 1796/1813/648 1790/1807/659 1791/1808/660 -f 1788/1805/654 1787/1804/658 1793/1810/661 -f 1801/1818/664 1795/1812/662 1796/1813/648 -f 1793/1810/661 1792/1809/644 1798/1815/663 -f 1807/1824/667 1800/1817/638 1801/1818/664 -f 2884/2941/746 1802/1819/640 1804/1821/641 -f 1811/1828/635 1806/1823/666 1807/1824/667 -f 1804/1821/641 1803/1820/665 1809/1826/668 -f 1752/1769/632 1751/1768/631 1811/1828/635 -f 1809/1826/668 1808/1825/630 1812/1829/669 -f 1830/1847/687 1819/1836/676 1828/1845/685 -f 1842/1859/699 1839/1856/696 1830/1847/687 -f 1871/1888/728 1841/1858/698 1842/1859/699 -f 1852/1869/709 1847/1864/704 1848/1865/705 -f 1847/1864/704 1852/1869/709 1850/1867/707 -f 1860/1877/717 1843/1860/700 1857/1874/714 -f 1850/1867/707 1862/1879/719 1847/1864/704 -f 1847/1864/704 1863/1880/720 1845/1862/702 -f 1860/1877/717 1857/1874/714 1862/1879/719 -f 1854/1871/711 1861/1878/718 1857/1874/714 -f 1867/1884/724 1865/1882/722 1846/1863/703 -f 1878/1895/735 1866/1883/723 1867/1884/724 -f 1870/1887/727 1868/1885/725 1813/1830/670 -f 2333/2362/959 1869/1886/726 1870/1887/727 -f 1830/1847/687 1840/1857/697 1819/1836/676 -f 1841/1858/698 1871/1888/728 1873/1890/730 -f 1880/1897/737 1877/1894/734 1867/1884/724 -f 1882/1899/739 1879/1896/736 1880/1897/737 -f 2332/2361/958 1881/1898/738 1880/1897/737 -f 1872/1889/729 1883/1900/740 1884/1901/741 -f 1892/1909/651 1888/1905/652 1890/1907/742 -f 1896/1913/655 1891/1908/656 1892/1909/651 -f 1890/1907/742 1889/1906/648 1894/1911/642 -f 1898/1915/744 1895/1912/654 1896/1913/655 -f 1902/1919/644 1897/1914/743 1898/1915/744 -f 1894/1911/642 1893/1910/643 1900/1917/638 -f 1904/1921/645 1901/1918/746 1902/1919/644 -f 1908/1925/665 1903/1920/641 1904/1921/645 -f 1900/1917/638 1899/1916/745 1906/1923/634 -f 1910/1927/630 1907/1924/668 1908/1925/665 -f 1911/1928/633 1909/1926/669 1910/1927/630 -f 1906/1923/634 1905/1922/635 1911/1928/633 -f 1916/1933/564 1912/1929/564 1914/1931/564 -f 1920/1937/564 1915/1932/564 1916/1933/564 -f 1914/1931/564 1913/1930/564 1918/1935/564 -f 1922/1939/564 1919/1936/564 1920/1937/564 -f 1925/1943/564 1921/1938/564 1922/1939/564 -f 1918/1935/564 1917/1934/564 1924/1941/564 -f 1927/1945/564 1885/1942/564 1925/1943/564 -f 1931/1949/564 1926/1944/564 1927/1945/564 -f 1924/1941/564 1923/1940/564 1929/1947/564 -f 1933/1951/564 1930/1948/564 1931/1949/564 -f 1934/1952/564 1932/1950/564 1933/1951/564 -f 1929/1947/564 1928/1946/564 1934/1952/564 -f 1942/1960/648 1938/1956/647 1940/1958/652 -f 1951/1969/643 1941/1959/642 1942/1960/648 -f 1940/1958/652 1939/1957/651 1945/1963/656 -f 1945/1963/656 1944/1962/655 1949/1967/654 -f 1961/1979/639 1950/1968/638 1951/1969/643 -f 1949/1967/654 1948/1966/658 1954/1972/747 -f 1974/1992/752 1957/1975/748 1959/1977/749 -f 1971/1989/635 1960/1978/634 1961/1979/639 -f 2885/2942/750 1963/1981/750 1965/1983/751 -f 1958/1976/748 1957/1975/748 1969/1987/668 -f 1973/1991/669 1970/1988/633 1971/1989/635 -f 1969/1987/668 1968/1986/630 1973/1991/669 -f 1964/1982/751 1974/1992/752 1965/1983/751 -f 2886/2943/754 1954/1972/747 1975/1994/753 -f 2885/2942/750 1976/1995/754 1963/1981/750 -f 2887/2944/564 1887/1997/564 1978/1999/564 -f 2022/2044/779 1982/2004/756 1984/2006/758 -f 1984/2006/758 1983/2005/757 1990/2012/760 -f 1990/2012/760 1989/2011/759 1994/2016/762 -f 2888/2945/1217 1997/2019/763 1999/2021/765 -f 1999/2021/765 1998/2020/764 2003/2025/767 -f 2003/2025/767 2002/2024/766 2007/2029/769 -f 2889/2946/564 2008/2030/564 2010/2032/770 -f 2890/2947/771 2010/2032/770 2013/2035/771 -f 2007/2029/769 2006/2028/768 2015/2037/773 -f 2021/2043/778 2017/2039/774 2019/2041/776 -f 2478/2511/1052 2020/2042/777 2021/2043/778 -f 2015/2037/773 2014/2036/772 2022/2044/779 -f 2277/2302/931 2026/2048/783 2023/2045/780 -f 2019/2041/776 2018/2040/775 2038/2060/793 -f 2891/2948/549 2043/2065/549 2045/2067/549 -f 2853/2891/1215 2051/2073/798 2053/2075/800 -f 2892/2949/549 2058/2080/549 2060/2082/549 -f 2052/2074/799 2065/2087/804 2053/2075/800 -f 2434/2465/1034 2067/2089/806 2069/2091/807 -f 2893/2950/572 2078/2101/572 2080/2103/572 -f 2080/2103/572 2079/2102/572 2082/2105/572 -f 2081/2104/572 2083/2106/572 2082/2105/572 -f 2040/2062/795 2039/2061/794 2094/2117/812 -f 2816/2854/797 2095/2118/787 2096/2119/813 -f 2894/2951/1073 2103/2126/819 2105/2128/589 -f 1583/1594/586 2106/2129/821 2108/2131/816 -f 2160/2183/843 2118/2141/828 2120/2143/830 -f 2175/2436/570 2149/2172/570 2085/2108/570 -f 2895/2952/564 2166/2190/564 2168/2192/564 -f 2278/2303/932 2177/2202/582 2179/2204/852 -f 2896/2953/1218 2186/2211/859 2188/2213/861 -f 2382/2411/1008 2189/2214/862 2184/2209/857 -f 2210/2235/883 2206/2231/879 2208/2233/881 -f 2897/2954/570 2258/2283/570 2260/2285/570 -f 2898/2955/554 2261/2286/554 2263/2288/554 -f 2899/2956/1219 2264/2289/925 2266/2291/925 -f 2900/2957/549 2267/2292/549 2269/2294/549 -f 2901/2958/570 2270/2295/927 2272/2297/570 -f 2252/2277/923 2025/2047/782 2278/2303/932 -f 2287/2312/582 2282/2307/582 2283/2308/933 -f 2282/2307/582 2284/2309/582 2252/2277/923 -f 2283/2308/933 2285/2310/934 2287/2312/582 -f 2285/2310/934 2283/2308/933 2289/2314/935 -f 2023/2045/780 2027/2049/784 2292/2317/936 -f 2312/2339/570 2317/2345/570 2309/2340/570 -f 2322/2351/948 2318/2347/945 2320/2349/947 -f 2902/2959/564 2321/2350/564 2322/2351/948 -f 2903/2960/1220 1817/1834/674 2323/2352/949 -f 1871/1888/728 2324/2353/950 1872/1889/729 -f 2324/2353/950 2325/2354/951 1883/1900/740 -f 2334/2363/960 2325/2354/951 2327/2356/953 -f 1871/1888/728 1842/1859/699 2324/2353/950 -f 1836/1853/693 2329/2358/955 1835/1852/692 -f 2904/2961/1221 2329/2358/955 2328/2357/954 -f 2904/2961/1221 2328/2357/954 1879/1896/736 -f 1831/1848/688 1828/1845/685 2331/2360/957 -f 1819/1836/676 1821/1838/678 1833/1850/690 -f 2208/2233/881 2207/2232/880 2239/2264/912 -f 2370/2399/996 2347/2376/973 2202/2227/875 -f 2347/2376/973 2348/2377/974 2203/2228/876 -f 2351/2380/977 2352/2381/978 2354/2383/980 -f 2357/2386/983 2353/2382/979 2355/2384/981 -f 2344/2373/970 2350/2379/976 2360/2389/986 -f 2366/2395/992 2365/2394/991 2352/2381/978 -f 2364/2393/990 2366/2395/992 2351/2380/977 -f 2366/2395/992 2360/2389/986 2365/2394/991 -f 2366/2395/992 2364/2393/990 2360/2389/986 -f 2354/2383/980 2368/2397/994 2190/2215/863 -f 2368/2397/994 2244/2269/917 2191/2216/864 -f 2245/2270/918 2369/2398/995 2213/2238/886 -f 2369/2398/995 2227/2252/900 2211/2236/884 -f 2237/2262/910 2370/2399/996 2207/2232/880 -f 2229/2254/902 2349/2378/975 2230/2255/903 -f 2219/2244/892 2371/2400/997 2191/2216/864 -f 2371/2400/997 2373/2402/999 2372/2401/998 -f 2374/2403/1000 2235/2260/908 2372/2401/998 -f 2198/2223/871 2375/2404/1001 2231/2256/904 -f 2198/2223/871 2236/2261/909 2377/2406/1003 -f 2375/2404/1001 2378/2407/1004 2229/2254/902 -f 2905/2962/1222 2379/2408/1005 2375/2404/1001 -f 2378/2407/1004 2379/2408/1005 2232/2257/905 -f 2232/2257/905 2203/2228/876 2378/2407/1004 -f 2241/2266/914 2380/2409/1006 2240/2265/913 -f 2217/2242/890 2380/2409/1006 2218/2243/891 -f 2371/2400/997 2218/2243/891 2373/2402/999 -f 2226/2251/899 2239/2264/912 2234/2259/907 -f 2189/2214/862 2382/2411/1008 2187/2212/860 -f 2054/2076/801 2383/2412/1009 2118/2141/828 -f 2383/2412/1009 2054/2076/801 2094/2117/812 -f 2169/2193/847 2171/2195/849 2387/2416/846 -f 2387/2416/846 2386/2415/1010 2391/2420/827 -f 2391/2420/827 2390/2419/1012 2393/2422/826 -f 2393/2422/826 2392/2421/1013 2395/2424/1015 -f 2906/2963/554 2400/2429/554 2401/2430/554 -f 2606/2641/1097 2407/2437/1023 2409/2439/1025 -f 2407/2437/1023 2410/2964/554 2408/2438/1024 -f 2907/2965/564 2412/2966/564 2414/2967/564 -f 2908/2968/570 2417/2448/570 2419/2450/570 -f 2909/2969/564 2420/2451/564 2422/2453/564 -f 2910/2970/1223 2426/2457/1027 2428/2459/1027 -f 2433/2464/1033 2432/2463/1032 2430/2461/1030 -f 2432/2463/1032 2433/2464/1033 2434/2465/1034 -f 2911/2971/549 2435/2466/549 2437/2468/549 -f 2912/2972/927 2443/2474/927 2445/2476/570 -f 2163/2187/845 2463/2494/582 2278/2303/932 -f 2913/2973/582 2464/2495/1044 2178/2203/582 -f 2914/2974/935 2179/2204/852 2465/2496/935 -f 2468/2499/1047 2156/2179/839 2467/2498/1046 -f 2152/2175/837 2469/2500/1048 2150/2173/835 -f 2740/2777/1145 2471/2502/1050 2473/2504/1051 -f 2467/2498/1046 2151/2174/836 2470/2501/1049 -f 2915/2975/564 2474/2505/564 2476/2507/564 -f 2020/2042/777 2478/2511/1052 2480/2513/570 -f 2916/2976/1053 2481/2514/1053 2055/2077/802 -f 2917/2977/1053 2439/2470/1036 2482/2515/1053 -f 2533/2566/1059 2490/2523/570 2492/2525/1055 -f 2918/2978/1224 2493/2526/564 2495/2528/1056 -f 2919/2979/572 2496/2529/572 2498/2531/572 -f 2920/2980/582 2499/2532/582 2501/2534/582 -f 2497/2530/572 2502/2535/572 2498/2531/572 -f 2918/2978/1224 2495/2528/1056 2491/2524/1054 -f 2507/2540/1057 2504/2537/1057 2506/2539/564 -f 2539/2572/1069 2504/2537/1057 2508/2541/1058 -f 2921/2981/1061 2509/2542/1059 2511/2544/1061 -f 2922/2982/582 2512/2545/582 2514/2547/582 -f 2488/2521/582 2514/2547/582 2487/2520/582 -f 2529/2562/1066 2518/2551/570 2520/2553/1063 -f 2923/2983/554 2521/2554/554 2523/2556/1065 -f 2528/2561/572 2524/2557/572 2526/2559/572 -f 2924/2984/572 2503/2536/572 2527/2560/572 -f 2924/2984/572 2527/2560/572 2526/2559/572 -f 2520/2553/1063 2523/2556/1065 2529/2562/1066 -f 2925/2985/554 2530/2563/1067 2532/2565/554 -f 2492/2525/1055 2520/2553/1063 2533/2566/1059 -f 2920/2980/582 2501/2534/582 2486/2519/582 -f 2531/2564/1067 2530/2563/1067 2538/2571/1068 -f 2537/2570/1068 2539/2572/1069 2538/2571/1068 -f 2926/2986/1072 2552/2585/1072 2554/2587/1072 -f 2927/2987/1225 2560/2593/1078 2562/2595/1080 -f 2928/2988/1226 2573/2606/1086 2575/2608/1087 -f 2929/2989/1227 2576/2609/549 2578/2611/1088 -f 2608/2643/1091 2582/2615/549 2584/2617/1091 -f 2930/2990/572 2585/2618/1092 2587/2620/572 -f 2611/2991/570 2586/2621/1093 2588/2623/570 -f 2931/2992/1094 2589/2624/582 2591/2626/1094 -f 2854/2892/1216 2595/2630/1095 2065/2087/804 -f 2932/2993/572 2599/2634/572 2601/2636/572 -f 2599/2634/572 2602/2637/572 2600/2635/572 -f 2596/2631/1026 2593/2628/1026 2425/2456/1026 -f 2320/2349/947 2319/2348/946 2409/2439/1025 -f 2930/2990/572 2587/2620/572 2584/2617/1091 -f 2590/2625/582 2589/2624/582 2610/2645/1100 -f 2931/2992/1094 2591/2626/1094 2588/2647/570 -f 2933/2994/549 2612/2995/549 2609/2996/1099 -f 2614/2650/1101 2088/2111/808 2615/2651/809 -f 2934/2997/572 2616/2652/572 2618/2654/572 -f 2617/2653/572 2619/2655/572 2618/2654/572 -f 2619/2655/572 2621/2657/572 2620/2656/572 -f 2161/2184/570 2623/2659/570 2075/2100/570 -f 2800/2838/549 2627/2663/806 2629/2665/1102 -f 2935/2998/582 2630/2666/582 2632/2668/582 -f 2638/2674/549 2639/2675/549 2636/2672/549 -f 2936/2999/1105 2642/2678/1104 2644/2680/1105 -f 2788/2826/1179 2645/2681/1106 2629/2665/1102 -f 2937/3000/564 2649/2685/564 2651/2687/564 -f 2928/2988/1226 2938/3001/1228 2573/2606/1086 -f 2929/2989/1227 2578/2611/1088 2656/2692/1110 -f 2939/3002/549 2660/2696/549 2662/2698/549 -f 2940/3003/1229 2663/2699/1111 2665/2701/1113 -f 2669/2705/1117 2666/2702/1114 2668/2704/1116 -f 2663/2699/1111 2669/2705/1117 2664/2700/1112 -f 2941/3004/1118 2670/2706/1118 2672/2708/1119 -f 2941/3004/1118 2673/2709/554 2670/2706/1118 -f 2699/2735/572 2675/2711/572 2677/2713/572 -f 2656/2692/1110 2655/2691/1109 2682/2718/1120 -f 2298/2323/941 2301/2329/942 2684/2720/1122 -f 2568/2601/554 2647/2683/554 2569/2602/1085 -f 2684/2720/1122 2691/2727/1124 2298/2323/941 -f 2302/2327/943 2692/2728/1103 2694/2730/1125 -f 2624/2660/943 2695/2731/1125 2641/2677/1103 -f 2942/3005/570 2667/2703/1115 2697/2733/570 -f 2700/2736/572 2462/2509/572 2698/2734/572 -f 2943/3006/1126 2701/2738/1126 2703/2740/1126 -f 2759/2797/1151 2704/2741/823 2558/2591/1076 -f 2944/3007/549 2705/2742/549 2707/2744/549 -f 2711/2748/1129 2708/2745/1127 2710/2747/1128 -f 2936/2999/1105 2644/2680/1105 2711/2748/1129 -f 2945/3008/549 2712/2749/549 2642/2678/1104 -f 2946/3009/1130 2713/2750/1130 2715/2752/1130 -f 2947/3010/1131 2716/2753/1131 2718/2755/1131 -f 2948/3011/554 2719/2756/554 2721/2758/554 -f 2949/3012/1132 2722/2759/1132 2724/2761/1132 -f 2731/2768/1139 2725/2762/1133 2471/2502/1050 -f 2736/2773/1143 2728/2765/1136 2730/2767/1138 -f 2725/2762/1133 2731/2768/1139 2733/2770/1134 -f 2730/2767/1138 2734/2771/1141 2736/2773/1143 -f 2728/2765/1136 2727/2764/1135 2729/2766/1137 -f 2743/2780/1147 2737/2774/1137 2739/2776/1144 -f 2473/2504/1051 2738/2775/1046 2733/2770/1134 -f 2733/2770/1134 2732/2769/1140 2473/2504/1051 -f 2739/2776/1144 2741/2778/1048 2743/2780/1147 -f 2555/2588/1073 2099/2122/816 2649/2685/564 -f 2748/2786/1148 2749/2787/1149 2566/2599/1084 -f 2575/2608/1087 2574/2607/824 2759/2797/1151 -f 2950/3013/1230 2760/2798/1152 2762/2800/1154 -f 2765/2803/1157 2429/2460/1029 2763/2801/1155 -f 2627/2663/806 2766/2804/1033 2628/2664/1034 -f 2764/2802/1156 2767/2805/1158 2768/2806/1159 -f 2775/2813/1166 2769/2807/1160 2771/2809/1162 -f 2771/2809/1162 2770/2808/1161 2773/2811/1164 -f 2779/2817/1170 2774/2812/1165 2775/2813/1166 -f 2773/2811/1164 2772/2810/1163 2777/2815/1168 -f 2783/2821/1174 2778/2816/1169 2779/2817/1170 -f 2777/2815/1168 2776/2814/1167 2781/2819/1172 -f 2787/2825/1178 2782/2820/1173 2783/2821/1174 -f 2781/2819/1172 2780/2818/1171 2785/2823/1176 -f 2789/2827/1180 2786/2824/1177 2787/2825/1178 -f 2785/2823/1176 2784/2822/1175 2788/2826/1179 -f 2762/2800/1154 2761/2799/1153 2789/2827/1180 -f 2951/3014/1157 2790/2828/572 2792/2830/1181 -f 2952/3015/549 2795/2833/549 2797/2835/549 -f 2633/2669/564 2794/2832/564 2799/2837/564 -f 2069/2091/807 2068/2090/549 2629/2665/1102 -f 2805/2843/1186 2806/2844/1187 2801/2839/1182 -f 2806/2844/1187 2808/2846/1189 2807/2845/1188 -f 2808/2846/1189 2812/2850/1191 2809/2847/937 -f 2812/2850/1191 2810/2848/1190 2813/2851/944 -f 2096/2119/813 2249/2274/920 2816/2854/797 -f 2250/2275/921 2160/2183/843 2817/2855/1193 -f 2817/2855/1193 2815/2853/1192 2250/2275/921 -f 2824/2862/1200 2818/2856/1194 2820/2858/1196 -f 2826/2864/1202 2819/2857/1195 2821/2859/1197 -f 2820/2858/1196 2822/2860/1198 2824/2862/1200 -f 2804/2842/1185 2182/2207/855 2805/2843/1186 -f 2805/2843/1186 2394/2423/1014 2806/2844/1187 -f 2808/2846/1189 2390/2419/1012 2812/2850/1191 -f 2808/2846/1189 2806/2844/1187 2390/2419/1012 -f 2812/2850/1191 2386/2415/1010 2810/2848/1190 -f 2257/2282/554 2828/2866/554 2255/2280/554 -f 2254/2279/924 2810/2848/1190 2389/2418/1011 -f 2041/2063/796 2246/2271/919 2036/2058/791 -f 2036/2058/791 2254/2279/924 2041/2063/796 -f 2290/2315/570 2316/2344/570 2279/2304/570 -f 2855/2893/1026 2837/2875/1026 2842/2880/1026 -f 2843/2881/1026 2605/2640/1026 2844/2882/1026 -f 2953/3016/1231 2845/2883/1207 2847/2885/1209 -f 2953/3016/1231 2847/2885/1209 2849/2887/1211 -f 2954/3017/1210 2850/2888/1212 2852/2890/1214 -f 2051/2073/798 2853/2891/1215 2850/2888/1212 -f 2845/2883/1207 2595/2630/1095 2846/2884/1208 -f 2839/2877/1026 2592/2627/1026 2840/2878/1026 -f 2315/2343/570 2161/2894/570 2310/2337/570 -f 2955/3018/572 2856/2895/572 2858/2897/572 -f 2956/3019/570 2862/2901/570 2864/2903/570 -f 2859/2898/554 2861/2900/554 2866/3020/554 -f 1472/1483/549 1474/1485/549 2957/3021/549 -f 1472/1483/549 1477/1488/549 1476/1487/549 -f 1477/1488/549 1472/1483/549 2957/3021/549 -f 1555/1566/581 1475/1486/550 1477/1488/549 +f 2349/2039/885 2350/2040/886 2351/2041/887 +f 2351/2041/887 2352/2042/888 2088/1827/875 +f 2353/2043/889 2354/2044/889 2355/2045/890 +f 2356/2046/891 1881/1640/867 1880/1639/867 +f 2357/2047/892 2358/2048/893 2359/2049/868 +f 2360/2050/894 2361/2051/894 2362/2052/895 +f 2363/1784/868 2364/1783/896 2365/2018/897 +f 2268/1985/868 2366/2053/898 2267/1984/868 +f 2367/2002/899 2368/1720/900 1820/1579/866 +f 2369/2054/901 2354/2044/889 2353/2043/889 +f 2370/2055/902 2371/2056/866 2372/2057/866 +f 1844/1603/866 1843/1602/866 2373/2058/903 +f 2373/2058/903 2374/2059/866 1844/1603/866 +f 2372/2057/866 1832/1591/866 2375/2060/904 +f 1832/1591/866 1834/1593/866 2375/2060/904 +f 1846/1605/872 1845/1604/872 2376/2061/905 +f 2377/2062/872 2378/2063/906 2376/2061/905 +f 2370/2055/902 2372/2057/866 2375/2060/904 +f 2379/2064/907 2380/2065/908 2381/2066/909 +f 2382/2067/910 2383/2068/911 2384/2069/912 +f 2385/2070/913 2386/2071/914 2387/2072/915 +f 2388/2073/916 2389/2074/916 2235/1954/868 +f 2390/2075/917 2391/1858/866 2392/1857/866 +f 2393/1986/918 2394/1628/918 2390/2075/917 +f 2395/2076/919 2396/2077/920 2397/2078/921 +f 2398/2079/922 2399/2080/923 2400/2081/924 +f 2401/2082/919 2402/2083/925 2403/2084/926 +f 2404/2085/927 2405/2086/928 2406/2087/929 +f 2407/2088/930 2408/2089/931 2409/2090/932 +f 2400/2081/924 2410/2091/902 2411/2092/866 +f 2412/2093/866 2413/2094/866 2414/2095/933 +f 2411/2096/866 2412/2093/866 2414/2095/933 +f 2415/2097/934 2416/2098/935 2417/2099/868 +f 2418/2100/936 2419/2101/937 2416/2102/935 +f 2415/2097/934 2417/2099/868 1876/1635/868 +f 2420/2103/938 2421/2104/939 2422/2105/876 +f 2423/2106/940 2424/2107/941 2425/2108/942 +f 2356/2046/891 2426/2109/943 2401/2082/919 +f 2427/2110/944 2040/1788/867 2054/1800/867 +f 2103/1839/867 2428/2111/945 2327/2028/867 +f 2429/1797/868 2430/1796/896 2431/1802/946 +f 2432/2112/947 2433/2113/948 2434/2114/876 +f 2435/2115/949 2436/2116/950 2432/2112/947 +f 2435/2115/949 2437/2117/951 2438/2118/952 +f 2439/2119/953 2440/2120/954 2105/1841/866 +f 2414/2095/933 2441/2121/955 2398/2122/922 +f 2442/2123/933 2443/2124/956 2436/2116/950 +f 2444/2125/876 2434/2114/876 2433/2113/948 +f 2445/2126/957 2446/2127/896 2447/2128/958 +f 2448/2129/959 2449/2130/960 2447/2128/958 +f 2432/2112/947 2447/2128/958 2449/2130/960 +f 2450/2131/961 2448/2129/959 2447/2128/958 +f 2451/2132/962 2452/2133/963 2453/2134/964 +f 2454/2135/938 2455/2136/965 2456/2137/966 +f 2457/2138/967 2458/2139/968 2459/2140/969 +f 2460/2141/866 2461/2142/899 2462/2143/899 +f 2463/2144/970 2464/2145/971 2458/2146/968 +f 2375/2060/904 2465/2147/902 2466/2148/972 +f 2467/2149/973 2468/2150/974 2469/2151/975 +f 2451/2132/962 2470/2152/940 2471/2153/876 +f 2400/2081/924 2414/2154/933 2398/2079/922 +f 2400/2081/924 2399/2080/923 2472/2155/970 +f 2473/2015/941 2474/1672/876 2475/1671/876 +f 2476/2156/976 2477/2157/977 2478/2158/876 +f 2400/2081/924 2479/2159/866 2480/2160/972 +f 2481/1997/866 2482/1702/866 2483/1701/978 +f 2484/2161/979 2485/2162/980 2486/2163/981 +f 2487/2164/982 2486/2163/981 2477/2157/977 +f 2488/2165/875 2489/2166/875 2490/2167/983 +f 2491/2168/984 2492/2169/985 2493/2170/986 +f 2494/2171/987 2424/2107/941 2493/2170/986 +f 2495/2172/876 2496/2173/988 2452/2133/963 +f 2494/2171/987 2497/2174/989 2498/2175/990 +f 2499/2176/944 2492/2169/985 2500/2177/991 +f 2492/2169/985 2497/2174/989 2493/2170/986 +f 2501/2178/992 2373/2058/903 1843/1602/866 +f 2493/2170/986 2502/2179/993 2491/2168/984 +f 2471/2153/876 2452/2133/963 2451/2132/962 +f 2462/2143/899 2461/2142/899 2503/2180/994 +f 2504/2181/995 2505/2182/996 2506/2183/994 +f 2507/1732/958 2508/2003/956 2509/2001/964 +f 2510/2184/997 2511/2185/998 2512/2186/866 +f 2492/2169/985 2491/2168/984 2500/2177/991 +f 2513/2187/996 2514/2188/999 2515/2189/866 +f 2516/1682/866 2517/1684/866 2518/1994/978 +f 2519/2190/996 2520/2191/995 1980/1730/866 +f 2521/2192/923 2456/2137/966 2464/2145/971 +f 2522/2193/1000 2467/2149/973 2523/2194/1001 +f 2468/2150/974 2524/2195/866 2525/2196/866 +f 2526/2197/967 2527/2198/1002 2400/2081/924 +f 2398/2122/922 2421/2104/939 2399/2199/923 +f 2485/2162/980 2484/2161/979 2528/2200/888 +f 2529/1668/866 2530/1676/866 2531/1675/978 +f 2532/2201/867 2533/2202/867 2534/2203/1003 +f 2493/2170/986 2535/2204/940 2502/2179/993 +f 2499/2176/944 2500/2177/991 1955/1710/867 +f 2536/1999/866 2537/1713/866 2538/2000/978 +f 2539/2205/866 2540/2206/899 2541/2207/899 +f 1980/1730/866 1851/1610/866 2519/2190/996 +f 2542/2208/1004 2503/2180/994 2443/2124/956 +f 2543/2209/1004 2544/2210/1005 2443/2124/956 +f 2373/2058/903 2501/2178/992 2453/2134/964 +f 2544/2210/1005 2545/2211/1006 2453/2134/964 +f 2511/2185/998 2510/2184/997 2544/2210/1005 +f 2546/2212/994 2543/2209/1004 2443/2124/956 +f 2514/2188/999 2513/2187/996 2546/2212/994 +f 2547/2213/1004 2548/2214/994 2443/2124/956 +f 2541/2207/899 2540/2206/899 2548/2214/994 +f 2503/2180/994 2547/2213/1004 2443/2124/956 +f 2442/2123/933 2506/2183/994 2443/2124/956 +f 2549/2215/906 2550/2216/1007 2551/1569/1007 +f 2552/2217/942 2553/2218/1008 2554/2219/1009 +f 1799/1561/868 2555/2220/1010 2556/2221/1010 +f 2554/2219/1009 2557/2222/896 2558/2223/959 +f 2559/2224/893 2560/2225/892 2554/2219/1009 +f 2561/2226/893 2562/2227/893 2563/2228/868 +f 2560/2225/892 2557/2222/896 2554/2219/1009 +f 2556/2221/1010 2555/2220/1010 2564/2229/1011 +f 2522/2193/1000 2565/2230/1000 2566/2231/1012 +f 2567/2232/940 2552/2217/942 2495/2172/876 +f 2419/2101/937 2418/2100/936 2456/2233/966 +f 2456/2233/966 2418/2100/936 2464/2234/971 +f 2568/2235/1013 2569/1607/1014 2384/2069/912 +f 2380/2065/908 2379/2064/907 2570/2236/875 +f 2438/2118/952 2436/2116/950 2435/2115/949 +f 2571/2237/976 2572/2238/876 2573/2239/876 +f 2418/2100/936 2415/2240/934 2574/2241/1015 +f 2575/2242/868 2576/2243/959 2366/2053/898 +f 2349/2039/885 2577/2244/1016 2578/2245/1017 +f 2577/2244/1016 2571/2237/976 2579/2246/977 +f 2580/2247/959 2558/2223/959 2557/2222/896 +f 2581/2248/1018 2582/2249/1019 2424/2107/941 +f 2576/2243/959 2445/2126/957 2583/2250/896 +f 2581/2248/1018 2427/2110/944 2584/2251/1020 +f 2494/2171/987 2581/2248/1018 2424/2107/941 +f 2559/2224/893 2553/2218/1008 2323/2026/868 +f 2425/2108/942 2424/2107/941 2582/2249/1019 +f 2496/2173/988 2495/2172/876 2552/2217/942 +f 2561/2226/893 2450/2131/961 2446/2127/896 +f 2357/2047/892 2449/2130/960 2448/2129/959 +f 2585/2252/1021 2586/2253/868 2587/2254/868 +f 2582/2249/1019 2581/2248/1018 2584/2251/1020 +f 2588/2255/1021 2589/2256/868 2590/2257/868 +f 2322/2025/868 2559/2224/893 2323/2026/868 +f 2558/2223/959 2591/2258/896 2447/2128/958 +f 2592/2259/959 2593/2260/957 2591/2258/896 +f 2594/2261/1022 2566/2231/1012 2595/2262/868 +f 2458/2139/968 2464/2234/971 2418/2100/936 +f 2596/1810/868 2597/1809/896 2598/1820/893 +f 2599/2263/1023 2600/2264/1024 2456/2137/966 +f 2349/2039/885 2351/2041/887 2601/2265/1025 +f 2602/2008/959 2603/1765/961 2604/1764/868 +f 2583/2250/896 2445/2126/957 2447/2128/958 +f 2413/2094/866 2605/2266/866 2414/2095/933 +f 2426/2109/943 2402/2083/925 2401/2082/919 +f 2105/1841/866 2104/1840/866 2439/2119/953 +f 2350/2040/886 2606/2267/1026 2352/2042/888 +f 2428/2111/945 2607/2268/1027 2608/1845/1028 +f 2428/2111/945 2103/1839/867 2607/2268/1027 +f 2609/2269/1029 2610/2270/1030 2611/1831/872 +f 2612/2271/889 2613/2272/872 2614/2273/872 +f 2440/2120/954 2439/2119/953 2612/2271/889 +f 2407/2088/930 2409/2090/932 2615/2274/1030 +f 2599/2263/1023 2455/2136/965 2454/2135/938 +f 2416/2102/935 2415/2240/934 2418/2100/936 +f 2421/2104/939 2420/2103/938 2399/2199/923 +f 2396/2077/920 2616/2275/1031 2409/2090/932 +f 2408/2089/931 2617/2276/868 2618/2277/868 +f 2396/2077/920 2395/2076/919 2616/2275/1031 +f 2397/2078/921 2355/2045/890 2395/2076/919 +f 2619/2278/1032 2620/2279/1033 2621/2280/1034 +f 2622/2281/1035 2619/2278/1032 2623/2282/1036 +f 2624/2283/1037 2622/2281/1035 2625/2284/1038 +f 2626/2285/1039 2624/2283/1037 2627/2286/1040 +f 2628/2287/1041 2629/2288/1042 2236/1955/875 +f 2630/2289/1043 2631/2290/1044 2632/2291/1045 +f 2633/2292/1046 2634/2293/1046 2632/2291/1045 +f 2635/2294/1047 2636/2295/1048 2629/2288/1042 +f 2637/2296/1049 2638/2297/1050 2636/2295/1048 +f 2639/2298/1051 2634/2293/1046 2633/2292/1046 +f 2640/2299/1052 2641/2300/1053 2642/2301/1054 +f 2641/2300/1053 2643/2302/1055 2644/2303/1056 +f 2643/2302/1055 2645/2304/1057 2646/2305/1058 +f 2645/2304/1057 2647/2306/1059 2648/2307/1060 +f 2647/2306/1059 2649/2308/1061 2650/2309/1062 +f 2651/2310/1063 2652/2311/1064 2653/2312/1065 +f 2654/2313/1066 2655/2314/1066 2653/2312/1065 +f 2656/2315/1067 2657/2316/1067 2658/2317/1050 +f 2659/2318/1068 2655/2314/1066 2654/2313/1066 +f 2620/2279/1033 2659/2318/1068 2660/2319/1069 +f 2656/2315/1067 2661/2320/1070 2657/2316/1067 +f 2662/2321/1071 2663/2322/1072 2661/2320/1070 +f 2664/2323/1073 2665/2324/1074 2661/2320/1070 +f 2666/2325/1075 2667/2326/1075 2665/2324/1074 +f 2668/2327/1076 2669/2328/1077 2670/2329/1077 +f 2671/2330/1078 2672/2331/1078 2670/2329/1077 +f 2673/2036/1079 2674/1923/1080 2675/1922/876 +f 2676/2332/1081 2677/2333/1082 2678/2334/1083 +f 2679/2335/1084 2680/2336/1085 2678/2334/1083 +f 2677/2333/1082 2681/2337/1086 2679/2335/1084 +f 2682/2338/1087 2681/2337/1086 2677/2333/1082 +f 2683/2339/1088 2684/2340/1089 2681/2337/1086 +f 2685/2341/1090 2686/2342/1090 2687/2343/1091 +f 2688/2344/1092 2687/2343/1091 2684/2340/1089 +f 1863/1622/866 2369/2054/901 2689/2345/1093 +f 2690/2346/1094 2386/2071/914 2691/2347/1095 +f 2692/2348/1096 2693/2349/1097 2690/2346/1094 +f 2694/2350/1098 2695/2351/1099 2693/2349/1097 +f 2143/1875/867 2141/1873/867 2695/2351/1099 +f 2144/1876/867 2387/2072/915 2141/1873/867 +f 2696/2352/1100 2385/2070/913 2387/2072/915 +f 2697/2353/1101 2696/2352/1100 2387/2072/915 +f 2698/2354/1102 2697/2353/1101 2387/2072/915 +f 2144/1876/867 2698/2354/1102 2387/2072/915 +f 2699/2355/1103 2143/1875/867 2695/2351/1099 +f 2694/2350/1098 2699/2355/1103 2695/2351/1099 +f 2692/2348/1096 2700/2356/1104 2693/2349/1097 +f 2701/2357/1105 2692/2348/1096 2690/2346/1094 +f 2702/2358/1106 2691/2347/1095 2386/2071/914 +f 2385/2070/913 2702/2358/1106 2386/2071/914 +f 1861/1620/866 1863/1622/866 2689/2345/1093 +f 2701/2357/1105 2690/2346/1094 2691/2347/1095 +f 2700/2356/1104 2694/2350/1098 2693/2349/1097 +f 2381/2066/909 2382/2067/910 2703/2359/1107 +f 2360/2050/894 2188/1913/868 2339/2033/868 +f 2704/2236/897 2705/2064/894 2706/1772/868 +f 2707/2360/875 2708/2361/875 2676/2332/1081 +f 2709/2362/1108 2710/2363/1108 2711/1856/868 +f 2712/1925/1109 2710/2363/1108 2709/2362/1108 +f 2713/2364/1110 2714/2365/1111 2230/1949/875 +f 2715/2366/1112 2714/2365/1111 2713/2364/1110 +f 2716/2367/1113 2715/2366/1112 2717/2368/1114 +f 2662/2321/1071 2718/2369/1115 2719/2370/1116 +f 2663/2322/1072 2662/2321/1071 2720/2371/1117 +f 2682/2338/1087 2721/2372/1118 2722/2373/1084 +f 2388/2073/916 2668/2327/1076 2723/2374/1119 +f 2724/2375/875 2725/2376/1083 2726/2377/1081 +f 2721/2372/1118 2726/2377/1081 2725/2376/1083 +f 2722/2373/1084 2721/2372/1118 2725/2376/1083 +f 2227/1946/866 2672/2331/1078 2671/2330/1078 +f 2230/1949/875 2714/2365/1111 2628/2287/1041 +f 2225/1944/866 2227/1946/866 2671/2330/1078 +f 2236/1955/875 2230/1949/875 2628/2287/1041 +f 2232/1951/868 2388/2073/916 2235/1954/868 +f 2548/2214/994 2727/2378/1004 2443/2124/956 +f 2544/2210/1005 2453/2134/964 2443/2124/956 +f 2591/2258/896 2593/2260/957 2447/2128/958 +f 2558/2223/959 2447/2128/958 2554/2219/1009 +f 2728/1957/1068 2729/1959/1120 2730/2379/1121 +f 2729/1959/1120 2731/1962/1122 2732/2380/1123 +f 2733/1964/1124 2734/1960/1125 2735/2381/1126 +f 2731/1962/1122 2736/1963/1062 2737/2382/1063 +f 2736/1963/1062 2738/1965/1060 2739/2383/1059 +f 2740/1967/1051 2733/1964/1124 2741/2384/1127 +f 2738/1965/1060 2742/1966/1128 2743/2385/1057 +f 2742/1966/1128 2744/1968/1056 2745/2386/1055 +f 2746/1969/1129 2740/1967/1051 2747/2387/1052 +f 2744/1968/1056 2746/1969/1129 2748/2388/1130 +f 2749/1971/1037 2750/1973/1035 2751/2389/1038 +f 2752/1972/1032 2753/1970/1033 2754/2390/1131 +f 2755/1961/1039 2749/1971/1037 2756/2391/1040 +f 2734/1960/1125 2755/1961/1039 2757/2392/1132 +f 2753/1970/1033 2728/1957/1068 2758/2393/1069 +f 2750/1973/1035 2752/1972/1032 2759/2394/1036 +f 2760/2395/1133 2761/2396/1134 2762/2397/1135 +f 2763/2398/1136 2764/2399/1137 2765/2400/1138 +f 2766/2401/1139 2767/2402/1140 2768/1980/876 +f 2769/2403/872 2770/2404/872 2761/2396/1134 +f 2764/2399/1137 2763/2398/1136 2767/2402/1140 +f 1822/1581/875 2351/2041/887 2088/1827/875 +f 2397/2078/921 2353/2043/889 2355/2045/890 +f 2426/2109/943 2356/2046/891 1880/1639/867 +f 2771/2405/868 2357/2047/892 2359/2049/868 +f 2772/2406/1141 2360/2050/894 2362/2052/895 +f 2773/1791/868 2363/1784/868 2365/2018/897 +f 1819/1578/866 2367/2002/899 1820/1579/866 +f 2689/2345/1093 2369/2054/901 2353/2043/889 +f 1845/1604/872 2377/2062/872 2376/2061/905 +f 2774/2069/1142 1848/1607/868 1850/1609/868 +f 2775/2407/1143 2379/2064/907 2381/2066/909 +f 2703/2359/1107 2382/2067/910 2384/2069/912 +f 2776/2408/917 2390/2075/917 2392/1857/866 +f 2776/2408/917 2393/1986/918 2390/2075/917 +f 2406/2087/929 2401/2082/919 2403/2084/926 +f 2403/2084/926 2404/2085/927 2406/2087/929 +f 2414/2154/933 2400/2081/924 2411/2092/866 +f 1878/1637/868 2415/2097/934 1876/1635/868 +f 2584/2251/1020 2427/2110/944 2054/1800/867 +f 2777/1801/868 2429/1797/868 2431/1802/946 +f 2434/2114/876 2435/2115/949 2432/2112/947 +f 2438/2118/952 2442/2123/933 2436/2116/950 +f 2433/2113/948 2432/2112/947 2449/2130/960 +f 2446/2127/896 2450/2131/961 2447/2128/958 +f 2501/2178/992 2451/2132/962 2453/2134/964 +f 2521/2192/923 2454/2135/938 2456/2137/966 +f 2778/2409/1144 2457/2138/967 2459/2140/969 +f 2779/2410/866 2460/2141/866 2462/2143/899 +f 2457/2411/967 2463/2144/970 2458/2146/968 +f 2370/2055/902 2375/2060/904 2466/2148/972 +f 2523/2194/1001 2467/2149/973 2469/2151/975 +f 2780/1693/1145 2473/2015/941 2475/1671/876 +f 2781/2412/876 2476/2156/976 2478/2158/876 +f 2410/2091/902 2400/2081/924 2480/2160/972 +f 2782/1694/1146 2481/1997/866 2483/1701/978 +f 2487/2164/982 2484/2161/979 2486/2163/981 +f 2476/2156/976 2487/2164/982 2477/2157/977 +f 2528/2200/888 2488/2165/875 2490/2167/983 +f 2497/2174/989 2494/2171/987 2493/2170/986 +f 2471/2153/876 2495/2172/876 2452/2133/963 +f 2534/2203/1003 2494/2171/987 2498/2175/990 +f 2542/2208/1004 2462/2143/899 2503/2180/994 +f 2442/2123/933 2504/2181/995 2506/2183/994 +f 2783/1727/1147 2507/1732/958 2509/2001/964 +f 2784/2413/866 2510/2184/997 2512/2186/866 +f 2785/2414/866 2513/2187/996 2515/2189/866 +f 2786/1683/1146 2516/1682/866 2518/1994/978 +f 2463/2144/970 2521/2192/923 2464/2145/971 +f 2565/2230/1000 2522/2193/1000 2523/2194/1001 +f 2469/2151/975 2468/2150/974 2525/2196/866 +f 2472/2155/970 2526/2197/967 2400/2081/924 +f 2490/2167/983 2485/2162/980 2528/2200/888 +f 2787/1669/1148 2529/1668/866 2531/1675/978 +f 2498/2175/990 2532/2201/867 2534/2203/1003 +f 1941/1699/867 2499/2176/944 1955/1710/867 +f 2788/1707/1146 2536/1999/866 2538/2000/978 +f 2789/2415/866 2539/2205/866 2541/2207/899 +f 2506/2183/994 2542/2208/1004 2443/2124/956 +f 2545/2211/1006 2373/2058/903 2453/2134/964 +f 2543/2209/1004 2511/2185/998 2544/2210/1005 +f 2727/2378/1004 2546/2212/994 2443/2124/956 +f 2727/2378/1004 2514/2188/999 2546/2212/994 +f 2547/2213/1004 2541/2207/899 2548/2214/994 +f 2790/1573/1149 2549/2215/906 2551/1569/1007 +f 2496/2173/988 2552/2217/942 2554/2219/1009 +f 1830/1589/868 1799/1561/868 2556/2221/1010 +f 2553/2218/1008 2559/2224/893 2554/2219/1009 +f 2791/2416/868 2561/2226/893 2563/2228/868 +f 2792/2417/1150 2556/2221/1010 2564/2229/1011 +f 2594/2261/1022 2522/2193/1000 2566/2231/1012 +f 2600/2264/1024 2419/2418/937 2456/2137/966 +f 2383/2068/911 2568/2235/1013 2384/2069/912 +f 2793/2419/875 2380/2065/908 2570/2236/875 +f 2579/2246/977 2571/2237/976 2573/2239/876 +f 2794/2420/1151 2418/2100/936 2574/2241/1015 +f 2268/1985/868 2575/2242/868 2366/2053/898 +f 2350/2040/886 2349/2039/885 2578/2245/1017 +f 2578/2245/1017 2577/2244/1016 2579/2246/977 +f 2585/2252/1021 2580/2247/959 2557/2222/896 +f 2366/2053/898 2576/2243/959 2583/2250/896 +f 2562/2227/893 2561/2226/893 2446/2127/896 +f 2358/2048/893 2357/2047/892 2448/2129/959 +f 2580/2247/959 2585/2252/1021 2587/2254/868 +f 2592/2259/959 2588/2255/1021 2590/2257/868 +f 2588/2255/1021 2592/2259/959 2591/2258/896 +f 2795/2421/868 2594/2261/1022 2595/2262/868 +f 2459/2140/969 2458/2139/968 2418/2100/936 +f 2796/1819/868 2596/1810/868 2598/1820/893 +f 2455/2136/965 2599/2263/1023 2456/2137/966 +f 2797/1754/868 2602/2008/959 2604/1764/868 +f 2593/2260/957 2583/2250/896 2447/2128/958 +f 2351/2041/887 2350/2040/886 2352/2042/888 +f 2798/1844/1028 2428/2111/945 2608/1845/1028 +f 2799/1830/872 2609/2269/1029 2611/1831/872 +f 2800/2422/889 2612/2271/889 2614/2273/872 +f 2800/2422/889 2440/2120/954 2612/2271/889 +f 2801/2423/876 2599/2263/1023 2454/2135/938 +f 2408/2089/931 2396/2077/920 2409/2090/932 +f 2396/2077/920 2408/2089/931 2618/2277/868 +f 2623/2282/1036 2619/2278/1032 2621/2280/1034 +f 2625/2284/1038 2622/2281/1035 2623/2282/1036 +f 2627/2286/1040 2624/2283/1037 2625/2284/1038 +f 2630/2289/1043 2626/2285/1039 2627/2286/1040 +f 2626/2285/1039 2630/2289/1043 2632/2291/1045 +f 2631/2290/1044 2633/2292/1046 2632/2291/1045 +f 2628/2287/1041 2635/2294/1047 2629/2288/1042 +f 2635/2294/1047 2637/2296/1049 2636/2295/1048 +f 2640/2299/1052 2639/2298/1051 2633/2292/1046 +f 2639/2298/1051 2640/2299/1052 2642/2301/1054 +f 2642/2301/1054 2641/2300/1053 2644/2303/1056 +f 2644/2303/1056 2643/2302/1055 2646/2305/1058 +f 2646/2305/1058 2645/2304/1057 2648/2307/1060 +f 2648/2307/1060 2647/2306/1059 2650/2309/1062 +f 2802/2424/1152 2651/2310/1063 2653/2312/1065 +f 2652/2311/1064 2654/2313/1066 2653/2312/1065 +f 2803/2425/1153 2656/2315/1067 2658/2317/1050 +f 2660/2319/1069 2659/2318/1068 2654/2313/1066 +f 2621/2280/1034 2620/2279/1033 2660/2319/1069 +f 2656/2315/1067 2662/2321/1071 2661/2320/1070 +f 2663/2322/1072 2664/2323/1073 2661/2320/1070 +f 2664/2323/1073 2666/2325/1075 2665/2324/1074 +f 2723/2374/1119 2668/2327/1076 2670/2329/1077 +f 2669/2328/1077 2671/2330/1078 2670/2329/1077 +f 2804/1934/876 2673/2036/1079 2675/1922/876 +f 2677/2333/1082 2679/2335/1084 2678/2334/1083 +f 2721/2372/1118 2682/2338/1087 2677/2333/1082 +f 2682/2338/1087 2683/2339/1088 2681/2337/1086 +f 2688/2344/1092 2685/2341/1090 2687/2343/1091 +f 2683/2339/1088 2688/2344/1092 2684/2340/1089 +f 2775/2407/1143 2381/2066/909 2703/2359/1107 +f 2361/2051/894 2360/2050/894 2339/2033/868 +f 2805/2013/896 2704/2236/897 2706/1772/868 +f 2678/2334/1083 2707/2360/875 2676/2332/1081 +f 2806/2030/868 2709/2362/1108 2711/1856/868 +f 2807/1926/1109 2712/1925/1109 2709/2362/1108 +f 2717/2368/1114 2715/2366/1112 2713/2364/1110 +f 2808/2426/1116 2716/2367/1113 2717/2368/1114 +f 2720/2371/1117 2662/2321/1071 2719/2370/1116 +f 2389/2074/916 2388/2073/916 2723/2374/1119 +f 2809/2427/875 2724/2375/875 2726/2377/1081 +f 2810/2428/1085 2722/2373/1084 2725/2376/1083 +f 2758/2393/1069 2728/1957/1068 2730/2379/1121 +f 2730/2379/1121 2729/1959/1120 2732/2380/1123 +f 2741/2384/1127 2733/1964/1124 2735/2381/1126 +f 2732/2380/1123 2731/1962/1122 2737/2382/1063 +f 2737/2382/1063 2736/1963/1062 2739/2383/1059 +f 2747/2387/1052 2740/1967/1051 2741/2384/1127 +f 2739/2383/1059 2738/1965/1060 2743/2385/1057 +f 2743/2385/1057 2742/1966/1128 2745/2386/1055 +f 2748/2388/1130 2746/1969/1129 2747/2387/1052 +f 2745/2386/1055 2744/1968/1056 2748/2388/1130 +f 2756/2391/1040 2749/1971/1037 2751/2389/1038 +f 2759/2394/1036 2752/1972/1032 2754/2390/1131 +f 2757/2392/1132 2755/1961/1039 2756/2391/1040 +f 2735/2381/1126 2734/1960/1125 2757/2392/1132 +f 2754/2390/1131 2753/1970/1033 2758/2393/1069 +f 2751/2389/1038 2750/1973/1035 2759/2394/1036 +f 2765/2400/1138 2760/2395/1133 2762/2397/1135 +f 2762/2397/1135 2763/2398/1136 2765/2400/1138 +f 2811/1979/876 2766/2401/1139 2768/1980/876 +f 2760/2395/1133 2769/2403/872 2761/2396/1134 +f 2766/2401/1139 2764/2399/1137 2767/2402/1140 +o trigger_pistol_0 +v 0.255916 1.582615 6.859656 +v 0.255916 1.449703 6.660409 +v 0.255916 1.810704 6.457509 +v 0.255916 2.466018 6.344805 +v 0.255916 1.892926 6.633237 +v 0.577175 1.435799 6.186546 +v 0.577175 1.810704 6.457509 +v 0.577175 1.449703 6.660409 +v 0.577175 3.484048 5.722968 +v 0.577175 3.243770 6.479858 +v 0.577175 2.895700 6.381779 +v 0.577175 1.924940 5.885275 +v 0.577175 2.439333 5.691723 +v 0.577175 2.466018 6.344805 +v 0.577175 3.484048 5.722968 +v 0.401255 3.484048 5.722968 +v 0.401255 3.243770 6.479858 +v 0.401255 3.588840 6.684443 +v 0.401255 3.243770 6.479858 +v 0.401255 3.484048 5.722968 +v 0.401255 4.331120 5.796535 +v 0.401255 4.331120 7.553139 +v 0.401255 3.911054 6.978125 +v 0.401255 4.776393 4.607953 +v 0.401255 5.500355 4.607955 +v 0.401255 5.500353 7.553141 +v -0.401255 4.331120 5.796535 +v -0.401255 4.776393 4.607953 +v 0.401255 4.776393 4.607953 +v -0.401255 5.500355 4.607955 +v 0.401255 5.500355 4.607955 +v 0.401255 4.776393 4.607953 +v 0.577175 2.851677 5.639833 +v -0.577175 3.484048 5.722968 +v -0.577175 3.243770 6.479858 +v -0.401255 3.243770 6.479858 +v -0.255916 1.582615 6.859656 +v -0.255916 1.892926 6.633237 +v -0.255916 1.810704 6.457509 +v -0.401255 3.243770 6.479858 +v -0.401255 3.588840 6.684443 +v -0.401255 3.484048 5.722968 +v -0.401255 4.331120 7.553139 +v -0.401255 4.331120 5.796535 +v -0.401255 3.911054 6.978125 +v -0.401255 4.776393 4.607953 +v -0.401255 5.500355 4.607955 +v -0.401255 5.500353 7.553141 +v -0.255916 2.466018 6.344805 +v -0.577175 2.466018 6.344805 +v -0.577175 2.895700 6.381779 +v -0.577175 2.851677 5.639833 +v -0.577175 1.810704 6.457509 +v -0.577175 1.435799 6.186546 +v -0.577175 1.449703 6.660409 +v -0.577175 3.484048 5.722968 +v -0.577175 1.924940 5.885275 +v -0.577175 2.439333 5.691723 +v 0.577175 3.243770 6.479858 +v 0.401255 4.331120 5.796535 +v -0.401255 4.776393 4.607953 +v -0.401255 3.484048 5.722968 +v -0.255916 1.449703 6.660409 +v -0.577175 3.243770 6.479858 +v -0.255916 1.892926 6.633237 +v 0.255916 1.892926 6.633237 +v 0.255916 2.466018 6.344805 +v 0.577175 2.895700 6.381779 +v 0.577175 3.243770 6.479858 +v 0.401255 3.243770 6.479858 +v -0.401255 3.243770 6.479858 +v -0.577175 2.895700 6.381779 +v -0.136434 1.170199 7.267153 +v 0.136434 1.170199 7.267153 +v 0.255916 1.274902 7.159120 +v -0.255916 1.274902 7.159120 +v 0.255916 1.582615 6.859656 +v -0.255916 1.582615 6.859656 +v -0.136434 1.170199 7.267153 +v -0.140214 0.908800 7.158844 +v 0.140214 0.908800 7.158844 +v 0.255916 1.049089 7.041913 +v 0.255916 1.274902 7.159120 +v 0.136434 1.170199 7.267153 +v 0.255916 2.466018 6.344805 +v 0.577175 2.466018 6.344805 +v 0.577175 1.049089 7.041913 +v 0.255916 1.049089 7.041913 +v 0.140214 0.908800 7.158844 +v -0.140214 0.908800 7.158844 +v -0.238265 0.780517 7.270253 +v 0.238265 0.780517 7.270253 +v 0.577175 1.810704 6.457509 +v 0.255916 1.810704 6.457509 +v 0.255916 1.449703 6.660409 +v 0.577175 1.449703 6.660409 +v -0.242153 0.574700 7.190140 +v 0.242153 0.574700 7.190140 +v 0.238265 0.780517 7.270253 +v 0.557295 0.748790 6.906375 +v 0.577175 1.049089 7.041913 +v 0.577175 1.022907 6.562050 +v -0.255916 2.466018 6.344805 +v -0.401255 4.331120 5.796535 +v 0.401255 4.331120 5.796535 +v 0.401255 3.484048 5.722968 +v 0.401255 3.588840 6.684443 +v -0.401255 3.588840 6.684443 +v 0.401255 3.911054 6.978125 +v 0.401255 4.331120 7.553139 +v -0.401255 4.331120 7.553139 +v -0.401255 3.911054 6.978125 +v 0.401255 5.500353 7.553141 +v -0.401255 5.500353 7.553141 +v 0.577175 2.851677 5.639833 +v 0.577175 3.484048 5.722968 +v -0.577175 2.851677 5.639833 +v -0.401255 3.484048 5.722968 +v 0.577175 1.022907 6.562050 +v -0.577175 1.022907 6.562050 +v -0.577175 1.435799 6.186546 +v 0.577175 1.435799 6.186546 +v -0.577175 1.924940 5.885275 +v -0.577175 2.439333 5.691723 +v 0.577175 2.439333 5.691723 +v 0.577175 1.924940 5.885275 +v 0.242153 0.574700 7.190140 +v -0.242153 0.574700 7.190140 +v -0.557295 0.748790 6.906375 +v 0.557295 0.748790 6.906375 +v -0.577175 3.243770 6.479858 +v -0.255916 1.049089 7.041913 +v -0.577175 2.466018 6.344805 +v -0.255916 1.274902 7.159120 +v -0.577175 1.049089 7.041913 +v -0.577175 3.484048 5.722968 +v -0.577175 1.810704 6.457509 +v -0.577175 1.449703 6.660409 +v -0.255916 1.449703 6.660409 +v -0.255916 1.810704 6.457509 +v -0.255916 1.049089 7.041913 +v -0.557295 0.748790 6.906375 +v -0.238265 0.780517 7.270253 +v -0.577175 1.022907 6.562050 +v -0.577175 1.049089 7.041913 +v -0.255916 2.466018 6.344805 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 0.9531 0.3026 +vn -0.0000 -0.9364 -0.3508 +vn -0.0000 -0.0000 -1.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 0.4977 0.8674 +vn -0.0000 0.5444 0.8388 +vn -0.0000 0.1395 0.9902 +vn -0.0000 -0.1979 0.9802 +vn -0.0000 -0.2712 0.9625 +vn -0.0000 -0.3535 0.9354 +vn -0.0000 -0.3697 0.9291 +vn -0.0000 -0.1606 0.9870 +vn -0.0000 0.7181 0.6960 +vn -0.0000 0.7113 0.7029 +vn -0.0000 0.7044 0.7098 +vn -0.0000 0.6629 0.7487 +vn -0.0000 0.6268 0.7792 +vn -0.4404 -0.3550 0.8247 +vn -0.4552 -0.3352 0.8249 +vn 0.2991 -0.3616 0.8831 +vn 0.9038 -0.1780 0.3893 +vn 0.9745 -0.1034 0.1993 +vn 0.5796 -0.3268 0.7465 +vn 0.0001 0.1395 0.9902 +vn -0.0000 0.0850 0.9964 +vn -0.0023 0.6611 0.7503 +vn -0.0000 0.6735 0.7392 +vn -0.0023 0.6496 0.7603 +vn 0.0017 0.6512 0.7589 +vn 0.0038 0.6541 0.7564 +vn -0.0023 0.6547 0.7559 +vn -0.0000 0.3882 0.9216 +vn -0.0000 0.2799 0.9600 +vn -0.0000 0.5604 0.8282 +vn -0.0000 0.6274 0.7787 +vn -0.2580 -0.3462 0.9020 +vn 0.3908 -0.3275 0.8603 +vn 0.3829 -0.3520 0.8541 +vn 0.8580 -0.2283 0.4601 +vn 0.9627 -0.1436 0.2294 +vn 0.9997 -0.0226 0.0012 +vn -0.0000 0.1148 0.9934 +vn -0.0000 0.0865 -0.9963 +vn -0.0000 0.1129 -0.9936 +vn -0.0000 -0.5671 0.8236 +vn -0.0000 -0.6219 0.7831 +vn -0.0000 -0.7215 0.6924 +vn -0.0001 -0.5953 0.8035 +vn 0.0001 -0.2977 0.9547 +vn -0.0000 -0.7663 0.6425 +vn -0.0000 -0.0000 1.0000 +vn -0.0000 0.0456 -0.9990 +vn -0.0000 0.1303 -0.9915 +vn -0.0000 0.0285 -0.9996 +vn -0.0000 0.1158 -0.9933 +vn -0.0000 -0.7114 -0.7028 +vn -0.0000 -0.7480 -0.6637 +vn -0.0000 -0.6258 -0.7800 +vn -0.0000 -0.5761 -0.8174 +vn -0.0000 -0.4689 -0.8832 +vn -0.0000 -0.2781 -0.9606 +vn -0.0000 -0.2019 -0.9794 +vn -0.0000 -0.4113 -0.9115 +vn -0.0000 -0.8524 -0.5229 +vn -0.0000 -0.8304 -0.5572 +vn -0.0000 -0.8071 -0.5904 +vn -0.9038 -0.1780 0.3893 +vn -0.9745 -0.1034 0.1993 +vn 0.0023 0.6611 0.7503 +vn -0.8580 -0.2283 0.4601 +vn -0.5059 -0.3351 0.7948 +vn -0.9997 -0.0226 0.0012 +vn -0.9627 -0.1436 0.2294 +vn -0.0000 0.1149 0.9934 +vt 0.482997 0.972676 +vt 0.483169 0.972693 +vt 0.483177 0.972380 +vt 0.483034 0.971858 +vt 0.483023 0.972386 +vt 0.471310 0.981774 +vt 0.471246 0.981454 +vt 0.471009 0.981626 +vt 0.472210 0.980596 +vt 0.471654 0.980527 +vt 0.471614 0.980779 +vt 0.471647 0.981549 +vt 0.471923 0.981275 +vt 0.471511 0.981066 +vt 0.472225 0.980472 +vt 0.471669 0.980404 +vt 0.471639 0.980122 +vt 0.472428 0.979907 +vt 0.471300 0.979390 +vt 0.471545 0.979829 +vt 0.473322 0.979971 +vt 0.473535 0.979507 +vt 0.471644 0.978639 +vt 0.480249 0.946278 +vt 0.480249 0.945382 +vt 0.480816 0.945382 +vt 0.480249 0.944870 +vt 0.480816 0.944870 +vt 0.472077 0.981026 +vt 0.468113 0.980573 +vt 0.468670 0.980511 +vt 0.468657 0.980387 +vt 0.482644 0.972678 +vt 0.482622 0.972386 +vt 0.482468 0.972377 +vt 0.468690 0.980106 +vt 0.468100 0.980449 +vt 0.469037 0.979378 +vt 0.467904 0.979882 +vt 0.468786 0.979814 +vt 0.467009 0.979936 +vt 0.466802 0.979469 +vt 0.468701 0.978624 +vt 0.482618 0.971864 +vt 0.468807 0.981051 +vt 0.468707 0.980763 +vt 0.468241 0.981005 +vt 0.469067 0.981441 +vt 0.469000 0.981761 +vt 0.469302 0.981616 +vt 0.468666 0.981532 +vt 0.468393 0.981256 +vt 0.480816 0.946278 +vt 0.482469 0.972694 +vt 0.480078 0.973332 +vt 0.480077 0.973077 +vt 0.479953 0.973077 +vt 0.479387 0.973079 +vt 0.479263 0.973334 +vt 0.482753 0.972998 +vt 0.482894 0.972996 +vt 0.482958 0.972932 +vt 0.482686 0.972938 +vt 0.482726 0.973162 +vt 0.482929 0.973155 +vt 0.483051 0.973046 +vt 0.479852 0.973637 +vt 0.480079 0.973637 +vt 0.480081 0.974789 +vt 0.479855 0.974790 +vt 0.479773 0.974919 +vt 0.479575 0.974919 +vt 0.479506 0.975040 +vt 0.479843 0.975039 +vt 0.480080 0.974106 +vt 0.479853 0.974107 +vt 0.479854 0.974399 +vt 0.480081 0.974399 +vt 0.469982 0.982043 +vt 0.470324 0.982045 +vt 0.470322 0.981889 +vt 0.470645 0.982004 +vt 0.470647 0.981771 +vt 0.470947 0.981928 +vt 0.479491 0.973638 +vt 0.480816 0.946878 +vt 0.479953 0.972794 +vt 0.479386 0.972795 +vt 0.479952 0.972486 +vt 0.479951 0.971983 +vt 0.479384 0.971985 +vt 0.479385 0.972488 +vt 0.479949 0.971158 +vt 0.479382 0.971159 +vt 0.480940 0.947328 +vt 0.480940 0.946878 +vt 0.480125 0.947328 +vt 0.480249 0.946878 +vt 0.480940 0.948810 +vt 0.480125 0.948810 +vt 0.480125 0.948416 +vt 0.480940 0.948415 +vt 0.480125 0.948010 +vt 0.480125 0.947622 +vt 0.480940 0.947622 +vt 0.480940 0.948010 +vt 0.480704 0.949355 +vt 0.480362 0.949355 +vt 0.480139 0.949120 +vt 0.480926 0.949120 +vt 0.479262 0.973079 +vt 0.482592 0.973062 +vt 0.479264 0.973639 +vt 0.479266 0.974791 +vt 0.480125 0.946878 +vt 0.479265 0.974108 +vt 0.479265 0.974401 +vt 0.479492 0.974400 +vt 0.479492 0.974108 +vt 0.479493 0.974791 +vt 0.469662 0.981998 +vt 0.469986 0.981887 +vt 0.469361 0.981919 +vt 0.469663 0.981765 +s 0 +f 2812/2429/1154 2813/2430/1154 2814/2431/1154 +f 2814/2431/1154 2815/2432/1154 2816/2433/1154 +f 2817/2434/1154 2818/2435/1154 2819/2436/1154 +f 2820/2437/1154 2821/2438/1154 2822/2439/1154 +f 2817/2434/1154 2823/2440/1154 2818/2435/1154 +f 2824/2441/1154 2825/2442/1154 2818/2435/1154 +f 2826/2437/1155 2827/2443/1155 2828/2444/1155 +f 2829/2445/1154 2830/2444/1154 2831/2443/1154 +f 2832/2446/1154 2833/2447/1154 2834/2448/1154 +f 2829/2445/1154 2831/2443/1154 2832/2446/1154 +f 2832/2446/1154 2835/2449/1154 2836/2450/1154 +f 2837/2451/1154 2833/2447/1154 2832/2446/1154 +f 2838/2452/1156 2839/2453/1156 2840/2454/1156 +f 2841/2455/1157 2842/2456/1157 2843/2454/1157 +f 2825/2442/1154 2824/2441/1154 2844/2457/1154 +f 2845/2458/1155 2846/2459/1155 2847/2460/1155 +f 2848/2461/1158 2849/2462/1158 2850/2463/1158 +f 2851/2460/1158 2852/2464/1158 2853/2465/1158 +f 2854/2466/1158 2855/2467/1158 2856/2468/1158 +f 2852/2464/1158 2856/2468/1158 2855/2467/1158 +f 2857/2469/1158 2855/2467/1158 2858/2470/1158 +f 2859/2471/1158 2858/2470/1158 2855/2467/1158 +f 2860/2472/1158 2850/2463/1158 2849/2462/1158 +f 2861/2473/1158 2862/2474/1158 2863/2475/1158 +f 2864/2476/1158 2865/2477/1158 2866/2478/1158 +f 2867/2458/1158 2863/2475/1158 2862/2474/1158 +f 2868/2479/1158 2865/2477/1158 2864/2476/1158 +f 2869/2480/1158 2868/2479/1158 2864/2476/1158 +f 2816/2433/1154 2812/2429/1154 2814/2431/1154 +f 2844/2457/1154 2820/2437/1154 2822/2439/1154 +f 2823/2440/1154 2824/2441/1154 2818/2435/1154 +f 2870/2438/1155 2826/2437/1155 2828/2444/1155 +f 2834/2448/1154 2829/2445/1154 2832/2446/1154 +f 2836/2450/1154 2837/2451/1154 2832/2446/1154 +f 2871/2481/1156 2838/2452/1156 2840/2454/1156 +f 2872/2453/1157 2841/2455/1157 2843/2454/1157 +f 2822/2439/1154 2825/2442/1154 2844/2457/1154 +f 2873/2465/1155 2845/2458/1155 2847/2460/1155 +f 2874/2482/1158 2848/2461/1158 2850/2463/1158 +f 2853/2465/1158 2852/2464/1158 2855/2467/1158 +f 2854/2466/1158 2859/2471/1158 2855/2467/1158 +f 2869/2480/1158 2861/2473/1158 2863/2475/1158 +f 2875/2459/1158 2867/2458/1158 2862/2474/1158 +f 2861/2473/1158 2869/2480/1158 2864/2476/1158 +s 1 +f 2876/2462/1159 2877/2433/1160 2878/2432/1161 +f 2879/2483/1162 2880/2484/1163 2881/2485/1164 +f 2882/2486/1165 2883/2487/1166 2879/2483/1162 +f 2884/2488/1167 2885/2489/1167 2886/2490/1168 +f 2887/2491/1169 2886/2490/1168 2888/2429/1170 +f 2877/2433/1160 2876/2462/1159 2889/2461/1171 +f 2890/2488/1172 2891/2492/1173 2892/2493/1174 +f 2893/2494/1175 2894/2490/1176 2895/2489/1177 +f 2896/2495/1178 2897/2496/1179 2879/2483/1162 +f 2813/2430/1154 2812/2429/1154 2894/2490/1176 +f 2898/2497/1180 2899/2498/1181 2900/2499/1182 +f 2901/2500/1183 2902/2501/1184 2903/2502/1185 +f 2904/2503/1186 2905/2504/1187 2906/2505/1188 +f 2897/2496/1179 2896/2495/1178 2905/2504/1187 +f 2899/2498/1181 2898/2497/1180 2907/2506/1189 +f 2908/2507/1190 2909/2508/1191 2910/2509/1192 +f 2911/2510/1193 2912/2511/1194 2910/2509/1192 +f 2913/2512/1195 2819/2436/1154 2912/2511/1194 +f 2913/2512/1195 2817/2434/1154 2819/2436/1154 +f 2883/2487/1166 2914/2513/1196 2896/2495/1178 +f 2915/2452/1197 2916/2481/1197 2917/2514/1198 +f 2918/2515/1199 2919/2516/1200 2882/2486/1165 +f 2919/2516/1200 2918/2515/1199 2920/2517/1201 +f 2921/2518/1202 2922/2519/1203 2923/2520/1204 +f 2924/2521/1205 2925/2522/1205 2922/2519/1203 +f 2926/2523/1206 2917/2514/1198 2927/2524/1207 +f 2928/2525/1208 2929/2526/1209 2917/2514/1198 +f 2930/2527/1210 2931/2528/1211 2932/2529/1212 +f 2933/2530/1213 2932/2529/1212 2934/2531/1214 +f 2935/2532/1215 2936/2533/1216 2937/2534/1217 +f 2928/2525/1208 2926/2523/1206 2936/2533/1216 +f 2938/2535/1218 2939/2536/1218 2940/2537/1219 +f 2931/2528/1211 2930/2527/1210 2941/2538/1220 +f 2942/2539/1163 2883/2487/1166 2882/2486/1165 +f 2943/2540/1221 2891/2492/1173 2890/2488/1172 +f 2944/2541/1179 2914/2513/1196 2883/2487/1166 +f 2874/2482/1158 2943/2540/1221 2945/2491/1222 +f 2946/2542/1223 2902/2501/1184 2901/2500/1183 +f 2929/2526/1209 2928/2525/1208 2947/2543/1207 +f 2948/2544/1186 2949/2545/1189 2950/2546/1188 +f 2944/2541/1179 2948/2544/1186 2951/2547/1187 +f 2952/2548/1181 2950/2546/1188 2949/2545/1189 +f 2953/2549/1224 2908/2507/1190 2954/2550/1225 +f 2955/2551/1226 2953/2549/1224 2956/2552/1227 +f 2865/2477/1158 2955/2551/1226 2866/2478/1158 +f 2957/2472/1228 2876/2462/1159 2878/2432/1161 +f 2881/2485/1164 2882/2486/1165 2879/2483/1162 +f 2887/2491/1169 2884/2488/1167 2886/2490/1168 +f 2889/2461/1171 2887/2491/1169 2888/2429/1170 +f 2888/2429/1170 2877/2433/1160 2889/2461/1171 +f 2895/2489/1177 2890/2488/1172 2892/2493/1174 +f 2892/2493/1174 2893/2494/1175 2895/2489/1177 +f 2893/2494/1175 2813/2430/1154 2894/2490/1176 +f 2903/2502/1185 2898/2497/1180 2900/2499/1182 +f 2900/2499/1182 2901/2500/1183 2903/2502/1185 +f 2907/2506/1189 2904/2503/1186 2906/2505/1188 +f 2904/2503/1186 2897/2496/1179 2905/2504/1187 +f 2906/2505/1188 2899/2498/1181 2907/2506/1189 +f 2954/2550/1225 2908/2507/1190 2910/2509/1192 +f 2909/2508/1191 2911/2510/1193 2910/2509/1192 +f 2911/2510/1193 2913/2512/1195 2912/2511/1194 +f 2879/2483/1162 2883/2487/1166 2896/2495/1178 +f 2929/2526/1209 2915/2452/1197 2917/2514/1198 +f 2881/2485/1164 2918/2515/1199 2882/2486/1165 +f 2923/2520/1204 2919/2516/1200 2920/2517/1201 +f 2920/2517/1201 2921/2518/1202 2923/2520/1204 +f 2921/2518/1202 2924/2521/1205 2922/2519/1203 +f 2926/2523/1206 2928/2525/1208 2917/2514/1198 +f 2933/2530/1213 2930/2527/1210 2932/2529/1212 +f 2937/2534/1217 2933/2530/1213 2934/2531/1214 +f 2934/2531/1214 2935/2532/1215 2937/2534/1217 +f 2935/2532/1215 2928/2525/1208 2936/2533/1216 +f 2941/2538/1220 2938/2535/1218 2940/2537/1219 +f 2940/2537/1219 2931/2528/1211 2941/2538/1220 +f 2945/2491/1222 2943/2540/1221 2890/2488/1172 +f 2848/2461/1158 2874/2482/1158 2945/2491/1222 +f 2952/2548/1181 2946/2542/1223 2901/2500/1183 +f 2951/2547/1187 2948/2544/1186 2950/2546/1188 +f 2914/2513/1196 2944/2541/1179 2951/2547/1187 +f 2946/2542/1223 2952/2548/1181 2949/2545/1189 +f 2956/2552/1227 2953/2549/1224 2954/2550/1225 +f 2866/2478/1158 2955/2551/1226 2956/2552/1227 From 96c1986ae9b54524ae6471296b6fe8fe4b3f21ba Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 1 Sep 2023 14:05:38 +0200 Subject: [PATCH 279/432] fixes --- changelog | 18 +++-- .../com/hbm/blocks/fluid/CoriumBlock.java | 2 +- .../com/hbm/blocks/generic/BlockLayering.java | 2 + .../java/com/hbm/crafting/WeaponRecipes.java | 65 +++++++++---------- .../inventory/recipes/AssemblerRecipes.java | 2 +- .../hbm/inventory/recipes/PressRecipes.java | 34 +++++----- .../inventory/recipes/anvil/AnvilRecipes.java | 2 + .../hbm/tileentity/machine/TileEntityFEL.java | 2 +- src/main/resources/assets/hbm/lang/de_DE.lang | 10 +-- src/main/resources/assets/hbm/lang/en_US.lang | 10 +-- 10 files changed, 78 insertions(+), 69 deletions(-) diff --git a/changelog b/changelog index f8a8f7652..e6f256dbe 100644 --- a/changelog +++ b/changelog @@ -1,8 +1,16 @@ ## Changed -* Thorium salts can no longer be stored in normal tanks due to being corrosive -* Updated russian localization +* Chlorophyte rounds now deal 2x more damage than their standard counterparts instead of 1.5x +* Chlorophyte rounds now penetrate multiple enemies +* Decreased chlorophyte targeting range from 200 to 30 blocks +* Josh now has recoil and reload animations +* Anvil recipes for upgrading ammo types have been adjusted to match the crafting batch size +* Adjusted the corium block destruction function to be more in line with the recent concrete nerfs +* Reduced the blast resistance threshold for FEL, making concrete once again resistant to lasers +* Crafting bullet assemblies now only yields one item, it's that one assembly that turns into a full set of bullets after being pressed once. This should reduce the amount of press operations by up to a factor of 64. +* 5mm assemblies now yield 64 instead of 32 bullets +* The production complexity and time for making thermoelectric elements in the assembler has been reduced +* Thermoelectric elements can now also be made in a tier 2 anvil ## Fixed -* Fixed PWR crashing servers instantly -* Fixed missing tank textures for sodium -* Fixed missing lang entry for hot heavy water \ No newline at end of file +* Fixed logspam when pollution handler tries to save the pollution data for dimensions that have never been loaded before +* Fixed dead leaves layer not being replacable by other blocks \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/fluid/CoriumBlock.java b/src/main/java/com/hbm/blocks/fluid/CoriumBlock.java index 5c418b60b..ac5fb835f 100644 --- a/src/main/java/com/hbm/blocks/fluid/CoriumBlock.java +++ b/src/main/java/com/hbm/blocks/fluid/CoriumBlock.java @@ -62,7 +62,7 @@ public class CoriumBlock extends BlockFluidClassic { return true; Random rand = new Random(); - return b.getMaterial().isLiquid() || rand.nextInt((int) res) == 0; + return b.getMaterial().isLiquid() || rand.nextInt((int) (res * res)) == 0; } @Override diff --git a/src/main/java/com/hbm/blocks/generic/BlockLayering.java b/src/main/java/com/hbm/blocks/generic/BlockLayering.java index 7b45bbe3a..d4f516436 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockLayering.java +++ b/src/main/java/com/hbm/blocks/generic/BlockLayering.java @@ -2,6 +2,7 @@ package com.hbm.blocks.generic; import java.util.Random; +import com.hbm.blocks.ModBlocks; import com.hbm.blocks.machine.ZirnoxDestroyed; import com.hbm.blocks.machine.rbmk.RBMKDebris; @@ -99,6 +100,7 @@ public class BlockLayering extends Block { } public boolean isReplaceable(IBlockAccess world, int x, int y, int z) { + if(this == ModBlocks.leaves_layer) return true; int meta = world.getBlockMetadata(x, y, z); return meta >= 7 ? false : blockMaterial.isReplaceable(); } diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index bc652f236..0b55c4ab6 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -2,6 +2,7 @@ package com.hbm.crafting; import com.hbm.blocks.ModBlocks; import com.hbm.inventory.OreDictManager; +import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import static com.hbm.inventory.OreDictManager.*; @@ -168,29 +169,29 @@ public class WeaponRecipes { //Ammo assemblies CraftingManager.addRecipeAuto(new ItemStack(ModItems.pellet_flechette, 1), new Object[] { " L ", " L ", "LLL", 'L', PB.nugget() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.pellet_claws, 1), new Object[] { " X ", "X X", " XX", 'X', STEEL.plate() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_iron, 24), new Object[] { " I", "GC", 'I', IRON.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_357 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_iron, 24), new Object[] { " I", "GC", 'I', IRON.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_357 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_steel, 24), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_357 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_steel, 24), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_357 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_lead, 24), new Object[] { " I", "GC", 'I', U235.ingot(), 'G', ModItems.cordite, 'C', KEY_CLEARGLASS }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_lead, 24), new Object[] { " I", "GC", 'I', PU239.ingot(), 'G', ModItems.cordite, 'C', KEY_CLEARGLASS }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_lead, 24), new Object[] { " I", "GC", 'I', ModItems.trinitite, 'G', ModItems.cordite, 'C', KEY_CLEARGLASS }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_lead, 24), new Object[] { " I", "GC", 'I', ModItems.nuclear_waste_tiny, 'G', ModItems.cordite, 'C', KEY_CLEARGLASS }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_gold, 24), new Object[] { " I", "GC", 'I', GOLD.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_357 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_schrabidium, 6), new Object[] { " I ", "GCN", 'I', SA326.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_357, 'N', ModItems.billet_yharonite }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_nightmare, 24), new Object[] { " I", "GC", 'I', W.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_357 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_desh, 24), new Object[] { " I", "GC", 'I', DESH.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_357 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_smg, 32), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_9 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_smg, 32), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_9 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_556, 32), new Object[] { " I", "GC", 'I', STEEL.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_9 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_iron, 1), new Object[] { " I", "GC", 'I', IRON.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_357 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_iron, 1), new Object[] { " I", "GC", 'I', IRON.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_357 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_steel, 1), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_357 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_steel, 1), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_357 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_lead, 1), new Object[] { " I", "GC", 'I', U235.ingot(), 'G', ModItems.cordite, 'C', KEY_CLEARGLASS }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_lead, 1), new Object[] { " I", "GC", 'I', PU239.ingot(), 'G', ModItems.cordite, 'C', KEY_CLEARGLASS }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_lead, 1), new Object[] { " I", "GC", 'I', ModItems.trinitite, 'G', ModItems.cordite, 'C', KEY_CLEARGLASS }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_lead, 1), new Object[] { " I", "GC", 'I', ModItems.nuclear_waste_tiny, 'G', ModItems.cordite, 'C', KEY_CLEARGLASS }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_gold, 1), new Object[] { " I", "GC", 'I', GOLD.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_357 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_schrabidium, 1), new Object[] { " I ", "GCN", 'I', SA326.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_357, 'N', ModItems.billet_yharonite }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_nightmare, 1), new Object[] { " I", "GC", 'I', W.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_357 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_desh, 1), new Object[] { " I", "GC", 'I', DESH.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_357 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_smg, 1), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_9 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_smg, 1), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_9 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_556, 1), new Object[] { " I", "GC", 'I', STEEL.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_9 }); CraftingManager.addRecipeAuto(ModItems.ammo_556.stackFromEnum(30, Ammo556mm.K), new Object[] { "G", "C", 'G', ANY_GUNPOWDER.dust(), 'C', ModItems.casing_9 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_uzi, 32), new Object[] { " I", "GC", 'I', IRON.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_9 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_uzi, 32), new Object[] { " I", "GC", 'I', IRON.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_9 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_uzi, 32), new Object[] { " I", "GC", 'I', IRON.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_9 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_uzi, 32), new Object[] { " I", "GC", 'I', IRON.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_9 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_lacunae, 64), new Object[] { " I", "GC", 'I', CU.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_9 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_nopip, 24), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_44 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_nopip, 24), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_44 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_uzi, 1), new Object[] { " I", "GC", 'I', IRON.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_9 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_uzi, 1), new Object[] { " I", "GC", 'I', IRON.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_9 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_uzi, 1), new Object[] { " I", "GC", 'I', IRON.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_9 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_uzi, 1), new Object[] { " I", "GC", 'I', IRON.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_9 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_lacunae, 1), new Object[] { " I", "GC", 'I', CU.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_9 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_nopip, 1), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_44 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_nopip, 1), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_44 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_12gauge, 12), new Object[] { " I ", "GCL", 'I', ModItems.pellet_buckshot, 'G', ModItems.cordite, 'C', ModItems.casing_buckshot, 'L', ModItems.plate_polymer }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_12gauge, 12), new Object[] { " I ", "GCL", 'I', ModItems.pellet_buckshot, 'G', ModItems.ballistite, 'C', ModItems.casing_buckshot, 'L', ModItems.plate_polymer }); CraftingManager.addRecipeAuto(ModItems.ammo_12gauge.stackFromEnum(12, Ammo12Gauge.PERCUSSION), new Object[] { "G", "C", 'G', ModItems.ballistite, 'C', ModItems.casing_buckshot }); @@ -206,14 +207,14 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(ModItems.ammo_20gauge.stackFromEnum(12, Ammo20Gauge.EXPLOSIVE), new Object[] { " I ", "GCL", 'I', ModItems.pellet_cluster, 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_buckshot, 'L', CU.plate() }); CraftingManager.addRecipeAuto(ModItems.ammo_20gauge.stackFromEnum(20, Ammo20Gauge.FLECHETTE), new Object[] { " I ", "GCL", 'I', ModItems.pellet_flechette, 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_buckshot, 'L', CU.plate() }); CraftingManager.addRecipeAuto(ModItems.ammo_357.stackFromEnum(6, Ammo357Magnum.NIGHTMARE2), new Object[] { "I", "C", 'I', ModItems.powder_power, 'C', ModItems.casing_buckshot }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_calamity, 12), new Object[] { " I ", "GCG", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_50 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_actionexpress, 12), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_50 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_calamity, 1), new Object[] { " I ", "GCG", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_50 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_actionexpress, 1), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_50 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_nuke, 1), new Object[] { " WP", "SEP", " WP", 'W', ModItems.wire_aluminium, 'P', STEEL.plate(), 'S', ModItems.hull_small_steel, 'E', ANY_HIGHEXPLOSIVE.ingot() }); CraftingManager.addRecipeAuto(ModItems.ammo_dart.stackFromEnum(16, AmmoDart.GPS), new Object[] { "IPI", "ICI", "IPI", 'I', ModItems.plate_polymer, 'P', IRON.plate(), 'C', new ItemStack(ModItems.fluid_tank_lead_full, 1, Fluids.WATZ.getID()) }); CraftingManager.addRecipeAuto(ModItems.ammo_dart.stackFromEnum(16, AmmoDart.NERF), new Object[] { "I", "I", 'I', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_45, 32), " I", "GC", 'I', CU.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_44); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_762, 32), " I", "GC", 'I', CU.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_50); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_luna, 4), new Object[] { " B ", "GCG", "GPG", 'B', FERRO.ingot(), 'G', ModItems.powder_nitan_mix, 'C', ModItems.casing_50, 'P', ModItems.powder_power}); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_45, 1), " I", "GC", 'I', CU.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_44); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_762, 1), " I", "GC", 'I', CU.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_50); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_luna, 1), new Object[] { " B ", "GCG", "GPG", 'B', FERRO.ingot(), 'G', ModItems.powder_nitan_mix, 'C', ModItems.casing_50, 'P', ModItems.powder_power}); //Folly shells CraftingManager.addRecipeAuto(new ItemStack(ModItems.folly_bullet, 1), new Object[] { " S ", "STS", "SMS", 'S', STAR.ingot(), 'T', ModItems.powder_magic, 'M', ModBlocks.block_meteor }); @@ -236,13 +237,9 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.CHLORINE), new Object[] { "G", "R", 'G', ModItems.pellet_gas, 'R', ModItems.ammo_rocket }); CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.CANISTER), new Object[] { "G", "R", 'G', ModItems.pellet_canister, 'R', ModItems.ammo_rocket }); CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.NUCLEAR), new Object[] { " P ", "NRN", " P ", 'P', PU239.nugget(), 'N', OreDictManager.getReflector(), 'R', ModItems.ammo_rocket }); - CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(2, AmmoRocket.RPC), new Object[] { "BP ", "CBH", " DR", 'B', ModItems.blades_steel, 'P', STEEL.plate(), 'C', Fluids.DIESEL.getDict(1000), 'H', ModItems.hull_small_steel, 'D', ModItems.piston_selenium, 'R', ModItems.ammo_rocket }); - CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(2, AmmoRocket.RPC), new Object[] { "BP ", "CBH", " DR", 'B', ModItems.blades_steel, 'P', STEEL.plate(), 'C', Fluids.DIESEL_CRACK.getDict(1000), 'H', ModItems.hull_small_steel, 'D', ModItems.piston_selenium, 'R', ModItems.ammo_rocket }); - CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(2, AmmoRocket.RPC), new Object[] { "BP ", "CBH", " DR", 'B', ModItems.blades_steel, 'P', STEEL.plate(), 'C', Fluids.PETROIL.getDict(1000), 'H', ModItems.hull_small_steel, 'D', ModItems.piston_selenium, 'R', ModItems.ammo_rocket }); - CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(2, AmmoRocket.RPC), new Object[] { "BP ", "CBH", " DR", 'B', ModItems.blades_steel, 'P', STEEL.plate(), 'C', Fluids.PETROIL_LEADED.getDict(1000), 'H', ModItems.hull_small_steel, 'D', ModItems.piston_selenium, 'R', ModItems.ammo_rocket }); - CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(2, AmmoRocket.RPC), new Object[] { "BP ", "CBH", " DR", 'B', ModItems.blades_steel, 'P', STEEL.plate(), 'C', Fluids.GASOLINE.getDict(1000), 'H', ModItems.hull_small_steel, 'D', ModItems.piston_selenium, 'R', ModItems.ammo_rocket }); - CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(2, AmmoRocket.RPC), new Object[] { "BP ", "CBH", " DR", 'B', ModItems.blades_steel, 'P', STEEL.plate(), 'C', Fluids.GASOLINE_LEADED.getDict(1000), 'H', ModItems.hull_small_steel, 'D', ModItems.piston_selenium, 'R', ModItems.ammo_rocket }); - CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(2, AmmoRocket.RPC), new Object[] { "BP ", "CBH", " DR", 'B', ModItems.blades_steel, 'P', STEEL.plate(), 'C', Fluids.BIOFUEL.getDict(1000), 'H', ModItems.hull_small_steel, 'D', ModItems.piston_selenium, 'R', ModItems.ammo_rocket }); + + FluidType[] chainsawTypes = new FluidType[] {Fluids.DIESEL, Fluids.DIESEL_CRACK, Fluids.PETROIL, Fluids.PETROIL_LEADED, Fluids.GASOLINE, Fluids.GASOLINE_LEADED, Fluids.BIOFUEL}; + for(FluidType type : chainsawTypes) CraftingManager.addRecipeAuto(ModItems.ammo_rocket.stackFromEnum(2, AmmoRocket.RPC), new Object[] { "BP ", "CBH", " DR", 'B', ModItems.blades_steel, 'P', STEEL.plate(), 'C', type.getDict(1000), 'H', ModItems.hull_small_steel, 'D', ModItems.piston_selenium, 'R', ModItems.ammo_rocket }); //Stinger Rockets CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_stinger_rocket, 2), "CE ", " S ", " F ", 'C', ModItems.circuit_aluminium, 'E', ANY_PLASTICEXPLOSIVE.ingot(), 'F', ModItems.rocket_fuel, 'S', ModItems.hull_small_aluminium); diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 81d40b76e..0b2af8d85 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -258,7 +258,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.part_carbon, 1), new AStack[] {new ComparableStack(ModItems.plate_polymer, 1), new OreDictStack(COAL.dust(), 1), },50); makeRecipe(new ComparableStack(ModItems.part_copper, 1), new AStack[] {new ComparableStack(ModItems.plate_polymer, 1), new OreDictStack(CU.dust(), 1), },50); makeRecipe(new ComparableStack(ModItems.part_plutonium, 1), new AStack[] {new ComparableStack(ModItems.plate_polymer, 1), new ComparableStack(ModItems.powder_plutonium, 1), },50); - makeRecipe(new ComparableStack(ModItems.thermo_element, 1), new AStack[] {new OreDictStack(STEEL.plate(), 1), new ComparableStack(ModItems.wire_red_copper, 2), new ComparableStack(ModItems.wire_aluminium, 2), new OreDictStack(NETHERQUARTZ.dust(), 2), },150); + makeRecipe(new ComparableStack(ModItems.thermo_element, 1), new AStack[] {new OreDictStack(STEEL.plate(), 1), new ComparableStack(ModItems.wire_red_copper, 2), new OreDictStack(NETHERQUARTZ.dust(), 2), }, 60); makeRecipe(new ComparableStack(ModItems.plate_dalekanium, 1), new AStack[] {new ComparableStack(ModBlocks.block_meteor, 1), },50); makeRecipe(new ComparableStack(ModBlocks.block_meteor, 1), new AStack[] {new ComparableStack(ModItems.fragment_meteorite, 100), },500); makeRecipe(new ComparableStack(ModBlocks.cmb_brick, 8), new AStack[] {new OreDictStack(CMB.ingot(), 1), new OreDictStack(CMB.plate(), 8), },100); diff --git a/src/main/java/com/hbm/inventory/recipes/PressRecipes.java b/src/main/java/com/hbm/inventory/recipes/PressRecipes.java index 15f16e04c..76775b3b9 100644 --- a/src/main/java/com/hbm/inventory/recipes/PressRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/PressRecipes.java @@ -92,28 +92,28 @@ public class PressRecipes extends SerializableRecipe { makeRecipe(StampType.CIRCUIT, new ComparableStack(ModItems.circuit_arsenic_raw), ModItems.circuit_arsenic); makeRecipe(StampType.CIRCUIT, new ComparableStack(ModItems.circuit_tantalium_raw), ModItems.circuit_tantalium); - makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_iron), ModItems.ammo_357.stackFromEnum(Ammo357Magnum.IRON)); - makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_steel), ModItems.ammo_357.stackFromEnum(Ammo357Magnum.LEAD)); - makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_lead), ModItems.ammo_357.stackFromEnum(Ammo357Magnum.NUCLEAR)); - makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_gold), ModItems.ammo_357.stackFromEnum(Ammo357Magnum.GOLD)); - makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_schrabidium), ModItems.ammo_357.stackFromEnum(Ammo357Magnum.SCHRABIDIUM)); - makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_nightmare), ModItems.ammo_357.stackFromEnum(Ammo357Magnum.NIGHTMARE1)); - makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_desh), ModItems.ammo_357.stackFromEnum(Ammo357Magnum.DESH)); + makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_iron), ModItems.ammo_357.stackFromEnum(24, Ammo357Magnum.IRON)); + makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_steel), ModItems.ammo_357.stackFromEnum(24, Ammo357Magnum.LEAD)); + makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_lead), ModItems.ammo_357.stackFromEnum(24, Ammo357Magnum.NUCLEAR)); + makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_gold), ModItems.ammo_357.stackFromEnum(24, Ammo357Magnum.GOLD)); + makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_schrabidium), ModItems.ammo_357.stackFromEnum(6, Ammo357Magnum.SCHRABIDIUM)); + makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_nightmare), ModItems.ammo_357.stackFromEnum(24, Ammo357Magnum.NIGHTMARE1)); + makeRecipe(StampType.C357, new ComparableStack(ModItems.assembly_desh), ModItems.ammo_357.stackFromEnum(24, Ammo357Magnum.DESH)); makeRecipe(StampType.C357, new OreDictStack(STEEL.ingot()), ModItems.ammo_357.stackFromEnum(24, Ammo357Magnum.STEEL)); - makeRecipe(StampType.C44, new ComparableStack(ModItems.assembly_nopip), ModItems.ammo_44); - makeRecipe(StampType.C44, new ComparableStack(ModItems.assembly_45), ModItems.ammo_45); + makeRecipe(StampType.C44, new ComparableStack(ModItems.assembly_nopip), new ItemStack(ModItems.ammo_44, 24)); + makeRecipe(StampType.C44, new ComparableStack(ModItems.assembly_45), new ItemStack(ModItems.ammo_45, 32)); - makeRecipe(StampType.C9, new ComparableStack(ModItems.assembly_smg), ModItems.ammo_9mm); - makeRecipe(StampType.C9, new ComparableStack(ModItems.assembly_uzi), ModItems.ammo_22lr); + makeRecipe(StampType.C9, new ComparableStack(ModItems.assembly_smg), new ItemStack(ModItems.ammo_9mm, 32)); + makeRecipe(StampType.C9, new ComparableStack(ModItems.assembly_uzi), new ItemStack(ModItems.ammo_22lr, 32)); makeRecipe(StampType.C9, new OreDictStack(GOLD.ingot()), ModItems.ammo_556.stackFromEnum(32, Ammo556mm.GOLD)); - makeRecipe(StampType.C9, new ComparableStack(ModItems.assembly_lacunae), ModItems.ammo_5mm); - makeRecipe(StampType.C9, new ComparableStack(ModItems.assembly_556), ModItems.ammo_556); + makeRecipe(StampType.C9, new ComparableStack(ModItems.assembly_lacunae), new ItemStack(ModItems.ammo_5mm, 64)); + makeRecipe(StampType.C9, new ComparableStack(ModItems.assembly_556), new ItemStack(ModItems.ammo_556, 32)); - makeRecipe(StampType.C50, new ComparableStack(ModItems.assembly_calamity), ModItems.ammo_50bmg); - makeRecipe(StampType.C50, new ComparableStack(ModItems.assembly_actionexpress), ModItems.ammo_50ae); - makeRecipe(StampType.C50, new ComparableStack(ModItems.assembly_luna), ModItems.ammo_luna_sniper.stackFromEnum(AmmoLunaticSniper.SABOT)); - makeRecipe(StampType.C50, new ComparableStack(ModItems.assembly_762), ModItems.ammo_762); + makeRecipe(StampType.C50, new ComparableStack(ModItems.assembly_calamity), new ItemStack(ModItems.ammo_50bmg, 12)); + makeRecipe(StampType.C50, new ComparableStack(ModItems.assembly_actionexpress), new ItemStack(ModItems.ammo_50ae, 12)); + makeRecipe(StampType.C50, new ComparableStack(ModItems.assembly_luna), ModItems.ammo_luna_sniper.stackFromEnum(4, AmmoLunaticSniper.SABOT)); + makeRecipe(StampType.C50, new ComparableStack(ModItems.assembly_762), new ItemStack(ModItems.ammo_762, 32)); } public static void makeRecipe(StampType type, AStack in, Item out) { diff --git a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java index 26eca9d7d..3df9c8e30 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -205,6 +205,8 @@ public class AnvilRecipes { new AStack[] {new ComparableStack(ModItems.motor), new OreDictStack(ANY_PLASTIC.ingot(), 2), new OreDictStack(DESH.ingot(), 2), new ComparableStack(ModItems.coil_gold_torus)}, new AnvilOutput(new ItemStack(ModItems.motor_desh, 1))).setTier(3)); + pullFromAssembler(new ComparableStack(ModItems.thermo_element), 2); + constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] { new ComparableStack(Blocks.stonebrick, 4), diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java index 8fe8b6f4d..0fa67c699 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java @@ -160,7 +160,7 @@ public class TileEntityFEL extends TileEntityMachineBase implements IEnergyUser, } float hardness = b.getExplosionResistance(null); - if(hardness < 2400 && worldObj.rand.nextInt(5) == 0) { + if(hardness < 75 && worldObj.rand.nextInt(5) == 0) { worldObj.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, "random.fizz", 1.0F, 1.0F); Block block = (this.mode != EnumWavelengths.DRX) ? Blocks.fire : (MainRegistry.polaroidID == 11) ? ModBlocks.digamma_matter : ModBlocks.fire_digamma; worldObj.setBlock(x, y, z, block); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 84147f821..2e712ef87 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -1392,11 +1392,11 @@ item.cape_vertice.name=Lord Vertices Cape item.cart.crate.name=Stahlkistenlore item.cart.destroyer.name=Schuttzerstörende Lore item.cart.empty.name=Lore -item.casing_357.name=.357 Magnum-Hülse (x24) -item.casing_44.name=.44 Magnum-Hülse (x24) -item.casing_50.name=Großkaliberhülse (x12) -item.casing_9.name=Kleinkaliberhülse (x32) -item.casing_buckshot.name=Schrothülse (x12) +item.casing_357.name=.357 Magnum-Hülsen +item.casing_44.name=.44 Magnum-Hülsen +item.casing_50.name=Großkaliberhülsen +item.casing_9.name=Kleinkaliberhülsen +item.casing_buckshot.name=Schrothülsen item.catalyst_clay.name=Tonerde-Katalysator item.catalytic_converter.name=Katalytischer Konverter item.cbt_device.name=CBT-Gerät diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 0a303319d..cfa60dba7 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -2081,11 +2081,11 @@ item.cape_vertice.name=Lord Vertice's Cape item.cart.crate.name=Crate Cart item.cart.destroyer.name=Scrap Destroying Cart item.cart.empty.name=Minecart -item.casing_357.name=.357 Magnum Casing (x24) -item.casing_44.name=.44 Magnum Casing (x24) -item.casing_50.name=Large Caliber Casing (x12) -item.casing_9.name=Small Caliber Casing (x32) -item.casing_buckshot.name=Buckshot Casing (x12) +item.casing_357.name=.357 Magnum Casings +item.casing_44.name=.44 Magnum Casings +item.casing_50.name=Large Caliber Casings +item.casing_9.name=Small Caliber Casings +item.casing_buckshot.name=Buckshot Casings item.catalyst_clay.name=Clay Catalyst item.catalytic_converter.name=Catalytic Converter item.cbt_device.name=CBT Device From 56eafc2c67c04652dd700b9551e31f4541cce640 Mon Sep 17 00:00:00 2001 From: 70000hp <105080577+70000hp@users.noreply.github.com> Date: Fri, 1 Sep 2023 15:17:24 -0400 Subject: [PATCH 280/432] A recipe for the UAC pistol --- src/main/java/com/hbm/crafting/WeaponRecipes.java | 1 + src/main/java/com/hbm/lib/HbmChestContents.java | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index bc652f236..1aeec8980 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -88,6 +88,7 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_silver, 1), new Object[] { "SSP", " TI", 'S', AL.plate(), 'P', ModItems.mechanism_revolver_2, 'T', ModItems.wire_tungsten, 'I', KEY_PLANKS }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_red, 1), new Object[] { "R ", " B", 'R', ModItems.key_red, 'B', ModItems.gun_revolver_blackjack }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_deagle, 1), new Object[] { "PPM", " BI", 'P', STEEL.plate(), 'B', ModItems.bolt_tungsten, 'I', ANY_PLASTIC.ingot(), 'M', ModItems.mechanism_rifle_1 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_uac_pistol, 1), new Object[] { "IIM", " BI", 'B', ModItems.bolt_dura_steel, 'I', ANY_PLASTIC.ingot(), 'M', ModItems.mechanism_rifle_1 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_cursed, 1), new Object[] { "TTM", "SRI", 'S', STEEL.plate(), 'I', STEEL.ingot(), 'R', ModItems.wire_red_copper, 'T', TI.plate(), 'M', ModItems.mechanism_revolver_2 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_nightmare, 1), new Object[] { "SEM", " RW", 'S', STEEL.plate(), 'W', KEY_PLANKS, 'R', ModItems.wire_aluminium, 'E', ModItems.powder_power, 'M', ModItems.mechanism_revolver_2 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_nightmare2, 1), new Object[] { "SSM", "RRW", 'S', OreDictManager.getReflector(), 'W', W.ingot(), 'R', ModItems.wire_gold, 'M', ModItems.mechanism_special }); diff --git a/src/main/java/com/hbm/lib/HbmChestContents.java b/src/main/java/com/hbm/lib/HbmChestContents.java index 852e84b61..433b089e1 100644 --- a/src/main/java/com/hbm/lib/HbmChestContents.java +++ b/src/main/java/com/hbm/lib/HbmChestContents.java @@ -266,11 +266,13 @@ public class HbmChestContents { public static WeightedRandomChestContent[] vault1 = new WeightedRandomChestContent[] { new WeightedRandomChestContent(Items.gold_ingot, 0, 3, 14, 1), + new WeightedRandomChestContent(ModItems.gun_uac_pistol, 0, 1, 1, 2), new WeightedRandomChestContent(ModItems.pin, 0, 8, 8, 1), new WeightedRandomChestContent(ModItems.gun_calamity, 0, 1, 1, 1), new WeightedRandomChestContent(ModItems.bottle_quantum, 0, 1, 3, 1), new WeightedRandomChestContent(ModItems.ingot_advanced_alloy, 0, 4, 12, 1), new WeightedRandomChestContent(ModItems.ammo_50bmg, 0, 24, 48, 1), + new WeightedRandomChestContent(ModItems.ammo_45, 0, 48, 64, 2), new WeightedRandomChestContent(ModItems.circuit_red_copper, 0, 6, 12, 1), new WeightedRandomChestContent(ModItems.gas_mask_m65, 0, 1, 1, 1), new WeightedRandomChestContent(ModItems.grenade_if_he, 0, 1, 1, 1), @@ -386,6 +388,8 @@ public class HbmChestContents { public static WeightedRandomChestContent[] lockersVault = new WeightedRandomChestContent[] { new WeightedRandomChestContent(ModItems.robes_helmet, 0, 1, 1, 1), new WeightedRandomChestContent(ModItems.robes_plate, 0, 1, 1, 1), + new WeightedRandomChestContent(ModItems.ammo_45, 0, 48, 64, 2), + new WeightedRandomChestContent(ModItems.gun_uac_pistol, 0, 1, 1, 1), new WeightedRandomChestContent(ModItems.robes_legs, 0, 1, 1, 1), new WeightedRandomChestContent(ModItems.robes_boots, 0, 1, 1, 1), new WeightedRandomChestContent(ModItems.jackt, 0, 1, 1, 1), From 16f710450c83f00417885c58896f85562304d3c1 Mon Sep 17 00:00:00 2001 From: 70000hp <105080577+70000hp@users.noreply.github.com> Date: Fri, 1 Sep 2023 11:43:59 -0400 Subject: [PATCH 281/432] actual burst fire logic also adds burst fire to josh --- .../com/hbm/handler/GunConfiguration.java | 4 +- .../hbm/handler/guncfg/Gun50BMGFactory.java | 13 +++++- .../com/hbm/items/weapon/ItemGunBase.java | 45 +++++++++++++++---- 3 files changed, 52 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/hbm/handler/GunConfiguration.java b/src/main/java/com/hbm/handler/GunConfiguration.java index 1763ad83a..dd8e20796 100644 --- a/src/main/java/com/hbm/handler/GunConfiguration.java +++ b/src/main/java/com/hbm/handler/GunConfiguration.java @@ -25,6 +25,8 @@ public class GunConfiguration implements Cloneable { public int rateOfFire; //amount of bullets fired per delay passed public int roundsPerCycle; + /** Amount of rounds per burst, irrelevant if not a burst fire weapon**/ + public int roundsPerBurst; //0 = normal, 1 = release, 2 = both public int gunMode; //0 = manual, 1 = automatic @@ -46,7 +48,7 @@ public class GunConfiguration implements Cloneable { //how long the reload animation will play //MUST BE GREATER THAN ZERO ! ! ! public int reloadDuration; - //duration of every animation cycle + //duration of every animation cycle, used also for how quickly a burst fire rifle can fire public int firingDuration; //sound path to the reload sound public String reloadSound = ""; diff --git a/src/main/java/com/hbm/handler/guncfg/Gun50BMGFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun50BMGFactory.java index 5da9631d2..189ad105e 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun50BMGFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun50BMGFactory.java @@ -157,7 +157,18 @@ public class Gun50BMGFactory { return config; } - + + public static GunConfiguration getAR15BurstConfig(){ + GunConfiguration config = getAR15Config(); + config.rateOfFire = 4; + config.roundsPerBurst = 3; + config.firingDuration = 2; + config.gunMode = GunConfiguration.MODE_NORMAL; + config.firingMode = GunConfiguration.FIRE_BURST; + + return config; + } + public static GunConfiguration getM2Config() { GunConfiguration config = getAR15Config(); diff --git a/src/main/java/com/hbm/items/weapon/ItemGunBase.java b/src/main/java/com/hbm/items/weapon/ItemGunBase.java index e2b428c7e..0bd0611f8 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGunBase.java +++ b/src/main/java/com/hbm/items/weapon/ItemGunBase.java @@ -55,7 +55,8 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu public boolean m1;// = false; @SideOnly(Side.CLIENT) public boolean m2;// = false; - + + public int burstDuration = 0; public ItemGunBase(GunConfiguration config) { mainConfig = config; this.setMaxStackSize(1); @@ -131,13 +132,26 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu if(getIsMouseDown(stack) && !(player.getHeldItem() == stack)) { setIsMouseDown(stack, false); } - + + if(burstDuration > 0) { + if(altConfig == null) { + if (world.getWorldTime() % mainConfig.firingDuration == 0 && tryShoot(stack, world, player, true)) { + fire(stack, world, player); + } + } else { + boolean canFire = altConfig.firingDuration == 1 || world.getWorldTime() % altConfig.firingDuration == 0; + if (canFire && tryShoot(stack, world, player, false)) { + altFire(stack, world, player); + } + } + + if(--burstDuration == 0) setDelay(stack, mainConfig.rateOfFire); + } if(getIsAltDown(stack) && !isCurrentItem) { setIsAltDown(stack, false); } if(GeneralConfig.enableGuns && mainConfig.firingMode == 1 && getIsMouseDown(stack) && tryShoot(stack, world, player, isCurrentItem)) { - fire(stack, world, player); setDelay(stack, mainConfig.rateOfFire); } @@ -284,17 +298,32 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu //called on click (server side, called by mouse packet) for semi-automatics and specific events public void startAction(ItemStack stack, World world, EntityPlayer player, boolean main) { - if(mainConfig.firingMode == mainConfig.FIRE_MANUAL && main && tryShoot(stack, world, player, main)) { - fire(stack, world, player); - setDelay(stack, mainConfig.rateOfFire); + boolean validConfig = mainConfig.firingMode == GunConfiguration.FIRE_MANUAL || mainConfig.firingMode == GunConfiguration.FIRE_BURST; + + if(validConfig && main && tryShoot(stack, world, player, main)) { + + if(mainConfig.firingMode == GunConfiguration.FIRE_BURST){ + if(burstDuration <= 0) + burstDuration = mainConfig.firingDuration * mainConfig.roundsPerBurst; + } else { + fire(stack, world, player); + setDelay(stack, mainConfig.rateOfFire); + } + //setMag(stack, getMag(stack) - 1); //useUpAmmo(player, stack, main); //player.inventoryContainer.detectAndSendChanges(); } if(!main && altConfig != null && tryShoot(stack, world, player, main)) { - altFire(stack, world, player); - setDelay(stack, altConfig.rateOfFire); + + if(altConfig.firingMode == GunConfiguration.FIRE_BURST && burstDuration <= 0){ + burstDuration = altConfig.firingDuration * altConfig.roundsPerBurst; + } else { + altFire(stack, world, player); + setDelay(stack, altConfig.rateOfFire); + } + //useUpAmmo(player, stack, main); //player.inventoryContainer.detectAndSendChanges(); } From 9e2d2dba01d104d7d6953bfc28128b195c767972 Mon Sep 17 00:00:00 2001 From: 70000hp <105080577+70000hp@users.noreply.github.com> Date: Fri, 1 Sep 2023 13:22:20 -0400 Subject: [PATCH 282/432] burst fire for the UAC pistol --- .../hbm/handler/guncfg/Gun45ACPFactory.java | 23 ++++++++++++++++++- src/main/java/com/hbm/items/ModItems.java | 4 ++-- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/hbm/handler/guncfg/Gun45ACPFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun45ACPFactory.java index b4f25aa06..55f42911b 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun45ACPFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun45ACPFactory.java @@ -62,7 +62,7 @@ public class Gun45ACPFactory { config.firingMode = GunConfiguration.FIRE_MANUAL; config.reloadDuration = 10; config.firingDuration = 8; - config.ammoCap = 16; + config.ammoCap = 21; config.durability = 10000; config.reloadType = 1; config.allowsInfinity = true; @@ -88,6 +88,27 @@ public class Gun45ACPFactory { .addKeyframe(new BusAnimationKeyframe(15, 0, 0, 10)) .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 40)))); + //faster version of the main one, so it doesn't cut out much on the bursts + config.animations.put(AnimType.ALT_CYCLE, new BusAnimation() + .addBus("SLIDE", new BusAnimationSequence() + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 5))// Wait for hammer + .addKeyframe(new BusAnimationKeyframe(0, 0, -3.5, 20))// Slide back + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 20)))// Return + .addBus("HAMMER", new BusAnimationSequence() + .addKeyframe(new BusAnimationKeyframe(15, 0, 0, 5)) + .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 20)))); + + return config; + } + + public static GunConfiguration getUACPistolBurstConfig() { + GunConfiguration config = getUACPistolConfig(); + config.rateOfFire = 5; + config.roundsPerBurst = 3; + config.firingDuration = 2; + config.gunMode = GunConfiguration.MODE_NORMAL; + config.firingMode = GunConfiguration.FIRE_BURST; + return config; } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 119a33d3b..8ee6a7e1e 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -4229,8 +4229,8 @@ public class ModItems { gun_glass_cannon = new ItemEnergyGunBase(GunPoweredFactory.getGlassCannonConfig()).setFull3D().setUnlocalizedName("gun_glass_cannon").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_darter"); gun_m2 = new ItemGunBase(Gun50BMGFactory.getM2Config()).setFull3D().setUnlocalizedName("gun_m2").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_darter"); gun_lunatic_marksman = new ItemGunBase(Gun50BMGFactory.getLunaticMarksman()).setFull3D().setUnlocalizedName("gun_lunatic_marksman").setCreativeTab(MainRegistry.weaponTab); - gun_uac_pistol = new ItemGunBase(Gun45ACPFactory.getUACPistolConfig()).setFull3D().setUnlocalizedName("gun_uac_pistol").setCreativeTab(MainRegistry.weaponTab); - + gun_uac_pistol = new ItemGunBase(Gun45ACPFactory.getUACPistolConfig(), Gun45ACPFactory.getUACPistolBurstConfig()).setFull3D().setUnlocalizedName("gun_uac_pistol").setCreativeTab(MainRegistry.weaponTab); + ToolMaterial matCrucible = EnumHelper.addToolMaterial("CRUCIBLE", 10, 3, 50.0F, 100.0F, 0); crucible = new ItemCrucible(5000, 1F, matCrucible).setUnlocalizedName("crucible").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":crucible"); From ad826215eeeebbbe8b4595f01f15605c7d716c4b Mon Sep 17 00:00:00 2001 From: 70000hp <105080577+70000hp@users.noreply.github.com> Date: Fri, 1 Sep 2023 16:17:20 -0400 Subject: [PATCH 283/432] i forogr --- src/main/java/com/hbm/handler/GunConfiguration.java | 1 + .../java/com/hbm/handler/guncfg/Gun45ACPFactory.java | 10 ---------- 2 files changed, 1 insertion(+), 10 deletions(-) diff --git a/src/main/java/com/hbm/handler/GunConfiguration.java b/src/main/java/com/hbm/handler/GunConfiguration.java index dd8e20796..97cb7b3a5 100644 --- a/src/main/java/com/hbm/handler/GunConfiguration.java +++ b/src/main/java/com/hbm/handler/GunConfiguration.java @@ -96,6 +96,7 @@ public class GunConfiguration implements Cloneable { public static final int FIRE_MANUAL = 0; public static final int FIRE_AUTO = 1; + public static final int FIRE_BURST = 2; public static final int RELOAD_NONE = 0; public static final int RELOAD_FULL = 1; diff --git a/src/main/java/com/hbm/handler/guncfg/Gun45ACPFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun45ACPFactory.java index 55f42911b..644d37457 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun45ACPFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun45ACPFactory.java @@ -88,16 +88,6 @@ public class Gun45ACPFactory { .addKeyframe(new BusAnimationKeyframe(15, 0, 0, 10)) .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 40)))); - //faster version of the main one, so it doesn't cut out much on the bursts - config.animations.put(AnimType.ALT_CYCLE, new BusAnimation() - .addBus("SLIDE", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 5))// Wait for hammer - .addKeyframe(new BusAnimationKeyframe(0, 0, -3.5, 20))// Slide back - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 20)))// Return - .addBus("HAMMER", new BusAnimationSequence() - .addKeyframe(new BusAnimationKeyframe(15, 0, 0, 5)) - .addKeyframe(new BusAnimationKeyframe(0, 0, 0, 20)))); - return config; } From db288d06c7d69d73d8c8bd0ad522c675be36f95e Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 3 Sep 2023 18:29:47 +0200 Subject: [PATCH 284/432] conveyor press, fixes --- changelog | 21 +- src/main/java/com/hbm/blocks/ModBlocks.java | 3 + .../blocks/machine/MachineConveyorPress.java | 173 +++ .../java/com/hbm/crafting/WeaponRecipes.java | 2 +- .../projectile/EntityArtilleryShell.java | 1 + .../inventory/recipes/AssemblerRecipes.java | 3 +- src/main/java/com/hbm/main/ClientProxy.java | 1 + .../java/com/hbm/main/CraftingManager.java | 2 + .../com/hbm/main/ModEventHandlerClient.java | 13 +- .../com/hbm/main/ModEventHandlerRenderer.java | 4 +- .../java/com/hbm/main/ResourceManager.java | 3 + .../hbm/render/entity/effect/RenderTorex.java | 2 +- .../tileentity/RenderConveyorPress.java | 80 ++ .../java/com/hbm/tileentity/TileMappings.java | 1 + .../machine/TileEntityConveyorPress.java | 269 +++++ .../machine/TileEntityCoreEmitter.java | 5 - .../machine/rbmk/TileEntityRBMKRod.java | 2 + .../storage/TileEntityMachineFENSU.java | 92 +- .../java/com/hbm/world/feature/BiomeCave.java | 7 +- .../java/com/hbm/world/feature/DeepLayer.java | 8 +- .../java/com/hbm/world/feature/OreCave.java | 7 +- .../java/com/hbm/world/feature/OreLayer.java | 7 +- .../com/hbm/world/feature/OreLayer3D.java | 8 +- .../com/hbm/world/feature/SchistStratum.java | 7 +- .../hbm/world/generator/DungeonToolbox.java | 8 + src/main/resources/assets/hbm/lang/de_DE.lang | 4 +- src/main/resources/assets/hbm/lang/en_US.lang | 3 + .../hbm/models/machines/conveyor_press.obj | 1042 +++++++++++++++++ .../hbm/textures/armor/trenchmaster_arm.png | Bin 0 -> 546 bytes .../textures/armor/trenchmaster_helmet.png | Bin 0 -> 1378 bytes .../models/machines/conveyor_press.png | Bin 0 -> 1767 bytes .../models/machines/conveyor_press_belt.png | Bin 0 -> 1482 bytes 32 files changed, 1699 insertions(+), 79 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/machine/MachineConveyorPress.java create mode 100644 src/main/java/com/hbm/render/tileentity/RenderConveyorPress.java create mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityConveyorPress.java create mode 100644 src/main/resources/assets/hbm/models/machines/conveyor_press.obj create mode 100644 src/main/resources/assets/hbm/textures/armor/trenchmaster_arm.png create mode 100644 src/main/resources/assets/hbm/textures/armor/trenchmaster_helmet.png create mode 100644 src/main/resources/assets/hbm/textures/models/machines/conveyor_press.png create mode 100644 src/main/resources/assets/hbm/textures/models/machines/conveyor_press_belt.png diff --git a/changelog b/changelog index e6f256dbe..a7baa47be 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,11 @@ +## Added +* Conveyor press + * An upgraded version of the electric press that can be integrated directly into conveyor belts + * Each pressing operation will process however many items happen to be at the belt at the time, so given enough conveyor infrastructure it can be much faster than a normal electric press + * Has no GUI, stamps are installed either by hand or via automation + * Stamps can be removed with a screwdriver + * Can only stamp single items to avoid issues with stack limits, so it's best to use ejection speed instead of stack ejection upgrades for the conveyor ejectors + ## Changed * Chlorophyte rounds now deal 2x more damage than their standard counterparts instead of 1.5x * Chlorophyte rounds now penetrate multiple enemies @@ -10,7 +18,18 @@ * 5mm assemblies now yield 64 instead of 32 bullets * The production complexity and time for making thermoelectric elements in the assembler has been reduced * Thermoelectric elements can now also be made in a tier 2 anvil +* Changed electric press recipe, crafting complexity has been reduced and the press now uses hydraulic pistons +* Removed DFC emitter beam cap again since the core already imposes a natural limit due to fuel consumption + * I don't know why anyone would need a DFC that strong anyway, but now you can have them again ## Fixed * Fixed logspam when pollution handler tries to save the pollution data for dimensions that have never been loaded before -* Fixed dead leaves layer not being replacable by other blocks \ No newline at end of file +* Fixed dead leaves layer not being replacable by other blocks +* Fixed rock layers like schist, hematite and sulfur caves not spawning at all +* Fixed rock layers replacing end portal frames or bedrock +* Fixed FEnSU instantly voiding all energy when sending +* Fixed some conflict causing the nuke flash to be applied permanently +* Fixed flux level not resetting when rods are above melting point with meltdowns disabled +* Fixed crash caused by express delivery shells +* Fixed 4 gauge solid steel slugs not being made from steel +* Fixed missing lang entry for fluorite ore \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index dd5bf106a..8adb34c14 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1050,6 +1050,7 @@ public class ModBlocks { public static Block press_preheater; public static Block machine_press; public static Block machine_epress; + public static Block machine_conveyor_press; public static Block machine_siren; @@ -2265,6 +2266,7 @@ public class ModBlocks { press_preheater = new BlockBase(Material.iron).setBlockName("press_preheater").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":press_preheater"); machine_press = new MachinePress(Material.iron).setBlockName("machine_press").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_press"); machine_epress = new MachineEPress(Material.iron).setBlockName("machine_epress").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_epress"); + machine_conveyor_press = new MachineConveyorPress(Material.iron).setBlockName("machine_conveyor_press").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_selenium = new MachineSeleniumEngine(Material.iron).setBlockName("machine_selenium").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_selenium"); reactor_research = new ReactorResearch(Material.iron).setBlockName("machine_reactor_small").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_reactor_small"); reactor_zirnox = new ReactorZirnox(Material.iron).setBlockName("machine_zirnox").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); @@ -3084,6 +3086,7 @@ public class ModBlocks { GameRegistry.registerBlock(press_preheater, press_preheater.getUnlocalizedName()); GameRegistry.registerBlock(machine_press, machine_press.getUnlocalizedName()); GameRegistry.registerBlock(machine_epress, machine_epress.getUnlocalizedName()); + register(machine_conveyor_press); register(heater_firebox); register(heater_oven); register(machine_ashpit); diff --git a/src/main/java/com/hbm/blocks/machine/MachineConveyorPress.java b/src/main/java/com/hbm/blocks/machine/MachineConveyorPress.java new file mode 100644 index 000000000..1bddf1a9d --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineConveyorPress.java @@ -0,0 +1,173 @@ +package com.hbm.blocks.machine; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ILookOverlay; +import com.hbm.blocks.ITooltipProvider; +import com.hbm.items.machine.ItemStamp; +import com.hbm.tileentity.machine.TileEntityConveyorPress; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; + +import api.hbm.block.IToolable; +import api.hbm.conveyor.IConveyorBelt; +import net.minecraft.block.material.Material; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; +import net.minecraftforge.common.util.ForgeDirection; + +public class MachineConveyorPress extends BlockDummyable implements IConveyorBelt, ILookOverlay, IToolable, ITooltipProvider { + + public MachineConveyorPress(Material mat) { + super(mat); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityConveyorPress(); + return null; + } + + @Override + public int[] getDimensions() { + return new int[] {2, 0, 0, 0, 0, 0}; + } + + @Override + public int getOffset() { + return 0; + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if(world.isRemote) { + return true; + } else { + + int[] pos = this.findCore(world, x, y, z); + + if(pos == null) + return false; + + TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]); + + if(!(te instanceof TileEntityConveyorPress)) + return false; + + TileEntityConveyorPress press = (TileEntityConveyorPress) te; + + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof ItemStamp && press.slots[0] == null) { + press.slots[0] = player.getHeldItem().copy(); + press.slots[0].stackSize = 1; + player.getHeldItem().stackSize--; + world.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, "hbm:item.upgradePlug", 1.0F, 1.0F); + press.markChanged(); + world.markBlockForUpdate(x, y, z); + return true; + } + } + + return false; + } + + @Override + public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) { + + if(tool != ToolType.SCREWDRIVER) return false; + + int[] pos = this.findCore(world, x, y, z); + + if(pos == null) + return false; + + TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]); + + if(!(te instanceof TileEntityConveyorPress)) + return false; + + TileEntityConveyorPress press = (TileEntityConveyorPress) te; + + if(press.slots[0] == null) return false; + + if(!player.inventory.addItemStackToInventory(press.slots[0].copy())) { + EntityItem item = new EntityItem(world, x + 0.5, y + this.maxY, z + 0.5, press.slots[0].copy()); + world.spawnEntityInWorld(item); + } else { + player.inventoryContainer.detectAndSendChanges(); + } + + press.slots[0] = null; + press.markChanged(); + + return true; + } + + @Override + public Vec3 getTravelLocation(World world, int x, int y, int z, Vec3 itemPos, double speed) { + ForgeDirection dir = this.getTravelDirection(world, x, y, z, itemPos); + Vec3 snap = this.getClosestSnappingPosition(world, x, y, z, itemPos); + Vec3 dest = Vec3.createVectorHelper(snap.xCoord - dir.offsetX * speed, snap.yCoord - dir.offsetY * speed, snap.zCoord - dir.offsetZ * speed); + Vec3 motion = Vec3.createVectorHelper((dest.xCoord - itemPos.xCoord), (dest.yCoord - itemPos.yCoord), (dest.zCoord - itemPos.zCoord)); + double len = motion.lengthVector(); + Vec3 ret = Vec3.createVectorHelper(itemPos.xCoord + motion.xCoord / len * speed, itemPos.yCoord + motion.yCoord / len * speed, itemPos.zCoord + motion.zCoord / len * speed); + return ret; + } + + public ForgeDirection getTravelDirection(World world, int x, int y, int z, Vec3 itemPos) { + int meta = world.getBlockMetadata(x, y - 1, z) - offset; + return ForgeDirection.getOrientation(meta).getRotation(ForgeDirection.UP); + } + + @Override + public Vec3 getClosestSnappingPosition(World world, int x, int y, int z, Vec3 itemPos) { + + ForgeDirection dir = this.getTravelDirection(world, x, y, z, itemPos); + itemPos.xCoord = MathHelper.clamp_double(itemPos.xCoord, x, x + 1); + itemPos.zCoord = MathHelper.clamp_double(itemPos.zCoord, z, z + 1); + double posX = x + 0.5; + double posZ = z + 0.5; + if(dir.offsetX != 0) posX = itemPos.xCoord; + if(dir.offsetZ != 0) posZ = itemPos.zCoord; + return Vec3.createVectorHelper(posX, y + 0.25, posZ); + } + + @Override + public boolean canItemStay(World world, int x, int y, int z, Vec3 itemPos) { + return world.getBlock(x, y - 1, z) == this && world.getBlockMetadata(x, y - 1, z) >= 12; + } + + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + int[] pos = this.findCore(world, x, y, z); + + if(pos == null) + return; + + TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]); + + if(!(te instanceof TileEntityConveyorPress)) + return; + + TileEntityConveyorPress press = (TileEntityConveyorPress) te; + List text = new ArrayList(); + + text.add(BobMathUtil.getShortNumber(press.power) + "HE / " + BobMathUtil.getShortNumber(press.maxPower) + "HE"); + text.add("Installed stamp: " + ((press.syncStack == null || press.syncStack.getItem() == null) ? (EnumChatFormatting.RED + "NONE") : press.syncStack.getDisplayName())); + + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } +} diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index 0b55c4ab6..c81f7b911 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -196,7 +196,7 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_12gauge, 12), new Object[] { " I ", "GCL", 'I', ModItems.pellet_buckshot, 'G', ModItems.ballistite, 'C', ModItems.casing_buckshot, 'L', ModItems.plate_polymer }); CraftingManager.addRecipeAuto(ModItems.ammo_12gauge.stackFromEnum(12, Ammo12Gauge.PERCUSSION), new Object[] { "G", "C", 'G', ModItems.ballistite, 'C', ModItems.casing_buckshot }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_4gauge, 12), new Object[] { " I ", "GCL", 'I', ModItems.pellet_buckshot, 'G', ModItems.cordite, 'C', ModItems.casing_50, 'L', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(12, Ammo4Gauge.SLUG), new Object[] { " I ", "GCL", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_50, 'L', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(12, Ammo4Gauge.SLUG), new Object[] { " I ", "GCL", 'I', STEEL.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_50, 'L', ModItems.plate_polymer }); CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(12, Ammo4Gauge.FLECHETTE), new Object[] { " I ", "GCL", 'I', ModItems.pellet_flechette, 'G', ModItems.cordite, 'C', ModItems.casing_50, 'L', ModItems.plate_polymer }); CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(4, Ammo4Gauge.EXPLOSIVE), new Object[] { " I ", "GCL", 'I', ModBlocks.tnt, 'G', ModItems.cordite, 'C', ModItems.casing_50, 'L', ModItems.plate_polymer }); CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(6, Ammo4Gauge.EXPLOSIVE), new Object[] { " I ", "GCL", 'I', ANY_PLASTICEXPLOSIVE.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_50, 'L', ModItems.plate_polymer }); diff --git a/src/main/java/com/hbm/entity/projectile/EntityArtilleryShell.java b/src/main/java/com/hbm/entity/projectile/EntityArtilleryShell.java index a64891b70..b03d3118f 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityArtilleryShell.java +++ b/src/main/java/com/hbm/entity/projectile/EntityArtilleryShell.java @@ -56,6 +56,7 @@ public class EntityArtilleryShell extends EntityThrowableNT implements IChunkLoa @Override protected void entityInit() { + super.entityInit(); init(ForgeChunkManager.requestTicket(MainRegistry.instance, worldObj, Type.ENTITY)); this.dataWatcher.addObject(10, new Integer(0)); } diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 0b2af8d85..50db8cf5a 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -13,6 +13,7 @@ import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ItemAmmoEnums; +import com.hbm.items.ItemGenericPart.EnumPartType; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemAssemblyTemplate; import com.hbm.items.machine.ItemDrillbit.EnumDrillType; @@ -281,7 +282,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.machine_flare, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(IRON.ingot(), 12), new OreDictStack(CU.plate528(), 4), new ComparableStack(ModItems.tank_steel, 1), new ComparableStack(ModBlocks.deco_pipe_quad, 8), new ComparableStack(ModItems.hull_small_steel, 4), new ComparableStack(ModItems.thermo_element, 3), },200); makeRecipe(new ComparableStack(ModBlocks.machine_coker, 1), new AStack[] {new OreDictStack(STEEL.plate(), 24), new OreDictStack(IRON.ingot(), 12), new OreDictStack(CU.plate528(), 8), new OreDictStack(RUBBER.ingot(), 4), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModBlocks.steel_grate, 4) },200); makeRecipe(new ComparableStack(ModBlocks.machine_refinery, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 16), new OreDictStack(CU.plate(), 16), new ComparableStack(ModItems.hull_big_steel, 6), new ComparableStack(ModItems.pipes_steel, 2), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModItems.circuit_red_copper, 1) },350); - makeRecipe(new ComparableStack(ModBlocks.machine_epress, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new ComparableStack(ModItems.plate_polymer, 4), new ComparableStack(ModItems.bolt_tungsten, 4), new ComparableStack(ModItems.coil_copper, 2), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.circuit_copper, 1), new OreDictStack(Fluids.LUBRICANT.getDict(1000)), },160); + makeRecipe(new ComparableStack(ModBlocks.machine_epress, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new ComparableStack(ModItems.plate_polymer, 4), new ComparableStack(ModItems.part_generic, 2, EnumPartType.PISTON_HYDRAULIC.ordinal()), new ComparableStack(ModItems.circuit_copper, 1) }, 100); makeRecipe(new ComparableStack(ModBlocks.machine_chemplant, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(CU.plate528(), 6), new ComparableStack(ModItems.tank_steel, 4), new ComparableStack(ModItems.hull_big_steel, 1), new ComparableStack(ModItems.coil_tungsten, 3), new ComparableStack(ModItems.circuit_copper, 2), new ComparableStack(ModItems.circuit_red_copper, 1), new ComparableStack(ModItems.plate_polymer, 8), },200); makeRecipe(new ComparableStack(ModBlocks.machine_crystallizer, 1), new AStack[] {new ComparableStack(ModItems.hull_big_steel, 4), new ComparableStack(ModItems.pipes_steel, 1), new OreDictStack(DESH.ingot(), 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.blades_advanced_alloy, 2), new OreDictStack(STEEL.ingot(), 16), new OreDictStack(TI.plate(), 16), new ComparableStack(Blocks.glass, 4), new ComparableStack(ModItems.circuit_gold, 1), },400); makeRecipe(new ComparableStack(ModBlocks.machine_fluidtank, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(STEEL.plate528(), 6), new ComparableStack(ModItems.hull_big_steel, 4), new OreDictStack(ANY_TAR.any(), 4), },150); diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 49b3aae01..97bcdb621 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -287,6 +287,7 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineCoker.class, new RenderCoker()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFan.class, new RenderFan()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPistonInserter.class, new RenderPistonInserter()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityConveyorPress.class, new RenderConveyorPress()); //Foundry ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFoundryBasin.class, new RenderFoundry()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFoundryMold.class, new RenderFoundry()); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 7c0d6c047..338981eaa 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -984,6 +984,8 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.crane_unboxer), new Object[] { "WWW", "WPW", "CCC", 'W', KEY_STICK, 'P', Items.shears, 'C', ModBlocks.conveyor }); addRecipeAuto(new ItemStack(ModBlocks.crane_router), new Object[] { "PIP", "ICI", "PIP", 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_PNEUMATIC), 'I', ModItems.plate_polymer, 'C', ModItems.circuit_copper }); addRecipeAuto(new ItemStack(ModBlocks.crane_splitter), new Object[] { "III", "PCP", "III", 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_PNEUMATIC), 'I', STEEL.ingot(), 'C', ModItems.circuit_aluminium }); + + addRecipeAuto(new ItemStack(ModBlocks.machine_conveyor_press), new Object[] { "CPC", "CBC", "CCC", 'C', CU.plate(), 'P', ModBlocks.machine_epress, 'B', ModBlocks.conveyor }); addShapelessAuto(DictFrame.fromOne(ModItems.parts_legendary, EnumLegendaryType.TIER1), new Object[] { ModItems.ingot_chainsteel, ASBESTOS.ingot(), ModItems.gem_alexandrite }); addShapelessAuto(DictFrame.fromOne(ModItems.parts_legendary, EnumLegendaryType.TIER1, 3), new Object[] { DictFrame.fromOne(ModItems.parts_legendary, EnumLegendaryType.TIER2) }); diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 8390aa880..bd54cf242 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -12,10 +12,6 @@ import org.lwjgl.opengl.GL11; import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockAshes; -import com.hbm.blocks.rail.IRailNTM; -import com.hbm.blocks.rail.IRailNTM.MoveContext; -import com.hbm.blocks.rail.IRailNTM.RailCheckType; -import com.hbm.blocks.rail.IRailNTM.RailContext; import com.hbm.config.GeneralConfig; import com.hbm.entity.mob.EntityHunterChopper; import com.hbm.entity.projectile.EntityChopperMine; @@ -144,7 +140,8 @@ import net.minecraftforge.event.entity.player.ItemTooltipEvent; public class ModEventHandlerClient { - public static int flashTimer; + public static final int flashDuration = 5_000; + public static long flashTimestamp; @SubscribeEvent public void onOverlayRender(RenderGameOverlayEvent.Pre event) { @@ -152,7 +149,7 @@ public class ModEventHandlerClient { EntityPlayer player = Minecraft.getMinecraft().thePlayer; /// NUKE FLASH /// - if(event.type == ElementType.CROSSHAIRS && flashTimer > 0) { + if(event.type == ElementType.CROSSHAIRS && (flashTimestamp + flashDuration - System.currentTimeMillis()) > 0) { int width = event.resolution.getScaledWidth(); int height = event.resolution.getScaledHeight(); Tessellator tess = Tessellator.instance; @@ -162,7 +159,7 @@ public class ModEventHandlerClient { GL11.glAlphaFunc(GL11.GL_GEQUAL, 0.0F); GL11.glDepthMask(false); tess.startDrawingQuads(); - float brightness = (flashTimer - event.partialTicks) / 200F; + float brightness = (flashTimestamp + flashDuration - System.currentTimeMillis()) / (float) flashDuration; tess.setColorRGBA_F(1F, 1F, 1F, brightness * 0.8F); tess.addVertex(width, 0, 0); tess.addVertex(0, 0, 0); @@ -1262,8 +1259,6 @@ public class ModEventHandlerClient { client.sendQueue.addToSendQueue(new C0CPacketInput(client.moveStrafing, client.moveForward, client.movementInput.jump, client.movementInput.sneak)); } } - - if(event.phase == Phase.START) if(flashTimer > 0) flashTimer--; } @SubscribeEvent diff --git a/src/main/java/com/hbm/main/ModEventHandlerRenderer.java b/src/main/java/com/hbm/main/ModEventHandlerRenderer.java index eee0c1d97..50156b735 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerRenderer.java +++ b/src/main/java/com/hbm/main/ModEventHandlerRenderer.java @@ -383,8 +383,8 @@ public class ModEventHandlerRenderer { @SubscribeEvent public void onRenderHUD(RenderGameOverlayEvent.Pre event) { - if(event.type == ElementType.HOTBAR && ModEventHandlerClient.flashTimer > 0) { - double mult = (ModEventHandlerClient.flashTimer + event.partialTicks) * 0.01D; + if(event.type == ElementType.HOTBAR && (ModEventHandlerClient.flashTimestamp + ModEventHandlerClient.flashDuration - System.currentTimeMillis()) > 0) { + double mult = (ModEventHandlerClient.flashTimestamp + ModEventHandlerClient.flashDuration - System.currentTimeMillis()) / (double) ModEventHandlerClient.flashDuration * 2; double horizontal = MathHelper.clamp_double(Math.sin(System.currentTimeMillis() * 0.02), -0.7, 0.7) * 5; double vertical = MathHelper.clamp_double(Math.sin(System.currentTimeMillis() * 0.01 + 2), -0.7, 0.7) * 1; GL11.glTranslated(horizontal * mult, vertical * mult, 0); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index be61c02bd..4ad9341a7 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -122,6 +122,7 @@ public class ResourceManager { public static final IModelCustom press_head = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/press_head.obj")); public static final IModelCustom epress_body = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/epress_body.obj")); public static final IModelCustom epress_head = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/epress_head.obj")); + public static final IModelCustom conveyor_press = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/conveyor_press.obj")); //Assembler public static final IModelCustom assembler_body = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/assembler_new_body.obj")); @@ -479,6 +480,8 @@ public class ResourceManager { public static final ResourceLocation press_head_tex = new ResourceLocation(RefStrings.MODID, "textures/models/press_head.png"); public static final ResourceLocation epress_body_tex = new ResourceLocation(RefStrings.MODID, "textures/models/epress_body.png"); public static final ResourceLocation epress_head_tex = new ResourceLocation(RefStrings.MODID, "textures/models/epress_head.png"); + public static final ResourceLocation conveyor_press_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/conveyor_press.png"); + public static final ResourceLocation conveyor_press_belt_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/conveyor_press_belt.png"); //Assembler public static final ResourceLocation assembler_body_tex = new ResourceLocation(RefStrings.MODID, "textures/models/assembler_base_new.png"); diff --git a/src/main/java/com/hbm/render/entity/effect/RenderTorex.java b/src/main/java/com/hbm/render/entity/effect/RenderTorex.java index e54f175a0..e90761d3e 100644 --- a/src/main/java/com/hbm/render/entity/effect/RenderTorex.java +++ b/src/main/java/com/hbm/render/entity/effect/RenderTorex.java @@ -37,7 +37,7 @@ public class RenderTorex extends Render { EntityNukeTorex cloud = (EntityNukeTorex)entity; cloudletWrapper(cloud, interp); if(cloud.ticksExisted < 101) flashWrapper(cloud, interp); - if(cloud.ticksExisted < 10 && ModEventHandlerClient.flashTimer < 100) ModEventHandlerClient.flashTimer = 200; + if(cloud.ticksExisted < 10 && System.currentTimeMillis() - ModEventHandlerClient.flashTimestamp > 1_000) ModEventHandlerClient.flashTimestamp = System.currentTimeMillis(); if(fog) GL11.glEnable(GL11.GL_FOG); GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/render/tileentity/RenderConveyorPress.java b/src/main/java/com/hbm/render/tileentity/RenderConveyorPress.java new file mode 100644 index 000000000..1bfb50fae --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderConveyorPress.java @@ -0,0 +1,80 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; +import com.hbm.tileentity.machine.TileEntityConveyorPress; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderConveyorPress extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y, z + 0.5); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + + switch(tile.getBlockMetadata() - BlockDummyable.offset) { + case 2: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(0, 0F, 1F, 0F); break; + } + + TileEntityConveyorPress press = (TileEntityConveyorPress) tile; + + bindTexture(ResourceManager.conveyor_press_tex); + ResourceManager.conveyor_press.renderPart("Press"); + + if(press.syncStack != null) { + GL11.glPushMatrix(); + double piston = press.lastPress + (press.renderPress - press.lastPress) * interp; + GL11.glTranslated(0, -piston * 0.75, 0); + ResourceManager.conveyor_press.renderPart("Piston"); + GL11.glPopMatrix(); + } + + bindTexture(ResourceManager.conveyor_press_belt_tex); + + GL11.glMatrixMode(GL11.GL_TEXTURE); + GL11.glLoadIdentity(); + int ticks = (int)(tile.getWorldObj().getTotalWorldTime() % 16) - 2; + GL11.glTranslated(0, ticks / 16D, 0); + GL11.glMatrixMode(GL11.GL_MODELVIEW); + ResourceManager.conveyor_press.renderPart("Belt"); + GL11.glMatrixMode(GL11.GL_TEXTURE); + GL11.glLoadIdentity(); + GL11.glMatrixMode(GL11.GL_MODELVIEW); + + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.machine_conveyor_press); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(0, -4, 0); + GL11.glScaled(4.5, 4.5, 4.5); + } + public void renderCommon() { + bindTexture(ResourceManager.conveyor_press_tex); + ResourceManager.conveyor_press.renderPart("Press"); + ResourceManager.conveyor_press.renderPart("Piston"); + bindTexture(ResourceManager.conveyor_press_belt_tex); + ResourceManager.conveyor_press.renderPart("Belt"); + }}; + } +} diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index fd8d60aca..ebd4e6c46 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -140,6 +140,7 @@ public class TileMappings { put(TileEntityDecon.class, "tileentity_decon"); put(TileEntityMachineSatDock.class, "tileentity_miner_dock"); put(TileEntityMachineEPress.class, "tileentity_electric_press"); + put(TileEntityConveyorPress.class, "tileentity_conveyor_press"); put(TileEntityCoreEmitter.class, "tileentity_v0_emitter"); put(TileEntityCoreReceiver.class, "tileentity_v0_receiver"); put(TileEntityCoreInjector.class, "tileentity_v0_injector"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityConveyorPress.java b/src/main/java/com/hbm/tileentity/machine/TileEntityConveyorPress.java new file mode 100644 index 000000000..c4f7eaf9f --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityConveyorPress.java @@ -0,0 +1,269 @@ +package com.hbm.tileentity.machine; + +import java.util.List; + +import com.hbm.entity.item.EntityMovingItem; +import com.hbm.inventory.recipes.PressRecipes; +import com.hbm.items.machine.ItemStamp; +import com.hbm.lib.Library; +import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.fauxpointtwelve.DirPos; + +import api.hbm.energy.IEnergyUser; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityConveyorPress extends TileEntityMachineBase implements IEnergyUser { + + public int usage = 100; + public long power = 0; + public final static long maxPower = 50000; + + public double speed = 0.125; + public double press; + public double renderPress; + public double lastPress; + private double syncPress; + private int turnProgress; + protected boolean isRetracting = false; + private int delay; + + public ItemStack syncStack; + + public TileEntityConveyorPress() { + super(1); + } + + @Override + public String getName() { + return ""; + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + this.updateConnections(); + + if(delay <= 0) { + + if(isRetracting) { + + if(this.canRetract()) { + this.press -= speed; + this.power -= this.usage; + + if(press <= 0) { + press = 0; + this.isRetracting = false; + delay = 0; + } + } + + } else { + + if(this.canExtend()) { + this.press += speed; + this.power -= this.usage; + + if(press >= 1) { + press = 1; + this.isRetracting = true; + delay = 5; + this.process(); + } + } + } + + } else { + delay--; + } + + NBTTagCompound data = new NBTTagCompound(); + data.setLong("power", power); + data.setDouble("press", press); + if(slots[0] != null) { + NBTTagCompound stack = new NBTTagCompound(); + slots[0].writeToNBT(stack); + data.setTag("stack", stack); + } + + this.networkPack(data, 50); + } else { + + // approach-based interpolation, GO! + this.lastPress = this.renderPress; + + if(this.turnProgress > 0) { + this.renderPress = this.renderPress + ((this.syncPress - this.renderPress) / (double) this.turnProgress); + --this.turnProgress; + } else { + this.renderPress = this.syncPress; + } + } + } + + protected void updateConnections() { + for(DirPos pos : getConPos()) this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + + protected DirPos[] getConPos() { + return new DirPos[] { + new DirPos(xCoord + 1, yCoord, zCoord, Library.POS_X), + new DirPos(xCoord - 1, yCoord, zCoord, Library.NEG_X), + new DirPos(xCoord, yCoord, zCoord + 1, Library.POS_Z), + new DirPos(xCoord, yCoord, zCoord - 1, Library.NEG_Z), + }; + } + + public boolean canExtend() { + + if(this.power < usage) return false; + if(slots[0] == null) return false; + + List items = worldObj.getEntitiesWithinAABB(EntityMovingItem.class, AxisAlignedBB.getBoundingBox(xCoord, yCoord + 1, zCoord, xCoord + 1, yCoord + 1.5, zCoord + 1)); + if(items.isEmpty()) return false; + + for(EntityMovingItem item : items) { + ItemStack stack = item.getItemStack(); + if(PressRecipes.getOutput(stack, slots[0]) != null && stack.stackSize == 1) { + + double d0 = 0.35; + double d1 = 0.65; + if(item.posX > xCoord + d0 && item.posX < xCoord + d1 && item.posZ > zCoord + d0 && item.posZ < zCoord + d1) { + item.setPosition(xCoord + 0.5, item.posY, zCoord + 0.5); + } + + return true; + } + } + + return false; + } + + public void process() { + + List items = worldObj.getEntitiesWithinAABB(EntityMovingItem.class, AxisAlignedBB.getBoundingBox(xCoord, yCoord + 1, zCoord, xCoord + 1, yCoord + 1.5, zCoord + 1)); + + for(EntityMovingItem item : items) { + ItemStack stack = item.getItemStack(); + ItemStack output = PressRecipes.getOutput(stack, slots[0]); + + if(output != null && stack.stackSize == 1) { + item.setDead(); + EntityMovingItem out = new EntityMovingItem(worldObj); + out.setPosition(item.posX, item.posY, item.posZ); + out.setItemStack(output.copy()); + worldObj.spawnEntityInWorld(out); + } + } + + this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "hbm:block.pressOperate", 1.5F, 1.0F); + + if(slots[0].getMaxDamage() != 0) { + slots[0].setItemDamage(slots[0].getItemDamage() + 1); + if(slots[0].getItemDamage() >= slots[0].getMaxDamage()) { + slots[0] = null; + } + } + } + + public boolean canRetract() { + if(this.power < usage) return false; + return true; + } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + this.power = nbt.getLong("power"); + this.syncPress = nbt.getInteger("press"); + + if(nbt.hasKey("stack")) { + NBTTagCompound stack = nbt.getCompoundTag("stack"); + this.syncStack = ItemStack.loadItemStackFromNBT(stack); + } else { + this.syncStack = null; + } + + this.turnProgress = 2; + } + + @Override + public boolean isItemValidForSlot(int i, ItemStack stack) { + return stack.getItem() instanceof ItemStamp; + } + + @Override + public int[] getAccessibleSlotsFromSide(int side) { + return new int[] { 0 }; + } + + @Override + public boolean canInsertItem(int i, ItemStack itemStack, int j) { + return this.isItemValidForSlot(i, itemStack); + } + + @Override + public long getPower() { + return power; + } + + @Override + public long getMaxPower() { + return maxPower; + } + + @Override + public void setPower(long power) { + this.power = power; + } + + @Override + public boolean canConnect(ForgeDirection dir) { + return dir != ForgeDirection.DOWN; + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.power = nbt.getLong("power"); + this.press = nbt.getDouble("press"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setLong("power", power); + nbt.setDouble("press", press); + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 1, + yCoord, + zCoord - 1, + xCoord + 2, + yCoord + 3, + zCoord + 2 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java index d40fff7d8..f19f9e586 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java @@ -43,7 +43,6 @@ public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEne public boolean isOn; public FluidTank tank; public long prev; - public static long maxJoules = Long.MAX_VALUE / 100_000; public static final int range = 50; @@ -99,8 +98,6 @@ public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEne ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); for(int i = 1; i <= range; i++) { - if(out > maxJoules) out = maxJoules; - beam = i; int x = xCoord + dir.offsetX * i; @@ -111,13 +108,11 @@ public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEne TileEntity te = worldObj.getTileEntity(x, y, z); if(block instanceof ILaserable) { - ((ILaserable)block).addEnergy(worldObj, x, y, z, out * 98 / 100, dir); break; } if(te instanceof ILaserable) { - ((ILaserable)te).addEnergy(worldObj, x, y, z, out * 98 / 100, dir); break; } diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java index 1b1f607d4..2a432b5d7 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java @@ -91,6 +91,8 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM } else { this.meltdown(); } + this.fluxFast = 0; + this.fluxSlow = 0; return; } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFENSU.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFENSU.java index eea2287d6..188b919e6 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFENSU.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFENSU.java @@ -1,9 +1,16 @@ package com.hbm.tileentity.machine.storage; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + import com.hbm.lib.Library; import api.hbm.energy.IEnergyConductor; import api.hbm.energy.IEnergyConnector; +import api.hbm.energy.IPowerNet; +import api.hbm.energy.PowerNet; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.nbt.NBTTagCompound; @@ -28,7 +35,7 @@ public class TileEntityMachineFENSU extends TileEntityMachineBattery { power = Library.chargeItemsFromTE(slots, 1, power, getMaxPower()); ////////////////////////////////////////////////////////////////////// - this.transmitPowerFairly(); + this.transmitPower(); ////////////////////////////////////////////////////////////////////// byte comp = this.getComparatorPower(); @@ -71,54 +78,61 @@ public class TileEntityMachineFENSU extends TileEntityMachineBattery { short mode = (short) this.getRelevantMode(); - ForgeDirection dir = ForgeDirection.DOWN; + //HasSets to we don'T have any duplicates + Set nets = new HashSet(); + Set consumers = new HashSet(); + + //iterate over all sides + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { - TileEntity te = worldObj.getTileEntity(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ); - - if(te instanceof IEnergyConductor) { - IEnergyConductor con = (IEnergyConductor) te; - - if(con.getPowerNet() != null && con.getPowerNet().isSubscribed(this)) - con.getPowerNet().unsubscribe(this); - } - - if(mode == 1 || mode == 2) { - if(te instanceof IEnergyConnector) { + TileEntity te = worldObj.getTileEntity(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ); + + //if it's a cable, buffer both the network and all subscribers of the net + if(te instanceof IEnergyConductor) { + IEnergyConductor con = (IEnergyConductor) te; + if(con.canConnect(dir.getOpposite()) && con.getPowerNet() != null) { + nets.add(con.getPowerNet()); + con.getPowerNet().unsubscribe(this); + consumers.addAll(con.getPowerNet().getSubscribers()); + } + + //if it's just a consumer, buffer it as a subscriber + } else if(te instanceof IEnergyConnector) { IEnergyConnector con = (IEnergyConnector) te; - - long max = maxTransfer; - long toTransfer = Math.min(max, this.power); - long remainder = this.power - toTransfer; - this.power = toTransfer; - - long oldPower = this.power; - long transfer = this.power - con.transferPower(this.power); - this.power = oldPower - transfer; - - power += remainder; - } - } - - if(te instanceof IEnergyConductor) { - IEnergyConductor con = (IEnergyConductor) te; - - if(con.getPowerNet() != null) { - if(mode == 2 || mode == 3) { - if(con.getPowerNet().isSubscribed(this)) { - con.getPowerNet().unsubscribe(this); - } - } else if(!con.getPowerNet().isSubscribed(this)) { - con.getPowerNet().subscribe(this); + if(con.canConnect(dir.getOpposite())) { + consumers.add((IEnergyConnector) te); } } } + + //send power to buffered consumers, independent of nets + if(this.power > 0 && (mode == mode_buffer || mode == mode_output)) { + List con = new ArrayList(); + con.addAll(consumers); + + if(PowerNet.trackingInstances == null) { + PowerNet.trackingInstances = new ArrayList(); + } + PowerNet.trackingInstances.clear(); + + nets.forEach(x -> { + if(x instanceof PowerNet) PowerNet.trackingInstances.add((PowerNet) x); + }); + + long toSend = Math.min(this.power, maxTransfer); + long powerRemaining = this.power - toSend; + this.power = PowerNet.fairTransfer(con, toSend) + powerRemaining; + } + + //resubscribe to buffered nets, if necessary + if(mode == mode_buffer || mode == mode_input) { + nets.forEach(x -> x.subscribe(this)); + } } @Override public long getPowerRemainingScaled(long i) { - double powerScaled = (double)power / (double)getMaxPower(); - return (long)(i * powerScaled); } diff --git a/src/main/java/com/hbm/world/feature/BiomeCave.java b/src/main/java/com/hbm/world/feature/BiomeCave.java index f1beb0d10..1dc57bd73 100644 --- a/src/main/java/com/hbm/world/feature/BiomeCave.java +++ b/src/main/java/com/hbm/world/feature/BiomeCave.java @@ -3,6 +3,7 @@ package com.hbm.world.feature; import java.util.Random; import com.hbm.blocks.BlockEnums.EnumBiomeType; +import com.hbm.world.generator.DungeonToolbox; import com.hbm.blocks.ModBlocks; import cpw.mods.fml.common.eventhandler.SubscribeEvent; @@ -13,7 +14,7 @@ import net.minecraft.world.biome.BiomeGenBase.TempCategory; import net.minecraft.world.gen.NoiseGeneratorPerlin; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.event.terraingen.PopulateChunkEvent; +import net.minecraftforge.event.terraingen.DecorateBiomeEvent; public class BiomeCave { @@ -52,7 +53,7 @@ public class BiomeCave { } @SubscribeEvent - public void onDecorate(PopulateChunkEvent.Pre event) { + public void onDecorate(DecorateBiomeEvent.Pre event) { World world = event.world; @@ -95,7 +96,7 @@ public class BiomeCave { private static void handleBiome(World world, int x, int y, int z, EnumBiomeType type) { Block target = world.getBlock(x, y, z); - if(target.isNormalCube()) { + if(target.isNormalCube() && DungeonToolbox.allowedToReplace(target)) { boolean shouldGen = false; diff --git a/src/main/java/com/hbm/world/feature/DeepLayer.java b/src/main/java/com/hbm/world/feature/DeepLayer.java index 685fdb7eb..69216034d 100644 --- a/src/main/java/com/hbm/world/feature/DeepLayer.java +++ b/src/main/java/com/hbm/world/feature/DeepLayer.java @@ -3,22 +3,22 @@ package com.hbm.world.feature; import java.util.Random; import com.hbm.blocks.ModBlocks; +import com.hbm.world.generator.DungeonToolbox; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import net.minecraft.block.Block; import net.minecraft.block.material.Material; -import net.minecraft.init.Blocks; import net.minecraft.world.World; import net.minecraft.world.gen.NoiseGeneratorPerlin; import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.event.terraingen.PopulateChunkEvent; +import net.minecraftforge.event.terraingen.DecorateBiomeEvent; public class DeepLayer { NoiseGeneratorPerlin noise; @SubscribeEvent - public void onDecorate(PopulateChunkEvent.Pre event) { + public void onDecorate(DecorateBiomeEvent.Pre event) { World world = event.world; if(world.provider == null || world.provider.dimensionId != 0) return; @@ -51,7 +51,7 @@ public class DeepLayer { Block target = world.getBlock(x, y, z); - if(target.isNormalCube() && target.getMaterial() == Material.rock && target != Blocks.bedrock) { + if(target.isNormalCube() && target.getMaterial() == Material.rock && DungeonToolbox.allowedToReplace(target)) { boolean lava = false; diff --git a/src/main/java/com/hbm/world/feature/OreCave.java b/src/main/java/com/hbm/world/feature/OreCave.java index 49ae81a9b..7f879866b 100644 --- a/src/main/java/com/hbm/world/feature/OreCave.java +++ b/src/main/java/com/hbm/world/feature/OreCave.java @@ -5,6 +5,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockStalagmite; import com.hbm.inventory.RecipesCommon.MetaBlock; +import com.hbm.world.generator.DungeonToolbox; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import net.minecraft.block.Block; @@ -13,7 +14,7 @@ import net.minecraft.world.World; import net.minecraft.world.gen.NoiseGeneratorPerlin; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.event.terraingen.PopulateChunkEvent; +import net.minecraftforge.event.terraingen.DecorateBiomeEvent; public class OreCave { @@ -71,7 +72,7 @@ public class OreCave { @SuppressWarnings("incomplete-switch") @SubscribeEvent - public void onDecorate(PopulateChunkEvent.Pre event) { + public void onDecorate(DecorateBiomeEvent.Pre event) { World world = event.world; @@ -103,7 +104,7 @@ public class OreCave { for(int y = yLevel - range; y <= yLevel + range; y++) { Block genTarget = world.getBlock(x, y, z); - if(genTarget.isNormalCube() && (genTarget.getMaterial() == Material.rock || genTarget.getMaterial() == Material.ground)) { + if(genTarget.isNormalCube() && (genTarget.getMaterial() == Material.rock || genTarget.getMaterial() == Material.ground) && DungeonToolbox.allowedToReplace(genTarget)) { boolean shouldGen = false; boolean canGenFluid = event.rand.nextBoolean(); diff --git a/src/main/java/com/hbm/world/feature/OreLayer.java b/src/main/java/com/hbm/world/feature/OreLayer.java index 8e658cb65..aacf1c416 100644 --- a/src/main/java/com/hbm/world/feature/OreLayer.java +++ b/src/main/java/com/hbm/world/feature/OreLayer.java @@ -3,6 +3,7 @@ package com.hbm.world.feature; import java.util.Random; import com.hbm.inventory.RecipesCommon.MetaBlock; +import com.hbm.world.generator.DungeonToolbox; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import net.minecraft.block.Block; @@ -10,7 +11,7 @@ import net.minecraft.init.Blocks; import net.minecraft.world.World; import net.minecraft.world.gen.NoiseGeneratorPerlin; import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.terraingen.PopulateChunkEvent; +import net.minecraftforge.event.terraingen.DecorateBiomeEvent; public class OreLayer { @@ -65,7 +66,7 @@ public class OreLayer { } @SubscribeEvent - public void onDecorate(PopulateChunkEvent.Pre event) { + public void onDecorate(DecorateBiomeEvent.Pre event) { World world = event.world; @@ -99,7 +100,7 @@ public class OreLayer { if(event.rand.nextFloat() < density) { Block genTarget = world.getBlock(x, y, z); - if(genTarget.isReplaceableOreGen(world, x, y, z, target)) { + if(genTarget.isReplaceableOreGen(world, x, y, z, target) && DungeonToolbox.allowedToReplace(genTarget)) { world.setBlock(x, y, z, ore.block, ore.meta, 2); } } diff --git a/src/main/java/com/hbm/world/feature/OreLayer3D.java b/src/main/java/com/hbm/world/feature/OreLayer3D.java index 08650db8e..50fba58b3 100644 --- a/src/main/java/com/hbm/world/feature/OreLayer3D.java +++ b/src/main/java/com/hbm/world/feature/OreLayer3D.java @@ -2,13 +2,15 @@ package com.hbm.world.feature; import java.util.Random; +import com.hbm.world.generator.DungeonToolbox; + import cpw.mods.fml.common.eventhandler.SubscribeEvent; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.world.World; import net.minecraft.world.gen.NoiseGeneratorPerlin; import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.terraingen.PopulateChunkEvent; +import net.minecraftforge.event.terraingen.DecorateBiomeEvent; public class OreLayer3D { @@ -51,7 +53,7 @@ public class OreLayer3D { } @SubscribeEvent - public void onDecorate(PopulateChunkEvent.Pre event) { + public void onDecorate(DecorateBiomeEvent.Pre event) { World world = event.world; @@ -74,7 +76,7 @@ public class OreLayer3D { if(nX * nY * nZ > threshold) { Block target = world.getBlock(x, y, z); - if(target.isNormalCube() && target.getMaterial() == Material.rock) { + if(target.isNormalCube() && target.getMaterial() == Material.rock && DungeonToolbox.allowedToReplace(target)) { world.setBlock(x, y, z, block, meta, 2); } } diff --git a/src/main/java/com/hbm/world/feature/SchistStratum.java b/src/main/java/com/hbm/world/feature/SchistStratum.java index 28d5d6fe2..d83ec528e 100644 --- a/src/main/java/com/hbm/world/feature/SchistStratum.java +++ b/src/main/java/com/hbm/world/feature/SchistStratum.java @@ -3,20 +3,21 @@ package com.hbm.world.feature; import java.util.Random; import com.hbm.blocks.ModBlocks; +import com.hbm.world.generator.DungeonToolbox; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.world.World; import net.minecraft.world.gen.NoiseGeneratorPerlin; -import net.minecraftforge.event.terraingen.PopulateChunkEvent; +import net.minecraftforge.event.terraingen.DecorateBiomeEvent; public class SchistStratum { NoiseGeneratorPerlin noise; @SubscribeEvent - public void onDecorate(PopulateChunkEvent.Pre event) { + public void onDecorate(DecorateBiomeEvent.Pre event) { if(this.noise == null) { this.noise = new NoiseGeneratorPerlin(new Random(event.world.getSeed()), 4); @@ -51,7 +52,7 @@ public class SchistStratum { Block target = world.getBlock(x, y, z); - if(target.isNormalCube() && target.getMaterial() == Material.rock) { + if(target.isNormalCube() && target.getMaterial() == Material.rock && DungeonToolbox.allowedToReplace(target)) { world.setBlock(x, y, z, ModBlocks.stone_gneiss, 0, 2); } } diff --git a/src/main/java/com/hbm/world/generator/DungeonToolbox.java b/src/main/java/com/hbm/world/generator/DungeonToolbox.java index 7e0a899f9..b5ab4499c 100644 --- a/src/main/java/com/hbm/world/generator/DungeonToolbox.java +++ b/src/main/java/com/hbm/world/generator/DungeonToolbox.java @@ -94,4 +94,12 @@ public class DungeonToolbox { genFlowers.func_150550_a(flower, meta); genFlowers.generate(world, rand, x, y, z); } + + public static boolean allowedToReplace(Block block) { + + if(block == Blocks.end_portal_frame) return false; + if(block == Blocks.bedrock) return false; + + return true; + } } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 2e712ef87..17f3b4acd 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -2523,7 +2523,6 @@ item.oil_detector.bullseye=Ölvorkommen direkt untertage! item.oil_detector.detected=Ölvorkommen in der Nähe! item.oil_detector.noOil=Kein Öl gefunden. item.oil_tar.coal.name=Kohleteer -item.oil_tar.name=Ölteer item.oil_tar.crude.name=Erdölteer item.oil_tar.crack.name=Crackölteer item.oil_tar.paraffin.name=Paraffinwachs @@ -2533,6 +2532,7 @@ item.ore.asbestos=Asbest item.ore.borax=Borax item.ore.chlorocalcite=Chlorokalzit item.ore.copper=Kupfer +item.ore.fluorite=Fluorit item.ore.gold=Gold item.ore.iron=Eisen item.ore.niobium=Niob @@ -4011,6 +4011,8 @@ tile.machine_condenser.name=Dampfkondensierer tile.machine_controller.name=Reaktorfernsteuerung tile.machine_converter_he_rf.name=HE zu RF Konverter tile.machine_converter_rf_he.name=RF zu HE Konverter +tile.machine_conveyor_press.name=Förderband-Presse +tile.machine_conveyor_press.desc=Band bewegt sich von links nach rechts$Rechtsclick um Stempel zu montieren$Stempel kann mit Schraubenzieher entfernt werden tile.machine_crucible.name=Schmelztiegel tile.machine_crystallizer.name=Erzauflöser tile.machine_cyclotron.name=Zyklotron diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index cfa60dba7..56215f8d7 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -3291,6 +3291,7 @@ item.ore.asbestos=Asbestos item.ore.borax=Borax item.ore.chlorocalcite=Chlorocalcite item.ore.copper=Copper +item.ore.fluorite=Fluorite item.ore.gold=Gold item.ore.iron=Iron item.ore.niobium=Niobium @@ -4986,6 +4987,8 @@ tile.machine_condenser.name=Steam Condenser tile.machine_controller.name=Reactor Remote Control Block tile.machine_converter_he_rf.name=HE to RF Converter tile.machine_converter_rf_he.name=RF to HE Converter +tile.machine_conveyor_press.name=Conveyor Press +tile.machine_conveyor_press.desc=Conveyor moves left to right$Right click stamp to install$Use screwdriver to remove stamp tile.machine_crucible.name=Crucible tile.machine_crystallizer.name=Ore Acidizer tile.machine_cyclotron.name=Cyclotron diff --git a/src/main/resources/assets/hbm/models/machines/conveyor_press.obj b/src/main/resources/assets/hbm/models/machines/conveyor_press.obj new file mode 100644 index 000000000..0fca31982 --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/conveyor_press.obj @@ -0,0 +1,1042 @@ +# Blender v2.79 (sub 0) OBJ File: 'conveyor_press.blend' +# www.blender.org +o Belt +v -0.500000 1.000000 0.500000 +v -0.500000 1.000000 -0.500000 +v 0.500000 1.000000 0.500000 +v 0.500000 1.000000 -0.500000 +v 0.500000 1.250000 0.500000 +v -0.500000 1.250000 0.500000 +v 0.500000 1.250000 -0.500000 +v -0.500000 1.250000 -0.500000 +vt -0.000000 0.953125 +vt 1.000000 0.937500 +vt 1.000000 0.953125 +vt 1.000000 0.937500 +vt 0.000000 0.953125 +vt 0.000000 0.937500 +vt 0.000000 1.000000 +vt 1.000000 0.937500 +vt 1.000000 1.000000 +vt -0.000000 0.937500 +vt 1.000000 0.953125 +vt 0.000000 0.937500 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +s off +f 2/1/1 7/2/1 4/3/1 +f 3/4/2 6/5/2 1/6/2 +f 8/7/3 5/8/3 7/9/3 +f 2/1/1 8/10/1 7/2/1 +f 3/4/2 5/11/2 6/5/2 +f 8/7/3 6/12/3 5/8/3 +o Piston +v -0.250000 2.125000 -0.250000 +v -0.250000 2.125000 0.250000 +v 0.250000 2.125000 0.250000 +v 0.250000 2.125000 -0.250000 +v -0.250000 2.000000 -0.250000 +v -0.250000 2.000000 0.250000 +v 0.250000 2.000000 0.250000 +v 0.250000 2.000000 -0.250000 +v -0.187500 2.125000 0.187500 +v 0.187500 2.125000 0.187500 +v -0.187500 2.125000 -0.187500 +v 0.187500 2.125000 -0.187500 +v -0.187500 2.875000 0.187500 +v 0.187500 2.875000 0.187500 +v -0.187500 2.875000 -0.187500 +v 0.187500 2.875000 -0.187500 +vt 0.553571 0.528846 +vt 0.428571 0.519231 +vt 0.571429 0.519231 +vt 0.571429 0.423077 +vt 0.428571 0.500000 +vt 0.428571 0.423077 +vt 0.571429 0.500000 +vt 0.428571 0.519231 +vt 0.571429 0.500000 +vt 0.571429 0.519231 +vt 0.428571 0.519231 +vt 0.571429 0.500000 +vt 0.571429 0.519231 +vt 0.428571 0.519231 +vt 0.571429 0.500000 +vt 0.571429 0.519231 +vt 0.553571 0.644231 +vt 0.446429 0.528846 +vt 0.553571 0.528846 +vt 0.553571 0.644231 +vt 0.446429 0.528846 +vt 0.553571 0.528846 +vt 0.553571 0.644231 +vt 0.446429 0.528846 +vt 0.553571 0.644231 +vt 0.446429 0.528846 +vt 0.553571 0.528846 +vt 0.428571 0.500000 +vt 0.428571 0.500000 +vt 0.428571 0.500000 +vt 0.446429 0.644231 +vt 0.446429 0.644231 +vt 0.446429 0.644231 +vt 0.446429 0.644231 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +s off +f 20/13/4 11/14/4 12/15/4 +f 13/16/5 15/17/5 14/18/5 +f 11/14/6 16/19/6 12/15/6 +f 9/20/7 14/21/7 10/22/7 +f 12/23/8 13/24/8 9/25/8 +f 10/26/9 15/27/9 11/28/9 +f 23/29/8 20/30/8 19/31/8 +f 22/32/9 17/33/9 18/34/9 +f 24/35/6 18/36/6 20/13/6 +f 21/37/7 19/38/7 17/39/7 +f 19/31/4 12/23/4 9/25/4 +f 17/39/4 9/20/4 10/22/4 +f 18/34/4 10/26/4 11/28/4 +f 20/13/4 18/36/4 11/14/4 +f 13/16/5 16/19/5 15/17/5 +f 11/14/6 15/17/6 16/19/6 +f 9/20/7 13/40/7 14/21/7 +f 12/23/8 16/41/8 13/24/8 +f 10/26/9 14/42/9 15/27/9 +f 23/29/8 24/43/8 20/30/8 +f 22/32/9 21/44/9 17/33/9 +f 24/35/6 22/45/6 18/36/6 +f 21/37/7 23/46/7 19/38/7 +f 19/31/4 20/30/4 12/23/4 +f 17/39/4 19/38/4 9/20/4 +f 18/34/4 17/33/4 10/26/4 +o Press +v -0.500000 0.000000 0.500000 +v -0.500000 1.000000 0.500000 +v -0.500000 0.000000 -0.500000 +v -0.500000 1.000000 -0.500000 +v 0.500000 0.000000 0.500000 +v 0.500000 1.000000 0.500000 +v 0.500000 0.000000 -0.500000 +v 0.500000 1.000000 -0.500000 +v -0.500000 0.000000 0.375000 +v -0.500000 0.875000 0.375000 +v 0.500000 0.000000 0.375000 +v 0.500000 0.875000 0.375000 +v -0.500000 0.000000 -0.375000 +v -0.500000 0.875000 -0.375000 +v 0.500000 0.000000 -0.375000 +v 0.500000 0.875000 -0.375000 +v 0.375000 0.000000 0.500000 +v 0.375000 0.875000 0.500000 +v 0.375000 0.000000 -0.500000 +v 0.375000 0.875000 -0.500000 +v -0.375000 0.000000 0.500000 +v -0.375000 0.875000 0.500000 +v -0.375000 0.000000 -0.500000 +v -0.375000 0.875000 -0.500000 +v -0.437500 0.000000 0.375000 +v -0.437500 0.875000 0.375000 +v -0.437500 0.875000 -0.375000 +v -0.437500 0.000000 -0.375000 +v 0.375000 0.000000 0.437500 +v -0.375000 0.000000 0.437500 +v -0.375000 0.875000 0.437500 +v 0.375000 0.875000 0.437500 +v 0.437500 0.000000 0.375000 +v 0.437500 0.875000 0.375000 +v 0.437500 0.875000 -0.375000 +v 0.437500 0.000000 -0.375000 +v 0.375000 0.000000 -0.437500 +v -0.375000 0.000000 -0.437500 +v -0.375000 0.875000 -0.437500 +v 0.375000 0.875000 -0.437500 +v 0.500000 1.250000 0.500000 +v -0.500000 1.250000 0.500000 +v 0.500000 1.250000 -0.500000 +v -0.500000 1.250000 -0.500000 +v -0.375000 2.000000 0.375000 +v 0.375000 2.000000 0.375000 +v -0.375000 2.000000 -0.375000 +v 0.375000 2.000000 -0.375000 +v -0.375000 3.000000 -0.375000 +v -0.375000 3.000000 0.375000 +v 0.375000 3.000000 0.375000 +v 0.375000 3.000000 -0.375000 +v -0.250000 2.000000 0.250000 +v 0.250000 2.000000 0.250000 +v -0.250000 2.000000 -0.250000 +v 0.250000 2.000000 -0.250000 +v -0.250000 2.125000 -0.250000 +v -0.250000 2.125000 0.250000 +v 0.250000 2.125000 0.250000 +v 0.250000 2.125000 -0.250000 +v 0.625000 0.000000 0.500000 +v 0.625000 0.000000 0.375000 +v 0.750000 0.000000 0.500000 +v 0.750000 0.000000 0.375000 +v 0.625000 2.250000 0.500000 +v 0.625000 2.250000 0.375000 +v 0.750000 2.250000 0.500000 +v 0.750000 2.250000 0.375000 +v -0.750000 0.000000 0.500000 +v -0.750000 0.000000 0.375000 +v -0.625000 0.000000 0.500000 +v -0.625000 0.000000 0.375000 +v -0.750000 2.250000 0.500000 +v -0.750000 2.250000 0.375000 +v -0.625000 2.250000 0.500000 +v -0.625000 2.250000 0.375000 +v -0.500000 2.500000 0.375000 +v 0.500000 2.500000 0.375000 +v -0.500000 2.375000 0.375000 +v 0.500000 2.375000 0.375000 +v -0.500000 2.500000 0.500000 +v 0.500000 2.500000 0.500000 +v -0.500000 2.375000 0.500000 +v 0.500000 2.375000 0.500000 +v 0.625000 0.000000 -0.375000 +v 0.625000 0.000000 -0.500000 +v 0.750000 0.000000 -0.375000 +v 0.750000 0.000000 -0.500000 +v 0.625000 2.250000 -0.375000 +v 0.625000 2.250000 -0.500000 +v 0.750000 2.250000 -0.375000 +v 0.750000 2.250000 -0.500000 +v -0.750000 0.000000 -0.375000 +v -0.750000 0.000000 -0.500000 +v -0.625000 0.000000 -0.375000 +v -0.625000 0.000000 -0.500000 +v -0.750000 2.250000 -0.375000 +v -0.750000 2.250000 -0.500000 +v -0.625000 2.250000 -0.375000 +v -0.625000 2.250000 -0.500000 +v -0.500000 2.500000 -0.500000 +v 0.500000 2.500000 -0.500000 +v -0.500000 2.375000 -0.500000 +v 0.500000 2.375000 -0.500000 +v -0.500000 2.500000 -0.375000 +v 0.500000 2.500000 -0.375000 +v -0.500000 2.375000 -0.375000 +v 0.500000 2.375000 -0.375000 +v -0.250000 2.500000 0.375000 +v 0.250000 2.500000 0.375000 +v -0.250000 2.750000 0.375000 +v 0.250000 2.750000 0.375000 +v -0.250000 2.750000 0.437500 +v -0.250000 2.500000 0.437500 +v 0.250000 2.500000 0.437500 +v 0.250000 2.750000 0.437500 +v -0.250000 2.500000 -0.437500 +v 0.250000 2.500000 -0.437500 +v -0.250000 2.750000 -0.437500 +v 0.250000 2.750000 -0.437500 +v -0.250000 2.750000 -0.375000 +v -0.250000 2.500000 -0.375000 +v 0.250000 2.500000 -0.375000 +v 0.250000 2.750000 -0.375000 +v 0.500000 0.687500 0.187500 +v 0.500000 0.312500 0.187500 +v 0.500000 0.687500 -0.187500 +v 0.500000 0.312500 -0.187500 +v 0.437500 0.687500 -0.187500 +v 0.437500 0.687500 0.187500 +v 0.437500 0.312500 0.187500 +v 0.437500 0.312500 -0.187500 +v -0.500000 0.687500 -0.187500 +v -0.500000 0.312500 -0.187500 +v -0.500000 0.687500 0.187500 +v -0.500000 0.312500 0.187500 +v -0.437500 0.687500 0.187500 +v -0.437500 0.687500 -0.187500 +v -0.437500 0.312500 -0.187500 +v -0.437500 0.312500 0.187500 +v 0.187500 0.687500 -0.500000 +v 0.187500 0.312500 -0.500000 +v -0.187500 0.687500 -0.500000 +v -0.187500 0.312500 -0.500000 +v -0.187500 0.687500 -0.437500 +v 0.187500 0.687500 -0.437500 +v 0.187500 0.312500 -0.437500 +v -0.187500 0.312500 -0.437500 +v -0.187500 0.687500 0.500000 +v -0.187500 0.312500 0.500000 +v 0.187500 0.687500 0.500000 +v 0.187500 0.312500 0.500000 +v 0.187500 0.687500 0.437500 +v -0.187500 0.687500 0.437500 +v -0.187500 0.312500 0.437500 +v 0.187500 0.312500 0.437500 +v 0.500000 0.093750 0.468750 +v 0.500000 0.031250 0.468750 +v 0.500000 0.093750 0.406250 +v 0.500000 0.031250 0.406250 +v 0.625000 0.093750 0.468750 +v 0.625000 0.031250 0.468750 +v 0.625000 0.093750 0.406250 +v 0.625000 0.031250 0.406250 +v 0.500000 0.968750 0.468750 +v 0.500000 0.906250 0.468750 +v 0.500000 0.968750 0.406250 +v 0.500000 0.906250 0.406250 +v 0.625000 0.968750 0.468750 +v 0.625000 0.906250 0.468750 +v 0.625000 0.968750 0.406250 +v 0.625000 0.906250 0.406250 +v 0.500000 0.093750 -0.406250 +v 0.500000 0.031250 -0.406250 +v 0.500000 0.093750 -0.468750 +v 0.500000 0.031250 -0.468750 +v 0.625000 0.093750 -0.406250 +v 0.625000 0.031250 -0.406250 +v 0.625000 0.093750 -0.468750 +v 0.625000 0.031250 -0.468750 +v 0.500000 0.968750 -0.406250 +v 0.500000 0.906250 -0.406250 +v 0.500000 0.968750 -0.468750 +v 0.500000 0.906250 -0.468750 +v 0.625000 0.968750 -0.406250 +v 0.625000 0.906250 -0.406250 +v 0.625000 0.968750 -0.468750 +v 0.625000 0.906250 -0.468750 +v -0.625000 0.093750 0.468750 +v -0.625000 0.031250 0.468750 +v -0.625000 0.093750 0.406250 +v -0.625000 0.031250 0.406250 +v -0.500000 0.093750 0.468750 +v -0.500000 0.031250 0.468750 +v -0.500000 0.093750 0.406250 +v -0.500000 0.031250 0.406250 +v -0.625000 0.968750 0.468750 +v -0.625000 0.906250 0.468750 +v -0.625000 0.968750 0.406250 +v -0.625000 0.906250 0.406250 +v -0.500000 0.968750 0.468750 +v -0.500000 0.906250 0.468750 +v -0.500000 0.968750 0.406250 +v -0.500000 0.906250 0.406250 +v -0.625000 0.093750 -0.406250 +v -0.625000 0.031250 -0.406250 +v -0.625000 0.093750 -0.468750 +v -0.625000 0.031250 -0.468750 +v -0.500000 0.093750 -0.406250 +v -0.500000 0.031250 -0.406250 +v -0.500000 0.093750 -0.468750 +v -0.500000 0.031250 -0.468750 +v -0.625000 0.968750 -0.406250 +v -0.625000 0.906250 -0.406250 +v -0.625000 0.968750 -0.468750 +v -0.625000 0.906250 -0.468750 +v -0.500000 0.968750 -0.406250 +v -0.500000 0.906250 -0.406250 +v -0.500000 0.968750 -0.468750 +v -0.500000 0.906250 -0.468750 +vt 0.285714 -0.000000 +vt 0.321429 0.134615 +vt 0.285714 0.153846 +vt 0.285714 -0.000000 +vt 0.321429 0.134615 +vt 0.285714 0.153846 +vt 0.571429 -0.000000 +vt 0.535714 0.134615 +vt 0.535714 -0.000000 +vt 0.285714 -0.000000 +vt 0.321429 0.134615 +vt 0.285714 0.153846 +vt 0.535714 0.134615 +vt 0.571429 -0.000000 +vt 0.571429 0.153846 +vt 0.571429 -0.000000 +vt 0.535714 0.134615 +vt 0.535714 -0.000000 +vt 0.285714 -0.000000 +vt 0.321429 0.134615 +vt 0.285714 0.153846 +vt 0.571429 -0.000000 +vt 0.535714 0.134615 +vt 0.535714 -0.000000 +vt 0.571429 0.153846 +vt 0.571429 0.153846 +vt 0.571429 0.153846 +vt 0.714286 0.230769 +vt 0.428571 0.269231 +vt 0.428571 0.230769 +vt 0.803571 0.134615 +vt 0.589286 0.000000 +vt 0.803571 0.000000 +vt 0.821429 0.000000 +vt 0.821429 0.134615 +vt 0.589286 0.134615 +vt 0.803571 0.144231 +vt 0.589286 0.144231 +vt 0.571429 0.134615 +vt 0.571429 0.000000 +vt 0.714286 0.230769 +vt 0.428571 0.269231 +vt 0.428571 0.230769 +vt 0.803571 0.134615 +vt 0.589286 0.000000 +vt 0.803571 0.000000 +vt 0.571429 0.000000 +vt 0.589286 0.134615 +vt 0.571429 0.134615 +vt 0.589286 0.144231 +vt 0.803571 0.144231 +vt 0.821429 0.134615 +vt 0.821429 0.000000 +vt 0.803571 0.000000 +vt 0.589286 0.134615 +vt 0.589286 0.000000 +vt 0.571429 0.000000 +vt 0.571429 0.134615 +vt 0.589286 0.144231 +vt 0.803571 0.134615 +vt 0.803571 0.144231 +vt 0.821429 0.134615 +vt 0.821429 0.000000 +vt 0.803571 0.000000 +vt 0.589286 0.134615 +vt 0.589286 0.000000 +vt 0.017857 0.019231 +vt 0.250000 0.009615 +vt 0.267857 0.019231 +vt 0.803571 0.134615 +vt 0.821429 0.000000 +vt 0.821429 0.134615 +vt 0.803571 0.144231 +vt 0.589286 0.144231 +vt 0.571429 0.134615 +vt 0.571429 0.000000 +vt 0.214286 0.153846 +vt 0.250000 0.250000 +vt 0.214286 0.269231 +vt 0.214286 0.423077 +vt 0.428571 0.538462 +vt 0.214286 0.538462 +vt 0.428571 0.269231 +vt 0.857143 0.269231 +vt 0.642857 0.423077 +vt 0.642857 0.269231 +vt 0.428571 0.423077 +vt 0.000000 0.423077 +vt 0.000000 0.269231 +vt 0.142857 0.250000 +vt -0.000000 0.269231 +vt -0.000000 0.250000 +vt 0.392857 0.250000 +vt 0.392857 0.173077 +vt 0.428571 0.153846 +vt 0.250000 0.173077 +vt 0.392857 0.173077 +vt 0.250000 0.250000 +vt 0.250000 0.173077 +vt 0.142857 0.250000 +vt -0.000000 0.269231 +vt -0.000000 0.250000 +vt 0.142857 0.250000 +vt -0.000000 0.269231 +vt -0.000000 0.250000 +vt 0.142857 0.250000 +vt -0.000000 0.269231 +vt -0.000000 0.250000 +vt 0.928571 0.019231 +vt 0.892857 0.000000 +vt 0.928571 0.000000 +vt 0.928571 0.634615 +vt 0.964286 0.586538 +vt 0.964286 0.625000 +vt 0.892857 0.019231 +vt 0.857143 0.365385 +vt 0.857143 0.019231 +vt 0.892857 0.365385 +vt 0.964286 0.019231 +vt 0.928571 0.365385 +vt 1.000000 0.019231 +vt 0.964286 0.365385 +vt 1.000000 0.586538 +vt 1.000000 0.625000 +vt 0.928571 1.000000 +vt 0.892857 0.980769 +vt 0.928571 0.980769 +vt 0.892857 0.423077 +vt 0.857143 0.375000 +vt 0.857143 0.980769 +vt 0.892857 0.634615 +vt 0.964286 0.980769 +vt 1.000000 0.634615 +vt 1.000000 0.980769 +vt 0.964286 0.634615 +vt 0.964286 0.423077 +vt 0.928571 0.576923 +vt 0.928571 0.423077 +vt 0.892857 0.576923 +vt 0.857143 0.423077 +vt 0.964286 0.375000 +vt 1.000000 0.576923 +vt 0.964286 0.576923 +vt 1.000000 0.625000 +vt 0.964286 0.586538 +vt 1.000000 0.586538 +vt 0.857143 0.586538 +vt 0.857143 0.625000 +vt 0.928571 0.019231 +vt 0.892857 0.000000 +vt 0.928571 0.000000 +vt 0.928571 0.634615 +vt 0.964286 0.586538 +vt 0.964286 0.625000 +vt 0.892857 0.019231 +vt 0.857143 0.365385 +vt 0.857143 0.019231 +vt 0.892857 0.365385 +vt 0.964286 0.019231 +vt 0.928571 0.365385 +vt 1.000000 0.019231 +vt 0.964286 0.365385 +vt 1.000000 0.586538 +vt 1.000000 0.625000 +vt 0.928571 1.000000 +vt 0.892857 0.980769 +vt 0.928571 0.980769 +vt 0.892857 0.423077 +vt 0.857143 0.375000 +vt 0.857143 0.980769 +vt 0.892857 0.634615 +vt 0.964286 0.980769 +vt 1.000000 0.634615 +vt 1.000000 0.980769 +vt 0.964286 0.634615 +vt 0.964286 0.423077 +vt 0.928571 0.576923 +vt 0.928571 0.423077 +vt 0.892857 0.576923 +vt 0.857143 0.423077 +vt 0.964286 0.375000 +vt 1.000000 0.576923 +vt 0.964286 0.576923 +vt 1.000000 0.413462 +vt 1.000000 0.375000 +vt 0.857143 0.586538 +vt 0.857143 0.625000 +vt 0.446429 0.192308 +vt 0.428571 0.153846 +vt 0.446429 0.153846 +vt 0.589286 0.153846 +vt 0.446429 0.192308 +vt 0.446429 0.153846 +vt 0.446429 0.201923 +vt 0.589286 0.192308 +vt 0.589286 0.201923 +vt 0.589286 0.192308 +vt 0.446429 0.201923 +vt 0.607143 0.192308 +vt 0.607143 0.153846 +vt 0.428571 0.153846 +vt 0.428571 0.192308 +vt 0.589286 0.153846 +vt 0.607143 0.192308 +vt 0.017857 0.163462 +vt 0.125000 0.221154 +vt 0.017857 0.221154 +vt 0.017857 0.163462 +vt 0.125000 0.221154 +vt 0.017857 0.221154 +vt 0.125000 0.163462 +vt 0.142857 0.221154 +vt -0.000000 0.163462 +vt 0.125000 0.153846 +vt 0.017857 0.230769 +vt 0.125000 0.163462 +vt 0.142857 0.221154 +vt -0.000000 0.163462 +vt 0.125000 0.153846 +vt 0.017857 0.230769 +vt 0.017857 0.163462 +vt 0.125000 0.221154 +vt 0.017857 0.221154 +vt 0.017857 0.163462 +vt 0.125000 0.221154 +vt 0.017857 0.221154 +vt 0.125000 0.163462 +vt 0.142857 0.221154 +vt -0.000000 0.163462 +vt 0.125000 0.153846 +vt 0.017857 0.230769 +vt 0.125000 0.163462 +vt 0.142857 0.221154 +vt -0.000000 0.163462 +vt 0.125000 0.153846 +vt 0.017857 0.230769 +vt 0.053571 0.423077 +vt 0.071429 0.442308 +vt 0.053571 0.442308 +vt 0.017857 0.423077 +vt 0.035714 0.442308 +vt 0.017857 0.442308 +vt -0.000000 0.423077 +vt -0.000000 0.442308 +vt 0.035714 0.423077 +vt 0.053571 0.423077 +vt 0.071429 0.442308 +vt 0.053571 0.442308 +vt 0.017857 0.423077 +vt 0.035714 0.442308 +vt 0.017857 0.442308 +vt -0.000000 0.423077 +vt -0.000000 0.442308 +vt 0.035714 0.423077 +vt 0.053571 0.423077 +vt 0.071429 0.442308 +vt 0.053571 0.442308 +vt 0.017857 0.423077 +vt 0.035714 0.442308 +vt 0.017857 0.442308 +vt -0.000000 0.423077 +vt -0.000000 0.442308 +vt 0.035714 0.423077 +vt 0.053571 0.423077 +vt 0.071429 0.442308 +vt 0.053571 0.442308 +vt 0.017857 0.423077 +vt 0.035714 0.442308 +vt 0.017857 0.442308 +vt -0.000000 0.423077 +vt -0.000000 0.442308 +vt 0.035714 0.423077 +vt 0.053571 0.423077 +vt 0.071429 0.442308 +vt 0.053571 0.442308 +vt 0.017857 0.423077 +vt 0.035714 0.442308 +vt 0.017857 0.442308 +vt -0.000000 0.423077 +vt -0.000000 0.442308 +vt 0.035714 0.423077 +vt 0.053571 0.423077 +vt 0.071429 0.442308 +vt 0.053571 0.442308 +vt 0.017857 0.423077 +vt 0.035714 0.442308 +vt 0.017857 0.442308 +vt -0.000000 0.423077 +vt -0.000000 0.442308 +vt 0.035714 0.423077 +vt 0.053571 0.423077 +vt 0.071429 0.442308 +vt 0.053571 0.442308 +vt 0.017857 0.423077 +vt 0.035714 0.442308 +vt 0.017857 0.442308 +vt -0.000000 0.423077 +vt -0.000000 0.442308 +vt 0.035714 0.423077 +vt 0.053571 0.423077 +vt 0.071429 0.442308 +vt 0.053571 0.442308 +vt 0.017857 0.423077 +vt 0.035714 0.442308 +vt 0.017857 0.442308 +vt -0.000000 0.423077 +vt -0.000000 0.442308 +vt 0.035714 0.423077 +vt 0.321429 -0.000000 +vt 0.321429 -0.000000 +vt 0.321429 -0.000000 +vt 0.535714 -0.000000 +vt 0.321429 -0.000000 +vt 0.714286 0.269231 +vt 0.714286 0.269231 +vt 0.035714 0.153846 +vt 0.000000 0.153846 +vt 0.035714 0.144231 +vt 0.000000 0.134615 +vt 0.017857 0.134615 +vt 0.000000 0.019231 +vt 0.000000 0.000000 +vt 0.250000 0.144231 +vt 0.285714 0.153846 +vt 0.250000 0.153846 +vt 0.035714 0.009615 +vt 0.035714 0.000000 +vt 0.267857 0.134615 +vt 0.285714 0.134615 +vt 0.285714 0.019231 +vt 0.250000 0.000000 +vt 0.857143 0.423077 +vt 0.142857 0.269231 +vt 0.392857 0.250000 +vt 0.142857 0.269231 +vt 0.142857 0.269231 +vt 0.142857 0.269231 +vt 1.000000 0.365385 +vt 0.892857 1.000000 +vt 0.857143 0.413462 +vt 0.857143 0.634615 +vt 0.857143 0.576923 +vt 0.964286 0.413462 +vt 1.000000 0.423077 +vt 0.964286 0.625000 +vt 1.000000 0.365385 +vt 0.892857 1.000000 +vt 0.857143 0.413462 +vt 0.857143 0.634615 +vt 0.857143 0.576923 +vt 0.964286 0.413462 +vt 1.000000 0.423077 +vt 0.428571 0.192308 +vt 0.589286 0.201923 +vt 0.607143 0.153846 +vt 0.142857 0.163462 +vt -0.000000 0.221154 +vt 0.017857 0.153846 +vt 0.125000 0.230769 +vt 0.142857 0.163462 +vt -0.000000 0.221154 +vt 0.017857 0.153846 +vt 0.125000 0.230769 +vt 0.142857 0.163462 +vt -0.000000 0.221154 +vt 0.017857 0.153846 +vt 0.125000 0.230769 +vt 0.142857 0.163462 +vt -0.000000 0.221154 +vt 0.017857 0.153846 +vt 0.125000 0.230769 +vt 0.071429 0.423077 +vt 0.071429 0.423077 +vt 0.071429 0.423077 +vt 0.071429 0.423077 +vt 0.071429 0.423077 +vt 0.071429 0.423077 +vt 0.071429 0.423077 +vt 0.071429 0.423077 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +s off +f 25/47/10 46/48/10 26/49/10 +f 27/50/11 38/51/11 28/52/11 +f 27/53/12 48/54/12 47/55/12 +f 31/56/12 44/57/12 32/58/12 +f 34/59/11 25/60/11 26/61/11 +f 29/62/10 42/63/10 41/64/10 +f 29/65/13 36/66/13 30/67/13 +f 31/68/13 40/69/13 39/70/13 +f 30/67/13 40/69/13 32/71/13 +f 26/49/10 42/63/10 30/72/10 +f 28/73/12 44/57/12 48/54/12 +f 28/52/11 34/59/11 26/61/11 +f 26/74/11 68/75/11 28/76/11 +f 50/77/11 52/78/11 49/79/11 +f 50/77/12 33/80/12 34/81/12 +f 51/82/14 34/83/14 38/84/14 +f 52/78/10 38/85/10 37/86/10 +f 32/87/13 65/88/13 30/89/13 +f 56/90/10 54/91/10 53/92/10 +f 45/93/13 55/94/13 46/95/13 +f 46/96/14 56/90/14 42/97/14 +f 42/98/11 53/92/11 41/99/11 +f 60/100/13 58/101/13 57/102/13 +f 35/103/12 58/101/12 36/104/12 +f 36/105/14 59/106/14 40/107/14 +f 40/108/10 60/100/10 39/109/10 +f 62/110/12 64/111/12 61/112/12 +f 61/113/14 57/114/14 53/115/14 +f 63/116/13 47/117/13 48/118/13 +f 64/111/14 48/119/14 44/120/14 +f 61/112/11 44/121/11 43/122/11 +f 69/123/14 78/124/14 70/125/14 +f 75/126/15 73/127/15 74/128/15 +f 72/129/13 75/126/13 70/125/13 +f 69/130/11 73/131/11 71/132/11 +f 71/132/12 76/133/12 72/129/12 +f 70/125/10 74/134/10 69/135/10 +f 80/136/10 81/137/10 79/138/10 +f 70/125/14 80/139/14 72/129/14 +f 72/129/14 79/140/14 71/141/14 +f 71/141/14 77/142/14 69/123/14 +f 81/143/14 83/144/14 82/145/14 +f 77/146/12 83/147/12 78/148/12 +f 78/149/11 84/150/11 80/151/11 +f 79/152/13 82/153/13 77/154/13 +f 88/155/14 85/156/14 86/157/14 +f 98/158/12 103/159/12 100/160/12 +f 87/161/10 89/162/10 85/163/10 +f 88/155/13 91/164/13 87/161/13 +f 86/165/12 92/166/12 88/155/12 +f 85/167/11 90/168/11 86/165/11 +f 100/160/16 107/169/16 99/170/16 +f 96/171/14 93/172/14 94/173/14 +f 106/174/10 89/175/10 91/164/10 +f 95/176/10 97/177/10 93/172/10 +f 96/178/13 99/179/13 95/180/13 +f 94/173/12 100/181/12 96/178/12 +f 93/172/11 98/158/11 94/173/11 +f 92/166/17 106/174/17 91/164/17 +f 104/182/12 101/183/12 102/184/12 +f 105/185/10 108/186/10 106/174/10 +f 90/187/12 102/184/12 92/166/12 +f 104/182/14 107/188/14 103/189/14 +f 108/190/18 90/191/18 89/192/18 +f 101/183/15 106/174/15 102/184/15 +f 97/177/19 101/183/19 98/158/19 +f 107/193/10 97/177/10 99/194/10 +f 112/195/14 109/196/14 110/197/14 +f 122/198/12 127/199/12 124/200/12 +f 111/201/10 113/202/10 109/203/10 +f 112/195/13 115/204/13 111/201/13 +f 110/205/12 116/206/12 112/195/12 +f 109/207/11 114/208/11 110/205/11 +f 124/200/16 131/209/16 123/210/16 +f 120/211/14 117/212/14 118/213/14 +f 130/214/10 113/215/10 115/204/10 +f 119/216/10 121/217/10 117/212/10 +f 120/218/13 123/219/13 119/220/13 +f 118/213/12 124/221/12 120/218/12 +f 117/212/11 122/198/11 118/213/11 +f 116/206/17 130/214/17 115/204/17 +f 128/222/12 125/223/12 126/224/12 +f 129/225/10 132/226/10 130/214/10 +f 114/227/12 126/224/12 116/206/12 +f 128/222/14 131/228/14 127/229/14 +f 132/230/18 114/227/18 113/231/18 +f 125/223/15 130/214/15 126/224/15 +f 121/217/19 125/223/19 122/198/19 +f 131/232/10 121/217/10 123/233/10 +f 144/234/13 147/235/13 142/236/13 +f 139/237/10 137/238/10 138/239/10 +f 135/240/15 140/241/15 136/242/15 +f 143/243/15 148/244/15 144/234/15 +f 136/245/13 139/237/13 134/246/13 +f 133/247/11 137/238/11 135/248/11 +f 141/249/11 145/250/11 143/243/11 +f 144/234/12 141/249/12 143/243/12 +f 150/251/13 151/252/13 149/253/13 +f 158/254/11 159/255/11 157/256/11 +f 152/257/12 153/258/12 151/252/12 +f 149/253/10 155/259/10 150/251/10 +f 150/251/14 156/260/14 152/257/14 +f 151/252/15 154/261/15 149/253/15 +f 160/262/10 161/263/10 159/255/10 +f 157/256/12 163/264/12 158/254/12 +f 158/254/14 164/265/14 160/262/14 +f 159/255/15 162/266/15 157/256/15 +f 166/267/12 167/268/12 165/269/12 +f 174/270/10 175/271/10 173/272/10 +f 168/273/11 169/274/11 167/268/11 +f 165/269/13 171/275/13 166/267/13 +f 166/267/14 172/276/14 168/273/14 +f 167/268/15 170/277/15 165/269/15 +f 176/278/13 177/279/13 175/271/13 +f 173/272/11 179/280/11 174/270/11 +f 174/270/14 180/281/14 176/278/14 +f 175/271/15 178/282/15 173/272/15 +f 187/283/12 184/284/12 183/285/12 +f 186/286/10 181/287/10 182/288/10 +f 188/289/14 182/288/14 184/290/14 +f 185/291/15 183/285/15 181/287/15 +f 195/292/12 192/293/12 191/294/12 +f 194/295/10 189/296/10 190/297/10 +f 196/298/14 190/297/14 192/299/14 +f 193/300/15 191/294/15 189/296/15 +f 203/301/12 200/302/12 199/303/12 +f 202/304/10 197/305/10 198/306/10 +f 204/307/14 198/306/14 200/308/14 +f 201/309/15 199/303/15 197/305/15 +f 211/310/12 208/311/12 207/312/12 +f 210/313/10 205/314/10 206/315/10 +f 212/316/14 206/315/14 208/317/14 +f 209/318/15 207/312/15 205/314/15 +f 219/319/12 216/320/12 215/321/12 +f 218/322/10 213/323/10 214/324/10 +f 220/325/14 214/324/14 216/326/14 +f 217/327/15 215/321/15 213/323/15 +f 227/328/12 224/329/12 223/330/12 +f 226/331/10 221/332/10 222/333/10 +f 228/334/14 222/333/14 224/335/14 +f 225/336/15 223/330/15 221/332/15 +f 235/337/12 232/338/12 231/339/12 +f 234/340/10 229/341/10 230/342/10 +f 236/343/14 230/342/14 232/344/14 +f 233/345/15 231/339/15 229/341/15 +f 243/346/12 240/347/12 239/348/12 +f 242/349/10 237/350/10 238/351/10 +f 244/352/14 238/351/14 240/353/14 +f 241/354/15 239/348/15 237/350/15 +f 25/47/10 45/355/10 46/48/10 +f 27/50/11 37/356/11 38/51/11 +f 27/53/12 28/73/12 48/54/12 +f 31/56/12 43/357/12 44/57/12 +f 34/59/11 33/358/11 25/60/11 +f 29/62/10 30/72/10 42/63/10 +f 29/65/13 35/359/13 36/66/13 +f 31/68/13 32/71/13 40/69/13 +f 30/67/13 36/66/13 40/69/13 +f 26/49/10 46/48/10 42/63/10 +f 28/73/12 32/58/12 44/57/12 +f 28/52/11 38/51/11 34/59/11 +f 26/74/11 66/360/11 68/75/11 +f 50/77/11 51/82/11 52/78/11 +f 50/77/12 49/79/12 33/80/12 +f 51/82/14 50/77/14 34/83/14 +f 52/78/10 51/82/10 38/85/10 +f 32/87/13 67/361/13 65/88/13 +f 56/90/10 55/94/10 54/91/10 +f 45/93/13 54/91/13 55/94/13 +f 46/96/14 55/94/14 56/90/14 +f 42/98/11 56/90/11 53/92/11 +f 60/100/13 59/106/13 58/101/13 +f 35/103/12 57/102/12 58/101/12 +f 36/105/14 58/101/14 59/106/14 +f 40/108/10 59/106/10 60/100/10 +f 62/110/12 63/116/12 64/111/12 +f 37/362/14 27/363/14 52/364/14 +f 27/363/14 47/365/14 62/366/14 +f 27/363/14 62/366/14 52/364/14 +f 61/113/14 43/367/14 31/368/14 +f 52/364/14 62/366/14 49/369/14 +f 62/366/14 61/113/14 49/369/14 +f 25/370/14 33/371/14 49/369/14 +f 61/113/14 31/368/14 60/372/14 +f 31/368/14 39/373/14 60/372/14 +f 25/370/14 49/369/14 54/374/14 +f 49/369/14 61/113/14 54/374/14 +f 54/374/14 45/375/14 25/370/14 +f 29/65/14 41/376/14 53/115/14 +f 35/377/14 29/65/14 57/114/14 +f 29/65/14 53/115/14 57/114/14 +f 53/115/14 54/374/14 61/113/14 +f 61/113/14 60/372/14 57/114/14 +f 63/116/13 62/110/13 47/117/13 +f 64/111/14 63/116/14 48/119/14 +f 61/112/11 64/111/11 44/121/11 +f 69/123/14 77/142/14 78/124/14 +f 75/126/15 76/133/15 73/127/15 +f 72/129/13 76/133/13 75/126/13 +f 69/130/11 74/378/11 73/131/11 +f 71/132/12 73/131/12 76/133/12 +f 70/125/10 75/126/10 74/134/10 +f 80/136/10 84/379/10 81/137/10 +f 70/125/14 78/124/14 80/139/14 +f 72/129/14 80/139/14 79/140/14 +f 71/141/14 79/140/14 77/142/14 +f 81/143/14 84/380/14 83/144/14 +f 77/146/12 82/381/12 83/147/12 +f 78/149/11 83/382/11 84/150/11 +f 79/152/13 81/383/13 82/153/13 +f 88/155/14 87/161/14 85/156/14 +f 98/158/12 101/183/12 103/159/12 +f 87/161/10 91/164/10 89/162/10 +f 88/155/13 92/166/13 91/164/13 +f 86/165/12 90/168/12 92/166/12 +f 85/167/11 89/384/11 90/168/11 +f 100/160/16 103/159/16 107/169/16 +f 96/171/14 95/385/14 93/172/14 +f 106/174/10 108/386/10 89/175/10 +f 95/176/10 99/387/10 97/177/10 +f 96/178/13 100/181/13 99/179/13 +f 94/173/12 98/158/12 100/181/12 +f 93/172/11 97/177/11 98/158/11 +f 92/166/17 102/184/17 106/174/17 +f 104/182/12 103/189/12 101/183/12 +f 105/185/10 107/388/10 108/186/10 +f 90/187/12 104/389/12 102/184/12 +f 104/182/14 108/390/14 107/188/14 +f 108/190/18 104/391/18 90/191/18 +f 101/183/15 105/185/15 106/174/15 +f 97/177/19 105/185/19 101/183/19 +f 107/193/10 105/185/10 97/177/10 +f 112/195/14 111/201/14 109/196/14 +f 122/198/12 125/223/12 127/199/12 +f 111/201/10 115/204/10 113/202/10 +f 112/195/13 116/206/13 115/204/13 +f 110/205/12 114/208/12 116/206/12 +f 109/207/11 113/392/11 114/208/11 +f 124/200/16 127/199/16 131/209/16 +f 120/211/14 119/393/14 117/212/14 +f 130/214/10 132/394/10 113/215/10 +f 119/216/10 123/395/10 121/217/10 +f 120/218/13 124/221/13 123/219/13 +f 118/213/12 122/198/12 124/221/12 +f 117/212/11 121/217/11 122/198/11 +f 116/206/17 126/224/17 130/214/17 +f 128/222/12 127/229/12 125/223/12 +f 129/225/10 131/396/10 132/226/10 +f 114/227/12 128/397/12 126/224/12 +f 128/222/14 132/398/14 131/228/14 +f 132/230/18 128/397/18 114/227/18 +f 125/223/15 129/225/15 130/214/15 +f 121/217/19 129/225/19 125/223/19 +f 131/232/10 129/225/10 121/217/10 +f 144/234/13 148/399/13 147/235/13 +f 139/237/10 140/241/10 137/238/10 +f 135/240/15 137/238/15 140/241/15 +f 143/243/15 145/400/15 148/244/15 +f 136/245/13 140/241/13 139/237/13 +f 133/247/11 138/239/11 137/238/11 +f 141/249/11 146/401/11 145/250/11 +f 144/234/12 142/236/12 141/249/12 +f 150/251/13 152/257/13 151/252/13 +f 158/254/11 160/262/11 159/255/11 +f 152/257/12 156/402/12 153/258/12 +f 149/253/10 154/403/10 155/259/10 +f 150/251/14 155/404/14 156/260/14 +f 151/252/15 153/405/15 154/261/15 +f 160/262/10 164/406/10 161/263/10 +f 157/256/12 162/407/12 163/264/12 +f 158/254/14 163/408/14 164/265/14 +f 159/255/15 161/409/15 162/266/15 +f 166/267/12 168/273/12 167/268/12 +f 174/270/10 176/278/10 175/271/10 +f 168/273/11 172/410/11 169/274/11 +f 165/269/13 170/411/13 171/275/13 +f 166/267/14 171/412/14 172/276/14 +f 167/268/15 169/413/15 170/277/15 +f 176/278/13 180/414/13 177/279/13 +f 173/272/11 178/415/11 179/280/11 +f 174/270/14 179/416/14 180/281/14 +f 175/271/15 177/417/15 178/282/15 +f 187/283/12 188/418/12 184/284/12 +f 186/286/10 185/291/10 181/287/10 +f 188/289/14 186/286/14 182/288/14 +f 185/291/15 187/283/15 183/285/15 +f 195/292/12 196/419/12 192/293/12 +f 194/295/10 193/300/10 189/296/10 +f 196/298/14 194/295/14 190/297/14 +f 193/300/15 195/292/15 191/294/15 +f 203/301/12 204/420/12 200/302/12 +f 202/304/10 201/309/10 197/305/10 +f 204/307/14 202/304/14 198/306/14 +f 201/309/15 203/301/15 199/303/15 +f 211/310/12 212/421/12 208/311/12 +f 210/313/10 209/318/10 205/314/10 +f 212/316/14 210/313/14 206/315/14 +f 209/318/15 211/310/15 207/312/15 +f 219/319/12 220/422/12 216/320/12 +f 218/322/10 217/327/10 213/323/10 +f 220/325/14 218/322/14 214/324/14 +f 217/327/15 219/319/15 215/321/15 +f 227/328/12 228/423/12 224/329/12 +f 226/331/10 225/336/10 221/332/10 +f 228/334/14 226/331/14 222/333/14 +f 225/336/15 227/328/15 223/330/15 +f 235/337/12 236/424/12 232/338/12 +f 234/340/10 233/345/10 229/341/10 +f 236/343/14 234/340/14 230/342/14 +f 233/345/15 235/337/15 231/339/15 +f 243/346/12 244/425/12 240/347/12 +f 242/349/10 241/354/10 237/350/10 +f 244/352/14 242/349/14 238/351/14 +f 241/354/15 243/346/15 239/348/15 diff --git a/src/main/resources/assets/hbm/textures/armor/trenchmaster_arm.png b/src/main/resources/assets/hbm/textures/armor/trenchmaster_arm.png new file mode 100644 index 0000000000000000000000000000000000000000..57abed7bed4073b0df827b5b623e252bfb59d7f5 GIT binary patch literal 546 zcmV+-0^R+IP)b>!3_KP2LiUV(ONXv4;J%Rn4j(h|U2zRnEq0jb|b0y_om!L6Mxg1!co7?Pe581}E1PoN^8CE&D< zYRLLr6I(k1af)df7!+x;U~&x}q9$q;7C3E6_{85u(qu_-j9axAbFerA9NMNJ#^bNW zDZV7c--|_bDyP4nbehpbQ|jxajwD<-wcr07SW}`1w4w;KB71@2y_kfAsr?26z!@h8 zj1K~_fx^m{eTs`fEAoFy$~0p{5okpbXhjidMgEN%DASAy`KLJLUMyWyB6#xJL literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/armor/trenchmaster_helmet.png b/src/main/resources/assets/hbm/textures/armor/trenchmaster_helmet.png new file mode 100644 index 0000000000000000000000000000000000000000..75175e49473da956220f67c9fc4706a172f40cc8 GIT binary patch literal 1378 zcmV-o1)chdP)z+ z*zR;ya8f>`L#!zMnMk|}Rg+s4n_s^~szQ(`AagjTmErR1uha&8@hbu*yFS$~kqIki z#SgdJzW;8)%NfYeHUkR*f!e0kMX*%ne=!4?)9aTT@UoiBS{jk#Kr6AupbdVw1-+Q5 z+Nprb8tEj(u*H>{B!G%UY>RG6CeM0*yGcz6scDIyji?Ewrd77s*32w}qK#*ovlpOH zBUQh6UCq!W{Q;>q#8qe|ALj!YbF(;7dvPwB88a}F638V${!D$o$mYLb@Q0d2Ty4K9 z8D4EQLKo_IUP?t*)~8>2wL52T0g+b#R+N9~{OU_%mfB7!2u*g$^q!)~=0d*e?BvgK z9|8cZDK$p}`b`=|$}wSJP2i>4%@4Prm#+aJzw)YvX_=}vz0Eep1w6cl0_nErW@bp+Aj?dOf>OqdI_RTeDKMu|)Gyw{0H)kZ!s1!X^x4)yd+Q zKWa~RIB}#QdXMZf31-eu@53-m+tQBGY5FIkK^)4}Ih+IfHmw%ntPwe7*Y5?IZW6Y+ zOzn*{LPXYltJU(?kmu<#8WGXc6PcKaq^k@WHW{t@h%U5?_+yjdOhl+#FK^p4tvWJj zD1V;r4C4rV&gyR*p|g+H*@^Tyn-~3&x{*1UfcQk@&@hU!1T(e_5ba4#e_F@DINoim z0{$~H`WKxh)-{Zt&*uokke*w%;Uo;xEjml9O*m(;zQ}RByYP${myL752>=wul4FT8 zdG`DG_-Gt(c6PR>rPN0d1blygPrv~dR#g!M0eha8Un>)NgNVP&T>l+nDEGA6{u9XP z?CV6`G}ehh*!T4_fX+0clMrp+Qk*YRHe1=W7eAZZWq-Z8x>DvIg<(kgAQ__n4a{3& zUBq!*X&a9WTKWAi`6*EP1``kok>i(+V*o%zuZ-Ql@@Hdv)uhp+5gFH?0(hQ>&1QpI z&R&EV-)PUD8%1^(bmr{q1Z3Qi0AOq>AJ^_h{{G|0m>GY^_C7~4gK_qje8lY7`$S_R z*TKKW_5gv=5AOe|HgEi6iQG@>^ZtEgO;p9%$p`V$yakgFnod0yTkmGG=_zSk6Il)? z^0tozA|Is3ljN;A4m~-$D}*M>f@7|+AF9p!q>+7L`8EQ8yw3TM`O&+(7^m5oQw&5S z?~%~a6M2vHi0G(^2oeC`{x70gJrZ1B*LqEyde{!R1?0LV0yq|8VLmK83XQ~;dl~K( zVv^8wI(2&Y?(RTtfco*%?8gVr%{as;J`h8s- zg=tm6V2C*T$Y!%?WdWY&wKC6OH1b5`(BSMNZP<1Y1g!g-_$!nay^Xn+e2{q*8i_6U kGI}FY6#QHQ<6t!MKdjSoBTX?Q?f?J)07*qoM6N<$f-i-ZBme*a literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/machines/conveyor_press.png b/src/main/resources/assets/hbm/textures/models/machines/conveyor_press.png new file mode 100644 index 0000000000000000000000000000000000000000..6464d8f83d75d5d0d0206440341ffeb2bdd2d4ec GIT binary patch literal 1767 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 Date: Sun, 3 Sep 2023 19:41:44 +0200 Subject: [PATCH 285/432] changelog, version bump --- changelog | 4 +++- gradle.properties | 2 +- src/main/java/com/hbm/lib/RefStrings.java | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/changelog b/changelog index a7baa47be..85430aa5f 100644 --- a/changelog +++ b/changelog @@ -21,6 +21,7 @@ * Changed electric press recipe, crafting complexity has been reduced and the press now uses hydraulic pistons * Removed DFC emitter beam cap again since the core already imposes a natural limit due to fuel consumption * I don't know why anyone would need a DFC that strong anyway, but now you can have them again +* The UAC pistol now has a crafting recipe and can also be found in structures ## Fixed * Fixed logspam when pollution handler tries to save the pollution data for dimensions that have never been loaded before @@ -32,4 +33,5 @@ * Fixed flux level not resetting when rods are above melting point with meltdowns disabled * Fixed crash caused by express delivery shells * Fixed 4 gauge solid steel slugs not being made from steel -* Fixed missing lang entry for fluorite ore \ No newline at end of file +* Fixed missing lang entry for fluorite ore +* Fixed UAC pistol UV \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 444f62413..0f150c67e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4707 +mod_build_number=4711 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 3d31d7c2a..b27af5248 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4707)"; + public static final String VERSION = "1.0.27 BETA (4711)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version From 3852faa4708fbae4dc9bb557d534b8ef5c873a7e Mon Sep 17 00:00:00 2001 From: Bob Date: Mon, 4 Sep 2023 21:58:28 +0200 Subject: [PATCH 286/432] UV --- .../assets/hbm/models/armor/trenchmaster.obj | 3478 +++++++++++++++++ .../hbm/textures/armor/trenchmaster_chest.png | Bin 0 -> 1421 bytes .../textures/armor/trenchmaster_helmet.png | Bin 1378 -> 1394 bytes .../hbm/textures/armor/trenchmaster_leg.png | Bin 0 -> 286 bytes 4 files changed, 3478 insertions(+) create mode 100644 src/main/resources/assets/hbm/models/armor/trenchmaster.obj create mode 100644 src/main/resources/assets/hbm/textures/armor/trenchmaster_chest.png create mode 100644 src/main/resources/assets/hbm/textures/armor/trenchmaster_leg.png diff --git a/src/main/resources/assets/hbm/models/armor/trenchmaster.obj b/src/main/resources/assets/hbm/models/armor/trenchmaster.obj new file mode 100644 index 000000000..45c8bc4ac --- /dev/null +++ b/src/main/resources/assets/hbm/models/armor/trenchmaster.obj @@ -0,0 +1,3478 @@ +# Blender v2.79 (sub 0) OBJ File: 'trenchmaster.blend' +# www.blender.org +o Plane.005 +v 4.500000 0.000000 2.500000 +v -0.500000 0.000000 2.500000 +v 4.500000 0.000000 -2.500000 +v -0.500000 0.000000 -2.500000 +v 4.000000 12.000000 2.000000 +v 0.000000 12.000000 2.000000 +v 4.000000 12.000000 -2.000000 +v 0.000000 12.000000 -2.000000 +v 3.500000 0.000000 -3.500000 +v 0.500000 0.000000 -3.500000 +v 3.500000 2.000000 -3.500000 +v 0.500000 2.000000 -3.500000 +v 3.500000 3.000000 -2.500000 +v 0.500000 3.000000 -2.500000 +v 4.500000 2.000000 -2.500000 +v -0.500000 2.000000 -2.500000 +v 0.000000 4.000000 -2.000000 +v 4.000000 4.000000 -2.000000 +v 0.000000 4.000000 2.000000 +v 4.000000 4.000000 2.000000 +v 4.500000 4.000000 2.500000 +v -0.500000 4.000000 2.500000 +v 4.500000 4.000000 -2.500000 +v -0.500000 4.000000 -2.500000 +v 4.000000 5.000000 2.000000 +v 0.000000 5.000000 2.000000 +v 4.000000 5.000000 -2.000000 +v 0.000000 5.000000 -2.000000 +v 4.500000 5.000000 2.500000 +v -0.500000 5.000000 2.500000 +v 4.500000 5.000000 -2.500000 +v -0.500000 5.000000 -2.500000 +v 4.500000 8.000000 2.500000 +v -0.500000 8.000000 2.500000 +v 4.500000 8.000000 -2.500000 +v -0.500000 8.000000 -2.500000 +v 4.000000 8.000000 2.000000 +v 0.000000 8.000000 2.000000 +v 4.000000 8.000000 -2.000000 +v 0.000000 8.000000 -2.000000 +vt 0.000000 0.222222 +vt 0.250000 0.000000 +vt 0.000000 -0.000000 +vt 0.225000 1.000000 +vt 0.025000 0.822222 +vt 0.025000 1.000000 +vt 0.300000 0.044444 +vt 0.500000 0.000000 +vt 0.250000 0.000000 +vt 0.300000 0.133333 +vt 0.450000 0.044444 +vt 0.300000 0.177778 +vt 0.450000 0.133333 +vt 0.525000 0.422222 +vt 0.750000 0.400000 +vt 0.500000 0.400000 +vt 0.500000 0.311111 +vt 0.275000 0.422222 +vt 0.250000 0.400000 +vt 0.725000 0.466667 +vt 0.725000 0.422222 +vt 0.500000 0.133333 +vt 0.500000 0.044444 +vt 0.250000 0.133333 +vt 0.250000 0.044444 +vt 0.475000 0.466667 +vt 0.475000 0.422222 +vt 0.025000 0.422222 +vt 0.225000 0.466667 +vt 0.225000 0.422222 +vt 0.450000 0.177778 +vt 0.300000 0.355556 +vt 0.775000 0.422222 +vt 1.000000 0.400000 +vt 0.000000 0.400000 +vt 0.250000 0.311111 +vt 0.750000 0.222222 +vt 1.000000 0.222222 +vt 0.750000 0.488889 +vt 0.975000 0.466667 +vt 0.775000 0.466667 +vt 0.000000 0.488889 +vt 0.025000 0.466667 +vt 0.250000 0.488889 +vt 0.275000 0.466667 +vt 0.500000 0.488889 +vt 0.525000 0.466667 +vt 0.750000 0.622222 +vt 1.000000 0.488889 +vt 0.500000 0.622222 +vt 0.250000 0.622222 +vt 0.000000 0.622222 +vt 0.525000 0.644444 +vt 0.275000 0.644444 +vt 0.025000 0.644444 +vt 0.775000 0.644444 +vt 1.000000 0.622222 +vt 0.975000 0.644444 +vt 0.775000 0.822222 +vt 0.975000 0.822222 +vt 0.725000 0.644444 +vt 0.525000 0.822222 +vt 0.725000 0.822222 +vt 0.475000 0.644444 +vt 0.275000 0.822222 +vt 0.475000 0.822222 +vt 0.225000 0.644444 +vt 0.225000 0.822222 +vt 0.975000 0.422222 +vt 0.250000 0.222222 +vt 0.500000 0.222222 +vt 0.450000 0.355556 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.7071 -0.7071 +vn 1.0000 0.0000 0.0000 +vn 0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 -0.7071 +vn -1.0000 0.0000 0.0000 +vn 0.5774 0.5774 -0.5774 +vn -0.5774 0.5774 -0.5774 +vn 0.0000 0.0000 1.0000 +s off +f 2/1/1 3/2/1 1/3/1 +f 7/4/2 6/5/2 5/6/2 +f 10/7/1 3/8/1 4/9/1 +f 12/10/3 9/11/3 10/7/3 +f 14/12/4 11/13/4 12/10/4 +f 18/14/2 21/15/2 23/16/2 +f 15/17/5 23/16/5 21/15/5 +f 17/18/2 23/16/2 24/19/2 +f 18/14/5 25/20/5 20/21/5 +f 9/11/6 15/22/6 3/23/6 +f 16/24/7 10/7/7 4/25/7 +f 17/18/3 27/26/3 18/27/3 +f 19/28/8 28/29/8 17/30/8 +f 13/31/9 15/22/9 11/13/9 +f 24/19/3 23/16/3 14/32/3 +f 12/10/10 16/24/10 14/12/10 +f 20/33/2 22/34/2 21/15/2 +f 19/28/2 24/19/2 22/35/2 +f 22/35/8 16/36/8 2/1/8 +f 1/37/11 22/34/11 2/38/11 +f 29/39/1 26/40/1 25/41/1 +f 30/42/1 28/29/1 26/43/1 +f 32/44/1 27/26/1 28/45/1 +f 31/46/1 25/20/1 27/47/1 +f 33/48/11 30/49/11 29/39/11 +f 35/50/5 29/39/5 31/46/5 +f 36/51/3 31/46/3 32/44/3 +f 34/52/8 32/44/8 30/42/8 +f 39/53/2 33/48/2 35/50/2 +f 40/54/2 35/50/2 36/51/2 +f 38/55/2 36/51/2 34/52/2 +f 37/56/2 34/57/2 33/48/2 +f 38/58/11 5/59/11 6/60/11 +f 37/61/5 7/62/5 5/63/5 +f 39/64/3 8/65/3 7/66/3 +f 40/67/8 6/5/8 8/68/8 +f 20/33/11 26/40/11 19/69/11 +f 2/1/1 4/70/1 3/2/1 +f 7/4/2 8/68/2 6/5/2 +f 10/7/1 9/11/1 3/8/1 +f 12/10/3 11/13/3 9/11/3 +f 14/12/4 13/31/4 11/13/4 +f 18/14/2 20/21/2 21/15/2 +f 21/15/5 1/37/5 15/17/5 +f 1/37/5 3/71/5 15/17/5 +f 17/18/2 18/27/2 23/16/2 +f 18/14/5 27/47/5 25/20/5 +f 9/11/6 11/13/6 15/22/6 +f 16/24/7 12/10/7 10/7/7 +f 17/18/3 28/45/3 27/26/3 +f 19/28/8 26/43/8 28/29/8 +f 23/16/3 15/17/3 13/72/3 +f 14/32/3 16/36/3 24/19/3 +f 23/16/3 13/72/3 14/32/3 +f 20/33/2 19/69/2 22/34/2 +f 19/28/2 17/30/2 24/19/2 +f 24/19/8 16/36/8 22/35/8 +f 16/36/8 4/70/8 2/1/8 +f 1/37/11 21/15/11 22/34/11 +f 29/39/1 30/49/1 26/40/1 +f 30/42/1 32/44/1 28/29/1 +f 32/44/1 31/46/1 27/26/1 +f 31/46/1 29/39/1 25/20/1 +f 33/48/11 34/57/11 30/49/11 +f 35/50/5 33/48/5 29/39/5 +f 36/51/3 35/50/3 31/46/3 +f 34/52/8 36/51/8 32/44/8 +f 39/53/2 37/61/2 33/48/2 +f 40/54/2 39/64/2 35/50/2 +f 38/55/2 40/67/2 36/51/2 +f 37/56/2 38/58/2 34/57/2 +f 38/58/11 37/56/11 5/59/11 +f 37/61/5 39/53/5 7/62/5 +f 39/64/3 40/54/3 8/65/3 +f 40/67/8 38/55/8 6/5/8 +f 20/33/11 25/41/11 26/40/11 +o Plane.004 +v -4.500000 0.000000 2.500000 +v 0.500000 0.000000 2.500000 +v -4.500000 0.000000 -2.500000 +v 0.500000 0.000000 -2.500000 +v -4.000000 12.000000 2.000000 +v 0.000000 12.000000 2.000000 +v -4.000000 12.000000 -2.000000 +v 0.000000 12.000000 -2.000000 +v -3.500000 0.000000 -3.500000 +v -0.500000 0.000000 -3.500000 +v -3.500000 2.000000 -3.500000 +v -0.500000 2.000000 -3.500000 +v -3.500000 3.000000 -2.500000 +v -0.500000 3.000000 -2.500000 +v -4.500000 2.000000 -2.500000 +v 0.500000 2.000000 -2.500000 +v 0.000000 4.000000 -2.000000 +v -4.000000 4.000000 -2.000000 +v 0.000000 4.000000 2.000000 +v -4.000000 4.000000 2.000000 +v -4.500000 4.000000 2.500000 +v 0.500000 4.000000 2.500000 +v -4.500000 4.000000 -2.500000 +v 0.500000 4.000000 -2.500000 +v -4.000000 5.000000 2.000000 +v 0.000000 5.000000 2.000000 +v -4.000000 5.000000 -2.000000 +v 0.000000 5.000000 -2.000000 +v -4.500000 5.000000 2.500000 +v 0.500000 5.000000 2.500000 +v -4.500000 5.000000 -2.500000 +v 0.500000 5.000000 -2.500000 +v -4.500000 8.000000 2.500000 +v 0.500000 8.000000 2.500000 +v -4.500000 8.000000 -2.500000 +v 0.500000 8.000000 -2.500000 +v -4.000000 8.000000 2.000000 +v 0.000000 8.000000 2.000000 +v -4.000000 8.000000 -2.000000 +v 0.000000 8.000000 -2.000000 +vt 0.250000 0.000000 +vt 0.000000 0.222222 +vt 0.000000 -0.000000 +vt 0.025000 0.822222 +vt 0.225000 1.000000 +vt 0.025000 1.000000 +vt 0.500000 0.000000 +vt 0.300000 0.044444 +vt 0.250000 0.000000 +vt 0.450000 0.044444 +vt 0.300000 0.133333 +vt 0.450000 0.133333 +vt 0.300000 0.177778 +vt 0.750000 0.400000 +vt 0.525000 0.422222 +vt 0.500000 0.400000 +vt 0.500000 0.311111 +vt 0.275000 0.422222 +vt 0.250000 0.400000 +vt 0.725000 0.466667 +vt 0.725000 0.422222 +vt 0.500000 0.133333 +vt 0.500000 0.044444 +vt 0.250000 0.133333 +vt 0.250000 0.044444 +vt 0.475000 0.466667 +vt 0.475000 0.422222 +vt 0.225000 0.466667 +vt 0.025000 0.422222 +vt 0.225000 0.422222 +vt 0.450000 0.177778 +vt 0.450000 0.355556 +vt 1.000000 0.400000 +vt 0.775000 0.422222 +vt 0.000000 0.400000 +vt 0.250000 0.311111 +vt 0.750000 0.222222 +vt 1.000000 0.222222 +vt 0.975000 0.466667 +vt 0.750000 0.488889 +vt 0.775000 0.466667 +vt 0.000000 0.488889 +vt 0.025000 0.466667 +vt 0.250000 0.488889 +vt 0.275000 0.466667 +vt 0.500000 0.488889 +vt 0.525000 0.466667 +vt 1.000000 0.488889 +vt 0.750000 0.622222 +vt 0.500000 0.622222 +vt 0.250000 0.622222 +vt 0.000000 0.622222 +vt 0.525000 0.644444 +vt 0.275000 0.644444 +vt 0.025000 0.644444 +vt 1.000000 0.622222 +vt 0.775000 0.644444 +vt 0.775000 0.822222 +vt 0.975000 0.644444 +vt 0.975000 0.822222 +vt 0.525000 0.822222 +vt 0.725000 0.644444 +vt 0.725000 0.822222 +vt 0.275000 0.822222 +vt 0.475000 0.644444 +vt 0.475000 0.822222 +vt 0.225000 0.644444 +vt 0.225000 0.822222 +vt 0.975000 0.422222 +vt 0.250000 0.222222 +vt 0.500000 0.222222 +vt 0.300000 0.355556 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.7071 -0.7071 +vn -1.0000 0.0000 0.0000 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 -0.7071 +vn 1.0000 0.0000 0.0000 +vn -0.5774 0.5774 -0.5774 +vn 0.5774 0.5774 -0.5774 +vn 0.0000 0.0000 1.0000 +s off +f 43/73/12 42/74/12 41/75/12 +f 46/76/13 47/77/13 45/78/13 +f 43/79/12 50/80/12 44/81/12 +f 49/82/14 52/83/14 50/80/14 +f 51/84/15 54/85/15 52/83/15 +f 61/86/13 58/87/13 63/88/13 +f 61/86/16 63/88/16 55/89/16 +f 63/88/13 57/90/13 64/91/13 +f 65/92/16 58/87/16 60/93/16 +f 55/94/17 49/82/17 43/95/17 +f 50/80/18 56/96/18 44/97/18 +f 67/98/14 57/90/14 58/99/14 +f 68/100/19 59/101/19 57/102/19 +f 53/103/20 51/84/20 55/94/20 +f 64/91/14 53/104/14 63/88/14 +f 52/83/21 54/85/21 56/96/21 +f 62/105/13 60/106/13 61/86/13 +f 64/91/13 59/101/13 62/107/13 +f 42/74/19 56/108/19 62/107/19 +f 62/105/22 41/109/22 42/110/22 +f 66/111/12 69/112/12 65/113/12 +f 68/100/12 70/114/12 66/115/12 +f 67/98/12 72/116/12 68/117/12 +f 65/92/12 71/118/12 67/119/12 +f 70/120/22 73/121/22 69/112/22 +f 69/112/16 75/122/16 71/118/16 +f 71/118/14 76/123/14 72/116/14 +f 72/116/19 74/124/19 70/114/19 +f 73/121/13 79/125/13 75/122/13 +f 75/122/13 80/126/13 76/123/13 +f 76/123/13 78/127/13 74/124/13 +f 74/128/13 77/129/13 73/121/13 +f 45/130/22 78/131/22 46/132/22 +f 47/133/16 77/134/16 45/135/16 +f 48/136/14 79/137/14 47/138/14 +f 46/76/19 80/139/19 48/140/19 +f 66/111/22 60/106/22 59/141/22 +f 43/73/12 44/142/12 42/74/12 +f 46/76/13 48/140/13 47/77/13 +f 43/79/12 49/82/12 50/80/12 +f 49/82/14 51/84/14 52/83/14 +f 51/84/15 53/103/15 54/85/15 +f 61/86/13 60/93/13 58/87/13 +f 43/143/16 41/109/16 55/89/16 +f 41/109/16 61/86/16 55/89/16 +f 63/88/13 58/99/13 57/90/13 +f 65/92/16 67/119/16 58/87/16 +f 55/94/17 51/84/17 49/82/17 +f 50/80/18 52/83/18 56/96/18 +f 67/98/14 68/117/14 57/90/14 +f 68/100/19 66/115/19 59/101/19 +f 64/91/14 56/108/14 54/144/14 +f 53/104/14 55/89/14 63/88/14 +f 64/91/14 54/144/14 53/104/14 +f 62/105/13 59/141/13 60/106/13 +f 64/91/13 57/102/13 59/101/13 +f 44/142/19 56/108/19 42/74/19 +f 56/108/19 64/91/19 62/107/19 +f 62/105/22 61/86/22 41/109/22 +f 66/111/12 70/120/12 69/112/12 +f 68/100/12 72/116/12 70/114/12 +f 67/98/12 71/118/12 72/116/12 +f 65/92/12 69/112/12 71/118/12 +f 70/120/22 74/128/22 73/121/22 +f 69/112/16 73/121/16 75/122/16 +f 71/118/14 75/122/14 76/123/14 +f 72/116/19 76/123/19 74/124/19 +f 73/121/13 77/134/13 79/125/13 +f 75/122/13 79/137/13 80/126/13 +f 76/123/13 80/139/13 78/127/13 +f 74/128/13 78/131/13 77/129/13 +f 45/130/22 77/129/22 78/131/22 +f 47/133/16 79/125/16 77/134/16 +f 48/136/14 80/126/14 79/137/14 +f 46/76/19 78/127/19 80/139/19 +f 66/111/22 65/113/22 60/106/22 +o Plane.003 +v 8.500000 22.500000 0.500000 +v 8.500000 21.500000 0.500000 +v 8.500000 22.500000 -0.500000 +v 8.500000 21.500000 -0.500000 +v 9.000000 22.500000 -0.500000 +v 9.000000 22.500000 0.500000 +v 9.000000 21.500000 0.500000 +v 9.000000 21.500000 -0.500000 +v 9.000000 22.000000 -1.000000 +v 9.000000 22.707108 -0.707107 +v 9.000000 23.000000 0.000000 +v 9.000000 22.707108 0.707107 +v 9.000000 22.000000 1.000000 +v 9.000000 21.292892 0.707107 +v 9.000000 21.000000 -0.000000 +v 9.000000 21.292892 -0.707107 +v 9.250000 22.707108 -0.707107 +v 9.250000 22.000000 -1.000000 +v 9.250000 23.000000 0.000000 +v 9.250000 22.707108 0.707107 +v 9.250000 22.000000 1.000000 +v 9.250000 21.292892 0.707107 +v 9.250000 21.000000 -0.000000 +v 9.250000 21.292892 -0.707107 +v 8.500000 22.250000 0.500000 +v 8.500000 21.750000 0.500000 +v 8.500000 22.250000 2.500000 +v 8.500000 21.750000 2.500000 +v 8.750000 22.250000 0.500000 +v 8.750000 21.750000 0.500000 +v 8.750000 22.250000 2.500000 +v 8.750000 21.750000 2.500000 +v 8.750000 23.000000 0.500000 +v 8.750000 21.000000 0.500000 +v 8.750000 23.000000 -0.500000 +v 8.750000 21.000000 -0.500000 +v 8.500000 23.500000 0.500000 +v 8.500000 23.500000 -0.500000 +v 8.500000 20.500000 0.500000 +v 8.500000 20.500000 -0.500000 +v 8.000000 20.000000 2.000000 +v 8.000000 20.000000 -2.000000 +v 4.000000 20.000000 -2.000000 +v 4.000000 20.000000 2.000000 +v 3.500000 20.000000 -2.500000 +v 3.500000 20.000000 2.500000 +v 8.500000 20.000000 -2.500000 +v 8.500000 20.000000 2.500000 +v 3.500000 24.000000 -2.500000 +v 3.500000 24.000000 2.500000 +v 8.500000 24.000000 -2.500000 +v 8.500000 24.000000 2.500000 +v 5.000000 26.000000 -2.500000 +v 5.000000 26.000000 2.500000 +v 8.000000 18.000000 2.000000 +v 4.000000 18.000000 2.000000 +v 4.000000 18.000000 -2.000000 +v 8.000000 18.000000 -2.000000 +v 8.500000 18.000000 -2.500000 +v 8.500000 18.000000 2.500000 +v 3.500000 18.000000 -2.500000 +v 3.500000 18.000000 2.500000 +v 8.500000 14.000000 -2.500000 +v 8.500000 14.000000 2.500000 +v 3.500000 14.000000 -2.500000 +v 3.500000 14.000000 2.500000 +v 4.000000 14.000000 2.000000 +v 4.000000 14.000000 -2.000000 +v 8.000000 14.000000 -2.000000 +v 8.000000 14.000000 2.000000 +v 4.000000 13.000000 -2.000000 +v 4.000000 13.000000 2.000000 +v 8.000000 13.000000 -2.000000 +v 8.000000 13.000000 2.000000 +v 3.500000 13.000000 -2.500000 +v 3.500000 13.000000 2.500000 +v 8.500000 13.000000 -2.500000 +v 8.500000 13.000000 2.500000 +v 3.500000 11.000000 -2.500000 +v 3.500000 11.000000 2.500000 +v 8.000000 11.000000 -2.500000 +v 8.000000 11.000000 2.500000 +v 8.500000 26.000000 0.500000 +v 5.500000 26.000000 0.500000 +v 8.500000 26.000000 -0.500000 +v 5.500000 26.000000 -0.500000 +v 7.500000 24.000000 -0.500000 +v 7.500000 24.000000 0.500000 +v 5.500000 24.000000 0.500000 +v 5.500000 24.000000 -0.500000 +vt 0.650000 0.827586 +vt 0.700000 0.810345 +vt 0.700000 0.827586 +vt 0.725000 0.844828 +vt 0.700000 0.810345 +vt 0.725000 0.810345 +vt 0.725000 0.913793 +vt 0.700000 0.879310 +vt 0.725000 0.879310 +vt 0.725000 0.948276 +vt 0.700000 0.913793 +vt 0.700000 0.844828 +vt 0.601300 0.034483 +vt 0.650000 0.000897 +vt 0.698699 0.034483 +vt 0.476300 0.034483 +vt 0.525000 0.000897 +vt 0.573700 0.034483 +vt 0.575000 0.017241 +vt 0.600000 0.034483 +vt 0.575000 0.034483 +vt 0.575000 0.051724 +vt 0.600000 0.068966 +vt 0.575000 0.068966 +vt 0.575000 0.086207 +vt 0.600000 0.103448 +vt 0.575000 0.103448 +vt 0.600000 0.120690 +vt 0.575000 0.120690 +vt 0.575000 -0.000000 +vt 0.600000 0.017241 +vt 0.600000 0.051724 +vt 0.600000 0.086207 +vt 0.600000 0.137931 +vt 0.575000 0.137931 +vt 0.700000 0.896552 +vt 0.650000 0.913793 +vt 0.650000 0.896552 +vt 0.775000 0.810345 +vt 0.750000 0.879310 +vt 0.750000 0.810345 +vt 0.725000 0.810345 +vt 0.725000 0.879310 +vt 0.800000 0.879310 +vt 0.800000 0.810345 +vt 0.750000 0.896552 +vt 0.775000 0.879310 +vt 0.775000 0.896552 +vt 0.750000 0.448276 +vt 0.525000 0.465517 +vt 0.725000 0.465517 +vt 0.250000 0.551724 +vt 0.025000 0.534483 +vt -0.000000 0.551724 +vt 0.975000 0.534483 +vt 0.750000 0.551724 +vt 1.000000 0.551724 +vt 0.725000 0.534483 +vt 0.500000 0.551724 +vt 0.525000 0.534483 +vt 0.475000 0.534483 +vt 0.250000 0.689655 +vt 0.325000 0.758621 +vt 0.500000 0.689655 +vt -0.000000 0.689655 +vt 0.750000 0.689655 +vt 1.000000 0.689655 +vt 0.925000 0.758621 +vt -0.000000 0.758621 +vt 0.750000 0.810345 +vt 0.475000 0.465517 +vt 0.275000 0.534483 +vt 0.975000 0.465517 +vt 0.775000 0.534483 +vt 0.225000 0.465517 +vt 0.225000 0.534483 +vt 0.250000 0.310345 +vt 0.000000 0.448276 +vt 0.250000 0.448276 +vt 0.025000 0.465517 +vt 1.000000 0.448276 +vt 0.775000 0.465517 +vt 0.500000 0.448276 +vt 0.275000 0.465517 +vt 0.475000 0.293103 +vt 0.500000 0.310345 +vt 1.000000 0.310345 +vt 0.750000 0.310345 +vt 0.975000 0.258621 +vt 0.775000 0.293103 +vt 0.975000 0.293103 +vt 0.725000 0.293103 +vt 0.025000 0.293103 +vt -0.000000 0.310345 +vt 0.750000 0.241379 +vt 0.525000 0.258621 +vt 0.725000 0.258621 +vt 0.525000 0.293103 +vt 0.475000 0.258621 +vt 0.275000 0.293103 +vt 0.225000 0.258621 +vt 0.225000 0.293103 +vt 0.475000 0.172414 +vt 0.250000 0.241379 +vt 0.500000 0.241379 +vt 0.275000 0.258621 +vt 0.025000 0.258621 +vt 1.000000 0.241379 +vt 0.775000 0.258621 +vt 0.250000 -0.000000 +vt 0.250000 0.172414 +vt -0.000000 0.241379 +vt 0.775000 0.172414 +vt 0.750000 0.172414 +vt 0.150000 0.931035 +vt 0.100000 0.827586 +vt 0.100000 0.931035 +vt 0.250000 0.896552 +vt 0.150000 0.827586 +vt 0.000000 0.896552 +vt 0.150000 0.758621 +vt 0.100000 1.000000 +vt 0.650000 0.810345 +vt 0.700000 0.948276 +vt 0.650000 0.068069 +vt 0.615564 0.058232 +vt 0.615564 0.010734 +vt 0.684436 0.010734 +vt 0.684436 0.058232 +vt 0.559436 0.058232 +vt 0.525000 0.068069 +vt 0.490564 0.058232 +vt 0.490564 0.010734 +vt 0.559436 0.010734 +vt 0.600000 -0.000000 +vt 0.700000 0.913793 +vt 0.250000 0.758621 +vt 0.500000 0.810345 +vt 0.475000 0.000000 +vt -0.000000 0.172414 +vt 1.000000 0.172414 +vt 0.500000 0.172414 +vt 0.250000 0.827586 +vt 0.000000 0.827586 +vt 0.100000 0.758621 +vt 0.150000 1.000000 +vn 0.8944 -0.4472 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -0.3827 0.9239 +vn 0.0000 0.9239 0.3827 +vn 0.0000 0.3827 -0.9239 +vn 0.0000 -0.3827 -0.9239 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 0.3827 0.9239 +vn 0.0000 0.9239 -0.3827 +vn 0.0000 -0.9239 -0.3827 +vn 0.8944 0.4472 0.0000 +vn -0.8000 0.6000 0.0000 +vn 0.4961 0.8682 0.0000 +vn 0.9701 -0.2425 0.0000 +s off +f 114/145/23 120/146/23 116/147/23 +f 83/148/24 88/149/24 84/150/24 +f 82/151/25 86/152/25 81/153/25 +f 84/154/26 87/155/26 82/151/26 +f 81/153/27 85/156/27 83/148/27 +f 89/157/28 95/158/28 93/159/28 +f 101/160/29 103/161/29 98/162/29 +f 94/163/30 101/164/30 93/165/30 +f 92/166/31 99/167/31 91/168/31 +f 90/169/32 98/170/32 89/171/32 +f 89/171/33 104/172/33 96/173/33 +f 95/174/34 102/175/34 94/163/34 +f 93/165/35 100/176/35 92/166/35 +f 91/168/36 97/177/36 90/169/36 +f 96/173/37 103/178/37 95/179/37 +f 115/180/38 117/181/38 113/182/38 +f 109/183/29 112/184/29 110/185/29 +f 106/186/26 112/184/26 108/187/26 +f 114/145/29 115/180/29 113/182/29 +f 107/188/27 109/183/27 105/189/27 +f 108/190/25 111/191/25 107/192/25 +f 140/193/27 138/194/27 135/195/27 +f 125/196/26 124/197/26 126/198/26 +f 124/199/26 128/200/26 126/201/26 +f 121/202/26 127/203/26 128/200/26 +f 135/195/29 122/204/29 121/202/29 +f 122/205/26 125/196/26 127/203/26 +f 129/206/24 133/207/24 131/208/24 +f 129/206/24 127/203/24 125/196/24 +f 130/209/28 125/196/28 126/198/28 +f 132/210/25 126/201/25 128/200/25 +f 131/208/29 128/200/29 127/203/29 +f 130/211/25 132/210/25 134/212/25 +f 134/213/39 129/206/39 130/209/39 +f 131/208/40 134/214/40 132/210/40 +f 138/215/24 123/216/24 122/205/24 +f 136/217/25 121/218/25 124/199/25 +f 137/219/28 124/197/28 123/220/28 +f 145/221/28 142/222/28 141/223/28 +f 141/223/27 136/224/27 137/219/27 +f 142/225/27 135/226/27 136/217/27 +f 139/227/27 137/228/27 138/215/27 +f 149/229/26 145/221/26 143/230/26 +f 143/230/24 141/223/24 139/227/24 +f 146/231/25 140/193/25 142/225/25 +f 144/232/29 139/227/29 140/193/29 +f 152/233/25 150/234/25 147/235/25 +f 150/236/26 143/230/26 144/232/26 +f 146/231/26 150/234/26 144/232/26 +f 145/221/26 147/237/26 146/238/26 +f 158/239/27 153/240/27 154/241/27 +f 154/241/29 149/242/29 150/236/29 +f 153/243/24 148/244/24 149/229/24 +f 151/245/28 147/237/28 148/246/28 +f 161/247/24 155/248/24 157/249/24 +f 157/249/27 151/250/27 153/243/27 +f 155/248/27 152/251/27 151/245/27 +f 156/252/27 154/253/27 152/233/27 +f 161/247/26 160/254/26 159/255/26 +f 159/255/28 156/256/28 155/248/28 +f 156/252/25 162/257/25 158/239/25 +f 162/258/41 157/249/41 158/239/41 +f 165/259/27 164/260/27 163/261/27 +f 167/262/24 166/263/24 165/259/24 +f 164/260/25 168/264/25 163/261/25 +f 170/265/28 164/260/28 166/263/28 +f 168/266/23 165/259/23 163/261/23 +f 114/145/23 119/267/23 120/146/23 +f 83/148/24 85/156/24 88/149/24 +f 82/151/25 87/155/25 86/152/25 +f 84/154/26 88/268/26 87/155/26 +f 81/153/27 86/152/27 85/156/27 +f 91/269/28 90/270/28 89/157/28 +f 89/157/28 96/271/28 95/158/28 +f 95/158/28 94/272/28 93/159/28 +f 93/159/28 92/273/28 91/269/28 +f 91/269/28 89/157/28 93/159/28 +f 98/162/29 97/274/29 99/275/29 +f 99/275/29 100/276/29 101/160/29 +f 101/160/29 102/277/29 103/161/29 +f 103/161/29 104/278/29 98/162/29 +f 98/162/29 99/275/29 101/160/29 +f 94/163/30 102/175/30 101/164/30 +f 92/166/31 100/176/31 99/167/31 +f 90/169/32 97/177/32 98/170/32 +f 89/171/33 98/170/33 104/172/33 +f 95/174/34 103/279/34 102/175/34 +f 93/165/35 101/164/35 100/176/35 +f 91/168/36 99/167/36 97/177/36 +f 96/173/37 104/172/37 103/178/37 +f 115/180/38 118/280/38 117/181/38 +f 109/183/29 111/191/29 112/184/29 +f 106/186/26 110/185/26 112/184/26 +f 114/145/29 116/147/29 115/180/29 +f 107/188/27 111/191/27 109/183/27 +f 108/190/25 112/184/25 111/191/25 +f 140/193/27 139/227/27 138/194/27 +f 125/196/26 123/220/26 124/197/26 +f 124/199/26 121/218/26 128/200/26 +f 121/202/26 122/204/26 127/203/26 +f 135/195/29 138/194/29 122/204/29 +f 122/205/26 123/216/26 125/196/26 +f 129/206/24 131/208/24 127/203/24 +f 130/209/28 129/206/28 125/196/28 +f 132/210/25 130/211/25 126/201/25 +f 131/208/29 132/210/29 128/200/29 +f 134/213/39 133/281/39 129/206/39 +f 131/208/40 133/282/40 134/214/40 +f 138/215/24 137/228/24 123/216/24 +f 136/217/25 135/226/25 121/218/25 +f 137/219/28 136/224/28 124/197/28 +f 145/221/28 146/238/28 142/222/28 +f 141/223/27 142/222/27 136/224/27 +f 142/225/27 140/193/27 135/226/27 +f 139/227/27 141/223/27 137/228/27 +f 149/229/26 148/244/26 145/221/26 +f 143/230/24 145/221/24 141/223/24 +f 146/231/25 144/232/25 140/193/25 +f 144/232/29 143/230/29 139/227/29 +f 152/233/25 154/253/25 150/234/25 +f 150/236/26 149/242/26 143/230/26 +f 146/231/26 147/235/26 150/234/26 +f 145/221/26 148/246/26 147/237/26 +f 158/239/27 157/249/27 153/240/27 +f 154/241/29 153/240/29 149/242/29 +f 153/243/24 151/250/24 148/244/24 +f 151/245/28 152/251/28 147/237/28 +f 161/247/24 159/255/24 155/248/24 +f 157/249/27 155/248/27 151/250/27 +f 155/248/27 156/256/27 152/251/27 +f 156/252/27 158/239/27 154/253/27 +f 161/247/26 162/283/26 160/254/26 +f 159/255/28 160/284/28 156/256/28 +f 156/252/25 160/285/25 162/257/25 +f 162/258/41 161/286/41 157/249/41 +f 165/259/27 166/263/27 164/260/27 +f 167/262/24 170/287/24 166/263/24 +f 164/260/25 169/288/25 168/264/25 +f 170/265/28 169/289/28 164/260/28 +f 168/266/23 167/290/23 165/259/23 +o Plane.002 +v -8.000000 20.000000 2.000000 +v -8.000000 20.000000 -2.000000 +v -4.000000 20.000000 -2.000000 +v -4.000000 20.000000 2.000000 +v -3.500000 20.000000 -2.500000 +v -3.500000 20.000000 2.500000 +v -8.500000 20.000000 -2.500000 +v -8.500000 20.000000 2.500000 +v -3.500000 24.000000 -2.500000 +v -3.500000 24.000000 2.500000 +v -8.500000 24.000000 -2.500000 +v -8.500000 24.000000 2.500000 +v -5.000000 26.000000 -2.500000 +v -5.000000 26.000000 2.500000 +v -8.000000 18.000000 2.000000 +v -4.000000 18.000000 2.000000 +v -4.000000 18.000000 -2.000000 +v -8.000000 18.000000 -2.000000 +v -8.500000 18.000000 -2.500000 +v -8.500000 18.000000 2.500000 +v -3.500000 18.000000 -2.500000 +v -3.500000 18.000000 2.500000 +v -8.500000 14.000000 -2.500000 +v -8.500000 14.000000 2.500000 +v -3.500000 14.000000 -2.500000 +v -3.500000 14.000000 2.500000 +v -4.000000 14.000000 2.000000 +v -4.000000 14.000000 -2.000000 +v -8.000000 14.000000 -2.000000 +v -8.000000 14.000000 2.000000 +v -4.000000 13.000000 -2.000000 +v -4.000000 13.000000 2.000000 +v -8.000000 13.000000 -2.000000 +v -8.000000 13.000000 2.000000 +v -3.500000 13.000000 -2.500000 +v -3.500000 13.000000 2.500000 +v -8.500000 13.000000 -2.500000 +v -8.500000 13.000000 2.500000 +v -3.500000 11.000000 -2.500000 +v -3.500000 11.000000 2.500000 +v -8.000000 11.000000 -2.500000 +v -8.000000 11.000000 2.500000 +v -9.000000 22.500000 1.500000 +v -9.000000 21.500000 1.500000 +v -9.000000 22.500000 -0.500000 +v -9.000000 21.500000 -0.500000 +v -8.500000 23.500000 1.500000 +v -8.500000 20.500000 1.500000 +v -8.500000 23.500000 -0.500000 +v -8.500000 20.500000 -0.500000 +v -8.625000 22.500000 3.000000 +v -8.625000 21.500000 2.000000 +v -8.625000 22.500000 -1.000000 +v -8.625000 21.500000 -1.000000 +v -8.875000 22.500000 -1.000000 +v -8.875000 22.500000 3.000000 +v -8.875000 21.500000 2.000000 +v -8.875000 21.500000 -1.000000 +v -8.500000 22.750000 -1.000000 +v -8.500000 21.250000 -1.000000 +v -9.000000 22.750000 -1.000000 +v -9.000000 21.250000 -1.000000 +v -8.500000 21.250000 -1.500000 +v -8.500000 22.750000 -1.500000 +v -9.000000 21.250000 -1.500000 +v -9.000000 22.750000 -1.500000 +v -9.000000 21.750000 -1.500000 +v -8.500000 21.750000 -1.500000 +v -9.000000 22.250000 -1.500000 +v -8.500000 22.250000 -1.500000 +v -9.000000 22.250000 -2.500000 +v -9.000000 21.750000 -2.500000 +v -8.500000 21.750000 -2.500000 +v -8.500000 22.250000 -2.500000 +v -8.500000 26.000000 0.500000 +v -5.500000 26.000000 0.500000 +v -8.500000 26.000000 -0.500000 +v -5.500000 26.000000 -0.500000 +v -7.500000 24.000000 -0.500000 +v -7.500000 24.000000 0.500000 +v -5.500000 24.000000 0.500000 +v -5.500000 24.000000 -0.500000 +vt 0.525000 0.465517 +vt 0.750000 0.448276 +vt 0.725000 0.465517 +vt 0.025000 0.534483 +vt 0.250000 0.551724 +vt -0.000000 0.551724 +vt 0.750000 0.551724 +vt 0.975000 0.534483 +vt 1.000000 0.551724 +vt 0.500000 0.551724 +vt 0.725000 0.534483 +vt 0.525000 0.534483 +vt 0.475000 0.534483 +vt 0.250000 0.689655 +vt 0.500000 0.689655 +vt 0.325000 0.758621 +vt -0.000000 0.689655 +vt 0.750000 0.689655 +vt 1.000000 0.689655 +vt 0.925000 0.758621 +vt -0.000000 0.758621 +vt 0.750000 0.810345 +vt 0.275000 0.534483 +vt 0.475000 0.465517 +vt 0.775000 0.534483 +vt 0.975000 0.465517 +vt 0.225000 0.465517 +vt 0.225000 0.534483 +vt 0.000000 0.448276 +vt 0.250000 0.310345 +vt 0.250000 0.448276 +vt 0.025000 0.465517 +vt 0.775000 0.465517 +vt 1.000000 0.448276 +vt 0.275000 0.465517 +vt 0.500000 0.448276 +vt 0.475000 0.293103 +vt 0.500000 0.310345 +vt 1.000000 0.310345 +vt 0.750000 0.310345 +vt 0.775000 0.293103 +vt 0.975000 0.258621 +vt 0.975000 0.293103 +vt 0.725000 0.293103 +vt 0.025000 0.293103 +vt -0.000000 0.310345 +vt 0.525000 0.258621 +vt 0.750000 0.241379 +vt 0.725000 0.258621 +vt 0.525000 0.293103 +vt 0.275000 0.293103 +vt 0.475000 0.258621 +vt 0.225000 0.258621 +vt 0.225000 0.293103 +vt 0.250000 0.241379 +vt 0.475000 0.172414 +vt 0.500000 0.241379 +vt 0.275000 0.258621 +vt 0.025000 0.258621 +vt 0.775000 0.258621 +vt 1.000000 0.241379 +vt 0.250000 -0.000000 +vt 0.250000 0.172414 +vt -0.000000 0.241379 +vt 0.775000 0.172414 +vt 1.000000 0.172414 +vt 0.750000 0.172414 +vt 0.250000 0.827586 +vt 0.350000 0.793103 +vt 0.350000 0.827586 +vt 0.250000 0.793103 +vt 0.350000 0.758621 +vt 0.250000 0.862069 +vt 0.500000 0.913793 +vt 0.550000 0.810345 +vt 0.550000 0.948276 +vt 0.575000 0.810345 +vt 0.625000 0.913793 +vt 0.575000 0.948276 +vt 0.650000 0.948276 +vt 0.650000 0.913793 +vt 0.625000 0.810345 +vt 0.650000 0.810345 +vt 0.375000 0.844828 +vt 0.450000 0.862069 +vt 0.375000 0.862069 +vt 0.450000 0.810345 +vt 0.375000 0.827586 +vt 0.375000 0.810345 +vt 0.350000 0.844828 +vt 0.450000 0.827586 +vt 0.450000 0.844828 +vt 0.475000 0.827586 +vt 0.475000 0.844828 +vt 0.375000 0.775862 +vt 0.400000 0.758621 +vt 0.400000 0.775862 +vt 0.375000 0.810345 +vt 0.400000 0.810345 +vt 0.350000 0.810345 +vt 0.425000 0.775862 +vt 0.425000 0.810345 +vt 0.100000 0.827586 +vt 0.150000 0.931035 +vt 0.100000 0.931035 +vt 0.150000 0.827586 +vt 0.250000 0.896552 +vt 0.000000 0.896552 +vt 0.000000 0.827586 +vt 0.150000 0.758621 +vt 0.100000 1.000000 +vt 0.250000 0.758621 +vt 0.500000 0.810345 +vt 0.475000 0.000000 +vt -0.000000 0.172414 +vt 0.500000 0.172414 +vt 0.250000 0.758621 +vt 0.350000 0.862069 +vt 0.500000 0.810345 +vt 0.625000 0.948276 +vt 0.350000 0.827586 +vt 0.375000 0.758621 +vt 0.350000 0.775862 +vt 0.250000 0.827586 +vt 0.100000 0.758621 +vt 0.150000 1.000000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.8000 0.6000 0.0000 +vn -0.4961 0.8682 0.0000 +vn -0.9701 -0.2425 0.0000 +vn -0.8944 -0.4472 0.0000 +vn -0.8944 0.4472 0.0000 +vn 0.0000 -0.7071 0.7071 +s off +f 188/291/42 190/292/42 185/293/42 +f 174/294/43 175/295/43 176/296/43 +f 178/297/43 174/298/43 176/299/43 +f 177/300/43 171/301/43 178/297/43 +f 172/302/44 185/293/44 171/301/44 +f 175/295/43 172/303/43 177/300/43 +f 179/304/45 181/305/45 183/306/45 +f 177/300/45 179/304/45 175/295/45 +f 175/295/46 180/307/46 176/296/46 +f 176/299/47 182/308/47 178/297/47 +f 178/297/44 181/305/44 177/300/44 +f 180/309/47 184/310/47 182/308/47 +f 179/304/48 184/311/48 180/307/48 +f 184/312/49 181/305/49 182/308/49 +f 173/313/45 188/314/45 172/303/45 +f 171/315/47 186/316/47 174/298/47 +f 174/294/46 187/317/46 173/318/46 +f 192/319/46 195/320/46 191/321/46 +f 186/322/42 191/321/42 187/317/42 +f 185/323/42 192/324/42 186/316/42 +f 187/325/42 189/326/42 188/314/42 +f 195/320/43 199/327/43 193/328/43 +f 191/321/45 193/328/45 189/326/45 +f 190/292/47 196/329/47 192/324/47 +f 189/326/44 194/330/44 190/292/44 +f 200/331/47 202/332/47 197/333/47 +f 193/328/43 200/334/43 194/330/43 +f 200/331/43 196/329/43 194/330/43 +f 197/335/43 195/320/43 196/336/43 +f 203/337/42 208/338/42 204/339/42 +f 199/340/44 204/339/44 200/334/44 +f 198/341/45 203/342/45 199/327/45 +f 197/335/46 201/343/46 198/344/46 +f 205/345/45 211/346/45 207/347/45 +f 201/348/42 207/347/42 203/342/42 +f 202/349/42 205/345/42 201/343/42 +f 204/350/42 206/351/42 202/332/42 +f 210/352/43 211/346/43 209/353/43 +f 206/354/46 209/353/46 205/345/46 +f 206/351/47 212/355/47 210/356/47 +f 207/347/50 212/357/50 208/338/50 +f 215/358/44 214/359/44 213/360/44 +f 216/361/51 218/362/51 214/359/51 +f 213/360/52 219/363/52 215/358/52 +f 222/364/46 223/365/46 221/366/46 +f 225/367/44 227/368/44 226/369/44 +f 221/370/53 227/368/53 222/371/53 +f 222/371/43 228/372/43 224/373/43 +f 223/365/42 226/369/42 221/366/42 +f 231/374/47 230/375/47 229/376/47 +f 233/377/45 236/378/45 234/379/45 +f 229/380/42 236/378/42 231/374/42 +f 231/374/44 235/381/44 232/382/44 +f 232/382/43 233/383/43 230/384/43 +f 241/385/45 243/386/45 242/387/45 +f 239/388/44 242/387/44 237/389/44 +f 240/390/42 241/385/42 239/388/42 +f 237/389/43 243/391/43 238/392/43 +f 246/393/42 247/394/42 245/395/42 +f 248/396/45 249/397/45 247/394/45 +f 246/393/47 250/398/47 251/399/47 +f 246/393/46 252/400/46 248/396/46 +f 247/394/51 250/401/51 245/395/51 +f 188/291/42 189/326/42 190/292/42 +f 174/294/43 173/318/43 175/295/43 +f 178/297/43 171/315/43 174/298/43 +f 177/300/43 172/302/43 171/301/43 +f 172/302/44 188/291/44 185/293/44 +f 175/295/43 173/313/43 172/303/43 +f 177/300/45 181/305/45 179/304/45 +f 175/295/46 179/304/46 180/307/46 +f 176/299/47 180/309/47 182/308/47 +f 178/297/44 182/308/44 181/305/44 +f 179/304/48 183/402/48 184/311/48 +f 184/312/49 183/403/49 181/305/49 +f 173/313/45 187/325/45 188/314/45 +f 171/315/47 185/323/47 186/316/47 +f 174/294/46 186/322/46 187/317/46 +f 192/319/46 196/336/46 195/320/46 +f 186/322/42 192/319/42 191/321/42 +f 185/323/42 190/292/42 192/324/42 +f 187/325/42 191/321/42 189/326/42 +f 195/320/43 198/341/43 199/327/43 +f 191/321/45 195/320/45 193/328/45 +f 190/292/47 194/330/47 196/329/47 +f 189/326/44 193/328/44 194/330/44 +f 200/331/47 204/350/47 202/332/47 +f 193/328/43 199/340/43 200/334/43 +f 200/331/43 197/333/43 196/329/43 +f 197/335/43 198/344/43 195/320/43 +f 203/337/42 207/347/42 208/338/42 +f 199/340/44 203/337/44 204/339/44 +f 198/341/45 201/348/45 203/342/45 +f 197/335/46 202/349/46 201/343/46 +f 205/345/45 209/353/45 211/346/45 +f 201/348/42 205/345/42 207/347/42 +f 202/349/42 206/354/42 205/345/42 +f 204/350/42 208/338/42 206/351/42 +f 210/352/43 212/404/43 211/346/43 +f 206/354/46 210/405/46 209/353/46 +f 206/351/47 208/338/47 212/355/47 +f 207/347/50 211/406/50 212/357/50 +f 215/358/44 216/361/44 214/359/44 +f 216/361/51 220/407/51 218/362/51 +f 213/360/52 217/408/52 219/363/52 +f 222/364/46 224/409/46 223/365/46 +f 225/367/44 228/372/44 227/368/44 +f 221/370/53 226/410/53 227/368/53 +f 222/371/43 227/368/43 228/372/43 +f 223/365/42 225/367/42 226/369/42 +f 231/374/47 232/382/47 230/375/47 +f 233/377/45 235/381/45 236/378/45 +f 229/380/42 234/411/42 236/378/42 +f 231/374/44 236/378/44 235/381/44 +f 232/382/43 235/381/43 233/383/43 +f 241/385/45 244/412/45 243/386/45 +f 239/388/44 241/385/44 242/387/44 +f 240/390/42 244/413/42 241/385/42 +f 237/389/43 242/387/43 243/391/43 +f 246/393/42 248/396/42 247/394/42 +f 248/396/45 252/414/45 249/397/45 +f 246/393/47 245/395/47 250/398/47 +f 246/393/46 251/415/46 252/400/46 +f 247/394/51 249/416/51 250/401/51 +o Plane.001 +v -5.000000 32.000000 -4.000000 +v -5.000000 32.000000 4.000000 +v 4.000000 32.000000 5.000000 +v -4.000000 32.000000 5.000000 +v 4.000000 32.000000 -5.000000 +v -4.000000 32.000000 -5.000000 +v 5.000000 32.000000 4.000000 +v 5.000000 32.000000 -4.000000 +v -5.000000 30.000000 -4.000000 +v -5.000000 30.000000 4.000000 +v 4.000000 30.000000 5.000000 +v -4.000000 30.000000 5.000000 +v 4.000000 30.000000 -5.000000 +v -4.000000 30.000000 -5.000000 +v 5.000000 30.000000 4.000000 +v 5.000000 30.000000 -4.000000 +v -7.000000 29.000000 -4.000000 +v -7.000000 29.000000 4.000000 +v 4.000000 29.000000 7.000000 +v -4.000000 29.000000 7.000000 +v 4.000000 29.000000 -7.000000 +v -4.000000 29.000000 -7.000000 +v 7.000000 29.000000 4.000000 +v 7.000000 29.000000 -4.000000 +v 3.000000 34.000000 3.000000 +v 3.000000 34.000000 -3.000000 +v -3.000000 34.000000 -3.000000 +v -3.000000 34.000000 3.000000 +v -4.500000 32.000000 -3.500000 +v -4.500000 32.000000 3.500000 +v 3.500000 32.000000 4.500000 +v -3.500000 32.000000 4.500000 +v 3.500000 32.000000 -4.500000 +v -3.500000 32.000000 -4.500000 +v 4.500000 32.000000 3.500000 +v 4.500000 32.000000 -3.500000 +v -4.500000 24.000000 -3.500000 +v -4.500000 24.000000 3.500000 +v 3.500000 24.000000 4.500000 +v -3.500000 24.000000 4.500000 +v 3.500000 24.000000 -4.500000 +v -3.500000 24.000000 -4.500000 +v 4.500000 24.000000 3.500000 +v 4.500000 24.000000 -3.500000 +v 3.500000 23.000000 3.500000 +v 3.500000 23.000000 -3.500000 +v -3.500000 23.000000 -3.500000 +v -3.500000 23.000000 3.500000 +v -1.500000 27.000000 -4.500000 +v 1.500000 27.000000 -4.500000 +v -1.500000 24.000000 -4.500000 +v 1.500000 24.000000 -4.500000 +v -1.500000 24.000000 -5.500000 +v -1.500000 26.000000 -5.500000 +v 1.500000 26.000000 -5.500000 +v 1.500000 24.000000 -5.500000 +v 2.000000 29.500000 -4.500000 +v 0.700962 28.750000 -4.500000 +v 0.700962 27.250000 -4.500000 +v 2.000000 26.500000 -4.500000 +v 3.299038 27.250000 -4.500000 +v 3.299038 28.750000 -4.500000 +v -2.000000 29.500000 -4.500000 +v -3.299038 28.750000 -4.500000 +v -3.299038 27.250000 -4.500000 +v -2.000000 26.500000 -4.500000 +v -0.700962 27.250000 -4.500000 +v -0.700962 28.750000 -4.500000 +v -2.000000 29.500000 -5.000000 +v -3.299038 28.750000 -5.000000 +v -3.299038 27.250000 -5.000000 +v -2.000000 26.500000 -5.000000 +v -0.700962 27.250000 -5.000000 +v -0.700962 28.750000 -5.000000 +v 2.000000 29.500000 -5.000000 +v 0.700962 28.750000 -5.000000 +v 0.700962 27.250000 -5.000000 +v 2.000000 26.500000 -5.000000 +v 3.299038 27.250000 -5.000000 +v 3.299038 28.750000 -5.000000 +v -0.500000 30.000000 -4.000000 +v -1.000000 30.000000 -4.500000 +v -1.000000 34.000000 -4.500000 +v -0.500000 34.000000 -4.000000 +v -1.000000 30.000000 -5.500000 +v -0.500000 30.000000 -6.000000 +v -0.500000 34.000000 -6.000000 +v -1.000000 34.000000 -5.500000 +v 1.000000 30.000000 -4.500000 +v 0.500000 30.000000 -4.000000 +v 0.500000 34.000000 -4.000000 +v 1.000000 34.000000 -4.500000 +v 0.500000 30.000000 -6.000000 +v 1.000000 30.000000 -5.500000 +v 1.000000 34.000000 -5.500000 +v 0.500000 34.000000 -6.000000 +v -1.000000 32.000000 -6.000000 +v 1.000000 32.000000 -6.000000 +v -1.000000 34.000000 -6.000000 +v 1.000000 34.000000 -6.000000 +v -2.000000 35.000000 -7.000000 +v -2.000000 31.000000 -7.000000 +v 2.000000 31.000000 -7.000000 +v 2.000000 35.000000 -7.000000 +v -1.500000 34.500000 -7.000000 +v -1.500000 31.500000 -7.000000 +v 1.500000 31.500000 -7.000000 +v 1.500000 34.500000 -7.000000 +v -1.000000 34.000000 -7.500000 +v -1.000000 32.000000 -7.500000 +v 1.000000 32.000000 -7.500000 +v 1.000000 34.000000 -7.500000 +v 4.500000 28.500000 2.000000 +v 4.500000 25.500000 2.000000 +v 4.500000 28.500000 -2.000000 +v 4.500000 25.500000 -2.000000 +v 5.500000 28.500000 -2.000000 +v 5.500000 28.500000 2.000000 +v 5.500000 25.500000 2.000000 +v 5.500000 25.500000 -2.000000 +v 5.500000 28.000000 1.500000 +v 5.500000 26.000000 1.500000 +v 5.500000 28.000000 -1.500000 +v 5.500000 26.000000 -1.500000 +v 6.000000 28.000000 -1.500000 +v 6.000000 28.000000 1.500000 +v 6.000000 26.000000 1.500000 +v 6.000000 26.000000 -1.500000 +v 6.750000 29.000000 0.250000 +v 7.250000 29.000000 0.250000 +v 6.750000 29.000000 -0.250000 +v 7.250000 29.000000 -0.250000 +v 6.750000 35.000000 -0.250000 +v 6.750000 35.000000 0.250000 +v 7.250000 35.000000 0.250000 +v 7.250000 35.000000 -0.250000 +v 5.250000 27.000000 -0.250000 +v 5.250000 27.000000 0.250000 +v 5.750000 27.000000 0.250000 +v 5.750000 27.000000 -0.250000 +v -1.500000 22.878681 -5.207107 +v -1.000000 22.525127 -4.853554 +v 1.000000 22.525127 -4.853554 +v 1.500000 22.878681 -5.207107 +v -1.000000 24.646446 -6.974874 +v -1.500000 24.292892 -6.621319 +v 1.500000 24.292892 -6.621319 +v 1.000000 24.646446 -6.974874 +v -1.500000 22.878677 -8.035534 +v -1.000000 23.232231 -8.389088 +v -1.000000 21.110912 -6.267767 +v -1.500000 21.464464 -6.621321 +v 1.500000 21.464464 -6.621321 +v 1.000000 21.110912 -6.267767 +v 1.000000 23.232231 -8.389088 +v 1.500000 22.878677 -8.035534 +v -1.000000 24.646446 -4.146446 +v -0.500000 24.292892 -3.792893 +v 0.500000 24.292892 -3.792893 +v 1.000000 24.646446 -4.146446 +v -0.500000 25.707108 -5.207107 +v -1.000000 25.353554 -4.853554 +v 1.000000 25.353554 -4.853554 +v 0.500000 25.707108 -5.207107 +v -1.000000 23.939339 -6.267766 +v -0.500000 24.292892 -6.621321 +v -0.500000 22.878681 -5.207107 +v -1.000000 23.232235 -5.560660 +v 1.000000 23.232235 -5.560660 +v 0.500000 22.878681 -5.207107 +v 0.500000 24.292892 -6.621321 +v 1.000000 23.939339 -6.267766 +v -5.500000 28.500000 -2.000000 +v -5.500000 28.500000 2.000000 +v -5.500000 25.500000 2.000000 +v -5.500000 25.500000 -2.000000 +v -4.500000 28.500000 -2.000000 +v -4.500000 28.500000 2.000000 +v -4.500000 25.500000 2.000000 +v -4.500000 25.500000 -2.000000 +v -6.500000 26.000000 3.000000 +v -6.500000 28.000000 5.000000 +v -6.500000 26.000000 1.000000 +v -6.500000 28.000000 1.000000 +v -5.500000 26.000000 0.000000 +v -5.500000 28.000000 0.000000 +v -5.100000 30.000000 -1.375000 +v -5.100000 32.000000 -1.375000 +v -5.100000 30.000000 -2.625000 +v -5.100000 32.000000 -2.625000 +v -5.200001 30.000000 -0.375000 +v -5.200001 32.000000 -0.375000 +v -5.200001 30.000000 -1.625000 +v -5.200001 32.000000 -1.625000 +v -5.300001 30.500000 0.000000 +v -5.300001 30.000000 0.000000 +v -5.300001 30.000000 -3.000000 +v -5.300001 30.500000 -3.000000 +v -5.000000 30.000000 -4.000000 +v -5.000000 30.500000 -4.000000 +v -5.000000 30.500000 1.000000 +v -5.000000 30.000000 1.000000 +vt 0.280000 0.046512 +vt 0.600000 0.093023 +vt 0.280000 0.093023 +vt 0.280000 0.093023 +vt 0.600000 0.046512 +vt 0.600000 0.093023 +vt 0.280000 0.093023 +vt 0.600000 0.046512 +vt 0.600000 0.093023 +vt 0.280000 0.093023 +vt 0.600000 0.046512 +vt 0.600000 0.093023 +vt 0.720000 0.046512 +vt 0.640000 0.093023 +vt 0.640000 0.046512 +vt 0.640000 0.093023 +vt 0.720000 0.046512 +vt 0.720000 0.093023 +vt 0.720000 0.046512 +vt 0.640000 0.093023 +vt 0.640000 0.046512 +vt 0.640000 0.093023 +vt 0.720000 0.046512 +vt 0.720000 0.093023 +vt 0.640000 0.046512 +vt 0.760000 0.000000 +vt 0.600000 0.000000 +vt 0.280000 0.046512 +vt 0.600000 0.000000 +vt 0.280000 0.046512 +vt 0.600000 -0.000000 +vt 0.640000 0.046512 +vt 0.280000 0.046512 +vt 0.600000 -0.000000 +vt 0.760000 0.000000 +vt 0.280000 -0.000000 +vt 0.600000 0.046512 +vt 0.560000 0.162791 +vt 0.320000 0.302326 +vt 0.320000 0.162791 +vt 0.560000 0.162791 +vt 0.320000 0.162791 +vt 0.560000 0.162791 +vt 0.720000 0.093023 +vt 0.680000 0.162791 +vt 0.680000 0.162791 +vt 0.720000 0.093023 +vt 0.680000 0.162791 +vt 0.680000 0.162791 +vt 0.280000 0.372093 +vt 0.320000 0.186047 +vt 0.320000 0.372093 +vt -0.000000 0.372093 +vt 0.280000 0.186047 +vt 0.000000 0.372093 +vt 0.280000 0.186047 +vt 0.280000 0.372093 +vt 0.280000 0.186047 +vt 0.320000 0.372093 +vt 0.280000 0.372093 +vt 0.320000 0.372093 +vt 0.000000 0.372093 +vt 0.000000 0.186047 +vt 0.280000 0.372093 +vt 0.000000 0.372093 +vt 0.320000 0.186047 +vt 0.320000 0.372093 +vt -0.000000 -0.000000 +vt 0.280000 0.162791 +vt -0.000000 0.162791 +vt -0.000000 0.186047 +vt 0.000000 0.186047 +vt 0.280000 0.162791 +vt 0.300000 0.162791 +vt 0.320000 0.186047 +vt 0.000000 0.186047 +vt 0.280000 0.162791 +vt 0.300000 0.162791 +vt 0.000000 0.162791 +vt 0.280000 0.186047 +vt 0.300000 0.162791 +vt 0.320000 0.186047 +vt 0.300000 0.162791 +vt 0.040000 0.441860 +vt 0.160000 0.395349 +vt 0.160000 0.441860 +vt 0.160000 0.372093 +vt 0.040000 0.395349 +vt 0.040000 0.372093 +vt 0.040000 0.465116 +vt 0.160000 0.465116 +vt -0.000000 0.395349 +vt -0.000000 0.465116 +vt 0.200000 0.395349 +vt 0.280000 0.372093 +vt 0.320000 0.418605 +vt 0.280000 0.418605 +vt 0.400000 0.372093 +vt 0.440000 0.418605 +vt 0.400000 0.418605 +vt 0.220000 0.372093 +vt 0.260000 0.418605 +vt 0.220000 0.418605 +vt 0.660000 0.465116 +vt 0.740000 0.418605 +vt 0.740000 0.465116 +vt 0.540000 0.418605 +vt 0.440000 0.406977 +vt 0.460000 0.348837 +vt 0.360000 0.465116 +vt 0.440000 0.418605 +vt 0.440000 0.465116 +vt 0.460000 0.465116 +vt 0.540000 0.465116 +vt 0.440000 0.523256 +vt 0.560000 0.476744 +vt 0.800000 0.406977 +vt 0.740000 0.395349 +vt 0.800000 0.395349 +vt 0.920000 0.406977 +vt 0.860000 0.395349 +vt 0.920000 0.395349 +vt 0.680000 0.406977 +vt 0.620000 0.395349 +vt 0.680000 0.395349 +vt 0.860000 0.406977 +vt 0.620000 0.406977 +vt 0.560000 0.395349 +vt 0.740000 0.406977 +vt 0.770035 0.472036 +vt 0.770035 0.411685 +vt 0.859930 0.441860 +vt 0.620000 0.406977 +vt 0.560000 0.395349 +vt 0.620000 0.395349 +vt 0.740000 0.406977 +vt 0.680000 0.395349 +vt 0.740000 0.395349 +vt 0.800000 0.406977 +vt 0.800000 0.395349 +vt 0.920000 0.406977 +vt 0.860000 0.395349 +vt 0.920000 0.395349 +vt 0.680000 0.406977 +vt 0.860000 0.406977 +vt 0.770035 0.472036 +vt 0.770035 0.411685 +vt 0.859930 0.441860 +vt 1.000000 0.139535 +vt 0.960000 0.046512 +vt 1.000000 0.046512 +vt 0.820000 0.139535 +vt 0.780000 0.046512 +vt 0.820000 0.046512 +vt 0.900000 0.151163 +vt 0.880000 0.186047 +vt 0.820000 0.174419 +vt 0.940000 0.139535 +vt 0.900000 0.046512 +vt 0.940000 0.046512 +vt 0.880000 0.139535 +vt 0.840000 0.046512 +vt 0.880000 0.046512 +vt 0.960000 0.139535 +vt 0.900000 0.139535 +vt 0.840000 0.139535 +vt 0.760000 0.046512 +vt 0.780000 0.139535 +vt 0.760000 0.139535 +vt 0.820000 0.034884 +vt 0.840000 0.000000 +vt 0.900000 0.011628 +vt 0.800000 0.279070 +vt 0.880000 0.232558 +vt 0.880000 0.279070 +vt 0.920000 0.395349 +vt 0.760000 0.302326 +vt 0.920000 0.302326 +vt 0.880000 0.279070 +vt 0.760000 0.302326 +vt 0.800000 0.279070 +vt 0.880000 0.279070 +vt 0.760000 0.302326 +vt 0.800000 0.279070 +vt 0.880000 0.279070 +vt 0.760000 0.302326 +vt 0.800000 0.279070 +vt 0.320000 0.372093 +vt 0.420000 0.360465 +vt 0.440000 0.372093 +vt 0.340000 0.313953 +vt 0.420000 0.313953 +vt 0.440000 0.302326 +vt 0.320000 0.302326 +vt 0.340000 0.360465 +vt 0.600000 0.186047 +vt 0.760000 0.255814 +vt 0.600000 0.255814 +vt 0.760000 0.162791 +vt 0.600000 0.162791 +vt 0.600000 0.279070 +vt 0.760000 0.279070 +vt 0.800000 0.255814 +vt 0.760000 0.186047 +vt 0.800000 0.186047 +vt 0.560000 0.186047 +vt 0.560000 0.255814 +vt 0.580000 0.290698 +vt 0.700000 0.337209 +vt 0.580000 0.337209 +vt 0.720000 0.337209 +vt 0.700000 0.290698 +vt 0.720000 0.290698 +vt 0.560000 0.290698 +vt 0.560000 0.337209 +vt 0.700000 0.279070 +vt 0.580000 0.279070 +vt 0.580000 0.348837 +vt 0.700000 0.348837 +vt 0.940000 0.290698 +vt 0.960000 0.232558 +vt 0.960000 0.290698 +vt 0.940000 0.430233 +vt 0.960000 0.441860 +vt 0.940000 0.441860 +vt 1.000000 0.290698 +vt 0.980000 0.430233 +vt 0.980000 0.290698 +vt 0.960000 0.430233 +vt 0.920000 0.430233 +vt 0.920000 0.290698 +vt 1.000000 0.232558 +vt 0.980000 0.232558 +vt 0.940000 0.232558 +vt 0.560000 0.465116 +vt 0.560000 0.418605 +vt 0.640000 0.418605 +vt 0.640000 0.465116 +vt 0.360000 0.418605 +vt 0.340000 0.465116 +vt 0.340000 0.418605 +vt 0.260000 0.372093 +vt 0.200000 0.418605 +vt 0.200000 0.372093 +vt 0.380000 0.372093 +vt 0.380000 0.418605 +vt 0.340000 0.418605 +vt 0.320000 0.372093 +vt 0.340000 0.372093 +vt 0.600000 0.255814 +vt 0.760000 0.186047 +vt 0.760000 0.255814 +vt 0.560000 0.186047 +vt 0.600000 0.186047 +vt 0.800000 0.255814 +vt 0.760000 0.162791 +vt 0.600000 0.279070 +vt 0.920000 0.186047 +vt 0.840000 0.232558 +vt 0.840000 0.186047 +vt 0.800000 0.186047 +vt 0.500000 1.000000 +vt 0.000000 0.534884 +vt 0.500000 0.534884 +vt 1.000000 1.000000 +vt 0.500000 0.534884 +vt 1.000000 0.534884 +vt 0.160000 0.476744 +vt 0.040000 0.465116 +vt 0.160000 0.465116 +vt 0.040000 0.476744 +vt -0.000000 0.465116 +vt 0.200000 0.476744 +vt 0.760000 0.000000 +vt 0.280000 0.000000 +vt 0.280000 -0.000000 +vt 0.760000 0.000000 +vt 0.280000 -0.000000 +vt 0.560000 0.302326 +vt 0.320000 0.162791 +vt 0.560000 0.162791 +vt 0.320000 0.162791 +vt 0.280000 -0.000000 +vt 0.000000 0.162791 +vt 0.000000 0.162791 +vt 0.280000 0.162791 +vt 0.200000 0.465116 +vt 0.440000 0.372093 +vt 0.660000 0.418605 +vt 0.540000 0.348837 +vt 0.560000 0.360465 +vt 0.560000 0.406977 +vt 0.460000 0.418605 +vt 0.440000 0.360465 +vt 0.560000 0.523256 +vt 0.540000 0.534884 +vt 0.460000 0.534884 +vt 0.440000 0.476744 +vt 0.560000 0.406977 +vt 0.829965 0.472036 +vt 0.740070 0.441860 +vt 0.829965 0.411685 +vt 0.560000 0.406977 +vt 0.829965 0.472036 +vt 0.740070 0.441860 +vt 0.829965 0.411685 +vt 0.820000 0.151163 +vt 0.900000 0.174419 +vt 0.840000 0.186047 +vt 0.900000 0.034884 +vt 0.820000 0.011628 +vt 0.880000 0.000000 +vt 0.800000 0.232558 +vt 0.760000 0.395349 +vt 0.920000 0.302326 +vt 0.920000 0.302326 +vt 0.920000 0.302326 +vt 1.000000 0.430233 +vt 0.920000 0.232558 +vt 0.560000 0.255814 +vt 0.800000 0.186047 +vt 0.600000 0.162791 +vt 0.760000 0.279070 +vt 1.000000 0.232558 +vt 0.800000 0.232558 +vt 0.000000 1.000000 +vt 0.500000 1.000000 +vt -0.000000 0.476744 +vt 0.200000 0.465116 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 0.7071 +vn 0.7071 0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn 0.4082 0.8165 -0.4082 +vn 0.4082 0.8165 0.4082 +vn 0.0000 0.8944 -0.4472 +vn -0.4472 0.8944 0.0000 +vn -0.4082 0.8165 0.4082 +vn 0.4472 0.8944 0.0000 +vn -0.4082 0.8165 -0.4082 +vn 0.0000 0.8944 0.4472 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.7071 -0.7071 +vn -0.7071 0.7071 0.0000 +vn 0.0000 0.7071 0.7071 +vn 0.7071 0.7071 0.0000 +vn 0.4851 0.7276 0.4851 +vn 0.4851 0.7276 -0.4851 +vn -0.4851 0.7276 -0.4851 +vn -0.4851 0.7276 0.4851 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.7071 -0.7071 0.0000 +vn 0.5774 -0.5774 -0.5774 +vn -0.7071 -0.7071 0.0000 +vn -0.5774 -0.5774 -0.5774 +vn 0.0000 -0.7071 0.7071 +vn -0.5774 -0.5774 0.5774 +vn 0.5774 -0.5774 0.5774 +vn 0.5000 0.8660 0.0000 +vn 0.5000 -0.8660 0.0000 +vn -0.5000 -0.8660 0.0000 +vn -0.5000 0.8660 0.0000 +vn 0.8000 -0.6000 0.0000 +vn -0.8000 0.6000 0.0000 +vn 0.7071 0.5000 -0.5000 +vn -0.7071 0.5000 -0.5000 +vn -0.7071 -0.5000 0.5000 +vn 0.7071 -0.5000 0.5000 +vn -0.9578 0.0000 -0.2873 +vn -0.9578 0.0000 0.2874 +vn -0.9578 0.0000 -0.2874 +vn -0.9578 0.0000 0.2873 +s off +f 264/417/54 255/418/54 256/419/54 +f 257/420/55 266/421/55 258/422/55 +f 253/423/56 262/424/56 254/425/56 +f 259/426/57 268/427/57 260/428/57 +f 261/429/58 258/430/58 266/431/58 +f 254/432/59 264/433/59 256/434/59 +f 267/435/60 255/436/60 263/437/60 +f 260/438/61 265/439/61 257/440/61 +f 268/441/62 273/442/62 265/439/62 +f 271/443/63 267/435/63 263/437/63 +f 265/444/64 274/445/64 266/421/64 +f 261/446/65 270/447/65 262/424/65 +f 270/447/66 264/433/66 262/448/66 +f 267/449/67 276/450/67 268/427/67 +f 266/431/68 269/451/68 261/429/68 +f 272/452/69 263/453/69 264/417/69 +f 279/454/70 277/455/70 278/456/70 +f 279/454/71 257/420/71 258/422/71 +f 280/457/72 253/423/72 254/425/72 +f 255/418/73 280/458/73 256/419/73 +f 278/459/74 259/426/74 260/428/74 +f 259/460/75 277/461/75 255/436/75 +f 260/438/76 257/440/76 278/462/76 +f 253/463/77 279/464/77 258/430/77 +f 254/432/78 256/434/78 280/465/78 +f 286/466/58 289/467/58 281/468/58 +f 285/469/55 294/470/55 286/466/55 +f 281/471/56 290/472/56 282/473/56 +f 296/474/61 285/475/61 288/476/61 +f 290/472/59 284/477/59 282/473/59 +f 287/478/57 296/474/57 288/476/57 +f 292/479/54 283/480/54 284/481/54 +f 283/480/60 295/482/60 287/483/60 +f 297/484/79 299/485/79 298/486/79 +f 293/487/80 299/485/80 294/470/80 +f 295/488/81 298/489/81 296/474/81 +f 296/474/82 298/490/82 293/491/82 +f 289/492/83 300/493/83 290/472/83 +f 289/467/84 294/470/84 299/494/84 +f 300/495/85 291/496/85 292/479/85 +f 290/472/86 300/497/86 292/498/86 +f 295/482/87 291/496/87 297/499/87 +f 307/500/55 305/501/55 306/502/55 +f 303/503/79 308/504/79 304/505/79 +f 302/506/71 306/502/71 301/507/71 +f 304/508/57 307/500/57 302/509/57 +f 303/510/56 306/502/56 305/501/56 +f 423/511/71 413/512/71 416/513/71 +f 419/514/85 411/515/85 410/516/85 +f 421/517/57 415/518/57 412/519/57 +f 394/520/85 406/521/85 395/522/85 +f 402/523/80 408/524/80 406/525/80 +f 396/526/57 408/527/57 399/528/57 +f 400/529/71 402/523/71 397/530/71 +f 396/531/73 400/529/73 398/532/73 +f 326/533/88 315/534/88 320/535/88 +f 324/536/89 319/537/89 318/538/89 +f 322/539/56 317/540/56 316/541/56 +f 325/542/57 320/535/57 319/537/57 +f 323/543/90 318/544/90 317/540/90 +f 321/545/91 316/541/91 315/534/91 +f 321/546/55 325/547/55 323/548/55 +f 329/549/90 312/550/90 311/551/90 +f 327/552/91 310/553/91 309/554/91 +f 332/555/88 309/554/88 314/556/88 +f 330/557/89 313/558/89 312/559/89 +f 328/560/56 311/551/56 310/553/56 +f 331/561/57 314/556/57 313/558/57 +f 327/562/55 331/563/55 329/564/55 +f 343/565/54 333/566/54 342/567/54 +f 347/568/57 341/569/57 346/570/57 +f 340/571/70 336/572/70 344/573/70 +f 335/574/56 337/575/56 334/576/56 +f 339/577/55 345/578/55 338/579/55 +f 336/580/59 334/576/59 333/566/59 +f 338/579/58 340/581/58 339/577/58 +f 346/570/61 348/582/61 347/568/61 +f 342/583/60 344/584/60 343/585/60 +f 346/586/79 342/587/79 334/588/79 +f 350/589/54 351/590/54 349/591/54 +f 353/592/55 355/593/55 354/594/55 +f 350/595/60 356/596/60 352/597/60 +f 351/598/59 354/599/59 349/600/59 +f 352/601/73 353/602/73 351/603/73 +f 350/589/85 354/594/85 355/593/85 +f 360/604/71 361/605/71 357/606/71 +f 361/605/55 363/607/55 362/608/55 +f 357/606/58 362/608/58 358/609/58 +f 358/609/80 363/607/80 359/610/80 +f 359/610/61 364/611/61 360/604/61 +f 371/612/57 369/613/57 370/614/57 +f 368/615/79 371/612/79 366/616/79 +f 365/617/70 369/613/70 367/618/70 +f 367/619/55 372/620/55 368/621/55 +f 366/622/54 370/614/54 365/623/54 +f 379/624/57 377/625/57 378/626/57 +f 375/627/55 380/628/55 376/629/55 +f 374/630/54 378/626/54 373/631/54 +f 376/632/79 379/624/79 374/633/79 +f 373/634/70 377/625/70 375/635/70 +f 382/636/92 392/637/92 384/638/92 +f 387/639/70 385/640/70 386/641/70 +f 384/638/57 387/639/57 382/636/57 +f 381/642/56 385/643/56 383/644/56 +f 383/644/55 388/645/55 384/638/55 +f 382/636/54 386/646/54 381/647/54 +f 383/644/93 390/648/93 381/642/93 +f 383/644/55 392/637/55 389/649/55 +f 381/647/54 391/650/54 382/636/54 +f 408/527/94 400/529/94 399/528/94 +f 398/651/95 402/523/95 401/652/95 +f 404/653/96 394/520/96 393/654/96 +f 405/655/97 395/656/97 406/657/97 +f 393/654/56 401/652/56 404/653/56 +f 424/658/94 416/513/94 415/518/94 +f 421/517/97 411/659/97 422/660/97 +f 420/661/96 410/516/96 409/662/96 +f 414/663/95 418/664/95 417/665/95 +f 414/663/56 420/661/56 409/662/56 +f 425/666/56 427/667/56 426/668/56 +f 425/666/55 432/669/55 428/670/55 +f 427/667/54 430/671/54 426/668/54 +f 428/670/79 431/672/79 427/667/79 +f 426/668/70 429/673/70 425/666/70 +f 433/674/56 436/675/56 435/676/56 +f 436/675/58 437/677/58 435/676/58 +f 440/678/56 441/679/56 439/680/56 +f 444/681/56 445/682/56 443/683/56 +f 447/684/56 449/685/56 448/686/56 +f 450/687/98 451/688/98 449/685/98 +f 448/686/99 453/689/99 447/684/99 +f 264/417/54 263/453/54 255/418/54 +f 257/420/55 265/444/55 266/421/55 +f 253/423/56 261/446/56 262/424/56 +f 259/426/57 267/449/57 268/427/57 +f 261/429/58 253/463/58 258/430/58 +f 254/432/59 262/448/59 264/433/59 +f 267/435/60 259/460/60 255/436/60 +f 260/438/61 268/441/61 265/439/61 +f 268/441/62 276/450/62 273/442/62 +f 271/443/63 275/690/63 267/435/63 +f 265/444/64 273/691/64 274/445/64 +f 261/446/65 269/692/65 270/447/65 +f 270/447/66 272/693/66 264/433/66 +f 267/449/67 275/694/67 276/450/67 +f 266/431/68 274/445/68 269/451/68 +f 272/452/69 271/443/69 263/453/69 +f 279/454/70 280/695/70 277/455/70 +f 279/454/71 278/456/71 257/420/71 +f 280/457/72 279/696/72 253/423/72 +f 255/418/73 277/697/73 280/458/73 +f 278/459/74 277/698/74 259/426/74 +f 286/466/58 294/470/58 289/467/58 +f 285/469/55 293/487/55 294/470/55 +f 281/471/56 289/492/56 290/472/56 +f 296/474/61 293/491/61 285/475/61 +f 290/472/59 292/498/59 284/477/59 +f 287/478/57 295/488/57 296/474/57 +f 292/479/54 291/496/54 283/480/54 +f 283/480/60 291/496/60 295/482/60 +f 297/484/79 300/699/79 299/485/79 +f 293/487/80 298/486/80 299/485/80 +f 295/488/81 297/700/81 298/489/81 +f 289/492/83 299/701/83 300/493/83 +f 300/495/85 297/702/85 291/496/85 +f 307/500/55 308/504/55 305/501/55 +f 303/503/79 305/501/79 308/504/79 +f 302/506/71 307/500/71 306/502/71 +f 304/508/57 308/504/57 307/500/57 +f 303/510/56 301/703/56 306/502/56 +f 423/511/71 418/664/71 413/512/71 +f 419/514/85 422/704/85 411/515/85 +f 421/517/57 424/658/57 415/518/57 +f 394/520/85 403/705/85 406/521/85 +f 406/525/80 403/706/80 404/707/80 +f 404/707/80 401/708/80 406/525/80 +f 401/708/80 402/523/80 406/525/80 +f 402/523/80 407/709/80 408/524/80 +f 408/524/80 405/710/80 406/525/80 +f 396/526/57 405/655/57 408/527/57 +f 400/529/71 407/709/71 402/523/71 +f 398/532/73 393/711/73 396/531/73 +f 393/711/73 394/712/73 396/531/73 +f 394/712/73 395/713/73 396/531/73 +f 396/531/73 399/714/73 400/529/73 +f 400/529/73 397/530/73 398/532/73 +f 326/533/88 321/545/88 315/534/88 +f 324/536/89 325/542/89 319/537/89 +f 322/539/56 323/543/56 317/540/56 +f 325/542/57 326/533/57 320/535/57 +f 323/543/90 324/715/90 318/544/90 +f 321/545/91 322/539/91 316/541/91 +f 323/548/55 322/716/55 321/546/55 +f 321/546/55 326/717/55 325/547/55 +f 325/547/55 324/718/55 323/548/55 +f 329/549/90 330/719/90 312/550/90 +f 327/552/91 328/560/91 310/553/91 +f 332/555/88 327/552/88 309/554/88 +f 330/557/89 331/561/89 313/558/89 +f 328/560/56 329/549/56 311/551/56 +f 331/561/57 332/555/57 314/556/57 +f 329/564/55 328/720/55 327/562/55 +f 327/562/55 332/721/55 331/563/55 +f 331/563/55 330/722/55 329/564/55 +f 343/565/54 336/580/54 333/566/54 +f 347/568/57 344/584/57 341/569/57 +f 344/573/70 347/723/70 348/582/70 +f 348/582/70 339/577/70 340/571/70 +f 340/571/70 335/724/70 336/572/70 +f 336/572/70 343/725/70 344/573/70 +f 344/573/70 348/582/70 340/571/70 +f 335/574/56 340/581/56 337/575/56 +f 339/577/55 348/582/55 345/578/55 +f 336/580/59 335/574/59 334/576/59 +f 338/579/58 337/575/58 340/581/58 +f 346/570/61 345/578/61 348/582/61 +f 342/583/60 341/569/60 344/584/60 +f 334/588/79 337/726/79 338/579/79 +f 338/579/79 345/578/79 346/586/79 +f 346/586/79 341/727/79 342/587/79 +f 342/587/79 333/728/79 334/588/79 +f 334/588/79 338/579/79 346/586/79 +f 350/589/54 352/729/54 351/590/54 +f 353/592/55 356/730/55 355/593/55 +f 350/595/60 355/731/60 356/596/60 +f 351/598/59 353/732/59 354/599/59 +f 352/601/73 356/733/73 353/602/73 +f 350/589/85 349/591/85 354/594/85 +f 360/604/71 364/611/71 361/605/71 +f 361/605/55 364/611/55 363/607/55 +f 357/606/58 361/605/58 362/608/58 +f 358/609/80 362/608/80 363/607/80 +f 359/610/61 363/607/61 364/611/61 +f 371/612/57 372/620/57 369/613/57 +f 368/615/79 372/620/79 371/612/79 +f 365/617/70 370/614/70 369/613/70 +f 367/619/55 369/613/55 372/620/55 +f 366/622/54 371/612/54 370/614/54 +f 379/624/57 380/628/57 377/625/57 +f 375/627/55 377/625/55 380/628/55 +f 374/630/54 379/624/54 378/626/54 +f 376/632/79 380/628/79 379/624/79 +f 373/634/70 378/626/70 377/625/70 +f 382/636/92 391/650/92 392/637/92 +f 387/639/70 388/645/70 385/640/70 +f 384/638/57 388/645/57 387/639/57 +f 381/642/56 386/734/56 385/643/56 +f 383/644/55 385/643/55 388/645/55 +f 382/636/54 387/639/54 386/646/54 +f 383/644/93 389/649/93 390/648/93 +f 383/644/55 384/638/55 392/637/55 +f 381/647/54 390/735/54 391/650/54 +f 408/527/94 407/709/94 400/529/94 +f 398/651/95 397/530/95 402/523/95 +f 404/653/96 403/705/96 394/520/96 +f 405/655/97 396/526/97 395/656/97 +f 393/654/56 398/651/56 401/652/56 +f 424/658/94 423/511/94 416/513/94 +f 421/517/97 412/519/97 411/659/97 +f 420/661/96 419/514/96 410/516/96 +f 414/663/95 413/512/95 418/664/95 +f 414/663/56 417/665/56 420/661/56 +f 425/666/56 428/670/56 427/667/56 +f 425/666/55 429/736/55 432/669/55 +f 427/667/54 431/737/54 430/671/54 +f 428/670/79 432/738/79 431/672/79 +f 426/668/70 430/739/70 429/673/70 +f 433/674/56 434/740/56 436/675/56 +f 436/675/58 438/741/58 437/677/58 +f 440/678/56 442/742/56 441/679/56 +f 444/681/56 446/743/56 445/682/56 +f 447/684/56 450/687/56 449/685/56 +f 450/687/100 452/744/100 451/688/100 +f 448/686/101 454/745/101 453/689/101 +o Plane +v -4.000000 24.000000 2.000000 +v -4.000000 24.000000 -2.000000 +v 4.000000 24.000000 -2.000000 +v 1.500000 24.000000 -2.000000 +v 1.500000 24.000000 2.000000 +v 3.500000 24.000000 2.000000 +v 3.500000 24.000000 -2.000000 +v 4.000000 24.000000 2.000000 +v -4.000000 16.100000 -2.000000 +v 4.000000 16.100000 -2.000000 +v -4.000000 14.100000 -2.000000 +v 4.000000 14.100000 -2.000000 +v -4.000000 14.100000 -2.500000 +v -4.000000 16.100000 -2.500000 +v 4.000000 16.100000 -2.500000 +v 4.000000 14.100000 -2.500000 +v -4.000000 16.100000 2.000000 +v 4.000000 16.100000 2.000000 +v -4.000000 14.100000 2.000000 +v 4.000000 14.100000 2.000000 +v -4.000000 16.100000 2.500000 +v 4.000000 16.100000 2.500000 +v -4.000000 14.100000 2.500000 +v 4.000000 14.100000 2.500000 +v 4.500000 16.100000 -2.000000 +v 4.500000 14.100000 -2.000000 +v 4.500000 16.100000 2.000000 +v 4.500000 14.100000 2.000000 +v -4.500000 16.100000 -2.000000 +v -4.500000 14.100000 -2.000000 +v -4.500000 16.100000 2.000000 +v -4.500000 14.100000 2.000000 +v 4.000000 15.000000 2.000000 +v 4.000000 15.000000 -2.000000 +v -4.000000 15.000000 2.000000 +v -4.000000 15.000000 -2.000000 +v 4.000000 2.000000 5.000000 +v -4.000000 2.000000 5.000000 +v -5.000000 7.000000 2.000000 +v -5.000000 7.000000 -2.000000 +v 5.000000 7.000000 2.000000 +v 5.000000 7.000000 -2.000000 +v 0.000000 15.000000 -2.000000 +v 4.000000 9.000000 -3.000000 +v 2.000000 9.000000 -3.000000 +v -4.000000 9.000000 -3.000000 +v -2.000000 9.000000 -3.000000 +v -4.000000 12.000000 2.000000 +v -4.000000 12.000000 -2.000000 +v 4.000000 12.000000 -2.000000 +v 4.000000 12.000000 2.000000 +v -3.500000 24.000000 -2.000000 +v -3.500000 24.000000 2.000000 +v -1.500000 24.000000 2.000000 +v -1.500000 24.000000 -2.000000 +v 1.500000 22.000000 -2.000000 +v 1.500000 22.000000 2.000000 +v 3.500000 22.000000 2.000000 +v 3.500000 22.000000 -2.000000 +v -3.500000 22.000000 -2.000000 +v -3.500000 22.000000 2.000000 +v -1.500000 22.000000 2.000000 +v -1.500000 22.000000 -2.000000 +v 4.000000 22.000000 2.000000 +v 4.000000 22.000000 -2.000000 +v -4.000000 22.000000 -2.000000 +v -4.000000 22.000000 2.000000 +v 1.500000 24.000000 -3.000000 +v 3.500000 24.000000 -3.000000 +v -3.500000 24.000000 -3.000000 +v -1.500000 24.000000 -3.000000 +v 1.500000 22.000000 -3.000000 +v 3.500000 22.000000 -3.000000 +v -3.500000 22.000000 -3.000000 +v -1.500000 22.000000 -3.000000 +v 4.000000 22.000000 -3.000000 +v -4.000000 22.000000 -3.000000 +v 5.000000 22.000000 2.000000 +v 5.000000 22.000000 -2.000000 +v -5.000000 22.000000 -2.000000 +v -5.000000 22.000000 2.000000 +v 1.500000 24.000000 3.000000 +v 3.500000 24.000000 3.000000 +v -3.500000 24.000000 3.000000 +v -1.500000 24.000000 3.000000 +v 1.500000 22.000000 3.000000 +v 3.500000 22.000000 3.000000 +v -3.500000 22.000000 3.000000 +v -1.500000 22.000000 3.000000 +v 4.000000 22.000000 3.000000 +v -4.000000 22.000000 3.000000 +v 4.000000 18.000000 -3.000000 +v -4.000000 18.000000 -3.000000 +v 5.000000 17.000000 2.000000 +v 5.000000 17.000000 -2.000000 +v -5.000000 17.000000 -2.000000 +v -5.000000 17.000000 2.000000 +v 4.000000 18.000000 3.000000 +v -4.000000 18.000000 3.000000 +v 4.000000 17.000000 2.000000 +v 4.000000 17.000000 -2.000000 +v -4.000000 17.000000 -2.000000 +v -4.000000 17.000000 2.000000 +v 1.500000 25.000000 -2.000000 +v 1.500000 25.000000 2.000000 +v 3.500000 25.000000 2.000000 +v 3.500000 25.000000 -2.000000 +v -3.500000 25.000000 -2.000000 +v -3.500000 25.000000 2.000000 +v -1.500000 25.000000 2.000000 +v -1.500000 25.000000 -2.000000 +v -3.000000 13.000000 3.000000 +v 3.000000 13.000000 3.000000 +v -3.000000 23.000000 3.000000 +v 3.000000 23.000000 3.000000 +v -3.000000 23.000000 5.000000 +v 3.000000 23.000000 5.000000 +v -3.000000 21.000000 7.000000 +v -3.000000 13.000000 7.000000 +v 3.000000 13.000000 7.000000 +v 3.000000 21.000000 7.000000 +v -4.000000 19.000000 6.000000 +v -4.000000 14.000000 6.000000 +v -2.500000 11.500000 4.000000 +v 2.500000 11.500000 4.000000 +v -2.500000 10.085787 4.585787 +v 2.500000 10.085787 4.585787 +v -2.500000 9.500000 6.000000 +v 2.500000 9.500000 6.000000 +v -2.500000 10.085787 7.414213 +v 2.500000 10.085787 7.414213 +v -2.500000 11.500000 8.000000 +v 2.500000 11.500000 8.000000 +v -2.500000 12.914213 7.414213 +v 2.500000 12.914213 7.414213 +v -2.500000 13.500000 6.000000 +v 2.500000 13.500000 6.000000 +v -2.500000 12.914213 4.585787 +v 2.500000 12.914213 4.585787 +v -4.000000 14.000000 4.000000 +v -4.000000 19.000000 4.000000 +v -3.000000 13.000000 6.000000 +v -3.000000 19.000000 6.000000 +v -3.000000 13.000000 4.000000 +v -3.000000 19.000000 4.000000 +v -3.750000 19.000000 5.250000 +v -3.250000 19.000000 5.250000 +v -3.750000 19.000000 4.750000 +v -3.250000 19.000000 4.750000 +v -3.250000 20.000000 4.750000 +v -3.750000 20.000000 4.750000 +v -3.250000 20.000000 5.250000 +v -3.750000 20.000000 5.250000 +v -4.000000 20.000000 6.000000 +v -4.000000 20.000000 4.000000 +v -3.000000 20.000000 6.000000 +v -3.000000 20.000000 4.000000 +v -4.000000 22.000000 4.000000 +v -3.500000 22.000000 4.000000 +v -3.500000 22.000000 6.000000 +v -4.000000 22.000000 6.000000 +v -3.500000 20.000000 6.500000 +v -4.000000 20.000000 6.500000 +v -3.500000 21.000000 6.500000 +v -4.000000 21.000000 6.500000 +v -4.000000 20.000000 3.500000 +v -3.500000 20.000000 3.500000 +v -4.000000 21.000000 3.500000 +v -3.500000 21.000000 3.500000 +v 4.000000 19.000000 6.000000 +v 4.000000 14.000000 6.000000 +v 4.000000 14.000000 4.000000 +v 4.000000 19.000000 4.000000 +v 3.000000 19.000000 4.000000 +v 3.000000 13.000000 4.000000 +v 3.000000 19.000000 6.000000 +v 3.000000 13.000000 6.000000 +v 3.250000 19.000000 5.250000 +v 3.750000 19.000000 5.250000 +v 3.250000 19.000000 4.750000 +v 3.750000 19.000000 4.750000 +v 3.250000 22.000000 4.750000 +v 3.250000 22.000000 5.250000 +v 3.750000 22.000000 5.250000 +v 3.750000 22.000000 4.750000 +v 3.000000 21.500000 4.500000 +v 3.000000 21.500000 5.500000 +v 4.000000 21.500000 5.500000 +v 4.000000 21.500000 4.500000 +v 3.000000 20.000000 4.500000 +v 3.000000 20.000000 5.500000 +v 4.000000 20.000000 5.500000 +v 4.000000 20.000000 4.500000 +v 3.250000 21.250000 5.500000 +v 3.750000 21.250000 5.500000 +v 3.250000 20.250000 5.500000 +v 3.750000 20.250000 5.500000 +v 3.250000 20.750000 6.500000 +v 3.750000 20.750000 6.500000 +v 3.250000 20.250000 6.500000 +v 3.750000 20.250000 6.500000 +v 3.250000 20.250000 7.500000 +v 3.750000 20.250000 7.500000 +v 3.250000 19.750000 7.500000 +v 3.750000 19.750000 7.500000 +v 3.250000 21.250000 4.500000 +v 3.750000 21.250000 4.500000 +v 3.250000 20.250000 4.500000 +v 3.750000 20.250000 4.500000 +v 3.250000 20.750000 3.500000 +v 3.750000 20.750000 3.500000 +v 3.250000 20.250000 3.500000 +v 3.750000 20.250000 3.500000 +v 3.250000 20.250000 2.500000 +v 3.750000 20.250000 2.500000 +v 3.250000 19.750000 2.500000 +v 3.750000 19.750000 2.500000 +v -4.000000 23.000000 6.000000 +v 4.000000 23.000000 6.000000 +v -4.000000 21.585787 6.585787 +v 4.000000 21.585787 6.585787 +v -4.000000 21.000000 8.000000 +v 4.000000 21.000000 8.000000 +v -4.000000 21.585787 9.414213 +v 4.000000 21.585787 9.414213 +v -4.000000 23.000000 10.000000 +v 4.000000 23.000000 10.000000 +v -4.000000 24.414213 9.414213 +v 4.000000 24.414213 9.414213 +v -4.000000 25.000000 8.000000 +v 4.000000 25.000000 8.000000 +v -4.000000 24.414213 6.585787 +v 4.000000 24.414213 6.585787 +v -2.000000 14.000000 7.000000 +v 2.000000 14.000000 7.000000 +v -2.000000 18.000000 7.000000 +v 2.000000 18.000000 7.000000 +v -2.000000 18.000000 9.000000 +v -2.000000 14.000000 9.000000 +v 2.000000 14.000000 9.000000 +v 2.000000 18.000000 9.000000 +v 1.250000 18.000000 8.250000 +v 1.750000 18.000000 8.250000 +v 1.250000 18.000000 7.750000 +v 1.750000 18.000000 7.750000 +v 0.250000 18.000000 8.250000 +v 0.750000 18.000000 8.250000 +v 0.250000 18.000000 7.750000 +v 0.750000 18.000000 7.750000 +v 1.250000 19.000000 7.750000 +v 1.250000 19.000000 8.250000 +v 1.750000 19.000000 8.250000 +v 1.750000 19.000000 7.750000 +v 0.250000 19.000000 7.750000 +v 0.250000 19.000000 8.250000 +v 0.750000 19.000000 8.250000 +v 0.750000 19.000000 7.750000 +v 1.250000 22.000000 10.750000 +v 1.250000 22.000000 11.250000 +v 1.750000 22.000000 11.250000 +v 1.750000 22.000000 10.750000 +v 0.250000 22.000000 10.750000 +v 0.250000 22.000000 11.250000 +v 0.750000 22.000000 11.250000 +v 0.750000 22.000000 10.750000 +v 1.250000 28.000000 10.750000 +v 1.250000 28.000000 11.250000 +v 1.750000 28.000000 11.250000 +v 1.750000 28.000000 10.750000 +v 0.250000 24.000000 10.750000 +v 0.250000 24.000000 11.250000 +v 0.750000 24.000000 11.250000 +v 0.750000 24.000000 10.750000 +v -2.816987 12.381448 5.869995 +v -3.250000 12.405506 5.621155 +v -3.250000 12.381448 5.869995 +v -3.250000 15.367525 6.158691 +v -3.033494 12.369420 5.994413 +v -3.033494 15.355495 6.283112 +v -3.033494 12.345362 6.243254 +v -3.033494 15.331437 6.531950 +v -3.250000 12.333332 6.367672 +v -3.250000 15.319408 6.656370 +v -3.466506 12.345362 6.243254 +v -3.466506 15.331437 6.531950 +v -3.466506 12.369420 5.994413 +v -3.466506 15.355495 6.283112 +v -2.816987 12.333332 6.367672 +v -3.250000 12.309274 6.616512 +v -3.683012 12.333332 6.367672 +v -3.683012 12.381448 5.869995 +v -3.899518 11.398119 5.649342 +v -3.250000 11.434206 5.276081 +v -3.899518 11.325944 6.395861 +v -3.250000 11.289858 6.769119 +v -2.600481 11.325944 6.395861 +v -2.600481 11.398119 5.649342 +v -3.899518 10.402760 5.553108 +v -3.250000 10.438847 5.179850 +v -3.899518 10.330585 6.299629 +v -3.250000 10.294498 6.672888 +v -2.600481 10.330585 6.299629 +v -2.600481 10.402760 5.553108 +v -2.816987 11.859086 7.092363 +v -3.250000 11.817929 6.845776 +v -3.250000 11.859086 7.092363 +v -3.250000 14.818153 6.598488 +v -3.033494 11.879663 7.215658 +v -3.033494 14.838732 6.721783 +v -3.033494 11.920820 7.462248 +v -3.033494 14.879889 6.968372 +v -3.250000 11.941398 7.585541 +v -3.250000 14.900467 7.091665 +v -3.466506 11.920820 7.462248 +v -3.466506 14.879889 6.968372 +v -3.466506 11.879663 7.215658 +v -3.466506 14.838732 6.721783 +v -2.816987 11.941398 7.585541 +v -3.250000 11.982554 7.832130 +v -3.683012 11.941398 7.585541 +v -3.683012 11.859086 7.092363 +v -3.899518 10.852151 7.133694 +v -3.250000 10.790417 6.763811 +v -3.899518 10.975620 7.873461 +v -3.250000 11.037354 8.243345 +v -2.600481 10.975620 7.873461 +v -2.600481 10.852151 7.133694 +v -3.899518 9.865794 7.298319 +v -3.250000 9.804060 6.928434 +v -3.899518 9.989264 8.038086 +v -3.250000 10.050999 8.407970 +v -2.600481 9.989264 8.038086 +v -2.600481 9.865794 7.298319 +vt 0.629630 0.225000 +vt 0.611111 0.175000 +vt 0.629630 0.175000 +vt 0.620370 0.175000 +vt 0.675926 0.150000 +vt 0.675926 0.175000 +vt 0.648148 0.175000 +vt 0.629630 0.225000 +vt 0.629630 0.175000 +vt 0.712963 0.175000 +vt 0.722222 0.150000 +vt 0.722222 0.175000 +vt 0.333333 0.400000 +vt 0.481481 0.387500 +vt 0.481481 0.400000 +vt 0.092593 0.387500 +vt 0.240741 0.337500 +vt 0.240741 0.387500 +vt 0.240741 0.325000 +vt 0.092593 0.337500 +vt 0.092593 0.325000 +vt 0.092593 0.400000 +vt 0.240741 0.400000 +vt 0.092593 0.325000 +vt 0.166667 0.125000 +vt 0.166667 0.325000 +vt 0.203704 0.325000 +vt 0.351852 0.000000 +vt 0.351852 0.325000 +vt 0.481481 0.325000 +vt 0.333333 0.337500 +vt 0.333333 0.325000 +vt 0.481481 0.337500 +vt 0.009259 0.400000 +vt 0.083333 0.387500 +vt 0.083333 0.400000 +vt 0.083333 0.325000 +vt 0.009259 0.337500 +vt 0.009259 0.325000 +vt 0.250000 0.400000 +vt 0.324074 0.387500 +vt 0.324074 0.400000 +vt 0.324074 0.325000 +vt 0.250000 0.337500 +vt 0.250000 0.325000 +vt 0.324074 0.337500 +vt 0.083333 0.337500 +vt 0.083333 0.400000 +vt 0.083333 0.325000 +vt 0.000000 0.325000 +vt -0.000000 0.337500 +vt 0.009259 0.387500 +vt -0.000000 0.387500 +vt 0.000000 0.400000 +vt 0.324074 0.325000 +vt 0.333333 0.387500 +vt 0.324074 0.400000 +vt 0.240741 0.325000 +vt 0.250000 0.387500 +vt 0.240741 0.400000 +vt 0.388889 0.325000 +vt 0.462963 0.125000 +vt 0.462963 0.325000 +vt 0.203704 0.000000 +vt 0.388889 0.125000 +vt 0.481481 0.325000 +vt 0.518519 0.175000 +vt 0.555556 0.325000 +vt 0.074074 0.325000 +vt 0.037037 0.175000 +vt 0.074074 0.175000 +vt 0.481481 0.175000 +vt 0.092593 0.125000 +vt 0.296296 0.400000 +vt 0.444444 0.700000 +vt 0.296296 0.700000 +vt 0.222222 0.700000 +vt 0.074074 0.700000 +vt 0.222222 0.400000 +vt 0.000000 0.700000 +vt 0.074074 0.400000 +vt 0.703704 0.225000 +vt 0.685185 0.175000 +vt 0.703704 0.175000 +vt 0.574074 0.175000 +vt 0.555556 0.225000 +vt 0.555556 0.175000 +vt 0.574074 0.150000 +vt 0.583333 0.175000 +vt 0.574074 0.175000 +vt 0.574074 0.225000 +vt 0.685185 0.225000 +vt 0.481481 0.175000 +vt 0.555556 0.150000 +vt 0.555556 0.175000 +vt 0.740741 0.175000 +vt 0.814815 0.150000 +vt 0.814815 0.175000 +vt 0.574074 0.375000 +vt 0.555556 0.425000 +vt 0.555556 0.375000 +vt 0.972222 0.150000 +vt 0.981481 0.175000 +vt 0.972222 0.175000 +vt 0.833333 0.175000 +vt 0.842593 0.150000 +vt 0.842593 0.175000 +vt 0.648148 0.375000 +vt 0.629630 0.425000 +vt 0.629630 0.375000 +vt 0.629630 0.425000 +vt 0.611111 0.375000 +vt 0.629630 0.375000 +vt 0.879630 0.150000 +vt 0.935185 0.175000 +vt 0.879630 0.175000 +vt 0.703704 0.425000 +vt 0.685185 0.375000 +vt 0.703704 0.375000 +vt 1.000000 0.175000 +vt 0.981481 0.150000 +vt 0.814815 0.175000 +vt 0.833333 0.150000 +vt 0.740741 0.175000 +vt 0.555556 0.175000 +vt 1.000000 0.150000 +vt 0.981481 0.050000 +vt 1.000000 0.025000 +vt 0.574074 0.050000 +vt 0.833333 0.050000 +vt 0.481481 0.150000 +vt 0.555556 0.025000 +vt 0.740741 0.150000 +vt 0.722222 0.050000 +vt 0.740741 0.025000 +vt 0.814815 0.025000 +vt 0.620370 0.150000 +vt 0.583333 0.150000 +vt 0.685185 0.425000 +vt 0.574074 0.425000 +vt 0.814815 -0.000000 +vt 0.481481 0.025000 +vt 0.555556 0.000000 +vt 0.574074 0.025000 +vt 0.722222 0.025000 +vt 0.833333 0.025000 +vt 0.981481 0.025000 +vt 0.574074 0.250000 +vt 0.555556 0.350000 +vt 0.555556 0.250000 +vt 0.703704 0.350000 +vt 0.685185 0.250000 +vt 0.703704 0.250000 +vt 0.629630 0.350000 +vt 0.611111 0.250000 +vt 0.629630 0.250000 +vt 0.648148 0.250000 +vt 0.629630 0.350000 +vt 0.629630 0.250000 +vt 0.611111 0.350000 +vt 0.648148 0.350000 +vt 0.611111 0.225000 +vt 0.648148 0.225000 +vt 0.685185 0.350000 +vt 0.574074 0.350000 +vt 0.629630 0.350000 +vt 0.703704 0.350000 +vt 0.629630 0.350000 +vt 0.555556 0.350000 +vt 0.555556 0.250000 +vt 0.629630 0.250000 +vt 0.629630 0.250000 +vt 0.703704 0.250000 +vt 0.222222 0.800000 +vt 0.555556 0.775000 +vt 0.444444 0.525000 +vt 0.555556 0.525000 +vt 0.629630 0.825000 +vt 0.740741 0.775000 +vt 0.740741 0.825000 +vt 0.740741 0.725000 +vt 0.814815 0.525000 +vt 0.814815 0.775000 +vt 0.740741 0.525000 +vt 0.629630 0.425000 +vt 0.740741 0.425000 +vt 0.629630 0.725000 +vt 0.629630 0.525000 +vt 0.629630 0.775000 +vt 0.592593 0.775000 +vt 0.537037 0.850000 +vt 0.500000 0.900000 +vt 0.500000 0.850000 +vt 0.546296 0.900000 +vt 0.555556 0.875000 +vt 0.555556 0.900000 +vt 0.314815 0.925000 +vt 0.222222 0.962500 +vt 0.222222 0.925000 +vt 0.500000 0.775000 +vt 0.500000 0.825000 +vt 0.490741 0.800000 +vt 0.018519 0.850000 +vt 0.055556 0.875000 +vt 0.018519 0.875000 +vt 0.314815 0.962500 +vt 0.222222 1.000000 +vt 0.453704 0.775000 +vt 0.444444 0.800000 +vt 0.444444 0.775000 +vt 0.018519 0.700000 +vt 0.055556 0.725000 +vt 0.018519 0.725000 +vt 0.314815 0.700000 +vt 0.222222 0.737500 +vt 0.222222 0.700000 +vt 0.462963 0.775000 +vt 0.453704 0.800000 +vt 0.074074 0.850000 +vt 0.074074 0.700000 +vt 0.314815 0.737500 +vt 0.222222 0.775000 +vt 0.472222 0.775000 +vt 0.462963 0.800000 +vt 0.537037 0.912500 +vt 0.500000 0.912500 +vt 0.314815 0.775000 +vt 0.222222 0.812500 +vt 0.481481 0.775000 +vt 0.472222 0.800000 +vt 0.000000 0.850000 +vt 0.000000 0.700000 +vt 0.314815 0.812500 +vt 0.222222 0.850000 +vt 0.326344 0.715564 +vt 0.351852 0.701301 +vt 0.351852 0.798699 +vt 0.055556 0.850000 +vt 0.314815 0.850000 +vt 0.222222 0.887500 +vt 0.537037 0.825000 +vt 0.537037 0.775000 +vt 0.314815 0.887500 +vt 0.377360 0.815565 +vt 0.377360 0.884436 +vt 0.326344 0.884436 +vt 0.555556 0.850000 +vt 0.546296 0.875000 +vt 0.546296 0.850000 +vt 0.546296 0.837500 +vt 0.537037 0.900000 +vt 0.546296 0.800000 +vt 0.546296 0.825000 +vt 0.490741 0.850000 +vt 0.481481 0.875000 +vt 0.481481 0.850000 +vt 0.481481 0.900000 +vt 0.490741 0.875000 +vt 0.490741 0.900000 +vt 0.490741 0.837500 +vt 0.055556 0.725000 +vt 0.018519 0.850000 +vt 0.018519 0.725000 +vt 0.611111 0.887500 +vt 0.629630 0.912500 +vt 0.611111 0.912500 +vt 0.000000 0.850000 +vt 0.000000 0.700000 +vt 0.074074 0.850000 +vt 0.055556 0.850000 +vt 0.055556 0.700000 +vt 0.018519 0.875000 +vt 0.564815 0.850000 +vt 0.574074 0.862500 +vt 0.564815 0.862500 +vt 0.583333 0.775000 +vt 0.574074 0.850000 +vt 0.574074 0.775000 +vt 0.564815 0.775000 +vt 0.555556 0.850000 +vt 0.555556 0.775000 +vt 0.592593 0.775000 +vt 0.583333 0.850000 +vt 0.629630 0.825000 +vt 0.611111 0.850000 +vt 0.611111 0.825000 +vt 0.629630 0.887500 +vt 0.648148 0.850000 +vt 0.666667 0.887500 +vt 0.648148 0.887500 +vt 0.629630 0.850000 +vt 0.592593 0.850000 +vt 0.592593 0.887500 +vt 0.666667 0.862500 +vt 0.675926 0.837500 +vt 0.675926 0.862500 +vt 0.666667 0.887500 +vt 0.675926 0.887500 +vt 0.694444 0.887500 +vt 0.703704 0.862500 +vt 0.703704 0.887500 +vt 0.685185 0.862500 +vt 0.694444 0.862500 +vt 0.685185 0.887500 +vt 0.675926 0.825000 +vt 0.685185 0.837500 +vt 0.703704 0.837500 +vt 0.694444 0.837500 +vt 0.694444 0.862500 +vt 0.685185 0.837500 +vt 0.694444 0.837500 +vt 0.694444 0.887500 +vt 0.685185 0.862500 +vt 0.703704 0.862500 +vt 0.703704 0.887500 +vt 0.666667 0.887500 +vt 0.675926 0.862500 +vt 0.675926 0.887500 +vt 0.685185 0.887500 +vt 0.675926 0.837500 +vt 0.685185 0.825000 +vt 0.703704 0.837500 +vt 0.666667 0.862500 +vt 0.962963 0.662500 +vt 0.814815 0.700000 +vt 0.814815 0.662500 +vt 0.962963 0.700000 +vt 0.814815 0.737500 +vt 0.962963 0.437500 +vt 0.814815 0.475000 +vt 0.814815 0.437500 +vt 0.962963 0.475000 +vt 0.814815 0.512500 +vt 0.962963 0.512500 +vt 0.814815 0.550000 +vt 0.962963 0.550000 +vt 0.814815 0.587500 +vt 0.937455 0.253064 +vt 0.962963 0.238801 +vt 0.962963 0.336199 +vt 0.962963 0.587500 +vt 0.814815 0.625000 +vt 0.962963 0.625000 +vt 0.988471 0.353064 +vt 0.988471 0.421936 +vt 0.937455 0.421935 +vt 0.814815 0.225000 +vt 0.740741 0.325000 +vt 0.740741 0.225000 +vt 0.740741 0.375000 +vt 0.814815 0.325000 +vt 0.814815 0.375000 +vt 0.814815 0.175000 +vt 0.740741 0.175000 +vt 0.851852 0.325000 +vt 0.851852 0.225000 +vt 0.703704 0.225000 +vt 0.703704 0.325000 +vt 0.925926 0.200000 +vt 0.916667 0.275000 +vt 0.916667 0.200000 +vt 0.861111 0.200000 +vt 0.851852 0.275000 +vt 0.851852 0.200000 +vt 0.916667 0.175000 +vt 0.907407 0.200000 +vt 0.907407 0.175000 +vt 0.898148 0.175000 +vt 0.888889 0.200000 +vt 0.888889 0.175000 +vt 0.879630 0.175000 +vt 0.870370 0.200000 +vt 0.870370 0.175000 +vt 0.861111 0.175000 +vt 0.851852 0.175000 +vt 0.925926 0.175000 +vt 0.898148 0.200000 +vt 0.888889 0.175000 +vt 0.879630 0.200000 +vt 0.898148 0.275000 +vt 0.888889 0.325000 +vt 0.888889 0.275000 +vt 0.907407 0.325000 +vt 0.907407 0.275000 +vt 0.888889 0.200000 +vt 0.879630 0.275000 +vt 0.861111 0.275000 +vt 0.870370 0.275000 +vt 0.870370 0.425000 +vt 0.861111 0.437500 +vt 0.861111 0.425000 +vt 0.898148 0.337500 +vt 0.898148 0.325000 +vt 0.851852 0.425000 +vt 0.925926 0.275000 +vt 0.916667 0.325000 +vt 0.888889 0.275000 +vt 0.879630 0.425000 +vt 0.435185 0.800000 +vt 0.425926 0.825000 +vt 0.425926 0.800000 +vt 0.398148 0.787500 +vt 0.388889 0.800000 +vt 0.388889 0.787500 +vt 0.398148 0.712500 +vt 0.416667 0.800000 +vt 0.407407 0.825000 +vt 0.407407 0.800000 +vt 0.435185 0.787500 +vt 0.425926 0.787500 +vt 0.407407 0.712500 +vt 0.407407 0.787500 +vt 0.444444 0.800000 +vt 0.435185 0.825000 +vt 0.416667 0.787500 +vt 0.398148 0.850000 +vt 0.398148 0.825000 +vt 0.416667 0.712500 +vt 0.391360 0.711298 +vt 0.389201 0.706250 +vt 0.391360 0.701202 +vt 0.388889 0.825000 +vt 0.425926 0.712500 +vt 0.416667 0.825000 +vt 0.398148 0.800000 +vt 0.435185 0.712500 +vt 0.444444 0.787500 +vt 0.390314 0.856394 +vt 0.398148 0.850287 +vt 0.405982 0.856394 +vt 0.416667 0.850000 +vt 0.444444 0.825000 +vt 0.435185 0.850000 +vt 0.388889 0.850000 +vt 0.407407 0.850000 +vt 0.425926 0.850000 +vt 0.435185 0.800000 +vt 0.425926 0.825000 +vt 0.425926 0.800000 +vt 0.398148 0.787500 +vt 0.388889 0.800000 +vt 0.388889 0.787500 +vt 0.398148 0.712500 +vt 0.416667 0.800000 +vt 0.407407 0.825000 +vt 0.407407 0.800000 +vt 0.435185 0.787500 +vt 0.425926 0.787500 +vt 0.407407 0.787500 +vt 0.444444 0.800000 +vt 0.435185 0.825000 +vt 0.444444 0.787500 +vt 0.407407 0.712500 +vt 0.416667 0.787500 +vt 0.398148 0.825000 +vt 0.407407 0.850000 +vt 0.398148 0.850000 +vt 0.425926 0.712500 +vt 0.389201 0.706250 +vt 0.391360 0.701202 +vt 0.397836 0.706250 +vt 0.388889 0.825000 +vt 0.435185 0.712500 +vt 0.416667 0.825000 +vt 0.398148 0.800000 +vt 0.389102 0.862500 +vt 0.393625 0.851924 +vt 0.402671 0.851924 +vt 0.425926 0.850000 +vt 0.416667 0.850000 +vt 0.444444 0.825000 +vt 0.435185 0.850000 +vt 0.388889 0.850000 +vt 0.490741 0.825000 +vt 0.712963 0.150000 +vt -0.000000 0.325000 +vt 0.444444 0.400000 +vt 0.000000 0.400000 +vt 0.648148 0.425000 +vt 0.611111 0.425000 +vt 0.935185 0.150000 +vt 0.740741 -0.000000 +vt 0.481481 0.000000 +vt 0.074074 0.800000 +vt 0.444444 0.775000 +vt 0.777778 0.775000 +vt 0.314815 1.000000 +vt 0.055556 0.700000 +vt 0.481481 0.800000 +vt 0.377360 0.715564 +vt 0.387925 0.750000 +vt 0.377360 0.784436 +vt 0.326344 0.784436 +vt 0.315778 0.750000 +vt 0.315778 0.850000 +vt 0.326344 0.815564 +vt 0.351852 0.801301 +vt 0.387925 0.850000 +vt 0.351852 0.898699 +vt 0.074074 0.700000 +vt 0.018519 0.700000 +vt 0.055556 0.875000 +vt 0.592593 0.850000 +vt 0.666667 0.850000 +vt 0.666667 0.837500 +vt 0.685185 0.825000 +vt 0.675926 0.825000 +vt 0.666667 0.837500 +vt 0.962963 0.737500 +vt 0.988471 0.253064 +vt 0.999037 0.287500 +vt 0.988471 0.321936 +vt 0.937455 0.321936 +vt 0.926890 0.287500 +vt 0.926889 0.387500 +vt 0.937455 0.353064 +vt 0.962963 0.338801 +vt 0.999036 0.387500 +vt 0.962963 0.436199 +vt 0.870370 0.437500 +vt 0.907407 0.337500 +vt 0.925926 0.325000 +vt 0.888889 0.425000 +vt 0.388889 0.712500 +vt 0.395677 0.701202 +vt 0.397836 0.706250 +vt 0.395677 0.711298 +vt 0.444444 0.712500 +vt 0.405982 0.868606 +vt 0.398148 0.874712 +vt 0.390314 0.868606 +vt 0.444444 0.850000 +vt 0.388889 0.712500 +vt 0.416667 0.712500 +vt 0.395677 0.701202 +vt 0.395677 0.711298 +vt 0.391360 0.711298 +vt 0.444444 0.712500 +vt 0.407194 0.862500 +vt 0.402671 0.873076 +vt 0.393625 0.873076 +vt 0.444444 0.850000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -1.0000 0.0000 +vn -0.9923 0.1240 0.0000 +vn 0.0000 0.2249 0.9744 +vn 0.0000 0.0000 1.0000 +vn 0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.9923 0.1240 0.0000 +vn -0.8740 0.1093 0.4734 +vn 0.8740 0.1093 0.4734 +vn 0.0000 0.1644 -0.9864 +vn 0.7960 0.0995 -0.5970 +vn -0.7960 0.0995 -0.5970 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 0.7071 0.7071 +vn 0.0000 0.4472 0.8944 +vn 0.0000 -0.3827 -0.9239 +vn 0.8729 0.2182 -0.4364 +vn 0.0000 -0.9239 -0.3827 +vn -0.7071 -0.7071 0.0000 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 -0.3827 0.9239 +vn 0.0000 0.3827 0.9239 +vn 0.0000 0.9239 0.3827 +vn 0.0000 0.9239 -0.3827 +vn 0.9701 0.2425 0.0000 +vn 0.0000 0.3827 -0.9239 +vn 0.0000 0.4472 -0.8944 +vn 0.7071 -0.7071 0.0000 +vn 0.0000 0.8944 0.4472 +vn 0.0000 -0.8944 -0.4472 +vn 0.0000 0.8944 -0.4472 +vn 0.0000 -0.8944 0.4472 +vn -0.9774 0.2106 0.0204 +vn -0.0000 0.9954 0.0962 +vn 0.5000 0.0833 -0.8620 +vn 0.4887 0.1292 0.8628 +vn -0.4887 0.2921 -0.8221 +vn 0.5000 -0.0833 0.8620 +vn -0.5000 -0.0833 0.8620 +vn 0.4887 0.2921 -0.8221 +vn -0.4887 0.1292 0.8629 +vn -0.5000 0.0833 -0.8620 +vn 0.9774 0.2106 0.0204 +vn -0.0000 -0.9954 -0.0962 +vn -0.9774 0.2087 -0.0348 +vn 0.0000 0.9864 -0.1646 +vn 0.5000 -0.1426 -0.8542 +vn 0.4887 0.3481 0.8000 +vn -0.4887 0.0694 -0.8697 +vn 0.5000 0.1426 0.8542 +vn -0.5000 0.1426 0.8542 +vn 0.4887 0.0694 -0.8697 +vn -0.4887 0.3481 0.8000 +vn -0.5000 -0.1426 -0.8542 +vn 0.9774 0.2087 -0.0348 +vn 0.0000 -0.9864 0.1646 +vn 0.8729 0.2182 0.4364 +vn 0.4887 0.1292 0.8629 +vn -0.4887 0.1292 0.8628 +s off +f 458/746/102 526/747/102 510/748/102 +f 510/749/103 529/750/103 517/751/103 +f 529/752/104 509/753/104 517/754/104 +f 514/755/103 531/756/103 520/757/103 +f 471/758/103 476/759/103 472/760/103 +f 469/761/105 467/762/105 468/763/105 +f 465/764/106 470/765/106 466/766/106 +f 464/767/103 468/763/103 463/768/103 +f 490/769/107 493/770/107 489/771/107 +f 489/772/108 491/773/108 487/774/108 +f 474/775/106 477/776/106 473/777/106 +f 476/759/109 477/776/109 478/778/109 +f 472/779/103 479/780/103 464/781/103 +f 466/782/106 482/783/106 474/784/106 +f 463/785/103 485/786/103 471/787/103 +f 473/788/106 484/789/106 465/790/106 +f 485/786/102 484/789/102 486/791/102 +f 479/780/104 482/783/104 480/792/104 +f 479/780/110 470/765/110 469/761/110 +f 464/767/103 479/793/103 469/761/103 +f 466/766/106 470/765/106 480/794/106 +f 474/784/106 482/783/106 478/795/106 +f 478/796/111 481/797/111 476/798/111 +f 472/779/103 476/799/103 481/797/103 +f 473/777/106 477/776/106 486/800/106 +f 485/786/112 477/776/112 475/801/112 +f 471/758/103 485/802/103 475/801/103 +f 465/790/106 484/789/106 467/803/106 +f 467/762/113 483/804/113 468/763/113 +f 463/785/103 468/805/103 483/804/103 +f 487/806/114 496/807/114 488/808/114 +f 489/772/115 493/770/115 492/809/115 +f 487/774/116 491/773/116 495/810/116 +f 488/811/117 499/812/117 497/813/117 +f 490/814/117 501/815/117 500/816/117 +f 488/808/118 496/807/118 498/817/118 +f 490/769/119 500/816/119 494/818/119 +f 502/819/109 462/820/109 455/821/109 +f 456/822/102 502/819/102 455/821/102 +f 457/823/105 503/824/105 456/822/105 +f 462/825/104 504/826/104 457/823/104 +f 506/827/102 528/828/102 514/829/102 +f 527/830/104 461/831/104 513/832/104 +f 530/833/103 513/834/103 519/835/103 +f 526/747/105 523/836/105 527/830/105 +f 524/837/105 529/752/105 528/828/105 +f 518/838/103 533/839/103 519/840/103 +f 520/841/103 535/842/103 521/843/103 +f 537/844/104 512/845/104 460/846/104 +f 541/847/103 518/848/103 512/849/103 +f 521/850/103 542/851/103 515/852/103 +f 539/853/104 516/854/104 508/855/104 +f 511/856/102 536/857/102 459/858/102 +f 543/859/103 511/860/103 516/861/103 +f 515/862/102 538/863/102 507/864/102 +f 532/865/103 518/848/103 544/866/103 +f 521/850/103 535/867/103 545/868/103 +f 520/757/103 531/756/103 534/869/103 +f 519/835/103 533/870/103 530/833/103 +f 532/871/111 552/872/111 548/873/111 +f 533/839/110 546/874/110 530/833/110 +f 535/842/112 553/875/112 545/868/112 +f 532/876/104 549/877/104 533/839/104 +f 534/878/113 547/879/113 550/880/113 +f 534/878/102 551/881/102 535/842/102 +f 526/882/105 527/883/105 546/874/105 +f 542/884/109 539/853/109 538/863/109 +f 536/857/109 541/885/109 537/844/109 +f 543/859/109 553/875/109 552/872/109 +f 550/880/106 557/886/106 551/881/106 +f 548/887/106 555/888/106 549/877/106 +f 549/877/120 555/889/120 546/874/120 +f 550/880/120 547/879/120 556/890/120 +f 546/874/120 556/890/120 547/879/120 +f 553/875/121 551/881/121 557/891/121 +f 552/872/121 554/892/121 548/873/121 +f 553/875/121 554/892/121 552/872/121 +f 561/893/104 460/894/104 461/895/104 +f 507/896/102 562/897/102 506/898/102 +f 459/899/102 558/900/102 458/901/102 +f 565/902/104 508/903/104 509/904/104 +f 559/905/103 561/893/103 558/900/103 +f 562/897/103 564/906/103 565/902/103 +f 522/907/122 561/893/122 523/836/122 +f 562/897/122 525/908/122 524/837/122 +f 539/853/123 563/909/123 538/863/123 +f 560/910/123 536/857/123 537/844/123 +f 459/858/102 536/857/102 559/911/102 +f 507/864/102 538/863/102 563/912/102 +f 508/855/104 564/913/104 539/853/104 +f 460/846/104 560/914/104 537/844/104 +f 461/831/104 523/836/104 561/915/104 +f 458/746/102 558/916/102 522/907/102 +f 509/753/104 525/908/104 565/917/104 +f 506/827/102 562/918/102 524/837/102 +f 455/919/103 457/823/103 456/822/103 +f 568/920/105 567/921/105 566/922/105 +f 568/923/103 571/924/103 569/925/103 +f 575/926/104 567/927/104 569/928/104 +f 574/929/106 566/930/106 567/931/106 +f 574/929/109 572/932/109 573/933/109 +f 570/934/123 575/926/123 571/924/123 +f 572/932/102 570/935/102 568/920/102 +f 608/936/102 612/937/102 609/938/102 +f 615/939/124 618/940/124 614/941/124 +f 579/942/125 580/943/125 578/944/125 +f 613/945/126 611/946/126 623/947/126 +f 595/948/103 597/949/103 599/950/103 +f 581/951/127 582/952/127 580/943/127 +f 602/953/105 604/954/105 603/955/105 +f 598/956/128 577/957/128 594/958/128 +f 583/959/129 584/960/129 582/961/129 +f 600/962/102 605/963/102 602/953/102 +f 597/964/109 577/957/109 596/965/109 +f 585/966/130 586/967/130 584/960/130 +f 601/968/109 607/969/109 600/962/109 +f 612/937/103 614/970/103 613/971/103 +f 587/972/131 588/973/131 586/967/131 +f 603/974/104 606/975/104 601/968/104 +f 594/958/105 599/976/105 598/977/105 +f 589/978/132 590/979/132 588/973/132 +f 585/980/104 583/981/104 591/982/104 +f 576/983/102 594/958/102 577/957/102 +f 591/984/133 592/985/133 590/979/133 +f 610/986/106 609/938/106 611/946/106 +f 611/946/134 614/987/134 610/986/134 +f 593/988/135 578/944/135 592/985/135 +f 584/989/102 588/990/102 592/991/102 +f 616/992/109 619/993/109 617/994/109 +f 608/936/106 616/995/106 617/994/106 +f 608/936/102 619/993/102 615/996/102 +f 610/986/111 618/997/111 616/998/111 +f 620/999/105 623/1000/105 621/1001/105 +f 613/1002/136 622/1003/136 612/1004/136 +f 609/938/106 621/1005/106 611/946/106 +f 609/938/102 622/1003/102 620/999/102 +f 626/1006/104 624/1007/104 625/1008/104 +f 642/1009/103 640/1010/103 641/1011/103 +f 625/1008/109 630/1012/109 631/1013/109 +f 626/1006/105 628/1014/105 627/1015/105 +f 625/1008/137 629/1016/137 626/1006/137 +f 627/1015/103 630/1017/103 624/1007/103 +f 638/1018/103 636/1019/103 637/1020/103 +f 634/1021/105 639/1022/105 635/1023/105 +f 633/1024/109 637/1025/109 632/1026/109 +f 635/1023/104 638/1018/104 633/1024/104 +f 632/1027/102 636/1028/102 634/1021/102 +f 644/1029/106 646/1030/106 645/1031/106 +f 646/1030/104 643/1032/104 642/1009/104 +f 644/1033/102 641/1034/102 640/1035/102 +f 647/1036/105 640/1035/105 643/1032/105 +f 645/1037/109 642/1009/109 641/1038/109 +f 654/1039/102 656/1040/102 652/1041/102 +f 650/1042/102 652/1041/102 648/1043/102 +f 651/1044/106 654/1045/106 650/1046/106 +f 651/1044/104 653/1047/104 655/1048/104 +f 648/1043/138 653/1047/138 649/1049/138 +f 658/1050/109 657/1051/109 656/1040/109 +f 655/1048/139 658/1052/139 654/1045/139 +f 655/1048/104 657/1051/104 659/1053/104 +f 652/1041/138 657/1051/138 653/1047/138 +f 666/1054/102 668/1055/102 670/1056/102 +f 662/1057/102 664/1058/102 666/1054/102 +f 662/1057/106 667/1059/106 663/1060/106 +f 663/1061/104 665/1062/104 661/1063/104 +f 661/1063/140 664/1058/140 660/1064/140 +f 669/1065/105 670/1066/105 668/1055/105 +f 666/1054/141 671/1067/141 667/1059/141 +f 667/1068/104 669/1065/104 665/1062/104 +f 665/1062/140 668/1055/140 664/1058/140 +f 673/1069/125 674/1070/125 672/1071/125 +f 675/1072/127 676/1073/127 674/1070/127 +f 677/1074/129 678/1075/129 676/1076/129 +f 679/1077/130 680/1078/130 678/1075/130 +f 681/1079/131 682/1080/131 680/1078/131 +f 683/1081/132 684/1082/132 682/1080/132 +f 679/1083/104 677/1084/104 685/1085/104 +f 685/1086/133 686/1087/133 684/1082/133 +f 687/1088/135 672/1071/135 686/1087/135 +f 678/1089/102 682/1090/102 686/1091/102 +f 694/1092/109 692/1093/109 693/1094/109 +f 690/1095/103 695/1096/103 691/1097/103 +f 689/1098/106 693/1094/106 688/1099/106 +f 691/1100/104 694/1092/104 689/1101/104 +f 688/1102/102 692/1093/102 690/1103/102 +f 708/1104/122 719/1105/122 711/1106/122 +f 705/1107/102 712/1108/102 704/1109/102 +f 703/1110/104 710/1111/104 701/1112/104 +f 700/1113/102 708/1114/102 702/1115/102 +f 699/1116/104 706/1117/104 697/1118/104 +f 696/1119/102 704/1109/102 698/1120/102 +f 702/1121/105 711/1106/105 703/1110/105 +f 701/1112/109 709/1122/109 700/1113/109 +f 698/1123/105 707/1124/105 699/1116/105 +f 697/1118/109 705/1107/109 696/1119/109 +f 717/1125/102 724/1126/102 716/1127/102 +f 719/1105/104 726/1128/104 718/1129/104 +f 710/1111/121 717/1125/121 709/1122/121 +f 704/1130/122 715/1131/122 707/1124/122 +f 706/1117/121 713/1132/121 705/1107/121 +f 710/1111/104 719/1105/104 718/1129/104 +f 709/1122/102 716/1127/102 708/1114/102 +f 706/1117/104 715/1131/104 714/1133/104 +f 722/1134/103 720/1135/103 721/1136/103 +f 726/1128/103 724/1137/103 725/1138/103 +f 715/1131/104 722/1134/104 714/1133/104 +f 713/1132/102 720/1139/102 712/1108/102 +f 716/1140/105 727/1141/105 719/1105/105 +f 718/1129/109 725/1138/109 717/1125/109 +f 712/1142/105 723/1143/105 715/1131/105 +f 714/1133/109 721/1136/109 713/1132/109 +f 745/1144/142 748/1145/142 744/1146/142 +f 732/1147/143 729/1148/143 730/1149/143 +f 730/1149/144 733/1150/144 732/1147/144 +f 743/1151/145 750/1152/145 742/1153/145 +f 740/1154/143 744/1146/143 738/1155/143 +f 732/1147/104 735/1156/104 734/1157/104 +f 729/1158/146 746/1159/146 745/1144/146 +f 740/1154/143 729/1158/143 745/1144/143 +f 735/1156/147 736/1160/147 734/1157/147 +f 750/1152/104 757/1161/104 751/1162/104 +f 738/1155/143 743/1151/143 736/1160/143 +f 737/1163/148 738/1155/148 736/1160/148 +f 739/1164/143 737/1165/143 735/1166/143 +f 729/1148/149 751/1162/149 747/1167/149 +f 739/1168/102 740/1154/102 738/1155/102 +f 743/1151/150 748/1145/150 749/1169/150 +f 734/1157/143 728/1170/143 732/1147/143 +f 741/1171/151 730/1172/151 740/1154/151 +f 734/1157/143 743/1151/143 742/1153/143 +f 742/1153/152 751/1162/152 728/1170/152 +f 755/1173/153 754/1174/153 752/1175/153 +f 748/1145/148 755/1176/148 749/1169/148 +f 747/1177/151 752/1178/151 746/1159/151 +f 747/1167/144 757/1161/144 753/1179/144 +f 750/1152/147 755/1176/147 756/1180/147 +f 748/1145/102 752/1178/102 754/1181/102 +f 775/1182/154 778/1183/154 774/1184/154 +f 762/1185/155 759/1186/155 760/1187/155 +f 760/1187/156 763/1188/156 762/1185/156 +f 773/1189/157 780/1190/157 772/1191/157 +f 770/1192/155 774/1184/155 768/1193/155 +f 763/1188/104 764/1194/104 762/1185/104 +f 759/1195/158 776/1196/158 775/1182/158 +f 760/1197/155 775/1182/155 770/1192/155 +f 765/1198/159 766/1199/159 764/1194/159 +f 781/1200/104 786/1201/104 787/1202/104 +f 768/1193/155 773/1189/155 766/1199/155 +f 766/1199/160 769/1203/160 768/1193/160 +f 767/1204/155 765/1205/155 761/1206/155 +f 759/1186/161 781/1200/161 777/1207/161 +f 768/1193/102 771/1208/102 770/1192/102 +f 773/1189/162 778/1183/162 779/1209/162 +f 762/1185/155 772/1191/155 758/1210/155 +f 771/1208/163 760/1197/163 770/1192/163 +f 764/1194/155 773/1189/155 772/1191/155 +f 758/1210/164 780/1190/164 781/1200/164 +f 785/1211/165 784/1212/165 782/1213/165 +f 779/1209/160 784/1214/160 785/1215/160 +f 777/1216/163 782/1217/163 776/1196/163 +f 777/1207/156 787/1202/156 783/1218/156 +f 779/1209/159 786/1201/159 780/1190/159 +f 776/1196/102 784/1214/102 778/1183/102 +f 618/997/166 610/986/166 614/987/166 +f 623/947/110 611/946/110 621/1219/110 +f 458/746/102 522/907/102 526/747/102 +f 510/749/103 526/882/103 529/750/103 +f 529/752/104 525/908/104 509/753/104 +f 514/755/103 528/1220/103 531/756/103 +f 471/758/103 475/801/103 476/759/103 +f 469/761/105 470/765/105 467/762/105 +f 465/764/106 467/762/106 470/765/106 +f 464/767/103 469/761/103 468/763/103 +f 490/769/107 494/818/107 493/770/107 +f 489/772/108 492/809/108 491/773/108 +f 474/775/106 478/778/106 477/776/106 +f 476/759/109 475/801/109 477/776/109 +f 472/779/103 481/797/103 479/780/103 +f 466/782/106 480/792/106 482/783/106 +f 463/785/103 483/804/103 485/786/103 +f 473/788/106 486/791/106 484/789/106 +f 485/786/102 483/804/102 484/789/102 +f 479/780/104 481/797/104 482/783/104 +f 479/780/110 480/792/110 470/765/110 +f 478/796/111 482/783/111 481/797/111 +f 485/786/112 486/791/112 477/776/112 +f 467/762/113 484/789/113 483/804/113 +f 487/806/114 495/810/114 496/807/114 +f 488/811/117 498/817/117 499/812/117 +f 490/814/117 497/1221/117 501/815/117 +f 502/819/109 505/1222/109 462/820/109 +f 456/822/102 503/824/102 502/819/102 +f 457/823/105 504/826/105 503/824/105 +f 462/825/104 505/1223/104 504/826/104 +f 506/827/102 524/837/102 528/828/102 +f 527/830/104 523/836/104 461/831/104 +f 530/833/103 527/883/103 513/834/103 +f 526/747/105 522/907/105 523/836/105 +f 524/837/105 525/908/105 529/752/105 +f 518/838/103 532/876/103 533/839/103 +f 520/841/103 534/878/103 535/842/103 +f 537/844/104 541/885/104 512/845/104 +f 541/847/103 544/866/103 518/848/103 +f 521/850/103 545/868/103 542/851/103 +f 539/853/104 543/1224/104 516/854/104 +f 511/856/102 540/1225/102 536/857/102 +f 543/859/103 540/1226/103 511/860/103 +f 515/862/102 542/884/102 538/863/102 +f 532/871/111 544/866/111 552/872/111 +f 533/839/110 549/877/110 546/874/110 +f 535/842/112 551/881/112 553/875/112 +f 532/876/104 548/887/104 549/877/104 +f 534/878/113 531/756/113 547/879/113 +f 534/878/102 550/880/102 551/881/102 +f 527/883/105 530/833/105 546/874/105 +f 546/874/105 547/879/105 529/750/105 +f 547/879/105 531/756/105 528/1220/105 +f 528/1220/105 529/750/105 547/879/105 +f 529/750/105 526/882/105 546/874/105 +f 542/884/109 543/1224/109 539/853/109 +f 536/857/109 540/1225/109 541/885/109 +f 544/866/109 541/847/109 552/872/109 +f 541/847/109 540/1226/109 552/872/109 +f 543/859/109 542/851/109 553/875/109 +f 542/851/109 545/868/109 553/875/109 +f 552/872/109 540/1226/109 543/859/109 +f 550/880/106 556/1227/106 557/886/106 +f 548/887/106 554/1228/106 555/888/106 +f 546/874/120 555/889/120 556/890/120 +f 553/875/121 557/891/121 554/892/121 +f 561/893/104 560/910/104 460/894/104 +f 507/896/102 563/909/102 562/897/102 +f 459/899/102 559/905/102 558/900/102 +f 565/902/104 564/906/104 508/903/104 +f 559/905/103 560/910/103 561/893/103 +f 562/897/103 563/909/103 564/906/103 +f 522/907/122 558/900/122 561/893/122 +f 562/897/122 565/902/122 525/908/122 +f 539/853/123 564/906/123 563/909/123 +f 560/910/123 559/905/123 536/857/123 +f 455/919/103 462/1229/103 457/823/103 +f 568/920/105 569/1230/105 567/921/105 +f 568/923/103 570/934/103 571/924/103 +f 569/928/104 571/1231/104 575/926/104 +f 575/926/104 574/929/104 567/927/104 +f 574/929/106 573/933/106 566/930/106 +f 574/929/109 575/926/109 572/932/109 +f 570/934/123 572/932/123 575/926/123 +f 568/920/102 566/922/102 572/932/102 +f 566/922/102 573/933/102 572/932/102 +f 608/936/102 615/996/102 612/937/102 +f 615/939/124 619/993/124 618/940/124 +f 579/942/125 581/951/125 580/943/125 +f 595/948/103 576/983/103 597/949/103 +f 581/951/127 583/1232/127 582/952/127 +f 602/953/105 605/963/105 604/954/105 +f 598/956/128 596/1233/128 577/957/128 +f 583/959/129 585/966/129 584/960/129 +f 600/962/102 607/969/102 605/963/102 +f 597/964/109 576/983/109 577/957/109 +f 585/966/130 587/972/130 586/967/130 +f 601/968/109 606/975/109 607/969/109 +f 612/937/103 615/996/103 614/970/103 +f 587/972/131 589/978/131 588/973/131 +f 603/974/104 604/1234/104 606/975/104 +f 594/958/105 595/948/105 599/976/105 +f 589/978/132 591/984/132 590/979/132 +f 583/981/104 581/1235/104 579/1236/104 +f 579/1236/104 593/1237/104 583/981/104 +f 593/1237/104 591/982/104 583/981/104 +f 591/982/104 589/1238/104 587/1239/104 +f 587/1239/104 585/980/104 591/982/104 +f 576/983/102 595/948/102 594/958/102 +f 591/984/133 593/988/133 592/985/133 +f 610/986/106 608/936/106 609/938/106 +f 611/946/134 613/945/134 614/987/134 +f 593/988/135 579/942/135 578/944/135 +f 592/991/102 578/1240/102 580/1241/102 +f 580/1241/102 582/1242/102 584/989/102 +f 584/989/102 586/1243/102 588/990/102 +f 588/990/102 590/1244/102 592/991/102 +f 592/991/102 580/1241/102 584/989/102 +f 616/992/109 618/940/109 619/993/109 +f 608/936/106 610/986/106 616/995/106 +f 608/936/102 617/994/102 619/993/102 +f 620/999/105 622/1003/105 623/1000/105 +f 613/1002/136 623/1000/136 622/1003/136 +f 609/938/106 620/999/106 621/1005/106 +f 609/938/102 612/937/102 622/1003/102 +f 626/1006/104 627/1015/104 624/1007/104 +f 642/1009/103 643/1032/103 640/1010/103 +f 625/1008/109 624/1007/109 630/1012/109 +f 626/1006/105 629/1245/105 628/1014/105 +f 625/1008/137 631/1246/137 629/1016/137 +f 627/1015/103 628/1247/103 630/1017/103 +f 638/1018/103 639/1022/103 636/1019/103 +f 634/1021/105 636/1028/105 639/1022/105 +f 633/1024/109 638/1018/109 637/1025/109 +f 635/1023/104 639/1022/104 638/1018/104 +f 632/1027/102 637/1248/102 636/1028/102 +f 644/1029/106 647/1036/106 646/1030/106 +f 646/1030/104 647/1036/104 643/1032/104 +f 644/1033/102 645/1249/102 641/1034/102 +f 647/1036/105 644/1033/105 640/1035/105 +f 645/1037/109 646/1030/109 642/1009/109 +f 654/1039/102 658/1250/102 656/1040/102 +f 650/1042/102 654/1039/102 652/1041/102 +f 651/1044/106 655/1048/106 654/1045/106 +f 651/1044/104 649/1049/104 653/1047/104 +f 648/1043/138 652/1041/138 653/1047/138 +f 658/1050/109 659/1251/109 657/1051/109 +f 655/1048/139 659/1053/139 658/1052/139 +f 655/1048/104 653/1047/104 657/1051/104 +f 652/1041/138 656/1040/138 657/1051/138 +f 666/1054/102 664/1058/102 668/1055/102 +f 662/1057/102 660/1064/102 664/1058/102 +f 662/1057/106 666/1054/106 667/1059/106 +f 663/1061/104 667/1068/104 665/1062/104 +f 661/1063/140 665/1062/140 664/1058/140 +f 669/1065/105 671/1252/105 670/1066/105 +f 666/1054/141 670/1056/141 671/1067/141 +f 667/1068/104 671/1253/104 669/1065/104 +f 665/1062/140 669/1065/140 668/1055/140 +f 673/1069/125 675/1072/125 674/1070/125 +f 675/1072/127 677/1254/127 676/1073/127 +f 677/1074/129 679/1077/129 678/1075/129 +f 679/1077/130 681/1079/130 680/1078/130 +f 681/1079/131 683/1081/131 682/1080/131 +f 683/1081/132 685/1086/132 684/1082/132 +f 677/1084/104 675/1255/104 673/1256/104 +f 673/1256/104 687/1257/104 677/1084/104 +f 687/1257/104 685/1085/104 677/1084/104 +f 685/1085/104 683/1258/104 681/1259/104 +f 681/1259/104 679/1083/104 685/1085/104 +f 685/1086/133 687/1088/133 686/1087/133 +f 687/1088/135 673/1069/135 672/1071/135 +f 686/1091/102 672/1260/102 674/1261/102 +f 674/1261/102 676/1262/102 678/1089/102 +f 678/1089/102 680/1263/102 682/1090/102 +f 682/1090/102 684/1264/102 686/1091/102 +f 686/1091/102 674/1261/102 678/1089/102 +f 694/1092/109 695/1096/109 692/1093/109 +f 690/1095/103 692/1093/103 695/1096/103 +f 689/1098/106 694/1092/106 693/1094/106 +f 691/1100/104 695/1096/104 694/1092/104 +f 688/1102/102 693/1094/102 692/1093/102 +f 708/1104/122 716/1140/122 719/1105/122 +f 705/1107/102 713/1132/102 712/1108/102 +f 703/1110/104 711/1106/104 710/1111/104 +f 700/1113/102 709/1122/102 708/1114/102 +f 699/1116/104 707/1124/104 706/1117/104 +f 696/1119/102 705/1107/102 704/1109/102 +f 702/1121/105 708/1104/105 711/1106/105 +f 701/1112/109 710/1111/109 709/1122/109 +f 698/1123/105 704/1130/105 707/1124/105 +f 697/1118/109 706/1117/109 705/1107/109 +f 717/1125/102 725/1138/102 724/1126/102 +f 719/1105/104 727/1141/104 726/1128/104 +f 710/1111/121 718/1129/121 717/1125/121 +f 704/1130/122 712/1142/122 715/1131/122 +f 706/1117/121 714/1133/121 713/1132/121 +f 710/1111/104 711/1106/104 719/1105/104 +f 709/1122/102 717/1125/102 716/1127/102 +f 706/1117/104 707/1124/104 715/1131/104 +f 722/1134/103 723/1265/103 720/1135/103 +f 726/1128/103 727/1266/103 724/1137/103 +f 715/1131/104 723/1143/104 722/1134/104 +f 713/1132/102 721/1136/102 720/1139/102 +f 716/1140/105 724/1267/105 727/1141/105 +f 718/1129/109 726/1128/109 725/1138/109 +f 712/1142/105 720/1268/105 723/1143/105 +f 714/1133/109 722/1134/109 721/1136/109 +f 745/1144/142 746/1159/142 748/1145/142 +f 732/1147/143 728/1170/143 729/1148/143 +f 730/1149/144 731/1269/144 733/1150/144 +f 743/1151/167 749/1169/167 750/1152/167 +f 740/1154/143 745/1144/143 744/1146/143 +f 732/1147/104 733/1150/104 735/1156/104 +f 729/1158/146 747/1177/146 746/1159/146 +f 740/1154/143 730/1172/143 729/1158/143 +f 735/1156/147 737/1163/147 736/1160/147 +f 750/1152/104 756/1180/104 757/1161/104 +f 738/1155/143 744/1146/143 743/1151/143 +f 737/1163/148 739/1168/148 738/1155/148 +f 735/1166/143 733/1270/143 739/1164/143 +f 733/1270/143 731/1271/143 739/1164/143 +f 731/1271/143 741/1272/143 739/1164/143 +f 729/1148/149 728/1170/149 751/1162/149 +f 739/1168/102 741/1171/102 740/1154/102 +f 743/1151/168 744/1146/168 748/1145/168 +f 734/1157/143 742/1153/143 728/1170/143 +f 741/1171/151 731/1273/151 730/1172/151 +f 734/1157/143 736/1160/143 743/1151/143 +f 742/1153/152 750/1152/152 751/1162/152 +f 752/1175/153 753/1274/153 755/1173/153 +f 753/1274/153 757/1275/153 755/1173/153 +f 757/1275/153 756/1276/153 755/1173/153 +f 748/1145/148 754/1181/148 755/1176/148 +f 747/1177/151 753/1277/151 752/1178/151 +f 747/1167/144 751/1162/144 757/1161/144 +f 750/1152/147 749/1169/147 755/1176/147 +f 748/1145/102 746/1159/102 752/1178/102 +f 775/1182/154 776/1196/154 778/1183/154 +f 762/1185/155 758/1210/155 759/1186/155 +f 760/1187/156 761/1278/156 763/1188/156 +f 773/1189/157 779/1209/157 780/1190/157 +f 770/1192/155 775/1182/155 774/1184/155 +f 763/1188/104 765/1198/104 764/1194/104 +f 759/1195/158 777/1216/158 776/1196/158 +f 760/1197/155 759/1195/155 775/1182/155 +f 765/1198/159 767/1279/159 766/1199/159 +f 781/1200/104 780/1190/104 786/1201/104 +f 768/1193/155 774/1184/155 773/1189/155 +f 766/1199/160 767/1279/160 769/1203/160 +f 765/1205/155 763/1280/155 761/1206/155 +f 761/1206/155 771/1281/155 769/1282/155 +f 769/1282/155 767/1204/155 761/1206/155 +f 759/1186/161 758/1210/161 781/1200/161 +f 768/1193/102 769/1203/102 771/1208/102 +f 773/1189/162 774/1184/162 778/1183/162 +f 762/1185/155 764/1194/155 772/1191/155 +f 771/1208/163 761/1283/163 760/1197/163 +f 764/1194/155 766/1199/155 773/1189/155 +f 758/1210/164 772/1191/164 780/1190/164 +f 782/1213/165 783/1284/165 787/1285/165 +f 787/1285/165 786/1286/165 782/1213/165 +f 786/1286/165 785/1211/165 782/1213/165 +f 779/1209/160 778/1183/160 784/1214/160 +f 777/1216/163 783/1287/163 782/1217/163 +f 777/1207/156 781/1200/156 787/1202/156 +f 779/1209/159 785/1215/159 786/1201/159 +f 776/1196/102 782/1217/102 784/1214/102 diff --git a/src/main/resources/assets/hbm/textures/armor/trenchmaster_chest.png b/src/main/resources/assets/hbm/textures/armor/trenchmaster_chest.png new file mode 100644 index 0000000000000000000000000000000000000000..4da3b0b03d638b82fbb42b3cf81958d0e248a33c GIT binary patch literal 1421 zcmV;81#zi;C<6vw{|Ja!0>?IvfjJ9=wz%eh-&94=d1phGnWhc4Z2 z(bIBUm*RS}ZwQKZyZ#7ni~1jUY_vFY3IiE#=M9n^k)}k+A}!J42M`?55=ran{ooU+ zFxX}h@><7TN6d0hj)Ie}JK$-C7noz%H$!iDJ(Kv7d6QTJuVIei1?Ctd>n&W9^(Kad zeSvkvImF?_8r8#wYYq+o3w8j%-h%!JOc$Kg3`))s@+oMidXAg$o~j(veG$a)iP z$TjPV)caS&0iwq(>Q>;}pyN3QFK%6SN=4m%O+mO-XxJ?XD$R3^UPg(_&)xwq?cK;k zRR4x7Y8R2E9@S@*-?a&eU*zR~w{^mGqr`&g41xg5%*BZWuVbP9d+oX!18g} zA!&2L4<#(1Pf=pgbS^>!f2?ivrjmUwy!M>4nv;;q*oe8yQJ&$D9e7^;q*ZJENA@}N zOS|)Ja{}z9cgo7TWI}10EQ!F1pI!Is&@kON>*3*{RRgD|r_toWmWa;*dl__i%JBko3}=$R&axq+)p-qb3@YV2LaE5*w<_d5ZD&ojp*Q#_ISU100Ymj+ipZ^4 zrkbYL!f@4GJQrr++u^gAnTGs_5!g2X97ZJu~npDv>;!_UBAhx3#`X1U%dkoQRhyMX`rdYwcn~*oNrviLYSMwV6v{hK$=Zp z!V$dwK`8Pj(J@9qYAVX^W|!{r5a4Ces1P=%gJkh{Z6byV=M#$ZL9+0D5`jJE;K{G% z``v_LYS=`PPAZhCUR8Ur*XkyWRc%Hy9X7PF@?qaTJ!%)a5d7viASdxQMIl zKK>qr7ZCl+pHTZF)p5mo4%yz|H0*bS|H`9IU8dWsRT&4k3mV1%_ARPkcb99#Rm%rC zb?Y(R-rzLMb!v^n7{DNDkj#xVzNqv3s|u3)P!wbwYj0vpil;ghC z?HXRg9K)!M$u%vp09V`9VUp35*$(6hb;xZ^kg?6t#N318 zAv*#QgkEN|8Gy}BR|ZGLLt4a=lAnphvp_YuWxn}!OQb9Wi5xQfV_GTBzxi5i&=P?Csk(RImWS?}*xi76p5E%CDvHKEY7iWb|L znWa#)@kn#_9OP=G>=&=985$)&Akl`n3aw=0#sG#~FMp0yUYv_&h71g(1abk;c&a|1 zrSqRL_-#cZuC`y63@}BI@<@K8fl89&OA@(Z&MxOWme@ z06?>T%OsdNJAb_of*@&2Itr)ho`?oDmrZPK)=$e_ObdAc*D!cIn;{4SdTiN-;~+@3=rpZ1;grGpB8SoT z!c$^gG!9>VXO(5c5dh@Hl0%6zS@wH>e{URca&oexrAYYnzSJ<^_xbkrmViAhtN@fU zE#LRq^Sta@n#c=;{6p&cuMt7Hr|tHiL4QVPU&ZRCv5F1CUcRqv&aG)gCn4Itrzl&b zY__s#&wnwu%l>+CaiPpT2!eq0K{7=D3z)aWs)(Yf)HWWz+)i=+_*;JRmA>8tL_+BJ zrK1P{5YjVa_iy~s*j_eiG-*V}G|WAsELZxGYL6M2K=i0Gh+2oeC`{x70w zJ>p+pR(egGde{!R1?0LV1UM36VLmK82#rLRdl~K(VjRTtfco*%?8gVr%{as;J`h8U#glUyQZ-_Yi$a=kQWJm#?=QT1< zZ#42iWZ&TIBTd-0@B6I#n)oY}7QKzRmVA(T5E_Xr_cA&ok{A430%LD9@;|)8buM1y RuZ{o!002ovPDHLkV1gAToa_Jq delta 1343 zcmV-F1;G093gQZoG=CXML_t(|ob6h_i{nNV{@$Md0Ch{cy~Y;Y6>37RbmuFUZ4Z)S zRVR=ty`=wOtE=teiYxax$ZogQ!4U#mWWjcm?Lq;ekz^w8jA^_NFuZqQDfq#9-IMF8)S6L`CEA6i6 zQpSlsvFW)DbS+~9Y*kvM_NFM3(T1Et(-I4CwOt)18Eu*ENS;uK+|~ve+Z=7oJt`lv zClEpCWj>z+*zR;ya8f>`L#!zMnMk|}Rg+s4n_s^~szQ(`AagjTmErR1uha&8@hbu* zyFS$~kqIki#eWaC+rIy9!OI!Q&o%=K0fE}4)kUyW=6^8*nA7W*8}PE4%vu_e<3KC1 z#h?v-xCOnKsoJT4${Oh;#jwSdnk0aVL~M(0N+!>Gf4fOd38`s`pN*&qrKVN3*w)M} zgQAURnzI+6P$N~pcwNoVB>e%YHpEqEB_HPl7<02YQh$4KE}9uLFp?6;B|!d6eZI)% zzhLl(nnYY}zbYACZ8bs{>UdsCMOW6RUwO4VXKw+KR{&O&f9d?{OJkPWPALdYcFFXf zqR8e#zUu7c&vG9E0IVrBM+5pz8b!)6VPH+*rP|F8x1g7=0U*Efs)lKqsy4mNHpT@+ z8Hq19pnsQ=v)2fWR@0IfT2$FJJ<3r)w6l1TvXsdvG%dMax1}g;*7W(@T0D`2THiUW z!Ya#p^^^qwIP15e*IY}0nbU1|^g1;ygNc=)KaGfbJ-bh%I)GNtkYEO4Kaik%7kL)rDX3kIV!+$VL+tQBGY5FIkK^)4}Ih+IfHmw%n ztPwe7*Y5?IZW6Y+Ozn*{LPXYltJU(?kmu<#8WGXc6PcKaq^k@WHW{t@h%U5?_+yjd zOhl+#FK^p4tvWJjD1V;r4C4rV&gyR*p|g+H*@^Tyn-~3&x{*1UfcQk@&@hU!1T(e_ z5P$7SO@CU)z&PG*s{;NrGWr*tCe}5Kp3mn9!;qd^w&5fU(=9qnt4%m(u)fG~yu0v> z7?+K6!3h8q#gb!*GkNy=`1oiXaCUaKr=`?K5CnXGe^0;x7FJae1Oa=VmtQLrd4q_* z%Uu5*Vkq~t+x`>C=*PjA-o`=n5gIdmBgc#pw&z~Dbb{BN!?CS(%+>roaY$+et?nVCo-iwvPlNAEd{VTtf zco*%?8gVr%{as;J`h8s-g=tm6V2C*T$Y!%?WdWY&wKC6OH1b5`(BSMNZ8+F=5Cp9I zn)oY}7QKzRmVA(T6dH*w_cD4TQWX4L0^?vb@;|K8awAPKBklkI002ovPDHLkV1m68 Bl=lDt diff --git a/src/main/resources/assets/hbm/textures/armor/trenchmaster_leg.png b/src/main/resources/assets/hbm/textures/armor/trenchmaster_leg.png new file mode 100644 index 0000000000000000000000000000000000000000..d527002d99ed423f46d40860eca5e486745d732e GIT binary patch literal 286 zcmV+(0pb3MP)dv*MhcsZ;O{2L@`Tg8g0g1sr%stK6d zpvJ%oli_=i2EC|*de;~@d|3T* kF? Date: Mon, 4 Sep 2023 16:59:45 -0400 Subject: [PATCH 287/432] Converted burst fire gun system to use NBT --- .../com/hbm/items/weapon/ItemGunBase.java | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/hbm/items/weapon/ItemGunBase.java b/src/main/java/com/hbm/items/weapon/ItemGunBase.java index 0bd0611f8..385801c3a 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGunBase.java +++ b/src/main/java/com/hbm/items/weapon/ItemGunBase.java @@ -56,7 +56,6 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu @SideOnly(Side.CLIENT) public boolean m2;// = false; - public int burstDuration = 0; public ItemGunBase(GunConfiguration config) { mainConfig = config; this.setMaxStackSize(1); @@ -133,7 +132,7 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu setIsMouseDown(stack, false); } - if(burstDuration > 0) { + if(getBurstDuration(stack) > 0) { if(altConfig == null) { if (world.getWorldTime() % mainConfig.firingDuration == 0 && tryShoot(stack, world, player, true)) { fire(stack, world, player); @@ -145,7 +144,8 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu } } - if(--burstDuration == 0) setDelay(stack, mainConfig.rateOfFire); + setBurstDuration(stack, getBurstDuration(stack) - 1); + if(getBurstDuration(stack) == 0) setDelay(stack, mainConfig.rateOfFire); } if(getIsAltDown(stack) && !isCurrentItem) { setIsAltDown(stack, false); @@ -303,8 +303,8 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu if(validConfig && main && tryShoot(stack, world, player, main)) { if(mainConfig.firingMode == GunConfiguration.FIRE_BURST){ - if(burstDuration <= 0) - burstDuration = mainConfig.firingDuration * mainConfig.roundsPerBurst; + if(getBurstDuration(stack) <= 0) + setBurstDuration(stack,mainConfig.firingDuration * mainConfig.roundsPerBurst); } else { fire(stack, world, player); setDelay(stack, mainConfig.rateOfFire); @@ -317,8 +317,8 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu if(!main && altConfig != null && tryShoot(stack, world, player, main)) { - if(altConfig.firingMode == GunConfiguration.FIRE_BURST && burstDuration <= 0){ - burstDuration = altConfig.firingDuration * altConfig.roundsPerBurst; + if(altConfig.firingMode == GunConfiguration.FIRE_BURST && getBurstDuration(stack) <= 0){ + setBurstDuration(stack,altConfig.firingDuration * altConfig.roundsPerBurst); } else { altFire(stack, world, player); setDelay(stack, altConfig.rateOfFire); @@ -673,6 +673,14 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu public static int getMagType(ItemStack stack) { return readNBT(stack, "magazineType"); } + /// Sets how long a burst fires for, only useful for burst fire weapons /// + public static void setBurstDuration(ItemStack stack, int i) { + writeNBT(stack, "bduration", i); + } + + public static int getBurstDuration(ItemStack stack) { + return readNBT(stack, "bduration"); + } /// queued casing for ejection /// public static void setCasing(ItemStack stack, BulletConfiguration bullet) { From bf400c3525ba758f261649e28c5643dda6fddfc5 Mon Sep 17 00:00:00 2001 From: 70000hp <105080577+70000hp@users.noreply.github.com> Date: Mon, 4 Sep 2023 16:31:38 -0400 Subject: [PATCH 288/432] Bomber Fixes Added a new helper function to WorldUtil which chunkloads an entity whenever it spawns and uses that helper function in the Airstrike Designator code to help the bombers load properly. Also turned the rancid if chains into switches --- .../com/hbm/items/tool/ItemBombCaller.java | 110 ++++++++++-------- src/main/java/com/hbm/world/WorldUtil.java | 37 +++++- 2 files changed, 95 insertions(+), 52 deletions(-) diff --git a/src/main/java/com/hbm/items/tool/ItemBombCaller.java b/src/main/java/com/hbm/items/tool/ItemBombCaller.java index 9d39a924d..29ec58ced 100644 --- a/src/main/java/com/hbm/items/tool/ItemBombCaller.java +++ b/src/main/java/com/hbm/items/tool/ItemBombCaller.java @@ -7,6 +7,7 @@ import com.hbm.lib.Library; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import com.hbm.world.WorldUtil; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; @@ -23,26 +24,38 @@ public class ItemBombCaller extends Item { } @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { list.add("Aim & click to call an airstrike!"); - if(itemstack.getItemDamage() == 0) - list.add("Type: Carpet bombing"); - if(itemstack.getItemDamage() == 1) - list.add("Type: Napalm"); - if(itemstack.getItemDamage() == 2) - list.add("Type: Poison gas"); - if(itemstack.getItemDamage() == 3) - list.add("Type: Agent orange"); - if(itemstack.getItemDamage() == 4) - list.add("Type: Atomic bomb"); - if(itemstack.getItemDamage() == 5) - list.add("Type: VT stinger rockets"); - if(itemstack.getItemDamage() == 6) - list.add("Type: PIP OH GOD"); - if(itemstack.getItemDamage() == 7) - list.add("Type: Cloud the cloud oh god the cloud"); + switch (stack.getItemDamage()) { + + case 1: + list.add("Type: Napalm"); + break; + case 2: + list.add("Type: Poison gas"); + break; + case 3: + list.add("Type: Agent orange"); + break; + case 4: + list.add("Type: Atomic bomb"); + break; + case 5: + list.add("Type: VT stinger rockets"); + break; + case 6: + list.add("Type: PIP OH GOD"); + break; + case 7: + list.add("Type: Cloud the cloud oh god the cloud"); + break; + default: + list.add("Type: Carpet bombing"); + + } + } @Override @@ -53,45 +66,40 @@ public class ItemBombCaller extends Item { int y = pos.blockY; int z = pos.blockZ; - boolean b = false; - if(!world.isRemote) { + switch(stack.getItemDamage()) { + case 1: + WorldUtil.loadAndSpawnEntityInWorld(EntityBomber.statFacNapalm(world, x, y, z)); + break; + case 2: + WorldUtil.loadAndSpawnEntityInWorld(EntityBomber.statFacChlorine(world, x, y, z)); + break; + case 3: + WorldUtil.loadAndSpawnEntityInWorld(EntityBomber.statFacOrange(world, x, y, z)); + break; + case 4: + WorldUtil.loadAndSpawnEntityInWorld(EntityBomber.statFacABomb(world, x, y, z)); + break; + case 5: + WorldUtil.loadAndSpawnEntityInWorld(EntityBomber.statFacStinger(world, x, y, z)); + break; + case 6: + WorldUtil.loadAndSpawnEntityInWorld(EntityBomber.statFacBoxcar(world, x, y, z)); + break; + case 7: + WorldUtil.loadAndSpawnEntityInWorld(EntityBomber.statFacPC(world, x, y, z)); + + default: + WorldUtil.loadAndSpawnEntityInWorld(EntityBomber.statFacCarpet(world, x, y, z)); + } + + player.addChatMessage(new ChatComponentText("Called in airstrike!")); + world.playSoundAtEntity(player, "hbm:item.techBleep", 1.0F, 1.0F); - if(stack.getItemDamage() == 0) - if(world.spawnEntityInWorld(EntityBomber.statFacCarpet(world, x, y, z))) - b = true; - if(stack.getItemDamage() == 1) - if(world.spawnEntityInWorld(EntityBomber.statFacNapalm(world, x, y, z))) - b = true; - if(stack.getItemDamage() == 2) - if(world.spawnEntityInWorld(EntityBomber.statFacChlorine(world, x, y, z))) - b = true; - if(stack.getItemDamage() == 3) - if(world.spawnEntityInWorld(EntityBomber.statFacOrange(world, x, y, z))) - b = true; - if(stack.getItemDamage() == 4) - if(world.spawnEntityInWorld(EntityBomber.statFacABomb(world, x, y, z))) - b = true; - if(stack.getItemDamage() == 5) - if(world.spawnEntityInWorld(EntityBomber.statFacStinger(world, x, y, z))) - b = true; - if(stack.getItemDamage() == 6) - if(world.spawnEntityInWorld(EntityBomber.statFacBoxcar(world, x, y, z))) - b = true; - if(stack.getItemDamage() == 7) - if(world.spawnEntityInWorld(EntityBomber.statFacPC(world, x, y, z))) - b = true; - - if(b) { - player.addChatMessage(new ChatComponentText("Called in airstrike!")); - world.playSoundAtEntity(player, "hbm:item.techBleep", 1.0F, 1.0F); - } else { - world.playSoundAtEntity(player, "hbm:item.techBoop", 1.0F, 1.0F); - } } - stack.stackSize -= b ? 1 : 0; + stack.stackSize -= 1; return stack; } diff --git a/src/main/java/com/hbm/world/WorldUtil.java b/src/main/java/com/hbm/world/WorldUtil.java index 89f1db25e..ec75eee2e 100644 --- a/src/main/java/com/hbm/world/WorldUtil.java +++ b/src/main/java/com/hbm/world/WorldUtil.java @@ -2,12 +2,15 @@ package com.hbm.world; import com.hbm.packet.BiomeSyncPacket; import com.hbm.packet.PacketDispatcher; - import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.entity.Entity; +import net.minecraft.util.MathHelper; import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.world.World; import net.minecraft.world.biome.BiomeGenBase; import net.minecraft.world.chunk.Chunk; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.EntityJoinWorldEvent; public class WorldUtil { @@ -31,6 +34,38 @@ public class WorldUtil { PacketDispatcher.wrapper.sendToAllAround(new BiomeSyncPacket(coord.chunkXPos, coord.chunkZPos, chunk.getBiomeArray()), new TargetPoint(world.provider.dimensionId, coord.getCenterXPos(), 128, coord.getCenterZPosition() /* who named you? */, 1024D)); } + /**Chunkloads the chunk the entity is going to spawn in and then spawns it + * @param entity The entity to be spawned**/ + + /*fun fact: this is based off of joinEntityInSurroundings in World + however, since mojang is staffed by field mice, that function is client side only and half-baked + */ + public static void loadAndSpawnEntityInWorld(Entity entity) + { + World world = entity.worldObj; + int chunkX = MathHelper.floor_double(entity.posX / 16.0D); + int chunkZ = MathHelper.floor_double(entity.posZ / 16.0D); + byte loadRadius = 2; + + for (int k = chunkX - loadRadius; k <= chunkX + loadRadius; ++k) + { + for (int l = chunkZ - loadRadius; l <= chunkZ + loadRadius; ++l) + { + world.getChunkFromChunkCoords(k, l); + } + } + + if (!world.loadedEntityList.contains(entity)) + { + if (!MinecraftForge.EVENT_BUS.post(new EntityJoinWorldEvent(entity, world))) + { + world.getChunkFromChunkCoords(chunkX, chunkZ).addEntity(entity); + world.loadedEntityList.add(entity); + world.onEntityAdded(entity); + } + } + } + public static void syncBiomeChange(World world, int x, int z) { Chunk chunk = world.getChunkFromBlockCoords(x, z); byte biome = chunk.getBiomeArray()[(z & 15) << 4 | (x & 15)]; From 7c1bd3ad40ec0a3fcf40a599b92a2b00d2101068 Mon Sep 17 00:00:00 2001 From: 70000hp <105080577+70000hp@users.noreply.github.com> Date: Mon, 4 Sep 2023 18:22:31 -0400 Subject: [PATCH 289/432] Cleaned up code and formatting --- .../com/hbm/items/tool/ItemBombCaller.java | 129 +++++++----------- src/main/java/com/hbm/world/WorldUtil.java | 4 +- 2 files changed, 53 insertions(+), 80 deletions(-) diff --git a/src/main/java/com/hbm/items/tool/ItemBombCaller.java b/src/main/java/com/hbm/items/tool/ItemBombCaller.java index 29ec58ced..5ea5c732e 100644 --- a/src/main/java/com/hbm/items/tool/ItemBombCaller.java +++ b/src/main/java/com/hbm/items/tool/ItemBombCaller.java @@ -17,108 +17,81 @@ import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; public class ItemBombCaller extends Item { - + public ItemBombCaller() { super(); - this.setHasSubtypes(true); + this.setHasSubtypes(true); } - + @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { list.add("Aim & click to call an airstrike!"); - switch (stack.getItemDamage()) { - - case 1: - list.add("Type: Napalm"); - break; - case 2: - list.add("Type: Poison gas"); - break; - case 3: - list.add("Type: Agent orange"); - break; - case 4: - list.add("Type: Atomic bomb"); - break; - case 5: - list.add("Type: VT stinger rockets"); - break; - case 6: - list.add("Type: PIP OH GOD"); - break; - case 7: - list.add("Type: Cloud the cloud oh god the cloud"); - break; - default: - list.add("Type: Carpet bombing"); + switch (stack.getItemDamage()) { + case 0: list.add("Type: Carpet bombing"); break; + case 1: list.add("Type: Napalm"); break; + case 2: list.add("Type: Poison gas"); break; + case 3: list.add("Type: Agent orange"); break; + case 4: list.add("Type: Atomic bomb"); break; + case 5: list.add("Type: VT stinger rockets"); break; + case 6: list.add("Type: PIP OH GOD"); break; + case 7: list.add("Type: Cloud the cloud oh god the cloud"); break; + default: list.add("Type: INVALID, Report it to mod creator"); } } - + @Override - public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) - { + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) + { MovingObjectPosition pos = Library.rayTrace(player, 500, 1); int x = pos.blockX; int y = pos.blockY; int z = pos.blockZ; - - if(!world.isRemote) + + if(!world.isRemote) { - switch(stack.getItemDamage()) { - case 1: - WorldUtil.loadAndSpawnEntityInWorld(EntityBomber.statFacNapalm(world, x, y, z)); - break; - case 2: - WorldUtil.loadAndSpawnEntityInWorld(EntityBomber.statFacChlorine(world, x, y, z)); - break; - case 3: - WorldUtil.loadAndSpawnEntityInWorld(EntityBomber.statFacOrange(world, x, y, z)); - break; - case 4: - WorldUtil.loadAndSpawnEntityInWorld(EntityBomber.statFacABomb(world, x, y, z)); - break; - case 5: - WorldUtil.loadAndSpawnEntityInWorld(EntityBomber.statFacStinger(world, x, y, z)); - break; - case 6: - WorldUtil.loadAndSpawnEntityInWorld(EntityBomber.statFacBoxcar(world, x, y, z)); - break; - case 7: - WorldUtil.loadAndSpawnEntityInWorld(EntityBomber.statFacPC(world, x, y, z)); + EntityBomber bomber; + switch(stack.getItemDamage()) { + + case 1: bomber = EntityBomber.statFacNapalm(world, x, y, z); break; + case 2: bomber = EntityBomber.statFacChlorine(world, x, y, z); break; + case 3: bomber = EntityBomber.statFacOrange(world, x, y, z); break; + case 4: bomber = EntityBomber.statFacABomb(world, x, y, z); break; + case 5: bomber = EntityBomber.statFacStinger(world, x, y, z); break; + case 6: bomber = EntityBomber.statFacBoxcar(world, x, y, z); break; + case 7: bomber = EntityBomber.statFacPC(world, x, y, z); break; + default: bomber = EntityBomber.statFacCarpet(world, x, y, z); - default: - WorldUtil.loadAndSpawnEntityInWorld(EntityBomber.statFacCarpet(world, x, y, z)); } - + WorldUtil.loadAndSpawnEntityInWorld(bomber); player.addChatMessage(new ChatComponentText("Called in airstrike!")); world.playSoundAtEntity(player, "hbm:item.techBleep", 1.0F, 1.0F); } - - stack.stackSize -= 1; - - return stack; - } - - @Override - @SideOnly(Side.CLIENT) - public void getSubItems(Item p_150895_1_, CreativeTabs p_150895_2_, List p_150895_3_) - { - p_150895_3_.add(new ItemStack(p_150895_1_, 1, 0)); - p_150895_3_.add(new ItemStack(p_150895_1_, 1, 1)); - p_150895_3_.add(new ItemStack(p_150895_1_, 1, 2)); - p_150895_3_.add(new ItemStack(p_150895_1_, 1, 3)); - p_150895_3_.add(new ItemStack(p_150895_1_, 1, 4)); - } - @Override + stack.stackSize -= 1; + + return stack; + } + + @Override @SideOnly(Side.CLIENT) - public boolean hasEffect(ItemStack p_77636_1_) - { - return p_77636_1_.getItemDamage() >= 4; - } + public void getSubItems(Item p_150895_1_, CreativeTabs p_150895_2_, List p_150895_3_) + { + p_150895_3_.add(new ItemStack(p_150895_1_, 1, 0)); + p_150895_3_.add(new ItemStack(p_150895_1_, 1, 1)); + p_150895_3_.add(new ItemStack(p_150895_1_, 1, 2)); + p_150895_3_.add(new ItemStack(p_150895_1_, 1, 3)); + p_150895_3_.add(new ItemStack(p_150895_1_, 1, 4)); + } + + @Override + @SideOnly(Side.CLIENT) + public boolean hasEffect(ItemStack p_77636_1_) + { + return p_77636_1_.getItemDamage() >= 4; + } } diff --git a/src/main/java/com/hbm/world/WorldUtil.java b/src/main/java/com/hbm/world/WorldUtil.java index ec75eee2e..9e6e06647 100644 --- a/src/main/java/com/hbm/world/WorldUtil.java +++ b/src/main/java/com/hbm/world/WorldUtil.java @@ -40,8 +40,8 @@ public class WorldUtil { /*fun fact: this is based off of joinEntityInSurroundings in World however, since mojang is staffed by field mice, that function is client side only and half-baked */ - public static void loadAndSpawnEntityInWorld(Entity entity) - { + public static void loadAndSpawnEntityInWorld(Entity entity) { + World world = entity.worldObj; int chunkX = MathHelper.floor_double(entity.posX / 16.0D); int chunkZ = MathHelper.floor_double(entity.posZ / 16.0D); From d9416f650c1c7155951d235fd2cf6c58d5a73abd Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 6 Sep 2023 15:13:22 +0200 Subject: [PATCH 290/432] textures, fixes --- src/main/java/com/hbm/blocks/ModBlocks.java | 2 +- src/main/resources/assets/hbm/lang/en_US.lang | 6 +++--- .../hbm/textures/armor/trenchmaster_arm.png | Bin 546 -> 1632 bytes .../hbm/textures/armor/trenchmaster_chest.png | Bin 1421 -> 6026 bytes .../textures/armor/trenchmaster_helmet.png | Bin 1394 -> 2471 bytes .../hbm/textures/armor/trenchmaster_leg.png | Bin 286 -> 1218 bytes 6 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 8adb34c14..5806db479 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -2271,7 +2271,7 @@ public class ModBlocks { reactor_research = new ReactorResearch(Material.iron).setBlockName("machine_reactor_small").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_reactor_small"); reactor_zirnox = new ReactorZirnox(Material.iron).setBlockName("machine_zirnox").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); zirnox_destroyed = new ZirnoxDestroyed(Material.iron).setBlockName("zirnox_destroyed").setHardness(100.0F).setResistance(800.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - machine_controller = new MachineReactorControl(Material.iron).setBlockName("machine_controller").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + machine_controller = new MachineReactorControl(Material.iron).setBlockName("machine_controller").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null); machine_boiler_off = new MachineBoiler(false).setBlockName("machine_boiler_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_boiler_off"); machine_boiler_on = new MachineBoiler(true).setBlockName("machine_boiler_on").setHardness(5.0F).setResistance(10.0F).setLightLevel(1.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":machine_boiler_on"); diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 56215f8d7..a6079a665 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -3615,8 +3615,8 @@ item.primer_buckshot.name=Buckshot Primer (x12) item.protection_charm.name=Charm of Protection item.prototype_kit.name=Prototype Kit item.pudding.name=Pudding -item.pwr_fuel.bfb_am_mix.name=Fuel Grade Americium PWR ZFB Rod -item.pwr_fuel.bfb_pu241.name=Plutonium-241 PWR ZFB Rod +item.pwr_fuel.bfb_am_mix.name=Fuel Grade Americium PWR BFB Rod +item.pwr_fuel.bfb_pu241.name=Plutonium-241 PWR BFB Rod item.pwr_fuel.hea242.name=HEA-242 PWR Fuel Rod item.pwr_fuel.hen237.name=HEN-237 PWR Fuel Rod item.pwr_fuel.hep239.name=HEP-239 PWR Fuel Rod @@ -5448,7 +5448,7 @@ tile.watz_end_bolted.name=Watz Reactor Stability Element (Riveted) tile.watz_hatch.name=Watz Reactor Access Hatch tile.watz_pump.name=Watz Pressure Pump tile.yellow_barrel.name=Radioactive Barrel -tile.zirnox_destroyed.name=Destroyed ZINROX +tile.zirnox_destroyed.name=Destroyed ZIRNOX trait.asbestos=Asbestos trait.blinding=Blinding diff --git a/src/main/resources/assets/hbm/textures/armor/trenchmaster_arm.png b/src/main/resources/assets/hbm/textures/armor/trenchmaster_arm.png index 57abed7bed4073b0df827b5b623e252bfb59d7f5..b42795dcc3fab4d15c2141733c0952920ab90397 100644 GIT binary patch delta 1600 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 Eg0+*E`Tzg` delta 1387 zcmV-x1(f=VFO3V3Gk*m{Nklzi;C<6vw{|Ja!0>?IvfjJ9=wz%eh-&94=d1 zphGnWhc4Z2(bIBUm*RS}ZwQKZyZ#7ni~1jUY_vFY3IiE#=M9n^k)}k+A}!J42M`?5 z5=ran{ooU+FxX}h@><7TN6d0hj)Ie}JK$-C7noz%H$!iDJ%5wg6Rx`0L$eP!AJ3sgwlQ` z1WYL1Pa?5@AHdkx;9SVN+TP?ZCS-X3-sF!(6ZHM9bo z&*!adcwF~Djjx;hqt>$A7v0_6VLToq2m)3z4#OJVo3ys{GD=iYW)g>n^SMNRPgvil zf3NRzAEb6GUjRJ(F6+;i**TZsML$G8Hfuk6`}lWw2`-<{J~!**dZ}T{Z_a`1!!f2?ivrjmUwy!M>4nv;;q*oe8yQJ&$D z9e7^;q*ZJENA@}NOS|)Ja{}z9cgo7TWI}10EQ!F1pI!Is&@kON>*3*{RRgD|r_toWmWa;*dl__i%JBko41Z^mzs|BDqt$s0a||yq$M7c6HfPlC z{Ee8R^BU$DUSN*lO`>gllsIg>z#PMyMBDf%ao9MoVNK@+7Uy87;Quvyh^d{kF){lz z+IfNX9v>wR8!s@&@FvkVK1v)mUSN*lO`>g*-Np1Fz@xJHzWGjvi$iR zK@b3E;kIlxO!yLv7tj8>0y#o?a=T44kpsB;P-+!uF zoNrviLYSMwV6v{hK$=Zp!V$dwK`8Pj(J@9qYAVX^W|!{r5a4Ces1P=%gJkh{Z6byV z=M#$ZL9+0D5`jJE;K{G%``v_LYS=`PPAZhCUR8Ur*XkyWRc%Hy9X7PF@?qaTF@$`46Ui)na%x5lS_OS$HKmx zOKggq1Jva*Z?g9P(zuAL>^}Y;gclI~%b!sDBh_)mdJfs%;56)aga68-PF<$kt5q2X zxCLc!J$X@^e002ovPDHLkV1l6J$9Vt% diff --git a/src/main/resources/assets/hbm/textures/armor/trenchmaster_helmet.png b/src/main/resources/assets/hbm/textures/armor/trenchmaster_helmet.png index 14977368f83717e274b72d0676ec1b2f59d6359d..e8b93143321db8bc97e495b3eaad25d5df369e85 100644 GIT binary patch delta 2446 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 STN9Gk*kmNklUX2vn-z8{y$-9zazQ zujfh!0K-4~z>U#C}7gA+l}x`o4$0x7H#_ z;&kbpgNQ&x;JruJb#TtXIk!Ev*`8ZOkR(Z13jn~!%1{}23!di>EuD9kGkHd+1 zATr+fJ*ujLwH7BQC&3!rShKQPtpEUNng%OqfX=zFuW`=d=H@1B#8Z)lJkJB8d7eki z(6j(BpU+{fg@_=}^XPz@k;}`=F#q=U7G2i`*7ZT=^MCo)#3F*CC?F!}`ySTXa8mDm zG*%Qv8zm)4+ta7Dq=%0f;dMbzQ@I zkI`tfHyFrNRaKGchQ7!{tyU{I=a6L?hGMM^hpy`yiM1AO+XnOYeUHBHAtLCyE{fKw zs-h?)V}HC-%CZde_5}>b>bj21uT4zdgl3{+l4|X^TwvcRwfXcMvdnv(dVaRYa4!)- z=*!+}dvyQy*?NC{sgv{bbH6X*DD*e_2u(wOrH)SO%mzT5J}8_IY*W>~WY2w*eZDXR zr!zeB8^LjW=%ZY3SS>V2>JV7hbs-;fEb03m`4K6PDhqgY3>P9NM@vv_xRx7Qc)JdbuF zsA2ikP07$w`kpRhy!W`iz78j*ZxP&VHVc#Q@9%&5mFvfkA3_kb*(}s*Eh2)etE-T( zxqmOo(A^D7ow3$N<%eJhlqKik;o+B`;1-L8=rT1FmQDiKdb(^<&wCF!J3I62QdmK# zNK;o;h2?Vju5X0X>C|Ug_A2>OoO8ja>HBmq{->KYO@l~`u6Pe<(B}&x#g^50(d$!4B;&rLh{$#CvcOZR4 zWHOofG)+Sk1H1aEeP^@T;Q06$z|Nr=^}sgb+qT8y!HLDh;DJT z4{D$~nd$@Sp7G!SjWOY6NP{7>ZQG(OODva5pdu(<5l6X0+5BwV>XB(ID7?dIhb-oD$i@R0QKB>i&GxAf<|LR--Dk^ tR?D;CuIyW;Rxx}J(x4Yx4)PZN@&y1iK6QA+z0m*w002ovPDHLkV1kbRZ%_aL From 24444d6c4e1e754e7684370dfafc57b5c229550c Mon Sep 17 00:00:00 2001 From: Bob Date: Wed, 6 Sep 2023 21:27:31 +0200 Subject: [PATCH 291/432] shredder compat fix(?), trenchmaster armor --- changelog | 37 - .../inventory/recipes/ShredderRecipes.java | 6 +- src/main/java/com/hbm/items/ModItems.java | 23 +- .../hbm/items/armor/ArmorTrenchmaster.java | 33 + .../com/hbm/items/weapon/ItemGunBase.java | 26 +- .../java/com/hbm/main/ResourceManager.java | 6 + .../render/model/ModelArmorTrenchmaster.java | 76 + .../assets/hbm/models/armor/trenchmaster.obj | 4713 +++++++++-------- 8 files changed, 2523 insertions(+), 2397 deletions(-) create mode 100644 src/main/java/com/hbm/items/armor/ArmorTrenchmaster.java create mode 100644 src/main/java/com/hbm/render/model/ModelArmorTrenchmaster.java diff --git a/changelog b/changelog index 85430aa5f..e69de29bb 100644 --- a/changelog +++ b/changelog @@ -1,37 +0,0 @@ -## Added -* Conveyor press - * An upgraded version of the electric press that can be integrated directly into conveyor belts - * Each pressing operation will process however many items happen to be at the belt at the time, so given enough conveyor infrastructure it can be much faster than a normal electric press - * Has no GUI, stamps are installed either by hand or via automation - * Stamps can be removed with a screwdriver - * Can only stamp single items to avoid issues with stack limits, so it's best to use ejection speed instead of stack ejection upgrades for the conveyor ejectors - -## Changed -* Chlorophyte rounds now deal 2x more damage than their standard counterparts instead of 1.5x -* Chlorophyte rounds now penetrate multiple enemies -* Decreased chlorophyte targeting range from 200 to 30 blocks -* Josh now has recoil and reload animations -* Anvil recipes for upgrading ammo types have been adjusted to match the crafting batch size -* Adjusted the corium block destruction function to be more in line with the recent concrete nerfs -* Reduced the blast resistance threshold for FEL, making concrete once again resistant to lasers -* Crafting bullet assemblies now only yields one item, it's that one assembly that turns into a full set of bullets after being pressed once. This should reduce the amount of press operations by up to a factor of 64. -* 5mm assemblies now yield 64 instead of 32 bullets -* The production complexity and time for making thermoelectric elements in the assembler has been reduced -* Thermoelectric elements can now also be made in a tier 2 anvil -* Changed electric press recipe, crafting complexity has been reduced and the press now uses hydraulic pistons -* Removed DFC emitter beam cap again since the core already imposes a natural limit due to fuel consumption - * I don't know why anyone would need a DFC that strong anyway, but now you can have them again -* The UAC pistol now has a crafting recipe and can also be found in structures - -## Fixed -* Fixed logspam when pollution handler tries to save the pollution data for dimensions that have never been loaded before -* Fixed dead leaves layer not being replacable by other blocks -* Fixed rock layers like schist, hematite and sulfur caves not spawning at all -* Fixed rock layers replacing end portal frames or bedrock -* Fixed FEnSU instantly voiding all energy when sending -* Fixed some conflict causing the nuke flash to be applied permanently -* Fixed flux level not resetting when rods are above melting point with meltdowns disabled -* Fixed crash caused by express delivery shells -* Fixed 4 gauge solid steel slugs not being made from steel -* Fixed missing lang entry for fluorite ore -* Fixed UAC pistol UV \ No newline at end of file diff --git a/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java b/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java index 457bddf9b..7faee9911 100644 --- a/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java @@ -352,16 +352,16 @@ public class ShredderRecipes extends SerializableRecipe { ShredderRecipes.setRecipe(ModItems.debris_graphite, new ItemStack(ModItems.powder_coal, 1)); /* GC COMPAT */ - Item gcMoonBlock = Compat.tryLoadItem(Compat.MOD_GCC, "moonBlock"); + Block gcMoonBlock = Compat.tryLoadBlock(Compat.MOD_GCC, "moonBlock"); if(gcMoonBlock != null) { ShredderRecipes.setRecipe(new ItemStack(gcMoonBlock, 1, 3), new ItemStack(ModBlocks.moon_turf)); //Moon dirt ShredderRecipes.setRecipe(new ItemStack(gcMoonBlock, 1, 5), new ItemStack(ModBlocks.moon_turf)); //Moon topsoil } /* AR COMPAT */ - Item arMoonTurf = Compat.tryLoadItem(Compat.MOD_AR, "turf"); + Block arMoonTurf = Compat.tryLoadBlock(Compat.MOD_AR, "turf"); if(arMoonTurf != null) ShredderRecipes.setRecipe(arMoonTurf, new ItemStack(ModBlocks.moon_turf)); //i assume it's moon turf - Item arMoonTurfDark = Compat.tryLoadItem(Compat.MOD_AR, "turfDark"); + Block arMoonTurfDark = Compat.tryLoadBlock(Compat.MOD_AR, "turfDark"); if(arMoonTurfDark != null) ShredderRecipes.setRecipe(arMoonTurfDark, new ItemStack(ModBlocks.moon_turf)); //probably moon dirt? would have helped if i had ever played AR for more than 5 seconds } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 8ee6a7e1e..bf19e4b95 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1989,6 +1989,10 @@ public class ModItems { public static Item dns_plate; public static Item dns_legs; public static Item dns_boots; + public static Item trenchmaster_helmet; + public static Item trenchmaster_plate; + public static Item trenchmaster_legs; + public static Item trenchmaster_boots; public static Item zirconium_legs; public static Item robes_helmet; public static Item robes_plate; @@ -4929,7 +4933,7 @@ public class ModItems { fau_plate = new ArmorDigamma(aMatFau, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 2500, 0).cloneStats((ArmorFSB) fau_helmet).setFullSetForHide().setUnlocalizedName("fau_plate").setTextureName(RefStrings.MODID + ":fau_plate"); fau_legs = new ArmorDigamma(aMatFau, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 10000000, 10000, 2500, 0).cloneStats((ArmorFSB) fau_helmet).hides(EnumPlayerPart.LEFT_LEG, EnumPlayerPart.RIGHT_LEG).setFullSetForHide().setUnlocalizedName("fau_legs").setTextureName(RefStrings.MODID + ":fau_legs"); fau_boots = new ArmorDigamma(aMatFau, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 2500, 0).cloneStats((ArmorFSB) fau_helmet).setUnlocalizedName("fau_boots").setTextureName(RefStrings.MODID + ":fau_boots"); - + ArmorMaterial aMatDNS = EnumHelper.addArmorMaterial("HBM_DNT_NANO", 150, new int[] { 3, 8, 6, 3 }, 100); aMatDNS.customCraftingMaterial = ModItems.plate_armor_dnt; dns_helmet = new ArmorDNT(aMatDNS, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000000, 1000000, 100000, 115) @@ -4950,6 +4954,19 @@ public class ModItems { dns_legs = new ArmorDNT(aMatDNS, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 1000000000, 1000000, 100000, 115).cloneStats((ArmorFSB) dns_helmet).setUnlocalizedName("dns_legs").setTextureName(RefStrings.MODID + ":dns_legs"); dns_boots = new ArmorDNT(aMatDNS, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000000, 1000000, 100000, 115).cloneStats((ArmorFSB) dns_helmet).setUnlocalizedName("dns_boots").setTextureName(RefStrings.MODID + ":dns_boots"); + ArmorMaterial aMatTrench = EnumHelper.addArmorMaterial("HBM_TRENCH", 150, new int[] { 3, 8, 6, 3 }, 100); + aMatTrench.customCraftingMaterial = ModItems.plate_iron; + trenchmaster_helmet = new ArmorTrenchmaster(aMatTrench, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png") + .addEffect(new PotionEffect(Potion.damageBoost.id, 20, 9)) + .addEffect(new PotionEffect(Potion.digSpeed.id, 20, 7)) + .addEffect(new PotionEffect(Potion.jump.id, 20, 2)) + .enableVATS(true) + .hides(EnumPlayerPart.HAT) + .setUnlocalizedName("trenchmaster_helmet").setTextureName(RefStrings.MODID + ":trenchmaster_helmet"); + trenchmaster_plate = new ArmorTrenchmaster(aMatTrench, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png").cloneStats((ArmorFSB) trenchmaster_helmet).setUnlocalizedName("trenchmaster_plate").setTextureName(RefStrings.MODID + ":trenchmaster_plate"); + trenchmaster_legs = new ArmorTrenchmaster(aMatTrench, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png").cloneStats((ArmorFSB) trenchmaster_helmet).setUnlocalizedName("trenchmaster_legs").setTextureName(RefStrings.MODID + ":trenchmaster_legs"); + trenchmaster_boots = new ArmorTrenchmaster(aMatTrench, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png").cloneStats((ArmorFSB) trenchmaster_helmet).setUnlocalizedName("trenchmaster_boots").setTextureName(RefStrings.MODID + ":trenchmaster_boots"); + jackt = new ModArmor(MainRegistry.aMatSteel, 1).setUnlocalizedName("jackt").setTextureName(RefStrings.MODID + ":jackt"); jackt2 = new ModArmor(MainRegistry.aMatSteel, 1).setUnlocalizedName("jackt2").setTextureName(RefStrings.MODID + ":jackt2"); @@ -7838,6 +7855,10 @@ public class ModItems { GameRegistry.registerItem(dns_plate, dns_plate.getUnlocalizedName()); GameRegistry.registerItem(dns_legs, dns_legs.getUnlocalizedName()); GameRegistry.registerItem(dns_boots, dns_boots.getUnlocalizedName()); + GameRegistry.registerItem(trenchmaster_helmet, trenchmaster_helmet.getUnlocalizedName()); + GameRegistry.registerItem(trenchmaster_plate, trenchmaster_plate.getUnlocalizedName()); + GameRegistry.registerItem(trenchmaster_legs, trenchmaster_legs.getUnlocalizedName()); + GameRegistry.registerItem(trenchmaster_boots, trenchmaster_boots.getUnlocalizedName()); //Nobody will ever read this anyway, so it shouldn't matter. GameRegistry.registerItem(chainsaw, chainsaw.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/armor/ArmorTrenchmaster.java b/src/main/java/com/hbm/items/armor/ArmorTrenchmaster.java new file mode 100644 index 000000000..b2168b8af --- /dev/null +++ b/src/main/java/com/hbm/items/armor/ArmorTrenchmaster.java @@ -0,0 +1,33 @@ +package com.hbm.items.armor; + +import com.hbm.render.model.ModelArmorTrenchmaster; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.ItemStack; + +public class ArmorTrenchmaster extends ArmorFSB { + + public ArmorTrenchmaster(ArmorMaterial material, int slot, String texture) { + super(material, slot, texture); + } + + @SideOnly(Side.CLIENT) + ModelArmorTrenchmaster[] models; + + @Override + @SideOnly(Side.CLIENT) + public ModelBiped getArmorModel(EntityLivingBase entityLiving, ItemStack itemStack, int armorSlot) { + + if(models == null) { + models = new ModelArmorTrenchmaster[4]; + + for(int i = 0; i < 4; i++) + models[i] = new ModelArmorTrenchmaster(i); + } + + return models[armorSlot]; + } +} diff --git a/src/main/java/com/hbm/items/weapon/ItemGunBase.java b/src/main/java/com/hbm/items/weapon/ItemGunBase.java index 385801c3a..aabdc3bfd 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGunBase.java +++ b/src/main/java/com/hbm/items/weapon/ItemGunBase.java @@ -15,6 +15,8 @@ import com.hbm.interfaces.IHoldableWeapon; import com.hbm.interfaces.IItemHUD; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.IEquipReceiver; +import com.hbm.items.ModItems; +import com.hbm.items.armor.ArmorFSB; import com.hbm.lib.HbmCollection; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.GunAnimationPacket; @@ -117,7 +119,7 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu if(GameSettings.isKeyDown(HbmKeybinds.reloadKey) && Minecraft.getMinecraft().currentScreen == null && (getMag(stack) < mainConfig.ammoCap || hasInfinity(stack, mainConfig))) { PacketDispatcher.wrapper.sendToServer(new GunButtonPacket(true, (byte) 2)); setIsReloading(stack, true); - resetReloadCycle(stack); + resetReloadCycle(entity, stack); } } } @@ -374,7 +376,7 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu if (getMag(stack) >= mainConfig.ammoCap) setIsReloading(stack, false); else - resetReloadCycle(stack); + resetReloadCycle(player, stack); if(hasLoaded && mainConfig.reloadSoundEnd) world.playSoundAtEntity(player, mainConfig.reloadSound, 1.0F, 1.0F); @@ -420,7 +422,7 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu PacketDispatcher.wrapper.sendTo(new GunAnimationPacket(AnimType.RELOAD.ordinal()), (EntityPlayerMP) player); setIsReloading(stack, true); - resetReloadCycle(stack); + resetReloadCycle(player, stack); } public boolean canReload(ItemStack stack, World world, EntityPlayer player) { @@ -574,8 +576,8 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu if(!main) config = altConfig; - if(hasInfinity(stack, config)) - return; + if(hasInfinity(stack, config)) return; + if(isTrenchMaster(player) && player.getRNG().nextInt(3) == 0) return; if(config.reloadType != GunConfiguration.RELOAD_NONE) { setMag(stack, getMag(stack) - 1); @@ -589,8 +591,8 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu } /// sets reload cycle to config defult /// - public static void resetReloadCycle(ItemStack stack) { - writeNBT(stack, "reload", ((ItemGunBase)stack.getItem()).mainConfig.reloadDuration); + public static void resetReloadCycle(EntityPlayer player, ItemStack stack) { + writeNBT(stack, "reload", getReloadDuration(player, stack)); } /// if reloading routine is active /// @@ -815,4 +817,14 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu data.setInteger("ej", ejector.getId()); PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, entity.posX, entity.posY + entity.getEyeHeight(), entity.posZ), new TargetPoint(entity.dimension, entity.posX, entity.posY, entity.posZ, 50)); } + + public static int getReloadDuration(EntityPlayer player, ItemStack stack) { + int cycle = ((ItemGunBase) stack.getItem()).mainConfig.reloadDuration; + if(isTrenchMaster(player)) return Math.max(1, cycle / 2); + return cycle; + } + + public static boolean isTrenchMaster(EntityPlayer player) { + return player.inventory.armorInventory[2] != null && player.inventory.armorInventory[2].getItem() == ModItems.trenchmaster_plate && ArmorFSB.hasFSBArmor(player); + } } diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 4ad9341a7..59cbd5c29 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -789,6 +789,7 @@ public class ResourceManager { public static final IModelCustom armor_solstice = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/armor/solstice.obj")); public static final IModelCustom player_manly_af = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/armor/player_fem.obj")); public static final IModelCustom armor_envsuit = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/armor/envsuit.obj")); + public static final IModelCustom armor_trenchmaster = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/armor/trenchmaster.obj")); ////Texture Items @@ -935,6 +936,11 @@ public class ResourceManager { public static final ResourceLocation rpa_chest = new ResourceLocation(RefStrings.MODID, "textures/armor/rpa_chest.png"); public static final ResourceLocation rpa_arm = new ResourceLocation(RefStrings.MODID, "textures/armor/rpa_arm.png"); + public static final ResourceLocation trenchmaster_helmet = new ResourceLocation(RefStrings.MODID, "textures/armor/trenchmaster_helmet.png"); + public static final ResourceLocation trenchmaster_leg = new ResourceLocation(RefStrings.MODID, "textures/armor/trenchmaster_leg.png"); + public static final ResourceLocation trenchmaster_chest = new ResourceLocation(RefStrings.MODID, "textures/armor/trenchmaster_chest.png"); + public static final ResourceLocation trenchmaster_arm = new ResourceLocation(RefStrings.MODID, "textures/armor/trenchmaster_arm.png"); + public static final ResourceLocation mod_tesla = new ResourceLocation(RefStrings.MODID, "textures/armor/mod_tesla.png"); public static final ResourceLocation armor_bismuth_tex = new ResourceLocation(RefStrings.MODID, "textures/armor/bismuth.png"); diff --git a/src/main/java/com/hbm/render/model/ModelArmorTrenchmaster.java b/src/main/java/com/hbm/render/model/ModelArmorTrenchmaster.java new file mode 100644 index 000000000..8ded2bb29 --- /dev/null +++ b/src/main/java/com/hbm/render/model/ModelArmorTrenchmaster.java @@ -0,0 +1,76 @@ +package com.hbm.render.model; + +import org.lwjgl.opengl.GL11; + +import com.hbm.main.ResourceManager; +import com.hbm.render.loader.ModelRendererObj; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.entity.Entity; + +public class ModelArmorTrenchmaster extends ModelArmorBase { + + ModelRendererObj light; + + public ModelArmorTrenchmaster(int type) { + super(type); + + head = new ModelRendererObj(ResourceManager.armor_trenchmaster, "Helmet"); + light = new ModelRendererObj(ResourceManager.armor_trenchmaster, "Light"); + body = new ModelRendererObj(ResourceManager.armor_trenchmaster, "Chest"); + leftArm = new ModelRendererObj(ResourceManager.armor_trenchmaster, "LeftArm").setRotationPoint(-5.0F, 2.0F, 0.0F); + rightArm = new ModelRendererObj(ResourceManager.armor_trenchmaster, "RightArm").setRotationPoint(5.0F, 2.0F, 0.0F); + leftLeg = new ModelRendererObj(ResourceManager.armor_trenchmaster, "LeftLeg").setRotationPoint(1.9F, 12.0F, 0.0F); + rightLeg = new ModelRendererObj(ResourceManager.armor_trenchmaster, "RightLeg").setRotationPoint(-1.9F, 12.0F, 0.0F); + leftFoot = new ModelRendererObj(ResourceManager.armor_trenchmaster, "LeftFoot").setRotationPoint(1.9F, 12.0F, 0.0F); + rightFoot = new ModelRendererObj(ResourceManager.armor_trenchmaster, "RightFoot").setRotationPoint(-1.9F, 12.0F, 0.0F); + } + + @Override + public void render(Entity par1Entity, float par2, float par3, float par4, float par5, float par6, float par7) { + setRotationAngles(par2, par3, par4, par5, par6, par7, par1Entity); + head.copyTo(light); + + GL11.glPushMatrix(); + + if(type == 0) { + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.trenchmaster_helmet); + GL11.glEnable(GL11.GL_BLEND); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + head.render(par7); + GL11.glDisable(GL11.GL_BLEND); + + /// START GLOW /// + float lastX = OpenGlHelper.lastBrightnessX; + float lastY = OpenGlHelper.lastBrightnessY; + GL11.glPushAttrib(GL11.GL_LIGHTING_BIT); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); + GL11.glDisable(GL11.GL_LIGHTING); + light.render(par7); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glPopAttrib(); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, lastX, lastY); + /// END GLOW /// + } + if(type == 1) { + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.trenchmaster_chest); + body.render(par7); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.trenchmaster_arm); + leftArm.render(par7); + rightArm.render(par7); + } + if(type == 2) { + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.trenchmaster_leg); + leftLeg.render(par7); + rightLeg.render(par7); + } + if(type == 3) { + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.trenchmaster_leg); + leftFoot.render(par7); + rightFoot.render(par7); + } + + GL11.glPopMatrix(); + } +} diff --git a/src/main/resources/assets/hbm/models/armor/trenchmaster.obj b/src/main/resources/assets/hbm/models/armor/trenchmaster.obj index 45c8bc4ac..9289dc89b 100644 --- a/src/main/resources/assets/hbm/models/armor/trenchmaster.obj +++ b/src/main/resources/assets/hbm/models/armor/trenchmaster.obj @@ -1,46 +1,111 @@ -# Blender v2.79 (sub 0) OBJ File: 'trenchmaster.blend' +# Blender v2.79 (sub 0) OBJ File: 'trenchmaster_scaled.blend' # www.blender.org -o Plane.005 -v 4.500000 0.000000 2.500000 -v -0.500000 0.000000 2.500000 -v 4.500000 0.000000 -2.500000 -v -0.500000 0.000000 -2.500000 -v 4.000000 12.000000 2.000000 -v 0.000000 12.000000 2.000000 -v 4.000000 12.000000 -2.000000 -v 0.000000 12.000000 -2.000000 -v 3.500000 0.000000 -3.500000 -v 0.500000 0.000000 -3.500000 -v 3.500000 2.000000 -3.500000 -v 0.500000 2.000000 -3.500000 -v 3.500000 3.000000 -2.500000 -v 0.500000 3.000000 -2.500000 -v 4.500000 2.000000 -2.500000 -v -0.500000 2.000000 -2.500000 -v 0.000000 4.000000 -2.000000 -v 4.000000 4.000000 -2.000000 -v 0.000000 4.000000 2.000000 -v 4.000000 4.000000 2.000000 -v 4.500000 4.000000 2.500000 -v -0.500000 4.000000 2.500000 -v 4.500000 4.000000 -2.500000 -v -0.500000 4.000000 -2.500000 -v 4.000000 5.000000 2.000000 -v 0.000000 5.000000 2.000000 -v 4.000000 5.000000 -2.000000 -v 0.000000 5.000000 -2.000000 -v 4.500000 5.000000 2.500000 -v -0.500000 5.000000 2.500000 -v 4.500000 5.000000 -2.500000 -v -0.500000 5.000000 -2.500000 -v 4.500000 8.000000 2.500000 -v -0.500000 8.000000 2.500000 -v 4.500000 8.000000 -2.500000 -v -0.500000 8.000000 -2.500000 -v 4.000000 8.000000 2.000000 -v 0.000000 8.000000 2.000000 -v 4.000000 8.000000 -2.000000 -v 0.000000 8.000000 -2.000000 +o Light +v 2.099990 -5.575001 -5.250000 +v 3.463980 -4.787502 -5.250000 +v 3.463981 -3.212502 -5.250000 +v 2.099991 -2.424999 -5.250000 +v 0.736001 -3.212500 -5.250000 +v 0.736001 -4.787500 -5.250000 +v -2.100009 -5.575001 -5.250000 +v -0.736019 -4.787500 -5.250000 +v -0.736019 -3.212500 -5.250000 +v -2.100008 -2.424999 -5.250000 +v -3.463999 -3.212498 -5.250000 +v -3.463999 -4.787498 -5.250000 +v 1.574989 -10.825001 -7.349999 +v 1.574990 -7.674999 -7.349999 +v -1.575010 -7.674999 -7.349999 +v -1.575011 -10.825001 -7.349999 +v 1.049989 -10.299999 -7.875000 +v 1.049989 -8.200001 -7.875000 +v -1.050010 -8.200001 -7.875000 +v -1.050011 -10.299999 -7.875000 +vt 0.770035 0.472036 +vt 0.770035 0.411685 +vt 0.859930 0.441860 +vt 0.770035 0.411685 +vt 0.829965 0.411685 +vt 0.859930 0.441860 +vt 0.320000 0.372093 +vt 0.420000 0.360465 +vt 0.440000 0.372093 +vt 0.340000 0.313953 +vt 0.420000 0.313953 +vt 0.440000 0.302326 +vt 0.320000 0.302326 +vt 0.340000 0.360465 +vt 0.829965 0.472036 +vt 0.740070 0.441860 +vt 0.829965 0.411685 +vt 0.829965 0.472036 +vt 0.770035 0.472036 +vt 0.740070 0.441860 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.7071 -0.0000 -0.7071 +vn 0.0000 0.7071 -0.7071 +vn -0.7071 0.0000 -0.7071 +s off +f 1/1/1 5/2/1 3/3/1 +f 11/4/1 10/5/1 9/6/1 +f 16/7/2 17/8/2 13/9/2 +f 17/8/1 19/10/1 18/11/1 +f 13/9/3 18/11/3 14/12/3 +f 14/12/4 19/10/4 15/13/4 +f 15/13/5 20/14/5 16/7/5 +f 3/3/1 2/15/1 1/1/1 +f 1/1/1 6/16/1 5/2/1 +f 5/2/1 4/17/1 3/3/1 +f 9/6/1 8/18/1 11/4/1 +f 8/18/1 7/19/1 11/4/1 +f 7/19/1 12/20/1 11/4/1 +f 16/7/2 20/14/2 17/8/2 +f 17/8/1 20/14/1 19/10/1 +f 13/9/3 17/8/3 18/11/3 +f 14/12/4 18/11/4 19/10/4 +f 15/13/5 19/10/5 20/14/5 +o RightLeg +v -4.625000 24.300001 2.625000 +v 0.625000 24.299999 2.625000 +v -4.625000 24.300001 -2.625000 +v 0.625000 24.299999 -2.625000 +v -4.100004 11.700002 2.100000 +v 0.099996 11.700001 2.100000 +v -4.100004 11.700002 -2.100000 +v 0.099996 11.700001 -2.100000 +v -3.575000 24.300001 -3.675000 +v -0.425000 24.299999 -3.675000 +v -3.575000 22.200001 -3.675000 +v -0.425001 22.200001 -3.675000 +v -3.575001 21.150002 -2.625000 +v -0.425001 21.150000 -2.625000 +v -4.625000 22.200001 -2.625000 +v 0.624999 22.199999 -2.625000 +v 0.099999 20.100000 -2.100000 +v -4.100001 20.100002 -2.100000 +v 0.099999 20.100000 2.100000 +v -4.100001 20.100002 2.100000 +v -4.625001 20.100002 2.625000 +v 0.624999 20.100000 2.625000 +v -4.625001 20.100002 -2.625000 +v 0.624999 20.100000 -2.625000 +v -4.100001 19.050001 2.100000 +v 0.099998 19.049999 2.100000 +v -4.100001 19.050001 -2.100000 +v 0.099998 19.049999 -2.100000 +v -4.625001 19.050001 2.625000 +v 0.624998 19.049999 2.625000 +v -4.625001 19.050001 -2.625000 +v 0.624998 19.049999 -2.625000 +v -4.625003 15.900002 2.625000 +v 0.624997 15.900000 2.625000 +v -4.625003 15.900002 -2.625000 +v 0.624997 15.900000 -2.625000 +v -4.100003 15.900001 2.100000 +v 0.099997 15.900000 2.100000 +v -4.100003 15.900001 -2.100000 +v 0.099997 15.900000 -2.100000 vt 0.000000 0.222222 vt 0.250000 0.000000 vt 0.000000 -0.000000 @@ -72,6 +137,7 @@ vt 0.025000 0.422222 vt 0.225000 0.466667 vt 0.225000 0.422222 vt 0.450000 0.177778 +vt 0.450000 0.355556 vt 0.300000 0.355556 vt 0.775000 0.422222 vt 1.000000 0.400000 @@ -96,11 +162,11 @@ vt 0.000000 0.622222 vt 0.525000 0.644444 vt 0.275000 0.644444 vt 0.025000 0.644444 -vt 0.775000 0.644444 -vt 1.000000 0.622222 vt 0.975000 0.644444 -vt 0.775000 0.822222 +vt 1.000000 0.622222 vt 0.975000 0.822222 +vt 0.775000 0.644444 +vt 0.775000 0.822222 vt 0.725000 0.644444 vt 0.525000 0.822222 vt 0.725000 0.822222 @@ -112,136 +178,135 @@ vt 0.225000 0.822222 vt 0.975000 0.422222 vt 0.250000 0.222222 vt 0.500000 0.222222 -vt 0.450000 0.355556 -vn 0.0000 -1.0000 0.0000 vn 0.0000 1.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 0.7071 -0.7071 -vn 1.0000 0.0000 0.0000 -vn 0.7071 0.0000 -0.7071 -vn -0.7071 0.0000 -0.7071 +vn -0.0000 -1.0000 0.0000 +vn -0.0000 0.0000 -1.0000 +vn 0.0000 -0.7071 -0.7071 vn -1.0000 0.0000 0.0000 -vn 0.5774 0.5774 -0.5774 -vn -0.5774 0.5774 -0.5774 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 -0.0000 -0.7071 +vn 1.0000 -0.0000 0.0000 +vn -0.5773 -0.5774 -0.5774 +vn 0.5773 -0.5773 -0.5774 vn 0.0000 0.0000 1.0000 s off -f 2/1/1 3/2/1 1/3/1 -f 7/4/2 6/5/2 5/6/2 -f 10/7/1 3/8/1 4/9/1 -f 12/10/3 9/11/3 10/7/3 -f 14/12/4 11/13/4 12/10/4 -f 18/14/2 21/15/2 23/16/2 -f 15/17/5 23/16/5 21/15/5 -f 17/18/2 23/16/2 24/19/2 -f 18/14/5 25/20/5 20/21/5 -f 9/11/6 15/22/6 3/23/6 -f 16/24/7 10/7/7 4/25/7 -f 17/18/3 27/26/3 18/27/3 -f 19/28/8 28/29/8 17/30/8 -f 13/31/9 15/22/9 11/13/9 -f 24/19/3 23/16/3 14/32/3 -f 12/10/10 16/24/10 14/12/10 -f 20/33/2 22/34/2 21/15/2 -f 19/28/2 24/19/2 22/35/2 -f 22/35/8 16/36/8 2/1/8 -f 1/37/11 22/34/11 2/38/11 -f 29/39/1 26/40/1 25/41/1 -f 30/42/1 28/29/1 26/43/1 -f 32/44/1 27/26/1 28/45/1 -f 31/46/1 25/20/1 27/47/1 -f 33/48/11 30/49/11 29/39/11 -f 35/50/5 29/39/5 31/46/5 -f 36/51/3 31/46/3 32/44/3 -f 34/52/8 32/44/8 30/42/8 -f 39/53/2 33/48/2 35/50/2 -f 40/54/2 35/50/2 36/51/2 -f 38/55/2 36/51/2 34/52/2 -f 37/56/2 34/57/2 33/48/2 -f 38/58/11 5/59/11 6/60/11 -f 37/61/5 7/62/5 5/63/5 -f 39/64/3 8/65/3 7/66/3 -f 40/67/8 6/5/8 8/68/8 -f 20/33/11 26/40/11 19/69/11 -f 2/1/1 4/70/1 3/2/1 -f 7/4/2 8/68/2 6/5/2 -f 10/7/1 9/11/1 3/8/1 -f 12/10/3 11/13/3 9/11/3 -f 14/12/4 13/31/4 11/13/4 -f 18/14/2 20/21/2 21/15/2 -f 21/15/5 1/37/5 15/17/5 -f 1/37/5 3/71/5 15/17/5 -f 17/18/2 18/27/2 23/16/2 -f 18/14/5 27/47/5 25/20/5 -f 9/11/6 11/13/6 15/22/6 -f 16/24/7 12/10/7 10/7/7 -f 17/18/3 28/45/3 27/26/3 -f 19/28/8 26/43/8 28/29/8 -f 23/16/3 15/17/3 13/72/3 -f 14/32/3 16/36/3 24/19/3 -f 23/16/3 13/72/3 14/32/3 -f 20/33/2 19/69/2 22/34/2 -f 19/28/2 17/30/2 24/19/2 -f 24/19/8 16/36/8 22/35/8 -f 16/36/8 4/70/8 2/1/8 -f 1/37/11 21/15/11 22/34/11 -f 29/39/1 30/49/1 26/40/1 -f 30/42/1 32/44/1 28/29/1 -f 32/44/1 31/46/1 27/26/1 -f 31/46/1 29/39/1 25/20/1 -f 33/48/11 34/57/11 30/49/11 -f 35/50/5 33/48/5 29/39/5 -f 36/51/3 35/50/3 31/46/3 -f 34/52/8 36/51/8 32/44/8 -f 39/53/2 37/61/2 33/48/2 -f 40/54/2 39/64/2 35/50/2 -f 38/55/2 40/67/2 36/51/2 -f 37/56/2 38/58/2 34/57/2 -f 38/58/11 37/56/11 5/59/11 -f 37/61/5 39/53/5 7/62/5 -f 39/64/3 40/54/3 8/65/3 -f 40/67/8 38/55/8 6/5/8 -f 20/33/11 25/41/11 26/40/11 -o Plane.004 -v -4.500000 0.000000 2.500000 -v 0.500000 0.000000 2.500000 -v -4.500000 0.000000 -2.500000 -v 0.500000 0.000000 -2.500000 -v -4.000000 12.000000 2.000000 -v 0.000000 12.000000 2.000000 -v -4.000000 12.000000 -2.000000 -v 0.000000 12.000000 -2.000000 -v -3.500000 0.000000 -3.500000 -v -0.500000 0.000000 -3.500000 -v -3.500000 2.000000 -3.500000 -v -0.500000 2.000000 -3.500000 -v -3.500000 3.000000 -2.500000 -v -0.500000 3.000000 -2.500000 -v -4.500000 2.000000 -2.500000 -v 0.500000 2.000000 -2.500000 -v 0.000000 4.000000 -2.000000 -v -4.000000 4.000000 -2.000000 -v 0.000000 4.000000 2.000000 -v -4.000000 4.000000 2.000000 -v -4.500000 4.000000 2.500000 -v 0.500000 4.000000 2.500000 -v -4.500000 4.000000 -2.500000 -v 0.500000 4.000000 -2.500000 -v -4.000000 5.000000 2.000000 -v 0.000000 5.000000 2.000000 -v -4.000000 5.000000 -2.000000 -v 0.000000 5.000000 -2.000000 -v -4.500000 5.000000 2.500000 -v 0.500000 5.000000 2.500000 -v -4.500000 5.000000 -2.500000 -v 0.500000 5.000000 -2.500000 -v -4.500000 8.000000 2.500000 -v 0.500000 8.000000 2.500000 -v -4.500000 8.000000 -2.500000 -v 0.500000 8.000000 -2.500000 -v -4.000000 8.000000 2.000000 -v 0.000000 8.000000 2.000000 -v -4.000000 8.000000 -2.000000 -v 0.000000 8.000000 -2.000000 +f 22/21/6 23/22/6 21/23/6 +f 27/24/7 26/25/7 25/26/7 +f 30/27/6 23/28/6 24/29/6 +f 32/30/8 29/31/8 30/27/8 +f 34/32/9 31/33/9 32/30/9 +f 38/34/7 41/35/7 43/36/7 +f 35/37/10 43/36/10 41/35/10 +f 37/38/7 43/36/7 44/39/7 +f 38/34/10 45/40/10 40/41/10 +f 29/31/11 35/42/11 23/43/11 +f 36/44/12 30/27/12 24/45/12 +f 37/38/8 47/46/8 38/47/8 +f 39/48/13 48/49/13 37/50/13 +f 33/51/14 35/42/14 31/33/14 +f 33/52/8 34/53/8 44/39/8 +f 32/30/15 36/44/15 34/32/15 +f 40/54/7 42/55/7 41/35/7 +f 39/48/7 44/39/7 42/56/7 +f 42/56/13 36/57/13 22/21/13 +f 21/58/16 42/55/16 22/59/16 +f 49/60/6 46/61/6 45/62/6 +f 50/63/6 48/49/6 46/64/6 +f 52/65/6 47/46/6 48/66/6 +f 51/67/6 45/40/6 47/68/6 +f 53/69/16 50/70/16 49/60/16 +f 55/71/10 49/60/10 51/67/10 +f 56/72/8 51/67/8 52/65/8 +f 54/73/13 52/65/13 50/63/13 +f 59/74/7 53/69/7 55/71/7 +f 60/75/7 55/71/7 56/72/7 +f 58/76/7 56/72/7 54/73/7 +f 53/69/7 58/77/7 54/78/7 +f 26/79/16 57/80/16 25/81/16 +f 57/82/10 27/83/10 25/84/10 +f 59/85/8 28/86/8 27/87/8 +f 60/88/13 26/25/13 28/89/13 +f 40/54/16 46/61/16 39/90/16 +f 22/21/6 24/91/6 23/22/6 +f 27/24/7 28/89/7 26/25/7 +f 30/27/6 29/31/6 23/28/6 +f 32/30/8 31/33/8 29/31/8 +f 34/32/9 33/51/9 31/33/9 +f 38/34/7 40/41/7 41/35/7 +f 41/35/10 21/58/10 35/37/10 +f 21/58/10 23/92/10 35/37/10 +f 37/38/7 38/47/7 43/36/7 +f 38/34/10 47/68/10 45/40/10 +f 29/31/11 31/33/11 35/42/11 +f 36/44/12 32/30/12 30/27/12 +f 37/38/8 48/66/8 47/46/8 +f 39/48/13 46/64/13 48/49/13 +f 43/36/8 35/37/8 33/52/8 +f 34/53/8 36/57/8 44/39/8 +f 43/36/8 33/52/8 44/39/8 +f 40/54/7 39/90/7 42/55/7 +f 39/48/7 37/50/7 44/39/7 +f 44/39/13 36/57/13 42/56/13 +f 36/57/13 24/91/13 22/21/13 +f 21/58/16 41/35/16 42/55/16 +f 49/60/6 50/70/6 46/61/6 +f 50/63/6 52/65/6 48/49/6 +f 52/65/6 51/67/6 47/46/6 +f 51/67/6 49/60/6 45/40/6 +f 53/69/16 54/78/16 50/70/16 +f 55/71/10 53/69/10 49/60/10 +f 56/72/8 55/71/8 51/67/8 +f 54/73/13 56/72/13 52/65/13 +f 59/74/7 57/82/7 53/69/7 +f 60/75/7 59/85/7 55/71/7 +f 58/76/7 60/88/7 56/72/7 +f 53/69/7 57/80/7 58/77/7 +f 26/79/16 58/77/16 57/80/16 +f 57/82/10 59/74/10 27/83/10 +f 59/85/8 60/75/8 28/86/8 +f 60/88/13 58/76/13 26/25/13 +f 40/54/16 45/62/16 46/61/16 +o LeftLeg +v 4.625000 24.299997 2.625000 +v -0.625000 24.299999 2.625000 +v 4.625000 24.299997 -2.625000 +v -0.625000 24.299999 -2.625000 +v 4.099996 11.700000 2.100000 +v -0.100004 11.700001 2.100000 +v 4.099996 11.700000 -2.100000 +v -0.100004 11.700001 -2.100000 +v 3.575000 24.299999 -3.675000 +v 0.425000 24.299999 -3.675000 +v 3.574999 22.199999 -3.675000 +v 0.424999 22.199999 -3.675000 +v 3.574999 21.149998 -2.625000 +v 0.424999 21.150000 -2.625000 +v 4.625000 22.199999 -2.625000 +v -0.625001 22.200001 -2.625000 +v -0.100001 20.100000 -2.100000 +v 4.099998 20.099998 -2.100000 +v -0.100001 20.100000 2.100000 +v 4.099998 20.099998 2.100000 +v 4.624999 20.099998 2.625000 +v -0.625001 20.100000 2.625000 +v 4.624999 20.099998 -2.625000 +v -0.625001 20.100000 -2.625000 +v 4.099998 19.049999 2.100000 +v -0.100002 19.049999 2.100000 +v 4.099998 19.049999 -2.100000 +v -0.100002 19.049999 -2.100000 +v 4.624999 19.049999 2.625000 +v -0.625002 19.049999 2.625000 +v 4.624999 19.049999 -2.625000 +v -0.625002 19.049999 -2.625000 +v 4.624997 15.899998 2.625000 +v -0.625003 15.900000 2.625000 +v 4.624997 15.899998 -2.625000 +v -0.625003 15.900000 -2.625000 +v 4.099997 15.899999 2.100000 +v -0.100003 15.900000 2.100000 +v 4.099997 15.899999 -2.100000 +v -0.100003 15.900000 -2.100000 vt 0.250000 0.000000 vt 0.000000 0.222222 vt 0.000000 -0.000000 @@ -273,13 +338,14 @@ vt 0.225000 0.466667 vt 0.025000 0.422222 vt 0.225000 0.422222 vt 0.450000 0.177778 +vt 0.300000 0.355556 vt 0.450000 0.355556 vt 1.000000 0.400000 vt 0.775000 0.422222 vt 0.000000 0.400000 vt 0.250000 0.311111 -vt 0.750000 0.222222 vt 1.000000 0.222222 +vt 0.750000 0.222222 vt 0.975000 0.466667 vt 0.750000 0.488889 vt 0.775000 0.466667 @@ -289,7 +355,7 @@ vt 0.250000 0.488889 vt 0.275000 0.466667 vt 0.500000 0.488889 vt 0.525000 0.466667 -vt 1.000000 0.488889 +vt 1.000000 0.622222 vt 0.750000 0.622222 vt 0.500000 0.622222 vt 0.250000 0.622222 @@ -297,7 +363,6 @@ vt 0.000000 0.622222 vt 0.525000 0.644444 vt 0.275000 0.644444 vt 0.025000 0.644444 -vt 1.000000 0.622222 vt 0.775000 0.644444 vt 0.775000 0.822222 vt 0.975000 0.644444 @@ -313,207 +378,207 @@ vt 0.225000 0.822222 vt 0.975000 0.422222 vt 0.250000 0.222222 vt 0.500000 0.222222 -vt 0.300000 0.355556 -vn 0.0000 -1.0000 0.0000 +vt 1.000000 0.488889 vn 0.0000 1.0000 0.0000 +vn -0.0000 -1.0000 0.0000 vn 0.0000 0.0000 -1.0000 -vn 0.0000 0.7071 -0.7071 -vn -1.0000 0.0000 0.0000 +vn 0.0000 -0.7071 -0.7071 +vn 1.0000 -0.0000 0.0000 +vn 0.7071 -0.0000 -0.7071 vn -0.7071 0.0000 -0.7071 -vn 0.7071 0.0000 -0.7071 -vn 1.0000 0.0000 0.0000 -vn -0.5774 0.5774 -0.5774 -vn 0.5774 0.5774 -0.5774 +vn -1.0000 0.0000 0.0000 +vn 0.5774 -0.5774 -0.5773 +vn -0.5773 -0.5773 -0.5774 vn 0.0000 0.0000 1.0000 s off -f 43/73/12 42/74/12 41/75/12 -f 46/76/13 47/77/13 45/78/13 -f 43/79/12 50/80/12 44/81/12 -f 49/82/14 52/83/14 50/80/14 -f 51/84/15 54/85/15 52/83/15 -f 61/86/13 58/87/13 63/88/13 -f 61/86/16 63/88/16 55/89/16 -f 63/88/13 57/90/13 64/91/13 -f 65/92/16 58/87/16 60/93/16 -f 55/94/17 49/82/17 43/95/17 -f 50/80/18 56/96/18 44/97/18 -f 67/98/14 57/90/14 58/99/14 -f 68/100/19 59/101/19 57/102/19 -f 53/103/20 51/84/20 55/94/20 -f 64/91/14 53/104/14 63/88/14 -f 52/83/21 54/85/21 56/96/21 -f 62/105/13 60/106/13 61/86/13 -f 64/91/13 59/101/13 62/107/13 -f 42/74/19 56/108/19 62/107/19 -f 62/105/22 41/109/22 42/110/22 -f 66/111/12 69/112/12 65/113/12 -f 68/100/12 70/114/12 66/115/12 -f 67/98/12 72/116/12 68/117/12 -f 65/92/12 71/118/12 67/119/12 -f 70/120/22 73/121/22 69/112/22 -f 69/112/16 75/122/16 71/118/16 -f 71/118/14 76/123/14 72/116/14 -f 72/116/19 74/124/19 70/114/19 -f 73/121/13 79/125/13 75/122/13 -f 75/122/13 80/126/13 76/123/13 -f 76/123/13 78/127/13 74/124/13 -f 74/128/13 77/129/13 73/121/13 -f 45/130/22 78/131/22 46/132/22 -f 47/133/16 77/134/16 45/135/16 -f 48/136/14 79/137/14 47/138/14 -f 46/76/19 80/139/19 48/140/19 -f 66/111/22 60/106/22 59/141/22 -f 43/73/12 44/142/12 42/74/12 -f 46/76/13 48/140/13 47/77/13 -f 43/79/12 49/82/12 50/80/12 -f 49/82/14 51/84/14 52/83/14 -f 51/84/15 53/103/15 54/85/15 -f 61/86/13 60/93/13 58/87/13 -f 43/143/16 41/109/16 55/89/16 -f 41/109/16 61/86/16 55/89/16 -f 63/88/13 58/99/13 57/90/13 -f 65/92/16 67/119/16 58/87/16 -f 55/94/17 51/84/17 49/82/17 -f 50/80/18 52/83/18 56/96/18 -f 67/98/14 68/117/14 57/90/14 -f 68/100/19 66/115/19 59/101/19 -f 64/91/14 56/108/14 54/144/14 -f 53/104/14 55/89/14 63/88/14 -f 64/91/14 54/144/14 53/104/14 -f 62/105/13 59/141/13 60/106/13 -f 64/91/13 57/102/13 59/101/13 -f 44/142/19 56/108/19 42/74/19 -f 56/108/19 64/91/19 62/107/19 -f 62/105/22 61/86/22 41/109/22 -f 66/111/12 70/120/12 69/112/12 -f 68/100/12 72/116/12 70/114/12 -f 67/98/12 71/118/12 72/116/12 -f 65/92/12 69/112/12 71/118/12 -f 70/120/22 74/128/22 73/121/22 -f 69/112/16 73/121/16 75/122/16 -f 71/118/14 75/122/14 76/123/14 -f 72/116/19 76/123/19 74/124/19 -f 73/121/13 77/134/13 79/125/13 -f 75/122/13 79/137/13 80/126/13 -f 76/123/13 80/139/13 78/127/13 -f 74/128/13 78/131/13 77/129/13 -f 45/130/22 77/129/22 78/131/22 -f 47/133/16 79/125/16 77/134/16 -f 48/136/14 80/126/14 79/137/14 -f 46/76/19 78/127/19 80/139/19 -f 66/111/22 65/113/22 60/106/22 -o Plane.003 -v 8.500000 22.500000 0.500000 -v 8.500000 21.500000 0.500000 -v 8.500000 22.500000 -0.500000 -v 8.500000 21.500000 -0.500000 -v 9.000000 22.500000 -0.500000 -v 9.000000 22.500000 0.500000 -v 9.000000 21.500000 0.500000 -v 9.000000 21.500000 -0.500000 -v 9.000000 22.000000 -1.000000 -v 9.000000 22.707108 -0.707107 -v 9.000000 23.000000 0.000000 -v 9.000000 22.707108 0.707107 -v 9.000000 22.000000 1.000000 -v 9.000000 21.292892 0.707107 -v 9.000000 21.000000 -0.000000 -v 9.000000 21.292892 -0.707107 -v 9.250000 22.707108 -0.707107 -v 9.250000 22.000000 -1.000000 -v 9.250000 23.000000 0.000000 -v 9.250000 22.707108 0.707107 -v 9.250000 22.000000 1.000000 -v 9.250000 21.292892 0.707107 -v 9.250000 21.000000 -0.000000 -v 9.250000 21.292892 -0.707107 -v 8.500000 22.250000 0.500000 -v 8.500000 21.750000 0.500000 -v 8.500000 22.250000 2.500000 -v 8.500000 21.750000 2.500000 -v 8.750000 22.250000 0.500000 -v 8.750000 21.750000 0.500000 -v 8.750000 22.250000 2.500000 -v 8.750000 21.750000 2.500000 -v 8.750000 23.000000 0.500000 -v 8.750000 21.000000 0.500000 -v 8.750000 23.000000 -0.500000 -v 8.750000 21.000000 -0.500000 -v 8.500000 23.500000 0.500000 -v 8.500000 23.500000 -0.500000 -v 8.500000 20.500000 0.500000 -v 8.500000 20.500000 -0.500000 -v 8.000000 20.000000 2.000000 -v 8.000000 20.000000 -2.000000 -v 4.000000 20.000000 -2.000000 -v 4.000000 20.000000 2.000000 -v 3.500000 20.000000 -2.500000 -v 3.500000 20.000000 2.500000 -v 8.500000 20.000000 -2.500000 -v 8.500000 20.000000 2.500000 -v 3.500000 24.000000 -2.500000 -v 3.500000 24.000000 2.500000 -v 8.500000 24.000000 -2.500000 -v 8.500000 24.000000 2.500000 -v 5.000000 26.000000 -2.500000 -v 5.000000 26.000000 2.500000 -v 8.000000 18.000000 2.000000 -v 4.000000 18.000000 2.000000 -v 4.000000 18.000000 -2.000000 -v 8.000000 18.000000 -2.000000 -v 8.500000 18.000000 -2.500000 -v 8.500000 18.000000 2.500000 -v 3.500000 18.000000 -2.500000 -v 3.500000 18.000000 2.500000 -v 8.500000 14.000000 -2.500000 -v 8.500000 14.000000 2.500000 -v 3.500000 14.000000 -2.500000 -v 3.500000 14.000000 2.500000 -v 4.000000 14.000000 2.000000 -v 4.000000 14.000000 -2.000000 -v 8.000000 14.000000 -2.000000 -v 8.000000 14.000000 2.000000 -v 4.000000 13.000000 -2.000000 -v 4.000000 13.000000 2.000000 -v 8.000000 13.000000 -2.000000 -v 8.000000 13.000000 2.000000 -v 3.500000 13.000000 -2.500000 -v 3.500000 13.000000 2.500000 -v 8.500000 13.000000 -2.500000 -v 8.500000 13.000000 2.500000 -v 3.500000 11.000000 -2.500000 -v 3.500000 11.000000 2.500000 -v 8.000000 11.000000 -2.500000 -v 8.000000 11.000000 2.500000 -v 8.500000 26.000000 0.500000 -v 5.500000 26.000000 0.500000 -v 8.500000 26.000000 -0.500000 -v 5.500000 26.000000 -0.500000 -v 7.500000 24.000000 -0.500000 -v 7.500000 24.000000 0.500000 -v 5.500000 24.000000 0.500000 -v 5.500000 24.000000 -0.500000 +f 63/93/17 62/94/17 61/95/17 +f 66/96/18 67/97/18 65/98/18 +f 63/99/17 70/100/17 64/101/17 +f 69/102/19 72/103/19 70/100/19 +f 71/104/20 74/105/20 72/103/20 +f 81/106/18 78/107/18 83/108/18 +f 81/106/21 83/108/21 75/109/21 +f 83/108/18 77/110/18 84/111/18 +f 85/112/21 78/107/21 80/113/21 +f 75/114/22 69/102/22 63/115/22 +f 70/100/23 76/116/23 64/117/23 +f 87/118/19 77/110/19 78/119/19 +f 88/120/24 79/121/24 77/122/24 +f 73/123/25 71/104/25 75/114/25 +f 74/124/19 73/125/19 83/108/19 +f 72/103/26 74/105/26 76/116/26 +f 82/126/18 80/127/18 81/106/18 +f 84/111/18 79/121/18 82/128/18 +f 62/94/24 76/129/24 82/128/24 +f 62/130/27 81/106/27 61/131/27 +f 86/132/17 89/133/17 85/134/17 +f 88/120/17 90/135/17 86/136/17 +f 87/118/17 92/137/17 88/138/17 +f 85/112/17 91/139/17 87/140/17 +f 89/133/27 94/141/27 93/142/27 +f 89/133/21 95/143/21 91/139/21 +f 91/139/19 96/144/19 92/137/19 +f 92/137/24 94/145/24 90/135/24 +f 93/142/18 99/146/18 95/143/18 +f 95/143/18 100/147/18 96/144/18 +f 96/144/18 98/148/18 94/145/18 +f 94/141/18 97/149/18 93/142/18 +f 65/150/27 98/151/27 66/152/27 +f 67/153/21 97/154/21 65/155/21 +f 68/156/19 99/157/19 67/158/19 +f 66/96/24 100/159/24 68/160/24 +f 86/132/27 80/127/27 79/161/27 +f 63/93/17 64/162/17 62/94/17 +f 66/96/18 68/160/18 67/97/18 +f 63/99/17 69/102/17 70/100/17 +f 69/102/19 71/104/19 72/103/19 +f 71/104/20 73/123/20 74/105/20 +f 81/106/18 80/113/18 78/107/18 +f 63/163/21 61/131/21 75/109/21 +f 61/131/21 81/106/21 75/109/21 +f 83/108/18 78/119/18 77/110/18 +f 85/112/21 87/140/21 78/107/21 +f 75/114/22 71/104/22 69/102/22 +f 70/100/23 72/103/23 76/116/23 +f 87/118/19 88/138/19 77/110/19 +f 88/120/24 86/136/24 79/121/24 +f 84/111/19 76/129/19 74/124/19 +f 73/125/19 75/109/19 83/108/19 +f 84/111/19 74/124/19 83/108/19 +f 82/126/18 79/161/18 80/127/18 +f 84/111/18 77/122/18 79/121/18 +f 64/162/24 76/129/24 62/94/24 +f 76/129/24 84/111/24 82/128/24 +f 62/130/27 82/126/27 81/106/27 +f 86/132/17 90/164/17 89/133/17 +f 88/120/17 92/137/17 90/135/17 +f 87/118/17 91/139/17 92/137/17 +f 85/112/17 89/133/17 91/139/17 +f 89/133/27 90/164/27 94/141/27 +f 89/133/21 93/142/21 95/143/21 +f 91/139/19 95/143/19 96/144/19 +f 92/137/24 96/144/24 94/145/24 +f 93/142/18 97/154/18 99/146/18 +f 95/143/18 99/157/18 100/147/18 +f 96/144/18 100/159/18 98/148/18 +f 94/141/18 98/151/18 97/149/18 +f 65/150/27 97/149/27 98/151/27 +f 67/153/21 99/146/21 97/154/21 +f 68/156/19 100/147/19 99/157/19 +f 66/96/24 98/148/24 100/159/24 +f 86/132/27 85/134/27 80/127/27 +o RightArm +v -8.625008 1.275002 0.525000 +v -8.625007 2.325003 0.525000 +v -8.625008 1.275002 -0.525000 +v -8.625007 2.325003 -0.525000 +v -9.150007 1.275003 -0.525000 +v -9.150007 1.275003 0.525000 +v -9.150006 2.325005 0.525000 +v -9.150006 2.325005 -0.525000 +v -9.150007 1.800003 -1.050000 +v -9.150007 1.057541 -0.742462 +v -9.150007 0.750004 0.000000 +v -9.150007 1.057541 0.742462 +v -9.150007 1.800003 1.050000 +v -9.150006 2.542467 0.742462 +v -9.150006 2.850004 -0.000000 +v -9.150006 2.542467 -0.742462 +v -9.412508 1.057541 -0.742462 +v -9.412508 1.800003 -1.050000 +v -9.412508 0.750004 0.000000 +v -9.412508 1.057541 0.742462 +v -9.412508 1.800003 1.050000 +v -9.412507 2.542467 0.742462 +v -9.412507 2.850004 -0.000000 +v -9.412507 2.542467 -0.742462 +v -8.625008 1.537502 0.525000 +v -8.625007 2.062502 0.525000 +v -8.625008 1.537502 2.625000 +v -8.625007 2.062502 2.625000 +v -8.887507 1.537504 0.525000 +v -8.887506 2.062504 0.525000 +v -8.887507 1.537504 2.625000 +v -8.887506 2.062504 2.625000 +v -8.887507 0.750004 0.525000 +v -8.887506 2.850004 0.525000 +v -8.887507 0.750004 -0.525000 +v -8.887506 2.850004 -0.525000 +v -8.625008 0.225002 0.525000 +v -8.625008 0.225002 -0.525000 +v -8.625007 3.375002 0.525000 +v -8.625007 3.375002 -0.525000 +v -8.100007 3.900002 2.100000 +v -8.100007 3.900002 -2.100000 +v -3.900007 3.900002 -2.100000 +v -3.900007 3.900002 2.100000 +v -3.375006 3.900002 -2.625000 +v -3.375006 3.900002 2.625000 +v -8.625007 3.900002 -2.625000 +v -8.625007 3.900002 2.625000 +v -3.375008 -0.299997 -2.625000 +v -3.375008 -0.299997 2.625000 +v -8.625008 -0.299997 -2.625000 +v -8.625008 -0.299997 2.625000 +v -4.950008 -2.399998 -2.625000 +v -4.950008 -2.399998 2.625000 +v -8.100006 6.000002 2.100000 +v -3.900006 6.000002 2.100000 +v -3.900006 6.000002 -2.100000 +v -8.100006 6.000002 -2.100000 +v -8.625006 6.000002 -2.625000 +v -8.625006 6.000002 2.625000 +v -3.375006 6.000002 -2.625000 +v -3.375006 6.000002 2.625000 +v -8.625005 10.200003 -2.625000 +v -8.625005 10.200003 2.625000 +v -3.375005 10.200001 -2.625000 +v -3.375005 10.200001 2.625000 +v -3.900005 10.200001 2.100000 +v -3.900005 10.200001 -2.100000 +v -8.100005 10.200003 -2.100000 +v -8.100005 10.200003 2.100000 +v -3.900004 11.250001 -2.100000 +v -3.900004 11.250001 2.100000 +v -8.100004 11.250003 -2.100000 +v -8.100004 11.250003 2.100000 +v -3.375004 11.250001 -2.625000 +v -3.375004 11.250001 2.625000 +v -8.625004 11.250003 -2.625000 +v -8.625004 11.250003 2.625000 +v -3.375004 13.350000 -2.625000 +v -3.375004 13.350000 2.625000 +v -8.100004 13.350002 -2.625000 +v -8.100004 13.350002 2.625000 +v -8.625009 -2.399998 0.525000 +v -5.475008 -2.399998 0.525000 +v -8.625009 -2.399998 -0.525000 +v -5.475008 -2.399998 -0.525000 +v -7.575008 -0.299997 -0.525000 +v -7.575008 -0.299997 0.525000 +v -5.475008 -0.299997 0.525000 +v -5.475008 -0.299997 -0.525000 vt 0.650000 0.827586 vt 0.700000 0.810345 vt 0.700000 0.827586 -vt 0.725000 0.844828 -vt 0.700000 0.810345 vt 0.725000 0.810345 +vt 0.700000 0.844828 +vt 0.700000 0.810345 vt 0.725000 0.913793 vt 0.700000 0.879310 vt 0.725000 0.879310 vt 0.725000 0.948276 vt 0.700000 0.913793 -vt 0.700000 0.844828 +vt 0.725000 0.844828 vt 0.601300 0.034483 vt 0.650000 0.000897 vt 0.698699 0.034483 vt 0.476300 0.034483 vt 0.525000 0.000897 vt 0.573700 0.034483 -vt 0.575000 0.017241 -vt 0.600000 0.034483 vt 0.575000 0.034483 +vt 0.600000 0.017241 +vt 0.600000 0.034483 vt 0.575000 0.051724 vt 0.600000 0.068966 vt 0.575000 0.068966 @@ -523,7 +588,7 @@ vt 0.575000 0.103448 vt 0.600000 0.120690 vt 0.575000 0.120690 vt 0.575000 -0.000000 -vt 0.600000 0.017241 +vt 0.575000 0.017241 vt 0.600000 0.051724 vt 0.600000 0.086207 vt 0.600000 0.137931 @@ -550,9 +615,9 @@ vt -0.000000 0.551724 vt 0.975000 0.534483 vt 0.750000 0.551724 vt 1.000000 0.551724 -vt 0.725000 0.534483 -vt 0.500000 0.551724 vt 0.525000 0.534483 +vt 0.500000 0.551724 +vt 0.725000 0.534483 vt 0.475000 0.534483 vt 0.250000 0.689655 vt 0.325000 0.758621 @@ -565,7 +630,7 @@ vt -0.000000 0.758621 vt 0.750000 0.810345 vt 0.475000 0.465517 vt 0.275000 0.534483 -vt 0.975000 0.465517 +vt 0.775000 0.465517 vt 0.775000 0.534483 vt 0.225000 0.465517 vt 0.225000 0.534483 @@ -573,38 +638,38 @@ vt 0.250000 0.310345 vt 0.000000 0.448276 vt 0.250000 0.448276 vt 0.025000 0.465517 -vt 1.000000 0.448276 -vt 0.775000 0.465517 +vt 0.975000 0.465517 vt 0.500000 0.448276 vt 0.275000 0.465517 vt 0.475000 0.293103 vt 0.500000 0.310345 -vt 1.000000 0.310345 +vt 1.000000 0.448276 vt 0.750000 0.310345 vt 0.975000 0.258621 vt 0.775000 0.293103 vt 0.975000 0.293103 -vt 0.725000 0.293103 +vt 0.525000 0.293103 +vt 1.000000 0.310345 vt 0.025000 0.293103 vt -0.000000 0.310345 vt 0.750000 0.241379 vt 0.525000 0.258621 vt 0.725000 0.258621 -vt 0.525000 0.293103 -vt 0.475000 0.258621 +vt 0.725000 0.293103 +vt 0.275000 0.258621 vt 0.275000 0.293103 vt 0.225000 0.258621 vt 0.225000 0.293103 vt 0.475000 0.172414 vt 0.250000 0.241379 vt 0.500000 0.241379 -vt 0.275000 0.258621 +vt 0.475000 0.258621 vt 0.025000 0.258621 -vt 1.000000 0.241379 vt 0.775000 0.258621 vt 0.250000 -0.000000 vt 0.250000 0.172414 vt -0.000000 0.241379 +vt 1.000000 0.241379 vt 0.775000 0.172414 vt 0.750000 0.172414 vt 0.150000 0.931035 @@ -639,249 +704,249 @@ vt 0.250000 0.827586 vt 0.000000 0.827586 vt 0.100000 0.758621 vt 0.150000 1.000000 -vn 0.8944 -0.4472 0.0000 +vn -0.8944 0.4472 0.0000 vn 0.0000 0.0000 -1.0000 -vn 0.0000 0.0000 1.0000 -vn 0.0000 -1.0000 0.0000 +vn -0.0000 0.0000 1.0000 vn 0.0000 1.0000 0.0000 -vn -1.0000 0.0000 0.0000 +vn -0.0000 -1.0000 0.0000 vn 1.0000 0.0000 0.0000 -vn 0.0000 -0.3827 0.9239 -vn 0.0000 0.9239 0.3827 -vn 0.0000 0.3827 -0.9239 -vn 0.0000 -0.3827 -0.9239 -vn 0.0000 -0.9239 0.3827 +vn -1.0000 0.0000 0.0000 vn 0.0000 0.3827 0.9239 -vn 0.0000 0.9239 -0.3827 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 -0.3827 -0.9239 +vn 0.0000 0.3827 -0.9239 +vn 0.0000 0.9239 0.3827 +vn 0.0000 -0.3827 0.9239 vn 0.0000 -0.9239 -0.3827 -vn 0.8944 0.4472 0.0000 -vn -0.8000 0.6000 0.0000 -vn 0.4961 0.8682 0.0000 -vn 0.9701 -0.2425 0.0000 +vn 0.0000 0.9239 -0.3827 +vn -0.8944 -0.4472 0.0000 +vn 0.8000 -0.6000 0.0000 +vn -0.4961 -0.8682 0.0000 +vn -0.9701 0.2425 0.0000 s off -f 114/145/23 120/146/23 116/147/23 -f 83/148/24 88/149/24 84/150/24 -f 82/151/25 86/152/25 81/153/25 -f 84/154/26 87/155/26 82/151/26 -f 81/153/27 85/156/27 83/148/27 -f 89/157/28 95/158/28 93/159/28 -f 101/160/29 103/161/29 98/162/29 -f 94/163/30 101/164/30 93/165/30 -f 92/166/31 99/167/31 91/168/31 -f 90/169/32 98/170/32 89/171/32 -f 89/171/33 104/172/33 96/173/33 -f 95/174/34 102/175/34 94/163/34 -f 93/165/35 100/176/35 92/166/35 -f 91/168/36 97/177/36 90/169/36 -f 96/173/37 103/178/37 95/179/37 -f 115/180/38 117/181/38 113/182/38 -f 109/183/29 112/184/29 110/185/29 -f 106/186/26 112/184/26 108/187/26 -f 114/145/29 115/180/29 113/182/29 -f 107/188/27 109/183/27 105/189/27 -f 108/190/25 111/191/25 107/192/25 -f 140/193/27 138/194/27 135/195/27 -f 125/196/26 124/197/26 126/198/26 -f 124/199/26 128/200/26 126/201/26 -f 121/202/26 127/203/26 128/200/26 -f 135/195/29 122/204/29 121/202/29 -f 122/205/26 125/196/26 127/203/26 -f 129/206/24 133/207/24 131/208/24 -f 129/206/24 127/203/24 125/196/24 -f 130/209/28 125/196/28 126/198/28 -f 132/210/25 126/201/25 128/200/25 -f 131/208/29 128/200/29 127/203/29 -f 130/211/25 132/210/25 134/212/25 -f 134/213/39 129/206/39 130/209/39 -f 131/208/40 134/214/40 132/210/40 -f 138/215/24 123/216/24 122/205/24 -f 136/217/25 121/218/25 124/199/25 -f 137/219/28 124/197/28 123/220/28 -f 145/221/28 142/222/28 141/223/28 -f 141/223/27 136/224/27 137/219/27 -f 142/225/27 135/226/27 136/217/27 -f 139/227/27 137/228/27 138/215/27 -f 149/229/26 145/221/26 143/230/26 -f 143/230/24 141/223/24 139/227/24 -f 146/231/25 140/193/25 142/225/25 -f 144/232/29 139/227/29 140/193/29 -f 152/233/25 150/234/25 147/235/25 -f 150/236/26 143/230/26 144/232/26 -f 146/231/26 150/234/26 144/232/26 -f 145/221/26 147/237/26 146/238/26 -f 158/239/27 153/240/27 154/241/27 -f 154/241/29 149/242/29 150/236/29 -f 153/243/24 148/244/24 149/229/24 -f 151/245/28 147/237/28 148/246/28 -f 161/247/24 155/248/24 157/249/24 -f 157/249/27 151/250/27 153/243/27 -f 155/248/27 152/251/27 151/245/27 -f 156/252/27 154/253/27 152/233/27 -f 161/247/26 160/254/26 159/255/26 -f 159/255/28 156/256/28 155/248/28 -f 156/252/25 162/257/25 158/239/25 -f 162/258/41 157/249/41 158/239/41 -f 165/259/27 164/260/27 163/261/27 -f 167/262/24 166/263/24 165/259/24 -f 164/260/25 168/264/25 163/261/25 -f 170/265/28 164/260/28 166/263/28 -f 168/266/23 165/259/23 163/261/23 -f 114/145/23 119/267/23 120/146/23 -f 83/148/24 85/156/24 88/149/24 -f 82/151/25 87/155/25 86/152/25 -f 84/154/26 88/268/26 87/155/26 -f 81/153/27 86/152/27 85/156/27 -f 91/269/28 90/270/28 89/157/28 -f 89/157/28 96/271/28 95/158/28 -f 95/158/28 94/272/28 93/159/28 -f 93/159/28 92/273/28 91/269/28 -f 91/269/28 89/157/28 93/159/28 -f 98/162/29 97/274/29 99/275/29 -f 99/275/29 100/276/29 101/160/29 -f 101/160/29 102/277/29 103/161/29 -f 103/161/29 104/278/29 98/162/29 -f 98/162/29 99/275/29 101/160/29 -f 94/163/30 102/175/30 101/164/30 -f 92/166/31 100/176/31 99/167/31 -f 90/169/32 97/177/32 98/170/32 -f 89/171/33 98/170/33 104/172/33 -f 95/174/34 103/279/34 102/175/34 -f 93/165/35 101/164/35 100/176/35 -f 91/168/36 99/167/36 97/177/36 -f 96/173/37 104/172/37 103/178/37 -f 115/180/38 118/280/38 117/181/38 -f 109/183/29 111/191/29 112/184/29 -f 106/186/26 110/185/26 112/184/26 -f 114/145/29 116/147/29 115/180/29 -f 107/188/27 111/191/27 109/183/27 -f 108/190/25 112/184/25 111/191/25 -f 140/193/27 139/227/27 138/194/27 -f 125/196/26 123/220/26 124/197/26 -f 124/199/26 121/218/26 128/200/26 -f 121/202/26 122/204/26 127/203/26 -f 135/195/29 138/194/29 122/204/29 -f 122/205/26 123/216/26 125/196/26 -f 129/206/24 131/208/24 127/203/24 -f 130/209/28 129/206/28 125/196/28 -f 132/210/25 130/211/25 126/201/25 -f 131/208/29 132/210/29 128/200/29 -f 134/213/39 133/281/39 129/206/39 -f 131/208/40 133/282/40 134/214/40 -f 138/215/24 137/228/24 123/216/24 -f 136/217/25 135/226/25 121/218/25 -f 137/219/28 136/224/28 124/197/28 -f 145/221/28 146/238/28 142/222/28 -f 141/223/27 142/222/27 136/224/27 -f 142/225/27 140/193/27 135/226/27 -f 139/227/27 141/223/27 137/228/27 -f 149/229/26 148/244/26 145/221/26 -f 143/230/24 145/221/24 141/223/24 -f 146/231/25 144/232/25 140/193/25 -f 144/232/29 143/230/29 139/227/29 -f 152/233/25 154/253/25 150/234/25 -f 150/236/26 149/242/26 143/230/26 -f 146/231/26 147/235/26 150/234/26 -f 145/221/26 148/246/26 147/237/26 -f 158/239/27 157/249/27 153/240/27 -f 154/241/29 153/240/29 149/242/29 -f 153/243/24 151/250/24 148/244/24 -f 151/245/28 152/251/28 147/237/28 -f 161/247/24 159/255/24 155/248/24 -f 157/249/27 155/248/27 151/250/27 -f 155/248/27 156/256/27 152/251/27 -f 156/252/27 158/239/27 154/253/27 -f 161/247/26 162/283/26 160/254/26 -f 159/255/28 160/284/28 156/256/28 -f 156/252/25 160/285/25 162/257/25 -f 162/258/41 161/286/41 157/249/41 -f 165/259/27 166/263/27 164/260/27 -f 167/262/24 170/287/24 166/263/24 -f 164/260/25 169/288/25 168/264/25 -f 170/265/28 169/289/28 164/260/28 -f 168/266/23 167/290/23 165/259/23 -o Plane.002 -v -8.000000 20.000000 2.000000 -v -8.000000 20.000000 -2.000000 -v -4.000000 20.000000 -2.000000 -v -4.000000 20.000000 2.000000 -v -3.500000 20.000000 -2.500000 -v -3.500000 20.000000 2.500000 -v -8.500000 20.000000 -2.500000 -v -8.500000 20.000000 2.500000 -v -3.500000 24.000000 -2.500000 -v -3.500000 24.000000 2.500000 -v -8.500000 24.000000 -2.500000 -v -8.500000 24.000000 2.500000 -v -5.000000 26.000000 -2.500000 -v -5.000000 26.000000 2.500000 -v -8.000000 18.000000 2.000000 -v -4.000000 18.000000 2.000000 -v -4.000000 18.000000 -2.000000 -v -8.000000 18.000000 -2.000000 -v -8.500000 18.000000 -2.500000 -v -8.500000 18.000000 2.500000 -v -3.500000 18.000000 -2.500000 -v -3.500000 18.000000 2.500000 -v -8.500000 14.000000 -2.500000 -v -8.500000 14.000000 2.500000 -v -3.500000 14.000000 -2.500000 -v -3.500000 14.000000 2.500000 -v -4.000000 14.000000 2.000000 -v -4.000000 14.000000 -2.000000 -v -8.000000 14.000000 -2.000000 -v -8.000000 14.000000 2.000000 -v -4.000000 13.000000 -2.000000 -v -4.000000 13.000000 2.000000 -v -8.000000 13.000000 -2.000000 -v -8.000000 13.000000 2.000000 -v -3.500000 13.000000 -2.500000 -v -3.500000 13.000000 2.500000 -v -8.500000 13.000000 -2.500000 -v -8.500000 13.000000 2.500000 -v -3.500000 11.000000 -2.500000 -v -3.500000 11.000000 2.500000 -v -8.000000 11.000000 -2.500000 -v -8.000000 11.000000 2.500000 -v -9.000000 22.500000 1.500000 -v -9.000000 21.500000 1.500000 -v -9.000000 22.500000 -0.500000 -v -9.000000 21.500000 -0.500000 -v -8.500000 23.500000 1.500000 -v -8.500000 20.500000 1.500000 -v -8.500000 23.500000 -0.500000 -v -8.500000 20.500000 -0.500000 -v -8.625000 22.500000 3.000000 -v -8.625000 21.500000 2.000000 -v -8.625000 22.500000 -1.000000 -v -8.625000 21.500000 -1.000000 -v -8.875000 22.500000 -1.000000 -v -8.875000 22.500000 3.000000 -v -8.875000 21.500000 2.000000 -v -8.875000 21.500000 -1.000000 -v -8.500000 22.750000 -1.000000 -v -8.500000 21.250000 -1.000000 -v -9.000000 22.750000 -1.000000 -v -9.000000 21.250000 -1.000000 -v -8.500000 21.250000 -1.500000 -v -8.500000 22.750000 -1.500000 -v -9.000000 21.250000 -1.500000 -v -9.000000 22.750000 -1.500000 -v -9.000000 21.750000 -1.500000 -v -8.500000 21.750000 -1.500000 -v -9.000000 22.250000 -1.500000 -v -8.500000 22.250000 -1.500000 -v -9.000000 22.250000 -2.500000 -v -9.000000 21.750000 -2.500000 -v -8.500000 21.750000 -2.500000 -v -8.500000 22.250000 -2.500000 -v -8.500000 26.000000 0.500000 -v -5.500000 26.000000 0.500000 -v -8.500000 26.000000 -0.500000 -v -5.500000 26.000000 -0.500000 -v -7.500000 24.000000 -0.500000 -v -7.500000 24.000000 0.500000 -v -5.500000 24.000000 0.500000 -v -5.500000 24.000000 -0.500000 +f 134/165/28 140/166/28 136/167/28 +f 104/168/29 105/169/29 108/170/29 +f 102/171/30 106/172/30 101/173/30 +f 104/174/31 107/175/31 102/171/31 +f 101/173/32 105/169/32 103/176/32 +f 109/177/33 115/178/33 113/179/33 +f 121/180/34 123/181/34 118/182/34 +f 113/183/35 122/184/35 121/185/35 +f 112/186/36 119/187/36 111/188/36 +f 110/189/37 118/190/37 109/191/37 +f 109/191/38 124/192/38 116/193/38 +f 115/194/39 122/184/39 114/195/39 +f 113/183/40 120/196/40 112/186/40 +f 111/188/41 117/197/41 110/189/41 +f 116/193/42 123/198/42 115/199/42 +f 135/200/43 137/201/43 133/202/43 +f 129/203/34 132/204/34 130/205/34 +f 126/206/31 132/204/31 128/207/31 +f 134/165/34 135/200/34 133/202/34 +f 127/208/32 129/203/32 125/209/32 +f 128/210/30 131/211/30 127/212/30 +f 160/213/32 158/214/32 155/215/32 +f 145/216/31 144/217/31 146/218/31 +f 144/219/31 148/220/31 146/221/31 +f 148/220/31 142/222/31 147/223/31 +f 155/215/34 142/222/34 141/224/34 +f 142/225/31 145/216/31 147/223/31 +f 149/226/29 153/227/29 151/228/29 +f 149/226/29 147/223/29 145/216/29 +f 150/229/33 145/216/33 146/218/33 +f 152/230/30 146/221/30 148/220/30 +f 151/228/34 148/220/34 147/223/34 +f 150/231/30 152/230/30 154/232/30 +f 154/233/44 149/226/44 150/229/44 +f 151/228/45 154/234/45 152/230/45 +f 158/235/29 143/236/29 142/225/29 +f 144/219/30 155/237/30 141/238/30 +f 157/239/33 144/217/33 143/240/33 +f 165/241/33 162/242/33 161/243/33 +f 161/243/32 156/244/32 157/239/32 +f 156/245/32 160/213/32 155/237/32 +f 159/246/32 157/247/32 158/235/32 +f 169/248/31 165/241/31 163/249/31 +f 159/246/29 165/241/29 161/243/29 +f 162/250/30 164/251/30 160/213/30 +f 164/251/34 159/246/34 160/213/34 +f 172/252/30 170/253/30 167/254/30 +f 164/251/31 169/255/31 163/249/31 +f 166/256/31 170/253/31 164/251/31 +f 165/241/31 167/257/31 166/258/31 +f 178/259/32 173/260/32 174/261/32 +f 174/261/34 169/255/34 170/262/34 +f 169/248/29 171/263/29 168/264/29 +f 171/265/33 167/257/33 168/266/33 +f 181/267/29 175/268/29 177/269/29 +f 177/269/32 171/263/32 173/270/32 +f 175/268/32 172/271/32 171/265/32 +f 172/252/32 178/259/32 174/272/32 +f 181/267/31 180/273/31 179/274/31 +f 179/274/33 176/275/33 175/268/33 +f 176/276/30 182/277/30 178/259/30 +f 182/278/46 177/269/46 178/259/46 +f 185/279/32 184/280/32 183/281/32 +f 187/282/29 186/283/29 185/279/29 +f 184/280/30 188/284/30 183/281/30 +f 190/285/33 184/280/33 186/283/33 +f 188/286/28 185/279/28 183/281/28 +f 134/165/28 139/287/28 140/166/28 +f 104/168/29 103/176/29 105/169/29 +f 102/171/30 107/175/30 106/172/30 +f 104/174/31 108/288/31 107/175/31 +f 101/173/32 106/172/32 105/169/32 +f 111/289/33 110/290/33 109/177/33 +f 109/177/33 116/291/33 115/178/33 +f 115/178/33 114/292/33 113/179/33 +f 113/179/33 112/293/33 111/289/33 +f 111/289/33 109/177/33 113/179/33 +f 118/182/34 117/294/34 119/295/34 +f 119/295/34 120/296/34 121/180/34 +f 121/180/34 122/297/34 123/181/34 +f 123/181/34 124/298/34 118/182/34 +f 118/182/34 119/295/34 121/180/34 +f 113/183/35 114/195/35 122/184/35 +f 112/186/36 120/196/36 119/187/36 +f 110/189/37 117/197/37 118/190/37 +f 109/191/38 118/190/38 124/192/38 +f 115/194/39 123/299/39 122/184/39 +f 113/183/40 121/185/40 120/196/40 +f 111/188/41 119/187/41 117/197/41 +f 116/193/42 124/192/42 123/198/42 +f 135/200/43 138/300/43 137/201/43 +f 129/203/34 131/211/34 132/204/34 +f 126/206/31 130/205/31 132/204/31 +f 134/165/34 136/167/34 135/200/34 +f 127/208/32 131/211/32 129/203/32 +f 128/210/30 132/204/30 131/211/30 +f 160/213/32 159/246/32 158/214/32 +f 145/216/31 143/240/31 144/217/31 +f 144/219/31 141/238/31 148/220/31 +f 148/220/31 141/224/31 142/222/31 +f 155/215/34 158/214/34 142/222/34 +f 142/225/31 143/236/31 145/216/31 +f 149/226/29 151/228/29 147/223/29 +f 150/229/33 149/226/33 145/216/33 +f 152/230/30 150/231/30 146/221/30 +f 151/228/34 152/230/34 148/220/34 +f 154/233/44 153/301/44 149/226/44 +f 151/228/45 153/302/45 154/234/45 +f 158/235/29 157/247/29 143/236/29 +f 144/219/30 156/245/30 155/237/30 +f 157/239/33 156/244/33 144/217/33 +f 165/241/33 166/258/33 162/242/33 +f 161/243/32 162/242/32 156/244/32 +f 156/245/32 162/250/32 160/213/32 +f 159/246/32 161/243/32 157/247/32 +f 169/248/31 168/264/31 165/241/31 +f 159/246/29 163/249/29 165/241/29 +f 162/250/30 166/256/30 164/251/30 +f 164/251/34 163/249/34 159/246/34 +f 172/252/30 174/272/30 170/253/30 +f 164/251/31 170/262/31 169/255/31 +f 166/256/31 167/254/31 170/253/31 +f 165/241/31 168/266/31 167/257/31 +f 178/259/32 177/269/32 173/260/32 +f 174/261/34 173/260/34 169/255/34 +f 169/248/29 173/270/29 171/263/29 +f 171/265/33 172/271/33 167/257/33 +f 181/267/29 179/274/29 175/268/29 +f 177/269/32 175/268/32 171/263/32 +f 175/268/32 176/275/32 172/271/32 +f 172/252/32 176/276/32 178/259/32 +f 181/267/31 182/303/31 180/273/31 +f 179/274/33 180/304/33 176/275/33 +f 176/276/30 180/305/30 182/277/30 +f 182/278/46 181/306/46 177/269/46 +f 185/279/32 186/283/32 184/280/32 +f 187/282/29 190/307/29 186/283/29 +f 184/280/30 189/308/30 188/284/30 +f 190/285/33 189/309/33 184/280/33 +f 188/286/28 187/310/28 185/279/28 +o LeftArm +v 8.099994 3.899998 2.100000 +v 8.099994 3.899998 -2.100000 +v 3.899994 3.899998 -2.100000 +v 3.899994 3.899998 2.100000 +v 3.374994 3.899998 -2.625000 +v 3.374994 3.899998 2.625000 +v 8.624993 3.899998 -2.625000 +v 8.624993 3.899998 2.625000 +v 3.374992 -0.300001 -2.625000 +v 3.374992 -0.300001 2.625000 +v 8.624992 -0.300001 -2.625000 +v 8.624992 -0.300001 2.625000 +v 4.949991 -2.400002 -2.625000 +v 4.949991 -2.400002 2.625000 +v 8.099995 5.999998 2.100000 +v 3.899994 5.999998 2.100000 +v 3.899994 5.999998 -2.100000 +v 8.099995 5.999998 -2.100000 +v 8.624994 5.999998 -2.625000 +v 8.624994 5.999998 2.625000 +v 3.374994 5.999998 -2.625000 +v 3.374994 5.999998 2.625000 +v 8.624995 10.199997 -2.625000 +v 8.624995 10.199997 2.625000 +v 3.374995 10.199999 -2.625000 +v 3.374995 10.199999 2.625000 +v 3.899996 10.199999 2.100000 +v 3.899996 10.199999 -2.100000 +v 8.099996 10.199997 -2.100000 +v 8.099996 10.199997 2.100000 +v 3.899996 11.249999 -2.100000 +v 3.899996 11.249999 2.100000 +v 8.099997 11.249997 -2.100000 +v 8.099997 11.249997 2.100000 +v 3.374996 11.249999 -2.625000 +v 3.374996 11.249999 2.625000 +v 8.624996 11.249997 -2.625000 +v 8.624996 11.249997 2.625000 +v 3.374996 13.349998 -2.625000 +v 3.374996 13.349998 2.625000 +v 8.099997 13.349997 -2.625000 +v 8.099997 13.349997 2.625000 +v 9.149992 1.274996 1.575000 +v 9.149993 2.324997 1.575000 +v 9.149992 1.274996 -0.525000 +v 9.149993 2.324997 -0.525000 +v 8.624992 0.224998 1.575000 +v 8.624993 3.374998 1.575000 +v 8.624992 0.224998 -0.525000 +v 8.624993 3.374998 -0.525000 +v 8.756243 1.274998 3.150000 +v 8.756244 2.324999 2.100000 +v 8.756243 1.274998 -1.050000 +v 8.756244 2.324999 -1.050000 +v 9.018743 1.274996 -1.050000 +v 9.018743 1.274996 3.150000 +v 9.018744 2.324997 2.100000 +v 9.018744 2.324997 -1.050000 +v 8.624992 1.012499 -1.050000 +v 8.624993 2.587498 -1.050000 +v 9.149992 1.012497 -1.050000 +v 9.149993 2.587496 -1.050000 +v 8.624993 2.587498 -1.575000 +v 8.624992 1.012499 -1.575000 +v 9.149993 2.587496 -1.575000 +v 9.149992 1.012497 -1.575000 +v 9.149993 2.062496 -1.575000 +v 8.624993 2.062498 -1.575000 +v 9.149992 1.537497 -1.575000 +v 8.624992 1.537498 -1.575000 +v 9.149992 1.537497 -2.625000 +v 9.149993 2.062496 -2.625000 +v 8.624993 2.062498 -2.625000 +v 8.624992 1.537498 -2.625000 +v 8.624991 -2.400002 0.525000 +v 5.474991 -2.400002 0.525000 +v 8.624991 -2.400002 -0.525000 +v 5.474991 -2.400002 -0.525000 +v 7.574992 -0.300001 -0.525000 +v 7.574992 -0.300001 0.525000 +v 5.474992 -0.300001 0.525000 +v 5.474992 -0.300001 -0.525000 vt 0.525000 0.465517 vt 0.750000 0.448276 vt 0.725000 0.465517 @@ -894,6 +959,7 @@ vt 1.000000 0.551724 vt 0.500000 0.551724 vt 0.725000 0.534483 vt 0.525000 0.534483 +vt 0.275000 0.534483 vt 0.475000 0.534483 vt 0.250000 0.689655 vt 0.500000 0.689655 @@ -904,7 +970,7 @@ vt 1.000000 0.689655 vt 0.925000 0.758621 vt -0.000000 0.758621 vt 0.750000 0.810345 -vt 0.275000 0.534483 +vt 0.275000 0.465517 vt 0.475000 0.465517 vt 0.775000 0.534483 vt 0.975000 0.465517 @@ -914,12 +980,11 @@ vt 0.000000 0.448276 vt 0.250000 0.310345 vt 0.250000 0.448276 vt 0.025000 0.465517 -vt 0.775000 0.465517 vt 1.000000 0.448276 -vt 0.275000 0.465517 vt 0.500000 0.448276 -vt 0.475000 0.293103 vt 0.500000 0.310345 +vt 0.275000 0.293103 +vt 0.475000 0.293103 vt 1.000000 0.310345 vt 0.750000 0.310345 vt 0.775000 0.293103 @@ -932,7 +997,6 @@ vt 0.525000 0.258621 vt 0.750000 0.241379 vt 0.725000 0.258621 vt 0.525000 0.293103 -vt 0.275000 0.293103 vt 0.475000 0.258621 vt 0.225000 0.258621 vt 0.225000 0.293103 @@ -941,7 +1005,6 @@ vt 0.475000 0.172414 vt 0.500000 0.241379 vt 0.275000 0.258621 vt 0.025000 0.258621 -vt 0.775000 0.258621 vt 1.000000 0.241379 vt 0.250000 -0.000000 vt 0.250000 0.172414 @@ -965,23 +1028,23 @@ vt 0.650000 0.948276 vt 0.650000 0.913793 vt 0.625000 0.810345 vt 0.650000 0.810345 -vt 0.375000 0.844828 -vt 0.450000 0.862069 vt 0.375000 0.862069 -vt 0.450000 0.810345 -vt 0.375000 0.827586 -vt 0.375000 0.810345 -vt 0.350000 0.844828 -vt 0.450000 0.827586 vt 0.450000 0.844828 +vt 0.450000 0.862069 +vt 0.375000 0.810345 +vt 0.450000 0.827586 +vt 0.375000 0.827586 +vt 0.350000 0.844828 +vt 0.375000 0.844828 vt 0.475000 0.827586 vt 0.475000 0.844828 -vt 0.375000 0.775862 -vt 0.400000 0.758621 vt 0.400000 0.775862 +vt 0.375000 0.758621 +vt 0.400000 0.758621 vt 0.375000 0.810345 vt 0.400000 0.810345 vt 0.350000 0.810345 +vt 0.375000 0.775862 vt 0.425000 0.775862 vt 0.425000 0.810345 vt 0.100000 0.827586 @@ -995,6 +1058,8 @@ vt 0.150000 0.758621 vt 0.100000 1.000000 vt 0.250000 0.758621 vt 0.500000 0.810345 +vt 0.775000 0.465517 +vt 0.775000 0.258621 vt 0.475000 0.000000 vt -0.000000 0.172414 vt 0.500000 0.172414 @@ -1002,389 +1067,381 @@ vt 0.250000 0.758621 vt 0.350000 0.862069 vt 0.500000 0.810345 vt 0.625000 0.948276 +vt 0.450000 0.810345 vt 0.350000 0.827586 -vt 0.375000 0.758621 vt 0.350000 0.775862 vt 0.250000 0.827586 vt 0.100000 0.758621 vt 0.150000 1.000000 -vn 0.0000 1.0000 0.0000 vn 0.0000 -1.0000 0.0000 -vn -1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 -0.0000 0.0000 vn 0.0000 0.0000 -1.0000 -vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 vn 0.0000 0.0000 1.0000 -vn 0.8000 0.6000 0.0000 -vn -0.4961 0.8682 0.0000 -vn -0.9701 -0.2425 0.0000 -vn -0.8944 -0.4472 0.0000 -vn -0.8944 0.4472 0.0000 -vn 0.0000 -0.7071 0.7071 +vn -0.8000 -0.6000 0.0000 +vn 0.4961 -0.8682 0.0000 +vn 0.9701 0.2425 0.0000 +vn 0.8944 0.4472 0.0000 +vn 0.8944 -0.4472 0.0000 +vn 0.0000 0.7071 0.7071 s off -f 188/291/42 190/292/42 185/293/42 -f 174/294/43 175/295/43 176/296/43 -f 178/297/43 174/298/43 176/299/43 -f 177/300/43 171/301/43 178/297/43 -f 172/302/44 185/293/44 171/301/44 -f 175/295/43 172/303/43 177/300/43 -f 179/304/45 181/305/45 183/306/45 -f 177/300/45 179/304/45 175/295/45 -f 175/295/46 180/307/46 176/296/46 -f 176/299/47 182/308/47 178/297/47 -f 178/297/44 181/305/44 177/300/44 -f 180/309/47 184/310/47 182/308/47 -f 179/304/48 184/311/48 180/307/48 -f 184/312/49 181/305/49 182/308/49 -f 173/313/45 188/314/45 172/303/45 -f 171/315/47 186/316/47 174/298/47 -f 174/294/46 187/317/46 173/318/46 -f 192/319/46 195/320/46 191/321/46 -f 186/322/42 191/321/42 187/317/42 -f 185/323/42 192/324/42 186/316/42 -f 187/325/42 189/326/42 188/314/42 -f 195/320/43 199/327/43 193/328/43 -f 191/321/45 193/328/45 189/326/45 -f 190/292/47 196/329/47 192/324/47 -f 189/326/44 194/330/44 190/292/44 -f 200/331/47 202/332/47 197/333/47 -f 193/328/43 200/334/43 194/330/43 -f 200/331/43 196/329/43 194/330/43 -f 197/335/43 195/320/43 196/336/43 -f 203/337/42 208/338/42 204/339/42 -f 199/340/44 204/339/44 200/334/44 -f 198/341/45 203/342/45 199/327/45 -f 197/335/46 201/343/46 198/344/46 -f 205/345/45 211/346/45 207/347/45 -f 201/348/42 207/347/42 203/342/42 -f 202/349/42 205/345/42 201/343/42 -f 204/350/42 206/351/42 202/332/42 -f 210/352/43 211/346/43 209/353/43 -f 206/354/46 209/353/46 205/345/46 -f 206/351/47 212/355/47 210/356/47 -f 207/347/50 212/357/50 208/338/50 -f 215/358/44 214/359/44 213/360/44 -f 216/361/51 218/362/51 214/359/51 -f 213/360/52 219/363/52 215/358/52 -f 222/364/46 223/365/46 221/366/46 -f 225/367/44 227/368/44 226/369/44 -f 221/370/53 227/368/53 222/371/53 -f 222/371/43 228/372/43 224/373/43 -f 223/365/42 226/369/42 221/366/42 -f 231/374/47 230/375/47 229/376/47 -f 233/377/45 236/378/45 234/379/45 -f 229/380/42 236/378/42 231/374/42 -f 231/374/44 235/381/44 232/382/44 -f 232/382/43 233/383/43 230/384/43 -f 241/385/45 243/386/45 242/387/45 -f 239/388/44 242/387/44 237/389/44 -f 240/390/42 241/385/42 239/388/42 -f 237/389/43 243/391/43 238/392/43 -f 246/393/42 247/394/42 245/395/42 -f 248/396/45 249/397/45 247/394/45 -f 246/393/47 250/398/47 251/399/47 -f 246/393/46 252/400/46 248/396/46 -f 247/394/51 250/401/51 245/395/51 -f 188/291/42 189/326/42 190/292/42 -f 174/294/43 173/318/43 175/295/43 -f 178/297/43 171/315/43 174/298/43 -f 177/300/43 172/302/43 171/301/43 -f 172/302/44 188/291/44 185/293/44 -f 175/295/43 173/313/43 172/303/43 -f 177/300/45 181/305/45 179/304/45 -f 175/295/46 179/304/46 180/307/46 -f 176/299/47 180/309/47 182/308/47 -f 178/297/44 182/308/44 181/305/44 -f 179/304/48 183/402/48 184/311/48 -f 184/312/49 183/403/49 181/305/49 -f 173/313/45 187/325/45 188/314/45 -f 171/315/47 185/323/47 186/316/47 -f 174/294/46 186/322/46 187/317/46 -f 192/319/46 196/336/46 195/320/46 -f 186/322/42 192/319/42 191/321/42 -f 185/323/42 190/292/42 192/324/42 -f 187/325/42 191/321/42 189/326/42 -f 195/320/43 198/341/43 199/327/43 -f 191/321/45 195/320/45 193/328/45 -f 190/292/47 194/330/47 196/329/47 -f 189/326/44 193/328/44 194/330/44 -f 200/331/47 204/350/47 202/332/47 -f 193/328/43 199/340/43 200/334/43 -f 200/331/43 197/333/43 196/329/43 -f 197/335/43 198/344/43 195/320/43 -f 203/337/42 207/347/42 208/338/42 -f 199/340/44 203/337/44 204/339/44 -f 198/341/45 201/348/45 203/342/45 -f 197/335/46 202/349/46 201/343/46 -f 205/345/45 209/353/45 211/346/45 -f 201/348/42 205/345/42 207/347/42 -f 202/349/42 206/354/42 205/345/42 -f 204/350/42 208/338/42 206/351/42 -f 210/352/43 212/404/43 211/346/43 -f 206/354/46 210/405/46 209/353/46 -f 206/351/47 208/338/47 212/355/47 -f 207/347/50 211/406/50 212/357/50 -f 215/358/44 216/361/44 214/359/44 -f 216/361/51 220/407/51 218/362/51 -f 213/360/52 217/408/52 219/363/52 -f 222/364/46 224/409/46 223/365/46 -f 225/367/44 228/372/44 227/368/44 -f 221/370/53 226/410/53 227/368/53 -f 222/371/43 227/368/43 228/372/43 -f 223/365/42 225/367/42 226/369/42 -f 231/374/47 232/382/47 230/375/47 -f 233/377/45 235/381/45 236/378/45 -f 229/380/42 234/411/42 236/378/42 -f 231/374/44 236/378/44 235/381/44 -f 232/382/43 235/381/43 233/383/43 -f 241/385/45 244/412/45 243/386/45 -f 239/388/44 241/385/44 242/387/44 -f 240/390/42 244/413/42 241/385/42 -f 237/389/43 242/387/43 243/391/43 -f 246/393/42 248/396/42 247/394/42 -f 248/396/45 252/414/45 249/397/45 -f 246/393/47 245/395/47 250/398/47 -f 246/393/46 251/415/46 252/400/46 -f 247/394/51 249/416/51 250/401/51 -o Plane.001 -v -5.000000 32.000000 -4.000000 -v -5.000000 32.000000 4.000000 -v 4.000000 32.000000 5.000000 -v -4.000000 32.000000 5.000000 -v 4.000000 32.000000 -5.000000 -v -4.000000 32.000000 -5.000000 -v 5.000000 32.000000 4.000000 -v 5.000000 32.000000 -4.000000 -v -5.000000 30.000000 -4.000000 -v -5.000000 30.000000 4.000000 -v 4.000000 30.000000 5.000000 -v -4.000000 30.000000 5.000000 -v 4.000000 30.000000 -5.000000 -v -4.000000 30.000000 -5.000000 -v 5.000000 30.000000 4.000000 -v 5.000000 30.000000 -4.000000 -v -7.000000 29.000000 -4.000000 -v -7.000000 29.000000 4.000000 -v 4.000000 29.000000 7.000000 -v -4.000000 29.000000 7.000000 -v 4.000000 29.000000 -7.000000 -v -4.000000 29.000000 -7.000000 -v 7.000000 29.000000 4.000000 -v 7.000000 29.000000 -4.000000 -v 3.000000 34.000000 3.000000 -v 3.000000 34.000000 -3.000000 -v -3.000000 34.000000 -3.000000 -v -3.000000 34.000000 3.000000 -v -4.500000 32.000000 -3.500000 -v -4.500000 32.000000 3.500000 -v 3.500000 32.000000 4.500000 -v -3.500000 32.000000 4.500000 -v 3.500000 32.000000 -4.500000 -v -3.500000 32.000000 -4.500000 -v 4.500000 32.000000 3.500000 -v 4.500000 32.000000 -3.500000 -v -4.500000 24.000000 -3.500000 -v -4.500000 24.000000 3.500000 -v 3.500000 24.000000 4.500000 -v -3.500000 24.000000 4.500000 -v 3.500000 24.000000 -4.500000 -v -3.500000 24.000000 -4.500000 -v 4.500000 24.000000 3.500000 -v 4.500000 24.000000 -3.500000 -v 3.500000 23.000000 3.500000 -v 3.500000 23.000000 -3.500000 -v -3.500000 23.000000 -3.500000 -v -3.500000 23.000000 3.500000 -v -1.500000 27.000000 -4.500000 -v 1.500000 27.000000 -4.500000 -v -1.500000 24.000000 -4.500000 -v 1.500000 24.000000 -4.500000 -v -1.500000 24.000000 -5.500000 -v -1.500000 26.000000 -5.500000 -v 1.500000 26.000000 -5.500000 -v 1.500000 24.000000 -5.500000 -v 2.000000 29.500000 -4.500000 -v 0.700962 28.750000 -4.500000 -v 0.700962 27.250000 -4.500000 -v 2.000000 26.500000 -4.500000 -v 3.299038 27.250000 -4.500000 -v 3.299038 28.750000 -4.500000 -v -2.000000 29.500000 -4.500000 -v -3.299038 28.750000 -4.500000 -v -3.299038 27.250000 -4.500000 -v -2.000000 26.500000 -4.500000 -v -0.700962 27.250000 -4.500000 -v -0.700962 28.750000 -4.500000 -v -2.000000 29.500000 -5.000000 -v -3.299038 28.750000 -5.000000 -v -3.299038 27.250000 -5.000000 -v -2.000000 26.500000 -5.000000 -v -0.700962 27.250000 -5.000000 -v -0.700962 28.750000 -5.000000 -v 2.000000 29.500000 -5.000000 -v 0.700962 28.750000 -5.000000 -v 0.700962 27.250000 -5.000000 -v 2.000000 26.500000 -5.000000 -v 3.299038 27.250000 -5.000000 -v 3.299038 28.750000 -5.000000 -v -0.500000 30.000000 -4.000000 -v -1.000000 30.000000 -4.500000 -v -1.000000 34.000000 -4.500000 -v -0.500000 34.000000 -4.000000 -v -1.000000 30.000000 -5.500000 -v -0.500000 30.000000 -6.000000 -v -0.500000 34.000000 -6.000000 -v -1.000000 34.000000 -5.500000 -v 1.000000 30.000000 -4.500000 -v 0.500000 30.000000 -4.000000 -v 0.500000 34.000000 -4.000000 -v 1.000000 34.000000 -4.500000 -v 0.500000 30.000000 -6.000000 -v 1.000000 30.000000 -5.500000 -v 1.000000 34.000000 -5.500000 -v 0.500000 34.000000 -6.000000 -v -1.000000 32.000000 -6.000000 -v 1.000000 32.000000 -6.000000 -v -1.000000 34.000000 -6.000000 -v 1.000000 34.000000 -6.000000 -v -2.000000 35.000000 -7.000000 -v -2.000000 31.000000 -7.000000 -v 2.000000 31.000000 -7.000000 -v 2.000000 35.000000 -7.000000 -v -1.500000 34.500000 -7.000000 -v -1.500000 31.500000 -7.000000 -v 1.500000 31.500000 -7.000000 -v 1.500000 34.500000 -7.000000 -v -1.000000 34.000000 -7.500000 -v -1.000000 32.000000 -7.500000 -v 1.000000 32.000000 -7.500000 -v 1.000000 34.000000 -7.500000 -v 4.500000 28.500000 2.000000 -v 4.500000 25.500000 2.000000 -v 4.500000 28.500000 -2.000000 -v 4.500000 25.500000 -2.000000 -v 5.500000 28.500000 -2.000000 -v 5.500000 28.500000 2.000000 -v 5.500000 25.500000 2.000000 -v 5.500000 25.500000 -2.000000 -v 5.500000 28.000000 1.500000 -v 5.500000 26.000000 1.500000 -v 5.500000 28.000000 -1.500000 -v 5.500000 26.000000 -1.500000 -v 6.000000 28.000000 -1.500000 -v 6.000000 28.000000 1.500000 -v 6.000000 26.000000 1.500000 -v 6.000000 26.000000 -1.500000 -v 6.750000 29.000000 0.250000 -v 7.250000 29.000000 0.250000 -v 6.750000 29.000000 -0.250000 -v 7.250000 29.000000 -0.250000 -v 6.750000 35.000000 -0.250000 -v 6.750000 35.000000 0.250000 -v 7.250000 35.000000 0.250000 -v 7.250000 35.000000 -0.250000 -v 5.250000 27.000000 -0.250000 -v 5.250000 27.000000 0.250000 -v 5.750000 27.000000 0.250000 -v 5.750000 27.000000 -0.250000 -v -1.500000 22.878681 -5.207107 -v -1.000000 22.525127 -4.853554 -v 1.000000 22.525127 -4.853554 -v 1.500000 22.878681 -5.207107 -v -1.000000 24.646446 -6.974874 -v -1.500000 24.292892 -6.621319 -v 1.500000 24.292892 -6.621319 -v 1.000000 24.646446 -6.974874 -v -1.500000 22.878677 -8.035534 -v -1.000000 23.232231 -8.389088 -v -1.000000 21.110912 -6.267767 -v -1.500000 21.464464 -6.621321 -v 1.500000 21.464464 -6.621321 -v 1.000000 21.110912 -6.267767 -v 1.000000 23.232231 -8.389088 -v 1.500000 22.878677 -8.035534 -v -1.000000 24.646446 -4.146446 -v -0.500000 24.292892 -3.792893 -v 0.500000 24.292892 -3.792893 -v 1.000000 24.646446 -4.146446 -v -0.500000 25.707108 -5.207107 -v -1.000000 25.353554 -4.853554 -v 1.000000 25.353554 -4.853554 -v 0.500000 25.707108 -5.207107 -v -1.000000 23.939339 -6.267766 -v -0.500000 24.292892 -6.621321 -v -0.500000 22.878681 -5.207107 -v -1.000000 23.232235 -5.560660 -v 1.000000 23.232235 -5.560660 -v 0.500000 22.878681 -5.207107 -v 0.500000 24.292892 -6.621321 -v 1.000000 23.939339 -6.267766 -v -5.500000 28.500000 -2.000000 -v -5.500000 28.500000 2.000000 -v -5.500000 25.500000 2.000000 -v -5.500000 25.500000 -2.000000 -v -4.500000 28.500000 -2.000000 -v -4.500000 28.500000 2.000000 -v -4.500000 25.500000 2.000000 -v -4.500000 25.500000 -2.000000 -v -6.500000 26.000000 3.000000 -v -6.500000 28.000000 5.000000 -v -6.500000 26.000000 1.000000 -v -6.500000 28.000000 1.000000 -v -5.500000 26.000000 0.000000 -v -5.500000 28.000000 0.000000 -v -5.100000 30.000000 -1.375000 -v -5.100000 32.000000 -1.375000 -v -5.100000 30.000000 -2.625000 -v -5.100000 32.000000 -2.625000 -v -5.200001 30.000000 -0.375000 -v -5.200001 32.000000 -0.375000 -v -5.200001 30.000000 -1.625000 -v -5.200001 32.000000 -1.625000 -v -5.300001 30.500000 0.000000 -v -5.300001 30.000000 0.000000 -v -5.300001 30.000000 -3.000000 -v -5.300001 30.500000 -3.000000 -v -5.000000 30.000000 -4.000000 -v -5.000000 30.500000 -4.000000 -v -5.000000 30.500000 1.000000 -v -5.000000 30.000000 1.000000 +f 208/311/47 210/312/47 205/313/47 +f 194/314/48 195/315/48 196/316/48 +f 198/317/48 194/318/48 196/319/48 +f 197/320/48 191/321/48 198/317/48 +f 192/322/49 205/313/49 191/321/49 +f 197/320/48 193/323/48 192/324/48 +f 199/325/50 201/326/50 203/327/50 +f 195/315/50 201/326/50 199/325/50 +f 195/315/51 200/328/51 196/316/51 +f 196/319/52 202/329/52 198/317/52 +f 198/317/49 201/326/49 197/320/49 +f 200/330/52 204/331/52 202/329/52 +f 199/325/53 204/332/53 200/328/53 +f 204/333/54 201/326/54 202/329/54 +f 192/324/50 207/334/50 208/335/50 +f 191/336/52 206/337/52 194/318/52 +f 194/314/51 207/338/51 193/339/51 +f 212/340/51 215/341/51 211/342/51 +f 206/343/47 211/342/47 207/338/47 +f 206/337/47 210/312/47 212/344/47 +f 207/334/47 209/345/47 208/335/47 +f 213/346/48 218/347/48 219/348/48 +f 211/342/50 213/346/50 209/345/50 +f 210/312/52 216/349/52 212/344/52 +f 209/345/49 214/350/49 210/312/49 +f 220/351/52 222/352/52 217/353/52 +f 213/346/48 220/354/48 214/350/48 +f 214/350/48 217/353/48 216/349/48 +f 217/355/48 215/341/48 216/356/48 +f 223/357/47 228/358/47 224/359/47 +f 219/360/49 224/359/49 220/354/49 +f 218/347/50 223/361/50 219/348/50 +f 217/355/51 221/362/51 218/363/51 +f 225/364/50 231/365/50 227/366/50 +f 221/367/47 227/366/47 223/361/47 +f 222/368/47 225/364/47 221/362/47 +f 222/352/47 228/358/47 226/369/47 +f 230/370/48 231/365/48 229/371/48 +f 226/372/51 229/371/51 225/364/51 +f 226/369/52 232/373/52 230/374/52 +f 227/366/55 232/375/55 228/358/55 +f 235/376/49 234/377/49 233/378/49 +f 236/379/56 238/380/56 234/377/56 +f 233/378/57 239/381/57 235/376/57 +f 242/382/51 243/383/51 241/384/51 +f 245/385/49 247/386/49 246/387/49 +f 241/388/58 247/386/58 242/389/58 +f 242/389/48 248/390/48 244/391/48 +f 243/383/47 246/387/47 241/384/47 +f 249/392/52 252/393/52 250/394/52 +f 254/395/50 255/396/50 256/397/50 +f 249/398/47 256/397/47 251/399/47 +f 251/399/49 255/396/49 252/393/49 +f 252/393/48 253/400/48 250/401/48 +f 262/402/50 264/403/50 263/404/50 +f 259/405/49 262/402/49 257/406/49 +f 260/407/47 261/408/47 259/405/47 +f 257/406/48 263/409/48 258/410/48 +f 266/411/47 267/412/47 265/413/47 +f 268/414/50 269/415/50 267/412/50 +f 266/411/52 270/416/52 271/417/52 +f 266/411/51 272/418/51 268/414/51 +f 267/412/56 270/419/56 265/413/56 +f 208/311/47 209/345/47 210/312/47 +f 194/314/48 193/339/48 195/315/48 +f 198/317/48 191/336/48 194/318/48 +f 197/320/48 192/322/48 191/321/48 +f 192/322/49 208/311/49 205/313/49 +f 197/320/48 195/315/48 193/323/48 +f 195/315/50 197/320/50 201/326/50 +f 195/315/51 199/325/51 200/328/51 +f 196/319/52 200/330/52 202/329/52 +f 198/317/49 202/329/49 201/326/49 +f 199/325/53 203/420/53 204/332/53 +f 204/333/54 203/421/54 201/326/54 +f 192/324/50 193/323/50 207/334/50 +f 191/336/52 205/422/52 206/337/52 +f 194/314/51 206/343/51 207/338/51 +f 212/340/51 216/356/51 215/341/51 +f 206/343/47 212/340/47 211/342/47 +f 206/337/47 205/422/47 210/312/47 +f 207/334/47 211/342/47 209/345/47 +f 213/346/48 215/341/48 218/347/48 +f 211/342/50 215/341/50 213/346/50 +f 210/312/52 214/350/52 216/349/52 +f 209/345/49 213/346/49 214/350/49 +f 220/351/52 224/423/52 222/352/52 +f 213/346/48 219/360/48 220/354/48 +f 214/350/48 220/351/48 217/353/48 +f 217/355/48 218/363/48 215/341/48 +f 223/357/47 227/366/47 228/358/47 +f 219/360/49 223/357/49 224/359/49 +f 218/347/50 221/367/50 223/361/50 +f 217/355/51 222/368/51 221/362/51 +f 225/364/50 229/371/50 231/365/50 +f 221/367/47 225/364/47 227/366/47 +f 222/368/47 226/372/47 225/364/47 +f 222/352/47 224/423/47 228/358/47 +f 230/370/48 232/424/48 231/365/48 +f 226/372/51 230/425/51 229/371/51 +f 226/369/52 228/358/52 232/373/52 +f 227/366/55 231/426/55 232/375/55 +f 235/376/49 236/379/49 234/377/49 +f 236/379/56 240/427/56 238/380/56 +f 233/378/57 237/428/57 239/381/57 +f 242/382/51 244/429/51 243/383/51 +f 245/385/49 248/390/49 247/386/49 +f 241/388/58 246/430/58 247/386/58 +f 242/389/48 247/386/48 248/390/48 +f 243/383/47 245/385/47 246/387/47 +f 249/392/52 251/399/52 252/393/52 +f 254/395/50 253/431/50 255/396/50 +f 249/398/47 254/432/47 256/397/47 +f 251/399/49 256/397/49 255/396/49 +f 252/393/48 255/396/48 253/400/48 +f 262/402/50 261/408/50 264/403/50 +f 259/405/49 261/408/49 262/402/49 +f 260/407/47 264/433/47 261/408/47 +f 257/406/48 262/402/48 263/409/48 +f 266/411/47 268/414/47 267/412/47 +f 268/414/50 272/434/50 269/415/50 +f 266/411/52 265/413/52 270/416/52 +f 266/411/51 271/435/51 272/418/51 +f 267/412/56 269/436/56 270/419/56 +o Helmet +v 5.249990 -8.200001 -4.200000 +v 5.249990 -8.200001 4.200000 +v -4.200010 -8.200001 5.250000 +v 4.199989 -8.200001 5.250000 +v -4.200010 -8.200001 -5.250000 +v 4.199989 -8.200001 -5.250000 +v -5.250010 -8.200001 4.200000 +v -5.250010 -8.200001 -4.200000 +v 5.249990 -6.100002 -4.200000 +v 5.249990 -6.100002 4.200000 +v -4.200010 -6.099998 5.250000 +v 4.199990 -6.100002 5.250000 +v -4.200010 -6.099998 -5.250000 +v 4.199990 -6.100002 -5.250000 +v -5.250010 -6.099998 4.200000 +v -5.250010 -6.099998 -4.200000 +v 7.349990 -5.050001 -4.200000 +v 7.349990 -5.050001 4.200000 +v -4.200009 -5.049997 7.349999 +v 4.199990 -5.050001 7.349999 +v -4.200009 -5.049997 -7.349999 +v 4.199990 -5.050001 -7.349999 +v -7.350009 -5.049997 4.200000 +v -7.350009 -5.049997 -4.200000 +v -3.150011 -10.299999 3.150000 +v -3.150011 -10.299999 -3.150000 +v 3.149989 -10.299999 -3.150000 +v 3.149989 -10.299999 3.150000 +v 4.724989 -8.200001 -3.675000 +v 4.724989 -8.200001 3.675000 +v -3.675010 -8.200001 4.725000 +v 3.674989 -8.200001 4.725000 +v -3.675010 -8.200001 -4.725000 +v 3.674989 -8.200001 -4.725000 +v -4.725010 -8.200001 3.675000 +v -4.725010 -8.200001 -3.675000 +v 4.724992 0.199999 -3.675000 +v 4.724992 0.199999 3.675000 +v -3.675008 0.200003 4.725000 +v 3.674992 0.199999 4.725000 +v -3.675008 0.200003 -4.725000 +v 3.674992 0.199999 -4.725000 +v -4.725008 0.200003 3.675000 +v -4.725008 0.200003 -3.675000 +v -3.675007 1.250002 3.675000 +v -3.675007 1.250002 -3.675000 +v 3.674992 1.249998 -3.675000 +v 3.674992 1.249998 3.675000 +v 1.574991 -2.950001 -4.725000 +v -1.575009 -2.950001 -4.725000 +v 1.574992 0.200001 -4.725000 +v -1.575008 0.200001 -4.725000 +v 1.574992 0.200001 -5.775000 +v 1.574991 -1.900000 -5.775000 +v -1.575008 -1.900000 -5.775000 +v -1.575008 0.200001 -5.775000 +v -2.100009 -5.575001 -4.725000 +v -0.736019 -4.787500 -4.725000 +v -0.736019 -3.212500 -4.725000 +v -2.100008 -2.424999 -4.725000 +v -3.463999 -3.212498 -4.725000 +v -3.463999 -4.787498 -4.725000 +v 2.099990 -5.575001 -4.725000 +v 3.463980 -4.787502 -4.725000 +v 3.463981 -3.212502 -4.725000 +v 2.099991 -2.424999 -4.725000 +v 0.736001 -3.212500 -4.725000 +v 0.736001 -4.787500 -4.725000 +v 2.099990 -5.575001 -5.250000 +v 3.463980 -4.787502 -5.250000 +v 3.463981 -3.212502 -5.250000 +v 2.099991 -2.424999 -5.250000 +v 0.736001 -3.212500 -5.250000 +v 0.736001 -4.787500 -5.250000 +v -2.100009 -5.575001 -5.250000 +v -0.736019 -4.787500 -5.250000 +v -0.736019 -3.212500 -5.250000 +v -2.100008 -2.424999 -5.250000 +v -3.463999 -3.212498 -5.250000 +v -3.463999 -4.787498 -5.250000 +v 0.524990 -6.100000 -4.200000 +v 1.049990 -6.100000 -4.725000 +v 1.049989 -10.299999 -4.725000 +v 0.524989 -10.299999 -4.200000 +v 1.049990 -6.100000 -5.775000 +v 0.524990 -6.100000 -6.300000 +v 0.524989 -10.299999 -6.300000 +v 1.049989 -10.299999 -5.775000 +v -1.050010 -6.100000 -4.725000 +v -0.525010 -6.100000 -4.200000 +v -0.525011 -10.299999 -4.200000 +v -1.050011 -10.299999 -4.725000 +v -0.525010 -6.100000 -6.300000 +v -1.050010 -6.100000 -5.775000 +v -1.050011 -10.299999 -5.775000 +v -0.525011 -10.299999 -6.300000 +v 1.049989 -8.200001 -6.300000 +v -1.050010 -8.200001 -6.300000 +v 1.049989 -10.299999 -6.300000 +v -1.050011 -10.299999 -6.300000 +v 2.099988 -11.349998 -7.349999 +v 2.099990 -7.150000 -7.349999 +v -2.100010 -7.150000 -7.349999 +v -2.100011 -11.349998 -7.349999 +v -4.725009 -4.524998 2.100000 +v -4.725008 -1.374998 2.100000 +v -4.725009 -4.524998 -2.100000 +v -4.725008 -1.374998 -2.100000 +v -5.775009 -4.524998 -2.100000 +v -5.775009 -4.524998 2.100000 +v -5.775008 -1.374998 2.100000 +v -5.775008 -1.374998 -2.100000 +v -5.775009 -3.999998 1.575000 +v -5.775008 -1.899998 1.575000 +v -5.775009 -3.999998 -1.575000 +v -5.775008 -1.899998 -1.575000 +v -6.300009 -3.999998 -1.575000 +v -6.300009 -3.999998 1.575000 +v -6.300008 -1.899998 1.575000 +v -6.300008 -1.899998 -1.575000 +v -7.087509 -5.049997 0.262500 +v -7.612509 -5.049997 0.262500 +v -7.087509 -5.049997 -0.262500 +v -7.612509 -5.049997 -0.262500 +v -7.087511 -11.349995 -0.262500 +v -7.087511 -11.349995 0.262500 +v -7.612511 -11.349995 0.262500 +v -7.612511 -11.349995 -0.262500 +v -5.512508 -2.949999 -0.262500 +v -5.512508 -2.949999 0.262500 +v -6.037508 -2.949999 0.262500 +v -6.037508 -2.949999 -0.262500 +v 1.574993 1.377384 -5.467462 +v 1.049993 1.748615 -5.096232 +v -1.050007 1.748615 -5.096232 +v -1.575007 1.377384 -5.467462 +v 1.049992 -0.478769 -7.323617 +v 1.574992 -0.107536 -6.952385 +v -1.575008 -0.107536 -6.952385 +v -1.050008 -0.478769 -7.323617 +v 1.574993 1.377388 -8.437310 +v 1.049992 1.006157 -8.808541 +v 1.049993 3.233541 -6.581155 +v 1.574993 2.862312 -6.952386 +v -1.575007 2.862312 -6.952386 +v -1.050007 3.233541 -6.581155 +v -1.050007 1.006157 -8.808541 +v -1.575007 1.377388 -8.437310 +v 1.049992 -0.478769 -4.353768 +v 0.524992 -0.107536 -3.982538 +v -0.525008 -0.107536 -3.982538 +v -1.050008 -0.478769 -4.353768 +v 0.524992 -1.592463 -5.467462 +v 1.049992 -1.221231 -5.096231 +v -1.050008 -1.221231 -5.096231 +v -0.525008 -1.592463 -5.467462 +v 1.049992 0.263695 -6.581154 +v 0.524992 -0.107536 -6.952386 +v 0.524993 1.377384 -5.467462 +v 1.049992 1.006153 -5.838693 +v -1.050007 1.006153 -5.838693 +v -0.525007 1.377384 -5.467462 +v -0.525008 -0.107536 -6.952386 +v -1.050008 0.263695 -6.581154 +v 5.774991 -4.525002 -2.100000 +v 5.774991 -4.525002 2.100000 +v 5.774992 -1.375002 2.100000 +v 5.774992 -1.375002 -2.100000 +v 4.724991 -4.525002 -2.100000 +v 4.724991 -4.525002 2.100000 +v 4.724992 -1.375002 2.100000 +v 4.724992 -1.375002 -2.100000 +v 6.824991 -1.900002 3.150000 +v 6.824991 -4.000002 5.250000 +v 6.824991 -1.900002 1.050000 +v 6.824991 -4.000002 1.050000 +v 5.774991 -1.900002 0.000000 +v 5.774991 -4.000002 0.000000 +v 5.354990 -6.100002 -1.443750 +v 5.354990 -8.200001 -1.443750 +v 5.354990 -6.100002 -2.756250 +v 5.354990 -8.200001 -2.756250 +v 5.459991 -6.100002 -0.393750 +v 5.459990 -8.200001 -0.393750 +v 5.459991 -6.100002 -1.706250 +v 5.459990 -8.200001 -1.706250 +v 5.564991 -6.625002 0.000000 +v 5.564991 -6.100002 0.000000 +v 5.564991 -6.100002 -3.150000 +v 5.564991 -6.625002 -3.150000 +v 5.249990 -6.100002 -4.200000 +v 5.249990 -6.625002 -4.200000 +v 5.249990 -6.625002 1.050000 +v 5.249990 -6.100002 1.050000 +vt 0.280000 0.093023 +vt 0.600000 0.046512 +vt 0.600000 0.093023 +vt 0.280000 0.093023 +vt 0.600000 0.046512 +vt 0.600000 0.093023 +vt 0.280000 0.093023 +vt 0.600000 0.046512 +vt 0.600000 0.093023 +vt 0.280000 0.093023 +vt 0.600000 0.046512 +vt 0.600000 0.093023 +vt 0.720000 0.046512 +vt 0.640000 0.093023 +vt 0.640000 0.046512 +vt 0.640000 0.093023 +vt 0.720000 0.046512 +vt 0.720000 0.093023 +vt 0.720000 0.046512 +vt 0.640000 0.093023 +vt 0.640000 0.046512 +vt 0.640000 0.093023 +vt 0.720000 0.046512 +vt 0.720000 0.093023 +vt 0.600000 0.000000 +vt 0.760000 0.000000 +vt 0.760000 0.000000 +vt 0.280000 0.000000 +vt 0.600000 0.000000 vt 0.280000 0.046512 -vt 0.600000 0.093023 -vt 0.280000 0.093023 -vt 0.280000 0.093023 -vt 0.600000 0.046512 -vt 0.600000 0.093023 -vt 0.280000 0.093023 -vt 0.600000 0.046512 -vt 0.600000 0.093023 -vt 0.280000 0.093023 -vt 0.600000 0.046512 -vt 0.600000 0.093023 -vt 0.720000 0.046512 -vt 0.640000 0.093023 -vt 0.640000 0.046512 -vt 0.640000 0.093023 -vt 0.720000 0.046512 -vt 0.720000 0.093023 -vt 0.720000 0.046512 -vt 0.640000 0.093023 -vt 0.640000 0.046512 -vt 0.640000 0.093023 -vt 0.720000 0.046512 -vt 0.720000 0.093023 +vt 0.600000 -0.000000 vt 0.640000 0.046512 vt 0.760000 0.000000 -vt 0.600000 0.000000 vt 0.280000 0.046512 -vt 0.600000 0.000000 -vt 0.280000 0.046512 -vt 0.600000 -0.000000 -vt 0.640000 0.046512 -vt 0.280000 0.046512 -vt 0.600000 -0.000000 vt 0.760000 0.000000 vt 0.280000 -0.000000 -vt 0.600000 0.046512 +vt 0.280000 0.046512 vt 0.560000 0.162791 vt 0.320000 0.302326 vt 0.320000 0.162791 @@ -1431,38 +1488,37 @@ vt 0.280000 0.186047 vt 0.300000 0.162791 vt 0.320000 0.186047 vt 0.300000 0.162791 -vt 0.040000 0.441860 -vt 0.160000 0.395349 vt 0.160000 0.441860 -vt 0.160000 0.372093 vt 0.040000 0.395349 +vt 0.160000 0.395349 +vt 0.160000 0.372093 vt 0.040000 0.372093 -vt 0.040000 0.465116 vt 0.160000 0.465116 +vt 0.040000 0.441860 vt -0.000000 0.395349 vt -0.000000 0.465116 vt 0.200000 0.395349 vt 0.280000 0.372093 vt 0.320000 0.418605 vt 0.280000 0.418605 -vt 0.400000 0.372093 -vt 0.440000 0.418605 vt 0.400000 0.418605 +vt 0.440000 0.372093 +vt 0.440000 0.418605 vt 0.220000 0.372093 vt 0.260000 0.418605 vt 0.220000 0.418605 vt 0.660000 0.465116 vt 0.740000 0.418605 vt 0.740000 0.465116 -vt 0.540000 0.418605 -vt 0.440000 0.406977 +vt 0.440000 0.360465 vt 0.460000 0.348837 +vt 0.540000 0.418605 vt 0.360000 0.465116 vt 0.440000 0.418605 vt 0.440000 0.465116 -vt 0.460000 0.465116 vt 0.540000 0.465116 -vt 0.440000 0.523256 +vt 0.460000 0.418605 +vt 0.460000 0.465116 vt 0.560000 0.476744 vt 0.800000 0.406977 vt 0.740000 0.395349 @@ -1477,9 +1533,6 @@ vt 0.860000 0.406977 vt 0.620000 0.406977 vt 0.560000 0.395349 vt 0.740000 0.406977 -vt 0.770035 0.472036 -vt 0.770035 0.411685 -vt 0.859930 0.441860 vt 0.620000 0.406977 vt 0.560000 0.395349 vt 0.620000 0.395349 @@ -1493,17 +1546,14 @@ vt 0.860000 0.395349 vt 0.920000 0.395349 vt 0.680000 0.406977 vt 0.860000 0.406977 -vt 0.770035 0.472036 -vt 0.770035 0.411685 -vt 0.859930 0.441860 -vt 1.000000 0.139535 -vt 0.960000 0.046512 vt 1.000000 0.046512 +vt 0.960000 0.139535 +vt 0.960000 0.046512 vt 0.820000 0.139535 vt 0.780000 0.046512 vt 0.820000 0.046512 -vt 0.900000 0.151163 vt 0.880000 0.186047 +vt 0.840000 0.186047 vt 0.820000 0.174419 vt 0.940000 0.139535 vt 0.900000 0.046512 @@ -1511,14 +1561,12 @@ vt 0.940000 0.046512 vt 0.880000 0.139535 vt 0.840000 0.046512 vt 0.880000 0.046512 -vt 0.960000 0.139535 vt 0.900000 0.139535 vt 0.840000 0.139535 -vt 0.760000 0.046512 -vt 0.780000 0.139535 vt 0.760000 0.139535 -vt 0.820000 0.034884 +vt 0.780000 0.139535 vt 0.840000 0.000000 +vt 0.880000 0.000000 vt 0.900000 0.011628 vt 0.800000 0.279070 vt 0.880000 0.232558 @@ -1529,20 +1577,12 @@ vt 0.920000 0.302326 vt 0.880000 0.279070 vt 0.760000 0.302326 vt 0.800000 0.279070 +vt 0.800000 0.279070 +vt 0.920000 0.302326 +vt 0.760000 0.302326 vt 0.880000 0.279070 vt 0.760000 0.302326 vt 0.800000 0.279070 -vt 0.880000 0.279070 -vt 0.760000 0.302326 -vt 0.800000 0.279070 -vt 0.320000 0.372093 -vt 0.420000 0.360465 -vt 0.440000 0.372093 -vt 0.340000 0.313953 -vt 0.420000 0.313953 -vt 0.440000 0.302326 -vt 0.320000 0.302326 -vt 0.340000 0.360465 vt 0.600000 0.186047 vt 0.760000 0.255814 vt 0.600000 0.255814 @@ -1553,7 +1593,6 @@ vt 0.760000 0.279070 vt 0.800000 0.255814 vt 0.760000 0.186047 vt 0.800000 0.186047 -vt 0.560000 0.186047 vt 0.560000 0.255814 vt 0.580000 0.290698 vt 0.700000 0.337209 @@ -1561,7 +1600,6 @@ vt 0.580000 0.337209 vt 0.720000 0.337209 vt 0.700000 0.290698 vt 0.720000 0.290698 -vt 0.560000 0.290698 vt 0.560000 0.337209 vt 0.700000 0.279070 vt 0.580000 0.279070 @@ -1582,26 +1620,26 @@ vt 0.920000 0.290698 vt 1.000000 0.232558 vt 0.980000 0.232558 vt 0.940000 0.232558 -vt 0.560000 0.465116 vt 0.560000 0.418605 vt 0.640000 0.418605 vt 0.640000 0.465116 -vt 0.360000 0.418605 -vt 0.340000 0.465116 vt 0.340000 0.418605 +vt 0.360000 0.418605 vt 0.260000 0.372093 vt 0.200000 0.418605 vt 0.200000 0.372093 -vt 0.380000 0.372093 vt 0.380000 0.418605 +vt 0.400000 0.372093 vt 0.340000 0.418605 vt 0.320000 0.372093 vt 0.340000 0.372093 +vt 0.380000 0.372093 vt 0.600000 0.255814 vt 0.760000 0.186047 vt 0.760000 0.255814 vt 0.560000 0.186047 vt 0.600000 0.186047 +vt 0.800000 0.186047 vt 0.800000 0.255814 vt 0.760000 0.162791 vt 0.600000 0.279070 @@ -1621,10 +1659,10 @@ vt 0.160000 0.465116 vt 0.040000 0.476744 vt -0.000000 0.465116 vt 0.200000 0.476744 -vt 0.760000 0.000000 -vt 0.280000 0.000000 +vt 0.280000 0.046512 +vt 0.640000 0.046512 +vt 0.600000 0.000000 vt 0.280000 -0.000000 -vt 0.760000 0.000000 vt 0.280000 -0.000000 vt 0.560000 0.302326 vt 0.320000 0.162791 @@ -1634,41 +1672,40 @@ vt 0.280000 -0.000000 vt 0.000000 0.162791 vt 0.000000 0.162791 vt 0.280000 0.162791 +vt 0.040000 0.465116 vt 0.200000 0.465116 -vt 0.440000 0.372093 vt 0.660000 0.418605 vt 0.540000 0.348837 vt 0.560000 0.360465 vt 0.560000 0.406977 -vt 0.460000 0.418605 -vt 0.440000 0.360465 +vt 0.440000 0.406977 vt 0.560000 0.523256 vt 0.540000 0.534884 vt 0.460000 0.534884 +vt 0.440000 0.523256 vt 0.440000 0.476744 vt 0.560000 0.406977 -vt 0.829965 0.472036 -vt 0.740070 0.441860 -vt 0.829965 0.411685 vt 0.560000 0.406977 -vt 0.829965 0.472036 -vt 0.740070 0.441860 -vt 0.829965 0.411685 +vt 1.000000 0.139535 vt 0.820000 0.151163 +vt 0.900000 0.151163 vt 0.900000 0.174419 -vt 0.840000 0.186047 +vt 0.760000 0.046512 vt 0.900000 0.034884 +vt 0.820000 0.034884 vt 0.820000 0.011628 -vt 0.880000 0.000000 vt 0.800000 0.232558 vt 0.760000 0.395349 vt 0.920000 0.302326 +vt 0.880000 0.279070 vt 0.920000 0.302326 -vt 0.920000 0.302326 +vt 0.560000 0.186047 +vt 0.560000 0.290698 vt 1.000000 0.430233 vt 0.920000 0.232558 +vt 0.560000 0.465116 +vt 0.340000 0.465116 vt 0.560000 0.255814 -vt 0.800000 0.186047 vt 0.600000 0.162791 vt 0.760000 0.279070 vt 1.000000 0.232558 @@ -1679,661 +1716,641 @@ vt -0.000000 0.476744 vt 0.200000 0.465116 vn 0.0000 0.0000 1.0000 vn 0.0000 0.0000 -1.0000 -vn -1.0000 0.0000 0.0000 vn 1.0000 0.0000 0.0000 -vn -0.7071 0.0000 -0.7071 -vn -0.7071 0.0000 0.7071 -vn 0.7071 0.0000 0.7071 +vn -1.0000 0.0000 0.0000 vn 0.7071 0.0000 -0.7071 -vn 0.4082 0.8165 -0.4082 -vn 0.4082 0.8165 0.4082 -vn 0.0000 0.8944 -0.4472 -vn -0.4472 0.8944 0.0000 -vn -0.4082 0.8165 0.4082 -vn 0.4472 0.8944 0.0000 -vn -0.4082 0.8165 -0.4082 -vn 0.0000 0.8944 0.4472 -vn 0.0000 1.0000 0.0000 -vn 0.0000 0.7071 -0.7071 -vn -0.7071 0.7071 0.0000 -vn 0.0000 0.7071 0.7071 -vn 0.7071 0.7071 0.0000 -vn 0.4851 0.7276 0.4851 -vn 0.4851 0.7276 -0.4851 -vn -0.4851 0.7276 -0.4851 -vn -0.4851 0.7276 0.4851 +vn 0.7071 -0.0000 0.7071 +vn -0.7071 0.0000 0.7071 +vn -0.7071 0.0000 -0.7071 +vn -0.4082 -0.8165 -0.4082 +vn -0.4082 -0.8165 0.4082 +vn -0.0000 -0.8944 -0.4472 +vn 0.4472 -0.8944 0.0000 +vn 0.4082 -0.8165 0.4082 +vn -0.4472 -0.8944 0.0000 +vn 0.4082 -0.8165 -0.4082 +vn -0.0000 -0.8944 0.4472 vn 0.0000 -1.0000 0.0000 vn 0.0000 -0.7071 -0.7071 vn 0.7071 -0.7071 0.0000 -vn 0.5774 -0.5774 -0.5774 -vn -0.7071 -0.7071 0.0000 -vn -0.5774 -0.5774 -0.5774 vn 0.0000 -0.7071 0.7071 -vn -0.5774 -0.5774 0.5774 -vn 0.5774 -0.5774 0.5774 -vn 0.5000 0.8660 0.0000 -vn 0.5000 -0.8660 0.0000 +vn -0.7071 -0.7071 0.0000 +vn -0.4851 -0.7276 0.4851 +vn -0.4851 -0.7276 -0.4851 +vn 0.4851 -0.7276 -0.4851 +vn 0.4851 -0.7276 0.4851 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.7071 -0.7071 +vn -0.7071 0.7071 0.0000 +vn -0.5774 0.5774 -0.5774 +vn 0.7071 0.7071 0.0000 +vn 0.5773 0.5774 -0.5774 +vn 0.0000 0.7071 0.7071 +vn 0.5773 0.5774 0.5774 +vn -0.5774 0.5774 0.5774 vn -0.5000 -0.8660 0.0000 vn -0.5000 0.8660 0.0000 -vn 0.8000 -0.6000 0.0000 +vn 0.5000 0.8660 0.0000 +vn 0.5000 -0.8660 0.0000 vn -0.8000 0.6000 0.0000 -vn 0.7071 0.5000 -0.5000 -vn -0.7071 0.5000 -0.5000 -vn -0.7071 -0.5000 0.5000 -vn 0.7071 -0.5000 0.5000 -vn -0.9578 0.0000 -0.2873 -vn -0.9578 0.0000 0.2874 -vn -0.9578 0.0000 -0.2874 -vn -0.9578 0.0000 0.2873 +vn 0.8000 -0.6000 0.0000 +vn -0.7071 -0.5000 -0.5000 +vn 0.7071 -0.5000 -0.5000 +vn 0.7071 0.5000 0.5000 +vn -0.7071 0.5000 0.5000 +vn 0.9578 0.0000 -0.2873 +vn 0.9578 0.0000 0.2873 s off -f 264/417/54 255/418/54 256/419/54 -f 257/420/55 266/421/55 258/422/55 -f 253/423/56 262/424/56 254/425/56 -f 259/426/57 268/427/57 260/428/57 -f 261/429/58 258/430/58 266/431/58 -f 254/432/59 264/433/59 256/434/59 -f 267/435/60 255/436/60 263/437/60 -f 260/438/61 265/439/61 257/440/61 -f 268/441/62 273/442/62 265/439/62 -f 271/443/63 267/435/63 263/437/63 -f 265/444/64 274/445/64 266/421/64 -f 261/446/65 270/447/65 262/424/65 -f 270/447/66 264/433/66 262/448/66 -f 267/449/67 276/450/67 268/427/67 -f 266/431/68 269/451/68 261/429/68 -f 272/452/69 263/453/69 264/417/69 -f 279/454/70 277/455/70 278/456/70 -f 279/454/71 257/420/71 258/422/71 -f 280/457/72 253/423/72 254/425/72 -f 255/418/73 280/458/73 256/419/73 -f 278/459/74 259/426/74 260/428/74 -f 259/460/75 277/461/75 255/436/75 -f 260/438/76 257/440/76 278/462/76 -f 253/463/77 279/464/77 258/430/77 -f 254/432/78 256/434/78 280/465/78 -f 286/466/58 289/467/58 281/468/58 -f 285/469/55 294/470/55 286/466/55 -f 281/471/56 290/472/56 282/473/56 -f 296/474/61 285/475/61 288/476/61 -f 290/472/59 284/477/59 282/473/59 -f 287/478/57 296/474/57 288/476/57 -f 292/479/54 283/480/54 284/481/54 -f 283/480/60 295/482/60 287/483/60 -f 297/484/79 299/485/79 298/486/79 -f 293/487/80 299/485/80 294/470/80 -f 295/488/81 298/489/81 296/474/81 -f 296/474/82 298/490/82 293/491/82 -f 289/492/83 300/493/83 290/472/83 -f 289/467/84 294/470/84 299/494/84 -f 300/495/85 291/496/85 292/479/85 -f 290/472/86 300/497/86 292/498/86 -f 295/482/87 291/496/87 297/499/87 -f 307/500/55 305/501/55 306/502/55 -f 303/503/79 308/504/79 304/505/79 -f 302/506/71 306/502/71 301/507/71 -f 304/508/57 307/500/57 302/509/57 -f 303/510/56 306/502/56 305/501/56 -f 423/511/71 413/512/71 416/513/71 -f 419/514/85 411/515/85 410/516/85 -f 421/517/57 415/518/57 412/519/57 -f 394/520/85 406/521/85 395/522/85 -f 402/523/80 408/524/80 406/525/80 -f 396/526/57 408/527/57 399/528/57 -f 400/529/71 402/523/71 397/530/71 -f 396/531/73 400/529/73 398/532/73 -f 326/533/88 315/534/88 320/535/88 -f 324/536/89 319/537/89 318/538/89 -f 322/539/56 317/540/56 316/541/56 -f 325/542/57 320/535/57 319/537/57 -f 323/543/90 318/544/90 317/540/90 -f 321/545/91 316/541/91 315/534/91 -f 321/546/55 325/547/55 323/548/55 -f 329/549/90 312/550/90 311/551/90 -f 327/552/91 310/553/91 309/554/91 -f 332/555/88 309/554/88 314/556/88 -f 330/557/89 313/558/89 312/559/89 -f 328/560/56 311/551/56 310/553/56 -f 331/561/57 314/556/57 313/558/57 -f 327/562/55 331/563/55 329/564/55 -f 343/565/54 333/566/54 342/567/54 -f 347/568/57 341/569/57 346/570/57 -f 340/571/70 336/572/70 344/573/70 -f 335/574/56 337/575/56 334/576/56 -f 339/577/55 345/578/55 338/579/55 -f 336/580/59 334/576/59 333/566/59 -f 338/579/58 340/581/58 339/577/58 -f 346/570/61 348/582/61 347/568/61 -f 342/583/60 344/584/60 343/585/60 -f 346/586/79 342/587/79 334/588/79 -f 350/589/54 351/590/54 349/591/54 -f 353/592/55 355/593/55 354/594/55 -f 350/595/60 356/596/60 352/597/60 -f 351/598/59 354/599/59 349/600/59 -f 352/601/73 353/602/73 351/603/73 -f 350/589/85 354/594/85 355/593/85 -f 360/604/71 361/605/71 357/606/71 -f 361/605/55 363/607/55 362/608/55 -f 357/606/58 362/608/58 358/609/58 -f 358/609/80 363/607/80 359/610/80 -f 359/610/61 364/611/61 360/604/61 -f 371/612/57 369/613/57 370/614/57 -f 368/615/79 371/612/79 366/616/79 -f 365/617/70 369/613/70 367/618/70 -f 367/619/55 372/620/55 368/621/55 -f 366/622/54 370/614/54 365/623/54 -f 379/624/57 377/625/57 378/626/57 -f 375/627/55 380/628/55 376/629/55 -f 374/630/54 378/626/54 373/631/54 -f 376/632/79 379/624/79 374/633/79 -f 373/634/70 377/625/70 375/635/70 -f 382/636/92 392/637/92 384/638/92 -f 387/639/70 385/640/70 386/641/70 -f 384/638/57 387/639/57 382/636/57 -f 381/642/56 385/643/56 383/644/56 -f 383/644/55 388/645/55 384/638/55 -f 382/636/54 386/646/54 381/647/54 -f 383/644/93 390/648/93 381/642/93 -f 383/644/55 392/637/55 389/649/55 -f 381/647/54 391/650/54 382/636/54 -f 408/527/94 400/529/94 399/528/94 -f 398/651/95 402/523/95 401/652/95 -f 404/653/96 394/520/96 393/654/96 -f 405/655/97 395/656/97 406/657/97 -f 393/654/56 401/652/56 404/653/56 -f 424/658/94 416/513/94 415/518/94 -f 421/517/97 411/659/97 422/660/97 -f 420/661/96 410/516/96 409/662/96 -f 414/663/95 418/664/95 417/665/95 -f 414/663/56 420/661/56 409/662/56 -f 425/666/56 427/667/56 426/668/56 -f 425/666/55 432/669/55 428/670/55 -f 427/667/54 430/671/54 426/668/54 -f 428/670/79 431/672/79 427/667/79 -f 426/668/70 429/673/70 425/666/70 -f 433/674/56 436/675/56 435/676/56 -f 436/675/58 437/677/58 435/676/58 -f 440/678/56 441/679/56 439/680/56 -f 444/681/56 445/682/56 443/683/56 -f 447/684/56 449/685/56 448/686/56 -f 450/687/98 451/688/98 449/685/98 -f 448/686/99 453/689/99 447/684/99 -f 264/417/54 263/453/54 255/418/54 -f 257/420/55 265/444/55 266/421/55 -f 253/423/56 261/446/56 262/424/56 -f 259/426/57 267/449/57 268/427/57 -f 261/429/58 253/463/58 258/430/58 -f 254/432/59 262/448/59 264/433/59 -f 267/435/60 259/460/60 255/436/60 -f 260/438/61 268/441/61 265/439/61 -f 268/441/62 276/450/62 273/442/62 -f 271/443/63 275/690/63 267/435/63 -f 265/444/64 273/691/64 274/445/64 -f 261/446/65 269/692/65 270/447/65 -f 270/447/66 272/693/66 264/433/66 -f 267/449/67 275/694/67 276/450/67 -f 266/431/68 274/445/68 269/451/68 -f 272/452/69 271/443/69 263/453/69 -f 279/454/70 280/695/70 277/455/70 -f 279/454/71 278/456/71 257/420/71 -f 280/457/72 279/696/72 253/423/72 -f 255/418/73 277/697/73 280/458/73 -f 278/459/74 277/698/74 259/426/74 -f 286/466/58 294/470/58 289/467/58 -f 285/469/55 293/487/55 294/470/55 -f 281/471/56 289/492/56 290/472/56 -f 296/474/61 293/491/61 285/475/61 -f 290/472/59 292/498/59 284/477/59 -f 287/478/57 295/488/57 296/474/57 -f 292/479/54 291/496/54 283/480/54 -f 283/480/60 291/496/60 295/482/60 -f 297/484/79 300/699/79 299/485/79 -f 293/487/80 298/486/80 299/485/80 -f 295/488/81 297/700/81 298/489/81 -f 289/492/83 299/701/83 300/493/83 -f 300/495/85 297/702/85 291/496/85 -f 307/500/55 308/504/55 305/501/55 -f 303/503/79 305/501/79 308/504/79 -f 302/506/71 307/500/71 306/502/71 -f 304/508/57 308/504/57 307/500/57 -f 303/510/56 301/703/56 306/502/56 -f 423/511/71 418/664/71 413/512/71 -f 419/514/85 422/704/85 411/515/85 -f 421/517/57 424/658/57 415/518/57 -f 394/520/85 403/705/85 406/521/85 -f 406/525/80 403/706/80 404/707/80 -f 404/707/80 401/708/80 406/525/80 -f 401/708/80 402/523/80 406/525/80 -f 402/523/80 407/709/80 408/524/80 -f 408/524/80 405/710/80 406/525/80 -f 396/526/57 405/655/57 408/527/57 -f 400/529/71 407/709/71 402/523/71 -f 398/532/73 393/711/73 396/531/73 -f 393/711/73 394/712/73 396/531/73 -f 394/712/73 395/713/73 396/531/73 -f 396/531/73 399/714/73 400/529/73 -f 400/529/73 397/530/73 398/532/73 -f 326/533/88 321/545/88 315/534/88 -f 324/536/89 325/542/89 319/537/89 -f 322/539/56 323/543/56 317/540/56 -f 325/542/57 326/533/57 320/535/57 -f 323/543/90 324/715/90 318/544/90 -f 321/545/91 322/539/91 316/541/91 -f 323/548/55 322/716/55 321/546/55 -f 321/546/55 326/717/55 325/547/55 -f 325/547/55 324/718/55 323/548/55 -f 329/549/90 330/719/90 312/550/90 -f 327/552/91 328/560/91 310/553/91 -f 332/555/88 327/552/88 309/554/88 -f 330/557/89 331/561/89 313/558/89 -f 328/560/56 329/549/56 311/551/56 -f 331/561/57 332/555/57 314/556/57 -f 329/564/55 328/720/55 327/562/55 -f 327/562/55 332/721/55 331/563/55 -f 331/563/55 330/722/55 329/564/55 -f 343/565/54 336/580/54 333/566/54 -f 347/568/57 344/584/57 341/569/57 -f 344/573/70 347/723/70 348/582/70 -f 348/582/70 339/577/70 340/571/70 -f 340/571/70 335/724/70 336/572/70 -f 336/572/70 343/725/70 344/573/70 -f 344/573/70 348/582/70 340/571/70 -f 335/574/56 340/581/56 337/575/56 -f 339/577/55 348/582/55 345/578/55 -f 336/580/59 335/574/59 334/576/59 -f 338/579/58 337/575/58 340/581/58 -f 346/570/61 345/578/61 348/582/61 -f 342/583/60 341/569/60 344/584/60 -f 334/588/79 337/726/79 338/579/79 -f 338/579/79 345/578/79 346/586/79 -f 346/586/79 341/727/79 342/587/79 -f 342/587/79 333/728/79 334/588/79 -f 334/588/79 338/579/79 346/586/79 -f 350/589/54 352/729/54 351/590/54 -f 353/592/55 356/730/55 355/593/55 -f 350/595/60 355/731/60 356/596/60 -f 351/598/59 353/732/59 354/599/59 -f 352/601/73 356/733/73 353/602/73 -f 350/589/85 349/591/85 354/594/85 -f 360/604/71 364/611/71 361/605/71 -f 361/605/55 364/611/55 363/607/55 -f 357/606/58 361/605/58 362/608/58 -f 358/609/80 362/608/80 363/607/80 -f 359/610/61 363/607/61 364/611/61 -f 371/612/57 372/620/57 369/613/57 -f 368/615/79 372/620/79 371/612/79 -f 365/617/70 370/614/70 369/613/70 -f 367/619/55 369/613/55 372/620/55 -f 366/622/54 371/612/54 370/614/54 -f 379/624/57 380/628/57 377/625/57 -f 375/627/55 377/625/55 380/628/55 -f 374/630/54 379/624/54 378/626/54 -f 376/632/79 380/628/79 379/624/79 -f 373/634/70 378/626/70 377/625/70 -f 382/636/92 391/650/92 392/637/92 -f 387/639/70 388/645/70 385/640/70 -f 384/638/57 388/645/57 387/639/57 -f 381/642/56 386/734/56 385/643/56 -f 383/644/55 385/643/55 388/645/55 -f 382/636/54 387/639/54 386/646/54 -f 383/644/93 389/649/93 390/648/93 -f 383/644/55 384/638/55 392/637/55 -f 381/647/54 390/735/54 391/650/54 -f 408/527/94 407/709/94 400/529/94 -f 398/651/95 397/530/95 402/523/95 -f 404/653/96 403/705/96 394/520/96 -f 405/655/97 396/526/97 395/656/97 -f 393/654/56 398/651/56 401/652/56 -f 424/658/94 423/511/94 416/513/94 -f 421/517/97 412/519/97 411/659/97 -f 420/661/96 419/514/96 410/516/96 -f 414/663/95 413/512/95 418/664/95 -f 414/663/56 417/665/56 420/661/56 -f 425/666/56 428/670/56 427/667/56 -f 425/666/55 429/736/55 432/669/55 -f 427/667/54 431/737/54 430/671/54 -f 428/670/79 432/738/79 431/672/79 -f 426/668/70 430/739/70 429/673/70 -f 433/674/56 434/740/56 436/675/56 -f 436/675/58 438/741/58 437/677/58 -f 440/678/56 442/742/56 441/679/56 -f 444/681/56 446/743/56 445/682/56 -f 447/684/56 450/687/56 449/685/56 -f 450/687/100 452/744/100 451/688/100 -f 448/686/101 454/745/101 453/689/101 -o Plane -v -4.000000 24.000000 2.000000 -v -4.000000 24.000000 -2.000000 -v 4.000000 24.000000 -2.000000 -v 1.500000 24.000000 -2.000000 -v 1.500000 24.000000 2.000000 -v 3.500000 24.000000 2.000000 -v 3.500000 24.000000 -2.000000 -v 4.000000 24.000000 2.000000 -v -4.000000 16.100000 -2.000000 -v 4.000000 16.100000 -2.000000 -v -4.000000 14.100000 -2.000000 -v 4.000000 14.100000 -2.000000 -v -4.000000 14.100000 -2.500000 -v -4.000000 16.100000 -2.500000 -v 4.000000 16.100000 -2.500000 -v 4.000000 14.100000 -2.500000 -v -4.000000 16.100000 2.000000 -v 4.000000 16.100000 2.000000 -v -4.000000 14.100000 2.000000 -v 4.000000 14.100000 2.000000 -v -4.000000 16.100000 2.500000 -v 4.000000 16.100000 2.500000 -v -4.000000 14.100000 2.500000 -v 4.000000 14.100000 2.500000 -v 4.500000 16.100000 -2.000000 -v 4.500000 14.100000 -2.000000 -v 4.500000 16.100000 2.000000 -v 4.500000 14.100000 2.000000 -v -4.500000 16.100000 -2.000000 -v -4.500000 14.100000 -2.000000 -v -4.500000 16.100000 2.000000 -v -4.500000 14.100000 2.000000 -v 4.000000 15.000000 2.000000 -v 4.000000 15.000000 -2.000000 -v -4.000000 15.000000 2.000000 -v -4.000000 15.000000 -2.000000 -v 4.000000 2.000000 5.000000 -v -4.000000 2.000000 5.000000 -v -5.000000 7.000000 2.000000 -v -5.000000 7.000000 -2.000000 -v 5.000000 7.000000 2.000000 -v 5.000000 7.000000 -2.000000 -v 0.000000 15.000000 -2.000000 -v 4.000000 9.000000 -3.000000 -v 2.000000 9.000000 -3.000000 -v -4.000000 9.000000 -3.000000 -v -2.000000 9.000000 -3.000000 -v -4.000000 12.000000 2.000000 -v -4.000000 12.000000 -2.000000 -v 4.000000 12.000000 -2.000000 -v 4.000000 12.000000 2.000000 -v -3.500000 24.000000 -2.000000 -v -3.500000 24.000000 2.000000 -v -1.500000 24.000000 2.000000 -v -1.500000 24.000000 -2.000000 -v 1.500000 22.000000 -2.000000 -v 1.500000 22.000000 2.000000 -v 3.500000 22.000000 2.000000 -v 3.500000 22.000000 -2.000000 -v -3.500000 22.000000 -2.000000 -v -3.500000 22.000000 2.000000 -v -1.500000 22.000000 2.000000 -v -1.500000 22.000000 -2.000000 -v 4.000000 22.000000 2.000000 -v 4.000000 22.000000 -2.000000 -v -4.000000 22.000000 -2.000000 -v -4.000000 22.000000 2.000000 -v 1.500000 24.000000 -3.000000 -v 3.500000 24.000000 -3.000000 -v -3.500000 24.000000 -3.000000 -v -1.500000 24.000000 -3.000000 -v 1.500000 22.000000 -3.000000 -v 3.500000 22.000000 -3.000000 -v -3.500000 22.000000 -3.000000 -v -1.500000 22.000000 -3.000000 -v 4.000000 22.000000 -3.000000 -v -4.000000 22.000000 -3.000000 -v 5.000000 22.000000 2.000000 -v 5.000000 22.000000 -2.000000 -v -5.000000 22.000000 -2.000000 -v -5.000000 22.000000 2.000000 -v 1.500000 24.000000 3.000000 -v 3.500000 24.000000 3.000000 -v -3.500000 24.000000 3.000000 -v -1.500000 24.000000 3.000000 -v 1.500000 22.000000 3.000000 -v 3.500000 22.000000 3.000000 -v -3.500000 22.000000 3.000000 -v -1.500000 22.000000 3.000000 -v 4.000000 22.000000 3.000000 -v -4.000000 22.000000 3.000000 -v 4.000000 18.000000 -3.000000 -v -4.000000 18.000000 -3.000000 -v 5.000000 17.000000 2.000000 -v 5.000000 17.000000 -2.000000 -v -5.000000 17.000000 -2.000000 -v -5.000000 17.000000 2.000000 -v 4.000000 18.000000 3.000000 -v -4.000000 18.000000 3.000000 -v 4.000000 17.000000 2.000000 -v 4.000000 17.000000 -2.000000 -v -4.000000 17.000000 -2.000000 -v -4.000000 17.000000 2.000000 -v 1.500000 25.000000 -2.000000 -v 1.500000 25.000000 2.000000 -v 3.500000 25.000000 2.000000 -v 3.500000 25.000000 -2.000000 -v -3.500000 25.000000 -2.000000 -v -3.500000 25.000000 2.000000 -v -1.500000 25.000000 2.000000 -v -1.500000 25.000000 -2.000000 -v -3.000000 13.000000 3.000000 -v 3.000000 13.000000 3.000000 -v -3.000000 23.000000 3.000000 -v 3.000000 23.000000 3.000000 -v -3.000000 23.000000 5.000000 -v 3.000000 23.000000 5.000000 -v -3.000000 21.000000 7.000000 -v -3.000000 13.000000 7.000000 -v 3.000000 13.000000 7.000000 -v 3.000000 21.000000 7.000000 -v -4.000000 19.000000 6.000000 -v -4.000000 14.000000 6.000000 -v -2.500000 11.500000 4.000000 -v 2.500000 11.500000 4.000000 -v -2.500000 10.085787 4.585787 -v 2.500000 10.085787 4.585787 -v -2.500000 9.500000 6.000000 -v 2.500000 9.500000 6.000000 -v -2.500000 10.085787 7.414213 -v 2.500000 10.085787 7.414213 -v -2.500000 11.500000 8.000000 -v 2.500000 11.500000 8.000000 -v -2.500000 12.914213 7.414213 -v 2.500000 12.914213 7.414213 -v -2.500000 13.500000 6.000000 -v 2.500000 13.500000 6.000000 -v -2.500000 12.914213 4.585787 -v 2.500000 12.914213 4.585787 -v -4.000000 14.000000 4.000000 -v -4.000000 19.000000 4.000000 -v -3.000000 13.000000 6.000000 -v -3.000000 19.000000 6.000000 -v -3.000000 13.000000 4.000000 -v -3.000000 19.000000 4.000000 -v -3.750000 19.000000 5.250000 -v -3.250000 19.000000 5.250000 -v -3.750000 19.000000 4.750000 -v -3.250000 19.000000 4.750000 -v -3.250000 20.000000 4.750000 -v -3.750000 20.000000 4.750000 -v -3.250000 20.000000 5.250000 -v -3.750000 20.000000 5.250000 -v -4.000000 20.000000 6.000000 -v -4.000000 20.000000 4.000000 -v -3.000000 20.000000 6.000000 -v -3.000000 20.000000 4.000000 -v -4.000000 22.000000 4.000000 -v -3.500000 22.000000 4.000000 -v -3.500000 22.000000 6.000000 -v -4.000000 22.000000 6.000000 -v -3.500000 20.000000 6.500000 -v -4.000000 20.000000 6.500000 -v -3.500000 21.000000 6.500000 -v -4.000000 21.000000 6.500000 -v -4.000000 20.000000 3.500000 -v -3.500000 20.000000 3.500000 -v -4.000000 21.000000 3.500000 -v -3.500000 21.000000 3.500000 -v 4.000000 19.000000 6.000000 -v 4.000000 14.000000 6.000000 -v 4.000000 14.000000 4.000000 -v 4.000000 19.000000 4.000000 -v 3.000000 19.000000 4.000000 -v 3.000000 13.000000 4.000000 -v 3.000000 19.000000 6.000000 -v 3.000000 13.000000 6.000000 -v 3.250000 19.000000 5.250000 -v 3.750000 19.000000 5.250000 -v 3.250000 19.000000 4.750000 -v 3.750000 19.000000 4.750000 -v 3.250000 22.000000 4.750000 -v 3.250000 22.000000 5.250000 -v 3.750000 22.000000 5.250000 -v 3.750000 22.000000 4.750000 -v 3.000000 21.500000 4.500000 -v 3.000000 21.500000 5.500000 -v 4.000000 21.500000 5.500000 -v 4.000000 21.500000 4.500000 -v 3.000000 20.000000 4.500000 -v 3.000000 20.000000 5.500000 -v 4.000000 20.000000 5.500000 -v 4.000000 20.000000 4.500000 -v 3.250000 21.250000 5.500000 -v 3.750000 21.250000 5.500000 -v 3.250000 20.250000 5.500000 -v 3.750000 20.250000 5.500000 -v 3.250000 20.750000 6.500000 -v 3.750000 20.750000 6.500000 -v 3.250000 20.250000 6.500000 -v 3.750000 20.250000 6.500000 -v 3.250000 20.250000 7.500000 -v 3.750000 20.250000 7.500000 -v 3.250000 19.750000 7.500000 -v 3.750000 19.750000 7.500000 -v 3.250000 21.250000 4.500000 -v 3.750000 21.250000 4.500000 -v 3.250000 20.250000 4.500000 -v 3.750000 20.250000 4.500000 -v 3.250000 20.750000 3.500000 -v 3.750000 20.750000 3.500000 -v 3.250000 20.250000 3.500000 -v 3.750000 20.250000 3.500000 -v 3.250000 20.250000 2.500000 -v 3.750000 20.250000 2.500000 -v 3.250000 19.750000 2.500000 -v 3.750000 19.750000 2.500000 -v -4.000000 23.000000 6.000000 -v 4.000000 23.000000 6.000000 -v -4.000000 21.585787 6.585787 -v 4.000000 21.585787 6.585787 -v -4.000000 21.000000 8.000000 -v 4.000000 21.000000 8.000000 -v -4.000000 21.585787 9.414213 -v 4.000000 21.585787 9.414213 -v -4.000000 23.000000 10.000000 -v 4.000000 23.000000 10.000000 -v -4.000000 24.414213 9.414213 -v 4.000000 24.414213 9.414213 -v -4.000000 25.000000 8.000000 -v 4.000000 25.000000 8.000000 -v -4.000000 24.414213 6.585787 -v 4.000000 24.414213 6.585787 -v -2.000000 14.000000 7.000000 -v 2.000000 14.000000 7.000000 -v -2.000000 18.000000 7.000000 -v 2.000000 18.000000 7.000000 -v -2.000000 18.000000 9.000000 -v -2.000000 14.000000 9.000000 -v 2.000000 14.000000 9.000000 -v 2.000000 18.000000 9.000000 -v 1.250000 18.000000 8.250000 -v 1.750000 18.000000 8.250000 -v 1.250000 18.000000 7.750000 -v 1.750000 18.000000 7.750000 -v 0.250000 18.000000 8.250000 -v 0.750000 18.000000 8.250000 -v 0.250000 18.000000 7.750000 -v 0.750000 18.000000 7.750000 -v 1.250000 19.000000 7.750000 -v 1.250000 19.000000 8.250000 -v 1.750000 19.000000 8.250000 -v 1.750000 19.000000 7.750000 -v 0.250000 19.000000 7.750000 -v 0.250000 19.000000 8.250000 -v 0.750000 19.000000 8.250000 -v 0.750000 19.000000 7.750000 -v 1.250000 22.000000 10.750000 -v 1.250000 22.000000 11.250000 -v 1.750000 22.000000 11.250000 -v 1.750000 22.000000 10.750000 -v 0.250000 22.000000 10.750000 -v 0.250000 22.000000 11.250000 -v 0.750000 22.000000 11.250000 -v 0.750000 22.000000 10.750000 -v 1.250000 28.000000 10.750000 -v 1.250000 28.000000 11.250000 -v 1.750000 28.000000 11.250000 -v 1.750000 28.000000 10.750000 -v 0.250000 24.000000 10.750000 -v 0.250000 24.000000 11.250000 -v 0.750000 24.000000 11.250000 -v 0.750000 24.000000 10.750000 -v -2.816987 12.381448 5.869995 -v -3.250000 12.405506 5.621155 -v -3.250000 12.381448 5.869995 -v -3.250000 15.367525 6.158691 -v -3.033494 12.369420 5.994413 -v -3.033494 15.355495 6.283112 -v -3.033494 12.345362 6.243254 -v -3.033494 15.331437 6.531950 -v -3.250000 12.333332 6.367672 -v -3.250000 15.319408 6.656370 -v -3.466506 12.345362 6.243254 -v -3.466506 15.331437 6.531950 -v -3.466506 12.369420 5.994413 -v -3.466506 15.355495 6.283112 -v -2.816987 12.333332 6.367672 -v -3.250000 12.309274 6.616512 -v -3.683012 12.333332 6.367672 -v -3.683012 12.381448 5.869995 -v -3.899518 11.398119 5.649342 -v -3.250000 11.434206 5.276081 -v -3.899518 11.325944 6.395861 -v -3.250000 11.289858 6.769119 -v -2.600481 11.325944 6.395861 -v -2.600481 11.398119 5.649342 -v -3.899518 10.402760 5.553108 -v -3.250000 10.438847 5.179850 -v -3.899518 10.330585 6.299629 -v -3.250000 10.294498 6.672888 -v -2.600481 10.330585 6.299629 -v -2.600481 10.402760 5.553108 -v -2.816987 11.859086 7.092363 -v -3.250000 11.817929 6.845776 -v -3.250000 11.859086 7.092363 -v -3.250000 14.818153 6.598488 -v -3.033494 11.879663 7.215658 -v -3.033494 14.838732 6.721783 -v -3.033494 11.920820 7.462248 -v -3.033494 14.879889 6.968372 -v -3.250000 11.941398 7.585541 -v -3.250000 14.900467 7.091665 -v -3.466506 11.920820 7.462248 -v -3.466506 14.879889 6.968372 -v -3.466506 11.879663 7.215658 -v -3.466506 14.838732 6.721783 -v -2.816987 11.941398 7.585541 -v -3.250000 11.982554 7.832130 -v -3.683012 11.941398 7.585541 -v -3.683012 11.859086 7.092363 -v -3.899518 10.852151 7.133694 -v -3.250000 10.790417 6.763811 -v -3.899518 10.975620 7.873461 -v -3.250000 11.037354 8.243345 -v -2.600481 10.975620 7.873461 -v -2.600481 10.852151 7.133694 -v -3.899518 9.865794 7.298319 -v -3.250000 9.804060 6.928434 -v -3.899518 9.989264 8.038086 -v -3.250000 10.050999 8.407970 -v -2.600481 9.989264 8.038086 -v -2.600481 9.865794 7.298319 +f 276/437/59 283/438/59 275/439/59 +f 277/440/60 286/441/60 278/442/60 +f 273/443/61 282/444/61 274/445/61 +f 279/446/62 288/447/62 280/448/62 +f 281/449/63 278/450/63 286/451/63 +f 274/452/64 284/453/64 276/454/64 +f 287/455/65 275/456/65 283/457/65 +f 280/458/66 285/459/66 277/460/66 +f 285/459/67 296/461/67 293/462/67 +f 283/457/68 295/463/68 287/455/68 +f 286/441/69 293/464/69 294/465/69 +f 281/466/70 290/467/70 282/444/70 +f 282/468/71 292/469/71 284/453/71 +f 287/470/72 296/461/72 288/447/72 +f 286/451/73 289/471/73 281/449/73 +f 292/472/74 283/438/74 284/473/74 +f 299/474/75 297/475/75 298/476/75 +f 299/474/76 277/440/76 278/442/76 +f 300/477/77 273/443/77 274/445/77 +f 275/439/78 300/478/78 276/437/78 +f 298/479/79 279/446/79 280/448/79 +f 279/480/80 297/481/80 275/456/80 +f 280/458/81 277/460/81 298/482/81 +f 273/483/82 299/484/82 278/450/82 +f 274/452/83 276/454/83 300/485/83 +f 306/486/63 309/487/63 301/488/63 +f 305/489/60 314/490/60 306/486/60 +f 301/491/61 310/492/61 302/493/61 +f 316/494/66 305/495/66 308/496/66 +f 310/492/64 304/497/64 302/493/64 +f 307/498/62 316/494/62 308/496/62 +f 312/499/59 303/500/59 304/501/59 +f 303/500/65 315/502/65 307/503/65 +f 317/504/84 319/505/84 318/506/84 +f 313/507/85 319/505/85 314/490/85 +f 315/508/86 318/509/86 316/494/86 +f 316/494/87 318/510/87 313/511/87 +f 309/512/88 320/513/88 310/492/88 +f 309/487/89 314/490/89 319/514/89 +f 320/515/90 311/516/90 312/499/90 +f 310/492/91 320/517/91 312/518/91 +f 315/502/92 311/516/92 317/519/92 +f 326/520/60 328/521/60 325/522/60 +f 323/523/84 328/521/84 324/524/84 +f 321/525/76 327/526/76 326/520/76 +f 324/527/62 327/526/62 322/528/62 +f 323/529/61 326/520/61 325/522/61 +f 435/530/76 425/531/76 428/532/76 +f 422/533/90 434/534/90 423/535/90 +f 433/536/62 427/537/62 424/538/62 +f 406/539/90 418/540/90 407/541/90 +f 417/542/85 418/543/85 414/544/85 +f 408/545/62 420/546/62 411/547/62 +f 409/548/76 419/549/76 414/544/76 +f 412/550/78 409/548/78 410/551/78 +f 346/552/93 335/553/93 340/554/93 +f 344/555/94 339/556/94 338/557/94 +f 342/558/61 337/559/61 336/560/61 +f 345/561/62 340/554/62 339/556/62 +f 343/562/95 338/563/95 337/559/95 +f 341/564/96 336/560/96 335/553/96 +f 349/565/95 332/566/95 331/567/95 +f 347/568/96 330/569/96 329/570/96 +f 352/571/93 329/570/93 334/572/93 +f 350/573/94 333/574/94 332/575/94 +f 348/576/61 331/567/61 330/569/61 +f 351/577/62 334/572/62 333/574/62 +f 362/578/59 356/579/59 353/580/59 +f 367/581/62 361/582/62 366/583/62 +f 356/584/75 363/585/75 364/586/75 +f 355/587/61 357/588/61 354/589/61 +f 359/590/60 365/591/60 358/592/60 +f 356/579/64 354/589/64 353/580/64 +f 358/592/63 360/593/63 359/590/63 +f 366/583/66 368/594/66 367/581/66 +f 363/595/65 361/582/65 364/596/65 +f 362/597/84 353/598/84 354/599/84 +f 370/600/59 371/601/59 369/602/59 +f 373/603/60 375/604/60 374/605/60 +f 370/606/65 376/607/65 372/608/65 +f 369/609/64 373/610/64 374/611/64 +f 372/612/78 373/613/78 371/614/78 +f 369/602/90 375/604/90 370/600/90 +f 383/615/62 381/616/62 382/617/62 +f 380/618/84 383/615/84 378/619/84 +f 377/620/75 381/616/75 379/621/75 +f 379/622/60 384/623/60 380/624/60 +f 377/625/59 383/615/59 382/617/59 +f 391/626/62 389/627/62 390/628/62 +f 387/629/60 392/630/60 388/631/60 +f 385/632/59 391/626/59 390/628/59 +f 388/633/84 391/626/84 386/634/84 +f 385/635/75 389/627/75 387/636/75 +f 394/637/97 404/638/97 396/639/97 +f 399/640/75 397/641/75 398/642/75 +f 396/639/62 399/640/62 394/637/62 +f 393/643/61 397/644/61 395/645/61 +f 395/645/60 400/646/60 396/639/60 +f 394/637/59 398/647/59 393/648/59 +f 395/645/98 402/649/98 393/643/98 +f 395/645/60 404/638/60 401/650/60 +f 393/648/59 403/651/59 394/637/59 +f 420/546/99 412/550/99 411/547/99 +f 413/652/100 409/548/100 414/544/100 +f 416/653/101 406/539/101 405/654/101 +f 408/545/102 418/655/102 417/656/102 +f 405/654/61 413/652/61 416/653/61 +f 436/657/99 428/532/99 427/537/99 +f 433/536/102 423/658/102 434/659/102 +f 421/660/101 431/661/101 422/533/101 +f 426/662/100 430/663/100 429/664/100 +f 426/662/61 432/665/61 421/660/61 +f 437/666/61 439/667/61 438/668/61 +f 437/666/60 444/669/60 440/670/60 +f 438/668/59 443/671/59 442/672/59 +f 440/670/84 443/673/84 439/667/84 +f 438/668/75 441/674/75 437/666/75 +f 445/675/61 448/676/61 447/677/61 +f 448/676/63 449/678/63 447/677/63 +f 452/679/61 453/680/61 451/681/61 +f 456/682/61 457/683/61 455/684/61 +f 459/685/61 461/686/61 460/687/61 +f 462/688/103 463/689/103 461/686/103 +f 460/687/104 465/690/104 459/685/104 +f 276/437/59 284/473/59 283/438/59 +f 277/440/60 285/691/60 286/441/60 +f 273/443/61 281/466/61 282/444/61 +f 279/446/62 287/470/62 288/447/62 +f 281/449/63 273/483/63 278/450/63 +f 274/452/64 282/468/64 284/453/64 +f 287/455/65 279/480/65 275/456/65 +f 280/458/66 288/692/66 285/459/66 +f 285/459/67 288/692/67 296/461/67 +f 283/457/68 291/693/68 295/463/68 +f 286/441/69 285/691/69 293/464/69 +f 281/466/70 289/694/70 290/467/70 +f 282/468/71 290/467/71 292/469/71 +f 287/470/72 295/695/72 296/461/72 +f 286/451/73 294/465/73 289/471/73 +f 292/472/74 291/693/74 283/438/74 +f 299/474/75 300/696/75 297/475/75 +f 299/474/76 298/476/76 277/440/76 +f 300/477/77 299/697/77 273/443/77 +f 275/439/78 297/698/78 300/478/78 +f 298/479/79 297/699/79 279/446/79 +f 306/486/63 314/490/63 309/487/63 +f 305/489/60 313/507/60 314/490/60 +f 301/491/61 309/512/61 310/492/61 +f 316/494/66 313/511/66 305/495/66 +f 310/492/64 312/518/64 304/497/64 +f 307/498/62 315/508/62 316/494/62 +f 312/499/59 311/516/59 303/500/59 +f 303/500/65 311/516/65 315/502/65 +f 317/504/84 320/700/84 319/505/84 +f 313/507/85 318/506/85 319/505/85 +f 315/508/86 317/701/86 318/509/86 +f 309/512/88 319/702/88 320/513/88 +f 320/515/90 317/703/90 311/516/90 +f 326/520/60 327/526/60 328/521/60 +f 323/523/84 325/522/84 328/521/84 +f 321/525/76 322/704/76 327/526/76 +f 324/527/62 328/521/62 327/526/62 +f 323/529/61 321/705/61 326/520/61 +f 435/530/76 430/663/76 425/531/76 +f 422/533/90 431/661/90 434/534/90 +f 433/536/62 436/657/62 427/537/62 +f 406/539/90 415/706/90 418/540/90 +f 418/543/85 415/707/85 416/708/85 +f 416/708/85 413/709/85 418/543/85 +f 413/709/85 414/544/85 418/543/85 +f 414/544/85 419/549/85 420/710/85 +f 420/710/85 417/542/85 414/544/85 +f 408/545/62 417/656/62 420/546/62 +f 409/548/76 412/550/76 419/549/76 +f 410/551/78 405/711/78 406/712/78 +f 406/712/78 407/713/78 410/551/78 +f 407/713/78 408/714/78 410/551/78 +f 408/714/78 411/715/78 410/551/78 +f 411/715/78 412/550/78 410/551/78 +f 346/552/93 341/564/93 335/553/93 +f 344/555/94 345/561/94 339/556/94 +f 342/558/61 343/562/61 337/559/61 +f 345/561/62 346/552/62 340/554/62 +f 343/562/95 344/716/95 338/563/95 +f 341/564/96 342/558/96 336/560/96 +f 349/565/95 350/717/95 332/566/95 +f 347/568/96 348/576/96 330/569/96 +f 352/571/93 347/568/93 329/570/93 +f 350/573/94 351/577/94 333/574/94 +f 348/576/61 349/565/61 331/567/61 +f 351/577/62 352/571/62 334/572/62 +f 362/578/59 363/718/59 356/579/59 +f 367/581/62 364/596/62 361/582/62 +f 364/586/75 367/719/75 360/720/75 +f 367/719/75 368/594/75 360/720/75 +f 368/594/75 359/590/75 360/720/75 +f 360/720/75 355/721/75 364/586/75 +f 355/721/75 356/584/75 364/586/75 +f 355/587/61 360/593/61 357/588/61 +f 359/590/60 368/594/60 365/591/60 +f 356/579/64 355/587/64 354/589/64 +f 358/592/63 357/588/63 360/593/63 +f 366/583/66 365/591/66 368/594/66 +f 363/595/65 362/722/65 361/582/65 +f 354/599/84 357/723/84 366/724/84 +f 357/723/84 358/592/84 366/724/84 +f 358/592/84 365/591/84 366/724/84 +f 366/724/84 361/725/84 354/599/84 +f 361/725/84 362/597/84 354/599/84 +f 370/600/59 372/726/59 371/601/59 +f 373/603/60 376/727/60 375/604/60 +f 370/606/65 375/728/65 376/607/65 +f 369/609/64 371/729/64 373/610/64 +f 372/612/78 376/730/78 373/613/78 +f 369/602/90 374/605/90 375/604/90 +f 383/615/62 384/623/62 381/616/62 +f 380/618/84 384/623/84 383/615/84 +f 377/620/75 382/617/75 381/616/75 +f 379/622/60 381/616/60 384/623/60 +f 377/625/59 378/731/59 383/615/59 +f 391/626/62 392/630/62 389/627/62 +f 387/629/60 389/627/60 392/630/60 +f 385/632/59 386/732/59 391/626/59 +f 388/633/84 392/630/84 391/626/84 +f 385/635/75 390/628/75 389/627/75 +f 394/637/97 403/651/97 404/638/97 +f 399/640/75 400/646/75 397/641/75 +f 396/639/62 400/646/62 399/640/62 +f 393/643/61 398/733/61 397/644/61 +f 395/645/60 397/644/60 400/646/60 +f 394/637/59 399/640/59 398/647/59 +f 395/645/98 401/650/98 402/649/98 +f 395/645/60 396/639/60 404/638/60 +f 393/648/59 402/734/59 403/651/59 +f 420/546/99 419/549/99 412/550/99 +f 413/652/100 410/735/100 409/548/100 +f 416/653/101 415/706/101 406/539/101 +f 408/545/102 407/736/102 418/655/102 +f 405/654/61 410/735/61 413/652/61 +f 436/657/99 435/530/99 428/532/99 +f 433/536/102 424/538/102 423/658/102 +f 421/660/101 432/665/101 431/661/101 +f 426/662/100 425/531/100 430/663/100 +f 426/662/61 429/664/61 432/665/61 +f 437/666/61 440/670/61 439/667/61 +f 437/666/60 441/737/60 444/669/60 +f 438/668/59 439/667/59 443/671/59 +f 440/670/84 444/738/84 443/673/84 +f 438/668/75 442/739/75 441/674/75 +f 445/675/61 446/740/61 448/676/61 +f 448/676/63 450/741/63 449/678/63 +f 452/679/61 454/742/61 453/680/61 +f 456/682/61 458/743/61 457/683/61 +f 459/685/61 462/688/61 461/686/61 +f 462/688/103 464/744/103 463/689/103 +f 460/687/104 466/745/104 465/690/104 +o Chest +v 4.199992 -0.300001 2.100000 +v 4.199992 -0.300001 -2.100000 +v -4.200008 -0.299997 -2.100000 +v -1.575008 -0.299999 -2.100000 +v -1.575008 -0.299999 2.100000 +v -3.675008 -0.299997 2.100000 +v -3.675008 -0.299997 -2.100000 +v -4.200008 -0.299997 2.100000 +v 4.199994 7.994997 -2.100000 +v -4.200005 7.995001 -2.100000 +v 4.199995 10.094998 -2.100000 +v -4.200004 10.095000 -2.100000 +v 4.199995 10.094998 -2.625000 +v 4.199994 7.994997 -2.625000 +v -4.200005 7.995001 -2.625000 +v -4.200004 10.095000 -2.625000 +v 4.199994 7.994997 2.100000 +v -4.200005 7.995001 2.100000 +v 4.199995 10.094998 2.100000 +v -4.200004 10.095000 2.100000 +v 4.199994 7.994997 2.625000 +v -4.200005 7.995001 2.625000 +v 4.199995 10.094998 2.625000 +v -4.200004 10.095000 2.625000 +v -4.725005 7.995001 -2.100000 +v -4.725005 10.095001 -2.100000 +v -4.725005 7.995001 2.100000 +v -4.725005 10.095001 2.100000 +v 4.724995 7.994997 -2.100000 +v 4.724995 10.094997 -2.100000 +v 4.724995 7.994997 2.100000 +v 4.724995 10.094997 2.100000 +v -4.200005 9.150001 2.100000 +v -4.200005 9.150001 -2.100000 +v 4.199995 9.149999 2.100000 +v 4.199995 9.149999 -2.100000 +v -4.200000 22.800001 5.250000 +v 4.199999 22.799997 5.250000 +v 5.249998 17.549997 2.100000 +v 5.249998 17.549997 -2.100000 +v -5.250002 17.550001 2.100000 +v -5.250002 17.550001 -2.100000 +v -0.000005 9.150000 -2.100000 +v -4.200003 15.450001 -3.150000 +v -2.100003 15.450001 -3.150000 +v 4.199997 15.449999 -3.150000 +v 2.099997 15.449999 -3.150000 +v 4.199996 12.299998 2.100000 +v 4.199996 12.299998 -2.100000 +v -4.200004 12.300000 -2.100000 +v -4.200004 12.300000 2.100000 +v 3.674992 -0.300001 -2.100000 +v 3.674992 -0.300001 2.100000 +v 1.574992 -0.299999 2.100000 +v 1.574992 -0.299999 -2.100000 +v -1.575007 1.799999 -2.100000 +v -1.575007 1.799999 2.100000 +v -3.675007 1.800001 2.100000 +v -3.675007 1.800001 -2.100000 +v 3.674993 1.799997 -2.100000 +v 3.674993 1.799997 2.100000 +v 1.574993 1.799999 2.100000 +v 1.574993 1.799999 -2.100000 +v -4.200007 1.800001 2.100000 +v -4.200007 1.800001 -2.100000 +v 4.199993 1.799997 -2.100000 +v 4.199993 1.799997 2.100000 +v -1.575008 -0.299999 -3.150000 +v -3.675008 -0.299997 -3.150000 +v 3.674992 -0.300001 -3.150000 +v 1.574992 -0.299999 -3.150000 +v -1.575007 1.799999 -3.150000 +v -3.675007 1.800001 -3.150000 +v 3.674993 1.799997 -3.150000 +v 1.574993 1.799999 -3.150000 +v -4.200007 1.800001 -3.150000 +v 4.199993 1.799997 -3.150000 +v -5.250007 1.800001 2.100000 +v -5.250007 1.800001 -2.100000 +v 5.249993 1.799997 -2.100000 +v 5.249993 1.799997 2.100000 +v -1.575008 -0.299999 3.150000 +v -3.675008 -0.299997 3.150000 +v 3.674992 -0.300001 3.150000 +v 1.574992 -0.299999 3.150000 +v -1.575007 1.799999 3.150000 +v -3.675007 1.800001 3.150000 +v 3.674993 1.799997 3.150000 +v 1.574993 1.799999 3.150000 +v -4.200007 1.800001 3.150000 +v 4.199993 1.799997 3.150000 +v -4.200006 6.000002 -3.150000 +v 4.199994 5.999998 -3.150000 +v -5.250006 7.050001 2.100000 +v -5.250006 7.050001 -2.100000 +v 5.249994 7.049997 -2.100000 +v 5.249994 7.049997 2.100000 +v -4.200006 6.000002 3.150000 +v 4.199994 5.999998 3.150000 +v -4.200006 7.050001 2.100000 +v -4.200006 7.050001 -2.100000 +v 4.199994 7.049997 -2.100000 +v 4.199994 7.049997 2.100000 +v -1.575008 -1.349998 -2.100000 +v -1.575008 -1.349998 2.100000 +v -3.675008 -1.349997 2.100000 +v -3.675008 -1.349997 -2.100000 +v 3.674991 -1.350000 -2.100000 +v 3.674991 -1.350000 2.100000 +v 1.574992 -1.349998 2.100000 +v 1.574992 -1.349998 -2.100000 +v 3.149996 11.249999 3.150000 +v -3.150004 11.250001 3.150000 +v 3.149992 0.749998 3.150000 +v -3.150007 0.750002 3.150000 +v 3.149992 0.749998 5.250000 +v -3.150007 0.750002 5.250000 +v 3.149993 2.849998 7.349999 +v 3.149996 11.249999 7.349999 +v -3.150004 11.250001 7.349999 +v -3.150007 2.850002 7.349999 +v 4.199993 4.949999 6.300000 +v 4.199995 10.199999 6.300000 +v 2.624996 12.824999 4.200000 +v -2.625004 12.825001 4.200000 +v 2.624996 14.309922 4.815076 +v -2.625003 14.309924 4.815076 +v 2.624997 14.924998 6.300000 +v -2.625002 14.925000 6.300000 +v 2.624996 14.309922 7.784924 +v -2.625003 14.309924 7.784924 +v 2.624996 12.824999 8.400000 +v -2.625004 12.825001 8.400000 +v 2.624995 11.340075 7.784924 +v -2.625004 11.340077 7.784924 +v 2.624995 10.724999 6.300000 +v -2.625004 10.725001 6.300000 +v 2.624995 11.340075 4.815076 +v -2.625004 11.340077 4.815076 +v 4.199995 10.199999 4.200000 +v 4.199993 4.949999 4.200000 +v 3.149996 11.249999 6.300000 +v 3.149993 4.949999 6.300000 +v 3.149996 11.249999 4.200000 +v 3.149993 4.949999 4.200000 +v 3.937494 4.949999 5.512500 +v 3.412494 4.949999 5.512500 +v 3.937494 4.949999 4.987500 +v 3.412494 4.949999 4.987500 +v 3.412493 3.899998 4.987500 +v 3.937493 3.899998 4.987500 +v 3.412493 3.899998 5.512500 +v 3.937493 3.899998 5.512500 +v 4.199993 3.899998 6.300000 +v 4.199993 3.899998 4.200000 +v 3.149993 3.899998 6.300000 +v 3.149993 3.899998 4.200000 +v 4.199992 1.799997 4.200000 +v 3.674992 1.799997 4.200000 +v 3.674992 1.799997 6.300000 +v 4.199992 1.799997 6.300000 +v 3.674993 3.899998 6.825000 +v 4.199993 3.899998 6.825000 +v 3.674993 2.849998 6.825000 +v 4.199993 2.849998 6.825000 +v 4.199993 3.899998 3.675000 +v 3.674993 3.899998 3.675000 +v 4.199993 2.849998 3.675000 +v 3.674993 2.849998 3.675000 +v -4.200006 4.950003 6.300000 +v -4.200004 10.200001 6.300000 +v -4.200004 10.200001 4.200000 +v -4.200006 4.950003 4.200000 +v -3.150006 4.950003 4.200000 +v -3.150004 11.250001 4.200000 +v -3.150006 4.950003 6.300000 +v -3.150004 11.250001 6.300000 +v -3.412506 4.950003 5.512500 +v -3.937506 4.950003 5.512500 +v -3.412506 4.950003 4.987500 +v -3.937506 4.950003 4.987500 +v -3.412507 1.800001 4.987500 +v -3.412507 1.800001 5.512500 +v -3.937507 1.800001 5.512500 +v -3.937507 1.800001 4.987500 +v -3.150007 2.325003 4.725000 +v -3.150007 2.325003 5.775000 +v -4.200007 2.325003 5.775000 +v -4.200007 2.325003 4.725000 +v -3.150006 3.900002 4.725000 +v -3.150006 3.900002 5.775000 +v -4.200006 3.900002 5.775000 +v -4.200006 3.900002 4.725000 +v -3.412507 2.587502 5.775000 +v -3.937507 2.587502 5.775000 +v -3.412507 3.637503 5.775000 +v -3.937506 3.637503 5.775000 +v -3.412507 3.112501 6.825000 +v -3.937507 3.112501 6.825000 +v -3.412507 3.637503 6.825000 +v -3.937506 3.637503 6.825000 +v -3.412507 3.637503 7.875000 +v -3.937506 3.637503 7.875000 +v -3.412506 4.162502 7.875000 +v -3.937506 4.162502 7.875000 +v -3.412507 2.587502 4.725000 +v -3.937507 2.587502 4.725000 +v -3.412507 3.637503 4.725000 +v -3.937506 3.637503 4.725000 +v -3.412507 3.112501 3.675000 +v -3.937507 3.112501 3.675000 +v -3.412507 3.637503 3.675000 +v -3.937506 3.637503 3.675000 +v -3.412507 3.637503 2.625000 +v -3.937506 3.637503 2.625000 +v -3.412506 4.162502 2.625000 +v -3.937506 4.162502 2.625000 +v 4.199992 0.749998 6.300000 +v -4.200007 0.750002 6.300000 +v 4.199993 2.234922 6.915076 +v -4.200006 2.234926 6.915076 +v 4.199994 2.849998 8.400000 +v -4.200006 2.850002 8.400000 +v 4.199993 2.234922 9.884923 +v -4.200006 2.234926 9.884923 +v 4.199992 0.749998 10.500000 +v -4.200007 0.750002 10.500000 +v 4.199991 -0.734926 9.884923 +v -4.200008 -0.734922 9.884923 +v 4.199991 -1.350000 8.400000 +v -4.200008 -1.349997 8.400000 +v 4.199991 -0.734926 6.915076 +v -4.200008 -0.734922 6.915076 +v 2.099995 10.199999 7.349999 +v -2.100004 10.200001 7.349999 +v 2.099994 6.000000 7.349999 +v -2.100006 6.000000 7.349999 +v 2.099994 6.000000 9.450000 +v 2.099995 10.199999 9.450000 +v -2.100004 10.200001 9.450000 +v -2.100006 6.000000 9.450000 +v -1.312506 6.000000 8.662499 +v -1.837506 6.000000 8.662499 +v -1.312506 6.000000 8.137500 +v -1.837506 6.000000 8.137500 +v -0.262506 6.000000 8.662499 +v -0.787506 6.000000 8.662499 +v -0.262506 6.000000 8.137500 +v -0.787506 6.000000 8.137500 +v -1.312506 4.950001 8.137500 +v -1.312506 4.950001 8.662499 +v -1.837506 4.950001 8.662499 +v -1.837506 4.950001 8.137500 +v -0.262506 4.950001 8.137500 +v -0.262506 4.950001 8.662499 +v -0.787506 4.950001 8.662499 +v -0.787506 4.950001 8.137500 +v -1.312507 1.799999 11.287499 +v -1.312507 1.799999 11.812499 +v -1.837507 1.799999 11.812499 +v -1.837507 1.799999 11.287499 +v -0.262507 1.799999 11.287499 +v -0.262507 1.799999 11.812499 +v -0.787507 1.799999 11.812499 +v -0.787507 1.799999 11.287499 +v -1.312509 -4.500000 11.287499 +v -1.312509 -4.500000 11.812499 +v -1.837509 -4.500000 11.812499 +v -1.837509 -4.500000 11.287499 +v -0.262508 -0.299999 11.287499 +v -0.262508 -0.299999 11.812499 +v -0.787508 -0.299999 11.812499 +v -0.787508 -0.299999 11.287499 +v 2.957832 11.899478 6.163495 +v 3.412495 11.874217 5.902212 +v 3.412496 11.899478 6.163495 +v 3.412495 8.764097 6.466626 +v 3.185164 11.912108 6.294134 +v 3.185163 8.776729 6.597267 +v 3.185164 11.937369 6.555416 +v 3.185163 8.801990 6.858547 +v 3.412496 11.950000 6.686055 +v 3.412495 8.814620 6.989188 +v 3.639827 11.937369 6.555416 +v 3.639826 8.801990 6.858547 +v 3.639827 11.912108 6.294134 +v 3.639826 8.776729 6.597267 +v 2.957832 11.950000 6.686055 +v 3.412496 11.975261 6.947338 +v 3.867159 11.950000 6.686055 +v 3.867158 11.899478 6.163495 +v 4.094490 12.931973 5.931808 +v 3.412496 12.894082 5.539885 +v 4.094490 13.007758 6.715653 +v 3.412496 13.045648 7.107575 +v 2.730501 13.007758 6.715653 +v 2.730501 12.931973 5.931808 +v 4.094491 13.977101 5.830763 +v 3.412496 13.939210 5.438842 +v 4.094491 14.052884 6.614610 +v 3.412496 14.090775 7.006532 +v 2.730501 14.052884 6.614610 +v 2.730501 13.977101 5.830763 +v 2.957832 12.447959 7.446981 +v 3.412496 12.491173 7.188064 +v 3.412496 12.447959 7.446981 +v 3.412495 9.340938 6.928412 +v 3.185164 12.426353 7.576441 +v 3.185163 9.319330 7.057871 +v 3.185164 12.383138 7.835360 +v 3.185163 9.276116 7.316791 +v 3.412496 12.361531 7.964818 +v 3.412495 9.254509 7.446248 +v 3.639827 12.383138 7.835360 +v 3.639826 9.276116 7.316791 +v 3.639827 12.426353 7.576441 +v 3.639826 9.319330 7.057871 +v 2.957832 12.361531 7.964818 +v 3.412496 12.318316 8.223737 +v 3.867159 12.361531 7.964818 +v 3.867159 12.447959 7.446981 +v 4.094491 13.505240 7.490378 +v 3.412496 13.570062 7.102001 +v 4.094491 13.375598 8.267134 +v 3.412496 13.310778 8.655512 +v 2.730501 13.375598 8.267134 +v 2.730501 13.505240 7.490378 +v 4.094491 14.540915 7.663234 +v 3.412496 14.605736 7.274856 +v 4.094491 14.411272 8.439990 +v 3.412496 14.346450 8.828368 +v 2.730502 14.411272 8.439990 +v 2.730502 14.540915 7.663234 vt 0.629630 0.225000 vt 0.611111 0.175000 vt 0.629630 0.175000 @@ -2349,11 +2366,10 @@ vt 0.722222 0.175000 vt 0.333333 0.400000 vt 0.481481 0.387500 vt 0.481481 0.400000 -vt 0.092593 0.387500 -vt 0.240741 0.337500 vt 0.240741 0.387500 -vt 0.240741 0.325000 vt 0.092593 0.337500 +vt 0.240741 0.337500 +vt 0.240741 0.325000 vt 0.092593 0.325000 vt 0.092593 0.400000 vt 0.240741 0.400000 @@ -2367,6 +2383,7 @@ vt 0.481481 0.325000 vt 0.333333 0.337500 vt 0.333333 0.325000 vt 0.481481 0.337500 +vt 0.333333 0.387500 vt 0.009259 0.400000 vt 0.083333 0.387500 vt 0.083333 0.400000 @@ -2381,6 +2398,7 @@ vt 0.250000 0.337500 vt 0.250000 0.325000 vt 0.324074 0.337500 vt 0.083333 0.337500 +vt 0.092593 0.387500 vt 0.083333 0.400000 vt 0.083333 0.325000 vt 0.000000 0.325000 @@ -2389,7 +2407,6 @@ vt 0.009259 0.387500 vt -0.000000 0.387500 vt 0.000000 0.400000 vt 0.324074 0.325000 -vt 0.333333 0.387500 vt 0.324074 0.400000 vt 0.240741 0.325000 vt 0.250000 0.387500 @@ -2407,10 +2424,11 @@ vt 0.037037 0.175000 vt 0.074074 0.175000 vt 0.481481 0.175000 vt 0.092593 0.125000 -vt 0.296296 0.400000 -vt 0.444444 0.700000 vt 0.296296 0.700000 +vt 0.444444 0.400000 +vt 0.444444 0.700000 vt 0.222222 0.700000 +vt 0.296296 0.400000 vt 0.074074 0.700000 vt 0.222222 0.400000 vt 0.000000 0.700000 @@ -2425,7 +2443,7 @@ vt 0.574074 0.150000 vt 0.583333 0.175000 vt 0.574074 0.175000 vt 0.574074 0.225000 -vt 0.685185 0.225000 +vt 0.648148 0.225000 vt 0.481481 0.175000 vt 0.555556 0.150000 vt 0.555556 0.175000 @@ -2473,6 +2491,7 @@ vt 0.814815 0.025000 vt 0.620370 0.150000 vt 0.583333 0.150000 vt 0.685185 0.425000 +vt 0.611111 0.425000 vt 0.574074 0.425000 vt 0.814815 -0.000000 vt 0.481481 0.025000 @@ -2496,7 +2515,7 @@ vt 0.629630 0.250000 vt 0.611111 0.350000 vt 0.648148 0.350000 vt 0.611111 0.225000 -vt 0.648148 0.225000 +vt 0.685185 0.225000 vt 0.685185 0.350000 vt 0.574074 0.350000 vt 0.629630 0.350000 @@ -2508,9 +2527,9 @@ vt 0.629630 0.250000 vt 0.629630 0.250000 vt 0.703704 0.250000 vt 0.222222 0.800000 -vt 0.555556 0.775000 -vt 0.444444 0.525000 vt 0.555556 0.525000 +vt 0.444444 0.775000 +vt 0.444444 0.525000 vt 0.629630 0.825000 vt 0.740741 0.775000 vt 0.740741 0.825000 @@ -2520,26 +2539,25 @@ vt 0.814815 0.775000 vt 0.740741 0.525000 vt 0.629630 0.425000 vt 0.740741 0.425000 -vt 0.629630 0.725000 vt 0.629630 0.525000 -vt 0.629630 0.775000 +vt 0.629630 0.725000 vt 0.592593 0.775000 +vt 0.555556 0.775000 vt 0.537037 0.850000 vt 0.500000 0.900000 vt 0.500000 0.850000 vt 0.546296 0.900000 vt 0.555556 0.875000 vt 0.555556 0.900000 -vt 0.314815 0.925000 -vt 0.222222 0.962500 vt 0.222222 0.925000 +vt 0.314815 0.962500 +vt 0.222222 0.962500 vt 0.500000 0.775000 vt 0.500000 0.825000 vt 0.490741 0.800000 vt 0.018519 0.850000 vt 0.055556 0.875000 vt 0.018519 0.875000 -vt 0.314815 0.962500 vt 0.222222 1.000000 vt 0.453704 0.775000 vt 0.444444 0.800000 @@ -2554,23 +2572,22 @@ vt 0.462963 0.775000 vt 0.453704 0.800000 vt 0.074074 0.850000 vt 0.074074 0.700000 -vt 0.314815 0.737500 +vt 0.314815 0.775000 vt 0.222222 0.775000 vt 0.472222 0.775000 vt 0.462963 0.800000 vt 0.537037 0.912500 vt 0.500000 0.912500 -vt 0.314815 0.775000 +vt 0.314815 0.812500 vt 0.222222 0.812500 vt 0.481481 0.775000 vt 0.472222 0.800000 vt 0.000000 0.850000 vt 0.000000 0.700000 -vt 0.314815 0.812500 vt 0.222222 0.850000 +vt 0.315778 0.750000 vt 0.326344 0.715564 vt 0.351852 0.701301 -vt 0.351852 0.798699 vt 0.055556 0.850000 vt 0.314815 0.850000 vt 0.222222 0.887500 @@ -2590,9 +2607,8 @@ vt 0.546296 0.825000 vt 0.490741 0.850000 vt 0.481481 0.875000 vt 0.481481 0.850000 -vt 0.481481 0.900000 -vt 0.490741 0.875000 vt 0.490741 0.900000 +vt 0.490741 0.875000 vt 0.490741 0.837500 vt 0.055556 0.725000 vt 0.018519 0.850000 @@ -2625,7 +2641,6 @@ vt 0.648148 0.850000 vt 0.666667 0.887500 vt 0.648148 0.887500 vt 0.629630 0.850000 -vt 0.592593 0.850000 vt 0.592593 0.887500 vt 0.666667 0.862500 vt 0.675926 0.837500 @@ -2638,7 +2653,7 @@ vt 0.703704 0.887500 vt 0.685185 0.862500 vt 0.694444 0.862500 vt 0.685185 0.887500 -vt 0.675926 0.825000 +vt 0.685185 0.825000 vt 0.685185 0.837500 vt 0.703704 0.837500 vt 0.694444 0.837500 @@ -2653,14 +2668,15 @@ vt 0.666667 0.887500 vt 0.675926 0.862500 vt 0.675926 0.887500 vt 0.685185 0.887500 -vt 0.675926 0.837500 +vt 0.675926 0.825000 vt 0.685185 0.825000 vt 0.703704 0.837500 vt 0.666667 0.862500 -vt 0.962963 0.662500 -vt 0.814815 0.700000 +vt 0.675926 0.837500 vt 0.814815 0.662500 vt 0.962963 0.700000 +vt 0.814815 0.700000 +vt 0.962963 0.737500 vt 0.814815 0.737500 vt 0.962963 0.437500 vt 0.814815 0.475000 @@ -2676,10 +2692,10 @@ vt 0.962963 0.238801 vt 0.962963 0.336199 vt 0.962963 0.587500 vt 0.814815 0.625000 -vt 0.962963 0.625000 -vt 0.988471 0.353064 -vt 0.988471 0.421936 +vt 0.962963 0.662500 vt 0.937455 0.421935 +vt 0.937455 0.353064 +vt 0.988471 0.353064 vt 0.814815 0.225000 vt 0.740741 0.325000 vt 0.740741 0.225000 @@ -2692,9 +2708,9 @@ vt 0.851852 0.325000 vt 0.851852 0.225000 vt 0.703704 0.225000 vt 0.703704 0.325000 -vt 0.925926 0.200000 -vt 0.916667 0.275000 vt 0.916667 0.200000 +vt 0.925926 0.275000 +vt 0.916667 0.275000 vt 0.861111 0.200000 vt 0.851852 0.275000 vt 0.851852 0.200000 @@ -2709,16 +2725,15 @@ vt 0.870370 0.200000 vt 0.870370 0.175000 vt 0.861111 0.175000 vt 0.851852 0.175000 -vt 0.925926 0.175000 +vt 0.925926 0.200000 vt 0.898148 0.200000 -vt 0.888889 0.175000 +vt 0.888889 0.200000 vt 0.879630 0.200000 vt 0.898148 0.275000 vt 0.888889 0.325000 vt 0.888889 0.275000 vt 0.907407 0.325000 vt 0.907407 0.275000 -vt 0.888889 0.200000 vt 0.879630 0.275000 vt 0.861111 0.275000 vt 0.870370 0.275000 @@ -2728,65 +2743,64 @@ vt 0.861111 0.425000 vt 0.898148 0.337500 vt 0.898148 0.325000 vt 0.851852 0.425000 -vt 0.925926 0.275000 +vt 0.925926 0.325000 vt 0.916667 0.325000 vt 0.888889 0.275000 vt 0.879630 0.425000 -vt 0.435185 0.800000 -vt 0.425926 0.825000 vt 0.425926 0.800000 +vt 0.435185 0.825000 +vt 0.425926 0.825000 vt 0.398148 0.787500 vt 0.388889 0.800000 vt 0.388889 0.787500 vt 0.398148 0.712500 -vt 0.416667 0.800000 -vt 0.407407 0.825000 vt 0.407407 0.800000 -vt 0.435185 0.787500 +vt 0.416667 0.825000 +vt 0.407407 0.825000 vt 0.425926 0.787500 -vt 0.407407 0.712500 +vt 0.435185 0.800000 vt 0.407407 0.787500 vt 0.444444 0.800000 -vt 0.435185 0.825000 +vt 0.435185 0.787500 +vt 0.416667 0.712500 vt 0.416667 0.787500 vt 0.398148 0.850000 vt 0.398148 0.825000 -vt 0.416667 0.712500 +vt 0.416667 0.800000 +vt 0.425926 0.712500 +vt 0.397836 0.706250 vt 0.391360 0.711298 -vt 0.389201 0.706250 vt 0.391360 0.701202 vt 0.388889 0.825000 -vt 0.425926 0.712500 -vt 0.416667 0.825000 -vt 0.398148 0.800000 vt 0.435185 0.712500 +vt 0.398148 0.800000 vt 0.444444 0.787500 vt 0.390314 0.856394 vt 0.398148 0.850287 vt 0.405982 0.856394 vt 0.416667 0.850000 -vt 0.444444 0.825000 +vt 0.444444 0.850000 vt 0.435185 0.850000 vt 0.388889 0.850000 vt 0.407407 0.850000 vt 0.425926 0.850000 -vt 0.435185 0.800000 -vt 0.425926 0.825000 vt 0.425926 0.800000 +vt 0.435185 0.825000 +vt 0.425926 0.825000 vt 0.398148 0.787500 vt 0.388889 0.800000 vt 0.388889 0.787500 -vt 0.398148 0.712500 +vt 0.388889 0.712500 vt 0.416667 0.800000 vt 0.407407 0.825000 vt 0.407407 0.800000 vt 0.435185 0.787500 vt 0.425926 0.787500 +vt 0.407407 0.712500 vt 0.407407 0.787500 vt 0.444444 0.800000 -vt 0.435185 0.825000 +vt 0.435185 0.800000 vt 0.444444 0.787500 -vt 0.407407 0.712500 vt 0.416667 0.787500 vt 0.398148 0.825000 vt 0.407407 0.850000 @@ -2796,683 +2810,684 @@ vt 0.389201 0.706250 vt 0.391360 0.701202 vt 0.397836 0.706250 vt 0.388889 0.825000 -vt 0.435185 0.712500 vt 0.416667 0.825000 vt 0.398148 0.800000 -vt 0.389102 0.862500 +vt 0.435185 0.712500 vt 0.393625 0.851924 vt 0.402671 0.851924 -vt 0.425926 0.850000 +vt 0.402671 0.873076 vt 0.416667 0.850000 -vt 0.444444 0.825000 +vt 0.444444 0.850000 vt 0.435185 0.850000 vt 0.388889 0.850000 +vt 0.425926 0.850000 vt 0.490741 0.825000 vt 0.712963 0.150000 vt -0.000000 0.325000 -vt 0.444444 0.400000 vt 0.000000 0.400000 vt 0.648148 0.425000 -vt 0.611111 0.425000 vt 0.935185 0.150000 vt 0.740741 -0.000000 vt 0.481481 0.000000 vt 0.074074 0.800000 -vt 0.444444 0.775000 +vt 0.629630 0.775000 vt 0.777778 0.775000 +vt 0.314815 0.925000 vt 0.314815 1.000000 vt 0.055556 0.700000 +vt 0.314815 0.737500 vt 0.481481 0.800000 vt 0.377360 0.715564 +vt 0.351852 0.798699 vt 0.387925 0.750000 vt 0.377360 0.784436 vt 0.326344 0.784436 -vt 0.315778 0.750000 vt 0.315778 0.850000 vt 0.326344 0.815564 vt 0.351852 0.801301 vt 0.387925 0.850000 vt 0.351852 0.898699 +vt 0.481481 0.900000 vt 0.074074 0.700000 vt 0.018519 0.700000 vt 0.055556 0.875000 vt 0.592593 0.850000 vt 0.666667 0.850000 +vt 0.592593 0.850000 vt 0.666667 0.837500 -vt 0.685185 0.825000 vt 0.675926 0.825000 vt 0.666667 0.837500 -vt 0.962963 0.737500 vt 0.988471 0.253064 vt 0.999037 0.287500 vt 0.988471 0.321936 vt 0.937455 0.321936 vt 0.926890 0.287500 +vt 0.962963 0.625000 vt 0.926889 0.387500 -vt 0.937455 0.353064 vt 0.962963 0.338801 vt 0.999036 0.387500 +vt 0.988471 0.421936 vt 0.962963 0.436199 +vt 0.925926 0.175000 +vt 0.888889 0.175000 vt 0.870370 0.437500 vt 0.907407 0.337500 -vt 0.925926 0.325000 vt 0.888889 0.425000 vt 0.388889 0.712500 +vt 0.407407 0.712500 +vt 0.444444 0.825000 vt 0.395677 0.701202 -vt 0.397836 0.706250 vt 0.395677 0.711298 +vt 0.389201 0.706250 vt 0.444444 0.712500 vt 0.405982 0.868606 vt 0.398148 0.874712 vt 0.390314 0.868606 -vt 0.444444 0.850000 -vt 0.388889 0.712500 +vt 0.398148 0.712500 +vt 0.444444 0.825000 vt 0.416667 0.712500 vt 0.395677 0.701202 vt 0.395677 0.711298 vt 0.391360 0.711298 vt 0.444444 0.712500 vt 0.407194 0.862500 -vt 0.402671 0.873076 vt 0.393625 0.873076 -vt 0.444444 0.850000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 1.0000 0.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 +vt 0.389102 0.862500 +vn 1.0000 -0.0000 0.0000 vn 0.0000 -1.0000 0.0000 -vn -0.9923 0.1240 0.0000 -vn 0.0000 0.2249 0.9744 +vn -1.0000 0.0000 0.0000 +vn -0.0000 0.0000 -1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.9923 -0.1240 0.0000 +vn -0.0000 -0.2249 0.9744 vn 0.0000 0.0000 1.0000 -vn 0.7071 0.0000 -0.7071 -vn 0.7071 0.0000 0.7071 -vn -0.7071 0.0000 0.7071 vn -0.7071 0.0000 -0.7071 -vn 0.9923 0.1240 0.0000 -vn -0.8740 0.1093 0.4734 -vn 0.8740 0.1093 0.4734 -vn 0.0000 0.1644 -0.9864 -vn 0.7960 0.0995 -0.5970 -vn -0.7960 0.0995 -0.5970 -vn 0.0000 -0.7071 -0.7071 -vn 0.0000 -0.7071 0.7071 +vn -0.7071 0.0000 0.7071 +vn 0.7071 0.0000 0.7071 +vn 0.7071 -0.0000 -0.7071 +vn -0.9923 -0.1240 0.0000 +vn 0.8740 -0.1093 0.4734 +vn -0.8740 -0.1093 0.4734 +vn 0.0000 -0.1644 -0.9864 +vn -0.7960 -0.0995 -0.5970 +vn 0.7960 -0.0995 -0.5970 vn 0.0000 0.7071 -0.7071 vn 0.0000 0.7071 0.7071 -vn 0.0000 0.4472 0.8944 -vn 0.0000 -0.3827 -0.9239 -vn 0.8729 0.2182 -0.4364 -vn 0.0000 -0.9239 -0.3827 -vn -0.7071 -0.7071 0.0000 -vn 0.0000 -0.9239 0.3827 -vn 0.0000 -0.3827 0.9239 -vn 0.0000 0.3827 0.9239 -vn 0.0000 0.9239 0.3827 -vn 0.0000 0.9239 -0.3827 -vn 0.9701 0.2425 0.0000 +vn -0.0000 -0.7071 -0.7071 +vn -0.0000 -0.7071 0.7071 +vn 0.0000 -0.4472 0.8944 vn 0.0000 0.3827 -0.9239 -vn 0.0000 0.4472 -0.8944 -vn 0.7071 -0.7071 0.0000 -vn 0.0000 0.8944 0.4472 -vn 0.0000 -0.8944 -0.4472 -vn 0.0000 0.8944 -0.4472 +vn -0.8729 -0.2182 -0.4364 +vn 0.0000 0.9239 -0.3827 +vn 0.7071 0.7071 0.0000 +vn 0.0000 0.9239 0.3827 +vn 0.0000 0.3827 0.9239 +vn -0.0000 -0.3827 0.9239 +vn -0.0000 -0.9239 0.3827 +vn -0.0000 -0.9239 -0.3827 +vn -0.9701 -0.2425 0.0000 +vn -0.0000 -0.3827 -0.9239 +vn 0.0000 -0.4472 -0.8944 +vn -0.7071 0.7071 0.0000 vn 0.0000 -0.8944 0.4472 -vn -0.9774 0.2106 0.0204 -vn -0.0000 0.9954 0.0962 -vn 0.5000 0.0833 -0.8620 -vn 0.4887 0.1292 0.8628 -vn -0.4887 0.2921 -0.8221 -vn 0.5000 -0.0833 0.8620 -vn -0.5000 -0.0833 0.8620 -vn 0.4887 0.2921 -0.8221 -vn -0.4887 0.1292 0.8629 -vn -0.5000 0.0833 -0.8620 -vn 0.9774 0.2106 0.0204 -vn -0.0000 -0.9954 -0.0962 -vn -0.9774 0.2087 -0.0348 -vn 0.0000 0.9864 -0.1646 -vn 0.5000 -0.1426 -0.8542 -vn 0.4887 0.3481 0.8000 -vn -0.4887 0.0694 -0.8697 -vn 0.5000 0.1426 0.8542 -vn -0.5000 0.1426 0.8542 -vn 0.4887 0.0694 -0.8697 -vn -0.4887 0.3481 0.8000 -vn -0.5000 -0.1426 -0.8542 -vn 0.9774 0.2087 -0.0348 -vn 0.0000 -0.9864 0.1646 -vn 0.8729 0.2182 0.4364 -vn 0.4887 0.1292 0.8629 -vn -0.4887 0.1292 0.8628 +vn 0.0000 0.8944 -0.4472 +vn 0.0000 -0.8944 -0.4472 +vn 0.0000 0.8944 0.4472 +vn 0.9774 -0.2106 0.0204 +vn -0.0000 -0.9954 0.0962 +vn -0.5000 -0.0833 -0.8620 +vn -0.4887 -0.1292 0.8628 +vn 0.4887 -0.2921 -0.8221 +vn -0.5000 0.0833 0.8620 +vn 0.5000 0.0833 0.8620 +vn -0.4887 -0.2921 -0.8221 +vn 0.4887 -0.1292 0.8628 +vn 0.5000 -0.0833 -0.8620 +vn -0.9774 -0.2106 0.0204 +vn 0.0000 0.9954 -0.0962 +vn 0.9774 -0.2087 -0.0348 +vn -0.0000 -0.9864 -0.1646 +vn -0.5000 0.1426 -0.8542 +vn -0.4887 -0.3481 0.8000 +vn 0.4887 -0.0694 -0.8697 +vn -0.5000 -0.1426 0.8542 +vn 0.5000 -0.1426 0.8542 +vn -0.4887 -0.0694 -0.8697 +vn 0.4887 -0.3481 0.8000 +vn 0.5000 0.1426 -0.8542 +vn -0.9774 -0.2087 -0.0348 +vn 0.0000 0.9864 0.1646 +vn -0.8729 -0.2182 0.4364 s off -f 458/746/102 526/747/102 510/748/102 -f 510/749/103 529/750/103 517/751/103 -f 529/752/104 509/753/104 517/754/104 -f 514/755/103 531/756/103 520/757/103 -f 471/758/103 476/759/103 472/760/103 -f 469/761/105 467/762/105 468/763/105 -f 465/764/106 470/765/106 466/766/106 -f 464/767/103 468/763/103 463/768/103 -f 490/769/107 493/770/107 489/771/107 -f 489/772/108 491/773/108 487/774/108 -f 474/775/106 477/776/106 473/777/106 -f 476/759/109 477/776/109 478/778/109 -f 472/779/103 479/780/103 464/781/103 -f 466/782/106 482/783/106 474/784/106 -f 463/785/103 485/786/103 471/787/103 -f 473/788/106 484/789/106 465/790/106 -f 485/786/102 484/789/102 486/791/102 -f 479/780/104 482/783/104 480/792/104 -f 479/780/110 470/765/110 469/761/110 -f 464/767/103 479/793/103 469/761/103 -f 466/766/106 470/765/106 480/794/106 -f 474/784/106 482/783/106 478/795/106 -f 478/796/111 481/797/111 476/798/111 -f 472/779/103 476/799/103 481/797/103 -f 473/777/106 477/776/106 486/800/106 -f 485/786/112 477/776/112 475/801/112 -f 471/758/103 485/802/103 475/801/103 -f 465/790/106 484/789/106 467/803/106 -f 467/762/113 483/804/113 468/763/113 -f 463/785/103 468/805/103 483/804/103 -f 487/806/114 496/807/114 488/808/114 -f 489/772/115 493/770/115 492/809/115 -f 487/774/116 491/773/116 495/810/116 -f 488/811/117 499/812/117 497/813/117 -f 490/814/117 501/815/117 500/816/117 -f 488/808/118 496/807/118 498/817/118 -f 490/769/119 500/816/119 494/818/119 -f 502/819/109 462/820/109 455/821/109 -f 456/822/102 502/819/102 455/821/102 -f 457/823/105 503/824/105 456/822/105 -f 462/825/104 504/826/104 457/823/104 -f 506/827/102 528/828/102 514/829/102 -f 527/830/104 461/831/104 513/832/104 -f 530/833/103 513/834/103 519/835/103 -f 526/747/105 523/836/105 527/830/105 -f 524/837/105 529/752/105 528/828/105 -f 518/838/103 533/839/103 519/840/103 -f 520/841/103 535/842/103 521/843/103 -f 537/844/104 512/845/104 460/846/104 -f 541/847/103 518/848/103 512/849/103 -f 521/850/103 542/851/103 515/852/103 -f 539/853/104 516/854/104 508/855/104 -f 511/856/102 536/857/102 459/858/102 -f 543/859/103 511/860/103 516/861/103 -f 515/862/102 538/863/102 507/864/102 -f 532/865/103 518/848/103 544/866/103 -f 521/850/103 535/867/103 545/868/103 -f 520/757/103 531/756/103 534/869/103 -f 519/835/103 533/870/103 530/833/103 -f 532/871/111 552/872/111 548/873/111 -f 533/839/110 546/874/110 530/833/110 -f 535/842/112 553/875/112 545/868/112 -f 532/876/104 549/877/104 533/839/104 -f 534/878/113 547/879/113 550/880/113 -f 534/878/102 551/881/102 535/842/102 -f 526/882/105 527/883/105 546/874/105 -f 542/884/109 539/853/109 538/863/109 -f 536/857/109 541/885/109 537/844/109 -f 543/859/109 553/875/109 552/872/109 -f 550/880/106 557/886/106 551/881/106 -f 548/887/106 555/888/106 549/877/106 -f 549/877/120 555/889/120 546/874/120 -f 550/880/120 547/879/120 556/890/120 -f 546/874/120 556/890/120 547/879/120 -f 553/875/121 551/881/121 557/891/121 -f 552/872/121 554/892/121 548/873/121 -f 553/875/121 554/892/121 552/872/121 -f 561/893/104 460/894/104 461/895/104 -f 507/896/102 562/897/102 506/898/102 -f 459/899/102 558/900/102 458/901/102 -f 565/902/104 508/903/104 509/904/104 -f 559/905/103 561/893/103 558/900/103 -f 562/897/103 564/906/103 565/902/103 -f 522/907/122 561/893/122 523/836/122 -f 562/897/122 525/908/122 524/837/122 -f 539/853/123 563/909/123 538/863/123 -f 560/910/123 536/857/123 537/844/123 -f 459/858/102 536/857/102 559/911/102 -f 507/864/102 538/863/102 563/912/102 -f 508/855/104 564/913/104 539/853/104 -f 460/846/104 560/914/104 537/844/104 -f 461/831/104 523/836/104 561/915/104 -f 458/746/102 558/916/102 522/907/102 -f 509/753/104 525/908/104 565/917/104 -f 506/827/102 562/918/102 524/837/102 -f 455/919/103 457/823/103 456/822/103 -f 568/920/105 567/921/105 566/922/105 -f 568/923/103 571/924/103 569/925/103 -f 575/926/104 567/927/104 569/928/104 -f 574/929/106 566/930/106 567/931/106 -f 574/929/109 572/932/109 573/933/109 -f 570/934/123 575/926/123 571/924/123 -f 572/932/102 570/935/102 568/920/102 -f 608/936/102 612/937/102 609/938/102 -f 615/939/124 618/940/124 614/941/124 -f 579/942/125 580/943/125 578/944/125 -f 613/945/126 611/946/126 623/947/126 -f 595/948/103 597/949/103 599/950/103 -f 581/951/127 582/952/127 580/943/127 -f 602/953/105 604/954/105 603/955/105 -f 598/956/128 577/957/128 594/958/128 -f 583/959/129 584/960/129 582/961/129 -f 600/962/102 605/963/102 602/953/102 -f 597/964/109 577/957/109 596/965/109 -f 585/966/130 586/967/130 584/960/130 -f 601/968/109 607/969/109 600/962/109 -f 612/937/103 614/970/103 613/971/103 -f 587/972/131 588/973/131 586/967/131 -f 603/974/104 606/975/104 601/968/104 -f 594/958/105 599/976/105 598/977/105 -f 589/978/132 590/979/132 588/973/132 -f 585/980/104 583/981/104 591/982/104 -f 576/983/102 594/958/102 577/957/102 -f 591/984/133 592/985/133 590/979/133 -f 610/986/106 609/938/106 611/946/106 -f 611/946/134 614/987/134 610/986/134 -f 593/988/135 578/944/135 592/985/135 -f 584/989/102 588/990/102 592/991/102 -f 616/992/109 619/993/109 617/994/109 -f 608/936/106 616/995/106 617/994/106 -f 608/936/102 619/993/102 615/996/102 -f 610/986/111 618/997/111 616/998/111 -f 620/999/105 623/1000/105 621/1001/105 -f 613/1002/136 622/1003/136 612/1004/136 -f 609/938/106 621/1005/106 611/946/106 -f 609/938/102 622/1003/102 620/999/102 -f 626/1006/104 624/1007/104 625/1008/104 -f 642/1009/103 640/1010/103 641/1011/103 -f 625/1008/109 630/1012/109 631/1013/109 -f 626/1006/105 628/1014/105 627/1015/105 -f 625/1008/137 629/1016/137 626/1006/137 -f 627/1015/103 630/1017/103 624/1007/103 -f 638/1018/103 636/1019/103 637/1020/103 -f 634/1021/105 639/1022/105 635/1023/105 -f 633/1024/109 637/1025/109 632/1026/109 -f 635/1023/104 638/1018/104 633/1024/104 -f 632/1027/102 636/1028/102 634/1021/102 -f 644/1029/106 646/1030/106 645/1031/106 -f 646/1030/104 643/1032/104 642/1009/104 -f 644/1033/102 641/1034/102 640/1035/102 -f 647/1036/105 640/1035/105 643/1032/105 -f 645/1037/109 642/1009/109 641/1038/109 -f 654/1039/102 656/1040/102 652/1041/102 -f 650/1042/102 652/1041/102 648/1043/102 -f 651/1044/106 654/1045/106 650/1046/106 -f 651/1044/104 653/1047/104 655/1048/104 -f 648/1043/138 653/1047/138 649/1049/138 -f 658/1050/109 657/1051/109 656/1040/109 -f 655/1048/139 658/1052/139 654/1045/139 -f 655/1048/104 657/1051/104 659/1053/104 -f 652/1041/138 657/1051/138 653/1047/138 -f 666/1054/102 668/1055/102 670/1056/102 -f 662/1057/102 664/1058/102 666/1054/102 -f 662/1057/106 667/1059/106 663/1060/106 -f 663/1061/104 665/1062/104 661/1063/104 -f 661/1063/140 664/1058/140 660/1064/140 -f 669/1065/105 670/1066/105 668/1055/105 -f 666/1054/141 671/1067/141 667/1059/141 -f 667/1068/104 669/1065/104 665/1062/104 -f 665/1062/140 668/1055/140 664/1058/140 -f 673/1069/125 674/1070/125 672/1071/125 -f 675/1072/127 676/1073/127 674/1070/127 -f 677/1074/129 678/1075/129 676/1076/129 -f 679/1077/130 680/1078/130 678/1075/130 -f 681/1079/131 682/1080/131 680/1078/131 -f 683/1081/132 684/1082/132 682/1080/132 -f 679/1083/104 677/1084/104 685/1085/104 -f 685/1086/133 686/1087/133 684/1082/133 -f 687/1088/135 672/1071/135 686/1087/135 -f 678/1089/102 682/1090/102 686/1091/102 -f 694/1092/109 692/1093/109 693/1094/109 -f 690/1095/103 695/1096/103 691/1097/103 -f 689/1098/106 693/1094/106 688/1099/106 -f 691/1100/104 694/1092/104 689/1101/104 -f 688/1102/102 692/1093/102 690/1103/102 -f 708/1104/122 719/1105/122 711/1106/122 -f 705/1107/102 712/1108/102 704/1109/102 -f 703/1110/104 710/1111/104 701/1112/104 -f 700/1113/102 708/1114/102 702/1115/102 -f 699/1116/104 706/1117/104 697/1118/104 -f 696/1119/102 704/1109/102 698/1120/102 -f 702/1121/105 711/1106/105 703/1110/105 -f 701/1112/109 709/1122/109 700/1113/109 -f 698/1123/105 707/1124/105 699/1116/105 -f 697/1118/109 705/1107/109 696/1119/109 -f 717/1125/102 724/1126/102 716/1127/102 -f 719/1105/104 726/1128/104 718/1129/104 -f 710/1111/121 717/1125/121 709/1122/121 -f 704/1130/122 715/1131/122 707/1124/122 -f 706/1117/121 713/1132/121 705/1107/121 -f 710/1111/104 719/1105/104 718/1129/104 -f 709/1122/102 716/1127/102 708/1114/102 -f 706/1117/104 715/1131/104 714/1133/104 -f 722/1134/103 720/1135/103 721/1136/103 -f 726/1128/103 724/1137/103 725/1138/103 -f 715/1131/104 722/1134/104 714/1133/104 -f 713/1132/102 720/1139/102 712/1108/102 -f 716/1140/105 727/1141/105 719/1105/105 -f 718/1129/109 725/1138/109 717/1125/109 -f 712/1142/105 723/1143/105 715/1131/105 -f 714/1133/109 721/1136/109 713/1132/109 -f 745/1144/142 748/1145/142 744/1146/142 -f 732/1147/143 729/1148/143 730/1149/143 -f 730/1149/144 733/1150/144 732/1147/144 -f 743/1151/145 750/1152/145 742/1153/145 -f 740/1154/143 744/1146/143 738/1155/143 -f 732/1147/104 735/1156/104 734/1157/104 -f 729/1158/146 746/1159/146 745/1144/146 -f 740/1154/143 729/1158/143 745/1144/143 -f 735/1156/147 736/1160/147 734/1157/147 -f 750/1152/104 757/1161/104 751/1162/104 -f 738/1155/143 743/1151/143 736/1160/143 -f 737/1163/148 738/1155/148 736/1160/148 -f 739/1164/143 737/1165/143 735/1166/143 -f 729/1148/149 751/1162/149 747/1167/149 -f 739/1168/102 740/1154/102 738/1155/102 -f 743/1151/150 748/1145/150 749/1169/150 -f 734/1157/143 728/1170/143 732/1147/143 -f 741/1171/151 730/1172/151 740/1154/151 -f 734/1157/143 743/1151/143 742/1153/143 -f 742/1153/152 751/1162/152 728/1170/152 -f 755/1173/153 754/1174/153 752/1175/153 -f 748/1145/148 755/1176/148 749/1169/148 -f 747/1177/151 752/1178/151 746/1159/151 -f 747/1167/144 757/1161/144 753/1179/144 -f 750/1152/147 755/1176/147 756/1180/147 -f 748/1145/102 752/1178/102 754/1181/102 -f 775/1182/154 778/1183/154 774/1184/154 -f 762/1185/155 759/1186/155 760/1187/155 -f 760/1187/156 763/1188/156 762/1185/156 -f 773/1189/157 780/1190/157 772/1191/157 -f 770/1192/155 774/1184/155 768/1193/155 -f 763/1188/104 764/1194/104 762/1185/104 -f 759/1195/158 776/1196/158 775/1182/158 -f 760/1197/155 775/1182/155 770/1192/155 -f 765/1198/159 766/1199/159 764/1194/159 -f 781/1200/104 786/1201/104 787/1202/104 -f 768/1193/155 773/1189/155 766/1199/155 -f 766/1199/160 769/1203/160 768/1193/160 -f 767/1204/155 765/1205/155 761/1206/155 -f 759/1186/161 781/1200/161 777/1207/161 -f 768/1193/102 771/1208/102 770/1192/102 -f 773/1189/162 778/1183/162 779/1209/162 -f 762/1185/155 772/1191/155 758/1210/155 -f 771/1208/163 760/1197/163 770/1192/163 -f 764/1194/155 773/1189/155 772/1191/155 -f 758/1210/164 780/1190/164 781/1200/164 -f 785/1211/165 784/1212/165 782/1213/165 -f 779/1209/160 784/1214/160 785/1215/160 -f 777/1216/163 782/1217/163 776/1196/163 -f 777/1207/156 787/1202/156 783/1218/156 -f 779/1209/159 786/1201/159 780/1190/159 -f 776/1196/102 784/1214/102 778/1183/102 -f 618/997/166 610/986/166 614/987/166 -f 623/947/110 611/946/110 621/1219/110 -f 458/746/102 522/907/102 526/747/102 -f 510/749/103 526/882/103 529/750/103 -f 529/752/104 525/908/104 509/753/104 -f 514/755/103 528/1220/103 531/756/103 -f 471/758/103 475/801/103 476/759/103 -f 469/761/105 470/765/105 467/762/105 -f 465/764/106 467/762/106 470/765/106 -f 464/767/103 469/761/103 468/763/103 -f 490/769/107 494/818/107 493/770/107 -f 489/772/108 492/809/108 491/773/108 -f 474/775/106 478/778/106 477/776/106 -f 476/759/109 475/801/109 477/776/109 -f 472/779/103 481/797/103 479/780/103 -f 466/782/106 480/792/106 482/783/106 -f 463/785/103 483/804/103 485/786/103 -f 473/788/106 486/791/106 484/789/106 -f 485/786/102 483/804/102 484/789/102 -f 479/780/104 481/797/104 482/783/104 -f 479/780/110 480/792/110 470/765/110 -f 478/796/111 482/783/111 481/797/111 -f 485/786/112 486/791/112 477/776/112 -f 467/762/113 484/789/113 483/804/113 -f 487/806/114 495/810/114 496/807/114 -f 488/811/117 498/817/117 499/812/117 -f 490/814/117 497/1221/117 501/815/117 -f 502/819/109 505/1222/109 462/820/109 -f 456/822/102 503/824/102 502/819/102 -f 457/823/105 504/826/105 503/824/105 -f 462/825/104 505/1223/104 504/826/104 -f 506/827/102 524/837/102 528/828/102 -f 527/830/104 523/836/104 461/831/104 -f 530/833/103 527/883/103 513/834/103 -f 526/747/105 522/907/105 523/836/105 -f 524/837/105 525/908/105 529/752/105 -f 518/838/103 532/876/103 533/839/103 -f 520/841/103 534/878/103 535/842/103 -f 537/844/104 541/885/104 512/845/104 -f 541/847/103 544/866/103 518/848/103 -f 521/850/103 545/868/103 542/851/103 -f 539/853/104 543/1224/104 516/854/104 -f 511/856/102 540/1225/102 536/857/102 -f 543/859/103 540/1226/103 511/860/103 -f 515/862/102 542/884/102 538/863/102 -f 532/871/111 544/866/111 552/872/111 -f 533/839/110 549/877/110 546/874/110 -f 535/842/112 551/881/112 553/875/112 -f 532/876/104 548/887/104 549/877/104 -f 534/878/113 531/756/113 547/879/113 -f 534/878/102 550/880/102 551/881/102 -f 527/883/105 530/833/105 546/874/105 -f 546/874/105 547/879/105 529/750/105 -f 547/879/105 531/756/105 528/1220/105 -f 528/1220/105 529/750/105 547/879/105 -f 529/750/105 526/882/105 546/874/105 -f 542/884/109 543/1224/109 539/853/109 -f 536/857/109 540/1225/109 541/885/109 -f 544/866/109 541/847/109 552/872/109 -f 541/847/109 540/1226/109 552/872/109 -f 543/859/109 542/851/109 553/875/109 -f 542/851/109 545/868/109 553/875/109 -f 552/872/109 540/1226/109 543/859/109 -f 550/880/106 556/1227/106 557/886/106 -f 548/887/106 554/1228/106 555/888/106 -f 546/874/120 555/889/120 556/890/120 -f 553/875/121 557/891/121 554/892/121 -f 561/893/104 560/910/104 460/894/104 -f 507/896/102 563/909/102 562/897/102 -f 459/899/102 559/905/102 558/900/102 -f 565/902/104 564/906/104 508/903/104 -f 559/905/103 560/910/103 561/893/103 -f 562/897/103 563/909/103 564/906/103 -f 522/907/122 558/900/122 561/893/122 -f 562/897/122 565/902/122 525/908/122 -f 539/853/123 564/906/123 563/909/123 -f 560/910/123 559/905/123 536/857/123 -f 455/919/103 462/1229/103 457/823/103 -f 568/920/105 569/1230/105 567/921/105 -f 568/923/103 570/934/103 571/924/103 -f 569/928/104 571/1231/104 575/926/104 -f 575/926/104 574/929/104 567/927/104 -f 574/929/106 573/933/106 566/930/106 -f 574/929/109 575/926/109 572/932/109 -f 570/934/123 572/932/123 575/926/123 -f 568/920/102 566/922/102 572/932/102 -f 566/922/102 573/933/102 572/932/102 -f 608/936/102 615/996/102 612/937/102 -f 615/939/124 619/993/124 618/940/124 -f 579/942/125 581/951/125 580/943/125 -f 595/948/103 576/983/103 597/949/103 -f 581/951/127 583/1232/127 582/952/127 -f 602/953/105 605/963/105 604/954/105 -f 598/956/128 596/1233/128 577/957/128 -f 583/959/129 585/966/129 584/960/129 -f 600/962/102 607/969/102 605/963/102 -f 597/964/109 576/983/109 577/957/109 -f 585/966/130 587/972/130 586/967/130 -f 601/968/109 606/975/109 607/969/109 -f 612/937/103 615/996/103 614/970/103 -f 587/972/131 589/978/131 588/973/131 -f 603/974/104 604/1234/104 606/975/104 -f 594/958/105 595/948/105 599/976/105 -f 589/978/132 591/984/132 590/979/132 -f 583/981/104 581/1235/104 579/1236/104 -f 579/1236/104 593/1237/104 583/981/104 -f 593/1237/104 591/982/104 583/981/104 -f 591/982/104 589/1238/104 587/1239/104 -f 587/1239/104 585/980/104 591/982/104 -f 576/983/102 595/948/102 594/958/102 -f 591/984/133 593/988/133 592/985/133 -f 610/986/106 608/936/106 609/938/106 -f 611/946/134 613/945/134 614/987/134 -f 593/988/135 579/942/135 578/944/135 -f 592/991/102 578/1240/102 580/1241/102 -f 580/1241/102 582/1242/102 584/989/102 -f 584/989/102 586/1243/102 588/990/102 -f 588/990/102 590/1244/102 592/991/102 -f 592/991/102 580/1241/102 584/989/102 -f 616/992/109 618/940/109 619/993/109 -f 608/936/106 610/986/106 616/995/106 -f 608/936/102 617/994/102 619/993/102 -f 620/999/105 622/1003/105 623/1000/105 -f 613/1002/136 623/1000/136 622/1003/136 -f 609/938/106 620/999/106 621/1005/106 -f 609/938/102 612/937/102 622/1003/102 -f 626/1006/104 627/1015/104 624/1007/104 -f 642/1009/103 643/1032/103 640/1010/103 -f 625/1008/109 624/1007/109 630/1012/109 -f 626/1006/105 629/1245/105 628/1014/105 -f 625/1008/137 631/1246/137 629/1016/137 -f 627/1015/103 628/1247/103 630/1017/103 -f 638/1018/103 639/1022/103 636/1019/103 -f 634/1021/105 636/1028/105 639/1022/105 -f 633/1024/109 638/1018/109 637/1025/109 -f 635/1023/104 639/1022/104 638/1018/104 -f 632/1027/102 637/1248/102 636/1028/102 -f 644/1029/106 647/1036/106 646/1030/106 -f 646/1030/104 647/1036/104 643/1032/104 -f 644/1033/102 645/1249/102 641/1034/102 -f 647/1036/105 644/1033/105 640/1035/105 -f 645/1037/109 646/1030/109 642/1009/109 -f 654/1039/102 658/1250/102 656/1040/102 -f 650/1042/102 654/1039/102 652/1041/102 -f 651/1044/106 655/1048/106 654/1045/106 -f 651/1044/104 649/1049/104 653/1047/104 -f 648/1043/138 652/1041/138 653/1047/138 -f 658/1050/109 659/1251/109 657/1051/109 -f 655/1048/139 659/1053/139 658/1052/139 -f 655/1048/104 653/1047/104 657/1051/104 -f 652/1041/138 656/1040/138 657/1051/138 -f 666/1054/102 664/1058/102 668/1055/102 -f 662/1057/102 660/1064/102 664/1058/102 -f 662/1057/106 666/1054/106 667/1059/106 -f 663/1061/104 667/1068/104 665/1062/104 -f 661/1063/140 665/1062/140 664/1058/140 -f 669/1065/105 671/1252/105 670/1066/105 -f 666/1054/141 670/1056/141 671/1067/141 -f 667/1068/104 671/1253/104 669/1065/104 -f 665/1062/140 669/1065/140 668/1055/140 -f 673/1069/125 675/1072/125 674/1070/125 -f 675/1072/127 677/1254/127 676/1073/127 -f 677/1074/129 679/1077/129 678/1075/129 -f 679/1077/130 681/1079/130 680/1078/130 -f 681/1079/131 683/1081/131 682/1080/131 -f 683/1081/132 685/1086/132 684/1082/132 -f 677/1084/104 675/1255/104 673/1256/104 -f 673/1256/104 687/1257/104 677/1084/104 -f 687/1257/104 685/1085/104 677/1084/104 -f 685/1085/104 683/1258/104 681/1259/104 -f 681/1259/104 679/1083/104 685/1085/104 -f 685/1086/133 687/1088/133 686/1087/133 -f 687/1088/135 673/1069/135 672/1071/135 -f 686/1091/102 672/1260/102 674/1261/102 -f 674/1261/102 676/1262/102 678/1089/102 -f 678/1089/102 680/1263/102 682/1090/102 -f 682/1090/102 684/1264/102 686/1091/102 -f 686/1091/102 674/1261/102 678/1089/102 -f 694/1092/109 695/1096/109 692/1093/109 -f 690/1095/103 692/1093/103 695/1096/103 -f 689/1098/106 694/1092/106 693/1094/106 -f 691/1100/104 695/1096/104 694/1092/104 -f 688/1102/102 693/1094/102 692/1093/102 -f 708/1104/122 716/1140/122 719/1105/122 -f 705/1107/102 713/1132/102 712/1108/102 -f 703/1110/104 711/1106/104 710/1111/104 -f 700/1113/102 709/1122/102 708/1114/102 -f 699/1116/104 707/1124/104 706/1117/104 -f 696/1119/102 705/1107/102 704/1109/102 -f 702/1121/105 708/1104/105 711/1106/105 -f 701/1112/109 710/1111/109 709/1122/109 -f 698/1123/105 704/1130/105 707/1124/105 -f 697/1118/109 706/1117/109 705/1107/109 -f 717/1125/102 725/1138/102 724/1126/102 -f 719/1105/104 727/1141/104 726/1128/104 -f 710/1111/121 718/1129/121 717/1125/121 -f 704/1130/122 712/1142/122 715/1131/122 -f 706/1117/121 714/1133/121 713/1132/121 -f 710/1111/104 711/1106/104 719/1105/104 -f 709/1122/102 717/1125/102 716/1127/102 -f 706/1117/104 707/1124/104 715/1131/104 -f 722/1134/103 723/1265/103 720/1135/103 -f 726/1128/103 727/1266/103 724/1137/103 -f 715/1131/104 723/1143/104 722/1134/104 -f 713/1132/102 721/1136/102 720/1139/102 -f 716/1140/105 724/1267/105 727/1141/105 -f 718/1129/109 726/1128/109 725/1138/109 -f 712/1142/105 720/1268/105 723/1143/105 -f 714/1133/109 722/1134/109 721/1136/109 -f 745/1144/142 746/1159/142 748/1145/142 -f 732/1147/143 728/1170/143 729/1148/143 -f 730/1149/144 731/1269/144 733/1150/144 -f 743/1151/167 749/1169/167 750/1152/167 -f 740/1154/143 745/1144/143 744/1146/143 -f 732/1147/104 733/1150/104 735/1156/104 -f 729/1158/146 747/1177/146 746/1159/146 -f 740/1154/143 730/1172/143 729/1158/143 -f 735/1156/147 737/1163/147 736/1160/147 -f 750/1152/104 756/1180/104 757/1161/104 -f 738/1155/143 744/1146/143 743/1151/143 -f 737/1163/148 739/1168/148 738/1155/148 -f 735/1166/143 733/1270/143 739/1164/143 -f 733/1270/143 731/1271/143 739/1164/143 -f 731/1271/143 741/1272/143 739/1164/143 -f 729/1148/149 728/1170/149 751/1162/149 -f 739/1168/102 741/1171/102 740/1154/102 -f 743/1151/168 744/1146/168 748/1145/168 -f 734/1157/143 742/1153/143 728/1170/143 -f 741/1171/151 731/1273/151 730/1172/151 -f 734/1157/143 736/1160/143 743/1151/143 -f 742/1153/152 750/1152/152 751/1162/152 -f 752/1175/153 753/1274/153 755/1173/153 -f 753/1274/153 757/1275/153 755/1173/153 -f 757/1275/153 756/1276/153 755/1173/153 -f 748/1145/148 754/1181/148 755/1176/148 -f 747/1177/151 753/1277/151 752/1178/151 -f 747/1167/144 751/1162/144 757/1161/144 -f 750/1152/147 749/1169/147 755/1176/147 -f 748/1145/102 746/1159/102 752/1178/102 -f 775/1182/154 776/1196/154 778/1183/154 -f 762/1185/155 758/1210/155 759/1186/155 -f 760/1187/156 761/1278/156 763/1188/156 -f 773/1189/157 779/1209/157 780/1190/157 -f 770/1192/155 775/1182/155 774/1184/155 -f 763/1188/104 765/1198/104 764/1194/104 -f 759/1195/158 777/1216/158 776/1196/158 -f 760/1197/155 759/1195/155 775/1182/155 -f 765/1198/159 767/1279/159 766/1199/159 -f 781/1200/104 780/1190/104 786/1201/104 -f 768/1193/155 774/1184/155 773/1189/155 -f 766/1199/160 767/1279/160 769/1203/160 -f 765/1205/155 763/1280/155 761/1206/155 -f 761/1206/155 771/1281/155 769/1282/155 -f 769/1282/155 767/1204/155 761/1206/155 -f 759/1186/161 758/1210/161 781/1200/161 -f 768/1193/102 769/1203/102 771/1208/102 -f 773/1189/162 774/1184/162 778/1183/162 -f 762/1185/155 764/1194/155 772/1191/155 -f 771/1208/163 761/1283/163 760/1197/163 -f 764/1194/155 766/1199/155 773/1189/155 -f 758/1210/164 772/1191/164 780/1190/164 -f 782/1213/165 783/1284/165 787/1285/165 -f 787/1285/165 786/1286/165 782/1213/165 -f 786/1286/165 785/1211/165 782/1213/165 -f 779/1209/160 778/1183/160 784/1214/160 -f 777/1216/163 783/1287/163 782/1217/163 -f 777/1207/156 781/1200/156 787/1202/156 -f 779/1209/159 785/1215/159 786/1201/159 -f 776/1196/102 782/1217/102 784/1214/102 +f 470/746/105 538/747/105 522/748/105 +f 522/749/106 541/750/106 529/751/106 +f 541/752/107 521/753/107 529/754/107 +f 526/755/106 543/756/106 532/757/106 +f 483/758/106 488/759/106 484/760/106 +f 480/761/108 482/762/108 479/763/108 +f 477/764/109 482/762/109 478/765/109 +f 476/766/106 480/761/106 475/767/106 +f 502/768/110 505/769/110 501/770/110 +f 501/771/111 503/772/111 499/773/111 +f 486/774/109 489/775/109 485/776/109 +f 490/777/112 487/778/112 489/775/112 +f 484/779/106 491/780/106 476/781/106 +f 478/782/109 494/783/109 486/784/109 +f 475/785/106 497/786/106 483/787/106 +f 485/788/109 496/789/109 477/790/109 +f 497/786/105 496/789/105 498/791/105 +f 491/780/107 494/783/107 492/792/107 +f 491/780/113 482/762/113 481/793/113 +f 476/766/106 491/794/106 481/793/106 +f 478/765/109 482/762/109 492/795/109 +f 486/784/109 494/783/109 490/796/109 +f 490/797/114 493/798/114 488/799/114 +f 484/779/106 488/800/106 493/798/106 +f 485/776/109 489/775/109 498/801/109 +f 487/778/115 498/791/115 489/775/115 +f 483/758/106 497/802/106 487/778/106 +f 477/790/109 496/789/109 479/803/109 +f 480/761/116 496/789/116 495/804/116 +f 475/785/106 480/805/106 495/804/106 +f 499/806/117 508/807/117 500/808/117 +f 501/771/118 505/769/118 504/809/118 +f 499/773/119 503/772/119 507/810/119 +f 500/811/120 511/812/120 509/813/120 +f 502/814/120 513/815/120 512/816/120 +f 500/808/121 508/807/121 510/817/121 +f 502/768/122 512/816/122 506/818/122 +f 467/819/112 517/820/112 474/821/112 +f 468/822/105 514/823/105 467/819/105 +f 469/824/108 515/825/108 468/822/108 +f 474/826/107 516/827/107 469/824/107 +f 518/828/105 540/829/105 526/830/105 +f 539/831/107 473/832/107 525/833/107 +f 542/834/106 525/835/106 531/836/106 +f 538/747/108 535/837/108 539/831/108 +f 540/829/108 537/838/108 541/752/108 +f 530/839/106 545/840/106 531/841/106 +f 532/842/106 547/843/106 533/844/106 +f 549/845/107 524/846/107 472/847/107 +f 553/848/106 530/849/106 524/850/106 +f 533/851/106 554/852/106 527/853/106 +f 551/854/107 528/855/107 520/856/107 +f 523/857/105 548/858/105 471/859/105 +f 555/860/106 523/861/106 528/862/106 +f 527/863/105 550/864/105 519/865/105 +f 544/866/106 530/849/106 556/867/106 +f 533/851/106 547/868/106 557/869/106 +f 532/757/106 543/756/106 546/870/106 +f 531/836/106 545/871/106 542/834/106 +f 544/872/114 564/873/114 560/874/114 +f 545/840/113 558/875/113 542/834/113 +f 547/843/115 565/876/115 557/869/115 +f 544/877/107 561/878/107 545/840/107 +f 546/879/116 559/880/116 562/881/116 +f 546/879/105 563/882/105 547/843/105 +f 538/883/108 539/884/108 558/875/108 +f 554/885/112 551/854/112 550/864/112 +f 549/845/112 552/886/112 553/887/112 +f 564/873/112 556/867/112 553/848/112 +f 562/881/109 569/888/109 563/882/109 +f 560/889/109 567/890/109 561/878/109 +f 561/878/123 567/891/123 558/875/123 +f 562/881/123 559/880/123 568/892/123 +f 558/875/123 568/892/123 559/880/123 +f 565/876/124 563/882/124 569/893/124 +f 564/873/124 566/894/124 560/874/124 +f 564/873/124 569/893/124 566/894/124 +f 573/895/107 472/896/107 473/897/107 +f 519/898/105 574/899/105 518/900/105 +f 471/901/105 570/902/105 470/903/105 +f 577/904/107 520/905/107 521/906/107 +f 571/907/106 573/895/106 570/902/106 +f 574/899/106 576/908/106 577/904/106 +f 534/909/125 573/895/125 535/837/125 +f 536/910/125 577/904/125 537/838/125 +f 550/864/126 576/908/126 575/911/126 +f 572/912/126 548/858/126 549/845/126 +f 471/859/105 548/858/105 571/913/105 +f 519/865/105 550/864/105 575/914/105 +f 520/856/107 576/915/107 551/854/107 +f 472/847/107 572/916/107 549/845/107 +f 473/832/107 535/837/107 573/917/107 +f 470/746/105 570/918/105 534/909/105 +f 521/753/107 537/838/107 577/919/107 +f 518/828/105 574/920/105 536/910/105 +f 467/921/106 469/824/106 468/822/106 +f 578/922/108 581/923/108 579/924/108 +f 580/925/106 583/926/106 581/927/106 +f 587/928/107 579/929/107 581/930/107 +f 586/931/109 578/932/109 579/933/109 +f 585/934/112 587/928/112 584/935/112 +f 583/926/126 584/935/126 587/928/126 +f 584/935/105 582/936/105 580/937/105 +f 620/938/105 624/939/105 621/940/105 +f 627/941/127 630/942/127 626/943/127 +f 590/944/128 593/945/128 592/946/128 +f 625/947/129 623/948/129 635/949/129 +f 607/950/106 609/951/106 611/952/106 +f 593/945/130 594/953/130 592/946/130 +f 614/954/108 616/955/108 615/956/108 +f 610/957/131 589/958/131 606/959/131 +f 595/960/132 596/961/132 594/962/132 +f 612/963/105 617/964/105 614/954/105 +f 609/965/112 589/958/112 608/966/112 +f 596/961/133 599/967/133 598/968/133 +f 613/969/112 619/970/112 612/963/112 +f 624/939/106 626/971/106 625/972/106 +f 598/968/134 601/973/134 600/974/134 +f 615/975/107 618/976/107 613/969/107 +f 606/959/108 611/977/108 610/978/108 +f 601/973/135 602/979/135 600/974/135 +f 599/980/107 597/981/107 595/982/107 +f 588/983/105 606/959/105 589/958/105 +f 603/984/136 604/985/136 602/979/136 +f 622/986/109 621/940/109 623/948/109 +f 623/948/137 626/987/137 622/986/137 +f 605/988/138 590/944/138 604/985/138 +f 596/989/105 600/990/105 604/991/105 +f 628/992/112 631/993/112 629/994/112 +f 620/938/109 628/995/109 629/994/109 +f 620/938/105 631/993/105 627/996/105 +f 622/986/114 630/997/114 628/998/114 +f 632/999/108 635/1000/108 633/1001/108 +f 624/1002/139 635/1000/139 634/1003/139 +f 621/940/109 633/1004/109 623/948/109 +f 621/940/105 634/1003/105 632/999/105 +f 638/1005/107 636/1006/107 637/1007/107 +f 654/1008/106 652/1009/106 653/1010/106 +f 637/1007/112 642/1011/112 643/1012/112 +f 638/1005/108 640/1013/108 639/1014/108 +f 637/1007/140 641/1015/140 638/1005/140 +f 639/1014/106 642/1016/106 636/1006/106 +f 650/1017/106 648/1018/106 649/1019/106 +f 646/1020/108 651/1021/108 647/1022/108 +f 645/1023/112 649/1024/112 644/1025/112 +f 647/1022/107 650/1017/107 645/1023/107 +f 644/1026/105 648/1027/105 646/1020/105 +f 656/1028/109 658/1029/109 657/1030/109 +f 658/1029/107 655/1031/107 654/1008/107 +f 656/1032/105 653/1033/105 652/1034/105 +f 659/1035/108 652/1034/108 655/1031/108 +f 653/1036/112 658/1029/112 654/1008/112 +f 666/1037/105 668/1038/105 664/1039/105 +f 662/1040/105 664/1039/105 660/1041/105 +f 663/1042/109 666/1043/109 662/1044/109 +f 663/1042/107 665/1045/107 667/1046/107 +f 660/1041/141 665/1045/141 661/1047/141 +f 668/1038/112 671/1048/112 669/1049/112 +f 667/1046/142 670/1050/142 666/1043/142 +f 667/1046/107 669/1049/107 671/1051/107 +f 664/1039/141 669/1049/141 665/1045/141 +f 678/1052/105 680/1053/105 682/1054/105 +f 674/1055/105 676/1056/105 678/1052/105 +f 674/1055/109 679/1057/109 675/1058/109 +f 675/1059/107 677/1060/107 673/1061/107 +f 673/1061/143 676/1056/143 672/1062/143 +f 680/1053/108 683/1063/108 682/1064/108 +f 678/1052/144 683/1065/144 679/1057/144 +f 679/1066/107 681/1067/107 677/1060/107 +f 676/1056/143 681/1067/143 680/1053/143 +f 684/1068/128 687/1069/128 686/1070/128 +f 686/1070/130 689/1071/130 688/1072/130 +f 689/1073/132 690/1074/132 688/1075/132 +f 691/1076/133 692/1077/133 690/1074/133 +f 693/1078/134 694/1079/134 692/1077/134 +f 695/1080/135 696/1081/135 694/1079/135 +f 691/1082/107 689/1083/107 697/1084/107 +f 697/1085/136 698/1086/136 696/1081/136 +f 698/1086/138 685/1087/138 684/1068/138 +f 698/1088/105 686/1089/105 690/1090/105 +f 706/1091/112 704/1092/112 705/1093/112 +f 702/1094/106 707/1095/106 703/1096/106 +f 701/1097/109 705/1093/109 700/1098/109 +f 703/1099/107 706/1091/107 701/1100/107 +f 700/1101/105 704/1092/105 702/1102/105 +f 723/1103/125 728/1104/125 731/1105/125 +f 717/1106/105 724/1107/105 716/1108/105 +f 715/1109/107 722/1110/107 713/1111/107 +f 712/1112/105 720/1113/105 714/1114/105 +f 711/1115/107 718/1116/107 709/1117/107 +f 708/1118/105 716/1108/105 710/1119/105 +f 715/1109/108 720/1120/108 723/1103/108 +f 713/1111/112 721/1121/112 712/1112/112 +f 711/1115/108 716/1122/108 719/1123/108 +f 709/1117/112 717/1106/112 708/1118/112 +f 729/1124/105 736/1125/105 728/1126/105 +f 731/1105/107 738/1127/107 730/1128/107 +f 721/1121/124 730/1128/124 729/1124/124 +f 716/1122/125 727/1129/125 719/1123/125 +f 718/1116/124 725/1130/124 717/1106/124 +f 722/1110/107 731/1105/107 730/1128/107 +f 721/1121/105 728/1126/105 720/1113/105 +f 718/1116/107 727/1129/107 726/1131/107 +f 734/1132/106 732/1133/106 733/1134/106 +f 738/1127/106 736/1135/106 737/1136/106 +f 727/1129/107 734/1132/107 726/1131/107 +f 725/1130/105 732/1137/105 724/1107/105 +f 731/1105/108 736/1138/108 739/1139/108 +f 730/1128/112 737/1136/112 729/1124/112 +f 724/1140/108 735/1141/108 727/1129/108 +f 726/1131/112 733/1134/112 725/1130/112 +f 756/1142/145 758/1143/145 760/1144/145 +f 744/1145/146 741/1146/146 742/1147/146 +f 742/1147/147 745/1148/147 744/1145/147 +f 754/1149/148 761/1150/148 762/1151/148 +f 750/1152/146 757/1153/146 756/1142/146 +f 745/1148/107 746/1154/107 744/1145/107 +f 741/1155/149 758/1143/149 757/1153/149 +f 752/1156/146 741/1155/146 757/1153/146 +f 746/1154/150 749/1157/150 748/1158/150 +f 762/1151/107 769/1159/107 763/1160/107 +f 750/1152/146 755/1161/146 748/1158/146 +f 748/1158/151 751/1162/151 750/1152/151 +f 743/1163/146 751/1164/146 747/1165/146 +f 741/1146/152 763/1160/152 759/1166/152 +f 750/1152/105 753/1167/105 752/1156/105 +f 755/1161/153 760/1144/153 761/1150/153 +f 744/1145/146 754/1149/146 740/1168/146 +f 753/1167/154 742/1169/154 752/1156/154 +f 746/1154/146 755/1161/146 754/1149/146 +f 754/1149/155 763/1160/155 740/1168/155 +f 767/1170/156 766/1171/156 764/1172/156 +f 760/1144/151 767/1173/151 761/1150/151 +f 758/1143/154 765/1174/154 764/1175/154 +f 759/1166/147 769/1159/147 765/1176/147 +f 761/1150/150 768/1177/150 762/1151/150 +f 760/1144/105 764/1175/105 766/1178/105 +f 786/1179/157 788/1180/157 790/1181/157 +f 774/1182/158 771/1183/158 772/1184/158 +f 773/1185/159 774/1182/159 772/1184/159 +f 785/1186/160 792/1187/160 784/1188/160 +f 782/1189/158 786/1179/158 780/1190/158 +f 774/1182/107 777/1191/107 776/1192/107 +f 771/1193/161 788/1180/161 787/1194/161 +f 772/1195/158 787/1194/158 782/1189/158 +f 777/1191/162 778/1196/162 776/1192/162 +f 793/1197/107 798/1198/107 799/1199/107 +f 780/1190/158 785/1186/158 778/1196/158 +f 778/1196/163 781/1200/163 780/1190/163 +f 779/1201/158 777/1202/158 773/1203/158 +f 771/1183/164 793/1197/164 789/1204/164 +f 781/1200/105 782/1189/105 780/1190/105 +f 785/1186/165 790/1181/165 791/1205/165 +f 774/1182/158 784/1188/158 770/1206/158 +f 783/1207/166 772/1195/166 782/1189/166 +f 776/1192/158 785/1186/158 784/1188/158 +f 784/1188/167 793/1197/167 770/1206/167 +f 796/1208/168 794/1209/168 799/1210/168 +f 790/1181/163 797/1211/163 791/1205/163 +f 788/1180/166 795/1212/166 794/1213/166 +f 789/1204/159 799/1199/159 795/1214/159 +f 791/1205/162 798/1198/162 792/1187/162 +f 790/1181/105 794/1213/105 796/1215/105 +f 630/997/169 622/986/169 626/987/169 +f 635/949/113 623/948/113 633/1216/113 +f 470/746/105 534/909/105 538/747/105 +f 522/749/106 538/883/106 541/750/106 +f 541/752/107 537/838/107 521/753/107 +f 526/755/106 540/1217/106 543/756/106 +f 483/758/106 487/778/106 488/759/106 +f 480/761/108 481/793/108 482/762/108 +f 477/764/109 479/763/109 482/762/109 +f 476/766/106 481/793/106 480/761/106 +f 502/768/110 506/818/110 505/769/110 +f 501/771/111 504/809/111 503/772/111 +f 486/774/109 490/777/109 489/775/109 +f 490/777/112 488/759/112 487/778/112 +f 484/779/106 493/798/106 491/780/106 +f 478/782/109 492/792/109 494/783/109 +f 475/785/106 495/804/106 497/786/106 +f 485/788/109 498/791/109 496/789/109 +f 497/786/105 495/804/105 496/789/105 +f 491/780/107 493/798/107 494/783/107 +f 491/780/113 492/792/113 482/762/113 +f 490/797/114 494/783/114 493/798/114 +f 487/778/115 497/786/115 498/791/115 +f 480/761/116 479/763/116 496/789/116 +f 499/806/117 507/810/117 508/807/117 +f 500/811/120 510/817/120 511/812/120 +f 502/814/120 509/1218/120 513/815/120 +f 467/819/112 514/823/112 517/820/112 +f 468/822/105 515/825/105 514/823/105 +f 469/824/108 516/827/108 515/825/108 +f 474/826/107 517/1219/107 516/827/107 +f 518/828/105 536/910/105 540/829/105 +f 539/831/107 535/837/107 473/832/107 +f 542/834/106 539/884/106 525/835/106 +f 538/747/108 534/909/108 535/837/108 +f 540/829/108 536/910/108 537/838/108 +f 530/839/106 544/877/106 545/840/106 +f 532/842/106 546/879/106 547/843/106 +f 549/845/107 553/887/107 524/846/107 +f 553/848/106 556/867/106 530/849/106 +f 533/851/106 557/869/106 554/852/106 +f 551/854/107 555/1220/107 528/855/107 +f 523/857/105 552/886/105 548/858/105 +f 555/860/106 552/1221/106 523/861/106 +f 527/863/105 554/885/105 550/864/105 +f 544/872/114 556/867/114 564/873/114 +f 545/840/113 561/878/113 558/875/113 +f 547/843/115 563/882/115 565/876/115 +f 544/877/107 560/889/107 561/878/107 +f 546/879/116 543/756/116 559/880/116 +f 546/879/105 562/881/105 563/882/105 +f 539/884/108 542/834/108 558/875/108 +f 558/875/108 559/880/108 541/750/108 +f 559/880/108 543/756/108 540/1217/108 +f 541/750/108 559/880/108 540/1217/108 +f 541/750/108 538/883/108 558/875/108 +f 554/885/112 555/1220/112 551/854/112 +f 549/845/112 548/858/112 552/886/112 +f 553/848/112 552/1221/112 564/873/112 +f 552/1221/112 555/860/112 564/873/112 +f 555/860/112 554/852/112 565/876/112 +f 554/852/112 557/869/112 565/876/112 +f 565/876/112 564/873/112 555/860/112 +f 562/881/109 568/1222/109 569/888/109 +f 560/889/109 566/1223/109 567/890/109 +f 558/875/123 567/891/123 568/892/123 +f 564/873/124 565/876/124 569/893/124 +f 573/895/107 572/912/107 472/896/107 +f 519/898/105 575/911/105 574/899/105 +f 471/901/105 571/907/105 570/902/105 +f 577/904/107 576/908/107 520/905/107 +f 571/907/106 572/912/106 573/895/106 +f 574/899/106 575/911/106 576/908/106 +f 534/909/125 570/902/125 573/895/125 +f 536/910/125 574/899/125 577/904/125 +f 550/864/126 551/854/126 576/908/126 +f 572/912/126 571/907/126 548/858/126 +f 467/921/106 474/1224/106 469/824/106 +f 578/922/108 580/937/108 581/923/108 +f 580/925/106 582/1225/106 583/926/106 +f 581/930/107 583/1226/107 587/928/107 +f 587/928/107 586/931/107 579/929/107 +f 586/931/109 585/934/109 578/932/109 +f 585/934/112 586/931/112 587/928/112 +f 583/926/126 582/1225/126 584/935/126 +f 580/937/105 578/922/105 584/935/105 +f 578/922/105 585/934/105 584/935/105 +f 620/938/105 627/996/105 624/939/105 +f 627/941/127 631/993/127 630/942/127 +f 590/944/128 591/1227/128 593/945/128 +f 607/950/106 588/983/106 609/951/106 +f 593/945/130 595/1228/130 594/953/130 +f 614/954/108 617/964/108 616/955/108 +f 610/957/131 608/1229/131 589/958/131 +f 595/960/132 597/1230/132 596/961/132 +f 612/963/105 619/970/105 617/964/105 +f 609/965/112 588/983/112 589/958/112 +f 596/961/133 597/1230/133 599/967/133 +f 613/969/112 618/976/112 619/970/112 +f 624/939/106 627/996/106 626/971/106 +f 598/968/134 599/967/134 601/973/134 +f 615/975/107 616/1231/107 618/976/107 +f 606/959/108 607/950/108 611/977/108 +f 601/973/135 603/984/135 602/979/135 +f 595/982/107 593/1232/107 603/1233/107 +f 593/1232/107 591/1234/107 603/1233/107 +f 591/1234/107 605/1235/107 603/1233/107 +f 603/1233/107 601/1236/107 595/982/107 +f 601/1236/107 599/980/107 595/982/107 +f 588/983/105 607/950/105 606/959/105 +f 603/984/136 605/988/136 604/985/136 +f 622/986/109 620/938/109 621/940/109 +f 623/948/137 625/947/137 626/987/137 +f 605/988/138 591/1227/138 590/944/138 +f 604/991/105 590/1237/105 592/1238/105 +f 592/1238/105 594/1239/105 596/989/105 +f 596/989/105 598/1240/105 600/990/105 +f 600/990/105 602/1241/105 604/991/105 +f 604/991/105 592/1238/105 596/989/105 +f 628/992/112 630/942/112 631/993/112 +f 620/938/109 622/986/109 628/995/109 +f 620/938/105 629/994/105 631/993/105 +f 632/999/108 634/1003/108 635/1000/108 +f 624/1002/139 625/1242/139 635/1000/139 +f 621/940/109 632/999/109 633/1004/109 +f 621/940/105 624/939/105 634/1003/105 +f 638/1005/107 639/1014/107 636/1006/107 +f 654/1008/106 655/1031/106 652/1009/106 +f 637/1007/112 636/1006/112 642/1011/112 +f 638/1005/108 641/1243/108 640/1013/108 +f 637/1007/140 643/1244/140 641/1015/140 +f 639/1014/106 640/1245/106 642/1016/106 +f 650/1017/106 651/1021/106 648/1018/106 +f 646/1020/108 648/1027/108 651/1021/108 +f 645/1023/112 650/1017/112 649/1024/112 +f 647/1022/107 651/1021/107 650/1017/107 +f 644/1026/105 649/1246/105 648/1027/105 +f 656/1028/109 659/1035/109 658/1029/109 +f 658/1029/107 659/1035/107 655/1031/107 +f 656/1032/105 657/1247/105 653/1033/105 +f 659/1035/108 656/1032/108 652/1034/108 +f 653/1036/112 657/1248/112 658/1029/112 +f 666/1037/105 670/1249/105 668/1038/105 +f 662/1040/105 666/1037/105 664/1039/105 +f 663/1042/109 667/1046/109 666/1043/109 +f 663/1042/107 661/1047/107 665/1045/107 +f 660/1041/141 664/1039/141 665/1045/141 +f 668/1038/112 670/1250/112 671/1048/112 +f 667/1046/142 671/1051/142 670/1050/142 +f 667/1046/107 665/1045/107 669/1049/107 +f 664/1039/141 668/1038/141 669/1049/141 +f 678/1052/105 676/1056/105 680/1053/105 +f 674/1055/105 672/1062/105 676/1056/105 +f 674/1055/109 678/1052/109 679/1057/109 +f 675/1059/107 679/1066/107 677/1060/107 +f 673/1061/143 677/1060/143 676/1056/143 +f 680/1053/108 681/1067/108 683/1063/108 +f 678/1052/144 682/1054/144 683/1065/144 +f 679/1066/107 683/1251/107 681/1067/107 +f 676/1056/143 677/1060/143 681/1067/143 +f 684/1068/128 685/1087/128 687/1069/128 +f 686/1070/130 687/1069/130 689/1071/130 +f 689/1073/132 691/1076/132 690/1074/132 +f 691/1076/133 693/1078/133 692/1077/133 +f 693/1078/134 695/1080/134 694/1079/134 +f 695/1080/135 697/1085/135 696/1081/135 +f 689/1083/107 687/1252/107 697/1084/107 +f 687/1252/107 685/1253/107 697/1084/107 +f 685/1253/107 699/1254/107 697/1084/107 +f 697/1084/107 695/1255/107 693/1256/107 +f 693/1256/107 691/1082/107 697/1084/107 +f 697/1085/136 699/1257/136 698/1086/136 +f 698/1086/138 699/1257/138 685/1087/138 +f 698/1088/105 684/1258/105 686/1089/105 +f 686/1089/105 688/1259/105 690/1090/105 +f 690/1090/105 692/1260/105 694/1261/105 +f 694/1261/105 696/1262/105 690/1090/105 +f 696/1262/105 698/1088/105 690/1090/105 +f 706/1091/112 707/1095/112 704/1092/112 +f 702/1094/106 704/1092/106 707/1095/106 +f 701/1097/109 706/1091/109 705/1093/109 +f 703/1099/107 707/1095/107 706/1091/107 +f 700/1101/105 705/1093/105 704/1092/105 +f 723/1103/125 720/1120/125 728/1104/125 +f 717/1106/105 725/1130/105 724/1107/105 +f 715/1109/107 723/1103/107 722/1110/107 +f 712/1112/105 721/1121/105 720/1113/105 +f 711/1115/107 719/1123/107 718/1116/107 +f 708/1118/105 717/1106/105 716/1108/105 +f 715/1109/108 714/1263/108 720/1120/108 +f 713/1111/112 722/1110/112 721/1121/112 +f 711/1115/108 710/1264/108 716/1122/108 +f 709/1117/112 718/1116/112 717/1106/112 +f 729/1124/105 737/1136/105 736/1125/105 +f 731/1105/107 739/1139/107 738/1127/107 +f 721/1121/124 722/1110/124 730/1128/124 +f 716/1122/125 724/1140/125 727/1129/125 +f 718/1116/124 726/1131/124 725/1130/124 +f 722/1110/107 723/1103/107 731/1105/107 +f 721/1121/105 729/1124/105 728/1126/105 +f 718/1116/107 719/1123/107 727/1129/107 +f 734/1132/106 735/1265/106 732/1133/106 +f 738/1127/106 739/1266/106 736/1135/106 +f 727/1129/107 735/1141/107 734/1132/107 +f 725/1130/105 733/1134/105 732/1137/105 +f 731/1105/108 728/1104/108 736/1138/108 +f 730/1128/112 738/1127/112 737/1136/112 +f 724/1140/108 732/1267/108 735/1141/108 +f 726/1131/112 734/1132/112 733/1134/112 +f 756/1142/145 757/1153/145 758/1143/145 +f 744/1145/146 740/1168/146 741/1146/146 +f 742/1147/147 743/1268/147 745/1148/147 +f 754/1149/148 755/1161/148 761/1150/148 +f 750/1152/146 752/1156/146 757/1153/146 +f 745/1148/107 747/1269/107 746/1154/107 +f 741/1155/149 759/1270/149 758/1143/149 +f 752/1156/146 742/1169/146 741/1155/146 +f 746/1154/150 747/1269/150 749/1157/150 +f 762/1151/107 768/1177/107 769/1159/107 +f 750/1152/146 756/1142/146 755/1161/146 +f 748/1158/151 749/1157/151 751/1162/151 +f 747/1165/146 745/1271/146 743/1163/146 +f 743/1163/146 753/1272/146 751/1164/146 +f 751/1164/146 749/1273/146 747/1165/146 +f 741/1146/152 740/1168/152 763/1160/152 +f 750/1152/105 751/1162/105 753/1167/105 +f 755/1161/153 756/1142/153 760/1144/153 +f 744/1145/146 746/1154/146 754/1149/146 +f 753/1167/154 743/1274/154 742/1169/154 +f 746/1154/146 748/1158/146 755/1161/146 +f 754/1149/155 762/1151/155 763/1160/155 +f 764/1172/156 765/1275/156 767/1170/156 +f 765/1275/156 769/1276/156 767/1170/156 +f 769/1276/156 768/1277/156 767/1170/156 +f 760/1144/151 766/1178/151 767/1173/151 +f 758/1143/154 759/1270/154 765/1174/154 +f 759/1166/147 763/1160/147 769/1159/147 +f 761/1150/150 767/1173/150 768/1177/150 +f 760/1144/105 758/1143/105 764/1175/105 +f 786/1179/157 787/1194/157 788/1180/157 +f 774/1182/158 770/1206/158 771/1183/158 +f 773/1185/159 775/1278/159 774/1182/159 +f 785/1186/160 791/1205/160 792/1187/160 +f 782/1189/158 787/1194/158 786/1179/158 +f 774/1182/107 775/1278/107 777/1191/107 +f 771/1193/161 789/1279/161 788/1180/161 +f 772/1195/158 771/1193/158 787/1194/158 +f 777/1191/162 779/1280/162 778/1196/162 +f 793/1197/107 792/1187/107 798/1198/107 +f 780/1190/158 786/1179/158 785/1186/158 +f 778/1196/163 779/1280/163 781/1200/163 +f 777/1202/158 775/1281/158 773/1203/158 +f 773/1203/158 783/1282/158 781/1283/158 +f 781/1283/158 779/1201/158 773/1203/158 +f 771/1183/164 770/1206/164 793/1197/164 +f 781/1200/105 783/1207/105 782/1189/105 +f 785/1186/165 786/1179/165 790/1181/165 +f 774/1182/158 776/1192/158 784/1188/158 +f 783/1207/166 773/1284/166 772/1195/166 +f 776/1192/158 778/1196/158 785/1186/158 +f 784/1188/167 792/1187/167 793/1197/167 +f 794/1209/168 795/1285/168 799/1210/168 +f 799/1210/168 798/1286/168 797/1287/168 +f 797/1287/168 796/1208/168 799/1210/168 +f 790/1181/163 796/1215/163 797/1211/163 +f 788/1180/166 789/1279/166 795/1212/166 +f 789/1204/159 793/1197/159 799/1199/159 +f 791/1205/162 797/1211/162 798/1198/162 +f 790/1181/105 788/1180/105 794/1213/105 From be51ae39d00acb049fb3b30db2c35e54ebb3cf92 Mon Sep 17 00:00:00 2001 From: Boblet Date: Thu, 7 Sep 2023 15:33:27 +0200 Subject: [PATCH 292/432] he make an big steppy --- .../inventory/recipes/ShredderRecipes.java | 6 +++--- src/main/java/com/hbm/items/ModItems.java | 8 +++++--- .../java/com/hbm/items/armor/ArmorFSB.java | 7 +++++++ .../com/hbm/main/ModEventHandlerClient.java | 19 +++++++++++++++++++ 4 files changed, 34 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java b/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java index 7faee9911..e4e3e68af 100644 --- a/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java @@ -353,16 +353,16 @@ public class ShredderRecipes extends SerializableRecipe { /* GC COMPAT */ Block gcMoonBlock = Compat.tryLoadBlock(Compat.MOD_GCC, "moonBlock"); - if(gcMoonBlock != null) { + if(gcMoonBlock != null && gcMoonBlock != Blocks.air) { ShredderRecipes.setRecipe(new ItemStack(gcMoonBlock, 1, 3), new ItemStack(ModBlocks.moon_turf)); //Moon dirt ShredderRecipes.setRecipe(new ItemStack(gcMoonBlock, 1, 5), new ItemStack(ModBlocks.moon_turf)); //Moon topsoil } /* AR COMPAT */ Block arMoonTurf = Compat.tryLoadBlock(Compat.MOD_AR, "turf"); - if(arMoonTurf != null) ShredderRecipes.setRecipe(arMoonTurf, new ItemStack(ModBlocks.moon_turf)); //i assume it's moon turf + if(arMoonTurf != null && gcMoonBlock != Blocks.air) ShredderRecipes.setRecipe(arMoonTurf, new ItemStack(ModBlocks.moon_turf)); //i assume it's moon turf Block arMoonTurfDark = Compat.tryLoadBlock(Compat.MOD_AR, "turfDark"); - if(arMoonTurfDark != null) ShredderRecipes.setRecipe(arMoonTurfDark, new ItemStack(ModBlocks.moon_turf)); //probably moon dirt? would have helped if i had ever played AR for more than 5 seconds + if(arMoonTurfDark != null && gcMoonBlock != Blocks.air) ShredderRecipes.setRecipe(arMoonTurfDark, new ItemStack(ModBlocks.moon_turf)); //probably moon dirt? would have helped if i had ever played AR for more than 5 seconds } /** diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index bf19e4b95..90b3279b0 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -4957,10 +4957,12 @@ public class ModItems { ArmorMaterial aMatTrench = EnumHelper.addArmorMaterial("HBM_TRENCH", 150, new int[] { 3, 8, 6, 3 }, 100); aMatTrench.customCraftingMaterial = ModItems.plate_iron; trenchmaster_helmet = new ArmorTrenchmaster(aMatTrench, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png") - .addEffect(new PotionEffect(Potion.damageBoost.id, 20, 9)) - .addEffect(new PotionEffect(Potion.digSpeed.id, 20, 7)) - .addEffect(new PotionEffect(Potion.jump.id, 20, 2)) + .addEffect(new PotionEffect(Potion.damageBoost.id, 20, 2)) + .addEffect(new PotionEffect(Potion.digSpeed.id, 20, 1)) + .addEffect(new PotionEffect(Potion.jump.id, 20, 1)) + .addEffect(new PotionEffect(Potion.moveSpeed.id, 20, 0)) .enableVATS(true) + .setStepSize(1) .hides(EnumPlayerPart.HAT) .setUnlocalizedName("trenchmaster_helmet").setTextureName(RefStrings.MODID + ":trenchmaster_helmet"); trenchmaster_plate = new ArmorTrenchmaster(aMatTrench, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png").cloneStats((ArmorFSB) trenchmaster_helmet).setUnlocalizedName("trenchmaster_plate").setTextureName(RefStrings.MODID + ":trenchmaster_plate"); diff --git a/src/main/java/com/hbm/items/armor/ArmorFSB.java b/src/main/java/com/hbm/items/armor/ArmorFSB.java index 4e2e60571..3cacd975c 100644 --- a/src/main/java/com/hbm/items/armor/ArmorFSB.java +++ b/src/main/java/com/hbm/items/armor/ArmorFSB.java @@ -65,6 +65,7 @@ public class ArmorFSB extends ItemArmor implements IArmorDisableModel { public boolean hardLanding = false; public double gravity = 0; public int dashCount = 0; + public int stepSize = 0; public String step; public String jump; public String fall; @@ -158,6 +159,11 @@ public class ArmorFSB extends ItemArmor implements IArmorDisableModel { this.dashCount = dashCount; return this; } + + public ArmorFSB setStepSize(int stepSize) { + this.stepSize = stepSize; + return this; + } public ArmorFSB setStep(String step) { this.step = step; @@ -199,6 +205,7 @@ public class ArmorFSB extends ItemArmor implements IArmorDisableModel { this.hardLanding = original.hardLanding; this.gravity = original.gravity; this.dashCount = original.dashCount; + this.stepSize = original.stepSize; this.step = original.step; this.jump = original.jump; this.fall = original.fall; diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index bd54cf242..650c36270 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -953,6 +953,25 @@ public class ModEventHandlerClient { } } } + + if(event.phase == Phase.START) { + EntityPlayer player = mc.thePlayer; + + float discriminator = 0.003F; + float defaultStepSize = 0.5F; + int newStepSize = 0; + + if(player.inventory.armorInventory[2] != null && player.inventory.armorInventory[2].getItem() instanceof ArmorFSB) { + ArmorFSB plate = (ArmorFSB) player.inventory.armorInventory[2].getItem(); + if(plate.hasFSBArmor(player)) newStepSize = plate.stepSize; + } + + if(newStepSize > 0) { + player.stepHeight = newStepSize + discriminator; + } else { + for(int i = 1; i < 4; i++) if(player.stepHeight == i + discriminator) player.stepHeight = defaultStepSize; + } + } } @SideOnly(Side.CLIENT) From 3392ac21d9ea124848e32675ce01445e40f4218d Mon Sep 17 00:00:00 2001 From: Bob Date: Thu, 7 Sep 2023 21:56:08 +0200 Subject: [PATCH 293/432] telex hee hoo --- src/main/java/com/hbm/blocks/ModBlocks.java | 3 + .../com/hbm/blocks/network/RadioTelex.java | 31 +++++++ src/main/java/com/hbm/main/ClientProxy.java | 1 + .../java/com/hbm/main/ResourceManager.java | 6 ++ .../hbm/render/tileentity/RenderTelex.java | 57 ++++++++++++ .../java/com/hbm/tileentity/TileMappings.java | 1 + .../network/TileEntityRadioTelex.java | 7 ++ .../assets/hbm/models/machines/telex.obj | 86 ++++++++++++++++++ .../hbm/textures/gui/machine/gui_telex.png | Bin 0 -> 2760 bytes .../textures/models/{ => machines}/telex.png | Bin 10 files changed, 192 insertions(+) create mode 100644 src/main/java/com/hbm/blocks/network/RadioTelex.java create mode 100644 src/main/java/com/hbm/render/tileentity/RenderTelex.java create mode 100644 src/main/java/com/hbm/tileentity/network/TileEntityRadioTelex.java create mode 100644 src/main/resources/assets/hbm/models/machines/telex.obj create mode 100644 src/main/resources/assets/hbm/textures/gui/machine/gui_telex.png rename src/main/resources/assets/hbm/textures/models/{ => machines}/telex.png (100%) diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 5806db479..786f3da08 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -799,6 +799,7 @@ public class ModBlocks { public static Block radio_torch_sender; public static Block radio_torch_receiver; public static Block radio_torch_counter; + public static Block radio_telex; public static Block conveyor; //public static Block conveyor_classic; @@ -1972,6 +1973,7 @@ public class ModBlocks { radio_torch_sender = new RadioTorchSender().setBlockName("radio_torch_sender").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); radio_torch_receiver = new RadioTorchReceiver().setBlockName("radio_torch_receiver").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); radio_torch_counter = new RadioTorchCounter().setBlockName("radio_torch_counter").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rtty_counter"); + radio_telex = new RadioTelex().setBlockName("radio_telex").setHardness(3F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":radio_telex"); conveyor = new BlockConveyor().setBlockName("conveyor").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor"); //conveyor_classic = new BlockConveyorClassic().setBlockName("conveyor_classic").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor"); @@ -3229,6 +3231,7 @@ public class ModBlocks { register(radio_torch_sender); register(radio_torch_receiver); register(radio_torch_counter); + register(radio_telex); register(crane_extractor); register(crane_inserter); diff --git a/src/main/java/com/hbm/blocks/network/RadioTelex.java b/src/main/java/com/hbm/blocks/network/RadioTelex.java new file mode 100644 index 000000000..76ae87d21 --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/RadioTelex.java @@ -0,0 +1,31 @@ +package com.hbm.blocks.network; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.tileentity.network.TileEntityRadioTelex; + +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class RadioTelex extends BlockDummyable { + + public RadioTelex() { + super(Material.wood); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityRadioTelex(); + return null; + } + + @Override + public int[] getDimensions() { + return new int[] {0, 0, 0, 0, 1, 0}; + } + + @Override + public int getOffset() { + return 0; + } +} diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 97bcdb621..c73c53576 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -288,6 +288,7 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFan.class, new RenderFan()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPistonInserter.class, new RenderPistonInserter()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityConveyorPress.class, new RenderConveyorPress()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRadioTelex.class, new RenderTelex()); //Foundry ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFoundryBasin.class, new RenderFoundry()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFoundryMold.class, new RenderFoundry()); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 59cbd5c29..35da24ba7 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -346,6 +346,9 @@ public class ResourceManager { //DecoContainer (File Cabinet for now) public static final IModelCustom file_cabinet = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/file_cabinet.obj")); + //TELEX + public static final IModelCustom telex = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/telex.obj")); + ////Textures TEs public static final ResourceLocation universal = new ResourceLocation(RefStrings.MODID, "textures/models/TheGadget3_.png"); @@ -715,6 +718,9 @@ public class ResourceManager { public static final ResourceLocation file_cabinet_tex = new ResourceLocation(RefStrings.MODID, "textures/models/file_cabinet.png"); public static final ResourceLocation file_cabinet_steel_tex = new ResourceLocation(RefStrings.MODID, "textures/models/file_cabinet_steel.png"); + //TELEX + public static final ResourceLocation telex_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/telex.png"); + ////Obj Items //Shimmer Sledge diff --git a/src/main/java/com/hbm/render/tileentity/RenderTelex.java b/src/main/java/com/hbm/render/tileentity/RenderTelex.java new file mode 100644 index 000000000..5c3601e1a --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderTelex.java @@ -0,0 +1,57 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderTelex extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y, z + 0.5); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + + switch(tile.getBlockMetadata() - BlockDummyable.offset) { + case 2: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(0, 0F, 1F, 0F); break; + } + + GL11.glTranslated(0, 0, 1); + + bindTexture(ResourceManager.telex_tex); + ResourceManager.telex.renderAll(); + + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.radio_telex); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(0, -2, 0); + GL11.glScaled(6, 6, 6); + } + public void renderCommon() { + GL11.glTranslated(0, 0, 0.5); + bindTexture(ResourceManager.telex_tex); + ResourceManager.telex.renderAll(); + }}; + } +} diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index ebd4e6c46..7c6f0a484 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -384,6 +384,7 @@ public class TileMappings { put(TileEntityRadioTorchSender.class, "tileentity_rtty_sender"); put(TileEntityRadioTorchReceiver.class, "tileentity_rtty_rec"); put(TileEntityRadioTorchCounter.class, "tileentity_rtty_counter"); + put(TileEntityRadioTelex.class, "tileentity_rtty_telex"); } private static void put(Class clazz, String... names) { diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityRadioTelex.java b/src/main/java/com/hbm/tileentity/network/TileEntityRadioTelex.java new file mode 100644 index 000000000..e1b117888 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/network/TileEntityRadioTelex.java @@ -0,0 +1,7 @@ +package com.hbm.tileentity.network; + +import net.minecraft.tileentity.TileEntity; + +public class TileEntityRadioTelex extends TileEntity { + +} diff --git a/src/main/resources/assets/hbm/models/machines/telex.obj b/src/main/resources/assets/hbm/models/machines/telex.obj new file mode 100644 index 000000000..4caa6310e --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/telex.obj @@ -0,0 +1,86 @@ +# Blender v2.76 (sub 0) OBJ File: 'telex.blend' +# www.blender.org +o Cube_Cube.001 +v -0.500000 0.000000 0.500000 +v -0.500000 1.000000 0.500000 +v -0.500000 0.000000 -1.500000 +v -0.500000 1.000000 -1.500000 +v 0.500000 0.000000 0.500000 +v 0.500000 0.000000 -1.500000 +v 0.500000 0.625000 -1.500000 +v 0.500000 0.625000 0.500000 +v 0.125000 1.000000 -1.500000 +v 0.125000 1.000000 0.500000 +v 0.500000 0.625000 0.125000 +v 0.500000 0.625000 -0.750000 +v 0.125000 1.000000 -0.750000 +v 0.125000 0.625000 -0.750000 +v 0.125000 0.625000 0.125000 +v 0.125000 1.000000 0.125000 +vt -0.000000 0.500000 +vt -0.000000 0.250000 +vt 0.500000 0.250000 +vt 0.843750 0.250000 +vt 0.750000 0.156250 +vt 1.000000 -0.000000 +vt 0.093750 0.250000 +vt 0.093750 0.156250 +vt 0.312500 0.156250 +vt 0.500000 0.000000 +vt 0.656250 0.250000 +vt -0.000000 0.750000 +vt 0.500000 0.500000 +vt 0.500000 0.156250 +vt 0.312500 0.250000 +vt 0.000000 0.156250 +vt -0.000000 0.000000 +vt 0.593750 0.343750 +vt 0.812500 0.343750 +vt 0.593750 0.500000 +vt 0.500000 0.593750 +vt 0.687500 0.500000 +vt 0.687500 0.593750 +vt 0.593750 0.250000 +vt 0.750000 -0.000000 +vt 1.000000 0.250000 +vt 0.500000 0.750000 +vt 1.000000 0.500000 +vt 0.500000 0.343750 +vt 1.000000 0.343750 +vt 0.812500 0.250000 +vn -1.000000 0.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.000000 1.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.707100 0.707100 0.000000 +vn 0.000000 1.000000 0.000000 +s off +f 4/1/1 3/2/1 1/3/1 +f 9/4/2 7/5/2 3/6/2 +f 16/7/3 15/8/3 14/9/3 +f 1/10/4 8/5/4 10/11/4 +f 3/12/5 6/1/5 5/13/5 +f 7/14/6 9/3/6 13/15/6 +f 10/2/6 8/16/6 11/8/6 +f 12/9/3 5/17/3 6/10/3 +f 16/18/7 13/19/7 2/13/7 +f 12/20/4 13/21/4 14/13/4 +f 11/20/2 15/22/2 16/23/2 +f 14/19/7 15/18/7 11/24/7 +f 2/13/1 4/1/1 1/3/1 +f 6/25/2 3/6/2 7/5/2 +f 4/26/2 9/4/2 3/6/2 +f 13/15/3 16/7/3 14/9/3 +f 10/11/4 2/3/4 1/10/4 +f 1/10/4 5/25/4 8/5/4 +f 1/27/5 3/12/5 5/13/5 +f 12/9/6 7/14/6 13/15/6 +f 16/7/6 10/2/6 11/8/6 +f 6/10/3 7/14/3 12/9/3 +f 12/9/3 11/8/3 5/17/3 +f 8/16/3 5/17/3 11/8/3 +f 4/28/7 2/13/7 13/19/7 +f 10/29/7 16/18/7 2/13/7 +f 13/19/7 9/30/7 4/28/7 +f 12/31/7 14/19/7 11/24/7 diff --git a/src/main/resources/assets/hbm/textures/gui/machine/gui_telex.png b/src/main/resources/assets/hbm/textures/gui/machine/gui_telex.png new file mode 100644 index 0000000000000000000000000000000000000000..2866b7299c9e258c628e1f81edb2808ac8bee978 GIT binary patch literal 2760 zcmeHJeK^y58~@FYR%Fg{qB7>F$4imqh?(Q%Je)&CokC8CN(tLA*@iW%J(cXRN?yv# zJXGG2h>gimnG^ETi4il+%XZSd46`lf%z3Ws`Rn=n{Po=b-1l{VuJ8AIU-$jJKKJL= zao?YGw03C$0HEXT<#7T4KJ_+XZPZy|@z^74e(W6zuHp2rX(R451(BqGH( zanMaL+x>I$oAko`-hi686~wQmro!=YlXD!s+tfk}(fA3)7F5Azq&V{k?Gy<22ymk} z_bp9|Ryh1Y{4)?@t03xvF;dKY4F67_lA79;W5Z(GqQ`oAe1HA1BtUeJI_v$W?WM-o zu!UDP0#>a%x+A^PA;<=R;ri??kzRWNYR>6lV<%szG}8~@y2d2gi8YYF(V>)Z+--yr z@MhA))d{%!#+`f_*po?J6$4&o5Jf-e_ED&`1Z;92KKT>G?co0p{C!>0*QXQ|6g05o z;|)h%YMMb3PX_`&mi(-qHU_P2kPDwIuK`F0NYOzfZE94(zC30KAo=RV#Dsj2ab{+U6x(l2G8mW3iB$%U3MKEN@k)eC!*9VFZgfka@4ObUl&b-J zpS|?T4FZ9jq{r~t_V#DU&cFB;#NeMwi9w6@&D>(7!Ic>QYH-LMKfu&1LwBE3S`mmu$K}z371Ncw zg76$E2#LZIi923>oJTk1J$zzkX;F!_%V%YwC<&Mfumz$av*taObNF{&c1NYt^=c^M z$?{KkQ_5r}!S zJ4p#$UEPhHGKnOFMi6jZ98}8=y1m(zh326&83AdyQMnR9Zt3^kuh>SJYF2jAvQTqk z@q*uxhHj`znRhep@)B{jdw$>}HOt0f=;`CNwb>C~X_{LB6E{wEGm4!kaCqDU&y>ZU z!Ckp<9}a--(r&GGRrv+$H zM=60V{5x#KNat1cw|}gr+kdp^IA$<MTIlMqb6@py z>xp+W&`pcyGZz-*ip3*kUo6`ac%k?)|GGkI087&7E(}b3k@W8O`YvSI2a*4M#+5Xu%6X}S!0udz6DIjw227jq(xtw(zYwKhQ0Br>7vNyR0X=OzQy4V z^`XYIpsm8lxDy{cQSuJq;div|y;xmes5rHpniNGkC_9@^D~>|T(0z6oQJ5aL6tY-k z(F6V5SmOyHzX?x2cc9E#*&fz6jNY@If}rio^5={~ef`qk?sa+M^86S#g4XI8hd<;f zc}wWwz*ZMoB}mQXsjX zog(|S1y$G-K9sgVE1T8d%g2M=PghA%r16MhG7|u>Ehgw zYVchfkeQie3~QTvIz!m`erIvH^%J(r2CF-ry>Ctr?LM$P`Z>coii;b>Lq8lUbL{In zpU{<%mOH1^pDIe^(##dxiXxw28+`}bf{ju8zB2ej=^AGhfe{rY_(Luys*%V}P5KO% z{Za%Jb$kPeZU0N6TjXa*ankrvOd=D}9wG7JvDemo1%1Q!2IKo`*HW{_rYjlGT#-9G zUdx-lg#P#%mr`_XwsAe|8(2ijM666F8Y#YogKki){TU4sd2R%Qff&xW%~u6X-=Sio zJKJ9BYJ_lJC~a^f!^5}wFV)GMtx8wt#`KZm!h7&NSGLXH4CRDIg0aEP$a+v^&nw); zb^eGcgn#$0de{euwSem9JhEzf^$BlAV*y%2434zY>v;z?WvaTiex`It*MQ_B--T{@3ldE+7J)F1Oj+GUihi!ZGC82RiYyT zcf0huX4rST>ZK)*FmGQeZd0A@^(jnp$<~dkq$tq8|I_^iu6HDhTDoSPHbsxUex(5=UVl)kBUYA5U$;~HCQY?{bnfUjZ aiAvWX>Rz}>3n+Z!L2plAkEcI`UHcPMDIz2Q literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/telex.png b/src/main/resources/assets/hbm/textures/models/machines/telex.png similarity index 100% rename from src/main/resources/assets/hbm/textures/models/telex.png rename to src/main/resources/assets/hbm/textures/models/machines/telex.png From 82dafa437bb88902973b00e64f03b48325f9ff85 Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 8 Sep 2023 15:20:47 +0200 Subject: [PATCH 294/432] hopefully fixed the malicious gigglefish from the silly dimension --- changelog | 13 ++++++++++++ src/main/java/api/hbm/fluid/IFluidUser.java | 7 +++++-- src/main/java/api/hbm/fluid/PipeNet.java | 19 ++++++++++-------- .../com/hbm/items/armor/ArmorBJJetpack.java | 16 +++++++-------- .../java/com/hbm/items/armor/ArmorFSB.java | 4 ++++ .../hbm/items/armor/ArmorTrenchmaster.java | 13 ++++++++++++ .../machine/TileEntityMachineTurbineGas.java | 13 +++++------- .../machine/storage/TileEntityBarrel.java | 18 +++++++++++++++++ src/main/resources/assets/hbm/lang/de_DE.lang | 3 +++ src/main/resources/assets/hbm/lang/en_US.lang | 3 +++ .../hbm/textures/gui/machine/gui_telex.png | Bin 2760 -> 3290 bytes .../assets/hbm/textures/items/dnt_sword.png | Bin 528 -> 1004 bytes .../hbm/textures/items/dont_they_know.png | Bin 827 -> 0 bytes .../assets/hbm/textures/items/ingot_uzh.png | Bin 0 -> 368 bytes .../textures/items/template_folder_alt.png | Bin 366 -> 0 bytes 15 files changed, 83 insertions(+), 26 deletions(-) delete mode 100644 src/main/resources/assets/hbm/textures/items/dont_they_know.png create mode 100644 src/main/resources/assets/hbm/textures/items/ingot_uzh.png delete mode 100644 src/main/resources/assets/hbm/textures/items/template_folder_alt.png diff --git a/changelog b/changelog index e69de29bb..ff10295e2 100644 --- a/changelog +++ b/changelog @@ -0,0 +1,13 @@ +## Added + +## Changed +* Updated russian localization +* The UAC pistol's UV now looks prettier +* The UAC pistol now fires a burst on right click +* CCGTs can no longer have smoke removed from them, on the count of there not being enough connections anyway. The pollution rate is now equivalent to three small furnaces + +## Fixed +* Fixed the bomber not spawning if the chunkloading radios is too small +* Fixed a couple spelling mistakes like BFB fuel being called ZFB and the broken ZIRNOX +* Potentially fixed a compat issue where galacticraft moon soil isn't shreddable into NTM moon turf +* Hopefully fixed the disappearing fluid buf once and for all \ No newline at end of file diff --git a/src/main/java/api/hbm/fluid/IFluidUser.java b/src/main/java/api/hbm/fluid/IFluidUser.java index 7c4a36a92..a0b5a47f0 100644 --- a/src/main/java/api/hbm/fluid/IFluidUser.java +++ b/src/main/java/api/hbm/fluid/IFluidUser.java @@ -37,8 +37,11 @@ public interface IFluidUser extends IFluidConnector { if(con.canConnect(type, dir.getOpposite())) { long toSend = this.getTotalFluidForSend(type, pressure); - long transfer = toSend - con.transferFluid(type, pressure, toSend); - this.removeFluidForTransfer(type, pressure, transfer); + + if(toSend > 0) { + long transfer = toSend - con.transferFluid(type, pressure, toSend); + this.removeFluidForTransfer(type, pressure, transfer); + } red = true; } } diff --git a/src/main/java/api/hbm/fluid/PipeNet.java b/src/main/java/api/hbm/fluid/PipeNet.java index 019aa3dcd..8ad18725d 100644 --- a/src/main/java/api/hbm/fluid/PipeNet.java +++ b/src/main/java/api/hbm/fluid/PipeNet.java @@ -127,14 +127,17 @@ public class PipeNet implements IPipeNet { long given = (long) Math.floor(fraction * fill); - totalGiven += (given - con.transferFluid(type, pressure, given)); - - if(trackingInstances != null) { - for(int j = 0; j < trackingInstances.size(); j++) { - PipeNet net = trackingInstances.get(j); - SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss:SSS"); - sdf.setTimeZone(TimeZone.getTimeZone("UTC")); - log(net, sdf.format(new Date(System.currentTimeMillis())) + " Sending " + given + "mB to " + conToString(con)); + if(given > 0) { + + totalGiven += (given - con.transferFluid(type, pressure, given)); + + if(trackingInstances != null) { + for(int j = 0; j < trackingInstances.size(); j++) { + PipeNet net = trackingInstances.get(j); + SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss:SSS"); + sdf.setTimeZone(TimeZone.getTimeZone("UTC")); + log(net, sdf.format(new Date(System.currentTimeMillis())) + " Sending " + given + "mB to " + conToString(con)); + } } } } diff --git a/src/main/java/com/hbm/items/armor/ArmorBJJetpack.java b/src/main/java/com/hbm/items/armor/ArmorBJJetpack.java index 93f8d34a3..5882236e7 100644 --- a/src/main/java/com/hbm/items/armor/ArmorBJJetpack.java +++ b/src/main/java/com/hbm/items/armor/ArmorBJJetpack.java @@ -89,13 +89,13 @@ public class ArmorBJJetpack extends ArmorBJ { } } } - } - - @SideOnly(Side.CLIENT) - public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { - super.addInformation(stack, player, list, ext); + } - list.add(EnumChatFormatting.RED + " + " + I18nUtil.resolveKey("armor.electricJetpack")); - list.add(EnumChatFormatting.GRAY + " + " + I18nUtil.resolveKey("armor.glider")); - } + @SideOnly(Side.CLIENT) + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + super.addInformation(stack, player, list, ext); + + list.add(EnumChatFormatting.RED + " + " + I18nUtil.resolveKey("armor.electricJetpack")); + list.add(EnumChatFormatting.GRAY + " + " + I18nUtil.resolveKey("armor.glider")); + } } diff --git a/src/main/java/com/hbm/items/armor/ArmorFSB.java b/src/main/java/com/hbm/items/armor/ArmorFSB.java index 3cacd975c..d6eb33079 100644 --- a/src/main/java/com/hbm/items/armor/ArmorFSB.java +++ b/src/main/java/com/hbm/items/armor/ArmorFSB.java @@ -289,6 +289,10 @@ public class ArmorFSB extends ItemArmor implements IArmorDisableModel { list.add(EnumChatFormatting.BLUE + " " + I18nUtil.resolveKey("armor.gravity", gravity)); } + if(stepSize != 0) { + list.add(EnumChatFormatting.BLUE + " " + I18nUtil.resolveKey("armor.stepSize", stepSize)); + } + if(dashCount > 0) { list.add(EnumChatFormatting.AQUA + " " + I18nUtil.resolveKey("armor.dash", dashCount)); } diff --git a/src/main/java/com/hbm/items/armor/ArmorTrenchmaster.java b/src/main/java/com/hbm/items/armor/ArmorTrenchmaster.java index b2168b8af..5182cbdb5 100644 --- a/src/main/java/com/hbm/items/armor/ArmorTrenchmaster.java +++ b/src/main/java/com/hbm/items/armor/ArmorTrenchmaster.java @@ -1,12 +1,17 @@ package com.hbm.items.armor; +import java.util.List; + import com.hbm.render.model.ModelArmorTrenchmaster; +import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.model.ModelBiped; import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; public class ArmorTrenchmaster extends ArmorFSB { @@ -30,4 +35,12 @@ public class ArmorTrenchmaster extends ArmorFSB { return models[armorSlot]; } + + @SideOnly(Side.CLIENT) + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + super.addInformation(stack, player, list, ext); + + list.add(EnumChatFormatting.RED + " + " + I18nUtil.resolveKey("armor.fasterReload")); + list.add(EnumChatFormatting.GRAY + " + " + I18nUtil.resolveKey("armor.moreAmmo")); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java index b98d7daf0..32d1df24d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java @@ -18,7 +18,7 @@ import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityMachinePolluting; +import com.hbm.tileentity.TileEntityMachineBase; import api.hbm.energy.IEnergyGenerator; import api.hbm.fluid.IFluidStandardTransceiver; @@ -33,7 +33,7 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineTurbineGas extends TileEntityMachinePolluting implements IFluidStandardTransceiver, IEnergyGenerator, IControlReceiver, IGUIProvider { +public class TileEntityMachineTurbineGas extends TileEntityMachineBase implements IFluidStandardTransceiver, IEnergyGenerator, IControlReceiver, IGUIProvider { public long power; public static final long maxPower = 1000000L; @@ -69,7 +69,7 @@ public class TileEntityMachineTurbineGas extends TileEntityMachinePolluting impl //TODO particles from heat exchanger maybe? maybe in a future public TileEntityMachineTurbineGas() { - super(2, 200); + super(2); this.tanks = new FluidTank[4]; tanks[0] = new FluidTank(Fluids.GAS, 100000); tanks[1] = new FluidTank(Fluids.LUBRICANT, 16000); @@ -137,9 +137,6 @@ public class TileEntityMachineTurbineGas extends TileEntityMachinePolluting impl for(int i = 0; i < 2; i++) { //fuel and lube this.trySubscribe(tanks[i].getTankType(), worldObj, xCoord - dir.offsetX * 2 + rot.offsetX, yCoord, zCoord - dir.offsetZ * 2 + rot.offsetZ, dir.getOpposite()); this.trySubscribe(tanks[i].getTankType(), worldObj, xCoord + dir.offsetX * 2 + rot.offsetX, yCoord, zCoord + dir.offsetZ * 2 + rot.offsetZ, dir); - - this.sendSmoke(xCoord - dir.offsetX * 2 + rot.offsetX, yCoord, zCoord - dir.offsetZ * 2 + rot.offsetZ, dir.getOpposite()); - this.sendSmoke(xCoord + dir.offsetX * 2 + rot.offsetX, yCoord, zCoord + dir.offsetZ * 2 + rot.offsetZ, dir); } //water this.trySubscribe(tanks[2].getTankType(), worldObj, xCoord - dir.offsetX * 2 + rot.offsetX * -4, yCoord, zCoord - dir.offsetZ * 2 + rot.offsetZ * -4, dir.getOpposite()); @@ -303,7 +300,7 @@ public class TileEntityMachineTurbineGas extends TileEntityMachinePolluting impl } double consumption = fuelMaxCons.containsKey(tanks[0].getTankType()) ? fuelMaxCons.get(tanks[0].getTankType()) : 5D; - if(worldObj.getTotalWorldTime() % 20 == 0 && tanks[0].getTankType() != Fluids.OXYHYDROGEN) this.pollute(PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * (float) consumption * 0.25F); + if(worldObj.getTotalWorldTime() % 20 == 0 && tanks[0].getTankType() != Fluids.OXYHYDROGEN) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, 3F); makePower(consumption, throttle); } @@ -536,7 +533,7 @@ public class TileEntityMachineTurbineGas extends TileEntityMachinePolluting impl @Override public FluidTank[] getSendingTanks() { - return new FluidTank[] { tanks[3], smoke, smoke_leaded, smoke_poison }; + return new FluidTank[] { tanks[3] }; } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java index 32444fda7..ac0cd0be4 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java @@ -72,6 +72,24 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc return (byte) (MathHelper.clamp_int((int) frac + 1, 0, 15)); } + @Override + public long getDemand(FluidType type, int pressure) { + + if(this.mode == 2 || this.mode == 3 || this.sendingBrake) + return 0; + + if(tank.getPressure() != pressure) return 0; + + return type == tank.getTankType() ? tank.getMaxFill() - tank.getFill() : 0; + } + + @Override + public long transferFluid(FluidType type, int pressure, long fluid) { + long toTransfer = Math.min(getDemand(type, pressure), fluid); + tank.setFill(tank.getFill() + (int) toTransfer); + return fluid - toTransfer; + } + @Override public void updateEntity() { diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 17f3b4acd..24f23de44 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -88,6 +88,7 @@ armor.cap=Schadensobergrenze: %s armor.damageModifier=Modifikator: %s (%s) armor.electricJetpack=Ionentriebwerke armor.explosionImmune=Kann nur Schaden durch Explosionen nehmen +armor.fasterReload=Schneklleres Nachladen armor.fastFall=Schneller Fall armor.fireproof=Feuerfest armor.fullSetBonus=Set-Bonus: @@ -98,10 +99,12 @@ armor.gravity=Schwerkraftsmodifikator: %s armor.hardLanding=Harte Landung armor.ignoreLimit=Resistenz ist nicht limitiert armor.modifier=Genereller Schadensmodifikator: %s +armor.moreAmmo=Mehr Munition armor.nullDamage=Nichtet Schaden von %s armor.projectileProtection=Projektilmodifikator: %s armor.rocketBoots=Rocket boots armor.sprintBoost=Verstärkter Sprint +armor.stepSize=Schritthöhe: %s armor.thermal=Wärmebildkamera armor.threshold=Schadensschwelle: %s armor.vats=Feinde-HUD diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index a6079a665..c4c2b6dbc 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -135,6 +135,7 @@ armor.damageModifier=Damage modifier of %s against %s armor.dash=Grants %s dashes armor.electricJetpack=Ion Jetpack armor.explosionImmune=Cannot take any damage except from explosions +armor.fasterReload=Faster Reload armor.fastFall=Fast Fall armor.fireproof=Fireproof armor.fullSetBonus=Full Set Bonus: @@ -145,10 +146,12 @@ armor.gravity=Gravity modifier of %s armor.hardLanding=Hard Landing armor.ignoreLimit=Resistance is not affected by resistance limit armor.modifier=General damage modifier of %s +armor.moreAmmo=More Ammo armor.nullDamage=Nullifies all damage from %s armor.projectileProtection=Damage modifier of %s against projectiles armor.rocketBoots=Rocket Boots armor.sprintBoost=Boosted Sprint +armor.stepSize=Stepsize: %s armor.thermal=Thermal Sight armor.threshold=Damage threshold of %s armor.vats=Enemy HUD diff --git a/src/main/resources/assets/hbm/textures/gui/machine/gui_telex.png b/src/main/resources/assets/hbm/textures/gui/machine/gui_telex.png index 2866b7299c9e258c628e1f81edb2808ac8bee978..32635945dfbfec330c55e2d47300777d9d4e6348 100644 GIT binary patch literal 3290 zcmd^>i#rrpAIHy(Nt8?L9*t2=N`!rDmkhZ?8I>tnL~fOFSqzJ@E@LLG6mN<$Hkp}{ zLaq^V8GSZUn{4WJqNe7FtK|9MxO1#XaYXHclqiwC7f6bX?TV5N& zYPT*N*M&h{gMDnA^1^k_jfOTJWzd`ZKWa1>sx@yvcms9Rex~RUt4hI_UAsL$r}b(J z4;tFH4d2gtDtbBGGoqIB`TR`Eb{73%j5qpVR}hxV-*E0ibrnVTCvf=bhq{hwI=~ny zZ#?ahQ{$=L>V2AkRU5yYc1RP}j*d)VWKcHqA9cP$pdE%F!^86d-ZumY;wHRYsh z2UQe6#@C6_8Fx+C{lgyWp}hxzEwSj41t6a+gy^hs0!^eCyKVvS(jJg}k$_>W1bj4P zf$_g#K;sw`$nA!JtLguMJ8>xA3(=y4d-DUJ=#r-pd-BT*s`JB198RlSVu&_etj|v+25j&_JbRv_ZH*E(E zi!_6yZ&zlN1@{St#Pb6cY_?~V8GM$lXQxN52zzG=hu`u(4GF6UwFH8q zj>psC%%!xf8jADhT|Sx74{PU;9!b%~6ji@Zo3iRkUT3B)d#)#siMkUeU7i?;>;%n( zO&4k|5Hjcm&POdi&fch9sgEH7^1&`mt8qysT1vz>d*OsC)77tv2(dd<9jyEqu|T=b*a zn!$mH8rdJ)2MkjlGrJa%hu7lm;5)RZCYD)+);gY!nN#adr)2M!{zhuC|LQgKv^)Is zlCmE?d@85}Q|~C0 zkyPyZX$$Z~)^k>o4VM`?2N>UIRvP{AT+D0DFtS7fq8hbWZIaiMF&JwePi-T`&8M#c?IV4Jvhat%LRMmP@ z9jj|<)cdvp))Zfu!3{5rrFO&0zqs(vpe6bWfbpKjZHyL6M%p)((<5jDMo|4UNhlPZc^tFP3 zV@19D;}!i2`xBeiR_n;pkbw5SB#&h|(9nT!I~B1JVg-sW|HEYK@8nul0hG9$Pn}5b zH6~w|U1_S?MmSXAD^F5YRaNe(ME8=uRRx>OSYs_d-)pQ|+tsWudI6EKgc&SxzL#f8 zEx@pYerWw40Pj{4E9$v$SXXSQ7pLdN$eEFalxqEDyZa^x@2r8~Hc7~p#ouvDHdnqC zeF|TBHmLQ&`o80h1m#;emF7AL3?nRwf-gP|L!r2UrLLBt?F~=vQa1&NMfu1;vCwF5 z-`T*JGZrMj7`Q+Jr0do?V^ft zX-iY{YZ5S7jv1Q92rVJL=u2&!(6DbzRl+jN5!t)4!X0EBW z;p>I@X=3^1>z~i~ryYe`R#FZ%NR&o(uL9x*MWAU-a8KPfv305_Ul@b?|TJIXk)Ky$`YCw~0lfq9NQIdgSL#59+0MBEiWVaZ`j@ zQ+@I3x~JSfc9zS)Zkv z^&;_ujq)AwlmSUzuvwKQdNAIwe{0`SKYzQ)>4Z)~0^iw}Y>jN;1Ja%mE!Yqas>bFT zedPE*hTZxvAlDb^GGkjjkp}g|6n_YKsTrqlj8m5;V=m%0P0Thkxz*Z=G;SH%HCyOH zYij1*rI%*~)tGFdK@BPi1F_h{UVo+zYZyI?hIVV5O(R+ z#VmgeIdHYSu~fL8zOBKmT0dAHe+oMowrM<+2Gi S`vx=oZ5nOoXj^LIllULjA=c9X literal 2760 zcmeHJeK^y58~@FYR%Fg{qB7>F$4imqh?(Q%Je)&CokC8CN(tLA*@iW%J(cXRN?yv# zJXGG2h>gimnG^ETi4il+%XZSd46`lf%z3Ws`Rn=n{Po=b-1l{VuJ8AIU-$jJKKJL= zao?YGw03C$0HEXT<#7T4KJ_+XZPZy|@z^74e(W6zuHp2rX(R451(BqGH( zanMaL+x>I$oAko`-hi686~wQmro!=YlXD!s+tfk}(fA3)7F5Azq&V{k?Gy<22ymk} z_bp9|Ryh1Y{4)?@t03xvF;dKY4F67_lA79;W5Z(GqQ`oAe1HA1BtUeJI_v$W?WM-o zu!UDP0#>a%x+A^PA;<=R;ri??kzRWNYR>6lV<%szG}8~@y2d2gi8YYF(V>)Z+--yr z@MhA))d{%!#+`f_*po?J6$4&o5Jf-e_ED&`1Z;92KKT>G?co0p{C!>0*QXQ|6g05o z;|)h%YMMb3PX_`&mi(-qHU_P2kPDwIuK`F0NYOzfZE94(zC30KAo=RV#Dsj2ab{+U6x(l2G8mW3iB$%U3MKEN@k)eC!*9VFZgfka@4ObUl&b-J zpS|?T4FZ9jq{r~t_V#DU&cFB;#NeMwi9w6@&D>(7!Ic>QYH-LMKfu&1LwBE3S`mmu$K}z371Ncw zg76$E2#LZIi923>oJTk1J$zzkX;F!_%V%YwC<&Mfumz$av*taObNF{&c1NYt^=c^M z$?{KkQ_5r}!S zJ4p#$UEPhHGKnOFMi6jZ98}8=y1m(zh326&83AdyQMnR9Zt3^kuh>SJYF2jAvQTqk z@q*uxhHj`znRhep@)B{jdw$>}HOt0f=;`CNwb>C~X_{LB6E{wEGm4!kaCqDU&y>ZU z!Ckp<9}a--(r&GGRrv+$H zM=60V{5x#KNat1cw|}gr+kdp^IA$<MTIlMqb6@py z>xp+W&`pcyGZz-*ip3*kUo6`ac%k?)|GGkI087&7E(}b3k@W8O`YvSI2a*4M#+5Xu%6X}S!0udz6DIjw227jq(xtw(zYwKhQ0Br>7vNyR0X=OzQy4V z^`XYIpsm8lxDy{cQSuJq;div|y;xmes5rHpniNGkC_9@^D~>|T(0z6oQJ5aL6tY-k z(F6V5SmOyHzX?x2cc9E#*&fz6jNY@If}rio^5={~ef`qk?sa+M^86S#g4XI8hd<;f zc}wWwz*ZMoB}mQXsjX zog(|S1y$G-K9sgVE1T8d%g2M=PghA%r16MhG7|u>Ehgw zYVchfkeQie3~QTvIz!m`erIvH^%J(r2CF-ry>Ctr?LM$P`Z>coii;b>Lq8lUbL{In zpU{<%mOH1^pDIe^(##dxiXxw28+`}bf{ju8zB2ej=^AGhfe{rY_(Luys*%V}P5KO% z{Za%Jb$kPeZU0N6TjXa*ankrvOd=D}9wG7JvDemo1%1Q!2IKo`*HW{_rYjlGT#-9G zUdx-lg#P#%mr`_XwsAe|8(2ijM666F8Y#YogKki){TU4sd2R%Qff&xW%~u6X-=Sio zJKJ9BYJ_lJC~a^f!^5}wFV)GMtx8wt#`KZm!h7&NSGLXH4CRDIg0aEP$a+v^&nw); zb^eGcgn#$0de{euwSem9JhEzf^$BlAV*y%2434zY>v;z?WvaTiex`It*MQ_B--T{@3ldE+7J)F1Oj+GUihi!ZGC82RiYyT zcf0huX4rST>ZK)*FmGQeZd0A@^(jnp$<~dkq$tq8|I_^iu6HDhTDoSPHbsxUex(5=UVl)kBUYA5U$;~HCQY?{bnfUjZ aiAvWX>Rz}>3n+Z!L2plAkEcI`UHcPMDIz2Q diff --git a/src/main/resources/assets/hbm/textures/items/dnt_sword.png b/src/main/resources/assets/hbm/textures/items/dnt_sword.png index fb74fb890dd24121f0d27bdd824b8769d347ca09..6a2fbb9fe1e17ed173b875a6329119dc1beb4a50 100644 GIT binary patch delta 967 zcmV;&133JU1ndWpGk*i4Nkl2@cxgP{sn?~GniKeFOwGbv6_1YzEdp zf|?nSB#GGMB*%x&)6(X}-{d8kFl%q1+x#+5craI_q4n&Q1 zK$0Y;#&2`(lgk7wF|DCi+JmiROcTqrG1FPndX|~H->~G~+|qAv*+9AZ zVtS6gcP`-ZHPPU0LREBBC50xZP-UIz@zE{AVH*ZKp{U5GV!U$XJWVYjn%mlOvT1U* zLB_VQ4V(DX4el@A+LqOd2FlG{eVSMO5e_s2cz>ooKw48Vbd9vGk=9k_{=B|zIBeld zC`l4`Zhp(v@av2gO6)t(h?$mIbWHL&lWfLBj{V5W^6xu(qbd%NQzqzr`2?NIt2C5W zkPU@G-lE{zxH$uL_7_UUu^qq86$S{4?n6(b40#s)oZO40uA(hkw{!ua{2`!RfC*W1;sg zoMH*L=wK^jh}Eg8;hVA+J{Sp$E3X|DgOTvRXJK);bwE(pD;{_MuEM`MF|-C=&c^HN zvq|G%BrGDK9%f{TYcsLk*SsO?mT)i<7C?P39o{oIJTwp%gAv%v=4%obZ}fjI9t^Sj p&$wdB@U9nzL@kzVOZh+H{{W|E?!lne4i5kT002ovPDHLkV1gu3=w<)_ delta 487 zcmVyfwlU9?i}B05W3N9XN^m$RNnf6pA3yeuV>akn0(NEqJPnBQ>)cd@5{`9l#Nz)#6{7e4^# z^?LZepLnid%Rs5T^($N{#ryL;@HWDnx`DK}eQtZ%2o4q+h$au$IIMac9HwX>ExGUe z6TxAM2I9%1V1K{}4u5Fir{p1ADP;_YKQ!=La-|ggexE`2$p{V;G+>f^QaDV|fbHa= z#x{^u@=#+R$SS$9fwW1+7TmzVH$42l0c&sr1A&RPdK0D8@Qf{Zs)1mJ3*_~cwa ztrAH*S7^6f;k7Hdc+DVbOd~%c&lS49zL6Uoh7AbqxsYe_h=N^9V8Z?y8=F{KX(hHz dxtsV8>L(i`k*1ihlrjJS002ovPDHLkV1l)+?A8DP diff --git a/src/main/resources/assets/hbm/textures/items/dont_they_know.png b/src/main/resources/assets/hbm/textures/items/dont_they_know.png deleted file mode 100644 index b906a88b515251e06e870ec532d687798517b1fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 827 zcmV-B1H}A^P)Sj?Sh$c-SK_0wV0+UB`JrYfoT=BKK4S!FcaEK94C&$FhWj!z-4{g6*w{&p&Cg zy;;Kp-FApAg=$4Ji7l%uny{i!hbJ>0{WC%<2rGguOJ4S48j<0r?{~Pnx5~y^z^k_@ zx%E7GKIZ6jL^Xgg5X`R+-x4n}L=;v)DR2n8-H0^zob?i(_h)F)bT%WD61p2zjDBBf z_I6h&tz|sRh^iHqnd9b-2&F*_>}=KOZd3`3LU8Qu)=^4uuB2id>Ux@!WDa8#-+j4> z(Ta3w=?_!V+|yh!v>E}mP+^_N7+9nwS#IA8PF~EgwnS^;dc5T051S0%rCd*Pvb7>3hy1@ zFqMkt>G>ECJm8%0x}Wg%{SLqX@rE?9?BCm@9%*jfsMA@mqr62cg(!~>b@P{HW)TDt zLA+-$T9Rd!Z$9gA@c4?87gPF!jJ$yHETg+#MJd61;eTU(hYdL5kput$002ovPDHLk FV1j;)fUp1n diff --git a/src/main/resources/assets/hbm/textures/items/ingot_uzh.png b/src/main/resources/assets/hbm/textures/items/ingot_uzh.png new file mode 100644 index 0000000000000000000000000000000000000000..9c1bdf70206e006dcb97bf8756b692bec49f7c3b GIT binary patch literal 368 zcmV-$0gwKPP)k$W$oZS_*}N_=Psm+mv+55C^%}euQ?_cY4o(=Q#)dO)R?>TXrp8+#Bm4)yw-8 z0AAm|czV3j+>#&(+TJMvFz9!eB*rR8`u?2U%;mI5Nes)b#nt0WMsldZLBFf7&PvLa zJ>4CrK^TUl07i01_4E+WZ6keO!$}Z87>48vCaq@YM=>nn@7RYBu%$^X1k^ zJ@;;mV$qI4Xo<3`R~Mn#uk>(mbR7#JFgG`lFjxAF~%x`{mrMbh~I O0000 Date: Fri, 8 Sep 2023 18:13:04 -0400 Subject: [PATCH 295/432] kill me --- src/main/java/com/hbm/items/ModItems.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 90b3279b0..0f57d0bd5 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -4155,7 +4155,7 @@ public class ModItems { gun_deagle = new ItemGunBase(Gun50AEFactory.getDeagleConfig()).setUnlocalizedName("gun_deagle").setFull3D().setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_deagle"); gun_bio_revolver = new ItemGunBio(Gun357MagnumFactory.getRevolverBioConfig()).setUnlocalizedName("gun_bio_revolver").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_bio_revolver"); gun_flechette = new ItemGunBase(Gun556mmFactory.getSPIWConfig(), Gun556mmFactory.getGLauncherConfig()).setUnlocalizedName("gun_flechette").setFull3D().setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_flechette"); - gun_ar15 = new ItemGunBase(Gun50BMGFactory.getAR15Config()).setUnlocalizedName("gun_ar15").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_ar15"); + gun_ar15 = new ItemGunBase(Gun50BMGFactory.getAR15Config(), Gun50BMGFactory.getAR15BurstConfig()).setUnlocalizedName("gun_ar15").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_ar15"); gun_calamity = new ItemGunBase(Gun762mmFactory.getCalamityConfig()).setUnlocalizedName("gun_calamity").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_calamity"); gun_minigun = new ItemGunLacunae(Gun5mmFactory.get53Config()).setUnlocalizedName("gun_minigun").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_minigun"); gun_avenger = new ItemGunLacunae(Gun5mmFactory.get57Config()).setUnlocalizedName("gun_avenger").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_avenger"); From 8bffbfc530d37620a21e7c4cc7cbc6f7d4ecbaab Mon Sep 17 00:00:00 2001 From: 70000hp <105080577+70000hp@users.noreply.github.com> Date: Fri, 8 Sep 2023 19:29:30 -0400 Subject: [PATCH 296/432] the goodening of cobalt & starmetal Increases the durability and enchantability of starmetal and decorated cobalt tools Makes decorated cobalt tools cheaper, made by a blast furnace recipe Decreased the cost of cobalt armor significantly Increased the resistance of cobalt armor to be slightly better than AA Increased the enchantability of cobalt armor --- src/main/java/com/hbm/crafting/ArmorRecipes.java | 9 ++++----- src/main/java/com/hbm/crafting/ToolRecipes.java | 13 ++++++++----- .../hbm/inventory/recipes/BlastFurnaceRecipes.java | 8 +++++++- src/main/java/com/hbm/items/ModItems.java | 8 ++++---- src/main/java/com/hbm/main/MainRegistry.java | 4 ++-- 5 files changed, 25 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/hbm/crafting/ArmorRecipes.java b/src/main/java/com/hbm/crafting/ArmorRecipes.java index 3aaa6019e..c4ff68c93 100644 --- a/src/main/java/com/hbm/crafting/ArmorRecipes.java +++ b/src/main/java/com/hbm/crafting/ArmorRecipes.java @@ -44,15 +44,14 @@ public class ArmorRecipes { addChest( CMB.ingot(), ModItems.cmb_plate); addLegs( CMB.ingot(), ModItems.cmb_legs); addBoots( CMB.ingot(), ModItems.cmb_boots); - addHelmet( CO.ingot(), ModItems.cobalt_helmet); - addChest( CO.ingot(), ModItems.cobalt_plate); - addLegs( CO.ingot(), ModItems.cobalt_legs); - addBoots( CO.ingot(), ModItems.cobalt_boots); addHelmet( ModItems.rag, ModItems.robes_helmet); addChest( ModItems.rag, ModItems.robes_plate); addLegs( ModItems.rag, ModItems.robes_legs); CraftingManager.addRecipeAuto(new ItemStack(ModItems.robes_boots, 1), new Object[] { "R R", "P P", 'R', ModItems.rag, 'P', ModItems.plate_polymer }); - + CraftingManager.addRecipeAuto(new ItemStack(ModItems.cobalt_helmet, 1), new Object[] {"ECE", 'E', CO.billet(), 'C', ModItems.steel_helmet }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.cobalt_plate, 1), new Object[] { " E ", "ECE"," E ", 'E', CO.billet(), 'C', ModItems.steel_plate }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.cobalt_legs, 1), new Object[] { "ECE", "E E", 'E', CO.billet(), 'C', ModItems.steel_legs }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.cobalt_boots, 1), new Object[] {"ECE", 'E', CO.billet(), 'C', ModItems.steel_boots }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.security_helmet, 1), new Object[] { "SSS", "IGI", 'S', STEEL.plate(), 'I', ModItems.plate_polymer, 'G', KEY_ANYPANE }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.security_plate, 1), new Object[] { "KWK", "IKI", "WKW", 'K', ModItems.plate_kevlar, 'I', ANY_PLASTIC.ingot(), 'W', new ItemStack(Blocks.wool, 1, OreDictionary.WILDCARD_VALUE) }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.security_legs, 1), new Object[] { "IWI", "K K", "W W", 'K', ModItems.plate_kevlar, 'I', ANY_PLASTIC.ingot(), 'W', new ItemStack(Blocks.wool, 1, OreDictionary.WILDCARD_VALUE) }); diff --git a/src/main/java/com/hbm/crafting/ToolRecipes.java b/src/main/java/com/hbm/crafting/ToolRecipes.java index f418904f6..9f46fefc4 100644 --- a/src/main/java/com/hbm/crafting/ToolRecipes.java +++ b/src/main/java/com/hbm/crafting/ToolRecipes.java @@ -180,16 +180,19 @@ public class ToolRecipes { addShovel( SA326.ingot(), ModItems.schrabidium_shovel); addHoe( SA326.ingot(), ModItems.schrabidium_hoe); } else { + /* CraftingManager.addRecipeAuto(new ItemStack(ModItems.cobalt_decorated_sword, 1), new Object[] { " I ", " I ", "SBS", 'I', CO.ingot(), 'S', ModItems.ingot_meteorite_forged, 'B', ModItems.cobalt_sword }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.cobalt_decorated_pickaxe, 1), new Object[] { "III", " B ", " S ", 'I', CO.ingot(), 'S', ModItems.ingot_meteorite_forged, 'B', ModItems.cobalt_pickaxe }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.cobalt_decorated_axe, 1), new Object[] { "II", "IB", " S", 'I', CO.ingot(), 'S', ModItems.ingot_meteorite_forged, 'B', ModItems.cobalt_axe }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.cobalt_decorated_shovel, 1), new Object[] { "I", "B", "S", 'I', CO.ingot(), 'S', ModItems.ingot_meteorite_forged, 'B', ModItems.cobalt_shovel }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.cobalt_decorated_hoe, 1), new Object[] { "II", " B", " S", 'I', CO.ingot(), 'S', ModItems.ingot_meteorite_forged, 'B', ModItems.cobalt_hoe }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.starmetal_sword, 1), new Object[] { " I ", " I ", "SBS", 'I', STAR.ingot(), 'S', CO.ingot(), 'B', ModItems.cobalt_decorated_sword }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.starmetal_pickaxe, 1), new Object[] { "III", " B ", " S ", 'I', STAR.ingot(), 'S', CO.ingot(), 'B', ModItems.cobalt_decorated_pickaxe }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.starmetal_axe, 1), new Object[] { "II", "IB", " S", 'I', STAR.ingot(), 'S', CO.ingot(), 'B', ModItems.cobalt_decorated_axe }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.starmetal_shovel, 1), new Object[] { "I", "B", "S", 'I', STAR.ingot(), 'S', CO.ingot(), 'B', ModItems.cobalt_decorated_shovel }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.starmetal_hoe, 1), new Object[] { "II", " B", " S", 'I', STAR.ingot(), 'S', CO.ingot(), 'B', ModItems.cobalt_decorated_hoe }); + + */ + CraftingManager.addRecipeAuto(new ItemStack(ModItems.starmetal_sword, 1), new Object[] { " I ", " B ", "ISI", 'I', STAR.ingot(), 'S', ModItems.ring_starmetal, 'B', ModItems.cobalt_decorated_sword }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.starmetal_pickaxe, 1), new Object[] { "ISI", " B ", " I ", 'I', STAR.ingot(), 'S', ModItems.ring_starmetal, 'B', ModItems.cobalt_decorated_pickaxe }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.starmetal_axe, 1), new Object[] { "IS", "IB", " I", 'I', STAR.ingot(), 'S', ModItems.ring_starmetal, 'B', ModItems.cobalt_decorated_axe }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.starmetal_shovel, 1), new Object[] { "I", "B", "I", 'I', STAR.ingot(), 'B', ModItems.cobalt_decorated_shovel }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.starmetal_hoe, 1), new Object[] { "IS", " B", " I", 'I', STAR.ingot(), 'S', ModItems.ring_starmetal, 'B', ModItems.cobalt_decorated_hoe }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.schrabidium_sword, 1), new Object[] { "I", "W", "S", 'I', SA326.block(), 'W', ModItems.desh_sword, 'S', POLYMER.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.schrabidium_pickaxe, 1), new Object[] { "BSB", " W ", " P ", 'B', ModItems.blades_desh, 'S', SA326.block(), 'W', ModItems.desh_pickaxe, 'P', POLYMER.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.schrabidium_axe, 1), new Object[] { "BS", "BW", " P", 'B', ModItems.blades_desh, 'S', SA326.block(), 'W', ModItems.desh_axe, 'P', POLYMER.ingot() }); diff --git a/src/main/java/com/hbm/inventory/recipes/BlastFurnaceRecipes.java b/src/main/java/com/hbm/inventory/recipes/BlastFurnaceRecipes.java index 3dd2f4914..2bcce4544 100644 --- a/src/main/java/com/hbm/inventory/recipes/BlastFurnaceRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/BlastFurnaceRecipes.java @@ -63,7 +63,13 @@ public class BlastFurnaceRecipes extends SerializableRecipe { addRecipe(CO, ModBlocks.block_meteor, new ItemStack(ModItems.ingot_meteorite)); addRecipe(ModItems.meteorite_sword_hardened, CO, new ItemStack(ModItems.meteorite_sword_alloyed)); addRecipe(ModBlocks.block_meteor, CO, new ItemStack(ModItems.ingot_meteorite)); - + + addRecipe(ModItems.cobalt_sword, ModItems.ingot_meteorite, new ItemStack(ModItems.cobalt_decorated_sword)); + addRecipe(ModItems.cobalt_pickaxe, ModItems.ingot_meteorite, new ItemStack(ModItems.cobalt_decorated_pickaxe)); + addRecipe(ModItems.cobalt_axe, ModItems.ingot_meteorite, new ItemStack(ModItems.cobalt_decorated_axe)); + addRecipe(ModItems.cobalt_shovel, ModItems.ingot_meteorite, new ItemStack(ModItems.cobalt_decorated_shovel)); + addRecipe(ModItems.cobalt_hoe, ModItems.ingot_meteorite, new ItemStack(ModItems.cobalt_decorated_hoe)); + if(GeneralConfig.enableLBSM && GeneralConfig.enableLBSMSimpleChemsitry) { addRecipe(ModItems.canister_empty, COAL, new ItemStack(ModItems.canister_full, 1, Fluids.OIL.getID())); } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 90b3279b0..d61786b1f 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -4714,11 +4714,11 @@ public class ModItems { asbestos_plate = new ArmorFSB(MainRegistry.aMatAsbestos, 1, RefStrings.MODID + ":textures/armor/asbestos_1.png").setFireproof(true).setUnlocalizedName("asbestos_plate").setTextureName(RefStrings.MODID + ":asbestos_plate"); asbestos_legs = new ArmorFSB(MainRegistry.aMatAsbestos, 2, RefStrings.MODID + ":textures/armor/asbestos_2.png").setFireproof(true).setUnlocalizedName("asbestos_legs").setTextureName(RefStrings.MODID + ":asbestos_legs"); asbestos_boots = new ArmorFSB(MainRegistry.aMatAsbestos, 3, RefStrings.MODID + ":textures/armor/asbestos_1.png").setFireproof(true).setUnlocalizedName("asbestos_boots").setTextureName(RefStrings.MODID + ":asbestos_boots"); - security_helmet = new ArmorFSB(MainRegistry.aMatSecurity, 0, RefStrings.MODID + ":textures/armor/security_1.png").setMod(0.75F).setProjectileProtection(0.5F).setUnlocalizedName("security_helmet").setTextureName(RefStrings.MODID + ":security_helmet"); + security_helmet = new ArmorFSB(MainRegistry.aMatSecurity, 0, RefStrings.MODID + ":textures/armor/security_1.png").setMod(0.65F).setProjectileProtection(0.5F).setUnlocalizedName("security_helmet").setTextureName(RefStrings.MODID + ":security_helmet"); security_plate = new ArmorFSB(MainRegistry.aMatSecurity, 1, RefStrings.MODID + ":textures/armor/security_1.png").cloneStats((ArmorFSB) security_helmet).setUnlocalizedName("security_plate").setTextureName(RefStrings.MODID + ":security_plate"); security_legs = new ArmorFSB(MainRegistry.aMatSecurity, 2, RefStrings.MODID + ":textures/armor/security_2.png").cloneStats((ArmorFSB) security_helmet).setUnlocalizedName("security_legs").setTextureName(RefStrings.MODID + ":security_legs"); security_boots = new ArmorFSB(MainRegistry.aMatSecurity, 3, RefStrings.MODID + ":textures/armor/security_1.png").cloneStats((ArmorFSB) security_helmet).setUnlocalizedName("security_boots").setTextureName(RefStrings.MODID + ":security_boots"); - cobalt_helmet = new ArmorFSB(MainRegistry.aMatCobalt, 0, RefStrings.MODID + ":textures/armor/cobalt_1.png").setMod(0.75F).setUnlocalizedName("cobalt_helmet").setTextureName(RefStrings.MODID + ":cobalt_helmet"); + cobalt_helmet = new ArmorFSB(MainRegistry.aMatCobalt, 0, RefStrings.MODID + ":textures/armor/cobalt_1.png").setMod(0.7F).setUnlocalizedName("cobalt_helmet").setTextureName(RefStrings.MODID + ":cobalt_helmet"); cobalt_plate = new ArmorFSB(MainRegistry.aMatCobalt, 1, RefStrings.MODID + ":textures/armor/cobalt_1.png").cloneStats((ArmorFSB) cobalt_helmet).setUnlocalizedName("cobalt_plate").setTextureName(RefStrings.MODID + ":cobalt_plate"); cobalt_legs = new ArmorFSB(MainRegistry.aMatCobalt, 2, RefStrings.MODID + ":textures/armor/cobalt_2.png").cloneStats((ArmorFSB) cobalt_helmet).setUnlocalizedName("cobalt_legs").setTextureName(RefStrings.MODID + ":cobalt_legs"); cobalt_boots = new ArmorFSB(MainRegistry.aMatCobalt, 3, RefStrings.MODID + ":textures/armor/cobalt_1.png").cloneStats((ArmorFSB) cobalt_helmet).setUnlocalizedName("cobalt_boots").setTextureName(RefStrings.MODID + ":cobalt_boots"); @@ -5133,7 +5133,7 @@ public class ModItems { .addBreakAbility(new LuckAbility(1)).setUnlocalizedName("cobalt_shovel").setTextureName(RefStrings.MODID + ":cobalt_shovel"); cobalt_hoe = new ModHoe(MainRegistry.tMatCobalt).setUnlocalizedName("cobalt_hoe").setTextureName(RefStrings.MODID + ":cobalt_hoe"); - ToolMaterial matDecCobalt = EnumHelper.addToolMaterial("HBM_COBALT2", 3, 1000, 15.0F, 2.5F, 25).setRepairItem(new ItemStack(ModItems.ingot_cobalt)); + ToolMaterial matDecCobalt = EnumHelper.addToolMaterial("HBM_COBALT2", 3, 2500, 15.0F, 2.5F, 75).setRepairItem(new ItemStack(ModItems.ingot_cobalt)); cobalt_decorated_sword = new ItemSwordAbility(15F, 0, matDecCobalt) .addHitAbility(new WeaponAbility.BobbleAbility()).setUnlocalizedName("cobalt_decorated_sword").setTextureName(RefStrings.MODID + ":cobalt_decorated_sword"); cobalt_decorated_pickaxe = new ItemToolAbility(6F, 0, matDecCobalt, EnumToolType.PICKAXE) @@ -5154,7 +5154,7 @@ public class ModItems { .addBreakAbility(new LuckAbility(3)).setUnlocalizedName("cobalt_decorated_shovel").setTextureName(RefStrings.MODID + ":cobalt_decorated_shovel"); cobalt_decorated_hoe = new ModHoe(matDecCobalt).setUnlocalizedName("cobalt_decorated_hoe").setTextureName(RefStrings.MODID + ":cobalt_decorated_hoe"); - ToolMaterial matStarmetal = EnumHelper.addToolMaterial("HBM_STARMETAL", 3, 1000, 20.0F, 2.5F, 30).setRepairItem(new ItemStack(ModItems.ingot_starmetal)); + ToolMaterial matStarmetal = EnumHelper.addToolMaterial("HBM_STARMETAL", 3, 3000, 20.0F, 2.5F, 100).setRepairItem(new ItemStack(ModItems.ingot_starmetal)); starmetal_sword = new ItemSwordAbility(25F, 0, matStarmetal) .addHitAbility(new WeaponAbility.BeheaderAbility()) .addHitAbility(new WeaponAbility.StunAbility(3)) diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index e8834cff7..1ffdcc58f 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -129,7 +129,7 @@ public class MainRegistry { public static ToolMaterial tMatCMB = EnumHelper.addToolMaterial("HBM_CMB", 3, 8500, 40.0F, 55F, 100); public static ToolMaterial tMatElec = EnumHelper.addToolMaterial("HBM_ELEC", 3, 0, 30.0F, 12.0F, 2); public static ToolMaterial tMatDesh = EnumHelper.addToolMaterial("HBM_DESH", 2, 0, 7.5F, 2.0F, 10); - public static ToolMaterial tMatCobalt = EnumHelper.addToolMaterial("HBM_COBALT", 3, 750, 9.0F, 2.5F, 15); + public static ToolMaterial tMatCobalt = EnumHelper.addToolMaterial("HBM_COBALT", 3, 750, 9.0F, 2.5F, 60); public static ToolMaterial enumToolMaterialSaw = EnumHelper.addToolMaterial("SAW", 2, 750, 2.0F, 3.5F, 25); public static ToolMaterial enumToolMaterialBat = EnumHelper.addToolMaterial("BAT", 0, 500, 1.5F, 3F, 25); @@ -158,7 +158,7 @@ public class MainRegistry { public static ArmorMaterial aMatCMB = EnumHelper.addArmorMaterial("HBM_CMB", 60, new int[] { 3, 8, 6, 3 }, 50); public static ArmorMaterial aMatAus3 = EnumHelper.addArmorMaterial("HBM_AUSIII", 375, new int[] { 2, 6, 5, 2 }, 0); public static ArmorMaterial aMatSecurity = EnumHelper.addArmorMaterial("HBM_SECURITY", 100, new int[] { 3, 8, 6, 3 }, 15); - public static ArmorMaterial aMatCobalt = EnumHelper.addArmorMaterial("HBM_COBALT", 70, new int[] { 3, 8, 6, 3 }, 25); + public static ArmorMaterial aMatCobalt = EnumHelper.addArmorMaterial("HBM_COBALT", 70, new int[] { 3, 8, 6, 3 }, 60); public static ArmorMaterial aMatStarmetal = EnumHelper.addArmorMaterial("HBM_STARMETAL", 150, new int[] { 3, 8, 6, 3 }, 100); public static ArmorMaterial aMatBismuth = EnumHelper.addArmorMaterial("HBM_BISMUTH", 100, new int[] { 3, 8, 6, 3 }, 100); From 360177414aad78481c8455ba39719f46fcda7afb Mon Sep 17 00:00:00 2001 From: Bob Date: Sat, 9 Sep 2023 23:43:50 +0200 Subject: [PATCH 297/432] the telex machine is kept so clean --- .../com/hbm/blocks/network/RadioTelex.java | 15 + .../inventory/gui/GUIScreenRadioTorch.java | 1 - .../inventory/gui/GuiScreenRadioTelex.java | 321 ++++++++++++++++++ .../hbm/items/armor/ArmorTrenchmaster.java | 4 +- .../java/com/hbm/main/CraftingManager.java | 2 +- .../network/TileEntityRadioTelex.java | 189 ++++++++++- src/main/resources/assets/hbm/lang/de_DE.lang | 2 +- .../hbm/textures/blocks/radio_telex.png | Bin 0 -> 609 bytes 8 files changed, 528 insertions(+), 6 deletions(-) create mode 100644 src/main/java/com/hbm/inventory/gui/GuiScreenRadioTelex.java create mode 100644 src/main/resources/assets/hbm/textures/blocks/radio_telex.png diff --git a/src/main/java/com/hbm/blocks/network/RadioTelex.java b/src/main/java/com/hbm/blocks/network/RadioTelex.java index 76ae87d21..8b7614b51 100644 --- a/src/main/java/com/hbm/blocks/network/RadioTelex.java +++ b/src/main/java/com/hbm/blocks/network/RadioTelex.java @@ -1,9 +1,12 @@ package com.hbm.blocks.network; import com.hbm.blocks.BlockDummyable; +import com.hbm.main.MainRegistry; import com.hbm.tileentity.network.TileEntityRadioTelex; +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; @@ -28,4 +31,16 @@ public class RadioTelex extends BlockDummyable { public int getOffset() { return 0; } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if(world.isRemote && !player.isSneaking()) { + int[] pos = this.findCore(world, x, y, z); + if(pos == null) return false; + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, pos[0], pos[1], pos[2]); + return true; + } else { + return !player.isSneaking(); + } + } } diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenRadioTorch.java b/src/main/java/com/hbm/inventory/gui/GUIScreenRadioTorch.java index fb9f41afc..fc90751df 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenRadioTorch.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenRadioTorch.java @@ -85,7 +85,6 @@ public class GUIScreenRadioTorch extends GuiScreen { GL11.glEnable(GL11.GL_LIGHTING); } - private void drawGuiContainerForegroundLayer(int x, int y) { String name = I18nUtil.resolveKey(this.title); this.fontRendererObj.drawString(name, this.guiLeft + this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, this.guiTop + 6, 4210752); diff --git a/src/main/java/com/hbm/inventory/gui/GuiScreenRadioTelex.java b/src/main/java/com/hbm/inventory/gui/GuiScreenRadioTelex.java new file mode 100644 index 000000000..316c6e9fb --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GuiScreenRadioTelex.java @@ -0,0 +1,321 @@ +package com.hbm.inventory.gui; + +import java.util.Arrays; +import java.util.Random; + +import org.lwjgl.input.Keyboard; +import org.lwjgl.opengl.GL11; + +import com.hbm.lib.RefStrings; +import com.hbm.packet.NBTControlPacket; +import com.hbm.packet.PacketDispatcher; +import com.hbm.tileentity.network.TileEntityRadioTelex; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.gui.GuiTextField; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ChatAllowedCharacters; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; + +public class GuiScreenRadioTelex extends GuiScreen { + + protected static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/machine/gui_telex.png"); + protected TileEntityRadioTelex telex; + protected int xSize = 256; + protected int ySize = 244; + protected int guiLeft; + protected int guiTop; + protected GuiTextField txFrequency; + protected GuiTextField rxFrequency; + protected boolean textFocus = false; + + protected String[] txBuffer; + protected int cursorPos = 0; + + public GuiScreenRadioTelex(TileEntityRadioTelex tile) { + this.telex = tile; + this.txBuffer = new String[tile.txBuffer.length]; + + for(int i = 0; i < txBuffer.length; i++) { + this.txBuffer[i] = tile.txBuffer[i]; + } + + for(int i = 4; i > 0; i--) { + if(!txBuffer[i].isEmpty()) { + cursorPos = i; + break; + } + } + } + + @Override + public void initGui() { + super.initGui(); + this.guiLeft = (this.width - this.xSize) / 2; + this.guiTop = (this.height - this.ySize) / 2; + + Keyboard.enableRepeatEvents(true); + + this.txFrequency = new GuiTextField(this.fontRendererObj, guiLeft + 29, guiTop + 110, 90, 14); + this.txFrequency.setTextColor(0x00ff00); + this.txFrequency.setDisabledTextColour(0x00ff00); + this.txFrequency.setEnableBackgroundDrawing(false); + this.txFrequency.setMaxStringLength(10); + this.txFrequency.setText(telex.txChannel == null ? "" : telex.txChannel); + + this.rxFrequency = new GuiTextField(this.fontRendererObj, guiLeft + 29, guiTop + 224, 90, 14); + this.rxFrequency.setTextColor(0x00ff00); + this.rxFrequency.setDisabledTextColour(0x00ff00); + this.rxFrequency.setEnableBackgroundDrawing(false); + this.rxFrequency.setMaxStringLength(10); + this.rxFrequency.setText(telex.rxChannel == null ? "" : telex.rxChannel); + } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + this.drawDefaultBackground(); + this.drawGuiContainerBackgroundLayer(f, mouseX, mouseY); + GL11.glDisable(GL11.GL_LIGHTING); + this.drawGuiContainerForegroundLayer(mouseX, mouseY); + GL11.glEnable(GL11.GL_LIGHTING); + } + + private void drawGuiContainerForegroundLayer(int x, int y) { + + if(checkClick(x, y, 7, 85, 18, 18)) this.func_146283_a(Arrays.asList(new String[] {EnumChatFormatting.GOLD + "BELL", "Plays a bell when this character is received"}), x, y); + if(checkClick(x, y, 27, 85, 18, 18)) this.func_146283_a(Arrays.asList(new String[] {EnumChatFormatting.GOLD + "PRINT", "Forces recipient to print message after transmission ends"}), x, y); + if(checkClick(x, y, 47, 85, 18, 18)) this.func_146283_a(Arrays.asList(new String[] {EnumChatFormatting.GOLD + "CLEAR SCREEN", "Wipes message buffer when this character is received"}), x, y); + if(checkClick(x, y, 67, 85, 18, 18)) this.func_146283_a(Arrays.asList(new String[] {EnumChatFormatting.GOLD + "FORMAT", "Inserts format character for message formatting"}), x, y); + if(checkClick(x, y, 87, 85, 18, 18)) this.func_146283_a(Arrays.asList(new String[] {EnumChatFormatting.GOLD + "PAUSE", "Pauses message transmission for one second"}), x, y); + + if(checkClick(x, y, 127, 105, 18, 18)) this.func_146283_a(Arrays.asList(new String[] {EnumChatFormatting.GREEN + "SAVE ID"}), x, y); + if(checkClick(x, y, 147, 105, 18, 18)) this.func_146283_a(Arrays.asList(new String[] {EnumChatFormatting.YELLOW + "SEND MESSAGE"}), x, y); + if(checkClick(x, y, 167, 105, 18, 18)) this.func_146283_a(Arrays.asList(new String[] {EnumChatFormatting.RED + "DELETE MESSAGE BUFFER"}), x, y); + + if(checkClick(x, y, 127, 219, 18, 18)) this.func_146283_a(Arrays.asList(new String[] {EnumChatFormatting.GREEN + "SAVE ID"}), x, y); + if(checkClick(x, y, 147, 219, 18, 18)) this.func_146283_a(Arrays.asList(new String[] {EnumChatFormatting.AQUA + "PRINT MESSAGE"}), x, y); + if(checkClick(x, y, 167, 219, 18, 18)) this.func_146283_a(Arrays.asList(new String[] {EnumChatFormatting.RED + "CLEAR SCREEN"}), x, y); + } + + private void drawGuiContainerBackgroundLayer(float f, int mouseX, int mouseY) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + this.txFrequency.drawTextBox(); + this.rxFrequency.drawTextBox(); + + for(int line = 0; line < 5; line++) { + String text = txBuffer[line]; + int y = 11 + 14 * line; + + String format = EnumChatFormatting.RESET + ""; + + for(int index = 0; index < text.length(); index++) { + int x = 11 + 7 * index; + char c = text.charAt(index); + x += (7 - this.fontRendererObj.getCharWidth(c)) / 2; + if(c == '§' && text.length() > index + 1) { + format = "\u00a7" + text.charAt(index + 1); + x -= 3; + } + String glyph = format + c; + if(c == '\u0007') glyph = EnumChatFormatting.RED + "B"; + if(c == '\u000c') glyph = EnumChatFormatting.RED + "P"; + if(c == '\u007f') glyph = EnumChatFormatting.RED + "<"; + if(c == '\u0016') glyph = EnumChatFormatting.RED + "W"; + this.fontRendererObj.drawString(glyph, guiLeft + x, guiTop + y, 0x00ff00); + } + + if(System.currentTimeMillis() % 1000 < 500 && this.textFocus) { + int x = Math.max(11 + 7 * (text.length() - 1) + 7, 11); + if(this.cursorPos == line) { + this.fontRendererObj.drawString("|", guiLeft + x, guiTop + y, 0x00ff00); + } + } + } + + for(int line = 0; line < 5; line++) { + String text = telex.rxBuffer[line]; + int y = 145 + 14 * line; + + String format = EnumChatFormatting.RESET + ""; + + int x = 11; + + for(int index = 0; index < text.length(); index++) { + + char c = text.charAt(index); + x += (7 - this.fontRendererObj.getCharWidth(c)) / 2; + if(c == '§' && text.length() > index + 1) { + format = "\u00a7" + text.charAt(index + 1); + c = ' '; + } else if(c == '§') { + c = ' '; + } else if(index > 0 && text.charAt(index - 1) == '§') { + c = ' '; + x -= 14; + } + String glyph = format + c; + this.fontRendererObj.drawString(glyph, guiLeft + x, guiTop + y, 0x00ff00); + x += 7; + } + } + + GL11.glDisable(GL11.GL_TEXTURE_2D); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glLineWidth(3F); + Random rand = new Random(telex.sendingChar); + Tessellator tess = Tessellator.instance; + tess.startDrawing(GL11.GL_LINES); + tess.setColorOpaque_I(0x00ff00); + double offset = 0; + for(int i = 0; i < 48; i++) { + tess.addVertex(guiLeft + 199 + i, guiTop + 93.5 + offset, this.zLevel + 10); + if(telex.sendingChar != ' ' && i > 4 && i < 43) offset = rand.nextGaussian() * 7; else offset = 0; + offset = MathHelper.clamp_double(offset, -7D, 7D); + tess.addVertex(guiLeft + 199 + i + 1, guiTop + 93.5 + offset, this.zLevel + 10); + } + tess.draw(); + GL11.glEnable(GL11.GL_TEXTURE_2D); + } + + @Override + protected void mouseClicked(int x, int y, int i) { + super.mouseClicked(x, y, i); + + this.txFrequency.mouseClicked(x, y, i); + this.rxFrequency.mouseClicked(x, y, i); + + if(guiLeft + 7 <= x && guiLeft + 7 + 242 > x && guiTop + 7 < y && guiTop + 7 + 74 >= y) { + this.textFocus = true; + } else { + this.textFocus = false; + } + + char character = '\0'; + String cmd = null; + + /* special characters */ + // BEL + if(checkClick(x, y, 7, 85, 18, 18)) character = '\u0007'; // bell + // PRT + if(checkClick(x, y, 27, 85, 18, 18)) character = '\u000c'; // form feed + // CLS + if(checkClick(x, y, 47, 85, 18, 18)) character = '\u007f'; // delete + // FMT + if(checkClick(x, y, 67, 85, 18, 18)) character = '§'; // minecraft formatting character + // PSE + if(checkClick(x, y, 87, 85, 18, 18)) character = '\u0016'; // synchronous idle + + // SVE + if(checkClick(x, y, 127, 105, 18, 18) || checkClick(x, y, 127, 219, 18, 18)) cmd = "sve"; // save channel + // SND + if(checkClick(x, y, 147, 105, 18, 18)) cmd = "snd"; // send message in TX buffer + // DEL + if(checkClick(x, y, 167, 105, 18, 18)) { // delete message in TX buffer + cmd = "rxdel"; + for(int j = 0; j < 5; j++) this.txBuffer[j] = ""; + NBTTagCompound data = new NBTTagCompound(); + for(int j = 0; j < 5; j++) data.setString("tx" + j, this.txBuffer[j]); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, telex.xCoord, telex.yCoord, telex.zCoord)); + } + // PRT + if(checkClick(x, y, 147, 219, 18, 18)) cmd = "rxprt"; // print message in RX buffer + // CLS + if(checkClick(x, y, 167, 219, 18, 18)) cmd = "rxcls"; // delete message in RX buffer + + if(cmd != null) { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + data.setString("cmd", cmd); + + if("snd".equals(cmd)) { + for(int j = 0; j < 5; j++) data.setString("tx" + j, this.txBuffer[j]); + } + + if("sve".equals(cmd)) { + data.setString("txChan", this.txFrequency.getText()); + data.setString("rxChan", this.rxFrequency.getText()); + } + + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, telex.xCoord, telex.yCoord, telex.zCoord)); + } + + if(character != '\0') { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + setTextFocus(); + submitChar(character); + } + } + + protected boolean checkClick(int x, int y, int left, int top, int sizeX, int sizeY) { + return guiLeft + left <= x && guiLeft + left + sizeX > x && guiTop + top < y && guiTop + top + sizeY >= y; + } + + protected void setTextFocus() { + this.textFocus = true; + this.txFrequency.setFocused(false); + this.rxFrequency.setFocused(false); + } + + @Override + protected void keyTyped(char c, int i) { + + if(this.txFrequency.textboxKeyTyped(c, i)) return; + if(this.rxFrequency.textboxKeyTyped(c, i)) return; + + if(this.textFocus) { + + if(i == 1) { + this.textFocus = false; + return; + } + + if(i == Keyboard.KEY_UP) this.cursorPos--; + if(i == Keyboard.KEY_DOWN) this.cursorPos++; + + this.cursorPos = MathHelper.clamp_int(cursorPos, 0, 4); + + if(ChatAllowedCharacters.isAllowedCharacter(c)) { + submitChar(c); + return; + } + + if(i == Keyboard.KEY_BACK && this.txBuffer[cursorPos].length() > 0) { + this.txBuffer[cursorPos] = this.txBuffer[cursorPos].substring(0, this.txBuffer[cursorPos].length() - 1); + } + } + + if(i == 1 || i == this.mc.gameSettings.keyBindInventory.getKeyCode()) { + this.mc.thePlayer.closeScreen(); + this.mc.setIngameFocus(); + } + } + + protected void submitChar(char c) { + String line = this.txBuffer[cursorPos]; + + if(line.length() < TileEntityRadioTelex.lineWidth) { + this.txBuffer[cursorPos] = line + c; + } + } + + @Override + public void onGuiClosed() { + Keyboard.enableRepeatEvents(false); + NBTTagCompound data = new NBTTagCompound(); + for(int j = 0; j < 5; j++) data.setString("tx" + j, this.txBuffer[j]); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, telex.xCoord, telex.yCoord, telex.zCoord)); + } + + @Override + public boolean doesGuiPauseGame() { + return false; + } +} diff --git a/src/main/java/com/hbm/items/armor/ArmorTrenchmaster.java b/src/main/java/com/hbm/items/armor/ArmorTrenchmaster.java index 5182cbdb5..e4c42037e 100644 --- a/src/main/java/com/hbm/items/armor/ArmorTrenchmaster.java +++ b/src/main/java/com/hbm/items/armor/ArmorTrenchmaster.java @@ -40,7 +40,7 @@ public class ArmorTrenchmaster extends ArmorFSB { public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { super.addInformation(stack, player, list, ext); - list.add(EnumChatFormatting.RED + " + " + I18nUtil.resolveKey("armor.fasterReload")); - list.add(EnumChatFormatting.GRAY + " + " + I18nUtil.resolveKey("armor.moreAmmo")); + list.add(EnumChatFormatting.RED + " " + I18nUtil.resolveKey("armor.fasterReload")); + list.add(EnumChatFormatting.RED + " " + I18nUtil.resolveKey("armor.moreAmmo")); } } diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 338981eaa..177442895 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -783,7 +783,7 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModItems.ams_catalyst_dineutronium, 1), new Object[] { ModItems.ams_catalyst_blank, ModItems.rune_hagalaz, ModItems.rune_hagalaz, ModItems.rune_thurisaz, ModItems.rune_thurisaz, DNT.dust(), DNT.dust(), DNT.dust(), DNT.dust() }); addRecipeAuto(new ItemStack(ModBlocks.dfc_core, 1), new Object[] { "DLD", "LML", "DLD", 'D', ModItems.ingot_bismuth, 'L', DNT.block(), 'M', KEY_CIRCUIT_BISMUTH }); addRecipeAuto(new ItemStack(ModBlocks.dfc_emitter, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateCast(), 'D', ModItems.plate_desh, 'T', ModBlocks.machine_transformer_dnt, 'X', ModItems.crystal_xen, 'L', ModItems.sat_head_laser }); - addRecipeAuto(new ItemStack(ModBlocks.dfc_receiver, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateCast(), 'D', ModItems.plate_desh, 'T', ModBlocks.machine_transformer_dnt, 'X', new ItemStack(ModBlocks.sellafield, 1, 5), 'L', ModItems.hull_small_steel }); + addRecipeAuto(new ItemStack(ModBlocks.dfc_receiver, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateCast(), 'D', ModItems.plate_desh, 'T', ModBlocks.machine_transformer_dnt, 'X', ModBlocks.block_dineutronium, 'L', ModItems.hull_small_steel }); addRecipeAuto(new ItemStack(ModBlocks.dfc_injector, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateCast(), 'D', CMB.plate(), 'T', ModBlocks.machine_fluidtank, 'X', ModItems.motor, 'L', ModItems.pipes_steel }); addRecipeAuto(new ItemStack(ModBlocks.dfc_stabilizer, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateCast(), 'D', ModItems.plate_desh, 'T', ModItems.singularity_spark, 'X', ModItems.magnet_circular, 'L', ModItems.crystal_xen }); addRecipeAuto(new ItemStack(ModBlocks.barrel_plastic, 1), new Object[] { "IPI", "I I", "IPI", 'I', ModItems.plate_polymer, 'P', AL.plate() }); diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityRadioTelex.java b/src/main/java/com/hbm/tileentity/network/TileEntityRadioTelex.java index e1b117888..7b933f115 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityRadioTelex.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityRadioTelex.java @@ -1,7 +1,194 @@ package com.hbm.tileentity.network; +import com.hbm.interfaces.IControlReceiver; +import com.hbm.inventory.gui.GuiScreenRadioTelex; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.INBTPacketReceiver; +import com.hbm.tileentity.network.RTTYSystem.RTTYChannel; +import com.hbm.util.ItemStackUtil; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.inventory.Container; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; -public class TileEntityRadioTelex extends TileEntity { +public class TileEntityRadioTelex extends TileEntity implements INBTPacketReceiver, IControlReceiver, IGUIProvider { + public static final int lineWidth = 33; + public String txChannel = ""; + public String rxChannel = ""; + public String[] txBuffer = new String[] {"", "", "", "", ""}; + public String[] rxBuffer = new String[] {"", "", "", "", ""}; + public int sendingLine = 0; + public int sendingIndex = 0; + public boolean isSending = false; + public int sendingWait = 0; + public int writingLine = 0; + public boolean printAfterRx = false; + public boolean deleteOnReceive = true; + public char sendingChar = ' '; + + public static final char eol = '\n'; + public static final char eot = '\u0004'; + public static final char bell = '\u0007'; + public static final char print = '\u000c'; + public static final char pause = '\u0016'; + public static final char clear = '\u007f'; + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + this.sendingChar = ' '; + + if(this.isSending && this.txChannel.isEmpty()) this.isSending = false; + + if(this.isSending) { + + if(sendingWait > 0) { + sendingWait--; + } else { + + String line = txBuffer[sendingLine]; + + if(line.length() > sendingIndex) { + char c = line.charAt(sendingIndex); + sendingIndex++; + if(c == pause) { + sendingWait = 20; + } else { + RTTYSystem.broadcast(worldObj, this.txChannel, c); + this.sendingChar = c; + } + } else { + + if(sendingLine >= 4) { + this.isSending = false; + RTTYSystem.broadcast(worldObj, this.txChannel, eot); + this.sendingLine = 0; + this.sendingIndex = 0; + } else { + RTTYSystem.broadcast(worldObj, this.txChannel, eol); + this.sendingLine++; + this.sendingIndex = 0; + } + } + } + } + + if(!this.rxChannel.isEmpty()) { + RTTYChannel chan = RTTYSystem.listen(worldObj, this.rxChannel); + + if(chan != null && chan.signal instanceof Character && (chan.timeStamp > worldObj.getTotalWorldTime() - 2 && chan.timeStamp != -1)) { + char c = (char) chan.signal; + + if(this.deleteOnReceive) { + this.deleteOnReceive = false; + for(int i = 0; i < 5; i++) this.rxBuffer[i] = ""; + this.writingLine = 0; + } + + if(c == eot) { + if(this.printAfterRx) { + this.printAfterRx = false; + this.print(); + } + this.deleteOnReceive = true; + } else if(c == eol) { + if(this.writingLine < 4) this.writingLine++; + } else if(c == bell) { + worldObj.playSoundEffect(xCoord, yCoord, zCoord, "random.orb", 2F, 0.5F); + } else if(c == print) { + this.printAfterRx = true; + } else if(c == clear) { + for(int i = 0; i < 5; i++) this.rxBuffer[i] = ""; + this.writingLine = 0; + } else { + this.rxBuffer[this.writingLine] += c; + } + } + } + + NBTTagCompound data = new NBTTagCompound(); + for(int i = 0; i < 5; i++) { + data.setString("tx" + i, txBuffer[i]); + data.setString("rx" + i, rxBuffer[i]); + } + data.setString("txChan", txChannel); + data.setString("rxChan", rxChannel); + data.setInteger("sending", sendingChar); + INBTPacketReceiver.networkPack(this, data, 16); + } + } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + + for(int i = 0; i < 5; i++) { + txBuffer[i] = nbt.getString("tx" + i); + rxBuffer[i] = nbt.getString("rx" + i); + } + this.txChannel = nbt.getString("txChan"); + this.rxChannel = nbt.getString("rxChan"); + this.sendingChar = (char) nbt.getInteger("sending"); + } + + @Override + public void receiveControl(NBTTagCompound data) { + + for(int i = 0; i < 5; i++) { + if(data.hasKey("tx" + i)) this.txBuffer[i] = data.getString("tx" + i); + } + + String cmd = data.getString("cmd"); + + if("snd".equals(cmd) && !this.isSending) { + this.isSending = true; + this.sendingLine = 0; + this.sendingIndex = 0; + } + + if("rxprt".equals(cmd)) { + print(); + } + + if("rxcls".equals(cmd)) { + for(int i = 0; i < 5; i++) this.rxBuffer[i] = ""; + this.writingLine = 0; + } + + if("sve".equals(cmd)) { + this.txChannel = data.getString("txChan"); + this.rxChannel = data.getString("rxChan"); + this.markDirty(); + } + } + + public void print() { + ItemStack stack = new ItemStack(Items.paper); + ItemStackUtil.addTooltipToStack(stack, rxBuffer); + stack.setStackDisplayName("Message"); + worldObj.spawnEntityInWorld(new EntityItem(worldObj, xCoord + 0.5, yCoord + 1, zCoord + 0.5, stack)); + } + + @Override + public boolean hasPermission(EntityPlayer player) { + return player.getDistanceSq(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5) < 16 * 16; + } + + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return null; } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GuiScreenRadioTelex(this); + } } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 24f23de44..f2a0719a4 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -88,7 +88,7 @@ armor.cap=Schadensobergrenze: %s armor.damageModifier=Modifikator: %s (%s) armor.electricJetpack=Ionentriebwerke armor.explosionImmune=Kann nur Schaden durch Explosionen nehmen -armor.fasterReload=Schneklleres Nachladen +armor.fasterReload=Schnelleres Nachladen armor.fastFall=Schneller Fall armor.fireproof=Feuerfest armor.fullSetBonus=Set-Bonus: diff --git a/src/main/resources/assets/hbm/textures/blocks/radio_telex.png b/src/main/resources/assets/hbm/textures/blocks/radio_telex.png new file mode 100644 index 0000000000000000000000000000000000000000..fddb508ddb390e352104c3e52f2c048d6f6f3b04 GIT binary patch literal 609 zcmV-n0-pVeP)fgc5QZP`+RhrgI8oF_sSp%;EJ#I2oVXw%s!9m;Kkyg$ zUA=KAr%HSs5f^SjNDXR$x@m|_?A@%*!Nf|4*o#Ly^FHs)tes~Mu2%rMu=p(rz|h{| zhWx_+&Z1Tq78jr$M6_y74H&~Tx{omir4-g$%CZE&T8kHXq{a{m^A`}wHJ6Qz4PL)F zp*k=)Cmz6R{KW8buwMga#e5B5jA;bbfdN>HKkvslPw$4+ve0iyhV~BqexI@|vDTuL z!kAhpgg{D3p639#TkUvlgyE?E9vvMK93PV%9x@t@*xueINfNr&mYCWkX{_|{?i$^w!*r`^%-1@ z+1=^T2}1m?Q!jC|+hIJ*=*1BO#zZZTv@nhHa{eOBc=aJgse19^Dys`SLG2QU{@RNG zM6K0PI-L$d5FjR*#+15AwnJ}4@Go$ZY4SX8b|K=>CoK%7)O??$EIL{q!ITtA$mje4@3sXo-mVs_00000NkvXXu0mjf@}CqK literal 0 HcmV?d00001 From 37eb69e47d60ebd3d56a98a13d57c50ab3ae9b52 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 10 Sep 2023 21:02:20 +0200 Subject: [PATCH 298/432] wa'er pumps, new capacitor, fixes --- src/main/java/com/hbm/blocks/ModBlocks.java | 13 +- .../com/hbm/blocks/machine/MachinePump.java | 100 ++ .../ChunkRadiationHandlerSimple.java | 2 +- .../com/hbm/inventory/OreDictManager.java | 1 + .../gui/GUIScreenTemplateFolder.java | 7 +- .../inventory/recipes/anvil/AnvilRecipes.java | 16 + src/main/java/com/hbm/main/ClientProxy.java | 2 + .../java/com/hbm/main/CraftingManager.java | 1 + src/main/java/com/hbm/main/MainRegistry.java | 4 +- .../com/hbm/main/ModEventHandlerImpact.java | 2 + .../java/com/hbm/main/ResourceManager.java | 7 + .../com/hbm/render/tileentity/RenderPump.java | 102 ++ .../render/tileentity/RenderSteamEngine.java | 2 +- .../java/com/hbm/saveddata/TomSaveData.java | 4 + .../java/com/hbm/tileentity/TileMappings.java | 3 + .../machine/TileEntityMachinePumpBase.java | 119 ++ .../TileEntityMachinePumpElectric.java | 69 + .../machine/TileEntityMachinePumpSteam.java | 76 ++ .../network/TileEntityRadioTelex.java | 35 +- src/main/resources/assets/hbm/lang/de_DE.lang | 4 + src/main/resources/assets/hbm/lang/en_US.lang | 4 + .../assets/hbm/models/machines/pump.obj | 1107 +++++++++++++++++ .../blocks/capacitor_schrabidate_bottom.png | Bin 0 -> 554 bytes .../capacitor_schrabidate_inner_side.png | Bin 0 -> 170 bytes .../capacitor_schrabidate_inner_top.png | Bin 0 -> 271 bytes .../blocks/capacitor_schrabidate_side.png | Bin 0 -> 328 bytes .../blocks/capacitor_schrabidate_top.png | Bin 0 -> 203 bytes .../hbm/textures/models/machines/pump.png | Bin 0 -> 937 bytes .../models/machines/pump_electric.png | Bin 0 -> 5288 bytes .../textures/models/machines/pump_steam.png | Bin 0 -> 8373 bytes 30 files changed, 1672 insertions(+), 8 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/machine/MachinePump.java create mode 100644 src/main/java/com/hbm/render/tileentity/RenderPump.java create mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpBase.java create mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpElectric.java create mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpSteam.java create mode 100644 src/main/resources/assets/hbm/models/machines/pump.obj create mode 100644 src/main/resources/assets/hbm/textures/blocks/capacitor_schrabidate_bottom.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/capacitor_schrabidate_inner_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/capacitor_schrabidate_inner_top.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/capacitor_schrabidate_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/capacitor_schrabidate_top.png create mode 100644 src/main/resources/assets/hbm/textures/models/machines/pump.png create mode 100644 src/main/resources/assets/hbm/textures/models/machines/pump_electric.png create mode 100644 src/main/resources/assets/hbm/textures/models/machines/pump_steam.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 786f3da08..723931983 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -660,6 +660,9 @@ public class ModBlocks { public static Block nuke_n45; public static Block nuke_fstbmb; public static Block bomb_multi; + + public static Block pump_steam; + public static Block pump_electric; public static Block heater_firebox; public static Block heater_oven; @@ -771,6 +774,7 @@ public class ModBlocks { public static Block capacitor_gold; public static Block capacitor_niobium; public static Block capacitor_tantalium; + public static Block capacitor_schrabidate; public static Block machine_coal_off; public static Block machine_coal_on; @@ -1821,6 +1825,9 @@ public class ModBlocks { semtex = new BlockSemtex().setBlockName("semtex").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.nukeTab).setHardness(0.0F).setBlockTextureName(RefStrings.MODID + ":semtex"); c4 = new BlockC4().setBlockName("c4").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.nukeTab).setHardness(0.0F).setBlockTextureName(RefStrings.MODID + ":c4"); fissure_bomb = new BlockFissureBomb().setBlockName("fissure_bomb").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.nukeTab).setHardness(0.0F).setBlockTextureName(RefStrings.MODID + ":fissure_bomb"); + + pump_steam = new MachinePump().setBlockName("pump_steam").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pump_steam"); + pump_electric = new MachinePump().setBlockName("pump_electric").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pump_electric"); heater_firebox = new HeaterFirebox().setBlockName("heater_firebox").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); heater_oven = new HeaterOven().setBlockName("heater_oven").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire"); @@ -1924,7 +1931,8 @@ public class ModBlocks { capacitor_copper = new MachineCapacitor(Material.iron, 1_000_000L, "copper").setBlockName("capacitor_copper").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_copper"); capacitor_gold = new MachineCapacitor(Material.iron, 5_000_000L, "gold").setBlockName("capacitor_gold").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName("gold_block"); capacitor_niobium = new MachineCapacitor(Material.iron, 25_000_000L, "niobium").setBlockName("capacitor_niobium").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_niobium"); - capacitor_tantalium = new MachineCapacitor(Material.iron, 100_000_000L, "tantalium").setBlockName("capacitor_tantalium").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_tantalium"); + capacitor_tantalium = new MachineCapacitor(Material.iron, 150_000_000L, "tantalium").setBlockName("capacitor_tantalium").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_tantalium"); + capacitor_schrabidate = new MachineCapacitor(Material.iron, 50_000_000_000L, "schrabidate").setBlockName("capacitor_schrabidate").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_schrabidate"); machine_coal_off = new MachineCoal(false).setBlockName("machine_coal_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); machine_coal_on = new MachineCoal(true).setBlockName("machine_coal_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F); @@ -3089,6 +3097,8 @@ public class ModBlocks { GameRegistry.registerBlock(machine_press, machine_press.getUnlocalizedName()); GameRegistry.registerBlock(machine_epress, machine_epress.getUnlocalizedName()); register(machine_conveyor_press); + register(pump_steam); + register(pump_electric); register(heater_firebox); register(heater_oven); register(machine_ashpit); @@ -3277,6 +3287,7 @@ public class ModBlocks { register(capacitor_gold); register(capacitor_niobium); register(capacitor_tantalium); + register(capacitor_schrabidate); GameRegistry.registerBlock(machine_transformer, machine_transformer.getUnlocalizedName()); GameRegistry.registerBlock(machine_transformer_20, machine_transformer_20.getUnlocalizedName()); GameRegistry.registerBlock(machine_transformer_dnt, machine_transformer_dnt.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/machine/MachinePump.java b/src/main/java/com/hbm/blocks/machine/MachinePump.java new file mode 100644 index 000000000..ee90203b1 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachinePump.java @@ -0,0 +1,100 @@ +package com.hbm.blocks.machine; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ILookOverlay; +import com.hbm.blocks.ITooltipProvider; +import com.hbm.blocks.ModBlocks; +import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.machine.TileEntityMachinePumpElectric; +import com.hbm.tileentity.machine.TileEntityMachinePumpSteam; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; +import net.minecraftforge.common.util.ForgeDirection; + +public class MachinePump extends BlockDummyable implements ITooltipProvider, ILookOverlay { + + public MachinePump() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) { + if(this == ModBlocks.pump_steam) return new TileEntityMachinePumpSteam(); + if(this == ModBlocks.pump_electric) return new TileEntityMachinePumpElectric(); + } + if(meta >= 6) { + if(this == ModBlocks.pump_steam) return new TileEntityProxyCombo().fluid(); + if(this == ModBlocks.pump_electric) return new TileEntityProxyCombo().fluid().power(); + } + return null; + } + + @Override + public int[] getDimensions() { + return new int[] {3, 0, 1, 1, 1, 1}; + } + + @Override + public int getOffset() { + return 1; + } + + @Override + public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + + this.makeExtra(world, x - dir.offsetX + 1, y, z - dir.offsetZ); + this.makeExtra(world, x - dir.offsetX - 1, y, z - dir.offsetZ); + this.makeExtra(world, x - dir.offsetX, y, z - dir.offsetZ + 1); + this.makeExtra(world, x - dir.offsetX, y, z - dir.offsetZ - 1); + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } + + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + + int[] pos = this.findCore(world, x, y, z); + + if(pos == null) + return; + + TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]); + + List text = new ArrayList(); + + if(te instanceof TileEntityMachinePumpSteam) { + TileEntityMachinePumpSteam pump = (TileEntityMachinePumpSteam) te; + text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + I18nUtil.resolveKey(pump.steam.getTankType().getUnlocalizedName()) + ": " + String.format("%,d", pump.steam.getFill()) + " / " + String.format("%,d", pump.steam.getMaxFill()) + "mB"); + text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + I18nUtil.resolveKey(pump.lps.getTankType().getUnlocalizedName()) + ": " + String.format("%,d", pump.lps.getFill()) + " / " + String.format("%,d", pump.lps.getMaxFill()) + "mB"); + text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + I18nUtil.resolveKey(pump.water.getTankType().getUnlocalizedName()) + ": " + String.format("%,d", pump.water.getFill()) + " / " + String.format("%,d", pump.water.getMaxFill()) + "mB"); + } + + if(te instanceof TileEntityMachinePumpElectric) { + TileEntityMachinePumpElectric pump = (TileEntityMachinePumpElectric) te; + text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + String.format("%,d", pump.power) + " / " + String.format("%,d", pump.maxPower) + "HE"); + text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + I18nUtil.resolveKey(pump.water.getTankType().getUnlocalizedName()) + ": " + String.format("%,d", pump.water.getFill()) + " / " + String.format("%,d", pump.water.getMaxFill()) + "mB"); + } + + if(pos[1] > 70) { + text.add("&[" + (BobMathUtil.getBlink() ? 0xff0000 : 0xffff00) + "&]! ! ! ALTITUDE ! ! !"); + } + + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } +} diff --git a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerSimple.java b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerSimple.java index d080eb6e6..72ab84887 100644 --- a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerSimple.java +++ b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerSimple.java @@ -102,7 +102,7 @@ public class ChunkRadiationHandlerSimple extends ChunkRadiationHandler { } float rad = radiation.get(newCoord); - if(rad > RadiationConfig.fogRad && world != null && world.rand.nextInt(RadiationConfig.fogCh) == 0 && world.getChunkFromChunkCoords(coord.chunkXPos, coord.chunkZPos).isChunkLoaded) { + if(rad > RadiationConfig.fogRad && world != null && world.rand.nextInt(RadiationConfig.fogCh) == 0 && world.getChunkProvider().chunkExists(coord.chunkXPos, coord.chunkZPos)) { int x = coord.chunkXPos * 16 + world.rand.nextInt(16); int z = coord.chunkZPos * 16 + world.rand.nextInt(16); diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index 02afded30..685251982 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -63,6 +63,7 @@ public class OreDictManager { public static final String KEY_LEAVES = "treeLeaves"; public static final String KEY_SAPLING = "treeSapling"; public static final String KEY_SAND = "sand"; + public static final String KEY_COBBLESTONE = "cobblestone"; public static final String KEY_BLACK = "dyeBlack"; public static final String KEY_RED = "dyeRed"; diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java b/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java index 4d09369be..44a89c104 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java @@ -101,8 +101,11 @@ public class GUIScreenTemplateFolder extends GuiScreen { for(int i = 0; i < AssemblerRecipes.recipeList.size(); i++) { if(AssemblerRecipes.hidden.get(AssemblerRecipes.recipeList.get(i)) != null && - AssemblerRecipes.hidden.get(AssemblerRecipes.recipeList.get(i)).contains(player.getHeldItem().getItem())) - allStacks.add(new ItemStack(ModItems.assembly_template, 1, i)); + AssemblerRecipes.hidden.get(AssemblerRecipes.recipeList.get(i)).contains(player.getHeldItem().getItem())) { + + ComparableStack comp = AssemblerRecipes.recipeList.get(i); + allStacks.add(ItemAssemblyTemplate.writeType(new ItemStack(ModItems.assembly_template, 1, i), comp)); + } } isJournal = true; diff --git a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java index 3df9c8e30..607b9f289 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -225,6 +225,22 @@ public class AnvilRecipes { new ComparableStack(ModItems.circuit_aluminium, 1 * ukModifier) }, new AnvilOutput(new ItemStack(ModBlocks.machine_assembler))).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( + new AStack[] { + new OreDictStack(KEY_COBBLESTONE, 8), + new OreDictStack(KEY_PLANKS, 16), + new OreDictStack(IRON.ingot(), 4), + new OreDictStack(CU.plate(), 8) + }, new AnvilOutput(new ItemStack(ModBlocks.pump_steam))).setTier(2)); + + constructionRecipes.add(new AnvilConstructionRecipe( + new AStack[] { + new ComparableStack(Blocks.stonebrick, 8), + new OreDictStack(STEEL.plate(), 16), + new ComparableStack(ModItems.motor, 2), + new ComparableStack(ModItems.circuit_copper, 1) + }, new AnvilOutput(new ItemStack(ModBlocks.pump_electric))).setTier(3)); + constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] { new ComparableStack(Blocks.furnace), diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index c73c53576..c9800c9a6 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -289,6 +289,8 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPistonInserter.class, new RenderPistonInserter()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityConveyorPress.class, new RenderConveyorPress()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRadioTelex.class, new RenderTelex()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachinePumpSteam.class, new RenderPump()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachinePumpElectric.class, new RenderPump()); //Foundry ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFoundryBasin.class, new RenderFoundry()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFoundryMold.class, new RenderFoundry()); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 177442895..24711fe67 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -287,6 +287,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.capacitor_gold, 1), new Object[] { "PPP", "ICI", "WWW", 'P', STEEL.plate(), 'I', ANY_PLASTIC.ingot(), 'C', GOLD.block(), 'W', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.capacitor_niobium, 1), new Object[] { "PPP", "ICI", "WWW", 'P', STEEL.plate(), 'I', RUBBER.ingot(), 'C', NB.block(), 'W', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.capacitor_tantalium, 1), new Object[] { "PPP", "ICI", "WWW", 'P', STEEL.plate(), 'I', ANY_RESISTANTALLOY.ingot(), 'C', TA.block(), 'W', STEEL.ingot() }); + addRecipeAuto(new ItemStack(ModBlocks.capacitor_schrabidate, 1), new Object[] { "PPP", "ICI", "WWW", 'P', STEEL.plate(), 'I', ANY_RESISTANTALLOY.ingot(), 'C', SBD.block(), 'W', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.machine_coal_off, 1), new Object[] { "STS", "SCS", "SFS", 'S', STEEL.ingot(), 'T', ModItems.tank_steel, 'C', MINGRADE.ingot(), 'F', Blocks.furnace }); addRecipeAuto(new ItemStack(ModBlocks.machine_boiler_off, 1), new Object[] { "SPS", "TFT", "SPS", 'S', STEEL.ingot(), 'P', ModItems.board_copper, 'T', ModItems.tank_steel, 'F', Blocks.furnace }); addRecipeAuto(new ItemStack(ModBlocks.machine_boiler_electric_off, 1), new Object[] { "SPS", "TFT", "SPS", 'S', DESH.ingot(), 'P', ModItems.board_copper, 'T', ModItems.tank_steel, 'F', ModBlocks.machine_electric_furnace_off }); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index e8834cff7..7c3542ec2 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -289,7 +289,8 @@ public class MainRegistry { SiegeTier.registerTiers(); HazardRegistry.registerItems(); HazardRegistry.registerTrafos(); - OreDictManager.registerGroups(); + OreDictManager.registerGroups(); //important to run first + OreDictManager.registerOres(); Library.superuser.add("192af5d7-ed0f-48d8-bd89-9d41af8524f8"); Library.superuser.add("5aee1e3d-3767-4987-a222-e7ce1fbdf88e"); @@ -806,7 +807,6 @@ public class MainRegistry { // MUST be initialized AFTER achievements!! BobmazonOfferFactory.init(); - OreDictManager.registerOres(); IMCHandler.registerHandler("blastfurnace", new IMCBlastFurnace()); IMCHandler.registerHandler("crystallizer", new IMCCrystallizer()); diff --git a/src/main/java/com/hbm/main/ModEventHandlerImpact.java b/src/main/java/com/hbm/main/ModEventHandlerImpact.java index fbad76c79..27529784c 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerImpact.java +++ b/src/main/java/com/hbm/main/ModEventHandlerImpact.java @@ -125,6 +125,8 @@ public class ModEventHandlerImpact { @SubscribeEvent(priority = EventPriority.LOWEST) public void onLoad(WorldEvent.Load event) { + TomSaveData.resetLastCached(); + if(GeneralConfig.enableImpactWorldProvider) { DimensionManager.unregisterProviderType(0); DimensionManager.registerProviderType(0, WorldProviderNTM.class, true); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 35da24ba7..7a0ff4d0c 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -96,6 +96,9 @@ public class ResourceManager { //Gas Turbine public static final IModelCustom turbinegas = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/turbinegas.obj")); + //Pumps + public static final IModelCustom pump = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/pump.obj")).asDisplayList(); + //Large Turbine public static final IModelCustom steam_engine = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/steam_engine.obj")).asDisplayList(); public static final IModelCustom turbine = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/turbine.obj")); @@ -449,6 +452,10 @@ public class ResourceManager { //Gas Turbine public static final ResourceLocation turbinegas_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/turbinegas.png"); + + //Pumps + public static final ResourceLocation pump_steam_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/pump_steam.png"); + public static final ResourceLocation pump_electric_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/pump_electric.png"); //Large Turbine public static final ResourceLocation steam_engine_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/steam_engine.png"); diff --git a/src/main/java/com/hbm/render/tileentity/RenderPump.java b/src/main/java/com/hbm/render/tileentity/RenderPump.java new file mode 100644 index 000000000..8b9dc8756 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderPump.java @@ -0,0 +1,102 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; +import com.hbm.tileentity.machine.TileEntityMachinePumpBase; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderPump extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { + + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + + switch(tile.getBlockMetadata() - BlockDummyable.offset) { + case 3: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 2: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(0, 0F, 1F, 0F); break; + } + + TileEntityMachinePumpBase engine = (TileEntityMachinePumpBase) tile; + float angle = engine.lastRotor + (engine.rotor - engine.lastRotor) * interp; + renderCommon(angle, engine.getBlockType() == ModBlocks.pump_steam ? 0 : 1); + //renderCommon(0, engine.getBlockType() == ModBlocks.pump_steam ? 0 : 1); + + GL11.glPopMatrix(); + } + + private void renderCommon(double rot, int type) { + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); + + if(type == 0) bindTexture(ResourceManager.pump_steam_tex); + else bindTexture(ResourceManager.pump_electric_tex); + ResourceManager.pump.renderPart("Base"); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 2.25, 0); + GL11.glRotated(rot - 90, 0, 0, 1); + GL11.glTranslated(0, -2.25, 0); + ResourceManager.pump.renderPart("Rotor"); + GL11.glPopMatrix(); + + double sin = Math.sin(rot * Math.PI / 180D) * 0.5D - 0.5D; + double cos = Math.cos(rot * Math.PI / 180D) * 0.5D; + double ang = Math.acos(cos / 2D); + double cath = Math.sqrt(1 + (cos * cos) / 2); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 1 - cath + sin, 0); + GL11.glTranslated(0, 4.75, 0); + GL11.glRotated(ang * 180D / Math.PI - 90D, 0, 0, -1); + GL11.glTranslated(0, -4.75, 0); + ResourceManager.pump.renderPart("Arms"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 1 - cath + sin, 0); + ResourceManager.pump.renderPart("Piston"); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glEnable(GL11.GL_CULL_FACE); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.pump_steam); + } + + @Override + public Item[] getItemsForRenderer() { + return new Item[] { + Item.getItemFromBlock(ModBlocks.pump_steam), + Item.getItemFromBlock(ModBlocks.pump_electric) + }; + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(0, -3, 0); + GL11.glScaled(2.5, 2.5, 2.5); + } + public void renderCommonWithStack(ItemStack item) { + RenderPump.this.renderCommon(System.currentTimeMillis() % 3600 * 0.1F, item.getItem() == Item.getItemFromBlock(ModBlocks.pump_steam) ? 0 : 1); + }}; + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderSteamEngine.java b/src/main/java/com/hbm/render/tileentity/RenderSteamEngine.java index f4b35ac7b..ff5e30bde 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderSteamEngine.java +++ b/src/main/java/com/hbm/render/tileentity/RenderSteamEngine.java @@ -71,7 +71,7 @@ public class RenderSteamEngine extends TileEntitySpecialRenderer implements IIte GL11.glPopMatrix(); GL11.glPushMatrix(); - double cath = Math.sqrt(3.515625D - (cos * cos)); + double cath = Math.sqrt(3.515625D - (cos * cos) / 2); GL11.glTranslated(1.875 - cath + sin, 0, 0); //the difference that "1.875 - cath" makes is minuscule but very much noticeable ResourceManager.steam_engine.renderPart("Piston"); GL11.glPopMatrix(); diff --git a/src/main/java/com/hbm/saveddata/TomSaveData.java b/src/main/java/com/hbm/saveddata/TomSaveData.java index be36cecb5..0ccc22395 100644 --- a/src/main/java/com/hbm/saveddata/TomSaveData.java +++ b/src/main/java/com/hbm/saveddata/TomSaveData.java @@ -32,6 +32,10 @@ public class TomSaveData extends WorldSavedData { public static TomSaveData getLastCachedOrNull() { return lastCachedUnsafe; } + + public static void resetLastCached() { + lastCachedUnsafe = null; + } public TomSaveData(String tagName) { super(tagName); diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 7c6f0a484..3274e10a2 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -277,6 +277,9 @@ public class TileMappings { put(TileEntityHeatBoiler.class, "tileentity_heat_boiler"); put(TileEntityHeatBoilerIndustrial.class, "tileentity_heat_boiler_industrial"); + put(TileEntityMachinePumpSteam.class, "tileentity_steam_pump"); + put(TileEntityMachinePumpElectric.class, "tileentity_electric_pump"); + put(TileEntityFoundryMold.class, "tileentity_foundry_mold"); put(TileEntityFoundryBasin.class, "tileentity_foundry_basin"); put(TileEntityFoundryChannel.class, "tileentity_foundry_channel"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpBase.java new file mode 100644 index 000000000..9d5426e62 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpBase.java @@ -0,0 +1,119 @@ +package com.hbm.tileentity.machine; + +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.lib.Library; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.INBTPacketReceiver; +import com.hbm.tileentity.TileEntityLoadedBase; +import com.hbm.util.fauxpointtwelve.DirPos; + +import api.hbm.fluid.IFluidStandardTransceiver; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; + +public abstract class TileEntityMachinePumpBase extends TileEntityLoadedBase implements IFluidStandardTransceiver, INBTPacketReceiver { + + public FluidTank water; + + public boolean isOn = false; + public float rotor; + public float lastRotor; + + public void updateEntity() { + + if(!worldObj.isRemote) { + + for(DirPos pos : getConPos()) { + if(water.getFill() > 0) this.sendFluid(water, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + + this.isOn = false; + if(this.canOperate() && yCoord <= 70) { + this.isOn = true; + this.operate(); + } + + NBTTagCompound data = this.getSync(); + INBTPacketReceiver.networkPack(this, data, 150); + + } else { + + this.lastRotor = this.rotor; + if(this.isOn) this.rotor += 10F; + + if(this.rotor >= 360F) { + this.rotor -= 360F; + this.lastRotor -= 360F; + + MainRegistry.proxy.playSoundClient(xCoord, yCoord, zCoord, "hbm:block.steamEngineOperate", 0.5F, 0.75F); + } + } + } + + protected NBTTagCompound getSync() { + NBTTagCompound data = new NBTTagCompound(); + data.setBoolean("isOn", isOn); + water.writeToNBT(data, "w"); + return data; + } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + this.isOn = nbt.getBoolean("isOn"); + water.readFromNBT(nbt, "w"); + } + + protected abstract boolean canOperate(); + protected abstract void operate(); + + protected DirPos[] getConPos() { + return new DirPos[] { + new DirPos(xCoord + 2, yCoord, zCoord, Library.POS_X), + new DirPos(xCoord - 2, yCoord, zCoord, Library.NEG_X), + new DirPos(xCoord, yCoord, zCoord + 2, Library.POS_Z), + new DirPos(xCoord, yCoord, zCoord - 2, Library.NEG_Z) + }; + } + + @Override + public FluidTank[] getAllTanks() { + return new FluidTank[] {water}; + } + + @Override + public FluidTank[] getSendingTanks() { + return new FluidTank[] {water}; + } + + @Override + public FluidTank[] getReceivingTanks() { + return new FluidTank[0]; + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 1, + yCoord, + zCoord - 1, + xCoord + 2, + yCoord + 5, + zCoord + 2 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpElectric.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpElectric.java new file mode 100644 index 000000000..2551c42a9 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpElectric.java @@ -0,0 +1,69 @@ +package com.hbm.tileentity.machine; + +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.util.fauxpointtwelve.DirPos; + +import api.hbm.energy.IEnergyUser; +import net.minecraft.nbt.NBTTagCompound; + +public class TileEntityMachinePumpElectric extends TileEntityMachinePumpBase implements IEnergyUser { + + public long power; + public static final long maxPower = 10_000; + + public TileEntityMachinePumpElectric() { + super(); + water = new FluidTank(Fluids.WATER, 1_000_000); + } + + public void updateEntity() { + + if(!worldObj.isRemote) { + + if(worldObj.getTotalWorldTime() % 20 == 0) for(DirPos pos : getConPos()) { + this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + + super.updateEntity(); + } + + protected NBTTagCompound getSync() { + NBTTagCompound data = super.getSync(); + data.setLong("power", power); + return data; + } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.power = nbt.getLong("power"); + } + + @Override + protected boolean canOperate() { + return power >= 1_000 && water.getFill() < water.getMaxFill(); + } + + @Override + protected void operate() { + this.power -= 1_000; + water.setFill(Math.min(water.getFill() + 10_000, water.getMaxFill())); + } + + @Override + public long getPower() { + return power; + } + + @Override + public long getMaxPower() { + return maxPower; + } + + @Override + public void setPower(long power) { + this.power = power; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpSteam.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpSteam.java new file mode 100644 index 000000000..6644f3e83 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpSteam.java @@ -0,0 +1,76 @@ +package com.hbm.tileentity.machine; + +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.util.fauxpointtwelve.DirPos; + +import net.minecraft.nbt.NBTTagCompound; + +public class TileEntityMachinePumpSteam extends TileEntityMachinePumpBase { + + public FluidTank steam; + public FluidTank lps; + + public TileEntityMachinePumpSteam() { + super(); + water = new FluidTank(Fluids.WATER, 100_000); + steam = new FluidTank(Fluids.STEAM, 1_000); + lps = new FluidTank(Fluids.SPENTSTEAM, 10); + } + + public void updateEntity() { + + if(!worldObj.isRemote) { + + for(DirPos pos : getConPos()) { + this.trySubscribe(steam.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + if(lps.getFill() > 0) { + this.sendFluid(lps, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + } + + super.updateEntity(); + } + + @Override + public FluidTank[] getAllTanks() { + return new FluidTank[] {water, steam, lps}; + } + + @Override + public FluidTank[] getSendingTanks() { + return new FluidTank[] {water, lps}; + } + + @Override + public FluidTank[] getReceivingTanks() { + return new FluidTank[] {steam}; + } + + protected NBTTagCompound getSync() { + NBTTagCompound data = super.getSync(); + steam.writeToNBT(data, "s"); + lps.writeToNBT(data, "l"); + return data; + } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + steam.readFromNBT(nbt, "s"); + lps.readFromNBT(nbt, "l"); + } + + @Override + protected boolean canOperate() { + return steam.getFill() >= 100 && lps.getMaxFill() - lps.getFill() > 0 && water.getFill() < water.getMaxFill(); + } + + @Override + protected void operate() { + steam.setFill(steam.getFill() - 100); + lps.setFill(lps.getFill() + 1); + water.setFill(Math.min(water.getFill() + 1000, water.getMaxFill())); + } +} diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityRadioTelex.java b/src/main/java/com/hbm/tileentity/network/TileEntityRadioTelex.java index 7b933f115..3137ef832 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityRadioTelex.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityRadioTelex.java @@ -1,5 +1,8 @@ package com.hbm.tileentity.network; +import java.util.ArrayList; +import java.util.List; + import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.gui.GuiScreenRadioTelex; import com.hbm.tileentity.IGUIProvider; @@ -104,6 +107,7 @@ public class TileEntityRadioTelex extends TileEntity implements INBTPacketReceiv this.deleteOnReceive = true; } else if(c == eol) { if(this.writingLine < 4) this.writingLine++; + this.markDirty(); } else if(c == bell) { worldObj.playSoundEffect(xCoord, yCoord, zCoord, "random.orb", 2F, 0.5F); } else if(c == print) { @@ -113,6 +117,7 @@ public class TileEntityRadioTelex extends TileEntity implements INBTPacketReceiv this.writingLine = 0; } else { this.rxBuffer[this.writingLine] += c; + this.markDirty(); } } } @@ -174,7 +179,11 @@ public class TileEntityRadioTelex extends TileEntity implements INBTPacketReceiv public void print() { ItemStack stack = new ItemStack(Items.paper); - ItemStackUtil.addTooltipToStack(stack, rxBuffer); + List text = new ArrayList(); + for(int i = 0; i < 5; i++) { + if(!rxBuffer[i].isEmpty()) text.add(rxBuffer[i]); + } + ItemStackUtil.addTooltipToStack(stack, text.toArray(new String[0])); stack.setStackDisplayName("Message"); worldObj.spawnEntityInWorld(new EntityItem(worldObj, xCoord + 0.5, yCoord + 1, zCoord + 0.5, stack)); } @@ -184,6 +193,30 @@ public class TileEntityRadioTelex extends TileEntity implements INBTPacketReceiv return player.getDistanceSq(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5) < 16 * 16; } + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + for(int i = 0; i < 5; i++) { + txBuffer[i] = nbt.getString("tx" + i); + rxBuffer[i] = nbt.getString("rx" + i); + } + this.txChannel = nbt.getString("txChan"); + this.rxChannel = nbt.getString("rxChan"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + for(int i = 0; i < 5; i++) { + nbt.setString("tx" + i, txBuffer[i]); + nbt.setString("rx" + i, rxBuffer[i]); + } + nbt.setString("txChan", txChannel); + nbt.setString("rxChan", rxChannel); + } + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return null; } @Override diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index f2a0719a4..549ddb0fa 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -4255,6 +4255,10 @@ tile.pribris.name=RBMK-Schutt tile.pribris_burning.name=Flammender RBMK-Schutt tile.pribris_digamma.name=Geschwärzter RBMK-Schutt tile.pribris_radiating.name=Glühender RBMK-Schutt +tile.pump_electric.name=Elektrische Grundwasserpumpe +tile.pump_electric.desc=Nutzt Strom um Grundwasser hochzupumpen$Erzeugt bis zu 10.000mB/t$Muss unter Y:70 platziert werden +tile.pump_steam.name=Dampfbetriebene Grundwasserpumpe +tile.pump_steam.desc=Nutzt Dampf um Grundwasser hochzupumpen$Erzeugt bis zu 10.000mB/t$Muss unter Y:70 platziert werden tile.pwr_block.name=PWR tile.pwr_casing.name=PWR Druckbehälter tile.pwr_casing.desc=Muss alle internen Teile des PWRs abdecken$Platzierung: Hülle diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index c4c2b6dbc..9f1240865 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -5235,6 +5235,10 @@ tile.pribris.name=RBMK Debris tile.pribris_burning.name=Flaming RBMK Debris tile.pribris_digamma.name=Blackened RBMK Debris tile.pribris_radiating.name=Smoldering RBMK Debris +tile.pump_electric.name=Electric Groundwater Pump +tile.pump_electric.desc=Uses electricity to pump up groundwater$Generates up to 10,000mB/t$Needs to be placed below Y:70 +tile.pump_steam.name=Steam-Powered Groundwater Pump +tile.pump_steam.desc=Uses steam to pump up groundwater$Generates up to 100mB/t$Needs to be placed below Y:70 tile.pwr_block.name=PWR tile.pwr_casing.name=PWR Pressure Vessel tile.pwr_casing.desc=Needs to cover all internal parts for the reactor to form$Placement: Casing diff --git a/src/main/resources/assets/hbm/models/machines/pump.obj b/src/main/resources/assets/hbm/models/machines/pump.obj new file mode 100644 index 000000000..4f859d6aa --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/pump.obj @@ -0,0 +1,1107 @@ +# Blender v2.79 (sub 0) OBJ File: 'pump.blend' +# www.blender.org +o Piston +v -0.500000 4.500000 -0.500000 +v -0.500000 4.500000 0.500000 +v 0.500000 4.500000 0.500000 +v 0.500000 4.500000 -0.500000 +v -0.500000 5.000000 -0.500000 +v -0.500000 5.000000 0.500000 +v 0.500000 5.000000 0.500000 +v 0.500000 5.000000 -0.500000 +v -0.125000 4.625000 1.000000 +v -0.125000 4.875000 1.000000 +v -0.125000 4.625000 -1.000000 +v -0.125000 4.875000 -1.000000 +v 0.125000 4.625000 1.000000 +v 0.125000 4.875000 1.000000 +v 0.125000 4.625000 -1.000000 +v 0.125000 4.875000 -1.000000 +v -0.250000 3.500000 0.250000 +v 0.250000 3.500000 0.250000 +v -0.250000 3.500000 -0.250000 +v 0.250000 3.500000 -0.250000 +v -0.250000 4.500000 0.250000 +v 0.250000 4.500000 0.250000 +v -0.250000 4.500000 -0.250000 +v 0.250000 4.500000 -0.250000 +vt 0.727273 0.250000 +vt 0.636364 0.375000 +vt 0.636364 0.250000 +vt 0.636364 0.437500 +vt 0.727273 0.562500 +vt 0.636364 0.562500 +vt 0.727273 0.375000 +vt 0.909091 0.375000 +vt 0.818182 0.437500 +vt 0.818182 0.375000 +vt 0.727273 0.437500 +vt 0.545455 0.437500 +vt 0.545455 0.375000 +vt 0.477273 0.656250 +vt 0.659091 0.687500 +vt 0.477273 0.687500 +vt 0.659091 0.656250 +vt 0.681818 0.625000 +vt 0.681818 0.656250 +vt 0.659091 0.625000 +vt 0.477273 0.593750 +vt 0.659091 0.593750 +vt 0.477273 0.625000 +vt 0.454545 0.656250 +vt 0.454545 0.625000 +vt 0.477273 0.562500 +vt 0.659091 0.562500 +vt 0.909091 0.250000 +vt 0.863636 0.375000 +vt 0.863636 0.250000 +vt 1.000000 0.250000 +vt 0.954545 0.375000 +vt 0.954545 0.250000 +vt 0.909091 0.375000 +vt 0.818182 0.375000 +vt 0.818182 0.250000 +vt 0.909091 0.437500 +vt 1.000000 0.375000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +s off +f 1/1/1 3/2/1 2/3/1 +f 7/4/2 5/5/2 6/6/2 +f 4/7/3 7/4/3 3/2/3 +f 2/8/4 5/9/4 1/10/4 +f 1/10/5 8/11/5 4/7/5 +f 3/2/6 6/12/6 2/13/6 +f 10/14/4 11/15/4 9/16/4 +f 12/17/5 15/18/5 11/19/5 +f 16/20/3 13/21/3 15/22/3 +f 14/23/6 9/24/6 13/25/6 +f 15/22/1 9/26/1 11/27/1 +f 12/17/2 14/23/2 16/20/2 +f 20/28/3 22/29/3 18/30/3 +f 17/31/4 23/32/4 19/33/4 +f 19/33/5 24/34/5 20/28/5 +f 18/30/6 21/35/6 17/36/6 +f 1/1/1 4/7/1 3/2/1 +f 7/4/2 8/11/2 5/5/2 +f 4/7/3 8/11/3 7/4/3 +f 2/8/4 6/37/4 5/9/4 +f 1/10/5 5/9/5 8/11/5 +f 3/2/6 7/4/6 6/12/6 +f 10/14/4 12/17/4 11/15/4 +f 12/17/5 16/20/5 15/18/5 +f 16/20/3 14/23/3 13/21/3 +f 14/23/6 10/14/6 9/24/6 +f 15/22/1 13/21/1 9/26/1 +f 12/17/2 10/14/2 14/23/2 +f 20/28/3 24/34/3 22/29/3 +f 17/31/4 21/38/4 23/32/4 +f 19/33/5 23/32/5 24/34/5 +f 18/30/6 22/29/6 21/35/6 +o Arms +v -0.062500 2.687500 0.750000 +v 0.062500 2.687500 0.750000 +v -0.062500 4.812500 0.750000 +v 0.062500 4.812500 0.750000 +v -0.062500 4.812500 0.875000 +v -0.062500 2.687500 0.875000 +v 0.062500 2.687500 0.875000 +v 0.062500 4.812500 0.875000 +v -0.062500 2.687500 -0.875000 +v 0.062500 2.687500 -0.875000 +v -0.062500 4.812500 -0.875000 +v 0.062500 4.812500 -0.875000 +v -0.062500 4.812500 -0.750000 +v -0.062500 2.687500 -0.750000 +v 0.062500 2.687500 -0.750000 +v 0.062500 4.812500 -0.750000 +vt 0.579545 0.953125 +vt 0.568182 0.703125 +vt 0.579545 0.703125 +vt 0.556818 0.703125 +vt 0.545455 0.953125 +vt 0.545455 0.703125 +vt 0.568182 0.953125 +vt 0.590909 0.953125 +vt 0.590909 0.968750 +vt 0.579545 0.968750 +vt 0.579545 0.687500 +vt 0.590909 0.703125 +vt 0.579545 0.953125 +vt 0.568182 0.703125 +vt 0.579545 0.703125 +vt 0.556818 0.703125 +vt 0.545455 0.953125 +vt 0.545455 0.703125 +vt 0.568182 0.953125 +vt 0.590909 0.953125 +vt 0.590909 0.968750 +vt 0.579545 0.968750 +vt 0.579545 0.687500 +vt 0.590909 0.703125 +vt 0.556818 0.953125 +vt 0.590909 0.687500 +vt 0.556818 0.953125 +vt 0.590909 0.687500 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +s off +f 27/39/7 26/40/7 25/41/7 +f 31/42/8 29/43/8 30/44/8 +f 28/45/9 31/42/9 26/40/9 +f 25/41/10 29/46/10 27/39/10 +f 27/39/11 32/47/11 28/48/11 +f 26/49/12 30/50/12 25/41/12 +f 35/51/7 34/52/7 33/53/7 +f 39/54/8 37/55/8 38/56/8 +f 36/57/9 39/54/9 34/52/9 +f 33/53/10 37/58/10 35/51/10 +f 35/51/11 40/59/11 36/60/11 +f 34/61/12 38/62/12 33/53/12 +f 27/39/7 28/45/7 26/40/7 +f 31/42/8 32/63/8 29/43/8 +f 28/45/9 32/63/9 31/42/9 +f 25/41/10 30/50/10 29/46/10 +f 27/39/11 29/46/11 32/47/11 +f 26/49/12 31/64/12 30/50/12 +f 35/51/7 36/57/7 34/52/7 +f 39/54/8 40/65/8 37/55/8 +f 36/57/9 40/65/9 39/54/9 +f 33/53/10 38/62/10 37/58/10 +f 35/51/11 37/58/11 40/59/11 +f 34/61/12 39/66/12 38/62/12 +o Rotor +v -0.000000 2.875000 0.500000 +v -0.441942 2.691942 0.500000 +v -0.625000 2.250000 0.500000 +v -0.441942 1.808058 0.500000 +v 0.000000 1.625000 0.500000 +v 0.441942 1.808058 0.500000 +v 0.625000 2.250000 0.500000 +v 0.441942 2.691942 0.500000 +v -0.441942 2.691942 0.750000 +v -0.000000 2.875000 0.750000 +v -0.625000 2.250000 0.750000 +v -0.441942 1.808058 0.750000 +v 0.000000 1.625000 0.750000 +v 0.441942 1.808058 0.750000 +v 0.625000 2.250000 0.750000 +v 0.441942 2.691942 0.750000 +v -0.000000 2.875000 -0.750000 +v -0.441942 2.691942 -0.750000 +v -0.625000 2.250000 -0.750000 +v -0.441942 1.808058 -0.750000 +v 0.000000 1.625000 -0.750000 +v 0.441942 1.808058 -0.750000 +v 0.625000 2.250000 -0.750000 +v 0.441942 2.691942 -0.750000 +v -0.441942 2.691942 -0.500000 +v -0.000000 2.875000 -0.500000 +v -0.625000 2.250000 -0.500000 +v -0.441942 1.808058 -0.500000 +v 0.000000 1.625000 -0.500000 +v 0.441942 1.808058 -0.500000 +v 0.625000 2.250000 -0.500000 +v 0.441942 2.691942 -0.500000 +vt 0.920455 0.439870 +vt 0.959412 0.462058 +vt 0.975549 0.515625 +vt 0.784091 0.439870 +vt 0.839185 0.515625 +vt 0.784091 0.591380 +vt 0.863636 0.687500 +vt 0.840909 0.625000 +vt 0.863636 0.625000 +vt 0.863636 0.562500 +vt 0.840909 0.500000 +vt 0.863636 0.500000 +vt 0.863636 0.937500 +vt 0.840909 0.875000 +vt 0.863636 0.875000 +vt 0.863636 0.812500 +vt 0.840909 0.750000 +vt 0.863636 0.750000 +vt 0.840909 0.562500 +vt 0.840909 0.437500 +vt 0.863636 0.437500 +vt 0.840909 0.812500 +vt 0.840909 0.687500 +vt 0.920455 0.439870 +vt 0.959412 0.462058 +vt 0.975549 0.515625 +vt 0.784091 0.439870 +vt 0.839185 0.515625 +vt 0.784091 0.591380 +vt 0.863636 0.687500 +vt 0.840909 0.625000 +vt 0.863636 0.625000 +vt 0.863636 0.562500 +vt 0.840909 0.500000 +vt 0.863636 0.500000 +vt 0.863636 0.937500 +vt 0.840909 0.875000 +vt 0.863636 0.875000 +vt 0.863636 0.812500 +vt 0.840909 0.750000 +vt 0.863636 0.750000 +vt 0.840909 0.562500 +vt 0.840909 0.437500 +vt 0.863636 0.437500 +vt 0.840909 0.812500 +vt 0.840909 0.687500 +vt 0.959412 0.569192 +vt 0.865360 0.515625 +vt 0.920455 0.591380 +vt 0.881497 0.569192 +vt 0.881497 0.462058 +vt 0.745133 0.569192 +vt 0.728997 0.515625 +vt 0.745133 0.462058 +vt 0.823048 0.462058 +vt 0.823048 0.569192 +vt 0.840909 0.937500 +vt 0.959412 0.569192 +vt 0.865360 0.515625 +vt 0.920455 0.591380 +vt 0.881497 0.569192 +vt 0.881497 0.462058 +vt 0.745133 0.569192 +vt 0.728997 0.515625 +vt 0.745133 0.462058 +vt 0.823048 0.462058 +vt 0.823048 0.569192 +vt 0.840909 0.937500 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.3827 0.9239 0.0000 +vn 0.9239 -0.3827 0.0000 +vn -0.3827 -0.9239 0.0000 +vn -0.9239 0.3827 0.0000 +vn 0.9239 0.3827 0.0000 +vn 0.3827 -0.9239 0.0000 +vn -0.9239 -0.3827 0.0000 +vn -0.3827 0.9239 0.0000 +s off +f 45/67/13 44/68/13 43/69/13 +f 53/70/14 55/71/14 50/72/14 +f 41/73/15 56/74/15 48/75/15 +f 47/76/16 54/77/16 46/78/16 +f 45/79/17 52/80/17 44/81/17 +f 43/82/18 49/83/18 42/84/18 +f 48/75/19 55/85/19 47/76/19 +f 46/78/20 53/86/20 45/87/20 +f 44/81/21 51/88/21 43/82/21 +f 42/84/22 50/89/22 41/73/22 +f 61/90/13 60/91/13 59/92/13 +f 69/93/14 71/94/14 66/95/14 +f 57/96/15 72/97/15 64/98/15 +f 63/99/16 70/100/16 62/101/16 +f 61/102/17 68/103/17 60/104/17 +f 59/105/18 65/106/18 58/107/18 +f 64/98/19 71/108/19 63/99/19 +f 62/101/20 69/109/20 61/110/20 +f 60/104/21 67/111/21 59/105/21 +f 58/107/22 66/112/22 57/96/22 +f 43/69/13 42/113/13 47/114/13 +f 42/113/13 41/115/13 47/114/13 +f 41/115/13 48/116/13 47/114/13 +f 47/114/13 46/117/13 43/69/13 +f 46/117/13 45/67/13 43/69/13 +f 50/72/14 49/118/14 51/119/14 +f 51/119/14 52/120/14 53/70/14 +f 53/70/14 54/121/14 55/71/14 +f 55/71/14 56/122/14 50/72/14 +f 50/72/14 51/119/14 53/70/14 +f 41/73/15 50/89/15 56/74/15 +f 47/76/16 55/85/16 54/77/16 +f 45/79/17 53/123/17 52/80/17 +f 43/82/18 51/88/18 49/83/18 +f 48/75/19 56/74/19 55/85/19 +f 46/78/20 54/77/20 53/86/20 +f 44/81/21 52/80/21 51/88/21 +f 42/84/22 49/83/22 50/89/22 +f 59/92/13 58/124/13 63/125/13 +f 58/124/13 57/126/13 63/125/13 +f 57/126/13 64/127/13 63/125/13 +f 63/125/13 62/128/13 59/92/13 +f 62/128/13 61/90/13 59/92/13 +f 66/95/14 65/129/14 67/130/14 +f 67/130/14 68/131/14 69/93/14 +f 69/93/14 70/132/14 71/94/14 +f 71/94/14 72/133/14 66/95/14 +f 66/95/14 67/130/14 69/93/14 +f 57/96/15 66/112/15 72/97/15 +f 63/99/16 71/108/16 70/100/16 +f 61/102/17 69/134/17 68/103/17 +f 59/105/18 67/111/18 65/106/18 +f 64/98/19 72/97/19 71/108/19 +f 62/101/20 70/100/20 69/109/20 +f 60/104/21 68/103/21 67/111/21 +f 58/107/22 65/106/22 66/112/22 +o Base +v -1.500000 0.000000 1.500000 +v 1.500000 0.000000 1.500000 +v -1.500000 0.000000 -1.500000 +v 1.500000 0.000000 -1.500000 +v -1.500000 1.000000 1.500000 +v 1.500000 1.000000 1.500000 +v -1.500000 1.000000 -1.500000 +v 1.500000 1.000000 -1.500000 +v -1.000000 1.000000 1.000000 +v 1.000000 1.000000 1.000000 +v -1.000000 1.000000 -1.000000 +v 1.000000 1.000000 -1.000000 +v -1.000000 1.500000 -1.000000 +v -1.000000 1.500000 1.000000 +v 1.000000 1.500000 1.000000 +v 1.000000 1.500000 -1.000000 +v -0.500000 1.500000 0.500000 +v 0.500000 1.500000 0.500000 +v -0.500000 1.500000 -0.500000 +v 0.500000 1.500000 -0.500000 +v -0.500000 3.500000 -0.500000 +v -0.500000 3.500000 0.500000 +v 0.500000 3.500000 0.500000 +v 0.500000 3.500000 -0.500000 +v 0.625000 3.125000 -0.375000 +v 0.775888 3.150888 -0.338388 +v 0.801777 3.176777 -0.250000 +v 0.775888 3.150888 -0.161612 +v 0.713388 3.088388 -0.125000 +v 0.650888 3.025888 -0.161612 +v 0.650888 3.025888 -0.338388 +v 0.713388 3.088388 -0.375000 +v 0.838388 3.000000 -0.338388 +v 0.875000 3.000000 -0.250000 +v 0.838388 3.000000 -0.161612 +v 0.750000 3.000000 -0.125000 +v 0.661612 3.000000 -0.161612 +v 0.625000 3.000000 -0.250000 +v 0.661612 3.000000 -0.338388 +v 0.750000 3.000000 -0.375000 +v 0.750000 1.500000 0.125000 +v 0.661612 1.500000 0.161612 +v 0.625000 1.500000 0.250000 +v 0.661612 1.500000 0.338388 +v 0.750000 1.500000 0.375000 +v 0.838388 1.500000 0.338388 +v 0.875000 1.500000 0.250000 +v 0.838388 1.500000 0.161612 +v 0.750000 3.000000 0.125000 +v 0.661612 3.000000 0.161612 +v 0.625000 3.000000 0.250000 +v 0.661612 3.000000 0.338388 +v 0.750000 3.000000 0.375000 +v 0.838388 3.000000 0.338388 +v 0.875000 3.000000 0.250000 +v 0.838388 3.000000 0.161612 +v 0.713388 3.088388 0.125000 +v 0.650888 3.025888 0.161612 +v 0.650888 3.025888 0.338388 +v 0.713388 3.088388 0.375000 +v 0.775888 3.150888 0.338388 +v 0.801777 3.176777 0.250000 +v 0.775888 3.150888 0.161612 +v 0.625000 3.125000 0.125000 +v 0.625000 3.036612 0.161612 +v 0.625000 3.036612 0.338388 +v 0.625000 3.125000 0.375000 +v 0.625000 3.213388 0.338388 +v 0.625000 3.250000 0.250000 +v 0.625000 3.213388 0.161612 +v 0.500000 3.000000 0.250000 +v 0.500000 3.125000 0.125000 +v 0.500000 3.036612 0.161612 +v 0.500000 3.036612 0.338388 +v 0.500000 3.125000 0.375000 +v 0.500000 3.213388 0.338388 +v 0.500000 3.250000 0.250000 +v 0.500000 3.213388 0.161612 +v 0.838388 1.500000 -0.338388 +v 0.875000 1.500000 -0.250000 +v 0.838388 1.500000 -0.161612 +v 0.750000 1.500000 -0.125000 +v 0.661612 1.500000 -0.161612 +v 0.625000 1.500000 -0.250000 +v 0.661612 1.500000 -0.338388 +v 0.750000 1.500000 -0.375000 +v 0.625000 3.036612 -0.338388 +v 0.625000 3.036612 -0.161612 +v 0.625000 3.125000 -0.125000 +v 0.625000 3.213388 -0.161612 +v 0.625000 3.250000 -0.250000 +v 0.625000 3.213388 -0.338388 +v 0.500000 3.000000 -0.250000 +v 0.500000 3.125000 -0.375000 +v 0.500000 3.036612 -0.338388 +v 0.500000 3.036612 -0.161612 +v 0.500000 3.125000 -0.125000 +v 0.500000 3.213388 -0.161612 +v 0.500000 3.250000 -0.250000 +v 0.500000 3.213388 -0.338388 +v -0.625000 3.125000 0.375000 +v -0.775888 3.150888 0.338388 +v -0.801777 3.176777 0.250000 +v -0.775888 3.150888 0.161612 +v -0.713388 3.088388 0.125000 +v -0.650888 3.025888 0.161612 +v -0.650888 3.025888 0.338388 +v -0.713388 3.088388 0.375000 +v -0.838388 3.000000 0.338388 +v -0.875000 3.000000 0.250000 +v -0.838388 3.000000 0.161612 +v -0.750000 3.000000 0.125000 +v -0.661612 3.000000 0.161612 +v -0.625000 3.000000 0.250000 +v -0.661612 3.000000 0.338388 +v -0.750000 3.000000 0.375000 +v -0.750000 1.500000 -0.125000 +v -0.661612 1.500000 -0.161612 +v -0.625000 1.500000 -0.250000 +v -0.661612 1.500000 -0.338388 +v -0.750000 1.500000 -0.375000 +v -0.838388 1.500000 -0.338388 +v -0.875000 1.500000 -0.250000 +v -0.838388 1.500000 -0.161612 +v -0.750000 3.000000 -0.125000 +v -0.661612 3.000000 -0.161612 +v -0.625000 3.000000 -0.250000 +v -0.661612 3.000000 -0.338388 +v -0.750000 3.000000 -0.375000 +v -0.838388 3.000000 -0.338388 +v -0.875000 3.000000 -0.250000 +v -0.838388 3.000000 -0.161612 +v -0.713388 3.088388 -0.125000 +v -0.650888 3.025888 -0.161612 +v -0.650888 3.025888 -0.338388 +v -0.713388 3.088388 -0.375000 +v -0.775888 3.150888 -0.338388 +v -0.801777 3.176777 -0.250000 +v -0.775888 3.150888 -0.161612 +v -0.625000 3.125000 -0.125000 +v -0.625000 3.036612 -0.161612 +v -0.625000 3.036612 -0.338388 +v -0.625000 3.125000 -0.375000 +v -0.625000 3.213388 -0.338388 +v -0.625000 3.250000 -0.250000 +v -0.625000 3.213388 -0.161612 +v -0.500000 3.000000 -0.250000 +v -0.500000 3.125000 -0.125000 +v -0.500000 3.036612 -0.161612 +v -0.500000 3.036612 -0.338388 +v -0.500000 3.125000 -0.375000 +v -0.500000 3.213388 -0.338388 +v -0.500000 3.250000 -0.250000 +v -0.500000 3.213388 -0.161612 +v -0.838388 1.500000 0.338388 +v -0.875000 1.500000 0.250000 +v -0.838388 1.500000 0.161612 +v -0.750000 1.500000 0.125000 +v -0.661612 1.500000 0.161612 +v -0.625000 1.500000 0.250000 +v -0.661612 1.500000 0.338388 +v -0.750000 1.500000 0.375000 +v -0.625000 3.036612 0.338388 +v -0.625000 3.036612 0.161612 +v -0.625000 3.125000 0.125000 +v -0.625000 3.213388 0.161612 +v -0.625000 3.250000 0.250000 +v -0.625000 3.213388 0.338388 +v -0.500000 3.000000 0.250000 +v -0.500000 3.125000 0.375000 +v -0.500000 3.036612 0.338388 +v -0.500000 3.036612 0.161612 +v -0.500000 3.125000 0.125000 +v -0.500000 3.213388 0.161612 +v -0.500000 3.250000 0.250000 +v -0.500000 3.213388 0.338388 +vt 0.363636 0.007812 +vt 0.090909 0.382812 +vt 0.090909 0.007812 +vt 0.090909 0.500000 +vt 0.363636 0.875000 +vt 0.090909 0.875000 +vt 0.454545 0.875000 +vt 0.363636 0.500000 +vt 0.454545 0.500000 +vt 0.000000 0.500000 +vt 0.000000 0.875000 +vt 0.363636 0.382812 +vt 0.090909 1.000000 +vt 0.363636 1.000000 +vt 0.409091 0.062500 +vt 0.590909 0.312500 +vt 0.409091 0.312500 +vt 0.363636 0.062500 +vt 0.363636 0.312500 +vt 0.590909 0.000000 +vt 0.409091 0.000000 +vt 0.409091 0.375000 +vt 0.590909 0.375000 +vt 0.636364 0.312500 +vt 0.590909 0.062500 +vt 0.636364 0.062500 +vt 0.727273 0.250000 +vt 0.818182 0.375000 +vt 0.727273 0.375000 +vt 1.000000 -0.000000 +vt 0.909091 0.250000 +vt 0.909091 -0.000000 +vt 0.818182 0.250000 +vt 0.818182 -0.000000 +vt 0.727273 -0.000000 +vt 0.636364 0.250000 +vt 0.636364 -0.000000 +vt 1.000000 0.250000 +vt 0.465909 0.898438 +vt 0.477273 0.914062 +vt 0.465909 0.906250 +vt 0.488636 0.898438 +vt 0.500000 0.921875 +vt 0.488636 0.921875 +vt 0.477273 0.882812 +vt 0.465909 0.890625 +vt 0.488636 0.875000 +vt 0.500000 0.898438 +vt 0.522727 0.882812 +vt 0.511364 0.898438 +vt 0.511364 0.875000 +vt 0.534091 0.890625 +vt 0.522727 0.898438 +vt 0.477273 0.898438 +vt 0.500000 0.875000 +vt 0.522727 0.687500 +vt 0.511364 0.687500 +vt 0.534091 0.687500 +vt 0.522727 0.875000 +vt 0.500000 0.687500 +vt 0.488636 0.875000 +vt 0.488636 0.687500 +vt 0.477273 0.687500 +vt 0.465909 0.875000 +vt 0.465909 0.687500 +vt 0.545455 0.687500 +vt 0.534091 0.875000 +vt 0.534091 0.687500 +vt 0.511364 0.687500 +vt 0.500000 0.875000 +vt 0.477273 0.875000 +vt 0.454545 0.875000 +vt 0.454545 0.687500 +vt 0.522727 0.875000 +vt 0.522727 0.687500 +vt 0.511364 0.875000 +vt 0.500000 0.898438 +vt 0.477273 0.882812 +vt 0.488636 0.898438 +vt 0.477273 0.898438 +vt 0.522727 0.882812 +vt 0.534091 0.898438 +vt 0.522727 0.898438 +vt 0.511364 0.898438 +vt 0.465909 0.890625 +vt 0.465909 0.898438 +vt 0.500000 0.921875 +vt 0.488636 0.921875 +vt 0.477273 0.914062 +vt 0.465909 0.906250 +vt 0.522727 0.914062 +vt 0.511364 0.921875 +vt 0.534091 0.890625 +vt 0.545455 0.898438 +vt 0.534091 0.906250 +vt 0.454545 0.898438 +vt 0.477273 0.921875 +vt 0.465909 0.937500 +vt 0.465909 0.921875 +vt 0.500000 0.937500 +vt 0.477273 0.937500 +vt 0.534091 0.921875 +vt 0.522727 0.937500 +vt 0.522727 0.921875 +vt 0.454545 0.937500 +vt 0.454545 0.921875 +vt 0.511364 0.937500 +vt 0.545455 0.937500 +vt 0.534091 0.937500 +vt 0.488636 0.937500 +vt 0.465909 0.687500 +vt 0.454545 0.875000 +vt 0.454545 0.687500 +vt 0.488636 0.687500 +vt 0.477273 0.875000 +vt 0.477273 0.687500 +vt 0.500000 0.687500 +vt 0.545455 0.687500 +vt 0.534091 0.875000 +vt 0.465909 0.875000 +vt 0.534091 0.898438 +vt 0.522727 0.914062 +vt 0.511364 0.921875 +vt 0.545455 0.898438 +vt 0.534091 0.906250 +vt 0.454545 0.898438 +vt 0.477273 0.921875 +vt 0.465909 0.937500 +vt 0.465909 0.921875 +vt 0.500000 0.937500 +vt 0.477273 0.937500 +vt 0.534091 0.921875 +vt 0.522727 0.937500 +vt 0.522727 0.921875 +vt 0.454545 0.937500 +vt 0.454545 0.921875 +vt 0.511364 0.937500 +vt 0.545455 0.937500 +vt 0.534091 0.937500 +vt 0.488636 0.937500 +vt 0.465909 0.898438 +vt 0.477273 0.914062 +vt 0.465909 0.906250 +vt 0.488636 0.898438 +vt 0.500000 0.921875 +vt 0.488636 0.921875 +vt 0.477273 0.882812 +vt 0.465909 0.890625 +vt 0.500000 0.875000 +vt 0.488636 0.875000 +vt 0.522727 0.882812 +vt 0.511364 0.898438 +vt 0.511364 0.875000 +vt 0.534091 0.890625 +vt 0.522727 0.898438 +vt 0.477273 0.898438 +vt 0.500000 0.898438 +vt 0.522727 0.687500 +vt 0.511364 0.687500 +vt 0.534091 0.687500 +vt 0.522727 0.875000 +vt 0.500000 0.687500 +vt 0.488636 0.875000 +vt 0.488636 0.687500 +vt 0.477273 0.687500 +vt 0.465909 0.875000 +vt 0.465909 0.687500 +vt 0.545455 0.687500 +vt 0.534091 0.875000 +vt 0.534091 0.687500 +vt 0.511364 0.687500 +vt 0.500000 0.875000 +vt 0.477273 0.875000 +vt 0.454545 0.875000 +vt 0.454545 0.687500 +vt 0.522727 0.875000 +vt 0.522727 0.687500 +vt 0.511364 0.875000 +vt 0.500000 0.898438 +vt 0.477273 0.882812 +vt 0.488636 0.898438 +vt 0.477273 0.898438 +vt 0.522727 0.882812 +vt 0.534091 0.898438 +vt 0.522727 0.898438 +vt 0.511364 0.898438 +vt 0.465909 0.890625 +vt 0.465909 0.898438 +vt 0.500000 0.921875 +vt 0.488636 0.921875 +vt 0.465909 0.906250 +vt 0.477273 0.914062 +vt 0.522727 0.914062 +vt 0.511364 0.921875 +vt 0.534091 0.890625 +vt 0.545455 0.898438 +vt 0.534091 0.906250 +vt 0.454545 0.898438 +vt 0.465909 0.921875 +vt 0.477273 0.937500 +vt 0.465909 0.937500 +vt 0.500000 0.937500 +vt 0.477273 0.921875 +vt 0.534091 0.921875 +vt 0.522727 0.937500 +vt 0.522727 0.921875 +vt 0.454545 0.937500 +vt 0.454545 0.921875 +vt 0.511364 0.937500 +vt 0.545455 0.937500 +vt 0.534091 0.937500 +vt 0.488636 0.937500 +vt 0.465909 0.687500 +vt 0.454545 0.875000 +vt 0.454545 0.687500 +vt 0.488636 0.687500 +vt 0.477273 0.875000 +vt 0.477273 0.687500 +vt 0.500000 0.687500 +vt 0.545455 0.687500 +vt 0.534091 0.875000 +vt 0.465909 0.875000 +vt 0.534091 0.906250 +vt 0.522727 0.914062 +vt 0.511364 0.921875 +vt 0.545455 0.898438 +vt 0.534091 0.898438 +vt 0.454545 0.898438 +vt 0.477273 0.921875 +vt 0.465909 0.937500 +vt 0.465909 0.921875 +vt 0.500000 0.937500 +vt 0.477273 0.937500 +vt 0.534091 0.921875 +vt 0.522727 0.937500 +vt 0.522727 0.921875 +vt 0.454545 0.937500 +vt 0.454545 0.921875 +vt 0.511364 0.937500 +vt 0.545455 0.937500 +vt 0.534091 0.937500 +vt 0.488636 0.937500 +vt 0.545455 0.875000 +vt 0.545455 0.921875 +vt 0.545455 0.875000 +vt 0.545455 0.921875 +vt 0.545455 0.875000 +vt 0.545455 0.921875 +vt 0.545455 0.875000 +vt 0.545455 0.921875 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.4617 -0.4617 0.7573 +vn 0.0196 0.0473 0.9987 +vn -0.1363 -0.6737 0.7263 +vn 0.5293 0.5293 0.6630 +vn 0.1866 0.9824 0.0000 +vn 0.1447 0.7194 0.6794 +vn 0.0473 0.0196 0.9987 +vn -0.6737 -0.1363 0.7263 +vn 0.7194 0.1447 0.6794 +vn 0.7071 0.7071 0.0000 +vn 0.0473 0.0196 -0.9987 +vn 0.5293 0.5293 -0.6630 +vn 0.7194 0.1447 -0.6794 +vn -0.6737 -0.1363 -0.7263 +vn 0.0670 0.0670 -0.9955 +vn 0.0670 0.0670 0.9955 +vn 0.9824 0.1866 0.0000 +vn 0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 0.7071 +vn -0.7071 -0.7071 0.0000 +vn -0.4617 -0.4617 -0.7573 +vn 0.0196 0.0473 -0.9987 +vn 0.1447 0.7194 -0.6794 +vn -0.1363 -0.6737 -0.7263 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 0.7071 0.7071 +vn 0.4617 -0.4617 -0.7573 +vn -0.0196 0.0473 -0.9987 +vn 0.1363 -0.6737 -0.7263 +vn -0.5293 0.5293 -0.6630 +vn -0.1866 0.9824 0.0000 +vn -0.1447 0.7194 -0.6794 +vn -0.0473 0.0196 -0.9987 +vn 0.6737 -0.1363 -0.7263 +vn -0.9824 0.1866 0.0000 +vn -0.7194 0.1447 -0.6794 +vn -0.0473 0.0196 0.9987 +vn -0.5293 0.5293 0.6630 +vn -0.7194 0.1447 0.6794 +vn 0.6737 -0.1363 0.7263 +vn -0.0670 0.0670 0.9955 +vn -0.0670 0.0670 -0.9955 +vn -0.7071 0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.4617 -0.4617 0.7573 +vn -0.0196 0.0473 0.9987 +vn -0.1447 0.7194 0.6794 +vn 0.1363 -0.6737 0.7263 +s off +f 75/135/23 74/136/23 73/137/23 +f 78/138/24 79/139/24 77/140/24 +f 75/141/25 80/142/25 76/143/25 +f 74/144/26 77/140/26 73/145/26 +f 76/146/27 78/138/27 74/136/27 +f 73/147/28 79/139/28 75/148/28 +f 87/149/24 85/150/24 86/151/24 +f 82/152/26 86/151/26 81/153/26 +f 84/154/27 87/149/27 82/155/27 +f 81/156/28 85/150/28 83/157/28 +f 83/158/25 88/159/25 84/160/25 +f 95/161/24 93/162/24 94/163/24 +f 89/164/28 93/165/28 91/166/28 +f 91/166/25 96/167/25 92/168/25 +f 90/169/26 94/170/26 89/171/26 +f 92/168/27 95/161/27 90/169/27 +f 75/135/23 76/146/23 74/136/23 +f 78/138/24 80/142/24 79/139/24 +f 75/141/25 79/139/25 80/142/25 +f 74/144/26 78/138/26 77/140/26 +f 76/146/27 80/142/27 78/138/27 +f 73/147/28 77/140/28 79/139/28 +f 87/149/24 88/159/24 85/150/24 +f 82/152/26 87/149/26 86/151/26 +f 84/154/27 88/159/27 87/149/27 +f 81/156/28 86/151/28 85/150/28 +f 83/158/25 85/150/25 88/159/25 +f 95/161/24 96/167/24 93/162/24 +f 89/164/28 94/172/28 93/165/28 +f 91/166/25 93/165/25 96/167/25 +f 90/169/26 95/161/26 94/170/26 +f 92/168/27 96/167/27 95/161/27 +s 1 +f 102/173/29 161/174/30 160/175/31 +f 100/176/32 163/177/33 162/178/34 +f 108/179/35 102/173/29 109/180/36 +f 107/181/37 99/182/38 100/176/32 +f 112/183/39 98/184/40 105/185/41 +f 111/186/42 104/187/43 112/183/39 +f 107/181/37 101/188/44 108/179/35 +f 106/189/45 98/184/40 99/182/38 +f 158/190/25 105/185/41 151/191/46 +f 157/192/47 112/193/39 158/190/25 +f 119/194/27 126/195/37 118/196/48 +f 117/197/26 124/198/36 116/199/49 +f 115/200/28 122/201/42 114/202/47 +f 120/203/46 127/204/45 119/194/27 +f 118/196/48 125/205/35 117/197/26 +f 116/199/49 123/206/50 115/207/28 +f 114/202/47 121/208/39 113/209/25 +f 113/209/25 128/210/41 120/203/46 +f 128/210/41 134/211/38 127/204/45 +f 125/212/35 133/213/32 132/214/44 +f 121/215/39 130/216/51 129/217/43 +f 128/210/41 129/217/43 135/218/40 +f 126/195/37 134/211/38 133/213/32 +f 124/219/36 132/214/44 131/220/29 +f 133/213/32 141/221/33 140/222/34 +f 131/220/29 139/223/30 138/224/31 +f 135/218/40 141/221/33 134/211/38 +f 132/214/44 140/222/34 139/223/30 +f 130/216/51 136/225/52 129/217/43 +f 129/217/43 142/226/53 135/218/40 +f 122/227/42 123/228/50 130/216/51 +f 130/216/51 123/228/50 137/229/54 +f 124/219/36 131/220/29 123/230/50 +f 131/220/29 138/224/31 123/230/50 +f 139/231/30 146/232/55 138/233/31 +f 142/226/53 149/234/24 141/221/33 +f 140/222/34 147/235/26 139/231/30 +f 137/236/54 144/237/25 136/238/52 +f 138/233/31 143/239/23 123/240/50 +f 136/238/52 150/241/56 142/226/53 +f 137/236/54 143/242/23 145/243/57 +f 140/222/34 149/234/24 148/244/58 +f 155/245/49 110/246/50 156/247/28 +f 153/248/48 108/249/35 154/250/26 +f 151/191/46 106/189/45 152/251/27 +f 156/252/28 111/253/42 157/192/47 +f 154/250/26 109/254/36 155/245/49 +f 152/251/27 107/181/37 153/248/48 +f 98/184/40 163/177/33 99/182/38 +f 101/188/44 162/178/34 161/174/30 +f 103/255/51 97/256/52 104/187/43 +f 104/187/43 164/257/53 98/184/40 +f 111/186/42 110/258/50 103/255/51 +f 103/255/51 110/258/50 159/259/54 +f 109/180/36 102/173/29 110/260/50 +f 102/173/29 160/175/31 110/260/50 +f 161/261/30 168/262/55 160/263/31 +f 164/257/53 171/264/24 163/177/33 +f 162/178/34 169/265/26 161/261/30 +f 159/266/54 166/267/25 97/268/52 +f 160/263/31 165/269/23 110/270/50 +f 97/268/52 172/271/56 164/257/53 +f 159/266/54 165/272/23 167/273/57 +f 162/178/34 171/264/24 170/274/58 +f 178/275/59 237/276/60 236/277/61 +f 176/278/62 239/279/63 238/280/64 +f 184/281/65 178/275/59 185/282/66 +f 182/283/67 176/278/62 183/284/68 +f 188/285/69 174/286/70 181/287/71 +f 187/288/72 180/289/73 188/285/69 +f 183/284/68 177/290/74 184/281/65 +f 182/283/67 174/286/70 175/291/75 +f 234/292/26 181/287/71 227/293/49 +f 233/294/48 188/295/69 234/292/26 +f 195/296/28 202/297/68 194/298/47 +f 193/299/25 200/300/66 192/301/46 +f 191/302/27 198/303/72 190/304/48 +f 196/305/49 203/306/67 195/296/28 +f 194/298/47 201/307/65 193/299/25 +f 192/301/46 199/308/76 191/309/27 +f 190/304/48 197/310/69 189/311/26 +f 189/311/26 204/312/71 196/305/49 +f 204/312/71 210/313/75 203/306/67 +f 201/314/65 209/315/62 208/316/74 +f 197/317/69 206/318/77 205/319/73 +f 204/312/71 205/319/73 211/320/70 +f 202/297/68 210/313/75 209/315/62 +f 200/321/66 208/316/74 207/322/59 +f 209/315/62 217/323/63 216/324/64 +f 208/316/74 214/325/61 207/322/59 +f 211/320/70 217/323/63 210/313/75 +f 208/316/74 216/324/64 215/326/60 +f 206/318/77 212/327/78 205/319/73 +f 205/319/73 218/328/79 211/320/70 +f 198/329/72 199/330/76 206/318/77 +f 206/318/77 199/330/76 213/331/80 +f 200/321/66 207/322/59 199/332/76 +f 207/322/59 214/325/61 199/332/76 +f 214/333/61 223/334/25 222/335/57 +f 218/328/79 225/336/24 217/323/63 +f 216/324/64 223/334/25 215/337/60 +f 213/338/80 220/339/26 212/340/78 +f 214/333/61 219/341/23 199/342/76 +f 212/340/78 226/343/58 218/328/79 +f 213/338/80 219/344/23 221/345/55 +f 216/324/64 225/336/24 224/346/56 +f 231/347/46 186/348/76 232/349/27 +f 229/350/47 184/351/65 230/352/25 +f 227/293/49 182/283/67 228/353/28 +f 232/354/27 187/355/72 233/294/48 +f 230/352/25 185/356/66 231/347/46 +f 228/353/28 183/284/68 229/350/47 +f 174/286/70 239/279/63 175/291/75 +f 177/290/74 238/280/64 237/276/60 +f 180/289/73 235/357/80 173/358/78 +f 180/289/73 240/359/79 174/286/70 +f 187/288/72 186/360/76 179/361/77 +f 179/361/77 186/360/76 235/357/80 +f 185/282/66 178/275/59 186/362/76 +f 178/275/59 236/277/61 186/362/76 +f 237/363/60 244/364/57 236/365/61 +f 240/359/79 247/366/24 239/279/63 +f 238/280/64 245/367/25 237/363/60 +f 235/368/80 242/369/26 173/370/78 +f 236/365/61 241/371/23 186/372/76 +f 173/370/78 248/373/58 240/359/79 +f 235/368/80 241/374/23 243/375/55 +f 238/280/64 247/366/24 246/376/56 +f 102/173/29 101/188/44 161/174/30 +f 100/176/32 99/182/38 163/177/33 +f 108/179/35 101/188/44 102/173/29 +f 107/181/37 106/189/45 99/182/38 +f 112/183/39 104/187/43 98/184/40 +f 111/186/42 103/255/51 104/187/43 +f 107/181/37 100/176/32 101/188/44 +f 106/189/45 105/185/41 98/184/40 +f 158/190/25 112/193/39 105/185/41 +f 157/192/47 111/253/42 112/193/39 +f 119/194/27 127/204/45 126/195/37 +f 117/197/26 125/205/35 124/198/36 +f 115/200/28 123/377/50 122/201/42 +f 120/203/46 128/210/41 127/204/45 +f 118/196/48 126/195/37 125/205/35 +f 116/199/49 124/198/36 123/206/50 +f 114/202/47 122/201/42 121/208/39 +f 113/209/25 121/208/39 128/210/41 +f 128/210/41 135/218/40 134/211/38 +f 125/212/35 126/195/37 133/213/32 +f 121/215/39 122/227/42 130/216/51 +f 128/210/41 121/215/39 129/217/43 +f 126/195/37 127/204/45 134/211/38 +f 124/219/36 125/212/35 132/214/44 +f 133/213/32 134/211/38 141/221/33 +f 131/220/29 132/214/44 139/223/30 +f 135/218/40 142/226/53 141/221/33 +f 132/214/44 133/213/32 140/222/34 +f 130/216/51 137/229/54 136/225/52 +f 129/217/43 136/225/52 142/226/53 +f 139/231/30 147/235/26 146/232/55 +f 142/226/53 150/241/56 149/234/24 +f 140/222/34 148/244/58 147/235/26 +f 137/236/54 145/243/57 144/237/25 +f 138/233/31 146/232/55 143/239/23 +f 136/238/52 144/237/25 150/241/56 +f 137/236/54 123/378/50 143/242/23 +f 140/222/34 141/221/33 149/234/24 +f 155/245/49 109/254/36 110/246/50 +f 153/248/48 107/181/37 108/249/35 +f 151/191/46 105/185/41 106/189/45 +f 156/252/28 110/379/50 111/253/42 +f 154/250/26 108/249/35 109/254/36 +f 152/251/27 106/189/45 107/181/37 +f 98/184/40 164/257/53 163/177/33 +f 101/188/44 100/176/32 162/178/34 +f 103/255/51 159/259/54 97/256/52 +f 104/187/43 97/256/52 164/257/53 +f 161/261/30 169/265/26 168/262/55 +f 164/257/53 172/271/56 171/264/24 +f 162/178/34 170/274/58 169/265/26 +f 159/266/54 167/273/57 166/267/25 +f 160/263/31 168/262/55 165/269/23 +f 97/268/52 166/267/25 172/271/56 +f 159/266/54 110/380/50 165/272/23 +f 162/178/34 163/177/33 171/264/24 +f 178/275/59 177/290/74 237/276/60 +f 176/278/62 175/291/75 239/279/63 +f 184/281/65 177/290/74 178/275/59 +f 182/283/67 175/291/75 176/278/62 +f 188/285/69 180/289/73 174/286/70 +f 187/288/72 179/361/77 180/289/73 +f 183/284/68 176/278/62 177/290/74 +f 182/283/67 181/287/71 174/286/70 +f 234/292/26 188/295/69 181/287/71 +f 233/294/48 187/355/72 188/295/69 +f 195/296/28 203/306/67 202/297/68 +f 193/299/25 201/307/65 200/300/66 +f 191/302/27 199/381/76 198/303/72 +f 196/305/49 204/312/71 203/306/67 +f 194/298/47 202/297/68 201/307/65 +f 192/301/46 200/300/66 199/308/76 +f 190/304/48 198/303/72 197/310/69 +f 189/311/26 197/310/69 204/312/71 +f 204/312/71 211/320/70 210/313/75 +f 201/314/65 202/297/68 209/315/62 +f 197/317/69 198/329/72 206/318/77 +f 204/312/71 197/317/69 205/319/73 +f 202/297/68 203/306/67 210/313/75 +f 200/321/66 201/314/65 208/316/74 +f 209/315/62 210/313/75 217/323/63 +f 208/316/74 215/326/60 214/325/61 +f 211/320/70 218/328/79 217/323/63 +f 208/316/74 209/315/62 216/324/64 +f 206/318/77 213/331/80 212/327/78 +f 205/319/73 212/327/78 218/328/79 +f 214/333/61 215/337/60 223/334/25 +f 218/328/79 226/343/58 225/336/24 +f 216/324/64 224/346/56 223/334/25 +f 213/338/80 221/345/55 220/339/26 +f 214/333/61 222/335/57 219/341/23 +f 212/340/78 220/339/26 226/343/58 +f 213/338/80 199/382/76 219/344/23 +f 216/324/64 217/323/63 225/336/24 +f 231/347/46 185/356/66 186/348/76 +f 229/350/47 183/284/68 184/351/65 +f 227/293/49 181/287/71 182/283/67 +f 232/354/27 186/383/76 187/355/72 +f 230/352/25 184/351/65 185/356/66 +f 228/353/28 182/283/67 183/284/68 +f 174/286/70 240/359/79 239/279/63 +f 177/290/74 176/278/62 238/280/64 +f 180/289/73 179/361/77 235/357/80 +f 180/289/73 173/358/78 240/359/79 +f 237/363/60 245/367/25 244/364/57 +f 240/359/79 248/373/58 247/366/24 +f 238/280/64 246/376/56 245/367/25 +f 235/368/80 243/375/55 242/369/26 +f 236/365/61 244/364/57 241/371/23 +f 173/370/78 242/369/26 248/373/58 +f 235/368/80 186/384/76 241/374/23 +f 238/280/64 239/279/63 247/366/24 diff --git a/src/main/resources/assets/hbm/textures/blocks/capacitor_schrabidate_bottom.png b/src/main/resources/assets/hbm/textures/blocks/capacitor_schrabidate_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..91b4ab9501665e0a9c1f760e9f5a81304c03829c GIT binary patch literal 554 zcmV+_0@eMAP)X2M5QRT*fr;CZy^FHQYLuhQDRY)NNR&gwNxN+@U}n){ z6l>TZDAnWrQ0n)eKjr)T8*43H*D*~K&N=pdM{A9>7Oge&JOj}8JpkLb@&5jfEX%^j z#|JrQ07Qh85-~;|A0LS^;=RW?M~o3;3`!}6Vc>SVAtFM~nQ|``5Mu-&=UnenN{r*k z^?E&liwLC@w6(UPDy3-Kwl?RS5fSEj=61VLN+IV=(=<5e5E1mUEHq66z%UGW?rnRQ*!B2o+9d-}ddL{55-I)HNy=N#5rj4|kK+iEd{z%)%&>#_gzV_nx8 zwNeV*_x*{oQi_~&{TBy_bM8d{h*W#;tNSAIAN?bdbzK4Kzu30zo+VVXdV4FMpP$4S svDQ*bsZ)1Mp)rQ*^@=g3zJ8?h7gQQ9TN||oUjP6A07*qoM6N<$f|?Wmk^lez literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/capacitor_schrabidate_inner_side.png b/src/main/resources/assets/hbm/textures/blocks/capacitor_schrabidate_inner_side.png new file mode 100644 index 0000000000000000000000000000000000000000..c81f1996e8618265823159e0918e8c5ec18481f4 GIT binary patch literal 170 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfyU#$oBdHG#ZVC@$JGrFT;CM4tyhUVx|ySCs^Zkd*#bA#L~=h?ewJ9aT;|#T zXY-Gz?7p3?<2=1fvO&D{*ds5kEo&GVTxUs^>{~qb5a%C$h6B<1|GQH=r*-|A#AL$A zaP;dn{V=Xrtvdz(&TVC2xVP-B%XQ=D&zDSm&%zLL-1%~($m4ZlYj?#lI83t@*KSeh z*_FM_xxvuzg#$+-`w4$em%{aL9UZPOa$~OZPht5{$CrHIweDI5zX#FXjB<}xx!S+V S{ZR(=5re0zpUXO@geCw)$7urq literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/capacitor_schrabidate_side.png b/src/main/resources/assets/hbm/textures/blocks/capacitor_schrabidate_side.png new file mode 100644 index 0000000000000000000000000000000000000000..c70303bb14c15c860743b968897d0ae1a157069d GIT binary patch literal 328 zcmV-O0k{5%P)62$tiP|9K^~6yonMAf{+ckD^R*= zlq$>4YW^Q-{+khP+a~^4-h0&AyjxXO0U)1E=bUiPiFNo&1BkY5llPuy^PLkm0&A^U zO>3=qr9VcXo`rKx0IW-Y(;p-F|A9vwPN#Ig-!aBe6a}~2jXcj;mIWy##u%iO^nDLN zS(X5V5U|#whGF1*J~PiV07@yQX(GnRZnq=G$T*JVc}|QGtu;ajs;c7gc%aI%q^@h4 zrumVwEDIrojbt20>bhna20{qz_j@jv3*zf|OxNp`7$e3QQc7FWnyj^^>pHa78zDfJ aWqboyB=nTkXnkG)0000z({>D!Sf19IMTh*38;v zt#bC`*Z73e*5f*R{%}>_NqYE+<#E~^;Tncs{U)8zA2${PUBlq%>gTe~DWM4fCqqoP literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/machines/pump.png b/src/main/resources/assets/hbm/textures/models/machines/pump.png new file mode 100644 index 0000000000000000000000000000000000000000..57b8c9d99c5a767c42966326f8d0cc7029a5a668 GIT binary patch literal 937 zcmeAS@N?(olHy`uVBq!ia0vp^8-TchgAGWoKKuAHkYXuz@(kesf*OvL4h9D11Wy;o zkcv5P@A~@*2QnQ0Xx`R*!0k@@2l@m+&%kmUAr-}@L8Ui*RL*0l^QbJntrzXRbkC* zdgg%h&UxqMrwPCIS@zjT@NK}E16$`wKQ{Wdy6nKgIdY8GZ+&%*{%;tnqnH(Ide;8h z!P#ebEjwdXy=N*=XXG)9%w^Z%{^dVzCB29w&XhE6pYvo?Y4XsDpZ%cGw0htFt?!?fl=j}N-*fT3WBcQpgd43$ z4h1vketn;QH}vh_Bgw1({))V6FJE#0_aQ7kjruCLqV|E6_5J;~_wQR<{qOdv*V*&` z7YBd;pU;L8B4ATP=W}1=Gw4XZX8-=%g>4q`+p}u6-(O}reR}!bUk~TbpTEBL|Lkwq zZ+*<)b&m%T(%`@V2DmBg^(5F8flio@ey#$FVdlUi{1Y YwPeA@?T22)0rMV%r>mdKI;Vst0NcpNCIA2c literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/machines/pump_electric.png b/src/main/resources/assets/hbm/textures/models/machines/pump_electric.png new file mode 100644 index 0000000000000000000000000000000000000000..a54bf774f55e4649122361e85fcc9aae682aaf13 GIT binary patch literal 5288 zcmX|F2|UyP{~yEL6AMX}zAELKuO+$0kW|j(D97-v+@`{aZEhu3gjDV`>)U`MRF3#};PBLi|$vAP`8% zL|z`?TK;iv1GsTLK$}?e0-sRcf8szOn6rtYzBTUEileE!wDC*)8}?n~gqwZMQOK@H z1Ye-{x(|s<48bRVra3f2aYsv$m-F}}J!0GYX_CN~=r*P0PU`JfUNv&fa{8FGwy1%( zuXMOx8UFqF&TYoiyCLsO%C``2thTS4vztPSOD-^pE^^EpmUS3|; zCy*j&5GboSTs6k25_0t%()5~l!Ii_AmLL;X2>%TMgZCWWq^>Sbq-o@w#*e_3QVJdM z6hBcxkEv)>6o_#l1vtLac_a>%(UwmmZ2xxr!sd+TlvToju+or?jSYmUSc%zdbU8V~ zBMU?fX%hyy*War0xy}2=s*F_gwv4KfCNa+Wn;B9{_RP%5F)o?VFDG}6kB@%}sGtic z#6%@`?eZ_g)DbV33h;F|_$;rkLLK{!Tbi3M$s!#ou{%jJI$Z_ENvHO2+1u;a-%41x zw?eq(Ki4Pp*&T_ce^z2D#fR4s&lRnO!OgR^!+oYed#wQ|JbEO@ShXu5$3}VS(gF>0}WB3NZqi#hl;=| z|1kn#f2DCU#oIzI#)T+y3hy_ij^AC#`1ioa$L9{MpV`se{Nnw0%O(O_H+7b9xVtpI zjWBI`uq1rj$%zNFyu3`EOG3$b392YjZOWtX*7Eh)x!X9GS)(bz*%FuN+hK4Jnx%Gc z1mohO?@(J+b&`gWvFTZ#*dk!D$-hne^m@yB(YHtmm;bssoUXn!XcTa;$ILU42L0<< zpV2h*<1jeUjt3sPrvKx13i4FP#)wuP-EX={_Cmy{=6(AC$!Gwz^{oEVC=oZVJsDOt7AATk``KXidIH#}r%gL!JFm~RAn&hYZ;ukZ-KwJ4_ zzdyReOZ{cuhub#z^urAttHWDxIJjSlCmUJF?LDP#maTp4k*ULu#XB3ZeMt%DqVmC{ z>KGBy*gsED@58=J{QMh~M@d~=nvJIB>3vSg+^`l@gm`f5x5KX*tM*~0)Frj{9GY+; zZ8F-UkxRjtr+GHzc@%nd#cL!=rSNFYldz5G>V}5CZy|IgyY$nHf*D_l1|I`TKh!2p|o)kf{%~VCOivfOE_RsWWxzevaQN`^*O90sH&~)MAnX7I(NT6mN9Sg zN-M}$F4)UUpuuO3)*BDn6Z^}NVn8!t9OtU#NL?&xX4l>urTv^J0W26Q#^Vrzqjb_2t4{lkHLCWzYKa>BZaI+s4Yn z^4Gf^yhDWT=xzxkEFe;Hc|eBdl-IUuZRSbs}tUDkhUmRhRD?_cgRH^10v?io4Cw?i)~ zI;|bd;9`d8jB8XP?0Gq+8kDqaS>O$A^C*$d4q0|A38-Fwd zAC%mHJrlQt^+6-8_=jq!?|lbYqSN_e5OiFclI7=d`62TM>}%JqZNT zni5bq<+B;mHh_e|n|I>Gdm;I?ys5O3X2Mj%tVW`Us!DSHo4xB0L8|+O`2O}#xz9+U zvu3Y|a~dh|$?0in@2Nh8%2v*+=Oo=^_5Js00FE$DSSMhI&P)x-TS66#b1-nE$~y)# zj1n-rult64Uec}lTJcj=MBmjDXt^1}+5tr3k+rn;350ynscayuyZ)Z^ZLDr<6LO>& zkIwP zCgEyXW*+3;iXM(_Zy{(IikVzjHv#;T{kvuL@?QASC&u}34M{EGzLX?5D#mB3%OZ8Y zKjDc%?N0EbE$DH~$f6Clzb;G^zxnCO$G`^ng6EcU2+D=uPaXLQ;kis%5)x-g%yrZJYBh#8QC%6Ey!BedacEca6fuV^Hjgmr*woxYX zsH#FZ4$-Hmc}DlQ>gvffI8G2x&3B{PM=-z&C~R3Ci{!Qj9;IEegIR}Bk5xjoad(Yj z$_`B+5N>D9#r09-J=Vg^VeYme8Di!>cjp%vULv{E6)k|a)6&wSLW0e&?Z45jdIOc_ z(|yJm^IzMpL64M&-30bwh7ZYrA;w*?Q26C1SMMT6YJtBsmi9=gBi-%0l%vHjG$ld# zY7To--&I{bPik^Z>^UP`f1Z>A9jtvu5;M8H4HqWKWU_^})ak-bubPviTQ|d~&nS@3 z*H0jhA#Z@kmcjsKV0rA<-Ylsl5!gy=)9yY#y{rWmu#u!i$ z`+*Kt17(%zdts}ewQB^Ni5h%J{K55}2a!trA$XW7lNq$>6ciX()!r@)Y6@YVC%UI_ z_tv+!Co-7<)2+d3mOXQx&SZ#ka2O_EO{7i5$=$mUXQJ0Sd=>-KGvsA2e^Gl|S!w*l z+rnWqTc?{wb1mNg*a956X_*;bkAHjoB18B|22ODJ9IZwch*raiN;^_j#^8zm0Ruc8|P{p}jo6HPs|}|E_s)sX)ID5*A07q8oH5h)=dOhe z4GlG6XCp-H*KU0i9;FMnj}#oFIK^c|`%E?A)=v@tLHWXJ{v-rHAD`X^N1ipKC)a63 zpaM`{w-?BgMk{c^(t3>t-ww2dd2nRRKpg@B2}K$?G$NZ0J{-d|w6;Dix2=2<9a+jp z#%xg+KfVNwHxKlY+v|ugKi(}nAQkn`^1sa1Z~d3v-##qB&QVfPNrFlA=ML0hq*ty9 zG>y5>|AGjoUp&#%*T)kW6y&yRe?aQzFg*LE=Nca`ndH7X;TaHcluoDHIXFm*9&@%! zW}@fGc;yentp}vz$B%>Z=^O2Pzsj4LVT!rT?l?tS^e8Emf6;i<8Lk^DFY`Up-#xv` z1;+4pzD0sSAkF*X;SZUQjn`{;!iR)iw`{4bvpTX4D;9-m==n#FV$Z3e>)UZU{GzE* zG)`KC6st{<;R(D76kl5uBDr1HABHLi{0XC}H--P6X|Nw`xj50D3C@o;Cu#Fvesqu` zWn7JwW{55~ea#SGW6~)=iMM=bGe&3jWUG#DMBy}=IwJZ@fpjRQ?A$I*J3GsyI43Ot z4Y<@9e+l-MM6qo`drs$g=XK5*?N`acg6*+*JL=v^>&VqjVeStkX?UBlqu_cu7lIF& zMA`=71hMCkj;kAE@Vv)R)&}8V2!S$SySuNm*pHXks{~Z?VD~kF$?Y&pHOU{VB?1+J zMwh0Ehl%&l10q1c)K)Wtom+87hDN^<#y*u_cJ?k7&Ljr9BPj}+p*si55q)~d6T{$# zlCh`$1zl6naTXuvTnsc2ZZCKt5WQMYf2f)Fx-D@o?ueS_gL$AFn6Ta+NC;WclhR8? zMQZ&8k28f0rfgeu%hy|PN?$#uWV~ebg*bL`dMBL4w-o29BVRY}_ zJxEru(E3Gnby2!l|9b6KrG@XjC>q@)xPQmZ1Vgn zH_#>m-`8d(So|2qhbJ>uEkKOOSEbHf_9NF3-h*;r=sf*vwz}X&t1Z4=v5=bukcz&; z*H-+d6H&d@WY0XZC!aZbjFmsDrSk)!7sihcuo%pJNra-3`_TVL@hdC+$5>8|j?V|d z9oyd?MKe;@4)<4UFMbbwF#jE5%egBN&DJej?77lj?6$#HUth>@?pxgZ#-j5VWE1Qp zy1+6XOEN()@*+b@R=`(;>(3S@}ve0kVv@3YJ{O|0^VwaQQqX zYgu_gUf20dQlz(ITGh^gwcvSX|Ih(d=3M24%x<0jJL-lnsN; zpXEf|tv!c^nNH~O@}1}hoxCr%#3>k~X1`lDeIMB5eyM_`oVAPwM}tpnA|(Osu#>!) z8Dq&p=EVb>_>-S!!mMTNL_?7aN%-&Ev0Fde6j7!QO1CBQmjh1!c@KcF-5TBkG8i4$Y#2cX-M#`FeX(yP+t< z#wqS1n2J-YUYk>_i{vS1x`tUEYi7ogr?67%4_SHae}wU0vSO2-V;wYiQJd%CGtnoUm2YB&*&-Pa7RWDIbH^|OHc4{Qqd8amuJeZ>8X>YZJC2G;noXPtEvVAvgU9AR`c!YIDp~Aw3!wt>Nd}!XUD-ER)GEbLw zAP%scq>%}nuv6CI9Xk4HOGQtUtP(Z1n>;ndk-y$iYdF$@%MX?8rF+#u=&O%T<|7gT6F`D8F|t7 zU~PO8#r>Fw2A-)Nx_@M^G@inH|MxNJFiGp~H>h+*G;qY|yRueHxD)inrQufiPAnV` z`jqn&V0!+a3g}zrZ{UKK5dwVrsz&SKvr0zxJNA1yHvvHn$w$I{dH>f(C#TLYB|LEh z%7=3?Vc=bAn#>^d713iGJgS)n)CD}1cF_pN546=S@Fo^S$wYrQeCRhM+g~2&Ee=TM zqmrW-U38cZM5Fl*l6&(A~%;$78o(DX`5p;nwqXpD5iA~ z%5>_^iQW{-;|Z$YkbbhUf>%bZdoSK17e_2Fzz5B_nbV@sa{ z<%E4sMx=Q|gn~Cq>ewNWvcw({2+a?JHTjw1Q2+{O^M34+_}4A)R4&*G#3rsEfG-so z9|Z8Si;z-Vg_w19cIxNhsd827;Nfom#4{i&Ek92hB)7LgK=21iP|Ls}&ShHi%L zX6SqPzIE6A$T>b07#_QI2!#60Re~2}`#r$*YKG&FI>7BvUR;37S zg;J0EMRxgJ>Th}LUdCD|mu)YoH5eb`*($UZd?)UR<&$oaq3@I2acb8SXil{HRzjGJ z`K{sqIW;B4+{EO)B718TgP0d)m$k965zEcZO;A#@XL*@(dU~3c7^(how>R59p=g6X> z+}hgLsu?9sXW@$MviD;%N=swGA1W$D4h{}e^_~!p)8_N(9sm0$?=%Bk{&kaP3}g)3 zhIN=79v_!gRJ6CYV&mZ8d>^)5URhb&*|D;aw7h4FRoJO4Ix3^cmKY<}@~oSTP7+0UOX|NfDc>PLS4N?%n~wYt5n zj`nRd!kR%`Ul!V>J#n?vyD}<4XzneiyyLX9v-3XRs^(Qo#r~AmqNAfDA|{5jJ0Hqi zR$Hs|?w!Ea)|RS<1_l1@8pO3U76StV=&qRveXZ{af2lrS1OzE}N8iW@Hv@?zcz>|c zAE(Mmw147r85BM-0fS4Y557aUJomu%ba%fcC@$W8b|#@AeagPEv2l2EGBh;QR`jO& zV;8!xu<+mPY|Q8eN37z%fq{U(OMe!KbPg|1X02RZDc;xBNf;q6-S@tRV0;^!2FZ9H zvTzpuH2$>>dK?rKq^+YfFf7Lh%7kHv6QM`J^U}e_U*6zmC8Wi(g z&CRj={rlJ6(Xp(ihWi_@HhLO7&i_s*Lm34o(EGD@b^6fPhs7klE`0;|S5L5q1SKjv ztNA@BzCxU9|8}jSm$Dz7p?y zesS85Q2#T3eO%off5}8jKI6O7_}0#j7b_wn0>0xrJ2@)auz7n#MM52GE2^t~7J6=W zcXWcMOBGqtF2nNK1Kzp$%S7-!w6SOug_1KgOsg^0)8ncN@c_(JTQE- z&`r;GA#Z2TBLtd~bWJ@9y8ETi?I%v(HJ#=a68fW9p9auO8y$X46C4c3+bxQiwozic za4RZWmb~ss7EXmCq<4-yZn|NiVZ&=xszxy1&?8qow~@(Cg*iT?7pRyRG$IO-eSNNA z?&F&M%K)dP@@aXhvk11+OV098l`;ztwkt>DwW9FJjh=KkGAnf1SBWyCs2x0h_)r9T zxuy|!vNM}sQWCQ>I9!lIxpGsL_(5NU~Jsz}uT)sL( zr&1*P_8N-cmAkSeQA~NA?(d|oT4R$awqazmW(8F5_iv?zJ#mmb?PfxJ)HmWHdA?b0 zv**E}TkmsZ3k!shl2S`H2exX?*1F<_wgo6;XM!F8E%;GTVDs+X%`=?%0-%f*Gh1EE z(F=Po^iOu+M^&)i3RrJaK>lL9X{PfzroS5it!c2$+`h;D$S^`^&DkcYXs99o&~ z+fz@-!){~sJ`|1YS|6K;92(x5E9e#f#6mm1hE;Tqvswx3q2?tGP19+PIqo!%;B%fpy7Ir>}Zmro`mHo+gv6NE17n;3rPD4I5f=Z&Aof+-`i4CL^bBSy(DK5q} zF)_)2r)%GNl34{S>gnkrBMntzC$|=%#}0TePOMWjfSp5P{Dkqif@NFgW3l6lnFvLz zuAH_v#Y?DBhh_Fo{{s#8oc0|R2Bf}P0&MTwBlH_S>XDHV44U~`Q9}cgmX_w#Xk;(S z5c}~Wxq)!;**(ILv55&YN5^Ol=p|*)ua@p^e9Q9WurLDWDis+PvfuPsW%MKqc!;e& z`w2N&Zc6gd#z=*POwkH>i^?=IC!i z*>LgjUc+Gb$?%=fol%WfjlA4KC^Q<4LZQIm)>c>N26I(VqocwiBEdszx67=WS#&C; zYsDZrJU>67T7v^Wi42b3#(&k^+TQwOR?nm9DH-`wzhiV>AzJnV2Xh*2rt!QSb zy07n32(xq!wnb)fK>=H`D%b_W+U8r{D*GjYl^iwlRZHCpJd`7Sk?mHMG8Cv}Ro5p@ zKXe@OM^vIRfm-E(e;h|6PP~9W*!C_jFR_5wJ`xmsZ&YGsY03Ez$*YOG-qa**X=PP9 zZeLhbBqSjbZdB6s_EBkBS!{9wgx_fsI%dPq?(`X4p+Dr6qwZ3nrbUA8SS|IW^@lm6JT-rN0+>C3y+=`BgshGXARWl|s(xiHlAheB`lr&s+KQoiHH10lJ zjVLX%CpA*3axNs!uBY z1-Fg=;ULgqRU!^fmNyH3c78rSHa2&5v>~3Re(2MPQAFJNBkQ-fARno~*4x`lOiaA{ zhqpviPp@kw9ia}&f#Rh!)*t41Fs(AL(tLS)>8Wo&>J?UIO?Omev%sYb`rTNQ*OokDU zno_?*X5vF|T9u2XJO%k?WVX;2+=ijj;G)NQPIm8kCYk5XOm1EtZjr8vtE(_CFE7x9 zMU0)cruuh{Z<0WhP2up=(o!K&QPKAHs4lb_IsQGdHMas5;~0gTU#4Y;Jmy%uXSX;i%~(~{t^!^QqzgJ%Dk zAl{shH^&RtV5a13dhtZ>^zO6Xy8U*0CFqlz@*Yv9-5Ut8_F)SinXw8amB1ACgqid! zlm7dg=lIJ*;6F3(9=3o2X{ymTvADQc#5}gy`x1)7QgMupI1{K}4+t@RsK^n#3oG@R zaoHU@YEem*bjQxt>T0gL7a1LmZA7eQMaRe}mp?RraEdu9K}3x=4B0d~qZKT8UYlBX zc6F_7Z(I8LrA0?aZ$Sh?46YimZ%gfpeY55bW77Zrd1;{^muV4&qp~A(a23+ryNABX z^T^0Z&499hibpMp0>+kb$)jI1`zsH1A$(NVibqxb(D?O3i}0X7zu%Ri@=j&niay_; zzHVv30s*F~s`^C^a&eG;ExBTT{I2=ZqeCDI-}>zAtj6c)$9Ftj!m|VFY`lajHsN8j zj#cl!zx%a^wmhzredaD*@()kp@%af6?>S#V4EUx3$VfQZNEC1m?n3*a?%{TxmaftH zmf-=xt~s)qE(b(w0Yt2?AgOEWr=Zx|Lb_~wTp6Las+o75Jx^ewB|JY+-s4^mAez2j zU+0O6in8&UGayTl;uZ@}J41ZQprfP9tghBW;ShDN^b<{{vHbQ&UIzT_0Hqp!y;-WO z$iR$OWdE4Wqs98`a3+k&Gq%-$+)vSRScS!wh==`r7@P91%G(eFeh?FqB(vBVar4<>ddXUQpd7sf498_@z&m+SW#;16r}dNM|}rR^Qh>$ zKik2jZBOaf*`wMy?Y-zs6 zacMk)Li;foar&qaeSPXc>kSPJ+tJQF@?b&~yg{D1kXmfX1MR$;TDSa##?HB(8?gQ| zKX1x!Sob9lukYf8Ufuo!ze|^_EW89HUZ1@=&ork$YO*2u-&Cz@C=m_+N1r($%lBjP zf$=#!Jlq{;ekp8F;Lp5;`&?b>CzO#Y-@|pyIV3hf#zcrWp&~FL4)WAzE;&A`VXt7_ zaNj@68W?wXF^ ztQ_Dm(b3Ik$4D#J@4WcMEbiJHZ6NM0S+wx&bPxNZPvp(~1w)0HGhATS zLCke@bQIdcR^4+KtkwdotgHq$jjc0GvTV<5cwhAVO%%wleBsLRa`}nxvj=FsivWu=9Ns9N zqHtTZN0}oRGO2+M+QB}OcU(QScFDV@S6$)om0*5sVPWALxi@qH+yJSC{?zpD6}`7? zDFuEKba4`Nr4mGO5=5mEC~*0>4)vLZbE;kqw`VKm!16je?CwI*vFv-?>{;V%2EZ+Q$MFf*f}Q2~ z!e8YcxUxazA_!zEhXeH{t2bJU%(7LOf>ZDFl1ed<1;c_x|ITaJRm-ba!mqDd%KPv_ zJDD-*P|R(`Q5+4mEk!m+9Q5ay>7>fO!e@3fBzqqo>+j(9&u_d>c$*Y>Xi&D5Kv`~l zhdp13&=cv7vaS~wKqJN*lY#q2J9-~Ptax~blD0dap+fGQjW3pHX=?4 zkFei$JhrG?*aazkQU*$wO;VioWevL2O_wzU^+iU9A!OT2SDR+Ka77)f{GsGLJR<`G zNirXk(zdG5MKzr{ZE|Lh&2@;q(3;>{WyNc?q(c}V=e>FT^}gJz7S2ZMG=->XU5!fh zAmErvw9E(XkRvwMf^_9(Yt{W?YoG$Qx^MiSxlv^h=k;bok{U?9V9=KV*5X~`QGz~Q zi1T>$j8DYbna}u6z4qQ?=+$0~=e=t933{!e>uL>erM)>&@G)=5zu$j1H!Ya-!mp>( z4OQx|H+_4XPCRG*#H{!@SRxO$A9z>u{``mQ=-`lBQlfEj)~CvETJy7{1oHmo@t!l@ zTpLsHv3`tgEuuxYAX&G74p^Xh{XlobdlU8#P(}_$6_es(PTH`{QR`g{8>UTbdD!t{kJCoeH{L8ymU{FT48rUmN3WTw(bXQI~gw zx0%v(JkBP1R#$hAwwj9~PtR9A%uc;|nO&Ja_OL{Il9E`L(PlZh7DcuG!E7x(YM z>~Xrv-0JdG#(NfeCW>mjp6*ZgnV{BJE%^W`05xhOc3yT6_{|$B`xbtyvZ`uZg8tL% z2Pcox8kqM~KDQ+Mn5?N9-q?`b@PPwe_e-4K6@SIU#f^qD<}2QTxDpDfQwbfzYnh>B zz3@RC8dtw(5cpWEElzpU16~6!HSv{=j4yjCgTdUnOtf=ggOPDW z%)}uKeWZ3xKfvm%|D=rL_8rlXO=Mv0G#sc;ls1Ym>}P^I&Il3)XT{Q?JN~CQ%)0op z_fG6J3k$=x79*`LC^-e%FQ@u*u%8mJvuiJJxM=;r056X6G2!0qe`5ZZ7txiso?;rCa4tYsdv)$Rf$k3Av*P(|dzn8Q3 zrCdN<7*YecAvTG!xxmG-=6rRLr}=qI(e$c16uazjh{Hw}l)$EfIT9|G<#g%&UBd-> zLdmKkA|hCGZW1=u)^kAAvr0>~;Ou@*PJ&U0`PPuYtA_f$6Cb}^E{;Q=mjo=1JR-RN zbb??cLY3h>?w`NYqj)sAJVkXbb`O>S8mgamY@Pqf9motczp3e)KA(ah?ILgz01^)V z`^WM}BxEr;HMM8qrtGL^K$MK?(LW}Ua8sayWfM9a9cyG0rfJEue`4pc|Ap%R=w?jx zm}LEVFP`@$**HPrfc3vMx2YyShA4&SAW0MX4O`znx-oPE){EQI^{C-tEo0+;-jasa zu`ycCxG*otZykC_?K_uY#(qb`fftQN&4Fzs;{^7Pl2g-JsE1lc|9uf;w!pMRG zbO()b`0H3j{pMIhL3;?g7YY;?wu{x>oefPuVSuEW2k;{1Z59#V`-CrA~rC zJLU-A1+z^9%>y+?`FP~$M#suQ>Gr|=^G9Z zc|C#*j6c3SQ|7)kP9XW@$#2(wsV=a@Fo!?kI<&`+l2zeXrz==sHZJ_3fXCR47Vm-h zDzB=_6K|&Ft|a~DYv);;kD@UXh#9H33TijsKUL0VcliS-&X-sD>VV$w`ZNM=)Y;iN zHZ?^#najq;22jH{#FaPJ)qZ00E?7ZEe1BH%C0|y*^?I_!GubZ_dRbGS3exLbAD}YGV|4LC~$pY z=4DubN(Hx>cAR!(Of}Ke!g=?f6$`ZcpDKSLD&yU~i9J}6q}T5Is3;O@8XAHS*^0_a zAt+RXoqS%e`HTt_yTBQ=&I=wL9f6!q(dWCFqc4*u_lK&pZU)BaVN5Viz=v6yuoo>h zYE%}aWlvTG=KxPUw;8$AQ%(MRTA`lbW>zXFCKfti4UQ;uov$3bmwW-*%sW;05{7eC z=u-GhN52bs-?$qQVqlCve$kk(ssxyGVq&7a`{^+wNi53eP>8>Ou%p_miDg4%76HF+b@^vUY++61;tt z_)Rq6^+nPS_v+z$OJ}mH#Ot5Wl)o_GsY47L{aqtS(4`VpqG&hwrx;sdQg(a=4|=bq zzq86vJU;gOHK428TX}Wggm#g?D{J0}=0U)=9S|UWps_eE-m~vzE zG%}h3scv$2V@#*=_dy7EZb>ltC#gtFAci|TD=D)VoB*HQ4tfR@Z+v0`RO|`Bo9uQn zy!*JaGI+rAo5u3*ZOU@eZ;Z1Mjc2+!Bc;AcVoe|&E_dU(xp;g`NS7tNI*QG?MrmaE zjcvNs=jP|^sk4kvSj7WHCHo0%!_Lsi#I@!eI1n`4pH9(~F z-@Gw5HxD{L*>MGm2t-#9obWMuIy&;J#XOakjvn36Ni`)+EA(-r^Ta| z+JC^szh1#{zRyM*W@_-J_eavF=JEt@#xh<$QrdPB22maj3TMOU=kT*s&F) z37P>R$jP3*L`|*#kRO{nGepe5qOU~6$dA16TxG2%+4QJ)zG0w9&Dz5nFs3_44a)nh zI@7^Qkp?=C8Vr#kqTk>5T*ApdA8+jQcE^M>iH9EZegucvy}P)jwJZY|lVDj^RZeiynL4*QUJjyCS5Ge)xV*{lMkR?) zJ+}p=rTN#r;}=z|%5%aDBAN8-1co=1&HW7hm&Kig_G0b>5C6OvPkJ4=U`QJAwXAA=gAFXw04zIb2mlhz>@2)u(9~n_FQd;K5}C{= z^>gq)w#pmLY|$-B1K%v|nh{Ou1(FDkfIs|QYF%^=^4kz`F|#z;mN4dKvR(aa%hT6g|Tj!1PX zj>Q9Xs&U)*aKUS*_=hDizHtyCJ9D}FZ&uL+omPoj9f9qEtXTn?1MoD`%_^T|-3G~# zx15wwSy~0Ioro%-iY4#R^u0*GAP%vUpSv*)OkoFhbRH zjSsdU2G2|xy%BR}PGlDWyxmdY3H-Rq=Qw(wm|qw{42Zv=aP%~3sid6lYQn&^{x{dU zjuMfA?*^FMd>5cmMhP(oAA`k^5#*@u1wXWi&c9EtN>21li_@% literal 0 HcmV?d00001 From 2ee2bda4e94b445a350bb02591e230112a20974d Mon Sep 17 00:00:00 2001 From: Boblet Date: Mon, 11 Sep 2023 15:47:25 +0200 Subject: [PATCH 299/432] pump fixes, finished telex --- .../com/hbm/blocks/machine/MachinePump.java | 7 +++ .../java/com/hbm/main/CraftingManager.java | 1 + .../machine/TileEntityMachinePumpBase.java | 55 ++++++++++++++++++- src/main/resources/assets/hbm/lang/de_DE.lang | 1 + src/main/resources/assets/hbm/lang/en_US.lang | 1 + 5 files changed, 64 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/blocks/machine/MachinePump.java b/src/main/java/com/hbm/blocks/machine/MachinePump.java index ee90203b1..a2cd6ab1c 100644 --- a/src/main/java/com/hbm/blocks/machine/MachinePump.java +++ b/src/main/java/com/hbm/blocks/machine/MachinePump.java @@ -8,6 +8,7 @@ import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.ITooltipProvider; import com.hbm.blocks.ModBlocks; import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.machine.TileEntityMachinePumpBase; import com.hbm.tileentity.machine.TileEntityMachinePumpElectric; import com.hbm.tileentity.machine.TileEntityMachinePumpSteam; import com.hbm.util.BobMathUtil; @@ -75,6 +76,8 @@ public class MachinePump extends BlockDummyable implements ITooltipProvider, ILo return; TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]); + + if(!(te instanceof TileEntityMachinePumpBase)) return; List text = new ArrayList(); @@ -95,6 +98,10 @@ public class MachinePump extends BlockDummyable implements ITooltipProvider, ILo text.add("&[" + (BobMathUtil.getBlink() ? 0xff0000 : 0xffff00) + "&]! ! ! ALTITUDE ! ! !"); } + if(!((TileEntityMachinePumpBase) te).onGround) { + text.add("&[" + (BobMathUtil.getBlink() ? 0xff0000 : 0xffff00) + "&]! ! ! NO VALID GROUND ! ! !"); + } + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } } diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 24711fe67..1096a4c18 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -254,6 +254,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.radio_torch_sender, 4), new Object[] { "G", "R", "I", 'G', "dustGlowstone", 'R', Blocks.redstone_torch, 'I', NETHERQUARTZ.gem() }); addRecipeAuto(new ItemStack(ModBlocks.radio_torch_receiver, 4), new Object[] { "G", "R", "I", 'G', "dustGlowstone", 'R', Blocks.redstone_torch, 'I', IRON.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.radio_torch_counter, 4), new Object[] { "G", "R", "I", 'G', "dustGlowstone", 'R', Blocks.redstone_torch, 'I', ModItems.circuit_aluminium }); + addRecipeAuto(new ItemStack(ModBlocks.radio_telex, 2), new Object[] { "SCR", "W#W", "WWW", 'S', ModBlocks.radio_torch_sender, 'C', ModItems.crt_display, 'R', ModBlocks.radio_torch_receiver, 'W', KEY_PLANKS, '#', ModItems.circuit_aluminium }); addRecipeAuto(new ItemStack(ModBlocks.conveyor, 16), new Object[] { "LLL", "I I", "LLL", 'L', Items.leather, 'I', IRON.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.conveyor, 16), new Object[] { "RSR", "I I", "RSR", 'I', IRON.ingot(), 'R', DictFrame.fromOne(ModItems.plant_item, EnumPlantType.ROPE), 'S', IRON.plate() }); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpBase.java index 9d5426e62..cbb7ee308 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpBase.java @@ -1,5 +1,8 @@ package com.hbm.tileentity.machine; +import java.util.HashSet; + +import com.hbm.blocks.ModBlocks; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; @@ -10,16 +13,34 @@ import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.init.Blocks; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; public abstract class TileEntityMachinePumpBase extends TileEntityLoadedBase implements IFluidStandardTransceiver, INBTPacketReceiver { + public static final HashSet validBlocks = new HashSet(); + + static { + validBlocks.add(Blocks.grass); + validBlocks.add(Blocks.dirt); + validBlocks.add(Blocks.sand); + validBlocks.add(Blocks.mycelium); + validBlocks.add(ModBlocks.waste_earth); + validBlocks.add(ModBlocks.dirt_dead); + validBlocks.add(ModBlocks.dirt_oily); + validBlocks.add(ModBlocks.sand_dirty); + validBlocks.add(ModBlocks.sand_dirty_red); + } + public FluidTank water; public boolean isOn = false; public float rotor; public float lastRotor; + public boolean onGround = false; + public int groundCheckDelay = 0; public void updateEntity() { @@ -29,8 +50,14 @@ public abstract class TileEntityMachinePumpBase extends TileEntityLoadedBase imp if(water.getFill() > 0) this.sendFluid(water, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } + if(groundCheckDelay > 0) { + groundCheckDelay--; + } else { + onGround = this.checkGround(); + } + this.isOn = false; - if(this.canOperate() && yCoord <= 70) { + if(this.canOperate() && yCoord <= 70 && onGround) { this.isOn = true; this.operate(); } @@ -52,9 +79,34 @@ public abstract class TileEntityMachinePumpBase extends TileEntityLoadedBase imp } } + protected boolean checkGround() { + + if(worldObj.provider.hasNoSky) return false; + + int validBlocks = 0; + int invalidBlocks = 0; + + for(int x = -1; x <= 1; x++) { + for(int y = -1; y >= -4; y--) { + for(int z = -1; z <= 1; z++) { + + Block b = worldObj.getBlock(xCoord + x, yCoord + y, zCoord + z); + + if(y == -1 && !b.isNormalCube()) return false; // first layer has to be full solid + + if(this.validBlocks.contains(b)) validBlocks++; + else invalidBlocks ++; + } + } + } + + return validBlocks >= invalidBlocks; // valid block count has to be at least 50% + } + protected NBTTagCompound getSync() { NBTTagCompound data = new NBTTagCompound(); data.setBoolean("isOn", isOn); + data.setBoolean("onGround", onGround); water.writeToNBT(data, "w"); return data; } @@ -62,6 +114,7 @@ public abstract class TileEntityMachinePumpBase extends TileEntityLoadedBase imp @Override public void networkUnpack(NBTTagCompound nbt) { this.isOn = nbt.getBoolean("isOn"); + this.onGround = nbt.getBoolean("onGround"); water.readFromNBT(nbt, "w"); } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 549ddb0fa..a82e8db40 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -4278,6 +4278,7 @@ tile.pwr_port.name=PWR Zugangsport tile.pwr_port.desc=Erlaubt IO für Items und Flüssigkeiten$Platzierung: Hülle tile.pwr_reflector.name=PWR Neutronenreflektor tile.pwr_reflector.desc=Reflektier Neutronen auf Brennstäbe zurück$Platzierung: Hülle, für höhere Reaktivität$Gültiger Block für Hülle +tile.radio_telex.name=Telex-Maschine tile.radio_torch_counter.name=Redstone-over-Radio Itemzähler tile.radio_torch_counter.desc=Kann auf ebenen Flächen oder Komparator-kompatiblen Blöcken platziert werden$Signal basiert auf Anzahl passender Items tile.radio_torch_receiver.name=Redstone-over-Radio Empfänger diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 9f1240865..46c98ba3e 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -5258,6 +5258,7 @@ tile.pwr_port.name=PWR Access Port tile.pwr_port.desc=Allows item and fluid IO$Placement: Casing tile.pwr_reflector.name=PWR Neutron Reflector tile.pwr_reflector.desc=Reflects neutrons back to fuel rods$Placement: Grid, for increased reactivity$Valid casing material +tile.radio_telex.name=Telex Machine tile.radio_torch_counter.name=Redstone-over-Radio Item Counter tile.radio_torch_counter.desc=Placable on flat surfaces or comparator-compatible blocks$Bases signal on the amount of matching items tile.radio_torch_receiver.name=Redstone-over-Radio Receiver From d9a700ca57fb66565a9a13fe55216e39af11f3db Mon Sep 17 00:00:00 2001 From: Bob Date: Mon, 11 Sep 2023 22:02:59 +0200 Subject: [PATCH 300/432] fixed armor legs, alternate firebrick recipe --- .../java/com/hbm/crafting/MineralRecipes.java | 2 + .../inventory/recipes/CombinationRecipes.java | 2 + .../render/model/ModelArmorTrenchmaster.java | 4 +- .../machine/TileEntityMachinePumpBase.java | 1 + .../network/TileEntityRadioTelex.java | 26 + .../assets/hbm/models/armor/trenchmaster.obj | 2698 +++++++++-------- 6 files changed, 1402 insertions(+), 1331 deletions(-) diff --git a/src/main/java/com/hbm/crafting/MineralRecipes.java b/src/main/java/com/hbm/crafting/MineralRecipes.java index 039644891..45e58b454 100644 --- a/src/main/java/com/hbm/crafting/MineralRecipes.java +++ b/src/main/java/com/hbm/crafting/MineralRecipes.java @@ -1,6 +1,7 @@ package com.hbm.crafting; import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.BlockEnums.EnumStoneType; import com.hbm.items.ItemEnums.EnumCokeType; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemRTGPelletDepleted.DepletedRTGMaterial; @@ -446,6 +447,7 @@ public class MineralRecipes { CraftingManager.addShapelessAuto(new ItemStack(ModItems.ball_fireclay, 4), new Object[] { Items.clay_ball, Items.clay_ball, Items.clay_ball, AL.dust() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.ball_fireclay, 4), new Object[] { Items.clay_ball, Items.clay_ball, Items.clay_ball, AL.ore() }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.ball_fireclay, 4), new Object[] { Items.clay_ball, Items.clay_ball, DictFrame.fromOne(ModBlocks.stone_resource, EnumStoneType.LIMESTONE), KEY_SAND }); add9To1(DictFrame.fromOne(ModItems.ore_byproduct, EnumByproduct.B_IRON), new ItemStack(ModItems.powder_iron)); add9To1(DictFrame.fromOne(ModItems.ore_byproduct, EnumByproduct.B_COPPER), new ItemStack(ModItems.powder_copper)); diff --git a/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java b/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java index 517229247..2b70c1359 100644 --- a/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java @@ -26,6 +26,7 @@ import com.hbm.items.ModItems; import com.hbm.items.machine.ItemFluidIcon; import com.hbm.util.Tuple.Pair; +import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; @@ -60,6 +61,7 @@ public class CombinationRecipes extends SerializableRecipe { recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.WOOD)), new Pair(DictFrame.fromOne(ModItems.coke, EnumCokeType.COAL), null)); recipes.put(new ComparableStack(Items.reeds), new Pair(new ItemStack(Items.sugar, 2), new FluidStack(Fluids.ETHANOL, 50))); + recipes.put(new ComparableStack(Blocks.clay), new Pair(new ItemStack(Blocks.brick_block, 1), null)); } public static Pair getOutput(ItemStack stack) { diff --git a/src/main/java/com/hbm/render/model/ModelArmorTrenchmaster.java b/src/main/java/com/hbm/render/model/ModelArmorTrenchmaster.java index 8ded2bb29..533190861 100644 --- a/src/main/java/com/hbm/render/model/ModelArmorTrenchmaster.java +++ b/src/main/java/com/hbm/render/model/ModelArmorTrenchmaster.java @@ -23,8 +23,8 @@ public class ModelArmorTrenchmaster extends ModelArmorBase { rightArm = new ModelRendererObj(ResourceManager.armor_trenchmaster, "RightArm").setRotationPoint(5.0F, 2.0F, 0.0F); leftLeg = new ModelRendererObj(ResourceManager.armor_trenchmaster, "LeftLeg").setRotationPoint(1.9F, 12.0F, 0.0F); rightLeg = new ModelRendererObj(ResourceManager.armor_trenchmaster, "RightLeg").setRotationPoint(-1.9F, 12.0F, 0.0F); - leftFoot = new ModelRendererObj(ResourceManager.armor_trenchmaster, "LeftFoot").setRotationPoint(1.9F, 12.0F, 0.0F); - rightFoot = new ModelRendererObj(ResourceManager.armor_trenchmaster, "RightFoot").setRotationPoint(-1.9F, 12.0F, 0.0F); + leftFoot = new ModelRendererObj(ResourceManager.armor_trenchmaster, "LeftBoot").setRotationPoint(1.9F, 12.0F, 0.0F); + rightFoot = new ModelRendererObj(ResourceManager.armor_trenchmaster, "RightBoot").setRotationPoint(-1.9F, 12.0F, 0.0F); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpBase.java index cbb7ee308..2b91757d8 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpBase.java @@ -75,6 +75,7 @@ public abstract class TileEntityMachinePumpBase extends TileEntityLoadedBase imp this.lastRotor -= 360F; MainRegistry.proxy.playSoundClient(xCoord, yCoord, zCoord, "hbm:block.steamEngineOperate", 0.5F, 0.75F); + MainRegistry.proxy.playSoundClient(xCoord, yCoord, zCoord, "game.neutral.swim.splash", 1F, 0.5F); } } } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityRadioTelex.java b/src/main/java/com/hbm/tileentity/network/TileEntityRadioTelex.java index 3137ef832..628e3e118 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityRadioTelex.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityRadioTelex.java @@ -20,6 +20,7 @@ import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; public class TileEntityRadioTelex extends TileEntity implements INBTPacketReceiver, IControlReceiver, IGUIProvider { @@ -224,4 +225,29 @@ public class TileEntityRadioTelex extends TileEntity implements INBTPacketReceiv public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GuiScreenRadioTelex(this); } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 1, + yCoord, + zCoord - 1, + xCoord + 2, + yCoord + 1, + zCoord + 2 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } } diff --git a/src/main/resources/assets/hbm/models/armor/trenchmaster.obj b/src/main/resources/assets/hbm/models/armor/trenchmaster.obj index 9289dc89b..afb0242b7 100644 --- a/src/main/resources/assets/hbm/models/armor/trenchmaster.obj +++ b/src/main/resources/assets/hbm/models/armor/trenchmaster.obj @@ -1,5 +1,211 @@ # Blender v2.79 (sub 0) OBJ File: 'trenchmaster_scaled.blend' # www.blender.org +o LeftBoot +v 4.625000 24.299997 2.625000 +v -0.625000 24.299999 2.625000 +v 4.625000 24.299997 -2.625000 +v -0.625000 24.299999 -2.625000 +v 3.575000 24.299999 -3.675000 +v 0.425000 24.299999 -3.675000 +v 3.574999 22.199999 -3.675000 +v 0.424999 22.199999 -3.675000 +v 3.574999 21.149998 -2.625000 +v 0.424999 21.150000 -2.625000 +v 4.625000 22.199999 -2.625000 +v -0.625001 22.200001 -2.625000 +v -0.100001 20.100000 -2.100000 +v 4.099998 20.099998 -2.100000 +v -0.100001 20.100000 2.100000 +v 4.099998 20.099998 2.100000 +v 4.624999 20.099998 2.625000 +v -0.625001 20.100000 2.625000 +v 4.624999 20.099998 -2.625000 +v -0.625001 20.100000 -2.625000 +vt 0.250000 0.000000 +vt 0.000000 0.222222 +vt 0.000000 -0.000000 +vt 0.500000 0.000000 +vt 0.300000 0.044444 +vt 0.250000 0.000000 +vt 0.450000 0.044444 +vt 0.300000 0.133333 +vt 0.450000 0.133333 +vt 0.300000 0.177778 +vt 0.750000 0.400000 +vt 0.525000 0.422222 +vt 0.500000 0.400000 +vt 0.500000 0.311111 +vt 0.275000 0.422222 +vt 0.250000 0.400000 +vt 0.500000 0.133333 +vt 0.500000 0.044444 +vt 0.250000 0.133333 +vt 0.250000 0.044444 +vt 0.450000 0.177778 +vt 0.300000 0.355556 +vt 0.450000 0.355556 +vt 1.000000 0.400000 +vt 0.775000 0.422222 +vt 0.025000 0.422222 +vt 0.000000 0.400000 +vt 0.250000 0.311111 +vt 1.000000 0.222222 +vt 0.750000 0.222222 +vt 0.250000 0.222222 +vt 0.725000 0.422222 +vt 0.500000 0.222222 +vt 0.475000 0.422222 +vt 0.975000 0.422222 +vt 0.225000 0.422222 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -1.0000 0.0000 +vn 1.0000 -0.0000 0.0000 +vn 0.7071 -0.0000 -0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.5774 -0.5774 -0.5773 +vn -0.5773 -0.5773 -0.5774 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +s off +f 3/1/1 2/2/1 1/3/1 +f 3/4/1 6/5/1 4/6/1 +f 5/7/2 8/8/2 6/5/2 +f 7/9/3 10/10/3 8/8/3 +f 17/11/4 14/12/4 19/13/4 +f 17/11/5 19/13/5 11/14/5 +f 19/13/4 13/15/4 20/16/4 +f 11/17/6 5/7/6 3/18/6 +f 6/5/7 12/19/7 4/20/7 +f 9/21/8 7/9/8 11/17/8 +f 10/22/2 9/23/2 19/13/2 +f 8/8/9 10/10/9 12/19/9 +f 18/24/4 16/25/4 17/11/4 +f 20/16/4 15/26/4 18/27/4 +f 2/2/10 12/28/10 18/27/10 +f 2/29/11 17/11/11 1/30/11 +f 3/1/1 4/31/1 2/2/1 +f 3/4/1 5/7/1 6/5/1 +f 5/7/2 7/9/2 8/8/2 +f 7/9/3 9/21/3 10/10/3 +f 17/11/4 16/32/4 14/12/4 +f 3/33/5 1/30/5 11/14/5 +f 1/30/5 17/11/5 11/14/5 +f 19/13/4 14/34/4 13/15/4 +f 11/17/6 7/9/6 5/7/6 +f 6/5/7 8/8/7 12/19/7 +f 20/16/2 12/28/2 10/22/2 +f 9/23/2 11/14/2 19/13/2 +f 20/16/2 10/22/2 19/13/2 +f 18/24/4 15/35/4 16/25/4 +f 20/16/4 13/36/4 15/26/4 +f 4/31/10 12/28/10 2/2/10 +f 12/28/10 20/16/10 18/27/10 +f 2/29/11 18/24/11 17/11/11 +o RightBoot +v -4.625000 24.300001 2.625000 +v 0.625000 24.299999 2.625000 +v -4.625000 24.300001 -2.625000 +v 0.625000 24.299999 -2.625000 +v -3.575000 24.300001 -3.675000 +v -0.425000 24.299999 -3.675000 +v -3.575000 22.200001 -3.675000 +v -0.425001 22.200001 -3.675000 +v -3.575001 21.150002 -2.625000 +v -0.425001 21.150000 -2.625000 +v -4.625000 22.200001 -2.625000 +v 0.624999 22.199999 -2.625000 +v 0.099999 20.100000 -2.100000 +v -4.100001 20.100002 -2.100000 +v 0.099999 20.100000 2.100000 +v -4.100001 20.100002 2.100000 +v -4.625001 20.100002 2.625000 +v 0.624999 20.100000 2.625000 +v -4.625001 20.100002 -2.625000 +v 0.624999 20.100000 -2.625000 +vt 0.000000 0.222222 +vt 0.250000 0.000000 +vt 0.000000 -0.000000 +vt 0.300000 0.044444 +vt 0.500000 0.000000 +vt 0.250000 0.000000 +vt 0.300000 0.133333 +vt 0.450000 0.044444 +vt 0.300000 0.177778 +vt 0.450000 0.133333 +vt 0.525000 0.422222 +vt 0.750000 0.400000 +vt 0.500000 0.400000 +vt 0.500000 0.311111 +vt 0.275000 0.422222 +vt 0.250000 0.400000 +vt 0.500000 0.133333 +vt 0.500000 0.044444 +vt 0.250000 0.133333 +vt 0.250000 0.044444 +vt 0.450000 0.177778 +vt 0.450000 0.355556 +vt 0.300000 0.355556 +vt 0.775000 0.422222 +vt 1.000000 0.400000 +vt 0.025000 0.422222 +vt 0.000000 0.400000 +vt 0.250000 0.311111 +vt 0.750000 0.222222 +vt 1.000000 0.222222 +vt 0.250000 0.222222 +vt 0.725000 0.422222 +vt 0.500000 0.222222 +vt 0.475000 0.422222 +vt 0.975000 0.422222 +vt 0.225000 0.422222 +vn 0.0000 1.0000 0.0000 +vn -0.0000 0.0000 -1.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 -0.0000 -0.7071 +vn -0.5773 -0.5774 -0.5774 +vn 0.5773 -0.5773 -0.5774 +vn 1.0000 -0.0000 -0.0000 +vn 0.0000 0.0000 1.0000 +s off +f 22/37/12 23/38/12 21/39/12 +f 26/40/12 23/41/12 24/42/12 +f 28/43/13 25/44/13 26/40/13 +f 30/45/14 27/46/14 28/43/14 +f 34/47/15 37/48/15 39/49/15 +f 31/50/16 39/49/16 37/48/16 +f 33/51/15 39/49/15 40/52/15 +f 25/44/17 31/53/17 23/54/17 +f 32/55/18 26/40/18 24/56/18 +f 29/57/19 31/53/19 27/46/19 +f 29/58/13 30/59/13 40/52/13 +f 28/43/20 32/55/20 30/45/20 +f 36/60/15 38/61/15 37/48/15 +f 35/62/15 40/52/15 38/63/15 +f 38/63/21 32/64/21 22/37/21 +f 21/65/22 38/61/22 22/66/22 +f 22/37/12 24/67/12 23/38/12 +f 26/40/12 25/44/12 23/41/12 +f 28/43/13 27/46/13 25/44/13 +f 30/45/14 29/57/14 27/46/14 +f 34/47/15 36/68/15 37/48/15 +f 37/48/16 21/65/16 31/50/16 +f 21/65/16 23/69/16 31/50/16 +f 33/51/15 34/70/15 39/49/15 +f 25/44/17 27/46/17 31/53/17 +f 32/55/18 28/43/18 26/40/18 +f 39/49/13 31/50/13 29/58/13 +f 30/59/13 32/64/13 40/52/13 +f 39/49/13 29/58/13 40/52/13 +f 36/60/15 35/71/15 38/61/15 +f 35/62/15 33/72/15 40/52/15 +f 40/52/21 32/64/21 38/63/21 +f 32/64/21 24/67/21 22/37/21 +f 21/65/22 37/48/22 38/61/22 o Light v 2.099990 -5.575001 -5.250000 v 3.463980 -4.787502 -5.250000 @@ -47,49 +253,33 @@ vn 0.7071 -0.0000 -0.7071 vn 0.0000 0.7071 -0.7071 vn -0.7071 0.0000 -0.7071 s off -f 1/1/1 5/2/1 3/3/1 -f 11/4/1 10/5/1 9/6/1 -f 16/7/2 17/8/2 13/9/2 -f 17/8/1 19/10/1 18/11/1 -f 13/9/3 18/11/3 14/12/3 -f 14/12/4 19/10/4 15/13/4 -f 15/13/5 20/14/5 16/7/5 -f 3/3/1 2/15/1 1/1/1 -f 1/1/1 6/16/1 5/2/1 -f 5/2/1 4/17/1 3/3/1 -f 9/6/1 8/18/1 11/4/1 -f 8/18/1 7/19/1 11/4/1 -f 7/19/1 12/20/1 11/4/1 -f 16/7/2 20/14/2 17/8/2 -f 17/8/1 20/14/1 19/10/1 -f 13/9/3 17/8/3 18/11/3 -f 14/12/4 18/11/4 19/10/4 -f 15/13/5 19/10/5 20/14/5 +f 41/73/23 45/74/23 43/75/23 +f 51/76/23 50/77/23 49/78/23 +f 56/79/24 57/80/24 53/81/24 +f 57/80/23 59/82/23 58/83/23 +f 53/81/25 58/83/25 54/84/25 +f 54/84/26 59/82/26 55/85/26 +f 55/85/27 60/86/27 56/79/27 +f 43/75/23 42/87/23 41/73/23 +f 41/73/23 46/88/23 45/74/23 +f 45/74/23 44/89/23 43/75/23 +f 49/78/23 48/90/23 51/76/23 +f 48/90/23 47/91/23 51/76/23 +f 47/91/23 52/92/23 51/76/23 +f 56/79/24 60/86/24 57/80/24 +f 57/80/23 60/86/23 59/82/23 +f 53/81/25 57/80/25 58/83/25 +f 54/84/26 58/83/26 59/82/26 +f 55/85/27 59/82/27 60/86/27 o RightLeg -v -4.625000 24.300001 2.625000 -v 0.625000 24.299999 2.625000 -v -4.625000 24.300001 -2.625000 -v 0.625000 24.299999 -2.625000 v -4.100004 11.700002 2.100000 v 0.099996 11.700001 2.100000 v -4.100004 11.700002 -2.100000 v 0.099996 11.700001 -2.100000 -v -3.575000 24.300001 -3.675000 -v -0.425000 24.299999 -3.675000 -v -3.575000 22.200001 -3.675000 -v -0.425001 22.200001 -3.675000 -v -3.575001 21.150002 -2.625000 -v -0.425001 21.150000 -2.625000 -v -4.625000 22.200001 -2.625000 -v 0.624999 22.199999 -2.625000 v 0.099999 20.100000 -2.100000 v -4.100001 20.100002 -2.100000 v 0.099999 20.100000 2.100000 v -4.100001 20.100002 2.100000 -v -4.625001 20.100002 2.625000 -v 0.624999 20.100000 2.625000 -v -4.625001 20.100002 -2.625000 -v 0.624999 20.100000 -2.625000 v -4.100001 19.050001 2.100000 v 0.099998 19.049999 2.100000 v -4.100001 19.050001 -2.100000 @@ -106,45 +296,18 @@ v -4.100003 15.900001 2.100000 v 0.099997 15.900000 2.100000 v -4.100003 15.900001 -2.100000 v 0.099997 15.900000 -2.100000 -vt 0.000000 0.222222 -vt 0.250000 0.000000 -vt 0.000000 -0.000000 vt 0.225000 1.000000 vt 0.025000 0.822222 vt 0.025000 1.000000 -vt 0.300000 0.044444 -vt 0.500000 0.000000 -vt 0.250000 0.000000 -vt 0.300000 0.133333 -vt 0.450000 0.044444 -vt 0.300000 0.177778 -vt 0.450000 0.133333 vt 0.525000 0.422222 -vt 0.750000 0.400000 -vt 0.500000 0.400000 -vt 0.500000 0.311111 -vt 0.275000 0.422222 -vt 0.250000 0.400000 vt 0.725000 0.466667 vt 0.725000 0.422222 -vt 0.500000 0.133333 -vt 0.500000 0.044444 -vt 0.250000 0.133333 -vt 0.250000 0.044444 +vt 0.275000 0.422222 vt 0.475000 0.466667 vt 0.475000 0.422222 vt 0.025000 0.422222 vt 0.225000 0.466667 vt 0.225000 0.422222 -vt 0.450000 0.177778 -vt 0.450000 0.355556 -vt 0.300000 0.355556 -vt 0.775000 0.422222 -vt 1.000000 0.400000 -vt 0.000000 0.400000 -vt 0.250000 0.311111 -vt 0.750000 0.222222 -vt 1.000000 0.222222 vt 0.750000 0.488889 vt 0.975000 0.466667 vt 0.775000 0.466667 @@ -175,122 +338,66 @@ vt 0.275000 0.822222 vt 0.475000 0.822222 vt 0.225000 0.644444 vt 0.225000 0.822222 +vt 0.775000 0.422222 vt 0.975000 0.422222 -vt 0.250000 0.222222 -vt 0.500000 0.222222 -vn 0.0000 1.0000 0.0000 vn -0.0000 -1.0000 0.0000 -vn -0.0000 0.0000 -1.0000 -vn 0.0000 -0.7071 -0.7071 vn -1.0000 0.0000 0.0000 -vn -0.7071 0.0000 -0.7071 -vn 0.7071 -0.0000 -0.7071 +vn 0.0000 0.0000 -1.0000 vn 1.0000 -0.0000 0.0000 -vn -0.5773 -0.5774 -0.5774 -vn 0.5773 -0.5773 -0.5774 +vn 0.0000 1.0000 0.0000 vn 0.0000 0.0000 1.0000 s off -f 22/21/6 23/22/6 21/23/6 -f 27/24/7 26/25/7 25/26/7 -f 30/27/6 23/28/6 24/29/6 -f 32/30/8 29/31/8 30/27/8 -f 34/32/9 31/33/9 32/30/9 -f 38/34/7 41/35/7 43/36/7 -f 35/37/10 43/36/10 41/35/10 -f 37/38/7 43/36/7 44/39/7 -f 38/34/10 45/40/10 40/41/10 -f 29/31/11 35/42/11 23/43/11 -f 36/44/12 30/27/12 24/45/12 -f 37/38/8 47/46/8 38/47/8 -f 39/48/13 48/49/13 37/50/13 -f 33/51/14 35/42/14 31/33/14 -f 33/52/8 34/53/8 44/39/8 -f 32/30/15 36/44/15 34/32/15 -f 40/54/7 42/55/7 41/35/7 -f 39/48/7 44/39/7 42/56/7 -f 42/56/13 36/57/13 22/21/13 -f 21/58/16 42/55/16 22/59/16 -f 49/60/6 46/61/6 45/62/6 -f 50/63/6 48/49/6 46/64/6 -f 52/65/6 47/46/6 48/66/6 -f 51/67/6 45/40/6 47/68/6 -f 53/69/16 50/70/16 49/60/16 -f 55/71/10 49/60/10 51/67/10 -f 56/72/8 51/67/8 52/65/8 -f 54/73/13 52/65/13 50/63/13 -f 59/74/7 53/69/7 55/71/7 -f 60/75/7 55/71/7 56/72/7 -f 58/76/7 56/72/7 54/73/7 -f 53/69/7 58/77/7 54/78/7 -f 26/79/16 57/80/16 25/81/16 -f 57/82/10 27/83/10 25/84/10 -f 59/85/8 28/86/8 27/87/8 -f 60/88/13 26/25/13 28/89/13 -f 40/54/16 46/61/16 39/90/16 -f 22/21/6 24/91/6 23/22/6 -f 27/24/7 28/89/7 26/25/7 -f 30/27/6 29/31/6 23/28/6 -f 32/30/8 31/33/8 29/31/8 -f 34/32/9 33/51/9 31/33/9 -f 38/34/7 40/41/7 41/35/7 -f 41/35/10 21/58/10 35/37/10 -f 21/58/10 23/92/10 35/37/10 -f 37/38/7 38/47/7 43/36/7 -f 38/34/10 47/68/10 45/40/10 -f 29/31/11 31/33/11 35/42/11 -f 36/44/12 32/30/12 30/27/12 -f 37/38/8 48/66/8 47/46/8 -f 39/48/13 46/64/13 48/49/13 -f 43/36/8 35/37/8 33/52/8 -f 34/53/8 36/57/8 44/39/8 -f 43/36/8 33/52/8 44/39/8 -f 40/54/7 39/90/7 42/55/7 -f 39/48/7 37/50/7 44/39/7 -f 44/39/13 36/57/13 42/56/13 -f 36/57/13 24/91/13 22/21/13 -f 21/58/16 41/35/16 42/55/16 -f 49/60/6 50/70/6 46/61/6 -f 50/63/6 52/65/6 48/49/6 -f 52/65/6 51/67/6 47/46/6 -f 51/67/6 49/60/6 45/40/6 -f 53/69/16 54/78/16 50/70/16 -f 55/71/10 53/69/10 49/60/10 -f 56/72/8 55/71/8 51/67/8 -f 54/73/13 56/72/13 52/65/13 -f 59/74/7 57/82/7 53/69/7 -f 60/75/7 59/85/7 55/71/7 -f 58/76/7 60/88/7 56/72/7 -f 53/69/7 57/80/7 58/77/7 -f 26/79/16 58/77/16 57/80/16 -f 57/82/10 59/74/10 27/83/10 -f 59/85/8 60/75/8 28/86/8 -f 60/88/13 58/76/13 26/25/13 -f 40/54/16 45/62/16 46/61/16 +f 63/93/28 62/94/28 61/95/28 +f 66/96/29 69/97/29 68/98/29 +f 65/99/30 71/100/30 66/101/30 +f 67/102/31 72/103/31 65/104/31 +f 73/105/32 70/106/32 69/107/32 +f 74/108/32 72/103/32 70/109/32 +f 76/110/32 71/100/32 72/111/32 +f 75/112/32 69/97/32 71/113/32 +f 77/114/33 74/115/33 73/105/33 +f 79/116/29 73/105/29 75/112/29 +f 80/117/30 75/112/30 76/110/30 +f 78/118/31 76/110/31 74/108/31 +f 83/119/28 77/114/28 79/116/28 +f 84/120/28 79/116/28 80/117/28 +f 82/121/28 80/117/28 78/118/28 +f 77/114/28 82/122/28 78/123/28 +f 62/124/33 81/125/33 61/126/33 +f 81/127/29 63/128/29 61/129/29 +f 83/130/30 64/131/30 63/132/30 +f 84/133/31 62/94/31 64/134/31 +f 68/135/33 70/106/33 67/136/33 +f 63/93/28 64/134/28 62/94/28 +f 66/96/29 71/113/29 69/97/29 +f 65/99/30 72/111/30 71/100/30 +f 67/102/31 70/109/31 72/103/31 +f 73/105/32 74/115/32 70/106/32 +f 74/108/32 76/110/32 72/103/32 +f 76/110/32 75/112/32 71/100/32 +f 75/112/32 73/105/32 69/97/32 +f 77/114/33 78/123/33 74/115/33 +f 79/116/29 77/114/29 73/105/29 +f 80/117/30 79/116/30 75/112/30 +f 78/118/31 80/117/31 76/110/31 +f 83/119/28 81/127/28 77/114/28 +f 84/120/28 83/130/28 79/116/28 +f 82/121/28 84/133/28 80/117/28 +f 77/114/28 81/125/28 82/122/28 +f 62/124/33 82/122/33 81/125/33 +f 81/127/29 83/119/29 63/128/29 +f 83/130/30 84/120/30 64/131/30 +f 84/133/31 82/121/31 62/94/31 +f 68/135/33 69/107/33 70/106/33 o LeftLeg -v 4.625000 24.299997 2.625000 -v -0.625000 24.299999 2.625000 -v 4.625000 24.299997 -2.625000 -v -0.625000 24.299999 -2.625000 v 4.099996 11.700000 2.100000 v -0.100004 11.700001 2.100000 v 4.099996 11.700000 -2.100000 v -0.100004 11.700001 -2.100000 -v 3.575000 24.299999 -3.675000 -v 0.425000 24.299999 -3.675000 -v 3.574999 22.199999 -3.675000 -v 0.424999 22.199999 -3.675000 -v 3.574999 21.149998 -2.625000 -v 0.424999 21.150000 -2.625000 -v 4.625000 22.199999 -2.625000 -v -0.625001 22.200001 -2.625000 v -0.100001 20.100000 -2.100000 v 4.099998 20.099998 -2.100000 v -0.100001 20.100000 2.100000 v 4.099998 20.099998 2.100000 -v 4.624999 20.099998 2.625000 -v -0.625001 20.100000 2.625000 -v 4.624999 20.099998 -2.625000 -v -0.625001 20.100000 -2.625000 v 4.099998 19.049999 2.100000 v -0.100002 19.049999 2.100000 v 4.099998 19.049999 -2.100000 @@ -307,45 +414,18 @@ v 4.099997 15.899999 2.100000 v -0.100003 15.900000 2.100000 v 4.099997 15.899999 -2.100000 v -0.100003 15.900000 -2.100000 -vt 0.250000 0.000000 -vt 0.000000 0.222222 -vt 0.000000 -0.000000 vt 0.025000 0.822222 vt 0.225000 1.000000 vt 0.025000 1.000000 -vt 0.500000 0.000000 -vt 0.300000 0.044444 -vt 0.250000 0.000000 -vt 0.450000 0.044444 -vt 0.300000 0.133333 -vt 0.450000 0.133333 -vt 0.300000 0.177778 -vt 0.750000 0.400000 -vt 0.525000 0.422222 -vt 0.500000 0.400000 -vt 0.500000 0.311111 -vt 0.275000 0.422222 -vt 0.250000 0.400000 vt 0.725000 0.466667 +vt 0.525000 0.422222 vt 0.725000 0.422222 -vt 0.500000 0.133333 -vt 0.500000 0.044444 -vt 0.250000 0.133333 -vt 0.250000 0.044444 vt 0.475000 0.466667 +vt 0.275000 0.422222 vt 0.475000 0.422222 vt 0.225000 0.466667 vt 0.025000 0.422222 vt 0.225000 0.422222 -vt 0.450000 0.177778 -vt 0.300000 0.355556 -vt 0.450000 0.355556 -vt 1.000000 0.400000 -vt 0.775000 0.422222 -vt 0.000000 0.400000 -vt 0.250000 0.311111 -vt 1.000000 0.222222 -vt 0.750000 0.222222 vt 0.975000 0.466667 vt 0.750000 0.488889 vt 0.775000 0.466667 @@ -375,98 +455,58 @@ vt 0.475000 0.644444 vt 0.475000 0.822222 vt 0.225000 0.644444 vt 0.225000 0.822222 +vt 0.775000 0.422222 vt 0.975000 0.422222 -vt 0.250000 0.222222 -vt 0.500000 0.222222 vt 1.000000 0.488889 -vn 0.0000 1.0000 0.0000 vn -0.0000 -1.0000 0.0000 +vn 1.0000 0.0000 0.0000 vn 0.0000 0.0000 -1.0000 -vn 0.0000 -0.7071 -0.7071 -vn 1.0000 -0.0000 0.0000 -vn 0.7071 -0.0000 -0.7071 -vn -0.7071 0.0000 -0.7071 vn -1.0000 0.0000 0.0000 -vn 0.5774 -0.5774 -0.5773 -vn -0.5773 -0.5773 -0.5774 +vn 0.0000 1.0000 0.0000 vn 0.0000 0.0000 1.0000 s off -f 63/93/17 62/94/17 61/95/17 -f 66/96/18 67/97/18 65/98/18 -f 63/99/17 70/100/17 64/101/17 -f 69/102/19 72/103/19 70/100/19 -f 71/104/20 74/105/20 72/103/20 -f 81/106/18 78/107/18 83/108/18 -f 81/106/21 83/108/21 75/109/21 -f 83/108/18 77/110/18 84/111/18 -f 85/112/21 78/107/21 80/113/21 -f 75/114/22 69/102/22 63/115/22 -f 70/100/23 76/116/23 64/117/23 -f 87/118/19 77/110/19 78/119/19 -f 88/120/24 79/121/24 77/122/24 -f 73/123/25 71/104/25 75/114/25 -f 74/124/19 73/125/19 83/108/19 -f 72/103/26 74/105/26 76/116/26 -f 82/126/18 80/127/18 81/106/18 -f 84/111/18 79/121/18 82/128/18 -f 62/94/24 76/129/24 82/128/24 -f 62/130/27 81/106/27 61/131/27 -f 86/132/17 89/133/17 85/134/17 -f 88/120/17 90/135/17 86/136/17 -f 87/118/17 92/137/17 88/138/17 -f 85/112/17 91/139/17 87/140/17 -f 89/133/27 94/141/27 93/142/27 -f 89/133/21 95/143/21 91/139/21 -f 91/139/19 96/144/19 92/137/19 -f 92/137/24 94/145/24 90/135/24 -f 93/142/18 99/146/18 95/143/18 -f 95/143/18 100/147/18 96/144/18 -f 96/144/18 98/148/18 94/145/18 -f 94/141/18 97/149/18 93/142/18 -f 65/150/27 98/151/27 66/152/27 -f 67/153/21 97/154/21 65/155/21 -f 68/156/19 99/157/19 67/158/19 -f 66/96/24 100/159/24 68/160/24 -f 86/132/27 80/127/27 79/161/27 -f 63/93/17 64/162/17 62/94/17 -f 66/96/18 68/160/18 67/97/18 -f 63/99/17 69/102/17 70/100/17 -f 69/102/19 71/104/19 72/103/19 -f 71/104/20 73/123/20 74/105/20 -f 81/106/18 80/113/18 78/107/18 -f 63/163/21 61/131/21 75/109/21 -f 61/131/21 81/106/21 75/109/21 -f 83/108/18 78/119/18 77/110/18 -f 85/112/21 87/140/21 78/107/21 -f 75/114/22 71/104/22 69/102/22 -f 70/100/23 72/103/23 76/116/23 -f 87/118/19 88/138/19 77/110/19 -f 88/120/24 86/136/24 79/121/24 -f 84/111/19 76/129/19 74/124/19 -f 73/125/19 75/109/19 83/108/19 -f 84/111/19 74/124/19 83/108/19 -f 82/126/18 79/161/18 80/127/18 -f 84/111/18 77/122/18 79/121/18 -f 64/162/24 76/129/24 62/94/24 -f 76/129/24 84/111/24 82/128/24 -f 62/130/27 82/126/27 81/106/27 -f 86/132/17 90/164/17 89/133/17 -f 88/120/17 92/137/17 90/135/17 -f 87/118/17 91/139/17 92/137/17 -f 85/112/17 89/133/17 91/139/17 -f 89/133/27 90/164/27 94/141/27 -f 89/133/21 93/142/21 95/143/21 -f 91/139/19 95/143/19 96/144/19 -f 92/137/24 96/144/24 94/145/24 -f 93/142/18 97/154/18 99/146/18 -f 95/143/18 99/157/18 100/147/18 -f 96/144/18 100/159/18 98/148/18 -f 94/141/18 98/151/18 97/149/18 -f 65/150/27 97/149/27 98/151/27 -f 67/153/21 99/146/21 97/154/21 -f 68/156/19 100/147/19 99/157/19 -f 66/96/24 98/148/24 100/159/24 -f 86/132/27 85/134/27 80/127/27 +f 86/137/34 87/138/34 85/139/34 +f 93/140/35 90/141/35 92/142/35 +f 95/143/36 89/144/36 90/145/36 +f 96/146/37 91/147/37 89/148/37 +f 94/149/38 97/150/38 93/151/38 +f 96/146/38 98/152/38 94/153/38 +f 95/143/38 100/154/38 96/155/38 +f 93/140/38 99/156/38 95/157/38 +f 97/150/39 102/158/39 101/159/39 +f 97/150/35 103/160/35 99/156/35 +f 99/156/36 104/161/36 100/154/36 +f 100/154/37 102/162/37 98/152/37 +f 101/159/34 107/163/34 103/160/34 +f 103/160/34 108/164/34 104/161/34 +f 104/161/34 106/165/34 102/162/34 +f 102/158/34 105/166/34 101/159/34 +f 85/167/39 106/168/39 86/169/39 +f 87/170/35 105/171/35 85/172/35 +f 88/173/36 107/174/36 87/175/36 +f 86/137/37 108/176/37 88/177/37 +f 94/149/39 92/178/39 91/179/39 +f 86/137/34 88/177/34 87/138/34 +f 93/140/35 95/157/35 90/141/35 +f 95/143/36 96/155/36 89/144/36 +f 96/146/37 94/153/37 91/147/37 +f 94/149/38 98/180/38 97/150/38 +f 96/146/38 100/154/38 98/152/38 +f 95/143/38 99/156/38 100/154/38 +f 93/140/38 97/150/38 99/156/38 +f 97/150/39 98/180/39 102/158/39 +f 97/150/35 101/159/35 103/160/35 +f 99/156/36 103/160/36 104/161/36 +f 100/154/37 104/161/37 102/162/37 +f 101/159/34 105/171/34 107/163/34 +f 103/160/34 107/174/34 108/164/34 +f 104/161/34 108/176/34 106/165/34 +f 102/158/34 106/168/34 105/166/34 +f 85/167/39 105/166/39 106/168/39 +f 87/170/35 107/163/35 105/171/35 +f 88/173/36 108/164/36 107/174/36 +f 86/137/37 106/165/37 108/176/37 +f 94/149/39 93/151/39 92/178/39 o RightArm v -8.625008 1.275002 0.525000 v -8.625007 2.325003 0.525000 @@ -724,146 +764,146 @@ vn 0.8000 -0.6000 0.0000 vn -0.4961 -0.8682 0.0000 vn -0.9701 0.2425 0.0000 s off -f 134/165/28 140/166/28 136/167/28 -f 104/168/29 105/169/29 108/170/29 -f 102/171/30 106/172/30 101/173/30 -f 104/174/31 107/175/31 102/171/31 -f 101/173/32 105/169/32 103/176/32 -f 109/177/33 115/178/33 113/179/33 -f 121/180/34 123/181/34 118/182/34 -f 113/183/35 122/184/35 121/185/35 -f 112/186/36 119/187/36 111/188/36 -f 110/189/37 118/190/37 109/191/37 -f 109/191/38 124/192/38 116/193/38 -f 115/194/39 122/184/39 114/195/39 -f 113/183/40 120/196/40 112/186/40 -f 111/188/41 117/197/41 110/189/41 -f 116/193/42 123/198/42 115/199/42 -f 135/200/43 137/201/43 133/202/43 -f 129/203/34 132/204/34 130/205/34 -f 126/206/31 132/204/31 128/207/31 -f 134/165/34 135/200/34 133/202/34 -f 127/208/32 129/203/32 125/209/32 -f 128/210/30 131/211/30 127/212/30 -f 160/213/32 158/214/32 155/215/32 -f 145/216/31 144/217/31 146/218/31 -f 144/219/31 148/220/31 146/221/31 -f 148/220/31 142/222/31 147/223/31 -f 155/215/34 142/222/34 141/224/34 -f 142/225/31 145/216/31 147/223/31 -f 149/226/29 153/227/29 151/228/29 -f 149/226/29 147/223/29 145/216/29 -f 150/229/33 145/216/33 146/218/33 -f 152/230/30 146/221/30 148/220/30 -f 151/228/34 148/220/34 147/223/34 -f 150/231/30 152/230/30 154/232/30 -f 154/233/44 149/226/44 150/229/44 -f 151/228/45 154/234/45 152/230/45 -f 158/235/29 143/236/29 142/225/29 -f 144/219/30 155/237/30 141/238/30 -f 157/239/33 144/217/33 143/240/33 -f 165/241/33 162/242/33 161/243/33 -f 161/243/32 156/244/32 157/239/32 -f 156/245/32 160/213/32 155/237/32 -f 159/246/32 157/247/32 158/235/32 -f 169/248/31 165/241/31 163/249/31 -f 159/246/29 165/241/29 161/243/29 -f 162/250/30 164/251/30 160/213/30 -f 164/251/34 159/246/34 160/213/34 -f 172/252/30 170/253/30 167/254/30 -f 164/251/31 169/255/31 163/249/31 -f 166/256/31 170/253/31 164/251/31 -f 165/241/31 167/257/31 166/258/31 -f 178/259/32 173/260/32 174/261/32 -f 174/261/34 169/255/34 170/262/34 -f 169/248/29 171/263/29 168/264/29 -f 171/265/33 167/257/33 168/266/33 -f 181/267/29 175/268/29 177/269/29 -f 177/269/32 171/263/32 173/270/32 -f 175/268/32 172/271/32 171/265/32 -f 172/252/32 178/259/32 174/272/32 -f 181/267/31 180/273/31 179/274/31 -f 179/274/33 176/275/33 175/268/33 -f 176/276/30 182/277/30 178/259/30 -f 182/278/46 177/269/46 178/259/46 -f 185/279/32 184/280/32 183/281/32 -f 187/282/29 186/283/29 185/279/29 -f 184/280/30 188/284/30 183/281/30 -f 190/285/33 184/280/33 186/283/33 -f 188/286/28 185/279/28 183/281/28 -f 134/165/28 139/287/28 140/166/28 -f 104/168/29 103/176/29 105/169/29 -f 102/171/30 107/175/30 106/172/30 -f 104/174/31 108/288/31 107/175/31 -f 101/173/32 106/172/32 105/169/32 -f 111/289/33 110/290/33 109/177/33 -f 109/177/33 116/291/33 115/178/33 -f 115/178/33 114/292/33 113/179/33 -f 113/179/33 112/293/33 111/289/33 -f 111/289/33 109/177/33 113/179/33 -f 118/182/34 117/294/34 119/295/34 -f 119/295/34 120/296/34 121/180/34 -f 121/180/34 122/297/34 123/181/34 -f 123/181/34 124/298/34 118/182/34 -f 118/182/34 119/295/34 121/180/34 -f 113/183/35 114/195/35 122/184/35 -f 112/186/36 120/196/36 119/187/36 -f 110/189/37 117/197/37 118/190/37 -f 109/191/38 118/190/38 124/192/38 -f 115/194/39 123/299/39 122/184/39 -f 113/183/40 121/185/40 120/196/40 -f 111/188/41 119/187/41 117/197/41 -f 116/193/42 124/192/42 123/198/42 -f 135/200/43 138/300/43 137/201/43 -f 129/203/34 131/211/34 132/204/34 -f 126/206/31 130/205/31 132/204/31 -f 134/165/34 136/167/34 135/200/34 -f 127/208/32 131/211/32 129/203/32 -f 128/210/30 132/204/30 131/211/30 -f 160/213/32 159/246/32 158/214/32 -f 145/216/31 143/240/31 144/217/31 -f 144/219/31 141/238/31 148/220/31 -f 148/220/31 141/224/31 142/222/31 -f 155/215/34 158/214/34 142/222/34 -f 142/225/31 143/236/31 145/216/31 -f 149/226/29 151/228/29 147/223/29 -f 150/229/33 149/226/33 145/216/33 -f 152/230/30 150/231/30 146/221/30 -f 151/228/34 152/230/34 148/220/34 -f 154/233/44 153/301/44 149/226/44 -f 151/228/45 153/302/45 154/234/45 -f 158/235/29 157/247/29 143/236/29 -f 144/219/30 156/245/30 155/237/30 -f 157/239/33 156/244/33 144/217/33 -f 165/241/33 166/258/33 162/242/33 -f 161/243/32 162/242/32 156/244/32 -f 156/245/32 162/250/32 160/213/32 -f 159/246/32 161/243/32 157/247/32 -f 169/248/31 168/264/31 165/241/31 -f 159/246/29 163/249/29 165/241/29 -f 162/250/30 166/256/30 164/251/30 -f 164/251/34 163/249/34 159/246/34 -f 172/252/30 174/272/30 170/253/30 -f 164/251/31 170/262/31 169/255/31 -f 166/256/31 167/254/31 170/253/31 -f 165/241/31 168/266/31 167/257/31 -f 178/259/32 177/269/32 173/260/32 -f 174/261/34 173/260/34 169/255/34 -f 169/248/29 173/270/29 171/263/29 -f 171/265/33 172/271/33 167/257/33 -f 181/267/29 179/274/29 175/268/29 -f 177/269/32 175/268/32 171/263/32 -f 175/268/32 176/275/32 172/271/32 -f 172/252/32 176/276/32 178/259/32 -f 181/267/31 182/303/31 180/273/31 -f 179/274/33 180/304/33 176/275/33 -f 176/276/30 180/305/30 182/277/30 -f 182/278/46 181/306/46 177/269/46 -f 185/279/32 186/283/32 184/280/32 -f 187/282/29 190/307/29 186/283/29 -f 184/280/30 189/308/30 188/284/30 -f 190/285/33 189/309/33 184/280/33 -f 188/286/28 187/310/28 185/279/28 +f 142/181/40 148/182/40 144/183/40 +f 112/184/41 113/185/41 116/186/41 +f 110/187/42 114/188/42 109/189/42 +f 112/190/43 115/191/43 110/187/43 +f 109/189/44 113/185/44 111/192/44 +f 117/193/45 123/194/45 121/195/45 +f 129/196/46 131/197/46 126/198/46 +f 121/199/47 130/200/47 129/201/47 +f 120/202/48 127/203/48 119/204/48 +f 118/205/49 126/206/49 117/207/49 +f 117/207/50 132/208/50 124/209/50 +f 123/210/51 130/200/51 122/211/51 +f 121/199/52 128/212/52 120/202/52 +f 119/204/53 125/213/53 118/205/53 +f 124/209/54 131/214/54 123/215/54 +f 143/216/55 145/217/55 141/218/55 +f 137/219/46 140/220/46 138/221/46 +f 134/222/43 140/220/43 136/223/43 +f 142/181/46 143/216/46 141/218/46 +f 135/224/44 137/219/44 133/225/44 +f 136/226/42 139/227/42 135/228/42 +f 168/229/44 166/230/44 163/231/44 +f 153/232/43 152/233/43 154/234/43 +f 152/235/43 156/236/43 154/237/43 +f 156/236/43 150/238/43 155/239/43 +f 163/231/46 150/238/46 149/240/46 +f 150/241/43 153/232/43 155/239/43 +f 157/242/41 161/243/41 159/244/41 +f 157/242/41 155/239/41 153/232/41 +f 158/245/45 153/232/45 154/234/45 +f 160/246/42 154/237/42 156/236/42 +f 159/244/46 156/236/46 155/239/46 +f 158/247/42 160/246/42 162/248/42 +f 162/249/56 157/242/56 158/245/56 +f 159/244/57 162/250/57 160/246/57 +f 166/251/41 151/252/41 150/241/41 +f 152/235/42 163/253/42 149/254/42 +f 165/255/45 152/233/45 151/256/45 +f 173/257/45 170/258/45 169/259/45 +f 169/259/44 164/260/44 165/255/44 +f 164/261/44 168/229/44 163/253/44 +f 167/262/44 165/263/44 166/251/44 +f 177/264/43 173/257/43 171/265/43 +f 167/262/41 173/257/41 169/259/41 +f 170/266/42 172/267/42 168/229/42 +f 172/267/46 167/262/46 168/229/46 +f 180/268/42 178/269/42 175/270/42 +f 172/267/43 177/271/43 171/265/43 +f 174/272/43 178/269/43 172/267/43 +f 173/257/43 175/273/43 174/274/43 +f 186/275/44 181/276/44 182/277/44 +f 182/277/46 177/271/46 178/278/46 +f 177/264/41 179/279/41 176/280/41 +f 179/281/45 175/273/45 176/282/45 +f 189/283/41 183/284/41 185/285/41 +f 185/285/44 179/279/44 181/286/44 +f 183/284/44 180/287/44 179/281/44 +f 180/268/44 186/275/44 182/288/44 +f 189/283/43 188/289/43 187/290/43 +f 187/290/45 184/291/45 183/284/45 +f 184/292/42 190/293/42 186/275/42 +f 190/294/58 185/285/58 186/275/58 +f 193/295/44 192/296/44 191/297/44 +f 195/298/41 194/299/41 193/295/41 +f 192/296/42 196/300/42 191/297/42 +f 198/301/45 192/296/45 194/299/45 +f 196/302/40 193/295/40 191/297/40 +f 142/181/40 147/303/40 148/182/40 +f 112/184/41 111/192/41 113/185/41 +f 110/187/42 115/191/42 114/188/42 +f 112/190/43 116/304/43 115/191/43 +f 109/189/44 114/188/44 113/185/44 +f 119/305/45 118/306/45 117/193/45 +f 117/193/45 124/307/45 123/194/45 +f 123/194/45 122/308/45 121/195/45 +f 121/195/45 120/309/45 119/305/45 +f 119/305/45 117/193/45 121/195/45 +f 126/198/46 125/310/46 127/311/46 +f 127/311/46 128/312/46 129/196/46 +f 129/196/46 130/313/46 131/197/46 +f 131/197/46 132/314/46 126/198/46 +f 126/198/46 127/311/46 129/196/46 +f 121/199/47 122/211/47 130/200/47 +f 120/202/48 128/212/48 127/203/48 +f 118/205/49 125/213/49 126/206/49 +f 117/207/50 126/206/50 132/208/50 +f 123/210/51 131/315/51 130/200/51 +f 121/199/52 129/201/52 128/212/52 +f 119/204/53 127/203/53 125/213/53 +f 124/209/54 132/208/54 131/214/54 +f 143/216/55 146/316/55 145/217/55 +f 137/219/46 139/227/46 140/220/46 +f 134/222/43 138/221/43 140/220/43 +f 142/181/46 144/183/46 143/216/46 +f 135/224/44 139/227/44 137/219/44 +f 136/226/42 140/220/42 139/227/42 +f 168/229/44 167/262/44 166/230/44 +f 153/232/43 151/256/43 152/233/43 +f 152/235/43 149/254/43 156/236/43 +f 156/236/43 149/240/43 150/238/43 +f 163/231/46 166/230/46 150/238/46 +f 150/241/43 151/252/43 153/232/43 +f 157/242/41 159/244/41 155/239/41 +f 158/245/45 157/242/45 153/232/45 +f 160/246/42 158/247/42 154/237/42 +f 159/244/46 160/246/46 156/236/46 +f 162/249/56 161/317/56 157/242/56 +f 159/244/57 161/318/57 162/250/57 +f 166/251/41 165/263/41 151/252/41 +f 152/235/42 164/261/42 163/253/42 +f 165/255/45 164/260/45 152/233/45 +f 173/257/45 174/274/45 170/258/45 +f 169/259/44 170/258/44 164/260/44 +f 164/261/44 170/266/44 168/229/44 +f 167/262/44 169/259/44 165/263/44 +f 177/264/43 176/280/43 173/257/43 +f 167/262/41 171/265/41 173/257/41 +f 170/266/42 174/272/42 172/267/42 +f 172/267/46 171/265/46 167/262/46 +f 180/268/42 182/288/42 178/269/42 +f 172/267/43 178/278/43 177/271/43 +f 174/272/43 175/270/43 178/269/43 +f 173/257/43 176/282/43 175/273/43 +f 186/275/44 185/285/44 181/276/44 +f 182/277/46 181/276/46 177/271/46 +f 177/264/41 181/286/41 179/279/41 +f 179/281/45 180/287/45 175/273/45 +f 189/283/41 187/290/41 183/284/41 +f 185/285/44 183/284/44 179/279/44 +f 183/284/44 184/291/44 180/287/44 +f 180/268/44 184/292/44 186/275/44 +f 189/283/43 190/319/43 188/289/43 +f 187/290/45 188/320/45 184/291/45 +f 184/292/42 188/321/42 190/293/42 +f 190/294/58 189/322/58 185/285/58 +f 193/295/44 194/299/44 192/296/44 +f 195/298/41 198/323/41 194/299/41 +f 192/296/42 197/324/42 196/300/42 +f 198/301/45 197/325/45 192/296/45 +f 196/302/40 195/326/40 193/295/40 o LeftArm v 8.099994 3.899998 2.100000 v 8.099994 3.899998 -2.100000 @@ -1086,130 +1126,130 @@ vn 0.8944 0.4472 0.0000 vn 0.8944 -0.4472 0.0000 vn 0.0000 0.7071 0.7071 s off -f 208/311/47 210/312/47 205/313/47 -f 194/314/48 195/315/48 196/316/48 -f 198/317/48 194/318/48 196/319/48 -f 197/320/48 191/321/48 198/317/48 -f 192/322/49 205/313/49 191/321/49 -f 197/320/48 193/323/48 192/324/48 -f 199/325/50 201/326/50 203/327/50 -f 195/315/50 201/326/50 199/325/50 -f 195/315/51 200/328/51 196/316/51 -f 196/319/52 202/329/52 198/317/52 -f 198/317/49 201/326/49 197/320/49 -f 200/330/52 204/331/52 202/329/52 -f 199/325/53 204/332/53 200/328/53 -f 204/333/54 201/326/54 202/329/54 -f 192/324/50 207/334/50 208/335/50 -f 191/336/52 206/337/52 194/318/52 -f 194/314/51 207/338/51 193/339/51 -f 212/340/51 215/341/51 211/342/51 -f 206/343/47 211/342/47 207/338/47 -f 206/337/47 210/312/47 212/344/47 -f 207/334/47 209/345/47 208/335/47 -f 213/346/48 218/347/48 219/348/48 -f 211/342/50 213/346/50 209/345/50 -f 210/312/52 216/349/52 212/344/52 -f 209/345/49 214/350/49 210/312/49 -f 220/351/52 222/352/52 217/353/52 -f 213/346/48 220/354/48 214/350/48 -f 214/350/48 217/353/48 216/349/48 -f 217/355/48 215/341/48 216/356/48 -f 223/357/47 228/358/47 224/359/47 -f 219/360/49 224/359/49 220/354/49 -f 218/347/50 223/361/50 219/348/50 -f 217/355/51 221/362/51 218/363/51 -f 225/364/50 231/365/50 227/366/50 -f 221/367/47 227/366/47 223/361/47 -f 222/368/47 225/364/47 221/362/47 -f 222/352/47 228/358/47 226/369/47 -f 230/370/48 231/365/48 229/371/48 -f 226/372/51 229/371/51 225/364/51 -f 226/369/52 232/373/52 230/374/52 -f 227/366/55 232/375/55 228/358/55 -f 235/376/49 234/377/49 233/378/49 -f 236/379/56 238/380/56 234/377/56 -f 233/378/57 239/381/57 235/376/57 -f 242/382/51 243/383/51 241/384/51 -f 245/385/49 247/386/49 246/387/49 -f 241/388/58 247/386/58 242/389/58 -f 242/389/48 248/390/48 244/391/48 -f 243/383/47 246/387/47 241/384/47 -f 249/392/52 252/393/52 250/394/52 -f 254/395/50 255/396/50 256/397/50 -f 249/398/47 256/397/47 251/399/47 -f 251/399/49 255/396/49 252/393/49 -f 252/393/48 253/400/48 250/401/48 -f 262/402/50 264/403/50 263/404/50 -f 259/405/49 262/402/49 257/406/49 -f 260/407/47 261/408/47 259/405/47 -f 257/406/48 263/409/48 258/410/48 -f 266/411/47 267/412/47 265/413/47 -f 268/414/50 269/415/50 267/412/50 -f 266/411/52 270/416/52 271/417/52 -f 266/411/51 272/418/51 268/414/51 -f 267/412/56 270/419/56 265/413/56 -f 208/311/47 209/345/47 210/312/47 -f 194/314/48 193/339/48 195/315/48 -f 198/317/48 191/336/48 194/318/48 -f 197/320/48 192/322/48 191/321/48 -f 192/322/49 208/311/49 205/313/49 -f 197/320/48 195/315/48 193/323/48 -f 195/315/50 197/320/50 201/326/50 -f 195/315/51 199/325/51 200/328/51 -f 196/319/52 200/330/52 202/329/52 -f 198/317/49 202/329/49 201/326/49 -f 199/325/53 203/420/53 204/332/53 -f 204/333/54 203/421/54 201/326/54 -f 192/324/50 193/323/50 207/334/50 -f 191/336/52 205/422/52 206/337/52 -f 194/314/51 206/343/51 207/338/51 -f 212/340/51 216/356/51 215/341/51 -f 206/343/47 212/340/47 211/342/47 -f 206/337/47 205/422/47 210/312/47 -f 207/334/47 211/342/47 209/345/47 -f 213/346/48 215/341/48 218/347/48 -f 211/342/50 215/341/50 213/346/50 -f 210/312/52 214/350/52 216/349/52 -f 209/345/49 213/346/49 214/350/49 -f 220/351/52 224/423/52 222/352/52 -f 213/346/48 219/360/48 220/354/48 -f 214/350/48 220/351/48 217/353/48 -f 217/355/48 218/363/48 215/341/48 -f 223/357/47 227/366/47 228/358/47 -f 219/360/49 223/357/49 224/359/49 -f 218/347/50 221/367/50 223/361/50 -f 217/355/51 222/368/51 221/362/51 -f 225/364/50 229/371/50 231/365/50 -f 221/367/47 225/364/47 227/366/47 -f 222/368/47 226/372/47 225/364/47 -f 222/352/47 224/423/47 228/358/47 -f 230/370/48 232/424/48 231/365/48 -f 226/372/51 230/425/51 229/371/51 -f 226/369/52 228/358/52 232/373/52 -f 227/366/55 231/426/55 232/375/55 -f 235/376/49 236/379/49 234/377/49 -f 236/379/56 240/427/56 238/380/56 -f 233/378/57 237/428/57 239/381/57 -f 242/382/51 244/429/51 243/383/51 -f 245/385/49 248/390/49 247/386/49 -f 241/388/58 246/430/58 247/386/58 -f 242/389/48 247/386/48 248/390/48 -f 243/383/47 245/385/47 246/387/47 -f 249/392/52 251/399/52 252/393/52 -f 254/395/50 253/431/50 255/396/50 -f 249/398/47 254/432/47 256/397/47 -f 251/399/49 256/397/49 255/396/49 -f 252/393/48 255/396/48 253/400/48 -f 262/402/50 261/408/50 264/403/50 -f 259/405/49 261/408/49 262/402/49 -f 260/407/47 264/433/47 261/408/47 -f 257/406/48 262/402/48 263/409/48 -f 266/411/47 268/414/47 267/412/47 -f 268/414/50 272/434/50 269/415/50 -f 266/411/52 265/413/52 270/416/52 -f 266/411/51 271/435/51 272/418/51 -f 267/412/56 269/436/56 270/419/56 +f 216/327/59 218/328/59 213/329/59 +f 202/330/60 203/331/60 204/332/60 +f 206/333/60 202/334/60 204/335/60 +f 205/336/60 199/337/60 206/333/60 +f 200/338/61 213/329/61 199/337/61 +f 205/336/60 201/339/60 200/340/60 +f 207/341/62 209/342/62 211/343/62 +f 203/331/62 209/342/62 207/341/62 +f 203/331/63 208/344/63 204/332/63 +f 204/335/64 210/345/64 206/333/64 +f 206/333/61 209/342/61 205/336/61 +f 208/346/64 212/347/64 210/345/64 +f 207/341/65 212/348/65 208/344/65 +f 212/349/66 209/342/66 210/345/66 +f 200/340/62 215/350/62 216/351/62 +f 199/352/64 214/353/64 202/334/64 +f 202/330/63 215/354/63 201/355/63 +f 220/356/63 223/357/63 219/358/63 +f 214/359/59 219/358/59 215/354/59 +f 214/353/59 218/328/59 220/360/59 +f 215/350/59 217/361/59 216/351/59 +f 221/362/60 226/363/60 227/364/60 +f 219/358/62 221/362/62 217/361/62 +f 218/328/64 224/365/64 220/360/64 +f 217/361/61 222/366/61 218/328/61 +f 228/367/64 230/368/64 225/369/64 +f 221/362/60 228/370/60 222/366/60 +f 222/366/60 225/369/60 224/365/60 +f 225/371/60 223/357/60 224/372/60 +f 231/373/59 236/374/59 232/375/59 +f 227/376/61 232/375/61 228/370/61 +f 226/363/62 231/377/62 227/364/62 +f 225/371/63 229/378/63 226/379/63 +f 233/380/62 239/381/62 235/382/62 +f 229/383/59 235/382/59 231/377/59 +f 230/384/59 233/380/59 229/378/59 +f 230/368/59 236/374/59 234/385/59 +f 238/386/60 239/381/60 237/387/60 +f 234/388/63 237/387/63 233/380/63 +f 234/385/64 240/389/64 238/390/64 +f 235/382/67 240/391/67 236/374/67 +f 243/392/61 242/393/61 241/394/61 +f 244/395/68 246/396/68 242/393/68 +f 241/394/69 247/397/69 243/392/69 +f 250/398/63 251/399/63 249/400/63 +f 253/401/61 255/402/61 254/403/61 +f 249/404/70 255/402/70 250/405/70 +f 250/405/60 256/406/60 252/407/60 +f 251/399/59 254/403/59 249/400/59 +f 257/408/64 260/409/64 258/410/64 +f 262/411/62 263/412/62 264/413/62 +f 257/414/59 264/413/59 259/415/59 +f 259/415/61 263/412/61 260/409/61 +f 260/409/60 261/416/60 258/417/60 +f 270/418/62 272/419/62 271/420/62 +f 267/421/61 270/418/61 265/422/61 +f 268/423/59 269/424/59 267/421/59 +f 265/422/60 271/425/60 266/426/60 +f 274/427/59 275/428/59 273/429/59 +f 276/430/62 277/431/62 275/428/62 +f 274/427/64 278/432/64 279/433/64 +f 274/427/63 280/434/63 276/430/63 +f 275/428/68 278/435/68 273/429/68 +f 216/327/59 217/361/59 218/328/59 +f 202/330/60 201/355/60 203/331/60 +f 206/333/60 199/352/60 202/334/60 +f 205/336/60 200/338/60 199/337/60 +f 200/338/61 216/327/61 213/329/61 +f 205/336/60 203/331/60 201/339/60 +f 203/331/62 205/336/62 209/342/62 +f 203/331/63 207/341/63 208/344/63 +f 204/335/64 208/346/64 210/345/64 +f 206/333/61 210/345/61 209/342/61 +f 207/341/65 211/436/65 212/348/65 +f 212/349/66 211/437/66 209/342/66 +f 200/340/62 201/339/62 215/350/62 +f 199/352/64 213/438/64 214/353/64 +f 202/330/63 214/359/63 215/354/63 +f 220/356/63 224/372/63 223/357/63 +f 214/359/59 220/356/59 219/358/59 +f 214/353/59 213/438/59 218/328/59 +f 215/350/59 219/358/59 217/361/59 +f 221/362/60 223/357/60 226/363/60 +f 219/358/62 223/357/62 221/362/62 +f 218/328/64 222/366/64 224/365/64 +f 217/361/61 221/362/61 222/366/61 +f 228/367/64 232/439/64 230/368/64 +f 221/362/60 227/376/60 228/370/60 +f 222/366/60 228/367/60 225/369/60 +f 225/371/60 226/379/60 223/357/60 +f 231/373/59 235/382/59 236/374/59 +f 227/376/61 231/373/61 232/375/61 +f 226/363/62 229/383/62 231/377/62 +f 225/371/63 230/384/63 229/378/63 +f 233/380/62 237/387/62 239/381/62 +f 229/383/59 233/380/59 235/382/59 +f 230/384/59 234/388/59 233/380/59 +f 230/368/59 232/439/59 236/374/59 +f 238/386/60 240/440/60 239/381/60 +f 234/388/63 238/441/63 237/387/63 +f 234/385/64 236/374/64 240/389/64 +f 235/382/67 239/442/67 240/391/67 +f 243/392/61 244/395/61 242/393/61 +f 244/395/68 248/443/68 246/396/68 +f 241/394/69 245/444/69 247/397/69 +f 250/398/63 252/445/63 251/399/63 +f 253/401/61 256/406/61 255/402/61 +f 249/404/70 254/446/70 255/402/70 +f 250/405/60 255/402/60 256/406/60 +f 251/399/59 253/401/59 254/403/59 +f 257/408/64 259/415/64 260/409/64 +f 262/411/62 261/447/62 263/412/62 +f 257/414/59 262/448/59 264/413/59 +f 259/415/61 264/413/61 263/412/61 +f 260/409/60 263/412/60 261/416/60 +f 270/418/62 269/424/62 272/419/62 +f 267/421/61 269/424/61 270/418/61 +f 268/423/59 272/449/59 269/424/59 +f 265/422/60 270/418/60 271/425/60 +f 274/427/59 276/430/59 275/428/59 +f 276/430/62 280/450/62 277/431/62 +f 274/427/64 273/429/64 278/432/64 +f 274/427/63 279/451/63 280/434/63 +f 275/428/68 277/452/68 278/435/68 o Helmet v 5.249990 -8.200001 -4.200000 v 5.249990 -8.200001 4.200000 @@ -1761,262 +1801,262 @@ vn -0.7071 0.5000 0.5000 vn 0.9578 0.0000 -0.2873 vn 0.9578 0.0000 0.2873 s off -f 276/437/59 283/438/59 275/439/59 -f 277/440/60 286/441/60 278/442/60 -f 273/443/61 282/444/61 274/445/61 -f 279/446/62 288/447/62 280/448/62 -f 281/449/63 278/450/63 286/451/63 -f 274/452/64 284/453/64 276/454/64 -f 287/455/65 275/456/65 283/457/65 -f 280/458/66 285/459/66 277/460/66 -f 285/459/67 296/461/67 293/462/67 -f 283/457/68 295/463/68 287/455/68 -f 286/441/69 293/464/69 294/465/69 -f 281/466/70 290/467/70 282/444/70 -f 282/468/71 292/469/71 284/453/71 -f 287/470/72 296/461/72 288/447/72 -f 286/451/73 289/471/73 281/449/73 -f 292/472/74 283/438/74 284/473/74 -f 299/474/75 297/475/75 298/476/75 -f 299/474/76 277/440/76 278/442/76 -f 300/477/77 273/443/77 274/445/77 -f 275/439/78 300/478/78 276/437/78 -f 298/479/79 279/446/79 280/448/79 -f 279/480/80 297/481/80 275/456/80 -f 280/458/81 277/460/81 298/482/81 -f 273/483/82 299/484/82 278/450/82 -f 274/452/83 276/454/83 300/485/83 -f 306/486/63 309/487/63 301/488/63 -f 305/489/60 314/490/60 306/486/60 -f 301/491/61 310/492/61 302/493/61 -f 316/494/66 305/495/66 308/496/66 -f 310/492/64 304/497/64 302/493/64 -f 307/498/62 316/494/62 308/496/62 -f 312/499/59 303/500/59 304/501/59 -f 303/500/65 315/502/65 307/503/65 -f 317/504/84 319/505/84 318/506/84 -f 313/507/85 319/505/85 314/490/85 -f 315/508/86 318/509/86 316/494/86 -f 316/494/87 318/510/87 313/511/87 -f 309/512/88 320/513/88 310/492/88 -f 309/487/89 314/490/89 319/514/89 -f 320/515/90 311/516/90 312/499/90 -f 310/492/91 320/517/91 312/518/91 -f 315/502/92 311/516/92 317/519/92 -f 326/520/60 328/521/60 325/522/60 -f 323/523/84 328/521/84 324/524/84 -f 321/525/76 327/526/76 326/520/76 -f 324/527/62 327/526/62 322/528/62 -f 323/529/61 326/520/61 325/522/61 -f 435/530/76 425/531/76 428/532/76 -f 422/533/90 434/534/90 423/535/90 -f 433/536/62 427/537/62 424/538/62 -f 406/539/90 418/540/90 407/541/90 -f 417/542/85 418/543/85 414/544/85 -f 408/545/62 420/546/62 411/547/62 -f 409/548/76 419/549/76 414/544/76 -f 412/550/78 409/548/78 410/551/78 -f 346/552/93 335/553/93 340/554/93 -f 344/555/94 339/556/94 338/557/94 -f 342/558/61 337/559/61 336/560/61 -f 345/561/62 340/554/62 339/556/62 -f 343/562/95 338/563/95 337/559/95 -f 341/564/96 336/560/96 335/553/96 -f 349/565/95 332/566/95 331/567/95 -f 347/568/96 330/569/96 329/570/96 -f 352/571/93 329/570/93 334/572/93 -f 350/573/94 333/574/94 332/575/94 -f 348/576/61 331/567/61 330/569/61 -f 351/577/62 334/572/62 333/574/62 -f 362/578/59 356/579/59 353/580/59 -f 367/581/62 361/582/62 366/583/62 -f 356/584/75 363/585/75 364/586/75 -f 355/587/61 357/588/61 354/589/61 -f 359/590/60 365/591/60 358/592/60 -f 356/579/64 354/589/64 353/580/64 -f 358/592/63 360/593/63 359/590/63 -f 366/583/66 368/594/66 367/581/66 -f 363/595/65 361/582/65 364/596/65 -f 362/597/84 353/598/84 354/599/84 -f 370/600/59 371/601/59 369/602/59 -f 373/603/60 375/604/60 374/605/60 -f 370/606/65 376/607/65 372/608/65 -f 369/609/64 373/610/64 374/611/64 -f 372/612/78 373/613/78 371/614/78 -f 369/602/90 375/604/90 370/600/90 -f 383/615/62 381/616/62 382/617/62 -f 380/618/84 383/615/84 378/619/84 -f 377/620/75 381/616/75 379/621/75 -f 379/622/60 384/623/60 380/624/60 -f 377/625/59 383/615/59 382/617/59 -f 391/626/62 389/627/62 390/628/62 -f 387/629/60 392/630/60 388/631/60 -f 385/632/59 391/626/59 390/628/59 -f 388/633/84 391/626/84 386/634/84 -f 385/635/75 389/627/75 387/636/75 -f 394/637/97 404/638/97 396/639/97 -f 399/640/75 397/641/75 398/642/75 -f 396/639/62 399/640/62 394/637/62 -f 393/643/61 397/644/61 395/645/61 -f 395/645/60 400/646/60 396/639/60 -f 394/637/59 398/647/59 393/648/59 -f 395/645/98 402/649/98 393/643/98 -f 395/645/60 404/638/60 401/650/60 -f 393/648/59 403/651/59 394/637/59 -f 420/546/99 412/550/99 411/547/99 -f 413/652/100 409/548/100 414/544/100 -f 416/653/101 406/539/101 405/654/101 -f 408/545/102 418/655/102 417/656/102 -f 405/654/61 413/652/61 416/653/61 -f 436/657/99 428/532/99 427/537/99 -f 433/536/102 423/658/102 434/659/102 -f 421/660/101 431/661/101 422/533/101 -f 426/662/100 430/663/100 429/664/100 -f 426/662/61 432/665/61 421/660/61 -f 437/666/61 439/667/61 438/668/61 -f 437/666/60 444/669/60 440/670/60 -f 438/668/59 443/671/59 442/672/59 -f 440/670/84 443/673/84 439/667/84 -f 438/668/75 441/674/75 437/666/75 -f 445/675/61 448/676/61 447/677/61 -f 448/676/63 449/678/63 447/677/63 -f 452/679/61 453/680/61 451/681/61 -f 456/682/61 457/683/61 455/684/61 -f 459/685/61 461/686/61 460/687/61 -f 462/688/103 463/689/103 461/686/103 -f 460/687/104 465/690/104 459/685/104 -f 276/437/59 284/473/59 283/438/59 -f 277/440/60 285/691/60 286/441/60 -f 273/443/61 281/466/61 282/444/61 -f 279/446/62 287/470/62 288/447/62 -f 281/449/63 273/483/63 278/450/63 -f 274/452/64 282/468/64 284/453/64 -f 287/455/65 279/480/65 275/456/65 -f 280/458/66 288/692/66 285/459/66 -f 285/459/67 288/692/67 296/461/67 -f 283/457/68 291/693/68 295/463/68 -f 286/441/69 285/691/69 293/464/69 -f 281/466/70 289/694/70 290/467/70 -f 282/468/71 290/467/71 292/469/71 -f 287/470/72 295/695/72 296/461/72 -f 286/451/73 294/465/73 289/471/73 -f 292/472/74 291/693/74 283/438/74 -f 299/474/75 300/696/75 297/475/75 -f 299/474/76 298/476/76 277/440/76 -f 300/477/77 299/697/77 273/443/77 -f 275/439/78 297/698/78 300/478/78 -f 298/479/79 297/699/79 279/446/79 -f 306/486/63 314/490/63 309/487/63 -f 305/489/60 313/507/60 314/490/60 -f 301/491/61 309/512/61 310/492/61 -f 316/494/66 313/511/66 305/495/66 -f 310/492/64 312/518/64 304/497/64 -f 307/498/62 315/508/62 316/494/62 -f 312/499/59 311/516/59 303/500/59 -f 303/500/65 311/516/65 315/502/65 -f 317/504/84 320/700/84 319/505/84 -f 313/507/85 318/506/85 319/505/85 -f 315/508/86 317/701/86 318/509/86 -f 309/512/88 319/702/88 320/513/88 -f 320/515/90 317/703/90 311/516/90 -f 326/520/60 327/526/60 328/521/60 -f 323/523/84 325/522/84 328/521/84 -f 321/525/76 322/704/76 327/526/76 -f 324/527/62 328/521/62 327/526/62 -f 323/529/61 321/705/61 326/520/61 -f 435/530/76 430/663/76 425/531/76 -f 422/533/90 431/661/90 434/534/90 -f 433/536/62 436/657/62 427/537/62 -f 406/539/90 415/706/90 418/540/90 -f 418/543/85 415/707/85 416/708/85 -f 416/708/85 413/709/85 418/543/85 -f 413/709/85 414/544/85 418/543/85 -f 414/544/85 419/549/85 420/710/85 -f 420/710/85 417/542/85 414/544/85 -f 408/545/62 417/656/62 420/546/62 -f 409/548/76 412/550/76 419/549/76 -f 410/551/78 405/711/78 406/712/78 -f 406/712/78 407/713/78 410/551/78 -f 407/713/78 408/714/78 410/551/78 -f 408/714/78 411/715/78 410/551/78 -f 411/715/78 412/550/78 410/551/78 -f 346/552/93 341/564/93 335/553/93 -f 344/555/94 345/561/94 339/556/94 -f 342/558/61 343/562/61 337/559/61 -f 345/561/62 346/552/62 340/554/62 -f 343/562/95 344/716/95 338/563/95 -f 341/564/96 342/558/96 336/560/96 -f 349/565/95 350/717/95 332/566/95 -f 347/568/96 348/576/96 330/569/96 -f 352/571/93 347/568/93 329/570/93 -f 350/573/94 351/577/94 333/574/94 -f 348/576/61 349/565/61 331/567/61 -f 351/577/62 352/571/62 334/572/62 -f 362/578/59 363/718/59 356/579/59 -f 367/581/62 364/596/62 361/582/62 -f 364/586/75 367/719/75 360/720/75 -f 367/719/75 368/594/75 360/720/75 -f 368/594/75 359/590/75 360/720/75 -f 360/720/75 355/721/75 364/586/75 -f 355/721/75 356/584/75 364/586/75 -f 355/587/61 360/593/61 357/588/61 -f 359/590/60 368/594/60 365/591/60 -f 356/579/64 355/587/64 354/589/64 -f 358/592/63 357/588/63 360/593/63 -f 366/583/66 365/591/66 368/594/66 -f 363/595/65 362/722/65 361/582/65 -f 354/599/84 357/723/84 366/724/84 -f 357/723/84 358/592/84 366/724/84 -f 358/592/84 365/591/84 366/724/84 -f 366/724/84 361/725/84 354/599/84 -f 361/725/84 362/597/84 354/599/84 -f 370/600/59 372/726/59 371/601/59 -f 373/603/60 376/727/60 375/604/60 -f 370/606/65 375/728/65 376/607/65 -f 369/609/64 371/729/64 373/610/64 -f 372/612/78 376/730/78 373/613/78 -f 369/602/90 374/605/90 375/604/90 -f 383/615/62 384/623/62 381/616/62 -f 380/618/84 384/623/84 383/615/84 -f 377/620/75 382/617/75 381/616/75 -f 379/622/60 381/616/60 384/623/60 -f 377/625/59 378/731/59 383/615/59 -f 391/626/62 392/630/62 389/627/62 -f 387/629/60 389/627/60 392/630/60 -f 385/632/59 386/732/59 391/626/59 -f 388/633/84 392/630/84 391/626/84 -f 385/635/75 390/628/75 389/627/75 -f 394/637/97 403/651/97 404/638/97 -f 399/640/75 400/646/75 397/641/75 -f 396/639/62 400/646/62 399/640/62 -f 393/643/61 398/733/61 397/644/61 -f 395/645/60 397/644/60 400/646/60 -f 394/637/59 399/640/59 398/647/59 -f 395/645/98 401/650/98 402/649/98 -f 395/645/60 396/639/60 404/638/60 -f 393/648/59 402/734/59 403/651/59 -f 420/546/99 419/549/99 412/550/99 -f 413/652/100 410/735/100 409/548/100 -f 416/653/101 415/706/101 406/539/101 -f 408/545/102 407/736/102 418/655/102 -f 405/654/61 410/735/61 413/652/61 -f 436/657/99 435/530/99 428/532/99 -f 433/536/102 424/538/102 423/658/102 -f 421/660/101 432/665/101 431/661/101 -f 426/662/100 425/531/100 430/663/100 -f 426/662/61 429/664/61 432/665/61 -f 437/666/61 440/670/61 439/667/61 -f 437/666/60 441/737/60 444/669/60 -f 438/668/59 439/667/59 443/671/59 -f 440/670/84 444/738/84 443/673/84 -f 438/668/75 442/739/75 441/674/75 -f 445/675/61 446/740/61 448/676/61 -f 448/676/63 450/741/63 449/678/63 -f 452/679/61 454/742/61 453/680/61 -f 456/682/61 458/743/61 457/683/61 -f 459/685/61 462/688/61 461/686/61 -f 462/688/103 464/744/103 463/689/103 -f 460/687/104 466/745/104 465/690/104 +f 284/453/71 291/454/71 283/455/71 +f 285/456/72 294/457/72 286/458/72 +f 281/459/73 290/460/73 282/461/73 +f 287/462/74 296/463/74 288/464/74 +f 289/465/75 286/466/75 294/467/75 +f 282/468/76 292/469/76 284/470/76 +f 295/471/77 283/472/77 291/473/77 +f 288/474/78 293/475/78 285/476/78 +f 293/475/79 304/477/79 301/478/79 +f 291/473/80 303/479/80 295/471/80 +f 294/457/81 301/480/81 302/481/81 +f 289/482/82 298/483/82 290/460/82 +f 290/484/83 300/485/83 292/469/83 +f 295/486/84 304/477/84 296/463/84 +f 294/467/85 297/487/85 289/465/85 +f 300/488/86 291/454/86 292/489/86 +f 307/490/87 305/491/87 306/492/87 +f 307/490/88 285/456/88 286/458/88 +f 308/493/89 281/459/89 282/461/89 +f 283/455/90 308/494/90 284/453/90 +f 306/495/91 287/462/91 288/464/91 +f 287/496/92 305/497/92 283/472/92 +f 288/474/93 285/476/93 306/498/93 +f 281/499/94 307/500/94 286/466/94 +f 282/468/95 284/470/95 308/501/95 +f 314/502/75 317/503/75 309/504/75 +f 313/505/72 322/506/72 314/502/72 +f 309/507/73 318/508/73 310/509/73 +f 324/510/78 313/511/78 316/512/78 +f 318/508/76 312/513/76 310/509/76 +f 315/514/74 324/510/74 316/512/74 +f 320/515/71 311/516/71 312/517/71 +f 311/516/77 323/518/77 315/519/77 +f 325/520/96 327/521/96 326/522/96 +f 321/523/97 327/521/97 322/506/97 +f 323/524/98 326/525/98 324/510/98 +f 324/510/99 326/526/99 321/527/99 +f 317/528/100 328/529/100 318/508/100 +f 317/503/101 322/506/101 327/530/101 +f 328/531/102 319/532/102 320/515/102 +f 318/508/103 328/533/103 320/534/103 +f 323/518/104 319/532/104 325/535/104 +f 334/536/72 336/537/72 333/538/72 +f 331/539/96 336/537/96 332/540/96 +f 329/541/88 335/542/88 334/536/88 +f 332/543/74 335/542/74 330/544/74 +f 331/545/73 334/536/73 333/538/73 +f 443/546/88 433/547/88 436/548/88 +f 430/549/102 442/550/102 431/551/102 +f 441/552/74 435/553/74 432/554/74 +f 414/555/102 426/556/102 415/557/102 +f 425/558/97 426/559/97 422/560/97 +f 416/561/74 428/562/74 419/563/74 +f 417/564/88 427/565/88 422/560/88 +f 420/566/90 417/564/90 418/567/90 +f 354/568/105 343/569/105 348/570/105 +f 352/571/106 347/572/106 346/573/106 +f 350/574/73 345/575/73 344/576/73 +f 353/577/74 348/570/74 347/572/74 +f 351/578/107 346/579/107 345/575/107 +f 349/580/108 344/576/108 343/569/108 +f 357/581/107 340/582/107 339/583/107 +f 355/584/108 338/585/108 337/586/108 +f 360/587/105 337/586/105 342/588/105 +f 358/589/106 341/590/106 340/591/106 +f 356/592/73 339/583/73 338/585/73 +f 359/593/74 342/588/74 341/590/74 +f 370/594/71 364/595/71 361/596/71 +f 375/597/74 369/598/74 374/599/74 +f 364/600/87 371/601/87 372/602/87 +f 363/603/73 365/604/73 362/605/73 +f 367/606/72 373/607/72 366/608/72 +f 364/595/76 362/605/76 361/596/76 +f 366/608/75 368/609/75 367/606/75 +f 374/599/78 376/610/78 375/597/78 +f 371/611/77 369/598/77 372/612/77 +f 370/613/96 361/614/96 362/615/96 +f 378/616/71 379/617/71 377/618/71 +f 381/619/72 383/620/72 382/621/72 +f 378/622/77 384/623/77 380/624/77 +f 377/625/76 381/626/76 382/627/76 +f 380/628/90 381/629/90 379/630/90 +f 377/618/102 383/620/102 378/616/102 +f 391/631/74 389/632/74 390/633/74 +f 388/634/96 391/631/96 386/635/96 +f 385/636/87 389/632/87 387/637/87 +f 387/638/72 392/639/72 388/640/72 +f 385/641/71 391/631/71 390/633/71 +f 399/642/74 397/643/74 398/644/74 +f 395/645/72 400/646/72 396/647/72 +f 393/648/71 399/642/71 398/644/71 +f 396/649/96 399/642/96 394/650/96 +f 393/651/87 397/643/87 395/652/87 +f 402/653/109 412/654/109 404/655/109 +f 407/656/87 405/657/87 406/658/87 +f 404/655/74 407/656/74 402/653/74 +f 401/659/73 405/660/73 403/661/73 +f 403/661/72 408/662/72 404/655/72 +f 402/653/71 406/663/71 401/664/71 +f 403/661/110 410/665/110 401/659/110 +f 403/661/72 412/654/72 409/666/72 +f 401/664/71 411/667/71 402/653/71 +f 428/562/111 420/566/111 419/563/111 +f 421/668/112 417/564/112 422/560/112 +f 424/669/113 414/555/113 413/670/113 +f 416/561/114 426/671/114 425/672/114 +f 413/670/73 421/668/73 424/669/73 +f 444/673/111 436/548/111 435/553/111 +f 441/552/114 431/674/114 442/675/114 +f 429/676/113 439/677/113 430/549/113 +f 434/678/112 438/679/112 437/680/112 +f 434/678/73 440/681/73 429/676/73 +f 445/682/73 447/683/73 446/684/73 +f 445/682/72 452/685/72 448/686/72 +f 446/684/71 451/687/71 450/688/71 +f 448/686/96 451/689/96 447/683/96 +f 446/684/87 449/690/87 445/682/87 +f 453/691/73 456/692/73 455/693/73 +f 456/692/75 457/694/75 455/693/75 +f 460/695/73 461/696/73 459/697/73 +f 464/698/73 465/699/73 463/700/73 +f 467/701/73 469/702/73 468/703/73 +f 470/704/115 471/705/115 469/702/115 +f 468/703/116 473/706/116 467/701/116 +f 284/453/71 292/489/71 291/454/71 +f 285/456/72 293/707/72 294/457/72 +f 281/459/73 289/482/73 290/460/73 +f 287/462/74 295/486/74 296/463/74 +f 289/465/75 281/499/75 286/466/75 +f 282/468/76 290/484/76 292/469/76 +f 295/471/77 287/496/77 283/472/77 +f 288/474/78 296/708/78 293/475/78 +f 293/475/79 296/708/79 304/477/79 +f 291/473/80 299/709/80 303/479/80 +f 294/457/81 293/707/81 301/480/81 +f 289/482/82 297/710/82 298/483/82 +f 290/484/83 298/483/83 300/485/83 +f 295/486/84 303/711/84 304/477/84 +f 294/467/85 302/481/85 297/487/85 +f 300/488/86 299/709/86 291/454/86 +f 307/490/87 308/712/87 305/491/87 +f 307/490/88 306/492/88 285/456/88 +f 308/493/89 307/713/89 281/459/89 +f 283/455/90 305/714/90 308/494/90 +f 306/495/91 305/715/91 287/462/91 +f 314/502/75 322/506/75 317/503/75 +f 313/505/72 321/523/72 322/506/72 +f 309/507/73 317/528/73 318/508/73 +f 324/510/78 321/527/78 313/511/78 +f 318/508/76 320/534/76 312/513/76 +f 315/514/74 323/524/74 324/510/74 +f 320/515/71 319/532/71 311/516/71 +f 311/516/77 319/532/77 323/518/77 +f 325/520/96 328/716/96 327/521/96 +f 321/523/97 326/522/97 327/521/97 +f 323/524/98 325/717/98 326/525/98 +f 317/528/100 327/718/100 328/529/100 +f 328/531/102 325/719/102 319/532/102 +f 334/536/72 335/542/72 336/537/72 +f 331/539/96 333/538/96 336/537/96 +f 329/541/88 330/720/88 335/542/88 +f 332/543/74 336/537/74 335/542/74 +f 331/545/73 329/721/73 334/536/73 +f 443/546/88 438/679/88 433/547/88 +f 430/549/102 439/677/102 442/550/102 +f 441/552/74 444/673/74 435/553/74 +f 414/555/102 423/722/102 426/556/102 +f 426/559/97 423/723/97 424/724/97 +f 424/724/97 421/725/97 426/559/97 +f 421/725/97 422/560/97 426/559/97 +f 422/560/97 427/565/97 428/726/97 +f 428/726/97 425/558/97 422/560/97 +f 416/561/74 425/672/74 428/562/74 +f 417/564/88 420/566/88 427/565/88 +f 418/567/90 413/727/90 414/728/90 +f 414/728/90 415/729/90 418/567/90 +f 415/729/90 416/730/90 418/567/90 +f 416/730/90 419/731/90 418/567/90 +f 419/731/90 420/566/90 418/567/90 +f 354/568/105 349/580/105 343/569/105 +f 352/571/106 353/577/106 347/572/106 +f 350/574/73 351/578/73 345/575/73 +f 353/577/74 354/568/74 348/570/74 +f 351/578/107 352/732/107 346/579/107 +f 349/580/108 350/574/108 344/576/108 +f 357/581/107 358/733/107 340/582/107 +f 355/584/108 356/592/108 338/585/108 +f 360/587/105 355/584/105 337/586/105 +f 358/589/106 359/593/106 341/590/106 +f 356/592/73 357/581/73 339/583/73 +f 359/593/74 360/587/74 342/588/74 +f 370/594/71 371/734/71 364/595/71 +f 375/597/74 372/612/74 369/598/74 +f 372/602/87 375/735/87 368/736/87 +f 375/735/87 376/610/87 368/736/87 +f 376/610/87 367/606/87 368/736/87 +f 368/736/87 363/737/87 372/602/87 +f 363/737/87 364/600/87 372/602/87 +f 363/603/73 368/609/73 365/604/73 +f 367/606/72 376/610/72 373/607/72 +f 364/595/76 363/603/76 362/605/76 +f 366/608/75 365/604/75 368/609/75 +f 374/599/78 373/607/78 376/610/78 +f 371/611/77 370/738/77 369/598/77 +f 362/615/96 365/739/96 374/740/96 +f 365/739/96 366/608/96 374/740/96 +f 366/608/96 373/607/96 374/740/96 +f 374/740/96 369/741/96 362/615/96 +f 369/741/96 370/613/96 362/615/96 +f 378/616/71 380/742/71 379/617/71 +f 381/619/72 384/743/72 383/620/72 +f 378/622/77 383/744/77 384/623/77 +f 377/625/76 379/745/76 381/626/76 +f 380/628/90 384/746/90 381/629/90 +f 377/618/102 382/621/102 383/620/102 +f 391/631/74 392/639/74 389/632/74 +f 388/634/96 392/639/96 391/631/96 +f 385/636/87 390/633/87 389/632/87 +f 387/638/72 389/632/72 392/639/72 +f 385/641/71 386/747/71 391/631/71 +f 399/642/74 400/646/74 397/643/74 +f 395/645/72 397/643/72 400/646/72 +f 393/648/71 394/748/71 399/642/71 +f 396/649/96 400/646/96 399/642/96 +f 393/651/87 398/644/87 397/643/87 +f 402/653/109 411/667/109 412/654/109 +f 407/656/87 408/662/87 405/657/87 +f 404/655/74 408/662/74 407/656/74 +f 401/659/73 406/749/73 405/660/73 +f 403/661/72 405/660/72 408/662/72 +f 402/653/71 407/656/71 406/663/71 +f 403/661/110 409/666/110 410/665/110 +f 403/661/72 404/655/72 412/654/72 +f 401/664/71 410/750/71 411/667/71 +f 428/562/111 427/565/111 420/566/111 +f 421/668/112 418/751/112 417/564/112 +f 424/669/113 423/722/113 414/555/113 +f 416/561/114 415/752/114 426/671/114 +f 413/670/73 418/751/73 421/668/73 +f 444/673/111 443/546/111 436/548/111 +f 441/552/114 432/554/114 431/674/114 +f 429/676/113 440/681/113 439/677/113 +f 434/678/112 433/547/112 438/679/112 +f 434/678/73 437/680/73 440/681/73 +f 445/682/73 448/686/73 447/683/73 +f 445/682/72 449/753/72 452/685/72 +f 446/684/71 447/683/71 451/687/71 +f 448/686/96 452/754/96 451/689/96 +f 446/684/87 450/755/87 449/690/87 +f 453/691/73 454/756/73 456/692/73 +f 456/692/75 458/757/75 457/694/75 +f 460/695/73 462/758/73 461/696/73 +f 464/698/73 466/759/73 465/699/73 +f 467/701/73 470/704/73 469/702/73 +f 470/704/115 472/760/115 471/705/115 +f 468/703/116 474/761/116 473/706/116 o Chest v 4.199992 -0.300001 2.100000 v 4.199992 -0.300001 -2.100000 @@ -2959,535 +2999,535 @@ vn -0.9774 -0.2087 -0.0348 vn 0.0000 0.9864 0.1646 vn -0.8729 -0.2182 0.4364 s off -f 470/746/105 538/747/105 522/748/105 -f 522/749/106 541/750/106 529/751/106 -f 541/752/107 521/753/107 529/754/107 -f 526/755/106 543/756/106 532/757/106 -f 483/758/106 488/759/106 484/760/106 -f 480/761/108 482/762/108 479/763/108 -f 477/764/109 482/762/109 478/765/109 -f 476/766/106 480/761/106 475/767/106 -f 502/768/110 505/769/110 501/770/110 -f 501/771/111 503/772/111 499/773/111 -f 486/774/109 489/775/109 485/776/109 -f 490/777/112 487/778/112 489/775/112 -f 484/779/106 491/780/106 476/781/106 -f 478/782/109 494/783/109 486/784/109 -f 475/785/106 497/786/106 483/787/106 -f 485/788/109 496/789/109 477/790/109 -f 497/786/105 496/789/105 498/791/105 -f 491/780/107 494/783/107 492/792/107 -f 491/780/113 482/762/113 481/793/113 -f 476/766/106 491/794/106 481/793/106 -f 478/765/109 482/762/109 492/795/109 -f 486/784/109 494/783/109 490/796/109 -f 490/797/114 493/798/114 488/799/114 -f 484/779/106 488/800/106 493/798/106 -f 485/776/109 489/775/109 498/801/109 -f 487/778/115 498/791/115 489/775/115 -f 483/758/106 497/802/106 487/778/106 -f 477/790/109 496/789/109 479/803/109 -f 480/761/116 496/789/116 495/804/116 -f 475/785/106 480/805/106 495/804/106 -f 499/806/117 508/807/117 500/808/117 -f 501/771/118 505/769/118 504/809/118 -f 499/773/119 503/772/119 507/810/119 -f 500/811/120 511/812/120 509/813/120 -f 502/814/120 513/815/120 512/816/120 -f 500/808/121 508/807/121 510/817/121 -f 502/768/122 512/816/122 506/818/122 -f 467/819/112 517/820/112 474/821/112 -f 468/822/105 514/823/105 467/819/105 -f 469/824/108 515/825/108 468/822/108 -f 474/826/107 516/827/107 469/824/107 -f 518/828/105 540/829/105 526/830/105 -f 539/831/107 473/832/107 525/833/107 -f 542/834/106 525/835/106 531/836/106 -f 538/747/108 535/837/108 539/831/108 -f 540/829/108 537/838/108 541/752/108 -f 530/839/106 545/840/106 531/841/106 -f 532/842/106 547/843/106 533/844/106 -f 549/845/107 524/846/107 472/847/107 -f 553/848/106 530/849/106 524/850/106 -f 533/851/106 554/852/106 527/853/106 -f 551/854/107 528/855/107 520/856/107 -f 523/857/105 548/858/105 471/859/105 -f 555/860/106 523/861/106 528/862/106 -f 527/863/105 550/864/105 519/865/105 -f 544/866/106 530/849/106 556/867/106 -f 533/851/106 547/868/106 557/869/106 -f 532/757/106 543/756/106 546/870/106 -f 531/836/106 545/871/106 542/834/106 -f 544/872/114 564/873/114 560/874/114 -f 545/840/113 558/875/113 542/834/113 -f 547/843/115 565/876/115 557/869/115 -f 544/877/107 561/878/107 545/840/107 -f 546/879/116 559/880/116 562/881/116 -f 546/879/105 563/882/105 547/843/105 -f 538/883/108 539/884/108 558/875/108 -f 554/885/112 551/854/112 550/864/112 -f 549/845/112 552/886/112 553/887/112 -f 564/873/112 556/867/112 553/848/112 -f 562/881/109 569/888/109 563/882/109 -f 560/889/109 567/890/109 561/878/109 -f 561/878/123 567/891/123 558/875/123 -f 562/881/123 559/880/123 568/892/123 -f 558/875/123 568/892/123 559/880/123 -f 565/876/124 563/882/124 569/893/124 -f 564/873/124 566/894/124 560/874/124 -f 564/873/124 569/893/124 566/894/124 -f 573/895/107 472/896/107 473/897/107 -f 519/898/105 574/899/105 518/900/105 -f 471/901/105 570/902/105 470/903/105 -f 577/904/107 520/905/107 521/906/107 -f 571/907/106 573/895/106 570/902/106 -f 574/899/106 576/908/106 577/904/106 -f 534/909/125 573/895/125 535/837/125 -f 536/910/125 577/904/125 537/838/125 -f 550/864/126 576/908/126 575/911/126 -f 572/912/126 548/858/126 549/845/126 -f 471/859/105 548/858/105 571/913/105 -f 519/865/105 550/864/105 575/914/105 -f 520/856/107 576/915/107 551/854/107 -f 472/847/107 572/916/107 549/845/107 -f 473/832/107 535/837/107 573/917/107 -f 470/746/105 570/918/105 534/909/105 -f 521/753/107 537/838/107 577/919/107 -f 518/828/105 574/920/105 536/910/105 -f 467/921/106 469/824/106 468/822/106 -f 578/922/108 581/923/108 579/924/108 -f 580/925/106 583/926/106 581/927/106 -f 587/928/107 579/929/107 581/930/107 -f 586/931/109 578/932/109 579/933/109 -f 585/934/112 587/928/112 584/935/112 -f 583/926/126 584/935/126 587/928/126 -f 584/935/105 582/936/105 580/937/105 -f 620/938/105 624/939/105 621/940/105 -f 627/941/127 630/942/127 626/943/127 -f 590/944/128 593/945/128 592/946/128 -f 625/947/129 623/948/129 635/949/129 -f 607/950/106 609/951/106 611/952/106 -f 593/945/130 594/953/130 592/946/130 -f 614/954/108 616/955/108 615/956/108 -f 610/957/131 589/958/131 606/959/131 -f 595/960/132 596/961/132 594/962/132 -f 612/963/105 617/964/105 614/954/105 -f 609/965/112 589/958/112 608/966/112 -f 596/961/133 599/967/133 598/968/133 -f 613/969/112 619/970/112 612/963/112 -f 624/939/106 626/971/106 625/972/106 -f 598/968/134 601/973/134 600/974/134 -f 615/975/107 618/976/107 613/969/107 -f 606/959/108 611/977/108 610/978/108 -f 601/973/135 602/979/135 600/974/135 -f 599/980/107 597/981/107 595/982/107 -f 588/983/105 606/959/105 589/958/105 -f 603/984/136 604/985/136 602/979/136 -f 622/986/109 621/940/109 623/948/109 -f 623/948/137 626/987/137 622/986/137 -f 605/988/138 590/944/138 604/985/138 -f 596/989/105 600/990/105 604/991/105 -f 628/992/112 631/993/112 629/994/112 -f 620/938/109 628/995/109 629/994/109 -f 620/938/105 631/993/105 627/996/105 -f 622/986/114 630/997/114 628/998/114 -f 632/999/108 635/1000/108 633/1001/108 -f 624/1002/139 635/1000/139 634/1003/139 -f 621/940/109 633/1004/109 623/948/109 -f 621/940/105 634/1003/105 632/999/105 -f 638/1005/107 636/1006/107 637/1007/107 -f 654/1008/106 652/1009/106 653/1010/106 -f 637/1007/112 642/1011/112 643/1012/112 -f 638/1005/108 640/1013/108 639/1014/108 -f 637/1007/140 641/1015/140 638/1005/140 -f 639/1014/106 642/1016/106 636/1006/106 -f 650/1017/106 648/1018/106 649/1019/106 -f 646/1020/108 651/1021/108 647/1022/108 -f 645/1023/112 649/1024/112 644/1025/112 -f 647/1022/107 650/1017/107 645/1023/107 -f 644/1026/105 648/1027/105 646/1020/105 -f 656/1028/109 658/1029/109 657/1030/109 -f 658/1029/107 655/1031/107 654/1008/107 -f 656/1032/105 653/1033/105 652/1034/105 -f 659/1035/108 652/1034/108 655/1031/108 -f 653/1036/112 658/1029/112 654/1008/112 -f 666/1037/105 668/1038/105 664/1039/105 -f 662/1040/105 664/1039/105 660/1041/105 -f 663/1042/109 666/1043/109 662/1044/109 -f 663/1042/107 665/1045/107 667/1046/107 -f 660/1041/141 665/1045/141 661/1047/141 -f 668/1038/112 671/1048/112 669/1049/112 -f 667/1046/142 670/1050/142 666/1043/142 -f 667/1046/107 669/1049/107 671/1051/107 -f 664/1039/141 669/1049/141 665/1045/141 -f 678/1052/105 680/1053/105 682/1054/105 -f 674/1055/105 676/1056/105 678/1052/105 -f 674/1055/109 679/1057/109 675/1058/109 -f 675/1059/107 677/1060/107 673/1061/107 -f 673/1061/143 676/1056/143 672/1062/143 -f 680/1053/108 683/1063/108 682/1064/108 -f 678/1052/144 683/1065/144 679/1057/144 -f 679/1066/107 681/1067/107 677/1060/107 -f 676/1056/143 681/1067/143 680/1053/143 -f 684/1068/128 687/1069/128 686/1070/128 -f 686/1070/130 689/1071/130 688/1072/130 -f 689/1073/132 690/1074/132 688/1075/132 -f 691/1076/133 692/1077/133 690/1074/133 -f 693/1078/134 694/1079/134 692/1077/134 -f 695/1080/135 696/1081/135 694/1079/135 -f 691/1082/107 689/1083/107 697/1084/107 -f 697/1085/136 698/1086/136 696/1081/136 -f 698/1086/138 685/1087/138 684/1068/138 -f 698/1088/105 686/1089/105 690/1090/105 -f 706/1091/112 704/1092/112 705/1093/112 -f 702/1094/106 707/1095/106 703/1096/106 -f 701/1097/109 705/1093/109 700/1098/109 -f 703/1099/107 706/1091/107 701/1100/107 -f 700/1101/105 704/1092/105 702/1102/105 -f 723/1103/125 728/1104/125 731/1105/125 -f 717/1106/105 724/1107/105 716/1108/105 -f 715/1109/107 722/1110/107 713/1111/107 -f 712/1112/105 720/1113/105 714/1114/105 -f 711/1115/107 718/1116/107 709/1117/107 -f 708/1118/105 716/1108/105 710/1119/105 -f 715/1109/108 720/1120/108 723/1103/108 -f 713/1111/112 721/1121/112 712/1112/112 -f 711/1115/108 716/1122/108 719/1123/108 -f 709/1117/112 717/1106/112 708/1118/112 -f 729/1124/105 736/1125/105 728/1126/105 -f 731/1105/107 738/1127/107 730/1128/107 -f 721/1121/124 730/1128/124 729/1124/124 -f 716/1122/125 727/1129/125 719/1123/125 -f 718/1116/124 725/1130/124 717/1106/124 -f 722/1110/107 731/1105/107 730/1128/107 -f 721/1121/105 728/1126/105 720/1113/105 -f 718/1116/107 727/1129/107 726/1131/107 -f 734/1132/106 732/1133/106 733/1134/106 -f 738/1127/106 736/1135/106 737/1136/106 -f 727/1129/107 734/1132/107 726/1131/107 -f 725/1130/105 732/1137/105 724/1107/105 -f 731/1105/108 736/1138/108 739/1139/108 -f 730/1128/112 737/1136/112 729/1124/112 -f 724/1140/108 735/1141/108 727/1129/108 -f 726/1131/112 733/1134/112 725/1130/112 -f 756/1142/145 758/1143/145 760/1144/145 -f 744/1145/146 741/1146/146 742/1147/146 -f 742/1147/147 745/1148/147 744/1145/147 -f 754/1149/148 761/1150/148 762/1151/148 -f 750/1152/146 757/1153/146 756/1142/146 -f 745/1148/107 746/1154/107 744/1145/107 -f 741/1155/149 758/1143/149 757/1153/149 -f 752/1156/146 741/1155/146 757/1153/146 -f 746/1154/150 749/1157/150 748/1158/150 -f 762/1151/107 769/1159/107 763/1160/107 -f 750/1152/146 755/1161/146 748/1158/146 -f 748/1158/151 751/1162/151 750/1152/151 -f 743/1163/146 751/1164/146 747/1165/146 -f 741/1146/152 763/1160/152 759/1166/152 -f 750/1152/105 753/1167/105 752/1156/105 -f 755/1161/153 760/1144/153 761/1150/153 -f 744/1145/146 754/1149/146 740/1168/146 -f 753/1167/154 742/1169/154 752/1156/154 -f 746/1154/146 755/1161/146 754/1149/146 -f 754/1149/155 763/1160/155 740/1168/155 -f 767/1170/156 766/1171/156 764/1172/156 -f 760/1144/151 767/1173/151 761/1150/151 -f 758/1143/154 765/1174/154 764/1175/154 -f 759/1166/147 769/1159/147 765/1176/147 -f 761/1150/150 768/1177/150 762/1151/150 -f 760/1144/105 764/1175/105 766/1178/105 -f 786/1179/157 788/1180/157 790/1181/157 -f 774/1182/158 771/1183/158 772/1184/158 -f 773/1185/159 774/1182/159 772/1184/159 -f 785/1186/160 792/1187/160 784/1188/160 -f 782/1189/158 786/1179/158 780/1190/158 -f 774/1182/107 777/1191/107 776/1192/107 -f 771/1193/161 788/1180/161 787/1194/161 -f 772/1195/158 787/1194/158 782/1189/158 -f 777/1191/162 778/1196/162 776/1192/162 -f 793/1197/107 798/1198/107 799/1199/107 -f 780/1190/158 785/1186/158 778/1196/158 -f 778/1196/163 781/1200/163 780/1190/163 -f 779/1201/158 777/1202/158 773/1203/158 -f 771/1183/164 793/1197/164 789/1204/164 -f 781/1200/105 782/1189/105 780/1190/105 -f 785/1186/165 790/1181/165 791/1205/165 -f 774/1182/158 784/1188/158 770/1206/158 -f 783/1207/166 772/1195/166 782/1189/166 -f 776/1192/158 785/1186/158 784/1188/158 -f 784/1188/167 793/1197/167 770/1206/167 -f 796/1208/168 794/1209/168 799/1210/168 -f 790/1181/163 797/1211/163 791/1205/163 -f 788/1180/166 795/1212/166 794/1213/166 -f 789/1204/159 799/1199/159 795/1214/159 -f 791/1205/162 798/1198/162 792/1187/162 -f 790/1181/105 794/1213/105 796/1215/105 -f 630/997/169 622/986/169 626/987/169 -f 635/949/113 623/948/113 633/1216/113 -f 470/746/105 534/909/105 538/747/105 -f 522/749/106 538/883/106 541/750/106 -f 541/752/107 537/838/107 521/753/107 -f 526/755/106 540/1217/106 543/756/106 -f 483/758/106 487/778/106 488/759/106 -f 480/761/108 481/793/108 482/762/108 -f 477/764/109 479/763/109 482/762/109 -f 476/766/106 481/793/106 480/761/106 -f 502/768/110 506/818/110 505/769/110 -f 501/771/111 504/809/111 503/772/111 -f 486/774/109 490/777/109 489/775/109 -f 490/777/112 488/759/112 487/778/112 -f 484/779/106 493/798/106 491/780/106 -f 478/782/109 492/792/109 494/783/109 -f 475/785/106 495/804/106 497/786/106 -f 485/788/109 498/791/109 496/789/109 -f 497/786/105 495/804/105 496/789/105 -f 491/780/107 493/798/107 494/783/107 -f 491/780/113 492/792/113 482/762/113 -f 490/797/114 494/783/114 493/798/114 -f 487/778/115 497/786/115 498/791/115 -f 480/761/116 479/763/116 496/789/116 -f 499/806/117 507/810/117 508/807/117 -f 500/811/120 510/817/120 511/812/120 -f 502/814/120 509/1218/120 513/815/120 -f 467/819/112 514/823/112 517/820/112 -f 468/822/105 515/825/105 514/823/105 -f 469/824/108 516/827/108 515/825/108 -f 474/826/107 517/1219/107 516/827/107 -f 518/828/105 536/910/105 540/829/105 -f 539/831/107 535/837/107 473/832/107 -f 542/834/106 539/884/106 525/835/106 -f 538/747/108 534/909/108 535/837/108 -f 540/829/108 536/910/108 537/838/108 -f 530/839/106 544/877/106 545/840/106 -f 532/842/106 546/879/106 547/843/106 -f 549/845/107 553/887/107 524/846/107 -f 553/848/106 556/867/106 530/849/106 -f 533/851/106 557/869/106 554/852/106 -f 551/854/107 555/1220/107 528/855/107 -f 523/857/105 552/886/105 548/858/105 -f 555/860/106 552/1221/106 523/861/106 -f 527/863/105 554/885/105 550/864/105 -f 544/872/114 556/867/114 564/873/114 -f 545/840/113 561/878/113 558/875/113 -f 547/843/115 563/882/115 565/876/115 -f 544/877/107 560/889/107 561/878/107 -f 546/879/116 543/756/116 559/880/116 -f 546/879/105 562/881/105 563/882/105 -f 539/884/108 542/834/108 558/875/108 -f 558/875/108 559/880/108 541/750/108 -f 559/880/108 543/756/108 540/1217/108 -f 541/750/108 559/880/108 540/1217/108 -f 541/750/108 538/883/108 558/875/108 -f 554/885/112 555/1220/112 551/854/112 -f 549/845/112 548/858/112 552/886/112 -f 553/848/112 552/1221/112 564/873/112 -f 552/1221/112 555/860/112 564/873/112 -f 555/860/112 554/852/112 565/876/112 -f 554/852/112 557/869/112 565/876/112 -f 565/876/112 564/873/112 555/860/112 -f 562/881/109 568/1222/109 569/888/109 -f 560/889/109 566/1223/109 567/890/109 -f 558/875/123 567/891/123 568/892/123 -f 564/873/124 565/876/124 569/893/124 -f 573/895/107 572/912/107 472/896/107 -f 519/898/105 575/911/105 574/899/105 -f 471/901/105 571/907/105 570/902/105 -f 577/904/107 576/908/107 520/905/107 -f 571/907/106 572/912/106 573/895/106 -f 574/899/106 575/911/106 576/908/106 -f 534/909/125 570/902/125 573/895/125 -f 536/910/125 574/899/125 577/904/125 -f 550/864/126 551/854/126 576/908/126 -f 572/912/126 571/907/126 548/858/126 -f 467/921/106 474/1224/106 469/824/106 -f 578/922/108 580/937/108 581/923/108 -f 580/925/106 582/1225/106 583/926/106 -f 581/930/107 583/1226/107 587/928/107 -f 587/928/107 586/931/107 579/929/107 -f 586/931/109 585/934/109 578/932/109 -f 585/934/112 586/931/112 587/928/112 -f 583/926/126 582/1225/126 584/935/126 -f 580/937/105 578/922/105 584/935/105 -f 578/922/105 585/934/105 584/935/105 -f 620/938/105 627/996/105 624/939/105 -f 627/941/127 631/993/127 630/942/127 -f 590/944/128 591/1227/128 593/945/128 -f 607/950/106 588/983/106 609/951/106 -f 593/945/130 595/1228/130 594/953/130 -f 614/954/108 617/964/108 616/955/108 -f 610/957/131 608/1229/131 589/958/131 -f 595/960/132 597/1230/132 596/961/132 -f 612/963/105 619/970/105 617/964/105 -f 609/965/112 588/983/112 589/958/112 -f 596/961/133 597/1230/133 599/967/133 -f 613/969/112 618/976/112 619/970/112 -f 624/939/106 627/996/106 626/971/106 -f 598/968/134 599/967/134 601/973/134 -f 615/975/107 616/1231/107 618/976/107 -f 606/959/108 607/950/108 611/977/108 -f 601/973/135 603/984/135 602/979/135 -f 595/982/107 593/1232/107 603/1233/107 -f 593/1232/107 591/1234/107 603/1233/107 -f 591/1234/107 605/1235/107 603/1233/107 -f 603/1233/107 601/1236/107 595/982/107 -f 601/1236/107 599/980/107 595/982/107 -f 588/983/105 607/950/105 606/959/105 -f 603/984/136 605/988/136 604/985/136 -f 622/986/109 620/938/109 621/940/109 -f 623/948/137 625/947/137 626/987/137 -f 605/988/138 591/1227/138 590/944/138 -f 604/991/105 590/1237/105 592/1238/105 -f 592/1238/105 594/1239/105 596/989/105 -f 596/989/105 598/1240/105 600/990/105 -f 600/990/105 602/1241/105 604/991/105 -f 604/991/105 592/1238/105 596/989/105 -f 628/992/112 630/942/112 631/993/112 -f 620/938/109 622/986/109 628/995/109 -f 620/938/105 629/994/105 631/993/105 -f 632/999/108 634/1003/108 635/1000/108 -f 624/1002/139 625/1242/139 635/1000/139 -f 621/940/109 632/999/109 633/1004/109 -f 621/940/105 624/939/105 634/1003/105 -f 638/1005/107 639/1014/107 636/1006/107 -f 654/1008/106 655/1031/106 652/1009/106 -f 637/1007/112 636/1006/112 642/1011/112 -f 638/1005/108 641/1243/108 640/1013/108 -f 637/1007/140 643/1244/140 641/1015/140 -f 639/1014/106 640/1245/106 642/1016/106 -f 650/1017/106 651/1021/106 648/1018/106 -f 646/1020/108 648/1027/108 651/1021/108 -f 645/1023/112 650/1017/112 649/1024/112 -f 647/1022/107 651/1021/107 650/1017/107 -f 644/1026/105 649/1246/105 648/1027/105 -f 656/1028/109 659/1035/109 658/1029/109 -f 658/1029/107 659/1035/107 655/1031/107 -f 656/1032/105 657/1247/105 653/1033/105 -f 659/1035/108 656/1032/108 652/1034/108 -f 653/1036/112 657/1248/112 658/1029/112 -f 666/1037/105 670/1249/105 668/1038/105 -f 662/1040/105 666/1037/105 664/1039/105 -f 663/1042/109 667/1046/109 666/1043/109 -f 663/1042/107 661/1047/107 665/1045/107 -f 660/1041/141 664/1039/141 665/1045/141 -f 668/1038/112 670/1250/112 671/1048/112 -f 667/1046/142 671/1051/142 670/1050/142 -f 667/1046/107 665/1045/107 669/1049/107 -f 664/1039/141 668/1038/141 669/1049/141 -f 678/1052/105 676/1056/105 680/1053/105 -f 674/1055/105 672/1062/105 676/1056/105 -f 674/1055/109 678/1052/109 679/1057/109 -f 675/1059/107 679/1066/107 677/1060/107 -f 673/1061/143 677/1060/143 676/1056/143 -f 680/1053/108 681/1067/108 683/1063/108 -f 678/1052/144 682/1054/144 683/1065/144 -f 679/1066/107 683/1251/107 681/1067/107 -f 676/1056/143 677/1060/143 681/1067/143 -f 684/1068/128 685/1087/128 687/1069/128 -f 686/1070/130 687/1069/130 689/1071/130 -f 689/1073/132 691/1076/132 690/1074/132 -f 691/1076/133 693/1078/133 692/1077/133 -f 693/1078/134 695/1080/134 694/1079/134 -f 695/1080/135 697/1085/135 696/1081/135 -f 689/1083/107 687/1252/107 697/1084/107 -f 687/1252/107 685/1253/107 697/1084/107 -f 685/1253/107 699/1254/107 697/1084/107 -f 697/1084/107 695/1255/107 693/1256/107 -f 693/1256/107 691/1082/107 697/1084/107 -f 697/1085/136 699/1257/136 698/1086/136 -f 698/1086/138 699/1257/138 685/1087/138 -f 698/1088/105 684/1258/105 686/1089/105 -f 686/1089/105 688/1259/105 690/1090/105 -f 690/1090/105 692/1260/105 694/1261/105 -f 694/1261/105 696/1262/105 690/1090/105 -f 696/1262/105 698/1088/105 690/1090/105 -f 706/1091/112 707/1095/112 704/1092/112 -f 702/1094/106 704/1092/106 707/1095/106 -f 701/1097/109 706/1091/109 705/1093/109 -f 703/1099/107 707/1095/107 706/1091/107 -f 700/1101/105 705/1093/105 704/1092/105 -f 723/1103/125 720/1120/125 728/1104/125 -f 717/1106/105 725/1130/105 724/1107/105 -f 715/1109/107 723/1103/107 722/1110/107 -f 712/1112/105 721/1121/105 720/1113/105 -f 711/1115/107 719/1123/107 718/1116/107 -f 708/1118/105 717/1106/105 716/1108/105 -f 715/1109/108 714/1263/108 720/1120/108 -f 713/1111/112 722/1110/112 721/1121/112 -f 711/1115/108 710/1264/108 716/1122/108 -f 709/1117/112 718/1116/112 717/1106/112 -f 729/1124/105 737/1136/105 736/1125/105 -f 731/1105/107 739/1139/107 738/1127/107 -f 721/1121/124 722/1110/124 730/1128/124 -f 716/1122/125 724/1140/125 727/1129/125 -f 718/1116/124 726/1131/124 725/1130/124 -f 722/1110/107 723/1103/107 731/1105/107 -f 721/1121/105 729/1124/105 728/1126/105 -f 718/1116/107 719/1123/107 727/1129/107 -f 734/1132/106 735/1265/106 732/1133/106 -f 738/1127/106 739/1266/106 736/1135/106 -f 727/1129/107 735/1141/107 734/1132/107 -f 725/1130/105 733/1134/105 732/1137/105 -f 731/1105/108 728/1104/108 736/1138/108 -f 730/1128/112 738/1127/112 737/1136/112 -f 724/1140/108 732/1267/108 735/1141/108 -f 726/1131/112 734/1132/112 733/1134/112 -f 756/1142/145 757/1153/145 758/1143/145 -f 744/1145/146 740/1168/146 741/1146/146 -f 742/1147/147 743/1268/147 745/1148/147 -f 754/1149/148 755/1161/148 761/1150/148 -f 750/1152/146 752/1156/146 757/1153/146 -f 745/1148/107 747/1269/107 746/1154/107 -f 741/1155/149 759/1270/149 758/1143/149 -f 752/1156/146 742/1169/146 741/1155/146 -f 746/1154/150 747/1269/150 749/1157/150 -f 762/1151/107 768/1177/107 769/1159/107 -f 750/1152/146 756/1142/146 755/1161/146 -f 748/1158/151 749/1157/151 751/1162/151 -f 747/1165/146 745/1271/146 743/1163/146 -f 743/1163/146 753/1272/146 751/1164/146 -f 751/1164/146 749/1273/146 747/1165/146 -f 741/1146/152 740/1168/152 763/1160/152 -f 750/1152/105 751/1162/105 753/1167/105 -f 755/1161/153 756/1142/153 760/1144/153 -f 744/1145/146 746/1154/146 754/1149/146 -f 753/1167/154 743/1274/154 742/1169/154 -f 746/1154/146 748/1158/146 755/1161/146 -f 754/1149/155 762/1151/155 763/1160/155 -f 764/1172/156 765/1275/156 767/1170/156 -f 765/1275/156 769/1276/156 767/1170/156 -f 769/1276/156 768/1277/156 767/1170/156 -f 760/1144/151 766/1178/151 767/1173/151 -f 758/1143/154 759/1270/154 765/1174/154 -f 759/1166/147 763/1160/147 769/1159/147 -f 761/1150/150 767/1173/150 768/1177/150 -f 760/1144/105 758/1143/105 764/1175/105 -f 786/1179/157 787/1194/157 788/1180/157 -f 774/1182/158 770/1206/158 771/1183/158 -f 773/1185/159 775/1278/159 774/1182/159 -f 785/1186/160 791/1205/160 792/1187/160 -f 782/1189/158 787/1194/158 786/1179/158 -f 774/1182/107 775/1278/107 777/1191/107 -f 771/1193/161 789/1279/161 788/1180/161 -f 772/1195/158 771/1193/158 787/1194/158 -f 777/1191/162 779/1280/162 778/1196/162 -f 793/1197/107 792/1187/107 798/1198/107 -f 780/1190/158 786/1179/158 785/1186/158 -f 778/1196/163 779/1280/163 781/1200/163 -f 777/1202/158 775/1281/158 773/1203/158 -f 773/1203/158 783/1282/158 781/1283/158 -f 781/1283/158 779/1201/158 773/1203/158 -f 771/1183/164 770/1206/164 793/1197/164 -f 781/1200/105 783/1207/105 782/1189/105 -f 785/1186/165 786/1179/165 790/1181/165 -f 774/1182/158 776/1192/158 784/1188/158 -f 783/1207/166 773/1284/166 772/1195/166 -f 776/1192/158 778/1196/158 785/1186/158 -f 784/1188/167 792/1187/167 793/1197/167 -f 794/1209/168 795/1285/168 799/1210/168 -f 799/1210/168 798/1286/168 797/1287/168 -f 797/1287/168 796/1208/168 799/1210/168 -f 790/1181/163 796/1215/163 797/1211/163 -f 788/1180/166 789/1279/166 795/1212/166 -f 789/1204/159 793/1197/159 799/1199/159 -f 791/1205/162 797/1211/162 798/1198/162 -f 790/1181/105 788/1180/105 794/1213/105 +f 478/762/117 546/763/117 530/764/117 +f 530/765/118 549/766/118 537/767/118 +f 549/768/119 529/769/119 537/770/119 +f 534/771/118 551/772/118 540/773/118 +f 491/774/118 496/775/118 492/776/118 +f 488/777/120 490/778/120 487/779/120 +f 485/780/121 490/778/121 486/781/121 +f 484/782/118 488/777/118 483/783/118 +f 510/784/122 513/785/122 509/786/122 +f 509/787/123 511/788/123 507/789/123 +f 494/790/121 497/791/121 493/792/121 +f 498/793/124 495/794/124 497/791/124 +f 492/795/118 499/796/118 484/797/118 +f 486/798/121 502/799/121 494/800/121 +f 483/801/118 505/802/118 491/803/118 +f 493/804/121 504/805/121 485/806/121 +f 505/802/117 504/805/117 506/807/117 +f 499/796/119 502/799/119 500/808/119 +f 499/796/125 490/778/125 489/809/125 +f 484/782/118 499/810/118 489/809/118 +f 486/781/121 490/778/121 500/811/121 +f 494/800/121 502/799/121 498/812/121 +f 498/813/126 501/814/126 496/815/126 +f 492/795/118 496/816/118 501/814/118 +f 493/792/121 497/791/121 506/817/121 +f 495/794/127 506/807/127 497/791/127 +f 491/774/118 505/818/118 495/794/118 +f 485/806/121 504/805/121 487/819/121 +f 488/777/128 504/805/128 503/820/128 +f 483/801/118 488/821/118 503/820/118 +f 507/822/129 516/823/129 508/824/129 +f 509/787/130 513/785/130 512/825/130 +f 507/789/131 511/788/131 515/826/131 +f 508/827/132 519/828/132 517/829/132 +f 510/830/132 521/831/132 520/832/132 +f 508/824/133 516/823/133 518/833/133 +f 510/784/134 520/832/134 514/834/134 +f 475/835/124 525/836/124 482/837/124 +f 476/838/117 522/839/117 475/835/117 +f 477/840/120 523/841/120 476/838/120 +f 482/842/119 524/843/119 477/840/119 +f 526/844/117 548/845/117 534/846/117 +f 547/847/119 481/848/119 533/849/119 +f 550/850/118 533/851/118 539/852/118 +f 546/763/120 543/853/120 547/847/120 +f 548/845/120 545/854/120 549/768/120 +f 538/855/118 553/856/118 539/857/118 +f 540/858/118 555/859/118 541/860/118 +f 557/861/119 532/862/119 480/863/119 +f 561/864/118 538/865/118 532/866/118 +f 541/867/118 562/868/118 535/869/118 +f 559/870/119 536/871/119 528/872/119 +f 531/873/117 556/874/117 479/875/117 +f 563/876/118 531/877/118 536/878/118 +f 535/879/117 558/880/117 527/881/117 +f 552/882/118 538/865/118 564/883/118 +f 541/867/118 555/884/118 565/885/118 +f 540/773/118 551/772/118 554/886/118 +f 539/852/118 553/887/118 550/850/118 +f 552/888/126 572/889/126 568/890/126 +f 553/856/125 566/891/125 550/850/125 +f 555/859/127 573/892/127 565/885/127 +f 552/893/119 569/894/119 553/856/119 +f 554/895/128 567/896/128 570/897/128 +f 554/895/117 571/898/117 555/859/117 +f 546/899/120 547/900/120 566/891/120 +f 562/901/124 559/870/124 558/880/124 +f 557/861/124 560/902/124 561/903/124 +f 572/889/124 564/883/124 561/864/124 +f 570/897/121 577/904/121 571/898/121 +f 568/905/121 575/906/121 569/894/121 +f 569/894/135 575/907/135 566/891/135 +f 570/897/135 567/896/135 576/908/135 +f 566/891/135 576/908/135 567/896/135 +f 573/892/136 571/898/136 577/909/136 +f 572/889/136 574/910/136 568/890/136 +f 572/889/136 577/909/136 574/910/136 +f 581/911/119 480/912/119 481/913/119 +f 527/914/117 582/915/117 526/916/117 +f 479/917/117 578/918/117 478/919/117 +f 585/920/119 528/921/119 529/922/119 +f 579/923/118 581/911/118 578/918/118 +f 582/915/118 584/924/118 585/920/118 +f 542/925/137 581/911/137 543/853/137 +f 544/926/137 585/920/137 545/854/137 +f 558/880/138 584/924/138 583/927/138 +f 580/928/138 556/874/138 557/861/138 +f 479/875/117 556/874/117 579/929/117 +f 527/881/117 558/880/117 583/930/117 +f 528/872/119 584/931/119 559/870/119 +f 480/863/119 580/932/119 557/861/119 +f 481/848/119 543/853/119 581/933/119 +f 478/762/117 578/934/117 542/925/117 +f 529/769/119 545/854/119 585/935/119 +f 526/844/117 582/936/117 544/926/117 +f 475/937/118 477/840/118 476/838/118 +f 586/938/120 589/939/120 587/940/120 +f 588/941/118 591/942/118 589/943/118 +f 595/944/119 587/945/119 589/946/119 +f 594/947/121 586/948/121 587/949/121 +f 593/950/124 595/944/124 592/951/124 +f 591/942/138 592/951/138 595/944/138 +f 592/951/117 590/952/117 588/953/117 +f 628/954/117 632/955/117 629/956/117 +f 635/957/139 638/958/139 634/959/139 +f 598/960/140 601/961/140 600/962/140 +f 633/963/141 631/964/141 643/965/141 +f 615/966/118 617/967/118 619/968/118 +f 601/961/142 602/969/142 600/962/142 +f 622/970/120 624/971/120 623/972/120 +f 618/973/143 597/974/143 614/975/143 +f 603/976/144 604/977/144 602/978/144 +f 620/979/117 625/980/117 622/970/117 +f 617/981/124 597/974/124 616/982/124 +f 604/977/145 607/983/145 606/984/145 +f 621/985/124 627/986/124 620/979/124 +f 632/955/118 634/987/118 633/988/118 +f 606/984/146 609/989/146 608/990/146 +f 623/991/119 626/992/119 621/985/119 +f 614/975/120 619/993/120 618/994/120 +f 609/989/147 610/995/147 608/990/147 +f 607/996/119 605/997/119 603/998/119 +f 596/999/117 614/975/117 597/974/117 +f 611/1000/148 612/1001/148 610/995/148 +f 630/1002/121 629/956/121 631/964/121 +f 631/964/149 634/1003/149 630/1002/149 +f 613/1004/150 598/960/150 612/1001/150 +f 604/1005/117 608/1006/117 612/1007/117 +f 636/1008/124 639/1009/124 637/1010/124 +f 628/954/121 636/1011/121 637/1010/121 +f 628/954/117 639/1009/117 635/1012/117 +f 630/1002/126 638/1013/126 636/1014/126 +f 640/1015/120 643/1016/120 641/1017/120 +f 632/1018/151 643/1016/151 642/1019/151 +f 629/956/121 641/1020/121 631/964/121 +f 629/956/117 642/1019/117 640/1015/117 +f 646/1021/119 644/1022/119 645/1023/119 +f 662/1024/118 660/1025/118 661/1026/118 +f 645/1023/124 650/1027/124 651/1028/124 +f 646/1021/120 648/1029/120 647/1030/120 +f 645/1023/152 649/1031/152 646/1021/152 +f 647/1030/118 650/1032/118 644/1022/118 +f 658/1033/118 656/1034/118 657/1035/118 +f 654/1036/120 659/1037/120 655/1038/120 +f 653/1039/124 657/1040/124 652/1041/124 +f 655/1038/119 658/1033/119 653/1039/119 +f 652/1042/117 656/1043/117 654/1036/117 +f 664/1044/121 666/1045/121 665/1046/121 +f 666/1045/119 663/1047/119 662/1024/119 +f 664/1048/117 661/1049/117 660/1050/117 +f 667/1051/120 660/1050/120 663/1047/120 +f 661/1052/124 666/1045/124 662/1024/124 +f 674/1053/117 676/1054/117 672/1055/117 +f 670/1056/117 672/1055/117 668/1057/117 +f 671/1058/121 674/1059/121 670/1060/121 +f 671/1058/119 673/1061/119 675/1062/119 +f 668/1057/153 673/1061/153 669/1063/153 +f 676/1054/124 679/1064/124 677/1065/124 +f 675/1062/154 678/1066/154 674/1059/154 +f 675/1062/119 677/1065/119 679/1067/119 +f 672/1055/153 677/1065/153 673/1061/153 +f 686/1068/117 688/1069/117 690/1070/117 +f 682/1071/117 684/1072/117 686/1068/117 +f 682/1071/121 687/1073/121 683/1074/121 +f 683/1075/119 685/1076/119 681/1077/119 +f 681/1077/155 684/1072/155 680/1078/155 +f 688/1069/120 691/1079/120 690/1080/120 +f 686/1068/156 691/1081/156 687/1073/156 +f 687/1082/119 689/1083/119 685/1076/119 +f 684/1072/155 689/1083/155 688/1069/155 +f 692/1084/140 695/1085/140 694/1086/140 +f 694/1086/142 697/1087/142 696/1088/142 +f 697/1089/144 698/1090/144 696/1091/144 +f 699/1092/145 700/1093/145 698/1090/145 +f 701/1094/146 702/1095/146 700/1093/146 +f 703/1096/147 704/1097/147 702/1095/147 +f 699/1098/119 697/1099/119 705/1100/119 +f 705/1101/148 706/1102/148 704/1097/148 +f 706/1102/150 693/1103/150 692/1084/150 +f 706/1104/117 694/1105/117 698/1106/117 +f 714/1107/124 712/1108/124 713/1109/124 +f 710/1110/118 715/1111/118 711/1112/118 +f 709/1113/121 713/1109/121 708/1114/121 +f 711/1115/119 714/1107/119 709/1116/119 +f 708/1117/117 712/1108/117 710/1118/117 +f 731/1119/137 736/1120/137 739/1121/137 +f 725/1122/117 732/1123/117 724/1124/117 +f 723/1125/119 730/1126/119 721/1127/119 +f 720/1128/117 728/1129/117 722/1130/117 +f 719/1131/119 726/1132/119 717/1133/119 +f 716/1134/117 724/1124/117 718/1135/117 +f 723/1125/120 728/1136/120 731/1119/120 +f 721/1127/124 729/1137/124 720/1128/124 +f 719/1131/120 724/1138/120 727/1139/120 +f 717/1133/124 725/1122/124 716/1134/124 +f 737/1140/117 744/1141/117 736/1142/117 +f 739/1121/119 746/1143/119 738/1144/119 +f 729/1137/136 738/1144/136 737/1140/136 +f 724/1138/137 735/1145/137 727/1139/137 +f 726/1132/136 733/1146/136 725/1122/136 +f 730/1126/119 739/1121/119 738/1144/119 +f 729/1137/117 736/1142/117 728/1129/117 +f 726/1132/119 735/1145/119 734/1147/119 +f 742/1148/118 740/1149/118 741/1150/118 +f 746/1143/118 744/1151/118 745/1152/118 +f 735/1145/119 742/1148/119 734/1147/119 +f 733/1146/117 740/1153/117 732/1123/117 +f 739/1121/120 744/1154/120 747/1155/120 +f 738/1144/124 745/1152/124 737/1140/124 +f 732/1156/120 743/1157/120 735/1145/120 +f 734/1147/124 741/1150/124 733/1146/124 +f 764/1158/157 766/1159/157 768/1160/157 +f 752/1161/158 749/1162/158 750/1163/158 +f 750/1163/159 753/1164/159 752/1161/159 +f 762/1165/160 769/1166/160 770/1167/160 +f 758/1168/158 765/1169/158 764/1158/158 +f 753/1164/119 754/1170/119 752/1161/119 +f 749/1171/161 766/1159/161 765/1169/161 +f 760/1172/158 749/1171/158 765/1169/158 +f 754/1170/162 757/1173/162 756/1174/162 +f 770/1167/119 777/1175/119 771/1176/119 +f 758/1168/158 763/1177/158 756/1174/158 +f 756/1174/163 759/1178/163 758/1168/163 +f 751/1179/158 759/1180/158 755/1181/158 +f 749/1162/164 771/1176/164 767/1182/164 +f 758/1168/117 761/1183/117 760/1172/117 +f 763/1177/165 768/1160/165 769/1166/165 +f 752/1161/158 762/1165/158 748/1184/158 +f 761/1183/166 750/1185/166 760/1172/166 +f 754/1170/158 763/1177/158 762/1165/158 +f 762/1165/167 771/1176/167 748/1184/167 +f 775/1186/168 774/1187/168 772/1188/168 +f 768/1160/163 775/1189/163 769/1166/163 +f 766/1159/166 773/1190/166 772/1191/166 +f 767/1182/159 777/1175/159 773/1192/159 +f 769/1166/162 776/1193/162 770/1167/162 +f 768/1160/117 772/1191/117 774/1194/117 +f 794/1195/169 796/1196/169 798/1197/169 +f 782/1198/170 779/1199/170 780/1200/170 +f 781/1201/171 782/1198/171 780/1200/171 +f 793/1202/172 800/1203/172 792/1204/172 +f 790/1205/170 794/1195/170 788/1206/170 +f 782/1198/119 785/1207/119 784/1208/119 +f 779/1209/173 796/1196/173 795/1210/173 +f 780/1211/170 795/1210/170 790/1205/170 +f 785/1207/174 786/1212/174 784/1208/174 +f 801/1213/119 806/1214/119 807/1215/119 +f 788/1206/170 793/1202/170 786/1212/170 +f 786/1212/175 789/1216/175 788/1206/175 +f 787/1217/170 785/1218/170 781/1219/170 +f 779/1199/176 801/1213/176 797/1220/176 +f 789/1216/117 790/1205/117 788/1206/117 +f 793/1202/177 798/1197/177 799/1221/177 +f 782/1198/170 792/1204/170 778/1222/170 +f 791/1223/178 780/1211/178 790/1205/178 +f 784/1208/170 793/1202/170 792/1204/170 +f 792/1204/179 801/1213/179 778/1222/179 +f 804/1224/180 802/1225/180 807/1226/180 +f 798/1197/175 805/1227/175 799/1221/175 +f 796/1196/178 803/1228/178 802/1229/178 +f 797/1220/171 807/1215/171 803/1230/171 +f 799/1221/174 806/1214/174 800/1203/174 +f 798/1197/117 802/1229/117 804/1231/117 +f 638/1013/181 630/1002/181 634/1003/181 +f 643/965/125 631/964/125 641/1232/125 +f 478/762/117 542/925/117 546/763/117 +f 530/765/118 546/899/118 549/766/118 +f 549/768/119 545/854/119 529/769/119 +f 534/771/118 548/1233/118 551/772/118 +f 491/774/118 495/794/118 496/775/118 +f 488/777/120 489/809/120 490/778/120 +f 485/780/121 487/779/121 490/778/121 +f 484/782/118 489/809/118 488/777/118 +f 510/784/122 514/834/122 513/785/122 +f 509/787/123 512/825/123 511/788/123 +f 494/790/121 498/793/121 497/791/121 +f 498/793/124 496/775/124 495/794/124 +f 492/795/118 501/814/118 499/796/118 +f 486/798/121 500/808/121 502/799/121 +f 483/801/118 503/820/118 505/802/118 +f 493/804/121 506/807/121 504/805/121 +f 505/802/117 503/820/117 504/805/117 +f 499/796/119 501/814/119 502/799/119 +f 499/796/125 500/808/125 490/778/125 +f 498/813/126 502/799/126 501/814/126 +f 495/794/127 505/802/127 506/807/127 +f 488/777/128 487/779/128 504/805/128 +f 507/822/129 515/826/129 516/823/129 +f 508/827/132 518/833/132 519/828/132 +f 510/830/132 517/1234/132 521/831/132 +f 475/835/124 522/839/124 525/836/124 +f 476/838/117 523/841/117 522/839/117 +f 477/840/120 524/843/120 523/841/120 +f 482/842/119 525/1235/119 524/843/119 +f 526/844/117 544/926/117 548/845/117 +f 547/847/119 543/853/119 481/848/119 +f 550/850/118 547/900/118 533/851/118 +f 546/763/120 542/925/120 543/853/120 +f 548/845/120 544/926/120 545/854/120 +f 538/855/118 552/893/118 553/856/118 +f 540/858/118 554/895/118 555/859/118 +f 557/861/119 561/903/119 532/862/119 +f 561/864/118 564/883/118 538/865/118 +f 541/867/118 565/885/118 562/868/118 +f 559/870/119 563/1236/119 536/871/119 +f 531/873/117 560/902/117 556/874/117 +f 563/876/118 560/1237/118 531/877/118 +f 535/879/117 562/901/117 558/880/117 +f 552/888/126 564/883/126 572/889/126 +f 553/856/125 569/894/125 566/891/125 +f 555/859/127 571/898/127 573/892/127 +f 552/893/119 568/905/119 569/894/119 +f 554/895/128 551/772/128 567/896/128 +f 554/895/117 570/897/117 571/898/117 +f 547/900/120 550/850/120 566/891/120 +f 566/891/120 567/896/120 549/766/120 +f 567/896/120 551/772/120 548/1233/120 +f 549/766/120 567/896/120 548/1233/120 +f 549/766/120 546/899/120 566/891/120 +f 562/901/124 563/1236/124 559/870/124 +f 557/861/124 556/874/124 560/902/124 +f 561/864/124 560/1237/124 572/889/124 +f 560/1237/124 563/876/124 572/889/124 +f 563/876/124 562/868/124 573/892/124 +f 562/868/124 565/885/124 573/892/124 +f 573/892/124 572/889/124 563/876/124 +f 570/897/121 576/1238/121 577/904/121 +f 568/905/121 574/1239/121 575/906/121 +f 566/891/135 575/907/135 576/908/135 +f 572/889/136 573/892/136 577/909/136 +f 581/911/119 580/928/119 480/912/119 +f 527/914/117 583/927/117 582/915/117 +f 479/917/117 579/923/117 578/918/117 +f 585/920/119 584/924/119 528/921/119 +f 579/923/118 580/928/118 581/911/118 +f 582/915/118 583/927/118 584/924/118 +f 542/925/137 578/918/137 581/911/137 +f 544/926/137 582/915/137 585/920/137 +f 558/880/138 559/870/138 584/924/138 +f 580/928/138 579/923/138 556/874/138 +f 475/937/118 482/1240/118 477/840/118 +f 586/938/120 588/953/120 589/939/120 +f 588/941/118 590/1241/118 591/942/118 +f 589/946/119 591/1242/119 595/944/119 +f 595/944/119 594/947/119 587/945/119 +f 594/947/121 593/950/121 586/948/121 +f 593/950/124 594/947/124 595/944/124 +f 591/942/138 590/1241/138 592/951/138 +f 588/953/117 586/938/117 592/951/117 +f 586/938/117 593/950/117 592/951/117 +f 628/954/117 635/1012/117 632/955/117 +f 635/957/139 639/1009/139 638/958/139 +f 598/960/140 599/1243/140 601/961/140 +f 615/966/118 596/999/118 617/967/118 +f 601/961/142 603/1244/142 602/969/142 +f 622/970/120 625/980/120 624/971/120 +f 618/973/143 616/1245/143 597/974/143 +f 603/976/144 605/1246/144 604/977/144 +f 620/979/117 627/986/117 625/980/117 +f 617/981/124 596/999/124 597/974/124 +f 604/977/145 605/1246/145 607/983/145 +f 621/985/124 626/992/124 627/986/124 +f 632/955/118 635/1012/118 634/987/118 +f 606/984/146 607/983/146 609/989/146 +f 623/991/119 624/1247/119 626/992/119 +f 614/975/120 615/966/120 619/993/120 +f 609/989/147 611/1000/147 610/995/147 +f 603/998/119 601/1248/119 611/1249/119 +f 601/1248/119 599/1250/119 611/1249/119 +f 599/1250/119 613/1251/119 611/1249/119 +f 611/1249/119 609/1252/119 603/998/119 +f 609/1252/119 607/996/119 603/998/119 +f 596/999/117 615/966/117 614/975/117 +f 611/1000/148 613/1004/148 612/1001/148 +f 630/1002/121 628/954/121 629/956/121 +f 631/964/149 633/963/149 634/1003/149 +f 613/1004/150 599/1243/150 598/960/150 +f 612/1007/117 598/1253/117 600/1254/117 +f 600/1254/117 602/1255/117 604/1005/117 +f 604/1005/117 606/1256/117 608/1006/117 +f 608/1006/117 610/1257/117 612/1007/117 +f 612/1007/117 600/1254/117 604/1005/117 +f 636/1008/124 638/958/124 639/1009/124 +f 628/954/121 630/1002/121 636/1011/121 +f 628/954/117 637/1010/117 639/1009/117 +f 640/1015/120 642/1019/120 643/1016/120 +f 632/1018/151 633/1258/151 643/1016/151 +f 629/956/121 640/1015/121 641/1020/121 +f 629/956/117 632/955/117 642/1019/117 +f 646/1021/119 647/1030/119 644/1022/119 +f 662/1024/118 663/1047/118 660/1025/118 +f 645/1023/124 644/1022/124 650/1027/124 +f 646/1021/120 649/1259/120 648/1029/120 +f 645/1023/152 651/1260/152 649/1031/152 +f 647/1030/118 648/1261/118 650/1032/118 +f 658/1033/118 659/1037/118 656/1034/118 +f 654/1036/120 656/1043/120 659/1037/120 +f 653/1039/124 658/1033/124 657/1040/124 +f 655/1038/119 659/1037/119 658/1033/119 +f 652/1042/117 657/1262/117 656/1043/117 +f 664/1044/121 667/1051/121 666/1045/121 +f 666/1045/119 667/1051/119 663/1047/119 +f 664/1048/117 665/1263/117 661/1049/117 +f 667/1051/120 664/1048/120 660/1050/120 +f 661/1052/124 665/1264/124 666/1045/124 +f 674/1053/117 678/1265/117 676/1054/117 +f 670/1056/117 674/1053/117 672/1055/117 +f 671/1058/121 675/1062/121 674/1059/121 +f 671/1058/119 669/1063/119 673/1061/119 +f 668/1057/153 672/1055/153 673/1061/153 +f 676/1054/124 678/1266/124 679/1064/124 +f 675/1062/154 679/1067/154 678/1066/154 +f 675/1062/119 673/1061/119 677/1065/119 +f 672/1055/153 676/1054/153 677/1065/153 +f 686/1068/117 684/1072/117 688/1069/117 +f 682/1071/117 680/1078/117 684/1072/117 +f 682/1071/121 686/1068/121 687/1073/121 +f 683/1075/119 687/1082/119 685/1076/119 +f 681/1077/155 685/1076/155 684/1072/155 +f 688/1069/120 689/1083/120 691/1079/120 +f 686/1068/156 690/1070/156 691/1081/156 +f 687/1082/119 691/1267/119 689/1083/119 +f 684/1072/155 685/1076/155 689/1083/155 +f 692/1084/140 693/1103/140 695/1085/140 +f 694/1086/142 695/1085/142 697/1087/142 +f 697/1089/144 699/1092/144 698/1090/144 +f 699/1092/145 701/1094/145 700/1093/145 +f 701/1094/146 703/1096/146 702/1095/146 +f 703/1096/147 705/1101/147 704/1097/147 +f 697/1099/119 695/1268/119 705/1100/119 +f 695/1268/119 693/1269/119 705/1100/119 +f 693/1269/119 707/1270/119 705/1100/119 +f 705/1100/119 703/1271/119 701/1272/119 +f 701/1272/119 699/1098/119 705/1100/119 +f 705/1101/148 707/1273/148 706/1102/148 +f 706/1102/150 707/1273/150 693/1103/150 +f 706/1104/117 692/1274/117 694/1105/117 +f 694/1105/117 696/1275/117 698/1106/117 +f 698/1106/117 700/1276/117 702/1277/117 +f 702/1277/117 704/1278/117 698/1106/117 +f 704/1278/117 706/1104/117 698/1106/117 +f 714/1107/124 715/1111/124 712/1108/124 +f 710/1110/118 712/1108/118 715/1111/118 +f 709/1113/121 714/1107/121 713/1109/121 +f 711/1115/119 715/1111/119 714/1107/119 +f 708/1117/117 713/1109/117 712/1108/117 +f 731/1119/137 728/1136/137 736/1120/137 +f 725/1122/117 733/1146/117 732/1123/117 +f 723/1125/119 731/1119/119 730/1126/119 +f 720/1128/117 729/1137/117 728/1129/117 +f 719/1131/119 727/1139/119 726/1132/119 +f 716/1134/117 725/1122/117 724/1124/117 +f 723/1125/120 722/1279/120 728/1136/120 +f 721/1127/124 730/1126/124 729/1137/124 +f 719/1131/120 718/1280/120 724/1138/120 +f 717/1133/124 726/1132/124 725/1122/124 +f 737/1140/117 745/1152/117 744/1141/117 +f 739/1121/119 747/1155/119 746/1143/119 +f 729/1137/136 730/1126/136 738/1144/136 +f 724/1138/137 732/1156/137 735/1145/137 +f 726/1132/136 734/1147/136 733/1146/136 +f 730/1126/119 731/1119/119 739/1121/119 +f 729/1137/117 737/1140/117 736/1142/117 +f 726/1132/119 727/1139/119 735/1145/119 +f 742/1148/118 743/1281/118 740/1149/118 +f 746/1143/118 747/1282/118 744/1151/118 +f 735/1145/119 743/1157/119 742/1148/119 +f 733/1146/117 741/1150/117 740/1153/117 +f 739/1121/120 736/1120/120 744/1154/120 +f 738/1144/124 746/1143/124 745/1152/124 +f 732/1156/120 740/1283/120 743/1157/120 +f 734/1147/124 742/1148/124 741/1150/124 +f 764/1158/157 765/1169/157 766/1159/157 +f 752/1161/158 748/1184/158 749/1162/158 +f 750/1163/159 751/1284/159 753/1164/159 +f 762/1165/160 763/1177/160 769/1166/160 +f 758/1168/158 760/1172/158 765/1169/158 +f 753/1164/119 755/1285/119 754/1170/119 +f 749/1171/161 767/1286/161 766/1159/161 +f 760/1172/158 750/1185/158 749/1171/158 +f 754/1170/162 755/1285/162 757/1173/162 +f 770/1167/119 776/1193/119 777/1175/119 +f 758/1168/158 764/1158/158 763/1177/158 +f 756/1174/163 757/1173/163 759/1178/163 +f 755/1181/158 753/1287/158 751/1179/158 +f 751/1179/158 761/1288/158 759/1180/158 +f 759/1180/158 757/1289/158 755/1181/158 +f 749/1162/164 748/1184/164 771/1176/164 +f 758/1168/117 759/1178/117 761/1183/117 +f 763/1177/165 764/1158/165 768/1160/165 +f 752/1161/158 754/1170/158 762/1165/158 +f 761/1183/166 751/1290/166 750/1185/166 +f 754/1170/158 756/1174/158 763/1177/158 +f 762/1165/167 770/1167/167 771/1176/167 +f 772/1188/168 773/1291/168 775/1186/168 +f 773/1291/168 777/1292/168 775/1186/168 +f 777/1292/168 776/1293/168 775/1186/168 +f 768/1160/163 774/1194/163 775/1189/163 +f 766/1159/166 767/1286/166 773/1190/166 +f 767/1182/159 771/1176/159 777/1175/159 +f 769/1166/162 775/1189/162 776/1193/162 +f 768/1160/117 766/1159/117 772/1191/117 +f 794/1195/169 795/1210/169 796/1196/169 +f 782/1198/170 778/1222/170 779/1199/170 +f 781/1201/171 783/1294/171 782/1198/171 +f 793/1202/172 799/1221/172 800/1203/172 +f 790/1205/170 795/1210/170 794/1195/170 +f 782/1198/119 783/1294/119 785/1207/119 +f 779/1209/173 797/1295/173 796/1196/173 +f 780/1211/170 779/1209/170 795/1210/170 +f 785/1207/174 787/1296/174 786/1212/174 +f 801/1213/119 800/1203/119 806/1214/119 +f 788/1206/170 794/1195/170 793/1202/170 +f 786/1212/175 787/1296/175 789/1216/175 +f 785/1218/170 783/1297/170 781/1219/170 +f 781/1219/170 791/1298/170 789/1299/170 +f 789/1299/170 787/1217/170 781/1219/170 +f 779/1199/176 778/1222/176 801/1213/176 +f 789/1216/117 791/1223/117 790/1205/117 +f 793/1202/177 794/1195/177 798/1197/177 +f 782/1198/170 784/1208/170 792/1204/170 +f 791/1223/178 781/1300/178 780/1211/178 +f 784/1208/170 786/1212/170 793/1202/170 +f 792/1204/179 800/1203/179 801/1213/179 +f 802/1225/180 803/1301/180 807/1226/180 +f 807/1226/180 806/1302/180 805/1303/180 +f 805/1303/180 804/1224/180 807/1226/180 +f 798/1197/175 804/1231/175 805/1227/175 +f 796/1196/178 797/1295/178 803/1228/178 +f 797/1220/171 801/1213/171 807/1215/171 +f 799/1221/174 805/1227/174 806/1214/174 +f 798/1197/117 796/1196/117 802/1229/117 From fb09867517458a161dddb0cfd5d1e12deab6a0e1 Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 12 Sep 2023 14:46:17 +0200 Subject: [PATCH 301/432] stuff the world doesn't need --- src/main/java/com/hbm/blocks/ModBlocks.java | 3 +++ .../hbm/blocks/network/BlockConveyorExpress.java | 12 ++++++++++++ src/main/java/com/hbm/main/CraftingManager.java | 1 + src/main/resources/assets/hbm/lang/de_DE.lang | 3 +++ src/main/resources/assets/hbm/lang/en_US.lang | 3 +++ .../hbm/textures/blocks/conveyor_express.png | Bin 0 -> 921 bytes .../textures/blocks/conveyor_express.png.mcmeta | 3 +++ .../blocks/conveyor_express_curve_left.png | Bin 0 -> 3495 bytes .../conveyor_express_curve_left.png.mcmeta | 3 +++ .../blocks/conveyor_express_curve_right.png | Bin 0 -> 3321 bytes .../conveyor_express_curve_right.png.mcmeta | 3 +++ 11 files changed, 31 insertions(+) create mode 100644 src/main/java/com/hbm/blocks/network/BlockConveyorExpress.java create mode 100644 src/main/resources/assets/hbm/textures/blocks/conveyor_express.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/conveyor_express.png.mcmeta create mode 100644 src/main/resources/assets/hbm/textures/blocks/conveyor_express_curve_left.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/conveyor_express_curve_left.png.mcmeta create mode 100644 src/main/resources/assets/hbm/textures/blocks/conveyor_express_curve_right.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/conveyor_express_curve_right.png.mcmeta diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 723931983..7601d719a 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -806,6 +806,7 @@ public class ModBlocks { public static Block radio_telex; public static Block conveyor; + public static Block conveyor_express; //public static Block conveyor_classic; public static Block conveyor_double; public static Block conveyor_triple; @@ -1984,6 +1985,7 @@ public class ModBlocks { radio_telex = new RadioTelex().setBlockName("radio_telex").setHardness(3F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":radio_telex"); conveyor = new BlockConveyor().setBlockName("conveyor").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor"); + conveyor_express = new BlockConveyorExpress().setBlockName("conveyor_express").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor_express"); //conveyor_classic = new BlockConveyorClassic().setBlockName("conveyor_classic").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor"); conveyor_double = new BlockConveyorDouble().setBlockName("conveyor_double").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor_double"); conveyor_triple = new BlockConveyorTriple().setBlockName("conveyor_triple").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor_triple"); @@ -3250,6 +3252,7 @@ public class ModBlocks { register(crane_boxer); register(crane_unboxer); register(conveyor); + register(conveyor_express); register(conveyor_double); register(conveyor_triple); register(conveyor_chute); diff --git a/src/main/java/com/hbm/blocks/network/BlockConveyorExpress.java b/src/main/java/com/hbm/blocks/network/BlockConveyorExpress.java new file mode 100644 index 000000000..0041da992 --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/BlockConveyorExpress.java @@ -0,0 +1,12 @@ +package com.hbm.blocks.network; + +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public class BlockConveyorExpress extends BlockConveyorBendable { + + @Override + public Vec3 getTravelLocation(World world, int x, int y, int z, Vec3 itemPos, double speed) { + return super.getTravelLocation(world, x, y, z, itemPos, speed * 3); + } +} diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 1096a4c18..4d29c4ee7 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -259,6 +259,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.conveyor, 16), new Object[] { "LLL", "I I", "LLL", 'L', Items.leather, 'I', IRON.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.conveyor, 16), new Object[] { "RSR", "I I", "RSR", 'I', IRON.ingot(), 'R', DictFrame.fromOne(ModItems.plant_item, EnumPlantType.ROPE), 'S', IRON.plate() }); addRecipeAuto(new ItemStack(ModBlocks.conveyor, 64), new Object[] { "LLL", "I I", "LLL", 'L', RUBBER.ingot(), 'I', IRON.ingot() }); + addRecipeAuto(new ItemStack(ModBlocks.conveyor_express, 16), new Object[] { "CCC", "CLC", "CCC", 'C', ModBlocks.conveyor, 'L', Fluids.LUBRICANT.getDict(1_000) }); addRecipeAuto(new ItemStack(ModBlocks.conveyor_double, 3), new Object[] { "CPC", "CPC", "CPC", 'C', ModBlocks.conveyor, 'P', IRON.plate() }); addRecipeAuto(new ItemStack(ModBlocks.conveyor_triple, 3), new Object[] { "CPC", "CPC", "CPC", 'C', ModBlocks.conveyor_double, 'P', STEEL.plate() }); addRecipeAuto(new ItemStack(ModBlocks.conveyor_chute, 3), new Object[] { "IGI", "IGI", "ICI" , 'I', IRON.ingot(), 'G', ModBlocks.steel_grate, 'C', ModBlocks.conveyor }); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index a82e8db40..682604c76 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -3653,6 +3653,7 @@ tile.capacitor_bus.desc=Output für Kondensatoren$Kann in einer geraden Linie an tile.capacitor_copper.name=Kupferkondensator tile.capacitor_gold.name=Goldkondensator tile.capacitor_niobium.name=Niobkondensator +tile.capacitor_schrabidate.name=Schrabidatkondensator tile.capacitor_tantalium.name=Tantalkondensator tile.capacitor.desc=Input: Oben$Output: Unten, über Kondensator-Bus tile.charge_c4.name=Abrissladung @@ -3721,6 +3722,8 @@ tile.conveyor_chute.name=Förderschütte tile.conveyor_chute.desc=Bewegt Items nach unten$Die unterste Schütte verhält sich wie ein normales Förderband tile.conveyor_double.name=Zweispuriges Förderband tile.conveyor_double.desc=Bewegt Items$Kann mit Schraubenzieher im Uhrzeigersinn gedreht werden$Shiftclick umdas Band zu biegen +tile.conveyor_express.name=Expressförderband +tile.conveyor_express.desc=Bewegt Items sehr schnell$Kann mit Schraubenzieher im Uhrzeigersinn gedreht werden$Shiftclick umdas Band zu biegen tile.conveyor_lift.name=Kettenaufzug tile.conveyor_lift.desc=Bewegt Items nach oben$Benötigt mindestens zwei Aufzüge übereinander um richtig zu funktionieren tile.conveyor_triple.name=Dreispuriges Förderband diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 46c98ba3e..ad1c176bb 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -4600,6 +4600,7 @@ tile.capacitor_bus.desc=Output block for capacitors$Can be chained up in a strai tile.capacitor_copper.name=Copper Capacitor tile.capacitor_gold.name=Golden Capacitor tile.capacitor_niobium.name=Niobium Capacitor +tile.capacitor_schrabidate.name=Schrabidate Capacitor tile.capacitor_tantalium.name=Tantalium Capacitor tile.capacitor.desc=Input: Top$Output: Bottom, via Capacitor Bus tile.charge_c4.name=Demolition Charge @@ -4692,6 +4693,8 @@ tile.conveyor_chute.name=Conveyor Chute tile.conveyor_chute.desc=Moves items down$The bottom-most chute will act like a regular conveyor belt tile.conveyor_double.name=Double-Lane Conveyor Belt tile.conveyor_double.desc=Moves items dropped on it$Can be rotated clockwise with a screwdriver$Shift-click with screwdriver to bend +tile.conveyor_express.name=Express Conveyor Belt +tile.conveyor_express.desc=Moves items dropped on it very fast$Can be rotated clockwise with a screwdriver$Shift-click with screwdriver to bend tile.conveyor_lift.name=Conveyor Chain Lift tile.conveyor_lift.desc=Moves items up$Requires at least two blocks on top of each other to work properly tile.conveyor_triple.name=Triple-Lane Conveyor Belt diff --git a/src/main/resources/assets/hbm/textures/blocks/conveyor_express.png b/src/main/resources/assets/hbm/textures/blocks/conveyor_express.png new file mode 100644 index 0000000000000000000000000000000000000000..df5c9a664bf705b75409371b676cbc4110338757 GIT binary patch literal 921 zcmV;K17`e*P)EK|00004b3#c}2nYxW zd5Z5?`l~!1pfE}68S}+LMNx{r&MaiiG10#_@}aQ5H%q!GwhXJ=>MKYe)3 zyKyeo>}EXUYE#sIU~jIY4%{;&-& zI7k2}%aSxr+1uMANs=|k#bQBKRn&D&p63h?-vA4CcK3(eUrh1dQxpZU$rS;twODHb zm`o-N4ic90n>GUg=Nxx;cVW%qELoIgi7_V3kFMVXtTeFJlIQu88N_qmd%j-Xwi+zw zP0--{{G2pR$+8UZeQ-*W_VcY8#L(*ED#%_BiLbyu93S*j5km+|KU) zkml-^BWpvdqWZ6N_$C2F#3V_WOeUmh%6L4+ITv*3YGAG9@!GFM6gxdV4dZyr;<;{C zp%Tloq%6xd=U;KrTpavDT^6jhVM$q*0q`HNoHwgoh&AxOeJ>hFHdR&O zoWolCvkq=r4VtT40P;NF*v5D_vMdXAAU*?Gg7<#I8Cpi1a~NaRfEt~=U5O|sDohH~ z3x+8aQoR0n-J*QFr1qS5s{nuY$5pP>g~xlpQApcNVN#eBrrva_10ZaP^a9Sg4Kc-x zF(gUC=;ZCHkQ63`Np?Z9c!4nWpi><{yN$Bm?lCSRajff_`-^F-fx@IPp)f&zI@P#8 z*oLx<#Zh2d&L0#eg-KzGGw4C5DkdyEMdNrp23i^$sYKBLltxe*mBwe?>b4p@V2oM& zKQNt6HH<-B2Zas+${>Bo-UEV`yJDNI2Fc-b(?3D37v9qjH8 zLm`RDJ%pz$4z4gMObSzPI@JNJo-GoS^yMY*XR}!dcz@CUpHP?-CWVQ05ub6VDjyU@ z5th&`Ww~lqRX|Ja7cFHi<^NYHYoGWVe%j*al_lNSIX-sBfWm~rq%ifTPh8F$hKGLv zFr7{}bPzGqG^MWVa3A8^K?2+;ObXK~z)OcoH0VL68mr!Q5{u^pji4~ei3*d#^t?OO v!A5x6N{h`Hv-LY-Id2pug$aeJH=XJa5dQ-mcLDsZ00000NkvXXu0mjfO?IV0 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/conveyor_express.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/conveyor_express.png.mcmeta new file mode 100644 index 000000000..df9cfce6e --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/conveyor_express.png.mcmeta @@ -0,0 +1,3 @@ +{ + "animation": { } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/conveyor_express_curve_left.png b/src/main/resources/assets/hbm/textures/blocks/conveyor_express_curve_left.png new file mode 100644 index 0000000000000000000000000000000000000000..dc1fd209b4a9a046083f4c333b4501a47bf2c3bf GIT binary patch literal 3495 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 xq?a1+^5#cBo7+t Date: Tue, 12 Sep 2023 15:00:33 +0200 Subject: [PATCH 302/432] Make ModSoundType more versatile - Fine-grained control over block sound subtypes - Allows copying from existing sounds - Volume and pitch envelopes Also moved custom sound types into their own class. --- src/main/java/com/hbm/blocks/ModBlocks.java | 90 +++++----- .../java/com/hbm/blocks/ModSoundType.java | 158 +++++++++++++++++- .../java/com/hbm/blocks/ModSoundTypes.java | 7 + 3 files changed, 199 insertions(+), 56 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/ModSoundTypes.java diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 7601d719a..196925a44 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1,38 +1,37 @@ package com.hbm.blocks; -import com.hbm.blocks.generic.*; -import com.hbm.blocks.generic.BlockHazard.ExtDisplayEffect; -import com.hbm.blocks.generic.BlockMotherOfAllOres.ItemRandomOreBlock; import com.hbm.blocks.BlockEnums.*; import com.hbm.blocks.bomb.*; import com.hbm.blocks.fluid.*; import com.hbm.blocks.gas.*; +import com.hbm.blocks.generic.*; +import com.hbm.blocks.generic.BlockHazard.ExtDisplayEffect; +import com.hbm.blocks.generic.BlockMotherOfAllOres.ItemRandomOreBlock; import com.hbm.blocks.machine.*; import com.hbm.blocks.machine.pile.*; import com.hbm.blocks.machine.rbmk.*; import com.hbm.blocks.network.*; -import com.hbm.blocks.rail.RailNarrowCurve; -import com.hbm.blocks.rail.RailNarrowStraight; -import com.hbm.blocks.rail.RailStandardBuffer; -import com.hbm.blocks.rail.RailStandardCurve; -import com.hbm.blocks.rail.RailStandardRamp; -import com.hbm.blocks.rail.RailStandardStraight; -import com.hbm.blocks.siege.*; +import com.hbm.blocks.rail.*; +import com.hbm.blocks.siege.SiegeCircuit; +import com.hbm.blocks.siege.SiegeHole; +import com.hbm.blocks.siege.SiegeInternal; +import com.hbm.blocks.siege.SiegeShield; import com.hbm.blocks.test.*; import com.hbm.blocks.turret.*; import com.hbm.items.block.*; -import com.hbm.items.bomb.*; +import com.hbm.items.bomb.ItemPrototypeBlock; import com.hbm.items.special.ItemOreBlock; import com.hbm.lib.ModDamageSource; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.tileentity.DoorDecl; import com.hbm.tileentity.machine.storage.TileEntityFileCabinet; - import cpw.mods.fml.common.registry.GameRegistry; import net.minecraft.block.Block; import net.minecraft.block.BlockFalling; -import net.minecraft.block.material.*; +import net.minecraft.block.material.MapColor; +import net.minecraft.block.material.Material; +import net.minecraft.block.material.MaterialLiquid; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.ItemBlock; import net.minecraftforge.fluids.Fluid; @@ -1263,19 +1262,6 @@ public class ModBlocks { public static Material materialGas = new MaterialGas(); - public static Block.SoundType soundTypeGrate = new ModSoundType("metalBlock", 0.5F, 1.0F) { - - @Override - public String func_150496_b() { - return Block.soundTypeMetal.func_150496_b(); - } - - @Override - public String getBreakSound() { - return "dig.stone"; - } - }; - private static void initializeBlock() { test_render = new TestRender(Material.rock).setBlockName("test_render").setCreativeTab(null); @@ -1676,33 +1662,33 @@ public class ModBlocks { steel_roof = new DecoBlock(Material.iron).setBlockName("steel_roof").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":steel_roof"); steel_beam = new DecoBlock(Material.iron).setBlockName("steel_beam").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":steel_beam"); steel_scaffold = new BlockScaffold().setBlockName("steel_scaffold").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":deco_steel_orig"); - steel_grate = new BlockGrate(Material.iron).setBlockName("steel_grate").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F); - steel_grate_wide = new BlockGrate(Material.iron).setBlockName("steel_grate_wide").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F); + steel_grate = new BlockGrate(Material.iron).setBlockName("steel_grate").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F); + steel_grate_wide = new BlockGrate(Material.iron).setBlockName("steel_grate_wide").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F); - deco_pipe = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side", 0).setBlockName("deco_pipe").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top"); - deco_pipe_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_rusty", 0).setBlockName("deco_pipe_rusted").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_rusty"); - deco_pipe_green = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green", 0).setBlockName("deco_pipe_green").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green"); - deco_pipe_green_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green_rusty", 0).setBlockName("deco_pipe_green_rusted").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green_rusty"); - deco_pipe_red = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_red", 0).setBlockName("deco_pipe_red").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_red"); - deco_pipe_marked = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_marked", 0).setBlockName("deco_pipe_marked").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_marked"); - deco_pipe_rim = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side", 1).setBlockName("deco_pipe_rim").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top"); - deco_pipe_rim_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_rusty", 1).setBlockName("deco_pipe_rim_rusted").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_rusty"); - deco_pipe_rim_green = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green", 1).setBlockName("deco_pipe_rim_green").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green"); - deco_pipe_rim_green_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green_rusty", 1).setBlockName("deco_pipe_rim_green_rusted").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green_rusty"); - deco_pipe_rim_red = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_red", 1).setBlockName("deco_pipe_rim_red").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_red"); - deco_pipe_rim_marked = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_marked", 1).setBlockName("deco_pipe_rim_marked").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_marked"); - deco_pipe_framed = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side", 3).setBlockName("deco_pipe_framed").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top"); - deco_pipe_framed_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_rusty", 3).setBlockName("deco_pipe_framed_rusted").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_rusty"); - deco_pipe_framed_green = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green", 3).setBlockName("deco_pipe_framed_green").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green"); - deco_pipe_framed_green_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green_rusty", 3).setBlockName("deco_pipe_framed_green_rusted").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green_rusty"); - deco_pipe_framed_red = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_red", 3).setBlockName("deco_pipe_framed_red").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_red"); - deco_pipe_framed_marked = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_marked", 3).setBlockName("deco_pipe_framed_marked").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_marked"); - deco_pipe_quad = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side", 2).setBlockName("deco_pipe_quad").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top"); - deco_pipe_quad_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_rusty", 2).setBlockName("deco_pipe_quad_rusted").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_rusty"); - deco_pipe_quad_green = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green", 2).setBlockName("deco_pipe_quad_green").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green"); - deco_pipe_quad_green_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green_rusty", 2).setBlockName("deco_pipe_quad_green_rusted").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green_rusty"); - deco_pipe_quad_red = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_red", 2).setBlockName("deco_pipe_quad_red").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_red"); - deco_pipe_quad_marked = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_marked", 2).setBlockName("deco_pipe_quad_marked").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_marked"); + deco_pipe = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side", 0).setBlockName("deco_pipe").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top"); + deco_pipe_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_rusty", 0).setBlockName("deco_pipe_rusted").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_rusty"); + deco_pipe_green = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green", 0).setBlockName("deco_pipe_green").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green"); + deco_pipe_green_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green_rusty", 0).setBlockName("deco_pipe_green_rusted").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green_rusty"); + deco_pipe_red = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_red", 0).setBlockName("deco_pipe_red").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_red"); + deco_pipe_marked = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_marked", 0).setBlockName("deco_pipe_marked").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_marked"); + deco_pipe_rim = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side", 1).setBlockName("deco_pipe_rim").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top"); + deco_pipe_rim_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_rusty", 1).setBlockName("deco_pipe_rim_rusted").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_rusty"); + deco_pipe_rim_green = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green", 1).setBlockName("deco_pipe_rim_green").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green"); + deco_pipe_rim_green_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green_rusty", 1).setBlockName("deco_pipe_rim_green_rusted").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green_rusty"); + deco_pipe_rim_red = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_red", 1).setBlockName("deco_pipe_rim_red").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_red"); + deco_pipe_rim_marked = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_marked", 1).setBlockName("deco_pipe_rim_marked").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_marked"); + deco_pipe_framed = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side", 3).setBlockName("deco_pipe_framed").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top"); + deco_pipe_framed_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_rusty", 3).setBlockName("deco_pipe_framed_rusted").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_rusty"); + deco_pipe_framed_green = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green", 3).setBlockName("deco_pipe_framed_green").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green"); + deco_pipe_framed_green_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green_rusty", 3).setBlockName("deco_pipe_framed_green_rusted").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green_rusty"); + deco_pipe_framed_red = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_red", 3).setBlockName("deco_pipe_framed_red").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_red"); + deco_pipe_framed_marked = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_marked", 3).setBlockName("deco_pipe_framed_marked").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_marked"); + deco_pipe_quad = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side", 2).setBlockName("deco_pipe_quad").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top"); + deco_pipe_quad_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_rusty", 2).setBlockName("deco_pipe_quad_rusted").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_rusty"); + deco_pipe_quad_green = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green", 2).setBlockName("deco_pipe_quad_green").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green"); + deco_pipe_quad_green_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green_rusty", 2).setBlockName("deco_pipe_quad_green_rusted").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green_rusty"); + deco_pipe_quad_red = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_red", 2).setBlockName("deco_pipe_quad_red").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_red"); + deco_pipe_quad_marked = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_marked", 2).setBlockName("deco_pipe_quad_marked").setStepSound(ModSoundTypes.grate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_marked"); broadcaster_pc = new PinkCloudBroadcaster(Material.iron).setBlockName("broadcaster_pc").setCreativeTab(MainRegistry.machineTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":broadcaster_pc"); geiger = new GeigerCounter(Material.iron).setBlockName("geiger").setCreativeTab(MainRegistry.machineTab).setHardness(15.0F).setResistance(0.25F).setBlockTextureName(RefStrings.MODID + ":geiger"); diff --git a/src/main/java/com/hbm/blocks/ModSoundType.java b/src/main/java/com/hbm/blocks/ModSoundType.java index 331a7e27a..0bd8e8a46 100644 --- a/src/main/java/com/hbm/blocks/ModSoundType.java +++ b/src/main/java/com/hbm/blocks/ModSoundType.java @@ -2,18 +2,168 @@ package com.hbm.blocks; import net.minecraft.block.Block; +import java.util.Random; + public class ModSoundType extends Block.SoundType { + protected final String placeSound; + protected final String breakSound; + protected final String stepSound; - public ModSoundType(String name, float volume, float pitch) { - super(name, volume, pitch); + protected ModSoundType(String placeSound, String breakSound, String stepSound, float volume, float pitch) { + super("", volume, pitch); + this.placeSound = placeSound; + this.breakSound = breakSound; + this.stepSound = stepSound; } + public ModEnvelopedSoundType enveloped() { + return new ModEnvelopedSoundType(placeSound, breakSound, stepSound, volume, frequency); + } + + public ModEnvelopedSoundType enveloped(Random random) { + return new ModEnvelopedSoundType(placeSound, breakSound, stepSound, volume, frequency, random); + } + + @Override + public String func_150496_b() { + return placeSound; + } + + @Override public String getBreakSound() { - return "hbm:" + super.getBreakSound(); + return breakSound; } + @Override public String getStepResourcePath() { - return "hbm:" + super.getStepResourcePath(); + return stepSound; } + // creates a sound type with vanilla-like sound strings name-spaced to the mod + public static ModSoundType mod(String soundName, float volume, float pitch) { + return new ModSoundType(modDig(soundName), modDig(soundName), modStep(soundName), volume, pitch); + } + + // these permutations allow creating a sound type with one of the three sounds being custom + // and the other ones defaulting to vanilla-like sound strings name-spaced to the mod + + public static ModSoundType customPlace(String soundName, String placeSound, float volume, float pitch) { + return new ModSoundType(placeSound, modDig(soundName), modStep(soundName), volume, pitch); + } + + public static ModSoundType customBreak(String soundName, String breakSound, float volume, float pitch) { + return new ModSoundType(modDig(soundName), breakSound, modStep(soundName), volume, pitch); + } + + public static ModSoundType customStep(String soundName, String stepSound, float volume, float pitch) { + return new ModSoundType(modDig(soundName), modDig(soundName), stepSound, volume, pitch); + } + + public static ModSoundType customDig(String soundName, String digSound, float volume, float pitch) { + return new ModSoundType(digSound, digSound, modStep(soundName), volume, pitch); + } + + // these permutations copy sounds from an existing sound type and modify one of the sounds, + // but with a manual path for the custom sound + + public static ModSoundType customPlace(Block.SoundType from, String placeSound, float volume, float pitch) { + return new ModSoundType(placeSound, from.getBreakSound(), from.getStepResourcePath(), volume, pitch); + } + + public static ModSoundType customBreak(Block.SoundType from, String breakSound, float volume, float pitch) { + return new ModSoundType(from.func_150496_b(), breakSound, from.getStepResourcePath(), volume, pitch); + } + + public static ModSoundType customStep(Block.SoundType from, String stepSound, float volume, float pitch) { + return new ModSoundType(from.func_150496_b(), from.getBreakSound(), stepSound, volume, pitch); + } + + public static ModSoundType customDig(Block.SoundType from, String dig, float volume, float pitch) { + return new ModSoundType(dig, dig, from.getStepResourcePath(), volume, pitch); + } + + // customizes all sounds + public static ModSoundType placeBreakStep(String placeSound, String breakSound, String stepSound, float volume, float pitch) { + return new ModSoundType(placeSound, breakSound, stepSound, volume, pitch); + } + + private static String modDig(String soundName) { + return "hbm:dig." + soundName; + } + + private static String modStep(String soundName) { + return "hbm:step." + soundName; + } + + public static class ModEnvelopedSoundType extends ModSoundType { + private final Random random; + + ModEnvelopedSoundType(String placeSound, String breakSound, String stepSound, float volume, float pitch, Random random) { + super(placeSound, breakSound, stepSound, volume, pitch); + this.random = random; + } + + ModEnvelopedSoundType(String placeSound, String breakSound, String stepSound, float volume, float pitch) { + this(placeSound, breakSound, stepSound, volume, pitch, new Random()); + } + + // a bit of a hack, but most of the time, playSound is called with the sound path queried first, and then volume and pitch + private SubType probableSubType = SubType.PLACE; + + @Override + public String func_150496_b() { + probableSubType = SubType.PLACE; + return super.func_150496_b(); + } + + @Override + public String getBreakSound() { + probableSubType = SubType.BREAK; + return super.getBreakSound(); + } + + @Override + public String getStepResourcePath() { + probableSubType = SubType.STEP; + return super.getStepResourcePath(); + } + + private Envelope volumeEnvelope = null; + private Envelope pitchEnvelope = null; + + public ModEnvelopedSoundType volumeFunction(Envelope volumeEnvelope) { + this.volumeEnvelope = volumeEnvelope; + return this; + } + + public ModEnvelopedSoundType pitchFunction(Envelope pitchEnvelope) { + this.pitchEnvelope = pitchEnvelope; + return this; + } + + @Override + public float getVolume() { + if (volumeEnvelope == null) + return super.getVolume(); + else + return volumeEnvelope.compute(super.getVolume(), random, probableSubType); + } + + @Override + public float getPitch() { + if (pitchEnvelope == null) + return super.getPitch(); + else + return pitchEnvelope.compute(super.getPitch(), random, probableSubType); + } + + @FunctionalInterface + public interface Envelope { + float compute(float in, Random rand, SubType type); + } + } + + public enum SubType { + PLACE, BREAK, STEP + } } diff --git a/src/main/java/com/hbm/blocks/ModSoundTypes.java b/src/main/java/com/hbm/blocks/ModSoundTypes.java new file mode 100644 index 000000000..2b4213cd4 --- /dev/null +++ b/src/main/java/com/hbm/blocks/ModSoundTypes.java @@ -0,0 +1,7 @@ +package com.hbm.blocks; + +import net.minecraft.block.Block; + +class ModSoundTypes { + static final ModSoundType grate = ModSoundType.customStep(Block.soundTypeStone, "hbm:step.metalBlock", 0.5F, 1.0F); +} From 283569d28f985897dc237018f2b53aa39121dd70 Mon Sep 17 00:00:00 2001 From: MartinTheDragon Date: Tue, 12 Sep 2023 15:25:13 +0200 Subject: [PATCH 303/432] Play pipe sound when placing default ducts --- src/main/java/com/hbm/blocks/ModBlocks.java | 2 +- .../java/com/hbm/blocks/ModSoundTypes.java | 2 + .../com/hbm/items/machine/ItemFluidDuct.java | 7 +- src/main/java/com/hbm/main/MainRegistry.java | 140 +++++++++--------- 4 files changed, 73 insertions(+), 78 deletions(-) diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 196925a44..868165597 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1958,7 +1958,7 @@ public class ModBlocks { machine_detector = new PowerDetector(Material.iron).setBlockName("machine_detector").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_detector_off"); fluid_duct = new BlockFluidDuct(Material.iron).setBlockName("fluid_duct").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":fluid_duct_icon"); fluid_duct_solid = new BlockFluidDuctSolid(Material.iron).setBlockName("fluid_duct_solid").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":fluid_duct_solid"); - fluid_duct_neo = new FluidDuctStandard(Material.iron).setBlockName("fluid_duct_neo").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pipe_neo"); + fluid_duct_neo = new FluidDuctStandard(Material.iron).setBlockName("fluid_duct_neo").setStepSound(ModSoundTypes.pipe).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pipe_neo"); fluid_duct_box = new FluidDuctBox(Material.iron).setBlockName("fluid_duct_box").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fluid_duct_box"); fluid_duct_exhaust = new FluidDuctBoxExhaust(Material.iron).setBlockName("fluid_duct_exhaust").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fluid_duct_box"); fluid_duct_paintable = new FluidDuctPaintable().setBlockName("fluid_duct_paintable").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); diff --git a/src/main/java/com/hbm/blocks/ModSoundTypes.java b/src/main/java/com/hbm/blocks/ModSoundTypes.java index 2b4213cd4..544f70c1e 100644 --- a/src/main/java/com/hbm/blocks/ModSoundTypes.java +++ b/src/main/java/com/hbm/blocks/ModSoundTypes.java @@ -1,7 +1,9 @@ package com.hbm.blocks; +import com.hbm.main.MainRegistry; import net.minecraft.block.Block; class ModSoundTypes { static final ModSoundType grate = ModSoundType.customStep(Block.soundTypeStone, "hbm:step.metalBlock", 0.5F, 1.0F); + static final ModSoundType pipe = ModSoundType.customDig(Block.soundTypeMetal, "hbm:block.pipePlaced", 0.85F, 0.65F).enveloped(MainRegistry.instance.rand).pitchFunction((in, rand, type) -> { if (type == ModSoundType.SubType.BREAK) in -= 0.15F; return type == ModSoundType.SubType.STEP ? in : in + rand.nextFloat() * 0.2F; }); } diff --git a/src/main/java/com/hbm/items/machine/ItemFluidDuct.java b/src/main/java/com/hbm/items/machine/ItemFluidDuct.java index b366e39ea..93413ee62 100644 --- a/src/main/java/com/hbm/items/machine/ItemFluidDuct.java +++ b/src/main/java/com/hbm/items/machine/ItemFluidDuct.java @@ -1,12 +1,9 @@ package com.hbm.items.machine; -import java.util.List; - import com.hbm.blocks.ModBlocks; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.tileentity.network.TileEntityPipeBaseNT; - import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.renderer.texture.IIconRegister; @@ -19,6 +16,8 @@ import net.minecraft.util.IIcon; import net.minecraft.util.StatCollector; import net.minecraft.world.World; +import java.util.List; + public class ItemFluidDuct extends Item { IIcon overlayIcon; @@ -126,8 +125,6 @@ public class ItemFluidDuct extends Item { ((TileEntityPipeBaseNT) world.getTileEntity(x, y, z)).setType(Fluids.fromID(stack.getItemDamage())); } - world.playSoundEffect(x, y, z, "hbm:block.pipePlaced", 1.0F, 0.65F + world.rand.nextFloat() * 0.2F); - return true; } } diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 7c3542ec2..44e8ebca1 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -1,6 +1,71 @@ package com.hbm.main; +import com.google.common.collect.ImmutableList; +import com.hbm.blocks.BlockEnums.EnumStoneType; +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.generic.BlockMotherOfAllOres; +import com.hbm.blocks.generic.BlockToolConversion; +import com.hbm.commands.CommandDebugChunkLoad; +import com.hbm.commands.CommandReloadRecipes; import com.hbm.commands.CommandSatellites; +import com.hbm.config.*; +import com.hbm.crafting.RodRecipes; +import com.hbm.creativetabs.*; +import com.hbm.entity.EntityMappings; +import com.hbm.entity.grenade.*; +import com.hbm.entity.logic.IChunkLoader; +import com.hbm.entity.mob.siege.SiegeTier; +import com.hbm.handler.*; +import com.hbm.handler.imc.IMCBlastFurnace; +import com.hbm.handler.imc.IMCCentrifuge; +import com.hbm.handler.imc.IMCCrystallizer; +import com.hbm.handler.imc.IMCHandler; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.radiation.ChunkRadiationManager; +import com.hbm.hazard.HazardRegistry; +import com.hbm.inventory.FluidContainerRegistry; +import com.hbm.inventory.OreDictManager; +import com.hbm.inventory.OreDictManager.DictFrame; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.recipes.*; +import com.hbm.inventory.recipes.anvil.AnvilRecipes; +import com.hbm.inventory.recipes.loader.SerializableRecipe; +import com.hbm.items.ItemAmmoEnums.Ammo4Gauge; +import com.hbm.items.ItemEnums.EnumAchievementType; +import com.hbm.items.ModItems; +import com.hbm.items.tool.ItemFertilizer; +import com.hbm.items.weapon.ItemGenericGrenade; +import com.hbm.lib.HbmWorld; +import com.hbm.lib.Library; +import com.hbm.lib.RefStrings; +import com.hbm.packet.PacketDispatcher; +import com.hbm.potion.HbmPotion; +import com.hbm.saveddata.satellites.Satellite; +import com.hbm.tileentity.TileMappings; +import com.hbm.tileentity.bomb.TileEntityNukeCustom; +import com.hbm.tileentity.machine.TileEntityMachineReactorLarge; +import com.hbm.tileentity.machine.TileEntityNukeFurnace; +import com.hbm.tileentity.machine.rbmk.RBMKDials; +import com.hbm.util.*; +import com.hbm.world.feature.BedrockOre; +import com.hbm.world.feature.OreCave; +import com.hbm.world.feature.OreLayer3D; +import com.hbm.world.feature.SchistStratum; +import com.hbm.world.generator.CellularDungeonFactory; +import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.common.Mod; +import cpw.mods.fml.common.Mod.EventHandler; +import cpw.mods.fml.common.Mod.Instance; +import cpw.mods.fml.common.Mod.Metadata; +import cpw.mods.fml.common.ModMetadata; +import cpw.mods.fml.common.SidedProxy; +import cpw.mods.fml.common.event.*; +import cpw.mods.fml.common.event.FMLInterModComms.IMCEvent; +import cpw.mods.fml.common.event.FMLInterModComms.IMCMessage; +import cpw.mods.fml.common.event.FMLMissingMappingsEvent.MissingMapping; +import cpw.mods.fml.common.network.NetworkRegistry; +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; import net.minecraft.block.BlockDispenser; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.dispenser.BehaviorDefaultDispenseItem; @@ -26,12 +91,8 @@ import net.minecraftforge.common.ForgeChunkManager.Ticket; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.config.Configuration; import net.minecraftforge.common.util.EnumHelper; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.Mod; -import cpw.mods.fml.common.Mod.EventHandler; -import cpw.mods.fml.common.Mod.Instance; -import cpw.mods.fml.common.Mod.Metadata; -import cpw.mods.fml.common.ModMetadata; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import java.io.File; import java.util.HashMap; @@ -40,71 +101,6 @@ import java.util.List; import java.util.Map.Entry; import java.util.Random; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; - -import com.google.common.collect.ImmutableList; -import com.hbm.blocks.BlockEnums.EnumStoneType; -import com.hbm.blocks.ModBlocks; -import com.hbm.blocks.generic.BlockMotherOfAllOres; -import com.hbm.blocks.generic.BlockToolConversion; -import com.hbm.commands.CommandDebugChunkLoad; -import com.hbm.commands.CommandReloadRecipes; -import com.hbm.config.*; -import com.hbm.crafting.RodRecipes; -import com.hbm.creativetabs.*; -import com.hbm.entity.EntityMappings; -import com.hbm.entity.grenade.*; -import com.hbm.entity.logic.*; -import com.hbm.entity.mob.siege.*; -import com.hbm.handler.*; -import com.hbm.handler.imc.*; -import com.hbm.handler.pollution.PollutionHandler; -import com.hbm.handler.radiation.ChunkRadiationManager; -import com.hbm.hazard.HazardRegistry; -import com.hbm.inventory.*; -import com.hbm.inventory.OreDictManager.DictFrame; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.recipes.*; -import com.hbm.inventory.recipes.anvil.AnvilRecipes; -import com.hbm.inventory.recipes.loader.SerializableRecipe; -import com.hbm.items.ModItems; -import com.hbm.items.tool.ItemFertilizer; -import com.hbm.items.weapon.ItemGenericGrenade; -import com.hbm.items.ItemAmmoEnums.Ammo4Gauge; -import com.hbm.items.ItemEnums.EnumAchievementType; -import com.hbm.lib.HbmWorld; -import com.hbm.lib.Library; -import com.hbm.lib.RefStrings; -import com.hbm.packet.PacketDispatcher; -import com.hbm.potion.HbmPotion; -import com.hbm.saveddata.satellites.Satellite; -import com.hbm.tileentity.TileMappings; -import com.hbm.tileentity.bomb.TileEntityNukeCustom; -import com.hbm.tileentity.machine.*; -import com.hbm.tileentity.machine.rbmk.RBMKDials; -import com.hbm.util.AchievementHandler; -import com.hbm.util.ArmorUtil; -import com.hbm.util.Compat; -import com.hbm.util.StatHelper; -import com.hbm.util.SuicideThreadDump; -import com.hbm.world.feature.*; -import com.hbm.world.generator.CellularDungeonFactory; - -import cpw.mods.fml.common.SidedProxy; -import cpw.mods.fml.common.event.FMLInitializationEvent; -import cpw.mods.fml.common.event.FMLMissingMappingsEvent; -import cpw.mods.fml.common.event.FMLInterModComms.IMCEvent; -import cpw.mods.fml.common.event.FMLInterModComms.IMCMessage; -import cpw.mods.fml.common.event.FMLMissingMappingsEvent.MissingMapping; -import cpw.mods.fml.common.event.FMLPostInitializationEvent; -import cpw.mods.fml.common.event.FMLPreInitializationEvent; -import cpw.mods.fml.common.event.FMLServerStartedEvent; -import cpw.mods.fml.common.event.FMLServerStartingEvent; -import cpw.mods.fml.common.network.NetworkRegistry; -import cpw.mods.fml.common.registry.GameRegistry; -import cpw.mods.fml.relauncher.Side; - @Mod(modid = RefStrings.MODID, name = RefStrings.NAME, version = RefStrings.VERSION) public class MainRegistry { @@ -249,7 +245,7 @@ public class MainRegistry { public static File configDir; public static File configHbmDir; - Random rand = new Random(); + public Random rand = new Random(); @EventHandler public void PreLoad(FMLPreInitializationEvent PreEvent) { From 282228239f6a2b821b807c3b91feeaf01b7a935d Mon Sep 17 00:00:00 2001 From: Bob Date: Tue, 12 Sep 2023 22:04:26 +0200 Subject: [PATCH 304/432] fixes, armor sprites --- .../java/com/hbm/handler/HazmatRegistry.java | 6 ++++++ .../hbm/handler/nei/CustomMachineHandler.java | 2 -- src/main/java/com/hbm/items/ModItems.java | 4 +++- .../hbm/items/armor/ArmorTrenchmaster.java | 20 ++++++++++++++++++ src/main/java/com/hbm/main/MainRegistry.java | 6 +++--- .../hbm/textures/items/trenchmaster_boots.png | Bin 0 -> 164 bytes .../textures/items/trenchmaster_helmet.png | Bin 0 -> 347 bytes .../hbm/textures/items/trenchmaster_legs.png | Bin 0 -> 240 bytes .../hbm/textures/items/trenchmaster_plate.png | Bin 0 -> 392 bytes 9 files changed, 32 insertions(+), 6 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/items/trenchmaster_boots.png create mode 100644 src/main/resources/assets/hbm/textures/items/trenchmaster_helmet.png create mode 100644 src/main/resources/assets/hbm/textures/items/trenchmaster_legs.png create mode 100644 src/main/resources/assets/hbm/textures/items/trenchmaster_plate.png diff --git a/src/main/java/com/hbm/handler/HazmatRegistry.java b/src/main/java/com/hbm/handler/HazmatRegistry.java index 1d6b322b1..07e7df1b0 100644 --- a/src/main/java/com/hbm/handler/HazmatRegistry.java +++ b/src/main/java/com/hbm/handler/HazmatRegistry.java @@ -56,6 +56,7 @@ public class HazmatRegistry { double env = 2D; // 99% double hev = 2.3D; // 99.5% double rpa = 2D; // 99% + double trench = 1D; // 90% double fau = 4D; // 99.99% double dns = 5D; // 99.999% double security = 0.825D; // 85% @@ -124,6 +125,11 @@ public class HazmatRegistry { HazmatRegistry.registerHazmat(ModItems.rpa_legs, rpa * legs); HazmatRegistry.registerHazmat(ModItems.rpa_boots, rpa * boots); + HazmatRegistry.registerHazmat(ModItems.trenchmaster_helmet, trench * helmet); + HazmatRegistry.registerHazmat(ModItems.trenchmaster_plate, trench * chest); + HazmatRegistry.registerHazmat(ModItems.trenchmaster_legs, trench * legs); + HazmatRegistry.registerHazmat(ModItems.trenchmaster_boots, trench * boots); + HazmatRegistry.registerHazmat(ModItems.fau_helmet, fau * helmet); HazmatRegistry.registerHazmat(ModItems.fau_plate, fau * chest); HazmatRegistry.registerHazmat(ModItems.fau_legs, fau * legs); diff --git a/src/main/java/com/hbm/handler/nei/CustomMachineHandler.java b/src/main/java/com/hbm/handler/nei/CustomMachineHandler.java index cf3570f79..17acd394c 100644 --- a/src/main/java/com/hbm/handler/nei/CustomMachineHandler.java +++ b/src/main/java/com/hbm/handler/nei/CustomMachineHandler.java @@ -132,8 +132,6 @@ public class CustomMachineHandler extends TemplateRecipeHandler { List recipes = CustomMachineRecipes.recipes.get(conf.recipeKey); - System.out.println(conf.recipeKey); - if(recipes != null) outer:for(CustomMachineRecipe recipe : recipes) { for(Pair stack : recipe.outputItems) { diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 90b3279b0..2d0270f08 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -4956,12 +4956,14 @@ public class ModItems { ArmorMaterial aMatTrench = EnumHelper.addArmorMaterial("HBM_TRENCH", 150, new int[] { 3, 8, 6, 3 }, 100); aMatTrench.customCraftingMaterial = ModItems.plate_iron; - trenchmaster_helmet = new ArmorTrenchmaster(aMatTrench, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png") + trenchmaster_helmet = new ArmorTrenchmaster(aMatTrench, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png").setMod(0.25F).setThreshold(5.0F) .addEffect(new PotionEffect(Potion.damageBoost.id, 20, 2)) .addEffect(new PotionEffect(Potion.digSpeed.id, 20, 1)) .addEffect(new PotionEffect(Potion.jump.id, 20, 1)) .addEffect(new PotionEffect(Potion.moveSpeed.id, 20, 0)) .enableVATS(true) + .addResistance("fall", 0F) + .setFireproof(true) .setStepSize(1) .hides(EnumPlayerPart.HAT) .setUnlocalizedName("trenchmaster_helmet").setTextureName(RefStrings.MODID + ":trenchmaster_helmet"); diff --git a/src/main/java/com/hbm/items/armor/ArmorTrenchmaster.java b/src/main/java/com/hbm/items/armor/ArmorTrenchmaster.java index e4c42037e..ec497410c 100644 --- a/src/main/java/com/hbm/items/armor/ArmorTrenchmaster.java +++ b/src/main/java/com/hbm/items/armor/ArmorTrenchmaster.java @@ -2,6 +2,7 @@ package com.hbm.items.armor; import java.util.List; +import com.hbm.extprop.HbmPlayerProps; import com.hbm.render.model.ModelArmorTrenchmaster; import com.hbm.util.I18nUtil; @@ -12,6 +13,7 @@ import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; +import net.minecraftforge.event.entity.living.LivingAttackEvent; public class ArmorTrenchmaster extends ArmorFSB { @@ -43,4 +45,22 @@ public class ArmorTrenchmaster extends ArmorFSB { list.add(EnumChatFormatting.RED + " " + I18nUtil.resolveKey("armor.fasterReload")); list.add(EnumChatFormatting.RED + " " + I18nUtil.resolveKey("armor.moreAmmo")); } + + @Override + public void handleAttack(LivingAttackEvent event) { + + EntityLivingBase e = event.entityLiving; + + if(e instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer) e; + + if(ArmorFSB.hasFSBArmor(player)) { + + if(e.getRNG().nextInt(3) == 0) { + HbmPlayerProps.plink(player, "random.break", 0.5F, 1.0F + e.getRNG().nextFloat() * 0.5F); + event.setCanceled(true); + } + } + } + } } diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 7c3542ec2..23e7a4a92 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -289,6 +289,9 @@ public class MainRegistry { SiegeTier.registerTiers(); HazardRegistry.registerItems(); HazardRegistry.registerTrafos(); + + OreDictManager oreMan = new OreDictManager(); + MinecraftForge.EVENT_BUS.register(oreMan); //OreRegisterEvent OreDictManager.registerGroups(); //important to run first OreDictManager.registerOres(); @@ -899,9 +902,6 @@ public class MainRegistry { MinecraftForge.EVENT_BUS.register(impactHandler); MinecraftForge.TERRAIN_GEN_BUS.register(impactHandler); - OreDictManager oreMan = new OreDictManager(); - MinecraftForge.EVENT_BUS.register(oreMan); //OreRegisterEvent - PacketDispatcher.registerPackets(); ChunkRadiationManager radiationSystem = new ChunkRadiationManager(); diff --git a/src/main/resources/assets/hbm/textures/items/trenchmaster_boots.png b/src/main/resources/assets/hbm/textures/items/trenchmaster_boots.png new file mode 100644 index 0000000000000000000000000000000000000000..509f7cae63cdddc78aa22a7d84ee1d5da77750c2 GIT binary patch literal 164 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf z{)#QRVdmG84vtHL4lZo**^K9S-uXuUS>~%A^09l{pJv_yM!RgibtQ>=K<;7iboFyt I=akR{0G@9(n*aa+ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/trenchmaster_helmet.png b/src/main/resources/assets/hbm/textures/items/trenchmaster_helmet.png new file mode 100644 index 0000000000000000000000000000000000000000..b12e0e69f292402234ccf6956dc2223c9ee74daa GIT binary patch literal 347 zcmV-h0i^zkP)08mO9t+lW}9&WBo5NrV0@4t9_ zeisvZR&&lluwnP~!tVZ-!Dz8Tk|YLzpAV2*H+O1;IF1d#_2mWj2ydU?0F-4ZW(@}M zDQpt~5Jk}<;a{q%5^I32>(E+@G);}?dH;&~zNaXPV+Sh$t+h}}82~9I`Rg5do+G6k z#c&weF&H7YhYifd7VD{GmSq66ZR^BC2R6qJ>`RnV(zdPhY_VNCdx=XK-FKR%2B2vg tC-3_{fU|)~gMly%o!hAEdbai~egT>IY}~g=gL?n~002ovPDHLkV1g7Xk6r)( literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/trenchmaster_legs.png b/src/main/resources/assets/hbm/textures/items/trenchmaster_legs.png new file mode 100644 index 0000000000000000000000000000000000000000..48e7b3e7cc0b10eec7ca82ed944ffe688890ae95 GIT binary patch literal 240 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfCs&GFz2nV5|B2Law2XX|d~khQz($#(9TtMK8s z|1vp`JzspGBiBvnRuNCm%3A zSjeAX8)0`#|GvzG$8t}*MKkyg$ZTLZy3MrCys^W8M|%)NZ4fq4*&hbo$#yd_n80i>G4uwWz*Be! zZ{Z0{RWumgV0Q-AU{KgZSi1#j1Lu?i`%;qLbzzHiZ{rkTwKT1Huw!3fUV69q?F8Nv&?QC^4iJx z3kPwM5+^B#1D7~Sc^D;G94Bd|VFRGs^Nl@>5N<(G=ImQ*#bg{c9DtLf{Y)@@eM6}^ zgVsAY=>o31j8gL~@2#(8@#$Igd4uiMrHnkkxB}p^#=*hyUUh{$>}RnS^D6?}N7sd# m$`Q3zg<^ooIBHn_&+!3*xQFmFi(-iY0000 Date: Wed, 13 Sep 2023 13:32:33 +0200 Subject: [PATCH 305/432] dude why --- src/main/java/com/hbm/items/weapon/ItemGunBase.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/hbm/items/weapon/ItemGunBase.java b/src/main/java/com/hbm/items/weapon/ItemGunBase.java index aabdc3bfd..2a6eff682 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGunBase.java +++ b/src/main/java/com/hbm/items/weapon/ItemGunBase.java @@ -134,13 +134,15 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu setIsMouseDown(stack, false); } - if(getBurstDuration(stack) > 0) { + int burstDuration = getBurstDuration(stack); + if(burstDuration > 0) { + if(altConfig == null) { - if (world.getWorldTime() % mainConfig.firingDuration == 0 && tryShoot(stack, world, player, true)) { + if (burstDuration % mainConfig.firingDuration == 0 && tryShoot(stack, world, player, true)) { fire(stack, world, player); } } else { - boolean canFire = altConfig.firingDuration == 1 || world.getWorldTime() % altConfig.firingDuration == 0; + boolean canFire = altConfig.firingDuration == 1 || burstDuration % altConfig.firingDuration == 0; if (canFire && tryShoot(stack, world, player, false)) { altFire(stack, world, player); } From 82fca1ce88d60af39c37a0d2af8d96004f5b3d75 Mon Sep 17 00:00:00 2001 From: Bob Date: Thu, 14 Sep 2023 23:16:53 +0200 Subject: [PATCH 306/432] even girthier smokestacks --- src/main/java/com/hbm/blocks/ModBlocks.java | 3 + .../blocks/machine/MachineChimneyBrick.java | 12 +- .../machine/MachineChimneyIndustrial.java | 54 + .../inventory/recipes/anvil/AnvilRecipes.java | 12 +- src/main/java/com/hbm/main/ClientProxy.java | 1 + .../java/com/hbm/main/ResourceManager.java | 2 + .../tileentity/RenderChimneyIndustrial.java | 56 + .../java/com/hbm/tileentity/TileMappings.java | 1 + .../machine/TileEntityChimneyBase.java | 86 ++ .../machine/TileEntityChimneyBrick.java | 97 +- .../machine/TileEntityChimneyIndustrial.java | 59 + .../TileEntityMachineAssemblerBase.java | 2 +- .../machine/TileEntityMachineChemplant.java | 4 +- .../TileEntityMachineChemplantBase.java | 4 +- src/main/resources/assets/hbm/lang/de_DE.lang | 3 + src/main/resources/assets/hbm/lang/en_US.lang | 3 + .../models/machines/chimney_industrial.obj | 1224 +++++++++++++++++ .../hbm/textures/items/powder_ash.fly.png | Bin 0 -> 288 bytes .../models/machines/chimney_industrial.png | Bin 0 -> 8033 bytes 19 files changed, 1535 insertions(+), 88 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/machine/MachineChimneyIndustrial.java create mode 100644 src/main/java/com/hbm/render/tileentity/RenderChimneyIndustrial.java create mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityChimneyBase.java create mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityChimneyIndustrial.java create mode 100644 src/main/resources/assets/hbm/models/machines/chimney_industrial.obj create mode 100644 src/main/resources/assets/hbm/textures/items/powder_ash.fly.png create mode 100644 src/main/resources/assets/hbm/textures/models/machines/chimney_industrial.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 868165597..f08d42a0f 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -979,6 +979,7 @@ public class ModBlocks { public static Block machine_flare; public static Block chimney_brick; + public static Block chimney_industrial; public static Block machine_refinery; public static Block machine_vacuum_distill; @@ -2238,6 +2239,7 @@ public class ModBlocks { oil_pipe = new BlockNoDrop(Material.iron).setBlockName("oil_pipe").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":oil_pipe"); machine_flare = new MachineGasFlare(Material.iron).setBlockName("machine_flare").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); chimney_brick = new MachineChimneyBrick(Material.iron).setBlockName("chimney_brick").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire"); + chimney_industrial = new MachineChimneyIndustrial(Material.iron).setBlockName("chimney_industrial").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":concrete_colored_ext.machine"); machine_refinery = new MachineRefinery(Material.iron).setBlockName("machine_refinery").setHardness(5.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_refinery"); machine_vacuum_distill = new MachineVacuumDistill(Material.iron).setBlockName("machine_vacuum_distill").setHardness(5.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_fraction_tower = new MachineFractionTower(Material.iron).setBlockName("machine_fraction_tower").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); @@ -3323,6 +3325,7 @@ public class ModBlocks { register(machine_fracking_tower); register(machine_flare); register(chimney_brick); + register(chimney_industrial); register(machine_refinery); register(machine_vacuum_distill); register(machine_fraction_tower); diff --git a/src/main/java/com/hbm/blocks/machine/MachineChimneyBrick.java b/src/main/java/com/hbm/blocks/machine/MachineChimneyBrick.java index ab6bf4bbc..7c8f40bc2 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineChimneyBrick.java +++ b/src/main/java/com/hbm/blocks/machine/MachineChimneyBrick.java @@ -1,15 +1,20 @@ package com.hbm.blocks.machine; +import java.util.List; + import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ITooltipProvider; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityChimneyBrick; import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class MachineChimneyBrick extends BlockDummyable { +public class MachineChimneyBrick extends BlockDummyable implements ITooltipProvider { public MachineChimneyBrick(Material mat) { super(mat); @@ -41,4 +46,9 @@ public class MachineChimneyBrick extends BlockDummyable { this.makeExtra(world, x + dir.offsetX * o, y, z + dir.offsetZ * o + 1); this.makeExtra(world, x + dir.offsetX * o, y, z + dir.offsetZ * o - 1); } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineChimneyIndustrial.java b/src/main/java/com/hbm/blocks/machine/MachineChimneyIndustrial.java new file mode 100644 index 000000000..036273535 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineChimneyIndustrial.java @@ -0,0 +1,54 @@ +package com.hbm.blocks.machine; + +import java.util.List; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ITooltipProvider; +import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.machine.TileEntityChimneyIndustrial; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class MachineChimneyIndustrial extends BlockDummyable implements ITooltipProvider { + + public MachineChimneyIndustrial(Material mat) { + super(mat); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + + if(meta >= 12) return new TileEntityChimneyIndustrial(); + if(meta >= 6) return new TileEntityProxyCombo().fluid(); + return null; + } + + @Override + public int[] getDimensions() { + return new int[] {22, 0, 1, 1, 1, 1}; + } + + @Override + public int getOffset() { + return 1; + } + + @Override + public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + this.makeExtra(world, x + dir.offsetX * o + 1, y, z + dir.offsetZ * o); + this.makeExtra(world, x + dir.offsetX * o - 1, y, z + dir.offsetZ * o); + this.makeExtra(world, x + dir.offsetX * o, y, z + dir.offsetZ * o + 1); + this.makeExtra(world, x + dir.offsetX * o, y, z + dir.offsetZ * o - 1); + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } +} diff --git a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java index 607b9f289..28ad6600b 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -452,10 +452,20 @@ public class AnvilRecipes { constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] { new OreDictStack(STEEL.plate(), 4), - new ComparableStack(Blocks.brick_block, 16) + new ComparableStack(Blocks.brick_block, 16), + new ComparableStack(ModBlocks.steel_grate, 2) }, new AnvilOutput(new ItemStack(ModBlocks.chimney_brick))).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( + new AStack[] { + new OreDictStack(STEEL.plate(), 16), + new OreDictStack(ANY_CONCRETE.any(), 64), + new ComparableStack(ModBlocks.steel_grate, 4), + new ComparableStack(ModItems.filter_coal, 4) + }, + new AnvilOutput(new ItemStack(ModBlocks.chimney_industrial))).setTier(3)); + constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] { new ComparableStack(ModItems.tank_steel, 1), diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index c9800c9a6..8272517cf 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -215,6 +215,7 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineOilWell.class, new RenderDerrick()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineGasFlare.class, new RenderGasFlare()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityChimneyBrick.class, new RenderChimneyBrick()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityChimneyIndustrial.class, new RenderChimneyIndustrial()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineMiningDrill.class, new RenderMiningDrill()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineMiningLaser.class, new RenderLaserMiner()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineAssembler.class, new RenderAssembler()); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 7a0ff4d0c..c6260e18f 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -83,6 +83,7 @@ public class ResourceManager { //Flare Stack public static final IModelCustom oilflare = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/flare_stack.obj")); public static final IModelCustom chimney_brick = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/chimney_brick.obj")); + public static final IModelCustom chimney_industrial = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/chimney_industrial.obj")); //Tank public static final IModelCustom fluidtank = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/fluidtank.obj")); @@ -437,6 +438,7 @@ public class ResourceManager { //Flare Stack public static final ResourceLocation oilflare_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/flare_stack.png"); public static final ResourceLocation chimney_brick_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/chimney_brick.png"); + public static final ResourceLocation chimney_industrial_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/chimney_industrial.png"); //Tank public static final ResourceLocation tank_tex = new ResourceLocation(RefStrings.MODID, "textures/models/tank.png"); diff --git a/src/main/java/com/hbm/render/tileentity/RenderChimneyIndustrial.java b/src/main/java/com/hbm/render/tileentity/RenderChimneyIndustrial.java new file mode 100644 index 000000000..b29da43dd --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderChimneyIndustrial.java @@ -0,0 +1,56 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderChimneyIndustrial extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { + + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glRotatef(180, 0F, 1F, 0F); + + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.chimney_industrial_tex); + ResourceManager.chimney_industrial.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glEnable(GL11.GL_CULL_FACE); + + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.chimney_industrial); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase() { + public void renderInventory() { + GL11.glTranslated(0, -5, 0); + GL11.glScaled(2.75, 2.75, 2.75); + } + public void renderCommon() { + GL11.glScaled(0.25, 0.25, 0.25); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.chimney_industrial_tex); + ResourceManager.chimney_industrial.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glEnable(GL11.GL_CULL_FACE); + }}; + } +} diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 3274e10a2..f865030c1 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -329,6 +329,7 @@ public class TileMappings { put(TileEntityMachineCatalyticReformer.class, "tileentity_catalytic_reformer"); put(TileEntityMachineCoker.class, "tileentity_coker"); put(TileEntityChimneyBrick.class, "tileentity_chimney_brick"); + put(TileEntityChimneyIndustrial.class, "tileentity_chimney_industrial"); put(TileEntityReactorZirnox.class, "tileentity_zirnox"); put(TileEntityZirnoxDestroyed.class, "tileentity_zirnox_destroyed"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyBase.java new file mode 100644 index 000000000..c942a55e7 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyBase.java @@ -0,0 +1,86 @@ +package com.hbm.tileentity.machine; + +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.lib.Library; +import com.hbm.tileentity.INBTPacketReceiver; +import com.hbm.tileentity.TileEntityLoadedBase; + +import api.hbm.fluid.IFluidUser; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.common.util.ForgeDirection; + +public abstract class TileEntityChimneyBase extends TileEntityLoadedBase implements IFluidUser, INBTPacketReceiver { + + public int onTicks; + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + if(worldObj.getTotalWorldTime() % 20 == 0) { + FluidType[] types = new FluidType[] {Fluids.SMOKE, Fluids.SMOKE_LEADED, Fluids.SMOKE_POISON}; + + for(FluidType type : types) { + this.trySubscribe(type, worldObj, xCoord + 2, yCoord, zCoord, Library.POS_X); + this.trySubscribe(type, worldObj, xCoord - 2, yCoord, zCoord, Library.NEG_X); + this.trySubscribe(type, worldObj, xCoord, yCoord, zCoord + 2, Library.POS_Z); + this.trySubscribe(type, worldObj, xCoord, yCoord, zCoord - 2, Library.NEG_Z); + } + } + + NBTTagCompound data = new NBTTagCompound(); + data.setInteger("onTicks", onTicks); + INBTPacketReceiver.networkPack(this, data, 150); + + if(onTicks > 0) onTicks--; + + } else { + + if(onTicks > 0) { + this.spawnParticles(); + } + } + } + + public void spawnParticles() { } + + public void networkUnpack(NBTTagCompound nbt) { + this.onTicks = nbt.getInteger("onTicks"); + } + + @Override + public boolean canConnect(FluidType type, ForgeDirection dir) { + return (dir == ForgeDirection.NORTH || dir == ForgeDirection.SOUTH || dir == ForgeDirection.EAST || dir == ForgeDirection.WEST) && + (type == Fluids.SMOKE || type == Fluids.SMOKE_LEADED || type == Fluids.SMOKE_POISON); + } + + @Override + public long transferFluid(FluidType type, int pressure, long fluid) { + onTicks = 20; + + fluid *= getPollutionMod(); + + if(type == Fluids.SMOKE) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, fluid / 100F); + if(type == Fluids.SMOKE_LEADED) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.HEAVYMETAL, fluid / 100F); + if(type == Fluids.SMOKE_POISON) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.POISON, fluid / 100F); + + return 0; + } + + public abstract double getPollutionMod(); + + @Override + public long getDemand(FluidType type, int pressure) { + return 1_000_000; + } + + @Override + public FluidTank[] getAllTanks() { + return new FluidTank[] {}; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyBrick.java b/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyBrick.java index 7d636a718..5a95b31ac 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyBrick.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyBrick.java @@ -1,100 +1,35 @@ package com.hbm.tileentity.machine; -import com.hbm.handler.pollution.PollutionHandler; -import com.hbm.handler.pollution.PollutionHandler.PollutionType; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.fluid.tank.FluidTank; -import com.hbm.lib.Library; import com.hbm.main.MainRegistry; -import com.hbm.tileentity.INBTPacketReceiver; -import com.hbm.tileentity.TileEntityLoadedBase; -import api.hbm.fluid.IFluidUser; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; -import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityChimneyBrick extends TileEntityLoadedBase implements IFluidUser, INBTPacketReceiver { - - public int onTicks; +public class TileEntityChimneyBrick extends TileEntityChimneyBase { @Override - public void updateEntity() { - - if(!worldObj.isRemote) { - - if(worldObj.getTotalWorldTime() % 20 == 0) { - FluidType[] types = new FluidType[] {Fluids.SMOKE, Fluids.SMOKE_LEADED, Fluids.SMOKE_POISON}; - - for(FluidType type : types) { - this.trySubscribe(type, worldObj, xCoord + 2, yCoord, zCoord, Library.POS_X); - this.trySubscribe(type, worldObj, xCoord - 2, yCoord, zCoord, Library.NEG_X); - this.trySubscribe(type, worldObj, xCoord, yCoord, zCoord + 2, Library.POS_Z); - this.trySubscribe(type, worldObj, xCoord, yCoord, zCoord - 2, Library.NEG_Z); - } - } - - NBTTagCompound data = new NBTTagCompound(); - data.setInteger("onTicks", onTicks); - INBTPacketReceiver.networkPack(this, data, 150); - - if(onTicks > 0) onTicks--; - - } else { - - if(onTicks > 0) { + public void spawnParticles() { - if(worldObj.getTotalWorldTime() % 2 == 0) { - NBTTagCompound fx = new NBTTagCompound(); - fx.setString("type", "tower"); - fx.setFloat("lift", 10F); - fx.setFloat("base", 0.5F); - fx.setFloat("max", 3F); - fx.setInteger("life", 250 + worldObj.rand.nextInt(50)); - fx.setInteger("color",0x404040); - fx.setDouble("posX", xCoord + 0.5); - fx.setDouble("posY", yCoord + 12); - fx.setDouble("posZ", zCoord + 0.5); - MainRegistry.proxy.effectNT(fx); - } - } + if(worldObj.getTotalWorldTime() % 2 == 0) { + NBTTagCompound fx = new NBTTagCompound(); + fx.setString("type", "tower"); + fx.setFloat("lift", 10F); + fx.setFloat("base", 0.5F); + fx.setFloat("max", 3F); + fx.setInteger("life", 250 + worldObj.rand.nextInt(50)); + fx.setInteger("color",0x404040); + fx.setDouble("posX", xCoord + 0.5); + fx.setDouble("posY", yCoord + 12); + fx.setDouble("posZ", zCoord + 0.5); + MainRegistry.proxy.effectNT(fx); } } - - public void networkUnpack(NBTTagCompound nbt) { - this.onTicks = nbt.getInteger("onTicks"); - } @Override - public boolean canConnect(FluidType type, ForgeDirection dir) { - return (dir == ForgeDirection.NORTH || dir == ForgeDirection.SOUTH || dir == ForgeDirection.EAST || dir == ForgeDirection.WEST) && - (type == Fluids.SMOKE || type == Fluids.SMOKE_LEADED || type == Fluids.SMOKE_POISON); - } - - @Override - public long transferFluid(FluidType type, int pressure, long fluid) { - onTicks = 20; - - fluid *= 0.25; - - if(type == Fluids.SMOKE) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, fluid / 100F); - if(type == Fluids.SMOKE_LEADED) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.HEAVYMETAL, fluid / 100F); - if(type == Fluids.SMOKE_POISON) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.POISON, fluid / 100F); - - return 0; - } - - @Override - public long getDemand(FluidType type, int pressure) { - return 1_000_000; - } - - @Override - public FluidTank[] getAllTanks() { - return new FluidTank[] {}; + public double getPollutionMod() { + return 0.25D; } AxisAlignedBB bb = null; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyIndustrial.java b/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyIndustrial.java new file mode 100644 index 000000000..abbabb942 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyIndustrial.java @@ -0,0 +1,59 @@ +package com.hbm.tileentity.machine; + +import com.hbm.main.MainRegistry; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; + +public class TileEntityChimneyIndustrial extends TileEntityChimneyBase { + + @Override + public void spawnParticles() { + + if(worldObj.getTotalWorldTime() % 2 == 0) { + NBTTagCompound fx = new NBTTagCompound(); + fx.setString("type", "tower"); + fx.setFloat("lift", 10F); + fx.setFloat("base", 0.75F); + fx.setFloat("max", 3F); + fx.setInteger("life", 250 + worldObj.rand.nextInt(50)); + fx.setInteger("color",0x404040); + fx.setDouble("posX", xCoord + 0.5); + fx.setDouble("posY", yCoord + 22); + fx.setDouble("posZ", zCoord + 0.5); + MainRegistry.proxy.effectNT(fx); + } + } + + @Override + public double getPollutionMod() { + return 0.25D; + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 1, + yCoord, + zCoord - 1, + xCoord + 2, + yCoord + 23, + zCoord + 2 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemblerBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemblerBase.java index aa5c7fec8..5a4bdcbbd 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemblerBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemblerBase.java @@ -213,7 +213,7 @@ public abstract class TileEntityMachineAssemblerBase extends TileEntityMachineBa } } - if(!found) return; + if(!found) break outer; } } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java index 3da9f3833..3a14f536b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java @@ -396,8 +396,8 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements } } } - - if(!found) return; + + if(!found) break outer; } } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java index 99e38f3e4..5363c7e9e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java @@ -246,8 +246,8 @@ public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBa } } } - - if(!found) return; + + if(!found) break outer; } } } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 682604c76..0e75f8cdf 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -3664,6 +3664,9 @@ tile.charger.name=Ladestation tile.cheater_virus.name=Geliertes Euphemium tile.cheater_virus_seed.name=Instabiler Euphemiumschrabid-Block tile.chimney_brick.name=Schornstein +tile.chimney_brick.desc=Kann mit Abgasrohren verbunden werden$Reduziert Abgas um 75%% +tile.chimney_industrial.name=Industrieschornstein +tile.chimney_industrial.desc=Kann mit Abgasrohren verbunden werden$Reduziert Abgas um 90%% tile.chlorine_gas.name=Chlorgas tile.cluster_aluminium.name=Aluminiumerzcluster tile.cluster_copper.name=Kupfererzcluster diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index ad1c176bb..ac7c7b266 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -4611,6 +4611,9 @@ tile.charger.name=Charging Station tile.cheater_virus.name=Gelid Euphemium tile.cheater_virus_seed.name=Unstable Euphemium Schrabide Block tile.chimney_brick.name=Smokestack +tile.chimney_brick.desc=Connect using exhaust pipes to polluting machines$Reduces pollution emission by 75%% +tile.chimney_industrial.name=Industrial Smokestack +tile.chimney_industrial.desc=Connect using exhaust pipes to polluting machines$Reduces pollution emission by 90%% tile.chlorine_gas.name=Chlorine Gas tile.cluster_aluminium.name=Aluminium Ore Cluster tile.cluster_copper.name=Copper Ore Cluster diff --git a/src/main/resources/assets/hbm/models/machines/chimney_industrial.obj b/src/main/resources/assets/hbm/models/machines/chimney_industrial.obj new file mode 100644 index 000000000..894620dcb --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/chimney_industrial.obj @@ -0,0 +1,1224 @@ +# Blender v2.79 (sub 0) OBJ File: 'chimney_industrial.blend' +# www.blender.org +o Plane +v -1.500000 0.000000 1.500000 +v 1.500000 0.000000 1.500000 +v -1.500000 0.000000 -1.500000 +v 1.500000 0.000000 -1.500000 +v -1.500000 2.000000 1.500000 +v 1.500000 2.000000 1.500000 +v -1.500000 2.000000 -1.500000 +v 1.500000 2.000000 -1.500000 +v 1.500000 0.875000 0.375000 +v 1.500000 0.125000 0.375000 +v 1.500000 0.875000 -0.375000 +v 1.500000 0.125000 -0.375000 +v 1.500000 0.687500 0.187500 +v 1.500000 0.312500 0.187500 +v 1.500000 0.687500 -0.187500 +v 1.500000 0.312500 -0.187500 +v 1.375000 0.875000 -0.375000 +v 1.375000 0.875000 0.375000 +v 1.375000 0.125000 0.375000 +v 1.375000 0.125000 -0.375000 +v 1.375000 0.687500 -0.187500 +v 1.375000 0.687500 0.187500 +v 1.375000 0.312500 0.187500 +v 1.375000 0.312500 -0.187500 +v -1.500000 0.875000 -0.375000 +v -1.500000 0.125000 -0.375000 +v -1.500000 0.875000 0.375000 +v -1.500000 0.125000 0.375000 +v -1.500000 0.687500 -0.187500 +v -1.500000 0.312500 -0.187500 +v -1.500000 0.687500 0.187500 +v -1.500000 0.312500 0.187500 +v -1.375000 0.875000 0.375000 +v -1.375000 0.875000 -0.375000 +v -1.375000 0.125000 -0.375000 +v -1.375000 0.125000 0.375000 +v -1.375000 0.687500 0.187500 +v -1.375000 0.687500 -0.187500 +v -1.375000 0.312500 -0.187500 +v -1.375000 0.312500 0.187500 +v 0.375000 0.875000 -1.500000 +v 0.375000 0.125000 -1.500000 +v -0.375000 0.875000 -1.500000 +v -0.375000 0.125000 -1.500000 +v 0.187500 0.687500 -1.500000 +v 0.187500 0.312500 -1.500000 +v -0.187500 0.687500 -1.500000 +v -0.187500 0.312500 -1.500000 +v -0.375000 0.875000 -1.375000 +v 0.375000 0.875000 -1.375000 +v 0.375000 0.125000 -1.375000 +v -0.375000 0.125000 -1.375000 +v -0.187500 0.687500 -1.375000 +v 0.187500 0.687500 -1.375000 +v 0.187500 0.312500 -1.375000 +v -0.187500 0.312500 -1.375000 +v -0.375000 0.875000 1.500000 +v -0.375000 0.125000 1.500000 +v 0.375000 0.875000 1.500000 +v 0.375000 0.125000 1.500000 +v -0.187500 0.687500 1.500000 +v -0.187500 0.312500 1.500000 +v 0.187500 0.687500 1.500000 +v 0.187500 0.312500 1.500000 +v 0.375000 0.875000 1.375000 +v -0.375000 0.875000 1.375000 +v -0.375000 0.125000 1.375000 +v 0.375000 0.125000 1.375000 +v 0.187500 0.687500 1.375000 +v -0.187500 0.687500 1.375000 +v -0.187500 0.312500 1.375000 +v 0.187500 0.312500 1.375000 +v 0.000000 10.000000 -1.250000 +v -0.478354 10.000000 -1.154849 +v -0.883883 10.000000 -0.883883 +v -1.154849 10.000000 -0.478354 +v -1.250000 10.000000 0.000000 +v -1.154849 10.000000 0.478354 +v -0.883883 10.000000 0.883883 +v -0.478354 10.000000 1.154849 +v -0.000000 10.000000 1.250000 +v 0.478354 10.000000 1.154850 +v 0.883883 10.000000 0.883884 +v 1.154849 10.000000 0.478354 +v 1.250000 10.000000 -0.000000 +v 1.154849 10.000000 -0.478355 +v 0.883883 10.000000 -0.883884 +v 0.478354 10.000000 -1.154850 +v 0.000000 23.000000 -1.250000 +v -0.478354 23.000000 -1.154849 +v -0.883883 23.000000 -0.883883 +v -1.154849 23.000000 -0.478354 +v -1.250000 23.000000 0.000000 +v -1.154849 23.000000 0.478354 +v -0.883883 23.000000 0.883883 +v -0.478354 23.000000 1.154849 +v -0.000000 23.000000 1.250000 +v 0.478354 23.000000 1.154850 +v 0.883883 23.000000 0.883884 +v 1.154849 23.000000 0.478354 +v 1.250000 23.000000 -0.000000 +v 1.154849 23.000000 -0.478355 +v 0.883883 23.000000 -0.883884 +v 0.478354 23.000000 -1.154850 +v -0.000000 23.000000 -1.000000 +v -0.382684 23.000000 -0.923880 +v -0.707107 23.000000 -0.707107 +v -0.923880 23.000000 -0.382683 +v -1.000000 23.000000 0.000000 +v -0.923880 23.000000 0.382684 +v -0.707107 23.000000 0.707107 +v -0.382684 23.000000 0.923880 +v -0.000000 23.000000 1.000000 +v 0.382683 23.000000 0.923880 +v 0.707107 23.000000 0.707107 +v 0.923879 23.000000 0.382684 +v 1.000000 23.000000 -0.000000 +v 0.923879 23.000000 -0.382684 +v 0.707106 23.000000 -0.707107 +v 0.382683 23.000000 -0.923880 +v -0.000000 21.000000 -1.000000 +v -0.382684 21.000000 -0.923880 +v -0.707107 21.000000 -0.707107 +v -0.923880 21.000000 -0.382683 +v -1.000000 21.000000 0.000000 +v -0.923880 21.000000 0.382684 +v -0.707107 21.000000 0.707107 +v -0.382684 21.000000 0.923880 +v -0.000000 21.000000 1.000000 +v 0.382683 21.000000 0.923880 +v 0.707107 21.000000 0.707107 +v 0.923879 21.000000 0.382684 +v 1.000000 21.000000 -0.000000 +v 0.923879 21.000000 -0.382684 +v 0.707106 21.000000 -0.707107 +v 0.382683 21.000000 -0.923880 +v 0.000000 2.000000 -1.500000 +v -0.574025 2.000000 -1.385819 +v -1.060660 2.000000 -1.060660 +v -1.385819 2.000000 -0.574025 +v -1.500000 2.000000 0.000000 +v -1.385819 2.000000 0.574025 +v -1.060660 2.000000 1.060660 +v -0.574025 2.000000 1.385819 +v -0.000000 2.000000 1.500000 +v 0.574025 2.000000 1.385819 +v 1.060660 2.000000 1.060660 +v 1.385819 2.000000 0.574025 +v 1.500000 2.000000 -0.000000 +v 1.385819 2.000000 -0.574025 +v 1.060660 2.000000 -1.060660 +v 0.574024 2.000000 -1.385820 +v -0.000000 22.500000 -1.500000 +v -0.574025 22.500000 -1.385819 +v -1.060660 22.500000 -1.060660 +v -1.385819 22.500000 -0.574025 +v -1.500000 22.500000 0.000000 +v -1.385819 22.500000 0.574025 +v -1.060660 22.500000 1.060660 +v -0.574025 22.500000 1.385819 +v -0.000000 22.500000 1.500000 +v 0.574025 22.500000 1.385819 +v 1.060660 22.500000 1.060660 +v 1.385819 22.500000 0.574025 +v 1.500000 22.500000 -0.000000 +v 1.385819 22.500000 -0.574025 +v 1.060660 22.500000 -1.060660 +v 0.574024 22.500000 -1.385820 +v 0.000000 22.500000 -1.250000 +v -0.478354 22.500000 -1.154849 +v -0.883883 22.500000 -0.883883 +v -1.154849 22.500000 -0.478354 +v -1.250000 22.500000 0.000000 +v -1.154849 22.500000 0.478354 +v -0.883883 22.500000 0.883883 +v -0.478354 22.500000 1.154849 +v -0.000000 22.500000 1.250000 +v 0.478354 22.500000 1.154850 +v 0.883883 22.500000 0.883884 +v 1.154849 22.500000 0.478354 +v 1.250000 22.500000 -0.000000 +v 1.154849 22.500000 -0.478355 +v 0.883883 22.500000 -0.883884 +v 0.478354 22.500000 -1.154850 +v 0.000000 22.000000 -1.250000 +v -0.478354 22.000000 -1.154849 +v -0.883883 22.000000 -0.883883 +v -1.154849 22.000000 -0.478354 +v -1.250000 22.000000 0.000000 +v -1.154849 22.000000 0.478354 +v -0.883883 22.000000 0.883883 +v -0.478354 22.000000 1.154849 +v -0.000000 22.000000 1.250000 +v 0.478354 22.000000 1.154850 +v 0.883883 22.000000 0.883884 +v 1.154849 22.000000 0.478354 +v 1.250000 22.000000 -0.000000 +v 1.154849 22.000000 -0.478355 +v 0.883883 22.000000 -0.883884 +v 0.478354 22.000000 -1.154850 +v -0.000000 22.250000 -1.500000 +v -0.574025 22.250000 -1.385819 +v -1.060660 22.250000 -1.060660 +v -1.385819 22.250000 -0.574025 +v -1.500000 22.250000 0.000000 +v -1.385819 22.250000 0.574025 +v -1.060660 22.250000 1.060660 +v -0.574025 22.250000 1.385819 +v -0.000000 22.250000 1.500000 +v 0.574025 22.250000 1.385819 +v 1.060660 22.250000 1.060660 +v 1.385819 22.250000 0.574025 +v 1.500000 22.250000 -0.000000 +v 1.385819 22.250000 -0.574025 +v 1.060660 22.250000 -1.060660 +v 0.574024 22.250000 -1.385820 +v -0.000000 14.250000 -1.500000 +v -0.574025 14.250000 -1.385819 +v -1.060660 14.250000 -1.060660 +v -1.385819 14.250000 -0.574025 +v -1.500000 14.250000 0.000000 +v -1.385819 14.250000 0.574025 +v -1.060660 14.250000 1.060660 +v -0.574025 14.250000 1.385819 +v -0.000000 14.250000 1.500000 +v 0.574025 14.250000 1.385819 +v 1.060660 14.250000 1.060660 +v 1.385819 14.250000 0.574025 +v 1.500000 14.250000 -0.000000 +v 1.385819 14.250000 -0.574025 +v 1.060660 14.250000 -1.060660 +v 0.574024 14.250000 -1.385820 +v 0.000000 14.250000 -1.250000 +v -0.478354 14.250000 -1.154849 +v -0.883883 14.250000 -0.883883 +v -1.154849 14.250000 -0.478354 +v -1.250000 14.250000 0.000000 +v -1.154849 14.250000 0.478354 +v -0.883883 14.250000 0.883883 +v -0.478354 14.250000 1.154849 +v -0.000000 14.250000 1.250000 +v 0.478354 14.250000 1.154850 +v 0.883883 14.250000 0.883884 +v 1.154849 14.250000 0.478354 +v 1.250000 14.250000 -0.000000 +v 1.154849 14.250000 -0.478355 +v 0.883883 14.250000 -0.883884 +v 0.478354 14.250000 -1.154850 +v 0.000000 13.750000 -1.250000 +v -0.478354 13.750000 -1.154849 +v -0.883883 13.750000 -0.883883 +v -1.154849 13.750000 -0.478354 +v -1.250000 13.750000 0.000000 +v -1.154849 13.750000 0.478354 +v -0.883883 13.750000 0.883883 +v -0.478354 13.750000 1.154849 +v -0.000000 13.750000 1.250000 +v 0.478354 13.750000 1.154850 +v 0.883883 13.750000 0.883884 +v 1.154849 13.750000 0.478354 +v 1.250000 13.750000 -0.000000 +v 1.154849 13.750000 -0.478355 +v 0.883883 13.750000 -0.883884 +v 0.478354 13.750000 -1.154850 +v -0.000000 14.000000 -1.500000 +v -0.574025 14.000000 -1.385819 +v -1.060660 14.000000 -1.060660 +v -1.385819 14.000000 -0.574025 +v -1.500000 14.000000 0.000000 +v -1.385819 14.000000 0.574025 +v -1.060660 14.000000 1.060660 +v -0.574025 14.000000 1.385819 +v -0.000000 14.000000 1.500000 +v 0.574025 14.000000 1.385819 +v 1.060660 14.000000 1.060660 +v 1.385819 14.000000 0.574025 +v 1.500000 14.000000 -0.000000 +v 1.385819 14.000000 -0.574025 +v 1.060660 14.000000 -1.060660 +v 0.574024 14.000000 -1.385820 +vt 0.272727 -0.000000 +vt -0.000000 0.129032 +vt -0.000000 -0.000000 +vt -0.000000 0.212366 +vt 0.272727 0.344086 +vt -0.000000 0.344086 +vt 0.170455 0.166667 +vt 0.272727 0.129032 +vt 0.272727 0.212366 +vt 0.102273 0.166667 +vt 0.102273 0.134409 +vt 0.039773 0.362903 +vt 0.073864 0.379032 +vt 0.039773 0.379032 +vt 0.039773 0.384409 +vt 0.073864 0.357527 +vt 0.073864 0.362903 +vt 0.000000 0.354839 +vt 0.011364 0.387097 +vt 0.000000 0.387097 +vt 0.113636 0.387097 +vt 0.102273 0.354839 +vt 0.113636 0.354839 +vt 0.022727 0.349462 +vt 0.090909 0.349462 +vt 0.102273 0.387097 +vt 0.085227 0.362903 +vt 0.090909 0.392473 +vt 0.022727 0.392473 +vt 0.011364 0.354839 +vt 0.028409 0.379032 +vt 0.090909 0.344086 +vt 0.022727 0.344086 +vt 0.022727 0.397849 +vt 0.090909 0.397849 +vt 0.085227 0.379032 +vt 0.028409 0.362903 +vt 0.039773 0.362903 +vt 0.073864 0.379032 +vt 0.039773 0.379032 +vt 0.039773 0.384409 +vt 0.073864 0.357527 +vt 0.073864 0.362903 +vt 0.000000 0.354839 +vt 0.011364 0.387097 +vt 0.000000 0.387097 +vt 0.113636 0.387097 +vt 0.102273 0.354839 +vt 0.113636 0.354839 +vt 0.022727 0.349462 +vt 0.090909 0.349462 +vt 0.102273 0.387097 +vt 0.085227 0.362903 +vt 0.090909 0.392473 +vt 0.022727 0.392473 +vt 0.011364 0.354839 +vt 0.028409 0.379032 +vt 0.090909 0.344086 +vt 0.022727 0.344086 +vt 0.022727 0.397849 +vt 0.090909 0.397849 +vt 0.085227 0.379032 +vt 0.028409 0.362903 +vt 0.039773 0.362903 +vt 0.073864 0.379032 +vt 0.039773 0.379032 +vt 0.039773 0.384409 +vt 0.073864 0.357527 +vt 0.073864 0.362903 +vt 0.000000 0.354839 +vt 0.011364 0.387097 +vt 0.000000 0.387097 +vt 0.113636 0.387097 +vt 0.102273 0.354839 +vt 0.113636 0.354839 +vt 0.022727 0.349462 +vt 0.090909 0.349462 +vt 0.085227 0.379032 +vt 0.102273 0.387097 +vt 0.090909 0.392473 +vt 0.022727 0.392473 +vt 0.028409 0.362903 +vt 0.011364 0.354839 +vt 0.090909 0.344086 +vt 0.022727 0.344086 +vt 0.022727 0.397849 +vt 0.090909 0.397849 +vt 0.039773 0.362903 +vt 0.073864 0.379032 +vt 0.039773 0.379032 +vt 0.073864 0.384409 +vt 0.039773 0.384409 +vt 0.073864 0.357527 +vt 0.073864 0.362903 +vt 0.000000 0.354839 +vt 0.011364 0.387097 +vt 0.000000 0.387097 +vt 0.113636 0.387097 +vt 0.102273 0.354839 +vt 0.113636 0.354839 +vt 0.022727 0.349462 +vt 0.090909 0.349462 +vt 0.085227 0.379032 +vt 0.102273 0.387097 +vt 0.090909 0.392473 +vt 0.022727 0.392473 +vt 0.028409 0.362903 +vt 0.011364 0.354839 +vt 0.090909 0.344086 +vt 0.022727 0.344086 +vt 0.022727 0.397849 +vt 0.090909 0.397849 +vt -0.000000 0.129032 +vt 0.102273 0.166667 +vt -0.000000 0.215054 +vt 0.170455 0.134409 +vt 0.272727 0.129032 +vt 0.272727 0.215054 +vt 0.170455 0.166667 +vt 0.102273 0.166667 +vt 0.000000 0.129032 +vt 0.102273 0.134409 +vt 0.272727 0.215054 +vt 0.000000 0.215054 +vt 0.272727 0.129032 +vt 0.170455 0.166667 +vt 0.170455 0.134409 +vt 0.102273 0.166667 +vt -0.000000 0.129032 +vt 0.102273 0.134409 +vt 0.272727 0.129032 +vt 0.170455 0.166667 +vt 0.272727 0.215054 +vt -0.000000 0.215054 +vt 0.863636 0.903226 +vt 0.823864 0.913979 +vt 0.818182 0.903226 +vt 0.778409 0.913979 +vt 0.772727 0.903226 +vt 0.727273 0.903226 +vt 0.767045 0.913979 +vt 0.732955 0.913979 +vt 0.687500 0.913979 +vt 0.681818 0.903226 +vt 0.642045 0.913979 +vt 0.636364 0.903226 +vt 0.596591 0.913979 +vt 0.590909 0.903226 +vt 0.545455 0.903226 +vt 0.585227 0.913979 +vt 0.551136 0.913979 +vt 0.500000 0.903226 +vt 0.539773 0.913979 +vt 0.505682 0.913979 +vt 0.454545 0.903226 +vt 0.494318 0.913979 +vt 0.460227 0.913979 +vt 0.409091 0.903226 +vt 0.448864 0.913979 +vt 0.414773 0.913979 +vt 0.363636 0.903226 +vt 0.403409 0.913979 +vt 0.369318 0.913979 +vt 0.323864 0.913979 +vt 0.318182 0.903226 +vt 0.278409 0.913979 +vt 0.272727 0.903226 +vt 1.000000 0.903226 +vt 0.960227 0.913979 +vt 0.954545 0.903226 +vt 0.914773 0.913979 +vt 0.909091 0.903226 +vt 0.869318 0.913979 +vt 0.026682 0.410473 +vt 0.090909 0.397887 +vt 0.181740 0.440860 +vt 0.227273 0.666667 +vt 0.204545 0.688172 +vt 0.204545 0.666667 +vt 0.227273 0.365591 +vt 0.204545 0.344086 +vt 0.227273 0.344086 +vt 0.227273 0.387097 +vt 0.204545 0.365591 +vt 0.227273 0.408602 +vt 0.204545 0.387097 +vt 0.227273 0.430108 +vt 0.204545 0.408602 +vt 0.227273 0.451613 +vt 0.204545 0.430108 +vt 0.227273 0.473118 +vt 0.204545 0.451613 +vt 0.227273 0.494624 +vt 0.204545 0.473118 +vt 0.227273 0.516129 +vt 0.204545 0.494624 +vt 0.204545 0.537634 +vt 0.204545 0.516129 +vt 0.227273 0.537634 +vt 0.204545 0.559140 +vt 0.227273 0.559140 +vt 0.204545 0.580645 +vt 0.227273 0.580645 +vt 0.204545 0.602151 +vt 0.227273 0.602151 +vt 0.204545 0.623656 +vt 0.227273 0.623656 +vt 0.204545 0.645161 +vt 0.227273 0.645161 +vt 0.227273 0.666667 +vt 0.204545 0.688172 +vt 0.204545 0.666667 +vt 0.227273 0.365591 +vt 0.204545 0.344086 +vt 0.227273 0.344086 +vt 0.227273 0.387097 +vt 0.204545 0.365591 +vt 0.227273 0.408602 +vt 0.204545 0.387097 +vt 0.227273 0.430108 +vt 0.204545 0.408602 +vt 0.227273 0.451613 +vt 0.204545 0.430108 +vt 0.227273 0.473118 +vt 0.204545 0.451613 +vt 0.227273 0.494624 +vt 0.204545 0.473118 +vt 0.227273 0.516129 +vt 0.204545 0.494624 +vt 0.204545 0.537634 +vt 0.204545 0.516129 +vt 0.227273 0.537634 +vt 0.204545 0.559140 +vt 0.227273 0.559140 +vt 0.204545 0.580645 +vt 0.227273 0.580645 +vt 0.204545 0.602151 +vt 0.227273 0.602151 +vt 0.204545 0.623656 +vt 0.227273 0.623656 +vt 0.204545 0.645161 +vt 0.227273 0.645161 +vt 0.170455 0.134409 +vt 0.073864 0.384409 +vt 0.039773 0.357527 +vt 0.073864 0.384409 +vt 0.039773 0.357527 +vt 0.073864 0.384409 +vt 0.039773 0.357527 +vt 0.085227 0.362903 +vt 0.028409 0.379032 +vt 0.039773 0.357527 +vt 0.085227 0.362903 +vt 0.028409 0.379032 +vt 0.102273 0.134409 +vt 0.170455 0.134409 +vt 0.857955 0.913979 +vt 0.812500 0.913979 +vt 0.721591 0.913979 +vt 0.676136 0.913979 +vt 0.630682 0.913979 +vt 0.357955 0.913979 +vt 0.312500 0.913979 +vt 0.994318 0.913979 +vt 0.948864 0.913979 +vt 0.903409 0.913979 +vt 0.174826 0.457305 +vt 0.155136 0.471247 +vt 0.125668 0.480563 +vt 0.090909 0.483834 +vt 0.056150 0.480563 +vt 0.026682 0.471247 +vt 0.006992 0.457305 +vt 0.000078 0.440860 +vt 0.006993 0.424415 +vt 0.056150 0.401158 +vt 0.125668 0.401158 +vt 0.155136 0.410473 +vt 0.174826 0.424415 +vt 0.227273 0.688172 +vt 0.227273 0.688172 +vt 0.363636 0.344086 +vt 0.318182 0.344086 +vt 0.727273 0.344086 +vt 0.681818 0.344086 +vt 0.409091 0.344086 +vt 0.772727 0.344086 +vt 0.454545 0.344086 +vt 0.863636 0.344086 +vt 0.818182 0.344086 +vt 0.500000 0.344086 +vt 0.909091 0.344086 +vt 0.545455 0.344086 +vt 0.954545 0.344086 +vt 0.590909 0.344086 +vt 1.000000 0.344086 +vt 0.636364 0.344086 +vt 0.272727 0.344086 +vt 0.505682 1.000000 +vt 0.914773 1.000000 +vt 0.551136 1.000000 +vt 0.960227 1.000000 +vt 0.596591 1.000000 +vt 0.278409 1.000000 +vt 0.642045 1.000000 +vt 0.323864 1.000000 +vt 0.687500 1.000000 +vt 0.369318 1.000000 +vt 0.732955 1.000000 +vt 0.414773 1.000000 +vt 0.823864 1.000000 +vt 0.778409 1.000000 +vt 0.460227 1.000000 +vt 0.869318 1.000000 +vt 0.909091 0.000000 +vt 0.954545 0.000000 +vt 0.272727 -0.000000 +vt 0.318182 -0.000000 +vt 0.363636 -0.000000 +vt 0.409091 -0.000000 +vt 0.454545 0.000000 +vt 0.545455 -0.000000 +vt 0.590909 0.000000 +vt 0.681818 0.000000 +vt 0.772727 -0.000000 +vt 0.818182 -0.000000 +vt 0.250000 0.451613 +vt 0.250000 0.645161 +vt 0.250000 0.473118 +vt 0.250000 0.666667 +vt 0.250000 0.494624 +vt 0.250000 0.344086 +vt 0.250000 0.516129 +vt 0.250000 0.365591 +vt 0.250000 0.537634 +vt 0.250000 0.387097 +vt 0.250000 0.559140 +vt 0.250000 0.408602 +vt 0.250000 0.602151 +vt 0.250000 0.580645 +vt 0.250000 0.430108 +vt 0.250000 0.623656 +vt 0.272727 0.688172 +vt 0.272727 0.666667 +vt 0.272727 0.365591 +vt 0.272727 0.344086 +vt 0.272727 0.387097 +vt 0.272727 0.408602 +vt 0.272727 0.430108 +vt 0.272727 0.451613 +vt 0.272727 0.473118 +vt 0.272727 0.516129 +vt 0.272727 0.494624 +vt 0.272727 0.537634 +vt 0.272727 0.559140 +vt 0.272727 0.580645 +vt 0.272727 0.602151 +vt 0.272727 0.623656 +vt 0.272727 0.645161 +vt 0.250000 0.451613 +vt 0.250000 0.645161 +vt 0.250000 0.473118 +vt 0.250000 0.666667 +vt 0.250000 0.494624 +vt 0.250000 0.344086 +vt 0.250000 0.516129 +vt 0.250000 0.365591 +vt 0.250000 0.537634 +vt 0.250000 0.387097 +vt 0.250000 0.559140 +vt 0.250000 0.408602 +vt 0.250000 0.602151 +vt 0.250000 0.580645 +vt 0.250000 0.430108 +vt 0.250000 0.623656 +vt 0.272727 0.688172 +vt 0.272727 0.666667 +vt 0.272727 0.365591 +vt 0.272727 0.344086 +vt 0.272727 0.387097 +vt 0.272727 0.408602 +vt 0.272727 0.430108 +vt 0.272727 0.451613 +vt 0.272727 0.473118 +vt 0.272727 0.516129 +vt 0.272727 0.494624 +vt 0.272727 0.537634 +vt 0.272727 0.559140 +vt 0.272727 0.580645 +vt 0.272727 0.602151 +vt 0.272727 0.623656 +vt 0.272727 0.645161 +vt 0.539773 1.000000 +vt 0.948864 1.000000 +vt 0.585227 1.000000 +vt 0.994318 1.000000 +vt 0.630682 1.000000 +vt 0.312500 1.000000 +vt 0.676136 1.000000 +vt 0.357955 1.000000 +vt 0.721591 1.000000 +vt 0.403409 1.000000 +vt 0.767045 1.000000 +vt 0.448864 1.000000 +vt 0.857955 1.000000 +vt 0.812500 1.000000 +vt 0.494318 1.000000 +vt 0.903409 1.000000 +vt 1.000000 0.000000 +vt 0.500000 0.000000 +vt 0.636364 0.000000 +vt 0.727273 -0.000000 +vt 0.863636 -0.000000 +vt 0.250000 0.688172 +vt 0.250000 0.688172 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn -0.7071 0.0000 0.7071 +vn -0.9239 0.0000 0.3827 +vn 0.7071 0.0000 -0.7071 +vn 0.9239 0.0000 -0.3827 +vn -0.3827 0.0000 0.9239 +vn 0.3827 0.0000 -0.9239 +vn -0.3827 0.0000 -0.9239 +vn 0.3827 0.0000 0.9239 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +vn -0.9239 0.0000 -0.3827 +vn 0.9239 0.0000 0.3827 +vn -0.7068 0.0312 -0.7068 +vn -0.9234 0.0312 -0.3825 +vn -0.9995 0.0312 -0.0000 +vn -0.9234 0.0312 0.3825 +vn -0.7068 0.0312 0.7068 +vn -0.3825 0.0312 0.9234 +vn -0.0000 0.0312 0.9995 +vn 0.3825 0.0312 0.9234 +vn 0.7068 0.0312 0.7068 +vn 0.9234 0.0312 0.3825 +vn 0.9995 0.0312 -0.0000 +vn 0.9234 0.0312 -0.3825 +vn 0.7068 0.0312 -0.7068 +vn 0.3825 0.0312 -0.9234 +vn -0.0000 0.0312 -0.9995 +vn -0.3825 0.0312 -0.9234 +vn -0.7071 -0.7071 -0.0000 +vn -0.6533 -0.7071 -0.2706 +vn -0.6533 -0.7071 0.2706 +vn -0.5000 -0.7071 0.5000 +vn -0.2706 -0.7071 0.6533 +vn -0.0000 -0.7071 0.7071 +vn 0.2706 -0.7071 0.6533 +vn 0.5000 -0.7071 0.5000 +vn 0.6533 -0.7071 0.2706 +vn 0.7071 -0.7071 -0.0000 +vn 0.6533 -0.7071 -0.2706 +vn 0.5000 -0.7071 -0.5000 +vn 0.2706 -0.7071 -0.6533 +vn -0.0000 -0.7071 -0.7071 +vn -0.2706 -0.7071 -0.6533 +vn -0.5000 -0.7071 -0.5000 +s off +f 3/1/1 2/2/1 1/3/1 +f 6/4/2 7/5/2 5/6/2 +f 11/7/3 4/8/3 8/9/3 +f 9/10/3 2/2/3 10/11/3 +f 9/10/3 8/9/3 6/4/3 +f 4/8/3 10/11/3 2/2/3 +f 14/12/3 15/13/3 13/14/3 +f 15/13/2 22/15/2 13/14/2 +f 14/12/1 24/16/1 16/17/1 +f 10/18/4 18/19/4 9/20/4 +f 11/21/5 20/22/5 12/23/5 +f 24/16/3 19/24/3 20/25/3 +f 17/26/3 24/27/3 20/22/3 +f 22/15/3 17/28/3 18/29/3 +f 19/30/3 22/31/3 18/19/3 +f 12/32/2 19/24/2 10/33/2 +f 9/34/1 17/28/1 11/35/1 +f 16/17/4 21/36/4 15/13/4 +f 13/14/5 23/37/5 14/12/5 +f 30/38/6 31/39/6 29/40/6 +f 31/39/2 38/41/2 29/40/2 +f 30/38/1 40/42/1 32/43/1 +f 26/44/5 34/45/5 25/46/5 +f 27/47/4 36/48/4 28/49/4 +f 40/42/6 35/50/6 36/51/6 +f 33/52/6 40/53/6 36/48/6 +f 38/41/6 33/54/6 34/55/6 +f 35/56/6 38/57/6 34/45/6 +f 28/58/2 35/50/2 26/59/2 +f 25/60/1 33/54/1 27/61/1 +f 32/43/5 37/62/5 31/39/5 +f 29/40/4 39/63/4 30/38/4 +f 46/64/4 47/65/4 45/66/4 +f 47/65/2 54/67/2 45/66/2 +f 46/64/1 56/68/1 48/69/1 +f 42/70/6 50/71/6 41/72/6 +f 43/73/3 52/74/3 44/75/3 +f 56/68/4 51/76/4 52/77/4 +f 53/78/4 52/74/4 49/79/4 +f 54/67/4 49/80/4 50/81/4 +f 55/82/4 50/71/4 51/83/4 +f 44/84/2 51/76/2 42/85/2 +f 41/86/1 49/80/1 43/87/1 +f 48/69/6 53/78/6 47/65/6 +f 45/66/3 55/82/3 46/64/3 +f 62/88/5 63/89/5 61/90/5 +f 61/90/2 69/91/2 70/92/2 +f 62/88/1 72/93/1 64/94/1 +f 58/95/3 66/96/3 57/97/3 +f 59/98/6 68/99/6 60/100/6 +f 72/93/5 67/101/5 68/102/5 +f 69/103/5 68/99/5 65/104/5 +f 70/92/5 65/105/5 66/106/5 +f 71/107/5 66/96/5 67/108/5 +f 60/109/2 67/101/2 58/110/2 +f 57/111/1 65/105/1 59/112/1 +f 64/94/3 69/103/3 63/89/3 +f 61/90/6 71/107/6 62/88/6 +f 4/113/4 41/114/4 8/115/4 +f 44/116/4 4/113/4 3/117/4 +f 41/114/4 7/118/4 8/115/4 +f 43/119/4 3/117/4 7/118/4 +f 25/120/6 3/121/6 26/122/6 +f 25/120/6 5/123/6 7/124/6 +f 1/125/6 26/122/6 3/121/6 +f 1/125/6 27/126/6 28/127/6 +f 57/128/5 1/129/5 58/130/5 +f 2/131/5 58/130/5 1/129/5 +f 59/132/5 2/131/5 6/133/5 +f 57/128/5 6/133/5 5/134/5 +f 90/135/2 105/136/2 89/137/2 +f 89/137/2 120/138/2 104/139/2 +f 103/140/2 120/141/2 119/142/2 +f 103/140/2 118/143/2 102/144/2 +f 102/144/2 117/145/2 101/146/2 +f 101/146/2 116/147/2 100/148/2 +f 99/149/2 116/150/2 115/151/2 +f 98/152/2 115/153/2 114/154/2 +f 97/155/2 114/156/2 113/157/2 +f 96/158/2 113/159/2 112/160/2 +f 95/161/2 112/162/2 111/163/2 +f 95/161/2 110/164/2 94/165/2 +f 94/165/2 109/166/2 93/167/2 +f 93/168/2 108/169/2 92/170/2 +f 92/170/2 107/171/2 91/172/2 +f 91/172/2 106/173/2 90/135/2 +f 131/174/2 133/175/2 121/176/2 +f 156/177/2 173/178/2 172/179/2 +f 158/180/2 173/181/2 157/182/2 +f 159/183/2 174/184/2 158/180/2 +f 160/185/2 175/186/2 159/183/2 +f 161/187/2 176/188/2 160/185/2 +f 162/189/2 177/190/2 161/187/2 +f 163/191/2 178/192/2 162/189/2 +f 164/193/2 179/194/2 163/191/2 +f 165/195/2 180/196/2 164/193/2 +f 165/195/2 182/197/2 181/198/2 +f 166/199/2 183/200/2 182/197/2 +f 167/201/2 184/202/2 183/200/2 +f 168/203/2 169/204/2 184/202/2 +f 153/205/2 170/206/2 169/204/2 +f 154/207/2 171/208/2 170/206/2 +f 155/209/2 172/179/2 171/208/2 +f 220/210/2 237/211/2 236/212/2 +f 222/213/2 237/214/2 221/215/2 +f 223/216/2 238/217/2 222/213/2 +f 224/218/2 239/219/2 223/216/2 +f 225/220/2 240/221/2 224/218/2 +f 226/222/2 241/223/2 225/220/2 +f 227/224/2 242/225/2 226/222/2 +f 228/226/2 243/227/2 227/224/2 +f 229/228/2 244/229/2 228/226/2 +f 229/228/2 246/230/2 245/231/2 +f 230/232/2 247/233/2 246/230/2 +f 231/234/2 248/235/2 247/233/2 +f 232/236/2 233/237/2 248/235/2 +f 217/238/2 234/239/2 233/237/2 +f 218/240/2 235/241/2 234/239/2 +f 219/242/2 236/212/2 235/241/2 +f 3/1/1 4/8/1 2/2/1 +f 6/4/2 8/9/2 7/5/2 +f 11/7/3 12/243/3 4/8/3 +f 9/10/3 6/4/3 2/2/3 +f 9/10/3 11/7/3 8/9/3 +f 4/8/3 12/243/3 10/11/3 +f 14/12/3 16/17/3 15/13/3 +f 15/13/2 21/244/2 22/15/2 +f 14/12/1 23/245/1 24/16/1 +f 10/18/4 19/30/4 18/19/4 +f 11/21/5 17/26/5 20/22/5 +f 24/16/3 23/245/3 19/24/3 +f 17/26/3 21/36/3 24/27/3 +f 22/15/3 21/244/3 17/28/3 +f 19/30/3 23/37/3 22/31/3 +f 12/32/2 20/25/2 19/24/2 +f 9/34/1 18/29/1 17/28/1 +f 16/17/4 24/27/4 21/36/4 +f 13/14/5 22/31/5 23/37/5 +f 30/38/6 32/43/6 31/39/6 +f 31/39/2 37/246/2 38/41/2 +f 30/38/1 39/247/1 40/42/1 +f 26/44/5 35/56/5 34/45/5 +f 27/47/4 33/52/4 36/48/4 +f 40/42/6 39/247/6 35/50/6 +f 33/52/6 37/62/6 40/53/6 +f 38/41/6 37/246/6 33/54/6 +f 35/56/6 39/63/6 38/57/6 +f 28/58/2 36/51/2 35/50/2 +f 25/60/1 34/55/1 33/54/1 +f 32/43/5 40/53/5 37/62/5 +f 29/40/4 38/57/4 39/63/4 +f 46/64/4 48/69/4 47/65/4 +f 47/65/2 53/248/2 54/67/2 +f 46/64/1 55/249/1 56/68/1 +f 42/70/6 51/83/6 50/71/6 +f 43/73/3 49/79/3 52/74/3 +f 56/68/4 55/249/4 51/76/4 +f 53/78/4 56/250/4 52/74/4 +f 54/67/4 53/248/4 49/80/4 +f 55/82/4 54/251/4 50/71/4 +f 44/84/2 52/77/2 51/76/2 +f 41/86/1 50/81/1 49/80/1 +f 48/69/6 56/250/6 53/78/6 +f 45/66/3 54/251/3 55/82/3 +f 62/88/5 64/94/5 63/89/5 +f 61/90/2 63/89/2 69/91/2 +f 62/88/1 71/252/1 72/93/1 +f 58/95/3 67/108/3 66/96/3 +f 59/98/6 65/104/6 68/99/6 +f 72/93/5 71/252/5 67/101/5 +f 69/103/5 72/253/5 68/99/5 +f 70/92/5 69/91/5 65/105/5 +f 71/107/5 70/254/5 66/96/5 +f 60/109/2 68/102/2 67/101/2 +f 57/111/1 66/106/1 65/105/1 +f 64/94/3 72/253/3 69/103/3 +f 61/90/6 70/254/6 71/107/6 +f 4/113/4 42/255/4 41/114/4 +f 44/116/4 42/255/4 4/113/4 +f 41/114/4 43/119/4 7/118/4 +f 43/119/4 44/116/4 3/117/4 +f 25/120/6 7/124/6 3/121/6 +f 25/120/6 27/126/6 5/123/6 +f 1/125/6 28/127/6 26/122/6 +f 1/125/6 5/123/6 27/126/6 +f 57/128/5 5/134/5 1/129/5 +f 2/131/5 60/256/5 58/130/5 +f 59/132/5 60/256/5 2/131/5 +f 57/128/5 59/132/5 6/133/5 +f 90/135/2 106/257/2 105/136/2 +f 89/137/2 105/258/2 120/138/2 +f 103/140/2 104/139/2 120/141/2 +f 103/140/2 119/259/2 118/143/2 +f 102/144/2 118/260/2 117/145/2 +f 101/146/2 117/261/2 116/147/2 +f 99/149/2 100/148/2 116/150/2 +f 98/152/2 99/149/2 115/153/2 +f 97/155/2 98/152/2 114/156/2 +f 96/158/2 97/155/2 113/159/2 +f 95/161/2 96/158/2 112/162/2 +f 95/161/2 111/262/2 110/164/2 +f 94/165/2 110/263/2 109/166/2 +f 93/168/2 109/264/2 108/169/2 +f 92/170/2 108/265/2 107/171/2 +f 91/172/2 107/266/2 106/173/2 +f 121/176/2 122/267/2 123/268/2 +f 123/268/2 124/269/2 125/270/2 +f 125/270/2 126/271/2 127/272/2 +f 127/272/2 128/273/2 129/274/2 +f 129/274/2 130/275/2 131/174/2 +f 131/174/2 132/276/2 133/175/2 +f 133/175/2 134/277/2 121/176/2 +f 134/277/2 135/278/2 121/176/2 +f 135/278/2 136/279/2 121/176/2 +f 121/176/2 123/268/2 125/270/2 +f 125/270/2 127/272/2 121/176/2 +f 127/272/2 129/274/2 121/176/2 +f 129/274/2 131/174/2 121/176/2 +f 156/177/2 157/280/2 173/178/2 +f 158/180/2 174/184/2 173/181/2 +f 159/183/2 175/186/2 174/184/2 +f 160/185/2 176/188/2 175/186/2 +f 161/187/2 177/190/2 176/188/2 +f 162/189/2 178/192/2 177/190/2 +f 163/191/2 179/194/2 178/192/2 +f 164/193/2 180/196/2 179/194/2 +f 165/195/2 181/198/2 180/196/2 +f 165/195/2 166/199/2 182/197/2 +f 166/199/2 167/201/2 183/200/2 +f 167/201/2 168/203/2 184/202/2 +f 168/203/2 153/205/2 169/204/2 +f 153/205/2 154/207/2 170/206/2 +f 154/207/2 155/209/2 171/208/2 +f 155/209/2 156/177/2 172/179/2 +f 220/210/2 221/281/2 237/211/2 +f 222/213/2 238/217/2 237/214/2 +f 223/216/2 239/219/2 238/217/2 +f 224/218/2 240/221/2 239/219/2 +f 225/220/2 241/223/2 240/221/2 +f 226/222/2 242/225/2 241/223/2 +f 227/224/2 243/227/2 242/225/2 +f 228/226/2 244/229/2 243/227/2 +f 229/228/2 245/231/2 244/229/2 +f 229/228/2 230/232/2 246/230/2 +f 230/232/2 231/234/2 247/233/2 +f 231/234/2 232/236/2 248/235/2 +f 232/236/2 217/238/2 233/237/2 +f 217/238/2 218/240/2 234/239/2 +f 218/240/2 219/242/2 235/241/2 +f 219/242/2 220/210/2 236/212/2 +s 1 +f 79/282/7 94/165/8 78/283/8 +f 87/284/9 102/144/10 86/285/10 +f 80/286/11 95/161/7 79/282/7 +f 88/287/12 103/140/9 87/284/9 +f 81/288/5 96/158/11 80/286/11 +f 74/289/13 89/137/4 73/290/4 +f 73/290/4 104/139/12 88/287/12 +f 82/291/14 97/155/5 81/288/5 +f 75/292/15 90/135/13 74/289/13 +f 83/293/16 98/152/14 82/291/14 +f 76/294/17 91/172/15 75/292/15 +f 84/295/18 99/149/16 83/293/16 +f 77/296/6 92/170/17 76/294/17 +f 85/297/3 100/148/18 84/295/18 +f 78/283/8 93/167/6 77/298/6 +f 86/285/10 101/146/3 85/297/3 +f 115/153/15 130/299/13 114/154/13 +f 108/265/18 123/300/16 107/171/16 +f 116/150/17 131/301/15 115/151/15 +f 109/264/3 124/302/18 108/169/18 +f 117/261/6 132/303/17 116/147/17 +f 110/263/10 125/304/3 109/166/3 +f 118/260/8 133/305/6 117/145/6 +f 111/262/9 126/306/10 110/164/10 +f 119/259/7 134/307/8 118/143/8 +f 112/162/12 127/308/9 111/163/9 +f 120/141/11 135/309/7 119/142/7 +f 113/159/4 128/310/12 112/160/12 +f 106/257/14 121/311/5 105/136/5 +f 105/258/5 136/312/11 120/138/11 +f 114/156/13 129/313/4 113/157/4 +f 107/266/16 122/314/14 106/173/14 +f 139/315/19 76/294/20 75/292/19 +f 140/316/20 77/296/21 76/294/20 +f 141/317/21 78/283/22 77/298/21 +f 142/318/22 79/282/23 78/283/22 +f 143/319/23 80/286/24 79/282/23 +f 144/320/24 81/288/25 80/286/24 +f 145/321/25 82/291/26 81/288/25 +f 82/291/26 147/322/27 83/293/27 +f 147/322/27 84/295/28 83/293/27 +f 148/323/28 85/297/29 84/295/28 +f 85/297/29 150/324/30 86/285/30 +f 150/324/30 87/284/31 86/285/30 +f 87/284/31 152/325/32 88/287/32 +f 152/325/32 73/290/33 88/287/32 +f 137/326/33 74/289/34 73/290/33 +f 74/289/34 139/315/19 75/292/19 +f 210/327/14 163/191/16 162/189/14 +f 203/328/15 156/177/17 155/209/15 +f 211/329/16 164/193/18 163/191/16 +f 204/330/17 157/280/6 156/177/17 +f 212/331/18 165/195/3 164/193/18 +f 205/332/6 158/180/8 157/182/6 +f 213/333/3 166/199/10 165/195/3 +f 206/334/8 159/183/7 158/180/8 +f 214/335/10 167/201/9 166/199/10 +f 207/336/7 160/185/11 159/183/7 +f 215/337/9 168/203/12 167/201/9 +f 208/338/11 161/187/5 160/185/11 +f 201/339/4 154/207/13 153/205/4 +f 216/340/12 153/205/4 168/203/12 +f 209/341/5 162/189/14 161/187/5 +f 202/342/13 155/209/15 154/207/13 +f 189/343/35 204/330/36 188/344/36 +f 190/345/37 205/332/35 189/346/35 +f 191/347/38 206/334/37 190/345/37 +f 191/347/38 208/338/39 207/336/38 +f 192/348/39 209/341/40 208/338/39 +f 193/349/40 210/327/41 209/341/40 +f 194/350/41 211/329/42 210/327/41 +f 195/351/42 212/331/43 211/329/42 +f 197/352/44 212/331/43 196/353/43 +f 198/354/45 213/333/44 197/352/44 +f 199/355/46 214/335/45 198/354/45 +f 200/356/47 215/337/46 199/355/46 +f 185/357/48 216/340/47 200/356/47 +f 186/358/49 201/339/48 185/357/48 +f 187/359/50 202/342/49 186/358/49 +f 188/344/36 203/328/50 187/359/50 +f 274/360/14 227/224/16 226/222/14 +f 267/361/15 220/210/17 219/242/15 +f 275/362/16 228/226/18 227/224/16 +f 268/363/17 221/281/6 220/210/17 +f 276/364/18 229/228/3 228/226/18 +f 269/365/6 222/213/8 221/215/6 +f 277/366/3 230/232/10 229/228/3 +f 270/367/8 223/216/7 222/213/8 +f 278/368/10 231/234/9 230/232/10 +f 271/369/7 224/218/11 223/216/7 +f 279/370/9 232/236/12 231/234/9 +f 272/371/11 225/220/5 224/218/11 +f 265/372/4 218/240/13 217/238/4 +f 280/373/12 217/238/4 232/236/12 +f 273/374/5 226/222/14 225/220/5 +f 266/375/13 219/242/15 218/240/13 +f 253/376/35 268/363/36 252/377/36 +f 254/378/37 269/365/35 253/379/35 +f 254/378/37 271/369/38 270/367/37 +f 255/380/38 272/371/39 271/369/38 +f 256/381/39 273/374/40 272/371/39 +f 257/382/40 274/360/41 273/374/40 +f 258/383/41 275/362/42 274/360/41 +f 259/384/42 276/364/43 275/362/42 +f 261/385/44 276/364/43 260/386/43 +f 262/387/45 277/366/44 261/385/44 +f 263/388/46 278/368/45 262/387/45 +f 264/389/47 279/370/46 263/388/46 +f 249/390/48 280/373/47 264/389/47 +f 250/391/49 265/372/48 249/390/48 +f 251/392/50 266/375/49 250/391/49 +f 252/377/36 267/361/50 251/392/50 +f 79/282/7 95/161/7 94/165/8 +f 87/284/9 103/140/9 102/144/10 +f 80/286/11 96/158/11 95/161/7 +f 88/287/12 104/139/12 103/140/9 +f 81/288/5 97/155/5 96/158/11 +f 74/289/13 90/135/13 89/137/4 +f 73/290/4 89/137/4 104/139/12 +f 82/291/14 98/152/14 97/155/5 +f 75/292/15 91/172/15 90/135/13 +f 83/293/16 99/149/16 98/152/14 +f 76/294/17 92/170/17 91/172/15 +f 84/295/18 100/148/18 99/149/16 +f 77/296/6 93/168/6 92/170/17 +f 85/297/3 101/146/3 100/148/18 +f 78/283/8 94/165/8 93/167/6 +f 86/285/10 102/144/10 101/146/3 +f 115/153/15 131/393/15 130/299/13 +f 108/265/18 124/394/18 123/300/16 +f 116/150/17 132/395/17 131/301/15 +f 109/264/3 125/396/3 124/302/18 +f 117/261/6 133/397/6 132/303/17 +f 110/263/10 126/398/10 125/304/3 +f 118/260/8 134/399/8 133/305/6 +f 111/262/9 127/400/9 126/306/10 +f 119/259/7 135/401/7 134/307/8 +f 112/162/12 128/402/12 127/308/9 +f 120/141/11 136/403/11 135/309/7 +f 113/159/4 129/404/4 128/310/12 +f 106/257/14 122/405/14 121/311/5 +f 105/258/5 121/406/5 136/312/11 +f 114/156/13 130/407/13 129/313/4 +f 107/266/16 123/408/16 122/314/14 +f 139/315/19 140/316/20 76/294/20 +f 140/316/20 141/409/21 77/296/21 +f 141/317/21 142/318/22 78/283/22 +f 142/318/22 143/319/23 79/282/23 +f 143/319/23 144/320/24 80/286/24 +f 144/320/24 145/321/25 81/288/25 +f 145/321/25 146/410/26 82/291/26 +f 82/291/26 146/410/26 147/322/27 +f 147/322/27 148/323/28 84/295/28 +f 148/323/28 149/411/29 85/297/29 +f 85/297/29 149/411/29 150/324/30 +f 150/324/30 151/412/31 87/284/31 +f 87/284/31 151/412/31 152/325/32 +f 152/325/32 137/326/33 73/290/33 +f 137/326/33 138/413/34 74/289/34 +f 74/289/34 138/413/34 139/315/19 +f 210/327/14 211/329/16 163/191/16 +f 203/328/15 204/330/17 156/177/17 +f 211/329/16 212/331/18 164/193/18 +f 204/330/17 205/414/6 157/280/6 +f 212/331/18 213/333/3 165/195/3 +f 205/332/6 206/334/8 158/180/8 +f 213/333/3 214/335/10 166/199/10 +f 206/334/8 207/336/7 159/183/7 +f 214/335/10 215/337/9 167/201/9 +f 207/336/7 208/338/11 160/185/11 +f 215/337/9 216/340/12 168/203/12 +f 208/338/11 209/341/5 161/187/5 +f 201/339/4 202/342/13 154/207/13 +f 216/340/12 201/339/4 153/205/4 +f 209/341/5 210/327/14 162/189/14 +f 202/342/13 203/328/15 155/209/15 +f 189/343/35 205/414/35 204/330/36 +f 190/345/37 206/334/37 205/332/35 +f 191/347/38 207/336/38 206/334/37 +f 191/347/38 192/348/39 208/338/39 +f 192/348/39 193/349/40 209/341/40 +f 193/349/40 194/350/41 210/327/41 +f 194/350/41 195/351/42 211/329/42 +f 195/351/42 196/353/43 212/331/43 +f 197/352/44 213/333/44 212/331/43 +f 198/354/45 214/335/45 213/333/44 +f 199/355/46 215/337/46 214/335/45 +f 200/356/47 216/340/47 215/337/46 +f 185/357/48 201/339/48 216/340/47 +f 186/358/49 202/342/49 201/339/48 +f 187/359/50 203/328/50 202/342/49 +f 188/344/36 204/330/36 203/328/50 +f 274/360/14 275/362/16 227/224/16 +f 267/361/15 268/363/17 220/210/17 +f 275/362/16 276/364/18 228/226/18 +f 268/363/17 269/415/6 221/281/6 +f 276/364/18 277/366/3 229/228/3 +f 269/365/6 270/367/8 222/213/8 +f 277/366/3 278/368/10 230/232/10 +f 270/367/8 271/369/7 223/216/7 +f 278/368/10 279/370/9 231/234/9 +f 271/369/7 272/371/11 224/218/11 +f 279/370/9 280/373/12 232/236/12 +f 272/371/11 273/374/5 225/220/5 +f 265/372/4 266/375/13 218/240/13 +f 280/373/12 265/372/4 217/238/4 +f 273/374/5 274/360/14 226/222/14 +f 266/375/13 267/361/15 219/242/15 +f 253/376/35 269/415/35 268/363/36 +f 254/378/37 270/367/37 269/365/35 +f 254/378/37 255/380/38 271/369/38 +f 255/380/38 256/381/39 272/371/39 +f 256/381/39 257/382/40 273/374/40 +f 257/382/40 258/383/41 274/360/41 +f 258/383/41 259/384/42 275/362/42 +f 259/384/42 260/386/43 276/364/43 +f 261/385/44 277/366/44 276/364/43 +f 262/387/45 278/368/45 277/366/44 +f 263/388/46 279/370/46 278/368/45 +f 264/389/47 280/373/47 279/370/46 +f 249/390/48 265/372/48 280/373/47 +f 250/391/49 266/375/49 265/372/48 +f 251/392/50 267/361/50 266/375/49 +f 252/377/36 268/363/36 267/361/50 diff --git a/src/main/resources/assets/hbm/textures/items/powder_ash.fly.png b/src/main/resources/assets/hbm/textures/items/powder_ash.fly.png new file mode 100644 index 0000000000000000000000000000000000000000..15e4bae5ca8174fa2bc7b5dea5b11cf20dc56d32 GIT binary patch literal 288 zcmV+*0pI?KP)3hVcYP3VPF5HEmP?00004-S<7$a-PR^oX2raxW3+v%F(de(8SjNbAW&{Cjcdj}=?fX%kr&z$+VCsqEBrmo zio|o*n#yi7I?27YnT;zukt~IrY7TCSG;e-e2CFFBeAm`M*q?}GjSR4E4raa19pxwU z&b;pr=rMVF`qY)b*E<$wXA3%_tbD_wUcXtyq!5XV?N3aWg7m%Z{Ot2yChTQ6=}WA8QIC-2j6_bK`-(po3Ox?MGBb%X^{5qw19B;$EzOHBTEN^*WDxGjoZ zg+=CHdxLp3&3w{9kB{8H)pgTaSRlkPMrB!`GFp_8CWMVYM1!#?KL}O3V}GH{6hhy# z-ShZ+wX(bNn==j=5j+o*m`S}N_CbkZP>%{v_7%P^6NzWm{_2}xDZ**IT8v?N0bejR zBG}dN@Jx$Kc!8bk7cRvL(Uwb#Fpr#dF+KggE1^*_ObU@O7Dg|@d|Zv6o>iDWBv!QT zSy&wX($&g=<*s{ysBQ4GGE+sOwz>>wyOEr!`w>x|v3x9&=i}j4bOcYJA@uxqebG)_ z+u9-*1tn z$iNYL{xqbPh|iL{>j}s0NVer=HAkd8!Id6=f=LV;^)VpqNMr2X@60jBAJH%|$!7Z5 zVM9@G!EPS$2IsQJ!dr@}K8G7^xW~6ipF6rF;CrF*Y`BTOq)JSwx6JFzjSp!X( z2L{o~Aqmg;I5pkuPZE@Gfv4P%cusw7b;ehPx9*H+wWWG`V7czu%Ht?egud?}6d7dh z7;PWuINc?l7p5UGx79V{#wdZ=J#GydsMVc0J2hFM$xn}6?r7ZXKXQZ)p;Z#l4*SEA>y-1Hb|M#z*aojiT5aWzH-uKOz?lg% zM=xUaPipq@$5adl29DFg87~dAPG}4Nu)p4^Y_PY59b60XK1;l^$)I zn?5b=9r9?uy2mI8dnzomiCD9FtunZRB@Y*Dbowd0Z6-fH-r%$Ipp27v25L}wi(YS6 z&B4N-Q?p>Y+!FO4zU*`#w7^YBVrY@7I~#851E(&UJM zM#YBdPrhw7)Acj4hQX*>edD(JxGTW7uNVv z@;kv8W5=#GJvLC6jR=)Gsaf%Ovf+jS=j%DehuKlLjieB1ApWy+xl>ebT3C|SdYK%LT4hRq4qdV^U4HXtNx>=P%&5(MysnV#MXYs{9p*Bk@r8ZH zQ$u#c_)oA~%?9Lsk2R#T&6^i0!ihrzGGO>6x`3G%X6ncqElO*mT{s)<19x~~p7?o< zGjFfwocQK-oyAEMG3~TErNh{V#-flf`;n5q&%3-d4YhTJ;_|w0TbJJ+Uzu!+HIzoA zgT?mEa*q1mb~cb5>OO6&Z^8w6^&lcZ*zPRGzQR2HlPMRu1+^+yCM8t*#n=QlEcwa_ ze^Xd0L(hODS6KLgNF;W+0U%Ft_$X#fBkxP6jBjpo*QV4&rv|H9j1)X9oL6Ku$oUk8 z`k;(Dy^v|;zY>j;SE%iySJVDliPXjLw_rOISvA$tze^*M@wLXhLXDJZ=l96Sw_+0w z-8eu=1B2CRkvP#mxoG~Dxg$Kut4x+ftqN+?B}SaK{-I3IB=G3*_^nu0YMZg4tCYCelcnxE6NJ8R?W88F!LhpYA-A3C za#d2thD+MhB7D5CN$3>tcwYpbrVu7)qpz9{DtBY8`?bW!YNqzo*Y zdW@8o&Gx3TN(D3+FtZ_8#@pWL6Y!~o3{Ir;B}5Wz?AhjMz7=Z$i=LUidE)Cr5!F8v z2Bl}|7k>VnawzXj07QpDGnL;K(0Lo&|lki@XCr<=nYsV0JdaKLy zxi8{U@(FQ>aW7xNHTGv=SU(dJ6m6_MPOF&%K9vgi8xXjsK zM`!|SJ;?V6rD>=u&MMp%>eIPZq=U5y_8VWAZck!+N_kCS?Nq%Y=cvIOEHNL)vQQ!2 zt+LD~@MHT8p@Q|;((J*Npt5|DJXOc`lg?EE(HO%0AJb%)B02!mplPdyM3Yvu4z@6! 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 literal 0 HcmV?d00001 From e1af74b781f899bd5f9198f78149991aea4ea240 Mon Sep 17 00:00:00 2001 From: 70000hp <105080577+70000hp@users.noreply.github.com> Date: Thu, 14 Sep 2023 19:32:31 -0400 Subject: [PATCH 307/432] improvement to recipes --- .../com/hbm/inventory/recipes/BlastFurnaceRecipes.java | 6 ------ .../com/hbm/inventory/recipes/anvil/AnvilRecipes.java | 8 ++++++++ 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/hbm/inventory/recipes/BlastFurnaceRecipes.java b/src/main/java/com/hbm/inventory/recipes/BlastFurnaceRecipes.java index 2bcce4544..af7032305 100644 --- a/src/main/java/com/hbm/inventory/recipes/BlastFurnaceRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/BlastFurnaceRecipes.java @@ -64,12 +64,6 @@ public class BlastFurnaceRecipes extends SerializableRecipe { addRecipe(ModItems.meteorite_sword_hardened, CO, new ItemStack(ModItems.meteorite_sword_alloyed)); addRecipe(ModBlocks.block_meteor, CO, new ItemStack(ModItems.ingot_meteorite)); - addRecipe(ModItems.cobalt_sword, ModItems.ingot_meteorite, new ItemStack(ModItems.cobalt_decorated_sword)); - addRecipe(ModItems.cobalt_pickaxe, ModItems.ingot_meteorite, new ItemStack(ModItems.cobalt_decorated_pickaxe)); - addRecipe(ModItems.cobalt_axe, ModItems.ingot_meteorite, new ItemStack(ModItems.cobalt_decorated_axe)); - addRecipe(ModItems.cobalt_shovel, ModItems.ingot_meteorite, new ItemStack(ModItems.cobalt_decorated_shovel)); - addRecipe(ModItems.cobalt_hoe, ModItems.ingot_meteorite, new ItemStack(ModItems.cobalt_decorated_hoe)); - if(GeneralConfig.enableLBSM && GeneralConfig.enableLBSMSimpleChemsitry) { addRecipe(ModItems.canister_empty, COAL, new ItemStack(ModItems.canister_full, 1, Fluids.OIL.getID())); } diff --git a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java index 3df9c8e30..b803e8cb7 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -65,6 +65,14 @@ public class AnvilRecipes { smithingRecipes.add(new AnvilSmithingHotRecipe(3, new ItemStack(ModItems.ingot_meteorite_forged, 1), new ComparableStack(ModItems.ingot_meteorite), new ComparableStack(ModItems.ingot_meteorite))); smithingRecipes.add(new AnvilSmithingHotRecipe(3, new ItemStack(ModItems.blade_meteorite, 1), new ComparableStack(ModItems.ingot_meteorite_forged), new ComparableStack(ModItems.ingot_meteorite_forged))); smithingRecipes.add(new AnvilSmithingHotRecipe(3, new ItemStack(ModItems.meteorite_sword_reforged, 1), new ComparableStack(ModItems.meteorite_sword_seared), new ComparableStack(ModItems.ingot_meteorite_forged))); + + + smithingRecipes.add(new AnvilSmithingHotRecipe(3, new ItemStack(ModItems.cobalt_decorated_sword, 1), new ComparableStack(ModItems.cobalt_sword), new ComparableStack(ModItems.ingot_meteorite))); + smithingRecipes.add(new AnvilSmithingHotRecipe(3, new ItemStack(ModItems.cobalt_decorated_pickaxe, 1), new ComparableStack(ModItems.cobalt_pickaxe), new ComparableStack(ModItems.ingot_meteorite))); + smithingRecipes.add(new AnvilSmithingHotRecipe(3, new ItemStack(ModItems.cobalt_decorated_axe, 1), new ComparableStack(ModItems.cobalt_axe), new ComparableStack(ModItems.ingot_meteorite))); + smithingRecipes.add(new AnvilSmithingHotRecipe(3, new ItemStack(ModItems.cobalt_decorated_shovel, 1), new ComparableStack(ModItems.cobalt_shovel), new ComparableStack(ModItems.ingot_meteorite))); + smithingRecipes.add(new AnvilSmithingHotRecipe(3, new ItemStack(ModItems.cobalt_decorated_hoe, 1), new ComparableStack(ModItems.cobalt_hoe), new ComparableStack(ModItems.ingot_meteorite))); + smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModItems.gun_ar15, 1), new ComparableStack(ModItems.gun_thompson), new ComparableStack(ModItems.pipe_lead))); smithingRecipes.add(new AnvilSmithingRecipe(1916169, new ItemStack(ModItems.wings_murk, 1), new ComparableStack(ModItems.wings_limp), new ComparableStack(ModItems.particle_tachyon))); smithingRecipes.add(new AnvilSmithingRecipe(4, new ItemStack(ModItems.flask_infusion, 1, EnumInfusion.SHIELD.ordinal()), new ComparableStack(ModItems.gem_alexandrite), new ComparableStack(ModItems.bottle_nuka))); From b04e73422d23e9505cabad617d368dd9821a0d1a Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 15 Sep 2023 13:10:36 +0200 Subject: [PATCH 308/432] ashpit NEI handling, ashpit for chimneys, removed old trash, fixes --- changelog | 40 +++++++++++++- src/main/java/com/hbm/blocks/ModBlocks.java | 4 +- .../java/com/hbm/handler/FuelHandler.java | 2 + .../com/hbm/handler/nei/AshpitHandler.java | 50 ++++++++++++++++++ .../com/hbm/inventory/OreDictManager.java | 4 +- .../inventory/recipes/AssemblerRecipes.java | 2 +- .../inventory/recipes/anvil/AnvilRecipes.java | 3 +- src/main/java/com/hbm/items/ItemEnums.java | 4 +- src/main/java/com/hbm/items/ModItems.java | 34 ------------ .../com/hbm/items/weapon/ItemGunBase.java | 2 +- src/main/java/com/hbm/main/MainRegistry.java | 10 ++++ src/main/java/com/hbm/main/NEIConfig.java | 1 + .../tileentity/machine/TileEntityAshpit.java | 8 +++ .../machine/TileEntityChimneyBase.java | 29 +++++++++- .../machine/TileEntityChimneyIndustrial.java | 7 ++- src/main/java/com/hbm/util/InventoryUtil.java | 4 ++ src/main/resources/assets/hbm/lang/de_DE.lang | 5 ++ src/main/resources/assets/hbm/lang/en_US.lang | 2 + .../assets/hbm/textures/items/plan_c_alt.png | Bin 245 -> 0 bytes .../hbm/textures/items/powder_ash.soot.png | Bin 0 -> 299 bytes .../hbm/textures/items/recycled_crystal.png | Bin 811 -> 0 bytes .../textures/items/recycled_electronic.png | Bin 469 -> 0 bytes .../hbm/textures/items/recycled_explosive.png | Bin 372 -> 0 bytes .../hbm/textures/items/recycled_ground.png | Bin 408 -> 0 bytes .../hbm/textures/items/recycled_metal.png | Bin 376 -> 0 bytes .../hbm/textures/items/recycled_misc.png | Bin 647 -> 0 bytes .../hbm/textures/items/recycled_nuclear.png | Bin 352 -> 0 bytes .../hbm/textures/items/recycled_organic.png | Bin 409 -> 0 bytes .../hbm/textures/items/recycled_overlay.png | Bin 278 -> 0 bytes .../hbm/textures/items/recycled_refined.png | Bin 399 -> 0 bytes .../hbm/textures/items/recycled_rock.png | Bin 443 -> 0 bytes 31 files changed, 167 insertions(+), 44 deletions(-) create mode 100644 src/main/java/com/hbm/handler/nei/AshpitHandler.java delete mode 100644 src/main/resources/assets/hbm/textures/items/plan_c_alt.png create mode 100644 src/main/resources/assets/hbm/textures/items/powder_ash.soot.png delete mode 100644 src/main/resources/assets/hbm/textures/items/recycled_crystal.png delete mode 100644 src/main/resources/assets/hbm/textures/items/recycled_electronic.png delete mode 100644 src/main/resources/assets/hbm/textures/items/recycled_explosive.png delete mode 100644 src/main/resources/assets/hbm/textures/items/recycled_ground.png delete mode 100644 src/main/resources/assets/hbm/textures/items/recycled_metal.png delete mode 100644 src/main/resources/assets/hbm/textures/items/recycled_misc.png delete mode 100644 src/main/resources/assets/hbm/textures/items/recycled_nuclear.png delete mode 100644 src/main/resources/assets/hbm/textures/items/recycled_organic.png delete mode 100644 src/main/resources/assets/hbm/textures/items/recycled_overlay.png delete mode 100644 src/main/resources/assets/hbm/textures/items/recycled_refined.png delete mode 100644 src/main/resources/assets/hbm/textures/items/recycled_rock.png diff --git a/changelog b/changelog index ff10295e2..607efd8b8 100644 --- a/changelog +++ b/changelog @@ -1,13 +1,51 @@ ## Added +* Telex + * A basic message system using redstone over radio + * Allows messages to be sent at a rate of 20 characters per second + * Features things like text formatting, printing and the terminal bell +* Ground water pumps + * Come in steam-powered and electric variants + * Faster than their infinite barrel counterpart + * Need to be placed below Y:70 and on solid ground to work + * Compatible floor blocks include all dirt variants and sand, the pump will not work when placed on pure rock +* Schrabidate capacitor + * Can store 50GHE +* Express conveyor belts + * Work like regular single-lane conveyor belts but 3x faster +* Industrial smokestack + * An even larger smokestack, matching the size of the coker unit + * Reduced pollution by 90%, as opposed to the brick smokestack's 75% ## Changed * Updated russian localization * The UAC pistol's UV now looks prettier * The UAC pistol now fires a burst on right click * CCGTs can no longer have smoke removed from them, on the count of there not being enough connections anyway. The pollution rate is now equivalent to three small furnaces +* The DFC receiver is now crafted with a block of DNT instead of sellafite corium, on the count of sellafite corium being near impossible to get +* Fireclay now has a third recipe, being craftable from clay, limestone and sand +* A whole clay block can now be combination smelted into a block of bricks +* The pipe clanking sound is now also used when placing regular pipes as opposed to only when pre-defined pipe items are used +* Josh now has a burst fire mode using RMB +* The smokestack's recipe has changed, now requiring a steel grate for catching ashes +* Simplified the decorated cobalt tool recipes, they now only require one cobalt tool and one hot bar of meteorite in an anvil +* Changed the starmetal tool recipes +* Cobalt armor is now crafted with steel armor and cobalt billets, making the armor substantially cheaper +* Sightly increased protection levels for the security armor and cobalt gear +* Cobalt, decorated cobalt and starmetal gear is now a lot more enchantable +* The ashpit now has a NEI handler, showing roughly how ash types are made +* Smokestacks now capture fly ash and are now compatible with ashpits +* Industrial smokestacks can also capture fine soot +* Reduced strings required for making coal filters, filters are now also available in tier 2 anvils ## Fixed * Fixed the bomber not spawning if the chunkloading radios is too small * Fixed a couple spelling mistakes like BFB fuel being called ZFB and the broken ZIRNOX * Potentially fixed a compat issue where galacticraft moon soil isn't shreddable into NTM moon turf -* Hopefully fixed the disappearing fluid buf once and for all \ No newline at end of file +* Hopefully fixed the disappearing fluid bug once and for all +* Fixed lag caused by the radiation system needlessly loading chunks +* Fixed secret folders giving volatile templates instead of persistent ones +* Fixed the ore dict registry happening in a later loading phase instead of PreInit which should fix some compatibility issues +* Hopefully fixed issue where the tom impact effects will last even when switching worlds +* Fixed logspam caused by custom machine crafting handler +* Fixed issue with the assemblers and chemplants where recipes with larger input requirements would break the input funnel +* Fixed crash caused by reloading when the ammo item is in the last slot \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index f08d42a0f..8c6fb76c6 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1960,8 +1960,8 @@ public class ModBlocks { fluid_duct = new BlockFluidDuct(Material.iron).setBlockName("fluid_duct").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":fluid_duct_icon"); fluid_duct_solid = new BlockFluidDuctSolid(Material.iron).setBlockName("fluid_duct_solid").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":fluid_duct_solid"); fluid_duct_neo = new FluidDuctStandard(Material.iron).setBlockName("fluid_duct_neo").setStepSound(ModSoundTypes.pipe).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pipe_neo"); - fluid_duct_box = new FluidDuctBox(Material.iron).setBlockName("fluid_duct_box").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fluid_duct_box"); - fluid_duct_exhaust = new FluidDuctBoxExhaust(Material.iron).setBlockName("fluid_duct_exhaust").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fluid_duct_box"); + fluid_duct_box = new FluidDuctBox(Material.iron).setBlockName("fluid_duct_box").setStepSound(ModSoundTypes.pipe).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fluid_duct_box"); + fluid_duct_exhaust = new FluidDuctBoxExhaust(Material.iron).setBlockName("fluid_duct_exhaust").setStepSound(ModSoundTypes.pipe).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fluid_duct_box"); fluid_duct_paintable = new FluidDuctPaintable().setBlockName("fluid_duct_paintable").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); fluid_duct_gauge = new FluidDuctGauge().setBlockName("fluid_duct_gauge").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); fluid_valve = new FluidValve(Material.iron).setBlockName("fluid_valve").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); diff --git a/src/main/java/com/hbm/handler/FuelHandler.java b/src/main/java/com/hbm/handler/FuelHandler.java index 951a5d6c2..18442a5a2 100644 --- a/src/main/java/com/hbm/handler/FuelHandler.java +++ b/src/main/java/com/hbm/handler/FuelHandler.java @@ -57,6 +57,8 @@ public class FuelHandler implements IFuelHandler { case 0: return single / 2; case 1: return single; case 2: return single / 2; + case 3: return single; + case 4: return single / 2; } } diff --git a/src/main/java/com/hbm/handler/nei/AshpitHandler.java b/src/main/java/com/hbm/handler/nei/AshpitHandler.java new file mode 100644 index 000000000..d7cf8af20 --- /dev/null +++ b/src/main/java/com/hbm/handler/nei/AshpitHandler.java @@ -0,0 +1,50 @@ +package com.hbm.handler.nei; + +import java.util.HashMap; + +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.OreDictManager.DictFrame; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.items.ItemEnums.EnumAshType; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemFluidIcon; + +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; + +public class AshpitHandler extends NEIUniversalHandler { + + public AshpitHandler() { + super("Ashpit", ModBlocks.machine_ashpit, getRecipes()); + } + + @Override + public String getKey() { + return "ntmAshpit"; + } + + public static HashMap getRecipes() { + + HashMap recipes = new HashMap(); + + ItemStack[] ovens = new ItemStack[] {new ItemStack(ModBlocks.heater_firebox), new ItemStack(ModBlocks.heater_oven)}; + ItemStack[] chimneys = new ItemStack[] {new ItemStack(ModBlocks.chimney_brick), new ItemStack(ModBlocks.chimney_industrial)}; + ItemStack[] coals = new ItemStack[] {new ItemStack(Items.coal, 1, 0), new ItemStack(ModItems.lignite), new ItemStack(ModItems.coke)}; + ItemStack[] wood = new ItemStack[] {new ItemStack(Blocks.log), new ItemStack(Blocks.log2), new ItemStack(Blocks.planks), new ItemStack(Blocks.sapling)}; + ItemStack[] misc = new ItemStack[] {new ItemStack(ModItems.solid_fuel), new ItemStack(ModItems.scrap), new ItemStack(ModItems.dust), new ItemStack(ModItems.rocket_fuel)}; + FluidType[] smokes = new FluidType[] {Fluids.SMOKE, Fluids.SMOKE_LEADED, Fluids.SMOKE_POISON};; + + recipes.put(new ItemStack[][] {ovens, coals}, DictFrame.fromOne(ModItems.powder_ash, EnumAshType.COAL)); + recipes.put(new ItemStack[][] {ovens, wood}, DictFrame.fromOne(ModItems.powder_ash, EnumAshType.WOOD)); + recipes.put(new ItemStack[][] {ovens, misc}, DictFrame.fromOne(ModItems.powder_ash, EnumAshType.MISC)); + + for(FluidType smoke : smokes) { + recipes.put(new ItemStack[][] {chimneys, new ItemStack[] {ItemFluidIcon.make(smoke, 2_000)}}, DictFrame.fromOne(ModItems.powder_ash, EnumAshType.FLY)); + recipes.put(new ItemStack[][] {new ItemStack[] {new ItemStack(ModBlocks.chimney_industrial)}, new ItemStack[] {ItemFluidIcon.make(smoke, 8_000)}}, DictFrame.fromOne(ModItems.powder_ash, EnumAshType.SOOT)); + } + + return recipes; + } +} diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index 685251982..68339d68a 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -466,7 +466,7 @@ public class OreDictManager { for(int i = 0; i < 16; i++) { ANY_CONCRETE.any(new ItemStack(ModBlocks.concrete_colored_ext, 1, i)); } ANY_COKE .gem(fromAll(coke, EnumCokeType.class)).block(fromAll(block_coke, EnumCokeType.class)); ANY_BISMOID .ingot(ingot_bismuth, ingot_arsenic).nugget(nugget_bismuth, nugget_arsenic).block(block_bismuth); - ANY_ASH .any(fromOne(ModItems.powder_ash, EnumAshType.WOOD), fromOne(ModItems.powder_ash, EnumAshType.COAL), fromOne(ModItems.powder_ash, EnumAshType.MISC)); + ANY_ASH .any(fromOne(ModItems.powder_ash, EnumAshType.WOOD), fromOne(ModItems.powder_ash, EnumAshType.COAL), fromOne(ModItems.powder_ash, EnumAshType.MISC), fromOne(ModItems.powder_ash, EnumAshType.FLY), fromOne(ModItems.powder_ash, EnumAshType.SOOT)); /* * TAR @@ -575,6 +575,8 @@ public class OreDictManager { OreDictionary.registerOre("dyeLightGray", fromOne(powder_ash, EnumAshType.WOOD)); OreDictionary.registerOre("dyeBlack", fromOne(powder_ash, EnumAshType.COAL)); OreDictionary.registerOre("dyeGray", fromOne(powder_ash, EnumAshType.MISC)); + OreDictionary.registerOre("dyeBrown", fromOne(powder_ash, EnumAshType.FLY)); + OreDictionary.registerOre("dyeBlack", fromOne(powder_ash, EnumAshType.SOOT)); OreDictionary.registerOre("dye", new ItemStack(powder_ash, 1, OreDictionary.WILDCARD_VALUE)); OreDictionary.registerOre("blockGlass", glass_boron); diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 50db8cf5a..0e6afcdb5 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -164,7 +164,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.wire_magnetized_tungsten, 6), new AStack[] {new OreDictStack(MAGTUNG.ingot(), 1), },20); makeRecipe(new ComparableStack(ModItems.hazmat_cloth, 4), new AStack[] {new OreDictStack(PB.dust(), 4), new ComparableStack(Items.string, 8), },50); makeRecipe(new ComparableStack(ModItems.asbestos_cloth, 4), new AStack[] {new OreDictStack(ASBESTOS.ingot(), 2), new ComparableStack(Items.string, 6), new ComparableStack(Blocks.wool, 1), },50); - makeRecipe(new ComparableStack(ModItems.filter_coal, 1), new AStack[] {new OreDictStack(COAL.dust(), 4), new ComparableStack(Items.string, 6), new ComparableStack(Items.paper, 1), },50); + makeRecipe(new ComparableStack(ModItems.filter_coal, 1), new AStack[] {new OreDictStack(COAL.dust(), 4), new ComparableStack(Items.string, 2), new ComparableStack(Items.paper, 1), },50); makeRecipe(new ComparableStack(ModItems.centrifuge_element, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 4), new OreDictStack(TI.plate528(), 4), new ComparableStack(ModItems.motor, 1), }, 100); makeRecipe(new ComparableStack(ModItems.magnet_circular, 1), new AStack[] {new ComparableStack(ModBlocks.fusion_conductor, 5), new OreDictStack(STEEL.ingot(), 4), new OreDictStack(ALLOY.plate(), 6), },150); makeRecipe(new ComparableStack(ModItems.reactor_core, 1), new AStack[] {new OreDictStack(PB.ingot(), 8), new OreDictStack(BE.ingot(), 6), new OreDictStack(STEEL.plate(), 16), new OreDictStack(OreDictManager.getReflector(), 8), new OreDictStack(FIBER.ingot(), 2) },100); diff --git a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java index cc325331a..568f66a6f 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -212,7 +212,8 @@ public class AnvilRecipes { constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] {new ComparableStack(ModItems.motor), new OreDictStack(ANY_PLASTIC.ingot(), 2), new OreDictStack(DESH.ingot(), 2), new ComparableStack(ModItems.coil_gold_torus)}, new AnvilOutput(new ItemStack(ModItems.motor_desh, 1))).setTier(3)); - + + pullFromAssembler(new ComparableStack(ModItems.filter_coal), 2); pullFromAssembler(new ComparableStack(ModItems.thermo_element), 2); constructionRecipes.add(new AnvilConstructionRecipe( diff --git a/src/main/java/com/hbm/items/ItemEnums.java b/src/main/java/com/hbm/items/ItemEnums.java index a83f5171c..f57fde2f9 100644 --- a/src/main/java/com/hbm/items/ItemEnums.java +++ b/src/main/java/com/hbm/items/ItemEnums.java @@ -26,7 +26,9 @@ public class ItemEnums { public static enum EnumAshType { WOOD, COAL, - MISC + MISC, + FLY, + SOOT } public static enum EnumBriquetteType { diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 89810e7bc..62b4e98ce 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1203,17 +1203,6 @@ public class ModItems { public static Item debris_element; public static Item containment_box; - - public static Item recycled_ground; - public static Item recycled_rock; - public static Item recycled_metal; - public static Item recycled_refined; - public static Item recycled_organic; - public static Item recycled_crystal; - public static Item recycled_explosive; - public static Item recycled_electronic; - public static Item recycled_nuclear; - public static Item recycled_misc; public static Item test_nuke_igniter; public static Item test_nuke_propellant; @@ -3474,17 +3463,6 @@ public class ModItems { coin_worm = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("coin_worm").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":coin_worm"); coin_ufo = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("coin_ufo").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":coin_ufo"); - recycled_ground = new Item().setUnlocalizedName("recycled_ground").setCreativeTab(null).setTextureName(RefStrings.MODID + ":recycled_ground"); - recycled_rock = new Item().setUnlocalizedName("recycled_rock").setCreativeTab(null).setTextureName(RefStrings.MODID + ":recycled_rock"); - recycled_metal = new Item().setUnlocalizedName("recycled_metal").setCreativeTab(null).setTextureName(RefStrings.MODID + ":recycled_metal"); - recycled_refined = new Item().setUnlocalizedName("recycled_refined").setCreativeTab(null).setTextureName(RefStrings.MODID + ":recycled_refined"); - recycled_organic = new Item().setUnlocalizedName("recycled_organic").setCreativeTab(null).setTextureName(RefStrings.MODID + ":recycled_organic"); - recycled_crystal = new Item().setUnlocalizedName("recycled_crystal").setCreativeTab(null).setTextureName(RefStrings.MODID + ":recycled_crystal"); - recycled_explosive = new Item().setUnlocalizedName("recycled_explosive").setCreativeTab(null).setTextureName(RefStrings.MODID + ":recycled_explosive"); - recycled_electronic = new Item().setUnlocalizedName("recycled_electronic").setCreativeTab(null).setTextureName(RefStrings.MODID + ":recycled_electronic"); - recycled_nuclear = new Item().setUnlocalizedName("recycled_nuclear").setCreativeTab(null).setTextureName(RefStrings.MODID + ":recycled_nuclear"); - recycled_misc = new Item().setUnlocalizedName("recycled_misc").setCreativeTab(null).setTextureName(RefStrings.MODID + ":recycled_misc"); - rod_empty = new Item().setUnlocalizedName("rod_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_empty"); rod = (ItemEnumMulti) new ItemBreedingRod().setUnlocalizedName("rod").setContainerItem(ModItems.rod_empty).setCreativeTab(MainRegistry.controlTab); rod_dual_empty = new Item().setUnlocalizedName("rod_dual_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_dual_empty"); @@ -6523,18 +6501,6 @@ public class ModItems { GameRegistry.registerItem(laser_crystal_dnt, laser_crystal_dnt.getUnlocalizedName()); GameRegistry.registerItem(laser_crystal_digamma, laser_crystal_digamma.getUnlocalizedName()); - //Recycled Units - GameRegistry.registerItem(recycled_ground, recycled_ground.getUnlocalizedName()); - GameRegistry.registerItem(recycled_rock, recycled_rock.getUnlocalizedName()); - GameRegistry.registerItem(recycled_metal, recycled_metal.getUnlocalizedName()); - GameRegistry.registerItem(recycled_refined, recycled_refined.getUnlocalizedName()); - GameRegistry.registerItem(recycled_organic, recycled_organic.getUnlocalizedName()); - GameRegistry.registerItem(recycled_crystal, recycled_crystal.getUnlocalizedName()); - GameRegistry.registerItem(recycled_explosive, recycled_explosive.getUnlocalizedName()); - GameRegistry.registerItem(recycled_electronic, recycled_electronic.getUnlocalizedName()); - GameRegistry.registerItem(recycled_nuclear, recycled_nuclear.getUnlocalizedName()); - GameRegistry.registerItem(recycled_misc, recycled_misc.getUnlocalizedName()); - //Catalyst Rune Sigils GameRegistry.registerItem(rune_blank, rune_blank.getUnlocalizedName()); GameRegistry.registerItem(rune_isa, rune_isa.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/weapon/ItemGunBase.java b/src/main/java/com/hbm/items/weapon/ItemGunBase.java index 2a6eff682..6ec696cab 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGunBase.java +++ b/src/main/java/com/hbm/items/weapon/ItemGunBase.java @@ -386,7 +386,7 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu if(mainConfig.ejector != null && mainConfig.ejector.getAfterReload()) queueCasing(player, mainConfig.ejector, prevCfg, stack); - InventoryUtil.tryConsumeAStack(player.inventory.mainInventory, 0, player.inventory.mainInventory.length, ammo); + InventoryUtil.tryConsumeAStack(player.inventory.mainInventory, 0, player.inventory.mainInventory.length - 1, ammo); } else { setReloadCycle(stack, getReloadCycle(stack) - 1); } diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index cdc5212a2..b1458de1f 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -1163,6 +1163,16 @@ public class MainRegistry { ignoreMappings.add("hbm:item.primer_50"); ignoreMappings.add("hbm:item.primer_buckshot"); ignoreMappings.add("hbm:tile.ore_bedrock_coltan"); + ignoreMappings.add("hbm:item.recycled_ground"); + ignoreMappings.add("hbm:item.recycled_rock"); + ignoreMappings.add("hbm:item.recycled_metal"); + ignoreMappings.add("hbm:item.recycled_refined"); + ignoreMappings.add("hbm:item.recycled_organic"); + ignoreMappings.add("hbm:item.recycled_crystal"); + ignoreMappings.add("hbm:item.recycled_explosive"); + ignoreMappings.add("hbm:item.recycled_electronic"); + ignoreMappings.add("hbm:item.recycled_nuclear"); + ignoreMappings.add("hbm:item.recycled_misc"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/java/com/hbm/main/NEIConfig.java b/src/main/java/com/hbm/main/NEIConfig.java index 7ce0ffd04..8f3f93532 100644 --- a/src/main/java/com/hbm/main/NEIConfig.java +++ b/src/main/java/com/hbm/main/NEIConfig.java @@ -75,6 +75,7 @@ public class NEIConfig implements IConfigureNEI { registerHandler(new OutgasserHandler()); registerHandler(new ElectrolyserFluidHandler()); registerHandler(new ElectrolyserMetalHandler()); + registerHandler(new AshpitHandler()); for(MachineConfiguration conf : CustomMachineConfigJSON.niceList) registerHandlerBypass(new CustomMachineHandler(conf)); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityAshpit.java b/src/main/java/com/hbm/tileentity/machine/TileEntityAshpit.java index d5e27e4ac..cd78eb206 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityAshpit.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityAshpit.java @@ -29,6 +29,8 @@ public class TileEntityAshpit extends TileEntityMachineBase implements IGUIProvi public int ashLevelWood; public int ashLevelCoal; public int ashLevelMisc; + public int ashLevelFly; + public int ashLevelSoot; public TileEntityAshpit() { super(5); @@ -59,6 +61,8 @@ public class TileEntityAshpit extends TileEntityMachineBase implements IGUIProvi if(processAsh(ashLevelWood, EnumAshType.WOOD, threshold)) ashLevelWood -= threshold; if(processAsh(ashLevelCoal, EnumAshType.COAL, threshold)) ashLevelCoal -= threshold; if(processAsh(ashLevelMisc, EnumAshType.MISC, threshold)) ashLevelMisc -= threshold; + if(processAsh(ashLevelFly, EnumAshType.FLY, threshold)) ashLevelFly -= threshold; + if(processAsh(ashLevelSoot, EnumAshType.SOOT, threshold * 4)) ashLevelSoot -= threshold * 4; isFull = false; @@ -126,6 +130,8 @@ public class TileEntityAshpit extends TileEntityMachineBase implements IGUIProvi this.ashLevelWood = nbt.getInteger("ashLevelWood"); this.ashLevelCoal = nbt.getInteger("ashLevelCoal"); this.ashLevelMisc = nbt.getInteger("ashLevelMisc"); + this.ashLevelFly = nbt.getInteger("ashLevelFly"); + this.ashLevelSoot = nbt.getInteger("ashLevelSoot"); } @Override @@ -135,6 +141,8 @@ public class TileEntityAshpit extends TileEntityMachineBase implements IGUIProvi nbt.setInteger("ashLevelWood", ashLevelWood); nbt.setInteger("ashLevelCoal", ashLevelCoal); nbt.setInteger("ashLevelMisc", ashLevelMisc); + nbt.setInteger("ashLevelFly", ashLevelFly); + nbt.setInteger("ashLevelSoot", ashLevelSoot); } AxisAlignedBB bb = null; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyBase.java index c942a55e7..e01b8352f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyBase.java @@ -11,10 +11,13 @@ import com.hbm.tileentity.TileEntityLoadedBase; import api.hbm.fluid.IFluidUser; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.util.ForgeDirection; public abstract class TileEntityChimneyBase extends TileEntityLoadedBase implements IFluidUser, INBTPacketReceiver { - + + public long ashTick = 0; + public long sootTick = 0; public int onTicks; @Override @@ -33,6 +36,19 @@ public abstract class TileEntityChimneyBase extends TileEntityLoadedBase impleme } } + if(ashTick > 0 || sootTick > 0) { + + TileEntity below = worldObj.getTileEntity(xCoord, yCoord - 1, zCoord); + + if(below instanceof TileEntityAshpit) { + TileEntityAshpit ashpit = (TileEntityAshpit) below; + ashpit.ashLevelFly += ashTick; + ashpit.ashLevelSoot += sootTick; + } + this.ashTick = 0; + this.sootTick = 0; + } + NBTTagCompound data = new NBTTagCompound(); data.setInteger("onTicks", onTicks); INBTPacketReceiver.networkPack(this, data, 150); @@ -46,6 +62,14 @@ public abstract class TileEntityChimneyBase extends TileEntityLoadedBase impleme } } } + + public boolean cpaturesAsh() { + return true; + } + + public boolean cpaturesSoot() { + return false; + } public void spawnParticles() { } @@ -62,6 +86,9 @@ public abstract class TileEntityChimneyBase extends TileEntityLoadedBase impleme @Override public long transferFluid(FluidType type, int pressure, long fluid) { onTicks = 20; + + if(cpaturesAsh()) ashTick += fluid; + if(cpaturesSoot()) sootTick += fluid; fluid *= getPollutionMod(); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyIndustrial.java b/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyIndustrial.java index abbabb942..f5a79dce4 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyIndustrial.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityChimneyIndustrial.java @@ -29,7 +29,12 @@ public class TileEntityChimneyIndustrial extends TileEntityChimneyBase { @Override public double getPollutionMod() { - return 0.25D; + return 0.1D; + } + + @Override + public boolean cpaturesSoot() { + return true; } AxisAlignedBB bb = null; diff --git a/src/main/java/com/hbm/util/InventoryUtil.java b/src/main/java/com/hbm/util/InventoryUtil.java index 8efc4be37..4e6a27661 100644 --- a/src/main/java/com/hbm/util/InventoryUtil.java +++ b/src/main/java/com/hbm/util/InventoryUtil.java @@ -375,6 +375,10 @@ public class InventoryUtil { return stacks; } + if(o instanceof ItemStack[][]) { + return (ItemStack[][]) o; + } + if(o instanceof AStack) { AStack astack = (AStack) o; ItemStack[] ext = astack.extractForNEI().toArray(new ItemStack[0]); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 0e75f8cdf..64edc30b5 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -2691,6 +2691,11 @@ item.powder_actinium_tiny.name=Kleiner Haufen Actiniumstaub item.powder_advanced_alloy.name=Fortgeschrittener Legierungsstaub item.powder_aluminium.name=Aluminiumstaub item.powder_asbestos.name=Asbeststaub +item.powder_ash.coal.name=Kohleasche +item.powder_ash.fly.name=Flugasche +item.powder_ash.misc.name=Asche +item.powder_ash.soot.name=Feiner Ruß +item.powder_ash.wood.name=Holzasche item.powder_astatine.name=Astatstaub item.powder_at209.name=Astat-209-Staub item.powder_au198.name=Gold-198-Staub diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index ac7c7b266..ccccc5e67 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -3497,7 +3497,9 @@ item.powder_aluminium.name=Aluminium Powder item.powder_asbestos.name=Asbestos Powder item.powder_asbestos.desc=§o\"Sniffffffff- MHHHHHHMHHHHHHHHH\"§r item.powder_ash.coal.name=Coal Ash +item.powder_ash.fly.name=Fly Ash item.powder_ash.misc.name=Ash +item.powder_ash.soot.name=Fine Soot item.powder_ash.wood.name=Wood Ash item.powder_astatine.name=Astatine Powder item.powder_at209.name=Astatine-209 Powder diff --git a/src/main/resources/assets/hbm/textures/items/plan_c_alt.png b/src/main/resources/assets/hbm/textures/items/plan_c_alt.png deleted file mode 100644 index 0a44d83179874a478d27c7c7577f3e954de57015..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 245 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf*0F<#F=|x_20St}#5A^*-fH*NU|zTO>7Zc17}fK6()LR-jpO@%3e* sel^Em=mi;iD`~CJn{@PEsGXd=xUtIfWe0onfbM4SboFyt=akR{05UORzyJUM diff --git a/src/main/resources/assets/hbm/textures/items/powder_ash.soot.png b/src/main/resources/assets/hbm/textures/items/powder_ash.soot.png new file mode 100644 index 0000000000000000000000000000000000000000..664b4aa40705f7acb0d5c3d85c6342a74f0aefa6 GIT binary patch literal 299 zcmV+`0o4A9P)Iyck;&ka_vKfvEQj_`IS;G*< x`0Bem$GUU|v4!Pym%CqE;h&WKp|`$os&CBefFD~ffnopv002ovPDHLkV1h#UfGYq1 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/recycled_crystal.png b/src/main/resources/assets/hbm/textures/items/recycled_crystal.png deleted file mode 100644 index 89635cfbae6767779e818b2e2b715b22b0c34440..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 811 zcmV+`1JwM9P){F&~@ZSEYM^Eh{Qw)u5oJ2+30?`VS0&3B%c z_j|wRJl_lFJ-|^#F>{m2GgsLBt48+GXJVDssiAK8G}y=%hAd28Sb@ggfL{UN+yxHV zKrhR0+#m}f3uy1sVRjnO+D(w>lQ23pnD|mucvS`T_jNE0r$r4{gJ5t23!w~}t;cYt zL8tKkz7CQL93@#01l%7s0{}kQ>LAHkOb54-+}y^{qp*@wH30zN@pxddSa97p@+V?e z;-V;GY;3H$0!r|Dz2JEs03eEDrDf<%_`ji{Zn$*O$^gLU^OZSJvVP)goK%x6AU4|0 z!apQD7|E8!Up_qxaZ!Zl_IFZEat}oKBH|lGjJ`XM^|>?>sWf795}Z~&);Dw1a&!Ss zyB=JcVKKCc^l}z$t>v5waubG=1;p12a5mM#)~Hi)D##AB*bUH&3`^lHtj4nFbk~=0 zD##8*k}~3{0-Bq2ur=sZoC>-Fj^i+77?vU#2yqErm(69I3VIJD@>pKW!*Qw>RuiY< zRL~u0Hozzqu@v1xG9kg!Z7Jhb7Z6IwNU!G6*2+Q4b1F`Sas{cW9#&cduiN+irn{W= zXtC8H6qOK8=2V;tZtvm$+7OCM5P2Ccs}^iUtKw8B4n!t-nB3zUlY3m_=(b=#7hFyw zTy_IOF$qyVr{Wb0I0*XtI#@U^A;QaWn6)@<)M78McqDUlTa+t^O!DZwGo$*d34(x! z&vu^g^-72edAM7Q$P^10c%B2GuY4rieQ2o>|0bd|lD!z&8Oet429@}c9LY#mPz`VZ zU~-RZQd2#wwCc p4xgW#WN)vXV5OhbLpih>_zeJ~rQ{6LFKhq+002ovPDHLkV1i+(aH{|S diff --git a/src/main/resources/assets/hbm/textures/items/recycled_electronic.png b/src/main/resources/assets/hbm/textures/items/recycled_electronic.png deleted file mode 100644 index 6076ee25128d20e7cd4aad35f28018156c5392a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 469 zcmV;`0V@89P) z_74z5GsFaHXbhDLZfU53ge>hsI`Q7U{$xP*OQuj|Q<=^`W&2u0M)6;pVjxz+Ob7iAY z*=`>uJqXq?oaOJbG6YhwsOuN78$j|Gf=~t82Wf!x+}(#|3<2Q!&^as+h;C1+D~Y6? zQVUsKG|N7DqoQ&NCcW*|&!=Udc>~XZr64BY>US8ml#SleYo`boRRl(sn#kR8-Un(T zZf4196l6EjaSHOF4YR(Ug5K1v1cSCpB**ouqB3C9Ba+4HpFdL_uHK}v9kc;i5`F_Y SbeB*70000rX<~C0o1NW@e}Xu$unhCf_kA-1{|p6icYRs@1+=2h>-`N^kD00g zyiw=r;TC{aX~@yMPtyvh(N9=UQaZgDfLXo*payWvhE{2$xQ&5c%zT_l&WutbV5u~g z^aCht1AxWU7H@Zb^e~}2uz%NRYY?J>4FE^ZLZhDu*jaInBMtm8C9$xcq+o1e)bvst zeJu@_O0!hh+Owut5XR{+5kUA{&Wx(V6${}2-K4`qYkv!N{~7H;T(JjyRS^2t z!-Pm9FJ#;g1#od5m+rQI3%9KjIAO!{OQ8;e4#g+5GL0jNMXH1V0000qC diff --git a/src/main/resources/assets/hbm/textures/items/recycled_metal.png b/src/main/resources/assets/hbm/textures/items/recycled_metal.png deleted file mode 100644 index b1f504225583ead06cf7eca0d60c02752a44d725..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 376 zcmV-;0f+vHP)RQilv>%}n;H@luAw#ttn~#YvW)ox7KNPY3_R2%xH}?V-ZDu8~rX#{PqkJe9#c z(~3NmWLg2BwFcm5*jWgH5Q6KM1#N>nPv>$-1;9D5e{7rXK3|p0S0w=VrxW*02!S!i zHE<3xt(@4$!^MOs0rqSubkKCf=(u}}8*6KvR!r;-zWwR;Ei&(eu4{QB{1 z8t{KL0JwcEcaE|PL4(>xE*9#f#^xz9;}=8i#~Q8SFGT6vsc~&hG5YYL2<92K_lCT>_K9z(Y5?u7?N-0-0dz zVnmd5=+eDY5~4)12(&E^qj`T)EfXA>HyO;;cx)k^a#~e z+#KmO09dZbXv!v{kO4pjux%JUeF1R507LH*4A0*uzp_T6Z^*4FMW^mp_j(G1Rbp`L zwo3+RZ*Ql0P37U)A(RLpc9~b)@)Y>|A(8`^VbuXDZ6JR5_`Z?l%H(6x=``VR*d@oK z2A!{BJ3Xk!`Kbp0k#W2Vsu^Pfy8R~Goz28^cK{?6I_wSzDb5Aeqi2z_UyUhPX9z~O&p@;j$#CzQ<`Y6$B@89SSW+7<}J(4v*x$YIAHvWCmsZ6rZ|r%GN;tvz=J yY85PRrI5z?wGhi>RM_bixz6@q@HyAU_P{rkGgiZ8k}5O+0000U>{6%m4}=W} z+S;sLlr*9&5=o=!7OPzxve58&qUYPGlEd(P^h zTDpIDyW?EMUd6ufWx+B$0$|pQ9YSj;nDt`1<34GYGa0=C;M+x-tO*N=In$16m}WV? zEKHqopcNNVeMgBPN(8VW>wik<%XOd?ZTPZa){6;3V9%6X2T~OVhtO`;N!N{Sw3~G< zPX{nMDbD~Px)tWFHc8{+c;LDOXw)__`LZafrdeJ}#cA;VIalh5aFW=D9;OX51Fbsk z#AXfv-Ep7i^o7L->$Ow06L#!@fu|yC4FzeID_3iB5V}iN+2#h}CU0%o-U*GJ4)lga zi696u$5ylxLBHxO7Aw8m8jV`j40j*yub;eM3;u#1DQt%Zu=8j{00000NkvXXu0mjf DTYaoc diff --git a/src/main/resources/assets/hbm/textures/items/recycled_overlay.png b/src/main/resources/assets/hbm/textures/items/recycled_overlay.png deleted file mode 100644 index e3d5183a671a77b26720fd79c32090001520370e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 278 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfvq(v%j7s7>(;Z%J=Iy|Y!kHhX&Q^!7XPaU&mIWLH-7az z;rVMGxBYYX{$!stPbWL|cB@(ba?Nb#-!=K0-~4Ymys>$uv(xMoUPrrb&iUxw^ITKC ag5m5--*Wcl7ajpU#^CAd=d#Wzp$PzAg>caT diff --git a/src/main/resources/assets/hbm/textures/items/recycled_refined.png b/src/main/resources/assets/hbm/textures/items/recycled_refined.png deleted file mode 100644 index 2c346dbbda5977d5d4c0fa2668399568e7e4c2cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 399 zcmV;A0dW3_P)qjy~v!n#kkkn0qm`3fNz)j)6&65dS9iXaU zW^MvY6&f>Dw`5EZnk*%RWL?D&ukX>4+8jhaz0QOn@&Oo(J^{xjdd!p#Ufa@{3s_=Hb*~ zICTIxJ4)4?ZRRYNhFYK$1d*@EdUfaFU>5M@*s$OFmnNtK9tmC z?-a2U*a2H|00NjLm0u~ymaB)XUgj;92A2Di1t~dW_fDtrJfTQ4#`6S#JkJ3*1FWKmbO8Grd-+RdF%iKz2Y@js z(u{&88Q|x2#>FB*MEJa&!67Ch#2BrqG0=``-g^L6(-{K?98`)ic1G)~XhoVq-6Rf1 z-PxJ%-~4EOlZGEjv9&Xb0&f)wbzM?_4E&Il@qCXeTd0n~~#JE3nQXtn#VCA63m z!0{$dH1N+)#8GULj&x8B_FE2T2X`M!)^6R705BRIDc5UOHl8prw1 ziU@^kZy|rl$aS>CO~e?fs*25S(-l#J02hmdfy3TvIx|g_kv8oEgb?huxw)ovCEr(< l_Co>WbrUbk(&+z-{Q`~hvKIYsX666@002ovPDHLkV1oH>y%PWc From b077a65624badb13f6793a0a321a23d30dc4aee0 Mon Sep 17 00:00:00 2001 From: Bob Date: Fri, 15 Sep 2023 21:18:53 +0200 Subject: [PATCH 309/432] new telex model, sound adjustments --- src/main/java/com/hbm/blocks/ModBlocks.java | 4 +- .../java/com/hbm/blocks/ModSoundTypes.java | 10 +- .../com/hbm/items/machine/ItemFluidDuct.java | 2 + .../hbm/render/tileentity/RenderTelex.java | 7 +- .../network/TileEntityRadioTelex.java | 2 +- src/main/resources/assets/hbm/lang/de_DE.lang | 2 +- src/main/resources/assets/hbm/lang/en_US.lang | 2 +- .../assets/hbm/models/machines/telex.obj | 513 +++++++++++++++--- .../hbm/textures/models/machines/telex.png | Bin 1934 -> 3786 bytes 9 files changed, 456 insertions(+), 86 deletions(-) diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 8c6fb76c6..8a91ad707 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1814,8 +1814,8 @@ public class ModBlocks { c4 = new BlockC4().setBlockName("c4").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.nukeTab).setHardness(0.0F).setBlockTextureName(RefStrings.MODID + ":c4"); fissure_bomb = new BlockFissureBomb().setBlockName("fissure_bomb").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.nukeTab).setHardness(0.0F).setBlockTextureName(RefStrings.MODID + ":fissure_bomb"); - pump_steam = new MachinePump().setBlockName("pump_steam").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pump_steam"); - pump_electric = new MachinePump().setBlockName("pump_electric").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pump_electric"); + pump_steam = new MachinePump().setBlockName("pump_steam").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_copper"); + pump_electric = new MachinePump().setBlockName("pump_electric").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); heater_firebox = new HeaterFirebox().setBlockName("heater_firebox").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); heater_oven = new HeaterOven().setBlockName("heater_oven").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire"); diff --git a/src/main/java/com/hbm/blocks/ModSoundTypes.java b/src/main/java/com/hbm/blocks/ModSoundTypes.java index 544f70c1e..85f42f310 100644 --- a/src/main/java/com/hbm/blocks/ModSoundTypes.java +++ b/src/main/java/com/hbm/blocks/ModSoundTypes.java @@ -3,7 +3,11 @@ package com.hbm.blocks; import com.hbm.main.MainRegistry; import net.minecraft.block.Block; -class ModSoundTypes { - static final ModSoundType grate = ModSoundType.customStep(Block.soundTypeStone, "hbm:step.metalBlock", 0.5F, 1.0F); - static final ModSoundType pipe = ModSoundType.customDig(Block.soundTypeMetal, "hbm:block.pipePlaced", 0.85F, 0.65F).enveloped(MainRegistry.instance.rand).pitchFunction((in, rand, type) -> { if (type == ModSoundType.SubType.BREAK) in -= 0.15F; return type == ModSoundType.SubType.STEP ? in : in + rand.nextFloat() * 0.2F; }); +public class ModSoundTypes { + + public static final ModSoundType grate = ModSoundType.customStep(Block.soundTypeStone, "hbm:step.metalBlock", 0.5F, 1.0F); + public static final ModSoundType pipe = ModSoundType.customDig(Block.soundTypeMetal, "hbm:block.pipePlaced", 0.85F, 0.85F).enveloped(MainRegistry.instance.rand).pitchFunction((in, rand, type) -> { + if(type == ModSoundType.SubType.BREAK) in -= 0.15F; + return in + rand.nextFloat() * 0.2F; + }); } diff --git a/src/main/java/com/hbm/items/machine/ItemFluidDuct.java b/src/main/java/com/hbm/items/machine/ItemFluidDuct.java index 93413ee62..84fcb8ba1 100644 --- a/src/main/java/com/hbm/items/machine/ItemFluidDuct.java +++ b/src/main/java/com/hbm/items/machine/ItemFluidDuct.java @@ -124,6 +124,8 @@ public class ItemFluidDuct extends Item { if(world.getTileEntity(x, y, z) instanceof TileEntityPipeBaseNT) { ((TileEntityPipeBaseNT) world.getTileEntity(x, y, z)).setType(Fluids.fromID(stack.getItemDamage())); } + + world.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, ModBlocks.fluid_duct_neo.stepSound.func_150496_b(), (ModBlocks.fluid_duct_neo.stepSound.getVolume() + 1.0F) / 2.0F, ModBlocks.fluid_duct_neo.stepSound.getPitch() * 0.8F); return true; } diff --git a/src/main/java/com/hbm/render/tileentity/RenderTelex.java b/src/main/java/com/hbm/render/tileentity/RenderTelex.java index 5c3601e1a..9761d83e3 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderTelex.java +++ b/src/main/java/com/hbm/render/tileentity/RenderTelex.java @@ -19,7 +19,7 @@ public class RenderTelex extends TileEntitySpecialRenderer implements IItemRende GL11.glPushMatrix(); GL11.glTranslated(x + 0.5, y, z + 0.5); GL11.glEnable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glDisable(GL11.GL_CULL_FACE); switch(tile.getBlockMetadata() - BlockDummyable.offset) { case 2: GL11.glRotatef(90, 0F, 1F, 0F); break; @@ -28,11 +28,10 @@ public class RenderTelex extends TileEntitySpecialRenderer implements IItemRende case 5: GL11.glRotatef(0, 0F, 1F, 0F); break; } - GL11.glTranslated(0, 0, 1); - bindTexture(ResourceManager.telex_tex); ResourceManager.telex.renderAll(); + GL11.glEnable(GL11.GL_CULL_FACE); GL11.glPopMatrix(); } @@ -49,7 +48,7 @@ public class RenderTelex extends TileEntitySpecialRenderer implements IItemRende GL11.glScaled(6, 6, 6); } public void renderCommon() { - GL11.glTranslated(0, 0, 0.5); + GL11.glTranslated(0, 0, -0.5); bindTexture(ResourceManager.telex_tex); ResourceManager.telex.renderAll(); }}; diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityRadioTelex.java b/src/main/java/com/hbm/tileentity/network/TileEntityRadioTelex.java index 628e3e118..5f2e68975 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityRadioTelex.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityRadioTelex.java @@ -237,7 +237,7 @@ public class TileEntityRadioTelex extends TileEntity implements INBTPacketReceiv yCoord, zCoord - 1, xCoord + 2, - yCoord + 1, + yCoord + 2, zCoord + 2 ); } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 64edc30b5..50a1f341b 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -4269,7 +4269,7 @@ tile.pribris_radiating.name=Glühender RBMK-Schutt tile.pump_electric.name=Elektrische Grundwasserpumpe tile.pump_electric.desc=Nutzt Strom um Grundwasser hochzupumpen$Erzeugt bis zu 10.000mB/t$Muss unter Y:70 platziert werden tile.pump_steam.name=Dampfbetriebene Grundwasserpumpe -tile.pump_steam.desc=Nutzt Dampf um Grundwasser hochzupumpen$Erzeugt bis zu 10.000mB/t$Muss unter Y:70 platziert werden +tile.pump_steam.desc=Nutzt Dampf um Grundwasser hochzupumpen$Erzeugt bis zu 1.000mB/t$Muss unter Y:70 platziert werden tile.pwr_block.name=PWR tile.pwr_casing.name=PWR Druckbehälter tile.pwr_casing.desc=Muss alle internen Teile des PWRs abdecken$Platzierung: Hülle diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index ccccc5e67..d9255f011 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -5246,7 +5246,7 @@ tile.pribris_radiating.name=Smoldering RBMK Debris tile.pump_electric.name=Electric Groundwater Pump tile.pump_electric.desc=Uses electricity to pump up groundwater$Generates up to 10,000mB/t$Needs to be placed below Y:70 tile.pump_steam.name=Steam-Powered Groundwater Pump -tile.pump_steam.desc=Uses steam to pump up groundwater$Generates up to 100mB/t$Needs to be placed below Y:70 +tile.pump_steam.desc=Uses steam to pump up groundwater$Generates up to 1,000mB/t$Needs to be placed below Y:70 tile.pwr_block.name=PWR tile.pwr_casing.name=PWR Pressure Vessel tile.pwr_casing.desc=Needs to cover all internal parts for the reactor to form$Placement: Casing diff --git a/src/main/resources/assets/hbm/models/machines/telex.obj b/src/main/resources/assets/hbm/models/machines/telex.obj index 4caa6310e..ae7237edb 100644 --- a/src/main/resources/assets/hbm/models/machines/telex.obj +++ b/src/main/resources/assets/hbm/models/machines/telex.obj @@ -1,86 +1,451 @@ -# Blender v2.76 (sub 0) OBJ File: 'telex.blend' +# Blender v2.79 (sub 0) OBJ File: '' # www.blender.org -o Cube_Cube.001 -v -0.500000 0.000000 0.500000 -v -0.500000 1.000000 0.500000 -v -0.500000 0.000000 -1.500000 -v -0.500000 1.000000 -1.500000 -v 0.500000 0.000000 0.500000 -v 0.500000 0.000000 -1.500000 -v 0.500000 0.625000 -1.500000 -v 0.500000 0.625000 0.500000 -v 0.125000 1.000000 -1.500000 -v 0.125000 1.000000 0.500000 -v 0.500000 0.625000 0.125000 -v 0.500000 0.625000 -0.750000 -v 0.125000 1.000000 -0.750000 -v 0.125000 0.625000 -0.750000 -v 0.125000 0.625000 0.125000 -v 0.125000 1.000000 0.125000 -vt -0.000000 0.500000 -vt -0.000000 0.250000 -vt 0.500000 0.250000 -vt 0.843750 0.250000 -vt 0.750000 0.156250 -vt 1.000000 -0.000000 -vt 0.093750 0.250000 -vt 0.093750 0.156250 -vt 0.312500 0.156250 -vt 0.500000 0.000000 +o Cube.001 +v 0.500000 0.000000 1.500000 +v 0.500000 0.625000 1.500000 +v 0.125000 1.000000 1.500000 +v -0.500000 1.000000 1.500000 +v -0.500000 0.000000 1.500000 +v 0.500000 0.000000 1.125000 +v 0.500000 0.625000 1.125000 +v 0.125000 1.000000 1.125000 +v 0.125000 0.625000 1.125000 +v -0.500000 1.000000 1.125000 +v 0.125000 0.625000 0.250000 +v 0.125000 1.000000 0.250000 +v 0.500000 0.625000 0.250000 +v 0.125000 1.000000 -0.500000 +v 0.500000 0.625000 -0.500000 +v 0.500000 0.000000 -0.500000 +v 0.500000 0.000000 0.250000 +v -0.500000 1.000000 0.250000 +v -0.500000 1.000000 -0.500000 +v -0.500000 0.000000 -0.500000 +v -0.500000 0.000000 0.250000 +v -0.500000 0.000000 1.125000 +v -0.187500 1.000000 -0.437500 +v -0.437500 1.000000 -0.437500 +v -0.437500 1.000000 0.062500 +v -0.187500 1.000000 0.062500 +v -0.187500 1.312500 -0.437500 +v -0.187500 1.312500 0.062500 +v -0.437500 1.312500 0.062500 +v -0.437500 1.312500 -0.437500 +v -0.375000 1.062500 0.062500 +v -0.312500 1.062500 0.062500 +v -0.312500 1.062500 0.125000 +v -0.375000 1.062500 0.187500 +v -0.312500 1.000000 0.062500 +v -0.312500 1.000000 0.125000 +v -0.375000 1.000000 0.062500 +v -0.375000 1.000000 0.187500 +v -0.125000 1.062500 0.125000 +v -0.125000 1.062500 0.187500 +v -0.125000 1.000000 0.125000 +v -0.125000 1.000000 0.187500 +v 0.000000 1.062500 0.125000 +v -0.062500 1.062500 0.125000 +v -0.062500 1.187500 0.125000 +v 0.000000 1.187500 0.125000 +v 0.062500 1.000000 0.250000 +v 0.062500 1.000000 0.062500 +v 0.062500 1.062500 0.062500 +v 0.062500 1.062500 0.250000 +v -0.125000 1.000000 0.062500 +v -0.125000 1.000000 0.250000 +v -0.125000 1.062500 0.250000 +v -0.125000 1.062500 0.062500 +v -0.062500 1.062500 0.187500 +v 0.000000 1.062500 0.187500 +v 0.000000 1.187500 0.187500 +v -0.062500 1.187500 0.187500 +v -0.093750 1.187500 0.093750 +v 0.031250 1.187500 0.093750 +v 0.031250 1.187500 0.218750 +v -0.093750 1.187500 0.218750 +v -0.093750 1.437500 0.093750 +v -0.093750 1.437500 0.218750 +v 0.031250 1.437500 0.218750 +v 0.031250 1.437500 0.093750 +v -0.312500 1.812500 0.000000 +v -0.375000 1.812500 0.000000 +v -0.375000 1.812500 -0.062500 +v -0.312500 1.812500 -0.062500 +v -0.375000 1.312500 -0.062500 +v -0.312500 1.312500 -0.062500 +v -0.312500 1.312500 0.000000 +v -0.375000 1.312500 0.000000 +v 0.312500 0.812500 -0.312500 +v 0.312500 0.812500 0.062500 +v 0.375000 0.875000 0.062500 +v 0.375000 0.875000 -0.312500 +v 0.562500 0.875000 0.062500 +v 0.562500 0.875000 -0.312500 +v 0.625000 0.812500 0.062500 +v 0.625000 0.812500 -0.312500 +v 0.625000 0.625000 0.062500 +v 0.625000 0.625000 -0.312500 +v 0.562500 0.562500 0.062500 +v 0.562500 0.562500 -0.312500 +v 0.562500 0.375000 0.062500 +v 0.562500 0.375000 -0.312500 +v 0.625000 0.312500 0.062500 +v 0.625000 0.312500 -0.312500 +v 0.625000 0.125000 0.062500 +v 0.625000 0.125000 -0.312500 +v 0.562500 0.062500 -0.312500 +v 0.562500 0.062500 0.062500 vt 0.656250 0.250000 -vt -0.000000 0.750000 +vt 0.500000 0.250000 +vt 0.500000 -0.000000 +vt 0.000000 -0.000000 +vt 0.093750 0.156250 +vt -0.000000 0.156250 +vt 0.093750 0.250000 vt 0.500000 0.500000 -vt 0.500000 0.156250 -vt 0.312500 0.250000 -vt 0.000000 0.156250 -vt -0.000000 0.000000 -vt 0.593750 0.343750 -vt 0.812500 0.343750 vt 0.593750 0.500000 vt 0.500000 0.593750 +vt 0.593750 0.500000 +vt 0.500000 0.343750 +vt 0.593750 0.343750 vt 0.687500 0.500000 +vt 0.593750 0.500000 vt 0.687500 0.593750 +vt 0.312500 0.156250 +vt 0.500000 0.250000 +vt 0.500000 0.156250 +vt 0.312500 0.156250 +vt 0.500000 -0.000000 +vt 0.500000 0.156250 +vt 0.093750 0.000000 vt 0.593750 0.250000 +vt 0.812500 0.343750 +vt 0.593750 0.343750 +vt 0.093750 0.156250 +vt 0.312500 0.250000 +vt 1.000000 0.343750 +vt 0.812500 0.500000 +vt 0.812500 0.343750 +vt 1.000000 -0.000000 +vt 0.843750 0.250000 +vt 0.750000 0.156250 +vt 0.093750 0.250000 +vt 0.312500 0.500000 +vt 0.312500 0.250000 +vt 0.093750 0.500000 +vt -0.000000 0.250000 +vt -0.000000 0.500000 +vt 0.500000 0.250000 +vt 0.500000 0.500000 +vt 0.093750 0.750000 +vt 0.312500 0.750000 +vt 0.093750 0.500000 +vt 0.285714 0.500000 +vt 0.000000 1.000000 +vt 0.285714 1.000000 +vt 0.250000 0.750000 +vt 0.125000 0.812500 +vt 0.250000 0.812500 +vt 0.312500 0.828125 +vt 0.250000 0.750000 +vt 0.312500 0.750000 +vt 0.187500 0.828125 +vt 0.250000 0.906250 +vt 0.187500 0.906250 +vt 0.187500 0.828125 +vt 0.062500 0.906250 +vt 0.187500 0.906250 +vt 0.125000 0.828125 +vt 0.000000 0.750000 +vt 0.125000 0.750000 +vt 0.437500 0.875000 +vt 0.421875 0.859375 +vt 0.437500 0.859375 +vt 0.437500 0.859375 +vt 0.453125 0.843750 +vt 0.437500 0.843750 +vt 0.437500 0.890625 +vt 0.406250 0.875000 +vt 0.406250 0.890625 +vt 0.406250 0.812500 +vt 0.406250 0.875000 +vt 0.100000 1.000000 +vt 0.000000 0.900000 +vt 0.000000 1.000000 +vt 0.437500 0.812500 +vt 0.421875 0.859375 +vt 0.390625 0.812500 +vt 0.406250 0.875000 +vt 0.406250 0.812500 +vt 0.406250 0.750000 +vt 0.390625 0.781250 +vt 0.390625 0.750000 +vt 0.453125 0.750000 +vt 0.406250 0.765625 +vt 0.406250 0.750000 +vt 0.406250 0.765625 +vt 0.453125 0.750000 +vt 0.453125 0.765625 +vt 0.453125 0.750000 +vt 0.406250 0.765625 +vt 0.406250 0.750000 +vt 0.406250 0.765625 +vt 0.453125 0.750000 +vt 0.453125 0.765625 +vt 0.421875 0.781250 +vt 0.406250 0.750000 +vt 0.421875 0.765625 +vt 0.453125 0.750000 +vt 0.437500 0.765625 +vt 0.453125 0.796875 +vt 0.437500 0.781250 +vt 0.406250 0.796875 +vt 0.390625 0.781250 +vt 0.406250 0.750000 +vt 0.406250 0.781250 +vt 0.390625 0.781250 +vt 0.406250 0.750000 +vt 0.406250 0.781250 +vt 0.390625 0.781250 +vt 0.406250 0.750000 +vt 0.406250 0.781250 +vt 0.437500 0.750000 +vt 0.406250 0.781250 +vt 0.406250 0.750000 +vt 0.343750 0.875000 +vt 0.375000 0.906250 +vt 0.343750 0.906250 +vt 0.343750 0.812500 +vt 0.312500 0.875000 +vt 0.312500 0.812500 +vt 0.312500 0.812500 +vt 0.343750 0.875000 +vt 0.343750 0.812500 +vt 0.312500 0.812500 +vt 0.343750 0.875000 +vt 0.343750 0.812500 +vt 0.468750 0.859375 +vt 0.484375 0.875000 +vt 0.484375 0.859375 +vt 0.484375 0.875000 +vt 0.468750 0.750000 +vt 0.484375 0.750000 +vt 0.484375 0.875000 +vt 0.468750 0.750000 +vt 0.484375 0.750000 +vt 0.484375 0.875000 +vt 0.468750 0.750000 +vt 0.484375 0.750000 +vt 0.468750 0.750000 +vt 0.484375 0.750000 +vt 0.687500 0.750000 +vt 0.781250 0.765625 +vt 0.781250 0.750000 +vt 0.687500 0.703125 +vt 0.781250 0.750000 +vt 0.781250 0.703125 +vt 0.687500 0.687500 +vt 0.781250 0.703125 +vt 0.781250 0.687500 +vt 0.687500 0.687500 +vt 0.781250 0.640625 +vt 0.781250 0.687500 +vt 0.687500 0.640625 +vt 0.781250 0.625000 +vt 0.687500 0.625000 +vt 0.781250 0.578125 +vt 0.781250 0.562500 +vt 0.687500 0.578125 +vt 0.687500 0.562500 +vt 0.687500 0.515625 +vt 0.781250 0.500000 +vt 0.687500 0.515625 +vt 0.781250 0.515625 vt 0.750000 -0.000000 +vt 0.750000 0.156250 +vt -0.000000 0.250000 +vt 0.500000 0.500000 +vt 0.312500 0.250000 +vt 0.312500 0.000000 +vt 0.812500 0.250000 +vt 0.312500 0.156250 +vt 1.000000 0.500000 +vt 0.750000 0.000000 vt 1.000000 0.250000 vt 0.500000 0.750000 -vt 1.000000 0.500000 -vt 0.500000 0.343750 -vt 1.000000 0.343750 -vt 0.812500 0.250000 -vn -1.000000 0.000000 0.000000 -vn 0.000000 0.000000 -1.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000000 0.000000 1.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.707100 0.707100 0.000000 -vn 0.000000 1.000000 0.000000 +vt 0.500000 0.500000 +vt 0.312500 0.500000 +vt 0.000000 0.500000 +vt -0.000000 0.750000 +vt 0.000000 0.500000 +vt 0.125000 0.750000 +vt 0.250000 0.828125 +vt 0.250000 0.828125 +vt 0.062500 0.828125 +vt 0.000000 0.828125 +vt 0.453125 0.859375 +vt 0.437500 0.875000 +vt 0.421875 0.812500 +vt 0.100000 0.900000 +vt 0.421875 0.812500 +vt 0.390625 0.875000 +vt 0.406250 0.781250 +vt 0.453125 0.765625 +vt 0.453125 0.765625 +vt 0.406250 0.750000 +vt 0.390625 0.750000 +vt 0.390625 0.750000 +vt 0.390625 0.750000 +vt 0.437500 0.781250 +vt 0.375000 0.875000 +vt 0.312500 0.875000 +vt 0.312500 0.875000 +vt 0.468750 0.875000 +vt 0.468750 0.875000 +vt 0.468750 0.875000 +vt 0.468750 0.875000 +vt 0.687500 0.765625 +vt 0.687500 0.750000 +vt 0.687500 0.703125 +vt 0.781250 0.515625 +vt 0.687500 0.500000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 1.0000 0.0000 +vn -1.0000 -0.0000 0.0000 +vn 0.0000 -1.0000 -0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 s off -f 4/1/1 3/2/1 1/3/1 -f 9/4/2 7/5/2 3/6/2 -f 16/7/3 15/8/3 14/9/3 -f 1/10/4 8/5/4 10/11/4 -f 3/12/5 6/1/5 5/13/5 -f 7/14/6 9/3/6 13/15/6 -f 10/2/6 8/16/6 11/8/6 -f 12/9/3 5/17/3 6/10/3 -f 16/18/7 13/19/7 2/13/7 -f 12/20/4 13/21/4 14/13/4 -f 11/20/2 15/22/2 16/23/2 -f 14/19/7 15/18/7 11/24/7 -f 2/13/1 4/1/1 1/3/1 -f 6/25/2 3/6/2 7/5/2 -f 4/26/2 9/4/2 3/6/2 -f 13/15/3 16/7/3 14/9/3 -f 10/11/4 2/3/4 1/10/4 -f 1/10/4 5/25/4 8/5/4 -f 1/27/5 3/12/5 5/13/5 -f 12/9/6 7/14/6 13/15/6 -f 16/7/6 10/2/6 11/8/6 -f 6/10/3 7/14/3 12/9/3 -f 12/9/3 11/8/3 5/17/3 -f 8/16/3 5/17/3 11/8/3 -f 4/28/7 2/13/7 13/19/7 -f 10/29/7 16/18/7 2/13/7 -f 13/19/7 9/30/7 4/28/7 -f 12/31/7 14/19/7 11/24/7 +f 3/1/1 4/2/1 5/3/1 +f 1/4/2 7/5/2 2/6/2 +f 8/7/3 2/6/3 7/5/3 +f 9/8/4 8/9/4 7/10/4 +f 10/11/5 3/12/5 8/13/5 +f 11/14/1 13/15/1 12/16/1 +f 12/17/3 15/18/3 14/19/3 +f 13/20/2 16/21/2 15/22/2 +f 6/23/2 13/20/2 7/5/2 +f 7/24/5 11/25/5 9/26/5 +f 9/27/2 12/28/2 8/7/2 +f 14/29/5 18/30/5 12/31/5 +f 20/32/4 14/33/4 15/34/4 +f 12/31/5 10/11/5 8/13/5 +f 22/35/6 18/36/6 21/37/6 +f 10/38/6 5/39/6 4/40/6 +f 20/41/6 18/36/6 19/42/6 +f 22/43/7 21/44/7 6/45/7 +f 26/46/7 24/47/7 23/48/7 +f 30/49/5 28/50/5 27/51/5 +f 30/52/4 23/53/4 24/54/4 +f 28/55/1 25/56/1 26/57/1 +f 29/58/6 24/59/6 25/60/6 +f 27/61/2 26/62/2 23/63/2 +f 31/64/5 33/65/5 32/66/5 +f 33/67/2 35/68/2 32/69/2 +f 38/70/6 31/71/6 37/72/6 +f 40/73/5 33/65/5 34/74/5 +f 42/75/2 39/76/2 40/77/2 +f 39/78/4 36/79/4 33/67/4 +f 38/80/1 40/81/1 34/82/1 +f 44/83/4 46/84/4 43/85/4 +f 48/86/2 50/87/2 47/88/2 +f 52/89/6 54/90/6 51/91/6 +f 51/92/4 49/93/4 48/94/4 +f 47/95/1 53/96/1 52/97/1 +f 44/98/5 53/99/5 55/100/5 +f 55/100/5 50/101/5 56/102/5 +f 56/102/5 49/103/5 43/104/5 +f 43/104/5 54/105/5 44/98/5 +f 56/106/1 58/107/1 55/108/1 +f 43/109/2 57/110/2 56/111/2 +f 55/112/6 45/113/6 44/114/6 +f 60/115/7 62/116/7 59/117/7 +f 64/118/5 66/119/5 63/120/5 +f 60/121/2 65/122/2 61/123/2 +f 62/124/6 63/125/6 59/126/6 +f 59/127/4 66/128/4 60/121/4 +f 61/123/1 64/118/1 62/129/1 +f 70/130/5 68/131/5 67/132/5 +f 69/133/4 72/134/4 71/135/4 +f 67/136/1 74/137/1 73/138/1 +f 70/139/2 73/140/2 72/141/2 +f 68/131/6 71/142/6 74/143/6 +f 76/144/8 78/145/8 75/146/8 +f 77/147/5 80/148/5 78/149/5 +f 79/150/3 82/151/3 80/152/3 +f 81/153/2 84/154/2 82/155/2 +f 83/156/9 86/157/9 84/154/9 +f 85/158/2 88/159/2 86/157/2 +f 90/160/3 87/161/3 89/162/3 +f 91/163/2 90/160/2 89/162/2 +f 92/164/9 94/165/9 93/166/9 +f 5/3/1 1/167/1 2/168/1 +f 2/168/1 3/1/1 5/3/1 +f 1/4/2 6/23/2 7/5/2 +f 8/7/3 3/169/3 2/6/3 +f 10/11/5 4/170/5 3/12/5 +f 12/17/3 13/171/3 15/18/3 +f 13/20/2 17/172/2 16/21/2 +f 6/23/2 17/172/2 13/20/2 +f 7/24/5 13/173/5 11/25/5 +f 9/27/2 11/174/2 12/28/2 +f 14/29/5 19/175/5 18/30/5 +f 15/34/4 16/176/4 20/32/4 +f 20/32/4 19/177/4 14/33/4 +f 12/31/5 18/30/5 10/11/5 +f 22/35/6 10/38/6 18/36/6 +f 10/38/6 22/35/6 5/39/6 +f 20/41/6 21/37/6 18/36/6 +f 20/178/7 16/179/7 17/180/7 +f 6/45/7 1/181/7 5/182/7 +f 20/178/7 17/180/7 21/44/7 +f 17/180/7 6/45/7 21/44/7 +f 5/182/7 22/43/7 6/45/7 +f 26/46/7 25/183/7 24/47/7 +f 30/49/5 29/184/5 28/50/5 +f 30/52/4 27/185/4 23/53/4 +f 28/55/1 29/186/1 25/56/1 +f 29/58/6 30/187/6 24/59/6 +f 27/61/2 28/188/2 26/62/2 +f 31/64/5 34/74/5 33/65/5 +f 33/67/2 36/189/2 35/68/2 +f 38/70/6 34/190/6 31/71/6 +f 40/73/5 39/191/5 33/65/5 +f 42/75/2 41/192/2 39/76/2 +f 39/78/4 41/193/4 36/79/4 +f 38/80/1 42/194/1 40/81/1 +f 44/83/4 45/195/4 46/84/4 +f 48/86/2 49/196/2 50/87/2 +f 52/89/6 53/99/6 54/90/6 +f 51/92/4 54/197/4 49/93/4 +f 47/95/1 50/198/1 53/96/1 +f 44/98/5 54/105/5 53/99/5 +f 55/100/5 53/99/5 50/101/5 +f 56/102/5 50/101/5 49/103/5 +f 43/104/5 49/103/5 54/105/5 +f 56/106/1 57/199/1 58/107/1 +f 43/109/2 46/200/2 57/110/2 +f 55/112/6 58/201/6 45/113/6 +f 60/115/7 61/202/7 62/116/7 +f 64/118/5 65/203/5 66/119/5 +f 60/121/2 66/128/2 65/122/2 +f 62/124/6 64/204/6 63/125/6 +f 59/127/4 63/205/4 66/128/4 +f 61/123/1 65/122/1 64/118/1 +f 70/130/5 69/206/5 68/131/5 +f 69/133/4 70/207/4 72/134/4 +f 67/136/1 68/208/1 74/137/1 +f 70/139/2 67/209/2 73/140/2 +f 68/131/6 69/206/6 71/142/6 +f 76/144/8 77/210/8 78/145/8 +f 77/147/5 79/211/5 80/148/5 +f 79/150/3 81/212/3 82/151/3 +f 81/153/2 83/156/2 84/154/2 +f 83/156/9 85/158/9 86/157/9 +f 85/158/2 87/161/2 88/159/2 +f 90/160/3 88/159/3 87/161/3 +f 91/163/2 92/213/2 90/160/2 +f 92/164/9 91/214/9 94/165/9 diff --git a/src/main/resources/assets/hbm/textures/models/machines/telex.png b/src/main/resources/assets/hbm/textures/models/machines/telex.png index 2ba7d96c7e4f48d504956a8c36ae14d690e44d34..3cc38b488511b12b6b3e305641af570a6168098c 100644 GIT binary patch delta 3785 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 delta 1918 zcmV-^2Z8v?9gYu>C4Xl@O+f$vv5yPl0UK8 zUuVA2x4k{y+4YhIF(rNKuCA)-ud2J})oP@XMjC0PkwzM6q>)A%X{3=x{(o}m+;X_^ z$x`@m=4kli#%%cY%48Q97lvVH&i5xLA_^L#6A=NMXUD_&>DR*bkKc^_pT3wZA@cOq z;wRk`mA^wVfPaEBA4M-{j7~&^Hb+{-Jwbs2xSsl_ke}uQ1&z@OgtY1o#(Z3Tjk_&} z)JJ`d1LiJhj7}h-?Vhd}gtcmd+dZb=c;-YeXpBxE19_2CBD5sniFqPv%pmcM6*NXC zPTC2AbOn`2E~$Rw|5XL>^GRC=xtMn)G7i#_!jE$L@SoAkj4ccQ%fS!K~=o$9;^2NlIm3iCI62U zVDsy%<$uQsgq*Yz^uz=oSB&@fiq{7ib1Jc_B6#wk7#^PJOAs<54_G0#DXpFYDYTk7 z>=my$fhPyN2x;=5Fbz-iQKB6{QYn1(hGF-Qp)^52;<@BOL3?R%Q>q|hPegr(!B1T?nac##t^S`u)go(SU} z({Ft0-(rQF@ZGPDmO604vb(1(irHsX^l177GBOsi~=F3JO61Ae%dzRq!*N zj(^ob8Xu1Us{yH{rKR$2d+OAwvQ>X>Zmz@T_Bz0yIhc#%KmmMJ9jwl0Q!i!h5cgFC zsZVMbJf41wm4FPSJW256$&>K-@#Bufl}MGHzI@#7vCO3-kRwRaf{&>s0qLMBUUrWK zipM_|0H^>?etUa6+`oT6_UqU^$-V6KIe&J#2c%FkA}(D>cYxxm{8M!80Nn%T=jY4S zeE9HTB>&*SgYf9lqpk#Vb}vxQuAQI)0M4QSF|}22{}i&PF^<$f-UGY?cFDoz#f)l;BX0Z4p# zc{y@fSy_p#^r~@+QH0kQy{c-Zo)vTi3L0HPGIf%cPP?xHup*F>4j`z^xV4Q^v&qpR;@pa`!oJR*QUKlLc7f_yzj{a&%a<9QSVKf1+*9x+ zR;?bJ=<0KQ=8et_G9Zuycl7D$>GI|1*s)^~jLCN5@Zs?7p+jN*$dPhf&+y!h&mnSp z3ULH!b&o*zdyI$|IaZ1iPUCgY(R+{PD68d&tJr>AJ@?{)aNt5Kwq5&Z?hh6@LJtDu76#L(Bh0ZH)OR>HKo z{-^B~ztc|MzaqT=p0pRkcK|Eogn4R62TmA!RS}eYuXw%sOK))w9S|c4$ok8RUS=5g zgtzbAd)l^l0Ja$0K3gQY7w`ev@~n;sYDYj)3Avp_;aTKf9^<<48h?)kP(>Xo!0zsD z`0K=pu(PuhwzjsS&IgWK630(1g&~$}q&rJGHd@WAEh^IJo`CEC!dg-1O~2oG6{O{4 z1dzWg7c0V;~_0e%7eNi3Ii3jA{M5OAG-Kl2YWzWg7+04=)ux&S&C0qE?2T*4_- zfHWQ*==%N6Kg{^@YY=04!Sn*O_;a@F90B}t@zS~eAoCA1es`e%0qg+3+4&7ot&oeS zF9L(iKg{@!0^DAkj^Fd&Uzy(Xdmj7EFAv8SfBN5DKGG2{dm4Z3?0B49q Date: Sat, 16 Sep 2023 19:46:56 +0200 Subject: [PATCH 310/432] power gauge, fixes --- changelog | 13 +- gradle.properties | 2 +- src/main/java/api/hbm/energy/PowerNet.java | 2 + src/main/java/api/hbm/fluid/PipeNet.java | 2 + src/main/java/com/hbm/blocks/ModBlocks.java | 3 + .../hbm/blocks/network/BlockCableGauge.java | 165 ++++++++++++++++++ .../java/com/hbm/crafting/WeaponRecipes.java | 2 +- .../inventory/recipes/anvil/AnvilRecipes.java | 17 ++ src/main/java/com/hbm/items/ModItems.java | 3 - src/main/java/com/hbm/lib/HbmWorldGen.java | 2 +- src/main/java/com/hbm/lib/RefStrings.java | 2 +- .../java/com/hbm/main/CraftingManager.java | 3 +- src/main/java/com/hbm/main/MainRegistry.java | 1 + .../java/com/hbm/tileentity/TileMappings.java | 2 + .../java/com/hbm/util/EntityDamageUtil.java | 6 +- src/main/resources/assets/hbm/lang/de_DE.lang | 6 + src/main/resources/assets/hbm/lang/en_US.lang | 6 + .../hbm/textures/blocks/cable_gauge.png | Bin 0 -> 305 bytes 18 files changed, 227 insertions(+), 10 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/network/BlockCableGauge.java create mode 100644 src/main/resources/assets/hbm/textures/blocks/cable_gauge.png diff --git a/changelog b/changelog index 607efd8b8..03232f545 100644 --- a/changelog +++ b/changelog @@ -15,6 +15,12 @@ * Industrial smokestack * An even larger smokestack, matching the size of the coker unit * Reduced pollution by 90%, as opposed to the brick smokestack's 75% +* Power gauge + * Like the flow gauge pipe for cable networks + * Shows the total amount of power being transferred within the connected network +* Trenchmaster armor + * A new unique set of armor that is currently unobtainable + * Has new traits like faster reloads, a 33% chance of not using up ammo and step-assist ## Changed * Updated russian localization @@ -36,6 +42,8 @@ * Smokestacks now capture fly ash and are now compatible with ashpits * Industrial smokestacks can also capture fine soot * Reduced strings required for making coal filters, filters are now also available in tier 2 anvils +* Fireboxes and heating ovens can now be disassembled in tier 2 anvils, yielding most of the resources used for making them +* Signal beacons now only spawn half as often ## Fixed * Fixed the bomber not spawning if the chunkloading radios is too small @@ -48,4 +56,7 @@ * Hopefully fixed issue where the tom impact effects will last even when switching worlds * Fixed logspam caused by custom machine crafting handler * Fixed issue with the assemblers and chemplants where recipes with larger input requirements would break the input funnel -* Fixed crash caused by reloading when the ammo item is in the last slot \ No newline at end of file +* Fixed crash caused by reloading when the ammo item is in the last slot +* Power and fluid networks will no longer transfer amounts less or equal than 0, preventing negative values and removing unnecessary operations where nothing would happen anyways +* Fixed bug where damage sources that bypass iframes would deal significantly more damage if the victim has taken a lot of damage prior +* Fixed duplicate balefire shell existing, the one that was usable was not the one that was craftable diff --git a/gradle.properties b/gradle.properties index 0f150c67e..f918fa348 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4711 +mod_build_number=4724 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ diff --git a/src/main/java/api/hbm/energy/PowerNet.java b/src/main/java/api/hbm/energy/PowerNet.java index 172e22dde..a2165b49b 100644 --- a/src/main/java/api/hbm/energy/PowerNet.java +++ b/src/main/java/api/hbm/energy/PowerNet.java @@ -153,6 +153,8 @@ public class PowerNet implements IPowerNet { public static long fairTransfer(List subscribers, long power) { + if(power <= 0) return 0; + if(subscribers.isEmpty()) return power; diff --git a/src/main/java/api/hbm/fluid/PipeNet.java b/src/main/java/api/hbm/fluid/PipeNet.java index 8ad18725d..412af45c5 100644 --- a/src/main/java/api/hbm/fluid/PipeNet.java +++ b/src/main/java/api/hbm/fluid/PipeNet.java @@ -106,6 +106,8 @@ public class PipeNet implements IPipeNet { public static long fairTransfer(List subList, FluidType type, int pressure, long fill) { + if(fill <= 0) return 0; + List weight = new ArrayList(); long totalReq = 0; diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 8a91ad707..7f809f174 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -782,6 +782,7 @@ public class ModBlocks { public static Block red_cable; public static Block red_cable_classic; public static Block red_cable_paintable; + public static Block red_cable_gauge; public static Block red_connector; public static Block red_pylon; public static Block red_pylon_large; @@ -1949,6 +1950,7 @@ public class ModBlocks { red_cable = new BlockCable(Material.iron).setBlockName("red_cable").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":cable_neo"); red_cable_classic = new BlockCable(Material.iron).setBlockName("red_cable_classic").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_cable_classic"); red_cable_paintable = new BlockCablePaintable().setBlockName("red_cable_paintable").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + red_cable_gauge = new BlockCableGauge().setBlockName("red_cable_gauge").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); red_connector = new ConnectorRedWire(Material.iron).setBlockName("red_connector").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_connector"); red_pylon = new PylonRedWire(Material.iron).setBlockName("red_pylon").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_pylon"); red_pylon_large = new PylonLarge(Material.iron).setBlockName("red_pylon_large").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_pylon_large"); @@ -3210,6 +3212,7 @@ public class ModBlocks { GameRegistry.registerBlock(red_cable, red_cable.getUnlocalizedName()); GameRegistry.registerBlock(red_cable_classic, red_cable_classic.getUnlocalizedName()); GameRegistry.registerBlock(red_cable_paintable, red_cable_paintable.getUnlocalizedName()); + register(red_cable_gauge); GameRegistry.registerBlock(red_wire_coated, red_wire_coated.getUnlocalizedName()); GameRegistry.registerBlock(red_connector, ItemBlockBase.class, red_connector.getUnlocalizedName()); GameRegistry.registerBlock(red_pylon, ItemBlockBase.class, red_pylon.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/network/BlockCableGauge.java b/src/main/java/com/hbm/blocks/network/BlockCableGauge.java new file mode 100644 index 000000000..93b29daec --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/BlockCableGauge.java @@ -0,0 +1,165 @@ +package com.hbm.blocks.network; + +import java.math.BigInteger; +import java.util.ArrayList; +import java.util.List; + +import com.hbm.blocks.IBlockMultiPass; +import com.hbm.blocks.ILookOverlay; +import com.hbm.blocks.ITooltipProvider; +import com.hbm.lib.RefStrings; +import com.hbm.render.block.RenderBlockMultipass; +import com.hbm.tileentity.INBTPacketReceiver; +import com.hbm.tileentity.network.TileEntityCableBaseNT; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; + +import cpw.mods.fml.common.Optional; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; +import li.cil.oc.api.network.SimpleComponent; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.BlockPistonBase; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; + +public class BlockCableGauge extends BlockContainer implements IBlockMultiPass, ILookOverlay, ITooltipProvider { + + @SideOnly(Side.CLIENT) protected IIcon overlayGauge; + + public BlockCableGauge() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityCableGauge(); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister reg) { + this.blockIcon = reg.registerIcon(RefStrings.MODID + ":deco_red_copper"); + this.overlayGauge = reg.registerIcon(RefStrings.MODID + ":cable_gauge"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) { + + if(RenderBlockMultipass.currentPass == 0) { + return blockIcon; + } + + return side == world.getBlockMetadata(x, y, z) ? this.overlayGauge : this.blockIcon; + } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack) { + int l = BlockPistonBase.determineOrientation(world, x, y, z, player); + world.setBlockMetadataWithNotify(x, y, z, l, 2); + } + + @Override + public int getPasses() { + return 2; + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } + + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + + TileEntity te = world.getTileEntity(x, y, z); + + if(!(te instanceof TileEntityCableGauge)) + return; + + TileEntityCableGauge duct = (TileEntityCableGauge) te; + + List text = new ArrayList(); + text.add(BobMathUtil.getShortNumber(duct.deltaTick) + "HE/t"); + text.add(BobMathUtil.getShortNumber(duct.deltaLastSecond) + "HE/s"); + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } + + @Override + public int getRenderType(){ + return IBlockMultiPass.getRenderType(); + } + + @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) + public static class TileEntityCableGauge extends TileEntityCableBaseNT implements INBTPacketReceiver, SimpleComponent { + + private BigInteger lastMeasurement = BigInteger.valueOf(10); + private long deltaTick = 0; + private long deltaSecond = 0; + private long deltaLastSecond = 0; + + @Override + public void updateEntity() { + super.updateEntity(); + + if(!worldObj.isRemote) { + + if(network != null) { + BigInteger total = network.getTotalTransfer(); + BigInteger delta = total.subtract(this.lastMeasurement); + this.lastMeasurement = total; + + try { + this.deltaTick = delta.longValueExact(); + if(worldObj.getTotalWorldTime() % 20 == 0) { + this.deltaLastSecond = this.deltaSecond; + this.deltaSecond = 0; + } + this.deltaSecond += deltaTick; + + } catch(Exception ex) { } + } + + NBTTagCompound data = new NBTTagCompound(); + data.setLong("deltaT", deltaTick); + data.setLong("deltaS", deltaLastSecond); + INBTPacketReceiver.networkPack(this, data, 25); + } + } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + this.deltaTick = Math.max(nbt.getLong("deltaT"), 0); + this.deltaLastSecond = Math.max(nbt.getLong("deltaS"), 0); + } + + public String getComponentName() { + return "ntm_cable_gauge"; + } + + @Callback(direct = true, limit = 8) + @Optional.Method(modid = "OpenComputers") + public Object[] getTransfer(Context context, Arguments args) { + return new Object[] {deltaTick, deltaSecond}; + } + + @Callback(direct = true, limit = 8) + @Optional.Method(modid = "OpenComputers") + public Object[] getInfo(Context context, Arguments args) { + return new Object[] {deltaTick, deltaSecond, xCoord, yCoord, zCoord}; + } + } +} diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index 65160734e..003f4c7e3 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -98,7 +98,7 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_fatman, 1), new Object[] { "SSI", "IIM", "WPH", 'S', STEEL.plate(), 'I', STEEL.ingot(), 'W', ModItems.wire_aluminium, 'H', ModItems.hull_small_steel, 'P', Item.getItemFromBlock(Blocks.piston), 'M', ModItems.mechanism_launcher_2 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_mirv, 1), new Object[] { "LLL", "WFW", "SSS", 'S', STEEL.plate(), 'L', PB.plate(), 'W', ModItems.wire_gold, 'F', ModItems.gun_fatman }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_proto, 1), new Object[] { "LLL", "WFW", "SSS", 'S', ModItems.plate_polymer, 'L', ModItems.plate_desh, 'W', ModItems.wire_tungsten, 'F', ModItems.gun_fatman }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_bf_ammo, 1), new Object[] { " S ", "EBE", " S ", 'S', ModItems.hull_small_steel, 'E', ModItems.powder_power, 'B', ModItems.egg_balefire_shard }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_nuke, 1, AmmoFatman.BALEFIRE.ordinal()), new Object[] { " S ", "EBE", " S ", 'S', ModItems.hull_small_steel, 'E', ModItems.powder_power, 'B', ModItems.egg_balefire_shard }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_mp40, 1), new Object[] { "IIM", " SW", " S ", 'S', STEEL.plate(), 'I', STEEL.ingot(), 'W', KEY_PLANKS, 'M', ModItems.mechanism_rifle_2 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_thompson, 1), new Object[] { "IIM", " SW", " S ", 'S', IRON.plate(), 'I', STEEL.plate(), 'W', KEY_PLANKS, 'M', ModItems.mechanism_rifle_2 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_flechette, 1), new Object[] { "PPM", "TIS", "G ", 'P', STEEL.plate(), 'M', ModItems.mechanism_rifle_2, 'T', ModItems.hull_small_steel, 'I', STEEL.ingot(), 'S', ANY_PLASTIC.ingot(), 'G', ModItems.mechanism_launcher_1 }); diff --git a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java index 568f66a6f..18c3f31e9 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -693,6 +693,23 @@ public class AnvilRecipes { } public static void registerConstructionRecycling() { + + constructionRecipes.add(new AnvilConstructionRecipe( + new ComparableStack(ModBlocks.heater_firebox), + new AnvilOutput[] { + new AnvilOutput(new ItemStack(ModItems.plate_steel, 8)), + new AnvilOutput(new ItemStack(ModItems.ingot_copper, 6)) + } + ).setTier(2)); + + constructionRecipes.add(new AnvilConstructionRecipe( + new ComparableStack(ModBlocks.heater_oven), + new AnvilOutput[] { + new AnvilOutput(new ItemStack(ModItems.ingot_firebrick, 16)), + new AnvilOutput(new ItemStack(ModItems.ingot_copper, 8)) + } + ).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( new ComparableStack(ModBlocks.barrel_tcalloy), new AnvilOutput[] { diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 62b4e98ce..576140252 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1542,7 +1542,6 @@ public class ModItems { public static Item gun_proto; public static Item gun_mirv; public static Item gun_bf; - public static Item gun_bf_ammo; public static Item gun_chemthrower; public static Item gun_mp40; public static Item gun_thompson; @@ -4142,7 +4141,6 @@ public class ModItems { gun_fatman = new ItemGunBase(GunFatmanFactory.getFatmanConfig()).setUnlocalizedName("gun_fatman").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_fatman"); gun_proto = new ItemGunBase(GunFatmanFactory.getProtoConfig()).setUnlocalizedName("gun_proto").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_fatman"); gun_mirv = new ItemGunBase(GunFatmanFactory.getMIRVConfig()).setUnlocalizedName("gun_mirv").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_mirv"); - gun_bf_ammo = new Item().setUnlocalizedName("gun_bf_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_bf_ammo"); gun_bf = new ItemGunBase(GunFatmanFactory.getBELConfig()).setUnlocalizedName("gun_bf").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_bf"); gun_chemthrower = new ItemGunChemthrower().setUnlocalizedName("gun_chemthrower").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_fatman"); gun_mp40 = new ItemGunBase(Gun9mmFactory.getMP40Config()).setUnlocalizedName("gun_mp40").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_mp40"); @@ -7065,7 +7063,6 @@ public class ModItems { //GameRegistry.registerItem(gun_stinger_ammo, gun_stinger_ammo.getUnlocalizedName()); //GameRegistry.registerItem(gun_fatman_ammo, gun_fatman_ammo.getUnlocalizedName()); //GameRegistry.registerItem(gun_mirv_ammo, gun_mirv_ammo.getUnlocalizedName()); - GameRegistry.registerItem(gun_bf_ammo, gun_bf_ammo.getUnlocalizedName()); //GameRegistry.registerItem(gun_mp40_ammo, gun_mp40_ammo.getUnlocalizedName()); //GameRegistry.registerItem(gun_uzi_ammo, gun_uzi_ammo.getUnlocalizedName()); //GameRegistry.registerItem(gun_uboinik_ammo, gun_uboinik_ammo.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/lib/HbmWorldGen.java b/src/main/java/com/hbm/lib/HbmWorldGen.java index 6182148ab..b832541ce 100644 --- a/src/main/java/com/hbm/lib/HbmWorldGen.java +++ b/src/main/java/com/hbm/lib/HbmWorldGen.java @@ -393,7 +393,7 @@ public class HbmWorldGen implements IWorldGenerator { } } - if(rand.nextInt(1000) == 0) { + if(rand.nextInt(2000) == 0) { int x = i + rand.nextInt(16); int z = j + rand.nextInt(16); int y = world.getHeightValue(x, z); diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index b27af5248..3df3c0458 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4711)"; + public static final String VERSION = "1.0.27 BETA (4724)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 4d29c4ee7..fbf14fab9 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -259,7 +259,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.conveyor, 16), new Object[] { "LLL", "I I", "LLL", 'L', Items.leather, 'I', IRON.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.conveyor, 16), new Object[] { "RSR", "I I", "RSR", 'I', IRON.ingot(), 'R', DictFrame.fromOne(ModItems.plant_item, EnumPlantType.ROPE), 'S', IRON.plate() }); addRecipeAuto(new ItemStack(ModBlocks.conveyor, 64), new Object[] { "LLL", "I I", "LLL", 'L', RUBBER.ingot(), 'I', IRON.ingot() }); - addRecipeAuto(new ItemStack(ModBlocks.conveyor_express, 16), new Object[] { "CCC", "CLC", "CCC", 'C', ModBlocks.conveyor, 'L', Fluids.LUBRICANT.getDict(1_000) }); + addRecipeAuto(new ItemStack(ModBlocks.conveyor_express, 8), new Object[] { "CCC", "CLC", "CCC", 'C', ModBlocks.conveyor, 'L', Fluids.LUBRICANT.getDict(1_000) }); addRecipeAuto(new ItemStack(ModBlocks.conveyor_double, 3), new Object[] { "CPC", "CPC", "CPC", 'C', ModBlocks.conveyor, 'P', IRON.plate() }); addRecipeAuto(new ItemStack(ModBlocks.conveyor_triple, 3), new Object[] { "CPC", "CPC", "CPC", 'C', ModBlocks.conveyor_double, 'P', STEEL.plate() }); addRecipeAuto(new ItemStack(ModBlocks.conveyor_chute, 3), new Object[] { "IGI", "IGI", "ICI" , 'I', IRON.ingot(), 'G', ModBlocks.steel_grate, 'C', ModBlocks.conveyor }); @@ -281,6 +281,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.red_cable, 16), new Object[] { " W ", "RRR", " W ", 'W', ModItems.plate_polymer, 'R', ModItems.wire_red_copper }); addShapelessAuto(new ItemStack(ModBlocks.red_cable_classic, 1), new Object[] { ModBlocks.red_cable }); addShapelessAuto(new ItemStack(ModBlocks.red_cable, 1), new Object[] { ModBlocks.red_cable_classic }); + addShapelessAuto(new ItemStack(ModBlocks.red_cable_gauge), new Object[] { ModBlocks.red_wire_coated, STEEL.ingot(), ModItems.circuit_aluminium }); addRecipeAuto(new ItemStack(ModBlocks.red_connector, 4), new Object[] { "C", "I", "S", 'C', ModItems.coil_copper, 'I', ModItems.plate_polymer, 'S', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.red_pylon, 4), new Object[] { "CWC", "PWP", " T ", 'C', ModItems.coil_copper, 'W', KEY_PLANKS, 'P', ModItems.plate_polymer, 'T', ModBlocks.red_wire_coated }); addRecipeAuto(new ItemStack(ModBlocks.machine_battery_potato, 1), new Object[] { "PCP", "WRW", "PCP", 'P', ItemBattery.getEmptyBattery(ModItems.battery_potato), 'C', CU.ingot(), 'R', REDSTONE.block(), 'W', KEY_PLANKS }); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index b1458de1f..9dc506768 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -1173,6 +1173,7 @@ public class MainRegistry { ignoreMappings.add("hbm:item.recycled_electronic"); ignoreMappings.add("hbm:item.recycled_nuclear"); ignoreMappings.add("hbm:item.recycled_misc"); + ignoreMappings.add("hbm:item.gun_bf_ammo"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index f865030c1..3ff167e2e 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -19,6 +19,7 @@ import com.hbm.blocks.machine.MachineCapacitor.TileEntityCapacitor; import com.hbm.blocks.machine.MachineFan.TileEntityFan; import com.hbm.blocks.machine.PistonInserter.TileEntityPistonInserter; import com.hbm.blocks.machine.WatzPump.TileEntityWatzPump; +import com.hbm.blocks.network.BlockCableGauge.TileEntityCableGauge; import com.hbm.blocks.network.BlockCablePaintable.TileEntityCablePaintable; import com.hbm.blocks.network.CableDiode.TileEntityDiode; import com.hbm.blocks.network.FluidDuctGauge.TileEntityPipeGauge; @@ -190,6 +191,7 @@ public class TileMappings { put(TileEntityDeaerator.class, "tileentity_deaerator"); put(TileEntityCableBaseNT.class, "tileentity_ohgod"); // what? put(TileEntityCablePaintable.class, "tileentity_cable_paintable"); + put(TileEntityCableGauge.class, "tileentity_cable_gauge"); put(TileEntityPipeBaseNT.class, "tileentity_pipe_base"); put(TileEntityPipePaintable.class, "tileentity_pipe_paintable"); put(TileEntityPipeGauge.class, "tileentity_pipe_gauge"); diff --git a/src/main/java/com/hbm/util/EntityDamageUtil.java b/src/main/java/com/hbm/util/EntityDamageUtil.java index e1c299c7c..c86fb2ee9 100644 --- a/src/main/java/com/hbm/util/EntityDamageUtil.java +++ b/src/main/java/com/hbm/util/EntityDamageUtil.java @@ -67,7 +67,11 @@ public class EntityDamageUtil { if(!victim.attackEntityFrom(src, damage)) { if(victim instanceof EntityLivingBase) { - damage += ((EntityLivingBase) victim).lastDamage; + EntityLivingBase living = (EntityLivingBase) victim; + + if(living.hurtResistantTime > living.maxHurtResistantTime / 2.0F) { + damage += living.lastDamage; + } } return victim.attackEntityFrom(src, damage); } else { diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 50a1f341b..c06ee2508 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -3244,6 +3244,10 @@ item.titanium_shovel.name=Titanschaufel item.titanium_sword.name=Titanschwert item.toothpicks.name=Zahnstocher item.train.cargo_tram.name=Elektrischer Flachwagen +item.trenchmaster_boots.name=Stiefel des Trenchmasters +item.trenchmaster_helmet.name=Helm des Trenchmasters +item.trenchmaster_legs.name=Hose des Trenchmasters +item.trenchmaster_plate.name=Brustpanzer des Trenchmasters item.trinitite.name=Trinitit item.tritium_deuterium_cake.name=Tritium-Deuterium-Kuchen item.tsar_core.name=Fusionskern @@ -4334,6 +4338,8 @@ tile.reactor_inserter.name=Reaktor-Brennstoffeinlass tile.red_barrel.name=Explosives Fass tile.red_cable.name=Rotes Kupferkabel tile.red_cable_classic.name=Rotes Kupferkabel (Klassisch) +tile.red_cable_gauge.name=Strommessgerät +tile.red_cable_gauge.desc=Kabel welches anzeight, wie viel Strom$sich pro Tick im Netzwerk bewegt.$Geteilte Netzwerke die über Energiespeicherblöcke$verbunden sind, werden als ein einzelnes gezählt. tile.red_cable_paintable.name=Geschirmtes rotes Kupferkabel (Färbbar) tile.red_connector.name=Stromverbindungsstück tile.red_pylon.name=Strommasten diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index d9255f011..17a91ee2f 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -4161,6 +4161,10 @@ item.titanium_shovel.name=Titanium Shovel item.titanium_sword.name=Titanium Sword item.toothpicks.name=Toothpicks item.train.cargo_tram.name=Electric Flat Bed Tram +item.trenchmaster_boots.name=Trenchmaster's Boots +item.trenchmaster_helmet.name=Trenchmaster's Helmet +item.trenchmaster_legs.name=Trenchmaster's Leggings +item.trenchmaster_plate.name=Trenchmaster's Chestplate item.trinitite.name=Trinitite item.tritium_deuterium_cake.name=Tritium-Deuterium-Cake item.tritium_deuterium_cake.desc=Not actual cake, but great$universal fusion fuel! @@ -5311,6 +5315,8 @@ tile.reactor_inserter.name=Reactor Fuel Inserter tile.red_barrel.name=Explosive Barrel tile.red_cable.name=Red Copper Cable tile.red_cable_classic.name=Red Copper Cable (Classic) +tile.red_cable_gauge.name=Power Gauge +tile.red_cable_gauge.desc=Cable that displays how much power$moves within the network per tick.$Split networks connected by energy$stroage blocks are considered as one shared network. tile.red_cable_paintable.name=Paintable Red Copper Cable tile.red_connector.name=Electricity Connector tile.red_pylon.name=Electricity Pole diff --git a/src/main/resources/assets/hbm/textures/blocks/cable_gauge.png b/src/main/resources/assets/hbm/textures/blocks/cable_gauge.png new file mode 100644 index 0000000000000000000000000000000000000000..206104da9d0df1170deb56da8bb2f22ba4f84a5f GIT binary patch literal 305 zcmV-10nYx3P)f=Kg-S(cHe8PNRy$MH^4 zRU}#u14JBYx&Zo{H(%KrJg2IPw_>fWyX*Uk@9*>g0wGkS*7=DO00000NkvXXu0mjf DL+61X literal 0 HcmV?d00001 From 8ce3e9837b3c42bab4a51ce7417d9d1dab64aab6 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 17 Sep 2023 20:11:53 +0200 Subject: [PATCH 311/432] "today i will get shit done" and other jokes you can tell yourself --- src/main/java/com/hbm/blocks/ModBlocks.java | 8 + .../hbm/blocks/machine/BlockHadronCoil.java | 3 +- .../hbm/blocks/machine/BlockMassStorage.java | 5 +- .../hbm/blocks/machine/HeaterElectric.java | 3 +- .../com/hbm/blocks/machine/HeaterHeatex.java | 3 +- .../hbm/blocks/machine/HeaterOilburner.java | 3 +- .../hbm/blocks/machine/MachineHeatBoiler.java | 6 +- .../machine/MachineHeatBoilerIndustrial.java | 6 +- .../hbm/blocks/machine/MachineHephaestus.java | 2 +- .../com/hbm/blocks/machine/MachinePump.java | 11 +- .../blocks/machine/MachineSteamEngine.java | 5 +- .../hbm/blocks/machine/MachineTeleporter.java | 3 +- .../com/hbm/blocks/network/DroneCrate.java | 41 + .../com/hbm/blocks/network/DroneWaypoint.java | 141 ++ .../hbm/blocks/network/FluidDuctGauge.java | 5 +- .../com/hbm/commands/CommandSatellites.java | 3 +- .../java/com/hbm/config/CommonConfig.java | 6 +- .../java/com/hbm/config/StructureConfig.java | 4 +- .../java/com/hbm/entity/EntityMappings.java | 1 + .../hbm/entity/item/EntityDeliveryDrone.java | 138 ++ .../hbm/handler/nei/HadronRecipeHandler.java | 3 +- .../com/hbm/interfaces/ICustomWarhead.java | 3 +- .../hbm/inventory/fluid/trait/FT_Toxin.java | 3 +- .../inventory/gui/GUICombustionEngine.java | 4 +- .../com/hbm/inventory/gui/GUICrucible.java | 5 +- .../com/hbm/inventory/gui/GUIFirebox.java | 3 +- .../hbm/inventory/gui/GUIFurnaceCombo.java | 6 +- .../hbm/inventory/gui/GUIFurnaceSteel.java | 6 +- .../java/com/hbm/inventory/gui/GUIHadron.java | 2 +- .../hbm/inventory/gui/GUIMachineCoker.java | 6 +- .../com/hbm/inventory/gui/GUIMassStorage.java | 4 +- .../com/hbm/inventory/gui/GUIOilburner.java | 6 +- .../java/com/hbm/inventory/gui/GUIPWR.java | 8 +- .../java/com/hbm/inventory/gui/GUIWatz.java | 6 +- src/main/java/com/hbm/items/ModItems.java | 3 + .../com/hbm/items/machine/ItemRBMKRod.java | 5 +- .../com/hbm/items/machine/ItemRTGPellet.java | 9 +- .../com/hbm/items/tool/ItemBlowtorch.java | 3 +- .../com/hbm/items/tool/ItemDroneLinker.java | 101 + .../com/hbm/items/tool/ItemMirrorTool.java | 2 +- src/main/java/com/hbm/main/ClientProxy.java | 1 + .../java/com/hbm/main/CraftingManager.java | 7 +- .../java/com/hbm/main/ResourceManager.java | 6 + src/main/java/com/hbm/main/ServerProxy.java | 15 +- .../hbm/render/item/RenderDeliveryDrone.java | 32 + .../com/hbm/tileentity/IRadioisotopeFuel.java | 7 +- .../java/com/hbm/tileentity/TileMappings.java | 2 + .../tileentity/network/IDroneLinkable.java | 9 + .../network/TileEntityDroneWaypoint.java | 90 + src/main/java/com/hbm/util/TimeAnalyzer.java | 5 +- .../java/com/hbm/util/function/Function.java | 16 +- .../assets/hbm/models/machines/drone.obj | 1707 +++++++++++++++++ .../textures/blocks/drone_crate_bottom.png | Bin 0 -> 785 bytes .../blocks/drone_crate_bottom.png.mcmeta | 5 + .../hbm/textures/blocks/drone_crate_side.png | Bin 0 -> 803 bytes .../blocks/drone_crate_side.png.mcmeta | 5 + .../hbm/textures/blocks/drone_crate_top.png | Bin 0 -> 695 bytes .../blocks/drone_crate_top.png.mcmeta | 5 + .../hbm/textures/blocks/drone_waypoint.png | Bin 0 -> 236 bytes .../textures/blocks/drone_waypoint.png.mcmeta | 5 + .../textures/gui/storage/gui_crate_drone.png | Bin 0 -> 2165 bytes .../hbm/textures/items/drone_linker.png | Bin 0 -> 312 bytes .../textures/items/drone_linker.png.mcmeta | 5 + .../hbm/textures/models/machines/drone.png | Bin 0 -> 2662 bytes 64 files changed, 2429 insertions(+), 78 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/network/DroneCrate.java create mode 100644 src/main/java/com/hbm/blocks/network/DroneWaypoint.java create mode 100644 src/main/java/com/hbm/entity/item/EntityDeliveryDrone.java create mode 100644 src/main/java/com/hbm/items/tool/ItemDroneLinker.java create mode 100644 src/main/java/com/hbm/render/item/RenderDeliveryDrone.java create mode 100644 src/main/java/com/hbm/tileentity/network/IDroneLinkable.java create mode 100644 src/main/java/com/hbm/tileentity/network/TileEntityDroneWaypoint.java create mode 100644 src/main/resources/assets/hbm/models/machines/drone.obj create mode 100644 src/main/resources/assets/hbm/textures/blocks/drone_crate_bottom.png create mode 100755 src/main/resources/assets/hbm/textures/blocks/drone_crate_bottom.png.mcmeta create mode 100644 src/main/resources/assets/hbm/textures/blocks/drone_crate_side.png create mode 100755 src/main/resources/assets/hbm/textures/blocks/drone_crate_side.png.mcmeta create mode 100644 src/main/resources/assets/hbm/textures/blocks/drone_crate_top.png create mode 100755 src/main/resources/assets/hbm/textures/blocks/drone_crate_top.png.mcmeta create mode 100644 src/main/resources/assets/hbm/textures/blocks/drone_waypoint.png create mode 100755 src/main/resources/assets/hbm/textures/blocks/drone_waypoint.png.mcmeta create mode 100644 src/main/resources/assets/hbm/textures/gui/storage/gui_crate_drone.png create mode 100644 src/main/resources/assets/hbm/textures/items/drone_linker.png create mode 100755 src/main/resources/assets/hbm/textures/items/drone_linker.png.mcmeta create mode 100644 src/main/resources/assets/hbm/textures/models/machines/drone.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 7f809f174..c348fc5b3 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -819,6 +819,9 @@ public class ModBlocks { public static Block crane_boxer; public static Block crane_unboxer; public static Block crane_splitter; + + public static Block drone_waypoint; + public static Block drone_crate; public static Block fan; @@ -1990,6 +1993,9 @@ public class ModBlocks { fan = new MachineFan().setBlockName("fan").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); piston_inserter = new PistonInserter().setBlockName("piston_inserter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + drone_waypoint = new DroneWaypoint().setBlockName("drone_waypoint").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":drone_waypoint"); + drone_crate = new DroneCrate().setBlockName("drone_crate").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + chain = new BlockChain(Material.iron).setBlockName("dungeon_chain").setHardness(0.25F).setResistance(2.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":chain"); ladder_sturdy = new BlockNTMLadder().setBlockName("ladder_sturdy").setHardness(0.25F).setResistance(2.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":ladder_sturdy"); @@ -3249,6 +3255,8 @@ public class ModBlocks { register(conveyor_chute); register(conveyor_lift); register(crane_splitter); + register(drone_waypoint); + register(drone_crate); register(fan); register(piston_inserter); diff --git a/src/main/java/com/hbm/blocks/machine/BlockHadronCoil.java b/src/main/java/com/hbm/blocks/machine/BlockHadronCoil.java index ae323e1bf..1cb88488a 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockHadronCoil.java +++ b/src/main/java/com/hbm/blocks/machine/BlockHadronCoil.java @@ -1,6 +1,7 @@ package com.hbm.blocks.machine; import java.util.List; +import java.util.Locale; import com.hbm.blocks.ITooltipProvider; import com.hbm.render.block.ct.CT; @@ -53,6 +54,6 @@ public class BlockHadronCoil extends Block implements IBlockCT, ITooltipProvider @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(I18nUtil.resolveKey("info.coil") + ": " + String.format("%,d", factor)); + list.add(I18nUtil.resolveKey("info.coil") + ": " + String.format(Locale.US, "%,d", factor)); } } diff --git a/src/main/java/com/hbm/blocks/machine/BlockMassStorage.java b/src/main/java/com/hbm/blocks/machine/BlockMassStorage.java index d8e2f6773..03fc8c597 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockMassStorage.java +++ b/src/main/java/com/hbm/blocks/machine/BlockMassStorage.java @@ -2,6 +2,7 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import java.util.Random; import com.hbm.blocks.IBlockMulti; @@ -265,7 +266,7 @@ public class BlockMassStorage extends BlockContainer implements IBlockMulti, ILo if(full) { title = storage.type.getDisplayName(); - text.add(String.format("%,d", storage.getStockpile()) + " / " + String.format("%,d", storage.getCapacity())); + text.add(String.format(Locale.US, "%,d", storage.getStockpile()) + " / " + String.format(Locale.US, "%,d", storage.getCapacity())); double percent = (double) storage.getStockpile() / (double) storage.getCapacity(); int charge = (int) Math.floor(percent * 10_000D); @@ -286,7 +287,7 @@ public class BlockMassStorage extends BlockContainer implements IBlockMulti, ILo if(type != null) { list.add(EnumChatFormatting.GOLD + type.getDisplayName()); - list.add(String.format("%,d", stack.stackTagCompound.getInteger("stack")) + " / " + String.format("%,d", getCapacity(stack.getItemDamage()))); + list.add(String.format(Locale.US, "%,d", stack.stackTagCompound.getInteger("stack")) + " / " + String.format(Locale.US, "%,d", getCapacity(stack.getItemDamage()))); } } diff --git a/src/main/java/com/hbm/blocks/machine/HeaterElectric.java b/src/main/java/com/hbm/blocks/machine/HeaterElectric.java index 7d458daf5..c66fad6b7 100644 --- a/src/main/java/com/hbm/blocks/machine/HeaterElectric.java +++ b/src/main/java/com/hbm/blocks/machine/HeaterElectric.java @@ -2,6 +2,7 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import api.hbm.block.IToolable; import com.hbm.blocks.BlockDummyable; @@ -75,7 +76,7 @@ public class HeaterElectric extends BlockDummyable implements ILookOverlay, IToo TileEntityHeaterElectric heater = (TileEntityHeaterElectric) te; List text = new ArrayList(); - text.add(String.format("%,d", heater.heatEnergy) + " TU"); + text.add(String.format(Locale.US, "%,d", heater.heatEnergy) + " TU"); text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + heater.getConsumption() + " HE/t"); text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + heater.getHeatGen() + " TU/t"); diff --git a/src/main/java/com/hbm/blocks/machine/HeaterHeatex.java b/src/main/java/com/hbm/blocks/machine/HeaterHeatex.java index fa585caeb..ddc4c63dc 100644 --- a/src/main/java/com/hbm/blocks/machine/HeaterHeatex.java +++ b/src/main/java/com/hbm/blocks/machine/HeaterHeatex.java @@ -2,6 +2,7 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; @@ -63,7 +64,7 @@ public class HeaterHeatex extends BlockDummyable implements ILookOverlay, IToolt TileEntityHeaterHeatex heater = (TileEntityHeaterHeatex) te; List text = new ArrayList(); - text.add(String.format("%,d", heater.heatEnergy) + " TU"); + text.add(String.format(Locale.US, "%,d", heater.heatEnergy) + " TU"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/blocks/machine/HeaterOilburner.java b/src/main/java/com/hbm/blocks/machine/HeaterOilburner.java index eb9c13e53..0ddca5005 100644 --- a/src/main/java/com/hbm/blocks/machine/HeaterOilburner.java +++ b/src/main/java/com/hbm/blocks/machine/HeaterOilburner.java @@ -2,6 +2,7 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; @@ -97,7 +98,7 @@ public class HeaterOilburner extends BlockDummyable implements ILookOverlay, ITo FluidType type = heater.tank.getTankType(); if(type.hasTrait(FT_Flammable.class)) { int heat = (int)(type.getTrait(FT_Flammable.class).getHeatEnergy() * heater.setting / 1000); - text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + String.format("%,d", heat) + " TU/t"); + text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + String.format(Locale.US, "%,d", heat) + " TU/t"); } ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); diff --git a/src/main/java/com/hbm/blocks/machine/MachineHeatBoiler.java b/src/main/java/com/hbm/blocks/machine/MachineHeatBoiler.java index a8779573e..522b046a8 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineHeatBoiler.java +++ b/src/main/java/com/hbm/blocks/machine/MachineHeatBoiler.java @@ -175,9 +175,9 @@ public class MachineHeatBoiler extends BlockDummyable implements ILookOverlay, I if(boiler.hasExploded) return; List text = new ArrayList(); - text.add(String.format("%,d", boiler.heat) + "TU"); - text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + I18nUtil.resolveKey(boiler.tanks[0].getTankType().getUnlocalizedName()) + ": " + String.format("%,d", boiler.tanks[0].getFill()) + " / " + String.format("%,d", boiler.tanks[0].getMaxFill()) + "mB"); - text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + I18nUtil.resolveKey(boiler.tanks[1].getTankType().getUnlocalizedName()) + ": " + String.format("%,d", boiler.tanks[1].getFill()) + " / " + String.format("%,d", boiler.tanks[1].getMaxFill()) + "mB"); + text.add(String.format(Locale.US, "%,d", boiler.heat) + "TU"); + text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + I18nUtil.resolveKey(boiler.tanks[0].getTankType().getUnlocalizedName()) + ": " + String.format(Locale.US, "%,d", boiler.tanks[0].getFill()) + " / " + String.format(Locale.US, "%,d", boiler.tanks[0].getMaxFill()) + "mB"); + text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + I18nUtil.resolveKey(boiler.tanks[1].getTankType().getUnlocalizedName()) + ": " + String.format(Locale.US, "%,d", boiler.tanks[1].getFill()) + " / " + String.format(Locale.US, "%,d", boiler.tanks[1].getMaxFill()) + "mB"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/blocks/machine/MachineHeatBoilerIndustrial.java b/src/main/java/com/hbm/blocks/machine/MachineHeatBoilerIndustrial.java index 00b06f50d..7656c5f06 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineHeatBoilerIndustrial.java +++ b/src/main/java/com/hbm/blocks/machine/MachineHeatBoilerIndustrial.java @@ -112,9 +112,9 @@ public class MachineHeatBoilerIndustrial extends BlockDummyable implements ILook TileEntityHeatBoilerIndustrial boiler = (TileEntityHeatBoilerIndustrial) te; List text = new ArrayList(); - text.add(String.format("%,d", boiler.heat) + "TU"); - text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + I18nUtil.resolveKey(boiler.tanks[0].getTankType().getUnlocalizedName()) + ": " + String.format("%,d", boiler.tanks[0].getFill()) + " / " + String.format("%,d", boiler.tanks[0].getMaxFill()) + "mB"); - text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + I18nUtil.resolveKey(boiler.tanks[1].getTankType().getUnlocalizedName()) + ": " + String.format("%,d", boiler.tanks[1].getFill()) + " / " + String.format("%,d", boiler.tanks[1].getMaxFill()) + "mB"); + text.add(String.format(Locale.US, "%,d", boiler.heat) + "TU"); + text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + I18nUtil.resolveKey(boiler.tanks[0].getTankType().getUnlocalizedName()) + ": " + String.format(Locale.US, "%,d", boiler.tanks[0].getFill()) + " / " + String.format(Locale.US, "%,d", boiler.tanks[0].getMaxFill()) + "mB"); + text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + I18nUtil.resolveKey(boiler.tanks[1].getTankType().getUnlocalizedName()) + ": " + String.format(Locale.US, "%,d", boiler.tanks[1].getFill()) + " / " + String.format(Locale.US, "%,d", boiler.tanks[1].getMaxFill()) + "mB"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/blocks/machine/MachineHephaestus.java b/src/main/java/com/hbm/blocks/machine/MachineHephaestus.java index 6f31472b9..0c583b572 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineHephaestus.java +++ b/src/main/java/com/hbm/blocks/machine/MachineHephaestus.java @@ -107,7 +107,7 @@ public class MachineHephaestus extends BlockDummyable implements ILookOverlay { TileEntityMachineHephaestus heatex = (TileEntityMachineHephaestus) te; List text = new ArrayList(); - text.add(String.format("%,d", heatex.bufferedHeat) + " TU"); + text.add(String.format(Locale.US, "%,d", heatex.bufferedHeat) + " TU"); for(int i = 0; i < heatex.getAllTanks().length; i++) { FluidTank tank = heatex.getAllTanks()[i]; diff --git a/src/main/java/com/hbm/blocks/machine/MachinePump.java b/src/main/java/com/hbm/blocks/machine/MachinePump.java index a2cd6ab1c..a31d2fdc3 100644 --- a/src/main/java/com/hbm/blocks/machine/MachinePump.java +++ b/src/main/java/com/hbm/blocks/machine/MachinePump.java @@ -2,6 +2,7 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; @@ -83,15 +84,15 @@ public class MachinePump extends BlockDummyable implements ITooltipProvider, ILo if(te instanceof TileEntityMachinePumpSteam) { TileEntityMachinePumpSteam pump = (TileEntityMachinePumpSteam) te; - text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + I18nUtil.resolveKey(pump.steam.getTankType().getUnlocalizedName()) + ": " + String.format("%,d", pump.steam.getFill()) + " / " + String.format("%,d", pump.steam.getMaxFill()) + "mB"); - text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + I18nUtil.resolveKey(pump.lps.getTankType().getUnlocalizedName()) + ": " + String.format("%,d", pump.lps.getFill()) + " / " + String.format("%,d", pump.lps.getMaxFill()) + "mB"); - text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + I18nUtil.resolveKey(pump.water.getTankType().getUnlocalizedName()) + ": " + String.format("%,d", pump.water.getFill()) + " / " + String.format("%,d", pump.water.getMaxFill()) + "mB"); + text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + I18nUtil.resolveKey(pump.steam.getTankType().getUnlocalizedName()) + ": " + String.format(Locale.US, "%,d", pump.steam.getFill()) + " / " + String.format(Locale.US, "%,d", pump.steam.getMaxFill()) + "mB"); + text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + I18nUtil.resolveKey(pump.lps.getTankType().getUnlocalizedName()) + ": " + String.format(Locale.US, "%,d", pump.lps.getFill()) + " / " + String.format(Locale.US, "%,d", pump.lps.getMaxFill()) + "mB"); + text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + I18nUtil.resolveKey(pump.water.getTankType().getUnlocalizedName()) + ": " + String.format(Locale.US, "%,d", pump.water.getFill()) + " / " + String.format(Locale.US, "%,d", pump.water.getMaxFill()) + "mB"); } if(te instanceof TileEntityMachinePumpElectric) { TileEntityMachinePumpElectric pump = (TileEntityMachinePumpElectric) te; - text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + String.format("%,d", pump.power) + " / " + String.format("%,d", pump.maxPower) + "HE"); - text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + I18nUtil.resolveKey(pump.water.getTankType().getUnlocalizedName()) + ": " + String.format("%,d", pump.water.getFill()) + " / " + String.format("%,d", pump.water.getMaxFill()) + "mB"); + text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + String.format(Locale.US, "%,d", pump.power) + " / " + String.format(Locale.US, "%,d", pump.maxPower) + "HE"); + text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + I18nUtil.resolveKey(pump.water.getTankType().getUnlocalizedName()) + ": " + String.format(Locale.US, "%,d", pump.water.getFill()) + " / " + String.format(Locale.US, "%,d", pump.water.getMaxFill()) + "mB"); } if(pos[1] > 70) { diff --git a/src/main/java/com/hbm/blocks/machine/MachineSteamEngine.java b/src/main/java/com/hbm/blocks/machine/MachineSteamEngine.java index 7277b011d..384f216e8 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineSteamEngine.java +++ b/src/main/java/com/hbm/blocks/machine/MachineSteamEngine.java @@ -2,6 +2,7 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; @@ -72,8 +73,8 @@ public class MachineSteamEngine extends BlockDummyable implements ILookOverlay, TileEntitySteamEngine engine = (TileEntitySteamEngine) te; List text = new ArrayList(); - text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + I18nUtil.resolveKey(engine.tanks[0].getTankType().getUnlocalizedName()) + ": " + String.format("%,d", engine.tanks[0].getFill()) + " / " + String.format("%,d", engine.tanks[0].getMaxFill()) + "mB"); - text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + I18nUtil.resolveKey(engine.tanks[1].getTankType().getUnlocalizedName()) + ": " + String.format("%,d", engine.tanks[1].getFill()) + " / " + String.format("%,d", engine.tanks[1].getMaxFill()) + "mB"); + text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + I18nUtil.resolveKey(engine.tanks[0].getTankType().getUnlocalizedName()) + ": " + String.format(Locale.US, "%,d", engine.tanks[0].getFill()) + " / " + String.format(Locale.US, "%,d", engine.tanks[0].getMaxFill()) + "mB"); + text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + I18nUtil.resolveKey(engine.tanks[1].getTankType().getUnlocalizedName()) + ": " + String.format(Locale.US, "%,d", engine.tanks[1].getFill()) + " / " + String.format(Locale.US, "%,d", engine.tanks[1].getMaxFill()) + "mB"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/blocks/machine/MachineTeleporter.java b/src/main/java/com/hbm/blocks/machine/MachineTeleporter.java index 3b5ccd587..f702e0b4f 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineTeleporter.java +++ b/src/main/java/com/hbm/blocks/machine/MachineTeleporter.java @@ -2,6 +2,7 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import com.hbm.blocks.ILookOverlay; import com.hbm.lib.RefStrings; @@ -61,7 +62,7 @@ public class MachineTeleporter extends BlockContainer implements ILookOverlay { if(tele.targetY == -1) { text.add(EnumChatFormatting.RED + "No destination set!"); } else { - text.add((tele.power >= tele.consumption ? EnumChatFormatting.GREEN : EnumChatFormatting.RED) + String.format("%,d", tele.power) + " / " + String.format("%,d", tele.maxPower)); + text.add((tele.power >= tele.consumption ? EnumChatFormatting.GREEN : EnumChatFormatting.RED) + String.format(Locale.US, "%,d", tele.power) + " / " + String.format(Locale.US, "%,d", tele.maxPower)); text.add("Destination: " + tele.targetX + " / " + tele.targetY + " / " + tele.targetZ + " (D: " + tele.targetDim + ")"); } diff --git a/src/main/java/com/hbm/blocks/network/DroneCrate.java b/src/main/java/com/hbm/blocks/network/DroneCrate.java new file mode 100644 index 000000000..440e3e5c5 --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/DroneCrate.java @@ -0,0 +1,41 @@ +package com.hbm.blocks.network; + +import com.hbm.lib.RefStrings; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; + +public class DroneCrate extends BlockContainer { + + @SideOnly(Side.CLIENT) private IIcon iconTop; + @SideOnly(Side.CLIENT) private IIcon iconBottom; + + public DroneCrate() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return null; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister reg) { + this.blockIcon = reg.registerIcon(RefStrings.MODID + ":drone_crate_side"); + this.iconTop = reg.registerIcon(RefStrings.MODID + ":drone_crate_top"); + this.iconBottom = reg.registerIcon(RefStrings.MODID + ":drone_crate_bottom"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + return side == 1 ? this.iconTop : (side == 0 ? this.iconBottom : this.blockIcon); + } +} diff --git a/src/main/java/com/hbm/blocks/network/DroneWaypoint.java b/src/main/java/com/hbm/blocks/network/DroneWaypoint.java new file mode 100644 index 000000000..28e9e338b --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/DroneWaypoint.java @@ -0,0 +1,141 @@ +package com.hbm.blocks.network; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.blocks.ILookOverlay; +import com.hbm.blocks.ITooltipProvider; +import com.hbm.items.ModItems; +import com.hbm.tileentity.network.TileEntityDroneWaypoint; +import com.hbm.util.I18nUtil; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; +import net.minecraftforge.common.util.ForgeDirection; + +public class DroneWaypoint extends BlockContainer implements ILookOverlay, ITooltipProvider { + + public DroneWaypoint() { + super(Material.circuits); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityDroneWaypoint(); + } + + @Override + public int getRenderType() { + return RadioTorchBase.renderID; + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + + @Override + @SideOnly(Side.CLIENT) + public boolean shouldSideBeRendered(IBlockAccess world, int x, int y, int z, int side) { + return true; + } + + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + return null; + } + + @Override + public MovingObjectPosition collisionRayTrace(World world, int x, int y, int z, Vec3 vec0, Vec3 vec1) { + + int meta = world.getBlockMetadata(x, y, z) & 7; + ForgeDirection dir = ForgeDirection.getOrientation(meta); + + this.setBlockBounds( + dir.offsetX == 1 ? 0F : 0.375F, + dir.offsetY == 1 ? 0F : 0.375F, + dir.offsetZ == 1 ? 0F : 0.375F, + dir.offsetX == -1 ? 1F : 0.625F, + dir.offsetY == -1 ? 1F : 0.625F, + dir.offsetZ == -1 ? 1F : 0.625F + ); + + return super.collisionRayTrace(world, x, y, z, vec0, vec1); + } + + @Override + public int onBlockPlaced(World world, int x, int y, int z, int side, float fX, float fY, float fZ, int meta) { + return side; + } + + @Override + public void onNeighborBlockChange(World world, int x, int y, int z, Block block) { + + int meta = world.getBlockMetadata(x, y, z); + ForgeDirection dir = ForgeDirection.getOrientation(meta); + Block b = world.getBlock(x - dir.offsetX, y - dir.offsetY, z - dir.offsetZ); + + if(!b.isSideSolid(world, x - dir.offsetX, y - dir.offsetY, z - dir.offsetZ, dir) && (!b.renderAsNormalBlock() || b.isAir(world, x, y, z))) { + this.dropBlockAsItem(world, x, y, z, meta, 0); + world.setBlockToAir(x, y, z); + } + } + + @Override + public boolean canPlaceBlockOnSide(World world, int x, int y, int z, int side) { + if(!super.canPlaceBlockOnSide(world, x, y, z, side)) return false; + + ForgeDirection dir = ForgeDirection.getOrientation(side); + Block b = world.getBlock(x - dir.offsetX, y - dir.offsetY, z - dir.offsetZ); + + return b.isSideSolid(world, x - dir.offsetX, y - dir.offsetY, z - dir.offsetZ, dir) || (b.renderAsNormalBlock() && !b.isAir(world, x, y, z)); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + + if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.drone_linker) return false; + + if(world.isRemote) return true; + + TileEntityDroneWaypoint tile = (TileEntityDroneWaypoint) world.getTileEntity(x, y, z); + tile.addHeight(player.isSneaking() ? - 1 : 1); + return true; + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + addStandardInfo(stack, player, list, ext); + } + + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + TileEntityDroneWaypoint tile = (TileEntityDroneWaypoint) world.getTileEntity(x, y, z); + List text = new ArrayList(); + + text.add("Waypoint distance: " + tile.height); + + if(tile.nextY != -1) { + text.add("Next waypoint: " + tile.nextX + " / " + tile.nextY + " / " + tile.nextZ); + } + + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } +} diff --git a/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java b/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java index 948befc56..155c42512 100644 --- a/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java +++ b/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java @@ -3,6 +3,7 @@ package com.hbm.blocks.network; import java.math.BigInteger; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import com.hbm.blocks.IBlockMultiPass; import com.hbm.blocks.ILookOverlay; @@ -96,8 +97,8 @@ public class FluidDuctGauge extends FluidDuctBase implements IBlockMultiPass, IL List text = new ArrayList(); text.add("&[" + duct.getType().getColor() + "&]" +I18nUtil.resolveKey(duct.getType().getUnlocalizedName())); - text.add(String.format("%,d", duct.deltaTick) + " mB/t"); - text.add(String.format("%,d", duct.deltaLastSecond) + " mB/s"); + text.add(String.format(Locale.US, "%,d", duct.deltaTick) + " mB/t"); + text.add(String.format(Locale.US, "%,d", duct.deltaLastSecond) + " mB/s"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/commands/CommandSatellites.java b/src/main/java/com/hbm/commands/CommandSatellites.java index 82f474b70..6f1a803cd 100644 --- a/src/main/java/com/hbm/commands/CommandSatellites.java +++ b/src/main/java/com/hbm/commands/CommandSatellites.java @@ -13,6 +13,7 @@ import net.minecraft.util.EnumChatFormatting; import java.util.Collections; import java.util.List; +import java.util.Locale; import java.util.stream.Collectors; public class CommandSatellites extends CommandBase { @@ -23,7 +24,7 @@ public class CommandSatellites extends CommandBase { @Override public String getCommandUsage(ICommandSender iCommandSender) { - return String.format( + return String.format(Locale.US, "%s/%s orbit %s- Launch the held satellite\n" + "%s/%s descend %s- Deletes satellite by frequency.", EnumChatFormatting.GREEN, getCommandName(), EnumChatFormatting.LIGHT_PURPLE, diff --git a/src/main/java/com/hbm/config/CommonConfig.java b/src/main/java/com/hbm/config/CommonConfig.java index e1d6ed63c..7e121b26e 100644 --- a/src/main/java/com/hbm/config/CommonConfig.java +++ b/src/main/java/com/hbm/config/CommonConfig.java @@ -1,5 +1,7 @@ package com.hbm.config; +import java.util.Locale; + import com.hbm.main.MainRegistry; import net.minecraftforge.common.config.Configuration; @@ -31,7 +33,7 @@ public class CommonConfig { if(value < 0) { MainRegistry.logger.error("Fatal error config: Randomizer value has been below zero, despite bound having to be positive integer!"); - MainRegistry.logger.error(String.format("Errored value will default back to %d, PLEASE REVIEW CONFIGURATION DESCRIPTION BEFORE MEDDLING WITH VALUES!", def)); + MainRegistry.logger.error(String.format(Locale.US, "Errored value will default back to %d, PLEASE REVIEW CONFIGURATION DESCRIPTION BEFORE MEDDLING WITH VALUES!", def)); return def; } @@ -42,7 +44,7 @@ public class CommonConfig { if(value <= 0) { MainRegistry.logger.error("Fatal error config: Randomizer value has been set to zero, despite bound having to be positive integer!"); - MainRegistry.logger.error(String.format("Errored value will default back to %d, PLEASE REVIEW CONFIGURATION DESCRIPTION BEFORE MEDDLING WITH VALUES!", def)); + MainRegistry.logger.error(String.format(Locale.US, "Errored value will default back to %d, PLEASE REVIEW CONFIGURATION DESCRIPTION BEFORE MEDDLING WITH VALUES!", def)); return def; } diff --git a/src/main/java/com/hbm/config/StructureConfig.java b/src/main/java/com/hbm/config/StructureConfig.java index 2f22d7281..9d6ad3cc0 100644 --- a/src/main/java/com/hbm/config/StructureConfig.java +++ b/src/main/java/com/hbm/config/StructureConfig.java @@ -1,5 +1,7 @@ package com.hbm.config; +import java.util.Locale; + import com.hbm.main.MainRegistry; import net.minecraftforge.common.config.Configuration; @@ -28,7 +30,7 @@ public class StructureConfig { if(structureMinChunks > structureMaxChunks) { MainRegistry.logger.error("Fatal error config: Minimum value has been set higher than the maximum value!"); - MainRegistry.logger.error(String.format("Errored values will default back to %1$d and %2$d respectively, PLEASE REVIEW CONFIGURATION DESCRIPTION BEFORE MEDDLING WITH VALUES!", 8, 24)); + MainRegistry.logger.error(String.format(Locale.US, "Errored values will default back to %1$d and %2$d respectively, PLEASE REVIEW CONFIGURATION DESCRIPTION BEFORE MEDDLING WITH VALUES!", 8, 24)); structureMinChunks = 8; structureMaxChunks = 24; } diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index c9eb1c210..e10fb1097 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -174,6 +174,7 @@ public class EntityMappings { addEntity(EntitySoyuzCapsule.class, "entity_soyuz_capsule", 1000); addEntity(EntityMovingItem.class, "entity_c_item", 1000); addEntity(EntityMovingPackage.class, "entity_c_package", 1000); + addEntity(EntityDeliveryDrone.class, "entity_delivery_drone", 250, false); addEntity(EntityCloudTom.class, "entity_moonstone_blast", 1000); addEntity(EntityBeamVortex.class, "entity_vortex_beam", 1000); addEntity(EntityFireworks.class, "entity_firework_ball", 1000); diff --git a/src/main/java/com/hbm/entity/item/EntityDeliveryDrone.java b/src/main/java/com/hbm/entity/item/EntityDeliveryDrone.java new file mode 100644 index 000000000..f8b50012d --- /dev/null +++ b/src/main/java/com/hbm/entity/item/EntityDeliveryDrone.java @@ -0,0 +1,138 @@ +package com.hbm.entity.item; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public class EntityDeliveryDrone extends Entity { + + protected int turnProgress; + protected double syncPosX; + protected double syncPosY; + protected double syncPosZ; + @SideOnly(Side.CLIENT) protected double velocityX; + @SideOnly(Side.CLIENT) protected double velocityY; + @SideOnly(Side.CLIENT) protected double velocityZ; + + public double targetX = -1; + public double targetY = -1; + public double targetZ = -1; + + public EntityDeliveryDrone(World world) { + super(world); + this.setSize(1.5F, 2.0F); + } + + public void setTarget(double x, double y, double z) { + this.targetX = x; + this.targetY = y; + this.targetZ = z; + } + + @Override + public boolean canBeCollidedWith() { + return true; + } + + @Override + public boolean canAttackWithItem() { + return true; + } + + @Override + public boolean hitByEntity(Entity attacker) { + + if(attacker instanceof EntityPlayer) { + this.setDead(); + } + + return false; + } + + @Override + protected boolean canTriggerWalking() { + return true; + } + + @Override + protected void entityInit() { + this.dataWatcher.addObject(10, new Integer(0)); + } + + @Override + public void onUpdate() { + + if(worldObj.isRemote) { + if(this.turnProgress > 0) { + double interpX = this.posX + (this.syncPosX - this.posX) / (double) this.turnProgress; + double interpY = this.posY + (this.syncPosY - this.posY) / (double) this.turnProgress; + double interpZ = this.posZ + (this.syncPosZ - this.posZ) / (double) this.turnProgress; + --this.turnProgress; + this.setPosition(interpX, interpY, interpZ); + } else { + this.setPosition(this.posX, this.posY, this.posZ); + } + + worldObj.spawnParticle("smoke", posX + 1.125, posY + 0.75, posZ, 0, -0.2, 0); + worldObj.spawnParticle("smoke", posX - 1.125, posY + 0.75, posZ, 0, -0.2, 0); + worldObj.spawnParticle("smoke", posX, posY + 0.75, posZ + 1.125, 0, -0.2, 0); + worldObj.spawnParticle("smoke", posX, posY + 0.75, posZ - 1.125, 0, -0.2, 0); + } else { + + this.motionX = 0; + this.motionY = 0; + this.motionZ = 0; + + if(this.targetY != -1) { + + Vec3 dist = Vec3.createVectorHelper(targetX - posX, targetY - posY, targetZ - posZ); + double speed = getSpeed(); + + if(dist.lengthVector() >= speed) { + dist = dist.normalize(); + this.motionX = dist.xCoord * speed; + this.motionY = dist.yCoord * speed; + this.motionZ = dist.zCoord * speed; + } + } + + this.moveEntity(motionX, motionY, motionZ); + } + } + + public double getSpeed() { + return 0.125D; + } + + @Override + protected void readEntityFromNBT(NBTTagCompound p_70037_1_) { + + } + + @Override + protected void writeEntityToNBT(NBTTagCompound p_70014_1_) { + + } + + @SideOnly(Side.CLIENT) + public void setVelocity(double motionX, double motionY, double motionZ) { + this.velocityX = this.motionX = motionX; + this.velocityY = this.motionY = motionY; + this.velocityZ = this.motionZ = motionZ; + } + + @SideOnly(Side.CLIENT) + public void setPositionAndRotation2(double x, double y, double z, float yaw, float pitch, int theNumberThree) { + this.syncPosX = x; + this.syncPosY = y; + this.syncPosZ = z; + this.turnProgress = theNumberThree; + this.motionX = this.velocityX; + this.motionY = this.velocityY; + this.motionZ = this.velocityZ; + } +} diff --git a/src/main/java/com/hbm/handler/nei/HadronRecipeHandler.java b/src/main/java/com/hbm/handler/nei/HadronRecipeHandler.java index 21ba387e3..cbd520858 100644 --- a/src/main/java/com/hbm/handler/nei/HadronRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/HadronRecipeHandler.java @@ -6,6 +6,7 @@ import java.awt.Rectangle; import java.util.Arrays; import java.util.LinkedList; import java.util.List; +import java.util.Locale; import com.hbm.inventory.gui.GUIHadron; import com.hbm.inventory.recipes.HadronRecipes; @@ -141,7 +142,7 @@ public class HadronRecipeHandler extends TemplateRecipeHandler { FontRenderer fontRenderer = Minecraft.getMinecraft().fontRenderer; - String mom = String.format("%,d", rec.momentum); + String mom = String.format(Locale.US, "%,d", rec.momentum); fontRenderer.drawString(mom, -fontRenderer.getStringWidth(mom) / 2 + 30, 42, 0x404040); } diff --git a/src/main/java/com/hbm/interfaces/ICustomWarhead.java b/src/main/java/com/hbm/interfaces/ICustomWarhead.java index 9c9301bc2..656425cd1 100644 --- a/src/main/java/com/hbm/interfaces/ICustomWarhead.java +++ b/src/main/java/com/hbm/interfaces/ICustomWarhead.java @@ -3,6 +3,7 @@ package com.hbm.interfaces; import java.text.DecimalFormat; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import org.apache.logging.log4j.Level; @@ -198,7 +199,7 @@ public interface ICustomWarhead { for (Enum f : combinedFuels) if (data.getFloat(f.toString()) > 0) - tooltip.add(String.format("%s: %skg (%s)", I18nUtil.resolveKey("warheadFuel.".concat(f.toString())), df.format(data.getFloat(f.toString())), BobMathUtil.toPercentage(data.getFloat(f.toString()), data.getFloat(NBT_MASS)))); + tooltip.add(String.format(Locale.US, "%s: %skg (%s)", I18nUtil.resolveKey("warheadFuel.".concat(f.toString())), df.format(data.getFloat(f.toString())), BobMathUtil.toPercentage(data.getFloat(f.toString()), data.getFloat(NBT_MASS)))); } public default void addTooltip(ItemStack stack, List tooltip) diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Toxin.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Toxin.java index 354da3175..fe814219e 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Toxin.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Toxin.java @@ -3,6 +3,7 @@ package com.hbm.inventory.fluid.trait; import java.io.IOException; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import com.google.gson.JsonArray; import com.google.gson.JsonObject; @@ -100,7 +101,7 @@ public class FT_Toxin extends FluidTrait { @Override public void addInfo(List info) { - info.add(EnumChatFormatting.YELLOW + "- " + I18nUtil.resolveKey(clazz.lang) + (fullBody ? EnumChatFormatting.RED + " (requires hazmat suit)" : "") + ": " + EnumChatFormatting.YELLOW + String.format("%,.1f", amount * 20 / delay) + " DPS"); + info.add(EnumChatFormatting.YELLOW + "- " + I18nUtil.resolveKey(clazz.lang) + (fullBody ? EnumChatFormatting.RED + " (requires hazmat suit)" : "") + ": " + EnumChatFormatting.YELLOW + String.format(Locale.US, "%,.1f", amount * 20 / delay) + " DPS"); } } diff --git a/src/main/java/com/hbm/inventory/gui/GUICombustionEngine.java b/src/main/java/com/hbm/inventory/gui/GUICombustionEngine.java index fe85c7fe6..dc8f89785 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICombustionEngine.java +++ b/src/main/java/com/hbm/inventory/gui/GUICombustionEngine.java @@ -1,5 +1,7 @@ package com.hbm.inventory.gui; +import java.util.Locale; + import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerCombustionEngine; @@ -59,7 +61,7 @@ public class GUICombustionEngine extends GuiInfoContainer { power = setting * 0.2 * trait.getCombustionEnergy() / 1_000D * piston.eff[trait.getGrade().ordinal()]; } String c = EnumChatFormatting.YELLOW + ""; - drawCustomInfoStat(x, y, guiLeft + 79, guiTop + 50, 35, 14, x, y, c + String.format("%,d", (int)(power)) + " HE/t", c + String.format("%,d", (int)(power * 20)) + " HE/s"); + drawCustomInfoStat(x, y, guiLeft + 79, guiTop + 50, 35, 14, x, y, c + String.format(Locale.US, "%,d", (int)(power)) + " HE/t", c + String.format(Locale.US, "%,d", (int)(power * 20)) + " HE/s"); } drawCustomInfoStat(x, y, guiLeft + 79, guiTop + 13, 35, 15, x, y, "Ignition"); diff --git a/src/main/java/com/hbm/inventory/gui/GUICrucible.java b/src/main/java/com/hbm/inventory/gui/GUICrucible.java index f235275b5..a41ef4288 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICrucible.java +++ b/src/main/java/com/hbm/inventory/gui/GUICrucible.java @@ -3,6 +3,7 @@ package com.hbm.inventory.gui; import java.awt.Color; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import org.lwjgl.input.Keyboard; import org.lwjgl.opengl.GL11; @@ -42,8 +43,8 @@ public class GUICrucible extends GuiInfoContainer { drawStackInfo(crucible.wasteStack, x, y, 16, 17); drawStackInfo(crucible.recipeStack, x, y, 61, 17); - this.drawCustomInfoStat(x, y, guiLeft + 125, guiTop + 81, 34, 7, x, y, new String[] { String.format("%,d", crucible.progress) + " / " + String.format("%,d", crucible.processTime) + "TU" }); - this.drawCustomInfoStat(x, y, guiLeft + 125, guiTop + 90, 34, 7, x, y, new String[] { String.format("%,d", crucible.heat) + " / " + String.format("%,d", crucible.maxHeat) + "TU" }); + this.drawCustomInfoStat(x, y, guiLeft + 125, guiTop + 81, 34, 7, x, y, new String[] { String.format(Locale.US, "%,d", crucible.progress) + " / " + String.format(Locale.US, "%,d", crucible.processTime) + "TU" }); + this.drawCustomInfoStat(x, y, guiLeft + 125, guiTop + 90, 34, 7, x, y, new String[] { String.format(Locale.US, "%,d", crucible.heat) + " / " + String.format(Locale.US, "%,d", crucible.maxHeat) + "TU" }); } @Override diff --git a/src/main/java/com/hbm/inventory/gui/GUIFirebox.java b/src/main/java/com/hbm/inventory/gui/GUIFirebox.java index 6091d74d2..35fe1207e 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIFirebox.java +++ b/src/main/java/com/hbm/inventory/gui/GUIFirebox.java @@ -1,6 +1,7 @@ package com.hbm.inventory.gui; import java.util.List; +import java.util.Locale; import org.lwjgl.opengl.GL11; @@ -48,7 +49,7 @@ public class GUIFirebox extends GuiInfoContainer { } } - this.drawCustomInfoStat(x, y, guiLeft + 80, guiTop + 27, 71, 7, x, y, new String[] { String.format("%,d", firebox.heatEnergy) + " / " + String.format("%,d", firebox.getMaxHeat()) + "TU" }); + this.drawCustomInfoStat(x, y, guiLeft + 80, guiTop + 27, 71, 7, x, y, new String[] { String.format(Locale.US, "%,d", firebox.heatEnergy) + " / " + String.format(Locale.US, "%,d", firebox.getMaxHeat()) + "TU" }); this.drawCustomInfoStat(x, y, guiLeft + 80, guiTop + 36, 71, 7, x, y, new String[] { firebox.burnHeat + "TU/t", (firebox.burnTime / 20) + "s" }); } diff --git a/src/main/java/com/hbm/inventory/gui/GUIFurnaceCombo.java b/src/main/java/com/hbm/inventory/gui/GUIFurnaceCombo.java index 118c83f60..6fa6362ea 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIFurnaceCombo.java +++ b/src/main/java/com/hbm/inventory/gui/GUIFurnaceCombo.java @@ -1,5 +1,7 @@ package com.hbm.inventory.gui; +import java.util.Locale; + import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerFurnaceCombo; @@ -30,8 +32,8 @@ public class GUIFurnaceCombo extends GuiInfoContainer { furnace.tank.renderTankInfo(this, x, y, guiLeft + 118, guiTop + 18, 16, 52); - this.drawCustomInfoStat(x, y, guiLeft + 44, guiTop + 36, 39, 7, x, y, new String[] { String.format("%,d", furnace.progress) + " / " + String.format("%,d", furnace.processTime) + "TU" }); - this.drawCustomInfoStat(x, y, guiLeft + 44, guiTop + 45, 39, 7, x, y, new String[] { String.format("%,d", furnace.heat) + " / " + String.format("%,d", furnace.maxHeat) + "TU" }); + this.drawCustomInfoStat(x, y, guiLeft + 44, guiTop + 36, 39, 7, x, y, new String[] { String.format(Locale.US, "%,d", furnace.progress) + " / " + String.format(Locale.US, "%,d", furnace.processTime) + "TU" }); + this.drawCustomInfoStat(x, y, guiLeft + 44, guiTop + 45, 39, 7, x, y, new String[] { String.format(Locale.US, "%,d", furnace.heat) + " / " + String.format(Locale.US, "%,d", furnace.maxHeat) + "TU" }); } @Override diff --git a/src/main/java/com/hbm/inventory/gui/GUIFurnaceSteel.java b/src/main/java/com/hbm/inventory/gui/GUIFurnaceSteel.java index a7dcb6eb8..dfdddf87e 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIFurnaceSteel.java +++ b/src/main/java/com/hbm/inventory/gui/GUIFurnaceSteel.java @@ -1,5 +1,7 @@ package com.hbm.inventory.gui; +import java.util.Locale; + import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerFurnaceSteel; @@ -29,11 +31,11 @@ public class GUIFurnaceSteel extends GuiInfoContainer { super.drawScreen(x, y, interp); for(int i = 0; i < 3; i++) { - this.drawCustomInfoStat(x, y, guiLeft + 53, guiTop + 17 + 18 * i, 70, 7, x, y, new String[] { String.format("%,d", furnace.progress[i]) + " / " + String.format("%,d", furnace.processTime) + "TU" }); + this.drawCustomInfoStat(x, y, guiLeft + 53, guiTop + 17 + 18 * i, 70, 7, x, y, new String[] { String.format(Locale.US, "%,d", furnace.progress[i]) + " / " + String.format(Locale.US, "%,d", furnace.processTime) + "TU" }); this.drawCustomInfoStat(x, y, guiLeft + 53, guiTop + 26 + 18 * i, 70, 7, x, y, new String[] { "Bonus: " + furnace.bonus[i] + "%" }); } - this.drawCustomInfoStat(x, y, guiLeft + 151, guiTop + 18, 9, 50, x, y, new String[] { String.format("%,d", furnace.heat) + " / " + String.format("%,d", furnace.maxHeat) + "TU" }); + this.drawCustomInfoStat(x, y, guiLeft + 151, guiTop + 18, 9, 50, x, y, new String[] { String.format(Locale.US, "%,d", furnace.heat) + " / " + String.format(Locale.US, "%,d", furnace.maxHeat) + "TU" }); } @Override diff --git a/src/main/java/com/hbm/inventory/gui/GUIHadron.java b/src/main/java/com/hbm/inventory/gui/GUIHadron.java index f932ba665..959d93d7c 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIHadron.java +++ b/src/main/java/com/hbm/inventory/gui/GUIHadron.java @@ -54,7 +54,7 @@ public class GUIHadron extends GuiInfoContainer { stats.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("hadron.stats")); stats.add((hadron.stat_success ? EnumChatFormatting.GREEN : EnumChatFormatting.RED) + I18n.format("hadron." + this.hadron.stat_state.name().toLowerCase(Locale.US))); if(this.hadron.state.showCoord) stats.add(EnumChatFormatting.RED + I18nUtil.resolveKey("hadron.stats_coord", hadron.stat_x, hadron.stat_y, hadron.stat_z)); - stats.add(EnumChatFormatting.GRAY + I18nUtil.resolveKey("hadron.stats_momentum", String.format("%,d", hadron.stat_charge))); + stats.add(EnumChatFormatting.GRAY + I18nUtil.resolveKey("hadron.stats_momentum", String.format(Locale.US, "%,d", hadron.stat_charge))); this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 41, guiTop + 92, 25, 11, mouseX, mouseY, stats.toArray(new String[0])); this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 4, guiTop + 36, 16, 16, guiLeft + 4, guiTop + 36 + 16, new String[] {"Initial particle momentum: 750"}); diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineCoker.java b/src/main/java/com/hbm/inventory/gui/GUIMachineCoker.java index b9b2d5d1f..e21a06d8b 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineCoker.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineCoker.java @@ -1,5 +1,7 @@ package com.hbm.inventory.gui; +import java.util.Locale; + import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerMachineCoker; @@ -31,8 +33,8 @@ public class GUIMachineCoker extends GuiInfoContainer { refinery.tanks[0].renderTankInfo(this, x, y, guiLeft + 35, guiTop + 18, 16, 52); refinery.tanks[1].renderTankInfo(this, x, y, guiLeft + 125, guiTop + 18, 16, 52); - this.drawCustomInfoStat(x, y, guiLeft + 60, guiTop + 45, 54, 7, x, y, new String[] { String.format("%,d", refinery.progress) + " / " + String.format("%,d", refinery.processTime) + "TU" }); - this.drawCustomInfoStat(x, y, guiLeft + 60, guiTop + 54, 54, 7, x, y, new String[] { String.format("%,d", refinery.heat) + " / " + String.format("%,d", refinery.maxHeat) + "TU" }); + this.drawCustomInfoStat(x, y, guiLeft + 60, guiTop + 45, 54, 7, x, y, new String[] { String.format(Locale.US, "%,d", refinery.progress) + " / " + String.format(Locale.US, "%,d", refinery.processTime) + "TU" }); + this.drawCustomInfoStat(x, y, guiLeft + 60, guiTop + 54, 54, 7, x, y, new String[] { String.format(Locale.US, "%,d", refinery.heat) + " / " + String.format(Locale.US, "%,d", refinery.maxHeat) + "TU" }); } @Override diff --git a/src/main/java/com/hbm/inventory/gui/GUIMassStorage.java b/src/main/java/com/hbm/inventory/gui/GUIMassStorage.java index 8ada24c3c..dfa413f97 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMassStorage.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMassStorage.java @@ -1,5 +1,7 @@ package com.hbm.inventory.gui; +import java.util.Locale; + import org.lwjgl.input.Keyboard; import org.lwjgl.opengl.GL11; @@ -35,7 +37,7 @@ public class GUIMassStorage extends GuiInfoContainer { String percent = (((int) (storage.getStockpile() * 1000D / (double) storage.getCapacity())) / 10D) + "%"; this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 96, guiTop + 16, 18, 90, mouseX, mouseY, new String[] - { String.format("%,d", storage.getStockpile()) + " / " + String.format("%,d", storage.getCapacity()), percent }); + { String.format(Locale.US, "%,d", storage.getStockpile()) + " / " + String.format(Locale.US, "%,d", storage.getCapacity()), percent }); this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 62, guiTop + 72, 14, 14, mouseX, mouseY, new String[] { "Click: Provide one", "Shift-click: Provide stack" }); this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 80, guiTop + 72, 14, 14, mouseX, mouseY, new String[] { "Toggle output" }); diff --git a/src/main/java/com/hbm/inventory/gui/GUIOilburner.java b/src/main/java/com/hbm/inventory/gui/GUIOilburner.java index 35112f2b6..8d040b03f 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIOilburner.java +++ b/src/main/java/com/hbm/inventory/gui/GUIOilburner.java @@ -1,5 +1,7 @@ package com.hbm.inventory.gui; +import java.util.Locale; + import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerOilburner; @@ -33,10 +35,10 @@ public class GUIOilburner extends GuiInfoContainer { public void drawScreen(int x, int y, float interp) { super.drawScreen(x, y, interp); - this.drawCustomInfoStat(x, y, guiLeft + 116, guiTop + 17, 16, 52, x, y, new String[] { String.format("%,d", Math.min(diFurnace.heatEnergy, diFurnace.maxHeatEnergy)) + " / " + String.format("%,d", diFurnace.maxHeatEnergy) + " TU" }); + this.drawCustomInfoStat(x, y, guiLeft + 116, guiTop + 17, 16, 52, x, y, new String[] { String.format(Locale.US, "%,d", Math.min(diFurnace.heatEnergy, diFurnace.maxHeatEnergy)) + " / " + String.format(Locale.US, "%,d", diFurnace.maxHeatEnergy) + " TU" }); if(diFurnace.tank.getTankType().hasTrait(FT_Flammable.class)) { - this.drawCustomInfoStat(x, y, guiLeft + 79, guiTop + 34, 18, 18, x, y, new String[] { diFurnace.setting + " mB/t", String.format("%,d", (int)(diFurnace.tank.getTankType().getTrait(FT_Flammable.class).getHeatEnergy() / 1000) * diFurnace.setting) + " TU/t" }); + this.drawCustomInfoStat(x, y, guiLeft + 79, guiTop + 34, 18, 18, x, y, new String[] { diFurnace.setting + " mB/t", String.format(Locale.US, "%,d", (int)(diFurnace.tank.getTankType().getTrait(FT_Flammable.class).getHeatEnergy() / 1000) * diFurnace.setting) + " TU/t" }); } diFurnace.tank.renderTankInfo(this, x, y, guiLeft + 44, guiTop + 17, 16, 52); diff --git a/src/main/java/com/hbm/inventory/gui/GUIPWR.java b/src/main/java/com/hbm/inventory/gui/GUIPWR.java index d8549a9e4..338f4be99 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIPWR.java +++ b/src/main/java/com/hbm/inventory/gui/GUIPWR.java @@ -1,5 +1,7 @@ package com.hbm.inventory.gui; +import java.util.Locale; + import org.apache.commons.lang3.math.NumberUtils; import org.lwjgl.input.Keyboard; import org.lwjgl.opengl.GL11; @@ -59,8 +61,8 @@ public class GUIPWR extends GuiInfoContainer { public void drawScreen(int x, int y, float interp) { super.drawScreen(x, y, interp); - this.drawCustomInfoStat(x, y, guiLeft + 115, guiTop + 31, 18, 18, x, y, new String[] { "Core: " + String.format("%,d", controller.coreHeat) + " / " + String.format("%,d", controller.coreHeatCapacity) + " TU" }); - this.drawCustomInfoStat(x, y, guiLeft + 151, guiTop + 31, 18, 18, x, y, new String[] { "Hull: " + String.format("%,d", controller.hullHeat) + " / " + String.format("%,d", controller.hullHeatCapacity) + " TU" }); + this.drawCustomInfoStat(x, y, guiLeft + 115, guiTop + 31, 18, 18, x, y, new String[] { "Core: " + String.format(Locale.US, "%,d", controller.coreHeat) + " / " + String.format(Locale.US, "%,d", controller.coreHeatCapacity) + " TU" }); + this.drawCustomInfoStat(x, y, guiLeft + 151, guiTop + 31, 18, 18, x, y, new String[] { "Hull: " + String.format(Locale.US, "%,d", controller.hullHeat) + " / " + String.format(Locale.US, "%,d", controller.hullHeatCapacity) + " TU" }); this.drawCustomInfoStat(x, y, guiLeft + 52, guiTop + 31, 36, 18, x, y, new String[] { ((int) (controller.progress * 100 / controller.processTime)) + "%" }); this.drawCustomInfoStat(x, y, guiLeft + 52, guiTop + 53, 54, 4, x, y, "Control rod level: " + (100 - controller.rodLevel) + "%"); @@ -96,7 +98,7 @@ public class GUIPWR extends GuiInfoContainer { this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); double scale = 1.25; - String flux = String.format("%,.1f", controller.flux); + String flux = String.format(Locale.US, "%,.1f", controller.flux); GL11.glScaled(1 / scale, 1 / scale, 1); this.fontRendererObj.drawString(flux, (int) (165 * scale - this.fontRendererObj.getStringWidth(flux)), (int)(64 * scale), 0x00ff00); GL11.glScaled(scale, scale, 1); diff --git a/src/main/java/com/hbm/inventory/gui/GUIWatz.java b/src/main/java/com/hbm/inventory/gui/GUIWatz.java index 5153b1032..c22046d29 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIWatz.java +++ b/src/main/java/com/hbm/inventory/gui/GUIWatz.java @@ -1,5 +1,7 @@ package com.hbm.inventory.gui; +import java.util.Locale; + import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerWatz; @@ -35,7 +37,7 @@ public class GUIWatz extends GuiInfoContainer { public void drawScreen(int x, int y, float interp) { super.drawScreen(x, y, interp); - this.drawCustomInfoStat(x, y, guiLeft + 13, guiTop + 100, 18, 18, x, y, new String[] { String.format("%,d", watz.heat) + " TU" }); + this.drawCustomInfoStat(x, y, guiLeft + 13, guiTop + 100, 18, 18, x, y, new String[] { String.format(Locale.US, "%,d", watz.heat) + " TU" }); this.drawCustomInfoStat(x, y, guiLeft + 143, guiTop + 71, 16, 16, x, y, new String[] { watz.isLocked ? "Unlock pellet IO configuration" : "Lock pellet IO configuration" }); watz.tanks[0].renderTankInfo(this, x, y, guiLeft + 142, guiTop + 23, 6, 45); @@ -48,7 +50,7 @@ public class GUIWatz extends GuiInfoContainer { this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 93, 4210752); double scale = 1.25; - String flux = String.format("%,.1f", watz.fluxDisplay); + String flux = String.format(Locale.US, "%,.1f", watz.fluxDisplay); GL11.glScaled(1 / scale, 1 / scale, 1); this.fontRendererObj.drawString(flux, (int) (161 * scale - this.fontRendererObj.getStringWidth(flux)), (int)(107 * scale), 0x00ff00); GL11.glScaled(scale, scale, 1); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 576140252..bd693d645 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1254,6 +1254,7 @@ public class ModItems { public static Item power_net_tool; public static Item analysis_tool; public static Item coupling_tool; + public static Item drone_linker; public static Item template_folder; public static Item journal_pip; @@ -4581,6 +4582,7 @@ public class ModItems { power_net_tool = new ItemPowerNetTool().setUnlocalizedName("power_net_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":power_net_tool"); analysis_tool = new ItemAnalysisTool().setUnlocalizedName("analysis_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":analysis_tool"); coupling_tool = new ItemCouplingTool().setUnlocalizedName("coupling_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":coupling_tool"); + drone_linker = new ItemDroneLinker().setUnlocalizedName("drone_linker").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":drone_linker"); key = new ItemKey().setUnlocalizedName("key").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":key"); key_red = new ItemCustomLore().setUnlocalizedName("key_red").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":key_red"); @@ -6747,6 +6749,7 @@ public class ModItems { GameRegistry.registerItem(survey_scanner, survey_scanner.getUnlocalizedName()); GameRegistry.registerItem(mirror_tool, mirror_tool.getUnlocalizedName()); GameRegistry.registerItem(rbmk_tool, rbmk_tool.getUnlocalizedName()); + GameRegistry.registerItem(drone_linker, drone_linker.getUnlocalizedName()); GameRegistry.registerItem(coltan_tool, coltan_tool.getUnlocalizedName()); GameRegistry.registerItem(power_net_tool, power_net_tool.getUnlocalizedName()); GameRegistry.registerItem(analysis_tool, analysis_tool.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/machine/ItemRBMKRod.java b/src/main/java/com/hbm/items/machine/ItemRBMKRod.java index 68158958f..960a84874 100644 --- a/src/main/java/com/hbm/items/machine/ItemRBMKRod.java +++ b/src/main/java/com/hbm/items/machine/ItemRBMKRod.java @@ -1,6 +1,7 @@ package com.hbm.items.machine; import java.util.List; +import java.util.Locale; import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; @@ -295,10 +296,10 @@ public class ItemRBMKRod extends Item { String reactivity = EnumChatFormatting.YELLOW + "" + ((int)(this.reactivity * enrichment * 1000D) / 1000D) + EnumChatFormatting.WHITE; String enrichmentPer = EnumChatFormatting.GOLD + " (" + ((int)(enrichment * 1000D) / 10D) + "%)"; - return String.format(function, selfRate > 0 ? "(x" + EnumChatFormatting.RED + " + " + selfRate + "" + EnumChatFormatting.WHITE + ")" : "x", reactivity).concat(enrichmentPer); + return String.format(Locale.US, function, selfRate > 0 ? "(x" + EnumChatFormatting.RED + " + " + selfRate + "" + EnumChatFormatting.WHITE + ")" : "x", reactivity).concat(enrichmentPer); } - return String.format(function, selfRate > 0 ? "(x" + EnumChatFormatting.RED + " + " + selfRate + "" + EnumChatFormatting.WHITE + ")" : "x", reactivity); + return String.format(Locale.US, function, selfRate > 0 ? "(x" + EnumChatFormatting.RED + " + " + selfRate + "" + EnumChatFormatting.WHITE + ")" : "x", reactivity); } public static enum EnumDepleteFunc { diff --git a/src/main/java/com/hbm/items/machine/ItemRTGPellet.java b/src/main/java/com/hbm/items/machine/ItemRTGPellet.java index 1cbdb729e..151a27f34 100644 --- a/src/main/java/com/hbm/items/machine/ItemRTGPellet.java +++ b/src/main/java/com/hbm/items/machine/ItemRTGPellet.java @@ -3,6 +3,7 @@ package com.hbm.items.machine; import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import java.util.Locale; import javax.annotation.CheckForNull; @@ -156,17 +157,17 @@ public class ItemRTGPellet extends Item { list.add(BobMathUtil.toPercentage(instance.getLifespan(stack), instance.getMaxLifespan())); if (bool) { list.add("EXTENDED INFO:"); - list.add(String.format("%s / %s ticks", instance.getLifespan(stack), instance.getMaxLifespan())); + list.add(String.format(Locale.US, "%s / %s ticks", instance.getLifespan(stack), instance.getMaxLifespan())); final String[] timeLeft = BobMathUtil.ticksToDate(instance.getLifespan(stack)); final String[] maxLife = BobMathUtil.ticksToDate(instance.getMaxLifespan()); - list.add(String.format("Time remaining: %s y, %s d, %s h", (Object[]) timeLeft)); - list.add(String.format("Maximum life: %s y, %s d, %s h", (Object[]) maxLife)); + list.add(String.format(Locale.US, "Time remaining: %s y, %s d, %s h", (Object[]) timeLeft)); + list.add(String.format(Locale.US, "Maximum life: %s y, %s d, %s h", (Object[]) maxLife)); } } } public String getData() { - return String.format("%s (%s HE/t) %s", I18nUtil.resolveKey(getUnlocalizedName().concat(".name")), getHeat(), (getDoesDecay() ? " (decays)" : "")); + return String.format(Locale.US, "%s (%s HE/t) %s", I18nUtil.resolveKey(getUnlocalizedName().concat(".name")), getHeat(), (getDoesDecay() ? " (decays)" : "")); } public static HashMap getRecipeMap() { diff --git a/src/main/java/com/hbm/items/tool/ItemBlowtorch.java b/src/main/java/com/hbm/items/tool/ItemBlowtorch.java index 211a203c6..1e10d8f98 100644 --- a/src/main/java/com/hbm/items/tool/ItemBlowtorch.java +++ b/src/main/java/com/hbm/items/tool/ItemBlowtorch.java @@ -1,6 +1,7 @@ package com.hbm.items.tool; import java.util.List; +import java.util.Locale; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; @@ -199,7 +200,7 @@ public class ItemBlowtorch extends Item implements IFillableItem { @SideOnly(Side.CLIENT) private String getFillGauge(ItemStack stack, FluidType type) { - return I18nUtil.resolveKey(type.getUnlocalizedName()) + ": " + String.format("%,d", this.getFill(stack, type)) + " / " + String.format("%,d", this.getMaxFill(type)); + return I18nUtil.resolveKey(type.getUnlocalizedName()) + ": " + String.format(Locale.US, "%,d", this.getFill(stack, type)) + " / " + String.format(Locale.US, "%,d", this.getMaxFill(type)); } @Override public boolean providesFluid(FluidType type, ItemStack stack) { return false; } diff --git a/src/main/java/com/hbm/items/tool/ItemDroneLinker.java b/src/main/java/com/hbm/items/tool/ItemDroneLinker.java new file mode 100644 index 000000000..31489ea8d --- /dev/null +++ b/src/main/java/com/hbm/items/tool/ItemDroneLinker.java @@ -0,0 +1,101 @@ +package com.hbm.items.tool; + +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.network.IDroneLinkable; +import com.hbm.util.ChatBuilder; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; + +public class ItemDroneLinker extends Item { + + @Override + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float fX, float fY, float fZ) { + + TileEntity tile = world.getTileEntity(x, y, z); + + if(tile instanceof IDroneLinkable) { + + if(!world.isRemote) { + if(!stack.hasTagCompound()) { + stack.stackTagCompound = new NBTTagCompound(); + stack.stackTagCompound.setInteger("x", x); + stack.stackTagCompound.setInteger("y", y); + stack.stackTagCompound.setInteger("z", z); + + player.addChatMessage(ChatBuilder.start("[").color(EnumChatFormatting.DARK_AQUA) + .nextTranslation(this.getUnlocalizedName() + ".name").color(EnumChatFormatting.DARK_AQUA) + .next("] ").color(EnumChatFormatting.DARK_AQUA) + .next("Set initial position!").color(EnumChatFormatting.AQUA).flush()); + + } else { + + int tx = stack.stackTagCompound.getInteger("x"); + int ty = stack.stackTagCompound.getInteger("y"); + int tz = stack.stackTagCompound.getInteger("z"); + + TileEntity prev = world.getTileEntity(tx, ty, tz); + + if(prev instanceof IDroneLinkable) { + + BlockPos dest = ((IDroneLinkable) tile).getPoint(); + ((IDroneLinkable) prev).setNextTarget(dest.getX(), dest.getY(), dest.getZ()); + + player.addChatMessage(ChatBuilder.start("[").color(EnumChatFormatting.DARK_AQUA) + .nextTranslation(this.getUnlocalizedName() + ".name").color(EnumChatFormatting.DARK_AQUA) + .next("] ").color(EnumChatFormatting.DARK_AQUA) + .next("Link set!").color(EnumChatFormatting.AQUA).flush()); + } else { + player.addChatMessage(ChatBuilder.start("[").color(EnumChatFormatting.DARK_AQUA) + .nextTranslation(this.getUnlocalizedName() + ".name").color(EnumChatFormatting.DARK_AQUA) + .next("] ").color(EnumChatFormatting.DARK_AQUA) + .next("Previous link lost!").color(EnumChatFormatting.RED).flush()); + } + + stack.stackTagCompound.setInteger("x", x); + stack.stackTagCompound.setInteger("y", y); + stack.stackTagCompound.setInteger("z", z); + } + } + + return true; + } + + return false; + } + + @Override + public void onUpdate(ItemStack stack, World world, Entity entity, int slot, boolean inhand) { + + if(world.isRemote && inhand) { + if(stack.hasTagCompound()) { + int x = stack.stackTagCompound.getInteger("x"); + int y = stack.stackTagCompound.getInteger("y"); + int z = stack.stackTagCompound.getInteger("z"); + MainRegistry.proxy.displayTooltip("Prev pos: " + x + " / " + y + " / " + z, MainRegistry.proxy.ID_DRONE); + } + } + } + + @Override + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { + + if(!world.isRemote && stack.hasTagCompound()) { + stack.stackTagCompound = null; + + player.addChatMessage(ChatBuilder.start("[").color(EnumChatFormatting.DARK_AQUA) + .nextTranslation(this.getUnlocalizedName() + ".name").color(EnumChatFormatting.DARK_AQUA) + .next("] ").color(EnumChatFormatting.DARK_AQUA) + .next("Position cleared!").color(EnumChatFormatting.GREEN).flush()); + } + + return stack; + } +} diff --git a/src/main/java/com/hbm/items/tool/ItemMirrorTool.java b/src/main/java/com/hbm/items/tool/ItemMirrorTool.java index 935a37937..61db24d6e 100644 --- a/src/main/java/com/hbm/items/tool/ItemMirrorTool.java +++ b/src/main/java/com/hbm/items/tool/ItemMirrorTool.java @@ -24,7 +24,7 @@ import net.minecraft.world.World; public class ItemMirrorTool extends Item { @Override - public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float fX, float fY, float fZ) { + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float fX, float fY, float fZ) { Block b = world.getBlock(x, y, z); diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 8272517cf..c451c670f 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -713,6 +713,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityMovingItem.class, new RenderMovingItem()); RenderingRegistry.registerEntityRenderingHandler(EntityMovingPackage.class, new RenderMovingPackage()); RenderingRegistry.registerEntityRenderingHandler(EntityTNTPrimedBase.class, new RenderTNTPrimedBase()); + RenderingRegistry.registerEntityRenderingHandler(EntityDeliveryDrone.class, new RenderDeliveryDrone()); //mobs RenderingRegistry.registerEntityRenderingHandler(EntityCreeperNuclear.class, new RenderCreeperUniversal(RefStrings.MODID + ":" + "textures/entity/creeper.png", RefStrings.MODID + ":" + "textures/entity/creeper_armor.png").setSwellMod(5F)); RenderingRegistry.registerEntityRenderingHandler(EntityCreeperTainted.class, new RenderCreeperUniversal(RefStrings.MODID + ":" + "textures/entity/creeper_tainted.png", RefStrings.MODID + ":" + "textures/entity/creeper_armor_taint.png")); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index fbf14fab9..a45c039a8 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -636,8 +636,11 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.fluid_tank_empty, 8), new Object[] { "121", "1G1", "121", '1', AL.plate(), '2', IRON.plate(), 'G', KEY_ANYPANE }); addRecipeAuto(new ItemStack(ModItems.fluid_tank_lead_empty, 4), new Object[] { "LUL", "LTL", "LUL", 'L', PB.plate(), 'U', U238.billet(), 'T', ModItems.fluid_tank_empty }); addRecipeAuto(new ItemStack(ModItems.fluid_barrel_empty, 2), new Object[] { "121", "1G1", "121", '1', STEEL.plate(), '2', AL.plate(), 'G', KEY_ANYPANE }); - addRecipeAuto(new ItemStack(ModItems.inf_water, 1), new Object[] { "222", "131", "222", '1', Items.water_bucket, '2', AL.plate(), '3', DIAMOND.gem() }); - addRecipeAuto(new ItemStack(ModItems.inf_water_mk2, 1), new Object[] { "BPB", "PTP", "BPB", 'B', ModItems.inf_water, 'P', ModBlocks.fluid_duct_neo, 'T', ModItems.tank_steel }); + + if(!GeneralConfig.enable528) { + addRecipeAuto(new ItemStack(ModItems.inf_water, 1), new Object[] { "222", "131", "222", '1', Items.water_bucket, '2', AL.plate(), '3', DIAMOND.gem() }); + addRecipeAuto(new ItemStack(ModItems.inf_water_mk2, 1), new Object[] { "BPB", "PTP", "BPB", 'B', ModItems.inf_water, 'P', ModBlocks.fluid_duct_neo, 'T', ModItems.tank_steel }); + } //not so Temporary Crappy Recipes addRecipeAuto(new ItemStack(ModItems.piston_selenium, 1), new Object[] { "SSS", "STS", " D ", 'S', STEEL.plate(), 'T', W.ingot(), 'D', ModItems.bolt_dura_steel }); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index c6260e18f..8f229cb16 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -1090,6 +1090,9 @@ public class ResourceManager { public static final IModelCustom train_cargo_tram_trailer = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vehicles/tram_trailer.obj")); public static final IModelCustom tunnel_bore = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/vehicles/tunnel_bore.obj")); + //Drones + public static final IModelCustom delivery_drone = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/drone.obj")); + ////Texture Entities //Blast @@ -1366,6 +1369,9 @@ public class ResourceManager { public static final ResourceLocation train_tram = new ResourceLocation(RefStrings.MODID, "textures/models/trains/tram.png"); public static final ResourceLocation tram_trailer = new ResourceLocation(RefStrings.MODID, "textures/models/trains/tram_trailer.png"); + //Drone + public static final ResourceLocation delivery_drone_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/drone.png"); + //ISBRHs public static final IModelCustom scaffold = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/scaffold.obj")); public static final IModelCustom taperecorder = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/taperecorder.obj")); diff --git a/src/main/java/com/hbm/main/ServerProxy.java b/src/main/java/com/hbm/main/ServerProxy.java index 7695b401f..e30cbe562 100644 --- a/src/main/java/com/hbm/main/ServerProxy.java +++ b/src/main/java/com/hbm/main/ServerProxy.java @@ -20,13 +20,14 @@ public class ServerProxy { public static final int ID_FILTER = 1; public static final int ID_COMPASS = 2; public static final int ID_CABLE = 3; - public static final int ID_JETPACK = 4; - public static final int ID_HUD = 5; - public static final int ID_DETONATOR = 6; - public static final int ID_FLUID_ID = 7; - public static final int ID_TOOLABILITY = 8; - public static final int ID_GUN_MODE = 9; - public static final int ID_GAS_HAZARD = 10; + public static final int ID_DRONE = 4; + public static final int ID_JETPACK = 5; + public static final int ID_HUD = 6; + public static final int ID_DETONATOR = 7; + public static final int ID_FLUID_ID = 8; + public static final int ID_TOOLABILITY = 9; + public static final int ID_GUN_MODE = 10; + public static final int ID_GAS_HAZARD = 11; public void registerRenderInfo() { } public void registerTileEntitySpecialRenderer() { } diff --git a/src/main/java/com/hbm/render/item/RenderDeliveryDrone.java b/src/main/java/com/hbm/render/item/RenderDeliveryDrone.java new file mode 100644 index 000000000..d84b1de01 --- /dev/null +++ b/src/main/java/com/hbm/render/item/RenderDeliveryDrone.java @@ -0,0 +1,32 @@ +package com.hbm.render.item; + +import org.lwjgl.opengl.GL11; + +import com.hbm.main.ResourceManager; + +import net.minecraft.client.renderer.entity.Render; +import net.minecraft.entity.Entity; +import net.minecraft.util.ResourceLocation; + +public class RenderDeliveryDrone extends Render { + + @Override + public void doRender(Entity entity, double x, double y, double z, float f0, float f1) { + + GL11.glPushMatrix(); + GL11.glTranslated(x, y, z); + + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.delivery_drone_tex); + ResourceManager.delivery_drone.renderPart("Drone"); + ResourceManager.delivery_drone.renderPart("Barrel"); + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPopMatrix(); + } + + @Override + protected ResourceLocation getEntityTexture(Entity p_110775_1_) { + return null; + } +} diff --git a/src/main/java/com/hbm/tileentity/IRadioisotopeFuel.java b/src/main/java/com/hbm/tileentity/IRadioisotopeFuel.java index 829bfba2f..5f737b6e8 100644 --- a/src/main/java/com/hbm/tileentity/IRadioisotopeFuel.java +++ b/src/main/java/com/hbm/tileentity/IRadioisotopeFuel.java @@ -1,6 +1,7 @@ package com.hbm.tileentity; import java.util.List; +import java.util.Locale; import javax.annotation.CheckForNull; import javax.annotation.Nonnull; @@ -139,11 +140,11 @@ public interface IRadioisotopeFuel if (showAdv) { tooltip.add("EXTENDED INFO:"); - tooltip.add(String.format("%s / %s ticks", instance.getLifespan(stack), instance.getMaxLifespan())); + tooltip.add(String.format(Locale.US, "%s / %s ticks", instance.getLifespan(stack), instance.getMaxLifespan())); final String[] timeLeft = BobMathUtil.ticksToDate(instance.getLifespan(stack)); final String[] maxLife = BobMathUtil.ticksToDate(instance.getMaxLifespan()); - tooltip.add(String.format("Time remaining: %s y, %s d, %s h", (Object[]) timeLeft)); - tooltip.add(String.format("Maximum life: %s y, %s d, %s h", (Object[]) maxLife)); + tooltip.add(String.format(Locale.US, "Time remaining: %s y, %s d, %s h", (Object[]) timeLeft)); + tooltip.add(String.format(Locale.US, "Maximum life: %s y, %s d, %s h", (Object[]) maxLife)); } } } diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 3ff167e2e..993af256b 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -391,6 +391,8 @@ public class TileMappings { put(TileEntityRadioTorchReceiver.class, "tileentity_rtty_rec"); put(TileEntityRadioTorchCounter.class, "tileentity_rtty_counter"); put(TileEntityRadioTelex.class, "tileentity_rtty_telex"); + + put(TileEntityDroneWaypoint.class, "tileentity_drone_waypoint"); } private static void put(Class clazz, String... names) { diff --git a/src/main/java/com/hbm/tileentity/network/IDroneLinkable.java b/src/main/java/com/hbm/tileentity/network/IDroneLinkable.java new file mode 100644 index 000000000..eae54d23e --- /dev/null +++ b/src/main/java/com/hbm/tileentity/network/IDroneLinkable.java @@ -0,0 +1,9 @@ +package com.hbm.tileentity.network; + +import com.hbm.util.fauxpointtwelve.BlockPos; + +public interface IDroneLinkable { + + public BlockPos getPoint(); + public void setNextTarget(int x, int y, int z); +} diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityDroneWaypoint.java b/src/main/java/com/hbm/tileentity/network/TileEntityDroneWaypoint.java new file mode 100644 index 000000000..073562a08 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/network/TileEntityDroneWaypoint.java @@ -0,0 +1,90 @@ +package com.hbm.tileentity.network; + +import java.util.List; + +import com.hbm.entity.item.EntityDeliveryDrone; +import com.hbm.tileentity.INBTPacketReceiver; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityDroneWaypoint extends TileEntity implements INBTPacketReceiver, IDroneLinkable { + + public int height = 5; + public int nextX = -1; + public int nextY = -1; + public int nextZ = -1; + + public void updateEntity() { + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); + + if(!worldObj.isRemote) { + + if(nextY != -1) { + List drones = worldObj.getEntitiesWithinAABB(EntityDeliveryDrone.class, AxisAlignedBB.getBoundingBox(xCoord, yCoord, zCoord, xCoord + 1, yCoord + 1, zCoord + 1).offset(dir.offsetX * height, dir.offsetY * height, dir.offsetZ * height)); + for(EntityDeliveryDrone drone : drones) { + if(Vec3.createVectorHelper(drone.motionX, drone.motionY, drone.motionZ).lengthVector() < 0.05) { + drone.setTarget(nextX + 0.5, nextY + 0.5, nextZ + 0.5); + } + } + } + + NBTTagCompound data = new NBTTagCompound(); + data.setInteger("height", height); + data.setIntArray("pos", new int[] {nextX, nextY, nextZ}); + INBTPacketReceiver.networkPack(this, data, 15); + } else { + + if(nextY != -1 && worldObj.getTotalWorldTime() % 2 == 0) { + double x = xCoord + height * dir.offsetX + 0.5; + double y = yCoord + height * dir.offsetY + 0.5; + double z = zCoord + height * dir.offsetZ + 0.5; + + worldObj.spawnParticle("reddust", x, y, z, 0, 0, 0); + + /*Vec3 vec = Vec3.createVectorHelper(nextX + 0.5 - x, nextY + 0.5 - y, nextZ + 0.5 - z); + double speed = Math.min(vec.lengthVector(), 0.5); + double mX = vec.xCoord * speed; + double mY = vec.yCoord * speed; + double mZ = vec.zCoord * speed; + vec = vec.normalize(); + + worldObj.spawnParticle("crit", x, y, z, mX, mY, mZ);*/ + } + } + } + + @Override + public BlockPos getPoint() { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); + return new BlockPos(xCoord, yCoord, zCoord).offset(dir, height); + } + + @Override + public void setNextTarget(int x, int y, int z) { + this.nextX = x; + this.nextY = y; + this.nextZ = z; + this.markDirty(); + } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + this.height = nbt.getInteger("height"); + int[] pos = nbt.getIntArray("pos"); + this.nextX = pos[0]; + this.nextY = pos[1]; + this.nextZ = pos[2]; + } + + public void addHeight(int h) { + height += h; + height = MathHelper.clamp_int(height, 1, 15); + } +} diff --git a/src/main/java/com/hbm/util/TimeAnalyzer.java b/src/main/java/com/hbm/util/TimeAnalyzer.java index 6cb4f53ec..ec856e301 100644 --- a/src/main/java/com/hbm/util/TimeAnalyzer.java +++ b/src/main/java/com/hbm/util/TimeAnalyzer.java @@ -3,6 +3,7 @@ package com.hbm.util; import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import java.util.Locale; import java.util.Map.Entry; import com.hbm.util.Tuple.Pair; @@ -44,11 +45,11 @@ public class TimeAnalyzer { for(Entry entry : milliTime.entrySet()) { total += entry.getValue(); - String time = String.format("%,d", entry.getValue()); + String time = String.format(Locale.US, "%,d", entry.getValue()); System.out.println(entry.getKey() + ": " + time + "ns"); } - System.out.println("Total time passed: " + String.format("%,d", total) + "ns (" + (total / 1_000_000_000) + "s)"); + System.out.println("Total time passed: " + String.format(Locale.US, "%,d", total) + "ns (" + (total / 1_000_000_000) + "s)"); currentSection = ""; sectionStartTime = 0; diff --git a/src/main/java/com/hbm/util/function/Function.java b/src/main/java/com/hbm/util/function/Function.java index 4e8cc26b9..9dd32272c 100644 --- a/src/main/java/com/hbm/util/function/Function.java +++ b/src/main/java/com/hbm/util/function/Function.java @@ -1,5 +1,7 @@ package com.hbm.util.function; +import java.util.Locale; + import com.hbm.util.BobMathUtil; import net.minecraft.util.EnumChatFormatting; @@ -28,8 +30,8 @@ public abstract class Function { public String getXName(boolean brackets) { String x = "x"; boolean mod = false; - if(div != 1D) x += " / " + String.format("%,.1f", div); - if(off != 0D) x += " + " + String.format("%,.1f", off); + if(div != 1D) x += " / " + String.format(Locale.US, "%,.1f", div); + if(off != 0D) x += " + " + String.format(Locale.US, "%,.1f", off); if(mod && brackets) x = "(" + x + ")"; return x; } @@ -47,21 +49,21 @@ public abstract class Function { public static class FunctionLogarithmic extends FunctionSingleArg { public FunctionLogarithmic(double level) { super(level); this.withOff(1D); } @Override public double effonix(double x) { return Math.log10(getX(x)) * level; } - @Override public String getLabelForFuel() { return "log10(" + getXName(false) + ") * " + String.format("%,.1f", this.level); } + @Override public String getLabelForFuel() { return "log10(" + getXName(false) + ") * " + String.format(Locale.US, "%,.1f", this.level); } @Override public String getDangerFromFuel() { return EnumChatFormatting.YELLOW + "MEDIUM / LOGARITHMIC"; } } public static class FunctionPassive extends FunctionSingleArg { public FunctionPassive(double level) { super(level); } @Override public double effonix(double x) { return this.level; } - @Override public String getLabelForFuel() { return "" + String.format("%,.1f", this.level); } + @Override public String getLabelForFuel() { return "" + String.format(Locale.US, "%,.1f", this.level); } @Override public String getDangerFromFuel() { return EnumChatFormatting.DARK_GREEN + "SAFE / PASSIVE"; } } public static class FunctionSqrt extends FunctionSingleArg { public FunctionSqrt(double level) { super(level); } @Override public double effonix(double x) { return BobMathUtil.squirt(getX(x)) * this.level; } - @Override public String getLabelForFuel() { return "sqrt(" + getXName(false) + ") * " + String.format("%,.3f", this.level); } //not entirely correct but good enough + @Override public String getLabelForFuel() { return "sqrt(" + getXName(false) + ") * " + String.format(Locale.US, "%,.3f", this.level); } //not entirely correct but good enough @Override public String getDangerFromFuel() { return EnumChatFormatting.YELLOW + "MEDIUM / SQUARE ROOT"; } } @@ -75,7 +77,7 @@ public abstract class Function { public static class FunctionLinear extends FunctionSingleArg { public FunctionLinear(double level) { super(level); } @Override public double effonix(double x) { return getX(x) * this.level; } - @Override public String getLabelForFuel() { return getXName(true) + " * " + String.format("%,.1f", this.level); } + @Override public String getLabelForFuel() { return getXName(true) + " * " + String.format(Locale.US, "%,.1f", this.level); } @Override public String getDangerFromFuel() { return EnumChatFormatting.RED + "DANGEROUS / LINEAR"; } } @@ -83,7 +85,7 @@ public abstract class Function { public FunctionQuadratic(double level) { super(level, 0D); } public FunctionQuadratic(double level, double vOff) { super(level, vOff); } @Override public double effonix(double x) { return getX(x) * getX(x) * this.level + this.vOff; } - @Override public String getLabelForFuel() { return getXName(true) + "² * " + String.format("%,.1f", this.level) + (vOff != 0 ? (" + " + String.format("%,.1f", vOff)) : ""); } + @Override public String getLabelForFuel() { return getXName(true) + "² * " + String.format(Locale.US, "%,.1f", this.level) + (vOff != 0 ? (" + " + String.format(Locale.US, "%,.1f", vOff)) : ""); } @Override public String getDangerFromFuel() { return EnumChatFormatting.RED + "DANGEROUS / QUADRATIC"; } } } diff --git a/src/main/resources/assets/hbm/models/machines/drone.obj b/src/main/resources/assets/hbm/models/machines/drone.obj new file mode 100644 index 000000000..93a950fbf --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/drone.obj @@ -0,0 +1,1707 @@ +# Blender v2.79 (sub 0) OBJ File: 'drone.blend' +# www.blender.org +o Crate +v -0.500000 0.000000 0.500000 +v 0.500000 0.000000 0.500000 +v -0.500000 0.000000 -0.500000 +v 0.500000 0.000000 -0.500000 +v -0.500000 1.000000 0.500000 +v 0.500000 1.000000 0.500000 +v -0.500000 1.000000 -0.500000 +v 0.500000 1.000000 -0.500000 +vt 0.242424 0.210526 +vt 0.000000 0.421053 +vt 0.000000 0.210526 +vt -0.000000 0.210526 +vt 0.242424 0.421053 +vt -0.000000 0.421053 +vt 0.242424 0.000000 +vt -0.000000 0.000000 +vt 0.242424 0.000000 +vt 0.000000 0.210526 +vt 0.000000 0.000000 +vt 0.242424 0.000000 +vt -0.000000 0.210526 +vt -0.000000 0.000000 +vt 0.242424 0.000000 +vt 0.000000 0.210526 +vt 0.000000 0.000000 +vt 0.242424 0.421053 +vt 0.242424 0.210526 +vt 0.242424 0.210526 +vt 0.242424 0.210526 +vt 0.242424 0.210526 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +s off +f 3/1/1 2/2/1 1/3/1 +f 6/4/2 7/5/2 5/6/2 +f 4/7/3 6/4/3 2/8/3 +f 1/9/4 7/10/4 3/11/4 +f 3/12/5 8/13/5 4/14/5 +f 2/15/6 5/16/6 1/17/6 +f 3/1/1 4/18/1 2/2/1 +f 6/4/2 8/19/2 7/5/2 +f 4/7/3 8/19/3 6/4/3 +f 1/9/4 5/20/4 7/10/4 +f 3/12/5 7/21/5 8/13/5 +f 2/15/6 6/22/6 5/16/6 +o Barrel +v -0.500000 0.000000 0.500000 +v 0.500000 0.000000 0.500000 +v -0.500000 0.000000 -0.500000 +v 0.500000 0.000000 -0.500000 +v -0.500000 1.000000 0.500000 +v 0.500000 1.000000 0.500000 +v -0.500000 1.000000 -0.500000 +v 0.500000 1.000000 -0.500000 +vt 0.484848 0.210526 +vt 0.242424 0.421053 +vt 0.242424 0.210526 +vt 0.242424 0.210526 +vt 0.484848 0.421053 +vt 0.242424 0.421053 +vt 0.484848 -0.000000 +vt 0.242424 -0.000000 +vt 0.484848 -0.000000 +vt 0.242424 0.210526 +vt 0.242424 -0.000000 +vt 0.484848 -0.000000 +vt 0.242424 0.210526 +vt 0.242424 -0.000000 +vt 0.484848 -0.000000 +vt 0.242424 0.210526 +vt 0.242424 -0.000000 +vt 0.484848 0.421053 +vt 0.484848 0.210526 +vt 0.484848 0.210526 +vt 0.484848 0.210526 +vt 0.484848 0.210526 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +s off +f 11/23/7 10/24/7 9/25/7 +f 14/26/8 15/27/8 13/28/8 +f 12/29/9 14/26/9 10/30/9 +f 9/31/10 15/32/10 11/33/10 +f 11/34/11 16/35/11 12/36/11 +f 10/37/12 13/38/12 9/39/12 +f 11/23/7 12/40/7 10/24/7 +f 14/26/8 16/41/8 15/27/8 +f 12/29/9 16/41/9 14/26/9 +f 9/31/10 13/42/10 15/32/10 +f 11/34/11 15/43/11 16/35/11 +f 10/37/12 14/44/12 13/38/12 +o Drone +v -0.088388 0.875000 1.036612 +v 0.000000 0.875000 1.000000 +v 0.088388 0.875000 1.036612 +v 0.125000 0.875000 1.125000 +v 0.088388 0.875000 1.213388 +v 0.000000 0.875000 1.250000 +v -0.125000 0.875000 1.125000 +v -0.088388 0.875000 1.213388 +v -0.031250 2.375000 0.031250 +v 0.031250 2.375000 0.031250 +v -0.031250 2.375000 -0.031250 +v 0.031250 2.375000 -0.031250 +v 0.031250 1.875000 -0.031250 +v -0.031250 1.875000 -0.031250 +v 0.031250 1.875000 0.031250 +v -0.031250 1.875000 0.031250 +v 0.375000 1.875000 -0.375000 +v 0.375000 1.875000 0.375000 +v -0.375000 1.875000 0.375000 +v -0.375000 1.875000 -0.375000 +v -0.500000 1.750000 0.500000 +v 0.500000 1.750000 0.500000 +v -0.500000 1.750000 -0.500000 +v 0.500000 1.750000 -0.500000 +v 0.500000 1.625000 -0.500000 +v -0.500000 1.625000 -0.500000 +v 0.500000 1.625000 0.500000 +v -0.500000 1.625000 0.500000 +v -0.500000 0.625000 0.500000 +v -0.500000 0.375000 0.500000 +v -0.250000 0.625000 0.500000 +v -0.250000 0.375000 0.500000 +v -0.500000 0.625000 0.250000 +v -0.500000 0.375000 0.250000 +v -0.250000 0.625000 0.625000 +v -0.250000 0.375000 0.625000 +v -0.625000 0.625000 0.250000 +v -0.625000 0.375000 0.250000 +v -0.625000 0.625000 0.625000 +v -0.625000 0.375000 0.625000 +v -0.625000 0.625000 0.500000 +v -0.625000 0.625000 0.625000 +v -0.500000 0.625000 0.500000 +v -0.500000 0.625000 0.625000 +v -0.625000 1.375000 0.500000 +v -0.625000 1.375000 0.625000 +v -0.500000 1.375000 0.500000 +v -0.500000 1.375000 0.625000 +v -0.625000 1.375000 0.625000 +v 0.625000 1.375000 0.625000 +v -0.625000 1.375000 -0.625000 +v 0.625000 1.375000 -0.625000 +v -0.625000 1.625000 -0.625000 +v -0.625000 1.625000 0.625000 +v 0.625000 1.625000 0.625000 +v 0.625000 1.625000 -0.625000 +v 0.500000 1.125000 -1.125000 +v -0.500000 1.125000 -1.125000 +v -0.500000 1.375000 -1.125000 +v 0.500000 1.375000 -1.125000 +v -0.500000 1.125000 1.125000 +v 0.500000 1.125000 1.125000 +v 0.500000 1.375000 1.125000 +v -0.500000 1.375000 1.125000 +v 1.125000 1.125000 0.500000 +v 1.125000 1.125000 -0.500000 +v 1.125000 1.375000 -0.500000 +v 1.125000 1.375000 0.500000 +v -1.125000 1.125000 -0.500000 +v -1.125000 1.125000 0.500000 +v -1.125000 1.375000 0.500000 +v -1.125000 1.375000 -0.500000 +v -0.088388 0.750000 1.036612 +v -0.125000 0.750000 1.125000 +v -0.250000 1.250000 1.125000 +v -0.250000 1.625000 1.125000 +v -0.176777 1.250000 0.948223 +v -0.176777 1.625000 0.948223 +v 0.000000 1.250000 0.875000 +v 0.000000 1.625000 0.875000 +v 0.176777 1.250000 0.948223 +v 0.176777 1.625000 0.948223 +v 0.250000 1.250000 1.125000 +v 0.250000 1.625000 1.125000 +v 0.176777 1.250000 1.301776 +v 0.176777 1.625000 1.301776 +v 0.000000 1.250000 1.375000 +v 0.000000 1.625000 1.375000 +v -0.176777 1.250000 1.301776 +v -0.176777 1.625000 1.301776 +v 0.000000 0.750000 1.000000 +v 0.088388 0.750000 1.036612 +v 0.125000 0.750000 1.125000 +v 0.088388 0.750000 1.213388 +v 0.000000 0.750000 1.250000 +v -0.088388 0.750000 1.213388 +v -0.132583 1.750000 0.992417 +v -0.187500 1.750000 1.125000 +v 0.000000 1.750000 0.937500 +v 0.132582 1.750000 0.992418 +v 0.187500 1.750000 1.125000 +v 0.132583 1.750000 1.257582 +v 0.000000 1.750000 1.312500 +v -0.132583 1.750000 1.257582 +v -0.132583 1.625000 0.992417 +v -0.187500 1.625000 1.125000 +v 0.000000 1.625000 0.937500 +v 0.132582 1.625000 0.992418 +v 0.187500 1.625000 1.125000 +v 0.132583 1.625000 1.257582 +v 0.000000 1.625000 1.312500 +v -0.132583 1.625000 1.257582 +v -0.250000 1.125000 1.375000 +v 0.250000 1.125000 1.375000 +v 0.250000 1.375000 1.375000 +v -0.250000 1.375000 1.375000 +v -0.500000 1.125000 1.125000 +v 0.500000 1.125000 1.125000 +v 0.500000 1.375000 1.125000 +v -0.500000 1.375000 1.125000 +v 0.088388 0.875000 -1.036612 +v -0.000000 0.875000 -1.000000 +v -0.088388 0.875000 -1.036612 +v -0.125000 0.875000 -1.125000 +v -0.088388 0.875000 -1.213388 +v -0.000000 0.875000 -1.250000 +v 0.125000 0.875000 -1.125000 +v 0.088388 0.875000 -1.213388 +v 0.088388 0.750000 -1.036612 +v 0.125000 0.750000 -1.125000 +v 0.250000 1.250000 -1.125000 +v 0.250000 1.625000 -1.125000 +v 0.176777 1.250000 -0.948223 +v 0.176777 1.625000 -0.948223 +v -0.000000 1.250000 -0.875000 +v -0.000000 1.625000 -0.875000 +v -0.176777 1.250000 -0.948223 +v -0.176777 1.625000 -0.948223 +v -0.250000 1.250000 -1.125000 +v -0.250000 1.625000 -1.125000 +v -0.176777 1.250000 -1.301776 +v -0.176777 1.625000 -1.301776 +v -0.000000 1.250000 -1.375000 +v -0.000000 1.625000 -1.375000 +v 0.176777 1.250000 -1.301776 +v 0.176777 1.625000 -1.301776 +v -0.000000 0.750000 -1.000000 +v -0.088388 0.750000 -1.036612 +v -0.125000 0.750000 -1.125000 +v -0.088388 0.750000 -1.213388 +v -0.000000 0.750000 -1.250000 +v 0.088388 0.750000 -1.213388 +v 0.132583 1.750000 -0.992417 +v 0.187500 1.750000 -1.125000 +v -0.000000 1.750000 -0.937500 +v -0.132583 1.750000 -0.992418 +v -0.187500 1.750000 -1.125000 +v -0.132583 1.750000 -1.257582 +v -0.000000 1.750000 -1.312500 +v 0.132583 1.750000 -1.257582 +v 0.132583 1.625000 -0.992417 +v 0.187500 1.625000 -1.125000 +v -0.000000 1.625000 -0.937500 +v -0.132583 1.625000 -0.992418 +v -0.187500 1.625000 -1.125000 +v -0.132583 1.625000 -1.257582 +v -0.000000 1.625000 -1.312500 +v 0.132583 1.625000 -1.257582 +v 0.250000 1.125000 -1.375000 +v -0.250000 1.125000 -1.375000 +v -0.250000 1.375000 -1.375000 +v 0.250000 1.375000 -1.375000 +v 0.500000 1.125000 -1.125000 +v -0.500000 1.125000 -1.125000 +v -0.500000 1.375000 -1.125000 +v 0.500000 1.375000 -1.125000 +v 1.036612 0.875000 0.088388 +v 1.000000 0.875000 0.000000 +v 1.036612 0.875000 -0.088388 +v 1.125000 0.875000 -0.125000 +v 1.213388 0.875000 -0.088388 +v 1.250000 0.875000 0.000000 +v 1.125000 0.875000 0.125000 +v 1.213388 0.875000 0.088388 +v 1.036612 0.750000 0.088388 +v 1.125000 0.750000 0.125000 +v 1.125000 1.250000 0.250000 +v 1.125000 1.625000 0.250000 +v 0.948223 1.250000 0.176777 +v 0.948223 1.625000 0.176777 +v 0.875000 1.250000 -0.000000 +v 0.875000 1.625000 -0.000000 +v 0.948223 1.250000 -0.176777 +v 0.948223 1.625000 -0.176777 +v 1.125000 1.250000 -0.250000 +v 1.125000 1.625000 -0.250000 +v 1.301776 1.250000 -0.176777 +v 1.301776 1.625000 -0.176777 +v 1.375000 1.250000 -0.000000 +v 1.375000 1.625000 -0.000000 +v 1.301776 1.250000 0.176777 +v 1.301776 1.625000 0.176777 +v 1.000000 0.750000 0.000000 +v 1.036612 0.750000 -0.088388 +v 1.125000 0.750000 -0.125000 +v 1.213388 0.750000 -0.088388 +v 1.250000 0.750000 0.000000 +v 1.213388 0.750000 0.088388 +v 0.992417 1.750000 0.132583 +v 1.125000 1.750000 0.187500 +v 0.937500 1.750000 -0.000000 +v 0.992418 1.750000 -0.132582 +v 1.125000 1.750000 -0.187500 +v 1.257582 1.750000 -0.132583 +v 1.312500 1.750000 0.000000 +v 1.257582 1.750000 0.132583 +v 0.992417 1.625000 0.132583 +v 1.125000 1.625000 0.187500 +v 0.937500 1.625000 -0.000000 +v 0.992418 1.625000 -0.132582 +v 1.125000 1.625000 -0.187500 +v 1.257582 1.625000 -0.132583 +v 1.312500 1.625000 0.000000 +v 1.257582 1.625000 0.132583 +v 1.375000 1.125000 0.250000 +v 1.375000 1.125000 -0.250000 +v 1.375000 1.375000 -0.250000 +v 1.375000 1.375000 0.250000 +v 1.125000 1.125000 0.500000 +v 1.125000 1.125000 -0.500000 +v 1.125000 1.375000 -0.500000 +v 1.125000 1.375000 0.500000 +v -1.036612 0.875000 -0.088388 +v -1.000000 0.875000 0.000000 +v -1.036612 0.875000 0.088388 +v -1.125000 0.875000 0.125000 +v -1.213388 0.875000 0.088388 +v -1.250000 0.875000 0.000000 +v -1.125000 0.875000 -0.125000 +v -1.213388 0.875000 -0.088388 +v -1.036612 0.750000 -0.088388 +v -1.125000 0.750000 -0.125000 +v -1.125000 1.250000 -0.250000 +v -1.125000 1.625000 -0.250000 +v -0.948223 1.250000 -0.176777 +v -0.948223 1.625000 -0.176777 +v -0.875000 1.250000 0.000000 +v -0.875000 1.625000 0.000000 +v -0.948223 1.250000 0.176777 +v -0.948223 1.625000 0.176777 +v -1.125000 1.250000 0.250000 +v -1.125000 1.625000 0.250000 +v -1.301776 1.250000 0.176777 +v -1.301776 1.625000 0.176777 +v -1.375000 1.250000 0.000000 +v -1.375000 1.625000 0.000000 +v -1.301776 1.250000 -0.176776 +v -1.301776 1.625000 -0.176776 +v -1.000000 0.750000 0.000000 +v -1.036612 0.750000 0.088388 +v -1.125000 0.750000 0.125000 +v -1.213388 0.750000 0.088388 +v -1.250000 0.750000 0.000000 +v -1.213388 0.750000 -0.088388 +v -0.992417 1.750000 -0.132583 +v -1.125000 1.750000 -0.187500 +v -0.937500 1.750000 0.000000 +v -0.992418 1.750000 0.132583 +v -1.125000 1.750000 0.187500 +v -1.257582 1.750000 0.132583 +v -1.312500 1.750000 0.000000 +v -1.257582 1.750000 -0.132582 +v -0.992417 1.625000 -0.132583 +v -1.125000 1.625000 -0.187500 +v -0.937500 1.625000 0.000000 +v -0.992418 1.625000 0.132583 +v -1.125000 1.625000 0.187500 +v -1.257582 1.625000 0.132583 +v -1.312500 1.625000 0.000000 +v -1.257582 1.625000 -0.132582 +v -1.375000 1.125000 -0.250000 +v -1.375000 1.125000 0.250000 +v -1.375000 1.375000 0.250000 +v -1.375000 1.375000 -0.250000 +v -1.125000 1.125000 -0.500000 +v -1.125000 1.125000 0.500000 +v -1.125000 1.375000 0.500000 +v -1.125000 1.375000 -0.500000 +v 0.500000 0.625000 -0.500000 +v 0.500000 0.375000 -0.500000 +v 0.250000 0.625000 -0.500000 +v 0.250000 0.375000 -0.500000 +v 0.500000 0.625000 -0.250000 +v 0.500000 0.375000 -0.250000 +v 0.250000 0.625000 -0.625000 +v 0.250000 0.375000 -0.625000 +v 0.625000 0.625000 -0.250000 +v 0.625000 0.375000 -0.250000 +v 0.625000 0.625000 -0.625000 +v 0.625000 0.375000 -0.625000 +v 0.625000 0.625000 -0.500000 +v 0.625000 0.625000 -0.625000 +v 0.500000 0.625000 -0.500000 +v 0.500000 0.625000 -0.625000 +v 0.625000 1.375000 -0.500000 +v 0.625000 1.375000 -0.625000 +v 0.500000 1.375000 -0.500000 +v 0.500000 1.375000 -0.625000 +v 0.500000 0.625000 0.500000 +v 0.500000 0.375000 0.500000 +v 0.500000 0.625000 0.250000 +v 0.500000 0.375000 0.250000 +v 0.250000 0.625000 0.500000 +v 0.250000 0.375000 0.500000 +v 0.625000 0.625000 0.250000 +v 0.625000 0.375000 0.250000 +v 0.250000 0.625000 0.625000 +v 0.250000 0.375000 0.625000 +v 0.625000 0.625000 0.625000 +v 0.625000 0.375000 0.625000 +v 0.500000 0.625000 0.625000 +v 0.625000 0.625000 0.625000 +v 0.500000 0.625000 0.500000 +v 0.625000 0.625000 0.500000 +v 0.500000 1.375000 0.625000 +v 0.625000 1.375000 0.625000 +v 0.500000 1.375000 0.500000 +v 0.625000 1.375000 0.500000 +v -0.500000 0.625000 -0.500000 +v -0.500000 0.375000 -0.500000 +v -0.500000 0.625000 -0.250000 +v -0.500000 0.375000 -0.250000 +v -0.250000 0.625000 -0.500000 +v -0.250000 0.375000 -0.500000 +v -0.625000 0.625000 -0.250000 +v -0.625000 0.375000 -0.250000 +v -0.250000 0.625000 -0.625000 +v -0.250000 0.375000 -0.625000 +v -0.625000 0.625000 -0.625000 +v -0.625000 0.375000 -0.625000 +v -0.500000 0.625000 -0.625000 +v -0.625000 0.625000 -0.625000 +v -0.500000 0.625000 -0.500000 +v -0.625000 0.625000 -0.500000 +v -0.500000 1.375000 -0.625000 +v -0.625000 1.375000 -0.625000 +v -0.500000 1.375000 -0.500000 +v -0.625000 1.375000 -0.500000 +vt 0.787879 0.184205 +vt 0.766456 0.176499 +vt 0.809302 0.139291 +vt 0.727273 0.934211 +vt 0.742424 0.921053 +vt 0.742424 0.934211 +vt 0.757576 0.921053 +vt 0.742424 0.815789 +vt 0.757576 0.815789 +vt 0.727273 0.921053 +vt 0.712121 0.815789 +vt 0.727273 0.815789 +vt 0.772727 0.921053 +vt 0.772727 0.815789 +vt 0.954545 0.552632 +vt 0.742424 0.592105 +vt 0.712121 0.552632 +vt 0.696970 0.565789 +vt 0.742424 0.750000 +vt 0.696970 0.776316 +vt 0.969697 0.776316 +vt 0.924242 0.592105 +vt 0.969697 0.565789 +vt 0.924242 0.750000 +vt 1.000000 0.776316 +vt 1.000000 0.565789 +vt 0.666667 0.565789 +vt 0.666667 0.776316 +vt 0.954545 0.526316 +vt 0.712121 0.526316 +vt 0.712121 0.815789 +vt 0.954545 0.789474 +vt 0.954545 0.815789 +vt 0.712121 0.789474 +vt 0.787879 0.131579 +vt 0.848485 0.078947 +vt 0.848485 0.131579 +vt 0.545455 0.078947 +vt 0.484848 0.131579 +vt 0.484848 0.078947 +vt 0.757576 0.131579 +vt 0.787879 0.078947 +vt 0.575758 0.078947 +vt 0.545455 0.131579 +vt 0.666667 0.078947 +vt 0.575758 0.131579 +vt 0.757576 0.078947 +vt 0.636364 0.157895 +vt 0.666667 0.131579 +vt 0.666667 0.210526 +vt 0.636364 0.210526 +vt 0.636364 0.052632 +vt 0.575758 0.052632 +vt 0.666667 -0.000000 +vt 0.606061 0.315789 +vt 0.575758 0.157895 +vt 0.606061 0.157895 +vt 0.545455 0.315789 +vt 0.515152 0.157895 +vt 0.545455 0.157895 +vt 0.575758 0.315789 +vt 0.515152 0.315789 +vt 0.484848 0.157895 +vt 0.484848 0.578947 +vt 0.181818 0.842105 +vt 0.181818 0.578947 +vt 0.181818 0.578947 +vt 0.484848 0.842105 +vt 0.181818 0.842105 +vt 0.666667 0.815789 +vt 0.606061 0.605263 +vt 0.666667 0.605263 +vt 0.606061 0.815789 +vt 0.484848 0.842105 +vt 0.606061 0.815789 +vt 0.666667 0.921053 +vt 0.606061 0.921053 +vt 0.484848 0.578947 +vt 0.666667 0.500000 +vt 0.606061 0.500000 +vt 0.000000 0.605263 +vt 0.060606 0.815789 +vt 0.000000 0.815789 +vt 0.060606 0.605263 +vt 0.060606 0.605263 +vt 0.000000 0.500000 +vt 0.060606 0.500000 +vt 0.000000 0.921053 +vt 0.060606 0.921053 +vt 0.454545 0.421053 +vt 0.212121 0.473684 +vt 0.212121 0.421053 +vt 0.212121 0.947368 +vt 0.454545 0.473684 +vt 0.575758 0.421053 +vt 0.575758 0.473684 +vt 0.090909 0.421053 +vt 0.090909 0.473684 +vt 0.212121 1.000000 +vt 0.454545 0.947368 +vt 0.454545 1.000000 +vt 0.454545 0.473684 +vt 0.212121 0.947368 +vt 0.090909 1.000000 +vt 0.090909 0.947368 +vt 0.575758 1.000000 +vt 0.575758 0.947368 +vt 0.712121 0.210395 +vt 0.666817 0.171053 +vt 0.712121 0.131710 +vt 0.909091 0.473684 +vt 0.787879 0.526316 +vt 0.787879 0.473684 +vt 0.727273 0.473684 +vt 0.969697 0.526316 +vt 0.909091 0.526316 +vt 0.787879 0.184205 +vt 0.766456 0.176499 +vt 0.809302 0.139291 +vt 0.712121 0.210395 +vt 0.666817 0.171053 +vt 0.712121 0.131710 +vt 0.909091 0.473684 +vt 0.787879 0.526316 +vt 0.787879 0.473684 +vt 0.727273 0.473684 +vt 0.969697 0.526316 +vt 0.909091 0.526316 +vt 0.787879 0.184205 +vt 0.766456 0.176499 +vt 0.809302 0.139291 +vt 0.712121 0.210395 +vt 0.666817 0.171053 +vt 0.712121 0.131710 +vt 0.909091 0.473684 +vt 0.787879 0.526316 +vt 0.787879 0.473684 +vt 0.727273 0.473684 +vt 0.969697 0.526316 +vt 0.909091 0.526316 +vt 0.787879 0.184205 +vt 0.766456 0.176499 +vt 0.809302 0.139291 +vt 0.712121 0.210395 +vt 0.666817 0.171053 +vt 0.712121 0.131710 +vt 0.909091 0.473684 +vt 0.787879 0.526316 +vt 0.787879 0.473684 +vt 0.727273 0.473684 +vt 0.969697 0.526316 +vt 0.909091 0.526316 +vt 0.787879 0.131579 +vt 0.848485 0.078947 +vt 0.848485 0.131579 +vt 0.545455 0.078947 +vt 0.484848 0.131579 +vt 0.484848 0.078947 +vt 0.757576 0.131579 +vt 0.787879 0.078947 +vt 0.575758 0.078947 +vt 0.545455 0.131579 +vt 0.666667 0.078947 +vt 0.575758 0.131579 +vt 0.757576 0.078947 +vt 0.636364 0.157895 +vt 0.666667 0.131579 +vt 0.666667 0.210526 +vt 0.636364 0.210526 +vt 0.636364 0.052632 +vt 0.575758 0.052632 +vt 0.666667 -0.000000 +vt 0.606061 0.315789 +vt 0.575758 0.157895 +vt 0.606061 0.157895 +vt 0.545455 0.315789 +vt 0.515152 0.157895 +vt 0.545455 0.157895 +vt 0.575758 0.315789 +vt 0.515152 0.315789 +vt 0.484848 0.157895 +vt 0.787879 0.131579 +vt 0.848485 0.078947 +vt 0.848485 0.131579 +vt 0.545455 0.078947 +vt 0.484848 0.131579 +vt 0.484848 0.078947 +vt 0.757576 0.131579 +vt 0.787879 0.078947 +vt 0.575758 0.078947 +vt 0.545455 0.131579 +vt 0.666667 0.078947 +vt 0.575758 0.131579 +vt 0.757576 0.078947 +vt 0.636364 0.157895 +vt 0.666667 0.131579 +vt 0.666667 0.210526 +vt 0.636364 0.210526 +vt 0.636364 0.052632 +vt 0.575758 0.052632 +vt 0.666667 -0.000000 +vt 0.606061 0.315789 +vt 0.575758 0.157895 +vt 0.606061 0.157895 +vt 0.545455 0.315789 +vt 0.515152 0.157895 +vt 0.545455 0.157895 +vt 0.575758 0.315789 +vt 0.515152 0.315789 +vt 0.484848 0.157895 +vt 0.787879 0.131579 +vt 0.848485 0.078947 +vt 0.848485 0.131579 +vt 0.545455 0.078947 +vt 0.484848 0.131579 +vt 0.484848 0.078947 +vt 0.757576 0.131579 +vt 0.787879 0.078947 +vt 0.575758 0.078947 +vt 0.545455 0.131579 +vt 0.666667 0.078947 +vt 0.575758 0.131579 +vt 0.757576 0.078947 +vt 0.636364 0.157895 +vt 0.666667 0.131579 +vt 0.666667 0.210526 +vt 0.636364 0.210526 +vt 0.636364 0.052632 +vt 0.575758 0.052632 +vt 0.666667 -0.000000 +vt 0.606061 0.315789 +vt 0.575758 0.157895 +vt 0.606061 0.157895 +vt 0.545455 0.315789 +vt 0.515152 0.157895 +vt 0.545455 0.157895 +vt 0.575758 0.315789 +vt 0.515152 0.315789 +vt 0.484848 0.157895 +vt 0.757582 0.157895 +vt 0.766456 0.139291 +vt 0.787879 0.131585 +vt 0.818175 0.157895 +vt 0.809302 0.176499 +vt 0.712121 0.921053 +vt 0.575758 0.157895 +vt 0.636364 -0.000000 +vt 0.484848 0.315789 +vt 0.606061 0.605263 +vt 0.060606 0.815789 +vt 0.454545 0.947368 +vt 0.212121 0.473684 +vt 0.680087 0.198872 +vt 0.680087 0.143233 +vt 0.744156 0.143233 +vt 0.757425 0.171053 +vt 0.744156 0.198872 +vt 0.727273 0.526316 +vt 0.969697 0.473684 +vt 0.757582 0.157895 +vt 0.766456 0.139291 +vt 0.787879 0.131585 +vt 0.818175 0.157895 +vt 0.809302 0.176499 +vt 0.680087 0.198872 +vt 0.680087 0.143233 +vt 0.744156 0.143233 +vt 0.757425 0.171053 +vt 0.744156 0.198872 +vt 0.727273 0.526316 +vt 0.969697 0.473684 +vt 0.757582 0.157895 +vt 0.766456 0.139291 +vt 0.787879 0.131585 +vt 0.818175 0.157895 +vt 0.809302 0.176499 +vt 0.680087 0.198872 +vt 0.680087 0.143233 +vt 0.744156 0.143233 +vt 0.757425 0.171053 +vt 0.744156 0.198872 +vt 0.727273 0.526316 +vt 0.969697 0.473684 +vt 0.757582 0.157895 +vt 0.766456 0.139291 +vt 0.787879 0.131585 +vt 0.818175 0.157895 +vt 0.809302 0.176499 +vt 0.680087 0.198872 +vt 0.680087 0.143233 +vt 0.744156 0.143233 +vt 0.757425 0.171053 +vt 0.744156 0.198872 +vt 0.727273 0.526316 +vt 0.969697 0.473684 +vt 0.575758 0.157895 +vt 0.636364 -0.000000 +vt 0.484848 0.315789 +vt 0.575758 0.157895 +vt 0.636364 -0.000000 +vt 0.484848 0.315789 +vt 0.575758 0.157895 +vt 0.636364 -0.000000 +vt 0.484848 0.315789 +vt 0.939394 0.236842 +vt 0.969697 0.210526 +vt 0.969697 0.236842 +vt 0.803030 0.236842 +vt 0.833333 0.210526 +vt 0.833333 0.236842 +vt 0.666667 0.236842 +vt 0.696970 0.210526 +vt 0.696970 0.236842 +vt 0.893939 0.236842 +vt 0.924242 0.210526 +vt 0.924242 0.236842 +vt 0.757576 0.236842 +vt 0.787879 0.210526 +vt 0.787879 0.236842 +vt 0.621212 0.236842 +vt 0.651515 0.210526 +vt 0.651515 0.236842 +vt 0.712121 0.236842 +vt 0.742424 0.210526 +vt 0.742424 0.236842 +vt 0.848485 0.236842 +vt 0.878788 0.210526 +vt 0.878788 0.236842 +vt 0.787879 0.421053 +vt 0.833333 0.447368 +vt 0.803030 0.447368 +vt 0.787879 0.342105 +vt 0.833333 0.342105 +vt 0.696970 0.421053 +vt 0.651515 0.342105 +vt 0.696970 0.342105 +vt 0.651515 0.421053 +vt 0.696970 0.447368 +vt 0.666667 0.447368 +vt 0.606061 0.342105 +vt 0.833333 0.421053 +vt 0.878788 0.447368 +vt 0.848485 0.447368 +vt 0.969697 0.421053 +vt 0.924242 0.342105 +vt 0.969697 0.342105 +vt 0.742424 0.421053 +vt 0.712121 0.447368 +vt 0.878788 0.342105 +vt 0.924242 0.421053 +vt 0.893939 0.447368 +vt 0.878788 0.421053 +vt 0.742424 0.447368 +vt 0.712121 0.473684 +vt 0.742424 0.342105 +vt 0.787879 0.447368 +vt 0.757576 0.447368 +vt 0.606061 0.421053 +vt 0.651515 0.447368 +vt 0.621212 0.447368 +vt 0.939394 0.447368 +vt 0.803030 0.473684 +vt 0.924242 0.447368 +vt 0.893939 0.473684 +vt 0.621212 0.473684 +vt 0.757576 0.473684 +vt 0.848485 0.473684 +vt 0.969697 0.447368 +vt 0.939394 0.473684 +vt 0.666667 0.473684 +vt 0.939394 0.236842 +vt 0.969697 0.210526 +vt 0.969697 0.236842 +vt 0.803030 0.236842 +vt 0.833333 0.210526 +vt 0.833333 0.236842 +vt 0.666667 0.236842 +vt 0.696970 0.210526 +vt 0.696970 0.236842 +vt 0.893939 0.236842 +vt 0.924242 0.210526 +vt 0.924242 0.236842 +vt 0.757576 0.236842 +vt 0.787879 0.210526 +vt 0.787879 0.236842 +vt 0.621212 0.236842 +vt 0.651515 0.210526 +vt 0.651515 0.236842 +vt 0.712121 0.236842 +vt 0.742424 0.210526 +vt 0.742424 0.236842 +vt 0.848485 0.236842 +vt 0.878788 0.210526 +vt 0.878788 0.236842 +vt 0.833333 0.421053 +vt 0.803030 0.447368 +vt 0.787879 0.421053 +vt 0.833333 0.342105 +vt 0.696970 0.421053 +vt 0.651515 0.342105 +vt 0.696970 0.342105 +vt 0.651515 0.421053 +vt 0.696970 0.447368 +vt 0.666667 0.447368 +vt 0.606061 0.342105 +vt 0.878788 0.447368 +vt 0.848485 0.447368 +vt 0.969697 0.421053 +vt 0.924242 0.342105 +vt 0.969697 0.342105 +vt 0.742424 0.421053 +vt 0.712121 0.447368 +vt 0.878788 0.342105 +vt 0.924242 0.421053 +vt 0.893939 0.447368 +vt 0.878788 0.421053 +vt 0.742424 0.447368 +vt 0.712121 0.473684 +vt 0.787879 0.342105 +vt 0.787879 0.447368 +vt 0.757576 0.447368 +vt 0.742424 0.342105 +vt 0.606061 0.421053 +vt 0.651515 0.447368 +vt 0.621212 0.447368 +vt 0.969697 0.447368 +vt 0.939394 0.447368 +vt 0.833333 0.447368 +vt 0.803030 0.473684 +vt 0.924242 0.447368 +vt 0.893939 0.473684 +vt 0.621212 0.473684 +vt 0.757576 0.473684 +vt 0.848485 0.473684 +vt 0.939394 0.473684 +vt 0.666667 0.473684 +vt 0.939394 0.236842 +vt 0.969697 0.210526 +vt 0.969697 0.236842 +vt 0.803030 0.236842 +vt 0.833333 0.210526 +vt 0.833333 0.236842 +vt 0.666667 0.236842 +vt 0.696970 0.210526 +vt 0.696970 0.236842 +vt 0.893939 0.236842 +vt 0.924242 0.210526 +vt 0.924242 0.236842 +vt 0.757576 0.236842 +vt 0.787879 0.210526 +vt 0.787879 0.236842 +vt 0.621212 0.236842 +vt 0.651515 0.210526 +vt 0.651515 0.236842 +vt 0.712121 0.236842 +vt 0.742424 0.210526 +vt 0.742424 0.236842 +vt 0.848485 0.236842 +vt 0.878788 0.210526 +vt 0.878788 0.236842 +vt 0.787879 0.421053 +vt 0.833333 0.447368 +vt 0.803030 0.447368 +vt 0.787879 0.342105 +vt 0.833333 0.342105 +vt 0.696970 0.421053 +vt 0.651515 0.342105 +vt 0.696970 0.342105 +vt 0.651515 0.421053 +vt 0.696970 0.447368 +vt 0.666667 0.447368 +vt 0.606061 0.342105 +vt 0.878788 0.421053 +vt 0.848485 0.447368 +vt 0.833333 0.421053 +vt 0.969697 0.421053 +vt 0.924242 0.342105 +vt 0.969697 0.342105 +vt 0.742424 0.421053 +vt 0.712121 0.447368 +vt 0.878788 0.342105 +vt 0.924242 0.421053 +vt 0.893939 0.447368 +vt 0.742424 0.447368 +vt 0.712121 0.473684 +vt 0.787879 0.447368 +vt 0.757576 0.447368 +vt 0.742424 0.342105 +vt 0.606061 0.421053 +vt 0.651515 0.447368 +vt 0.621212 0.447368 +vt 0.969697 0.447368 +vt 0.939394 0.447368 +vt 0.803030 0.473684 +vt 0.924242 0.447368 +vt 0.893939 0.473684 +vt 0.621212 0.473684 +vt 0.757576 0.473684 +vt 0.878788 0.447368 +vt 0.848485 0.473684 +vt 0.939394 0.473684 +vt 0.666667 0.473684 +vt 0.939394 0.236842 +vt 0.969697 0.210526 +vt 0.969697 0.236842 +vt 0.803030 0.236842 +vt 0.833333 0.210526 +vt 0.833333 0.236842 +vt 0.666667 0.236842 +vt 0.696970 0.210526 +vt 0.696970 0.236842 +vt 0.893939 0.236842 +vt 0.924242 0.210526 +vt 0.924242 0.236842 +vt 0.757576 0.236842 +vt 0.787879 0.210526 +vt 0.787879 0.236842 +vt 0.621212 0.236842 +vt 0.651515 0.210526 +vt 0.651515 0.236842 +vt 0.712121 0.236842 +vt 0.742424 0.210526 +vt 0.742424 0.236842 +vt 0.848485 0.236842 +vt 0.878788 0.210526 +vt 0.878788 0.236842 +vt 0.787879 0.421053 +vt 0.833333 0.447368 +vt 0.803030 0.447368 +vt 0.787879 0.342105 +vt 0.833333 0.342105 +vt 0.696970 0.421053 +vt 0.651515 0.342105 +vt 0.696970 0.342105 +vt 0.651515 0.421053 +vt 0.696970 0.447368 +vt 0.666667 0.447368 +vt 0.606061 0.342105 +vt 0.833333 0.421053 +vt 0.878788 0.447368 +vt 0.848485 0.447368 +vt 0.969697 0.421053 +vt 0.924242 0.342105 +vt 0.969697 0.342105 +vt 0.742424 0.421053 +vt 0.712121 0.447368 +vt 0.878788 0.342105 +vt 0.924242 0.421053 +vt 0.893939 0.447368 +vt 0.878788 0.421053 +vt 0.742424 0.447368 +vt 0.712121 0.473684 +vt 0.742424 0.342105 +vt 0.787879 0.447368 +vt 0.757576 0.447368 +vt 0.606061 0.421053 +vt 0.651515 0.447368 +vt 0.621212 0.447368 +vt 0.969697 0.447368 +vt 0.939394 0.447368 +vt 0.803030 0.473684 +vt 0.924242 0.447368 +vt 0.893939 0.473684 +vt 0.621212 0.473684 +vt 0.757576 0.473684 +vt 0.848485 0.473684 +vt 0.939394 0.473684 +vt 0.666667 0.473684 +vt 0.939394 0.210526 +vt 0.803030 0.210526 +vt 0.666667 0.210526 +vt 0.893939 0.210526 +vt 0.757576 0.210526 +vt 0.621212 0.210526 +vt 0.712121 0.210526 +vt 0.848485 0.210526 +vt 0.742424 0.473684 +vt 0.833333 0.473684 +vt 0.924242 0.473684 +vt 0.651515 0.473684 +vt 0.787879 0.473684 +vt 0.878788 0.473684 +vt 0.969697 0.473684 +vt 0.696970 0.473684 +vt 0.939394 0.210526 +vt 0.803030 0.210526 +vt 0.666667 0.210526 +vt 0.893939 0.210526 +vt 0.757576 0.210526 +vt 0.621212 0.210526 +vt 0.712121 0.210526 +vt 0.848485 0.210526 +vt 0.742424 0.473684 +vt 0.833333 0.473684 +vt 0.924242 0.473684 +vt 0.651515 0.473684 +vt 0.787879 0.473684 +vt 0.878788 0.473684 +vt 0.969697 0.473684 +vt 0.696970 0.473684 +vt 0.939394 0.210526 +vt 0.803030 0.210526 +vt 0.666667 0.210526 +vt 0.893939 0.210526 +vt 0.757576 0.210526 +vt 0.621212 0.210526 +vt 0.712121 0.210526 +vt 0.848485 0.210526 +vt 0.742424 0.473684 +vt 0.833333 0.473684 +vt 0.924242 0.473684 +vt 0.651515 0.473684 +vt 0.787879 0.473684 +vt 0.878788 0.473684 +vt 0.969697 0.473684 +vt 0.696970 0.473684 +vt 0.939394 0.210526 +vt 0.803030 0.210526 +vt 0.666667 0.210526 +vt 0.893939 0.210526 +vt 0.757576 0.210526 +vt 0.621212 0.210526 +vt 0.712121 0.210526 +vt 0.848485 0.210526 +vt 0.742424 0.473684 +vt 0.833333 0.473684 +vt 0.924242 0.473684 +vt 0.651515 0.473684 +vt 0.787879 0.473684 +vt 0.878788 0.473684 +vt 0.969697 0.473684 +vt 0.696970 0.473684 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.0000 0.7071 0.7071 +vn 0.0000 0.7071 -0.7071 +vn -0.7071 0.7071 0.0000 +vn 0.0000 -0.8944 0.4472 +vn -0.9701 0.0000 -0.2425 +vn 0.0000 0.8944 -0.4472 +vn 0.9701 0.0000 -0.2425 +vn 0.0000 -0.8944 -0.4472 +vn 0.9701 0.0000 0.2425 +vn 0.0000 0.8944 0.4472 +vn -0.9701 0.0000 0.2425 +vn -0.4472 -0.8944 0.0000 +vn 0.2425 0.0000 -0.9701 +vn 0.4472 0.8944 0.0000 +vn 0.2425 0.0000 0.9701 +vn 0.4472 -0.8944 0.0000 +vn -0.2425 0.0000 0.9701 +vn -0.4472 0.8944 0.0000 +vn -0.2425 0.0000 -0.9701 +vn -0.7071 0.0000 0.7071 +vn 0.7071 0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 -0.7071 +vn -0.0000 0.4472 0.8944 +vn 0.6325 0.4472 0.6325 +vn -0.0000 -0.2425 0.9701 +vn 0.6860 -0.2425 0.6860 +vn -0.6325 0.4472 -0.6325 +vn -0.8944 0.4472 0.0000 +vn 0.0000 -0.2425 -0.9701 +vn -0.6860 -0.2425 -0.6860 +vn 0.8944 0.4472 0.0000 +vn -0.9701 -0.2425 0.0000 +vn -0.6325 0.4472 0.6325 +vn 0.9701 -0.2425 0.0000 +vn 0.6325 0.4472 -0.6325 +vn 0.6860 -0.2425 -0.6860 +vn -0.6860 -0.2425 0.6860 +vn 0.0000 0.4472 -0.8944 +s off +f 22/45/13 24/46/13 19/47/13 +f 25/48/14 28/49/14 27/50/14 +f 27/51/15 29/52/15 30/53/15 +f 26/54/16 32/55/16 31/56/16 +f 28/49/17 31/56/17 29/52/17 +f 25/57/18 30/53/18 32/58/18 +f 40/59/19 34/60/19 38/61/19 +f 38/62/20 35/63/20 37/64/20 +f 39/65/21 33/66/21 40/67/21 +f 34/60/14 36/68/14 35/63/14 +f 42/69/15 40/67/15 41/70/15 +f 43/71/16 37/64/16 44/72/16 +f 41/73/17 38/61/17 43/74/17 +f 44/75/18 39/76/18 42/77/18 +f 37/78/22 36/68/22 39/76/22 +f 47/79/15 46/80/15 45/81/15 +f 50/82/17 45/83/17 46/84/17 +f 51/85/17 48/86/17 47/79/17 +f 54/87/15 49/88/15 50/82/15 +f 56/89/18 53/90/18 54/87/18 +f 51/85/16 56/89/16 52/91/16 +f 45/92/14 53/90/14 55/93/14 +f 45/92/14 51/94/14 47/95/14 +f 46/96/13 54/87/13 50/97/13 +f 46/96/13 52/98/13 56/89/13 +f 63/99/17 60/100/17 59/101/17 +f 62/102/18 57/103/18 58/104/18 +f 64/105/16 58/104/16 60/100/16 +f 61/106/15 59/107/15 57/103/15 +f 67/108/13 66/109/13 65/110/13 +f 71/111/14 69/112/14 70/113/14 +f 74/114/15 76/115/15 73/116/15 +f 67/108/23 73/117/23 68/118/23 +f 75/119/24 67/120/24 69/121/24 +f 76/115/25 69/112/25 72/122/25 +f 68/123/26 76/115/26 72/124/26 +f 78/125/16 80/126/16 77/127/16 +f 66/109/27 77/128/27 65/110/27 +f 79/129/28 66/130/28 71/131/28 +f 80/126/29 71/111/29 70/113/29 +f 65/132/30 80/126/30 70/133/30 +f 82/134/17 84/135/17 81/136/17 +f 68/118/31 81/137/31 66/109/31 +f 83/138/32 68/139/32 72/140/32 +f 84/135/33 72/122/33 71/111/33 +f 66/141/34 84/135/34 71/142/34 +f 86/143/18 88/144/18 85/145/18 +f 65/110/35 85/146/35 67/108/35 +f 87/147/36 65/148/36 70/149/36 +f 88/144/37 70/113/37 69/112/37 +f 67/150/38 88/144/38 69/151/38 +f 123/152/14 122/153/14 127/154/14 +f 130/155/16 132/156/16 129/157/16 +f 132/156/39 133/158/39 129/157/39 +f 130/155/40 135/159/40 131/160/40 +f 142/161/13 144/162/13 139/163/13 +f 179/164/14 178/165/14 183/166/14 +f 186/167/15 188/168/15 185/169/15 +f 188/168/41 189/170/41 185/169/41 +f 186/167/42 191/171/42 187/172/42 +f 198/173/13 200/174/13 195/175/13 +f 235/176/14 234/177/14 239/178/14 +f 242/179/17 244/180/17 241/181/17 +f 244/180/40 245/182/40 241/181/40 +f 242/179/41 247/183/41 243/184/41 +f 254/185/13 256/186/13 251/187/13 +f 291/188/14 290/189/14 295/190/14 +f 298/191/18 300/192/18 297/193/18 +f 300/192/42 301/194/42 297/193/42 +f 298/191/39 303/195/39 299/196/39 +f 307/197/16 306/198/16 305/199/16 +f 310/200/18 305/201/18 306/202/18 +f 311/203/18 308/204/18 307/197/18 +f 314/205/16 309/206/16 310/200/16 +f 316/207/17 313/208/17 314/205/17 +f 311/203/15 316/207/15 312/209/15 +f 305/210/14 313/208/14 315/211/14 +f 305/210/14 311/212/14 307/213/14 +f 306/214/13 314/205/13 310/215/13 +f 306/214/13 312/216/13 316/207/13 +f 323/217/18 320/218/18 319/219/18 +f 322/220/17 317/221/17 318/222/17 +f 324/223/15 318/222/15 320/218/15 +f 321/224/16 319/225/16 317/221/16 +f 327/226/18 326/227/18 325/228/18 +f 330/229/15 325/230/15 326/231/15 +f 331/232/15 328/233/15 327/226/15 +f 334/234/18 329/235/18 330/229/18 +f 336/236/16 333/237/16 334/234/16 +f 331/232/17 336/236/17 332/238/17 +f 325/239/14 333/237/14 335/240/14 +f 325/239/14 331/241/14 327/242/14 +f 326/243/13 334/234/13 330/244/13 +f 326/243/13 332/245/13 336/236/13 +f 343/246/15 340/247/15 339/248/15 +f 342/249/16 337/250/16 338/251/16 +f 344/252/17 338/251/17 340/247/17 +f 341/253/18 339/254/18 337/250/18 +f 347/255/17 346/256/17 345/257/17 +f 350/258/16 345/259/16 346/260/16 +f 351/261/16 348/262/16 347/255/16 +f 354/263/17 349/264/17 350/258/17 +f 356/265/15 353/266/15 354/263/15 +f 351/261/18 356/265/18 352/267/18 +f 345/268/14 353/266/14 355/269/14 +f 345/268/14 351/270/14 347/271/14 +f 346/272/13 354/263/13 350/273/13 +f 346/272/13 352/274/13 356/265/13 +f 363/275/16 360/276/16 359/277/16 +f 362/278/15 357/279/15 358/280/15 +f 364/281/18 358/280/18 360/276/18 +f 361/282/17 359/283/17 357/279/17 +f 24/46/13 23/284/13 19/47/13 +f 23/284/13 17/285/13 19/47/13 +f 17/285/13 18/286/13 19/47/13 +f 19/47/13 20/287/13 21/288/13 +f 21/288/13 22/45/13 19/47/13 +f 25/48/14 26/54/14 28/49/14 +f 27/51/15 28/49/15 29/52/15 +f 26/54/16 25/289/16 32/55/16 +f 28/49/17 26/54/17 31/56/17 +f 25/57/18 27/51/18 30/53/18 +f 40/59/19 33/66/19 34/60/19 +f 38/62/20 34/60/20 35/63/20 +f 39/65/21 36/68/21 33/66/21 +f 34/60/14 33/66/14 36/68/14 +f 42/69/15 39/65/15 40/67/15 +f 43/71/16 38/62/16 37/64/16 +f 41/73/17 40/59/17 38/61/17 +f 44/75/18 37/78/18 39/76/18 +f 37/78/22 35/63/22 36/68/22 +f 47/79/15 48/86/15 46/80/15 +f 50/82/17 49/88/17 45/83/17 +f 51/85/17 52/91/17 48/86/17 +f 54/87/15 53/90/15 49/88/15 +f 56/89/18 55/93/18 53/90/18 +f 51/85/16 55/93/16 56/89/16 +f 45/92/14 49/290/14 53/90/14 +f 45/92/14 55/93/14 51/94/14 +f 46/96/13 56/89/13 54/87/13 +f 46/96/13 48/291/13 52/98/13 +f 63/99/17 64/105/17 60/100/17 +f 62/102/18 61/106/18 57/103/18 +f 64/105/16 62/102/16 58/104/16 +f 61/106/15 63/292/15 59/107/15 +f 67/108/13 68/118/13 66/109/13 +f 71/111/14 72/122/14 69/112/14 +f 74/114/15 75/119/15 76/115/15 +f 67/108/23 74/293/23 73/117/23 +f 75/119/24 74/114/24 67/120/24 +f 76/115/25 75/119/25 69/112/25 +f 68/123/26 73/116/26 76/115/26 +f 78/125/16 79/129/16 80/126/16 +f 66/109/27 78/294/27 77/128/27 +f 79/129/28 78/125/28 66/130/28 +f 80/126/29 79/129/29 71/111/29 +f 65/132/30 77/127/30 80/126/30 +f 82/134/17 83/138/17 84/135/17 +f 68/118/31 82/295/31 81/137/31 +f 83/138/32 82/134/32 68/139/32 +f 84/135/33 83/138/33 72/122/33 +f 66/141/34 81/136/34 84/135/34 +f 86/143/18 87/147/18 88/144/18 +f 65/110/35 86/296/35 85/146/35 +f 87/147/36 86/143/36 65/148/36 +f 88/144/37 87/147/37 70/113/37 +f 67/150/38 85/145/38 88/144/38 +f 123/152/14 121/297/14 122/153/14 +f 122/153/14 128/298/14 127/154/14 +f 127/154/14 126/299/14 125/300/14 +f 125/300/14 124/301/14 127/154/14 +f 124/301/14 123/152/14 127/154/14 +f 130/155/16 131/160/16 132/156/16 +f 132/156/39 136/302/39 133/158/39 +f 130/155/40 134/303/40 135/159/40 +f 144/162/13 143/304/13 139/163/13 +f 143/304/13 137/305/13 139/163/13 +f 137/305/13 138/306/13 139/163/13 +f 139/163/13 140/307/13 141/308/13 +f 141/308/13 142/161/13 139/163/13 +f 179/164/14 177/309/14 178/165/14 +f 178/165/14 184/310/14 183/166/14 +f 183/166/14 182/311/14 181/312/14 +f 181/312/14 180/313/14 183/166/14 +f 180/313/14 179/164/14 183/166/14 +f 186/167/15 187/172/15 188/168/15 +f 188/168/41 192/314/41 189/170/41 +f 186/167/42 190/315/42 191/171/42 +f 200/174/13 199/316/13 195/175/13 +f 199/316/13 193/317/13 195/175/13 +f 193/317/13 194/318/13 195/175/13 +f 195/175/13 196/319/13 197/320/13 +f 197/320/13 198/173/13 195/175/13 +f 235/176/14 233/321/14 234/177/14 +f 234/177/14 240/322/14 239/178/14 +f 239/178/14 238/323/14 237/324/14 +f 237/324/14 236/325/14 239/178/14 +f 236/325/14 235/176/14 239/178/14 +f 242/179/17 243/184/17 244/180/17 +f 244/180/40 248/326/40 245/182/40 +f 242/179/41 246/327/41 247/183/41 +f 256/186/13 255/328/13 251/187/13 +f 255/328/13 249/329/13 251/187/13 +f 249/329/13 250/330/13 251/187/13 +f 251/187/13 252/331/13 253/332/13 +f 253/332/13 254/185/13 251/187/13 +f 291/188/14 289/333/14 290/189/14 +f 290/189/14 296/334/14 295/190/14 +f 295/190/14 294/335/14 293/336/14 +f 293/336/14 292/337/14 295/190/14 +f 292/337/14 291/188/14 295/190/14 +f 298/191/18 299/196/18 300/192/18 +f 300/192/42 304/338/42 301/194/42 +f 298/191/39 302/339/39 303/195/39 +f 307/197/16 308/204/16 306/198/16 +f 310/200/18 309/206/18 305/201/18 +f 311/203/18 312/209/18 308/204/18 +f 314/205/16 313/208/16 309/206/16 +f 316/207/17 315/211/17 313/208/17 +f 311/203/15 315/211/15 316/207/15 +f 305/210/14 309/340/14 313/208/14 +f 305/210/14 315/211/14 311/212/14 +f 306/214/13 316/207/13 314/205/13 +f 306/214/13 308/341/13 312/216/13 +f 323/217/18 324/223/18 320/218/18 +f 322/220/17 321/224/17 317/221/17 +f 324/223/15 322/220/15 318/222/15 +f 321/224/16 323/342/16 319/225/16 +f 327/226/18 328/233/18 326/227/18 +f 330/229/15 329/235/15 325/230/15 +f 331/232/15 332/238/15 328/233/15 +f 334/234/18 333/237/18 329/235/18 +f 336/236/16 335/240/16 333/237/16 +f 331/232/17 335/240/17 336/236/17 +f 325/239/14 329/343/14 333/237/14 +f 325/239/14 335/240/14 331/241/14 +f 326/243/13 336/236/13 334/234/13 +f 326/243/13 328/344/13 332/245/13 +f 343/246/15 344/252/15 340/247/15 +f 342/249/16 341/253/16 337/250/16 +f 344/252/17 342/249/17 338/251/17 +f 341/253/18 343/345/18 339/254/18 +f 347/255/17 348/262/17 346/256/17 +f 350/258/16 349/264/16 345/259/16 +f 351/261/16 352/267/16 348/262/16 +f 354/263/17 353/266/17 349/264/17 +f 356/265/15 355/269/15 353/266/15 +f 351/261/18 355/269/18 356/265/18 +f 345/268/14 349/346/14 353/266/14 +f 345/268/14 355/269/14 351/270/14 +f 346/272/13 356/265/13 354/263/13 +f 346/272/13 348/347/13 352/274/13 +f 363/275/16 364/281/16 360/276/16 +f 362/278/15 361/282/15 357/279/15 +f 364/281/18 362/278/18 358/280/18 +f 361/282/17 363/348/17 359/283/17 +s 1 +f 108/349/39 18/350/16 107/351/16 +f 111/352/15 21/353/42 110/354/42 +f 89/355/40 23/356/17 90/357/17 +f 109/358/18 19/359/39 108/360/39 +f 112/361/41 22/362/15 111/363/15 +f 107/364/16 17/365/40 89/366/40 +f 90/367/17 24/368/41 112/369/41 +f 110/370/42 20/371/18 109/372/18 +f 104/373/43 118/374/44 119/375/43 +f 103/376/45 110/354/46 101/377/46 +f 92/378/18 93/379/42 91/380/18 +f 94/381/47 114/382/48 113/383/47 +f 95/384/49 89/366/50 93/379/50 +f 94/381/42 95/384/15 93/379/42 +f 102/385/44 117/386/51 118/387/44 +f 91/380/52 89/355/50 90/357/52 +f 96/388/15 97/389/41 95/390/15 +f 106/391/53 114/392/48 92/378/48 +f 101/377/46 109/372/54 99/393/54 +f 98/394/41 99/393/17 97/389/41 +f 98/394/55 117/395/51 100/396/51 +f 99/393/54 108/360/56 97/389/56 +f 100/396/17 101/377/40 99/393/17 +f 120/397/41 122/398/17 114/392/17 +f 105/399/57 111/363/45 103/376/45 +f 102/385/40 103/376/16 101/377/40 +f 106/391/53 119/400/43 120/401/53 +f 104/373/16 105/399/39 103/376/16 +f 96/402/58 113/403/47 115/404/58 +f 91/380/52 112/369/57 105/399/57 +f 106/391/39 91/380/18 105/399/39 +f 95/390/49 108/349/56 107/351/49 +f 96/388/58 116/405/55 98/394/55 +f 118/374/42 127/406/15 119/375/15 +f 116/407/39 125/408/18 117/395/18 +f 113/403/40 123/409/16 115/404/16 +f 119/400/15 128/410/41 120/401/41 +f 117/386/18 126/411/42 118/387/42 +f 115/412/16 124/413/39 116/405/39 +f 114/382/17 121/414/40 113/383/40 +f 164/415/41 138/416/15 163/417/15 +f 167/418/16 141/419/40 166/420/40 +f 145/421/42 143/422/18 146/423/18 +f 165/424/17 139/425/41 164/426/41 +f 168/427/39 142/428/16 167/429/16 +f 163/430/15 137/431/42 145/432/42 +f 146/433/18 144/434/39 168/435/39 +f 166/436/40 140/437/17 165/438/17 +f 158/439/47 175/440/58 160/441/58 +f 157/442/50 167/418/49 166/420/50 +f 148/443/17 149/444/40 147/445/17 +f 150/446/44 170/447/51 169/448/44 +f 151/449/45 145/432/46 149/444/46 +f 150/446/40 151/449/16 149/444/40 +f 158/439/47 173/450/48 174/451/47 +f 147/445/54 145/421/46 146/423/54 +f 152/452/16 153/453/39 151/454/16 +f 162/455/55 170/456/51 148/443/51 +f 157/442/50 165/438/52 155/457/52 +f 154/458/39 155/457/18 153/453/39 +f 154/458/53 173/459/48 156/460/48 +f 155/457/52 164/426/57 153/453/57 +f 156/460/18 157/442/42 155/457/18 +f 176/461/39 178/462/18 170/456/18 +f 159/463/49 168/427/56 167/429/49 +f 158/439/42 159/463/15 157/442/42 +f 162/455/55 175/464/58 176/465/55 +f 160/441/15 161/466/41 159/463/15 +f 152/467/43 169/468/44 171/469/43 +f 147/445/54 168/435/56 161/466/56 +f 162/455/41 147/445/17 161/466/41 +f 153/453/57 163/417/45 151/454/45 +f 154/458/53 171/470/43 172/471/53 +f 174/472/40 183/473/16 175/440/16 +f 172/474/41 181/475/17 173/459/17 +f 169/468/42 179/476/15 171/469/15 +f 175/464/16 184/477/39 176/465/39 +f 173/450/17 182/478/40 174/451/40 +f 171/470/15 180/479/41 172/471/41 +f 170/447/18 177/480/42 169/448/42 +f 220/481/40 194/482/17 219/483/17 +f 223/484/18 197/485/39 222/486/39 +f 201/487/41 199/488/15 202/489/15 +f 221/490/16 195/491/40 220/492/40 +f 224/493/42 198/494/18 223/495/18 +f 219/496/17 193/497/41 201/498/41 +f 202/499/15 200/500/42 224/501/42 +f 222/502/39 196/503/16 221/504/16 +f 216/505/51 230/506/55 231/507/51 +f 215/508/54 222/486/56 213/509/56 +f 204/510/16 205/511/39 203/512/16 +f 206/513/53 226/514/43 225/515/53 +f 205/511/57 219/496/52 201/498/57 +f 206/513/39 207/516/18 205/511/39 +f 212/517/58 230/518/55 214/519/55 +f 205/511/57 202/489/45 203/512/45 +f 208/520/18 209/521/42 207/522/18 +f 218/523/44 226/524/43 204/510/43 +f 213/509/56 221/504/49 211/525/49 +f 210/526/42 211/525/15 209/521/42 +f 210/526/47 229/527/58 212/517/58 +f 209/521/50 221/490/49 220/492/50 +f 212/517/15 213/509/41 211/525/15 +f 232/528/42 234/529/15 226/524/15 +f 215/508/54 224/493/46 223/495/54 +f 214/519/41 215/508/17 213/509/41 +f 218/523/44 231/530/51 232/531/44 +f 216/505/17 217/532/40 215/508/17 +f 208/533/48 225/534/53 227/535/48 +f 203/512/45 224/501/46 217/532/46 +f 218/523/40 203/512/16 217/532/40 +f 209/521/50 219/483/52 207/522/52 +f 210/526/47 227/536/48 228/537/47 +f 230/506/39 239/538/18 231/507/18 +f 228/539/40 237/540/16 229/527/16 +f 225/534/41 235/541/17 227/535/17 +f 231/530/18 240/542/42 232/531/42 +f 229/543/16 238/544/39 230/518/39 +f 227/536/17 236/545/40 228/537/40 +f 226/514/15 233/546/41 225/515/41 +f 276/547/42 250/548/18 275/549/18 +f 279/550/17 253/551/41 278/552/41 +f 257/553/39 255/554/16 258/555/16 +f 277/556/15 251/557/42 276/558/42 +f 280/559/40 254/560/17 279/561/17 +f 275/562/18 249/563/39 257/564/39 +f 258/565/16 256/566/40 280/567/40 +f 278/568/41 252/569/15 277/570/15 +f 272/571/48 286/572/53 287/573/48 +f 271/574/52 278/552/57 269/575/57 +f 260/576/15 261/577/41 259/578/15 +f 262/579/55 282/580/58 281/581/55 +f 263/582/54 257/564/56 261/577/56 +f 262/579/41 263/582/17 261/577/41 +f 270/583/53 285/584/43 286/585/53 +f 261/577/56 258/555/49 259/578/49 +f 264/586/17 265/587/40 263/588/17 +f 274/589/47 282/590/58 260/576/58 +f 269/575/57 277/570/45 267/591/45 +f 266/592/40 267/591/16 265/587/40 +f 266/592/44 285/593/43 268/594/43 +f 267/591/45 276/558/46 265/587/46 +f 268/594/16 269/575/39 267/591/16 +f 288/595/40 290/596/16 282/590/16 +f 273/597/50 279/561/52 271/574/52 +f 270/583/39 271/574/18 269/575/39 +f 274/589/47 287/598/48 288/599/47 +f 272/571/18 273/597/42 271/574/18 +f 264/600/51 281/601/55 283/602/51 +f 259/578/49 280/567/50 273/597/50 +f 274/589/42 259/578/15 273/597/42 +f 265/587/46 275/549/54 263/588/54 +f 266/592/44 283/603/51 284/604/44 +f 286/572/41 295/605/17 287/573/17 +f 284/606/42 293/607/15 285/593/15 +f 281/601/39 291/608/18 283/602/18 +f 287/598/17 296/609/40 288/599/40 +f 285/584/15 294/610/41 286/585/41 +f 283/603/18 292/611/42 284/604/42 +f 282/580/16 289/612/39 281/581/39 +f 108/349/39 19/613/39 18/350/16 +f 111/352/15 22/614/15 21/353/42 +f 89/355/40 17/615/40 23/356/17 +f 109/358/18 20/616/18 19/359/39 +f 112/361/41 24/617/41 22/362/15 +f 107/364/16 18/618/16 17/365/40 +f 90/367/17 23/619/17 24/368/41 +f 110/370/42 21/620/42 20/371/18 +f 104/373/43 102/385/44 118/374/44 +f 103/376/45 111/352/45 110/354/46 +f 92/378/18 94/381/42 93/379/42 +f 94/381/47 92/378/48 114/382/48 +f 95/384/49 107/364/49 89/366/50 +f 94/381/42 96/402/15 95/384/15 +f 102/385/44 100/396/51 117/386/51 +f 91/380/52 93/379/50 89/355/50 +f 96/388/15 98/394/41 97/389/41 +f 106/391/53 120/397/53 114/392/48 +f 101/377/46 110/370/46 109/372/54 +f 98/394/41 100/396/17 99/393/17 +f 98/394/55 116/407/55 117/395/51 +f 99/393/54 109/358/54 108/360/56 +f 100/396/17 102/385/40 101/377/40 +f 120/397/41 128/621/41 122/398/17 +f 105/399/57 112/361/57 111/363/45 +f 102/385/40 104/373/16 103/376/16 +f 106/391/53 104/373/43 119/400/43 +f 104/373/16 106/391/39 105/399/39 +f 96/402/58 94/381/47 113/403/47 +f 91/380/52 90/367/52 112/369/57 +f 106/391/39 92/378/18 91/380/18 +f 95/390/49 97/389/56 108/349/56 +f 96/388/58 115/412/58 116/405/55 +f 118/374/42 126/622/42 127/406/15 +f 116/407/39 124/623/39 125/408/18 +f 113/403/40 121/624/40 123/409/16 +f 119/400/15 127/625/15 128/410/41 +f 117/386/18 125/626/18 126/411/42 +f 115/412/16 123/627/16 124/413/39 +f 114/382/17 122/628/17 121/414/40 +f 164/415/41 139/629/41 138/416/15 +f 167/418/16 142/630/16 141/419/40 +f 145/421/42 137/631/42 143/422/18 +f 165/424/17 140/632/17 139/425/41 +f 168/427/39 144/633/39 142/428/16 +f 163/430/15 138/634/15 137/431/42 +f 146/433/18 143/635/18 144/434/39 +f 166/436/40 141/636/40 140/437/17 +f 158/439/47 174/472/47 175/440/58 +f 157/442/50 159/463/49 167/418/49 +f 148/443/17 150/446/40 149/444/40 +f 150/446/44 148/443/51 170/447/51 +f 151/449/45 163/430/45 145/432/46 +f 150/446/40 152/467/16 151/449/16 +f 158/439/47 156/460/48 173/450/48 +f 147/445/54 149/444/46 145/421/46 +f 152/452/16 154/458/39 153/453/39 +f 162/455/55 176/461/55 170/456/51 +f 157/442/50 166/436/50 165/438/52 +f 154/458/39 156/460/18 155/457/18 +f 154/458/53 172/474/53 173/459/48 +f 155/457/52 165/424/52 164/426/57 +f 156/460/18 158/439/42 157/442/42 +f 176/461/39 184/637/39 178/462/18 +f 159/463/49 161/466/56 168/427/56 +f 158/439/42 160/441/15 159/463/15 +f 162/455/55 160/441/58 175/464/58 +f 160/441/15 162/455/41 161/466/41 +f 152/467/43 150/446/44 169/468/44 +f 147/445/54 146/433/54 168/435/56 +f 162/455/41 148/443/17 147/445/17 +f 153/453/57 164/415/57 163/417/45 +f 154/458/53 152/452/43 171/470/43 +f 174/472/40 182/638/40 183/473/16 +f 172/474/41 180/639/41 181/475/17 +f 169/468/42 177/640/42 179/476/15 +f 175/464/16 183/641/16 184/477/39 +f 173/450/17 181/642/17 182/478/40 +f 171/470/15 179/643/15 180/479/41 +f 170/447/18 178/644/18 177/480/42 +f 220/481/40 195/645/40 194/482/17 +f 223/484/18 198/646/18 197/485/39 +f 201/487/41 193/647/41 199/488/15 +f 221/490/16 196/648/16 195/491/40 +f 224/493/42 200/649/42 198/494/18 +f 219/496/17 194/650/17 193/497/41 +f 202/499/15 199/651/15 200/500/42 +f 222/502/39 197/652/39 196/503/16 +f 216/505/51 214/519/55 230/506/55 +f 215/508/54 223/484/54 222/486/56 +f 204/510/16 206/513/39 205/511/39 +f 206/513/53 204/510/43 226/514/43 +f 205/511/57 207/516/52 219/496/52 +f 206/513/39 208/533/18 207/516/18 +f 212/517/58 229/543/58 230/518/55 +f 205/511/57 201/487/57 202/489/45 +f 208/520/18 210/526/42 209/521/42 +f 218/523/44 232/528/44 226/524/43 +f 213/509/56 222/502/56 221/504/49 +f 210/526/42 212/517/15 211/525/15 +f 210/526/47 228/539/47 229/527/58 +f 209/521/50 211/525/49 221/490/49 +f 212/517/15 214/519/41 213/509/41 +f 232/528/42 240/653/42 234/529/15 +f 215/508/54 217/532/46 224/493/46 +f 214/519/41 216/505/17 215/508/17 +f 218/523/44 216/505/51 231/530/51 +f 216/505/17 218/523/40 217/532/40 +f 208/533/48 206/513/53 225/534/53 +f 203/512/45 202/499/45 224/501/46 +f 218/523/40 204/510/16 203/512/16 +f 209/521/50 220/481/50 219/483/52 +f 210/526/47 208/520/48 227/536/48 +f 230/506/39 238/654/39 239/538/18 +f 228/539/40 236/655/40 237/540/16 +f 225/534/41 233/656/41 235/541/17 +f 231/530/18 239/657/18 240/542/42 +f 229/543/16 237/658/16 238/544/39 +f 227/536/17 235/659/17 236/545/40 +f 226/514/15 234/660/15 233/546/41 +f 276/547/42 251/661/42 250/548/18 +f 279/550/17 254/662/17 253/551/41 +f 257/553/39 249/663/39 255/554/16 +f 277/556/15 252/664/15 251/557/42 +f 280/559/40 256/665/40 254/560/17 +f 275/562/18 250/666/18 249/563/39 +f 258/565/16 255/667/16 256/566/40 +f 278/568/41 253/668/41 252/569/15 +f 272/571/48 270/583/53 286/572/53 +f 271/574/52 279/550/52 278/552/57 +f 260/576/15 262/579/41 261/577/41 +f 262/579/55 260/576/58 282/580/58 +f 263/582/54 275/562/54 257/564/56 +f 262/579/41 264/600/17 263/582/17 +f 270/583/53 268/594/43 285/584/43 +f 261/577/56 257/553/56 258/555/49 +f 264/586/17 266/592/40 265/587/40 +f 274/589/47 288/595/47 282/590/58 +f 269/575/57 278/568/57 277/570/45 +f 266/592/40 268/594/16 267/591/16 +f 266/592/44 284/606/44 285/593/43 +f 267/591/45 277/556/45 276/558/46 +f 268/594/16 270/583/39 269/575/39 +f 288/595/40 296/669/40 290/596/16 +f 273/597/50 280/559/50 279/561/52 +f 270/583/39 272/571/18 271/574/18 +f 274/589/47 272/571/48 287/598/48 +f 272/571/18 274/589/42 273/597/42 +f 264/600/51 262/579/55 281/601/55 +f 259/578/49 258/565/49 280/567/50 +f 274/589/42 260/576/15 259/578/15 +f 265/587/46 276/547/46 275/549/54 +f 266/592/44 264/586/51 283/603/51 +f 286/572/41 294/670/41 295/605/17 +f 284/606/42 292/671/42 293/607/15 +f 281/601/39 289/672/39 291/608/18 +f 287/598/17 295/673/17 296/609/40 +f 285/584/15 293/674/15 294/610/41 +f 283/603/18 291/675/18 292/611/42 +f 282/580/16 290/676/16 289/612/39 diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_crate_bottom.png b/src/main/resources/assets/hbm/textures/blocks/drone_crate_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..dbc6e87ca39f8c8aff49aa7b26ecdf86d6eb6c71 GIT binary patch literal 785 zcmV+s1Md8ZP)4%06vux%GrK!;#}Y~4$^?#p+i*pyKnkVF7ceedIjC{t zDyX?oGDOFV=y!UwTSuU5Hot**Dwk_lF7%3&*d-6PIyYiG#U{?06+*qmSxev&1Qr5p6zyvF@~<|dfjk1)LI|w2gb-+& zCLYpt9YP4k<1uwzqqXky+P1x6-0+N2Nz&VF8hNfu{LiBmV^9Uj0R}@9OMF>IDG;B5-(lo_di!mnpriLCL zym}Q4d-LcKZQI65h88C;Uq;QxXV3bJ%d!Mux>%s+a{$KUF~%4|2xzTI(-f`s4V@68 zuW*?E+mkq$*ECHWra$YHQUD|e2M68d+_r68p04ZSc%Ph{pjN9D z+wGQ%iwkat_dd?XQ0WlE#;X1Oeg0cKcwuLJ`|fTY{Cxk2=hJ_S2QTc50SJG^gF*NG z`&&Ht`t>yrGJQ7>zIl7igZ$qAJox-PIDK%QdGO2Rng>68yv2j((*-~3zvscA z`)oW=&N)V-5$EUU0DSlB0p^RI2fMqwH+b;n??3V3w-4;??Zw6W$2|B0`}L)()krm^ P00000NkvXXu0mjf6A*Mz literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_crate_bottom.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/drone_crate_bottom.png.mcmeta new file mode 100755 index 000000000..92dd223c8 --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/drone_crate_bottom.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 10 + } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_crate_side.png b/src/main/resources/assets/hbm/textures/blocks/drone_crate_side.png new file mode 100644 index 0000000000000000000000000000000000000000..bb54d31aeddca91bc62a6069b9acf61adbc4bbad GIT binary patch literal 803 zcmV+;1Kj+HP)Y|~MV2x~SwhcfK1Zb@z!=<#= zNGZwZ^E4U_Ow+_vO0mDcPY?ujyItOW|IR9TpFiU`4()b(VW739TCGy4R8UIs?bR!C zxg3^dF`LaW3(+ijknp3qt| zolc|2&1REcug8a4jkUEkq?8Dy6jDk6>h(H>LV;W^$Nl|1lgR|%_erPI^m;u8g8{{2 z5dh1w5JF%shXY{SHs|N(?CtF_o6YF=`xgnp=BZP=H6_3Z!T4T=V^Jv1BWkp7@Sd1_XQA&|aCed0WguwGW z01U%e6dVqRf33*#7>!003I#4MF6ef<^!t4>nGBDQk4Py=CX)aNAr>u+Mx)3;2tm1A zrqk!26h*uXFh3WWke5O8;QM>d;{LM4Pi#A30?V0U+yMx(*?^)>73>(Mvs^*Y63 zkxV8-v)Ke-JRUEKx~>}~?BwKxUa!aY_BM$`f*=Tp$KxoaXfzs>N+nXM6klJzMhJmn z7?@H@4h{~uy1K%3UEWlyFUB|oN}oPq+cu}Cr;8c*zR$zM1Fq|m&*y1<{752^h$1|h zOqkE-BoYZs)5Hiv(&;op2wJTc=I!k*&(F_DDWm?D(ppE^Sf+KU<;9wnN`-$H51!tw z=D~aK7d#k#Tg`(@=LH`8Vf{W2CLjLi0sJ?4@ZS4<9@t-3@ZiUrDz`7h_|FjDmVUv5 h-PURzgvLM2gP&uBd4_F6BH{o5002ovPDHLkV1jP>dPx8P literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_crate_side.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/drone_crate_side.png.mcmeta new file mode 100755 index 000000000..92dd223c8 --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/drone_crate_side.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 10 + } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_crate_top.png b/src/main/resources/assets/hbm/textures/blocks/drone_crate_top.png new file mode 100644 index 0000000000000000000000000000000000000000..4d38b8ec78d3dc29b10f8fb49394f2c6108b8dc0 GIT binary patch literal 695 zcmV;o0!aOdP)paDS*J?NTHK!2PjPLl(P^HapNXOf zr4-8deT*?2A0Lw>3B%Ed{k=VkqCf~i5Cmwg3B!=nvoo$PFG-SwySqEGEJGM$FvgH1 z3HSH+0MvC&9LGp0F~$%C0rUAB!0Ey;#Pd9qloBZ=!_ml|m|s<>iIsdnJppy|u;4$_iR*mV*Ex1gbMf2tgQz%w{tHo}Qk5 z+T8E=vDQ+SC2<_nGz|cvOQ4i;<$e^N=Ml#-d7cx7VS8|0*Uq>g2wW@Qi>7JF^BkoV zp69g(W?9yjA_RG!QxwIA34{>Dag67Au2R*tr~A=;`~Ci#1WGB2q9BfA=bP&FdH|eX zTsYz8#)g|ZYppZv`sT)Ijt&poq-mN0xCtAMMy#%`QdJdYSrUdJT5IP`rxVj@dzEfs zaT0sI9@bi_s=^pUXLhGkO0}IC3CE$=EZ(8Cf9sz& z`ah*-SnaSnz!z}$49}-^EhP<4npM8%e!OJH?9ek&kwvgzQrESp9>XJwN(-)aU7IBr z;MHj8#$Rym?dA!^_qG_6R{Ui7wS;G~|AW~NHlGmqI6*I>F#1booBxANr^Jr%uDjpy jS-r#gnf;H$_CFZg*TyAFNQXH9oy*|q>gTe~DWM4f$+cW` literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_waypoint.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/drone_waypoint.png.mcmeta new file mode 100755 index 000000000..92dd223c8 --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/drone_waypoint.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 10 + } +} diff --git a/src/main/resources/assets/hbm/textures/gui/storage/gui_crate_drone.png b/src/main/resources/assets/hbm/textures/gui/storage/gui_crate_drone.png new file mode 100644 index 0000000000000000000000000000000000000000..a0afa80194287477c2b4311c87c501b3cf79b305 GIT binary patch literal 2165 zcmbuBc~FyC62M!!uKsX|>fZ&0Eih_z98ad<$1jvVIjKjI( zh_V=oG9>{SV$2G1O@dqngMdU1xe`Q80Fj#zj$a@}0BE{6J01f7rZ~a?QbnQ8M6xa^6yln_%L$}H5|9_^03gj=9PLh!AB+!h z!t}&jRYg*beK3pC%d1ctQTI>ESY?T4?Bo8OgX+P?{Fb}fW(HS}CAW}t@8qWP9fB+l zLnX>TFsVc+tvmUNS;xk>4s>B9B`+xAXZi$scM@;uSC7Vf#Do*dvkn}2Ca;RUjdztz zrIRT#_LIQ(eG3+H-vnHl4Ou=UEDDw5Ub$=}9<66+zmz`;sF^4+#!&Ty4foQUm!(BR zak%85fJwoD)OzE`pVD4br1>nz$Mx%sa>RW?9}M0%>a=fmL_`FN`|h*EyQIuI@)MDF zNk$hw_YeX{kbo3A3v)4~o171;c8GSNZ_GGbw@cxU%1waW2De#69#Q@(MW zsp_VSk$UR_eGk9g*X;s_?EZN5q*1tZojj|CH$Rj6uAw`he1MfR%`LEj9m;;c>%8SD z&BaCyIcaRCoo_aZ^B2v8`RVuk{0etq9$fFfl(H(e;`aHESi1t13zPv~TV#1LTB9$8 z>Wly>$6^!DW(U?ytXJh{sZwtMe`eR%Ea^_u&oSwbwB$$_pMbx}oQMpbWUo5*Nd2{e zMsuRK{1%Jyabii7`O*~7p4aBQNxUq&uzaL4yqFZtUY05oX(6kA(pEr=;yUcQ)AV6b zH@1%_DA9lFo})soOWsKkM4xc1BjYk;2_>y+qYv`(442DGlM13U4q`8hZDb!u2dJh~ zuO-FOGO0~n4IY{z_e+3a#PZWjIo6bQTw1iWB%P4TSKH3<1{W3!*t|hpmsA*giAG*= zC?0GxMAgS?#eL8%%S`n-I3pQelI1>EyWc(!!j{Ayg^QhDb$NQ5<6_aP<)QM{_l9f} zc@MX2ojM4uWT?3ncu$xlPr`(%yB%_`Wk$>Hp6+;IQ^8ECLg?V{JGh0*m& zV}EhiZ2lWor}ma@Fan7&pw#nmy7p2(7P(DhS+{dk4mDle5LlJw&9x#u2rxy0(6Nth zP&ERm&c$d!DQkMMnd)oVTYB1KwVPI|p$*=4$?#C_qScJqJy*T!Mt}_2v>*&RP{Fgm zt=MuC=g#SMm=Qp@r=b+|N|1kzk$T*AFad{HTHbOJscLM$(i(?Qi5`Q6lTKsqr7)D& zvevpWL!6kEgPT#*%H38r>#wZz7!|LYtVi$_a|=-qVYh~i>btJRoDQAe)l8N(NonW9 zK#O>$VIZ^%9rpJ7BnH+m-Z(}>vbWEBvGJ_T<6V>ZKFv~8HiEQdVxzlRndo*#zY;kX z?LDUA#48l04X4syE(#mj)T%GywVA0BNPhiFyXCzn)gLBBPlu!e5wnE?984ATsoqJw zMu7Fp9SX2C2CUa^{$xdS-YIRtC^}uTT)R_YGvH4uN;#mj#Xw=32Q*g@p0#H+Tn&VB zRn2j5sJ8_{b5hvw(9i~;|DoCT3>L1*I?|m%l>VI&3ujFG-VejY2(RZy|!22kmeWd79t3ruz-eiK-1RA@~@D7)|&^)tUzm9+v$*HreZ2l<33nf zl&}@}VD9bDaXXTT(SP#?YQb6Cm7|W1US3{~H@@?jwO4Ek)c)Mp#wXbU22JUN+2;63 zL53K0RIvc}ZdUie?BG6xZ4BD`BAj;Id?l=LUdIRDr?-D}g=bLZ z9`o@xn|u_GobMBH|MK{s2C&9Z0e||Hxr9HPQNkbRApXHAxjQ$T7lX^BKi>UAD948! zX_Pak!8~MbP3h1{zV!^&lQC}kEdEC>bnC#v+9%-u7ttZP7QOz4E_VT!x)#lac*L>9 I-v9dF0F-32X#fBK literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/drone_linker.png b/src/main/resources/assets/hbm/textures/items/drone_linker.png new file mode 100644 index 0000000000000000000000000000000000000000..6e0a5e7cdcc0c7bf5a653f010860c3a7824ecf93 GIT binary patch literal 312 zcmV-80muG{P)bh1{RY`;M)MZf=Ow*KXa&~xVn&#WM-h0}%{m?Bw7xaDqrPx}_FbqdrU;wbY-2h-5 zY~9RXE|x)UbOy%FV&i5mhG>GruJ0yW2iKA6fU?$xQP**CVBozEhV>&^mlEAVyL`j4#2`iF6WJ}g~GLy`Vdipbm z>8i|!q>-huG=}-Zpq`#r-Bqt%{okv9w+!||6h(Xf1~5Cj@6R34sl8zsN4vq}K^*7J zdKrC3#OOQXNXX?PqUdO!TyB33I%Yie5s`b3t~gY-Wrt&C>yFr`f4TRFX0O(*X0L)V z&7u4L)JH_O@c54C=GyKdp6EwJjJ_jc^c@jHcC^@Q9UpbCvDfwI=1wGQwL9XZ3G9UK zZ?xUG(@b|O5)OO6hKRXz>C%y$_SIKk>1*{lB1UJ9=wTF##jaiJsdI!{4&89V#fulC z;o)JRzce(Sx`@~fYE}=5-J+=<5i$CXh|zaMjJ_jc^c@kS?}!+EN5tqmB1Yd4G5U^( zVYEFr=(gT)RJ8Qx(&fuQbD4aU5?i%xcSP$0p5s=GTBW*{{_W<7qd+;L^QNn{W6Ckz zdOzZXG|E;yb-T|-dF|rGi${vqg@pxut*6crjd)yc*bn`z5u-C%?uJ}0>Iz33gdaNe zul2Qn`04oGxBaB~``oAXC+Pi%h#`CKeTY^ZQ~&xA5o2#}_t1NmQ@J`1tjuA&5!H`B zH!!+&9{LfX(erhLnz5(!GB z5? z7D%O1IF5r5fRWLrNnU@lF6hVwClPEA;@Gh1VKPPpT{)Y-*r7nNYgYi zO_OWat|5fL^E`at$8}w#lmtP5@B288gOpO+oj!dU(=;_FL{WrknuKAfBSP_wloHc4 z@jQ}Xssb2t|NjV(6cCnz;PVHFvN9TY}*Fvp|93?rBWf8 zOzO-cWxXyFLQpQ3bsHgsZs&O(sZ@$oDg~f3Nv}Yv4*9-MCX)f`=~JzD+qMbAP!nIJ zQb9_oqeHcY`oJyA((P-tn&yUNGO78e5lT-`I)c&*)b~F>(c%9ASt^wP^dJ>UD!%YM zPjiEsRmBDRB5_3czK>;Dx{W#(Lh$96Ujp#jYp*r6=@p1-wOT(ALVpx7s+z!cU3PYM zuq+G5aY&_7npav;tJU-pDVNKbrpdS8e#`pO4HmEepIk22R8RB@q*~9u?_=Axjtt-T zb!4dDJ~n{U3!g$oxDLg<-QgG?k6L{Wt6x)_F``Qfd%-ePs*0jnDi`1s?Gbt&IV z;+RyOQWc|VnmRgmc6M-GmoN2>AQ>XL>N^P>Xx3?J?8PT&^C=?hP8s@+M`HV`X z0)Xq*YX`OAQpA`{CMlQ81cA@lbLS4!!EP#1yPaQ|iyd+I?p&O^L3 zu3fvv{rmSxr_(@ZJz{)(oVB$zq?COBeSILRMeY&R@22*qy1sA zG6(bX^L)5=1!&VG+h)8IL=Xgg{q@(p`s%BUjg9f};X_?+o2J>MM?Cl3bF8kevbws; z^z^h&pK7L6WvQUbYIST`R-64{F+V@gl`B`8&V6pcU;Z_JsOxDxVr6B8nVA_q+h@+4 zY0@KJc;N-s*VozF+G1*IiowA_Ow+_L3_Qri;?bi= zoIiiQNsmz5b>H{(Qb;5cx*YdBk7~85Ij7aWoA~VAE4*&HN zebUsPIFbw|55yJP5siAp($W$yz4Q`NN<7cw&Ye4qkB=jSAe~NAsZ4^^Tpx9N9n39gCAjd}#Y%*+h;@89Rqqeq-ReHz0sn3$L#3_~71e8}0eXPY8K?KGn( z!uNd=iG*Gjs{T-W5X-Wt)oM-lb9~aYhUa2#h%3o9bXxOsdvHr9h(E;2PWMLL~kadA;!M5RJik64z4Wm&pJ zcN_=Xwsj@hXx}T4p6Bt)FTZFfbkZZDC}MPU6d?rn?%iWzVnP$5DxxgQ()=QXAfL}O zG&H1BXruji-+gz|J^*4pLW!(u*Qjt1J>rKSegNv}P?4Zv7%VR@H>K28D7#+4?}&#? UfC1gdzW@LL07*qoM6N<$g4{AD*#H0l literal 0 HcmV?d00001 From ee34c5990887ef89659df57a8a29bc27a646abe8 Mon Sep 17 00:00:00 2001 From: Bob Date: Mon, 18 Sep 2023 21:37:01 +0200 Subject: [PATCH 312/432] =?UTF-8?q?pain=C2=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/hbm/blocks/network/DroneCrate.java | 78 +++++++++++++++- .../java/com/hbm/tileentity/TileMappings.java | 1 + .../machine/TileEntityMachineAssembler.java | 9 +- .../TileEntityMachineAssemblerBase.java | 61 ++++++------ .../machine/TileEntityMachineAssemfac.java | 29 +++--- .../machine/TileEntityMachineChemfac.java | 29 +++--- .../machine/TileEntityMachineChemplant.java | 33 ++++--- .../TileEntityMachineChemplantBase.java | 57 +++++++----- .../network/TileEntityDroneCrate.java | 88 ++++++++++++++++++ .../network/TileEntityDroneWaypoint.java | 2 +- .../hbm/textures/models/machines/drone.png | Bin 2662 -> 2748 bytes 11 files changed, 286 insertions(+), 101 deletions(-) create mode 100644 src/main/java/com/hbm/tileentity/network/TileEntityDroneCrate.java diff --git a/src/main/java/com/hbm/blocks/network/DroneCrate.java b/src/main/java/com/hbm/blocks/network/DroneCrate.java index 440e3e5c5..02180bfbd 100644 --- a/src/main/java/com/hbm/blocks/network/DroneCrate.java +++ b/src/main/java/com/hbm/blocks/network/DroneCrate.java @@ -1,17 +1,33 @@ package com.hbm.blocks.network; +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +import com.hbm.blocks.ILookOverlay; +import com.hbm.blocks.ITooltipProvider; import com.hbm.lib.RefStrings; +import com.hbm.tileentity.network.TileEntityDroneCrate; +import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; -public class DroneCrate extends BlockContainer { +public class DroneCrate extends BlockContainer implements ILookOverlay, ITooltipProvider { + + private static Random rand = new Random(); @SideOnly(Side.CLIENT) private IIcon iconTop; @SideOnly(Side.CLIENT) private IIcon iconBottom; @@ -22,7 +38,7 @@ public class DroneCrate extends BlockContainer { @Override public TileEntity createNewTileEntity(World world, int meta) { - return null; + return new TileEntityDroneCrate(); } @Override @@ -38,4 +54,62 @@ public class DroneCrate extends BlockContainer { public IIcon getIcon(int side, int metadata) { return side == 1 ? this.iconTop : (side == 0 ? this.iconBottom : this.blockIcon); } + + @Override + public void breakBlock(World world, int x, int y, int z, Block block, int meta) { + TileEntityDroneCrate tileentityfurnace = (TileEntityDroneCrate) world.getTileEntity(x, y, z); + + if(tileentityfurnace != null) { + for(int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1) { + ItemStack itemstack = tileentityfurnace.getStackInSlot(i1); + + if(itemstack != null) { + float f = this.rand.nextFloat() * 0.8F + 0.1F; + float f1 = this.rand.nextFloat() * 0.8F + 0.1F; + float f2 = this.rand.nextFloat() * 0.8F + 0.1F; + + while(itemstack.stackSize > 0) { + int j1 = this.rand.nextInt(21) + 10; + + if(j1 > itemstack.stackSize) { + j1 = itemstack.stackSize; + } + + itemstack.stackSize -= j1; + EntityItem entityitem = new EntityItem(world, x + f, y + f1, z + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); + + if(itemstack.hasTagCompound()) { + entityitem.getEntityItem().setTagCompound((NBTTagCompound) itemstack.getTagCompound().copy()); + } + + float f3 = 0.05F; + entityitem.motionX = (float) this.rand.nextGaussian() * f3; + entityitem.motionY = (float) this.rand.nextGaussian() * f3 + 0.2F; + entityitem.motionZ = (float) this.rand.nextGaussian() * f3; + world.spawnEntityInWorld(entityitem); + } + } + } + + world.func_147453_f(x, y, z, block); + } + + super.breakBlock(world, x, y, z, block, meta); + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + addStandardInfo(stack, player, list, ext); + } + + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + TileEntityDroneCrate tile = (TileEntityDroneCrate) world.getTileEntity(x, y, z); + List text = new ArrayList(); + + if(tile.nextY != -1) { + text.add("Next waypoint: " + tile.nextX + " / " + tile.nextY + " / " + tile.nextZ); + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } + } } diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 993af256b..40b91f1a4 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -393,6 +393,7 @@ public class TileMappings { put(TileEntityRadioTelex.class, "tileentity_rtty_telex"); put(TileEntityDroneWaypoint.class, "tileentity_drone_waypoint"); + put(TileEntityDroneCrate.class, "tileentity_drone_crate"); } private static void put(Class clazz, String... names) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java index 452a614e9..3c0893c5f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java @@ -25,7 +25,6 @@ import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChunkCoordinates; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -211,16 +210,16 @@ public class TileEntityMachineAssembler extends TileEntityMachineAssemblerBase { } @Override - public ChunkCoordinates[] getInputPositions() { + public DirPos[] getInputPositions() { ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - return new ChunkCoordinates[] {new ChunkCoordinates(xCoord - dir.offsetX * 3 + rot.offsetX, yCoord, zCoord - dir.offsetZ * 3 + rot.offsetZ)}; + return new DirPos[] {new DirPos(xCoord - dir.offsetX * 3 + rot.offsetX, yCoord, zCoord - dir.offsetZ * 3 + rot.offsetZ, dir.getOpposite())}; } @Override - public ChunkCoordinates[] getOutputPositions() { + public DirPos[] getOutputPositions() { ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); - return new ChunkCoordinates[] {new ChunkCoordinates(xCoord + dir.offsetX * 2, yCoord, zCoord + dir.offsetZ * 2)}; + return new DirPos[] {new DirPos(xCoord + dir.offsetX * 2, yCoord, zCoord + dir.offsetZ * 2, dir)}; } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemblerBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemblerBase.java index 5a4bdcbbd..b4bcd8648 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemblerBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemblerBase.java @@ -11,13 +11,13 @@ import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.tileentity.machine.storage.TileEntityCrateTemplate; import com.hbm.util.InventoryUtil; +import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IEnergyUser; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ChunkCoordinates; public abstract class TileEntityMachineAssemblerBase extends TileEntityMachineBase implements IEnergyUser, IGUIProvider { @@ -145,27 +145,29 @@ public abstract class TileEntityMachineAssemblerBase extends TileEntityMachineBa int template = getTemplateIndex(index); - ChunkCoordinates[] positions = getInputPositions(); + DirPos[] positions = getInputPositions(); int[] indices = getSlotIndicesFromIndex(index); - for(ChunkCoordinates coord : positions) { + for(DirPos coord : positions) { - TileEntity te = worldObj.getTileEntity(coord.posX, coord.posY, coord.posZ); + TileEntity te = worldObj.getTileEntity(coord.getX(), coord.getY(), coord.getZ()); if(te instanceof IInventory) { IInventory inv = (IInventory) te; ISidedInventory sided = inv instanceof ISidedInventory ? (ISidedInventory) inv : null; + int[] access = sided != null ? sided.getAccessibleSlotsFromSide(coord.getDir().ordinal()) : null; boolean templateCrate = te instanceof TileEntityCrateTemplate; if(templateCrate && slots[template] == null) { - for(int i = 0; i < inv.getSizeInventory(); i++) { - ItemStack stack = inv.getStackInSlot(i); + for(int i = 0; i < (access != null ? access.length : inv.getSizeInventory()); i++) { + int slot = access != null ? access[i] : i; + ItemStack stack = inv.getStackInSlot(slot); - if(stack != null && stack.getItem() == ModItems.assembly_template && (sided == null || sided.canExtractItem(i, stack, 0))) { + if(stack != null && stack.getItem() == ModItems.assembly_template && (sided == null || sided.canExtractItem(slot, stack, 0))) { slots[template] = stack.copy(); - sided.setInventorySlotContents(i, null); + sided.setInventorySlotContents(slot, null); this.needsTemplateSwitch[index] = false; break; } @@ -186,16 +188,17 @@ public abstract class TileEntityMachineAssemblerBase extends TileEntityMachineBa boolean found = false; - for(int i = 0; i < inv.getSizeInventory(); i++) { - - ItemStack stack = inv.getStackInSlot(i); - if(ingredient.matchesRecipe(stack, true) && (sided == null || sided.canExtractItem(i, stack, 0))) { + for(int i = 0; i < (access != null ? access.length : inv.getSizeInventory()); i++) { + + int slot = access != null ? access[i] : i; + ItemStack stack = inv.getStackInSlot(slot); + if(ingredient.matchesRecipe(stack, true) && (sided == null || sided.canExtractItem(slot, stack, 0))) { found = true; for(int j = indices[0]; j <= indices[1]; j++) { if(slots[j] != null && slots[j].stackSize < slots[j].getMaxStackSize() & InventoryUtil.doesStackDataMatch(slots[j], stack)) { - inv.decrStackSize(i, 1); + inv.decrStackSize(slot, 1); slots[j].stackSize++; continue outer; } @@ -206,7 +209,7 @@ public abstract class TileEntityMachineAssemblerBase extends TileEntityMachineBa if(slots[j] == null) { slots[j] = stack.copy(); slots[j].stackSize = 1; - inv.decrStackSize(i, 1); + inv.decrStackSize(slot, 1); continue outer; } } @@ -224,16 +227,18 @@ public abstract class TileEntityMachineAssemblerBase extends TileEntityMachineBa private void unloadItems(int index) { - ChunkCoordinates[] positions = getOutputPositions(); + DirPos[] positions = getOutputPositions(); int[] indices = getSlotIndicesFromIndex(index); - for(ChunkCoordinates coord : positions) { + for(DirPos coord : positions) { - TileEntity te = worldObj.getTileEntity(coord.posX, coord.posY, coord.posZ); + TileEntity te = worldObj.getTileEntity(coord.getX(), coord.getY(), coord.getZ()); if(te instanceof IInventory) { IInventory inv = (IInventory) te; + ISidedInventory sided = inv instanceof ISidedInventory ? (ISidedInventory) inv : null; + int[] access = sided != null ? sided.getAccessibleSlotsFromSide(coord.getDir().ordinal()) : null; int i = indices[2]; ItemStack out = slots[i]; @@ -246,12 +251,14 @@ public abstract class TileEntityMachineAssemblerBase extends TileEntityMachineBa if(out != null) { - for(int j = 0; j < inv.getSizeInventory(); j++) { + for(int j = 0; j < (access != null ? access.length : inv.getSizeInventory()); j++) { + + int slot = access != null ? access[j] : j; - if(!inv.isItemValidForSlot(j, out)) + if(!(sided != null ? sided.canInsertItem(slot, out, coord.getDir().ordinal()) : inv.isItemValidForSlot(slot, out))) continue; - ItemStack target = inv.getStackInSlot(j); + ItemStack target = inv.getStackInSlot(slot); if(InventoryUtil.doesStackDataMatch(out, target) && target.stackSize < target.getMaxStackSize() && target.stackSize < inv.getInventoryStackLimit()) { this.decrStackSize(i, 1); @@ -260,15 +267,17 @@ public abstract class TileEntityMachineAssemblerBase extends TileEntityMachineBa } } - for(int j = 0; j < inv.getSizeInventory(); j++) { + for(int j = 0; j < (access != null ? access.length : inv.getSizeInventory()); j++) { + + int slot = access != null ? access[j] : j; - if(!inv.isItemValidForSlot(j, out)) + if(!inv.isItemValidForSlot(slot, out)) continue; - if(inv.getStackInSlot(j) == null && inv.isItemValidForSlot(j, out)) { + if(inv.getStackInSlot(slot) == null && (sided != null ? sided.canInsertItem(slot, out, coord.getDir().ordinal()) : inv.isItemValidForSlot(slot, out))) { ItemStack copy = out.copy(); copy.stackSize = 1; - inv.setInventorySlotContents(j, copy); + inv.setInventorySlotContents(slot, copy); this.decrStackSize(i, 1); return; } @@ -296,7 +305,7 @@ public abstract class TileEntityMachineAssemblerBase extends TileEntityMachineBa * @return A size 3 int array containing min input, max input and output indices in that order. */ public abstract int[] getSlotIndicesFromIndex(int index); - public abstract ChunkCoordinates[] getInputPositions(); - public abstract ChunkCoordinates[] getOutputPositions(); + public abstract DirPos[] getInputPositions(); + public abstract DirPos[] getOutputPositions(); public abstract int getPowerSlot(); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java index a7f8b6f1e..407c74ad6 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java @@ -21,7 +21,6 @@ import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChunkCoordinates; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -351,11 +350,11 @@ public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase im return new int[] { 5 + index * 14, 16 + index * 14, 18 + index * 14}; } - ChunkCoordinates[] inpos; - ChunkCoordinates[] outpos; + DirPos[] inpos; + DirPos[] outpos; @Override - public ChunkCoordinates[] getInputPositions() { + public DirPos[] getInputPositions() { if(inpos != null) return inpos; @@ -363,18 +362,18 @@ public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase im ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - inpos = new ChunkCoordinates[] { - new ChunkCoordinates(xCoord + dir.offsetX * 4 - rot.offsetX * 1, yCoord, zCoord + dir.offsetZ * 4 - rot.offsetZ * 1), - new ChunkCoordinates(xCoord - dir.offsetX * 5 + rot.offsetX * 2, yCoord, zCoord - dir.offsetZ * 5 + rot.offsetZ * 2), - new ChunkCoordinates(xCoord - dir.offsetX * 2 - rot.offsetX * 4, yCoord, zCoord - dir.offsetZ * 2 - rot.offsetZ * 4), - new ChunkCoordinates(xCoord + dir.offsetX * 1 + rot.offsetX * 5, yCoord, zCoord + dir.offsetZ * 1 + rot.offsetZ * 5) + inpos = new DirPos[] { + new DirPos(xCoord + dir.offsetX * 4 - rot.offsetX * 1, yCoord, zCoord + dir.offsetZ * 4 - rot.offsetZ * 1, dir), + new DirPos(xCoord - dir.offsetX * 5 + rot.offsetX * 2, yCoord, zCoord - dir.offsetZ * 5 + rot.offsetZ * 2, dir.getOpposite()), + new DirPos(xCoord - dir.offsetX * 2 - rot.offsetX * 4, yCoord, zCoord - dir.offsetZ * 2 - rot.offsetZ * 4, rot.getOpposite()), + new DirPos(xCoord + dir.offsetX * 1 + rot.offsetX * 5, yCoord, zCoord + dir.offsetZ * 1 + rot.offsetZ * 5, rot) }; return inpos; } @Override - public ChunkCoordinates[] getOutputPositions() { + public DirPos[] getOutputPositions() { if(outpos != null) return outpos; @@ -382,11 +381,11 @@ public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase im ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - outpos = new ChunkCoordinates[] { - new ChunkCoordinates(xCoord + dir.offsetX * 4 + rot.offsetX * 2, yCoord, zCoord + dir.offsetZ * 4 + rot.offsetZ * 2), - new ChunkCoordinates(xCoord - dir.offsetX * 5 - rot.offsetX * 1, yCoord, zCoord - dir.offsetZ * 5 - rot.offsetZ * 1), - new ChunkCoordinates(xCoord + dir.offsetX * 1 - rot.offsetX * 4, yCoord, zCoord + dir.offsetZ * 1 - rot.offsetZ * 4), - new ChunkCoordinates(xCoord - dir.offsetX * 2 + rot.offsetX * 5, yCoord, zCoord - dir.offsetZ * 2 + rot.offsetZ * 5) + outpos = new DirPos[] { + new DirPos(xCoord + dir.offsetX * 4 + rot.offsetX * 2, yCoord, zCoord + dir.offsetZ * 4 + rot.offsetZ * 2, dir), + new DirPos(xCoord - dir.offsetX * 5 - rot.offsetX * 1, yCoord, zCoord - dir.offsetZ * 5 - rot.offsetZ * 1, dir.getOpposite()), + new DirPos(xCoord + dir.offsetX * 1 - rot.offsetX * 4, yCoord, zCoord + dir.offsetZ * 1 - rot.offsetZ * 4, rot.getOpposite()), + new DirPos(xCoord - dir.offsetX * 2 + rot.offsetX * 5, yCoord, zCoord - dir.offsetZ * 2 + rot.offsetZ * 5, rot) }; return outpos; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java index 539ea2f42..3f7413677 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java @@ -23,7 +23,6 @@ import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChunkCoordinates; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -234,11 +233,11 @@ public class TileEntityMachineChemfac extends TileEntityMachineChemplantBase { return new int[] {5 + index * 9, 8 + index * 9, 9 + index * 9, 12 + index * 9}; } - ChunkCoordinates[] inpos; - ChunkCoordinates[] outpos; + DirPos[] inpos; + DirPos[] outpos; @Override - public ChunkCoordinates[] getInputPositions() { + public DirPos[] getInputPositions() { if(inpos != null) return inpos; @@ -246,18 +245,18 @@ public class TileEntityMachineChemfac extends TileEntityMachineChemplantBase { ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - inpos = new ChunkCoordinates[] { - new ChunkCoordinates(xCoord + dir.offsetX * 4 - rot.offsetX * 1, yCoord, zCoord + dir.offsetZ * 4 - rot.offsetZ * 1), - new ChunkCoordinates(xCoord - dir.offsetX * 5 + rot.offsetX * 2, yCoord, zCoord - dir.offsetZ * 5 + rot.offsetZ * 2), - new ChunkCoordinates(xCoord - dir.offsetX * 2 - rot.offsetX * 4, yCoord, zCoord - dir.offsetZ * 2 - rot.offsetZ * 4), - new ChunkCoordinates(xCoord + dir.offsetX * 1 + rot.offsetX * 5, yCoord, zCoord + dir.offsetZ * 1 + rot.offsetZ * 5) + inpos = new DirPos[] { + new DirPos(xCoord + dir.offsetX * 4 - rot.offsetX * 1, yCoord, zCoord + dir.offsetZ * 4 - rot.offsetZ * 1, dir), + new DirPos(xCoord - dir.offsetX * 5 + rot.offsetX * 2, yCoord, zCoord - dir.offsetZ * 5 + rot.offsetZ * 2, dir.getOpposite()), + new DirPos(xCoord - dir.offsetX * 2 - rot.offsetX * 4, yCoord, zCoord - dir.offsetZ * 2 - rot.offsetZ * 4, rot.getOpposite()), + new DirPos(xCoord + dir.offsetX * 1 + rot.offsetX * 5, yCoord, zCoord + dir.offsetZ * 1 + rot.offsetZ * 5, rot) }; return inpos; } @Override - public ChunkCoordinates[] getOutputPositions() { + public DirPos[] getOutputPositions() { if(outpos != null) return outpos; @@ -265,11 +264,11 @@ public class TileEntityMachineChemfac extends TileEntityMachineChemplantBase { ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - outpos = new ChunkCoordinates[] { - new ChunkCoordinates(xCoord + dir.offsetX * 4 + rot.offsetX * 2, yCoord, zCoord + dir.offsetZ * 4 + rot.offsetZ * 2), - new ChunkCoordinates(xCoord - dir.offsetX * 5 - rot.offsetX * 1, yCoord, zCoord - dir.offsetZ * 5 - rot.offsetZ * 1), - new ChunkCoordinates(xCoord + dir.offsetX * 1 - rot.offsetX * 4, yCoord, zCoord + dir.offsetZ * 1 - rot.offsetZ * 4), - new ChunkCoordinates(xCoord - dir.offsetX * 2 + rot.offsetX * 5, yCoord, zCoord - dir.offsetZ * 2 + rot.offsetZ * 5) + outpos = new DirPos[] { + new DirPos(xCoord + dir.offsetX * 4 + rot.offsetX * 2, yCoord, zCoord + dir.offsetZ * 4 + rot.offsetZ * 2, dir), + new DirPos(xCoord - dir.offsetX * 5 - rot.offsetX * 1, yCoord, zCoord - dir.offsetZ * 5 - rot.offsetZ * 1, dir.getOpposite()), + new DirPos(xCoord + dir.offsetX * 1 - rot.offsetX * 4, yCoord, zCoord + dir.offsetZ * 1 - rot.offsetZ * 4, rot.getOpposite()), + new DirPos(xCoord - dir.offsetX * 2 + rot.offsetX * 5, yCoord, zCoord - dir.offsetZ * 2 + rot.offsetZ * 5, rot) }; return outpos; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java index 3a14f536b..edc19ee83 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java @@ -363,6 +363,7 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements IInventory inv = (IInventory) te; ISidedInventory sided = inv instanceof ISidedInventory ? (ISidedInventory) inv : null; + int[] access = sided != null ? sided.getAccessibleSlotsFromSide(dir.ordinal()) : null; for(AStack ingredient : recipe.inputs) { @@ -371,15 +372,17 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements boolean found = false; - for(int i = 0; i < inv.getSizeInventory(); i++) { + for(int i = 0; i < (access != null ? access.length : inv.getSizeInventory()); i++) { + + int slot = access != null ? access[i] : i; + ItemStack stack = inv.getStackInSlot(slot); - ItemStack stack = inv.getStackInSlot(i); - if(ingredient.matchesRecipe(stack, true) && (sided == null || sided.canExtractItem(i, stack, 0))) { + if(ingredient.matchesRecipe(stack, true) && (sided == null || sided.canExtractItem(slot, stack, 0))) { for(int j = 13; j <= 16; j++) { if(slots[j] != null && slots[j].stackSize < slots[j].getMaxStackSize() & InventoryUtil.doesStackDataMatch(slots[j], stack)) { - inv.decrStackSize(i, 1); + inv.decrStackSize(slot, 1); slots[j].stackSize++; continue outer; } @@ -390,7 +393,7 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements if(slots[j] == null) { slots[j] = stack.copy(); slots[j].stackSize = 1; - inv.decrStackSize(i, 1); + inv.decrStackSize(slot, 1); continue outer; } } @@ -417,6 +420,8 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements if(te instanceof IInventory) { IInventory inv = (IInventory) te; + ISidedInventory sided = inv instanceof ISidedInventory ? (ISidedInventory) inv : null; + int[] access = sided != null ? sided.getAccessibleSlotsFromSide(dir.ordinal()) : null; for(int i = 5; i <= 8; i++) { @@ -424,12 +429,14 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements if(out != null) { - for(int j = 0; j < inv.getSizeInventory(); j++) { + for(int j = 0; j < (access != null ? access.length : inv.getSizeInventory()); j++) { + + int slot = access != null ? access[j] : j; - if(!inv.isItemValidForSlot(j, out)) + if(!inv.isItemValidForSlot(slot, out)) continue; - ItemStack target = inv.getStackInSlot(j); + ItemStack target = inv.getStackInSlot(slot); if(InventoryUtil.doesStackDataMatch(out, target) && target.stackSize < target.getMaxStackSize()) { this.decrStackSize(i, 1); @@ -438,15 +445,17 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements } } - for(int j = 0; j < inv.getSizeInventory(); j++) { + for(int j = 0; j < (access != null ? access.length : inv.getSizeInventory()); j++) { + + int slot = access != null ? access[j] : j; - if(!inv.isItemValidForSlot(j, out)) + if(!inv.isItemValidForSlot(slot, out)) continue; - if(inv.getStackInSlot(j) == null && inv.isItemValidForSlot(j, out)) { + if(inv.getStackInSlot(slot) == null && (sided != null ? sided.canInsertItem(slot, out, dir.ordinal()) : inv.isItemValidForSlot(slot, out))) { ItemStack copy = out.copy(); copy.stackSize = 1; - inv.setInventorySlotContents(j, copy); + inv.setInventorySlotContents(slot, copy); this.decrStackSize(i, 1); return; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java index 5363c7e9e..129a665fd 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java @@ -14,6 +14,7 @@ import com.hbm.lib.Library; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.InventoryUtil; +import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IEnergyUser; import api.hbm.fluid.IFluidUser; @@ -22,7 +23,6 @@ import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ChunkCoordinates; /** * Base class for single and multi chemplants. @@ -202,17 +202,18 @@ public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBa if(recipe != null) { - ChunkCoordinates[] positions = getInputPositions(); + DirPos[] positions = getInputPositions(); int[] indices = getSlotIndicesFromIndex(index); - for(ChunkCoordinates coord : positions) { - - TileEntity te = worldObj.getTileEntity(coord.posX, coord.posY, coord.posZ); + for(DirPos coord : positions) { + + TileEntity te = worldObj.getTileEntity(coord.getX(), coord.getY(), coord.getZ()); if(te instanceof IInventory) { IInventory inv = (IInventory) te; ISidedInventory sided = inv instanceof ISidedInventory ? (ISidedInventory) inv : null; + int[] access = sided != null ? sided.getAccessibleSlotsFromSide(coord.getDir().ordinal()) : null; for(AStack ingredient : recipe.inputs) { @@ -221,15 +222,16 @@ public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBa boolean found = false; - for(int i = 0; i < inv.getSizeInventory(); i++) { - - ItemStack stack = inv.getStackInSlot(i); - if(ingredient.matchesRecipe(stack, true) && (sided == null || sided.canExtractItem(i, stack, 0))) { + for(int i = 0; i < (access != null ? access.length : inv.getSizeInventory()); i++) { + + int slot = access != null ? access[i] : i; + ItemStack stack = inv.getStackInSlot(slot); + if(ingredient.matchesRecipe(stack, true) && (sided == null || sided.canExtractItem(slot, stack, 0))) { for(int j = indices[0]; j <= indices[1]; j++) { if(slots[j] != null && slots[j].stackSize < slots[j].getMaxStackSize() & InventoryUtil.doesStackDataMatch(slots[j], stack)) { - inv.decrStackSize(i, 1); + inv.decrStackSize(slot, 1); slots[j].stackSize++; continue outer; } @@ -240,7 +242,7 @@ public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBa if(slots[j] == null) { slots[j] = stack.copy(); slots[j].stackSize = 1; - inv.decrStackSize(i, 1); + inv.decrStackSize(slot, 1); continue outer; } } @@ -257,17 +259,18 @@ public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBa private void unloadItems(int index) { - ChunkCoordinates[] positions = getOutputPositions(); + DirPos[] positions = getOutputPositions(); int[] indices = getSlotIndicesFromIndex(index); - for(ChunkCoordinates coord : positions) { - - TileEntity te = worldObj.getTileEntity(coord.posX, coord.posY, coord.posZ); + for(DirPos coord : positions) { + + TileEntity te = worldObj.getTileEntity(coord.getX(), coord.getY(), coord.getZ()); if(te instanceof IInventory) { IInventory inv = (IInventory) te; - //ISidedInventory sided = inv instanceof ISidedInventory ? (ISidedInventory) inv : null; + ISidedInventory sided = inv instanceof ISidedInventory ? (ISidedInventory) inv : null; + int[] access = sided != null ? sided.getAccessibleSlotsFromSide(coord.getDir().ordinal()) : null; for(int i = indices[2]; i <= indices[3]; i++) { @@ -275,12 +278,14 @@ public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBa if(out != null) { - for(int j = 0; j < inv.getSizeInventory(); j++) { + for(int j = 0; j < (access != null ? access.length : inv.getSizeInventory()); j++) { + + int slot = access != null ? access[j] : j; - if(!inv.isItemValidForSlot(j, out)) + if(!inv.isItemValidForSlot(slot, out)) continue; - ItemStack target = inv.getStackInSlot(j); + ItemStack target = inv.getStackInSlot(slot); if(InventoryUtil.doesStackDataMatch(out, target) && target.stackSize < target.getMaxStackSize() && target.stackSize < inv.getInventoryStackLimit()) { this.decrStackSize(i, 1); @@ -289,15 +294,17 @@ public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBa } } - for(int j = 0; j < inv.getSizeInventory(); j++) { + for(int j = 0; j < (access != null ? access.length : inv.getSizeInventory()); j++) { + + int slot = access != null ? access[j] : j; - if(!inv.isItemValidForSlot(j, out)) + if(!inv.isItemValidForSlot(slot, out)) continue; - if(inv.getStackInSlot(j) == null && inv.isItemValidForSlot(j, out)) { + if(inv.getStackInSlot(slot) == null && (sided != null ? sided.canInsertItem(slot, out, coord.getDir().ordinal()) : inv.isItemValidForSlot(slot, out))) { ItemStack copy = out.copy(); copy.stackSize = 1; - inv.setInventorySlotContents(j, copy); + inv.setInventorySlotContents(slot, copy); this.decrStackSize(i, 1); return; } @@ -585,6 +592,6 @@ public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBa * @return A size 4 int array containing min input, max input, min output and max output indices in that order. */ public abstract int[] getSlotIndicesFromIndex(int index); - public abstract ChunkCoordinates[] getInputPositions(); - public abstract ChunkCoordinates[] getOutputPositions(); + public abstract DirPos[] getInputPositions(); + public abstract DirPos[] getOutputPositions(); } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityDroneCrate.java b/src/main/java/com/hbm/tileentity/network/TileEntityDroneCrate.java new file mode 100644 index 000000000..1fbad4f7d --- /dev/null +++ b/src/main/java/com/hbm/tileentity/network/TileEntityDroneCrate.java @@ -0,0 +1,88 @@ +package com.hbm.tileentity.network; + +import java.util.List; + +import com.hbm.entity.item.EntityDeliveryDrone; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.INBTPacketReceiver; +import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public class TileEntityDroneCrate extends TileEntityMachineBase implements IGUIProvider, INBTPacketReceiver, IDroneLinkable { + + public int nextX = -1; + public int nextY = -1; + public int nextZ = -1; + + public TileEntityDroneCrate() { + super(19); + } + + @Override + public String getName() { + return "container.droneCrate"; + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + if(nextY != -1) { + + List drones = worldObj.getEntitiesWithinAABB(EntityDeliveryDrone.class, AxisAlignedBB.getBoundingBox(xCoord, yCoord + 1, zCoord, xCoord + 1, yCoord + 2, zCoord + 1)); + for(EntityDeliveryDrone drone : drones) { + if(Vec3.createVectorHelper(drone.motionX, drone.motionY, drone.motionZ).lengthVector() < 0.05) { + drone.setTarget(nextX + 0.5, nextY, nextZ + 0.5); + } + } + } + + NBTTagCompound data = new NBTTagCompound(); + data.setIntArray("pos", new int[] {nextX, nextY, nextZ}); + INBTPacketReceiver.networkPack(this, data, 25); + } + } + + @Override + public BlockPos getPoint() { + return new BlockPos(xCoord, yCoord + 1, zCoord); + } + + @Override + public void setNextTarget(int x, int y, int z) { + this.nextX = x; + this.nextY = y; + this.nextZ = z; + this.markDirty(); + } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + int[] pos = nbt.getIntArray("pos"); + this.nextX = pos[0]; + this.nextY = pos[1]; + this.nextZ = pos[2]; + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return null; + } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return null; + } +} diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityDroneWaypoint.java b/src/main/java/com/hbm/tileentity/network/TileEntityDroneWaypoint.java index 073562a08..8476fef96 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityDroneWaypoint.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityDroneWaypoint.java @@ -30,7 +30,7 @@ public class TileEntityDroneWaypoint extends TileEntity implements INBTPacketRec List drones = worldObj.getEntitiesWithinAABB(EntityDeliveryDrone.class, AxisAlignedBB.getBoundingBox(xCoord, yCoord, zCoord, xCoord + 1, yCoord + 1, zCoord + 1).offset(dir.offsetX * height, dir.offsetY * height, dir.offsetZ * height)); for(EntityDeliveryDrone drone : drones) { if(Vec3.createVectorHelper(drone.motionX, drone.motionY, drone.motionZ).lengthVector() < 0.05) { - drone.setTarget(nextX + 0.5, nextY + 0.5, nextZ + 0.5); + drone.setTarget(nextX + 0.5, nextY, nextZ + 0.5); } } } diff --git a/src/main/resources/assets/hbm/textures/models/machines/drone.png b/src/main/resources/assets/hbm/textures/models/machines/drone.png index c264733bd5aed8568681f45230db1c4fa53df8c6..56d1e7312ed1159a4d699f2efe572c103a39d04f 100644 GIT binary patch delta 2724 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 Date: Wed, 20 Sep 2023 16:27:52 +0200 Subject: [PATCH 313/432] the malicious gigglefish from the silly dimension --- .../machine/TileEntityFurnaceCombination.java | 3 +-- .../machine/TileEntityMachineDetector.java | 5 +++++ .../assets/hbm/textures/items/ingot_cft.png | Bin 0 -> 356 bytes .../hbm/textures/items/ingot_crystalline.png | Bin 0 -> 346 bytes .../hbm/textures/models/machines/pump.png | Bin 937 -> 0 bytes .../models/machines/pump_electric.png | Bin 5288 -> 6022 bytes .../textures/models/machines/pump_steam.png | Bin 8373 -> 8963 bytes 7 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/items/ingot_cft.png create mode 100644 src/main/resources/assets/hbm/textures/items/ingot_crystalline.png delete mode 100644 src/main/resources/assets/hbm/textures/models/machines/pump.png diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceCombination.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceCombination.java index de325d440..4b6c42214 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceCombination.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceCombination.java @@ -122,9 +122,8 @@ public class TileEntityFurnaceCombination extends TileEntityMachinePolluting imp for(Entity e : entities) e.setFire(5); if(worldObj.getTotalWorldTime() % 10 == 0) this.worldObj.playSoundEffect(this.xCoord, this.yCoord + 1, this.zCoord, "hbm:weapon.flamethrowerShoot", 0.25F, 0.5F); + if(worldObj.getTotalWorldTime() % 20 == 0) this.pollute(PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * 3); } - - if(worldObj.getTotalWorldTime() % 20 == 0) this.pollute(PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * 3); } else { this.progress = 0; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDetector.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDetector.java index e71df5eab..8f62d9f47 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDetector.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDetector.java @@ -52,4 +52,9 @@ public class TileEntityMachineDetector extends TileEntityLoadedBase implements I return 5; } + @Override + public ConnectionPriority getPriority() { + return ConnectionPriority.HIGH; + } + } diff --git a/src/main/resources/assets/hbm/textures/items/ingot_cft.png b/src/main/resources/assets/hbm/textures/items/ingot_cft.png new file mode 100644 index 0000000000000000000000000000000000000000..9346dbb5ab25457a3d44653425ac35b27a6d84fc GIT binary patch literal 356 zcmV-q0h|7bP)~OJ^tJR9*@p$+0;c!qriXzpAVW6&SX#>=CO%Mc1 zqC>v#tDa>UZQB|P)F0$|P8`PwAq*(bbDE|BV7J@dywLc>i$sS2*6X$Ep65Ll00<#y zn#O?i?Du;^@}dumqPW@kNa8ro?+b(wBuT<#GWin%IGs-PeGfp_b#&W}Wq*HtT1;mW zxGT{ifNs07^tlb7OUkkwh4dJM*Xc~2&*xF-U-JV+&X*_Bqmk(V0000V>O z0s+&cvC`RM$uN_cwORJ7KIWhI{$b$1B7{&v2=#jIZb8qUrYUXP0;oLCosWW7Xt&$x zS=+Y6acoK4Eod#K#1%rQEX%mx@2i)`an${AIOsmlGhNpy7oh7p!Z6el6AFSr_tWXb zFbviL{Rc%+kR%CGN((BAg1+woxLhu8FSI`KDKQ~{x~_HK@Asbt08&c&zPBJV*Xz}i ze3`?tEZ;VMl6ao?^8zU)$Kw&-_kV=|rfK5wcmQy_-DsM|ajU9wq9{_ps>Fl@2l@m+&%kmUAr-}@L8Ui*RL*0l^QbJntrzXRbkC* zdgg%h&UxqMrwPCIS@zjT@NK}E16$`wKQ{Wdy6nKgIdY8GZ+&%*{%;tnqnH(Ide;8h z!P#ebEjwdXy=N*=XXG)9%w^Z%{^dVzCB29w&XhE6pYvo?Y4XsDpZ%cGw0htFt?!?fl=j}N-*fT3WBcQpgd43$ z4h1vketn;QH}vh_Bgw1({))V6FJE#0_aQ7kjruCLqV|E6_5J;~_wQR<{qOdv*V*&` z7YBd;pU;L8B4ATP=W}1=Gw4XZX8-=%g>4q`+p}u6-(O}reR}!bUk~TbpTEBL|Lkwq zZ+*<)b&m%T(%`@V2DmBg^(5F8flio@ey#$FVdlUi{1Y YwPeA@?T22)0rMV%r>mdKI;Vst0NcpNCIA2c diff --git a/src/main/resources/assets/hbm/textures/models/machines/pump_electric.png b/src/main/resources/assets/hbm/textures/models/machines/pump_electric.png index a54bf774f55e4649122361e85fcc9aae682aaf13..ca6baef2d874f9f3ef64ae5c169f8f5e95f51609 100644 GIT binary patch literal 6022 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 literal 5288 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 From b1dd1407375761d46cb94b24d76cd7cd6a5d3d07 Mon Sep 17 00:00:00 2001 From: Boblet Date: Thu, 21 Sep 2023 15:30:32 +0200 Subject: [PATCH 314/432] loading dock for drones --- .../com/hbm/blocks/network/DroneCrate.java | 14 ++ .../hbm/entity/item/EntityDeliveryDrone.java | 133 +++++++++++- .../container/ContainerDroneCrate.java | 79 +++++++ .../com/hbm/inventory/gui/GUIDroneCrate.java | 75 +++++++ .../item/RenderDeliveryDrone.java | 17 +- .../network/TileEntityDroneCrate.java | 193 +++++++++++++++++- .../network/TileEntityDroneWaypoint.java | 26 ++- .../hbm/textures/items/delivery_drone.png | Bin 0 -> 267 bytes 8 files changed, 514 insertions(+), 23 deletions(-) create mode 100644 src/main/java/com/hbm/inventory/container/ContainerDroneCrate.java create mode 100644 src/main/java/com/hbm/inventory/gui/GUIDroneCrate.java rename src/main/java/com/hbm/render/{ => entity}/item/RenderDeliveryDrone.java (55%) create mode 100644 src/main/resources/assets/hbm/textures/items/delivery_drone.png diff --git a/src/main/java/com/hbm/blocks/network/DroneCrate.java b/src/main/java/com/hbm/blocks/network/DroneCrate.java index 02180bfbd..bd82c8d20 100644 --- a/src/main/java/com/hbm/blocks/network/DroneCrate.java +++ b/src/main/java/com/hbm/blocks/network/DroneCrate.java @@ -7,9 +7,11 @@ import java.util.Random; import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.ITooltipProvider; import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; import com.hbm.tileentity.network.TileEntityDroneCrate; import com.hbm.util.I18nUtil; +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; @@ -54,6 +56,18 @@ public class DroneCrate extends BlockContainer implements ILookOverlay, ITooltip public IIcon getIcon(int side, int metadata) { return side == 1 ? this.iconTop : (side == 0 ? this.iconBottom : this.blockIcon); } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if(world.isRemote) { + return true; + } else if(!player.isSneaking()) { + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); + return true; + } else { + return false; + } + } @Override public void breakBlock(World world, int x, int y, int z, Block block, int meta) { diff --git a/src/main/java/com/hbm/entity/item/EntityDeliveryDrone.java b/src/main/java/com/hbm/entity/item/EntityDeliveryDrone.java index f8b50012d..d63dd43d3 100644 --- a/src/main/java/com/hbm/entity/item/EntityDeliveryDrone.java +++ b/src/main/java/com/hbm/entity/item/EntityDeliveryDrone.java @@ -1,14 +1,20 @@ package com.hbm.entity.item; +import com.hbm.inventory.FluidStack; +import com.hbm.inventory.fluid.Fluids; + import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; import net.minecraft.util.Vec3; import net.minecraft.world.World; -public class EntityDeliveryDrone extends Entity { +public class EntityDeliveryDrone extends Entity implements IInventory { protected int turnProgress; protected double syncPosX; @@ -17,6 +23,9 @@ public class EntityDeliveryDrone extends Entity { @SideOnly(Side.CLIENT) protected double velocityX; @SideOnly(Side.CLIENT) protected double velocityY; @SideOnly(Side.CLIENT) protected double velocityZ; + + protected ItemStack[] slots = new ItemStack[this.getSizeInventory()]; + public FluidStack fluid; public double targetX = -1; public double targetY = -1; @@ -60,7 +69,20 @@ public class EntityDeliveryDrone extends Entity { @Override protected void entityInit() { - this.dataWatcher.addObject(10, new Integer(0)); + this.dataWatcher.addObject(10, new Byte((byte) 0)); + } + + /** + * 0: Empty
    + * 1: Crate
    + * 2: Barrel
    + */ + public void setAppearance(int style) { + this.dataWatcher.updateObject(10, (byte) style); + } + + public int getAppearance() { + return this.dataWatcher.getWatchableObjectByte(10); } @Override @@ -107,15 +129,57 @@ public class EntityDeliveryDrone extends Entity { public double getSpeed() { return 0.125D; } - + @Override - protected void readEntityFromNBT(NBTTagCompound p_70037_1_) { + protected void writeEntityToNBT(NBTTagCompound nbt) { + + nbt.setDouble("tX", targetX); + nbt.setDouble("tY", targetY); + nbt.setDouble("tZ", targetZ); + NBTTagList nbttaglist = new NBTTagList(); + + for(int i = 0; i < this.slots.length; ++i) { + if(this.slots[i] != null) { + NBTTagCompound nbttagcompound1 = new NBTTagCompound(); + nbttagcompound1.setByte("Slot", (byte) i); + this.slots[i].writeToNBT(nbttagcompound1); + nbttaglist.appendTag(nbttagcompound1); + } + } + + nbt.setTag("Items", nbttaglist); + + if(fluid != null) { + nbt.setString("fluidType", fluid.type.getUnlocalizedName()); + nbt.setInteger("fluidAmount", fluid.fill); + } } @Override - protected void writeEntityToNBT(NBTTagCompound p_70014_1_) { + protected void readEntityFromNBT(NBTTagCompound nbt) { + + if(nbt.hasKey("tY")) { + this.targetX = nbt.getDouble("tX"); + this.targetY = nbt.getDouble("tY"); + this.targetZ = nbt.getDouble("tZ"); + } + NBTTagList nbttaglist = nbt.getTagList("Items", 10); + this.slots = new ItemStack[this.getSizeInventory()]; + + for(int i = 0; i < nbttaglist.tagCount(); ++i) { + NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i); + int j = nbttagcompound1.getByte("Slot") & 255; + + if(j >= 0 && j < this.slots.length) { + this.slots[j] = ItemStack.loadItemStackFromNBT(nbttagcompound1); + } + } + + if(nbt.hasKey("fluidType")) { + this.fluid = new FluidStack(Fluids.fromName(nbt.getString("fluidType")), nbt.getInteger("fluidAmount")); + } } @SideOnly(Side.CLIENT) @@ -135,4 +199,63 @@ public class EntityDeliveryDrone extends Entity { this.motionY = this.velocityY; this.motionZ = this.velocityZ; } + + @Override + public ItemStack getStackInSlot(int slot) { + return slots[slot]; + } + + @Override + public ItemStack decrStackSize(int slot, int amount) { + if(this.slots[slot] != null) { + ItemStack itemstack; + + if(this.slots[slot].stackSize <= amount) { + itemstack = this.slots[slot]; + this.slots[slot] = null; + return itemstack; + } else { + itemstack = this.slots[slot].splitStack(amount); + + if(this.slots[slot].stackSize == 0) { + this.slots[slot] = null; + } + + return itemstack; + } + } else { + return null; + } + } + + @Override + public ItemStack getStackInSlotOnClosing(int slot) { + if(this.slots[slot] != null) { + ItemStack itemstack = this.slots[slot]; + this.slots[slot] = null; + return itemstack; + } else { + return null; + } + } + + @Override + public void setInventorySlotContents(int slot, ItemStack stack) { + this.slots[slot] = stack; + + if(stack != null && stack.stackSize > this.getInventoryStackLimit()) { + stack.stackSize = this.getInventoryStackLimit(); + } + } + + @Override public int getSizeInventory() { return 18; } + @Override public String getInventoryName() { return "container.drone"; } + @Override public int getInventoryStackLimit() { return 64; } + @Override public boolean hasCustomInventoryName() { return false; } + @Override public boolean isUseableByPlayer(EntityPlayer player) { return false; } + @Override public boolean isItemValidForSlot(int slot, ItemStack stack) { return false; } + + @Override public void markDirty() { } + @Override public void openInventory() { } + @Override public void closeInventory() { } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerDroneCrate.java b/src/main/java/com/hbm/inventory/container/ContainerDroneCrate.java new file mode 100644 index 000000000..cf9338763 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerDroneCrate.java @@ -0,0 +1,79 @@ +package com.hbm.inventory.container; + +import com.hbm.items.machine.IItemFluidIdentifier; +import com.hbm.tileentity.network.TileEntityDroneCrate; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerDroneCrate extends Container { + + protected TileEntityDroneCrate crate; + + public ContainerDroneCrate(InventoryPlayer invPlayer, TileEntityDroneCrate inserter) { + this.crate = inserter; + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 6; j++) { + this.addSlotToContainer(new Slot(inserter, j + i * 6, 8 + j * 18, 17 + i * 18)); + } + } + + this.addSlotToContainer(new Slot(inserter, 18, 125, 53)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 103 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 161)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int slot) { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(slot); + + if(var4 != null && var4.getHasStack()) { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if(slot <= crate.getSizeInventory() - 1) { + if(!this.mergeItemStack(var5, crate.getSizeInventory(), this.inventorySlots.size(), true)) { + return null; + } + } else { + + if(var3.getItem() instanceof IItemFluidIdentifier) { + if(!this.mergeItemStack(var5, 18, 19, false)) + return null; + } else if(!this.mergeItemStack(var5, 0, 18, false)) { + return null; + } + + return null; + } + + if(var5.stackSize == 0) { + var4.putStack((ItemStack) null); + } else { + var4.onSlotChanged(); + } + + var4.onPickupFromSlot(player, var5); + } + + return var3; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return crate.isUseableByPlayer(player); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIDroneCrate.java b/src/main/java/com/hbm/inventory/gui/GUIDroneCrate.java new file mode 100644 index 000000000..cd99405b4 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIDroneCrate.java @@ -0,0 +1,75 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerDroneCrate; +import com.hbm.lib.RefStrings; +import com.hbm.packet.NBTControlPacket; +import com.hbm.packet.PacketDispatcher; +import com.hbm.tileentity.network.TileEntityDroneCrate; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ResourceLocation; + +public class GUIDroneCrate extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/storage/gui_crate_drone.png"); + private TileEntityDroneCrate crate; + + public GUIDroneCrate(InventoryPlayer invPlayer, TileEntityDroneCrate crate) { + super(new ContainerDroneCrate(invPlayer, crate)); + this.crate = crate; + + this.xSize = 176; + this.ySize = 185; + } + + @Override + public void drawScreen(int x, int y, float interp) { + super.drawScreen(x, y, interp); + + crate.tank.renderTankInfo(this, x, y, guiLeft + 125, guiTop + 17, 16, 34); + } + + @Override + protected void mouseClicked(int x, int y, int i) { + super.mouseClicked(x, y, i); + + String op = null; + + // Toggle type + if(guiLeft + 151 <= x && guiLeft + 151 + 18 > x && guiTop + 16 < y && guiTop + 16 + 18 >= y) op = "type"; + // Toggle mode + if(guiLeft + 151 <= x && guiLeft + 151 + 18 > x && guiTop + 52 < y && guiTop + 52 + 18 >= y) op = "mode"; + + if(op != null) { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + data.setBoolean(op, true); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, crate.xCoord, crate.yCoord, crate.zCoord)); + } + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.crate.hasCustomInventoryName() ? this.crate.getInventoryName() : I18n.format(this.crate.getInventoryName()); + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float interp, int x, int y) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + drawTexturedModalRect(guiLeft + 151, guiTop + 16, 194, crate.itemType ? 0 : 18, 18, 18); + drawTexturedModalRect(guiLeft + 151, guiTop + 52, 176, crate.sendingMode ? 18 : 0, 18, 18); + + crate.tank.renderTank(guiLeft + 125, guiTop + 51, this.zLevel, 16, 34); + } +} diff --git a/src/main/java/com/hbm/render/item/RenderDeliveryDrone.java b/src/main/java/com/hbm/render/entity/item/RenderDeliveryDrone.java similarity index 55% rename from src/main/java/com/hbm/render/item/RenderDeliveryDrone.java rename to src/main/java/com/hbm/render/entity/item/RenderDeliveryDrone.java index d84b1de01..0c7434688 100644 --- a/src/main/java/com/hbm/render/item/RenderDeliveryDrone.java +++ b/src/main/java/com/hbm/render/entity/item/RenderDeliveryDrone.java @@ -1,7 +1,8 @@ -package com.hbm.render.item; +package com.hbm.render.entity.item; import org.lwjgl.opengl.GL11; +import com.hbm.entity.item.EntityDeliveryDrone; import com.hbm.main.ResourceManager; import net.minecraft.client.renderer.entity.Render; @@ -16,17 +17,25 @@ public class RenderDeliveryDrone extends Render { GL11.glPushMatrix(); GL11.glTranslated(x, y, z); + GL11.glDisable(GL11.GL_CULL_FACE); GL11.glShadeModel(GL11.GL_SMOOTH); bindTexture(ResourceManager.delivery_drone_tex); ResourceManager.delivery_drone.renderPart("Drone"); - ResourceManager.delivery_drone.renderPart("Barrel"); + + EntityDeliveryDrone drone = (EntityDeliveryDrone) entity; + int style = drone.getAppearance(); + + if(style == 1) ResourceManager.delivery_drone.renderPart("Crate"); + if(style == 2) ResourceManager.delivery_drone.renderPart("Barrel"); + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glEnable(GL11.GL_CULL_FACE); GL11.glPopMatrix(); } @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return null; + protected ResourceLocation getEntityTexture(Entity drone) { + return ResourceManager.delivery_drone_tex; } } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityDroneCrate.java b/src/main/java/com/hbm/tileentity/network/TileEntityDroneCrate.java index 1fbad4f7d..5512fe3ab 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityDroneCrate.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityDroneCrate.java @@ -3,29 +3,44 @@ package com.hbm.tileentity.network; import java.util.List; import com.hbm.entity.item.EntityDeliveryDrone; +import com.hbm.interfaces.IControlReceiver; +import com.hbm.inventory.FluidStack; +import com.hbm.inventory.container.ContainerDroneCrate; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.inventory.gui.GUIDroneCrate; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.INBTPacketReceiver; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.fauxpointtwelve.BlockPos; +import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; +import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.Vec3; import net.minecraft.world.World; -public class TileEntityDroneCrate extends TileEntityMachineBase implements IGUIProvider, INBTPacketReceiver, IDroneLinkable { +public class TileEntityDroneCrate extends TileEntityMachineBase implements IGUIProvider, INBTPacketReceiver, IControlReceiver, IDroneLinkable, IFluidStandardTransceiver { + + public FluidTank tank; public int nextX = -1; public int nextY = -1; public int nextZ = -1; + + public boolean sendingMode = false; + public boolean itemType = true; public TileEntityDroneCrate() { super(19); + this.tank = new FluidTank(Fluids.NONE, 64_000); } @Override @@ -38,22 +53,141 @@ public class TileEntityDroneCrate extends TileEntityMachineBase implements IGUIP if(!worldObj.isRemote) { + this.tank.setType(18, slots); + + if(sendingMode && !itemType && worldObj.getTotalWorldTime() % 20 == 0) { + this.subscribeToAllAround(tank.getTankType(), this); + } + + if(!sendingMode && !itemType && worldObj.getTotalWorldTime() % 20 == 0) { + this.sendFluidToAll(tank, this); + } + if(nextY != -1) { List drones = worldObj.getEntitiesWithinAABB(EntityDeliveryDrone.class, AxisAlignedBB.getBoundingBox(xCoord, yCoord + 1, zCoord, xCoord + 1, yCoord + 2, zCoord + 1)); for(EntityDeliveryDrone drone : drones) { if(Vec3.createVectorHelper(drone.motionX, drone.motionY, drone.motionZ).lengthVector() < 0.05) { drone.setTarget(nextX + 0.5, nextY, nextZ + 0.5); + + if(sendingMode && itemType) loadItems(drone); + if(!sendingMode && itemType) unloadItems(drone); + if(sendingMode && !itemType) loadFluid(drone); + if(!sendingMode && !itemType) unloadFluid(drone); } } } NBTTagCompound data = new NBTTagCompound(); data.setIntArray("pos", new int[] {nextX, nextY, nextZ}); + data.setBoolean("mode", sendingMode); + data.setBoolean("type", itemType); + tank.writeToNBT(data, "t"); INBTPacketReceiver.networkPack(this, data, 25); } } + @Override + public void networkUnpack(NBTTagCompound nbt) { + int[] pos = nbt.getIntArray("pos"); + this.nextX = pos[0]; + this.nextY = pos[1]; + this.nextZ = pos[2]; + this.sendingMode = nbt.getBoolean("mode"); + this.itemType = nbt.getBoolean("type"); + tank.readFromNBT(nbt, "t"); + } + + protected void loadItems(EntityDeliveryDrone drone) { + + if(drone.getAppearance() != 0) return; + + boolean loaded = false; + + for(int i = 0; i < 18; i++) { + if(this.slots[i] != null) { + loaded = true; + drone.setInventorySlotContents(i, this.slots[i].copy()); + this.slots[i] = null; + } + } + + if(loaded) { + this.markDirty(); + drone.setAppearance(1); + } + } + + protected void unloadItems(EntityDeliveryDrone drone) { + + if(drone.getAppearance() != 1) return; + + boolean emptied = true; + + for(int i = 0; i < 18; i++) { + ItemStack droneSlot = drone.getStackInSlot(i); + + if(this.slots[i] == null && droneSlot != null) { + this.slots[i] = droneSlot.copy(); + drone.setInventorySlotContents(i, null); + } else if(this.slots[i] != null && droneSlot != null) { + emptied = false; + } + } + + this.markDirty(); + + if(emptied) drone.setAppearance(0); + } + + protected void loadFluid(EntityDeliveryDrone drone) { + + if(drone.getAppearance() != 0) return; + + if(this.tank.getFill() > 0) { + drone.fluid = new FluidStack(tank.getTankType(), tank.getFill()); + this.tank.setFill(0); + drone.setAppearance(2); + + this.markDirty(); + } + } + + protected void unloadFluid(EntityDeliveryDrone drone) { + + if(drone.getAppearance() != 2) return; + + if(drone.fluid != null && drone.fluid.type == tank.getTankType()) { + + if(drone.fluid.fill + tank.getFill() <= tank.getMaxFill()) { + tank.setFill(tank.getFill() + drone.fluid.fill); + drone.fluid = null; + drone.setAppearance(0); + } else { + int overshoot = drone.fluid.fill + tank.getFill() - tank.getMaxFill(); + tank.setFill(tank.getMaxFill()); + drone.fluid.fill = overshoot; + } + + this.markDirty(); + } + } + + @Override + public int[] getAccessibleSlotsFromSide(int p_94128_1_) { + return new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 }; + } + + @Override + public boolean isItemValidForSlot(int i, ItemStack itemStack) { + return true; + } + + @Override + public boolean canExtractItem(int i, ItemStack itemStack, int j) { + return true; + } + @Override public BlockPos getPoint() { return new BlockPos(xCoord, yCoord + 1, zCoord); @@ -66,23 +200,72 @@ public class TileEntityDroneCrate extends TileEntityMachineBase implements IGUIP this.nextZ = z; this.markDirty(); } - + @Override - public void networkUnpack(NBTTagCompound nbt) { + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + int[] pos = nbt.getIntArray("pos"); this.nextX = pos[0]; this.nextY = pos[1]; this.nextZ = pos[2]; + this.sendingMode = nbt.getBoolean("mode"); + this.itemType = nbt.getBoolean("type"); + tank.readFromNBT(nbt, "t"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + nbt.setIntArray("pos", new int[] {nextX, nextY, nextZ}); + nbt.setBoolean("mode", sendingMode); + nbt.setBoolean("type", itemType); + tank.writeToNBT(nbt, "t"); } @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return null; + return new ContainerDroneCrate(player.inventory, this); } @Override @SideOnly(Side.CLIENT) public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return null; + return new GUIDroneCrate(player.inventory, this); + } + + @Override + public boolean hasPermission(EntityPlayer player) { + return this.isUseableByPlayer(player); + } + + @Override + public void receiveControl(NBTTagCompound data) { + + if(data.hasKey("mode")) { + this.sendingMode = !this.sendingMode; + this.markChanged(); + } + + if(data.hasKey("type")) { + this.itemType = !this.itemType; + this.markChanged(); + } + } + + @Override + public FluidTank[] getAllTanks() { + return new FluidTank[] { tank }; + } + + @Override + public FluidTank[] getSendingTanks() { + return !sendingMode && !itemType ? new FluidTank[] { tank } : new FluidTank[0]; + } + + @Override + public FluidTank[] getReceivingTanks() { + return sendingMode && !itemType ? new FluidTank[] { tank } : new FluidTank[0]; } } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityDroneWaypoint.java b/src/main/java/com/hbm/tileentity/network/TileEntityDroneWaypoint.java index 8476fef96..99cddf18f 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityDroneWaypoint.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityDroneWaypoint.java @@ -47,15 +47,6 @@ public class TileEntityDroneWaypoint extends TileEntity implements INBTPacketRec double z = zCoord + height * dir.offsetZ + 0.5; worldObj.spawnParticle("reddust", x, y, z, 0, 0, 0); - - /*Vec3 vec = Vec3.createVectorHelper(nextX + 0.5 - x, nextY + 0.5 - y, nextZ + 0.5 - z); - double speed = Math.min(vec.lengthVector(), 0.5); - double mX = vec.xCoord * speed; - double mY = vec.yCoord * speed; - double mZ = vec.zCoord * speed; - vec = vec.normalize(); - - worldObj.spawnParticle("crit", x, y, z, mX, mY, mZ);*/ } } } @@ -87,4 +78,21 @@ public class TileEntityDroneWaypoint extends TileEntity implements INBTPacketRec height += h; height = MathHelper.clamp_int(height, 1, 15); } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + int[] pos = nbt.getIntArray("pos"); + this.nextX = pos[0]; + this.nextY = pos[1]; + this.nextZ = pos[2]; + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + nbt.setIntArray("pos", new int[] {nextX, nextY, nextZ}); + } } diff --git a/src/main/resources/assets/hbm/textures/items/delivery_drone.png b/src/main/resources/assets/hbm/textures/items/delivery_drone.png new file mode 100644 index 0000000000000000000000000000000000000000..a1bd3424a0c0740162a701616a7a2d883450d5a1 GIT binary patch literal 267 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf)x*H@j&Suct z*wA$U%)2w^|JSD{UJ{t#$doAYPjm)v(FUf-X`Zu|>29~^I~rEKE#s5z^jEJ1IrhAs zy|z&&Ed1(It%lP##T%Yh@g4a5t?<~}bBmXR$TjS|-EuXd{=>=7d!8=aI_>VZC1=;q zFR;lqI2It%y6VKf;@^QmTH0wnjBYbP0l+XkKoGxvb literal 0 HcmV?d00001 From bb591306dbd6a2d62f78732a7ef4ee9956a8867f Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 22 Sep 2023 15:24:23 +0200 Subject: [PATCH 315/432] custom falling block, mojang stink --- .../java/com/hbm/blocks/BlockFallingNT.java | 96 ++++++ .../java/com/hbm/blocks/machine/NTMAnvil.java | 42 ++- .../hbm/blocks/network/BlockCableGauge.java | 24 +- .../java/com/hbm/entity/EntityMappings.java | 1 + .../hbm/entity/effect/EntityFalloutRain.java | 6 +- .../hbm/entity/item/EntityFallingBlockNT.java | 286 ++++++++++++++++++ .../entity/missile/EntityMissileCustom.java | 1 - .../com/hbm/explosion/ExplosionChaos.java | 4 +- .../explosion/ExplosionNukeRayBatched.java | 4 - .../java/com/hbm/items/tool/ItemWandD.java | 7 - src/main/java/com/hbm/main/ClientProxy.java | 1 + .../entity/item/RenderFallingBlockNT.java | 71 +++++ .../network/TileEntityDroneCrate.java | 1 - 13 files changed, 501 insertions(+), 43 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/BlockFallingNT.java create mode 100644 src/main/java/com/hbm/entity/item/EntityFallingBlockNT.java create mode 100644 src/main/java/com/hbm/render/entity/item/RenderFallingBlockNT.java diff --git a/src/main/java/com/hbm/blocks/BlockFallingNT.java b/src/main/java/com/hbm/blocks/BlockFallingNT.java new file mode 100644 index 000000000..f880d7268 --- /dev/null +++ b/src/main/java/com/hbm/blocks/BlockFallingNT.java @@ -0,0 +1,96 @@ +package com.hbm.blocks; + +import java.util.Random; + +import com.hbm.entity.item.EntityFallingBlockNT; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.init.Blocks; +import net.minecraft.world.World; + +public class BlockFallingNT extends Block { + + public static boolean fallInstantly; + + public BlockFallingNT() { + super(Material.sand); + this.setCreativeTab(CreativeTabs.tabBlock); + } + + public BlockFallingNT(Material mat) { + super(mat); + } + + @Override + public void onBlockAdded(World world, int x, int y, int z) { + world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world)); + } + + @Override + public void onNeighborBlockChange(World world, int x, int y, int z, Block block) { + world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world)); + } + + @Override + public void updateTick(World world, int x, int y, int z, Random rand) { + if(!world.isRemote) { + this.fall(world, x, y, z); + } + } + + protected void fall(World world, int x, int y, int z) { + + if(canFallThrough(world, x, y - 1, z) && y >= 0) { + byte range = 32; + + if(!fallInstantly && world.checkChunksExist(x - range, y - range, z - range, x + range, y + range, z + range)) { + if(!world.isRemote) { + EntityFallingBlockNT entityfallingblock = new EntityFallingBlockNT(world, x + 0.5D, y + 0.5D, z + 0.5D, this, world.getBlockMetadata(x, y, z)); + this.modifyFallingBlock(entityfallingblock); + world.spawnEntityInWorld(entityfallingblock); + } + } else { + world.setBlockToAir(x, y, z); + + while(canFallThrough(world, x, y - 1, z) && y > 0) { + --y; + } + + if(y > 0) { + world.setBlock(x, y, z, this); + } + } + } + } + + protected void modifyFallingBlock(EntityFallingBlockNT falling) { } + + @Override + public int tickRate(World world) { + return 2; + } + + public static boolean canFallThrough(World world, int x, int y, int z) { + Block block = world.getBlock(x, y, z); + + if(block.isAir(world, x, y, z)) { + return true; + } else if(block == Blocks.fire) { + return true; + } else { + Material material = block.getMaterial(); + return material == Material.water ? true : material == Material.lava; + } + } + + public void onLand(World world, int x, int y, int z, int meta) { } + + @SideOnly(Side.CLIENT) public boolean shouldOverrideRenderer() { return false; } + @SideOnly(Side.CLIENT) public void overrideRenderer(EntityFallingBlockNT falling, RenderBlocks renderBlocks, Tessellator tessellator) { } +} diff --git a/src/main/java/com/hbm/blocks/machine/NTMAnvil.java b/src/main/java/com/hbm/blocks/machine/NTMAnvil.java index 099748d19..5a73eb253 100644 --- a/src/main/java/com/hbm/blocks/machine/NTMAnvil.java +++ b/src/main/java/com/hbm/blocks/machine/NTMAnvil.java @@ -4,12 +4,16 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import com.hbm.blocks.BlockFallingNT; import com.hbm.blocks.ITooltipProvider; import com.hbm.blocks.ModBlocks; +import com.hbm.entity.item.EntityFallingBlockNT; import com.hbm.inventory.container.ContainerAnvil; import com.hbm.inventory.gui.GUIAnvil; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; import com.hbm.tileentity.IGUIProvider; import cpw.mods.fml.client.registry.RenderingRegistry; @@ -17,9 +21,10 @@ import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; -import net.minecraft.block.BlockFalling; import net.minecraft.block.material.Material; import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; @@ -31,8 +36,9 @@ import net.minecraft.util.IIcon; import net.minecraft.util.MathHelper; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraftforge.client.model.obj.WavefrontObject; -public class NTMAnvil extends BlockFalling implements ITooltipProvider, IGUIProvider { +public class NTMAnvil extends BlockFallingNT implements ITooltipProvider, IGUIProvider { public final int tier; @@ -180,4 +186,36 @@ public class NTMAnvil extends BlockFalling implements ITooltipProvider, IGUIProv public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIAnvil(player.inventory, ((NTMAnvil)world.getBlock(x, y, z)).tier); } + + @Override + @SideOnly(Side.CLIENT) + public boolean shouldOverrideRenderer() { + return true; + } + + @Override + @SideOnly(Side.CLIENT) + public void overrideRenderer(EntityFallingBlockNT falling, RenderBlocks renderBlocks, Tessellator tessellator) { + + World world = falling.worldObj; + float rotation = 0; + + if(falling.getMeta() == 2) + rotation = 90F / 180F * (float) Math.PI; + + if(falling.getMeta() == 3) + rotation = 270F / 180F * (float) Math.PI; + + if(falling.getMeta() == 4) + rotation = 180F / 180F * (float)Math.PI; + + tessellator.addTranslation(0F, -0.5F, 0F); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.anvil, "Top", getIcon(1, 0), tessellator, rotation, true); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.anvil, "Bottom", getIcon(0, 0), tessellator, rotation, true); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.anvil, "Front", getIcon(0, 0), tessellator, rotation, true); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.anvil, "Back", getIcon(0, 0), tessellator, rotation, true); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.anvil, "Left", getIcon(0, 0), tessellator, rotation, true); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.anvil, "Right", getIcon(0, 0), tessellator, rotation, true); + tessellator.addTranslation(0F, 0.5F, 0F); + } } diff --git a/src/main/java/com/hbm/blocks/network/BlockCableGauge.java b/src/main/java/com/hbm/blocks/network/BlockCableGauge.java index 93b29daec..54921d0c7 100644 --- a/src/main/java/com/hbm/blocks/network/BlockCableGauge.java +++ b/src/main/java/com/hbm/blocks/network/BlockCableGauge.java @@ -14,13 +14,8 @@ import com.hbm.tileentity.network.TileEntityCableBaseNT; import com.hbm.util.BobMathUtil; import com.hbm.util.I18nUtil; -import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import li.cil.oc.api.machine.Arguments; -import li.cil.oc.api.machine.Callback; -import li.cil.oc.api.machine.Context; -import li.cil.oc.api.network.SimpleComponent; import net.minecraft.block.BlockContainer; import net.minecraft.block.BlockPistonBase; import net.minecraft.block.material.Material; @@ -103,8 +98,7 @@ public class BlockCableGauge extends BlockContainer implements IBlockMultiPass, return IBlockMultiPass.getRenderType(); } - @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) - public static class TileEntityCableGauge extends TileEntityCableBaseNT implements INBTPacketReceiver, SimpleComponent { + public static class TileEntityCableGauge extends TileEntityCableBaseNT implements INBTPacketReceiver { private BigInteger lastMeasurement = BigInteger.valueOf(10); private long deltaTick = 0; @@ -145,21 +139,5 @@ public class BlockCableGauge extends BlockContainer implements IBlockMultiPass, this.deltaTick = Math.max(nbt.getLong("deltaT"), 0); this.deltaLastSecond = Math.max(nbt.getLong("deltaS"), 0); } - - public String getComponentName() { - return "ntm_cable_gauge"; - } - - @Callback(direct = true, limit = 8) - @Optional.Method(modid = "OpenComputers") - public Object[] getTransfer(Context context, Arguments args) { - return new Object[] {deltaTick, deltaSecond}; - } - - @Callback(direct = true, limit = 8) - @Optional.Method(modid = "OpenComputers") - public Object[] getInfo(Context context, Arguments args) { - return new Object[] {deltaTick, deltaSecond, xCoord, yCoord, zCoord}; - } } } diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index e10fb1097..0b8d01653 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -213,6 +213,7 @@ public class EntityMappings { addEntity(EntityChemical.class, "entity_chemthrower_splash", 1000); addEntity(EntityMist.class, "entity_mist", 250, false); addEntity(EntityAcidBomb.class, "entity_acid_bomb", 1000); + addEntity(EntityFallingBlockNT.class, "entity_falling_block_nt", 1000); addEntity(EntityItemWaste.class, "entity_item_waste", 100); addEntity(EntityItemBuoyant.class, "entity_item_buoyant", 100); diff --git a/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java b/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java index 51ee981cb..4eae334d6 100644 --- a/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java +++ b/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java @@ -4,12 +4,12 @@ import com.hbm.blocks.ModBlocks; import com.hbm.config.BombConfig; import com.hbm.config.FalloutConfigJSON; import com.hbm.config.FalloutConfigJSON.FalloutEntry; +import com.hbm.entity.item.EntityFallingBlockNT; import com.hbm.saveddata.AuxSavedData; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.entity.Entity; -import net.minecraft.entity.item.EntityFallingBlock; import net.minecraft.init.Blocks; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.Vec3; @@ -178,8 +178,8 @@ public class EntityFalloutRain extends Entity { for(int i = 0; i <= depth; i++) { hardness = worldObj.getBlock(x, y + i, z).getBlockHardness(worldObj, x, y + i, z); if(hardness <= Blocks.stonebrick.getExplosionResistance(null) && hardness >= 0) { - EntityFallingBlock entityfallingblock = new EntityFallingBlock(worldObj, x + 0.5D, y + 0.5D + i, z + 0.5D, worldObj.getBlock(x, y + i, z), worldObj.getBlockMetadata(x, y + i, z)); - entityfallingblock.field_145813_c = false; //turn off block drops because block dropping was coded by a mule with dementia + EntityFallingBlockNT entityfallingblock = new EntityFallingBlockNT(worldObj, x + 0.5D, y + 0.5D + i, z + 0.5D, worldObj.getBlock(x, y + i, z), worldObj.getBlockMetadata(x, y + i, z)); + entityfallingblock.canDrop = false; //turn off block drops because block dropping was coded by a mule with dementia worldObj.spawnEntityInWorld(entityfallingblock); } } diff --git a/src/main/java/com/hbm/entity/item/EntityFallingBlockNT.java b/src/main/java/com/hbm/entity/item/EntityFallingBlockNT.java new file mode 100644 index 000000000..483e0dd95 --- /dev/null +++ b/src/main/java/com/hbm/entity/item/EntityFallingBlockNT.java @@ -0,0 +1,286 @@ +package com.hbm.entity.item; + +import java.util.ArrayList; +import java.util.Iterator; + +import com.hbm.blocks.BlockFallingNT; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.BlockFalling; +import net.minecraft.block.ITileEntityProvider; +import net.minecraft.block.material.Material; +import net.minecraft.crash.CrashReportCategory; +import net.minecraft.entity.Entity; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTBase; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; + +public class EntityFallingBlockNT extends Entity { + + private Block fallingBlock; + public int fallingMeta = -1; + public int fallingTicks; + public boolean canDrop; + private boolean destroyOnLand; + private boolean canHurtEntities; + private int damageCap; + private float damageAmount; + public NBTTagCompound tileNBT; + + public EntityFallingBlockNT(World world) { + super(world); + this.canDrop = true; + this.damageCap = 40; + this.damageAmount = 2.0F; + this.setSize(0.98F, 0.98F); + this.yOffset = this.height / 2.0F; + } + + public EntityFallingBlockNT(World world, double x, double y, double z, Block block) { + this(world, x, y, z, block, 0); + } + + public EntityFallingBlockNT(World world, double x, double y, double z, Block block, int meta) { + super(world); + this.canDrop = true; + this.damageCap = 40; + this.damageAmount = 2.0F; + this.fallingBlock = block; + this.dataWatcher.updateObject(10, Block.getIdFromBlock(fallingBlock)); + this.fallingMeta = meta; + this.dataWatcher.updateObject(11, fallingMeta); + this.preventEntitySpawning = true; + this.setPosition(x, y, z); + this.motionX = 0.0D; + this.motionY = 0.0D; + this.motionZ = 0.0D; + this.prevPosX = x; + this.prevPosY = y; + this.prevPosZ = z; + } + + @Override protected void entityInit() { + this.dataWatcher.addObject(10, new Integer(0)); + this.dataWatcher.addObject(11, new Integer(0)); + } + + public Block getBlock() { + if(this.fallingBlock != null) return this.fallingBlock; + + this.fallingBlock = Block.getBlockById(this.dataWatcher.getWatchableObjectInt(10)); + return this.fallingBlock; + } + + public int getMeta() { + if(this.fallingMeta != -1) return this.fallingMeta; + this.fallingMeta = 0; + + this.fallingMeta = this.dataWatcher.getWatchableObjectInt(11); + return this.fallingMeta; + } + + @Override protected boolean canTriggerWalking() { return false; } + @Override public boolean canBeCollidedWith() { return !this.isDead; } + + public void onUpdate() { + + if(this.getBlock().getMaterial() == Material.air) { + this.setDead(); + } else { + this.prevPosX = this.posX; + this.prevPosY = this.posY; + this.prevPosZ = this.posZ; + ++this.fallingTicks; + this.motionY -= 0.04D; + this.moveEntity(this.motionX, this.motionY, this.motionZ); + this.motionX *= 0.98D; + this.motionY *= 0.98D; + this.motionZ *= 0.98D; + + if(!this.worldObj.isRemote) { + int x = MathHelper.floor_double(this.posX); + int y = MathHelper.floor_double(this.posY); + int z = MathHelper.floor_double(this.posZ); + + if(this.fallingTicks == 1) { + if(this.worldObj.getBlock(x, y, z) != this.getBlock()) { + this.setDead(); + return; + } + + this.worldObj.setBlockToAir(x, y, z); + } + + if(this.onGround) { + this.motionX *= 0.7D; + this.motionZ *= 0.7D; + this.motionY *= -0.5D; + + if(this.worldObj.getBlock(x, y, z) != Blocks.piston_extension) { + this.setDead(); + + if(!this.destroyOnLand && replacementCheck(x, y, z) && this.worldObj.setBlock(x, y, z, this.getBlock(), this.getMeta(), 3)) { + + if(this.getBlock() instanceof BlockFalling) ((BlockFalling) this.getBlock()).func_149828_a(this.worldObj, x, y, z, this.getMeta()); + if(this.getBlock() instanceof BlockFallingNT) ((BlockFallingNT) this.getBlock()).onLand(this.worldObj, x, y, z, this.getMeta()); + + if(this.tileNBT != null && this.getBlock() instanceof ITileEntityProvider) { + TileEntity tileentity = this.worldObj.getTileEntity(x, y, z); + + if(tileentity != null) { + NBTTagCompound nbt = new NBTTagCompound(); + tileentity.writeToNBT(nbt); + Iterator it = this.tileNBT.func_150296_c().iterator(); + + while(it.hasNext()) { + String s = (String) it.next(); + NBTBase nbtbase = this.tileNBT.getTag(s); + + if(!s.equals("x") && !s.equals("y") && !s.equals("z")) { + nbt.setTag(s, nbtbase.copy()); + } + } + + tileentity.readFromNBT(nbt); + tileentity.markDirty(); + } + } + } else if(this.canDrop && !this.destroyOnLand) { + this.entityDropItem(new ItemStack(this.getBlock(), 1, this.getBlock().damageDropped(this.getMeta())), 0.0F); + } + } + } else if(this.fallingTicks > 100 && !this.worldObj.isRemote && (y < 1 || y > 256) || this.fallingTicks > 600) { + if(this.canDrop) { + this.entityDropItem(new ItemStack(this.getBlock(), 1, this.getBlock().damageDropped(this.getMeta())), 0.0F); + } + + this.setDead(); + } + } + } + } + + public boolean replacementCheck(int x, int y, int z) { + return worldObj.getBlock(x, y, z).isReplaceable(worldObj, x, y, z) && this.getBlock().canBlockStay(worldObj, x, y, z); + } + + @Override + protected void fall(float fallDistance) { + + if(this.canHurtEntities) { + int fall = MathHelper.ceiling_float_int(fallDistance - 1.0F); + + if(fall > 0) { + ArrayList arraylist = new ArrayList(this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox)); + boolean isAnvil = this.getBlock() == Blocks.anvil; + DamageSource damagesource = isAnvil ? DamageSource.anvil : DamageSource.fallingBlock; + Iterator iterator = arraylist.iterator(); + + while(iterator.hasNext()) { + Entity entity = (Entity) iterator.next(); + entity.attackEntityFrom(damagesource, (float) Math.min(MathHelper.floor_float((float) fall * this.damageAmount), this.damageCap)); + } + + if(isAnvil && (double) this.rand.nextFloat() < 0.05D + (double) fall * 0.05D) { + int j = this.getMeta() >> 2; + int k = this.getMeta() & 3; + ++j; + + if(j > 2) { + this.destroyOnLand = true; + } else { + this.fallingMeta = k | j << 2; + } + } + } + } + } + + @Override + protected void writeEntityToNBT(NBTTagCompound nbt) { + nbt.setByte("Tile", (byte) Block.getIdFromBlock(this.fallingBlock)); + nbt.setInteger("TileID", Block.getIdFromBlock(this.fallingBlock)); + nbt.setByte("Data", (byte) this.fallingMeta); + nbt.setByte("Time", (byte) this.fallingTicks); + nbt.setBoolean("DropItem", this.canDrop); + nbt.setBoolean("HurtEntities", this.canHurtEntities); + nbt.setFloat("FallHurtAmount", this.damageAmount); + nbt.setInteger("FallHurtMax", this.damageCap); + + if(this.tileNBT != null) { + nbt.setTag("TileEntityData", this.tileNBT); + } + } + + @Override + protected void readEntityFromNBT(NBTTagCompound nbt) { + + if(nbt.hasKey("TileID", 99)) { + this.fallingBlock = Block.getBlockById(nbt.getInteger("TileID")); + } else { + this.fallingBlock = Block.getBlockById(nbt.getByte("Tile") & 255); + } + + this.fallingMeta = nbt.getByte("Data") & 255; + this.fallingTicks = nbt.getByte("Time") & 255; + + if(nbt.hasKey("HurtEntities", 99)) { + this.canHurtEntities = nbt.getBoolean("HurtEntities"); + this.damageAmount = nbt.getFloat("FallHurtAmount"); + this.damageCap = nbt.getInteger("FallHurtMax"); + } else if(this.fallingBlock == Blocks.anvil) { + this.canHurtEntities = true; + } + + if(nbt.hasKey("DropItem", 99)) { + this.canDrop = nbt.getBoolean("DropItem"); + } + + if(nbt.hasKey("TileEntityData", 10)) { + this.tileNBT = nbt.getCompoundTag("TileEntityData"); + } + + if(this.fallingBlock.getMaterial() == Material.air) { + this.fallingBlock = Blocks.sand; + } + } + + public void func_145806_a(boolean p_145806_1_) { + this.canHurtEntities = p_145806_1_; + } + + @Override + public void addEntityCrashInfo(CrashReportCategory report) { + super.addEntityCrashInfo(report); + report.addCrashSection("Immitating block ID", Integer.valueOf(Block.getIdFromBlock(this.fallingBlock))); + report.addCrashSection("Immitating block data", Integer.valueOf(this.fallingMeta)); + } + + @Override + @SideOnly(Side.CLIENT) + public float getShadowSize() { + return 0.0F; + } + + @SideOnly(Side.CLIENT) + public World getWorldForRender() { + return this.worldObj; + } + + @Override + @SideOnly(Side.CLIENT) + public boolean canRenderOnFire() { + return false; + } + + public Block getBlockForRender() { + return this.getBlock(); + } +} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java b/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java index 41841568c..0fed51411 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java @@ -5,7 +5,6 @@ import java.util.List; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.bomb.BlockTaint; -import com.hbm.entity.effect.EntityNukeCloudSmall; import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.logic.EntityBalefire; import com.hbm.entity.logic.EntityNukeExplosionMK5; diff --git a/src/main/java/com/hbm/explosion/ExplosionChaos.java b/src/main/java/com/hbm/explosion/ExplosionChaos.java index 38b3514da..820f3df46 100644 --- a/src/main/java/com/hbm/explosion/ExplosionChaos.java +++ b/src/main/java/com/hbm/explosion/ExplosionChaos.java @@ -6,6 +6,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.entity.grenade.EntityGrenadeTau; import com.hbm.entity.grenade.EntityGrenadeZOMG; +import com.hbm.entity.item.EntityFallingBlockNT; import com.hbm.entity.missile.EntityMissileAntiBallistic; import com.hbm.entity.missile.EntityMissileBase; import com.hbm.entity.particle.EntityChlorineFX; @@ -29,7 +30,6 @@ import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLiving; import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.item.EntityFallingBlock; import net.minecraft.entity.item.EntityTNTPrimed; import net.minecraft.entity.passive.EntitySheep; import net.minecraft.entity.player.EntityPlayer; @@ -406,7 +406,7 @@ public class ExplosionChaos { public static void pDestruction(World world, int x, int y, int z) { - EntityFallingBlock entityfallingblock = new EntityFallingBlock(world, (double) ((float) x + 0.5F), (double) ((float) y + 0.5F), (double) ((float) z + 0.5F), world.getBlock(x, y, z), world.getBlockMetadata(x, y, z)); + EntityFallingBlockNT entityfallingblock = new EntityFallingBlockNT(world, (double) ((float) x + 0.5F), (double) ((float) y + 0.5F), (double) ((float) z + 0.5F), world.getBlock(x, y, z), world.getBlockMetadata(x, y, z)); world.spawnEntityInWorld(entityfallingblock); } diff --git a/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java b/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java index f8cc562fe..8f075876c 100644 --- a/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java +++ b/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java @@ -6,14 +6,10 @@ import java.util.HashMap; import java.util.HashSet; import java.util.List; -import com.hbm.packet.AuxParticlePacketNT; -import com.hbm.packet.PacketDispatcher; import com.hbm.util.fauxpointtwelve.BlockPos; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.block.Block; import net.minecraft.init.Blocks; -import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.Vec3; import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.world.World; diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index 2d661577c..88a0522c8 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -3,21 +3,14 @@ package com.hbm.items.tool; import java.util.List; import com.hbm.entity.effect.EntityNukeTorex; -import com.hbm.handler.pollution.PollutionHandler; -import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.lib.Library; import com.hbm.util.TrackerUtil; -import cpw.mods.fml.relauncher.ReflectionHelper; -import net.minecraft.entity.EntityTracker; -import net.minecraft.entity.EntityTrackerEntry; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.util.IntHashMap; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; -import net.minecraft.world.WorldServer; public class ItemWandD extends Item { diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index c451c670f..19ef08ea7 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -714,6 +714,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityMovingPackage.class, new RenderMovingPackage()); RenderingRegistry.registerEntityRenderingHandler(EntityTNTPrimedBase.class, new RenderTNTPrimedBase()); RenderingRegistry.registerEntityRenderingHandler(EntityDeliveryDrone.class, new RenderDeliveryDrone()); + RenderingRegistry.registerEntityRenderingHandler(EntityFallingBlockNT.class, new RenderFallingBlockNT()); //mobs RenderingRegistry.registerEntityRenderingHandler(EntityCreeperNuclear.class, new RenderCreeperUniversal(RefStrings.MODID + ":" + "textures/entity/creeper.png", RefStrings.MODID + ":" + "textures/entity/creeper_armor.png").setSwellMod(5F)); RenderingRegistry.registerEntityRenderingHandler(EntityCreeperTainted.class, new RenderCreeperUniversal(RefStrings.MODID + ":" + "textures/entity/creeper_tainted.png", RefStrings.MODID + ":" + "textures/entity/creeper_armor_taint.png")); diff --git a/src/main/java/com/hbm/render/entity/item/RenderFallingBlockNT.java b/src/main/java/com/hbm/render/entity/item/RenderFallingBlockNT.java new file mode 100644 index 000000000..d5ed89036 --- /dev/null +++ b/src/main/java/com/hbm/render/entity/item/RenderFallingBlockNT.java @@ -0,0 +1,71 @@ +package com.hbm.render.entity.item; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockFallingNT; +import com.hbm.entity.item.EntityFallingBlockNT; + +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.entity.Render; +import net.minecraft.client.renderer.texture.TextureMap; +import net.minecraft.entity.Entity; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; + +public class RenderFallingBlockNT extends Render { + + private final RenderBlocks renderBlocks = new RenderBlocks(); + + public RenderFallingBlockNT() { + this.shadowSize = 0.5F; + } + + public void doRender(EntityFallingBlockNT entity, double x, double y, double z, float f0, float f1) { + + World world = entity.getWorldForRender(); + Block block = entity.getBlockForRender(); + + int iX = MathHelper.floor_double(entity.posX); + int iY = MathHelper.floor_double(entity.posY); + int iZ = MathHelper.floor_double(entity.posZ); + + if(block != null && block != world.getBlock(iX, iY, iZ)) { + GL11.glPushMatrix(); + GL11.glTranslated(x, y, z); + this.bindEntityTexture(entity); + GL11.glDisable(GL11.GL_LIGHTING); + + this.renderBlocks.blockAccess = world; + + if(block instanceof BlockFallingNT && ((BlockFallingNT) block).shouldOverrideRenderer()) { + Tessellator tessellator = Tessellator.instance; + tessellator.startDrawingQuads(); + ((BlockFallingNT) block).overrideRenderer(entity, renderBlocks, tessellator); + tessellator.draw(); + } else { + this.renderBlocks.setRenderBoundsFromBlock(block); + this.renderBlocks.renderBlockSandFalling(block, world, iX, iY, iZ, entity.fallingMeta); + } + + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glPopMatrix(); + } + } + + protected ResourceLocation getEntityTexture(EntityFallingBlockNT entity) { + return TextureMap.locationBlocksTexture; + } + + @Override + protected ResourceLocation getEntityTexture(Entity entity) { + return this.getEntityTexture((EntityFallingBlockNT) entity); + } + + @Override + public void doRender(Entity entity, double x, double y, double z, float f0, float f1) { + this.doRender((EntityFallingBlockNT) entity, x, y, z, f0, f1); + } +} diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityDroneCrate.java b/src/main/java/com/hbm/tileentity/network/TileEntityDroneCrate.java index 5512fe3ab..eb530096d 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityDroneCrate.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityDroneCrate.java @@ -22,7 +22,6 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.Vec3; import net.minecraft.world.World; From f5c17f8bd7b638eb3f483724919d519cea125c90 Mon Sep 17 00:00:00 2001 From: Bob Date: Sat, 23 Sep 2023 23:34:22 +0200 Subject: [PATCH 316/432] smart pathing waypoints --- src/main/java/com/hbm/blocks/ModBlocks.java | 3 + .../com/hbm/blocks/network/DroneCrate.java | 4 + .../blocks/network/DroneWaypointRequest.java | 100 +++++++++ .../hbm/entity/item/EntityDeliveryDrone.java | 146 +++++++------- .../com/hbm/entity/item/EntityDroneBase.java | 97 +++++++++ .../inventory/gui/GUIMachineTurbineGas.java | 4 - src/main/java/com/hbm/items/ModItems.java | 3 + .../com/hbm/items/special/ItemAntiCheat.java | 33 --- .../java/com/hbm/items/tool/ItemDrone.java | 50 +++++ .../java/com/hbm/main/ResourceManager.java | 1 + .../entity/item/RenderDeliveryDrone.java | 6 +- .../hbm/render/entity/mob/RenderGlyphid.java | 3 - .../entity/mob/RenderGlyphidNuclear.java | 2 - .../java/com/hbm/tileentity/TileMappings.java | 1 + .../network/TileEntityDroneWaypoint.java | 9 +- .../TileEntityDroneWaypointRequest.java | 189 ++++++++++++++++++ src/main/java/com/hbm/util/ParticleUtil.java | 18 ++ .../hbm/textures/blocks/diamond_block.png | Bin 469 -> 0 bytes .../hbm/textures/blocks/diamond_ore.png | Bin 262 -> 0 bytes .../blocks/drone_waypoint_request.png | Bin 0 -> 239 bytes .../blocks/drone_waypoint_request.png.mcmeta | 5 + .../hbm/textures/blocks/emerald_ore.png | Bin 364 -> 0 bytes .../{delivery_drone.png => drone.patrol.png} | Bin .../items/drone.patrol_chunkloading.png | Bin 0 -> 284 bytes .../textures/items/drone.patrol_express.png | Bin 0 -> 264 bytes .../drone.patrol_express_chunkloading.png | Bin 0 -> 281 bytes .../hbm/textures/items/drone.request.png | Bin 0 -> 262 bytes .../hbm/textures/models/machines/drone.png | Bin 2748 -> 2506 bytes .../models/machines/drone_express.png | Bin 0 -> 2744 bytes .../models/machines/drone_request.png | Bin 0 -> 2759 bytes 30 files changed, 550 insertions(+), 124 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/network/DroneWaypointRequest.java create mode 100644 src/main/java/com/hbm/entity/item/EntityDroneBase.java delete mode 100644 src/main/java/com/hbm/items/special/ItemAntiCheat.java create mode 100644 src/main/java/com/hbm/items/tool/ItemDrone.java create mode 100644 src/main/java/com/hbm/tileentity/network/TileEntityDroneWaypointRequest.java delete mode 100644 src/main/resources/assets/hbm/textures/blocks/diamond_block.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/diamond_ore.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/drone_waypoint_request.png create mode 100755 src/main/resources/assets/hbm/textures/blocks/drone_waypoint_request.png.mcmeta delete mode 100644 src/main/resources/assets/hbm/textures/blocks/emerald_ore.png rename src/main/resources/assets/hbm/textures/items/{delivery_drone.png => drone.patrol.png} (100%) create mode 100644 src/main/resources/assets/hbm/textures/items/drone.patrol_chunkloading.png create mode 100644 src/main/resources/assets/hbm/textures/items/drone.patrol_express.png create mode 100644 src/main/resources/assets/hbm/textures/items/drone.patrol_express_chunkloading.png create mode 100644 src/main/resources/assets/hbm/textures/items/drone.request.png create mode 100644 src/main/resources/assets/hbm/textures/models/machines/drone_express.png create mode 100644 src/main/resources/assets/hbm/textures/models/machines/drone_request.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index c348fc5b3..c297d4391 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -821,6 +821,7 @@ public class ModBlocks { public static Block crane_splitter; public static Block drone_waypoint; + public static Block drone_waypoint_request; public static Block drone_crate; public static Block fan; @@ -1994,6 +1995,7 @@ public class ModBlocks { piston_inserter = new PistonInserter().setBlockName("piston_inserter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); drone_waypoint = new DroneWaypoint().setBlockName("drone_waypoint").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":drone_waypoint"); + drone_waypoint_request = new DroneWaypointRequest().setBlockName("drone_waypoint_request").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":drone_waypoint_request"); drone_crate = new DroneCrate().setBlockName("drone_crate").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); chain = new BlockChain(Material.iron).setBlockName("dungeon_chain").setHardness(0.25F).setResistance(2.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":chain"); @@ -3256,6 +3258,7 @@ public class ModBlocks { register(conveyor_lift); register(crane_splitter); register(drone_waypoint); + register(drone_waypoint_request); register(drone_crate); register(fan); register(piston_inserter); diff --git a/src/main/java/com/hbm/blocks/network/DroneCrate.java b/src/main/java/com/hbm/blocks/network/DroneCrate.java index bd82c8d20..94641ed8f 100644 --- a/src/main/java/com/hbm/blocks/network/DroneCrate.java +++ b/src/main/java/com/hbm/blocks/network/DroneCrate.java @@ -6,6 +6,7 @@ import java.util.Random; import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.ITooltipProvider; +import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.tileentity.network.TileEntityDroneCrate; @@ -59,6 +60,9 @@ public class DroneCrate extends BlockContainer implements ILookOverlay, ITooltip @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + + if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.drone_linker) return false; + if(world.isRemote) { return true; } else if(!player.isSneaking()) { diff --git a/src/main/java/com/hbm/blocks/network/DroneWaypointRequest.java b/src/main/java/com/hbm/blocks/network/DroneWaypointRequest.java new file mode 100644 index 000000000..a02b63a3c --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/DroneWaypointRequest.java @@ -0,0 +1,100 @@ +package com.hbm.blocks.network; + +import com.hbm.tileentity.network.TileEntityDroneWaypointRequest; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class DroneWaypointRequest extends BlockContainer { + + public DroneWaypointRequest() { + super(Material.circuits); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityDroneWaypointRequest(); + } + + @Override + public int getRenderType() { + return RadioTorchBase.renderID; + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + + @Override + @SideOnly(Side.CLIENT) + public boolean shouldSideBeRendered(IBlockAccess world, int x, int y, int z, int side) { + return true; + } + + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + return null; + } + + @Override + public MovingObjectPosition collisionRayTrace(World world, int x, int y, int z, Vec3 vec0, Vec3 vec1) { + + int meta = world.getBlockMetadata(x, y, z) & 7; + ForgeDirection dir = ForgeDirection.getOrientation(meta); + + this.setBlockBounds( + dir.offsetX == 1 ? 0F : 0.375F, + dir.offsetY == 1 ? 0F : 0.375F, + dir.offsetZ == 1 ? 0F : 0.375F, + dir.offsetX == -1 ? 1F : 0.625F, + dir.offsetY == -1 ? 1F : 0.625F, + dir.offsetZ == -1 ? 1F : 0.625F + ); + + return super.collisionRayTrace(world, x, y, z, vec0, vec1); + } + + @Override + public int onBlockPlaced(World world, int x, int y, int z, int side, float fX, float fY, float fZ, int meta) { + return side; + } + + @Override + public void onNeighborBlockChange(World world, int x, int y, int z, Block block) { + + int meta = world.getBlockMetadata(x, y, z); + ForgeDirection dir = ForgeDirection.getOrientation(meta); + Block b = world.getBlock(x - dir.offsetX, y - dir.offsetY, z - dir.offsetZ); + + if(!b.isSideSolid(world, x - dir.offsetX, y - dir.offsetY, z - dir.offsetZ, dir) && (!b.renderAsNormalBlock() || b.isAir(world, x, y, z))) { + this.dropBlockAsItem(world, x, y, z, meta, 0); + world.setBlockToAir(x, y, z); + } + } + + @Override + public boolean canPlaceBlockOnSide(World world, int x, int y, int z, int side) { + if(!super.canPlaceBlockOnSide(world, x, y, z, side)) return false; + + ForgeDirection dir = ForgeDirection.getOrientation(side); + Block b = world.getBlock(x - dir.offsetX, y - dir.offsetY, z - dir.offsetZ); + + return b.isSideSolid(world, x - dir.offsetX, y - dir.offsetY, z - dir.offsetZ, dir) || (b.renderAsNormalBlock() && !b.isAir(world, x, y, z)); + } +} diff --git a/src/main/java/com/hbm/entity/item/EntityDeliveryDrone.java b/src/main/java/com/hbm/entity/item/EntityDeliveryDrone.java index d63dd43d3..eb4b6e603 100644 --- a/src/main/java/com/hbm/entity/item/EntityDeliveryDrone.java +++ b/src/main/java/com/hbm/entity/item/EntityDeliveryDrone.java @@ -1,28 +1,25 @@ package com.hbm.entity.item; +import com.hbm.entity.logic.IChunkLoader; import com.hbm.inventory.FluidStack; import com.hbm.inventory.fluid.Fluids; +import com.hbm.main.MainRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.util.Vec3; +import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.world.World; +import net.minecraftforge.common.ForgeChunkManager; +import net.minecraftforge.common.ForgeChunkManager.Ticket; +import net.minecraftforge.common.ForgeChunkManager.Type; -public class EntityDeliveryDrone extends Entity implements IInventory { - - protected int turnProgress; - protected double syncPosX; - protected double syncPosY; - protected double syncPosZ; - @SideOnly(Side.CLIENT) protected double velocityX; - @SideOnly(Side.CLIENT) protected double velocityY; - @SideOnly(Side.CLIENT) protected double velocityZ; +public class EntityDeliveryDrone extends EntityDroneBase implements IInventory, IChunkLoader { protected ItemStack[] slots = new ItemStack[this.getSizeInventory()]; public FluidStack fluid; @@ -31,10 +28,24 @@ public class EntityDeliveryDrone extends Entity implements IInventory { public double targetY = -1; public double targetZ = -1; + private Ticket loaderTicket; + public boolean isChunkLoading = false; + public EntityDeliveryDrone(World world) { super(world); this.setSize(1.5F, 2.0F); } + + @Override + protected void entityInit() { + super.entityInit(); + this.dataWatcher.addObject(11, new Byte((byte) 0)); + } + + public EntityDeliveryDrone setChunkLoading() { + init(ForgeChunkManager.requestTicket(MainRegistry.instance, worldObj, Type.ENTITY)); + return this; + } public void setTarget(double x, double y, double z) { this.targetX = x; @@ -42,68 +53,11 @@ public class EntityDeliveryDrone extends Entity implements IInventory { this.targetZ = z; } - @Override - public boolean canBeCollidedWith() { - return true; - } - - @Override - public boolean canAttackWithItem() { - return true; - } - - @Override - public boolean hitByEntity(Entity attacker) { - - if(attacker instanceof EntityPlayer) { - this.setDead(); - } - - return false; - } - - @Override - protected boolean canTriggerWalking() { - return true; - } - - @Override - protected void entityInit() { - this.dataWatcher.addObject(10, new Byte((byte) 0)); - } - - /** - * 0: Empty
    - * 1: Crate
    - * 2: Barrel
    - */ - public void setAppearance(int style) { - this.dataWatcher.updateObject(10, (byte) style); - } - - public int getAppearance() { - return this.dataWatcher.getWatchableObjectByte(10); - } - @Override public void onUpdate() { + super.onUpdate(); - if(worldObj.isRemote) { - if(this.turnProgress > 0) { - double interpX = this.posX + (this.syncPosX - this.posX) / (double) this.turnProgress; - double interpY = this.posY + (this.syncPosY - this.posY) / (double) this.turnProgress; - double interpZ = this.posZ + (this.syncPosZ - this.posZ) / (double) this.turnProgress; - --this.turnProgress; - this.setPosition(interpX, interpY, interpZ); - } else { - this.setPosition(this.posX, this.posY, this.posZ); - } - - worldObj.spawnParticle("smoke", posX + 1.125, posY + 0.75, posZ, 0, -0.2, 0); - worldObj.spawnParticle("smoke", posX - 1.125, posY + 0.75, posZ, 0, -0.2, 0); - worldObj.spawnParticle("smoke", posX, posY + 0.75, posZ + 1.125, 0, -0.2, 0); - worldObj.spawnParticle("smoke", posX, posY + 0.75, posZ - 1.125, 0, -0.2, 0); - } else { + if(!worldObj.isRemote) { this.motionX = 0; this.motionY = 0; @@ -122,12 +76,15 @@ public class EntityDeliveryDrone extends Entity implements IInventory { } } + loadNeighboringChunks((int)Math.floor(posX / 16D), (int)Math.floor(posZ / 16D)); + this.moveEntity(motionX, motionY, motionZ); } } - + + @Override public double getSpeed() { - return 0.125D; + return this.dataWatcher.getWatchableObjectByte(11) == 1 ? 0.375 : 0.125; } @Override @@ -154,6 +111,9 @@ public class EntityDeliveryDrone extends Entity implements IInventory { nbt.setString("fluidType", fluid.type.getUnlocalizedName()); nbt.setInteger("fluidAmount", fluid.fill); } + + nbt.setByte("app", this.dataWatcher.getWatchableObjectByte(10)); + nbt.setByte("load", this.dataWatcher.getWatchableObjectByte(11)); } @Override @@ -180,13 +140,9 @@ public class EntityDeliveryDrone extends Entity implements IInventory { if(nbt.hasKey("fluidType")) { this.fluid = new FluidStack(Fluids.fromName(nbt.getString("fluidType")), nbt.getInteger("fluidAmount")); } - } - - @SideOnly(Side.CLIENT) - public void setVelocity(double motionX, double motionY, double motionZ) { - this.velocityX = this.motionX = motionX; - this.velocityY = this.motionY = motionY; - this.velocityZ = this.motionZ = motionZ; + + this.dataWatcher.updateObject(10, nbt.getByte("app")); + this.dataWatcher.updateObject(11, nbt.getByte("load")); } @SideOnly(Side.CLIENT) @@ -258,4 +214,38 @@ public class EntityDeliveryDrone extends Entity implements IInventory { @Override public void markDirty() { } @Override public void openInventory() { } @Override public void closeInventory() { } + + public void loadNeighboringChunks(int newChunkX, int newChunkZ) { + if(!worldObj.isRemote && loaderTicket != null) { + clearChunkLoader(); + ForgeChunkManager.forceChunk(loaderTicket, new ChunkCoordIntPair(newChunkX, newChunkZ)); + ForgeChunkManager.forceChunk(loaderTicket, new ChunkCoordIntPair(newChunkX + (int) Math.ceil((this.posX + this.motionX) / 16D), newChunkZ + (int) Math.ceil((this.posZ + this.motionZ) / 16D))); + } + } + + @Override + public void setDead() { + super.setDead(); + this.clearChunkLoader(); + } + + public void clearChunkLoader() { + if(!worldObj.isRemote && loaderTicket != null) { + for(ChunkCoordIntPair chunk : loaderTicket.getChunkList()) { + ForgeChunkManager.unforceChunk(loaderTicket, chunk); + } + } + } + + @Override + public void init(Ticket ticket) { + if(!worldObj.isRemote && ticket != null) { + if(loaderTicket == null) { + loaderTicket = ticket; + loaderTicket.bindEntity(this); + loaderTicket.getModData(); + } + ForgeChunkManager.forceChunk(loaderTicket, new ChunkCoordIntPair(chunkCoordX, chunkCoordZ)); + } + } } diff --git a/src/main/java/com/hbm/entity/item/EntityDroneBase.java b/src/main/java/com/hbm/entity/item/EntityDroneBase.java new file mode 100644 index 000000000..12969f711 --- /dev/null +++ b/src/main/java/com/hbm/entity/item/EntityDroneBase.java @@ -0,0 +1,97 @@ +package com.hbm.entity.item; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.world.World; + +public abstract class EntityDroneBase extends Entity { + + protected int turnProgress; + protected double syncPosX; + protected double syncPosY; + protected double syncPosZ; + @SideOnly(Side.CLIENT) protected double velocityX; + @SideOnly(Side.CLIENT) protected double velocityY; + @SideOnly(Side.CLIENT) protected double velocityZ; + + public EntityDroneBase(World world) { + super(world); + } + + @Override + public boolean canBeCollidedWith() { + return true; + } + + @Override + public boolean canAttackWithItem() { + return true; + } + + @Override + public boolean hitByEntity(Entity attacker) { + + if(attacker instanceof EntityPlayer) { + this.setDead(); + } + + return false; + } + + @Override + protected boolean canTriggerWalking() { + return true; + } + + @Override + protected void entityInit() { + this.dataWatcher.addObject(10, new Byte((byte) 0)); + } + + /** + * 0: Empty
    + * 1: Crate
    + * 2: Barrel
    + */ + public void setAppearance(int style) { + this.dataWatcher.updateObject(10, (byte) style); + } + + public int getAppearance() { + return this.dataWatcher.getWatchableObjectByte(10); + } + + @Override + public void onUpdate() { + + if(worldObj.isRemote) { + if(this.turnProgress > 0) { + double interpX = this.posX + (this.syncPosX - this.posX) / (double) this.turnProgress; + double interpY = this.posY + (this.syncPosY - this.posY) / (double) this.turnProgress; + double interpZ = this.posZ + (this.syncPosZ - this.posZ) / (double) this.turnProgress; + --this.turnProgress; + this.setPosition(interpX, interpY, interpZ); + } else { + this.setPosition(this.posX, this.posY, this.posZ); + } + + worldObj.spawnParticle("smoke", posX + 1.125, posY + 0.75, posZ, 0, -0.2, 0); + worldObj.spawnParticle("smoke", posX - 1.125, posY + 0.75, posZ, 0, -0.2, 0); + worldObj.spawnParticle("smoke", posX, posY + 0.75, posZ + 1.125, 0, -0.2, 0); + worldObj.spawnParticle("smoke", posX, posY + 0.75, posZ - 1.125, 0, -0.2, 0); + } + } + + public double getSpeed() { + return 0.125D; + } + + @SideOnly(Side.CLIENT) + public void setVelocity(double motionX, double motionY, double motionZ) { + this.velocityX = this.motionX = motionX; + this.velocityY = this.motionY = motionY; + this.velocityZ = this.motionZ = motionZ; + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineTurbineGas.java b/src/main/java/com/hbm/inventory/gui/GUIMachineTurbineGas.java index 724797310..eefdf12c1 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineTurbineGas.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineTurbineGas.java @@ -225,10 +225,6 @@ public class GUIMachineTurbineGas extends GuiInfoContainer { int firstDigitX = 66; int firstDigitY = 62; - int width = 5; - int height = 11; - int spaceBetweenBumbers = 3; - int[] digit = new int[6]; for(int i = 5; i >= 0; i--) { //creates an array of digits that represent the numbers diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index bd693d645..784625ea1 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1038,6 +1038,7 @@ public class ModItems { public static Item cart; public static Item train; + public static Item drone; public static Item coin_creeper; public static Item coin_radiation; @@ -3456,6 +3457,7 @@ public class ModItems { cart = new ItemModMinecart().setUnlocalizedName("cart"); train = new ItemTrain().setUnlocalizedName("train"); + drone = new ItemDrone().setUnlocalizedName("drone"); coin_creeper = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("coin_creeper").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":coin_creeper"); coin_radiation = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("coin_radiation").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":coin_radiation"); @@ -7696,6 +7698,7 @@ public class ModItems { //Minecarts GameRegistry.registerItem(cart, cart.getUnlocalizedName()); GameRegistry.registerItem(train, train.getUnlocalizedName()); + GameRegistry.registerItem(drone, drone.getUnlocalizedName()); //High Explosive Lenses GameRegistry.registerItem(early_explosive_lenses, early_explosive_lenses.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/special/ItemAntiCheat.java b/src/main/java/com/hbm/items/special/ItemAntiCheat.java deleted file mode 100644 index ddb62457f..000000000 --- a/src/main/java/com/hbm/items/special/ItemAntiCheat.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.hbm.items.special; - -import com.hbm.items.ItemCustomLore; - -import net.minecraft.entity.Entity; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class ItemAntiCheat extends ItemCustomLore { - - @Override - public void onUpdate(ItemStack stack, World world, Entity entity, int j, boolean b) { - - /*if(stack.getItemDamage() != 34) { - - if(entity instanceof EntityPlayer) { - EntityPlayer player = (EntityPlayer)entity; - for(ItemStack s : player.inventory.mainInventory) { - player.inventory.consumeInventoryItem(ModItems.ingot_euphemium); - player.inventory.consumeInventoryItem(ModItems.nugget_euphemium); - } - } - - //entity.attackEntityFrom(ModDamageSource.cheater, Float.POSITIVE_INFINITY); - for(int i = 0; i < 100; i++) - entity.attackEntityFrom(ModDamageSource.cheater, 10000); - - //if(!world.isRemote) - // ExplosionChaos.antiCheat(world, (int)entity.posX, (int)entity.posY, (int)entity.posZ, 20); - }*/ - } - -} diff --git a/src/main/java/com/hbm/items/tool/ItemDrone.java b/src/main/java/com/hbm/items/tool/ItemDrone.java new file mode 100644 index 000000000..5ac0d79f0 --- /dev/null +++ b/src/main/java/com/hbm/items/tool/ItemDrone.java @@ -0,0 +1,50 @@ +package com.hbm.items.tool; + +import com.hbm.entity.item.EntityDeliveryDrone; +import com.hbm.items.ItemEnumMulti; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class ItemDrone extends ItemEnumMulti { + + public ItemDrone() { + super(EnumDroneType.class, true, true); + } + + public static enum EnumDroneType { + PATROL, + PATROL_CHUNKLOADING, + PATROL_EXPRESS, + PATROL_EXPRESS_CHUNKLOADING, + REQUEST + } + + @Override + public boolean onItemUse(ItemStack stack, EntityPlayer entity, World world, int x, int y, int z, int side, float fx, float fy, float fz) { + + if(side != 1) return false; + if(world.isRemote) return true; + + Entity toSpawn = null; + + if(stack.getItemDamage() < 4) { + toSpawn = new EntityDeliveryDrone(world); + if(stack.getItemDamage() % 2 == 0) { + ((EntityDeliveryDrone) toSpawn).setChunkLoading(); + } + if(stack.getItemDamage() > 1) { + ((EntityDeliveryDrone) toSpawn).getDataWatcher().updateObject(11, (byte) 1); + } + } + + if(toSpawn != null) { + toSpawn.setPosition(x + 0.5, y + 1, z + 0.5); + world.spawnEntityInWorld(toSpawn); + } + + return false; + } +} diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 8f229cb16..18f7b0059 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -1371,6 +1371,7 @@ public class ResourceManager { //Drone public static final ResourceLocation delivery_drone_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/drone.png"); + public static final ResourceLocation delivery_drone_express_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/drone_express.png"); //ISBRHs public static final IModelCustom scaffold = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/scaffold.obj")); diff --git a/src/main/java/com/hbm/render/entity/item/RenderDeliveryDrone.java b/src/main/java/com/hbm/render/entity/item/RenderDeliveryDrone.java index 0c7434688..4cf9e844c 100644 --- a/src/main/java/com/hbm/render/entity/item/RenderDeliveryDrone.java +++ b/src/main/java/com/hbm/render/entity/item/RenderDeliveryDrone.java @@ -19,7 +19,11 @@ public class RenderDeliveryDrone extends Render { GL11.glDisable(GL11.GL_CULL_FACE); GL11.glShadeModel(GL11.GL_SMOOTH); - bindTexture(ResourceManager.delivery_drone_tex); + + if(entity.getDataWatcher().getWatchableObjectByte(11) == 1) + bindTexture(ResourceManager.delivery_drone_express_tex); + else + bindTexture(ResourceManager.delivery_drone_tex); ResourceManager.delivery_drone.renderPart("Drone"); EntityDeliveryDrone drone = (EntityDeliveryDrone) entity; diff --git a/src/main/java/com/hbm/render/entity/mob/RenderGlyphid.java b/src/main/java/com/hbm/render/entity/mob/RenderGlyphid.java index c64649c77..49b0ea4f8 100644 --- a/src/main/java/com/hbm/render/entity/mob/RenderGlyphid.java +++ b/src/main/java/com/hbm/render/entity/mob/RenderGlyphid.java @@ -48,12 +48,9 @@ public class RenderGlyphid extends RenderLiving { EntityLivingBase living = (EntityLivingBase) entity; byte armor = living.getDataWatcher().getWatchableObjectByte(17); - //MainRegistry.proxy.displayTooltip("" + limbSwingAmount, 999); double walkCycle = limbSwing; - double speed = 100000D; - double chewing = 200000D; double cy0 = Math.sin(walkCycle % (Math.PI * 2)); double cy1 = Math.sin(walkCycle % (Math.PI * 2) - Math.PI * 0.5); double cy2 = Math.sin(walkCycle % (Math.PI * 2) - Math.PI); diff --git a/src/main/java/com/hbm/render/entity/mob/RenderGlyphidNuclear.java b/src/main/java/com/hbm/render/entity/mob/RenderGlyphidNuclear.java index 5c91e44a1..88c74cc21 100644 --- a/src/main/java/com/hbm/render/entity/mob/RenderGlyphidNuclear.java +++ b/src/main/java/com/hbm/render/entity/mob/RenderGlyphidNuclear.java @@ -108,8 +108,6 @@ public class RenderGlyphidNuclear extends RenderLiving { double walkCycle = limbSwing; - double speed = 100000D; - double chewing = 200000D; double cy0 = Math.sin(walkCycle % (Math.PI * 2)); double cy1 = Math.sin(walkCycle % (Math.PI * 2) - Math.PI * 0.5); double cy2 = Math.sin(walkCycle % (Math.PI * 2) - Math.PI); diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 40b91f1a4..36e0d6df7 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -393,6 +393,7 @@ public class TileMappings { put(TileEntityRadioTelex.class, "tileentity_rtty_telex"); put(TileEntityDroneWaypoint.class, "tileentity_drone_waypoint"); + put(TileEntityDroneWaypointRequest.class, "tileentity_drone_waypoint_request"); put(TileEntityDroneCrate.class, "tileentity_drone_crate"); } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityDroneWaypoint.java b/src/main/java/com/hbm/tileentity/network/TileEntityDroneWaypoint.java index 99cddf18f..f14fb0f99 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityDroneWaypoint.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityDroneWaypoint.java @@ -19,7 +19,8 @@ public class TileEntityDroneWaypoint extends TileEntity implements INBTPacketRec public int nextX = -1; public int nextY = -1; public int nextZ = -1; - + + @Override public void updateEntity() { ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); @@ -82,7 +83,8 @@ public class TileEntityDroneWaypoint extends TileEntity implements INBTPacketRec @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); - + + this.height = nbt.getInteger("height"); int[] pos = nbt.getIntArray("pos"); this.nextX = pos[0]; this.nextY = pos[1]; @@ -92,7 +94,8 @@ public class TileEntityDroneWaypoint extends TileEntity implements INBTPacketRec @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); - + + nbt.setInteger("height", height); nbt.setIntArray("pos", new int[] {nextX, nextY, nextZ}); } } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityDroneWaypointRequest.java b/src/main/java/com/hbm/tileentity/network/TileEntityDroneWaypointRequest.java new file mode 100644 index 000000000..b7bb9e52d --- /dev/null +++ b/src/main/java/com/hbm/tileentity/network/TileEntityDroneWaypointRequest.java @@ -0,0 +1,189 @@ +package com.hbm.tileentity.network; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Set; + +import com.hbm.util.ParticleUtil; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.MathHelper; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; +import net.minecraft.world.ChunkCoordIntPair; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityDroneWaypointRequest extends TileEntity { + + public static HashMap>> activeWaypoints = new HashMap(); + public static HashMap lastActive = new HashMap(); + public static long lastWipe = 0; + + public Set reachableNodes = new HashSet(); + public Set knownNodes = new HashSet(); + public static final int maxRange = 24; + public static final int maxAge = 1_000; + + public int height = 5; + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + if(worldObj.getTotalWorldTime() % 20 == 0) { + BlockPos pos = getCoord(); + push(worldObj, pos); + + for(BlockPos known : knownNodes) { + ParticleUtil.spawnDebugLine(worldObj, + pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, + (known.getX() - pos.getX()) / 2D, (known.getY() - pos.getY()) / 2D, (known.getZ() - pos.getZ()) / 2D, + reachableNodes.contains(known) ? 0x00ff00 : 0xff0000); + } + + //rescan known nodes + if(worldObj.getTotalWorldTime() % 40 == 0 && knownNodes.size() > 0) { + + BlockPos node = (BlockPos) new ArrayList(knownNodes).get(knownNodes.size() > 1 ? worldObj.rand.nextInt(knownNodes.size() - 1) : 0); + + if(node != null) { + + Long timestamp = lastActive.get(node); + + if(timestamp == null || timestamp < System.currentTimeMillis() - maxAge) { + knownNodes.remove(node); + reachableNodes.remove(node); + lastActive.remove(node); + } else if(!hasPath(worldObj, pos, node)) { + reachableNodes.remove(node); + } else { + reachableNodes.add(node); + } + } + + //discover new nodes + } else { + + Set nodes = getAllLocalNodes(worldObj, pos.getX(), pos.getZ()); + + for(BlockPos node : nodes) { + + if(!knownNodes.contains(node) && !node.equals(pos)) { + knownNodes.add(node); + if(hasPath(worldObj, pos, node)) reachableNodes.add(node); + break; + } + } + } + } + } + } + + public BlockPos getCoord() { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); + return new BlockPos(xCoord + dir.offsetX * height, yCoord + dir.offsetY * height, zCoord + dir.offsetZ * height); + } + + public static boolean hasPath(World world, BlockPos pos1, BlockPos pos2) { + Vec3 vec1 = Vec3.createVectorHelper(pos1.getX() + 0.5, pos1.getY() + 0.5, pos1.getZ() + 0.5); + Vec3 vec2 = Vec3.createVectorHelper(pos2.getX() + 0.5, pos2.getY() + 0.5, pos2.getZ() + 0.5); + Vec3 vec3 = vec1.subtract(vec2); + if(vec3.lengthVector() > maxRange) return false; + //for some fucking reason beyond any human comprehension, this function will randomly yield incorrect results but only from one side + //therefore we just run the stupid fucking thing twice and then compare the results + //thanks for this marvelous piece of programming, mojang + MovingObjectPosition mop0 = world.func_147447_a(vec1, vec2, false, true, false); + MovingObjectPosition mop2 = world.func_147447_a(vec2, vec1, false, true, false); + return (mop0 == null || mop0.typeOfHit == mop0.typeOfHit.MISS) && (mop2 == null || mop2.typeOfHit == mop2.typeOfHit.MISS); + } + + public void addHeight(int h) { + height += h; + height = MathHelper.clamp_int(height, 1, 15); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + this.height = nbt.getInteger("height"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + nbt.setInteger("height", height); + } + + /** + * Adds the position to that chunk's node list. + * @param world + * @param x + * @param y + * @param z + */ + public static void push(World world, BlockPos pos) { + + HashMap> coordMap = activeWaypoints.get(world); + + if(coordMap == null) { + coordMap = new HashMap(); + activeWaypoints.put(world, coordMap); + } + + ChunkCoordIntPair chunkPos = new ChunkCoordIntPair(pos.getX() >> 4, pos.getZ() >> 4); + Set posList = coordMap.get(chunkPos); + + if(posList == null) { + posList = new HashSet(); + coordMap.put(chunkPos, posList); + } + + posList.add(pos); + + lastActive.put(pos, System.currentTimeMillis()); + } + + /** + * Gets all active nodes in a 5x5 chunk area, centered around the given position. + * Used for finding neighbors to check connections to. + * @param world + * @param x + * @param z + * @return + */ + public static Set getAllLocalNodes(World world, int x, int z) { + + Set nodes = new HashSet(); + + x >>= 4; + z >>= 4; + + HashMap> coordMap = activeWaypoints.get(world); + + if(coordMap == null) return nodes; + + for(int i = -2; i <= 2; i++) { + for(int j = -2; j <= 2; j++) { + + Set posList = coordMap.get(new ChunkCoordIntPair(x + i, z + j)); + + if(posList != null) for(BlockPos node : posList) { + Long timestamp = lastActive.get(node); + + if(timestamp != null && timestamp >= System.currentTimeMillis() - maxAge) { + nodes.add(node); + } + } + } + } + + return nodes; + } +} diff --git a/src/main/java/com/hbm/util/ParticleUtil.java b/src/main/java/com/hbm/util/ParticleUtil.java index 0428ec19b..f62efba92 100644 --- a/src/main/java/com/hbm/util/ParticleUtil.java +++ b/src/main/java/com/hbm/util/ParticleUtil.java @@ -27,4 +27,22 @@ public class ParticleUtil { PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, x, y, z), new TargetPoint(world.provider.dimensionId, x, y, z, 150)); } } + + public static void spawnDebugLine(World world, double x, double y, double z, double x0, double y0, double z0, int color) { + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "debugline"); + data.setDouble("mX", x0); + data.setDouble("mY", y0); + data.setDouble("mZ", z0); + data.setInteger("color", color); + if(world.isRemote) { + data.setDouble("posX", x); + data.setDouble("posY", y); + data.setDouble("posZ", z); + MainRegistry.proxy.effectNT(data); + } else { + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, x, y, z), new TargetPoint(world.provider.dimensionId, x, y, z, 150)); + } + } } diff --git a/src/main/resources/assets/hbm/textures/blocks/diamond_block.png b/src/main/resources/assets/hbm/textures/blocks/diamond_block.png deleted file mode 100644 index f2e2e771a6498eb87678fd201c2027a4b7eb7c01..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 469 zcmV;`0V@89P)mh0kz@<(`-8wB80g(5;djiC8fmLGwWL^a|J-szEwyoD|xzj&l3+>c|;@Gq<{|n?ja&k z$E0)Dn};z@KHfScGc|dsIKcfKBYGt^a80?@s4hj-{dA^qPhY_6a4y*ChD7+fb zqwe?>=sp3KK{Zd*i~{rp?1_PQ-qH6ZXU5^1MRN~;)lTL(>x>E@FLgR3?!Z-nzIXMp z!!HXqZhI1prX`-~ucVba(;@lHSry+wX7*Rc)hNR$uQXpRD>uOR13oyM5D0-qt^fc4 M07*qoM6N<$f^{iwX8-^I diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_waypoint_request.png b/src/main/resources/assets/hbm/textures/blocks/drone_waypoint_request.png new file mode 100644 index 0000000000000000000000000000000000000000..730f2a0517ec05cee0a9f9aca9ea047523f65908 GIT binary patch literal 239 zcmeAS@N?(olHy`uVBq!ia0vp^0zj<5!3HFyJAa%3QY^(zo*^7SP{WbZ0pu_9ba4#v z=zKe6BQKL7k88a~@Wo)^R;wVl1mQN1QsoQEhEAu1y=7`QF)GIhKHc0nu|_2P$@XdU z|EktAJ6BIve&|v9xmHo%U-!tw_xzrDcbJw(-sDkOdPHI|hlPi0wrU?f?J) literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_waypoint_request.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/drone_waypoint_request.png.mcmeta new file mode 100755 index 000000000..92dd223c8 --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/drone_waypoint_request.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 10 + } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/emerald_ore.png b/src/main/resources/assets/hbm/textures/blocks/emerald_ore.png deleted file mode 100644 index a26c35f6a08d6c6c8d61c42a5157eac0d182bbdb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 364 zcmV-y0h9iTP)*~`q zU7{!oZ<@yEdG@aB{5TH3!y#w*K>#$4qnBmrd7k@^|M|yn?NwF99Rq}X1Ck&>lC1cT zM|f;spP_=)5PjcAj%QE0t5+&RoR6A@eDvv8SdeWDuY^6Lr|3f5+Mg*+qQur zF}*NW$6*+Tc%UBO%r;al4K=;ow#}DiIjd;3yAi&403iAVfGuQM7X2d6-B1GaK>%+XHl*^ z0CTnpi^gi>lcs6SO=~U7c}{)4yux-j!5Bl9WvUqVov%NOa%Ex07@&h+a7t_alE8J= iNrJb4s^dHN|IiaZhf+mj%47Nf0000G zO*{K?Ra+cufngNGw%4i*+keT*l;7~rU8>Y@{B-oJV}iX~w@pv$ndlsQ@%#30i}fbw zEWM&v9b419e*P`5${EFcKMw1&r1t!rrBL#1I;R`s-6I>nRK8#~Q+3VVCHS%(=oJP} LS3j3^P66}DNSL9Fs>U6vaU&*jP3$c zn(ohe`@8CYjy6M?lEvDoi?+{dm?yPWL0_S9{y_$pz%POZzfyj1O-P-&B=eS+_av8? z((L8S>K`qR3tM<#?Y*m|lBa6wt9~o87F=m$&`C>XIQR6h^}B3)v({M*G4Ia>nQmi| zNRG;k%Dy>;HMhRD^{~l-DDS+Y(3#BdUmsryUv++kTJbXO!k0T&bR6-8FlH^B1PLC2@;4TVyS0j#E)M$GH4?fYLTMt1Zs| zRr{yU|NnpT_k?Q#69SnsXYq0AxLL9^u3EK3=X76mpoq}90QQ>ClV`jV6V%)A?#l#Y zudh3~6fTD|Ua(_6kS*PNd;fO3aLxmtOW6}vMnB3bU$X9X-)uuSx#ipV{+t&!`z?LW zGN(9zflc^t?dxLEBXf!`_!zWm^!)S{czrOW+F;6~`M+&Gu${Z(a!)MlUj@)344$rj JF6*2UngC~pXuALa literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/machines/drone.png b/src/main/resources/assets/hbm/textures/models/machines/drone.png index 56d1e7312ed1159a4d699f2efe572c103a39d04f..3e55db1657ed91302da4ddcf1b59cd44cc33f628 100644 GIT binary patch delta 2481 zcmV;i2~PIB70MHkGk*zzNkl=it1rp+wC&c~(tPn5oL=e)7szO5QB1(}8Dh9HIR@-!|s%dxQ z25;gx_Wa~wd?z!GojCE2xFTOE%FNtj-+RtI^F2R&1s(9-yMMD`r?Fw+jklM?Fz3^E z8$9`{;N{n})U(I;eV#0b9mn^=UY}2n4-<0eGma>B^@u0SAy1aQ1CQ^8UO(SY9Oyml z7k>u%6#eScpn7Sn>I(t+oY5bbQYyW7wFqTBE4w7&82@zh^0I8gXJNdAz-%dcrY zb4@j(T9=e=*b0) zN&(c0-PTvBRQfWT%`KAO_1qakaYDa5L4DtIXNY##Z+hL%h)0=a6Gw(< z;>Zw992ugCBSSQCWQZn?4AI1qA)45;A2A9zlzv3J$%j>mc2fAz`Vl)P9_)@N103eh z2|M}`t$(eu_uici2W6Ocinp78uYN>73a~x<5$zV%^Q^mke>)7aU!sio+*P0NzyE%0 zxL$h`J6d%IL9YbbuSjsvU$|Odrvv2?PnN@;6gjL@F}q>kdBhuUFNtBFkLa|%QmNGA zT4qDFhK_l}C}FSl^?H^IK=0+$$}lp%VV$ZuFn?K&k{9*kELKNrkJvd&wH7g;>*wQ~ zWwCiOrc^2o71qhiywb0oGwgo{nip^X9@sJ z7bd`mN9EO&@Z!BP^K+*Guq=y5DEY`A<`jI_|o}V>h*f8;B;XkR(!R(0T3H1Df6GQ&%Yl$!`gz+$!xz>PZ( z0OGN1)&wG>T)(x%>$9K5_dMSE&UXod0DmC_Qc8j#NKGV!KnQ{7c}OYw)z5!6cHI7J6S+L|bEolrpUurp!Z76c@#7Q< z1+v*Jg+hVx@o`R^I6*F#BcIPRIXTJH)D%)mG)-r8G7*sVdgPw9n!~l5cL6w8Jb#5{ zSuEa*ykhZQIp&KbZ&;QUaRLyAA)2NU1VQW(hG8J3MAvl;!@zZ2T-PNGLvpzsK`=U| zkPs;ZkpUL(m6^!psn_dVIzLOT=5ThV5D_SmC#cUnDzBpH29Dz*guro}Sn(hTP(}uD z90%X`@jMS9L~3jlAeBN2m(I_|ynpbhyc%;t^14=YQlHWFC<>dV85==LiEZ0)L@`Yh z-}hs0iMV1U0tNu``mH5^l)|u0lFA#@Yoea3d)W3UDJ9iv71K21`!EcVQsTNUwrykE zHb5LfMg_VeM2M7A_w#e7xpwm|=ZdG|@Tzi++ohE_toojd<1~Osal%Nl>$-Selt7tgh9C%2nd8HU4}sx@%p`PB?|qarSeC`@(h9594K80e!?l}t zxqRVF{7z37CgRXKU6^2bBjN}E&+}qZOcJD&l7HR20l=AaUjyixBb0FljX1@w)f_C# ziWeApM>M89Bk4U!S;Y|mjekZ1UDv5rs|X>;X0v>7>yP~PpC3@IR{6uV>%8^7?|01+ z!!m@NE=;7zv6UMj$}bcrB*UnZwJa+YC2ZR!o6Ta|HlF9PQK?X^Rsq=Dsw0Hh7e|!K z<$+#9Gml8_bn?1hug4@hKX*DskV@9~+*rv>CPNs8IF5r5BIbv$Tz`6l^_3OYS62AJ zPktKb9-|X8K({Q5Y0F|UTTUr@yR-sC(IlB>tLM{&2_BVKS^sYZ-}lgUowc>KICLhl zxw*;PKl~A47_zpuhOX<3jg9eaNJ@4CT@_Es%ClatbK}kfE}frE)RuEUe{nfD5 z2(X8O?vwC?kT1-CJ-%-jKAVk`!MExZDXPRu zDV~Hfh%&(ZTs}&osvFGC%*3hl`bHH^(>QfVt zy3UIyj`Q&+tK{oBeBV#W2a~7vV~2sE=YGV8A3X#?+8@x)s(>vUWJGy=6_lutU5mHKYDUnjdQ9w#bp-^CKYz)&h$>nnxh7pgo%8vqc z)sIl+b@IBkAE5|T;p|L-<@;so4F^q=arv!6rhjRgY;A2}+cuVM#pA8=?a;dOgU%;< z?neM|CbQzhekNxU?NUh1m9T)d*1Xqk{hdW-)SNKhY4700000NkvXXu0mjf#qr!q delta 2725 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 diff --git a/src/main/resources/assets/hbm/textures/models/machines/drone_express.png b/src/main/resources/assets/hbm/textures/models/machines/drone_express.png new file mode 100644 index 0000000000000000000000000000000000000000..e2150991008791ee30dd0ee295e5d543cd4bae04 GIT binary patch literal 2744 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 y7d_(VpMM4#F>z< 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 N002ovPDHLkV1o3YS|0!a literal 0 HcmV?d00001 From 9528ce8afef2ec331427edeb20034315331a0eab Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 24 Sep 2023 20:31:04 +0200 Subject: [PATCH 317/432] redcoil fix, no more shredding of blocks with the "Any" prefix, GUIs --- .../inventory/recipes/ShredderRecipes.java | 6 +-- src/main/java/com/hbm/items/ModItems.java | 2 +- .../com/hbm/items/machine/ItemCapacitor.java | 39 ++------------ .../hbm/items/tool/ItemTitaniumFilter.java | 51 ++++++++++++++++++ ...eEntityMachineSchrabidiumTransmutator.java | 7 ++- .../machine/TileEntityWatzCore.java | 6 +-- .../textures/gui/storage/gui_drone_dock.png | Bin 0 -> 1313 bytes .../gui/storage/gui_drone_provider.png | Bin 0 -> 1239 bytes .../gui/storage/gui_drone_requester.png | Bin 0 -> 1389 bytes 9 files changed, 64 insertions(+), 47 deletions(-) create mode 100644 src/main/java/com/hbm/items/tool/ItemTitaniumFilter.java create mode 100644 src/main/resources/assets/hbm/textures/gui/storage/gui_drone_dock.png create mode 100644 src/main/resources/assets/hbm/textures/gui/storage/gui_drone_provider.png create mode 100644 src/main/resources/assets/hbm/textures/gui/storage/gui_drone_requester.png diff --git a/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java b/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java index e4e3e68af..aee7d21ae 100644 --- a/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java @@ -46,6 +46,8 @@ public class ShredderRecipes extends SerializableRecipe { if(name == null || name.isEmpty()) continue; + if(name.contains("Any")) continue; + List matches = OreDictionary.getOres(name); //if the name isn't assigned to an ore, also skip @@ -94,10 +96,6 @@ public class ShredderRecipes extends SerializableRecipe { String matName = name.substring(len); - //skip over genericized names so we don't accidentally convert item groups - if(matName.startsWith("Any")) - return; - ItemStack dust = getDustByName(matName); if(dust != null && dust.getItem() != ModItems.scrap) { diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 784625ea1..a080abd59 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -4410,7 +4410,7 @@ public class ModItems { fuse = new ItemCustomLore().setUnlocalizedName("fuse").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fuse"); redcoil_capacitor = new ItemCapacitor(10).setUnlocalizedName("redcoil_capacitor").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":redcoil_capacitor"); euphemium_capacitor = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("euphemium_capacitor").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":redcoil_capacitor_euphemium"); - titanium_filter = new ItemCapacitor(6 * 60 * 60 * 20).setUnlocalizedName("titanium_filter").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":titanium_filter"); + titanium_filter = new ItemTitaniumFilter(6 * 60 * 60 * 20).setUnlocalizedName("titanium_filter").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":titanium_filter"); screwdriver = new ItemTooling(ToolType.SCREWDRIVER, 100).setUnlocalizedName("screwdriver"); screwdriver_desh = new ItemTooling(ToolType.SCREWDRIVER, 0).setUnlocalizedName("screwdriver_desh"); hand_drill = new ItemTooling(ToolType.HAND_DRILL, 100).setUnlocalizedName("hand_drill"); diff --git a/src/main/java/com/hbm/items/machine/ItemCapacitor.java b/src/main/java/com/hbm/items/machine/ItemCapacitor.java index 57ee26b2c..2d2147615 100644 --- a/src/main/java/com/hbm/items/machine/ItemCapacitor.java +++ b/src/main/java/com/hbm/items/machine/ItemCapacitor.java @@ -8,15 +8,13 @@ import net.minecraft.entity.effect.EntityLightningBolt; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; public class ItemCapacitor extends Item { - private int dura; public ItemCapacitor(int dura) { - this.dura = dura; + this.setMaxDamage(dura); } @Override @@ -24,11 +22,7 @@ public class ItemCapacitor extends Item { if (this == ModItems.redcoil_capacitor) { list.add("Right-click a block to negate positive charge."); list.add("[Needed for Schrabidium Synthesis]"); - list.add(getDura(itemstack) + "/" + dura); - } - if (this == ModItems.titanium_filter) { - list.add("[Needed for Watz Reaction]"); - list.add((getDura(itemstack) / 20) + "/" + (dura / 20)); + list.add((itemstack.getMaxDamage() - itemstack.getItemDamage()) + "/" + itemstack.getMaxDamage()); } } @@ -39,9 +33,9 @@ public class ItemCapacitor extends Item { if (!player.isSneaking()) { - if (getDura(stack) < dura) { + if(stack.getItemDamage() > 0) { - setDura(stack, getDura(stack) + 1); + stack.setItemDamage(stack.getItemDamage() - 1); if (!world.isRemote) { world.createExplosion(null, x + 0.5, y + 0.5, z + 0.5, 2.5F, true); @@ -55,29 +49,4 @@ public class ItemCapacitor extends Item { return false; } - - public boolean showDurabilityBar(ItemStack stack) { - return getDurabilityForDisplay(stack) > 0; - } - - public static int getDura(ItemStack stack) { - - if(stack.stackTagCompound == null) - return ((ItemCapacitor)stack.getItem()).dura; - - return stack.stackTagCompound.getInteger("dura"); - } - - public static void setDura(ItemStack stack, int dura) { - - if(!stack.hasTagCompound()) - stack.stackTagCompound = new NBTTagCompound(); - - stack.stackTagCompound.setInteger("dura", dura); - } - - public double getDurabilityForDisplay(ItemStack stack) - { - return 1D - (double)getDura(stack) / (double)dura; - } } diff --git a/src/main/java/com/hbm/items/tool/ItemTitaniumFilter.java b/src/main/java/com/hbm/items/tool/ItemTitaniumFilter.java new file mode 100644 index 000000000..322d5f574 --- /dev/null +++ b/src/main/java/com/hbm/items/tool/ItemTitaniumFilter.java @@ -0,0 +1,51 @@ +package com.hbm.items.tool; + +import java.util.List; + +import com.hbm.items.ModItems; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; + +public class ItemTitaniumFilter extends Item { + + private int dura; + + public ItemTitaniumFilter(int dura) { + this.dura = dura; + } + + @Override + public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { + if(this == ModItems.titanium_filter) { + list.add("[Needed for Watz Reaction]"); + list.add((getDura(itemstack) / 20) + "/" + (dura / 20)); + } + } + + public boolean showDurabilityBar(ItemStack stack) { + return getDurabilityForDisplay(stack) > 0; + } + + public static int getDura(ItemStack stack) { + + if(stack.stackTagCompound == null) + return ((ItemTitaniumFilter) stack.getItem()).dura; + + return stack.stackTagCompound.getInteger("dura"); + } + + public static void setDura(ItemStack stack, int dura) { + + if(!stack.hasTagCompound()) + stack.stackTagCompound = new NBTTagCompound(); + + stack.stackTagCompound.setInteger("dura", dura); + } + + public double getDurabilityForDisplay(ItemStack stack) { + return 1D - (double) getDura(stack) / (double) dura; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java index ba08db645..bed920b68 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java @@ -6,7 +6,6 @@ import com.hbm.inventory.container.ContainerMachineSchrabidiumTransmutator; import com.hbm.inventory.gui.GUIMachineSchrabidiumTransmutator; import com.hbm.inventory.recipes.MachineRecipes; import com.hbm.items.ModItems; -import com.hbm.items.machine.ItemCapacitor; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.sound.AudioWrapper; @@ -89,7 +88,7 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntityMachineB @Override public boolean canExtractItem(int i, ItemStack stack, int j) { - if (i == 2 && stack.getItem() != null && (stack.getItem() == ModItems.redcoil_capacitor && ItemCapacitor.getDura(stack) <= 0) || stack.getItem() == ModItems.euphemium_capacitor) { + if (i == 2 && stack.getItem() != null && (stack.getItem() == ModItems.redcoil_capacitor && stack.getItemDamage() == stack.getMaxDamage()) || stack.getItem() == ModItems.euphemium_capacitor) { return true; } @@ -115,7 +114,7 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntityMachineB public boolean canProcess() { if (power >= 4990000 && slots[0] != null && MachineRecipes.mODE(slots[0], OreDictManager.U.ingot()) && slots[2] != null - && (slots[2].getItem() == ModItems.redcoil_capacitor && ItemCapacitor.getDura(slots[2]) > 0 || slots[2].getItem() == ModItems.euphemium_capacitor) + && (slots[2].getItem() == ModItems.redcoil_capacitor && slots[2].getItemDamage() < slots[2].getMaxDamage() || slots[2].getItem() == ModItems.euphemium_capacitor) && (slots[1] == null || (slots[1] != null && slots[1].getItem() == VersatileConfig.getTransmutatorItem() && slots[1].stackSize < slots[1].getMaxStackSize()))) { return true; @@ -146,7 +145,7 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntityMachineB slots[1].stackSize++; } if (slots[2] != null && slots[2].getItem() == ModItems.redcoil_capacitor) { - ItemCapacitor.setDura(slots[2], ItemCapacitor.getDura(slots[2]) - 1); + slots[2].setItemDamage(slots[2].getItemDamage() + 1); } this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "ambient.weather.thunder", 10000.0F, diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityWatzCore.java b/src/main/java/com/hbm/tileentity/machine/TileEntityWatzCore.java index 95db0d668..ad410410b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityWatzCore.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityWatzCore.java @@ -18,8 +18,8 @@ import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIWatzCore; import com.hbm.items.ModItems; -import com.hbm.items.machine.ItemCapacitor; import com.hbm.items.special.WatzFuel; +import com.hbm.items.tool.ItemTitaniumFilter; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.packet.AuxElectricityPacket; @@ -504,7 +504,7 @@ public class TileEntityWatzCore extends TileEntityLoadedBase implements ISidedIn @Override public boolean hasFuse() { - return slots[38] != null && slots[38].getItem() == ModItems.titanium_filter && ItemCapacitor.getDura(slots[38]) > 0; + return slots[38] != null && slots[38].getItem() == ModItems.titanium_filter && ItemTitaniumFilter.getDura(slots[38]) > 0; } @Override @@ -576,7 +576,7 @@ public class TileEntityWatzCore extends TileEntityLoadedBase implements ISidedIn //Only damages filter when heat is present (thus waste being created) if (heatList > 0) { - ItemCapacitor.setDura(slots[38], ItemCapacitor.getDura(slots[38]) - 1); + ItemTitaniumFilter.setDura(slots[38], ItemTitaniumFilter.getDura(slots[38]) - 1); } heatList *= heatMultiplier; diff --git a/src/main/resources/assets/hbm/textures/gui/storage/gui_drone_dock.png b/src/main/resources/assets/hbm/textures/gui/storage/gui_drone_dock.png new file mode 100644 index 0000000000000000000000000000000000000000..4bcea800caae298f74a61db1aa791232e0bf9b37 GIT binary patch literal 1313 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K5893O0R7}x|G$6%N?Bp530R%N1DIGxW4Nn)x zkcv5P?*``0&Jt<8=zP`l>O3~#jYn*31dRD?bly2XS@qR-u2tKo_Py7lLtnC}KI9ho zy=3*@+1u?JcuS+@8FFv`Ha}r=e&_T0>!qQ;|4V&t%8!;m(6z|_->OxavsP_d-|*wW zyn3rYVhyjq?s~W|=W&f)c<9xqMJsQ8zdp>c-zXI=*qG*?$Pyb) z)H2lGziz;@dp7g=E}jDxefs$icjkV|%{#oD`nIAI-njuwE#Q zHTS>#B&EUr#&1!FatoPlc5S|~dec{}%6t8Ifv@I$iO<*AH!Pg8-Vm7hK)_*3e7wq} zKS`4N#Psu`PP`SiJiqz#{Phc8@6r;CII_Ly)90f;mqVU*l?uk*Wj&B46;)nczTDhu z@4M~g%vL`YPv5)G$77>_HIX2DazlH)bU~;6(!1Yldmm@?S|24n!~O53Jcm!qACW1}2o4YZY;!*J z>wkOxJmm?Nx@UIY=P0q8zk1cHqMadoYxzHWnla71{6|K*@!Dfa1{QoKqo@BI7Ng}q zE!P}(Qz)J_KUw)g6-2;{Y3*@iT)73i`8PRI{5}^)oIl*_a6w7BaoS@saMl7U{`Ns} z!P*1QwirCG(>6H0QS`=~XU{7v_R4K17|bZ)vKg##gIsju&!QaGxV~tp`+fxFP5-a+ zxH_~n_WIe&CO@Az&A1ItD`vI=6>aPdr+55kIX7E|)#m(3en=vrlzjbzUt@0Jz0ReM Q&p}3cy85}Sb4q9e0DiOFp#T5? literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/gui/storage/gui_drone_provider.png b/src/main/resources/assets/hbm/textures/gui/storage/gui_drone_provider.png new file mode 100644 index 0000000000000000000000000000000000000000..5c3ef3032ce732a1b922a4643ad8fcd5ffde87af GIT binary patch literal 1239 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K5893O0R7}x|G$6%N?Bp530R%N1DIGv=pQnps zNX4ADcOT~7ju2?QSm`)x(-k&p!2@<79TDuIV&B^zCOkfCHPN;0{GR6`29+Dm>We7$ zM#YW?QxxNq_4 zKc7A8gS!3iE2h-OtiQf$)vmjFp~wHle)e?V$NWR_w+bvh=62h>muf8!xZ@T<^#)kWy+zwY? zyM9`eD3LX5*}7+Q&OcxNe1fVGL+E<(GsedX*JRGxHLLi`Zs}{!6&0`eyotg>Nl$N;(#ry*z(5l`$I?wS3( z!Eq!`iTT29HF@dA8{R1lt8!SHw9Ydq%z}FwO&=mO;1Xgx`4?>WwKHSdIQ;|z(AS~U z(!ZFo%ZZ9M{Qes^{dDU4WC!y_OaY;#d*i;_F_j#4KF};=_3y~U_Y6_lxig>NJj(F@ z@r!bXwLR<^KhX&n)y`yJ}i$QuJ>KbxGxVzm6Xr5RK1abwIx2{#r!wE`t>a-{fuFTT;& z>+r0^{Q87IV`vO($Ug3K4XBnVYA?gIq#ltn9Fa@U=)_?fJ1@;5mqxLI&wz2;Ib6=vwDwhS? z{!-_PJ{4bjSg@j~^~Tg`rvKC!jz8Y`Fhj2SZeDn3=?g6TwFZ6@BN`k{99t6ldL5QOzrk_E{yWx? z!EPTg$kLPp*sE?oNmdTvlWr6{vr+KH7nxt_$`_g}&6wuS0}B7Y!;BipIE{iz^g77C z$erBZ>tOj#m0|YTWhX!N+dT$N@@F z1pIpA>J#$7zrCPW}X$ z{qWfTyv6QjOfxV4m62||_E-*_9|$-fk%MwrjF$hlTyxw_p?KH)WaSH05CJo$wa0A< zh62JEU`D*jk>dBgIO6=tUWW_H(v7!1ior5x*(bFHYY#m8V(|Q1Si-H1qBrKed%nYR zuUtMOwyccP>1o;HoKU+_I`IQR3O*hYwD+8kmPO z9De%rX|o*19}aVd+dKZUoZ~MN`S5toA4u|`l-$s_pOG! Date: Mon, 25 Sep 2023 16:42:02 +0200 Subject: [PATCH 318/432] even more drone crate stuff --- src/main/java/com/hbm/blocks/ModBlocks.java | 15 +- .../com/hbm/blocks/network/DroneDock.java | 39 ++++ .../TileEntityDroneWaypointRequest.java | 154 +--------------- .../network/TileEntityRequestNetwork.java | 172 ++++++++++++++++++ .../blocks/drone_crate_provider_bottom.png | Bin 0 -> 764 bytes .../drone_crate_provider_bottom.png.mcmeta | 5 + .../blocks/drone_crate_provider_side.png | Bin 0 -> 834 bytes .../drone_crate_provider_side.png.mcmeta | 5 + .../blocks/drone_crate_provider_top.png | Bin 0 -> 732 bytes .../drone_crate_provider_top.png.mcmeta | 5 + .../blocks/drone_crate_requester_bottom.png | Bin 0 -> 797 bytes .../drone_crate_requester_bottom.png.mcmeta | 5 + .../blocks/drone_crate_requester_side.png | Bin 0 -> 896 bytes .../drone_crate_requester_side.png.mcmeta | 5 + .../blocks/drone_crate_requester_top.png | Bin 0 -> 772 bytes .../drone_crate_requester_top.png.mcmeta | 5 + .../hbm/textures/blocks/drone_dock_bottom.png | Bin 0 -> 528 bytes .../hbm/textures/blocks/drone_dock_side.png | Bin 0 -> 675 bytes .../blocks/drone_dock_side.png.mcmeta | 5 + .../hbm/textures/blocks/drone_dock_top.png | Bin 0 -> 523 bytes .../gui/storage/gui_drone_provider.png | Bin 1239 -> 1279 bytes .../gui/storage/gui_drone_requester.png | Bin 1389 -> 1440 bytes 22 files changed, 259 insertions(+), 156 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/network/DroneDock.java create mode 100644 src/main/java/com/hbm/tileentity/network/TileEntityRequestNetwork.java create mode 100644 src/main/resources/assets/hbm/textures/blocks/drone_crate_provider_bottom.png create mode 100755 src/main/resources/assets/hbm/textures/blocks/drone_crate_provider_bottom.png.mcmeta create mode 100644 src/main/resources/assets/hbm/textures/blocks/drone_crate_provider_side.png create mode 100755 src/main/resources/assets/hbm/textures/blocks/drone_crate_provider_side.png.mcmeta create mode 100644 src/main/resources/assets/hbm/textures/blocks/drone_crate_provider_top.png create mode 100755 src/main/resources/assets/hbm/textures/blocks/drone_crate_provider_top.png.mcmeta create mode 100644 src/main/resources/assets/hbm/textures/blocks/drone_crate_requester_bottom.png create mode 100755 src/main/resources/assets/hbm/textures/blocks/drone_crate_requester_bottom.png.mcmeta create mode 100644 src/main/resources/assets/hbm/textures/blocks/drone_crate_requester_side.png create mode 100755 src/main/resources/assets/hbm/textures/blocks/drone_crate_requester_side.png.mcmeta create mode 100644 src/main/resources/assets/hbm/textures/blocks/drone_crate_requester_top.png create mode 100755 src/main/resources/assets/hbm/textures/blocks/drone_crate_requester_top.png.mcmeta create mode 100644 src/main/resources/assets/hbm/textures/blocks/drone_dock_bottom.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/drone_dock_side.png create mode 100755 src/main/resources/assets/hbm/textures/blocks/drone_dock_side.png.mcmeta create mode 100644 src/main/resources/assets/hbm/textures/blocks/drone_dock_top.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index c297d4391..fc09defc2 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -821,8 +821,11 @@ public class ModBlocks { public static Block crane_splitter; public static Block drone_waypoint; - public static Block drone_waypoint_request; public static Block drone_crate; + public static Block drone_waypoint_request; + public static Block drone_dock; + public static Block drone_crate_provider; + public static Block drone_crate_requester; public static Block fan; @@ -1995,8 +1998,11 @@ public class ModBlocks { piston_inserter = new PistonInserter().setBlockName("piston_inserter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); drone_waypoint = new DroneWaypoint().setBlockName("drone_waypoint").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":drone_waypoint"); - drone_waypoint_request = new DroneWaypointRequest().setBlockName("drone_waypoint_request").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":drone_waypoint_request"); drone_crate = new DroneCrate().setBlockName("drone_crate").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + drone_waypoint_request = new DroneWaypointRequest().setBlockName("drone_waypoint_request").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":drone_waypoint_request"); + drone_dock = new DroneDock().setBlockName("drone_dock").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":drone_dock"); + drone_crate_provider = new DroneDock().setBlockName("drone_crate_provider").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":drone_crate_provider"); + drone_crate_requester = new DroneDock().setBlockName("drone_crate_requester").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":drone_crate_requester"); chain = new BlockChain(Material.iron).setBlockName("dungeon_chain").setHardness(0.25F).setResistance(2.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":chain"); @@ -3258,8 +3264,11 @@ public class ModBlocks { register(conveyor_lift); register(crane_splitter); register(drone_waypoint); - register(drone_waypoint_request); register(drone_crate); + register(drone_waypoint_request); + register(drone_dock); + register(drone_crate_provider); + register(drone_crate_requester); register(fan); register(piston_inserter); diff --git a/src/main/java/com/hbm/blocks/network/DroneDock.java b/src/main/java/com/hbm/blocks/network/DroneDock.java new file mode 100644 index 000000000..bee33693f --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/DroneDock.java @@ -0,0 +1,39 @@ +package com.hbm.blocks.network; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; + +public class DroneDock extends BlockContainer { + + @SideOnly(Side.CLIENT) private IIcon iconTop; + @SideOnly(Side.CLIENT) private IIcon iconBottom; + + public DroneDock() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return null; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister reg) { + this.blockIcon = reg.registerIcon(this.textureName + "_side"); + this.iconTop = reg.registerIcon(this.textureName + "_top"); + this.iconBottom = reg.registerIcon(this.textureName + "_bottom"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + return side == 1 ? this.iconTop : (side == 0 ? this.iconBottom : this.blockIcon); + } +} diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityDroneWaypointRequest.java b/src/main/java/com/hbm/tileentity/network/TileEntityDroneWaypointRequest.java index b7bb9e52d..a4135d3b9 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityDroneWaypointRequest.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityDroneWaypointRequest.java @@ -1,107 +1,21 @@ package com.hbm.tileentity.network; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Set; - -import com.hbm.util.ParticleUtil; import com.hbm.util.fauxpointtwelve.BlockPos; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MathHelper; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkCoordIntPair; -import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityDroneWaypointRequest extends TileEntity { - - public static HashMap>> activeWaypoints = new HashMap(); - public static HashMap lastActive = new HashMap(); - public static long lastWipe = 0; - - public Set reachableNodes = new HashSet(); - public Set knownNodes = new HashSet(); - public static final int maxRange = 24; - public static final int maxAge = 1_000; +public class TileEntityDroneWaypointRequest extends TileEntityRequestNetwork { public int height = 5; @Override - public void updateEntity() { - - if(!worldObj.isRemote) { - - if(worldObj.getTotalWorldTime() % 20 == 0) { - BlockPos pos = getCoord(); - push(worldObj, pos); - - for(BlockPos known : knownNodes) { - ParticleUtil.spawnDebugLine(worldObj, - pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, - (known.getX() - pos.getX()) / 2D, (known.getY() - pos.getY()) / 2D, (known.getZ() - pos.getZ()) / 2D, - reachableNodes.contains(known) ? 0x00ff00 : 0xff0000); - } - - //rescan known nodes - if(worldObj.getTotalWorldTime() % 40 == 0 && knownNodes.size() > 0) { - - BlockPos node = (BlockPos) new ArrayList(knownNodes).get(knownNodes.size() > 1 ? worldObj.rand.nextInt(knownNodes.size() - 1) : 0); - - if(node != null) { - - Long timestamp = lastActive.get(node); - - if(timestamp == null || timestamp < System.currentTimeMillis() - maxAge) { - knownNodes.remove(node); - reachableNodes.remove(node); - lastActive.remove(node); - } else if(!hasPath(worldObj, pos, node)) { - reachableNodes.remove(node); - } else { - reachableNodes.add(node); - } - } - - //discover new nodes - } else { - - Set nodes = getAllLocalNodes(worldObj, pos.getX(), pos.getZ()); - - for(BlockPos node : nodes) { - - if(!knownNodes.contains(node) && !node.equals(pos)) { - knownNodes.add(node); - if(hasPath(worldObj, pos, node)) reachableNodes.add(node); - break; - } - } - } - } - } - } - public BlockPos getCoord() { ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); return new BlockPos(xCoord + dir.offsetX * height, yCoord + dir.offsetY * height, zCoord + dir.offsetZ * height); } - public static boolean hasPath(World world, BlockPos pos1, BlockPos pos2) { - Vec3 vec1 = Vec3.createVectorHelper(pos1.getX() + 0.5, pos1.getY() + 0.5, pos1.getZ() + 0.5); - Vec3 vec2 = Vec3.createVectorHelper(pos2.getX() + 0.5, pos2.getY() + 0.5, pos2.getZ() + 0.5); - Vec3 vec3 = vec1.subtract(vec2); - if(vec3.lengthVector() > maxRange) return false; - //for some fucking reason beyond any human comprehension, this function will randomly yield incorrect results but only from one side - //therefore we just run the stupid fucking thing twice and then compare the results - //thanks for this marvelous piece of programming, mojang - MovingObjectPosition mop0 = world.func_147447_a(vec1, vec2, false, true, false); - MovingObjectPosition mop2 = world.func_147447_a(vec2, vec1, false, true, false); - return (mop0 == null || mop0.typeOfHit == mop0.typeOfHit.MISS) && (mop2 == null || mop2.typeOfHit == mop2.typeOfHit.MISS); - } - public void addHeight(int h) { height += h; height = MathHelper.clamp_int(height, 1, 15); @@ -120,70 +34,4 @@ public class TileEntityDroneWaypointRequest extends TileEntity { nbt.setInteger("height", height); } - - /** - * Adds the position to that chunk's node list. - * @param world - * @param x - * @param y - * @param z - */ - public static void push(World world, BlockPos pos) { - - HashMap> coordMap = activeWaypoints.get(world); - - if(coordMap == null) { - coordMap = new HashMap(); - activeWaypoints.put(world, coordMap); - } - - ChunkCoordIntPair chunkPos = new ChunkCoordIntPair(pos.getX() >> 4, pos.getZ() >> 4); - Set posList = coordMap.get(chunkPos); - - if(posList == null) { - posList = new HashSet(); - coordMap.put(chunkPos, posList); - } - - posList.add(pos); - - lastActive.put(pos, System.currentTimeMillis()); - } - - /** - * Gets all active nodes in a 5x5 chunk area, centered around the given position. - * Used for finding neighbors to check connections to. - * @param world - * @param x - * @param z - * @return - */ - public static Set getAllLocalNodes(World world, int x, int z) { - - Set nodes = new HashSet(); - - x >>= 4; - z >>= 4; - - HashMap> coordMap = activeWaypoints.get(world); - - if(coordMap == null) return nodes; - - for(int i = -2; i <= 2; i++) { - for(int j = -2; j <= 2; j++) { - - Set posList = coordMap.get(new ChunkCoordIntPair(x + i, z + j)); - - if(posList != null) for(BlockPos node : posList) { - Long timestamp = lastActive.get(node); - - if(timestamp != null && timestamp >= System.currentTimeMillis() - maxAge) { - nodes.add(node); - } - } - } - } - - return nodes; - } } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetwork.java b/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetwork.java new file mode 100644 index 000000000..0ae16c2df --- /dev/null +++ b/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetwork.java @@ -0,0 +1,172 @@ +package com.hbm.tileentity.network; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Set; + +import com.hbm.util.ParticleUtil; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; +import net.minecraft.world.ChunkCoordIntPair; +import net.minecraft.world.World; + +public class TileEntityRequestNetwork extends TileEntity { + + public static HashMap>> activeWaypoints = new HashMap(); + public static HashMap lastActive = new HashMap(); + public static long lastWipe = 0; + + public Set reachableNodes = new HashSet(); + public Set knownNodes = new HashSet(); + public static final int maxRange = 24; + public static final int maxAge = 2_000; + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + if(worldObj.getTotalWorldTime() % 20 == 0) { + BlockPos pos = getCoord(); + push(worldObj, pos); + + for(BlockPos known : knownNodes) { + ParticleUtil.spawnDebugLine(worldObj, + pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, + (known.getX() - pos.getX()) / 2D, (known.getY() - pos.getY()) / 2D, (known.getZ() - pos.getZ()) / 2D, + reachableNodes.contains(known) ? 0x00ff00 : 0xff0000); + } + + //rescan known nodes + if(worldObj.getTotalWorldTime() % 40 == 0 && knownNodes.size() > 0) { + + BlockPos node = (BlockPos) new ArrayList(knownNodes).get(knownNodes.size() > 1 ? worldObj.rand.nextInt(knownNodes.size() - 1) : 0); + + if(node != null) { + + Long timestamp = lastActive.get(node); + + if(timestamp == null || timestamp < System.currentTimeMillis() - maxAge) { + knownNodes.remove(node); + reachableNodes.remove(node); + lastActive.remove(node); + } else if(!hasPath(worldObj, pos, node)) { + reachableNodes.remove(node); + } else { + reachableNodes.add(node); + } + } + + //discover new nodes + } else { + + Set nodes = getAllLocalNodes(worldObj, pos.getX(), pos.getZ()); + + for(BlockPos node : nodes) { + + if(!knownNodes.contains(node) && !node.equals(pos)) { + knownNodes.add(node); + if(hasPath(worldObj, pos, node)) reachableNodes.add(node); + break; + } + } + } + } + } + } + + public BlockPos getCoord() { + return new BlockPos(xCoord, yCoord + 1, zCoord); + } + + /** + * Performs a bidirectional scan to see if the nodes have line of sight + * @param world + * @param pos1 + * @param pos2 + * @return + */ + public static boolean hasPath(World world, BlockPos pos1, BlockPos pos2) { + Vec3 vec1 = Vec3.createVectorHelper(pos1.getX() + 0.5, pos1.getY() + 0.5, pos1.getZ() + 0.5); + Vec3 vec2 = Vec3.createVectorHelper(pos2.getX() + 0.5, pos2.getY() + 0.5, pos2.getZ() + 0.5); + Vec3 vec3 = vec1.subtract(vec2); + if(vec3.lengthVector() > maxRange) return false; + //for some fucking reason beyond any human comprehension, this function will randomly yield incorrect results but only from one side + //therefore we just run the stupid fucking thing twice and then compare the results + //thanks for this marvelous piece of programming, mojang + MovingObjectPosition mop0 = world.func_147447_a(vec1, vec2, false, true, false); + MovingObjectPosition mop2 = world.func_147447_a(vec2, vec1, false, true, false); + return (mop0 == null || mop0.typeOfHit == mop0.typeOfHit.MISS) && (mop2 == null || mop2.typeOfHit == mop2.typeOfHit.MISS); + } + + /** + * Adds the position to that chunk's node list. + * @param world + * @param x + * @param y + * @param z + */ + public static void push(World world, BlockPos pos) { + + HashMap> coordMap = activeWaypoints.get(world); + + if(coordMap == null) { + coordMap = new HashMap(); + activeWaypoints.put(world, coordMap); + } + + ChunkCoordIntPair chunkPos = new ChunkCoordIntPair(pos.getX() >> 4, pos.getZ() >> 4); + Set posList = coordMap.get(chunkPos); + + if(posList == null) { + posList = new HashSet(); + coordMap.put(chunkPos, posList); + } + + posList.add(pos); + + lastActive.put(pos, System.currentTimeMillis()); + } + + /** + * Gets all active nodes in a 5x5 chunk area, centered around the given position. + * Used for finding neighbors to check connections to. + * @param world + * @param x + * @param z + * @return + */ + public static Set getAllLocalNodes(World world, int x, int z) { + + Set nodes = new HashSet(); + + x >>= 4; + z >>= 4; + + HashMap> coordMap = activeWaypoints.get(world); + + if(coordMap == null) return nodes; + + for(int i = -2; i <= 2; i++) { + for(int j = -2; j <= 2; j++) { + + Set posList = coordMap.get(new ChunkCoordIntPair(x + i, z + j)); + + if(posList != null) for(BlockPos node : posList) { + Long timestamp = lastActive.get(node); + + if(timestamp != null && timestamp >= System.currentTimeMillis() - maxAge) { + nodes.add(node); + } + } + } + } + + return nodes; + } + +} diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_crate_provider_bottom.png b/src/main/resources/assets/hbm/textures/blocks/drone_crate_provider_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..c7d04c9a352e326ac1694bc6378cfe89772fce57 GIT binary patch literal 764 zcmVVx+qUf9wtVsS&sb{_LQqu|&N;N!eDv*W z?C)*Uwk`hAJ^H>!gb)ZJ(6%i{M@Im7@2Tq=DJ3BUs;XkKSO8?5)|#RyP*O^ylDh%us+Vm8xQYjcuwj;3k&{LLRJ z%M#}tRdoR&1R|LugkWQ1gBT+KLI`HFSvGLFToOWHwOV0}VVb73E)`Hp5o1IMfwh(x zBjY&cBGWV>grKf#hG9T!z0ULApD`{yqm+^uBeU6z7$e?$gb)nFfKrO0DAptQeVrxd*$)vvpjhB*B77gK+n$Q!L{FBe!_zb)&D&B+j+3}!Y|pd_l{mVmj_>8e3&(# u{_)oO;>3en+xxt)ZvxNeLDKz)crs z2!V6~mnj1wZ9+&$x6O77+le$;T&?XOKNw4XNJzGXN47?<(Va;lG!Tfz7AZo=>F@dO zcka1A3JUe`};JT zP2%x50KV^|wGIvE(pn>>B$vxktJN?~6H_V0_VzZu@6&3v`0?Tk7U|b#2iUevqtTcd zXsxMKDwNA*lu~^80p{BjYfl3tHs*d z8sqU8fFK9}{%YX+K0*kNkB`~d*uXSRJkR6u@{(LGhY%ussc1Bc)*5pHn7+0g$AzcG8hcV=kuJNp3-Wy=yW=y(`oMS?~ziH zNF)FdLd;ee34u`X$j^l(4J3Kt3-EOnKzD_I_!}oon(I`qO zYPA}ho0}w)NuI5Kix2|CFfgT*?Ck7tetwSQIDGfVb9nbikKe%0pY@2x;~X6w%`)&j zkGs1&9LFJ-%kh1oLM#>wD?A#Fm`_xngG!~N#c zT8G`3w{@=hk2TBXGXE|f{PvOaNP;u%^`9>0!H1P6i+Nz5{XGx%qA%Z@2fu&f{?7yc zn>^U-KYec=eDG@NaUQ%bUjy|=iu{(ZH$Ps?gU_!Di+NxK|11yw1lp^4c!Fv#umAu6 M07*qoM6N<$f*RwE@Bjb+ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_crate_provider_side.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/drone_crate_provider_side.png.mcmeta new file mode 100755 index 000000000..92dd223c8 --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/drone_crate_provider_side.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 10 + } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_crate_provider_top.png b/src/main/resources/assets/hbm/textures/blocks/drone_crate_provider_top.png new file mode 100644 index 0000000000000000000000000000000000000000..824bd9421e2335b5bba09ee7263f581e58552cdf GIT binary patch literal 732 zcmV<20wev2P)ko_Xh; zXP)^vPi|eQwAM7`x-L~!F&d4~T9YIRp63zAF~%68C}M1Ej3|m24u>eMHA_oN7-Nu9 z0#KGE#u(eMsYbK5wnn?%Mk$4IT^C~vr)K8}!;s#5mpey~lcp&`2t3b2YmM*wTzmP9 zh1-jSVMy`jA#ofdj4>Ev2*Z%UU;sc-6a+zlloDeMp64+djR369_kA44K}ji*Qqr66 z+EG_mR}n%WrKBuNgb?I;4q$b2(=$jZ>mx`hxjA*1vMkxy*kCaD%udytI>5xl1X^o6 zZyX^6sxe0hf$#gQudf5}_}kBm&vj~Zvn(SB0;;M4Kr{`MQg+cn?ZAEhyEYZ6D=RBZPEOi| z?RFc-ad2IiG)*ar!akm=s%*Ub{XS|q9Fk=j%gf8#Of$yVY;3*W=EbV%>1qBh9`w6C zPF_5=BM+Y5d(P#>g+IiDez#{w{S^-y-JYwbe&)fE3x_s&5PsU8V_@p^{!Jc?d;fXx z+j;Qf!D}l#IJ0+09=v-ru$uGN&(uvD9yAH-cYC|?-~(T*PKf@$!h;`iBUa@YvLTKD O0000!;H4U9G#kY#saKobMS$Yi*|WH&LGpgZV$tGhnhpy^^}8H{$pzylTa zdrqD6*6AmEaR2(~oMVnW&l$&&&1Qphj;`w{%aXQj2_eul4LdtKG)=>Ly+%3bI6gim zgn*P1fEXhogj8^jS#x%FhA{@E6e`biLI_-a>lUlkishl@yU%{XT8j{ZvMh1Vp|$42 zFJ9;9_8zO%3h(aHwk;xrKnQ`=YQ@RP2>{-Es;WXtNeF?mEZJ-}07<8{Cd)FEloBZ= z%R>u13xKtjVHi+K5kkOwkF^#c>2AI9H&V)J1Sut7e)KajMwC(%g~nQ&lALqYbrhIOW!W@x+qS9Y zuIrL{F-BsHIOkAGQP(xjIgBw3!+;QC%A21@2$4=**Xb4^1j8_}-EPVA9BVDcnB<$9 zXS{Lq?PS>3pWMTHpE{XG{P?Rkljg^RKLJop(*UFmTOL}fs$v)h`o2eNjdL!o`K%K{ zOdZZ29^J&*ykQv9GM(2crKS#?b1W7M7Ulta&v{;Yag8xgk!2aXySrFx@!n&M;iqr^ zVjM@Fc{(6vITcv1*YthQ>FFttMhGG8#@y)~^B=4B_xJg4@!*bK^1;q)m-68IvtK#b zJ9O~&BtDZl{gW^&iTz4;@<3ag94<0)YZg2ibhP~Ila48Rd zXn&go9ei3|n=YPtaIkm8`}!LIs;a^mLyQrvHF=(+wZ5Qxf;=eRz!-BW4?b7#Fpj@J bULO1d^a-o}ttbwv00000NkvXXu0mjfC`@Nz literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_crate_requester_bottom.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/drone_crate_requester_bottom.png.mcmeta new file mode 100755 index 000000000..92dd223c8 --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/drone_crate_requester_bottom.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 10 + } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_crate_requester_side.png b/src/main/resources/assets/hbm/textures/blocks/drone_crate_requester_side.png new file mode 100644 index 0000000000000000000000000000000000000000..70d40f0709beea9bd522bb11bc50b97452930fce GIT binary patch literal 896 zcmV-`1AqL9P)1vn+4cIO5J!&e!ig9_{(F_kGuOS;#O9eBWm@8sWMw!{HFqG_h?Pr4*KB5s$~wG>xO9BXrkwIXpb1 z-EI?&Mgj0V52aLKxR6o`DJ7XqhI+k@uIuQAVNfg<@jQ=Cr^C0ue8e*S_~j9`T8&n# zH8)U7ad2=zxm?CD3_gD6JJRVirfD*rPSG?C!!Q_+$82nDaDHB+R;#hMw@0m3Lr5u+ zQu6i(yOc^LQmGWJR*T2SN0d@HjuRYiG#YffU4D4>2`eirNGazlNGSoRR;v_?MRZ-K z)oQV}wgx~lnWWq8((m^v6bb;Cril;&eGv{oG#cgf^pu^Q9j4PMyvTG7Zf@c@ z4gkLI1N_;*^E`wQoSdAnwY7z=>$tAV)zuZ5Oa>uD@KWJ$7^M{YY&HuLHcc}y3WY-W zzK>xT#9}d&QV1a!4u=3}nl>M3+jd|u91a9q9G>TKb8|x~l?qBFgg}Hsp}-)Y&r`40 zxxBn&b#*nkX0=+SP$-a0CTTPp0F1}u`B2NUf`(Np6}sIn*=&|bB!cI8gu`JB!=PTT zv%S4dJRaxWH@`p#fu?EbQc8Arce%K@z_Kj9`sux;RsQ~Sn`ku3@$vCI1J`xAzrV+_ zEHar4Uw?K$BoYZKJef?G&1OU*5p-S0_caoU1VRX!%_jQw^)-XR04Zg#-$F{Mpc{*} zF0}ZudbwQY<>JAwo7U10_w!Gd^WY8pl^5{f{GWNSfAaIc=D}}U!+;0kuRO@*a-`E~ zZf|dyOeVOlOCphY*?2Jdp9k;<5A+2O_VZ7uR4NPx1G3pH)9Dn)aR`UQxUL)Uz_x8( zYYY+DIS;g_-@NWSj)QI6^!t6DuQiue`O{b5qS!^1<`?KVm&gzx(pV^~|?=5psQTTkDxyu3`e+huWak)@?2 z78Vv*Sy|zSX9rxr@jaJ2cbS=)!CH$j#$b#gj$=ln5dc+H5k(PFN{lfCLBM1(0dTr7 z4Dmb2fXwR&)HfDi&HC3RgRgrF=-0H@o&x{j0*<@-KTO77peLS5G!A0IOs z{l$4PxV^&s{5)D~f?y6I1gbGd2tgQz93342@bfPx4{vTv%`J+8D2lMw0w9_MN-5Xw zMd5iKQ52D78DSVs3s+U;j0=Lmjq<#(){ObH-n4>B zk_3Q<-#j9YV+IfUbUGc%vZN>q!Z1W@?YwDpLWt?FG#^fHVyo4nu4~GkhWtZ9LDz_kHp_r>ZJKTVs@2t1-YXB(KY0+xF~k0Vo8Mj|&vS$j1VMn-nlKD`^7V7ReDshwj;ZvIq-pvN zc`)n`T&w@agGM*Ay>^lZpWgrEEf3;XXZINRc<|v{9?S**^WdHH;J4l%PWVypgL8TC z=e?2Be6e$DnzZ3Tvth&j;6fg}(DVoX`6+;%kp0000 CTV&n< literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_crate_requester_top.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/drone_crate_requester_top.png.mcmeta new file mode 100755 index 000000000..92dd223c8 --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/drone_crate_requester_top.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 10 + } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/drone_dock_bottom.png b/src/main/resources/assets/hbm/textures/blocks/drone_dock_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..67ebd79eccb2298270afc77f08be6e483e0d1450 GIT binary patch literal 528 zcmV+r0`L8aP)1s=ALY$E&LOiR6h{3LG7RPUn&da+~)VJ>wi z%h%VJhY$d8cjj7EF*8I25n(=K40`W`5C|b)BEskACn7>?Z2`7zLsbzGQc9Q^?#_MR zlu`hAKA+gOZKRa=`1l~_ObCHm>jE9e!M^XLl*l>r^YcS%jpy@8YwgXz%otLke?SO}v6vUN)^PW?WD!AC*G7zy-a9EJVvOAPjffCJ zpp>#am8rIa(~jdH#>nsQFFEIT{$`jN!QE-C{i$#WVb$2oh%s_q7q!+^ zX?MrnF?U}e5#c;f?)wH<^k1 S7CSru0000;@S0}=riP= zTmlIT10#YE*n?)KXQsO=hh>^gvKT#hNeTv2i<|axhy!Q!E6a~f@lv3n*j12bt^=T|Dr`{{kAM)|$TW6KFghGa8M^^Bm_KkB^Ud@2RQ^@BNa2wU!totLG2`_xJZ0W7yf*q3b%7 zQt6%do)7}I?|b^bPt=D;cXxN(e7y$XARe-{wM9`BOePaVggnoOIV^`^jA1gFq{;&r zVD{;pvMdQ9qyoS)fl`Vr%gFPb5CTh;Vy* zyB564WImr0V@w;;!+Hift_9~D zbzLtL3hzM3hFvg&@Mk&R~`&0V9 z2S}}j5NO*L=NxSth%u(3cIe$&%l7s*8ygz{IOhNeA@K0@1)zkJphLs^!oCu0mD1VUI+?Yb`gr9-R3y@+5J ziv>^l!JyJr9f%0y@%X>+1FmlX_;z^kaz7Zr0L}UAWquGYul|s(n_WE557vQKnY_Lq zyg5EfqFU<*Qa|kn-#?tCYCqO6ko~<^_Jir^$4&R!@~o& zx3{E}jtqJjs>-q~xI1reZ~QhdFE5A)W(IHsDI!eML`n%W!`*)c1MK_GzVEcwaCb!H zAW+o->^1&HP;14^Mnj?3(`9wfzm2M5W~}SVx~`N`2-7qTU;hJl0(U3p%=LOb2zr3i zG_fqpsO&Eb+qND3$9Nofr?ob`iwLi;um5DCs?=I3r3^B6$K4MCRV9Rgi176EM6Gp@ z_1!O}kaMP#f|-p^WA`3oy>p~nWhOd)Yi+2=IkT=S+qMy79NXDXR8`LB^YEmqV`0o}gx2>ZgfQOSogWRl90I$X3Qhn3 N002ovPDHLkV1m9+@V@{6 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/gui/storage/gui_drone_provider.png b/src/main/resources/assets/hbm/textures/gui/storage/gui_drone_provider.png index 5c3ef3032ce732a1b922a4643ad8fcd5ffde87af..a0b473215e5bb9d60a1e54f6915bf0e13ea87ec0 100644 GIT binary patch delta 869 zcmV-r1DgET3I7R@G=H{9L_t(|obBB)P8(|!hT$_&_K+sqpa2(l1?eoYiwGnaSpuCS zc7g1U72L)y*hZSHVp3SXx*?H?@l58&-}5wdhhN}%H6EEmSLd&v`T!H^rak~|JNFkz z|L@n&Q=efn|J>YHo&WEc6TF-H03(XN_^Yb!t}m*x?|^v0`zNUn@V9KY+o_N6*DW8O z>O)n1-$lTk0KYirJAnTrUi|PUA_4&Xo|7;E7*SZvM}e!VE-x>qKEmjH>XBna1)%Eu zFOV+}Py0Utf)~XFplWxKoa)oZs>g4qpJm87vzZH@<3t9aYInh$VzKyKk2m*C%{lkG z8;0j0AOsVWT>~pDBKHA&`ndc1`E#2C$BGQV^J$eG{;6DjujbzDjR{I z$}<3nlV1ZYA4Tp1Xl;{^jX+E#G61b@^05(!sYC{#%0?il@(ci?lYs#xk&wH_)W?8kLh9X!JlOLP@Jub;>F@`- zsShx+{_grB{$lvP`*QBTYhEGYMbUql`UDel@pDMZ3!|U<025029RmOW0000007U!$ zheVP;EW_L4!%YL({~-Imcm4A*HgsKAB?5zZS1x|un9XKW<&Jd_T|Enc%`~)bxm;FN z)oQh>awl+-pY{Q`_#umhAd_JOBsT~DJMiu8?aAL@KA+cmy*9_3SI?QvW+%_#_g?(> z;Pd(Xq;IfTENZ=8n`6$a=lCnt@puaW!I8lklWzkOJ+OoO0Os>~Ef$NDzlk~K(59}c z`o8b0>eqh{ZX=L6EzEho5oozwR#nw%wW`{^hIu6$fy`-sj*UR$@eGsD0U?v10S1xK z2OKs6nbZ6n#$zLpInB?p5okO%0-4kN927GN<`DjOXA+AZU?| zK*RAC0D=hs1QP%VcJLvft-$8AFz5MJV1{EWusO}o@o;)P-U5>`0U?ub0}MsXR$z0Q zpTl@;1?J7M6?iz_0zfbUfM5c^o3g+CXBh9Rs_VM0-)uI1xDaN42hd$zT}^rrIEDv+ v!+8D!>?b(|9M8oMlYs<3laK@l7vuN=u%9ic%XHUS00000NkvXXu0mjfcsQ%2 delta 827 zcmV-B1H}CQ3D*gbG=GjsL_t(|obBD=ZQEE7h0%FInzGae8xg=hRESsyRTlS$;b7y< zI*~<&&%EapFnO@eFBBn-S{>iA_W^d)_C5f8JNh5UvMjmRe`~Gk_`hSG@NMq{Y$*ET zud15oxhne(h~GH!{|-L|;C{dFc$9ryuh*)oy4`M7$NpXONe)N81Nb5F;)g#G5dh%V zlg|PcO9BAFzVCg2zv<=WW$zq%E|(vl0f66$3qaNDMe?j+7;2iP zuI8N2=cnh8B{Be2uNTZS#&N7^n!1{E^t&6@lRg16CJe(+<2W8}4m>I{0Mj%*y@ls( zlTS}`Yy{#_kpZZ(5eTY01Au6g-~$|!&jJr1SmZu{-ZuHz2*h3@1JK(h9~*(#OJo45 zYy^TT&j28rlc516lb-_ye-^n9ptnsvHUhDi$N-$r=T(+x^fm_`6%~N{{a%;LW$$A^ zH=+ViRdu~y_dWu2!$ZJ>5<33Gk?#OnYi*h5*~I|=;8#?8EN{T;r>> zhheB`n#?ih({s+}^V4(qwcma@=r9aV{R87T)-+A#nDgm5KBc-HF9DO010j>(0}MR& z;XZ(27-}5Hr~eUi%%M-Ms+MJ0s_MUA4{jrnIX%pIzY*wqy;fD#?RKkr{Tt?!Yy>i= z`#ClOZO1c{(E}?W1OS5B2xLz8bJ&iJK<0Em$3~#-*a&1!_j7Cn+Ky)clfeQcli&jh zHM0@OobKnaoewtxL62+%T920i5KI6dm;gYq4<7>B3T#dfbKY+SW<9n7o74Rq52v@| zB>S3#y^X7O1=P5uoeIS002ovPDHLk FV1n&Mg~so`}a z%w#)E)_nkcYv>oG`{(a_1CL}|{Pz2kDiLVPxdCT6`B~}lqbw^`t`M7YeyqXE<#Mdi zY^cTJbzQnx_2FZ6-KA(F0 z<<~z3Jd!rOeEzI1UwFFi!{7%-4M5fQe=PXH!`H`OaygZ!fBiY&(X{8?+c$Oh#=4J! z9~nIWRYxaDUw3X-?H}|%mLca%r>8&hzxM9!o8B|7?_8}H%U4a!dH?Bi?>UU?Oaf4K zbi(v8pWh&>{eve>%^C9Q=K9XnUVlHmd8=M5Uo|yn+pli6ft!Gnp#v0?t^^rLJCl6? zcWxhje}3EM4CVUH)tcVCwRLl7-3=-hcW$*z%0l=FqlL z1F&2!>%qgPGO7}p}TZ(gsE%=Cx2VUdRQU4k>;}bocsU)00000 z001NS`a>B$yu+sOVWNQ?KapM6Ise%VlgXq?1O{=gocwH=e;#}`oAr8t`Fvh`dwb@XbLu(1r8*vO0h3Sy8Bs_VM0s{Z@);5Gu8)54sS8-W&!MO9Vp?(S9{{SR|WHUgQ`{2UvB#*^;@G#L3g zjK@YGbDE!HBhYwk1Tv@jIW_`~$32s;1RIl(0TVRY2xLz4a~RLcjX=;M8-a%7EdT@) z00<@k5Nzd5KwE*$X<^REt-uV&R$z0QpX28Ac)SIZkpm=?t^^83t-$6qKZo(y3e3i_ z6?iz_0zfbUfM5c^MmfIxXBg+JYBHHjy2HamPcDQxz5B>GPLn%QJeLL*G^n!0~vjtE;OuAL6XNef_FFet7@The5ER;jDR{=c=l%{&%Gx zyWOs;s`mSRRolNk?#N9*?#0c?PhVQT1sH~5m=A}87aPt*>nnia^769rNFEcH|9x5O zg_u{GOUwCl@&f<>000000IcAjAIk9I9nOUh6E$-4M1K7yAM|b*hAI(g;z>FAIWvdD zp~@9&6GPn!fba6tJ9`D%`R3bzPJYN@AqWH$lWhbcG1$r925j-u-s3pdG)?B1bLTmm z&1Uf&zVCm39CRGVMGvsuZflw*bIiH(9N$u1kGGR>1S^xk0R%a@4`3X}+HSXtAH*DU z=+jVD^E}U0_3xhtw-Lyk9_HNM2(;Vns;X+g-&bA#4Rc2}0-4kO92=8W00?&SCZMgr z=JYV<_Euopu@%^y?&r8Uy&i7?lPv@!lYayWMP@6oIo;1;J+=aKc5DT1$6EjhCIApj z05~f*m;bc!w5o<-80N#_;K_wBH&+0|<>lpr9tivhHvrqX{RGYrauo36ocxnf1vryn e1r8Xnj=up0TE$ELmBAhW0000 Date: Mon, 25 Sep 2023 21:23:36 +0200 Subject: [PATCH 319/432] my personal hell is southend-on-sea --- .../com/hbm/blocks/network/DroneDock.java | 6 + .../java/com/hbm/tileentity/TileMappings.java | 3 +- .../network/TileEntityDroneDock.java | 18 +++ .../network/TileEntityRequestNetwork.java | 10 ++ .../TileEntityRequestNetworkContainer.java | 149 ++++++++++++++++++ 5 files changed, 185 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/hbm/tileentity/network/TileEntityDroneDock.java create mode 100644 src/main/java/com/hbm/tileentity/network/TileEntityRequestNetworkContainer.java diff --git a/src/main/java/com/hbm/blocks/network/DroneDock.java b/src/main/java/com/hbm/blocks/network/DroneDock.java index bee33693f..4a857b786 100644 --- a/src/main/java/com/hbm/blocks/network/DroneDock.java +++ b/src/main/java/com/hbm/blocks/network/DroneDock.java @@ -1,5 +1,8 @@ package com.hbm.blocks.network; +import com.hbm.blocks.ModBlocks; +import com.hbm.tileentity.network.TileEntityDroneDock; + import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.BlockContainer; @@ -20,6 +23,9 @@ public class DroneDock extends BlockContainer { @Override public TileEntity createNewTileEntity(World world, int meta) { + + if(this == ModBlocks.drone_dock) return new TileEntityDroneDock(); + return null; } diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 36e0d6df7..36afb0545 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -393,8 +393,9 @@ public class TileMappings { put(TileEntityRadioTelex.class, "tileentity_rtty_telex"); put(TileEntityDroneWaypoint.class, "tileentity_drone_waypoint"); - put(TileEntityDroneWaypointRequest.class, "tileentity_drone_waypoint_request"); put(TileEntityDroneCrate.class, "tileentity_drone_crate"); + put(TileEntityDroneWaypointRequest.class, "tileentity_drone_waypoint_request"); + put(TileEntityDroneDock.class, "tileentity_drone_dock"); } private static void put(Class clazz, String... names) { diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityDroneDock.java b/src/main/java/com/hbm/tileentity/network/TileEntityDroneDock.java new file mode 100644 index 000000000..9efcc685c --- /dev/null +++ b/src/main/java/com/hbm/tileentity/network/TileEntityDroneDock.java @@ -0,0 +1,18 @@ +package com.hbm.tileentity.network; + +public class TileEntityDroneDock extends TileEntityRequestNetworkContainer { + + public TileEntityDroneDock() { + super(9); + } + + @Override + public String getName() { + return "container.droneDock"; + } + + @Override + public void updateEntity() { + super.updateEntity(); + } +} diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetwork.java b/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetwork.java index 0ae16c2df..ad2e4d361 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetwork.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetwork.java @@ -14,6 +14,16 @@ import net.minecraft.util.Vec3; import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.world.World; +/** + * i can see it clearly + * this simple idea, this concept of 4 individually acting objects performing basic tasks + * it is all spiraling out of control + * in a giant mess of nested generics, magic numbers and static global variables + * may god have mercy on my soul + * + * @author hbm + * + */ public class TileEntityRequestNetwork extends TileEntity { public static HashMap>> activeWaypoints = new HashMap(); diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetworkContainer.java b/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetworkContainer.java new file mode 100644 index 000000000..4870bf2b4 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetworkContainer.java @@ -0,0 +1,149 @@ +package com.hbm.tileentity.network; + +import com.hbm.packet.NBTPacket; +import com.hbm.packet.PacketDispatcher; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.ISidedInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; + +/** + * "Multiple inheritance is bad because...uhhhh...i guess if you do it wrong then it can lead to bad things" + * ~ genuinely retarded people on StackOverflow + * like yeah, doing things wrong can lead to bad things + * no shit + * just like how java operates already + * you fucking dork + * + * this class has to extend TileEntityRequestNetwork for all the network stuff to work + * but it also needs slots and all the container boilerplate crap + * since multiple inheritance is a sin punishable by stoning, i had to cram the entire contents of TileEntityMachineBase into this class + * is this good code? is this what you wanted? was it worth avoiding those hypothetical scenarios where multiple inheritance is le bad? + * i believe that neither heaven nor hell awaits me when all is said and done + * saint peter will send me to southend + * + * @author hbm + */ +public abstract class TileEntityRequestNetworkContainer extends TileEntityRequestNetwork implements ISidedInventory { + + public ItemStack slots[]; + + private String customName; + + public TileEntityRequestNetworkContainer(int scount) { + slots = new ItemStack[scount]; + } + + @Override public int getSizeInventory() { return slots.length; } + @Override public ItemStack getStackInSlot(int i) { return slots[i]; } + @Override public void openInventory() { } + @Override public void closeInventory() { } + @Override public boolean isItemValidForSlot(int slot, ItemStack itemStack) { return false; } + @Override public boolean canInsertItem(int slot, ItemStack itemStack, int side) { return this.isItemValidForSlot(slot, itemStack); } + @Override public boolean canExtractItem(int slot, ItemStack itemStack, int side) { return false; } + @Override public int[] getAccessibleSlotsFromSide(int side) { return new int[] { }; } + + public void markChanged() { + this.worldObj.markTileEntityChunkModified(this.xCoord, this.yCoord, this.zCoord, this); + } + + @Override + public ItemStack getStackInSlotOnClosing(int i) { + if(slots[i] != null) + { + ItemStack itemStack = slots[i]; + slots[i] = null; + return itemStack; + } else { + return null; + } + } + + @Override + public void setInventorySlotContents(int i, ItemStack itemStack) { + slots[i] = itemStack; + if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) + { + itemStack.stackSize = getInventoryStackLimit(); + } + } + + @Override public String getInventoryName() { return this.hasCustomInventoryName() ? this.customName : getName(); } + public abstract String getName(); + @Override public boolean hasCustomInventoryName() { return this.customName != null && this.customName.length() > 0; } + public void setCustomName(String name) { this.customName = name; } + @Override public int getInventoryStackLimit() { return 64; } + + @Override + public boolean isUseableByPlayer(EntityPlayer player) { + if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) { + return false; + } else { + return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <= 128; + } + } + + @Override + public ItemStack decrStackSize(int slot, int amount) { + if(slots[slot] != null) { + + if(slots[slot].stackSize <= amount) { + ItemStack itemStack = slots[slot]; + slots[slot] = null; + return itemStack; + } + + ItemStack itemStack1 = slots[slot].splitStack(amount); + if(slots[slot].stackSize == 0) { + slots[slot] = null; + } + + return itemStack1; + } else { + return null; + } + } + + public void networkPack(NBTTagCompound nbt, int range) { + if(!worldObj.isRemote) PacketDispatcher.wrapper.sendToAllAround(new NBTPacket(nbt, xCoord, yCoord, zCoord), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range)); + } + + public void networkUnpack(NBTTagCompound nbt) { } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + NBTTagList list = nbt.getTagList("items", 10); + + for(int i = 0; i < list.tagCount(); i++) + { + NBTTagCompound nbt1 = list.getCompoundTagAt(i); + byte b0 = nbt1.getByte("slot"); + if(b0 >= 0 && b0 < slots.length) + { + slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); + } + } + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + NBTTagList list = new NBTTagList(); + + for(int i = 0; i < slots.length; i++) + { + if(slots[i] != null) + { + NBTTagCompound nbt1 = new NBTTagCompound(); + nbt1.setByte("slot", (byte)i); + slots[i].writeToNBT(nbt1); + list.appendTag(nbt1); + } + } + nbt.setTag("items", list); + } +} From 2986382029347c8445ba38c2cfae362a1b125f3c Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 27 Sep 2023 16:25:30 +0200 Subject: [PATCH 320/432] drone GUI crap --- .../com/hbm/blocks/machine/MachineBoiler.java | 26 ++-------- .../com/hbm/blocks/network/DroneDock.java | 21 +++++++- .../container/ContainerDroneDock.java | 29 +++++++++++ .../container/ContainerDroneProvider.java | 29 +++++++++++ .../com/hbm/inventory/gui/GUIDroneDock.java | 39 ++++++++++++++ .../hbm/inventory/gui/GUIDroneProvider.java | 42 +++++++++++++++ .../network/TileEntityDroneDock.java | 24 ++++++++- .../network/TileEntityDroneProvider.java | 51 ++++++++++++++++++ .../network/TileEntityDroneRequester.java | 52 +++++++++++++++++++ 9 files changed, 288 insertions(+), 25 deletions(-) create mode 100644 src/main/java/com/hbm/inventory/container/ContainerDroneDock.java create mode 100644 src/main/java/com/hbm/inventory/container/ContainerDroneProvider.java create mode 100644 src/main/java/com/hbm/inventory/gui/GUIDroneDock.java create mode 100644 src/main/java/com/hbm/inventory/gui/GUIDroneProvider.java create mode 100644 src/main/java/com/hbm/tileentity/network/TileEntityDroneProvider.java create mode 100644 src/main/java/com/hbm/tileentity/network/TileEntityDroneRequester.java diff --git a/src/main/java/com/hbm/blocks/machine/MachineBoiler.java b/src/main/java/com/hbm/blocks/machine/MachineBoiler.java index 24bd24f16..2f65df9e8 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineBoiler.java +++ b/src/main/java/com/hbm/blocks/machine/MachineBoiler.java @@ -147,30 +147,10 @@ public class MachineBoiler extends BlockContainer { @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(world.isRemote) - { + if(world.isRemote) { return true; - } else if(!player.isSneaking()) - { - TileEntity te = world.getTileEntity(x, y, z); - - if(te instanceof TileEntityMachineBoiler) { - - TileEntityMachineBoiler entity = (TileEntityMachineBoiler) te; - if(entity != null) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); - } - } - - if(te instanceof TileEntityMachineBoilerElectric) { - - TileEntityMachineBoilerElectric entity = (TileEntityMachineBoilerElectric) te; - if(entity != null) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); - } - } + } else if(!player.isSneaking()) { + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); return true; } else { return false; diff --git a/src/main/java/com/hbm/blocks/network/DroneDock.java b/src/main/java/com/hbm/blocks/network/DroneDock.java index 4a857b786..592f5a194 100644 --- a/src/main/java/com/hbm/blocks/network/DroneDock.java +++ b/src/main/java/com/hbm/blocks/network/DroneDock.java @@ -1,13 +1,18 @@ package com.hbm.blocks.network; import com.hbm.blocks.ModBlocks; +import com.hbm.main.MainRegistry; import com.hbm.tileentity.network.TileEntityDroneDock; +import com.hbm.tileentity.network.TileEntityDroneProvider; +import com.hbm.tileentity.network.TileEntityDroneRequester; +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; import net.minecraft.world.World; @@ -23,8 +28,10 @@ public class DroneDock extends BlockContainer { @Override public TileEntity createNewTileEntity(World world, int meta) { - + if(this == ModBlocks.drone_dock) return new TileEntityDroneDock(); + if(this == ModBlocks.drone_crate_provider) return new TileEntityDroneProvider(); + if(this == ModBlocks.drone_crate_requester) return new TileEntityDroneRequester(); return null; } @@ -42,4 +49,16 @@ public class DroneDock extends BlockContainer { public IIcon getIcon(int side, int metadata) { return side == 1 ? this.iconTop : (side == 0 ? this.iconBottom : this.blockIcon); } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if(world.isRemote) { + return true; + } else if(!player.isSneaking()) { + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); + return true; + } else { + return false; + } + } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerDroneDock.java b/src/main/java/com/hbm/inventory/container/ContainerDroneDock.java new file mode 100644 index 000000000..63a49cba6 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerDroneDock.java @@ -0,0 +1,29 @@ +package com.hbm.inventory.container; + +import com.hbm.tileentity.network.TileEntityDroneDock; + +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Slot; + +public class ContainerDroneDock extends ContainerCrateBase { + + public ContainerDroneDock(InventoryPlayer invPlayer, TileEntityDroneDock tedf) { + super(tedf); + + for(int i = 0; i < 34; i++) { + for(int j = 0; j < 3; j++) { + this.addSlotToContainer(new Slot(tedf, j + i * 3, 62 + j * 18, 17 + i * 18)); + } + } + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 103 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 161)); + } + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerDroneProvider.java b/src/main/java/com/hbm/inventory/container/ContainerDroneProvider.java new file mode 100644 index 000000000..974162b38 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerDroneProvider.java @@ -0,0 +1,29 @@ +package com.hbm.inventory.container; + +import com.hbm.tileentity.network.TileEntityDroneProvider; + +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Slot; + +public class ContainerDroneProvider extends ContainerCrateBase { + + public ContainerDroneProvider(InventoryPlayer invPlayer, TileEntityDroneProvider tedf) { + super(tedf); + + for(int i = 0; i < 34; i++) { + for(int j = 0; j < 3; j++) { + this.addSlotToContainer(new Slot(tedf, j + i * 3, 62 + j * 18, 17 + i * 18)); + } + } + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 103 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 161)); + } + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIDroneDock.java b/src/main/java/com/hbm/inventory/gui/GUIDroneDock.java new file mode 100644 index 000000000..006b8a092 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIDroneDock.java @@ -0,0 +1,39 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerDroneDock; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.network.TileEntityDroneDock; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUIDroneDock extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/storage/gui_drone_dock.png"); + private TileEntityDroneDock diFurnace; + + public GUIDroneDock(InventoryPlayer invPlayer, TileEntityDroneDock tedf) { + super(new ContainerDroneDock(invPlayer, tedf)); + diFurnace = tedf; + this.xSize = 176; + this.ySize = 185; + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName()); + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIDroneProvider.java b/src/main/java/com/hbm/inventory/gui/GUIDroneProvider.java new file mode 100644 index 000000000..0547e969d --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIDroneProvider.java @@ -0,0 +1,42 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerDroneProvider; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.network.TileEntityDroneProvider; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUIDroneProvider extends GuiContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/storage/gui_drone_provider.png"); + private TileEntityDroneProvider diFurnace; + + public GUIDroneProvider(InventoryPlayer invPlayer, TileEntityDroneProvider tedf) { + super(new ContainerDroneProvider(invPlayer, tedf)); + diFurnace = tedf; + + this.xSize = 176; + this.ySize = 186; + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName()); + + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + } +} diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityDroneDock.java b/src/main/java/com/hbm/tileentity/network/TileEntityDroneDock.java index 9efcc685c..12e36938b 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityDroneDock.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityDroneDock.java @@ -1,6 +1,17 @@ package com.hbm.tileentity.network; -public class TileEntityDroneDock extends TileEntityRequestNetworkContainer { +import com.hbm.inventory.container.ContainerDroneDock; +import com.hbm.inventory.gui.GUIDroneDock; +import com.hbm.tileentity.IGUIProvider; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.world.World; + +public class TileEntityDroneDock extends TileEntityRequestNetworkContainer implements IGUIProvider { public TileEntityDroneDock() { super(9); @@ -15,4 +26,15 @@ public class TileEntityDroneDock extends TileEntityRequestNetworkContainer { public void updateEntity() { super.updateEntity(); } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerDroneDock(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIDroneDock(player.inventory, this); + } } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityDroneProvider.java b/src/main/java/com/hbm/tileentity/network/TileEntityDroneProvider.java new file mode 100644 index 000000000..ab9860d64 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/network/TileEntityDroneProvider.java @@ -0,0 +1,51 @@ +package com.hbm.tileentity.network; + +import com.hbm.inventory.container.ContainerDroneProvider; +import com.hbm.inventory.gui.GUIDroneProvider; +import com.hbm.tileentity.IGUIProvider; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class TileEntityDroneProvider extends TileEntityRequestNetworkContainer implements IGUIProvider { + + public TileEntityDroneProvider() { + super(9); + } + + @Override + public String getName() { + return "container.droneProvider"; + } + + @Override + public int[] getAccessibleSlotsFromSide(int side) { + return new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8 }; + } + + @Override + public boolean isItemValidForSlot(int i, ItemStack stack) { + return true; + } + + @Override + public boolean canExtractItem(int i, ItemStack stack, int j) { + return false; + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerDroneProvider(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIDroneProvider(player.inventory, this); + } +} diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityDroneRequester.java b/src/main/java/com/hbm/tileentity/network/TileEntityDroneRequester.java new file mode 100644 index 000000000..a6eb59b08 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/network/TileEntityDroneRequester.java @@ -0,0 +1,52 @@ +package com.hbm.tileentity.network; + +import com.hbm.module.ModulePatternMatcher; + +import net.minecraft.item.ItemStack; + +public class TileEntityDroneRequester extends TileEntityRequestNetworkContainer { + + public ModulePatternMatcher matcher; + + public TileEntityDroneRequester() { + super(18); + this.matcher = new ModulePatternMatcher(9); + } + + @Override + public String getName() { + return "container.droneRequester"; + } + + public boolean matchesFilter(ItemStack stack) { + + for(int i = 0; i < 9; i++) { + ItemStack filter = slots[i]; + + if(filter != null && this.matcher.isValidForFilter(filter, i, stack)) { + return true; + } + } + + return false; + } + + public void nextMode(int i) { + this.matcher.nextMode(worldObj, slots[i], i); + } + + @Override + public int[] getAccessibleSlotsFromSide(int side) { + return new int[] { 9, 10, 11, 12, 13, 14, 15, 16, 17 }; + } + + @Override + public boolean isItemValidForSlot(int i, ItemStack stack) { + return false; + } + + @Override + public boolean canExtractItem(int i, ItemStack stack, int j) { + return true; + } +} From 1a318e2867cef6341a2d71c254ba26cf8912d0f9 Mon Sep 17 00:00:00 2001 From: Bob Date: Wed, 27 Sep 2023 22:20:06 +0200 Subject: [PATCH 321/432] condenser model --- .../assets/hbm/models/machines/condenser.obj | 5515 +++++++++++++++++ .../textures/models/machines/condenser.png | Bin 0 -> 1581 bytes 2 files changed, 5515 insertions(+) create mode 100644 src/main/resources/assets/hbm/models/machines/condenser.obj create mode 100644 src/main/resources/assets/hbm/textures/models/machines/condenser.png diff --git a/src/main/resources/assets/hbm/models/machines/condenser.obj b/src/main/resources/assets/hbm/models/machines/condenser.obj new file mode 100644 index 000000000..f2b846454 --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/condenser.obj @@ -0,0 +1,5515 @@ +# Blender v2.79 (sub 0) OBJ File: 'condenser.blend' +# www.blender.org +o Fan1 +v -1.375000 1.500000 0.125000 +v -1.375000 1.608253 0.062500 +v -1.375000 1.608253 -0.062500 +v -1.375000 1.500000 -0.125000 +v -1.375000 1.391747 -0.062500 +v -1.375000 1.391747 0.062500 +v -1.500000 1.608253 0.062500 +v -1.500000 1.500000 0.125000 +v -1.500000 1.608253 -0.062500 +v -1.500000 1.500000 -0.125000 +v -1.500000 1.391747 -0.062500 +v -1.500000 1.391747 0.062500 +v -1.501628 1.937500 -0.176192 +v -1.458876 1.500000 -0.058731 +v -1.373371 1.937500 0.176192 +v -1.416123 1.500000 0.058731 +v -1.501628 1.128663 -0.290790 +v -1.458876 1.449138 0.029366 +v -1.373371 1.433837 -0.466982 +v -1.416123 1.550862 -0.029365 +v -1.501628 1.433837 0.466982 +v -1.458876 1.550862 0.029365 +v -1.373371 1.128663 0.290790 +v -1.416123 1.449138 -0.029365 +vt 0.908031 0.056886 +vt 0.915969 0.056886 +vt 0.919938 0.070312 +vt 0.912000 0.039062 +vt 0.904000 0.054688 +vt 0.904000 0.039062 +vt 0.944000 0.039062 +vt 0.936000 0.054688 +vt 0.936000 0.039062 +vt 0.928000 0.039062 +vt 0.920000 0.054688 +vt 0.920000 0.039062 +vt 0.912000 0.054688 +vt 0.952000 0.039062 +vt 0.944000 0.054688 +vt 0.928000 0.054688 +vt 0.928000 0.054688 +vt 0.944000 0.109375 +vt 0.920000 0.109375 +vt 0.920000 0.109375 +vt 0.936000 0.054688 +vt 0.944000 0.109375 +vt 0.928000 0.054688 +vt 0.944000 0.109375 +vt 0.920000 0.109375 +vt 0.915969 0.083739 +vt 0.908031 0.083739 +vt 0.904062 0.070313 +vt 0.952000 0.054688 +vt 0.936000 0.054688 +vt 0.928000 0.054688 +vt 0.936000 0.054688 +vn -1.0000 -0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -0.0000 0.5000 -0.8660 +vn 0.0000 0.5000 0.8660 +vn 0.0000 -0.5000 0.8660 +vn 0.0000 -0.5000 -0.8660 +vn 0.0000 1.0000 0.0000 +vn -0.9397 0.0000 0.3420 +vn -0.9397 0.2962 -0.1710 +vn -0.9397 -0.2962 -0.1710 +s off +f 11/1/1 12/2/1 8/3/1 +f 6/4/2 11/5/2 5/6/2 +f 4/7/3 9/8/3 3/9/3 +f 2/10/4 8/11/4 1/12/4 +f 1/12/5 12/13/5 6/4/5 +f 5/14/6 10/15/6 4/7/6 +f 2/10/7 9/8/7 7/16/7 +f 14/17/8 15/18/8 13/19/8 +f 17/20/9 20/21/9 19/22/9 +f 22/23/10 23/24/10 21/25/10 +f 8/3/1 7/26/1 11/1/1 +f 7/26/1 9/27/1 11/1/1 +f 9/27/1 10/28/1 11/1/1 +f 6/4/2 12/13/2 11/5/2 +f 4/7/3 10/15/3 9/8/3 +f 2/10/4 7/16/4 8/11/4 +f 1/12/5 8/11/5 12/13/5 +f 5/14/6 11/29/6 10/15/6 +f 2/10/7 3/9/7 9/8/7 +f 14/17/8 16/30/8 15/18/8 +f 17/20/9 18/31/9 20/21/9 +f 22/23/10 24/32/10 23/24/10 +o Fan2 +v 1.375000 1.500000 -0.125000 +v 1.375000 1.608253 -0.062500 +v 1.375000 1.608253 0.062500 +v 1.375000 1.500000 0.125000 +v 1.375000 1.391747 0.062500 +v 1.375000 1.391747 -0.062500 +v 1.500000 1.608253 -0.062500 +v 1.500000 1.500000 -0.125000 +v 1.500000 1.608253 0.062500 +v 1.500000 1.500000 0.125000 +v 1.500000 1.391747 0.062500 +v 1.500000 1.391747 -0.062500 +v 1.501628 1.937500 0.176192 +v 1.458876 1.500000 0.058731 +v 1.373371 1.937500 -0.176192 +v 1.416123 1.500000 -0.058731 +v 1.501628 1.128663 0.290790 +v 1.458876 1.449138 -0.029366 +v 1.373371 1.433837 0.466982 +v 1.416123 1.550862 0.029365 +v 1.501628 1.433837 -0.466982 +v 1.458876 1.550862 -0.029365 +v 1.373371 1.128663 -0.290790 +v 1.416123 1.449138 0.029366 +vt 0.915969 0.056886 +vt 0.919938 0.070312 +vt 0.908031 0.083739 +vt 0.912000 0.039063 +vt 0.904000 0.054688 +vt 0.904000 0.039063 +vt 0.944000 0.039062 +vt 0.936000 0.054688 +vt 0.936000 0.039062 +vt 0.928000 0.039062 +vt 0.920000 0.054688 +vt 0.920000 0.039062 +vt 0.912000 0.054688 +vt 0.952000 0.039062 +vt 0.944000 0.054687 +vt 0.928000 0.054688 +vt 0.928000 0.054688 +vt 0.944000 0.109375 +vt 0.920000 0.109375 +vt 0.920000 0.109375 +vt 0.936000 0.054688 +vt 0.944000 0.109375 +vt 0.928000 0.054688 +vt 0.944000 0.109375 +vt 0.920000 0.109375 +vt 0.915969 0.083739 +vt 0.904062 0.070312 +vt 0.908031 0.056886 +vt 0.952000 0.054687 +vt 0.936000 0.054688 +vt 0.928000 0.054688 +vt 0.936000 0.054688 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.5000 0.8660 +vn 0.0000 0.5000 -0.8660 +vn 0.0000 -0.5000 -0.8660 +vn 0.0000 -0.5000 0.8660 +vn 0.0000 1.0000 0.0000 +vn 0.9397 0.0000 -0.3420 +vn 0.9397 0.2962 0.1710 +vn 0.9397 -0.2962 0.1710 +s off +f 36/33/11 32/34/11 33/35/11 +f 30/36/12 35/37/12 29/38/12 +f 28/39/13 33/40/13 27/41/13 +f 26/42/14 32/43/14 25/44/14 +f 25/44/15 36/45/15 30/36/15 +f 29/46/16 34/47/16 28/39/16 +f 27/41/17 31/48/17 26/42/17 +f 38/49/18 39/50/18 37/51/18 +f 41/52/19 44/53/19 43/54/19 +f 46/55/20 47/56/20 45/57/20 +f 32/34/11 31/58/11 33/35/11 +f 33/35/11 34/59/11 35/60/11 +f 35/60/11 36/33/11 33/35/11 +f 30/36/12 36/45/12 35/37/12 +f 28/39/13 34/47/13 33/40/13 +f 26/42/14 31/48/14 32/43/14 +f 25/44/15 32/43/15 36/45/15 +f 29/46/16 35/61/16 34/47/16 +f 27/41/17 33/40/17 31/48/17 +f 38/49/18 40/62/18 39/50/18 +f 41/52/19 42/63/19 44/53/19 +f 46/55/20 48/64/20 47/56/20 +o Condenser +v 1.500000 0.250000 -3.125000 +v 1.500000 0.250000 3.125000 +v 1.250000 0.250000 3.125000 +v 1.250000 0.250000 -3.125000 +v 1.250000 0.000000 -3.125000 +v 1.250000 0.000000 3.125000 +v 1.500000 0.000000 3.125000 +v 1.500000 0.000000 -3.125000 +v 1.500000 0.000000 -3.500000 +v 1.500000 0.000000 -3.125000 +v 1.125000 0.000000 -3.500000 +v 1.125000 0.000000 -3.125000 +v 1.500000 0.375000 -3.500000 +v 1.500000 0.375000 -3.125000 +v 1.125000 0.375000 -3.500000 +v 1.125000 0.375000 -3.125000 +v -1.125000 0.000000 -3.500000 +v -1.125000 0.000000 -3.125000 +v -1.500000 0.000000 -3.500000 +v -1.500000 0.000000 -3.125000 +v -1.125000 0.375000 -3.500000 +v -1.125000 0.375000 -3.125000 +v -1.500000 0.375000 -3.500000 +v -1.500000 0.375000 -3.125000 +v 1.500000 0.000000 3.125000 +v 1.500000 0.000000 3.500000 +v 1.125000 0.000000 3.125000 +v 1.125000 0.000000 3.500000 +v 1.500000 0.375000 3.125000 +v 1.500000 0.375000 3.500000 +v 1.125000 0.375000 3.125000 +v 1.125000 0.375000 3.500000 +v -1.125000 0.000000 3.125000 +v -1.125000 0.000000 3.500000 +v -1.500000 0.000000 3.125000 +v -1.500000 0.000000 3.500000 +v -1.125000 0.375000 3.125000 +v -1.125000 0.375000 3.500000 +v -1.500000 0.375000 3.125000 +v -1.500000 0.375000 3.500000 +v 1.500000 2.625000 -3.500000 +v 1.500000 2.625000 -3.125000 +v 1.125000 2.625000 -3.500000 +v 1.125000 2.625000 -3.125000 +v 1.500000 3.000000 -3.500000 +v 1.500000 3.000000 -3.125000 +v 1.125000 3.000000 -3.500000 +v 1.125000 3.000000 -3.125000 +v -1.125000 2.625000 -3.500000 +v -1.125000 2.625000 -3.125000 +v -1.500000 2.625000 -3.500000 +v -1.500000 2.625000 -3.125000 +v -1.125000 3.000000 -3.500000 +v -1.125000 3.000000 -3.125000 +v -1.500000 3.000000 -3.500000 +v -1.500000 3.000000 -3.125000 +v 1.500000 2.625000 3.125000 +v 1.500000 2.625000 3.500000 +v 1.125000 2.625000 3.125000 +v 1.125000 2.625000 3.500000 +v 1.500000 3.000000 3.125000 +v 1.500000 3.000000 3.500000 +v 1.125000 3.000000 3.125000 +v 1.125000 3.000000 3.500000 +v -1.125000 2.625000 3.125000 +v -1.125000 2.625000 3.500000 +v -1.500000 2.625000 3.125000 +v -1.500000 2.625000 3.500000 +v -1.125000 3.000000 3.125000 +v -1.125000 3.000000 3.500000 +v -1.500000 3.000000 3.125000 +v -1.500000 3.000000 3.500000 +v 1.500000 3.000000 -3.125000 +v 1.500000 3.000000 3.125000 +v 1.250000 3.000000 3.125000 +v 1.250000 3.000000 -3.125000 +v 1.250000 2.750000 -3.125000 +v 1.250000 2.750000 3.125000 +v 1.500000 2.750000 3.125000 +v 1.500000 2.750000 -3.125000 +v -1.250000 0.250000 -3.125000 +v -1.250000 0.250000 3.125000 +v -1.500000 0.250000 3.125000 +v -1.500000 0.250000 -3.125000 +v -1.500000 0.000000 -3.125000 +v -1.500000 0.000000 3.125000 +v -1.250000 0.000000 3.125000 +v -1.250000 0.000000 -3.125000 +v -1.250000 3.000000 -3.125000 +v -1.250000 3.000000 3.125000 +v -1.500000 3.000000 3.125000 +v -1.500000 3.000000 -3.125000 +v -1.500000 2.750000 -3.125000 +v -1.500000 2.750000 3.125000 +v -1.250000 2.750000 3.125000 +v -1.250000 2.750000 -3.125000 +v 1.125000 0.000000 3.500000 +v -1.125000 0.000000 3.500000 +v 1.125000 0.000000 3.250000 +v -1.125000 0.000000 3.250000 +v 1.125000 0.250000 3.500000 +v -1.125000 0.250000 3.500000 +v 1.125000 0.250000 3.250000 +v -1.125000 0.250000 3.250000 +v 1.125000 0.000000 -3.250000 +v -1.125000 0.000000 -3.250000 +v 1.125000 0.000000 -3.500000 +v -1.125000 0.000000 -3.500000 +v 1.125000 0.250000 -3.250000 +v -1.125000 0.250000 -3.250000 +v 1.125000 0.250000 -3.500000 +v -1.125000 0.250000 -3.500000 +v 1.125000 2.750000 3.500000 +v -1.125000 2.750000 3.500000 +v 1.125000 2.750000 3.250000 +v -1.125000 2.750000 3.250000 +v 1.125000 3.000000 3.500000 +v -1.125000 3.000000 3.500000 +v 1.125000 3.000000 3.250000 +v -1.125000 3.000000 3.250000 +v 1.125000 2.750000 -3.250000 +v -1.125000 2.750000 -3.250000 +v 1.125000 2.750000 -3.500000 +v -1.125000 2.750000 -3.500000 +v 1.125000 3.000000 -3.250000 +v -1.125000 3.000000 -3.250000 +v 1.125000 3.000000 -3.500000 +v -1.125000 3.000000 -3.500000 +v -1.500000 0.375000 3.500000 +v -1.500000 2.625000 3.500000 +v -1.500000 0.375000 3.250000 +v -1.500000 2.625000 3.250000 +v -1.250000 0.375000 3.500000 +v -1.250000 2.625000 3.500000 +v -1.250000 0.375000 3.250000 +v -1.250000 2.625000 3.250000 +v 1.250000 0.375000 3.500000 +v 1.250000 2.625000 3.500000 +v 1.250000 0.375000 3.250000 +v 1.250000 2.625000 3.250000 +v 1.500000 0.375000 3.500000 +v 1.500000 2.625000 3.500000 +v 1.500000 0.375000 3.250000 +v 1.500000 2.625000 3.250000 +v -1.500000 0.375000 -3.250000 +v -1.500000 2.625000 -3.250000 +v -1.500000 0.375000 -3.500000 +v -1.500000 2.625000 -3.500000 +v -1.250000 0.375000 -3.250000 +v -1.250000 2.625000 -3.250000 +v -1.250000 0.375000 -3.500000 +v -1.250000 2.625000 -3.500000 +v 1.250000 0.375000 -3.250000 +v 1.250000 2.625000 -3.250000 +v 1.250000 0.375000 -3.500000 +v 1.250000 2.625000 -3.500000 +v 1.500000 0.375000 -3.250000 +v 1.500000 2.625000 -3.250000 +v 1.500000 0.375000 -3.500000 +v 1.500000 2.625000 -3.500000 +v 0.000000 3.000000 2.500000 +v 0.000000 3.000000 2.750000 +v 0.574025 2.885819 2.500000 +v 0.574025 2.885819 2.750000 +v 1.060660 2.560660 2.500000 +v 1.060660 2.560660 2.750000 +v 1.385819 2.074025 2.500000 +v 1.385819 2.074025 2.750000 +v 1.500000 1.500000 2.500000 +v 1.500000 1.500000 2.750000 +v 1.385819 0.925975 2.500000 +v 1.385819 0.925975 2.750000 +v 1.060660 0.439340 2.500000 +v 1.060660 0.439340 2.750000 +v 0.574025 0.114181 2.500000 +v 0.574025 0.114181 2.750000 +v 0.000000 0.000000 2.500000 +v 0.000000 0.000000 2.750000 +v -0.574025 0.114181 2.500000 +v -0.574025 0.114181 2.750000 +v -1.060660 0.439340 2.500000 +v -1.060660 0.439340 2.750000 +v -1.385819 0.925975 2.500000 +v -1.385819 0.925975 2.750000 +v -1.500000 1.500000 2.500000 +v -1.500000 1.500000 2.750000 +v -1.385819 2.074025 2.500000 +v -1.385819 2.074025 2.750000 +v -1.060660 2.560660 2.500000 +v -1.060660 2.560660 2.750000 +v -0.574024 2.885820 2.500000 +v -0.574024 2.885820 2.750000 +v 1.374999 1.500001 -2.750000 +v 1.190784 1.500001 -3.093750 +v 0.000000 2.690785 3.093750 +v 0.000000 2.875000 2.750000 +v 0.687499 1.500000 -3.345392 +v -0.000000 2.690785 -3.093750 +v 1.270334 0.973811 -2.750000 +v 1.100142 1.044307 -3.093750 +v 0.263095 2.135167 3.345392 +v 0.455694 2.600142 3.093750 +v 0.526190 2.770334 2.750000 +v 0.574024 2.885820 -2.750000 +v 0.574024 2.885820 -2.500000 +v 0.635167 1.236906 -3.345392 +v 0.972271 0.527729 -2.750000 +v 0.486136 1.986136 3.345392 +v 0.842012 2.342012 3.093750 +v 0.972272 2.472272 2.750000 +v 1.060659 2.560660 -2.750000 +v 1.060659 2.560660 -2.500000 +v 0.842011 0.657989 -3.093750 +v 0.486135 1.013865 -3.345392 +v 0.635167 1.763095 3.345392 +v 1.100142 1.955694 3.093750 +v 1.270334 2.026190 2.750000 +v 1.385819 2.074025 -2.750000 +v 1.385819 2.074025 -2.500000 +v 0.526190 0.229666 -2.750000 +v 0.455694 0.399859 -3.093750 +v 0.687500 1.500000 3.345392 +v 1.190784 1.500000 3.093750 +v 1.375000 1.500000 2.750000 +v 1.500000 1.500000 -2.750000 +v 1.500000 1.500000 -2.500000 +v 0.263094 0.864833 -3.345392 +v 0.000000 0.125001 -2.750000 +v 0.635167 1.236905 3.345392 +v 1.100142 1.044307 3.093750 +v 1.270334 0.973810 2.750000 +v 1.385819 0.925975 -2.750000 +v 1.385819 0.925975 -2.500000 +v 0.000000 0.309216 -3.093750 +v -0.000000 0.812500 -3.345392 +v 0.486136 1.013864 3.345392 +v 0.842011 0.657988 3.093750 +v 0.972271 0.527729 2.750000 +v 1.060659 0.439340 -2.750000 +v 1.060659 0.439340 -2.500000 +v -0.526189 0.229666 -2.750000 +v -0.455693 0.399859 -3.093750 +v 0.263095 0.864833 3.345392 +v 0.455693 0.399859 3.093750 +v 0.526189 0.229666 2.750000 +v 0.574025 0.114181 -2.750000 +v 0.574025 0.114181 -2.500000 +v -0.263095 0.864833 -3.345392 +v -0.972271 0.527729 -2.750000 +v 0.000000 0.812500 3.345392 +v -0.000000 0.309216 3.093750 +v -0.000000 0.125001 2.750000 +v -0.000000 0.000000 -2.750000 +v -0.000000 0.000000 -2.500000 +v -0.842012 0.657988 -3.093750 +v -0.486136 1.013864 -3.345392 +v -0.263095 0.864833 3.345392 +v -0.455694 0.399859 3.093750 +v -0.526190 0.229666 2.750000 +v -0.574026 0.114181 -2.750000 +v -0.574026 0.114181 -2.500000 +v -1.270334 0.973810 -2.750000 +v -1.100142 1.044307 -3.093750 +v -0.486136 1.013865 3.345392 +v -0.842012 0.657989 3.093750 +v -0.972272 0.527729 2.750000 +v -1.060660 0.439340 -2.750000 +v -1.060660 0.439340 -2.500000 +v -0.635167 1.236905 -3.345392 +v -1.375000 1.500000 -2.750000 +v -0.635167 1.236906 3.345392 +v -1.100142 1.044307 3.093750 +v -1.270334 0.973811 2.750000 +v -1.385819 0.925975 -2.750000 +v -1.385819 0.925975 -2.500000 +v -1.190785 1.500000 -3.093750 +v -0.687500 1.500000 -3.345392 +v -0.687500 1.500000 3.345392 +v -1.190784 1.500001 3.093750 +v -1.375000 1.500001 2.750000 +v -1.500000 1.500000 -2.750000 +v -1.500000 1.500000 -2.500000 +v -1.270334 2.026190 -2.750000 +v -1.100142 1.955694 -3.093750 +v -0.635167 1.763095 3.345392 +v -1.100141 1.955694 3.093750 +v -1.270334 2.026190 2.750000 +v -1.385819 2.074025 -2.750000 +v -1.385819 2.074025 -2.500000 +v -0.635167 1.763095 -3.345392 +v -0.972272 2.472272 -2.750000 +v -0.486135 1.986136 3.345392 +v -0.842011 2.342012 3.093750 +v -0.972271 2.472272 2.750000 +v -1.060660 2.560660 -2.750000 +v -1.060660 2.560660 -2.500000 +v -0.842012 2.342012 -3.093750 +v -0.486136 1.986136 -3.345392 +v -0.263094 2.135167 3.345392 +v -0.455693 2.600142 3.093750 +v -0.526189 2.770334 2.750000 +v -0.574025 2.885819 -2.750000 +v -0.574025 2.885819 -2.500000 +v -0.526190 2.770334 -2.750000 +v 0.000000 1.500000 3.437500 +v 0.000000 2.187500 3.345392 +v -0.455694 2.600142 -3.093750 +v -0.263095 2.135167 -3.345392 +v -0.000000 3.000000 -2.750000 +v -0.000000 2.875000 -2.750000 +v 0.000000 3.000000 -2.500000 +v 0.635166 1.763095 -3.345392 +v 1.100141 1.955694 -3.093750 +v 1.270333 2.026190 -2.750000 +v 0.486135 1.986136 -3.345392 +v 0.842011 2.342012 -3.093750 +v 0.972271 2.472272 -2.750000 +v 0.263094 2.135167 -3.345392 +v 0.455692 2.600142 -3.093750 +v 0.526189 2.770334 -2.750000 +v -0.000000 1.500000 -3.437500 +v -0.000000 2.187500 -3.345392 +v 0.000000 2.875000 2.500000 +v 0.526190 2.770334 2.500000 +v 0.972272 2.472272 2.500000 +v 1.270334 2.026190 2.500000 +v 1.375000 1.500000 2.500000 +v 1.270334 0.973810 2.500000 +v 0.972271 0.527729 2.500000 +v 0.526189 0.229666 2.500000 +v -0.000000 0.125001 2.500000 +v -0.526190 0.229666 2.500000 +v -0.972272 0.527729 2.500000 +v -1.270334 0.973811 2.500000 +v -1.375000 1.500001 2.500000 +v -1.270334 2.026190 2.500000 +v -0.972271 2.472272 2.500000 +v -0.526189 2.770334 2.500000 +v 0.000000 2.875000 -2.500000 +v 0.526190 2.770334 -2.500000 +v 0.972272 2.472272 -2.500000 +v 1.270334 2.026190 -2.500000 +v 1.375000 1.500000 -2.500000 +v 1.270334 0.973810 -2.500000 +v 0.972271 0.527729 -2.500000 +v 0.526189 0.229666 -2.500000 +v -0.000000 0.125001 -2.500000 +v -0.526190 0.229666 -2.500000 +v -0.972272 0.527729 -2.500000 +v -1.270334 0.973811 -2.500000 +v -1.375000 1.500001 -2.500000 +v -1.270334 2.026190 -2.500000 +v -0.972271 2.472272 -2.500000 +v -0.526189 2.770334 -2.500000 +v 1.375000 2.250000 1.500000 +v 1.375000 0.750000 1.500000 +v 1.375000 2.250000 -1.500000 +v 1.375000 0.750000 -1.500000 +v 1.000000 2.250000 -1.500000 +v 1.000000 2.250000 1.500000 +v 1.000000 0.750000 1.500000 +v 1.000000 0.750000 -1.500000 +v 1.375000 1.500000 -0.625000 +v 1.375000 1.812500 -0.541266 +v 1.375000 2.041266 -0.312500 +v 1.375000 2.125000 0.000000 +v 1.375000 2.041266 0.312500 +v 1.375000 1.812500 0.541266 +v 1.375000 1.500000 0.625000 +v 1.375000 1.187500 0.541266 +v 1.375000 0.958734 0.312500 +v 1.375000 0.875000 0.000000 +v 1.375000 0.958734 -0.312500 +v 1.375000 1.187500 -0.541266 +v 1.375000 1.500000 -0.500000 +v 1.375000 1.750000 -0.433013 +v 1.375000 1.933013 -0.250000 +v 1.375000 2.000000 0.000000 +v 1.375000 1.933013 0.250000 +v 1.375000 1.750000 0.433013 +v 1.375000 1.500000 0.500000 +v 1.375000 1.250000 0.433013 +v 1.375000 1.066987 0.250000 +v 1.375000 1.000000 0.000000 +v 1.375000 1.066987 -0.250000 +v 1.375000 1.250000 -0.433013 +v 1.625000 1.812500 -0.541266 +v 1.625000 1.500000 -0.625000 +v 1.625000 2.041266 -0.312500 +v 1.625000 2.125000 0.000000 +v 1.625000 2.041266 0.312500 +v 1.625000 1.812500 0.541266 +v 1.625000 1.500000 0.625000 +v 1.625000 1.187500 0.541266 +v 1.625000 0.958734 0.312500 +v 1.625000 0.875000 0.000000 +v 1.625000 0.958734 -0.312500 +v 1.625000 1.187500 -0.541266 +v 1.625000 1.750000 -0.433013 +v 1.625000 1.500000 -0.500000 +v 1.625000 1.933013 -0.250000 +v 1.625000 2.000000 0.000000 +v 1.625000 1.933013 0.250000 +v 1.625000 1.750000 0.433013 +v 1.625000 1.500000 0.500000 +v 1.625000 1.250000 0.433013 +v 1.625000 1.066987 0.250000 +v 1.625000 1.000000 0.000000 +v 1.625000 1.066987 -0.250000 +v 1.625000 1.250000 -0.433013 +v 1.562500 1.406250 0.500000 +v 1.562500 1.343750 0.500000 +v 1.562500 1.406250 -0.500000 +v 1.562500 1.343750 -0.500000 +v 1.562500 1.656250 0.500000 +v 1.562500 1.593750 0.500000 +v 1.562500 1.656250 -0.500000 +v 1.562500 1.593750 -0.500000 +v 1.562500 1.906250 0.375000 +v 1.562500 1.843750 0.375000 +v 1.562500 1.906250 -0.375000 +v 1.562500 1.843750 -0.375000 +v 1.562500 1.166250 0.375000 +v 1.562500 1.103750 0.375000 +v 1.562500 1.166250 -0.375000 +v 1.562500 1.103750 -0.375000 +v 1.375000 2.000000 -0.750000 +v 1.375000 1.000000 -0.750000 +v 1.375000 2.000000 -1.250000 +v 1.375000 1.000000 -1.250000 +v 1.500000 2.000000 -1.250000 +v 1.500000 2.000000 -0.750000 +v 1.500000 1.000000 -0.750000 +v 1.500000 1.000000 -1.250000 +v 1.375000 2.000000 1.250000 +v 1.375000 1.000000 1.250000 +v 1.375000 2.000000 0.750000 +v 1.375000 1.000000 0.750000 +v 1.500000 2.000000 0.750000 +v 1.500000 2.000000 1.250000 +v 1.500000 1.000000 1.250000 +v 1.500000 1.000000 0.750000 +v 1.250000 0.000000 -2.375000 +v -1.250000 0.000000 -2.375000 +v 1.250000 0.125000 -2.375000 +v -1.250000 0.125000 -2.375000 +v 1.250000 0.000000 -2.125000 +v -1.250000 0.000000 -2.125000 +v 1.250000 0.125000 -2.125000 +v -1.250000 0.125000 -2.125000 +v 1.250000 0.000000 2.125000 +v -1.250000 0.000000 2.125000 +v 1.250000 0.125000 2.125000 +v -1.250000 0.125000 2.125000 +v 1.250000 0.000000 2.375000 +v -1.250000 0.000000 2.375000 +v 1.250000 0.125000 2.375000 +v -1.250000 0.125000 2.375000 +v 1.250000 2.875000 -2.375000 +v -1.250000 2.875000 -2.375000 +v 1.250000 3.000000 -2.375000 +v -1.250000 3.000000 -2.375000 +v 1.250000 2.875000 -2.125000 +v -1.250000 2.875000 -2.125000 +v 1.250000 3.000000 -2.125000 +v -1.250000 3.000000 -2.125000 +v 1.250000 2.875000 2.125000 +v -1.250000 2.875000 2.125000 +v 1.250000 3.000000 2.125000 +v -1.250000 3.000000 2.125000 +v 1.250000 2.875000 2.375000 +v -1.250000 2.875000 2.375000 +v 1.250000 3.000000 2.375000 +v -1.250000 3.000000 2.375000 +v -1.500000 0.250000 -2.375000 +v -1.500000 2.750000 -2.375000 +v -1.375000 0.250000 -2.375000 +v -1.375000 2.750000 -2.375000 +v -1.500000 0.250000 -2.125000 +v -1.500000 2.750000 -2.125000 +v -1.375000 0.250000 -2.125000 +v -1.375000 2.750000 -2.125000 +v -1.500000 0.250000 2.125000 +v -1.500000 2.750000 2.125000 +v -1.375000 0.250000 2.125000 +v -1.375000 2.750000 2.125000 +v -1.500000 0.250000 2.375000 +v -1.500000 2.750000 2.375000 +v -1.375000 0.250000 2.375000 +v -1.375000 2.750000 2.375000 +v 1.375000 0.250000 -2.375000 +v 1.375000 2.750000 -2.375000 +v 1.500000 0.250000 -2.375000 +v 1.500000 2.750000 -2.375000 +v 1.375000 0.250000 -2.125000 +v 1.375000 2.750000 -2.125000 +v 1.500000 0.250000 -2.125000 +v 1.500000 2.750000 -2.125000 +v 1.375000 0.250000 2.125000 +v 1.375000 2.750000 2.125000 +v 1.500000 0.250000 2.125000 +v 1.500000 2.750000 2.125000 +v 1.375000 0.250000 2.375000 +v 1.375000 2.750000 2.375000 +v 1.500000 0.250000 2.375000 +v 1.500000 2.750000 2.375000 +v -1.375000 2.250000 -1.500000 +v -1.375000 0.750000 -1.500000 +v -1.375000 2.250000 1.500000 +v -1.375000 0.750000 1.500000 +v -1.000000 2.250000 1.500000 +v -1.000000 2.250000 -1.500000 +v -1.000000 0.750000 -1.500000 +v -1.000000 0.750000 1.500000 +v -1.375000 1.500000 0.625000 +v -1.375000 1.812500 0.541266 +v -1.375000 2.041266 0.312500 +v -1.375000 2.125000 0.000000 +v -1.375000 2.041266 -0.312500 +v -1.375000 1.812500 -0.541266 +v -1.375000 1.500000 -0.625000 +v -1.375000 1.187500 -0.541266 +v -1.375000 0.958734 -0.312500 +v -1.375000 0.875000 -0.000000 +v -1.375000 0.958734 0.312500 +v -1.375000 1.187500 0.541266 +v -1.375000 1.500000 0.500000 +v -1.375000 1.750000 0.433013 +v -1.375000 1.933013 0.250000 +v -1.375000 2.000000 0.000000 +v -1.375000 1.933013 -0.250000 +v -1.375000 1.750000 -0.433013 +v -1.375000 1.500000 -0.500000 +v -1.375000 1.250000 -0.433013 +v -1.375000 1.066987 -0.250000 +v -1.375000 1.000000 -0.000000 +v -1.375000 1.066987 0.250000 +v -1.375000 1.250000 0.433013 +v -1.625000 1.812500 0.541266 +v -1.625000 1.500000 0.625000 +v -1.625000 2.041266 0.312500 +v -1.625000 2.125000 0.000000 +v -1.625000 2.041266 -0.312500 +v -1.625000 1.812500 -0.541266 +v -1.625000 1.500000 -0.625000 +v -1.625000 1.187500 -0.541266 +v -1.625000 0.958734 -0.312500 +v -1.625000 0.875000 -0.000000 +v -1.625000 0.958734 0.312500 +v -1.625000 1.187500 0.541266 +v -1.625000 1.750000 0.433013 +v -1.625000 1.500000 0.500000 +v -1.625000 1.933013 0.250000 +v -1.625000 2.000000 0.000000 +v -1.625000 1.933013 -0.250000 +v -1.625000 1.750000 -0.433013 +v -1.625000 1.500000 -0.500000 +v -1.625000 1.250000 -0.433013 +v -1.625000 1.066987 -0.250000 +v -1.625000 1.000000 -0.000000 +v -1.625000 1.066987 0.250000 +v -1.625000 1.250000 0.433013 +v -1.562500 1.406250 -0.500000 +v -1.562500 1.343750 -0.500000 +v -1.562500 1.406250 0.500000 +v -1.562500 1.343750 0.500000 +v -1.562500 1.656250 -0.500000 +v -1.562500 1.593750 -0.500000 +v -1.562500 1.656250 0.500000 +v -1.562500 1.593750 0.500000 +v -1.562500 1.906250 -0.375000 +v -1.562500 1.843750 -0.375000 +v -1.562500 1.906250 0.375000 +v -1.562500 1.843750 0.375000 +v -1.562500 1.166250 -0.375000 +v -1.562500 1.103750 -0.375000 +v -1.562500 1.166250 0.375000 +v -1.562500 1.103750 0.375000 +v -1.375000 2.000000 0.750000 +v -1.375000 1.000000 0.750000 +v -1.375000 2.000000 1.250000 +v -1.375000 1.000000 1.250000 +v -1.500000 2.000000 1.250000 +v -1.500000 2.000000 0.750000 +v -1.500000 1.000000 0.750000 +v -1.500000 1.000000 1.250000 +v -1.375000 2.000000 -1.250000 +v -1.375000 1.000000 -1.250000 +v -1.375000 2.000000 -0.750000 +v -1.375000 1.000000 -0.750000 +v -1.500000 2.000000 -0.750000 +v -1.500000 2.000000 -1.250000 +v -1.500000 1.000000 -1.250000 +v -1.500000 1.000000 -0.750000 +v 1.125000 2.250000 -0.125000 +v 1.036612 2.250000 -0.088388 +v 1.000000 2.250000 0.000000 +v 1.036612 2.250000 0.088388 +v 1.125000 2.250000 0.125000 +v 1.213388 2.250000 0.088388 +v 1.250000 2.250000 -0.000000 +v 1.213388 2.250000 -0.088388 +v 1.125000 2.750000 -0.125000 +v 1.036612 2.750000 -0.088388 +v 1.000000 2.750000 0.000000 +v 1.036612 2.750000 0.088388 +v 1.125000 2.750000 0.125000 +v 1.213388 2.750000 0.088388 +v 1.250000 2.750000 -0.000000 +v 1.213388 2.750000 -0.088388 +v 1.088388 2.838388 -0.125000 +v 1.025888 2.775888 -0.088388 +v 1.025888 2.775888 0.088388 +v 1.088388 2.838388 0.125000 +v 1.150888 2.900888 0.088388 +v 1.176777 2.926777 -0.000000 +v 1.150888 2.900888 -0.088388 +v 1.000000 2.875000 -0.125000 +v 1.000000 2.786612 -0.088388 +v 1.000000 2.786612 0.088388 +v 1.000000 2.875000 0.125000 +v 1.000000 2.963388 0.088388 +v 1.000000 3.000000 -0.000000 +v 1.000000 2.963388 -0.088388 +v -1.125000 2.250000 0.125000 +v -1.036612 2.250000 0.088388 +v -1.000000 2.250000 0.000000 +v -1.036612 2.250000 -0.088388 +v -1.125000 2.250000 -0.125000 +v -1.213388 2.250000 -0.088388 +v -1.250000 2.250000 0.000000 +v -1.213388 2.250000 0.088388 +v -1.125000 2.750000 0.125000 +v -1.036612 2.750000 0.088388 +v -1.000000 2.750000 0.000000 +v -1.036612 2.750000 -0.088388 +v -1.125000 2.750000 -0.125000 +v -1.213388 2.750000 -0.088388 +v -1.250000 2.750000 0.000000 +v -1.213388 2.750000 0.088388 +v -1.088388 2.838388 0.125000 +v -1.025888 2.775888 0.088388 +v -1.025888 2.775888 -0.088388 +v -1.088388 2.838388 -0.125000 +v -1.150888 2.900888 -0.088388 +v -1.176777 2.926777 0.000000 +v -1.150888 2.900888 0.088388 +v -1.000000 2.875000 0.125000 +v -1.000000 2.786612 0.088388 +v -1.000000 2.786612 -0.088388 +v -1.000000 2.875000 -0.125000 +v -1.000000 2.963388 -0.088388 +v -1.000000 3.000000 0.000000 +v -1.000000 2.963388 0.088388 +v -0.500000 3.125000 1.000000 +v 0.500000 3.125000 1.000000 +v -0.500000 3.125000 -1.000000 +v 0.500000 3.125000 -1.000000 +v -0.500000 2.750000 -1.000000 +v -0.500000 2.750000 1.000000 +v 0.500000 2.750000 1.000000 +v 0.500000 2.750000 -1.000000 +v 0.000000 1.750000 -3.500000 +v -0.176777 1.676777 -3.500000 +v -0.250000 1.500000 -3.500000 +v -0.176777 1.323223 -3.500000 +v 0.000000 1.250000 -3.500000 +v 0.176777 1.323223 -3.500000 +v 0.250000 1.500000 -3.500000 +v 0.176777 1.676777 -3.500000 +v -0.176777 1.676777 -3.375000 +v 0.000000 1.750000 -3.375000 +v -0.250000 1.500000 -3.375000 +v -0.176777 1.323223 -3.375000 +v 0.000000 1.250000 -3.375000 +v 0.176777 1.323223 -3.375000 +v 0.250000 1.500000 -3.375000 +v 0.176777 1.676777 -3.375000 +v 0.000000 1.750000 3.500000 +v 0.176777 1.676777 3.500000 +v 0.250000 1.500000 3.500000 +v 0.176777 1.323223 3.500000 +v 0.000000 1.250000 3.500000 +v -0.176776 1.323223 3.500000 +v -0.250000 1.500000 3.500000 +v -0.176776 1.676777 3.500000 +v 0.176777 1.676777 3.375000 +v 0.000000 1.750000 3.375000 +v 0.250000 1.500000 3.375000 +v 0.176777 1.323223 3.375000 +v 0.000000 1.250000 3.375000 +v -0.176776 1.323223 3.375000 +v -0.250000 1.500000 3.375000 +v -0.176776 1.676777 3.375000 +v -0.500000 -0.125000 -1.000000 +v 0.500000 -0.125000 -1.000000 +v -0.500000 -0.125000 1.000000 +v 0.500000 -0.125000 1.000000 +v -0.500000 0.250000 1.000000 +v -0.500000 0.250000 -1.000000 +v 0.500000 0.250000 -1.000000 +v 0.500000 0.250000 1.000000 +v 1.125000 2.250000 -0.375000 +v 1.036612 2.250000 -0.338388 +v 1.000000 2.250000 -0.250000 +v 1.036612 2.250000 -0.161612 +v 1.125000 2.250000 -0.125000 +v 1.213388 2.250000 -0.161612 +v 1.250000 2.250000 -0.250000 +v 1.213388 2.250000 -0.338388 +v 1.125000 2.750000 -0.375000 +v 1.036612 2.750000 -0.338388 +v 1.000000 2.750000 -0.250000 +v 1.036612 2.750000 -0.161612 +v 1.125000 2.750000 -0.125000 +v 1.213388 2.750000 -0.161612 +v 1.250000 2.750000 -0.250000 +v 1.213388 2.750000 -0.338388 +v 1.088388 2.838388 -0.375000 +v 1.025888 2.775888 -0.338388 +v 1.025888 2.775888 -0.161612 +v 1.088388 2.838388 -0.125000 +v 1.150888 2.900888 -0.161612 +v 1.176777 2.926777 -0.250000 +v 1.150888 2.900888 -0.338388 +v 1.000000 2.875000 -0.375000 +v 1.000000 2.786612 -0.338388 +v 1.000000 2.786612 -0.161612 +v 1.000000 2.875000 -0.125000 +v 1.000000 2.963388 -0.161612 +v 1.000000 3.000000 -0.250000 +v 1.000000 2.963388 -0.338388 +v -1.125000 2.250000 -0.125000 +v -1.036612 2.250000 -0.161612 +v -1.000000 2.250000 -0.250000 +v -1.036612 2.250000 -0.338388 +v -1.125000 2.250000 -0.375000 +v -1.213388 2.250000 -0.338388 +v -1.250000 2.250000 -0.250000 +v -1.213388 2.250000 -0.161612 +v -1.125000 2.750000 -0.125000 +v -1.036612 2.750000 -0.161612 +v -1.000000 2.750000 -0.250000 +v -1.036612 2.750000 -0.338388 +v -1.125000 2.750000 -0.375000 +v -1.213388 2.750000 -0.338388 +v -1.250000 2.750000 -0.250000 +v -1.213388 2.750000 -0.161612 +v -1.088388 2.838388 -0.125000 +v -1.025888 2.775888 -0.161612 +v -1.025888 2.775888 -0.338388 +v -1.088388 2.838388 -0.375000 +v -1.150888 2.900888 -0.338388 +v -1.176777 2.926777 -0.250000 +v -1.150888 2.900888 -0.161612 +v -1.000000 2.875000 -0.125000 +v -1.000000 2.786612 -0.161612 +v -1.000000 2.786612 -0.338388 +v -1.000000 2.875000 -0.375000 +v -1.000000 2.963388 -0.338388 +v -1.000000 3.000000 -0.250000 +v -1.000000 2.963388 -0.161612 +v 1.125000 2.250000 -0.625000 +v 1.036612 2.250000 -0.588388 +v 1.000000 2.250000 -0.500000 +v 1.036612 2.250000 -0.411612 +v 1.125000 2.250000 -0.375000 +v 1.213388 2.250000 -0.411612 +v 1.250000 2.250000 -0.500000 +v 1.213388 2.250000 -0.588388 +v 1.125000 2.750000 -0.625000 +v 1.036612 2.750000 -0.588388 +v 1.000000 2.750000 -0.500000 +v 1.036612 2.750000 -0.411612 +v 1.125000 2.750000 -0.375000 +v 1.213388 2.750000 -0.411612 +v 1.250000 2.750000 -0.500000 +v 1.213388 2.750000 -0.588388 +v 1.088388 2.838388 -0.625000 +v 1.025888 2.775888 -0.588388 +v 1.025888 2.775888 -0.411612 +v 1.088388 2.838388 -0.375000 +v 1.150888 2.900888 -0.411612 +v 1.176777 2.926777 -0.500000 +v 1.150888 2.900888 -0.588388 +v 1.000000 2.875000 -0.625000 +v 1.000000 2.786612 -0.588388 +v 1.000000 2.786612 -0.411612 +v 1.000000 2.875000 -0.375000 +v 1.000000 2.963388 -0.411612 +v 1.000000 3.000000 -0.500000 +v 1.000000 2.963388 -0.588388 +v -1.125000 2.250000 -0.375000 +v -1.036612 2.250000 -0.411612 +v -1.000000 2.250000 -0.500000 +v -1.036612 2.250000 -0.588388 +v -1.125000 2.250000 -0.625000 +v -1.213388 2.250000 -0.588388 +v -1.250000 2.250000 -0.500000 +v -1.213388 2.250000 -0.411612 +v -1.125000 2.750000 -0.375000 +v -1.036612 2.750000 -0.411612 +v -1.000000 2.750000 -0.500000 +v -1.036612 2.750000 -0.588388 +v -1.125000 2.750000 -0.625000 +v -1.213388 2.750000 -0.588388 +v -1.250000 2.750000 -0.500000 +v -1.213388 2.750000 -0.411612 +v -1.088388 2.838388 -0.375000 +v -1.025888 2.775888 -0.411612 +v -1.025888 2.775888 -0.588388 +v -1.088388 2.838388 -0.625000 +v -1.150888 2.900888 -0.588388 +v -1.176777 2.926777 -0.500000 +v -1.150888 2.900888 -0.411612 +v -1.000000 2.875000 -0.375000 +v -1.000000 2.786612 -0.411612 +v -1.000000 2.786612 -0.588388 +v -1.000000 2.875000 -0.625000 +v -1.000000 2.963388 -0.588388 +v -1.000000 3.000000 -0.500000 +v -1.000000 2.963388 -0.411612 +v 1.125000 2.250000 0.375000 +v 1.036612 2.250000 0.411612 +v 1.000000 2.250000 0.500000 +v 1.036612 2.250000 0.588388 +v 1.125000 2.250000 0.625000 +v 1.213388 2.250000 0.588388 +v 1.250000 2.250000 0.500000 +v 1.213388 2.250000 0.411612 +v 1.125000 2.750000 0.375000 +v 1.036612 2.750000 0.411612 +v 1.000000 2.750000 0.500000 +v 1.036612 2.750000 0.588388 +v 1.125000 2.750000 0.625000 +v 1.213388 2.750000 0.588388 +v 1.250000 2.750000 0.500000 +v 1.213388 2.750000 0.411612 +v 1.088388 2.838388 0.375000 +v 1.025888 2.775888 0.411612 +v 1.025888 2.775888 0.588388 +v 1.088388 2.838388 0.625000 +v 1.150888 2.900888 0.588388 +v 1.176777 2.926777 0.500000 +v 1.150888 2.900888 0.411612 +v 1.000000 2.875000 0.375000 +v 1.000000 2.786612 0.411612 +v 1.000000 2.786612 0.588388 +v 1.000000 2.875000 0.625000 +v 1.000000 2.963388 0.588388 +v 1.000000 3.000000 0.500000 +v 1.000000 2.963388 0.411612 +v -1.125000 2.250000 0.625000 +v -1.036612 2.250000 0.588388 +v -1.000000 2.250000 0.500000 +v -1.036612 2.250000 0.411612 +v -1.125000 2.250000 0.375000 +v -1.213388 2.250000 0.411612 +v -1.250000 2.250000 0.500000 +v -1.213388 2.250000 0.588388 +v -1.125000 2.750000 0.625000 +v -1.036612 2.750000 0.588388 +v -1.000000 2.750000 0.500000 +v -1.036612 2.750000 0.411612 +v -1.125000 2.750000 0.375000 +v -1.213388 2.750000 0.411612 +v -1.250000 2.750000 0.500000 +v -1.213388 2.750000 0.588388 +v -1.088388 2.838388 0.625000 +v -1.025888 2.775888 0.588388 +v -1.025888 2.775888 0.411612 +v -1.088388 2.838388 0.375000 +v -1.150888 2.900888 0.411612 +v -1.176777 2.926777 0.500000 +v -1.150888 2.900888 0.588388 +v -1.000000 2.875000 0.625000 +v -1.000000 2.786612 0.588388 +v -1.000000 2.786612 0.411612 +v -1.000000 2.875000 0.375000 +v -1.000000 2.963388 0.411612 +v -1.000000 3.000000 0.500000 +v -1.000000 2.963388 0.588388 +v 1.125000 2.250000 0.125000 +v 1.036612 2.250000 0.161612 +v 1.000000 2.250000 0.250000 +v 1.036612 2.250000 0.338388 +v 1.125000 2.250000 0.375000 +v 1.213388 2.250000 0.338388 +v 1.250000 2.250000 0.250000 +v 1.213388 2.250000 0.161612 +v 1.125000 2.750000 0.125000 +v 1.036612 2.750000 0.161612 +v 1.000000 2.750000 0.250000 +v 1.036612 2.750000 0.338388 +v 1.125000 2.750000 0.375000 +v 1.213388 2.750000 0.338388 +v 1.250000 2.750000 0.250000 +v 1.213388 2.750000 0.161612 +v 1.088388 2.838388 0.125000 +v 1.025888 2.775888 0.161612 +v 1.025888 2.775888 0.338388 +v 1.088388 2.838388 0.375000 +v 1.150888 2.900888 0.338388 +v 1.176777 2.926777 0.250000 +v 1.150888 2.900888 0.161612 +v 1.000000 2.875000 0.125000 +v 1.000000 2.786612 0.161612 +v 1.000000 2.786612 0.338388 +v 1.000000 2.875000 0.375000 +v 1.000000 2.963388 0.338388 +v 1.000000 3.000000 0.250000 +v 1.000000 2.963388 0.161612 +v -1.125000 2.250000 0.375000 +v -1.036612 2.250000 0.338388 +v -1.000000 2.250000 0.250000 +v -1.036612 2.250000 0.161612 +v -1.125000 2.250000 0.125000 +v -1.213388 2.250000 0.161612 +v -1.250000 2.250000 0.250000 +v -1.213388 2.250000 0.338388 +v -1.125000 2.750000 0.375000 +v -1.036612 2.750000 0.338388 +v -1.000000 2.750000 0.250000 +v -1.036612 2.750000 0.161612 +v -1.125000 2.750000 0.125000 +v -1.213388 2.750000 0.161612 +v -1.250000 2.750000 0.250000 +v -1.213388 2.750000 0.338388 +v -1.088388 2.838388 0.375000 +v -1.025888 2.775888 0.338388 +v -1.025888 2.775888 0.161612 +v -1.088388 2.838388 0.125000 +v -1.150888 2.900888 0.161612 +v -1.176777 2.926777 0.250000 +v -1.150888 2.900888 0.338388 +v -1.000000 2.875000 0.375000 +v -1.000000 2.786612 0.338388 +v -1.000000 2.786612 0.161612 +v -1.000000 2.875000 0.125000 +v -1.000000 2.963388 0.161612 +v -1.000000 3.000000 0.250000 +v -1.000000 2.963388 0.338388 +v 1.125000 0.750000 0.125000 +v 1.036612 0.750000 0.088388 +v 1.000000 0.750000 -0.000000 +v 1.036612 0.750000 -0.088388 +v 1.125000 0.750000 -0.125000 +v 1.213388 0.750000 -0.088388 +v 1.250000 0.750000 -0.000000 +v 1.213388 0.750000 0.088388 +v 1.125000 0.250000 0.125000 +v 1.036612 0.250000 0.088388 +v 1.000000 0.250000 -0.000000 +v 1.036612 0.250000 -0.088389 +v 1.125000 0.250000 -0.125000 +v 1.213388 0.250000 -0.088389 +v 1.250000 0.250000 -0.000000 +v 1.213388 0.250000 0.088388 +v 1.088388 0.161612 0.125000 +v 1.025888 0.224112 0.088388 +v 1.025888 0.224112 -0.088389 +v 1.088388 0.161612 -0.125000 +v 1.150888 0.099112 -0.088389 +v 1.176777 0.073223 -0.000000 +v 1.150888 0.099112 0.088388 +v 1.000000 0.125000 0.125000 +v 1.000000 0.213388 0.088388 +v 1.000000 0.213388 -0.088389 +v 1.000000 0.125000 -0.125000 +v 1.000000 0.036612 -0.088389 +v 1.000000 0.000000 -0.000000 +v 1.000000 0.036612 0.088388 +v -1.125000 0.750000 -0.125000 +v -1.036612 0.750000 -0.088388 +v -1.000000 0.750000 -0.000000 +v -1.036612 0.750000 0.088388 +v -1.125000 0.750000 0.125000 +v -1.213388 0.750000 0.088388 +v -1.250000 0.750000 -0.000000 +v -1.213388 0.750000 -0.088388 +v -1.125000 0.250000 -0.125000 +v -1.036612 0.250000 -0.088389 +v -1.000000 0.250000 -0.000000 +v -1.036612 0.250000 0.088388 +v -1.125000 0.250000 0.125000 +v -1.213388 0.250000 0.088388 +v -1.250000 0.250000 -0.000000 +v -1.213388 0.250000 -0.088389 +v -1.088388 0.161612 -0.125000 +v -1.025888 0.224112 -0.088389 +v -1.025888 0.224112 0.088388 +v -1.088388 0.161612 0.125000 +v -1.150888 0.099112 0.088388 +v -1.176777 0.073223 -0.000000 +v -1.150888 0.099112 -0.088389 +v -1.000000 0.125000 -0.125000 +v -1.000000 0.213388 -0.088389 +v -1.000000 0.213388 0.088388 +v -1.000000 0.125000 0.125000 +v -1.000000 0.036612 0.088388 +v -1.000000 0.000000 -0.000000 +v -1.000000 0.036612 -0.088389 +v 1.125000 0.750000 0.375000 +v 1.036612 0.750000 0.338388 +v 1.000000 0.750000 0.250000 +v 1.036612 0.750000 0.161611 +v 1.125000 0.750000 0.125000 +v 1.213388 0.750000 0.161612 +v 1.250000 0.750000 0.250000 +v 1.213388 0.750000 0.338388 +v 1.125000 0.250000 0.375000 +v 1.036612 0.250000 0.338388 +v 1.000000 0.250000 0.250000 +v 1.036612 0.250000 0.161611 +v 1.125000 0.250000 0.125000 +v 1.213388 0.250000 0.161611 +v 1.250000 0.250000 0.250000 +v 1.213388 0.250000 0.338388 +v 1.088388 0.161612 0.375000 +v 1.025888 0.224112 0.338388 +v 1.025888 0.224112 0.161611 +v 1.088388 0.161612 0.125000 +v 1.150888 0.099112 0.161611 +v 1.176777 0.073223 0.250000 +v 1.150888 0.099112 0.338388 +v 1.000000 0.125000 0.375000 +v 1.000000 0.213388 0.338388 +v 1.000000 0.213388 0.161611 +v 1.000000 0.125000 0.125000 +v 1.000000 0.036612 0.161611 +v 1.000000 0.000000 0.250000 +v 1.000000 0.036612 0.338388 +v -1.125000 0.750000 0.125000 +v -1.036612 0.750000 0.161611 +v -1.000000 0.750000 0.250000 +v -1.036612 0.750000 0.338388 +v -1.125000 0.750000 0.375000 +v -1.213388 0.750000 0.338388 +v -1.250000 0.750000 0.250000 +v -1.213388 0.750000 0.161611 +v -1.125000 0.250000 0.125000 +v -1.036612 0.250000 0.161611 +v -1.000000 0.250000 0.250000 +v -1.036612 0.250000 0.338388 +v -1.125000 0.250000 0.375000 +v -1.213388 0.250000 0.338388 +v -1.250000 0.250000 0.250000 +v -1.213388 0.250000 0.161611 +v -1.088388 0.161612 0.125000 +v -1.025888 0.224112 0.161611 +v -1.025888 0.224112 0.338388 +v -1.088388 0.161612 0.375000 +v -1.150888 0.099112 0.338388 +v -1.176777 0.073223 0.250000 +v -1.150888 0.099112 0.161611 +v -1.000000 0.125000 0.125000 +v -1.000000 0.213388 0.161611 +v -1.000000 0.213388 0.338388 +v -1.000000 0.125000 0.375000 +v -1.000000 0.036612 0.338388 +v -1.000000 0.000000 0.250000 +v -1.000000 0.036612 0.161611 +v 1.125000 0.750000 0.625000 +v 1.036612 0.750000 0.588388 +v 1.000000 0.750000 0.500000 +v 1.036612 0.750000 0.411612 +v 1.125000 0.750000 0.375000 +v 1.213388 0.750000 0.411612 +v 1.250000 0.750000 0.500000 +v 1.213388 0.750000 0.588388 +v 1.125000 0.250000 0.625000 +v 1.036612 0.250000 0.588388 +v 1.000000 0.250000 0.500000 +v 1.036612 0.250000 0.411611 +v 1.125000 0.250000 0.375000 +v 1.213388 0.250000 0.411611 +v 1.250000 0.250000 0.500000 +v 1.213388 0.250000 0.588388 +v 1.088388 0.161612 0.625000 +v 1.025888 0.224112 0.588388 +v 1.025888 0.224112 0.411611 +v 1.088388 0.161612 0.375000 +v 1.150888 0.099112 0.411611 +v 1.176777 0.073223 0.500000 +v 1.150888 0.099112 0.588388 +v 1.000000 0.125000 0.625000 +v 1.000000 0.213388 0.588388 +v 1.000000 0.213388 0.411611 +v 1.000000 0.125000 0.375000 +v 1.000000 0.036612 0.411611 +v 1.000000 0.000000 0.500000 +v 1.000000 0.036612 0.588388 +v -1.125000 0.750000 0.375000 +v -1.036612 0.750000 0.411612 +v -1.000000 0.750000 0.500000 +v -1.036612 0.750000 0.588388 +v -1.125000 0.750000 0.625000 +v -1.213388 0.750000 0.588388 +v -1.250000 0.750000 0.500000 +v -1.213388 0.750000 0.411612 +v -1.125000 0.250000 0.375000 +v -1.036612 0.250000 0.411611 +v -1.000000 0.250000 0.500000 +v -1.036612 0.250000 0.588388 +v -1.125000 0.250000 0.625000 +v -1.213388 0.250000 0.588388 +v -1.250000 0.250000 0.500000 +v -1.213388 0.250000 0.411611 +v -1.088388 0.161612 0.375000 +v -1.025888 0.224112 0.411611 +v -1.025888 0.224112 0.588388 +v -1.088388 0.161612 0.625000 +v -1.150888 0.099112 0.588388 +v -1.176777 0.073223 0.500000 +v -1.150888 0.099112 0.411611 +v -1.000000 0.125000 0.375000 +v -1.000000 0.213388 0.411611 +v -1.000000 0.213388 0.588388 +v -1.000000 0.125000 0.625000 +v -1.000000 0.036612 0.588388 +v -1.000000 0.000000 0.500000 +v -1.000000 0.036612 0.411611 +v 1.125000 0.750000 -0.375000 +v 1.036612 0.750000 -0.411612 +v 1.000000 0.750000 -0.500000 +v 1.036612 0.750000 -0.588389 +v 1.125000 0.750000 -0.625000 +v 1.213388 0.750000 -0.588389 +v 1.250000 0.750000 -0.500000 +v 1.213388 0.750000 -0.411612 +v 1.125000 0.250000 -0.375000 +v 1.036612 0.250000 -0.411612 +v 1.000000 0.250000 -0.500000 +v 1.036612 0.250000 -0.588389 +v 1.125000 0.250000 -0.625000 +v 1.213388 0.250000 -0.588389 +v 1.250000 0.250000 -0.500000 +v 1.213388 0.250000 -0.411612 +v 1.088388 0.161612 -0.375000 +v 1.025888 0.224112 -0.411612 +v 1.025888 0.224112 -0.588389 +v 1.088388 0.161612 -0.625000 +v 1.150888 0.099112 -0.588389 +v 1.176777 0.073223 -0.500000 +v 1.150888 0.099112 -0.411612 +v 1.000000 0.125000 -0.375000 +v 1.000000 0.213388 -0.411612 +v 1.000000 0.213388 -0.588389 +v 1.000000 0.125000 -0.625000 +v 1.000000 0.036612 -0.588389 +v 1.000000 0.000000 -0.500000 +v 1.000000 0.036612 -0.411612 +v -1.125000 0.750000 -0.625000 +v -1.036612 0.750000 -0.588389 +v -1.000000 0.750000 -0.500000 +v -1.036612 0.750000 -0.411612 +v -1.125000 0.750000 -0.375000 +v -1.213388 0.750000 -0.411612 +v -1.250000 0.750000 -0.500000 +v -1.213388 0.750000 -0.588389 +v -1.125000 0.250000 -0.625000 +v -1.036612 0.250000 -0.588389 +v -1.000000 0.250000 -0.500000 +v -1.036612 0.250000 -0.411612 +v -1.125000 0.250000 -0.375000 +v -1.213388 0.250000 -0.411612 +v -1.250000 0.250000 -0.500000 +v -1.213388 0.250000 -0.588389 +v -1.088388 0.161612 -0.625000 +v -1.025888 0.224112 -0.588389 +v -1.025888 0.224112 -0.411612 +v -1.088388 0.161612 -0.375000 +v -1.150888 0.099112 -0.411612 +v -1.176777 0.073223 -0.500000 +v -1.150888 0.099112 -0.588389 +v -1.000000 0.125000 -0.625000 +v -1.000000 0.213388 -0.588389 +v -1.000000 0.213388 -0.411612 +v -1.000000 0.125000 -0.375000 +v -1.000000 0.036612 -0.411612 +v -1.000000 0.000000 -0.500000 +v -1.000000 0.036612 -0.588389 +v 1.125000 0.750000 -0.125000 +v 1.036612 0.750000 -0.161612 +v 1.000000 0.750000 -0.250000 +v 1.036612 0.750000 -0.338388 +v 1.125000 0.750000 -0.375000 +v 1.213388 0.750000 -0.338388 +v 1.250000 0.750000 -0.250000 +v 1.213388 0.750000 -0.161612 +v 1.125000 0.250000 -0.125000 +v 1.036612 0.250000 -0.161612 +v 1.000000 0.250000 -0.250000 +v 1.036612 0.250000 -0.338389 +v 1.125000 0.250000 -0.375000 +v 1.213388 0.250000 -0.338389 +v 1.250000 0.250000 -0.250000 +v 1.213388 0.250000 -0.161612 +v 1.088388 0.161612 -0.125000 +v 1.025888 0.224112 -0.161612 +v 1.025888 0.224112 -0.338389 +v 1.088388 0.161612 -0.375000 +v 1.150888 0.099112 -0.338389 +v 1.176777 0.073223 -0.250000 +v 1.150888 0.099112 -0.161612 +v 1.000000 0.125000 -0.125000 +v 1.000000 0.213388 -0.161612 +v 1.000000 0.213388 -0.338389 +v 1.000000 0.125000 -0.375000 +v 1.000000 0.036612 -0.338389 +v 1.000000 0.000000 -0.250000 +v 1.000000 0.036612 -0.161612 +v -1.125000 0.750000 -0.375000 +v -1.036612 0.750000 -0.338388 +v -1.000000 0.750000 -0.250000 +v -1.036612 0.750000 -0.161612 +v -1.125000 0.750000 -0.125000 +v -1.213388 0.750000 -0.161612 +v -1.250000 0.750000 -0.250000 +v -1.213388 0.750000 -0.338388 +v -1.125000 0.250000 -0.375000 +v -1.036612 0.250000 -0.338389 +v -1.000000 0.250000 -0.250000 +v -1.036612 0.250000 -0.161612 +v -1.125000 0.250000 -0.125000 +v -1.213388 0.250000 -0.161612 +v -1.250000 0.250000 -0.250000 +v -1.213388 0.250000 -0.338389 +v -1.088388 0.161612 -0.375000 +v -1.025888 0.224112 -0.338389 +v -1.025888 0.224112 -0.161612 +v -1.088388 0.161612 -0.125000 +v -1.150888 0.099112 -0.161612 +v -1.176777 0.073223 -0.250000 +v -1.150888 0.099112 -0.338389 +v -1.000000 0.125000 -0.375000 +v -1.000000 0.213388 -0.338389 +v -1.000000 0.213388 -0.161612 +v -1.000000 0.125000 -0.125000 +v -1.000000 0.036612 -0.161612 +v -1.000000 0.000000 -0.250000 +v -1.000000 0.036612 -0.338389 +vt 0.600000 0.046875 +vt 0.576000 -0.000000 +vt 0.600000 -0.000000 +vt 0.600000 0.046875 +vt 0.576000 -0.000000 +vt 0.600000 -0.000000 +vt 0.600000 0.046875 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.600000 0.046875 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.576000 0.046875 +vt 0.600000 0.046875 +vt 0.600000 0.046875 +vt 0.576000 -0.000000 +vt 0.600000 -0.000000 +vt 0.600000 0.046875 +vt 0.576000 -0.000000 +vt 0.600000 -0.000000 +vt 0.600000 0.046875 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.600000 0.046875 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.576000 0.046875 +vt 0.600000 0.046875 +vt 0.600000 0.046875 +vt 0.576000 -0.000000 +vt 0.600000 -0.000000 +vt 0.600000 0.046875 +vt 0.576000 -0.000000 +vt 0.600000 -0.000000 +vt 0.600000 0.046875 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.600000 0.046875 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.576000 0.046875 +vt 0.600000 0.046875 +vt 0.600000 0.046875 +vt 0.576000 -0.000000 +vt 0.600000 -0.000000 +vt 0.600000 0.046875 +vt 0.576000 -0.000000 +vt 0.600000 -0.000000 +vt 0.600000 0.046875 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.600000 0.046875 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.576000 0.046875 +vt 0.600000 0.046875 +vt 0.600000 0.046875 +vt 0.576000 -0.000000 +vt 0.600000 -0.000000 +vt 0.600000 0.046875 +vt 0.576000 -0.000000 +vt 0.600000 -0.000000 +vt 0.600000 0.046875 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.600000 0.046875 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.576000 0.046875 +vt 0.600000 0.046875 +vt 0.600000 0.046875 +vt 0.576000 -0.000000 +vt 0.600000 -0.000000 +vt 0.600000 0.046875 +vt 0.576000 -0.000000 +vt 0.600000 -0.000000 +vt 0.600000 0.046875 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.600000 0.046875 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.576000 0.046875 +vt 0.600000 0.046875 +vt 0.600000 0.046875 +vt 0.576000 -0.000000 +vt 0.600000 -0.000000 +vt 0.600000 0.046875 +vt 0.576000 -0.000000 +vt 0.600000 -0.000000 +vt 0.600000 0.046875 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.600000 0.046875 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.576000 0.046875 +vt 0.600000 0.046875 +vt 0.600000 0.046875 +vt 0.576000 -0.000000 +vt 0.600000 -0.000000 +vt 0.600000 0.046875 +vt 0.576000 -0.000000 +vt 0.600000 -0.000000 +vt 0.600000 0.046875 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.600000 0.046875 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.576000 0.000000 +vt 0.600000 0.000000 +vt 0.576000 0.046875 +vt 0.600000 0.046875 +vt 0.600000 -0.000000 +vt 1.000000 0.031250 +vt 0.600000 0.031250 +vt 1.000000 0.031250 +vt 0.600000 -0.000000 +vt 1.000000 -0.000000 +vt 0.600000 -0.000000 +vt 1.000000 0.031250 +vt 0.600000 0.031250 +vt 0.600000 0.031250 +vt 1.000000 -0.000000 +vt 1.000000 0.031250 +vt 0.600000 -0.000000 +vt 1.000000 0.031250 +vt 0.600000 0.031250 +vt 1.000000 0.031250 +vt 0.600000 -0.000000 +vt 1.000000 -0.000000 +vt 0.600000 -0.000000 +vt 1.000000 0.031250 +vt 0.600000 0.031250 +vt 0.600000 0.031250 +vt 1.000000 -0.000000 +vt 1.000000 0.031250 +vt 0.600000 -0.000000 +vt 1.000000 0.031250 +vt 0.600000 0.031250 +vt 1.000000 0.031250 +vt 0.600000 -0.000000 +vt 1.000000 -0.000000 +vt 0.600000 -0.000000 +vt 1.000000 0.031250 +vt 0.600000 0.031250 +vt 0.600000 0.031250 +vt 1.000000 -0.000000 +vt 1.000000 0.031250 +vt 0.600000 -0.000000 +vt 1.000000 0.031250 +vt 0.600000 0.031250 +vt 1.000000 0.031250 +vt 0.600000 -0.000000 +vt 1.000000 -0.000000 +vt 0.600000 -0.000000 +vt 1.000000 0.031250 +vt 0.600000 0.031250 +vt 0.600000 0.031250 +vt 1.000000 -0.000000 +vt 1.000000 0.031250 +vt 0.600000 0.062500 +vt 0.744000 0.031250 +vt 0.744000 0.062500 +vt 0.600000 0.062500 +vt 0.744000 0.031250 +vt 0.744000 0.062500 +vt 0.744000 0.031250 +vt 0.600000 0.062500 +vt 0.600000 0.031250 +vt 0.744000 0.031250 +vt 0.600000 0.062500 +vt 0.600000 0.031250 +vt 0.600000 0.062500 +vt 0.744000 0.031250 +vt 0.744000 0.062500 +vt 0.600000 0.062500 +vt 0.744000 0.031250 +vt 0.744000 0.062500 +vt 0.744000 0.031250 +vt 0.600000 0.062500 +vt 0.600000 0.031250 +vt 0.744000 0.031250 +vt 0.600000 0.062500 +vt 0.600000 0.031250 +vt 0.600000 0.062500 +vt 0.744000 0.031250 +vt 0.744000 0.062500 +vt 0.600000 0.062500 +vt 0.744000 0.031250 +vt 0.744000 0.062500 +vt 0.744000 0.031250 +vt 0.600000 0.062500 +vt 0.600000 0.031250 +vt 0.744000 0.031250 +vt 0.600000 0.062500 +vt 0.600000 0.031250 +vt 0.600000 0.062500 +vt 0.744000 0.031250 +vt 0.744000 0.062500 +vt 0.600000 0.062500 +vt 0.744000 0.031250 +vt 0.744000 0.062500 +vt 0.744000 0.031250 +vt 0.600000 0.062500 +vt 0.600000 0.031250 +vt 0.744000 0.031250 +vt 0.600000 0.062500 +vt 0.600000 0.031250 +vt 0.600000 0.062500 +vt 0.744000 0.031250 +vt 0.744000 0.062500 +vt 0.600000 0.062500 +vt 0.744000 0.031250 +vt 0.744000 0.062500 +vt 0.744000 0.031250 +vt 0.600000 0.062500 +vt 0.600000 0.031250 +vt 0.744000 0.031250 +vt 0.600000 0.062500 +vt 0.600000 0.031250 +vt 0.600000 0.062500 +vt 0.744000 0.031250 +vt 0.744000 0.062500 +vt 0.600000 0.062500 +vt 0.744000 0.031250 +vt 0.744000 0.062500 +vt 0.744000 0.031250 +vt 0.600000 0.062500 +vt 0.600000 0.031250 +vt 0.744000 0.031250 +vt 0.600000 0.062500 +vt 0.600000 0.031250 +vt 0.600000 0.062500 +vt 0.744000 0.031250 +vt 0.744000 0.062500 +vt 0.600000 0.062500 +vt 0.744000 0.031250 +vt 0.744000 0.062500 +vt 0.744000 0.031250 +vt 0.600000 0.062500 +vt 0.600000 0.031250 +vt 0.744000 0.031250 +vt 0.600000 0.062500 +vt 0.600000 0.031250 +vt 0.600000 0.062500 +vt 0.744000 0.031250 +vt 0.744000 0.062500 +vt 0.600000 0.062500 +vt 0.744000 0.031250 +vt 0.744000 0.062500 +vt 0.744000 0.031250 +vt 0.600000 0.062500 +vt 0.600000 0.031250 +vt 0.744000 0.031250 +vt 0.600000 0.062500 +vt 0.600000 0.031250 +vt 0.096000 0.500000 +vt 0.104000 0.437500 +vt 0.104000 0.500000 +vt 0.104000 0.562500 +vt 0.096000 0.625000 +vt 0.096000 0.562500 +vt 0.104000 0.625000 +vt 0.096000 0.687500 +vt 0.104000 0.687500 +vt 0.096000 0.750000 +vt 0.104000 0.750000 +vt 0.096000 0.812500 +vt 0.104000 0.812500 +vt 0.096000 0.875000 +vt 0.096000 0.937500 +vt 0.104000 0.875000 +vt 0.104000 0.937500 +vt 0.096000 1.000000 +vt 0.104000 1.000000 +vt 0.096000 0.062500 +vt 0.104000 0.000000 +vt 0.104000 0.062500 +vt 0.096000 0.125000 +vt 0.104000 0.125000 +vt 0.096000 0.187500 +vt 0.104000 0.187500 +vt 0.104000 0.250000 +vt 0.104000 0.312500 +vt 0.096000 0.250000 +vt 0.104000 0.375000 +vt 0.096000 0.312500 +vt 0.096000 0.375000 +vt 0.472000 0.500000 +vt 0.480000 0.562500 +vt 0.472000 0.562500 +vt 0.480000 0.437500 +vt 0.472000 0.437500 +vt 0.480000 0.375000 +vt 0.472000 0.375000 +vt 0.480000 0.312500 +vt 0.472000 0.312500 +vt 0.480000 0.250000 +vt 0.472000 0.250000 +vt 0.480000 0.187500 +vt 0.472000 0.187500 +vt 0.480000 0.125000 +vt 0.480000 0.062500 +vt 0.472000 0.125000 +vt 0.472000 0.062500 +vt 0.480000 0.000000 +vt 0.472000 0.000000 +vt 0.480000 0.937500 +vt 0.472000 1.000000 +vt 0.472000 0.937500 +vt 0.480000 0.875000 +vt 0.472000 0.875000 +vt 0.480000 0.812500 +vt 0.472000 0.812500 +vt 0.472000 0.750000 +vt 0.472000 0.687500 +vt 0.480000 0.750000 +vt 0.472000 0.625000 +vt 0.480000 0.687500 +vt 0.480000 0.625000 +vt 0.120000 0.750000 +vt 0.128000 0.812500 +vt 0.120000 0.812500 +vt 0.128000 0.875000 +vt 0.120000 0.875000 +vt 0.128000 0.937500 +vt 0.120000 0.937500 +vt 0.128000 1.000000 +vt 0.120000 1.000000 +vt 0.120000 -0.000000 +vt 0.128000 0.062500 +vt 0.120000 0.062500 +vt 0.128000 0.125000 +vt 0.120000 0.125000 +vt 0.128000 0.187500 +vt 0.120000 0.187500 +vt 0.120000 0.250000 +vt 0.128000 0.250000 +vt 0.120000 0.312500 +vt 0.128000 0.312500 +vt 0.120000 0.375000 +vt 0.128000 0.375000 +vt 0.120000 0.437500 +vt 0.128000 0.500000 +vt 0.120000 0.500000 +vt 0.120000 0.562500 +vt 0.128000 0.562500 +vt 0.128000 0.625000 +vt 0.120000 0.625000 +vt 0.128000 0.687500 +vt 0.120000 0.687500 +vt 0.128000 0.750000 +vt 0.456000 0.250000 +vt 0.448000 0.312500 +vt 0.448000 0.250000 +vt 0.456000 0.312500 +vt 0.448000 0.375000 +vt 0.456000 0.375000 +vt 0.448000 0.437500 +vt 0.448000 0.500000 +vt 0.456000 0.437500 +vt 0.456000 0.500000 +vt 0.448000 0.562500 +vt 0.456000 0.562500 +vt 0.448000 0.625000 +vt 0.456000 0.625000 +vt 0.448000 0.687500 +vt 0.456000 0.687500 +vt 0.448000 0.750000 +vt 0.456000 0.750000 +vt 0.448000 0.812500 +vt 0.456000 0.812500 +vt 0.448000 0.875000 +vt 0.448000 0.937500 +vt 0.456000 0.875000 +vt 0.456000 0.937500 +vt 0.456000 1.000000 +vt 0.456000 0.062500 +vt 0.448000 0.000000 +vt 0.456000 -0.000000 +vt 0.456000 0.125000 +vt 0.448000 0.062500 +vt 0.456000 0.187500 +vt 0.448000 0.125000 +vt 0.448000 0.187500 +vt 0.600000 0.156250 +vt 0.792000 0.343750 +vt 0.600000 0.343750 +vt 0.792000 0.109375 +vt 0.792000 0.156250 +vt 0.600000 0.390625 +vt 0.816000 0.343750 +vt 0.576000 0.156250 +vt 0.904000 0.062500 +vt 0.884000 0.078125 +vt 0.884000 0.062500 +vt 0.868000 0.078125 +vt 0.864000 0.062500 +vt 0.884000 0.062500 +vt 0.900000 0.078125 +vt 0.884000 0.078125 +vt 0.868000 0.078125 +vt 0.864000 0.062500 +vt 0.884000 0.062500 +vt 0.900000 0.078125 +vt 0.884000 0.078125 +vt 0.868000 0.078125 +vt 0.864000 0.062500 +vt 0.884000 0.062500 +vt 0.900000 0.078125 +vt 0.884000 0.078125 +vt 0.868000 0.078125 +vt 0.864000 0.062500 +vt 0.884000 0.062500 +vt 0.900000 0.078125 +vt 0.884000 0.078125 +vt 0.868000 0.078125 +vt 0.864000 0.062500 +vt 0.904000 0.062500 +vt 0.884000 0.078125 +vt 0.884000 0.062500 +vt 0.868000 0.078125 +vt 0.864000 0.062500 +vt 0.904000 0.031250 +vt 0.968000 0.039062 +vt 0.904000 0.039062 +vt 0.904000 0.031250 +vt 0.968000 0.039062 +vt 0.904000 0.039062 +vt 0.912000 0.031250 +vt 0.960000 0.039062 +vt 0.912000 0.039062 +vt 0.912000 0.031250 +vt 0.960000 0.039062 +vt 0.912000 0.039062 +vt 0.824000 0.062500 +vt 0.856000 0.187500 +vt 0.824000 0.187500 +vt 0.824000 0.062500 +vt 0.856000 0.187500 +vt 0.824000 0.187500 +vt 0.864000 0.187500 +vt 0.856000 0.062500 +vt 0.864000 0.062500 +vt 0.816000 0.062500 +vt 0.816000 0.187500 +vt 0.856000 0.046875 +vt 0.824000 0.046875 +vt 0.824000 0.203125 +vt 0.856000 0.203125 +vt 0.864000 0.187500 +vt 0.856000 0.062500 +vt 0.864000 0.062500 +vt 0.816000 0.062500 +vt 0.816000 0.187500 +vt 0.856000 0.046875 +vt 0.824000 0.046875 +vt 0.824000 0.203125 +vt 0.856000 0.203125 +vt 0.576000 0.109375 +vt 0.736000 0.093750 +vt 0.736000 0.109375 +vt 0.576000 0.093750 +vt 0.736000 0.062500 +vt 0.736000 0.062500 +vt 0.576000 0.093750 +vt 0.576000 0.062500 +vt 0.736000 0.093750 +vt 0.576000 0.109375 +vt 0.576000 0.109375 +vt 0.736000 0.093750 +vt 0.736000 0.109375 +vt 0.576000 0.093750 +vt 0.736000 0.062500 +vt 0.736000 0.062500 +vt 0.576000 0.093750 +vt 0.576000 0.062500 +vt 0.736000 0.093750 +vt 0.576000 0.109375 +vt 0.576000 0.109375 +vt 0.736000 0.093750 +vt 0.736000 0.109375 +vt 0.576000 0.093750 +vt 0.736000 0.062500 +vt 0.736000 0.062500 +vt 0.576000 0.093750 +vt 0.576000 0.062500 +vt 0.736000 0.093750 +vt 0.576000 0.109375 +vt 0.576000 0.109375 +vt 0.736000 0.093750 +vt 0.736000 0.109375 +vt 0.576000 0.093750 +vt 0.736000 0.062500 +vt 0.736000 0.062500 +vt 0.576000 0.093750 +vt 0.576000 0.062500 +vt 0.736000 0.093750 +vt 0.576000 0.109375 +vt 0.576000 0.109375 +vt 0.736000 0.093750 +vt 0.736000 0.109375 +vt 0.576000 0.093750 +vt 0.736000 0.062500 +vt 0.736000 0.062500 +vt 0.576000 0.093750 +vt 0.576000 0.062500 +vt 0.736000 0.093750 +vt 0.576000 0.109375 +vt 0.576000 0.109375 +vt 0.736000 0.093750 +vt 0.736000 0.109375 +vt 0.576000 0.093750 +vt 0.736000 0.062500 +vt 0.736000 0.062500 +vt 0.576000 0.093750 +vt 0.576000 0.062500 +vt 0.736000 0.093750 +vt 0.576000 0.109375 +vt 0.576000 0.109375 +vt 0.736000 0.093750 +vt 0.736000 0.109375 +vt 0.576000 0.093750 +vt 0.736000 0.062500 +vt 0.736000 0.062500 +vt 0.576000 0.093750 +vt 0.576000 0.062500 +vt 0.736000 0.093750 +vt 0.576000 0.109375 +vt 0.576000 0.109375 +vt 0.736000 0.093750 +vt 0.736000 0.109375 +vt 0.576000 0.093750 +vt 0.736000 0.062500 +vt 0.736000 0.062500 +vt 0.576000 0.093750 +vt 0.576000 0.062500 +vt 0.736000 0.093750 +vt 0.576000 0.109375 +vt 0.600000 0.156250 +vt 0.792000 0.343750 +vt 0.600000 0.343750 +vt 0.792000 0.109375 +vt 0.792000 0.156250 +vt 0.600000 0.390625 +vt 0.816000 0.343750 +vt 0.576000 0.156250 +vt 0.904000 0.062500 +vt 0.884000 0.078125 +vt 0.884000 0.062500 +vt 0.868000 0.078125 +vt 0.864000 0.062500 +vt 0.884000 0.062500 +vt 0.900000 0.078125 +vt 0.884000 0.078125 +vt 0.864000 0.062500 +vt 0.868000 0.078125 +vt 0.884000 0.062500 +vt 0.900000 0.078125 +vt 0.884000 0.078125 +vt 0.864000 0.062500 +vt 0.868000 0.078125 +vt 0.884000 0.062500 +vt 0.900000 0.078125 +vt 0.884000 0.078125 +vt 0.864000 0.062500 +vt 0.868000 0.078125 +vt 0.904000 0.062500 +vt 0.884000 0.078125 +vt 0.884000 0.062500 +vt 0.868000 0.078125 +vt 0.864000 0.062500 +vt 0.884000 0.062500 +vt 0.900000 0.078125 +vt 0.884000 0.078125 +vt 0.868000 0.078125 +vt 0.864000 0.062500 +vt 0.904000 0.031250 +vt 0.968000 0.039062 +vt 0.904000 0.039063 +vt 0.904000 0.031250 +vt 0.968000 0.039062 +vt 0.904000 0.039063 +vt 0.912000 0.031250 +vt 0.960000 0.039062 +vt 0.912000 0.039063 +vt 0.912000 0.031250 +vt 0.960000 0.039062 +vt 0.912000 0.039063 +vt 0.824000 0.062500 +vt 0.856000 0.187500 +vt 0.824000 0.187500 +vt 0.824000 0.062500 +vt 0.856000 0.187500 +vt 0.824000 0.187500 +vt 0.864000 0.187500 +vt 0.856000 0.062500 +vt 0.864000 0.062500 +vt 0.816000 0.062500 +vt 0.816000 0.187500 +vt 0.856000 0.046875 +vt 0.824000 0.046875 +vt 0.824000 0.203125 +vt 0.856000 0.203125 +vt 0.864000 0.187500 +vt 0.856000 0.062500 +vt 0.864000 0.062500 +vt 0.816000 0.062500 +vt 0.816000 0.187500 +vt 0.856000 0.046875 +vt 0.824000 0.046875 +vt 0.824000 0.203125 +vt 0.856000 0.203125 +vt 0.600000 0.437500 +vt 0.728000 0.562500 +vt 0.600000 0.562500 +vt 0.576000 0.562500 +vt 0.600000 0.390625 +vt 0.728000 0.437500 +vt 0.728000 0.609375 +vt 0.752000 0.437500 +vt 0.744002 0.078125 +vt 0.760000 0.046879 +vt 0.775998 0.078125 +vt 0.760000 0.046879 +vt 0.771312 0.056031 +vt 0.775998 0.078125 +vt 0.728000 0.562500 +vt 0.600000 0.437500 +vt 0.728000 0.437500 +vt 0.752000 0.437500 +vt 0.728000 0.609375 +vt 0.600000 0.562500 +vt 0.600000 0.390625 +vt 0.576000 0.562500 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 0.576000 0.046875 +vt 1.000000 -0.000000 +vt 0.600000 0.031250 +vt 1.000000 -0.000000 +vt 0.600000 -0.000000 +vt 1.000000 -0.000000 +vt 0.600000 0.031250 +vt 1.000000 -0.000000 +vt 0.600000 -0.000000 +vt 1.000000 -0.000000 +vt 0.600000 0.031250 +vt 1.000000 -0.000000 +vt 0.600000 -0.000000 +vt 1.000000 -0.000000 +vt 0.600000 0.031250 +vt 1.000000 -0.000000 +vt 0.600000 -0.000000 +vt 0.600000 0.031250 +vt 0.600000 0.031250 +vt 0.744000 0.062500 +vt 0.744000 0.062500 +vt 0.600000 0.031250 +vt 0.600000 0.031250 +vt 0.744000 0.062500 +vt 0.744000 0.062500 +vt 0.600000 0.031250 +vt 0.600000 0.031250 +vt 0.744000 0.062500 +vt 0.744000 0.062500 +vt 0.600000 0.031250 +vt 0.600000 0.031250 +vt 0.744000 0.062500 +vt 0.744000 0.062500 +vt 0.600000 0.031250 +vt 0.600000 0.031250 +vt 0.744000 0.062500 +vt 0.744000 0.062500 +vt 0.600000 0.031250 +vt 0.600000 0.031250 +vt 0.744000 0.062500 +vt 0.744000 0.062500 +vt 0.600000 0.031250 +vt 0.600000 0.031250 +vt 0.744000 0.062500 +vt 0.744000 0.062500 +vt 0.600000 0.031250 +vt 0.600000 0.031250 +vt 0.744000 0.062500 +vt 0.744000 0.062500 +vt 0.096000 0.437500 +vt 0.096000 -0.000000 +vt 0.480000 0.500000 +vt 0.480000 1.000000 +vt 0.128000 0.000000 +vt 0.128000 0.437500 +vt 0.448000 1.000000 +vt 0.600000 0.109375 +vt 0.792000 0.390625 +vt 0.816000 0.156250 +vt 0.576000 0.343750 +vt 0.900000 0.078125 +vt 0.904000 0.062500 +vt 0.904000 0.062500 +vt 0.904000 0.062500 +vt 0.904000 0.062500 +vt 0.900000 0.078125 +vt 0.968000 0.031250 +vt 0.968000 0.031250 +vt 0.960000 0.031250 +vt 0.960000 0.031250 +vt 0.576000 0.062500 +vt 0.736000 0.109375 +vt 0.576000 0.062500 +vt 0.736000 0.109375 +vt 0.576000 0.062500 +vt 0.736000 0.109375 +vt 0.576000 0.062500 +vt 0.736000 0.109375 +vt 0.576000 0.062500 +vt 0.736000 0.109375 +vt 0.576000 0.062500 +vt 0.736000 0.109375 +vt 0.576000 0.062500 +vt 0.736000 0.109375 +vt 0.576000 0.062500 +vt 0.736000 0.109375 +vt 0.600000 0.109375 +vt 0.792000 0.390625 +vt 0.816000 0.156250 +vt 0.576000 0.343750 +vt 0.900000 0.078125 +vt 0.904000 0.062500 +vt 0.904000 0.062500 +vt 0.904000 0.062500 +vt 0.900000 0.078125 +vt 0.904000 0.062500 +vt 0.968000 0.031250 +vt 0.968000 0.031250 +vt 0.960000 0.031250 +vt 0.960000 0.031250 +vt 0.576000 0.437500 +vt 0.728000 0.390625 +vt 0.600000 0.609375 +vt 0.752000 0.562500 +vt 0.771312 0.100219 +vt 0.760000 0.109371 +vt 0.748688 0.100219 +vt 0.748688 0.056031 +vt 0.771312 0.056031 +vt 0.771312 0.100219 +vt 0.760000 0.109371 +vt 0.748688 0.100219 +vt 0.744002 0.078125 +vt 0.748688 0.056031 +vt 0.752000 0.562500 +vt 0.600000 0.609375 +vt 0.728000 0.390625 +vt 0.576000 0.437500 +vt 0.072000 0.437500 +vt 0.040000 0.484375 +vt 0.000000 0.468750 +vt 0.040000 0.453125 +vt 0.504000 0.875000 +vt 0.536000 0.765625 +vt 0.576000 0.781250 +vt 0.536000 0.796875 +vt 0.072000 0.500000 +vt 0.504000 0.750000 +vt 0.504000 0.812500 +vt 0.536000 0.703125 +vt 0.576000 0.718750 +vt 0.536000 0.734375 +vt 0.040000 0.421875 +vt 0.072000 0.375000 +vt 0.504000 0.687500 +vt -0.000000 0.406250 +vt 0.040000 0.390625 +vt 0.536000 0.640625 +vt 0.576000 0.656250 +vt 0.536000 0.671875 +vt 0.040000 0.359375 +vt 0.072000 0.312500 +vt 0.504000 0.625000 +vt 0.000000 0.343750 +vt 0.040000 0.328125 +vt 0.040000 0.296875 +vt 0.072000 0.250000 +vt 0.536000 0.578125 +vt 0.576000 0.593750 +vt 0.536000 0.609375 +vt 0.000000 0.281250 +vt 0.040000 0.265625 +vt 0.504000 0.562500 +vt 0.040000 0.203125 +vt 0.072000 0.187500 +vt 0.040000 0.234375 +vt -0.000000 0.218750 +vt 0.536000 0.515625 +vt 0.504000 0.500000 +vt 0.576000 0.531250 +vt 0.536000 0.546875 +vt 0.072000 0.125000 +vt 0.040000 0.171875 +vt -0.000000 0.156250 +vt 0.040000 0.140625 +vt 0.040000 0.109375 +vt -0.000000 0.093750 +vt 0.040000 0.078125 +vt 0.072000 0.062500 +vt 0.072000 -0.000000 +vt 0.040000 0.046875 +vt 0.000000 0.031250 +vt 0.040000 0.015625 +vt 0.072000 1.000000 +vt 0.040000 0.984375 +vt 0.000000 0.968750 +vt 0.040000 0.953125 +vt 0.072000 0.937500 +vt 0.040000 0.921875 +vt -0.000000 0.906250 +vt 0.040000 0.890625 +vt 0.072000 0.875000 +vt 0.040000 0.859375 +vt 0.000000 0.843750 +vt 0.040000 0.828125 +vt 0.072000 0.812500 +vt 0.040000 0.796875 +vt 0.072000 0.750000 +vt -0.000000 0.781250 +vt 0.040000 0.765625 +vt 0.040000 0.703125 +vt 0.072000 0.687500 +vt 0.040000 0.734375 +vt 0.000000 0.718750 +vt 0.040000 0.671875 +vt 0.072000 0.625000 +vt -0.000000 0.656250 +vt 0.040000 0.640625 +vt 0.040000 0.578125 +vt 0.072000 0.562500 +vt 0.040000 0.609375 +vt -0.000000 0.593750 +vt 0.040000 0.546875 +vt 0.000000 0.531250 +vt 0.040000 0.515625 +vt 0.536000 0.828125 +vt 0.576000 0.843750 +vt 0.536000 0.859375 +vt 0.504000 0.937500 +vt 0.536000 0.890625 +vt 0.576000 0.906250 +vt 0.536000 0.921875 +vt 0.504000 1.000000 +vt 0.536000 0.953125 +vt 0.576000 0.968750 +vt 0.536000 0.984375 +vt 0.504000 -0.000000 +vt 0.536000 0.015625 +vt 0.576000 0.031250 +vt 0.536000 0.046875 +vt 0.504000 0.062500 +vt 0.536000 0.078125 +vt 0.576000 0.093750 +vt 0.536000 0.109375 +vt 0.504000 0.125000 +vt 0.536000 0.140625 +vt 0.576000 0.156250 +vt 0.536000 0.171875 +vt 0.504000 0.187500 +vt 0.536000 0.203125 +vt 0.504000 0.250000 +vt 0.576000 0.218750 +vt 0.536000 0.234375 +vt 0.536000 0.265625 +vt 0.504000 0.312500 +vt 0.576000 0.281250 +vt 0.536000 0.296875 +vt 0.536000 0.359375 +vt 0.504000 0.375000 +vt 0.536000 0.328125 +vt 0.576000 0.343750 +vt 0.536000 0.390625 +vt 0.504000 0.437500 +vt 0.576000 0.406250 +vt 0.536000 0.421875 +vt 0.536000 0.484375 +vt 0.536000 0.453125 +vt 0.576000 0.468750 +vt 0.884000 0.031250 +vt 0.864000 0.031250 +vt 0.884000 0.109375 +vt 0.900000 0.109375 +vt 0.904000 0.031250 +vt 0.884000 0.031250 +vt 0.868000 0.109375 +vt 0.884000 0.109375 +vt 0.904000 0.031250 +vt 0.884000 0.031250 +vt 0.864000 0.031250 +vt 0.900000 0.109375 +vt 0.884000 0.031250 +vt 0.864000 0.031250 +vt 0.904000 0.031250 +vt 0.868000 0.109375 +vt 0.884000 0.109375 +vt 0.904000 0.031250 +vt 0.884000 0.031250 +vt 0.864000 0.031250 +vt 0.900000 0.109375 +vt 0.868000 0.109375 +vt 0.884000 0.109375 +vt 0.904000 0.031250 +vt 0.868000 0.109375 +vt 0.884000 0.109375 +vt 0.900000 0.109375 +vt 0.884000 0.031250 +vt 0.864000 0.031250 +vt 0.900000 0.109375 +vt 0.868000 0.109375 +vt 0.884000 0.109375 +vt 0.904000 0.031250 +vt 0.868000 0.109375 +vt 0.864000 0.031250 +vt 0.900000 0.109375 +vt 0.884000 0.031250 +vt 0.864000 0.031250 +vt 0.884000 0.109375 +vt 0.900000 0.109375 +vt 0.904000 0.031250 +vt 0.884000 0.031250 +vt 0.868000 0.109375 +vt 0.884000 0.109375 +vt 0.904000 0.031250 +vt 0.884000 0.031250 +vt 0.864000 0.031250 +vt 0.900000 0.109375 +vt 0.884000 0.031250 +vt 0.864000 0.031250 +vt 0.904000 0.031250 +vt 0.868000 0.109375 +vt 0.884000 0.109375 +vt 0.904000 0.031250 +vt 0.884000 0.031250 +vt 0.864000 0.031250 +vt 0.900000 0.109375 +vt 0.868000 0.109375 +vt 0.884000 0.109375 +vt 0.904000 0.031250 +vt 0.868000 0.109375 +vt 0.884000 0.109375 +vt 0.900000 0.109375 +vt 0.884000 0.031250 +vt 0.864000 0.031250 +vt 0.900000 0.109375 +vt 0.868000 0.109375 +vt 0.884000 0.109375 +vt 0.904000 0.031250 +vt 0.868000 0.109375 +vt 0.864000 0.031250 +vt 0.900000 0.109375 +vt 0.904000 0.109375 +vt 0.896000 0.171875 +vt 0.896000 0.109375 +vt 0.888000 0.109375 +vt 0.880000 0.171875 +vt 0.880000 0.109375 +vt 0.872000 0.109375 +vt 0.864000 0.171875 +vt 0.864000 0.109375 +vt 0.920000 0.109375 +vt 0.912000 0.171875 +vt 0.912000 0.109375 +vt 0.904000 0.171875 +vt 0.888000 0.171875 +vt 0.872000 0.171875 +vt 0.928000 0.109375 +vt 0.920000 0.171875 +vt 0.912000 0.179688 +vt 0.920000 0.195312 +vt 0.912000 0.195312 +vt 0.904000 0.195312 +vt 0.896000 0.195312 +vt 0.888000 0.195312 +vt 0.880000 0.179688 +vt 0.872000 0.195312 +vt 0.872000 0.187500 +vt 0.880000 0.195312 +vt 0.896000 0.218750 +vt 0.888000 0.218750 +vt 0.880000 0.210938 +vt 0.920000 0.203125 +vt 0.912000 0.210938 +vt 0.904000 0.218750 +vt 0.872000 0.203125 +vt 0.864000 0.195312 +vt 0.920000 0.187500 +vt 0.928000 0.195312 +vt 0.888000 0.578125 +vt 0.896000 0.515625 +vt 0.896000 0.578125 +vt 0.904000 0.578125 +vt 0.912000 0.515625 +vt 0.912000 0.578125 +vt 0.920000 0.578125 +vt 0.928000 0.515625 +vt 0.928000 0.578125 +vt 0.872000 0.578125 +vt 0.880000 0.515625 +vt 0.880000 0.578125 +vt 0.888000 0.515625 +vt 0.904000 0.515625 +vt 0.920000 0.515625 +vt 0.864000 0.578125 +vt 0.872000 0.515625 +vt 0.872000 0.500000 +vt 0.880000 0.492188 +vt 0.880000 0.507812 +vt 0.888000 0.492188 +vt 0.896000 0.492188 +vt 0.904000 0.492188 +vt 0.920000 0.500000 +vt 0.912000 0.492188 +vt 0.920000 0.492188 +vt 0.912000 0.507812 +vt 0.896000 0.468750 +vt 0.904000 0.468750 +vt 0.912000 0.476562 +vt 0.872000 0.484375 +vt 0.880000 0.476562 +vt 0.888000 0.468750 +vt 0.920000 0.484375 +vt 0.928000 0.492188 +vt 0.864000 0.492188 +vt 0.872000 0.492188 +vt 0.880000 0.218750 +vt 0.912000 0.468750 +vt 0.912000 0.218750 +vt 0.920000 0.468750 +vt 0.920000 0.218750 +vt 0.928000 0.218750 +vt 0.864000 0.218750 +vt 0.872000 0.468750 +vt 0.864000 0.468750 +vt 0.880000 0.468750 +vt 0.872000 0.218750 +vt 0.780000 0.046875 +vt 0.792000 0.031250 +vt 0.792000 0.046875 +vt 0.804000 0.046875 +vt 0.804000 0.031250 +vt 0.828000 0.046875 +vt 0.816000 0.031250 +vt 0.828000 0.031250 +vt 0.744000 0.046875 +vt 0.756000 0.031250 +vt 0.756000 0.046875 +vt 0.768000 0.046875 +vt 0.780000 0.031250 +vt 0.816000 0.046875 +vt 0.840000 0.031250 +vt 0.840000 0.046875 +vt 0.768000 0.031250 +vt 0.780000 0.046875 +vt 0.792000 0.031250 +vt 0.792000 0.046875 +vt 0.804000 0.031250 +vt 0.804000 0.046875 +vt 0.828000 0.046875 +vt 0.816000 0.031250 +vt 0.828000 0.031250 +vt 0.744000 0.046875 +vt 0.756000 0.031250 +vt 0.756000 0.046875 +vt 0.768000 0.046875 +vt 0.780000 0.031250 +vt 0.816000 0.046875 +vt 0.840000 0.031250 +vt 0.840000 0.046875 +vt 0.768000 0.031250 +vt 0.904000 0.109375 +vt 0.896000 0.171875 +vt 0.896000 0.109375 +vt 0.888000 0.109375 +vt 0.880000 0.171875 +vt 0.880000 0.109375 +vt 0.872000 0.109375 +vt 0.864000 0.171875 +vt 0.864000 0.109375 +vt 0.920000 0.109375 +vt 0.912000 0.171875 +vt 0.912000 0.109375 +vt 0.904000 0.171875 +vt 0.888000 0.171875 +vt 0.872000 0.171875 +vt 0.928000 0.109375 +vt 0.920000 0.171875 +vt 0.912000 0.179688 +vt 0.920000 0.195312 +vt 0.912000 0.195312 +vt 0.904000 0.195312 +vt 0.896000 0.195312 +vt 0.888000 0.195312 +vt 0.880000 0.179688 +vt 0.872000 0.195312 +vt 0.872000 0.187500 +vt 0.880000 0.195312 +vt 0.896000 0.218750 +vt 0.888000 0.218750 +vt 0.880000 0.210938 +vt 0.920000 0.203125 +vt 0.912000 0.210938 +vt 0.904000 0.218750 +vt 0.872000 0.203125 +vt 0.864000 0.195312 +vt 0.920000 0.187500 +vt 0.928000 0.195312 +vt 0.888000 0.578125 +vt 0.896000 0.515625 +vt 0.896000 0.578125 +vt 0.904000 0.578125 +vt 0.912000 0.515625 +vt 0.912000 0.578125 +vt 0.920000 0.578125 +vt 0.928000 0.515625 +vt 0.928000 0.578125 +vt 0.872000 0.578125 +vt 0.880000 0.515625 +vt 0.880000 0.578125 +vt 0.888000 0.515625 +vt 0.904000 0.515625 +vt 0.920000 0.515625 +vt 0.864000 0.578125 +vt 0.872000 0.515625 +vt 0.872000 0.500000 +vt 0.880000 0.492188 +vt 0.880000 0.507812 +vt 0.888000 0.492188 +vt 0.896000 0.492188 +vt 0.904000 0.492188 +vt 0.920000 0.500000 +vt 0.912000 0.492188 +vt 0.920000 0.492188 +vt 0.912000 0.507812 +vt 0.896000 0.468750 +vt 0.904000 0.468750 +vt 0.912000 0.476562 +vt 0.872000 0.484375 +vt 0.880000 0.476562 +vt 0.888000 0.468750 +vt 0.920000 0.484375 +vt 0.928000 0.492188 +vt 0.864000 0.492188 +vt 0.872000 0.492188 +vt 0.880000 0.218750 +vt 0.912000 0.468750 +vt 0.912000 0.218750 +vt 0.920000 0.468750 +vt 0.920000 0.218750 +vt 0.928000 0.218750 +vt 0.864000 0.218750 +vt 0.872000 0.468750 +vt 0.864000 0.468750 +vt 0.880000 0.468750 +vt 0.872000 0.218750 +vt 0.904000 0.109375 +vt 0.896000 0.171875 +vt 0.896000 0.109375 +vt 0.888000 0.109375 +vt 0.880000 0.171875 +vt 0.880000 0.109375 +vt 0.872000 0.109375 +vt 0.864000 0.171875 +vt 0.864000 0.109375 +vt 0.920000 0.109375 +vt 0.912000 0.171875 +vt 0.912000 0.109375 +vt 0.904000 0.171875 +vt 0.888000 0.171875 +vt 0.872000 0.171875 +vt 0.928000 0.109375 +vt 0.920000 0.171875 +vt 0.912000 0.179688 +vt 0.920000 0.195312 +vt 0.912000 0.195312 +vt 0.904000 0.195312 +vt 0.896000 0.195312 +vt 0.888000 0.195312 +vt 0.880000 0.179688 +vt 0.872000 0.195312 +vt 0.872000 0.187500 +vt 0.880000 0.195312 +vt 0.896000 0.218750 +vt 0.888000 0.218750 +vt 0.880000 0.210938 +vt 0.912000 0.210938 +vt 0.904000 0.218750 +vt 0.872000 0.203125 +vt 0.864000 0.195312 +vt 0.920000 0.187500 +vt 0.928000 0.195312 +vt 0.920000 0.203125 +vt 0.888000 0.578125 +vt 0.896000 0.515625 +vt 0.896000 0.578125 +vt 0.904000 0.578125 +vt 0.912000 0.515625 +vt 0.912000 0.578125 +vt 0.920000 0.578125 +vt 0.928000 0.515625 +vt 0.928000 0.578125 +vt 0.872000 0.578125 +vt 0.880000 0.515625 +vt 0.880000 0.578125 +vt 0.888000 0.515625 +vt 0.904000 0.515625 +vt 0.920000 0.515625 +vt 0.864000 0.578125 +vt 0.872000 0.515625 +vt 0.872000 0.500000 +vt 0.880000 0.492188 +vt 0.880000 0.507812 +vt 0.888000 0.492188 +vt 0.896000 0.492188 +vt 0.904000 0.492188 +vt 0.920000 0.500000 +vt 0.912000 0.492188 +vt 0.920000 0.492188 +vt 0.912000 0.507812 +vt 0.896000 0.468750 +vt 0.904000 0.468750 +vt 0.912000 0.476562 +vt 0.872000 0.492188 +vt 0.880000 0.476562 +vt 0.888000 0.468750 +vt 0.920000 0.484375 +vt 0.928000 0.492188 +vt 0.864000 0.492188 +vt 0.872000 0.484375 +vt 0.880000 0.218750 +vt 0.912000 0.468750 +vt 0.912000 0.218750 +vt 0.920000 0.468750 +vt 0.920000 0.218750 +vt 0.928000 0.468750 +vt 0.928000 0.218750 +vt 0.864000 0.218750 +vt 0.872000 0.468750 +vt 0.864000 0.468750 +vt 0.880000 0.468750 +vt 0.872000 0.218750 +vt 0.904000 0.109375 +vt 0.896000 0.171875 +vt 0.896000 0.109375 +vt 0.888000 0.109375 +vt 0.880000 0.171875 +vt 0.880000 0.109375 +vt 0.872000 0.109375 +vt 0.864000 0.171875 +vt 0.864000 0.109375 +vt 0.920000 0.109375 +vt 0.912000 0.171875 +vt 0.912000 0.109375 +vt 0.904000 0.171875 +vt 0.888000 0.171875 +vt 0.872000 0.171875 +vt 0.928000 0.109375 +vt 0.920000 0.171875 +vt 0.912000 0.179688 +vt 0.920000 0.195312 +vt 0.912000 0.195312 +vt 0.904000 0.195312 +vt 0.888000 0.195312 +vt 0.880000 0.179688 +vt 0.872000 0.195312 +vt 0.872000 0.187500 +vt 0.896000 0.195312 +vt 0.880000 0.195312 +vt 0.896000 0.218750 +vt 0.888000 0.218750 +vt 0.880000 0.210938 +vt 0.912000 0.210938 +vt 0.904000 0.218750 +vt 0.872000 0.203125 +vt 0.864000 0.195312 +vt 0.920000 0.187500 +vt 0.928000 0.195312 +vt 0.920000 0.203125 +vt 0.888000 0.578125 +vt 0.896000 0.515625 +vt 0.896000 0.578125 +vt 0.904000 0.578125 +vt 0.912000 0.515625 +vt 0.912000 0.578125 +vt 0.920000 0.578125 +vt 0.928000 0.515625 +vt 0.928000 0.578125 +vt 0.872000 0.578125 +vt 0.880000 0.515625 +vt 0.880000 0.578125 +vt 0.888000 0.515625 +vt 0.904000 0.515625 +vt 0.920000 0.515625 +vt 0.864000 0.578125 +vt 0.872000 0.515625 +vt 0.872000 0.500000 +vt 0.880000 0.492188 +vt 0.880000 0.507812 +vt 0.888000 0.492188 +vt 0.896000 0.492188 +vt 0.904000 0.492188 +vt 0.920000 0.500000 +vt 0.912000 0.492188 +vt 0.920000 0.492188 +vt 0.912000 0.507812 +vt 0.896000 0.468750 +vt 0.904000 0.468750 +vt 0.912000 0.476562 +vt 0.872000 0.492188 +vt 0.880000 0.476562 +vt 0.888000 0.468750 +vt 0.920000 0.484375 +vt 0.928000 0.492188 +vt 0.864000 0.492188 +vt 0.872000 0.484375 +vt 0.880000 0.218750 +vt 0.912000 0.468750 +vt 0.912000 0.218750 +vt 0.920000 0.468750 +vt 0.920000 0.218750 +vt 0.928000 0.218750 +vt 0.872000 0.218750 +vt 0.864000 0.468750 +vt 0.864000 0.218750 +vt 0.880000 0.468750 +vt 0.904000 0.109375 +vt 0.896000 0.171875 +vt 0.896000 0.109375 +vt 0.888000 0.109375 +vt 0.880000 0.171875 +vt 0.880000 0.109375 +vt 0.872000 0.109375 +vt 0.864000 0.171875 +vt 0.864000 0.109375 +vt 0.920000 0.109375 +vt 0.912000 0.171875 +vt 0.912000 0.109375 +vt 0.904000 0.171875 +vt 0.888000 0.171875 +vt 0.872000 0.171875 +vt 0.928000 0.109375 +vt 0.920000 0.171875 +vt 0.912000 0.179688 +vt 0.920000 0.195312 +vt 0.912000 0.195312 +vt 0.904000 0.195312 +vt 0.896000 0.195312 +vt 0.888000 0.195312 +vt 0.880000 0.179688 +vt 0.872000 0.195312 +vt 0.872000 0.187500 +vt 0.880000 0.195312 +vt 0.896000 0.218750 +vt 0.888000 0.218750 +vt 0.880000 0.210938 +vt 0.920000 0.203125 +vt 0.912000 0.210938 +vt 0.904000 0.218750 +vt 0.872000 0.203125 +vt 0.864000 0.195312 +vt 0.920000 0.187500 +vt 0.928000 0.195312 +vt 0.888000 0.578125 +vt 0.896000 0.515625 +vt 0.896000 0.578125 +vt 0.904000 0.578125 +vt 0.912000 0.515625 +vt 0.912000 0.578125 +vt 0.920000 0.578125 +vt 0.928000 0.515625 +vt 0.928000 0.578125 +vt 0.872000 0.578125 +vt 0.880000 0.515625 +vt 0.880000 0.578125 +vt 0.888000 0.515625 +vt 0.904000 0.515625 +vt 0.920000 0.515625 +vt 0.864000 0.578125 +vt 0.872000 0.515625 +vt 0.872000 0.500000 +vt 0.880000 0.492188 +vt 0.880000 0.507812 +vt 0.888000 0.492188 +vt 0.896000 0.492188 +vt 0.904000 0.492188 +vt 0.920000 0.500000 +vt 0.912000 0.492188 +vt 0.920000 0.492188 +vt 0.912000 0.507812 +vt 0.896000 0.468750 +vt 0.904000 0.468750 +vt 0.912000 0.476562 +vt 0.872000 0.484375 +vt 0.880000 0.476562 +vt 0.888000 0.468750 +vt 0.920000 0.484375 +vt 0.928000 0.492188 +vt 0.864000 0.492188 +vt 0.872000 0.492188 +vt 0.880000 0.218750 +vt 0.912000 0.468750 +vt 0.912000 0.218750 +vt 0.920000 0.468750 +vt 0.920000 0.218750 +vt 0.928000 0.468750 +vt 0.928000 0.218750 +vt 0.864000 0.218750 +vt 0.872000 0.468750 +vt 0.864000 0.468750 +vt 0.880000 0.468750 +vt 0.872000 0.218750 +vt 0.904000 0.109375 +vt 0.896000 0.171875 +vt 0.896000 0.109375 +vt 0.888000 0.109375 +vt 0.880000 0.171875 +vt 0.880000 0.109375 +vt 0.872000 0.109375 +vt 0.864000 0.171875 +vt 0.864000 0.109375 +vt 0.920000 0.109375 +vt 0.912000 0.171875 +vt 0.912000 0.109375 +vt 0.904000 0.171875 +vt 0.888000 0.171875 +vt 0.872000 0.171875 +vt 0.928000 0.109375 +vt 0.920000 0.171875 +vt 0.912000 0.179688 +vt 0.920000 0.195312 +vt 0.912000 0.195312 +vt 0.904000 0.195312 +vt 0.896000 0.195312 +vt 0.888000 0.195312 +vt 0.880000 0.179688 +vt 0.872000 0.195312 +vt 0.872000 0.187500 +vt 0.880000 0.195312 +vt 0.896000 0.218750 +vt 0.888000 0.218750 +vt 0.880000 0.210938 +vt 0.912000 0.210938 +vt 0.904000 0.218750 +vt 0.872000 0.203125 +vt 0.864000 0.195312 +vt 0.920000 0.187500 +vt 0.928000 0.195312 +vt 0.920000 0.203125 +vt 0.888000 0.578125 +vt 0.896000 0.515625 +vt 0.896000 0.578125 +vt 0.904000 0.578125 +vt 0.912000 0.515625 +vt 0.912000 0.578125 +vt 0.928000 0.578125 +vt 0.920000 0.515625 +vt 0.928000 0.515625 +vt 0.872000 0.578125 +vt 0.880000 0.515625 +vt 0.880000 0.578125 +vt 0.888000 0.515625 +vt 0.904000 0.515625 +vt 0.920000 0.578125 +vt 0.864000 0.578125 +vt 0.872000 0.515625 +vt 0.872000 0.500000 +vt 0.880000 0.492188 +vt 0.880000 0.507812 +vt 0.888000 0.492188 +vt 0.896000 0.492188 +vt 0.904000 0.492188 +vt 0.920000 0.500000 +vt 0.912000 0.492188 +vt 0.920000 0.492188 +vt 0.912000 0.507812 +vt 0.896000 0.468750 +vt 0.904000 0.468750 +vt 0.912000 0.476562 +vt 0.872000 0.492188 +vt 0.880000 0.476562 +vt 0.888000 0.468750 +vt 0.920000 0.484375 +vt 0.928000 0.492188 +vt 0.864000 0.492188 +vt 0.872000 0.484375 +vt 0.880000 0.218750 +vt 0.912000 0.468750 +vt 0.912000 0.218750 +vt 0.920000 0.468750 +vt 0.920000 0.218750 +vt 0.928000 0.218750 +vt 0.872000 0.218750 +vt 0.864000 0.468750 +vt 0.864000 0.218750 +vt 0.880000 0.468750 +vt 0.904000 0.109375 +vt 0.896000 0.171875 +vt 0.896000 0.109375 +vt 0.888000 0.109375 +vt 0.880000 0.171875 +vt 0.880000 0.109375 +vt 0.872000 0.109375 +vt 0.864000 0.171875 +vt 0.864000 0.109375 +vt 0.920000 0.109375 +vt 0.912000 0.171875 +vt 0.912000 0.109375 +vt 0.904000 0.171875 +vt 0.888000 0.171875 +vt 0.872000 0.171875 +vt 0.928000 0.109375 +vt 0.920000 0.171875 +vt 0.912000 0.179688 +vt 0.920000 0.195312 +vt 0.912000 0.195312 +vt 0.904000 0.195312 +vt 0.896000 0.195312 +vt 0.888000 0.195312 +vt 0.880000 0.179688 +vt 0.872000 0.195312 +vt 0.872000 0.187500 +vt 0.880000 0.195312 +vt 0.896000 0.218750 +vt 0.880000 0.210938 +vt 0.912000 0.210938 +vt 0.904000 0.218750 +vt 0.888000 0.218750 +vt 0.872000 0.203125 +vt 0.864000 0.195312 +vt 0.920000 0.187500 +vt 0.928000 0.195312 +vt 0.920000 0.203125 +vt 0.888000 0.578125 +vt 0.896000 0.515625 +vt 0.896000 0.578125 +vt 0.904000 0.578125 +vt 0.912000 0.515625 +vt 0.912000 0.578125 +vt 0.920000 0.578125 +vt 0.928000 0.515625 +vt 0.928000 0.578125 +vt 0.872000 0.578125 +vt 0.880000 0.515625 +vt 0.880000 0.578125 +vt 0.888000 0.515625 +vt 0.904000 0.515625 +vt 0.920000 0.515625 +vt 0.864000 0.578125 +vt 0.872000 0.515625 +vt 0.872000 0.500000 +vt 0.880000 0.492188 +vt 0.880000 0.507812 +vt 0.888000 0.492188 +vt 0.896000 0.492188 +vt 0.904000 0.492188 +vt 0.920000 0.500000 +vt 0.912000 0.492188 +vt 0.920000 0.492188 +vt 0.912000 0.507812 +vt 0.896000 0.468750 +vt 0.904000 0.468750 +vt 0.912000 0.476562 +vt 0.872000 0.492188 +vt 0.880000 0.476562 +vt 0.888000 0.468750 +vt 0.920000 0.484375 +vt 0.928000 0.492188 +vt 0.864000 0.492188 +vt 0.872000 0.484375 +vt 0.880000 0.218750 +vt 0.912000 0.468750 +vt 0.912000 0.218750 +vt 0.920000 0.468750 +vt 0.920000 0.218750 +vt 0.928000 0.218750 +vt 0.864000 0.218750 +vt 0.872000 0.468750 +vt 0.864000 0.468750 +vt 0.880000 0.468750 +vt 0.872000 0.218750 +vt 0.904000 0.109375 +vt 0.896000 0.171875 +vt 0.896000 0.109375 +vt 0.888000 0.109375 +vt 0.880000 0.171875 +vt 0.880000 0.109375 +vt 0.872000 0.109375 +vt 0.864000 0.171875 +vt 0.864000 0.109375 +vt 0.920000 0.109375 +vt 0.912000 0.171875 +vt 0.912000 0.109375 +vt 0.904000 0.171875 +vt 0.888000 0.171875 +vt 0.872000 0.171875 +vt 0.928000 0.109375 +vt 0.920000 0.171875 +vt 0.912000 0.179688 +vt 0.920000 0.195312 +vt 0.912000 0.195312 +vt 0.904000 0.195312 +vt 0.896000 0.195312 +vt 0.888000 0.195312 +vt 0.880000 0.179688 +vt 0.872000 0.195312 +vt 0.872000 0.187500 +vt 0.880000 0.195312 +vt 0.896000 0.218750 +vt 0.880000 0.210938 +vt 0.912000 0.210938 +vt 0.904000 0.218750 +vt 0.888000 0.218750 +vt 0.872000 0.203125 +vt 0.864000 0.195312 +vt 0.920000 0.187500 +vt 0.928000 0.195312 +vt 0.920000 0.203125 +vt 0.888000 0.578125 +vt 0.896000 0.515625 +vt 0.896000 0.578125 +vt 0.904000 0.578125 +vt 0.912000 0.515625 +vt 0.912000 0.578125 +vt 0.920000 0.578125 +vt 0.928000 0.515625 +vt 0.928000 0.578125 +vt 0.872000 0.578125 +vt 0.880000 0.515625 +vt 0.880000 0.578125 +vt 0.888000 0.515625 +vt 0.904000 0.515625 +vt 0.920000 0.515625 +vt 0.864000 0.578125 +vt 0.872000 0.515625 +vt 0.872000 0.500000 +vt 0.880000 0.492188 +vt 0.880000 0.507812 +vt 0.888000 0.492188 +vt 0.896000 0.492188 +vt 0.904000 0.492188 +vt 0.920000 0.500000 +vt 0.912000 0.492188 +vt 0.920000 0.492188 +vt 0.912000 0.507812 +vt 0.896000 0.468750 +vt 0.904000 0.468750 +vt 0.912000 0.476562 +vt 0.872000 0.492188 +vt 0.880000 0.476562 +vt 0.888000 0.468750 +vt 0.920000 0.484375 +vt 0.928000 0.492188 +vt 0.864000 0.492188 +vt 0.872000 0.484375 +vt 0.880000 0.218750 +vt 0.912000 0.468750 +vt 0.912000 0.218750 +vt 0.920000 0.468750 +vt 0.920000 0.218750 +vt 0.928000 0.468750 +vt 0.928000 0.218750 +vt 0.864000 0.218750 +vt 0.872000 0.468750 +vt 0.864000 0.468750 +vt 0.880000 0.468750 +vt 0.872000 0.218750 +vt 0.904000 0.109375 +vt 0.896000 0.171875 +vt 0.896000 0.109375 +vt 0.888000 0.109375 +vt 0.880000 0.171875 +vt 0.880000 0.109375 +vt 0.872000 0.109375 +vt 0.864000 0.171875 +vt 0.864000 0.109375 +vt 0.920000 0.109375 +vt 0.912000 0.171875 +vt 0.912000 0.109375 +vt 0.904000 0.171875 +vt 0.888000 0.171875 +vt 0.872000 0.171875 +vt 0.928000 0.109375 +vt 0.920000 0.171875 +vt 0.912000 0.179688 +vt 0.920000 0.195312 +vt 0.912000 0.195312 +vt 0.904000 0.195312 +vt 0.896000 0.195312 +vt 0.888000 0.195312 +vt 0.880000 0.179688 +vt 0.872000 0.195312 +vt 0.872000 0.187500 +vt 0.880000 0.195312 +vt 0.896000 0.218750 +vt 0.888000 0.218750 +vt 0.880000 0.210938 +vt 0.912000 0.210938 +vt 0.904000 0.218750 +vt 0.872000 0.203125 +vt 0.864000 0.195312 +vt 0.920000 0.187500 +vt 0.928000 0.195312 +vt 0.920000 0.203125 +vt 0.888000 0.578125 +vt 0.896000 0.515625 +vt 0.896000 0.578125 +vt 0.904000 0.578125 +vt 0.912000 0.515625 +vt 0.912000 0.578125 +vt 0.928000 0.578125 +vt 0.920000 0.515625 +vt 0.928000 0.515625 +vt 0.872000 0.578125 +vt 0.880000 0.515625 +vt 0.880000 0.578125 +vt 0.888000 0.515625 +vt 0.904000 0.515625 +vt 0.920000 0.578125 +vt 0.864000 0.578125 +vt 0.872000 0.515625 +vt 0.872000 0.500000 +vt 0.880000 0.492188 +vt 0.880000 0.507812 +vt 0.888000 0.492188 +vt 0.896000 0.492188 +vt 0.904000 0.492188 +vt 0.920000 0.500000 +vt 0.912000 0.492188 +vt 0.920000 0.492188 +vt 0.912000 0.507812 +vt 0.896000 0.468750 +vt 0.904000 0.468750 +vt 0.912000 0.476562 +vt 0.872000 0.484375 +vt 0.880000 0.476562 +vt 0.888000 0.468750 +vt 0.920000 0.484375 +vt 0.928000 0.492188 +vt 0.864000 0.492188 +vt 0.872000 0.492188 +vt 0.880000 0.218750 +vt 0.912000 0.468750 +vt 0.912000 0.218750 +vt 0.920000 0.468750 +vt 0.920000 0.218750 +vt 0.928000 0.218750 +vt 0.872000 0.218750 +vt 0.864000 0.468750 +vt 0.864000 0.218750 +vt 0.880000 0.468750 +vt 0.904000 0.109375 +vt 0.896000 0.171875 +vt 0.896000 0.109375 +vt 0.888000 0.109375 +vt 0.880000 0.171875 +vt 0.880000 0.109375 +vt 0.872000 0.109375 +vt 0.864000 0.171875 +vt 0.864000 0.109375 +vt 0.920000 0.109375 +vt 0.912000 0.171875 +vt 0.912000 0.109375 +vt 0.904000 0.171875 +vt 0.888000 0.171875 +vt 0.872000 0.171875 +vt 0.928000 0.109375 +vt 0.920000 0.171875 +vt 0.912000 0.179688 +vt 0.920000 0.195312 +vt 0.912000 0.195312 +vt 0.904000 0.195312 +vt 0.896000 0.195312 +vt 0.888000 0.195312 +vt 0.880000 0.179688 +vt 0.872000 0.195312 +vt 0.872000 0.187500 +vt 0.880000 0.195312 +vt 0.896000 0.218750 +vt 0.888000 0.218750 +vt 0.880000 0.210938 +vt 0.912000 0.210938 +vt 0.904000 0.218750 +vt 0.872000 0.203125 +vt 0.864000 0.195312 +vt 0.920000 0.187500 +vt 0.928000 0.195312 +vt 0.920000 0.203125 +vt 0.888000 0.578125 +vt 0.896000 0.515625 +vt 0.896000 0.578125 +vt 0.904000 0.578125 +vt 0.912000 0.515625 +vt 0.912000 0.578125 +vt 0.920000 0.578125 +vt 0.928000 0.515625 +vt 0.928000 0.578125 +vt 0.872000 0.578125 +vt 0.880000 0.515625 +vt 0.880000 0.578125 +vt 0.888000 0.515625 +vt 0.904000 0.515625 +vt 0.920000 0.515625 +vt 0.864000 0.578125 +vt 0.872000 0.515625 +vt 0.872000 0.500000 +vt 0.880000 0.492188 +vt 0.880000 0.507812 +vt 0.888000 0.492188 +vt 0.896000 0.492188 +vt 0.904000 0.492188 +vt 0.920000 0.500000 +vt 0.912000 0.492188 +vt 0.920000 0.492188 +vt 0.912000 0.507812 +vt 0.896000 0.468750 +vt 0.904000 0.468750 +vt 0.912000 0.476562 +vt 0.872000 0.492188 +vt 0.880000 0.476562 +vt 0.888000 0.468750 +vt 0.920000 0.484375 +vt 0.928000 0.492188 +vt 0.864000 0.492188 +vt 0.872000 0.484375 +vt 0.880000 0.218750 +vt 0.912000 0.468750 +vt 0.912000 0.218750 +vt 0.920000 0.468750 +vt 0.920000 0.218750 +vt 0.928000 0.218750 +vt 0.864000 0.218750 +vt 0.872000 0.468750 +vt 0.864000 0.468750 +vt 0.880000 0.468750 +vt 0.872000 0.218750 +vt 0.928000 0.171875 +vt 0.864000 0.515625 +vt 0.928000 0.468750 +vt 0.744000 0.031250 +vt 0.744000 0.031250 +vt 0.928000 0.171875 +vt 0.864000 0.515625 +vt 0.928000 0.468750 +vt 0.928000 0.171875 +vt 0.864000 0.515625 +vt 0.928000 0.171875 +vt 0.864000 0.515625 +vt 0.928000 0.468750 +vt 0.872000 0.468750 +vt 0.928000 0.171875 +vt 0.864000 0.515625 +vt 0.928000 0.171875 +vt 0.864000 0.515625 +vt 0.928000 0.468750 +vt 0.872000 0.468750 +vt 0.928000 0.171875 +vt 0.864000 0.515625 +vt 0.928000 0.468750 +vt 0.928000 0.171875 +vt 0.864000 0.515625 +vt 0.928000 0.171875 +vt 0.864000 0.515625 +vt 0.928000 0.468750 +vt 0.872000 0.468750 +vt 0.928000 0.171875 +vt 0.864000 0.515625 +vt 0.928000 0.468750 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.3827 0.9239 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.9239 0.3827 0.0000 +vn 0.9239 -0.3827 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.3827 -0.9239 0.0000 +vn -0.3827 -0.9239 0.0000 +vn -0.7071 -0.7071 0.0000 +vn -0.9239 -0.3827 0.0000 +vn -0.9239 0.3827 0.0000 +vn -0.7071 0.7071 0.0000 +vn -0.3827 0.9239 0.0000 +vn -0.0000 0.8814 0.4723 +vn 0.2738 0.6610 0.6987 +vn 0.3373 0.8143 0.4723 +vn -0.0000 0.3125 0.9499 +vn 0.1196 0.2888 0.9499 +vn -0.8143 -0.3373 -0.4723 +vn -0.5059 -0.5059 -0.6987 +vn -0.6233 -0.6233 -0.4723 +vn -0.3125 -0.0000 -0.9499 +vn -0.2888 -0.1196 -0.9499 +vn -0.0000 0.7155 0.6987 +vn -0.7155 -0.0000 -0.6987 +vn -0.8814 -0.0000 -0.4723 +vn -0.6610 -0.2738 -0.6987 +vn -0.2888 0.1196 -0.9499 +vn 0.5059 0.5059 0.6987 +vn -0.6610 0.2738 -0.6987 +vn -0.8143 0.3373 -0.4723 +vn 0.6233 0.6233 0.4723 +vn 0.2210 0.2210 0.9499 +vn -0.2210 0.2210 -0.9499 +vn 0.6610 0.2738 0.6987 +vn -0.5059 0.5059 -0.6987 +vn -0.6233 0.6233 -0.4723 +vn 0.8143 0.3373 0.4723 +vn 0.2888 0.1196 0.9499 +vn 0.7155 -0.0000 0.6987 +vn -0.1196 0.2888 -0.9499 +vn 0.8814 -0.0000 0.4723 +vn 0.3126 0.0000 0.9499 +vn -0.2738 0.6610 -0.6987 +vn -0.3373 0.8143 -0.4723 +vn 0.2888 -0.1196 0.9499 +vn 0.6610 -0.2738 0.6987 +vn 0.8143 -0.3373 0.4723 +vn 0.0000 0.3125 -0.9499 +vn 0.0000 0.7155 -0.6987 +vn -0.0000 0.8814 -0.4723 +vn 0.5059 -0.5059 0.6987 +vn 0.6233 -0.6233 0.4723 +vn 0.2210 -0.2210 0.9499 +vn 0.3373 -0.8143 0.4723 +vn 0.1196 -0.2888 0.9499 +vn 0.2738 -0.6610 0.6987 +vn -0.0000 -0.7155 0.6987 +vn -0.0000 -0.8814 0.4723 +vn -0.0000 -0.3125 0.9499 +vn -0.3373 -0.8143 0.4723 +vn -0.1196 -0.2888 0.9499 +vn -0.2738 -0.6610 0.6987 +vn -0.6233 -0.6233 0.4723 +vn -0.2210 -0.2210 0.9499 +vn -0.5059 -0.5059 0.6987 +vn -0.2888 -0.1196 0.9499 +vn -0.6610 -0.2738 0.6987 +vn -0.8143 -0.3373 0.4723 +vn -0.7155 0.0000 0.6987 +vn -0.8814 0.0000 0.4723 +vn -0.3125 0.0000 0.9499 +vn -0.2888 0.1196 0.9499 +vn -0.6610 0.2738 0.6987 +vn -0.8143 0.3373 0.4723 +vn -0.5059 0.5059 0.6987 +vn -0.6233 0.6233 0.4723 +vn -0.2210 0.2210 0.9499 +vn -0.1196 0.2888 0.9499 +vn -0.2738 0.6610 0.6987 +vn -0.3373 0.8143 0.4723 +vn -0.2210 -0.2210 -0.9499 +vn -0.2738 -0.6610 -0.6987 +vn -0.3373 -0.8143 -0.4723 +vn -0.1196 -0.2888 -0.9499 +vn -0.0000 -0.7155 -0.6987 +vn 0.0000 -0.8814 -0.4723 +vn -0.0000 -0.3125 -0.9499 +vn 0.3373 -0.8143 -0.4723 +vn 0.1196 -0.2888 -0.9499 +vn 0.2738 -0.6610 -0.6987 +vn 0.6233 -0.6233 -0.4723 +vn 0.2210 -0.2210 -0.9499 +vn 0.5059 -0.5059 -0.6987 +vn 0.2888 -0.1196 -0.9499 +vn 0.6610 -0.2738 -0.6987 +vn 0.8143 -0.3373 -0.4723 +vn 0.7155 0.0000 -0.6987 +vn 0.8814 0.0000 -0.4723 +vn 0.3125 0.0000 -0.9499 +vn 0.6610 0.2738 -0.6987 +vn 0.8143 0.3373 -0.4723 +vn 0.2888 0.1196 -0.9499 +vn 0.2210 0.2210 -0.9499 +vn 0.5059 0.5059 -0.6987 +vn 0.6233 0.6233 -0.4723 +vn 0.2738 0.6610 -0.6987 +vn 0.3373 0.8143 -0.4723 +vn 0.1196 0.2888 -0.9499 +vn 0.0000 -0.8660 0.5000 +vn 0.0000 0.5000 0.8660 +vn 0.0000 0.8660 -0.5000 +vn 0.0000 0.5000 -0.8660 +vn 0.0000 -0.8660 -0.5000 +vn 0.0000 -0.5000 -0.8660 +vn 0.0000 0.8660 0.5000 +vn 0.0000 -0.5000 0.8660 +vn 0.7071 0.0000 -0.7071 +vn 0.9824 0.1866 -0.0000 +vn 0.7071 0.0000 0.7071 +vn 0.0473 0.0196 0.9987 +vn -0.7071 0.0000 0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.0473 0.0196 -0.9987 +vn 0.7194 0.1448 -0.6794 +vn 0.7194 0.1448 0.6794 +vn -0.6737 -0.1363 0.7263 +vn -0.6737 -0.1363 -0.7263 +vn -0.4617 -0.4617 -0.7574 +vn 0.0671 0.0671 -0.9955 +vn 0.5294 0.5294 -0.6630 +vn 0.5294 0.5294 0.6630 +vn -0.4617 -0.4617 0.7574 +vn 0.0671 0.0671 0.9955 +vn 0.1866 0.9824 0.0000 +vn 0.1448 0.7194 0.6794 +vn 0.0196 0.0473 0.9987 +vn -0.1363 -0.6737 -0.7263 +vn 0.0196 0.0473 -0.9987 +vn 0.1448 0.7194 -0.6794 +vn -0.1363 -0.6737 0.7263 +vn -0.9824 0.1866 0.0000 +vn -0.0473 0.0196 -0.9987 +vn -0.0473 0.0196 0.9987 +vn -0.7194 0.1448 0.6794 +vn -0.7194 0.1448 -0.6794 +vn 0.6737 -0.1363 -0.7263 +vn 0.6737 -0.1363 0.7263 +vn -0.0671 0.0671 0.9955 +vn -0.5294 0.5294 0.6630 +vn -0.5294 0.5294 -0.6630 +vn -0.0671 0.0671 -0.9955 +vn 0.4617 -0.4617 -0.7574 +vn -0.1866 0.9824 -0.0000 +vn -0.1448 0.7194 -0.6794 +vn -0.0196 0.0473 -0.9987 +vn 0.1363 -0.6737 0.7263 +vn -0.0196 0.0473 0.9987 +vn -0.1448 0.7194 0.6794 +vn 0.1363 -0.6737 -0.7263 +vn 0.4617 -0.4617 0.7574 +vn 0.9824 -0.1866 0.0000 +vn 0.0473 -0.0196 -0.9987 +vn 0.0473 -0.0196 0.9987 +vn 0.7194 -0.1448 0.6794 +vn 0.7194 -0.1448 -0.6794 +vn -0.6737 0.1363 -0.7263 +vn -0.6737 0.1363 0.7263 +vn -0.4617 0.4617 0.7574 +vn 0.0671 -0.0671 0.9955 +vn 0.5294 -0.5294 0.6630 +vn 0.5294 -0.5294 -0.6630 +vn -0.4617 0.4617 -0.7574 +vn 0.0671 -0.0671 -0.9955 +vn 0.1866 -0.9824 -0.0000 +vn 0.1448 -0.7194 -0.6794 +vn 0.0196 -0.0473 -0.9987 +vn 0.0196 -0.0473 0.9987 +vn 0.1448 -0.7194 0.6794 +vn -0.1363 0.6737 -0.7263 +vn -0.1363 0.6737 0.7263 +vn -0.9824 -0.1866 0.0000 +vn -0.0473 -0.0196 0.9987 +vn 0.6737 0.1363 0.7263 +vn -0.0473 -0.0196 -0.9987 +vn -0.7194 -0.1448 -0.6794 +vn -0.7194 -0.1448 0.6794 +vn 0.6737 0.1363 -0.7263 +vn -0.0671 -0.0671 -0.9955 +vn -0.5294 -0.5294 -0.6630 +vn -0.5294 -0.5294 0.6630 +vn -0.0671 -0.0671 0.9955 +vn 0.4617 0.4617 0.7574 +vn -0.1866 -0.9824 0.0000 +vn -0.1448 -0.7194 0.6794 +vn -0.0196 -0.0473 0.9987 +vn 0.4617 0.4617 -0.7574 +vn -0.0196 -0.0473 -0.9987 +vn -0.1448 -0.7194 -0.6794 +vn 0.1363 0.6737 0.7263 +vn 0.1363 0.6737 -0.7263 +s off +f 61/65/21 58/66/21 57/67/21 +f 62/68/22 60/69/22 58/70/22 +f 64/71/23 59/72/23 60/73/23 +f 63/74/24 57/75/24 59/76/24 +f 63/74/25 62/77/25 61/78/25 +f 58/79/26 59/76/26 57/80/26 +f 69/81/21 66/82/21 65/83/21 +f 70/84/22 68/85/22 66/86/22 +f 72/87/23 67/88/23 68/89/23 +f 71/90/24 65/91/24 67/92/24 +f 71/90/25 70/93/25 69/94/25 +f 66/95/26 67/92/26 65/96/26 +f 77/97/21 74/98/21 73/99/21 +f 78/100/22 76/101/22 74/102/22 +f 80/103/23 75/104/23 76/105/23 +f 79/106/24 73/107/24 75/108/24 +f 79/106/25 78/109/25 77/110/25 +f 74/111/26 75/108/26 73/112/26 +f 85/113/21 82/114/21 81/115/21 +f 86/116/22 84/117/22 82/118/22 +f 88/119/23 83/120/23 84/121/23 +f 87/122/24 81/123/24 83/124/24 +f 87/122/25 86/125/25 85/126/25 +f 82/127/26 83/124/26 81/128/26 +f 93/129/21 90/130/21 89/131/21 +f 94/132/22 92/133/22 90/134/22 +f 96/135/23 91/136/23 92/137/23 +f 95/138/24 89/139/24 91/140/24 +f 95/138/25 94/141/25 93/142/25 +f 90/143/26 91/140/26 89/144/26 +f 101/145/21 98/146/21 97/147/21 +f 102/148/22 100/149/22 98/150/22 +f 104/151/23 99/152/23 100/153/23 +f 103/154/24 97/155/24 99/156/24 +f 103/154/25 102/157/25 101/158/25 +f 98/159/26 99/156/26 97/160/26 +f 109/161/21 106/162/21 105/163/21 +f 110/164/22 108/165/22 106/166/22 +f 112/167/23 107/168/23 108/169/23 +f 111/170/24 105/171/24 107/172/24 +f 111/170/25 110/173/25 109/174/25 +f 106/175/26 107/172/26 105/176/26 +f 117/177/21 114/178/21 113/179/21 +f 118/180/22 116/181/22 114/182/22 +f 120/183/23 115/184/23 116/185/23 +f 119/186/24 113/187/24 115/188/24 +f 119/186/25 118/189/25 117/190/25 +f 114/191/26 115/188/26 113/192/26 +f 54/193/26 56/194/26 55/195/26 +f 49/196/21 55/197/21 56/198/21 +f 51/199/23 53/200/23 54/201/23 +f 51/202/25 49/203/25 52/204/25 +f 126/205/26 128/206/26 127/207/26 +f 121/208/21 127/209/21 128/210/21 +f 123/211/23 125/212/23 126/213/23 +f 123/214/25 121/215/25 124/216/25 +f 134/217/26 136/218/26 135/219/26 +f 129/220/21 135/221/21 136/222/21 +f 131/223/23 133/224/23 134/225/23 +f 131/226/25 129/227/25 132/228/25 +f 142/229/26 144/230/26 143/231/26 +f 137/232/21 143/233/21 144/234/21 +f 139/235/23 141/236/23 142/237/23 +f 139/238/25 137/239/25 140/240/25 +f 146/241/26 147/242/26 145/243/26 +f 148/244/24 151/245/24 147/246/24 +f 145/247/22 150/248/22 146/249/22 +f 149/250/25 152/251/25 150/252/25 +f 154/253/26 155/254/26 153/255/26 +f 156/256/24 159/257/24 155/258/24 +f 153/259/22 158/260/22 154/261/22 +f 157/262/25 160/263/25 158/264/25 +f 162/265/26 163/266/26 161/267/26 +f 164/268/24 167/269/24 163/270/24 +f 161/271/22 166/272/22 162/273/22 +f 165/274/25 168/275/25 166/276/25 +f 170/277/26 171/278/26 169/279/26 +f 172/280/24 175/281/24 171/282/24 +f 169/283/22 174/284/22 170/285/22 +f 173/286/25 176/287/25 174/288/25 +f 178/289/23 179/290/23 177/291/23 +f 180/292/24 183/293/24 179/294/24 +f 177/295/22 182/296/22 178/297/22 +f 181/298/21 184/299/21 182/300/21 +f 186/301/23 187/302/23 185/303/23 +f 188/304/24 191/305/24 187/306/24 +f 185/307/22 190/308/22 186/309/22 +f 189/310/21 192/311/21 190/312/21 +f 194/313/23 195/314/23 193/315/23 +f 196/316/24 199/317/24 195/318/24 +f 193/319/22 198/320/22 194/321/22 +f 197/322/21 200/323/21 198/324/21 +f 202/325/23 203/326/23 201/327/23 +f 204/328/24 207/329/24 203/330/24 +f 201/331/22 206/332/22 202/333/22 +f 205/334/21 208/335/21 206/336/21 +f 244/337/22 212/338/22 210/339/22 +f 240/340/22 244/337/22 210/339/22 +f 240/340/22 342/341/22 349/342/22 +f 238/343/22 335/344/22 342/341/22 +f 236/345/22 328/346/22 335/344/22 +f 234/347/22 321/348/22 328/346/22 +f 232/349/22 314/350/22 321/348/22 +f 307/351/22 230/352/22 228/353/22 +f 300/354/22 228/353/22 226/355/22 +f 293/356/22 226/357/22 224/358/22 +f 286/359/22 224/358/22 222/360/22 +f 279/361/22 222/360/22 220/362/22 +f 218/363/22 279/361/22 220/362/22 +f 216/364/22 272/365/22 218/363/22 +f 214/366/22 265/367/22 216/364/22 +f 212/338/22 258/368/22 214/366/22 +f 357/369/24 352/370/24 350/371/24 +f 368/372/24 357/369/24 252/373/24 +f 252/373/24 365/374/24 368/372/24 +f 259/375/24 362/376/24 365/374/24 +f 266/377/24 241/378/24 362/376/24 +f 273/379/24 247/380/24 241/378/24 +f 280/381/24 255/382/24 247/380/24 +f 268/383/24 287/384/24 294/385/24 +f 276/386/24 294/385/24 301/387/24 +f 289/388/24 301/389/24 308/390/24 +f 297/391/24 308/390/24 315/392/24 +f 310/393/24 315/392/24 322/394/24 +f 329/395/24 310/393/24 322/394/24 +f 336/396/24 318/397/24 329/395/24 +f 343/398/24 331/399/24 336/396/24 +f 350/371/24 339/400/24 343/398/24 +f 233/401/24 382/402/24 231/403/24 +f 231/403/24 381/404/24 229/405/24 +f 229/405/24 380/406/24 227/407/24 +f 227/407/24 379/408/24 225/409/24 +f 225/410/24 378/411/24 223/412/24 +f 223/412/24 377/413/24 221/414/24 +f 221/414/24 376/415/24 219/416/24 +f 217/417/24 376/415/24 375/418/24 +f 375/418/24 215/419/24 217/417/24 +f 374/420/24 213/421/24 215/419/24 +f 373/422/24 211/423/24 213/421/24 +f 211/423/24 371/424/24 209/425/24 +f 239/426/24 371/424/24 386/427/24 +f 239/426/24 385/428/24 237/429/24 +f 237/429/24 384/430/24 235/431/24 +f 235/431/24 383/432/24 233/401/24 +f 274/433/22 390/434/22 391/435/22 +f 267/436/22 389/437/22 390/434/22 +f 260/438/22 388/439/22 389/437/22 +f 387/440/22 253/441/22 359/442/22 +f 402/443/22 359/442/22 351/444/22 +f 351/444/22 401/445/22 402/443/22 +f 344/446/22 400/447/22 401/445/22 +f 337/448/22 399/449/22 400/447/22 +f 330/450/22 398/451/22 399/449/22 +f 323/452/22 397/453/22 398/451/22 +f 396/454/22 316/455/22 309/456/22 +f 302/457/22 396/454/22 309/456/22 +f 295/458/22 395/459/22 302/460/22 +f 288/461/22 394/462/22 295/458/22 +f 281/463/22 393/464/22 288/461/22 +f 274/433/22 392/465/22 281/463/22 +f 404/466/21 405/467/21 403/468/21 +f 404/466/26 410/469/26 406/470/26 +f 405/467/25 408/471/25 403/468/25 +f 406/470/24 407/472/24 405/467/24 +f 403/468/22 409/473/22 404/466/22 +f 439/474/21 450/475/21 438/476/21 +f 438/476/21 449/477/21 437/478/21 +f 435/479/21 449/480/21 447/481/21 +f 435/479/21 448/482/21 436/483/21 +f 446/484/21 448/485/21 458/486/21 +f 446/484/21 457/487/21 445/488/21 +f 444/489/21 457/490/21 456/491/21 +f 444/489/21 455/492/21 443/493/21 +f 442/494/21 455/495/21 454/496/21 +f 442/494/21 453/497/21 441/498/21 +f 441/499/21 452/500/21 440/501/21 +f 440/501/21 451/502/21 439/503/21 +f 460/504/21 461/505/21 459/506/21 +f 464/507/21 465/508/21 463/509/21 +f 468/510/21 469/511/21 467/512/21 +f 472/513/21 473/514/21 471/515/21 +f 489/516/21 487/517/21 488/518/21 +f 481/519/21 479/520/21 480/521/21 +f 477/522/24 482/523/24 478/524/24 +f 476/525/22 480/521/22 475/526/22 +f 478/527/26 481/519/26 476/528/26 +f 475/529/25 479/520/25 477/530/25 +f 485/531/24 490/532/24 486/533/24 +f 484/534/22 488/518/22 483/535/22 +f 486/536/26 489/516/26 484/537/26 +f 483/538/25 487/517/25 485/539/25 +f 492/540/24 493/541/24 491/542/24 +f 494/543/25 497/544/25 493/541/25 +f 491/545/26 496/546/26 492/547/26 +f 495/548/22 498/549/22 496/546/22 +f 500/550/24 501/551/24 499/552/24 +f 502/553/25 505/554/25 501/551/25 +f 499/555/26 504/556/26 500/557/26 +f 503/558/22 506/559/22 504/556/22 +f 508/560/24 509/561/24 507/562/24 +f 510/563/25 513/564/25 509/561/25 +f 507/565/26 512/566/26 508/567/26 +f 511/568/22 514/569/22 512/566/22 +f 516/570/24 517/571/24 515/572/24 +f 518/573/25 521/574/25 517/571/25 +f 515/575/26 520/576/26 516/577/26 +f 519/578/22 522/579/22 520/576/22 +f 524/580/24 525/581/24 523/582/24 +f 526/583/21 529/584/21 525/581/21 +f 523/585/23 528/586/23 524/587/23 +f 527/588/22 530/589/22 528/586/22 +f 532/590/24 533/591/24 531/592/24 +f 534/593/21 537/594/21 533/591/21 +f 531/595/23 536/596/23 532/597/23 +f 535/598/22 538/599/22 536/596/22 +f 540/600/24 541/601/24 539/602/24 +f 542/603/21 545/604/21 541/601/21 +f 539/605/23 544/606/23 540/607/23 +f 543/608/22 546/609/22 544/606/22 +f 548/610/24 549/611/24 547/612/24 +f 550/613/21 553/614/21 549/611/21 +f 547/615/23 552/616/23 548/617/23 +f 551/618/22 554/619/22 552/616/22 +f 556/620/23 557/621/23 555/622/23 +f 556/620/26 562/623/26 558/624/26 +f 557/621/25 560/625/25 555/622/25 +f 558/624/22 559/626/22 557/621/22 +f 555/622/24 561/627/24 556/620/24 +f 591/628/23 602/629/23 590/630/23 +f 590/630/23 601/631/23 589/632/23 +f 587/633/23 601/634/23 599/635/23 +f 588/636/23 599/635/23 600/637/23 +f 598/638/23 600/639/23 610/640/23 +f 597/641/23 610/640/23 609/642/23 +f 596/643/23 609/644/23 608/645/23 +f 595/646/23 608/645/23 607/647/23 +f 595/648/23 606/649/23 594/650/23 +f 594/650/23 605/651/23 593/652/23 +f 592/653/23 605/654/23 604/655/23 +f 592/653/23 603/656/23 591/657/23 +f 612/658/23 613/659/23 611/660/23 +f 616/661/23 617/662/23 615/663/23 +f 620/664/23 621/665/23 619/666/23 +f 624/667/23 625/668/23 623/669/23 +f 641/670/23 639/671/23 640/672/23 +f 633/673/23 631/674/23 632/675/23 +f 629/676/22 634/677/22 630/678/22 +f 628/679/24 632/675/24 627/680/24 +f 630/681/26 633/673/26 628/682/26 +f 627/683/25 631/674/25 629/684/25 +f 637/685/22 642/686/22 638/687/22 +f 636/688/24 640/672/24 635/689/24 +f 638/690/26 641/670/26 636/691/26 +f 635/692/25 639/671/25 637/693/25 +f 704/694/25 705/695/25 703/696/25 +f 708/697/22 704/694/22 703/696/22 +f 709/698/21 706/699/21 704/694/21 +f 707/700/23 703/696/23 705/695/23 +f 710/701/24 705/695/24 706/699/24 +f 717/702/24 715/703/24 713/704/24 +f 731/705/22 730/706/22 729/707/22 +f 744/708/26 745/709/26 743/710/26 +f 748/711/24 744/708/24 743/710/24 +f 749/712/21 746/713/21 744/708/21 +f 747/714/23 743/710/23 745/709/23 +f 750/715/22 745/709/22 746/713/22 +f 61/65/21 62/716/21 58/66/21 +f 62/68/22 64/717/22 60/69/22 +f 64/71/23 63/718/23 59/72/23 +f 63/74/24 61/719/24 57/75/24 +f 63/74/25 64/717/25 62/77/25 +f 58/79/26 60/69/26 59/76/26 +f 69/81/21 70/720/21 66/82/21 +f 70/84/22 72/721/22 68/85/22 +f 72/87/23 71/722/23 67/88/23 +f 71/90/24 69/723/24 65/91/24 +f 71/90/25 72/721/25 70/93/25 +f 66/95/26 68/85/26 67/92/26 +f 77/97/21 78/724/21 74/98/21 +f 78/100/22 80/725/22 76/101/22 +f 80/103/23 79/726/23 75/104/23 +f 79/106/24 77/727/24 73/107/24 +f 79/106/25 80/725/25 78/109/25 +f 74/111/26 76/101/26 75/108/26 +f 85/113/21 86/728/21 82/114/21 +f 86/116/22 88/729/22 84/117/22 +f 88/119/23 87/730/23 83/120/23 +f 87/122/24 85/731/24 81/123/24 +f 87/122/25 88/729/25 86/125/25 +f 82/127/26 84/117/26 83/124/26 +f 93/129/21 94/732/21 90/130/21 +f 94/132/22 96/733/22 92/133/22 +f 96/135/23 95/734/23 91/136/23 +f 95/138/24 93/735/24 89/139/24 +f 95/138/25 96/733/25 94/141/25 +f 90/143/26 92/133/26 91/140/26 +f 101/145/21 102/736/21 98/146/21 +f 102/148/22 104/737/22 100/149/22 +f 104/151/23 103/738/23 99/152/23 +f 103/154/24 101/739/24 97/155/24 +f 103/154/25 104/737/25 102/157/25 +f 98/159/26 100/149/26 99/156/26 +f 109/161/21 110/740/21 106/162/21 +f 110/164/22 112/741/22 108/165/22 +f 112/167/23 111/742/23 107/168/23 +f 111/170/24 109/743/24 105/171/24 +f 111/170/25 112/741/25 110/173/25 +f 106/175/26 108/165/26 107/172/26 +f 117/177/21 118/744/21 114/178/21 +f 118/180/22 120/745/22 116/181/22 +f 120/183/23 119/746/23 115/184/23 +f 119/186/24 117/747/24 113/187/24 +f 119/186/25 120/745/25 118/189/25 +f 114/191/26 116/181/26 115/188/26 +f 54/193/26 53/748/26 56/194/26 +f 49/196/21 50/749/21 55/197/21 +f 51/199/23 52/750/23 53/200/23 +f 51/202/25 50/751/25 49/203/25 +f 126/205/26 125/752/26 128/206/26 +f 121/208/21 122/753/21 127/209/21 +f 123/211/23 124/754/23 125/212/23 +f 123/214/25 122/755/25 121/215/25 +f 134/217/26 133/756/26 136/218/26 +f 129/220/21 130/757/21 135/221/21 +f 131/223/23 132/758/23 133/224/23 +f 131/226/25 130/759/25 129/227/25 +f 142/229/26 141/760/26 144/230/26 +f 137/232/21 138/761/21 143/233/21 +f 139/235/23 140/762/23 141/236/23 +f 139/238/25 138/763/25 137/239/25 +f 146/241/26 148/764/26 147/242/26 +f 148/244/24 152/765/24 151/245/24 +f 145/247/22 149/766/22 150/248/22 +f 149/250/25 151/767/25 152/251/25 +f 154/253/26 156/768/26 155/254/26 +f 156/256/24 160/769/24 159/257/24 +f 153/259/22 157/770/22 158/260/22 +f 157/262/25 159/771/25 160/263/25 +f 162/265/26 164/772/26 163/266/26 +f 164/268/24 168/773/24 167/269/24 +f 161/271/22 165/774/22 166/272/22 +f 165/274/25 167/775/25 168/275/25 +f 170/277/26 172/776/26 171/278/26 +f 172/280/24 176/777/24 175/281/24 +f 169/283/22 173/778/22 174/284/22 +f 173/286/25 175/779/25 176/287/25 +f 178/289/23 180/780/23 179/290/23 +f 180/292/24 184/781/24 183/293/24 +f 177/295/22 181/782/22 182/296/22 +f 181/298/21 183/783/21 184/299/21 +f 186/301/23 188/784/23 187/302/23 +f 188/304/24 192/785/24 191/305/24 +f 185/307/22 189/786/22 190/308/22 +f 189/310/21 191/787/21 192/311/21 +f 194/313/23 196/788/23 195/314/23 +f 196/316/24 200/789/24 199/317/24 +f 193/319/22 197/790/22 198/320/22 +f 197/322/21 199/791/21 200/323/21 +f 202/325/23 204/792/23 203/326/23 +f 204/328/24 208/793/24 207/329/24 +f 201/331/22 205/794/22 206/332/22 +f 205/334/21 207/795/21 208/335/21 +f 244/337/22 251/796/22 212/338/22 +f 240/340/22 349/342/22 244/337/22 +f 240/340/22 238/343/22 342/341/22 +f 238/343/22 236/345/22 335/344/22 +f 236/345/22 234/347/22 328/346/22 +f 234/347/22 232/349/22 321/348/22 +f 232/349/22 230/352/22 314/350/22 +f 307/351/22 314/350/22 230/352/22 +f 300/354/22 307/351/22 228/353/22 +f 293/356/22 300/797/22 226/357/22 +f 286/359/22 293/356/22 224/358/22 +f 279/361/22 286/359/22 222/360/22 +f 218/363/22 272/365/22 279/361/22 +f 216/364/22 265/367/22 272/365/22 +f 214/366/22 258/368/22 265/367/22 +f 212/338/22 251/796/22 258/368/22 +f 357/369/24 358/798/24 352/370/24 +f 368/372/24 358/798/24 357/369/24 +f 252/373/24 259/375/24 365/374/24 +f 259/375/24 266/377/24 362/376/24 +f 266/377/24 273/379/24 241/378/24 +f 273/379/24 280/381/24 247/380/24 +f 280/381/24 287/384/24 255/382/24 +f 268/383/24 255/382/24 287/384/24 +f 276/386/24 268/383/24 294/385/24 +f 289/388/24 276/799/24 301/389/24 +f 297/391/24 289/388/24 308/390/24 +f 310/393/24 297/391/24 315/392/24 +f 329/395/24 318/397/24 310/393/24 +f 336/396/24 331/399/24 318/397/24 +f 343/398/24 339/400/24 331/399/24 +f 350/371/24 352/370/24 339/400/24 +f 233/401/24 383/432/24 382/402/24 +f 231/403/24 382/402/24 381/404/24 +f 229/405/24 381/404/24 380/406/24 +f 227/407/24 380/406/24 379/408/24 +f 225/410/24 379/800/24 378/411/24 +f 223/412/24 378/411/24 377/413/24 +f 221/414/24 377/413/24 376/415/24 +f 217/417/24 219/416/24 376/415/24 +f 375/418/24 374/420/24 215/419/24 +f 374/420/24 373/422/24 213/421/24 +f 373/422/24 372/801/24 211/423/24 +f 211/423/24 372/801/24 371/424/24 +f 239/426/24 209/425/24 371/424/24 +f 239/426/24 386/427/24 385/428/24 +f 237/429/24 385/428/24 384/430/24 +f 235/431/24 384/430/24 383/432/24 +f 274/433/22 267/436/22 390/434/22 +f 267/436/22 260/438/22 389/437/22 +f 260/438/22 253/441/22 388/439/22 +f 387/440/22 388/439/22 253/441/22 +f 402/443/22 387/440/22 359/442/22 +f 351/444/22 344/446/22 401/445/22 +f 344/446/22 337/448/22 400/447/22 +f 337/448/22 330/450/22 399/449/22 +f 330/450/22 323/452/22 398/451/22 +f 323/452/22 316/455/22 397/453/22 +f 396/454/22 397/453/22 316/455/22 +f 302/457/22 395/802/22 396/454/22 +f 295/458/22 394/462/22 395/459/22 +f 288/461/22 393/464/22 394/462/22 +f 281/463/22 392/465/22 393/464/22 +f 274/433/22 391/435/22 392/465/22 +f 404/466/21 406/470/21 405/467/21 +f 404/466/26 409/803/26 410/469/26 +f 405/467/25 407/804/25 408/471/25 +f 406/470/24 410/805/24 407/472/24 +f 403/468/22 408/806/22 409/473/22 +f 439/474/21 451/807/21 450/475/21 +f 438/476/21 450/475/21 449/477/21 +f 435/479/21 437/808/21 449/480/21 +f 435/479/21 447/481/21 448/482/21 +f 446/484/21 436/809/21 448/485/21 +f 446/484/21 458/486/21 457/487/21 +f 444/489/21 445/810/21 457/490/21 +f 444/489/21 456/491/21 455/492/21 +f 442/494/21 443/811/21 455/495/21 +f 442/494/21 454/496/21 453/497/21 +f 441/499/21 453/812/21 452/500/21 +f 440/501/21 452/500/21 451/502/21 +f 460/504/21 462/813/21 461/505/21 +f 464/507/21 466/814/21 465/508/21 +f 468/510/21 470/815/21 469/511/21 +f 472/513/21 474/816/21 473/514/21 +f 489/516/21 490/532/21 487/517/21 +f 481/519/21 482/523/21 479/520/21 +f 477/522/24 479/520/24 482/523/24 +f 476/525/22 481/519/22 480/521/22 +f 478/527/26 482/523/26 481/519/26 +f 475/529/25 480/521/25 479/520/25 +f 485/531/24 487/517/24 490/532/24 +f 484/534/22 489/516/22 488/518/22 +f 486/536/26 490/532/26 489/516/26 +f 483/538/25 488/518/25 487/517/25 +f 492/540/24 494/543/24 493/541/24 +f 494/543/25 498/817/25 497/544/25 +f 491/545/26 495/548/26 496/546/26 +f 495/548/22 497/818/22 498/549/22 +f 500/550/24 502/553/24 501/551/24 +f 502/553/25 506/819/25 505/554/25 +f 499/555/26 503/558/26 504/556/26 +f 503/558/22 505/820/22 506/559/22 +f 508/560/24 510/563/24 509/561/24 +f 510/563/25 514/821/25 513/564/25 +f 507/565/26 511/568/26 512/566/26 +f 511/568/22 513/822/22 514/569/22 +f 516/570/24 518/573/24 517/571/24 +f 518/573/25 522/823/25 521/574/25 +f 515/575/26 519/578/26 520/576/26 +f 519/578/22 521/824/22 522/579/22 +f 524/580/24 526/583/24 525/581/24 +f 526/583/21 530/825/21 529/584/21 +f 523/585/23 527/588/23 528/586/23 +f 527/588/22 529/826/22 530/589/22 +f 532/590/24 534/593/24 533/591/24 +f 534/593/21 538/827/21 537/594/21 +f 531/595/23 535/598/23 536/596/23 +f 535/598/22 537/828/22 538/599/22 +f 540/600/24 542/603/24 541/601/24 +f 542/603/21 546/829/21 545/604/21 +f 539/605/23 543/608/23 544/606/23 +f 543/608/22 545/830/22 546/609/22 +f 548/610/24 550/613/24 549/611/24 +f 550/613/21 554/831/21 553/614/21 +f 547/615/23 551/618/23 552/616/23 +f 551/618/22 553/832/22 554/619/22 +f 556/620/23 558/624/23 557/621/23 +f 556/620/26 561/833/26 562/623/26 +f 557/621/25 559/834/25 560/625/25 +f 558/624/22 562/835/22 559/626/22 +f 555/622/24 560/836/24 561/627/24 +f 591/628/23 603/837/23 602/629/23 +f 590/630/23 602/629/23 601/631/23 +f 587/633/23 589/838/23 601/634/23 +f 588/636/23 587/633/23 599/635/23 +f 598/638/23 588/839/23 600/639/23 +f 597/641/23 598/638/23 610/640/23 +f 596/643/23 597/840/23 609/644/23 +f 595/646/23 596/643/23 608/645/23 +f 595/648/23 607/841/23 606/649/23 +f 594/650/23 606/649/23 605/651/23 +f 592/653/23 593/842/23 605/654/23 +f 592/653/23 604/655/23 603/656/23 +f 612/658/23 614/843/23 613/659/23 +f 616/661/23 618/844/23 617/662/23 +f 620/664/23 622/845/23 621/665/23 +f 624/667/23 626/846/23 625/668/23 +f 641/670/23 642/686/23 639/671/23 +f 633/673/23 634/677/23 631/674/23 +f 629/676/22 631/674/22 634/677/22 +f 628/679/24 633/673/24 632/675/24 +f 630/681/26 634/677/26 633/673/26 +f 627/683/25 632/675/25 631/674/25 +f 637/685/22 639/671/22 642/686/22 +f 636/688/24 641/670/24 640/672/24 +f 638/690/26 642/686/26 641/670/26 +f 635/692/25 640/672/25 639/671/25 +f 704/694/25 706/699/25 705/695/25 +f 708/697/22 709/847/22 704/694/22 +f 709/698/21 710/848/21 706/699/21 +f 707/700/23 708/849/23 703/696/23 +f 710/701/24 707/850/24 705/695/24 +f 713/704/24 712/851/24 711/852/24 +f 711/852/24 718/853/24 717/702/24 +f 717/702/24 716/854/24 715/703/24 +f 715/703/24 714/855/24 713/704/24 +f 713/704/24 711/852/24 717/702/24 +f 729/707/22 728/856/22 727/857/22 +f 727/857/22 734/858/22 729/707/22 +f 734/858/22 733/859/22 729/707/22 +f 733/859/22 732/860/22 729/707/22 +f 732/860/22 731/705/22 729/707/22 +f 744/708/26 746/713/26 745/709/26 +f 748/711/24 749/861/24 744/708/24 +f 749/712/21 750/862/21 746/713/21 +f 747/714/23 748/863/23 743/710/23 +f 750/715/22 747/864/22 745/709/22 +s 1 +f 210/339/25 211/423/27 209/425/25 +f 212/338/27 213/421/28 211/423/27 +f 214/366/28 215/419/29 213/421/28 +f 216/364/29 217/417/21 215/419/29 +f 218/363/21 219/416/30 217/417/21 +f 220/362/30 221/414/31 219/416/30 +f 222/360/31 223/412/32 221/414/31 +f 224/358/32 225/410/26 223/412/32 +f 226/355/26 227/407/33 225/409/26 +f 228/353/33 229/405/34 227/407/33 +f 230/352/34 231/403/35 229/405/34 +f 232/349/35 233/401/23 231/403/35 +f 234/347/23 235/431/36 233/401/23 +f 236/345/36 237/429/37 235/431/36 +f 238/343/37 239/426/38 237/429/37 +f 240/340/38 209/425/25 239/426/38 +f 244/337/39 250/865/40 251/796/41 +f 354/866/42 353/867/22 249/868/43 +f 310/393/44 303/869/45 297/391/46 +f 325/870/47 369/871/24 317/872/48 +f 354/866/42 250/865/40 243/873/49 +f 324/874/50 310/393/44 318/397/51 +f 325/870/47 311/875/52 324/874/50 +f 338/876/53 369/877/24 325/878/47 +f 249/879/43 257/880/54 250/865/40 +f 332/881/55 318/397/51 331/399/56 +f 251/796/41 257/880/54 258/368/57 +f 249/879/43 353/882/22 256/883/58 +f 332/881/55 325/878/47 324/874/50 +f 346/884/59 369/885/24 338/886/53 +f 256/887/58 264/888/60 257/880/54 +f 345/889/61 331/399/56 339/400/62 +f 258/368/57 264/888/60 265/367/63 +f 256/887/58 353/890/22 263/891/64 +f 345/889/61 338/886/53 332/881/55 +f 263/892/64 271/893/65 264/888/60 +f 356/894/66 369/895/24 346/896/59 +f 265/367/63 271/893/65 272/365/67 +f 263/892/64 353/897/22 270/898/68 +f 355/899/69 339/400/62 352/370/70 +f 271/893/65 277/900/71 278/901/72 +f 356/894/66 345/889/61 355/899/69 +f 272/365/67 278/901/72 279/361/73 +f 270/902/68 353/903/22 277/900/71 +f 370/904/74 355/899/69 246/905/75 +f 370/904/74 369/906/24 356/907/66 +f 246/905/75 352/370/70 358/798/76 +f 279/361/73 285/908/77 286/359/78 +f 277/909/71 353/910/22 284/911/79 +f 252/373/27 359/442/25 253/441/27 +f 259/375/28 253/441/27 260/438/28 +f 278/901/72 284/911/79 285/908/77 +f 266/377/29 260/438/28 267/436/29 +f 285/908/77 293/356/80 286/359/78 +f 284/912/79 353/913/22 291/914/81 +f 273/379/21 267/436/29 274/433/21 +f 280/381/30 274/433/21 281/463/30 +f 284/912/79 292/915/82 285/908/77 +f 287/384/31 281/463/30 288/461/31 +f 293/356/80 299/916/83 300/797/84 +f 291/917/81 353/918/22 298/919/85 +f 294/385/32 288/461/31 295/458/32 +f 301/387/26 295/458/32 302/460/26 +f 291/917/81 299/916/83 292/915/82 +f 308/390/33 302/457/26 309/456/33 +f 299/920/83 307/351/86 300/354/84 +f 298/921/85 353/922/22 305/923/87 +f 315/392/34 309/456/33 316/455/34 +f 322/394/35 316/455/34 323/452/35 +f 298/921/85 306/924/88 299/920/83 +f 306/924/88 314/350/89 307/351/86 +f 305/925/87 353/926/22 312/927/90 +f 329/395/23 323/452/35 330/450/23 +f 336/396/36 330/450/23 337/448/36 +f 305/925/87 313/928/91 306/924/88 +f 343/398/37 337/448/36 344/446/37 +f 312/929/90 353/930/22 319/931/92 +f 350/371/38 344/446/37 351/444/38 +f 357/369/25 351/444/38 359/442/25 +f 312/929/90 320/932/93 313/928/91 +f 314/350/89 320/932/93 321/348/94 +f 319/933/92 327/934/95 320/932/93 +f 320/932/93 328/346/96 321/348/94 +f 319/933/92 353/935/22 326/936/97 +f 327/934/95 333/937/98 334/938/99 +f 327/934/95 335/344/100 328/346/96 +f 326/939/97 353/940/22 333/937/98 +f 333/941/98 341/942/101 334/938/99 +f 334/938/99 342/341/102 335/344/100 +f 333/941/98 353/943/22 340/944/103 +f 341/942/101 347/945/104 348/946/105 +f 341/942/101 349/342/106 342/341/102 +f 340/947/103 353/948/22 347/945/104 +f 347/949/104 243/873/49 348/946/105 +f 348/946/105 244/337/39 349/342/106 +f 347/949/104 353/950/22 354/951/42 +f 317/952/48 369/953/24 304/954/107 +f 317/952/48 303/869/45 311/875/52 +f 297/391/46 290/955/108 289/388/109 +f 304/956/107 369/957/24 296/958/110 +f 304/956/107 290/955/108 303/869/45 +f 289/388/109 282/959/111 276/799/112 +f 296/960/110 369/961/24 283/962/113 +f 290/955/108 283/962/113 282/959/111 +f 282/963/111 268/383/114 276/386/112 +f 283/964/113 369/965/24 275/966/115 +f 282/963/111 275/966/115 269/967/116 +f 269/967/116 255/382/117 268/383/114 +f 275/968/115 369/969/24 262/970/118 +f 269/967/116 262/970/118 261/971/119 +f 262/972/118 369/973/24 254/974/120 +f 261/971/119 254/974/120 248/975/121 +f 261/971/119 247/380/122 255/382/117 +f 254/976/120 242/977/123 248/975/121 +f 248/975/121 241/378/124 247/380/122 +f 254/976/120 369/978/24 245/979/125 +f 245/980/125 361/981/126 242/977/123 +f 242/977/123 362/376/127 241/378/124 +f 245/980/125 369/982/24 360/983/128 +f 361/981/126 363/984/129 364/985/130 +f 361/981/126 365/374/131 362/376/127 +f 360/986/128 369/987/24 363/984/129 +f 363/988/129 367/989/132 364/985/130 +f 364/985/130 368/372/133 365/374/131 +f 363/988/129 369/990/24 366/991/134 +f 367/989/132 370/992/74 246/905/75 +f 367/989/132 358/798/76 368/372/133 +f 366/993/134 369/994/24 370/992/74 +f 384/430/36 399/449/23 383/432/23 +f 377/413/31 392/465/30 376/415/30 +f 385/428/37 400/447/36 384/430/36 +f 378/411/32 393/464/31 377/413/31 +f 386/427/38 401/445/37 385/428/37 +f 379/800/26 394/462/32 378/411/32 +f 372/801/27 387/440/25 371/424/25 +f 371/424/25 402/443/38 386/427/38 +f 380/406/33 395/802/26 379/408/26 +f 373/422/28 388/439/27 372/801/27 +f 381/404/34 396/454/33 380/406/33 +f 374/420/29 389/437/28 373/422/28 +f 382/402/35 397/453/34 381/404/34 +f 375/418/21 390/434/29 374/420/29 +f 383/432/23 398/451/35 382/402/35 +f 376/415/30 391/435/21 375/418/21 +f 420/995/26 443/493/135 419/996/135 +f 434/997/136 448/485/22 423/998/22 +f 413/999/137 435/479/138 412/1000/138 +f 427/1001/139 452/500/140 428/1002/140 +f 421/1003/139 444/489/26 420/995/26 +f 414/1004/25 437/478/137 413/1005/137 +f 428/1002/140 453/812/24 429/1006/24 +f 422/1007/140 445/488/139 421/1008/139 +f 415/1009/141 438/476/25 414/1004/25 +f 429/1010/24 454/496/138 430/1011/138 +f 411/1012/24 446/484/140 422/1007/140 +f 416/1013/136 439/503/141 415/1014/141 +f 430/1011/138 455/495/137 431/1015/137 +f 423/1016/22 447/481/142 424/1017/142 +f 417/1018/22 440/501/136 416/1013/136 +f 431/1019/137 456/491/25 432/1020/25 +f 424/1017/142 449/480/135 425/1021/135 +f 418/1022/142 441/498/22 417/1023/22 +f 432/1020/25 457/490/141 433/1024/141 +f 425/1025/135 450/475/26 426/1026/26 +f 419/1027/135 442/494/142 418/1022/142 +f 433/1028/141 458/486/136 434/997/136 +f 412/1000/138 436/483/24 411/1029/24 +f 426/1026/26 451/807/139 427/1030/139 +f 572/1031/26 595/646/139 571/1032/139 +f 586/1033/138 600/639/24 575/1034/24 +f 565/1035/141 587/633/136 564/1036/136 +f 579/1037/135 604/655/142 580/1038/142 +f 573/1039/135 596/643/26 572/1031/26 +f 566/1040/25 589/632/141 565/1041/141 +f 580/1038/142 605/654/22 581/1042/22 +f 574/1043/142 597/641/135 573/1044/135 +f 567/1045/137 590/630/25 566/1040/25 +f 581/1046/22 606/649/136 582/1047/136 +f 563/1048/22 598/638/142 574/1043/142 +f 568/1049/138 591/657/137 567/1050/137 +f 582/1047/136 607/841/141 583/1051/141 +f 575/1052/24 599/635/140 576/1053/140 +f 569/1054/24 592/653/138 568/1049/138 +f 583/1055/141 608/645/25 584/1056/25 +f 576/1053/140 601/634/139 577/1057/139 +f 570/1058/140 593/652/24 569/1059/24 +f 584/1056/25 609/644/137 585/1060/137 +f 577/1061/139 602/629/26 578/1062/26 +f 571/1063/139 594/650/140 570/1058/140 +f 585/1064/137 610/640/138 586/1033/138 +f 564/1036/136 588/636/22 563/1065/22 +f 578/1062/26 603/837/135 579/1066/135 +f 650/1067/143 657/1068/144 649/1069/21 +f 648/1070/145 655/1071/146 647/1072/22 +f 646/1073/147 653/1074/34 645/1075/23 +f 644/1076/148 651/1077/149 643/1078/24 +f 643/1078/24 658/1079/150 650/1067/143 +f 649/1069/21 656/1080/151 648/1070/145 +f 647/1072/22 654/1081/152 646/1073/147 +f 645/1082/23 652/1083/153 644/1076/148 +f 651/1084/149 660/1085/154 659/1086/155 +f 658/1079/150 659/1086/155 665/1087/156 +f 656/1080/151 664/1088/28 663/1089/157 +f 655/1090/146 661/1091/158 654/1092/152 +f 658/1079/150 664/1088/28 657/1068/144 +f 656/1080/151 662/1093/159 655/1090/146 +f 665/1087/156 671/1094/160 664/1088/28 +f 662/1093/159 670/1095/161 669/1096/162 +f 659/1086/155 667/1097/163 666/1098/164 +f 659/1086/155 672/1099/165 665/1087/156 +f 664/1088/28 670/1095/161 663/1089/157 +f 662/1093/159 668/1100/166 661/1091/158 +f 654/1092/152 661/1091/158 653/1101/34 +f 661/1091/158 668/1100/166 653/1101/34 +f 652/1102/153 653/1103/34 660/1085/154 +f 660/1085/154 653/1103/34 667/1097/163 +f 680/1104/147 687/1105/167 679/1106/23 +f 678/1107/148 685/1108/168 677/1109/24 +f 676/1110/143 683/1111/31 675/1112/21 +f 674/1113/145 681/1114/169 673/1115/22 +f 673/1115/22 688/1116/170 680/1104/147 +f 679/1106/23 686/1117/171 678/1107/148 +f 677/1109/24 684/1118/172 676/1110/143 +f 675/1119/21 682/1120/173 674/1113/145 +f 682/1121/173 689/1122/174 681/1123/169 +f 688/1116/170 689/1122/174 695/1124/175 +f 686/1117/171 694/1125/37 693/1126/176 +f 684/1127/172 692/1128/177 691/1129/178 +f 688/1116/170 694/1125/37 687/1105/167 +f 685/1130/168 693/1126/176 692/1128/177 +f 695/1124/175 701/1131/179 694/1125/37 +f 692/1128/177 700/1132/180 699/1133/181 +f 689/1122/174 697/1134/182 696/1135/183 +f 689/1122/174 702/1136/184 695/1124/175 +f 693/1126/176 701/1131/179 700/1132/180 +f 691/1129/178 699/1133/181 698/1137/185 +f 684/1127/172 691/1129/178 683/1138/31 +f 691/1129/178 698/1137/185 683/1138/31 +f 682/1121/173 683/1139/31 690/1140/186 +f 690/1140/186 683/1139/31 697/1134/182 +f 702/1136/184 669/1141/162 670/1095/161 +f 671/1094/160 702/1136/184 670/1095/161 +f 700/1132/180 671/1094/160 672/1099/165 +f 699/1142/181 672/1099/165 666/1143/164 +f 698/1144/185 666/1143/164 667/1145/163 +f 653/1146/34 698/1144/185 667/1145/163 +f 653/1147/34 697/1148/182 683/1149/31 +f 696/1150/183 668/1151/166 669/1141/162 +f 712/1152/37 720/1153/25 711/1154/25 +f 718/1155/28 720/1153/25 726/1156/28 +f 716/1157/31 725/1158/21 724/1159/31 +f 715/1160/26 722/1161/34 714/1162/34 +f 713/1163/23 719/1164/37 712/1152/37 +f 717/1165/21 726/1156/28 725/1158/21 +f 716/1157/31 723/1166/26 715/1167/26 +f 714/1162/34 721/1168/23 713/1163/23 +f 728/1169/28 736/1170/25 727/1171/25 +f 727/1171/25 742/1172/37 734/1173/37 +f 732/1174/34 741/1175/23 740/1176/34 +f 731/1177/26 738/1178/31 730/1179/31 +f 729/1180/21 735/1181/28 728/1169/28 +f 733/1182/23 742/1172/37 741/1175/23 +f 732/1174/34 739/1183/26 731/1184/26 +f 730/1179/31 737/1185/21 729/1180/21 +f 758/1186/143 765/1187/144 757/1188/21 +f 756/1189/145 763/1190/146 755/1191/22 +f 754/1192/147 761/1193/34 753/1194/23 +f 752/1195/148 759/1196/149 751/1197/24 +f 751/1197/24 766/1198/150 758/1186/143 +f 757/1188/21 764/1199/151 756/1189/145 +f 755/1191/22 762/1200/152 754/1192/147 +f 753/1201/23 760/1202/153 752/1195/148 +f 759/1203/149 768/1204/154 767/1205/155 +f 766/1198/150 767/1205/155 773/1206/156 +f 764/1199/151 772/1207/28 771/1208/157 +f 763/1209/146 769/1210/158 762/1211/152 +f 766/1198/150 772/1207/28 765/1187/144 +f 764/1199/151 770/1212/159 763/1209/146 +f 773/1206/156 779/1213/160 772/1207/28 +f 770/1212/159 778/1214/161 777/1215/162 +f 767/1205/155 775/1216/163 774/1217/164 +f 767/1205/155 780/1218/165 773/1206/156 +f 771/1208/157 779/1213/160 778/1214/161 +f 770/1212/159 776/1219/166 769/1210/158 +f 762/1211/152 769/1210/158 761/1220/34 +f 769/1210/158 776/1219/166 761/1220/34 +f 760/1221/153 761/1222/34 768/1204/154 +f 768/1204/154 761/1222/34 775/1216/163 +f 788/1223/147 795/1224/167 787/1225/23 +f 786/1226/148 793/1227/168 785/1228/24 +f 784/1229/143 791/1230/31 783/1231/21 +f 782/1232/145 789/1233/169 781/1234/22 +f 781/1234/22 796/1235/170 788/1223/147 +f 787/1225/23 794/1236/171 786/1226/148 +f 785/1228/24 792/1237/172 784/1229/143 +f 783/1238/21 790/1239/173 782/1232/145 +f 790/1240/173 797/1241/174 789/1242/169 +f 789/1242/169 803/1243/175 796/1235/170 +f 794/1236/171 802/1244/37 801/1245/176 +f 792/1246/172 800/1247/177 799/1248/178 +f 796/1235/170 802/1244/37 795/1224/167 +f 793/1249/168 801/1245/176 800/1247/177 +f 803/1243/175 809/1250/179 802/1244/37 +f 800/1247/177 808/1251/180 807/1252/181 +f 797/1241/174 805/1253/182 804/1254/183 +f 797/1241/174 810/1255/184 803/1243/175 +f 801/1245/176 809/1250/179 808/1251/180 +f 800/1247/177 806/1256/185 799/1248/178 +f 792/1246/172 799/1248/178 791/1257/31 +f 799/1248/178 806/1256/185 791/1257/31 +f 790/1240/173 791/1258/31 798/1259/186 +f 798/1259/186 791/1258/31 805/1253/182 +f 810/1255/184 777/1260/162 778/1214/161 +f 779/1213/160 810/1255/184 778/1214/161 +f 808/1251/180 779/1213/160 780/1218/165 +f 807/1261/181 780/1218/165 774/1262/164 +f 806/1263/185 774/1262/164 775/1264/163 +f 761/1265/34 806/1263/185 775/1264/163 +f 761/1266/34 805/1267/182 791/1268/31 +f 804/1269/183 776/1270/166 777/1260/162 +f 818/1271/143 825/1272/144 817/1273/21 +f 816/1274/145 823/1275/146 815/1276/22 +f 814/1277/147 821/1278/34 813/1279/23 +f 812/1280/148 819/1281/149 811/1282/24 +f 811/1282/24 826/1283/150 818/1271/143 +f 817/1273/21 824/1284/151 816/1274/145 +f 815/1276/22 822/1285/152 814/1277/147 +f 813/1286/23 820/1287/153 812/1280/148 +f 819/1288/149 828/1289/154 827/1290/155 +f 826/1283/150 827/1290/155 833/1291/156 +f 824/1284/151 832/1292/28 831/1293/157 +f 823/1294/146 829/1295/158 822/1296/152 +f 825/1272/144 833/1291/156 832/1292/28 +f 824/1284/151 830/1297/159 823/1294/146 +f 833/1291/156 839/1298/160 832/1292/28 +f 830/1297/159 838/1299/161 837/1300/162 +f 828/1289/154 834/1301/164 827/1290/155 +f 827/1290/155 840/1302/165 833/1291/156 +f 831/1293/157 839/1298/160 838/1299/161 +f 829/1295/158 837/1300/162 836/1303/166 +f 822/1296/152 829/1295/158 821/1304/34 +f 829/1295/158 836/1303/166 821/1304/34 +f 820/1305/153 821/1306/34 828/1289/154 +f 828/1289/154 821/1306/34 835/1307/163 +f 848/1308/147 855/1309/167 847/1310/23 +f 846/1311/148 853/1312/168 845/1313/24 +f 844/1314/143 851/1315/31 843/1316/21 +f 842/1317/145 849/1318/169 841/1319/22 +f 841/1319/22 856/1320/170 848/1308/147 +f 847/1310/23 854/1321/171 846/1311/148 +f 845/1313/24 852/1322/172 844/1314/143 +f 843/1323/21 850/1324/173 842/1317/145 +f 850/1325/173 857/1326/174 849/1327/169 +f 849/1327/169 863/1328/175 856/1320/170 +f 854/1321/171 862/1329/37 861/1330/176 +f 852/1331/172 860/1332/177 859/1333/178 +f 856/1320/170 862/1329/37 855/1309/167 +f 853/1334/168 861/1330/176 860/1332/177 +f 863/1328/175 869/1335/179 862/1329/37 +f 860/1332/177 868/1336/180 867/1337/181 +f 858/1338/186 864/1339/183 857/1326/174 +f 857/1326/174 870/1340/184 863/1328/175 +f 861/1330/176 869/1335/179 868/1336/180 +f 859/1333/178 867/1337/181 866/1341/185 +f 852/1331/172 859/1333/178 851/1342/31 +f 859/1333/178 866/1341/185 851/1342/31 +f 850/1325/173 851/1343/31 858/1338/186 +f 858/1338/186 851/1343/31 865/1344/182 +f 870/1340/184 837/1345/162 838/1299/161 +f 839/1298/160 870/1340/184 838/1299/161 +f 868/1336/180 839/1298/160 840/1302/165 +f 867/1346/181 840/1302/165 834/1347/164 +f 866/1348/185 834/1347/164 835/1349/163 +f 851/1350/31 835/1349/163 821/1351/34 +f 821/1352/34 865/1353/182 851/1354/31 +f 864/1355/183 836/1356/166 837/1345/162 +f 878/1357/143 885/1358/144 877/1359/21 +f 876/1360/145 883/1361/146 875/1362/22 +f 874/1363/147 881/1364/34 873/1365/23 +f 872/1366/148 879/1367/149 871/1368/24 +f 871/1368/24 886/1369/150 878/1357/143 +f 877/1359/21 884/1370/151 876/1360/145 +f 875/1362/22 882/1371/152 874/1363/147 +f 873/1372/23 880/1373/153 872/1366/148 +f 879/1374/149 888/1375/154 887/1376/155 +f 886/1369/150 887/1376/155 893/1377/156 +f 885/1358/144 891/1378/157 884/1370/151 +f 883/1379/146 889/1380/158 882/1381/152 +f 886/1369/150 892/1382/28 885/1358/144 +f 884/1370/151 890/1383/159 883/1379/146 +f 893/1377/156 899/1384/160 892/1382/28 +f 890/1383/159 898/1385/161 897/1386/162 +f 888/1375/154 894/1387/164 887/1376/155 +f 887/1376/155 900/1388/165 893/1377/156 +f 891/1378/157 899/1384/160 898/1385/161 +f 889/1380/158 897/1386/162 896/1389/166 +f 882/1381/152 889/1380/158 881/1390/34 +f 889/1380/158 896/1389/166 881/1390/34 +f 880/1391/153 881/1392/34 888/1375/154 +f 888/1375/154 881/1392/34 895/1393/163 +f 908/1394/147 915/1395/167 907/1396/23 +f 906/1397/148 913/1398/168 905/1399/24 +f 904/1400/143 911/1401/31 903/1402/21 +f 902/1403/145 909/1404/169 901/1405/22 +f 901/1405/22 916/1406/170 908/1394/147 +f 907/1396/23 914/1407/171 906/1397/148 +f 905/1399/24 912/1408/172 904/1400/143 +f 903/1409/21 910/1410/173 902/1403/145 +f 910/1411/173 917/1412/174 909/1413/169 +f 909/1413/169 923/1414/175 916/1406/170 +f 914/1407/171 922/1415/37 921/1416/176 +f 912/1417/172 920/1418/177 919/1419/178 +f 916/1406/170 922/1415/37 915/1395/167 +f 913/1420/168 921/1416/176 920/1418/177 +f 923/1414/175 929/1421/179 922/1415/37 +f 920/1418/177 928/1422/180 927/1423/181 +f 918/1424/186 924/1425/183 917/1412/174 +f 917/1412/174 930/1426/184 923/1414/175 +f 921/1416/176 929/1421/179 928/1422/180 +f 920/1418/177 926/1427/185 919/1419/178 +f 912/1417/172 919/1419/178 911/1428/31 +f 919/1419/178 926/1427/185 911/1428/31 +f 910/1411/173 911/1429/31 918/1424/186 +f 918/1424/186 911/1429/31 925/1430/182 +f 930/1426/184 897/1431/162 898/1385/161 +f 899/1384/160 930/1426/184 898/1385/161 +f 928/1422/180 899/1384/160 900/1388/165 +f 927/1432/181 900/1388/165 894/1433/164 +f 926/1434/185 894/1433/164 895/1435/163 +f 881/1436/34 926/1434/185 895/1435/163 +f 896/1437/166 911/1438/31 881/1439/34 +f 924/1440/183 896/1437/166 897/1431/162 +f 938/1441/143 945/1442/144 937/1443/21 +f 936/1444/145 943/1445/146 935/1446/22 +f 934/1447/147 941/1448/34 933/1449/23 +f 932/1450/148 939/1451/149 931/1452/24 +f 931/1452/24 946/1453/150 938/1441/143 +f 937/1443/21 944/1454/151 936/1444/145 +f 935/1446/22 942/1455/152 934/1447/147 +f 933/1456/23 940/1457/153 932/1450/148 +f 939/1458/149 948/1459/154 947/1460/155 +f 946/1453/150 947/1460/155 953/1461/156 +f 944/1454/151 952/1462/28 951/1463/157 +f 943/1464/146 949/1465/158 942/1466/152 +f 946/1453/150 952/1462/28 945/1442/144 +f 944/1454/151 950/1467/159 943/1464/146 +f 953/1461/156 959/1468/160 952/1462/28 +f 950/1467/159 958/1469/161 957/1470/162 +f 947/1460/155 955/1471/163 954/1472/164 +f 947/1460/155 960/1473/165 953/1461/156 +f 951/1463/157 959/1468/160 958/1469/161 +f 950/1467/159 956/1474/166 949/1465/158 +f 942/1466/152 949/1465/158 941/1475/34 +f 949/1465/158 956/1474/166 941/1475/34 +f 940/1476/153 941/1477/34 948/1459/154 +f 948/1459/154 941/1477/34 955/1471/163 +f 968/1478/147 975/1479/167 967/1480/23 +f 966/1481/148 973/1482/168 965/1483/24 +f 964/1484/143 971/1485/31 963/1486/21 +f 962/1487/145 969/1488/169 961/1489/22 +f 961/1489/22 976/1490/170 968/1478/147 +f 967/1480/23 974/1491/171 966/1481/148 +f 965/1483/24 972/1492/172 964/1484/143 +f 963/1493/21 970/1494/173 962/1487/145 +f 970/1495/173 977/1496/174 969/1497/169 +f 969/1497/169 983/1498/175 976/1490/170 +f 974/1491/171 982/1499/37 981/1500/176 +f 972/1501/172 980/1502/177 979/1503/178 +f 976/1490/170 982/1499/37 975/1479/167 +f 973/1504/168 981/1500/176 980/1502/177 +f 983/1498/175 989/1505/179 982/1499/37 +f 980/1502/177 988/1506/180 987/1507/181 +f 977/1496/174 985/1508/182 984/1509/183 +f 977/1496/174 990/1510/184 983/1498/175 +f 981/1500/176 989/1505/179 988/1506/180 +f 980/1502/177 986/1511/185 979/1503/178 +f 972/1501/172 979/1503/178 971/1512/31 +f 979/1503/178 986/1511/185 971/1512/31 +f 970/1495/173 971/1513/31 978/1514/186 +f 978/1514/186 971/1513/31 985/1508/182 +f 990/1510/184 957/1515/162 958/1469/161 +f 959/1468/160 990/1510/184 958/1469/161 +f 988/1506/180 959/1468/160 960/1473/165 +f 987/1516/181 960/1473/165 954/1517/164 +f 986/1518/185 954/1517/164 955/1519/163 +f 971/1520/31 955/1519/163 941/1521/34 +f 941/1522/34 985/1523/182 971/1524/31 +f 984/1525/183 956/1526/166 957/1515/162 +f 998/1527/145 1005/1528/187 997/1529/21 +f 996/1530/143 1003/1531/188 995/1532/24 +f 994/1533/148 1001/1534/37 993/1535/23 +f 992/1536/147 999/1537/189 991/1538/22 +f 991/1538/22 1006/1539/190 998/1527/145 +f 997/1529/21 1004/1540/191 996/1530/143 +f 995/1532/24 1002/1541/192 994/1533/148 +f 993/1542/23 1000/1543/193 992/1536/147 +f 999/1544/189 1008/1545/194 1007/1546/195 +f 1006/1539/190 1007/1546/195 1013/1547/196 +f 1004/1540/191 1012/1548/31 1011/1549/197 +f 1003/1550/188 1009/1551/198 1002/1552/192 +f 1006/1539/190 1012/1548/31 1005/1528/187 +f 1004/1540/191 1010/1553/199 1003/1550/188 +f 1013/1547/196 1019/1554/200 1012/1548/31 +f 1010/1553/199 1018/1555/201 1017/1556/202 +f 1008/1545/194 1014/1557/203 1007/1546/195 +f 1007/1546/195 1020/1558/204 1013/1547/196 +f 1011/1549/197 1019/1554/200 1018/1555/201 +f 1009/1551/198 1017/1556/202 1016/1559/205 +f 1002/1552/192 1009/1551/198 1001/1560/37 +f 1009/1551/198 1016/1559/205 1001/1560/37 +f 1000/1561/193 1001/1562/37 1008/1545/194 +f 1008/1545/194 1001/1562/37 1015/1563/206 +f 1028/1564/148 1035/1565/207 1027/1566/23 +f 1026/1567/147 1033/1568/208 1025/1569/22 +f 1023/1570/21 1032/1571/209 1031/1572/28 +f 1022/1573/143 1029/1574/210 1021/1575/24 +f 1021/1575/24 1036/1576/211 1028/1564/148 +f 1027/1566/23 1034/1577/212 1026/1567/147 +f 1025/1569/22 1032/1571/209 1024/1578/145 +f 1023/1579/21 1030/1580/213 1022/1573/143 +f 1030/1581/213 1037/1582/214 1029/1583/210 +f 1029/1583/210 1043/1584/215 1036/1576/211 +f 1034/1577/212 1042/1585/34 1041/1586/216 +f 1032/1587/209 1040/1588/217 1039/1589/218 +f 1036/1576/211 1042/1585/34 1035/1565/207 +f 1033/1590/208 1041/1586/216 1040/1588/217 +f 1043/1584/215 1049/1591/219 1042/1585/34 +f 1040/1588/217 1048/1592/220 1047/1593/221 +f 1038/1594/222 1044/1595/223 1037/1582/214 +f 1037/1582/214 1050/1596/224 1043/1584/215 +f 1041/1586/216 1049/1591/219 1048/1592/220 +f 1039/1589/218 1047/1593/221 1046/1597/225 +f 1032/1587/209 1039/1589/218 1031/1598/28 +f 1039/1589/218 1046/1597/225 1031/1598/28 +f 1030/1581/213 1031/1599/28 1038/1594/222 +f 1038/1594/222 1031/1599/28 1045/1600/226 +f 1050/1596/224 1017/1601/202 1018/1555/201 +f 1049/1591/219 1018/1555/201 1019/1554/200 +f 1048/1592/220 1019/1554/200 1020/1558/204 +f 1047/1602/221 1020/1558/204 1014/1603/203 +f 1046/1604/225 1014/1603/203 1015/1605/206 +f 1001/1606/37 1046/1604/225 1015/1605/206 +f 1016/1607/205 1031/1608/28 1001/1609/37 +f 1044/1610/223 1016/1607/205 1017/1601/202 +f 1058/1611/145 1065/1612/187 1057/1613/21 +f 1056/1614/143 1063/1615/188 1055/1616/24 +f 1054/1617/148 1061/1618/37 1053/1619/23 +f 1052/1620/147 1059/1621/189 1051/1622/22 +f 1051/1622/22 1066/1623/190 1058/1611/145 +f 1057/1613/21 1064/1624/191 1056/1614/143 +f 1055/1616/24 1062/1625/192 1054/1617/148 +f 1053/1626/23 1060/1627/193 1052/1620/147 +f 1059/1628/189 1068/1629/194 1067/1630/195 +f 1066/1623/190 1067/1630/195 1073/1631/196 +f 1064/1624/191 1072/1632/31 1071/1633/197 +f 1063/1634/188 1069/1635/198 1062/1636/192 +f 1066/1623/190 1072/1632/31 1065/1612/187 +f 1064/1624/191 1070/1637/199 1063/1634/188 +f 1073/1631/196 1079/1638/200 1072/1632/31 +f 1071/1633/197 1077/1639/202 1070/1637/199 +f 1068/1629/194 1074/1640/203 1067/1630/195 +f 1067/1630/195 1080/1641/204 1073/1631/196 +f 1071/1633/197 1079/1638/200 1078/1642/201 +f 1069/1635/198 1077/1639/202 1076/1643/205 +f 1062/1636/192 1069/1635/198 1061/1644/37 +f 1069/1635/198 1076/1643/205 1061/1644/37 +f 1060/1645/193 1061/1646/37 1068/1629/194 +f 1068/1629/194 1061/1646/37 1075/1647/206 +f 1088/1648/148 1095/1649/207 1087/1650/23 +f 1086/1651/147 1093/1652/208 1085/1653/22 +f 1084/1654/145 1091/1655/28 1083/1656/21 +f 1082/1657/143 1089/1658/210 1081/1659/24 +f 1081/1659/24 1096/1660/211 1088/1648/148 +f 1087/1650/23 1094/1661/212 1086/1651/147 +f 1085/1653/22 1092/1662/209 1084/1654/145 +f 1083/1663/21 1090/1664/213 1082/1657/143 +f 1090/1665/213 1097/1666/214 1089/1667/210 +f 1089/1667/210 1103/1668/215 1096/1660/211 +f 1094/1661/212 1102/1669/34 1101/1670/216 +f 1092/1671/209 1100/1672/217 1099/1673/218 +f 1096/1660/211 1102/1669/34 1095/1649/207 +f 1093/1674/208 1101/1670/216 1100/1672/217 +f 1103/1668/215 1109/1675/219 1102/1669/34 +f 1100/1672/217 1108/1676/220 1107/1677/221 +f 1098/1678/222 1104/1679/223 1097/1666/214 +f 1103/1668/215 1104/1679/223 1110/1680/224 +f 1101/1670/216 1109/1675/219 1108/1676/220 +f 1100/1672/217 1106/1681/225 1099/1673/218 +f 1092/1671/209 1099/1673/218 1091/1682/28 +f 1099/1673/218 1106/1681/225 1091/1682/28 +f 1090/1665/213 1091/1683/28 1098/1678/222 +f 1098/1678/222 1091/1683/28 1105/1684/226 +f 1110/1680/224 1077/1685/202 1078/1642/201 +f 1079/1638/200 1110/1680/224 1078/1642/201 +f 1108/1676/220 1079/1638/200 1080/1641/204 +f 1107/1686/221 1080/1641/204 1074/1687/203 +f 1106/1688/225 1074/1687/203 1075/1689/206 +f 1061/1690/37 1106/1688/225 1075/1689/206 +f 1061/1691/37 1105/1692/226 1091/1693/28 +f 1104/1694/223 1076/1695/205 1077/1685/202 +f 1118/1696/145 1125/1697/187 1117/1698/21 +f 1116/1699/143 1123/1700/188 1115/1701/24 +f 1114/1702/148 1121/1703/37 1113/1704/23 +f 1112/1705/147 1119/1706/189 1111/1707/22 +f 1111/1707/22 1126/1708/190 1118/1696/145 +f 1117/1698/21 1124/1709/191 1116/1699/143 +f 1115/1701/24 1122/1710/192 1114/1702/148 +f 1113/1711/23 1120/1712/193 1112/1705/147 +f 1119/1713/189 1128/1714/194 1127/1715/195 +f 1126/1708/190 1127/1715/195 1133/1716/196 +f 1124/1709/191 1132/1717/31 1131/1718/197 +f 1123/1719/188 1129/1720/198 1122/1721/192 +f 1126/1708/190 1132/1717/31 1125/1697/187 +f 1124/1709/191 1130/1722/199 1123/1719/188 +f 1133/1716/196 1139/1723/200 1132/1717/31 +f 1131/1718/197 1137/1724/202 1130/1722/199 +f 1128/1714/194 1134/1725/203 1127/1715/195 +f 1127/1715/195 1140/1726/204 1133/1716/196 +f 1131/1718/197 1139/1723/200 1138/1727/201 +f 1129/1720/198 1137/1724/202 1136/1728/205 +f 1122/1721/192 1129/1720/198 1121/1729/37 +f 1129/1720/198 1136/1728/205 1121/1729/37 +f 1120/1730/193 1121/1731/37 1128/1714/194 +f 1128/1714/194 1121/1731/37 1135/1732/206 +f 1148/1733/148 1155/1734/207 1147/1735/23 +f 1146/1736/147 1153/1737/208 1145/1738/22 +f 1144/1739/145 1151/1740/28 1143/1741/21 +f 1142/1742/143 1149/1743/210 1141/1744/24 +f 1141/1744/24 1156/1745/211 1148/1733/148 +f 1147/1735/23 1154/1746/212 1146/1736/147 +f 1145/1738/22 1152/1747/209 1144/1739/145 +f 1143/1748/21 1150/1749/213 1142/1742/143 +f 1150/1750/213 1157/1751/214 1149/1752/210 +f 1149/1752/210 1163/1753/215 1156/1745/211 +f 1154/1746/212 1162/1754/34 1161/1755/216 +f 1152/1756/209 1160/1757/217 1159/1758/218 +f 1156/1745/211 1162/1754/34 1155/1734/207 +f 1153/1759/208 1161/1755/216 1160/1757/217 +f 1163/1753/215 1169/1760/219 1162/1754/34 +f 1160/1757/217 1168/1761/220 1167/1762/221 +f 1158/1763/222 1164/1764/223 1157/1751/214 +f 1157/1751/214 1170/1765/224 1163/1753/215 +f 1161/1755/216 1169/1760/219 1168/1761/220 +f 1159/1758/218 1167/1762/221 1166/1766/225 +f 1152/1756/209 1159/1758/218 1151/1767/28 +f 1159/1758/218 1166/1766/225 1151/1767/28 +f 1150/1750/213 1151/1768/28 1158/1763/222 +f 1158/1763/222 1151/1768/28 1165/1769/226 +f 1170/1765/224 1137/1770/202 1138/1727/201 +f 1169/1760/219 1138/1727/201 1139/1723/200 +f 1168/1761/220 1139/1723/200 1140/1726/204 +f 1167/1771/221 1140/1726/204 1134/1772/203 +f 1166/1773/225 1134/1772/203 1135/1774/206 +f 1151/1775/28 1135/1774/206 1121/1776/37 +f 1121/1777/37 1165/1778/226 1151/1779/28 +f 1164/1780/223 1136/1781/205 1137/1770/202 +f 1178/1782/145 1185/1783/187 1177/1784/21 +f 1176/1785/143 1183/1786/188 1175/1787/24 +f 1174/1788/148 1181/1789/37 1173/1790/23 +f 1172/1791/147 1179/1792/189 1171/1793/22 +f 1171/1793/22 1186/1794/190 1178/1782/145 +f 1177/1784/21 1184/1795/191 1176/1785/143 +f 1175/1787/24 1182/1796/192 1174/1788/148 +f 1173/1797/23 1180/1798/193 1172/1791/147 +f 1179/1799/189 1188/1800/194 1187/1801/195 +f 1186/1794/190 1187/1801/195 1193/1802/196 +f 1184/1795/191 1192/1803/31 1191/1804/197 +f 1183/1805/188 1189/1806/198 1182/1807/192 +f 1186/1794/190 1192/1803/31 1185/1783/187 +f 1184/1795/191 1190/1808/199 1183/1805/188 +f 1193/1802/196 1199/1809/200 1192/1803/31 +f 1190/1808/199 1198/1810/201 1197/1811/202 +f 1188/1800/194 1194/1812/203 1187/1801/195 +f 1187/1801/195 1200/1813/204 1193/1802/196 +f 1191/1804/197 1199/1809/200 1198/1810/201 +f 1189/1806/198 1197/1811/202 1196/1814/205 +f 1182/1807/192 1189/1806/198 1181/1815/37 +f 1189/1806/198 1196/1814/205 1181/1815/37 +f 1180/1816/193 1181/1817/37 1188/1800/194 +f 1188/1800/194 1181/1817/37 1195/1818/206 +f 1208/1819/148 1215/1820/207 1207/1821/23 +f 1206/1822/147 1213/1823/208 1205/1824/22 +f 1203/1825/21 1212/1826/209 1211/1827/28 +f 1202/1828/143 1209/1829/210 1201/1830/24 +f 1201/1830/24 1216/1831/211 1208/1819/148 +f 1207/1821/23 1214/1832/212 1206/1822/147 +f 1204/1833/145 1213/1823/208 1212/1826/209 +f 1203/1834/21 1210/1835/213 1202/1828/143 +f 1210/1836/213 1217/1837/214 1209/1838/210 +f 1209/1838/210 1223/1839/215 1216/1831/211 +f 1214/1832/212 1222/1840/34 1221/1841/216 +f 1212/1842/209 1220/1843/217 1219/1844/218 +f 1216/1831/211 1222/1840/34 1215/1820/207 +f 1213/1845/208 1221/1841/216 1220/1843/217 +f 1223/1839/215 1229/1846/219 1222/1840/34 +f 1220/1843/217 1228/1847/220 1227/1848/221 +f 1217/1837/214 1225/1849/226 1224/1850/223 +f 1217/1837/214 1230/1851/224 1223/1839/215 +f 1221/1841/216 1229/1846/219 1228/1847/220 +f 1220/1843/217 1226/1852/225 1219/1844/218 +f 1212/1842/209 1219/1844/218 1211/1853/28 +f 1219/1844/218 1226/1852/225 1211/1853/28 +f 1210/1836/213 1211/1854/28 1218/1855/222 +f 1218/1855/222 1211/1854/28 1225/1849/226 +f 1230/1851/224 1197/1856/202 1198/1810/201 +f 1199/1809/200 1230/1851/224 1198/1810/201 +f 1228/1847/220 1199/1809/200 1200/1813/204 +f 1227/1857/221 1200/1813/204 1194/1858/203 +f 1226/1859/225 1194/1858/203 1195/1860/206 +f 1181/1861/37 1226/1859/225 1195/1860/206 +f 1196/1862/205 1211/1863/28 1181/1864/37 +f 1224/1865/223 1196/1862/205 1197/1856/202 +f 1238/1866/145 1245/1867/187 1237/1868/21 +f 1236/1869/143 1243/1870/188 1235/1871/24 +f 1234/1872/148 1241/1873/37 1233/1874/23 +f 1232/1875/147 1239/1876/189 1231/1877/22 +f 1231/1877/22 1246/1878/190 1238/1866/145 +f 1237/1868/21 1244/1879/191 1236/1869/143 +f 1235/1871/24 1242/1880/192 1234/1872/148 +f 1233/1881/23 1240/1882/193 1232/1875/147 +f 1239/1883/189 1248/1884/194 1247/1885/195 +f 1246/1878/190 1247/1885/195 1253/1886/196 +f 1244/1879/191 1252/1887/31 1251/1888/197 +f 1243/1889/188 1249/1890/198 1242/1891/192 +f 1246/1878/190 1252/1887/31 1245/1867/187 +f 1244/1879/191 1250/1892/199 1243/1889/188 +f 1253/1886/196 1259/1893/200 1252/1887/31 +f 1250/1892/199 1258/1894/201 1257/1895/202 +f 1248/1884/194 1254/1896/203 1247/1885/195 +f 1247/1885/195 1260/1897/204 1253/1886/196 +f 1251/1888/197 1259/1893/200 1258/1894/201 +f 1249/1890/198 1257/1895/202 1256/1898/205 +f 1242/1891/192 1249/1890/198 1241/1899/37 +f 1249/1890/198 1256/1898/205 1241/1899/37 +f 1240/1900/193 1241/1901/37 1248/1884/194 +f 1248/1884/194 1241/1901/37 1255/1902/206 +f 1268/1903/148 1275/1904/207 1267/1905/23 +f 1266/1906/147 1273/1907/208 1265/1908/22 +f 1264/1909/145 1271/1910/28 1263/1911/21 +f 1262/1912/143 1269/1913/210 1261/1914/24 +f 1261/1914/24 1276/1915/211 1268/1903/148 +f 1267/1905/23 1274/1916/212 1266/1906/147 +f 1265/1908/22 1272/1917/209 1264/1909/145 +f 1263/1918/21 1270/1919/213 1262/1912/143 +f 1270/1920/213 1277/1921/214 1269/1922/210 +f 1269/1922/210 1283/1923/215 1276/1915/211 +f 1274/1916/212 1282/1924/34 1281/1925/216 +f 1272/1926/209 1280/1927/217 1279/1928/218 +f 1276/1915/211 1282/1924/34 1275/1904/207 +f 1273/1929/208 1281/1925/216 1280/1927/217 +f 1283/1923/215 1289/1930/219 1282/1924/34 +f 1280/1927/217 1288/1931/220 1287/1932/221 +f 1278/1933/222 1284/1934/223 1277/1921/214 +f 1277/1921/214 1290/1935/224 1283/1923/215 +f 1281/1925/216 1289/1930/219 1288/1931/220 +f 1280/1927/217 1286/1936/225 1279/1928/218 +f 1272/1926/209 1279/1928/218 1271/1937/28 +f 1279/1928/218 1286/1936/225 1271/1937/28 +f 1270/1920/213 1271/1938/28 1278/1933/222 +f 1278/1933/222 1271/1938/28 1285/1939/226 +f 1290/1935/224 1257/1940/202 1258/1894/201 +f 1289/1930/219 1258/1894/201 1259/1893/200 +f 1288/1931/220 1259/1893/200 1260/1897/204 +f 1287/1941/221 1260/1897/204 1254/1942/203 +f 1286/1943/225 1254/1942/203 1255/1944/206 +f 1241/1945/37 1286/1943/225 1255/1944/206 +f 1241/1946/37 1285/1947/226 1271/1948/28 +f 1284/1949/223 1256/1950/205 1257/1940/202 +f 210/339/25 212/338/27 211/423/27 +f 212/338/27 214/366/28 213/421/28 +f 214/366/28 216/364/29 215/419/29 +f 216/364/29 218/363/21 217/417/21 +f 218/363/21 220/362/30 219/416/30 +f 220/362/30 222/360/31 221/414/31 +f 222/360/31 224/358/32 223/412/32 +f 224/358/32 226/357/26 225/410/26 +f 226/355/26 228/353/33 227/407/33 +f 228/353/33 230/352/34 229/405/34 +f 230/352/34 232/349/35 231/403/35 +f 232/349/35 234/347/23 233/401/23 +f 234/347/23 236/345/36 235/431/36 +f 236/345/36 238/343/37 237/429/37 +f 238/343/37 240/340/38 239/426/38 +f 240/340/38 210/339/25 209/425/25 +f 244/337/39 243/873/49 250/865/40 +f 310/393/44 311/875/52 303/869/45 +f 354/866/42 249/868/43 250/865/40 +f 324/874/50 311/875/52 310/393/44 +f 325/870/47 317/872/48 311/875/52 +f 249/879/43 256/883/58 257/880/54 +f 332/881/55 324/874/50 318/397/51 +f 251/796/41 250/865/40 257/880/54 +f 332/881/55 338/876/53 325/878/47 +f 256/887/58 263/891/64 264/888/60 +f 345/889/61 332/881/55 331/399/56 +f 258/368/57 257/880/54 264/888/60 +f 345/889/61 346/884/59 338/886/53 +f 263/892/64 270/898/68 271/893/65 +f 265/367/63 264/888/60 271/893/65 +f 355/899/69 345/889/61 339/400/62 +f 271/893/65 270/902/68 277/900/71 +f 356/894/66 346/896/59 345/889/61 +f 272/365/67 271/893/65 278/901/72 +f 370/904/74 356/907/66 355/899/69 +f 246/905/75 355/899/69 352/370/70 +f 279/361/73 278/901/72 285/908/77 +f 252/373/27 357/369/25 359/442/25 +f 259/375/28 252/373/27 253/441/27 +f 278/901/72 277/909/71 284/911/79 +f 266/377/29 259/375/28 260/438/28 +f 285/908/77 292/915/82 293/356/80 +f 273/379/21 266/377/29 267/436/29 +f 280/381/30 273/379/21 274/433/21 +f 284/912/79 291/914/81 292/915/82 +f 287/384/31 280/381/30 281/463/30 +f 293/356/80 292/915/82 299/916/83 +f 294/385/32 287/384/31 288/461/31 +f 301/387/26 294/385/32 295/458/32 +f 291/917/81 298/919/85 299/916/83 +f 308/390/33 301/389/26 302/457/26 +f 299/920/83 306/924/88 307/351/86 +f 315/392/34 308/390/33 309/456/33 +f 322/394/35 315/392/34 316/455/34 +f 298/921/85 305/923/87 306/924/88 +f 306/924/88 313/928/91 314/350/89 +f 329/395/23 322/394/35 323/452/35 +f 336/396/36 329/395/23 330/450/23 +f 305/925/87 312/927/90 313/928/91 +f 343/398/37 336/396/36 337/448/36 +f 350/371/38 343/398/37 344/446/37 +f 357/369/25 350/371/38 351/444/38 +f 312/929/90 319/931/92 320/932/93 +f 314/350/89 313/928/91 320/932/93 +f 319/933/92 326/936/97 327/934/95 +f 320/932/93 327/934/95 328/346/96 +f 327/934/95 326/939/97 333/937/98 +f 327/934/95 334/938/99 335/344/100 +f 333/941/98 340/944/103 341/942/101 +f 334/938/99 341/942/101 342/341/102 +f 341/942/101 340/947/103 347/945/104 +f 341/942/101 348/946/105 349/342/106 +f 347/949/104 354/951/42 243/873/49 +f 348/946/105 243/873/49 244/337/39 +f 317/952/48 304/954/107 303/869/45 +f 297/391/46 303/869/45 290/955/108 +f 304/956/107 296/958/110 290/955/108 +f 289/388/109 290/955/108 282/959/111 +f 290/955/108 296/960/110 283/962/113 +f 282/963/111 269/967/116 268/383/114 +f 282/963/111 283/964/113 275/966/115 +f 269/967/116 261/971/119 255/382/117 +f 269/967/116 275/968/115 262/970/118 +f 261/971/119 262/972/118 254/974/120 +f 261/971/119 248/975/121 247/380/122 +f 254/976/120 245/979/125 242/977/123 +f 248/975/121 242/977/123 241/378/124 +f 245/980/125 360/983/128 361/981/126 +f 242/977/123 361/981/126 362/376/127 +f 361/981/126 360/986/128 363/984/129 +f 361/981/126 364/985/130 365/374/131 +f 363/988/129 366/991/134 367/989/132 +f 364/985/130 367/989/132 368/372/133 +f 367/989/132 366/993/134 370/992/74 +f 367/989/132 246/905/75 358/798/76 +f 384/430/36 400/447/36 399/449/23 +f 377/413/31 393/464/31 392/465/30 +f 385/428/37 401/445/37 400/447/36 +f 378/411/32 394/462/32 393/464/31 +f 386/427/38 402/443/38 401/445/37 +f 379/800/26 395/459/26 394/462/32 +f 372/801/27 388/439/27 387/440/25 +f 371/424/25 387/440/25 402/443/38 +f 380/406/33 396/454/33 395/802/26 +f 373/422/28 389/437/28 388/439/27 +f 381/404/34 397/453/34 396/454/33 +f 374/420/29 390/434/29 389/437/28 +f 382/402/35 398/451/35 397/453/34 +f 375/418/21 391/435/21 390/434/29 +f 383/432/23 399/449/23 398/451/35 +f 376/415/30 392/465/30 391/435/21 +f 420/995/26 444/489/26 443/493/135 +f 434/997/136 458/486/136 448/485/22 +f 413/999/137 437/808/137 435/479/138 +f 427/1001/139 451/502/139 452/500/140 +f 421/1003/139 445/810/139 444/489/26 +f 414/1004/25 438/476/25 437/478/137 +f 428/1002/140 452/500/140 453/812/24 +f 422/1007/140 446/484/140 445/488/139 +f 415/1009/141 439/474/141 438/476/25 +f 429/1010/24 453/497/24 454/496/138 +f 411/1012/24 436/809/24 446/484/140 +f 416/1013/136 440/501/136 439/503/141 +f 430/1011/138 454/496/138 455/495/137 +f 423/1016/22 448/482/22 447/481/142 +f 417/1018/22 441/499/22 440/501/136 +f 431/1019/137 455/492/137 456/491/25 +f 424/1017/142 447/481/142 449/480/135 +f 418/1022/142 442/494/142 441/498/22 +f 432/1020/25 456/491/25 457/490/141 +f 425/1025/135 449/477/135 450/475/26 +f 419/1027/135 443/811/135 442/494/142 +f 433/1028/141 457/487/141 458/486/136 +f 412/1000/138 435/479/138 436/483/24 +f 426/1026/26 450/475/26 451/807/139 +f 572/1031/26 596/643/26 595/646/139 +f 586/1033/138 610/640/138 600/639/24 +f 565/1035/141 589/838/141 587/633/136 +f 579/1037/135 603/656/135 604/655/142 +f 573/1039/135 597/840/135 596/643/26 +f 566/1040/25 590/630/25 589/632/141 +f 580/1038/142 604/655/142 605/654/22 +f 574/1043/142 598/638/142 597/641/135 +f 567/1045/137 591/628/137 590/630/25 +f 581/1046/22 605/651/22 606/649/136 +f 563/1048/22 588/839/22 598/638/142 +f 568/1049/138 592/653/138 591/657/137 +f 582/1047/136 606/649/136 607/841/141 +f 575/1052/24 600/637/24 599/635/140 +f 569/1054/24 593/842/24 592/653/138 +f 583/1055/141 607/647/141 608/645/25 +f 576/1053/140 599/635/140 601/634/139 +f 570/1058/140 594/650/140 593/652/24 +f 584/1056/25 608/645/25 609/644/137 +f 577/1061/139 601/631/139 602/629/26 +f 571/1063/139 595/648/139 594/650/140 +f 585/1064/137 609/642/137 610/640/138 +f 564/1036/136 587/633/136 588/636/22 +f 578/1062/26 602/629/26 603/837/135 +f 650/1067/143 658/1079/150 657/1068/144 +f 648/1070/145 656/1080/151 655/1071/146 +f 646/1073/147 654/1081/152 653/1074/34 +f 644/1076/148 652/1083/153 651/1077/149 +f 643/1078/24 651/1077/149 658/1079/150 +f 649/1069/21 657/1068/144 656/1080/151 +f 647/1072/22 655/1071/146 654/1081/152 +f 645/1082/23 653/1951/34 652/1083/153 +f 651/1084/149 652/1102/153 660/1085/154 +f 658/1079/150 651/1084/149 659/1086/155 +f 656/1080/151 657/1068/144 664/1088/28 +f 655/1090/146 662/1093/159 661/1091/158 +f 658/1079/150 665/1087/156 664/1088/28 +f 656/1080/151 663/1089/157 662/1093/159 +f 665/1087/156 672/1099/165 671/1094/160 +f 662/1093/159 663/1089/157 670/1095/161 +f 659/1086/155 660/1085/154 667/1097/163 +f 659/1086/155 666/1098/164 672/1099/165 +f 664/1088/28 671/1094/160 670/1095/161 +f 662/1093/159 669/1096/162 668/1100/166 +f 680/1104/147 688/1116/170 687/1105/167 +f 678/1107/148 686/1117/171 685/1108/168 +f 676/1110/143 684/1118/172 683/1111/31 +f 674/1113/145 682/1120/173 681/1114/169 +f 673/1115/22 681/1114/169 688/1116/170 +f 679/1106/23 687/1105/167 686/1117/171 +f 677/1109/24 685/1108/168 684/1118/172 +f 675/1119/21 683/1952/31 682/1120/173 +f 682/1121/173 690/1140/186 689/1122/174 +f 688/1116/170 681/1123/169 689/1122/174 +f 686/1117/171 687/1105/167 694/1125/37 +f 684/1127/172 685/1130/168 692/1128/177 +f 688/1116/170 695/1124/175 694/1125/37 +f 685/1130/168 686/1117/171 693/1126/176 +f 695/1124/175 702/1136/184 701/1131/179 +f 692/1128/177 693/1126/176 700/1132/180 +f 689/1122/174 690/1140/186 697/1134/182 +f 689/1122/174 696/1135/183 702/1136/184 +f 693/1126/176 694/1125/37 701/1131/179 +f 691/1129/178 692/1128/177 699/1133/181 +f 702/1136/184 696/1150/183 669/1141/162 +f 671/1094/160 701/1131/179 702/1136/184 +f 700/1132/180 701/1131/179 671/1094/160 +f 699/1142/181 700/1132/180 672/1099/165 +f 698/1144/185 699/1142/181 666/1143/164 +f 653/1146/34 683/1953/31 698/1144/185 +f 653/1147/34 668/1151/166 697/1148/182 +f 696/1150/183 697/1148/182 668/1151/166 +f 712/1152/37 719/1164/37 720/1153/25 +f 718/1155/28 711/1154/25 720/1153/25 +f 716/1157/31 717/1165/21 725/1158/21 +f 715/1160/26 723/1954/26 722/1161/34 +f 713/1163/23 721/1168/23 719/1164/37 +f 717/1165/21 718/1155/28 726/1156/28 +f 716/1157/31 724/1159/31 723/1166/26 +f 714/1162/34 722/1161/34 721/1168/23 +f 728/1169/28 735/1181/28 736/1170/25 +f 727/1171/25 736/1170/25 742/1172/37 +f 732/1174/34 733/1182/23 741/1175/23 +f 731/1177/26 739/1955/26 738/1178/31 +f 729/1180/21 737/1185/21 735/1181/28 +f 733/1182/23 734/1173/37 742/1172/37 +f 732/1174/34 740/1176/34 739/1183/26 +f 730/1179/31 738/1178/31 737/1185/21 +f 758/1186/143 766/1198/150 765/1187/144 +f 756/1189/145 764/1199/151 763/1190/146 +f 754/1192/147 762/1200/152 761/1193/34 +f 752/1195/148 760/1202/153 759/1196/149 +f 751/1197/24 759/1196/149 766/1198/150 +f 757/1188/21 765/1187/144 764/1199/151 +f 755/1191/22 763/1190/146 762/1200/152 +f 753/1201/23 761/1956/34 760/1202/153 +f 759/1203/149 760/1221/153 768/1204/154 +f 766/1198/150 759/1203/149 767/1205/155 +f 764/1199/151 765/1187/144 772/1207/28 +f 763/1209/146 770/1212/159 769/1210/158 +f 766/1198/150 773/1206/156 772/1207/28 +f 764/1199/151 771/1208/157 770/1212/159 +f 773/1206/156 780/1218/165 779/1213/160 +f 770/1212/159 771/1208/157 778/1214/161 +f 767/1205/155 768/1204/154 775/1216/163 +f 767/1205/155 774/1217/164 780/1218/165 +f 771/1208/157 772/1207/28 779/1213/160 +f 770/1212/159 777/1215/162 776/1219/166 +f 788/1223/147 796/1235/170 795/1224/167 +f 786/1226/148 794/1236/171 793/1227/168 +f 784/1229/143 792/1237/172 791/1230/31 +f 782/1232/145 790/1239/173 789/1233/169 +f 781/1234/22 789/1233/169 796/1235/170 +f 787/1225/23 795/1224/167 794/1236/171 +f 785/1228/24 793/1227/168 792/1237/172 +f 783/1238/21 791/1957/31 790/1239/173 +f 790/1240/173 798/1259/186 797/1241/174 +f 789/1242/169 797/1241/174 803/1243/175 +f 794/1236/171 795/1224/167 802/1244/37 +f 792/1246/172 793/1249/168 800/1247/177 +f 796/1235/170 803/1243/175 802/1244/37 +f 793/1249/168 794/1236/171 801/1245/176 +f 803/1243/175 810/1255/184 809/1250/179 +f 800/1247/177 801/1245/176 808/1251/180 +f 797/1241/174 798/1259/186 805/1253/182 +f 797/1241/174 804/1254/183 810/1255/184 +f 801/1245/176 802/1244/37 809/1250/179 +f 800/1247/177 807/1252/181 806/1256/185 +f 810/1255/184 804/1269/183 777/1260/162 +f 779/1213/160 809/1250/179 810/1255/184 +f 808/1251/180 809/1250/179 779/1213/160 +f 807/1261/181 808/1251/180 780/1218/165 +f 806/1263/185 807/1261/181 774/1262/164 +f 761/1265/34 791/1958/31 806/1263/185 +f 761/1266/34 776/1270/166 805/1267/182 +f 804/1269/183 805/1267/182 776/1270/166 +f 818/1271/143 826/1283/150 825/1272/144 +f 816/1274/145 824/1284/151 823/1275/146 +f 814/1277/147 822/1285/152 821/1278/34 +f 812/1280/148 820/1287/153 819/1281/149 +f 811/1282/24 819/1281/149 826/1283/150 +f 817/1273/21 825/1272/144 824/1284/151 +f 815/1276/22 823/1275/146 822/1285/152 +f 813/1286/23 821/1959/34 820/1287/153 +f 819/1288/149 820/1305/153 828/1289/154 +f 826/1283/150 819/1288/149 827/1290/155 +f 824/1284/151 825/1272/144 832/1292/28 +f 823/1294/146 830/1297/159 829/1295/158 +f 825/1272/144 826/1283/150 833/1291/156 +f 824/1284/151 831/1293/157 830/1297/159 +f 833/1291/156 840/1302/165 839/1298/160 +f 830/1297/159 831/1293/157 838/1299/161 +f 828/1289/154 835/1307/163 834/1301/164 +f 827/1290/155 834/1301/164 840/1302/165 +f 831/1293/157 832/1292/28 839/1298/160 +f 829/1295/158 830/1297/159 837/1300/162 +f 848/1308/147 856/1320/170 855/1309/167 +f 846/1311/148 854/1321/171 853/1312/168 +f 844/1314/143 852/1322/172 851/1315/31 +f 842/1317/145 850/1324/173 849/1318/169 +f 841/1319/22 849/1318/169 856/1320/170 +f 847/1310/23 855/1309/167 854/1321/171 +f 845/1313/24 853/1312/168 852/1322/172 +f 843/1323/21 851/1960/31 850/1324/173 +f 850/1325/173 858/1338/186 857/1326/174 +f 849/1327/169 857/1326/174 863/1328/175 +f 854/1321/171 855/1309/167 862/1329/37 +f 852/1331/172 853/1334/168 860/1332/177 +f 856/1320/170 863/1328/175 862/1329/37 +f 853/1334/168 854/1321/171 861/1330/176 +f 863/1328/175 870/1340/184 869/1335/179 +f 860/1332/177 861/1330/176 868/1336/180 +f 858/1338/186 865/1344/182 864/1339/183 +f 857/1326/174 864/1339/183 870/1340/184 +f 861/1330/176 862/1329/37 869/1335/179 +f 859/1333/178 860/1332/177 867/1337/181 +f 870/1340/184 864/1355/183 837/1345/162 +f 839/1298/160 869/1335/179 870/1340/184 +f 868/1336/180 869/1335/179 839/1298/160 +f 867/1346/181 868/1336/180 840/1302/165 +f 866/1348/185 867/1346/181 834/1347/164 +f 851/1350/31 866/1348/185 835/1349/163 +f 821/1352/34 836/1356/166 865/1353/182 +f 864/1355/183 865/1353/182 836/1356/166 +f 878/1357/143 886/1369/150 885/1358/144 +f 876/1360/145 884/1370/151 883/1361/146 +f 874/1363/147 882/1371/152 881/1364/34 +f 872/1366/148 880/1373/153 879/1367/149 +f 871/1368/24 879/1367/149 886/1369/150 +f 877/1359/21 885/1358/144 884/1370/151 +f 875/1362/22 883/1361/146 882/1371/152 +f 873/1372/23 881/1961/34 880/1373/153 +f 879/1374/149 880/1391/153 888/1375/154 +f 886/1369/150 879/1374/149 887/1376/155 +f 885/1358/144 892/1382/28 891/1378/157 +f 883/1379/146 890/1383/159 889/1380/158 +f 886/1369/150 893/1377/156 892/1382/28 +f 884/1370/151 891/1378/157 890/1383/159 +f 893/1377/156 900/1388/165 899/1384/160 +f 890/1383/159 891/1378/157 898/1385/161 +f 888/1375/154 895/1393/163 894/1387/164 +f 887/1376/155 894/1387/164 900/1388/165 +f 891/1378/157 892/1382/28 899/1384/160 +f 889/1380/158 890/1383/159 897/1386/162 +f 908/1394/147 916/1406/170 915/1395/167 +f 906/1397/148 914/1407/171 913/1398/168 +f 904/1400/143 912/1408/172 911/1401/31 +f 902/1403/145 910/1410/173 909/1404/169 +f 901/1405/22 909/1404/169 916/1406/170 +f 907/1396/23 915/1395/167 914/1407/171 +f 905/1399/24 913/1398/168 912/1408/172 +f 903/1409/21 911/1962/31 910/1410/173 +f 910/1411/173 918/1424/186 917/1412/174 +f 909/1413/169 917/1412/174 923/1414/175 +f 914/1407/171 915/1395/167 922/1415/37 +f 912/1417/172 913/1420/168 920/1418/177 +f 916/1406/170 923/1414/175 922/1415/37 +f 913/1420/168 914/1407/171 921/1416/176 +f 923/1414/175 930/1426/184 929/1421/179 +f 920/1418/177 921/1416/176 928/1422/180 +f 918/1424/186 925/1430/182 924/1425/183 +f 917/1412/174 924/1425/183 930/1426/184 +f 921/1416/176 922/1415/37 929/1421/179 +f 920/1418/177 927/1423/181 926/1427/185 +f 930/1426/184 924/1440/183 897/1431/162 +f 899/1384/160 929/1421/179 930/1426/184 +f 928/1422/180 929/1421/179 899/1384/160 +f 927/1432/181 928/1422/180 900/1388/165 +f 926/1434/185 927/1432/181 894/1433/164 +f 881/1436/34 911/1963/31 926/1434/185 +f 896/1437/166 925/1964/182 911/1438/31 +f 924/1440/183 925/1964/182 896/1437/166 +f 938/1441/143 946/1453/150 945/1442/144 +f 936/1444/145 944/1454/151 943/1445/146 +f 934/1447/147 942/1455/152 941/1448/34 +f 932/1450/148 940/1457/153 939/1451/149 +f 931/1452/24 939/1451/149 946/1453/150 +f 937/1443/21 945/1442/144 944/1454/151 +f 935/1446/22 943/1445/146 942/1455/152 +f 933/1456/23 941/1965/34 940/1457/153 +f 939/1458/149 940/1476/153 948/1459/154 +f 946/1453/150 939/1458/149 947/1460/155 +f 944/1454/151 945/1442/144 952/1462/28 +f 943/1464/146 950/1467/159 949/1465/158 +f 946/1453/150 953/1461/156 952/1462/28 +f 944/1454/151 951/1463/157 950/1467/159 +f 953/1461/156 960/1473/165 959/1468/160 +f 950/1467/159 951/1463/157 958/1469/161 +f 947/1460/155 948/1459/154 955/1471/163 +f 947/1460/155 954/1472/164 960/1473/165 +f 951/1463/157 952/1462/28 959/1468/160 +f 950/1467/159 957/1470/162 956/1474/166 +f 968/1478/147 976/1490/170 975/1479/167 +f 966/1481/148 974/1491/171 973/1482/168 +f 964/1484/143 972/1492/172 971/1485/31 +f 962/1487/145 970/1494/173 969/1488/169 +f 961/1489/22 969/1488/169 976/1490/170 +f 967/1480/23 975/1479/167 974/1491/171 +f 965/1483/24 973/1482/168 972/1492/172 +f 963/1493/21 971/1966/31 970/1494/173 +f 970/1495/173 978/1514/186 977/1496/174 +f 969/1497/169 977/1496/174 983/1498/175 +f 974/1491/171 975/1479/167 982/1499/37 +f 972/1501/172 973/1504/168 980/1502/177 +f 976/1490/170 983/1498/175 982/1499/37 +f 973/1504/168 974/1491/171 981/1500/176 +f 983/1498/175 990/1510/184 989/1505/179 +f 980/1502/177 981/1500/176 988/1506/180 +f 977/1496/174 978/1514/186 985/1508/182 +f 977/1496/174 984/1509/183 990/1510/184 +f 981/1500/176 982/1499/37 989/1505/179 +f 980/1502/177 987/1507/181 986/1511/185 +f 990/1510/184 984/1525/183 957/1515/162 +f 959/1468/160 989/1505/179 990/1510/184 +f 988/1506/180 989/1505/179 959/1468/160 +f 987/1516/181 988/1506/180 960/1473/165 +f 986/1518/185 987/1516/181 954/1517/164 +f 971/1520/31 986/1518/185 955/1519/163 +f 941/1522/34 956/1526/166 985/1523/182 +f 984/1525/183 985/1523/182 956/1526/166 +f 998/1527/145 1006/1539/190 1005/1528/187 +f 996/1530/143 1004/1540/191 1003/1531/188 +f 994/1533/148 1002/1541/192 1001/1534/37 +f 992/1536/147 1000/1543/193 999/1537/189 +f 991/1538/22 999/1537/189 1006/1539/190 +f 997/1529/21 1005/1528/187 1004/1540/191 +f 995/1532/24 1003/1531/188 1002/1541/192 +f 993/1542/23 1001/1967/37 1000/1543/193 +f 999/1544/189 1000/1561/193 1008/1545/194 +f 1006/1539/190 999/1544/189 1007/1546/195 +f 1004/1540/191 1005/1528/187 1012/1548/31 +f 1003/1550/188 1010/1553/199 1009/1551/198 +f 1006/1539/190 1013/1547/196 1012/1548/31 +f 1004/1540/191 1011/1549/197 1010/1553/199 +f 1013/1547/196 1020/1558/204 1019/1554/200 +f 1010/1553/199 1011/1549/197 1018/1555/201 +f 1008/1545/194 1015/1563/206 1014/1557/203 +f 1007/1546/195 1014/1557/203 1020/1558/204 +f 1011/1549/197 1012/1548/31 1019/1554/200 +f 1009/1551/198 1010/1553/199 1017/1556/202 +f 1028/1564/148 1036/1576/211 1035/1565/207 +f 1026/1567/147 1034/1577/212 1033/1568/208 +f 1023/1570/21 1024/1578/145 1032/1571/209 +f 1022/1573/143 1030/1580/213 1029/1574/210 +f 1021/1575/24 1029/1574/210 1036/1576/211 +f 1027/1566/23 1035/1565/207 1034/1577/212 +f 1025/1569/22 1033/1568/208 1032/1571/209 +f 1023/1579/21 1031/1968/28 1030/1580/213 +f 1030/1581/213 1038/1594/222 1037/1582/214 +f 1029/1583/210 1037/1582/214 1043/1584/215 +f 1034/1577/212 1035/1565/207 1042/1585/34 +f 1032/1587/209 1033/1590/208 1040/1588/217 +f 1036/1576/211 1043/1584/215 1042/1585/34 +f 1033/1590/208 1034/1577/212 1041/1586/216 +f 1043/1584/215 1050/1596/224 1049/1591/219 +f 1040/1588/217 1041/1586/216 1048/1592/220 +f 1038/1594/222 1045/1600/226 1044/1595/223 +f 1037/1582/214 1044/1595/223 1050/1596/224 +f 1041/1586/216 1042/1585/34 1049/1591/219 +f 1039/1589/218 1040/1588/217 1047/1593/221 +f 1050/1596/224 1044/1610/223 1017/1601/202 +f 1049/1591/219 1050/1596/224 1018/1555/201 +f 1048/1592/220 1049/1591/219 1019/1554/200 +f 1047/1602/221 1048/1592/220 1020/1558/204 +f 1046/1604/225 1047/1602/221 1014/1603/203 +f 1001/1606/37 1031/1969/28 1046/1604/225 +f 1016/1607/205 1045/1970/226 1031/1608/28 +f 1044/1610/223 1045/1970/226 1016/1607/205 +f 1058/1611/145 1066/1623/190 1065/1612/187 +f 1056/1614/143 1064/1624/191 1063/1615/188 +f 1054/1617/148 1062/1625/192 1061/1618/37 +f 1052/1620/147 1060/1627/193 1059/1621/189 +f 1051/1622/22 1059/1621/189 1066/1623/190 +f 1057/1613/21 1065/1612/187 1064/1624/191 +f 1055/1616/24 1063/1615/188 1062/1625/192 +f 1053/1626/23 1061/1971/37 1060/1627/193 +f 1059/1628/189 1060/1645/193 1068/1629/194 +f 1066/1623/190 1059/1628/189 1067/1630/195 +f 1064/1624/191 1065/1612/187 1072/1632/31 +f 1063/1634/188 1070/1637/199 1069/1635/198 +f 1066/1623/190 1073/1631/196 1072/1632/31 +f 1064/1624/191 1071/1633/197 1070/1637/199 +f 1073/1631/196 1080/1641/204 1079/1638/200 +f 1071/1633/197 1078/1642/201 1077/1639/202 +f 1068/1629/194 1075/1647/206 1074/1640/203 +f 1067/1630/195 1074/1640/203 1080/1641/204 +f 1071/1633/197 1072/1632/31 1079/1638/200 +f 1069/1635/198 1070/1637/199 1077/1639/202 +f 1088/1648/148 1096/1660/211 1095/1649/207 +f 1086/1651/147 1094/1661/212 1093/1652/208 +f 1084/1654/145 1092/1662/209 1091/1655/28 +f 1082/1657/143 1090/1664/213 1089/1658/210 +f 1081/1659/24 1089/1658/210 1096/1660/211 +f 1087/1650/23 1095/1649/207 1094/1661/212 +f 1085/1653/22 1093/1652/208 1092/1662/209 +f 1083/1663/21 1091/1972/28 1090/1664/213 +f 1090/1665/213 1098/1678/222 1097/1666/214 +f 1089/1667/210 1097/1666/214 1103/1668/215 +f 1094/1661/212 1095/1649/207 1102/1669/34 +f 1092/1671/209 1093/1674/208 1100/1672/217 +f 1096/1660/211 1103/1668/215 1102/1669/34 +f 1093/1674/208 1094/1661/212 1101/1670/216 +f 1103/1668/215 1110/1680/224 1109/1675/219 +f 1100/1672/217 1101/1670/216 1108/1676/220 +f 1098/1678/222 1105/1684/226 1104/1679/223 +f 1103/1668/215 1097/1666/214 1104/1679/223 +f 1101/1670/216 1102/1669/34 1109/1675/219 +f 1100/1672/217 1107/1677/221 1106/1681/225 +f 1110/1680/224 1104/1694/223 1077/1685/202 +f 1079/1638/200 1109/1675/219 1110/1680/224 +f 1108/1676/220 1109/1675/219 1079/1638/200 +f 1107/1686/221 1108/1676/220 1080/1641/204 +f 1106/1688/225 1107/1686/221 1074/1687/203 +f 1061/1690/37 1091/1973/28 1106/1688/225 +f 1061/1691/37 1076/1695/205 1105/1692/226 +f 1104/1694/223 1105/1692/226 1076/1695/205 +f 1118/1696/145 1126/1708/190 1125/1697/187 +f 1116/1699/143 1124/1709/191 1123/1700/188 +f 1114/1702/148 1122/1710/192 1121/1703/37 +f 1112/1705/147 1120/1712/193 1119/1706/189 +f 1111/1707/22 1119/1706/189 1126/1708/190 +f 1117/1698/21 1125/1697/187 1124/1709/191 +f 1115/1701/24 1123/1700/188 1122/1710/192 +f 1113/1711/23 1121/1974/37 1120/1712/193 +f 1119/1713/189 1120/1730/193 1128/1714/194 +f 1126/1708/190 1119/1713/189 1127/1715/195 +f 1124/1709/191 1125/1697/187 1132/1717/31 +f 1123/1719/188 1130/1722/199 1129/1720/198 +f 1126/1708/190 1133/1716/196 1132/1717/31 +f 1124/1709/191 1131/1718/197 1130/1722/199 +f 1133/1716/196 1140/1726/204 1139/1723/200 +f 1131/1718/197 1138/1727/201 1137/1724/202 +f 1128/1714/194 1135/1732/206 1134/1725/203 +f 1127/1715/195 1134/1725/203 1140/1726/204 +f 1131/1718/197 1132/1717/31 1139/1723/200 +f 1129/1720/198 1130/1722/199 1137/1724/202 +f 1148/1733/148 1156/1745/211 1155/1734/207 +f 1146/1736/147 1154/1746/212 1153/1737/208 +f 1144/1739/145 1152/1747/209 1151/1740/28 +f 1142/1742/143 1150/1749/213 1149/1743/210 +f 1141/1744/24 1149/1743/210 1156/1745/211 +f 1147/1735/23 1155/1734/207 1154/1746/212 +f 1145/1738/22 1153/1737/208 1152/1747/209 +f 1143/1748/21 1151/1975/28 1150/1749/213 +f 1150/1750/213 1158/1763/222 1157/1751/214 +f 1149/1752/210 1157/1751/214 1163/1753/215 +f 1154/1746/212 1155/1734/207 1162/1754/34 +f 1152/1756/209 1153/1759/208 1160/1757/217 +f 1156/1745/211 1163/1753/215 1162/1754/34 +f 1153/1759/208 1154/1746/212 1161/1755/216 +f 1163/1753/215 1170/1765/224 1169/1760/219 +f 1160/1757/217 1161/1755/216 1168/1761/220 +f 1158/1763/222 1165/1769/226 1164/1764/223 +f 1157/1751/214 1164/1764/223 1170/1765/224 +f 1161/1755/216 1162/1754/34 1169/1760/219 +f 1159/1758/218 1160/1757/217 1167/1762/221 +f 1170/1765/224 1164/1780/223 1137/1770/202 +f 1169/1760/219 1170/1765/224 1138/1727/201 +f 1168/1761/220 1169/1760/219 1139/1723/200 +f 1167/1771/221 1168/1761/220 1140/1726/204 +f 1166/1773/225 1167/1771/221 1134/1772/203 +f 1151/1775/28 1166/1773/225 1135/1774/206 +f 1121/1777/37 1136/1781/205 1165/1778/226 +f 1164/1780/223 1165/1778/226 1136/1781/205 +f 1178/1782/145 1186/1794/190 1185/1783/187 +f 1176/1785/143 1184/1795/191 1183/1786/188 +f 1174/1788/148 1182/1796/192 1181/1789/37 +f 1172/1791/147 1180/1798/193 1179/1792/189 +f 1171/1793/22 1179/1792/189 1186/1794/190 +f 1177/1784/21 1185/1783/187 1184/1795/191 +f 1175/1787/24 1183/1786/188 1182/1796/192 +f 1173/1797/23 1181/1976/37 1180/1798/193 +f 1179/1799/189 1180/1816/193 1188/1800/194 +f 1186/1794/190 1179/1799/189 1187/1801/195 +f 1184/1795/191 1185/1783/187 1192/1803/31 +f 1183/1805/188 1190/1808/199 1189/1806/198 +f 1186/1794/190 1193/1802/196 1192/1803/31 +f 1184/1795/191 1191/1804/197 1190/1808/199 +f 1193/1802/196 1200/1813/204 1199/1809/200 +f 1190/1808/199 1191/1804/197 1198/1810/201 +f 1188/1800/194 1195/1818/206 1194/1812/203 +f 1187/1801/195 1194/1812/203 1200/1813/204 +f 1191/1804/197 1192/1803/31 1199/1809/200 +f 1189/1806/198 1190/1808/199 1197/1811/202 +f 1208/1819/148 1216/1831/211 1215/1820/207 +f 1206/1822/147 1214/1832/212 1213/1823/208 +f 1203/1825/21 1204/1833/145 1212/1826/209 +f 1202/1828/143 1210/1835/213 1209/1829/210 +f 1201/1830/24 1209/1829/210 1216/1831/211 +f 1207/1821/23 1215/1820/207 1214/1832/212 +f 1204/1833/145 1205/1824/22 1213/1823/208 +f 1203/1834/21 1211/1977/28 1210/1835/213 +f 1210/1836/213 1218/1855/222 1217/1837/214 +f 1209/1838/210 1217/1837/214 1223/1839/215 +f 1214/1832/212 1215/1820/207 1222/1840/34 +f 1212/1842/209 1213/1845/208 1220/1843/217 +f 1216/1831/211 1223/1839/215 1222/1840/34 +f 1213/1845/208 1214/1832/212 1221/1841/216 +f 1223/1839/215 1230/1851/224 1229/1846/219 +f 1220/1843/217 1221/1841/216 1228/1847/220 +f 1217/1837/214 1218/1855/222 1225/1849/226 +f 1217/1837/214 1224/1850/223 1230/1851/224 +f 1221/1841/216 1222/1840/34 1229/1846/219 +f 1220/1843/217 1227/1848/221 1226/1852/225 +f 1230/1851/224 1224/1865/223 1197/1856/202 +f 1199/1809/200 1229/1846/219 1230/1851/224 +f 1228/1847/220 1229/1846/219 1199/1809/200 +f 1227/1857/221 1228/1847/220 1200/1813/204 +f 1226/1859/225 1227/1857/221 1194/1858/203 +f 1181/1861/37 1211/1978/28 1226/1859/225 +f 1196/1862/205 1225/1979/226 1211/1863/28 +f 1224/1865/223 1225/1979/226 1196/1862/205 +f 1238/1866/145 1246/1878/190 1245/1867/187 +f 1236/1869/143 1244/1879/191 1243/1870/188 +f 1234/1872/148 1242/1880/192 1241/1873/37 +f 1232/1875/147 1240/1882/193 1239/1876/189 +f 1231/1877/22 1239/1876/189 1246/1878/190 +f 1237/1868/21 1245/1867/187 1244/1879/191 +f 1235/1871/24 1243/1870/188 1242/1880/192 +f 1233/1881/23 1241/1980/37 1240/1882/193 +f 1239/1883/189 1240/1900/193 1248/1884/194 +f 1246/1878/190 1239/1883/189 1247/1885/195 +f 1244/1879/191 1245/1867/187 1252/1887/31 +f 1243/1889/188 1250/1892/199 1249/1890/198 +f 1246/1878/190 1253/1886/196 1252/1887/31 +f 1244/1879/191 1251/1888/197 1250/1892/199 +f 1253/1886/196 1260/1897/204 1259/1893/200 +f 1250/1892/199 1251/1888/197 1258/1894/201 +f 1248/1884/194 1255/1902/206 1254/1896/203 +f 1247/1885/195 1254/1896/203 1260/1897/204 +f 1251/1888/197 1252/1887/31 1259/1893/200 +f 1249/1890/198 1250/1892/199 1257/1895/202 +f 1268/1903/148 1276/1915/211 1275/1904/207 +f 1266/1906/147 1274/1916/212 1273/1907/208 +f 1264/1909/145 1272/1917/209 1271/1910/28 +f 1262/1912/143 1270/1919/213 1269/1913/210 +f 1261/1914/24 1269/1913/210 1276/1915/211 +f 1267/1905/23 1275/1904/207 1274/1916/212 +f 1265/1908/22 1273/1907/208 1272/1917/209 +f 1263/1918/21 1271/1981/28 1270/1919/213 +f 1270/1920/213 1278/1933/222 1277/1921/214 +f 1269/1922/210 1277/1921/214 1283/1923/215 +f 1274/1916/212 1275/1904/207 1282/1924/34 +f 1272/1926/209 1273/1929/208 1280/1927/217 +f 1276/1915/211 1283/1923/215 1282/1924/34 +f 1273/1929/208 1274/1916/212 1281/1925/216 +f 1283/1923/215 1290/1935/224 1289/1930/219 +f 1280/1927/217 1281/1925/216 1288/1931/220 +f 1278/1933/222 1285/1939/226 1284/1934/223 +f 1277/1921/214 1284/1934/223 1290/1935/224 +f 1281/1925/216 1282/1924/34 1289/1930/219 +f 1280/1927/217 1287/1932/221 1286/1936/225 +f 1290/1935/224 1284/1949/223 1257/1940/202 +f 1289/1930/219 1290/1935/224 1258/1894/201 +f 1288/1931/220 1289/1930/219 1259/1893/200 +f 1287/1941/221 1288/1931/220 1260/1897/204 +f 1286/1943/225 1287/1941/221 1254/1942/203 +f 1241/1945/37 1271/1982/28 1286/1943/225 +f 1241/1946/37 1256/1950/205 1285/1947/226 +f 1284/1949/223 1285/1947/226 1256/1950/205 diff --git a/src/main/resources/assets/hbm/textures/models/machines/condenser.png b/src/main/resources/assets/hbm/textures/models/machines/condenser.png new file mode 100644 index 0000000000000000000000000000000000000000..b5bbd66b728211045a93347c3917975519de1aa9 GIT binary patch literal 1581 zcmZ{ke>9VO9LE>##X^x#Hd=HdH|a!X<}N?#;fe~mU7Dq&x-Nwcqs;9P<+S1IuB$pr z)34h_H}No8POhfp$0m(t8*Q;!+hTq-;XYe`)ajg_bDrn>&-3|wU!V8;{r#Tb8xEMm z*TP{in0ZKWPz1DUp*PRud+57#9N}#=W5G#-cN>m|ATb;xp&UM)nKC+=uz_ez?`*D>tXwQqLu*ItrC;Yx^3K| zwJ{a5Y(^s8GoEYZxb$d*HtyNicPBMdi>jhGTgVw>qY{sFu~>0@aXuVhf9c6!lMCL% z{kH)t3fr2!*_Q7Hw-dVw-5pc|sE5Oak+rbAxBFyyhSr$j)}3;%SES(>(W;u3WLFi7 zgFnD}-_Uy$tZwW*(v&I~N}K3O*Q8!FrAc@1UU#X zld|CTw3Oxe%+_UaW5hZd)fwVI(JVrUgVjzn5qeVQ;_rYg>tMzL4#*HGH@Q+_ zf!L8G0qH`$#7S#9-!wNoa0D)TZMGYlDp)>2Nb{piv=FGCH>FnyjTl4JNNuSTX zhMs9;O)705;rm`Xm*7yAWO1^U&!IiTNU72A!QUv>il{r;fgS&cqGvkKORDh&Ful7BaBf39Fx% zT^@LneDO9^O|5!^)$-hUjq)NaaxnB-*InPdw8#-vb2N^;&7yT=hBPRVXMKn%=s{zK zVUS9zSAbioA|suJbe)A4eaQ}fboHp~{bM?1ArYyN&U3lMSQ+b+OHj&mg~%M`LRM^2 z*eIq(vE<*tn)#M(a+w<7{G#{S0SS;_5J5+4QC8Ua^96i$hQ#NFp#@}3ggj%Sc)&eo z2NVw311KCVsT+HkOw%uPWZ^${s;--UCF4(EG4Pao<%>Egci-911h@?oj+4y`M zD!-ke7zON67%W@<2k+iBuO$y!VJxv^y`NO>Ce5z zocI!Fl3>vvRHAmPmBd6`SfNsY*XF_D$YK*p)e;4BCQYT`Pw@)73BrV#bg`8tH|(S6 z+H|ZiSi&#Kt$d+PAW(_}I9zlY0|yzkN$9?7{E Date: Thu, 28 Sep 2023 16:19:43 +0200 Subject: [PATCH 322/432] boring ahh GUI crap --- .../container/ContainerCraneExtractor.java | 3 +- .../container/ContainerDroneDock.java | 2 +- .../container/ContainerDroneProvider.java | 35 ++++++++- .../container/ContainerDroneRequester.java | 77 +++++++++++++++++++ .../hbm/inventory/gui/GUIDroneRequester.java | 69 +++++++++++++++++ .../network/TileEntityDroneRequester.java | 22 +++++- 6 files changed, 204 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/hbm/inventory/container/ContainerDroneRequester.java create mode 100644 src/main/java/com/hbm/inventory/gui/GUIDroneRequester.java diff --git a/src/main/java/com/hbm/inventory/container/ContainerCraneExtractor.java b/src/main/java/com/hbm/inventory/container/ContainerCraneExtractor.java index afab4ad24..dab69d73b 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCraneExtractor.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCraneExtractor.java @@ -1,5 +1,6 @@ package com.hbm.inventory.container; +import com.hbm.inventory.SlotPattern; import com.hbm.inventory.SlotUpgrade; import com.hbm.items.ModItems; import com.hbm.tileentity.network.TileEntityCraneExtractor; @@ -20,7 +21,7 @@ public class ContainerCraneExtractor extends Container { //filter for(int i = 0; i < 3; i++) { for(int j = 0; j < 3; j++) { - this.addSlotToContainer(new Slot(extractor, j + i * 3, 71 + j * 18, 17 + i * 18)); + this.addSlotToContainer(new SlotPattern(extractor, j + i * 3, 71 + j * 18, 17 + i * 18)); } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerDroneDock.java b/src/main/java/com/hbm/inventory/container/ContainerDroneDock.java index 63a49cba6..913ee1dd3 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerDroneDock.java +++ b/src/main/java/com/hbm/inventory/container/ContainerDroneDock.java @@ -10,7 +10,7 @@ public class ContainerDroneDock extends ContainerCrateBase { public ContainerDroneDock(InventoryPlayer invPlayer, TileEntityDroneDock tedf) { super(tedf); - for(int i = 0; i < 34; i++) { + for(int i = 0; i < 3; i++) { for(int j = 0; j < 3; j++) { this.addSlotToContainer(new Slot(tedf, j + i * 3, 62 + j * 18, 17 + i * 18)); } diff --git a/src/main/java/com/hbm/inventory/container/ContainerDroneProvider.java b/src/main/java/com/hbm/inventory/container/ContainerDroneProvider.java index 974162b38..19fd929ec 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerDroneProvider.java +++ b/src/main/java/com/hbm/inventory/container/ContainerDroneProvider.java @@ -2,15 +2,17 @@ package com.hbm.inventory.container; import com.hbm.tileentity.network.TileEntityDroneProvider; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; public class ContainerDroneProvider extends ContainerCrateBase { public ContainerDroneProvider(InventoryPlayer invPlayer, TileEntityDroneProvider tedf) { super(tedf); - for(int i = 0; i < 34; i++) { + for(int i = 0; i < 3; i++) { for(int j = 0; j < 3; j++) { this.addSlotToContainer(new Slot(tedf, j + i * 3, 62 + j * 18, 17 + i * 18)); } @@ -26,4 +28,35 @@ public class ContainerDroneProvider extends ContainerCrateBase { this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 161)); } } + + @Override + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(par2); + + if(var4 != null && var4.getHasStack()) { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if(par2 < 9) return null; //ignore filters + + if(par2 <= crate.getSizeInventory() - 1) { + if(!this.mergeItemStack(var5, crate.getSizeInventory(), this.inventorySlots.size(), true)) { + return null; + } + } else if(!this.mergeItemStack(var5, 9, crate.getSizeInventory(), false)) { + return null; + } + + if(var5.stackSize == 0) { + var4.putStack((ItemStack) null); + } else { + var4.onSlotChanged(); + } + + var4.onPickupFromSlot(p_82846_1_, var5); + } + + return var3; + } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerDroneRequester.java b/src/main/java/com/hbm/inventory/container/ContainerDroneRequester.java new file mode 100644 index 000000000..c629951d7 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerDroneRequester.java @@ -0,0 +1,77 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotPattern; +import com.hbm.tileentity.network.TileEntityDroneRequester; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerDroneRequester extends ContainerCrateBase { + + public ContainerDroneRequester(InventoryPlayer invPlayer, TileEntityDroneRequester tedf) { + super(tedf); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 3; j++) { + this.addSlotToContainer(new SlotPattern(tedf, j + i * 3, 98 + j * 18, 17 + i * 18)); + } + } + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 3; j++) { + this.addSlotToContainer(new Slot(tedf, j + i * 3 + 9, 26 + j * 18, 17 + i * 18)); + } + } + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 103 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 161)); + } + } + + @Override + public ItemStack slotClick(int index, int button, int mode, EntityPlayer player) { + + //L/R: 0 + //M3: 3 + //SHIFT: 1 + //DRAG: 5 + + if(index < 0 || index > 8) { + return super.slotClick(index, button, mode, player); + } + + Slot slot = this.getSlot(index); + + ItemStack ret = null; + ItemStack held = player.inventory.getItemStack(); + TileEntityDroneRequester requester = (TileEntityDroneRequester) crate; + + if(slot.getHasStack()) + ret = slot.getStack().copy(); + + if(button == 1 && mode == 0 && slot.getHasStack()) { + requester.nextMode(index); + return ret; + + } else { + slot.putStack(held != null ? held.copy() : null); + + if(slot.getHasStack()) { + slot.getStack().stackSize = 1; + } + + slot.onSlotChanged(); + requester.matcher.initPatternStandard(requester.getWorldObj(), slot.getStack(), index); + + return ret; + } + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIDroneRequester.java b/src/main/java/com/hbm/inventory/gui/GUIDroneRequester.java new file mode 100644 index 000000000..4fec012e5 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIDroneRequester.java @@ -0,0 +1,69 @@ +package com.hbm.inventory.gui; + +import java.util.Arrays; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerDroneRequester; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.network.TileEntityDroneRequester; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Slot; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.ResourceLocation; + +public class GUIDroneRequester extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/storage/gui_drone_requester.png"); + private TileEntityDroneRequester diFurnace; + + public GUIDroneRequester(InventoryPlayer invPlayer, TileEntityDroneRequester tedf) { + super(new ContainerDroneRequester(invPlayer, tedf)); + diFurnace = tedf; + + this.xSize = 176; + this.ySize = 186; + } + + @Override + public void drawScreen(int x, int y, float interp) { + super.drawScreen(x, y, interp); + + if(this.mc.thePlayer.inventory.getItemStack() == null) { + for(int i = 0; i < 9; ++i) { + Slot slot = (Slot) this.inventorySlots.inventorySlots.get(i); + + if(this.isMouseOverSlot(slot, x, y) && diFurnace.matcher.modes[i] != null) { + + String label = EnumChatFormatting.YELLOW + ""; + + switch(diFurnace.matcher.modes[i]) { + case "exact": label += "Item and meta match"; break; + case "wildcard": label += "Item matches"; break; + default: label += "Ore dict key matches: " + diFurnace.matcher.modes[i]; break; + } + + this.func_146283_a(Arrays.asList(new String[] { EnumChatFormatting.RED + "Right click to change", label }), x, y - 30); + } + } + } + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName()); + + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + } +} diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityDroneRequester.java b/src/main/java/com/hbm/tileentity/network/TileEntityDroneRequester.java index a6eb59b08..dee3d60d7 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityDroneRequester.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityDroneRequester.java @@ -1,10 +1,19 @@ package com.hbm.tileentity.network; +import com.hbm.inventory.container.ContainerDroneRequester; +import com.hbm.inventory.gui.GUIDroneRequester; import com.hbm.module.ModulePatternMatcher; +import com.hbm.tileentity.IGUIProvider; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; +import net.minecraft.world.World; -public class TileEntityDroneRequester extends TileEntityRequestNetworkContainer { +public class TileEntityDroneRequester extends TileEntityRequestNetworkContainer implements IGUIProvider { public ModulePatternMatcher matcher; @@ -49,4 +58,15 @@ public class TileEntityDroneRequester extends TileEntityRequestNetworkContainer public boolean canExtractItem(int i, ItemStack stack, int j) { return true; } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerDroneRequester(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIDroneRequester(player.inventory, this); + } } From d7ff947bbf12371d8b615047cfe6be4b8217f6e4 Mon Sep 17 00:00:00 2001 From: Bob Date: Thu, 28 Sep 2023 22:49:12 +0200 Subject: [PATCH 323/432] powered condenser --- src/main/java/com/hbm/blocks/ModBlocks.java | 3 + .../machine/MachineCondenserPowered.java | 82 +++++++++ src/main/java/com/hbm/main/ClientProxy.java | 1 + .../java/com/hbm/main/ResourceManager.java | 2 + .../render/tileentity/RenderCondenser.java | 81 +++++++++ .../java/com/hbm/tileentity/TileMappings.java | 1 + .../machine/TileEntityCondenser.java | 42 +++-- .../machine/TileEntityCondenserPowered.java | 165 ++++++++++++++++++ .../textures/models/machines/condenser.png | Bin 1581 -> 2699 bytes 9 files changed, 361 insertions(+), 16 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/machine/MachineCondenserPowered.java create mode 100644 src/main/java/com/hbm/render/tileentity/RenderCondenser.java create mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityCondenserPowered.java diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index fc09defc2..2e4a6cda9 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1018,6 +1018,7 @@ public class ModBlocks { public static Block machine_condenser; public static Block machine_tower_small; public static Block machine_tower_large; + public static Block machine_condenser_powered; public static Block machine_electrolyser; @@ -2301,6 +2302,7 @@ public class ModBlocks { machine_condenser = new MachineCondenser(Material.iron).setBlockName("machine_condenser").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":condenser"); machine_tower_small = new MachineTowerSmall(Material.iron).setBlockName("machine_tower_small").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_concrete"); machine_tower_large = new MachineTowerLarge(Material.iron).setBlockName("machine_tower_large").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":concrete"); + machine_condenser_powered = new MachineCondenserPowered(Material.iron).setBlockName("machine_condenser_powered").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel_machine"); machine_deuterium_extractor = new MachineDeuteriumExtractor(Material.iron).setBlockName("machine_deuterium_extractor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_deuterium_extractor_side"); machine_deuterium_tower = new DeuteriumTower(Material.iron).setBlockName("machine_deuterium_tower").setHardness(10.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":concrete"); @@ -3332,6 +3334,7 @@ public class ModBlocks { GameRegistry.registerBlock(machine_condenser, machine_condenser.getUnlocalizedName()); GameRegistry.registerBlock(machine_tower_small, machine_tower_small.getUnlocalizedName()); GameRegistry.registerBlock(machine_tower_large, machine_tower_large.getUnlocalizedName()); + register(machine_condenser_powered); GameRegistry.registerBlock(machine_deuterium_extractor, machine_deuterium_extractor.getUnlocalizedName()); GameRegistry.registerBlock(machine_deuterium_tower, machine_deuterium_tower.getUnlocalizedName()); GameRegistry.registerBlock(machine_liquefactor, ItemBlockBase.class, machine_liquefactor.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/machine/MachineCondenserPowered.java b/src/main/java/com/hbm/blocks/machine/MachineCondenserPowered.java new file mode 100644 index 000000000..3fa62d072 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineCondenserPowered.java @@ -0,0 +1,82 @@ +package com.hbm.blocks.machine; + +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ILookOverlay; +import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.machine.TileEntityCondenserPowered; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; + +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; +import net.minecraftforge.common.util.ForgeDirection; + +public class MachineCondenserPowered extends BlockDummyable implements ILookOverlay { + + public MachineCondenserPowered(Material mat) { + super(mat); + } + + @Override + public TileEntity createNewTileEntity(World p_149915_1_, int meta) { + if(meta >= 12) return new TileEntityCondenserPowered(); + if(meta >= 6) return new TileEntityProxyCombo().power().fluid(); + return null; + } + + @Override + public int[] getDimensions() { + return new int[] {2, 0, 1, 1, 3, 3}; + } + + @Override + public int getOffset() { + return 1; + } + + @Override + public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + + x = x + dir.offsetX * o; + z = z + dir.offsetZ * o; + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + this.makeExtra(world, x + rot.offsetX * 3, y + 1, z + rot.offsetZ * 3); + this.makeExtra(world, x - rot.offsetX * 3, y + 1, z - rot.offsetZ * 3); + this.makeExtra(world, x + dir.offsetX + rot.offsetX, y + 1, z + dir.offsetZ + rot.offsetZ); + this.makeExtra(world, x + dir.offsetX - rot.offsetX, y + 1, z + dir.offsetZ - rot.offsetZ); + this.makeExtra(world, x - dir.offsetX + rot.offsetX, y + 1, z - dir.offsetZ + rot.offsetZ); + this.makeExtra(world, x - dir.offsetX - rot.offsetX, y + 1, z - dir.offsetZ - rot.offsetZ); + } + + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + int[] pos = this.findCore(world, x, y, z); + + if(pos == null) + return; + + TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]); + + if(!(te instanceof TileEntityCondenserPowered)) return; + + TileEntityCondenserPowered tower = (TileEntityCondenserPowered) te; + List text = new ArrayList(); + + text.add(BobMathUtil.getShortNumber(tower.power) + "HE / " + BobMathUtil.getShortNumber(tower.maxPower) + "HE"); + + for(int i = 0; i < tower.tanks.length; i++) + text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + tower.tanks[i].getTankType().getName().toLowerCase(Locale.US)) + ": " + tower.tanks[i].getFill() + "/" + tower.tanks[i].getMaxFill() + "mB"); + + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } +} diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 19ef08ea7..2e295603d 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -255,6 +255,7 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityChungus.class, new RenderChungus()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTowerLarge.class, new RenderLargeTower()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTowerSmall.class, new RenderSmallTower()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCondenserPowered.class, new RenderCondenser()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityDeuteriumTower.class, new RenderDeuteriumTower()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineCatalyticCracker.class, new RenderCatalyticCracker()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineLiquefactor.class, new RenderLiquefactor()); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 18f7b0059..6077a2947 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -108,6 +108,7 @@ public class ResourceManager { //Cooling Tower public static final IModelCustom tower_small = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/tower_small.obj")); public static final IModelCustom tower_large = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/tower_large.obj")); + public static final IModelCustom condenser = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/condenser.obj")); //IGen public static final IModelCustom igen = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/igen.obj")); @@ -467,6 +468,7 @@ public class ResourceManager { //Cooling Tower public static final ResourceLocation tower_small_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/tower_small.png"); public static final ResourceLocation tower_large_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/tower_large.png"); + public static final ResourceLocation condenser_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/condenser.png"); //Deuterium Tower public static final ResourceLocation deuterium_tower_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/machine_deuterium_tower.png"); diff --git a/src/main/java/com/hbm/render/tileentity/RenderCondenser.java b/src/main/java/com/hbm/render/tileentity/RenderCondenser.java new file mode 100644 index 000000000..40af1e6dc --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderCondenser.java @@ -0,0 +1,81 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; +import com.hbm.tileentity.machine.TileEntityCondenserPowered; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderCondenser extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { + + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + + switch(tileEntity.getBlockMetadata() - 10) { + case 2: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(0, 0F, 1F, 0F); break; + } + + TileEntityCondenserPowered condenser = (TileEntityCondenserPowered) tileEntity; + + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.condenser_tex); + ResourceManager.condenser.renderPart("Condenser"); + + float rot = condenser.lastSpin + (condenser.spin - condenser.lastSpin) * f; + + GL11.glPushMatrix(); + GL11.glTranslated(0,1.5, 0); + GL11.glRotatef(rot, 1, 0, 0); + GL11.glTranslated(0, -1.5, 0); + ResourceManager.condenser.renderPart("Fan1"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0,1.5, 0); + GL11.glRotatef(rot, -1, 0, 0); + GL11.glTranslated(0, -1.5, 0); + ResourceManager.condenser.renderPart("Fan2"); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.machine_condenser_powered); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(-1, -1, 0); + GL11.glScaled(2.75, 2.75, 2.75); + } + public void renderCommon() { + GL11.glScaled(0.75, 0.75, 0.75); + GL11.glTranslated(0.5, 0, 0); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.condenser_tex); ResourceManager.condenser.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } + }; + } +} diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 36afb0545..3a52058d6 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -299,6 +299,7 @@ public class TileMappings { put(TileEntityCondenser.class, "tileentity_condenser"); put(TileEntityTowerSmall.class, "tileentity_cooling_tower_small"); put(TileEntityTowerLarge.class, "tileentity_cooling_tower_large"); + put(TileEntityCondenserPowered.class, "tileentity_condenser_powered"); put(TileEntityDeuteriumExtractor.class, "tileentity_deuterium_extractor"); put(TileEntityDeuteriumTower.class, "tileentity_deuterium_tower"); put(TileEntityMachineLiquefactor.class, "tileentity_liquefactor"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCondenser.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCondenser.java index 8b42674b0..3e4df7177 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCondenser.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCondenser.java @@ -42,35 +42,45 @@ public class TileEntityCondenser extends TileEntityLoadedBase implements IFluidA age = 0; } + NBTTagCompound data = new NBTTagCompound(); + this.tanks[0].writeToNBT(data, "0"); + if(this.waterTimer > 0) this.waterTimer--; - + int convert = Math.min(tanks[0].getFill(), tanks[1].getMaxFill() - tanks[1].getFill()); - tanks[0].setFill(tanks[0].getFill() - convert); - - if(convert > 0) - this.waterTimer = 20; - - int light = this.worldObj.getSavedLightValue(EnumSkyBlock.Sky, this.xCoord, this.yCoord, this.zCoord); - - if(TomSaveData.forWorld(worldObj).fire > 1e-5 && light > 7) { // Make both steam and water evaporate during firestorms... - tanks[1].setFill(tanks[1].getFill() - convert); - } else { - tanks[1].setFill(tanks[1].getFill() + convert); + if(extraCondition(convert)) { + tanks[0].setFill(tanks[0].getFill() - convert); + + if(convert > 0) + this.waterTimer = 20; + + int light = this.worldObj.getSavedLightValue(EnumSkyBlock.Sky, this.xCoord, this.yCoord, this.zCoord); + + if(TomSaveData.forWorld(worldObj).fire > 1e-5 && light > 7) { // Make both steam and water evaporate during firestorms... + tanks[1].setFill(tanks[1].getFill() - convert); + } else { + tanks[1].setFill(tanks[1].getFill() + convert); + } + + postConvert(convert); } + this.tanks[1].writeToNBT(data, "1"); + this.subscribeToAllAround(tanks[0].getTankType(), this); this.sendFluidToAll(tanks[1], this); fillFluidInit(tanks[1].getTankType()); - - NBTTagCompound data = new NBTTagCompound(); - this.tanks[0].writeToNBT(data, "0"); - this.tanks[1].writeToNBT(data, "1"); data.setByte("timer", (byte) this.waterTimer); + packExtra(data); INBTPacketReceiver.networkPack(this, data, 150); } } + + public void packExtra(NBTTagCompound data) { } + public boolean extraCondition(int convert) { return true; } + public void postConvert(int convert) { } @Override public void networkUnpack(NBTTagCompound nbt) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCondenserPowered.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCondenserPowered.java new file mode 100644 index 000000000..7bd58cf0a --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCondenserPowered.java @@ -0,0 +1,165 @@ +package com.hbm.tileentity.machine; + +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.util.fauxpointtwelve.DirPos; + +import api.hbm.energy.IEnergyUser; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityCondenserPowered extends TileEntityCondenser implements IEnergyUser { + + public long power; + public static final long maxPower = 10_000_000; + public float spin; + public float lastSpin; + + public TileEntityCondenserPowered() { + tanks = new FluidTank[2]; + tanks[0] = new FluidTank(Fluids.SPENTSTEAM, 100_000); + tanks[1] = new FluidTank(Fluids.WATER, 100_000); + } + + @Override + public void updateEntity() { + super.updateEntity(); + + if(worldObj.isRemote) { + + this.lastSpin = this.spin; + + if(this.waterTimer > 0) { + this.spin += 30F; + + if(this.spin >= 360F) { + this.spin -= 360F; + this.lastSpin -= 360F; + } + + if(worldObj.getTotalWorldTime() % 4 == 0) { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + worldObj.spawnParticle("cloud", xCoord + 0.5 + dir.offsetX * 1.5, yCoord + 1.5, zCoord + 0.5 + dir.offsetZ * 1.5, dir.offsetX * 0.1, 0, dir.offsetZ * 0.1); + worldObj.spawnParticle("cloud", xCoord + 0.5 - dir.offsetX * 1.5, yCoord + 1.5, zCoord + 0.5 - dir.offsetZ * 1.5, dir.offsetX * -0.1, 0, dir.offsetZ * -0.1); + } + } + } + } + + @Override + public void packExtra(NBTTagCompound data) { + data.setLong("power", power); + } + + @Override + public boolean extraCondition(int convert) { + return power >= convert * 10; + } + + @Override + public void postConvert(int convert) { + this.power -= convert * 10; + if(this.power < 0) this.power = 0; + } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + this.power = nbt.getLong("power"); + this.tanks[0].readFromNBT(nbt, "0"); + this.tanks[1].readFromNBT(nbt, "1"); + this.waterTimer = nbt.getByte("timer"); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.power = nbt.getLong("power"); + tanks[0].readFromNBT(nbt, "water"); + tanks[1].readFromNBT(nbt, "steam"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setLong("power", power); + tanks[0].writeToNBT(nbt, "water"); + tanks[1].writeToNBT(nbt, "steam"); + } + + @Deprecated @Override public void fillFluidInit(FluidType type) { } + + @Override + public void subscribeToAllAround(FluidType type, TileEntity te) { + for(DirPos pos : getConPos()) { + this.trySubscribe(this.tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + + @Override + public void sendFluidToAll(FluidTank tank, TileEntity te) { + for(DirPos pos : getConPos()) { + this.sendFluid(this.tanks[1], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + + public DirPos[] getConPos() { + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + return new DirPos[] { + new DirPos(xCoord + rot.offsetX * 4, yCoord + 1, zCoord + rot.offsetZ * 4, rot), + new DirPos(xCoord - rot.offsetX * 4, yCoord + 1, zCoord - rot.offsetZ * 4, rot.getOpposite()), + new DirPos(xCoord + dir.offsetX * 2 - rot.offsetX, yCoord + 1, zCoord + dir.offsetZ * 2 - rot.offsetZ, dir), + new DirPos(xCoord + dir.offsetX * 2 + rot.offsetX, yCoord + 1, zCoord + dir.offsetZ * 2 + rot.offsetZ, dir), + new DirPos(xCoord - dir.offsetX * 2 - rot.offsetX, yCoord + 1, zCoord - dir.offsetZ * 2 - rot.offsetZ, dir.getOpposite()), + new DirPos(xCoord - dir.offsetX * 2 + rot.offsetX, yCoord + 1, zCoord - dir.offsetZ * 2 + rot.offsetZ, dir.getOpposite()) + }; + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 3, + yCoord, + zCoord - 3, + xCoord + 4, + yCoord + 3, + zCoord + 4 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } + + @Override + public long getPower() { + return this.power; + } + + @Override + public void setPower(long power) { + this.power = power; + } + + @Override + public long getMaxPower() { + return this.maxPower; + } +} diff --git a/src/main/resources/assets/hbm/textures/models/machines/condenser.png b/src/main/resources/assets/hbm/textures/models/machines/condenser.png index b5bbd66b728211045a93347c3917975519de1aa9..cb3573db19150af373a3614189e9c578ffaf3ef9 100644 GIT binary patch literal 2699 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 Date: Fri, 29 Sep 2023 14:18:38 +0200 Subject: [PATCH 324/432] small fixes --- .../java/com/hbm/tileentity/TileMappings.java | 2 ++ .../tileentity/machine/TileEntityITER.java | 2 +- .../TileEntityMachineAssemblerBase.java | 19 +++++++++++++++++++ 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 3a52058d6..3e6c9cc6d 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -397,6 +397,8 @@ public class TileMappings { put(TileEntityDroneCrate.class, "tileentity_drone_crate"); put(TileEntityDroneWaypointRequest.class, "tileentity_drone_waypoint_request"); put(TileEntityDroneDock.class, "tileentity_drone_dock"); + put(TileEntityDroneProvider.class, "tileentity_drone_provider"); + put(TileEntityDroneRequester.class, "tileentity_drone_requester"); } private static void put(Class clazz, String... names) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java index 9802070ac..f7a078115 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java @@ -544,7 +544,7 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyUser int b = layout[ly][x][z]; switch(b) { - case 1: worldObj.setBlock(xCoord - width + x, yCoord + y - 2, zCoord - width + z, ModBlocks.fusion_conductor); break; + case 1: worldObj.setBlock(xCoord - width + x, yCoord + y - 2, zCoord - width + z, ModBlocks.fusion_conductor, 1, 3); break; case 2: worldObj.setBlock(xCoord - width + x, yCoord + y - 2, zCoord - width + z, ModBlocks.fusion_center); break; case 3: worldObj.setBlock(xCoord - width + x, yCoord + y - 2, zCoord - width + z, ModBlocks.fusion_motor); break; case 4: worldObj.setBlock(xCoord - width + x, yCoord + y - 2, zCoord - width + z, ModBlocks.reinforced_glass); break; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemblerBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemblerBase.java index b4bcd8648..836b03f1d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemblerBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemblerBase.java @@ -17,6 +17,7 @@ import api.hbm.energy.IEnergyUser; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; public abstract class TileEntityMachineAssemblerBase extends TileEntityMachineBase implements IEnergyUser, IGUIProvider { @@ -286,6 +287,24 @@ public abstract class TileEntityMachineAssemblerBase extends TileEntityMachineBa } } } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + this.power = nbt.getLong("power"); + if(nbt.hasKey("progress")) this.progress = nbt.getIntArray("progress"); + if(nbt.hasKey("maxProgress")) this.maxProgress = nbt.getIntArray("maxProgress"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + nbt.setLong("power", power); + nbt.setIntArray("progress", progress); + nbt.setIntArray("maxProgress", maxProgress); + } @Override public long getPower() { From ad2174b639d550f43683666b495c8153e801a700 Mon Sep 17 00:00:00 2001 From: Bob Date: Fri, 29 Sep 2023 23:07:47 +0200 Subject: [PATCH 325/432] =?UTF-8?q?=F0=93=82=A7=F0=93=85=83=F0=93=84=BF?= =?UTF-8?q?=F0=93=8B=B4=F0=93=88=8E=F0=93=83=AD=F0=93=85=93=20CURSE=20OF?= =?UTF-8?q?=20RAH=20=F0=93=85=93=F0=93=86=91=F0=93=85=B1=F0=93=86=93?= =?UTF-8?q?=F0=93=8E=BC=F0=93=85=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/hbm/entity/EntityMappings.java | 1 + .../hbm/entity/item/EntityRequestDrone.java | 37 ++++++ .../container/ContainerDroneProvider.java | 33 ------ .../container/ContainerDroneRequester.java | 31 +++++ .../inventory/recipes/AssemblerRecipes.java | 9 ++ src/main/java/com/hbm/main/ClientProxy.java | 1 + .../java/com/hbm/main/ModEventHandler.java | 2 + .../java/com/hbm/main/ResourceManager.java | 1 + .../entity/item/RenderDeliveryDrone.java | 5 +- .../tileentity/network/RequestNetwork.java | 97 +++++++++++++++ .../network/TileEntityDroneDock.java | 7 ++ .../network/TileEntityDroneProvider.java | 13 ++ .../network/TileEntityDroneRequester.java | 53 ++++++++- .../TileEntityDroneWaypointRequest.java | 6 + .../network/TileEntityRequestNetwork.java | 112 +++++++++--------- .../TileEntityRequestNetworkContainer.java | 2 - src/main/resources/assets/hbm/lang/de_DE.lang | 1 + src/main/resources/assets/hbm/lang/en_US.lang | 1 + 18 files changed, 317 insertions(+), 95 deletions(-) create mode 100644 src/main/java/com/hbm/entity/item/EntityRequestDrone.java create mode 100644 src/main/java/com/hbm/tileentity/network/RequestNetwork.java diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index 0b8d01653..4b2a6d849 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -175,6 +175,7 @@ public class EntityMappings { addEntity(EntityMovingItem.class, "entity_c_item", 1000); addEntity(EntityMovingPackage.class, "entity_c_package", 1000); addEntity(EntityDeliveryDrone.class, "entity_delivery_drone", 250, false); + addEntity(EntityRequestDrone.class, "entity_request_drone", 250, false); addEntity(EntityCloudTom.class, "entity_moonstone_blast", 1000); addEntity(EntityBeamVortex.class, "entity_vortex_beam", 1000); addEntity(EntityFireworks.class, "entity_firework_ball", 1000); diff --git a/src/main/java/com/hbm/entity/item/EntityRequestDrone.java b/src/main/java/com/hbm/entity/item/EntityRequestDrone.java new file mode 100644 index 000000000..6878f138e --- /dev/null +++ b/src/main/java/com/hbm/entity/item/EntityRequestDrone.java @@ -0,0 +1,37 @@ +package com.hbm.entity.item; + +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; + +public class EntityRequestDrone extends EntityDroneBase { + + public ItemStack heldItem; + + public EntityRequestDrone(World world) { + super(world); + } + + @Override + protected void readEntityFromNBT(NBTTagCompound nbt) { + + if(nbt.hasKey("held")) { + NBTTagCompound stack = nbt.getCompoundTag("held"); + this.heldItem = ItemStack.loadItemStackFromNBT(stack); + } + + this.dataWatcher.updateObject(10, nbt.getByte("app")); + } + + @Override + protected void writeEntityToNBT(NBTTagCompound nbt) { + + if(heldItem != null) { + NBTTagCompound stack = new NBTTagCompound(); + this.heldItem.writeToNBT(stack); + nbt.setTag("held", stack); + } + + nbt.setByte("app", this.dataWatcher.getWatchableObjectByte(10)); + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerDroneProvider.java b/src/main/java/com/hbm/inventory/container/ContainerDroneProvider.java index 19fd929ec..7b818dc8d 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerDroneProvider.java +++ b/src/main/java/com/hbm/inventory/container/ContainerDroneProvider.java @@ -2,10 +2,8 @@ package com.hbm.inventory.container; import com.hbm.tileentity.network.TileEntityDroneProvider; -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; public class ContainerDroneProvider extends ContainerCrateBase { @@ -28,35 +26,4 @@ public class ContainerDroneProvider extends ContainerCrateBase { this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 161)); } } - - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); - - if(var4 != null && var4.getHasStack()) { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - - if(par2 < 9) return null; //ignore filters - - if(par2 <= crate.getSizeInventory() - 1) { - if(!this.mergeItemStack(var5, crate.getSizeInventory(), this.inventorySlots.size(), true)) { - return null; - } - } else if(!this.mergeItemStack(var5, 9, crate.getSizeInventory(), false)) { - return null; - } - - if(var5.stackSize == 0) { - var4.putStack((ItemStack) null); - } else { - var4.onSlotChanged(); - } - - var4.onPickupFromSlot(p_82846_1_, var5); - } - - return var3; - } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerDroneRequester.java b/src/main/java/com/hbm/inventory/container/ContainerDroneRequester.java index c629951d7..d728d69c3 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerDroneRequester.java +++ b/src/main/java/com/hbm/inventory/container/ContainerDroneRequester.java @@ -36,6 +36,37 @@ public class ContainerDroneRequester extends ContainerCrateBase { } } + @Override + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(par2); + + if(var4 != null && var4.getHasStack()) { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if(par2 < 9) return null; //ignore filters + + if(par2 <= crate.getSizeInventory() - 1) { + if(!this.mergeItemStack(var5, crate.getSizeInventory(), this.inventorySlots.size(), true)) { + return null; + } + } else if(!this.mergeItemStack(var5, 9, crate.getSizeInventory(), false)) { + return null; + } + + if(var5.stackSize == 0) { + var4.putStack((ItemStack) null); + } else { + var4.onSlotChanged(); + } + + var4.onPickupFromSlot(p_82846_1_, var5); + } + + return var3; + } + @Override public ItemStack slotClick(int index, int button, int mode, EntityPlayer player) { diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 0e6afcdb5..6776c80ac 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -571,6 +571,15 @@ public class AssemblerRecipes { new ComparableStack(ModItems.bolt_compound, 16), new ComparableStack(ModItems.pipes_steel, 3) }, 600); + + makeRecipe(new ComparableStack(ModBlocks.machine_condenser_powered, 1), new AStack[] { + new OreDictStack(STEEL.plateCast(), 16), + new OreDictStack(ANY_RESISTANTALLOY.ingot(), 16), + new OreDictStack(CU.plate528(), 16), + new ComparableStack(ModItems.motor_desh, 3), + new ComparableStack(ModItems.pipes_steel, 4), + new OreDictStack(Fluids.LUBRICANT.getDict(1_000), 4) + }, 600); makeRecipe(new ComparableStack(ModItems.pellet_chlorophyte, 2), new AStack[] { new ComparableStack(ModItems.powder_chlorophyte, 1), diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 2e295603d..ea4100179 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -715,6 +715,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityMovingPackage.class, new RenderMovingPackage()); RenderingRegistry.registerEntityRenderingHandler(EntityTNTPrimedBase.class, new RenderTNTPrimedBase()); RenderingRegistry.registerEntityRenderingHandler(EntityDeliveryDrone.class, new RenderDeliveryDrone()); + RenderingRegistry.registerEntityRenderingHandler(EntityRequestDrone.class, new RenderDeliveryDrone()); RenderingRegistry.registerEntityRenderingHandler(EntityFallingBlockNT.class, new RenderFallingBlockNT()); //mobs RenderingRegistry.registerEntityRenderingHandler(EntityCreeperNuclear.class, new RenderCreeperUniversal(RefStrings.MODID + ":" + "textures/entity/creeper.png", RefStrings.MODID + ":" + "textures/entity/creeper_armor.png").setSwellMod(5F)); diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index 9b99a5f7a..e88e39b82 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -67,6 +67,7 @@ import com.hbm.packet.PlayerInformPacket; import com.hbm.potion.HbmPotion; import com.hbm.saveddata.AuxSavedData; import com.hbm.tileentity.network.RTTYSystem; +import com.hbm.tileentity.network.RequestNetwork; import com.hbm.util.AchievementHandler; import com.hbm.util.ArmorRegistry; import com.hbm.util.ArmorUtil; @@ -1097,6 +1098,7 @@ public class ModEventHandler { if(event.phase == event.phase.START) { RTTYSystem.updateBroadcastQueue(); + RequestNetwork.updateEntries(); } } diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 6077a2947..c7a57a2a6 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -1374,6 +1374,7 @@ public class ResourceManager { //Drone public static final ResourceLocation delivery_drone_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/drone.png"); public static final ResourceLocation delivery_drone_express_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/drone_express.png"); + public static final ResourceLocation delivery_drone_request_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/drone_request.png"); //ISBRHs public static final IModelCustom scaffold = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/scaffold.obj")); diff --git a/src/main/java/com/hbm/render/entity/item/RenderDeliveryDrone.java b/src/main/java/com/hbm/render/entity/item/RenderDeliveryDrone.java index 4cf9e844c..386235f40 100644 --- a/src/main/java/com/hbm/render/entity/item/RenderDeliveryDrone.java +++ b/src/main/java/com/hbm/render/entity/item/RenderDeliveryDrone.java @@ -3,6 +3,7 @@ package com.hbm.render.entity.item; import org.lwjgl.opengl.GL11; import com.hbm.entity.item.EntityDeliveryDrone; +import com.hbm.entity.item.EntityRequestDrone; import com.hbm.main.ResourceManager; import net.minecraft.client.renderer.entity.Render; @@ -20,7 +21,9 @@ public class RenderDeliveryDrone extends Render { GL11.glDisable(GL11.GL_CULL_FACE); GL11.glShadeModel(GL11.GL_SMOOTH); - if(entity.getDataWatcher().getWatchableObjectByte(11) == 1) + if(entity instanceof EntityRequestDrone) { + bindTexture(ResourceManager.delivery_drone_request_tex); + } else if(entity.getDataWatcher().getWatchableObjectByte(11) == 1) bindTexture(ResourceManager.delivery_drone_express_tex); else bindTexture(ResourceManager.delivery_drone_tex); diff --git a/src/main/java/com/hbm/tileentity/network/RequestNetwork.java b/src/main/java/com/hbm/tileentity/network/RequestNetwork.java new file mode 100644 index 000000000..b8578d35d --- /dev/null +++ b/src/main/java/com/hbm/tileentity/network/RequestNetwork.java @@ -0,0 +1,97 @@ +package com.hbm.tileentity.network; + +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map.Entry; +import java.util.Set; + +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import net.minecraft.item.ItemStack; +import net.minecraft.world.ChunkCoordIntPair; +import net.minecraft.world.World; + +public class RequestNetwork { + + private static int timer = 0; + public static HashMap>> activeWaypoints = new HashMap(); + public static final int maxAge = 2_000; + + public static void updateEntries() { + + if(timer < 0) { + timer--; + return; + } + + timer = 20; + + Iterator worldIt = activeWaypoints.entrySet().iterator(); + + // iterate over each dim + while(worldIt.hasNext()) { + Entry>> worldEntry = (Entry) worldIt.next(); + Iterator chunkIt = worldEntry.getValue().entrySet().iterator(); + + // iterate over each chunk + while(chunkIt.hasNext()) { + + Entry> chunkEntry = (Entry) chunkIt.next(); + Iterator pathIt = chunkEntry.getValue().iterator(); + + // iterate over each path node + while(pathIt.hasNext()) { + PathNode node = pathIt.next(); + + // if the lease timestamp is too far back, time out the node + if(node.lease < System.currentTimeMillis() - maxAge) { + pathIt.remove(); + } + } + + // if no more nodes exist, delete the chunk entry + if(chunkEntry.getValue().size() == 0) chunkIt.remove(); + } + + // if no more chunk entries exist, delete the world entry + if(worldEntry.getValue().size() == 0) worldIt.remove(); + + // cleaning up all the entries if the lists are empty ensures that even if a different save is loaded, + // the positions will eventually time out leading to all the old save crap being deleted, preventing a memory leak. + // it's probably an inconsequential memory leak but i'd rather we don't + } + + } + + /** Generic path node, contains nothing but a position and a timestamp */ + public static class PathNode { + public BlockPos pos; + public long lease; + public PathNode(BlockPos pos) { + this.pos = pos; + this.lease = System.currentTimeMillis(); + } + @Override public int hashCode() { return pos.hashCode(); } + @Override public boolean equals(Object o) { return pos.equals(o); } + } + + /** Node created by providers, lists available items */ + public static class OfferNode extends PathNode { + public List offer; + public OfferNode(BlockPos pos, List offer) { + super(pos); + this.offer = offer; + } + } + + /** Node created by requesters, lists requested AStacks */ + public static class RequestNode extends PathNode { + public List request; + public RequestNode(BlockPos pos, List request) { + super(pos); + this.request = request; + } + } +} diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityDroneDock.java b/src/main/java/com/hbm/tileentity/network/TileEntityDroneDock.java index 12e36938b..0ffc3e884 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityDroneDock.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityDroneDock.java @@ -3,6 +3,8 @@ package com.hbm.tileentity.network; import com.hbm.inventory.container.ContainerDroneDock; import com.hbm.inventory.gui.GUIDroneDock; import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.network.RequestNetwork.PathNode; +import com.hbm.util.fauxpointtwelve.BlockPos; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -37,4 +39,9 @@ public class TileEntityDroneDock extends TileEntityRequestNetworkContainer imple public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIDroneDock(player.inventory, this); } + + @Override + public PathNode createNode(BlockPos pos) { + return new PathNode(pos); + } } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityDroneProvider.java b/src/main/java/com/hbm/tileentity/network/TileEntityDroneProvider.java index ab9860d64..83a71dc40 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityDroneProvider.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityDroneProvider.java @@ -1,8 +1,14 @@ package com.hbm.tileentity.network; +import java.util.ArrayList; +import java.util.List; + import com.hbm.inventory.container.ContainerDroneProvider; import com.hbm.inventory.gui.GUIDroneProvider; import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.network.RequestNetwork.OfferNode; +import com.hbm.tileentity.network.RequestNetwork.PathNode; +import com.hbm.util.fauxpointtwelve.BlockPos; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -48,4 +54,11 @@ public class TileEntityDroneProvider extends TileEntityRequestNetworkContainer i public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIDroneProvider(player.inventory, this); } + + @Override + public PathNode createNode(BlockPos pos) { + List offer = new ArrayList(); + for(ItemStack stack : slots) if(stack != null) offer.add(stack.copy()); + return new OfferNode(pos, offer); + } } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityDroneRequester.java b/src/main/java/com/hbm/tileentity/network/TileEntityDroneRequester.java index dee3d60d7..a58724d26 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityDroneRequester.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityDroneRequester.java @@ -1,9 +1,19 @@ package com.hbm.tileentity.network; +import java.util.ArrayList; +import java.util.List; + +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.container.ContainerDroneRequester; import com.hbm.inventory.gui.GUIDroneRequester; import com.hbm.module.ModulePatternMatcher; import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.INBTPacketReceiver; +import com.hbm.tileentity.network.RequestNetwork.PathNode; +import com.hbm.tileentity.network.RequestNetwork.RequestNode; +import com.hbm.util.fauxpointtwelve.BlockPos; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -11,9 +21,11 @@ import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; +import net.minecraftforge.oredict.OreDictionary; -public class TileEntityDroneRequester extends TileEntityRequestNetworkContainer implements IGUIProvider { +public class TileEntityDroneRequester extends TileEntityRequestNetworkContainer implements INBTPacketReceiver, IGUIProvider { public ModulePatternMatcher matcher; @@ -27,6 +39,23 @@ public class TileEntityDroneRequester extends TileEntityRequestNetworkContainer return "container.droneRequester"; } + @Override + public void updateEntity() { + super.updateEntity(); + + if(!worldObj.isRemote) { + + NBTTagCompound data = new NBTTagCompound(); + this.matcher.writeToNBT(data); + INBTPacketReceiver.networkPack(this, data, 15); + } + } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + this.matcher.readFromNBT(nbt); + } + public boolean matchesFilter(ItemStack stack) { for(int i = 0; i < 9; i++) { @@ -69,4 +98,26 @@ public class TileEntityDroneRequester extends TileEntityRequestNetworkContainer public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIDroneRequester(player.inventory, this); } + + @Override + public PathNode createNode(BlockPos pos) { + List request = new ArrayList(); + for(int i = 0; i < 9; i++) { + ItemStack filter = slots[i]; + if(filter == null) continue; + String mode = this.matcher.modes[i]; + AStack aStack = null; + + if(ModulePatternMatcher.MODE_EXACT.equals(mode)) { + aStack = new ComparableStack(filter).makeSingular(); + } else if(ModulePatternMatcher.MODE_WILDCARD.equals(mode)) { + aStack = new ComparableStack(filter.getItem(), 1, OreDictionary.WILDCARD_VALUE); + } else { + aStack = new OreDictStack(mode); + } + + request.add(aStack); + } + return new RequestNode(pos, request); + } } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityDroneWaypointRequest.java b/src/main/java/com/hbm/tileentity/network/TileEntityDroneWaypointRequest.java index a4135d3b9..e196b17bd 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityDroneWaypointRequest.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityDroneWaypointRequest.java @@ -1,5 +1,6 @@ package com.hbm.tileentity.network; +import com.hbm.tileentity.network.RequestNetwork.PathNode; import com.hbm.util.fauxpointtwelve.BlockPos; import net.minecraft.nbt.NBTTagCompound; @@ -34,4 +35,9 @@ public class TileEntityDroneWaypointRequest extends TileEntityRequestNetwork { nbt.setInteger("height", height); } + + @Override + public PathNode createNode(BlockPos pos) { + return new PathNode(pos); + } } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetwork.java b/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetwork.java index ad2e4d361..3ccf46d65 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetwork.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetwork.java @@ -1,10 +1,11 @@ package com.hbm.tileentity.network; -import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; +import java.util.Iterator; import java.util.Set; +import com.hbm.tileentity.network.RequestNetwork.PathNode; import com.hbm.util.ParticleUtil; import com.hbm.util.fauxpointtwelve.BlockPos; @@ -24,16 +25,11 @@ import net.minecraft.world.World; * @author hbm * */ -public class TileEntityRequestNetwork extends TileEntity { - - public static HashMap>> activeWaypoints = new HashMap(); - public static HashMap lastActive = new HashMap(); - public static long lastWipe = 0; +public abstract class TileEntityRequestNetwork extends TileEntity { - public Set reachableNodes = new HashSet(); - public Set knownNodes = new HashSet(); + public Set reachableNodes = new HashSet(); + public Set knownNodes = new HashSet(); public static final int maxRange = 24; - public static final int maxAge = 2_000; @Override public void updateEntity() { @@ -42,53 +38,59 @@ public class TileEntityRequestNetwork extends TileEntity { if(worldObj.getTotalWorldTime() % 20 == 0) { BlockPos pos = getCoord(); - push(worldObj, pos); + // push new node + push(worldObj, createNode(pos)); - for(BlockPos known : knownNodes) { + // remove known nodes that no longer exist + // since we can assume a sane number of nodes to exist at any given time, we can run this check in full every second + Iterator it = knownNodes.iterator(); + Set localNodes = this.getAllLocalNodes(worldObj, xCoord, zCoord, 2); // this bit may spiral into multiple nested hashtable lookups but it's limited to only a few chunks so it shouldn't be an issue + while(it.hasNext()) { + PathNode node = it.next(); + if(!localNodes.contains(node)) { + reachableNodes.remove(node); + it.remove(); + } + } + + // draw debug crap + for(PathNode known : knownNodes) { ParticleUtil.spawnDebugLine(worldObj, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, - (known.getX() - pos.getX()) / 2D, (known.getY() - pos.getY()) / 2D, (known.getZ() - pos.getZ()) / 2D, + (known.pos.getX() - pos.getX()) / 2D, (known.pos.getY() - pos.getY()) / 2D, (known.pos.getZ() - pos.getZ()) / 2D, reachableNodes.contains(known) ? 0x00ff00 : 0xff0000); } + //both following checks run the `hasPath` function which is costly, so it only runs one op at a time + //rescan known nodes - if(worldObj.getTotalWorldTime() % 40 == 0 && knownNodes.size() > 0) { + for(PathNode known : knownNodes) { - BlockPos node = (BlockPos) new ArrayList(knownNodes).get(knownNodes.size() > 1 ? worldObj.rand.nextInt(knownNodes.size() - 1) : 0); - - if(node != null) { - - Long timestamp = lastActive.get(node); - - if(timestamp == null || timestamp < System.currentTimeMillis() - maxAge) { - knownNodes.remove(node); - reachableNodes.remove(node); - lastActive.remove(node); - } else if(!hasPath(worldObj, pos, node)) { - reachableNodes.remove(node); - } else { - reachableNodes.add(node); - } + if(!hasPath(worldObj, pos, known.pos)) { + reachableNodes.remove(known); + } else { + reachableNodes.add(known); } + } //discover new nodes - } else { - - Set nodes = getAllLocalNodes(worldObj, pos.getX(), pos.getZ()); - - for(BlockPos node : nodes) { + int newNodeLimit = 5; + for(PathNode node : localNodes) { - if(!knownNodes.contains(node) && !node.equals(pos)) { - knownNodes.add(node); - if(hasPath(worldObj, pos, node)) reachableNodes.add(node); - break; - } + if(!knownNodes.contains(node) && !node.equals(pos)) { + newNodeLimit--; + knownNodes.add(node); + if(hasPath(worldObj, pos, node.pos)) reachableNodes.add(node); } + + if(newNodeLimit <= 0) break; } } } } + public abstract PathNode createNode(BlockPos pos); + public BlockPos getCoord() { return new BlockPos(xCoord, yCoord + 1, zCoord); } @@ -120,26 +122,24 @@ public class TileEntityRequestNetwork extends TileEntity { * @param y * @param z */ - public static void push(World world, BlockPos pos) { + public static void push(World world, PathNode node) { - HashMap> coordMap = activeWaypoints.get(world); + HashMap> coordMap = RequestNetwork.activeWaypoints.get(world); if(coordMap == null) { coordMap = new HashMap(); - activeWaypoints.put(world, coordMap); + RequestNetwork.activeWaypoints.put(world, coordMap); } - ChunkCoordIntPair chunkPos = new ChunkCoordIntPair(pos.getX() >> 4, pos.getZ() >> 4); - Set posList = coordMap.get(chunkPos); + ChunkCoordIntPair chunkPos = new ChunkCoordIntPair(node.pos.getX() >> 4, node.pos.getZ() >> 4); + Set posList = coordMap.get(chunkPos); if(posList == null) { posList = new HashSet(); coordMap.put(chunkPos, posList); } - posList.add(pos); - - lastActive.put(pos, System.currentTimeMillis()); + posList.add(node); } /** @@ -150,28 +150,24 @@ public class TileEntityRequestNetwork extends TileEntity { * @param z * @return */ - public static Set getAllLocalNodes(World world, int x, int z) { + public static Set getAllLocalNodes(World world, int x, int z, int range) { - Set nodes = new HashSet(); + Set nodes = new HashSet(); x >>= 4; z >>= 4; - HashMap> coordMap = activeWaypoints.get(world); + HashMap> coordMap = RequestNetwork.activeWaypoints.get(world); if(coordMap == null) return nodes; - for(int i = -2; i <= 2; i++) { - for(int j = -2; j <= 2; j++) { + for(int i = -range; i <= range; i++) { + for(int j = -range; j <= range; j++) { - Set posList = coordMap.get(new ChunkCoordIntPair(x + i, z + j)); + Set nodeList = coordMap.get(new ChunkCoordIntPair(x + i, z + j)); - if(posList != null) for(BlockPos node : posList) { - Long timestamp = lastActive.get(node); - - if(timestamp != null && timestamp >= System.currentTimeMillis() - maxAge) { - nodes.add(node); - } + if(nodeList != null) for(PathNode node : nodeList) { + nodes.add(node); } } } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetworkContainer.java b/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetworkContainer.java index 4870bf2b4..71fc659f9 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetworkContainer.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetworkContainer.java @@ -111,8 +111,6 @@ public abstract class TileEntityRequestNetworkContainer extends TileEntityReques if(!worldObj.isRemote) PacketDispatcher.wrapper.sendToAllAround(new NBTPacket(nbt, xCoord, yCoord, zCoord), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range)); } - public void networkUnpack(NBTTagCompound nbt) { } - @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index c06ee2508..27a103ca0 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -4026,6 +4026,7 @@ tile.machine_combine_factory.name=CMB-Stahl Hochofen tile.machine_combustion_engine.name=Industrieller Verbrennungsmotor tile.machine_compressor.name=Kompressor tile.machine_condenser.name=Dampfkondensierer +tile.machine_condenser_powered.name=Hochleistungs-Dampfkondensierer tile.machine_controller.name=Reaktorfernsteuerung tile.machine_converter_he_rf.name=HE zu RF Konverter tile.machine_converter_rf_he.name=RF zu HE Konverter diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 17a91ee2f..06a1b2a17 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -4999,6 +4999,7 @@ tile.machine_combine_factory.name=CMB Steel Furnace tile.machine_combustion_engine.name=Industrial Combustion Engine tile.machine_compressor.name=Compressor tile.machine_condenser.name=Steam Condenser +tile.machine_condenser_powered.name=High-Power Steam Condenser tile.machine_controller.name=Reactor Remote Control Block tile.machine_converter_he_rf.name=HE to RF Converter tile.machine_converter_rf_he.name=RF to HE Converter From abb96d8f4b313769b64c0b01a9376bb3dfbb0578 Mon Sep 17 00:00:00 2001 From: Bob Date: Sat, 30 Sep 2023 19:46:09 +0200 Subject: [PATCH 326/432] stalingrad --- .../hbm/entity/item/EntityDeliveryDrone.java | 62 +------- .../com/hbm/entity/item/EntityDroneBase.java | 66 +++++++++ .../hbm/entity/item/EntityRequestDrone.java | 111 ++++++++++++++ .../tileentity/network/RequestNetwork.java | 14 +- .../network/TileEntityDroneDock.java | 140 +++++++++++++++++- .../network/TileEntityDroneProvider.java | 2 +- .../network/TileEntityDroneRequester.java | 22 +-- .../TileEntityDroneWaypointRequest.java | 2 +- .../network/TileEntityRequestNetwork.java | 21 ++- 9 files changed, 355 insertions(+), 85 deletions(-) diff --git a/src/main/java/com/hbm/entity/item/EntityDeliveryDrone.java b/src/main/java/com/hbm/entity/item/EntityDeliveryDrone.java index eb4b6e603..72782c158 100644 --- a/src/main/java/com/hbm/entity/item/EntityDeliveryDrone.java +++ b/src/main/java/com/hbm/entity/item/EntityDeliveryDrone.java @@ -5,14 +5,11 @@ import com.hbm.inventory.FluidStack; import com.hbm.inventory.fluid.Fluids; import com.hbm.main.MainRegistry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; -import net.minecraft.util.Vec3; import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.world.World; import net.minecraftforge.common.ForgeChunkManager; @@ -23,17 +20,12 @@ public class EntityDeliveryDrone extends EntityDroneBase implements IInventory, protected ItemStack[] slots = new ItemStack[this.getSizeInventory()]; public FluidStack fluid; - - public double targetX = -1; - public double targetY = -1; - public double targetZ = -1; private Ticket loaderTicket; public boolean isChunkLoading = false; public EntityDeliveryDrone(World world) { super(world); - this.setSize(1.5F, 2.0F); } @Override @@ -46,40 +38,15 @@ public class EntityDeliveryDrone extends EntityDroneBase implements IInventory, init(ForgeChunkManager.requestTicket(MainRegistry.instance, worldObj, Type.ENTITY)); return this; } - - public void setTarget(double x, double y, double z) { - this.targetX = x; - this.targetY = y; - this.targetZ = z; - } @Override public void onUpdate() { - super.onUpdate(); if(!worldObj.isRemote) { - - this.motionX = 0; - this.motionY = 0; - this.motionZ = 0; - - if(this.targetY != -1) { - - Vec3 dist = Vec3.createVectorHelper(targetX - posX, targetY - posY, targetZ - posZ); - double speed = getSpeed(); - - if(dist.lengthVector() >= speed) { - dist = dist.normalize(); - this.motionX = dist.xCoord * speed; - this.motionY = dist.yCoord * speed; - this.motionZ = dist.zCoord * speed; - } - } - loadNeighboringChunks((int)Math.floor(posX / 16D), (int)Math.floor(posZ / 16D)); - - this.moveEntity(motionX, motionY, motionZ); } + + super.onUpdate(); } @Override @@ -89,10 +56,7 @@ public class EntityDeliveryDrone extends EntityDroneBase implements IInventory, @Override protected void writeEntityToNBT(NBTTagCompound nbt) { - - nbt.setDouble("tX", targetX); - nbt.setDouble("tY", targetY); - nbt.setDouble("tZ", targetZ); + super.writeEntityToNBT(nbt); NBTTagList nbttaglist = new NBTTagList(); @@ -112,18 +76,12 @@ public class EntityDeliveryDrone extends EntityDroneBase implements IInventory, nbt.setInteger("fluidAmount", fluid.fill); } - nbt.setByte("app", this.dataWatcher.getWatchableObjectByte(10)); nbt.setByte("load", this.dataWatcher.getWatchableObjectByte(11)); } @Override protected void readEntityFromNBT(NBTTagCompound nbt) { - - if(nbt.hasKey("tY")) { - this.targetX = nbt.getDouble("tX"); - this.targetY = nbt.getDouble("tY"); - this.targetZ = nbt.getDouble("tZ"); - } + super.readEntityFromNBT(nbt); NBTTagList nbttaglist = nbt.getTagList("Items", 10); this.slots = new ItemStack[this.getSizeInventory()]; @@ -141,20 +99,8 @@ public class EntityDeliveryDrone extends EntityDroneBase implements IInventory, this.fluid = new FluidStack(Fluids.fromName(nbt.getString("fluidType")), nbt.getInteger("fluidAmount")); } - this.dataWatcher.updateObject(10, nbt.getByte("app")); this.dataWatcher.updateObject(11, nbt.getByte("load")); } - - @SideOnly(Side.CLIENT) - public void setPositionAndRotation2(double x, double y, double z, float yaw, float pitch, int theNumberThree) { - this.syncPosX = x; - this.syncPosY = y; - this.syncPosZ = z; - this.turnProgress = theNumberThree; - this.motionX = this.velocityX; - this.motionY = this.velocityY; - this.motionZ = this.velocityZ; - } @Override public ItemStack getStackInSlot(int slot) { diff --git a/src/main/java/com/hbm/entity/item/EntityDroneBase.java b/src/main/java/com/hbm/entity/item/EntityDroneBase.java index 12969f711..c27ab56d1 100644 --- a/src/main/java/com/hbm/entity/item/EntityDroneBase.java +++ b/src/main/java/com/hbm/entity/item/EntityDroneBase.java @@ -4,6 +4,8 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.Vec3; import net.minecraft.world.World; public abstract class EntityDroneBase extends Entity { @@ -16,8 +18,19 @@ public abstract class EntityDroneBase extends Entity { @SideOnly(Side.CLIENT) protected double velocityY; @SideOnly(Side.CLIENT) protected double velocityZ; + public double targetX = -1; + public double targetY = -1; + public double targetZ = -1; + public EntityDroneBase(World world) { super(world); + this.setSize(1.5F, 2.0F); + } + + public void setTarget(double x, double y, double z) { + this.targetX = x; + this.targetY = y; + this.targetZ = z; } @Override @@ -81,6 +94,26 @@ public abstract class EntityDroneBase extends Entity { worldObj.spawnParticle("smoke", posX - 1.125, posY + 0.75, posZ, 0, -0.2, 0); worldObj.spawnParticle("smoke", posX, posY + 0.75, posZ + 1.125, 0, -0.2, 0); worldObj.spawnParticle("smoke", posX, posY + 0.75, posZ - 1.125, 0, -0.2, 0); + } else { + + this.motionX = 0; + this.motionY = 0; + this.motionZ = 0; + + if(this.targetY != -1) { + + Vec3 dist = Vec3.createVectorHelper(targetX - posX, targetY - posY, targetZ - posZ); + double speed = getSpeed(); + + if(dist.lengthVector() >= speed) { + dist = dist.normalize(); + this.motionX = dist.xCoord * speed; + this.motionY = dist.yCoord * speed; + this.motionZ = dist.zCoord * speed; + } + } + + this.moveEntity(motionX, motionY, motionZ); } } @@ -94,4 +127,37 @@ public abstract class EntityDroneBase extends Entity { this.velocityY = this.motionY = motionY; this.velocityZ = this.motionZ = motionZ; } + + @SideOnly(Side.CLIENT) + public void setPositionAndRotation2(double x, double y, double z, float yaw, float pitch, int theNumberThree) { + this.syncPosX = x; + this.syncPosY = y; + this.syncPosZ = z; + this.turnProgress = theNumberThree; + this.motionX = this.velocityX; + this.motionY = this.velocityY; + this.motionZ = this.velocityZ; + } + + @Override + protected void writeEntityToNBT(NBTTagCompound nbt) { + + nbt.setDouble("tX", targetX); + nbt.setDouble("tY", targetY); + nbt.setDouble("tZ", targetZ); + + nbt.setByte("app", this.dataWatcher.getWatchableObjectByte(10)); + } + + @Override + protected void readEntityFromNBT(NBTTagCompound nbt) { + + if(nbt.hasKey("tY")) { + this.targetX = nbt.getDouble("tX"); + this.targetY = nbt.getDouble("tY"); + this.targetZ = nbt.getDouble("tZ"); + } + + this.dataWatcher.updateObject(10, nbt.getByte("app")); + } } diff --git a/src/main/java/com/hbm/entity/item/EntityRequestDrone.java b/src/main/java/com/hbm/entity/item/EntityRequestDrone.java index 6878f138e..90bd0adce 100644 --- a/src/main/java/com/hbm/entity/item/EntityRequestDrone.java +++ b/src/main/java/com/hbm/entity/item/EntityRequestDrone.java @@ -1,16 +1,127 @@ package com.hbm.entity.item; +import java.util.ArrayList; +import java.util.List; + +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.items.ModItems; +import com.hbm.items.tool.ItemDrone.EnumDroneType; +import com.hbm.tileentity.network.TileEntityDroneDock; +import com.hbm.tileentity.network.TileEntityDroneProvider; +import com.hbm.tileentity.network.TileEntityDroneRequester; +import com.hbm.util.fauxpointtwelve.BlockPos; + import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Vec3; import net.minecraft.world.World; public class EntityRequestDrone extends EntityDroneBase { public ItemStack heldItem; + public List program = new ArrayList(); + + public static enum DroneProgram { + UNLOAD, DOCK + } public EntityRequestDrone(World world) { super(world); } + + @Override + public void onUpdate() { + super.onUpdate(); + + if(!worldObj.isRemote) { + + if(Vec3.createVectorHelper(motionX, motionY, motionZ).lengthVector() < 0.01) { + if(program.isEmpty()) { + this.setDead(); //self-destruct if no further operations are pending + this.entityDropItem(new ItemStack(ModItems.drone, 1, EnumDroneType.REQUEST.ordinal()), 1F); + return; + } + + Object next = program.get(0); + program.remove(0); + + if(next instanceof BlockPos) { + BlockPos pos = (BlockPos) next; + this.setTarget(pos.getX() + 0.5, pos.getY(), pos.getZ() + 0.5); + } else if(next instanceof AStack && heldItem == null) { + + AStack aStack = (AStack) next; + TileEntity tile = worldObj.getTileEntity((int) Math.floor(posX), (int) Math.floor(posY - 1), (int) Math.floor(posZ)); + + if(tile instanceof TileEntityDroneProvider) { + TileEntityDroneProvider provider = (TileEntityDroneProvider) tile; + + for(int i = 0; i < provider.slots.length; i++) { + ItemStack stack = provider.slots[i]; + + if(stack != null && aStack.matchesRecipe(stack, true)) { + this.heldItem = stack.copy(); + this.setAppearance(1); + provider.slots[i] = null; + provider.markDirty(); + break; + } + } + } + } else if(next == DroneProgram.UNLOAD && this.heldItem != null) { + + TileEntity tile = worldObj.getTileEntity((int) Math.floor(posX), (int) Math.floor(posY - 1), (int) Math.floor(posZ)); + if(tile instanceof TileEntityDroneRequester) { + TileEntityDroneRequester requester = (TileEntityDroneRequester) tile; + + for(int i = 9; i < 18; i++) { + ItemStack stack = requester.slots[i]; + if(stack != null && stack.getItem() == heldItem.getItem() && stack.getItemDamage() == heldItem.getItemDamage()) { + int toTransfer = Math.min(stack.getMaxStackSize() - stack.stackSize, heldItem.stackSize); + requester.slots[i].stackSize += toTransfer; + this.heldItem.stackSize -= toTransfer; + } + } + + if(this.heldItem.stackSize <= 0) this.heldItem = null; + + if(this.heldItem != null) for(int i = 9; i < 18; i++) { + if(requester.slots[i] == null) { + requester.slots[i] = this.heldItem.copy(); + this.heldItem = null; + break; + } + } + + if(this.heldItem == null) { + this.setAppearance(0); + } + + requester.markDirty(); + } + } else if(next == DroneProgram.DOCK) { + + TileEntity tile = worldObj.getTileEntity((int) Math.floor(posX), (int) Math.floor(posY - 1), (int) Math.floor(posZ)); + if(tile instanceof TileEntityDroneDock) { + TileEntityDroneDock dock = (TileEntityDroneDock) tile; + + for(int i = 0; i < dock.slots.length; i++) { + if(dock.slots[i] == null) { + this.setDead(); + dock.slots[i] = new ItemStack(ModItems.drone, 1, EnumDroneType.REQUEST.ordinal()); + } + } + } + + if(!this.isDead) { + this.setDead(); + this.entityDropItem(new ItemStack(ModItems.drone, 1, EnumDroneType.REQUEST.ordinal()), 1F); + } + } + } + } + } @Override protected void readEntityFromNBT(NBTTagCompound nbt) { diff --git a/src/main/java/com/hbm/tileentity/network/RequestNetwork.java b/src/main/java/com/hbm/tileentity/network/RequestNetwork.java index b8578d35d..6e01086a0 100644 --- a/src/main/java/com/hbm/tileentity/network/RequestNetwork.java +++ b/src/main/java/com/hbm/tileentity/network/RequestNetwork.java @@ -1,6 +1,7 @@ package com.hbm.tileentity.network; import java.util.HashMap; +import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Map.Entry; @@ -47,6 +48,7 @@ public class RequestNetwork { // if the lease timestamp is too far back, time out the node if(node.lease < System.currentTimeMillis() - maxAge) { + node.reachableNodes.clear(); // just to be sure there's no cyclical references happening creating memory leaks pathIt.remove(); } } @@ -69,8 +71,10 @@ public class RequestNetwork { public static class PathNode { public BlockPos pos; public long lease; - public PathNode(BlockPos pos) { + public Set reachableNodes = new HashSet(); + public PathNode(BlockPos pos, Set reachableNodes) { this.pos = pos; + this.reachableNodes = new HashSet(reachableNodes); this.lease = System.currentTimeMillis(); } @Override public int hashCode() { return pos.hashCode(); } @@ -80,8 +84,8 @@ public class RequestNetwork { /** Node created by providers, lists available items */ public static class OfferNode extends PathNode { public List offer; - public OfferNode(BlockPos pos, List offer) { - super(pos); + public OfferNode(BlockPos pos, Set reachableNodes, List offer) { + super(pos, reachableNodes); this.offer = offer; } } @@ -89,8 +93,8 @@ public class RequestNetwork { /** Node created by requesters, lists requested AStacks */ public static class RequestNode extends PathNode { public List request; - public RequestNode(BlockPos pos, List request) { - super(pos); + public RequestNode(BlockPos pos, Set reachableNodes, List request) { + super(pos, reachableNodes); this.request = request; } } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityDroneDock.java b/src/main/java/com/hbm/tileentity/network/TileEntityDroneDock.java index 0ffc3e884..f190ea216 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityDroneDock.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityDroneDock.java @@ -1,9 +1,21 @@ package com.hbm.tileentity.network; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Set; + +import com.hbm.entity.item.EntityRequestDrone; +import com.hbm.entity.item.EntityRequestDrone.DroneProgram; +import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.container.ContainerDroneDock; import com.hbm.inventory.gui.GUIDroneDock; +import com.hbm.items.ModItems; +import com.hbm.items.tool.ItemDrone.EnumDroneType; import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.network.RequestNetwork.OfferNode; import com.hbm.tileentity.network.RequestNetwork.PathNode; +import com.hbm.tileentity.network.RequestNetwork.RequestNode; import com.hbm.util.fauxpointtwelve.BlockPos; import cpw.mods.fml.relauncher.Side; @@ -11,10 +23,13 @@ import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; +import net.minecraft.item.ItemStack; import net.minecraft.world.World; public class TileEntityDroneDock extends TileEntityRequestNetworkContainer implements IGUIProvider { + public static final int pathingDepth = 5; + public TileEntityDroneDock() { super(9); } @@ -27,6 +42,129 @@ public class TileEntityDroneDock extends TileEntityRequestNetworkContainer imple @Override public void updateEntity() { super.updateEntity(); + + if(!worldObj.isRemote && worldObj.getTotalWorldTime() % 100 == 0 && this.hasDrone()) { + + // grab all nodes in a 5 chunk radius + Set localNodes = this.getAllLocalNodes(worldObj, xCoord, zCoord, 5); + List requests = new ArrayList(); + List offers = new ArrayList(); + + for(PathNode local : localNodes) { + if(local instanceof RequestNode) requests.add((RequestNode) local); + if(local instanceof OfferNode) offers.add((OfferNode) local); + } + + attempt: for(int i = 0; i < 5; i++) { + + // randomize! + Collections.shuffle(requests); + Collections.shuffle(offers); + RequestNode firstRequest = null; + + // simply pick the first request node that has unfulfilled requests + for(RequestNode request : requests) { + if(!request.request.isEmpty()) { + firstRequest = request; + break; + } + } + + if(firstRequest != null) { + + PathNode own = createNode(new BlockPos(xCoord, yCoord + 1, zCoord)); + AStack request = firstRequest.request.get(worldObj.rand.nextInt(firstRequest.request.size())); + + outer: for(OfferNode offer : offers) { + + for(ItemStack stack : offer.offer) { + if(stack != null && request.matchesRecipe(stack, true)) { + if(tryEmbark(own, firstRequest, offer, request)) break attempt; // if the drone can be pathed and spawned, stop doing more attempts + break outer; // if not, simply continue iterating over offer nodes + } + } + } + } + } + } + } + + public boolean tryEmbark(PathNode dock, RequestNode request, OfferNode offer, AStack item) { + + List dockToOffer = generatePath(dock, offer); + if(dockToOffer == null) return false; + List offerToRequest = generatePath(offer, request); + if(offerToRequest == null) return false; + List requestToDock = generatePath(request, dock); + if(requestToDock == null) return false; + + + for(int i = 0; i < this.slots.length; i++) { + ItemStack stack = slots[i]; + if(stack != null && stack.getItem() == ModItems.drone && stack.getItemDamage() == EnumDroneType.REQUEST.ordinal()) { + this.decrStackSize(i, 1); + break; + } + } + + EntityRequestDrone drone = new EntityRequestDrone(worldObj); + drone.setPosition(xCoord + 0.5, yCoord + 1, zCoord + 0.5); + + // write programming + for(PathNode node : dockToOffer) drone.program.add(node); + drone.program.add(offer); + drone.program.add(item); + for(PathNode node : offerToRequest) drone.program.add(node); + drone.program.add(request); + drone.program.add(DroneProgram.UNLOAD); + for(PathNode node : requestToDock) drone.program.add(node); + drone.program.add(dock); + drone.program.add(DroneProgram.DOCK); + + return true; + } + + public List generatePath(PathNode start, PathNode end) { + + List> paths = new ArrayList(); + List init = new ArrayList(); + init.add(start); + paths.add(init); + + // breadth-first search + for(int i = 0; i < pathingDepth; i++) { + + List> newPaths = new ArrayList(); + + for(List oldPath : paths) { + for(PathNode connected : oldPath.get(oldPath.size() - 1).reachableNodes) { + List newPath = new ArrayList(); + newPath.addAll(oldPath); + + if(connected.hashCode() == end.hashCode()) { + newPath.remove(0); // we only want the in-betweens + return newPath; + } + + newPath.add(connected); + newPaths.add(newPath); + } + } + + paths = newPaths; + } + + return null; + } + + public boolean hasDrone() { + + for(int i = 0; i < this.slots.length; i++) { + ItemStack stack = slots[i]; + if(stack != null && stack.getItem() == ModItems.drone && stack.getItemDamage() == EnumDroneType.REQUEST.ordinal()) return true; + } + + return false; } @Override @@ -42,6 +180,6 @@ public class TileEntityDroneDock extends TileEntityRequestNetworkContainer imple @Override public PathNode createNode(BlockPos pos) { - return new PathNode(pos); + return new PathNode(pos, this.reachableNodes); } } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityDroneProvider.java b/src/main/java/com/hbm/tileentity/network/TileEntityDroneProvider.java index 83a71dc40..0b32073e6 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityDroneProvider.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityDroneProvider.java @@ -59,6 +59,6 @@ public class TileEntityDroneProvider extends TileEntityRequestNetworkContainer i public PathNode createNode(BlockPos pos) { List offer = new ArrayList(); for(ItemStack stack : slots) if(stack != null) offer.add(stack.copy()); - return new OfferNode(pos, offer); + return new OfferNode(pos, this.reachableNodes, offer); } } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityDroneRequester.java b/src/main/java/com/hbm/tileentity/network/TileEntityDroneRequester.java index a58724d26..b3a7a942d 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityDroneRequester.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityDroneRequester.java @@ -56,19 +56,6 @@ public class TileEntityDroneRequester extends TileEntityRequestNetworkContainer this.matcher.readFromNBT(nbt); } - public boolean matchesFilter(ItemStack stack) { - - for(int i = 0; i < 9; i++) { - ItemStack filter = slots[i]; - - if(filter != null && this.matcher.isValidForFilter(filter, i, stack)) { - return true; - } - } - - return false; - } - public void nextMode(int i) { this.matcher.nextMode(worldObj, slots[i], i); } @@ -104,6 +91,7 @@ public class TileEntityDroneRequester extends TileEntityRequestNetworkContainer List request = new ArrayList(); for(int i = 0; i < 9; i++) { ItemStack filter = slots[i]; + ItemStack stock = slots[i + 9]; if(filter == null) continue; String mode = this.matcher.modes[i]; AStack aStack = null; @@ -112,12 +100,14 @@ public class TileEntityDroneRequester extends TileEntityRequestNetworkContainer aStack = new ComparableStack(filter).makeSingular(); } else if(ModulePatternMatcher.MODE_WILDCARD.equals(mode)) { aStack = new ComparableStack(filter.getItem(), 1, OreDictionary.WILDCARD_VALUE); - } else { + } else if(mode != null) { aStack = new OreDictStack(mode); } - request.add(aStack); + if(aStack == null) continue; + + if(stock == null || !this.matcher.isValidForFilter(filter, i, stock)) request.add(aStack); } - return new RequestNode(pos, request); + return new RequestNode(pos, this.reachableNodes, request); } } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityDroneWaypointRequest.java b/src/main/java/com/hbm/tileentity/network/TileEntityDroneWaypointRequest.java index e196b17bd..677078341 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityDroneWaypointRequest.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityDroneWaypointRequest.java @@ -38,6 +38,6 @@ public class TileEntityDroneWaypointRequest extends TileEntityRequestNetwork { @Override public PathNode createNode(BlockPos pos) { - return new PathNode(pos); + return new PathNode(pos, this.reachableNodes); } } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetwork.java b/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetwork.java index 3ccf46d65..c64efc326 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetwork.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetwork.java @@ -5,10 +5,14 @@ import java.util.HashSet; import java.util.Iterator; import java.util.Set; +import com.hbm.packet.AuxParticlePacketNT; +import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.network.RequestNetwork.PathNode; import com.hbm.util.ParticleUtil; import com.hbm.util.fauxpointtwelve.BlockPos; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.Vec3; @@ -45,6 +49,7 @@ public abstract class TileEntityRequestNetwork extends TileEntity { // since we can assume a sane number of nodes to exist at any given time, we can run this check in full every second Iterator it = knownNodes.iterator(); Set localNodes = this.getAllLocalNodes(worldObj, xCoord, zCoord, 2); // this bit may spiral into multiple nested hashtable lookups but it's limited to only a few chunks so it shouldn't be an issue + localNodes.remove(pos); while(it.hasNext()) { PathNode node = it.next(); if(!localNodes.contains(node)) { @@ -60,6 +65,13 @@ public abstract class TileEntityRequestNetwork extends TileEntity { (known.pos.getX() - pos.getX()) / 2D, (known.pos.getY() - pos.getY()) / 2D, (known.pos.getZ() - pos.getZ()) / 2D, reachableNodes.contains(known) ? 0x00ff00 : 0xff0000); } + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "debug"); + data.setInteger("color", 0x0000ff); + data.setFloat("scale", 1.5F); + data.setString("text", knownNodes.size() + " / " + reachableNodes.size() + " / " + localNodes.size()); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); //both following checks run the `hasPath` function which is costly, so it only runs one op at a time @@ -151,8 +163,9 @@ public abstract class TileEntityRequestNetwork extends TileEntity { * @return */ public static Set getAllLocalNodes(World world, int x, int z, int range) { - + Set nodes = new HashSet(); + Set pos = new HashSet(); x >>= 4; z >>= 4; @@ -167,12 +180,14 @@ public abstract class TileEntityRequestNetwork extends TileEntity { Set nodeList = coordMap.get(new ChunkCoordIntPair(x + i, z + j)); if(nodeList != null) for(PathNode node : nodeList) { - nodes.add(node); + if(!pos.contains(node.pos)) { + nodes.add(node); + //pos.add(node.pos); + } } } } return nodes; } - } From 743b7a157613fb395c396b85370f2fe176505637 Mon Sep 17 00:00:00 2001 From: Bob Date: Sat, 30 Sep 2023 21:05:46 +0200 Subject: [PATCH 327/432] two weeks of agony are finally paying off --- .../hbm/entity/item/EntityRequestDrone.java | 173 ++++++++++-------- .../entity/item/RenderDeliveryDrone.java | 4 +- .../tileentity/network/RequestNetwork.java | 19 +- .../network/TileEntityDroneDock.java | 57 +++--- .../network/TileEntityRequestNetwork.java | 25 ++- src/main/java/com/hbm/util/HashedSet.java | 132 +++++++++++++ 6 files changed, 283 insertions(+), 127 deletions(-) create mode 100644 src/main/java/com/hbm/util/HashedSet.java diff --git a/src/main/java/com/hbm/entity/item/EntityRequestDrone.java b/src/main/java/com/hbm/entity/item/EntityRequestDrone.java index 90bd0adce..30d22ab20 100644 --- a/src/main/java/com/hbm/entity/item/EntityRequestDrone.java +++ b/src/main/java/com/hbm/entity/item/EntityRequestDrone.java @@ -21,6 +21,7 @@ public class EntityRequestDrone extends EntityDroneBase { public ItemStack heldItem; public List program = new ArrayList(); + int nextActionTimer = 0; public static enum DroneProgram { UNLOAD, DOCK @@ -37,92 +38,110 @@ public class EntityRequestDrone extends EntityDroneBase { if(!worldObj.isRemote) { if(Vec3.createVectorHelper(motionX, motionY, motionZ).lengthVector() < 0.01) { - if(program.isEmpty()) { - this.setDead(); //self-destruct if no further operations are pending - this.entityDropItem(new ItemStack(ModItems.drone, 1, EnumDroneType.REQUEST.ordinal()), 1F); - return; - } - Object next = program.get(0); - program.remove(0); - - if(next instanceof BlockPos) { - BlockPos pos = (BlockPos) next; - this.setTarget(pos.getX() + 0.5, pos.getY(), pos.getZ() + 0.5); - } else if(next instanceof AStack && heldItem == null) { + if(nextActionTimer > 0) { + nextActionTimer--; + } else { + nextActionTimer = 5; - AStack aStack = (AStack) next; - TileEntity tile = worldObj.getTileEntity((int) Math.floor(posX), (int) Math.floor(posY - 1), (int) Math.floor(posZ)); - - if(tile instanceof TileEntityDroneProvider) { - TileEntityDroneProvider provider = (TileEntityDroneProvider) tile; - - for(int i = 0; i < provider.slots.length; i++) { - ItemStack stack = provider.slots[i]; - - if(stack != null && aStack.matchesRecipe(stack, true)) { - this.heldItem = stack.copy(); - this.setAppearance(1); - provider.slots[i] = null; - provider.markDirty(); - break; - } - } - } - } else if(next == DroneProgram.UNLOAD && this.heldItem != null) { - - TileEntity tile = worldObj.getTileEntity((int) Math.floor(posX), (int) Math.floor(posY - 1), (int) Math.floor(posZ)); - if(tile instanceof TileEntityDroneRequester) { - TileEntityDroneRequester requester = (TileEntityDroneRequester) tile; - - for(int i = 9; i < 18; i++) { - ItemStack stack = requester.slots[i]; - if(stack != null && stack.getItem() == heldItem.getItem() && stack.getItemDamage() == heldItem.getItemDamage()) { - int toTransfer = Math.min(stack.getMaxStackSize() - stack.stackSize, heldItem.stackSize); - requester.slots[i].stackSize += toTransfer; - this.heldItem.stackSize -= toTransfer; - } - } - - if(this.heldItem.stackSize <= 0) this.heldItem = null; - - if(this.heldItem != null) for(int i = 9; i < 18; i++) { - if(requester.slots[i] == null) { - requester.slots[i] = this.heldItem.copy(); - this.heldItem = null; - break; - } - } - - if(this.heldItem == null) { - this.setAppearance(0); - } - - requester.markDirty(); - } - } else if(next == DroneProgram.DOCK) { - - TileEntity tile = worldObj.getTileEntity((int) Math.floor(posX), (int) Math.floor(posY - 1), (int) Math.floor(posZ)); - if(tile instanceof TileEntityDroneDock) { - TileEntityDroneDock dock = (TileEntityDroneDock) tile; - - for(int i = 0; i < dock.slots.length; i++) { - if(dock.slots[i] == null) { - this.setDead(); - dock.slots[i] = new ItemStack(ModItems.drone, 1, EnumDroneType.REQUEST.ordinal()); - } - } - } - - if(!this.isDead) { - this.setDead(); + if(program.isEmpty()) { + this.setDead(); //self-destruct if no further operations are pending this.entityDropItem(new ItemStack(ModItems.drone, 1, EnumDroneType.REQUEST.ordinal()), 1F); + return; + } + + Object next = program.get(0); + System.out.println("next action: " + next); + program.remove(0); + + if(next instanceof BlockPos) { + BlockPos pos = (BlockPos) next; + this.setTarget(pos.getX() + 0.5, pos.getY(), pos.getZ() + 0.5); + System.out.println("targetting"); + } else if(next instanceof AStack && heldItem == null) { + + AStack aStack = (AStack) next; + TileEntity tile = worldObj.getTileEntity((int) Math.floor(posX), (int) Math.floor(posY - 1), (int) Math.floor(posZ)); + + if(tile instanceof TileEntityDroneProvider) { + TileEntityDroneProvider provider = (TileEntityDroneProvider) tile; + + for(int i = 0; i < provider.slots.length; i++) { + ItemStack stack = provider.slots[i]; + + if(stack != null && aStack.matchesRecipe(stack, true)) { + this.heldItem = stack.copy(); + this.setAppearance(1); + provider.slots[i] = null; + provider.markDirty(); + break; + } + } + } + System.out.println("loading"); + } else if(next == DroneProgram.UNLOAD && this.heldItem != null) { + + TileEntity tile = worldObj.getTileEntity((int) Math.floor(posX), (int) Math.floor(posY - 1), (int) Math.floor(posZ)); + if(tile instanceof TileEntityDroneRequester) { + TileEntityDroneRequester requester = (TileEntityDroneRequester) tile; + + for(int i = 9; i < 18; i++) { + ItemStack stack = requester.slots[i]; + if(stack != null && stack.getItem() == heldItem.getItem() && stack.getItemDamage() == heldItem.getItemDamage()) { + int toTransfer = Math.min(stack.getMaxStackSize() - stack.stackSize, heldItem.stackSize); + requester.slots[i].stackSize += toTransfer; + this.heldItem.stackSize -= toTransfer; + } + } + + if(this.heldItem.stackSize <= 0) this.heldItem = null; + + if(this.heldItem != null) for(int i = 9; i < 18; i++) { + if(requester.slots[i] == null) { + requester.slots[i] = this.heldItem.copy(); + this.heldItem = null; + break; + } + } + + if(this.heldItem == null) { + this.setAppearance(0); + } + + requester.markDirty(); + } + System.out.println("unloading"); + } else if(next == DroneProgram.DOCK) { + + TileEntity tile = worldObj.getTileEntity((int) Math.floor(posX), (int) Math.floor(posY - 1), (int) Math.floor(posZ)); + if(tile instanceof TileEntityDroneDock) { + TileEntityDroneDock dock = (TileEntityDroneDock) tile; + + for(int i = 0; i < dock.slots.length; i++) { + if(dock.slots[i] == null) { + this.setDead(); + dock.slots[i] = new ItemStack(ModItems.drone, 1, EnumDroneType.REQUEST.ordinal()); + break; + } + } + } + + if(!this.isDead) { + this.setDead(); + this.entityDropItem(new ItemStack(ModItems.drone, 1, EnumDroneType.REQUEST.ordinal()), 1F); + } + System.out.println("docking"); } } } } } + @Override + public double getSpeed() { + return 0.5D; + } + @Override protected void readEntityFromNBT(NBTTagCompound nbt) { diff --git a/src/main/java/com/hbm/render/entity/item/RenderDeliveryDrone.java b/src/main/java/com/hbm/render/entity/item/RenderDeliveryDrone.java index 386235f40..04bbcf027 100644 --- a/src/main/java/com/hbm/render/entity/item/RenderDeliveryDrone.java +++ b/src/main/java/com/hbm/render/entity/item/RenderDeliveryDrone.java @@ -2,7 +2,7 @@ package com.hbm.render.entity.item; import org.lwjgl.opengl.GL11; -import com.hbm.entity.item.EntityDeliveryDrone; +import com.hbm.entity.item.EntityDroneBase; import com.hbm.entity.item.EntityRequestDrone; import com.hbm.main.ResourceManager; @@ -29,7 +29,7 @@ public class RenderDeliveryDrone extends Render { bindTexture(ResourceManager.delivery_drone_tex); ResourceManager.delivery_drone.renderPart("Drone"); - EntityDeliveryDrone drone = (EntityDeliveryDrone) entity; + EntityDroneBase drone = (EntityDroneBase) entity; int style = drone.getAppearance(); if(style == 1) ResourceManager.delivery_drone.renderPart("Crate"); diff --git a/src/main/java/com/hbm/tileentity/network/RequestNetwork.java b/src/main/java/com/hbm/tileentity/network/RequestNetwork.java index 6e01086a0..cb1116004 100644 --- a/src/main/java/com/hbm/tileentity/network/RequestNetwork.java +++ b/src/main/java/com/hbm/tileentity/network/RequestNetwork.java @@ -1,13 +1,12 @@ package com.hbm.tileentity.network; import java.util.HashMap; -import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Map.Entry; -import java.util.Set; import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.util.HashedSet; import com.hbm.util.fauxpointtwelve.BlockPos; import net.minecraft.item.ItemStack; @@ -17,7 +16,7 @@ import net.minecraft.world.World; public class RequestNetwork { private static int timer = 0; - public static HashMap>> activeWaypoints = new HashMap(); + public static HashMap>> activeWaypoints = new HashMap(); public static final int maxAge = 2_000; public static void updateEntries() { @@ -33,13 +32,13 @@ public class RequestNetwork { // iterate over each dim while(worldIt.hasNext()) { - Entry>> worldEntry = (Entry) worldIt.next(); + Entry>> worldEntry = (Entry) worldIt.next(); Iterator chunkIt = worldEntry.getValue().entrySet().iterator(); // iterate over each chunk while(chunkIt.hasNext()) { - Entry> chunkEntry = (Entry) chunkIt.next(); + Entry> chunkEntry = (Entry) chunkIt.next(); Iterator pathIt = chunkEntry.getValue().iterator(); // iterate over each path node @@ -71,10 +70,10 @@ public class RequestNetwork { public static class PathNode { public BlockPos pos; public long lease; - public Set reachableNodes = new HashSet(); - public PathNode(BlockPos pos, Set reachableNodes) { + public HashedSet reachableNodes = new HashedSet(); + public PathNode(BlockPos pos, HashedSet reachableNodes) { this.pos = pos; - this.reachableNodes = new HashSet(reachableNodes); + this.reachableNodes = new HashedSet(reachableNodes); this.lease = System.currentTimeMillis(); } @Override public int hashCode() { return pos.hashCode(); } @@ -84,7 +83,7 @@ public class RequestNetwork { /** Node created by providers, lists available items */ public static class OfferNode extends PathNode { public List offer; - public OfferNode(BlockPos pos, Set reachableNodes, List offer) { + public OfferNode(BlockPos pos, HashedSet reachableNodes, List offer) { super(pos, reachableNodes); this.offer = offer; } @@ -93,7 +92,7 @@ public class RequestNetwork { /** Node created by requesters, lists requested AStacks */ public static class RequestNode extends PathNode { public List request; - public RequestNode(BlockPos pos, Set reachableNodes, List request) { + public RequestNode(BlockPos pos, HashedSet reachableNodes, List request) { super(pos, reachableNodes); this.request = request; } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityDroneDock.java b/src/main/java/com/hbm/tileentity/network/TileEntityDroneDock.java index f190ea216..3aa212846 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityDroneDock.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityDroneDock.java @@ -3,7 +3,6 @@ package com.hbm.tileentity.network; import java.util.ArrayList; import java.util.Collections; import java.util.List; -import java.util.Set; import com.hbm.entity.item.EntityRequestDrone; import com.hbm.entity.item.EntityRequestDrone.DroneProgram; @@ -16,6 +15,7 @@ import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.network.RequestNetwork.OfferNode; import com.hbm.tileentity.network.RequestNetwork.PathNode; import com.hbm.tileentity.network.RequestNetwork.RequestNode; +import com.hbm.util.HashedSet; import com.hbm.util.fauxpointtwelve.BlockPos; import cpw.mods.fml.relauncher.Side; @@ -46,7 +46,7 @@ public class TileEntityDroneDock extends TileEntityRequestNetworkContainer imple if(!worldObj.isRemote && worldObj.getTotalWorldTime() % 100 == 0 && this.hasDrone()) { // grab all nodes in a 5 chunk radius - Set localNodes = this.getAllLocalNodes(worldObj, xCoord, zCoord, 5); + HashedSet localNodes = this.getAllLocalNodes(worldObj, xCoord, zCoord, 5); List requests = new ArrayList(); List offers = new ArrayList(); @@ -72,14 +72,14 @@ public class TileEntityDroneDock extends TileEntityRequestNetworkContainer imple if(firstRequest != null) { - PathNode own = createNode(new BlockPos(xCoord, yCoord + 1, zCoord)); + PathNode own = localNodes.getMap().get(new BlockPos(xCoord, yCoord + 1, zCoord).hashCode()); AStack request = firstRequest.request.get(worldObj.rand.nextInt(firstRequest.request.size())); outer: for(OfferNode offer : offers) { for(ItemStack stack : offer.offer) { if(stack != null && request.matchesRecipe(stack, true)) { - if(tryEmbark(own, firstRequest, offer, request)) break attempt; // if the drone can be pathed and spawned, stop doing more attempts + if(tryEmbark(own, firstRequest, offer, request, localNodes)) break attempt; // if the drone can be pathed and spawned, stop doing more attempts break outer; // if not, simply continue iterating over offer nodes } } @@ -89,13 +89,13 @@ public class TileEntityDroneDock extends TileEntityRequestNetworkContainer imple } } - public boolean tryEmbark(PathNode dock, RequestNode request, OfferNode offer, AStack item) { - - List dockToOffer = generatePath(dock, offer); + public boolean tryEmbark(PathNode dock, RequestNode request, OfferNode offer, AStack item, HashedSet localNodes) { + + List dockToOffer = generatePath(dock, offer, localNodes); if(dockToOffer == null) return false; - List offerToRequest = generatePath(offer, request); + List offerToRequest = generatePath(offer, request, localNodes); if(offerToRequest == null) return false; - List requestToDock = generatePath(request, dock); + List requestToDock = generatePath(request, dock, localNodes); if(requestToDock == null) return false; @@ -111,20 +111,22 @@ public class TileEntityDroneDock extends TileEntityRequestNetworkContainer imple drone.setPosition(xCoord + 0.5, yCoord + 1, zCoord + 0.5); // write programming - for(PathNode node : dockToOffer) drone.program.add(node); - drone.program.add(offer); + for(PathNode node : dockToOffer) drone.program.add(node.pos); + drone.program.add(offer.pos); drone.program.add(item); - for(PathNode node : offerToRequest) drone.program.add(node); - drone.program.add(request); + for(PathNode node : offerToRequest) drone.program.add(node.pos); + drone.program.add(request.pos); drone.program.add(DroneProgram.UNLOAD); - for(PathNode node : requestToDock) drone.program.add(node); - drone.program.add(dock); + for(PathNode node : requestToDock) drone.program.add(node.pos); + drone.program.add(dock.pos); drone.program.add(DroneProgram.DOCK); + worldObj.spawnEntityInWorld(drone); + return true; } - public List generatePath(PathNode start, PathNode end) { + public List generatePath(PathNode start, PathNode end, HashedSet localNodes) { List> paths = new ArrayList(); List init = new ArrayList(); @@ -137,17 +139,22 @@ public class TileEntityDroneDock extends TileEntityRequestNetworkContainer imple List> newPaths = new ArrayList(); for(List oldPath : paths) { - for(PathNode connected : oldPath.get(oldPath.size() - 1).reachableNodes) { - List newPath = new ArrayList(); - newPath.addAll(oldPath); + for(PathNode connectedUnsafe : oldPath.get(oldPath.size() - 1).reachableNodes) { - if(connected.hashCode() == end.hashCode()) { - newPath.remove(0); // we only want the in-betweens - return newPath; + PathNode connectedSafe = localNodes.getMap().get(connectedUnsafe.hashCode()); // lookup to translate potentially outdated nodes into current ones + if(connectedSafe != null) { + + List newPath = new ArrayList(); + newPath.addAll(oldPath); + + if(connectedSafe.hashCode() == end.hashCode()) { + newPath.remove(0); // we only want the in-betweens + return newPath; + } + + newPath.add(connectedSafe); + newPaths.add(newPath); } - - newPath.add(connected); - newPaths.add(newPath); } } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetwork.java b/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetwork.java index c64efc326..4e385f5d1 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetwork.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetwork.java @@ -1,13 +1,12 @@ package com.hbm.tileentity.network; import java.util.HashMap; -import java.util.HashSet; import java.util.Iterator; -import java.util.Set; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.network.RequestNetwork.PathNode; +import com.hbm.util.HashedSet; import com.hbm.util.ParticleUtil; import com.hbm.util.fauxpointtwelve.BlockPos; @@ -31,8 +30,8 @@ import net.minecraft.world.World; */ public abstract class TileEntityRequestNetwork extends TileEntity { - public Set reachableNodes = new HashSet(); - public Set knownNodes = new HashSet(); + public HashedSet reachableNodes = new HashedSet(); + public HashedSet knownNodes = new HashedSet(); public static final int maxRange = 24; @Override @@ -48,7 +47,7 @@ public abstract class TileEntityRequestNetwork extends TileEntity { // remove known nodes that no longer exist // since we can assume a sane number of nodes to exist at any given time, we can run this check in full every second Iterator it = knownNodes.iterator(); - Set localNodes = this.getAllLocalNodes(worldObj, xCoord, zCoord, 2); // this bit may spiral into multiple nested hashtable lookups but it's limited to only a few chunks so it shouldn't be an issue + HashedSet localNodes = this.getAllLocalNodes(worldObj, xCoord, zCoord, 2); // this bit may spiral into multiple nested hashtable lookups but it's limited to only a few chunks so it shouldn't be an issue localNodes.remove(pos); while(it.hasNext()) { PathNode node = it.next(); @@ -136,7 +135,7 @@ public abstract class TileEntityRequestNetwork extends TileEntity { */ public static void push(World world, PathNode node) { - HashMap> coordMap = RequestNetwork.activeWaypoints.get(world); + HashMap> coordMap = RequestNetwork.activeWaypoints.get(world); if(coordMap == null) { coordMap = new HashMap(); @@ -144,10 +143,10 @@ public abstract class TileEntityRequestNetwork extends TileEntity { } ChunkCoordIntPair chunkPos = new ChunkCoordIntPair(node.pos.getX() >> 4, node.pos.getZ() >> 4); - Set posList = coordMap.get(chunkPos); + HashedSet posList = coordMap.get(chunkPos); if(posList == null) { - posList = new HashSet(); + posList = new HashedSet(); coordMap.put(chunkPos, posList); } @@ -162,22 +161,22 @@ public abstract class TileEntityRequestNetwork extends TileEntity { * @param z * @return */ - public static Set getAllLocalNodes(World world, int x, int z, int range) { + public static HashedSet getAllLocalNodes(World world, int x, int z, int range) { - Set nodes = new HashSet(); - Set pos = new HashSet(); + HashedSet nodes = new HashedSet(); + HashedSet pos = new HashedSet(); x >>= 4; z >>= 4; - HashMap> coordMap = RequestNetwork.activeWaypoints.get(world); + HashMap> coordMap = RequestNetwork.activeWaypoints.get(world); if(coordMap == null) return nodes; for(int i = -range; i <= range; i++) { for(int j = -range; j <= range; j++) { - Set nodeList = coordMap.get(new ChunkCoordIntPair(x + i, z + j)); + HashedSet nodeList = coordMap.get(new ChunkCoordIntPair(x + i, z + j)); if(nodeList != null) for(PathNode node : nodeList) { if(!pos.contains(node.pos)) { diff --git a/src/main/java/com/hbm/util/HashedSet.java b/src/main/java/com/hbm/util/HashedSet.java new file mode 100644 index 000000000..861862206 --- /dev/null +++ b/src/main/java/com/hbm/util/HashedSet.java @@ -0,0 +1,132 @@ +package com.hbm.util; + +import java.util.Collection; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map.Entry; +import java.util.Set; + +import org.apache.commons.lang3.NotImplementedException; + +/** + * Through whichever mechanism, HashSets allow for multiple instances with the same hash, even though they already has that hash during instantiation + * How is this possible? I don't know and I don't want to know. + * + * This is a crude recreation using a HashMap and, instead of whichever braindead bullshit HashSet does, this HashMap uses the hashCode() as the key and the object as the value. + * + * @author hbm + * + * @param + */ +public class HashedSet implements Set { + + HashMap map = new HashMap(); + + public static class HashedIterator implements Iterator { + + private Iterator> iterator; + + public HashedIterator(HashedSet set) { + this.iterator = set.map.entrySet().iterator(); + } + + @Override + public boolean hasNext() { + return this.iterator.hasNext(); + } + + @Override + public Object next() { + return this.iterator.next().getValue(); + } + + @Override + public void remove() { + this.iterator.remove(); + } + } + + public HashedSet() { } + + public HashedSet(Set reachableNodes) { + this.addAll(reachableNodes); + } + + public HashMap getMap() { + return this.map; + } + + @Override + public boolean add(Object e) { + boolean contains = this.contains(e); + this.map.put(e.hashCode(), (T) e); + return contains; + } + + @Override + public boolean addAll(Collection c) { + boolean ret = false; + for(Object o : c) if(add(o)) ret = true; + return ret; + } + + @Override + public void clear() { + this.map.clear(); + } + + @Override + public boolean contains(Object o) { + return this.map.containsKey(o.hashCode()); + } + + @Override + public boolean containsAll(Collection c) { + + for(Object o : c) { + if(!this.contains(o)) return false; + } + + return true; + } + + @Override + public boolean isEmpty() { + return this.map.isEmpty(); + } + + @Override + public Iterator iterator() { + return new HashedIterator(this); + } + + @Override + public boolean remove(Object o) { + return false; + } + + @Override + public boolean removeAll(Collection c) { + return false; + } + + @Override + public boolean retainAll(Collection c) { + throw new NotImplementedException("Fuck you"); + } + + @Override + public int size() { + return this.map.size(); + } + + @Override + public Object[] toArray() { + throw new NotImplementedException("Fuck you"); + } + + @Override + public Object[] toArray(Object[] a) { + throw new NotImplementedException("Fuck you"); + } +} From 5e3a9480e1bc4519921cdcc0fa44a06792868090 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 1 Oct 2023 17:33:27 +0200 Subject: [PATCH 328/432] huzzah --- changelog | 94 +++++++----------- gradle.properties | 2 +- src/main/java/com/hbm/config/WorldConfig.java | 8 +- .../com/hbm/entity/item/EntityDroneBase.java | 2 +- .../hbm/entity/item/EntityRequestDrone.java | 77 ++++++++++++-- src/main/java/com/hbm/lib/RefStrings.java | 2 +- .../java/com/hbm/main/CraftingManager.java | 18 ++++ .../machine/TileEntityMachineTurbineGas.java | 2 +- .../machine/storage/TileEntityBarrel.java | 4 +- .../storage/TileEntityMachineFluidTank.java | 4 +- .../tileentity/network/RequestNetwork.java | 18 +++- .../network/TileEntityDroneCrate.java | 8 +- .../network/TileEntityDroneDock.java | 3 +- .../network/TileEntityDroneRequester.java | 12 +++ .../network/TileEntityRequestNetwork.java | 9 +- src/main/java/com/hbm/util/HashedSet.java | 9 +- .../hbm/util/fauxpointtwelve/BlockPos.java | 4 +- src/main/resources/assets/hbm/lang/de_DE.lang | 16 +++ src/main/resources/assets/hbm/lang/en_US.lang | 23 ++++- .../hbm/textures/models/machines/drone.png | Bin 2506 -> 2501 bytes .../models/machines/drone_express.png | Bin 2744 -> 2740 bytes .../models/machines/drone_request.png | Bin 2759 -> 2754 bytes 22 files changed, 226 insertions(+), 89 deletions(-) diff --git a/changelog b/changelog index 03232f545..9afc864be 100644 --- a/changelog +++ b/changelog @@ -1,62 +1,44 @@ ## Added -* Telex - * A basic message system using redstone over radio - * Allows messages to be sent at a rate of 20 characters per second - * Features things like text formatting, printing and the terminal bell -* Ground water pumps - * Come in steam-powered and electric variants - * Faster than their infinite barrel counterpart - * Need to be placed below Y:70 and on solid ground to work - * Compatible floor blocks include all dirt variants and sand, the pump will not work when placed on pure rock -* Schrabidate capacitor - * Can store 50GHE -* Express conveyor belts - * Work like regular single-lane conveyor belts but 3x faster -* Industrial smokestack - * An even larger smokestack, matching the size of the coker unit - * Reduced pollution by 90%, as opposed to the brick smokestack's 75% -* Power gauge - * Like the flow gauge pipe for cable networks - * Shows the total amount of power being transferred within the connected network -* Trenchmaster armor - * A new unique set of armor that is currently unobtainable - * Has new traits like faster reloads, a 33% chance of not using up ammo and step-assist +* Powered condenser + * A large form of the condenser that is 10x faster than the large cooling tower + * Needs 10HE per mB condensed (roughly 5% of the power output from steam, using industrial turbines) + * Allows for more compact setups, setups underground where cooling towers wouldn't fit, and ones with ridiculously high LPS throughput where multiple large cooling towers were necessary +* Transport drones + * Will move in a circular path between transport drone crates, loading and unloading either items or fluids + * Finally allows for automated long-range transport without ridiculously long conveyor belts or impractical pipelines + * Come in 4 variants, slow and express, each can be chunkloading or not + * To create a route, place crates in input and output mode, then add waypoints for avoiding obstacles, get a transport drone linker and click on each waypoint/crate in order, then shift-click to delete the last cached position from the linker (in order to not screw up future links) + * Waypoints can be adjusted in height, right click or shift-click to adjust the offset of the actual waypoint compared to the waypoint block. Make sure to adjust the waypoints before linking. + * Waypoints are unlimited in range, as all they do is tell drones "go to XYZ position", it's just necessary for the previous waypoint to be loaded during the linking process + * If there are no obstacles between the two crates, waypoints are entirely optional. +* Logistic drones + * An automated system that detects supply and demand and sends logistics drones to transport items + * Drone docks will detect logistics waypoints (different from transport waypoints!), providers and requesters in a 11x11 chunk range + * Docks, providers, requesters and waypoints will connect to each other automatically in a 5x5 chunk detection range with a maximum range of 24 blocks + * Logistics waypoints have an offset of 5 blocks which cannot be changed, unlike transport waypoints. The offset's direction obviously changes with the orientation of the waypoint block + * For debugging purposes, the connections are currently visible, this will be cchanged in the future + * Drones have a path depth of only 10 hops, pathfinding cannot go further than 10 waypoints/crates/docks + * Requests are created by requester crates if a request filter is set, and the requested item is not present in its buffer + * Provider offers are created automatically if a provider holds an item + * Docks will spawn a logistics drone if a drone is loaded (it can hold up to 9), the drone will path to the provider, then the requester, then back to the dock where it will try to jump back into its inventory + * A dock will randomly choose a provider-requester pair in its range every 5 seconds, to supply larger logistics networks, use more docks ## Changed * Updated russian localization -* The UAC pistol's UV now looks prettier -* The UAC pistol now fires a burst on right click -* CCGTs can no longer have smoke removed from them, on the count of there not being enough connections anyway. The pollution rate is now equivalent to three small furnaces -* The DFC receiver is now crafted with a block of DNT instead of sellafite corium, on the count of sellafite corium being near impossible to get -* Fireclay now has a third recipe, being craftable from clay, limestone and sand -* A whole clay block can now be combination smelted into a block of bricks -* The pipe clanking sound is now also used when placing regular pipes as opposed to only when pre-defined pipe items are used -* Josh now has a burst fire mode using RMB -* The smokestack's recipe has changed, now requiring a steel grate for catching ashes -* Simplified the decorated cobalt tool recipes, they now only require one cobalt tool and one hot bar of meteorite in an anvil -* Changed the starmetal tool recipes -* Cobalt armor is now crafted with steel armor and cobalt billets, making the armor substantially cheaper -* Sightly increased protection levels for the security armor and cobalt gear -* Cobalt, decorated cobalt and starmetal gear is now a lot more enchantable -* The ashpit now has a NEI handler, showing roughly how ash types are made -* Smokestacks now capture fly ash and are now compatible with ashpits -* Industrial smokestacks can also capture fine soot -* Reduced strings required for making coal filters, filters are now also available in tier 2 anvils -* Fireboxes and heating ovens can now be disassembled in tier 2 anvils, yielding most of the resources used for making them -* Signal beacons now only spawn half as often +* Retextured the groundwater pumps to be more NTM-like and less GTCE-like +* There is now a custom implementation used for falling block entities used by things like impulse grenades, the nuke's shockwave and anvils + * This should fix crashes caused by improper implementation of certain modded blocks not working with the falling block code + * This also makes it so that anvils render properly when falling + * The new falling blocks are a bit more janky and less smooth, most likely because of some hardcoded mojang hack that smoothens out the vanilla one that I couldn't find +* The redcoil capacitor has been reverted to use meta instead of NBT, making it easier to automate with meta-based filters ## Fixed -* Fixed the bomber not spawning if the chunkloading radios is too small -* Fixed a couple spelling mistakes like BFB fuel being called ZFB and the broken ZIRNOX -* Potentially fixed a compat issue where galacticraft moon soil isn't shreddable into NTM moon turf -* Hopefully fixed the disappearing fluid bug once and for all -* Fixed lag caused by the radiation system needlessly loading chunks -* Fixed secret folders giving volatile templates instead of persistent ones -* Fixed the ore dict registry happening in a later loading phase instead of PreInit which should fix some compatibility issues -* Hopefully fixed issue where the tom impact effects will last even when switching worlds -* Fixed logspam caused by custom machine crafting handler -* Fixed issue with the assemblers and chemplants where recipes with larger input requirements would break the input funnel -* Fixed crash caused by reloading when the ammo item is in the last slot -* Power and fluid networks will no longer transfer amounts less or equal than 0, preventing negative values and removing unnecessary operations where nothing would happen anyways -* Fixed bug where damage sources that bypass iframes would deal significantly more damage if the victim has taken a lot of damage prior -* Fixed duplicate balefire shell existing, the one that was usable was not the one that was craftable +* Fixed issue where for certain system locales, the thousand separator would display as an NBS which can't be rendered using mc's font renderer, yielding an ugly unknown glyph +* Fixed critical IO issue where assemblers and chemical plants would ignore side IO restrictions and import/export items from slots that they really shouldn't +* Combination ovens no longer produce soot when not in use +* The power detector now has the connection priority "HIGH", which should fix issues where they don't receive any power in larger networks due to their low network weight +* Fixed power gauge blocks sometimes crashing servers because of improper OC compat, the compat has been removed for the time being +* Fixed blocks with the "Any" ore dict prefix being shreddable, converting things from ore dict groups +* Fixed fusion reactor exploding into un-welded magnets, wasting tons of steel in the process +* Fixed assemblers not saving their power buffer or progress +* Fixed combined cycle gas turbine creating 25x more soot than it's supposed to diff --git a/gradle.properties b/gradle.properties index f918fa348..3bce5673c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4724 +mod_build_number=4739 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ diff --git a/src/main/java/com/hbm/config/WorldConfig.java b/src/main/java/com/hbm/config/WorldConfig.java index 7e389cec0..46add586c 100644 --- a/src/main/java/com/hbm/config/WorldConfig.java +++ b/src/main/java/com/hbm/config/WorldConfig.java @@ -26,8 +26,8 @@ public class WorldConfig { public static int cinnebarSpawn = 1; public static int oilcoalSpawn = 128; public static int gassshaleSpawn = 5; - public static int gasbubbleSpawn = 4; - public static int explosivebubbleSpawn = 8; + public static int gasbubbleSpawn = 12; + public static int explosivebubbleSpawn = 0; public static int cobaltSpawn = 2; public static int oilSpawn = 100; public static int bedrockOilSpawn = 200; @@ -133,10 +133,10 @@ public class WorldConfig { rareSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.14_rareEarthSpawnRate", "Amount of rare earth ore veins per chunk", 6); oilcoalSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.15_oilCoalSpawnRate", "Spawns an oily coal vein every nTH chunk", 128); gassshaleSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.16_gasShaleSpawnRate", "Amount of oil shale veins per chunk", 5); - gasbubbleSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.17_gasBubbleSpawnRate", "Spawns a gas bubble every nTH chunk", 4); + gasbubbleSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.17_gasBubbleSpawnRate", "Spawns a gas bubble every nTH chunk", 12); cinnebarSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.18_cinnebarSpawnRate", "Amount of cinnebar ore veins per chunk", 1); cobaltSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.18_cobaltSpawnRate", "Amount of cobalt ore veins per chunk", 2); - explosivebubbleSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.19_explosiveBubbleSpawnRate", "Spawns an explosive gas bubble every nTH chunk", 8); + explosivebubbleSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.19_explosiveBubbleSpawnRate", "Spawns an explosive gas bubble every nTH chunk", 0); alexandriteSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.20_alexandriteSpawnRate", "Spawns an alexandrite vein every nTH chunk", 100); oilSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.21_oilSpawnRate", "Spawns an oil bubble every nTH chunk", 100); bedrockOilSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.22_bedrockOilSpawnRate", "Spawns a bedrock oil node every nTH chunk", 200); diff --git a/src/main/java/com/hbm/entity/item/EntityDroneBase.java b/src/main/java/com/hbm/entity/item/EntityDroneBase.java index c27ab56d1..5cc0e4e97 100644 --- a/src/main/java/com/hbm/entity/item/EntityDroneBase.java +++ b/src/main/java/com/hbm/entity/item/EntityDroneBase.java @@ -55,7 +55,7 @@ public abstract class EntityDroneBase extends Entity { @Override protected boolean canTriggerWalking() { - return true; + return false; } @Override diff --git a/src/main/java/com/hbm/entity/item/EntityRequestDrone.java b/src/main/java/com/hbm/entity/item/EntityRequestDrone.java index 30d22ab20..0b5294516 100644 --- a/src/main/java/com/hbm/entity/item/EntityRequestDrone.java +++ b/src/main/java/com/hbm/entity/item/EntityRequestDrone.java @@ -4,6 +4,8 @@ import java.util.ArrayList; import java.util.List; import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.items.ModItems; import com.hbm.items.tool.ItemDrone.EnumDroneType; import com.hbm.tileentity.network.TileEntityDroneDock; @@ -11,6 +13,7 @@ import com.hbm.tileentity.network.TileEntityDroneProvider; import com.hbm.tileentity.network.TileEntityDroneRequester; import com.hbm.util.fauxpointtwelve.BlockPos; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; @@ -42,7 +45,6 @@ public class EntityRequestDrone extends EntityDroneBase { if(nextActionTimer > 0) { nextActionTimer--; } else { - nextActionTimer = 5; if(program.isEmpty()) { this.setDead(); //self-destruct if no further operations are pending @@ -51,13 +53,11 @@ public class EntityRequestDrone extends EntityDroneBase { } Object next = program.get(0); - System.out.println("next action: " + next); program.remove(0); if(next instanceof BlockPos) { BlockPos pos = (BlockPos) next; this.setTarget(pos.getX() + 0.5, pos.getY(), pos.getZ() + 0.5); - System.out.println("targetting"); } else if(next instanceof AStack && heldItem == null) { AStack aStack = (AStack) next; @@ -72,13 +72,14 @@ public class EntityRequestDrone extends EntityDroneBase { if(stack != null && aStack.matchesRecipe(stack, true)) { this.heldItem = stack.copy(); this.setAppearance(1); + worldObj.playSoundEffect(posX, posY, posZ, "hbm:item.unpack", 0.5F, 0.75F); provider.slots[i] = null; provider.markDirty(); break; } } } - System.out.println("loading"); + nextActionTimer = 5; } else if(next == DroneProgram.UNLOAD && this.heldItem != null) { TileEntity tile = worldObj.getTileEntity((int) Math.floor(posX), (int) Math.floor(posY - 1), (int) Math.floor(posZ)); @@ -106,11 +107,12 @@ public class EntityRequestDrone extends EntityDroneBase { if(this.heldItem == null) { this.setAppearance(0); + worldObj.playSoundEffect(posX, posY, posZ, "hbm:item.unpack", 0.5F, 0.75F); } requester.markDirty(); } - System.out.println("unloading"); + nextActionTimer = 5; } else if(next == DroneProgram.DOCK) { TileEntity tile = worldObj.getTileEntity((int) Math.floor(posX), (int) Math.floor(posY - 1), (int) Math.floor(posZ)); @@ -121,6 +123,7 @@ public class EntityRequestDrone extends EntityDroneBase { if(dock.slots[i] == null) { this.setDead(); dock.slots[i] = new ItemStack(ModItems.drone, 1, EnumDroneType.REQUEST.ordinal()); + this.worldObj.playSoundEffect(dock.xCoord + 0.5, dock.yCoord + 0.5, dock.zCoord + 0.5, "hbm:block.storageClose", 2.0F, 1.0F); break; } } @@ -130,7 +133,6 @@ public class EntityRequestDrone extends EntityDroneBase { this.setDead(); this.entityDropItem(new ItemStack(ModItems.drone, 1, EnumDroneType.REQUEST.ordinal()), 1F); } - System.out.println("docking"); } } } @@ -144,17 +146,43 @@ public class EntityRequestDrone extends EntityDroneBase { @Override protected void readEntityFromNBT(NBTTagCompound nbt) { + super.readEntityFromNBT(nbt); if(nbt.hasKey("held")) { NBTTagCompound stack = nbt.getCompoundTag("held"); this.heldItem = ItemStack.loadItemStackFromNBT(stack); } + + nextActionTimer = 5; this.dataWatcher.updateObject(10, nbt.getByte("app")); + + int size = nbt.getInteger("programSize"); + + for(int i = 0; i < size; i++) { + NBTTagCompound data = nbt.getCompoundTag("program" + i); + String pType = data.getString("type"); + + if("pos".equals(pType)) { + int[] pos = data.getIntArray("pos"); + this.program.add(new BlockPos(pos[0], pos[1], pos[2])); + } else if("unload".equals(pType)) { + this.program.add(DroneProgram.UNLOAD); + } else if("dock".equals(pType)) { + this.program.add(DroneProgram.DOCK); + } else if("comp".equals(pType)) { + ComparableStack comp = new ComparableStack(Item.getItemById(nbt.getInteger("id")), 1, nbt.getInteger("meta")); + this.program.add(comp); + } else if("dict".equals(pType)) { + OreDictStack dict = new OreDictStack(nbt.getString("dict")); + this.program.add(dict); + } + } } @Override protected void writeEntityToNBT(NBTTagCompound nbt) { + super.writeEntityToNBT(nbt); if(heldItem != null) { NBTTagCompound stack = new NBTTagCompound(); @@ -163,5 +191,42 @@ public class EntityRequestDrone extends EntityDroneBase { } nbt.setByte("app", this.dataWatcher.getWatchableObjectByte(10)); + + int size = this.program.size(); + nbt.setInteger("programSize", size); + + for(int i = 0; i < size; i++) { + NBTTagCompound data = new NBTTagCompound(); + Object p = this.program.get(i); + + if(p instanceof BlockPos) { + BlockPos pos = (BlockPos) p; + data.setString("type", "pos"); + data.setIntArray("pos", new int[] {pos.getX(), pos.getY(), pos.getZ()}); + } else if(p instanceof AStack) { + + // neither of these wretched fungii works correctly, but so long as the pathing works (which it does), it means that the drone will + // eventually return to the dock and not got lost, and simply retry the task + if(p instanceof ComparableStack) { + ComparableStack comp = (ComparableStack) p; + data.setString("type", "comp"); + data.setInteger("id", Item.getIdFromItem(comp.item)); + data.setInteger("meta", comp.meta); + } else { + OreDictStack dict = (OreDictStack) p; + data.setString("type", "dict"); + data.setString("dict", dict.name); + } + + } else if(p == DroneProgram.UNLOAD) { + data.setString("type", "unload"); + + } else if(p == DroneProgram.DOCK) { + data.setString("type", "dock"); + + } + + nbt.setTag("program" + i, data); + } } } diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 3df3c0458..26b7c4ac5 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4724)"; + public static final String VERSION = "1.0.27 BETA (4739)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index a45c039a8..936ab410b 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -29,6 +29,7 @@ import com.hbm.items.machine.ItemBattery; import com.hbm.items.special.ItemCircuitStarComponent.CircuitComponentType; import com.hbm.items.special.ItemHolotapeImage.EnumHoloImage; import com.hbm.items.special.ItemPlasticScrap.ScrapType; +import com.hbm.items.tool.ItemDrone.EnumDroneType; import com.hbm.items.tool.ItemGuideBook.BookType; import com.hbm.util.EnchantmentUtil; @@ -993,6 +994,23 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.crane_splitter), new Object[] { "III", "PCP", "III", 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_PNEUMATIC), 'I', STEEL.ingot(), 'C', ModItems.circuit_aluminium }); addRecipeAuto(new ItemStack(ModBlocks.machine_conveyor_press), new Object[] { "CPC", "CBC", "CCC", 'C', CU.plate(), 'P', ModBlocks.machine_epress, 'B', ModBlocks.conveyor }); + + addRecipeAuto(new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL.ordinal()), new Object[] { "PPP", "HCH", " B ", 'P', STEEL.plate(), 'H', ModItems.hull_small_steel, 'C', ModItems.circuit_copper, 'B', ModBlocks.crate_steel }); + addRecipeAuto(new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_CHUNKLOADING.ordinal()), new Object[] { "E", "D", 'E', Items.ender_pearl, 'D', new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL.ordinal()) }); + addRecipeAuto(new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_EXPRESS.ordinal()), new Object[] { " P ", "KDK", " P ", 'P', ModItems.plate_desh, 'K', Fluids.KEROSENE.getDict(1_000), 'D', new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL.ordinal()) }); + addRecipeAuto(new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_EXPRESS_CHUNKLOADING.ordinal()), new Object[] { "E", "D", 'E', Items.ender_pearl, 'D', new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_EXPRESS.ordinal()) }); + addRecipeAuto(new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_EXPRESS_CHUNKLOADING.ordinal()), new Object[] { " P ", "KDK", " P ", 'P', ModItems.plate_desh, 'K', Fluids.KEROSENE.getDict(1_000), 'D', new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_CHUNKLOADING.ordinal()) }); + addShapelessAuto(new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL.ordinal()), new Object[] { new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_CHUNKLOADING.ordinal()) }); + addShapelessAuto(new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_EXPRESS.ordinal()), new Object[] { new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_EXPRESS_CHUNKLOADING.ordinal()) }); + addRecipeAuto(new ItemStack(ModItems.drone, 1, EnumDroneType.REQUEST.ordinal()), new Object[] { "E", "D", 'E', ModItems.circuit_red_copper, 'D', new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_EXPRESS.ordinal()) }); + + addRecipeAuto(new ItemStack(ModItems.drone_linker), new Object[] { "T", "C", 'T', ModBlocks.drone_waypoint, 'C', ModItems.circuit_copper }); + addRecipeAuto(new ItemStack(ModBlocks.drone_waypoint, 4), new Object[] { "G", "T", "C", 'G', KEY_GREEN, 'T', Blocks.redstone_torch, 'C', ModItems.circuit_aluminium }); + addRecipeAuto(new ItemStack(ModBlocks.drone_crate), new Object[] { "T", "C", 'T', ModBlocks.drone_waypoint, 'C', ModBlocks.crate_steel }); + addRecipeAuto(new ItemStack(ModBlocks.drone_waypoint_request, 4), new Object[] { "G", "T", "C", 'G', KEY_BLUE, 'T', Blocks.redstone_torch, 'C', ModItems.circuit_copper }); + addRecipeAuto(new ItemStack(ModBlocks.drone_crate), new Object[] { "T", "C", "B", 'T', ModBlocks.drone_waypoint_request, 'C', ModBlocks.crate_steel, 'B', ModItems.circuit_red_copper }); + addRecipeAuto(new ItemStack(ModBlocks.drone_crate_requester), new Object[] { "T", "C", "B", 'T', ModBlocks.drone_waypoint_request, 'C', ModBlocks.crate_steel, 'B', KEY_YELLOW }); + addRecipeAuto(new ItemStack(ModBlocks.drone_crate_provider), new Object[] { "T", "C", "B", 'T', ModBlocks.drone_waypoint_request, 'C', ModBlocks.crate_steel, 'B', KEY_ORANGE }); addShapelessAuto(DictFrame.fromOne(ModItems.parts_legendary, EnumLegendaryType.TIER1), new Object[] { ModItems.ingot_chainsteel, ASBESTOS.ingot(), ModItems.gem_alexandrite }); addShapelessAuto(DictFrame.fromOne(ModItems.parts_legendary, EnumLegendaryType.TIER1, 3), new Object[] { DictFrame.fromOne(ModItems.parts_legendary, EnumLegendaryType.TIER2) }); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java index 32d1df24d..b506f3f6b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java @@ -300,7 +300,7 @@ public class TileEntityMachineTurbineGas extends TileEntityMachineBase implement } double consumption = fuelMaxCons.containsKey(tanks[0].getTankType()) ? fuelMaxCons.get(tanks[0].getTankType()) : 5D; - if(worldObj.getTotalWorldTime() % 20 == 0 && tanks[0].getTankType() != Fluids.OXYHYDROGEN) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, 3F); + if(worldObj.getTotalWorldTime() % 20 == 0 && tanks[0].getTankType() != Fluids.OXYHYDROGEN) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * 3); makePower(consumption, throttle); } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java index ac0cd0be4..495f38ca6 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java @@ -110,8 +110,10 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc this.sendingBrake = false; age++; - if(age >= 20) + if(age >= 20) { age = 0; + this.markChanged(); + } if((mode == 1 || mode == 2) && (age == 9 || age == 19)) fillFluidInit(tank.getTankType()); diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java index ec0d5ae57..00486dfda 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java @@ -113,8 +113,10 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements if(!hasExploded) { age++; - if(age >= 20) + if(age >= 20) { age = 0; + this.markChanged(); + } this.sendingBrake = true; tank.setFill(TileEntityBarrel.transmitFluidFairly(worldObj, tank, this, tank.getFill(), this.mode == 0 || this.mode == 1, this.mode == 1 || this.mode == 2, getConPos())); diff --git a/src/main/java/com/hbm/tileentity/network/RequestNetwork.java b/src/main/java/com/hbm/tileentity/network/RequestNetwork.java index cb1116004..8f98a9eb6 100644 --- a/src/main/java/com/hbm/tileentity/network/RequestNetwork.java +++ b/src/main/java/com/hbm/tileentity/network/RequestNetwork.java @@ -76,8 +76,24 @@ public class RequestNetwork { this.reachableNodes = new HashedSet(reachableNodes); this.lease = System.currentTimeMillis(); } + @Override public int hashCode() { return pos.hashCode(); } - @Override public boolean equals(Object o) { return pos.equals(o); } + @Override public boolean equals(Object toCompare) { + if(this == toCompare) { + return true; + } else if(!(toCompare instanceof PathNode)) { + return false; + } else { + PathNode node = (PathNode) toCompare; + if(this.pos.getX() != node.pos.getX()) { + return false; + } else if(this.pos.getY() != node.pos.getY()) { + return false; + } else { + return this.pos.getZ() == node.pos.getZ(); + } + } + } } /** Node created by providers, lists available items */ diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityDroneCrate.java b/src/main/java/com/hbm/tileentity/network/TileEntityDroneCrate.java index eb530096d..8a304914c 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityDroneCrate.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityDroneCrate.java @@ -114,6 +114,7 @@ public class TileEntityDroneCrate extends TileEntityMachineBase implements IGUIP if(loaded) { this.markDirty(); drone.setAppearance(1); + worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "hbm:item.unpack", 0.5F, 0.75F); } } @@ -136,7 +137,10 @@ public class TileEntityDroneCrate extends TileEntityMachineBase implements IGUIP this.markDirty(); - if(emptied) drone.setAppearance(0); + if(emptied) { + drone.setAppearance(0); + worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "hbm:item.unpack", 0.5F, 0.75F); + } } protected void loadFluid(EntityDeliveryDrone drone) { @@ -147,6 +151,7 @@ public class TileEntityDroneCrate extends TileEntityMachineBase implements IGUIP drone.fluid = new FluidStack(tank.getTankType(), tank.getFill()); this.tank.setFill(0); drone.setAppearance(2); + worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "hbm:item.unpack", 0.5F, 0.75F); this.markDirty(); } @@ -167,6 +172,7 @@ public class TileEntityDroneCrate extends TileEntityMachineBase implements IGUIP tank.setFill(tank.getMaxFill()); drone.fluid.fill = overshoot; } + worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "hbm:item.unpack", 0.5F, 0.75F); this.markDirty(); } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityDroneDock.java b/src/main/java/com/hbm/tileentity/network/TileEntityDroneDock.java index 3aa212846..82b6b93f0 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityDroneDock.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityDroneDock.java @@ -28,7 +28,7 @@ import net.minecraft.world.World; public class TileEntityDroneDock extends TileEntityRequestNetworkContainer implements IGUIProvider { - public static final int pathingDepth = 5; + public static final int pathingDepth = 10; public TileEntityDroneDock() { super(9); @@ -122,6 +122,7 @@ public class TileEntityDroneDock extends TileEntityRequestNetworkContainer imple drone.program.add(DroneProgram.DOCK); worldObj.spawnEntityInWorld(drone); + this.worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "hbm:block.storageOpen", 2.0F, 1.0F); return true; } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityDroneRequester.java b/src/main/java/com/hbm/tileentity/network/TileEntityDroneRequester.java index b3a7a942d..75ff11bf5 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityDroneRequester.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityDroneRequester.java @@ -74,6 +74,18 @@ public class TileEntityDroneRequester extends TileEntityRequestNetworkContainer public boolean canExtractItem(int i, ItemStack stack, int j) { return true; } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.matcher.readFromNBT(nbt); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + this.matcher.writeToNBT(nbt); + } @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetwork.java b/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetwork.java index 4e385f5d1..3e241d394 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetwork.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetwork.java @@ -3,15 +3,11 @@ package com.hbm.tileentity.network; import java.util.HashMap; import java.util.Iterator; -import com.hbm.packet.AuxParticlePacketNT; -import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.network.RequestNetwork.PathNode; import com.hbm.util.HashedSet; import com.hbm.util.ParticleUtil; import com.hbm.util.fauxpointtwelve.BlockPos; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.Vec3; @@ -59,18 +55,19 @@ public abstract class TileEntityRequestNetwork extends TileEntity { // draw debug crap for(PathNode known : knownNodes) { - ParticleUtil.spawnDebugLine(worldObj, + if(reachableNodes.contains(known)) ParticleUtil.spawnDebugLine(worldObj, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, (known.pos.getX() - pos.getX()) / 2D, (known.pos.getY() - pos.getY()) / 2D, (known.pos.getZ() - pos.getZ()) / 2D, reachableNodes.contains(known) ? 0x00ff00 : 0xff0000); } - NBTTagCompound data = new NBTTagCompound(); + /*NBTTagCompound data = new NBTTagCompound(); data.setString("type", "debug"); data.setInteger("color", 0x0000ff); data.setFloat("scale", 1.5F); data.setString("text", knownNodes.size() + " / " + reachableNodes.size() + " / " + localNodes.size()); PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); + */ //both following checks run the `hasPath` function which is costly, so it only runs one op at a time diff --git a/src/main/java/com/hbm/util/HashedSet.java b/src/main/java/com/hbm/util/HashedSet.java index 861862206..cdb13cdee 100644 --- a/src/main/java/com/hbm/util/HashedSet.java +++ b/src/main/java/com/hbm/util/HashedSet.java @@ -9,10 +9,13 @@ import java.util.Set; import org.apache.commons.lang3.NotImplementedException; /** - * Through whichever mechanism, HashSets allow for multiple instances with the same hash, even though they already has that hash during instantiation - * How is this possible? I don't know and I don't want to know. + * A crude implementation of the HashSet with a few key differences: + * - instead of being stored as the key, the objects are stored as values in the underlying HashMap with the hash being the key + * - consequently, things with matching hash are considered the same, skipping the equals check + * - no equals check means that collisions are possible, so be careful + * - the underlying HashMap is accessible, which means that the instances can be grabbed out of the HashedSet if a hash is supplied * - * This is a crude recreation using a HashMap and, instead of whichever braindead bullshit HashSet does, this HashMap uses the hashCode() as the key and the object as the value. + * This sack of crap was only intended for the drone request network code * * @author hbm * diff --git a/src/main/java/com/hbm/util/fauxpointtwelve/BlockPos.java b/src/main/java/com/hbm/util/fauxpointtwelve/BlockPos.java index c09a2dcc6..0113b4817 100644 --- a/src/main/java/com/hbm/util/fauxpointtwelve/BlockPos.java +++ b/src/main/java/com/hbm/util/fauxpointtwelve/BlockPos.java @@ -69,10 +69,10 @@ public class BlockPos { return this.z; } - /** 1.12 vanilla implementation */ + /** modified 1.12 vanilla implementation */ @Override public int hashCode() { - return (this.getY() + this.getZ() * 31) * 31 + this.getX(); + return (this.getY() + this.getZ() * 27644437) * 27644437 + this.getX(); } @Override diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 27a103ca0..e4131a9d4 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -309,6 +309,10 @@ container.dfcStabilizer=DFC-Stabilisator container.dfc_core=Dunkler Fusionskern container.diFurnace=Hochofen container.diFurnaceRTG=Atomarer Hochofen +container.droneCrate=Transportdronen-Kiste +container.droneDock=Dock +container.droneProvider=Anbieter +container.droneRequester=Abnehmer container.electricFurnace=Elektrischer Ofen container.epress=Hydraulische Presse container.factoryAdvanced=Fortgeschrittene Fabrik @@ -1703,6 +1707,12 @@ item.drillbit_steel_diamond.name=Stahl-Bohrspitze (Diamantbeschichtung) item.drillbit_tcalloy.name=Technetiumstahl-Bohrspitze item.drillbit_tcalloy_diamond.name=Technetiumstahl-Bohrspitze (Diamantbeschichtung) item.drill_titanium.name=Titanbohrer +item.drone.patrol.name=Transportdrone +item.drone.patrol_chunkloading.name=Chunkladende Transportdrone +item.drone.patrol_express.name=Express-Transportdrone +item.drone.patrol_express_chunkloading.name=Chunkladende Express-Transportdrone +item.drone.request.name=Logistikdrone +item.drone_linker.name=Transportdronen-Linker item.ducttape.name=Klebeband item.dust.name=Staub item.dynosphere_base.name=Blanke Dynosphere @@ -3825,6 +3835,12 @@ tile.dfc_stabilizer.name=DFC-Stabilisator tile.dirt_dead.name=Tote Erde tile.dirt_oily.name=Ölige Erde tile.drill_pipe.name=Bohrgestänge +tile.drone_crate.name=Transportdronen-Kiste +tile.drone_crate_provider.name=Logistik-Anbieterkiste +tile.drone_crate_requester.name=Logistik-Abnehmerkiste +tile.drone_dock.name=Logistikdronen-Dock +tile.drone_waypoint.name=Transportdronen-Wegpunkt +tile.drone_waypoint_request.name=Logistikdronen-Wegpunkt tile.door_bunker.name=Bunkertür tile.door_metal.name=Metalltür tile.door_office.name=Bürotür diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 06a1b2a17..be8530bcf 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -666,6 +666,10 @@ container.dfcReceiver=DFC Receiver container.dfcStabilizer=DFC Stabilizer container.diFurnace=Blast Furnace container.diFurnaceRTG=Nuclear Blast Furnace +container.droneCrate=Transport Drone Crate +container.droneDock=Dock +container.droneProvider=Provider +container.droneRequester=Requester container.electricFurnace=Electric Furnace container.epress=Electric Press container.factoryAdvanced=Advanced Factory @@ -2386,6 +2390,9 @@ item.door_bunker.name=Bunker Door item.door_metal.name=Metal Door item.door_office.name=Office Door item.dosimeter.name=Dosimeter +item.drax.name=Terra Drill +item.drax_mk2.name=Hardened Terra Drill +item.drax_mk3.name=Schrabidic Terra Drill item.drillbit_desh.name=Desh Drillbit item.drillbit_desh_diamond.name=Desh Drillbit (Diamond-Tipped) item.drillbit_ferro.name=Ferrouranium Drillbit @@ -2397,9 +2404,12 @@ item.drillbit_steel_diamond.name=Steel Drillbit (Diamond-Tipped) item.drillbit_tcalloy.name=Technetium Steel Drillbit item.drillbit_tcalloy_diamond.name=Technetium Steel Drillbit (Diamond-Tipped) item.drill_titanium.name=Titanium Drill -item.drax.name=Terra Drill -item.drax_mk2.name=Hardened Terra Drill -item.drax_mk3.name=Schrabidic Terra Drill +item.drone.patrol.name=Transport Drone +item.drone.patrol_chunkloading.name=Chunkloading Transport Drone +item.drone.patrol_express.name=Express Transport Drone +item.drone.patrol_express_chunkloading.name=Chunkloading Express Transport Drone +item.drone.request.name=Logistics Drone +item.drone_linker.name=Transport Drone Linker item.ducttape.name=Duct Tape item.dust.name=Dust item.dust.desc=I hate dust! @@ -4794,6 +4804,13 @@ tile.dfc_stabilizer.name=DFC Stabilizer tile.dirt_dead.name=Dead Dirt tile.dirt_oily.name=Oily Dirt tile.drill_pipe.name=Drill Pipe +tile.drone_crate.name=Transport Drone Crate +tile.drone_crate_provider.name=Logistics Provider Crate +tile.drone_crate_requester.name=Logistics Requester Crate +tile.drone_dock.name=Logistics Drone Dock +tile.drone_waypoint.name=Transport Drone Waypoint +tile.drone_waypoint.desc=Waypoint for transport drones$Use a transport drone linker to set the path$Click on each waypoint and crate in sequence to create the path,$then shift-click to clear the saved position$Right-click or shift-click the waypoint to change the waypoint's offset +tile.drone_waypoint_request.name=Logistics Drone Waypoint tile.door_bunker.name=Bunker Door tile.door_metal.name=Metal Door tile.door_office.name=Office Door diff --git a/src/main/resources/assets/hbm/textures/models/machines/drone.png b/src/main/resources/assets/hbm/textures/models/machines/drone.png index 3e55db1657ed91302da4ddcf1b59cd44cc33f628..66c3240ba138bb27124330dc4a9815acad2fc217 100644 GIT binary patch delta 2475 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 delta 2679 zcmV--3W)Wz6}T0UG=FbNL_t(|ob8%RZyQGzg}uA zR~BTINr@EopeP!n0~l&|S9jIDb?e?!hb8EOZ?9iVx;+~NZhzdqF9zA4+U?=gB%D8M zwcUHV8L?jM{=64@z2EwLkdTA#ayYSTM64HKy%-(%c`qFH{eI#=>#$$>W6*hEH|!b_ zyJ2eba2@w64W5CyMh_c*fkUeIlP zf196gzmd-$xC;*njhWr+?Dmsi?2|nKEq}3>sx=6wD`?NgoebZ;o)42B+R<*{da-l= zgQ#X5mqs_kk7{OKId-RGc0;LDYO5CSzyJQ8qqkHlkV_DiojIe+nl zSvGOvh$c=P(Zq=(nmBPp6DN*n;=~b6oH(M1o_fSE;8^sCPMr^GC)&;6W78vcc6_um zq8)IYKPT+aBeqLr-(J6#9F=1_8Q!V?UV217HefyVh)x4Lbg#R7zY~s9FVRkX?RKAc z?%XksJFGUbL#jIn4x2#xRS6FI3xC)4<#Zq(v0gl!A;)zpW;g7cN8Gr5Ukv(uM7Qzf z^ZA31WfHi4Ezx7>$|Hsey~cOgvs?h`FsD`q!T1Jss^-ASa+sp1A7`<;dV9#uS?aNf zBf5S)&RNbkPsZf)`6Ic89uaYzj?fYD`RAV>X=Hx$%{RRx;{WNKrTXftuYZyt2+R%J zwn>tN|J7;)K|r-yC7n)FE|-a-$ov9bDwTNh~0rm=2QC=_sA7o`+& z98-Mul+BF|EK4ymGJ@xMgnwb!=s+oRok}&nB}B}Kl5A~l^&H^Eix>N9a5pI1wuz#M zFTVJK#l=PP`8=-c;&~oYO48{xK@i|L4xZ=n$tRz%xVXrVKmJI$Tt-Ss6o&l$AO9qd zV}uY$Dchn1KnQ^lf-nq`Qu3dF|7#!y?iDJEBBCf_adDCR_wO?@GJk^a`((3O>h(HN z6p>D+snu$Do@d%Qj)M?_IF6}St0YOn#KZ(jDLl`^aU5fGy*)WmyD4Kz|fPBuT=^$jFYUIZjC1wv9n?923Vej^hx=F`nlU1OcAsF*-Vm zQi{>hQBtWC>2w+?B}ysk^#CD+nR%T%JkK*7>F5f>5Ftd{vtfXQMiP`#lF4MuEJ-Oz zrBbHh*47qL6yf_muIqLT>r^UboFJvdbzPHmQ>m2cXP6>E!+$uU)d0`)h~t=gy>6V5 zB#Bw))oK;Tag32lHRys?`sn>fd zl_HK~llZFDDoQDnDD}J0Fx<9n^S5lSf; z9UaB@eS+Xs5{%>6@C#iAx3fq9-}g~UQK?iALXgR1xO3+YtBd!kR4UxMb&JnF`^-dG zFAT~NQm^MQ3{gtqI1bfn70>f_gntkO*tSi*UT6J`UYH(4)UykK&2(#&eHSY&K$od15iK($&0pk8n6X7z?kCq~C{s8lLM zQOMbI=k_$fg@pw%KR=)7v(x>))({_l_+e71RDXrf_ofQr!n1d_X5XqSix?5JK?FFTXH5J8Q~prBXpk$(wJ!Nx58R za&po*rC2QD`#x{H@kU$wJwn{Pc{2f$g@pxuua(*+w5x6Vy>2XxyLa!hzP?T-lL30` z5r5Ou)2ytlpp@dLpMGkLq)EAj5Uj4Qw%s#5w2w;)vdk7<^Ab(Bb^AVI`{rj~B}qn6 z#CP9)$2;%5!-WeMc>eskq1%>awdoO4Q-4z|FE6vayv*$EtSO&*rZuzF(6m}#+qS)< z{jk935lc%;%+1Z2**faa({&& z2#g*9ugYXPohF@5W7{^iZR2^KFytyk#w!vY1b^a#gsc=+%kv$M0*>val+f^o{m z#s(KITre`8PIkJ)YVA{B*J?FmsCGuD_WPajn>TOnwP^wk9|m0 z2!epej~_EVJ#ECBYPHI#Q>Tcch<`I@&M-1EVk%0dQX!Yi;W!RSl29&}86O{~P$(GT zr?vgm)YN|baAfGJN2F3Ik|Z(fT}RD!J>v1>$3T1e++9>he1G|p)2B}( zgy7PpOT=-^^XJbwd-iNwgy@}Sk|ZVp>Sdw%hu(wOwvF%mZSA|Q;cmHOuWNq4XwxGu zU%t%B$_kGjJz{KZ%!L1g2M@S%h(Il?;BFIva-U=%napnnS4Iad+)txGzYCp>8OgL zh+3^?N~q&Frri3zzoUI8Y@hj~<`c@YEUsO<#&5sLPn6y5VYQmK?-lCABB1u6&ve*gV<>Dq?8m21;)n4ObKmm|HBVI9JdbuP*0vbLF*BE*Ql`ut|e+C-mP$xkl l1P>oRY%8hTq1z1${sL#t?ET{|VBi1%002ovPDHLkV1i-TIphEU diff --git a/src/main/resources/assets/hbm/textures/models/machines/drone_request.png b/src/main/resources/assets/hbm/textures/models/machines/drone_request.png index 082c3f67dbc42dde93872c8b8f53b92c1583947b..314d796552671040598bc2720ee04a2f77133696 100644 GIT binary patch delta 2730 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 delta 2735 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 From 47d645d481bb0487a08f2d54dc42086f47caa195 Mon Sep 17 00:00:00 2001 From: sdddddf80 <2980187979@qq.com> Date: Mon, 2 Oct 2023 20:21:29 +0800 Subject: [PATCH 329/432] A simple tool for generating custom machine multi block structure code Add a simple tool for generating custom machine multi block structure code, as manually filling in these structural codes is really exhausting, especially when the structure is large. --- src/main/java/com/hbm/blocks/ModBlocks.java | 3 + .../com/hbm/blocks/machine/BlockCMAnchor.java | 43 +++++ src/main/java/com/hbm/items/ModItems.java | 5 +- .../com/hbm/items/tool/ItemCMStructure.java | 172 ++++++++++++++++++ src/main/resources/assets/hbm/lang/en_US.lang | 2 + .../items/structure_custommachine.png | Bin 0 -> 170 bytes 6 files changed, 224 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/hbm/blocks/machine/BlockCMAnchor.java create mode 100644 src/main/java/com/hbm/items/tool/ItemCMStructure.java create mode 100644 src/main/resources/assets/hbm/textures/items/structure_custommachine.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 2e4a6cda9..75c4fd2ae 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -887,6 +887,7 @@ public class ModBlocks { public static Block cm_circuit; public static Block cm_port; public static Block custom_machine; + public static Block cm_anchor; public static Block pwr_fuel; public static Block pwr_control; @@ -2060,6 +2061,7 @@ public class ModBlocks { cm_circuit = new BlockCM(Material.iron, EnumCMCircuit.class, true, true).setBlockName("cm_circuit").setCreativeTab(MainRegistry.machineTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":cm_circuit"); cm_port = new BlockCMPort(Material.iron, EnumCMMaterials.class, true, true).setBlockName("cm_port").setCreativeTab(MainRegistry.machineTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":cm_port"); custom_machine = new BlockCustomMachine().setBlockName("custom_machine").setCreativeTab(MainRegistry.machineTab).setLightLevel(1F).setHardness(5.0F).setResistance(10.0F); + cm_anchor = new BlockCMAnchor().setBlockName("custom_machine_anchor").setCreativeTab(MainRegistry.machineTab).setHardness(5.0F).setResistance(10.0F); pwr_fuel = new BlockPillarPWR(Material.iron, RefStrings.MODID + ":pwr_fuel_top").setBlockName("pwr_fuel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_fuel_side"); pwr_control = new BlockPillarPWR(Material.iron, RefStrings.MODID + ":pwr_control_top").setBlockName("pwr_control").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_control_side"); @@ -3418,6 +3420,7 @@ public class ModBlocks { register(cm_tank); register(cm_circuit); register(cm_port); + register(cm_anchor); //PWR register(pwr_fuel); diff --git a/src/main/java/com/hbm/blocks/machine/BlockCMAnchor.java b/src/main/java/com/hbm/blocks/machine/BlockCMAnchor.java new file mode 100644 index 000000000..bafa683a3 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/BlockCMAnchor.java @@ -0,0 +1,43 @@ +package com.hbm.blocks.machine; + +import com.hbm.lib.RefStrings; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; + +public class BlockCMAnchor extends Block { + @SideOnly(Side.CLIENT) + private IIcon iconFront; + + public BlockCMAnchor() { + super(Material.iron); + } + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.iconFront = iconRegister.registerIcon(RefStrings.MODID + ":cm_terminal_front"); + this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":cm_terminal_side"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + return metadata == 0 && side == 3 ? this.iconFront : (side == metadata ? this.iconFront : this.blockIcon); + } + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { + int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; + + if(i == 0) world.setBlockMetadataWithNotify(x, y, z, 2, 2); + if(i == 1) world.setBlockMetadataWithNotify(x, y, z, 5, 2); + if(i == 2) world.setBlockMetadataWithNotify(x, y, z, 3, 2); + if(i == 3) world.setBlockMetadataWithNotify(x, y, z, 4, 2); + } +} diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index a080abd59..a0d8adc7b 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -2213,6 +2213,7 @@ public class ModItems { public static Item structure_pattern; public static Item structure_randomized; public static Item structure_randomly; + public static Item structure_custommachine; public static Item rod_of_discord; @@ -4482,7 +4483,8 @@ public class ModItems { structure_pattern = new ItemStructurePattern().setUnlocalizedName("structure_pattern").setMaxStackSize(1).setCreativeTab(null).setFull3D().setTextureName(RefStrings.MODID + ":structure_pattern"); structure_randomized = new ItemStructureRandomized().setUnlocalizedName("structure_randomized").setMaxStackSize(1).setCreativeTab(null).setFull3D().setTextureName(RefStrings.MODID + ":structure_randomized"); structure_randomly = new ItemStructureRandomly().setUnlocalizedName("structure_randomly").setMaxStackSize(1).setCreativeTab(null).setFull3D().setTextureName(RefStrings.MODID + ":structure_randomly"); - + structure_custommachine = new ItemCMStructure().setUnlocalizedName("structure_custommachine").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setFull3D().setTextureName(RefStrings.MODID + ":structure_custommachine"); + rod_of_discord = new ItemDiscord().setUnlocalizedName("rod_of_discord").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setFull3D().setTextureName(RefStrings.MODID + ":rod_of_discord"); nuke_starter_kit = new ItemStarterKit().setUnlocalizedName("nuke_starter_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":nuke_starter_kit"); @@ -7942,6 +7944,7 @@ public class ModItems { GameRegistry.registerItem(structure_pattern, structure_pattern.getUnlocalizedName()); GameRegistry.registerItem(structure_randomized, structure_randomized.getUnlocalizedName()); GameRegistry.registerItem(structure_randomly, structure_randomly.getUnlocalizedName()); + GameRegistry.registerItem(structure_custommachine, structure_custommachine.getUnlocalizedName()); GameRegistry.registerItem(rod_of_discord, rod_of_discord.getUnlocalizedName()); //GameRegistry.registerItem(analyzer, analyzer.getUnlocalizedName()); //GameRegistry.registerItem(remote, remote.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/tool/ItemCMStructure.java b/src/main/java/com/hbm/items/tool/ItemCMStructure.java new file mode 100644 index 000000000..cb72b7d3c --- /dev/null +++ b/src/main/java/com/hbm/items/tool/ItemCMStructure.java @@ -0,0 +1,172 @@ +package com.hbm.items.tool; + +import java.io.File; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; +import com.google.gson.stream.JsonWriter; +import com.hbm.blocks.ILookOverlay; +import com.hbm.blocks.ModBlocks; +import com.hbm.main.MainRegistry; +import com.hbm.util.fauxpointtwelve.BlockPos; +import net.minecraft.block.Block; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.common.util.ForgeDirection; + +import java.io.File; +import java.io.FileWriter; +import java.util.ArrayList; +import java.util.List; + +public class ItemCMStructure extends Item implements ILookOverlay { + File file = new File(MainRegistry.configHbmDir, "CMstructureOutput.txt"); + public static BlockPos getAnchor(ItemStack stack) { + + if(!stack.hasTagCompound()) { + return null; + } + + return new BlockPos(stack.stackTagCompound.getInteger("anchorX"), stack.stackTagCompound.getInteger("anchorY"), stack.stackTagCompound.getInteger("anchorZ")); + } + public static void setAnchor(ItemStack stack, int x, int y, int z) { + + if(stack.stackTagCompound == null) { + stack.stackTagCompound = new NBTTagCompound(); + } + + stack.stackTagCompound.setInteger("anchorX", x); + stack.stackTagCompound.setInteger("anchorY", y); + stack.stackTagCompound.setInteger("anchorZ", z); + } + public static void writeToFile(File config,ItemStack stack,World world){ + int anchorX = stack.stackTagCompound.getInteger("anchorX"); + int anchorY = stack.stackTagCompound.getInteger("anchorY"); + int anchorZ = stack.stackTagCompound.getInteger("anchorZ"); + int x1=stack.stackTagCompound.getInteger("x1"); + int y1=stack.stackTagCompound.getInteger("y1"); + int z1=stack.stackTagCompound.getInteger("z1"); + int x2=stack.stackTagCompound.getInteger("x2"); + int y2=stack.stackTagCompound.getInteger("y2"); + int z2=stack.stackTagCompound.getInteger("z2"); + ForgeDirection dir = ForgeDirection.getOrientation(world.getBlockMetadata(anchorX,anchorY,anchorZ)); + //ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + int z=z1;z1=z text = new ArrayList(); + + BlockPos anchor = getAnchor(stack); + + if(anchor == null) { + + text.add(EnumChatFormatting.RED + "No Anchor"); + } else { + int anchorX = stack.stackTagCompound.getInteger("anchorX"); + int anchorY = stack.stackTagCompound.getInteger("anchorY"); + int anchorZ = stack.stackTagCompound.getInteger("anchorZ"); + text.add(EnumChatFormatting.GOLD + "Anchor: " + anchorX + " / " + anchorY + " / " + anchorZ); + if(stack.stackTagCompound.hasKey("x1")){ + int x1=stack.stackTagCompound.getInteger("x1"); + int y1=stack.stackTagCompound.getInteger("y1"); + int z1=stack.stackTagCompound.getInteger("z1"); + + text.add(EnumChatFormatting.YELLOW + "Position1: " + x1 + " / " + y1 + " / " + z1); + } + if(stack.stackTagCompound.hasKey("x2")) { + int x2=stack.stackTagCompound.getInteger("x2"); + int y2=stack.stackTagCompound.getInteger("y2"); + int z2=stack.stackTagCompound.getInteger("z2"); + text.add(EnumChatFormatting.YELLOW + "Position2: " + x2 + " / " + y2 + " / " + z2); + } + } + + ILookOverlay.printGeneric(event, this.getItemStackDisplayName(stack), 0xffff00, 0x404000, text); + } +} diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index be8530bcf..c44050231 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -4236,6 +4236,7 @@ item.volcanic_pickaxe.name=Molten Pickaxe item.wand_d.name=Debug Wand item.wand_k.name=Construction Wand item.wand_s.name=Structure Wand +item.structure_custommachine.name=Custom Machine Structure Output Wand item.warhead_buster_large.name=Large Bunker Buster Warhead item.warhead_buster_medium.name=Medium Bunker Buster Warhead item.warhead_buster_small.name=Small Bunker Buster Warhead @@ -4638,6 +4639,7 @@ tile.cluster_depth_titanium.name=Depth Titanium Ore Cluster tile.cluster_depth_tungsten.name=Depth Tungsten Ore Cluster tile.cluster_iron.name=Iron Ore Cluster tile.cluster_titanium.name=Titanium Ore Cluster +tile.custom_machine_anchor.name=Custom Machine Structure Positioning Anchor tile.cm_block.alloy.name=Advanced Alloy Machine Casing tile.cm_block.desh.name=Desh Machine Casing tile.cm_block.steel.name=Steel Machine Casing diff --git a/src/main/resources/assets/hbm/textures/items/structure_custommachine.png b/src/main/resources/assets/hbm/textures/items/structure_custommachine.png new file mode 100644 index 0000000000000000000000000000000000000000..3f95a0a781914aed75fe4978b81787ac55097804 GIT binary patch literal 170 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|QaoK8Lo9la zUI^qmpuod?p=9~Xzy6PNcl8@yKii Date: Mon, 2 Oct 2023 22:06:24 +0200 Subject: [PATCH 330/432] fuck you --- changelog | 45 ++--------- gradle.properties | 2 +- .../java/com/hbm/config/GeneralConfig.java | 4 + .../hbm/entity/item/EntityFallingBlockNT.java | 2 +- .../com/hbm/inventory/OreDictManager.java | 34 +++++---- src/main/java/com/hbm/inventory/OreNames.java | 3 +- .../inventory/material/MaterialShapes.java | 1 + .../java/com/hbm/inventory/material/Mats.java | 20 ++--- .../inventory/recipes/AssemblerRecipes.java | 72 ++++++++++-------- src/main/java/com/hbm/items/ModItems.java | 3 + src/main/java/com/hbm/lib/RefStrings.java | 2 +- .../java/com/hbm/main/CraftingManager.java | 5 +- .../entity/item/RenderFallingBlockNT.java | 2 +- src/main/resources/assets/hbm/lang/de_DE.lang | 1 + src/main/resources/assets/hbm/lang/en_US.lang | 1 + .../hbm/textures/items/heavy_component.png | Bin 0 -> 315 bytes 16 files changed, 94 insertions(+), 103 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/items/heavy_component.png diff --git a/changelog b/changelog index 9afc864be..a98335f00 100644 --- a/changelog +++ b/changelog @@ -1,44 +1,11 @@ ## Added -* Powered condenser - * A large form of the condenser that is 10x faster than the large cooling tower - * Needs 10HE per mB condensed (roughly 5% of the power output from steam, using industrial turbines) - * Allows for more compact setups, setups underground where cooling towers wouldn't fit, and ones with ridiculously high LPS throughput where multiple large cooling towers were necessary -* Transport drones - * Will move in a circular path between transport drone crates, loading and unloading either items or fluids - * Finally allows for automated long-range transport without ridiculously long conveyor belts or impractical pipelines - * Come in 4 variants, slow and express, each can be chunkloading or not - * To create a route, place crates in input and output mode, then add waypoints for avoiding obstacles, get a transport drone linker and click on each waypoint/crate in order, then shift-click to delete the last cached position from the linker (in order to not screw up future links) - * Waypoints can be adjusted in height, right click or shift-click to adjust the offset of the actual waypoint compared to the waypoint block. Make sure to adjust the waypoints before linking. - * Waypoints are unlimited in range, as all they do is tell drones "go to XYZ position", it's just necessary for the previous waypoint to be loaded during the linking process - * If there are no obstacles between the two crates, waypoints are entirely optional. -* Logistic drones - * An automated system that detects supply and demand and sends logistics drones to transport items - * Drone docks will detect logistics waypoints (different from transport waypoints!), providers and requesters in a 11x11 chunk range - * Docks, providers, requesters and waypoints will connect to each other automatically in a 5x5 chunk detection range with a maximum range of 24 blocks - * Logistics waypoints have an offset of 5 blocks which cannot be changed, unlike transport waypoints. The offset's direction obviously changes with the orientation of the waypoint block - * For debugging purposes, the connections are currently visible, this will be cchanged in the future - * Drones have a path depth of only 10 hops, pathfinding cannot go further than 10 waypoints/crates/docks - * Requests are created by requester crates if a request filter is set, and the requested item is not present in its buffer - * Provider offers are created automatically if a provider holds an item - * Docks will spawn a logistics drone if a drone is loaded (it can hold up to 9), the drone will path to the provider, then the requester, then back to the dock where it will try to jump back into its inventory - * A dock will randomly choose a provider-requester pair in its range every 5 seconds, to supply larger logistics networks, use more docks +* Expensive mode + * Horrible new config option that replaces several crafting items in key machine recipes with the all new heavy components + * Heavy components are 256 cast plates combined in an assembler + * ## Changed -* Updated russian localization -* Retextured the groundwater pumps to be more NTM-like and less GTCE-like -* There is now a custom implementation used for falling block entities used by things like impulse grenades, the nuke's shockwave and anvils - * This should fix crashes caused by improper implementation of certain modded blocks not working with the falling block code - * This also makes it so that anvils render properly when falling - * The new falling blocks are a bit more janky and less smooth, most likely because of some hardcoded mojang hack that smoothens out the vanilla one that I couldn't find -* The redcoil capacitor has been reverted to use meta instead of NBT, making it easier to automate with meta-based filters +* Drones are now made from plastic ## Fixed -* Fixed issue where for certain system locales, the thousand separator would display as an NBS which can't be rendered using mc's font renderer, yielding an ugly unknown glyph -* Fixed critical IO issue where assemblers and chemical plants would ignore side IO restrictions and import/export items from slots that they really shouldn't -* Combination ovens no longer produce soot when not in use -* The power detector now has the connection priority "HIGH", which should fix issues where they don't receive any power in larger networks due to their low network weight -* Fixed power gauge blocks sometimes crashing servers because of improper OC compat, the compat has been removed for the time being -* Fixed blocks with the "Any" ore dict prefix being shreddable, converting things from ore dict groups -* Fixed fusion reactor exploding into un-welded magnets, wasting tons of steel in the process -* Fixed assemblers not saving their power buffer or progress -* Fixed combined cycle gas turbine creating 25x more soot than it's supposed to +* Fixed the new falling block implementation crashing on certain blocks \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 3bce5673c..017bb4d71 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4739 +mod_build_number=4740 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ diff --git a/src/main/java/com/hbm/config/GeneralConfig.java b/src/main/java/com/hbm/config/GeneralConfig.java index 97bdee342..5b279421c 100644 --- a/src/main/java/com/hbm/config/GeneralConfig.java +++ b/src/main/java/com/hbm/config/GeneralConfig.java @@ -33,6 +33,8 @@ public class GeneralConfig { public static boolean enableKeybindOverlap = true; public static int hintPos = 0; + public static boolean enableExpensiveMode = false; + public static boolean enable528 = false; public static boolean enable528ReasimBoilers = true; public static boolean enable528ColtanDeposit = true; @@ -90,6 +92,8 @@ public class GeneralConfig { enableStatReRegistering = config.get(CATEGORY_GENERAL, "1.33_enableStatReRegistering", true, "If enabled, will re-register item crafting/breaking/usage stats in order to fix a forge bug where modded items just won't show up.").getBoolean(true); enableKeybindOverlap = config.get(CATEGORY_GENERAL, "1.34_enableKeybindOverlap", true, "If enabled, will handle keybinds that would otherwise be ignored due to overlapping.").getBoolean(true); + enableExpensiveMode = config.get(CATEGORY_GENERAL, "1.99_enableExpensiveMode", false, "It does what the name implies.").getBoolean(false); + final String CATEGORY_528 = CommonConfig.CATEGORY_528; config.addCustomCategoryComment(CATEGORY_528, "CAUTION\n" diff --git a/src/main/java/com/hbm/entity/item/EntityFallingBlockNT.java b/src/main/java/com/hbm/entity/item/EntityFallingBlockNT.java index 483e0dd95..cabc90143 100644 --- a/src/main/java/com/hbm/entity/item/EntityFallingBlockNT.java +++ b/src/main/java/com/hbm/entity/item/EntityFallingBlockNT.java @@ -25,7 +25,7 @@ import net.minecraft.world.World; public class EntityFallingBlockNT extends Entity { private Block fallingBlock; - public int fallingMeta = -1; + private int fallingMeta = -1; public int fallingTicks; public boolean canDrop; private boolean destroyOnLand; diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index 68339d68a..5a3169ae0 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -502,8 +502,9 @@ public class OreDictManager { OreDictionary.registerOre(KEY_CIRCUIT_BISMUTH, circuit_arsenic); for(NTMMaterial mat : Mats.orderedList) { - if(mat.smeltable == SmeltingBehavior.SMELTABLE && mat.shapes.contains(MaterialShapes.CASTPLATE)) { - for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.CASTPLATE.name() + name, new ItemStack(ModItems.plate_cast, 1, mat.id)); + if(mat.smeltable == SmeltingBehavior.SMELTABLE) { + if(mat.shapes.contains(MaterialShapes.CASTPLATE)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.CASTPLATE.name() + name, new ItemStack(ModItems.plate_cast, 1, mat.id)); + if(mat.shapes.contains(MaterialShapes.HEAVY_COMPONENT)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.HEAVY_COMPONENT.name() + name, new ItemStack(ModItems.heavy_component, 1, mat.id)); } } @@ -602,7 +603,7 @@ public class OreDictManager { public static void registerGroups() { ANY_PLASTIC.addPrefix(INGOT, true).addPrefix(DUST, true).addPrefix(BLOCK, true); ANY_HARDPLASTIC.addPrefix(INGOT, true); - ANY_RESISTANTALLOY.addPrefix(INGOT, true).addPrefix(DUST, true).addPrefix(PLATECAST, true).addPrefix(BLOCK, true); + ANY_RESISTANTALLOY.addPrefix(INGOT, true).addPrefix(DUST, true).addPrefix(PLATECAST, true).addPrefix(HEAVY_COMPONENT, true).addPrefix(BLOCK, true); ANY_TAR.addPrefix(ANY, false); } @@ -640,19 +641,20 @@ public class OreDictManager { /* * Quick access methods to grab ore names for recipes. */ - public String any() { return ANY + mats[0]; } - public String nugget() { return NUGGET + mats[0]; } - public String tiny() { return TINY + mats[0]; } - public String ingot() { return INGOT + mats[0]; } - public String dustTiny() { return DUSTTINY + mats[0]; } - public String dust() { return DUST + mats[0]; } - public String gem() { return GEM + mats[0]; } - public String crystal() { return CRYSTAL + mats[0]; } - public String plate() { return PLATE + mats[0]; } - public String plateCast() { return PLATECAST + mats[0]; } - public String billet() { return BILLET + mats[0]; } - public String block() { return BLOCK + mats[0]; } - public String ore() { return ORE + mats[0]; } + public String any() { return ANY + mats[0]; } + public String nugget() { return NUGGET + mats[0]; } + public String tiny() { return TINY + mats[0]; } + public String ingot() { return INGOT + mats[0]; } + public String dustTiny() { return DUSTTINY + mats[0]; } + public String dust() { return DUST + mats[0]; } + public String gem() { return GEM + mats[0]; } + public String crystal() { return CRYSTAL + mats[0]; } + public String plate() { return PLATE + mats[0]; } + public String plateCast() { return PLATECAST + mats[0]; } + public String heavyComp() { return HEAVY_COMPONENT + mats[0]; } + public String billet() { return BILLET + mats[0]; } + public String block() { return BLOCK + mats[0]; } + public String ore() { return ORE + mats[0]; } public String[] anys() { return appendToAll(ANY); } public String[] nuggets() { return appendToAll(NUGGET); } public String[] tinys() { return appendToAll(TINY); } diff --git a/src/main/java/com/hbm/inventory/OreNames.java b/src/main/java/com/hbm/inventory/OreNames.java index 91cbb7099..7c2e3a947 100644 --- a/src/main/java/com/hbm/inventory/OreNames.java +++ b/src/main/java/com/hbm/inventory/OreNames.java @@ -19,8 +19,9 @@ public class OreNames { public static final String BLOCK = "block"; public static final String ORE = "ore"; public static final String ORENETHER = "oreNether"; + public static final String HEAVY_COMPONENT = "componentHeavy"; public static final String[] prefixes = new String[] { - ANY, NUGGET, TINY, INGOT, DUSTTINY, DUST, GEM, CRYSTAL, PLATE, PLATECAST, BILLET, BLOCK, ORE, ORENETHER + ANY, NUGGET, TINY, INGOT, DUSTTINY, DUST, GEM, CRYSTAL, PLATE, PLATECAST, BILLET, BLOCK, ORE, ORENETHER, HEAVY_COMPONENT }; } diff --git a/src/main/java/com/hbm/inventory/material/MaterialShapes.java b/src/main/java/com/hbm/inventory/material/MaterialShapes.java index a93ef368a..9b901a520 100644 --- a/src/main/java/com/hbm/inventory/material/MaterialShapes.java +++ b/src/main/java/com/hbm/inventory/material/MaterialShapes.java @@ -22,6 +22,7 @@ public class MaterialShapes { public static final MaterialShapes CASTPLATE = new MaterialShapes(INGOT.quantity * 3, "plateTriple"); public static final MaterialShapes QUART = new MaterialShapes(162); public static final MaterialShapes BLOCK = new MaterialShapes(INGOT.quantity * 9, "block"); + public static final MaterialShapes HEAVY_COMPONENT = new MaterialShapes(CASTPLATE.quantity * 256, "componentHeavy"); public static void registerCompatShapes() { diff --git a/src/main/java/com/hbm/inventory/material/Mats.java b/src/main/java/com/hbm/inventory/material/Mats.java index b4adf18aa..e312ff256 100644 --- a/src/main/java/com/hbm/inventory/material/Mats.java +++ b/src/main/java/com/hbm/inventory/material/Mats.java @@ -94,11 +94,11 @@ public class Mats { public static final NTMMaterial MAT_GHIORSIUM = makeSmeltable(12836, GH336, 0xF4EFE1, 0x2A3306, 0xC6C6A1).setShapes(NUGGET, BILLET, INGOT, BLOCK); //Base metals - public static final NTMMaterial MAT_TITANIUM = makeSmeltable(2200, TI, 0xF7F3F2, 0x4F4C4B, 0xA99E79).setShapes(INGOT, DUST, PLATE, CASTPLATE, BLOCK); - public static final NTMMaterial MAT_COPPER = makeSmeltable(2900, CU, 0xFDCA88, 0x601E0D, 0xC18336).setShapes(WIRE, INGOT, DUST, PLATE, CASTPLATE, BLOCK); - public static final NTMMaterial MAT_TUNGSTEN = makeSmeltable(7400, W, 0x868686, 0x000000, 0x977474).setShapes(WIRE, INGOT, DUST, BLOCK); - public static final NTMMaterial MAT_ALUMINIUM = makeSmeltable(1300, AL, 0xFFFFFF, 0x344550, 0xD0B8EB).setShapes(WIRE, INGOT, DUST, PLATE, CASTPLATE, BLOCK); - public static final NTMMaterial MAT_LEAD = makeSmeltable(8200, PB, 0xA6A6B2, 0x03030F, 0x646470).setShapes(NUGGET, INGOT, DUST, PLATE, CASTPLATE, BLOCK); + public static final NTMMaterial MAT_TITANIUM = makeSmeltable(2200, TI, 0xF7F3F2, 0x4F4C4B, 0xA99E79).setShapes(INGOT, DUST, PLATE, CASTPLATE, BLOCK, HEAVY_COMPONENT); + public static final NTMMaterial MAT_COPPER = makeSmeltable(2900, CU, 0xFDCA88, 0x601E0D, 0xC18336).setShapes(WIRE, INGOT, DUST, PLATE, CASTPLATE, BLOCK, HEAVY_COMPONENT); + public static final NTMMaterial MAT_TUNGSTEN = makeSmeltable(7400, W, 0x868686, 0x000000, 0x977474).setShapes(WIRE, INGOT, DUST, CASTPLATE, BLOCK, HEAVY_COMPONENT); + public static final NTMMaterial MAT_ALUMINIUM = makeSmeltable(1300, AL, 0xFFFFFF, 0x344550, 0xD0B8EB).setShapes(WIRE, INGOT, DUST, PLATE, CASTPLATE, BLOCK, HEAVY_COMPONENT); + public static final NTMMaterial MAT_LEAD = makeSmeltable(8200, PB, 0xA6A6B2, 0x03030F, 0x646470).setShapes(NUGGET, INGOT, DUST, PLATE, CASTPLATE, BLOCK, HEAVY_COMPONENT); public static final NTMMaterial MAT_BISMUTH = makeSmeltable(8300, BI, 0xB200FF).setShapes(NUGGET, BILLET, INGOT, DUST, BLOCK); public static final NTMMaterial MAT_ARSENIC = makeSmeltable(3300, AS, 0x6CBABA, 0x242525, 0x558080).setShapes(NUGGET, INGOT); public static final NTMMaterial MAT_TANTALIUM = makeSmeltable(7300, TA, 0xFFFFFF, 0x1D1D36, 0xA89B74).setShapes(NUGGET, INGOT, DUST, BLOCK); @@ -112,16 +112,16 @@ public class Mats { public static final NTMMaterial MAT_OSMIRIDIUM = makeSmeltable(7699, OSMIRIDIUM, 0xDBE3EF, 0x7891BE, 0xACBDD9).setShapes(NUGGET, INGOT, CASTPLATE); //Alloys - public static final NTMMaterial MAT_STEEL = makeSmeltable(_AS + 0, STEEL, 0xAFAFAF, 0x0F0F0F, 0x4A4A4A).setShapes(DUSTTINY, INGOT, DUST, PLATE, CASTPLATE, BLOCK); + public static final NTMMaterial MAT_STEEL = makeSmeltable(_AS + 0, STEEL, 0xAFAFAF, 0x0F0F0F, 0x4A4A4A).setShapes(DUSTTINY, INGOT, DUST, PLATE, CASTPLATE, BLOCK, HEAVY_COMPONENT); public static final NTMMaterial MAT_MINGRADE = makeSmeltable(_AS + 1, MINGRADE, 0xFFBA7D, 0xAF1700, 0xE44C0F).setShapes(WIRE, INGOT, DUST, BLOCK); - public static final NTMMaterial MAT_ALLOY = makeSmeltable(_AS + 2, ALLOY, 0xFF8330, 0x700000, 0xFF7318).setShapes(WIRE, INGOT, DUST, PLATE, CASTPLATE, BLOCK); + public static final NTMMaterial MAT_ALLOY = makeSmeltable(_AS + 2, ALLOY, 0xFF8330, 0x700000, 0xFF7318).setShapes(WIRE, INGOT, DUST, PLATE, CASTPLATE, BLOCK, HEAVY_COMPONENT); public static final NTMMaterial MAT_DURA = makeSmeltable(_AS + 3, DURA, 0x183039, 0x030B0B, 0x376373).setShapes(INGOT, DUST, BLOCK); public static final NTMMaterial MAT_SATURN = makeSmeltable(_AS + 4, BIGMT, 0x4DA3AF, 0x00000C, 0x4DA3AF).setShapes(INGOT, DUST, BLOCK); - public static final NTMMaterial MAT_DESH = makeSmeltable(_AS + 12, DESH, 0xFF6D6D, 0x720000, 0xF22929).setShapes(INGOT, DUST, CASTPLATE, BLOCK); + public static final NTMMaterial MAT_DESH = makeSmeltable(_AS + 12, DESH, 0xFF6D6D, 0x720000, 0xF22929).setShapes(INGOT, DUST, CASTPLATE, BLOCK, HEAVY_COMPONENT); public static final NTMMaterial MAT_STAR = makeSmeltable(_AS + 5, STAR, 0xCCCCEA, 0x11111A, 0xA5A5D3).setShapes(INGOT, DUST, BLOCK); public static final NTMMaterial MAT_FERRO = makeSmeltable(_AS + 7, FERRO, 0xB7B7C9, 0x101022, 0x6B6B8B).setShapes(INGOT); - public static final NTMMaterial MAT_TCALLOY = makeSmeltable(_AS + 6, TCALLOY, 0xD4D6D6, 0x323D3D, 0x9CA6A6).setShapes(INGOT, DUST, CASTPLATE); - public static final NTMMaterial MAT_CDALLOY = makeSmeltable(_AS + 13, CDALLOY, 0xF7DF8F, 0x604308, 0xFBD368).setShapes(INGOT, CASTPLATE); + public static final NTMMaterial MAT_TCALLOY = makeSmeltable(_AS + 6, TCALLOY, 0xD4D6D6, 0x323D3D, 0x9CA6A6).setShapes(INGOT, DUST, CASTPLATE, HEAVY_COMPONENT); + public static final NTMMaterial MAT_CDALLOY = makeSmeltable(_AS + 13, CDALLOY, 0xF7DF8F, 0x604308, 0xFBD368).setShapes(INGOT, CASTPLATE, HEAVY_COMPONENT); public static final NTMMaterial MAT_MAGTUNG = makeSmeltable(_AS + 8, MAGTUNG, 0x22A2A2, 0x0F0F0F, 0x22A2A2).setShapes(INGOT, DUST, BLOCK); public static final NTMMaterial MAT_CMB = makeSmeltable(_AS + 9, CMB, 0x6F6FB4, 0x000011, 0x6F6FB4).setShapes(INGOT, DUST, PLATE, CASTPLATE, BLOCK); public static final NTMMaterial MAT_FLUX = makeAdditive(_AS + 10, df("Flux"), 0xF1E0BB, 0x6F6256, 0xDECCAD).setShapes(DUST); diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 6776c80ac..d136042b1 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -12,6 +12,9 @@ import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.material.MaterialShapes; +import com.hbm.inventory.material.Mats; +import com.hbm.inventory.material.NTMMaterial; import com.hbm.items.ItemAmmoEnums; import com.hbm.items.ItemGenericPart.EnumPartType; import com.hbm.items.ModItems; @@ -142,6 +145,8 @@ public class AssemblerRecipes { */ private static void registerDefaults() { + boolean exp = GeneralConfig.enableExpensiveMode; + makeRecipe(new ComparableStack(ModItems.plate_iron, 2), new AStack[] {new OreDictStack(IRON.ingot(), 3), },30); makeRecipe(new ComparableStack(ModItems.plate_gold, 2), new AStack[] {new OreDictStack(GOLD.ingot(), 3), },30); makeRecipe(new ComparableStack(ModItems.plate_titanium, 2), new AStack[] {new OreDictStack(TI.ingot(), 3), },30); @@ -280,8 +285,8 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.machine_well, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 20), new ComparableStack(ModBlocks.steel_beam, 8), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.pipes_steel, 3), new ComparableStack(ModItems.drill_titanium, 1), new ComparableStack(ModItems.wire_red_copper, 6), },250); makeRecipe(new ComparableStack(ModBlocks.machine_pumpjack, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 8), new OreDictStack(STEEL.block(), 8), new ComparableStack(ModItems.pipes_steel, 4), new ComparableStack(ModItems.tank_steel, 4), new OreDictStack(STEEL.ingot(), 24), new OreDictStack(STEEL.plate(), 16), new OreDictStack(AL.plate(), 6), new ComparableStack(ModItems.drill_titanium, 1), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.wire_red_copper, 8), },400); makeRecipe(new ComparableStack(ModBlocks.machine_flare, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(IRON.ingot(), 12), new OreDictStack(CU.plate528(), 4), new ComparableStack(ModItems.tank_steel, 1), new ComparableStack(ModBlocks.deco_pipe_quad, 8), new ComparableStack(ModItems.hull_small_steel, 4), new ComparableStack(ModItems.thermo_element, 3), },200); - makeRecipe(new ComparableStack(ModBlocks.machine_coker, 1), new AStack[] {new OreDictStack(STEEL.plate(), 24), new OreDictStack(IRON.ingot(), 12), new OreDictStack(CU.plate528(), 8), new OreDictStack(RUBBER.ingot(), 4), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModBlocks.steel_grate, 4) },200); - makeRecipe(new ComparableStack(ModBlocks.machine_refinery, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 16), new OreDictStack(CU.plate(), 16), new ComparableStack(ModItems.hull_big_steel, 6), new ComparableStack(ModItems.pipes_steel, 2), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModItems.circuit_red_copper, 1) },350); + makeRecipe(new ComparableStack(ModBlocks.machine_coker, 1), new AStack[] {!exp ? new OreDictStack(STEEL.plate(), 24) : new OreDictStack(STEEL.heavyComp(), 2), new OreDictStack(IRON.ingot(), 12), new OreDictStack(CU.plate528(), 8), new OreDictStack(RUBBER.ingot(), 4), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModBlocks.steel_grate, 4) },200); + makeRecipe(new ComparableStack(ModBlocks.machine_refinery, 1), new AStack[] {!exp ? new OreDictStack(STEEL.plate528(), 16) : new OreDictStack(STEEL.heavyComp(), 1), new OreDictStack(CU.plate(), 16), new ComparableStack(ModItems.hull_big_steel, 6), new ComparableStack(ModItems.pipes_steel, 2), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModItems.circuit_red_copper, 1) },350); makeRecipe(new ComparableStack(ModBlocks.machine_epress, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new ComparableStack(ModItems.plate_polymer, 4), new ComparableStack(ModItems.part_generic, 2, EnumPartType.PISTON_HYDRAULIC.ordinal()), new ComparableStack(ModItems.circuit_copper, 1) }, 100); makeRecipe(new ComparableStack(ModBlocks.machine_chemplant, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(CU.plate528(), 6), new ComparableStack(ModItems.tank_steel, 4), new ComparableStack(ModItems.hull_big_steel, 1), new ComparableStack(ModItems.coil_tungsten, 3), new ComparableStack(ModItems.circuit_copper, 2), new ComparableStack(ModItems.circuit_red_copper, 1), new ComparableStack(ModItems.plate_polymer, 8), },200); makeRecipe(new ComparableStack(ModBlocks.machine_crystallizer, 1), new AStack[] {new ComparableStack(ModItems.hull_big_steel, 4), new ComparableStack(ModItems.pipes_steel, 1), new OreDictStack(DESH.ingot(), 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.blades_advanced_alloy, 2), new OreDictStack(STEEL.ingot(), 16), new OreDictStack(TI.plate(), 16), new ComparableStack(Blocks.glass, 4), new ComparableStack(ModItems.circuit_gold, 1), },400); @@ -289,11 +294,11 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.machine_bat9000, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 16), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 16), new ComparableStack(ModBlocks.steel_scaffold, 16), new OreDictStack(ANY_TAR.any(), 16), },150); makeRecipe(new ComparableStack(ModBlocks.machine_orbus, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 12), new OreDictStack(BIGMT.plate(), 12), new ComparableStack(ModItems.coil_advanced_alloy, 12), new ComparableStack(ModItems.battery_sc_polonium, 1) }, 200); makeRecipe(new ComparableStack(ModBlocks.machine_drill, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 6), new OreDictStack(STEEL.ingot(), 4), new ComparableStack(ModItems.wire_red_copper, 4), new ComparableStack(ModItems.circuit_copper, 1), new ComparableStack(ModItems.motor, 1), new OreDictStack(DURA.ingot(), 2), new ComparableStack(ModItems.bolt_dura_steel, 2), new ComparableStack(ModItems.drill_titanium, 1), },200); - makeRecipe(new ComparableStack(ModBlocks.machine_mining_laser, 1), new AStack[] {new ComparableStack(ModItems.tank_steel, 3), new OreDictStack(STEEL.plate528(), 16), new ComparableStack(ModItems.crystal_redstone, 3), new ComparableStack(Items.diamond, 3), new OreDictStack(ANY_PLASTIC.ingot(), 4), new ComparableStack(ModItems.motor, 3), new OreDictStack(DURA.ingot(), 4), new ComparableStack(ModItems.bolt_dura_steel, 6), new ComparableStack(ModBlocks.machine_battery, 3), },400); - makeRecipe(new ComparableStack(ModBlocks.machine_turbofan, 1), new AStack[] {new ComparableStack(ModItems.hull_big_steel, 1), new ComparableStack(ModItems.hull_big_titanium, 3), new ComparableStack(ModItems.hull_small_steel, 2), new ComparableStack(ModItems.turbine_tungsten, 1), new ComparableStack(ModItems.turbine_titanium, 7), new ComparableStack(ModItems.bolt_compound, 8), new OreDictStack(MINGRADE.ingot(), 12), new ComparableStack(ModItems.wire_red_copper, 24), },500); - makeRecipe(new ComparableStack(ModBlocks.machine_turbinegas, 1), new AStack[] {new ComparableStack(ModItems.hull_big_steel, 4), new ComparableStack(ModItems.hull_small_steel, 6), new ComparableStack(ModItems.generator_steel, 2), new ComparableStack(ModItems.bolt_compound, 4), new ComparableStack(ModBlocks.steel_scaffold, 8), new ComparableStack(ModBlocks.deco_pipe_quad, 4), new ComparableStack(ModItems.turbine_tungsten, 3), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.ingot_rubber, 4), new ComparableStack(ModItems.circuit_red_copper, 3)}, 600); + makeRecipe(new ComparableStack(ModBlocks.machine_mining_laser, 1), new AStack[] {new ComparableStack(ModItems.tank_steel, 3), !exp ? new OreDictStack(STEEL.plate528(), 16) : new OreDictStack(STEEL.heavyComp(), 3), new ComparableStack(ModItems.crystal_redstone, 3), new ComparableStack(Items.diamond, 3), new OreDictStack(ANY_PLASTIC.ingot(), 4), new ComparableStack(ModItems.motor, 3), !exp ? new OreDictStack(DURA.ingot(), 4) : new OreDictStack(DESH.heavyComp(), 1), new ComparableStack(ModItems.bolt_dura_steel, 6), new ComparableStack(ModBlocks.machine_battery, 3), },400); + makeRecipe(new ComparableStack(ModBlocks.machine_turbofan, 1), new AStack[] {!exp ? new ComparableStack(ModItems.hull_big_steel, 1) : new OreDictStack(STEEL.heavyComp(), 1), new ComparableStack(ModItems.hull_big_titanium, 3), new ComparableStack(ModItems.hull_small_steel, 2), new ComparableStack(ModItems.turbine_tungsten, 1), new ComparableStack(ModItems.turbine_titanium, 7), new ComparableStack(ModItems.bolt_compound, 8), new OreDictStack(MINGRADE.ingot(), 12), new ComparableStack(ModItems.wire_red_copper, 24), },500); + makeRecipe(new ComparableStack(ModBlocks.machine_turbinegas, 1), new AStack[] {!exp ? new ComparableStack(ModItems.hull_big_steel, 4) : new OreDictStack(STEEL.heavyComp(), 2), new ComparableStack(ModItems.hull_small_steel, 6), new ComparableStack(ModItems.generator_steel, 2), new ComparableStack(ModItems.bolt_compound, 4), new ComparableStack(ModBlocks.steel_scaffold, 8), new ComparableStack(ModBlocks.deco_pipe_quad, 4), new ComparableStack(ModItems.turbine_tungsten, 3), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.ingot_rubber, 4), new ComparableStack(ModItems.circuit_red_copper, 3)}, 600); makeRecipe(new ComparableStack(ModBlocks.machine_teleporter, 1), new AStack[] {new OreDictStack(TI.ingot(), 8), new OreDictStack(ALLOY.plate528(), 12), new ComparableStack(ModItems.wire_gold, 32), new ComparableStack(ModItems.entanglement_kit, 1), new ComparableStack(ModBlocks.machine_battery, 1) },300); - makeRecipe(new ComparableStack(ModBlocks.machine_schrabidium_transmutator, 1), new AStack[] {new OreDictStack(MAGTUNG.ingot(), 1), new OreDictStack(TI.ingot(), 24), new OreDictStack(ALLOY.plate(), 18), new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModItems.plate_desh, 6), new OreDictStack(RUBBER.ingot(), 8), new ComparableStack(ModBlocks.machine_battery, 5), new ComparableStack(ModItems.circuit_gold, 5), },500); + makeRecipe(new ComparableStack(ModBlocks.machine_schrabidium_transmutator, 1), new AStack[] {new OreDictStack(MAGTUNG.ingot(), 1), !exp ? new OreDictStack(TI.ingot(), 24) : new OreDictStack(TI.heavyComp(), 2), !exp ? new OreDictStack(ALLOY.plate(), 18) : new OreDictStack(ALLOY.heavyComp(), 1), new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModItems.plate_desh, 6), new OreDictStack(RUBBER.ingot(), 8), new ComparableStack(ModBlocks.machine_battery, 5), new ComparableStack(ModItems.circuit_gold, 5), },500); makeRecipe(new ComparableStack(ModBlocks.fusion_conductor, 1), new AStack[] {new ComparableStack(ModItems.coil_advanced_alloy, 5), }, 100); makeRecipe(new ComparableStack(ModBlocks.fusion_center, 1), new AStack[] {new OreDictStack(ANY_HARDPLASTIC.ingot(), 4), new OreDictStack(STEEL.plate528(), 6), new ComparableStack(ModItems.wire_advanced_alloy, 24), },200); makeRecipe(new ComparableStack(ModBlocks.fusion_motor, 1), new AStack[] {new OreDictStack(TI.ingot(), 4), new OreDictStack(STEEL.ingot(), 2), new ComparableStack(ModItems.motor, 4), },250); @@ -436,7 +441,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.machine_fensu, 1), new AStack[] { new ComparableStack(ModItems.ingot_electronium, 32), new ComparableStack(ModBlocks.machine_dineutronium_battery, 16), - new OreDictStack(STEEL.block(), 32), + !exp ? new OreDictStack(STEEL.block(), 32) : new OreDictStack(STEEL.heavyComp(), 64), new OreDictStack(DURA.block(), 16), new OreDictStack(STAR.block(), 64), new ComparableStack(ModBlocks.machine_transformer_dnt, 8), @@ -447,8 +452,8 @@ public class AssemblerRecipes { new OreDictStack(FIBER.ingot(), 128) }, 1200); makeRecipe(new ComparableStack(ModBlocks.struct_iter_core, 1), new AStack[] { - new OreDictStack(STEEL.ingot(), 6), - new OreDictStack(W.ingot(), 6), + !exp ? new OreDictStack(STEEL.ingot(), 6) : new OreDictStack(STEEL.heavyComp(), 4), + !exp ? new OreDictStack(W.ingot(), 6) : new OreDictStack(W.heavyComp(), 1), new OreDictStack(OreDictManager.getReflector(), 12), new ComparableStack(ModItems.coil_advanced_alloy, 12), new OreDictStack(ANY_PLASTIC.ingot(), 8), @@ -551,7 +556,7 @@ public class AssemblerRecipes { }, 100); makeRecipe(new ComparableStack(ModBlocks.machine_large_turbine, 1), new AStack[] { - new OreDictStack(STEEL.plate528(), 12), + !exp ? new OreDictStack(STEEL.plate528(), 12) : new OreDictStack(STEEL.heavyComp(), 1), new OreDictStack(RUBBER.ingot(), 4), new ComparableStack(ModItems.turbine_titanium, 3), new ComparableStack(ModItems.generator_steel, 1), @@ -561,8 +566,8 @@ public class AssemblerRecipes { }, 200); makeRecipe(new ComparableStack(ModBlocks.machine_chungus, 1), new AStack[] { new ComparableStack(ModItems.hull_big_steel, 6), - new OreDictStack(STEEL.plate528(), 32), - new OreDictStack(TI.plate528(), 12), + !exp ? new OreDictStack(STEEL.plate528(), 32) : new OreDictStack(STEEL.heavyComp(), 3), + !exp ? new OreDictStack(TI.plate528(), 12) : new OreDictStack(TI.heavyComp(), 1), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 16), new ComparableStack(ModItems.turbine_tungsten, 5), new ComparableStack(ModItems.turbine_titanium, 3), @@ -573,9 +578,9 @@ public class AssemblerRecipes { }, 600); makeRecipe(new ComparableStack(ModBlocks.machine_condenser_powered, 1), new AStack[] { - new OreDictStack(STEEL.plateCast(), 16), + !exp ? new OreDictStack(STEEL.plateCast(), 16) : new OreDictStack(STEEL.heavyComp(), 3), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 16), - new OreDictStack(CU.plate528(), 16), + !exp ? new OreDictStack(CU.plate528(), 16) : new OreDictStack(CU.heavyComp(), 3), new ComparableStack(ModItems.motor_desh, 3), new ComparableStack(ModItems.pipes_steel, 4), new OreDictStack(Fluids.LUBRICANT.getDict(1_000), 4) @@ -601,7 +606,7 @@ public class AssemblerRecipes { new ComparableStack(ModBlocks.machine_lithium_battery, 3), new ComparableStack(ModBlocks.hadron_coil_neodymium, 8), new ComparableStack(ModItems.wire_advanced_alloy, 96), - new OreDictStack(STEEL.ingot(), 16), + !exp ? new OreDictStack(STEEL.ingot(), 16) : new OreDictStack(STEEL.heavyComp(), 3), new OreDictStack(STEEL.plate528(), 32), new OreDictStack(AL.plate528(), 32), new OreDictStack(ANY_PLASTIC.ingot(), 24), @@ -612,7 +617,7 @@ public class AssemblerRecipes { }, 600); makeRecipe(new ComparableStack(ModBlocks.reactor_zirnox, 1), new AStack[] { - new ComparableStack(ModItems.hull_big_steel, 4), + !exp ? new ComparableStack(ModItems.hull_big_steel, 4) : new OreDictStack(STEEL.heavyComp(), 1), new ComparableStack(ModBlocks.steel_scaffold, 4), new OreDictStack(ANY_CONCRETE.any(), 16), new ComparableStack(ModBlocks.deco_pipe_quad, 8), @@ -902,7 +907,7 @@ public class AssemblerRecipes { new ComparableStack(Blocks.glass, 12), new ComparableStack(ModItems.motor, 2), new OreDictStack(DURA.ingot(), 4), - new OreDictStack(STEEL.plate528(), 8), + !exp ? new OreDictStack(STEEL.plate528(), 8) : new OreDictStack(STEEL.heavyComp(), 1), new OreDictStack(DESH.ingot(), 2), new ComparableStack(ModItems.tank_steel, 1), new ComparableStack(ModItems.pipes_steel, 1), @@ -912,7 +917,7 @@ public class AssemblerRecipes { new ComparableStack(ModBlocks.fusion_conductor, 16), new ComparableStack(ModBlocks.machine_lithium_battery, 2), new OreDictStack(STEEL.ingot(), 16), - new OreDictStack(STEEL.plate528(), 24), + !exp ? new OreDictStack(STEEL.plate528(), 24) : new OreDictStack(STEEL.heavyComp(), 1), new OreDictStack(ANY_PLASTIC.ingot(), 8), new ComparableStack(ModItems.circuit_red_copper, 4), new ComparableStack(ModItems.wire_red_copper, 64), @@ -922,7 +927,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.rbmk_blank, 1), new AStack[] { new ComparableStack(ModBlocks.concrete_asbestos, 4), - new OreDictStack(STEEL.plate528(), 4), + !exp ? new OreDictStack(STEEL.plate528(), 4) : new OreDictStack(STEEL.plateCast(), 16), new OreDictStack(CU.ingot(), 4), new ComparableStack(ModItems.plate_polymer, 4) }, 100); @@ -936,7 +941,7 @@ public class AssemblerRecipes { }, 100); makeRecipe(new ComparableStack(ModBlocks.machine_assemfac, 1), new AStack[] { - new OreDictStack(STEEL.ingot(), 48), + !exp ? new OreDictStack(STEEL.ingot(), 48) : new OreDictStack(STEEL.heavyComp(), 2), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 8), new OreDictStack(B.ingot(), 4), new OreDictStack(RUBBER.ingot(), 16), @@ -948,7 +953,7 @@ public class AssemblerRecipes { }, 400); makeRecipe(new ComparableStack(ModBlocks.machine_chemfac, 1), new AStack[] { - new OreDictStack(STEEL.ingot(), 48), + !exp ? new OreDictStack(STEEL.ingot(), 48) : new OreDictStack(STEEL.heavyComp(), 2), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 8), new OreDictStack(NB.ingot(), 4), new OreDictStack(RUBBER.ingot(), 16), @@ -982,8 +987,8 @@ public class AssemblerRecipes { }, 150); makeRecipe(new ComparableStack(ModBlocks.machine_vacuum_distill, 1), new AStack[] { - new OreDictStack(STEEL.plateCast(), 16), - new OreDictStack(CU.plate528(), 16), + !exp ? new OreDictStack(STEEL.plateCast(), 16) : new OreDictStack(STEEL.heavyComp(), 4), + !exp ? new OreDictStack(CU.plate528(), 16) : new OreDictStack(CU.heavyComp(), 4), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new ComparableStack(ModItems.sphere_steel, 1), new ComparableStack(ModItems.pipes_steel, 1), @@ -991,8 +996,8 @@ public class AssemblerRecipes { new OreDictStack(KEY_CIRCUIT_BISMUTH, 1) }, 200); makeRecipe(new ComparableStack(ModBlocks.machine_catalytic_reformer, 1), new AStack[] { - new OreDictStack(STEEL.plateCast(), 12), - new OreDictStack(CU.plate528(), 8), + !exp ? new OreDictStack(STEEL.plateCast(), 12) : new OreDictStack(STEEL.heavyComp(), 4), + !exp ? new OreDictStack(CU.plate528(), 8) : new OreDictStack(CU.heavyComp(), 2), new OreDictStack(NB.ingot(), 8), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new ComparableStack(ModItems.hull_big_steel, 3), @@ -1010,8 +1015,8 @@ public class AssemblerRecipes { }, 200); makeRecipe(new ComparableStack(ModBlocks.machine_electrolyser, 1), new AStack[] { - new OreDictStack(STEEL.plateCast(), 8), - new OreDictStack(CU.plate528(), 16), + !exp ? new OreDictStack(STEEL.plateCast(), 8) : new OreDictStack(STEEL.heavyComp(), 2), + !exp ? new OreDictStack(CU.plate528(), 16) : new OreDictStack(CU.heavyComp(), 1), new OreDictStack(RUBBER.ingot(), 8), new ComparableStack(ModItems.ingot_firebrick, 16), new ComparableStack(ModItems.tank_steel, 3), @@ -1038,7 +1043,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.block_cap_star, 1), new AStack[] { new ComparableStack(ModItems.cap_star, 128) }, 10); if(!GeneralConfig.enable528) { - makeRecipe(new ComparableStack(ModBlocks.machine_hephaestus, 1), new AStack[] { new ComparableStack(ModItems.pipes_steel, 1), new OreDictStack(STEEL.ingot(), 24), new OreDictStack(CU.plate(), 24), new OreDictStack(NB.ingot(), 4), new OreDictStack(RUBBER.ingot(), 12), new ComparableStack(ModBlocks.glass_quartz, 16) }, 150); + makeRecipe(new ComparableStack(ModBlocks.machine_hephaestus, 1), new AStack[] { new ComparableStack(ModItems.pipes_steel, 1), !exp ? new OreDictStack(STEEL.ingot(), 24) : new OreDictStack(STEEL.heavyComp(), 2), !exp ? new OreDictStack(CU.plate(), 24) : new OreDictStack(CU.heavyComp(), 2), new OreDictStack(NB.ingot(), 4), new OreDictStack(RUBBER.ingot(), 12), new ComparableStack(ModBlocks.glass_quartz, 16) }, 150); makeRecipe(new ComparableStack(ModBlocks.machine_radgen, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(STEEL.plate(), 32), new ComparableStack(ModItems.coil_magnetized_tungsten, 6), new ComparableStack(ModItems.wire_magnetized_tungsten, 24), new ComparableStack(ModItems.circuit_gold, 4), new ComparableStack(ModItems.reactor_core, 3), new OreDictStack(STAR.ingot(), 1), new OreDictStack("dyeRed", 1), },400); makeRecipe(new ComparableStack(ModBlocks.machine_reactor_breeding, 1), new AStack[] {new ComparableStack(ModItems.reactor_core, 1), new OreDictStack(STEEL.ingot(), 12), new OreDictStack(PB.plate(), 16), new ComparableStack(ModBlocks.reinforced_glass, 4), new OreDictStack(ASBESTOS.ingot(), 4), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new ComparableStack(ModItems.crt_display, 1)},150); makeRecipe(new ComparableStack(ModBlocks.reactor_research, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new ComparableStack(ModItems.motor_desh, 2), new OreDictStack(B.ingot(), 5), new OreDictStack(PB.plate(), 8), new ComparableStack(ModItems.crt_display, 3), new ComparableStack(ModItems.circuit_copper, 2), },300); @@ -1143,7 +1148,7 @@ public class AssemblerRecipes { new ComparableStack(ModBlocks.concrete_smooth, 64), new ComparableStack(ModItems.drill_titanium), new ComparableStack(ModItems.motor_desh, 2), - new ComparableStack(ModItems.plate_desh, 6), + !exp ? new ComparableStack(ModItems.plate_desh, 6) : new OreDictStack(DESH.heavyComp()), new OreDictStack(NB.ingot(), 8), new ComparableStack(ModItems.tank_steel, 24), new ComparableStack(ModItems.pipes_steel, 2) @@ -1151,7 +1156,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.machine_catalytic_cracker), new AStack[] { new ComparableStack(ModBlocks.steel_scaffold, 16), - new ComparableStack(ModItems.hull_big_steel, 4), + !exp ? new ComparableStack(ModItems.hull_big_steel, 4) : new OreDictStack(STEEL.heavyComp()), new ComparableStack(ModItems.tank_steel, 3), new OreDictStack(ANY_PLASTIC.ingot(), 4), new OreDictStack(NB.ingot(), 2), @@ -1181,7 +1186,7 @@ public class AssemblerRecipes { }, 200); makeRecipe(new ComparableStack(ModBlocks.machine_radiolysis), new AStack[] { - new OreDictStack(STEEL.ingot(), 12), + !exp ? new OreDictStack(STEEL.ingot(), 12) : new OreDictStack(STEEL.heavyComp()), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new OreDictStack(DURA.ingot(), 10), new OreDictStack(RUBBER.ingot(), 4), @@ -1235,6 +1240,11 @@ public class AssemblerRecipes { } } + for(NTMMaterial mat : Mats.orderedList) { + if(mat.shapes.contains(MaterialShapes.CASTPLATE) && mat.shapes.contains(MaterialShapes.HEAVY_COMPONENT)) { + makeRecipe(new ComparableStack(ModItems.heavy_component, 1, mat.id), new AStack[] { new OreDictStack(MaterialShapes.CASTPLATE.name() + mat.names[0], 256) }, 12_000); + } + } /// HIDDEN /// hidden.put(new ComparableStack(ModBlocks.machine_radgen, 1), new HashSet() {{ add(ModItems.journal_pip); }}); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index a080abd59..0e9713841 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -777,6 +777,7 @@ public class ModItems { public static Item mold; public static Item scraps; public static Item plate_cast; + public static Item heavy_component; public static Item part_lithium; public static Item part_beryllium; @@ -3255,6 +3256,7 @@ public class ModItems { mold = new ItemMold().setUnlocalizedName("mold").setCreativeTab(MainRegistry.controlTab); scraps = new ItemScraps().aot(Mats.MAT_BISMUTH, "scraps_bismuth").setUnlocalizedName("scraps").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":scraps"); plate_cast = new ItemAutogen(MaterialShapes.CASTPLATE).aot(Mats.MAT_BISMUTH, "plate_cast_bismuth").setUnlocalizedName("plate_cast").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_cast"); + heavy_component = new ItemAutogen(MaterialShapes.HEAVY_COMPONENT).setUnlocalizedName("heavy_component").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":heavy_component"); part_lithium = new Item().setUnlocalizedName("part_lithium").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":part_lithium"); part_beryllium = new Item().setUnlocalizedName("part_beryllium").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":part_beryllium"); @@ -5988,6 +5990,7 @@ public class ModItems { //Heavy/Cast Plate GameRegistry.registerItem(plate_cast, plate_cast.getUnlocalizedName()); + GameRegistry.registerItem(heavy_component, heavy_component.getUnlocalizedName()); //Boards GameRegistry.registerItem(board_copper, board_copper.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 26b7c4ac5..da10a8299 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4739)"; + public static final String VERSION = "1.0.27 BETA (4740)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 936ab410b..06b7eef97 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -888,7 +888,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.pwr_heatex, 4), new Object[] { "CSC", "SMS", "CSC", 'C', CU.plateCast(), 'S', STEEL.plate528(), 'M', ModItems.motor }); addRecipeAuto(new ItemStack(ModBlocks.pwr_reflector, 4), new Object[] { "RLR", "LSL", "RLR", 'R', OreDictManager.getReflector(), 'L', PB.plate528(), 'S', STEEL.plateCast() }); addRecipeAuto(new ItemStack(ModBlocks.pwr_casing, 4), new Object[] { "LCL", "CSC", "LCL", 'L', PB.plate528(), 'C', ANY_CONCRETE.any(), 'S', STEEL.plateCast() }); - addRecipeAuto(new ItemStack(ModBlocks.pwr_controller, 1), new Object[] { "CPC", "PSP", "CPC", 'C', ModBlocks.pwr_casing, 'P', ANY_PLASTIC.ingot(), 'S', ModItems.circuit_gold }); + addRecipeAuto(new ItemStack(ModBlocks.pwr_controller, 1), new Object[] { "CPC", "PSP", "CPC", 'C', ModBlocks.pwr_casing, 'P', ANY_PLASTIC.ingot(), 'S', !GeneralConfig.enableExpensiveMode ? ModItems.circuit_gold : STEEL.heavyComp() }); addRecipeAuto(new ItemStack(ModBlocks.pwr_port, 1), new Object[] { "S", "C", "S", 'S', STEEL.plate(), 'C', ModBlocks.pwr_casing }); addRecipeAuto(new ItemStack(ModBlocks.pwr_neutron_source, 1), new Object[] { "LRL", "ZRZ", "LRL", 'L', PB.plate528(), 'R', ModItems.billet_ra226be, 'Z', ZR.plateCast() }); @@ -995,7 +995,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.machine_conveyor_press), new Object[] { "CPC", "CBC", "CCC", 'C', CU.plate(), 'P', ModBlocks.machine_epress, 'B', ModBlocks.conveyor }); - addRecipeAuto(new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL.ordinal()), new Object[] { "PPP", "HCH", " B ", 'P', STEEL.plate(), 'H', ModItems.hull_small_steel, 'C', ModItems.circuit_copper, 'B', ModBlocks.crate_steel }); + addRecipeAuto(new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL.ordinal()), new Object[] { "PPP", "HCH", " B ", 'P', ANY_PLASTIC.ingot(), 'H', ModItems.hull_small_steel, 'C', ModItems.circuit_copper, 'B', ModBlocks.crate_steel }); addRecipeAuto(new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_CHUNKLOADING.ordinal()), new Object[] { "E", "D", 'E', Items.ender_pearl, 'D', new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL.ordinal()) }); addRecipeAuto(new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_EXPRESS.ordinal()), new Object[] { " P ", "KDK", " P ", 'P', ModItems.plate_desh, 'K', Fluids.KEROSENE.getDict(1_000), 'D', new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL.ordinal()) }); addRecipeAuto(new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_EXPRESS_CHUNKLOADING.ordinal()), new Object[] { "E", "D", 'E', Items.ender_pearl, 'D', new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_EXPRESS.ordinal()) }); @@ -1011,6 +1011,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.drone_crate), new Object[] { "T", "C", "B", 'T', ModBlocks.drone_waypoint_request, 'C', ModBlocks.crate_steel, 'B', ModItems.circuit_red_copper }); addRecipeAuto(new ItemStack(ModBlocks.drone_crate_requester), new Object[] { "T", "C", "B", 'T', ModBlocks.drone_waypoint_request, 'C', ModBlocks.crate_steel, 'B', KEY_YELLOW }); addRecipeAuto(new ItemStack(ModBlocks.drone_crate_provider), new Object[] { "T", "C", "B", 'T', ModBlocks.drone_waypoint_request, 'C', ModBlocks.crate_steel, 'B', KEY_ORANGE }); + addRecipeAuto(new ItemStack(ModBlocks.drone_dock), new Object[] { "T", "C", "B", 'T', ModBlocks.drone_waypoint_request, 'C', ModBlocks.crate_steel, 'B', ModItems.circuit_gold }); addShapelessAuto(DictFrame.fromOne(ModItems.parts_legendary, EnumLegendaryType.TIER1), new Object[] { ModItems.ingot_chainsteel, ASBESTOS.ingot(), ModItems.gem_alexandrite }); addShapelessAuto(DictFrame.fromOne(ModItems.parts_legendary, EnumLegendaryType.TIER1, 3), new Object[] { DictFrame.fromOne(ModItems.parts_legendary, EnumLegendaryType.TIER2) }); diff --git a/src/main/java/com/hbm/render/entity/item/RenderFallingBlockNT.java b/src/main/java/com/hbm/render/entity/item/RenderFallingBlockNT.java index d5ed89036..e42ebd0f2 100644 --- a/src/main/java/com/hbm/render/entity/item/RenderFallingBlockNT.java +++ b/src/main/java/com/hbm/render/entity/item/RenderFallingBlockNT.java @@ -47,7 +47,7 @@ public class RenderFallingBlockNT extends Render { tessellator.draw(); } else { this.renderBlocks.setRenderBoundsFromBlock(block); - this.renderBlocks.renderBlockSandFalling(block, world, iX, iY, iZ, entity.fallingMeta); + this.renderBlocks.renderBlockSandFalling(block, world, iX, iY, iZ, entity.getDataWatcher().getWatchableObjectInt(11)); } GL11.glEnable(GL11.GL_LIGHTING); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index e4131a9d4..dc4dfc8f0 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -2038,6 +2038,7 @@ item.heart_booster.name=Herzbooster item.heart_container.name=Herzcontainer item.heart_fab.name=Fab Herz item.heart_piece.name=Herzteil +item.heavy_component.name=Schwere %skomponente item.hev_battery.name=Anzugs-Batterie item.hev_boots.name=HEV Mark IV Stiefel item.hev_plate.name=HEV Mark IV Brustpanzer diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index be8530bcf..9a991bf11 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -2758,6 +2758,7 @@ item.heart_booster.name=Heart Booster item.heart_container.name=Heart Container item.heart_fab.name=Fab Heart item.heart_piece.name=Heart Piece +item.heavy_component.name=Heavy %s Component item.hev_battery.name=Suit Battery item.hev_boots.name=HEV Mark IV Boots item.hev_plate.name=HEV Mark IV Chestplate diff --git a/src/main/resources/assets/hbm/textures/items/heavy_component.png b/src/main/resources/assets/hbm/textures/items/heavy_component.png new file mode 100644 index 0000000000000000000000000000000000000000..276fb9e48dc6845f48dee6ace42fbd9be56f03d6 GIT binary patch literal 315 zcmV-B0mS}^P)N*wYUH{;1c}hN>z65D~1k0DuqzthERsV49{E0KA{V%d)^2gLPdojw6zv z=NZiWOrWZI90x)O*IH@?0A_}B4%@cX1ixu^&cPT{6R4^ZQ9;AZ7>1!}HpW0iY62nx zGsAmd3`zbx&!Rc$egC=d`{sZo5h?svZtmgxnut^s#ejQTOCo|8GZ{DcnxF-CM< z*Cxn=t@}vfM}oXHzpQljgun0m_52q>{)BnpQ@9}T-dC;pcPsoa`Ub&>wvXH|Yij@i N002ovPDHLkV1kr>g|Ywu literal 0 HcmV?d00001 From d0530d2d7f9d3a5bcd0020e4f3ff82aac07b1cb7 Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 3 Oct 2023 15:26:29 +0200 Subject: [PATCH 331/432] fullerite --- src/main/java/com/hbm/inventory/fluid/Fluids.java | 5 ++++- .../inventory/recipes/CrystallizerRecipes.java | 2 ++ .../com/hbm/inventory/recipes/MixerRecipes.java | 2 ++ .../com/hbm/inventory/recipes/SILEXRecipes.java | 7 ++++++- src/main/java/com/hbm/items/ItemEnums.java | 3 ++- src/main/java/com/hbm/items/ModItems.java | 3 +++ src/main/resources/assets/hbm/lang/de_DE.lang | 3 +++ src/main/resources/assets/hbm/lang/en_US.lang | 3 +++ .../assets/hbm/textures/gui/fluids/fullerene.png | Bin 0 -> 712 bytes .../assets/hbm/textures/items/plate_welded.png | Bin 0 -> 429 bytes .../hbm/textures/items/powder_ash.fullerene.png | Bin 0 -> 480 bytes 11 files changed, 25 insertions(+), 3 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/fullerene.png create mode 100644 src/main/resources/assets/hbm/textures/items/plate_welded.png create mode 100644 src/main/resources/assets/hbm/textures/items/powder_ash.fullerene.png diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index 093030189..83034ba51 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -162,6 +162,7 @@ public class Fluids { public static FluidType THORIUM_SALT; public static FluidType THORIUM_SALT_HOT; public static FluidType THORIUM_SALT_DEPLETED; + public static FluidType FULLERENE; private static final HashMap idMapping = new HashMap(); private static final HashMap nameMapping = new HashMap(); @@ -323,7 +324,8 @@ public class Fluids { SODIUM_HOT = new FluidType("SODIUM_HOT", 0xE2ADC1, 1, 2, 3, EnumSymbol.NONE).setTemp(1200).addTraits(LIQUID); THORIUM_SALT = new FluidType("THORIUM_SALT", 0x7A5542, 2, 0, 3, EnumSymbol.NONE).setTemp(800).addTraits(LIQUID, new FT_Corrosive(65)); THORIUM_SALT_HOT = new FluidType("THORIUM_SALT_HOT", 0x3E3627, 2, 0, 3, EnumSymbol.NONE).setTemp(1600).addTraits(LIQUID, new FT_Corrosive(65)); - THORIUM_SALT_DEPLETED = new FluidType(129, "THORIUM_SALT_DEPLETED", 0x302D1C, 2, 0, 3, EnumSymbol.NONE).setTemp(800).addTraits(LIQUID, new FT_Corrosive(65)); + THORIUM_SALT_DEPLETED = new FluidType("THORIUM_SALT_DEPLETED", 0x302D1C, 2, 0, 3, EnumSymbol.NONE).setTemp(800).addTraits(LIQUID, new FT_Corrosive(65)); + FULLERENE = new FluidType(130, "FULLERENE", 0xFF7FED, 3, 3, 3, EnumSymbol.NONE).addTraits(LIQUID, new FT_Corrosive(65)); // ^ ^ ^ ^ ^ ^ ^ ^ //ADD NEW FLUIDS HERE @@ -439,6 +441,7 @@ public class Fluids { metaOrder.add(DEATH); metaOrder.add(WATZ); metaOrder.add(REDMUD); + metaOrder.add(FULLERENE); metaOrder.add(EGG); metaOrder.add(CHOLESTEROL); metaOrder.add(CHLOROCALCITE_SOLUTION); diff --git a/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java b/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java index 69c7652e1..8f33e422e 100644 --- a/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java @@ -19,6 +19,7 @@ import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.recipes.loader.SerializableRecipe; +import com.hbm.items.ItemEnums.EnumAshType; import com.hbm.items.ItemEnums.EnumPlantType; import com.hbm.items.ItemEnums.EnumTarType; import com.hbm.items.ModItems; @@ -95,6 +96,7 @@ public class CrystallizerRecipes extends SerializableRecipe { registerRecipe(new ComparableStack(Items.dye, 1, 15), new CrystallizerRecipe(new ItemStack(Items.slime_ball, 4), 20), new FluidStack(Fluids.SULFURIC_ACID, 250)); registerRecipe(new ComparableStack(Items.bone), new CrystallizerRecipe(new ItemStack(Items.slime_ball, 16), 20), new FluidStack(Fluids.SULFURIC_ACID, 1_000)); registerRecipe(new ComparableStack(DictFrame.fromOne(ModItems.plant_item, EnumPlantType.MUSTARDWILLOW)), new CrystallizerRecipe(new ItemStack(ModItems.powder_cadmium), 100).setReq(10), new FluidStack(Fluids.RADIOSOLVENT, 250)); + registerRecipe(new ComparableStack(DictFrame.fromOne(ModItems.powder_ash, EnumAshType.FULLERENE)), new CrystallizerRecipe(new ItemStack(ModItems.ingot_cft), baseTime).setReq(4), new FluidStack(Fluids.XYLENE, 1_000)); registerRecipe(DIAMOND.dust(), new CrystallizerRecipe(Items.diamond, utilityTime)); registerRecipe(EMERALD.dust(), new CrystallizerRecipe(Items.emerald, utilityTime)); diff --git a/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java b/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java index dece889df..15bf9a25e 100644 --- a/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/MixerRecipes.java @@ -20,6 +20,7 @@ import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.recipes.loader.SerializableRecipe; import com.hbm.items.ModItems; +import com.hbm.items.ItemEnums.EnumAshType; import com.hbm.items.machine.ItemFluidIcon; import net.minecraft.init.Blocks; @@ -47,6 +48,7 @@ public class MixerRecipes extends SerializableRecipe { register(Fluids.EGG, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.RADIOSOLVENT, 500)).setSolid(new ComparableStack(Items.egg))); register(Fluids.FISHOIL, new MixerRecipe(100, 50).setSolid(new ComparableStack(Items.fish, 1, OreDictionary.WILDCARD_VALUE))); register(Fluids.SUNFLOWEROIL, new MixerRecipe(100, 50).setSolid(new ComparableStack(Blocks.double_plant, 1, 0))); + register(Fluids.FULLERENE, new MixerRecipe(250, 50).setStack1(new FluidStack(Fluids.RADIOSOLVENT, 500)).setSolid(new ComparableStack(DictFrame.fromOne(ModItems.powder_ash, EnumAshType.SOOT)))); register(Fluids.SOLVENT, new MixerRecipe(1000, 50).setStack1(new FluidStack(Fluids.NAPHTHA, 500)).setStack2(new FluidStack(Fluids.AROMATICS, 500))); register(Fluids.SULFURIC_ACID, new MixerRecipe(500, 50).setStack1(new FluidStack(Fluids.ACID, 800)).setSolid(new OreDictStack(S.dust()))); diff --git a/src/main/java/com/hbm/inventory/recipes/SILEXRecipes.java b/src/main/java/com/hbm/inventory/recipes/SILEXRecipes.java index adb944df5..3b0d908a2 100644 --- a/src/main/java/com/hbm/inventory/recipes/SILEXRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/SILEXRecipes.java @@ -11,6 +11,7 @@ import com.hbm.blocks.ModBlocks; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; +import com.hbm.items.ItemEnums.EnumAshType; import com.hbm.items.machine.ItemFELCrystal.EnumWavelengths; import com.hbm.items.special.ItemWasteLong; import com.hbm.items.special.ItemWasteShort; @@ -31,7 +32,7 @@ public class SILEXRecipes { itemTranslation.put(new ComparableStack(ModItems.fluid_icon, 1, Fluids.UF6.getID()), new ComparableStack(ModItems.ingot_uranium)); dictTranslation.put(U.dust(), U.ingot()); - recipes.put(U.ingot(), new SILEXRecipe(900, 100, EnumWavelengths.UV) + recipes.put(U.ingot(), new SILEXRecipe(900, 100, EnumWavelengths.VISIBLE) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u235), 1)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u238), 11)) ); @@ -630,6 +631,10 @@ public class SILEXRecipes { .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_lithium), 10)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.fluorite), 5)) ); + + recipes.put(new ComparableStack(ModItems.fluid_icon, 1, Fluids.FULLERENE.getID()), new SILEXRecipe(1_000, 1_000, EnumWavelengths.UV) + .addOut(new WeightedRandomObject(DictFrame.fromOne(ModItems.powder_ash, EnumAshType.FULLERENE), 1)) + ); } public static SILEXRecipe getOutput(ItemStack stack) { diff --git a/src/main/java/com/hbm/items/ItemEnums.java b/src/main/java/com/hbm/items/ItemEnums.java index f57fde2f9..77f435b48 100644 --- a/src/main/java/com/hbm/items/ItemEnums.java +++ b/src/main/java/com/hbm/items/ItemEnums.java @@ -28,7 +28,8 @@ public class ItemEnums { COAL, MISC, FLY, - SOOT + SOOT, + FULLERENE } public static enum EnumBriquetteType { diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 0e9713841..275ec153d 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -361,6 +361,7 @@ public class ModItems { public static Item powder_cadmium; public static Item powder_bismuth; public static Item ingot_mud; + public static Item ingot_cft; public static Item ingot_lanthanium; public static Item ingot_actinium; @@ -2677,6 +2678,7 @@ public class ModItems { powder_cadmium = new Item().setUnlocalizedName("powder_cadmium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_cadmium"); powder_bismuth = new Item().setUnlocalizedName("powder_bismuth").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_bismuth"); ingot_mud = new Item().setUnlocalizedName("ingot_mud").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_mud"); + ingot_cft = new Item().setUnlocalizedName("ingot_cft").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_cft"); ore_byproduct = new ItemByproduct().setUnlocalizedName("ore_byproduct").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":byproduct"); @@ -5588,6 +5590,7 @@ public class ModItems { GameRegistry.registerItem(ingot_pc, ingot_pc.getUnlocalizedName()); GameRegistry.registerItem(ingot_pvc, ingot_pvc.getUnlocalizedName()); GameRegistry.registerItem(ingot_mud, ingot_mud.getUnlocalizedName()); + GameRegistry.registerItem(ingot_cft, ingot_cft.getUnlocalizedName()); GameRegistry.registerItem(ingot_schraranium, ingot_schraranium.getUnlocalizedName()); GameRegistry.registerItem(ingot_schrabidium, ingot_schrabidium.getUnlocalizedName()); GameRegistry.registerItem(ingot_schrabidate, ingot_schrabidate.getUnlocalizedName()); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index dc4dfc8f0..be712bbcc 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -664,6 +664,7 @@ hbmfluid.ethanol=Ethanol hbmfluid.enderjuice=Endersaft hbmfluid.fishoil=Fischöl hbmfluid.fracksol=Frackinglösung +hbmfluid.fullerene=Fullerenlösung hbmfluid.gas=Erdgas hbmfluid.gas_coker=Koker-Gas hbmfluid.gasoline=Benzin @@ -2082,6 +2083,7 @@ item.ingot_c4.name=C4-Tafel item.ingot_cadmium.name=Cadmiumbarren item.ingot_calcium.name=Kalziumbarren item.ingot_cdalloy.name=Cadmiumstahlbarren +item.ingot_cft.name=Kristallines Fullerit item.ingot_chainsteel.name=Schwerer Kettenstahl item.ingot_co60.name=Kobalt-60-Barren item.ingot_cobalt.name=Kobaltbarren @@ -2704,6 +2706,7 @@ item.powder_aluminium.name=Aluminiumstaub item.powder_asbestos.name=Asbeststaub item.powder_ash.coal.name=Kohleasche item.powder_ash.fly.name=Flugasche +item.powder_ash.fullerene.name=Fulleren item.powder_ash.misc.name=Asche item.powder_ash.soot.name=Feiner Ruß item.powder_ash.wood.name=Holzasche diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 9a991bf11..507756c68 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1306,6 +1306,7 @@ hbmfluid.ethanol=Ethanol hbmfluid.enderjuice=Ender Juice hbmfluid.fishoil=Fish Oil hbmfluid.fracksol=Fracking Solution +hbmfluid.fullerene=Fullerene Solution hbmfluid.gas=Natural Gas hbmfluid.gas_coker=Coker Gas hbmfluid.gasoline=Gasoline @@ -2805,6 +2806,7 @@ item.ingot_c4.name=Bar of Composition C-4 item.ingot_cadmium.name=Cadmium Ingot item.ingot_calcium.name=Calcium Ingot item.ingot_cdalloy.name=Cadmium Steel Ingot +item.ingot_cft.name=Crystalline Fullerite item.ingot_chainsteel.name=Heavy Chainsteel item.ingot_co60.name=Cobalt-60 Ingot item.ingot_cobalt.name=Cobalt Ingot @@ -3509,6 +3511,7 @@ item.powder_asbestos.name=Asbestos Powder item.powder_asbestos.desc=§o\"Sniffffffff- MHHHHHHMHHHHHHHHH\"§r item.powder_ash.coal.name=Coal Ash item.powder_ash.fly.name=Fly Ash +item.powder_ash.fullerene.name=Fullerene item.powder_ash.misc.name=Ash item.powder_ash.soot.name=Fine Soot item.powder_ash.wood.name=Wood Ash diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/fullerene.png b/src/main/resources/assets/hbm/textures/gui/fluids/fullerene.png new file mode 100644 index 0000000000000000000000000000000000000000..bcde8c2777f8ecac54056b895a2cc629da5aa279 GIT binary patch literal 712 zcmV;(0yq7MP)L=Kv%kg4UX07DFpeWiYc`t=F-DY9v~4>LfBFCdRaFtZ z2S96muEMg!WZBs=tu^F1`SmqbRk8cyPsZ0RAp{PG10e*w_aK7z9>Kxx#}B%;rR%!M zf9D8I!+fzoM0k37;&eJumLV|}4jZzBlJ@bzrr?o>sSxa|3QkEr6)9~=+ z3*B~$dwausk5Y={cx3j^*Wcf@*4*CSPES$_t}fxN!FL_n7=rhVesTJ9S-C6vd>j)Re;j%M!FE zFA9<*A<43g&~+GN2wlhg`WojP^Z6X-93pb2QZH{npx*5$ih>v;5@VcHj3LGdz+$nW uX&Q_%hzJ0E-&6hdFZ_1^;BYt~BK!|Ubv^mAwEMpR0000<6h;sGUaCkHrU?p%2S2`M)JPn`H}fwj_z6FN1Vu>k z^&LOKph!rQswPEX<|(@GLCJ2id*z)u-#wE%@Q>Adcc7H=!{HEs^?LpG-miD?bUJ0V zS`kGNNs{;^N&H_KJYcOg$K#PWjy1q&f4%d+h|=g?XMkfv#85K1Y( zTrR!$-e+0ni=yyZmc8^IRTPDnQu>c)ZEGz})6g_cJK0)Gzu%`UOAdzvK@eb!;dZ<6 zsg&}w*^D@jNz)X7@p$|LemuuHhY*78c1vB?zqjC=V?LiFgg|S}e!mCkgpDy=E*I|i zJ3$c8lT!N8XaqnMMVwA27K;Uw$)q&`+R5MH-EP+{s;bEI9AgZd%?4{N0LB>V zy8Z#TYm`!YfWcruRaHD2g<<$Ix$_@<4+03okn{OW5Com@OF&mpm-Zh6o`c@O|E0bF Xl$G~fS|wl500000NkvXXu0mjfh4Q|f literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/powder_ash.fullerene.png b/src/main/resources/assets/hbm/textures/items/powder_ash.fullerene.png new file mode 100644 index 0000000000000000000000000000000000000000..31ca1e7f7471228b224705713ac05ec4ba78d1f4 GIT binary patch literal 480 zcmV<60U!Q}P)2L6oSAo@h@<2a4^yTz{SN5gh-;Zp?8utrZv&FXfG6cJ)V<|5UUBSeACNI-k0}&d2qx( znLF?3-LVBd(D41Fqo1yqwPZJRW;D}LV*agZUvPA8VgZds*m9MtC$A9>iaskX%YOyV zrFp$K>7e}v4NuuD`&^t#(R?ekVxrG0Po$$DGcm6ZrX9W)>zwfWh{PjUzQy}@9~m(d zOh$#4CHkWNxGgb$7mucFok^yV0TZjgm)h4lYq<}Y!v-T==h$etjK@<9NrIc*i|tGV zVDXBr>13MYJ$+P)K2fU|VkTR8_MGtWvaQRjPxr`fpUJdkyMeGj{X=turOqEZd$#lE?dKN= WCZ%L$k8NfE0000 Date: Tue, 3 Oct 2023 22:08:06 +0200 Subject: [PATCH 332/432] SILEX tweaks, arc welder model --- .../java/com/hbm/inventory/gui/GUISILEX.java | 5 +- .../tileentity/machine/TileEntitySILEX.java | 18 +- .../assets/hbm/models/machines/arc_welder.obj | 1225 +++++++++++++++++ .../textures/models/machines/arc_welder.png | Bin 0 -> 1024 bytes 4 files changed, 1246 insertions(+), 2 deletions(-) create mode 100644 src/main/resources/assets/hbm/models/machines/arc_welder.obj create mode 100644 src/main/resources/assets/hbm/textures/models/machines/arc_welder.png diff --git a/src/main/java/com/hbm/inventory/gui/GUISILEX.java b/src/main/java/com/hbm/inventory/gui/GUISILEX.java index 8de55b89a..722b59878 100644 --- a/src/main/java/com/hbm/inventory/gui/GUISILEX.java +++ b/src/main/java/com/hbm/inventory/gui/GUISILEX.java @@ -6,6 +6,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerSILEX; import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.recipes.SILEXRecipes; +import com.hbm.items.ModItems; import com.hbm.items.machine.ItemFELCrystal.EnumWavelengths; import com.hbm.lib.RefStrings; import com.hbm.packet.AuxButtonPacket; @@ -18,6 +20,7 @@ import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; public class GUISILEX extends GuiInfoContainer { @@ -85,7 +88,7 @@ public class GUISILEX extends GuiInfoContainer { if(silex.tank.getFill() > 0) { - if(silex.tank.getTankType() == Fluids.ACID || silex.fluidConversion.containsKey(silex.tank.getTankType())) { + if(silex.tank.getTankType() == Fluids.ACID || silex.fluidConversion.containsKey(silex.tank.getTankType()) || SILEXRecipes.getOutput(new ItemStack(ModItems.fluid_icon, 1, silex.tank.getTankType().getID())) != null) { drawTexturedModalRect(guiLeft + 7, guiTop + 41, 176, 118, 54, 9); } else { drawTexturedModalRect(guiLeft + 7, guiTop + 41, 176, 109, 54, 9); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntitySILEX.java b/src/main/java/com/hbm/tileentity/machine/TileEntitySILEX.java index f89d0660f..454714695 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntitySILEX.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntitySILEX.java @@ -158,10 +158,26 @@ public class TileEntitySILEX extends TileEntityMachineBase implements IFluidAcce if(current != null && current.equals(conv)) { - int toFill = Math.min(10, Math.min(maxFill - currentFill, tank.getFill())); + int toFill = Math.min(50, Math.min(maxFill - currentFill, tank.getFill())); currentFill += toFill; tank.setFill(tank.getFill() - toFill); } + } else { + ComparableStack direct = new ComparableStack(ModItems.fluid_icon, 1, tank.getTankType().getID()); + + if(SILEXRecipes.getOutput(direct.toStack()) != null) { + + if(currentFill == 0) { + current = (ComparableStack) direct.copy(); + } + + if(current != null && current.equals(direct)) { + + int toFill = Math.min(50, Math.min(maxFill - currentFill, tank.getFill())); + currentFill += toFill; + tank.setFill(tank.getFill() - toFill); + } + } } loadDelay++; diff --git a/src/main/resources/assets/hbm/models/machines/arc_welder.obj b/src/main/resources/assets/hbm/models/machines/arc_welder.obj new file mode 100644 index 000000000..cf99681bf --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/arc_welder.obj @@ -0,0 +1,1225 @@ +# Blender v2.79 (sub 0) OBJ File: 'arc_welder.blend' +# www.blender.org +o Plane +v -1.000000 0.000000 1.500000 +v 1.000000 0.000000 1.500000 +v -1.000000 0.000000 -1.500000 +v 1.000000 0.000000 -1.500000 +v -1.000000 0.125000 1.500000 +v 1.000000 0.125000 1.500000 +v -1.000000 0.125000 -1.500000 +v 1.000000 0.125000 -1.500000 +v -1.000000 0.875000 1.500000 +v 1.000000 0.875000 1.500000 +v -1.000000 0.875000 -1.500000 +v 1.000000 0.875000 -1.500000 +v -1.000000 1.000000 1.500000 +v 1.000000 1.000000 1.500000 +v -1.000000 1.000000 -1.500000 +v 1.000000 1.000000 -1.500000 +v -0.875000 0.125000 -1.375000 +v -0.875000 0.125000 1.375000 +v 0.875000 0.125000 1.375000 +v 0.875000 0.125000 -1.375000 +v -0.875000 0.875000 -1.375000 +v -0.875000 0.875000 1.375000 +v 0.875000 0.875000 1.375000 +v 0.875000 0.875000 -1.375000 +v -0.500000 1.000000 0.500000 +v 0.500000 1.000000 0.500000 +v -0.500000 1.000000 -0.500000 +v 0.500000 1.000000 -0.500000 +v -0.500000 1.125000 -0.500000 +v -0.500000 1.125000 0.500000 +v 0.500000 1.125000 0.500000 +v 0.500000 1.125000 -0.500000 +v -0.750000 2.000000 1.125000 +v 0.750000 2.000000 1.125000 +v -0.750000 2.000000 0.875000 +v 0.750000 2.000000 0.875000 +v -0.750000 1.000000 1.125000 +v 0.750000 1.000000 1.125000 +v -0.750000 1.000000 0.875000 +v 0.750000 1.000000 0.875000 +v -0.500000 1.750000 1.125000 +v 0.500000 1.750000 1.125000 +v -0.500000 1.750000 0.875000 +v 0.500000 1.750000 0.875000 +v 0.500000 1.000000 1.125000 +v 0.500000 1.000000 0.875000 +v -0.500000 1.000000 1.125000 +v -0.500000 1.000000 0.875000 +v -0.750000 2.000000 -0.875000 +v 0.750000 2.000000 -0.875000 +v -0.750000 2.000000 -1.125000 +v 0.750000 2.000000 -1.125000 +v -0.750000 1.000000 -0.875000 +v 0.750000 1.000000 -0.875000 +v -0.750000 1.000000 -1.125000 +v 0.750000 1.000000 -1.125000 +v -0.500000 1.750000 -0.875000 +v 0.500000 1.750000 -0.875000 +v -0.500000 1.750000 -1.125000 +v 0.500000 1.750000 -1.125000 +v 0.500000 1.000000 -0.875000 +v 0.500000 1.000000 -1.125000 +v -0.500000 1.000000 -0.875000 +v -0.500000 1.000000 -1.125000 +v -0.250000 1.849455 1.399379 +v -0.250000 2.259031 1.112591 +v -0.250000 1.419272 0.785015 +v -0.250000 1.828848 0.498227 +v 0.250000 1.849455 1.399379 +v 0.250000 2.259031 1.112591 +v 0.250000 1.419272 0.785015 +v 0.250000 1.828848 0.498227 +v -0.187500 1.900652 1.363531 +v -0.187500 2.207834 1.148439 +v 0.187500 2.207834 1.148439 +v 0.187500 1.900652 1.363531 +v -0.187500 1.972349 1.465925 +v -0.187500 2.279531 1.250834 +v 0.187500 2.279531 1.250834 +v 0.187500 1.972349 1.465925 +v -0.125000 1.726454 0.569924 +v -0.125000 1.521666 0.713318 +v 0.125000 1.521666 0.713318 +v 0.125000 1.726454 0.569924 +v -0.125000 1.583060 0.365136 +v -0.125000 1.378272 0.508530 +v 0.125000 1.378272 0.508530 +v 0.125000 1.583060 0.365136 +v -0.062500 1.531863 0.400984 +v -0.062500 1.429469 0.472682 +v 0.062500 1.429469 0.472682 +v 0.062500 1.531863 0.400984 +v 0.000000 1.193878 0.027257 +v 0.250000 1.849455 -1.399379 +v 0.250000 2.259031 -1.112591 +v 0.250000 1.419272 -0.785015 +v 0.250000 1.828848 -0.498227 +v -0.250000 1.849455 -1.399379 +v -0.250000 2.259031 -1.112591 +v -0.250000 1.419272 -0.785015 +v -0.250000 1.828848 -0.498227 +v 0.187500 1.900652 -1.363531 +v 0.187500 2.207834 -1.148439 +v -0.187500 2.207834 -1.148439 +v -0.187500 1.900652 -1.363531 +v 0.187500 1.972349 -1.465925 +v 0.187500 2.279531 -1.250834 +v -0.187500 2.279531 -1.250834 +v -0.187500 1.972349 -1.465925 +v 0.125000 1.726454 -0.569924 +v 0.125000 1.521666 -0.713318 +v -0.125000 1.521666 -0.713318 +v -0.125000 1.726454 -0.569924 +v 0.125000 1.583060 -0.365136 +v 0.125000 1.378272 -0.508530 +v -0.125000 1.378272 -0.508530 +v -0.125000 1.583060 -0.365136 +v 0.062500 1.531863 -0.400984 +v 0.062500 1.429469 -0.472682 +v -0.062500 1.429469 -0.472682 +v -0.062500 1.531863 -0.400984 +v 0.000000 1.193878 -0.027257 +v -0.375000 1.000000 1.062500 +v 0.375000 1.000000 1.062500 +v -0.375000 1.000000 1.437500 +v 0.375000 1.000000 1.437500 +v -0.375000 1.187500 1.437500 +v -0.375000 1.187500 1.062500 +v 0.375000 1.187500 1.062500 +v 0.375000 1.187500 1.437500 +v -0.375000 1.250000 1.375000 +v -0.375000 1.250000 1.125000 +v 0.375000 1.250000 1.125000 +v 0.375000 1.250000 1.375000 +v -0.250000 1.000000 1.343750 +v -0.250000 1.000000 1.281250 +v -0.312500 1.000000 1.343750 +v -0.312500 1.000000 1.281250 +v -0.312500 2.062500 1.343750 +v -0.312500 2.062500 1.281250 +v -0.250000 2.062500 1.343750 +v -0.250000 2.062500 1.281250 +v -0.187500 2.062500 1.343750 +v -0.187500 2.062500 1.281250 +v -0.250000 2.125000 1.343750 +v -0.250000 2.125000 1.281250 +v -0.187500 2.125000 1.343750 +v -0.187500 2.125000 1.281250 +v -0.375000 1.000000 -1.437500 +v 0.375000 1.000000 -1.437500 +v -0.375000 1.000000 -1.062500 +v 0.375000 1.000000 -1.062500 +v -0.375000 1.187500 -1.062500 +v -0.375000 1.187500 -1.437500 +v 0.375000 1.187500 -1.437500 +v 0.375000 1.187500 -1.062500 +v -0.375000 1.250000 -1.125000 +v -0.375000 1.250000 -1.375000 +v 0.375000 1.250000 -1.375000 +v 0.375000 1.250000 -1.125000 +v -0.250000 1.000000 -1.281250 +v -0.250000 1.000000 -1.343750 +v -0.312500 1.000000 -1.281250 +v -0.312500 1.000000 -1.343750 +v -0.312500 2.062500 -1.281250 +v -0.312500 2.062500 -1.343750 +v -0.250000 2.062500 -1.281250 +v -0.250000 2.062500 -1.343750 +v -0.187500 2.062500 -1.281250 +v -0.187500 2.062500 -1.343750 +v -0.250000 2.125000 -1.281250 +v -0.250000 2.125000 -1.343750 +v -0.187500 2.125000 -1.281250 +v -0.187500 2.125000 -1.343750 +v 0.750000 1.250000 0.750000 +v 0.875000 1.250000 0.750000 +v 0.750000 1.250000 -0.750000 +v 0.875000 1.250000 -0.750000 +v 0.750000 1.000000 0.750000 +v 0.875000 1.000000 0.750000 +v 0.750000 1.000000 -0.750000 +v 0.875000 1.000000 -0.750000 +v 0.750000 1.124000 0.625000 +v 0.875000 1.124000 0.625000 +v 0.750000 1.124000 -0.625000 +v 0.875000 1.124000 -0.625000 +v 0.750000 0.999000 0.625000 +v 0.875000 0.999000 0.625000 +v 0.750000 0.999000 -0.625000 +v 0.875000 0.999000 -0.625000 +v -0.875000 1.250000 0.750000 +v -0.750000 1.250000 0.750000 +v -0.875000 1.250000 -0.750000 +v -0.750000 1.250000 -0.750000 +v -0.875000 1.000000 0.750000 +v -0.750000 1.000000 0.750000 +v -0.875000 1.000000 -0.750000 +v -0.750000 1.000000 -0.750000 +v -0.875000 1.124000 0.625000 +v -0.750000 1.124000 0.625000 +v -0.875000 1.124000 -0.625000 +v -0.750000 1.124000 -0.625000 +v -0.875000 0.999000 0.625000 +v -0.750000 0.999000 0.625000 +v -0.875000 0.999000 -0.625000 +v -0.750000 0.999000 -0.625000 +v -0.687500 0.687500 1.500000 +v -0.312500 0.687500 1.500000 +v -0.687500 0.312500 1.500000 +v -0.312500 0.312500 1.500000 +v -0.687500 0.312500 1.375000 +v -0.687500 0.687500 1.375000 +v -0.312500 0.687500 1.375000 +v -0.312500 0.312500 1.375000 +v 0.312500 0.687500 1.500000 +v 0.687500 0.687500 1.500000 +v 0.312500 0.312500 1.500000 +v 0.687500 0.312500 1.500000 +v 0.312500 0.312500 1.375000 +v 0.312500 0.687500 1.375000 +v 0.687500 0.687500 1.375000 +v 0.687500 0.312500 1.375000 +v 0.687500 0.687500 -1.500000 +v 0.312500 0.687500 -1.500000 +v 0.687500 0.312500 -1.500000 +v 0.312500 0.312500 -1.500000 +v 0.687500 0.312500 -1.375000 +v 0.687500 0.687500 -1.375000 +v 0.312500 0.687500 -1.375000 +v 0.312500 0.312500 -1.375000 +v -0.312500 0.687500 -1.500000 +v -0.687500 0.687500 -1.500000 +v -0.312500 0.312500 -1.500000 +v -0.687500 0.312500 -1.500000 +v -0.312500 0.312500 -1.375000 +v -0.312500 0.687500 -1.375000 +v -0.687500 0.687500 -1.375000 +v -0.687500 0.312500 -1.375000 +v 1.000000 0.687500 1.187500 +v 1.000000 0.687500 0.812500 +v 1.000000 0.312500 1.187500 +v 1.000000 0.312500 0.812500 +v 0.875000 0.312500 1.187500 +v 0.875000 0.687500 1.187500 +v 0.875000 0.687500 0.812500 +v 0.875000 0.312500 0.812500 +v 1.000000 0.687500 0.187500 +v 1.000000 0.687500 -0.187500 +v 1.000000 0.312500 0.187500 +v 1.000000 0.312500 -0.187500 +v 0.875000 0.312500 0.187500 +v 0.875000 0.687500 0.187500 +v 0.875000 0.687500 -0.187500 +v 0.875000 0.312500 -0.187500 +v -1.000000 0.687500 -0.187500 +v -1.000000 0.687500 0.187500 +v -1.000000 0.312500 -0.187500 +v -1.000000 0.312500 0.187500 +v -0.875000 0.312500 -0.187500 +v -0.875000 0.687500 -0.187500 +v -0.875000 0.687500 0.187500 +v -0.875000 0.312500 0.187500 +v -1.000000 0.687500 0.812500 +v -1.000000 0.687500 1.187500 +v -1.000000 0.312500 0.812500 +v -1.000000 0.312500 1.187500 +v -0.875000 0.312500 0.812500 +v -0.875000 0.687500 0.812500 +v -0.875000 0.687500 1.187500 +v -0.875000 0.312500 1.187500 +v 1.000000 0.687500 -0.812500 +v 1.000000 0.687500 -1.187500 +v 1.000000 0.312500 -0.812500 +v 1.000000 0.312500 -1.187500 +v 0.875000 0.312500 -0.812500 +v 0.875000 0.687500 -0.812500 +v 0.875000 0.687500 -1.187500 +v 0.875000 0.312500 -1.187500 +v -1.000000 0.687500 -1.187500 +v -1.000000 0.687500 -0.812500 +v -1.000000 0.312500 -1.187500 +v -1.000000 0.312500 -0.812500 +v -0.875000 0.312500 -1.187500 +v -0.875000 0.687500 -1.187500 +v -0.875000 0.687500 -0.812500 +v -0.875000 0.312500 -0.812500 +vt 0.571429 0.000000 +vt -0.000000 0.320000 +vt -0.000000 -0.000000 +vt 0.571429 0.340000 +vt 0.023810 0.360000 +vt 0.000000 0.340000 +vt 0.571429 0.320000 +vt 0.571429 0.320000 +vt 0.000000 0.340000 +vt 0.000000 0.320000 +vt 0.952381 0.320000 +vt 0.952381 0.320000 +vt 0.571429 0.340000 +vt 0.000000 0.500000 +vt 0.547619 0.480000 +vt 0.571429 0.500000 +vt -0.000000 0.520000 +vt 0.571429 0.840000 +vt -0.000000 0.840000 +vt 0.571429 0.500000 +vt -0.000000 0.520000 +vt 0.000000 0.500000 +vt 0.952381 0.500000 +vt 0.571429 0.520000 +vt 0.952381 0.500000 +vt 0.571429 0.520000 +vt 0.547619 0.360000 +vt 0.023810 0.480000 +vt 0.023810 0.360000 +vt 0.952381 0.340000 +vt 0.595238 0.360000 +vt 0.952381 0.340000 +vt 0.595238 0.360000 +vt 0.547619 0.360000 +vt 0.023810 0.480000 +vt 0.928571 0.360000 +vt 0.595238 0.480000 +vt 0.928571 0.360000 +vt 0.595238 0.480000 +vt 0.928571 0.480000 +vt 0.547619 0.480000 +vt 0.928571 0.480000 +vt 0.476190 0.880000 +vt 0.190476 0.920000 +vt 0.190476 0.880000 +vt 0.595238 0.540000 +vt 0.785714 0.700000 +vt 0.595238 0.700000 +vt 0.785714 0.520000 +vt 0.595238 0.520000 +vt 0.595238 0.720000 +vt 0.785714 0.720000 +vt 0.809524 0.700000 +vt 0.785714 0.540000 +vt 0.809524 0.540000 +vt 0.571429 0.540000 +vt 0.571429 0.700000 +vt 0.666667 0.920000 +vt 0.476190 0.920000 +vt -0.000000 0.880000 +vt 0.238095 0.960000 +vt 0.428571 0.840000 +vt 0.428571 1.000000 +vt 0.238095 1.000000 +vt 0.523810 0.960000 +vt 0.666667 1.000000 +vt 0.523810 1.000000 +vt 0.142857 1.000000 +vt -0.000000 0.960000 +vt 0.142857 0.960000 +vt -0.000000 0.920000 +vt 0.142857 0.840000 +vt 0.523810 0.840000 +vt 0.666667 0.880000 +vt 0.476190 0.880000 +vt 0.190476 0.920000 +vt 0.190476 0.880000 +vt 0.666667 0.920000 +vt 0.476190 0.920000 +vt -0.000000 0.880000 +vt 0.238095 0.960000 +vt 0.428571 0.840000 +vt 0.428571 1.000000 +vt 0.238095 1.000000 +vt 0.523810 0.960000 +vt 0.666667 1.000000 +vt 0.523810 1.000000 +vt 0.142857 1.000000 +vt -0.000000 0.960000 +vt 0.142857 0.960000 +vt -0.000000 0.920000 +vt 0.142857 0.840000 +vt 0.523810 0.840000 +vt 0.666667 0.880000 +vt 0.678571 0.240000 +vt 0.821429 0.160000 +vt 0.821429 0.240000 +vt 0.821429 -0.000000 +vt 0.845238 0.060000 +vt 0.821429 0.080000 +vt 0.678571 -0.000000 +vt 0.678571 0.160000 +vt 0.666667 0.090000 +vt 0.678571 0.080000 +vt 0.821429 0.320000 +vt 0.666667 0.150000 +vt 0.642857 0.090000 +vt 0.666667 0.010000 +vt 0.666667 0.230000 +vt 0.666667 0.170000 +vt 0.678571 0.320000 +vt 0.666667 0.250000 +vt 0.571429 0.150000 +vt 0.571429 0.090000 +vt 0.642857 0.070000 +vt 0.642857 0.010000 +vt 0.666667 0.310000 +vt 0.642857 0.250000 +vt 0.642857 0.170000 +vt 0.845238 0.180000 +vt 0.892857 0.220000 +vt 0.845238 0.220000 +vt 0.845238 0.300000 +vt 0.845238 0.140000 +vt 0.892857 0.020000 +vt 0.904762 0.050000 +vt 0.892857 0.060000 +vt 0.845238 0.260000 +vt 0.892857 0.300000 +vt 0.845238 0.100000 +vt 0.892857 0.140000 +vt 0.904762 0.030000 +vt 1.000000 0.040000 +vt 0.904762 0.270000 +vt 1.000000 0.280000 +vt 0.904762 0.290000 +vt 0.904762 0.110000 +vt 1.000000 0.120000 +vt 0.904762 0.130000 +vt 0.904762 0.210000 +vt 0.904762 0.190000 +vt 1.000000 0.200000 +vt 0.892857 0.100000 +vt 0.892857 0.260000 +vt 0.678571 0.240000 +vt 0.821429 0.160000 +vt 0.821429 0.240000 +vt 0.821429 -0.000000 +vt 0.845238 0.060000 +vt 0.821429 0.080000 +vt 0.678571 -0.000000 +vt 0.678571 0.160000 +vt 0.666667 0.090000 +vt 0.678571 0.080000 +vt 0.821429 0.320000 +vt 0.666667 0.150000 +vt 0.642857 0.090000 +vt 0.666667 0.010000 +vt 0.666667 0.230000 +vt 0.666667 0.170000 +vt 0.678571 0.320000 +vt 0.666667 0.250000 +vt 0.571429 0.150000 +vt 0.571429 0.090000 +vt 0.642857 0.070000 +vt 0.642857 0.010000 +vt 0.666667 0.310000 +vt 0.642857 0.250000 +vt 0.642857 0.170000 +vt 0.845238 0.180000 +vt 0.892857 0.220000 +vt 0.845238 0.220000 +vt 0.845238 0.300000 +vt 0.845238 0.140000 +vt 0.892857 0.020000 +vt 0.904762 0.050000 +vt 0.892857 0.060000 +vt 0.845238 0.260000 +vt 0.892857 0.300000 +vt 0.845238 0.100000 +vt 0.892857 0.140000 +vt 0.904762 0.030000 +vt 1.000000 0.040000 +vt 0.904762 0.270000 +vt 1.000000 0.280000 +vt 0.904762 0.290000 +vt 0.904762 0.110000 +vt 1.000000 0.120000 +vt 0.904762 0.130000 +vt 0.904762 0.210000 +vt 0.904762 0.190000 +vt 1.000000 0.200000 +vt 0.892857 0.100000 +vt 0.892857 0.260000 +vt 1.000000 0.500000 +vt 0.988095 0.510000 +vt 0.988095 0.500000 +vt 0.726190 0.720000 +vt 0.797619 0.720000 +vt 0.785714 0.760000 +vt 0.952381 0.500000 +vt 0.964286 0.510000 +vt 0.952381 0.510000 +vt 0.964286 0.320000 +vt 0.952381 0.490000 +vt 0.952381 0.320000 +vt 0.690476 0.760000 +vt 0.726190 0.880000 +vt 0.690476 0.880000 +vt 0.833333 0.880000 +vt 0.797619 0.760000 +vt 0.833333 0.760000 +vt 0.738095 0.880000 +vt 0.785714 0.880000 +vt 0.726190 0.760000 +vt 0.797619 0.880000 +vt 0.976190 0.320000 +vt 0.964286 0.490000 +vt 0.797619 0.920000 +vt 0.988095 0.320000 +vt 0.976190 0.490000 +vt 1.000000 0.320000 +vt 0.988095 0.490000 +vt 0.976190 0.500000 +vt 0.976190 0.510000 +vt 0.952381 0.500000 +vt 0.964286 0.500000 +vt 0.988095 0.500000 +vt 0.726190 0.720000 +vt 0.797619 0.720000 +vt 0.785714 0.760000 +vt 0.690476 0.760000 +vt 0.726190 0.880000 +vt 0.690476 0.880000 +vt 0.833333 0.880000 +vt 0.797619 0.760000 +vt 0.833333 0.760000 +vt 0.738095 0.880000 +vt 0.785714 0.880000 +vt 0.726190 0.760000 +vt 0.797619 0.880000 +vt 0.797619 0.920000 +vt 1.000000 0.500000 +vt 0.988095 0.510000 +vt 0.988095 0.500000 +vt 0.952381 0.500000 +vt 0.964286 0.510000 +vt 0.952381 0.510000 +vt 0.964286 0.320000 +vt 0.952381 0.490000 +vt 0.952381 0.320000 +vt 0.976190 0.320000 +vt 0.964286 0.490000 +vt 0.988095 0.320000 +vt 0.976190 0.490000 +vt 1.000000 0.320000 +vt 0.988095 0.490000 +vt 0.976190 0.500000 +vt 0.976190 0.510000 +vt 0.952381 0.500000 +vt 0.964286 0.500000 +vt 0.988095 0.500000 +vt 0.880952 0.560000 +vt 0.857143 0.800000 +vt 0.857143 0.560000 +vt 0.880952 0.800000 +vt 0.857143 0.840000 +vt 0.880952 0.520000 +vt 0.904762 0.780000 +vt 0.833333 0.580000 +vt 0.928571 0.580000 +vt 0.928571 0.780000 +vt 0.904762 0.540000 +vt 0.928571 0.520000 +vt 0.928571 0.540000 +vt 0.928571 0.820000 +vt 0.904762 0.840000 +vt 0.904762 0.820000 +vt 0.833333 0.820000 +vt 0.880952 0.840000 +vt 0.833333 0.540000 +vt 0.857143 0.520000 +vt 0.880952 0.560000 +vt 0.857143 0.800000 +vt 0.857143 0.560000 +vt 0.880952 0.800000 +vt 0.857143 0.840000 +vt 0.880952 0.520000 +vt 0.904762 0.780000 +vt 0.833333 0.580000 +vt 0.928571 0.580000 +vt 0.928571 0.780000 +vt 0.904762 0.540000 +vt 0.928571 0.520000 +vt 0.928571 0.540000 +vt 0.928571 0.820000 +vt 0.904762 0.840000 +vt 0.904762 0.820000 +vt 0.833333 0.820000 +vt 0.880952 0.840000 +vt 0.833333 0.540000 +vt 0.857143 0.520000 +vt 0.595238 0.740000 +vt 0.666667 0.800000 +vt 0.595238 0.800000 +vt 0.595238 0.740000 +vt 0.666667 0.800000 +vt 0.595238 0.800000 +vt 0.666667 0.740000 +vt 0.690476 0.800000 +vt 0.571429 0.740000 +vt 0.666667 0.720000 +vt 0.595238 0.820000 +vt 0.666667 0.740000 +vt 0.690476 0.800000 +vt 0.571429 0.740000 +vt 0.666667 0.720000 +vt 0.595238 0.820000 +vt 0.595238 0.740000 +vt 0.666667 0.800000 +vt 0.595238 0.800000 +vt 0.595238 0.740000 +vt 0.666667 0.800000 +vt 0.595238 0.800000 +vt 0.666667 0.740000 +vt 0.690476 0.800000 +vt 0.571429 0.740000 +vt 0.666667 0.720000 +vt 0.595238 0.820000 +vt 0.666667 0.740000 +vt 0.690476 0.800000 +vt 0.571429 0.740000 +vt 0.666667 0.720000 +vt 0.595238 0.820000 +vt 0.595238 0.740000 +vt 0.666667 0.800000 +vt 0.595238 0.800000 +vt 0.595238 0.740000 +vt 0.666667 0.800000 +vt 0.595238 0.800000 +vt 0.666667 0.740000 +vt 0.690476 0.800000 +vt 0.571429 0.740000 +vt 0.666667 0.720000 +vt 0.595238 0.820000 +vt 0.666667 0.740000 +vt 0.690476 0.800000 +vt 0.571429 0.740000 +vt 0.666667 0.720000 +vt 0.595238 0.820000 +vt 0.595238 0.740000 +vt 0.666667 0.800000 +vt 0.595238 0.800000 +vt 0.595238 0.740000 +vt 0.666667 0.800000 +vt 0.595238 0.800000 +vt 0.666667 0.740000 +vt 0.690476 0.800000 +vt 0.571429 0.740000 +vt 0.666667 0.720000 +vt 0.595238 0.820000 +vt 0.666667 0.740000 +vt 0.690476 0.800000 +vt 0.571429 0.740000 +vt 0.666667 0.720000 +vt 0.595238 0.820000 +vt 0.595238 0.740000 +vt 0.666667 0.800000 +vt 0.595238 0.800000 +vt 0.666667 0.740000 +vt 0.690476 0.800000 +vt 0.571429 0.740000 +vt 0.666667 0.720000 +vt 0.595238 0.820000 +vt 0.595238 0.740000 +vt 0.666667 0.800000 +vt 0.595238 0.800000 +vt 0.666667 0.740000 +vt 0.690476 0.800000 +vt 0.571429 0.740000 +vt 0.666667 0.720000 +vt 0.595238 0.820000 +vt 0.952381 0.520000 +vt 0.952381 0.520000 +vt 0.428571 0.960000 +vt 0.238095 0.840000 +vt 0.666667 0.960000 +vt -0.000000 1.000000 +vt -0.000000 0.840000 +vt 0.666667 0.840000 +vt 0.428571 0.960000 +vt 0.238095 0.840000 +vt 0.666667 0.960000 +vt -0.000000 1.000000 +vt -0.000000 0.840000 +vt 0.666667 0.840000 +vt 0.845238 0.020000 +vt 0.642857 0.150000 +vt 0.666667 0.070000 +vt 0.642857 0.310000 +vt 0.642857 0.230000 +vt 0.892857 0.180000 +vt 0.845238 0.020000 +vt 0.642857 0.150000 +vt 0.666667 0.070000 +vt 0.642857 0.310000 +vt 0.642857 0.230000 +vt 0.892857 0.180000 +vt 1.000000 0.510000 +vt 0.797619 0.750000 +vt 0.738095 0.760000 +vt 0.726190 0.750000 +vt 0.797619 0.890000 +vt 0.726190 0.920000 +vt 0.726190 0.890000 +vt 1.000000 0.490000 +vt 0.797619 0.750000 +vt 0.738095 0.760000 +vt 0.726190 0.750000 +vt 0.797619 0.890000 +vt 0.726190 0.920000 +vt 0.726190 0.890000 +vt 1.000000 0.510000 +vt 1.000000 0.490000 +vt 0.904762 0.580000 +vt 0.833333 0.780000 +vt 0.904762 0.520000 +vt 0.928571 0.840000 +vt 0.833333 0.840000 +vt 0.833333 0.520000 +vt 0.904762 0.580000 +vt 0.833333 0.780000 +vt 0.904762 0.520000 +vt 0.928571 0.840000 +vt 0.833333 0.840000 +vt 0.833333 0.520000 +vt 0.690476 0.740000 +vt 0.571429 0.800000 +vt 0.595238 0.720000 +vt 0.666667 0.820000 +vt 0.690476 0.740000 +vt 0.571429 0.800000 +vt 0.595238 0.720000 +vt 0.666667 0.820000 +vt 0.690476 0.740000 +vt 0.571429 0.800000 +vt 0.595238 0.720000 +vt 0.666667 0.820000 +vt 0.690476 0.740000 +vt 0.571429 0.800000 +vt 0.595238 0.720000 +vt 0.666667 0.820000 +vt 0.690476 0.740000 +vt 0.571429 0.800000 +vt 0.595238 0.720000 +vt 0.666667 0.820000 +vt 0.690476 0.740000 +vt 0.571429 0.800000 +vt 0.595238 0.720000 +vt 0.666667 0.820000 +vt 0.690476 0.740000 +vt 0.571429 0.800000 +vt 0.595238 0.720000 +vt 0.666667 0.820000 +vt 0.690476 0.740000 +vt 0.571429 0.800000 +vt 0.595238 0.720000 +vt 0.666667 0.820000 +vt 0.690476 0.740000 +vt 0.571429 0.800000 +vt 0.595238 0.720000 +vt 0.666667 0.820000 +vt 0.690476 0.740000 +vt 0.571429 0.800000 +vt 0.595238 0.720000 +vt 0.666667 0.820000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -0.5736 -0.8192 +vn 0.0000 0.5736 0.8192 +vn 0.0000 -0.8192 0.5736 +vn 0.0000 0.8192 -0.5736 +vn 0.9923 -0.0711 -0.1016 +vn 0.0000 -0.8840 0.4675 +vn 0.0000 0.7417 -0.6708 +vn -0.9923 -0.0711 -0.1016 +vn -0.0000 -0.5736 0.8192 +vn 0.0000 0.5736 -0.8192 +vn 0.0000 -0.8192 -0.5736 +vn 0.0000 0.8192 0.5736 +vn -0.9923 -0.0711 0.1016 +vn 0.0000 -0.8840 -0.4675 +vn 0.0000 0.7417 0.6708 +vn 0.9923 -0.0711 0.1016 +vn 0.0000 0.7071 0.7071 +vn 0.0000 0.7071 -0.7071 +vn -0.7071 0.7071 0.0000 +s off +f 3/1/1 2/2/1 1/3/1 +f 8/4/2 19/5/2 6/6/2 +f 4/7/3 6/6/3 2/2/3 +f 1/8/4 7/9/4 3/10/4 +f 3/11/5 8/4/5 4/7/5 +f 2/12/6 5/13/6 1/8/6 +f 10/14/1 24/15/1 12/16/1 +f 14/17/2 15/18/2 13/19/2 +f 12/16/3 14/17/3 10/14/3 +f 9/20/4 15/21/4 11/22/4 +f 11/23/5 16/24/5 12/16/5 +f 10/25/6 13/26/6 9/20/6 +f 20/27/3 23/28/3 19/5/3 +f 5/13/2 17/29/2 7/9/2 +f 7/30/2 20/31/2 8/4/2 +f 6/32/2 18/33/2 5/13/2 +f 18/34/4 21/35/4 17/29/4 +f 17/36/5 24/37/5 20/31/5 +f 19/38/6 22/39/6 18/33/6 +f 12/16/1 21/40/1 11/23/1 +f 11/22/1 22/41/1 9/20/1 +f 9/20/1 23/42/1 10/25/1 +f 34/43/2 35/44/2 33/45/2 +f 31/46/2 29/47/2 30/48/2 +f 28/49/3 31/46/3 26/50/3 +f 25/51/4 29/47/4 27/52/4 +f 27/53/5 32/54/5 28/55/5 +f 26/56/6 30/48/6 25/57/6 +f 34/43/3 40/58/3 36/59/3 +f 35/44/4 37/60/4 33/45/4 +f 36/59/5 43/61/5 35/44/5 +f 33/45/6 42/62/6 34/43/6 +f 43/61/1 42/63/1 41/64/1 +f 44/65/4 45/66/4 42/67/4 +f 41/68/3 48/69/3 43/70/3 +f 43/70/5 39/71/5 35/44/5 +f 37/60/6 41/72/6 33/45/6 +f 40/58/5 44/65/5 36/59/5 +f 42/73/6 38/74/6 34/43/6 +f 50/75/2 51/76/2 49/77/2 +f 50/75/3 56/78/3 52/79/3 +f 51/76/4 53/80/4 49/77/4 +f 52/79/5 59/81/5 51/76/5 +f 49/77/6 58/82/6 50/75/6 +f 59/81/1 58/83/1 57/84/1 +f 60/85/4 61/86/4 58/87/4 +f 57/88/3 64/89/3 59/90/3 +f 59/90/5 55/91/5 51/76/5 +f 53/80/6 57/92/6 49/77/6 +f 56/78/5 60/85/5 52/79/5 +f 58/93/6 54/94/6 50/75/6 +f 65/95/4 68/96/4 67/97/4 +f 71/98/7 84/99/7 72/100/7 +f 72/100/3 69/101/3 71/98/3 +f 66/102/8 75/103/8 70/104/8 +f 71/105/9 65/95/9 67/97/9 +f 68/96/10 70/104/10 72/100/10 +f 74/106/10 79/107/10 75/103/10 +f 70/104/8 76/108/8 69/101/8 +f 66/102/8 73/109/8 74/110/8 +f 69/111/8 73/112/8 65/95/8 +f 79/107/8 77/113/8 80/114/8 +f 76/108/3 79/115/3 80/116/3 +f 76/117/9 77/118/9 73/112/9 +f 73/109/4 78/119/4 74/110/4 +f 81/120/4 86/121/4 82/122/4 +f 67/97/7 83/123/7 71/105/7 +f 72/100/7 81/124/7 68/96/7 +f 67/97/7 81/120/7 82/122/7 +f 87/125/7 92/126/7 88/127/7 +f 84/99/3 87/125/3 88/127/3 +f 82/128/9 87/129/9 83/123/9 +f 84/130/10 85/131/10 81/124/10 +f 91/132/11 93/133/11 92/126/11 +f 90/134/12 93/135/12 91/136/12 +f 92/137/13 93/138/13 89/139/13 +f 90/140/14 89/141/14 93/142/14 +f 92/137/7 85/131/7 88/143/7 +f 86/121/7 89/141/7 90/140/7 +f 90/134/7 87/129/7 86/144/7 +f 94/145/3 97/146/3 96/147/3 +f 100/148/15 113/149/15 101/150/15 +f 101/150/4 98/151/4 100/148/4 +f 95/152/16 104/153/16 99/154/16 +f 100/155/17 94/145/17 96/147/17 +f 97/146/18 99/154/18 101/150/18 +f 103/156/18 108/157/18 104/153/18 +f 99/154/16 105/158/16 98/151/16 +f 95/152/16 102/159/16 103/160/16 +f 98/161/16 102/162/16 94/145/16 +f 108/157/16 106/163/16 109/164/16 +f 105/158/4 108/165/4 109/166/4 +f 105/167/17 106/168/17 102/162/17 +f 102/159/3 107/169/3 103/160/3 +f 110/170/3 115/171/3 111/172/3 +f 96/147/15 112/173/15 100/155/15 +f 101/150/15 110/174/15 97/146/15 +f 96/147/15 110/170/15 111/172/15 +f 116/175/15 121/176/15 117/177/15 +f 113/149/4 116/175/4 117/177/4 +f 111/178/17 116/179/17 112/173/17 +f 113/180/18 114/181/18 110/174/18 +f 120/182/19 122/183/19 121/176/19 +f 119/184/20 122/185/20 120/186/20 +f 121/187/21 122/188/21 118/189/21 +f 119/190/22 118/191/22 122/192/22 +f 121/187/15 114/181/15 117/193/15 +f 115/171/15 118/191/15 119/190/15 +f 119/184/15 116/179/15 115/194/15 +f 142/195/1 143/196/1 141/197/1 +f 126/198/3 124/199/3 133/200/3 +f 142/201/5 148/202/5 144/203/5 +f 138/204/5 142/205/5 136/206/5 +f 126/207/6 127/208/6 125/209/6 +f 123/210/5 129/211/5 124/212/5 +f 131/213/2 133/200/2 132/214/2 +f 130/215/23 131/213/23 127/208/23 +f 128/216/24 133/200/24 129/211/24 +f 137/217/4 140/218/4 138/204/4 +f 131/213/4 132/214/4 123/219/4 +f 135/220/6 139/221/6 137/217/6 +f 136/222/3 141/223/3 135/220/3 +f 143/196/6 145/224/6 141/197/6 +f 148/202/2 145/224/2 147/225/2 +f 140/218/5 146/226/5 142/205/5 +f 139/221/25 146/227/25 140/218/25 +f 141/223/6 145/228/6 139/221/6 +f 152/229/3 150/230/3 159/231/3 +f 152/232/6 153/233/6 151/234/6 +f 149/235/5 155/236/5 150/237/5 +f 157/238/2 159/231/2 158/239/2 +f 156/240/23 157/238/23 153/233/23 +f 154/241/24 159/231/24 155/236/24 +f 157/238/4 158/239/4 149/242/4 +f 168/243/1 169/244/1 167/245/1 +f 168/246/5 174/247/5 170/248/5 +f 164/249/5 168/250/5 162/251/5 +f 163/252/4 166/253/4 164/249/4 +f 161/254/6 165/255/6 163/252/6 +f 162/256/3 167/257/3 161/254/3 +f 169/244/6 171/258/6 167/245/6 +f 174/247/2 171/258/2 173/259/2 +f 166/253/5 172/260/5 168/250/5 +f 165/255/25 172/261/25 166/253/25 +f 167/257/6 171/262/6 165/255/6 +f 176/263/2 177/264/2 175/265/2 +f 178/266/5 181/267/5 177/264/5 +f 175/265/6 180/268/6 176/263/6 +f 176/263/3 186/269/3 178/266/3 +f 177/264/4 183/270/4 175/265/4 +f 186/269/1 183/271/1 185/272/1 +f 184/273/5 187/274/5 183/275/5 +f 185/276/6 190/277/6 186/278/6 +f 181/267/4 185/279/4 177/264/4 +f 186/278/3 182/280/3 178/266/3 +f 183/281/4 179/282/4 175/265/4 +f 180/268/3 184/273/3 176/263/3 +f 192/283/2 193/284/2 191/285/2 +f 194/286/5 197/287/5 193/284/5 +f 191/285/6 196/288/6 192/283/6 +f 192/283/3 202/289/3 194/286/3 +f 193/284/4 199/290/4 191/285/4 +f 202/289/1 199/291/1 201/292/1 +f 200/293/5 203/294/5 199/295/5 +f 201/296/6 206/297/6 202/298/6 +f 197/287/4 201/299/4 193/284/4 +f 202/298/3 198/300/3 194/286/3 +f 199/301/4 195/302/4 191/285/4 +f 196/288/3 200/293/3 192/283/3 +f 209/303/6 208/304/6 207/305/6 +f 217/306/6 216/307/6 215/308/6 +f 210/309/3 213/310/3 208/304/3 +f 207/305/4 211/311/4 209/303/4 +f 209/303/1 214/312/1 210/309/1 +f 208/304/2 212/313/2 207/305/2 +f 218/314/3 221/315/3 216/307/3 +f 215/308/4 219/316/4 217/306/4 +f 217/306/1 222/317/1 218/314/1 +f 216/307/2 220/318/2 215/308/2 +f 225/319/5 224/320/5 223/321/5 +f 233/322/5 232/323/5 231/324/5 +f 226/325/4 229/326/4 224/320/4 +f 223/321/3 227/327/3 225/319/3 +f 225/319/1 230/328/1 226/325/1 +f 224/320/2 228/329/2 223/321/2 +f 234/330/4 237/331/4 232/323/4 +f 231/324/3 235/332/3 233/322/3 +f 233/322/1 238/333/1 234/330/1 +f 232/323/2 236/334/2 231/324/2 +f 241/335/3 240/336/3 239/337/3 +f 249/338/3 248/339/3 247/340/3 +f 242/341/5 245/342/5 240/336/5 +f 239/337/6 243/343/6 241/335/6 +f 241/335/1 246/344/1 242/341/1 +f 240/336/2 244/345/2 239/337/2 +f 250/346/5 253/347/5 248/339/5 +f 247/340/6 251/348/6 249/338/6 +f 249/338/1 254/349/1 250/346/1 +f 248/339/2 252/350/2 247/340/2 +f 257/351/4 256/352/4 255/353/4 +f 265/354/4 264/355/4 263/356/4 +f 258/357/6 261/358/6 256/352/6 +f 255/353/5 259/359/5 257/351/5 +f 257/351/1 262/360/1 258/357/1 +f 256/352/2 260/361/2 255/353/2 +f 266/362/6 269/363/6 264/355/6 +f 263/356/5 267/364/5 265/354/5 +f 265/354/1 270/365/1 266/362/1 +f 264/355/2 268/366/2 263/356/2 +f 273/367/3 272/368/3 271/369/3 +f 274/370/5 277/371/5 272/368/5 +f 271/369/6 275/372/6 273/367/6 +f 273/367/1 278/373/1 274/370/1 +f 272/368/2 276/374/2 271/369/2 +f 281/375/4 280/376/4 279/377/4 +f 282/378/6 285/379/6 280/376/6 +f 279/377/5 283/380/5 281/375/5 +f 281/375/1 286/381/1 282/378/1 +f 280/376/2 284/382/2 279/377/2 +f 3/1/1 4/7/1 2/2/1 +f 8/4/2 20/27/2 19/5/2 +f 4/7/3 8/4/3 6/6/3 +f 1/8/4 5/13/4 7/9/4 +f 3/11/5 7/30/5 8/4/5 +f 2/12/6 6/32/6 5/13/6 +f 10/14/1 23/28/1 24/15/1 +f 14/17/2 16/24/2 15/18/2 +f 12/16/3 16/24/3 14/17/3 +f 9/20/4 13/26/4 15/21/4 +f 11/23/5 15/383/5 16/24/5 +f 10/25/6 14/384/6 13/26/6 +f 20/27/3 24/15/3 23/28/3 +f 5/13/2 18/34/2 17/29/2 +f 7/30/2 17/36/2 20/31/2 +f 6/32/2 19/38/2 18/33/2 +f 18/34/4 22/41/4 21/35/4 +f 17/36/5 21/40/5 24/37/5 +f 19/38/6 23/42/6 22/39/6 +f 12/16/1 24/37/1 21/40/1 +f 11/22/1 21/35/1 22/41/1 +f 9/20/1 22/39/1 23/42/1 +f 34/43/2 36/59/2 35/44/2 +f 31/46/2 32/54/2 29/47/2 +f 28/49/3 32/54/3 31/46/3 +f 25/51/4 30/48/4 29/47/4 +f 27/53/5 29/47/5 32/54/5 +f 26/56/6 31/46/6 30/48/6 +f 34/43/3 38/74/3 40/58/3 +f 35/44/4 39/71/4 37/60/4 +f 36/59/5 44/385/5 43/61/5 +f 33/45/6 41/386/6 42/62/6 +f 43/61/1 44/385/1 42/63/1 +f 44/65/4 46/387/4 45/66/4 +f 41/68/3 47/388/3 48/69/3 +f 43/70/5 48/69/5 39/71/5 +f 37/60/6 47/389/6 41/72/6 +f 40/58/5 46/387/5 44/65/5 +f 42/73/6 45/390/6 38/74/6 +f 50/75/2 52/79/2 51/76/2 +f 50/75/3 54/94/3 56/78/3 +f 51/76/4 55/91/4 53/80/4 +f 52/79/5 60/391/5 59/81/5 +f 49/77/6 57/392/6 58/82/6 +f 59/81/1 60/391/1 58/83/1 +f 60/85/4 62/393/4 61/86/4 +f 57/88/3 63/394/3 64/89/3 +f 59/90/5 64/89/5 55/91/5 +f 53/80/6 63/395/6 57/92/6 +f 56/78/5 62/393/5 60/85/5 +f 58/93/6 61/396/6 54/94/6 +f 65/95/4 66/102/4 68/96/4 +f 71/98/7 83/397/7 84/99/7 +f 72/100/3 70/104/3 69/101/3 +f 66/102/8 74/106/8 75/103/8 +f 71/105/9 69/111/9 65/95/9 +f 68/96/10 66/102/10 70/104/10 +f 74/106/10 78/398/10 79/107/10 +f 70/104/8 75/399/8 76/108/8 +f 66/102/8 65/95/8 73/109/8 +f 69/111/8 76/117/8 73/112/8 +f 79/107/8 78/398/8 77/113/8 +f 76/108/3 75/399/3 79/115/3 +f 76/117/9 80/400/9 77/118/9 +f 73/109/4 77/401/4 78/119/4 +f 81/120/4 85/402/4 86/121/4 +f 67/97/7 82/128/7 83/123/7 +f 72/100/7 84/130/7 81/124/7 +f 67/97/7 68/96/7 81/120/7 +f 87/125/7 91/132/7 92/126/7 +f 84/99/3 83/397/3 87/125/3 +f 82/128/9 86/144/9 87/129/9 +f 84/130/10 88/143/10 85/131/10 +f 92/137/7 89/139/7 85/131/7 +f 86/121/7 85/402/7 89/141/7 +f 90/134/7 91/136/7 87/129/7 +f 94/145/3 95/152/3 97/146/3 +f 100/148/15 112/403/15 113/149/15 +f 101/150/4 99/154/4 98/151/4 +f 95/152/16 103/156/16 104/153/16 +f 100/155/17 98/161/17 94/145/17 +f 97/146/18 95/152/18 99/154/18 +f 103/156/18 107/404/18 108/157/18 +f 99/154/16 104/405/16 105/158/16 +f 95/152/16 94/145/16 102/159/16 +f 98/161/16 105/167/16 102/162/16 +f 108/157/16 107/404/16 106/163/16 +f 105/158/4 104/405/4 108/165/4 +f 105/167/17 109/406/17 106/168/17 +f 102/159/3 106/407/3 107/169/3 +f 110/170/3 114/408/3 115/171/3 +f 96/147/15 111/178/15 112/173/15 +f 101/150/15 113/180/15 110/174/15 +f 96/147/15 97/146/15 110/170/15 +f 116/175/15 120/182/15 121/176/15 +f 113/149/4 112/403/4 116/175/4 +f 111/178/17 115/194/17 116/179/17 +f 113/180/18 117/193/18 114/181/18 +f 121/187/15 118/189/15 114/181/15 +f 115/171/15 114/408/15 118/191/15 +f 119/184/15 120/186/15 116/179/15 +f 142/195/1 144/409/1 143/196/1 +f 124/199/3 129/410/3 133/200/3 +f 133/200/3 134/411/3 126/198/3 +f 134/411/3 130/412/3 126/198/3 +f 142/201/5 146/227/5 148/202/5 +f 138/204/5 140/218/5 142/205/5 +f 126/207/6 130/215/6 127/208/6 +f 123/210/5 128/216/5 129/211/5 +f 131/213/2 134/411/2 133/200/2 +f 130/215/23 134/411/23 131/213/23 +f 128/216/24 132/214/24 133/200/24 +f 137/217/4 139/221/4 140/218/4 +f 128/413/4 123/219/4 132/214/4 +f 123/219/4 125/414/4 131/213/4 +f 125/414/4 127/415/4 131/213/4 +f 135/220/6 141/223/6 139/221/6 +f 136/222/3 142/416/3 141/223/3 +f 143/196/6 147/225/6 145/224/6 +f 148/202/2 146/227/2 145/224/2 +f 139/221/25 145/224/25 146/227/25 +f 150/230/3 155/417/3 159/231/3 +f 159/231/3 160/418/3 152/229/3 +f 160/418/3 156/419/3 152/229/3 +f 152/232/6 156/240/6 153/233/6 +f 149/235/5 154/241/5 155/236/5 +f 157/238/2 160/418/2 159/231/2 +f 156/240/23 160/418/23 157/238/23 +f 154/241/24 158/239/24 159/231/24 +f 154/420/4 149/242/4 158/239/4 +f 149/242/4 151/421/4 157/238/4 +f 151/421/4 153/422/4 157/238/4 +f 168/243/1 170/423/1 169/244/1 +f 168/246/5 172/261/5 174/247/5 +f 164/249/5 166/253/5 168/250/5 +f 163/252/4 165/255/4 166/253/4 +f 161/254/6 167/257/6 165/255/6 +f 162/256/3 168/424/3 167/257/3 +f 169/244/6 173/259/6 171/258/6 +f 174/247/2 172/261/2 171/258/2 +f 165/255/25 171/258/25 172/261/25 +f 176/263/2 178/266/2 177/264/2 +f 178/266/5 182/280/5 181/267/5 +f 175/265/6 179/282/6 180/268/6 +f 176/263/3 184/425/3 186/269/3 +f 177/264/4 185/426/4 183/270/4 +f 186/269/1 184/425/1 183/271/1 +f 184/273/5 188/427/5 187/274/5 +f 185/276/6 189/428/6 190/277/6 +f 181/267/4 189/429/4 185/279/4 +f 186/278/3 190/277/3 182/280/3 +f 183/281/4 187/430/4 179/282/4 +f 180/268/3 188/427/3 184/273/3 +f 192/283/2 194/286/2 193/284/2 +f 194/286/5 198/300/5 197/287/5 +f 191/285/6 195/302/6 196/288/6 +f 192/283/3 200/431/3 202/289/3 +f 193/284/4 201/432/4 199/290/4 +f 202/289/1 200/431/1 199/291/1 +f 200/293/5 204/433/5 203/294/5 +f 201/296/6 205/434/6 206/297/6 +f 197/287/4 205/435/4 201/299/4 +f 202/298/3 206/297/3 198/300/3 +f 199/301/4 203/436/4 195/302/4 +f 196/288/3 204/433/3 200/293/3 +f 209/303/6 210/309/6 208/304/6 +f 217/306/6 218/314/6 216/307/6 +f 210/309/3 214/437/3 213/310/3 +f 207/305/4 212/438/4 211/311/4 +f 209/303/1 211/439/1 214/312/1 +f 208/304/2 213/440/2 212/313/2 +f 218/314/3 222/441/3 221/315/3 +f 215/308/4 220/442/4 219/316/4 +f 217/306/1 219/443/1 222/317/1 +f 216/307/2 221/444/2 220/318/2 +f 225/319/5 226/325/5 224/320/5 +f 233/322/5 234/330/5 232/323/5 +f 226/325/4 230/445/4 229/326/4 +f 223/321/3 228/446/3 227/327/3 +f 225/319/1 227/447/1 230/328/1 +f 224/320/2 229/448/2 228/329/2 +f 234/330/4 238/449/4 237/331/4 +f 231/324/3 236/450/3 235/332/3 +f 233/322/1 235/451/1 238/333/1 +f 232/323/2 237/452/2 236/334/2 +f 241/335/3 242/341/3 240/336/3 +f 249/338/3 250/346/3 248/339/3 +f 242/341/5 246/453/5 245/342/5 +f 239/337/6 244/454/6 243/343/6 +f 241/335/1 243/455/1 246/344/1 +f 240/336/2 245/456/2 244/345/2 +f 250/346/5 254/457/5 253/347/5 +f 247/340/6 252/458/6 251/348/6 +f 249/338/1 251/459/1 254/349/1 +f 248/339/2 253/460/2 252/350/2 +f 257/351/4 258/357/4 256/352/4 +f 265/354/4 266/362/4 264/355/4 +f 258/357/6 262/461/6 261/358/6 +f 255/353/5 260/462/5 259/359/5 +f 257/351/1 259/463/1 262/360/1 +f 256/352/2 261/464/2 260/361/2 +f 266/362/6 270/465/6 269/363/6 +f 263/356/5 268/466/5 267/364/5 +f 265/354/1 267/467/1 270/365/1 +f 264/355/2 269/468/2 268/366/2 +f 273/367/3 274/370/3 272/368/3 +f 274/370/5 278/469/5 277/371/5 +f 271/369/6 276/470/6 275/372/6 +f 273/367/1 275/471/1 278/373/1 +f 272/368/2 277/472/2 276/374/2 +f 281/375/4 282/378/4 280/376/4 +f 282/378/6 286/473/6 285/379/6 +f 279/377/5 284/474/5 283/380/5 +f 281/375/1 283/475/1 286/381/1 +f 280/376/2 285/476/2 284/382/2 diff --git a/src/main/resources/assets/hbm/textures/models/machines/arc_welder.png b/src/main/resources/assets/hbm/textures/models/machines/arc_welder.png new file mode 100644 index 0000000000000000000000000000000000000000..d85de397f72547ed4600d83282aa63896a1db313 GIT binary patch literal 1024 zcmeAS@N?(olHy`uVBq!ia0vp^AwZnM!3HEH1jTcJ6icy_X9x!n)NrJ9FfcH0_jGX# zshIP2mSNFt0|8fi8=Ho{1E)M!o?FW|p>VcRZpZ9x?C(mM<9zVbPs1Vn+sFnp&sy_dZYVWL6w4VR`6q8Z+`Qhp6NgMlI<~YZitEn!_UvuT8p76*1n(u6?M@xDwg$*08 z$gJ8b>v~2k`|X?~EDTe1It+~__L%NdmcM%1W7Yd}_LD?*txB?czApBuNooK4j;&5rZ(k(sz8l4GBgc%P z;quFtclY`E`Om#xS2Rt2a?&e?B|o^n3w>oz32r?&4o$Z%^O)EC1}rf6LvmbFPNJys&S^zGOq7nRBg-y=ASAXvtcsZ7$C^J-O`q%weW$-ka~WOx>ZK%ecBd?)7Ho^}e41#5~GhyV_Tkf;#}nQ?UelqHf?Q+?X23UV_fZarbRurR;KYOdZlGhWB`s*HGX ze%aSRzAlfCMaks+-fa-@*&~fDix_XOTfY2-v&4a2QpVvsXLC);IN*2lN@477gPVsZ9QBcP;0GGD z>AT=k$*c+2OLJ#0` zySt)&*@gd3vz9$vqH=b^Yw_PF{8?qCIHu3zJTk?vyY|WV-+Q~(sy6OeBp1=>e0mel zI&J6I*Yq}vUon5ZOyv379dFvX4%cO{-QYjV1JSl-lf0FQ=LUH#p5F_dHpu^COtd#) re$$=?bXAM@d6paeZw*52zvy48aSJ~db?YoJOEY-7`njxgN@xNAZWPwt literal 0 HcmV?d00001 From 89638ae817ddbf5c44b8034f5c0a1007d8c864ea Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 4 Oct 2023 15:26:17 +0200 Subject: [PATCH 333/432] and now for custom fluids --- .../hbm/blocks/generic/BlockBedrockOreTE.java | 2 +- .../hbm/blocks/machine/BlockFluidBarrel.java | 5 +- .../hbm/blocks/machine/DeuteriumTower.java | 3 +- .../hbm/blocks/machine/MachineAutosaw.java | 5 +- .../blocks/machine/MachineBigAssTank9000.java | 5 +- .../machine/MachineCatalyticCracker.java | 5 +- .../hbm/blocks/machine/MachineCondenser.java | 3 +- .../machine/MachineCondenserPowered.java | 3 +- .../machine/MachineDeuteriumExtractor.java | 3 +- .../hbm/blocks/machine/MachineFluidTank.java | 3 +- .../blocks/machine/MachineFrackingTower.java | 3 +- .../blocks/machine/MachineFractionTower.java | 5 +- .../hbm/blocks/machine/MachineHeatBoiler.java | 6 +- .../machine/MachineHeatBoilerIndustrial.java | 6 +- .../hbm/blocks/machine/MachineHephaestus.java | 7 +- .../hbm/blocks/machine/MachineOilWell.java | 3 +- .../com/hbm/blocks/machine/MachineOrbus.java | 5 +- .../com/hbm/blocks/machine/MachinePump.java | 8 +- .../hbm/blocks/machine/MachinePumpjack.java | 3 +- .../hbm/blocks/machine/MachineRefinery.java | 3 +- .../blocks/machine/MachineSteamEngine.java | 4 +- .../hbm/blocks/machine/MachineTowerLarge.java | 3 +- .../hbm/blocks/machine/MachineTowerSmall.java | 3 +- .../hbm/blocks/machine/MachineTurbineGas.java | 11 +- .../hbm/blocks/network/BlockFluidDuct.java | 2 +- .../blocks/network/BlockFluidDuctSolid.java | 2 +- .../com/hbm/blocks/network/FluidDuctBox.java | 2 +- .../blocks/network/FluidDuctBoxExhaust.java | 6 +- .../hbm/blocks/network/FluidDuctGauge.java | 2 +- .../blocks/network/FluidDuctPaintable.java | 2 +- .../hbm/blocks/network/FluidDuctStandard.java | 2 +- .../com/hbm/blocks/network/FluidSwitch.java | 2 +- .../com/hbm/blocks/network/FluidValve.java | 2 +- .../hbm/entity/item/EntityDeliveryDrone.java | 2 +- .../com/hbm/inventory/fluid/FluidType.java | 45 ++++++-- .../java/com/hbm/inventory/fluid/Fluids.java | 103 +++++++++++++++--- .../hbm/inventory/fluid/tank/FluidTank.java | 10 +- .../inventory/fluid/trait/FT_Coolable.java | 2 +- .../inventory/fluid/trait/FT_Heatable.java | 2 +- .../hbm/inventory/gui/GUIMachineSelenium.java | 3 +- .../inventory/gui/GUIMachineTurbineGas.java | 2 +- .../java/com/hbm/inventory/gui/GUIMixer.java | 5 +- .../com/hbm/inventory/gui/GUIScreenFluid.java | 5 +- .../gui/GUIScreenTemplateFolder.java | 3 +- .../com/hbm/items/armor/ArmorFSBFueled.java | 3 +- .../java/com/hbm/items/armor/JetpackBase.java | 5 +- .../com/hbm/items/machine/ItemCanister.java | 2 +- .../items/machine/ItemChemistryTemplate.java | 5 +- .../com/hbm/items/machine/ItemFluidDuct.java | 2 +- .../hbm/items/machine/ItemFluidIDMulti.java | 7 +- .../com/hbm/items/machine/ItemFluidIcon.java | 2 +- .../items/machine/ItemFluidIdentifier.java | 3 +- .../com/hbm/items/machine/ItemFluidTank.java | 2 +- .../com/hbm/items/machine/ItemGasTank.java | 2 +- .../java/com/hbm/items/tool/ItemAnalyzer.java | 2 +- .../com/hbm/items/tool/ItemBlowtorch.java | 7 +- .../hbm/items/tool/ItemToolAbilityFueled.java | 3 +- .../hbm/items/weapon/ItemGunChemthrower.java | 3 +- .../render/tileentity/RenderFluidTank.java | 11 ++ .../machine/rbmk/TileEntityRBMKConsole.java | 10 +- .../hbm/textures/gui/fluids/custom_lava.png | Bin 0 -> 786 bytes .../hbm/textures/gui/fluids/custom_oil.png | Bin 0 -> 545 bytes .../hbm/textures/gui/fluids/custom_toxin.png | Bin 0 -> 702 bytes .../hbm/textures/gui/fluids/custom_water.png | Bin 0 -> 471 bytes 64 files changed, 233 insertions(+), 147 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/custom_lava.png create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/custom_oil.png create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/custom_toxin.png create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/custom_water.png diff --git a/src/main/java/com/hbm/blocks/generic/BlockBedrockOreTE.java b/src/main/java/com/hbm/blocks/generic/BlockBedrockOreTE.java index 6d5b525cc..040c22cba 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockBedrockOreTE.java +++ b/src/main/java/com/hbm/blocks/generic/BlockBedrockOreTE.java @@ -145,7 +145,7 @@ public class BlockBedrockOreTE extends BlockContainer implements ILookOverlay, I text.add("Tier: " + ore.tier); if(ore.acidRequirement != null) { - text.add("Requires: " + ore.acidRequirement.fill + "mB " + I18nUtil.resolveKey(ore.acidRequirement.type.getUnlocalizedName())); + text.add("Requires: " + ore.acidRequirement.fill + "mB " + ore.acidRequirement.type.getLocalizedName()); } ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); diff --git a/src/main/java/com/hbm/blocks/machine/BlockFluidBarrel.java b/src/main/java/com/hbm/blocks/machine/BlockFluidBarrel.java index 7444f30f1..84ad21963 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockFluidBarrel.java +++ b/src/main/java/com/hbm/blocks/machine/BlockFluidBarrel.java @@ -12,7 +12,6 @@ import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.main.MainRegistry; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.machine.storage.TileEntityBarrel; -import com.hbm.util.I18nUtil; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; @@ -183,9 +182,9 @@ public class BlockFluidBarrel extends BlockContainer implements ITooltipProvider @Override public void addInformation(ItemStack stack, NBTTagCompound persistentTag, EntityPlayer player, List list, boolean ext) { - FluidTank tank = new FluidTank(Fluids.NONE, 0, 0); + FluidTank tank = new FluidTank(Fluids.NONE, 0); tank.readFromNBT(persistentTag, "tank"); - list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + I18nUtil.resolveKey(tank.getTankType().getUnlocalizedName())); + list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + tank.getTankType().getLocalizedName()); } @Override diff --git a/src/main/java/com/hbm/blocks/machine/DeuteriumTower.java b/src/main/java/com/hbm/blocks/machine/DeuteriumTower.java index b7530f2d2..85dc20517 100644 --- a/src/main/java/com/hbm/blocks/machine/DeuteriumTower.java +++ b/src/main/java/com/hbm/blocks/machine/DeuteriumTower.java @@ -2,7 +2,6 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; -import java.util.Locale; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; @@ -78,7 +77,7 @@ public class DeuteriumTower extends BlockDummyable implements ILookOverlay { text.add((tower.power < tower.getMaxPower() / 20 ? EnumChatFormatting.RED : EnumChatFormatting.GREEN) + "Power: " + BobMathUtil.getShortNumber(tower.power) + "HE"); for(int i = 0; i < tower.tanks.length; i++) - text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + tower.tanks[i].getTankType().getName().toLowerCase(Locale.US)) + ": " + tower.tanks[i].getFill() + "/" + tower.tanks[i].getMaxFill() + "mB"); + text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + tower.tanks[i].getTankType().getLocalizedName() + ": " + tower.tanks[i].getFill() + "/" + tower.tanks[i].getMaxFill() + "mB"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/blocks/machine/MachineAutosaw.java b/src/main/java/com/hbm/blocks/machine/MachineAutosaw.java index 0aeca216d..8e38ba3e7 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineAutosaw.java +++ b/src/main/java/com/hbm/blocks/machine/MachineAutosaw.java @@ -2,7 +2,6 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; -import java.util.Locale; import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.ITooltipProvider; @@ -62,7 +61,7 @@ public class MachineAutosaw extends BlockContainer implements ILookOverlay, IToo if(saw.acceptedFuels.contains(type)) { saw.tank.setTankType(type); saw.markDirty(); - player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation("hbmfluid." + type.getName().toLowerCase(Locale.US))).appendSibling(new ChatComponentText("!"))); + player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation(type.getConditionalName())).appendSibling(new ChatComponentText("!"))); return true; } } @@ -84,7 +83,7 @@ public class MachineAutosaw extends BlockContainer implements ILookOverlay, IToo TileEntityMachineAutosaw saw = (TileEntityMachineAutosaw) te; List text = new ArrayList(); - text.add(I18nUtil.resolveKey("hbmfluid." + saw.tank.getTankType().getName().toLowerCase(Locale.US)) + ": " + saw.tank.getFill() + "/" + saw.tank.getMaxFill() + "mB"); + text.add(saw.tank.getTankType().getLocalizedName() + ": " + saw.tank.getFill() + "/" + saw.tank.getMaxFill() + "mB"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java b/src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java index 54aecbef7..ec8f81136 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java +++ b/src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java @@ -12,7 +12,6 @@ import com.hbm.main.MainRegistry; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.storage.TileEntityMachineBAT9000; -import com.hbm.util.I18nUtil; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.material.Material; @@ -117,8 +116,8 @@ public class MachineBigAssTank9000 extends BlockDummyable implements IPersistent @Override public void addInformation(ItemStack stack, NBTTagCompound persistentTag, EntityPlayer player, List list, boolean ext) { - FluidTank tank = new FluidTank(Fluids.NONE, 0, 0); + FluidTank tank = new FluidTank(Fluids.NONE, 0); tank.readFromNBT(persistentTag, "tank"); - list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + I18nUtil.resolveKey(tank.getTankType().getUnlocalizedName())); + list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + tank.getTankType().getLocalizedName()); } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineCatalyticCracker.java b/src/main/java/com/hbm/blocks/machine/MachineCatalyticCracker.java index 247ee608d..c8d9bd49d 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineCatalyticCracker.java +++ b/src/main/java/com/hbm/blocks/machine/MachineCatalyticCracker.java @@ -2,7 +2,6 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; -import java.util.Locale; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; @@ -71,7 +70,7 @@ public class MachineCatalyticCracker extends BlockDummyable implements ILookOver FluidType type = ((IItemFluidIdentifier) player.getHeldItem().getItem()).getType(world, pos[0], pos[1], pos[2], player.getHeldItem()); cracker.tanks[0].setTankType(type); cracker.markDirty(); - player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation("hbmfluid." + type.getName().toLowerCase(Locale.US))).appendSibling(new ChatComponentText("!"))); + player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation(type.getConditionalName())).appendSibling(new ChatComponentText("!"))); return true; } @@ -130,7 +129,7 @@ public class MachineCatalyticCracker extends BlockDummyable implements ILookOver List text = new ArrayList(); for(int i = 0; i < cracker.tanks.length; i++) - text.add((i < 2 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + cracker.tanks[i].getTankType().getName().toLowerCase(Locale.US)) + ": " + cracker.tanks[i].getFill() + "/" + cracker.tanks[i].getMaxFill() + "mB"); + text.add((i < 2 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + cracker.tanks[i].getTankType().getLocalizedName() + ": " + cracker.tanks[i].getFill() + "/" + cracker.tanks[i].getMaxFill() + "mB"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/blocks/machine/MachineCondenser.java b/src/main/java/com/hbm/blocks/machine/MachineCondenser.java index e498acde6..8bbe97b99 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineCondenser.java +++ b/src/main/java/com/hbm/blocks/machine/MachineCondenser.java @@ -2,7 +2,6 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; -import java.util.Locale; import com.hbm.blocks.ILookOverlay; import com.hbm.tileentity.machine.TileEntityCondenser; @@ -39,7 +38,7 @@ public class MachineCondenser extends BlockContainer implements ILookOverlay { List text = new ArrayList(); for(int i = 0; i < condenser.tanks.length; i++) - text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + condenser.tanks[i].getTankType().getName().toLowerCase(Locale.US)) + ": " + condenser.tanks[i].getFill() + "/" + condenser.tanks[i].getMaxFill() + "mB"); + text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET +condenser.tanks[i].getTankType().getLocalizedName() + ": " + condenser.tanks[i].getFill() + "/" + condenser.tanks[i].getMaxFill() + "mB"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/blocks/machine/MachineCondenserPowered.java b/src/main/java/com/hbm/blocks/machine/MachineCondenserPowered.java index 3fa62d072..842c084b7 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineCondenserPowered.java +++ b/src/main/java/com/hbm/blocks/machine/MachineCondenserPowered.java @@ -2,7 +2,6 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; -import java.util.Locale; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; @@ -75,7 +74,7 @@ public class MachineCondenserPowered extends BlockDummyable implements ILookOver text.add(BobMathUtil.getShortNumber(tower.power) + "HE / " + BobMathUtil.getShortNumber(tower.maxPower) + "HE"); for(int i = 0; i < tower.tanks.length; i++) - text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + tower.tanks[i].getTankType().getName().toLowerCase(Locale.US)) + ": " + tower.tanks[i].getFill() + "/" + tower.tanks[i].getMaxFill() + "mB"); + text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + tower.tanks[i].getTankType().getLocalizedName() + ": " + tower.tanks[i].getFill() + "/" + tower.tanks[i].getMaxFill() + "mB"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/blocks/machine/MachineDeuteriumExtractor.java b/src/main/java/com/hbm/blocks/machine/MachineDeuteriumExtractor.java index a8e0dc586..08c921a35 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineDeuteriumExtractor.java +++ b/src/main/java/com/hbm/blocks/machine/MachineDeuteriumExtractor.java @@ -2,7 +2,6 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; -import java.util.Locale; import com.hbm.blocks.ILookOverlay; import com.hbm.lib.RefStrings; @@ -67,7 +66,7 @@ public class MachineDeuteriumExtractor extends BlockContainer implements ILookOv text.add((extractor.power < extractor.getMaxPower() / 20 ? EnumChatFormatting.RED : EnumChatFormatting.GREEN) + "Power: " + BobMathUtil.getShortNumber(extractor.power) + "HE"); for(int i = 0; i < extractor.tanks.length; i++) - text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + extractor.tanks[i].getTankType().getName().toLowerCase(Locale.US)) + ": " + extractor.tanks[i].getFill() + "/" + extractor.tanks[i].getMaxFill() + "mB"); + text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + extractor.tanks[i].getTankType().getLocalizedName() + ": " + extractor.tanks[i].getFill() + "/" + extractor.tanks[i].getMaxFill() + "mB"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/blocks/machine/MachineFluidTank.java b/src/main/java/com/hbm/blocks/machine/MachineFluidTank.java index e24b46847..d639eed45 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineFluidTank.java +++ b/src/main/java/com/hbm/blocks/machine/MachineFluidTank.java @@ -15,7 +15,6 @@ import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.IRepairable; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.storage.TileEntityMachineFluidTank; -import com.hbm.util.I18nUtil; import api.hbm.block.IToolable; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; @@ -99,7 +98,7 @@ public class MachineFluidTank extends BlockDummyable implements IPersistentInfoP public void addInformation(ItemStack stack, NBTTagCompound persistentTag, EntityPlayer player, List list, boolean ext) { FluidTank tank = new FluidTank(Fluids.NONE, 0); tank.readFromNBT(persistentTag, "tank"); - list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + I18nUtil.resolveKey(tank.getTankType().getUnlocalizedName())); + list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + tank.getTankType().getLocalizedName()); } @Override diff --git a/src/main/java/com/hbm/blocks/machine/MachineFrackingTower.java b/src/main/java/com/hbm/blocks/machine/MachineFrackingTower.java index 9383b3565..7c6281110 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineFrackingTower.java +++ b/src/main/java/com/hbm/blocks/machine/MachineFrackingTower.java @@ -13,7 +13,6 @@ import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.oil.TileEntityMachineFrackingTower; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.material.Material; @@ -113,7 +112,7 @@ public class MachineFrackingTower extends BlockDummyable implements IPersistentI for(int i = 0; i < 2; i++) { FluidTank tank = new FluidTank(Fluids.NONE, 0); tank.readFromNBT(persistentTag, "t" + i); - list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + I18nUtil.resolveKey(tank.getTankType().getUnlocalizedName())); + list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + tank.getTankType().getLocalizedName()); } } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineFractionTower.java b/src/main/java/com/hbm/blocks/machine/MachineFractionTower.java index af24b1d28..5c60f53df 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineFractionTower.java +++ b/src/main/java/com/hbm/blocks/machine/MachineFractionTower.java @@ -2,7 +2,6 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; -import java.util.Locale; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; @@ -74,7 +73,7 @@ public class MachineFractionTower extends BlockDummyable implements ILookOverlay FluidType type = ((IItemFluidIdentifier) player.getHeldItem().getItem()).getType(world, pos[0], pos[1], pos[2], player.getHeldItem()); frac.tanks[0].setTankType(type); frac.markDirty(); - player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation("hbmfluid." + type.getName().toLowerCase(Locale.US))).appendSibling(new ChatComponentText("!"))); + player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation(type.getConditionalName())).appendSibling(new ChatComponentText("!"))); } return true; @@ -116,7 +115,7 @@ public class MachineFractionTower extends BlockDummyable implements ILookOverlay List text = new ArrayList(); for(int i = 0; i < cracker.tanks.length; i++) - text.add((i == 0 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + cracker.tanks[i].getTankType().getName().toLowerCase(Locale.US)) + ": " + cracker.tanks[i].getFill() + "/" + cracker.tanks[i].getMaxFill() + "mB"); + text.add((i == 0 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + cracker.tanks[i].getTankType().getLocalizedName() + ": " + cracker.tanks[i].getFill() + "/" + cracker.tanks[i].getMaxFill() + "mB"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/blocks/machine/MachineHeatBoiler.java b/src/main/java/com/hbm/blocks/machine/MachineHeatBoiler.java index 522b046a8..66c2396d0 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineHeatBoiler.java +++ b/src/main/java/com/hbm/blocks/machine/MachineHeatBoiler.java @@ -69,7 +69,7 @@ public class MachineHeatBoiler extends BlockDummyable implements ILookOverlay, I if(type.hasTrait(FT_Heatable.class) && type.getTrait(FT_Heatable.class).getEfficiency(HeatingType.BOILER) > 0) { boiler.tanks[0].setTankType(type); boiler.markDirty(); - player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation("hbmfluid." + type.getName().toLowerCase(Locale.US))).appendSibling(new ChatComponentText("!"))); + player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation(type.getConditionalName())).appendSibling(new ChatComponentText("!"))); } return true; } @@ -176,8 +176,8 @@ public class MachineHeatBoiler extends BlockDummyable implements ILookOverlay, I List text = new ArrayList(); text.add(String.format(Locale.US, "%,d", boiler.heat) + "TU"); - text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + I18nUtil.resolveKey(boiler.tanks[0].getTankType().getUnlocalizedName()) + ": " + String.format(Locale.US, "%,d", boiler.tanks[0].getFill()) + " / " + String.format(Locale.US, "%,d", boiler.tanks[0].getMaxFill()) + "mB"); - text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + I18nUtil.resolveKey(boiler.tanks[1].getTankType().getUnlocalizedName()) + ": " + String.format(Locale.US, "%,d", boiler.tanks[1].getFill()) + " / " + String.format(Locale.US, "%,d", boiler.tanks[1].getMaxFill()) + "mB"); + text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + boiler.tanks[0].getTankType().getLocalizedName() + ": " + String.format(Locale.US, "%,d", boiler.tanks[0].getFill()) + " / " + String.format(Locale.US, "%,d", boiler.tanks[0].getMaxFill()) + "mB"); + text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + boiler.tanks[1].getTankType().getLocalizedName() + ": " + String.format(Locale.US, "%,d", boiler.tanks[1].getFill()) + " / " + String.format(Locale.US, "%,d", boiler.tanks[1].getMaxFill()) + "mB"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/blocks/machine/MachineHeatBoilerIndustrial.java b/src/main/java/com/hbm/blocks/machine/MachineHeatBoilerIndustrial.java index 7656c5f06..7869a74bd 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineHeatBoilerIndustrial.java +++ b/src/main/java/com/hbm/blocks/machine/MachineHeatBoilerIndustrial.java @@ -64,7 +64,7 @@ public class MachineHeatBoilerIndustrial extends BlockDummyable implements ILook if(type.hasTrait(FT_Heatable.class) && type.getTrait(FT_Heatable.class).getEfficiency(HeatingType.BOILER) > 0) { boiler.tanks[0].setTankType(type); boiler.markDirty(); - player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation("hbmfluid." + type.getName().toLowerCase(Locale.US))).appendSibling(new ChatComponentText("!"))); + player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation(type.getConditionalName())).appendSibling(new ChatComponentText("!"))); } return true; } @@ -113,8 +113,8 @@ public class MachineHeatBoilerIndustrial extends BlockDummyable implements ILook List text = new ArrayList(); text.add(String.format(Locale.US, "%,d", boiler.heat) + "TU"); - text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + I18nUtil.resolveKey(boiler.tanks[0].getTankType().getUnlocalizedName()) + ": " + String.format(Locale.US, "%,d", boiler.tanks[0].getFill()) + " / " + String.format(Locale.US, "%,d", boiler.tanks[0].getMaxFill()) + "mB"); - text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + I18nUtil.resolveKey(boiler.tanks[1].getTankType().getUnlocalizedName()) + ": " + String.format(Locale.US, "%,d", boiler.tanks[1].getFill()) + " / " + String.format(Locale.US, "%,d", boiler.tanks[1].getMaxFill()) + "mB"); + text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + boiler.tanks[0].getTankType().getLocalizedName() + ": " + String.format(Locale.US, "%,d", boiler.tanks[0].getFill()) + " / " + String.format(Locale.US, "%,d", boiler.tanks[0].getMaxFill()) + "mB"); + text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + boiler.tanks[1].getTankType().getLocalizedName() + ": " + String.format(Locale.US, "%,d", boiler.tanks[1].getFill()) + " / " + String.format(Locale.US, "%,d", boiler.tanks[1].getMaxFill()) + "mB"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/blocks/machine/MachineHephaestus.java b/src/main/java/com/hbm/blocks/machine/MachineHephaestus.java index 0c583b572..b6a628c78 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineHephaestus.java +++ b/src/main/java/com/hbm/blocks/machine/MachineHephaestus.java @@ -16,6 +16,9 @@ import com.hbm.util.I18nUtil; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatComponentTranslation; +import net.minecraft.util.ChatStyle; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; @@ -82,6 +85,8 @@ public class MachineHephaestus extends BlockDummyable implements ILookOverlay { FluidType type = ((IItemFluidIdentifier) player.getHeldItem().getItem()).getType(world, pos[0], pos[1], pos[2], player.getHeldItem()); heatex.input.setTankType(type); heatex.markDirty(); + player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation(type.getConditionalName())).appendSibling(new ChatComponentText("!"))); + return true; } @@ -111,7 +116,7 @@ public class MachineHephaestus extends BlockDummyable implements ILookOverlay { for(int i = 0; i < heatex.getAllTanks().length; i++) { FluidTank tank = heatex.getAllTanks()[i]; - text.add((i == 0 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + tank.getTankType().getName().toLowerCase(Locale.US)) + ": " + tank.getFill() + "/" + tank.getMaxFill() + "mB"); + text.add((i == 0 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + tank.getTankType().getLocalizedName() + ": " + tank.getFill() + "/" + tank.getMaxFill() + "mB"); } ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); diff --git a/src/main/java/com/hbm/blocks/machine/MachineOilWell.java b/src/main/java/com/hbm/blocks/machine/MachineOilWell.java index bdd36a179..65fc71706 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineOilWell.java +++ b/src/main/java/com/hbm/blocks/machine/MachineOilWell.java @@ -12,7 +12,6 @@ import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.oil.TileEntityMachineOilWell; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.material.Material; @@ -87,7 +86,7 @@ public class MachineOilWell extends BlockDummyable implements IPersistentInfoPro for(int i = 0; i < 2; i++) { FluidTank tank = new FluidTank(Fluids.NONE, 0); tank.readFromNBT(persistentTag, "t" + i); - list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + I18nUtil.resolveKey(tank.getTankType().getUnlocalizedName())); + list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + tank.getTankType().getLocalizedName()); } } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineOrbus.java b/src/main/java/com/hbm/blocks/machine/MachineOrbus.java index b1ddbb028..78ffddd31 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineOrbus.java +++ b/src/main/java/com/hbm/blocks/machine/MachineOrbus.java @@ -11,7 +11,6 @@ import com.hbm.main.MainRegistry; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.storage.TileEntityMachineOrbus; -import com.hbm.util.I18nUtil; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.material.Material; @@ -91,8 +90,8 @@ public class MachineOrbus extends BlockDummyable implements IPersistentInfoProvi @Override public void addInformation(ItemStack stack, NBTTagCompound persistentTag, EntityPlayer player, List list, boolean ext) { - FluidTank tank = new FluidTank(Fluids.NONE, 0, 0); + FluidTank tank = new FluidTank(Fluids.NONE, 0); tank.readFromNBT(persistentTag, "tank"); - list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + I18nUtil.resolveKey(tank.getTankType().getUnlocalizedName())); + list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + tank.getTankType().getLocalizedName()); } } diff --git a/src/main/java/com/hbm/blocks/machine/MachinePump.java b/src/main/java/com/hbm/blocks/machine/MachinePump.java index a31d2fdc3..1d2198029 100644 --- a/src/main/java/com/hbm/blocks/machine/MachinePump.java +++ b/src/main/java/com/hbm/blocks/machine/MachinePump.java @@ -84,15 +84,15 @@ public class MachinePump extends BlockDummyable implements ITooltipProvider, ILo if(te instanceof TileEntityMachinePumpSteam) { TileEntityMachinePumpSteam pump = (TileEntityMachinePumpSteam) te; - text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + I18nUtil.resolveKey(pump.steam.getTankType().getUnlocalizedName()) + ": " + String.format(Locale.US, "%,d", pump.steam.getFill()) + " / " + String.format(Locale.US, "%,d", pump.steam.getMaxFill()) + "mB"); - text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + I18nUtil.resolveKey(pump.lps.getTankType().getUnlocalizedName()) + ": " + String.format(Locale.US, "%,d", pump.lps.getFill()) + " / " + String.format(Locale.US, "%,d", pump.lps.getMaxFill()) + "mB"); - text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + I18nUtil.resolveKey(pump.water.getTankType().getUnlocalizedName()) + ": " + String.format(Locale.US, "%,d", pump.water.getFill()) + " / " + String.format(Locale.US, "%,d", pump.water.getMaxFill()) + "mB"); + text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + pump.steam.getTankType().getLocalizedName() + ": " + String.format(Locale.US, "%,d", pump.steam.getFill()) + " / " + String.format(Locale.US, "%,d", pump.steam.getMaxFill()) + "mB"); + text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + pump.lps.getTankType().getLocalizedName() + ": " + String.format(Locale.US, "%,d", pump.lps.getFill()) + " / " + String.format(Locale.US, "%,d", pump.lps.getMaxFill()) + "mB"); + text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + pump.water.getTankType().getLocalizedName() + ": " + String.format(Locale.US, "%,d", pump.water.getFill()) + " / " + String.format(Locale.US, "%,d", pump.water.getMaxFill()) + "mB"); } if(te instanceof TileEntityMachinePumpElectric) { TileEntityMachinePumpElectric pump = (TileEntityMachinePumpElectric) te; text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + String.format(Locale.US, "%,d", pump.power) + " / " + String.format(Locale.US, "%,d", pump.maxPower) + "HE"); - text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + I18nUtil.resolveKey(pump.water.getTankType().getUnlocalizedName()) + ": " + String.format(Locale.US, "%,d", pump.water.getFill()) + " / " + String.format(Locale.US, "%,d", pump.water.getMaxFill()) + "mB"); + text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + pump.water.getTankType().getLocalizedName() + ": " + String.format(Locale.US, "%,d", pump.water.getFill()) + " / " + String.format(Locale.US, "%,d", pump.water.getMaxFill()) + "mB"); } if(pos[1] > 70) { diff --git a/src/main/java/com/hbm/blocks/machine/MachinePumpjack.java b/src/main/java/com/hbm/blocks/machine/MachinePumpjack.java index 89169d863..56f05147d 100644 --- a/src/main/java/com/hbm/blocks/machine/MachinePumpjack.java +++ b/src/main/java/com/hbm/blocks/machine/MachinePumpjack.java @@ -13,7 +13,6 @@ import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.oil.TileEntityMachinePumpjack; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.material.Material; @@ -100,7 +99,7 @@ public class MachinePumpjack extends BlockDummyable implements IPersistentInfoPr for(int i = 0; i < 2; i++) { FluidTank tank = new FluidTank(Fluids.NONE, 0); tank.readFromNBT(persistentTag, "t" + i); - list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + I18nUtil.resolveKey(tank.getTankType().getUnlocalizedName())); + list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + tank.getTankType().getLocalizedName()); } } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineRefinery.java b/src/main/java/com/hbm/blocks/machine/MachineRefinery.java index 10fab37d0..4a720413d 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineRefinery.java +++ b/src/main/java/com/hbm/blocks/machine/MachineRefinery.java @@ -14,7 +14,6 @@ import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.IRepairable; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.oil.TileEntityMachineRefinery; -import com.hbm.util.I18nUtil; import api.hbm.block.IToolable; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; @@ -116,7 +115,7 @@ public class MachineRefinery extends BlockDummyable implements IPersistentInfoPr for(int i = 0; i < 5; i++) { FluidTank tank = new FluidTank(Fluids.NONE, 0); tank.readFromNBT(persistentTag, "" + i); - list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + I18nUtil.resolveKey(tank.getTankType().getUnlocalizedName())); + list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + tank.getTankType().getLocalizedName()); } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineSteamEngine.java b/src/main/java/com/hbm/blocks/machine/MachineSteamEngine.java index 384f216e8..b3e1c8cd2 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineSteamEngine.java +++ b/src/main/java/com/hbm/blocks/machine/MachineSteamEngine.java @@ -73,8 +73,8 @@ public class MachineSteamEngine extends BlockDummyable implements ILookOverlay, TileEntitySteamEngine engine = (TileEntitySteamEngine) te; List text = new ArrayList(); - text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + I18nUtil.resolveKey(engine.tanks[0].getTankType().getUnlocalizedName()) + ": " + String.format(Locale.US, "%,d", engine.tanks[0].getFill()) + " / " + String.format(Locale.US, "%,d", engine.tanks[0].getMaxFill()) + "mB"); - text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + I18nUtil.resolveKey(engine.tanks[1].getTankType().getUnlocalizedName()) + ": " + String.format(Locale.US, "%,d", engine.tanks[1].getFill()) + " / " + String.format(Locale.US, "%,d", engine.tanks[1].getMaxFill()) + "mB"); + text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + engine.tanks[0].getTankType().getLocalizedName() + ": " + String.format(Locale.US, "%,d", engine.tanks[0].getFill()) + " / " + String.format(Locale.US, "%,d", engine.tanks[0].getMaxFill()) + "mB"); + text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + engine.tanks[1].getTankType().getLocalizedName() + ": " + String.format(Locale.US, "%,d", engine.tanks[1].getFill()) + " / " + String.format(Locale.US, "%,d", engine.tanks[1].getMaxFill()) + "mB"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/blocks/machine/MachineTowerLarge.java b/src/main/java/com/hbm/blocks/machine/MachineTowerLarge.java index b15c2dc74..4279cc746 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineTowerLarge.java +++ b/src/main/java/com/hbm/blocks/machine/MachineTowerLarge.java @@ -2,7 +2,6 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; -import java.util.Locale; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; @@ -78,7 +77,7 @@ public class MachineTowerLarge extends BlockDummyable implements ILookOverlay { List text = new ArrayList(); for(int i = 0; i < tower.tanks.length; i++) - text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + tower.tanks[i].getTankType().getName().toLowerCase(Locale.US)) + ": " + tower.tanks[i].getFill() + "/" + tower.tanks[i].getMaxFill() + "mB"); + text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + tower.tanks[i].getTankType().getLocalizedName() + ": " + tower.tanks[i].getFill() + "/" + tower.tanks[i].getMaxFill() + "mB"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/blocks/machine/MachineTowerSmall.java b/src/main/java/com/hbm/blocks/machine/MachineTowerSmall.java index f13cc49df..6b9bc5947 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineTowerSmall.java +++ b/src/main/java/com/hbm/blocks/machine/MachineTowerSmall.java @@ -2,7 +2,6 @@ package com.hbm.blocks.machine; import java.util.ArrayList; import java.util.List; -import java.util.Locale; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; @@ -75,7 +74,7 @@ public class MachineTowerSmall extends BlockDummyable implements ILookOverlay { List text = new ArrayList(); for(int i = 0; i < tower.tanks.length; i++) - text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + tower.tanks[i].getTankType().getName().toLowerCase(Locale.US)) + ": " + tower.tanks[i].getFill() + "/" + tower.tanks[i].getMaxFill() + "mB"); + text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + tower.tanks[i].getTankType().getLocalizedName() + ": " + tower.tanks[i].getFill() + "/" + tower.tanks[i].getMaxFill() + "mB"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/blocks/machine/MachineTurbineGas.java b/src/main/java/com/hbm/blocks/machine/MachineTurbineGas.java index b89931cf7..a17cf0fcc 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineTurbineGas.java +++ b/src/main/java/com/hbm/blocks/machine/MachineTurbineGas.java @@ -6,11 +6,9 @@ import com.hbm.util.I18nUtil; import java.util.ArrayList; import java.util.List; -import java.util.Locale; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; -import com.hbm.inventory.fluid.Fluids; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; @@ -87,17 +85,16 @@ public class MachineTurbineGas extends BlockDummyable implements ILookOverlay { List text = new ArrayList(); if(hitCheck(dir, pos[0], pos[1], pos[2], -1, -1, 0, x, y, z) || hitCheck(dir, pos[0], pos[1], pos[2], 1, -1, 0, x, y, z)) { - text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + turbine.tanks[0].getTankType().getName().toLowerCase(Locale.US))); - text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + turbine.tanks[1].getTankType().getName().toLowerCase(Locale.US))); - text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + I18nUtil.resolveKey(Fluids.SMOKE.getUnlocalizedName())); + text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + turbine.tanks[0].getTankType().getLocalizedName()); + text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + turbine.tanks[1].getTankType().getLocalizedName()); } if(hitCheck(dir, pos[0], pos[1], pos[2], -1, 4, 0, x, y, z) || hitCheck(dir, pos[0], pos[1], pos[2], 1, 4, 0, x, y, z)) { - text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + turbine.tanks[2].getTankType().getName().toLowerCase(Locale.US))); + text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + turbine.tanks[2].getTankType().getLocalizedName()); } if(hitCheck(dir, pos[0], pos[1], pos[2], 0, 5, 1, x, y, z)) { - text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + turbine.tanks[3].getTankType().getName().toLowerCase(Locale.US))); + text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + turbine.tanks[3].getTankType().getLocalizedName()); } if(hitCheck(dir, pos[0], pos[1], pos[2], 0, -4, 1, x, y, z)) { diff --git a/src/main/java/com/hbm/blocks/network/BlockFluidDuct.java b/src/main/java/com/hbm/blocks/network/BlockFluidDuct.java index b14fa899e..88e054bfd 100644 --- a/src/main/java/com/hbm/blocks/network/BlockFluidDuct.java +++ b/src/main/java/com/hbm/blocks/network/BlockFluidDuct.java @@ -97,7 +97,7 @@ public class BlockFluidDuct extends BlockContainer implements ILookOverlay { TileEntityFluidDuctSimple duct = (TileEntityFluidDuctSimple) te; List text = new ArrayList(); - text.add("&[" + duct.getType().getColor() + "&]" +I18nUtil.resolveKey(duct.getType().getUnlocalizedName())); + text.add("&[" + duct.getType().getColor() + "&]" + duct.getType().getLocalizedName()); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } } diff --git a/src/main/java/com/hbm/blocks/network/BlockFluidDuctSolid.java b/src/main/java/com/hbm/blocks/network/BlockFluidDuctSolid.java index 08031fe84..3674da7d1 100644 --- a/src/main/java/com/hbm/blocks/network/BlockFluidDuctSolid.java +++ b/src/main/java/com/hbm/blocks/network/BlockFluidDuctSolid.java @@ -82,7 +82,7 @@ public class BlockFluidDuctSolid extends BlockContainer implements IBlockMultiPa TileEntityFluidDuctSimple duct = (TileEntityFluidDuctSimple) te; List text = new ArrayList(); - text.add("&[" + duct.getType().getColor() + "&]" +I18nUtil.resolveKey(duct.getType().getUnlocalizedName())); + text.add("&[" + duct.getType().getColor() + "&]" + duct.getType().getLocalizedName()); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } } diff --git a/src/main/java/com/hbm/blocks/network/FluidDuctBox.java b/src/main/java/com/hbm/blocks/network/FluidDuctBox.java index 75d01ab6f..f05d3733a 100644 --- a/src/main/java/com/hbm/blocks/network/FluidDuctBox.java +++ b/src/main/java/com/hbm/blocks/network/FluidDuctBox.java @@ -305,7 +305,7 @@ public class FluidDuctBox extends FluidDuctBase implements IBlockMulti, ILookOve TileEntityPipeBaseNT duct = (TileEntityPipeBaseNT) te; List text = new ArrayList(); - text.add("&[" + duct.getType().getColor() + "&]" + I18nUtil.resolveKey(duct.getType().getUnlocalizedName())); + text.add("&[" + duct.getType().getColor() + "&]" + duct.getType().getLocalizedName()); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/blocks/network/FluidDuctBoxExhaust.java b/src/main/java/com/hbm/blocks/network/FluidDuctBoxExhaust.java index 3426cf93e..42a24fe85 100644 --- a/src/main/java/com/hbm/blocks/network/FluidDuctBoxExhaust.java +++ b/src/main/java/com/hbm/blocks/network/FluidDuctBoxExhaust.java @@ -78,9 +78,9 @@ public class FluidDuctBoxExhaust extends FluidDuctBox { @Override public void printHook(Pre event, World world, int x, int y, int z) { List text = new ArrayList(); - text.add(I18nUtil.resolveKey(Fluids.SMOKE.getUnlocalizedName())); - text.add(I18nUtil.resolveKey(Fluids.SMOKE_LEADED.getUnlocalizedName())); - text.add(I18nUtil.resolveKey(Fluids.SMOKE_POISON.getUnlocalizedName())); + text.add(Fluids.SMOKE.getLocalizedName()); + text.add(Fluids.SMOKE_LEADED.getLocalizedName()); + text.add(Fluids.SMOKE_POISON.getLocalizedName()); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } } diff --git a/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java b/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java index 155c42512..8c2106abe 100644 --- a/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java +++ b/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java @@ -96,7 +96,7 @@ public class FluidDuctGauge extends FluidDuctBase implements IBlockMultiPass, IL TileEntityPipeGauge duct = (TileEntityPipeGauge) te; List text = new ArrayList(); - text.add("&[" + duct.getType().getColor() + "&]" +I18nUtil.resolveKey(duct.getType().getUnlocalizedName())); + text.add("&[" + duct.getType().getColor() + "&]" + duct.getType().getLocalizedName()); text.add(String.format(Locale.US, "%,d", duct.deltaTick) + " mB/t"); text.add(String.format(Locale.US, "%,d", duct.deltaLastSecond) + " mB/s"); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); diff --git a/src/main/java/com/hbm/blocks/network/FluidDuctPaintable.java b/src/main/java/com/hbm/blocks/network/FluidDuctPaintable.java index a9415a219..6777195d8 100644 --- a/src/main/java/com/hbm/blocks/network/FluidDuctPaintable.java +++ b/src/main/java/com/hbm/blocks/network/FluidDuctPaintable.java @@ -160,7 +160,7 @@ public class FluidDuctPaintable extends FluidDuctBase implements IToolable, IBlo TileEntityPipeBaseNT duct = (TileEntityPipeBaseNT) te; List text = new ArrayList(); - text.add("&[" + duct.getType().getColor() + "&]" +I18nUtil.resolveKey(duct.getType().getUnlocalizedName())); + text.add("&[" + duct.getType().getColor() + "&]" + duct.getType().getLocalizedName()); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } diff --git a/src/main/java/com/hbm/blocks/network/FluidDuctStandard.java b/src/main/java/com/hbm/blocks/network/FluidDuctStandard.java index 485fbc06b..35d197059 100644 --- a/src/main/java/com/hbm/blocks/network/FluidDuctStandard.java +++ b/src/main/java/com/hbm/blocks/network/FluidDuctStandard.java @@ -201,7 +201,7 @@ public class FluidDuctStandard extends FluidDuctBase implements IBlockMulti, ILo TileEntityPipeBaseNT duct = (TileEntityPipeBaseNT) te; List text = new ArrayList(); - text.add("&[" + duct.getType().getColor() + "&]" +I18nUtil.resolveKey(duct.getType().getUnlocalizedName())); + text.add("&[" + duct.getType().getColor() + "&]" + duct.getType().getLocalizedName()); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } } diff --git a/src/main/java/com/hbm/blocks/network/FluidSwitch.java b/src/main/java/com/hbm/blocks/network/FluidSwitch.java index c564286c0..f4fc8c82d 100644 --- a/src/main/java/com/hbm/blocks/network/FluidSwitch.java +++ b/src/main/java/com/hbm/blocks/network/FluidSwitch.java @@ -82,7 +82,7 @@ public class FluidSwitch extends FluidDuctBase implements ILookOverlay { TileEntityFluidValve duct = (TileEntityFluidValve) te; List text = new ArrayList(); - text.add("&[" + duct.getType().getColor() + "&]" +I18nUtil.resolveKey(duct.getType().getUnlocalizedName())); + text.add("&[" + duct.getType().getColor() + "&]" + duct.getType().getLocalizedName()); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } } diff --git a/src/main/java/com/hbm/blocks/network/FluidValve.java b/src/main/java/com/hbm/blocks/network/FluidValve.java index be6c879e5..5a0b3d5b3 100644 --- a/src/main/java/com/hbm/blocks/network/FluidValve.java +++ b/src/main/java/com/hbm/blocks/network/FluidValve.java @@ -82,7 +82,7 @@ public class FluidValve extends FluidDuctBase implements ILookOverlay { TileEntityFluidValve duct = (TileEntityFluidValve) te; List text = new ArrayList(); - text.add("&[" + duct.getType().getColor() + "&]" +I18nUtil.resolveKey(duct.getType().getUnlocalizedName())); + text.add("&[" + duct.getType().getColor() + "&]" + duct.getType().getLocalizedName()); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } } diff --git a/src/main/java/com/hbm/entity/item/EntityDeliveryDrone.java b/src/main/java/com/hbm/entity/item/EntityDeliveryDrone.java index 72782c158..531c19d3d 100644 --- a/src/main/java/com/hbm/entity/item/EntityDeliveryDrone.java +++ b/src/main/java/com/hbm/entity/item/EntityDeliveryDrone.java @@ -72,7 +72,7 @@ public class EntityDeliveryDrone extends EntityDroneBase implements IInventory, nbt.setTag("Items", nbttaglist); if(fluid != null) { - nbt.setString("fluidType", fluid.type.getUnlocalizedName()); + nbt.setString("fluidType", fluid.type.getName()); nbt.setInteger("fluidAmount", fluid.fill); } diff --git a/src/main/java/com/hbm/inventory/fluid/FluidType.java b/src/main/java/com/hbm/inventory/fluid/FluidType.java index 390fcfede..d6fa4d759 100644 --- a/src/main/java/com/hbm/inventory/fluid/FluidType.java +++ b/src/main/java/com/hbm/inventory/fluid/FluidType.java @@ -13,6 +13,7 @@ import com.hbm.inventory.fluid.trait.*; import com.hbm.inventory.fluid.trait.FluidTraitSimple.*; import com.hbm.lib.RefStrings; import com.hbm.render.util.EnumSymbol; +import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -31,21 +32,21 @@ public class FluidType { private int color; //Unlocalized string ID of the fluid private String unlocalized; + //localization override for custom fluids + private String localizedOverride; + private int guiTint = 0xffffff; public int poison; public int flammability; public int reactivity; public EnumSymbol symbol; + public boolean customFluid = false; public static final int ROOM_TEMPERATURE = 20; - public static final double DEFAULT_HEATCAP = 0.01D; - public static final double DEFAULT_COMPRESSION = 1D; // v v v this entire system is a pain in the ass to work with. i'd much rather define state transitions and heat values manually. /** How hot this fluid is. Simple enough. */ public int temperature = ROOM_TEMPERATURE; - /** How much "stuff" there is in one mB. 1mB of water turns into 100mB of steam, therefore steam has a compression of 0.01. Compression is only used for translating fluids into other fluids, heat calculations should ignore this. */ - public double compression = DEFAULT_COMPRESSION; public HashMap containers = new HashMap(); public HashMap, FluidTrait> traits = new HashMap(); @@ -66,6 +67,23 @@ public class FluidType { this.id = Fluids.registerSelf(this); } + public FluidType(String name, int color, int p, int f, int r, EnumSymbol symbol, String texName, int tint, int id, String displayName) { + this.stringId = name; + this.color = color; + this.unlocalized = "hbmfluid." + name.toLowerCase(Locale.US); + this.poison = p; + this.flammability = f; + this.reactivity = r; + this.symbol = symbol; + this.texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/fluids/" + texName + ".png"); + this.guiTint = tint; + this.localizedOverride = displayName; + this.customFluid = true; + + this.id = id; + Fluids.register(this, id); + } + public FluidType(int forcedId, String name, int color, int p, int f, int r, EnumSymbol symbol) { this(name, color, p, f, r, symbol); @@ -79,11 +97,6 @@ public class FluidType { return this; } - public FluidType setCompression(double compression) { - this.compression = compression; - return this; - } - public FluidType addContainers(Object... containers) { for(Object container : containers) this.containers.put(container.getClass(), container); return this; @@ -109,7 +122,7 @@ public class FluidType { public int getID() { return this.id; } - + /** The unique mapping name for this fluid, usually matches the unlocalied name, minus the prefix */ public String getName() { return this.stringId; } @@ -118,12 +131,24 @@ public class FluidType { return this.color; } + public int getTint() { + return this.guiTint; + } + public ResourceLocation getTexture() { return this.texture; } public String getUnlocalizedName() { return this.unlocalized; } + /** Returns the localized override name if present, or otherwise the I18n converted name */ + @SideOnly(Side.CLIENT) public String getLocalizedName() { + return this.localizedOverride != null ? this.localizedOverride : I18nUtil.resolveKey(this.unlocalized); + } + /** Returns the localized override name if present, or otherwise the raw unlocalized name. Used for server-side code that needs ChatComponentTranslation. */ + public String getConditionalName() { + return this.localizedOverride != null ? this.localizedOverride : this.unlocalized; + } public String getDict(int quantity) { return "container" + quantity + this.stringId.replace("_", "").toLowerCase(Locale.US); } diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index 83034ba51..5ca1341f6 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -163,9 +163,12 @@ public class Fluids { public static FluidType THORIUM_SALT_HOT; public static FluidType THORIUM_SALT_DEPLETED; public static FluidType FULLERENE; + + public static List customFluids = new ArrayList(); private static final HashMap idMapping = new HashMap(); private static final HashMap nameMapping = new HashMap(); + protected static final List registerOrder = new ArrayList(); protected static final List metaOrder = new ArrayList(); public static final FT_Liquid LIQUID = new FT_Liquid(); @@ -197,10 +200,10 @@ public class Fluids { NONE = new FluidType("NONE", 0x888888, 0, 0, 0, EnumSymbol.NONE); WATER = new FluidType("WATER", 0x3333FF, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID); - STEAM = new FluidType("STEAM", 0xe5e5e5, 3, 0, 0, EnumSymbol.NONE).setTemp(100).setCompression(0.01D).addTraits(GASEOUS); - HOTSTEAM = new FluidType("HOTSTEAM", 0xE7D6D6, 4, 0, 0, EnumSymbol.NONE).setTemp(300).setCompression(0.1D).addTraits(GASEOUS); - SUPERHOTSTEAM = new FluidType("SUPERHOTSTEAM", 0xE7B7B7, 4, 0, 0, EnumSymbol.NONE).setTemp(450).setCompression(1D).addTraits(GASEOUS); - ULTRAHOTSTEAM = new FluidType("ULTRAHOTSTEAM", 0xE39393, 4, 0, 0, EnumSymbol.NONE).setTemp(600).setCompression(10D).addTraits(GASEOUS); + STEAM = new FluidType("STEAM", 0xe5e5e5, 3, 0, 0, EnumSymbol.NONE).setTemp(100).addTraits(GASEOUS); + HOTSTEAM = new FluidType("HOTSTEAM", 0xE7D6D6, 4, 0, 0, EnumSymbol.NONE).setTemp(300).addTraits(GASEOUS); + SUPERHOTSTEAM = new FluidType("SUPERHOTSTEAM", 0xE7B7B7, 4, 0, 0, EnumSymbol.NONE).setTemp(450).addTraits(GASEOUS); + ULTRAHOTSTEAM = new FluidType("ULTRAHOTSTEAM", 0xE39393, 4, 0, 0, EnumSymbol.NONE).setTemp(600).addTraits(GASEOUS); COOLANT = new FluidType("COOLANT", 0xd8fcff, 1, 0, 0, EnumSymbol.NONE).addTraits(LIQUID); LAVA = new FluidType("LAVA", 0xFF3300, 4, 0, 0, EnumSymbol.NOWATER).setTemp(1200).addTraits(LIQUID, VISCOUS); DEUTERIUM = new FluidType("DEUTERIUM", 0x0000FF, 3, 4, 0, EnumSymbol.NONE).addTraits(new FT_Flammable(5_000), new FT_Combustible(FuelGrade.HIGH, 10_000), GASEOUS); @@ -243,7 +246,7 @@ public class Fluids { WASTEGAS = new FluidType("WASTEGAS", 0xB8B8B8, 2, 0, 1, EnumSymbol.RADIATION).addTraits(new FT_VentRadiation(0.5F), NOCON, GASEOUS); GASOLINE = new FluidType("GASOLINE", 0x445772, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x2F7747)).addTraits(new FT_Flammable(400_000), new FT_Combustible(FuelGrade.HIGH, 1_000_000), LIQUID); COALGAS = new FluidType("COALGAS", 0x445772, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x2E155F)).addTraits(new FT_Flammable(75_000), new FT_Combustible(FuelGrade.MEDIUM, 150_000), LIQUID); - SPENTSTEAM = new FluidType("SPENTSTEAM", 0x445772, 2, 0, 0, EnumSymbol.NONE).setCompression(1D).addTraits(NOCON, GASEOUS); + SPENTSTEAM = new FluidType("SPENTSTEAM", 0x445772, 2, 0, 0, EnumSymbol.NONE).addTraits(NOCON, GASEOUS); FRACKSOL = new FluidType("FRACKSOL", 0x798A6B, 1, 3, 3, EnumSymbol.ACID).addContainers(new CD_Canister(0x4F887F)).addTraits(new FT_Corrosive(15), new FT_Poison(false, 0), LIQUID, VISCOUS); PLASMA_DT = new FluidType("PLASMA_DT", 0xF7AFDE, 0, 4, 0, EnumSymbol.RADIATION).setTemp(3250).addTraits(NOCON, NOID, PLASMA); PLASMA_HD = new FluidType("PLASMA_HD", 0xF0ADF4, 0, 4, 0, EnumSymbol.RADIATION).setTemp(2500).addTraits(NOCON, NOID, PLASMA); @@ -329,6 +332,12 @@ public class Fluids { // ^ ^ ^ ^ ^ ^ ^ ^ //ADD NEW FLUIDS HERE + + File folder = MainRegistry.configHbmDir; + File customTypes = new File(folder.getAbsolutePath() + File.separatorChar + "hbmFluidTypes.json"); + if(!customTypes.exists()) initDefaultFluids(customTypes); + readCustomFluids(customTypes); + //AND DON'T FORGET THE META DOWN HERE // V V V V V V V V @@ -477,6 +486,8 @@ public class Fluids { metaOrder.add(SMOKE); metaOrder.add(SMOKE_LEADED); metaOrder.add(SMOKE_POISON); + + for(FluidType custom : customFluids) metaOrder.add(custom); CHLORINE.addTraits(new FT_Toxin().addEntry(new ToxinDirectDamage(ModDamageSource.cloud, 2F, 20, HazardClass.GAS_CHLORINE, false))); PHOSGENE.addTraits(new FT_Toxin().addEntry(new ToxinDirectDamage(ModDamageSource.cloud, 4F, 20, HazardClass.GAS_CHLORINE, false))); @@ -619,19 +630,72 @@ public class Fluids { registerCalculatedFuel(SYNGAS, (coalHeat * (1000 /* bucket */ / 100 /* mB per coal */) * flammabilityLow * demandLow * complexityChemplant) * 1.5, 1.25, FuelGrade.GAS); //same as coal oil, +50% bonus registerCalculatedFuel(OXYHYDROGEN, 5_000, 3, FuelGrade.GAS); // whatever - File folder = MainRegistry.configHbmDir; - - File config = new File(folder.getAbsolutePath() + File.separatorChar + "hbmFluids.json"); - File template = new File(folder.getAbsolutePath() + File.separatorChar + "_hbmFluids.json"); + File config = new File(folder.getAbsolutePath() + File.separatorChar + "hbmFluidTraits.json"); + File template = new File(folder.getAbsolutePath() + File.separatorChar + "_hbmFluidTraits.json"); if(!config.exists()) { - writeDefault(template); + writeDefaultTraits(template); } else { - readConfig(config); + readTraits(config); } } - private static void writeDefault(File file) { + private static void initDefaultFluids(File file) { + + try { + JsonWriter writer = new JsonWriter(new FileWriter(file)); + writer.setIndent(" "); + writer.beginObject(); + + writer.name("CUSTOM_DEMO").beginObject(); + writer.name("name").value("Custom Fluid Demo"); + writer.name("id").value(1000); + writer.name("color").value(0xff0000); + writer.name("tint").value(0xff0000); + writer.name("p").value(1).name("f").value(2).name("r").value(0); + writer.name("symbol").value(EnumSymbol.OXIDIZER.name()); + writer.name("texture").value("custom_water"); + writer.name("temperature").value(20); + writer.endObject(); + + writer.endObject(); + writer.close(); + } catch(IOException e) { + e.printStackTrace(); + } + } + + private static void readCustomFluids(File file) { + + try { + JsonObject json = gson.fromJson(new FileReader(file), JsonObject.class); + + for(Entry entry : json.entrySet()) { + + JsonObject obj = (JsonObject) entry.getValue(); + + String name = entry.getKey(); + int id = obj.get("id").getAsInt(); + String displayName = obj.get("name").getAsString(); + int color = obj.get("color").getAsInt(); + int tint = obj.get("tint").getAsInt(); + int p = obj.get("p").getAsInt(); + int f = obj.get("f").getAsInt(); + int r = obj.get("r").getAsInt(); + EnumSymbol symbol = EnumSymbol.valueOf(obj.get("symbol").getAsString()); + String texture = obj.get("texture").getAsString(); + int temperature = obj.get("temperature").getAsInt(); + + FluidType type = new FluidType(name, color, p, f, r, symbol, texture, tint, id, displayName).setTemp(temperature); + customFluids.add(type); + } + + } catch(Exception ex) { + ex.printStackTrace(); + } + } + + private static void writeDefaultTraits(File file) { try { JsonWriter writer = new JsonWriter(new FileWriter(file)); @@ -639,7 +703,7 @@ public class Fluids { writer.beginObject(); for(FluidType type : metaOrder) { - writer.name(type.getUnlocalizedName()).beginObject(); + writer.name(type.getName()).beginObject(); for(Entry, FluidTrait> entry : type.traits.entrySet()) { writer.name(FluidTrait.traitNameMap.inverse().get(entry.getKey())).beginObject(); @@ -657,14 +721,14 @@ public class Fluids { } } - private static void readConfig(File config) { + private static void readTraits(File config) { try { JsonObject json = gson.fromJson(new FileReader(config), JsonObject.class); for(FluidType type : metaOrder) { - JsonElement element = json.get(type.getUnlocalizedName()); + JsonElement element = json.get(type.getName()); if(element != null) { type.traits.clear(); JsonObject obj = element.getAsJsonObject(); @@ -715,10 +779,17 @@ public class Fluids { protected static int registerSelf(FluidType fluid) { int id = idMapping.size(); idMapping.put(id, fluid); + registerOrder.add(fluid); nameMapping.put(fluid.getName(), fluid); return id; } + protected static void register(FluidType fluid, int id) { + idMapping.put(id, fluid); + registerOrder.add(fluid); + nameMapping.put(fluid.getName(), fluid); + } + public static FluidType fromID(int id) { FluidType fluid = idMapping.get(id); @@ -749,7 +820,7 @@ public class Fluids { FluidType[] all = new FluidType[idMapping.size()]; for(int i = 0; i < all.length; i++) { - FluidType type = nice ? metaOrder.get(i) : idMapping.get(i); + FluidType type = nice ? metaOrder.get(i) : registerOrder.get(i); if(type == null) { throw new IllegalStateException("A severe error has occoured with NTM's fluid system! Fluid of the ID " + i + " has returned NULL in the registry!"); diff --git a/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java b/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java index ba720d228..d3c787fd1 100644 --- a/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java +++ b/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java @@ -15,7 +15,6 @@ import com.hbm.packet.TEFluidPacket; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.resources.I18n; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; @@ -205,6 +204,12 @@ public class FluidTank { public void renderTank(int x, int y, double z, int width, int height) { GL11.glEnable(GL11.GL_BLEND); + + int color = type.getTint(); + double r = ((color & 0xff0000) >> 16) / 255D; + double g = ((color & 0x00ff00) >> 8) / 255D; + double b = ((color & 0x0000ff) >> 0) / 255D; + GL11.glColor3d(r, g, b); y -= height; @@ -230,6 +235,7 @@ public class FluidTank { tessellator.addVertexWithUV(minX, minY, z, minU, minV); tessellator.draw(); + GL11.glColor3d(1D, 1D, 1D); GL11.glDisable(GL11.GL_BLEND); } @@ -237,7 +243,7 @@ public class FluidTank { if(x <= mouseX && x + width > mouseX && y < mouseY && y + height >= mouseY) { List list = new ArrayList(); - list.add(I18n.format(this.type.getUnlocalizedName())); + list.add(this.type.getLocalizedName()); list.add(fluid + "/" + maxFluid + "mB"); if(this.pressure != 0) { diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Coolable.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Coolable.java index 0f0404916..1bb6d3574 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Coolable.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Coolable.java @@ -67,7 +67,7 @@ public class FT_Coolable extends FluidTrait { @Override public void serializeJSON(JsonWriter writer) throws IOException { - writer.name("coolsTo").value(this.coolsTo.getUnlocalizedName()); + writer.name("coolsTo").value(this.coolsTo.getName()); writer.name("amountReq").value(this.amountReq); writer.name("amountProd").value(this.amountProduced); writer.name("heatEnergy").value(this.heatEnergy); diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Heatable.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Heatable.java index 989915a46..c828858b8 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Heatable.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Heatable.java @@ -87,7 +87,7 @@ public class FT_Heatable extends FluidTrait { for(HeatingStep step : steps) { writer.beginObject(); - writer.name("typeProduced").value(step.typeProduced.getUnlocalizedName()); + writer.name("typeProduced").value(step.typeProduced.getName()); writer.name("amountReq").value(step.amountReq); writer.name("amountProd").value(step.amountProduced); writer.name("heatReq").value(step.heatReq); diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineSelenium.java b/src/main/java/com/hbm/inventory/gui/GUIMachineSelenium.java index 20ea31ba8..9c34f199d 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineSelenium.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineSelenium.java @@ -10,7 +10,6 @@ import com.hbm.inventory.fluid.Fluids; import com.hbm.lib.RefStrings; import com.hbm.tileentity.machine.TileEntityMachineSeleniumEngine; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.resources.I18n; @@ -45,7 +44,7 @@ public class GUIMachineSelenium extends GuiInfoContainer { long energy = selenium.getHEFromFuel(type); if(energy > 0) - text.add(" " + I18nUtil.resolveKey(type.getUnlocalizedName()) + " (" + BobMathUtil.getShortNumber(energy) + "HE/t)"); + text.add(" " + type.getLocalizedName() + " (" + BobMathUtil.getShortNumber(energy) + "HE/t)"); } text.add(EnumChatFormatting.ITALIC + "(These numbers are base values,"); diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineTurbineGas.java b/src/main/java/com/hbm/inventory/gui/GUIMachineTurbineGas.java index eefdf12c1..4646f4e88 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineTurbineGas.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineTurbineGas.java @@ -137,7 +137,7 @@ public class GUIMachineTurbineGas extends GuiInfoContainer { fuels.add(I18nUtil.resolveKey("desc.gui.turbinegas.fuels")); for(FluidType type : Fluids.getInNiceOrder()) { if(type.hasTrait(FT_Combustible.class) && type.getTrait(FT_Combustible.class).getGrade() == FuelGrade.GAS) { - fuels.add(" " + I18nUtil.resolveKey(type.getUnlocalizedName())); + fuels.add(" " + type.getLocalizedName()); } } this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 34 + 16, 16, 16, guiLeft - 8, guiTop + 44 + 16, fuels); diff --git a/src/main/java/com/hbm/inventory/gui/GUIMixer.java b/src/main/java/com/hbm/inventory/gui/GUIMixer.java index 15dd31b72..79f6461d6 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMixer.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMixer.java @@ -12,7 +12,6 @@ import com.hbm.lib.RefStrings; import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.machine.TileEntityMachineMixer; -import com.hbm.util.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; @@ -47,8 +46,8 @@ public class GUIMixer extends GuiInfoContainer { List label = new ArrayList(); label.add(EnumChatFormatting.YELLOW + "Current recipe (" + (mixer.recipeIndex + 1) + "/" + recipes.length + "):"); MixerRecipe recipe = recipes[mixer.recipeIndex % recipes.length]; - if(recipe.input1 != null) label.add("-" + I18nUtil.resolveKey(recipe.input1.type.getUnlocalizedName())); - if(recipe.input2 != null) label.add("-" + I18nUtil.resolveKey(recipe.input2.type.getUnlocalizedName())); + if(recipe.input1 != null) label.add("-" + recipe.input1.type.getLocalizedName()); + if(recipe.input2 != null) label.add("-" + recipe.input2.type.getLocalizedName()); if(recipe.solidInput != null) label.add("-" + recipe.solidInput.extractForCyclingDisplay(20).getDisplayName()); label.add(EnumChatFormatting.RED + "Click to change!"); this.drawCustomInfoStat(x, y, guiLeft + 62, guiTop + 22, 12, 12, x, y, label); diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenFluid.java b/src/main/java/com/hbm/inventory/gui/GUIScreenFluid.java index 7a35749db..a43235cce 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenFluid.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenFluid.java @@ -14,7 +14,6 @@ import com.hbm.items.machine.ItemFluidIDMulti; import com.hbm.lib.RefStrings; import com.hbm.packet.NBTItemControlPacket; import com.hbm.packet.PacketDispatcher; -import com.hbm.util.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; @@ -111,7 +110,7 @@ public class GUIScreenFluid extends GuiScreen { return; if(guiLeft + 7 + k * 18 <= i && guiLeft + 7 + k * 18 + 18 > i && guiTop + 29 < j && guiTop + 29 + 18 >= j) - func_146283_a(Arrays.asList(new String[] { I18nUtil.resolveKey(this.searchArray[k].getUnlocalizedName()) }), i, j); + func_146283_a(Arrays.asList(new String[] { this.searchArray[k].getLocalizedName() }), i, j); } } @@ -170,7 +169,7 @@ public class GUIScreenFluid extends GuiScreen { String subs = this.search.getText().toLowerCase(Locale.US); for(FluidType type : Fluids.getInNiceOrder()) { - String name = I18nUtil.resolveKey(type.getUnlocalizedName()).toLowerCase(Locale.US); + String name = type.getLocalizedName(); if(name.contains(subs) && !type.hasNoID()) { this.searchArray[next] = type; diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java b/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java index 44a89c104..a563eb732 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java @@ -24,7 +24,6 @@ import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.packet.ItemFolderPacket; import com.hbm.packet.PacketDispatcher; -import com.hbm.util.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; @@ -146,7 +145,7 @@ public class GUIScreenTemplateFolder extends GuiScreen { if(stack.getItem() == ModItems.fluid_identifier) { FluidType fluid = Fluids.fromID(stack.getItemDamage()); - if(I18nUtil.resolveKey(fluid.getUnlocalizedName()).toLowerCase(Locale.US).contains(sub)) { + if(fluid.getLocalizedName().contains(sub)) { stacks.add(stack); } } diff --git a/src/main/java/com/hbm/items/armor/ArmorFSBFueled.java b/src/main/java/com/hbm/items/armor/ArmorFSBFueled.java index 4988f6234..deb44ba51 100644 --- a/src/main/java/com/hbm/items/armor/ArmorFSBFueled.java +++ b/src/main/java/com/hbm/items/armor/ArmorFSBFueled.java @@ -4,7 +4,6 @@ import java.util.List; import com.hbm.inventory.fluid.FluidType; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; import api.hbm.fluid.IFillableItem; import cpw.mods.fml.relauncher.Side; @@ -83,7 +82,7 @@ public class ArmorFSBFueled extends ArmorFSB implements IFillableItem { @SideOnly(Side.CLIENT) public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { - list.add(I18nUtil.resolveKey(this.fuelType.getUnlocalizedName()) + ": " + BobMathUtil.getShortNumber(getFill(stack)) + " / " + BobMathUtil.getShortNumber(getMaxFill(stack))); + list.add(this.fuelType.getLocalizedName() + ": " + BobMathUtil.getShortNumber(getFill(stack)) + " / " + BobMathUtil.getShortNumber(getMaxFill(stack))); super.addInformation(stack, player, list, ext); } diff --git a/src/main/java/com/hbm/items/armor/JetpackBase.java b/src/main/java/com/hbm/items/armor/JetpackBase.java index c036d3ad6..204ddd28b 100644 --- a/src/main/java/com/hbm/items/armor/JetpackBase.java +++ b/src/main/java/com/hbm/items/armor/JetpackBase.java @@ -6,7 +6,6 @@ import com.hbm.handler.ArmorModHandler; import com.hbm.inventory.fluid.FluidType; import com.hbm.render.model.ModelJetPack; import com.hbm.util.ArmorUtil; -import com.hbm.util.I18nUtil; import api.hbm.fluid.IFillableItem; import cpw.mods.fml.relauncher.Side; @@ -38,7 +37,7 @@ public abstract class JetpackBase extends ItemArmorMod implements IFillableItem @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.LIGHT_PURPLE + I18nUtil.resolveKey(fuel.getUnlocalizedName()) + ": " + this.getFuel(itemstack) + "mB / " + this.maxFuel + "mB"); + list.add(EnumChatFormatting.LIGHT_PURPLE + fuel.getUnlocalizedName() + ": " + this.getFuel(itemstack) + "mB / " + this.maxFuel + "mB"); list.add(""); super.addInformation(itemstack, player, list, bool); list.add(EnumChatFormatting.GOLD + "Can be worn on its own!"); @@ -52,7 +51,7 @@ public abstract class JetpackBase extends ItemArmorMod implements IFillableItem if(jetpack == null) return; - list.add(EnumChatFormatting.RED + " " + stack.getDisplayName() + " (" + I18nUtil.resolveKey(fuel.getUnlocalizedName()) + ": " + this.getFuel(jetpack) + "mB / " + this.maxFuel + "mB"); + list.add(EnumChatFormatting.RED + " " + stack.getDisplayName() + " (" + fuel.getLocalizedName() + ": " + this.getFuel(jetpack) + "mB / " + this.maxFuel + "mB"); } @Override diff --git a/src/main/java/com/hbm/items/machine/ItemCanister.java b/src/main/java/com/hbm/items/machine/ItemCanister.java index b1393db87..fb792f532 100644 --- a/src/main/java/com/hbm/items/machine/ItemCanister.java +++ b/src/main/java/com/hbm/items/machine/ItemCanister.java @@ -40,7 +40,7 @@ public class ItemCanister extends Item { public String getItemStackDisplayName(ItemStack stack) { String s = ("" + StatCollector.translateToLocal(this.getUnlocalizedName() + ".name")).trim(); - String s1 = ("" + StatCollector.translateToLocal(Fluids.fromID(stack.getItemDamage()).getUnlocalizedName())).trim(); + String s1 = ("" + StatCollector.translateToLocal(Fluids.fromID(stack.getItemDamage()).getConditionalName())).trim(); if(s1 != null) { s = s + " " + s1; diff --git a/src/main/java/com/hbm/items/machine/ItemChemistryTemplate.java b/src/main/java/com/hbm/items/machine/ItemChemistryTemplate.java index 432141d9d..b063ce516 100644 --- a/src/main/java/com/hbm/items/machine/ItemChemistryTemplate.java +++ b/src/main/java/com/hbm/items/machine/ItemChemistryTemplate.java @@ -9,7 +9,6 @@ import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.resources.I18n; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; @@ -76,7 +75,7 @@ public class ItemChemistryTemplate extends Item { for(int i = 0; i < 2; i++) { if(recipe.outputFluids[i] != null) { int p = recipe.outputFluids[i].pressure; - list.add(recipe.outputFluids[i].fill + "mB " + I18n.format(recipe.outputFluids[i].type.getUnlocalizedName()) + (p != 0 ? (" at " + p + "PU") : "")); + list.add(recipe.outputFluids[i].fill + "mB " + recipe.outputFluids[i].type.getLocalizedName() + (p != 0 ? (" at " + p + "PU") : "")); } } @@ -91,7 +90,7 @@ public class ItemChemistryTemplate extends Item { for(int i = 0; i < 2; i++) { if(recipe.inputFluids[i] != null) { int p = recipe.inputFluids[i].pressure; - list.add(recipe.inputFluids[i].fill + "mB " + I18n.format(recipe.inputFluids[i].type.getUnlocalizedName()) + (p != 0 ? (" at " + p + "PU") : "")); + list.add(recipe.inputFluids[i].fill + "mB " + recipe.inputFluids[i].type.getLocalizedName() + (p != 0 ? (" at " + p + "PU") : "")); } } diff --git a/src/main/java/com/hbm/items/machine/ItemFluidDuct.java b/src/main/java/com/hbm/items/machine/ItemFluidDuct.java index 84fcb8ba1..f98c79735 100644 --- a/src/main/java/com/hbm/items/machine/ItemFluidDuct.java +++ b/src/main/java/com/hbm/items/machine/ItemFluidDuct.java @@ -40,7 +40,7 @@ public class ItemFluidDuct extends Item { public String getItemStackDisplayName(ItemStack stack) { String s = ("" + StatCollector.translateToLocal(this.getUnlocalizedName() + ".name")).trim(); - String s1 = ("" + StatCollector.translateToLocal(Fluids.fromID(stack.getItemDamage()).getUnlocalizedName())).trim(); + String s1 = ("" + StatCollector.translateToLocal(Fluids.fromID(stack.getItemDamage()).getConditionalName())).trim(); if(s1 != null) { s = s + " " + s1; diff --git a/src/main/java/com/hbm/items/machine/ItemFluidIDMulti.java b/src/main/java/com/hbm/items/machine/ItemFluidIDMulti.java index 43ad52bcb..e8f44cfa4 100644 --- a/src/main/java/com/hbm/items/machine/ItemFluidIDMulti.java +++ b/src/main/java/com/hbm/items/machine/ItemFluidIDMulti.java @@ -20,7 +20,6 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.inventory.Container; @@ -45,7 +44,7 @@ public class ItemFluidIDMulti extends Item implements IItemFluidIdentifier, IIte setType(stack, secondary, true); setType(stack, primary, false); world.playSoundAtEntity(player, "random.orb", 0.25F, 1.25F); - PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.startTranslation(secondary.getUnlocalizedName()).flush(), /*MainRegistry.proxy.ID_DETONATOR*/ 7, 3000), (EntityPlayerMP) player); + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.startTranslation(secondary.getConditionalName()).flush(), /*MainRegistry.proxy.ID_DETONATOR*/ 7, 3000), (EntityPlayerMP) player); } if(world.isRemote && player.isSneaking()) { @@ -68,9 +67,9 @@ public class ItemFluidIDMulti extends Item implements IItemFluidIdentifier, IIte @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { list.add(I18nUtil.resolveKey(getUnlocalizedName() + ".info")); - list.add(" " + I18n.format(getType(stack, true).getUnlocalizedName())); + list.add(" " + getType(stack, true).getLocalizedName()); list.add(I18nUtil.resolveKey(getUnlocalizedName() + ".info2")); - list.add(" " + I18n.format(getType(stack, false).getUnlocalizedName())); + list.add(" " + getType(stack, false).getLocalizedName()); } @Override diff --git a/src/main/java/com/hbm/items/machine/ItemFluidIcon.java b/src/main/java/com/hbm/items/machine/ItemFluidIcon.java index 1e121dd96..358d498d8 100644 --- a/src/main/java/com/hbm/items/machine/ItemFluidIcon.java +++ b/src/main/java/com/hbm/items/machine/ItemFluidIcon.java @@ -82,7 +82,7 @@ public class ItemFluidIcon extends Item { @Override public String getItemStackDisplayName(ItemStack stack) { - String s = (StatCollector.translateToLocal(Fluids.fromID(stack.getItemDamage()).getUnlocalizedName())).trim(); + String s = (StatCollector.translateToLocal(Fluids.fromID(stack.getItemDamage()).getConditionalName())).trim(); if(s != null) { return s; diff --git a/src/main/java/com/hbm/items/machine/ItemFluidIdentifier.java b/src/main/java/com/hbm/items/machine/ItemFluidIdentifier.java index fcb336edc..d68a24f24 100644 --- a/src/main/java/com/hbm/items/machine/ItemFluidIdentifier.java +++ b/src/main/java/com/hbm/items/machine/ItemFluidIdentifier.java @@ -13,7 +13,6 @@ import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.client.resources.I18n; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; @@ -65,7 +64,7 @@ public class ItemFluidIdentifier extends Item implements IItemFluidIdentifier { list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("info.templatefolder", I18nUtil.resolveKey(ModItems.template_folder.getUnlocalizedName() + ".name"))); list.add(""); list.add(I18nUtil.resolveKey(getUnlocalizedName() + ".info")); - list.add(" " + I18n.format(Fluids.fromID(stack.getItemDamage()).getUnlocalizedName())); + list.add(" " + Fluids.fromID(stack.getItemDamage()).getLocalizedName()); list.add(""); list.add(I18nUtil.resolveKey(getUnlocalizedName() + ".usage0")); list.add(I18nUtil.resolveKey(getUnlocalizedName() + ".usage1")); diff --git a/src/main/java/com/hbm/items/machine/ItemFluidTank.java b/src/main/java/com/hbm/items/machine/ItemFluidTank.java index 437554375..f4c0a3551 100644 --- a/src/main/java/com/hbm/items/machine/ItemFluidTank.java +++ b/src/main/java/com/hbm/items/machine/ItemFluidTank.java @@ -48,7 +48,7 @@ public class ItemFluidTank extends Item { public String getItemStackDisplayName(ItemStack stack) { String s = ("" + StatCollector.translateToLocal(this.getUnlocalizedName() + ".name")).trim(); - String s1 = ("" + StatCollector.translateToLocal(Fluids.fromID(stack.getItemDamage()).getUnlocalizedName())).trim(); + String s1 = ("" + StatCollector.translateToLocal(Fluids.fromID(stack.getItemDamage()).getConditionalName())).trim(); if(s1 != null) { s = s + " " + s1; diff --git a/src/main/java/com/hbm/items/machine/ItemGasTank.java b/src/main/java/com/hbm/items/machine/ItemGasTank.java index 11a20554a..0fe7cf03e 100644 --- a/src/main/java/com/hbm/items/machine/ItemGasTank.java +++ b/src/main/java/com/hbm/items/machine/ItemGasTank.java @@ -42,7 +42,7 @@ public class ItemGasTank extends Item { public String getItemStackDisplayName(ItemStack stack) { String s = ("" + StatCollector.translateToLocal(this.getUnlocalizedName() + ".name")).trim(); - String s1 = ("" + StatCollector.translateToLocal(Fluids.fromID(stack.getItemDamage()).getUnlocalizedName())).trim(); + String s1 = ("" + StatCollector.translateToLocal(Fluids.fromID(stack.getItemDamage()).getConditionalName())).trim(); if(s1 != null) { s = s + " " + s1; diff --git a/src/main/java/com/hbm/items/tool/ItemAnalyzer.java b/src/main/java/com/hbm/items/tool/ItemAnalyzer.java index ebfdbe208..1076552b1 100644 --- a/src/main/java/com/hbm/items/tool/ItemAnalyzer.java +++ b/src/main/java/com/hbm/items/tool/ItemAnalyzer.java @@ -75,7 +75,7 @@ public class ItemAnalyzer extends Item { if(te instanceof IFluidDuct) { player.addChatMessage(new ChatComponentText( - "Duct Type: " + I18n.format(((IFluidDuct)te).getType().getUnlocalizedName()))); + "Duct Type: " + ((IFluidDuct)te).getType().getLocalizedName())); } if(te instanceof TileEntityPylon) { diff --git a/src/main/java/com/hbm/items/tool/ItemBlowtorch.java b/src/main/java/com/hbm/items/tool/ItemBlowtorch.java index 1e10d8f98..0776efa01 100644 --- a/src/main/java/com/hbm/items/tool/ItemBlowtorch.java +++ b/src/main/java/com/hbm/items/tool/ItemBlowtorch.java @@ -10,7 +10,6 @@ import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; -import com.hbm.util.I18nUtil; import api.hbm.block.IToolable; import api.hbm.block.IToolable.ToolType; @@ -70,7 +69,7 @@ public class ItemBlowtorch extends Item implements IFillableItem { initNBT(stack); } - return stack.stackTagCompound.getInteger(type.getUnlocalizedName()); + return stack.stackTagCompound.getInteger(type.getName()); } public int getMaxFill(FluidType type) { @@ -86,7 +85,7 @@ public class ItemBlowtorch extends Item implements IFillableItem { initNBT(stack); } - stack.stackTagCompound.setInteger(type.getUnlocalizedName(), fill); + stack.stackTagCompound.setInteger(type.getName(), fill); } public void initNBT(ItemStack stack) { @@ -200,7 +199,7 @@ public class ItemBlowtorch extends Item implements IFillableItem { @SideOnly(Side.CLIENT) private String getFillGauge(ItemStack stack, FluidType type) { - return I18nUtil.resolveKey(type.getUnlocalizedName()) + ": " + String.format(Locale.US, "%,d", this.getFill(stack, type)) + " / " + String.format(Locale.US, "%,d", this.getMaxFill(type)); + return type.getLocalizedName() + ": " + String.format(Locale.US, "%,d", this.getFill(stack, type)) + " / " + String.format(Locale.US, "%,d", this.getMaxFill(type)); } @Override public boolean providesFluid(FluidType type, ItemStack stack) { return false; } diff --git a/src/main/java/com/hbm/items/tool/ItemToolAbilityFueled.java b/src/main/java/com/hbm/items/tool/ItemToolAbilityFueled.java index fd116a9b0..fd749bbd0 100644 --- a/src/main/java/com/hbm/items/tool/ItemToolAbilityFueled.java +++ b/src/main/java/com/hbm/items/tool/ItemToolAbilityFueled.java @@ -4,7 +4,6 @@ import java.util.HashSet; import java.util.List; import com.hbm.inventory.fluid.FluidType; -import com.hbm.util.I18nUtil; import api.hbm.fluid.IFillableItem; import cpw.mods.fml.relauncher.Side; @@ -38,7 +37,7 @@ public class ItemToolAbilityFueled extends ItemToolAbility implements IFillableI list.add(EnumChatFormatting.GOLD + "Fuel: " + this.getFill(stack) + "/" + this.maxFuel + "mB"); for(FluidType type : acceptedFuels) { - list.add(EnumChatFormatting.YELLOW + "- " + I18nUtil.resolveKey(type.getUnlocalizedName())); + list.add(EnumChatFormatting.YELLOW + "- " + type.getLocalizedName()); } super.addInformation(stack, player, list, ext); diff --git a/src/main/java/com/hbm/items/weapon/ItemGunChemthrower.java b/src/main/java/com/hbm/items/weapon/ItemGunChemthrower.java index e58c89eee..80910ce01 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGunChemthrower.java +++ b/src/main/java/com/hbm/items/weapon/ItemGunChemthrower.java @@ -20,7 +20,6 @@ import api.hbm.fluid.IFillableItem; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.I18n; import net.minecraft.enchantment.Enchantment; import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.entity.player.EntityPlayer; @@ -103,7 +102,7 @@ public class ItemGunChemthrower extends ItemGunBase implements IFillableItem { list.add("Ammo: " + getMag(stack) + " / " + mainConfig.ammoCap + "mB"); - list.add("Ammo Type: " + I18n.format(this.getFluidType(stack).getUnlocalizedName())); + list.add("Ammo Type: " + this.getFluidType(stack).getLocalizedName()); int dura = mainConfig.durability - getItemWear(stack); diff --git a/src/main/java/com/hbm/render/tileentity/RenderFluidTank.java b/src/main/java/com/hbm/render/tileentity/RenderFluidTank.java index 6a6f12176..47b0e405a 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderFluidTank.java +++ b/src/main/java/com/hbm/render/tileentity/RenderFluidTank.java @@ -56,6 +56,7 @@ public class RenderFluidTank extends TileEntitySpecialRenderer implements IItemR ResourceManager.fluidtank_exploded.renderPart("Tank"); } + GL11.glColor3d(1D, 1D, 1D); GL11.glShadeModel(GL11.GL_FLAT); if(type != null && type != Fluids.NONE) { @@ -80,6 +81,16 @@ public class RenderFluidTank extends TileEntitySpecialRenderer implements IItemR } public String getTextureFromType(FluidType type) { + + if(type.customFluid) { + int color = type.getTint(); + double r = ((color & 0xff0000) >> 16) / 255D; + double g = ((color & 0x00ff00) >> 8) / 255D; + double b = ((color & 0x0000ff) >> 0) / 255D; + GL11.glColor3d(r, g, b); + return "textures/models/tank/tank_NONE.png"; + } + String s = type.getName(); if(type.isAntimatter() || (type.hasTrait(FT_Corrosive.class) && type.getTrait(FT_Corrosive.class).isHighlyCorrosive())) diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java index 4ce54e100..dce56b111 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java @@ -382,7 +382,7 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon case BOILER: stats.add(EnumChatFormatting.BLUE + I18nUtil.resolveKey("rbmk.boiler.water", this.data.getInteger("water"), this.data.getInteger("maxWater"))); stats.add(EnumChatFormatting.WHITE + I18nUtil.resolveKey("rbmk.boiler.steam", this.data.getInteger("steam"), this.data.getInteger("maxSteam"))); - stats.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("rbmk.boiler.type", I18nUtil.resolveKey(Fluids.fromID(this.data.getShort("type")).getUnlocalizedName()))); + stats.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("rbmk.boiler.type", Fluids.fromID(this.data.getShort("type")).getLocalizedName())); break; case CONTROL: @@ -398,10 +398,10 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon break; case HEATEX: - stats.add(EnumChatFormatting.BLUE + I18nUtil.resolveKey(I18nUtil.resolveKey(Fluids.fromID(this.data.getShort("type")).getUnlocalizedName()) + " " + - this.data.getInteger("water") + "/" + this.data.getInteger("maxWater") + "mB")); - stats.add(EnumChatFormatting.RED + I18nUtil.resolveKey(I18nUtil.resolveKey(Fluids.fromID(this.data.getShort("hottype")).getUnlocalizedName()) + " " + - this.data.getInteger("steam") + "/" + this.data.getInteger("maxSteam") + "mB")); + stats.add(EnumChatFormatting.BLUE + Fluids.fromID(this.data.getShort("type")).getLocalizedName() + " " + + this.data.getInteger("water") + "/" + this.data.getInteger("maxWater") + "mB"); + stats.add(EnumChatFormatting.RED + Fluids.fromID(this.data.getShort("hottype")).getLocalizedName() + " " + + this.data.getInteger("steam") + "/" + this.data.getInteger("maxSteam") + "mB"); break; } diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/custom_lava.png b/src/main/resources/assets/hbm/textures/gui/fluids/custom_lava.png new file mode 100644 index 0000000000000000000000000000000000000000..e849937862e7e61205270f3ce84c02545a57246c GIT binary patch literal 786 zcmV+t1MU2YP)qtS@jY=&*y z*tU&nnz*iuWm)X^dwkzVn5K#6c_^h=tyWAX6Vf!raU2eZ1FcqzZnul;y7c>flv1?Y zZG7Knv)TML2*Z#hN!V_;^!t6XEW@_#qev-*VHo6j4uEA@+~42x{{D^tST2{W*K3NR zpePD-U8i2J6NVu{5HK2zP)Z@C#Bm&Yy&fMQACzT@*ladTr&CPR1V9LZZQFFaU8Iz( zRx6??qN*yE%O$$5lVur`$pk4SLMer=>llWCVHg0k+ij$jD5Z$wn8V?~pFe+SG#Y$; zeew48Mpaehd5&Hb1wsg0B@9m=vqN{O!P{Qmx;X&OnAkYyQ3l8__`hG8Il-zSP9etv$K&*uz> z!($I=nxbhMyWNh@&rj<0I?ZPDIJ0frh%gMP)oNT`UQ!eVaU3%k43JW?SS;9VHdIwb zy-C!d0nAleb8KtU Q4FCWD07*qoM6N<$f)Z129RL6T literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/custom_oil.png b/src/main/resources/assets/hbm/textures/gui/fluids/custom_oil.png new file mode 100644 index 0000000000000000000000000000000000000000..8c2fb1710328171368be62525b3a44b2d0f753c3 GIT binary patch literal 545 zcmV++0^a?JP)(gy+S&IVfUfJPwUTp2RUdaELMeq9BLIEhGtV=siiof* z3nIcW3_LwO5o4s3g7+Th99>Gul!jp-gupnCs4BHqn!viQ0C?{KNGZ|xJ#JYRy!RZB zN9($68?{zK2sr0ZRl2StgkYbDJS;fpY^-%%t$3biLL6?pFnA&_%s+cxu^a|W>SMTD-wYez(w zrpXlA`r0bnq^e5JnXb`oHdK{u+ej%HgMHsE1LHW_Bmjrs-`{(T@juVbIYflp?Ph^_ zd3oV-xfp}j*Vl)I5Q2@>()A#+qD0}bCSEK&^{?6%iqBWnU$uf{qqLgA0cOe8yDV6~d;p5}OXtyAH@?=jZ3W1*eq4IF5Mlx!rEfBROZw$TUqRm~+N8mG*c5=6UAl=Lc1_ jWU4BvYK%%LIOq5S{MSggN^rCb00000NkvXXu0mjfe8vC| literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/custom_toxin.png b/src/main/resources/assets/hbm/textures/gui/fluids/custom_toxin.png new file mode 100644 index 0000000000000000000000000000000000000000..997a31214f309d11c82a825c74c7b0350557d6c7 GIT binary patch literal 702 zcmV;v0zv(WP)Sf3bpZVS{!$bLUDxsW_y~Z| zS|fzOImcqLz*sO2mq|L>~=ehF_dMA7>~yoV;GOe!!ke|$HZ}rl#(<} zsp}f8HQsxYB*9vXF$N)opzAuc)~r@5LI_AHsj3R^J+s*iAp}KH;JqKhJ@?V+bUNjE z4nPP2fFwx>A+XtO`1|`K%QB9~BLLIsln??*l2BC@qrUG?Z*Om0US0xVjKNw<+qP(} z$@84=?{B1(+}+)gBnjSowAM@}6Gr>}{ADVUEz{`~fc<_?mSq4q=Z4v4vl%WhnM@dMx7$-3#}q|@a}MVm%jJ@fj}M|K zB2Cl(F>ofgEX)5msj7;;?+GDrb#;YOir3dy%CaO)Q=D^1DUnjrwk@;S46QY3nxd3K zMNu?(t?Qbbn;V>SjK^b~a{~ifYv%Jg0C}F1rYRu=LkELx;eZf=e{&-|sZ-!T(EtDd07*qoM6N<$g24_ykpKVy literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/custom_water.png b/src/main/resources/assets/hbm/textures/gui/fluids/custom_water.png new file mode 100644 index 0000000000000000000000000000000000000000..63fdd9ec9d7b81012ab90be47f245a07dd9f2de3 GIT binary patch literal 471 zcmV;|0Vw{7P)|Yo}_ji z*XL8Z-EKegJOcpC462G8%nT8MnU&l*hY$k#z6Su%<#PEUBBYc+L||qxGg3-ODV1Sn zw#)M!Cn6xC(x9s4nTX(=0}-KVnsRwv*Z=PUKvhdYL=ZxNsuno8&diwSx#TG&xQtIk z%K7&}fftkU~3Je!Qz_x8Lv)!O& zS<0#akd^BDz7YL>zu~&B!!QhZJRTUwvEc5y4l%|8C7-X?3nGHHZNIX1U59C!U}kX6 z;dngaa5!Kb#~q~14>Kdih-Fz2LiqXsf5dMRYp$5Nn9F53YLnCrwIfBOsNuc;s!%u9 zO4NB>%NxZQzZ}%7<%T-yyta5s>C0RFv*hM1Uu|jcJwyc4H0@ySAk;kM6`2`r+hQ07 zm>JIJGp^Tb@rm=^qiGt%7y$rn+v0ROK~?d5KB1~u*A@5sedmj8uz%b^DtuJ5u_pik N002ovPDHLkV1k`9({}&> literal 0 HcmV?d00001 From a40dbd882a8fbe7a3f2d0083ff66725f95c6731b Mon Sep 17 00:00:00 2001 From: Bob Date: Thu, 5 Oct 2023 22:42:19 +0200 Subject: [PATCH 334/432] arc welder stuff --- src/main/java/com/hbm/blocks/ModBlocks.java | 3 + .../hbm/blocks/machine/MachineArcWelder.java | 32 ++++++++++ src/main/java/com/hbm/main/ClientProxy.java | 1 + .../java/com/hbm/main/ResourceManager.java | 6 ++ .../render/tileentity/RenderArcWelder.java | 57 ++++++++++++++++++ .../java/com/hbm/tileentity/TileMappings.java | 1 + .../machine/TileEntityMachineArcWelder.java | 54 +++++++++++++++++ .../gui/processing/gui_arc_welder.png | Bin 0 -> 2952 bytes 8 files changed, 154 insertions(+) create mode 100644 src/main/java/com/hbm/blocks/machine/MachineArcWelder.java create mode 100644 src/main/java/com/hbm/render/tileentity/RenderArcWelder.java create mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java create mode 100644 src/main/resources/assets/hbm/textures/gui/processing/gui_arc_welder.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 2e4a6cda9..66d22a2ee 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1036,6 +1036,7 @@ public class ModBlocks { public static Block machine_assembler; public static Block machine_assemfac; + public static Block machine_arc_welder; public static Block machine_chemplant; public static Block machine_chemfac; @@ -2272,6 +2273,7 @@ public class ModBlocks { barricade = new BlockNoDrop(Material.sand).setBlockName("barricade").setHardness(1.0F).setResistance(2.5F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":barricade"); machine_assembler = new MachineAssembler(Material.iron).setBlockName("machine_assembler").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_assembler"); machine_assemfac = new MachineAssemfac(Material.iron).setBlockName("machine_assemfac").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_arc_welder = new MachineArcWelder(Material.iron).setBlockName("machine_arc_welder").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_chemplant = new MachineChemplant(Material.iron).setBlockName("machine_chemplant").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_chemfac = new MachineChemfac(Material.iron).setBlockName("machine_chemfac").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_mixer = new MachineMixer(Material.iron).setBlockName("machine_mixer").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); @@ -3319,6 +3321,7 @@ public class ModBlocks { GameRegistry.registerBlock(machine_assemfac, machine_assemfac.getUnlocalizedName()); GameRegistry.registerBlock(machine_chemplant, machine_chemplant.getUnlocalizedName()); GameRegistry.registerBlock(machine_chemfac, machine_chemfac.getUnlocalizedName()); + register(machine_arc_welder); register(machine_mixer); register(machine_fluidtank); register(machine_bat9000); diff --git a/src/main/java/com/hbm/blocks/machine/MachineArcWelder.java b/src/main/java/com/hbm/blocks/machine/MachineArcWelder.java new file mode 100644 index 000000000..a728122bc --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineArcWelder.java @@ -0,0 +1,32 @@ +package com.hbm.blocks.machine; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.machine.TileEntityMachineArcWelder; + +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class MachineArcWelder extends BlockDummyable { + + public MachineArcWelder(Material mat) { + super(mat); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityMachineArcWelder(); + return new TileEntityProxyCombo().inventory().power().fluid(); + } + + @Override + public int[] getDimensions() { + return new int[] {1, 0, 1, 0, 1, 1}; + } + + @Override + public int getOffset() { + return 0; + } +} diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index ea4100179..8b4ff3564 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -293,6 +293,7 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRadioTelex.class, new RenderTelex()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachinePumpSteam.class, new RenderPump()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachinePumpElectric.class, new RenderPump()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineArcWelder.class, new RenderArcWelder()); //Foundry ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFoundryBasin.class, new RenderFoundry()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFoundryMold.class, new RenderFoundry()); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index c7a57a2a6..18cf110cc 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -147,6 +147,9 @@ public class ResourceManager { //Mixer public static final IModelCustom mixer = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/mixer.obj")); + //Arc Welder + public static final IModelCustom arc_welder = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/arc_welder.obj")); + //F6 TANKS public static final IModelCustom tank = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/tank.obj")); @@ -513,6 +516,9 @@ public class ResourceManager { //Mixer public static final ResourceLocation mixer_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/mixer.png"); + + //Welder + public static final ResourceLocation arc_welder_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/arc_welder.png"); //F6 TANKS public static final ResourceLocation uf6_tex = new ResourceLocation(RefStrings.MODID, "textures/models/UF6Tank.png"); diff --git a/src/main/java/com/hbm/render/tileentity/RenderArcWelder.java b/src/main/java/com/hbm/render/tileentity/RenderArcWelder.java new file mode 100644 index 000000000..f7b1ef53c --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderArcWelder.java @@ -0,0 +1,57 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderArcWelder extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y, z + 0.5); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + + switch(tile.getBlockMetadata() - BlockDummyable.offset) { + case 2: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(0, 0F, 1F, 0F); break; + } + + GL11.glTranslated(-0.5, 0, 0); + + bindTexture(ResourceManager.arc_welder_tex); + ResourceManager.arc_welder.renderAll(); + + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.radio_telex); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(0, -2, 0); + GL11.glScaled(6, 6, 6); + } + public void renderCommon() { + GL11.glTranslated(0, 0, -0.5); + bindTexture(ResourceManager.arc_welder_tex); + ResourceManager.arc_welder.renderAll(); + }}; + } +} diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 3e6c9cc6d..d5ef30c31 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -307,6 +307,7 @@ public class TileMappings { put(TileEntityMachineCompressor.class, "tileentity_compressor"); put(TileEntityElectrolyser.class, "tileentity_electrolyser"); put(TileEntityMachineMixer.class, "tileentity_mixer"); + put(TileEntityMachineArcWelder.class, "tileentity_arc_welder"); put(TileEntitySteamEngine.class, "tileentity_steam_engine"); put(TileEntityMachineTurbine.class, "tileentity_turbine"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java new file mode 100644 index 000000000..f2099415d --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java @@ -0,0 +1,54 @@ +package com.hbm.tileentity.machine; + +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.tileentity.TileEntityMachineBase; + +import api.hbm.energy.IEnergyUser; +import api.hbm.fluid.IFluidStandardReceiver; + +public class TileEntityMachineArcWelder extends TileEntityMachineBase implements IEnergyUser, IFluidStandardReceiver { + + public long power; + public long maxPower; + + public FluidTank tank; + + public TileEntityMachineArcWelder() { + super(8); + } + + @Override + public String getName() { + return "container.machineArcWelder"; + } + + @Override + public void updateEntity() { + + } + + @Override + public long getPower() { + return power; + } + + @Override + public void setPower(long power) { + this.power = power; + } + + @Override + public long getMaxPower() { + return maxPower; + } + + @Override + public FluidTank[] getAllTanks() { + return new FluidTank[] {tank}; + } + + @Override + public FluidTank[] getReceivingTanks() { + return new FluidTank[] {tank}; + } +} diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_arc_welder.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_arc_welder.png new file mode 100644 index 0000000000000000000000000000000000000000..14366acc325432628c0d5dd3f694de688a8539d3 GIT binary patch literal 2952 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 literal 0 HcmV?d00001 From 81b6df6962135604ea8be15d872745a0b560f900 Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 6 Oct 2023 15:00:43 +0200 Subject: [PATCH 335/432] container fix for custom fluids, arc welder stuff --- .../hbm/inventory/FluidContainerRegistry.java | 11 ++++++----- .../hbm/tileentity/IConditionalInvAccess.java | 17 +++++++++++++++++ .../hbm/tileentity/TileEntityProxyCombo.java | 12 ++++++++++++ .../tileentity/TileEntityProxyInventory.java | 1 + src/main/java/com/hbm/util/HashedSet.java | 10 +++++++++- .../textures/models/machines/arc_welder.png | Bin 1024 -> 1976 bytes 6 files changed, 45 insertions(+), 6 deletions(-) create mode 100644 src/main/java/com/hbm/tileentity/IConditionalInvAccess.java diff --git a/src/main/java/com/hbm/inventory/FluidContainerRegistry.java b/src/main/java/com/hbm/inventory/FluidContainerRegistry.java index ce1c1977e..f6f3d2971 100644 --- a/src/main/java/com/hbm/inventory/FluidContainerRegistry.java +++ b/src/main/java/com/hbm/inventory/FluidContainerRegistry.java @@ -62,18 +62,19 @@ public class FluidContainerRegistry { for(int i = 1; i < fluids.length; i++) { FluidType type = fluids[i]; + int id = type.getID(); - if(type.getContainer(CD_Canister.class) != null) FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.canister_full, 1, i), new ItemStack(ModItems.canister_empty), Fluids.fromID(i), 1000)); - if(type.getContainer(CD_Gastank.class) != null) FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.gas_full, 1, i), new ItemStack(ModItems.gas_empty), Fluids.fromID(i), 1000)); + if(type.getContainer(CD_Canister.class) != null) FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.canister_full, 1, id), new ItemStack(ModItems.canister_empty), type, 1000)); + if(type.getContainer(CD_Gastank.class) != null) FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.gas_full, 1, id), new ItemStack(ModItems.gas_empty), type, 1000)); if(type.hasNoContainer()) continue; - FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.fluid_tank_lead_full, 1, i), new ItemStack(ModItems.fluid_tank_lead_empty), Fluids.fromID(i), 1000)); + FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.fluid_tank_lead_full, 1, id), new ItemStack(ModItems.fluid_tank_lead_empty), type, 1000)); if(type.needsLeadContainer()) continue; - FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.fluid_tank_full, 1, i), new ItemStack(ModItems.fluid_tank_empty), Fluids.fromID(i), 1000)); - FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.fluid_barrel_full, 1, i), new ItemStack(ModItems.fluid_barrel_empty), Fluids.fromID(i), 16000)); + FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.fluid_tank_full, 1, id), new ItemStack(ModItems.fluid_tank_empty), type, 1000)); + FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.fluid_barrel_full, 1, id), new ItemStack(ModItems.fluid_barrel_empty), type, 16000)); } Compat.registerCompatFluidContainers(); diff --git a/src/main/java/com/hbm/tileentity/IConditionalInvAccess.java b/src/main/java/com/hbm/tileentity/IConditionalInvAccess.java new file mode 100644 index 000000000..9416eb837 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/IConditionalInvAccess.java @@ -0,0 +1,17 @@ +package com.hbm.tileentity; + +import net.minecraft.item.ItemStack; + +/** + * Masks operation such as isItemValidForSlot and getAccessibleSlotsFromSide found in ISidedInveotry + * Intended to be used to return a different result depending on the port, assuming the port detects IConditionalInvAccess + * + * @author hbm + */ +public interface IConditionalInvAccess { + + public boolean isItemValidForSlot(int x, int y, int z, int slot, ItemStack stack); + public boolean canInsertItem(int x, int y, int z, int slot, ItemStack stack, int side); + public boolean canExtractItem(int x, int y, int z, int slot, ItemStack stack, int side); + public int[] getAccessibleSlotsFromSide(int x, int y, int z, int side); +} diff --git a/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java b/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java index 18d109586..eb4a603e0 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java +++ b/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java @@ -361,6 +361,9 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy return false; if(getTile() instanceof ISidedInventory) { + + if(getTile() instanceof IConditionalInvAccess) return ((IConditionalInvAccess) getTile()).isItemValidForSlot(xCoord, yCoord, zCoord, slot, stack); + return ((ISidedInventory)getTile()).isItemValidForSlot(slot, stack); } @@ -374,6 +377,9 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy return new int[0]; if(getTile() instanceof ISidedInventory) { + + if(getTile() instanceof IConditionalInvAccess) return ((IConditionalInvAccess) getTile()).getAccessibleSlotsFromSide(xCoord, yCoord, zCoord, side); + return ((ISidedInventory)getTile()).getAccessibleSlotsFromSide(side); } @@ -387,6 +393,9 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy return false; if(getTile() instanceof ISidedInventory) { + + if(getTile() instanceof IConditionalInvAccess) return ((IConditionalInvAccess) getTile()).canInsertItem(xCoord, yCoord, zCoord, i, stack, j); + return ((ISidedInventory)getTile()).canInsertItem(i, stack, j); } @@ -400,6 +409,9 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy return false; if(getTile() instanceof ISidedInventory) { + + if(getTile() instanceof IConditionalInvAccess) return ((IConditionalInvAccess) getTile()).canExtractItem(xCoord, yCoord, zCoord, i, stack, j); + return ((ISidedInventory)getTile()).canExtractItem(i, stack, j); } diff --git a/src/main/java/com/hbm/tileentity/TileEntityProxyInventory.java b/src/main/java/com/hbm/tileentity/TileEntityProxyInventory.java index 9e348c0b4..ce4208ccc 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityProxyInventory.java +++ b/src/main/java/com/hbm/tileentity/TileEntityProxyInventory.java @@ -5,6 +5,7 @@ import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; +@Deprecated public class TileEntityProxyInventory extends TileEntityProxyBase implements ISidedInventory { @Override diff --git a/src/main/java/com/hbm/util/HashedSet.java b/src/main/java/com/hbm/util/HashedSet.java index cdb13cdee..6a45c952b 100644 --- a/src/main/java/com/hbm/util/HashedSet.java +++ b/src/main/java/com/hbm/util/HashedSet.java @@ -105,7 +105,15 @@ public class HashedSet implements Set { @Override public boolean remove(Object o) { - return false; + T obj = this.map.get(o.hashCode()); + boolean rem = false; + + if(obj != null) { + rem = true; + this.map.remove(o.hashCode()); + } + + return rem; } @Override diff --git a/src/main/resources/assets/hbm/textures/models/machines/arc_welder.png b/src/main/resources/assets/hbm/textures/models/machines/arc_welder.png index d85de397f72547ed4600d83282aa63896a1db313..7dc4193e8a25df93e244f20dc88eb776263a0b65 100644 GIT binary patch delta 1947 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
    fh_ym`?dW2= z-C6+HY&HOZ)9Hln-wzKD&g-snmLHR1>Hwtp3ilHA2V_%)&zUWBsE6n0=L_Ln$NJ3P zp{+B&!T3&jac=lrvDs`ca_10>bLcG;ZUyG4-EMc0LVsMx`pn*;eSUfh1S#6t-}m@0 z&Y@GYIEVV^tCnEIzGE@W-l3g3GfN#h#3~&+CbM^F%aeB3 znb!{Ie)@iS-k(aQCqRb^Gkb?#>$3x|P4Z9{NO$V&1s&p7Po6I$zvW-NpkoWzhdERj z3Mvc*6@P|;3PVAKp`gN0P+=&jFcegn#jlj48G4mWhk9^rXc*e$0MMatayp$Z_BIVc zhk9sV7Y`llGkb@2`j<(4rT6wh+szK#eU}Mk6TjK1F%w_Ezdw}@O+@3yS{!WqyD(En zl!%!+0NlXf5e7F4kC>|Z1M zFn`7*8Ktgk8zbss1(l%xrM$S(d?{iDj{qQeD?J)}26n9lLmkrqKUFnx^5TB+ZcP7yHOh1sxg)m!1j4lunC% z((x_7gW?Y>!uXv?YQiR3d4SA2G|eH3>_K>m!1i% zvL8A$Nw6O(4Ev!%upjyXVLvnj?1yHC4h@7$&ji>H?J!k8^e@tUMpwpK+RXp}002ov JPDHLkV1hBR)rSB8 From b7028160573aa7d95dd9b6e2b6d6e2c35e271f87 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 8 Oct 2023 18:45:45 +0200 Subject: [PATCH 336/432] finished arc welder, fixes --- changelog | 31 +- gradle.properties | 2 +- src/main/java/com/hbm/blocks/ModBlocks.java | 2 +- .../com/hbm/blocks/machine/BlockCMAnchor.java | 51 +-- .../hbm/blocks/machine/MachineArcWelder.java | 6 + .../com/hbm/explosion/ExplosionFleija.java | 2 +- .../hbm/explosion/ExplosionNukeAdvanced.java | 64 ---- .../com/hbm/handler/nei/ArcWelderHandler.java | 60 ++++ .../hbm/handler/nei/NEIUniversalHandler.java | 2 + .../com/hbm/inventory/OreDictManager.java | 32 +- src/main/java/com/hbm/inventory/OreNames.java | 1 + .../container/ContainerMachineArcWelder.java | 86 +++++ .../hbm/inventory/fluid/tank/FluidTank.java | 28 +- .../inventory/gui/GUIMachineArcWelder.java | 60 ++++ .../inventory/material/MaterialShapes.java | 1 + .../java/com/hbm/inventory/material/Mats.java | 18 +- .../inventory/recipes/ArcWelderRecipes.java | 200 ++++++++++++ .../inventory/recipes/AssemblerRecipes.java | 39 ++- .../inventory/recipes/anvil/AnvilRecipes.java | 8 + .../recipes/loader/SerializableRecipe.java | 1 + src/main/java/com/hbm/items/ModItems.java | 4 +- src/main/java/com/hbm/lib/HbmWorldGen.java | 10 +- src/main/java/com/hbm/lib/RefStrings.java | 2 +- src/main/java/com/hbm/main/ClientProxy.java | 17 + .../java/com/hbm/main/CraftingManager.java | 14 +- src/main/java/com/hbm/main/NEIConfig.java | 1 + .../java/com/hbm/particle/ParticleHadron.java | 16 +- .../render/tileentity/RenderArcWelder.java | 37 ++- .../com/hbm/render/util/RenderDecoItem.java | 3 + .../hbm/tileentity/machine/TileEntityFEL.java | 2 +- .../machine/TileEntityMachineArcWelder.java | 293 +++++++++++++++++- .../machine/TileEntityMachineRTG.java | 2 +- .../network/TileEntityRequestNetwork.java | 2 +- src/main/java/com/hbm/util/ParticleUtil.java | 4 +- .../hbm/util/fauxpointtwelve/BlockPos.java | 10 +- src/main/resources/META-INF/HBM_at.cfg | 3 + src/main/resources/assets/hbm/lang/de_DE.lang | 3 + src/main/resources/assets/hbm/lang/en_US.lang | 3 + .../textures/blocks/cmt_terminal_front.png | Bin 0 -> 425 bytes .../hbm/textures/blocks/cmt_terminal_side.png | Bin 0 -> 448 bytes 40 files changed, 950 insertions(+), 170 deletions(-) create mode 100644 src/main/java/com/hbm/handler/nei/ArcWelderHandler.java create mode 100644 src/main/java/com/hbm/inventory/container/ContainerMachineArcWelder.java create mode 100644 src/main/java/com/hbm/inventory/gui/GUIMachineArcWelder.java create mode 100644 src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java create mode 100644 src/main/resources/assets/hbm/textures/blocks/cmt_terminal_front.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/cmt_terminal_side.png diff --git a/changelog b/changelog index a98335f00..0cbb2b0e8 100644 --- a/changelog +++ b/changelog @@ -1,11 +1,30 @@ ## Added -* Expensive mode - * Horrible new config option that replaces several crafting items in key machine recipes with the all new heavy components - * Heavy components are 256 cast plates combined in an assembler - * +* Crystalline fullerite + * A late-game crafting material that is currenly only used to make the FEnSU + * Made from extracting fullerene from fine soot using high-performance solvent and a SILEX +* Arc welder + * Similar to an assembler, but without templates + * Can combine up to 3 items and one fluid + * Recipes vary in duration and energy consumption, welding together osmiridium plates requires the output of powerful reactors +* Custom fluids + * A config for adding custom fluid types + * Sets basic stats, color and textures + * Fluid tratis can be applied using the already existing fluid trait config + * The fluid trait config has been renamed to prevent name clashes + * Recommended greyscale textures recommended for the custom fluids are `custom_water`, `custom_lava`, `custom_oil` and `custom_toxin` + * 256k tanks do not have a label for custom fluids, but the tank's color will match the fluid's tint +* Custom machine structure positioning anchor + * Allows automatic generation of custom machine block configurations + * Simply replace the controller of your custom machine mockup with the anchor, then link it to a custom machine structure output wand and select the two diagonal points + * The resulting JSON structure will be saved in the config folder +* Welded plates + * Made from welding together two cast plates in an arc welder + * Now used in many progression-relevant machines, meaning that energy demand now more closely matches the energy production of progression-based generators + * Many recipes have been adjusted to now use cast plates or welded plates ## Changed -* Drones are now made from plastic +* Schrabidium explosions now ignore all blocks at Y:0, not just bedrock. This means that bedrock ores and oil are spared +* Drone waypoint connections only show up if a drone or a logistic block is held ## Fixed -* Fixed the new falling block implementation crashing on certain blocks \ No newline at end of file +* Fixed RTG energy connectors being backwards \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 017bb4d71..069c4d1c8 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4740 +mod_build_number=4746 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index b3e1d84bd..ad16c99fd 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -2268,7 +2268,7 @@ public class ModBlocks { machine_catalytic_reformer = new MachineCatalyticReformer(Material.iron).setBlockName("machine_catalytic_reformer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_coker = new MachineCoker(Material.iron).setBlockName("machine_coker").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_autosaw = new MachineAutosaw().setBlockName("machine_autosaw").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - machine_drill = new MachineMiningDrill(Material.iron).setBlockName("machine_drill").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_drill"); + machine_drill = new MachineMiningDrill(Material.iron).setBlockName("machine_drill").setHardness(5.0F).setResistance(100.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":machine_drill"); machine_excavator = new MachineExcavator().setBlockName("machine_excavator").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); drill_pipe = new BlockNoDrop(Material.iron).setBlockName("drill_pipe").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":drill_pipe"); machine_mining_laser = new MachineMiningLaser(Material.iron).setBlockName("machine_mining_laser").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_mining_laser"); diff --git a/src/main/java/com/hbm/blocks/machine/BlockCMAnchor.java b/src/main/java/com/hbm/blocks/machine/BlockCMAnchor.java index bafa683a3..44f60003b 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockCMAnchor.java +++ b/src/main/java/com/hbm/blocks/machine/BlockCMAnchor.java @@ -13,31 +13,34 @@ import net.minecraft.util.MathHelper; import net.minecraft.world.World; public class BlockCMAnchor extends Block { - @SideOnly(Side.CLIENT) - private IIcon iconFront; + + @SideOnly(Side.CLIENT) + private IIcon iconFront; - public BlockCMAnchor() { - super(Material.iron); - } - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister iconRegister) { - this.iconFront = iconRegister.registerIcon(RefStrings.MODID + ":cm_terminal_front"); - this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":cm_terminal_side"); - } + public BlockCMAnchor() { + super(Material.iron); + } - @Override - @SideOnly(Side.CLIENT) - public IIcon getIcon(int side, int metadata) { - return metadata == 0 && side == 3 ? this.iconFront : (side == metadata ? this.iconFront : this.blockIcon); - } - @Override - public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { - int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.iconFront = iconRegister.registerIcon(RefStrings.MODID + ":cmt_terminal_front"); + this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":cmt_terminal_side"); + } - if(i == 0) world.setBlockMetadataWithNotify(x, y, z, 2, 2); - if(i == 1) world.setBlockMetadataWithNotify(x, y, z, 5, 2); - if(i == 2) world.setBlockMetadataWithNotify(x, y, z, 3, 2); - if(i == 3) world.setBlockMetadataWithNotify(x, y, z, 4, 2); - } + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + return metadata == 0 && side == 3 ? this.iconFront : (side == metadata ? this.iconFront : this.blockIcon); + } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { + int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; + + if(i == 0) world.setBlockMetadataWithNotify(x, y, z, 2, 2); + if(i == 1) world.setBlockMetadataWithNotify(x, y, z, 5, 2); + if(i == 2) world.setBlockMetadataWithNotify(x, y, z, 3, 2); + if(i == 3) world.setBlockMetadataWithNotify(x, y, z, 4, 2); + } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineArcWelder.java b/src/main/java/com/hbm/blocks/machine/MachineArcWelder.java index a728122bc..9cc28da0c 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineArcWelder.java +++ b/src/main/java/com/hbm/blocks/machine/MachineArcWelder.java @@ -5,6 +5,7 @@ import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityMachineArcWelder; import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; @@ -19,6 +20,11 @@ public class MachineArcWelder extends BlockDummyable { if(meta >= 12) return new TileEntityMachineArcWelder(); return new TileEntityProxyCombo().inventory().power().fluid(); } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + return this.standardOpenBehavior(world, x, y, z, player, 0); + } @Override public int[] getDimensions() { diff --git a/src/main/java/com/hbm/explosion/ExplosionFleija.java b/src/main/java/com/hbm/explosion/ExplosionFleija.java index 3ad81f5e2..5a478fe14 100644 --- a/src/main/java/com/hbm/explosion/ExplosionFleija.java +++ b/src/main/java/com/hbm/explosion/ExplosionFleija.java @@ -96,7 +96,7 @@ public class ExplosionFleija dist = (int) Math.sqrt(dist); for (int y = (int)(dist / this.explosionCoefficient2); y > -dist / this.explosionCoefficient; y--) { - if(!(this.worldObj.getBlock(this.posX+x, this.posY+y, this.posZ+z) == Blocks.bedrock && this.posY+y <= 0) && !(this.worldObj.getBlock(this.posX+x, this.posY+y, this.posZ+z) instanceof DecoBlockAlt))this.worldObj.setBlock(this.posX+x, this.posY+y, this.posZ+z, Blocks.air); + if(this.posY + y > 0 && !(this.worldObj.getBlock(this.posX+x, this.posY+y, this.posZ+z) instanceof DecoBlockAlt))this.worldObj.setBlock(this.posX+x, this.posY+y, this.posZ+z, Blocks.air); } } } diff --git a/src/main/java/com/hbm/explosion/ExplosionNukeAdvanced.java b/src/main/java/com/hbm/explosion/ExplosionNukeAdvanced.java index ef07620ee..5893488d5 100644 --- a/src/main/java/com/hbm/explosion/ExplosionNukeAdvanced.java +++ b/src/main/java/com/hbm/explosion/ExplosionNukeAdvanced.java @@ -147,68 +147,4 @@ public class ExplosionNukeAdvanced } } } - - /*public static void mush(World world, double x, double y, double z) - { - double d = (float)x + 0.5F; - double d1 = (float)y + 0.5F; - double d2 = (float)z + 0.5F; - - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1, d2, 0.0D, 0.0D, 0.0D, 100)); - - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d + 15, d1, d2, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1, d2 + 15, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d - 15, d1, d2, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1, d2 - 15, 0.0D, 0.0D, 0.0D, 100)); - - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d + 25, d1, d2, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1, d2 + 25, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d - 25, d1, d2, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1, d2 - 25, 0.0D, 0.0D, 0.0D, 100)); - - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d + 10, d1, d2 + 10, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d + 10, d1, d2 - 10, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d - 10, d1, d2 + 10, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d - 10, d1, d2 - 10, 0.0D, 0.0D, 0.0D, 100)); - - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1 + 15, d2, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1 + 30, d2, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1 + 45, d2, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1 + 60, d2, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1 + 75, d2, 0.0D, 0.0D, 0.0D, 100)); - - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1 + 90, d2, 0.0D, 0.0D, 0.0D, 100)); - - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d + 15, d1 + 90, d2, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1 + 90, d2 + 15, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d - 15, d1 + 90, d2, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1 + 90, d2 - 15, 0.0D, 0.0D, 0.0D, 100)); - - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d + 40, d1 + 90, d2, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1 + 90, d2 + 40, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d - 40, d1 + 90, d2, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1 + 90, d2 - 40, 0.0D, 0.0D, 0.0D, 100)); - - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d + 30, d1 + 90, d2 + 30, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d + 30, d1 + 90, d2 - 30, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d - 30, d1 + 90, d2 + 30, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d - 30, d1 + 90, d2 - 30, 0.0D, 0.0D, 0.0D, 100)); - - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1 + 105, d2, 0.0D, 0.0D, 0.0D, 100)); - - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d + 30, d1 + 105, d2, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1 + 105, d2 + 30, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d - 30, d1 + 105, d2, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1 + 105, d2 - 30, 0.0D, 0.0D, 0.0D, 100)); - - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d + 20, d1 + 105, d2 + 20, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d + 20, d1 + 105, d2 - 20, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d - 20, d1 + 105, d2 + 20, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d - 20, d1 + 105, d2 - 20, 0.0D, 0.0D, 0.0D, 100)); - - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d + 10, d1 + 120, d2, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1 + 120, d2 + 10, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d - 10, d1 + 120, d2, 0.0D, 0.0D, 0.0D, 100)); - Minecraft.getMinecraft().effectRenderer.addEffect(new NukeCloudFX(world, d, d1 + 120, d2 - 10, 0.0D, 0.0D, 0.0D, 100)); - }*/ } diff --git a/src/main/java/com/hbm/handler/nei/ArcWelderHandler.java b/src/main/java/com/hbm/handler/nei/ArcWelderHandler.java new file mode 100644 index 000000000..e598840fc --- /dev/null +++ b/src/main/java/com/hbm/handler/nei/ArcWelderHandler.java @@ -0,0 +1,60 @@ +package com.hbm.handler.nei; + +import java.awt.Rectangle; +import java.util.Locale; + +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.gui.GUIMachineArcWelder; +import com.hbm.inventory.recipes.ArcWelderRecipes; +import com.hbm.inventory.recipes.ArcWelderRecipes.ArcWelderRecipe; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.item.ItemStack; + +public class ArcWelderHandler extends NEIUniversalHandler { + + public ArcWelderHandler() { + super("Arc Welder", ModBlocks.machine_arc_welder, ArcWelderRecipes.getRecipes()); + } + + @Override + public String getKey() { + return "ntmArcWelder"; + } + + @Override + public void loadTransferRects() { + super.loadTransferRects(); + transferRectsGui.add(new RecipeTransferRect(new Rectangle(67, 26, 32, 14), "ntmArcWelder")); + guiGui.add(GUIMachineArcWelder.class); + RecipeTransferRectHandler.registerRectsToGuis(guiGui, transferRectsGui); + } + + @Override + public void drawExtras(int recipe) { + + RecipeSet rec = (RecipeSet) this.arecipes.get(recipe); + Object[] original = (Object[]) rec.originalInputInstance; + ItemStack output = rec.output[0].item; + + outer: for(ArcWelderRecipe arc : ArcWelderRecipes.recipes) { + + //checks do not include the fluid, will break of there's two recipes with identical input and output but with fluids + if(ItemStack.areItemStacksEqual(arc.output, output) && arc.ingredients.length == original.length - (arc.fluid == null ? 0 : 1)) { + + for(int i = 0; i < rec.input.length - (arc.fluid == null ? 0 : 1); i++) { + if(arc.ingredients[i] != original[i]) continue outer; + } + + FontRenderer fontRenderer = Minecraft.getMinecraft().fontRenderer; + String duration = String.format(Locale.US, "%,d", arc.duration) + " ticks"; + String consumption = String.format(Locale.US, "%,d", arc.consumption) + " HE/t"; + int side = 160; + fontRenderer.drawString(duration, side - fontRenderer.getStringWidth(duration), 43, 0x404040); + fontRenderer.drawString(consumption, side - fontRenderer.getStringWidth(consumption), 55, 0x404040); + return; + } + } + } +} diff --git a/src/main/java/com/hbm/handler/nei/NEIUniversalHandler.java b/src/main/java/com/hbm/handler/nei/NEIUniversalHandler.java index 3f4fcbe67..0bb53100a 100644 --- a/src/main/java/com/hbm/handler/nei/NEIUniversalHandler.java +++ b/src/main/java/com/hbm/handler/nei/NEIUniversalHandler.java @@ -56,8 +56,10 @@ public abstract class NEIUniversalHandler extends TemplateRecipeHandler { PositionedStack[] input; PositionedStack[] output; PositionedStack machinePositioned; + Object originalInputInstance; public RecipeSet(ItemStack[][] in, ItemStack[][] out, Object originalInputInstance /* for custom machine lookup */) { + this.originalInputInstance = originalInputInstance; input = new PositionedStack[in.length]; int[][] inPos = NEIUniversalHandler.getInputCoords(in.length); diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index 5a3169ae0..d62452c94 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -504,6 +504,7 @@ public class OreDictManager { for(NTMMaterial mat : Mats.orderedList) { if(mat.smeltable == SmeltingBehavior.SMELTABLE) { if(mat.shapes.contains(MaterialShapes.CASTPLATE)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.CASTPLATE.name() + name, new ItemStack(ModItems.plate_cast, 1, mat.id)); + if(mat.shapes.contains(MaterialShapes.WELDEDPLATE)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.WELDEDPLATE.name() + name, new ItemStack(ModItems.plate_welded, 1, mat.id)); if(mat.shapes.contains(MaterialShapes.HEAVY_COMPONENT)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.HEAVY_COMPONENT.name() + name, new ItemStack(ModItems.heavy_component, 1, mat.id)); } } @@ -603,7 +604,7 @@ public class OreDictManager { public static void registerGroups() { ANY_PLASTIC.addPrefix(INGOT, true).addPrefix(DUST, true).addPrefix(BLOCK, true); ANY_HARDPLASTIC.addPrefix(INGOT, true); - ANY_RESISTANTALLOY.addPrefix(INGOT, true).addPrefix(DUST, true).addPrefix(PLATECAST, true).addPrefix(HEAVY_COMPONENT, true).addPrefix(BLOCK, true); + ANY_RESISTANTALLOY.addPrefix(INGOT, true).addPrefix(DUST, true).addPrefix(PLATECAST, true).addPrefix(PLATEWELDED, true).addPrefix(HEAVY_COMPONENT, true).addPrefix(BLOCK, true); ANY_TAR.addPrefix(ANY, false); } @@ -651,6 +652,7 @@ public class OreDictManager { public String crystal() { return CRYSTAL + mats[0]; } public String plate() { return PLATE + mats[0]; } public String plateCast() { return PLATECAST + mats[0]; } + public String plateWelded() { return PLATEWELDED + mats[0]; } public String heavyComp() { return HEAVY_COMPONENT + mats[0]; } public String billet() { return BILLET + mats[0]; } public String block() { return BLOCK + mats[0]; } @@ -892,19 +894,21 @@ public class OreDictManager { return this; } - public String any() { return ANY + groupName; } - public String nugget() { return NUGGET + groupName; } - public String tiny() { return TINY + groupName; } - public String ingot() { return INGOT + groupName; } - public String dustTiny() { return DUSTTINY + groupName; } - public String dust() { return DUST + groupName; } - public String gem() { return GEM + groupName; } - public String crystal() { return CRYSTAL + groupName; } - public String plate() { return PLATE + groupName; } - public String plateCast() { return PLATECAST + groupName; } - public String billet() { return BILLET + groupName; } - public String block() { return BLOCK + groupName; } - public String ore() { return ORE + groupName; } + public String any() { return ANY + groupName; } + public String nugget() { return NUGGET + groupName; } + public String tiny() { return TINY + groupName; } + public String ingot() { return INGOT + groupName; } + public String dustTiny() { return DUSTTINY + groupName; } + public String dust() { return DUST + groupName; } + public String gem() { return GEM + groupName; } + public String crystal() { return CRYSTAL + groupName; } + public String plate() { return PLATE + groupName; } + public String plateCast() { return PLATECAST + groupName; } + public String plateWelded() { return PLATEWELDED + groupName; } + public String heavyComp() { return HEAVY_COMPONENT + groupName; } + public String billet() { return BILLET + groupName; } + public String block() { return BLOCK + groupName; } + public String ore() { return ORE + groupName; } } private static void addReRegistration(String original, String additional) { diff --git a/src/main/java/com/hbm/inventory/OreNames.java b/src/main/java/com/hbm/inventory/OreNames.java index 7c2e3a947..9f4efc4e1 100644 --- a/src/main/java/com/hbm/inventory/OreNames.java +++ b/src/main/java/com/hbm/inventory/OreNames.java @@ -15,6 +15,7 @@ public class OreNames { public static final String CRYSTAL = "crystal"; public static final String PLATE = "plate"; public static final String PLATECAST = "plateTriple"; //cast plates are solid plates made from 3 ingots, turns out that's literally just a GT triple plate + public static final String PLATEWELDED = "plateSextuple"; public static final String BILLET = "billet"; public static final String BLOCK = "block"; public static final String ORE = "ore"; diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineArcWelder.java b/src/main/java/com/hbm/inventory/container/ContainerMachineArcWelder.java new file mode 100644 index 000000000..9c5d516b8 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineArcWelder.java @@ -0,0 +1,86 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotCraftingOutput; +import com.hbm.inventory.SlotUpgrade; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemMachineUpgrade; +import com.hbm.tileentity.machine.TileEntityMachineArcWelder; + +import api.hbm.energy.IBatteryItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerMachineArcWelder extends Container { + + private TileEntityMachineArcWelder welder; + + public ContainerMachineArcWelder(InventoryPlayer playerInv, TileEntityMachineArcWelder tile) { + welder = tile; + + //Inputs + this.addSlotToContainer(new Slot(tile, 0, 17, 36)); + this.addSlotToContainer(new Slot(tile, 1, 35, 36)); + this.addSlotToContainer(new Slot(tile, 2, 53, 36)); + //Output + this.addSlotToContainer(new SlotCraftingOutput(playerInv.player, tile, 3, 107, 36)); + //Battery + this.addSlotToContainer(new Slot(tile, 4, 152, 72)); + //Fluid ID + this.addSlotToContainer(new Slot(tile, 5, 17, 63)); + //Upgrades + this.addSlotToContainer(new SlotUpgrade(tile, 6, 89, 63)); + this.addSlotToContainer(new SlotUpgrade(tile, 7, 107, 63)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(playerInv, j + i * 9 + 9, 8 + j * 18, 122 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(playerInv, i, 8 + i * 18, 180)); + } + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return welder.isUseableByPlayer(player); + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(index); + + if(var4 != null && var4.getHasStack()) { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if(index <= 3) { + if(!this.mergeItemStack(var5, 4, this.inventorySlots.size(), true)) { + return null; + } + } else { + + if(var3.getItem() instanceof IBatteryItem || var3.getItem() == ModItems.battery_creative) { + if(!this.mergeItemStack(var5, 4, 5, false)) return null; + } else if(var3.getItem() instanceof ItemMachineUpgrade ) { + if(!this.mergeItemStack(var5, 6, 8, false)) return null; + } else { + if(!this.mergeItemStack(var5, 0, 3, false)) return null; + } + } + + if(var5.stackSize == 0) { + var4.putStack((ItemStack) null); + } else { + var4.onSlotChanged(); + } + } + + return var3; + } +} diff --git a/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java b/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java index d3c787fd1..4294759bb 100644 --- a/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java +++ b/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java @@ -200,8 +200,11 @@ public class FluidTank { * @param width * @param height */ - //TODO: add a directional parameter to allow tanks to grow horizontally public void renderTank(int x, int y, double z, int width, int height) { + renderTank(x, y, z, width, height, 0); + } + + public void renderTank(int x, int y, double z, int width, int height, int orientation) { GL11.glEnable(GL11.GL_BLEND); @@ -218,15 +221,32 @@ public class FluidTank { int i = (fluid * height) / maxFluid; double minX = x; - double maxX = x + width; - double minY = y + (height - i); - double maxY = y + height; + double maxX = x; + double minY = y; + double maxY = y; double minV = 1D - i / 16D; double maxV = 1D; double minU = 0D; double maxU = width / 16D; + if(orientation == 0) { + maxX += width; + minY += height - i; + maxY += height; + } + + if(orientation == 1) { + i = (fluid * width) / maxFluid; + maxX += i; + maxY += height; + + minV = 0; + maxV = height / 16D; + minU = 0D; + maxU = width / 16D; + } + Tessellator tessellator = Tessellator.instance; tessellator.startDrawingQuads(); tessellator.addVertexWithUV(minX, maxY, z, minU, maxV); diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineArcWelder.java b/src/main/java/com/hbm/inventory/gui/GUIMachineArcWelder.java new file mode 100644 index 000000000..1e55234b2 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineArcWelder.java @@ -0,0 +1,60 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerMachineArcWelder; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.machine.TileEntityMachineArcWelder; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUIMachineArcWelder extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_arc_welder.png"); + private TileEntityMachineArcWelder welder; + + public GUIMachineArcWelder(InventoryPlayer playerInv, TileEntityMachineArcWelder tile) { + super(new ContainerMachineArcWelder(playerInv, tile)); + + this.welder = tile; + this.xSize = 176; + this.ySize = 204; + } + + @Override + public void drawScreen(int x, int y, float interp) { + super.drawScreen(x, y, interp); + + welder.tank.renderTankInfo(this, x, y, guiLeft + 35, guiTop + 63, 34, 16); + this.drawElectricityInfo(this, x, y, guiLeft + 152, guiTop + 18, 16, 52, welder.power, welder.maxPower); + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.welder.hasCustomInventoryName() ? this.welder.getInventoryName() : I18n.format(this.welder.getInventoryName()); + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2 - 18, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float interp, int x, int y) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + int p = (int) (welder.power * 52 / welder.maxPower); + drawTexturedModalRect(guiLeft + 152, guiTop + 70 - p, 176, 52 - p, 16, p); + + int i = welder.progress * 33 / welder.processTime; + drawTexturedModalRect(guiLeft + 72, guiTop + 37, 192, 0, i, 14); + + if(welder.power >= welder.consumption) { + drawTexturedModalRect(guiLeft + 156, guiTop + 4, 176, 52, 9, 12); + } + + welder.tank.renderTank(guiLeft + 35, guiTop + 79, this.zLevel, 34, 16, 1); + } +} diff --git a/src/main/java/com/hbm/inventory/material/MaterialShapes.java b/src/main/java/com/hbm/inventory/material/MaterialShapes.java index 9b901a520..12a1f9a9d 100644 --- a/src/main/java/com/hbm/inventory/material/MaterialShapes.java +++ b/src/main/java/com/hbm/inventory/material/MaterialShapes.java @@ -20,6 +20,7 @@ public class MaterialShapes { public static final MaterialShapes DUST = new MaterialShapes(INGOT.quantity, "dust"); public static final MaterialShapes PLATE = new MaterialShapes(INGOT.quantity, "plate"); public static final MaterialShapes CASTPLATE = new MaterialShapes(INGOT.quantity * 3, "plateTriple"); + public static final MaterialShapes WELDEDPLATE = new MaterialShapes(INGOT.quantity * 6, "plateSextuple"); public static final MaterialShapes QUART = new MaterialShapes(162); public static final MaterialShapes BLOCK = new MaterialShapes(INGOT.quantity * 9, "block"); public static final MaterialShapes HEAVY_COMPONENT = new MaterialShapes(CASTPLATE.quantity * 256, "componentHeavy"); diff --git a/src/main/java/com/hbm/inventory/material/Mats.java b/src/main/java/com/hbm/inventory/material/Mats.java index e312ff256..74949b37f 100644 --- a/src/main/java/com/hbm/inventory/material/Mats.java +++ b/src/main/java/com/hbm/inventory/material/Mats.java @@ -54,7 +54,7 @@ public class Mats { public static final NTMMaterial MAT_PETCOKE = make( 1411, PETCOKE) .setConversion(MAT_CARBON, 4, 3); public static final NTMMaterial MAT_LIGCOKE = make( 1412, LIGCOKE) .setConversion(MAT_CARBON, 4, 3); public static final NTMMaterial MAT_GRAPHITE = make( 1420, GRAPHITE) .setConversion(MAT_CARBON, 1, 1); - public static final NTMMaterial MAT_IRON = makeSmeltable(2600, IRON, 0xFFFFFF, 0x353535, 0xFFA259).setShapes(CASTPLATE); + public static final NTMMaterial MAT_IRON = makeSmeltable(2600, IRON, 0xFFFFFF, 0x353535, 0xFFA259).setShapes(CASTPLATE, WELDEDPLATE); public static final NTMMaterial MAT_GOLD = makeSmeltable(7900, GOLD, 0xFFFF8B, 0xC26E00, 0xE8D754).setShapes(CASTPLATE); public static final NTMMaterial MAT_REDSTONE = makeSmeltable(_VS + 01, REDSTONE, 0xE3260C, 0x700E06, 0xFF1000); public static final NTMMaterial MAT_OBSIDIAN = makeSmeltable(_VS + 02, df("Obsidian"), 0x3D234D); @@ -94,9 +94,9 @@ public class Mats { public static final NTMMaterial MAT_GHIORSIUM = makeSmeltable(12836, GH336, 0xF4EFE1, 0x2A3306, 0xC6C6A1).setShapes(NUGGET, BILLET, INGOT, BLOCK); //Base metals - public static final NTMMaterial MAT_TITANIUM = makeSmeltable(2200, TI, 0xF7F3F2, 0x4F4C4B, 0xA99E79).setShapes(INGOT, DUST, PLATE, CASTPLATE, BLOCK, HEAVY_COMPONENT); + public static final NTMMaterial MAT_TITANIUM = makeSmeltable(2200, TI, 0xF7F3F2, 0x4F4C4B, 0xA99E79).setShapes(INGOT, DUST, PLATE, CASTPLATE, WELDEDPLATE, BLOCK, HEAVY_COMPONENT); public static final NTMMaterial MAT_COPPER = makeSmeltable(2900, CU, 0xFDCA88, 0x601E0D, 0xC18336).setShapes(WIRE, INGOT, DUST, PLATE, CASTPLATE, BLOCK, HEAVY_COMPONENT); - public static final NTMMaterial MAT_TUNGSTEN = makeSmeltable(7400, W, 0x868686, 0x000000, 0x977474).setShapes(WIRE, INGOT, DUST, CASTPLATE, BLOCK, HEAVY_COMPONENT); + public static final NTMMaterial MAT_TUNGSTEN = makeSmeltable(7400, W, 0x868686, 0x000000, 0x977474).setShapes(WIRE, INGOT, DUST, CASTPLATE, WELDEDPLATE, BLOCK, HEAVY_COMPONENT); public static final NTMMaterial MAT_ALUMINIUM = makeSmeltable(1300, AL, 0xFFFFFF, 0x344550, 0xD0B8EB).setShapes(WIRE, INGOT, DUST, PLATE, CASTPLATE, BLOCK, HEAVY_COMPONENT); public static final NTMMaterial MAT_LEAD = makeSmeltable(8200, PB, 0xA6A6B2, 0x03030F, 0x646470).setShapes(NUGGET, INGOT, DUST, PLATE, CASTPLATE, BLOCK, HEAVY_COMPONENT); public static final NTMMaterial MAT_BISMUTH = makeSmeltable(8300, BI, 0xB200FF).setShapes(NUGGET, BILLET, INGOT, DUST, BLOCK); @@ -106,13 +106,13 @@ public class Mats { public static final NTMMaterial MAT_BERYLLIUM = makeSmeltable(400, BE, 0xB2B2A6, 0x0F0F03, 0xAE9572).setShapes(NUGGET, INGOT, DUST, BLOCK); public static final NTMMaterial MAT_COBALT = makeSmeltable(2700, CO, 0xC2D1EE, 0x353554, 0x8F72AE).setShapes(NUGGET, DUSTTINY, BILLET, INGOT, DUST, BLOCK); public static final NTMMaterial MAT_BORON = makeSmeltable(500, B, 0xBDC8D2, 0x29343E, 0xAD72AE).setShapes(DUSTTINY, INGOT, DUST, BLOCK); - public static final NTMMaterial MAT_ZIRCONIUM = makeSmeltable(4000, ZR, 0xE3DCBE, 0x3E3719, 0xADA688).setShapes(NUGGET, DUSTTINY, BILLET, INGOT, DUST, CASTPLATE, BLOCK); + public static final NTMMaterial MAT_ZIRCONIUM = makeSmeltable(4000, ZR, 0xE3DCBE, 0x3E3719, 0xADA688).setShapes(NUGGET, DUSTTINY, BILLET, INGOT, DUST, CASTPLATE, WELDEDPLATE, BLOCK); public static final NTMMaterial MAT_LITHIUM = makeSmeltable(300, LI, 0xFFFFFF, 0x818181, 0xD6D6D6).setShapes(INGOT, DUST, BLOCK); public static final NTMMaterial MAT_CADMIUM = makeSmeltable(4800, CD, 0xFFFADE, 0x350000, 0xA85600).setShapes(INGOT, DUST); - public static final NTMMaterial MAT_OSMIRIDIUM = makeSmeltable(7699, OSMIRIDIUM, 0xDBE3EF, 0x7891BE, 0xACBDD9).setShapes(NUGGET, INGOT, CASTPLATE); + public static final NTMMaterial MAT_OSMIRIDIUM = makeSmeltable(7699, OSMIRIDIUM, 0xDBE3EF, 0x7891BE, 0xACBDD9).setShapes(NUGGET, INGOT, CASTPLATE, WELDEDPLATE); //Alloys - public static final NTMMaterial MAT_STEEL = makeSmeltable(_AS + 0, STEEL, 0xAFAFAF, 0x0F0F0F, 0x4A4A4A).setShapes(DUSTTINY, INGOT, DUST, PLATE, CASTPLATE, BLOCK, HEAVY_COMPONENT); + public static final NTMMaterial MAT_STEEL = makeSmeltable(_AS + 0, STEEL, 0xAFAFAF, 0x0F0F0F, 0x4A4A4A).setShapes(DUSTTINY, INGOT, DUST, PLATE, CASTPLATE, WELDEDPLATE, BLOCK, HEAVY_COMPONENT); public static final NTMMaterial MAT_MINGRADE = makeSmeltable(_AS + 1, MINGRADE, 0xFFBA7D, 0xAF1700, 0xE44C0F).setShapes(WIRE, INGOT, DUST, BLOCK); public static final NTMMaterial MAT_ALLOY = makeSmeltable(_AS + 2, ALLOY, 0xFF8330, 0x700000, 0xFF7318).setShapes(WIRE, INGOT, DUST, PLATE, CASTPLATE, BLOCK, HEAVY_COMPONENT); public static final NTMMaterial MAT_DURA = makeSmeltable(_AS + 3, DURA, 0x183039, 0x030B0B, 0x376373).setShapes(INGOT, DUST, BLOCK); @@ -120,10 +120,10 @@ public class Mats { public static final NTMMaterial MAT_DESH = makeSmeltable(_AS + 12, DESH, 0xFF6D6D, 0x720000, 0xF22929).setShapes(INGOT, DUST, CASTPLATE, BLOCK, HEAVY_COMPONENT); public static final NTMMaterial MAT_STAR = makeSmeltable(_AS + 5, STAR, 0xCCCCEA, 0x11111A, 0xA5A5D3).setShapes(INGOT, DUST, BLOCK); public static final NTMMaterial MAT_FERRO = makeSmeltable(_AS + 7, FERRO, 0xB7B7C9, 0x101022, 0x6B6B8B).setShapes(INGOT); - public static final NTMMaterial MAT_TCALLOY = makeSmeltable(_AS + 6, TCALLOY, 0xD4D6D6, 0x323D3D, 0x9CA6A6).setShapes(INGOT, DUST, CASTPLATE, HEAVY_COMPONENT); - public static final NTMMaterial MAT_CDALLOY = makeSmeltable(_AS + 13, CDALLOY, 0xF7DF8F, 0x604308, 0xFBD368).setShapes(INGOT, CASTPLATE, HEAVY_COMPONENT); + public static final NTMMaterial MAT_TCALLOY = makeSmeltable(_AS + 6, TCALLOY, 0xD4D6D6, 0x323D3D, 0x9CA6A6).setShapes(INGOT, DUST, CASTPLATE, WELDEDPLATE, HEAVY_COMPONENT); + public static final NTMMaterial MAT_CDALLOY = makeSmeltable(_AS + 13, CDALLOY, 0xF7DF8F, 0x604308, 0xFBD368).setShapes(INGOT, CASTPLATE, WELDEDPLATE, HEAVY_COMPONENT); public static final NTMMaterial MAT_MAGTUNG = makeSmeltable(_AS + 8, MAGTUNG, 0x22A2A2, 0x0F0F0F, 0x22A2A2).setShapes(INGOT, DUST, BLOCK); - public static final NTMMaterial MAT_CMB = makeSmeltable(_AS + 9, CMB, 0x6F6FB4, 0x000011, 0x6F6FB4).setShapes(INGOT, DUST, PLATE, CASTPLATE, BLOCK); + public static final NTMMaterial MAT_CMB = makeSmeltable(_AS + 9, CMB, 0x6F6FB4, 0x000011, 0x6F6FB4).setShapes(INGOT, DUST, PLATE, CASTPLATE, WELDEDPLATE, BLOCK); public static final NTMMaterial MAT_FLUX = makeAdditive(_AS + 10, df("Flux"), 0xF1E0BB, 0x6F6256, 0xDECCAD).setShapes(DUST); public static final NTMMaterial MAT_SLAG = makeSmeltable(_AS + 11, SLAG, 0x554940, 0x34281F, 0x6C6562).setShapes(BLOCK); public static final NTMMaterial MAT_MUD = makeSmeltable(_AS + 14, MUD, 0xBCB5A9, 0x481213, 0x96783B).setShapes(INGOT); diff --git a/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java b/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java new file mode 100644 index 000000000..8591f971c --- /dev/null +++ b/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java @@ -0,0 +1,200 @@ +package com.hbm.inventory.recipes; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; + +import static com.hbm.inventory.OreDictManager.*; + +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; +import com.hbm.inventory.FluidStack; +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.inventory.RecipesCommon.OreDictStack; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.material.Mats; +import com.hbm.inventory.recipes.loader.SerializableRecipe; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemFluidIcon; + +import net.minecraft.item.ItemStack; + +public class ArcWelderRecipes extends SerializableRecipe { + + public static List recipes = new ArrayList(); + + @Override + public void registerDefaults() { + + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.motor), 100, 200L, + new OreDictStack(IRON.plate(), 2), new ComparableStack(ModItems.coil_copper), new ComparableStack(ModItems.coil_copper_torus))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.motor), 100, 400L, + new OreDictStack(STEEL.plate(), 1), new ComparableStack(ModItems.coil_copper), new ComparableStack(ModItems.coil_copper_torus))); + + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.circuit_copper), 100, 1_000L, new FluidStack(Fluids.GAS, 250), + new ComparableStack(ModItems.circuit_aluminium, 1), new OreDictStack(NETHERQUARTZ.dust()), new ComparableStack(ModItems.wire_copper, 8))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.circuit_red_copper), 100, 2_500L, new FluidStack(Fluids.PETROLEUM, 250), + new ComparableStack(ModItems.circuit_copper, 1), new OreDictStack(GOLD.dust()), new ComparableStack(ModItems.wire_red_copper, 8))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.circuit_gold), 100, 10_000L, new FluidStack(Fluids.UNSATURATEDS, 250), + new ComparableStack(ModItems.circuit_red_copper, 1), new OreDictStack(ANY_PLASTIC.ingot()), new ComparableStack(ModItems.wire_gold, 8))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.circuit_schrabidium), 100, 50_000L, new FluidStack(Fluids.SOURGAS, 250), + new ComparableStack(ModItems.circuit_gold, 1), new OreDictStack(DESH.ingot()), new ComparableStack(ModItems.wire_schrabidium, 8))); + + //earlygame welded parts + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.plate_welded, 1, Mats.MAT_IRON.id), 100, 100L, + new OreDictStack(IRON.plateCast(), 2))); + //high-demand mid-game parts + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.plate_welded, 1, Mats.MAT_STEEL.id), 100, 500L, + new OreDictStack(STEEL.plateCast(), 2))); + //mid-game, single combustion engine running on LPG + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.plate_welded, 1, Mats.MAT_TITANIUM.id), 600, 50_000L, + new OreDictStack(TI.plateCast(), 2))); + //mid-game PWR + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.plate_welded, 1, Mats.MAT_ZIRCONIUM.id), 600, 10_000L, + new OreDictStack(ZR.plateCast(), 2))); + //late-game fusion + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.plate_welded, 1, Mats.MAT_TCALLOY.id), 1_200, 1_000_000L, new FluidStack(Fluids.OXYGEN, 1_000), + new OreDictStack(TCALLOY.plateCast(), 2))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.plate_welded, 1, Mats.MAT_CDALLOY.id), 1_200, 1_000_000L, new FluidStack(Fluids.OXYGEN, 1_000), + new OreDictStack(CDALLOY.plateCast(), 2))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.plate_welded, 1, Mats.MAT_TUNGSTEN.id), 1_200, 250_000L, new FluidStack(Fluids.OXYGEN, 1_000), + new OreDictStack(W.plateCast(), 2))); + //pre-DFC + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.plate_welded, 1, Mats.MAT_OSMIRIDIUM.id), 6_000, 20_000_000L, new FluidStack(Fluids.REFORMGAS, 16_000), + new OreDictStack(OSMIRIDIUM.plateCast(), 2))); + } + + public static HashMap getRecipes() { + + HashMap recipes = new HashMap(); + + for(ArcWelderRecipe recipe : ArcWelderRecipes.recipes) { + + int size = recipe.ingredients.length + (recipe.fluid != null ? 1 : 0); + Object[] array = new Object[size]; + + for(int i = 0; i < recipe.ingredients.length; i++) { + array[i] = recipe.ingredients[i]; + } + + if(recipe.fluid != null) array[size - 1] = ItemFluidIcon.make(recipe.fluid); + + recipes.put(array, recipe.output); + } + + return recipes; + } + + public static ArcWelderRecipe getRecipe(ItemStack... inputs) { + + outer: + for(ArcWelderRecipe recipe : recipes) { + + List recipeList = new ArrayList(); + for(AStack ingredient : recipe.ingredients) recipeList.add(ingredient); + + for(int i = 0; i < inputs.length; i++) { + + ItemStack inputStack = inputs[i]; + + if(inputStack != null) { + + boolean hasMatch = false; + Iterator iterator = recipeList.iterator(); + + while(iterator.hasNext()) { + AStack recipeStack = iterator.next(); + + if(recipeStack.matchesRecipe(inputStack, true) && inputStack.stackSize >= recipeStack.stacksize) { + hasMatch = true; + recipeList.remove(recipeStack); + break; + } + } + + if(!hasMatch) { + continue outer; + } + } + } + + if(recipeList.isEmpty()) return recipe; + } + + return null; + } + + @Override + public String getFileName() { + return "hbmArcWelder.json"; + } + + @Override + public Object getRecipeObject() { + return recipes; + } + + @Override + public void deleteRecipes() { + recipes.clear(); + } + + @Override + public void readRecipe(JsonElement recipe) { + JsonObject obj = (JsonObject) recipe; + + AStack[] inputs = this.readAStackArray(obj.get("inputs").getAsJsonArray()); + FluidStack fluid = obj.has("fluid") ? this.readFluidStack(obj.get("fluid").getAsJsonArray()) : null; + ItemStack output = this.readItemStack(obj.get("output").getAsJsonArray()); + int duration = obj.get("duration").getAsInt(); + long consumption = obj.get("consumption").getAsLong(); + + recipes.add(new ArcWelderRecipe(output, duration, consumption, fluid, inputs)); + } + + @Override + public void writeRecipe(Object obj, JsonWriter writer) throws IOException { + ArcWelderRecipe recipe = (ArcWelderRecipe) obj; + + writer.name("inputs").beginArray(); + for(AStack aStack : recipe.ingredients) { + this.writeAStack(aStack, writer); + } + writer.endArray(); + + if(recipe.fluid != null) { + writer.name("fluid"); + this.writeFluidStack(recipe.fluid, writer); + } + + this.writeItemStack(recipe.output, writer); + + writer.name("duration").value(recipe.duration); + writer.name("consumption").value(recipe.consumption); + } + + public static class ArcWelderRecipe { + + public AStack[] ingredients; + public FluidStack fluid; + public ItemStack output; + public int duration; + public long consumption; + + public ArcWelderRecipe(ItemStack output, int duration, long consumption, FluidStack fluid, AStack... ingredients) { + this.ingredients = ingredients; + this.fluid = fluid; + this.output = output; + this.duration = duration; + this.consumption = consumption; + } + + public ArcWelderRecipe(ItemStack output, int duration, long consumption, AStack... ingredients) { + this(output, duration, consumption, null, ingredients); + } + } +} diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index d136042b1..ae318932e 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -274,38 +274,37 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.machine_centrifuge, 1), new AStack[] {new ComparableStack(ModItems.centrifuge_element, 1), new OreDictStack(ANY_PLASTIC.ingot(), 2), new OreDictStack(STEEL.plate528(), 8), new OreDictStack(CU.plate(), 8), new ComparableStack(ModItems.circuit_copper, 1), }, 200); makeRecipe(new ComparableStack(ModBlocks.machine_gascent, 1), new AStack[] {new ComparableStack(ModItems.centrifuge_element, 4), new OreDictStack(ANY_PLASTIC.ingot(), 4), new OreDictStack(DESH.ingot(), 2), new OreDictStack(STEEL.plate528(), 8), new ComparableStack(ModItems.coil_tungsten, 4), new ComparableStack(ModItems.circuit_red_copper, 1) }, 300); makeRecipe(new ComparableStack(ModBlocks.machine_rtg_furnace_off, 1), new AStack[] {new ComparableStack(Blocks.furnace, 1), new ComparableStack(ModItems.rtg_unit, 3), new OreDictStack(PB.plate528(), 6), new OreDictStack(OreDictManager.getReflector(), 4), new OreDictStack(CU.plate(), 2), },150); - makeRecipe(new ComparableStack(ModBlocks.machine_diesel, 1), new AStack[] {new ComparableStack(ModItems.hull_small_steel, 1), new ComparableStack(ModItems.piston_selenium, 1), new OreDictStack(STEEL.ingot(), 6), new OreDictStack(CU.plate(), 4), new ComparableStack(ModItems.coil_copper, 4), }, 100); + makeRecipe(new ComparableStack(ModBlocks.machine_diesel, 1), new AStack[] {new ComparableStack(ModItems.hull_small_steel, 1), new ComparableStack(ModItems.piston_selenium, 1), new OreDictStack(IRON.plateWelded(), 1), new OreDictStack(CU.plate(), 4), new ComparableStack(ModItems.coil_copper, 4), }, 100); makeRecipe(new ComparableStack(ModBlocks.machine_selenium, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(TI.plate(), 6), new OreDictStack(CU.plate(), 8), new ComparableStack(ModItems.hull_big_steel, 1), new ComparableStack(ModItems.hull_small_steel, 9), new ComparableStack(ModItems.pedestal_steel, 1), new ComparableStack(ModItems.coil_copper, 4), },250); makeRecipe(new ComparableStack(ModBlocks.machine_rtg_grey, 1), new AStack[] {new ComparableStack(ModItems.rtg_unit, 3), new OreDictStack(STEEL.plate528(), 4), new ComparableStack(ModItems.wire_red_copper, 4), new OreDictStack(ANY_PLASTIC.ingot(), 3), },200); - makeRecipe(new ComparableStack(ModBlocks.machine_battery, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(S.dust(), 12), new OreDictStack(PB.dust(), 12), new OreDictStack(MINGRADE.ingot(), 2), new ComparableStack(ModItems.wire_red_copper, 4), },200); + makeRecipe(new ComparableStack(ModBlocks.machine_battery, 1), new AStack[] {new OreDictStack(STEEL.plateWelded(), 1), new OreDictStack(S.dust(), 12), new OreDictStack(PB.dust(), 12), new OreDictStack(MINGRADE.ingot(), 2), new ComparableStack(ModItems.wire_red_copper, 4), },200); makeRecipe(new ComparableStack(ModBlocks.machine_lithium_battery, 1), new AStack[] {new OreDictStack(ANY_PLASTIC.ingot(), 4), new OreDictStack(CO.dust(), 12), new OreDictStack(LI.dust(), 12), new OreDictStack(ALLOY.ingot(), 2), new ComparableStack(ModItems.wire_red_copper, 4), },400); makeRecipe(new ComparableStack(ModBlocks.machine_schrabidium_battery, 1), new AStack[] {new OreDictStack(DESH.ingot(), 4), new OreDictStack(NP237.dust(), 12), new OreDictStack(SA326.dust(), 12), new OreDictStack(SA326.ingot(), 2), new ComparableStack(ModItems.wire_schrabidium, 4), },800); makeRecipe(new ComparableStack(ModBlocks.machine_dineutronium_battery, 1), new AStack[] {new OreDictStack(DNT.ingot(), 24), new ComparableStack(ModItems.powder_spark_mix, 12), new ComparableStack(ModItems.battery_spark_cell_1000, 1), new OreDictStack(CMB.ingot(), 32), new ComparableStack(ModItems.coil_magnetized_tungsten, 8), },1600); - makeRecipe(new ComparableStack(ModBlocks.machine_shredder, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(STEEL.plate528(), 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.wire_red_copper, 2), new ComparableStack(ModBlocks.steel_beam, 2), new ComparableStack(Blocks.iron_bars, 2), new ComparableStack(ModBlocks.red_wire_coated, 1), },200); + makeRecipe(new ComparableStack(ModBlocks.machine_shredder, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 8), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModBlocks.steel_beam, 2), new ComparableStack(Blocks.iron_bars, 2) },200); makeRecipe(new ComparableStack(ModBlocks.machine_well, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 20), new ComparableStack(ModBlocks.steel_beam, 8), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.pipes_steel, 3), new ComparableStack(ModItems.drill_titanium, 1), new ComparableStack(ModItems.wire_red_copper, 6), },250); - makeRecipe(new ComparableStack(ModBlocks.machine_pumpjack, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 8), new OreDictStack(STEEL.block(), 8), new ComparableStack(ModItems.pipes_steel, 4), new ComparableStack(ModItems.tank_steel, 4), new OreDictStack(STEEL.ingot(), 24), new OreDictStack(STEEL.plate(), 16), new OreDictStack(AL.plate(), 6), new ComparableStack(ModItems.drill_titanium, 1), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.wire_red_copper, 8), },400); + makeRecipe(new ComparableStack(ModBlocks.machine_pumpjack, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 8), new OreDictStack(STEEL.plateWelded(), 8), new ComparableStack(ModItems.pipes_steel, 4), new ComparableStack(ModItems.tank_steel, 4), new OreDictStack(STEEL.plate(), 32), new ComparableStack(ModItems.drill_titanium, 1), new ComparableStack(ModItems.motor, 2) }, 400); makeRecipe(new ComparableStack(ModBlocks.machine_flare, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(IRON.ingot(), 12), new OreDictStack(CU.plate528(), 4), new ComparableStack(ModItems.tank_steel, 1), new ComparableStack(ModBlocks.deco_pipe_quad, 8), new ComparableStack(ModItems.hull_small_steel, 4), new ComparableStack(ModItems.thermo_element, 3), },200); - makeRecipe(new ComparableStack(ModBlocks.machine_coker, 1), new AStack[] {!exp ? new OreDictStack(STEEL.plate(), 24) : new OreDictStack(STEEL.heavyComp(), 2), new OreDictStack(IRON.ingot(), 12), new OreDictStack(CU.plate528(), 8), new OreDictStack(RUBBER.ingot(), 4), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModBlocks.steel_grate, 4) },200); - makeRecipe(new ComparableStack(ModBlocks.machine_refinery, 1), new AStack[] {!exp ? new OreDictStack(STEEL.plate528(), 16) : new OreDictStack(STEEL.heavyComp(), 1), new OreDictStack(CU.plate(), 16), new ComparableStack(ModItems.hull_big_steel, 6), new ComparableStack(ModItems.pipes_steel, 2), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModItems.circuit_red_copper, 1) },350); + makeRecipe(new ComparableStack(ModBlocks.machine_coker, 1), new AStack[] {!exp ? new OreDictStack(STEEL.plateWelded(), 4) : new OreDictStack(STEEL.heavyComp(), 2), new OreDictStack(IRON.ingot(), 12), new OreDictStack(CU.plate528(), 8), new OreDictStack(RUBBER.ingot(), 4), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModBlocks.steel_grate, 4) },200); + makeRecipe(new ComparableStack(ModBlocks.machine_refinery, 1), new AStack[] {!exp ? new OreDictStack(STEEL.plateWelded(), 3) : new OreDictStack(STEEL.heavyComp(), 1), new OreDictStack(CU.plate528(), 16), new ComparableStack(ModItems.hull_big_steel, 6), new ComparableStack(ModItems.pipes_steel, 2), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModItems.circuit_red_copper, 1) },350); makeRecipe(new ComparableStack(ModBlocks.machine_epress, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new ComparableStack(ModItems.plate_polymer, 4), new ComparableStack(ModItems.part_generic, 2, EnumPartType.PISTON_HYDRAULIC.ordinal()), new ComparableStack(ModItems.circuit_copper, 1) }, 100); makeRecipe(new ComparableStack(ModBlocks.machine_chemplant, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(CU.plate528(), 6), new ComparableStack(ModItems.tank_steel, 4), new ComparableStack(ModItems.hull_big_steel, 1), new ComparableStack(ModItems.coil_tungsten, 3), new ComparableStack(ModItems.circuit_copper, 2), new ComparableStack(ModItems.circuit_red_copper, 1), new ComparableStack(ModItems.plate_polymer, 8), },200); - makeRecipe(new ComparableStack(ModBlocks.machine_crystallizer, 1), new AStack[] {new ComparableStack(ModItems.hull_big_steel, 4), new ComparableStack(ModItems.pipes_steel, 1), new OreDictStack(DESH.ingot(), 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.blades_advanced_alloy, 2), new OreDictStack(STEEL.ingot(), 16), new OreDictStack(TI.plate(), 16), new ComparableStack(Blocks.glass, 4), new ComparableStack(ModItems.circuit_gold, 1), },400); + makeRecipe(new ComparableStack(ModBlocks.machine_crystallizer, 1), new AStack[] {new ComparableStack(ModItems.hull_big_steel, 4), new ComparableStack(ModItems.pipes_steel, 1), new OreDictStack(DESH.ingot(), 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.blades_advanced_alloy, 2), new OreDictStack(STEEL.plateWelded(), 4), new OreDictStack(TI.plate(), 16), new ComparableStack(Blocks.glass, 4), new ComparableStack(ModItems.circuit_gold, 1), },400); makeRecipe(new ComparableStack(ModBlocks.machine_fluidtank, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(STEEL.plate528(), 6), new ComparableStack(ModItems.hull_big_steel, 4), new OreDictStack(ANY_TAR.any(), 4), },150); - makeRecipe(new ComparableStack(ModBlocks.machine_bat9000, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 16), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 16), new ComparableStack(ModBlocks.steel_scaffold, 16), new OreDictStack(ANY_TAR.any(), 16), },150); - makeRecipe(new ComparableStack(ModBlocks.machine_orbus, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 12), new OreDictStack(BIGMT.plate(), 12), new ComparableStack(ModItems.coil_advanced_alloy, 12), new ComparableStack(ModItems.battery_sc_polonium, 1) }, 200); - makeRecipe(new ComparableStack(ModBlocks.machine_drill, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 6), new OreDictStack(STEEL.ingot(), 4), new ComparableStack(ModItems.wire_red_copper, 4), new ComparableStack(ModItems.circuit_copper, 1), new ComparableStack(ModItems.motor, 1), new OreDictStack(DURA.ingot(), 2), new ComparableStack(ModItems.bolt_dura_steel, 2), new ComparableStack(ModItems.drill_titanium, 1), },200); + makeRecipe(new ComparableStack(ModBlocks.machine_bat9000, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 16), new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 3), new ComparableStack(ModBlocks.steel_scaffold, 16), new OreDictStack(ANY_TAR.any(), 16), },150); + makeRecipe(new ComparableStack(ModBlocks.machine_orbus, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 8), new OreDictStack(BIGMT.plate(), 12), new ComparableStack(ModItems.coil_advanced_alloy, 12), new ComparableStack(ModItems.battery_sc_polonium, 1) }, 200); makeRecipe(new ComparableStack(ModBlocks.machine_mining_laser, 1), new AStack[] {new ComparableStack(ModItems.tank_steel, 3), !exp ? new OreDictStack(STEEL.plate528(), 16) : new OreDictStack(STEEL.heavyComp(), 3), new ComparableStack(ModItems.crystal_redstone, 3), new ComparableStack(Items.diamond, 3), new OreDictStack(ANY_PLASTIC.ingot(), 4), new ComparableStack(ModItems.motor, 3), !exp ? new OreDictStack(DURA.ingot(), 4) : new OreDictStack(DESH.heavyComp(), 1), new ComparableStack(ModItems.bolt_dura_steel, 6), new ComparableStack(ModBlocks.machine_battery, 3), },400); makeRecipe(new ComparableStack(ModBlocks.machine_turbofan, 1), new AStack[] {!exp ? new ComparableStack(ModItems.hull_big_steel, 1) : new OreDictStack(STEEL.heavyComp(), 1), new ComparableStack(ModItems.hull_big_titanium, 3), new ComparableStack(ModItems.hull_small_steel, 2), new ComparableStack(ModItems.turbine_tungsten, 1), new ComparableStack(ModItems.turbine_titanium, 7), new ComparableStack(ModItems.bolt_compound, 8), new OreDictStack(MINGRADE.ingot(), 12), new ComparableStack(ModItems.wire_red_copper, 24), },500); makeRecipe(new ComparableStack(ModBlocks.machine_turbinegas, 1), new AStack[] {!exp ? new ComparableStack(ModItems.hull_big_steel, 4) : new OreDictStack(STEEL.heavyComp(), 2), new ComparableStack(ModItems.hull_small_steel, 6), new ComparableStack(ModItems.generator_steel, 2), new ComparableStack(ModItems.bolt_compound, 4), new ComparableStack(ModBlocks.steel_scaffold, 8), new ComparableStack(ModBlocks.deco_pipe_quad, 4), new ComparableStack(ModItems.turbine_tungsten, 3), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.ingot_rubber, 4), new ComparableStack(ModItems.circuit_red_copper, 3)}, 600); makeRecipe(new ComparableStack(ModBlocks.machine_teleporter, 1), new AStack[] {new OreDictStack(TI.ingot(), 8), new OreDictStack(ALLOY.plate528(), 12), new ComparableStack(ModItems.wire_gold, 32), new ComparableStack(ModItems.entanglement_kit, 1), new ComparableStack(ModBlocks.machine_battery, 1) },300); - makeRecipe(new ComparableStack(ModBlocks.machine_schrabidium_transmutator, 1), new AStack[] {new OreDictStack(MAGTUNG.ingot(), 1), !exp ? new OreDictStack(TI.ingot(), 24) : new OreDictStack(TI.heavyComp(), 2), !exp ? new OreDictStack(ALLOY.plate(), 18) : new OreDictStack(ALLOY.heavyComp(), 1), new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModItems.plate_desh, 6), new OreDictStack(RUBBER.ingot(), 8), new ComparableStack(ModBlocks.machine_battery, 5), new ComparableStack(ModItems.circuit_gold, 5), },500); + makeRecipe(new ComparableStack(ModBlocks.machine_schrabidium_transmutator, 1), new AStack[] {new OreDictStack(MAGTUNG.ingot(), 1), !exp ? new OreDictStack(TI.ingot(), 24) : new OreDictStack(TI.heavyComp(), 2), !exp ? new OreDictStack(ALLOY.plate(), 18) : new OreDictStack(ALLOY.heavyComp(), 1), new OreDictStack(STEEL.plateWelded(), 12), new ComparableStack(ModItems.plate_desh, 6), new OreDictStack(RUBBER.ingot(), 8), new ComparableStack(ModBlocks.machine_battery, 5), new ComparableStack(ModItems.circuit_gold, 5), },500); makeRecipe(new ComparableStack(ModBlocks.fusion_conductor, 1), new AStack[] {new ComparableStack(ModItems.coil_advanced_alloy, 5), }, 100); makeRecipe(new ComparableStack(ModBlocks.fusion_center, 1), new AStack[] {new OreDictStack(ANY_HARDPLASTIC.ingot(), 4), new OreDictStack(STEEL.plate528(), 6), new ComparableStack(ModItems.wire_advanced_alloy, 24), },200); makeRecipe(new ComparableStack(ModBlocks.fusion_motor, 1), new AStack[] {new OreDictStack(TI.ingot(), 4), new OreDictStack(STEEL.ingot(), 2), new ComparableStack(ModItems.motor, 4), },250); - makeRecipe(new ComparableStack(ModBlocks.fusion_heater, 1), new AStack[] {new OreDictStack(W.ingot(), 4), new OreDictStack(STEEL.plate528(), 2), new OreDictStack(OreDictManager.getReflector(), 2), new OreDictStack(CU.plate(), 4), new ComparableStack(ModItems.magnetron, 1), new ComparableStack(ModItems.wire_advanced_alloy, 4), },150); + makeRecipe(new ComparableStack(ModBlocks.fusion_heater, 1), new AStack[] {new OreDictStack(W.plateWelded(), 1), new OreDictStack(STEEL.plateWelded(), 2), new OreDictStack(OreDictManager.getReflector(), 2), new ComparableStack(ModItems.magnetron, 1) }, 200); makeRecipe(new ComparableStack(ModBlocks.watz_element, 3), new AStack[] {new OreDictStack(STEEL.plateCast(), 2), new OreDictStack(ZR.ingot(), 2), new OreDictStack(BIGMT.ingot(), 2), new OreDictStack(ANY_HARDPLASTIC.ingot(), 4)},200); makeRecipe(new ComparableStack(ModBlocks.watz_cooler, 3), new AStack[] {new OreDictStack(STEEL.plateCast(), 2), new OreDictStack(CU.plateCast(), 4), new OreDictStack(RUBBER.ingot(), 2), }, 200); - makeRecipe(new ComparableStack(ModBlocks.watz_end, 3), new AStack[] {new OreDictStack(ANY_RESISTANTALLOY.plateCast()), new OreDictStack(B.ingot(), 3), new OreDictStack(STEEL.plate(), 9), }, 100); + makeRecipe(new ComparableStack(ModBlocks.watz_end, 3), new AStack[] {new OreDictStack(ANY_RESISTANTALLOY.plateWelded()), new OreDictStack(B.ingot(), 3), new OreDictStack(STEEL.plateWelded(), 2), }, 100); makeRecipe(new ComparableStack(ModBlocks.fwatz_hatch, 1), new AStack[] {new OreDictStack(W.ingot(), 6), new OreDictStack(CMB.plate(), 4), },250); makeRecipe(new ComparableStack(ModBlocks.fwatz_conductor, 1), new AStack[] {new OreDictStack(CMB.plate(), 2), new ComparableStack(ModItems.coil_magnetized_tungsten, 5), },250); makeRecipe(new ComparableStack(ModBlocks.fwatz_computer, 1), new AStack[] {new ComparableStack(ModBlocks.block_meteor, 1), new ComparableStack(ModItems.wire_magnetized_tungsten, 16), new OreDictStack(DIAMOND.dust(), 6), new OreDictStack(MAGTUNG.dust(), 6), new OreDictStack(DESH.dust(), 4), },300); @@ -441,7 +440,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.machine_fensu, 1), new AStack[] { new ComparableStack(ModItems.ingot_electronium, 32), new ComparableStack(ModBlocks.machine_dineutronium_battery, 16), - !exp ? new OreDictStack(STEEL.block(), 32) : new OreDictStack(STEEL.heavyComp(), 64), + !exp ? new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 64) : new OreDictStack(ANY_RESISTANTALLOY.heavyComp(), 64), new OreDictStack(DURA.block(), 16), new OreDictStack(STAR.block(), 64), new ComparableStack(ModBlocks.machine_transformer_dnt, 8), @@ -449,11 +448,11 @@ public class AssemblerRecipes { new ComparableStack(ModItems.powder_magic, 64), new ComparableStack(ModItems.plate_dineutronium, 24), new ComparableStack(ModItems.ingot_u238m2), - new OreDictStack(FIBER.ingot(), 128) + new ComparableStack(ModItems.ingot_cft, 128) }, 1200); makeRecipe(new ComparableStack(ModBlocks.struct_iter_core, 1), new AStack[] { - !exp ? new OreDictStack(STEEL.ingot(), 6) : new OreDictStack(STEEL.heavyComp(), 4), - !exp ? new OreDictStack(W.ingot(), 6) : new OreDictStack(W.heavyComp(), 1), + !exp ? new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 6) : new OreDictStack(ANY_RESISTANTALLOY.heavyComp(), 2), + !exp ? new OreDictStack(W.plateWelded(), 6) : new OreDictStack(W.heavyComp(), 1), new OreDictStack(OreDictManager.getReflector(), 12), new ComparableStack(ModItems.coil_advanced_alloy, 12), new OreDictStack(ANY_PLASTIC.ingot(), 8), @@ -566,7 +565,7 @@ public class AssemblerRecipes { }, 200); makeRecipe(new ComparableStack(ModBlocks.machine_chungus, 1), new AStack[] { new ComparableStack(ModItems.hull_big_steel, 6), - !exp ? new OreDictStack(STEEL.plate528(), 32) : new OreDictStack(STEEL.heavyComp(), 3), + !exp ? new OreDictStack(STEEL.plateWelded(), 16) : new OreDictStack(STEEL.heavyComp(), 3), !exp ? new OreDictStack(TI.plate528(), 12) : new OreDictStack(TI.heavyComp(), 1), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 16), new ComparableStack(ModItems.turbine_tungsten, 5), @@ -578,8 +577,8 @@ public class AssemblerRecipes { }, 600); makeRecipe(new ComparableStack(ModBlocks.machine_condenser_powered, 1), new AStack[] { - !exp ? new OreDictStack(STEEL.plateCast(), 16) : new OreDictStack(STEEL.heavyComp(), 3), - new OreDictStack(ANY_RESISTANTALLOY.ingot(), 16), + !exp ? new OreDictStack(STEEL.plateWelded(), 8) : new OreDictStack(STEEL.heavyComp(), 3), + new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 4), !exp ? new OreDictStack(CU.plate528(), 16) : new OreDictStack(CU.heavyComp(), 3), new ComparableStack(ModItems.motor_desh, 3), new ComparableStack(ModItems.pipes_steel, 4), diff --git a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java index 18c3f31e9..281d884e3 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -364,6 +364,14 @@ public class AnvilRecipes { new ComparableStack(ModItems.plate_polymer, 8) }, new AnvilOutput(new ItemStack(ModBlocks.machine_boiler))).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( + new AStack[] { + new OreDictStack(STEEL.plateCast(), 4), + new OreDictStack(W.ingot(), 8), + new ComparableStack(ModBlocks.machine_transformer, 1), + new ComparableStack(ModItems.arc_electrode, 2) + }, new AnvilOutput(new ItemStack(ModBlocks.machine_arc_welder))).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] { new OreDictStack(STEEL.plateCast(), 8), diff --git a/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java b/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java index cf6ed2490..8149dfaba 100644 --- a/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java +++ b/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java @@ -64,6 +64,7 @@ public abstract class SerializableRecipe { recipeHandlers.add(new CompressorRecipes()); recipeHandlers.add(new ElectrolyserFluidRecipes()); recipeHandlers.add(new ElectrolyserMetalRecipes()); + recipeHandlers.add(new ArcWelderRecipes()); recipeHandlers.add(new MatDistribution()); recipeHandlers.add(new CustomMachineRecipes()); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 14e3d76f4..bf75c0f59 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -778,6 +778,7 @@ public class ModItems { public static Item mold; public static Item scraps; public static Item plate_cast; + public static Item plate_welded; public static Item heavy_component; public static Item part_lithium; @@ -3259,6 +3260,7 @@ public class ModItems { mold = new ItemMold().setUnlocalizedName("mold").setCreativeTab(MainRegistry.controlTab); scraps = new ItemScraps().aot(Mats.MAT_BISMUTH, "scraps_bismuth").setUnlocalizedName("scraps").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":scraps"); plate_cast = new ItemAutogen(MaterialShapes.CASTPLATE).aot(Mats.MAT_BISMUTH, "plate_cast_bismuth").setUnlocalizedName("plate_cast").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_cast"); + plate_welded = new ItemAutogen(MaterialShapes.WELDEDPLATE).setUnlocalizedName("plate_welded").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_welded"); heavy_component = new ItemAutogen(MaterialShapes.HEAVY_COMPONENT).setUnlocalizedName("heavy_component").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":heavy_component"); part_lithium = new Item().setUnlocalizedName("part_lithium").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":part_lithium"); @@ -3274,7 +3276,6 @@ public class ModItems { laser_crystal_digamma = new ItemFELCrystal(EnumWavelengths.DRX).setUnlocalizedName("laser_crystal_digamma").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":laser_crystal_digamma"); thermo_element = new Item().setUnlocalizedName("thermo_element").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":thermo_element"); - //limiter = new Item().setUnlocalizedName("limiter").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":limiter"); catalytic_converter = new Item().setUnlocalizedName("catalytic_converter").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":catalytic_converter"); antiknock = new Item().setUnlocalizedName("antiknock").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":antiknock"); @@ -5995,6 +5996,7 @@ public class ModItems { //Heavy/Cast Plate GameRegistry.registerItem(plate_cast, plate_cast.getUnlocalizedName()); + GameRegistry.registerItem(plate_welded, plate_welded.getUnlocalizedName()); GameRegistry.registerItem(heavy_component, heavy_component.getUnlocalizedName()); //Boards diff --git a/src/main/java/com/hbm/lib/HbmWorldGen.java b/src/main/java/com/hbm/lib/HbmWorldGen.java index b832541ce..96fc5134f 100644 --- a/src/main/java/com/hbm/lib/HbmWorldGen.java +++ b/src/main/java/com/hbm/lib/HbmWorldGen.java @@ -61,6 +61,7 @@ import net.minecraft.world.biome.BiomeGenForest; import net.minecraft.world.biome.BiomeGenJungle; import net.minecraft.world.biome.BiomeGenRiver; import net.minecraft.world.chunk.IChunkProvider; +import net.minecraft.world.gen.ChunkProviderFlat; import net.minecraft.world.gen.feature.WorldGenMinable; import net.minecraftforge.common.util.ForgeDirection; import cpw.mods.fml.common.IWorldGenerator; @@ -221,8 +222,15 @@ public class HbmWorldGen implements IWorldGenerator { (new WorldGenMinable(ModBlocks.ore_australium, 50)).generate(world, rand, randPosX, randPosY, randPosZ); } } + + boolean enableDungeons = true; + + if(world.getChunkProvider() instanceof ChunkProviderFlat) { + ChunkProviderFlat provider = (ChunkProviderFlat) world.getChunkProvider(); + enableDungeons = provider.hasDungeons; + } - if(GeneralConfig.enableDungeons && world.provider.isSurfaceWorld()) { + if(GeneralConfig.enableDungeons && world.provider.isSurfaceWorld() && enableDungeons) { if(MobConfig.enableHives && rand.nextInt(MobConfig.hiveSpawn) == 0) { int x = i + rand.nextInt(16) + 8; diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index da10a8299..1db22f6d1 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4740)"; + public static final String VERSION = "1.0.27 BETA (4746)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 8b4ff3564..7f4a5edad 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -1852,6 +1852,23 @@ public class ClientProxy extends ServerProxy { Minecraft.getMinecraft().effectRenderer.addEffect(text); } + if("debugdrone".equals(type)) { + Item held = player.getHeldItem() == null ? null : player.getHeldItem().getItem(); + + if(held == ModItems.drone || + held == Item.getItemFromBlock(ModBlocks.drone_crate_provider) || + held == Item.getItemFromBlock(ModBlocks.drone_crate_requester) || + held == Item.getItemFromBlock(ModBlocks.drone_dock) || + held == Item.getItemFromBlock(ModBlocks.drone_waypoint_request)) { + double mX = data.getDouble("mX"); + double mY = data.getDouble("mY"); + double mZ = data.getDouble("mZ"); + int color = data.getInteger("color"); + ParticleDebugLine text = new ParticleDebugLine(world, x, y, z, mX, mY, mZ, color); + Minecraft.getMinecraft().effectRenderer.addEffect(text); + } + } + if("network".equals(type)) { ParticleDebug debug = null; double mX = data.getDouble("mX"); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 06b7eef97..d0815eb79 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -790,10 +790,10 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModItems.ams_catalyst_schrabidium, 1), new Object[] { ModItems.ams_catalyst_blank, ModItems.rune_dagaz, ModItems.rune_hagalaz, ModItems.rune_thurisaz, ModItems.rune_thurisaz, SA326.dust(), SA326.dust(), SA326.dust(), SA326.dust() }); addShapelessAuto(new ItemStack(ModItems.ams_catalyst_dineutronium, 1), new Object[] { ModItems.ams_catalyst_blank, ModItems.rune_hagalaz, ModItems.rune_hagalaz, ModItems.rune_thurisaz, ModItems.rune_thurisaz, DNT.dust(), DNT.dust(), DNT.dust(), DNT.dust() }); addRecipeAuto(new ItemStack(ModBlocks.dfc_core, 1), new Object[] { "DLD", "LML", "DLD", 'D', ModItems.ingot_bismuth, 'L', DNT.block(), 'M', KEY_CIRCUIT_BISMUTH }); - addRecipeAuto(new ItemStack(ModBlocks.dfc_emitter, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateCast(), 'D', ModItems.plate_desh, 'T', ModBlocks.machine_transformer_dnt, 'X', ModItems.crystal_xen, 'L', ModItems.sat_head_laser }); - addRecipeAuto(new ItemStack(ModBlocks.dfc_receiver, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateCast(), 'D', ModItems.plate_desh, 'T', ModBlocks.machine_transformer_dnt, 'X', ModBlocks.block_dineutronium, 'L', ModItems.hull_small_steel }); - addRecipeAuto(new ItemStack(ModBlocks.dfc_injector, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateCast(), 'D', CMB.plate(), 'T', ModBlocks.machine_fluidtank, 'X', ModItems.motor, 'L', ModItems.pipes_steel }); - addRecipeAuto(new ItemStack(ModBlocks.dfc_stabilizer, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateCast(), 'D', ModItems.plate_desh, 'T', ModItems.singularity_spark, 'X', ModItems.magnet_circular, 'L', ModItems.crystal_xen }); + addRecipeAuto(new ItemStack(ModBlocks.dfc_emitter, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateWelded(), 'D', ModItems.plate_desh, 'T', ModBlocks.machine_transformer_dnt, 'X', ModItems.crystal_xen, 'L', ModItems.sat_head_laser }); + addRecipeAuto(new ItemStack(ModBlocks.dfc_receiver, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateWelded(), 'D', ModItems.plate_desh, 'T', ModBlocks.machine_transformer_dnt, 'X', ModBlocks.block_dineutronium, 'L', ModItems.hull_small_steel }); + addRecipeAuto(new ItemStack(ModBlocks.dfc_injector, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateWelded(), 'D', CMB.plate(), 'T', ModBlocks.machine_fluidtank, 'X', ModItems.motor, 'L', ModItems.pipes_steel }); + addRecipeAuto(new ItemStack(ModBlocks.dfc_stabilizer, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateWelded(), 'D', ModItems.plate_desh, 'T', ModItems.singularity_spark, 'X', ModItems.magnet_circular, 'L', ModItems.crystal_xen }); addRecipeAuto(new ItemStack(ModBlocks.barrel_plastic, 1), new Object[] { "IPI", "I I", "IPI", 'I', ModItems.plate_polymer, 'P', AL.plate() }); addRecipeAuto(new ItemStack(ModBlocks.barrel_iron, 1), new Object[] { "IPI", "I I", "IPI", 'I', IRON.plate(), 'P', IRON.ingot() }); addShapelessAuto(new ItemStack(ModBlocks.barrel_iron, 1), new Object[] { ModBlocks.barrel_corroded, ANY_TAR.any() }); @@ -882,7 +882,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.rbmk_steam_outlet, 1), new Object[] { "SCS", "CBC", "SCS", 'S', STEEL.ingot(), 'C', CU.plate(), 'B', ModItems.tank_steel }); //addRecipeAuto(new ItemStack(ModBlocks.rbmk_heatex, 1), new Object[] { "SCS", "CBC", "SCS", 'S', STEEL.ingot(), 'C', CU.plate(), 'B', ModItems.pipes_steel }); - addRecipeAuto(new ItemStack(ModBlocks.pwr_fuel, 4), new Object[] { "LZL", "LZL", "LZL", 'L', PB.plate528(), 'Z', ZR.plateCast() }); + addRecipeAuto(new ItemStack(ModBlocks.pwr_fuel, 4), new Object[] { "LZL", "L L", "LZL", 'L', PB.plate528(), 'Z', ZR.plateWelded() }); addRecipeAuto(new ItemStack(ModBlocks.pwr_control, 4), new Object[] { "SBS", "MBM", "SBS", 'S', STEEL.plate528(), 'B', B.ingot(), 'M', ModItems.motor }); addRecipeAuto(new ItemStack(ModBlocks.pwr_channel, 4), new Object[] { "CPC", "BPB", "CPC", 'C', CU.ingot(), 'P', ModBlocks.deco_pipe_quad, 'B', ANY_PLASTIC.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.pwr_heatex, 4), new Object[] { "CSC", "SMS", "CSC", 'C', CU.plateCast(), 'S', STEEL.plate528(), 'M', ModItems.motor }); @@ -997,9 +997,9 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL.ordinal()), new Object[] { "PPP", "HCH", " B ", 'P', ANY_PLASTIC.ingot(), 'H', ModItems.hull_small_steel, 'C', ModItems.circuit_copper, 'B', ModBlocks.crate_steel }); addRecipeAuto(new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_CHUNKLOADING.ordinal()), new Object[] { "E", "D", 'E', Items.ender_pearl, 'D', new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL.ordinal()) }); - addRecipeAuto(new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_EXPRESS.ordinal()), new Object[] { " P ", "KDK", " P ", 'P', ModItems.plate_desh, 'K', Fluids.KEROSENE.getDict(1_000), 'D', new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL.ordinal()) }); + addRecipeAuto(new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_EXPRESS.ordinal()), new Object[] { " P ", "KDK", " P ", 'P', TI.plateWelded(), 'K', Fluids.KEROSENE.getDict(1_000), 'D', new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL.ordinal()) }); addRecipeAuto(new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_EXPRESS_CHUNKLOADING.ordinal()), new Object[] { "E", "D", 'E', Items.ender_pearl, 'D', new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_EXPRESS.ordinal()) }); - addRecipeAuto(new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_EXPRESS_CHUNKLOADING.ordinal()), new Object[] { " P ", "KDK", " P ", 'P', ModItems.plate_desh, 'K', Fluids.KEROSENE.getDict(1_000), 'D', new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_CHUNKLOADING.ordinal()) }); + addRecipeAuto(new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_EXPRESS_CHUNKLOADING.ordinal()), new Object[] { " P ", "KDK", " P ", 'P', TI.plateWelded(), 'K', Fluids.KEROSENE.getDict(1_000), 'D', new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_CHUNKLOADING.ordinal()) }); addShapelessAuto(new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL.ordinal()), new Object[] { new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_CHUNKLOADING.ordinal()) }); addShapelessAuto(new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_EXPRESS.ordinal()), new Object[] { new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_EXPRESS_CHUNKLOADING.ordinal()) }); addRecipeAuto(new ItemStack(ModItems.drone, 1, EnumDroneType.REQUEST.ordinal()), new Object[] { "E", "D", 'E', ModItems.circuit_red_copper, 'D', new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_EXPRESS.ordinal()) }); diff --git a/src/main/java/com/hbm/main/NEIConfig.java b/src/main/java/com/hbm/main/NEIConfig.java index 8f3f93532..dc6b9cc4a 100644 --- a/src/main/java/com/hbm/main/NEIConfig.java +++ b/src/main/java/com/hbm/main/NEIConfig.java @@ -76,6 +76,7 @@ public class NEIConfig implements IConfigureNEI { registerHandler(new ElectrolyserFluidHandler()); registerHandler(new ElectrolyserMetalHandler()); registerHandler(new AshpitHandler()); + registerHandler(new ArcWelderHandler()); for(MachineConfiguration conf : CustomMachineConfigJSON.niceList) registerHandlerBypass(new CustomMachineHandler(conf)); diff --git a/src/main/java/com/hbm/particle/ParticleHadron.java b/src/main/java/com/hbm/particle/ParticleHadron.java index 923ca8b58..46b5e3d7c 100644 --- a/src/main/java/com/hbm/particle/ParticleHadron.java +++ b/src/main/java/com/hbm/particle/ParticleHadron.java @@ -6,10 +6,12 @@ import com.hbm.lib.RefStrings; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.Minecraft; import net.minecraft.client.particle.EntityFX; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.texture.TextureManager; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; @@ -50,11 +52,16 @@ public class ParticleHadron extends EntityFX { float scale = (this.particleAge + interp) * 0.15F; tess.setColorRGBA_F(1.0F, 1.0F, 1.0F, this.particleAlpha); + + EntityPlayer player = Minecraft.getMinecraft().thePlayer; + double dX = player.lastTickPosX + (player.posX - player.lastTickPosX) * (double)interp; + double dY = player.lastTickPosY + (player.posY - player.lastTickPosY) * (double)interp; + double dZ = player.lastTickPosZ + (player.posZ - player.lastTickPosZ) * (double)interp; - float pX = (float) (this.prevPosX + (this.posX - this.prevPosX) * (double)interp - interpPosX); - float pY = (float) (this.prevPosY + (this.posY - this.prevPosY) * (double)interp - interpPosY); - float pZ = (float) (this.prevPosZ + (this.posZ - this.prevPosZ) * (double)interp - interpPosZ); - + double pX = this.prevPosX + (this.posX - this.prevPosX) * (double) interp - dX; + double pY = this.prevPosY + (this.posY - this.prevPosY) * (double) interp - dY; + double pZ = this.prevPosZ + (this.posZ - this.prevPosZ) * (double) interp - dZ; + tess.addVertexWithUV((double)(pX - x * scale - tx * scale), (double)(pY - y * scale), (double)(pZ - z * scale - tz * scale), 1, 1); tess.addVertexWithUV((double)(pX - x * scale + tx * scale), (double)(pY + y * scale), (double)(pZ - z * scale + tz * scale), 1, 0); tess.addVertexWithUV((double)(pX + x * scale + tx * scale), (double)(pY + y * scale), (double)(pZ + z * scale + tz * scale), 0, 0); @@ -63,6 +70,7 @@ public class ParticleHadron extends EntityFX { GL11.glPolygonOffset(0.0F, 0.0F); GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F); + GL11.glDisable(GL11.GL_BLEND); GL11.glEnable(GL11.GL_LIGHTING); } } diff --git a/src/main/java/com/hbm/render/tileentity/RenderArcWelder.java b/src/main/java/com/hbm/render/tileentity/RenderArcWelder.java index f7b1ef53c..e87c1d7e4 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderArcWelder.java +++ b/src/main/java/com/hbm/render/tileentity/RenderArcWelder.java @@ -6,14 +6,21 @@ import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; import com.hbm.main.ResourceManager; import com.hbm.render.item.ItemRenderBase; +import com.hbm.render.util.RenderDecoItem; +import com.hbm.tileentity.machine.TileEntityMachineArcWelder; +import net.minecraft.client.renderer.entity.RenderItem; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.entity.item.EntityItem; import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.client.IItemRenderer; public class RenderArcWelder extends TileEntitySpecialRenderer implements IItemRendererProvider { - + + private RenderItem itemRenderer = new RenderDecoItem(this); + @Override public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { GL11.glPushMatrix(); @@ -33,12 +40,35 @@ public class RenderArcWelder extends TileEntitySpecialRenderer implements IItemR bindTexture(ResourceManager.arc_welder_tex); ResourceManager.arc_welder.renderAll(); + TileEntityMachineArcWelder welder = (TileEntityMachineArcWelder) tile; + if(welder.display != null) { + GL11.glPushMatrix(); + GL11.glTranslated(0.0625D * 2.5D, 1.125D, 0D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glRotatef(90, 0F, 1F, 0F); + GL11.glRotatef(-90, 1F, 0F, 0F); + + if(welder.display != null) { + ItemStack stack = welder.display.copy(); + + EntityItem item = new EntityItem(null, 0.0D, 0.0D, 0.0D, stack); + item.getEntityItem().stackSize = 1; + item.hoverStart = 0.0F; + + RenderItem.renderInFrame = true; + GL11.glScaled(1.5, 1.5, 1.5); + this.itemRenderer.doRender(item, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); + RenderItem.renderInFrame = false; + } + GL11.glPopMatrix(); + } + GL11.glPopMatrix(); } @Override public Item getItemForRenderer() { - return Item.getItemFromBlock(ModBlocks.radio_telex); + return Item.getItemFromBlock(ModBlocks.machine_arc_welder); } @Override @@ -46,10 +76,9 @@ public class RenderArcWelder extends TileEntitySpecialRenderer implements IItemR return new ItemRenderBase( ) { public void renderInventory() { GL11.glTranslated(0, -2, 0); - GL11.glScaled(6, 6, 6); + GL11.glScaled(4, 4, 4); } public void renderCommon() { - GL11.glTranslated(0, 0, -0.5); bindTexture(ResourceManager.arc_welder_tex); ResourceManager.arc_welder.renderAll(); }}; diff --git a/src/main/java/com/hbm/render/util/RenderDecoItem.java b/src/main/java/com/hbm/render/util/RenderDecoItem.java index bfca8e9ff..b7e6d2a70 100644 --- a/src/main/java/com/hbm/render/util/RenderDecoItem.java +++ b/src/main/java/com/hbm/render/util/RenderDecoItem.java @@ -1,6 +1,7 @@ package com.hbm.render.util; import net.minecraft.client.renderer.entity.RenderItem; +import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.item.ItemStack; @@ -9,7 +10,9 @@ import net.minecraft.item.ItemStack; * @author hbm */ public class RenderDecoItem extends RenderItem { + public RenderDecoItem(TileEntitySpecialRenderer render) { + this.setRenderManager(RenderManager.instance); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java index 0fa67c699..40b8b27e3 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java @@ -68,7 +68,7 @@ public class TileEntityFEL extends TileEntityMachineBase implements IEnergyUser, if(!worldObj.isRemote) { ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); - this.trySubscribe(worldObj, xCoord + dir.offsetX * -5, yCoord + 1, zCoord + dir.offsetZ * -5, dir); + this.trySubscribe(worldObj, xCoord + dir.offsetX * -5, yCoord + 1, zCoord + dir.offsetZ * -5, dir.getOpposite()); this.power = Library.chargeTEFromItems(slots, 0, power, maxPower); if(this.isOn && !(this.slots[1] == null)) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java index f2099415d..5373ff76c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java @@ -1,20 +1,53 @@ package com.hbm.tileentity.machine; +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.inventory.UpgradeManager; +import com.hbm.inventory.container.ContainerMachineArcWelder; +import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.inventory.gui.GUIMachineArcWelder; +import com.hbm.inventory.recipes.ArcWelderRecipes; +import com.hbm.inventory.recipes.ArcWelderRecipes.ArcWelderRecipe; +import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; +import com.hbm.lib.Library; +import com.hbm.packet.AuxParticlePacketNT; +import com.hbm.packet.PacketDispatcher; +import com.hbm.tileentity.IConditionalInvAccess; +import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.fauxpointtwelve.BlockPos; +import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IEnergyUser; import api.hbm.fluid.IFluidStandardReceiver; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineArcWelder extends TileEntityMachineBase implements IEnergyUser, IFluidStandardReceiver { +public class TileEntityMachineArcWelder extends TileEntityMachineBase implements IEnergyUser, IFluidStandardReceiver, IConditionalInvAccess, IGUIProvider { public long power; - public long maxPower; + public long maxPower = 2_000; + public long consumption; + + public int progress; + public int processTime = 1; public FluidTank tank; + public ItemStack display; public TileEntityMachineArcWelder() { super(8); + this.tank = new FluidTank(Fluids.NONE, 24_000); } @Override @@ -25,6 +58,174 @@ public class TileEntityMachineArcWelder extends TileEntityMachineBase implements @Override public void updateEntity() { + if(!worldObj.isRemote) { + + this.power = Library.chargeTEFromItems(slots, 4, power, maxPower); + this.tank.setType(5, slots); + + if(worldObj.getTotalWorldTime() % 20 == 0) { + for(DirPos pos : getConPos()) { + this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + if(tank.getTankType() != Fluids.NONE) this.trySubscribe(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + + ArcWelderRecipe recipe = ArcWelderRecipes.getRecipe(slots[0], slots[1], slots[2]); + long intendedMaxPower; + + UpgradeManager.eval(slots, 6, 7); + int redLevel = Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 3); + int blueLevel = Math.min(UpgradeManager.getLevel(UpgradeType.POWER), 3); + + if(recipe != null) { + this.processTime = recipe.duration - (recipe.duration * redLevel / 6) + (recipe.duration * blueLevel / 3); + this.consumption = recipe.consumption + (recipe.consumption * redLevel) - (recipe.consumption * blueLevel / 6); + intendedMaxPower = recipe.consumption * 20; + + if(canProcess(recipe)) { + this.progress++; + this.power -= this.consumption; + + if(progress >= processTime) { + this.progress = 0; + this.consumeItems(recipe); + + if(slots[3] == null) { + slots[3] = recipe.output.copy(); + } else { + slots[3].stackSize += recipe.output.stackSize; + } + + this.markDirty(); + } + + if(worldObj.getTotalWorldTime() % 2 == 0) { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + NBTTagCompound dPart = new NBTTagCompound(); + dPart.setString("type", worldObj.getTotalWorldTime() % 20 == 0 ? "tau" : "hadron"); + dPart.setByte("count", (byte) 5); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(dPart, xCoord + 0.5 - dir.offsetX * 0.5, yCoord + 1.25, zCoord + 0.5 - dir.offsetZ * 0.5), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 25)); + } + + } else { + this.progress = 0; + } + + } else { + this.progress = 0; + this.consumption = 100; + intendedMaxPower = 2000; + } + + this.maxPower = Math.max(intendedMaxPower, power); + + NBTTagCompound data = new NBTTagCompound(); + data.setLong("power", power); + data.setLong("maxPower", maxPower); + data.setLong("consumption", consumption); + data.setInteger("progress", progress); + data.setInteger("processTime", processTime); + if(recipe != null) { + data.setInteger("display", Item.getIdFromItem(recipe.output.getItem())); + data.setInteger("displayMeta", recipe.output.getItemDamage()); + } + this.tank.writeToNBT(data, "t"); + this.networkPack(data, 25); + } + } + + public boolean canProcess(ArcWelderRecipe recipe) { + + if(this.power < recipe.consumption) return false; + + if(recipe.fluid != null) { + if(this.tank.getTankType() != recipe.fluid.type) return false; + if(this.tank.getFill() < recipe.fluid.fill) return false; + } + + if(slots[3] != null) { + if(slots[3].getItem() != recipe.output.getItem()) return false; + if(slots[3].getItemDamage() != recipe.output.getItemDamage()) return false; + if(slots[3].stackSize + recipe.output.stackSize > slots[3].getMaxStackSize()) return false; + } + + return true; + } + + public void consumeItems(ArcWelderRecipe recipe) { + + for(AStack aStack : recipe.ingredients) { + + for(int i = 0; i < 3; i++) { + ItemStack stack = slots[i]; + if(aStack.matchesRecipe(stack, true) && stack.stackSize >= aStack.stacksize) { + this.decrStackSize(i, aStack.stacksize); + break; + } + } + } + + if(recipe.fluid != null) { + this.tank.setFill(tank.getFill() - recipe.fluid.fill); + } + } + + protected DirPos[] getConPos() { + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + return new DirPos[] { + new DirPos(xCoord + dir.offsetX, yCoord, zCoord + dir.offsetZ, dir), + new DirPos(xCoord + dir.offsetX + rot.offsetX, yCoord, zCoord + dir.offsetZ + rot.offsetZ, dir), + new DirPos(xCoord + dir.offsetX - rot.offsetX, yCoord, zCoord + dir.offsetZ - rot.offsetZ, dir), + new DirPos(xCoord - dir.offsetX * 2, yCoord, zCoord - dir.offsetZ * 2, dir.getOpposite()), + new DirPos(xCoord - dir.offsetX * 2 + rot.offsetX, yCoord, zCoord - dir.offsetZ * 2 + rot.offsetZ, dir.getOpposite()), + new DirPos(xCoord - dir.offsetX * 2 - rot.offsetX, yCoord, zCoord - dir.offsetZ * 2 - rot.offsetZ, dir.getOpposite()), + new DirPos(xCoord + rot.offsetX * 2, yCoord, zCoord + rot.offsetZ * 2, rot), + new DirPos(xCoord - dir.offsetX + rot.offsetX * 2, yCoord, zCoord - dir.offsetZ + rot.offsetZ * 2, rot), + new DirPos(xCoord - rot.offsetX * 2, yCoord, zCoord - rot.offsetZ * 2, rot.getOpposite()), + new DirPos(xCoord - dir.offsetX - rot.offsetX * 2, yCoord, zCoord - dir.offsetZ - rot.offsetZ * 2, rot.getOpposite()) + }; + } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + this.power = nbt.getLong("power"); + this.maxPower = nbt.getLong("maxPower"); + this.consumption = nbt.getLong("consumption"); + this.progress = nbt.getInteger("progress"); + this.processTime = nbt.getInteger("processTime"); + + if(nbt.hasKey("display")) { + this.display = new ItemStack(Item.getItemById(nbt.getInteger("display")), 1, nbt.getInteger("displayMeta")); + } else { + this.display = null; + } + + this.tank.readFromNBT(nbt, "t"); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + this.power = nbt.getLong("power"); + this.maxPower = nbt.getLong("maxPower"); + this.progress = nbt.getInteger("progress"); + this.processTime = nbt.getInteger("processTime"); + tank.readFromNBT(nbt, "t"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + nbt.setLong("power", power); + nbt.setLong("maxPower", maxPower); + nbt.setInteger("progress", progress); + nbt.setInteger("processTime", processTime); + tank.writeToNBT(nbt, "t"); } @Override @@ -51,4 +252,92 @@ public class TileEntityMachineArcWelder extends TileEntityMachineBase implements public FluidTank[] getReceivingTanks() { return new FluidTank[] {tank}; } + + @Override + public boolean isItemValidForSlot(int slot, ItemStack stack) { + return slot < 3; + } + + @Override + public boolean canExtractItem(int slot, ItemStack stack, int side) { + return slot == 3; + } + + @Override + public int[] getAccessibleSlotsFromSide(int side) { + return new int[] { 1, 3 }; + } + + @Override + public boolean isItemValidForSlot(int x, int y, int z, int slot, ItemStack stack) { + return slot < 3; + } + + @Override + public boolean canInsertItem(int x, int y, int z, int slot, ItemStack stack, int side) { + return slot < 3; + } + + @Override + public boolean canExtractItem(int x, int y, int z, int slot, ItemStack stack, int side) { + return slot == 3; + } + + @Override + public int[] getAccessibleSlotsFromSide(int x, int y, int z, int side) { + BlockPos pos = new BlockPos(x, y, z); + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + BlockPos core = new BlockPos(xCoord, yCoord, zCoord); + + //Red + if(pos.equals(core.clone().offset(rot)) || pos.equals(core.clone().offset(rot.getOpposite()).offset(dir.getOpposite()))) + return new int[] { 0, 3 }; + + //Yellow + if(pos.equals(core.clone().offset(dir.getOpposite()))) + return new int[] { 1, 3 }; + + //Green + if(pos.equals(core.clone().offset(rot.getOpposite())) || pos.equals(core.clone().offset(rot).offset(dir.getOpposite()))) + return new int[] { 2, 3 }; + + return new int[] { }; + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerMachineArcWelder(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIMachineArcWelder(player.inventory, this); + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 1, + yCoord, + zCoord - 1, + xCoord + 2, + yCoord + 3, + zCoord + 2 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRTG.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRTG.java index 63f6ec905..4e386f468 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRTG.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRTG.java @@ -209,7 +209,7 @@ public class TileEntityMachineRTG extends TileEntityLoadedBase implements ISided if(!worldObj.isRemote) { for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) - this.sendPower(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir.getOpposite()); + this.sendPower(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); heat = RTGUtil.updateRTGs(slots, slot_io); diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetwork.java b/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetwork.java index 3e241d394..645374a1e 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetwork.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityRequestNetwork.java @@ -55,7 +55,7 @@ public abstract class TileEntityRequestNetwork extends TileEntity { // draw debug crap for(PathNode known : knownNodes) { - if(reachableNodes.contains(known)) ParticleUtil.spawnDebugLine(worldObj, + if(reachableNodes.contains(known)) ParticleUtil.spawnDroneLine(worldObj, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, (known.pos.getX() - pos.getX()) / 2D, (known.pos.getY() - pos.getY()) / 2D, (known.pos.getZ() - pos.getZ()) / 2D, reachableNodes.contains(known) ? 0x00ff00 : 0xff0000); diff --git a/src/main/java/com/hbm/util/ParticleUtil.java b/src/main/java/com/hbm/util/ParticleUtil.java index f62efba92..45898c14d 100644 --- a/src/main/java/com/hbm/util/ParticleUtil.java +++ b/src/main/java/com/hbm/util/ParticleUtil.java @@ -28,10 +28,10 @@ public class ParticleUtil { } } - public static void spawnDebugLine(World world, double x, double y, double z, double x0, double y0, double z0, int color) { + public static void spawnDroneLine(World world, double x, double y, double z, double x0, double y0, double z0, int color) { NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "debugline"); + data.setString("type", "debugdrone"); data.setDouble("mX", x0); data.setDouble("mY", y0); data.setDouble("mZ", z0); diff --git a/src/main/java/com/hbm/util/fauxpointtwelve/BlockPos.java b/src/main/java/com/hbm/util/fauxpointtwelve/BlockPos.java index 0113b4817..4b2c6a1c8 100644 --- a/src/main/java/com/hbm/util/fauxpointtwelve/BlockPos.java +++ b/src/main/java/com/hbm/util/fauxpointtwelve/BlockPos.java @@ -7,7 +7,7 @@ import net.minecraftforge.common.util.ForgeDirection; /** * Adjusted code from MC 1.12 (com.minecraft.util.math.BlockPos) */ -public class BlockPos { +public class BlockPos implements Cloneable { private final int x; private final int y; @@ -92,4 +92,12 @@ public class BlockPos { } } } + + @Override + public BlockPos clone() { + try { + return (BlockPos) super.clone(); + } catch(Exception x) { } + return null; + } } diff --git a/src/main/resources/META-INF/HBM_at.cfg b/src/main/resources/META-INF/HBM_at.cfg index ba62b1a85..158e03857 100644 --- a/src/main/resources/META-INF/HBM_at.cfg +++ b/src/main/resources/META-INF/HBM_at.cfg @@ -25,3 +25,6 @@ public net.minecraft.client.gui.GuiMainMenu field_73975_c # sp # EntityLivingBase public net.minecraft.entity.EntityLivingBase field_82180_bT # previousEquipment + +# ChunkProviderFlat +public net.minecraft.world.gen.ChunkProviderFlat field_82702_h # hasDungeons diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index be712bbcc..b57571485 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -338,6 +338,7 @@ container.keyForge=Schlossertisch container.launchPad=Raketenabschussrampe container.launchTable=Große Startrampe container.leadBox=Sicherheitsbehälter +container.machineArcWelder=Lichtbogenschweißer container.machineBoiler=Ölwärmer container.machineCMB=CMB-Stahl Hochofen container.machineCoal=Verbrennungsgenerator @@ -2697,6 +2698,7 @@ item.plate_saturnite.name=Saturnitplatte item.plate_schrabidium.name=Schrabidiumplatte item.plate_steel.name=Stahlplatte item.plate_titanium.name=Titanplatte +item.plate_welded.name=Geschweißte %splatte item.polaroid.name=Das Polaroid item.pollution_detector.name=Verschmutzungsdetektor item.powder_actinium.name=Actiniumstaub @@ -4014,6 +4016,7 @@ tile.lox_barrel.name=LOX-Fass tile.machine_amgen.name=Umgebungsstrahlungs-Generator tile.machine_arc_furnace_off.name=Lichtbogenofen tile.machine_arc_furnace_on.name=Lichtbogenofen +tile.machine_arc_welder.name=Lichtbogenschweißer tile.machine_armor_table.name=Rüstungsmodifikationstisch tile.machine_ashpit.name=Aschekasten tile.machine_ashpit.desc=Sammelt Asche von Feuerbüchsen und Heizöfen diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 1d001cf5d..8cdae49aa 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -696,6 +696,7 @@ container.keyForge=Locksmith Table container.launchPad=Missile Launch Pad container.launchTable=Large Launch Pad container.leadBox=Containment Box +container.machineArcWelder=Arc Welder container.machineBoiler=Oil Heater container.machineCMB=CMB Steel Furnace container.machineCoal=Combustion Generator @@ -3501,6 +3502,7 @@ item.plate_saturnite.name=Saturnite Plate item.plate_schrabidium.name=Schrabidium Plate item.plate_steel.name=Steel Plate item.plate_titanium.name=Titanium Plate +item.plate_welded.name=Welded %s Plate item.polaroid.name=The Polaroid item.pollution_detector.name=Pollution Detector item.powder_actinium.name=Actinium Powder @@ -4990,6 +4992,7 @@ tile.lox_barrel.name=LOX Barrel tile.machine_amgen.name=Ambience Radiation Generator tile.machine_arc_furnace_off.name=Arc Furnace tile.machine_arc_furnace_on.name=Arc Furnace +tile.machine_arc_welder.name=Arc Welder tile.machine_armor_table.name=Armor Modification Table tile.machine_ashpit.name=Ashpit tile.machine_ashpit.desc=Collects ashes from fireboxes and heating ovens diff --git a/src/main/resources/assets/hbm/textures/blocks/cmt_terminal_front.png b/src/main/resources/assets/hbm/textures/blocks/cmt_terminal_front.png new file mode 100644 index 0000000000000000000000000000000000000000..1cf5cdafa4235c84ad39e67e4db42c2308a25195 GIT binary patch literal 425 zcmV;a0apHrP)@~;@`x-J`m*-U^IQC;q#o@PkV~M6 Tg23(600000NkvXXu0mjfim$k; literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/cmt_terminal_side.png b/src/main/resources/assets/hbm/textures/blocks/cmt_terminal_side.png new file mode 100644 index 0000000000000000000000000000000000000000..adb2fdb8a9232535b1756bb84a3556a3a280ebc4 GIT binary patch literal 448 zcmV;x0YCnUP)bn&iKqRLGt+~wbHqJvq_^b*N8Krm|>*@f@ z^4-h;D8&OjPskZ)%rl61a>|ByGiQnMh0$hgGKAJPIXEym zJ9DjG9AK(_8r{UNotYQZ>Hs30S;PrS@$WG7(THjvQ2@n#NXbLh3*&r0TZtJ*Vf+ig zl=?nmD*z<@n7FwqTTf;kEN5vk Date: Sun, 8 Oct 2023 19:43:00 +0200 Subject: [PATCH 337/432] shitting bricks --- changelog | 30 ------------------- .../com/hbm/inventory/gui/GUIScreenFluid.java | 2 +- 2 files changed, 1 insertion(+), 31 deletions(-) diff --git a/changelog b/changelog index 0cbb2b0e8..e69de29bb 100644 --- a/changelog +++ b/changelog @@ -1,30 +0,0 @@ -## Added -* Crystalline fullerite - * A late-game crafting material that is currenly only used to make the FEnSU - * Made from extracting fullerene from fine soot using high-performance solvent and a SILEX -* Arc welder - * Similar to an assembler, but without templates - * Can combine up to 3 items and one fluid - * Recipes vary in duration and energy consumption, welding together osmiridium plates requires the output of powerful reactors -* Custom fluids - * A config for adding custom fluid types - * Sets basic stats, color and textures - * Fluid tratis can be applied using the already existing fluid trait config - * The fluid trait config has been renamed to prevent name clashes - * Recommended greyscale textures recommended for the custom fluids are `custom_water`, `custom_lava`, `custom_oil` and `custom_toxin` - * 256k tanks do not have a label for custom fluids, but the tank's color will match the fluid's tint -* Custom machine structure positioning anchor - * Allows automatic generation of custom machine block configurations - * Simply replace the controller of your custom machine mockup with the anchor, then link it to a custom machine structure output wand and select the two diagonal points - * The resulting JSON structure will be saved in the config folder -* Welded plates - * Made from welding together two cast plates in an arc welder - * Now used in many progression-relevant machines, meaning that energy demand now more closely matches the energy production of progression-based generators - * Many recipes have been adjusted to now use cast plates or welded plates - -## Changed -* Schrabidium explosions now ignore all blocks at Y:0, not just bedrock. This means that bedrock ores and oil are spared -* Drone waypoint connections only show up if a drone or a logistic block is held - -## Fixed -* Fixed RTG energy connectors being backwards \ No newline at end of file diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenFluid.java b/src/main/java/com/hbm/inventory/gui/GUIScreenFluid.java index a43235cce..8d0105f14 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenFluid.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenFluid.java @@ -169,7 +169,7 @@ public class GUIScreenFluid extends GuiScreen { String subs = this.search.getText().toLowerCase(Locale.US); for(FluidType type : Fluids.getInNiceOrder()) { - String name = type.getLocalizedName(); + String name = type.getLocalizedName().toLowerCase(); if(name.contains(subs) && !type.hasNoID()) { this.searchArray[next] = type; From 2b7ffd6902e7912eb58b8d5c30c462b96216f31b Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 11 Oct 2023 16:51:42 +0200 Subject: [PATCH 338/432] recipe tweaks --- .../inventory/recipes/AssemblerRecipes.java | 8 +- .../com/hbm/items/tool/ItemCMStructure.java | 282 +++++++++--------- .../java/com/hbm/main/CraftingManager.java | 2 +- 3 files changed, 153 insertions(+), 139 deletions(-) diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index ae318932e..87a14154f 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -274,7 +274,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.machine_centrifuge, 1), new AStack[] {new ComparableStack(ModItems.centrifuge_element, 1), new OreDictStack(ANY_PLASTIC.ingot(), 2), new OreDictStack(STEEL.plate528(), 8), new OreDictStack(CU.plate(), 8), new ComparableStack(ModItems.circuit_copper, 1), }, 200); makeRecipe(new ComparableStack(ModBlocks.machine_gascent, 1), new AStack[] {new ComparableStack(ModItems.centrifuge_element, 4), new OreDictStack(ANY_PLASTIC.ingot(), 4), new OreDictStack(DESH.ingot(), 2), new OreDictStack(STEEL.plate528(), 8), new ComparableStack(ModItems.coil_tungsten, 4), new ComparableStack(ModItems.circuit_red_copper, 1) }, 300); makeRecipe(new ComparableStack(ModBlocks.machine_rtg_furnace_off, 1), new AStack[] {new ComparableStack(Blocks.furnace, 1), new ComparableStack(ModItems.rtg_unit, 3), new OreDictStack(PB.plate528(), 6), new OreDictStack(OreDictManager.getReflector(), 4), new OreDictStack(CU.plate(), 2), },150); - makeRecipe(new ComparableStack(ModBlocks.machine_diesel, 1), new AStack[] {new ComparableStack(ModItems.hull_small_steel, 1), new ComparableStack(ModItems.piston_selenium, 1), new OreDictStack(IRON.plateWelded(), 1), new OreDictStack(CU.plate(), 4), new ComparableStack(ModItems.coil_copper, 4), }, 100); + makeRecipe(new ComparableStack(ModBlocks.machine_diesel, 1), new AStack[] {new ComparableStack(ModItems.hull_small_steel, 1), new ComparableStack(ModItems.piston_selenium, 1), new OreDictStack(STEEL.plateCast(), 1), new ComparableStack(ModItems.coil_copper, 4), }, 60); makeRecipe(new ComparableStack(ModBlocks.machine_selenium, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(TI.plate(), 6), new OreDictStack(CU.plate(), 8), new ComparableStack(ModItems.hull_big_steel, 1), new ComparableStack(ModItems.hull_small_steel, 9), new ComparableStack(ModItems.pedestal_steel, 1), new ComparableStack(ModItems.coil_copper, 4), },250); makeRecipe(new ComparableStack(ModBlocks.machine_rtg_grey, 1), new AStack[] {new ComparableStack(ModItems.rtg_unit, 3), new OreDictStack(STEEL.plate528(), 4), new ComparableStack(ModItems.wire_red_copper, 4), new OreDictStack(ANY_PLASTIC.ingot(), 3), },200); makeRecipe(new ComparableStack(ModBlocks.machine_battery, 1), new AStack[] {new OreDictStack(STEEL.plateWelded(), 1), new OreDictStack(S.dust(), 12), new OreDictStack(PB.dust(), 12), new OreDictStack(MINGRADE.ingot(), 2), new ComparableStack(ModItems.wire_red_copper, 4), },200); @@ -285,13 +285,13 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.machine_well, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 20), new ComparableStack(ModBlocks.steel_beam, 8), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.pipes_steel, 3), new ComparableStack(ModItems.drill_titanium, 1), new ComparableStack(ModItems.wire_red_copper, 6), },250); makeRecipe(new ComparableStack(ModBlocks.machine_pumpjack, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 8), new OreDictStack(STEEL.plateWelded(), 8), new ComparableStack(ModItems.pipes_steel, 4), new ComparableStack(ModItems.tank_steel, 4), new OreDictStack(STEEL.plate(), 32), new ComparableStack(ModItems.drill_titanium, 1), new ComparableStack(ModItems.motor, 2) }, 400); makeRecipe(new ComparableStack(ModBlocks.machine_flare, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(IRON.ingot(), 12), new OreDictStack(CU.plate528(), 4), new ComparableStack(ModItems.tank_steel, 1), new ComparableStack(ModBlocks.deco_pipe_quad, 8), new ComparableStack(ModItems.hull_small_steel, 4), new ComparableStack(ModItems.thermo_element, 3), },200); - makeRecipe(new ComparableStack(ModBlocks.machine_coker, 1), new AStack[] {!exp ? new OreDictStack(STEEL.plateWelded(), 4) : new OreDictStack(STEEL.heavyComp(), 2), new OreDictStack(IRON.ingot(), 12), new OreDictStack(CU.plate528(), 8), new OreDictStack(RUBBER.ingot(), 4), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModBlocks.steel_grate, 4) },200); + makeRecipe(new ComparableStack(ModBlocks.machine_coker, 1), new AStack[] {!exp ? new OreDictStack(STEEL.plateWelded(), 3) : new OreDictStack(STEEL.heavyComp(), 2), new OreDictStack(IRON.ingot(), 16), new OreDictStack(CU.plate528(), 8), new OreDictStack(RUBBER.ingot(), 4), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModBlocks.steel_grate, 4) },200); makeRecipe(new ComparableStack(ModBlocks.machine_refinery, 1), new AStack[] {!exp ? new OreDictStack(STEEL.plateWelded(), 3) : new OreDictStack(STEEL.heavyComp(), 1), new OreDictStack(CU.plate528(), 16), new ComparableStack(ModItems.hull_big_steel, 6), new ComparableStack(ModItems.pipes_steel, 2), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModItems.circuit_red_copper, 1) },350); makeRecipe(new ComparableStack(ModBlocks.machine_epress, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new ComparableStack(ModItems.plate_polymer, 4), new ComparableStack(ModItems.part_generic, 2, EnumPartType.PISTON_HYDRAULIC.ordinal()), new ComparableStack(ModItems.circuit_copper, 1) }, 100); makeRecipe(new ComparableStack(ModBlocks.machine_chemplant, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(CU.plate528(), 6), new ComparableStack(ModItems.tank_steel, 4), new ComparableStack(ModItems.hull_big_steel, 1), new ComparableStack(ModItems.coil_tungsten, 3), new ComparableStack(ModItems.circuit_copper, 2), new ComparableStack(ModItems.circuit_red_copper, 1), new ComparableStack(ModItems.plate_polymer, 8), },200); makeRecipe(new ComparableStack(ModBlocks.machine_crystallizer, 1), new AStack[] {new ComparableStack(ModItems.hull_big_steel, 4), new ComparableStack(ModItems.pipes_steel, 1), new OreDictStack(DESH.ingot(), 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.blades_advanced_alloy, 2), new OreDictStack(STEEL.plateWelded(), 4), new OreDictStack(TI.plate(), 16), new ComparableStack(Blocks.glass, 4), new ComparableStack(ModItems.circuit_gold, 1), },400); makeRecipe(new ComparableStack(ModBlocks.machine_fluidtank, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(STEEL.plate528(), 6), new ComparableStack(ModItems.hull_big_steel, 4), new OreDictStack(ANY_TAR.any(), 4), },150); - makeRecipe(new ComparableStack(ModBlocks.machine_bat9000, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 16), new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 3), new ComparableStack(ModBlocks.steel_scaffold, 16), new OreDictStack(ANY_TAR.any(), 16), },150); + makeRecipe(new ComparableStack(ModBlocks.machine_bat9000, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 16), new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 2), new ComparableStack(ModBlocks.steel_scaffold, 16), new OreDictStack(ANY_TAR.any(), 16), },150); makeRecipe(new ComparableStack(ModBlocks.machine_orbus, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 8), new OreDictStack(BIGMT.plate(), 12), new ComparableStack(ModItems.coil_advanced_alloy, 12), new ComparableStack(ModItems.battery_sc_polonium, 1) }, 200); makeRecipe(new ComparableStack(ModBlocks.machine_mining_laser, 1), new AStack[] {new ComparableStack(ModItems.tank_steel, 3), !exp ? new OreDictStack(STEEL.plate528(), 16) : new OreDictStack(STEEL.heavyComp(), 3), new ComparableStack(ModItems.crystal_redstone, 3), new ComparableStack(Items.diamond, 3), new OreDictStack(ANY_PLASTIC.ingot(), 4), new ComparableStack(ModItems.motor, 3), !exp ? new OreDictStack(DURA.ingot(), 4) : new OreDictStack(DESH.heavyComp(), 1), new ComparableStack(ModItems.bolt_dura_steel, 6), new ComparableStack(ModBlocks.machine_battery, 3), },400); makeRecipe(new ComparableStack(ModBlocks.machine_turbofan, 1), new AStack[] {!exp ? new ComparableStack(ModItems.hull_big_steel, 1) : new OreDictStack(STEEL.heavyComp(), 1), new ComparableStack(ModItems.hull_big_titanium, 3), new ComparableStack(ModItems.hull_small_steel, 2), new ComparableStack(ModItems.turbine_tungsten, 1), new ComparableStack(ModItems.turbine_titanium, 7), new ComparableStack(ModItems.bolt_compound, 8), new OreDictStack(MINGRADE.ingot(), 12), new ComparableStack(ModItems.wire_red_copper, 24), },500); @@ -301,7 +301,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.fusion_conductor, 1), new AStack[] {new ComparableStack(ModItems.coil_advanced_alloy, 5), }, 100); makeRecipe(new ComparableStack(ModBlocks.fusion_center, 1), new AStack[] {new OreDictStack(ANY_HARDPLASTIC.ingot(), 4), new OreDictStack(STEEL.plate528(), 6), new ComparableStack(ModItems.wire_advanced_alloy, 24), },200); makeRecipe(new ComparableStack(ModBlocks.fusion_motor, 1), new AStack[] {new OreDictStack(TI.ingot(), 4), new OreDictStack(STEEL.ingot(), 2), new ComparableStack(ModItems.motor, 4), },250); - makeRecipe(new ComparableStack(ModBlocks.fusion_heater, 1), new AStack[] {new OreDictStack(W.plateWelded(), 1), new OreDictStack(STEEL.plateWelded(), 2), new OreDictStack(OreDictManager.getReflector(), 2), new ComparableStack(ModItems.magnetron, 1) }, 200); + makeRecipe(new ComparableStack(ModBlocks.fusion_heater, 4), new AStack[] {new OreDictStack(W.plateWelded(), 2), new OreDictStack(STEEL.plateWelded(), 2), new OreDictStack(OreDictManager.getReflector(), 2), new ComparableStack(ModItems.magnetron, 2) }, 200); makeRecipe(new ComparableStack(ModBlocks.watz_element, 3), new AStack[] {new OreDictStack(STEEL.plateCast(), 2), new OreDictStack(ZR.ingot(), 2), new OreDictStack(BIGMT.ingot(), 2), new OreDictStack(ANY_HARDPLASTIC.ingot(), 4)},200); makeRecipe(new ComparableStack(ModBlocks.watz_cooler, 3), new AStack[] {new OreDictStack(STEEL.plateCast(), 2), new OreDictStack(CU.plateCast(), 4), new OreDictStack(RUBBER.ingot(), 2), }, 200); makeRecipe(new ComparableStack(ModBlocks.watz_end, 3), new AStack[] {new OreDictStack(ANY_RESISTANTALLOY.plateWelded()), new OreDictStack(B.ingot(), 3), new OreDictStack(STEEL.plateWelded(), 2), }, 100); diff --git a/src/main/java/com/hbm/items/tool/ItemCMStructure.java b/src/main/java/com/hbm/items/tool/ItemCMStructure.java index cb72b7d3c..6bd4cd29c 100644 --- a/src/main/java/com/hbm/items/tool/ItemCMStructure.java +++ b/src/main/java/com/hbm/items/tool/ItemCMStructure.java @@ -1,7 +1,6 @@ package com.hbm.items.tool; import java.io.File; -import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import com.google.gson.stream.JsonWriter; @@ -21,152 +20,167 @@ import net.minecraft.world.World; import net.minecraftforge.client.event.RenderGameOverlayEvent; import net.minecraftforge.common.util.ForgeDirection; -import java.io.File; -import java.io.FileWriter; import java.util.ArrayList; import java.util.List; -public class ItemCMStructure extends Item implements ILookOverlay { - File file = new File(MainRegistry.configHbmDir, "CMstructureOutput.txt"); - public static BlockPos getAnchor(ItemStack stack) { +public class ItemCMStructure extends Item implements ILookOverlay { + + private static File file = new File(MainRegistry.configHbmDir, "CMstructureOutput.txt"); - if(!stack.hasTagCompound()) { - return null; - } + public static BlockPos getAnchor(ItemStack stack) { - return new BlockPos(stack.stackTagCompound.getInteger("anchorX"), stack.stackTagCompound.getInteger("anchorY"), stack.stackTagCompound.getInteger("anchorZ")); - } - public static void setAnchor(ItemStack stack, int x, int y, int z) { + if(!stack.hasTagCompound()) { + return null; + } - if(stack.stackTagCompound == null) { - stack.stackTagCompound = new NBTTagCompound(); - } + return new BlockPos(stack.stackTagCompound.getInteger("anchorX"), stack.stackTagCompound.getInteger("anchorY"), stack.stackTagCompound.getInteger("anchorZ")); + } - stack.stackTagCompound.setInteger("anchorX", x); - stack.stackTagCompound.setInteger("anchorY", y); - stack.stackTagCompound.setInteger("anchorZ", z); - } - public static void writeToFile(File config,ItemStack stack,World world){ - int anchorX = stack.stackTagCompound.getInteger("anchorX"); - int anchorY = stack.stackTagCompound.getInteger("anchorY"); - int anchorZ = stack.stackTagCompound.getInteger("anchorZ"); - int x1=stack.stackTagCompound.getInteger("x1"); - int y1=stack.stackTagCompound.getInteger("y1"); - int z1=stack.stackTagCompound.getInteger("z1"); - int x2=stack.stackTagCompound.getInteger("x2"); - int y2=stack.stackTagCompound.getInteger("y2"); - int z2=stack.stackTagCompound.getInteger("z2"); - ForgeDirection dir = ForgeDirection.getOrientation(world.getBlockMetadata(anchorX,anchorY,anchorZ)); - //ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - int z=z1;z1=z text = new ArrayList(); + public static void writeToFile(File config, ItemStack stack, World world) { + int anchorX = stack.stackTagCompound.getInteger("anchorX"); + int anchorY = stack.stackTagCompound.getInteger("anchorY"); + int anchorZ = stack.stackTagCompound.getInteger("anchorZ"); + int x1 = stack.stackTagCompound.getInteger("x1"); + int y1 = stack.stackTagCompound.getInteger("y1"); + int z1 = stack.stackTagCompound.getInteger("z1"); + int x2 = stack.stackTagCompound.getInteger("x2"); + int y2 = stack.stackTagCompound.getInteger("y2"); + int z2 = stack.stackTagCompound.getInteger("z2"); + ForgeDirection dir = ForgeDirection.getOrientation(world.getBlockMetadata(anchorX, anchorY, anchorZ)); + // ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + int z = z1; + z1 = z < z2 ? z : z2; + z2 = z < z2 ? z2 : z; + int y = y1; + y1 = y < y2 ? y : y2; + y2 = y < y2 ? y2 : y; + int x = x1; + x1 = x < x2 ? x : x2; + x2 = x < x2 ? x2 : x; + if(dir == ForgeDirection.EAST || dir == ForgeDirection.WEST) { + z = x1; + x1 = z1; + z1 = z; + z = x2; + x2 = z2; + z2 = z; + int anchor = anchorX; + anchorX = anchorZ; + anchorZ = anchor; + } + try { + JsonWriter writer = new JsonWriter(new FileWriter(config)); + writer.setIndent(" "); + writer.beginObject(); + writer.name("components").beginArray(); + for(x = x1; x <= x2; x++) { + for(y = y1; y <= y2; y++) { + for(z = z1; z <= z2; z++) { + if(!((x == anchorX && y == anchorY && z == anchorZ) || ((dir == ForgeDirection.EAST || dir == ForgeDirection.WEST) ? world.getBlock(z, y, x) == Blocks.air : world.getBlock(x, y, z) == Blocks.air))) { + writer.beginObject().setIndent(""); + writer.name("block").value("hbm:" + ((dir == ForgeDirection.EAST || dir == ForgeDirection.WEST) ? world.getBlock(z, y, x).getUnlocalizedName() : world.getBlock(x, y, z).getUnlocalizedName())); + writer.name("x").value(x - anchorX); + writer.name("y").value(y - anchorY); + writer.name("z").value((dir == ForgeDirection.EAST || dir == ForgeDirection.WEST) ? anchorZ - z : z - anchorZ); + writer.name("metas").beginArray(); + writer.value(((dir == ForgeDirection.EAST || dir == ForgeDirection.WEST) ? world.getBlockMetadata(z, y, x) : world.getBlockMetadata(x, y, z))); + writer.endArray(); + writer.endObject().setIndent(" "); + } + } + } + } + writer.endArray(); + writer.endObject(); + writer.close(); + } catch(IOException e) { + e.printStackTrace(); + } - BlockPos anchor = getAnchor(stack); + } - if(anchor == null) { + @Override + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ) { + Block b = world.getBlock(x, y, z); - text.add(EnumChatFormatting.RED + "No Anchor"); - } else { - int anchorX = stack.stackTagCompound.getInteger("anchorX"); - int anchorY = stack.stackTagCompound.getInteger("anchorY"); - int anchorZ = stack.stackTagCompound.getInteger("anchorZ"); - text.add(EnumChatFormatting.GOLD + "Anchor: " + anchorX + " / " + anchorY + " / " + anchorZ); - if(stack.stackTagCompound.hasKey("x1")){ - int x1=stack.stackTagCompound.getInteger("x1"); - int y1=stack.stackTagCompound.getInteger("y1"); - int z1=stack.stackTagCompound.getInteger("z1"); + if(b == ModBlocks.cm_anchor) { + this.setAnchor(stack, x, y, z); + return true; + } - text.add(EnumChatFormatting.YELLOW + "Position1: " + x1 + " / " + y1 + " / " + z1); - } - if(stack.stackTagCompound.hasKey("x2")) { - int x2=stack.stackTagCompound.getInteger("x2"); - int y2=stack.stackTagCompound.getInteger("y2"); - int z2=stack.stackTagCompound.getInteger("z2"); - text.add(EnumChatFormatting.YELLOW + "Position2: " + x2 + " / " + y2 + " / " + z2); - } - } + if(this.getAnchor(stack) == null) { + return false; + } + if(!stack.stackTagCompound.hasKey("x1")) { + stack.stackTagCompound.setInteger("x1", x); + stack.stackTagCompound.setInteger("y1", y); + stack.stackTagCompound.setInteger("z1", z); + } else if(!stack.stackTagCompound.hasKey("x2")) { + stack.stackTagCompound.setInteger("x2", x); + stack.stackTagCompound.setInteger("y2", y); + stack.stackTagCompound.setInteger("z2", z); + } else { + writeToFile(file, stack, world); + stack.stackTagCompound.removeTag("x1"); + stack.stackTagCompound.removeTag("y1"); + stack.stackTagCompound.removeTag("z1"); + stack.stackTagCompound.removeTag("x2"); + stack.stackTagCompound.removeTag("y2"); + stack.stackTagCompound.removeTag("z2"); + } + return true; + } - ILookOverlay.printGeneric(event, this.getItemStackDisplayName(stack), 0xffff00, 0x404000, text); - } + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + super.addInformation(stack, player, list, ext); + list.add(EnumChatFormatting.YELLOW + "Click Custom Machine Structure Positioning Anchor to"); + list.add(EnumChatFormatting.YELLOW + "Confirm the location of the custom machine core block."); + list.add(EnumChatFormatting.YELLOW + "Output all blocks between Position1 and Position2 with"); + list.add(EnumChatFormatting.YELLOW + "metadata to \"CMstructureOutput.txt\" in hbmConfig."); + } + + @Override + public void printHook(RenderGameOverlayEvent.Pre event, World world, int x, int y, int z) { + ItemStack stack = Minecraft.getMinecraft().thePlayer.getHeldItem(); + List text = new ArrayList(); + + BlockPos anchor = getAnchor(stack); + + if(anchor == null) { + + text.add(EnumChatFormatting.RED + "No Anchor"); + } else { + int anchorX = stack.stackTagCompound.getInteger("anchorX"); + int anchorY = stack.stackTagCompound.getInteger("anchorY"); + int anchorZ = stack.stackTagCompound.getInteger("anchorZ"); + text.add(EnumChatFormatting.GOLD + "Anchor: " + anchorX + " / " + anchorY + " / " + anchorZ); + if(stack.stackTagCompound.hasKey("x1")) { + int x1 = stack.stackTagCompound.getInteger("x1"); + int y1 = stack.stackTagCompound.getInteger("y1"); + int z1 = stack.stackTagCompound.getInteger("z1"); + + text.add(EnumChatFormatting.YELLOW + "Position1: " + x1 + " / " + y1 + " / " + z1); + } + if(stack.stackTagCompound.hasKey("x2")) { + int x2 = stack.stackTagCompound.getInteger("x2"); + int y2 = stack.stackTagCompound.getInteger("y2"); + int z2 = stack.stackTagCompound.getInteger("z2"); + text.add(EnumChatFormatting.YELLOW + "Position2: " + x2 + " / " + y2 + " / " + z2); + } + } + + ILookOverlay.printGeneric(event, this.getItemStackDisplayName(stack), 0xffff00, 0x404000, text); + } } diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index d0815eb79..624d4ce59 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -318,7 +318,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.anvil_iron, 1), new Object[] { "III", " B ", "III", 'I', IRON.ingot(), 'B', IRON.block() }); addRecipeAuto(new ItemStack(ModBlocks.anvil_lead, 1), new Object[] { "III", " B ", "III", 'I', PB.ingot(), 'B', PB.block() }); addRecipeAuto(new ItemStack(ModBlocks.anvil_murky, 1), new Object[] { "UUU", "UAU", "UUU", 'U', ModItems.undefined, 'A', ModBlocks.anvil_steel }); - addRecipeAuto(new ItemStack(ModBlocks.machine_fraction_tower), new Object[] { "SHS", "SGS", "SHS", 'S', STEEL.plate(), 'H', ModItems.hull_big_steel, 'G', ModBlocks.steel_grate }); + addRecipeAuto(new ItemStack(ModBlocks.machine_fraction_tower), new Object[] { "H", "G", "H", 'H', STEEL.plateWelded(), 'G', ModBlocks.steel_grate }); addRecipeAuto(new ItemStack(ModBlocks.fraction_spacer), new Object[] { "BHB", 'H', ModItems.hull_big_steel, 'B', Blocks.iron_bars }); addRecipeAuto(new ItemStack(ModBlocks.furnace_iron), new Object[] { "III", "IFI", "BBB", 'I', IRON.ingot(), 'F', Blocks.furnace, 'B', Blocks.stonebrick }); addRecipeAuto(new ItemStack(ModBlocks.machine_mixer), new Object[] { "PIP", "GCG", "PMP", 'P', STEEL.plate(), 'I', DURA.ingot(), 'G', KEY_ANYPANE, 'C', ModItems.circuit_copper, 'M', ModItems.motor }); From 7e5e2ce1c5e4a4f8dd1c3086b4a1d16f7736527b Mon Sep 17 00:00:00 2001 From: Bob Date: Wed, 11 Oct 2023 20:37:23 +0200 Subject: [PATCH 339/432] cyclotron automation yeah --- .../hbm/blocks/machine/MachineCyclotron.java | 6 +- .../machine/TileEntityMachineCyclotron.java | 91 +++++++++++------- .../textures/models/machines/cyclotron.png | Bin 4498 -> 4610 bytes 3 files changed, 59 insertions(+), 38 deletions(-) diff --git a/src/main/java/com/hbm/blocks/machine/MachineCyclotron.java b/src/main/java/com/hbm/blocks/machine/MachineCyclotron.java index 285f2f838..6ace99312 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineCyclotron.java +++ b/src/main/java/com/hbm/blocks/machine/MachineCyclotron.java @@ -25,7 +25,7 @@ public class MachineCyclotron extends BlockDummyable { return new TileEntityMachineCyclotron(); if(meta >= 6) - return new TileEntityProxyCombo(false, true, true); + return new TileEntityProxyCombo().inventory().power().fluid(); return null; } @@ -93,12 +93,16 @@ public class MachineCyclotron extends BlockDummyable { super.fillSpace(world, x, y, z, dir, o); this.makeExtra(world, x + dir.offsetX * o + 2, y, z + dir.offsetZ * o + 1); + this.makeExtra(world, x + dir.offsetX * o + 2, y, z + dir.offsetZ * o); this.makeExtra(world, x + dir.offsetX * o + 2, y, z + dir.offsetZ * o - 1); this.makeExtra(world, x + dir.offsetX * o - 2, y, z + dir.offsetZ * o + 1); + this.makeExtra(world, x + dir.offsetX * o - 2, y, z + dir.offsetZ * o); this.makeExtra(world, x + dir.offsetX * o - 2, y, z + dir.offsetZ * o - 1); this.makeExtra(world, x + dir.offsetX * o + 1, y, z + dir.offsetZ * o + 2); + this.makeExtra(world, x + dir.offsetX * o, y, z + dir.offsetZ * o + 2); this.makeExtra(world, x + dir.offsetX * o - 1, y, z + dir.offsetZ * o + 2); this.makeExtra(world, x + dir.offsetX * o + 1, y, z + dir.offsetZ * o - 2); + this.makeExtra(world, x + dir.offsetX * o, y, z + dir.offsetZ * o - 2); this.makeExtra(world, x + dir.offsetX * o - 1, y, z + dir.offsetZ * o - 2); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java index 0fa7a053f..9d30a9f22 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java @@ -1,7 +1,7 @@ package com.hbm.tileentity.machine; -import java.util.ArrayList; import java.util.List; +import java.util.Map.Entry; import com.hbm.config.BombConfig; import com.hbm.entity.effect.EntityBlackHole; @@ -11,6 +11,8 @@ import com.hbm.explosion.ExplosionLarge; import com.hbm.explosion.ExplosionThermo; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidSource; +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.container.ContainerMachineCyclotron; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; @@ -22,8 +24,10 @@ import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.lib.Library; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.tileentity.IConditionalInvAccess; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.Tuple.Pair; import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IEnergyUser; @@ -39,8 +43,9 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineCyclotron extends TileEntityMachineBase implements IFluidSource, IFluidAcceptor, IEnergyUser, IFluidStandardTransceiver, IGUIProvider { +public class TileEntityMachineCyclotron extends TileEntityMachineBase implements IFluidSource, IFluidAcceptor, IEnergyUser, IFluidStandardTransceiver, IGUIProvider, IConditionalInvAccess { public long power; public static final long maxPower = 100000000; @@ -58,8 +63,6 @@ public class TileEntityMachineCyclotron extends TileEntityMachineBase implements public FluidTank coolant; public FluidTank amat; - - public List list = new ArrayList(); public TileEntityMachineCyclotron() { super(16); @@ -408,39 +411,11 @@ public class TileEntityMachineCyclotron extends TileEntityMachineBase implements return 0; } - @Override - public void fillFluidInit(FluidType type) { - - fillFluid(xCoord + 3, yCoord, zCoord + 1, getTact(), type); - fillFluid(xCoord + 3, yCoord, zCoord - 1, getTact(), type); - fillFluid(xCoord - 3, yCoord, zCoord + 1, getTact(), type); - fillFluid(xCoord - 3, yCoord, zCoord - 1, getTact(), type); - - fillFluid(xCoord + 1, yCoord, zCoord + 3, getTact(), type); - fillFluid(xCoord - 1, yCoord, zCoord + 3, getTact(), type); - fillFluid(xCoord + 1, yCoord, zCoord - 3, getTact(), type); - fillFluid(xCoord - 1, yCoord, zCoord - 3, getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - return age >= 0 && age < 10; - } - - @Override - public List getFluidList(FluidType type) { - return list; - } - - @Override - public void clearFluidList(FluidType type) { - list.clear(); - } + @Override public void fillFluidInit(FluidType type) { } + @Override public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { } + @Override public boolean getTact() { return false; } + @Override public List getFluidList(FluidType type) { return null; } + @Override public void clearFluidList(FluidType type) { } @Override public int getMaxFluidFill(FluidType type) { @@ -559,4 +534,46 @@ public class TileEntityMachineCyclotron extends TileEntityMachineBase implements public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineCyclotron(player.inventory, this); } + + @Override + public boolean isItemValidForSlot(int x, int y, int z, int slot, ItemStack stack) { + + if(slot < 3) { + for(Entry, Pair> entry : CyclotronRecipes.recipes.entrySet()) { + if(entry.getKey().getKey().matchesRecipe(stack, true)) return true; + } + } else if(slot < 6) { + + for(Entry, Pair> entry : CyclotronRecipes.recipes.entrySet()) { + if(entry.getKey().getValue().matchesRecipe(stack, true)) return true; + } + } + + return false; + } + + @Override + public boolean canInsertItem(int x, int y, int z, int slot, ItemStack stack, int side) { + return this.isItemValidForSlot(x, y, z, slot, stack); + } + + @Override + public boolean canExtractItem(int x, int y, int z, int slot, ItemStack stack, int side) { + return slot >= 6 && slot <= 8; + } + + @Override + public int[] getAccessibleSlotsFromSide(int x, int y, int z, int side) { + + for(int i = 2; i < 6; i++) { + ForgeDirection dir = ForgeDirection.getOrientation(i); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + if(x == xCoord + dir.offsetX * 2 + rot.offsetX && z == zCoord + dir.offsetZ * 2 + rot.offsetZ) return new int[] {0, 3, 6, 7, 8}; + if(x == xCoord + dir.offsetX * 2 && z == zCoord + dir.offsetZ * 2) return new int[] {1, 4, 6, 7, 8}; + if(x == xCoord + dir.offsetX * 2 - rot.offsetX && z == zCoord + dir.offsetZ * 2 - rot.offsetZ) return new int[] {2, 5, 6, 7, 8}; + } + + return new int[] {6, 7, 8}; + } } diff --git a/src/main/resources/assets/hbm/textures/models/machines/cyclotron.png b/src/main/resources/assets/hbm/textures/models/machines/cyclotron.png index b10a0d1db62d5dd2e69f5d677785f3cceb73c7df..6cfaeb00832b88e5a54b050ced51620d432f8e5a 100644 GIT binary patch delta 4600 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 Uu#iVA>;uRTMqLk8p?WX$f0D+iH~;_u delta 4488 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 Date: Thu, 12 Oct 2023 22:23:14 +0200 Subject: [PATCH 340/432] fixes --- .../com/hbm/items/tool/ItemCMStructure.java | 79 +- .../assets/hbm/models/armor/steamsuit.obj | 4358 +++++++++-------- 2 files changed, 2261 insertions(+), 2176 deletions(-) diff --git a/src/main/java/com/hbm/items/tool/ItemCMStructure.java b/src/main/java/com/hbm/items/tool/ItemCMStructure.java index 6bd4cd29c..c7ce6f2d6 100644 --- a/src/main/java/com/hbm/items/tool/ItemCMStructure.java +++ b/src/main/java/com/hbm/items/tool/ItemCMStructure.java @@ -58,46 +58,57 @@ public class ItemCMStructure extends Item implements ILookOverlay { int y2 = stack.stackTagCompound.getInteger("y2"); int z2 = stack.stackTagCompound.getInteger("z2"); ForgeDirection dir = ForgeDirection.getOrientation(world.getBlockMetadata(anchorX, anchorY, anchorZ)); - // ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - int z = z1; - z1 = z < z2 ? z : z2; - z2 = z < z2 ? z2 : z; - int y = y1; - y1 = y < y2 ? y : y2; - y2 = y < y2 ? y2 : y; - int x = x1; - x1 = x < x2 ? x : x2; - x2 = x < x2 ? x2 : x; - if(dir == ForgeDirection.EAST || dir == ForgeDirection.WEST) { - z = x1; - x1 = z1; - z1 = z; - z = x2; - x2 = z2; - z2 = z; - int anchor = anchorX; - anchorX = anchorZ; - anchorZ = anchor; - } + int minX = Math.min(x1, x2); + int maxX = Math.max(x1, x2); + int minY = Math.min(y1, y2); + int maxY = Math.max(y1, y2); + int minZ = Math.min(z1, z2); + int maxZ = Math.max(z1, z2); + try { JsonWriter writer = new JsonWriter(new FileWriter(config)); writer.setIndent(" "); writer.beginObject(); writer.name("components").beginArray(); - for(x = x1; x <= x2; x++) { - for(y = y1; y <= y2; y++) { - for(z = z1; z <= z2; z++) { - if(!((x == anchorX && y == anchorY && z == anchorZ) || ((dir == ForgeDirection.EAST || dir == ForgeDirection.WEST) ? world.getBlock(z, y, x) == Blocks.air : world.getBlock(x, y, z) == Blocks.air))) { - writer.beginObject().setIndent(""); - writer.name("block").value("hbm:" + ((dir == ForgeDirection.EAST || dir == ForgeDirection.WEST) ? world.getBlock(z, y, x).getUnlocalizedName() : world.getBlock(x, y, z).getUnlocalizedName())); - writer.name("x").value(x - anchorX); - writer.name("y").value(y - anchorY); - writer.name("z").value((dir == ForgeDirection.EAST || dir == ForgeDirection.WEST) ? anchorZ - z : z - anchorZ); - writer.name("metas").beginArray(); - writer.value(((dir == ForgeDirection.EAST || dir == ForgeDirection.WEST) ? world.getBlockMetadata(z, y, x) : world.getBlockMetadata(x, y, z))); - writer.endArray(); - writer.endObject().setIndent(" "); + + for(int x = minX; x <= maxX; x++) { + for(int y = minY; y <= maxY; y++) { + for(int z = minZ; z <= maxZ; z++) { + + int compY = y - anchorY; + int compX = 0; + int compZ = 0; + + if(dir == ForgeDirection.NORTH) { + compX = anchorX - x; + compZ = anchorZ - z; } + if(dir == ForgeDirection.SOUTH) { + compX = x - anchorX; + compZ = z - anchorZ; + } + + if(dir == ForgeDirection.EAST) { + compZ = x - anchorX; + compX = anchorZ - z; + } + if(dir == ForgeDirection.WEST) { + compZ = anchorX - x; + compX = z - anchorZ; + } + + if(x == anchorX && y == anchorY && z == anchorZ) continue; + Block block = world.getBlock(x, y, z); + int meta = world.getBlockMetadata(x, y, z); + if(block == Blocks.air) continue; + + writer.beginObject().setIndent(""); + writer.name("block").value(Block.blockRegistry.getNameForObject(block)); + writer.name("x").value(compX); + writer.name("y").value(compY); + writer.name("z").value(compZ); + writer.name("metas").beginArray().value(meta).endArray(); + writer.endObject().setIndent(" "); } } } diff --git a/src/main/resources/assets/hbm/models/armor/steamsuit.obj b/src/main/resources/assets/hbm/models/armor/steamsuit.obj index 099bfddd6..c36978b0e 100644 --- a/src/main/resources/assets/hbm/models/armor/steamsuit.obj +++ b/src/main/resources/assets/hbm/models/armor/steamsuit.obj @@ -1,5 +1,231 @@ # Blender v2.79 (sub 0) OBJ File: 'steamsuit.blend' # www.blender.org +o RightBoot +v -5.000000 24.500002 3.000000 +v -5.000000 24.500002 -3.000000 +v 1.000000 24.500000 3.000000 +v 1.000000 24.500000 -3.000000 +v -4.000000 24.500002 -4.000000 +v 0.000000 24.500000 -4.000000 +v -0.000001 21.500000 -4.000000 +v -4.000001 21.500002 -4.000000 +v -4.500001 20.500002 2.000000 +v -4.500001 20.500002 -2.000000 +v -5.000001 20.500002 -2.000000 +v -5.000001 20.500002 2.000000 +v -5.000001 20.500002 3.000000 +v -5.000001 20.500002 -3.000000 +v -4.000001 20.500002 3.000000 +v -4.000001 20.500002 -3.000000 +v -4.000001 20.500002 2.500000 +v -4.000001 20.500002 -2.500000 +v -0.000001 20.500000 2.500000 +v -0.000001 20.500000 -2.500000 +v 0.999999 20.500000 -2.000000 +v 0.999999 20.500000 2.000000 +v 0.999999 20.500000 3.000000 +v 0.999999 20.500000 -3.000000 +v 0.499999 20.500000 -2.000000 +v 0.499999 20.500000 2.000000 +v -0.000001 20.500000 3.000000 +v -0.000001 20.500000 -3.000000 +vt -0.000000 0.425926 +vt 0.142857 0.407407 +vt -0.000000 0.407407 +vt 0.250000 0.425926 +vt 0.392857 0.407407 +vt 0.250000 0.407407 +vt 0.500000 0.425926 +vt 0.642857 0.407407 +vt 0.500000 0.407407 +vt 0.750000 0.407407 +vt 0.892857 0.425926 +vt 0.892857 0.407407 +vt 0.642857 0.259259 +vt 0.678571 0.407407 +vt 0.821429 0.407407 +vt 0.428571 0.259259 +vt 0.464286 0.407407 +vt 0.607143 0.407407 +vt 0.178571 0.407407 +vt 0.214286 0.407407 +vt 0.214286 0.259259 +vt 0.250000 0.370370 +vt 0.392857 0.259259 +vt 0.250000 0.259259 +vt 0.392857 0.370370 +vt 0.214286 0.222222 +vt 0.142857 0.425926 +vt 0.392857 0.425926 +vt 0.642857 0.425926 +vt 0.750000 0.425926 +vt 0.857143 0.407407 +vt 0.857143 0.259259 +vt 0.642857 0.407407 +vt 0.428571 0.407407 +vt 0.000000 0.259259 +vt 0.035714 0.407407 +vt -0.000000 0.407407 +vt 0.428571 0.222222 +vt 0.428571 0.000000 +vt 0.214286 -0.000000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 -0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -0.0000 -0.7071 -0.7071 +vn 0.7071 -0.0000 -0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.0000 1.0000 0.0000 +s off +f 26/1/1 21/2/1 22/3/1 +f 20/4/1 16/5/1 28/6/1 +f 10/7/1 12/8/1 11/9/1 +f 15/10/1 19/11/1 27/12/1 +f 1/13/2 15/14/2 27/15/2 +f 2/16/3 11/17/3 12/18/3 +f 21/19/4 24/20/4 4/21/4 +f 7/22/5 5/23/5 6/24/5 +f 7/22/6 28/6/6 16/5/6 +f 4/21/7 7/22/7 6/24/7 +f 8/25/8 2/16/8 5/23/8 +f 4/26/9 6/24/9 5/23/9 +f 26/1/1 25/27/1 21/2/1 +f 20/4/1 18/28/1 16/5/1 +f 10/7/1 9/29/1 12/8/1 +f 15/10/1 17/30/1 19/11/1 +f 23/31/2 3/32/2 27/15/2 +f 3/32/2 1/13/2 27/15/2 +f 1/13/2 13/33/2 15/14/2 +f 13/33/3 1/13/3 12/18/3 +f 1/13/3 2/16/3 12/18/3 +f 2/16/3 14/34/3 11/17/3 +f 4/21/4 3/35/4 22/36/4 +f 3/35/4 23/37/4 22/36/4 +f 22/36/4 21/19/4 4/21/4 +f 7/22/5 8/25/5 5/23/5 +f 14/34/6 8/25/6 16/5/6 +f 8/25/6 7/22/6 16/5/6 +f 7/22/6 24/20/6 28/6/6 +f 4/21/7 24/20/7 7/22/7 +f 8/25/8 14/34/8 2/16/8 +f 5/23/9 2/38/9 4/26/9 +f 2/38/9 1/39/9 4/26/9 +f 1/39/9 3/40/9 4/26/9 +o LeftBoot +v 5.000000 24.499998 3.000000 +v 5.000000 24.499998 -3.000000 +v -1.000000 24.500000 3.000000 +v -1.000000 24.500000 -3.000000 +v 4.000000 24.499998 -4.000000 +v 0.000000 24.500000 -4.000000 +v -0.000001 21.500000 -4.000000 +v 3.999999 21.499998 -4.000000 +v 4.499999 20.499998 2.000000 +v 4.499999 20.499998 -2.000000 +v 4.999999 20.499998 -2.000000 +v 4.999999 20.499998 2.000000 +v 4.999999 20.499998 3.000000 +v 4.999999 20.499998 -3.000000 +v 3.999999 20.499998 3.000000 +v 3.999999 20.499998 -3.000000 +v 3.999999 20.499998 2.500000 +v 3.999999 20.499998 -2.500000 +v -0.000001 20.500000 2.500000 +v -0.000001 20.500000 -2.500000 +v -1.000001 20.500000 -2.000000 +v -1.000001 20.500000 2.000000 +v -1.000001 20.500000 3.000000 +v -1.000001 20.500000 -3.000000 +v -0.500001 20.500000 -2.000000 +v -0.500001 20.500000 2.000000 +v -0.000001 20.500000 3.000000 +v -0.000001 20.500000 -3.000000 +vt 0.142857 0.407407 +vt -0.000000 0.425926 +vt -0.000000 0.407407 +vt 0.392857 0.407407 +vt 0.250000 0.425926 +vt 0.250000 0.407407 +vt 0.642857 0.407407 +vt 0.500000 0.425926 +vt 0.500000 0.407407 +vt 0.892857 0.425926 +vt 0.750000 0.407407 +vt 0.892857 0.407407 +vt 0.678571 0.407407 +vt 0.642857 0.407407 +vt 0.642857 0.259259 +vt 0.464286 0.407407 +vt 0.428571 0.407407 +vt 0.428571 0.259259 +vt 0.214286 0.259259 +vt 0.178571 0.407407 +vt 0.035714 0.407407 +vt 0.392857 0.259259 +vt 0.250000 0.370370 +vt 0.250000 0.259259 +vt 0.214286 0.407407 +vt 0.392857 0.370370 +vt 0.214286 0.222222 +vt 0.214286 -0.000000 +vt 0.428571 0.000000 +vt 0.142857 0.425926 +vt 0.392857 0.425926 +vt 0.642857 0.425926 +vt 0.750000 0.425926 +vt 0.857143 0.259259 +vt 0.821429 0.407407 +vt 0.857143 0.407407 +vt 0.607143 0.407407 +vt -0.000000 0.407407 +vt 0.000000 0.259259 +vt 0.428571 0.222222 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 -0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -0.7071 -0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 -0.0000 -0.7071 +vn 0.0000 1.0000 0.0000 +s off +f 49/41/10 54/42/10 50/43/10 +f 44/44/10 48/45/10 56/46/10 +f 40/47/10 38/48/10 39/49/10 +f 47/50/10 43/51/10 55/52/10 +f 43/53/11 41/54/11 29/55/11 +f 39/56/12 42/57/12 30/58/12 +f 32/59/13 49/60/13 50/61/13 +f 33/62/14 35/63/14 34/64/14 +f 56/46/15 52/65/15 35/63/15 +f 35/63/16 32/59/16 34/64/16 +f 30/58/17 36/66/17 33/62/17 +f 32/67/18 31/68/18 29/69/18 +f 49/41/10 53/70/10 54/42/10 +f 44/44/10 46/71/10 48/45/10 +f 40/47/10 37/72/10 38/48/10 +f 47/50/10 45/73/10 43/51/10 +f 29/55/11 31/74/11 55/75/11 +f 31/74/11 51/76/11 55/75/11 +f 55/75/11 43/53/11 29/55/11 +f 30/58/12 29/55/12 40/77/12 +f 29/55/12 41/54/12 40/77/12 +f 40/77/12 39/56/12 30/58/12 +f 51/78/13 31/79/13 50/61/13 +f 31/79/13 32/59/13 50/61/13 +f 32/59/13 52/65/13 49/60/13 +f 33/62/14 36/66/14 35/63/14 +f 35/63/15 36/66/15 44/44/15 +f 36/66/15 42/57/15 44/44/15 +f 44/44/15 56/46/15 35/63/15 +f 35/63/16 52/65/16 32/59/16 +f 30/58/17 42/57/17 36/66/17 +f 29/69/18 30/80/18 32/67/18 +f 30/80/18 33/62/18 32/67/18 +f 33/62/18 34/64/18 32/67/18 o RightArm v -4.000008 0.000002 -2.500000 v -4.000004 12.000001 -2.500000 @@ -833,451 +1059,443 @@ vn 0.0000 0.7071 -0.7071 vn 0.7071 0.7071 0.0000 vn -0.2425 0.9701 0.0000 s off -f 3/1/1 28/2/1 23/3/1 -f 17/4/2 19/5/2 42/6/2 -f 12/7/3 9/8/3 10/9/3 -f 14/10/4 15/11/4 13/12/4 -f 20/13/5 17/14/5 18/15/5 -f 22/16/4 19/17/4 20/13/4 -f 14/10/3 22/16/3 16/18/3 -f 18/15/6 1/19/6 2/20/6 -f 35/21/7 44/22/7 4/23/7 -f 25/24/6 5/25/6 7/26/6 -f 35/21/1 26/27/1 44/22/1 -f 27/28/1 1/19/1 17/4/1 -f 32/29/4 11/30/4 12/7/4 -f 29/31/6 10/9/6 9/8/6 -f 34/32/3 31/33/3 32/29/3 -f 36/34/6 33/35/6 34/32/6 -f 5/25/5 36/34/5 7/26/5 -f 38/36/5 13/37/5 15/38/5 -f 40/39/4 37/40/4 38/36/4 -f 29/31/3 40/39/3 30/41/3 -f 42/6/8 43/42/8 4/23/8 -f 27/43/5 23/3/5 28/2/5 -f 23/3/6 44/44/6 49/45/6 -f 11/46/1 29/47/1 9/48/1 -f 37/49/1 14/50/1 13/51/1 -f 37/49/9 41/52/9 42/6/9 -f 27/43/4 6/53/4 8/54/4 -f 49/45/3 26/55/3 25/24/3 -f 29/47/10 31/56/10 43/42/10 -f 54/57/4 45/58/4 46/59/4 -f 50/60/1 22/16/1 20/13/1 -f 18/15/1 50/61/1 20/13/1 -f 8/54/5 2/20/5 1/19/5 -f 3/62/1 49/45/1 25/63/1 -f 51/64/1 36/34/1 34/32/1 -f 32/29/1 51/65/1 34/32/1 -f 52/66/1 38/36/1 15/67/1 -f 30/41/1 52/68/1 10/69/1 -f 47/70/11 51/71/11 12/7/11 -f 47/72/12 48/73/12 25/24/12 -f 46/74/13 50/75/13 2/20/13 -f 45/58/14 52/76/14 15/11/14 -f 47/72/15 54/77/15 48/73/15 -f 46/74/5 48/78/5 54/79/5 -f 45/80/3 53/81/3 47/70/3 -f 59/82/5 61/83/5 60/84/5 -f 62/85/1 57/86/1 58/87/1 -f 60/84/8 56/88/8 55/89/8 -f 61/83/4 58/90/4 56/91/4 -f 59/82/6 55/92/6 57/93/6 -f 66/94/6 70/95/6 68/96/6 -f 64/97/4 67/98/4 69/99/4 -f 65/100/8 69/101/8 70/102/8 -f 63/103/1 68/104/1 67/105/1 -f 66/94/5 64/97/5 65/100/5 -f 74/106/6 78/107/6 76/108/6 -f 72/109/4 75/110/4 77/111/4 -f 73/112/8 77/113/8 78/114/8 -f 71/115/1 76/116/1 75/117/1 -f 74/106/5 72/109/5 73/112/5 -f 83/118/5 85/119/5 84/120/5 -f 86/121/1 81/122/1 82/123/1 -f 84/120/8 80/124/8 79/125/8 -f 85/119/4 82/126/4 80/127/4 -f 83/118/6 79/128/6 81/129/6 -f 90/130/6 94/131/6 92/132/6 -f 88/133/4 91/134/4 93/135/4 -f 89/136/8 93/137/8 94/138/8 -f 87/139/1 92/140/1 91/141/1 -f 90/130/5 88/133/5 89/136/5 -f 99/142/5 101/143/5 100/144/5 -f 102/145/1 97/146/1 98/147/1 -f 100/144/8 96/148/8 95/149/8 -f 101/143/4 98/150/4 96/151/4 -f 99/142/6 95/152/6 97/153/6 -f 107/154/5 109/155/5 108/156/5 -f 110/157/1 105/158/1 106/159/1 -f 108/156/8 104/160/8 103/161/8 -f 109/155/4 106/162/4 104/163/4 -f 107/154/6 103/164/6 105/165/6 -f 115/166/5 117/167/5 116/168/5 -f 118/169/1 113/170/1 114/171/1 -f 116/168/8 112/172/8 111/173/8 -f 117/167/4 114/174/4 112/175/4 -f 115/166/6 111/176/6 113/177/6 -f 122/178/6 126/179/6 124/180/6 -f 120/181/4 123/182/4 125/183/4 -f 121/184/8 125/185/8 126/186/8 -f 119/187/1 124/188/1 123/189/1 -f 122/178/5 120/181/5 121/184/5 -f 130/190/6 134/191/6 132/192/6 -f 128/193/4 131/194/4 133/195/4 -f 129/196/8 133/197/8 134/198/8 -f 127/199/1 132/200/1 131/201/1 -f 130/190/5 128/193/5 129/196/5 -f 138/202/6 142/203/6 140/204/6 -f 136/205/4 139/206/4 141/207/4 -f 137/208/8 141/209/8 142/210/8 -f 135/211/1 140/212/1 139/213/1 -f 138/202/5 136/205/5 137/208/5 -f 147/214/5 149/215/5 148/216/5 -f 150/217/1 145/218/1 146/219/1 -f 148/216/8 144/220/8 143/221/8 -f 149/215/4 146/222/4 144/223/4 -f 147/214/6 143/224/6 145/225/6 -f 155/226/3 157/227/3 156/228/3 -f 158/229/1 153/230/1 154/231/1 -f 156/228/8 152/232/8 151/233/8 -f 157/227/6 154/234/6 152/235/6 -f 155/226/4 151/236/4 153/237/4 -f 162/238/4 166/239/4 164/240/4 -f 160/241/6 163/242/6 165/243/6 -f 161/244/8 165/245/8 166/246/8 -f 159/247/1 164/248/1 163/249/1 -f 162/238/3 160/241/3 161/244/3 -f 170/250/4 174/251/4 172/252/4 -f 168/253/6 171/254/6 173/255/6 -f 169/256/8 173/257/8 174/258/8 -f 167/259/1 172/260/1 171/261/1 -f 170/250/3 168/253/3 169/256/3 -f 179/262/3 181/263/3 180/264/3 -f 182/265/1 177/266/1 178/267/1 -f 180/264/8 176/268/8 175/269/8 -f 181/263/6 178/270/6 176/271/6 -f 179/262/4 175/272/4 177/273/4 -f 187/274/3 189/275/3 188/276/3 -f 190/277/1 185/278/1 186/279/1 -f 188/276/8 184/280/8 183/281/8 -f 189/275/6 186/282/6 184/283/6 -f 187/274/4 183/284/4 185/285/4 -f 194/286/4 198/287/4 196/288/4 -f 192/289/6 195/290/6 197/291/6 -f 193/292/8 197/293/8 198/294/8 -f 191/295/1 196/296/1 195/297/1 -f 194/286/3 192/289/3 193/292/3 -f 202/298/4 206/299/4 204/300/4 -f 200/301/6 203/302/6 205/303/6 -f 201/304/8 205/305/8 206/306/8 -f 199/307/1 204/308/1 203/309/1 -f 202/298/3 200/301/3 201/304/3 -f 211/310/3 213/311/3 212/312/3 -f 214/313/1 209/314/1 210/315/1 -f 212/312/8 208/316/8 207/317/8 -f 213/311/6 210/318/6 208/319/6 -f 211/310/4 207/320/4 209/321/4 -f 218/322/3 222/323/3 220/324/3 -f 216/325/5 219/326/5 221/327/5 -f 217/328/8 221/329/8 222/330/8 -f 215/331/1 220/332/1 219/333/1 -f 218/322/6 216/325/6 217/328/6 -f 227/334/6 229/335/6 228/336/6 -f 230/337/1 225/338/1 226/339/1 -f 228/336/8 224/340/8 223/341/8 -f 229/335/5 226/342/5 224/343/5 -f 227/334/3 223/344/3 225/345/3 -f 235/346/6 237/347/6 236/348/6 -f 238/349/1 233/350/1 234/351/1 -f 236/348/8 232/352/8 231/353/8 -f 237/347/5 234/354/5 232/355/5 -f 235/346/3 231/356/3 233/357/3 -f 243/358/6 245/359/6 244/360/6 -f 246/361/1 241/362/1 242/363/1 -f 244/360/8 240/364/8 239/365/8 -f 245/359/5 242/366/5 240/367/5 -f 243/358/3 239/368/3 241/369/3 -f 250/370/3 254/371/3 252/372/3 -f 248/373/5 251/374/5 253/375/5 -f 249/376/8 253/377/8 254/378/8 -f 247/379/1 252/380/1 251/381/1 -f 250/370/6 248/373/6 249/376/6 -f 258/382/3 262/383/3 260/384/3 -f 256/385/5 259/386/5 261/387/5 -f 257/388/8 261/389/8 262/390/8 -f 255/391/1 260/392/1 259/393/1 -f 258/382/6 256/385/6 257/388/6 -f 270/394/3 274/395/3 272/396/3 -f 268/397/5 271/398/5 273/399/5 -f 269/400/8 273/401/8 274/402/8 -f 267/403/1 272/404/1 271/405/1 -f 270/394/6 268/397/6 269/400/6 -f 279/406/6 281/407/6 280/408/6 -f 282/409/1 277/410/1 278/411/1 -f 280/408/8 276/412/8 275/413/8 -f 281/407/5 278/414/5 276/415/5 -f 279/406/3 275/416/3 277/417/3 -f 286/418/3 290/419/3 288/420/3 -f 284/421/5 287/422/5 289/423/5 -f 285/424/8 289/425/8 290/426/8 -f 283/427/1 288/428/1 287/429/1 -f 286/418/6 284/421/6 285/424/6 -f 295/430/6 297/431/6 296/432/6 -f 298/433/1 293/434/1 294/435/1 -f 296/432/8 292/436/8 291/437/8 -f 297/431/5 294/438/5 292/439/5 -f 295/430/3 291/440/3 293/441/3 -f 265/442/8 302/443/8 266/444/8 -f 265/445/6 264/446/6 263/447/6 -f 300/448/4 301/449/4 299/450/4 -f 299/451/1 264/446/1 300/448/1 -f 300/448/3 266/444/3 302/443/3 -f 307/452/6 309/453/6 308/454/6 -f 310/455/1 305/456/1 306/457/1 -f 308/454/8 304/458/8 303/459/8 -f 309/453/5 306/460/5 304/461/5 -f 307/452/3 303/462/3 305/463/3 -f 314/464/3 318/465/3 316/466/3 -f 312/467/5 315/468/5 317/469/5 -f 313/470/8 317/471/8 318/472/8 -f 311/473/1 316/474/1 315/475/1 -f 314/464/6 312/467/6 313/470/6 -f 3/1/1 6/476/1 28/2/1 -f 42/6/2 4/23/2 27/28/2 -f 4/23/2 24/477/2 27/28/2 -f 27/28/2 17/4/2 42/6/2 -f 12/7/3 11/30/3 9/8/3 -f 14/10/4 16/18/4 15/11/4 -f 20/13/5 19/17/5 17/14/5 -f 22/16/4 21/478/4 19/17/4 -f 14/10/3 21/478/3 22/16/3 -f 18/15/6 17/14/6 1/19/6 -f 44/22/7 24/477/7 4/23/7 -f 4/23/7 43/42/7 35/21/7 -f 43/42/7 33/479/7 35/21/7 -f 25/24/6 26/55/6 5/25/6 -f 35/21/1 5/480/1 26/27/1 -f 27/28/1 8/54/1 1/19/1 -f 32/29/4 31/33/4 11/30/4 -f 29/31/6 30/41/6 10/9/6 -f 34/32/3 33/35/3 31/33/3 -f 36/34/6 35/481/6 33/35/6 -f 5/25/5 35/481/5 36/34/5 -f 38/36/5 37/40/5 13/37/5 -f 40/39/4 39/482/4 37/40/4 -f 29/31/3 39/482/3 40/39/3 -f 42/6/8 41/52/8 43/42/8 -f 27/43/5 24/483/5 23/3/5 -f 23/3/6 24/483/6 44/44/6 -f 11/46/1 31/56/1 29/47/1 -f 37/49/1 21/484/1 14/50/1 -f 42/6/9 19/5/9 21/484/9 -f 37/49/9 39/485/9 41/52/9 -f 42/6/9 21/484/9 37/49/9 -f 27/43/4 28/2/4 6/53/4 -f 49/45/3 44/44/3 26/55/3 -f 31/56/10 33/479/10 43/42/10 -f 43/42/10 41/52/10 29/47/10 -f 41/52/10 39/485/10 29/47/10 -f 54/57/4 53/486/4 45/58/4 -f 50/60/1 16/487/1 22/16/1 -f 18/15/1 2/488/1 50/61/1 -f 8/54/5 6/53/5 2/20/5 -f 3/62/1 23/3/1 49/45/1 -f 51/64/1 7/489/1 36/34/1 -f 32/29/1 12/490/1 51/65/1 -f 52/66/1 40/39/1 38/36/1 -f 30/41/1 40/39/1 52/68/1 -f 12/7/11 10/9/11 47/70/11 -f 10/9/11 52/491/11 45/80/11 -f 47/70/11 10/9/11 45/80/11 -f 3/492/12 25/24/12 48/73/12 -f 25/24/12 7/26/12 47/72/12 -f 7/26/12 51/493/12 47/72/12 -f 2/20/13 6/53/13 46/74/13 -f 6/53/13 3/494/13 48/78/13 -f 46/74/13 6/53/13 48/78/13 -f 15/11/14 16/18/14 45/58/14 -f 16/18/14 50/495/14 46/59/14 -f 45/58/14 16/18/14 46/59/14 -f 47/72/15 53/496/15 54/77/15 -f 59/82/5 62/85/5 61/83/5 -f 62/85/1 59/82/1 57/86/1 -f 60/84/8 61/83/8 56/88/8 -f 61/83/4 62/85/4 58/90/4 -f 59/82/6 60/84/6 55/92/6 -f 66/94/6 65/100/6 70/95/6 -f 64/97/4 63/103/4 67/98/4 -f 65/100/8 64/97/8 69/101/8 -f 63/103/1 66/94/1 68/104/1 -f 66/94/5 63/103/5 64/97/5 -f 74/106/6 73/112/6 78/107/6 -f 72/109/4 71/115/4 75/110/4 -f 73/112/8 72/109/8 77/113/8 -f 71/115/1 74/106/1 76/116/1 -f 74/106/5 71/115/5 72/109/5 -f 83/118/5 86/121/5 85/119/5 -f 86/121/1 83/118/1 81/122/1 -f 84/120/8 85/119/8 80/124/8 -f 85/119/4 86/121/4 82/126/4 -f 83/118/6 84/120/6 79/128/6 -f 90/130/6 89/136/6 94/131/6 -f 88/133/4 87/139/4 91/134/4 -f 89/136/8 88/133/8 93/137/8 -f 87/139/1 90/130/1 92/140/1 -f 90/130/5 87/139/5 88/133/5 -f 99/142/5 102/145/5 101/143/5 -f 102/145/1 99/142/1 97/146/1 -f 100/144/8 101/143/8 96/148/8 -f 101/143/4 102/145/4 98/150/4 -f 99/142/6 100/144/6 95/152/6 -f 107/154/5 110/157/5 109/155/5 -f 110/157/1 107/154/1 105/158/1 -f 108/156/8 109/155/8 104/160/8 -f 109/155/4 110/157/4 106/162/4 -f 107/154/6 108/156/6 103/164/6 -f 115/166/5 118/169/5 117/167/5 -f 118/169/1 115/166/1 113/170/1 -f 116/168/8 117/167/8 112/172/8 -f 117/167/4 118/169/4 114/174/4 -f 115/166/6 116/168/6 111/176/6 -f 122/178/6 121/184/6 126/179/6 -f 120/181/4 119/187/4 123/182/4 -f 121/184/8 120/181/8 125/185/8 -f 119/187/1 122/178/1 124/188/1 -f 122/178/5 119/187/5 120/181/5 -f 130/190/6 129/196/6 134/191/6 -f 128/193/4 127/199/4 131/194/4 -f 129/196/8 128/193/8 133/197/8 -f 127/199/1 130/190/1 132/200/1 -f 130/190/5 127/199/5 128/193/5 -f 138/202/6 137/208/6 142/203/6 -f 136/205/4 135/211/4 139/206/4 -f 137/208/8 136/205/8 141/209/8 -f 135/211/1 138/202/1 140/212/1 -f 138/202/5 135/211/5 136/205/5 -f 147/214/5 150/217/5 149/215/5 -f 150/217/1 147/214/1 145/218/1 -f 148/216/8 149/215/8 144/220/8 -f 149/215/4 150/217/4 146/222/4 -f 147/214/6 148/216/6 143/224/6 -f 155/226/3 158/229/3 157/227/3 -f 158/229/1 155/226/1 153/230/1 -f 156/228/8 157/227/8 152/232/8 -f 157/227/6 158/229/6 154/234/6 -f 155/226/4 156/228/4 151/236/4 -f 162/238/4 161/244/4 166/239/4 -f 160/241/6 159/247/6 163/242/6 -f 161/244/8 160/241/8 165/245/8 -f 159/247/1 162/238/1 164/248/1 -f 162/238/3 159/247/3 160/241/3 -f 170/250/4 169/256/4 174/251/4 -f 168/253/6 167/259/6 171/254/6 -f 169/256/8 168/253/8 173/257/8 -f 167/259/1 170/250/1 172/260/1 -f 170/250/3 167/259/3 168/253/3 -f 179/262/3 182/265/3 181/263/3 -f 182/265/1 179/262/1 177/266/1 -f 180/264/8 181/263/8 176/268/8 -f 181/263/6 182/265/6 178/270/6 -f 179/262/4 180/264/4 175/272/4 -f 187/274/3 190/277/3 189/275/3 -f 190/277/1 187/274/1 185/278/1 -f 188/276/8 189/275/8 184/280/8 -f 189/275/6 190/277/6 186/282/6 -f 187/274/4 188/276/4 183/284/4 -f 194/286/4 193/292/4 198/287/4 -f 192/289/6 191/295/6 195/290/6 -f 193/292/8 192/289/8 197/293/8 -f 191/295/1 194/286/1 196/296/1 -f 194/286/3 191/295/3 192/289/3 -f 202/298/4 201/304/4 206/299/4 -f 200/301/6 199/307/6 203/302/6 -f 201/304/8 200/301/8 205/305/8 -f 199/307/1 202/298/1 204/308/1 -f 202/298/3 199/307/3 200/301/3 -f 211/310/3 214/313/3 213/311/3 -f 214/313/1 211/310/1 209/314/1 -f 212/312/8 213/311/8 208/316/8 -f 213/311/6 214/313/6 210/318/6 -f 211/310/4 212/312/4 207/320/4 -f 218/322/3 217/328/3 222/323/3 -f 216/325/5 215/331/5 219/326/5 -f 217/328/8 216/325/8 221/329/8 -f 215/331/1 218/322/1 220/332/1 -f 218/322/6 215/331/6 216/325/6 -f 227/334/6 230/337/6 229/335/6 -f 230/337/1 227/334/1 225/338/1 -f 228/336/8 229/335/8 224/340/8 -f 229/335/5 230/337/5 226/342/5 -f 227/334/3 228/336/3 223/344/3 -f 235/346/6 238/349/6 237/347/6 -f 238/349/1 235/346/1 233/350/1 -f 236/348/8 237/347/8 232/352/8 -f 237/347/5 238/349/5 234/354/5 -f 235/346/3 236/348/3 231/356/3 -f 243/358/6 246/361/6 245/359/6 -f 246/361/1 243/358/1 241/362/1 -f 244/360/8 245/359/8 240/364/8 -f 245/359/5 246/361/5 242/366/5 -f 243/358/3 244/360/3 239/368/3 -f 250/370/3 249/376/3 254/371/3 -f 248/373/5 247/379/5 251/374/5 -f 249/376/8 248/373/8 253/377/8 -f 247/379/1 250/370/1 252/380/1 -f 250/370/6 247/379/6 248/373/6 -f 258/382/3 257/388/3 262/383/3 -f 256/385/5 255/391/5 259/386/5 -f 257/388/8 256/385/8 261/389/8 -f 255/391/1 258/382/1 260/392/1 -f 258/382/6 255/391/6 256/385/6 -f 270/394/3 269/400/3 274/395/3 -f 268/397/5 267/403/5 271/398/5 -f 269/400/8 268/397/8 273/401/8 -f 267/403/1 270/394/1 272/404/1 -f 270/394/6 267/403/6 268/397/6 -f 279/406/6 282/409/6 281/407/6 -f 282/409/1 279/406/1 277/410/1 -f 280/408/8 281/407/8 276/412/8 -f 281/407/5 282/409/5 278/414/5 -f 279/406/3 280/408/3 275/416/3 -f 286/418/3 285/424/3 290/419/3 -f 284/421/5 283/427/5 287/422/5 -f 285/424/8 284/421/8 289/425/8 -f 283/427/1 286/418/1 288/428/1 -f 286/418/6 283/427/6 284/421/6 -f 295/430/6 298/433/6 297/431/6 -f 298/433/1 295/430/1 293/434/1 -f 296/432/8 297/431/8 292/436/8 -f 297/431/5 298/433/5 294/438/5 -f 295/430/3 296/432/3 291/440/3 -f 265/442/8 301/497/8 302/443/8 -f 265/445/6 266/444/6 264/446/6 -f 300/448/4 302/443/4 301/449/4 -f 299/451/1 263/498/1 264/446/1 -f 300/448/3 264/446/3 266/444/3 -f 307/452/6 310/455/6 309/453/6 -f 310/455/1 307/452/1 305/456/1 -f 308/454/8 309/453/8 304/458/8 -f 309/453/5 310/455/5 306/460/5 -f 307/452/3 308/454/3 303/462/3 -f 314/464/3 313/470/3 318/465/3 -f 312/467/5 311/473/5 315/468/5 -f 313/470/8 312/467/8 317/471/8 -f 311/473/1 314/464/1 316/474/1 -f 314/464/6 311/473/6 312/467/6 +f 59/81/19 84/82/19 79/83/19 +f 73/84/20 75/85/20 98/86/20 +f 68/87/21 65/88/21 66/89/21 +f 70/90/22 71/91/22 69/92/22 +f 76/93/23 73/94/23 74/95/23 +f 78/96/22 75/97/22 76/93/22 +f 70/90/21 78/96/21 72/98/21 +f 74/95/24 57/99/24 58/100/24 +f 91/101/25 100/102/25 60/103/25 +f 81/104/24 61/105/24 63/106/24 +f 91/101/19 82/107/19 100/102/19 +f 83/108/19 57/99/19 73/84/19 +f 88/109/22 67/110/22 68/87/22 +f 85/111/24 66/89/24 65/88/24 +f 90/112/21 87/113/21 88/109/21 +f 92/114/24 89/115/24 90/112/24 +f 61/105/23 92/114/23 63/106/23 +f 94/116/23 69/117/23 71/118/23 +f 96/119/22 93/120/22 94/116/22 +f 85/111/21 96/119/21 86/121/21 +f 98/86/26 99/122/26 60/103/26 +f 83/123/23 79/83/23 84/82/23 +f 79/83/24 100/124/24 105/125/24 +f 67/126/19 85/127/19 65/128/19 +f 93/129/19 70/130/19 69/131/19 +f 93/129/27 97/132/27 98/86/27 +f 83/123/22 62/133/22 64/134/22 +f 105/125/21 82/135/21 81/104/21 +f 85/127/28 87/136/28 99/122/28 +f 110/137/22 101/138/22 102/139/22 +f 106/140/19 78/96/19 76/93/19 +f 74/95/19 106/141/19 76/93/19 +f 64/134/23 58/100/23 57/99/23 +f 59/142/19 105/125/19 81/143/19 +f 107/144/19 92/114/19 90/112/19 +f 88/109/19 107/145/19 90/112/19 +f 108/146/19 94/116/19 71/147/19 +f 86/121/19 108/148/19 66/149/19 +f 103/150/29 107/151/29 68/87/29 +f 103/152/30 104/153/30 81/104/30 +f 102/154/31 106/155/31 58/100/31 +f 101/138/32 108/156/32 71/91/32 +f 103/152/33 110/157/33 104/153/33 +f 102/154/23 104/158/23 110/159/23 +f 101/160/21 109/161/21 103/150/21 +f 115/162/23 117/163/23 116/164/23 +f 118/165/19 113/166/19 114/167/19 +f 116/164/26 112/168/26 111/169/26 +f 117/163/22 114/170/22 112/171/22 +f 115/162/24 111/172/24 113/173/24 +f 122/174/24 126/175/24 124/176/24 +f 120/177/22 123/178/22 125/179/22 +f 121/180/26 125/181/26 126/182/26 +f 119/183/19 124/184/19 123/185/19 +f 122/174/23 120/177/23 121/180/23 +f 130/186/24 134/187/24 132/188/24 +f 128/189/22 131/190/22 133/191/22 +f 129/192/26 133/193/26 134/194/26 +f 127/195/19 132/196/19 131/197/19 +f 130/186/23 128/189/23 129/192/23 +f 139/198/23 141/199/23 140/200/23 +f 142/201/19 137/202/19 138/203/19 +f 140/200/26 136/204/26 135/205/26 +f 141/199/22 138/206/22 136/207/22 +f 139/198/24 135/208/24 137/209/24 +f 146/210/24 150/211/24 148/212/24 +f 144/213/22 147/214/22 149/215/22 +f 145/216/26 149/217/26 150/218/26 +f 143/219/19 148/220/19 147/221/19 +f 146/210/23 144/213/23 145/216/23 +f 155/222/23 157/223/23 156/224/23 +f 158/225/19 153/226/19 154/227/19 +f 156/224/26 152/228/26 151/229/26 +f 157/223/22 154/230/22 152/231/22 +f 155/222/24 151/232/24 153/233/24 +f 163/234/23 165/235/23 164/236/23 +f 166/237/19 161/238/19 162/239/19 +f 164/236/26 160/240/26 159/241/26 +f 165/235/22 162/242/22 160/243/22 +f 163/234/24 159/244/24 161/245/24 +f 171/246/23 173/247/23 172/248/23 +f 174/249/19 169/250/19 170/251/19 +f 172/248/26 168/252/26 167/253/26 +f 173/247/22 170/254/22 168/255/22 +f 171/246/24 167/256/24 169/257/24 +f 178/258/24 182/259/24 180/260/24 +f 176/261/22 179/262/22 181/263/22 +f 177/264/26 181/265/26 182/266/26 +f 175/267/19 180/268/19 179/269/19 +f 178/258/23 176/261/23 177/264/23 +f 186/270/24 190/271/24 188/272/24 +f 184/273/22 187/274/22 189/275/22 +f 185/276/26 189/277/26 190/278/26 +f 183/279/19 188/280/19 187/281/19 +f 186/270/23 184/273/23 185/276/23 +f 194/282/24 198/283/24 196/284/24 +f 192/285/22 195/286/22 197/287/22 +f 193/288/26 197/289/26 198/290/26 +f 191/291/19 196/292/19 195/293/19 +f 194/282/23 192/285/23 193/288/23 +f 203/294/23 205/295/23 204/296/23 +f 206/297/19 201/298/19 202/299/19 +f 204/296/26 200/300/26 199/301/26 +f 205/295/22 202/302/22 200/303/22 +f 203/294/24 199/304/24 201/305/24 +f 211/306/21 213/307/21 212/308/21 +f 214/309/19 209/310/19 210/311/19 +f 212/308/26 208/312/26 207/313/26 +f 213/307/24 210/314/24 208/315/24 +f 211/306/22 207/316/22 209/317/22 +f 218/318/22 222/319/22 220/320/22 +f 216/321/24 219/322/24 221/323/24 +f 217/324/26 221/325/26 222/326/26 +f 215/327/19 220/328/19 219/329/19 +f 218/318/21 216/321/21 217/324/21 +f 226/330/22 230/331/22 228/332/22 +f 224/333/24 227/334/24 229/335/24 +f 225/336/26 229/337/26 230/338/26 +f 223/339/19 228/340/19 227/341/19 +f 226/330/21 224/333/21 225/336/21 +f 235/342/21 237/343/21 236/344/21 +f 238/345/19 233/346/19 234/347/19 +f 236/344/26 232/348/26 231/349/26 +f 237/343/24 234/350/24 232/351/24 +f 235/342/22 231/352/22 233/353/22 +f 243/354/21 245/355/21 244/356/21 +f 246/357/19 241/358/19 242/359/19 +f 244/356/26 240/360/26 239/361/26 +f 245/355/24 242/362/24 240/363/24 +f 243/354/22 239/364/22 241/365/22 +f 250/366/22 254/367/22 252/368/22 +f 248/369/24 251/370/24 253/371/24 +f 249/372/26 253/373/26 254/374/26 +f 247/375/19 252/376/19 251/377/19 +f 250/366/21 248/369/21 249/372/21 +f 258/378/22 262/379/22 260/380/22 +f 256/381/24 259/382/24 261/383/24 +f 257/384/26 261/385/26 262/386/26 +f 255/387/19 260/388/19 259/389/19 +f 258/378/21 256/381/21 257/384/21 +f 267/390/21 269/391/21 268/392/21 +f 270/393/19 265/394/19 266/395/19 +f 268/392/26 264/396/26 263/397/26 +f 269/391/24 266/398/24 264/399/24 +f 267/390/22 263/400/22 265/401/22 +f 274/402/21 278/403/21 276/404/21 +f 272/405/23 275/406/23 277/407/23 +f 273/408/26 277/409/26 278/410/26 +f 271/411/19 276/412/19 275/413/19 +f 274/402/24 272/405/24 273/408/24 +f 283/414/24 285/415/24 284/416/24 +f 286/417/19 281/418/19 282/419/19 +f 284/416/26 280/420/26 279/421/26 +f 285/415/23 282/422/23 280/423/23 +f 283/414/21 279/424/21 281/425/21 +f 291/426/24 293/427/24 292/428/24 +f 294/429/19 289/430/19 290/431/19 +f 292/428/26 288/432/26 287/433/26 +f 293/427/23 290/434/23 288/435/23 +f 291/426/21 287/436/21 289/437/21 +f 299/438/24 301/439/24 300/440/24 +f 302/441/19 297/442/19 298/443/19 +f 300/440/26 296/444/26 295/445/26 +f 301/439/23 298/446/23 296/447/23 +f 299/438/21 295/448/21 297/449/21 +f 306/450/21 310/451/21 308/452/21 +f 304/453/23 307/454/23 309/455/23 +f 305/456/26 309/457/26 310/458/26 +f 303/459/19 308/460/19 307/461/19 +f 306/450/24 304/453/24 305/456/24 +f 314/462/21 318/463/21 316/464/21 +f 312/465/23 315/466/23 317/467/23 +f 313/468/26 317/469/26 318/470/26 +f 311/471/19 316/472/19 315/473/19 +f 314/462/24 312/465/24 313/468/24 +f 326/474/21 330/475/21 328/476/21 +f 324/477/23 327/478/23 329/479/23 +f 325/480/26 329/481/26 330/482/26 +f 323/483/19 328/484/19 327/485/19 +f 326/474/24 324/477/24 325/480/24 +f 335/486/24 337/487/24 336/488/24 +f 338/489/19 333/490/19 334/491/19 +f 336/488/26 332/492/26 331/493/26 +f 337/487/23 334/494/23 332/495/23 +f 335/486/21 331/496/21 333/497/21 +f 342/498/21 346/499/21 344/500/21 +f 340/501/23 343/502/23 345/503/23 +f 341/504/26 345/505/26 346/506/26 +f 339/507/19 344/508/19 343/509/19 +f 342/498/24 340/501/24 341/504/24 +f 351/510/24 353/511/24 352/512/24 +f 354/513/19 349/514/19 350/515/19 +f 352/512/26 348/516/26 347/517/26 +f 353/511/23 350/518/23 348/519/23 +f 351/510/21 347/520/21 349/521/21 +f 321/522/26 358/523/26 322/524/26 +f 321/525/24 320/526/24 319/527/24 +f 356/528/22 357/529/22 355/530/22 +f 355/531/19 320/526/19 356/528/19 +f 356/528/21 322/524/21 358/523/21 +f 363/532/24 365/533/24 364/534/24 +f 366/535/19 361/536/19 362/537/19 +f 364/534/26 360/538/26 359/539/26 +f 365/533/23 362/540/23 360/541/23 +f 363/532/21 359/542/21 361/543/21 +f 370/544/21 374/545/21 372/546/21 +f 368/547/23 371/548/23 373/549/23 +f 369/550/26 373/551/26 374/552/26 +f 367/553/19 372/554/19 371/555/19 +f 370/544/24 368/547/24 369/550/24 +f 59/81/19 62/556/19 84/82/19 +f 98/86/20 60/103/20 83/108/20 +f 60/103/20 80/557/20 83/108/20 +f 83/108/20 73/84/20 98/86/20 +f 68/87/21 67/110/21 65/88/21 +f 70/90/22 72/98/22 71/91/22 +f 76/93/23 75/97/23 73/94/23 +f 78/96/22 77/558/22 75/97/22 +f 70/90/21 77/558/21 78/96/21 +f 74/95/24 73/94/24 57/99/24 +f 100/102/25 80/557/25 60/103/25 +f 60/103/25 99/122/25 91/101/25 +f 99/122/25 89/559/25 91/101/25 +f 81/104/24 82/135/24 61/105/24 +f 91/101/19 61/560/19 82/107/19 +f 83/108/19 64/134/19 57/99/19 +f 88/109/22 87/113/22 67/110/22 +f 85/111/24 86/121/24 66/89/24 +f 90/112/21 89/115/21 87/113/21 +f 92/114/24 91/561/24 89/115/24 +f 61/105/23 91/561/23 92/114/23 +f 94/116/23 93/120/23 69/117/23 +f 96/119/22 95/562/22 93/120/22 +f 85/111/21 95/562/21 96/119/21 +f 98/86/26 97/132/26 99/122/26 +f 83/123/23 80/563/23 79/83/23 +f 79/83/24 80/563/24 100/124/24 +f 67/126/19 87/136/19 85/127/19 +f 93/129/19 77/564/19 70/130/19 +f 98/86/27 75/85/27 77/564/27 +f 93/129/27 95/565/27 97/132/27 +f 98/86/27 77/564/27 93/129/27 +f 83/123/22 84/82/22 62/133/22 +f 105/125/21 100/124/21 82/135/21 +f 87/136/28 89/559/28 99/122/28 +f 99/122/28 97/132/28 85/127/28 +f 97/132/28 95/565/28 85/127/28 +f 110/137/22 109/566/22 101/138/22 +f 106/140/19 72/567/19 78/96/19 +f 74/95/19 58/568/19 106/141/19 +f 64/134/23 62/133/23 58/100/23 +f 59/142/19 79/83/19 105/125/19 +f 107/144/19 63/569/19 92/114/19 +f 88/109/19 68/570/19 107/145/19 +f 108/146/19 96/119/19 94/116/19 +f 86/121/19 96/119/19 108/148/19 +f 68/87/29 66/89/29 103/150/29 +f 66/89/29 108/571/29 101/160/29 +f 103/150/29 66/89/29 101/160/29 +f 59/572/30 81/104/30 104/153/30 +f 81/104/30 63/106/30 103/152/30 +f 63/106/30 107/573/30 103/152/30 +f 58/100/31 62/133/31 102/154/31 +f 62/133/31 59/574/31 104/158/31 +f 102/154/31 62/133/31 104/158/31 +f 71/91/32 72/98/32 101/138/32 +f 72/98/32 106/575/32 102/139/32 +f 101/138/32 72/98/32 102/139/32 +f 103/152/33 109/576/33 110/157/33 +f 115/162/23 118/165/23 117/163/23 +f 118/165/19 115/162/19 113/166/19 +f 116/164/26 117/163/26 112/168/26 +f 117/163/22 118/165/22 114/170/22 +f 115/162/24 116/164/24 111/172/24 +f 122/174/24 121/180/24 126/175/24 +f 120/177/22 119/183/22 123/178/22 +f 121/180/26 120/177/26 125/181/26 +f 119/183/19 122/174/19 124/184/19 +f 122/174/23 119/183/23 120/177/23 +f 130/186/24 129/192/24 134/187/24 +f 128/189/22 127/195/22 131/190/22 +f 129/192/26 128/189/26 133/193/26 +f 127/195/19 130/186/19 132/196/19 +f 130/186/23 127/195/23 128/189/23 +f 139/198/23 142/201/23 141/199/23 +f 142/201/19 139/198/19 137/202/19 +f 140/200/26 141/199/26 136/204/26 +f 141/199/22 142/201/22 138/206/22 +f 139/198/24 140/200/24 135/208/24 +f 146/210/24 145/216/24 150/211/24 +f 144/213/22 143/219/22 147/214/22 +f 145/216/26 144/213/26 149/217/26 +f 143/219/19 146/210/19 148/220/19 +f 146/210/23 143/219/23 144/213/23 +f 155/222/23 158/225/23 157/223/23 +f 158/225/19 155/222/19 153/226/19 +f 156/224/26 157/223/26 152/228/26 +f 157/223/22 158/225/22 154/230/22 +f 155/222/24 156/224/24 151/232/24 +f 163/234/23 166/237/23 165/235/23 +f 166/237/19 163/234/19 161/238/19 +f 164/236/26 165/235/26 160/240/26 +f 165/235/22 166/237/22 162/242/22 +f 163/234/24 164/236/24 159/244/24 +f 171/246/23 174/249/23 173/247/23 +f 174/249/19 171/246/19 169/250/19 +f 172/248/26 173/247/26 168/252/26 +f 173/247/22 174/249/22 170/254/22 +f 171/246/24 172/248/24 167/256/24 +f 178/258/24 177/264/24 182/259/24 +f 176/261/22 175/267/22 179/262/22 +f 177/264/26 176/261/26 181/265/26 +f 175/267/19 178/258/19 180/268/19 +f 178/258/23 175/267/23 176/261/23 +f 186/270/24 185/276/24 190/271/24 +f 184/273/22 183/279/22 187/274/22 +f 185/276/26 184/273/26 189/277/26 +f 183/279/19 186/270/19 188/280/19 +f 186/270/23 183/279/23 184/273/23 +f 194/282/24 193/288/24 198/283/24 +f 192/285/22 191/291/22 195/286/22 +f 193/288/26 192/285/26 197/289/26 +f 191/291/19 194/282/19 196/292/19 +f 194/282/23 191/291/23 192/285/23 +f 203/294/23 206/297/23 205/295/23 +f 206/297/19 203/294/19 201/298/19 +f 204/296/26 205/295/26 200/300/26 +f 205/295/22 206/297/22 202/302/22 +f 203/294/24 204/296/24 199/304/24 +f 211/306/21 214/309/21 213/307/21 +f 214/309/19 211/306/19 209/310/19 +f 212/308/26 213/307/26 208/312/26 +f 213/307/24 214/309/24 210/314/24 +f 211/306/22 212/308/22 207/316/22 +f 218/318/22 217/324/22 222/319/22 +f 216/321/24 215/327/24 219/322/24 +f 217/324/26 216/321/26 221/325/26 +f 215/327/19 218/318/19 220/328/19 +f 218/318/21 215/327/21 216/321/21 +f 226/330/22 225/336/22 230/331/22 +f 224/333/24 223/339/24 227/334/24 +f 225/336/26 224/333/26 229/337/26 +f 223/339/19 226/330/19 228/340/19 +f 226/330/21 223/339/21 224/333/21 +f 235/342/21 238/345/21 237/343/21 +f 238/345/19 235/342/19 233/346/19 +f 236/344/26 237/343/26 232/348/26 +f 237/343/24 238/345/24 234/350/24 +f 235/342/22 236/344/22 231/352/22 +f 243/354/21 246/357/21 245/355/21 +f 246/357/19 243/354/19 241/358/19 +f 244/356/26 245/355/26 240/360/26 +f 245/355/24 246/357/24 242/362/24 +f 243/354/22 244/356/22 239/364/22 +f 250/366/22 249/372/22 254/367/22 +f 248/369/24 247/375/24 251/370/24 +f 249/372/26 248/369/26 253/373/26 +f 247/375/19 250/366/19 252/376/19 +f 250/366/21 247/375/21 248/369/21 +f 258/378/22 257/384/22 262/379/22 +f 256/381/24 255/387/24 259/382/24 +f 257/384/26 256/381/26 261/385/26 +f 255/387/19 258/378/19 260/388/19 +f 258/378/21 255/387/21 256/381/21 +f 267/390/21 270/393/21 269/391/21 +f 270/393/19 267/390/19 265/394/19 +f 268/392/26 269/391/26 264/396/26 +f 269/391/24 270/393/24 266/398/24 +f 267/390/22 268/392/22 263/400/22 +f 274/402/21 273/408/21 278/403/21 +f 272/405/23 271/411/23 275/406/23 +f 273/408/26 272/405/26 277/409/26 +f 271/411/19 274/402/19 276/412/19 +f 274/402/24 271/411/24 272/405/24 +f 283/414/24 286/417/24 285/415/24 +f 286/417/19 283/414/19 281/418/19 +f 284/416/26 285/415/26 280/420/26 +f 285/415/23 286/417/23 282/422/23 +f 283/414/21 284/416/21 279/424/21 +f 291/426/24 294/429/24 293/427/24 +f 294/429/19 291/426/19 289/430/19 +f 292/428/26 293/427/26 288/432/26 +f 293/427/23 294/429/23 290/434/23 +f 291/426/21 292/428/21 287/436/21 +f 299/438/24 302/441/24 301/439/24 +f 302/441/19 299/438/19 297/442/19 +f 300/440/26 301/439/26 296/444/26 +f 301/439/23 302/441/23 298/446/23 +f 299/438/21 300/440/21 295/448/21 +f 306/450/21 305/456/21 310/451/21 +f 304/453/23 303/459/23 307/454/23 +f 305/456/26 304/453/26 309/457/26 +f 303/459/19 306/450/19 308/460/19 +f 306/450/24 303/459/24 304/453/24 +f 314/462/21 313/468/21 318/463/21 +f 312/465/23 311/471/23 315/466/23 +f 313/468/26 312/465/26 317/469/26 +f 311/471/19 314/462/19 316/472/19 +f 314/462/24 311/471/24 312/465/24 +f 326/474/21 325/480/21 330/475/21 +f 324/477/23 323/483/23 327/478/23 +f 325/480/26 324/477/26 329/481/26 +f 323/483/19 326/474/19 328/484/19 +f 326/474/24 323/483/24 324/477/24 +f 335/486/24 338/489/24 337/487/24 +f 338/489/19 335/486/19 333/490/19 +f 336/488/26 337/487/26 332/492/26 +f 337/487/23 338/489/23 334/494/23 +f 335/486/21 336/488/21 331/496/21 +f 342/498/21 341/504/21 346/499/21 +f 340/501/23 339/507/23 343/502/23 +f 341/504/26 340/501/26 345/505/26 +f 339/507/19 342/498/19 344/508/19 +f 342/498/24 339/507/24 340/501/24 +f 351/510/24 354/513/24 353/511/24 +f 354/513/19 351/510/19 349/514/19 +f 352/512/26 353/511/26 348/516/26 +f 353/511/23 354/513/23 350/518/23 +f 351/510/21 352/512/21 347/520/21 +f 321/522/26 357/577/26 358/523/26 +f 321/525/24 322/524/24 320/526/24 +f 356/528/22 358/523/22 357/529/22 +f 355/531/19 319/578/19 320/526/19 +f 356/528/21 320/526/21 322/524/21 +f 363/532/24 366/535/24 365/533/24 +f 366/535/19 363/532/19 361/536/19 +f 364/534/26 365/533/26 360/538/26 +f 365/533/23 366/535/23 362/540/23 +f 363/532/21 364/534/21 359/542/21 +f 370/544/21 369/550/21 374/545/21 +f 368/547/23 367/553/23 371/548/23 +f 369/550/26 368/547/26 373/551/26 +f 367/553/19 370/544/19 372/554/19 +f 370/544/24 367/553/24 368/547/24 o RightLeg -v -5.000000 24.500002 3.000000 -v -5.000000 24.500002 -3.000000 -v 1.000000 24.500000 3.000000 -v 1.000000 24.500000 -3.000000 -v -4.000000 24.500002 -4.000000 -v 0.000000 24.500000 -4.000000 v -4.000004 11.000001 -2.000000 v -4.000004 11.000001 2.000000 -v -0.000001 21.500000 -4.000000 -v -4.000001 21.500002 -4.000000 v -4.500004 12.000002 2.000000 v -4.500004 12.000002 -2.000000 v -5.000004 12.000002 -2.000000 @@ -1501,18 +1719,10 @@ vt 0.392857 0.796296 vt 0.392857 0.759259 vt 0.250000 0.759259 vt 0.250000 0.796296 -vt -0.000000 0.425926 -vt 0.142857 0.407407 -vt -0.000000 0.407407 -vt 0.250000 0.425926 -vt 0.392857 0.407407 -vt 0.250000 0.407407 -vt 0.500000 0.425926 -vt 0.642857 0.407407 -vt 0.500000 0.407407 vt 0.750000 0.740741 vt 0.732143 0.425926 vt 0.732143 0.740741 +vt 0.500000 0.425926 vt 0.482143 0.740741 vt 0.500000 0.740741 vt 0.946429 0.425926 @@ -1531,6 +1741,7 @@ vt 0.250000 0.740741 vt 0.392857 0.740741 vt 0.482143 0.425926 vt 0.446429 0.740741 +vt 0.250000 0.425926 vt 0.160714 0.425926 vt 0.160714 0.740741 vt 0.696429 0.740741 @@ -1547,23 +1758,8 @@ vt 1.000000 0.740741 vt 0.410714 0.425926 vt 0.642857 0.425926 vt 0.000000 0.740741 -vt 0.750000 0.407407 -vt 0.892857 0.407407 -vt 0.642857 0.259259 -vt 0.678571 0.407407 -vt 0.821429 0.407407 -vt 0.428571 0.259259 -vt 0.464286 0.407407 -vt 0.607143 0.407407 -vt 0.178571 0.407407 -vt 0.214286 0.407407 -vt 0.214286 0.259259 -vt 0.250000 0.370370 -vt 0.392857 0.259259 -vt 0.250000 0.259259 vt 0.250000 0.981481 vt 0.392857 1.000000 -vt 0.392857 0.370370 vt 0.196429 0.796296 vt 0.214286 0.944444 vt 0.214286 0.796296 @@ -1824,361 +2020,315 @@ vt 0.071429 0.759259 vt 0.017857 0.796296 vt -0.000000 0.759259 vt -0.000000 0.796296 -vt 0.214286 0.222222 vt 0.214286 0.981481 vt 0.428571 0.981481 vt 0.214286 0.759259 vt 0.910714 0.425926 vt 0.232143 0.425926 -vt 0.857143 0.407407 -vt 0.857143 0.259259 -vt 0.642857 0.407407 -vt 0.428571 0.407407 -vt 0.000000 0.259259 -vt 0.035714 0.407407 -vt -0.000000 0.407407 +vt -0.000000 0.425926 vt 0.250000 1.000000 vt 0.196429 0.944444 vt 0.589286 0.740741 vt 0.446429 0.759259 -vt 0.428571 0.222222 -vt 0.428571 0.000000 -vt 0.214286 -0.000000 vn -0.0000 -0.7071 0.7071 vn -0.7071 -0.7071 0.0000 vn -0.0000 -0.7071 -0.7071 -vn 0.0000 -1.0000 0.0000 vn 1.0000 -0.0000 0.0000 vn 0.0000 0.0000 1.0000 vn 0.0000 0.0000 -1.0000 vn -1.0000 0.0000 0.0000 vn 0.0000 1.0000 0.0000 -vn 0.7071 -0.0000 -0.7071 -vn -0.7071 0.0000 -0.7071 +vn -0.0000 -1.0000 0.0000 vn 0.7071 -0.7071 0.0000 vn 0.0000 0.4472 -0.8944 vn -0.4472 0.0000 -0.8944 vn -0.0000 -0.4472 -0.8944 vn 0.4472 -0.0000 -0.8944 s off -f 335/499/16 326/500/16 369/501/16 -f 331/502/17 334/503/17 325/504/17 -f 336/505/18 348/506/18 370/507/18 -f 366/508/19 361/509/19 362/510/19 -f 360/511/19 356/512/19 368/513/19 -f 350/514/19 352/515/19 351/516/19 -f 337/517/20 355/518/20 335/519/20 -f 350/514/21 331/520/21 330/521/21 -f 363/522/21 347/523/21 343/524/21 -f 339/525/21 357/526/21 337/517/21 -f 352/527/22 329/528/22 332/529/22 -f 348/530/22 364/531/22 344/532/22 -f 358/533/22 340/534/22 338/535/22 -f 351/536/23 334/537/23 331/520/23 -f 360/511/23 348/530/23 340/534/23 -f 344/532/20 361/538/20 341/539/20 -f 333/540/23 352/527/23 332/529/23 -f 347/523/23 359/541/23 339/525/23 -f 362/542/20 343/524/20 342/543/20 -f 335/519/21 353/544/21 333/540/21 -f 341/539/21 365/545/21 345/546/21 -f 354/547/22 336/548/22 334/537/22 -f 366/549/22 342/543/22 346/550/22 -f 356/551/20 338/535/20 336/548/20 -f 349/552/23 330/521/23 329/528/23 -f 365/545/20 346/553/20 345/546/20 -f 355/554/19 359/541/19 367/555/19 -f 319/556/21 355/557/21 367/558/21 -f 320/559/23 351/560/23 352/561/23 -f 361/562/20 364/563/20 322/564/20 -f 327/565/22 323/566/22 324/567/22 -f 327/565/18 368/513/18 356/512/18 -f 347/568/24 337/569/24 335/499/24 -f 338/535/24 348/506/24 336/505/24 -f 322/564/25 327/565/25 324/567/25 -f 328/570/26 320/559/26 323/566/26 -f 345/571/24 342/572/24 341/573/24 -f 330/574/24 332/575/24 329/576/24 -f 369/501/19 325/504/19 370/507/19 -f 370/507/27 341/573/27 342/572/27 -f 383/577/22 385/578/22 384/579/22 -f 375/580/22 377/581/22 376/582/22 -f 377/581/20 374/583/20 372/584/20 -f 375/580/23 371/585/23 373/586/23 -f 378/587/24 373/588/24 374/589/24 -f 376/582/19 372/590/19 371/591/19 -f 385/578/20 382/592/20 380/593/20 -f 383/577/23 379/594/23 381/595/23 -f 386/596/24 381/597/24 382/598/24 -f 384/579/19 380/599/19 379/600/19 -f 389/601/19 393/602/19 394/603/19 -f 387/604/24 392/605/24 391/606/24 -f 390/607/23 394/608/23 392/609/23 -f 388/610/20 391/611/20 393/612/20 -f 397/613/19 401/614/19 402/615/19 -f 395/616/24 400/617/24 399/618/24 -f 398/619/23 402/620/23 400/621/23 -f 396/622/20 399/623/20 401/624/20 -f 398/619/22 396/622/22 397/613/22 -f 390/607/22 388/610/22 389/601/22 -f 405/625/19 404/626/19 403/627/19 -f 414/628/22 412/629/22 413/630/22 -f 413/630/28 411/631/28 408/632/28 -f 412/629/29 406/633/29 411/631/29 -f 410/634/30 404/626/30 406/633/30 -f 411/631/24 407/635/24 408/632/24 -f 414/628/31 408/632/31 404/626/31 -f 411/631/23 405/636/23 409/637/23 -f 408/632/20 403/638/20 404/626/20 -f 427/639/23 429/640/23 428/641/23 -f 419/642/23 421/643/23 420/644/23 -f 421/643/22 418/645/22 416/646/22 -f 419/642/21 415/647/21 417/648/21 -f 422/649/24 417/650/24 418/651/24 -f 420/644/19 416/652/19 415/653/19 -f 429/640/22 426/654/22 424/655/22 -f 427/639/21 423/656/21 425/657/21 -f 430/658/24 425/659/24 426/660/24 -f 428/641/19 424/661/19 423/662/19 -f 443/663/23 445/664/23 444/665/23 -f 435/666/23 437/667/23 436/668/23 -f 437/667/22 434/669/22 432/670/22 -f 435/666/21 431/671/21 433/672/21 -f 438/673/24 433/674/24 434/675/24 -f 436/668/19 432/676/19 431/677/19 -f 445/664/22 442/678/22 440/679/22 -f 443/663/21 439/680/21 441/681/21 -f 446/682/24 441/683/24 442/684/24 -f 444/665/19 440/685/19 439/686/19 -f 449/687/19 453/688/19 454/689/19 -f 447/690/24 452/691/24 451/692/24 -f 450/693/21 454/694/21 452/695/21 -f 448/696/22 451/697/22 453/698/22 -f 457/699/19 461/700/19 462/701/19 -f 455/702/24 460/703/24 459/704/24 -f 458/705/21 462/706/21 460/707/21 -f 456/708/22 459/709/22 461/710/22 -f 458/705/23 456/708/23 457/699/23 -f 450/693/23 448/696/23 449/687/23 -f 465/711/19 469/712/19 470/713/19 -f 463/714/24 468/715/24 467/716/24 -f 466/717/21 470/718/21 468/719/21 -f 464/720/22 467/721/22 469/722/22 -f 473/723/19 477/724/19 478/725/19 -f 471/726/24 476/727/24 475/728/24 -f 474/729/21 478/730/21 476/731/21 -f 472/732/22 475/733/22 477/734/22 -f 474/729/23 472/732/23 473/723/23 -f 466/717/23 464/720/23 465/711/23 -f 491/735/21 493/736/21 492/737/21 -f 483/738/21 485/739/21 484/740/21 -f 485/739/23 482/741/23 480/742/23 -f 483/738/20 479/743/20 481/744/20 -f 486/745/24 481/746/24 482/747/24 -f 484/740/19 480/748/19 479/749/19 -f 493/736/23 490/750/23 488/751/23 -f 491/735/20 487/752/20 489/753/20 -f 494/754/24 489/755/24 490/756/24 -f 492/737/19 488/757/19 487/758/19 -f 507/759/21 509/760/21 508/761/21 -f 499/762/21 501/763/21 500/764/21 -f 501/763/23 498/765/23 496/766/23 -f 499/762/20 495/767/20 497/768/20 -f 502/769/24 497/770/24 498/771/24 -f 500/764/19 496/772/19 495/773/19 -f 509/760/23 506/774/23 504/775/23 -f 507/759/20 503/776/20 505/777/20 -f 510/778/24 505/779/24 506/780/24 -f 508/761/19 504/781/19 503/782/19 -f 513/783/19 517/784/19 518/785/19 -f 511/786/24 516/787/24 515/788/24 -f 514/789/20 518/790/20 516/791/20 -f 512/792/23 515/793/23 517/794/23 -f 521/795/19 525/796/19 526/797/19 -f 519/798/24 524/799/24 523/800/24 -f 522/801/20 526/802/20 524/803/20 -f 520/804/23 523/805/23 525/806/23 -f 522/801/21 520/804/21 521/795/21 -f 514/789/21 512/792/21 513/783/21 -f 529/807/19 533/808/19 534/809/19 -f 527/810/24 532/811/24 531/812/24 -f 530/813/20 534/814/20 532/815/20 -f 528/816/23 531/817/23 533/818/23 -f 537/819/19 541/820/19 542/821/19 -f 535/822/24 540/823/24 539/824/24 -f 538/825/20 542/826/20 540/827/20 -f 536/828/23 539/829/23 541/830/23 -f 538/825/21 536/828/21 537/819/21 -f 530/813/21 528/816/21 529/807/21 -f 322/831/24 324/567/24 323/566/24 -f 369/501/16 343/832/16 347/568/16 -f 335/499/16 333/833/16 326/500/16 -f 369/501/16 347/568/16 335/499/16 -f 325/504/17 326/500/17 332/575/17 -f 326/500/17 333/833/17 332/575/17 -f 332/575/17 331/502/17 325/504/17 -f 348/506/18 344/834/18 370/507/18 -f 370/507/18 325/504/18 336/505/18 -f 325/504/18 334/503/18 336/505/18 -f 366/508/19 365/545/19 361/509/19 -f 360/511/19 358/533/19 356/512/19 -f 350/514/19 349/552/19 352/515/19 -f 337/517/20 357/526/20 355/518/20 -f 350/514/21 351/536/21 331/520/21 -f 363/522/21 367/835/21 347/523/21 -f 339/525/21 359/541/21 357/526/21 -f 352/527/22 349/552/22 329/528/22 -f 348/530/22 368/836/22 364/531/22 -f 358/533/22 360/511/22 340/534/22 -f 351/536/23 354/547/23 334/537/23 -f 360/511/23 368/836/23 348/530/23 -f 344/532/20 364/531/20 361/538/20 -f 333/540/23 353/544/23 352/527/23 -f 347/523/23 367/835/23 359/541/23 -f 362/542/20 363/522/20 343/524/20 -f 335/519/21 355/518/21 353/544/21 -f 341/539/21 361/538/21 365/545/21 -f 354/547/22 356/551/22 336/548/22 -f 366/549/22 362/542/22 342/543/22 -f 356/551/20 358/533/20 338/535/20 -f 349/552/23 350/514/23 330/521/23 -f 365/545/20 366/508/20 346/553/20 -f 355/554/19 357/526/19 359/541/19 -f 363/837/21 321/838/21 367/558/21 -f 321/838/21 319/556/21 367/558/21 -f 319/556/21 353/839/21 355/557/21 -f 353/839/23 319/556/23 352/561/23 -f 319/556/23 320/559/23 352/561/23 -f 320/559/23 354/840/23 351/560/23 -f 322/564/20 321/841/20 362/842/20 -f 321/841/20 363/843/20 362/842/20 -f 362/842/20 361/562/20 322/564/20 -f 327/565/22 328/570/22 323/566/22 -f 354/840/18 328/570/18 356/512/18 -f 328/570/18 327/565/18 356/512/18 -f 327/565/18 364/563/18 368/513/18 -f 347/568/24 339/844/24 337/569/24 -f 338/535/24 340/534/24 348/506/24 -f 322/564/25 364/563/25 327/565/25 -f 328/570/26 354/840/26 320/559/26 -f 345/571/24 346/845/24 342/572/24 -f 330/574/24 331/502/24 332/575/24 -f 369/501/19 326/500/19 325/504/19 -f 343/832/27 369/501/27 342/572/27 -f 369/501/27 370/507/27 342/572/27 -f 370/507/27 344/834/27 341/573/27 -f 383/577/22 386/596/22 385/578/22 -f 375/580/22 378/587/22 377/581/22 -f 377/581/20 378/587/20 374/583/20 -f 375/580/23 376/582/23 371/585/23 -f 378/587/24 375/580/24 373/588/24 -f 376/582/19 377/581/19 372/590/19 -f 385/578/20 386/596/20 382/592/20 -f 383/577/23 384/579/23 379/594/23 -f 386/596/24 383/577/24 381/597/24 -f 384/579/19 385/578/19 380/599/19 -f 389/601/19 388/610/19 393/602/19 -f 387/604/24 390/607/24 392/605/24 -f 390/607/23 389/601/23 394/608/23 -f 388/610/20 387/604/20 391/611/20 -f 397/613/19 396/622/19 401/614/19 -f 395/616/24 398/619/24 400/617/24 -f 398/619/23 397/613/23 402/620/23 -f 396/622/20 395/616/20 399/623/20 -f 398/619/22 395/616/22 396/622/22 -f 390/607/22 387/604/22 388/610/22 -f 405/625/19 406/633/19 404/626/19 -f 414/628/22 410/634/22 412/629/22 -f 413/630/28 412/629/28 411/631/28 -f 412/629/29 410/634/29 406/633/29 -f 410/634/30 414/628/30 404/626/30 -f 411/631/24 409/846/24 407/635/24 -f 414/628/31 413/630/31 408/632/31 -f 411/631/23 406/633/23 405/636/23 -f 408/632/20 407/847/20 403/638/20 -f 427/639/23 430/658/23 429/640/23 -f 419/642/23 422/649/23 421/643/23 -f 421/643/22 422/649/22 418/645/22 -f 419/642/21 420/644/21 415/647/21 -f 422/649/24 419/642/24 417/650/24 -f 420/644/19 421/643/19 416/652/19 -f 429/640/22 430/658/22 426/654/22 -f 427/639/21 428/641/21 423/656/21 -f 430/658/24 427/639/24 425/659/24 -f 428/641/19 429/640/19 424/661/19 -f 443/663/23 446/682/23 445/664/23 -f 435/666/23 438/673/23 437/667/23 -f 437/667/22 438/673/22 434/669/22 -f 435/666/21 436/668/21 431/671/21 -f 438/673/24 435/666/24 433/674/24 -f 436/668/19 437/667/19 432/676/19 -f 445/664/22 446/682/22 442/678/22 -f 443/663/21 444/665/21 439/680/21 -f 446/682/24 443/663/24 441/683/24 -f 444/665/19 445/664/19 440/685/19 -f 449/687/19 448/696/19 453/688/19 -f 447/690/24 450/693/24 452/691/24 -f 450/693/21 449/687/21 454/694/21 -f 448/696/22 447/690/22 451/697/22 -f 457/699/19 456/708/19 461/700/19 -f 455/702/24 458/705/24 460/703/24 -f 458/705/21 457/699/21 462/706/21 -f 456/708/22 455/702/22 459/709/22 -f 458/705/23 455/702/23 456/708/23 -f 450/693/23 447/690/23 448/696/23 -f 465/711/19 464/720/19 469/712/19 -f 463/714/24 466/717/24 468/715/24 -f 466/717/21 465/711/21 470/718/21 -f 464/720/22 463/714/22 467/721/22 -f 473/723/19 472/732/19 477/724/19 -f 471/726/24 474/729/24 476/727/24 -f 474/729/21 473/723/21 478/730/21 -f 472/732/22 471/726/22 475/733/22 -f 474/729/23 471/726/23 472/732/23 -f 466/717/23 463/714/23 464/720/23 -f 491/735/21 494/754/21 493/736/21 -f 483/738/21 486/745/21 485/739/21 -f 485/739/23 486/745/23 482/741/23 -f 483/738/20 484/740/20 479/743/20 -f 486/745/24 483/738/24 481/746/24 -f 484/740/19 485/739/19 480/748/19 -f 493/736/23 494/754/23 490/750/23 -f 491/735/20 492/737/20 487/752/20 -f 494/754/24 491/735/24 489/755/24 -f 492/737/19 493/736/19 488/757/19 -f 507/759/21 510/778/21 509/760/21 -f 499/762/21 502/769/21 501/763/21 -f 501/763/23 502/769/23 498/765/23 -f 499/762/20 500/764/20 495/767/20 -f 502/769/24 499/762/24 497/770/24 -f 500/764/19 501/763/19 496/772/19 -f 509/760/23 510/778/23 506/774/23 -f 507/759/20 508/761/20 503/776/20 -f 510/778/24 507/759/24 505/779/24 -f 508/761/19 509/760/19 504/781/19 -f 513/783/19 512/792/19 517/784/19 -f 511/786/24 514/789/24 516/787/24 -f 514/789/20 513/783/20 518/790/20 -f 512/792/23 511/786/23 515/793/23 -f 521/795/19 520/804/19 525/796/19 -f 519/798/24 522/801/24 524/799/24 -f 522/801/20 521/795/20 526/802/20 -f 520/804/23 519/798/23 523/805/23 -f 522/801/21 519/798/21 520/804/21 -f 514/789/21 511/786/21 512/792/21 -f 529/807/19 528/816/19 533/808/19 -f 527/810/24 530/813/24 532/811/24 -f 530/813/20 529/807/20 534/814/20 -f 528/816/23 527/810/23 531/817/23 -f 537/819/19 536/828/19 541/820/19 -f 535/822/24 538/825/24 540/823/24 -f 538/825/20 537/819/20 542/826/20 -f 536/828/23 535/822/23 539/829/23 -f 538/825/21 535/822/21 536/828/21 -f 530/813/21 527/810/21 528/816/21 -f 323/566/24 320/848/24 322/831/24 -f 320/848/24 319/849/24 322/831/24 -f 319/849/24 321/850/24 322/831/24 +f 383/579/34 376/580/34 417/581/34 +f 379/582/35 382/583/35 375/584/35 +f 384/585/36 396/586/36 418/587/36 +f 385/588/37 403/589/37 383/590/37 +f 398/591/38 379/592/38 378/593/38 +f 411/594/38 395/595/38 391/596/38 +f 387/597/38 405/598/38 385/588/38 +f 400/599/39 377/600/39 380/601/39 +f 396/602/39 412/603/39 392/604/39 +f 406/605/39 388/606/39 386/607/39 +f 399/608/40 382/609/40 379/592/40 +f 408/610/40 396/602/40 388/606/40 +f 392/604/37 409/611/37 389/612/37 +f 381/613/40 400/599/40 380/601/40 +f 395/595/40 407/614/40 387/597/40 +f 410/615/37 391/596/37 390/616/37 +f 383/590/38 401/617/38 381/613/38 +f 389/612/38 413/618/38 393/619/38 +f 402/620/39 384/621/39 382/609/39 +f 414/622/39 390/616/39 394/623/39 +f 404/624/37 386/607/37 384/621/37 +f 397/625/40 378/593/40 377/600/40 +f 413/618/37 394/626/37 393/619/37 +f 395/627/41 385/628/41 383/579/41 +f 386/607/41 396/586/41 384/585/41 +f 393/629/41 390/630/41 389/631/41 +f 378/632/41 380/633/41 377/634/41 +f 417/581/42 375/584/42 418/587/42 +f 418/587/43 389/631/43 390/630/43 +f 431/635/39 433/636/39 432/637/39 +f 423/638/39 425/639/39 424/640/39 +f 425/639/37 422/641/37 420/642/37 +f 423/638/40 419/643/40 421/644/40 +f 426/645/41 421/646/41 422/647/41 +f 424/640/42 420/648/42 419/649/42 +f 433/636/37 430/650/37 428/651/37 +f 431/635/40 427/652/40 429/653/40 +f 434/654/41 429/655/41 430/656/41 +f 432/637/42 428/657/42 427/658/42 +f 437/659/42 441/660/42 442/661/42 +f 435/662/41 440/663/41 439/664/41 +f 438/665/40 442/666/40 440/667/40 +f 436/668/37 439/669/37 441/670/37 +f 445/671/42 449/672/42 450/673/42 +f 443/674/41 448/675/41 447/676/41 +f 446/677/40 450/678/40 448/679/40 +f 444/680/37 447/681/37 449/682/37 +f 446/677/39 444/680/39 445/671/39 +f 438/665/39 436/668/39 437/659/39 +f 453/683/42 452/684/42 451/685/42 +f 462/686/39 460/687/39 461/688/39 +f 461/688/44 459/689/44 456/690/44 +f 460/687/45 454/691/45 459/689/45 +f 458/692/46 452/684/46 454/691/46 +f 459/689/41 455/693/41 456/690/41 +f 462/686/47 456/690/47 452/684/47 +f 459/689/40 453/694/40 457/695/40 +f 456/690/37 451/696/37 452/684/37 +f 475/697/40 477/698/40 476/699/40 +f 467/700/40 469/701/40 468/702/40 +f 469/701/39 466/703/39 464/704/39 +f 467/700/38 463/705/38 465/706/38 +f 470/707/41 465/708/41 466/709/41 +f 468/702/42 464/710/42 463/711/42 +f 477/698/39 474/712/39 472/713/39 +f 475/697/38 471/714/38 473/715/38 +f 478/716/41 473/717/41 474/718/41 +f 476/699/42 472/719/42 471/720/42 +f 491/721/40 493/722/40 492/723/40 +f 483/724/40 485/725/40 484/726/40 +f 485/725/39 482/727/39 480/728/39 +f 483/724/38 479/729/38 481/730/38 +f 486/731/41 481/732/41 482/733/41 +f 484/726/42 480/734/42 479/735/42 +f 493/722/39 490/736/39 488/737/39 +f 491/721/38 487/738/38 489/739/38 +f 494/740/41 489/741/41 490/742/41 +f 492/723/42 488/743/42 487/744/42 +f 497/745/42 501/746/42 502/747/42 +f 495/748/41 500/749/41 499/750/41 +f 498/751/38 502/752/38 500/753/38 +f 496/754/39 499/755/39 501/756/39 +f 505/757/42 509/758/42 510/759/42 +f 503/760/41 508/761/41 507/762/41 +f 506/763/38 510/764/38 508/765/38 +f 504/766/39 507/767/39 509/768/39 +f 506/763/40 504/766/40 505/757/40 +f 498/751/40 496/754/40 497/745/40 +f 513/769/42 517/770/42 518/771/42 +f 511/772/41 516/773/41 515/774/41 +f 514/775/38 518/776/38 516/777/38 +f 512/778/39 515/779/39 517/780/39 +f 521/781/42 525/782/42 526/783/42 +f 519/784/41 524/785/41 523/786/41 +f 522/787/38 526/788/38 524/789/38 +f 520/790/39 523/791/39 525/792/39 +f 522/787/40 520/790/40 521/781/40 +f 514/775/40 512/778/40 513/769/40 +f 539/793/38 541/794/38 540/795/38 +f 531/796/38 533/797/38 532/798/38 +f 533/797/40 530/799/40 528/800/40 +f 531/796/37 527/801/37 529/802/37 +f 534/803/41 529/804/41 530/805/41 +f 532/798/42 528/806/42 527/807/42 +f 541/794/40 538/808/40 536/809/40 +f 539/793/37 535/810/37 537/811/37 +f 542/812/41 537/813/41 538/814/41 +f 540/795/42 536/815/42 535/816/42 +f 555/817/38 557/818/38 556/819/38 +f 547/820/38 549/821/38 548/822/38 +f 549/821/40 546/823/40 544/824/40 +f 547/820/37 543/825/37 545/826/37 +f 550/827/41 545/828/41 546/829/41 +f 548/822/42 544/830/42 543/831/42 +f 557/818/40 554/832/40 552/833/40 +f 555/817/37 551/834/37 553/835/37 +f 558/836/41 553/837/41 554/838/41 +f 556/819/42 552/839/42 551/840/42 +f 561/841/42 565/842/42 566/843/42 +f 559/844/41 564/845/41 563/846/41 +f 562/847/37 566/848/37 564/849/37 +f 560/850/40 563/851/40 565/852/40 +f 569/853/42 573/854/42 574/855/42 +f 567/856/41 572/857/41 571/858/41 +f 570/859/37 574/860/37 572/861/37 +f 568/862/40 571/863/40 573/864/40 +f 570/859/38 568/862/38 569/853/38 +f 562/847/38 560/850/38 561/841/38 +f 577/865/42 581/866/42 582/867/42 +f 575/868/41 580/869/41 579/870/41 +f 578/871/37 582/872/37 580/873/37 +f 576/874/40 579/875/40 581/876/40 +f 585/877/42 589/878/42 590/879/42 +f 583/880/41 588/881/41 587/882/41 +f 586/883/37 590/884/37 588/885/37 +f 584/886/40 587/887/40 589/888/40 +f 586/883/38 584/886/38 585/877/38 +f 578/871/38 576/874/38 577/865/38 +f 417/581/34 391/889/34 395/627/34 +f 383/579/34 381/890/34 376/580/34 +f 417/581/34 395/627/34 383/579/34 +f 375/584/35 376/580/35 380/633/35 +f 376/580/35 381/890/35 380/633/35 +f 380/633/35 379/582/35 375/584/35 +f 396/586/36 392/891/36 418/587/36 +f 418/587/36 375/584/36 384/585/36 +f 375/584/36 382/583/36 384/585/36 +f 385/588/37 405/598/37 403/589/37 +f 398/591/38 399/608/38 379/592/38 +f 411/594/38 415/892/38 395/595/38 +f 387/597/38 407/614/38 405/598/38 +f 400/599/39 397/625/39 377/600/39 +f 396/602/39 416/893/39 412/603/39 +f 406/605/39 408/610/39 388/606/39 +f 399/608/40 402/620/40 382/609/40 +f 408/610/40 416/893/40 396/602/40 +f 392/604/37 412/603/37 409/611/37 +f 381/613/40 401/617/40 400/599/40 +f 395/595/40 415/892/40 407/614/40 +f 410/615/37 411/594/37 391/596/37 +f 383/590/38 403/589/38 401/617/38 +f 389/612/38 409/611/38 413/618/38 +f 402/620/39 404/624/39 384/621/39 +f 414/622/39 410/615/39 390/616/39 +f 404/624/37 406/605/37 386/607/37 +f 397/625/40 398/591/40 378/593/40 +f 413/618/37 414/894/37 394/626/37 +f 395/627/41 387/895/41 385/628/41 +f 386/607/41 388/606/41 396/586/41 +f 393/629/41 394/896/41 390/630/41 +f 378/632/41 379/582/41 380/633/41 +f 417/581/42 376/580/42 375/584/42 +f 391/889/43 417/581/43 390/630/43 +f 417/581/43 418/587/43 390/630/43 +f 418/587/43 392/891/43 389/631/43 +f 431/635/39 434/654/39 433/636/39 +f 423/638/39 426/645/39 425/639/39 +f 425/639/37 426/645/37 422/641/37 +f 423/638/40 424/640/40 419/643/40 +f 426/645/41 423/638/41 421/646/41 +f 424/640/42 425/639/42 420/648/42 +f 433/636/37 434/654/37 430/650/37 +f 431/635/40 432/637/40 427/652/40 +f 434/654/41 431/635/41 429/655/41 +f 432/637/42 433/636/42 428/657/42 +f 437/659/42 436/668/42 441/660/42 +f 435/662/41 438/665/41 440/663/41 +f 438/665/40 437/659/40 442/666/40 +f 436/668/37 435/662/37 439/669/37 +f 445/671/42 444/680/42 449/672/42 +f 443/674/41 446/677/41 448/675/41 +f 446/677/40 445/671/40 450/678/40 +f 444/680/37 443/674/37 447/681/37 +f 446/677/39 443/674/39 444/680/39 +f 438/665/39 435/662/39 436/668/39 +f 453/683/42 454/691/42 452/684/42 +f 462/686/39 458/692/39 460/687/39 +f 461/688/44 460/687/44 459/689/44 +f 460/687/45 458/692/45 454/691/45 +f 458/692/46 462/686/46 452/684/46 +f 459/689/41 457/897/41 455/693/41 +f 462/686/47 461/688/47 456/690/47 +f 459/689/40 454/691/40 453/694/40 +f 456/690/37 455/898/37 451/696/37 +f 475/697/40 478/716/40 477/698/40 +f 467/700/40 470/707/40 469/701/40 +f 469/701/39 470/707/39 466/703/39 +f 467/700/38 468/702/38 463/705/38 +f 470/707/41 467/700/41 465/708/41 +f 468/702/42 469/701/42 464/710/42 +f 477/698/39 478/716/39 474/712/39 +f 475/697/38 476/699/38 471/714/38 +f 478/716/41 475/697/41 473/717/41 +f 476/699/42 477/698/42 472/719/42 +f 491/721/40 494/740/40 493/722/40 +f 483/724/40 486/731/40 485/725/40 +f 485/725/39 486/731/39 482/727/39 +f 483/724/38 484/726/38 479/729/38 +f 486/731/41 483/724/41 481/732/41 +f 484/726/42 485/725/42 480/734/42 +f 493/722/39 494/740/39 490/736/39 +f 491/721/38 492/723/38 487/738/38 +f 494/740/41 491/721/41 489/741/41 +f 492/723/42 493/722/42 488/743/42 +f 497/745/42 496/754/42 501/746/42 +f 495/748/41 498/751/41 500/749/41 +f 498/751/38 497/745/38 502/752/38 +f 496/754/39 495/748/39 499/755/39 +f 505/757/42 504/766/42 509/758/42 +f 503/760/41 506/763/41 508/761/41 +f 506/763/38 505/757/38 510/764/38 +f 504/766/39 503/760/39 507/767/39 +f 506/763/40 503/760/40 504/766/40 +f 498/751/40 495/748/40 496/754/40 +f 513/769/42 512/778/42 517/770/42 +f 511/772/41 514/775/41 516/773/41 +f 514/775/38 513/769/38 518/776/38 +f 512/778/39 511/772/39 515/779/39 +f 521/781/42 520/790/42 525/782/42 +f 519/784/41 522/787/41 524/785/41 +f 522/787/38 521/781/38 526/788/38 +f 520/790/39 519/784/39 523/791/39 +f 522/787/40 519/784/40 520/790/40 +f 514/775/40 511/772/40 512/778/40 +f 539/793/38 542/812/38 541/794/38 +f 531/796/38 534/803/38 533/797/38 +f 533/797/40 534/803/40 530/799/40 +f 531/796/37 532/798/37 527/801/37 +f 534/803/41 531/796/41 529/804/41 +f 532/798/42 533/797/42 528/806/42 +f 541/794/40 542/812/40 538/808/40 +f 539/793/37 540/795/37 535/810/37 +f 542/812/41 539/793/41 537/813/41 +f 540/795/42 541/794/42 536/815/42 +f 555/817/38 558/836/38 557/818/38 +f 547/820/38 550/827/38 549/821/38 +f 549/821/40 550/827/40 546/823/40 +f 547/820/37 548/822/37 543/825/37 +f 550/827/41 547/820/41 545/828/41 +f 548/822/42 549/821/42 544/830/42 +f 557/818/40 558/836/40 554/832/40 +f 555/817/37 556/819/37 551/834/37 +f 558/836/41 555/817/41 553/837/41 +f 556/819/42 557/818/42 552/839/42 +f 561/841/42 560/850/42 565/842/42 +f 559/844/41 562/847/41 564/845/41 +f 562/847/37 561/841/37 566/848/37 +f 560/850/40 559/844/40 563/851/40 +f 569/853/42 568/862/42 573/854/42 +f 567/856/41 570/859/41 572/857/41 +f 570/859/37 569/853/37 574/860/37 +f 568/862/40 567/856/40 571/863/40 +f 570/859/38 567/856/38 568/862/38 +f 562/847/38 559/844/38 560/850/38 +f 577/865/42 576/874/42 581/866/42 +f 575/868/41 578/871/41 580/869/41 +f 578/871/37 577/865/37 582/872/37 +f 576/874/40 575/868/40 579/875/40 +f 585/877/42 584/886/42 589/878/42 +f 583/880/41 586/883/41 588/881/41 +f 586/883/37 585/877/37 590/884/37 +f 584/886/40 583/880/40 587/887/40 +f 586/883/38 583/880/38 584/886/38 +f 578/871/38 575/868/38 576/874/38 o Body v -4.500008 0.000002 -2.500000 v 4.499992 -0.000002 -2.500000 @@ -2822,320 +2972,312 @@ vn 0.0000 -0.9239 0.3827 vn -0.7071 -0.1830 0.6830 vn 0.7071 0.1830 -0.6830 s off -f 545/851/32 571/852/32 583/853/32 -f 543/854/32 576/855/32 581/856/32 -f 543/857/32 567/858/32 555/859/32 -f 544/860/32 572/861/32 552/862/32 -f 544/863/32 568/864/32 579/865/32 -f 545/866/32 564/867/32 560/868/32 -f 547/869/33 549/870/33 548/871/33 -f 552/872/34 553/873/34 551/874/34 -f 555/875/35 558/876/35 556/877/35 -f 560/878/36 561/879/36 559/880/36 -f 561/879/34 563/881/34 559/880/34 -f 560/878/33 566/882/33 562/883/33 -f 555/875/34 569/884/34 557/885/34 -f 558/876/33 568/864/33 556/877/33 -f 552/872/36 574/886/36 554/887/36 -f 553/873/35 571/852/35 551/874/35 -f 549/870/36 576/855/36 548/871/36 -f 547/888/35 578/889/35 550/890/35 -f 577/891/33 581/856/33 576/855/33 -f 572/861/34 580/892/34 574/886/34 -f 575/893/33 586/894/33 578/889/33 -f 573/895/34 583/853/34 571/852/34 -f 565/896/36 585/897/36 563/881/36 -f 564/867/36 584/898/36 566/882/36 -f 567/858/35 582/899/35 569/884/35 -f 580/892/35 568/864/35 570/900/35 -f 588/901/32 589/902/32 587/903/32 -f 593/904/37 591/905/37 592/906/37 -f 546/907/32 563/881/32 585/897/32 -f 546/908/32 575/893/32 547/909/32 -f 548/910/38 588/901/38 587/903/38 -f 555/911/39 556/912/39 590/913/39 -f 552/914/40 551/915/40 589/902/40 -f 560/916/41 559/917/41 587/903/41 -f 596/918/37 573/895/37 553/919/37 -f 566/882/37 596/920/37 562/921/37 -f 578/889/37 595/922/37 550/923/37 -f 595/924/37 565/896/37 561/925/37 -f 597/926/37 577/891/37 549/927/37 -f 574/886/37 598/928/37 554/929/37 -f 598/930/37 570/900/37 558/931/37 -f 569/884/37 597/932/37 557/933/37 -f 592/906/42 595/934/42 561/935/42 -f 593/904/43 596/936/43 553/937/43 -f 591/905/44 594/938/44 558/939/44 -f 591/905/45 597/940/45 549/941/45 -f 599/942/32 602/943/32 600/944/32 -f 601/945/35 604/946/35 602/943/35 -f 603/947/46 606/948/46 604/946/46 -f 599/949/33 603/947/33 601/945/33 -f 604/946/34 600/950/34 602/943/34 -f 607/951/35 610/952/35 608/953/35 -f 625/954/35 623/955/35 624/956/35 -f 617/957/35 615/958/35 616/959/35 -f 611/960/34 615/958/34 613/961/34 -f 613/962/37 618/963/37 614/964/37 -f 612/965/32 616/959/32 611/966/32 -f 614/967/33 617/957/33 612/968/33 -f 619/969/34 623/955/34 621/970/34 -f 621/971/37 626/972/37 622/973/37 -f 620/974/32 624/956/32 619/975/32 -f 622/976/33 625/954/33 620/977/33 -f 641/978/35 639/979/35 640/980/35 -f 633/981/35 631/982/35 632/983/35 -f 627/984/34 631/982/34 629/985/34 -f 629/986/37 634/987/37 630/988/37 -f 628/989/32 632/983/32 627/990/32 -f 630/991/33 633/981/33 628/992/33 -f 635/993/34 639/979/34 637/994/34 -f 637/995/37 642/996/37 638/997/37 -f 636/998/32 640/980/32 635/999/32 -f 638/1000/33 641/978/33 636/1001/33 -f 645/1002/47 650/1003/47 646/1004/47 -f 648/1005/32 643/1006/32 644/1007/32 -f 650/1003/48 647/1008/48 648/1005/48 -f 652/1009/34 646/1010/34 650/1003/34 -f 649/1011/33 645/1012/33 651/1013/33 -f 662/1014/33 660/1015/33 658/1016/33 -f 657/1017/34 659/1018/34 661/1019/34 -f 661/1019/36 663/1020/36 653/1021/36 -f 654/1022/36 666/1023/36 662/1014/36 -f 665/1024/33 670/1025/33 666/1023/33 -f 664/1026/34 667/1027/34 663/1020/34 -f 668/1028/32 664/1026/32 661/1029/32 -f 653/1030/37 667/1031/37 669/1032/37 -f 693/1033/49 691/1034/49 689/1035/49 -f 684/1036/50 685/1037/50 686/1038/50 -f 677/1039/50 678/1040/50 679/1041/50 -f 701/1042/49 696/1043/49 697/1044/49 -f 704/1045/50 705/1046/50 703/1047/50 -f 707/1048/49 709/1049/49 708/1050/49 -f 710/1051/51 705/1052/51 706/1053/51 -f 708/1050/52 704/1045/52 703/1047/52 -f 704/1054/53 710/1051/53 706/1055/53 -f 707/1048/54 703/1056/54 705/1057/54 -f 545/851/32 551/1058/32 571/852/32 -f 543/854/32 548/1059/32 576/855/32 -f 543/857/32 581/856/32 567/858/32 -f 544/860/32 579/865/32 572/861/32 -f 544/863/32 556/1060/32 568/864/32 -f 545/866/32 583/853/32 564/867/32 -f 547/869/33 550/1061/33 549/870/33 -f 552/872/34 554/887/34 553/873/34 -f 555/875/35 557/885/35 558/876/35 -f 560/878/36 562/883/36 561/879/36 -f 561/879/34 565/896/34 563/881/34 -f 560/878/33 564/867/33 566/882/33 -f 555/875/34 567/858/34 569/884/34 -f 558/876/33 570/900/33 568/864/33 -f 552/872/36 572/861/36 574/886/36 -f 553/873/35 573/895/35 571/852/35 -f 549/870/36 577/891/36 576/855/36 -f 547/888/35 575/893/35 578/889/35 -f 577/891/33 582/899/33 581/856/33 -f 572/861/34 579/865/34 580/892/34 -f 575/893/33 585/897/33 586/894/33 -f 573/895/34 584/898/34 583/853/34 -f 565/896/36 586/894/36 585/897/36 -f 564/867/36 583/853/36 584/898/36 -f 567/858/35 581/856/35 582/899/35 -f 580/892/35 579/865/35 568/864/35 -f 588/901/32 590/913/32 589/902/32 -f 593/904/37 594/938/37 591/905/37 -f 546/907/32 559/1062/32 563/881/32 -f 546/908/32 585/897/32 575/893/32 -f 587/903/38 546/1063/38 547/1064/38 -f 548/910/38 543/1065/38 588/901/38 -f 587/903/38 547/1064/38 548/910/38 -f 556/912/39 544/1066/39 590/913/39 -f 590/913/39 588/901/39 555/911/39 -f 588/901/39 543/1067/39 555/911/39 -f 551/915/40 545/1068/40 589/902/40 -f 589/902/40 590/913/40 552/914/40 -f 590/913/40 544/1069/40 552/914/40 -f 559/917/41 546/1070/41 587/903/41 -f 587/903/41 589/902/41 560/916/41 -f 589/902/41 545/1071/41 560/916/41 -f 596/918/37 584/898/37 573/895/37 -f 566/882/37 584/898/37 596/920/37 -f 578/889/37 586/894/37 595/922/37 -f 595/924/37 586/894/37 565/896/37 -f 597/926/37 582/899/37 577/891/37 -f 574/886/37 580/892/37 598/928/37 -f 598/930/37 580/892/37 570/900/37 -f 569/884/37 582/899/37 597/932/37 -f 561/935/42 562/1072/42 592/906/42 -f 562/1072/42 596/1073/42 593/904/42 -f 592/906/42 562/1072/42 593/904/42 -f 553/937/43 554/1074/43 593/904/43 -f 554/1074/43 598/1075/43 594/938/43 -f 593/904/43 554/1074/43 594/938/43 -f 598/1076/44 558/939/44 594/938/44 -f 558/939/44 557/1077/44 591/905/44 -f 557/1077/44 597/1078/44 591/905/44 -f 549/941/45 550/1079/45 591/905/45 -f 550/1079/45 595/1080/45 592/906/45 -f 591/905/45 550/1079/45 592/906/45 -f 599/942/32 601/945/32 602/943/32 -f 601/945/35 603/947/35 604/946/35 -f 603/947/46 605/1081/46 606/948/46 -f 599/949/33 605/1082/33 603/947/33 -f 604/946/34 606/1083/34 600/950/34 -f 607/951/35 609/1084/35 610/952/35 -f 625/954/35 626/972/35 623/955/35 -f 617/957/35 618/963/35 615/958/35 -f 611/960/34 616/959/34 615/958/34 -f 613/962/37 615/958/37 618/963/37 -f 612/965/32 617/957/32 616/959/32 -f 614/967/33 618/963/33 617/957/33 -f 619/969/34 624/956/34 623/955/34 -f 621/971/37 623/955/37 626/972/37 -f 620/974/32 625/954/32 624/956/32 -f 622/976/33 626/972/33 625/954/33 -f 641/978/35 642/996/35 639/979/35 -f 633/981/35 634/987/35 631/982/35 -f 627/984/34 632/983/34 631/982/34 -f 629/986/37 631/982/37 634/987/37 -f 628/989/32 633/981/32 632/983/32 -f 630/991/33 634/987/33 633/981/33 -f 635/993/34 640/980/34 639/979/34 -f 637/995/37 639/979/37 642/996/37 -f 636/998/32 641/978/32 640/980/32 -f 638/1000/33 642/996/33 641/978/33 -f 645/1002/47 649/1011/47 650/1003/47 -f 648/1005/32 647/1008/32 643/1006/32 -f 650/1003/48 649/1011/48 647/1008/48 -f 648/1085/34 644/1086/34 650/1003/34 -f 644/1086/34 652/1009/34 650/1003/34 -f 651/1013/33 643/1087/33 649/1011/33 -f 643/1087/33 647/1088/33 649/1011/33 -f 658/1016/33 656/1089/33 654/1022/33 -f 654/1022/33 662/1014/33 658/1016/33 -f 661/1019/34 653/1021/34 655/1090/34 -f 655/1090/34 657/1017/34 661/1019/34 -f 661/1019/36 664/1026/36 663/1020/36 -f 654/1022/36 665/1024/36 666/1023/36 -f 665/1024/33 669/1091/33 670/1025/33 -f 664/1026/34 668/1028/34 667/1027/34 -f 661/1029/32 662/1092/32 668/1028/32 -f 662/1092/32 666/1023/32 670/1025/32 -f 668/1028/32 662/1092/32 670/1025/32 -f 669/1032/37 665/1093/37 654/1094/37 -f 653/1030/37 663/1095/37 667/1031/37 -f 669/1032/37 654/1094/37 653/1030/37 -f 689/1035/49 687/1096/49 688/1097/49 -f 688/1097/49 694/1098/49 689/1035/49 -f 694/1098/49 693/1033/49 689/1035/49 -f 693/1033/49 692/1099/49 691/1034/49 -f 691/1034/49 690/1100/49 689/1035/49 -f 686/1038/50 671/1101/50 682/1102/50 -f 671/1101/50 680/1103/50 682/1102/50 -f 680/1103/50 681/1104/50 682/1102/50 -f 682/1102/50 683/1105/50 686/1038/50 -f 683/1105/50 684/1036/50 686/1038/50 -f 679/1041/50 672/1106/50 675/1107/50 -f 672/1106/50 673/1108/50 675/1107/50 -f 673/1108/50 674/1109/50 675/1107/50 -f 675/1107/50 676/1110/50 679/1041/50 -f 676/1110/50 677/1039/50 679/1041/50 -f 697/1044/49 698/1111/49 700/1112/49 -f 700/1112/49 702/1113/49 697/1044/49 -f 702/1113/49 701/1042/49 697/1044/49 -f 701/1042/49 695/1114/49 696/1043/49 -f 696/1043/49 699/1115/49 697/1044/49 -f 704/1045/50 706/1116/50 705/1046/50 -f 707/1048/49 710/1051/49 709/1049/49 -f 710/1051/51 707/1048/51 705/1052/51 -f 708/1050/52 709/1049/52 704/1045/52 -f 704/1054/53 709/1049/53 710/1051/53 -f 707/1048/54 708/1050/54 703/1056/54 +f 593/899/48 619/900/48 631/901/48 +f 591/902/48 624/903/48 629/904/48 +f 591/905/48 615/906/48 603/907/48 +f 592/908/48 620/909/48 600/910/48 +f 592/911/48 616/912/48 627/913/48 +f 593/914/48 612/915/48 608/916/48 +f 595/917/49 597/918/49 596/919/49 +f 600/920/50 601/921/50 599/922/50 +f 603/923/51 606/924/51 604/925/51 +f 608/926/52 609/927/52 607/928/52 +f 609/927/50 611/929/50 607/928/50 +f 608/926/49 614/930/49 610/931/49 +f 603/923/50 617/932/50 605/933/50 +f 606/924/49 616/912/49 604/925/49 +f 600/920/52 622/934/52 602/935/52 +f 601/921/51 619/900/51 599/922/51 +f 597/918/52 624/903/52 596/919/52 +f 595/936/51 626/937/51 598/938/51 +f 625/939/49 629/904/49 624/903/49 +f 620/909/50 628/940/50 622/934/50 +f 623/941/49 634/942/49 626/937/49 +f 621/943/50 631/901/50 619/900/50 +f 613/944/52 633/945/52 611/929/52 +f 612/915/52 632/946/52 614/930/52 +f 615/906/51 630/947/51 617/932/51 +f 628/940/51 616/912/51 618/948/51 +f 636/949/48 637/950/48 635/951/48 +f 641/952/53 639/953/53 640/954/53 +f 594/955/48 611/929/48 633/945/48 +f 594/956/48 623/941/48 595/957/48 +f 596/958/54 636/949/54 635/951/54 +f 603/959/55 604/960/55 638/961/55 +f 600/962/56 599/963/56 637/950/56 +f 608/964/57 607/965/57 635/951/57 +f 644/966/53 621/943/53 601/967/53 +f 614/930/53 644/968/53 610/969/53 +f 626/937/53 643/970/53 598/971/53 +f 643/972/53 613/944/53 609/973/53 +f 645/974/53 625/939/53 597/975/53 +f 622/934/53 646/976/53 602/977/53 +f 646/978/53 618/948/53 606/979/53 +f 617/932/53 645/980/53 605/981/53 +f 640/954/58 643/982/58 609/983/58 +f 641/952/59 644/984/59 601/985/59 +f 639/953/60 642/986/60 606/987/60 +f 639/953/61 645/988/61 597/989/61 +f 647/990/48 650/991/48 648/992/48 +f 649/993/51 652/994/51 650/991/51 +f 651/995/62 654/996/62 652/994/62 +f 647/997/49 651/995/49 649/993/49 +f 652/994/50 648/998/50 650/991/50 +f 655/999/51 658/1000/51 656/1001/51 +f 673/1002/51 671/1003/51 672/1004/51 +f 665/1005/51 663/1006/51 664/1007/51 +f 659/1008/50 663/1006/50 661/1009/50 +f 661/1010/53 666/1011/53 662/1012/53 +f 660/1013/48 664/1007/48 659/1014/48 +f 662/1015/49 665/1005/49 660/1016/49 +f 667/1017/50 671/1003/50 669/1018/50 +f 669/1019/53 674/1020/53 670/1021/53 +f 668/1022/48 672/1004/48 667/1023/48 +f 670/1024/49 673/1002/49 668/1025/49 +f 689/1026/51 687/1027/51 688/1028/51 +f 681/1029/51 679/1030/51 680/1031/51 +f 675/1032/50 679/1030/50 677/1033/50 +f 677/1034/53 682/1035/53 678/1036/53 +f 676/1037/48 680/1031/48 675/1038/48 +f 678/1039/49 681/1029/49 676/1040/49 +f 683/1041/50 687/1027/50 685/1042/50 +f 685/1043/53 690/1044/53 686/1045/53 +f 684/1046/48 688/1028/48 683/1047/48 +f 686/1048/49 689/1026/49 684/1049/49 +f 693/1050/63 698/1051/63 694/1052/63 +f 696/1053/48 691/1054/48 692/1055/48 +f 698/1051/64 695/1056/64 696/1053/64 +f 700/1057/50 694/1058/50 698/1051/50 +f 697/1059/49 693/1060/49 699/1061/49 +f 710/1062/49 708/1063/49 706/1064/49 +f 705/1065/50 707/1066/50 709/1067/50 +f 709/1067/52 711/1068/52 701/1069/52 +f 702/1070/52 714/1071/52 710/1062/52 +f 713/1072/49 718/1073/49 714/1071/49 +f 712/1074/50 715/1075/50 711/1068/50 +f 716/1076/48 712/1074/48 709/1077/48 +f 701/1078/53 715/1079/53 717/1080/53 +f 741/1081/65 739/1082/65 737/1083/65 +f 732/1084/66 733/1085/66 734/1086/66 +f 725/1087/66 726/1088/66 727/1089/66 +f 749/1090/65 744/1091/65 745/1092/65 +f 752/1093/66 753/1094/66 751/1095/66 +f 755/1096/65 757/1097/65 756/1098/65 +f 758/1099/67 753/1100/67 754/1101/67 +f 756/1098/68 752/1093/68 751/1095/68 +f 752/1102/69 758/1099/69 754/1103/69 +f 755/1096/70 751/1104/70 753/1105/70 +f 593/899/48 599/1106/48 619/900/48 +f 591/902/48 596/1107/48 624/903/48 +f 591/905/48 629/904/48 615/906/48 +f 592/908/48 627/913/48 620/909/48 +f 592/911/48 604/1108/48 616/912/48 +f 593/914/48 631/901/48 612/915/48 +f 595/917/49 598/1109/49 597/918/49 +f 600/920/50 602/935/50 601/921/50 +f 603/923/51 605/933/51 606/924/51 +f 608/926/52 610/931/52 609/927/52 +f 609/927/50 613/944/50 611/929/50 +f 608/926/49 612/915/49 614/930/49 +f 603/923/50 615/906/50 617/932/50 +f 606/924/49 618/948/49 616/912/49 +f 600/920/52 620/909/52 622/934/52 +f 601/921/51 621/943/51 619/900/51 +f 597/918/52 625/939/52 624/903/52 +f 595/936/51 623/941/51 626/937/51 +f 625/939/49 630/947/49 629/904/49 +f 620/909/50 627/913/50 628/940/50 +f 623/941/49 633/945/49 634/942/49 +f 621/943/50 632/946/50 631/901/50 +f 613/944/52 634/942/52 633/945/52 +f 612/915/52 631/901/52 632/946/52 +f 615/906/51 629/904/51 630/947/51 +f 628/940/51 627/913/51 616/912/51 +f 636/949/48 638/961/48 637/950/48 +f 641/952/53 642/986/53 639/953/53 +f 594/955/48 607/1110/48 611/929/48 +f 594/956/48 633/945/48 623/941/48 +f 635/951/54 594/1111/54 595/1112/54 +f 596/958/54 591/1113/54 636/949/54 +f 635/951/54 595/1112/54 596/958/54 +f 604/960/55 592/1114/55 638/961/55 +f 638/961/55 636/949/55 603/959/55 +f 636/949/55 591/1115/55 603/959/55 +f 599/963/56 593/1116/56 637/950/56 +f 637/950/56 638/961/56 600/962/56 +f 638/961/56 592/1117/56 600/962/56 +f 607/965/57 594/1118/57 635/951/57 +f 635/951/57 637/950/57 608/964/57 +f 637/950/57 593/1119/57 608/964/57 +f 644/966/53 632/946/53 621/943/53 +f 614/930/53 632/946/53 644/968/53 +f 626/937/53 634/942/53 643/970/53 +f 643/972/53 634/942/53 613/944/53 +f 645/974/53 630/947/53 625/939/53 +f 622/934/53 628/940/53 646/976/53 +f 646/978/53 628/940/53 618/948/53 +f 617/932/53 630/947/53 645/980/53 +f 609/983/58 610/1120/58 640/954/58 +f 610/1120/58 644/1121/58 641/952/58 +f 640/954/58 610/1120/58 641/952/58 +f 601/985/59 602/1122/59 641/952/59 +f 602/1122/59 646/1123/59 642/986/59 +f 641/952/59 602/1122/59 642/986/59 +f 646/1124/60 606/987/60 642/986/60 +f 606/987/60 605/1125/60 639/953/60 +f 605/1125/60 645/1126/60 639/953/60 +f 597/989/61 598/1127/61 639/953/61 +f 598/1127/61 643/1128/61 640/954/61 +f 639/953/61 598/1127/61 640/954/61 +f 647/990/48 649/993/48 650/991/48 +f 649/993/51 651/995/51 652/994/51 +f 651/995/62 653/1129/62 654/996/62 +f 647/997/49 653/1130/49 651/995/49 +f 652/994/50 654/1131/50 648/998/50 +f 655/999/51 657/1132/51 658/1000/51 +f 673/1002/51 674/1020/51 671/1003/51 +f 665/1005/51 666/1011/51 663/1006/51 +f 659/1008/50 664/1007/50 663/1006/50 +f 661/1010/53 663/1006/53 666/1011/53 +f 660/1013/48 665/1005/48 664/1007/48 +f 662/1015/49 666/1011/49 665/1005/49 +f 667/1017/50 672/1004/50 671/1003/50 +f 669/1019/53 671/1003/53 674/1020/53 +f 668/1022/48 673/1002/48 672/1004/48 +f 670/1024/49 674/1020/49 673/1002/49 +f 689/1026/51 690/1044/51 687/1027/51 +f 681/1029/51 682/1035/51 679/1030/51 +f 675/1032/50 680/1031/50 679/1030/50 +f 677/1034/53 679/1030/53 682/1035/53 +f 676/1037/48 681/1029/48 680/1031/48 +f 678/1039/49 682/1035/49 681/1029/49 +f 683/1041/50 688/1028/50 687/1027/50 +f 685/1043/53 687/1027/53 690/1044/53 +f 684/1046/48 689/1026/48 688/1028/48 +f 686/1048/49 690/1044/49 689/1026/49 +f 693/1050/63 697/1059/63 698/1051/63 +f 696/1053/48 695/1056/48 691/1054/48 +f 698/1051/64 697/1059/64 695/1056/64 +f 696/1133/50 692/1134/50 698/1051/50 +f 692/1134/50 700/1057/50 698/1051/50 +f 699/1061/49 691/1135/49 697/1059/49 +f 691/1135/49 695/1136/49 697/1059/49 +f 706/1064/49 704/1137/49 702/1070/49 +f 702/1070/49 710/1062/49 706/1064/49 +f 709/1067/50 701/1069/50 703/1138/50 +f 703/1138/50 705/1065/50 709/1067/50 +f 709/1067/52 712/1074/52 711/1068/52 +f 702/1070/52 713/1072/52 714/1071/52 +f 713/1072/49 717/1139/49 718/1073/49 +f 712/1074/50 716/1076/50 715/1075/50 +f 709/1077/48 710/1140/48 716/1076/48 +f 710/1140/48 714/1071/48 718/1073/48 +f 716/1076/48 710/1140/48 718/1073/48 +f 717/1080/53 713/1141/53 702/1142/53 +f 701/1078/53 711/1143/53 715/1079/53 +f 717/1080/53 702/1142/53 701/1078/53 +f 737/1083/65 735/1144/65 736/1145/65 +f 736/1145/65 742/1146/65 737/1083/65 +f 742/1146/65 741/1081/65 737/1083/65 +f 741/1081/65 740/1147/65 739/1082/65 +f 739/1082/65 738/1148/65 737/1083/65 +f 734/1086/66 719/1149/66 730/1150/66 +f 719/1149/66 728/1151/66 730/1150/66 +f 728/1151/66 729/1152/66 730/1150/66 +f 730/1150/66 731/1153/66 734/1086/66 +f 731/1153/66 732/1084/66 734/1086/66 +f 727/1089/66 720/1154/66 723/1155/66 +f 720/1154/66 721/1156/66 723/1155/66 +f 721/1156/66 722/1157/66 723/1155/66 +f 723/1155/66 724/1158/66 727/1089/66 +f 724/1158/66 725/1087/66 727/1089/66 +f 745/1092/65 746/1159/65 748/1160/65 +f 748/1160/65 750/1161/65 745/1092/65 +f 750/1161/65 749/1090/65 745/1092/65 +f 749/1090/65 743/1162/65 744/1091/65 +f 744/1091/65 747/1163/65 745/1092/65 +f 752/1093/66 754/1164/66 753/1094/66 +f 755/1096/65 758/1099/65 757/1097/65 +f 758/1099/67 755/1096/67 753/1100/67 +f 756/1098/68 757/1097/68 752/1093/68 +f 752/1102/69 757/1097/69 758/1099/69 +f 755/1096/70 756/1098/70 751/1104/70 s 1 -f 745/1117/52 748/1118/55 747/1119/55 -f 726/1120/56 727/1121/33 725/1122/56 -f 748/1118/55 749/1123/34 747/1119/55 -f 724/1124/51 725/1122/56 723/1125/51 -f 753/1126/57 784/1127/58 782/1128/57 -f 765/1129/59 781/1130/60 778/1131/59 -f 763/1132/61 781/1133/60 764/1134/60 -f 768/1135/58 783/1136/62 784/1137/58 -f 753/1138/57 780/1139/63 762/1140/63 -f 766/1141/64 783/1142/62 767/1143/62 -f 763/1132/61 780/1144/63 779/1145/61 -f 760/1146/62 776/1147/58 761/1148/58 -f 756/1149/61 772/1150/60 757/1151/60 -f 754/1152/57 769/1153/63 755/1154/63 -f 758/1155/59 774/1156/64 759/1157/64 -f 758/1155/59 772/1158/60 773/1159/59 -f 754/1160/57 776/1161/58 770/1162/57 -f 759/1157/64 775/1163/62 760/1146/62 -f 765/1129/59 777/1164/64 766/1141/64 -f 755/1154/63 771/1165/61 756/1149/61 -f 712/1166/65 713/1167/42 711/1168/65 -f 714/1169/42 715/1170/36 713/1167/42 -f 716/1171/36 717/1172/41 715/1170/36 -f 718/1173/41 719/1174/66 717/1172/41 -f 727/1121/33 730/1175/67 729/1176/67 -f 744/1177/67 745/1117/52 743/1178/67 -f 730/1175/67 731/1179/52 729/1176/67 -f 741/1180/33 744/1177/67 743/1178/67 -f 731/1179/52 734/1181/55 733/1182/55 -f 752/1183/68 722/1184/51 751/1185/68 -f 739/1186/56 742/1187/33 741/1180/33 -f 734/1181/55 735/1188/34 733/1182/55 -f 722/1189/51 740/1190/56 739/1186/56 -f 736/1191/34 737/1192/68 735/1188/34 -f 750/1193/34 751/1185/68 749/1123/34 -f 738/1194/68 723/1195/51 737/1192/68 -f 745/1117/52 746/1196/52 748/1118/55 -f 726/1120/56 728/1197/33 727/1121/33 -f 748/1118/55 750/1193/34 749/1123/34 -f 724/1124/51 726/1120/56 725/1122/56 -f 753/1126/57 768/1135/58 784/1127/58 -f 765/1129/59 764/1134/60 781/1130/60 -f 763/1132/61 779/1198/61 781/1133/60 -f 768/1135/58 767/1143/62 783/1136/62 -f 753/1138/57 782/1199/57 780/1139/63 -f 766/1141/64 777/1200/64 783/1142/62 -f 763/1132/61 762/1140/63 780/1144/63 -f 760/1146/62 775/1201/62 776/1147/58 -f 756/1149/61 771/1202/61 772/1150/60 -f 754/1152/57 770/1203/57 769/1153/63 -f 758/1155/59 773/1204/59 774/1156/64 -f 758/1155/59 757/1151/60 772/1158/60 -f 754/1160/57 761/1148/58 776/1161/58 -f 759/1157/64 774/1205/64 775/1163/62 -f 765/1129/59 778/1206/59 777/1164/64 -f 755/1154/63 769/1207/63 771/1165/61 -f 712/1166/65 714/1169/42 713/1167/42 -f 714/1169/42 716/1171/36 715/1170/36 -f 716/1171/36 718/1173/41 717/1172/41 -f 718/1173/41 720/1208/66 719/1174/66 -f 727/1121/33 728/1197/33 730/1175/67 -f 744/1177/67 746/1196/52 745/1117/52 -f 730/1175/67 732/1209/52 731/1179/52 -f 741/1180/33 742/1187/33 744/1177/67 -f 731/1179/52 732/1209/52 734/1181/55 -f 752/1183/68 721/1210/51 722/1184/51 -f 739/1186/56 740/1190/56 742/1187/33 -f 734/1181/55 736/1191/34 735/1188/34 -f 722/1189/51 721/1211/51 740/1190/56 -f 736/1191/34 738/1194/68 737/1192/68 -f 750/1193/34 752/1183/68 751/1185/68 -f 738/1194/68 724/1212/51 723/1195/51 +f 793/1165/68 796/1166/71 795/1167/71 +f 774/1168/72 775/1169/49 773/1170/72 +f 796/1166/71 797/1171/50 795/1167/71 +f 772/1172/67 773/1170/72 771/1173/67 +f 801/1174/73 832/1175/74 830/1176/73 +f 813/1177/75 829/1178/76 826/1179/75 +f 811/1180/77 829/1181/76 812/1182/76 +f 816/1183/74 831/1184/78 832/1185/74 +f 801/1186/73 828/1187/79 810/1188/79 +f 814/1189/80 831/1190/78 815/1191/78 +f 811/1180/77 828/1192/79 827/1193/77 +f 808/1194/78 824/1195/74 809/1196/74 +f 804/1197/77 820/1198/76 805/1199/76 +f 802/1200/73 817/1201/79 803/1202/79 +f 806/1203/75 822/1204/80 807/1205/80 +f 806/1203/75 820/1206/76 821/1207/75 +f 802/1208/73 824/1209/74 818/1210/73 +f 807/1205/80 823/1211/78 808/1194/78 +f 813/1177/75 825/1212/80 814/1189/80 +f 803/1202/79 819/1213/77 804/1197/77 +f 760/1214/81 761/1215/58 759/1216/81 +f 762/1217/58 763/1218/52 761/1215/58 +f 764/1219/52 765/1220/57 763/1218/52 +f 766/1221/57 767/1222/82 765/1220/57 +f 775/1169/49 778/1223/83 777/1224/83 +f 792/1225/83 793/1165/68 791/1226/83 +f 778/1223/83 779/1227/68 777/1224/83 +f 789/1228/49 792/1225/83 791/1226/83 +f 779/1227/68 782/1229/71 781/1230/71 +f 800/1231/84 770/1232/67 799/1233/84 +f 787/1234/72 790/1235/49 789/1228/49 +f 782/1229/71 783/1236/50 781/1230/71 +f 770/1237/67 788/1238/72 787/1234/72 +f 784/1239/50 785/1240/84 783/1236/50 +f 798/1241/50 799/1233/84 797/1171/50 +f 786/1242/84 771/1243/67 785/1240/84 +f 793/1165/68 794/1244/68 796/1166/71 +f 774/1168/72 776/1245/49 775/1169/49 +f 796/1166/71 798/1241/50 797/1171/50 +f 772/1172/67 774/1168/72 773/1170/72 +f 801/1174/73 816/1183/74 832/1175/74 +f 813/1177/75 812/1182/76 829/1178/76 +f 811/1180/77 827/1246/77 829/1181/76 +f 816/1183/74 815/1191/78 831/1184/78 +f 801/1186/73 830/1247/73 828/1187/79 +f 814/1189/80 825/1248/80 831/1190/78 +f 811/1180/77 810/1188/79 828/1192/79 +f 808/1194/78 823/1249/78 824/1195/74 +f 804/1197/77 819/1250/77 820/1198/76 +f 802/1200/73 818/1251/73 817/1201/79 +f 806/1203/75 821/1252/75 822/1204/80 +f 806/1203/75 805/1199/76 820/1206/76 +f 802/1208/73 809/1196/74 824/1209/74 +f 807/1205/80 822/1253/80 823/1211/78 +f 813/1177/75 826/1254/75 825/1212/80 +f 803/1202/79 817/1255/79 819/1213/77 +f 760/1214/81 762/1217/58 761/1215/58 +f 762/1217/58 764/1219/52 763/1218/52 +f 764/1219/52 766/1221/57 765/1220/57 +f 766/1221/57 768/1256/82 767/1222/82 +f 775/1169/49 776/1245/49 778/1223/83 +f 792/1225/83 794/1244/68 793/1165/68 +f 778/1223/83 780/1257/68 779/1227/68 +f 789/1228/49 790/1235/49 792/1225/83 +f 779/1227/68 780/1257/68 782/1229/71 +f 800/1231/84 769/1258/67 770/1232/67 +f 787/1234/72 788/1238/72 790/1235/49 +f 782/1229/71 784/1239/50 783/1236/50 +f 770/1237/67 769/1259/67 788/1238/72 +f 784/1239/50 786/1242/84 785/1240/84 +f 798/1241/50 800/1231/84 799/1233/84 +f 786/1242/84 772/1260/67 771/1243/67 o LeftLeg -v 5.000000 24.499998 3.000000 -v 5.000000 24.499998 -3.000000 -v -1.000000 24.500000 3.000000 -v -1.000000 24.500000 -3.000000 -v 4.000000 24.499998 -4.000000 -v 0.000000 24.500000 -4.000000 v 3.999996 10.999999 -2.000000 v 3.999996 10.999999 2.000000 -v -0.000001 21.500000 -4.000000 -v 3.999999 21.499998 -4.000000 v 4.499996 11.999998 2.000000 v 4.499996 11.999998 -2.000000 v 4.999996 11.999998 -2.000000 @@ -3358,19 +3500,11 @@ vt 0.428571 0.796296 vt 0.428571 0.944444 vt 0.392857 0.759259 vt 0.250000 0.796296 -vt 0.142857 0.407407 -vt -0.000000 0.425926 -vt -0.000000 0.407407 -vt 0.392857 0.407407 -vt 0.250000 0.425926 -vt 0.250000 0.407407 -vt 0.642857 0.407407 -vt 0.500000 0.425926 -vt 0.500000 0.407407 vt 0.732143 0.425926 vt 0.750000 0.740741 vt 0.732143 0.740741 vt 0.482143 0.740741 +vt 0.500000 0.425926 vt 0.500000 0.740741 vt 0.910714 0.740741 vt 0.946429 0.425926 @@ -3388,6 +3522,7 @@ vt 0.392857 0.425926 vt 0.392857 0.740741 vt 0.446429 0.740741 vt 0.482143 0.425926 +vt 0.250000 0.425926 vt 0.160714 0.425926 vt 0.160714 0.740741 vt 0.696429 0.740741 @@ -3404,24 +3539,8 @@ vt 1.000000 0.740741 vt 0.410714 0.425926 vt 0.642857 0.425926 vt 0.000000 0.740741 -vt 0.750000 0.407407 -vt 0.892857 0.407407 -vt 0.678571 0.407407 -vt 0.642857 0.407407 -vt 0.642857 0.259259 -vt 0.464286 0.407407 -vt 0.428571 0.407407 -vt 0.428571 0.259259 -vt 0.214286 0.259259 -vt 0.178571 0.407407 -vt 0.035714 0.407407 -vt 0.392857 0.259259 -vt 0.250000 0.370370 -vt 0.250000 0.259259 -vt 0.214286 0.407407 vt 0.392857 1.000000 vt 0.250000 0.759259 -vt 0.392857 0.370370 vt 0.214286 0.944444 vt 0.196429 0.796296 vt 0.214286 0.796296 @@ -3682,361 +3801,316 @@ vt 0.071429 0.759259 vt -0.000000 0.759259 vt 0.017857 0.796296 vt -0.000000 0.796296 -vt 0.214286 0.222222 -vt 0.214286 -0.000000 -vt 0.428571 0.000000 vt 0.214286 0.981481 vt 0.392857 0.944444 vt 0.428571 0.981481 vt 0.428571 0.759259 vt 0.910714 0.425926 vt 0.232143 0.425926 -vt 0.857143 0.259259 -vt 0.821429 0.407407 -vt 0.857143 0.407407 -vt 0.607143 0.407407 -vt -0.000000 0.407407 -vt 0.000000 0.259259 +vt -0.000000 0.425926 vt 0.250000 1.000000 vt 0.196429 0.944444 vt 0.589286 0.740741 vt 0.446429 0.759259 -vt 0.428571 0.222222 vn -0.0000 -0.7071 0.7071 vn 0.7071 -0.7071 0.0000 vn -0.0000 -0.7071 -0.7071 -vn 0.0000 -1.0000 0.0000 vn -1.0000 0.0000 0.0000 vn 0.0000 0.0000 1.0000 vn 0.0000 0.0000 -1.0000 vn 1.0000 -0.0000 0.0000 vn 0.0000 1.0000 0.0000 -vn -0.7071 0.0000 -0.7071 -vn 0.7071 -0.0000 -0.7071 +vn -0.0000 -1.0000 0.0000 vn -0.7071 -0.7071 0.0000 vn 0.0000 0.4472 -0.8944 vn 0.4472 -0.0000 -0.8944 vn -0.0000 -0.4472 -0.8944 vn -0.4472 0.0000 -0.8944 s off -f 801/1213/69 813/1214/69 835/1215/69 -f 791/1216/70 797/1217/70 798/1218/70 -f 802/1219/71 791/1216/71 836/1220/71 -f 827/1221/72 832/1222/72 828/1223/72 -f 822/1224/72 826/1225/72 834/1226/72 -f 818/1227/72 816/1228/72 817/1229/72 -f 821/1230/73 803/1231/73 801/1232/73 -f 797/1233/74 816/1228/74 796/1234/74 -f 813/1235/74 829/1236/74 809/1237/74 -f 823/1238/74 805/1239/74 803/1231/74 -f 795/1240/75 818/1241/75 798/1242/75 -f 830/1243/75 814/1244/75 810/1245/75 -f 806/1246/75 824/1247/75 804/1248/75 -f 800/1249/76 817/1250/76 797/1233/76 -f 814/1244/76 826/1225/76 806/1246/76 -f 827/1251/73 810/1245/73 807/1252/73 -f 818/1241/76 799/1253/76 798/1242/76 -f 825/1254/76 813/1235/76 805/1239/76 -f 809/1237/73 828/1255/73 808/1256/73 -f 819/1257/74 801/1232/74 799/1253/74 -f 831/1258/74 807/1252/74 811/1259/74 -f 802/1260/75 820/1261/75 800/1249/75 -f 808/1256/75 832/1262/75 812/1263/75 -f 804/1248/73 822/1264/73 802/1260/73 -f 796/1234/76 815/1265/76 795/1240/76 -f 812/1266/73 831/1258/73 811/1259/73 -f 825/1254/72 821/1267/72 833/1268/72 -f 821/1269/74 819/1270/74 785/1271/74 -f 817/1272/76 820/1273/76 786/1274/76 -f 788/1275/73 827/1276/73 828/1277/73 -f 789/1278/75 793/1279/75 790/1280/75 -f 834/1226/71 830/1281/71 793/1279/71 -f 803/1282/77 813/1214/77 801/1213/77 -f 814/1283/77 804/1248/77 802/1219/77 -f 793/1279/78 788/1275/78 790/1280/78 -f 786/1274/79 794/1284/79 789/1278/79 -f 808/1285/77 811/1286/77 807/1287/77 -f 798/1218/77 796/1288/77 795/1289/77 -f 791/1216/72 835/1215/72 836/1220/72 -f 807/1287/80 810/1290/80 836/1220/80 -f 851/1291/75 849/1292/75 850/1293/75 -f 843/1294/75 841/1295/75 842/1296/75 -f 840/1297/73 843/1294/73 838/1298/73 -f 837/1299/76 841/1295/76 839/1300/76 -f 839/1301/77 844/1302/77 840/1303/77 -f 838/1304/72 842/1296/72 837/1305/72 -f 848/1306/73 851/1291/73 846/1307/73 -f 845/1308/76 849/1292/76 847/1309/76 -f 847/1310/77 852/1311/77 848/1312/77 -f 846/1313/72 850/1293/72 845/1314/72 -f 859/1315/72 855/1316/72 860/1317/72 -f 858/1318/77 853/1319/77 857/1320/77 -f 860/1321/76 856/1322/76 858/1323/76 -f 857/1324/73 854/1325/73 859/1326/73 -f 867/1327/72 863/1328/72 868/1329/72 -f 866/1330/77 861/1331/77 865/1332/77 -f 868/1333/76 864/1334/76 866/1335/76 -f 865/1336/73 862/1337/73 867/1338/73 -f 862/1337/75 864/1334/75 863/1328/75 -f 854/1325/75 856/1322/75 855/1316/75 -f 870/1339/72 871/1340/72 869/1341/72 -f 878/1342/75 880/1343/75 879/1344/75 -f 877/1345/81 879/1344/81 874/1346/81 -f 872/1347/82 878/1342/82 877/1345/82 -f 870/1339/83 876/1348/83 872/1347/83 -f 873/1349/77 877/1345/77 874/1346/77 -f 874/1346/84 880/1343/84 870/1339/84 -f 871/1350/76 877/1345/76 875/1351/76 -f 869/1352/73 874/1346/73 870/1339/73 -f 895/1353/76 893/1354/76 894/1355/76 -f 887/1356/76 885/1357/76 886/1358/76 -f 884/1359/75 887/1356/75 882/1360/75 -f 881/1361/74 885/1357/74 883/1362/74 -f 883/1363/77 888/1364/77 884/1365/77 -f 882/1366/72 886/1358/72 881/1367/72 -f 892/1368/75 895/1353/75 890/1369/75 -f 889/1370/74 893/1354/74 891/1371/74 -f 891/1372/77 896/1373/77 892/1374/77 -f 890/1375/72 894/1355/72 889/1376/72 -f 911/1377/76 909/1378/76 910/1379/76 -f 903/1380/76 901/1381/76 902/1382/76 -f 900/1383/75 903/1380/75 898/1384/75 -f 897/1385/74 901/1381/74 899/1386/74 -f 899/1387/77 904/1388/77 900/1389/77 -f 898/1390/72 902/1382/72 897/1391/72 -f 908/1392/75 911/1377/75 906/1393/75 -f 905/1394/74 909/1378/74 907/1395/74 -f 907/1396/77 912/1397/77 908/1398/77 -f 906/1399/72 910/1379/72 905/1400/72 -f 919/1401/72 915/1402/72 920/1403/72 -f 918/1404/77 913/1405/77 917/1406/77 -f 920/1407/74 916/1408/74 918/1409/74 -f 917/1410/75 914/1411/75 919/1412/75 -f 927/1413/72 923/1414/72 928/1415/72 -f 926/1416/77 921/1417/77 925/1418/77 -f 928/1419/74 924/1420/74 926/1421/74 -f 925/1422/75 922/1423/75 927/1424/75 -f 922/1423/76 924/1420/76 923/1414/76 -f 914/1411/76 916/1408/76 915/1402/76 -f 935/1425/72 931/1426/72 936/1427/72 -f 934/1428/77 929/1429/77 933/1430/77 -f 936/1431/74 932/1432/74 934/1433/74 -f 933/1434/75 930/1435/75 935/1436/75 -f 943/1437/72 939/1438/72 944/1439/72 -f 942/1440/77 937/1441/77 941/1442/77 -f 944/1443/74 940/1444/74 942/1445/74 -f 941/1446/75 938/1447/75 943/1448/75 -f 938/1447/76 940/1444/76 939/1438/76 -f 930/1435/76 932/1432/76 931/1426/76 -f 959/1449/74 957/1450/74 958/1451/74 -f 951/1452/74 949/1453/74 950/1454/74 -f 948/1455/76 951/1452/76 946/1456/76 -f 945/1457/73 949/1453/73 947/1458/73 -f 947/1459/77 952/1460/77 948/1461/77 -f 946/1462/72 950/1454/72 945/1463/72 -f 956/1464/76 959/1449/76 954/1465/76 -f 953/1466/73 957/1450/73 955/1467/73 -f 955/1468/77 960/1469/77 956/1470/77 -f 954/1471/72 958/1451/72 953/1472/72 -f 975/1473/74 973/1474/74 974/1475/74 -f 967/1476/74 965/1477/74 966/1478/74 -f 964/1479/76 967/1476/76 962/1480/76 -f 961/1481/73 965/1477/73 963/1482/73 -f 963/1483/77 968/1484/77 964/1485/77 -f 962/1486/72 966/1478/72 961/1487/72 -f 972/1488/76 975/1473/76 970/1489/76 -f 969/1490/73 973/1474/73 971/1491/73 -f 971/1492/77 976/1493/77 972/1494/77 -f 970/1495/72 974/1475/72 969/1496/72 -f 983/1497/72 979/1498/72 984/1499/72 -f 982/1500/77 977/1501/77 981/1502/77 -f 984/1503/73 980/1504/73 982/1505/73 -f 981/1506/76 978/1507/76 983/1508/76 -f 991/1509/72 987/1510/72 992/1511/72 -f 990/1512/77 985/1513/77 989/1514/77 -f 992/1515/73 988/1516/73 990/1517/73 -f 989/1518/76 986/1519/76 991/1520/76 -f 986/1519/74 988/1516/74 987/1510/74 -f 978/1507/74 980/1504/74 979/1498/74 -f 999/1521/72 995/1522/72 1000/1523/72 -f 998/1524/77 993/1525/77 997/1526/77 -f 1000/1527/73 996/1528/73 998/1529/73 -f 997/1530/76 994/1531/76 999/1532/76 -f 1007/1533/72 1003/1534/72 1008/1535/72 -f 1006/1536/77 1001/1537/77 1005/1538/77 -f 1008/1539/73 1004/1540/73 1006/1541/73 -f 1005/1542/76 1002/1543/76 1007/1544/76 -f 1002/1543/74 1004/1540/74 1003/1534/74 -f 994/1531/74 996/1528/74 995/1522/74 -f 788/1545/77 787/1546/77 785/1547/77 -f 813/1214/69 809/1548/69 835/1215/69 -f 835/1215/69 792/1549/69 801/1213/69 -f 792/1549/69 799/1550/69 801/1213/69 -f 799/1550/70 792/1549/70 798/1218/70 -f 792/1549/70 791/1216/70 798/1218/70 -f 791/1216/70 800/1551/70 797/1217/70 -f 836/1220/71 810/1290/71 814/1283/71 -f 802/1219/71 800/1551/71 791/1216/71 -f 836/1220/71 814/1283/71 802/1219/71 -f 827/1221/72 831/1258/72 832/1222/72 -f 822/1224/72 824/1247/72 826/1225/72 -f 818/1227/72 815/1265/72 816/1228/72 -f 821/1230/73 823/1238/73 803/1231/73 -f 797/1233/74 817/1250/74 816/1228/74 -f 813/1235/74 833/1552/74 829/1236/74 -f 823/1238/74 825/1254/74 805/1239/74 -f 795/1240/75 815/1265/75 818/1241/75 -f 830/1243/75 834/1553/75 814/1244/75 -f 806/1246/75 826/1225/75 824/1247/75 -f 800/1249/76 820/1261/76 817/1250/76 -f 814/1244/76 834/1553/76 826/1225/76 -f 827/1251/73 830/1243/73 810/1245/73 -f 818/1241/76 819/1257/76 799/1253/76 -f 825/1254/76 833/1552/76 813/1235/76 -f 809/1237/73 829/1236/73 828/1255/73 -f 819/1257/74 821/1230/74 801/1232/74 -f 831/1258/74 827/1251/74 807/1252/74 -f 802/1260/75 822/1264/75 820/1261/75 -f 808/1256/75 828/1255/75 832/1262/75 -f 804/1248/73 824/1247/73 822/1264/73 -f 796/1234/76 816/1228/76 815/1265/76 -f 812/1266/73 832/1222/73 831/1258/73 -f 825/1254/72 823/1238/72 821/1267/72 -f 785/1271/74 787/1554/74 833/1555/74 -f 787/1554/74 829/1556/74 833/1555/74 -f 833/1555/74 821/1269/74 785/1271/74 -f 786/1274/76 785/1271/76 818/1557/76 -f 785/1271/76 819/1270/76 818/1557/76 -f 818/1557/76 817/1272/76 786/1274/76 -f 829/1558/73 787/1559/73 828/1277/73 -f 787/1559/73 788/1275/73 828/1277/73 -f 788/1275/73 830/1281/73 827/1276/73 -f 789/1278/75 794/1284/75 793/1279/75 -f 793/1279/71 794/1284/71 822/1224/71 -f 794/1284/71 820/1273/71 822/1224/71 -f 822/1224/71 834/1226/71 793/1279/71 -f 803/1282/77 805/1560/77 813/1214/77 -f 814/1283/77 806/1246/77 804/1248/77 -f 793/1279/78 830/1281/78 788/1275/78 -f 786/1274/79 820/1273/79 794/1284/79 -f 808/1285/77 812/1561/77 811/1286/77 -f 798/1218/77 797/1217/77 796/1288/77 -f 791/1216/72 792/1549/72 835/1215/72 -f 836/1220/80 835/1215/80 808/1285/80 -f 835/1215/80 809/1548/80 808/1285/80 -f 808/1285/80 807/1287/80 836/1220/80 -f 851/1291/75 852/1311/75 849/1292/75 -f 843/1294/75 844/1302/75 841/1295/75 -f 840/1297/73 844/1302/73 843/1294/73 -f 837/1299/76 842/1296/76 841/1295/76 -f 839/1301/77 841/1295/77 844/1302/77 -f 838/1304/72 843/1294/72 842/1296/72 -f 848/1306/73 852/1311/73 851/1291/73 -f 845/1308/76 850/1293/76 849/1292/76 -f 847/1310/77 849/1292/77 852/1311/77 -f 846/1313/72 851/1291/72 850/1293/72 -f 859/1315/72 854/1325/72 855/1316/72 -f 858/1318/77 856/1322/77 853/1319/77 -f 860/1321/76 855/1316/76 856/1322/76 -f 857/1324/73 853/1319/73 854/1325/73 -f 867/1327/72 862/1337/72 863/1328/72 -f 866/1330/77 864/1334/77 861/1331/77 -f 868/1333/76 863/1328/76 864/1334/76 -f 865/1336/73 861/1331/73 862/1337/73 -f 862/1337/75 861/1331/75 864/1334/75 -f 854/1325/75 853/1319/75 856/1322/75 -f 870/1339/72 872/1347/72 871/1340/72 -f 878/1342/75 876/1348/75 880/1343/75 -f 877/1345/81 878/1342/81 879/1344/81 -f 872/1347/82 876/1348/82 878/1342/82 -f 870/1339/83 880/1343/83 876/1348/83 -f 873/1349/77 875/1562/77 877/1345/77 -f 874/1346/84 879/1344/84 880/1343/84 -f 871/1350/76 872/1347/76 877/1345/76 -f 869/1352/73 873/1563/73 874/1346/73 -f 895/1353/76 896/1373/76 893/1354/76 -f 887/1356/76 888/1364/76 885/1357/76 -f 884/1359/75 888/1364/75 887/1356/75 -f 881/1361/74 886/1358/74 885/1357/74 -f 883/1363/77 885/1357/77 888/1364/77 -f 882/1366/72 887/1356/72 886/1358/72 -f 892/1368/75 896/1373/75 895/1353/75 -f 889/1370/74 894/1355/74 893/1354/74 -f 891/1372/77 893/1354/77 896/1373/77 -f 890/1375/72 895/1353/72 894/1355/72 -f 911/1377/76 912/1397/76 909/1378/76 -f 903/1380/76 904/1388/76 901/1381/76 -f 900/1383/75 904/1388/75 903/1380/75 -f 897/1385/74 902/1382/74 901/1381/74 -f 899/1387/77 901/1381/77 904/1388/77 -f 898/1390/72 903/1380/72 902/1382/72 -f 908/1392/75 912/1397/75 911/1377/75 -f 905/1394/74 910/1379/74 909/1378/74 -f 907/1396/77 909/1378/77 912/1397/77 -f 906/1399/72 911/1377/72 910/1379/72 -f 919/1401/72 914/1411/72 915/1402/72 -f 918/1404/77 916/1408/77 913/1405/77 -f 920/1407/74 915/1402/74 916/1408/74 -f 917/1410/75 913/1405/75 914/1411/75 -f 927/1413/72 922/1423/72 923/1414/72 -f 926/1416/77 924/1420/77 921/1417/77 -f 928/1419/74 923/1414/74 924/1420/74 -f 925/1422/75 921/1417/75 922/1423/75 -f 922/1423/76 921/1417/76 924/1420/76 -f 914/1411/76 913/1405/76 916/1408/76 -f 935/1425/72 930/1435/72 931/1426/72 -f 934/1428/77 932/1432/77 929/1429/77 -f 936/1431/74 931/1426/74 932/1432/74 -f 933/1434/75 929/1429/75 930/1435/75 -f 943/1437/72 938/1447/72 939/1438/72 -f 942/1440/77 940/1444/77 937/1441/77 -f 944/1443/74 939/1438/74 940/1444/74 -f 941/1446/75 937/1441/75 938/1447/75 -f 938/1447/76 937/1441/76 940/1444/76 -f 930/1435/76 929/1429/76 932/1432/76 -f 959/1449/74 960/1469/74 957/1450/74 -f 951/1452/74 952/1460/74 949/1453/74 -f 948/1455/76 952/1460/76 951/1452/76 -f 945/1457/73 950/1454/73 949/1453/73 -f 947/1459/77 949/1453/77 952/1460/77 -f 946/1462/72 951/1452/72 950/1454/72 -f 956/1464/76 960/1469/76 959/1449/76 -f 953/1466/73 958/1451/73 957/1450/73 -f 955/1468/77 957/1450/77 960/1469/77 -f 954/1471/72 959/1449/72 958/1451/72 -f 975/1473/74 976/1493/74 973/1474/74 -f 967/1476/74 968/1484/74 965/1477/74 -f 964/1479/76 968/1484/76 967/1476/76 -f 961/1481/73 966/1478/73 965/1477/73 -f 963/1483/77 965/1477/77 968/1484/77 -f 962/1486/72 967/1476/72 966/1478/72 -f 972/1488/76 976/1493/76 975/1473/76 -f 969/1490/73 974/1475/73 973/1474/73 -f 971/1492/77 973/1474/77 976/1493/77 -f 970/1495/72 975/1473/72 974/1475/72 -f 983/1497/72 978/1507/72 979/1498/72 -f 982/1500/77 980/1504/77 977/1501/77 -f 984/1503/73 979/1498/73 980/1504/73 -f 981/1506/76 977/1501/76 978/1507/76 -f 991/1509/72 986/1519/72 987/1510/72 -f 990/1512/77 988/1516/77 985/1513/77 -f 992/1515/73 987/1510/73 988/1516/73 -f 989/1518/76 985/1513/76 986/1519/76 -f 986/1519/74 985/1513/74 988/1516/74 -f 978/1507/74 977/1501/74 980/1504/74 -f 999/1521/72 994/1531/72 995/1522/72 -f 998/1524/77 996/1528/77 993/1525/77 -f 1000/1527/73 995/1522/73 996/1528/73 -f 997/1530/76 993/1525/76 994/1531/76 -f 1007/1533/72 1002/1543/72 1003/1534/72 -f 1006/1536/77 1004/1540/77 1001/1537/77 -f 1008/1539/73 1003/1534/73 1004/1540/73 -f 1005/1542/76 1001/1537/76 1002/1543/76 -f 1002/1543/74 1001/1537/74 1004/1540/74 -f 994/1531/74 993/1525/74 996/1528/74 -f 785/1547/77 786/1564/77 788/1545/77 -f 786/1564/77 789/1278/77 788/1545/77 -f 789/1278/77 790/1280/77 788/1545/77 +f 841/1261/85 853/1262/85 875/1263/85 +f 833/1264/86 837/1265/86 838/1266/86 +f 842/1267/87 833/1264/87 876/1268/87 +f 861/1269/88 843/1270/88 841/1271/88 +f 837/1272/89 856/1273/89 836/1274/89 +f 853/1275/89 869/1276/89 849/1277/89 +f 863/1278/89 845/1279/89 843/1270/89 +f 835/1280/90 858/1281/90 838/1282/90 +f 870/1283/90 854/1284/90 850/1285/90 +f 846/1286/90 864/1287/90 844/1288/90 +f 840/1289/91 857/1290/91 837/1272/91 +f 854/1284/91 866/1291/91 846/1286/91 +f 867/1292/88 850/1285/88 847/1293/88 +f 858/1281/91 839/1294/91 838/1282/91 +f 865/1295/91 853/1275/91 845/1279/91 +f 849/1277/88 868/1296/88 848/1297/88 +f 859/1298/89 841/1271/89 839/1294/89 +f 871/1299/89 847/1293/89 851/1300/89 +f 842/1301/90 860/1302/90 840/1289/90 +f 848/1297/90 872/1303/90 852/1304/90 +f 844/1288/88 862/1305/88 842/1301/88 +f 836/1274/91 855/1306/91 835/1280/91 +f 852/1307/88 871/1299/88 851/1300/88 +f 843/1308/92 853/1262/92 841/1261/92 +f 854/1309/92 844/1288/92 842/1267/92 +f 848/1310/92 851/1311/92 847/1312/92 +f 838/1266/92 836/1313/92 835/1314/92 +f 833/1264/93 875/1263/93 876/1268/93 +f 847/1312/94 850/1315/94 876/1268/94 +f 891/1316/90 889/1317/90 890/1318/90 +f 883/1319/90 881/1320/90 882/1321/90 +f 880/1322/88 883/1319/88 878/1323/88 +f 877/1324/91 881/1320/91 879/1325/91 +f 879/1326/92 884/1327/92 880/1328/92 +f 878/1329/93 882/1321/93 877/1330/93 +f 888/1331/88 891/1316/88 886/1332/88 +f 885/1333/91 889/1317/91 887/1334/91 +f 887/1335/92 892/1336/92 888/1337/92 +f 886/1338/93 890/1318/93 885/1339/93 +f 899/1340/93 895/1341/93 900/1342/93 +f 898/1343/92 893/1344/92 897/1345/92 +f 900/1346/91 896/1347/91 898/1348/91 +f 897/1349/88 894/1350/88 899/1351/88 +f 907/1352/93 903/1353/93 908/1354/93 +f 906/1355/92 901/1356/92 905/1357/92 +f 908/1358/91 904/1359/91 906/1360/91 +f 905/1361/88 902/1362/88 907/1363/88 +f 902/1362/90 904/1359/90 903/1353/90 +f 894/1350/90 896/1347/90 895/1341/90 +f 910/1364/93 911/1365/93 909/1366/93 +f 918/1367/90 920/1368/90 919/1369/90 +f 917/1370/95 919/1369/95 914/1371/95 +f 912/1372/96 918/1367/96 917/1370/96 +f 910/1364/97 916/1373/97 912/1372/97 +f 913/1374/92 917/1370/92 914/1371/92 +f 914/1371/98 920/1368/98 910/1364/98 +f 911/1375/91 917/1370/91 915/1376/91 +f 909/1377/88 914/1371/88 910/1364/88 +f 935/1378/91 933/1379/91 934/1380/91 +f 927/1381/91 925/1382/91 926/1383/91 +f 924/1384/90 927/1381/90 922/1385/90 +f 921/1386/89 925/1382/89 923/1387/89 +f 923/1388/92 928/1389/92 924/1390/92 +f 922/1391/93 926/1383/93 921/1392/93 +f 932/1393/90 935/1378/90 930/1394/90 +f 929/1395/89 933/1379/89 931/1396/89 +f 931/1397/92 936/1398/92 932/1399/92 +f 930/1400/93 934/1380/93 929/1401/93 +f 951/1402/91 949/1403/91 950/1404/91 +f 943/1405/91 941/1406/91 942/1407/91 +f 940/1408/90 943/1405/90 938/1409/90 +f 937/1410/89 941/1406/89 939/1411/89 +f 939/1412/92 944/1413/92 940/1414/92 +f 938/1415/93 942/1407/93 937/1416/93 +f 948/1417/90 951/1402/90 946/1418/90 +f 945/1419/89 949/1403/89 947/1420/89 +f 947/1421/92 952/1422/92 948/1423/92 +f 946/1424/93 950/1404/93 945/1425/93 +f 959/1426/93 955/1427/93 960/1428/93 +f 958/1429/92 953/1430/92 957/1431/92 +f 960/1432/89 956/1433/89 958/1434/89 +f 957/1435/90 954/1436/90 959/1437/90 +f 967/1438/93 963/1439/93 968/1440/93 +f 966/1441/92 961/1442/92 965/1443/92 +f 968/1444/89 964/1445/89 966/1446/89 +f 965/1447/90 962/1448/90 967/1449/90 +f 962/1448/91 964/1445/91 963/1439/91 +f 954/1436/91 956/1433/91 955/1427/91 +f 975/1450/93 971/1451/93 976/1452/93 +f 974/1453/92 969/1454/92 973/1455/92 +f 976/1456/89 972/1457/89 974/1458/89 +f 973/1459/90 970/1460/90 975/1461/90 +f 983/1462/93 979/1463/93 984/1464/93 +f 982/1465/92 977/1466/92 981/1467/92 +f 984/1468/89 980/1469/89 982/1470/89 +f 981/1471/90 978/1472/90 983/1473/90 +f 978/1472/91 980/1469/91 979/1463/91 +f 970/1460/91 972/1457/91 971/1451/91 +f 999/1474/89 997/1475/89 998/1476/89 +f 991/1477/89 989/1478/89 990/1479/89 +f 988/1480/91 991/1477/91 986/1481/91 +f 985/1482/88 989/1478/88 987/1483/88 +f 987/1484/92 992/1485/92 988/1486/92 +f 986/1487/93 990/1479/93 985/1488/93 +f 996/1489/91 999/1474/91 994/1490/91 +f 993/1491/88 997/1475/88 995/1492/88 +f 995/1493/92 1000/1494/92 996/1495/92 +f 994/1496/93 998/1476/93 993/1497/93 +f 1015/1498/89 1013/1499/89 1014/1500/89 +f 1007/1501/89 1005/1502/89 1006/1503/89 +f 1004/1504/91 1007/1501/91 1002/1505/91 +f 1001/1506/88 1005/1502/88 1003/1507/88 +f 1003/1508/92 1008/1509/92 1004/1510/92 +f 1002/1511/93 1006/1503/93 1001/1512/93 +f 1012/1513/91 1015/1498/91 1010/1514/91 +f 1009/1515/88 1013/1499/88 1011/1516/88 +f 1011/1517/92 1016/1518/92 1012/1519/92 +f 1010/1520/93 1014/1500/93 1009/1521/93 +f 1023/1522/93 1019/1523/93 1024/1524/93 +f 1022/1525/92 1017/1526/92 1021/1527/92 +f 1024/1528/88 1020/1529/88 1022/1530/88 +f 1021/1531/91 1018/1532/91 1023/1533/91 +f 1031/1534/93 1027/1535/93 1032/1536/93 +f 1030/1537/92 1025/1538/92 1029/1539/92 +f 1032/1540/88 1028/1541/88 1030/1542/88 +f 1029/1543/91 1026/1544/91 1031/1545/91 +f 1026/1544/89 1028/1541/89 1027/1535/89 +f 1018/1532/89 1020/1529/89 1019/1523/89 +f 1039/1546/93 1035/1547/93 1040/1548/93 +f 1038/1549/92 1033/1550/92 1037/1551/92 +f 1040/1552/88 1036/1553/88 1038/1554/88 +f 1037/1555/91 1034/1556/91 1039/1557/91 +f 1047/1558/93 1043/1559/93 1048/1560/93 +f 1046/1561/92 1041/1562/92 1045/1563/92 +f 1048/1564/88 1044/1565/88 1046/1566/88 +f 1045/1567/91 1042/1568/91 1047/1569/91 +f 1042/1568/89 1044/1565/89 1043/1559/89 +f 1034/1556/89 1036/1553/89 1035/1547/89 +f 853/1262/85 849/1570/85 875/1263/85 +f 875/1263/85 834/1571/85 841/1261/85 +f 834/1571/85 839/1572/85 841/1261/85 +f 839/1572/86 834/1571/86 838/1266/86 +f 834/1571/86 833/1264/86 838/1266/86 +f 833/1264/86 840/1573/86 837/1265/86 +f 876/1268/87 850/1315/87 854/1309/87 +f 842/1267/87 840/1573/87 833/1264/87 +f 876/1268/87 854/1309/87 842/1267/87 +f 861/1269/88 863/1278/88 843/1270/88 +f 837/1272/89 857/1290/89 856/1273/89 +f 853/1275/89 873/1574/89 869/1276/89 +f 863/1278/89 865/1295/89 845/1279/89 +f 835/1280/90 855/1306/90 858/1281/90 +f 870/1283/90 874/1575/90 854/1284/90 +f 846/1286/90 866/1291/90 864/1287/90 +f 840/1289/91 860/1302/91 857/1290/91 +f 854/1284/91 874/1575/91 866/1291/91 +f 867/1292/88 870/1283/88 850/1285/88 +f 858/1281/91 859/1298/91 839/1294/91 +f 865/1295/91 873/1574/91 853/1275/91 +f 849/1277/88 869/1276/88 868/1296/88 +f 859/1298/89 861/1269/89 841/1271/89 +f 871/1299/89 867/1292/89 847/1293/89 +f 842/1301/90 862/1305/90 860/1302/90 +f 848/1297/90 868/1296/90 872/1303/90 +f 844/1288/88 864/1287/88 862/1305/88 +f 836/1274/91 856/1273/91 855/1306/91 +f 852/1307/88 872/1576/88 871/1299/88 +f 843/1308/92 845/1577/92 853/1262/92 +f 854/1309/92 846/1286/92 844/1288/92 +f 848/1310/92 852/1578/92 851/1311/92 +f 838/1266/92 837/1265/92 836/1313/92 +f 833/1264/93 834/1571/93 875/1263/93 +f 876/1268/94 875/1263/94 848/1310/94 +f 875/1263/94 849/1570/94 848/1310/94 +f 848/1310/94 847/1312/94 876/1268/94 +f 891/1316/90 892/1336/90 889/1317/90 +f 883/1319/90 884/1327/90 881/1320/90 +f 880/1322/88 884/1327/88 883/1319/88 +f 877/1324/91 882/1321/91 881/1320/91 +f 879/1326/92 881/1320/92 884/1327/92 +f 878/1329/93 883/1319/93 882/1321/93 +f 888/1331/88 892/1336/88 891/1316/88 +f 885/1333/91 890/1318/91 889/1317/91 +f 887/1335/92 889/1317/92 892/1336/92 +f 886/1338/93 891/1316/93 890/1318/93 +f 899/1340/93 894/1350/93 895/1341/93 +f 898/1343/92 896/1347/92 893/1344/92 +f 900/1346/91 895/1341/91 896/1347/91 +f 897/1349/88 893/1344/88 894/1350/88 +f 907/1352/93 902/1362/93 903/1353/93 +f 906/1355/92 904/1359/92 901/1356/92 +f 908/1358/91 903/1353/91 904/1359/91 +f 905/1361/88 901/1356/88 902/1362/88 +f 902/1362/90 901/1356/90 904/1359/90 +f 894/1350/90 893/1344/90 896/1347/90 +f 910/1364/93 912/1372/93 911/1365/93 +f 918/1367/90 916/1373/90 920/1368/90 +f 917/1370/95 918/1367/95 919/1369/95 +f 912/1372/96 916/1373/96 918/1367/96 +f 910/1364/97 920/1368/97 916/1373/97 +f 913/1374/92 915/1579/92 917/1370/92 +f 914/1371/98 919/1369/98 920/1368/98 +f 911/1375/91 912/1372/91 917/1370/91 +f 909/1377/88 913/1580/88 914/1371/88 +f 935/1378/91 936/1398/91 933/1379/91 +f 927/1381/91 928/1389/91 925/1382/91 +f 924/1384/90 928/1389/90 927/1381/90 +f 921/1386/89 926/1383/89 925/1382/89 +f 923/1388/92 925/1382/92 928/1389/92 +f 922/1391/93 927/1381/93 926/1383/93 +f 932/1393/90 936/1398/90 935/1378/90 +f 929/1395/89 934/1380/89 933/1379/89 +f 931/1397/92 933/1379/92 936/1398/92 +f 930/1400/93 935/1378/93 934/1380/93 +f 951/1402/91 952/1422/91 949/1403/91 +f 943/1405/91 944/1413/91 941/1406/91 +f 940/1408/90 944/1413/90 943/1405/90 +f 937/1410/89 942/1407/89 941/1406/89 +f 939/1412/92 941/1406/92 944/1413/92 +f 938/1415/93 943/1405/93 942/1407/93 +f 948/1417/90 952/1422/90 951/1402/90 +f 945/1419/89 950/1404/89 949/1403/89 +f 947/1421/92 949/1403/92 952/1422/92 +f 946/1424/93 951/1402/93 950/1404/93 +f 959/1426/93 954/1436/93 955/1427/93 +f 958/1429/92 956/1433/92 953/1430/92 +f 960/1432/89 955/1427/89 956/1433/89 +f 957/1435/90 953/1430/90 954/1436/90 +f 967/1438/93 962/1448/93 963/1439/93 +f 966/1441/92 964/1445/92 961/1442/92 +f 968/1444/89 963/1439/89 964/1445/89 +f 965/1447/90 961/1442/90 962/1448/90 +f 962/1448/91 961/1442/91 964/1445/91 +f 954/1436/91 953/1430/91 956/1433/91 +f 975/1450/93 970/1460/93 971/1451/93 +f 974/1453/92 972/1457/92 969/1454/92 +f 976/1456/89 971/1451/89 972/1457/89 +f 973/1459/90 969/1454/90 970/1460/90 +f 983/1462/93 978/1472/93 979/1463/93 +f 982/1465/92 980/1469/92 977/1466/92 +f 984/1468/89 979/1463/89 980/1469/89 +f 981/1471/90 977/1466/90 978/1472/90 +f 978/1472/91 977/1466/91 980/1469/91 +f 970/1460/91 969/1454/91 972/1457/91 +f 999/1474/89 1000/1494/89 997/1475/89 +f 991/1477/89 992/1485/89 989/1478/89 +f 988/1480/91 992/1485/91 991/1477/91 +f 985/1482/88 990/1479/88 989/1478/88 +f 987/1484/92 989/1478/92 992/1485/92 +f 986/1487/93 991/1477/93 990/1479/93 +f 996/1489/91 1000/1494/91 999/1474/91 +f 993/1491/88 998/1476/88 997/1475/88 +f 995/1493/92 997/1475/92 1000/1494/92 +f 994/1496/93 999/1474/93 998/1476/93 +f 1015/1498/89 1016/1518/89 1013/1499/89 +f 1007/1501/89 1008/1509/89 1005/1502/89 +f 1004/1504/91 1008/1509/91 1007/1501/91 +f 1001/1506/88 1006/1503/88 1005/1502/88 +f 1003/1508/92 1005/1502/92 1008/1509/92 +f 1002/1511/93 1007/1501/93 1006/1503/93 +f 1012/1513/91 1016/1518/91 1015/1498/91 +f 1009/1515/88 1014/1500/88 1013/1499/88 +f 1011/1517/92 1013/1499/92 1016/1518/92 +f 1010/1520/93 1015/1498/93 1014/1500/93 +f 1023/1522/93 1018/1532/93 1019/1523/93 +f 1022/1525/92 1020/1529/92 1017/1526/92 +f 1024/1528/88 1019/1523/88 1020/1529/88 +f 1021/1531/91 1017/1526/91 1018/1532/91 +f 1031/1534/93 1026/1544/93 1027/1535/93 +f 1030/1537/92 1028/1541/92 1025/1538/92 +f 1032/1540/88 1027/1535/88 1028/1541/88 +f 1029/1543/91 1025/1538/91 1026/1544/91 +f 1026/1544/89 1025/1538/89 1028/1541/89 +f 1018/1532/89 1017/1526/89 1020/1529/89 +f 1039/1546/93 1034/1556/93 1035/1547/93 +f 1038/1549/92 1036/1553/92 1033/1550/92 +f 1040/1552/88 1035/1547/88 1036/1553/88 +f 1037/1555/91 1033/1550/91 1034/1556/91 +f 1047/1558/93 1042/1568/93 1043/1559/93 +f 1046/1561/92 1044/1565/92 1041/1562/92 +f 1048/1564/88 1043/1559/88 1044/1565/88 +f 1045/1567/91 1041/1562/91 1042/1568/91 +f 1042/1568/89 1041/1562/89 1044/1565/89 +f 1034/1556/89 1033/1550/89 1036/1553/89 o LeftArm v 3.999992 -0.000002 -2.500000 v 3.999996 11.999999 -2.500000 @@ -4870,440 +4944,440 @@ vn 0.0000 0.7071 -0.7071 vn -0.7071 0.7071 0.0000 vn 0.2425 0.9701 0.0000 s off -f 1036/1565/85 1011/1566/85 1031/1567/85 -f 1050/1568/86 1025/1569/86 1035/1570/86 -f 1017/1571/87 1020/1572/87 1018/1573/87 -f 1023/1574/88 1022/1575/88 1021/1576/88 -f 1025/1577/89 1028/1578/89 1026/1579/89 -f 1027/1580/88 1030/1581/88 1028/1578/88 -f 1030/1581/87 1022/1575/87 1024/1582/87 -f 1009/1583/90 1026/1579/90 1010/1584/90 -f 1043/1585/91 1051/1586/91 1012/1587/91 -f 1013/1588/90 1033/1589/90 1015/1590/90 -f 1034/1591/85 1043/1585/85 1052/1592/85 -f 1009/1583/85 1035/1570/85 1025/1569/85 -f 1019/1593/88 1040/1594/88 1020/1572/88 -f 1018/1573/90 1037/1595/90 1017/1571/90 -f 1039/1596/87 1042/1597/87 1040/1594/87 -f 1041/1598/90 1044/1599/90 1042/1597/90 -f 1044/1599/89 1013/1588/89 1015/1590/89 -f 1021/1600/89 1046/1601/89 1023/1602/89 -f 1045/1603/88 1048/1604/88 1046/1601/88 -f 1048/1604/87 1037/1595/87 1038/1605/87 -f 1051/1586/92 1050/1568/92 1012/1587/92 -f 1031/1567/89 1035/1606/89 1036/1565/89 -f 1052/1607/90 1031/1567/90 1057/1608/90 -f 1037/1609/85 1019/1610/85 1017/1611/85 -f 1022/1612/85 1045/1613/85 1021/1614/85 -f 1045/1613/93 1029/1615/93 1050/1568/93 -f 1014/1616/88 1035/1606/88 1016/1617/88 -f 1034/1618/87 1057/1608/87 1033/1589/87 -f 1037/1609/94 1049/1619/94 1051/1586/94 -f 1053/1620/88 1062/1621/88 1054/1622/88 -f 1058/1623/85 1030/1581/85 1024/1624/85 -f 1058/1625/85 1026/1579/85 1028/1578/85 -f 1010/1584/89 1016/1617/89 1009/1583/89 -f 1011/1626/85 1057/1608/85 1031/1567/85 -f 1059/1627/85 1044/1599/85 1015/1628/85 -f 1040/1594/85 1059/1629/85 1020/1630/85 -f 1060/1631/85 1046/1601/85 1048/1604/85 -f 1038/1605/85 1060/1632/85 1048/1604/85 -f 1055/1633/95 1053/1634/95 1018/1573/95 -f 1055/1635/96 1059/1636/96 1015/1590/96 -f 1054/1637/97 1056/1638/97 1014/1616/97 -f 1053/1620/98 1054/1622/98 1024/1582/98 -f 1062/1639/99 1055/1635/99 1056/1640/99 -f 1054/1637/89 1062/1641/89 1056/1638/89 -f 1053/1634/87 1055/1633/87 1061/1642/87 -f 1069/1643/89 1067/1644/89 1068/1645/89 -f 1065/1646/85 1070/1647/85 1066/1648/85 -f 1064/1649/92 1068/1645/92 1063/1650/92 -f 1066/1651/88 1069/1643/88 1064/1652/88 -f 1063/1653/90 1067/1644/90 1065/1654/90 -f 1078/1655/90 1074/1656/90 1076/1657/90 -f 1075/1658/88 1072/1659/88 1077/1660/88 -f 1077/1661/92 1073/1662/92 1078/1663/92 -f 1076/1664/85 1071/1665/85 1075/1666/85 -f 1072/1659/89 1074/1656/89 1073/1662/89 -f 1086/1667/90 1082/1668/90 1084/1669/90 -f 1083/1670/88 1080/1671/88 1085/1672/88 -f 1085/1673/92 1081/1674/92 1086/1675/92 -f 1084/1676/85 1079/1677/85 1083/1678/85 -f 1080/1671/89 1082/1668/89 1081/1674/89 -f 1093/1679/89 1091/1680/89 1092/1681/89 -f 1089/1682/85 1094/1683/85 1090/1684/85 -f 1088/1685/92 1092/1681/92 1087/1686/92 -f 1090/1687/88 1093/1679/88 1088/1688/88 -f 1087/1689/90 1091/1680/90 1089/1690/90 -f 1102/1691/90 1098/1692/90 1100/1693/90 -f 1099/1694/88 1096/1695/88 1101/1696/88 -f 1101/1697/92 1097/1698/92 1102/1699/92 -f 1100/1700/85 1095/1701/85 1099/1702/85 -f 1096/1695/89 1098/1692/89 1097/1698/89 -f 1109/1703/89 1107/1704/89 1108/1705/89 -f 1105/1706/85 1110/1707/85 1106/1708/85 -f 1104/1709/92 1108/1705/92 1103/1710/92 -f 1106/1711/88 1109/1703/88 1104/1712/88 -f 1103/1713/90 1107/1704/90 1105/1714/90 -f 1117/1715/89 1115/1716/89 1116/1717/89 -f 1113/1718/85 1118/1719/85 1114/1720/85 -f 1112/1721/92 1116/1717/92 1111/1722/92 -f 1114/1723/88 1117/1715/88 1112/1724/88 -f 1111/1725/90 1115/1716/90 1113/1726/90 -f 1125/1727/89 1123/1728/89 1124/1729/89 -f 1121/1730/85 1126/1731/85 1122/1732/85 -f 1120/1733/92 1124/1729/92 1119/1734/92 -f 1122/1735/88 1125/1727/88 1120/1736/88 -f 1119/1737/90 1123/1728/90 1121/1738/90 -f 1134/1739/90 1130/1740/90 1132/1741/90 -f 1131/1742/88 1128/1743/88 1133/1744/88 -f 1133/1745/92 1129/1746/92 1134/1747/92 -f 1132/1748/85 1127/1749/85 1131/1750/85 -f 1128/1743/89 1130/1740/89 1129/1746/89 -f 1142/1751/90 1138/1752/90 1140/1753/90 -f 1139/1754/88 1136/1755/88 1141/1756/88 -f 1141/1757/92 1137/1758/92 1142/1759/92 -f 1140/1760/85 1135/1761/85 1139/1762/85 -f 1136/1755/89 1138/1752/89 1137/1758/89 -f 1150/1763/90 1146/1764/90 1148/1765/90 -f 1147/1766/88 1144/1767/88 1149/1768/88 -f 1149/1769/92 1145/1770/92 1150/1771/92 -f 1148/1772/85 1143/1773/85 1147/1774/85 -f 1144/1767/89 1146/1764/89 1145/1770/89 -f 1157/1775/89 1155/1776/89 1156/1777/89 -f 1153/1778/85 1158/1779/85 1154/1780/85 -f 1152/1781/92 1156/1777/92 1151/1782/92 -f 1154/1783/88 1157/1775/88 1152/1784/88 -f 1151/1785/90 1155/1776/90 1153/1786/90 -f 1165/1787/87 1163/1788/87 1164/1789/87 -f 1161/1790/85 1166/1791/85 1162/1792/85 -f 1160/1793/92 1164/1789/92 1159/1794/92 -f 1162/1795/90 1165/1787/90 1160/1796/90 -f 1159/1797/88 1163/1788/88 1161/1798/88 -f 1174/1799/88 1170/1800/88 1172/1801/88 -f 1171/1802/90 1168/1803/90 1173/1804/90 -f 1173/1805/92 1169/1806/92 1174/1807/92 -f 1172/1808/85 1167/1809/85 1171/1810/85 -f 1168/1803/87 1170/1800/87 1169/1806/87 -f 1182/1811/88 1178/1812/88 1180/1813/88 -f 1179/1814/90 1176/1815/90 1181/1816/90 -f 1181/1817/92 1177/1818/92 1182/1819/92 -f 1180/1820/85 1175/1821/85 1179/1822/85 -f 1176/1815/87 1178/1812/87 1177/1818/87 -f 1189/1823/87 1187/1824/87 1188/1825/87 -f 1185/1826/85 1190/1827/85 1186/1828/85 -f 1184/1829/92 1188/1825/92 1183/1830/92 -f 1186/1831/90 1189/1823/90 1184/1832/90 -f 1183/1833/88 1187/1824/88 1185/1834/88 -f 1197/1835/87 1195/1836/87 1196/1837/87 -f 1193/1838/85 1198/1839/85 1194/1840/85 -f 1192/1841/92 1196/1837/92 1191/1842/92 -f 1194/1843/90 1197/1835/90 1192/1844/90 -f 1191/1845/88 1195/1836/88 1193/1846/88 -f 1206/1847/88 1202/1848/88 1204/1849/88 -f 1203/1850/90 1200/1851/90 1205/1852/90 -f 1205/1853/92 1201/1854/92 1206/1855/92 -f 1204/1856/85 1199/1857/85 1203/1858/85 -f 1200/1851/87 1202/1848/87 1201/1854/87 -f 1214/1859/88 1210/1860/88 1212/1861/88 -f 1211/1862/90 1208/1863/90 1213/1864/90 -f 1213/1865/92 1209/1866/92 1214/1867/92 -f 1212/1868/85 1207/1869/85 1211/1870/85 -f 1208/1863/87 1210/1860/87 1209/1866/87 -f 1221/1871/87 1219/1872/87 1220/1873/87 -f 1217/1874/85 1222/1875/85 1218/1876/85 -f 1216/1877/92 1220/1873/92 1215/1878/92 -f 1218/1879/90 1221/1871/90 1216/1880/90 -f 1215/1881/88 1219/1872/88 1217/1882/88 -f 1230/1883/87 1226/1884/87 1228/1885/87 -f 1227/1886/89 1224/1887/89 1229/1888/89 -f 1229/1889/92 1225/1890/92 1230/1891/92 -f 1228/1892/85 1223/1893/85 1227/1894/85 -f 1224/1887/90 1226/1884/90 1225/1890/90 -f 1237/1895/90 1235/1896/90 1236/1897/90 -f 1233/1898/85 1238/1899/85 1234/1900/85 -f 1232/1901/92 1236/1897/92 1231/1902/92 -f 1234/1903/89 1237/1895/89 1232/1904/89 -f 1231/1905/87 1235/1896/87 1233/1906/87 -f 1245/1907/90 1243/1908/90 1244/1909/90 -f 1241/1910/85 1246/1911/85 1242/1912/85 -f 1240/1913/92 1244/1909/92 1239/1914/92 -f 1242/1915/89 1245/1907/89 1240/1916/89 -f 1239/1917/87 1243/1908/87 1241/1918/87 -f 1253/1919/90 1251/1920/90 1252/1921/90 -f 1249/1922/85 1254/1923/85 1250/1924/85 -f 1248/1925/92 1252/1921/92 1247/1926/92 -f 1250/1927/89 1253/1919/89 1248/1928/89 -f 1247/1929/87 1251/1920/87 1249/1930/87 -f 1262/1931/87 1258/1932/87 1260/1933/87 -f 1259/1934/89 1256/1935/89 1261/1936/89 -f 1261/1937/92 1257/1938/92 1262/1939/92 -f 1260/1940/85 1255/1941/85 1259/1942/85 -f 1256/1935/90 1258/1932/90 1257/1938/90 -f 1270/1943/87 1266/1944/87 1268/1945/87 -f 1267/1946/89 1264/1947/89 1269/1948/89 -f 1269/1949/92 1265/1950/92 1270/1951/92 -f 1268/1952/85 1263/1953/85 1267/1954/85 -f 1264/1947/90 1266/1944/90 1265/1950/90 -f 1282/1955/87 1278/1956/87 1280/1957/87 -f 1279/1958/89 1276/1959/89 1281/1960/89 -f 1281/1961/92 1277/1962/92 1282/1963/92 -f 1280/1964/85 1275/1965/85 1279/1966/85 -f 1276/1959/90 1278/1956/90 1277/1962/90 -f 1289/1967/90 1287/1968/90 1288/1969/90 -f 1285/1970/85 1290/1971/85 1286/1972/85 -f 1284/1973/92 1288/1969/92 1283/1974/92 -f 1286/1975/89 1289/1967/89 1284/1976/89 -f 1283/1977/87 1287/1968/87 1285/1978/87 -f 1298/1979/87 1294/1980/87 1296/1981/87 -f 1295/1982/89 1292/1983/89 1297/1984/89 -f 1297/1985/92 1293/1986/92 1298/1987/92 -f 1296/1988/85 1291/1989/85 1295/1990/85 -f 1292/1983/90 1294/1980/90 1293/1986/90 -f 1305/1991/90 1303/1992/90 1304/1993/90 -f 1301/1994/85 1306/1995/85 1302/1996/85 -f 1300/1997/92 1304/1993/92 1299/1998/92 -f 1302/1999/89 1305/1991/89 1300/2000/89 -f 1299/2001/87 1303/1992/87 1301/2002/87 -f 1310/2003/92 1273/2004/92 1274/2005/92 -f 1272/2006/90 1273/2007/90 1271/2008/90 -f 1309/2009/88 1308/2010/88 1307/2011/88 -f 1272/2006/85 1307/2012/85 1308/2010/85 -f 1274/2005/87 1308/2010/87 1310/2003/87 -f 1317/2013/90 1315/2014/90 1316/2015/90 -f 1313/2016/85 1318/2017/85 1314/2018/85 -f 1312/2019/92 1316/2015/92 1311/2020/92 -f 1314/2021/89 1317/2013/89 1312/2022/89 -f 1311/2023/87 1315/2014/87 1313/2024/87 -f 1326/2025/87 1322/2026/87 1324/2027/87 -f 1323/2028/89 1320/2029/89 1325/2030/89 -f 1325/2031/92 1321/2032/92 1326/2033/92 -f 1324/2034/85 1319/2035/85 1323/2036/85 -f 1320/2029/90 1322/2026/90 1321/2032/90 -f 1036/1565/85 1014/2037/85 1011/1566/85 -f 1032/2038/86 1012/1587/86 1035/1570/86 -f 1012/1587/86 1050/1568/86 1035/1570/86 -f 1050/1568/86 1027/2039/86 1025/1569/86 -f 1017/1571/87 1019/1593/87 1020/1572/87 -f 1023/1574/88 1024/1582/88 1022/1575/88 -f 1025/1577/89 1027/1580/89 1028/1578/89 -f 1027/1580/88 1029/2040/88 1030/1581/88 -f 1030/1581/87 1029/2040/87 1022/1575/87 -f 1009/1583/90 1025/1577/90 1026/1579/90 -f 1012/1587/91 1032/2038/91 1052/1592/91 -f 1043/1585/91 1041/2041/91 1051/1586/91 -f 1012/1587/91 1052/1592/91 1043/1585/91 -f 1013/1588/90 1034/1618/90 1033/1589/90 -f 1034/1591/85 1013/2042/85 1043/1585/85 -f 1009/1583/85 1016/1617/85 1035/1570/85 -f 1019/1593/88 1039/1596/88 1040/1594/88 -f 1018/1573/90 1038/1605/90 1037/1595/90 -f 1039/1596/87 1041/1598/87 1042/1597/87 -f 1041/1598/90 1043/2043/90 1044/1599/90 -f 1044/1599/89 1043/2043/89 1013/1588/89 -f 1021/1600/89 1045/1603/89 1046/1601/89 -f 1045/1603/88 1047/2044/88 1048/1604/88 -f 1048/1604/87 1047/2044/87 1037/1595/87 -f 1051/1586/92 1049/1619/92 1050/1568/92 -f 1031/1567/89 1032/2045/89 1035/1606/89 -f 1052/1607/90 1032/2045/90 1031/1567/90 -f 1037/1609/85 1039/2046/85 1019/1610/85 -f 1022/1612/85 1029/1615/85 1045/1613/85 -f 1029/1615/93 1027/2039/93 1050/1568/93 -f 1050/1568/93 1049/1619/93 1045/1613/93 -f 1049/1619/93 1047/2047/93 1045/1613/93 -f 1014/1616/88 1036/1565/88 1035/1606/88 -f 1034/1618/87 1052/1607/87 1057/1608/87 -f 1051/1586/94 1041/2041/94 1039/2046/94 -f 1037/1609/94 1047/2047/94 1049/1619/94 -f 1051/1586/94 1039/2046/94 1037/1609/94 -f 1053/1620/88 1061/2048/88 1062/1621/88 -f 1058/1623/85 1028/1578/85 1030/1581/85 -f 1058/1625/85 1010/2049/85 1026/1579/85 -f 1010/1584/89 1014/1616/89 1016/1617/89 -f 1011/1626/85 1033/2050/85 1057/1608/85 -f 1059/1627/85 1042/1597/85 1044/1599/85 -f 1040/1594/85 1042/1597/85 1059/1629/85 -f 1060/1631/85 1023/2051/85 1046/1601/85 -f 1038/1605/85 1018/2052/85 1060/1632/85 -f 1060/2053/95 1018/1573/95 1053/1634/95 -f 1018/1573/95 1020/1572/95 1055/1633/95 -f 1020/1572/95 1059/2054/95 1055/1633/95 -f 1015/1590/96 1033/1589/96 1055/1635/96 -f 1033/1589/96 1011/2055/96 1056/1640/96 -f 1055/1635/96 1033/1589/96 1056/1640/96 -f 1011/2056/97 1014/1616/97 1056/1638/97 -f 1014/1616/97 1010/1584/97 1054/1637/97 -f 1010/1584/97 1058/2057/97 1054/1637/97 -f 1058/2058/98 1024/1582/98 1054/1622/98 -f 1024/1582/98 1023/1574/98 1053/1620/98 -f 1023/1574/98 1060/2059/98 1053/1620/98 -f 1062/1639/99 1061/2060/99 1055/1635/99 -f 1069/1643/89 1070/1647/89 1067/1644/89 -f 1065/1646/85 1067/1644/85 1070/1647/85 -f 1064/1649/92 1069/1643/92 1068/1645/92 -f 1066/1651/88 1070/1647/88 1069/1643/88 -f 1063/1653/90 1068/1645/90 1067/1644/90 -f 1078/1655/90 1073/1662/90 1074/1656/90 -f 1075/1658/88 1071/1665/88 1072/1659/88 -f 1077/1661/92 1072/1659/92 1073/1662/92 -f 1076/1664/85 1074/1656/85 1071/1665/85 -f 1072/1659/89 1071/1665/89 1074/1656/89 -f 1086/1667/90 1081/1674/90 1082/1668/90 -f 1083/1670/88 1079/1677/88 1080/1671/88 -f 1085/1673/92 1080/1671/92 1081/1674/92 -f 1084/1676/85 1082/1668/85 1079/1677/85 -f 1080/1671/89 1079/1677/89 1082/1668/89 -f 1093/1679/89 1094/1683/89 1091/1680/89 -f 1089/1682/85 1091/1680/85 1094/1683/85 -f 1088/1685/92 1093/1679/92 1092/1681/92 -f 1090/1687/88 1094/1683/88 1093/1679/88 -f 1087/1689/90 1092/1681/90 1091/1680/90 -f 1102/1691/90 1097/1698/90 1098/1692/90 -f 1099/1694/88 1095/1701/88 1096/1695/88 -f 1101/1697/92 1096/1695/92 1097/1698/92 -f 1100/1700/85 1098/1692/85 1095/1701/85 -f 1096/1695/89 1095/1701/89 1098/1692/89 -f 1109/1703/89 1110/1707/89 1107/1704/89 -f 1105/1706/85 1107/1704/85 1110/1707/85 -f 1104/1709/92 1109/1703/92 1108/1705/92 -f 1106/1711/88 1110/1707/88 1109/1703/88 -f 1103/1713/90 1108/1705/90 1107/1704/90 -f 1117/1715/89 1118/1719/89 1115/1716/89 -f 1113/1718/85 1115/1716/85 1118/1719/85 -f 1112/1721/92 1117/1715/92 1116/1717/92 -f 1114/1723/88 1118/1719/88 1117/1715/88 -f 1111/1725/90 1116/1717/90 1115/1716/90 -f 1125/1727/89 1126/1731/89 1123/1728/89 -f 1121/1730/85 1123/1728/85 1126/1731/85 -f 1120/1733/92 1125/1727/92 1124/1729/92 -f 1122/1735/88 1126/1731/88 1125/1727/88 -f 1119/1737/90 1124/1729/90 1123/1728/90 -f 1134/1739/90 1129/1746/90 1130/1740/90 -f 1131/1742/88 1127/1749/88 1128/1743/88 -f 1133/1745/92 1128/1743/92 1129/1746/92 -f 1132/1748/85 1130/1740/85 1127/1749/85 -f 1128/1743/89 1127/1749/89 1130/1740/89 -f 1142/1751/90 1137/1758/90 1138/1752/90 -f 1139/1754/88 1135/1761/88 1136/1755/88 -f 1141/1757/92 1136/1755/92 1137/1758/92 -f 1140/1760/85 1138/1752/85 1135/1761/85 -f 1136/1755/89 1135/1761/89 1138/1752/89 -f 1150/1763/90 1145/1770/90 1146/1764/90 -f 1147/1766/88 1143/1773/88 1144/1767/88 -f 1149/1769/92 1144/1767/92 1145/1770/92 -f 1148/1772/85 1146/1764/85 1143/1773/85 -f 1144/1767/89 1143/1773/89 1146/1764/89 -f 1157/1775/89 1158/1779/89 1155/1776/89 -f 1153/1778/85 1155/1776/85 1158/1779/85 -f 1152/1781/92 1157/1775/92 1156/1777/92 -f 1154/1783/88 1158/1779/88 1157/1775/88 -f 1151/1785/90 1156/1777/90 1155/1776/90 -f 1165/1787/87 1166/1791/87 1163/1788/87 -f 1161/1790/85 1163/1788/85 1166/1791/85 -f 1160/1793/92 1165/1787/92 1164/1789/92 -f 1162/1795/90 1166/1791/90 1165/1787/90 -f 1159/1797/88 1164/1789/88 1163/1788/88 -f 1174/1799/88 1169/1806/88 1170/1800/88 -f 1171/1802/90 1167/1809/90 1168/1803/90 -f 1173/1805/92 1168/1803/92 1169/1806/92 -f 1172/1808/85 1170/1800/85 1167/1809/85 -f 1168/1803/87 1167/1809/87 1170/1800/87 -f 1182/1811/88 1177/1818/88 1178/1812/88 -f 1179/1814/90 1175/1821/90 1176/1815/90 -f 1181/1817/92 1176/1815/92 1177/1818/92 -f 1180/1820/85 1178/1812/85 1175/1821/85 -f 1176/1815/87 1175/1821/87 1178/1812/87 -f 1189/1823/87 1190/1827/87 1187/1824/87 -f 1185/1826/85 1187/1824/85 1190/1827/85 -f 1184/1829/92 1189/1823/92 1188/1825/92 -f 1186/1831/90 1190/1827/90 1189/1823/90 -f 1183/1833/88 1188/1825/88 1187/1824/88 -f 1197/1835/87 1198/1839/87 1195/1836/87 -f 1193/1838/85 1195/1836/85 1198/1839/85 -f 1192/1841/92 1197/1835/92 1196/1837/92 -f 1194/1843/90 1198/1839/90 1197/1835/90 -f 1191/1845/88 1196/1837/88 1195/1836/88 -f 1206/1847/88 1201/1854/88 1202/1848/88 -f 1203/1850/90 1199/1857/90 1200/1851/90 -f 1205/1853/92 1200/1851/92 1201/1854/92 -f 1204/1856/85 1202/1848/85 1199/1857/85 -f 1200/1851/87 1199/1857/87 1202/1848/87 -f 1214/1859/88 1209/1866/88 1210/1860/88 -f 1211/1862/90 1207/1869/90 1208/1863/90 -f 1213/1865/92 1208/1863/92 1209/1866/92 -f 1212/1868/85 1210/1860/85 1207/1869/85 -f 1208/1863/87 1207/1869/87 1210/1860/87 -f 1221/1871/87 1222/1875/87 1219/1872/87 -f 1217/1874/85 1219/1872/85 1222/1875/85 -f 1216/1877/92 1221/1871/92 1220/1873/92 -f 1218/1879/90 1222/1875/90 1221/1871/90 -f 1215/1881/88 1220/1873/88 1219/1872/88 -f 1230/1883/87 1225/1890/87 1226/1884/87 -f 1227/1886/89 1223/1893/89 1224/1887/89 -f 1229/1889/92 1224/1887/92 1225/1890/92 -f 1228/1892/85 1226/1884/85 1223/1893/85 -f 1224/1887/90 1223/1893/90 1226/1884/90 -f 1237/1895/90 1238/1899/90 1235/1896/90 -f 1233/1898/85 1235/1896/85 1238/1899/85 -f 1232/1901/92 1237/1895/92 1236/1897/92 -f 1234/1903/89 1238/1899/89 1237/1895/89 -f 1231/1905/87 1236/1897/87 1235/1896/87 -f 1245/1907/90 1246/1911/90 1243/1908/90 -f 1241/1910/85 1243/1908/85 1246/1911/85 -f 1240/1913/92 1245/1907/92 1244/1909/92 -f 1242/1915/89 1246/1911/89 1245/1907/89 -f 1239/1917/87 1244/1909/87 1243/1908/87 -f 1253/1919/90 1254/1923/90 1251/1920/90 -f 1249/1922/85 1251/1920/85 1254/1923/85 -f 1248/1925/92 1253/1919/92 1252/1921/92 -f 1250/1927/89 1254/1923/89 1253/1919/89 -f 1247/1929/87 1252/1921/87 1251/1920/87 -f 1262/1931/87 1257/1938/87 1258/1932/87 -f 1259/1934/89 1255/1941/89 1256/1935/89 -f 1261/1937/92 1256/1935/92 1257/1938/92 -f 1260/1940/85 1258/1932/85 1255/1941/85 -f 1256/1935/90 1255/1941/90 1258/1932/90 -f 1270/1943/87 1265/1950/87 1266/1944/87 -f 1267/1946/89 1263/1953/89 1264/1947/89 -f 1269/1949/92 1264/1947/92 1265/1950/92 -f 1268/1952/85 1266/1944/85 1263/1953/85 -f 1264/1947/90 1263/1953/90 1266/1944/90 -f 1282/1955/87 1277/1962/87 1278/1956/87 -f 1279/1958/89 1275/1965/89 1276/1959/89 -f 1281/1961/92 1276/1959/92 1277/1962/92 -f 1280/1964/85 1278/1956/85 1275/1965/85 -f 1276/1959/90 1275/1965/90 1278/1956/90 -f 1289/1967/90 1290/1971/90 1287/1968/90 -f 1285/1970/85 1287/1968/85 1290/1971/85 -f 1284/1973/92 1289/1967/92 1288/1969/92 -f 1286/1975/89 1290/1971/89 1289/1967/89 -f 1283/1977/87 1288/1969/87 1287/1968/87 -f 1298/1979/87 1293/1986/87 1294/1980/87 -f 1295/1982/89 1291/1989/89 1292/1983/89 -f 1297/1985/92 1292/1983/92 1293/1986/92 -f 1296/1988/85 1294/1980/85 1291/1989/85 -f 1292/1983/90 1291/1989/90 1294/1980/90 -f 1305/1991/90 1306/1995/90 1303/1992/90 -f 1301/1994/85 1303/1992/85 1306/1995/85 -f 1300/1997/92 1305/1991/92 1304/1993/92 -f 1302/1999/89 1306/1995/89 1305/1991/89 -f 1299/2001/87 1304/1993/87 1303/1992/87 -f 1310/2003/92 1309/2061/92 1273/2004/92 -f 1272/2006/90 1274/2005/90 1273/2007/90 -f 1309/2009/88 1310/2003/88 1308/2010/88 -f 1272/2006/85 1271/2062/85 1307/2012/85 -f 1274/2005/87 1272/2006/87 1308/2010/87 -f 1317/2013/90 1318/2017/90 1315/2014/90 -f 1313/2016/85 1315/2014/85 1318/2017/85 -f 1312/2019/92 1317/2013/92 1316/2015/92 -f 1314/2021/89 1318/2017/89 1317/2013/89 -f 1311/2023/87 1316/2015/87 1315/2014/87 -f 1326/2025/87 1321/2032/87 1322/2026/87 -f 1323/2028/89 1319/2035/89 1320/2029/89 -f 1325/2031/92 1320/2029/92 1321/2032/92 -f 1324/2034/85 1322/2026/85 1319/2035/85 -f 1320/2029/90 1319/2035/90 1322/2026/90 +f 1076/1581/99 1051/1582/99 1071/1583/99 +f 1090/1584/100 1065/1585/100 1075/1586/100 +f 1057/1587/101 1060/1588/101 1058/1589/101 +f 1063/1590/102 1062/1591/102 1061/1592/102 +f 1065/1593/103 1068/1594/103 1066/1595/103 +f 1067/1596/102 1070/1597/102 1068/1594/102 +f 1070/1597/101 1062/1591/101 1064/1598/101 +f 1049/1599/104 1066/1595/104 1050/1600/104 +f 1083/1601/105 1091/1602/105 1052/1603/105 +f 1053/1604/104 1073/1605/104 1055/1606/104 +f 1074/1607/99 1083/1601/99 1092/1608/99 +f 1049/1599/99 1075/1586/99 1065/1585/99 +f 1059/1609/102 1080/1610/102 1060/1588/102 +f 1058/1589/104 1077/1611/104 1057/1587/104 +f 1079/1612/101 1082/1613/101 1080/1610/101 +f 1081/1614/104 1084/1615/104 1082/1613/104 +f 1084/1615/103 1053/1604/103 1055/1606/103 +f 1061/1616/103 1086/1617/103 1063/1618/103 +f 1085/1619/102 1088/1620/102 1086/1617/102 +f 1088/1620/101 1077/1611/101 1078/1621/101 +f 1091/1602/106 1090/1584/106 1052/1603/106 +f 1071/1583/103 1075/1622/103 1076/1581/103 +f 1092/1623/104 1071/1583/104 1097/1624/104 +f 1077/1625/99 1059/1626/99 1057/1627/99 +f 1062/1628/99 1085/1629/99 1061/1630/99 +f 1085/1629/107 1069/1631/107 1090/1584/107 +f 1054/1632/102 1075/1622/102 1056/1633/102 +f 1074/1634/101 1097/1624/101 1073/1605/101 +f 1077/1625/108 1089/1635/108 1091/1602/108 +f 1093/1636/102 1102/1637/102 1094/1638/102 +f 1098/1639/99 1070/1597/99 1064/1640/99 +f 1098/1641/99 1066/1595/99 1068/1594/99 +f 1050/1600/103 1056/1633/103 1049/1599/103 +f 1051/1642/99 1097/1624/99 1071/1583/99 +f 1099/1643/99 1084/1615/99 1055/1644/99 +f 1080/1610/99 1099/1645/99 1060/1646/99 +f 1100/1647/99 1086/1617/99 1088/1620/99 +f 1078/1621/99 1100/1648/99 1088/1620/99 +f 1095/1649/109 1093/1650/109 1058/1589/109 +f 1095/1651/110 1099/1652/110 1055/1606/110 +f 1094/1653/111 1096/1654/111 1054/1632/111 +f 1093/1636/112 1094/1638/112 1064/1598/112 +f 1102/1655/113 1095/1651/113 1096/1656/113 +f 1094/1653/103 1102/1657/103 1096/1654/103 +f 1093/1650/101 1095/1649/101 1101/1658/101 +f 1109/1659/103 1107/1660/103 1108/1661/103 +f 1105/1662/99 1110/1663/99 1106/1664/99 +f 1104/1665/106 1108/1661/106 1103/1666/106 +f 1106/1667/102 1109/1659/102 1104/1668/102 +f 1103/1669/104 1107/1660/104 1105/1670/104 +f 1118/1671/104 1114/1672/104 1116/1673/104 +f 1115/1674/102 1112/1675/102 1117/1676/102 +f 1117/1677/106 1113/1678/106 1118/1679/106 +f 1116/1680/99 1111/1681/99 1115/1682/99 +f 1112/1675/103 1114/1672/103 1113/1678/103 +f 1126/1683/104 1122/1684/104 1124/1685/104 +f 1123/1686/102 1120/1687/102 1125/1688/102 +f 1125/1689/106 1121/1690/106 1126/1691/106 +f 1124/1692/99 1119/1693/99 1123/1694/99 +f 1120/1687/103 1122/1684/103 1121/1690/103 +f 1133/1695/103 1131/1696/103 1132/1697/103 +f 1129/1698/99 1134/1699/99 1130/1700/99 +f 1128/1701/106 1132/1697/106 1127/1702/106 +f 1130/1703/102 1133/1695/102 1128/1704/102 +f 1127/1705/104 1131/1696/104 1129/1706/104 +f 1142/1707/104 1138/1708/104 1140/1709/104 +f 1139/1710/102 1136/1711/102 1141/1712/102 +f 1141/1713/106 1137/1714/106 1142/1715/106 +f 1140/1716/99 1135/1717/99 1139/1718/99 +f 1136/1711/103 1138/1708/103 1137/1714/103 +f 1149/1719/103 1147/1720/103 1148/1721/103 +f 1145/1722/99 1150/1723/99 1146/1724/99 +f 1144/1725/106 1148/1721/106 1143/1726/106 +f 1146/1727/102 1149/1719/102 1144/1728/102 +f 1143/1729/104 1147/1720/104 1145/1730/104 +f 1157/1731/103 1155/1732/103 1156/1733/103 +f 1153/1734/99 1158/1735/99 1154/1736/99 +f 1152/1737/106 1156/1733/106 1151/1738/106 +f 1154/1739/102 1157/1731/102 1152/1740/102 +f 1151/1741/104 1155/1732/104 1153/1742/104 +f 1165/1743/103 1163/1744/103 1164/1745/103 +f 1161/1746/99 1166/1747/99 1162/1748/99 +f 1160/1749/106 1164/1745/106 1159/1750/106 +f 1162/1751/102 1165/1743/102 1160/1752/102 +f 1159/1753/104 1163/1744/104 1161/1754/104 +f 1174/1755/104 1170/1756/104 1172/1757/104 +f 1171/1758/102 1168/1759/102 1173/1760/102 +f 1173/1761/106 1169/1762/106 1174/1763/106 +f 1172/1764/99 1167/1765/99 1171/1766/99 +f 1168/1759/103 1170/1756/103 1169/1762/103 +f 1182/1767/104 1178/1768/104 1180/1769/104 +f 1179/1770/102 1176/1771/102 1181/1772/102 +f 1181/1773/106 1177/1774/106 1182/1775/106 +f 1180/1776/99 1175/1777/99 1179/1778/99 +f 1176/1771/103 1178/1768/103 1177/1774/103 +f 1190/1779/104 1186/1780/104 1188/1781/104 +f 1187/1782/102 1184/1783/102 1189/1784/102 +f 1189/1785/106 1185/1786/106 1190/1787/106 +f 1188/1788/99 1183/1789/99 1187/1790/99 +f 1184/1783/103 1186/1780/103 1185/1786/103 +f 1197/1791/103 1195/1792/103 1196/1793/103 +f 1193/1794/99 1198/1795/99 1194/1796/99 +f 1192/1797/106 1196/1793/106 1191/1798/106 +f 1194/1799/102 1197/1791/102 1192/1800/102 +f 1191/1801/104 1195/1792/104 1193/1802/104 +f 1205/1803/101 1203/1804/101 1204/1805/101 +f 1201/1806/99 1206/1807/99 1202/1808/99 +f 1200/1809/106 1204/1805/106 1199/1810/106 +f 1202/1811/104 1205/1803/104 1200/1812/104 +f 1199/1813/102 1203/1804/102 1201/1814/102 +f 1214/1815/102 1210/1816/102 1212/1817/102 +f 1211/1818/104 1208/1819/104 1213/1820/104 +f 1213/1821/106 1209/1822/106 1214/1823/106 +f 1212/1824/99 1207/1825/99 1211/1826/99 +f 1208/1819/101 1210/1816/101 1209/1822/101 +f 1222/1827/102 1218/1828/102 1220/1829/102 +f 1219/1830/104 1216/1831/104 1221/1832/104 +f 1221/1833/106 1217/1834/106 1222/1835/106 +f 1220/1836/99 1215/1837/99 1219/1838/99 +f 1216/1831/101 1218/1828/101 1217/1834/101 +f 1229/1839/101 1227/1840/101 1228/1841/101 +f 1225/1842/99 1230/1843/99 1226/1844/99 +f 1224/1845/106 1228/1841/106 1223/1846/106 +f 1226/1847/104 1229/1839/104 1224/1848/104 +f 1223/1849/102 1227/1840/102 1225/1850/102 +f 1237/1851/101 1235/1852/101 1236/1853/101 +f 1233/1854/99 1238/1855/99 1234/1856/99 +f 1232/1857/106 1236/1853/106 1231/1858/106 +f 1234/1859/104 1237/1851/104 1232/1860/104 +f 1231/1861/102 1235/1852/102 1233/1862/102 +f 1246/1863/102 1242/1864/102 1244/1865/102 +f 1243/1866/104 1240/1867/104 1245/1868/104 +f 1245/1869/106 1241/1870/106 1246/1871/106 +f 1244/1872/99 1239/1873/99 1243/1874/99 +f 1240/1867/101 1242/1864/101 1241/1870/101 +f 1254/1875/102 1250/1876/102 1252/1877/102 +f 1251/1878/104 1248/1879/104 1253/1880/104 +f 1253/1881/106 1249/1882/106 1254/1883/106 +f 1252/1884/99 1247/1885/99 1251/1886/99 +f 1248/1879/101 1250/1876/101 1249/1882/101 +f 1261/1887/101 1259/1888/101 1260/1889/101 +f 1257/1890/99 1262/1891/99 1258/1892/99 +f 1256/1893/106 1260/1889/106 1255/1894/106 +f 1258/1895/104 1261/1887/104 1256/1896/104 +f 1255/1897/102 1259/1888/102 1257/1898/102 +f 1270/1899/101 1266/1900/101 1268/1901/101 +f 1267/1902/103 1264/1903/103 1269/1904/103 +f 1269/1905/106 1265/1906/106 1270/1907/106 +f 1268/1908/99 1263/1909/99 1267/1910/99 +f 1264/1903/104 1266/1900/104 1265/1906/104 +f 1277/1911/104 1275/1912/104 1276/1913/104 +f 1273/1914/99 1278/1915/99 1274/1916/99 +f 1272/1917/106 1276/1913/106 1271/1918/106 +f 1274/1919/103 1277/1911/103 1272/1920/103 +f 1271/1921/101 1275/1912/101 1273/1922/101 +f 1285/1923/104 1283/1924/104 1284/1925/104 +f 1281/1926/99 1286/1927/99 1282/1928/99 +f 1280/1929/106 1284/1925/106 1279/1930/106 +f 1282/1931/103 1285/1923/103 1280/1932/103 +f 1279/1933/101 1283/1924/101 1281/1934/101 +f 1293/1935/104 1291/1936/104 1292/1937/104 +f 1289/1938/99 1294/1939/99 1290/1940/99 +f 1288/1941/106 1292/1937/106 1287/1942/106 +f 1290/1943/103 1293/1935/103 1288/1944/103 +f 1287/1945/101 1291/1936/101 1289/1946/101 +f 1302/1947/101 1298/1948/101 1300/1949/101 +f 1299/1950/103 1296/1951/103 1301/1952/103 +f 1301/1953/106 1297/1954/106 1302/1955/106 +f 1300/1956/99 1295/1957/99 1299/1958/99 +f 1296/1951/104 1298/1948/104 1297/1954/104 +f 1310/1959/101 1306/1960/101 1308/1961/101 +f 1307/1962/103 1304/1963/103 1309/1964/103 +f 1309/1965/106 1305/1966/106 1310/1967/106 +f 1308/1968/99 1303/1969/99 1307/1970/99 +f 1304/1963/104 1306/1960/104 1305/1966/104 +f 1322/1971/101 1318/1972/101 1320/1973/101 +f 1319/1974/103 1316/1975/103 1321/1976/103 +f 1321/1977/106 1317/1978/106 1322/1979/106 +f 1320/1980/99 1315/1981/99 1319/1982/99 +f 1316/1975/104 1318/1972/104 1317/1978/104 +f 1329/1983/104 1327/1984/104 1328/1985/104 +f 1325/1986/99 1330/1987/99 1326/1988/99 +f 1324/1989/106 1328/1985/106 1323/1990/106 +f 1326/1991/103 1329/1983/103 1324/1992/103 +f 1323/1993/101 1327/1984/101 1325/1994/101 +f 1338/1995/101 1334/1996/101 1336/1997/101 +f 1335/1998/103 1332/1999/103 1337/2000/103 +f 1337/2001/106 1333/2002/106 1338/2003/106 +f 1336/2004/99 1331/2005/99 1335/2006/99 +f 1332/1999/104 1334/1996/104 1333/2002/104 +f 1345/2007/104 1343/2008/104 1344/2009/104 +f 1341/2010/99 1346/2011/99 1342/2012/99 +f 1340/2013/106 1344/2009/106 1339/2014/106 +f 1342/2015/103 1345/2007/103 1340/2016/103 +f 1339/2017/101 1343/2008/101 1341/2018/101 +f 1350/2019/106 1313/2020/106 1314/2021/106 +f 1312/2022/104 1313/2023/104 1311/2024/104 +f 1349/2025/102 1348/2026/102 1347/2027/102 +f 1312/2022/99 1347/2028/99 1348/2026/99 +f 1314/2021/101 1348/2026/101 1350/2019/101 +f 1357/2029/104 1355/2030/104 1356/2031/104 +f 1353/2032/99 1358/2033/99 1354/2034/99 +f 1352/2035/106 1356/2031/106 1351/2036/106 +f 1354/2037/103 1357/2029/103 1352/2038/103 +f 1351/2039/101 1355/2030/101 1353/2040/101 +f 1366/2041/101 1362/2042/101 1364/2043/101 +f 1363/2044/103 1360/2045/103 1365/2046/103 +f 1365/2047/106 1361/2048/106 1366/2049/106 +f 1364/2050/99 1359/2051/99 1363/2052/99 +f 1360/2045/104 1362/2042/104 1361/2048/104 +f 1076/1581/99 1054/2053/99 1051/1582/99 +f 1072/2054/100 1052/1603/100 1075/1586/100 +f 1052/1603/100 1090/1584/100 1075/1586/100 +f 1090/1584/100 1067/2055/100 1065/1585/100 +f 1057/1587/101 1059/1609/101 1060/1588/101 +f 1063/1590/102 1064/1598/102 1062/1591/102 +f 1065/1593/103 1067/1596/103 1068/1594/103 +f 1067/1596/102 1069/2056/102 1070/1597/102 +f 1070/1597/101 1069/2056/101 1062/1591/101 +f 1049/1599/104 1065/1593/104 1066/1595/104 +f 1052/1603/105 1072/2054/105 1092/1608/105 +f 1083/1601/105 1081/2057/105 1091/1602/105 +f 1052/1603/105 1092/1608/105 1083/1601/105 +f 1053/1604/104 1074/1634/104 1073/1605/104 +f 1074/1607/99 1053/2058/99 1083/1601/99 +f 1049/1599/99 1056/1633/99 1075/1586/99 +f 1059/1609/102 1079/1612/102 1080/1610/102 +f 1058/1589/104 1078/1621/104 1077/1611/104 +f 1079/1612/101 1081/1614/101 1082/1613/101 +f 1081/1614/104 1083/2059/104 1084/1615/104 +f 1084/1615/103 1083/2059/103 1053/1604/103 +f 1061/1616/103 1085/1619/103 1086/1617/103 +f 1085/1619/102 1087/2060/102 1088/1620/102 +f 1088/1620/101 1087/2060/101 1077/1611/101 +f 1091/1602/106 1089/1635/106 1090/1584/106 +f 1071/1583/103 1072/2061/103 1075/1622/103 +f 1092/1623/104 1072/2061/104 1071/1583/104 +f 1077/1625/99 1079/2062/99 1059/1626/99 +f 1062/1628/99 1069/1631/99 1085/1629/99 +f 1069/1631/107 1067/2055/107 1090/1584/107 +f 1090/1584/107 1089/1635/107 1085/1629/107 +f 1089/1635/107 1087/2063/107 1085/1629/107 +f 1054/1632/102 1076/1581/102 1075/1622/102 +f 1074/1634/101 1092/1623/101 1097/1624/101 +f 1091/1602/108 1081/2057/108 1079/2062/108 +f 1077/1625/108 1087/2063/108 1089/1635/108 +f 1091/1602/108 1079/2062/108 1077/1625/108 +f 1093/1636/102 1101/2064/102 1102/1637/102 +f 1098/1639/99 1068/1594/99 1070/1597/99 +f 1098/1641/99 1050/2065/99 1066/1595/99 +f 1050/1600/103 1054/1632/103 1056/1633/103 +f 1051/1642/99 1073/2066/99 1097/1624/99 +f 1099/1643/99 1082/1613/99 1084/1615/99 +f 1080/1610/99 1082/1613/99 1099/1645/99 +f 1100/1647/99 1063/2067/99 1086/1617/99 +f 1078/1621/99 1058/2068/99 1100/1648/99 +f 1100/2069/109 1058/1589/109 1093/1650/109 +f 1058/1589/109 1060/1588/109 1095/1649/109 +f 1060/1588/109 1099/2070/109 1095/1649/109 +f 1055/1606/110 1073/1605/110 1095/1651/110 +f 1073/1605/110 1051/2071/110 1096/1656/110 +f 1095/1651/110 1073/1605/110 1096/1656/110 +f 1051/2072/111 1054/1632/111 1096/1654/111 +f 1054/1632/111 1050/1600/111 1094/1653/111 +f 1050/1600/111 1098/2073/111 1094/1653/111 +f 1098/2074/112 1064/1598/112 1094/1638/112 +f 1064/1598/112 1063/1590/112 1093/1636/112 +f 1063/1590/112 1100/2075/112 1093/1636/112 +f 1102/1655/113 1101/2076/113 1095/1651/113 +f 1109/1659/103 1110/1663/103 1107/1660/103 +f 1105/1662/99 1107/1660/99 1110/1663/99 +f 1104/1665/106 1109/1659/106 1108/1661/106 +f 1106/1667/102 1110/1663/102 1109/1659/102 +f 1103/1669/104 1108/1661/104 1107/1660/104 +f 1118/1671/104 1113/1678/104 1114/1672/104 +f 1115/1674/102 1111/1681/102 1112/1675/102 +f 1117/1677/106 1112/1675/106 1113/1678/106 +f 1116/1680/99 1114/1672/99 1111/1681/99 +f 1112/1675/103 1111/1681/103 1114/1672/103 +f 1126/1683/104 1121/1690/104 1122/1684/104 +f 1123/1686/102 1119/1693/102 1120/1687/102 +f 1125/1689/106 1120/1687/106 1121/1690/106 +f 1124/1692/99 1122/1684/99 1119/1693/99 +f 1120/1687/103 1119/1693/103 1122/1684/103 +f 1133/1695/103 1134/1699/103 1131/1696/103 +f 1129/1698/99 1131/1696/99 1134/1699/99 +f 1128/1701/106 1133/1695/106 1132/1697/106 +f 1130/1703/102 1134/1699/102 1133/1695/102 +f 1127/1705/104 1132/1697/104 1131/1696/104 +f 1142/1707/104 1137/1714/104 1138/1708/104 +f 1139/1710/102 1135/1717/102 1136/1711/102 +f 1141/1713/106 1136/1711/106 1137/1714/106 +f 1140/1716/99 1138/1708/99 1135/1717/99 +f 1136/1711/103 1135/1717/103 1138/1708/103 +f 1149/1719/103 1150/1723/103 1147/1720/103 +f 1145/1722/99 1147/1720/99 1150/1723/99 +f 1144/1725/106 1149/1719/106 1148/1721/106 +f 1146/1727/102 1150/1723/102 1149/1719/102 +f 1143/1729/104 1148/1721/104 1147/1720/104 +f 1157/1731/103 1158/1735/103 1155/1732/103 +f 1153/1734/99 1155/1732/99 1158/1735/99 +f 1152/1737/106 1157/1731/106 1156/1733/106 +f 1154/1739/102 1158/1735/102 1157/1731/102 +f 1151/1741/104 1156/1733/104 1155/1732/104 +f 1165/1743/103 1166/1747/103 1163/1744/103 +f 1161/1746/99 1163/1744/99 1166/1747/99 +f 1160/1749/106 1165/1743/106 1164/1745/106 +f 1162/1751/102 1166/1747/102 1165/1743/102 +f 1159/1753/104 1164/1745/104 1163/1744/104 +f 1174/1755/104 1169/1762/104 1170/1756/104 +f 1171/1758/102 1167/1765/102 1168/1759/102 +f 1173/1761/106 1168/1759/106 1169/1762/106 +f 1172/1764/99 1170/1756/99 1167/1765/99 +f 1168/1759/103 1167/1765/103 1170/1756/103 +f 1182/1767/104 1177/1774/104 1178/1768/104 +f 1179/1770/102 1175/1777/102 1176/1771/102 +f 1181/1773/106 1176/1771/106 1177/1774/106 +f 1180/1776/99 1178/1768/99 1175/1777/99 +f 1176/1771/103 1175/1777/103 1178/1768/103 +f 1190/1779/104 1185/1786/104 1186/1780/104 +f 1187/1782/102 1183/1789/102 1184/1783/102 +f 1189/1785/106 1184/1783/106 1185/1786/106 +f 1188/1788/99 1186/1780/99 1183/1789/99 +f 1184/1783/103 1183/1789/103 1186/1780/103 +f 1197/1791/103 1198/1795/103 1195/1792/103 +f 1193/1794/99 1195/1792/99 1198/1795/99 +f 1192/1797/106 1197/1791/106 1196/1793/106 +f 1194/1799/102 1198/1795/102 1197/1791/102 +f 1191/1801/104 1196/1793/104 1195/1792/104 +f 1205/1803/101 1206/1807/101 1203/1804/101 +f 1201/1806/99 1203/1804/99 1206/1807/99 +f 1200/1809/106 1205/1803/106 1204/1805/106 +f 1202/1811/104 1206/1807/104 1205/1803/104 +f 1199/1813/102 1204/1805/102 1203/1804/102 +f 1214/1815/102 1209/1822/102 1210/1816/102 +f 1211/1818/104 1207/1825/104 1208/1819/104 +f 1213/1821/106 1208/1819/106 1209/1822/106 +f 1212/1824/99 1210/1816/99 1207/1825/99 +f 1208/1819/101 1207/1825/101 1210/1816/101 +f 1222/1827/102 1217/1834/102 1218/1828/102 +f 1219/1830/104 1215/1837/104 1216/1831/104 +f 1221/1833/106 1216/1831/106 1217/1834/106 +f 1220/1836/99 1218/1828/99 1215/1837/99 +f 1216/1831/101 1215/1837/101 1218/1828/101 +f 1229/1839/101 1230/1843/101 1227/1840/101 +f 1225/1842/99 1227/1840/99 1230/1843/99 +f 1224/1845/106 1229/1839/106 1228/1841/106 +f 1226/1847/104 1230/1843/104 1229/1839/104 +f 1223/1849/102 1228/1841/102 1227/1840/102 +f 1237/1851/101 1238/1855/101 1235/1852/101 +f 1233/1854/99 1235/1852/99 1238/1855/99 +f 1232/1857/106 1237/1851/106 1236/1853/106 +f 1234/1859/104 1238/1855/104 1237/1851/104 +f 1231/1861/102 1236/1853/102 1235/1852/102 +f 1246/1863/102 1241/1870/102 1242/1864/102 +f 1243/1866/104 1239/1873/104 1240/1867/104 +f 1245/1869/106 1240/1867/106 1241/1870/106 +f 1244/1872/99 1242/1864/99 1239/1873/99 +f 1240/1867/101 1239/1873/101 1242/1864/101 +f 1254/1875/102 1249/1882/102 1250/1876/102 +f 1251/1878/104 1247/1885/104 1248/1879/104 +f 1253/1881/106 1248/1879/106 1249/1882/106 +f 1252/1884/99 1250/1876/99 1247/1885/99 +f 1248/1879/101 1247/1885/101 1250/1876/101 +f 1261/1887/101 1262/1891/101 1259/1888/101 +f 1257/1890/99 1259/1888/99 1262/1891/99 +f 1256/1893/106 1261/1887/106 1260/1889/106 +f 1258/1895/104 1262/1891/104 1261/1887/104 +f 1255/1897/102 1260/1889/102 1259/1888/102 +f 1270/1899/101 1265/1906/101 1266/1900/101 +f 1267/1902/103 1263/1909/103 1264/1903/103 +f 1269/1905/106 1264/1903/106 1265/1906/106 +f 1268/1908/99 1266/1900/99 1263/1909/99 +f 1264/1903/104 1263/1909/104 1266/1900/104 +f 1277/1911/104 1278/1915/104 1275/1912/104 +f 1273/1914/99 1275/1912/99 1278/1915/99 +f 1272/1917/106 1277/1911/106 1276/1913/106 +f 1274/1919/103 1278/1915/103 1277/1911/103 +f 1271/1921/101 1276/1913/101 1275/1912/101 +f 1285/1923/104 1286/1927/104 1283/1924/104 +f 1281/1926/99 1283/1924/99 1286/1927/99 +f 1280/1929/106 1285/1923/106 1284/1925/106 +f 1282/1931/103 1286/1927/103 1285/1923/103 +f 1279/1933/101 1284/1925/101 1283/1924/101 +f 1293/1935/104 1294/1939/104 1291/1936/104 +f 1289/1938/99 1291/1936/99 1294/1939/99 +f 1288/1941/106 1293/1935/106 1292/1937/106 +f 1290/1943/103 1294/1939/103 1293/1935/103 +f 1287/1945/101 1292/1937/101 1291/1936/101 +f 1302/1947/101 1297/1954/101 1298/1948/101 +f 1299/1950/103 1295/1957/103 1296/1951/103 +f 1301/1953/106 1296/1951/106 1297/1954/106 +f 1300/1956/99 1298/1948/99 1295/1957/99 +f 1296/1951/104 1295/1957/104 1298/1948/104 +f 1310/1959/101 1305/1966/101 1306/1960/101 +f 1307/1962/103 1303/1969/103 1304/1963/103 +f 1309/1965/106 1304/1963/106 1305/1966/106 +f 1308/1968/99 1306/1960/99 1303/1969/99 +f 1304/1963/104 1303/1969/104 1306/1960/104 +f 1322/1971/101 1317/1978/101 1318/1972/101 +f 1319/1974/103 1315/1981/103 1316/1975/103 +f 1321/1977/106 1316/1975/106 1317/1978/106 +f 1320/1980/99 1318/1972/99 1315/1981/99 +f 1316/1975/104 1315/1981/104 1318/1972/104 +f 1329/1983/104 1330/1987/104 1327/1984/104 +f 1325/1986/99 1327/1984/99 1330/1987/99 +f 1324/1989/106 1329/1983/106 1328/1985/106 +f 1326/1991/103 1330/1987/103 1329/1983/103 +f 1323/1993/101 1328/1985/101 1327/1984/101 +f 1338/1995/101 1333/2002/101 1334/1996/101 +f 1335/1998/103 1331/2005/103 1332/1999/103 +f 1337/2001/106 1332/1999/106 1333/2002/106 +f 1336/2004/99 1334/1996/99 1331/2005/99 +f 1332/1999/104 1331/2005/104 1334/1996/104 +f 1345/2007/104 1346/2011/104 1343/2008/104 +f 1341/2010/99 1343/2008/99 1346/2011/99 +f 1340/2013/106 1345/2007/106 1344/2009/106 +f 1342/2015/103 1346/2011/103 1345/2007/103 +f 1339/2017/101 1344/2009/101 1343/2008/101 +f 1350/2019/106 1349/2077/106 1313/2020/106 +f 1312/2022/104 1314/2021/104 1313/2023/104 +f 1349/2025/102 1350/2019/102 1348/2026/102 +f 1312/2022/99 1311/2078/99 1347/2028/99 +f 1314/2021/101 1312/2022/101 1348/2026/101 +f 1357/2029/104 1358/2033/104 1355/2030/104 +f 1353/2032/99 1355/2030/99 1358/2033/99 +f 1352/2035/106 1357/2029/106 1356/2031/106 +f 1354/2037/103 1358/2033/103 1357/2029/103 +f 1351/2039/101 1356/2031/101 1355/2030/101 +f 1366/2041/101 1361/2048/101 1362/2042/101 +f 1363/2044/103 1359/2051/103 1360/2045/103 +f 1365/2047/106 1360/2045/106 1361/2048/106 +f 1364/2050/99 1362/2042/99 1359/2051/99 +f 1360/2045/104 1359/2051/104 1362/2042/104 o Head v -4.000008 0.000002 -5.000000 v 3.999992 -0.000002 -5.000000 @@ -5851,248 +5925,248 @@ vn 0.1445 0.9063 -0.3971 vn 0.8917 0.2418 -0.3825 vn -0.3068 -0.0904 -0.9474 s off -f 1328/2063/100 1329/2064/100 1327/2065/100 -f 1331/2066/101 1334/2067/101 1332/2068/101 -f 1335/2069/102 1338/2070/102 1336/2071/102 -f 1340/2072/103 1342/2073/103 1339/2074/103 -f 1343/2075/104 1345/2076/104 1344/2077/104 -f 1349/2078/105 1348/2079/105 1347/2080/105 -f 1327/2065/106 1350/2081/106 1328/2063/106 -f 1350/2082/107 1331/2066/107 1332/2068/107 -f 1332/2068/108 1330/2083/108 1328/2063/108 -f 1350/2084/109 1332/2068/109 1328/2063/109 -f 1336/2071/110 1333/2085/110 1331/2066/110 -f 1349/2086/111 1335/2069/111 1336/2071/111 -f 1349/2087/112 1336/2071/112 1331/2066/112 -f 1339/2088/113 1337/2089/113 1335/2069/113 -f 1347/2090/114 1340/2072/114 1339/2074/114 -f 1347/2091/115 1339/2088/115 1335/2069/115 -f 1341/2092/116 1327/2065/116 1329/2064/116 -f 1348/2093/117 1327/2065/117 1340/2072/117 -f 1333/2085/118 1346/2094/118 1334/2067/118 -f 1346/2095/119 1329/2064/119 1330/2083/119 -f 1334/2067/120 1346/2096/120 1330/2083/120 -f 1337/2089/121 1345/2097/121 1338/2070/121 -f 1338/2070/122 1345/2098/122 1333/2085/122 -f 1341/2092/123 1344/2099/123 1342/2073/123 -f 1342/2100/124 1344/2101/124 1337/2089/124 -f 1341/2092/125 1329/2064/125 1343/2102/125 -f 1353/2103/100 1393/2104/100 1391/2105/100 -f 1352/2106/116 1358/2107/116 1354/2108/116 -f 1353/2103/108 1355/2109/108 1351/2110/108 -f 1356/2111/103 1363/2112/103 1362/2113/103 -f 1364/2114/101 1355/2109/101 1361/2115/101 -f 1360/2116/104 1369/2117/104 1370/2118/104 -f 1352/2106/104 1369/2119/104 1356/2111/104 -f 1366/2120/104 1352/2106/104 1351/2110/104 -f 1368/2121/104 1351/2110/104 1355/2109/104 -f 1368/2122/104 1359/2123/104 1367/2124/104 -f 1361/2115/105 1374/2125/105 1373/2126/105 -f 1353/2103/105 1374/2127/105 1357/2128/105 -f 1354/2108/105 1372/2129/105 1353/2103/105 -f 1376/2130/105 1354/2108/105 1358/2107/105 -f 1376/2131/105 1362/2113/105 1375/2132/105 -f 1367/2133/102 1364/2114/102 1377/2134/102 -f 1361/2135/126 1377/2134/126 1364/2114/126 -f 1360/2116/102 1378/2136/102 1363/2112/102 -f 1378/2136/126 1362/2137/126 1363/2112/126 -f 1387/2138/104 1390/2139/104 1388/2140/104 -f 1381/2141/103 1388/2140/103 1382/2142/103 -f 1390/2139/101 1385/2143/101 1386/2144/101 -f 1385/2143/101 1389/2145/101 1383/2146/101 -f 1381/2141/103 1379/2147/103 1387/2138/103 -f 1379/2147/127 1389/2145/127 1387/2138/127 -f 1386/2144/101 1384/2148/101 1390/2139/101 -f 1382/2142/103 1388/2140/103 1380/2149/103 -f 1390/2139/128 1380/2149/128 1388/2140/128 -f 1391/2105/100 1354/2108/100 1353/2103/100 -f 1398/2150/103 1391/2151/103 1393/2152/103 -f 1396/2153/104 1392/2154/104 1391/2155/104 -f 1395/2156/101 1394/2157/101 1392/2158/101 -f 1397/2159/105 1393/2160/105 1394/2161/105 -f 1352/2106/100 1393/2104/100 1351/2110/100 -f 1354/2108/100 1394/2162/100 1352/2106/100 -f 1398/2150/100 1395/2156/100 1396/2153/100 -f 1429/2163/129 1434/2164/129 1432/2165/129 -f 1465/2166/130 1470/2167/130 1468/2168/130 -f 1477/2169/100 1478/2170/100 1479/2171/100 -f 1480/2172/100 1482/2173/100 1481/2174/100 -f 1472/2175/105 1477/2169/105 1471/2176/105 -f 1475/2177/107 1482/2178/107 1476/2179/107 -f 1474/2180/104 1481/2174/104 1475/2177/104 -f 1471/2176/123 1479/2181/123 1473/2182/123 -f 1476/2183/114 1480/2172/114 1474/2180/114 -f 1473/2184/118 1478/2170/118 1472/2175/118 -f 1328/2063/100 1330/2083/100 1329/2064/100 -f 1331/2066/101 1333/2085/101 1334/2067/101 -f 1335/2069/102 1337/2089/102 1338/2070/102 -f 1340/2072/103 1341/2092/103 1342/2073/103 -f 1343/2075/104 1346/2095/104 1345/2076/104 -f 1349/2078/105 1350/2081/105 1348/2079/105 -f 1327/2065/106 1348/2079/106 1350/2081/106 -f 1350/2082/107 1349/2185/107 1331/2066/107 -f 1332/2068/108 1334/2067/108 1330/2083/108 -f 1336/2071/110 1338/2070/110 1333/2085/110 -f 1349/2086/111 1347/2186/111 1335/2069/111 -f 1339/2088/113 1342/2100/113 1337/2089/113 -f 1347/2090/114 1348/2187/114 1340/2072/114 -f 1341/2092/116 1340/2072/116 1327/2065/116 -f 1333/2085/118 1345/2188/118 1346/2094/118 -f 1346/2095/119 1343/2075/119 1329/2064/119 -f 1337/2089/121 1344/2189/121 1345/2097/121 -f 1341/2092/123 1343/2190/123 1344/2099/123 -f 1353/2103/100 1351/2110/100 1393/2104/100 -f 1352/2106/116 1356/2111/116 1358/2107/116 -f 1353/2103/108 1357/2128/108 1355/2109/108 -f 1362/2113/103 1358/2107/103 1356/2111/103 -f 1356/2111/103 1360/2116/103 1363/2112/103 -f 1359/2123/101 1355/2109/101 1364/2114/101 -f 1355/2109/101 1357/2128/101 1361/2115/101 -f 1360/2116/104 1356/2111/104 1369/2117/104 -f 1352/2106/104 1365/2191/104 1369/2119/104 -f 1366/2120/104 1365/2192/104 1352/2106/104 -f 1368/2121/104 1366/2193/104 1351/2110/104 -f 1368/2122/104 1355/2109/104 1359/2123/104 -f 1361/2115/105 1357/2128/105 1374/2125/105 -f 1353/2103/105 1372/2194/105 1374/2127/105 -f 1354/2108/105 1371/2195/105 1372/2129/105 -f 1376/2130/105 1371/2196/105 1354/2108/105 -f 1376/2131/105 1358/2107/105 1362/2113/105 -f 1367/2133/102 1359/2123/102 1364/2114/102 -f 1361/2135/126 1373/2197/126 1377/2134/126 -f 1360/2116/102 1370/2198/102 1378/2136/102 -f 1378/2136/126 1375/2199/126 1362/2137/126 -f 1387/2138/104 1389/2145/104 1390/2139/104 -f 1381/2141/103 1387/2138/103 1388/2140/103 -f 1390/2139/101 1389/2145/101 1385/2143/101 -f 1379/2147/127 1383/2146/127 1389/2145/127 -f 1390/2139/128 1384/2148/128 1380/2149/128 -f 1391/2105/100 1392/2200/100 1354/2108/100 -f 1398/2150/103 1396/2153/103 1391/2151/103 -f 1396/2153/104 1395/2156/104 1392/2154/104 -f 1395/2156/101 1397/2159/101 1394/2157/101 -f 1397/2159/105 1398/2150/105 1393/2160/105 -f 1352/2106/100 1394/2162/100 1393/2104/100 -f 1354/2108/100 1392/2200/100 1394/2162/100 -f 1398/2150/100 1397/2159/100 1395/2156/100 -f 1425/2201/129 1424/2202/129 1423/2203/129 -f 1423/2203/129 1434/2164/129 1425/2201/129 -f 1434/2164/129 1433/2204/129 1432/2165/129 -f 1425/2201/129 1434/2164/129 1429/2163/129 -f 1432/2165/129 1431/2205/129 1429/2163/129 -f 1431/2205/129 1430/2206/129 1429/2163/129 -f 1429/2163/129 1428/2207/129 1427/2208/129 -f 1427/2208/129 1426/2209/129 1429/2163/129 -f 1426/2209/129 1425/2201/129 1429/2163/129 -f 1461/2210/130 1460/2211/130 1459/2212/130 -f 1459/2212/130 1470/2167/130 1461/2210/130 -f 1470/2167/130 1469/2213/130 1468/2168/130 -f 1461/2210/130 1470/2167/130 1465/2166/130 -f 1468/2168/130 1467/2214/130 1465/2166/130 -f 1467/2214/130 1466/2215/130 1465/2166/130 -f 1465/2166/130 1464/2216/130 1463/2217/130 -f 1463/2217/130 1462/2218/130 1465/2166/130 -f 1462/2218/130 1461/2210/130 1465/2166/130 -f 1472/2175/105 1478/2170/105 1477/2169/105 -f 1475/2177/107 1481/2174/107 1482/2178/107 -f 1474/2180/104 1480/2172/104 1481/2174/104 -f 1471/2176/123 1477/2169/123 1479/2181/123 -f 1476/2183/114 1482/2219/114 1480/2172/114 -f 1473/2184/118 1479/2220/118 1478/2170/118 +f 1368/2079/114 1369/2080/114 1367/2081/114 +f 1371/2082/115 1374/2083/115 1372/2084/115 +f 1375/2085/116 1378/2086/116 1376/2087/116 +f 1380/2088/117 1382/2089/117 1379/2090/117 +f 1383/2091/118 1385/2092/118 1384/2093/118 +f 1389/2094/119 1388/2095/119 1387/2096/119 +f 1367/2081/120 1390/2097/120 1368/2079/120 +f 1390/2098/121 1371/2082/121 1372/2084/121 +f 1372/2084/122 1370/2099/122 1368/2079/122 +f 1390/2100/123 1372/2084/123 1368/2079/123 +f 1376/2087/124 1373/2101/124 1371/2082/124 +f 1389/2102/125 1375/2085/125 1376/2087/125 +f 1389/2103/126 1376/2087/126 1371/2082/126 +f 1379/2104/127 1377/2105/127 1375/2085/127 +f 1387/2106/128 1380/2088/128 1379/2090/128 +f 1387/2107/129 1379/2104/129 1375/2085/129 +f 1381/2108/130 1367/2081/130 1369/2080/130 +f 1388/2109/131 1367/2081/131 1380/2088/131 +f 1373/2101/132 1386/2110/132 1374/2083/132 +f 1386/2111/133 1369/2080/133 1370/2099/133 +f 1374/2083/134 1386/2112/134 1370/2099/134 +f 1377/2105/135 1385/2113/135 1378/2086/135 +f 1378/2086/136 1385/2114/136 1373/2101/136 +f 1381/2108/137 1384/2115/137 1382/2089/137 +f 1382/2116/138 1384/2117/138 1377/2105/138 +f 1381/2108/139 1369/2080/139 1383/2118/139 +f 1393/2119/114 1433/2120/114 1431/2121/114 +f 1392/2122/130 1398/2123/130 1394/2124/130 +f 1393/2119/122 1395/2125/122 1391/2126/122 +f 1396/2127/117 1403/2128/117 1402/2129/117 +f 1404/2130/115 1395/2125/115 1401/2131/115 +f 1400/2132/118 1409/2133/118 1410/2134/118 +f 1392/2122/118 1409/2135/118 1396/2127/118 +f 1406/2136/118 1392/2122/118 1391/2126/118 +f 1408/2137/118 1391/2126/118 1395/2125/118 +f 1408/2138/118 1399/2139/118 1407/2140/118 +f 1401/2131/119 1414/2141/119 1413/2142/119 +f 1393/2119/119 1414/2143/119 1397/2144/119 +f 1394/2124/119 1412/2145/119 1393/2119/119 +f 1416/2146/119 1394/2124/119 1398/2123/119 +f 1416/2147/119 1402/2129/119 1415/2148/119 +f 1407/2149/116 1404/2130/116 1417/2150/116 +f 1401/2151/140 1417/2150/140 1404/2130/140 +f 1400/2132/116 1418/2152/116 1403/2128/116 +f 1418/2152/140 1402/2153/140 1403/2128/140 +f 1427/2154/118 1430/2155/118 1428/2156/118 +f 1421/2157/117 1428/2156/117 1422/2158/117 +f 1430/2155/115 1425/2159/115 1426/2160/115 +f 1425/2159/115 1429/2161/115 1423/2162/115 +f 1421/2157/117 1419/2163/117 1427/2154/117 +f 1419/2163/141 1429/2161/141 1427/2154/141 +f 1426/2160/115 1424/2164/115 1430/2155/115 +f 1422/2158/117 1428/2156/117 1420/2165/117 +f 1430/2155/142 1420/2165/142 1428/2156/142 +f 1431/2121/114 1394/2124/114 1393/2119/114 +f 1438/2166/117 1431/2167/117 1433/2168/117 +f 1436/2169/118 1432/2170/118 1431/2171/118 +f 1435/2172/115 1434/2173/115 1432/2174/115 +f 1437/2175/119 1433/2176/119 1434/2177/119 +f 1392/2122/114 1433/2120/114 1391/2126/114 +f 1394/2124/114 1434/2178/114 1392/2122/114 +f 1438/2166/114 1435/2172/114 1436/2169/114 +f 1469/2179/143 1474/2180/143 1472/2181/143 +f 1505/2182/144 1510/2183/144 1508/2184/144 +f 1517/2185/114 1518/2186/114 1519/2187/114 +f 1520/2188/114 1522/2189/114 1521/2190/114 +f 1512/2191/119 1517/2185/119 1511/2192/119 +f 1515/2193/121 1522/2194/121 1516/2195/121 +f 1514/2196/118 1521/2190/118 1515/2193/118 +f 1511/2192/137 1519/2197/137 1513/2198/137 +f 1516/2199/128 1520/2188/128 1514/2196/128 +f 1513/2200/132 1518/2186/132 1512/2191/132 +f 1368/2079/114 1370/2099/114 1369/2080/114 +f 1371/2082/115 1373/2101/115 1374/2083/115 +f 1375/2085/116 1377/2105/116 1378/2086/116 +f 1380/2088/117 1381/2108/117 1382/2089/117 +f 1383/2091/118 1386/2111/118 1385/2092/118 +f 1389/2094/119 1390/2097/119 1388/2095/119 +f 1367/2081/120 1388/2095/120 1390/2097/120 +f 1390/2098/121 1389/2201/121 1371/2082/121 +f 1372/2084/122 1374/2083/122 1370/2099/122 +f 1376/2087/124 1378/2086/124 1373/2101/124 +f 1389/2102/125 1387/2202/125 1375/2085/125 +f 1379/2104/127 1382/2116/127 1377/2105/127 +f 1387/2106/128 1388/2203/128 1380/2088/128 +f 1381/2108/130 1380/2088/130 1367/2081/130 +f 1373/2101/132 1385/2204/132 1386/2110/132 +f 1386/2111/133 1383/2091/133 1369/2080/133 +f 1377/2105/135 1384/2205/135 1385/2113/135 +f 1381/2108/137 1383/2206/137 1384/2115/137 +f 1393/2119/114 1391/2126/114 1433/2120/114 +f 1392/2122/130 1396/2127/130 1398/2123/130 +f 1393/2119/122 1397/2144/122 1395/2125/122 +f 1402/2129/117 1398/2123/117 1396/2127/117 +f 1396/2127/117 1400/2132/117 1403/2128/117 +f 1399/2139/115 1395/2125/115 1404/2130/115 +f 1395/2125/115 1397/2144/115 1401/2131/115 +f 1400/2132/118 1396/2127/118 1409/2133/118 +f 1392/2122/118 1405/2207/118 1409/2135/118 +f 1406/2136/118 1405/2208/118 1392/2122/118 +f 1408/2137/118 1406/2209/118 1391/2126/118 +f 1408/2138/118 1395/2125/118 1399/2139/118 +f 1401/2131/119 1397/2144/119 1414/2141/119 +f 1393/2119/119 1412/2210/119 1414/2143/119 +f 1394/2124/119 1411/2211/119 1412/2145/119 +f 1416/2146/119 1411/2212/119 1394/2124/119 +f 1416/2147/119 1398/2123/119 1402/2129/119 +f 1407/2149/116 1399/2139/116 1404/2130/116 +f 1401/2151/140 1413/2213/140 1417/2150/140 +f 1400/2132/116 1410/2214/116 1418/2152/116 +f 1418/2152/140 1415/2215/140 1402/2153/140 +f 1427/2154/118 1429/2161/118 1430/2155/118 +f 1421/2157/117 1427/2154/117 1428/2156/117 +f 1430/2155/115 1429/2161/115 1425/2159/115 +f 1419/2163/141 1423/2162/141 1429/2161/141 +f 1430/2155/142 1424/2164/142 1420/2165/142 +f 1431/2121/114 1432/2216/114 1394/2124/114 +f 1438/2166/117 1436/2169/117 1431/2167/117 +f 1436/2169/118 1435/2172/118 1432/2170/118 +f 1435/2172/115 1437/2175/115 1434/2173/115 +f 1437/2175/119 1438/2166/119 1433/2176/119 +f 1392/2122/114 1434/2178/114 1433/2120/114 +f 1394/2124/114 1432/2216/114 1434/2178/114 +f 1438/2166/114 1437/2175/114 1435/2172/114 +f 1465/2217/143 1464/2218/143 1463/2219/143 +f 1463/2219/143 1474/2180/143 1465/2217/143 +f 1474/2180/143 1473/2220/143 1472/2181/143 +f 1465/2217/143 1474/2180/143 1469/2179/143 +f 1472/2181/143 1471/2221/143 1469/2179/143 +f 1471/2221/143 1470/2222/143 1469/2179/143 +f 1469/2179/143 1468/2223/143 1467/2224/143 +f 1467/2224/143 1466/2225/143 1469/2179/143 +f 1466/2225/143 1465/2217/143 1469/2179/143 +f 1501/2226/144 1500/2227/144 1499/2228/144 +f 1499/2228/144 1510/2183/144 1501/2226/144 +f 1510/2183/144 1509/2229/144 1508/2184/144 +f 1501/2226/144 1510/2183/144 1505/2182/144 +f 1508/2184/144 1507/2230/144 1505/2182/144 +f 1507/2230/144 1506/2231/144 1505/2182/144 +f 1505/2182/144 1504/2232/144 1503/2233/144 +f 1503/2233/144 1502/2234/144 1505/2182/144 +f 1502/2234/144 1501/2226/144 1505/2182/144 +f 1512/2191/119 1518/2186/119 1517/2185/119 +f 1515/2193/121 1521/2190/121 1522/2194/121 +f 1514/2196/118 1520/2188/118 1521/2190/118 +f 1511/2192/137 1517/2185/137 1519/2197/137 +f 1516/2199/128 1522/2235/128 1520/2188/128 +f 1513/2200/132 1519/2236/132 1518/2186/132 s 1 -f 1401/2221/131 1414/2222/132 1402/2223/132 -f 1420/2224/133 1409/2225/134 1408/2226/133 -f 1405/2227/135 1418/2228/136 1406/2229/136 -f 1402/2223/132 1415/2230/137 1403/2231/137 -f 1421/2232/134 1410/2233/138 1409/2225/134 -f 1411/2234/139 1400/2235/140 1399/2236/139 -f 1418/2228/136 1407/2237/141 1406/2229/136 -f 1415/2230/137 1404/2238/142 1403/2231/137 -f 1410/2233/138 1411/2234/139 1399/2236/139 -f 1412/2239/140 1401/2221/131 1400/2235/140 -f 1419/2240/141 1408/2226/133 1407/2237/141 -f 1416/2241/142 1405/2242/135 1404/2238/142 -f 1507/2243/143 1520/2244/144 1508/2245/144 -f 1529/2246/145 1518/2247/146 1517/2248/145 -f 1522/2249/147 1511/2250/148 1510/2251/147 -f 1525/2252/149 1514/2253/150 1513/2254/149 -f 1516/2255/151 1529/2246/145 1517/2248/145 -f 1521/2256/152 1510/2251/147 1509/2257/152 -f 1524/2258/153 1513/2259/149 1512/2260/153 -f 1515/2261/154 1528/2262/151 1516/2255/151 -f 1508/2245/144 1521/2256/152 1509/2257/152 -f 1518/2247/146 1519/2263/143 1507/2243/143 -f 1523/2264/148 1512/2260/153 1511/2250/148 -f 1514/2253/150 1527/2265/154 1515/2261/154 -f 1437/2266/155 1450/2267/156 1438/2268/156 -f 1456/2269/157 1445/2270/158 1444/2271/157 -f 1441/2272/159 1454/2273/160 1442/2274/160 -f 1438/2268/156 1451/2275/161 1439/2276/161 -f 1457/2277/158 1446/2278/162 1445/2270/158 -f 1447/2279/163 1436/2280/164 1435/2281/163 -f 1442/2274/160 1455/2282/165 1443/2283/165 -f 1439/2276/161 1452/2284/166 1440/2285/166 -f 1446/2278/162 1447/2279/163 1435/2281/163 -f 1448/2286/164 1437/2266/155 1436/2280/164 -f 1455/2282/165 1444/2271/157 1443/2283/165 -f 1452/2284/166 1441/2287/159 1440/2285/166 -f 1490/2288/167 1503/2289/168 1491/2290/168 -f 1499/2291/169 1488/2292/170 1487/2293/169 -f 1494/2294/171 1495/2295/172 1483/2296/172 -f 1484/2297/173 1497/2298/174 1485/2299/174 -f 1491/2290/168 1504/2300/175 1492/2301/175 -f 1500/2302/170 1489/2303/176 1488/2292/170 -f 1497/2298/174 1486/2304/177 1485/2299/174 -f 1492/2301/175 1505/2305/178 1493/2306/178 -f 1489/2307/176 1502/2308/167 1490/2288/167 -f 1498/2309/177 1487/2293/169 1486/2304/177 -f 1505/2305/178 1494/2294/171 1493/2306/178 -f 1495/2295/172 1484/2297/173 1483/2296/172 -f 1401/2221/131 1413/2310/131 1414/2222/132 -f 1420/2224/133 1421/2232/134 1409/2225/134 -f 1405/2227/135 1417/2311/135 1418/2228/136 -f 1402/2223/132 1414/2222/132 1415/2230/137 -f 1421/2232/134 1422/2312/138 1410/2233/138 -f 1411/2234/139 1412/2239/140 1400/2235/140 -f 1418/2228/136 1419/2240/141 1407/2237/141 -f 1415/2230/137 1416/2241/142 1404/2238/142 -f 1410/2233/138 1422/2312/138 1411/2234/139 -f 1412/2239/140 1413/2310/131 1401/2221/131 -f 1419/2240/141 1420/2224/133 1408/2226/133 -f 1416/2241/142 1417/2313/135 1405/2242/135 -f 1507/2243/143 1519/2263/143 1520/2244/144 -f 1529/2246/145 1530/2314/146 1518/2247/146 -f 1522/2249/147 1523/2264/148 1511/2250/148 -f 1525/2252/149 1526/2315/150 1514/2253/150 -f 1516/2255/151 1528/2262/151 1529/2246/145 -f 1521/2256/152 1522/2249/147 1510/2251/147 -f 1524/2258/153 1525/2316/149 1513/2259/149 -f 1515/2261/154 1527/2265/154 1528/2262/151 -f 1508/2245/144 1520/2244/144 1521/2256/152 -f 1518/2247/146 1530/2314/146 1519/2263/143 -f 1523/2264/148 1524/2258/153 1512/2260/153 -f 1514/2253/150 1526/2315/150 1527/2265/154 -f 1437/2266/155 1449/2317/155 1450/2267/156 -f 1456/2269/157 1457/2277/158 1445/2270/158 -f 1441/2272/159 1453/2318/159 1454/2273/160 -f 1438/2268/156 1450/2267/156 1451/2275/161 -f 1457/2277/158 1458/2319/162 1446/2278/162 -f 1447/2279/163 1448/2286/164 1436/2280/164 -f 1442/2274/160 1454/2273/160 1455/2282/165 -f 1439/2276/161 1451/2275/161 1452/2284/166 -f 1446/2278/162 1458/2319/162 1447/2279/163 -f 1448/2286/164 1449/2317/155 1437/2266/155 -f 1455/2282/165 1456/2269/157 1444/2271/157 -f 1452/2284/166 1453/2320/159 1441/2287/159 -f 1490/2288/167 1502/2308/167 1503/2289/168 -f 1499/2291/169 1500/2302/170 1488/2292/170 -f 1494/2294/171 1506/2321/171 1495/2295/172 -f 1484/2297/173 1496/2322/173 1497/2298/174 -f 1491/2290/168 1503/2289/168 1504/2300/175 -f 1500/2302/170 1501/2323/176 1489/2303/176 -f 1497/2298/174 1498/2309/177 1486/2304/177 -f 1492/2301/175 1504/2300/175 1505/2305/178 -f 1489/2307/176 1501/2324/176 1502/2308/167 -f 1498/2309/177 1499/2291/169 1487/2293/169 -f 1505/2305/178 1506/2321/171 1494/2294/171 -f 1495/2295/172 1496/2322/173 1484/2297/173 +f 1441/2237/145 1454/2238/146 1442/2239/146 +f 1460/2240/147 1449/2241/148 1448/2242/147 +f 1445/2243/149 1458/2244/150 1446/2245/150 +f 1442/2239/146 1455/2246/151 1443/2247/151 +f 1461/2248/148 1450/2249/152 1449/2241/148 +f 1451/2250/153 1440/2251/154 1439/2252/153 +f 1458/2244/150 1447/2253/155 1446/2245/150 +f 1455/2246/151 1444/2254/156 1443/2247/151 +f 1450/2249/152 1451/2250/153 1439/2252/153 +f 1452/2255/154 1441/2237/145 1440/2251/154 +f 1459/2256/155 1448/2242/147 1447/2253/155 +f 1456/2257/156 1445/2258/149 1444/2254/156 +f 1547/2259/157 1560/2260/158 1548/2261/158 +f 1569/2262/159 1558/2263/160 1557/2264/159 +f 1562/2265/161 1551/2266/162 1550/2267/161 +f 1565/2268/163 1554/2269/164 1553/2270/163 +f 1556/2271/165 1569/2262/159 1557/2264/159 +f 1561/2272/166 1550/2267/161 1549/2273/166 +f 1564/2274/167 1553/2275/163 1552/2276/167 +f 1555/2277/168 1568/2278/165 1556/2271/165 +f 1548/2261/158 1561/2272/166 1549/2273/166 +f 1558/2263/160 1559/2279/157 1547/2259/157 +f 1563/2280/162 1552/2276/167 1551/2266/162 +f 1554/2269/164 1567/2281/168 1555/2277/168 +f 1477/2282/169 1490/2283/170 1478/2284/170 +f 1496/2285/171 1485/2286/172 1484/2287/171 +f 1481/2288/173 1494/2289/174 1482/2290/174 +f 1478/2284/170 1491/2291/175 1479/2292/175 +f 1497/2293/172 1486/2294/176 1485/2286/172 +f 1487/2295/177 1476/2296/178 1475/2297/177 +f 1482/2290/174 1495/2298/179 1483/2299/179 +f 1479/2292/175 1492/2300/180 1480/2301/180 +f 1486/2294/176 1487/2295/177 1475/2297/177 +f 1488/2302/178 1477/2282/169 1476/2296/178 +f 1495/2298/179 1484/2287/171 1483/2299/179 +f 1492/2300/180 1481/2303/173 1480/2301/180 +f 1530/2304/181 1543/2305/182 1531/2306/182 +f 1539/2307/183 1528/2308/184 1527/2309/183 +f 1534/2310/185 1535/2311/186 1523/2312/186 +f 1524/2313/187 1537/2314/188 1525/2315/188 +f 1531/2306/182 1544/2316/189 1532/2317/189 +f 1540/2318/184 1529/2319/190 1528/2308/184 +f 1537/2314/188 1526/2320/191 1525/2315/188 +f 1532/2317/189 1545/2321/192 1533/2322/192 +f 1529/2323/190 1542/2324/181 1530/2304/181 +f 1538/2325/191 1527/2309/183 1526/2320/191 +f 1545/2321/192 1534/2310/185 1533/2322/192 +f 1535/2311/186 1524/2313/187 1523/2312/186 +f 1441/2237/145 1453/2326/145 1454/2238/146 +f 1460/2240/147 1461/2248/148 1449/2241/148 +f 1445/2243/149 1457/2327/149 1458/2244/150 +f 1442/2239/146 1454/2238/146 1455/2246/151 +f 1461/2248/148 1462/2328/152 1450/2249/152 +f 1451/2250/153 1452/2255/154 1440/2251/154 +f 1458/2244/150 1459/2256/155 1447/2253/155 +f 1455/2246/151 1456/2257/156 1444/2254/156 +f 1450/2249/152 1462/2328/152 1451/2250/153 +f 1452/2255/154 1453/2326/145 1441/2237/145 +f 1459/2256/155 1460/2240/147 1448/2242/147 +f 1456/2257/156 1457/2329/149 1445/2258/149 +f 1547/2259/157 1559/2279/157 1560/2260/158 +f 1569/2262/159 1570/2330/160 1558/2263/160 +f 1562/2265/161 1563/2280/162 1551/2266/162 +f 1565/2268/163 1566/2331/164 1554/2269/164 +f 1556/2271/165 1568/2278/165 1569/2262/159 +f 1561/2272/166 1562/2265/161 1550/2267/161 +f 1564/2274/167 1565/2332/163 1553/2275/163 +f 1555/2277/168 1567/2281/168 1568/2278/165 +f 1548/2261/158 1560/2260/158 1561/2272/166 +f 1558/2263/160 1570/2330/160 1559/2279/157 +f 1563/2280/162 1564/2274/167 1552/2276/167 +f 1554/2269/164 1566/2331/164 1567/2281/168 +f 1477/2282/169 1489/2333/169 1490/2283/170 +f 1496/2285/171 1497/2293/172 1485/2286/172 +f 1481/2288/173 1493/2334/173 1494/2289/174 +f 1478/2284/170 1490/2283/170 1491/2291/175 +f 1497/2293/172 1498/2335/176 1486/2294/176 +f 1487/2295/177 1488/2302/178 1476/2296/178 +f 1482/2290/174 1494/2289/174 1495/2298/179 +f 1479/2292/175 1491/2291/175 1492/2300/180 +f 1486/2294/176 1498/2335/176 1487/2295/177 +f 1488/2302/178 1489/2333/169 1477/2282/169 +f 1495/2298/179 1496/2285/171 1484/2287/171 +f 1492/2300/180 1493/2336/173 1481/2303/173 +f 1530/2304/181 1542/2324/181 1543/2305/182 +f 1539/2307/183 1540/2318/184 1528/2308/184 +f 1534/2310/185 1546/2337/185 1535/2311/186 +f 1524/2313/187 1536/2338/187 1537/2314/188 +f 1531/2306/182 1543/2305/182 1544/2316/189 +f 1540/2318/184 1541/2339/190 1529/2319/190 +f 1537/2314/188 1538/2325/191 1526/2320/191 +f 1532/2317/189 1544/2316/189 1545/2321/192 +f 1529/2323/190 1541/2340/190 1542/2324/181 +f 1538/2325/191 1539/2307/183 1527/2309/183 +f 1545/2321/192 1546/2337/185 1534/2310/185 +f 1535/2311/186 1536/2338/187 1524/2313/187 From a29dd004775e00e2373783b53f68b7399fb7f11f Mon Sep 17 00:00:00 2001 From: Bob Date: Thu, 12 Oct 2023 22:25:42 +0200 Subject: [PATCH 341/432] there is no greater joy than shooting a man in this walmart of a world --- src/main/java/com/hbm/items/tool/ItemCMStructure.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/hbm/items/tool/ItemCMStructure.java b/src/main/java/com/hbm/items/tool/ItemCMStructure.java index c7ce6f2d6..6c46decee 100644 --- a/src/main/java/com/hbm/items/tool/ItemCMStructure.java +++ b/src/main/java/com/hbm/items/tool/ItemCMStructure.java @@ -79,20 +79,20 @@ public class ItemCMStructure extends Item implements ILookOverlay { int compX = 0; int compZ = 0; - if(dir == ForgeDirection.NORTH) { + if(dir == ForgeDirection.SOUTH) { compX = anchorX - x; compZ = anchorZ - z; } - if(dir == ForgeDirection.SOUTH) { + if(dir == ForgeDirection.NORTH) { compX = x - anchorX; compZ = z - anchorZ; } - if(dir == ForgeDirection.EAST) { + if(dir == ForgeDirection.WEST) { compZ = x - anchorX; compX = anchorZ - z; } - if(dir == ForgeDirection.WEST) { + if(dir == ForgeDirection.EAST) { compZ = anchorX - x; compX = z - anchorZ; } From e5fdb7cf8d004b9347945adec80b281d5d77f0fa Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 15 Oct 2023 19:25:49 +0200 Subject: [PATCH 342/432] updated localization --- src/main/resources/assets/hbm/lang/zh_CN.lang | 179 ++++++++++++++++-- .../assets/hbm/sounds/block/reactorLoop.ogg | Bin 112164 -> 114673 bytes 2 files changed, 167 insertions(+), 12 deletions(-) diff --git a/src/main/resources/assets/hbm/lang/zh_CN.lang b/src/main/resources/assets/hbm/lang/zh_CN.lang index 570c2eb9a..4bd5871e0 100644 --- a/src/main/resources/assets/hbm/lang/zh_CN.lang +++ b/src/main/resources/assets/hbm/lang/zh_CN.lang @@ -134,6 +134,7 @@ armor.damageModifier=修正 %s 对 %s 的伤害 armor.dash=给予 %s 冲刺 armor.electricJetpack=离子喷射背包 armor.explosionImmune=免疫除爆炸伤害外的一切伤害 +armor.fasterReload=快速装填 armor.fastFall=快速降落 armor.fireproof=防火 armor.fullSetBonus=全套效果: @@ -144,10 +145,12 @@ armor.gravity=重力修正 %s armor.hardLanding=硬着陆 armor.ignoreLimit=防御值不受防御上限的影响 armor.modifier=伤害修正 %s +armor.moreAmmo=更多弹药 armor.nullDamage=免疫 %s 伤害 armor.projectileProtection=免疫 %s 的弹射物伤害 armor.rocketBoots=火箭靴 armor.sprintBoost=冲刺辅助加速 +armor.stepSize=步长:%s armor.thermal=热成像 armor.threshold=伤害阈值 %s armor.vats=敌对生物HUD @@ -310,7 +313,7 @@ book.starter.page18=v?r只是一个被困在"传声头像"的§o《一生一次 #book.rbmk.page15=The §lfuel§r's reactivity is based on multiple factors. The main ones are the §lenrichment§r, §lxenon poison§r and the amount of incoming §lneutrons§r. Xenon builds up when the fuel receives few neutrons and burns away during normal operation. The effectivity of neutrons depends on the type, most fuels §lsplit best with slow neutrons§r. #book.rbmk.title16=Meltdown #book.rbmk.page16=§4§lAvoid. -book_lore.author=By %s +book_lore.author=由%s book_lore.test.name=测试 book_lore.test.author=那个家伙 book_lore.test.page.0=>hello anons before i begin let me clarify that i'm not gay. >Be me >This night >18 > At hanging out with my best friend with my parents gone for a few days >We've been best friends for a year now >Been drinking a bit and playing lots of video games and ordered a pizza >We were having a blast >At a certain point in the night like around 9:00 he makes a really funny joke that I don't remember but I know that it made us both laugh really hard > With out thinking I brush my right hand through his semi-curly black hair and call him a funny boy >He blushes >I realize I'm feeling flustered >We're kinda close >All of the sudden he kisses me and for some reason I kiss him back >We make love >Cuddle together and fall asleep >Wake up in the middle of the night with his head snuggled up on my chest and neck area >It feels nice but I'm not a homosexual @@ -377,13 +380,17 @@ book_lore.bf_bomb_2.page.1=And yet I can't even blame them. Swirlmat makes no go book_lore.bf_bomb_2.page.2=Even worse, this thing is an energy source. The existence of our sample is a violation of ALARA: the lab was vacated when it arrived, and the only person brave enough (one Dr. Melfyn) donned a level A hazmat just to carry it 20 meters. book_lore.bf_bomb_2.page.3=The empirical data isn't better, as we're breaking the first law of thermodynamics with how much energy it radiates. Being anywhere near that thing - even behind a meter of lead - was terrifying. We sprinted out of the chamber upon conclusion of the spectroscopy book_lore.bf_bomb_2.page.4=and we got nothing new out of it. Those idiots in the science team, god, did not even waver after all that. Sitting through those "discussions" was horrible; that quack of a head researcher even rumored that the test ban would be lifted, that we could be -book_lore.bf_bomb_2.page.5=building bombs out of the shit in the coming weeks, who in their right mind would work on that? Hell, the one sane assistant (an Andrew) nicknamed it "balefire" - because burning to death on a funeral pyre would be painless by comparison. +book_lore.bf_bomb_2.page.5=building bombs out of the shit in the coming weeks, who in their right mind would work on that? Hell, the one sane assistant (an Andrew) nicknamed it "balefire" - because burning to death on a funeral pyre would be painless by comparison. + + book_lore.bf_bomb_3.name=私人笔记 book_lore.bf_bomb_3.author=M. 波特 book_lore.bf_bomb_3.page.0=The team and I have made some breakthroughs. Emphasis on the separation - isolating myself from the more devout has made working there so much more bearable. While we still have no idea about the actual properties of balefire (it's difficult to analyze book_lore.bf_bomb_3.page.1=a sample that fries your equipment) its interactions with other matter has proved fruitful. Notably, they synthesized a "gaseous" form: Andrew, of all people, informed me that it was really a colloid consisting of microscopic balefire particles, suspended in some book_lore.bf_bomb_3.page.2=noble gas. Each particle is enveloped by a positively-charged 'bubble' of ionized gas, preventing it from settling. Who could've guessed that fatal gamma radiation had a benefit? Not me. $ I'm choosing not to think about how they transformed the sample into -book_lore.bf_bomb_3.page.3=particulate, but I can't understate the utility of this gaseous balefire - it's made it much safer to experiment on. $ Speaking of safety, the head researcher (in an act of callous disregard) made a discovery that also nearly took his head off. +book_lore.bf_bomb_3.page.3=particulate, but I can't understate the utility of this gaseous balefire - it's made it much safer to experiment on. $ Speaking of safety, the head researcher (in an act of callous disregard) made a discovery that also nearly took his head off. + + book_lore.bf_bomb_3.page.4=He decided to get "dirty" by letting a cell of our new colloid interact directly with some very expensive antimatter: the resulting explosion turned the table it was on into a piece of radiation-bleached slag, carved a near-perfect hemisphere through book_lore.bf_bomb_3.page.5=the top, and gave the head a healthy dose of ARS. I guess we know how to make it explode now, but god, some people... book_lore.bf_bomb_4.name=私人笔记 @@ -574,6 +581,7 @@ chem.SULFURIC_ACID=硫酸生产 chem.TATB=TATB合成 chem.TEL=四乙基铅混合 chem.TEST=测试 +chem.THORIUM_SALT=钍盐富集 chem.TNT=TNT合成 chem.UF6=六氟化铀生产 chem.VIT_GAS=气态核废料玻璃化 @@ -592,6 +600,7 @@ container.amsLimiter=AMS稳能器(装饰) container.anvil=砧 container.arcFurnace=电弧炉 container.armorTable=装甲改装台 +container.ashpit=储灰槽 container.assembler=装配机 container.autocrafter=自动工作台 container.barrel=桶 @@ -622,6 +631,10 @@ container.dfcReceiver=DFC接收器 container.dfcStabilizer=DFC稳定器 container.diFurnace=高炉 container.diFurnaceRTG=核高炉 +container.droneCrate=运输无人机坞 +container.droneDock=船坞 +container.droneProvider=提供 +container.droneRequester=请求 container.electricFurnace=电炉 container.epress=电动锻压机 container.factoryAdvanced=高级工厂 @@ -872,6 +885,7 @@ desc.item.ammo.neu_fun=* 全家其乐无穷! desc.item.ammo.neu_heavy_metal=* 重金属 desc.item.ammo.neu_homing=* 追踪 desc.item.ammo.neu_jolt=* 震荡 +desc.item.ammo.neu_leadburster=* 附着在表面并喷射子弹 desc.item.ammo.neu_less_bouncy=* 弹性更小 desc.item.ammo.neu_maskman_flechette=* 曳光弹,同时引发一场贫铀飞镖弹风暴 desc.item.ammo.neu_maskman_meteorite=* 高伤害,同时召唤小陨石 @@ -949,7 +963,9 @@ desc.item.kitArmor=装甲将被新的装备取代。 desc.item.kitHaz=装甲将被防护服取代。 desc.item.kitPack=真便宜! desc.item.kitPool=请在打开前清空背包库存! -desc.item.pileRod=§e使用钻孔石墨插入$§E使用螺丝刀拔出$ +desc.item.pileRod=§e使用钻孔石墨插入$§E使用螺丝刀拔出$ + + desc.item.rtgDecay=衰变为:%s desc.item.rtgHeat=功率级别:%s desc.item.storage.capacity=容量 %s%%s @@ -1053,7 +1069,8 @@ gun.make.MANN=Open Mann公司 gun.make.MAXIM=海勒姆·马克沁 gun.make.METRO=地铁枪手 gun.make.MWT=MWT原型实验室 -gun.make.NAZI=埃尔福特机械制造厂 +gun.make.NAWS=Kayarm Industries +gun.make.ERFURT=埃尔福特机械制造厂 gun.make.NONE=- gun.make.RAYTHEON=导弹系统公司 gun.make.REMINGTON=雷明登武器公司 @@ -1076,6 +1093,7 @@ gun.name.benelli=伯奈利M4 Super 90霰弹枪 gun.name.benelliDrum=伯奈利M4 Super 90霰弹枪 (泵动供弹改进型) gun.name.bio=RI No. 2 Mark 1 gun.name.bolter=Manticora Pattern爆弹枪 +gun.name.congoLake=刚果湖水泵动榴弹发射器 gun.name.cPython=柯尔特蟒蛇 gun.name.cz53=CZ53 单兵转轮机枪 gun.name.cz57=CZ57 复仇者机枪 @@ -1248,6 +1266,7 @@ hbmfluid.heatingoil_vacuum=重质燃油 hbmfluid.heavyoil=重油 hbmfluid.heavyoil_vacuum=减压重油 hbmfluid.heavywater=重水 +hbmfluid.heavywater_hot=高温重水 hbmfluid.helium3=氦-3 hbmfluid.helium4=氦-4 hbmfluid.hotcrackoil=热裂化油 @@ -1304,6 +1323,8 @@ hbmfluid.smear=工业油 hbmfluid.smoke=烟雾 hbmfluid.smoke_leaded=含铅烟雾 hbmfluid.smoke_poison=有毒烟雾 +hbmfluid.sodium=液态钠 +hbmfluid.sodium_hot=高温液态钠 hbmfluid.solvent=有机溶剂 hbmfluid.sourgas=高硫天然气 hbmfluid.spentsteam=低压蒸汽 @@ -1312,6 +1333,9 @@ hbmfluid.sulfuric_acid=硫酸 hbmfluid.sunfloweroil=葵花籽油 hbmfluid.superhotsteam=超热蒸汽 hbmfluid.syngas=合成气 +hbmfluid.thorium_salt=液态钍盐 +hbmfluid.thorium_salt_depleted=贫化液态钍盐 +hbmfluid.thorium_salt_hot=高温液态钍盐 hbmfluid.tritium=氚 hbmfluid.uf6=六氟化铀 hbmfluid.ultrahotsteam=超浓密蒸汽 @@ -1598,6 +1622,7 @@ item.ammo_grenade_finned.name=40mm榴弹[尾翼稳定] item.ammo_grenade_he.name=40mm榴弹[HE] item.ammo_grenade_incendiary.name=40mm榴弹[燃烧] item.ammo_grenade_kampf.name=40mm战术榴弹 +item.ammo_grenade_leadburster.name=40mm 开路先锋 item.ammo_grenade_nuclear.name=40mm榴弹[核子] item.ammo_grenade_phosphorus.name=40mm榴弹[白磷] item.ammo_grenade_sleek.name=40mm榴弹[IF-R&D] @@ -1677,6 +1702,7 @@ item.ams_focus_limiter.desc=限制领域的最高性能:$标准冷却,无能 item.ams_lens.name=稳定透镜 item.ams_muzzle.name=激活射线发射极 item.ams_muzzle.desc=...它可以发出一束能量束。 +item.analysis_tool.name=分析工具 item.analyzer.name=分析仪 item.anchor_remote.name=召回设备 item.antiknock.name=四乙基铅抗爆剂 @@ -2311,6 +2337,9 @@ item.door_bunker.name=仓门 item.door_metal.name=金属门 item.door_office.name=办公室门 item.dosimeter.name=剂量计 +item.drax.name=采掘钻 +item.drax_mk2.name=强化型采掘钻 +item.drax_mk3.name=Sa326采掘钻 item.drillbit_desh.name=Desh钻头 item.drillbit_desh_diamond.name=Desh钻头(镶钻) item.drillbit_ferro.name=铀铁合金钻头 @@ -2322,9 +2351,12 @@ item.drillbit_steel_diamond.name=钢钻头(镶钻) item.drillbit_tcalloy.name=锝钢钻头 item.drillbit_tcalloy_diamond.name=锝钢钻头(镶钻) item.drill_titanium.name=钛钻头 -item.drax.name=采掘钻 -item.drax_mk2.name=强化型采掘钻 -item.drax_mk3.name=Sa326采掘钻 +item.drone.patrol.name=运输无人机 +item.drone.patrol_chunkloading.name=区块加载无人机 +item.drone.patrol_express.name=快递无人机 +item.drone.patrol_express_chunkloading.name=区块加载快递无人机 +item.drone.request.name=物流无人机 +item.drone_linker.name=运输无人机链接器 item.ducttape.name=胶带 item.dust.name=灰尘 item.dust.desc=我讨厌灰尘! @@ -2345,7 +2377,7 @@ item.early_explosive_lenses.desc=8个炸药透镜的组装,带有铝合金推 item.egg_balefire.name=野火蛋 item.egg_balefire.desc=什么样的鸟儿才会下带有放射性的蛋? item.egg_balefire_shard.name=野火蛋碎片 -item.egg_glyphid.name=Glyphid Egg +item.egg_glyphid.name=异虫蛋 item.elec_axe.name=电锯 item.elec_pickaxe.name=冲击钻 item.elec_shovel.name=螺旋钻 @@ -2463,6 +2495,7 @@ item.gear_large.name=大型齿轮 item.gear_large_steel.name=大型钢齿轮 item.geiger_counter.name=手持盖革计数器 item.gem_alexandrite.name=亚历山大变石 +item.gem_sodalite.name=方钠石 item.gem_tantalium.name=钽晶体 item.gem_tantalium.desc=“钽” item.gem_tantalium.desc.P11=又名钽。 @@ -2523,7 +2556,7 @@ item.gun_avenger.name=CZ57复仇者机枪 item.gun_b92.name=§9B92能量手枪§r item.gun_b92_ammo.name=§9B92能量单元§r item.gun_b93.name=§cB93能量手枪§r -item.gun_benelli.name=Benelli自动喷枪(Drum Mod) +item.gun_benelli.name=伯奈利自动霰弹枪(Drum Mod) item.gun_bf.name=BEL item.gun_bf_ammo.name=Mk.V小型AMAT-炮弹 –野火型 item.gun_bio_revolver.name=Atlas @@ -2538,6 +2571,8 @@ item.gun_calamity_ammo.name=.50BMG子弹 item.gun_calamity_dual.name=马鞍枪 item.gun_chemthrower.name=化学喷射器 item.gun_coilgun.name=线圈枪 +item.gun_congolake.name=刚果湖 +item.gun_cryocannon.name=低温炮 item.gun_cryolator.name=冻结者 item.gun_cryolator_ammo.name=急冻单元 item.gun_dampfmaschine.name=绝对不是开玩笑的武器 @@ -2670,6 +2705,7 @@ item.heart_booster.name=心之增强器 item.heart_container.name=心之容器 item.heart_fab.name=心脏抗原结合器 item.heart_piece.name=心之碎片 +item.heavy_component.name=重型%s组件 item.hev_battery.name=套装电池 item.hev_boots.name=HEV Mk.IV 靴子 item.hev_plate.name=HEV Mk.IV 胸甲 @@ -3216,6 +3252,7 @@ item.ore.asbestos=石棉 item.ore.borax=硼砂 item.ore.chlorocalcite=氯方解石 item.ore.copper=铜 +item.ore.fluorite=氟石 item.ore.gold=金 item.ore.iron=铁 item.ore.niobium=铌 @@ -3417,6 +3454,11 @@ item.powder_advanced_alloy.name=高级合金粉 item.powder_aluminium.name=铝粉 item.powder_asbestos.name=石棉粉 item.powder_asbestos.desc=§o\"Sniffffffff- MHHHHHHMHHHHHHHHH\"§r +item.powder_ash.coal.name=煤灰 +item.powder_ash.fly.name=飞尘 +item.powder_ash.misc.name=灰尘 +item.powder_ash.soot.name=细烟灰 +item.powder_ash.wood.name=木灰 item.powder_astatine.name=砹粉 item.powder_at209.name=砹-209粉 item.powder_au198.name=金-198粉 @@ -3502,6 +3544,7 @@ item.powder_sawdust.name=锯末 item.powder_schrabidate.name=Sa酸铁粉 item.powder_schrabidium.name=Sa326粉 item.powder_semtex_mix.name=塞姆汀塑胶炸药混合物 +item.powder_sodium.name=Sodium item.powder_spark_mix.name=Spark闪闪奥术混合物 item.powder_sr90.name=锶-90粉 item.powder_sr90_tiny.name=小撮锶-90粉末 @@ -3535,6 +3578,51 @@ item.primer_buckshot.name=鹿弹底火[x12] item.protection_charm.name=守护项链 item.prototype_kit.name=原型 套件 item.pudding.name=布丁 +item.pwr_fuel.bfb_am_mix.name=燃料级镅压水堆BFB燃料棒 +item.pwr_fuel.bfb_pu241.name=钚-241压水堆BFB棒 +item.pwr_fuel.hea242.name=HEA-242 高浓缩度镅-242压水堆燃料棒 +item.pwr_fuel.hen237.name=HEN-237 高浓缩度镎-237压水堆燃料棒 +item.pwr_fuel.hep239.name=HEP-239 高浓缩度钚-239压水堆燃料棒 +item.pwr_fuel.hep241.name=HEP-241 高浓缩度钚-241压水堆燃料棒 +item.pwr_fuel.hes326.name=HES-326 高浓缩度Sa326压水堆燃料棒 +item.pwr_fuel.hes327.name=HES-327 高浓缩度Sa327压水堆燃料棒 +item.pwr_fuel.heu233.name=HEU-233 高浓缩度铀-233压水堆燃料棒 +item.pwr_fuel.heu235.name=HEU-235 高浓缩度铀-235压水堆燃料棒 +item.pwr_fuel.mea.name=MEA 中浓缩度镅压水堆燃料棒 +item.pwr_fuel.men.name=MEN 中浓缩度镎压水堆燃料棒 +item.pwr_fuel.mep.name=MEP 中浓缩度钚压水堆燃料棒 +item.pwr_fuel.meu.name=MEU 中浓缩度铀压水堆燃料棒 +item.pwr_fuel.mox.name=MOX 压水堆燃料棒 +item.pwr_fuel_depleted.bfb_am_mix.name=枯竭燃料级镅压水堆BFB燃料棒 +item.pwr_fuel_depleted.bfb_pu241.name=枯竭钚-241压水堆BFB棒 +item.pwr_fuel_depleted.hea242.name=枯竭 HEA-242 高浓缩度镅-242压水堆燃料棒 +item.pwr_fuel_depleted.hen237.name=枯竭 HEN-237 高浓缩度镎-237压水堆燃料棒 +item.pwr_fuel_depleted.hep239.name=枯竭 HEP-239 高浓缩度钚-239压水堆燃料棒 +item.pwr_fuel_depleted.hep241.name=枯竭 HEP-241 高浓缩度钚-241压水堆燃料棒 +item.pwr_fuel_depleted.hes326.name=枯竭 HES-326 高浓缩度Sa326压水堆燃料棒 +item.pwr_fuel_depleted.hes327.name=枯竭 HES-327 高浓缩度Sa327压水堆燃料棒 +item.pwr_fuel_depleted.heu233.name=枯竭 HEU-233 高浓缩度铀-233压水堆燃料棒 +item.pwr_fuel_depleted.heu235.name=枯竭 HEU-235 高浓缩度铀-235压水堆燃料棒 +item.pwr_fuel_depleted.mea.name=枯竭 MEA 中浓缩度镅压水堆燃料棒 +item.pwr_fuel_depleted.men.name=枯竭 MEN 中浓缩度镎压水堆燃料棒 +item.pwr_fuel_depleted.mep.name=枯竭 MEP 中浓缩度钚压水堆燃料棒 +item.pwr_fuel_depleted.meu.name=枯竭 MEU 中浓缩度铀压水堆燃料棒 +item.pwr_fuel_depleted.mox.name=枯竭 MOX 压水堆燃料棒 +item.pwr_fuel_hot.bfb_am_mix.name=高温 燃料级镅压水堆BFB燃料棒 +item.pwr_fuel_hot.bfb_pu241.name=高温 钚-241压水堆BFB棒 +item.pwr_fuel_hot.hea242.name=高温 HEA-242 高浓缩度镅-242压水堆燃料棒 +item.pwr_fuel_hot.hen237.name=高温 HEN-237 高浓缩度镎-237压水堆燃料棒 +item.pwr_fuel_hot.hep239.name=高温 HEP-239 高浓缩度钚-239压水堆燃料棒 +item.pwr_fuel_hot.hep241.name=高温 HEP-241 高浓缩度钚-241压水堆燃料棒 +item.pwr_fuel_hot.hes326.name=高温 HES-326 高浓缩度Sa326压水堆燃料棒 +item.pwr_fuel_hot.hes327.name=高温 HES-327 高浓缩度Sa327压水堆燃料棒 +item.pwr_fuel_hot.heu233.name=高温 HEU-233 高浓缩度铀-233压水堆燃料棒 +item.pwr_fuel_hot.heu235.name=高温 HEU-235 高浓缩度铀-235压水堆燃料棒 +item.pwr_fuel_hot.mea.name=高温 MEA 中浓缩度镅压水堆燃料棒 +item.pwr_fuel_hot.men.name=高温 MEN 中浓缩度镎压水堆燃料棒 +item.pwr_fuel_hot.mep.name=高温 MEP 中浓缩度钚压水堆燃料棒 +item.pwr_fuel_hot.meu.name=高温 MEU 中浓缩度铀压水堆燃料棒 +item.pwr_fuel_hot.mox.name=高温 MOX压水堆燃料棒 item.quartz_plutonium.name=深成石英 item.radaway.name=消辐宁 item.radaway_flush.name=超级消辐宁 @@ -4031,6 +4119,10 @@ item.titanium_shovel.name=钛锹 item.titanium_sword.name=钛剑 item.toothpicks.name=牙签 item.train.cargo_tram.name=平板载货电车 +item.trenchmaster_boots.name=Trenchmaster的靴子 +item.trenchmaster_helmet.name=Trenchmaster的头盔 +item.trenchmaster_legs.name=Trenchmaster的护腿 +item.trenchmaster_plate.name=Trenchmaster的胸甲 item.trinitite.name=玻璃石 item.tritium_deuterium_cake.name=氚氘饼 item.tritium_deuterium_cake.desc=不是真正的蛋糕,而是很棒的$聚变燃料! @@ -4465,6 +4557,7 @@ tile.capacitor_bus.desc=电容器的输出方块$可以连成一条直线 tile.capacitor_copper.name=铜电容 tile.capacitor_gold.name=金电容 tile.capacitor_niobium.name=铌电容 +tile.capacitor_schrabidate.name=Sa酸铁电容器 tile.capacitor_tantalium.name=钽电容 tile.capacitor.desc=输入:顶部$输出:底部,通过电容总线 tile.charge_c4.name=炸药包 @@ -4475,6 +4568,9 @@ tile.charger.name=充电站 tile.cheater_virus.name=冻结Ep tile.cheater_virus_seed.name=不稳定Ep Schrabide块 tile.chimney_brick.name=烟囱 +tile.chimney_brick.desc=使用排气管连接污染机器$减少75%的污染排放 +tile.chimney_industrial.name=工业烟囱 +tile.chimney_industrial.desc=使用排气管连接污染机器$减少90%的污染排放 tile.chlorine_gas.name=氯气 tile.cluster_aluminium.name=铝矿簇 tile.cluster_copper.name=铜矿簇 @@ -4552,18 +4648,32 @@ tile.concrete_stairs.name=混凝土瓷砖楼梯 tile.concrete_super.name=über混凝土 tile.concrete_super_broken.name=发霉的碎片 tile.conveyor.name=输送带 +tile.conveyor.desc=移动掉在上面的物品$可以用螺丝刀顺时针旋转$用螺丝刀按住Shift键单击以转弯 tile.conveyor_chute.name=输送带滑槽 +tile.conveyor_chute.desc=向下移动物品$最底部的滑槽将起到普通传送带的作用 tile.conveyor_double.name=双轨道输送带 +tile.conveyor_double.desc=移动掉在上面的物品$可以用螺丝刀顺时针旋转$用螺丝刀按住Shift键单击以转弯 +tile.conveyor_express.name=快速输送带 +tile.conveyor_express.desc=快速移动掉在上面的物品$可以用螺丝刀顺时针旋转$用螺丝刀按Shift键转弯 tile.conveyor_lift.name=垂直输送带 +tile.conveyor_lift.desc=向上移动物品$至少需要两个块才能正常工作 tile.conveyor_triple.name=三轨道输送带 +tile.conveyor_triple.desc=移动掉在上面的物品$可以用螺丝刀顺时针旋转$用螺丝刀按住Shift键单击以转弯 tile.corium_block.name=堆芯熔融物 tile.crane_boxer.name=输送带打包机 +tile.crane_boxer.desc=将可配置数量的堆叠装载到沿着传送带移动的箱子中$用螺丝刀右键单击以设置输入侧$用螺丝起子平移单击以设置输出侧$单击两次以设置相反侧 tile.crane_extractor.name=输送带提取器 +tile.crane_extractor.desc=从库存中取出物品并将其放置在传送带上$最多有9个带黑白名单的过滤器插槽$用螺丝刀右键单击以设置输出侧$手持螺丝刀按住Shift单击以设置输入侧$单击两次以设置相反侧 tile.crane_grabber.name=输送带抓斗 +tile.crane_grabber.desc=从经过的输送带中取出物品并将其放入容器$将只从最近的通道中取出物品$最多有9个带黑白名单的过滤槽$用螺丝刀右键单击以设置输入侧$用螺丝起子平移单击以设置输出侧$单击两次以设置对侧 tile.crane_inserter.name=输送带导入器 +tile.crane_inserter.desc=接受输送带上的物品并将其放入容器中$用螺丝刀右键单击以设置输入侧$用螺丝刀单击以设置输出侧$单击两次以设置相反侧 tile.crane_router.name=输送带分拣机 +tile.crane_router.desc=根据定义的条件对项目排序$侧面可以定义为黑名单、白名单或通配符$只有在没有其他筛选器匹配的情况下才选择通配符侧面 tile.crane_splitter.name=输送带分离器 +tile.crane_splitter.desc=将物品分开并均匀堆放在两条传送带上$其本身就是一条传送带,因此它可以直接输入到插入器或分拣器中 tile.crane_unboxer.name=输送带解包机 +tile.crane_unboxer.desc=接收打包好的物品并解包$用螺丝刀右键单击以设置输出侧$手持螺丝刀按住Shift单击以设置输入侧$单击两次以设置相反侧 tile.crashed_bomb.name=哑弹 tile.crate.name=补给箱 tile.crate_ammo.name=星辉补给箱 @@ -4586,8 +4696,6 @@ tile.deco_asbestos.name=石棉瓦 tile.deco_beryllium.name=铍装饰块 tile.deco_computer.ibm_300pl.name=IBM个人电脑300PL tile.deco_emitter.name=Deco发光体 -tile.part_emitter.name=Deco粒子发射器 -tile.piston_inserter.name=插入器 tile.deco_lead.name=铅装饰块 tile.deco_rbmk.name=RBMK装饰块 tile.deco_rbmk_smooth.name=平滑RBMK装饰块 @@ -4637,6 +4745,13 @@ tile.dfc_stabilizer.name=DFC稳定器 tile.dirt_dead.name=泥渣 tile.dirt_oily.name=油泥 tile.drill_pipe.name=钻杆 +tile.drone_crate.name=运输无人机坞 +tile.drone_crate_provider.name=物流供应箱 +tile.drone_crate_requester.name=物流请求箱 +tile.drone_dock.name=物流无人机码头 +tile.drone_waypoint.name=运输无人机航路点 +tile.drone_waypoint.desc=运输无人机的航路点$使用运输无人机链接器设置路径$按顺序单击每个航路点和板条箱以创建路径,$然后平移单击以清除保存的位置$右键单击或平移单击航路点以更改航路点的偏移 +tile.drone_waypoint_request.name=物流无人机航路点 tile.door_bunker.name=仓门 tile.door_metal.name=金属门 tile.door_office.name=办公室门 @@ -4659,6 +4774,7 @@ tile.factory_titanium_furnace.name=工厂端口 tile.factory_titanium_hull.name=工厂外壳 tile.fallout.name=辐射尘 tile.fan.name=风扇 +tile.fan.desc=使用红石激活$将实体推至最多10个方块外$用螺丝刀右键点击即可翻转 tile.fence_metal.name=铁丝网围栏 tile.field_disturber.name=高能场干扰机 tile.filing_cabinet.green.name=蒙尘的文件柜 @@ -4800,6 +4916,8 @@ tile.lamp_tritium_blue_off.name=蓝色氚灯 tile.lamp_tritium_blue_on.name=蓝色氚灯 tile.lamp_tritium_green_off.name=绿色氚灯 tile.lamp_tritium_green_on.name=绿色氚灯 +tile.lantern.name=灯笼 +tile.lantern_behemoth.name=旧灯笼 tile.launch_pad.name=导弹发射台 tile.launch_table.name=大型发射台 tile.leaves_layer.name=落叶 @@ -4808,10 +4926,13 @@ tile.machine_amgen.name=环境辐射发电机 tile.machine_arc_furnace_off.name=电弧炉 tile.machine_arc_furnace_on.name=电弧炉 tile.machine_armor_table.name=装甲改装台 +tile.machine_ashpit.name=储灰槽 +tile.machine_ashpit.desc=收集来自燃烧室和加热炉的灰烬 tile.machine_assembler.name=装配机 tile.machine_assemfac.name=装配厂 tile.machine_autocrafter.name=自动工作台 tile.machine_autosaw.name=自动嗡嗡锯 +tile.machine_autosaw.desc=砍伐附近的植物,重新种植树木$接受:$-木油$-乙醇$-鱼油$-重油 tile.machine_bat9000.name=巨尻-9000 储罐 tile.machine_battery.name=蓄电池 tile.machine_battery_potato.name=马铃薯电池组 @@ -4836,9 +4957,12 @@ tile.machine_combine_factory.name=CMB炼钢炉 tile.machine_combustion_engine.name=工业内燃机 tile.machine_compressor.name=压缩机 tile.machine_condenser.name=蒸汽冷凝器 +tile.machine_condenser_powered.name=大功率蒸汽冷凝器 tile.machine_controller.name=反应堆遥控模块 tile.machine_converter_he_rf.name=HE→RF转换器 tile.machine_converter_rf_he.name=RF→HE转换器 +tile.machine_conveyor_press.name=输送带锻压机 +tile.machine_conveyor_press.desc=传送带从左向右移动$手持锻模右键单击以安装$使用螺丝刀移除锻模 tile.machine_crucible.name=坩埚 tile.machine_crystallizer.name=矿物酸化器 tile.machine_cyclotron.name=回旋加速器 @@ -4925,6 +5049,8 @@ tile.machine_steam_engine.name=蒸汽机 tile.machine_steam_engine.desc=效率:85% tile.machine_stirling.name=斯特林发电机 tile.machine_stirling.desc=它将热量转化为能量。这需要外部热源$传热率:T*0.1 TU/T$最大进气量:300 TU/T$效率:50% +tile.machine_stirling_creative.name=创造斯特林发动机 +tile.machine_stirling_creative.desc=将热量转化为能量。需要外部热源$传热率:T*0.1 TU/T$无限吸热/T$效率:100% tile.machine_stirling_steel.name=重型斯特林发电机 tile.machine_stirling_steel.desc=它将热量转化为能量。这需要外部热源$使用更重的齿轮来支持更高的温度$传热率:T*0.1 TU/T$最大进气量:1500 TU/T$效率:50% tile.machine_storage_drum.name=核废料处理桶 @@ -5051,11 +5177,14 @@ tile.ore_uranium_scorched.name=烧焦的铀矿石 tile.ore_verticium.name=韦德赛矿石 tile.ore_volcano.name=地热裂缝 tile.ore_weidanium.name=魏丹矿石 +tile.part_emitter.name=Deco粒子发射器 tile.pink_barrel.name=煤油桶 tile.pink_log.name=粉色原木 tile.pink_planks.name=粉色木板 tile.pink_slab.name=粉色木半砖 tile.pink_stairs.name=粉色木台阶 +tile.piston_inserter.name=插入器 +tile.piston_inserter.desc=可以使用自动化接收一件物品$使用红石,它会将物品插入钻孔石墨中$钻孔石墨的物品都会被推出一格$插入器与钻孔石墨之间需要有一格空气 tile.plant_dead.name=死亡植物 tile.plant_flower.cd0.name=芥子柳 tile.plant_flower.cd1.name=芥子柳 @@ -5077,6 +5206,30 @@ tile.pribris.name=RBMK石墨式反应堆残骸 tile.pribris_burning.name=燃烧的RBMK反应堆残骸 tile.pribris_digamma.name=发黑的RBMK反应堆残骸 tile.pribris_radiating.name=阴燃的RBMK反应堆残骸 +tile.pump_electric.name=电动地下水泵 +tile.pump_electric.desc=用电力抽取地下水$产水量高达10000mB/t$需要放置在Y:70以下 +tile.pump_steam.name=蒸汽动力地下水泵 +tile.pump_steam.desc=使用蒸汽抽取地下水$产水量高达1000mB/t$需要放置在Y:70以下 +tile.pwr_block.name=PWR压水反应堆 +tile.pwr_casing.name=PWR压力容器 +tile.pwr_casing.desc=需要覆盖反应堆的所有内部零件以形成$位置:外壳 +tile.pwr_channel.name=PWR冷却剂通道 +tile.pwr_channel.desc=传导热量以加热冷却剂$位置:任意 +tile.pwr_control.name=PWR控制棒 +tile.pwr_control.desc=允许控制连接的燃料棒$放置:各燃料棒连线网格之间 +tile.pwr_controller.name=PWR控制器 +tile.pwr_controller.desc=PWR的接入终端$位置:外壳,每个反应堆只要一个$右键单击以组装反应堆 +tile.pwr_fuel.name=PWR燃料棒 +tile.pwr_fuel.desc=增加压水堆燃料容量$位置:网格,用于增加反应效率 +tile.pwr_heatex.name=PWR换热器 +tile.pwr_heatex.desc=将核心热量转移到外壳$位置:任意 +tile.pwr_neutron_source.name=PWR中子源 +tile.pwr_neutron_source.desc=向堆芯添加20个中子通量$位置:任意$中子通量只有在连接打开时才能到达燃料棒 +tile.pwr_port.name=PWR接入端口 +tile.pwr_port.desc=允许物品和液体交换$位置:组件 +tile.pwr_reflector.name=PWR中子反射器 +tile.pwr_reflector.desc=将中子通量反射回燃料棒$位置:网格,用于增加反应速率$可作为外壳材料 +tile.radio_telex.name=Telex Machine tile.radio_torch_counter.name=红石无线项目计数器 tile.radio_torch_counter.desc=平面或比较器兼容块上的标牌$根据匹配项目的数量发出信号 tile.radio_torch_receiver.name=无线红石信号接收器 @@ -5121,6 +5274,8 @@ tile.reactor_inserter.name=反应堆燃料插入器 tile.red_barrel.name=炸药桶 tile.red_cable.name=紫铜电线 tile.red_cable_classic.name=紫铜电缆(经典型) +tile.red_cable_gauge.name=功率计 +tile.red_cable_gauge.desc=显示每刻在网络中流动的电力$的电缆$由储能方块连接的拆分网络被视为一个共享网络。 tile.red_cable_paintable.name=可涂漆紫铜线 tile.red_connector.name=电力连接器 tile.red_pylon.name=电线杆 diff --git a/src/main/resources/assets/hbm/sounds/block/reactorLoop.ogg b/src/main/resources/assets/hbm/sounds/block/reactorLoop.ogg index 428ddeabbfdcd94c2efc0856475005c552ce8e32..95ac0c523957fcd6518c2fd27926b07d318e5f74 100644 GIT binary patch delta 111314 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Π117_8^RD;$*e&x0z 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 Q44Wd70yY>-k_6=c0ouQoNB{r; delta 108785 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�MBLE+ckwDd**qbr=5L2YXJXu`#^9o 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 From f846b7884d6f109736bebfdc21ad511cabab8d1d Mon Sep 17 00:00:00 2001 From: Boblet Date: Mon, 16 Oct 2023 16:00:10 +0200 Subject: [PATCH 343/432] plenty of fixes --- changelog | 22 +++++++++++++++++++ .../com/hbm/blocks/bomb/BlockTNTBase.java | 4 ++-- .../com/hbm/handler/EntityEffectHandler.java | 12 +++++++--- .../java/com/hbm/handler/WeaponAbility.java | 2 ++ .../hbm/handler/nei/CustomMachineHandler.java | 4 ++-- .../inventory/container/ContainerLeadBox.java | 1 + .../java/com/hbm/items/armor/JetpackBase.java | 2 +- .../com/hbm/items/tool/ItemToolAbility.java | 2 +- 8 files changed, 40 insertions(+), 9 deletions(-) diff --git a/changelog b/changelog index e69de29bb..1f0e42906 100644 --- a/changelog +++ b/changelog @@ -0,0 +1,22 @@ +## Added + +## Changed +* Updated chinese localization +* Tweaked certain assembler recipes + * Some welded plate requirements have been lowered + * The plasma heater now requires slightly more resources, but yields 4 blocks per operation instead of 1 +* The fractioning tower now requires welded plates, but the total steel cost has been reduced by roughly a third +* The cyclotron now has three automation ports on each side, corresponding with the colors of the three input pairs +* Updated the PWR sound + +## Fixed +* Fixed multi fluid ID's search not behaving correctly +* Fixed jetpack's description using unlocalized fluid names +* Fixed the CM structure wand being broken when used in most directions +* Fixed the custom machine recipe handler using the original references to the output stacks, causing the chance percentage indicator getting stuck on the actual outputs +* Fixed the desh suit's boot models not being separated from the legs +* Fixed dupe caused by defusing TNT-like blocks +* Fixed containment box being able to contain itself when using the number keys, crashing the game +* Fixed a critical game-breaking error where the custom tool's ability toggle is misspelled +* (Hopefully) fixed the vampire ability not firing the onDeath event, causing the target to not drop any items and any death releated events to not happen +* Fixed water creatures vomitting when irradiated, when they logically shouldn't \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/bomb/BlockTNTBase.java b/src/main/java/com/hbm/blocks/bomb/BlockTNTBase.java index b6ea8e4eb..680ea9030 100644 --- a/src/main/java/com/hbm/blocks/bomb/BlockTNTBase.java +++ b/src/main/java/com/hbm/blocks/bomb/BlockTNTBase.java @@ -145,8 +145,8 @@ public abstract class BlockTNTBase extends BlockFlammable implements IToolable { if(tool == ToolType.DEFUSER) { if(!world.isRemote) { - world.func_147480_a(x, y, z, true); - this.dropBlockAsItem(world, x, y, z, world.getBlockMetadata(x, y, z), 0); + world.func_147480_a(x, y, z, false); + this.dropBlockAsItem(world, x, y, z, 0, 0); } return true; } diff --git a/src/main/java/com/hbm/handler/EntityEffectHandler.java b/src/main/java/com/hbm/handler/EntityEffectHandler.java index 467318ff7..c38cf5755 100644 --- a/src/main/java/com/hbm/handler/EntityEffectHandler.java +++ b/src/main/java/com/hbm/handler/EntityEffectHandler.java @@ -35,6 +35,7 @@ import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.EnumCreatureType; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; @@ -159,7 +160,7 @@ public class EntityEffectHandler { if(HbmLivingProps.getRadiation(entity) > 600) { - if((world.getTotalWorldTime() + r600) % 600 < 20) { + if((world.getTotalWorldTime() + r600) % 600 < 20 && canVomit(entity)) { NBTTagCompound nbt = new NBTTagCompound(); nbt.setString("type", "vomit"); nbt.setString("mode", "blood"); @@ -173,7 +174,7 @@ public class EntityEffectHandler { } } - } else if(HbmLivingProps.getRadiation(entity) > 200 && (world.getTotalWorldTime() + r1200) % 1200 < 20) { + } else if(HbmLivingProps.getRadiation(entity) > 200 && (world.getTotalWorldTime() + r1200) % 1200 < 20 && canVomit(entity)) { NBTTagCompound nbt = new NBTTagCompound(); nbt.setString("type", "vomit"); @@ -329,7 +330,7 @@ public class EntityEffectHandler { entity.attackEntityFrom(ModDamageSource.mku, 2F); } - if(contagion < 30 * minute && (contagion + entity.getEntityId()) % 200 < 20) { + if(contagion < 30 * minute && (contagion + entity.getEntityId()) % 200 < 20 && canVomit(entity)) { NBTTagCompound nbt = new NBTTagCompound(); nbt.setString("type", "vomit"); nbt.setString("mode", "blood"); @@ -633,4 +634,9 @@ public class EntityEffectHandler { props.plinkCooldown--; } } + + private static boolean canVomit(Entity e) { + if(e.isCreatureType(EnumCreatureType.waterCreature, false)) return false; + return true; + } } diff --git a/src/main/java/com/hbm/handler/WeaponAbility.java b/src/main/java/com/hbm/handler/WeaponAbility.java index 60a8ae6b7..919b149a2 100644 --- a/src/main/java/com/hbm/handler/WeaponAbility.java +++ b/src/main/java/com/hbm/handler/WeaponAbility.java @@ -35,6 +35,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; +import net.minecraft.util.DamageSource; import net.minecraft.util.WeightedRandom; import net.minecraft.world.World; @@ -86,6 +87,7 @@ public abstract class WeaponAbility { EntityLivingBase living = (EntityLivingBase) victim; living.setHealth(living.getHealth() - amount); + if(living.getHealth() <= 0) living.onDeath(DamageSource.magic); player.heal(amount); } } diff --git a/src/main/java/com/hbm/handler/nei/CustomMachineHandler.java b/src/main/java/com/hbm/handler/nei/CustomMachineHandler.java index 17acd394c..f5a4226d2 100644 --- a/src/main/java/com/hbm/handler/nei/CustomMachineHandler.java +++ b/src/main/java/com/hbm/handler/nei/CustomMachineHandler.java @@ -63,7 +63,7 @@ public class CustomMachineHandler extends TemplateRecipeHandler { for(int i = 0; i < 3; i++) if(recipe.outputItems.length > i) { Pair pair = recipe.outputItems[i]; - ItemStack out = pair.getKey(); + ItemStack out = pair.getKey().copy(); if(pair.getValue() != 1) { ItemStackUtil.addTooltipToStack(out, EnumChatFormatting.RED + "" + (((int)(pair.getValue() * 1000)) / 10D) + "%"); } @@ -72,7 +72,7 @@ public class CustomMachineHandler extends TemplateRecipeHandler { for(int i = 3; i < 6; i++) if(recipe.outputItems.length > i) { Pair pair = recipe.outputItems[i]; - ItemStack out = pair.getKey(); + ItemStack out = pair.getKey().copy(); if(pair.getValue() != 1) { ItemStackUtil.addTooltipToStack(out, EnumChatFormatting.RED + "" + (((int)(pair.getValue() * 1000)) / 10D) + "%"); } diff --git a/src/main/java/com/hbm/inventory/container/ContainerLeadBox.java b/src/main/java/com/hbm/inventory/container/ContainerLeadBox.java index 2d015033f..3e8a6d0cf 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerLeadBox.java +++ b/src/main/java/com/hbm/inventory/container/ContainerLeadBox.java @@ -66,6 +66,7 @@ public class ContainerLeadBox extends Container { @Override public ItemStack slotClick(int index, int button, int mode, EntityPlayer player) { // prevents the player from moving around the currently open box + if(mode == 2 && button == player.inventory.currentItem) return null; if(index == player.inventory.currentItem + 47) return null; return super.slotClick(index, button, mode, player); } diff --git a/src/main/java/com/hbm/items/armor/JetpackBase.java b/src/main/java/com/hbm/items/armor/JetpackBase.java index 204ddd28b..e5701e3d8 100644 --- a/src/main/java/com/hbm/items/armor/JetpackBase.java +++ b/src/main/java/com/hbm/items/armor/JetpackBase.java @@ -37,7 +37,7 @@ public abstract class JetpackBase extends ItemArmorMod implements IFillableItem @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.LIGHT_PURPLE + fuel.getUnlocalizedName() + ": " + this.getFuel(itemstack) + "mB / " + this.maxFuel + "mB"); + list.add(EnumChatFormatting.LIGHT_PURPLE + fuel.getLocalizedName() + ": " + this.getFuel(itemstack) + "mB / " + this.maxFuel + "mB"); list.add(""); super.addInformation(itemstack, player, list, bool); list.add(EnumChatFormatting.GOLD + "Can be worn on its own!"); diff --git a/src/main/java/com/hbm/items/tool/ItemToolAbility.java b/src/main/java/com/hbm/items/tool/ItemToolAbility.java index f0c4496ad..7fcded778 100644 --- a/src/main/java/com/hbm/items/tool/ItemToolAbility.java +++ b/src/main/java/com/hbm/items/tool/ItemToolAbility.java @@ -208,7 +208,7 @@ public class ItemToolAbility extends ItemTool implements IItemAbility, IDepthRoc } list.add("Right click to cycle through abilities!"); - list.add("Sneak-click to turn abilitty off!"); + list.add("Sneak-click to turn ability off!"); } if(!this.hitAbility.isEmpty()) { From 6ba6f294e212f0049b48bafab825565a68030d11 Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 17 Oct 2023 16:22:48 +0200 Subject: [PATCH 344/432] fixed arc welder template file --- changelog | 3 ++- .../java/com/hbm/inventory/recipes/ArcWelderRecipes.java | 1 + src/main/java/com/hbm/main/ModEventHandlerClient.java | 6 +++--- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/changelog b/changelog index 1f0e42906..1cda4a909 100644 --- a/changelog +++ b/changelog @@ -19,4 +19,5 @@ * Fixed containment box being able to contain itself when using the number keys, crashing the game * Fixed a critical game-breaking error where the custom tool's ability toggle is misspelled * (Hopefully) fixed the vampire ability not firing the onDeath event, causing the target to not drop any items and any death releated events to not happen -* Fixed water creatures vomitting when irradiated, when they logically shouldn't \ No newline at end of file +* Fixed water creatures vomitting when irradiated, when they logically shouldn't +* Fixed arc welder recipe template file not being generated properly \ No newline at end of file diff --git a/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java b/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java index 8591f971c..5a6152721 100644 --- a/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java @@ -171,6 +171,7 @@ public class ArcWelderRecipes extends SerializableRecipe { this.writeFluidStack(recipe.fluid, writer); } + writer.name("output"); this.writeItemStack(recipe.output, writer); writer.name("duration").value(recipe.duration); diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 650c36270..7e3226470 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -1291,7 +1291,7 @@ public class ModEventHandlerClient { case 0: main.splashText = "Floppenheimer!"; break; case 1: main.splashText = "i should dip my balls in sulfuric acid"; break; case 2: main.splashText = "All answers are popbob!"; break; - case 3: main.splashText = "None shall enter The Orb!"; break; + case 3: main.splashText = "None may enter The Orb!"; break; case 4: main.splashText = "Wacarb was here"; break; case 5: main.splashText = "SpongeBoy me Bob I am overdosing on keramine agagagagaga"; break; case 6: main.splashText = EnumChatFormatting.RED + "I know where you live, " + System.getProperty("user.name"); break; @@ -1300,10 +1300,10 @@ public class ModEventHandlerClient { case 9: main.splashText = "There are bugs under your skin!"; break; case 10: main.splashText = "Fentanyl!"; break; case 11: main.splashText = "Do drugs!"; break; - //case 12: main.splashText = "post this on r/feedthememes for free internet points!"; break; + case 12: main.splashText = "Imagine being scared by splash texts!"; break; } - if(Math.random() < 0.1) main.splashText = "Visit r/feedthebeast if you hate yourself!"; + if(Math.random() < 0.1) main.splashText = "Redditors aren't people!"; } } } From 0563ef2560a3aa910202a3fd3ee33697668f25d8 Mon Sep 17 00:00:00 2001 From: Bob Date: Tue, 17 Oct 2023 22:01:09 +0200 Subject: [PATCH 345/432] *insert megalovania here* --- .../container/ContainerPlasticBag.java | 80 +++++++++++ .../com/hbm/inventory/gui/GUIPlasticBag.java | 48 +++++++ src/main/java/com/hbm/items/ModItems.java | 3 + .../com/hbm/items/tool/ItemPlasticBag.java | 126 ++++++++++++++++++ .../assets/hbm/models/mobs/plasticbag.obj | 97 ++++++++++++++ .../assets/hbm/textures/entity/plasticbag.png | Bin 0 -> 567 bytes .../textures/gui/storage/gui_plastic_bag.png | Bin 0 -> 2189 bytes .../assets/hbm/textures/items/plastic_bag.png | Bin 0 -> 235 bytes 8 files changed, 354 insertions(+) create mode 100644 src/main/java/com/hbm/inventory/container/ContainerPlasticBag.java create mode 100644 src/main/java/com/hbm/inventory/gui/GUIPlasticBag.java create mode 100644 src/main/java/com/hbm/items/tool/ItemPlasticBag.java create mode 100644 src/main/resources/assets/hbm/models/mobs/plasticbag.obj create mode 100644 src/main/resources/assets/hbm/textures/entity/plasticbag.png create mode 100644 src/main/resources/assets/hbm/textures/gui/storage/gui_plastic_bag.png create mode 100644 src/main/resources/assets/hbm/textures/items/plastic_bag.png diff --git a/src/main/java/com/hbm/inventory/container/ContainerPlasticBag.java b/src/main/java/com/hbm/inventory/container/ContainerPlasticBag.java new file mode 100644 index 000000000..428ec6390 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerPlasticBag.java @@ -0,0 +1,80 @@ +package com.hbm.inventory.container; + +import com.hbm.items.tool.ItemPlasticBag.InventoryPlasticBag; +import com.hbm.util.InventoryUtil; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerPlasticBag extends Container { + + private InventoryPlasticBag bag; + + public ContainerPlasticBag(InventoryPlayer invPlayer, InventoryPlasticBag bag) { + this.bag = bag; + this.bag.openInventory(); + + this.addSlotToContainer(new Slot(bag, 0, 80, 65)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 134 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 192)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(par2); + + if(var4 != null && var4.getHasStack()) { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if(par2 <= bag.getSizeInventory() - 1) { + if(!InventoryUtil.mergeItemStack(this.inventorySlots, var5, bag.getSizeInventory(), this.inventorySlots.size(), true)) { + return null; + } + } else if(!InventoryUtil.mergeItemStack(this.inventorySlots, var5, 0, bag.getSizeInventory(), false)) { + return null; + } + + if(var5.stackSize == 0) { + var4.putStack((ItemStack) null); + } else { + var4.onSlotChanged(); + } + + var4.onPickupFromSlot(p_82846_1_, var5); + } + + return var3; + } + + @Override + public ItemStack slotClick(int index, int button, int mode, EntityPlayer player) { + // prevents the player from moving around the currently open box + if(mode == 2 && button == player.inventory.currentItem) return null; + if(index == player.inventory.currentItem + 47) return null; + return super.slotClick(index, button, mode, player); + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return bag.isUseableByPlayer(player); + } + + @Override + public void onContainerClosed(EntityPlayer player) { + super.onContainerClosed(player); + this.bag.closeInventory(); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIPlasticBag.java b/src/main/java/com/hbm/inventory/gui/GUIPlasticBag.java new file mode 100644 index 000000000..4c3400388 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIPlasticBag.java @@ -0,0 +1,48 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerPlasticBag; +import com.hbm.items.tool.ItemPlasticBag.InventoryPlasticBag; +import com.hbm.lib.RefStrings; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; + +public class GUIPlasticBag extends GuiContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/storage/gui_plastic_bag.png"); + private ItemStack firstHeld; + + public GUIPlasticBag(InventoryPlayer invPlayer, InventoryPlasticBag box) { + super(new ContainerPlasticBag(invPlayer, box)); + + this.xSize = 176; + this.ySize = 216; + } + + @Override + public void drawScreen(int x, int y, float interp) { + if(firstHeld == null) { + firstHeld = this.mc.thePlayer.getHeldItem(); + } + + super.drawScreen(x, y, interp); + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + } +} diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index bf75c0f59..2a28f99d5 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1207,6 +1207,7 @@ public class ModItems { public static Item debris_element; public static Item containment_box; + public static Item plastic_bag; public static Item test_nuke_igniter; public static Item test_nuke_propellant; @@ -3844,6 +3845,7 @@ public class ModItems { scrap_oil = new Item().setUnlocalizedName("scrap_oil").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":scrap_oil"); scrap_nuclear = new Item().setUnlocalizedName("scrap_nuclear").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":scrap_nuclear"); containment_box = new ItemLeadBox().setUnlocalizedName("containment_box").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":containment_box"); + plastic_bag = new ItemPlasticBag().setUnlocalizedName("plastic_bag").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":plastic_bag"); debris_graphite = new Item().setUnlocalizedName("debris_graphite").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":debris_graphite"); debris_metal = new Item().setUnlocalizedName("debris_metal").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":debris_metal"); @@ -6771,6 +6773,7 @@ public class ModItems { GameRegistry.registerItem(digamma_diagnostic, digamma_diagnostic.getUnlocalizedName()); GameRegistry.registerItem(pollution_detector, pollution_detector.getUnlocalizedName()); GameRegistry.registerItem(containment_box, containment_box.getUnlocalizedName()); + GameRegistry.registerItem(plastic_bag, plastic_bag.getUnlocalizedName()); //Keys and Locks GameRegistry.registerItem(key, key.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/tool/ItemPlasticBag.java b/src/main/java/com/hbm/items/tool/ItemPlasticBag.java new file mode 100644 index 000000000..1d575e314 --- /dev/null +++ b/src/main/java/com/hbm/items/tool/ItemPlasticBag.java @@ -0,0 +1,126 @@ +package com.hbm.items.tool; + +import com.hbm.inventory.container.ContainerPlasticBag; +import com.hbm.inventory.gui.GUIPlasticBag; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.util.ItemStackUtil; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; + +public class ItemPlasticBag extends Item implements IGUIProvider { + + public ItemPlasticBag() { + this.setMaxStackSize(1); + } + + @Override + public int getMaxItemUseDuration(ItemStack stack) { + return 1; + } + + @Override + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { + + if(!world.isRemote) player.openGui(MainRegistry.instance, 0, world, 0, 0, 0); + return stack; + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerPlasticBag(player.inventory, new InventoryPlasticBag(player, player.getHeldItem())); + } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIPlasticBag(player.inventory, new InventoryPlasticBag(player, player.getHeldItem())); + } + + public static class InventoryPlasticBag implements IInventory { + + public final EntityPlayer player; + public final ItemStack bag; + public ItemStack[] slots; + + public InventoryPlasticBag(EntityPlayer player, ItemStack box) { + this.player = player; + this.bag = box; + slots = new ItemStack[this.getSizeInventory()]; + + if(!box.hasTagCompound()) + box.setTagCompound(new NBTTagCompound()); + + ItemStack[] fromNBT = ItemStackUtil.readStacksFromNBT(box, slots.length); + + if(fromNBT != null) { + for(int i = 0; i < slots.length; i++) { + slots[i] = fromNBT[i]; + } + } + } + + @Override + public ItemStack decrStackSize(int slot, int amount) { + ItemStack stack = getStackInSlot(slot); + if (stack != null) { + if (stack.stackSize > amount) { + stack = stack.splitStack(amount); + markDirty(); + } else { + setInventorySlotContents(slot, null); + } + } + return stack; + } + + @Override + public ItemStack getStackInSlotOnClosing(int slot) { + ItemStack stack = getStackInSlot(slot); + setInventorySlotContents(slot, null); + return stack; + } + + @Override + public void setInventorySlotContents(int slot, ItemStack stack) { + + if(stack != null) { + stack.stackSize = Math.min(stack.stackSize, this.getInventoryStackLimit()); + } + + slots[slot] = stack; + markDirty(); + } + + @Override + public void markDirty() { + + for(int i = 0; i < getSizeInventory(); ++i) { + if(getStackInSlot(i) != null && getStackInSlot(i).stackSize == 0) { + slots[i] = null; + } + } + + ItemStackUtil.addStacksToNBT(bag, slots); + } + + @Override public int getSizeInventory() { return 1; } + @Override public ItemStack getStackInSlot(int slot) { return slots[slot]; } + @Override public String getInventoryName() { return "container.plasticBag"; } + @Override public boolean hasCustomInventoryName() { return bag.hasDisplayName(); } + @Override public int getInventoryStackLimit() { return 1; } + @Override public boolean isUseableByPlayer(EntityPlayer player) { return true; } + @Override public void openInventory() { } + @Override public void closeInventory() { } + @Override public boolean isItemValidForSlot(int slot, ItemStack stack) { return true; } + } +} diff --git a/src/main/resources/assets/hbm/models/mobs/plasticbag.obj b/src/main/resources/assets/hbm/models/mobs/plasticbag.obj new file mode 100644 index 000000000..239dd3d8e --- /dev/null +++ b/src/main/resources/assets/hbm/models/mobs/plasticbag.obj @@ -0,0 +1,97 @@ +# Blender v2.79 (sub 0) OBJ File: 'plasticbag.blend' +# www.blender.org +o Cube_Cube.001 +v -0.187500 -0.250000 0.125000 +v -0.187500 0.250000 0.125000 +v -0.187500 -0.250000 -0.125000 +v -0.187500 0.250000 -0.125000 +v 0.187500 -0.250000 0.125000 +v 0.187500 0.250000 0.125000 +v 0.187500 -0.250000 -0.125000 +v 0.187500 0.250000 -0.125000 +v -0.125000 0.250000 0.125000 +v -0.125000 0.250000 -0.125000 +v -0.062500 0.250000 0.125000 +v -0.062500 0.250000 -0.125000 +v -0.125000 0.375000 0.125000 +v -0.125000 0.375000 -0.125000 +v -0.062500 0.375000 0.125000 +v -0.062500 0.375000 -0.125000 +v 0.062500 0.250000 0.125000 +v 0.062500 0.250000 -0.125000 +v 0.125000 0.250000 0.125000 +v 0.125000 0.250000 -0.125000 +v 0.062500 0.375000 0.125000 +v 0.062500 0.375000 -0.125000 +v 0.125000 0.375000 0.125000 +v 0.125000 0.375000 -0.125000 +v -0.062500 0.437500 0.125000 +v -0.062500 0.437500 -0.125000 +v 0.062500 0.437500 0.125000 +v 0.062500 0.437500 -0.125000 +vt 1.000000 1.000000 +vt 0.600000 0.333333 +vt 1.000000 0.333333 +vt 0.600000 1.000000 +vt -0.000000 0.333333 +vt 1.000000 1.000000 +vt 0.600000 0.333333 +vt 1.000000 0.333333 +vt 0.600000 1.000000 +vt -0.000000 0.333333 +vt 0.600000 0.000000 +vt -0.000000 0.000000 +vt 1.000000 0.000000 +vt 0.900000 0.166667 +vt 0.900000 0.000000 +vt 0.700000 0.000000 +vt 0.600000 0.166667 +vt 0.600000 0.000000 +vt 1.000000 0.000000 +vt 0.900000 0.166667 +vt 0.900000 0.000000 +vt 0.700000 0.000000 +vt 0.600000 0.166667 +vt 0.600000 0.000000 +vt 0.700000 0.250000 +vt 0.700000 0.166667 +vt 0.900000 0.250000 +vt 0.700000 0.166667 +vt 0.700000 0.250000 +vt 1.000000 0.166667 +vt 1.000000 0.166667 +vt 0.900000 0.250000 +vt -0.000000 1.000000 +vt -0.000000 1.000000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +s off +f 2/1/1 3/2/1 1/3/1 +f 4/4/2 7/5/2 3/2/2 +f 8/6/3 5/7/3 7/8/3 +f 6/9/4 1/10/4 5/7/4 +f 7/11/5 1/10/5 3/12/5 +f 19/13/4 21/14/4 17/15/4 +f 11/16/4 13/17/4 9/18/4 +f 10/19/2 16/20/2 12/21/2 +f 18/22/2 24/23/2 20/24/2 +f 16/20/2 28/25/2 22/26/2 +f 27/27/4 15/28/4 21/14/4 +f 13/17/4 15/28/4 25/29/4 +f 21/14/4 23/30/4 27/27/4 +f 22/26/2 28/25/2 24/23/2 +f 16/20/2 14/31/2 26/32/2 +f 2/1/1 4/4/1 3/2/1 +f 4/4/2 8/33/2 7/5/2 +f 8/6/3 6/9/3 5/7/3 +f 6/9/4 2/34/4 1/10/4 +f 7/11/5 5/7/5 1/10/5 +f 19/13/4 23/30/4 21/14/4 +f 11/16/4 15/28/4 13/17/4 +f 10/19/2 14/31/2 16/20/2 +f 18/22/2 22/26/2 24/23/2 +f 16/20/2 26/32/2 28/25/2 +f 27/27/4 25/29/4 15/28/4 diff --git a/src/main/resources/assets/hbm/textures/entity/plasticbag.png b/src/main/resources/assets/hbm/textures/entity/plasticbag.png new file mode 100644 index 0000000000000000000000000000000000000000..079d1ba4f66a64d44d702569b73b2fa6e9c13256 GIT binary patch literal 567 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/plastic_bag.png b/src/main/resources/assets/hbm/textures/items/plastic_bag.png new file mode 100644 index 0000000000000000000000000000000000000000..5074bd9204fa48946e7f614febb22ca10276b597 GIT binary patch literal 235 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfh=VtUmlCqL|%CXzDxe;u-ux#g7XyDnVjGC z?`_}kdZuj)I@K6_HQ>p&)AKqebS%+Z&h-C*_ucgG9}M3GPCmciG4wfKz*&X^$2Pir z&CR)Rr;(RwUSIYX!JCS*O1f-YzAjajKmAg-MUdfuTsF_?epB%USsSMDT>M_8Wc8T$ hqGdbZqT2X2@k5tQA72j469>AM!PC{xWt~$(699^`U912A literal 0 HcmV?d00001 From d2e94af59d58b3d469444344665f5f68c88f780b Mon Sep 17 00:00:00 2001 From: Bob Date: Wed, 18 Oct 2023 22:25:19 +0200 Subject: [PATCH 346/432] improved nature documentaries --- .../java/com/hbm/entity/EntityMappings.java | 14 ++ .../com/hbm/entity/mob/EntityPlasticBag.java | 160 ++++++++++++++++++ .../container/ContainerPlasticBag.java | 2 +- src/main/java/com/hbm/main/ClientProxy.java | 1 + .../hbm/render/entity/mob/RenderBalls.java | 1 - .../render/entity/mob/RenderPlasticBag.java | 41 +++++ src/main/resources/assets/hbm/lang/de_DE.lang | 2 + src/main/resources/assets/hbm/lang/en_US.lang | 2 + 8 files changed, 221 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/hbm/entity/mob/EntityPlasticBag.java create mode 100644 src/main/java/com/hbm/render/entity/mob/RenderPlasticBag.java diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index 4b2a6d849..8e42e0752 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -26,6 +26,7 @@ import net.minecraft.entity.EntityLiving; import net.minecraft.entity.EnumCreatureType; import net.minecraft.world.biome.BiomeGenBase; import net.minecraft.world.biome.BiomeGenBase.SpawnListEntry; +import net.minecraft.world.biome.BiomeGenBase.TempCategory; public class EntityMappings { @@ -252,10 +253,12 @@ public class EntityMappings { addMob(EntityGlyphidBlaster.class, "entity_glyphid_blaster", 0xD83737, 0xDBB79D); addMob(EntityGlyphidScout.class, "entity_glyphid_scout", 0x273038, 0xB9E36B); addMob(EntityGlyphidNuclear.class, "entity_glyphid_nuclear", 0x267F00, 0xA0A0A0); + addMob(EntityPlasticBag.class, "entity_plastic_bag", 0xd0d0d0, 0x808080); addSpawn(EntityCreeperPhosgene.class, 5, 1, 1, EnumCreatureType.monster, BiomeGenBase.getBiomeGenArray()); addSpawn(EntityCreeperVolatile.class, 10, 1, 1, EnumCreatureType.monster, BiomeGenBase.getBiomeGenArray()); addSpawn(EntityCreeperGold.class, 1, 1, 1, EnumCreatureType.monster, BiomeGenBase.getBiomeGenArray()); + addSpawn(EntityPlasticBag.class, 1, 1, 3, EnumCreatureType.waterCreature, getOceanBiomes()); int id = 0; for(Quartet, String, Integer, Boolean> entry : entityMappings) { @@ -300,4 +303,15 @@ public class EntityMappings { spawns.add(new SpawnListEntry(entityClass, weightedProb, min, max)); } } + + public static BiomeGenBase[] getOceanBiomes() { + List biomes = new ArrayList(); + + for(BiomeGenBase biome : BiomeGenBase.getBiomeGenArray()) { + if(biome != null && biome.getTempCategory() == TempCategory.OCEAN) { + biomes.add(biome); + } + } + return biomes.toArray(new BiomeGenBase[0]); + } } diff --git a/src/main/java/com/hbm/entity/mob/EntityPlasticBag.java b/src/main/java/com/hbm/entity/mob/EntityPlasticBag.java new file mode 100644 index 000000000..1ebc591c5 --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/EntityPlasticBag.java @@ -0,0 +1,160 @@ +package com.hbm.entity.mob; + +import com.hbm.entity.item.EntityItemBuoyant; +import com.hbm.items.ModItems; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.passive.EntityWaterMob; +import net.minecraft.item.ItemStack; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; + +/** + * Copy-pasted shit from the squid class + * Mojang-certified + * + * @author hbm + */ +public class EntityPlasticBag extends EntityWaterMob { + + public float rotation; + public float prevRotation; + private float randomMotionSpeed; + private float rotationVelocity; + private float randomMotionVecX; + private float randomMotionVecY; + private float randomMotionVecZ; + + public EntityPlasticBag(World world) { + super(world); + this.setSize(0.45F, 0.45F); + this.rotationVelocity = 1.0F / (this.rand.nextFloat() + 1.0F) * 0.2F; + } + + @Override + public boolean attackEntityFrom(DamageSource source, float amount) { + + if(!worldObj.isRemote) { + this.setDead(); + this.dropItem(ModItems.plastic_bag, 1); + } + + return true; + } + + @Override + public EntityItem entityDropItem(ItemStack stack, float offset) { + if(stack.stackSize != 0 && stack.getItem() != null) { + EntityItemBuoyant entityitem = new EntityItemBuoyant(this.worldObj, this.posX, this.posY + (double) offset, this.posZ, stack); + entityitem.delayBeforeCanPickup = 10; + if(captureDrops) { + capturedDrops.add(entityitem); + } else { + this.worldObj.spawnEntityInWorld(entityitem); + } + return entityitem; + } else { + return null; + } + } + + @Override + protected String getLivingSound() { + return null; + } + + @Override + protected String getHurtSound() { + return null; + } + + @Override + protected String getDeathSound() { + return null; + } + + @Override + protected boolean canTriggerWalking() { + return false; + } + + @Override + public boolean isInWater() { + return this.worldObj.handleMaterialAcceleration(this.boundingBox.expand(0.0D, -0.6D, 0.0D), Material.water, this); + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + this.prevRotation = this.rotation; + this.rotation += this.rotationVelocity; + + if(this.rotation > ((float) Math.PI * 2F)) { + this.rotation -= ((float) Math.PI * 2F); + + if(this.rand.nextInt(10) == 0) { + this.rotationVelocity = 1.0F / (this.rand.nextFloat() + 1.0F) * 0.2F; + } + } + + if(this.isInWater()) { + float f; + + if(this.rotation < (float) Math.PI) { + f = this.rotation / (float) Math.PI; + + if((double) f > 0.75D) { + this.randomMotionSpeed = 0.1F; + } + } else { + this.randomMotionSpeed *= 0.999F; + } + + if(!this.worldObj.isRemote) { + this.motionX = (double) (this.randomMotionVecX * this.randomMotionSpeed); + this.motionY = (double) (this.randomMotionVecY * this.randomMotionSpeed); + this.motionZ = (double) (this.randomMotionVecZ * this.randomMotionSpeed); + } + + f = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); + this.renderYawOffset += (-((float) Math.atan2(this.motionX, this.motionZ)) * 180.0F / (float) Math.PI - this.renderYawOffset) * 0.1F; + this.rotationYaw = this.renderYawOffset; + this.rotationPitch = (float)(Math.atan2(this.motionY, (double)f) * 180.0D / Math.PI); + } else { + if(!this.worldObj.isRemote) { + this.motionX = 0.0D; + this.motionY -= 0.08D; + this.motionY *= 0.98D; + this.motionZ = 0.0D; + } + } + } + + @Override + public void moveEntityWithHeading(float forward, float strafe) { + this.moveEntity(this.motionX, this.motionY, this.motionZ); + } + + @Override + protected void updateEntityActionState() { + ++this.entityAge; + + if(this.entityAge > 100) { + this.randomMotionVecX = this.randomMotionVecY = this.randomMotionVecZ = 0.0F; + } else if(this.rand.nextInt(50) == 0 || !this.inWater || this.randomMotionVecX == 0.0F && this.randomMotionVecY == 0.0F && this.randomMotionVecZ == 0.0F) { + float f = this.rand.nextFloat() * (float) Math.PI * 2.0F; + this.randomMotionVecX = MathHelper.cos(f) * 0.2F; + this.randomMotionVecY = -0.1F + this.rand.nextFloat() * 0.2F; + this.randomMotionVecZ = MathHelper.sin(f) * 0.2F; + } + + this.despawnEntity(); + } + + @Override + public boolean getCanSpawnHere() { + return this.posY > 45.0D && this.posY < 63.0D && super.getCanSpawnHere(); + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerPlasticBag.java b/src/main/java/com/hbm/inventory/container/ContainerPlasticBag.java index 428ec6390..687e53a54 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerPlasticBag.java +++ b/src/main/java/com/hbm/inventory/container/ContainerPlasticBag.java @@ -63,7 +63,7 @@ public class ContainerPlasticBag extends Container { public ItemStack slotClick(int index, int button, int mode, EntityPlayer player) { // prevents the player from moving around the currently open box if(mode == 2 && button == player.inventory.currentItem) return null; - if(index == player.inventory.currentItem + 47) return null; + if(index == player.inventory.currentItem + 28) return null; return super.slotClick(index, button, mode, player); } diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 7f4a5edad..1ec9d4a5c 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -752,6 +752,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidScout.class, new RenderGlyphid()); RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidNuclear.class, new RenderGlyphidNuclear()); RenderingRegistry.registerEntityRenderingHandler(EntityFBIDrone.class, new RenderDrone()); + RenderingRegistry.registerEntityRenderingHandler(EntityPlasticBag.class, new RenderPlasticBag()); //"particles" RenderingRegistry.registerEntityRenderingHandler(EntitySmokeFX.class, new MultiCloudRenderer(new Item[] { ModItems.smoke1, ModItems.smoke2, ModItems.smoke3, ModItems.smoke4, ModItems.smoke5, ModItems.smoke6, ModItems.smoke7, ModItems.smoke8 })); RenderingRegistry.registerEntityRenderingHandler(EntityBSmokeFX.class, new MultiCloudRenderer(new Item[] { ModItems.b_smoke1, ModItems.b_smoke2, ModItems.b_smoke3, ModItems.b_smoke4, ModItems.b_smoke5, ModItems.b_smoke6, ModItems.b_smoke7, ModItems.b_smoke8 })); diff --git a/src/main/java/com/hbm/render/entity/mob/RenderBalls.java b/src/main/java/com/hbm/render/entity/mob/RenderBalls.java index 2a13025aa..113742e0f 100644 --- a/src/main/java/com/hbm/render/entity/mob/RenderBalls.java +++ b/src/main/java/com/hbm/render/entity/mob/RenderBalls.java @@ -37,5 +37,4 @@ public class RenderBalls extends Render { protected ResourceLocation getEntityTexture(Entity p_110775_1_) { return ResourceManager.universal_bright; } - } diff --git a/src/main/java/com/hbm/render/entity/mob/RenderPlasticBag.java b/src/main/java/com/hbm/render/entity/mob/RenderPlasticBag.java new file mode 100644 index 000000000..2d6a210f4 --- /dev/null +++ b/src/main/java/com/hbm/render/entity/mob/RenderPlasticBag.java @@ -0,0 +1,41 @@ +package com.hbm.render.entity.mob; + +import org.lwjgl.opengl.GL11; + +import com.hbm.lib.RefStrings; + +import net.minecraft.client.renderer.entity.Render; +import net.minecraft.entity.Entity; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +public class RenderPlasticBag extends Render { + + private static final IModelCustom model = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/mobs/plasticbag.obj")); + private static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID, "textures/entity/plasticbag.png"); + + public RenderPlasticBag() { + this.shadowOpaque = 0.0F; + } + + @Override + public void doRender(Entity entity, double x, double y, double z, float f0, float f1) { + + GL11.glPushMatrix(); + GL11.glTranslated(x, y, z); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * f1 + 90.0F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(entity.prevRotationPitch + (entity.rotationPitch - entity.prevRotationPitch) * f1 - 90, 0.0F, 0.0F, 1.0F); + + this.bindEntityTexture(entity); + model.renderAll(); + + GL11.glPopMatrix(); + } + + @Override + protected ResourceLocation getEntityTexture(Entity entity) { + return texture; + } +} diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index b57571485..a3ef04578 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -537,6 +537,7 @@ entity.entity_mob_nuclear_creeper.name=Nuklearer Creeper entity.entity_mob_phosgene_creeper.name=Phosgen-Creeper entity.entity_mob_tainted_creeper.name=Verseuchter Creeper entity.entity_mob_volatile_creeper.name=Instabiler Creeper +entity.entity_plastic_bag.name=Plastiktüte entity.entity_taint_crab.name=Verseuchte Krabbe entity.entity_tesla_crab.name=Tesla-Krabbe entity.hbm.entity_balls_o_tron.name=Balls-O-Tron Prime @@ -2672,6 +2673,7 @@ item.plan_c.name=Plan C item.plant_item.mustardwillow.name=Senf-Weidenblatt item.plant_item.rope.name=Seil item.plant_item.tobacco.name=Tabak +item.plastic_bag.name=Plastiktüte item.plate_advanced_alloy.name=Fortgeschrittene Legierungsplatte item.plate_aluminium.name=Aluminiumplatte item.plate_armor_ajr.name=Eisenbeschlagene Panzerplatte diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 8cdae49aa..7dfece34c 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1050,6 +1050,7 @@ entity.entity_mob_nuclear_creeper.name=Nuclear Creeper entity.entity_mob_phosgene_creeper.name=Phosgene Creeper entity.entity_mob_tainted_creeper.name=Tainted Creeper entity.entity_mob_volatile_creeper.name=Volatile Creeper +entity.entity_plastic_bag.name=Plastic Bag entity.entity_taint_crab.name=Taint Crab entity.entity_tesla_crab.name=Tesla Crab entity.hbm.entity_balls_o_tron.name=Balls-O-Tron Prime @@ -3467,6 +3468,7 @@ item.plan_c.desc=Deadly item.plant_item.mustardwillow.name=Mustard Willow Leaf item.plant_item.rope.name=Rope item.plant_item.tobacco.name=Tobacco +item.plastic_bag.name=Plastic Bag item.plate_advanced_alloy.name=Advanced Alloy Plate item.plate_aluminium.name=Aluminium Plate item.plate_armor_ajr.name=Iron-Shod Armor Plating From 565fea133ea9b569dff39b57f6bdd1f82d5cf2f8 Mon Sep 17 00:00:00 2001 From: Bob Date: Wed, 18 Oct 2023 22:36:23 +0200 Subject: [PATCH 347/432] biombe dicshonary --- src/main/java/com/hbm/entity/EntityMappings.java | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index 8e42e0752..225370ef2 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -26,7 +26,8 @@ import net.minecraft.entity.EntityLiving; import net.minecraft.entity.EnumCreatureType; import net.minecraft.world.biome.BiomeGenBase; import net.minecraft.world.biome.BiomeGenBase.SpawnListEntry; -import net.minecraft.world.biome.BiomeGenBase.TempCategory; +import net.minecraftforge.common.BiomeDictionary; +import net.minecraftforge.common.BiomeDictionary.Type; public class EntityMappings { @@ -258,7 +259,7 @@ public class EntityMappings { addSpawn(EntityCreeperPhosgene.class, 5, 1, 1, EnumCreatureType.monster, BiomeGenBase.getBiomeGenArray()); addSpawn(EntityCreeperVolatile.class, 10, 1, 1, EnumCreatureType.monster, BiomeGenBase.getBiomeGenArray()); addSpawn(EntityCreeperGold.class, 1, 1, 1, EnumCreatureType.monster, BiomeGenBase.getBiomeGenArray()); - addSpawn(EntityPlasticBag.class, 1, 1, 3, EnumCreatureType.waterCreature, getOceanBiomes()); + addSpawn(EntityPlasticBag.class, 1, 1, 3, EnumCreatureType.waterCreature, BiomeDictionary.getBiomesForType(Type.OCEAN)); int id = 0; for(Quartet, String, Integer, Boolean> entry : entityMappings) { @@ -303,15 +304,4 @@ public class EntityMappings { spawns.add(new SpawnListEntry(entityClass, weightedProb, min, max)); } } - - public static BiomeGenBase[] getOceanBiomes() { - List biomes = new ArrayList(); - - for(BiomeGenBase biome : BiomeGenBase.getBiomeGenArray()) { - if(biome != null && biome.getTempCategory() == TempCategory.OCEAN) { - biomes.add(biome); - } - } - return biomes.toArray(new BiomeGenBase[0]); - } } From 42d788263778df02ec37a23674b37a8b8eb43792 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 22 Oct 2023 18:17:07 +0200 Subject: [PATCH 348/432] more unfinished crap --- changelog | 4 + gradle.properties | 2 +- .../java/com/hbm/entity/EntityMappings.java | 1 + .../java/com/hbm/entity/mob/EntityPigeon.java | 23 +++ .../com/hbm/entity/mob/EntityPlasticBag.java | 2 +- src/main/java/com/hbm/lib/RefStrings.java | 2 +- src/main/java/com/hbm/main/ClientProxy.java | 2 + .../hbm/render/entity/mob/RenderPigeon.java | 26 +++ .../com/hbm/render/model/ModelPigeon.java | 91 +++++++++++ .../render/tileentity/RendererObjTester.java | 153 +----------------- .../assets/hbm/textures/entity/pigeon.png | Bin 0 -> 419 bytes 11 files changed, 155 insertions(+), 151 deletions(-) create mode 100644 src/main/java/com/hbm/entity/mob/EntityPigeon.java create mode 100644 src/main/java/com/hbm/render/entity/mob/RenderPigeon.java create mode 100644 src/main/java/com/hbm/render/model/ModelPigeon.java create mode 100644 src/main/resources/assets/hbm/textures/entity/pigeon.png diff --git a/changelog b/changelog index 1cda4a909..f42f79ddf 100644 --- a/changelog +++ b/changelog @@ -1,4 +1,8 @@ ## Added +* Plastic bag + * Rarely spawns in water with similar spawn conditions as squids + * Will slowly drift into random directions + * Can be picked up, the resulting item can be used like a backpack that stores one item ## Changed * Updated chinese localization diff --git a/gradle.properties b/gradle.properties index 069c4d1c8..1b073093f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4746 +mod_build_number=4760 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index 225370ef2..4c69f8102 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -239,6 +239,7 @@ public class EntityMappings { addMob(EntityMaskMan.class, "entity_mob_mask_man", 0x818572, 0xC7C1B7); addMob(EntityDuck.class, "entity_fucc_a_ducc", 0xd0d0d0, 0xFFBF00); addMob(EntityQuackos.class, "entity_elder_one", 0xd0d0d0, 0xFFBF00); + //addMob(EntityPigeon.class, "entity_pigeon", 0xd0d0d0, 0xFFBF00); addMob(EntityFBI.class, "entity_ntm_fbi", 0x008000, 0x404040); addMob(EntityFBIDrone.class, "entity_ntm_fbi_drone", 0x008000, 0x404040); addMob(EntityRADBeast.class, "entity_ntm_radiation_blaze", 0x303030, 0x008000); diff --git a/src/main/java/com/hbm/entity/mob/EntityPigeon.java b/src/main/java/com/hbm/entity/mob/EntityPigeon.java new file mode 100644 index 000000000..af1ac41e0 --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/EntityPigeon.java @@ -0,0 +1,23 @@ +package com.hbm.entity.mob; + +import net.minecraft.entity.passive.EntityChicken; +import net.minecraft.world.World; + +public class EntityPigeon extends EntityChicken { + + public EntityPigeon(World p_i1682_1_) { + super(p_i1682_1_); + } + + protected String getLivingSound() { + return null; + } + + protected String getHurtSound() { + return null; + } + + protected String getDeathSound() { + return null; + } +} diff --git a/src/main/java/com/hbm/entity/mob/EntityPlasticBag.java b/src/main/java/com/hbm/entity/mob/EntityPlasticBag.java index 1ebc591c5..0c9ecaef4 100644 --- a/src/main/java/com/hbm/entity/mob/EntityPlasticBag.java +++ b/src/main/java/com/hbm/entity/mob/EntityPlasticBag.java @@ -155,6 +155,6 @@ public class EntityPlasticBag extends EntityWaterMob { @Override public boolean getCanSpawnHere() { - return this.posY > 45.0D && this.posY < 63.0D && super.getCanSpawnHere(); + return this.posY > 45.0D && this.posY < 63.0D && this.getRNG().nextInt(10) == 0 && super.getCanSpawnHere(); } } diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 1db22f6d1..417c9681b 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4746)"; + public static final String VERSION = "1.0.27 BETA (4760)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 1ec9d4a5c..f7e3d1233 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -87,6 +87,7 @@ import com.hbm.render.item.*; import com.hbm.render.item.block.*; import com.hbm.render.item.weapon.*; import com.hbm.render.loader.HmfModelLoader; +import com.hbm.render.model.ModelPigeon; import com.hbm.render.tileentity.*; import com.hbm.render.util.MissilePart; import com.hbm.render.util.RenderInfoSystem; @@ -753,6 +754,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityGlyphidNuclear.class, new RenderGlyphidNuclear()); RenderingRegistry.registerEntityRenderingHandler(EntityFBIDrone.class, new RenderDrone()); RenderingRegistry.registerEntityRenderingHandler(EntityPlasticBag.class, new RenderPlasticBag()); + RenderingRegistry.registerEntityRenderingHandler(EntityPigeon.class, new RenderPigeon(new ModelPigeon(), 0.3F)); //"particles" RenderingRegistry.registerEntityRenderingHandler(EntitySmokeFX.class, new MultiCloudRenderer(new Item[] { ModItems.smoke1, ModItems.smoke2, ModItems.smoke3, ModItems.smoke4, ModItems.smoke5, ModItems.smoke6, ModItems.smoke7, ModItems.smoke8 })); RenderingRegistry.registerEntityRenderingHandler(EntityBSmokeFX.class, new MultiCloudRenderer(new Item[] { ModItems.b_smoke1, ModItems.b_smoke2, ModItems.b_smoke3, ModItems.b_smoke4, ModItems.b_smoke5, ModItems.b_smoke6, ModItems.b_smoke7, ModItems.b_smoke8 })); diff --git a/src/main/java/com/hbm/render/entity/mob/RenderPigeon.java b/src/main/java/com/hbm/render/entity/mob/RenderPigeon.java new file mode 100644 index 000000000..a825a0b3b --- /dev/null +++ b/src/main/java/com/hbm/render/entity/mob/RenderPigeon.java @@ -0,0 +1,26 @@ +package com.hbm.render.entity.mob; + +import com.hbm.entity.mob.EntityPigeon; +import com.hbm.lib.RefStrings; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.renderer.entity.RenderChicken; +import net.minecraft.entity.Entity; +import net.minecraft.util.ResourceLocation; + +public class RenderPigeon extends RenderChicken { + + public static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID, "textures/entity/pigeon.png"); + + public RenderPigeon(ModelBase p_i1252_1_, float p_i1252_2_) { + super(p_i1252_1_, p_i1252_2_); + } + + protected ResourceLocation getEntityTexture(Entity entity) { + return this.getEntityTexture((EntityPigeon) entity); + } + + protected ResourceLocation getEntityTexture(EntityPigeon entity) { + return texture; + } +} diff --git a/src/main/java/com/hbm/render/model/ModelPigeon.java b/src/main/java/com/hbm/render/model/ModelPigeon.java new file mode 100644 index 000000000..0f652efa2 --- /dev/null +++ b/src/main/java/com/hbm/render/model/ModelPigeon.java @@ -0,0 +1,91 @@ +package com.hbm.render.model; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.util.MathHelper; + +public class ModelPigeon extends ModelBase { + + public ModelRenderer head; + public ModelRenderer beak; + public ModelRenderer body; + public ModelRenderer bodyFat; + public ModelRenderer leftLeg; + public ModelRenderer rightLeg; + public ModelRenderer leftWing; + public ModelRenderer rightWing; + public ModelRenderer ass; + public ModelRenderer feathers; + + public ModelPigeon() { + initModel(); + } + + private void initModel() { + + boolean fat = false; + + this.head = new ModelRenderer(this, 0, 0); + this.head.addBox(-2F, -6F, -2F, 4, 6, 4); + this.head.setRotationPoint(0F, 16F, -2F - (fat ? 2F : 0F)); + this.beak = new ModelRenderer(this, 14, 0); + this.beak.addBox(-1F, -4F, -4F, 2, 2, 2); + this.beak.setRotationPoint(0F, 16F, -2F - (fat ? 2F : 0F)); + + this.body = new ModelRenderer(this, 0, 10); + this.body.addBox(-3F, -3F, -4F, 6, 6, 8, 0); + this.body.setRotationPoint(0F, 17F, 0F); + this.bodyFat = new ModelRenderer(this, 0, 10); + this.bodyFat.addBox(-3F, -3F, -4F, 6, 6, 8, 1); + this.bodyFat.setRotationPoint(0F, 17F, 0F); + this.ass = new ModelRenderer(this, 0, 24); + this.ass.addBox(-2F, -2F, -2F, 4, 4, 4); + this.ass.setRotationPoint(0F, 20F, 4F + (fat ? 1F : 0F)); + this.feathers = new ModelRenderer(this, 16, 24); + this.feathers.addBox(-1F, -0.5F, -2F, 2, 1, 4); + this.feathers.setRotationPoint(0F, 21.5F, 7.5F + (fat ? 1F : 0F)); + + this.leftLeg = new ModelRenderer(this, 20, 0); + this.leftLeg.addBox(-1F, 0F, 0F, 2, 4, 2); + this.leftLeg.setRotationPoint(1F, 20F, -1F); + this.rightLeg = new ModelRenderer(this, 20, 0); + this.rightLeg.addBox(-1F, 0F, 0F, 2, 4, 2); + this.rightLeg.setRotationPoint(-1F, 20F, -1F); + + this.leftWing = new ModelRenderer(this, 28, 0); + this.leftWing.addBox(0F, 0F, -3F, 1, 4, 6); + this.leftWing.setRotationPoint(3F + (fat ? 1F : 0F), -2F, 0F); + this.rightWing = new ModelRenderer(this, 28, 10); + this.rightWing.addBox(-1F, 0F, -3F, 1, 4, 6); + this.rightWing.setRotationPoint(-3F - (fat ? 1F : 0F), -2F, 0F); + + this.body.addChild(this.leftWing); + this.body.addChild(this.rightWing); + this.bodyFat.addChild(this.leftWing); + this.bodyFat.addChild(this.rightWing); + } + + public void render(Entity entity, float f0, float f1, float f2, float f3, float f4, float scale) { + //this.initModel(); + this.setRotationAngles(f0, f1, f2, f3, f4, scale, entity); + this.head.render(scale); + this.beak.render(scale); + this.body.render(scale); + this.rightLeg.render(scale); + this.leftLeg.render(scale); + this.ass.render(scale); + this.feathers.render(scale); + } + + public void setRotationAngles(float walkLoop, float legAmplitude, float armSwing, float headYaw, float headPitch, float scale, Entity entity) { + this.head.rotateAngleX = this.beak.rotateAngleX = headPitch / (180F / (float) Math.PI); + this.head.rotateAngleY = this.beak.rotateAngleY = headYaw / (180F / (float) Math.PI); + this.body.rotateAngleX = this.bodyFat.rotateAngleX = this.ass.rotateAngleX = -((float) Math.PI / 4F); + this.feathers.rotateAngleX = -((float) Math.PI / 8F); + this.rightLeg.rotateAngleX = MathHelper.cos(walkLoop * 0.6662F) * 1.4F * legAmplitude; + this.leftLeg.rotateAngleX = MathHelper.cos(walkLoop * 0.6662F + (float) Math.PI) * 1.4F * legAmplitude; + this.rightWing.rotateAngleZ = armSwing; + this.leftWing.rotateAngleZ = -armSwing; + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RendererObjTester.java b/src/main/java/com/hbm/render/tileentity/RendererObjTester.java index eabd2569a..71c074f4c 100644 --- a/src/main/java/com/hbm/render/tileentity/RendererObjTester.java +++ b/src/main/java/com/hbm/render/tileentity/RendererObjTester.java @@ -7,6 +7,7 @@ import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; import com.hbm.main.ResourceManager; +import com.hbm.render.model.ModelPigeon; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; @@ -15,6 +16,8 @@ import net.minecraft.tileentity.TileEntity; public class RendererObjTester extends TileEntitySpecialRenderer { //private static final ResourceLocation objTesterModelRL = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/TestObj.obj"); + + ModelPigeon pigeon = new ModelPigeon(); @Override public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { @@ -22,155 +25,9 @@ public class RendererObjTester extends TileEntitySpecialRenderer { GL11.glTranslated(x + 0.5, y, z + 0.5); GL11.glEnable(GL11.GL_LIGHTING); GL11.glDisable(GL11.GL_CULL_FACE); - - /*GL11.glTranslated(0, 0, 0.75); - this.bindTexture(new ResourceLocation(RefStrings.MODID, "textures/models/horse/dyx.png")); - HorsePronter.reset(); - //HorsePronter.pose(HorsePronter.id_lfl, 0, System.currentTimeMillis() % 360 / 10D, 0); - double r = 60; - HorsePronter.pose(HorsePronter.id_body, 0, -r, 0); - HorsePronter.pose(HorsePronter.id_tail, 0, 45, 90); - HorsePronter.pose(HorsePronter.id_lbl, 0, -90 + r, 35); - HorsePronter.pose(HorsePronter.id_rbl, 0, -90 + r, -35); - HorsePronter.pose(HorsePronter.id_lfl, 0, r - 10, 5); - HorsePronter.pose(HorsePronter.id_rfl, 0, r - 10, -5); - HorsePronter.pose(HorsePronter.id_head, 0, r, 0); - HorsePronter.enableHorn(); - HorsePronter.enableWings(); - HorsePronter.pront(); - ItemStack stack = new ItemStack(ModItems.cigarette); - double scale = 0.25; - GL11.glTranslated(0.02, 1.13, -0.42); - GL11.glScaled(scale, scale, scale); - GL11.glRotated(90, 0, -1, 0); - GL11.glRotated(60, 0, 0, -1); - bindTexture(TextureMap.locationItemsTexture); - IIcon icon = stack.getIconIndex(); - float f14 = icon.getMinU(); - float f15 = icon.getMaxU(); - float f4 = icon.getMinV(); - float f5 = icon.getMaxV(); - ItemRenderer.renderItemIn2D(Tessellator.instance, f15, f4, f14, f5, icon.getIconWidth(), icon.getIconHeight(), 0.0625F);*/ - - double speed = 100D; - double chewing = 200D; - double cy0 = Math.sin(System.currentTimeMillis() / speed % (Math.PI * 2)); - double cy1 = Math.sin(System.currentTimeMillis() / speed % (Math.PI * 2) - Math.PI * 0.5); - double cy2 = Math.sin(System.currentTimeMillis() / speed % (Math.PI * 2) - Math.PI); - double cy3 = Math.sin(System.currentTimeMillis() / speed % (Math.PI * 2) - Math.PI * 0.75); - - double cy4 = Math.sin(System.currentTimeMillis() / chewing % (Math.PI * 2)); - double cy5 = Math.sin(System.currentTimeMillis() / chewing % (Math.PI * 2) - Math.PI * 0.5); - - this.bindTexture(ResourceManager.glyphid_tex); - ResourceManager.glyphid.renderPart("Body"); - ResourceManager.glyphid.renderPart("ArmorFront"); - ResourceManager.glyphid.renderPart("ArmorLeft"); - ResourceManager.glyphid.renderPart("ArmorRight"); - - /// LEFT ARM /// - GL11.glPushMatrix(); - GL11.glTranslated(0.25, 0.625, 0.0625); - GL11.glRotated(10, 0, 1, 0); - GL11.glRotated(35 + cy1 * 20, 1, 0, 0); - GL11.glTranslated(-0.25, -0.625, -0.0625); - ResourceManager.glyphid.renderPart("ArmLeftUpper"); - GL11.glTranslated(0.25, 0.625, 0.4375); - GL11.glRotated(-75 - cy1 * 20 + cy0 * 20, 1, 0, 0); - GL11.glTranslated(-0.25, -0.625, -0.4375); - ResourceManager.glyphid.renderPart("ArmLeftMid"); - GL11.glTranslated(0.25, 0.625, 0.9375); - GL11.glRotated(90 - cy0 * 45, 1, 0, 0); - GL11.glTranslated(-0.25, -0.625, -0.9375); - ResourceManager.glyphid.renderPart("ArmLeftLower"); - ResourceManager.glyphid.renderPart("ArmLeftArmor"); - GL11.glPopMatrix(); - - /// RIGHT ARM /// - GL11.glPushMatrix(); - GL11.glTranslated(-0.25, 0.625, 0.0625); - GL11.glRotated(-10, 0, 1, 0); - GL11.glRotated(35 + cy2 * 20, 1, 0, 0); - GL11.glTranslated(0.25, -0.625, -0.0625); - ResourceManager.glyphid.renderPart("ArmRightUpper"); - GL11.glTranslated(-0.25, 0.625, 0.4375); - GL11.glRotated(-75 - cy2 * 20 + cy3 * 20, 1, 0, 0); - GL11.glTranslated(0.25, -0.625, -0.4375); - ResourceManager.glyphid.renderPart("ArmRightMid"); - GL11.glTranslated(-0.25, 0.625, 0.9375); - GL11.glRotated(90 - cy3 * 45, 1, 0, 0); - GL11.glTranslated(0.25, -0.625, -0.9375); - ResourceManager.glyphid.renderPart("ArmRightLower"); - ResourceManager.glyphid.renderPart("ArmRightArmor"); - GL11.glPopMatrix(); - - GL11.glPushMatrix(); - - GL11.glTranslated(0, 0.5, 0.25); - GL11.glRotated(cy5 * 15 + 15, 0, 0, 1); - GL11.glTranslated(0, -0.5, -0.25); - - GL11.glPushMatrix(); - GL11.glTranslated(0, 0.5, 0.25); - GL11.glRotated(-7.5 - cy4 * 7.5, 1, 0, 0); - GL11.glTranslated(0, -0.5, -0.25); - ResourceManager.glyphid.renderPart("JawTop"); - GL11.glPopMatrix(); - - GL11.glPushMatrix(); - GL11.glTranslated(0, 0.5, 0.25); - GL11.glRotated(7.5 + cy4 * 7.5, 0, 1, 0); - GL11.glRotated(7.5 + cy4 * 7.5, 1, 0, 0); - GL11.glTranslated(0, -0.5, -0.25); - ResourceManager.glyphid.renderPart("JawLeft"); - GL11.glPopMatrix(); - - GL11.glPushMatrix(); - GL11.glTranslated(0, 0.5, 0.25); - GL11.glRotated(-7.5 - cy4 * 7.5, 0, 1, 0); - GL11.glRotated(7.5 + cy4 * 7.5, 1, 0, 0); - GL11.glTranslated(0, -0.5, -0.25); - ResourceManager.glyphid.renderPart("JawRight"); - GL11.glPopMatrix(); - GL11.glPopMatrix(); - - double steppy = 15; - double bend = 60; - - for(int i = 0; i < 3; i++) { - - double c0 = cy0 * (i == 1 ? -1 : 1); - double c1 = cy1 * (i == 1 ? -1 : 1); - - GL11.glPushMatrix(); - GL11.glTranslated(0, 0.25, 0); - GL11.glRotated(i * 30 - 15 + c0 * 7.5, 0, 1, 0); - GL11.glRotated(steppy + c1 * steppy, 0, 0, 1); - GL11.glTranslated(0, -0.25, 0); - ResourceManager.glyphid.renderPart("LegLeftUpper"); - GL11.glTranslated(0.5625, 0.25, 0); - GL11.glRotated(-bend - c1 * steppy, 0, 0, 1); - GL11.glTranslated(-0.5625, -0.25, 0); - ResourceManager.glyphid.renderPart("LegLeftLower"); - GL11.glPopMatrix(); - - GL11.glPushMatrix(); - GL11.glTranslated(0, 0.25, 0); - GL11.glRotated(i * 30 - 45 + c0 * 7.5, 0, 1, 0); - GL11.glRotated(-steppy + c1 * steppy, 0, 0, 1); - GL11.glTranslated(0, -0.25, 0); - ResourceManager.glyphid.renderPart("LegRightUpper"); - GL11.glTranslated(-0.5625, 0.25, 0); - GL11.glRotated(bend - c1 * steppy, 0, 0, 1); - GL11.glTranslated(0.5625, -0.25, 0); - ResourceManager.glyphid.renderPart("LegRightLower"); - GL11.glPopMatrix(); - } - - this.bindTexture(ResourceManager.universal); - GL11.glScaled(0.05, 0.05, 0.05); - ResourceManager.sphere_uv.renderAll(); + bindTexture(ResourceManager.universal); + pigeon.render(null, 0, 0, 0, 0, 0, 0.0625F); GL11.glPopMatrix(); } diff --git a/src/main/resources/assets/hbm/textures/entity/pigeon.png b/src/main/resources/assets/hbm/textures/entity/pigeon.png new file mode 100644 index 0000000000000000000000000000000000000000..b13a2ea56a9f0861cbf3acb4577b0cdbcfa48068 GIT binary patch literal 419 zcmV;U0bKrxP)q~sGELu!vO$0r;L|<@eghZ)Xy3YV^e*sfo<6#kzr@~%UA{bhieKhUG9fc61Ew@T>hI)6S}S{k zm42`N|AOKfU}iHQTmUmQz2!JVJOS%)^%LKnszdP%s0q*xKpT^~+HibVKT>@B(Oy^Q z4`6m6>`_mGSy2<99e_4!0<;6r#_YerTX8`ABp`DCO|s?ZH)EUw!^AG6wF9#7y!If6(`f&m4Ao1P&@-_ z0<;6r#%faYVV{R*c^^o;*M9TcE_zS6`5?45@fUInJMyMbyab9*z&8?CUcc=gp+*1z N002ovPDHLkV1gbnw)+48 literal 0 HcmV?d00001 From 1ba07217ec4e877f1a2afa9572316ebdced79f8a Mon Sep 17 00:00:00 2001 From: Boblet Date: Mon, 23 Oct 2023 16:55:38 +0200 Subject: [PATCH 349/432] flying rats --- .../java/com/hbm/entity/EntityMappings.java | 2 +- .../java/com/hbm/entity/mob/EntityPigeon.java | 50 ++++++++++++++-- .../com/hbm/entity/mob/IFlyingCreature.java | 10 ++++ .../ai/EntityAIFlutterAroundAimlessly.java | 44 ++++++++++++++ .../mob/ai/EntityAIPanicConditional.java | 56 ++++++++++++++++++ .../entity/mob/ai/EntityAIStartFlying.java | 28 +++++++++ .../hbm/entity/mob/ai/EntityAIStopFlying.java | 27 +++++++++ .../mob/ai/EntityAISwimmingConditional.java | 36 ++++++++++++ .../mob/ai/EntityAIWanderConditional.java | 58 +++++++++++++++++++ .../hbm/render/entity/mob/RenderPigeon.java | 4 +- 10 files changed, 308 insertions(+), 7 deletions(-) create mode 100644 src/main/java/com/hbm/entity/mob/IFlyingCreature.java create mode 100644 src/main/java/com/hbm/entity/mob/ai/EntityAIFlutterAroundAimlessly.java create mode 100644 src/main/java/com/hbm/entity/mob/ai/EntityAIPanicConditional.java create mode 100644 src/main/java/com/hbm/entity/mob/ai/EntityAIStartFlying.java create mode 100644 src/main/java/com/hbm/entity/mob/ai/EntityAIStopFlying.java create mode 100644 src/main/java/com/hbm/entity/mob/ai/EntityAISwimmingConditional.java create mode 100644 src/main/java/com/hbm/entity/mob/ai/EntityAIWanderConditional.java diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index 4c69f8102..0b88e2b9b 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -239,7 +239,7 @@ public class EntityMappings { addMob(EntityMaskMan.class, "entity_mob_mask_man", 0x818572, 0xC7C1B7); addMob(EntityDuck.class, "entity_fucc_a_ducc", 0xd0d0d0, 0xFFBF00); addMob(EntityQuackos.class, "entity_elder_one", 0xd0d0d0, 0xFFBF00); - //addMob(EntityPigeon.class, "entity_pigeon", 0xd0d0d0, 0xFFBF00); + addMob(EntityPigeon.class, "entity_pigeon", 0xd0d0d0, 0xFFBF00); addMob(EntityFBI.class, "entity_ntm_fbi", 0x008000, 0x404040); addMob(EntityFBIDrone.class, "entity_ntm_fbi_drone", 0x008000, 0x404040); addMob(EntityRADBeast.class, "entity_ntm_radiation_blaze", 0x303030, 0x008000); diff --git a/src/main/java/com/hbm/entity/mob/EntityPigeon.java b/src/main/java/com/hbm/entity/mob/EntityPigeon.java index af1ac41e0..0c6253e02 100644 --- a/src/main/java/com/hbm/entity/mob/EntityPigeon.java +++ b/src/main/java/com/hbm/entity/mob/EntityPigeon.java @@ -1,14 +1,56 @@ package com.hbm.entity.mob; -import net.minecraft.entity.passive.EntityChicken; +import java.util.function.Predicate; + +import com.hbm.entity.mob.ai.EntityAIFlutterAroundAimlessly; +import com.hbm.entity.mob.ai.EntityAIStartFlying; +import com.hbm.entity.mob.ai.EntityAIStopFlying; +import com.hbm.entity.mob.ai.EntityAISwimmingConditional; +import com.hbm.entity.mob.ai.EntityAIWanderConditional; + +import net.minecraft.entity.EntityCreature; +import net.minecraft.entity.ai.EntityAILookIdle; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.passive.IAnimals; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.world.World; -public class EntityPigeon extends EntityChicken { +public class EntityPigeon extends EntityCreature implements IFlyingCreature, IAnimals { - public EntityPigeon(World p_i1682_1_) { - super(p_i1682_1_); + public EntityPigeon(World world) { + super(world); + Predicate noFlyCondition = x -> { return ((EntityPigeon) x).getFlyingState() == IFlyingCreature.STATE_WALKING; }; + this.tasks.addTask(0, new EntityAIStartFlying(this, this)); + this.tasks.addTask(0, new EntityAIStopFlying(this, this)); + this.tasks.addTask(1, new EntityAISwimmingConditional(this, noFlyCondition)); + this.tasks.addTask(2, new EntityAIFlutterAroundAimlessly(this, this)); + //this.tasks.addTask(2, new EntityAIPanicConditional(this, 1.4D, noFlyCondition)); + this.tasks.addTask(5, new EntityAIWanderConditional(this, 1.0D, noFlyCondition)); + this.tasks.addTask(6, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F)); + this.tasks.addTask(7, new EntityAILookIdle(this)); + } + + @Override + public boolean isAIEnabled() { + return true; } + @Override + protected void entityInit() { + super.entityInit(); + this.dataWatcher.addObject(12, Byte.valueOf((byte) 0)); + } + + @Override + public int getFlyingState() { + return this.dataWatcher.getWatchableObjectByte(12); + } + + @Override + public void setFlyingState(int state) { + this.dataWatcher.updateObject(12, (byte) state); + } + protected String getLivingSound() { return null; } diff --git a/src/main/java/com/hbm/entity/mob/IFlyingCreature.java b/src/main/java/com/hbm/entity/mob/IFlyingCreature.java new file mode 100644 index 000000000..68bd8c36c --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/IFlyingCreature.java @@ -0,0 +1,10 @@ +package com.hbm.entity.mob; + +public interface IFlyingCreature { + + public static final int STATE_WALKING = 0; + public static final int STATE_FLYING = 1; + + public int getFlyingState(); + public void setFlyingState(int state); +} diff --git a/src/main/java/com/hbm/entity/mob/ai/EntityAIFlutterAroundAimlessly.java b/src/main/java/com/hbm/entity/mob/ai/EntityAIFlutterAroundAimlessly.java new file mode 100644 index 000000000..98556f3aa --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/ai/EntityAIFlutterAroundAimlessly.java @@ -0,0 +1,44 @@ +package com.hbm.entity.mob.ai; + +import com.hbm.entity.mob.IFlyingCreature; + +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.ai.EntityAIBase; + +public class EntityAIFlutterAroundAimlessly extends EntityAIBase { + + private EntityLivingBase living; + private IFlyingCreature flying; + + public EntityAIFlutterAroundAimlessly(EntityLivingBase living, IFlyingCreature flying) { + this.living = living; + this.flying = flying; + } + + @Override + public boolean shouldExecute() { + return this.flying.getFlyingState() == this.flying.STATE_FLYING; + } + + @Override + public boolean continueExecuting() { + return shouldExecute(); + } + + @Override + public void startExecuting() { + + /*this.living.motionX = this.living.getRNG().nextGaussian() * 0.1; + this.living.motionY = this.living.getRNG().nextGaussian() * 0.1; + this.living.motionZ = this.living.getRNG().nextGaussian() * 0.1;*/ + + this.living.motionX = 0; + this.living.motionY = this.living.getRNG().nextGaussian() * 0.1; + this.living.motionZ = 0; + + if(living.onGround) this.living.motionY = Math.abs(this.living.motionY) + 0.1D; + + this.living.moveForward = 0.5F; + this.living.rotationYaw += this.living.getRNG().nextGaussian() * 0.1; + } +} diff --git a/src/main/java/com/hbm/entity/mob/ai/EntityAIPanicConditional.java b/src/main/java/com/hbm/entity/mob/ai/EntityAIPanicConditional.java new file mode 100644 index 000000000..71fa26e4d --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/ai/EntityAIPanicConditional.java @@ -0,0 +1,56 @@ +package com.hbm.entity.mob.ai; + +import java.util.function.Predicate; + +import net.minecraft.entity.EntityCreature; +import net.minecraft.entity.ai.EntityAIBase; +import net.minecraft.entity.ai.RandomPositionGenerator; +import net.minecraft.util.Vec3; + +public class EntityAIPanicConditional extends EntityAIBase { + + private EntityCreature creature; + private double speed; + private Predicate condition; + private double randPosX; + private double randPosY; + private double randPosZ; + + public EntityAIPanicConditional(EntityCreature creature, double speed, Predicate condition) { + this.creature = creature; + this.speed = speed; + this.condition = condition; + this.setMutexBits(1); + } + + @Override + public boolean shouldExecute() { + + if(!condition.test(creature)) return false; + + if(this.creature.getAITarget() == null && !this.creature.isBurning()) { + return false; + } else { + Vec3 vec3 = RandomPositionGenerator.findRandomTarget(this.creature, 5, 4); + + if(vec3 == null) { + return false; + } else { + this.randPosX = vec3.xCoord; + this.randPosY = vec3.yCoord; + this.randPosZ = vec3.zCoord; + return true; + } + } + } + + @Override + public void startExecuting() { + this.creature.getNavigator().tryMoveToXYZ(this.randPosX, this.randPosY, this.randPosZ, this.speed); + } + + @Override + public boolean continueExecuting() { + return !this.creature.getNavigator().noPath() && condition.test(creature); + } +} diff --git a/src/main/java/com/hbm/entity/mob/ai/EntityAIStartFlying.java b/src/main/java/com/hbm/entity/mob/ai/EntityAIStartFlying.java new file mode 100644 index 000000000..2f8ffa66c --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/ai/EntityAIStartFlying.java @@ -0,0 +1,28 @@ +package com.hbm.entity.mob.ai; + +import com.hbm.entity.mob.IFlyingCreature; + +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.ai.EntityAIBase; + +public class EntityAIStartFlying extends EntityAIBase { + + private EntityLivingBase living; + private IFlyingCreature flying; + + public EntityAIStartFlying(EntityLivingBase living, IFlyingCreature flying) { + this.living = living; + this.flying = flying; + } + + @Override + public boolean shouldExecute() { + //take off if attacked, on fire or at random (avg 30s) + return this.flying.getFlyingState() == this.flying.STATE_WALKING && (this.living.getAITarget() != null || this.living.isBurning() || this.living.getRNG().nextInt(600) == 0); + } + + @Override + public void startExecuting() { + this.flying.setFlyingState(this.flying.STATE_FLYING); + } +} diff --git a/src/main/java/com/hbm/entity/mob/ai/EntityAIStopFlying.java b/src/main/java/com/hbm/entity/mob/ai/EntityAIStopFlying.java new file mode 100644 index 000000000..6f8dadee5 --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/ai/EntityAIStopFlying.java @@ -0,0 +1,27 @@ +package com.hbm.entity.mob.ai; + +import com.hbm.entity.mob.IFlyingCreature; + +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.ai.EntityAIBase; + +public class EntityAIStopFlying extends EntityAIBase { + + private EntityLivingBase living; + private IFlyingCreature flying; + + public EntityAIStopFlying(EntityLivingBase living, IFlyingCreature flying) { + this.living = living; + this.flying = flying; + } + + @Override + public boolean shouldExecute() { + return this.flying.getFlyingState() == this.flying.STATE_FLYING && this.living.getRNG().nextInt(200) == 0; + } + + @Override + public void startExecuting() { + this.flying.setFlyingState(this.flying.STATE_WALKING); + } +} diff --git a/src/main/java/com/hbm/entity/mob/ai/EntityAISwimmingConditional.java b/src/main/java/com/hbm/entity/mob/ai/EntityAISwimmingConditional.java new file mode 100644 index 000000000..1f2e3c18a --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/ai/EntityAISwimmingConditional.java @@ -0,0 +1,36 @@ +package com.hbm.entity.mob.ai; + +import java.util.function.Predicate; + +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.ai.EntityAIBase; + +/** + * Identical to EntityAISwimming, but with an added conditional lambda for maximum reusability. + * + * @author hbm + */ +public class EntityAISwimmingConditional extends EntityAIBase { + + private EntityLiving living; + private Predicate condition; + + public EntityAISwimmingConditional(EntityLiving living, Predicate condition) { + this.living = living; + this.condition = condition; + this.setMutexBits(4); + living.getNavigator().setCanSwim(true); + } + + @Override + public boolean shouldExecute() { + return (this.living.isInWater() || this.living.handleLavaMovement()) && condition.test(living); + } + + @Override + public void updateTask() { + if(this.living.getRNG().nextFloat() < 0.8F) { + this.living.getJumpHelper().setJumping(); + } + } +} diff --git a/src/main/java/com/hbm/entity/mob/ai/EntityAIWanderConditional.java b/src/main/java/com/hbm/entity/mob/ai/EntityAIWanderConditional.java new file mode 100644 index 000000000..6132468eb --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/ai/EntityAIWanderConditional.java @@ -0,0 +1,58 @@ +package com.hbm.entity.mob.ai; + +import java.util.function.Predicate; + +import net.minecraft.entity.EntityCreature; +import net.minecraft.entity.ai.EntityAIBase; +import net.minecraft.entity.ai.RandomPositionGenerator; +import net.minecraft.util.Vec3; + +public class EntityAIWanderConditional extends EntityAIBase { + + private EntityCreature creature; + private double speed; + private Predicate condition; + private double xPosition; + private double yPosition; + private double zPosition; + + public EntityAIWanderConditional(EntityCreature creature, double speed, Predicate condition) { + this.creature = creature; + this.speed = speed; + this.condition = condition; + this.setMutexBits(1); + } + + @Override + public boolean shouldExecute() { + + if(!condition.test(creature)) return false; + + if(this.creature.getAge() >= 100) { + return false; + } else if(this.creature.getRNG().nextInt(120) != 0) { + return false; + } else { + Vec3 vec3 = RandomPositionGenerator.findRandomTarget(this.creature, 10, 7); + + if(vec3 == null) { + return false; + } else { + this.xPosition = vec3.xCoord; + this.yPosition = vec3.yCoord; + this.zPosition = vec3.zCoord; + return true; + } + } + } + + @Override + public boolean continueExecuting() { + return !this.creature.getNavigator().noPath() && condition.test(creature); + } + + @Override + public void startExecuting() { + this.creature.getNavigator().tryMoveToXYZ(this.xPosition, this.yPosition, this.zPosition, this.speed); + } +} diff --git a/src/main/java/com/hbm/render/entity/mob/RenderPigeon.java b/src/main/java/com/hbm/render/entity/mob/RenderPigeon.java index a825a0b3b..0c92d178d 100644 --- a/src/main/java/com/hbm/render/entity/mob/RenderPigeon.java +++ b/src/main/java/com/hbm/render/entity/mob/RenderPigeon.java @@ -4,11 +4,11 @@ import com.hbm.entity.mob.EntityPigeon; import com.hbm.lib.RefStrings; import net.minecraft.client.model.ModelBase; -import net.minecraft.client.renderer.entity.RenderChicken; +import net.minecraft.client.renderer.entity.RenderLiving; import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; -public class RenderPigeon extends RenderChicken { +public class RenderPigeon extends RenderLiving { public static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID, "textures/entity/pigeon.png"); From eb602d27078ab42bfd501039d4eebd26c0618d6e Mon Sep 17 00:00:00 2001 From: Bob Date: Mon, 23 Oct 2023 21:23:23 +0200 Subject: [PATCH 350/432] wretched abominations --- changelog | 27 -------- .../java/com/hbm/entity/mob/EntityPigeon.java | 63 +++++++++++++++++- .../ai/EntityAIFlutterAroundAimlessly.java | 9 --- .../hbm/render/entity/mob/RenderPigeon.java | 13 ++++ .../com/hbm/render/model/ModelPigeon.java | 1 - .../assets/hbm/textures/entity/pigeon.png | Bin 419 -> 748 bytes 6 files changed, 75 insertions(+), 38 deletions(-) diff --git a/changelog b/changelog index f42f79ddf..e69de29bb 100644 --- a/changelog +++ b/changelog @@ -1,27 +0,0 @@ -## Added -* Plastic bag - * Rarely spawns in water with similar spawn conditions as squids - * Will slowly drift into random directions - * Can be picked up, the resulting item can be used like a backpack that stores one item - -## Changed -* Updated chinese localization -* Tweaked certain assembler recipes - * Some welded plate requirements have been lowered - * The plasma heater now requires slightly more resources, but yields 4 blocks per operation instead of 1 -* The fractioning tower now requires welded plates, but the total steel cost has been reduced by roughly a third -* The cyclotron now has three automation ports on each side, corresponding with the colors of the three input pairs -* Updated the PWR sound - -## Fixed -* Fixed multi fluid ID's search not behaving correctly -* Fixed jetpack's description using unlocalized fluid names -* Fixed the CM structure wand being broken when used in most directions -* Fixed the custom machine recipe handler using the original references to the output stacks, causing the chance percentage indicator getting stuck on the actual outputs -* Fixed the desh suit's boot models not being separated from the legs -* Fixed dupe caused by defusing TNT-like blocks -* Fixed containment box being able to contain itself when using the number keys, crashing the game -* Fixed a critical game-breaking error where the custom tool's ability toggle is misspelled -* (Hopefully) fixed the vampire ability not firing the onDeath event, causing the target to not drop any items and any death releated events to not happen -* Fixed water creatures vomitting when irradiated, when they logically shouldn't -* Fixed arc welder recipe template file not being generated properly \ No newline at end of file diff --git a/src/main/java/com/hbm/entity/mob/EntityPigeon.java b/src/main/java/com/hbm/entity/mob/EntityPigeon.java index 0c6253e02..9f3ede27e 100644 --- a/src/main/java/com/hbm/entity/mob/EntityPigeon.java +++ b/src/main/java/com/hbm/entity/mob/EntityPigeon.java @@ -16,6 +16,12 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.world.World; public class EntityPigeon extends EntityCreature implements IFlyingCreature, IAnimals { + + public float fallTime; + public float dest; + public float prevDest; + public float prevFallTime; + public float offGroundTimer = 1.0F; public EntityPigeon(World world) { super(world); @@ -25,9 +31,10 @@ public class EntityPigeon extends EntityCreature implements IFlyingCreature, IAn this.tasks.addTask(1, new EntityAISwimmingConditional(this, noFlyCondition)); this.tasks.addTask(2, new EntityAIFlutterAroundAimlessly(this, this)); //this.tasks.addTask(2, new EntityAIPanicConditional(this, 1.4D, noFlyCondition)); - this.tasks.addTask(5, new EntityAIWanderConditional(this, 1.0D, noFlyCondition)); + this.tasks.addTask(5, new EntityAIWanderConditional(this, 0.2D, noFlyCondition)); this.tasks.addTask(6, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F)); this.tasks.addTask(7, new EntityAILookIdle(this)); + this.setSize(0.5F, 1.0F); } @Override @@ -62,4 +69,58 @@ public class EntityPigeon extends EntityCreature implements IFlyingCreature, IAn protected String getDeathSound() { return null; } + + @Override + protected void updateAITasks() { + super.updateAITasks(); + + if(this.getFlyingState() == this.STATE_FLYING) { + int height = worldObj.getHeightValue((int) Math.floor(posX), (int) Math.floor(posZ)); + + boolean ceil = posY - height > 10; + + this.motionY = this.getRNG().nextGaussian() * 0.05 + (ceil ? 0 : 0.04) + (this.isInWater() ? 0.2 : 0); + + if(onGround) this.motionY = Math.abs(this.motionY) + 0.1D; + + this.moveForward = 1.5F; + if(this.getRNG().nextInt(20) == 0) this.rotationYaw += this.getRNG().nextGaussian() * 30; + } else if(!this.onGround && this.motionY < 0.0D) { + this.motionY *= 0.8D; + } + } + + @Override + public void onLivingUpdate() { + super.onLivingUpdate(); + this.prevFallTime = this.fallTime; + this.prevDest = this.dest; + this.dest = (float) ((double) this.dest + (double) (this.onGround ? -1 : 4) * 0.3D); + + if(this.dest < 0.0F) { + this.dest = 0.0F; + } + + if(this.dest > 1.0F) { + this.dest = 1.0F; + } + + if(!this.onGround && this.offGroundTimer < 1.0F) { + this.offGroundTimer = 1.0F; + } + + this.offGroundTimer = (float) ((double) this.offGroundTimer * 0.9D); + + if(!this.onGround && this.motionY < 0.0D) { + this.motionY *= 0.6D; + } + + this.fallTime += this.offGroundTimer * 2.0F; + } + + @Override public boolean doesEntityNotTriggerPressurePlate() { return true; } + @Override protected boolean canTriggerWalking() { return false; } + + @Override protected void fall(float p_70069_1_) { } + @Override protected void updateFallState(double p_70064_1_, boolean p_70064_3_) { } } diff --git a/src/main/java/com/hbm/entity/mob/ai/EntityAIFlutterAroundAimlessly.java b/src/main/java/com/hbm/entity/mob/ai/EntityAIFlutterAroundAimlessly.java index 98556f3aa..d72bc7d4c 100644 --- a/src/main/java/com/hbm/entity/mob/ai/EntityAIFlutterAroundAimlessly.java +++ b/src/main/java/com/hbm/entity/mob/ai/EntityAIFlutterAroundAimlessly.java @@ -31,14 +31,5 @@ public class EntityAIFlutterAroundAimlessly extends EntityAIBase { /*this.living.motionX = this.living.getRNG().nextGaussian() * 0.1; this.living.motionY = this.living.getRNG().nextGaussian() * 0.1; this.living.motionZ = this.living.getRNG().nextGaussian() * 0.1;*/ - - this.living.motionX = 0; - this.living.motionY = this.living.getRNG().nextGaussian() * 0.1; - this.living.motionZ = 0; - - if(living.onGround) this.living.motionY = Math.abs(this.living.motionY) + 0.1D; - - this.living.moveForward = 0.5F; - this.living.rotationYaw += this.living.getRNG().nextGaussian() * 0.1; } } diff --git a/src/main/java/com/hbm/render/entity/mob/RenderPigeon.java b/src/main/java/com/hbm/render/entity/mob/RenderPigeon.java index 0c92d178d..8acc1a550 100644 --- a/src/main/java/com/hbm/render/entity/mob/RenderPigeon.java +++ b/src/main/java/com/hbm/render/entity/mob/RenderPigeon.java @@ -6,6 +6,8 @@ import com.hbm.lib.RefStrings; import net.minecraft.client.model.ModelBase; import net.minecraft.client.renderer.entity.RenderLiving; import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; import net.minecraft.util.ResourceLocation; public class RenderPigeon extends RenderLiving { @@ -23,4 +25,15 @@ public class RenderPigeon extends RenderLiving { protected ResourceLocation getEntityTexture(EntityPigeon entity) { return texture; } + + protected float handleRotationFloat(EntityPigeon entity, float interp) { + float f1 = entity.prevFallTime + (entity.fallTime - entity.prevFallTime) * interp; + float f2 = entity.prevDest + (entity.dest - entity.prevDest) * interp; + return (MathHelper.sin(f1) + 1.0F) * f2; + } + + @Override + protected float handleRotationFloat(EntityLivingBase entity, float interp) { + return this.handleRotationFloat((EntityPigeon) entity, interp); + } } diff --git a/src/main/java/com/hbm/render/model/ModelPigeon.java b/src/main/java/com/hbm/render/model/ModelPigeon.java index 0f652efa2..f1e9f70e4 100644 --- a/src/main/java/com/hbm/render/model/ModelPigeon.java +++ b/src/main/java/com/hbm/render/model/ModelPigeon.java @@ -67,7 +67,6 @@ public class ModelPigeon extends ModelBase { } public void render(Entity entity, float f0, float f1, float f2, float f3, float f4, float scale) { - //this.initModel(); this.setRotationAngles(f0, f1, f2, f3, f4, scale, entity); this.head.render(scale); this.beak.render(scale); diff --git a/src/main/resources/assets/hbm/textures/entity/pigeon.png b/src/main/resources/assets/hbm/textures/entity/pigeon.png index b13a2ea56a9f0861cbf3acb4577b0cdbcfa48068..020c3b9b9e9d618abf0df504186112b6e4ee8d62 100644 GIT binary patch delta 709 zcmV;$0y_Pp1MCHmGk*f3Nkl73QgA#i-VTp5SmtN zmvoRUb(Idq?t)OT5Gc4f1SeO!q#c?iiIzwe1^+A(I_nTGcefHG5{!63SH;9O{m|6#kU0jz~SL{0KokGk|RZC=2HLURtk>f*k#P_ z0!b2?B#A6@HwyqrB&Lx_Ohb}HW{e5|xWE09Y}RXJBbH?4l{M422FHcLabdgaIL3Aa zXgh9vb_ySW@qYjiGUmLI^gVrOpPYU^%fG-0fTh$eS8_He2aKue5wynbtYSSg`@g@Q znFY7Aiq1L4<`z6Z4xS%(O$CQ6Pm~FQzOTgkrC2Etzl)u2*uE0GXpFoAdP;$d zl=DVRXKQ+4x$D7S-QTl1kB#en{dZ>wQr8(c@0S~EHg?4P(e7?cv+UA$TAc~Ha?A2_xC_)6jX?sj927eP-M{<1q1a? raH9|+igIe?fbaHMjC>t1@(%b5zdZorc)&!+00000NkvXXu0mjfzr{>f delta 377 zcmV-<0fzqU1)~FyGk*bENklq~sGELu!vO$0r;L|<@eghZ)Xy3YV^e*sfo<6#kzr@~%U4OnjeTrY^O)?=fDg&l8 zKkDz~Mp`R-f|Y)+{r`gE8DM5JAY1@5HNE9HLp%ZNaP<@4ovK6e45$gv4nP}|y4rAj zS3gpG{Lx-l=MP|ZAnZ|3f>}`$pdElVY67$a(8lb)!CP@a{3Pf=Xu50Uzh`x*3`o`a z9;tf&n6~q|d2+Cq1(pky0l6Re3X|0GUV$FPGoU6wI{oNW9m6^V=?ZPq_IYv^Mb Date: Thu, 26 Oct 2023 18:20:15 +0200 Subject: [PATCH 351/432] fat pigeons --- .../java/com/hbm/entity/EntityMappings.java | 2 +- .../java/com/hbm/entity/mob/EntityPigeon.java | 70 ++++++++++++++++- .../hbm/entity/mob/ai/EntityAIEatBread.java | 71 ++++++++++++++++++ .../ai/EntityAIFlutterAroundAimlessly.java | 35 --------- .../mob/ai/EntityAIMaskmanCasualApproach.java | 1 - .../com/hbm/render/model/ModelPigeon.java | 38 +++++++--- src/main/resources/assets/hbm/lang/de_DE.lang | 1 + src/main/resources/assets/hbm/lang/en_US.lang | 1 + .../assets/hbm/textures/entity/pigeon.png | Bin 748 -> 771 bytes 9 files changed, 170 insertions(+), 49 deletions(-) create mode 100644 src/main/java/com/hbm/entity/mob/ai/EntityAIEatBread.java delete mode 100644 src/main/java/com/hbm/entity/mob/ai/EntityAIFlutterAroundAimlessly.java diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index 0b88e2b9b..2323d4dd6 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -239,7 +239,7 @@ public class EntityMappings { addMob(EntityMaskMan.class, "entity_mob_mask_man", 0x818572, 0xC7C1B7); addMob(EntityDuck.class, "entity_fucc_a_ducc", 0xd0d0d0, 0xFFBF00); addMob(EntityQuackos.class, "entity_elder_one", 0xd0d0d0, 0xFFBF00); - addMob(EntityPigeon.class, "entity_pigeon", 0xd0d0d0, 0xFFBF00); + addMob(EntityPigeon.class, "entity_pigeon", 0xC8C9CD, 0x858894); addMob(EntityFBI.class, "entity_ntm_fbi", 0x008000, 0x404040); addMob(EntityFBIDrone.class, "entity_ntm_fbi_drone", 0x008000, 0x404040); addMob(EntityRADBeast.class, "entity_ntm_radiation_blaze", 0x303030, 0x008000); diff --git a/src/main/java/com/hbm/entity/mob/EntityPigeon.java b/src/main/java/com/hbm/entity/mob/EntityPigeon.java index 9f3ede27e..ec93d403c 100644 --- a/src/main/java/com/hbm/entity/mob/EntityPigeon.java +++ b/src/main/java/com/hbm/entity/mob/EntityPigeon.java @@ -2,17 +2,24 @@ package com.hbm.entity.mob; import java.util.function.Predicate; -import com.hbm.entity.mob.ai.EntityAIFlutterAroundAimlessly; +import com.hbm.entity.mob.ai.EntityAIEatBread; import com.hbm.entity.mob.ai.EntityAIStartFlying; import com.hbm.entity.mob.ai.EntityAIStopFlying; import com.hbm.entity.mob.ai.EntityAISwimmingConditional; import com.hbm.entity.mob.ai.EntityAIWanderConditional; +import net.minecraft.block.Block; import net.minecraft.entity.EntityCreature; import net.minecraft.entity.ai.EntityAILookIdle; import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.passive.IAnimals; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.DamageSource; +import net.minecraft.util.Vec3; import net.minecraft.world.World; public class EntityPigeon extends EntityCreature implements IFlyingCreature, IAnimals { @@ -29,14 +36,37 @@ public class EntityPigeon extends EntityCreature implements IFlyingCreature, IAn this.tasks.addTask(0, new EntityAIStartFlying(this, this)); this.tasks.addTask(0, new EntityAIStopFlying(this, this)); this.tasks.addTask(1, new EntityAISwimmingConditional(this, noFlyCondition)); - this.tasks.addTask(2, new EntityAIFlutterAroundAimlessly(this, this)); - //this.tasks.addTask(2, new EntityAIPanicConditional(this, 1.4D, noFlyCondition)); + this.tasks.addTask(2, new EntityAIEatBread(this, 0.4D)); this.tasks.addTask(5, new EntityAIWanderConditional(this, 0.2D, noFlyCondition)); this.tasks.addTask(6, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F)); this.tasks.addTask(7, new EntityAILookIdle(this)); this.setSize(0.5F, 1.0F); } + @Override + public boolean attackEntityFrom(DamageSource source, float amount) { + + if(amount >= this.getMaxHealth() * 2 && !worldObj.isRemote) { + this.setDead(); + + for(int i = 0; i < 10; i++) { + Vec3 vec = Vec3.createVectorHelper(rand.nextGaussian(), rand.nextGaussian(), rand.nextGaussian()).normalize(); + + EntityItem feather = new EntityItem(worldObj); + feather.setEntityItemStack(new ItemStack(Items.feather)); + feather.setPosition(posX + vec.xCoord, posY + height / 2D + vec.yCoord, posZ + vec.zCoord); + feather.motionX = vec.xCoord * 0.5; + feather.motionY = vec.yCoord * 0.5; + feather.motionZ = vec.zCoord * 0.5; + worldObj.spawnEntityInWorld(feather); + } + + return true; + } + + return super.attackEntityFrom(source, amount); + } + @Override public boolean isAIEnabled() { return true; @@ -46,6 +76,32 @@ public class EntityPigeon extends EntityCreature implements IFlyingCreature, IAn protected void entityInit() { super.entityInit(); this.dataWatcher.addObject(12, Byte.valueOf((byte) 0)); + this.dataWatcher.addObject(13, Byte.valueOf((byte) 0)); + } + + @Override + protected Item getDropItem() { + return Items.feather; + } + + @Override + protected void func_145780_a(int x, int y, int z, Block block) { + this.playSound("mob.chicken.step", 0.15F, 1.0F); + } + + @Override + protected void dropFewItems(boolean byPlayer, int looting) { + int j = this.rand.nextInt(3) + this.rand.nextInt(1 + looting); + + for(int k = 0; k < j; ++k) { + this.dropItem(Items.feather, 1); + } + + if(this.isBurning()) { + this.dropItem(Items.cooked_chicken, this.isFat() ? 3 : 1); + } else { + this.dropItem(Items.chicken, this.isFat() ? 3 : 1); + } } @Override @@ -58,6 +114,14 @@ public class EntityPigeon extends EntityCreature implements IFlyingCreature, IAn this.dataWatcher.updateObject(12, (byte) state); } + public boolean isFat() { + return this.dataWatcher.getWatchableObjectByte(13) == 1; + } + + public void setFat(boolean fat) { + this.dataWatcher.updateObject(13, (byte) (fat ? 1 : 0)); + } + protected String getLivingSound() { return null; } diff --git a/src/main/java/com/hbm/entity/mob/ai/EntityAIEatBread.java b/src/main/java/com/hbm/entity/mob/ai/EntityAIEatBread.java new file mode 100644 index 000000000..491179711 --- /dev/null +++ b/src/main/java/com/hbm/entity/mob/ai/EntityAIEatBread.java @@ -0,0 +1,71 @@ +package com.hbm.entity.mob.ai; + +import java.util.List; + +import com.hbm.entity.mob.EntityPigeon; + +import net.minecraft.entity.ai.EntityAIBase; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; + +public class EntityAIEatBread extends EntityAIBase { + + private EntityPigeon pigeon; + private double speed; + private EntityItem item; + + public EntityAIEatBread(EntityPigeon pigeon, double speed) { + this.pigeon = pigeon; + this.speed = speed; + this.setMutexBits(3); + } + + @Override + public boolean shouldExecute() { + if(pigeon.isFat() || pigeon.getFlyingState() != pigeon.STATE_WALKING) return false; + + List items = pigeon.worldObj.getEntitiesWithinAABB(EntityItem.class, this.pigeon.boundingBox.expand(10, 10, 10)); + + for(EntityItem item : items) { + if(item.getEntityItem().getItem() == Items.bread) { + this.item = item; + return true; + } + } + + return false; + } + + @Override + public boolean continueExecuting() { + return this.item != null && !this.item.isDead && this.shouldExecute(); + } + + @Override + public void updateTask() { + this.pigeon.getLookHelper().setLookPositionWithEntity(this.item, 30.0F, (float) this.pigeon.getVerticalFaceSpeed()); + + if(this.pigeon.getDistanceToEntity(this.item) > 1) { + this.pigeon.getNavigator().tryMoveToEntityLiving(this.item, this.speed); + } else { + + if(this.pigeon.getRNG().nextInt(3) == 0) { + ItemStack stack = this.item.getEntityItem(); + + if(stack.stackSize > 1) { + stack.stackSize--; + EntityItem newItem = new EntityItem(this.pigeon.worldObj); + newItem.setPosition(this.item.posX, this.item.posY, this.item.posZ); + newItem.setEntityItemStack(stack); + this.pigeon.worldObj.spawnEntityInWorld(newItem); + } + + this.item.setDead(); + } + this.pigeon.setFat(true); + this.pigeon.playSound("random.eat", 0.5F + 0.5F * this.pigeon.getRNG().nextInt(2), (this.pigeon.getRNG().nextFloat() - this.pigeon.getRNG().nextFloat()) * 0.2F + 1.0F); + } + } + +} diff --git a/src/main/java/com/hbm/entity/mob/ai/EntityAIFlutterAroundAimlessly.java b/src/main/java/com/hbm/entity/mob/ai/EntityAIFlutterAroundAimlessly.java deleted file mode 100644 index d72bc7d4c..000000000 --- a/src/main/java/com/hbm/entity/mob/ai/EntityAIFlutterAroundAimlessly.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.hbm.entity.mob.ai; - -import com.hbm.entity.mob.IFlyingCreature; - -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.ai.EntityAIBase; - -public class EntityAIFlutterAroundAimlessly extends EntityAIBase { - - private EntityLivingBase living; - private IFlyingCreature flying; - - public EntityAIFlutterAroundAimlessly(EntityLivingBase living, IFlyingCreature flying) { - this.living = living; - this.flying = flying; - } - - @Override - public boolean shouldExecute() { - return this.flying.getFlyingState() == this.flying.STATE_FLYING; - } - - @Override - public boolean continueExecuting() { - return shouldExecute(); - } - - @Override - public void startExecuting() { - - /*this.living.motionX = this.living.getRNG().nextGaussian() * 0.1; - this.living.motionY = this.living.getRNG().nextGaussian() * 0.1; - this.living.motionZ = this.living.getRNG().nextGaussian() * 0.1;*/ - } -} diff --git a/src/main/java/com/hbm/entity/mob/ai/EntityAIMaskmanCasualApproach.java b/src/main/java/com/hbm/entity/mob/ai/EntityAIMaskmanCasualApproach.java index 058f9211c..06ff8e598 100644 --- a/src/main/java/com/hbm/entity/mob/ai/EntityAIMaskmanCasualApproach.java +++ b/src/main/java/com/hbm/entity/mob/ai/EntityAIMaskmanCasualApproach.java @@ -93,7 +93,6 @@ public class EntityAIMaskmanCasualApproach extends EntityAIBase { EntityLivingBase entitylivingbase = this.attacker.getAttackTarget(); this.attacker.getLookHelper().setLookPositionWithEntity(entitylivingbase, 30.0F, 30.0F); double d0 = this.attacker.getDistanceSq(entitylivingbase.posX, entitylivingbase.boundingBox.minY, entitylivingbase.posZ); - double d1 = (double) (this.attacker.width * 2.0F * this.attacker.width * 2.0F + entitylivingbase.width); this.pathTimer--; diff --git a/src/main/java/com/hbm/render/model/ModelPigeon.java b/src/main/java/com/hbm/render/model/ModelPigeon.java index f1e9f70e4..14c4dc3ac 100644 --- a/src/main/java/com/hbm/render/model/ModelPigeon.java +++ b/src/main/java/com/hbm/render/model/ModelPigeon.java @@ -1,5 +1,7 @@ package com.hbm.render.model; +import com.hbm.entity.mob.EntityPigeon; + import net.minecraft.client.model.ModelBase; import net.minecraft.client.model.ModelRenderer; import net.minecraft.entity.Entity; @@ -24,14 +26,12 @@ public class ModelPigeon extends ModelBase { private void initModel() { - boolean fat = false; - this.head = new ModelRenderer(this, 0, 0); this.head.addBox(-2F, -6F, -2F, 4, 6, 4); - this.head.setRotationPoint(0F, 16F, -2F - (fat ? 2F : 0F)); + this.head.setRotationPoint(0F, 16F, -2F); this.beak = new ModelRenderer(this, 14, 0); this.beak.addBox(-1F, -4F, -4F, 2, 2, 2); - this.beak.setRotationPoint(0F, 16F, -2F - (fat ? 2F : 0F)); + this.beak.setRotationPoint(0F, 16F, -2F); this.body = new ModelRenderer(this, 0, 10); this.body.addBox(-3F, -3F, -4F, 6, 6, 8, 0); @@ -41,10 +41,10 @@ public class ModelPigeon extends ModelBase { this.bodyFat.setRotationPoint(0F, 17F, 0F); this.ass = new ModelRenderer(this, 0, 24); this.ass.addBox(-2F, -2F, -2F, 4, 4, 4); - this.ass.setRotationPoint(0F, 20F, 4F + (fat ? 1F : 0F)); + this.ass.setRotationPoint(0F, 20F, 4F); this.feathers = new ModelRenderer(this, 16, 24); this.feathers.addBox(-1F, -0.5F, -2F, 2, 1, 4); - this.feathers.setRotationPoint(0F, 21.5F, 7.5F + (fat ? 1F : 0F)); + this.feathers.setRotationPoint(0F, 21.5F, 7.5F); this.leftLeg = new ModelRenderer(this, 20, 0); this.leftLeg.addBox(-1F, 0F, 0F, 2, 4, 2); @@ -55,10 +55,10 @@ public class ModelPigeon extends ModelBase { this.leftWing = new ModelRenderer(this, 28, 0); this.leftWing.addBox(0F, 0F, -3F, 1, 4, 6); - this.leftWing.setRotationPoint(3F + (fat ? 1F : 0F), -2F, 0F); + this.leftWing.setRotationPoint(3F, -2F, 0F); this.rightWing = new ModelRenderer(this, 28, 10); this.rightWing.addBox(-1F, 0F, -3F, 1, 4, 6); - this.rightWing.setRotationPoint(-3F - (fat ? 1F : 0F), -2F, 0F); + this.rightWing.setRotationPoint(-3F, -2F, 0F); this.body.addChild(this.leftWing); this.body.addChild(this.rightWing); @@ -70,7 +70,11 @@ public class ModelPigeon extends ModelBase { this.setRotationAngles(f0, f1, f2, f3, f4, scale, entity); this.head.render(scale); this.beak.render(scale); - this.body.render(scale); + if(((EntityPigeon) entity).isFat()) { + this.bodyFat.render(scale); + } else { + this.body.render(scale); + } this.rightLeg.render(scale); this.leftLeg.render(scale); this.ass.render(scale); @@ -86,5 +90,21 @@ public class ModelPigeon extends ModelBase { this.leftLeg.rotateAngleX = MathHelper.cos(walkLoop * 0.6662F + (float) Math.PI) * 1.4F * legAmplitude; this.rightWing.rotateAngleZ = armSwing; this.leftWing.rotateAngleZ = -armSwing; + + if(((EntityPigeon) entity).isFat()) { + this.head.rotationPointZ = -4F; + this.beak.rotationPointZ = -4F; + this.ass.rotationPointZ = 5F; + this.feathers.rotationPointZ = 8.5F; + this.leftWing.rotationPointX = 4F; + this.rightWing.rotationPointX = -4F; + } else { + this.head.rotationPointZ = -2F; + this.beak.rotationPointZ = -2F; + this.ass.rotationPointZ = 4F; + this.feathers.rotationPointZ = 7.5F; + this.leftWing.rotationPointX = 3F; + this.rightWing.rotationPointX = -3F; + } } } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index a3ef04578..965112337 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -537,6 +537,7 @@ entity.entity_mob_nuclear_creeper.name=Nuklearer Creeper entity.entity_mob_phosgene_creeper.name=Phosgen-Creeper entity.entity_mob_tainted_creeper.name=Verseuchter Creeper entity.entity_mob_volatile_creeper.name=Instabiler Creeper +entity.entity_pigeon.name=Taube entity.entity_plastic_bag.name=Plastiktüte entity.entity_taint_crab.name=Verseuchte Krabbe entity.entity_tesla_crab.name=Tesla-Krabbe diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 7dfece34c..3a45eb795 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1050,6 +1050,7 @@ entity.entity_mob_nuclear_creeper.name=Nuclear Creeper entity.entity_mob_phosgene_creeper.name=Phosgene Creeper entity.entity_mob_tainted_creeper.name=Tainted Creeper entity.entity_mob_volatile_creeper.name=Volatile Creeper +entity.entity_pigeon.name=Pigeon entity.entity_plastic_bag.name=Plastic Bag entity.entity_taint_crab.name=Taint Crab entity.entity_tesla_crab.name=Tesla Crab diff --git a/src/main/resources/assets/hbm/textures/entity/pigeon.png b/src/main/resources/assets/hbm/textures/entity/pigeon.png index 020c3b9b9e9d618abf0df504186112b6e4ee8d62..94ccc073f6a5fef04177fdd1c6f8d6f1994aaf79 100644 GIT binary patch delta 731 zcmV<10wn$H1%n2VG=I8DL_t(&f#q0DXcIvc{#KVNXk&7ju`!4C<|PL&77?i}l?Y0T zLPS$6cq$Yw@t_fR zH|b`x*`GGwDU*5g_PuZ3+xd1lXpmd_!2Tc4r5>y1Zzsk%0Dm|dKCZG`7IK`{7XYN= zBkaxVMNH&{s`C{@BQXX5sZ4T9yJmxLbYbdw5&&@P?gIe8vXHYBNOy0~AHSKTB|m1d z%j^P45}724EP5&i02mt`#@OgEBuQl2ssMn~v-i1)yugiz!Ymyh(al%j_xs@Y`^<)8 z8Kx_svg6v{R(}z2A$b7c7vH{D?aJonhRPs%_CnQ#=gwaO0Gv2>xG6pB8Ue-P*M9?= zxrWQr0`APb1OQwgJc&m`VaSntwg=MIw%hh+R0B6X`?O|X)`Ow=8B-Myjl@`YZx5DU zyu!sRg9!M2s^r(#H}L&O2~Qr*pkfEucRKLjieK#TyMJxKmr5&c$KWdXa*GpS*jI_k zDO2x=n>VgD)T^FVf?b^*@@Fk^oj$%8QpYk==RCd%WsOvs}Yu~3Dv+_?{f^h>4Ux_t} zR3^z)#Ey~ZaY7WCz7pGMXn6waYJr{9^IGW6*1rCMEf4YdOGA;c-l-y}W0+ttwWI-unV_zgqU>zJhgvabLD N002ovPDHLkV1i2!UdR9d delta 708 zcmV;#0z3VK2J8ipG=HN>L_t(&f#sM#XcJK!$G@)x6vXsyd1qn@P1g{MgO=hDnpSI< zbdW4{l@7)3f>5v!D7ZKTCs(_q9hxPHmPi!^|11(Z>kuz@w&e;o)}x!2JA@BSmKBQvc*u3XbI1Wz6mZ zNfMbPi7azB3jjzYrjbZYLy|;hj0ym_zx|SI)@x)VmSp9XHPg5T$A!UhVY})$#&!f~ zJ8pb-3Lk*+0DllN=Dd;gJ$-1OoPIvbzrYEArPM7~ayBRjjH&7ow8rhMVm&kazrUWD z1-G+`&N;^B7Cb)=o*#EjUayc>uXnpffEAA(KCl%5nZ+!dnM;A=!r-;mVR*B7gl0=c zv!$ZdQt|oS0RZn#hfrHpy^uRJgxW5K@h~#-5n!2Dxqq#^t#`!JCy)Ee)q$-9G+1X2Y8JviW)IVu!QSXF|h za+Ud730h6~wp2a6)n2Jw878{Vo29$<`W5z6vzXaeiA)t|K5TX$X(FkrP zZ?GRf>wo92(ROrD=;=OyT)m>}v-WRKlnH{quf+PLSSb*{i=A%Rz7o4=jJyMSN`Z@% z^F~Z(YkFb1>%m{$-?KW8jq82=cV`z<1W+nC5=d!O*H;wLkvy+4J3w&g0Aa`-AUJlw zb^RB$Z;s@74M{I7GfD+eK{(fVS(c&5G89ENjXhQO_dsbBREV04SL9z%WYHJ}1NBaD qqYxsBa%$v&@Ag@Yd>t_I4)_bdJpkf(z(mLZ0000r6NR From 682703eec079a3d82d299b37cde928f25d24c11c Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 27 Oct 2023 14:15:46 +0200 Subject: [PATCH 352/432] tweaks --- changelog | 14 ++++++++++ src/main/java/api/hbm/energy/PowerNet.java | 5 ++++ src/main/java/api/hbm/fluid/PipeNet.java | 5 ++++ .../java/com/hbm/config/GeneralConfig.java | 2 ++ .../java/com/hbm/crafting/ToolRecipes.java | 28 +++++++++---------- .../inventory/material/MatDistribution.java | 4 +-- .../hbm/inventory/recipes/CokerRecipes.java | 2 +- .../com/hbm/items/special/ItemBedrockOre.java | 4 ++- src/main/java/com/hbm/lib/HbmWorldGen.java | 8 +++++- .../com/hbm/world/feature/BedrockOre.java | 11 +++++++- src/main/resources/assets/hbm/lang/de_DE.lang | 2 ++ src/main/resources/assets/hbm/lang/en_US.lang | 2 ++ 12 files changed, 67 insertions(+), 20 deletions(-) diff --git a/changelog b/changelog index e69de29bb..043b6d8a8 100644 --- a/changelog +++ b/changelog @@ -0,0 +1,14 @@ +## Added +* Pigeons + +## Changed +* Changed many tool recipes that exclusively used polymer to now also accept bakelite +* Reduced the value of hematite and malachite blocks in the crucible down to one ingot + * Hematite veins are still giant, so a single vein will still yield many stacks of iron + * Malachite's rebalance was done to be consistent with the bedrock ores which now exist. Malachite veins are now larger to compensate. +* 1000mB of red mud now makes one ingot of iron in the coker +* Doubled coal bedrock ore's coal output to 8 coal +* A new config option now replaces the iron and copper bedrock ores in 528 mode with hematite and malachite + +## Fixed +* Pipe and power networks now force the chunk to be saved on transfer, ensuring that rapid changes in the fluid/energy level aren't lost when the tile entity is unloaded \ No newline at end of file diff --git a/src/main/java/api/hbm/energy/PowerNet.java b/src/main/java/api/hbm/energy/PowerNet.java index a2165b49b..83c84d33a 100644 --- a/src/main/java/api/hbm/energy/PowerNet.java +++ b/src/main/java/api/hbm/energy/PowerNet.java @@ -198,6 +198,11 @@ public class PowerNet implements IPowerNet { long given = (long) Math.floor(fraction * power); totalGiven += (given - con.transferPower(given)); + + if(con instanceof TileEntity) { + TileEntity tile = (TileEntity) con; + tile.getWorldObj().markTileEntityChunkModified(tile.xCoord, tile.yCoord, tile.zCoord, tile); + } } power -= totalGiven; diff --git a/src/main/java/api/hbm/fluid/PipeNet.java b/src/main/java/api/hbm/fluid/PipeNet.java index 412af45c5..cab1fd29f 100644 --- a/src/main/java/api/hbm/fluid/PipeNet.java +++ b/src/main/java/api/hbm/fluid/PipeNet.java @@ -132,6 +132,11 @@ public class PipeNet implements IPipeNet { if(given > 0) { totalGiven += (given - con.transferFluid(type, pressure, given)); + + if(con instanceof TileEntity) { + TileEntity tile = (TileEntity) con; + tile.getWorldObj().markTileEntityChunkModified(tile.xCoord, tile.yCoord, tile.zCoord, tile); + } if(trackingInstances != null) { for(int j = 0; j < trackingInstances.size(); j++) { diff --git a/src/main/java/com/hbm/config/GeneralConfig.java b/src/main/java/com/hbm/config/GeneralConfig.java index 5b279421c..0c39c8180 100644 --- a/src/main/java/com/hbm/config/GeneralConfig.java +++ b/src/main/java/com/hbm/config/GeneralConfig.java @@ -42,6 +42,7 @@ public class GeneralConfig { public static boolean enable528BedrockDeposit = true; public static boolean enable528BedrockSpawn = false; public static boolean enable528BosniaSimulator = true; + public static boolean enable528BedrockReplacement = true; public static int coltanRate = 2; public static int bedrockRate = 50; @@ -108,6 +109,7 @@ public class GeneralConfig { enable528BedrockDeposit = CommonConfig.createConfigBool(config, CATEGORY_528, "X528_enableBedrockDepsoit", "Enables bedrock coltan ores in the coltan deposit. These ores can be drilled to extract infinite coltan, albeit slowly.", true); enable528BedrockSpawn = CommonConfig.createConfigBool(config, CATEGORY_528, "X528_enableBedrockSpawning", "Enables the bedrock coltan ores as a rare spawn. These will be rarely found anywhere in the world.", false); enable528BosniaSimulator = CommonConfig.createConfigBool(config, CATEGORY_528, "X528_enableBosniaSimulator", "Enables anti tank mines spawning all over the world.", true); + enable528BedrockReplacement = CommonConfig.createConfigBool(config, CATEGORY_528, "X528_enable528BedrockReplacement", "Replaces certain bedrock ores with ones that require additional processing.", true); coltanRate = CommonConfig.createConfigInt(config, CATEGORY_528, "X528_oreColtanFrequency", "Determines how many coltan ore veins are to be expected in a chunk. These values do not affect the frequency in deposits, and only apply if random coltan spanwing is enabled.", 2); bedrockRate = CommonConfig.createConfigInt(config, CATEGORY_528, "X528_bedrockColtanFrequency", "Determines how often (1 in X) bedrock coltan ores spawn. Applies for both the bedrock ores in the coltan deposit (if applicable) and the random bedrock ores (if applicable)", 50); diff --git a/src/main/java/com/hbm/crafting/ToolRecipes.java b/src/main/java/com/hbm/crafting/ToolRecipes.java index 9f46fefc4..873b5605d 100644 --- a/src/main/java/com/hbm/crafting/ToolRecipes.java +++ b/src/main/java/com/hbm/crafting/ToolRecipes.java @@ -61,12 +61,12 @@ public class ToolRecipes { addShovel( DESH.ingot(), ModItems.desh_shovel); addHoe( DESH.ingot(), ModItems.desh_hoe); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.elec_sword, 1), new Object[] { "RPR", "RPR", " B ", 'P', POLYMER.ingot(), 'D', DURA.ingot(), 'R', ModItems.bolt_dura_steel, 'M', ModItems.motor, 'B', ModItems.battery_lithium }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.elec_pickaxe, 1), new Object[] { "RDM", " PB", " P ", 'P', POLYMER.ingot(), 'D', DURA.ingot(), 'R', ModItems.bolt_dura_steel, 'M', ModItems.motor, 'B', ModItems.battery_lithium }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.elec_axe, 1), new Object[] { " DP", "RRM", " PB", 'P', POLYMER.ingot(), 'D', DURA.ingot(), 'R', ModItems.bolt_dura_steel, 'M', ModItems.motor, 'B', ModItems.battery_lithium }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.elec_shovel, 1), new Object[] { " P", "RRM", " B", 'P', POLYMER.ingot(), 'D', DURA.ingot(), 'R', ModItems.bolt_dura_steel, 'M', ModItems.motor, 'B', ModItems.battery_lithium }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.elec_sword, 1), new Object[] { "RPR", "RPR", " B ", 'P', ANY_PLASTIC.ingot(), 'D', DURA.ingot(), 'R', ModItems.bolt_dura_steel, 'M', ModItems.motor, 'B', ModItems.battery_lithium }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.elec_pickaxe, 1), new Object[] { "RDM", " PB", " P ", 'P', ANY_PLASTIC.ingot(), 'D', DURA.ingot(), 'R', ModItems.bolt_dura_steel, 'M', ModItems.motor, 'B', ModItems.battery_lithium }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.elec_axe, 1), new Object[] { " DP", "RRM", " PB", 'P', ANY_PLASTIC.ingot(), 'D', DURA.ingot(), 'R', ModItems.bolt_dura_steel, 'M', ModItems.motor, 'B', ModItems.battery_lithium }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.elec_shovel, 1), new Object[] { " P", "RRM", " B", 'P', ANY_PLASTIC.ingot(), 'D', DURA.ingot(), 'R', ModItems.bolt_dura_steel, 'M', ModItems.motor, 'B', ModItems.battery_lithium }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.centri_stick, 1), new Object[] { ModItems.centrifuge_element, ModItems.energy_core, KEY_STICK }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.smashing_hammer, 1), new Object[] { "STS", "SPS", " P ", 'S', STEEL.block(), 'T', W.block(), 'P', POLYMER.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.smashing_hammer, 1), new Object[] { "STS", "SPS", " P ", 'S', STEEL.block(), 'T', W.block(), 'P', ANY_PLASTIC.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.meteorite_sword, 1), new Object[] { " B", "GB ", "SG ", 'B', ModItems.blade_meteorite, 'G', GOLD.plate(), 'S', KEY_STICK }); //Drax @@ -109,18 +109,18 @@ public class ToolRecipes { //Utility CraftingManager.addRecipeAuto(new ItemStack(ModItems.designator, 1), new Object[] { " A", "#B#", "#B#", '#', IRON.plate(), 'A', STEEL.plate(), 'B', ModItems.circuit_red_copper }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.designator_range, 1), new Object[] { "RRD", "PIC", " P", 'P', STEEL.plate(), 'R', Items.redstone, 'C', ModItems.circuit_gold, 'D', ModItems.designator, 'I', STEEL.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.designator_manual, 1), new Object[] { " A", "#C#", "#B#", '#', POLYMER.ingot(), 'A', PB.plate(), 'B', ModItems.circuit_gold, 'C', ModItems.designator }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.designator_manual, 1), new Object[] { " A", "#C#", "#B#", '#', ANY_PLASTIC.ingot(), 'A', PB.plate(), 'B', ModItems.circuit_gold, 'C', ModItems.designator }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.designator_arty_range, 1), new Object[] { "M", "C", "P", 'M', ModItems.magnetron, 'C', ModItems.circuit_gold, 'P', ANY_PLASTIC.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.linker, 1), new Object[] { "I I", "ICI", "GGG", 'I', IRON.plate(), 'G', GOLD.plate(), 'C', ModItems.circuit_gold }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.oil_detector, 1), new Object[] { "W I", "WCI", "PPP", 'W', ModItems.wire_gold, 'I', CU.ingot(), 'C', ModItems.circuit_red_copper, 'P', STEEL.plate528() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.turret_chip, 1), new Object[] { "WWW", "CPC", "WWW", 'W', ModItems.wire_gold, 'P', POLYMER.ingot(), 'C', ModItems.circuit_gold, }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.survey_scanner, 1), new Object[] { "SWS", " G ", "PCP", 'W', ModItems.wire_gold, 'P', POLYMER.ingot(), 'C', ModItems.circuit_gold, 'S', STEEL.plate528(), 'G', GOLD.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.turret_chip, 1), new Object[] { "WWW", "CPC", "WWW", 'W', ModItems.wire_gold, 'P', ANY_PLASTIC.ingot(), 'C', ModItems.circuit_gold, }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.survey_scanner, 1), new Object[] { "SWS", " G ", "PCP", 'W', ModItems.wire_gold, 'P', ANY_PLASTIC.ingot(), 'C', ModItems.circuit_gold, 'S', STEEL.plate528(), 'G', GOLD.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.geiger_counter, 1), new Object[] { "GPP", "WCS", "WBB", 'W', ModItems.wire_gold, 'P', ModItems.plate_polymer, 'C', ModItems.circuit_red_copper, 'G', GOLD.ingot(), 'S', STEEL.plate528(), 'B', ModItems.ingot_beryllium }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.dosimeter, 1), new Object[] { "WGW", "WCW", "WBW", 'W', KEY_PLANKS, 'G', KEY_ANYPANE, 'C', ModItems.circuit_aluminium, 'B', BE.ingot() }); CraftingManager.addShapelessAuto(new ItemStack(ModBlocks.geiger), new Object[] { ModItems.geiger_counter }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.digamma_diagnostic), new Object[] { ModItems.geiger_counter, PO210.billet(), ASBESTOS.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.pollution_detector, 1), new Object[] { "SFS", "SCS", " S ", 'S', STEEL.plate(), 'F', ModItems.filter_coal, 'C', ModItems.circuit_copper }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.defuser, 1), new Object[] { " PS", "P P", " P ", 'P', POLYMER.ingot(), 'S', STEEL.plate() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.defuser, 1), new Object[] { " PS", "P P", " P ", 'P', ANY_PLASTIC.ingot(), 'S', STEEL.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.coltan_tool, 1), new Object[] { "ACA", "CXC", "ACA", 'A', ALLOY.ingot(), 'C', CINNABAR.crystal(), 'X', Items.compass }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.reacher, 1), new Object[] { "BIB", "P P", "B B", 'B', ModItems.bolt_tungsten, 'I', W.ingot(), 'P', ModItems.plate_polymer }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.bismuth_tool, 1), new Object[] { "TBT", "SRS", "SCS", 'T', TA.nugget(), 'B', ModItems.nugget_bismuth, 'S', ANY_RESISTANTALLOY.ingot(), 'R', ModItems.reacher, 'C', ModItems.circuit_aluminium }); @@ -193,11 +193,11 @@ public class ToolRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.starmetal_axe, 1), new Object[] { "IS", "IB", " I", 'I', STAR.ingot(), 'S', ModItems.ring_starmetal, 'B', ModItems.cobalt_decorated_axe }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.starmetal_shovel, 1), new Object[] { "I", "B", "I", 'I', STAR.ingot(), 'B', ModItems.cobalt_decorated_shovel }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.starmetal_hoe, 1), new Object[] { "IS", " B", " I", 'I', STAR.ingot(), 'S', ModItems.ring_starmetal, 'B', ModItems.cobalt_decorated_hoe }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.schrabidium_sword, 1), new Object[] { "I", "W", "S", 'I', SA326.block(), 'W', ModItems.desh_sword, 'S', POLYMER.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.schrabidium_pickaxe, 1), new Object[] { "BSB", " W ", " P ", 'B', ModItems.blades_desh, 'S', SA326.block(), 'W', ModItems.desh_pickaxe, 'P', POLYMER.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.schrabidium_axe, 1), new Object[] { "BS", "BW", " P", 'B', ModItems.blades_desh, 'S', SA326.block(), 'W', ModItems.desh_axe, 'P', POLYMER.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.schrabidium_shovel, 1), new Object[] { "B", "W", "P", 'B', SA326.block(), 'W', ModItems.desh_shovel, 'P', POLYMER.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.schrabidium_hoe, 1), new Object[] { "IW", " S", " S", 'I', SA326.ingot(), 'W', ModItems.desh_hoe, 'S', POLYMER.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.schrabidium_sword, 1), new Object[] { "I", "W", "S", 'I', SA326.block(), 'W', ModItems.desh_sword, 'S', ANY_PLASTIC.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.schrabidium_pickaxe, 1), new Object[] { "BSB", " W ", " P ", 'B', ModItems.blades_desh, 'S', SA326.block(), 'W', ModItems.desh_pickaxe, 'P', ANY_PLASTIC.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.schrabidium_axe, 1), new Object[] { "BS", "BW", " P", 'B', ModItems.blades_desh, 'S', SA326.block(), 'W', ModItems.desh_axe, 'P', ANY_PLASTIC.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.schrabidium_shovel, 1), new Object[] { "B", "W", "P", 'B', SA326.block(), 'W', ModItems.desh_shovel, 'P', ANY_PLASTIC.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.schrabidium_hoe, 1), new Object[] { "IW", " S", " S", 'I', SA326.ingot(), 'W', ModItems.desh_hoe, 'S', ANY_PLASTIC.ingot() }); } } diff --git a/src/main/java/com/hbm/inventory/material/MatDistribution.java b/src/main/java/com/hbm/inventory/material/MatDistribution.java index 5c04519b5..8e6fcebea 100644 --- a/src/main/java/com/hbm/inventory/material/MatDistribution.java +++ b/src/main/java/com/hbm/inventory/material/MatDistribution.java @@ -80,8 +80,8 @@ public class MatDistribution extends SerializableRecipe { registerOre(OreDictManager.CO.ore(), MAT_COBALT, INGOT.q(1), MAT_STONE, QUART.q(1)); registerOre(OreDictManager.REDSTONE.ore(), MAT_REDSTONE, INGOT.q(4), MAT_STONE, QUART.q(1)); - registerOre(OreDictManager.HEMATITE.ore(), MAT_HEMATITE, INGOT.q(4)); - registerOre(OreDictManager.MALACHITE.ore(), MAT_MALACHITE, INGOT.q(4)); + registerOre(OreDictManager.HEMATITE.ore(), MAT_HEMATITE, INGOT.q(1)); + registerOre(OreDictManager.MALACHITE.ore(), MAT_MALACHITE, INGOT.q(1)); registerEntry(DictFrame.fromOne(ModBlocks.stone_resource, EnumStoneType.LIMESTONE), MAT_FLUX, DUST.q(10)); registerEntry(ModItems.powder_flux, MAT_FLUX, DUST.q(1)); diff --git a/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java b/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java index 3696d82d4..d6f9cf30d 100644 --- a/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java @@ -56,7 +56,7 @@ public class CokerRecipes extends SerializableRecipe { registerSFAuto(WOODOIL, 340_000L, new ItemStack(Items.coal, 1, 1), GAS_COKER); registerRecipe(WATZ, 4_000, new ItemStack(ModItems.ingot_mud, 4), null); - registerRecipe(REDMUD, 1_000, new ItemStack(Items.iron_ingot, 2), new FluidStack(MERCURY, 50)); + registerRecipe(REDMUD, 1_000, new ItemStack(Items.iron_ingot, 1), new FluidStack(MERCURY, 50)); registerRecipe(BITUMEN, 16_000, DictFrame.fromOne(ModItems.coke, EnumCokeType.PETROLEUM), new FluidStack(OIL_COKER, 1_600)); registerRecipe(LUBRICANT, 12_000, DictFrame.fromOne(ModItems.coke, EnumCokeType.PETROLEUM), new FluidStack(OIL_COKER, 1_200)); registerRecipe(CALCIUM_SOLUTION, 125, new ItemStack(ModItems.powder_calcium), new FluidStack(SPENTSTEAM, 100)); diff --git a/src/main/java/com/hbm/items/special/ItemBedrockOre.java b/src/main/java/com/hbm/items/special/ItemBedrockOre.java index f4362a93f..b3cd0433e 100644 --- a/src/main/java/com/hbm/items/special/ItemBedrockOre.java +++ b/src/main/java/com/hbm/items/special/ItemBedrockOre.java @@ -96,7 +96,9 @@ public class ItemBedrockOre extends ItemEnumMulti { URANIUM("Uranium", 0x868D82, B_LEAD, B_RADIUM, B_POLONIUM), //uranium and its decay products THORIUM("Thorium", 0x7D401D, B_SILICON, B_URANIUM, B_TECHNETIUM), //thorium occours with uraninite and decay products CHLOROCALCITE("Chlorocalcite", 0xCDE036, B_LITHIUM, B_SILICON, B_SILICON), //i guess? - FLUORITE("Fluorite", 0xF6F3E7, B_SILICON, B_LITHIUM, B_ALUMINIUM); //different silicon-bearing gemstones, generic lithium, aluminium from sodium compound trailings + FLUORITE("Fluorite", 0xF6F3E7, B_SILICON, B_LITHIUM, B_ALUMINIUM), //different silicon-bearing gemstones, generic lithium, aluminium from sodium compound trailings + HEMATITE("Hematite", 0xA37B72, B_SULFUR, B_TITANIUM, B_TITANIUM), //titanium, sulfur from pyrite + MALACHITE("Malachite", 0x66B48C, B_SULFUR, B_SULFUR, B_SULFUR); //sulfur sulfur sulfur sulfur public String oreName; public int color; diff --git a/src/main/java/com/hbm/lib/HbmWorldGen.java b/src/main/java/com/hbm/lib/HbmWorldGen.java index 96fc5134f..e233d59d2 100644 --- a/src/main/java/com/hbm/lib/HbmWorldGen.java +++ b/src/main/java/com/hbm/lib/HbmWorldGen.java @@ -161,12 +161,18 @@ public class HbmWorldGen implements IWorldGenerator { DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.aluminiumClusterSpawn, 6, 15, 35, ModBlocks.cluster_aluminium); DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.copperClusterSpawn, 6, 15, 20, ModBlocks.cluster_copper); - DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.malachiteSpawn, 10, 6, 40, ModBlocks.stone_resource, EnumStoneType.MALACHITE.ordinal()); + DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.malachiteSpawn, 16, 6, 40, ModBlocks.stone_resource, EnumStoneType.MALACHITE.ordinal()); DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.limestoneSpawn, 12, 25, 30, ModBlocks.stone_resource, EnumStoneType.LIMESTONE.ordinal()); if(rand.nextInt(3) == 0) { WeightedRandomGeneric item = (WeightedRandomGeneric) WeightedRandom.getRandomItem(rand, BedrockOre.weightedOres); BedrockOreDefinition def = item.get(); + + if(GeneralConfig.enable528 && GeneralConfig.enable528BedrockReplacement) { + BedrockOreDefinition replacement = BedrockOre.replacements.get(def.id); + if(replacement != null) def = replacement; + } + int randPosX = i + rand.nextInt(2) + 8; int randPosZ = j + rand.nextInt(2) + 8; BedrockOre.generate(world, randPosX, randPosZ, def.stack, def.acid, def.color, def.tier); diff --git a/src/main/java/com/hbm/world/feature/BedrockOre.java b/src/main/java/com/hbm/world/feature/BedrockOre.java index f20e79039..98bbd0c48 100644 --- a/src/main/java/com/hbm/world/feature/BedrockOre.java +++ b/src/main/java/com/hbm/world/feature/BedrockOre.java @@ -1,6 +1,7 @@ package com.hbm.world.feature; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import com.hbm.blocks.ModBlocks; @@ -24,6 +25,8 @@ public class BedrockOre { public static List> weightedOres = new ArrayList(); public static List> weightedOresNether = new ArrayList(); + public static HashMap replacements = new HashMap(); + public static void init() { registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.IRON, 1), WorldConfig.bedrockIronSpawn); registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.COPPER, 1), WorldConfig.bedrockCopperSpawn); @@ -37,13 +40,16 @@ public class BedrockOre { registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.URANIUM, 4, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockUraniumSpawn); registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.THORIUM, 4, new FluidStack(Fluids.SULFURIC_ACID, 500)), WorldConfig.bedrockThoriumSpawn); registerBedrockOre(weightedOres, new BedrockOreDefinition(EnumBedrockOre.FLUORITE, 1), WorldConfig.bedrockFluoriteSpawn); - registerBedrockOre(weightedOres, new BedrockOreDefinition(new ItemStack(Items.coal, 4), 1, 0x202020), WorldConfig.bedrockCoalSpawn); + registerBedrockOre(weightedOres, new BedrockOreDefinition(new ItemStack(Items.coal, 8), 1, 0x202020), WorldConfig.bedrockCoalSpawn); registerBedrockOre(weightedOres, new BedrockOreDefinition(new ItemStack(ModItems.niter, 4), 2, 0x808080, new FluidStack(Fluids.ACID, 500)), WorldConfig.bedrockNiterSpawn); registerBedrockOre(weightedOres, new BedrockOreDefinition(new ItemStack(Items.redstone, 4), 1, 0xd01010), WorldConfig.bedrockRedstoneSpawn); registerBedrockOre(weightedOresNether, new BedrockOreDefinition(new ItemStack(Items.glowstone_dust, 4), 1, 0xF9FF4D), WorldConfig.bedrockGlowstoneSpawn); registerBedrockOre(weightedOresNether, new BedrockOreDefinition(new ItemStack(ModItems.powder_fire, 4), 1, 0xD7341F), WorldConfig.bedrockPhosphorusSpawn); registerBedrockOre(weightedOresNether, new BedrockOreDefinition(new ItemStack(Items.quartz, 4), 1, 0xF0EFDD), WorldConfig.bedrockQuartzSpawn); + + replacements.put(EnumBedrockOre.IRON.oreName, new BedrockOreDefinition(EnumBedrockOre.HEMATITE, 1)); + replacements.put(EnumBedrockOre.COPPER.oreName, new BedrockOreDefinition(EnumBedrockOre.MALACHITE, 1)); } public static void registerBedrockOre(List list, BedrockOreDefinition def, int weight) { @@ -97,6 +103,7 @@ public class BedrockOre { public static class BedrockOreDefinition { public ItemStack stack; public FluidStack acid; + public String id; public int tier; public int color; @@ -106,6 +113,7 @@ public class BedrockOre { public BedrockOreDefinition(ItemStack stack, int tier, int color, FluidStack acid) { this.stack = stack; + this.id = stack.toString(); this.tier = tier; this.color = color; this.acid = acid; @@ -117,6 +125,7 @@ public class BedrockOre { public BedrockOreDefinition(EnumBedrockOre type, int tier, FluidStack acid) { this.stack = DictFrame.fromOne(ModItems.ore_bedrock, type); + this.id = "ore" + type.oreName; this.color = type.color; this.tier = tier; this.acid = acid; diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 965112337..39f98c28e 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -2553,7 +2553,9 @@ item.ore.chlorocalcite=Chlorokalzit item.ore.copper=Kupfer item.ore.fluorite=Fluorit item.ore.gold=Gold +item.ore.hematite=Hematit item.ore.iron=Eisen +item.ore.malachite=Malachit item.ore.niobium=Niob item.ore.titanium=Titan item.ore.tungsten=Wolfram diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 3a45eb795..85e9a142c 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -3312,7 +3312,9 @@ item.ore.chlorocalcite=Chlorocalcite item.ore.copper=Copper item.ore.fluorite=Fluorite item.ore.gold=Gold +item.ore.hematite=Hematite item.ore.iron=Iron +item.ore.malachite=Malachite item.ore.niobium=Niobium item.ore.titanium=Titanium item.ore.tungsten=Tungsten From 505bdbf86372fa63b3a1c2f10423ebfe1f486cf9 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 29 Oct 2023 19:01:17 +0100 Subject: [PATCH 353/432] more half-finished crap --- src/main/java/com/hbm/blocks/ModBlocks.java | 40 +- .../com/hbm/blocks/machine/MachineCoal.java | 238 +--- .../hbm/blocks/machine/MachineWoodBurner.java | 39 + .../com/hbm/blocks/machine/ReactorCore.java | 73 +- .../java/com/hbm/creativetabs/MachineTab.java | 4 +- .../container/ContainerMachineCoal.java | 85 -- .../com/hbm/inventory/gui/GUIMachineCoal.java | 94 -- .../inventory/recipes/AssemblerRecipes.java | 3 +- .../java/com/hbm/lib/HbmChestContents.java | 32 +- src/main/java/com/hbm/main/ClientProxy.java | 1 + .../java/com/hbm/main/ResourceManager.java | 6 + .../java/com/hbm/packet/AuxGaugePacket.java | 40 - .../render/tileentity/RenderWoodBurner.java | 61 + .../java/com/hbm/tileentity/TileMappings.java | 1 + .../machine/TileEntityMachineCoal.java | 254 +--- .../machine/TileEntityMachineWoodBurner.java | 112 ++ .../world/gen/component/BunkerComponents.java | 16 +- .../hbm/models/machines/wood_burner.obj | 1112 +++++++++++++++++ .../blocks/machine_coal_front_off.png | Bin 377 -> 0 bytes .../blocks/machine_coal_front_off_alt.png | Bin 481 -> 0 bytes .../textures/blocks/machine_coal_front_on.png | Bin 467 -> 0 bytes .../blocks/machine_coal_front_on_alt.png | Bin 526 -> 0 bytes .../hbm/textures/blocks/machine_coal_side.png | Bin 391 -> 0 bytes .../textures/blocks/machine_coal_side_alt.png | Bin 578 -> 0 bytes .../assets/hbm/textures/gui/GUICoal.png | Bin 2248 -> 2440 bytes .../gui/generators/gui_wood_burner.png | Bin 0 -> 3916 bytes .../textures/models/machines/wood_burner.png | Bin 0 -> 9986 bytes 27 files changed, 1388 insertions(+), 823 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/machine/MachineWoodBurner.java delete mode 100644 src/main/java/com/hbm/inventory/container/ContainerMachineCoal.java delete mode 100644 src/main/java/com/hbm/inventory/gui/GUIMachineCoal.java create mode 100644 src/main/java/com/hbm/render/tileentity/RenderWoodBurner.java create mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java create mode 100644 src/main/resources/assets/hbm/models/machines/wood_burner.obj delete mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_coal_front_off.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_coal_front_off_alt.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_coal_front_on.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_coal_front_on_alt.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_coal_side.png delete mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_coal_side_alt.png create mode 100644 src/main/resources/assets/hbm/textures/gui/generators/gui_wood_burner.png create mode 100644 src/main/resources/assets/hbm/textures/models/machines/wood_burner.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index ad16c99fd..b531674dd 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -775,8 +775,9 @@ public class ModBlocks { public static Block capacitor_tantalium; public static Block capacitor_schrabidate; - public static Block machine_coal_off; - public static Block machine_coal_on; + @Deprecated public static Block machine_coal_off; + @Deprecated public static Block machine_coal_on; + public static Block machine_wood_burner; public static Block red_wire_coated; public static Block red_cable; @@ -900,13 +901,13 @@ public class ModBlocks { public static Block pwr_controller; public static Block pwr_block; - public static Block reactor_element; - public static Block reactor_control; - public static Block reactor_hatch; - public static Block reactor_ejector; - public static Block reactor_inserter; - public static Block reactor_conductor; - public static Block reactor_computer; + @Deprecated public static Block reactor_element; + @Deprecated public static Block reactor_control; + @Deprecated public static Block reactor_hatch; + @Deprecated public static Block reactor_ejector; + @Deprecated public static Block reactor_inserter; + @Deprecated public static Block reactor_conductor; + @Deprecated public static Block reactor_computer; public static Block fusion_conductor; public static Block fusion_center; @@ -1933,8 +1934,9 @@ public class ModBlocks { capacitor_tantalium = new MachineCapacitor(Material.iron, 150_000_000L, "tantalium").setBlockName("capacitor_tantalium").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_tantalium"); capacitor_schrabidate = new MachineCapacitor(Material.iron, 50_000_000_000L, "schrabidate").setBlockName("capacitor_schrabidate").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_schrabidate"); - machine_coal_off = new MachineCoal(false).setBlockName("machine_coal_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - machine_coal_on = new MachineCoal(true).setBlockName("machine_coal_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F); + machine_coal_off = new MachineCoal(false).setBlockName("machine_coal_off").setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_copper"); + machine_coal_on = new MachineCoal(true).setBlockName("machine_coal_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_copper"); + machine_wood_burner = new MachineWoodBurner(Material.iron).setBlockName("machine_wood_burner").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_diesel = new MachineDiesel().setBlockName("machine_diesel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_combustion_engine = new MachineCombustionEngine().setBlockName("machine_combustion_engine").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); @@ -2075,20 +2077,19 @@ public class ModBlocks { pwr_controller = new MachinePWRController(Material.iron).setBlockName("pwr_controller").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_casing_blank"); pwr_block = new BlockPWR(Material.iron).setBlockName("pwr_block").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":pwr_block"); - reactor_element = new BlockPillar(Material.iron, RefStrings.MODID + ":reactor_element_top", RefStrings.MODID + ":reactor_element_base").setBlockName("reactor_element").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":reactor_element_side"); - reactor_control = new BlockPillar(Material.iron, RefStrings.MODID + ":reactor_control_top").setBlockName("reactor_control").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":reactor_control_side"); - reactor_hatch = new ReactorHatch(Material.iron).setBlockName("reactor_hatch").setHardness(5.0F).setResistance(1000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_concrete"); - reactor_ejector = new BlockRotatable(Material.iron).setBlockName("reactor_ejector").setHardness(5.0F).setResistance(1000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_concrete"); - reactor_inserter = new BlockRotatable(Material.iron).setBlockName("reactor_inserter").setHardness(5.0F).setResistance(1000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_concrete"); - reactor_conductor = new BlockPillar(Material.iron, RefStrings.MODID + ":reactor_conductor_top").setBlockName("reactor_conductor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":reactor_conductor_side"); - reactor_computer = new ReactorCore(Material.iron).setBlockName("reactor_computer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":reactor_computer"); + reactor_element = new BlockPillar(Material.iron, RefStrings.MODID + ":reactor_element_top", RefStrings.MODID + ":reactor_element_base").setBlockName("reactor_element").setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":reactor_element_side"); + reactor_control = new BlockPillar(Material.iron, RefStrings.MODID + ":reactor_control_top").setBlockName("reactor_control").setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":reactor_control_side"); + reactor_hatch = new ReactorHatch(Material.iron).setBlockName("reactor_hatch").setHardness(5.0F).setResistance(1000.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete"); + reactor_ejector = new BlockRotatable(Material.iron).setBlockName("reactor_ejector").setHardness(5.0F).setResistance(1000.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete"); + reactor_inserter = new BlockRotatable(Material.iron).setBlockName("reactor_inserter").setHardness(5.0F).setResistance(1000.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete"); + reactor_conductor = new BlockPillar(Material.iron, RefStrings.MODID + ":reactor_conductor_top").setBlockName("reactor_conductor").setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":reactor_conductor_side"); + reactor_computer = new ReactorCore(Material.iron).setBlockName("reactor_computer").setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":reactor_computer"); fusion_conductor = new BlockToolConversionPillar(Material.iron).addVariant("_welded").setBlockName("fusion_conductor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fusion_conductor"); fusion_center = new BlockPillar(Material.iron, RefStrings.MODID + ":fusion_center_top_alt").setBlockName("fusion_center").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fusion_center_side_alt"); fusion_motor = new BlockPillar(Material.iron, RefStrings.MODID + ":fusion_motor_top_alt").setBlockName("fusion_motor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fusion_motor_side_alt"); fusion_heater = new BlockPillar(Material.iron, RefStrings.MODID + ":fusion_heater_top").setBlockName("fusion_heater").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fusion_heater_side"); fusion_hatch = new FusionHatch(Material.iron).setBlockName("fusion_hatch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fusion_hatch"); - //fusion_core = new FusionCore(Material.iron).setBlockName("fusion_core").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":fusion_core_side"); plasma = new BlockPlasma(Material.iron).setBlockName("plasma").setHardness(5.0F).setResistance(6000.0F).setLightLevel(1.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":plasma"); iter = new MachineITER().setBlockName("iter").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":iter"); plasma_heater = new MachinePlasmaHeater().setBlockName("plasma_heater").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":plasma_heater"); @@ -3153,6 +3154,7 @@ public class ModBlocks { GameRegistry.registerBlock(machine_rtg_furnace_on, machine_rtg_furnace_on.getUnlocalizedName()); GameRegistry.registerBlock(machine_coal_off, machine_coal_off.getUnlocalizedName()); GameRegistry.registerBlock(machine_coal_on, machine_coal_on.getUnlocalizedName()); + register(machine_wood_burner); register(machine_diesel); register(machine_selenium); register(machine_combustion_engine); diff --git a/src/main/java/com/hbm/blocks/machine/MachineCoal.java b/src/main/java/com/hbm/blocks/machine/MachineCoal.java index 5a56ecf5a..4b28a5e94 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineCoal.java +++ b/src/main/java/com/hbm/blocks/machine/MachineCoal.java @@ -1,257 +1,21 @@ package com.hbm.blocks.machine; -import java.util.Random; - -import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; -import net.minecraft.util.MathHelper; import net.minecraft.world.World; -import com.hbm.blocks.ModBlocks; -import com.hbm.lib.RefStrings; -import com.hbm.main.MainRegistry; import com.hbm.tileentity.machine.TileEntityMachineCoal; -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +@Deprecated public class MachineCoal extends BlockContainer { - private final Random field_149933_a = new Random(); - private final boolean isActive; - private static boolean keepInventory; - - @SideOnly(Side.CLIENT) - private IIcon iconFront; - public MachineCoal(boolean blockState) { super(Material.iron); - isActive = blockState; } - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister iconRegister) { - this.iconFront = iconRegister.registerIcon(RefStrings.MODID + (this.isActive ? ":machine_coal_front_on" : ":machine_coal_front_off")); - this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":machine_coal_side"); - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIcon(int side, int metadata) { - return metadata == 0 && side == 3 ? this.iconFront : (side == metadata ? this.iconFront : this.blockIcon); - } - - @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) - { - return Item.getItemFromBlock(ModBlocks.machine_coal_off); - } - - @Override - public void onBlockAdded(World world, int x, int y, int z) { - super.onBlockAdded(world, x, y, z); - this.setDefaultDirection(world, x, y, z); - } - - private void setDefaultDirection(World world, int x, int y, int z) { - if(!world.isRemote) - { - Block block1 = world.getBlock(x, y, z - 1); - Block block2 = world.getBlock(x, y, z + 1); - Block block3 = world.getBlock(x - 1, y, z); - Block block4 = world.getBlock(x + 1, y, z); - - byte b0 = 3; - - if(block1.func_149730_j() && !block2.func_149730_j()) - { - b0 = 3; - } - if(block2.func_149730_j() && !block1.func_149730_j()) - { - b0 = 2; - } - if(block3.func_149730_j() && !block4.func_149730_j()) - { - b0 = 5; - } - if(block4.func_149730_j() && !block3.func_149730_j()) - { - b0 = 4; - } - - world.setBlockMetadataWithNotify(x, y, z, b0, 2); - } - } - - @Override - public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { - int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; - - if(i == 0) - { - world.setBlockMetadataWithNotify(x, y, z, 2, 2); - } - if(i == 1) - { - world.setBlockMetadataWithNotify(x, y, z, 5, 2); - } - if(i == 2) - { - world.setBlockMetadataWithNotify(x, y, z, 3, 2); - } - if(i == 3) - { - world.setBlockMetadataWithNotify(x, y, z, 4, 2); - } - - if(itemStack.hasDisplayName()) - { - ((TileEntityMachineCoal)world.getTileEntity(x, y, z)).setCustomName(itemStack.getDisplayName()); - } - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(world.isRemote) - { - return true; - } else if(!player.isSneaking()) - { - TileEntityMachineCoal entity = (TileEntityMachineCoal) world.getTileEntity(x, y, z); - if(entity != null) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); - } - return true; - } else { - return false; - } - } - @Override public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { return new TileEntityMachineCoal(); } - - public static void updateBlockState(boolean isProcessing, World world, int x, int y, int z) { - int i = world.getBlockMetadata(x, y, z); - TileEntity entity = world.getTileEntity(x, y, z); - keepInventory = true; - - if(isProcessing) - { - world.setBlock(x, y, z, ModBlocks.machine_coal_on); - }else{ - world.setBlock(x, y, z, ModBlocks.machine_coal_off); - } - - keepInventory = false; - world.setBlockMetadataWithNotify(x, y, z, i, 2); - - if(entity != null) { - entity.validate(); - world.setTileEntity(x, y, z, entity); - } - } - - @Override - public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_) - { - if (!keepInventory) - { - TileEntityMachineCoal tileentityfurnace = (TileEntityMachineCoal)p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_); - - if (tileentityfurnace != null) - { - for (int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1) - { - ItemStack itemstack = tileentityfurnace.getStackInSlot(i1); - - if (itemstack != null) - { - float f = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f1 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f2 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - - while (itemstack.stackSize > 0) - { - int j1 = this.field_149933_a.nextInt(21) + 10; - - if (j1 > itemstack.stackSize) - { - j1 = itemstack.stackSize; - } - - itemstack.stackSize -= j1; - EntityItem entityitem = new EntityItem(p_149749_1_, p_149749_2_ + f, p_149749_3_ + f1, p_149749_4_ + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); - - if (itemstack.hasTagCompound()) - { - entityitem.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy()); - } - - float f3 = 0.05F; - entityitem.motionX = (float)this.field_149933_a.nextGaussian() * f3; - entityitem.motionY = (float)this.field_149933_a.nextGaussian() * f3 + 0.2F; - entityitem.motionZ = (float)this.field_149933_a.nextGaussian() * f3; - p_149749_1_.spawnEntityInWorld(entityitem); - } - } - } - - p_149749_1_.func_147453_f(p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_); - } - } - - super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_); - } - - @Override - @SideOnly(Side.CLIENT) - public void randomDisplayTick(World p_149734_1_, int x, int y, int z, Random rand) - { - if (isActive) - { - int l = p_149734_1_.getBlockMetadata(x, y, z); - float f = x + 0.5F; - float f1 = y + 0.0F + rand.nextFloat() * 6.0F / 16.0F; - float f2 = z + 0.5F; - float f3 = 0.52F; - float f4 = rand.nextFloat() * 0.6F - 0.3F; - - if (l == 4) - { - p_149734_1_.spawnParticle("smoke", f - f3, f1, f2 + f4, 0.0D, 0.0D, 0.0D); - p_149734_1_.spawnParticle("flame", f - f3, f1, f2 + f4, 0.0D, 0.0D, 0.0D); - } - else if (l == 5) - { - p_149734_1_.spawnParticle("smoke", f + f3, f1, f2 + f4, 0.0D, 0.0D, 0.0D); - p_149734_1_.spawnParticle("flame", f + f3, f1, f2 + f4, 0.0D, 0.0D, 0.0D); - } - else if (l == 2) - { - p_149734_1_.spawnParticle("smoke", f + f4, f1, f2 - f3, 0.0D, 0.0D, 0.0D); - p_149734_1_.spawnParticle("flame", f + f4, f1, f2 - f3, 0.0D, 0.0D, 0.0D); - } - else if (l == 3) - { - p_149734_1_.spawnParticle("smoke", f + f4, f1, f2 + f3, 0.0D, 0.0D, 0.0D); - p_149734_1_.spawnParticle("flame", f + f4, f1, f2 + f3, 0.0D, 0.0D, 0.0D); - } - } - } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineWoodBurner.java b/src/main/java/com/hbm/blocks/machine/MachineWoodBurner.java new file mode 100644 index 000000000..acc5658a2 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineWoodBurner.java @@ -0,0 +1,39 @@ +package com.hbm.blocks.machine; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.machine.TileEntityMachineWoodBurner; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class MachineWoodBurner extends BlockDummyable { + + public MachineWoodBurner(Material mat) { + super(mat); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityMachineWoodBurner(); + if(meta >= 6) return new TileEntityProxyCombo().inventory().power().fluid(); + return new TileEntityProxyCombo().inventory(); + } + + @Override + public int[] getDimensions() { + return new int[] {1, 0, 1, 0, 1, 0}; + } + + @Override + public int getOffset() { + return 0; + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + return this.standardOpenBehavior(world, x, y, z, player, 0); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/ReactorCore.java b/src/main/java/com/hbm/blocks/machine/ReactorCore.java index 2475ec52f..847ece06f 100644 --- a/src/main/java/com/hbm/blocks/machine/ReactorCore.java +++ b/src/main/java/com/hbm/blocks/machine/ReactorCore.java @@ -2,13 +2,8 @@ package com.hbm.blocks.machine; import java.util.Random; -import com.hbm.tileentity.machine.TileEntityMachineReactorLarge; -import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; @@ -23,72 +18,6 @@ public class ReactorCore extends BlockContainer { @Override public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityMachineReactorLarge(); + return null; } - - @Override - public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_) - { - if (!keepInventory) - { - TileEntityMachineReactorLarge tileentityfurnace = (TileEntityMachineReactorLarge)p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_); - - if (tileentityfurnace != null) - { - for (int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1) - { - ItemStack itemstack = tileentityfurnace.getStackInSlot(i1); - - if (itemstack != null) - { - float f = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f1 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f2 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - - while (itemstack.stackSize > 0) - { - int j1 = this.field_149933_a.nextInt(21) + 10; - - if (j1 > itemstack.stackSize) - { - j1 = itemstack.stackSize; - } - - itemstack.stackSize -= j1; - EntityItem entityitem = new EntityItem(p_149749_1_, p_149749_2_ + f, p_149749_3_ + f1, p_149749_4_ + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); - - if (itemstack.hasTagCompound()) - { - entityitem.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy()); - } - - float f3 = 0.05F; - entityitem.motionX = (float)this.field_149933_a.nextGaussian() * f3; - entityitem.motionY = (float)this.field_149933_a.nextGaussian() * f3 + 0.2F; - entityitem.motionZ = (float)this.field_149933_a.nextGaussian() * f3; - p_149749_1_.spawnEntityInWorld(entityitem); - } - } - } - - p_149749_1_.func_147453_f(p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_); - } - } - - super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_); - } - - /*@Override - public void onBlockDestroyedByExplosion(World p_149723_1_, int p_149723_2_, int p_149723_3_, int p_149723_4_, Explosion p_149723_5_) - { - if (!p_149723_1_.isRemote) - { - TileEntityMachineReactorLarge entity = (TileEntityMachineReactorLarge) p_149723_1_.getTileEntity(p_149723_2_, p_149723_3_, p_149723_4_); - if(entity != null && entity.isLoaded) - { - entity.explode(); - } - } - }*/ - } diff --git a/src/main/java/com/hbm/creativetabs/MachineTab.java b/src/main/java/com/hbm/creativetabs/MachineTab.java index 13f3c934f..a24abc8a6 100644 --- a/src/main/java/com/hbm/creativetabs/MachineTab.java +++ b/src/main/java/com/hbm/creativetabs/MachineTab.java @@ -15,8 +15,8 @@ public class MachineTab extends CreativeTabs { @Override public Item getTabIconItem() { - if(ModBlocks.reactor_element != null) - return Item.getItemFromBlock(ModBlocks.reactor_element); + if(ModBlocks.pwr_controller != null) + return Item.getItemFromBlock(ModBlocks.pwr_controller); return Items.iron_pickaxe; } diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineCoal.java b/src/main/java/com/hbm/inventory/container/ContainerMachineCoal.java deleted file mode 100644 index 1060bdaec..000000000 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineCoal.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.hbm.inventory.container; - -import com.hbm.inventory.SlotTakeOnly; -import com.hbm.tileentity.machine.TileEntityMachineCoal; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ICrafting; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - -public class ContainerMachineCoal extends Container { - - private TileEntityMachineCoal diFurnace; - - public ContainerMachineCoal(InventoryPlayer invPlayer, TileEntityMachineCoal tedf) { - diFurnace = tedf; - - this.addSlotToContainer(new Slot(tedf, 0, 44, 53 - 36)); - this.addSlotToContainer(new Slot(tedf, 1, 80, 53)); - this.addSlotToContainer(new Slot(tedf, 2, 116, 53)); - this.addSlotToContainer(new SlotTakeOnly(tedf, 3, 44, 53)); - - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); - } - } - - for(int i = 0; i < 9; i++) - { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142)); - } - } - - @Override - public void addCraftingToCrafters(ICrafting crafting) { - super.addCraftingToCrafters(crafting); - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); - - if (var4 != null && var4.getHasStack()) - { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - - if (par2 <= 3) { - if (!this.mergeItemStack(var5, 4, this.inventorySlots.size(), true)) - { - return null; - } - } - else if (!this.mergeItemStack(var5, 1, 2, false)) - { - if (!this.mergeItemStack(var5, 0, 1, false)) - if (!this.mergeItemStack(var5, 2, 3, false)) - return null; - } - - if (var5.stackSize == 0) - { - var4.putStack((ItemStack) null); - } - else - { - var4.onSlotChanged(); - } - } - - return var3; - } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return diFurnace.isUseableByPlayer(player); - } -} diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineCoal.java b/src/main/java/com/hbm/inventory/gui/GUIMachineCoal.java deleted file mode 100644 index 24b1cf2ae..000000000 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineCoal.java +++ /dev/null @@ -1,94 +0,0 @@ -package com.hbm.inventory.gui; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; - -import org.lwjgl.opengl.GL11; - -import com.hbm.inventory.container.ContainerMachineCoal; -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.machine.TileEntityMachineCoal; - -public class GUIMachineCoal extends GuiInfoContainer { - - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/GUICoal.png"); - private TileEntityMachineCoal diFurnace; - - public GUIMachineCoal(InventoryPlayer invPlayer, TileEntityMachineCoal tedf) { - super(new ContainerMachineCoal(invPlayer, tedf)); - diFurnace = tedf; - - this.xSize = 176; - this.ySize = 166; - } - - @Override - public void drawScreen(int mouseX, int mouseY, float f) { - super.drawScreen(mouseX, mouseY, f); - - diFurnace.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 69 - 52, 16, 52); - this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 152, guiTop + 69 - 52, 16, 52, diFurnace.power, diFurnace.maxPower); - - String[] text = new String[] { "Power generation rate:", - " 25 HE/t", - " 500 HE/s", - "Accepts all furnace fuels.", - "(All fuels burn half as long in this generator", - "as in a regular furnace)" }; - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36, 16, 16, guiLeft - 8, guiTop + 36 + 16, text); - - String[] text1 = new String[] { "Water consumption rate:", - " 1 mB/t", - " 20 mB/s", - "(Consumption rate is constant)" }; - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36 + 16, 16, 16, guiLeft - 8, guiTop + 36 + 16, text1); - - if(diFurnace.tank.getFill() <= 0) { - - String[] text2 = new String[] { "Error: Water is required for", - "the generator to function properly!" }; - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36 + 32, 16, 16, guiLeft - 8, guiTop + 36 + 16 + 32, text2); - } - - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 79, guiTop + 34, 18, 18, mouseX, mouseY, new String[] { String.valueOf((int)(Math.ceil((double)diFurnace.burnTime / 20D))) + "s"}); - } - - @Override - protected void drawGuiContainerForegroundLayer(int i, int j) { - String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName()); - - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); - this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); - } - - @Override - protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - Minecraft.getMinecraft().getTextureManager().bindTexture(texture); - drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - - //It's as horrifying as it is functional. - if(diFurnace.isInvalid() && diFurnace.getWorldObj().getTileEntity(diFurnace.xCoord, diFurnace.yCoord, diFurnace.zCoord) instanceof TileEntityMachineCoal) - diFurnace = (TileEntityMachineCoal) diFurnace.getWorldObj().getTileEntity(diFurnace.xCoord, diFurnace.yCoord, diFurnace.zCoord); - - if(diFurnace.power > 0) { - int i = (int)diFurnace.getPowerScaled(52); - drawTexturedModalRect(guiLeft + 152, guiTop + 69 - i, 176, 52 - i, 16, i); - } - - if(diFurnace.burnTime > 0) - { - drawTexturedModalRect(guiLeft + 79, guiTop + 34, 208, 0, 18, 18); - } - - if(diFurnace.tank.getFill() <= 0) - this.drawInfoPanel(guiLeft - 16, guiTop + 36 + 32, 16, 16, 6); - - this.drawInfoPanel(guiLeft - 16, guiTop + 36, 16, 16, 2); - this.drawInfoPanel(guiLeft - 16, guiTop + 36 + 16, 16, 16, 3); - - diFurnace.tank.renderTank(guiLeft + 8, guiTop + 69, this.zLevel, 16, 52); - } -} diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 87a14154f..18fc47acd 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -1169,8 +1169,7 @@ public class AssemblerRecipes { new OreDictStack(ANY_TAR.any(), 8), new ComparableStack(ModItems.catalyst_clay, 4), new ComparableStack(ModItems.coil_tungsten, 8), - new ComparableStack(ModItems.tank_steel, 2), - new ComparableStack(ModItems.inf_water_mk2, 2) + new ComparableStack(ModItems.tank_steel, 2) }, 200); makeRecipe(new ComparableStack(ModBlocks.machine_solidifier), new AStack[] { diff --git a/src/main/java/com/hbm/lib/HbmChestContents.java b/src/main/java/com/hbm/lib/HbmChestContents.java index 433b089e1..812a66848 100644 --- a/src/main/java/com/hbm/lib/HbmChestContents.java +++ b/src/main/java/com/hbm/lib/HbmChestContents.java @@ -245,7 +245,7 @@ public class HbmChestContents { new WeightedRandomChestContent(ModItems.powder_niobium, 0, 1, 1, 1), new WeightedRandomChestContent(Item.getItemFromBlock(ModBlocks.fusion_conductor), 0, 2, 4, 5), new WeightedRandomChestContent(Item.getItemFromBlock(ModBlocks.fusion_heater), 0, 1, 3, 5), - new WeightedRandomChestContent(Item.getItemFromBlock(ModBlocks.reactor_element), 0, 1, 2, 5), + new WeightedRandomChestContent(Item.getItemFromBlock(ModBlocks.pwr_fuel), 0, 1, 2, 5), new WeightedRandomChestContent(Item.getItemFromBlock(ModBlocks.block_tungsten), 0, 3, 8, 5), new WeightedRandomChestContent(Item.getItemFromBlock(ModBlocks.red_wire_coated), 0, 4, 8, 5), new WeightedRandomChestContent(Item.getItemFromBlock(ModBlocks.red_cable), 0, 8, 16, 5) }; @@ -418,26 +418,16 @@ public class HbmChestContents { String key; int pages; switch(rand.nextInt(10)) { - case 0: - key = "resignation_note"; pages = 3; break; - case 1: - key = "memo_stocks"; pages = 1; break; - case 2: - key = "memo_schrab_gsa"; pages = 2; break; - case 3: - key = "memo_schrab_rd"; pages = 4; break; - case 4: - key = "memo_schrab_nuke"; pages = 3; break; - case 5: - key = "bf_bomb_1"; pages = 4; break; - case 6: - key = "bf_bomb_2"; pages = 6; break; - case 7: - key = "bf_bomb_3"; pages = 6; break; - case 8: - key = "bf_bomb_4"; pages = 5; break; - case 9: - key = "bf_bomb_5"; pages = 9; break; + case 0: key = "resignation_note"; pages = 3; break; + case 1: key = "memo_stocks"; pages = 1; break; + case 2: key = "memo_schrab_gsa"; pages = 2; break; + case 3: key = "memo_schrab_rd"; pages = 4; break; + case 4: key = "memo_schrab_nuke"; pages = 3; break; + case 5: key = "bf_bomb_1"; pages = 4; break; + case 6: key = "bf_bomb_2"; pages = 6; break; + case 7: key = "bf_bomb_3"; pages = 6; break; + case 8: key = "bf_bomb_4"; pages = 5; break; + case 9: key = "bf_bomb_5"; pages = 9; break; default: return null; } diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index f7e3d1233..4ccab463c 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -295,6 +295,7 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachinePumpSteam.class, new RenderPump()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachinePumpElectric.class, new RenderPump()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineArcWelder.class, new RenderArcWelder()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineWoodBurner.class, new RenderWoodBurner()); //Foundry ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFoundryBasin.class, new RenderFoundry()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFoundryMold.class, new RenderFoundry()); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 18cf110cc..26fa2963a 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -110,6 +110,9 @@ public class ResourceManager { public static final IModelCustom tower_large = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/tower_large.obj")); public static final IModelCustom condenser = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/condenser.obj")); + //Wood burner + public static final IModelCustom wood_burner = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/wood_burner.obj")); + //IGen public static final IModelCustom igen = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/igen.obj")); @@ -476,6 +479,9 @@ public class ResourceManager { //Deuterium Tower public static final ResourceLocation deuterium_tower_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/machine_deuterium_tower.png"); + //Wood Burner + public static final ResourceLocation wood_burner_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/wood_burner.png"); + //IGen public static final ResourceLocation igen_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/igen.png"); public static final ResourceLocation igen_rotor = new ResourceLocation(RefStrings.MODID, "textures/models/machines/igen_rotor.png"); diff --git a/src/main/java/com/hbm/packet/AuxGaugePacket.java b/src/main/java/com/hbm/packet/AuxGaugePacket.java index 299dee72f..1a9e99d5d 100644 --- a/src/main/java/com/hbm/packet/AuxGaugePacket.java +++ b/src/main/java/com/hbm/packet/AuxGaugePacket.java @@ -13,11 +13,6 @@ import com.hbm.tileentity.machine.TileEntityAMSLimiter; import com.hbm.tileentity.machine.TileEntityMachineArcFurnace; import com.hbm.tileentity.machine.TileEntityMachineBoiler; import com.hbm.tileentity.machine.TileEntityMachineBoilerElectric; -import com.hbm.tileentity.machine.TileEntityMachineCoal; -import com.hbm.tileentity.machine.TileEntityMachineDiesel; -import com.hbm.tileentity.machine.TileEntityMachineElectricFurnace; -import com.hbm.tileentity.machine.TileEntityMachineReactorLarge; -import com.hbm.tileentity.machine.TileEntityMachineReactorLarge.ReactorFuelType; import com.hbm.tileentity.machine.TileEntityMachineSeleniumEngine; import cpw.mods.fml.common.network.simpleimpl.IMessage; @@ -113,11 +108,6 @@ public class AuxGaugePacket implements IMessage { if(m.id == 1) selenium.powerCap = m.value; } - if (te instanceof TileEntityMachineDiesel) { - TileEntityMachineDiesel selenium = (TileEntityMachineDiesel)te; - - selenium.powerCap = m.value; - } if (te instanceof TileEntityBomber) { TileEntityBomber bomber = (TileEntityBomber)te; @@ -136,18 +126,6 @@ public class AuxGaugePacket implements IMessage { if(m.id == 1) boiler.burnTime = m.value; } - if (te instanceof TileEntityMachineCoal) { - TileEntityMachineCoal coalgen = (TileEntityMachineCoal)te; - - if(m.id == 0) - coalgen.burnTime = m.value; - } - if (te instanceof TileEntityMachineElectricFurnace) { - TileEntityMachineElectricFurnace furn = (TileEntityMachineElectricFurnace)te; - - if(m.id == 0) - furn.progress = m.value; - } if (te instanceof TileEntityMachineArcFurnace) { TileEntityMachineArcFurnace furn = (TileEntityMachineArcFurnace)te; @@ -165,24 +143,6 @@ public class AuxGaugePacket implements IMessage { nuke.primed = m.value == 1; } - if (te instanceof TileEntityMachineReactorLarge) { - TileEntityMachineReactorLarge reactor = (TileEntityMachineReactorLarge)te; - - if(m.id == 0) - reactor.rods = m.value; - if(m.id == 1) - reactor.coreHeat = m.value; - if(m.id == 2) - reactor.hullHeat = m.value; - if(m.id == 3) - reactor.size = m.value; - if(m.id == 4) - reactor.fuel = m.value; - if(m.id == 5) - reactor.waste = m.value; - if(m.id == 6) - reactor.type = ReactorFuelType.getEnum(m.value); - } if (te instanceof TileEntityCompactLauncher) { TileEntityCompactLauncher launcher = (TileEntityCompactLauncher)te; diff --git a/src/main/java/com/hbm/render/tileentity/RenderWoodBurner.java b/src/main/java/com/hbm/render/tileentity/RenderWoodBurner.java new file mode 100644 index 000000000..14362d898 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderWoodBurner.java @@ -0,0 +1,61 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderWoodBurner extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y, z + 0.5); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + + switch(tile.getBlockMetadata() - BlockDummyable.offset) { + case 2: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(0, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(90, 0F, 1F, 0F); break; + } + + GL11.glTranslated(-0.5, 0, -0.5); + + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.wood_burner_tex); + ResourceManager.wood_burner.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.machine_wood_burner); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(0, -4, 0); + GL11.glScaled(3.5, 3.5, 3.5); + } + public void renderCommon() { + GL11.glRotatef(90, 0F, 1F, 0F); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.wood_burner_tex); + ResourceManager.wood_burner.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + }}; + } +} diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index d5ef30c31..4e0500c15 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -67,6 +67,7 @@ public class TileMappings { put(TileEntityMachineBattery.class, "tileentity_battery"); put(TileEntityCapacitor.class, "tileentity_capacitor"); put(TileEntityMachineCoal.class, "tileentity_coal"); + put(TileEntityMachineWoodBurner.class, "tileentity_wood_burner"); put(TileEntityRedBarrel.class, "tileentity_barrel"); put(TileEntityYellowBarrel.class, "tileentity_nukebarrel"); put(TileEntityLaunchPad.class, "tileentity_launch1"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCoal.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCoal.java index b13e35d18..c616c9afc 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCoal.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCoal.java @@ -1,265 +1,33 @@ package com.hbm.tileentity.machine; -import java.io.IOException; +import com.hbm.blocks.ModBlocks; +import com.hbm.tileentity.TileEntityMachineBase; -import com.google.gson.JsonObject; -import com.google.gson.stream.JsonWriter; -import com.hbm.blocks.machine.MachineCoal; -import com.hbm.handler.pollution.PollutionHandler; -import com.hbm.handler.pollution.PollutionHandler.PollutionType; -import com.hbm.inventory.FluidContainerRegistry; -import com.hbm.inventory.container.ContainerMachineCoal; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.fluid.tank.FluidTank; -import com.hbm.inventory.gui.GUIMachineCoal; -import com.hbm.items.ModItems; -import com.hbm.lib.Library; -import com.hbm.tileentity.IConfigurableMachine; -import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityMachinePolluting; - -import api.hbm.energy.IBatteryItem; -import api.hbm.energy.IEnergyGenerator; -import api.hbm.fluid.IFluidStandardTransceiver; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.inventory.Container; +import net.minecraft.entity.item.EntityItem; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntityFurnace; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineCoal extends TileEntityMachinePolluting implements ISidedInventory, IEnergyGenerator, IFluidStandardTransceiver, IConfigurableMachine, IGUIProvider { - - public long power; - public int burnTime; - public static final long maxPower = 100000; - public FluidTank tank; - - private static final int[] slots_top = new int[] {1}; - private static final int[] slots_bottom = new int[] {0, 2}; - private static final int[] slots_side = new int[] {0, 2}; - - /* CONFIGURABLE CONSTANTS */ - public static int waterCap = 5000; - public static int genRate = 25; - public static double fuelMod = 0.5D; +@Deprecated +public class TileEntityMachineCoal extends TileEntityMachineBase implements ISidedInventory { public TileEntityMachineCoal() { - super(4, 50); - tank = new FluidTank(Fluids.WATER, waterCap, 0); + super(4); } @Override public String getName() { return "container.machineCoal"; } - - @Override - public boolean isItemValidForSlot(int i, ItemStack stack) { - if(i == 0) - if(FluidContainerRegistry.getFluidContent(stack, Fluids.WATER) > 0) - return true; - if(i == 2) - if(stack.getItem() instanceof IBatteryItem) - return true; - if(i == 1) - if(TileEntityFurnace.getItemBurnTime(stack) > 0) - return true; - - return false; - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - - this.power = nbt.getLong("powerTime"); - tank.readFromNBT(nbt, "water"); - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - nbt.setLong("powerTime", power); - tank.writeToNBT(nbt, "water"); - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) { - return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side); - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack); - } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - if(i == 0) - if(itemStack.getItem() == Items.bucket || itemStack.getItem() == ModItems.rod_empty || itemStack.getItem() == ModItems.rod_dual_empty || itemStack.getItem() == ModItems.rod_quad_empty) - return true; - if(i == 2) - if (itemStack.getItem() instanceof IBatteryItem && ((IBatteryItem)itemStack.getItem()).getCharge(itemStack) == ((IBatteryItem)itemStack.getItem()).getMaxCharge()) - return true; - - return false; - } - - public long getPowerScaled(long i) { - return (power * i) / maxPower; - } @Override public void updateEntity() { if(!worldObj.isRemote) { - - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { - this.sendPower(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); - this.sendSmoke(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); - } - - this.subscribeToAllAround(Fluids.WATER, this); - - //Water - tank.loadTank(0, 3, slots); - - tank.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - - //Battery Item - power = Library.chargeItemsFromTE(slots, 2, power, maxPower); - - boolean trigger = true; - - if(isItemValid() && this.burnTime == 0) { - trigger = false; - } - - if(trigger) { - MachineCoal.updateBlockState(this.burnTime > 0, this.worldObj, this.xCoord, this.yCoord, this.zCoord); - } - - generate(); - - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", power); - data.setInteger("burnTime", burnTime); - tank.writeToNBT(data, "tank"); - this.networkPack(data, 15); + worldObj.setBlockToAir(xCoord, yCoord, zCoord); + EntityItem drop = new EntityItem(worldObj); + drop.setEntityItemStack(new ItemStack(ModBlocks.machine_wood_burner)); + drop.setPosition(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5); + worldObj.spawnEntityInWorld(drop); } } - - @Override - public void networkUnpack(NBTTagCompound nbt) { - this.power = nbt.getLong("power"); - this.burnTime = nbt.getInteger("burnTime"); - this.tank.readFromNBT(nbt, "tank"); - } - - public void generate() { - - if(slots[1] != null && TileEntityFurnace.getItemBurnTime(slots[1]) > 0 && burnTime <= 0) - { - burnTime = (int) (TileEntityFurnace.getItemBurnTime(slots[1]) * fuelMod); - slots[1].stackSize -= 1; - if(slots[1].stackSize == 0) - { - if(slots[1].getItem().getContainerItem() != null) - slots[1] = new ItemStack(slots[1].getItem().getContainerItem()); - else - slots[1] = null; - } - } - - if(burnTime > 0) { - burnTime--; - - if(worldObj.getTotalWorldTime() % 20 == 0) this.pollute(PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND); - - if(tank.getFill() > 0) { - tank.setFill(tank.getFill() - 1); - - power += genRate; - - if(power > maxPower) - power = maxPower; - } - } - } - - public boolean isItemValid() { - - if(slots[1] != null && TileEntityFurnace.getItemBurnTime(slots[1]) > 0) { - return true; - } - - return false; - } - - @Override - public long getPower() { - return power; - } - - @Override - public void setPower(long i) { - this.power = i; - } - - @Override - public long getMaxPower() { - return this.maxPower; - } - - @Override - public FluidTank[] getReceivingTanks() { - return new FluidTank[] {tank}; - } - - @Override - public FluidTank[] getSendingTanks() { - return this.getSmokeTanks(); - } - - @Override - public FluidTank[] getAllTanks() { - return new FluidTank[] { tank }; - } - - @Override - public String getConfigName() { - return "combustiongen"; - } - - @Override - public void readIfPresent(JsonObject obj) { - waterCap = IConfigurableMachine.grab(obj, "I:waterCapacity", waterCap); - genRate = IConfigurableMachine.grab(obj, "I:powerGen", genRate); - fuelMod = IConfigurableMachine.grab(obj, "D:burnTimeMod", fuelMod); - } - - @Override - public void writeConfig(JsonWriter writer) throws IOException { - writer.name("I:waterCapacity").value(waterCap); - writer.name("I:powerGen").value(genRate); - writer.name("D:burnTimeMod").value(fuelMod); - } - - @Override - public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new ContainerMachineCoal(player.inventory, this); - } - - @Override - @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GUIMachineCoal(player.inventory, this); - } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java new file mode 100644 index 000000000..57c6bf6c1 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java @@ -0,0 +1,112 @@ +package com.hbm.tileentity.machine; + +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.inventory.fluid.trait.FT_Flammable; +import com.hbm.module.ModuleBurnTime; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.TileEntityMachinePolluting; + +import api.hbm.fluid.IFluidStandardTransceiver; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; + +public class TileEntityMachineWoodBurner extends TileEntityMachinePolluting implements IFluidStandardTransceiver, IGUIProvider { + + public long power; + public static final long maxPower = 100_000; + public int burnTime; + public int maxBurnTime; + public boolean liquidBurn = false; + public boolean isOn = false; + + public FluidTank tank; + + public static ModuleBurnTime burnModule = new ModuleBurnTime().setLogTimeMod(3).setWoodTimeMod(2); + + public int ashLevelWood; + public int ashLevelCoal; + public int ashLevelMisc; + + public TileEntityMachineWoodBurner() { + super(6, 60); + this.tank = new FluidTank(Fluids.WOODOIL, 16_000); + } + + @Override + public String getName() { + return "container.machineWoodBurner"; + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + if(!liquidBurn) { + + if(this.burnTime <= 0) { + + if(slots[0] != null) { + int burn = this.burnModule.getBurnTime(slots[0]); + if(burn > 0) { + this.maxBurnTime = burn; + this.decrStackSize(0, 1); + this.markChanged(); + } + } + + } else if(this.power < this.maxPower){ + this.burnTime--; + this.power += 100; + if(power > maxPower) this.power = this.maxPower; + } + + } else { + + if(this.power < this.maxPower && tank.getFill() > 0) { + FT_Flammable trait = tank.getTankType().getTrait(FT_Flammable.class); + + if(trait != null) { + this.power += trait.getHeatEnergy() / 2L; + tank.setFill(tank.getFill() - 1); + } + } + } + + NBTTagCompound data = new NBTTagCompound(); + this.networkPack(data, 25); + } + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return null; + } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return null; + } + + @Override + public FluidTank[] getAllTanks() { + return new FluidTank[] {tank, smoke, smoke_leaded, smoke_poison}; + } + + @Override + public FluidTank[] getSendingTanks() { + return this.getSmokeTanks(); + } + + @Override + public FluidTank[] getReceivingTanks() { + return new FluidTank[] {tank}; + } +} diff --git a/src/main/java/com/hbm/world/gen/component/BunkerComponents.java b/src/main/java/com/hbm/world/gen/component/BunkerComponents.java index acb8481c3..286687203 100644 --- a/src/main/java/com/hbm/world/gen/component/BunkerComponents.java +++ b/src/main/java/com/hbm/world/gen/component/BunkerComponents.java @@ -802,9 +802,9 @@ public class BunkerComponents { default: fillWithBlocks(world, box, 6, 1, 1, 6, 3, 1, ModBlocks.deco_pipe_framed_rusted); for(int i = 7; i <= 9; i += 2) { - placeBlockAtCurrentPosition(world, ModBlocks.machine_coal_off, decoMetaN, i, 1, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.machine_electric_furnace_off, decoMetaN, i, 1, 1, box); placeBlockAtCurrentPosition(world, ModBlocks.steel_beam, 2, i, 2, 1, box); - placeBlockAtCurrentPosition(world, ModBlocks.machine_coal_off, decoMetaN, i, 3, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.machine_electric_furnace_off, decoMetaN, i, 3, 1, box); } placeBlockAtCurrentPosition(world, ModBlocks.deco_red_copper, 0, 8, 1, 1, box); placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 5, 8, 2, 1, box); @@ -853,18 +853,18 @@ public class BunkerComponents { fillWithBlocks(world, box, i, 3, 2, i, 3, 4, ModBlocks.deco_lead); } placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 5, 8, 1, 4, box); - placeBlockAtCurrentPosition(world, ModBlocks.reactor_computer, 0, 8, 2, 4, box); + placeBlockAtCurrentPosition(world, Blocks.redstone_lamp, 0, 8, 2, 4, box); placeBlockAtCurrentPosition(world, ModBlocks.concrete_colored_ext, 5, 8, 3, 4, box); placeLever(world, box, 3, rand.nextBoolean(), 8, 2, 5); - placeBlockAtCurrentPosition(world, ModBlocks.reactor_element, 0, 8, 1, 3, box); - placeBlockAtCurrentPosition(world, ModBlocks.reactor_control, 0, 8, 2, 3, box); - placeBlockAtCurrentPosition(world, ModBlocks.reactor_element, 0, 8, 3, 3, box); + placeBlockAtCurrentPosition(world, ModBlocks.pwr_fuel, 0, 8, 1, 3, box); + placeBlockAtCurrentPosition(world, ModBlocks.pwr_control, 0, 8, 2, 3, box); + placeBlockAtCurrentPosition(world, ModBlocks.pwr_fuel, 0, 8, 3, 3, box); placeBlockAtCurrentPosition(world, ModBlocks.block_copper, 0, 8, 1, 2, box); placeBlockAtCurrentPosition(world, ModBlocks.block_lead, 0, 8, 2, 2, box); placeBlockAtCurrentPosition(world, ModBlocks.block_copper, 0, 8, 3, 2, box); - placeBlockAtCurrentPosition(world, ModBlocks.reactor_conductor, 0, 8, 1, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.pwr_channel, 0, 8, 1, 1, box); placeBlockAtCurrentPosition(world, ModBlocks.machine_turbine, 0, 8, 2, 1, box); - placeBlockAtCurrentPosition(world, ModBlocks.reactor_conductor, 0, 8, 3, 1, box); + placeBlockAtCurrentPosition(world, ModBlocks.pwr_channel, 0, 8, 3, 1, box); fillWithBlocks(world, box, 9, 1, 1, 9, 3, 1, ModBlocks.deco_steel); placeBlockAtCurrentPosition(world, ModBlocks.steel_grate, 7, 10, 1, 1, box); placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, getDecoModelMeta(1), 10, 2, 1, box); diff --git a/src/main/resources/assets/hbm/models/machines/wood_burner.obj b/src/main/resources/assets/hbm/models/machines/wood_burner.obj new file mode 100644 index 000000000..9d9085591 --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/wood_burner.obj @@ -0,0 +1,1112 @@ +# Blender v2.79 (sub 0) OBJ File: '' +# www.blender.org +o Cylinder +v -0.292386 1.031250 0.845970 +v -0.465753 1.031250 0.917385 +v -0.465753 0.968750 0.917385 +v -0.292386 0.968750 0.845970 +v -0.187500 0.687500 0.937500 +v -0.187500 0.625000 1.000000 +v 0.187500 0.625000 1.000000 +v 0.187500 0.687500 0.937500 +v 0.163320 0.625000 0.875000 +v 0.000000 0.788320 0.875000 +v -0.163321 0.625000 0.875000 +v 0.000000 0.461679 0.875000 +v -0.438154 3.562500 -0.500000 +v -0.500000 3.562500 -0.561846 +v -0.561846 3.562500 -0.500000 +v -0.500000 3.562500 -0.438154 +v 0.687500 0.875000 -0.625000 +v 0.687500 0.875000 -0.250000 +v 0.687500 0.687500 -0.250000 +v 0.687500 0.000000 -0.250000 +v 0.687500 0.000000 -0.625000 +v -0.687500 0.000000 -0.250000 +v 0.562500 0.687500 -0.250000 +v -0.562500 0.687500 -0.250000 +v -0.687500 0.687500 -0.250000 +v -0.297517 0.484684 0.750000 +v -0.362222 0.372612 0.750000 +v 0.000000 0.275555 0.750000 +v 0.000000 0.404965 0.750000 +v -0.297518 1.515315 -0.812500 +v 0.297517 1.515316 -0.812500 +v 0.595035 1.000000 -0.812500 +v -0.297517 0.484685 -0.812500 +v -0.595035 1.000000 0.750000 +v -0.515316 1.297517 0.750000 +v -0.627388 1.362222 0.750000 +v -0.724444 1.000000 0.750000 +v -0.627387 0.637778 0.750000 +v -0.515315 0.702482 0.750000 +v -0.187500 0.687500 -0.625000 +v -0.187500 0.687500 -1.000000 +v -0.312500 0.687500 -1.000000 +v -0.562500 0.687500 -0.625000 +v -0.297518 1.515315 0.750000 +v -0.362223 1.627387 0.750000 +v 0.000000 0.404965 -0.750000 +v 0.000000 0.275556 -0.750000 +v -0.362222 0.372613 -0.750000 +v -0.297517 0.484685 -0.750000 +v 0.000000 1.595035 -0.750000 +v 0.000000 1.724445 -0.750000 +v 0.362222 1.627387 -0.750000 +v 0.297517 1.515316 -0.750000 +v -0.595035 1.000000 -0.750000 +v -0.515315 0.702482 -0.750000 +v -0.627387 0.637778 -0.750000 +v -0.724444 1.000000 -0.750000 +v -0.627388 1.362222 -0.750000 +v -0.515316 1.297517 -0.750000 +v -0.297518 1.515315 -0.750000 +v -0.362223 1.627387 -0.750000 +v 0.595035 1.000000 0.750000 +v 0.724444 1.000000 0.750000 +v 0.627387 1.362222 0.750000 +v 0.515315 1.297517 0.750000 +v -0.115485 0.740485 0.875000 +v -0.115485 0.740485 0.812500 +v -0.163321 0.625000 0.812500 +v 0.312500 1.156250 0.799556 +v 0.356694 1.156250 0.843750 +v 0.356694 1.031250 0.843750 +v 0.312500 1.031250 0.799556 +v 0.687500 0.875000 0.250000 +v 0.687500 0.875000 0.625000 +v 0.687500 -0.000000 0.625000 +v 0.687500 -0.000000 0.250000 +v 0.000000 1.430084 0.875000 +v 0.000000 1.430084 0.937500 +v 0.044194 1.385889 0.937500 +v 0.044194 1.385889 0.875000 +v -0.312500 1.187500 0.875000 +v -0.312500 1.187500 0.812500 +v -0.312500 0.812500 0.812500 +v -0.312500 0.812500 0.875000 +v 0.687500 0.687500 -1.000000 +v 0.687500 0.687500 -0.750000 +v 0.687500 0.000000 -0.750000 +v 0.687500 0.000000 -1.000000 +v 0.515315 0.702482 -0.750000 +v 0.627387 0.637778 -0.750000 +v 0.362222 0.372613 -0.750000 +v 0.297518 0.484685 -0.750000 +v 0.297517 1.515315 0.750000 +v 0.362222 1.627387 0.750000 +v 0.000000 1.724444 0.750000 +v 0.000000 1.595035 0.750000 +v 0.515315 0.702482 0.750000 +v 0.627387 0.637778 0.750000 +v 0.297518 0.484685 0.750000 +v 0.362222 0.372613 0.750000 +v 0.595035 1.000000 -0.750000 +v 0.724444 1.000000 -0.750000 +v -0.515316 1.297517 0.812500 +v -0.515315 0.702482 0.812500 +v 0.000000 0.404965 0.812500 +v 0.515315 1.297517 0.812500 +v 0.515315 1.297518 -0.750000 +v 0.627387 1.362222 -0.750000 +v -0.687500 0.875000 0.625000 +v -0.687500 -0.000000 0.625000 +v 0.312500 1.156250 0.887944 +v 0.268306 1.156250 0.843750 +v 0.268306 1.031250 0.843750 +v 0.312500 1.031250 0.887944 +v -0.044194 1.385889 0.875000 +v -0.044194 1.385889 0.937500 +v -0.187500 0.687500 0.875000 +v 0.187500 0.687500 0.875000 +v 0.250000 1.479639 0.875000 +v -0.250000 1.479639 0.875000 +v -0.250000 1.292139 0.875000 +v 0.250000 1.292139 0.875000 +v -0.687500 0.875000 -0.250000 +v -0.562500 0.875000 -0.250000 +v 0.562500 0.000000 -0.625000 +v 0.562500 0.687500 -0.625000 +v 0.562500 0.875000 -0.625000 +v -0.687500 0.000000 -1.000000 +v -0.687500 0.687500 -1.000000 +v 0.187500 0.687500 -1.000000 +v 0.312500 0.687500 -1.000000 +v 0.187500 0.750000 -0.937500 +v 0.187500 0.687500 -0.625000 +v -0.543732 3.937500 -0.456268 +v -0.561846 3.937500 -0.500000 +v -0.595671 3.937500 -0.500000 +v -0.567650 3.937500 -0.432350 +v 0.562500 0.875000 -0.250000 +v -0.687500 0.875000 0.250000 +v -0.687500 -0.000000 0.250000 +v 0.250000 1.479639 0.812500 +v 0.250000 1.292139 0.812500 +v 0.187500 0.750000 -0.625000 +v -0.187500 0.750000 -0.937500 +v -0.187500 0.750000 -0.625000 +v 0.115485 0.509515 0.875000 +v 0.115485 0.509515 0.812500 +v 0.163320 0.625000 0.812500 +v 0.312500 1.187500 0.812500 +v 0.312500 1.187500 0.875000 +v 0.312500 0.812500 0.875000 +v 0.312500 0.812500 0.812500 +v -0.115485 0.509515 0.875000 +v -0.115485 0.509515 0.812500 +v 0.000000 0.461679 0.812500 +v -0.489558 1.031250 0.859596 +v -0.316191 1.031250 0.788181 +v -0.316191 0.968750 0.788181 +v -0.489558 0.968750 0.859596 +v 0.000000 0.788320 0.812500 +v 0.115485 0.740485 0.875000 +v 0.115485 0.740485 0.812500 +v 0.000000 1.341695 0.875000 +v 0.000000 1.341695 0.937500 +v 0.312500 0.968750 0.887944 +v 0.268306 0.968750 0.843750 +v 0.268306 0.843750 0.843750 +v 0.312500 0.843750 0.887944 +v -0.187500 -0.000000 1.000000 +v 0.187500 -0.000000 1.000000 +v -0.687500 0.000000 -0.625000 +v -0.562500 0.000000 -0.625000 +v -0.687500 0.875000 -0.625000 +v -0.562500 0.875000 -0.625000 +v 0.356694 0.843750 0.843750 +v 0.312500 0.843750 0.799556 +v -0.250000 1.479639 0.812500 +v -0.250000 1.292139 0.812500 +v 0.187500 -0.000000 0.875000 +v -0.187500 -0.000000 0.875000 +v 0.312500 0.968750 0.799556 +v 0.356694 0.968750 0.843750 +v -0.567650 3.875000 -0.432350 +v -0.595671 3.875000 -0.500000 +v -0.663320 3.875000 -0.500000 +v -0.615485 3.875000 -0.384515 +v -0.500000 3.875000 -0.336680 +v -0.500000 3.875000 -0.404329 +v -0.384515 3.875000 -0.384515 +v -0.432350 3.875000 -0.432350 +v -0.543732 3.937500 -0.543732 +v -0.500000 3.937500 -0.561846 +v -0.500000 3.937500 -0.595671 +v -0.567650 3.937500 -0.567650 +v -0.336680 3.875000 -0.500000 +v -0.404329 3.875000 -0.500000 +v -0.500000 3.875000 -0.595671 +v -0.432350 3.875000 -0.567650 +v -0.384515 3.875000 -0.615485 +v -0.500000 3.875000 -0.663320 +v -0.456268 3.937500 -0.456268 +v -0.500000 3.937500 -0.438154 +v -0.500000 3.937500 -0.404329 +v -0.432350 3.937500 -0.432350 +v -0.567650 3.875000 -0.567650 +v -0.615485 3.875000 -0.615485 +v -0.456268 3.937500 -0.543732 +v -0.438154 3.937500 -0.500000 +v -0.404329 3.937500 -0.500000 +v -0.432350 3.937500 -0.567650 +v -0.687500 0.687500 -0.750000 +v -0.687500 0.000000 -0.750000 +v 0.297517 1.515315 0.812500 +v 0.000000 1.595035 0.812500 +v -0.297518 1.515315 0.812500 +v -0.595035 1.000000 0.812500 +v -0.297517 0.484684 0.812500 +v 0.297518 0.484685 0.812500 +v 0.515315 0.702482 0.812500 +v 0.595035 1.000000 0.812500 +v 0.000000 1.595035 -0.812500 +v 0.515315 1.297518 -0.812500 +v 0.515315 0.702482 -0.812500 +v 0.297518 0.484685 -0.812500 +v 0.000000 0.404965 -0.812500 +v -0.515315 0.702482 -0.812500 +v -0.595035 1.000000 -0.812500 +v -0.515316 1.297517 -0.812500 +v -0.456268 3.562500 -0.543732 +v -0.543732 3.562500 -0.543732 +v -0.543732 3.562500 -0.456268 +v -0.456268 3.562500 -0.456268 +v -0.336680 1.000000 -0.500000 +v -0.384515 1.000000 -0.615485 +v -0.384515 1.000000 -0.384515 +v -0.500000 1.000000 -0.336680 +v -0.663320 1.000000 -0.500000 +v -0.615485 1.000000 -0.384515 +v -0.500000 1.000000 -0.663320 +v -0.615485 1.000000 -0.615485 +vt 0.151724 0.294872 +vt 0.172414 0.282051 +vt 0.172414 0.294872 +vt 0.358621 0.294872 +vt 0.400000 0.307692 +vt 0.358621 0.307692 +vt 0.141623 0.191624 +vt 0.141623 0.128949 +vt 0.158480 0.160287 +vt 0.131269 0.551147 +vt 0.130943 0.526053 +vt 0.137855 0.538297 +vt 0.972414 0.358974 +vt 0.896552 0.358974 +vt 0.896552 0.282051 +vt 0.882759 0.500000 +vt 0.758621 0.500000 +vt 0.468966 1.000000 +vt 0.503448 0.974359 +vt 0.496552 1.000000 +vt 0.608602 0.714253 +vt 0.510620 0.609091 +vt 0.608602 0.503929 +vt 0.344828 1.000000 +vt 0.379310 0.974359 +vt 0.372414 1.000000 +vt 0.386207 1.000000 +vt 0.420690 0.974359 +vt 0.413793 1.000000 +vt 0.324138 0.641026 +vt 0.337931 0.564103 +vt 0.365517 0.641026 +vt 0.303448 1.000000 +vt 0.337931 0.974359 +vt 0.331034 1.000000 +vt 0.503448 0.666667 +vt 0.468966 0.641026 +vt 0.496552 0.641026 +vt 0.255172 0.666667 +vt 0.220690 0.641026 +vt 0.248276 0.641026 +vt 0.386207 0.641026 +vt 0.420690 0.666667 +vt 0.379310 0.666667 +vt 0.344828 0.641026 +vt 0.372414 0.641026 +vt 0.303448 0.641026 +vt 0.337931 0.666667 +vt 0.296552 0.666667 +vt 0.131034 0.974359 +vt 0.165517 1.000000 +vt 0.137931 1.000000 +vt 0.462069 0.666667 +vt 0.427586 0.641026 +vt 0.455172 0.641026 +vt 0.193103 0.217949 +vt 0.206897 0.205128 +vt 0.206897 0.217949 +vt 0.289655 0.256410 +vt 0.296552 0.230769 +vt 0.296552 0.256410 +vt 0.993103 0.807692 +vt 0.896552 0.730769 +vt 0.993103 0.730769 +vt 0.131034 0.320513 +vt 0.137931 0.333333 +vt 0.131034 0.333333 +vt 0.179310 0.320513 +vt 0.186207 0.243590 +vt 0.186207 0.320513 +vt 0.200000 0.564103 +vt 0.227586 0.423077 +vt 0.227586 0.564103 +vt 0.089655 0.666667 +vt 0.055172 0.641026 +vt 0.082759 0.641026 +vt 0.213793 0.974359 +vt 0.248276 1.000000 +vt 0.220690 1.000000 +vt 0.089655 0.974359 +vt 0.124138 1.000000 +vt 0.096552 1.000000 +vt 0.048276 0.666667 +vt 0.013793 0.641026 +vt 0.041379 0.641026 +vt 0.055172 1.000000 +vt 0.082759 1.000000 +vt 0.013793 1.000000 +vt 0.048276 0.974359 +vt 0.041379 1.000000 +vt 0.262069 0.641026 +vt 0.427586 1.000000 +vt 0.462069 0.974359 +vt 0.455172 1.000000 +vt 0.124138 0.641026 +vt 0.096552 0.641026 +vt 0.520523 0.805999 +vt 0.631502 0.925110 +vt 0.520523 0.925110 +vt 0.172414 0.974359 +vt 0.206897 1.000000 +vt 0.179310 1.000000 +vt 0.255172 0.974359 +vt 0.289655 1.000000 +vt 0.262069 1.000000 +vt 0.179310 0.641026 +vt 0.213793 0.666667 +vt 0.172414 0.666667 +vt 0.744828 0.987179 +vt 0.896552 0.807692 +vt 0.896552 0.987179 +vt 0.275862 0.256410 +vt 0.282759 0.230769 +vt 0.282759 0.256410 +vt 0.124138 0.320513 +vt 0.131034 0.307692 +vt 0.400000 0.320513 +vt 0.358621 0.320513 +vt 0.137931 0.397436 +vt 0.193103 0.358974 +vt 0.193103 0.397436 +vt 0.744828 0.500000 +vt 0.758621 0.538462 +vt 0.744828 0.538462 +vt 0.882759 0.282051 +vt 0.882759 0.141026 +vt 0.137931 0.641026 +vt 0.165517 0.641026 +vt 0.413793 0.307692 +vt 0.406897 0.307692 +vt 0.400000 0.294872 +vt 0.282759 0.564103 +vt 0.268966 0.564103 +vt 0.434483 0.576923 +vt 0.427586 0.641026 +vt 0.427586 0.564103 +vt 0.044010 0.634626 +vt 0.037931 0.628205 +vt 0.044828 0.628205 +vt 0.268966 0.256410 +vt 0.275862 0.230769 +vt 0.896552 0.538462 +vt 0.896552 0.500000 +vt 0.648276 0.730769 +vt 0.744828 0.807692 +vt 0.648276 0.807692 +vt 0.200000 0.358974 +vt 0.200000 0.397436 +vt 0.475862 0.641026 +vt 0.434483 0.641026 +vt 0.227586 0.615385 +vt 0.475862 0.576923 +vt 0.482759 0.641026 +vt 0.137931 0.217949 +vt 0.151724 0.205128 +vt 0.151724 0.217949 +vt 0.255172 0.320513 +vt 0.262069 0.243590 +vt 0.262069 0.320513 +vt 0.220690 0.217949 +vt 0.234483 0.205128 +vt 0.234483 0.217949 +vt 0.255172 0.243590 +vt 0.186207 0.230769 +vt 0.255172 0.230769 +vt 0.172414 0.307692 +vt 0.151724 0.320513 +vt 0.151724 0.307692 +vt 0.179310 0.217949 +vt 0.193103 0.205128 +vt 0.200000 0.423077 +vt 0.186207 0.564103 +vt 0.186207 0.423077 +vt 0.744828 0.730769 +vt 0.165517 0.205128 +vt 0.165517 0.217949 +vt 0.137931 0.307692 +vt 0.131034 0.294872 +vt 0.137931 0.294872 +vt 0.137931 0.320513 +vt 0.144828 0.307692 +vt 0.144828 0.320513 +vt 0.275862 0.320513 +vt 0.282759 0.294872 +vt 0.282759 0.320513 +vt 0.400000 0.166667 +vt 0.758621 0.282051 +vt 0.668966 0.358974 +vt 0.648276 0.282051 +vt 0.744828 0.282051 +vt 0.144828 0.294872 +vt 0.151724 0.282051 +vt 0.275862 0.217949 +vt 0.282759 0.217949 +vt 0.289655 0.230769 +vt 0.744828 0.102564 +vt 0.758621 0.102564 +vt 0.758621 0.141026 +vt 0.275862 0.269231 +vt 0.282759 0.269231 +vt 0.275862 0.282051 +vt 0.282759 0.282051 +vt 0.131034 0.397436 +vt 0.137931 0.358974 +vt 0.358621 0.141026 +vt 0.400000 0.141026 +vt 0.255172 0.333333 +vt 0.186207 0.333333 +vt 0.413793 0.166667 +vt 0.193103 0.410256 +vt 0.137931 0.410256 +vt 0.896552 0.551282 +vt 0.744828 0.551282 +vt 0.275862 0.333333 +vt 0.282759 0.333333 +vt 0.151724 0.269231 +vt 0.172414 0.269231 +vt 0.124138 0.217949 +vt 0.137931 0.205128 +vt 0.137931 0.346154 +vt 0.193103 0.346154 +vt 0.044828 0.615385 +vt 0.034483 0.602564 +vt 0.048276 0.602564 +vt 0.051724 0.615385 +vt 0.062069 0.602564 +vt 0.058621 0.615385 +vt 0.072414 0.615385 +vt 0.065517 0.615385 +vt 0.016435 0.634626 +vt 0.010345 0.628205 +vt 0.017241 0.628205 +vt 0.079310 0.615385 +vt 0.089655 0.602564 +vt 0.086207 0.615385 +vt 0.025002 0.634626 +vt 0.031034 0.628205 +vt 0.030223 0.634626 +vt 0.106897 0.615385 +vt 0.117241 0.602564 +vt 0.113793 0.615385 +vt 0.071585 0.634626 +vt 0.065517 0.628205 +vt 0.072414 0.628205 +vt 0.179310 0.205128 +vt 0.434483 0.564103 +vt 0.475862 0.564103 +vt 0.100000 0.615385 +vt 0.093103 0.615385 +vt 0.017241 0.615385 +vt 0.006897 0.602564 +vt 0.020690 0.602564 +vt 0.024138 0.615385 +vt 0.031034 0.615385 +vt 0.099160 0.634626 +vt 0.093103 0.628205 +vt 0.100000 0.628205 +vt 0.107726 0.634626 +vt 0.113793 0.628205 +vt 0.112947 0.634626 +vt 0.052577 0.634626 +vt 0.058621 0.628205 +vt 0.057798 0.634626 +vt 0.080151 0.634626 +vt 0.086207 0.628205 +vt 0.085373 0.634626 +vt 0.220690 0.205128 +vt 0.420690 0.564103 +vt 0.406897 0.423077 +vt 0.420690 0.423077 +vt 0.289655 0.320513 +vt 0.296552 0.294872 +vt 0.296552 0.320513 +vt 0.303448 0.307692 +vt 0.344828 0.166667 +vt 0.344828 0.307692 +vt 0.268966 0.320513 +vt 0.275862 0.294872 +vt 0.289655 0.294872 +vt 0.608049 0.968708 +vt 0.576012 0.984666 +vt 0.543975 0.968708 +vt 0.511939 0.865555 +vt 0.543975 0.762401 +vt 0.576012 0.746443 +vt 0.608049 0.762401 +vt 0.631502 0.805999 +vt 0.640086 0.865555 +vt 0.575941 0.730521 +vt 0.543281 0.714253 +vt 0.519371 0.669806 +vt 0.519371 0.548376 +vt 0.543281 0.503929 +vt 0.575941 0.487661 +vt 0.632511 0.548376 +vt 0.641262 0.609091 +vt 0.632511 0.669806 +vt 0.351724 0.307692 +vt 0.282759 0.641026 +vt 0.379310 0.564103 +vt 0.379310 0.423077 +vt 0.379310 0.615385 +vt 0.241379 0.641026 +vt 0.482759 0.564103 +vt 0.153543 0.182446 +vt 0.129703 0.182446 +vt 0.124765 0.160287 +vt 0.129703 0.138128 +vt 0.153543 0.138128 +vt 0.135994 0.547258 +vt 0.126448 0.547686 +vt 0.124356 0.538902 +vt 0.126218 0.529942 +vt 0.135763 0.529514 +vt 0.227586 0.371795 +vt 0.241379 0.346154 +vt 0.993103 0.282051 +vt 0.993103 0.358974 +vt 0.744828 0.358974 +vt 0.324138 0.564103 +vt 0.296552 0.974359 +vt 0.413793 0.641026 +vt 0.331034 0.641026 +vt 0.179310 0.243590 +vt 0.006897 0.666667 +vt 0.006897 0.974359 +vt 0.289655 0.641026 +vt 0.131034 0.666667 +vt 0.206897 0.641026 +vt 0.124138 0.307692 +vt 0.882759 0.102564 +vt 0.896552 0.102564 +vt 0.038789 0.634626 +vt 0.268966 0.230769 +vt 0.882759 0.538462 +vt 0.172414 0.320513 +vt 0.358621 0.166667 +vt 0.648276 0.358974 +vt 0.144828 0.282051 +vt 0.131034 0.358974 +vt 0.124138 0.205128 +vt 0.037931 0.615385 +vt 0.075862 0.602564 +vt 0.011214 0.634626 +vt 0.024138 0.628205 +vt 0.103448 0.602564 +vt 0.066364 0.634626 +vt 0.010345 0.615385 +vt 0.093939 0.634626 +vt 0.106897 0.628205 +vt 0.051724 0.628205 +vt 0.079310 0.628205 +vt 0.406897 0.564103 +vt 0.303448 0.166667 +vt 0.268966 0.294872 +vt 0.365517 0.346154 +vt 0.379310 0.371795 +vt 0.103448 0.012821 +vt 0.372414 0.051282 +vt 0.337931 0.038462 +vt 0.372414 0.038462 +vt 0.131034 0.012821 +vt 0.165517 0.025641 +vt 0.131034 0.025641 +vt 0.158621 0.564103 +vt 0.165517 0.641026 +vt 0.158621 0.641026 +vt 0.406897 0.051282 +vt 0.406897 0.038462 +vt 0.200000 0.051282 +vt 0.165517 0.038462 +vt 0.200000 0.038462 +vt 0.089655 0.012821 +vt 0.137931 0.564103 +vt 0.144828 0.641026 +vt 0.137931 0.641026 +vt 0.234483 0.051282 +vt 0.234483 0.038462 +vt 0.165517 0.564103 +vt 0.172414 0.641026 +vt 0.151724 0.564103 +vt 0.151724 0.641026 +vt 0.124138 0.564103 +vt 0.131034 0.641026 +vt 0.124138 0.641026 +vt 0.441379 0.012821 +vt 0.475862 0.025641 +vt 0.441379 0.025641 +vt 0.075862 0.012821 +vt 0.268966 0.012821 +vt 0.303448 0.025641 +vt 0.268966 0.025641 +vt 0.048276 0.012821 +vt 0.475862 0.012821 +vt 0.510345 0.025641 +vt 0.165517 0.051282 +vt 0.131034 0.038462 +vt 0.544828 0.051282 +vt 0.510345 0.038462 +vt 0.544828 0.038462 +vt 0.200000 0.012821 +vt 0.234483 0.025641 +vt 0.200000 0.025641 +vt 0.406897 0.012821 +vt 0.406897 0.025641 +vt 0.172414 0.564103 +vt 0.179310 0.641026 +vt 0.510345 0.012821 +vt 0.544828 0.025641 +vt 0.372414 0.012821 +vt 0.372414 0.025641 +vt 0.131034 0.564103 +vt 0.144828 0.564103 +vt 0.303448 0.012821 +vt 0.337931 0.025641 +vt 0.337931 0.012821 +vt 0.234483 0.012821 +vt 0.117241 0.012821 +vt 0.337931 0.051282 +vt 0.303448 0.038462 +vt 0.268966 0.051282 +vt 0.268966 0.038462 +vt 0.062069 0.012821 +vt 0.510345 0.051282 +vt 0.475862 0.038462 +vt 0.441379 0.051282 +vt 0.441379 0.038462 +vt 0.475862 0.051282 +vt 0.020690 0.012821 +vt 0.034483 0.012821 +vt 0.165517 0.012821 +vt 0.303448 0.051282 +vt 0.131034 0.051282 +vt 0.179310 0.564103 +vt 0.544828 0.012821 +vt 0.006897 0.012821 +vn 0.3809 0.0000 0.9246 +vn 0.0000 0.7071 0.7071 +vn 0.0000 -0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -0.9239 0.3827 0.0000 +vn 0.7071 0.0000 -0.7071 +vn 0.7071 0.7071 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.7071 0.0000 0.7071 +vn -0.7071 0.7071 0.0000 +vn -0.7071 0.0000 -0.7071 +vn 0.9239 -0.3827 0.0000 +vn -0.3827 -0.9239 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -0.3809 0.0000 -0.9246 +vn -0.3827 0.9239 0.0000 +vn 0.7071 -0.0000 0.7071 +vn 0.9239 0.3827 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn -0.9246 0.0000 0.3809 +vn 0.3827 -0.9239 0.0000 +vn 0.3827 0.9239 0.0000 +vn 0.0000 0.7071 -0.7071 +vn -0.9239 -0.3827 0.0000 +vn -0.5000 0.8660 0.0000 +vn -0.8660 0.5000 0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.5000 -0.8660 -0.0000 +vn 0.5000 -0.8660 -0.0000 +vn 0.8660 -0.5000 0.0000 +vn -0.8660 -0.5000 -0.0000 +vn 0.8660 0.5000 0.0000 +s off +f 2/1/1 4/2/1 1/3/1 +f 6/4/2 8/5/2 5/6/2 +f 10/7/3 12/8/3 9/9/3 +f 14/10/4 16/11/4 13/12/4 +f 19/13/5 20/14/5 21/15/5 +f 20/14/3 23/16/3 24/17/3 +f 26/18/3 28/19/3 29/20/3 +f 30/21/6 32/22/6 33/23/6 +f 35/24/3 37/25/3 34/26/3 +f 34/27/3 38/28/3 39/29/3 +f 40/30/4 42/31/4 43/32/4 +f 44/33/3 36/34/3 35/35/3 +f 47/36/6 49/37/6 46/38/6 +f 51/39/6 53/40/6 50/41/6 +f 54/42/6 56/43/6 57/44/6 +f 57/44/6 59/45/6 54/46/6 +f 60/47/6 58/48/6 61/49/6 +f 63/50/3 65/51/3 62/52/3 +f 48/53/6 55/54/6 49/55/6 +f 66/56/7 68/57/7 11/58/7 +f 70/59/8 72/60/8 69/61/8 +f 74/62/5 76/63/5 73/64/5 +f 78/65/9 80/66/9 77/67/9 +f 82/68/10 84/69/10 81/70/10 +f 86/71/5 88/72/5 85/73/5 +f 90/74/6 92/75/6 89/76/6 +f 94/77/3 96/78/3 93/79/3 +f 98/80/3 62/81/3 97/82/3 +f 91/83/6 46/84/6 92/85/6 +f 99/86/3 98/80/3 97/87/3 +f 29/88/3 100/89/3 99/90/3 +f 50/91/6 61/49/6 51/39/6 +f 39/92/3 27/93/3 26/94/3 +f 101/95/6 90/74/6 89/96/6 +f 104/97/3 106/98/3 103/99/3 +f 64/100/3 93/101/3 65/102/3 +f 95/103/3 44/104/3 96/105/3 +f 107/106/6 52/107/6 108/108/6 +f 109/109/3 75/110/3 74/111/3 +f 112/112/11 114/113/11 111/114/11 +f 77/115/12 116/116/12 78/65/12 +f 5/6/4 118/117/4 117/118/4 +f 120/119/3 122/120/3 119/121/3 +f 25/122/3 124/123/3 123/124/3 +f 21/15/6 125/125/6 126/126/6 +f 108/108/6 101/127/6 107/128/6 +f 118/129/5 8/130/5 7/131/5 +f 130/132/6 131/133/6 88/72/6 +f 132/134/5 133/135/5 130/136/5 +f 134/137/4 136/138/4 137/139/4 +f 69/140/13 113/141/13 112/112/13 +f 18/142/3 23/16/3 19/143/3 +f 139/144/10 110/145/10 109/146/10 +f 119/121/5 142/147/5 141/148/5 +f 132/134/4 145/149/4 143/150/4 +f 86/151/4 85/73/4 131/133/4 +f 144/152/10 40/153/10 145/149/10 +f 146/154/14 148/155/14 9/156/14 +f 150/157/5 152/158/5 149/159/5 +f 153/160/15 155/161/15 12/162/15 +f 151/163/16 83/164/16 152/165/16 +f 157/166/17 159/167/17 156/168/17 +f 10/169/18 67/170/18 66/56/18 +f 87/171/19 126/172/19 125/173/19 +f 75/110/16 140/174/16 76/63/16 +f 9/156/20 162/175/20 161/176/20 +f 164/177/21 115/178/21 163/179/21 +f 79/180/22 163/181/22 80/182/22 +f 166/183/11 168/184/11 165/185/11 +f 6/4/3 170/186/3 7/131/3 +f 172/187/16 125/125/16 20/14/16 +f 25/188/10 173/189/10 171/190/10 +f 156/191/23 3/192/23 2/1/23 +f 79/180/3 116/116/3 164/177/3 +f 114/113/16 72/193/16 71/194/16 +f 111/114/19 71/195/19 70/59/19 +f 173/196/6 174/197/6 43/198/6 +f 69/199/4 111/114/4 70/200/4 +f 168/184/16 176/201/16 175/202/16 +f 177/203/10 121/204/10 120/119/10 +f 170/186/16 180/205/16 179/206/16 +f 81/70/4 149/207/4 82/208/4 +f 179/209/5 7/131/5 170/186/5 +f 120/119/4 141/210/4 177/211/4 +f 73/212/6 140/174/6 139/213/6 +f 181/214/4 165/185/4 182/215/4 +f 4/2/16 159/216/16 158/217/16 +f 81/70/3 151/163/3 150/157/3 +f 12/218/24 147/219/24 146/154/24 +f 122/120/16 178/220/16 142/221/16 +f 183/222/4 185/223/4 186/224/4 +f 183/225/4 187/226/4 188/227/4 +f 187/226/4 190/228/4 188/229/4 +f 191/230/4 193/231/4 194/232/4 +f 190/233/4 195/234/4 196/235/4 +f 191/236/4 136/237/4 135/238/4 +f 198/239/4 200/240/4 197/241/4 +f 201/242/4 203/243/4 204/244/4 +f 161/176/25 160/245/25 10/169/25 +f 144/152/26 130/246/26 41/247/26 +f 195/234/4 198/248/4 196/249/4 +f 205/250/4 200/251/4 206/252/4 +f 205/253/4 185/223/4 184/254/4 +f 207/255/4 209/256/4 210/257/4 +f 207/258/4 193/259/4 192/260/4 +f 134/261/4 203/262/4 202/263/4 +f 201/264/4 209/265/4 208/266/4 +f 2/1/4 157/166/4 156/168/4 +f 11/58/27 154/267/27 153/160/27 +f 43/268/11 212/269/11 172/270/11 +f 182/271/8 176/272/8 181/273/8 +f 118/274/6 180/275/6 117/276/6 +f 181/277/13 167/278/13 166/183/13 +f 165/185/19 175/279/19 182/271/19 +f 106/98/3 213/280/3 103/99/3 +f 213/280/3 214/281/3 103/99/3 +f 214/281/3 215/282/3 103/99/3 +f 103/99/3 216/283/3 104/97/3 +f 104/97/3 217/284/3 105/285/3 +f 105/285/3 218/286/3 219/287/3 +f 219/287/3 220/288/3 105/285/3 +f 220/288/3 106/98/3 105/285/3 +f 30/21/6 221/289/6 31/290/6 +f 31/290/6 222/291/6 32/22/6 +f 32/22/6 223/292/6 224/293/6 +f 224/293/6 225/294/6 32/22/6 +f 225/294/6 33/23/6 32/22/6 +f 33/23/6 226/295/6 227/296/6 +f 227/296/6 228/297/6 33/23/6 +f 228/297/6 30/21/6 33/23/6 +f 6/4/10 5/298/10 117/276/10 +f 180/275/10 6/4/10 117/276/10 +f 133/299/4 131/133/4 130/132/4 +f 132/134/5 143/150/5 133/135/5 +f 212/269/10 129/300/10 128/301/10 +f 42/31/4 129/300/4 211/302/4 +f 211/302/4 43/32/4 42/31/4 +f 126/303/4 86/151/4 131/133/4 +f 144/152/10 41/304/10 40/153/10 +f 9/9/3 161/305/3 10/7/3 +f 10/7/3 66/306/3 11/307/3 +f 11/307/3 153/308/3 12/8/3 +f 12/8/3 146/309/3 9/9/3 +f 13/12/4 229/310/4 14/10/4 +f 14/10/4 230/311/4 15/312/4 +f 15/312/4 231/313/4 16/11/4 +f 16/11/4 232/314/4 13/12/4 +f 88/72/16 87/315/16 125/316/16 +f 2/1/1 3/192/1 4/2/1 +f 6/4/2 7/131/2 8/5/2 +f 10/7/3 11/307/3 12/8/3 +f 14/10/4 15/312/4 16/11/4 +f 21/15/5 17/317/5 19/13/5 +f 17/317/5 18/318/5 19/13/5 +f 25/122/3 22/319/3 24/17/3 +f 22/319/3 20/14/3 24/17/3 +f 20/14/3 19/143/3 23/16/3 +f 26/18/3 27/93/3 28/19/3 +f 30/21/6 31/290/6 32/22/6 +f 35/24/3 36/34/3 37/25/3 +f 34/27/3 37/25/3 38/28/3 +f 40/30/4 41/320/4 42/31/4 +f 44/33/3 45/321/3 36/34/3 +f 47/36/6 48/53/6 49/37/6 +f 51/39/6 52/107/6 53/40/6 +f 54/42/6 55/322/6 56/43/6 +f 57/44/6 58/48/6 59/45/6 +f 60/47/6 59/323/6 58/48/6 +f 63/50/3 64/100/3 65/51/3 +f 48/53/6 56/43/6 55/54/6 +f 66/56/7 67/170/7 68/57/7 +f 70/59/8 71/195/8 72/60/8 +f 74/62/5 75/110/5 76/63/5 +f 78/65/9 79/180/9 80/66/9 +f 82/68/10 83/324/10 84/69/10 +f 86/71/5 87/171/5 88/72/5 +f 90/74/6 91/83/6 92/75/6 +f 94/77/3 95/103/3 96/78/3 +f 98/80/3 63/50/3 62/81/3 +f 91/83/6 47/325/6 46/84/6 +f 99/86/3 100/89/3 98/80/3 +f 29/88/3 28/326/3 100/89/3 +f 50/91/6 60/327/6 61/49/6 +f 39/92/3 38/28/3 27/93/3 +f 101/95/6 102/328/6 90/74/6 +f 104/97/3 105/285/3 106/98/3 +f 64/100/3 94/77/3 93/101/3 +f 95/103/3 45/321/3 44/104/3 +f 107/106/6 53/329/6 52/107/6 +f 109/109/3 110/145/3 75/110/3 +f 112/112/11 113/141/11 114/113/11 +f 77/115/12 115/330/12 116/116/12 +f 5/6/4 8/5/4 118/117/4 +f 120/119/3 121/204/3 122/120/3 +f 25/122/3 24/17/3 124/123/3 +f 127/331/6 17/332/6 126/126/6 +f 17/332/6 21/15/6 126/126/6 +f 108/108/6 102/328/6 101/127/6 +f 88/72/6 128/301/6 41/320/6 +f 128/301/6 129/300/6 42/31/6 +f 42/31/6 41/320/6 128/301/6 +f 41/320/6 130/132/6 88/72/6 +f 131/133/6 85/73/6 88/72/6 +f 134/137/4 135/333/4 136/138/4 +f 69/140/13 72/334/13 113/141/13 +f 18/142/3 138/335/3 23/16/3 +f 139/144/10 140/174/10 110/145/10 +f 119/121/5 122/120/5 142/147/5 +f 132/134/4 144/152/4 145/149/4 +f 146/154/14 147/219/14 148/155/14 +f 150/157/5 151/163/5 152/158/5 +f 153/160/15 154/267/15 155/161/15 +f 151/163/16 84/69/16 83/164/16 +f 157/166/17 158/336/17 159/167/17 +f 10/169/18 160/245/18 67/170/18 +f 87/171/19 86/71/19 126/172/19 +f 75/110/16 110/145/16 140/174/16 +f 9/156/20 148/155/20 162/175/20 +f 164/177/21 116/116/21 115/178/21 +f 79/180/22 164/177/22 163/181/22 +f 166/183/11 167/278/11 168/184/11 +f 6/4/3 169/337/3 170/186/3 +f 125/125/16 21/15/16 20/14/16 +f 20/14/16 22/319/16 172/187/16 +f 22/319/16 171/190/16 172/187/16 +f 171/190/10 22/319/10 25/188/10 +f 25/188/10 123/338/10 173/189/10 +f 156/191/23 159/339/23 3/192/23 +f 79/180/3 78/65/3 116/116/3 +f 114/113/16 113/141/16 72/193/16 +f 111/114/19 114/113/19 71/195/19 +f 172/187/6 171/190/6 43/198/6 +f 171/190/6 173/196/6 43/198/6 +f 69/199/4 112/112/4 111/114/4 +f 168/184/16 167/278/16 176/201/16 +f 177/203/10 178/340/10 121/204/10 +f 170/186/16 169/337/16 180/205/16 +f 81/70/4 150/157/4 149/207/4 +f 179/209/5 118/129/5 7/131/5 +f 120/119/4 119/121/4 141/210/4 +f 73/212/6 76/63/6 140/174/6 +f 181/214/4 166/183/4 165/185/4 +f 4/2/16 3/192/16 159/216/16 +f 81/70/3 84/69/3 151/163/3 +f 12/218/24 155/341/24 147/219/24 +f 122/120/16 121/204/16 178/220/16 +f 183/222/4 184/342/4 185/223/4 +f 183/225/4 186/224/4 187/226/4 +f 187/226/4 189/343/4 190/228/4 +f 191/230/4 192/344/4 193/231/4 +f 190/233/4 189/343/4 195/234/4 +f 191/236/4 194/345/4 136/237/4 +f 198/239/4 199/346/4 200/240/4 +f 201/242/4 202/347/4 203/243/4 +f 161/176/25 162/175/25 160/245/25 +f 144/152/26 132/134/26 130/246/26 +f 195/234/4 199/346/4 198/248/4 +f 205/250/4 197/348/4 200/251/4 +f 205/253/4 206/252/4 185/223/4 +f 207/255/4 208/349/4 209/256/4 +f 207/258/4 210/350/4 193/259/4 +f 134/261/4 137/351/4 203/262/4 +f 201/264/4 204/352/4 209/265/4 +f 2/1/4 1/3/4 157/166/4 +f 11/58/27 68/57/27 154/267/27 +f 43/268/11 211/353/11 212/269/11 +f 182/271/8 175/279/8 176/272/8 +f 118/274/6 179/354/6 180/275/6 +f 181/277/13 176/355/13 167/278/13 +f 165/185/19 168/184/19 175/279/19 +f 180/275/10 169/337/10 6/4/10 +f 133/299/4 126/303/4 131/133/4 +f 212/269/10 211/353/10 129/300/10 +f 125/316/16 172/356/16 128/301/16 +f 172/356/16 212/357/16 128/301/16 +f 128/301/16 88/72/16 125/316/16 +s 1 +f 95/103/4 61/49/28 45/321/28 +f 36/34/29 57/44/10 37/25/10 +f 195/234/5 234/358/8 199/346/8 +f 94/77/30 51/39/4 95/103/4 +f 27/93/31 47/36/16 28/19/16 +f 100/89/32 47/325/16 91/83/32 +f 215/359/28 96/360/4 44/361/28 +f 225/362/16 92/363/32 46/364/16 +f 231/365/8 135/366/5 134/367/8 +f 103/368/29 44/361/28 35/369/29 +f 204/244/19 188/229/3 190/228/19 +f 219/370/33 99/371/32 97/372/33 +f 37/25/10 56/43/34 38/28/34 +f 203/262/3 183/225/11 188/227/3 +f 189/343/19 233/373/5 195/234/5 +f 13/374/10 201/375/13 208/376/10 +f 220/377/5 97/372/33 62/378/5 +f 15/379/5 191/380/19 135/366/5 +f 137/139/11 184/342/10 183/222/11 +f 16/381/6 134/367/8 202/382/6 +f 136/237/10 205/253/13 184/254/10 +f 98/80/33 102/328/5 63/50/5 +f 36/34/29 61/49/28 58/48/29 +f 14/383/3 207/384/11 192/385/3 +f 227/386/10 55/387/34 54/388/10 +f 187/226/3 235/389/19 189/343/19 +f 222/390/35 53/391/30 107/392/35 +f 185/223/10 238/393/11 186/224/11 +f 226/394/34 49/395/31 55/387/34 +f 193/259/6 198/239/8 197/241/6 +f 218/396/32 29/397/16 99/371/32 +f 105/398/16 26/399/31 29/400/16 +f 223/401/33 101/402/5 89/403/33 +f 228/404/29 54/388/10 59/405/29 +f 230/406/19 192/407/3 191/380/19 +f 33/408/31 46/409/16 49/395/31 +f 30/410/28 59/405/29 60/411/28 +f 38/28/34 48/53/31 27/93/31 +f 63/50/5 108/108/35 64/100/35 +f 229/412/11 208/376/10 207/384/11 +f 209/265/5 190/233/19 196/235/5 +f 232/413/13 202/382/6 201/375/13 +f 31/414/30 50/415/4 53/391/30 +f 221/416/4 60/411/28 50/415/4 +f 210/257/8 196/249/5 198/248/8 +f 32/417/5 107/392/35 101/402/5 +f 199/346/8 239/418/6 200/240/6 +f 214/419/4 93/420/30 96/360/4 +f 106/421/35 62/378/5 65/422/35 +f 194/232/13 197/348/6 205/250/13 +f 98/80/33 91/83/32 90/74/33 +f 64/100/35 52/107/30 94/77/30 +f 186/224/11 236/423/3 187/226/3 +f 217/424/31 39/425/34 26/399/31 +f 216/426/10 35/369/29 34/427/10 +f 104/428/34 34/427/10 39/425/34 +f 200/251/6 240/429/13 206/252/13 +f 206/252/13 237/430/10 185/223/10 +f 224/431/32 89/403/33 92/363/32 +f 213/432/30 65/422/35 93/420/30 +f 95/103/4 51/39/4 61/49/28 +f 36/34/29 58/48/29 57/44/10 +f 195/234/5 233/373/5 234/358/8 +f 94/77/30 52/107/30 51/39/4 +f 27/93/31 48/53/31 47/36/16 +f 100/89/32 28/326/16 47/325/16 +f 215/359/28 214/419/4 96/360/4 +f 225/362/16 224/431/32 92/363/32 +f 231/365/8 15/379/5 135/366/5 +f 103/368/29 215/359/28 44/361/28 +f 204/244/19 203/243/3 188/229/3 +f 219/370/33 218/396/32 99/371/32 +f 37/25/10 57/44/10 56/43/34 +f 203/262/3 137/351/11 183/225/11 +f 189/343/19 235/389/19 233/373/5 +f 13/374/10 232/413/13 201/375/13 +f 220/377/5 219/370/33 97/372/33 +f 15/379/5 230/406/19 191/380/19 +f 137/139/11 136/138/10 184/342/10 +f 16/381/6 231/365/8 134/367/8 +f 136/237/10 194/345/13 205/253/13 +f 98/80/33 90/74/33 102/328/5 +f 36/34/29 45/321/28 61/49/28 +f 14/383/3 229/412/11 207/384/11 +f 227/386/10 226/394/34 55/387/34 +f 187/226/3 236/423/3 235/389/19 +f 222/390/35 31/414/30 53/391/30 +f 185/223/10 237/430/10 238/393/11 +f 226/394/34 33/408/31 49/395/31 +f 193/259/6 210/350/8 198/239/8 +f 218/396/32 105/433/16 29/397/16 +f 105/398/16 217/424/31 26/399/31 +f 223/401/33 32/417/5 101/402/5 +f 228/404/29 227/386/10 54/388/10 +f 230/406/19 14/434/3 192/407/3 +f 33/408/31 225/435/16 46/409/16 +f 30/410/28 228/404/29 59/405/29 +f 38/28/34 56/43/34 48/53/31 +f 63/50/5 102/328/5 108/108/35 +f 229/412/11 13/374/10 208/376/10 +f 209/265/5 204/352/19 190/233/19 +f 232/413/13 16/381/6 202/382/6 +f 31/414/30 221/416/4 50/415/4 +f 221/416/4 30/410/28 60/411/28 +f 210/257/8 209/256/5 196/249/5 +f 32/417/5 222/390/35 107/392/35 +f 199/346/8 234/358/8 239/418/6 +f 214/419/4 213/432/30 93/420/30 +f 106/421/35 220/377/5 62/378/5 +f 194/232/13 193/231/6 197/348/6 +f 98/80/33 100/89/32 91/83/32 +f 64/100/35 108/108/35 52/107/30 +f 186/224/11 238/393/11 236/423/3 +f 217/424/31 104/428/34 39/425/34 +f 216/426/10 103/368/29 35/369/29 +f 104/428/34 216/426/10 34/427/10 +f 200/251/6 239/436/6 240/429/13 +f 206/252/13 240/429/13 237/430/10 +f 224/431/32 223/401/33 89/403/33 +f 213/432/30 106/421/35 65/422/35 diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_coal_front_off.png b/src/main/resources/assets/hbm/textures/blocks/machine_coal_front_off.png deleted file mode 100644 index 88988d8af67e019acc56be8329a53ccea32d0412..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 377 zcmV-<0fzpGP)-9XgQ`MA5)}9GY-65h)LP#K+#S2!?qgSy`OVBg z64Nxn-BAEQL_iXc#{(o6OlqxARm}5@&1M64$MJZCs-o745(&{^7>19t1Hk2SS-eY7 zYz6!lEw-#L&gV1SJt?-uODQR8FwO#IhSTW;5y^zm!pzb-Rn2B*_R^qbvHlm<4zxIT zhqRy;yzabqC&!9P<2b_1mJ0v66C<``bzS!wq1Fl!ftf)>aJ$|9b)fJ2Ws|nsw`2gg z-|xwSBucCLe!s_dyImy2q6O~xeC9YLmo^>_hZL`rlIOo7x3L9<1FD*=NajAQ3jn|m X2dvZUp8KPL00000NkvXXu0mjfLqDcI diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_coal_front_off_alt.png b/src/main/resources/assets/hbm/textures/blocks/machine_coal_front_off_alt.png deleted file mode 100644 index 696252554b8666ec49b19ea6b2437502ac7ce1d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 481 zcmV<70UrK|P)cO5QRS{hC~qp5()}RB;J6U3c=e_!gJ7XLx)6#WMe13 zY!Ss;R=;*v|45cE@|-i5GvaVKL~AYoV?|LQt+mv3jrX1`%Md~kV@$g-2Jbz2o)bbK z#+U%Qu0skT(x=U4^C#wykB7-K{!^{4Q^ z1AFh0wXLq8smNgGm1va&2`+ZL_$ug(CM%LV5gZQJ%B)>@jT0idpHilTUP5JC__ zAj>jhj96<^v~AlWfiw%tgQ XmvREZB$KC$00000NkvXXu0mjf#+Py?Fw@Oo3AvJ|9I}t$*5#dqPToEDH4^<_l)RHP*&vBGe zFtb~Oh+saSKb$He?akd05w6!O5kUq>DIp@9&u2vBj)|F}s+3ZgOeRDGi^T#}#mvaH zpiVd*j}LbT*lad;_f#p41^i!(bMwEzdc7th8pUz*oO2VkGHwmro#k>#N~sl8E!@3X zr>bq3yZ0K5SwsXXhK06CV+Y205z#jg5pwdu0f+zL4@D0RXbfS7ZRlh zQ&3!(X0T9ZTCidmilY=y%$~pXE0`G*?dg4e3SNI5pab@B0#+TI_OJrz;QP-FFZmPI zXZ}W=nC*JFzDluNH&Rdkw4 zD{KaLz}tXT9GLw!KCKr&ReQ{(pYk>;-f_bi&OLk- zF@{d3gL96_WWwcgq1Wr7thMy}eUc<$JRY;(@BhlaTCErkhg`2$(ljNo){G z9!1pdtExgNMOl^}RBMf@s){sCJ@f0~06Sm{M_|5#;}+%sJNWYbv)6`FiXe(2ilRVk z&Fj|#M`~wwzy3Sl;X%K>y&M1bLp5Bne59!1lp-)39zDlm>L(YAk>dqBT`CK7=~n7R*Pl(%*LhxY9o26-`+pH19dz91g5h8U=5cF Q_y7O^07*qoM6N<$f)H8iQUCw| diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_coal_side.png b/src/main/resources/assets/hbm/textures/blocks/machine_coal_side.png deleted file mode 100644 index ae621d7a011e1cbff85e53d60c431588b2811da1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 391 zcmV;20eJq2P)V4e5Jlg3mJTUgfr5rhq{s;A-6!HS&je= z5(TV1DbP3GC5&X*;~9Pb`Tn-qY{JYar4SJ)%#3HDUNfW9!QDwI)h69*Z(|q+a?W>v zh+wf;Jbl&7YOR!lnQ=TGi3mD?loDn}-}ksX06AxXnzwhW)e3hf=S*j26~NtDE|-St59ac97VD_tR#Pmm&2u94fM&LL9d z2nGbmD%`lU3tRST$0Ws{6q{vi1PF|{7Oj7B50wU*^_NeF?W zC{Rj~Qp&e6h7bZ}SrTI;rIY~Cdf-rh2uPSGI*X0sVh)9~={z-qOkD2g{!UtV7Fd$ZZFSS+}^ zyQAy69>5rbF$U)x#+Y}NF|g8;$pmXHB0}4?hzKbqKL7lN2vij)1>Zk@0bsx1^ZfkG z;c)0x5D}KkB~8;%*EMxr12CP!#l@T$Bb!Z|?R8xjm`;13}XLO>rK9pSx4M0k37!Z`6t!Xb+m0uN{Rh`|Ih9Z@|IMARtl%gmKy!Ux%2AkFz?|si;G#X)yA*Do&F>l>Kf7nFtJzDGRgMOWV0S{I?-b2x} Q$N&HU07*qoM6N<$g8NAY+yDRo diff --git a/src/main/resources/assets/hbm/textures/gui/GUICoal.png b/src/main/resources/assets/hbm/textures/gui/GUICoal.png index 55baf1719066d2d805572548980d7e03c588d940..64a2c1bff1cbf57daff5d131268ce502d7c66d53 100644 GIT binary patch delta 2163 zcmZ9NdpHyR7so%_*re~IFD2I%UF2I7xkMQ$rQ9NX$z{qVbDU{{% zBk^ctT_I)mL#oQ`(o#&eCAxBh|M5hU z@Msb~XMiAGo*Au+oJgcDug+33LZXB|=4f;cH(Y-;R6?RV@x(FNgiXoSMctE0!f5}| z%1&;>0a`ZAW1o& zPH1u1;=dYsB?Ku~@WIz2Ws@<96Hto|Ni=HVQG-=f#}dhU%4l7ob5lECb-bXOus(NH z2M>V~u@sYU27a8M8ufDVV+?fSOnIefCL zWSi##8>VZ7u=O!o%Z;g(48A(hFF?)h3!0!3s4)o(pHg-*8{qwOL3lI7R-z9c+U9G3 zOnG;cN^idB=VKtJRZEDg0GjpQ{L*-EDGc!NV3VNuM}&!oX5>kTP>HhDGtT8jz!Wk# zeC&>C#t4}L!f!0ASqT|bzRRcbZYy>KF3bs&Khu8&y1V;g7#O0Xcm4JT+tVogy_`^! zh1dt`KD)!r?yMb&oj1`kyVUIuE=a*u+5u`)Pj*LSZfsXncoCr+0@cF7l&4GW;TrB4wiCuRF51!Znr zKq!Bg;!k(mR38Q_ammTm5j1T`W|`0!+)@IbTBngj+Cvy)pi<3h(8q^w(#@;xyNb96 z4GwWbf;=->Mog{xZLxS=7!x^3vOuH#nz_8n&UA^a@icvRcp2QPg+B&6;)@}vSy@vS zM3(#=A5lUfRG#GyJMvq+jxivx!re?KE+z+GhGE7M#LaM2xCX8Ane@#UJVZ9p^3$Y| zGS$d=fz!Z#W7}5geD0n>HFVk;X0{voQ*N`dQn)j-vO1{&oU^7w0*)$>Gn4veilr)7 zG^}=VLAq6kfVd3mUO<%VB1e36l}q87XOQGfx3q+jzyQW9y(N)w%@TM;l(+(9vK=K9 zj798iPIWL_O`O))+4Z1j3m5j4jDp-+GS(&HV>Uvdha zuV}B+JxSfs@_@7j$k~H_y}<=^VA1nj^J2$fL$$PdZ@C~A>|0TB@zA<01|?4nyo8&4 zo`-{M46Z`J{}~aX9qd(RBah)4W-&>dC~x%z_&>v4N6x4QJDdwJ8d3uP2^Hw-76 zp%dbzx!5-+dlUU=>FLR;QSJIcvl9pz3dFfU>Re!lL!S!N zxkmdWF&x>}d|eVsQanUlS6(yhZ@~%NE&W-HnGp{IrE1R^J)mKorA4a@lOFFTa=*u6 lxEFBJ#6@1fmWr!#hzoc0 zOSmIIH)#%O+?arxAg_=@?pz!YS1Cm5ULb(eM0tTA#dT+cDI`+-ze~+5xvSsj0|;mS z@n~<&`R?p*hqJwOXPTfJdh2#|9 z(+#~|Z<=Ny@a3E1ZcN8LN;*FsGaipqnvGb$oaFr!^zFMJioWj<*7m?;GC9U}KyBye z=jrw9*XiQoVw%1@KKAC!J$v&heSVkHfB*F7`E%dC`(f?zvp1j8=<@q?c6N4*&0O+m z@qx}y=lpV#_kUB+`lnpY#2-04O&Cm=E)RT)v$D?BlLFzxv($Z8w($ua`pMm;?abw%Vb8dA#3GG1n=jl!m{5yY~FY@4lZudhx&0g1C_5 zBmn5Pmdpc~5A7GP0{r-&+do|2jS6mGUq4kij3_UAHf?9!=Z>Xv@BQ(opLV|f>-X=M z9{>Dyd1y1dx+?l5qkg}i_4kLvp)WlhP~-nzE&4WK7gYwpY6maU65GEl$YuN(=~c@G^X0J0pk2C&-sN25{YNTBL6(CqK)b}MUa-R`^ z`2urCnFlcAOF3k#Qv)y!c&pBT7huvW*$J6PSpU~uI>USxeKAN zz*OKYovH!A8m9nR8oM#b&u`zZj|LvNv$M0cJHBpu?C4)mOKuF(RcZiq+rA?J^97cu z0Ti_9e($qU!QxThD4?LK8h~lQJAbJG&~2NB@s9GfRR%!SdHl8xA8j7MrlWt=^F{#$ zd^yqKGZeowQ10LBx~fjSsZdCUudV{*Py=X?j(z~<0c24FC~VWvezgEdLFNHuF%O`S zeb48e{}*B&Ko;`=4nV=LK}G;s)BppH* zx6dhn4!@>THGrxciPo{}W~2MEJuUFhUzzNip>s8W+yy|ZZZ^6v+e4SB0YG36q6Xl; z0M%Cak$po-Evx|y27`2deqQUnvk&#II|J`}J&M^a(iZoJ+oq9HOKSjiLZHqEc=mea z54(FOvP&y#0R4WySO{!8J%5N~wx1UFmHk3W2d)9^bD6462&@ik7p)F=BipnOw(XbE zXcT^bMRM>Oz&=CHx*?E~B3G4t_d7APvIel|>guZ2b!i`3*xx~G0CjHe`TY6wd1u}= zDWz@^OQCB&C2zhu8jXszMKcas1K8*0o@S&SPpSPbeA};e^8ixP`DEcxT2}+;_xrUw zf7NM#BM|J?x_JPd`X*WjYzs-@NJPx&3FB#_kIMw4ala2OE>^1_>sxo!j>&$B>ZaWry(oXB!u_91&)RQm=E0aJ62Q{n+q@C8cLvwbn2n20pMWAw=0zhB_00I*L5ZKNl zpjCmj(}s3dR|TdVs{(7M_3bE5H^(WH@dguKnDaxRe`nB`gUlJRe|Xos{)tf z6aWGf01%h}pi^eUf66#XDfN22-gG=3+qn?TYy{9dJv}|@hQK})0Lxh2fzzXG1?*4f p2a`bwFOyISAd^rD2^io3`aiidCvWEDn|}ZR002ovPDHLkV1f+O$@l;O diff --git a/src/main/resources/assets/hbm/textures/gui/generators/gui_wood_burner.png b/src/main/resources/assets/hbm/textures/gui/generators/gui_wood_burner.png new file mode 100644 index 0000000000000000000000000000000000000000..9189989e73dd9c2c65d0373e2d531c2bce8a384a GIT binary patch literal 3916 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 DTb>Lc literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/machines/wood_burner.png b/src/main/resources/assets/hbm/textures/models/machines/wood_burner.png new file mode 100644 index 0000000000000000000000000000000000000000..282ac5a5fa4976a06ce9efc74b6933b5317575c6 GIT binary patch literal 9986 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 M07*qoM6N<$f`Ljxod5s; literal 0 HcmV?d00001 From a44f31279be834eb3de5792cf77cd2f2e7bf9aa2 Mon Sep 17 00:00:00 2001 From: Bob Date: Mon, 30 Oct 2023 21:13:35 +0100 Subject: [PATCH 354/432] wood burner GUI --- .../container/ContainerMachineWoodBurner.java | 103 ++++++++++++++++++ .../inventory/gui/GUIMachineWoodBurner.java | 79 ++++++++++++++ .../inventory/recipes/ArcWelderRecipes.java | 4 +- .../machine/TileEntityMachineWoodBurner.java | 40 ++++++- .../gui/generators/gui_wood_burner.png | Bin 3916 -> 6686 bytes .../gui/generators/gui_wood_burner_alt.png | Bin 0 -> 4612 bytes 6 files changed, 221 insertions(+), 5 deletions(-) create mode 100644 src/main/java/com/hbm/inventory/container/ContainerMachineWoodBurner.java create mode 100644 src/main/java/com/hbm/inventory/gui/GUIMachineWoodBurner.java create mode 100644 src/main/resources/assets/hbm/textures/gui/generators/gui_wood_burner_alt.png diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineWoodBurner.java b/src/main/java/com/hbm/inventory/container/ContainerMachineWoodBurner.java new file mode 100644 index 000000000..9814bb422 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineWoodBurner.java @@ -0,0 +1,103 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotTakeOnly; +import com.hbm.items.machine.IItemFluidIdentifier; +import com.hbm.tileentity.machine.TileEntityMachineWoodBurner; + +import api.hbm.energy.IBatteryItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntityFurnace; + +public class ContainerMachineWoodBurner extends Container { + + protected TileEntityMachineWoodBurner burner; + + public ContainerMachineWoodBurner(InventoryPlayer invPlayer, TileEntityMachineWoodBurner burner) { + this.burner = burner; + this.burner.openInventory(); + + //Fuel + this.addSlotToContainer(new Slot(burner, 0, 26, 18)); + //Ashes + this.addSlotToContainer(new SlotTakeOnly(burner, 1, 26, 54)); + //Fluid ID + this.addSlotToContainer(new Slot(burner, 2, 98, 54)); + //Fluid Container + this.addSlotToContainer(new Slot(burner, 3, 98, 18)); + this.addSlotToContainer(new SlotTakeOnly(burner, 4, 98, 36)); + //Battery + this.addSlotToContainer(new Slot(burner, 5, 143, 54)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 104 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 162)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + ItemStack stack = null; + Slot slot = (Slot) this.inventorySlots.get(index); + + if(slot != null && slot.getHasStack()) { + ItemStack originalStack = slot.getStack(); + stack = originalStack.copy(); + + if(index <= 5) { + if(!this.mergeItemStack(originalStack, 6, this.inventorySlots.size(), true)) { + return null; + } + + slot.onSlotChange(originalStack, stack); + + } else { + + if(stack.getItem() instanceof IBatteryItem) { + if(!this.mergeItemStack(originalStack, 5, 6, false)) { + return null; + } + } else if(stack.getItem() instanceof IItemFluidIdentifier) { + if(!this.mergeItemStack(originalStack, 2, 3, false)) { + return null; + } + } else if(TileEntityFurnace.isItemFuel(stack)) { + if(!this.mergeItemStack(originalStack, 2, 3, false)) { + return null; + } + } else { + if(!this.mergeItemStack(originalStack, 3, 4, false)) { + return null; + } + } + } + + if(originalStack.stackSize == 0) { + slot.putStack((ItemStack) null); + } else { + slot.onSlotChanged(); + } + } + + return stack; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return burner.isUseableByPlayer(player); + } + + @Override + public void onContainerClosed(EntityPlayer player) { + super.onContainerClosed(player); + this.burner.closeInventory(); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineWoodBurner.java b/src/main/java/com/hbm/inventory/gui/GUIMachineWoodBurner.java new file mode 100644 index 000000000..8395bef67 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineWoodBurner.java @@ -0,0 +1,79 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerMachineWoodBurner; +import com.hbm.lib.RefStrings; +import com.hbm.packet.NBTControlPacket; +import com.hbm.packet.PacketDispatcher; +import com.hbm.tileentity.machine.TileEntityMachineWoodBurner; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ResourceLocation; + +public class GUIMachineWoodBurner extends GuiInfoContainer { + + private TileEntityMachineWoodBurner burner; + private final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/generators/gui_wood_burner_alt.png"); + + public GUIMachineWoodBurner(InventoryPlayer invPlayer, TileEntityMachineWoodBurner tedf) { + super(new ContainerMachineWoodBurner(invPlayer, tedf)); + burner = tedf; + + this.xSize = 176; + this.ySize = 186; + } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 143, guiTop + 18, 16, 34, burner.power, burner.maxPower); + } + + @Override + protected void mouseClicked(int x, int y, int i) { + super.mouseClicked(x, y, i); + + if(guiLeft + 53 <= x && guiLeft + 53 + 16 > x && guiTop + 17 < y && guiTop + 17 + 15 >= y) { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + data.setBoolean("toggle", false); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, burner.xCoord, burner.yCoord, burner.zCoord)); + } + + if(guiLeft + 46 <= x && guiLeft + 46 + 30 > x && guiTop + 37 < y && guiTop + 37 + 14 >= y) { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + data.setBoolean("switch", false); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, burner.xCoord, burner.yCoord, burner.zCoord)); + } + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.burner.hasCustomInventoryName() ? this.burner.getInventoryName() : I18n.format(this.burner.getInventoryName()); + + this.fontRendererObj.drawString(name, 70 - this.fontRendererObj.getStringWidth(name) / 2, 6, 0xffffff); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float interp, int x, int y) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + if(burner.liquidBurn) { + drawTexturedModalRect(guiLeft + 16, guiTop + 17, 176, 52, 60, 54); + drawTexturedModalRect(guiLeft + 79, guiTop + 17, 176, 106, 36, 54); + } + + if(burner.isOn) { + drawTexturedModalRect(guiLeft + 53, guiTop + 17, 196, 0, 16, 15); + } + } +} diff --git a/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java b/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java index 5a6152721..5aea7661e 100644 --- a/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java @@ -30,9 +30,9 @@ public class ArcWelderRecipes extends SerializableRecipe { @Override public void registerDefaults() { - recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.motor), 100, 200L, + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.motor, 2), 100, 200L, new OreDictStack(IRON.plate(), 2), new ComparableStack(ModItems.coil_copper), new ComparableStack(ModItems.coil_copper_torus))); - recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.motor), 100, 400L, + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.motor, 2), 100, 400L, new OreDictStack(STEEL.plate(), 1), new ComparableStack(ModItems.coil_copper), new ComparableStack(ModItems.coil_copper_torus))); recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.circuit_copper), 100, 1_000L, new FluidStack(Fluids.GAS, 250), diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java index 57c6bf6c1..3fb872181 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java @@ -1,8 +1,11 @@ package com.hbm.tileentity.machine; +import com.hbm.interfaces.IControlReceiver; +import com.hbm.inventory.container.ContainerMachineWoodBurner; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Flammable; +import com.hbm.inventory.gui.GUIMachineWoodBurner; import com.hbm.module.ModuleBurnTime; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachinePolluting; @@ -16,7 +19,7 @@ import net.minecraft.inventory.Container; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; -public class TileEntityMachineWoodBurner extends TileEntityMachinePolluting implements IFluidStandardTransceiver, IGUIProvider { +public class TileEntityMachineWoodBurner extends TileEntityMachinePolluting implements IFluidStandardTransceiver, IControlReceiver, IGUIProvider { public long power; public static final long maxPower = 100_000; @@ -80,19 +83,50 @@ public class TileEntityMachineWoodBurner extends TileEntityMachinePolluting impl } NBTTagCompound data = new NBTTagCompound(); + data.setLong("power", power); + data.setInteger("burnTime", burnTime); + data.setInteger("maxBurnTime", maxBurnTime); + data.setBoolean("isOn", isOn); + data.setBoolean("liquidBurn", liquidBurn); this.networkPack(data, 25); } } + @Override + public void networkUnpack(NBTTagCompound nbt) { + this.power = nbt.getLong("power"); + this.burnTime = nbt.getInteger("burnTime"); + this.maxBurnTime = nbt.getInteger("maxBurnTime"); + this.isOn = nbt.getBoolean("isOn"); + this.liquidBurn = nbt.getBoolean("liquidBurn"); + } + + @Override + public void receiveControl(NBTTagCompound data) { + if(data.hasKey("toggle")) { + this.isOn = !this.isOn; + this.markChanged(); + } + if(data.hasKey("switch")) { + this.liquidBurn = !this.liquidBurn; + this.markChanged(); + } + } + + @Override + public boolean hasPermission(EntityPlayer player) { + return this.isUseableByPlayer(player); + } + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return null; + return new ContainerMachineWoodBurner(player.inventory, this); } @Override @SideOnly(Side.CLIENT) public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return null; + return new GUIMachineWoodBurner(player.inventory, this); } @Override diff --git a/src/main/resources/assets/hbm/textures/gui/generators/gui_wood_burner.png b/src/main/resources/assets/hbm/textures/gui/generators/gui_wood_burner.png index 9189989e73dd9c2c65d0373e2d531c2bce8a384a..08d2f02dd8a08663d42bf8afe3ed4277541d1675 100644 GIT binary patch literal 6686 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 DTb>Lc diff --git a/src/main/resources/assets/hbm/textures/gui/generators/gui_wood_burner_alt.png b/src/main/resources/assets/hbm/textures/gui/generators/gui_wood_burner_alt.png new file mode 100644 index 0000000000000000000000000000000000000000..51c355b507d9946206c2ee4404f4fbec2740838d GIT binary patch literal 4612 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 DTYPrE literal 0 HcmV?d00001 From ad7032c74de8e010fa7f182b7cb1423500d2ee41 Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 31 Oct 2023 15:30:01 +0100 Subject: [PATCH 355/432] leftovers from last week's shit buffet --- .../inventory/gui/GUIMachineArcWelder.java | 2 +- .../inventory/gui/GUIMachineWoodBurner.java | 7 +++++ .../machine/TileEntityMachineArcWelder.java | 4 +-- .../machine/TileEntityMachineWoodBurner.java | 24 ++++++++++-------- .../hbm/textures/blocks/stone_keyhole.png | Bin 0 -> 455 bytes .../gui/generators/gui_wood_burner_alt.png | Bin 4612 -> 4685 bytes .../assets/hbm/textures/items/key.png | Bin 220 -> 219 bytes .../assets/hbm/textures/items/key_red.png | Bin 231 -> 261 bytes 8 files changed, 24 insertions(+), 13 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/blocks/stone_keyhole.png diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineArcWelder.java b/src/main/java/com/hbm/inventory/gui/GUIMachineArcWelder.java index 1e55234b2..e37e7cf05 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineArcWelder.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineArcWelder.java @@ -29,7 +29,7 @@ public class GUIMachineArcWelder extends GuiInfoContainer { super.drawScreen(x, y, interp); welder.tank.renderTankInfo(this, x, y, guiLeft + 35, guiTop + 63, 34, 16); - this.drawElectricityInfo(this, x, y, guiLeft + 152, guiTop + 18, 16, 52, welder.power, welder.maxPower); + this.drawElectricityInfo(this, x, y, guiLeft + 152, guiTop + 18, 16, 52, welder.getPower(), welder.getMaxPower()); } @Override diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineWoodBurner.java b/src/main/java/com/hbm/inventory/gui/GUIMachineWoodBurner.java index 8395bef67..b591c8c48 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineWoodBurner.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineWoodBurner.java @@ -32,6 +32,8 @@ public class GUIMachineWoodBurner extends GuiInfoContainer { public void drawScreen(int mouseX, int mouseY, float f) { super.drawScreen(mouseX, mouseY, f); this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 143, guiTop + 18, 16, 34, burner.power, burner.maxPower); + + if(burner.liquidBurn) burner.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 70, guiTop + 28, 34, 52); } @Override @@ -75,5 +77,10 @@ public class GUIMachineWoodBurner extends GuiInfoContainer { if(burner.isOn) { drawTexturedModalRect(guiLeft + 53, guiTop + 17, 196, 0, 16, 15); } + + int p = (int) (burner.power * 34 / burner.maxPower); + drawTexturedModalRect(guiLeft + 143, guiTop + 52 - p, 176, 52 - p, 16, p); + + if(burner.liquidBurn) burner.tank.renderTank(guiLeft + 70, guiTop + 80, this.zLevel, 34, 52); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java index 5373ff76c..669e4c71a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java @@ -60,7 +60,7 @@ public class TileEntityMachineArcWelder extends TileEntityMachineBase implements if(!worldObj.isRemote) { - this.power = Library.chargeTEFromItems(slots, 4, power, maxPower); + this.power = Library.chargeTEFromItems(slots, 4, this.getPower(), this.getMaxPower()); this.tank.setType(5, slots); if(worldObj.getTotalWorldTime() % 20 == 0) { @@ -230,7 +230,7 @@ public class TileEntityMachineArcWelder extends TileEntityMachineBase implements @Override public long getPower() { - return power; + return Math.max(Math.min(power, maxPower), 0); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java index 3fb872181..f0524ac55 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java @@ -1,16 +1,19 @@ package com.hbm.tileentity.machine; +import com.hbm.handler.pollution.PollutionHandler; +import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.container.ContainerMachineWoodBurner; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Flammable; import com.hbm.inventory.gui.GUIMachineWoodBurner; +import com.hbm.lib.Library; import com.hbm.module.ModuleBurnTime; import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityMachinePolluting; +import com.hbm.tileentity.TileEntityMachineBase; -import api.hbm.fluid.IFluidStandardTransceiver; +import api.hbm.fluid.IFluidStandardReceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.GuiScreen; @@ -19,7 +22,7 @@ import net.minecraft.inventory.Container; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; -public class TileEntityMachineWoodBurner extends TileEntityMachinePolluting implements IFluidStandardTransceiver, IControlReceiver, IGUIProvider { +public class TileEntityMachineWoodBurner extends TileEntityMachineBase implements IFluidStandardReceiver, IControlReceiver, IGUIProvider { public long power; public static final long maxPower = 100_000; @@ -37,7 +40,7 @@ public class TileEntityMachineWoodBurner extends TileEntityMachinePolluting impl public int ashLevelMisc; public TileEntityMachineWoodBurner() { - super(6, 60); + super(6); this.tank = new FluidTank(Fluids.WOODOIL, 16_000); } @@ -51,6 +54,10 @@ public class TileEntityMachineWoodBurner extends TileEntityMachinePolluting impl if(!worldObj.isRemote) { + this.tank.setType(2, slots); + this.tank.loadTank(3, 4, slots); + this.power = Library.chargeItemsFromTE(slots, 5, power, maxPower); + if(!liquidBurn) { if(this.burnTime <= 0) { @@ -68,6 +75,7 @@ public class TileEntityMachineWoodBurner extends TileEntityMachinePolluting impl this.burnTime--; this.power += 100; if(power > maxPower) this.power = this.maxPower; + if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND); } } else { @@ -78,6 +86,7 @@ public class TileEntityMachineWoodBurner extends TileEntityMachinePolluting impl if(trait != null) { this.power += trait.getHeatEnergy() / 2L; tank.setFill(tank.getFill() - 1); + if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND); } } } @@ -131,12 +140,7 @@ public class TileEntityMachineWoodBurner extends TileEntityMachinePolluting impl @Override public FluidTank[] getAllTanks() { - return new FluidTank[] {tank, smoke, smoke_leaded, smoke_poison}; - } - - @Override - public FluidTank[] getSendingTanks() { - return this.getSmokeTanks(); + return new FluidTank[] {tank}; } @Override diff --git a/src/main/resources/assets/hbm/textures/blocks/stone_keyhole.png b/src/main/resources/assets/hbm/textures/blocks/stone_keyhole.png new file mode 100644 index 0000000000000000000000000000000000000000..394785a63409548bc65a99b4d8ce9627d17faa29 GIT binary patch literal 455 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 a&(h&Tc19~&T~yxN&&0^wu>8FH-TwkbMw)s6 literal 4612 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 DTYPrE diff --git a/src/main/resources/assets/hbm/textures/items/key.png b/src/main/resources/assets/hbm/textures/items/key.png index 403bbd9fc50be8995281136c6bbccdb0d0823315..593227c1c3c37851c3c56e416cd0339a12b9016b 100644 GIT binary patch delta 175 zcmV;g08szj0owtPG=GvwL_t(Ijm?m;4aFb~MDH^Jg;!t?k3iv$8i|n@g0<*e(~=7G zBaui@bp5J9;yme#ja!uoO4GK0{}6`-dcmT_IML`?`MFS`{_*( zLg+h^-#?hYLswPVCVKFl_(;002ovPDHLkV1gJXP00WN delta 176 zcmV;h08jth0o(zQG=GyxL_t(Ijm?mu5d|R(ME7Gs&;)&?fCwA{O>uZyq65Hk3g+Jo zcQc^wDFpkH4e%M5xjX0jZcdCxDFwAw>`JD<7;_{M01!gxtu<(^k2is}b_R&3pWX!C z`@SRjy@_(pP)b2ci5TPZ@1tNqM14pGPqJ4DGtVmjwZuAdM=2?Vl+v79Yu#D^M6{f~ e1vB4je1{8LKTUZ454vms0000F6!u^P21rGP z1X2dD7ywspOo5Dy6oQ>9SAE&Kr+@e1ZzM%!q^L}&FSf(DXvReo3fTeAcOOkE91;Ns zLpv)T_kLg2Zs)xW2Lj5CI_By%Ralr(s2OO<`Cp&mIRrNnF7 p%2Xn1S^&hvbOwTBw_;Sab>Q>29l Date: Wed, 1 Nov 2023 22:13:35 +0100 Subject: [PATCH 356/432] none may enter the orb --- .../container/ContainerMachineWoodBurner.java | 2 +- .../inventory/gui/GUIMachineWoodBurner.java | 29 +++++++++ .../machine/TileEntityFireboxBase.java | 2 +- .../machine/TileEntityMachineWoodBurner.java | 60 +++++++++++++++++-- 4 files changed, 87 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineWoodBurner.java b/src/main/java/com/hbm/inventory/container/ContainerMachineWoodBurner.java index 9814bb422..73684e642 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineWoodBurner.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineWoodBurner.java @@ -70,7 +70,7 @@ public class ContainerMachineWoodBurner extends Container { return null; } } else if(TileEntityFurnace.isItemFuel(stack)) { - if(!this.mergeItemStack(originalStack, 2, 3, false)) { + if(!this.mergeItemStack(originalStack, 0, 1, false)) { return null; } } else { diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineWoodBurner.java b/src/main/java/com/hbm/inventory/gui/GUIMachineWoodBurner.java index b591c8c48..fbf3f19cc 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineWoodBurner.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineWoodBurner.java @@ -1,5 +1,8 @@ package com.hbm.inventory.gui; +import java.util.Arrays; +import java.util.List; + import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerMachineWoodBurner; @@ -12,7 +15,9 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Slot; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.ResourceLocation; public class GUIMachineWoodBurner extends GuiInfoContainer { @@ -32,8 +37,27 @@ public class GUIMachineWoodBurner extends GuiInfoContainer { public void drawScreen(int mouseX, int mouseY, float f) { super.drawScreen(mouseX, mouseY, f); this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 143, guiTop + 18, 16, 34, burner.power, burner.maxPower); + + if(this.mc.thePlayer.inventory.getItemStack() == null) { + + Slot slot = (Slot) this.inventorySlots.inventorySlots.get(0); + if(this.isMouseOverSlot(slot, mouseX, mouseY) && !slot.getHasStack()) { + List bonuses = burner.burnModule.getDesc(); + if(!bonuses.isEmpty()) { + this.func_146283_a(bonuses, mouseX, mouseY); + } + } + } if(burner.liquidBurn) burner.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 70, guiTop + 28, 34, 52); + + if(!burner.liquidBurn && guiLeft + 16 <= mouseX && guiLeft + 16 + 8 > mouseX && guiTop + 17 < mouseY && guiTop + 17 + 54 >= mouseY) { + func_146283_a(Arrays.asList(new String[] { (burner.burnTime / 20) + "s" }), mouseX, mouseY); + } + + if(guiLeft + 53 <= mouseX && guiLeft + 53 + 16 > mouseX && guiTop + 17 < mouseY && guiTop + 17 + 15 >= mouseY) { + func_146283_a(Arrays.asList(new String[] { burner.isOn ? EnumChatFormatting.GREEN + "ON" : EnumChatFormatting.RED + "OFF" }), mouseX, mouseY); + } } @Override @@ -81,6 +105,11 @@ public class GUIMachineWoodBurner extends GuiInfoContainer { int p = (int) (burner.power * 34 / burner.maxPower); drawTexturedModalRect(guiLeft + 143, guiTop + 52 - p, 176, 52 - p, 16, p); + if(burner.maxBurnTime > 0 && !burner.liquidBurn) { + int b = (int) (burner.burnTime * 52 / burner.maxBurnTime); + drawTexturedModalRect(guiLeft + 17, guiTop + 70 - b, 192, 52 - b, 4, b); + } + if(burner.liquidBurn) burner.tank.renderTank(guiLeft + 70, guiTop + 80, this.zLevel, 34, 52); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFireboxBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFireboxBase.java index be4b8c82b..5a52abb70 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFireboxBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFireboxBase.java @@ -151,7 +151,7 @@ public abstract class TileEntityFireboxBase extends TileEntityMachinePolluting i } } - public EnumAshType getAshFromFuel(ItemStack stack) { + public static EnumAshType getAshFromFuel(ItemStack stack) { List names = ItemStackUtil.getOreDictNames(stack); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java index f0524ac55..ac93421ca 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java @@ -3,11 +3,14 @@ package com.hbm.tileentity.machine; import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.interfaces.IControlReceiver; +import com.hbm.inventory.OreDictManager.DictFrame; import com.hbm.inventory.container.ContainerMachineWoodBurner; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Flammable; import com.hbm.inventory.gui.GUIMachineWoodBurner; +import com.hbm.items.ModItems; +import com.hbm.items.ItemEnums.EnumAshType; import com.hbm.lib.Library; import com.hbm.module.ModuleBurnTime; import com.hbm.tileentity.IGUIProvider; @@ -19,8 +22,10 @@ import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; +import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; public class TileEntityMachineWoodBurner extends TileEntityMachineBase implements IFluidStandardReceiver, IControlReceiver, IGUIProvider { @@ -33,7 +38,7 @@ public class TileEntityMachineWoodBurner extends TileEntityMachineBase implement public FluidTank tank; - public static ModuleBurnTime burnModule = new ModuleBurnTime().setLogTimeMod(3).setWoodTimeMod(2); + public static ModuleBurnTime burnModule = new ModuleBurnTime().setLogTimeMod(4).setWoodTimeMod(2); public int ashLevelWood; public int ashLevelCoal; @@ -65,13 +70,22 @@ public class TileEntityMachineWoodBurner extends TileEntityMachineBase implement if(slots[0] != null) { int burn = this.burnModule.getBurnTime(slots[0]); if(burn > 0) { - this.maxBurnTime = burn; + EnumAshType type = TileEntityFireboxBase.getAshFromFuel(slots[0]); + if(type == EnumAshType.WOOD) ashLevelWood += burn; + if(type == EnumAshType.COAL) ashLevelCoal += burn; + if(type == EnumAshType.MISC) ashLevelMisc += burn; + int threshold = 2000; + if(processAsh(ashLevelWood, EnumAshType.WOOD, threshold)) ashLevelWood -= threshold; + if(processAsh(ashLevelCoal, EnumAshType.COAL, threshold)) ashLevelCoal -= threshold; + if(processAsh(ashLevelMisc, EnumAshType.MISC, threshold)) ashLevelMisc -= threshold; + + this.maxBurnTime = this.burnTime = burn; this.decrStackSize(0, 1); this.markChanged(); } } - } else if(this.power < this.maxPower){ + } else if(this.power < this.maxPower && isOn){ this.burnTime--; this.power += 100; if(power > maxPower) this.power = this.maxPower; @@ -80,7 +94,7 @@ public class TileEntityMachineWoodBurner extends TileEntityMachineBase implement } else { - if(this.power < this.maxPower && tank.getFill() > 0) { + if(this.power < this.maxPower && tank.getFill() > 0 && isOn) { FT_Flammable trait = tank.getTankType().getTrait(FT_Flammable.class); if(trait != null) { @@ -98,6 +112,13 @@ public class TileEntityMachineWoodBurner extends TileEntityMachineBase implement data.setBoolean("isOn", isOn); data.setBoolean("liquidBurn", liquidBurn); this.networkPack(data, 25); + } else { + + if(this.isOn && ((!this.liquidBurn && this.burnTime > 0) || (this.liquidBurn && this.tank.getTankType().hasTrait(FT_Flammable.class) && tank.getFill() > 0))) { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + worldObj.spawnParticle("smoke", xCoord + 0.5 - dir.offsetX + rot.offsetX, yCoord + 4, zCoord + 0.5 - dir.offsetZ + rot.offsetZ, 0, 0.05, 0); + } } } @@ -109,6 +130,22 @@ public class TileEntityMachineWoodBurner extends TileEntityMachineBase implement this.isOn = nbt.getBoolean("isOn"); this.liquidBurn = nbt.getBoolean("liquidBurn"); } + + protected boolean processAsh(int level, EnumAshType type, int threshold) { + + if(level >= threshold) { + if(slots[1] == null) { + slots[1] = DictFrame.fromOne(ModItems.powder_ash, type); + ashLevelWood -= threshold; + return true; + } else if(slots[1].stackSize < slots[1].getMaxStackSize() && slots[1].getItem() == ModItems.powder_ash && slots[1].getItemDamage() == type.ordinal()) { + slots[1].stackSize++; + return true; + } + } + + return false; + } @Override public void receiveControl(NBTTagCompound data) { @@ -138,6 +175,21 @@ public class TileEntityMachineWoodBurner extends TileEntityMachineBase implement return new GUIMachineWoodBurner(player.inventory, this); } + @Override + public int[] getAccessibleSlotsFromSide(int meta) { + return new int[] { 0, 1 }; + } + + @Override + public boolean isItemValidForSlot(int i, ItemStack itemStack) { + return i == 0 && burnModule.getBurnTime(itemStack) > 0; + } + + @Override + public boolean canExtractItem(int slot, ItemStack itemStack, int side) { + return slot == 1; + } + @Override public FluidTank[] getAllTanks() { return new FluidTank[] {tank}; From ba61cc42a83626b866d4f96808f539b953bbebcc Mon Sep 17 00:00:00 2001 From: Boblet Date: Thu, 2 Nov 2023 14:12:39 +0100 Subject: [PATCH 357/432] quick gordon, the mcgriddle is still on the menu! --- changelog | 16 +++++ .../hbm/blocks/machine/MachineIGenerator.java | 2 + .../com/hbm/commands/CommandRadiation.java | 33 ++++++++++ .../radiation/ChunkRadiationHandler.java | 1 + .../radiation/ChunkRadiationHandler3D.java | 9 +++ .../radiation/ChunkRadiationHandlerBlank.java | 22 ++----- .../radiation/ChunkRadiationHandlerNT.java | 12 ++++ .../ChunkRadiationHandlerSimple.java | 9 +++ .../com/hbm/inventory/OreDictManager.java | 3 + src/main/java/com/hbm/inventory/OreNames.java | 3 +- .../inventory/material/MaterialShapes.java | 1 + .../java/com/hbm/inventory/material/Mats.java | 16 ++--- .../hbm/inventory/recipes/MagicRecipes.java | 18 ++++-- .../inventory/recipes/anvil/AnvilRecipes.java | 2 + src/main/java/com/hbm/items/ModItems.java | 3 + .../java/com/hbm/items/machine/ItemMold.java | 4 +- .../java/com/hbm/main/CraftingManager.java | 13 ++++ .../tileentity/machine/TileEntityHadron.java | 10 ++- .../machine/TileEntityMachineIGenerator.java | 3 + .../machine/TileEntityMachineWoodBurner.java | 59 +++++++++++++++++- src/main/resources/assets/hbm/lang/de_DE.lang | 4 ++ src/main/resources/assets/hbm/lang/en_US.lang | 4 ++ .../hbm/textures/items/mold_wire_dense.png | Bin 0 -> 443 bytes .../hbm/textures/items/mold_wires_dense.png | Bin 0 -> 447 bytes .../assets/hbm/textures/items/wire_dense.png | Bin 0 -> 371 bytes .../hbm/textures/models/machines/igen.png | Bin 2701 -> 2817 bytes 26 files changed, 214 insertions(+), 33 deletions(-) create mode 100644 src/main/java/com/hbm/commands/CommandRadiation.java create mode 100644 src/main/resources/assets/hbm/textures/items/mold_wire_dense.png create mode 100644 src/main/resources/assets/hbm/textures/items/mold_wires_dense.png create mode 100644 src/main/resources/assets/hbm/textures/items/wire_dense.png diff --git a/changelog b/changelog index 043b6d8a8..562b40a8f 100644 --- a/changelog +++ b/changelog @@ -1,5 +1,20 @@ ## Added * Pigeons +* Wood burner + * Replaces the old combustion generator + * A larger machine, has higher efficiency when burning logs or planks + * Collects ashes at the same rate as ashpits + * Also has an option to burn flammable liquids at 50% efficiency +* `/ntmrad` + * `set` operator can change the radiation amount in the current chunk + * `clear` operator will remove the radiation data from all loaded chunks +* Dense wires + * Can be made in a crucible + * Material cost is equivalent to 1 ingot + * For ease of mass-production, 9-fold molds are also available + * Used to craft hadron magnets, reducing crafting complexity be removing annoying upgrade recipes which make automation more complicated and needlessly inflate the amount of materials required for a magnet tier that isn't even the one that's being made +* Neodymium os now a valid crucible material +* Particle accelerators will now evenly distribute items using IO if both inputs are equal, making the antischrabidium recipe a lot easier to automate ## Changed * Changed many tool recipes that exclusively used polymer to now also accept bakelite @@ -9,6 +24,7 @@ * 1000mB of red mud now makes one ingot of iron in the coker * Doubled coal bedrock ore's coal output to 8 coal * A new config option now replaces the iron and copper bedrock ores in 528 mode with hematite and malachite +* the industrial generator now has three additional ports on its underside, meaning it is now a lot easier to properly automate all necessary IO ## Fixed * Pipe and power networks now force the chunk to be saved on transfer, ensuring that rapid changes in the fluid/energy level aren't lost when the tile entity is unloaded \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/machine/MachineIGenerator.java b/src/main/java/com/hbm/blocks/machine/MachineIGenerator.java index 8c00aeffb..5f3de0132 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineIGenerator.java +++ b/src/main/java/com/hbm/blocks/machine/MachineIGenerator.java @@ -72,6 +72,8 @@ public class MachineIGenerator extends BlockDummyable { public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { super.fillSpace(world, x, y, z, dir, o); this.makeExtra(world, x + dir.offsetX * (o - 3), y, z + dir.offsetZ * (o - 3)); + this.makeExtra(world, x + dir.offsetX * (o - 2), y, z + dir.offsetZ * (o - 2)); + this.makeExtra(world, x + dir.offsetX * (o - 1), y, z + dir.offsetZ * (o - 1)); this.makeExtra(world, x + dir.offsetX * (o + 2), y, z + dir.offsetZ * (o + 2)); } diff --git a/src/main/java/com/hbm/commands/CommandRadiation.java b/src/main/java/com/hbm/commands/CommandRadiation.java new file mode 100644 index 000000000..436d7bcc4 --- /dev/null +++ b/src/main/java/com/hbm/commands/CommandRadiation.java @@ -0,0 +1,33 @@ +package com.hbm.commands; + +import com.hbm.handler.radiation.ChunkRadiationManager; + +import net.minecraft.command.CommandBase; +import net.minecraft.command.ICommandSender; + +public class CommandRadiation extends CommandBase { + + @Override + public String getCommandName() { + return "ntmrad"; + } + + @Override + public String getCommandUsage(ICommandSender sender) { + return "/ntmrad "; + } + + @Override + public void processCommand(ICommandSender sender, String[] args) { + + if(args.length == 1 && "clear".equals(args[0])) { + ChunkRadiationManager.proxy.clearSystem(sender.getEntityWorld()); + } + + if(args.length == 2 && "set".equals(args[0])) { + float amount = (float) this.parseDoubleBounded(sender, args[1], 0D, 100_000D); + ChunkRadiationManager.proxy.setRadiation(sender.getEntityWorld(), sender.getPlayerCoordinates().posX, sender.getPlayerCoordinates().posY, sender.getPlayerCoordinates().posZ, amount); + } + } + +} diff --git a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandler.java b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandler.java index 6e53a8838..f351d2a27 100644 --- a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandler.java +++ b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandler.java @@ -17,6 +17,7 @@ public abstract class ChunkRadiationHandler { public abstract void setRadiation(World world, int x, int y, int z, float rad); public abstract void incrementRad(World world, int x, int y, int z, float rad); public abstract void decrementRad(World world, int x, int y, int z, float rad); + public abstract void clearSystem(World world); /* * Proxy'd event handlers diff --git a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandler3D.java b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandler3D.java index 5c81a416e..30066a91e 100644 --- a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandler3D.java +++ b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandler3D.java @@ -109,6 +109,15 @@ public class ChunkRadiationHandler3D extends ChunkRadiationHandler { } } + @Override + public void clearSystem(World world) { + ThreeDimRadiationPerWorld radWorld = perWorld.get(world); + + if(radWorld != null) { + radWorld.radiation.clear(); + } + } + @Override public void receiveWorldLoad(WorldEvent.Load event) { if(!event.world.isRemote) diff --git a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerBlank.java b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerBlank.java index c28a69348..76cc31af0 100644 --- a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerBlank.java +++ b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerBlank.java @@ -4,20 +4,10 @@ import net.minecraft.world.World; public class ChunkRadiationHandlerBlank extends ChunkRadiationHandler { - @Override - public float getRadiation(World world, int x, int y, int z) { - return 0; - } - - @Override - public void setRadiation(World world, int x, int y, int z, float rad) { } - - @Override - public void incrementRad(World world, int x, int y, int z, float rad) { } - - @Override - public void decrementRad(World world, int x, int y, int z, float rad) { } - - @Override - public void updateSystem() { } + @Override public float getRadiation(World world, int x, int y, int z) { return 0; } + @Override public void setRadiation(World world, int x, int y, int z, float rad) { } + @Override public void incrementRad(World world, int x, int y, int z, float rad) { } + @Override public void decrementRad(World world, int x, int y, int z, float rad) { } + @Override public void updateSystem() { } + @Override public void clearSystem(World world) { } } diff --git a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerNT.java b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerNT.java index c95c180d5..50144d6aa 100644 --- a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerNT.java +++ b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerNT.java @@ -38,6 +38,18 @@ public class ChunkRadiationHandlerNT extends ChunkRadiationHandler { private static HashMap worldMap = new HashMap(); + @Override + public void clearSystem(World world) { + WorldRadiationData radWorld = worldMap.get(world); + + if(radWorld != null) { + radWorld.data.clear(); + radWorld.activePockets.clear(); + radWorld.dirtyChunks.clear(); + radWorld.dirtyChunks2.clear(); + } + } + @Override public void incrementRad(World world, int x, int y, int z, float rad) { if(!world.blockExists(x, y, z)) { diff --git a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerSimple.java b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerSimple.java index 72ab84887..161dd5522 100644 --- a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerSimple.java +++ b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandlerSimple.java @@ -116,6 +116,15 @@ public class ChunkRadiationHandlerSimple extends ChunkRadiationHandler { } } + @Override + public void clearSystem(World world) { + SimpleRadiationPerWorld radWorld = perWorld.get(world); + + if(radWorld != null) { + radWorld.radiation.clear(); + } + } + @Override public void receiveWorldLoad(WorldEvent.Load event) { if(!event.world.isRemote) diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index d62452c94..4bf6ef68c 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -506,6 +506,7 @@ public class OreDictManager { if(mat.shapes.contains(MaterialShapes.CASTPLATE)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.CASTPLATE.name() + name, new ItemStack(ModItems.plate_cast, 1, mat.id)); if(mat.shapes.contains(MaterialShapes.WELDEDPLATE)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.WELDEDPLATE.name() + name, new ItemStack(ModItems.plate_welded, 1, mat.id)); if(mat.shapes.contains(MaterialShapes.HEAVY_COMPONENT)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.HEAVY_COMPONENT.name() + name, new ItemStack(ModItems.heavy_component, 1, mat.id)); + if(mat.shapes.contains(MaterialShapes.DENSEWIRE)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.DENSEWIRE.name() + name, new ItemStack(ModItems.wire_dense, 1, mat.id)); } } @@ -654,6 +655,7 @@ public class OreDictManager { public String plateCast() { return PLATECAST + mats[0]; } public String plateWelded() { return PLATEWELDED + mats[0]; } public String heavyComp() { return HEAVY_COMPONENT + mats[0]; } + public String wireDense() { return WIREDENSE + mats[0]; } public String billet() { return BILLET + mats[0]; } public String block() { return BLOCK + mats[0]; } public String ore() { return ORE + mats[0]; } @@ -906,6 +908,7 @@ public class OreDictManager { public String plateCast() { return PLATECAST + groupName; } public String plateWelded() { return PLATEWELDED + groupName; } public String heavyComp() { return HEAVY_COMPONENT + groupName; } + public String wireDense() { return WIREDENSE + groupName; } public String billet() { return BILLET + groupName; } public String block() { return BLOCK + groupName; } public String ore() { return ORE + groupName; } diff --git a/src/main/java/com/hbm/inventory/OreNames.java b/src/main/java/com/hbm/inventory/OreNames.java index 9f4efc4e1..4f1584d60 100644 --- a/src/main/java/com/hbm/inventory/OreNames.java +++ b/src/main/java/com/hbm/inventory/OreNames.java @@ -16,6 +16,7 @@ public class OreNames { public static final String PLATE = "plate"; public static final String PLATECAST = "plateTriple"; //cast plates are solid plates made from 3 ingots, turns out that's literally just a GT triple plate public static final String PLATEWELDED = "plateSextuple"; + public static final String WIREDENSE = "wireDense"; public static final String BILLET = "billet"; public static final String BLOCK = "block"; public static final String ORE = "ore"; @@ -23,6 +24,6 @@ public class OreNames { public static final String HEAVY_COMPONENT = "componentHeavy"; public static final String[] prefixes = new String[] { - ANY, NUGGET, TINY, INGOT, DUSTTINY, DUST, GEM, CRYSTAL, PLATE, PLATECAST, BILLET, BLOCK, ORE, ORENETHER, HEAVY_COMPONENT + ANY, NUGGET, TINY, INGOT, DUSTTINY, DUST, GEM, CRYSTAL, PLATE, PLATECAST, BILLET, BLOCK, ORE, ORENETHER, HEAVY_COMPONENT, WIREDENSE }; } diff --git a/src/main/java/com/hbm/inventory/material/MaterialShapes.java b/src/main/java/com/hbm/inventory/material/MaterialShapes.java index 12a1f9a9d..df72f9da9 100644 --- a/src/main/java/com/hbm/inventory/material/MaterialShapes.java +++ b/src/main/java/com/hbm/inventory/material/MaterialShapes.java @@ -18,6 +18,7 @@ public class MaterialShapes { public static final MaterialShapes GEM = new MaterialShapes(INGOT.quantity, "gem"); public static final MaterialShapes CRYSTAL = new MaterialShapes(INGOT.quantity, "crystal"); public static final MaterialShapes DUST = new MaterialShapes(INGOT.quantity, "dust"); + public static final MaterialShapes DENSEWIRE = new MaterialShapes(INGOT.quantity, "wireDense"); public static final MaterialShapes PLATE = new MaterialShapes(INGOT.quantity, "plate"); public static final MaterialShapes CASTPLATE = new MaterialShapes(INGOT.quantity * 3, "plateTriple"); public static final MaterialShapes WELDEDPLATE = new MaterialShapes(INGOT.quantity * 6, "plateSextuple"); diff --git a/src/main/java/com/hbm/inventory/material/Mats.java b/src/main/java/com/hbm/inventory/material/Mats.java index 74949b37f..d3613fac6 100644 --- a/src/main/java/com/hbm/inventory/material/Mats.java +++ b/src/main/java/com/hbm/inventory/material/Mats.java @@ -55,7 +55,7 @@ public class Mats { public static final NTMMaterial MAT_LIGCOKE = make( 1412, LIGCOKE) .setConversion(MAT_CARBON, 4, 3); public static final NTMMaterial MAT_GRAPHITE = make( 1420, GRAPHITE) .setConversion(MAT_CARBON, 1, 1); public static final NTMMaterial MAT_IRON = makeSmeltable(2600, IRON, 0xFFFFFF, 0x353535, 0xFFA259).setShapes(CASTPLATE, WELDEDPLATE); - public static final NTMMaterial MAT_GOLD = makeSmeltable(7900, GOLD, 0xFFFF8B, 0xC26E00, 0xE8D754).setShapes(CASTPLATE); + public static final NTMMaterial MAT_GOLD = makeSmeltable(7900, GOLD, 0xFFFF8B, 0xC26E00, 0xE8D754).setShapes(DENSEWIRE, CASTPLATE); public static final NTMMaterial MAT_REDSTONE = makeSmeltable(_VS + 01, REDSTONE, 0xE3260C, 0x700E06, 0xFF1000); public static final NTMMaterial MAT_OBSIDIAN = makeSmeltable(_VS + 02, df("Obsidian"), 0x3D234D); public static final NTMMaterial MAT_HEMATITE = makeAdditive( 2601, HEMATITE, 0xDFB7AE, 0x5F372E, 0x6E463D); @@ -87,21 +87,22 @@ public class Mats { public static final NTMMaterial MAT_CO60 = makeSmeltable(2760, CO60, 0xC2D1EE, 0x353554, 0x8F72AE).setShapes(NUGGET, BILLET, INGOT, DUST); public static final NTMMaterial MAT_AU198 = makeSmeltable(7998, AU198, 0xFFFF8B, 0xC26E00, 0xE8D754).setShapes(NUGGET, BILLET, INGOT, DUST); public static final NTMMaterial MAT_PB209 = makeSmeltable(8209, PB209, 0x7B535D).setShapes(NUGGET, BILLET, INGOT, DUST); - public static final NTMMaterial MAT_SCHRABIDIUM = makeSmeltable(12626, SA326, 0x32FFFF, 0x005C5C, 0x32FFFF).setShapes(NUGGET, WIRE, BILLET, INGOT, DUST, PLATE, CASTPLATE, BLOCK); + public static final NTMMaterial MAT_SCHRABIDIUM = makeSmeltable(12626, SA326, 0x32FFFF, 0x005C5C, 0x32FFFF).setShapes(NUGGET, WIRE, BILLET, INGOT, DUST, DENSEWIRE, PLATE, CASTPLATE, BLOCK); public static final NTMMaterial MAT_SOLINIUM = makeSmeltable(12627, SA327, 0xA2E6E0, 0x00433D, 0x72B6B0).setShapes(NUGGET, BILLET, INGOT, BLOCK); - public static final NTMMaterial MAT_SCHRABIDATE = makeSmeltable(12600, SBD, 0x77C0D7, 0x39005E, 0x6589B4).setShapes(INGOT, DUST, BLOCK); + public static final NTMMaterial MAT_SCHRABIDATE = makeSmeltable(12600, SBD, 0x77C0D7, 0x39005E, 0x6589B4).setShapes(INGOT, DUST, DENSEWIRE, BLOCK); public static final NTMMaterial MAT_SCHRARANIUM = makeSmeltable(12601, SRN, 0x2B3227, 0x2B3227, 0x24AFAC).setShapes(INGOT, BLOCK); public static final NTMMaterial MAT_GHIORSIUM = makeSmeltable(12836, GH336, 0xF4EFE1, 0x2A3306, 0xC6C6A1).setShapes(NUGGET, BILLET, INGOT, BLOCK); //Base metals public static final NTMMaterial MAT_TITANIUM = makeSmeltable(2200, TI, 0xF7F3F2, 0x4F4C4B, 0xA99E79).setShapes(INGOT, DUST, PLATE, CASTPLATE, WELDEDPLATE, BLOCK, HEAVY_COMPONENT); public static final NTMMaterial MAT_COPPER = makeSmeltable(2900, CU, 0xFDCA88, 0x601E0D, 0xC18336).setShapes(WIRE, INGOT, DUST, PLATE, CASTPLATE, BLOCK, HEAVY_COMPONENT); - public static final NTMMaterial MAT_TUNGSTEN = makeSmeltable(7400, W, 0x868686, 0x000000, 0x977474).setShapes(WIRE, INGOT, DUST, CASTPLATE, WELDEDPLATE, BLOCK, HEAVY_COMPONENT); + public static final NTMMaterial MAT_TUNGSTEN = makeSmeltable(7400, W, 0x868686, 0x000000, 0x977474).setShapes(WIRE, INGOT, DUST, DENSEWIRE, CASTPLATE, WELDEDPLATE, BLOCK, HEAVY_COMPONENT); public static final NTMMaterial MAT_ALUMINIUM = makeSmeltable(1300, AL, 0xFFFFFF, 0x344550, 0xD0B8EB).setShapes(WIRE, INGOT, DUST, PLATE, CASTPLATE, BLOCK, HEAVY_COMPONENT); public static final NTMMaterial MAT_LEAD = makeSmeltable(8200, PB, 0xA6A6B2, 0x03030F, 0x646470).setShapes(NUGGET, INGOT, DUST, PLATE, CASTPLATE, BLOCK, HEAVY_COMPONENT); public static final NTMMaterial MAT_BISMUTH = makeSmeltable(8300, BI, 0xB200FF).setShapes(NUGGET, BILLET, INGOT, DUST, BLOCK); public static final NTMMaterial MAT_ARSENIC = makeSmeltable(3300, AS, 0x6CBABA, 0x242525, 0x558080).setShapes(NUGGET, INGOT); public static final NTMMaterial MAT_TANTALIUM = makeSmeltable(7300, TA, 0xFFFFFF, 0x1D1D36, 0xA89B74).setShapes(NUGGET, INGOT, DUST, BLOCK); + public static final NTMMaterial MAT_NEODYMIUM = makeSmeltable(6000, ND, 0xE6E6B6, 0x1C1C00, 0x8F8F5F).setShapes(NUGGET, DUSTTINY, INGOT, DUST, DENSEWIRE, BLOCK); public static final NTMMaterial MAT_NIOBIUM = makeSmeltable(4100, NB, 0xB76EC9, 0x2F2D42, 0xD576B1).setShapes(NUGGET, DUSTTINY, INGOT, DUST, BLOCK); public static final NTMMaterial MAT_BERYLLIUM = makeSmeltable(400, BE, 0xB2B2A6, 0x0F0F03, 0xAE9572).setShapes(NUGGET, INGOT, DUST, BLOCK); public static final NTMMaterial MAT_COBALT = makeSmeltable(2700, CO, 0xC2D1EE, 0x353554, 0x8F72AE).setShapes(NUGGET, DUSTTINY, BILLET, INGOT, DUST, BLOCK); @@ -114,16 +115,17 @@ public class Mats { //Alloys public static final NTMMaterial MAT_STEEL = makeSmeltable(_AS + 0, STEEL, 0xAFAFAF, 0x0F0F0F, 0x4A4A4A).setShapes(DUSTTINY, INGOT, DUST, PLATE, CASTPLATE, WELDEDPLATE, BLOCK, HEAVY_COMPONENT); public static final NTMMaterial MAT_MINGRADE = makeSmeltable(_AS + 1, MINGRADE, 0xFFBA7D, 0xAF1700, 0xE44C0F).setShapes(WIRE, INGOT, DUST, BLOCK); - public static final NTMMaterial MAT_ALLOY = makeSmeltable(_AS + 2, ALLOY, 0xFF8330, 0x700000, 0xFF7318).setShapes(WIRE, INGOT, DUST, PLATE, CASTPLATE, BLOCK, HEAVY_COMPONENT); + public static final NTMMaterial MAT_ALLOY = makeSmeltable(_AS + 2, ALLOY, 0xFF8330, 0x700000, 0xFF7318).setShapes(WIRE, INGOT, DUST, DENSEWIRE, PLATE, CASTPLATE, BLOCK, HEAVY_COMPONENT); public static final NTMMaterial MAT_DURA = makeSmeltable(_AS + 3, DURA, 0x183039, 0x030B0B, 0x376373).setShapes(INGOT, DUST, BLOCK); public static final NTMMaterial MAT_SATURN = makeSmeltable(_AS + 4, BIGMT, 0x4DA3AF, 0x00000C, 0x4DA3AF).setShapes(INGOT, DUST, BLOCK); public static final NTMMaterial MAT_DESH = makeSmeltable(_AS + 12, DESH, 0xFF6D6D, 0x720000, 0xF22929).setShapes(INGOT, DUST, CASTPLATE, BLOCK, HEAVY_COMPONENT); - public static final NTMMaterial MAT_STAR = makeSmeltable(_AS + 5, STAR, 0xCCCCEA, 0x11111A, 0xA5A5D3).setShapes(INGOT, DUST, BLOCK); + public static final NTMMaterial MAT_STAR = makeSmeltable(_AS + 5, STAR, 0xCCCCEA, 0x11111A, 0xA5A5D3).setShapes(INGOT, DUST, DENSEWIRE, BLOCK); public static final NTMMaterial MAT_FERRO = makeSmeltable(_AS + 7, FERRO, 0xB7B7C9, 0x101022, 0x6B6B8B).setShapes(INGOT); public static final NTMMaterial MAT_TCALLOY = makeSmeltable(_AS + 6, TCALLOY, 0xD4D6D6, 0x323D3D, 0x9CA6A6).setShapes(INGOT, DUST, CASTPLATE, WELDEDPLATE, HEAVY_COMPONENT); public static final NTMMaterial MAT_CDALLOY = makeSmeltable(_AS + 13, CDALLOY, 0xF7DF8F, 0x604308, 0xFBD368).setShapes(INGOT, CASTPLATE, WELDEDPLATE, HEAVY_COMPONENT); - public static final NTMMaterial MAT_MAGTUNG = makeSmeltable(_AS + 8, MAGTUNG, 0x22A2A2, 0x0F0F0F, 0x22A2A2).setShapes(INGOT, DUST, BLOCK); + public static final NTMMaterial MAT_MAGTUNG = makeSmeltable(_AS + 8, MAGTUNG, 0x22A2A2, 0x0F0F0F, 0x22A2A2).setShapes(INGOT, DUST, DENSEWIRE, BLOCK); public static final NTMMaterial MAT_CMB = makeSmeltable(_AS + 9, CMB, 0x6F6FB4, 0x000011, 0x6F6FB4).setShapes(INGOT, DUST, PLATE, CASTPLATE, WELDEDPLATE, BLOCK); + public static final NTMMaterial MAT_DNT = makeSmeltable(_AS + 15, DNT, 0x7582B9, 0x16000E, 0x455289).setShapes(INGOT, DUST, DENSEWIRE, BLOCK); public static final NTMMaterial MAT_FLUX = makeAdditive(_AS + 10, df("Flux"), 0xF1E0BB, 0x6F6256, 0xDECCAD).setShapes(DUST); public static final NTMMaterial MAT_SLAG = makeSmeltable(_AS + 11, SLAG, 0x554940, 0x34281F, 0x6C6562).setShapes(BLOCK); public static final NTMMaterial MAT_MUD = makeSmeltable(_AS + 14, MUD, 0xBCB5A9, 0x481213, 0x96783B).setShapes(INGOT); diff --git a/src/main/java/com/hbm/inventory/recipes/MagicRecipes.java b/src/main/java/com/hbm/inventory/recipes/MagicRecipes.java index 39fc4c54b..0c4e12f45 100644 --- a/src/main/java/com/hbm/inventory/recipes/MagicRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/MagicRecipes.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import static com.hbm.inventory.OreDictManager.*; import com.hbm.blocks.ModBlocks; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.OreDictStack; @@ -41,7 +42,7 @@ public class MagicRecipes { public static void register() { recipes.add(new MagicRecipe(new ItemStack(ModItems.ingot_u238m2), new ComparableStack(ModItems.ingot_u238m2, 1, 1), new ComparableStack(ModItems.ingot_u238m2, 1, 2), new ComparableStack(ModItems.ingot_u238m2, 1, 3))); recipes.add(new MagicRecipe(new ItemStack(ModItems.rod_of_discord), new ComparableStack(Items.ender_pearl), new ComparableStack(Items.blaze_rod), new ComparableStack(ModItems.nugget_euphemium))); - recipes.add(new MagicRecipe(new ItemStack(ModItems.balefire_and_steel), new OreDictStack("ingotSteel"), new ComparableStack(ModItems.egg_balefire_shard))); + recipes.add(new MagicRecipe(new ItemStack(ModItems.balefire_and_steel), new OreDictStack(STEEL.ingot()), new ComparableStack(ModItems.egg_balefire_shard))); recipes.add(new MagicRecipe(new ItemStack(ModItems.mysteryshovel), new ComparableStack(Items.iron_shovel), new ComparableStack(Items.bone), new ComparableStack(ModItems.ingot_starmetal), new ComparableStack(ModItems.ducttape))); recipes.add(new MagicRecipe(new ItemStack(ModItems.ingot_electronium), new ComparableStack(ModItems.pellet_charged), new ComparableStack(ModItems.pellet_charged), new ComparableStack(ModItems.ingot_dineutronium), new ComparableStack(ModItems.ingot_dineutronium))); @@ -83,13 +84,19 @@ public class MagicRecipes { new ComparableStack(ModBlocks.hadron_coil_chlorophyte), new ComparableStack(ModItems.powder_dineutronium), new ComparableStack(ModItems.plate_desh), - new OreDictStack("dustGold"))); + new OreDictStack(GOLD.dust()))); + + recipes.add(new MagicRecipe(new ItemStack(ModBlocks.hadron_coil_mese), + new ComparableStack(ModBlocks.hadron_coil_chlorophyte), + new OreDictStack(DNT.wireDense()), + new OreDictStack(W.wireDense()), + new OreDictStack(GOLD.wireDense()))); recipes.add(new MagicRecipe(new ItemStack(ModItems.gun_darter), - new OreDictStack("plateSteel"), - new OreDictStack("plateSteel"), + new OreDictStack(STEEL.plate()), + new OreDictStack(STEEL.plate()), new ComparableStack(ModItems.ingot_polymer), - new OreDictStack("plateGold"))); + new OreDictStack(GOLD.plate()))); recipes.add(new MagicRecipe(new ItemStack(ModItems.ammo_dart, 4, ItemAmmoEnums.AmmoDart.NUCLEAR.ordinal()), new ComparableStack(ModItems.plate_polymer), @@ -109,7 +116,6 @@ public class MagicRecipes { public MagicRecipe(ItemStack out, AStack... in) { this.out = out; this.in = Arrays.asList(in); - //Collections.sort(this.in); } public boolean matches(List comps) { diff --git a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java index 281d884e3..778b17be4 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -126,6 +126,8 @@ public class AnvilRecipes { smithingRecipes.add(new AnvilSmithingMold(16, new ComparableStack(ModItems.casing_9), new ItemStack[] {new ItemStack(ModItems.casing_9)})); smithingRecipes.add(new AnvilSmithingMold(17, new ComparableStack(ModItems.casing_50), new ItemStack[] {new ItemStack(ModItems.casing_50)})); smithingRecipes.add(new AnvilSmithingMold(18, new ComparableStack(ModItems.casing_buckshot), new ItemStack[] {new ItemStack(ModItems.casing_buckshot)})); + smithingRecipes.add(new AnvilSmithingMold(20, new OreDictStack(ALLOY.wireDense(), 1), new OreDictStack("wireDense", 1))); + smithingRecipes.add(new AnvilSmithingMold(21, new OreDictStack(ALLOY.wireDense(), 9), new OreDictStack("wireDense", 9))); smithingRecipes.add(new AnvilSmithingCyanideRecipe()); smithingRecipes.add(new AnvilSmithingRenameRecipe()); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 2a28f99d5..4609fed6d 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -780,6 +780,7 @@ public class ModItems { public static Item plate_cast; public static Item plate_welded; public static Item heavy_component; + public static Item wire_dense; public static Item part_lithium; public static Item part_beryllium; @@ -3263,6 +3264,7 @@ public class ModItems { plate_cast = new ItemAutogen(MaterialShapes.CASTPLATE).aot(Mats.MAT_BISMUTH, "plate_cast_bismuth").setUnlocalizedName("plate_cast").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_cast"); plate_welded = new ItemAutogen(MaterialShapes.WELDEDPLATE).setUnlocalizedName("plate_welded").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_welded"); heavy_component = new ItemAutogen(MaterialShapes.HEAVY_COMPONENT).setUnlocalizedName("heavy_component").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":heavy_component"); + wire_dense = new ItemAutogen(MaterialShapes.DENSEWIRE).setUnlocalizedName("wire_dense").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":wire_dense"); part_lithium = new Item().setUnlocalizedName("part_lithium").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":part_lithium"); part_beryllium = new Item().setUnlocalizedName("part_beryllium").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":part_beryllium"); @@ -6028,6 +6030,7 @@ public class ModItems { GameRegistry.registerItem(wire_gold, wire_gold.getUnlocalizedName()); GameRegistry.registerItem(wire_schrabidium, wire_schrabidium.getUnlocalizedName()); GameRegistry.registerItem(wire_magnetized_tungsten, wire_magnetized_tungsten.getUnlocalizedName()); + GameRegistry.registerItem(wire_dense, wire_dense.getUnlocalizedName()); //Parts GameRegistry.registerItem(coil_copper, coil_copper.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/machine/ItemMold.java b/src/main/java/com/hbm/items/machine/ItemMold.java index 6da8ca650..78e5a8ff1 100644 --- a/src/main/java/com/hbm/items/machine/ItemMold.java +++ b/src/main/java/com/hbm/items/machine/ItemMold.java @@ -46,8 +46,9 @@ public class ItemMold extends Item { registerMold(new MoldShape( 2, S, "ingot", MaterialShapes.INGOT)); registerMold(new MoldShape( 3, S, "plate", MaterialShapes.PLATE)); registerMold(new MoldWire( 4, S, "wire")); - + registerMold(new MoldShape( 19, S, "plate_cast", MaterialShapes.CASTPLATE)); + registerMold(new MoldShape( 20, S, "wire_dense", MaterialShapes.DENSEWIRE)); registerMold(new MoldMulti( 5, S, "blade", MaterialShapes.INGOT.q(3), Mats.MAT_TITANIUM, new ItemStack(ModItems.blade_titanium), @@ -76,6 +77,7 @@ public class ItemMold extends Item { registerMold(new MoldShape( 10, L, "ingots", MaterialShapes.INGOT, 9)); registerMold(new MoldShape( 11, L, "plates", MaterialShapes.PLATE, 9)); + registerMold(new MoldShape( 21, L, "wires_dense", MaterialShapes.DENSEWIRE, 9)); registerMold(new MoldBlock( 12, L, "block", MaterialShapes.BLOCK)); registerMold(new MoldSingle( 13, L, "pipes", new ItemStack(ModItems.pipes_steel), Mats.MAT_STEEL, MaterialShapes.BLOCK.q(3))); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 624d4ce59..4c7e39863 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -825,14 +825,27 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.mech_key, 1), new Object[] { "MCM", "MKM", "MMM", 'M', ModItems.ingot_meteorite_forged, 'C', ModItems.coin_maskman, 'K', ModItems.key }); addRecipeAuto(new ItemStack(ModItems.spawn_ufo, 1), new Object[] { "MMM", "DCD", "MMM", 'M', ModItems.ingot_meteorite, 'D', DNT.ingot(), 'C', ModItems.coin_worm }); + addRecipeAuto(new ItemStack(ModItems.wire_dense, 1, Mats.MAT_ALLOY.id), new Object[] { "WWW", "W W", "WWW", 'W', ModItems.wire_advanced_alloy }); + addRecipeAuto(new ItemStack(ModItems.wire_dense, 1, Mats.MAT_GOLD.id), new Object[] { "WWW", "W W", "WWW", 'W', ModItems.wire_gold }); + addRecipeAuto(new ItemStack(ModItems.wire_dense, 1, Mats.MAT_TUNGSTEN.id), new Object[] { "WWW", "W W", "WWW", 'W', ModItems.wire_tungsten }); + addRecipeAuto(new ItemStack(ModItems.wire_dense, 1, Mats.MAT_MAGTUNG.id), new Object[] { "WWW", "W W", "WWW", 'W', ModItems.wire_magnetized_tungsten }); + addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_alloy, 1), new Object[] { "WWW", "WCW", "WWW", 'W', ModItems.wire_advanced_alloy, 'C', ModBlocks.fusion_conductor }); + addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_alloy, 1), new Object[] { "WW", "WW", 'W', ALLOY.wireDense() }); addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_gold, 1), new Object[] { "PGP", "PCP", "PGP", 'G', GOLD.dust(), 'C', ModBlocks.hadron_coil_alloy, 'P', IRON.plate() }); + addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_gold, 1), new Object[] { "WG", "GW", 'W', ALLOY.wireDense(), 'G', GOLD.wireDense() }); addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_neodymium, 1), new Object[] { "G", "C", "G", 'G', ND.dust(), 'C', ModBlocks.hadron_coil_gold }); + addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_neodymium, 1), new Object[] { "WG", "GW", 'W', ND.wireDense(), 'G', GOLD.wireDense() }); addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_magtung, 1), new Object[] { "WWW", "WCW", "WWW", 'W', ModItems.wire_magnetized_tungsten, 'C', ModBlocks.fwatz_conductor }); + addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_magtung, 1), new Object[] { "WW", "WW", 'W', MAGTUNG.wireDense() }); addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_schrabidium, 1), new Object[] { "WWW", "WCW", "WWW", 'W', ModItems.wire_schrabidium, 'C', ModBlocks.hadron_coil_magtung }); + addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_schrabidium, 1), new Object[] { "WS", "SW", 'W', MAGTUNG.wireDense(), 'S', SA326.wireDense() }); addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_schrabidate, 1), new Object[] { " S ", "SCS", " S ", 'S', SBD.dust(), 'C', ModBlocks.hadron_coil_schrabidium }); + addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_schrabidate, 1), new Object[] { "WS", "SW", 'W', SBD.wireDense(), 'S', SA326.wireDense() }); addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_starmetal, 1), new Object[] { "SNS", "SCS", "SNS", 'S', STAR.ingot(), 'N', ModBlocks.hadron_coil_neodymium, 'C', ModBlocks.hadron_coil_schrabidate }); + addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_starmetal, 1), new Object[] { "SW", "WS", 'W', SBD.wireDense(), 'S', STAR.wireDense() }); addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_chlorophyte, 1), new Object[] { "TCT", "TST", "TCT", 'T', ModItems.coil_tungsten, 'C', ModItems.powder_chlorophyte, 'S', ModBlocks.hadron_coil_starmetal }); + addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_chlorophyte, 1), new Object[] { "TC", "CT", 'T', W.wireDense(), 'C', ModItems.powder_chlorophyte }); addRecipeAuto(new ItemStack(ModBlocks.hadron_diode, 1), new Object[] { "CIC", "ISI", "CIC", 'C', ModBlocks.hadron_coil_alloy, 'I', STEEL.ingot(), 'S', ModItems.circuit_gold }); addRecipeAuto(new ItemStack(ModBlocks.hadron_plating, 16), new Object[] { "CC", "CC", 'C', STEEL.plateCast()}); addShapelessAuto(new ItemStack(ModBlocks.hadron_plating_blue, 1), new Object[] { ModBlocks.hadron_plating, KEY_BLUE }); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java index 0c87a90b0..4eab1dba4 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java @@ -81,7 +81,15 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs @Override public boolean isItemValidForSlot(int i, ItemStack itemStack) { - return i == 0 || i == 1; + if(i != 0 && i != 1) return false; + + //makes sure that equal items like the antimatter capsules are spread out evenly + if(slots[0] != null && slots[1] != null && slots[0].getItem() == slots[1].getItem() && slots[0].getItemDamage() == slots[1].getItemDamage()) { + if(i == 0) return slots[1].stackSize - slots[0].stackSize >= 0; + if(i == 1) return slots[0].stackSize - slots[1].stackSize >= 0; + } + + return true; } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java index f980ca60b..141c16d38 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java @@ -124,6 +124,9 @@ public class TileEntityMachineIGenerator extends TileEntityMachineBase implement ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); return new DirPos[] { new DirPos(xCoord + dir.offsetX * -4, yCoord, zCoord + dir.offsetZ * -4, dir.getOpposite()), + new DirPos(xCoord + dir.offsetX * -2, yCoord - 1, zCoord + dir.offsetZ * -2, ForgeDirection.DOWN), + new DirPos(xCoord + dir.offsetX * -1, yCoord - 1, zCoord + dir.offsetZ * -1, ForgeDirection.DOWN), + new DirPos(xCoord, yCoord - 1, zCoord, ForgeDirection.DOWN), new DirPos(xCoord + dir.offsetX * 3, yCoord, zCoord + dir.offsetZ * 3, dir), }; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java index ac93421ca..a818bb0ef 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java @@ -15,7 +15,9 @@ import com.hbm.lib.Library; import com.hbm.module.ModuleBurnTime; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.fauxpointtwelve.DirPos; +import api.hbm.energy.IEnergyGenerator; import api.hbm.fluid.IFluidStandardReceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -24,10 +26,11 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineWoodBurner extends TileEntityMachineBase implements IFluidStandardReceiver, IControlReceiver, IGUIProvider { +public class TileEntityMachineWoodBurner extends TileEntityMachineBase implements IFluidStandardReceiver, IControlReceiver, IEnergyGenerator, IGUIProvider { public long power; public static final long maxPower = 100_000; @@ -63,6 +66,11 @@ public class TileEntityMachineWoodBurner extends TileEntityMachineBase implement this.tank.loadTank(3, 4, slots); this.power = Library.chargeItemsFromTE(slots, 5, power, maxPower); + for(DirPos pos : getConPos()) { + if(power > 0) this.sendPower(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + if(worldObj.getTotalWorldTime() % 20 == 0) this.trySubscribe(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + if(!liquidBurn) { if(this.burnTime <= 0) { @@ -121,6 +129,15 @@ public class TileEntityMachineWoodBurner extends TileEntityMachineBase implement } } } + + private DirPos[] getConPos() { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + return new DirPos[] { + new DirPos(xCoord - dir.offsetX * 2, yCoord, zCoord - dir.offsetZ * 2, dir.getOpposite()), + new DirPos(xCoord - dir.offsetX * 2 + rot.offsetX, yCoord, zCoord - dir.offsetZ * 2 + rot.offsetX, dir.getOpposite()) + }; + } @Override public void networkUnpack(NBTTagCompound nbt) { @@ -190,6 +207,21 @@ public class TileEntityMachineWoodBurner extends TileEntityMachineBase implement return slot == 1; } + @Override + public void setPower(long power) { + this.power = power; + } + + @Override + public long getPower() { + return power; + } + + @Override + public long getMaxPower() { + return maxPower; + } + @Override public FluidTank[] getAllTanks() { return new FluidTank[] {tank}; @@ -199,4 +231,29 @@ public class TileEntityMachineWoodBurner extends TileEntityMachineBase implement public FluidTank[] getReceivingTanks() { return new FluidTank[] {tank}; } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 1, + yCoord, + zCoord - 1, + xCoord + 2, + yCoord + 6, + zCoord + 2 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 39f98c28e..2d4834860 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -809,6 +809,7 @@ hbmmat.magnetizedtungsten=Magnetisierter Wolfram hbmmat.malachite=Malachit hbmmat.meteoriciron=Meteoriteneisen hbmmat.mingrade=Minecraft-Kupfer +hbmmat.neodymium=Neodym hbmmat.neptunium237=Neptunium-237 hbmmat.niobium=Niob hbmmat.obsidian=Obsidian @@ -3394,6 +3395,7 @@ item.wings_murk.name=Trübe Flügel item.wire_advanced_alloy.name=Supraleiter item.wire_aluminium.name=Aluminiumdraht item.wire_copper.name=Kupferdraht +item.wire_dense.name=Dichter %sdraht item.wire_gold.name=Golddraht item.wire_magnetized_tungsten.name=4000K Hochtemperaturensupraleiter item.wire_red_copper.name=Roter Kupferdraht @@ -3468,6 +3470,8 @@ shape.plate=Platte shape.plateTriple=Gussplatte shape.stamp=Stempel shape.wire=Draht +shape.wireDense=Dichter Draht +shape.wiresDense=Dichte Drähte soundCategory.ntmMachines=NTM Maschinen diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 85e9a142c..eb2348566 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1459,6 +1459,7 @@ hbmmat.magnetizedtungsten=Magnetized Tungsten hbmmat.malachite=Malachite hbmmat.meteoriciron=Meteoric Iron hbmmat.mingrade=Minecraft Grade Copper +hbmmat.neodymium=Neodymium hbmmat.neptunium237=Neptunium-237 hbmmat.niobium=Niobium hbmmat.obsidian=Obsidian @@ -4322,6 +4323,7 @@ item.wings_murk.name=Murky Wings item.wire_advanced_alloy.name=Super Conductor item.wire_aluminium.name=Aluminium Wire item.wire_copper.name=Copper Wire +item.wire_dense.name=Dense %s Wire item.wire_gold.name=Gold Wire item.wire_magnetized_tungsten.name=4000K High Temperature Super Conductor item.wire_red_copper.name=Red Copper Wire @@ -4409,6 +4411,8 @@ shape.plate=Plate shape.plateTriple=Cast Plate shape.stamp=Press Stamp shape.wire=Wire +shape.wireDense=Dense Wire +shape.wiresDense=Dense Wires soundCategory.ntmMachines=NTM Machines diff --git a/src/main/resources/assets/hbm/textures/items/mold_wire_dense.png b/src/main/resources/assets/hbm/textures/items/mold_wire_dense.png new file mode 100644 index 0000000000000000000000000000000000000000..2dc03fe36a90ce82e41bd5db58cfe79b0f037fff GIT binary patch literal 443 zcmV;s0Yv_ZP)S6otRcq)m3AAQapPQiKLXSKSq)(ic$h1-kD`_y*!m zguZ}JAh>a7S0Xe}M36$kRV<~DpH9X_NzBwz5zlHk_s*Gf?;Pv;>_j`Z#B&{HQ4C<5 zbL8B5&30_bB%E_Od_rkWzkS3coEHs)VSv)w5bL*(Si~uxQGyL{`!vF@*QiQ~x7UF8 zR~B(<@QG4|z}4e3y_OGvC@bepi#TO44DjnUgU{jDYwR90R|1~vunFt7&$}G}(kwH0 zF^giPWo;BGU!INwMjs&+Aq)}WxeiKes#0zhDWf6;Nv2E(>vL{Hnq^eQ>Oleg&p}T9 z#Q|VC_-%;*ky-*jf5C?D5fY`iyMJKx5f&N9;YyoKYbwHsjyXcUhxN-vvt|9vf#*8( zT0ZC9PO*n_Q=S2!a8RyWHy5XR63&U#lKti(Nv4Vg0lWn-xY8z4OI&HQ(>S0iB-3%g lXOv*|+s9^R|A30H_yR9xu^Vulr3nB4002ovPDHLkV1mwszWe|H literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/mold_wires_dense.png b/src/main/resources/assets/hbm/textures/items/mold_wires_dense.png new file mode 100644 index 0000000000000000000000000000000000000000..4c4df12b9f00943cedb19e0bfc253690630a0f77 GIT binary patch literal 447 zcmV;w0YLtVP)xQ_KoAgHZ@Krrcku3WcjV>iA!Z_lQfF9m4*&}1)KaY+ z6PZY1J1&-tW8(#onFQN$vjmw**mwbKB$^F3(^lMvm?jR!6Hr1B#&PC#O@+B|vU_T} zrsD4MG^rq8X1mqM&NWKWGdeJbqk;|q{jP!e%u0Ts)ER8J&@~nPu7R?Zbw3IVaq{~7 z7%#s$2IEQP$L7M>)32Kf?yt_19w>DN+i^h&sVvnTj-YGmp8jD?6NEMQATtT=R^upy z6r)Z>@W4+HY{$jhyH)7)UkJLU;`X8m9z?q-q+>f4VLr3KgY6#3O!{{UeiWi6(CR51 zix9;z1VXY!Dr{mH$GAB=fgkQ(s6q&$={U6hxm<#1$+{RO!-(ijJ1loPZPLAUQ!!kct9YL_-BV zT`DBYS8&5tM%ZMv+SN{l#`DJyW8lAZzu(ugEZ5Lq1C8V8WrQ1EmIZ4q0CimpH#|*~ zS7?j@;C8zSfD=HT=RBWJ0M6$#`{BOtKN6Q^xxQX65dlaksj7-B%RYw3aby?0YfT)- z-+Ep_7&gXuxIYpor4E6xG$cJ7Vv;0>3$!P2R35=JO&DX)TBDSrZCi{n%=3KMIs95D zfHX}-(=@9?-s8XD@9kq#tO*OD^h{#pGM5xG z_hRT`wW2j1Y8e$}u00spTz-3=UccXezrTLx^*ZOg&Uu~lIiJgUzdxVrZZ5~T>!wWY%(6DY#Y!2=>`S0H!_0Bmb@z@R;13ui}MFYfkM2Y)XP zx_ZFMJbJ?Rk-k>_j`lo@Q#l9q{wm4yy=5`y{-c?m^P8uR?2akl?N0IAKk(Ei&Mx04 z$eWm_y?1gl0Im2VD89NVs%p+1>+-V9fTMTKLN_|hnDgLkgd6ENX_gjcsayKaxyh5MK9X!Q<9hDHr(5pGI6sVICRHR$;ur{^RMg?Y{ z*H1jt_;HrkV$be~Tddf@)>LbgK`WS=1se5COc1K6_Td^z>ry~^DiT5CWK@SlB!Qbk}#IEEUqB3u=MaTMLP4cbc2b?jr0x3bxjCT;hz%#!NN5r zWtpq%XX6^_Crt)!Mf(HJi;uPU#a6r0lzsSPWbJrKwJbr;BnItg&hNN$aIA#UM=+WzDd zVDvzhY`eZ62#q}0f}B)ctN*>YelYQYP`GcuIWc_5g4v#_1f==hWOQ^o@TLnI7llrQ z6&~ZZ54`b1Hm&Nf-5!0uQl}gxM#jq`W11P zMJN*{6OVw?`D*)(z6ok0Bxd1j4(r29U(u}FrZ3keVK;AYTodU;!By4OQ#(6bTD;RI zN}Goc7p+5?uvg`{$?SOZpG++AxDzW^IV*|0FjgCHS4CHgERrn!P{w$M(Q8+%a2_D zkoIRnTi(jAo1eVTANWz0RHO6Lu``PdCUYLHU`<@c@=o5T&*>4DCfz5e=i;JA z^7Iu4k9|iscqI`C+U{{mx7!(+j3?xKUNzeL>&PcG5IYirU2hJ-R>d-3iNAEfv_Mii zGnIbIqx*7{L03PgcQ#kDEZFr{dus>KwjOJR=a0O>r6S?pBIMY%UeISnu+-cZx7^8C zyNXMeK0ZF&QSo}B|G}WA2CRk$=>%NXW?;?W{ZrHlxI$Z9L51L1wS9BuaW($@*Y&KC zkQmX5gEj*5=5Xf8d+`EcJXh|Sv2%&sTQRqJb~uW4TcO&1T-+x|jNHSuP9W?XSZ?{* zI&X;wl(@!Ul)-YXn|>{xH+Wj?ft!QzN010xpan}pk^oi2Z7e4uUCAU6r^o^+=&|p| z7S~)c!g9VyD_P9BN%nTRKVr!CXd>{S2r8ZVt1e3d^cHMRtodxcaw7jC!aW~(zsP(- zg@ zNq(yA_~aevtpWF`k&@E7S&s07CZ2rjc#V<6PQJTssjN(L%A)HY1gZI*iZnPMXw&iDw# zh{UyJWbTXcnVC!qB|19#t4(�R$$?^pJXXrTp8cFJC&0FCLLe?q1S#s>mw+b9X)z zm3w^&ywF1?($D9cA+2k6hR58zQsP z&5exXm-7_E$Aect&pFAekZvCdzoU{C`eYsF)6e50Qj<%GRvh=dC)t&vGAf0sV6yts5T437R{OaP) zq;8xV6t{9=uOQ8z2JQLL4@0j$>I0R8elL`=gMTMs$C8rwL2jvTxhKKkj3N4C0(T_M z@AVVE#WaG|{}_vGLg|>`CHW;^l4|~e6UqAjT=tLN zT^6tVPO;8+Xu(17vC&xBrxZ{AfB6D4UP$P2tsAOom0vN536JCy8%E)q_&O{QyuPKy z%qX5lz$vjCR5``X!M(LV=_3b<>>9oM;ywIZ6ASk@>3|HSKu82Y{0Sa6=L@Hn;-Y@| zWuMNwXsyNe)R;@)8wmG*Z!VRPUYHM_YfNkX4_i6*|EAqTa}OgBQYaKj0<2)5(&1_s zMy;e+PpJOJDqB&zaA(g}#CNzn{gmV7?QNgbr|Vrah+!VBosKb+p1%UmNDa_f6YUNT z4tDmNUJ+k~Rfe?eetaa$Ck?ynrsb2-H)6Hx7u)p)M>L-rsLspG-^yR&$&sp*BaBr~ z)T|F*zY7IF3uA+-H4xW=zlSB;8Ur6!knnfUXYU||4Ew<#&-)WG&!Iq``0Q&U6;`Nr zg7g|)R-k~ifaTxg&AKFm)viw zcAqUUx%Hp09!I|EGt_|@qV3MDgB-*#q#p|eeg1x!(?&<($%V1R)DC$abwe}^fA9ur z4T;#hV{jh{aMO^m(v)Z3VjpazJt~7j;ddrDy+{^s-{Nnq>Ii0CG%x2CZ|>}rT|r#q zyXG_=68*(XejChc&=Y*Ij!Ev@ZpkKDM^e$KjbUfb=M7jSRf_1y$I0YW+F7vy57LF7 zRn4b9!{d8rMEdhp8Y3ZQZm7QDlW|=%Le8Dd5Bi~!aNOv!H>sAn8qE8ntgP%6hvWWy z_bf!(CQ@}nrZOBE#h2pDByCnsW+R}IOHkU2t9F6A@QzK%V+NCYTbAFt0y9dAp!OME zY5BHM+}G%GB-~ahC6cNMx7AJ=!To9RqvT!C;b=I-tr6=wfuX5yFTfqGEIO(KE>x5L zA4QmUvTel{Ia){%N3dDq3upPB_|$3kU{P+NlDBE!hD4_CgtV`Bvt4>O(;8yBp0za} suRI)Ew3hU^o=H%7d|<;eQk=A=k)h#2f&~kgBsDGIaKr^uYv)h?HzAHXZ~y=R literal 2701 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 Date: Thu, 2 Nov 2023 14:52:04 +0100 Subject: [PATCH 358/432] this either fixes post impact mob spawning or destroys everything --- changelog | 6 +++--- .../com/hbm/main/ModEventHandlerImpact.java | 17 ++++++++--------- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/changelog b/changelog index 562b40a8f..6f1c1771c 100644 --- a/changelog +++ b/changelog @@ -13,8 +13,6 @@ * Material cost is equivalent to 1 ingot * For ease of mass-production, 9-fold molds are also available * Used to craft hadron magnets, reducing crafting complexity be removing annoying upgrade recipes which make automation more complicated and needlessly inflate the amount of materials required for a magnet tier that isn't even the one that's being made -* Neodymium os now a valid crucible material -* Particle accelerators will now evenly distribute items using IO if both inputs are equal, making the antischrabidium recipe a lot easier to automate ## Changed * Changed many tool recipes that exclusively used polymer to now also accept bakelite @@ -25,6 +23,8 @@ * Doubled coal bedrock ore's coal output to 8 coal * A new config option now replaces the iron and copper bedrock ores in 528 mode with hematite and malachite * the industrial generator now has three additional ports on its underside, meaning it is now a lot easier to properly automate all necessary IO +* Neodymium is now a valid crucible material +* Particle accelerators will now evenly distribute items using IO if both inputs are equal, making the antischrabidium recipe a lot easier to automate ## Fixed -* Pipe and power networks now force the chunk to be saved on transfer, ensuring that rapid changes in the fluid/energy level aren't lost when the tile entity is unloaded \ No newline at end of file +* Pipe and power networks now force the chunk to be saved on transfer, ensuring that rapid changes in the fluid/energy level aren't lost when the tile entity is unloaded diff --git a/src/main/java/com/hbm/main/ModEventHandlerImpact.java b/src/main/java/com/hbm/main/ModEventHandlerImpact.java index 27529784c..d371296af 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerImpact.java +++ b/src/main/java/com/hbm/main/ModEventHandlerImpact.java @@ -31,7 +31,7 @@ import net.minecraft.world.EnumSkyBlock; import net.minecraft.world.chunk.Chunk; import net.minecraft.world.chunk.storage.ExtendedBlockStorage; import net.minecraftforge.common.DimensionManager; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; +import net.minecraftforge.event.entity.living.LivingSpawnEvent.CheckSpawn; import net.minecraftforge.event.terraingen.BiomeEvent; import net.minecraftforge.event.terraingen.DecorateBiomeEvent; import net.minecraftforge.event.terraingen.PopulateChunkEvent; @@ -100,22 +100,21 @@ public class ModEventHandlerImpact { }*/ @SubscribeEvent - public void extinction(EntityJoinWorldEvent event) { + public void extinction(CheckSpawn event) { TomSaveData data = TomSaveData.forWorld(event.world); if(data.impact) { - if(!(event.entity instanceof EntityPlayer) && event.entity instanceof EntityLivingBase) { - EntityLivingBase living = (EntityLivingBase) event.entity; + if(!(event.entityLiving instanceof EntityPlayer) && event.entityLiving instanceof EntityLivingBase) { if(event.world.provider.dimensionId == 0) { - if(event.entity.height >= 0.85f || event.entity.width >= 0.85f && event.entity.ticksExisted < 20 && !(event.entity instanceof EntityWaterMob) && !living.isChild()) { - event.setCanceled(true); + if(event.entityLiving.height >= 0.85F || event.entityLiving.width >= 0.85F && !(event.entity instanceof EntityWaterMob) && !event.entityLiving.isChild()) { + event.setResult(Result.DENY); } } - if(event.entity instanceof EntityWaterMob && event.entity.ticksExisted < 20) { + if(event.entityLiving instanceof EntityWaterMob) { Random rand = new Random(); - if(rand.nextInt(9) != 0) { - event.setCanceled(true); + if(rand.nextInt(5) != 0) { + event.setResult(Result.DENY); } } } From ca9d8e74e0a52a5844a5c105ae5ace8111c348aa Mon Sep 17 00:00:00 2001 From: Bob Date: Sat, 4 Nov 2023 23:31:20 +0100 Subject: [PATCH 359/432] i wonder if the sky people like me --- changelog | 3 + .../blocks/generic/BlockLanternBehemoth.java | 10 ++- .../hbm/blocks/machine/MachineWoodBurner.java | 21 +++++- .../java/com/hbm/extprop/HbmPlayerProps.java | 4 ++ .../HazardTransformerRadiationContainer.java | 17 ++++- .../inventory/gui/GUIMachineWoodBurner.java | 4 +- .../java/com/hbm/items/tool/ItemWandD.java | 12 ++-- .../java/com/hbm/main/CraftingManager.java | 3 +- src/main/java/com/hbm/main/MainRegistry.java | 5 +- .../com/hbm/main/ModEventHandlerImpact.java | 16 +++++ .../deco/TileEntityLanternBehemoth.java | 17 ++++- .../machine/TileEntityMachineRadar.java | 37 ++++------- .../machine/TileEntityMachineWoodBurner.java | 57 +++++++++++++++- .../storage/TileEntityMachineBattery.java | 61 +++++++++++++----- .../storage/TileEntityMachineFENSU.java | 6 +- src/main/resources/assets/hbm/lang/de_DE.lang | 3 + src/main/resources/assets/hbm/lang/en_US.lang | 3 + .../models/machines/strand_caster.png | Bin 0 -> 10757 bytes 18 files changed, 218 insertions(+), 61 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/models/machines/strand_caster.png diff --git a/changelog b/changelog index 6f1c1771c..f25cb1cf0 100644 --- a/changelog +++ b/changelog @@ -25,6 +25,9 @@ * the industrial generator now has three additional ports on its underside, meaning it is now a lot easier to properly automate all necessary IO * Neodymium is now a valid crucible material * Particle accelerators will now evenly distribute items using IO if both inputs are equal, making the antischrabidium recipe a lot easier to automate +* Due to multiple complaints regarding the plastic bag's ability to contain radiation, plastic bags now *double* the radiation of the item they contain +* The post impact spawning restrictions have changed, meaning that spawning things with spawn eggs is no longer broken. Due to technical limitations, this means that post impact, no mobs will spawn as part of world gen, only via random spawns. +* All energy storage blocks now have a fixed transfer limit of 5% of their capacity per tick, reducing the impact of ping-ponging considerably ## Fixed * Pipe and power networks now force the chunk to be saved on transfer, ensuring that rapid changes in the fluid/energy level aren't lost when the tile entity is unloaded diff --git a/src/main/java/com/hbm/blocks/generic/BlockLanternBehemoth.java b/src/main/java/com/hbm/blocks/generic/BlockLanternBehemoth.java index b90c1ad44..843a7c7b7 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockLanternBehemoth.java +++ b/src/main/java/com/hbm/blocks/generic/BlockLanternBehemoth.java @@ -4,6 +4,7 @@ import java.util.Random; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; +import com.hbm.extprop.HbmPlayerProps; import com.hbm.tileentity.IRepairable; import com.hbm.tileentity.deco.TileEntityLanternBehemoth; @@ -48,7 +49,14 @@ public class BlockLanternBehemoth extends BlockDummyable implements IToolable, I public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) { if(tool != ToolType.TORCH) return false; - return IRepairable.tryRepairMultiblock(world, x, y, z, this, player); + boolean didRepair = IRepairable.tryRepairMultiblock(world, x, y, z, this, player); + + if(didRepair) { + HbmPlayerProps data = HbmPlayerProps.getData(player); + data.reputation++; + } + + return didRepair; } @Override diff --git a/src/main/java/com/hbm/blocks/machine/MachineWoodBurner.java b/src/main/java/com/hbm/blocks/machine/MachineWoodBurner.java index acc5658a2..246fb20b0 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineWoodBurner.java +++ b/src/main/java/com/hbm/blocks/machine/MachineWoodBurner.java @@ -1,15 +1,20 @@ package com.hbm.blocks.machine; +import java.util.List; + import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ITooltipProvider; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityMachineWoodBurner; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; -public class MachineWoodBurner extends BlockDummyable { +public class MachineWoodBurner extends BlockDummyable implements ITooltipProvider { public MachineWoodBurner(Material mat) { super(mat); @@ -36,4 +41,18 @@ public class MachineWoodBurner extends BlockDummyable { public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { return this.standardOpenBehavior(world, x, y, z, player, 0); } + + protected void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + this.makeExtra(world, x - dir.offsetX, y, z - dir.offsetZ); + this.makeExtra(world, x - dir.offsetX + rot.offsetX, y, z - dir.offsetZ + rot.offsetZ); + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } } diff --git a/src/main/java/com/hbm/extprop/HbmPlayerProps.java b/src/main/java/com/hbm/extprop/HbmPlayerProps.java index 46d4c4a95..f51905229 100644 --- a/src/main/java/com/hbm/extprop/HbmPlayerProps.java +++ b/src/main/java/com/hbm/extprop/HbmPlayerProps.java @@ -41,6 +41,8 @@ public class HbmPlayerProps implements IExtendedEntityProperties { public int lastDamage = 0; public static final float shieldCap = 100; + public int reputation; + public HbmPlayerProps(EntityPlayer player) { this.player = player; } @@ -157,6 +159,7 @@ public class HbmPlayerProps implements IExtendedEntityProperties { props.setFloat("maxShield", maxShield); props.setBoolean("enableBackpack", enableBackpack); props.setBoolean("enableHUD", enableHUD); + props.setInteger("reputation", reputation); nbt.setTag("HbmPlayerProps", props); } @@ -172,6 +175,7 @@ public class HbmPlayerProps implements IExtendedEntityProperties { this.maxShield = props.getFloat("maxShield"); this.enableBackpack = props.getBoolean("enableBackpack"); this.enableHUD = props.getBoolean("enableHUD"); + this.reputation = props.getInteger("reputation"); } } } diff --git a/src/main/java/com/hbm/hazard/transformer/HazardTransformerRadiationContainer.java b/src/main/java/com/hbm/hazard/transformer/HazardTransformerRadiationContainer.java index f91e4e51f..a60d2ff38 100644 --- a/src/main/java/com/hbm/hazard/transformer/HazardTransformerRadiationContainer.java +++ b/src/main/java/com/hbm/hazard/transformer/HazardTransformerRadiationContainer.java @@ -23,8 +23,9 @@ public class HazardTransformerRadiationContainer extends HazardTransformerBase { boolean isCrate = Block.getBlockFromItem(stack.getItem()) instanceof BlockStorageCrate; boolean isBox = stack.getItem() == ModItems.containment_box; + boolean isBag = stack.getItem() == ModItems.plastic_bag; - if(!isCrate && !isBox) return; + if(!isCrate && !isBox && !isBag) return; if(!stack.hasTagCompound()) return; float radiation = 0; @@ -54,6 +55,20 @@ public class HazardTransformerRadiationContainer extends HazardTransformerBase { radiation = (float) BobMathUtil.squirt(radiation); } + if(isBag) { + + ItemStack[] fromNBT = ItemStackUtil.readStacksFromNBT(stack, 1); + if(fromNBT == null) return; + + for(ItemStack held : fromNBT) { + if(held != null) { + radiation += HazardSystem.getHazardLevelFromStack(held, HazardRegistry.RADIATION) * held.stackSize; + } + } + + radiation *= 2F; + } + if(radiation > 0) { entries.add(new HazardEntry(HazardRegistry.RADIATION, radiation)); } diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineWoodBurner.java b/src/main/java/com/hbm/inventory/gui/GUIMachineWoodBurner.java index fbf3f19cc..977f11d20 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineWoodBurner.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineWoodBurner.java @@ -49,7 +49,7 @@ public class GUIMachineWoodBurner extends GuiInfoContainer { } } - if(burner.liquidBurn) burner.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 70, guiTop + 28, 34, 52); + if(burner.liquidBurn) burner.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 80, guiTop + 18, 16, 52); if(!burner.liquidBurn && guiLeft + 16 <= mouseX && guiLeft + 16 + 8 > mouseX && guiTop + 17 < mouseY && guiTop + 17 + 54 >= mouseY) { func_146283_a(Arrays.asList(new String[] { (burner.burnTime / 20) + "s" }), mouseX, mouseY); @@ -110,6 +110,6 @@ public class GUIMachineWoodBurner extends GuiInfoContainer { drawTexturedModalRect(guiLeft + 17, guiTop + 70 - b, 192, 52 - b, 4, b); } - if(burner.liquidBurn) burner.tank.renderTank(guiLeft + 70, guiTop + 80, this.zLevel, 34, 52); + if(burner.liquidBurn) burner.tank.renderTank(guiLeft + 80, guiTop + 70, this.zLevel, 16, 52); } } diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index 88a0522c8..2c76d2e96 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -4,6 +4,7 @@ import java.util.List; import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.lib.Library; +import com.hbm.saveddata.TomSaveData; import com.hbm.util.TrackerUtil; import net.minecraft.entity.player.EntityPlayer; @@ -41,11 +42,11 @@ public class ItemWandD extends Item { TimeAnalyzer.endCount(); TimeAnalyzer.dump();*/ - /*TomSaveData data = TomSaveData.forWorld(world); - data.impact = false; + TomSaveData data = TomSaveData.forWorld(world); + data.impact = true; data.fire = 0F; data.dust = 0F; - data.markDirty();*/ + data.markDirty(); /*EntityTomBlast tom = new EntityTomBlast(world); tom.posX = pos.blockX; @@ -54,16 +55,17 @@ public class ItemWandD extends Item { tom.destructionRange = 600; world.spawnEntityInWorld(tom);*/ - EntityNukeTorex torex = new EntityNukeTorex(world); + /*EntityNukeTorex torex = new EntityNukeTorex(world); torex.setPositionAndRotation(pos.blockX, pos.blockY + 1, pos.blockZ, 0, 0); torex.setScale(1.5F); torex.setType(1); world.spawnEntityInWorld(torex); + TrackerUtil.setTrackingRange(world, torex, 1000);*/ + /*EntityTracker entitytracker = ((WorldServer) world).getEntityTracker(); IntHashMap map = ReflectionHelper.getPrivateValue(EntityTracker.class, entitytracker, "trackedEntityIDs", "field_72794_c"); EntityTrackerEntry entry = (EntityTrackerEntry) map.lookup(torex.getEntityId()); entry.blocksDistanceThreshold = 1000;*/ - TrackerUtil.setTrackingRange(world, torex, 1000); //world.spawnEntityInWorld(EntityNukeExplosionMK5.statFacNoRad(world, 150, pos.blockX, pos.blockY + 1, pos.blockZ)); //DungeonToolbox.generateBedrockOreWithChance(world, world.rand, pos.blockX, pos.blockZ, EnumBedrockOre.TITANIUM, new FluidStack(Fluids.SULFURIC_ACID, 500), 2, 1); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 4c7e39863..e7ee854ca 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -292,7 +292,8 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.capacitor_niobium, 1), new Object[] { "PPP", "ICI", "WWW", 'P', STEEL.plate(), 'I', RUBBER.ingot(), 'C', NB.block(), 'W', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.capacitor_tantalium, 1), new Object[] { "PPP", "ICI", "WWW", 'P', STEEL.plate(), 'I', ANY_RESISTANTALLOY.ingot(), 'C', TA.block(), 'W', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.capacitor_schrabidate, 1), new Object[] { "PPP", "ICI", "WWW", 'P', STEEL.plate(), 'I', ANY_RESISTANTALLOY.ingot(), 'C', SBD.block(), 'W', STEEL.ingot() }); - addRecipeAuto(new ItemStack(ModBlocks.machine_coal_off, 1), new Object[] { "STS", "SCS", "SFS", 'S', STEEL.ingot(), 'T', ModItems.tank_steel, 'C', MINGRADE.ingot(), 'F', Blocks.furnace }); + //addRecipeAuto(new ItemStack(ModBlocks.machine_coal_off, 1), new Object[] { "STS", "SCS", "SFS", 'S', STEEL.ingot(), 'T', ModItems.tank_steel, 'C', MINGRADE.ingot(), 'F', Blocks.furnace }); + addRecipeAuto(new ItemStack(ModBlocks.machine_wood_burner, 1), new Object[] { "PPP", "CSC", "IFI" , 'P', STEEL.plate528(), 'C', ModItems.coil_copper, 'S', ModItems.hull_small_steel, 'I', IRON.ingot(), 'F', Blocks.furnace}); addRecipeAuto(new ItemStack(ModBlocks.machine_boiler_off, 1), new Object[] { "SPS", "TFT", "SPS", 'S', STEEL.ingot(), 'P', ModItems.board_copper, 'T', ModItems.tank_steel, 'F', Blocks.furnace }); addRecipeAuto(new ItemStack(ModBlocks.machine_boiler_electric_off, 1), new Object[] { "SPS", "TFT", "SPS", 'S', DESH.ingot(), 'P', ModItems.board_copper, 'T', ModItems.tank_steel, 'F', ModBlocks.machine_electric_furnace_off }); addRecipeAuto(new ItemStack(ModBlocks.machine_turbine, 1), new Object[] { "SMS", "PTP", "SMS", 'S', STEEL.ingot(), 'T', ModItems.turbine_titanium, 'M', ModItems.coil_copper, 'P', ANY_PLASTIC.ingot() }); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 9dc506768..8d392574b 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -5,9 +5,7 @@ import com.hbm.blocks.BlockEnums.EnumStoneType; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockMotherOfAllOres; import com.hbm.blocks.generic.BlockToolConversion; -import com.hbm.commands.CommandDebugChunkLoad; -import com.hbm.commands.CommandReloadRecipes; -import com.hbm.commands.CommandSatellites; +import com.hbm.commands.*; import com.hbm.config.*; import com.hbm.crafting.RodRecipes; import com.hbm.creativetabs.*; @@ -924,6 +922,7 @@ public class MainRegistry { event.registerServerCommand(new CommandReloadRecipes()); event.registerServerCommand(new CommandDebugChunkLoad()); event.registerServerCommand(new CommandSatellites()); + event.registerServerCommand(new CommandRadiation()); } @EventHandler diff --git a/src/main/java/com/hbm/main/ModEventHandlerImpact.java b/src/main/java/com/hbm/main/ModEventHandlerImpact.java index d371296af..7f178531f 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerImpact.java +++ b/src/main/java/com/hbm/main/ModEventHandlerImpact.java @@ -35,6 +35,7 @@ import net.minecraftforge.event.entity.living.LivingSpawnEvent.CheckSpawn; import net.minecraftforge.event.terraingen.BiomeEvent; import net.minecraftforge.event.terraingen.DecorateBiomeEvent; import net.minecraftforge.event.terraingen.PopulateChunkEvent; +import net.minecraftforge.event.terraingen.PopulateChunkEvent.Populate; import net.minecraftforge.event.terraingen.DecorateBiomeEvent.Decorate.EventType; import net.minecraftforge.event.world.WorldEvent; @@ -109,17 +110,32 @@ public class ModEventHandlerImpact { if(event.world.provider.dimensionId == 0) { if(event.entityLiving.height >= 0.85F || event.entityLiving.width >= 0.85F && !(event.entity instanceof EntityWaterMob) && !event.entityLiving.isChild()) { event.setResult(Result.DENY); + event.entityLiving.setDead(); } } if(event.entityLiving instanceof EntityWaterMob) { Random rand = new Random(); if(rand.nextInt(5) != 0) { event.setResult(Result.DENY); + event.entityLiving.setDead(); } } } } } + + @SubscribeEvent + public void onPopulate(Populate event) { + + if(event.type == Populate.EventType.ANIMALS) { + + TomSaveData data = TomSaveData.forWorld(event.world); + + if(data.impact) { + event.setResult(Result.DENY); + } + } + } @SubscribeEvent(priority = EventPriority.LOWEST) public void onLoad(WorldEvent.Load event) { diff --git a/src/main/java/com/hbm/tileentity/deco/TileEntityLanternBehemoth.java b/src/main/java/com/hbm/tileentity/deco/TileEntityLanternBehemoth.java index ca5731bb2..3a4b8a49e 100644 --- a/src/main/java/com/hbm/tileentity/deco/TileEntityLanternBehemoth.java +++ b/src/main/java/com/hbm/tileentity/deco/TileEntityLanternBehemoth.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.List; import com.hbm.entity.missile.EntityBobmazon; +import com.hbm.extprop.HbmPlayerProps; import com.hbm.inventory.OreDictManager; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.ComparableStack; @@ -15,6 +16,7 @@ import com.hbm.tileentity.IRepairable; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; @@ -39,6 +41,9 @@ public class TileEntityLanternBehemoth extends TileEntity implements INBTPacketR if(comTimer == 100) worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:block.hornFarDual", 10000F, 1F); if(comTimer == 0) { + List players = worldObj.getEntitiesWithinAABB(EntityPlayer.class, AxisAlignedBB.getBoundingBox(xCoord - 10, yCoord - 10, zCoord - 10, xCoord + 11, yCoord + 11, zCoord + 11)); + EntityPlayer first = players.isEmpty() ? null : players.get(0); + boolean bonus = first == null ? false : (HbmPlayerProps.getData(first).reputation >= 10); EntityBobmazon shuttle = new EntityBobmazon(worldObj); shuttle.posX = xCoord + 0.5 + worldObj.rand.nextGaussian() * 10; shuttle.posY = 300; @@ -48,7 +53,7 @@ public class TileEntityLanternBehemoth extends TileEntity implements INBTPacketR new ItemStack(ModItems.circuit_copper, 4 + worldObj.rand.nextInt(2)), new ItemStack(ModItems.circuit_red_copper, 2 + worldObj.rand.nextInt(3)), new ItemStack(ModItems.circuit_gold, 1 + worldObj.rand.nextInt(2)), - worldObj.rand.nextInt(3) == 0 ? new ItemStack(ModItems.gem_alexandrite) : new ItemStack(Items.diamond, 6 + worldObj.rand.nextInt(6)), + bonus ? new ItemStack(ModItems.gem_alexandrite) : new ItemStack(Items.diamond, 6 + worldObj.rand.nextInt(6)), new ItemStack(Blocks.red_flower)); shuttle.payload = payload; @@ -64,6 +69,16 @@ public class TileEntityLanternBehemoth extends TileEntity implements INBTPacketR INBTPacketReceiver.networkPack(this, data, 250); } } + + @Override + public void invalidate() { + super.invalidate(); + List players = worldObj.getEntitiesWithinAABB(EntityPlayer.class, AxisAlignedBB.getBoundingBox(xCoord - 50, yCoord - 50, zCoord - 50, xCoord + 51, yCoord + 51, zCoord + 51)); + for(EntityPlayer player : players) { + HbmPlayerProps props = HbmPlayerProps.getData(player); + if(props.reputation > -10) props.reputation--; + } + } @Override public void networkUnpack(NBTTagCompound nbt) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadar.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadar.java index 074ce8f29..e543f4fd5 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadar.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadar.java @@ -34,7 +34,7 @@ import li.cil.oc.api.network.SimpleComponent; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) public class TileEntityMachineRadar extends TileEntityTickingBase implements IEnergyUser, IGUIProvider, SimpleComponent { - public List entList = new ArrayList(); + public List detectedEntities = new ArrayList(); public List nearbyMissiles = new ArrayList(); int pingTimer = 0; int lastPower; @@ -61,8 +61,7 @@ public class TileEntityMachineRadar extends TileEntityTickingBase implements IEn @Override public void updateEntity() { - if(this.yCoord < WeaponConfig.radarAltitude) - return; + if(this.yCoord < WeaponConfig.radarAltitude) return; if(!worldObj.isRemote) { @@ -71,17 +70,13 @@ public class TileEntityMachineRadar extends TileEntityTickingBase implements IEn nearbyMissiles.clear(); if(power > 0) { - allocateMissiles(); - power -= 500; - if(power < 0) - power = 0; + if(power < 0) power = 0; } - if(this.lastPower != getRedPower()) - worldObj.notifyBlocksOfNeighborChange(xCoord, yCoord, zCoord, getBlockType()); + if(this.lastPower != getRedPower()) worldObj.notifyBlocksOfNeighborChange(xCoord, yCoord, zCoord, getBlockType()); sendMissileData(); lastPower = getRedPower(); @@ -96,12 +91,8 @@ public class TileEntityMachineRadar extends TileEntityTickingBase implements IEn } } } else { - prevRotation = rotation; - - if(power > 0) { - rotation += 5F; - } + if(power > 0) rotation += 5F; if(rotation >= 360) { rotation -= 360F; @@ -123,7 +114,7 @@ public class TileEntityMachineRadar extends TileEntityTickingBase implements IEn private void allocateMissiles() { nearbyMissiles.clear(); - entList.clear(); + detectedEntities.clear(); jammed = false; List list = worldObj.getEntitiesWithinAABBExcludingEntity(null, AxisAlignedBB.getBoundingBox(xCoord + 0.5 - WeaponConfig.radarRange, 0, zCoord + 0.5 - WeaponConfig.radarRange, xCoord + 0.5 + WeaponConfig.radarRange, 5000, zCoord + 0.5 + WeaponConfig.radarRange)); @@ -136,27 +127,27 @@ public class TileEntityMachineRadar extends TileEntityTickingBase implements IEn if(e instanceof EntityLivingBase && HbmLivingProps.getDigamma((EntityLivingBase) e) > 0.001) { this.jammed = true; nearbyMissiles.clear(); - entList.clear(); + detectedEntities.clear(); return; } if(e instanceof EntityPlayer && this.scanPlayers) { nearbyMissiles.add(new int[] { (int)e.posX, (int)e.posZ, RadarTargetType.PLAYER.ordinal(), (int)e.posY }); - entList.add(e); + detectedEntities.add(e); } if(e instanceof IRadarDetectable && this.scanMissiles) { nearbyMissiles.add(new int[] { (int)e.posX, (int)e.posZ, ((IRadarDetectable)e).getTargetType().ordinal(), (int)e.posY }); if(!this.smartMode || e.motionY <= 0) - entList.add(e); + detectedEntities.add(e); } } } public int getRedPower() { - if(!entList.isEmpty()) { + if(!detectedEntities.isEmpty()) { /// PROXIMITY /// if(redMode) { @@ -165,9 +156,9 @@ public class TileEntityMachineRadar extends TileEntityTickingBase implements IEn int power = 0; - for(int i = 0; i < entList.size(); i++) { + for(int i = 0; i < detectedEntities.size(); i++) { - Entity e = entList.get(i); + Entity e = detectedEntities.get(i); double dist = Math.sqrt(Math.pow(e.posX - xCoord, 2) + Math.pow(e.posZ - zCoord, 2)); int p = 15 - (int)Math.floor(dist / maxRange * 15); @@ -315,8 +306,8 @@ public class TileEntityMachineRadar extends TileEntityTickingBase implements IEn public Object[] getEntities(Context context, Arguments args) { //fuck fuck fuck if(!jammed) { List list = new ArrayList(); - list.add(entList.size()); // small header of how many entities in the list - for (Entity e : entList) { + list.add(detectedEntities.size()); // small header of how many entities in the list + for (Entity e : detectedEntities) { list.add(e.posX); // positions list.add(e.posY); list.add(e.posZ); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java index a818bb0ef..287c0c592 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java @@ -5,6 +5,7 @@ import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.OreDictManager.DictFrame; import com.hbm.inventory.container.ContainerMachineWoodBurner; +import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Flammable; @@ -40,6 +41,7 @@ public class TileEntityMachineWoodBurner extends TileEntityMachineBase implement public boolean isOn = false; public FluidTank tank; + public int millis = 0; public static ModuleBurnTime burnModule = new ModuleBurnTime().setLogTimeMod(4).setWoodTimeMod(2); @@ -106,19 +108,32 @@ public class TileEntityMachineWoodBurner extends TileEntityMachineBase implement FT_Flammable trait = tank.getTankType().getTrait(FT_Flammable.class); if(trait != null) { - this.power += trait.getHeatEnergy() / 2L; - tank.setFill(tank.getFill() - 1); - if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND); + + if(millis <= 900) { + this.tank.setFill(tank.getFill() - 1); + this.millis += 100; + } + + int toBurn = Math.min(millis, 5); + + if(toBurn > 0) { + this.power += trait.getHeatEnergy() * toBurn / 4_000L; + this.millis -= toBurn; + if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND); + } } } } + if(this.power > this.maxPower) this.power = this.maxPower; + NBTTagCompound data = new NBTTagCompound(); data.setLong("power", power); data.setInteger("burnTime", burnTime); data.setInteger("maxBurnTime", maxBurnTime); data.setBoolean("isOn", isOn); data.setBoolean("liquidBurn", liquidBurn); + tank.writeToNBT(data, "t"); this.networkPack(data, 25); } else { @@ -146,6 +161,30 @@ public class TileEntityMachineWoodBurner extends TileEntityMachineBase implement this.maxBurnTime = nbt.getInteger("maxBurnTime"); this.isOn = nbt.getBoolean("isOn"); this.liquidBurn = nbt.getBoolean("liquidBurn"); + tank.readFromNBT(nbt, "t"); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.power = nbt.getLong("power"); + this.burnTime = nbt.getInteger("burnTime"); + this.maxBurnTime = nbt.getInteger("maxBurnTime"); + this.isOn = nbt.getBoolean("isOn"); + this.liquidBurn = nbt.getBoolean("liquidBurn"); + tank.readFromNBT(nbt, "t"); + this.millis = nbt.getInteger("millis"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + nbt.setLong("power", power); + nbt.setInteger("burnTime", burnTime); + nbt.setInteger("maxBurnTime", maxBurnTime); + nbt.setBoolean("isOn", isOn); + nbt.setBoolean("liquidBurn", liquidBurn); + tank.writeToNBT(nbt, "t"); + nbt.setInteger("millis", millis); } protected boolean processAsh(int level, EnumAshType type, int threshold) { @@ -222,6 +261,18 @@ public class TileEntityMachineWoodBurner extends TileEntityMachineBase implement return maxPower; } + @Override + public boolean canConnect(ForgeDirection dir) { + ForgeDirection rot = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + return dir == rot.getOpposite(); + } + + @Override + public boolean canConnect(FluidType type, ForgeDirection dir) { + ForgeDirection rot = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + return dir == rot.getOpposite(); + } + @Override public FluidTank[] getAllTanks() { return new FluidTank[] {tank}; diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java index 38371ad7f..dc6a60f44 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java @@ -2,6 +2,7 @@ package com.hbm.tileentity.machine.storage; import api.hbm.energy.*; import com.hbm.blocks.machine.MachineBattery; +import com.hbm.config.GeneralConfig; import com.hbm.inventory.container.ContainerMachineBattery; import com.hbm.inventory.gui.GUIMachineBattery; import com.hbm.lib.Library; @@ -36,6 +37,8 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I public long[] log = new long[20]; public long delta = 0; public long power = 0; + public long prevPowerState = 0; + public int pingPongTicks = 0; //0: input only //1: buffer @@ -180,8 +183,23 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I this.log[i - 1] = this.log[i]; } + if(GeneralConfig.enable528) { + long threshold = this.getMaxPower() / 3; + if(Math.abs(prevPower - power) > threshold && Math.abs(prevPower - prevPowerState) > threshold) { + this.pingPongTicks++; + if(this.pingPongTicks > 10) { + worldObj.func_147480_a(xCoord, yCoord, zCoord, false); + worldObj.newExplosion(null, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, 10F, false, false); + } + } else { + if(this.pingPongTicks > 0) this.pingPongTicks--; + } + } + this.log[19] = avg; + prevPowerState = power; + NBTTagCompound nbt = new NBTTagCompound(); nbt.setLong("power", avg); nbt.setLong("delta", delta); @@ -237,7 +255,9 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I if(x instanceof PowerNet) PowerNet.trackingInstances.add((PowerNet) x); }); - this.power = PowerNet.fairTransfer(con, this.power); + long toSend = Math.min(this.power, this.getMaxTransfer()); + long powerRemaining = this.power - toSend; + this.power = PowerNet.fairTransfer(con, toSend) + powerRemaining; } //resubscribe to buffered nets, if necessary @@ -246,7 +266,7 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I } } - protected void transmitPower() { + @Deprecated protected void transmitPower() { short mode = (short) this.getRelevantMode(); @@ -298,7 +318,7 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I } public long getMaxTransfer() { - return this.getMaxPower(); + return this.getMaxPower() / 20; } @Override @@ -342,24 +362,29 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I */ @Override public long transferPower(long power) { - - int mode = this.getRelevantMode(); - if(mode == mode_output || mode == mode_none) { - return power; + long overshoot = 0; + + // if power exceeds our transfer limit, truncate + if(power > getMaxTransfer()) { + overshoot += power - getMaxTransfer(); + power = getMaxTransfer(); } - this.power += power; + // this check is in essence the same as the default implementation, but re-arranged to never overflow the int64 range + // if the remaining power exceeds the power cap, truncate again + long freespace = this.getMaxPower() - this.getPower(); + + if(freespace < power) { + overshoot += power - freespace; + power = freespace; + } + + // what remains is sure to not exceed the transfer limit and the power cap (and therefore the int64 range) + this.setPower(this.getPower() + power); this.worldObj.markTileEntityChunkModified(this.xCoord, this.yCoord, this.zCoord, this); - if(this.power > this.getMaxPower()) { - - long overshoot = this.power - this.getMaxPower(); - this.power = this.getMaxPower(); - return overshoot; - } - - return 0; + return overshoot; } @Override @@ -371,7 +396,7 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I return 0; } - return Math.max(getMaxPower() - getPower(), 0); + return Math.min(Math.max(getMaxPower() - getPower(), 0), this.getMaxTransfer()); } @Override @@ -411,6 +436,7 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I public void writeNBT(NBTTagCompound nbt) { NBTTagCompound data = new NBTTagCompound(); data.setLong("power", power); + data.setLong("prevPowerState", prevPowerState); data.setShort("redLow", redLow); data.setShort("redHigh", redHigh); data.setInteger("priority", this.priority.ordinal()); @@ -421,6 +447,7 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I public void readNBT(NBTTagCompound nbt) { NBTTagCompound data = nbt.getCompoundTag(NBT_PERSISTENT_KEY); this.power = data.getLong("power"); + this.prevPowerState = data.getLong("prevPowerState"); this.redLow = data.getShort("redLow"); this.redHigh = data.getShort("redHigh"); this.priority = ConnectionPriority.values()[data.getInteger("priority")]; diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFENSU.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFENSU.java index 188b919e6..3ece44aca 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFENSU.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFENSU.java @@ -35,7 +35,7 @@ public class TileEntityMachineFENSU extends TileEntityMachineBattery { power = Library.chargeItemsFromTE(slots, 1, power, getMaxPower()); ////////////////////////////////////////////////////////////////////// - this.transmitPower(); + this.transmitPowerFairly(); ////////////////////////////////////////////////////////////////////// byte comp = this.getComparatorPower(); @@ -142,8 +142,8 @@ public class TileEntityMachineFENSU extends TileEntityMachineBattery { } @Override - public long getTransferWeight() { - return Math.min(Math.max(this.getMaxPower() - getPower(), 0), maxTransfer); + public long getMaxTransfer() { + return maxTransfer; } public float getSpeed() { diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 2d4834860..7008cea84 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -360,6 +360,7 @@ container.machineSILEX=SILEX container.machineSolidifier=Verfestiger container.machineTurbine=Dampfturbine container.machineTurbofan=Turbofan +container.machineWoodBurner=Brennholzgenerator container.machine_schrabidium_transmutator=Schrabidium-Transmutationsgerät container.massStorage=Speicher container.microwave=Mikrowelle @@ -4167,6 +4168,8 @@ tile.machine_turbofan.name=Turbofan tile.machine_uf6_tank.name=Uranhexafluorid-Tank tile.machine_vacuum_distill.name=Vakuumraffinerie tile.machine_waste_drum.name=Abklingbecken-Trommel +tile.machine_wood_burner.name=Brennholzgenerator +tile.machine_wood_burner.desc=Erzeugt 100HE/t aus Items$Sammelt Asche$Kann 1mB/s Flüssigkeiten mit 25%% Effizienz verbrennen tile.machine_well.name=Ölbohrturm tile.machine_zirnox.name=ZIRNOX Atomreaktor tile.marker_structure.name=Multiblock-Strukturvorlage diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index eb2348566..780df69c2 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -718,6 +718,7 @@ container.machineSILEX=SILEX container.machineSolidifier=Solidifier container.machineTurbine=Steam Turbine container.machineTurbofan=Turbofan +container.machineWoodBurner=Wood-Burner container.machine_schrabidium_transmutator=Schrabidium Transmutation Device container.massStorage=Storage container.microwave=Microwave @@ -5146,6 +5147,8 @@ tile.machine_turbofan.name=Turbofan tile.machine_uf6_tank.name=Uranium Hexafluoride Tank tile.machine_vacuum_distill.name=Vacuum Refinery tile.machine_waste_drum.name=Spent Fuel Pool Drum +tile.machine_wood_burner.name=Wood-Burning Generator +tile.machine_wood_burner.desc=Generates 100HE/t when burning items$Collects ashes$Can burn fluids at 25%% efficiency at 1mB/s tile.machine_well.name=Oil Derrick tile.machine_zirnox.name=ZIRNOX Nuclear Reactor tile.marker_structure.name=Multiblock Structure Marker diff --git a/src/main/resources/assets/hbm/textures/models/machines/strand_caster.png b/src/main/resources/assets/hbm/textures/models/machines/strand_caster.png new file mode 100644 index 0000000000000000000000000000000000000000..96f371d955cc5574f5b8e5748c1a9dadcd2c0dde GIT binary patch literal 10757 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
  • Date: Sun, 5 Nov 2023 22:07:07 +0100 Subject: [PATCH 360/432] birb --- changelog | 15 ++++- gradle.properties | 2 +- .../com/hbm/blocks/machine/FWatzHatch.java | 8 ++- .../com/hbm/commands/CommandRadiation.java | 8 +++ .../java/com/hbm/entity/EntityMappings.java | 1 + .../java/com/hbm/entity/mob/EntityPigeon.java | 36 ++++++++++ .../entity/projectile/EntityBulletBaseNT.java | 21 +++++- .../vanillant/standard/BlockMutatorFire.java | 23 +++++++ .../standard/BlockProcessorNoDamage.java | 62 ++++++++++++++++++ .../standard/EntityProcessorStandard.java | 8 ++- .../standard/ExplosionEffectStandard.java | 2 +- .../com/hbm/inventory/OreDictManager.java | 1 + .../java/com/hbm/inventory/material/Mats.java | 2 +- .../inventory/recipes/ArcWelderRecipes.java | 8 +++ .../inventory/recipes/AssemblerRecipes.java | 2 +- .../inventory/recipes/anvil/AnvilRecipes.java | 7 +- .../hbm/items/armor/ArmorTrenchmaster.java | 19 ++++++ src/main/java/com/hbm/lib/RefStrings.java | 2 +- .../java/com/hbm/main/CraftingManager.java | 7 +- .../machine/TileEntityMachineWoodBurner.java | 1 + .../textures/items/coil_advanced_alloy.png | Bin 297 -> 286 bytes .../assets/hbm/textures/items/coil_copper.png | Bin 310 -> 288 bytes .../assets/hbm/textures/items/coil_gold.png | Bin 278 -> 272 bytes .../items/coil_magnetized_tungsten.png | Bin 295 -> 255 bytes .../hbm/textures/items/swordTemplate.png | Bin 270 -> 0 bytes 25 files changed, 215 insertions(+), 20 deletions(-) create mode 100644 src/main/java/com/hbm/explosion/vanillant/standard/BlockMutatorFire.java create mode 100644 src/main/java/com/hbm/explosion/vanillant/standard/BlockProcessorNoDamage.java delete mode 100644 src/main/resources/assets/hbm/textures/items/swordTemplate.png diff --git a/changelog b/changelog index f25cb1cf0..e45b07ed7 100644 --- a/changelog +++ b/changelog @@ -1,15 +1,23 @@ ## Added * Pigeons + * Spawn on plains in large flocks + * Will alternate between walking on the ground and flying around aimlessly + * When on the ground, they can eat dropped bread (the item has a 33% of being used up) + * Fat pigeons will spawn droppings when flying, these droppings will fertilize the ground below them + * When hit with damage equivalent to twice their health or higher, pigeons will explode, dropping 10 feathers + * when killed otherwise, they only drop a few feathers and sometimes raw chicken * Wood burner * Replaces the old combustion generator * A larger machine, has higher efficiency when burning logs or planks * Collects ashes at the same rate as ashpits * Also has an option to burn flammable liquids at 50% efficiency + * Will automatically shut off if the energy buffer is full * `/ntmrad` * `set` operator can change the radiation amount in the current chunk * `clear` operator will remove the radiation data from all loaded chunks * Dense wires * Can be made in a crucible + * Alloy and gold ones can also be made using the arc welder * Material cost is equivalent to 1 ingot * For ease of mass-production, 9-fold molds are also available * Used to craft hadron magnets, reducing crafting complexity be removing annoying upgrade recipes which make automation more complicated and needlessly inflate the amount of materials required for a magnet tier that isn't even the one that's being made @@ -23,11 +31,16 @@ * Doubled coal bedrock ore's coal output to 8 coal * A new config option now replaces the iron and copper bedrock ores in 528 mode with hematite and malachite * the industrial generator now has three additional ports on its underside, meaning it is now a lot easier to properly automate all necessary IO -* Neodymium is now a valid crucible material +* Neodymium and DNT are now valid crucible materials * Particle accelerators will now evenly distribute items using IO if both inputs are equal, making the antischrabidium recipe a lot easier to automate * Due to multiple complaints regarding the plastic bag's ability to contain radiation, plastic bags now *double* the radiation of the item they contain * The post impact spawning restrictions have changed, meaning that spawning things with spawn eggs is no longer broken. Due to technical limitations, this means that post impact, no mobs will spawn as part of world gen, only via random spawns. * All energy storage blocks now have a fixed transfer limit of 5% of their capacity per tick, reducing the impact of ping-ponging considerably +* Trenchmaster armor no longer takes damage from self-inflicted explosions, knockback is still applied though +* The combination oven no longer needs blaze powder to be made, instead it uses welded copper plates. Welded copper needs 1kHE/t to make, twice as much as welded steel. +* The steam engine now only needs 4 copper coils instead of 8 ## Fixed * Pipe and power networks now force the chunk to be saved on transfer, ensuring that rapid changes in the fluid/energy level aren't lost when the tile entity is unloaded +* Fixed Fwatz access hatch not visually connecting to cables +* Fixed most projectiles creating explosions with the projectile itself as the attacker instead of the player that fired that projectile diff --git a/gradle.properties b/gradle.properties index 1b073093f..243fd6690 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4760 +mod_build_number=4774 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ diff --git a/src/main/java/com/hbm/blocks/machine/FWatzHatch.java b/src/main/java/com/hbm/blocks/machine/FWatzHatch.java index 5b3df59dd..69a7e5871 100644 --- a/src/main/java/com/hbm/blocks/machine/FWatzHatch.java +++ b/src/main/java/com/hbm/blocks/machine/FWatzHatch.java @@ -8,6 +8,7 @@ import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.tileentity.machine.TileEntityFWatzCore; +import api.hbm.energy.IEnergyConnectorBlock; import api.hbm.fluid.IFluidConnectorBlock; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; @@ -26,7 +27,7 @@ import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class FWatzHatch extends Block implements IFluidConnectorBlock { +public class FWatzHatch extends Block implements IEnergyConnectorBlock, IFluidConnectorBlock { @SideOnly(Side.CLIENT) private IIcon iconFront; @@ -158,4 +159,9 @@ public class FWatzHatch extends Block implements IFluidConnectorBlock { public boolean canConnect(FluidType type, IBlockAccess world, int x, int y, int z, ForgeDirection dir) { return type == Fluids.AMAT || type == Fluids.ASCHRAB; } + + @Override + public boolean canConnect(IBlockAccess world, int x, int y, int z, ForgeDirection dir) { + return true; + } } diff --git a/src/main/java/com/hbm/commands/CommandRadiation.java b/src/main/java/com/hbm/commands/CommandRadiation.java index 436d7bcc4..90b4476d3 100644 --- a/src/main/java/com/hbm/commands/CommandRadiation.java +++ b/src/main/java/com/hbm/commands/CommandRadiation.java @@ -4,6 +4,8 @@ import com.hbm.handler.radiation.ChunkRadiationManager; import net.minecraft.command.CommandBase; import net.minecraft.command.ICommandSender; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.EnumChatFormatting; public class CommandRadiation extends CommandBase { @@ -22,12 +24,18 @@ public class CommandRadiation extends CommandBase { if(args.length == 1 && "clear".equals(args[0])) { ChunkRadiationManager.proxy.clearSystem(sender.getEntityWorld()); + sender.addChatMessage(new ChatComponentText("Cleared radiation data!")); + return; } if(args.length == 2 && "set".equals(args[0])) { float amount = (float) this.parseDoubleBounded(sender, args[1], 0D, 100_000D); ChunkRadiationManager.proxy.setRadiation(sender.getEntityWorld(), sender.getPlayerCoordinates().posX, sender.getPlayerCoordinates().posY, sender.getPlayerCoordinates().posZ, amount); + sender.addChatMessage(new ChatComponentText("Radiation set.")); + return; } + + sender.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + getCommandUsage(sender))); } } diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index 2323d4dd6..c0e61d016 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -261,6 +261,7 @@ public class EntityMappings { addSpawn(EntityCreeperVolatile.class, 10, 1, 1, EnumCreatureType.monster, BiomeGenBase.getBiomeGenArray()); addSpawn(EntityCreeperGold.class, 1, 1, 1, EnumCreatureType.monster, BiomeGenBase.getBiomeGenArray()); addSpawn(EntityPlasticBag.class, 1, 1, 3, EnumCreatureType.waterCreature, BiomeDictionary.getBiomesForType(Type.OCEAN)); + addSpawn(EntityPigeon.class, 1, 5, 10, EnumCreatureType.creature, BiomeDictionary.getBiomesForType(Type.PLAINS)); int id = 0; for(Quartet, String, Integer, Boolean> entry : entityMappings) { diff --git a/src/main/java/com/hbm/entity/mob/EntityPigeon.java b/src/main/java/com/hbm/entity/mob/EntityPigeon.java index ec93d403c..ad6d203fc 100644 --- a/src/main/java/com/hbm/entity/mob/EntityPigeon.java +++ b/src/main/java/com/hbm/entity/mob/EntityPigeon.java @@ -7,7 +7,11 @@ import com.hbm.entity.mob.ai.EntityAIStartFlying; import com.hbm.entity.mob.ai.EntityAIStopFlying; import com.hbm.entity.mob.ai.EntityAISwimmingConditional; import com.hbm.entity.mob.ai.EntityAIWanderConditional; +import com.hbm.items.tool.ItemFertilizer; +import com.hbm.packet.AuxParticlePacketNT; +import com.hbm.packet.PacketDispatcher; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.block.Block; import net.minecraft.entity.EntityCreature; import net.minecraft.entity.ai.EntityAILookIdle; @@ -15,12 +19,16 @@ import net.minecraft.entity.ai.EntityAIWatchClosest; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.passive.IAnimals; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.DamageSource; import net.minecraft.util.Vec3; import net.minecraft.world.World; +import net.minecraft.world.WorldServer; +import net.minecraftforge.common.util.FakePlayerFactory; public class EntityPigeon extends EntityCreature implements IFlyingCreature, IAnimals { @@ -149,6 +157,34 @@ public class EntityPigeon extends EntityCreature implements IFlyingCreature, IAn this.moveForward = 1.5F; if(this.getRNG().nextInt(20) == 0) this.rotationYaw += this.getRNG().nextGaussian() * 30; + + if(this.isFat() && this.getRNG().nextInt(50) == 0) { + + NBTTagCompound nbt = new NBTTagCompound(); + nbt.setString("type", "sweat"); + nbt.setInteger("count", 3); + nbt.setInteger("block", Block.getIdFromBlock(Blocks.wool)); + nbt.setInteger("entity", getEntityId()); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(nbt, 0, 0, 0), new TargetPoint(dimension, posX, posY, posZ, 50)); + + int x = (int) Math.floor(posX); + int y = (int) Math.floor(posY) - 1; + int z = (int) Math.floor(posZ); + EntityPlayer player = FakePlayerFactory.getMinecraft((WorldServer)worldObj); + + for(int i = 0; i < 25; i++) { + + if(ItemFertilizer.fertilize(worldObj, x, y - i, z, player, true)) { + worldObj.playAuxSFX(2005, x, y - i, z, 0); + break; + } + } + + if(this.getRNG().nextInt(10) == 0) { + this.setFat(false); + } + } + } else if(!this.onGround && this.motionY < 0.0D) { this.motionY *= 0.8D; } diff --git a/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java b/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java index 1a34a8823..d8ee0f4f3 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java +++ b/src/main/java/com/hbm/entity/projectile/EntityBulletBaseNT.java @@ -13,6 +13,14 @@ import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.explosion.ExplosionChaos; import com.hbm.explosion.ExplosionLarge; import com.hbm.explosion.ExplosionNukeGeneric; +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard; +import com.hbm.explosion.vanillant.standard.BlockMutatorFire; +import com.hbm.explosion.vanillant.standard.BlockProcessorNoDamage; +import com.hbm.explosion.vanillant.standard.BlockProcessorStandard; +import com.hbm.explosion.vanillant.standard.EntityProcessorStandard; +import com.hbm.explosion.vanillant.standard.ExplosionEffectStandard; +import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; import com.hbm.handler.GunConfiguration; @@ -414,8 +422,17 @@ public class EntityBulletBaseNT extends EntityThrowableInterp implements IBullet if(config.jolt > 0 && !worldObj.isRemote) ExplosionLarge.jolt(worldObj, posX, posY, posZ, config.jolt, 150, 0.25); - if(config.explosive > 0 && !worldObj.isRemote) - worldObj.newExplosion(this, posX, posY, posZ, config.explosive, config.incendiary > 0, config.blockDamage); + if(config.explosive > 0 && !worldObj.isRemote) { + //worldObj.newExplosion(this.thrower, posX, posY, posZ, config.explosive, config.incendiary > 0, config.blockDamage); + ExplosionVNT vnt = new ExplosionVNT(worldObj, posX, posY, posZ, config.explosive, this.thrower); + vnt.setBlockAllocator(new BlockAllocatorStandard()); + if(config.blockDamage) vnt.setBlockProcessor(new BlockProcessorStandard().withBlockEffect(config.incendiary > 0 ? new BlockMutatorFire() : null)); + else vnt.setBlockProcessor(new BlockProcessorNoDamage().withBlockEffect(config.incendiary > 0 ? new BlockMutatorFire() : null)); + vnt.setEntityProcessor(new EntityProcessorStandard().allowSelfDamage()); + vnt.setPlayerProcessor(new PlayerProcessorStandard()); + vnt.setSFX(new ExplosionEffectStandard()); + vnt.explode(); + } if(config.shrapnel > 0 && !worldObj.isRemote) ExplosionLarge.spawnShrapnels(worldObj, posX, posY, posZ, config.shrapnel); diff --git a/src/main/java/com/hbm/explosion/vanillant/standard/BlockMutatorFire.java b/src/main/java/com/hbm/explosion/vanillant/standard/BlockMutatorFire.java new file mode 100644 index 000000000..8cc03caa9 --- /dev/null +++ b/src/main/java/com/hbm/explosion/vanillant/standard/BlockMutatorFire.java @@ -0,0 +1,23 @@ +package com.hbm.explosion.vanillant.standard; + +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.explosion.vanillant.interfaces.IBlockMutator; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.init.Blocks; + +public class BlockMutatorFire implements IBlockMutator { + + @Override public void mutatePre(ExplosionVNT explosion, Block block, int meta, int x, int y, int z) { } + + @Override + public void mutatePost(ExplosionVNT explosion, int x, int y, int z) { + + Block block = explosion.world.getBlock(x, y, z); + Block block1 = explosion.world.getBlock(x, y - 1, z); + if(block.getMaterial() == Material.air && block1.func_149730_j() && explosion.world.rand.nextInt(3) == 0) { + explosion.world.setBlock(x, y, z, Blocks.fire); + } + } +} diff --git a/src/main/java/com/hbm/explosion/vanillant/standard/BlockProcessorNoDamage.java b/src/main/java/com/hbm/explosion/vanillant/standard/BlockProcessorNoDamage.java new file mode 100644 index 000000000..40332a9d8 --- /dev/null +++ b/src/main/java/com/hbm/explosion/vanillant/standard/BlockProcessorNoDamage.java @@ -0,0 +1,62 @@ +package com.hbm.explosion.vanillant.standard; + +import java.util.HashSet; +import java.util.Iterator; + +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.explosion.vanillant.interfaces.IBlockMutator; +import com.hbm.explosion.vanillant.interfaces.IBlockProcessor; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.world.ChunkPosition; +import net.minecraft.world.World; + +public class BlockProcessorNoDamage implements IBlockProcessor { + + protected IBlockMutator convert; + + public BlockProcessorNoDamage() { } + + public BlockProcessorNoDamage withBlockEffect(IBlockMutator convert) { + this.convert = convert; + return this; + } + + @Override + public void process(ExplosionVNT explosion, World world, double x, double y, double z, HashSet affectedBlocks) { + + Iterator iterator = affectedBlocks.iterator(); + + while(iterator.hasNext()) { + ChunkPosition chunkposition = (ChunkPosition) iterator.next(); + int blockX = chunkposition.chunkPosX; + int blockY = chunkposition.chunkPosY; + int blockZ = chunkposition.chunkPosZ; + Block block = world.getBlock(blockX, blockY, blockZ); + + if(block.getMaterial() != Material.air) { + if(this.convert != null) this.convert.mutatePre(explosion, block, world.getBlockMetadata(blockX, blockY, blockZ), blockX, blockY, blockZ); + } + } + + + if(this.convert != null) { + iterator = affectedBlocks.iterator(); + + while(iterator.hasNext()) { + ChunkPosition chunkposition = (ChunkPosition) iterator.next(); + int blockX = chunkposition.chunkPosX; + int blockY = chunkposition.chunkPosY; + int blockZ = chunkposition.chunkPosZ; + Block block = world.getBlock(blockX, blockY, blockZ); + + if(block.getMaterial() == Material.air) { + this.convert.mutatePost(explosion, blockX, blockY, blockZ); + } + } + } + + affectedBlocks.clear(); //tricks the standard SFX to not do the block damage particles + } +} diff --git a/src/main/java/com/hbm/explosion/vanillant/standard/EntityProcessorStandard.java b/src/main/java/com/hbm/explosion/vanillant/standard/EntityProcessorStandard.java index 626887245..ba9a66cad 100644 --- a/src/main/java/com/hbm/explosion/vanillant/standard/EntityProcessorStandard.java +++ b/src/main/java/com/hbm/explosion/vanillant/standard/EntityProcessorStandard.java @@ -21,6 +21,7 @@ public class EntityProcessorStandard implements IEntityProcessor { protected IEntityRangeMutator range; protected ICustomDamageHandler damage; + protected boolean allowSelfDamage = false; @Override public HashMap process(ExplosionVNT explosion, World world, double x, double y, double z, float size) { @@ -40,7 +41,7 @@ public class EntityProcessorStandard implements IEntityProcessor { double minZ = z - (double) size - 1.0D; double maxZ = z + (double) size + 1.0D; - List list = world.getEntitiesWithinAABBExcludingEntity(explosion.exploder, AxisAlignedBB.getBoundingBox(minX, minY, minZ, maxX, maxY, maxZ)); + List list = world.getEntitiesWithinAABBExcludingEntity(allowSelfDamage ? null : explosion.exploder, AxisAlignedBB.getBoundingBox(minX, minY, minZ, maxX, maxY, maxZ)); ForgeEventFactory.onExplosionDetonate(world, explosion.compat, list, size); Vec3 vec3 = Vec3.createVectorHelper(x, y, z); @@ -101,4 +102,9 @@ public class EntityProcessorStandard implements IEntityProcessor { this.damage = damage; return this; } + + public EntityProcessorStandard allowSelfDamage() { + this.allowSelfDamage = true; + return this; + } } diff --git a/src/main/java/com/hbm/explosion/vanillant/standard/ExplosionEffectStandard.java b/src/main/java/com/hbm/explosion/vanillant/standard/ExplosionEffectStandard.java index 1ffb85b24..79b5b6966 100644 --- a/src/main/java/com/hbm/explosion/vanillant/standard/ExplosionEffectStandard.java +++ b/src/main/java/com/hbm/explosion/vanillant/standard/ExplosionEffectStandard.java @@ -30,7 +30,7 @@ public class ExplosionEffectStandard implements IExplosionSFX { if(size >= 2.0F) { world.spawnParticle("hugeexplosion", x, y, z, 1.0D, 0.0D, 0.0D); } else { - world.spawnParticle("largeexplode", x, z, z, 1.0D, 0.0D, 0.0D); + world.spawnParticle("largeexplode", x, y, z, 1.0D, 0.0D, 0.0D); } int count = affectedBlocks.size(); diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index 4bf6ef68c..4ac445aa0 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -580,6 +580,7 @@ public class OreDictManager { OreDictionary.registerOre("dyeGray", fromOne(powder_ash, EnumAshType.MISC)); OreDictionary.registerOre("dyeBrown", fromOne(powder_ash, EnumAshType.FLY)); OreDictionary.registerOre("dyeBlack", fromOne(powder_ash, EnumAshType.SOOT)); + OreDictionary.registerOre("dyeMagenta", fromOne(powder_ash, EnumAshType.FULLERENE)); OreDictionary.registerOre("dye", new ItemStack(powder_ash, 1, OreDictionary.WILDCARD_VALUE)); OreDictionary.registerOre("blockGlass", glass_boron); diff --git a/src/main/java/com/hbm/inventory/material/Mats.java b/src/main/java/com/hbm/inventory/material/Mats.java index d3613fac6..9526c475f 100644 --- a/src/main/java/com/hbm/inventory/material/Mats.java +++ b/src/main/java/com/hbm/inventory/material/Mats.java @@ -95,7 +95,7 @@ public class Mats { //Base metals public static final NTMMaterial MAT_TITANIUM = makeSmeltable(2200, TI, 0xF7F3F2, 0x4F4C4B, 0xA99E79).setShapes(INGOT, DUST, PLATE, CASTPLATE, WELDEDPLATE, BLOCK, HEAVY_COMPONENT); - public static final NTMMaterial MAT_COPPER = makeSmeltable(2900, CU, 0xFDCA88, 0x601E0D, 0xC18336).setShapes(WIRE, INGOT, DUST, PLATE, CASTPLATE, BLOCK, HEAVY_COMPONENT); + public static final NTMMaterial MAT_COPPER = makeSmeltable(2900, CU, 0xFDCA88, 0x601E0D, 0xC18336).setShapes(WIRE, INGOT, DUST, PLATE, CASTPLATE, WELDEDPLATE, BLOCK, HEAVY_COMPONENT); public static final NTMMaterial MAT_TUNGSTEN = makeSmeltable(7400, W, 0x868686, 0x000000, 0x977474).setShapes(WIRE, INGOT, DUST, DENSEWIRE, CASTPLATE, WELDEDPLATE, BLOCK, HEAVY_COMPONENT); public static final NTMMaterial MAT_ALUMINIUM = makeSmeltable(1300, AL, 0xFFFFFF, 0x344550, 0xD0B8EB).setShapes(WIRE, INGOT, DUST, PLATE, CASTPLATE, BLOCK, HEAVY_COMPONENT); public static final NTMMaterial MAT_LEAD = makeSmeltable(8200, PB, 0xA6A6B2, 0x03030F, 0x646470).setShapes(NUGGET, INGOT, DUST, PLATE, CASTPLATE, BLOCK, HEAVY_COMPONENT); diff --git a/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java b/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java index 5aea7661e..d8214f5e3 100644 --- a/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java @@ -35,6 +35,11 @@ public class ArcWelderRecipes extends SerializableRecipe { recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.motor, 2), 100, 400L, new OreDictStack(STEEL.plate(), 1), new ComparableStack(ModItems.coil_copper), new ComparableStack(ModItems.coil_copper_torus))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.wire_dense, 1, Mats.MAT_ALLOY.id), 100, 10_000L, + new ComparableStack(ModItems.wire_advanced_alloy, 8))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.wire_dense, 1, Mats.MAT_GOLD.id), 100, 10_000L, + new ComparableStack(ModItems.wire_gold, 8))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.circuit_copper), 100, 1_000L, new FluidStack(Fluids.GAS, 250), new ComparableStack(ModItems.circuit_aluminium, 1), new OreDictStack(NETHERQUARTZ.dust()), new ComparableStack(ModItems.wire_copper, 8))); recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.circuit_red_copper), 100, 2_500L, new FluidStack(Fluids.PETROLEUM, 250), @@ -50,6 +55,9 @@ public class ArcWelderRecipes extends SerializableRecipe { //high-demand mid-game parts recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.plate_welded, 1, Mats.MAT_STEEL.id), 100, 500L, new OreDictStack(STEEL.plateCast(), 2))); + //literally just the combination oven + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.plate_welded, 1, Mats.MAT_COPPER.id), 200, 1_000L, + new OreDictStack(CU.plateCast(), 2))); //mid-game, single combustion engine running on LPG recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.plate_welded, 1, Mats.MAT_TITANIUM.id), 600, 50_000L, new OreDictStack(TI.plateCast(), 2))); diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 18fc47acd..b76505159 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -227,7 +227,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.pellet_cluster, 1), new AStack[] {new OreDictStack(STEEL.plate(), 4), new ComparableStack(Blocks.tnt, 1), }, 50); makeRecipe(new ComparableStack(ModItems.pellet_buckshot, 1), new AStack[] {new OreDictStack(PB.nugget(), 6), }, 50); makeRecipe(new ComparableStack(ModItems.australium_iii, 1), new AStack[] {new ComparableStack(ModItems.nugget_australium, 6), new OreDictStack(STEEL.ingot(), 1), new OreDictStack(STEEL.plate(), 6), new OreDictStack(CU.plate(), 2), new ComparableStack(ModItems.wire_copper, 6), },150); - makeRecipe(new ComparableStack(ModItems.magnetron, 1), new AStack[] {new OreDictStack(ALLOY.ingot(), 1), new OreDictStack(ALLOY.plate(), 2), new ComparableStack(ModItems.wire_tungsten, 1), new ComparableStack(ModItems.coil_tungsten, 1), },100); + makeRecipe(new ComparableStack(ModItems.magnetron, 1), new AStack[] {new OreDictStack(ALLOY.plate(), 3), new ComparableStack(ModItems.wire_tungsten, 1), new ComparableStack(ModItems.coil_tungsten, 1), },100); makeRecipe(new ComparableStack(ModItems.pellet_schrabidium, 1), new AStack[] {new OreDictStack(SA326.ingot(), 5), new OreDictStack(IRON.plate(), 2), }, 200); makeRecipe(new ComparableStack(ModItems.pellet_hes, 1), new AStack[] {new ComparableStack(ModItems.ingot_hes, 5), new OreDictStack(IRON.plate(), 2), }, 200); makeRecipe(new ComparableStack(ModItems.pellet_mes, 1), new AStack[] {new ComparableStack(ModItems.ingot_schrabidium_fuel, 5), new OreDictStack(IRON.plate(), 2), }, 200); diff --git a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java index 778b17be4..18e76b6a0 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -311,9 +311,8 @@ public class AnvilRecipes { new AStack[] { new ComparableStack(Blocks.stonebrick, 8), new OreDictStack(KEY_LOG, 16), - new OreDictStack(CU.ingot(), 8), - new OreDictStack(KEY_BRICK, 16), - new ComparableStack(Items.blaze_powder, 4) + new OreDictStack(CU.plateWelded(), 2), + new OreDictStack(KEY_BRICK, 16) }, new AnvilOutput(new ItemStack(ModBlocks.furnace_combination))).setTier(2)); constructionRecipes.add(new AnvilConstructionRecipe( @@ -339,7 +338,7 @@ public class AnvilRecipes { new ComparableStack(ModBlocks.reinforced_stone, 16), new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModItems.hull_small_steel, 2), - new ComparableStack(ModItems.coil_copper, 8), + new ComparableStack(ModItems.coil_copper, 4), new ComparableStack(ModItems.gear_large, 1) }, new AnvilOutput(new ItemStack(ModBlocks.machine_steam_engine))).setTier(2)); diff --git a/src/main/java/com/hbm/items/armor/ArmorTrenchmaster.java b/src/main/java/com/hbm/items/armor/ArmorTrenchmaster.java index ec497410c..582b44179 100644 --- a/src/main/java/com/hbm/items/armor/ArmorTrenchmaster.java +++ b/src/main/java/com/hbm/items/armor/ArmorTrenchmaster.java @@ -14,6 +14,7 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; import net.minecraftforge.event.entity.living.LivingAttackEvent; +import net.minecraftforge.event.entity.living.LivingHurtEvent; public class ArmorTrenchmaster extends ArmorFSB { @@ -45,6 +46,24 @@ public class ArmorTrenchmaster extends ArmorFSB { list.add(EnumChatFormatting.RED + " " + I18nUtil.resolveKey("armor.fasterReload")); list.add(EnumChatFormatting.RED + " " + I18nUtil.resolveKey("armor.moreAmmo")); } + + @Override + public void handleHurt(LivingHurtEvent event) { + + EntityLivingBase e = event.entityLiving; + + if(e instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer) e; + + if(ArmorFSB.hasFSBArmor(player)) { + + if(event.source.isExplosion() && event.source.getSourceOfDamage() == player) { + event.ammount = 0; + return; + } + } + } + } @Override public void handleAttack(LivingAttackEvent event) { diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 417c9681b..7b15658d8 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4760)"; + public static final String VERSION = "1.0.27 BETA (4774)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index e7ee854ca..d54d2267f 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -293,7 +293,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.capacitor_tantalium, 1), new Object[] { "PPP", "ICI", "WWW", 'P', STEEL.plate(), 'I', ANY_RESISTANTALLOY.ingot(), 'C', TA.block(), 'W', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.capacitor_schrabidate, 1), new Object[] { "PPP", "ICI", "WWW", 'P', STEEL.plate(), 'I', ANY_RESISTANTALLOY.ingot(), 'C', SBD.block(), 'W', STEEL.ingot() }); //addRecipeAuto(new ItemStack(ModBlocks.machine_coal_off, 1), new Object[] { "STS", "SCS", "SFS", 'S', STEEL.ingot(), 'T', ModItems.tank_steel, 'C', MINGRADE.ingot(), 'F', Blocks.furnace }); - addRecipeAuto(new ItemStack(ModBlocks.machine_wood_burner, 1), new Object[] { "PPP", "CSC", "IFI" , 'P', STEEL.plate528(), 'C', ModItems.coil_copper, 'S', ModItems.hull_small_steel, 'I', IRON.ingot(), 'F', Blocks.furnace}); + addRecipeAuto(new ItemStack(ModBlocks.machine_wood_burner, 1), new Object[] { "PPP", "CFC", "I I" , 'P', STEEL.plate528(), 'C', ModItems.coil_copper, 'I', IRON.ingot(), 'F', Blocks.furnace}); addRecipeAuto(new ItemStack(ModBlocks.machine_boiler_off, 1), new Object[] { "SPS", "TFT", "SPS", 'S', STEEL.ingot(), 'P', ModItems.board_copper, 'T', ModItems.tank_steel, 'F', Blocks.furnace }); addRecipeAuto(new ItemStack(ModBlocks.machine_boiler_electric_off, 1), new Object[] { "SPS", "TFT", "SPS", 'S', DESH.ingot(), 'P', ModItems.board_copper, 'T', ModItems.tank_steel, 'F', ModBlocks.machine_electric_furnace_off }); addRecipeAuto(new ItemStack(ModBlocks.machine_turbine, 1), new Object[] { "SMS", "PTP", "SMS", 'S', STEEL.ingot(), 'T', ModItems.turbine_titanium, 'M', ModItems.coil_copper, 'P', ANY_PLASTIC.ingot() }); @@ -825,11 +825,6 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.mech_key, 1), new Object[] { "MCM", "MKM", "MMM", 'M', ModItems.ingot_meteorite_forged, 'C', ModItems.coin_maskman, 'K', ModItems.key }); addRecipeAuto(new ItemStack(ModItems.spawn_ufo, 1), new Object[] { "MMM", "DCD", "MMM", 'M', ModItems.ingot_meteorite, 'D', DNT.ingot(), 'C', ModItems.coin_worm }); - - addRecipeAuto(new ItemStack(ModItems.wire_dense, 1, Mats.MAT_ALLOY.id), new Object[] { "WWW", "W W", "WWW", 'W', ModItems.wire_advanced_alloy }); - addRecipeAuto(new ItemStack(ModItems.wire_dense, 1, Mats.MAT_GOLD.id), new Object[] { "WWW", "W W", "WWW", 'W', ModItems.wire_gold }); - addRecipeAuto(new ItemStack(ModItems.wire_dense, 1, Mats.MAT_TUNGSTEN.id), new Object[] { "WWW", "W W", "WWW", 'W', ModItems.wire_tungsten }); - addRecipeAuto(new ItemStack(ModItems.wire_dense, 1, Mats.MAT_MAGTUNG.id), new Object[] { "WWW", "W W", "WWW", 'W', ModItems.wire_magnetized_tungsten }); addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_alloy, 1), new Object[] { "WWW", "WCW", "WWW", 'W', ModItems.wire_advanced_alloy, 'C', ModBlocks.fusion_conductor }); addRecipeAuto(new ItemStack(ModBlocks.hadron_coil_alloy, 1), new Object[] { "WW", "WW", 'W', ALLOY.wireDense() }); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java index 287c0c592..202dbe5ba 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java @@ -178,6 +178,7 @@ public class TileEntityMachineWoodBurner extends TileEntityMachineBase implement @Override public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); nbt.setLong("power", power); nbt.setInteger("burnTime", burnTime); nbt.setInteger("maxBurnTime", maxBurnTime); diff --git a/src/main/resources/assets/hbm/textures/items/coil_advanced_alloy.png b/src/main/resources/assets/hbm/textures/items/coil_advanced_alloy.png index 291ff9f9f1fc810cec1167d3ca896dc5d24057d2..aa44989b0fa350eae5228fbfda702f52702277fc 100644 GIT binary patch delta 257 zcmV+c0sj7}0-gepC4X~5NmK|32nc)#WQYI&0M$uEK~y-6t&_10!Y~j;Ur;7UPfwX` z(z&Me0#po;l!!8ABq*~$7P!*X^sI0c$c__8fWS$XY~TIw=d%p|3g?_I(WPE2A~@&t zu-SxU1<5;uP+*MFtgb1W0xp-nU?;OCA!$Lq_A{b*9{T+bc#N)UF?#_wSIN?6+00000NkvXX Hu0mjf<(6=u delta 269 zcmV+o0rLKy0;vL!C4Xl@O+f$vv5yPX88`!*$xkayu4M|Amw@qw70Gr=5DK8K}=3bNHpdf(FttK`UAb`xZ zCfRfW0c_?b(50mc0?2H4r{*VYP?+M5AB%SrHaP80-yqrB!2{RLP=Bz2nYy#2xN!=007rXL_t(IjjfZt4Z<)GMxRl3@CFEG zprE8B3wRD1dgg#0cafk7qDX%oUV$aExO#Tp)5J=E9(0GsC~~#*4j115eA^3W>YHIo>lSFN-L z)(}t6;WI#V64!MNe&G<27Ni%@b&?;p6h(oE;G7%ucL079cjE?4lA5b0$_G3E0000< KMNUMnLSTZh&~l^z delta 283 zcmV+$0p$Lm0=5E>B!2;OQb$4nuFf3k00004XF*Lt006O%3;baP00009a7bBm000id z000id0mpBsWB>pF7<5HgbW?9;ba!ELWdLwtX>N2bZe?^JG%heMHD!e|WdHyGr%6OX zR5(wilED=MArM39!VYZ0#=O`FO~~1UMbOZ=gPRcC1=hER4}SwBc{vcw>=Ybw&datH z%qUBY(Naq0ABHn|8n%~#jV%CI15sLX}6AlPa^N}X)1p>r8 zYtkGX1gLq`ghK-Y#N2CAO+O$&&DsRIvUEX!n0dEqzQO^GY1#2(@lN58HNeqt?{E8t h2_AxZ^Y|YYJ`^D^!__A8NYMZQ002ovPDHLkV1iI8b3*_C diff --git a/src/main/resources/assets/hbm/textures/items/coil_gold.png b/src/main/resources/assets/hbm/textures/items/coil_gold.png index 6d22668a37fb6c6b7a103d23b5ce5cb567a3dd66..849d394ac5392c565ce2e2347541dec3506520de 100644 GIT binary patch delta 228 zcmVg4o9(I93}r!I&7ufoXQ;a6p?)iJuziA4l!tu8Lh`f?T%3?><4w9L?l z7Fuas_h5i8*3(MMjJkVQaCIkPdcJZyv;Ww4K`#( z;YUwOiKNhU*7({JLon5o|0ywZ?ht`(m~E&VMxD7q0s#B!40ylWa#|+i2>MFugC@^& kvMihYcYx;EPX_nn3DJbnrZ-q+S^xk507*qoM6N<$f>a@C?EnA( diff --git a/src/main/resources/assets/hbm/textures/items/coil_magnetized_tungsten.png b/src/main/resources/assets/hbm/textures/items/coil_magnetized_tungsten.png index 149d1c432ebf127688b21fe4ca262e8b8e9f1e34..2118d79ff57561120e01e97a76ade83c882849c2 100644 GIT binary patch delta 226 zcmV<803H9Q0{;P!C4X~5NmK|32nc)#WQYI&0Jcd)K~y-6y;HFb!yphmBG15B9^toe zZ83yfiXS0Uq;!dEI+pk}fWW~HLQzgag4f@1j}G8haL&mH?~%y+z9*4#eT7OJA`)iC zVl58ubHj68Rg>9(EY`|wjA*U9olNE7@E)&iLkQvQM6R4n=UYNaPGU&}#mFrImF$i< zDIv2lg3dSj7~!8z0K_0&Am30ran4mucLG(2LI@xt#Kh*F)*G~(2mmm1F2>|`r?dhQ c4Sl>O-W!sYa(r;eRsaA107*qoM6N<$f^86Br~m)} delta 267 zcmV+m0rdX=0jC0xC4Xl@O+f$vv5yPu(dVDpMYUYkouA1+#LL4>EDT Ry#N3J07*qoL0#LT=By}Z;C1rt33 zJ=4@yqg0@pdQTU}5DWjgJ)A-Z6gZfF|Mw4Wc0a7Rtu)Qj>5;0^{7n9(lO?qT4*mYh z*q(0Q)}^zC_vsP6HIHS=LK0)IUpQ8WeOyoZ&97bQHqG20?Y8om8oleVec_YYH0|XXqq#knMR#k<7FIh4+^_>Wg~8L+ K&t;ucLK6V5OkhF) From 5d8704e150299bbda223546543817a72c039f82e Mon Sep 17 00:00:00 2001 From: Boblet Date: Mon, 6 Nov 2023 16:43:44 +0100 Subject: [PATCH 361/432] ow --- changelog | 48 ++---------------- src/main/java/api/hbm/energy/IEnergyUser.java | 10 ++-- .../java/com/hbm/inventory/gui/GUIHadron.java | 10 ++-- .../tileentity/machine/TileEntityHadron.java | 31 +++++++---- .../machine/TileEntityMachineWoodBurner.java | 16 ++---- src/main/resources/assets/hbm/lang/de_DE.lang | 3 +- src/main/resources/assets/hbm/lang/en_US.lang | 3 +- .../hbm/textures/gui/machine/gui_hadron.png | Bin 7673 -> 7726 bytes .../hbm/textures/models/machines/fel.png | Bin 3729 -> 4568 bytes 9 files changed, 46 insertions(+), 75 deletions(-) diff --git a/changelog b/changelog index e45b07ed7..818c3edaa 100644 --- a/changelog +++ b/changelog @@ -1,46 +1,8 @@ -## Added -* Pigeons - * Spawn on plains in large flocks - * Will alternate between walking on the ground and flying around aimlessly - * When on the ground, they can eat dropped bread (the item has a 33% of being used up) - * Fat pigeons will spawn droppings when flying, these droppings will fertilize the ground below them - * When hit with damage equivalent to twice their health or higher, pigeons will explode, dropping 10 feathers - * when killed otherwise, they only drop a few feathers and sometimes raw chicken -* Wood burner - * Replaces the old combustion generator - * A larger machine, has higher efficiency when burning logs or planks - * Collects ashes at the same rate as ashpits - * Also has an option to burn flammable liquids at 50% efficiency - * Will automatically shut off if the energy buffer is full -* `/ntmrad` - * `set` operator can change the radiation amount in the current chunk - * `clear` operator will remove the radiation data from all loaded chunks -* Dense wires - * Can be made in a crucible - * Alloy and gold ones can also be made using the arc welder - * Material cost is equivalent to 1 ingot - * For ease of mass-production, 9-fold molds are also available - * Used to craft hadron magnets, reducing crafting complexity be removing annoying upgrade recipes which make automation more complicated and needlessly inflate the amount of materials required for a magnet tier that isn't even the one that's being made - ## Changed -* Changed many tool recipes that exclusively used polymer to now also accept bakelite -* Reduced the value of hematite and malachite blocks in the crucible down to one ingot - * Hematite veins are still giant, so a single vein will still yield many stacks of iron - * Malachite's rebalance was done to be consistent with the bedrock ores which now exist. Malachite veins are now larger to compensate. -* 1000mB of red mud now makes one ingot of iron in the coker -* Doubled coal bedrock ore's coal output to 8 coal -* A new config option now replaces the iron and copper bedrock ores in 528 mode with hematite and malachite -* the industrial generator now has three additional ports on its underside, meaning it is now a lot easier to properly automate all necessary IO -* Neodymium and DNT are now valid crucible materials -* Particle accelerators will now evenly distribute items using IO if both inputs are equal, making the antischrabidium recipe a lot easier to automate -* Due to multiple complaints regarding the plastic bag's ability to contain radiation, plastic bags now *double* the radiation of the item they contain -* The post impact spawning restrictions have changed, meaning that spawning things with spawn eggs is no longer broken. Due to technical limitations, this means that post impact, no mobs will spawn as part of world gen, only via random spawns. -* All energy storage blocks now have a fixed transfer limit of 5% of their capacity per tick, reducing the impact of ping-ponging considerably -* Trenchmaster armor no longer takes damage from self-inflicted explosions, knockback is still applied though -* The combination oven no longer needs blaze powder to be made, instead it uses welded copper plates. Welded copper needs 1kHE/t to make, twice as much as welded steel. -* The steam engine now only needs 4 copper coils instead of 8 +* The wood-burning generator now burns 40mB/s instead of 1mB/s +* Buffed the wood-burning generator's efficiency for fluids from 25% to 50% +* The particle accelerator now has a new IO mode called single mode, which only allows one item per slot ## Fixed -* Pipe and power networks now force the chunk to be saved on transfer, ensuring that rapid changes in the fluid/energy level aren't lost when the tile entity is unloaded -* Fixed Fwatz access hatch not visually connecting to cables -* Fixed most projectiles creating explosions with the projectile itself as the attacker instead of the player that fired that projectile +* Fixed wood-burning generator being 100x more efficient than it's supposed to be +* Fixed arc welders eating infinite energy \ No newline at end of file diff --git a/src/main/java/api/hbm/energy/IEnergyUser.java b/src/main/java/api/hbm/energy/IEnergyUser.java index a4a0a4ed5..4ca8e369a 100644 --- a/src/main/java/api/hbm/energy/IEnergyUser.java +++ b/src/main/java/api/hbm/energy/IEnergyUser.java @@ -28,15 +28,17 @@ public interface IEnergyUser extends IEnergyConnector { @Override public default long transferPower(long power) { - this.setPower(this.getPower() + power); - - if(this.getPower() > this.getMaxPower()) { + if(this.getPower() + power > this.getMaxPower()) { - long overshoot = this.getPower() - this.getMaxPower(); + long overshoot = this.getPower() + power - this.getMaxPower(); this.setPower(this.getMaxPower()); return overshoot; } + if(this.getPower() + power < 0) return 0; //safeguard for negative energy or overflows + + this.setPower(this.getPower() + power); + return 0; } diff --git a/src/main/java/com/hbm/inventory/gui/GUIHadron.java b/src/main/java/com/hbm/inventory/gui/GUIHadron.java index 959d93d7c..b39db1804 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIHadron.java +++ b/src/main/java/com/hbm/inventory/gui/GUIHadron.java @@ -40,8 +40,10 @@ public class GUIHadron extends GuiInfoContainer { this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 62, guiTop + 108, 70, 16, hadron.power, hadron.maxPower); - if(hadron.hopperMode) + if(hadron.ioMode == 1) this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 142, guiTop + 89, 18, 18, mouseX, mouseY, I18nUtil.resolveKeyArray("hadron.hopper1")); + else if(hadron.ioMode == 2) + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 142, guiTop + 89, 18, 18, mouseX, mouseY, I18nUtil.resolveKeyArray("hadron.hopper2")); else this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 142, guiTop + 89, 18, 18, mouseX, mouseY, I18nUtil.resolveKeyArray("hadron.hopper0")); @@ -105,9 +107,9 @@ public class GUIHadron extends GuiInfoContainer { if(hadron.analysisOnly) drawTexturedModalRect(guiLeft + 142, guiTop + 107, 206, 18, 18, 18); - - if(hadron.hopperMode) - drawTexturedModalRect(guiLeft + 142, guiTop + 89, 206, 36, 18, 18); + + if(hadron.ioMode == hadron.MODE_HOPPER) drawTexturedModalRect(guiLeft + 142, guiTop + 89, 206, 36, 18, 18); + if(hadron.ioMode == hadron.MODE_SINGLE) drawTexturedModalRect(guiLeft + 142, guiTop + 89, 224, 36, 18, 18); if(hadron.state == EnumHadronState.SUCCESS) { drawTexturedModalRect(guiLeft + 73, guiTop + 29, 176, 0, 30, 30); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java index 4eab1dba4..fed73cb60 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java @@ -43,7 +43,10 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs public boolean isOn = false; public boolean analysisOnly = false; - public boolean hopperMode = false; + public int ioMode = 0; + public static final int MODE_DEFAULT = 0; + public static final int MODE_HOPPER = 1; + public static final int MODE_SINGLE = 2; private int delay; public EnumHadronState state = EnumHadronState.IDLE; @@ -71,8 +74,8 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs @Override public int[] getAccessibleSlotsFromSide(int side) { - return access; - } + return access; + } @Override public boolean canExtractItem(int i, ItemStack itemStack, int j) { @@ -83,6 +86,10 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs public boolean isItemValidForSlot(int i, ItemStack itemStack) { if(i != 0 && i != 1) return false; + if(this.ioMode == MODE_SINGLE) { + return slots[i] == null; + } + //makes sure that equal items like the antimatter capsules are spread out evenly if(slots[0] != null && slots[1] != null && slots[0].getItem() == slots[1].getItem() && slots[0].getItemDamage() == slots[1].getItemDamage()) { if(i == 0) return slots[1].stackSize - slots[0].stackSize >= 0; @@ -102,7 +109,7 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs if(delay <= 0 && this.isOn && particles.size() < maxParticles && slots[0] != null && slots[1] != null && power >= maxPower * 0.75) { - if(!hopperMode || (slots[0].stackSize > 1 && slots[1].stackSize > 1)) { + if(ioMode != MODE_HOPPER || (slots[0].stackSize > 1 && slots[1].stackSize > 1)) { ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); particles.add(new Particle(slots[0], slots[1], dir, xCoord, yCoord, zCoord)); this.decrStackSize(0, 1); @@ -131,7 +138,7 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs data.setBoolean("isOn", isOn); data.setLong("power", power); data.setBoolean("analysis", analysisOnly); - data.setBoolean("hopperMode", hopperMode); + data.setInteger("ioMode", ioMode); data.setByte("state", (byte) state.ordinal()); data.setBoolean("stat_success", stat_success); @@ -189,7 +196,7 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs this.isOn = data.getBoolean("isOn"); this.power = data.getLong("power"); this.analysisOnly = data.getBoolean("analysis"); - this.hopperMode = data.getBoolean("hopperMode"); + this.ioMode = data.getInteger("ioMode"); this.state = EnumHadronState.values()[data.getByte("state")]; this.stat_success = data.getBoolean("stat_success"); @@ -207,8 +214,12 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs this.isOn = !this.isOn; if(meta == 1) this.analysisOnly = !this.analysisOnly; - if(meta == 2) - this.hopperMode = !this.hopperMode; + if(meta == 2) { + this.ioMode++; + if(ioMode > 2) ioMode = 0; + } + + this.markChanged(); } private void drawPower() { @@ -262,7 +273,7 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs this.isOn = nbt.getBoolean("isOn"); this.power = nbt.getLong("power"); this.analysisOnly = nbt.getBoolean("analysis"); - this.hopperMode = nbt.getBoolean("hopperMode"); + this.ioMode = nbt.getInteger("ioMode"); } @Override @@ -272,7 +283,7 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs nbt.setBoolean("isOn", isOn); nbt.setLong("power", power); nbt.setBoolean("analysis", analysisOnly); - nbt.setBoolean("hopperMode", hopperMode); + nbt.setInteger("ioMode", ioMode); } public int getPowerScaled(int i) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java index 202dbe5ba..42510532f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java @@ -41,7 +41,6 @@ public class TileEntityMachineWoodBurner extends TileEntityMachineBase implement public boolean isOn = false; public FluidTank tank; - public int millis = 0; public static ModuleBurnTime burnModule = new ModuleBurnTime().setLogTimeMod(4).setWoodTimeMod(2); @@ -109,17 +108,12 @@ public class TileEntityMachineWoodBurner extends TileEntityMachineBase implement if(trait != null) { - if(millis <= 900) { - this.tank.setFill(tank.getFill() - 1); - this.millis += 100; - } - - int toBurn = Math.min(millis, 5); + int toBurn = Math.min(tank.getFill(), 2); if(toBurn > 0) { - this.power += trait.getHeatEnergy() * toBurn / 4_000L; - this.millis -= toBurn; - if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND); + this.power += trait.getHeatEnergy() * toBurn / 2_000L; + this.tank.setFill(this.tank.getFill() - toBurn); + if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * toBurn / 2F); } } } @@ -173,7 +167,6 @@ public class TileEntityMachineWoodBurner extends TileEntityMachineBase implement this.isOn = nbt.getBoolean("isOn"); this.liquidBurn = nbt.getBoolean("liquidBurn"); tank.readFromNBT(nbt, "t"); - this.millis = nbt.getInteger("millis"); } @Override @@ -185,7 +178,6 @@ public class TileEntityMachineWoodBurner extends TileEntityMachineBase implement nbt.setBoolean("isOn", isOn); nbt.setBoolean("liquidBurn", liquidBurn); tank.writeToNBT(nbt, "t"); - nbt.setInteger("millis", millis); } protected boolean processAsh(int level, EnumAshType type, int threshold) { diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 7008cea84..b38691e89 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -591,6 +591,7 @@ hadron.error_diode_collision=Fehler 0x08 [DC] hadron.error_branching_turn=Fehler 0x09 [BT] hadron.hopper0=§eNormalmodus:$Alle Items werden beschleunigt. hadron.hopper1=§eTrichtermodus:$Ein Item bleibt immer übrig. +hadron.hopper1=§eEinzelmodus:$Erlaubt nur ein Item pro Slot. hadron.idle=Leerlauf hadron.modeCircular=§eRingbeschleuniger:$Magnete bilden eine Schleife.$Schaltet mehr Rezepte frei. hadron.modeLine=§eLinearbeschleuniger:$Beschleuniger ended mit Analysekammer.$Weniger Rezepte. @@ -4169,7 +4170,7 @@ tile.machine_uf6_tank.name=Uranhexafluorid-Tank tile.machine_vacuum_distill.name=Vakuumraffinerie tile.machine_waste_drum.name=Abklingbecken-Trommel tile.machine_wood_burner.name=Brennholzgenerator -tile.machine_wood_burner.desc=Erzeugt 100HE/t aus Items$Sammelt Asche$Kann 1mB/s Flüssigkeiten mit 25%% Effizienz verbrennen +tile.machine_wood_burner.desc=Erzeugt 100HE/t aus Items$Sammelt Asche$Kann 40mB/s Flüssigkeiten mit 50%% Effizienz verbrennen tile.machine_well.name=Ölbohrturm tile.machine_zirnox.name=ZIRNOX Atomreaktor tile.marker_structure.name=Multiblock-Strukturvorlage diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 780df69c2..80ed6e7a1 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1232,6 +1232,7 @@ hadron.error_diode_collision=Error 0x08 [DC] hadron.error_branching_turn=Error 0x09 [BT] hadron.hopper0=§eNormal Mode:$All items will be used. hadron.hopper1=§eHopper Mode:$One item will always remain. +hadron.hopper2=§eSingle Mode:$Only allows one item per slot. hadron.idle=Idle hadron.modeCircular=§eCircular Accelerator Mode:$Magnets must loop back into core.$Unlocks more recipes. hadron.modeLine=§eLinear Accelerator Mode:$Accelerator ends with analysis chamber.$Fewer Recipes. @@ -5148,7 +5149,7 @@ tile.machine_uf6_tank.name=Uranium Hexafluoride Tank tile.machine_vacuum_distill.name=Vacuum Refinery tile.machine_waste_drum.name=Spent Fuel Pool Drum tile.machine_wood_burner.name=Wood-Burning Generator -tile.machine_wood_burner.desc=Generates 100HE/t when burning items$Collects ashes$Can burn fluids at 25%% efficiency at 1mB/s +tile.machine_wood_burner.desc=Generates 100HE/t when burning items$Collects ashes$Can burn fluids at 50%% efficiency at 40mB/s tile.machine_well.name=Oil Derrick tile.machine_zirnox.name=ZIRNOX Nuclear Reactor tile.marker_structure.name=Multiblock Structure Marker diff --git a/src/main/resources/assets/hbm/textures/gui/machine/gui_hadron.png b/src/main/resources/assets/hbm/textures/gui/machine/gui_hadron.png index 9c5334115f2d5ce35a0cbd9f21c8b5b0ad860715..956ddeecc17547d58fad70e6a47d293a45980a59 100644 GIT binary patch literal 7726 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 diff --git a/src/main/resources/assets/hbm/textures/models/machines/fel.png b/src/main/resources/assets/hbm/textures/models/machines/fel.png index d3e0ed9442719d27d95206fc41de2349aba40937..c0830a7c427f8b3c5e3ba1ea477623b83d5ac5b3 100644 GIT binary patch literal 4568 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 pF0_%XG!s+#7kH+zk}knZ8qW(wIb`|+dGa3 Date: Mon, 6 Nov 2023 18:52:24 +0100 Subject: [PATCH 362/432] Auto stash before merge of "master" and "origin/master" --- changelog | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/changelog b/changelog index 818c3edaa..a8ce84de8 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,4 @@ +<<<<<<< Updated upstream ## Changed * The wood-burning generator now burns 40mB/s instead of 1mB/s * Buffed the wood-burning generator's efficiency for fluids from 25% to 50% @@ -5,4 +6,6 @@ ## Fixed * Fixed wood-burning generator being 100x more efficient than it's supposed to be -* Fixed arc welders eating infinite energy \ No newline at end of file +* Fixed arc welders eating infinite energy +======= +>>>>>>> Stashed changes From 973b7eb4b009f1bb93dcc8e0dc80e77ee88f9980 Mon Sep 17 00:00:00 2001 From: Bob Date: Mon, 6 Nov 2023 18:54:24 +0100 Subject: [PATCH 363/432] you fucking asshole how about you cut that shit out --- changelog | 3 --- 1 file changed, 3 deletions(-) diff --git a/changelog b/changelog index a8ce84de8..2d60a4c6d 100644 --- a/changelog +++ b/changelog @@ -1,4 +1,3 @@ -<<<<<<< Updated upstream ## Changed * The wood-burning generator now burns 40mB/s instead of 1mB/s * Buffed the wood-burning generator's efficiency for fluids from 25% to 50% @@ -7,5 +6,3 @@ ## Fixed * Fixed wood-burning generator being 100x more efficient than it's supposed to be * Fixed arc welders eating infinite energy -======= ->>>>>>> Stashed changes From 2090ac553dc3507a565bf5e8f8bf816e4e93c71b Mon Sep 17 00:00:00 2001 From: Bob Date: Mon, 6 Nov 2023 19:05:44 +0100 Subject: [PATCH 364/432] abracadabra --- changelog | 5 ++- gradle.properties | 2 +- .../inventory/material/MatDistribution.java | 40 +++++++++++-------- src/main/java/com/hbm/lib/RefStrings.java | 2 +- 4 files changed, 30 insertions(+), 19 deletions(-) diff --git a/changelog b/changelog index 2d60a4c6d..0a724fc8b 100644 --- a/changelog +++ b/changelog @@ -1,8 +1,11 @@ ## Changed +* Updated russian localization * The wood-burning generator now burns 40mB/s instead of 1mB/s * Buffed the wood-burning generator's efficiency for fluids from 25% to 50% * The particle accelerator now has a new IO mode called single mode, which only allows one item per slot +* Added some color variance to the FEL's shell ## Fixed * Fixed wood-burning generator being 100x more efficient than it's supposed to be -* Fixed arc welders eating infinite energy +* Fixed arc welders eating infinite surplus energy +* Fixed small wires not being crucible smeltable diff --git a/gradle.properties b/gradle.properties index 243fd6690..5d374e4ff 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4774 +mod_build_number=4775 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ diff --git a/src/main/java/com/hbm/inventory/material/MatDistribution.java b/src/main/java/com/hbm/inventory/material/MatDistribution.java index 8e6fcebea..dd55dc119 100644 --- a/src/main/java/com/hbm/inventory/material/MatDistribution.java +++ b/src/main/java/com/hbm/inventory/material/MatDistribution.java @@ -45,22 +45,30 @@ public class MatDistribution extends SerializableRecipe { registerEntry(Items.minecart, MAT_IRON, INGOT.q(5)); //castables - registerEntry(ModItems.blade_titanium, MAT_TITANIUM, INGOT.q(2)); - registerEntry(ModItems.blade_tungsten, MAT_TUNGSTEN, INGOT.q(2)); - registerEntry(ModItems.blades_steel, MAT_STEEL, INGOT.q(4)); - registerEntry(ModItems.blades_titanium, MAT_TITANIUM, INGOT.q(4)); - registerEntry(ModItems.blades_advanced_alloy, MAT_ALLOY, INGOT.q(4)); - registerEntry(ModItems.stamp_stone_flat, MAT_STONE, INGOT.q(3)); - registerEntry(ModItems.stamp_iron_flat, MAT_IRON, INGOT.q(3)); - registerEntry(ModItems.stamp_steel_flat, MAT_STEEL, INGOT.q(3)); - registerEntry(ModItems.stamp_titanium_flat, MAT_TITANIUM, INGOT.q(3)); - registerEntry(ModItems.stamp_obsidian_flat, MAT_OBSIDIAN, INGOT.q(3)); - registerEntry(ModItems.hull_small_steel, MAT_STEEL, INGOT.q(2)); - registerEntry(ModItems.hull_small_aluminium, MAT_ALUMINIUM, INGOT.q(2)); - registerEntry(ModItems.hull_big_steel, MAT_STEEL, INGOT.q(6)); - registerEntry(ModItems.hull_big_aluminium, MAT_ALUMINIUM, INGOT.q(6)); - registerEntry(ModItems.hull_big_titanium, MAT_TITANIUM, INGOT.q(6)); - registerEntry(ModItems.pipes_steel, MAT_STEEL, BLOCK.q(3)); + registerEntry(ModItems.blade_titanium, MAT_TITANIUM, INGOT.q(2)); + registerEntry(ModItems.blade_tungsten, MAT_TUNGSTEN, INGOT.q(2)); + registerEntry(ModItems.blades_steel, MAT_STEEL, INGOT.q(4)); + registerEntry(ModItems.blades_titanium, MAT_TITANIUM, INGOT.q(4)); + registerEntry(ModItems.blades_advanced_alloy, MAT_ALLOY, INGOT.q(4)); + registerEntry(ModItems.stamp_stone_flat, MAT_STONE, INGOT.q(3)); + registerEntry(ModItems.stamp_iron_flat, MAT_IRON, INGOT.q(3)); + registerEntry(ModItems.stamp_steel_flat, MAT_STEEL, INGOT.q(3)); + registerEntry(ModItems.stamp_titanium_flat, MAT_TITANIUM, INGOT.q(3)); + registerEntry(ModItems.stamp_obsidian_flat, MAT_OBSIDIAN, INGOT.q(3)); + registerEntry(ModItems.hull_small_steel, MAT_STEEL, INGOT.q(2)); + registerEntry(ModItems.hull_small_aluminium, MAT_ALUMINIUM, INGOT.q(2)); + registerEntry(ModItems.hull_big_steel, MAT_STEEL, INGOT.q(6)); + registerEntry(ModItems.hull_big_aluminium, MAT_ALUMINIUM, INGOT.q(6)); + registerEntry(ModItems.hull_big_titanium, MAT_TITANIUM, INGOT.q(6)); + registerEntry(ModItems.pipes_steel, MAT_STEEL, BLOCK.q(3)); + registerEntry(ModItems.wire_aluminium, MAT_ALUMINIUM, WIRE.q(1)); + registerEntry(ModItems.wire_copper, MAT_COPPER, WIRE.q(1)); + registerEntry(ModItems.wire_red_copper, MAT_MINGRADE, WIRE.q(1)); + registerEntry(ModItems.wire_tungsten, MAT_TUNGSTEN, WIRE.q(1)); + registerEntry(ModItems.wire_gold, MAT_GOLD, WIRE.q(1)); + registerEntry(ModItems.wire_advanced_alloy, MAT_ALLOY, WIRE.q(1)); + registerEntry(ModItems.wire_magnetized_tungsten, MAT_MAGTUNG, WIRE.q(1)); + registerEntry(ModItems.wire_schrabidium, MAT_SCHRABIDIUM, WIRE.q(1)); //actual ores if(!Compat.isModLoaded(Compat.MOD_GT6)) { diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 7b15658d8..0c18a2d38 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4774)"; + public static final String VERSION = "1.0.27 BETA (4775)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version From 1e43e00b33faf7b66d6abc27d64d4b0634212b04 Mon Sep 17 00:00:00 2001 From: JameH2 <75378928+JameH2@users.noreply.github.com> Date: Mon, 6 Nov 2023 14:02:08 -0700 Subject: [PATCH 365/432] ribbit --- .../hbm/blocks/machine/BlockFluidBarrel.java | 17 +++++++- .../hbm/blocks/machine/MachineFluidTank.java | 31 +++++++++++++- .../hbm/blocks/network/FluidDuctStandard.java | 40 +++++++++++++++++++ 3 files changed, 85 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/hbm/blocks/machine/BlockFluidBarrel.java b/src/main/java/com/hbm/blocks/machine/BlockFluidBarrel.java index 84ad21963..a6e745479 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockFluidBarrel.java +++ b/src/main/java/com/hbm/blocks/machine/BlockFluidBarrel.java @@ -27,6 +27,9 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.stats.StatList; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatComponentTranslation; +import net.minecraft.util.ChatStyle; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; @@ -71,7 +74,19 @@ public class BlockFluidBarrel extends BlockContainer implements ITooltipProvider FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); return true; - } else { + } else if(player.isSneaking()){ + TileEntityBarrel mileEntity = (TileEntityBarrel) world.getTileEntity(x, y, z); + + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof IItemFluidIdentifier) { + FluidType type = ((IItemFluidIdentifier) player.getHeldItem().getItem()).getType(world, x, y, z, player.getHeldItem()); + + mileEntity.tank.setTankType(type); + mileEntity.markDirty(); + player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation(type.getConditionalName())).appendSibling(new ChatComponentText("!"))); + } + return true; + + }else { return false; } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineFluidTank.java b/src/main/java/com/hbm/blocks/machine/MachineFluidTank.java index d639eed45..32274741c 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineFluidTank.java +++ b/src/main/java/com/hbm/blocks/machine/MachineFluidTank.java @@ -7,9 +7,11 @@ import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.IPersistentInfoProvider; import com.hbm.entity.projectile.EntityBombletZeta; +import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Flammable; +import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.main.MainRegistry; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.IRepairable; @@ -27,6 +29,9 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatComponentTranslation; +import net.minecraft.util.ChatStyle; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.Explosion; import net.minecraft.world.World; @@ -61,7 +66,8 @@ public class MachineFluidTank extends BlockDummyable implements IPersistentInfoP if(world.isRemote) { return true; - } else if(!player.isSneaking()) { + } + else if(!player.isSneaking()) { int[] pos = this.findCore(world, x, y, z); if(pos == null) @@ -74,9 +80,30 @@ public class MachineFluidTank extends BlockDummyable implements IPersistentInfoP FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, pos[0], pos[1], pos[2]); } return true; - } else { + } + else if(player.isSneaking()){ + int[] pos = this.findCore(world, x, y, z); + + if(pos == null) + return false; + + TileEntityMachineFluidTank tank = (TileEntityMachineFluidTank) world.getTileEntity(pos[0], pos[1], pos[2]); + + if(tank != null) { + if(tank.hasExploded) return false; + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof IItemFluidIdentifier) { + FluidType type = ((IItemFluidIdentifier) player.getHeldItem().getItem()).getType(world, pos[0], pos[1], pos[2], player.getHeldItem()); + + tank.tank.setTankType(type); + tank.markDirty(); + player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation(type.getConditionalName())).appendSibling(new ChatComponentText("!"))); + } + } + return true; + }else { return true; } + } @Override diff --git a/src/main/java/com/hbm/blocks/network/FluidDuctStandard.java b/src/main/java/com/hbm/blocks/network/FluidDuctStandard.java index 35d197059..7a6ab966b 100644 --- a/src/main/java/com/hbm/blocks/network/FluidDuctStandard.java +++ b/src/main/java/com/hbm/blocks/network/FluidDuctStandard.java @@ -5,8 +5,10 @@ import java.util.List; import com.hbm.blocks.IBlockMulti; import com.hbm.blocks.ILookOverlay; +import com.hbm.blocks.ModBlocks; import com.hbm.blocks.test.TestPipe; import com.hbm.inventory.fluid.FluidType; +import com.hbm.items.ModItems; import com.hbm.lib.Library; import com.hbm.lib.RefStrings; import com.hbm.tileentity.network.TileEntityPipeBaseNT; @@ -14,15 +16,18 @@ import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.IIcon; +import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; @@ -70,7 +75,42 @@ public class FluidDuctStandard extends FluidDuctBase implements IBlockMulti, ILo public int damageDropped(int meta) { return rectify(meta); } + /* + @Override + @SideOnly(Side.CLIENT) + public Item getItem(World world, int x, int y, int z) { + Block block = world.getBlock(x, y, z); // Get the block at the specified coordinates + int blockMetadata = world.getBlockMetadata(x, y, z); // Get the metadata of the block at the specified coordinates + TileEntity tileEntity = world.getTileEntity(x, y, z); // Get the tile entity at the specified coordinates + TileEntityPipeBaseNT pipe = (TileEntityPipeBaseNT) tileEntity; + + // Get the metadata (FluidType) from the pipe + FluidType fluidType = pipe.getType(); + int metadata = fluidType.getID(); + + // Create an ItemStack with the item and metadata + ItemStack itemStack = new ItemStack(ModItems.fluid_duct, 1, metadata); + System.out.println(metadata); + System.out.println(itemStack); + + return new ItemStack(ModItems.fluid_duct, 1, metadata).getItem(); + } + */ + + @Override + @SideOnly(Side.CLIENT) + public ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z, EntityPlayer player) { + TileEntity tileEntity = world.getTileEntity(x, y, z); + if (tileEntity instanceof TileEntityPipeBaseNT) { + TileEntityPipeBaseNT pipe = (TileEntityPipeBaseNT) tileEntity; + FluidType fluidType = pipe.getType(); + int retadata = fluidType.getID(); //florf + + return new ItemStack(ModItems.fluid_duct, 1, retadata); + } + return super.getPickBlock(target, world, x, y, z, player); + } @Override public int getRenderType() { return TestPipe.renderID; From 1fd672f167f85ab681fb4741b746be8d951de9c0 Mon Sep 17 00:00:00 2001 From: JameH2 <75378928+JameH2@users.noreply.github.com> Date: Mon, 6 Nov 2023 14:17:45 -0700 Subject: [PATCH 366/432] wow i cant believe you forgot these kill yours --- .../hbm/blocks/machine/BlockFluidBarrel.java | 2 ++ .../blocks/machine/MachineBigAssTank9000.java | 27 ++++++++++++++++++- .../com/hbm/blocks/machine/MachineOrbus.java | 27 ++++++++++++++++++- 3 files changed, 54 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/hbm/blocks/machine/BlockFluidBarrel.java b/src/main/java/com/hbm/blocks/machine/BlockFluidBarrel.java index a6e745479..41ab8cba8 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockFluidBarrel.java +++ b/src/main/java/com/hbm/blocks/machine/BlockFluidBarrel.java @@ -7,8 +7,10 @@ import java.util.Random; import com.hbm.blocks.IPersistentInfoProvider; import com.hbm.blocks.ITooltipProvider; import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.main.MainRegistry; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.machine.storage.TileEntityBarrel; diff --git a/src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java b/src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java index ec8f81136..e0a494ede 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java +++ b/src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java @@ -6,12 +6,15 @@ import java.util.List; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.IPersistentInfoProvider; import com.hbm.handler.MultiblockHandlerXR; +import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.main.MainRegistry; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.storage.TileEntityMachineBAT9000; +import com.hbm.tileentity.machine.storage.TileEntityMachineOrbus; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.material.Material; @@ -19,6 +22,9 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatComponentTranslation; +import net.minecraft.util.ChatStyle; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -87,7 +93,26 @@ public class MachineBigAssTank9000 extends BlockDummyable implements IPersistent FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, pos[0], pos[1], pos[2]); //we can do this because nobody is stopping me from doing this return true; - } else { + } else if(player.isSneaking()){ + int[] pos = this.findCore(world, x, y, z); + + if(pos == null) + return false; + + TileEntityMachineBAT9000 trialEntity = (TileEntityMachineBAT9000) world.getTileEntity(pos[0], pos[1], pos[2]); + + if(trialEntity != null) { + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof IItemFluidIdentifier) { + FluidType type = ((IItemFluidIdentifier) player.getHeldItem().getItem()).getType(world, pos[0], pos[1], pos[2], player.getHeldItem()); + + trialEntity.tank.setTankType(type); + trialEntity.markDirty(); + player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation(type.getConditionalName())).appendSibling(new ChatComponentText("!"))); + } + } + + return true; + }else { return true; } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineOrbus.java b/src/main/java/com/hbm/blocks/machine/MachineOrbus.java index 78ffddd31..902c24672 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineOrbus.java +++ b/src/main/java/com/hbm/blocks/machine/MachineOrbus.java @@ -5,11 +5,14 @@ import java.util.List; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.IPersistentInfoProvider; +import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.main.MainRegistry; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.machine.storage.TileEntityMachineFluidTank; import com.hbm.tileentity.machine.storage.TileEntityMachineOrbus; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; @@ -18,6 +21,9 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatComponentTranslation; +import net.minecraft.util.ChatStyle; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -60,7 +66,26 @@ public class MachineOrbus extends BlockDummyable implements IPersistentInfoProvi FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, pos[0], pos[1], pos[2]); return true; - } else { + } else if(player.isSneaking()){ + int[] pos = this.findCore(world, x, y, z); + + if(pos == null) + return false; + + TileEntityMachineOrbus kyleEntity = (TileEntityMachineOrbus) world.getTileEntity(pos[0], pos[1], pos[2]); + + if(kyleEntity != null) { + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof IItemFluidIdentifier) { + FluidType type = ((IItemFluidIdentifier) player.getHeldItem().getItem()).getType(world, pos[0], pos[1], pos[2], player.getHeldItem()); + + kyleEntity.tank.setTankType(type); + kyleEntity.markDirty(); + player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation(type.getConditionalName())).appendSibling(new ChatComponentText("!"))); + } + } + + return true; + } else { return true; } } From a5c49f6d64971650466aef5d731ed53c2dcac660 Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 7 Nov 2023 15:59:04 +0100 Subject: [PATCH 367/432] flixes --- changelog | 12 ++---------- .../com/hbm/handler/nei/CustomMachineHandler.java | 4 ++-- .../java/com/hbm/items/special/ItemBedrockOre.java | 2 +- src/main/resources/assets/hbm/lang/de_DE.lang | 2 +- src/main/resources/assets/hbm/lang/en_US.lang | 2 +- 5 files changed, 7 insertions(+), 15 deletions(-) diff --git a/changelog b/changelog index 0a724fc8b..54fd44341 100644 --- a/changelog +++ b/changelog @@ -1,11 +1,3 @@ -## Changed -* Updated russian localization -* The wood-burning generator now burns 40mB/s instead of 1mB/s -* Buffed the wood-burning generator's efficiency for fluids from 25% to 50% -* The particle accelerator now has a new IO mode called single mode, which only allows one item per slot -* Added some color variance to the FEL's shell - ## Fixed -* Fixed wood-burning generator being 100x more efficient than it's supposed to be -* Fixed arc welders eating infinite surplus energy -* Fixed small wires not being crucible smeltable +* Fixed thorium bedrock ore using the wrong ore dict key, making it unable to be processed via centrifuge or acidizer +* Fixed custom machine NEI slots going out of bounds after the third slot \ No newline at end of file diff --git a/src/main/java/com/hbm/handler/nei/CustomMachineHandler.java b/src/main/java/com/hbm/handler/nei/CustomMachineHandler.java index f5a4226d2..844af6e60 100644 --- a/src/main/java/com/hbm/handler/nei/CustomMachineHandler.java +++ b/src/main/java/com/hbm/handler/nei/CustomMachineHandler.java @@ -57,7 +57,7 @@ public class CustomMachineHandler extends TemplateRecipeHandler { for(int i = 0; i < 3; i++) if(recipe.inputFluids.length > i) inputs.add(new PositionedStack(ItemFluidIcon.make(recipe.inputFluids[i]), 12 + i * 18, 6)); for(int i = 0; i < 3; i++) if(recipe.inputItems.length > i) inputs.add(new PositionedStack(recipe.inputItems[i].extractForNEI(), 12 + i * 18, 24)); - for(int i = 3; i < 6; i++) if(recipe.inputItems.length > i) inputs.add(new PositionedStack(recipe.inputItems[i].extractForNEI(), 12 + i * 18, 42)); + for(int i = 3; i < 6; i++) if(recipe.inputItems.length > i) inputs.add(new PositionedStack(recipe.inputItems[i].extractForNEI(), 12 + (i - 3) * 18, 42)); for(int i = 0; i < 3; i++) if(recipe.outputFluids.length > i) outputs.add(new PositionedStack(ItemFluidIcon.make(recipe.outputFluids[i]), 102 + i * 18, 6)); @@ -76,7 +76,7 @@ public class CustomMachineHandler extends TemplateRecipeHandler { if(pair.getValue() != 1) { ItemStackUtil.addTooltipToStack(out, EnumChatFormatting.RED + "" + (((int)(pair.getValue() * 1000)) / 10D) + "%"); } - outputs.add(new PositionedStack(out, 102 + i * 18, 42)); + outputs.add(new PositionedStack(out, 102 + (i - 3) * 18, 42)); } this.machine = new PositionedStack(new ItemStack(ModBlocks.custom_machine, 1, 100 + CustomMachineConfigJSON.niceList.indexOf(conf)), 75, 42); diff --git a/src/main/java/com/hbm/items/special/ItemBedrockOre.java b/src/main/java/com/hbm/items/special/ItemBedrockOre.java index b3cd0433e..ca2ad4853 100644 --- a/src/main/java/com/hbm/items/special/ItemBedrockOre.java +++ b/src/main/java/com/hbm/items/special/ItemBedrockOre.java @@ -94,7 +94,7 @@ public class ItemBedrockOre extends ItemEnumMulti { TUNGSTEN("Tungsten", 0x2C293C, B_LEAD, B_IRON, B_BISMUTH), //ferberite has iron, raspite has lead, russelite is bismuth tungsten GOLD("Gold", 0xF9D738, B_LEAD, B_COPPER, B_BISMUTH), //occurs with copper, lead and rare bismuthide URANIUM("Uranium", 0x868D82, B_LEAD, B_RADIUM, B_POLONIUM), //uranium and its decay products - THORIUM("Thorium", 0x7D401D, B_SILICON, B_URANIUM, B_TECHNETIUM), //thorium occours with uraninite and decay products + THORIUM("Thorium232", 0x7D401D, B_SILICON, B_URANIUM, B_TECHNETIUM), //thorium occours with uraninite and decay products CHLOROCALCITE("Chlorocalcite", 0xCDE036, B_LITHIUM, B_SILICON, B_SILICON), //i guess? FLUORITE("Fluorite", 0xF6F3E7, B_SILICON, B_LITHIUM, B_ALUMINIUM), //different silicon-bearing gemstones, generic lithium, aluminium from sodium compound trailings HEMATITE("Hematite", 0xA37B72, B_SULFUR, B_TITANIUM, B_TITANIUM), //titanium, sulfur from pyrite diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index b38691e89..770d3d540 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -2562,7 +2562,7 @@ item.ore.malachite=Malachit item.ore.niobium=Niob item.ore.titanium=Titan item.ore.tungsten=Wolfram -item.ore.thorium=Thorium +item.ore.thorium232=Thorium item.ore.uranium=Uran item.ore_bedrock.name=Bedrock-%serz item.ore_byproduct.b_aluminium.name=Kristallines Aluminiumfragment diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 80ed6e7a1..19cb1bd86 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -3321,7 +3321,7 @@ item.ore.malachite=Malachite item.ore.niobium=Niobium item.ore.titanium=Titanium item.ore.tungsten=Tungsten -item.ore.thorium=Thorium +item.ore.thorium232=Thorium item.ore.uranium=Uranium item.ore_bedrock.name=%s Bedrock Ore item.ore_byproduct.b_aluminium.name=Crystalline Aluminium Fragment From fe152fb6762becf06b7f64581a8710e2c19a9172 Mon Sep 17 00:00:00 2001 From: sdddddf80 <2980187979@qq.com> Date: Wed, 8 Nov 2023 16:23:28 +0800 Subject: [PATCH 368/432] Transferred a bunch of text to lang file Transferred a bunch of text to lang file(not all) --- .../java/com/hbm/blocks/ITooltipProvider.java | 5 +- .../hbm/blocks/machine/BlockFluidBarrel.java | 53 +- .../hbm/blocks/machine/BlockHadronCooler.java | 5 +- .../hbm/blocks/machine/MachineCapacitor.java | 5 +- .../hbm/blocks/machine/MachineGasFlare.java | 11 +- .../com/hbm/blocks/network/PylonLarge.java | 6 +- .../com/hbm/blocks/network/PylonRedWire.java | 5 +- .../com/hbm/blocks/network/Substation.java | 5 +- .../hbm/handler/nei/CustomMachineHandler.java | 3 +- .../com/hbm/inventory/fluid/FluidType.java | 5 +- .../inventory/fluid/trait/FT_Combustible.java | 17 +- .../inventory/fluid/trait/FT_Coolable.java | 5 +- .../inventory/fluid/trait/FT_Corrosive.java | 5 +- .../inventory/fluid/trait/FT_Flammable.java | 5 +- .../inventory/fluid/trait/FT_Heatable.java | 5 +- .../fluid/trait/FT_PWRModerator.java | 5 +- .../hbm/inventory/fluid/trait/FT_Poison.java | 3 +- .../hbm/inventory/fluid/trait/FT_Toxin.java | 2 +- .../fluid/trait/FT_VentRadiation.java | 3 +- .../fluid/trait/FluidTraitSimple.java | 19 +- .../java/com/hbm/items/armor/ArmorDNT.java | 2 +- .../com/hbm/items/armor/ArmorFSBPowered.java | 3 +- .../com/hbm/items/armor/ItemArmorMod.java | 2 +- .../java/com/hbm/items/armor/ItemModAuto.java | 3 +- .../com/hbm/items/armor/ItemModBandaid.java | 5 +- .../com/hbm/items/armor/ItemModBathwater.java | 5 +- .../com/hbm/items/armor/ItemModCharm.java | 12 +- .../com/hbm/items/armor/ItemModCladding.java | 5 +- .../com/hbm/items/armor/ItemModDefuser.java | 5 +- .../com/hbm/items/armor/ItemModGasmask.java | 6 +- .../com/hbm/items/armor/ItemModHealth.java | 7 +- .../java/com/hbm/items/armor/ItemModInk.java | 7 +- .../com/hbm/items/armor/ItemModInsert.java | 21 +- .../java/com/hbm/items/armor/ItemModIron.java | 5 +- .../com/hbm/items/armor/ItemModKnife.java | 8 +- .../java/com/hbm/items/armor/ItemModLens.java | 5 +- .../com/hbm/items/armor/ItemModLodestone.java | 7 +- .../java/com/hbm/items/armor/ItemModMilk.java | 5 +- .../hbm/items/armor/ItemModMorningGlory.java | 5 +- .../com/hbm/items/armor/ItemModObsidian.java | 5 +- .../java/com/hbm/items/armor/ItemModPads.java | 9 +- .../com/hbm/items/armor/ItemModPolish.java | 5 +- .../com/hbm/items/armor/ItemModQuartz.java | 5 +- .../com/hbm/items/armor/ItemModRevive.java | 19 +- .../com/hbm/items/armor/ItemModSensor.java | 7 +- .../com/hbm/items/armor/ItemModSerum.java | 5 +- .../com/hbm/items/armor/ItemModServos.java | 17 +- .../com/hbm/items/armor/ItemModShackles.java | 11 +- .../com/hbm/items/armor/ItemModTesla.java | 5 +- .../com/hbm/items/armor/ItemModTwoKick.java | 7 +- .../java/com/hbm/items/armor/ItemModV1.java | 5 +- .../java/com/hbm/items/armor/ItemModWD40.java | 5 +- .../java/com/hbm/items/armor/JetpackBase.java | 3 +- .../com/hbm/items/armor/JetpackBooster.java | 7 +- .../com/hbm/items/armor/JetpackBreak.java | 6 +- .../com/hbm/items/armor/JetpackRegular.java | 3 +- .../hbm/items/armor/JetpackVectorized.java | 5 +- .../hbm/items/block/ItemBlockBlastInfo.java | 3 +- .../com/hbm/items/block/ItemBlockLore.java | 27 +- .../hbm/items/block/ItemCustomMachine.java | 3 +- .../java/com/hbm/items/bomb/ItemFleija.java | 5 +- .../hbm/items/bomb/ItemMissileShuttle.java | 10 +- src/main/java/com/hbm/items/bomb/ItemN2.java | 6 +- .../hbm/items/bomb/ItemPrototypeBlock.java | 7 +- .../java/com/hbm/items/bomb/ItemSolinium.java | 5 +- .../java/com/hbm/items/food/ItemLemon.java | 52 +- .../com/hbm/items/food/ItemTemFlakes.java | 7 +- .../com/hbm/items/machine/ItemBattery.java | 9 +- .../hbm/items/machine/ItemMachineUpgrade.java | 162 +- .../com/hbm/items/machine/ItemPWRFuel.java | 8 +- .../com/hbm/items/machine/ItemPlateFuel.java | 7 +- .../com/hbm/items/machine/ItemRBMKPellet.java | 15 +- .../com/hbm/items/machine/ItemRBMKRod.java | 18 +- .../com/hbm/items/machine/ItemWatzPellet.java | 19 +- .../com/hbm/items/special/ItemAMSCore.java | 44 +- .../com/hbm/items/special/ItemGlitch.java | 75 +- .../java/com/hbm/items/special/ItemRag.java | 5 +- .../java/com/hbm/items/special/ItemSoyuz.java | 9 +- .../com/hbm/items/tool/ItemAnchorRemote.java | 7 +- .../com/hbm/items/tool/ItemCMStructure.java | 7 +- .../com/hbm/items/tool/ItemDetonator.java | 13 +- src/main/java/com/hbm/items/tool/ItemMS.java | 3 +- .../hbm/items/tool/ItemSwordMeteorite.java | 49 +- .../java/com/hbm/items/tool/ItemWand.java | 13 +- .../java/com/hbm/items/tool/ItemWandS.java | 7 +- .../com/hbm/items/tool/WeaponSpecial.java | 45 +- .../com/hbm/main/ModEventHandlerClient.java | 20 +- .../java/com/hbm/util/function/Function.java | 11 +- src/main/resources/assets/hbm/lang/en_US.lang | 174 ++ src/main/resources/assets/hbm/lang/zh_CN.lang | 1593 ++++++++++------- 90 files changed, 1613 insertions(+), 1244 deletions(-) diff --git a/src/main/java/com/hbm/blocks/ITooltipProvider.java b/src/main/java/com/hbm/blocks/ITooltipProvider.java index e959db070..4ca8d3678 100644 --- a/src/main/java/com/hbm/blocks/ITooltipProvider.java +++ b/src/main/java/com/hbm/blocks/ITooltipProvider.java @@ -21,9 +21,8 @@ public interface ITooltipProvider { if(Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { for(String s : I18nUtil.resolveKeyArray(((Block)this).getUnlocalizedName() + ".desc")) list.add(EnumChatFormatting.YELLOW + s); } else { - list.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC +"Hold <" + - EnumChatFormatting.YELLOW + "" + EnumChatFormatting.ITALIC + "LSHIFT" + - EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC + "> to display more info"); + list.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC +I18nUtil.resolveKey("tooltip.block" , + EnumChatFormatting.YELLOW +"" + EnumChatFormatting.ITALIC + "LSHIFT")); } } diff --git a/src/main/java/com/hbm/blocks/machine/BlockFluidBarrel.java b/src/main/java/com/hbm/blocks/machine/BlockFluidBarrel.java index 84ad21963..4acf88e73 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockFluidBarrel.java +++ b/src/main/java/com/hbm/blocks/machine/BlockFluidBarrel.java @@ -13,6 +13,7 @@ import com.hbm.main.MainRegistry; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.machine.storage.TileEntityBarrel; +import com.hbm.util.I18nUtil; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.Block; @@ -191,47 +192,47 @@ public class BlockFluidBarrel extends BlockContainer implements ITooltipProvider public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { if(this == ModBlocks.barrel_plastic) { - list.add(EnumChatFormatting.AQUA + "Capacity: 12,000mB"); - list.add(EnumChatFormatting.YELLOW + "Cannot store hot fluids"); - list.add(EnumChatFormatting.YELLOW + "Cannot store corrosive fluids"); - list.add(EnumChatFormatting.YELLOW + "Cannot store antimatter"); + list.add(EnumChatFormatting.AQUA + I18nUtil.resolveKey("trait.tile.barrel.capacity","12,000")); + list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("trait.tile.barrel.hot")[1]); + list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("trait.tile.barrel.corrosive")[4]); + list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("trait.tile.barrel.antimatter")[1]); } if(this == ModBlocks.barrel_corroded) { - list.add(EnumChatFormatting.AQUA + "Capacity: 6,000mB"); - list.add(EnumChatFormatting.GREEN + "Can store hot fluids"); - list.add(EnumChatFormatting.GREEN + "Can store highly corrosive fluids"); - list.add(EnumChatFormatting.YELLOW + "Cannot store antimatter"); - list.add(EnumChatFormatting.RED + "Leaky"); + list.add(EnumChatFormatting.AQUA + I18nUtil.resolveKey("trait.tile.barrel.capacity","6,000")); + list.add(EnumChatFormatting.GREEN + I18nUtil.resolveKeyArray("trait.tile.barrel.hot")[0]); + list.add(EnumChatFormatting.GREEN + I18nUtil.resolveKeyArray("trait.tile.barrel.corrosive")[0]); + list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("trait.tile.barrel.antimatter")[1]); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKey("trait.tile.barrel.leak")); } if(this == ModBlocks.barrel_iron) { - list.add(EnumChatFormatting.AQUA + "Capacity: 8,000mB"); - list.add(EnumChatFormatting.GREEN + "Can store hot fluids"); - list.add(EnumChatFormatting.YELLOW + "Cannot store corrosive fluids properly"); - list.add(EnumChatFormatting.YELLOW + "Cannot store antimatter"); + list.add(EnumChatFormatting.AQUA + I18nUtil.resolveKey("trait.tile.barrel.capacity","8,000")); + list.add(EnumChatFormatting.GREEN + I18nUtil.resolveKeyArray("trait.tile.barrel.hot")[0]); + list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("trait.tile.barrel.corrosive")[3]); + list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("trait.tile.barrel.antimatter")[1]); } if(this == ModBlocks.barrel_steel) { - list.add(EnumChatFormatting.AQUA + "Capacity: 16,000mB"); - list.add(EnumChatFormatting.GREEN + "Can store hot fluids"); - list.add(EnumChatFormatting.GREEN + "Can store corrosive fluids"); - list.add(EnumChatFormatting.YELLOW + "Cannot store highly corrosive fluids properly"); - list.add(EnumChatFormatting.YELLOW + "Cannot store antimatter"); + list.add(EnumChatFormatting.AQUA + I18nUtil.resolveKey("trait.tile.barrel.capacity","16,000")); + list.add(EnumChatFormatting.GREEN + I18nUtil.resolveKeyArray("trait.tile.barrel.hot")[0]); + list.add(EnumChatFormatting.GREEN + I18nUtil.resolveKeyArray("trait.tile.barrel.corrosive")[1]); + list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("trait.tile.barrel.corrosive")[2]); + list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("trait.tile.barrel.antimatter")[1]); } if(this == ModBlocks.barrel_antimatter) { - list.add(EnumChatFormatting.AQUA + "Capacity: 16,000mB"); - list.add(EnumChatFormatting.GREEN + "Can store hot fluids"); - list.add(EnumChatFormatting.GREEN + "Can store highly corrosive fluids"); - list.add(EnumChatFormatting.GREEN + "Can store antimatter"); + list.add(EnumChatFormatting.AQUA + I18nUtil.resolveKey("trait.tile.barrel.capacity","16,000")); + list.add(EnumChatFormatting.GREEN + I18nUtil.resolveKeyArray("trait.tile.barrel.hot")[0]); + list.add(EnumChatFormatting.GREEN + I18nUtil.resolveKeyArray("trait.tile.barrel.corrosive")[0]); + list.add(EnumChatFormatting.GREEN + I18nUtil.resolveKeyArray("trait.tile.barrel.antimatter")[0]); } if(this == ModBlocks.barrel_tcalloy) { - list.add(EnumChatFormatting.AQUA + "Capacity: 24,000mB"); - list.add(EnumChatFormatting.GREEN + "Can store hot fluids"); - list.add(EnumChatFormatting.GREEN + "Can store highly corrosive fluids"); - list.add(EnumChatFormatting.YELLOW + "Cannot store antimatter"); + list.add(EnumChatFormatting.AQUA + I18nUtil.resolveKey("trait.tile.barrel.capacity","24,000")); + list.add(EnumChatFormatting.GREEN + I18nUtil.resolveKeyArray("trait.tile.barrel.hot")[0]); + list.add(EnumChatFormatting.GREEN + I18nUtil.resolveKeyArray("trait.tile.barrel.corrosive")[0]); + list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("trait.tile.barrel.antimatter")[1]); } } } diff --git a/src/main/java/com/hbm/blocks/machine/BlockHadronCooler.java b/src/main/java/com/hbm/blocks/machine/BlockHadronCooler.java index a242772e2..c2c220ff8 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockHadronCooler.java +++ b/src/main/java/com/hbm/blocks/machine/BlockHadronCooler.java @@ -59,9 +59,8 @@ public class BlockHadronCooler extends BlockMulti implements ITooltipProvider { if(Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { for(String s : I18nUtil.resolveKeyArray(this.getUnlocalizedName(stack) + ".desc")) list.add(EnumChatFormatting.YELLOW + s); } else { - list.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC +"Hold <" + - EnumChatFormatting.YELLOW + "" + EnumChatFormatting.ITALIC + "LSHIFT" + - EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC + "> to display more info"); + list.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC +I18nUtil.resolveKey("tooltip.block" , + EnumChatFormatting.YELLOW +"" + EnumChatFormatting.ITALIC + "LSHIFT")); } } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineCapacitor.java b/src/main/java/com/hbm/blocks/machine/MachineCapacitor.java index be083f6e3..e55f4844b 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineCapacitor.java +++ b/src/main/java/com/hbm/blocks/machine/MachineCapacitor.java @@ -113,9 +113,8 @@ public class MachineCapacitor extends BlockContainer implements ILookOverlay, IP if(Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { for(String s : I18nUtil.resolveKeyArray("tile.capacitor.desc")) list.add(EnumChatFormatting.YELLOW + s); } else { - list.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC +"Hold <" + - EnumChatFormatting.YELLOW + "" + EnumChatFormatting.ITALIC + "LSHIFT" + - EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC + "> to display more info"); + list.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC +I18nUtil.resolveKey("tooltip.block" , + EnumChatFormatting.YELLOW +"" + EnumChatFormatting.ITALIC + "LSHIFT")); } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineGasFlare.java b/src/main/java/com/hbm/blocks/machine/MachineGasFlare.java index 4567cf760..db5bd32f5 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineGasFlare.java +++ b/src/main/java/com/hbm/blocks/machine/MachineGasFlare.java @@ -7,6 +7,7 @@ import com.hbm.blocks.ITooltipProvider; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.oil.TileEntityMachineGasFlare; +import com.hbm.util.I18nUtil; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -61,13 +62,7 @@ public class MachineGasFlare extends BlockDummyable implements ITooltipProvider @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { - - list.add(EnumChatFormatting.GOLD + "Can burn fluids and vent gasses"); - list.add(EnumChatFormatting.GOLD + "Burns up to " + EnumChatFormatting.RED + "10mB/t"); - list.add(EnumChatFormatting.GOLD + "Vents up to " + EnumChatFormatting.RED + "50mB/t"); - list.add(""); - list.add(EnumChatFormatting.YELLOW + "Fuel efficiency:"); - list.add(EnumChatFormatting.YELLOW + "-Flammable Gasses: " + EnumChatFormatting.RED + "50%"); - list.add(EnumChatFormatting.YELLOW + "-Flammable Liquids: " + EnumChatFormatting.RED + "10%"); + for(String s : I18nUtil.resolveKeyArray("tile.machine_flare.desc")) + list.add(EnumChatFormatting.GOLD + s); } } diff --git a/src/main/java/com/hbm/blocks/network/PylonLarge.java b/src/main/java/com/hbm/blocks/network/PylonLarge.java index 395b27dd1..65605d4d3 100644 --- a/src/main/java/com/hbm/blocks/network/PylonLarge.java +++ b/src/main/java/com/hbm/blocks/network/PylonLarge.java @@ -7,6 +7,7 @@ import com.hbm.blocks.ITooltipProvider; import com.hbm.tileentity.network.TileEntityPylonBase; import com.hbm.tileentity.network.TileEntityPylonLarge; +import com.hbm.util.I18nUtil; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; @@ -33,9 +34,8 @@ public class PylonLarge extends BlockDummyable implements ITooltipProvider { @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { - list.add(EnumChatFormatting.GOLD + "Connection Type: " + EnumChatFormatting.YELLOW + "Quadruple"); - list.add(EnumChatFormatting.GOLD + "Connection Range: " + EnumChatFormatting.YELLOW + "100m"); - list.add(EnumChatFormatting.GOLD + "This pylon requires a substation!"); + for(String s : I18nUtil.resolveKeyArray("tile.red_pylon_large.desc")) + list.add(EnumChatFormatting.GOLD + s); } @Override diff --git a/src/main/java/com/hbm/blocks/network/PylonRedWire.java b/src/main/java/com/hbm/blocks/network/PylonRedWire.java index 79a44f541..9b9d8750b 100644 --- a/src/main/java/com/hbm/blocks/network/PylonRedWire.java +++ b/src/main/java/com/hbm/blocks/network/PylonRedWire.java @@ -4,6 +4,7 @@ import java.util.List; import com.hbm.tileentity.network.TileEntityPylon; +import com.hbm.util.I18nUtil; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -24,7 +25,7 @@ public class PylonRedWire extends PylonBase { @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { - list.add(EnumChatFormatting.GOLD + "Connection Type: " + EnumChatFormatting.YELLOW + "Single"); - list.add(EnumChatFormatting.GOLD + "Connection Range: " + EnumChatFormatting.YELLOW + "25m"); + for(String s : I18nUtil.resolveKeyArray("tile.red_pylon.desc")) + list.add(EnumChatFormatting.GOLD + s); } } diff --git a/src/main/java/com/hbm/blocks/network/Substation.java b/src/main/java/com/hbm/blocks/network/Substation.java index 7499992fd..4f61cf58d 100644 --- a/src/main/java/com/hbm/blocks/network/Substation.java +++ b/src/main/java/com/hbm/blocks/network/Substation.java @@ -8,6 +8,7 @@ import com.hbm.tileentity.TileEntityProxyConductor; import com.hbm.tileentity.network.TileEntityPylonBase; import com.hbm.tileentity.network.TileEntitySubstation; +import com.hbm.util.I18nUtil; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; @@ -37,8 +38,8 @@ public class Substation extends BlockDummyable implements ITooltipProvider { @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { - list.add(EnumChatFormatting.GOLD + "Connection Type: " + EnumChatFormatting.YELLOW + "Quadruple"); - list.add(EnumChatFormatting.GOLD + "Connection Range: " + EnumChatFormatting.YELLOW + "20m"); + for(String s : I18nUtil.resolveKeyArray("tile.substation.desc")) + list.add(EnumChatFormatting.GOLD + s); } @Override diff --git a/src/main/java/com/hbm/handler/nei/CustomMachineHandler.java b/src/main/java/com/hbm/handler/nei/CustomMachineHandler.java index 844af6e60..659289307 100644 --- a/src/main/java/com/hbm/handler/nei/CustomMachineHandler.java +++ b/src/main/java/com/hbm/handler/nei/CustomMachineHandler.java @@ -14,6 +14,7 @@ import com.hbm.inventory.recipes.CustomMachineRecipes; import com.hbm.inventory.recipes.CustomMachineRecipes.CustomMachineRecipe; import com.hbm.items.machine.ItemFluidIcon; import com.hbm.lib.RefStrings; +import com.hbm.util.I18nUtil; import com.hbm.util.ItemStackUtil; import com.hbm.util.Tuple.Pair; @@ -104,7 +105,7 @@ public class CustomMachineHandler extends TemplateRecipeHandler { @Override public String getRecipeName() { - return conf.localizedName; + return (I18nUtil.resolveKey("tile.cm_" + conf.unlocalizedName + ".name").startsWith("tile.cm_")) ? conf.localizedName : I18nUtil.resolveKey("tile.cm_" + conf.unlocalizedName + ".name"); } @Override diff --git a/src/main/java/com/hbm/inventory/fluid/FluidType.java b/src/main/java/com/hbm/inventory/fluid/FluidType.java index d6fa4d759..e6015725b 100644 --- a/src/main/java/com/hbm/inventory/fluid/FluidType.java +++ b/src/main/java/com/hbm/inventory/fluid/FluidType.java @@ -218,9 +218,8 @@ public class FluidType { info.addAll(hidden); } else { - info.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC +"Hold <" + - EnumChatFormatting.YELLOW + "" + EnumChatFormatting.ITALIC + "LSHIFT" + - EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC + "> to display more info"); + info.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC +I18nUtil.resolveKey("tooltip.block" , + EnumChatFormatting.YELLOW +"" + EnumChatFormatting.ITALIC + "LSHIFT")); } } } diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Combustible.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Combustible.java index a297d40ca..9d566e0fb 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Combustible.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Combustible.java @@ -7,6 +7,7 @@ import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; import net.minecraft.util.EnumChatFormatting; public class FT_Combustible extends FluidTrait { @@ -25,11 +26,11 @@ public class FT_Combustible extends FluidTrait { public void addInfo(List info) { super.addInfo(info); - info.add(EnumChatFormatting.GOLD + "[Combustible]"); + info.add(EnumChatFormatting.GOLD + I18nUtil.resolveKeyArray("hbmfluid.Trait.Combustible","","")[0]); if(combustionEnergy > 0) { - info.add(EnumChatFormatting.GOLD + "Provides " + EnumChatFormatting.RED + "" + BobMathUtil.getShortNumber(combustionEnergy) + "HE " + EnumChatFormatting.GOLD + "per bucket"); - info.add(EnumChatFormatting.GOLD + "Fuel grade: " + EnumChatFormatting.RED + this.fuelGrade.getGrade()); + info.add(EnumChatFormatting.GOLD + I18nUtil.resolveKeyArray("hbmfluid.Trait.Combustible",BobMathUtil.getShortNumber(combustionEnergy),"")[1]); + info.add(EnumChatFormatting.GOLD + I18nUtil.resolveKeyArray("hbmfluid.Trait.Combustible","",this.fuelGrade.getGrade())[2]); } } @@ -42,11 +43,11 @@ public class FT_Combustible extends FluidTrait { } public static enum FuelGrade { - LOW("Low"), //heating and industrial oil < star engine, iGen - MEDIUM("Medium"), //petroil < diesel generator - HIGH("High"), //diesel, gasoline < HP engine - AERO("Aviation"), //kerosene and other light aviation fuels < turbofan - GAS("Gaseous"); //fuel gasses like NG, PG and syngas < gas turbine + LOW(I18nUtil.resolveKeyArray("hbmfluid.Trait.Combustible.FuelGrade")[0]), //heating and industrial oil < star engine, iGen + MEDIUM(I18nUtil.resolveKeyArray("hbmfluid.Trait.Combustible.FuelGrade")[1]), //petroil < diesel generator + HIGH(I18nUtil.resolveKeyArray("hbmfluid.Trait.Combustible.FuelGrade")[2]), //diesel, gasoline < HP engine + AERO(I18nUtil.resolveKeyArray("hbmfluid.Trait.Combustible.FuelGrade")[3]), //kerosene and other light aviation fuels < turbofan + GAS(I18nUtil.resolveKeyArray("hbmfluid.Trait.Combustible.FuelGrade")[4]); //fuel gasses like NG, PG and syngas < gas turbine private String grade; diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Coolable.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Coolable.java index 1bb6d3574..a0aae7d54 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Coolable.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Coolable.java @@ -10,6 +10,7 @@ import com.google.gson.stream.JsonWriter; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; +import com.hbm.util.I18nUtil; import net.minecraft.util.EnumChatFormatting; public class FT_Coolable extends FluidTrait { @@ -42,14 +43,14 @@ public class FT_Coolable extends FluidTrait { @Override public void addInfoHidden(List info) { - info.add(EnumChatFormatting.AQUA + "Thermal capacity: " + heatEnergy + " TU"); + info.add(EnumChatFormatting.AQUA + I18nUtil.resolveKeyArray("hbmfluid.Trait.Coolable",heatEnergy,"")[0]); for(CoolingType type : CoolingType.values()) { double eff = getEfficiency(type); if(eff > 0) { info.add(EnumChatFormatting.AQUA + "[" + type.name + "]"); - info.add(EnumChatFormatting.AQUA + "Efficiency: " + ((int) (eff * 100D)) + "%"); + info.add(EnumChatFormatting.AQUA + I18nUtil.resolveKeyArray("hbmfluid.Trait.Coolable","",((int) (eff * 100D)))[1]); } } } diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Corrosive.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Corrosive.java index 2a459e25c..8387b0e23 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Corrosive.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Corrosive.java @@ -6,6 +6,7 @@ import java.util.List; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; +import com.hbm.util.I18nUtil; import net.minecraft.util.EnumChatFormatting; public class FT_Corrosive extends FluidTrait { @@ -31,9 +32,9 @@ public class FT_Corrosive extends FluidTrait { public void addInfo(List info) { if(isHighlyCorrosive()) - info.add(EnumChatFormatting.GOLD + "[Strongly Corrosive]"); + info.add(EnumChatFormatting.GOLD + I18nUtil.resolveKeyArray("hbmfluid.Trait.Corrosive")[0]); else - info.add(EnumChatFormatting.YELLOW + "[Corrosive]"); + info.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("hbmfluid.Trait.Corrosive")[1]); } @Override diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Flammable.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Flammable.java index 82e309ef9..e2f35ff3c 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Flammable.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Flammable.java @@ -7,6 +7,7 @@ import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; import net.minecraft.util.EnumChatFormatting; public class FT_Flammable extends FluidTrait { @@ -28,10 +29,10 @@ public class FT_Flammable extends FluidTrait { public void addInfo(List info) { super.addInfo(info); - info.add(EnumChatFormatting.YELLOW + "[Flammable]"); + info.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("hbmfluid.Trait.Flammable","")[0]); if(energy > 0) - info.add(EnumChatFormatting.YELLOW + "Provides " + EnumChatFormatting.RED + "" + BobMathUtil.getShortNumber(energy) + "TU " + EnumChatFormatting.YELLOW + "per bucket"); + info.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("hbmfluid.Trait.Flammable",BobMathUtil.getShortNumber(energy))[1]); } @Override diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Heatable.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Heatable.java index c828858b8..7ce3ee4fc 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Heatable.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Heatable.java @@ -6,6 +6,7 @@ import com.google.gson.stream.JsonWriter; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; +import com.hbm.util.I18nUtil; import net.minecraft.util.EnumChatFormatting; import java.io.IOException; @@ -42,14 +43,14 @@ public class FT_Heatable extends FluidTrait { @Override public void addInfoHidden(List info) { - info.add(EnumChatFormatting.AQUA + "Thermal capacity: " + this.getFirstStep().heatReq + " TU"); + info.add(EnumChatFormatting.AQUA + I18nUtil.resolveKeyArray("hbmfluid.Trait.Coolable",this.getFirstStep().heatReq,"")[0]); for(HeatingType type : HeatingType.values()) { double eff = getEfficiency(type); if(eff > 0) { info.add(EnumChatFormatting.AQUA + "[" + type.name + "]"); - info.add(EnumChatFormatting.AQUA + "Efficiency: " + ((int) (eff * 100D)) + "%"); + info.add(EnumChatFormatting.AQUA + I18nUtil.resolveKeyArray("hbmfluid.Trait.Coolable","",((int) (eff * 100D)))[1]); } } } diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_PWRModerator.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_PWRModerator.java index 65386405a..3e5aad50c 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_PWRModerator.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_PWRModerator.java @@ -6,6 +6,7 @@ import java.util.List; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; +import com.hbm.util.I18nUtil; import net.minecraft.util.EnumChatFormatting; public class FT_PWRModerator extends FluidTrait { @@ -22,13 +23,13 @@ public class FT_PWRModerator extends FluidTrait { @Override public void addInfo(List info) { - info.add(EnumChatFormatting.BLUE + "[PWR Flux Multiplier]"); + info.add(EnumChatFormatting.BLUE + I18nUtil.resolveKeyArray("hbmfluid.Trait.PWRModerator","","")[0]); } @Override public void addInfoHidden(List info) { int mult = (int) (multiplier * 100 - 100); - info.add(EnumChatFormatting.BLUE + "Core flux " + (mult >= 0 ? "+" : "") + mult + "%"); + info.add(EnumChatFormatting.BLUE + I18nUtil.resolveKeyArray("hbmfluid.Trait.PWRModerator",(mult >= 0 ? "+" : ""),mult)[1]); } @Override diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Poison.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Poison.java index 335c182cb..39d31bc25 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Poison.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Poison.java @@ -6,6 +6,7 @@ import java.util.List; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; +import com.hbm.util.I18nUtil; import net.minecraft.util.EnumChatFormatting; @Deprecated //use FT_Toxin instead @@ -31,7 +32,7 @@ public class FT_Poison extends FluidTrait { @Override public void addInfoHidden(List info) { - info.add(EnumChatFormatting.GREEN + "[Toxic Fumes]"); + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey("hbmfluid.Trait.Poison")); } @Override public void serializeJSON(JsonWriter writer) throws IOException { diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Toxin.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Toxin.java index fe814219e..b7234584c 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Toxin.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Toxin.java @@ -31,7 +31,7 @@ public class FT_Toxin extends FluidTrait { @Override public void addInfoHidden(List info) { - info.add(EnumChatFormatting.LIGHT_PURPLE + "[Toxin]"); + info.add(EnumChatFormatting.LIGHT_PURPLE + I18nUtil.resolveKey("hbmfluid.Trait.Toxin")); for(ToxinEntry entry : entries) { entry.addInfo(info); diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_VentRadiation.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_VentRadiation.java index 516ef0e81..ef090d9d9 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_VentRadiation.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_VentRadiation.java @@ -8,6 +8,7 @@ import com.google.gson.stream.JsonWriter; import com.hbm.handler.radiation.ChunkRadiationManager; import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.util.I18nUtil; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; @@ -32,7 +33,7 @@ public class FT_VentRadiation extends FluidTrait { @Override public void addInfo(List info) { - info.add(EnumChatFormatting.YELLOW + "[Radioactive]"); + info.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("hbmfluid.Trait.VentRadiation")); } @Override diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FluidTraitSimple.java b/src/main/java/com/hbm/inventory/fluid/trait/FluidTraitSimple.java index d282cea42..19e2c5369 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FluidTraitSimple.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FluidTraitSimple.java @@ -2,63 +2,64 @@ package com.hbm.inventory.fluid.trait; import java.util.List; +import com.hbm.util.I18nUtil; import net.minecraft.util.EnumChatFormatting; public class FluidTraitSimple { public static class FT_Gaseous extends FluidTrait { @Override public void addInfoHidden(List info) { - info.add(EnumChatFormatting.BLUE + "[Gaseous]"); + info.add(EnumChatFormatting.BLUE + I18nUtil.resolveKey("hbmfluid.TraitSimple.Gaseous")); } } /** gaseous at room temperature, for cryogenic hydrogen for example */ public static class FT_Gaseous_ART extends FluidTrait { @Override public void addInfoHidden(List info) { - info.add(EnumChatFormatting.BLUE + "[Gaseous at Room Temperature]"); + info.add(EnumChatFormatting.BLUE + I18nUtil.resolveKey("hbmfluid.TraitSimple.Gaseous_ART")); } } public static class FT_Liquid extends FluidTrait { @Override public void addInfoHidden(List info) { - info.add(EnumChatFormatting.BLUE + "[Liquid]"); + info.add(EnumChatFormatting.BLUE + I18nUtil.resolveKey("hbmfluid.TraitSimple.Liquid")); } } /** to viscous to be sprayed/turned into a mist */ public static class FT_Viscous extends FluidTrait { @Override public void addInfoHidden(List info) { - info.add(EnumChatFormatting.BLUE + "[Viscous]"); + info.add(EnumChatFormatting.BLUE + I18nUtil.resolveKey("hbmfluid.TraitSimple.Viscous")); } } public static class FT_Plasma extends FluidTrait { @Override public void addInfoHidden(List info) { - info.add(EnumChatFormatting.LIGHT_PURPLE + "[Plasma]"); + info.add(EnumChatFormatting.LIGHT_PURPLE + I18nUtil.resolveKey("hbmfluid.TraitSimple.Plasma")); } } public static class FT_Amat extends FluidTrait { @Override public void addInfo(List info) { - info.add(EnumChatFormatting.DARK_RED + "[Antimatter]"); + info.add(EnumChatFormatting.DARK_RED + I18nUtil.resolveKey("hbmfluid.TraitSimple.Amat")); } } public static class FT_LeadContainer extends FluidTrait { @Override public void addInfo(List info) { - info.add(EnumChatFormatting.DARK_RED + "[Requires hazardous material tank to hold]"); + info.add(EnumChatFormatting.DARK_RED + I18nUtil.resolveKey("hbmfluid.TraitSimple.LeadContainer")); } } public static class FT_Delicious extends FluidTrait { @Override public void addInfoHidden(List info) { - info.add(EnumChatFormatting.DARK_GREEN + "[Delicious]"); + info.add(EnumChatFormatting.DARK_GREEN + I18nUtil.resolveKey("hbmfluid.TraitSimple.Delicious")); } } public static class FT_Leaded extends FluidTrait { @Override public void addInfoHidden(List info) { - info.add(EnumChatFormatting.BLUE + "[Leaded Fuel]"); + info.add(EnumChatFormatting.BLUE + I18nUtil.resolveKey("hbmfluid.TraitSimple.Leaded")); } } diff --git a/src/main/java/com/hbm/items/armor/ArmorDNT.java b/src/main/java/com/hbm/items/armor/ArmorDNT.java index 068ae49f1..37e4d6bc3 100644 --- a/src/main/java/com/hbm/items/armor/ArmorDNT.java +++ b/src/main/java/com/hbm/items/armor/ArmorDNT.java @@ -173,7 +173,7 @@ public class ArmorDNT extends ArmorFSBPowered { @SideOnly(Side.CLIENT) public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { - list.add("Charge: " + BobMathUtil.getShortNumber(getCharge(stack)) + " / " + BobMathUtil.getShortNumber(maxPower)); + list.add(I18nUtil.resolveKey("armor.charge",BobMathUtil.getShortNumber(getCharge(stack)),BobMathUtil.getShortNumber(maxPower))); list.add(EnumChatFormatting.GOLD + I18nUtil.resolveKey("armor.fullSetBonus")); diff --git a/src/main/java/com/hbm/items/armor/ArmorFSBPowered.java b/src/main/java/com/hbm/items/armor/ArmorFSBPowered.java index 139df77fe..c5ab83d19 100644 --- a/src/main/java/com/hbm/items/armor/ArmorFSBPowered.java +++ b/src/main/java/com/hbm/items/armor/ArmorFSBPowered.java @@ -5,6 +5,7 @@ import java.util.List; import com.hbm.util.BobMathUtil; import api.hbm.energy.IBatteryItem; +import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.player.EntityPlayer; @@ -31,7 +32,7 @@ public class ArmorFSBPowered extends ArmorFSB implements IBatteryItem { @SideOnly(Side.CLIENT) public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { - list.add("Charge: " + BobMathUtil.getShortNumber(getCharge(stack)) + " / " + BobMathUtil.getShortNumber(maxPower)); + list.add(I18nUtil.resolveKey("armor.charge",BobMathUtil.getShortNumber(getCharge(stack)),BobMathUtil.getShortNumber(maxPower))); super.addInformation(stack, player, list, ext); } diff --git a/src/main/java/com/hbm/items/armor/ItemArmorMod.java b/src/main/java/com/hbm/items/armor/ItemArmorMod.java index 505028648..fac21dec9 100644 --- a/src/main/java/com/hbm/items/armor/ItemArmorMod.java +++ b/src/main/java/com/hbm/items/armor/ItemArmorMod.java @@ -53,7 +53,7 @@ public class ItemArmorMod extends Item { if(boots) list.add(" " + I18nUtil.resolveKey("armorMod.boots")); } - list.add(EnumChatFormatting.DARK_PURPLE + "Slot:"); + list.add(EnumChatFormatting.DARK_PURPLE + I18nUtil.resolveKey("armorMod.slot")); switch(this.type) { case ArmorModHandler.helmet_only: list.add(" " + I18nUtil.resolveKey("armorMod.type.helmet")); break; diff --git a/src/main/java/com/hbm/items/armor/ItemModAuto.java b/src/main/java/com/hbm/items/armor/ItemModAuto.java index 4dd232198..7b64bd4e6 100644 --- a/src/main/java/com/hbm/items/armor/ItemModAuto.java +++ b/src/main/java/com/hbm/items/armor/ItemModAuto.java @@ -6,6 +6,7 @@ import com.hbm.extprop.HbmLivingProps; import com.hbm.handler.ArmorModHandler; import com.hbm.potion.HbmPotion; +import com.hbm.util.I18nUtil; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -21,7 +22,7 @@ public class ItemModAuto extends ItemArmorMod { @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.BLUE + "Imported from Japsterdam."); + list.add(EnumChatFormatting.BLUE + I18nUtil.resolveKey("armorMod.mod.auto")); list.add(""); super.addInformation(stack, player, list, bool); diff --git a/src/main/java/com/hbm/items/armor/ItemModBandaid.java b/src/main/java/com/hbm/items/armor/ItemModBandaid.java index c04751443..7705f9cfb 100644 --- a/src/main/java/com/hbm/items/armor/ItemModBandaid.java +++ b/src/main/java/com/hbm/items/armor/ItemModBandaid.java @@ -4,6 +4,7 @@ import java.util.List; import com.hbm.handler.ArmorModHandler; +import com.hbm.util.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; @@ -18,14 +19,14 @@ public class ItemModBandaid extends ItemArmorMod { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.RED + "3% chance for full heal when damaged"); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("armorMod.mod.bandaid")[0]); list.add(""); super.addInformation(itemstack, player, list, bool); } @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.RED + " " + stack.getDisplayName() + " (3% chance for full heal)"); + list.add(EnumChatFormatting.RED + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.bandaid")[1]); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModBathwater.java b/src/main/java/com/hbm/items/armor/ItemModBathwater.java index c0d077197..595e381c1 100644 --- a/src/main/java/com/hbm/items/armor/ItemModBathwater.java +++ b/src/main/java/com/hbm/items/armor/ItemModBathwater.java @@ -5,6 +5,7 @@ import java.util.List; import com.hbm.handler.ArmorModHandler; import com.hbm.items.ModItems; +import com.hbm.util.I18nUtil; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; @@ -29,7 +30,7 @@ public class ItemModBathwater extends ItemArmorMod { if(this == ModItems.bathwater_mk2) color = "" + (System.currentTimeMillis() % 1000 < 500 ? EnumChatFormatting.GREEN : EnumChatFormatting.YELLOW); - list.add(color + "Inflicts poison on the attacker"); + list.add(color + I18nUtil.resolveKeyArray("armorMod.mod.bathwater")[0]); list.add(""); super.addInformation(itemstack, player, list, bool); } @@ -42,7 +43,7 @@ public class ItemModBathwater extends ItemArmorMod { if(this == ModItems.bathwater_mk2) color = "" + (System.currentTimeMillis() % 1000 < 500 ? EnumChatFormatting.GREEN : EnumChatFormatting.YELLOW); - list.add(color + " " + stack.getDisplayName() + " (Poisons attackers)"); + list.add(color + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.bathwater")[1]); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModCharm.java b/src/main/java/com/hbm/items/armor/ItemModCharm.java index 2d68ff328..a8c52707c 100644 --- a/src/main/java/com/hbm/items/armor/ItemModCharm.java +++ b/src/main/java/com/hbm/items/armor/ItemModCharm.java @@ -6,6 +6,7 @@ import com.hbm.handler.ArmorModHandler; import com.hbm.items.ModItems; import com.hbm.lib.ModDamageSource; +import com.hbm.util.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; @@ -20,16 +21,15 @@ public class ItemModCharm extends ItemArmorMod { @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.AQUA + "You feel blessed."); + list.add(EnumChatFormatting.AQUA + I18nUtil.resolveKey("armorMod.mod.charm")); if(this == ModItems.protection_charm) { - list.add(EnumChatFormatting.AQUA + "Diverts meteors away from the player."); - list.add(EnumChatFormatting.AQUA + "Meteors no longer destroy blocks."); - list.add(EnumChatFormatting.AQUA + "Halves broadcaster damage"); + for(String s : I18nUtil.resolveKeyArray( "armorMod.mod.charm.protection")) + list.add(s); } if(this == ModItems.meteor_charm) { - list.add(EnumChatFormatting.AQUA + "Disables meteorite spawning."); - list.add(EnumChatFormatting.AQUA + "Negates broadcaster damage"); + for(String s : I18nUtil.resolveKeyArray( "armorMod.mod.charm.meteor")) + list.add(s); } super.addInformation(stack, player, list, bool); diff --git a/src/main/java/com/hbm/items/armor/ItemModCladding.java b/src/main/java/com/hbm/items/armor/ItemModCladding.java index a71b8cb28..18d1f5e24 100644 --- a/src/main/java/com/hbm/items/armor/ItemModCladding.java +++ b/src/main/java/com/hbm/items/armor/ItemModCladding.java @@ -5,6 +5,7 @@ import java.util.List; import com.hbm.handler.ArmorModHandler; import com.hbm.items.armor.ItemArmorMod; +import com.hbm.util.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; @@ -20,13 +21,13 @@ public class ItemModCladding extends ItemArmorMod { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.YELLOW + "+" + rad + " rad-resistance"); + list.add(EnumChatFormatting.YELLOW + "+" + rad + I18nUtil.resolveKeyArray("armorMod.mod.cladding")[0]); list.add(""); super.addInformation(itemstack, player, list, bool); } @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.YELLOW + " " + stack.getDisplayName() + " (+" + rad + " radiation resistence)"); + list.add(EnumChatFormatting.YELLOW + " " + stack.getDisplayName() + " (+" + rad + I18nUtil.resolveKeyArray("armorMod.mod.cladding")[1]); } } diff --git a/src/main/java/com/hbm/items/armor/ItemModDefuser.java b/src/main/java/com/hbm/items/armor/ItemModDefuser.java index 48eb2afe9..d540f9f55 100644 --- a/src/main/java/com/hbm/items/armor/ItemModDefuser.java +++ b/src/main/java/com/hbm/items/armor/ItemModDefuser.java @@ -5,6 +5,7 @@ import java.util.List; import com.hbm.handler.ArmorModHandler; import com.hbm.items.ModItems; +import com.hbm.util.I18nUtil; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.ai.EntityAICreeperSwell; import net.minecraft.entity.ai.EntityAITasks.EntityAITaskEntry; @@ -25,14 +26,14 @@ public class ItemModDefuser extends ItemArmorMod { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.YELLOW + "Defuses nearby creepers"); + list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("armorMod.mod.defuser")[0]); list.add(""); super.addInformation(itemstack, player, list, bool); } @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.YELLOW + " " + stack.getDisplayName() + " (Defuses creepers)"); + list.add(EnumChatFormatting.YELLOW + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.defuser")[1]); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModGasmask.java b/src/main/java/com/hbm/items/armor/ItemModGasmask.java index 7c8fd77f6..62b04a129 100644 --- a/src/main/java/com/hbm/items/armor/ItemModGasmask.java +++ b/src/main/java/com/hbm/items/armor/ItemModGasmask.java @@ -40,7 +40,7 @@ public class ItemModGasmask extends ItemArmorMod implements IGasMask { @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.GREEN + "Gas protection"); + list.add(EnumChatFormatting.GREEN + I18nUtil.resolveKeyArray("armorMod.mod.gasmask")[0]); list.add(""); super.addInformation(stack, player, list, bool); @@ -50,7 +50,7 @@ public class ItemModGasmask extends ItemArmorMod implements IGasMask { List haz = getBlacklist(stack, player); if(!haz.isEmpty()) { - list.add(EnumChatFormatting.RED + "Will never protect against:"); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("armorMod.mod.gasmask")[1]); for(HazardClass clazz : haz) { list.add(EnumChatFormatting.DARK_RED + " -" + I18nUtil.resolveKey(clazz.lang)); @@ -61,7 +61,7 @@ public class ItemModGasmask extends ItemArmorMod implements IGasMask { @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.GREEN + " " + stack.getDisplayName() + " (gas protection)"); + list.add(EnumChatFormatting.GREEN + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.gasmask")[2]); ArmorUtil.addGasMaskTooltip(stack, MainRegistry.proxy.me(), list, false); } diff --git a/src/main/java/com/hbm/items/armor/ItemModHealth.java b/src/main/java/com/hbm/items/armor/ItemModHealth.java index 6e757153a..5f3e59fe9 100644 --- a/src/main/java/com/hbm/items/armor/ItemModHealth.java +++ b/src/main/java/com/hbm/items/armor/ItemModHealth.java @@ -6,6 +6,7 @@ import com.google.common.collect.Multimap; import com.hbm.handler.ArmorModHandler; import com.hbm.items.ModItems; +import com.hbm.util.I18nUtil; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.ai.attributes.AttributeModifier; import net.minecraft.entity.player.EntityPlayer; @@ -27,11 +28,11 @@ public class ItemModHealth extends ItemArmorMod { String color = "" + (System.currentTimeMillis() % 1000 < 500 ? EnumChatFormatting.RED : EnumChatFormatting.LIGHT_PURPLE); - list.add(color + "+" + (Math.round(health * 10 / 2) * 0.1) + " health"); + list.add(color + "+" + (Math.round(health * 10 / 2) * 0.1) + I18nUtil.resolveKeyArray("armorMod.mod.health")[0]); list.add(""); if(this == ModItems.black_diamond) { - list.add(EnumChatFormatting.DARK_GRAY + "Nostalgia"); + list.add(EnumChatFormatting.DARK_GRAY + I18nUtil.resolveKeyArray("armorMod.mod.health")[1]); list.add(""); } @@ -43,7 +44,7 @@ public class ItemModHealth extends ItemArmorMod { String color = "" + (System.currentTimeMillis() % 1000 < 500 ? EnumChatFormatting.RED : EnumChatFormatting.LIGHT_PURPLE); - list.add(color + " " + stack.getDisplayName() + " (+" + (Math.round(health * 10 / 2) * 0.1) + " health)"); + list.add(color + " " + stack.getDisplayName() + " (+" + (Math.round(health * 10 / 2) * 0.1) + I18nUtil.resolveKeyArray("armorMod.mod.health")[0]); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModInk.java b/src/main/java/com/hbm/items/armor/ItemModInk.java index f8604c8f2..88da55114 100644 --- a/src/main/java/com/hbm/items/armor/ItemModInk.java +++ b/src/main/java/com/hbm/items/armor/ItemModInk.java @@ -4,6 +4,7 @@ import java.util.List; import com.hbm.handler.ArmorModHandler; +import com.hbm.util.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; @@ -19,15 +20,15 @@ public class ItemModInk extends ItemArmorMod { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.LIGHT_PURPLE + "10% chance to nullify damage"); - list.add(EnumChatFormatting.LIGHT_PURPLE + "Flowers!"); + list.add(EnumChatFormatting.LIGHT_PURPLE + I18nUtil.resolveKeyArray("armorMod.mod.Ink")[0]); + list.add(EnumChatFormatting.LIGHT_PURPLE + I18nUtil.resolveKeyArray("armorMod.mod.Ink")[1]); list.add(""); super.addInformation(itemstack, player, list, bool); } @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.LIGHT_PURPLE + " " + stack.getDisplayName() + " (10% chance to nullify damage)"); + list.add(EnumChatFormatting.LIGHT_PURPLE + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.Ink")[2]); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModInsert.java b/src/main/java/com/hbm/items/armor/ItemModInsert.java index a8f114c95..ae539765d 100644 --- a/src/main/java/com/hbm/items/armor/ItemModInsert.java +++ b/src/main/java/com/hbm/items/armor/ItemModInsert.java @@ -8,6 +8,7 @@ import com.hbm.extprop.HbmLivingProps; import com.hbm.handler.ArmorModHandler; import com.hbm.items.ModItems; +import com.hbm.util.I18nUtil; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.ai.attributes.AttributeModifier; @@ -37,18 +38,18 @@ public class ItemModInsert extends ItemArmorMod { public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { if(damageMod != 1F) - list.add(EnumChatFormatting.RED + (damageMod < 1 ? "-" : "+") + Math.abs(Math.round((1F - damageMod) * 100)) + "% damage"); + list.add(EnumChatFormatting.RED + (damageMod < 1 ? "-" : "+") + Math.abs(Math.round((1F - damageMod) * 100)) + I18nUtil.resolveKeyArray("armorMod.mod.Insert")[0]); if(projectileMod != 1F) - list.add(EnumChatFormatting.YELLOW + "-" + Math.round((1F - projectileMod) * 100) + "% projectile damage"); + list.add(EnumChatFormatting.YELLOW + "-" + Math.round((1F - projectileMod) * 100) + I18nUtil.resolveKeyArray("armorMod.mod.Insert")[1]); if(explosionMod != 1F) - list.add(EnumChatFormatting.YELLOW + "-" + Math.round((1F - explosionMod) * 100) + "% explosion damage"); + list.add(EnumChatFormatting.YELLOW + "-" + Math.round((1F - explosionMod) * 100) + I18nUtil.resolveKeyArray("armorMod.mod.Insert")[2]); if(speed != 1F) - list.add(EnumChatFormatting.BLUE + "-" + Math.round((1F - speed) * 100) + "% speed"); + list.add(EnumChatFormatting.BLUE + "-" + Math.round((1F - speed) * 100) + I18nUtil.resolveKeyArray("armorMod.mod.Insert")[3]); if(this == ModItems.insert_polonium) list.add(EnumChatFormatting.DARK_RED + "+100 RAD/s"); - list.add((stack.getMaxDamage() - stack.getItemDamage()) + "/" + stack.getMaxDamage() + "HP"); + list.add((stack.getMaxDamage() - stack.getItemDamage()) + "/" + stack.getMaxDamage() + I18nUtil.resolveKeyArray("armorMod.mod.Insert")[4]); list.add(""); super.addInformation(stack, player, list, bool); @@ -60,20 +61,20 @@ public class ItemModInsert extends ItemArmorMod { List desc = new ArrayList(); if(damageMod != 1F) - desc.add((damageMod < 1 ? "-" : "+") + Math.abs(Math.round((1F - damageMod) * 100)) + "% dmg"); + desc.add((damageMod < 1 ? "-" : "+") + Math.abs(Math.round((1F - damageMod) * 100)) + I18nUtil.resolveKeyArray("armorMod.mod.Insert")[0]); if(projectileMod != 1F) - desc.add("-" + Math.round((1F - projectileMod) * 100) + "% proj"); + desc.add("-" + Math.round((1F - projectileMod) * 100) + I18nUtil.resolveKeyArray("armorMod.mod.Insert")[1]); if(explosionMod != 1F) - desc.add("-" + Math.round((1F - explosionMod) * 100) + "% exp"); + desc.add("-" + Math.round((1F - explosionMod) * 100) + I18nUtil.resolveKeyArray("armorMod.mod.Insert")[2]); if(explosionMod != 1F) - desc.add("-" + Math.round((1F - speed) * 100) + "% speed"); + desc.add("-" + Math.round((1F - speed) * 100) + I18nUtil.resolveKeyArray("armorMod.mod.Insert")[3]); if(this == ModItems.insert_polonium) desc.add("+100 RAD/s"); String join = String.join(" / ", desc); - list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + " (" + join + " / " + (stack.getMaxDamage() - stack.getItemDamage()) + "HP)"); + list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + " (" + join + " / " + (stack.getMaxDamage() - stack.getItemDamage()) + I18nUtil.resolveKeyArray("armorMod.mod.Insert")[4] + ")"); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModIron.java b/src/main/java/com/hbm/items/armor/ItemModIron.java index 99b7fc753..17b9aa4e8 100644 --- a/src/main/java/com/hbm/items/armor/ItemModIron.java +++ b/src/main/java/com/hbm/items/armor/ItemModIron.java @@ -5,6 +5,7 @@ import java.util.List; import com.google.common.collect.Multimap; import com.hbm.handler.ArmorModHandler; +import com.hbm.util.I18nUtil; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.ai.attributes.AttributeModifier; import net.minecraft.entity.player.EntityPlayer; @@ -20,14 +21,14 @@ public class ItemModIron extends ItemArmorMod { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.WHITE + "+0.5 knockback resistance"); + list.add(EnumChatFormatting.WHITE + I18nUtil.resolveKeyArray("armorMod.mod.Iron")[0]); list.add(""); super.addInformation(itemstack, player, list, bool); } @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.WHITE + " " + stack.getDisplayName() + " (+0.5 knockback resistence)"); + list.add(EnumChatFormatting.WHITE + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.Iron")[1]); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModKnife.java b/src/main/java/com/hbm/items/armor/ItemModKnife.java index 9d61d7e2e..9742a2af4 100644 --- a/src/main/java/com/hbm/items/armor/ItemModKnife.java +++ b/src/main/java/com/hbm/items/armor/ItemModKnife.java @@ -8,6 +8,7 @@ import com.hbm.main.MainRegistry; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.util.I18nUtil; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.SharedMonsterAttributes; @@ -29,11 +30,8 @@ public class ItemModKnife extends ItemArmorMod { @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { - - list.add(EnumChatFormatting.RED + "Pain."); - list.add(""); - list.add(EnumChatFormatting.RED + "Hurts, doesn't it?"); - + for(String s : I18nUtil.resolveKeyArray("armorMod.mod.Knife")) + list.add(EnumChatFormatting.RED + s); list.add(""); super.addInformation(stack, player, list, bool); } diff --git a/src/main/java/com/hbm/items/armor/ItemModLens.java b/src/main/java/com/hbm/items/armor/ItemModLens.java index a9df9cfff..68e27a3a4 100644 --- a/src/main/java/com/hbm/items/armor/ItemModLens.java +++ b/src/main/java/com/hbm/items/armor/ItemModLens.java @@ -11,6 +11,7 @@ import com.hbm.saveddata.SatelliteSavedData; import com.hbm.saveddata.satellites.Satellite; import com.hbm.saveddata.satellites.SatelliteScanner; +import com.hbm.util.I18nUtil; import net.minecraft.block.Block; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; @@ -30,7 +31,7 @@ public class ItemModLens extends ItemArmorMod implements ISatChip { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.AQUA + "Satellite Frequency: " + this.getFreq(itemstack)); + list.add(EnumChatFormatting.AQUA + I18nUtil.resolveKeyArray("armorMod.mod.Lens")[0] + this.getFreq(itemstack)); list.add(""); super.addInformation(itemstack, player, list, bool); @@ -38,7 +39,7 @@ public class ItemModLens extends ItemArmorMod implements ISatChip { @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.AQUA + " " + stack.getDisplayName() + " (Freq: " + getFreq(stack) + ")"); + list.add(EnumChatFormatting.AQUA + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.Lens",getFreq(stack))[1] ); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModLodestone.java b/src/main/java/com/hbm/items/armor/ItemModLodestone.java index 9939244b7..ae7c4039a 100644 --- a/src/main/java/com/hbm/items/armor/ItemModLodestone.java +++ b/src/main/java/com/hbm/items/armor/ItemModLodestone.java @@ -4,6 +4,7 @@ import java.util.List; import com.hbm.handler.ArmorModHandler; +import com.hbm.util.I18nUtil; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; @@ -23,15 +24,15 @@ public class ItemModLodestone extends ItemArmorMod { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.DARK_GRAY + "Attracts nearby items"); - list.add(EnumChatFormatting.DARK_GRAY + "Item attraction range: " + range); + list.add(EnumChatFormatting.DARK_GRAY + I18nUtil.resolveKeyArray("armorMod.mod.Lodestone")[0]); + list.add(EnumChatFormatting.DARK_GRAY + I18nUtil.resolveKeyArray("armorMod.mod.Lodestone",range)[1]); list.add(""); super.addInformation(itemstack, player, list, bool); } @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.DARK_GRAY + " " + stack.getDisplayName() + " (Magnetic range: " + range + ")"); + list.add(EnumChatFormatting.DARK_GRAY + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.Lodestone",range)[2] ); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModMilk.java b/src/main/java/com/hbm/items/armor/ItemModMilk.java index 1985c6b17..455d449b8 100644 --- a/src/main/java/com/hbm/items/armor/ItemModMilk.java +++ b/src/main/java/com/hbm/items/armor/ItemModMilk.java @@ -8,6 +8,7 @@ import java.util.List; import com.hbm.handler.ArmorModHandler; import com.hbm.potion.HbmPotion; +import com.hbm.util.I18nUtil; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -24,14 +25,14 @@ public class ItemModMilk extends ItemArmorMod { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.WHITE + "Removes bad potion effects"); + list.add(EnumChatFormatting.WHITE + I18nUtil.resolveKeyArray("armorMod.mod.Milk")[0]); list.add(""); super.addInformation(itemstack, player, list, bool); } @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.WHITE + " " + stack.getDisplayName() + " (Removes bad potion effects)"); + list.add(EnumChatFormatting.WHITE + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.Milk")[1]); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModMorningGlory.java b/src/main/java/com/hbm/items/armor/ItemModMorningGlory.java index b33bbfa30..625db4ef3 100644 --- a/src/main/java/com/hbm/items/armor/ItemModMorningGlory.java +++ b/src/main/java/com/hbm/items/armor/ItemModMorningGlory.java @@ -4,6 +4,7 @@ import java.util.List; import com.hbm.handler.ArmorModHandler; +import com.hbm.util.I18nUtil; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -21,14 +22,14 @@ public class ItemModMorningGlory extends ItemArmorMod { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.LIGHT_PURPLE + "5% chance to apply resistance when hit, wither immunity"); + list.add(EnumChatFormatting.LIGHT_PURPLE + I18nUtil.resolveKeyArray("armorMod.mod.MorningGlory")[0]); list.add(""); super.addInformation(itemstack, player, list, bool); } @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.LIGHT_PURPLE + " " + stack.getDisplayName() + " (5% for resistance, wither immunity)"); + list.add(EnumChatFormatting.LIGHT_PURPLE + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.MorningGlory")[1]); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModObsidian.java b/src/main/java/com/hbm/items/armor/ItemModObsidian.java index 2227c1dd1..16b5726a8 100644 --- a/src/main/java/com/hbm/items/armor/ItemModObsidian.java +++ b/src/main/java/com/hbm/items/armor/ItemModObsidian.java @@ -4,6 +4,7 @@ import java.util.List; import com.hbm.handler.ArmorModHandler; +import com.hbm.util.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; @@ -16,13 +17,13 @@ public class ItemModObsidian extends ItemArmorMod { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.DARK_PURPLE + "Makes dropped armor indestructible"); + list.add(EnumChatFormatting.DARK_PURPLE + I18nUtil.resolveKeyArray("armorMod.mod.Obsidian")[0]); list.add(""); super.addInformation(itemstack, player, list, bool); } @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + " (Item indestructible)"); + list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.Obsidian")[1]); } } diff --git a/src/main/java/com/hbm/items/armor/ItemModPads.java b/src/main/java/com/hbm/items/armor/ItemModPads.java index 9e7d62556..39234d5d2 100644 --- a/src/main/java/com/hbm/items/armor/ItemModPads.java +++ b/src/main/java/com/hbm/items/armor/ItemModPads.java @@ -5,6 +5,7 @@ import java.util.List; import com.hbm.handler.ArmorModHandler; import com.hbm.items.ModItems; +import com.hbm.util.I18nUtil; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -25,10 +26,10 @@ public class ItemModPads extends ItemArmorMod { public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { if(damageMod != 1F) - list.add(EnumChatFormatting.RED + "-" + Math.round((1F - damageMod) * 100) + "% fall damage"); + list.add(EnumChatFormatting.RED + "-" + Math.round((1F - damageMod) * 100) + I18nUtil.resolveKeyArray("armorMod.mod.Pads")[0]); if(this == ModItems.pads_static) - list.add(EnumChatFormatting.DARK_PURPLE + "Passively charges electric armor when walking"); + list.add(EnumChatFormatting.DARK_PURPLE + I18nUtil.resolveKeyArray("armorMod.mod.Pads")[1]); list.add(""); super.addInformation(itemstack, player, list, bool); @@ -38,9 +39,9 @@ public class ItemModPads extends ItemArmorMod { public void addDesc(List list, ItemStack stack, ItemStack armor) { if(this == ModItems.pads_static) - list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + " (-" + Math.round((1F - damageMod) * 100) + "% fall dmg / passive charge)"); + list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + " (-" + Math.round((1F - damageMod) * 100) + I18nUtil.resolveKeyArray("armorMod.mod.Pads")[2]); else - list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + " (-" + Math.round((1F - damageMod) * 100) + "% fall dmg)"); + list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + " (-" + Math.round((1F - damageMod) * 100) + I18nUtil.resolveKeyArray("armorMod.mod.Pads")[0]); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModPolish.java b/src/main/java/com/hbm/items/armor/ItemModPolish.java index b35e13480..96c803442 100644 --- a/src/main/java/com/hbm/items/armor/ItemModPolish.java +++ b/src/main/java/com/hbm/items/armor/ItemModPolish.java @@ -4,6 +4,7 @@ import java.util.List; import com.hbm.handler.ArmorModHandler; +import com.hbm.util.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; @@ -18,14 +19,14 @@ public class ItemModPolish extends ItemArmorMod { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.BLUE + "5% chance to nullify damage"); + list.add(EnumChatFormatting.BLUE + I18nUtil.resolveKeyArray("armorMod.mod.Polish")[0]); list.add(""); super.addInformation(itemstack, player, list, bool); } @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.BLUE + " " + stack.getDisplayName() + " (5% chance to nullify damage)"); + list.add(EnumChatFormatting.BLUE + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.Polish")[1]); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModQuartz.java b/src/main/java/com/hbm/items/armor/ItemModQuartz.java index 9179681b2..90bcf6833 100644 --- a/src/main/java/com/hbm/items/armor/ItemModQuartz.java +++ b/src/main/java/com/hbm/items/armor/ItemModQuartz.java @@ -5,6 +5,7 @@ import java.util.List; import com.hbm.extprop.HbmLivingProps; import com.hbm.handler.ArmorModHandler; +import com.hbm.util.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; @@ -19,14 +20,14 @@ public class ItemModQuartz extends ItemArmorMod { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.DARK_GRAY + "Taking damage removes 10 RAD"); + list.add(EnumChatFormatting.DARK_GRAY + I18nUtil.resolveKeyArray("armorMod.mod.Quartz")[0]); list.add(""); super.addInformation(itemstack, player, list, bool); } @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.DARK_GRAY + " " + stack.getDisplayName() + " (-10 RAD when hit)"); + list.add(EnumChatFormatting.DARK_GRAY + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.Quartz")[1]); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModRevive.java b/src/main/java/com/hbm/items/armor/ItemModRevive.java index 57519ed89..055017430 100644 --- a/src/main/java/com/hbm/items/armor/ItemModRevive.java +++ b/src/main/java/com/hbm/items/armor/ItemModRevive.java @@ -5,6 +5,7 @@ import java.util.List; import com.hbm.handler.ArmorModHandler; import com.hbm.items.ModItems; +import com.hbm.util.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; @@ -20,23 +21,19 @@ public class ItemModRevive extends ItemArmorMod { public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { if(this == ModItems.scrumpy) { - list.add(EnumChatFormatting.GOLD + "But how did you survive?"); - list.add(EnumChatFormatting.RED + "I was drunk."); + list.add(EnumChatFormatting.GOLD + I18nUtil.resolveKeyArray("armorMod.mod.Revive.scrumpy")[0]); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("armorMod.mod.Revive.scrumpy")[1]); } if(this == ModItems.wild_p) { - list.add(EnumChatFormatting.DARK_GRAY + "Explosive " + EnumChatFormatting.RED + "Reactive " + EnumChatFormatting.DARK_GRAY + "Plot " + EnumChatFormatting.RED + "Armor"); + list.add(I18nUtil.resolveKey("armorMod.mod.Revive.wild_p")); } if(this == ModItems.fabsols_vodka) { - list.add(EnumChatFormatting.ITALIC + "In the news:"); - list.add(EnumChatFormatting.RED + "" + EnumChatFormatting.BOLD + "Man literally too angry to die."); - list.add(""); - list.add(EnumChatFormatting.ITALIC + "\"I ain't got time to die\" says local"); - list.add(EnumChatFormatting.ITALIC + "man after ripping the physical manifestation"); - list.add(EnumChatFormatting.ITALIC + "of disaster itself in half."); + for(String s : I18nUtil.resolveKeyArray("armorMod.mod.Revive.fabsols_vodka")) + list.add(EnumChatFormatting.ITALIC + s); } list.add(""); - list.add(EnumChatFormatting.GOLD + "" + (stack.getMaxDamage() - stack.getItemDamage()) + " revives left"); + list.add(EnumChatFormatting.GOLD + "" + (stack.getMaxDamage() - stack.getItemDamage()) + I18nUtil.resolveKey("armorMod.mod.Revive")); list.add(""); super.addInformation(stack, player, list, bool); } @@ -44,6 +41,6 @@ public class ItemModRevive extends ItemArmorMod { @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.GOLD + " " + stack.getDisplayName() + " (" + (stack.getMaxDamage() - stack.getItemDamage()) + " revives left)"); + list.add(EnumChatFormatting.GOLD + " " + stack.getDisplayName() + " (" + (stack.getMaxDamage() - stack.getItemDamage()) + I18nUtil.resolveKey("armorMod.mod.Revive") + ")"); } } diff --git a/src/main/java/com/hbm/items/armor/ItemModSensor.java b/src/main/java/com/hbm/items/armor/ItemModSensor.java index cfdec7ff9..4ab0619d2 100644 --- a/src/main/java/com/hbm/items/armor/ItemModSensor.java +++ b/src/main/java/com/hbm/items/armor/ItemModSensor.java @@ -5,6 +5,7 @@ import java.util.List; import com.hbm.blocks.ModBlocks; import com.hbm.handler.ArmorModHandler; +import com.hbm.util.I18nUtil; import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; @@ -22,15 +23,15 @@ public class ItemModSensor extends ItemArmorMod { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.YELLOW + "Beeps near hazardous gasses"); - list.add(EnumChatFormatting.YELLOW + "Works in the inventory or when applied to armor"); + list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("armorMod.mod.Sensor")[0]); + list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("armorMod.mod.Sensor")[1]); list.add(""); super.addInformation(itemstack, player, list, bool); } @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.YELLOW + " " + stack.getDisplayName() + " (Detects gasses)"); + list.add(EnumChatFormatting.YELLOW + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.Sensor")[2]); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModSerum.java b/src/main/java/com/hbm/items/armor/ItemModSerum.java index 29988e37b..3d9d91049 100644 --- a/src/main/java/com/hbm/items/armor/ItemModSerum.java +++ b/src/main/java/com/hbm/items/armor/ItemModSerum.java @@ -4,6 +4,7 @@ import java.util.List; import com.hbm.handler.ArmorModHandler; +import com.hbm.util.I18nUtil; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -20,14 +21,14 @@ public class ItemModSerum extends ItemArmorMod { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.GREEN + "Cures poison and gives strength"); + list.add(EnumChatFormatting.GREEN + I18nUtil.resolveKeyArray("armorMod.mod.Serum")[0]); list.add(""); super.addInformation(itemstack, player, list, bool); } @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.BLUE + " " + stack.getDisplayName() + " (replaces poison with strength)"); + list.add(EnumChatFormatting.BLUE + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.Serum")[1]); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModServos.java b/src/main/java/com/hbm/items/armor/ItemModServos.java index cb07d46f3..a014d2305 100644 --- a/src/main/java/com/hbm/items/armor/ItemModServos.java +++ b/src/main/java/com/hbm/items/armor/ItemModServos.java @@ -6,6 +6,7 @@ import com.google.common.collect.Multimap; import com.hbm.handler.ArmorModHandler; import com.hbm.items.ModItems; +import com.hbm.util.I18nUtil; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.ai.attributes.AttributeModifier; @@ -26,12 +27,12 @@ public class ItemModServos extends ItemArmorMod { public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { if(this == ModItems.servo_set) { - list.add(EnumChatFormatting.DARK_PURPLE + "Chestplate: Haste I / Damage +50%"); - list.add(EnumChatFormatting.DARK_PURPLE + "Leggings: Speed +25% / Jump II"); + list.add(EnumChatFormatting.DARK_PURPLE + I18nUtil.resolveKeyArray("armorMod.mod.Servos")[0]); + list.add(EnumChatFormatting.DARK_PURPLE + I18nUtil.resolveKeyArray("armorMod.mod.Servos")[1]); } if(this == ModItems.servo_set_desh) { - list.add(EnumChatFormatting.DARK_PURPLE + "Chestplate: Haste III / Damage +150%"); - list.add(EnumChatFormatting.DARK_PURPLE + "Leggings: Speed +50% / Jump III"); + list.add(EnumChatFormatting.DARK_PURPLE + I18nUtil.resolveKeyArray("armorMod.mod.Servos.desh")[0]); + list.add(EnumChatFormatting.DARK_PURPLE + I18nUtil.resolveKeyArray("armorMod.mod.Servos.desh")[1]); } list.add(""); @@ -46,20 +47,20 @@ public class ItemModServos extends ItemArmorMod { if(item.armorType == 1) { if(this == ModItems.servo_set) { - list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + " (Haste I / Damage +50%)"); + list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.Servos")[2]); } if(this == ModItems.servo_set_desh) { - list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + " (Haste III / Damage +150%)"); + list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.Servos.desh")[2]); } } if(item.armorType == 2) { if(this == ModItems.servo_set) { - list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + " (Speed +25% / Jump II)"); + list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.Servos")[3]); } if(this == ModItems.servo_set_desh) { - list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + " (Speed +50% / Jump III)"); + list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.Servos.desh")[3]); } } } diff --git a/src/main/java/com/hbm/items/armor/ItemModShackles.java b/src/main/java/com/hbm/items/armor/ItemModShackles.java index 306dd3c2a..aad9cfcce 100644 --- a/src/main/java/com/hbm/items/armor/ItemModShackles.java +++ b/src/main/java/com/hbm/items/armor/ItemModShackles.java @@ -4,6 +4,7 @@ import java.util.List; import com.hbm.handler.ArmorModHandler; +import com.hbm.util.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; @@ -17,12 +18,12 @@ public class ItemModShackles extends ItemArmorMod { @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.RED + "You will speak when I ask you to."); - list.add(EnumChatFormatting.RED + "You will eat when I tell you to."); - list.add(EnumChatFormatting.RED + "" + EnumChatFormatting.BOLD + "You will die when I allow you to."); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("armorMod.mod.Shackles")[0]); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("armorMod.mod.Shackles")[1]); + list.add(EnumChatFormatting.RED + "" + EnumChatFormatting.BOLD + I18nUtil.resolveKeyArray("armorMod.mod.Shackles")[2]); list.add(""); - list.add(EnumChatFormatting.GOLD + "∞ revives left"); + list.add(EnumChatFormatting.GOLD + I18nUtil.resolveKeyArray("armorMod.mod.Shackles")[3]); list.add(""); super.addInformation(stack, player, list, bool); } @@ -30,6 +31,6 @@ public class ItemModShackles extends ItemArmorMod { @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.GOLD + " " + stack.getDisplayName() + " (∞ revives left)"); + list.add(EnumChatFormatting.GOLD + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.Shackles")[4]); } } diff --git a/src/main/java/com/hbm/items/armor/ItemModTesla.java b/src/main/java/com/hbm/items/armor/ItemModTesla.java index b09a37770..cfddd60ea 100644 --- a/src/main/java/com/hbm/items/armor/ItemModTesla.java +++ b/src/main/java/com/hbm/items/armor/ItemModTesla.java @@ -7,6 +7,7 @@ import com.hbm.handler.ArmorModHandler; import com.hbm.render.model.ModelBackTesla; import com.hbm.tileentity.machine.TileEntityTesla; +import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.model.ModelBiped; @@ -30,14 +31,14 @@ public class ItemModTesla extends ItemArmorMod { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.YELLOW + "Zaps nearby entities (requires full electric set)"); + list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("armorMod.mod.Tesla")[0]); list.add(""); super.addInformation(itemstack, player, list, bool); } @SideOnly(Side.CLIENT) public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.YELLOW + stack.getDisplayName() + " (zaps nearby entities)"); + list.add(EnumChatFormatting.YELLOW + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.Tesla")[1]); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModTwoKick.java b/src/main/java/com/hbm/items/armor/ItemModTwoKick.java index a93ab9574..f647e509f 100644 --- a/src/main/java/com/hbm/items/armor/ItemModTwoKick.java +++ b/src/main/java/com/hbm/items/armor/ItemModTwoKick.java @@ -4,6 +4,7 @@ import java.util.List; import com.hbm.handler.ArmorModHandler; +import com.hbm.util.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; @@ -17,14 +18,14 @@ public class ItemModTwoKick extends ItemArmorMod { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.ITALIC + "\"I've had worse\""); - list.add(EnumChatFormatting.YELLOW + "Punches fire 12 gauge shells"); + list.add(EnumChatFormatting.ITALIC + I18nUtil.resolveKeyArray("armorMod.mod.TwoKick")[0]); + list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("armorMod.mod.TwoKick")[1]); list.add(""); super.addInformation(itemstack, player, list, bool); } @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.YELLOW + " " + stack.getDisplayName() + " (Shotgun punches)"); + list.add(EnumChatFormatting.YELLOW + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.TwoKick")[2]); } } diff --git a/src/main/java/com/hbm/items/armor/ItemModV1.java b/src/main/java/com/hbm/items/armor/ItemModV1.java index bb5d8a3a6..e7e67f8d3 100644 --- a/src/main/java/com/hbm/items/armor/ItemModV1.java +++ b/src/main/java/com/hbm/items/armor/ItemModV1.java @@ -7,6 +7,7 @@ import com.google.common.collect.Multimap; import com.hbm.handler.ArmorModHandler; import com.hbm.interfaces.IArmorModDash; +import com.hbm.util.I18nUtil; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.ai.attributes.AttributeModifier; import net.minecraft.entity.player.EntityPlayer; @@ -31,14 +32,14 @@ public class ItemModV1 extends ItemArmorMod implements IArmorModDash { @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.RED + "BLOOD IS FUEL"); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("armorMod.mod.V1")[0]); list.add(""); super.addInformation(stack, player, list, bool); } @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.RED + " " + stack.getDisplayName() + " (BLOOD IS FUEL)"); + list.add(EnumChatFormatting.RED + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.V1")[1]); } public int getDashes() { diff --git a/src/main/java/com/hbm/items/armor/ItemModWD40.java b/src/main/java/com/hbm/items/armor/ItemModWD40.java index b01f48217..ace751d25 100644 --- a/src/main/java/com/hbm/items/armor/ItemModWD40.java +++ b/src/main/java/com/hbm/items/armor/ItemModWD40.java @@ -6,6 +6,7 @@ import com.google.common.collect.Multimap; import com.hbm.handler.ArmorModHandler; import com.hbm.main.MainRegistry; +import com.hbm.util.I18nUtil; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.ai.attributes.AttributeModifier; @@ -27,7 +28,7 @@ public class ItemModWD40 extends ItemArmorMod { String color = "" + (System.currentTimeMillis() % 1000 < 500 ? EnumChatFormatting.BLUE : EnumChatFormatting.YELLOW); - list.add(color + "Highly reduces damage taken by armor, +2 HP"); + list.add(color + I18nUtil.resolveKeyArray("armorMod.mod.WD40")[0]); list.add(""); super.addInformation(itemstack, player, list, bool); } @@ -37,7 +38,7 @@ public class ItemModWD40 extends ItemArmorMod { String color = "" + (System.currentTimeMillis() % 1000 < 500 ? EnumChatFormatting.BLUE : EnumChatFormatting.YELLOW); - list.add(color + " " + stack.getDisplayName() + " (-80% armor wear / +2 HP)"); + list.add(color + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.WD40")[1]); } @Override diff --git a/src/main/java/com/hbm/items/armor/JetpackBase.java b/src/main/java/com/hbm/items/armor/JetpackBase.java index e5701e3d8..ff96db4cc 100644 --- a/src/main/java/com/hbm/items/armor/JetpackBase.java +++ b/src/main/java/com/hbm/items/armor/JetpackBase.java @@ -8,6 +8,7 @@ import com.hbm.render.model.ModelJetPack; import com.hbm.util.ArmorUtil; import api.hbm.fluid.IFillableItem; +import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.Minecraft; @@ -40,7 +41,7 @@ public abstract class JetpackBase extends ItemArmorMod implements IFillableItem list.add(EnumChatFormatting.LIGHT_PURPLE + fuel.getLocalizedName() + ": " + this.getFuel(itemstack) + "mB / " + this.maxFuel + "mB"); list.add(""); super.addInformation(itemstack, player, list, bool); - list.add(EnumChatFormatting.GOLD + "Can be worn on its own!"); + list.add(EnumChatFormatting.GOLD + I18nUtil.resolveKey("item.jetpack.desc")); } @Override diff --git a/src/main/java/com/hbm/items/armor/JetpackBooster.java b/src/main/java/com/hbm/items/armor/JetpackBooster.java index 09b90947b..a7a0084ec 100644 --- a/src/main/java/com/hbm/items/armor/JetpackBooster.java +++ b/src/main/java/com/hbm/items/armor/JetpackBooster.java @@ -7,6 +7,7 @@ import com.hbm.inventory.fluid.FluidType; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.util.I18nUtil; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -14,6 +15,7 @@ import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.Vec3; import net.minecraft.world.World; @@ -67,9 +69,8 @@ public class JetpackBooster extends JetpackBase { @SideOnly(Side.CLIENT) public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { - - list.add("High-powered vectorized jetpack."); - list.add("Highly increased fuel consumption."); + for(String s : I18nUtil.resolveKeyArray("item.jetpack_boost.desc")) + list.add(s); super.addInformation(stack, player, list, ext); } diff --git a/src/main/java/com/hbm/items/armor/JetpackBreak.java b/src/main/java/com/hbm/items/armor/JetpackBreak.java index 340fd2f09..92da43169 100644 --- a/src/main/java/com/hbm/items/armor/JetpackBreak.java +++ b/src/main/java/com/hbm/items/armor/JetpackBreak.java @@ -7,6 +7,7 @@ import com.hbm.inventory.fluid.FluidType; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.util.I18nUtil; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -77,9 +78,8 @@ public class JetpackBreak extends JetpackBase { @SideOnly(Side.CLIENT) public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { - list.add("Regular jetpack that will automatically hover mid-air."); - list.add("Sneaking will stop hover mode."); - list.add("Hover mode will consume less fuel and increase air-mobility."); + for(String s : I18nUtil.resolveKeyArray("item.jetpack_break.desc")) + list.add(s); super.addInformation(stack, player, list, ext); } diff --git a/src/main/java/com/hbm/items/armor/JetpackRegular.java b/src/main/java/com/hbm/items/armor/JetpackRegular.java index cbf04933b..5c3da193b 100644 --- a/src/main/java/com/hbm/items/armor/JetpackRegular.java +++ b/src/main/java/com/hbm/items/armor/JetpackRegular.java @@ -7,6 +7,7 @@ import com.hbm.inventory.fluid.FluidType; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.util.I18nUtil; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -56,7 +57,7 @@ public class JetpackRegular extends JetpackBase { @SideOnly(Side.CLIENT) public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { - list.add("Regular jetpack for simple upwards momentum."); + list.add(I18nUtil.resolveKey("item.jetpack_fly.desc")); super.addInformation(stack, player, list, ext); } diff --git a/src/main/java/com/hbm/items/armor/JetpackVectorized.java b/src/main/java/com/hbm/items/armor/JetpackVectorized.java index d95312f80..d878a4d6d 100644 --- a/src/main/java/com/hbm/items/armor/JetpackVectorized.java +++ b/src/main/java/com/hbm/items/armor/JetpackVectorized.java @@ -7,6 +7,7 @@ import com.hbm.inventory.fluid.FluidType; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.util.I18nUtil; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -68,8 +69,8 @@ public class JetpackVectorized extends JetpackBase { @SideOnly(Side.CLIENT) public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { - list.add("High-mobility jetpack."); - list.add("Higher fuel consumption."); + for(String s : I18nUtil.resolveKeyArray("item.jetpack_vector.desc")) + list.add(s); super.addInformation(stack, player, list, ext); } diff --git a/src/main/java/com/hbm/items/block/ItemBlockBlastInfo.java b/src/main/java/com/hbm/items/block/ItemBlockBlastInfo.java index 4ded08d51..a278ad15d 100644 --- a/src/main/java/com/hbm/items/block/ItemBlockBlastInfo.java +++ b/src/main/java/com/hbm/items/block/ItemBlockBlastInfo.java @@ -2,6 +2,7 @@ package com.hbm.items.block; import java.util.List; +import com.hbm.util.I18nUtil; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; @@ -25,6 +26,6 @@ public class ItemBlockBlastInfo extends ItemBlockBase { if(block == null) return; - list.add(EnumChatFormatting.GOLD + "Blast Resistance: " + block.getExplosionResistance(null)); + list.add(EnumChatFormatting.GOLD + I18nUtil.resolveKey("desc.block.blastinfo", block.getExplosionResistance(null))); } } diff --git a/src/main/java/com/hbm/items/block/ItemBlockLore.java b/src/main/java/com/hbm/items/block/ItemBlockLore.java index 6d26836e0..24d86b52c 100644 --- a/src/main/java/com/hbm/items/block/ItemBlockLore.java +++ b/src/main/java/com/hbm/items/block/ItemBlockLore.java @@ -5,6 +5,7 @@ import java.util.List; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.RedBarrel; +import com.hbm.util.I18nUtil; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.EnumRarity; @@ -21,35 +22,21 @@ public class ItemBlockLore extends ItemBlockBase { super.addInformation(itemstack, player, list, bool); if(this.field_150939_a instanceof RedBarrel) { - list.add("Static fluid barrel"); + list.add(I18nUtil.resolveKey("tile.red_barrel.desc")); } if(this.field_150939_a == ModBlocks.meteor_battery) { - list.add("Provides infinite charge to tesla coils"); + list.add(I18nUtil.resolveKey("tile.meteor_battery.desc")); } if(this.field_150939_a == ModBlocks.ore_oil) { - list.add("You weren't supposed to mine that."); - list.add("Come on, get a derrick you doofus."); + for(String s : I18nUtil.resolveKeyArray("tile.ore_oil.desc")) + list.add(s); } if(this.field_150939_a == ModBlocks.gravel_diamond) { - list.add("There is some kind of joke here,"); - list.add("but I can't quite tell what it is."); - list.add(""); - list.add("Update, 2020-07-04:"); - list.add("We deny any implications of a joke on"); - list.add("the basis that it was so severely unfunny"); - list.add("that people started stabbing their eyes out."); - list.add(""); - list.add("Update, 2020-17-04:"); - list.add("As it turns out, \"Diamond Gravel\" was"); - list.add("never really a thing, rendering what might"); - list.add("have been a joke as totally nonsensical."); - list.add("We apologize for getting your hopes up with"); - list.add("this non-joke that hasn't been made."); - list.add(""); - list.add("i added an item for a joke that isn't even here, what am i, stupid? can't even tell the difference between gravel and a gavel, how did i not forget how to breathe yet?"); + for(String s : I18nUtil.resolveKeyArray("tile.gravel_diamond.desc")) + list.add(s); } } diff --git a/src/main/java/com/hbm/items/block/ItemCustomMachine.java b/src/main/java/com/hbm/items/block/ItemCustomMachine.java index 61b1cf00c..b1c1199ad 100644 --- a/src/main/java/com/hbm/items/block/ItemCustomMachine.java +++ b/src/main/java/com/hbm/items/block/ItemCustomMachine.java @@ -5,6 +5,7 @@ import java.util.List; import com.hbm.config.CustomMachineConfigJSON; import com.hbm.config.CustomMachineConfigJSON.MachineConfiguration; +import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; @@ -37,7 +38,7 @@ public class ItemCustomMachine extends ItemBlock { MachineConfiguration conf = CustomMachineConfigJSON.niceList.get(id); if(conf != null) { - return conf.localizedName; + return (I18nUtil.resolveKey("tile.cm_" + conf.unlocalizedName + ".name").startsWith("tile.cm_")) ? conf.localizedName : I18nUtil.resolveKey("tile.cm_" + conf.unlocalizedName + ".name"); } } diff --git a/src/main/java/com/hbm/items/bomb/ItemFleija.java b/src/main/java/com/hbm/items/bomb/ItemFleija.java index d9424f67e..0ef739264 100644 --- a/src/main/java/com/hbm/items/bomb/ItemFleija.java +++ b/src/main/java/com/hbm/items/bomb/ItemFleija.java @@ -4,6 +4,7 @@ import java.util.List; import com.hbm.items.ModItems; +import com.hbm.util.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.EnumRarity; import net.minecraft.item.Item; @@ -14,8 +15,8 @@ public class ItemFleija extends Item { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add("Used in:"); - list.add("F.L.E.I.J.A."); + for(String s : I18nUtil.resolveKeyArray( "tile.nuke_fleija.desc")) + list.add(s); super.addInformation(itemstack, player, list, bool); } diff --git a/src/main/java/com/hbm/items/bomb/ItemMissileShuttle.java b/src/main/java/com/hbm/items/bomb/ItemMissileShuttle.java index edbcbc693..707be6ba1 100644 --- a/src/main/java/com/hbm/items/bomb/ItemMissileShuttle.java +++ b/src/main/java/com/hbm/items/bomb/ItemMissileShuttle.java @@ -2,6 +2,7 @@ package com.hbm.items.bomb; import java.util.List; +import com.hbm.util.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -10,12 +11,7 @@ public class ItemMissileShuttle extends Item { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add("Tonite, on bo''om gear:"); - list.add("James huffs leaded gasoline and"); - list.add("goes insane, Richard spends the"); - list.add("entire budget on a broken .PNG,"); - list.add("And I forget to set the infinite"); - list.add("Water tanks on our RBMK to flow"); - list.add("out, blowing up our entire base"); + for(String s : I18nUtil.resolveKeyArray( "item.missile_shuttle.desc")) + list.add(s); } } \ No newline at end of file diff --git a/src/main/java/com/hbm/items/bomb/ItemN2.java b/src/main/java/com/hbm/items/bomb/ItemN2.java index c837fee78..f1a5ce766 100644 --- a/src/main/java/com/hbm/items/bomb/ItemN2.java +++ b/src/main/java/com/hbm/items/bomb/ItemN2.java @@ -2,17 +2,19 @@ package com.hbm.items.bomb; import java.util.List; +import com.hbm.util.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; public class ItemN2 extends Item { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add("Used in:"); - list.add("N² Mine"); + for(String s : I18nUtil.resolveKeyArray( "tile.nuke_n2.desc")) + list.add(s); } } diff --git a/src/main/java/com/hbm/items/bomb/ItemPrototypeBlock.java b/src/main/java/com/hbm/items/bomb/ItemPrototypeBlock.java index 6335866f3..53a79c575 100644 --- a/src/main/java/com/hbm/items/bomb/ItemPrototypeBlock.java +++ b/src/main/java/com/hbm/items/bomb/ItemPrototypeBlock.java @@ -2,6 +2,7 @@ package com.hbm.items.bomb; import java.util.List; +import com.hbm.util.I18nUtil; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemBlock; @@ -16,10 +17,8 @@ public class ItemPrototypeBlock extends ItemBlock { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add("It didn't have to be like this."); - list.add(""); - list.add("You monster."); - + for(String s : I18nUtil.resolveKeyArray( "tile.nuke_prototype.desc")) + list.add(s); /*list.add("In memory of Euphemia."); list.add(""); list.add("Rest in spaghetti, never forgetti.");*/ diff --git a/src/main/java/com/hbm/items/bomb/ItemSolinium.java b/src/main/java/com/hbm/items/bomb/ItemSolinium.java index a04321ecb..01776fa26 100644 --- a/src/main/java/com/hbm/items/bomb/ItemSolinium.java +++ b/src/main/java/com/hbm/items/bomb/ItemSolinium.java @@ -2,6 +2,7 @@ package com.hbm.items.bomb; import java.util.List; +import com.hbm.util.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -11,8 +12,8 @@ public class ItemSolinium extends Item { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add("Used in:"); - list.add("Solinium Bomb"); + for(String s : I18nUtil.resolveKeyArray( "tile.nuke_solinium.desc")) + list.add(s); super.addInformation(itemstack, player, list, bool); } } diff --git a/src/main/java/com/hbm/items/food/ItemLemon.java b/src/main/java/com/hbm/items/food/ItemLemon.java index 25bb74a9e..b2d332c51 100644 --- a/src/main/java/com/hbm/items/food/ItemLemon.java +++ b/src/main/java/com/hbm/items/food/ItemLemon.java @@ -6,6 +6,7 @@ import com.hbm.items.ModItems; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.util.I18nUtil; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Items; @@ -30,72 +31,57 @@ public class ItemLemon extends ItemFood { public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { if(this == ModItems.lemon) { - list.add("Eh, good enough."); + list.add(I18nUtil.resolveKey("item.lemon.desc")); } if(this == ModItems.definitelyfood) { - list.add("A'right, I got sick and tired of"); - list.add("having to go out, kill things just"); - list.add("to get food and not die, so here is "); - list.add("my absolutely genius solution:"); - list.add(""); - list.add("Have some edible dirt."); + for(String s : I18nUtil.resolveKeyArray("item.definitelyfood.desc")) + list.add(s); } if(this == ModItems.med_ipecac) { - list.add("Bitter juice that will cause your stomach"); - list.add("to forcefully eject its contents."); + for(String s : I18nUtil.resolveKeyArray("item.med_ipecac.desc")) + list.add(s); } if(this == ModItems.med_ptsd) { - list.add("This isn't even PTSD mediaction, it's just"); - list.add("Ipecac in a different bottle!"); + for(String s : I18nUtil.resolveKeyArray("item.med_ptsd.desc")) + list.add(s); } if(this == ModItems.med_schizophrenia) { - list.add("Makes the voices go away. Just for a while."); - list.add(""); - list.add("..."); - list.add("Better not take it."); - } - - if(this == ModItems.med_schizophrenia) { - list.add("Makes the voices go away. Just for a while."); - list.add(""); - list.add("..."); - list.add("Better not take it."); + for(String s : I18nUtil.resolveKeyArray("item.med_schiziphrenia.desc")) + list.add(s); } if(this == ModItems.loops) { - list.add("Brøther, may I have some lööps?"); + list.add(I18nUtil.resolveKey("item.loops.desc")); } if(this == ModItems.loop_stew) { - list.add("A very, very healthy breakfast."); + list.add(I18nUtil.resolveKey("item.loop_stew.desc")); } if(this == ModItems.twinkie) { - list.add("Expired 600 years ago!"); + list.add(I18nUtil.resolveKey("item.twinkie.desc")); } if(this == ModItems.pudding) { - list.add("What if he did?"); - list.add("What if he didn't?"); - list.add("What if the world was made of pudding?"); + for(String s : I18nUtil.resolveKeyArray("item.pudding.desc")) + list.add(s); } if(this == ModItems.ingot_semtex) { - list.add("Semtex H Plastic Explosive"); - list.add("Performant explosive for many applications."); - list.add("Edible"); + for(String s : I18nUtil.resolveKeyArray("item.ingot_semtex.desc")) + list.add(s); } if(this == ModItems.peas) { - list.add("He accepts your offering."); + list.add(I18nUtil.resolveKey("item.peas.desc")); } if(this == ModItems.quesadilla) { - list.add("That's what a 50 year old yeast infection does to you."); + list.add(I18nUtil.resolveKey("item.cheese_quesadilla.desc")); } } diff --git a/src/main/java/com/hbm/items/food/ItemTemFlakes.java b/src/main/java/com/hbm/items/food/ItemTemFlakes.java index d6eee715b..b0435244d 100644 --- a/src/main/java/com/hbm/items/food/ItemTemFlakes.java +++ b/src/main/java/com/hbm/items/food/ItemTemFlakes.java @@ -2,6 +2,7 @@ package com.hbm.items.food; import java.util.List; +import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.creativetab.CreativeTabs; @@ -39,15 +40,15 @@ public class ItemTemFlakes extends ItemFood { { if(itemstack.getItemDamage() == 0) { - list.add("Heals 2HP DISCOUNT FOOD OF TEM!!!"); + list.add(I18nUtil.resolveKeyArray("item.tem_flakes.desc")[0]); } if(itemstack.getItemDamage() == 1) { - list.add("Heals 2HP food of tem"); + list.add(I18nUtil.resolveKeyArray("item.tem_flakes.desc")[1]); } if(itemstack.getItemDamage() == 2) { - list.add("Heals food of tem (expensiv)"); + list.add(I18nUtil.resolveKeyArray("item.tem_flakes.desc")[2]); } } diff --git a/src/main/java/com/hbm/items/machine/ItemBattery.java b/src/main/java/com/hbm/items/machine/ItemBattery.java index 4f0fda9a7..3de7fd67b 100644 --- a/src/main/java/com/hbm/items/machine/ItemBattery.java +++ b/src/main/java/com/hbm/items/machine/ItemBattery.java @@ -6,6 +6,7 @@ import com.hbm.items.ModItems; import com.hbm.util.BobMathUtil; import api.hbm.energy.IBatteryItem; +import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.creativetab.CreativeTabs; @@ -34,14 +35,14 @@ public class ItemBattery extends Item implements IBatteryItem { charge = getCharge(itemstack); if(itemstack.getItem() != ModItems.fusion_core && itemstack.getItem() != ModItems.energy_core) { - list.add("Energy stored: " + BobMathUtil.getShortNumber(charge) + "/" + BobMathUtil.getShortNumber(maxCharge) + "HE"); + list.add(I18nUtil.resolveKey("desc.item.battery.charge",BobMathUtil.getShortNumber(charge),BobMathUtil.getShortNumber(maxCharge))); } else { String charge1 = BobMathUtil.getShortNumber((charge * 100) / this.maxCharge); - list.add("Charge: " + charge1 + "%"); + list.add(I18nUtil.resolveKey("desc.item.battery.chargePerc", charge1)); list.add("(" + BobMathUtil.getShortNumber(charge) + "/" + BobMathUtil.getShortNumber(maxCharge) + "HE)"); } - list.add("Charge rate: " + BobMathUtil.getShortNumber(chargeRate) + "HE/t"); - list.add("Discharge rate: " + BobMathUtil.getShortNumber(dischargeRate) + "HE/t"); + list.add(I18nUtil.resolveKey("desc.item.battery.chargeRate",BobMathUtil.getShortNumber(chargeRate))); + list.add(I18nUtil.resolveKey("desc.item.battery.dischargeRate",BobMathUtil.getShortNumber(dischargeRate))); } @Override diff --git a/src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java b/src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java index 1a04a4649..5fb6e7a76 100644 --- a/src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java +++ b/src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java @@ -4,6 +4,7 @@ import java.util.List; import com.hbm.items.ModItems; +import com.hbm.util.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -33,132 +34,131 @@ public class ItemMachineUpgrade extends Item { public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { if(this.type == UpgradeType.SPEED) { - list.add(EnumChatFormatting.RED + "Mining Drill:"); - list.add("Delay -" + (15 * this.tier) + "% / Consumption +" + (300 * this.tier) + "HE/t"); - list.add(EnumChatFormatting.RED + "Laser Miner:"); - list.add("Delay ÷" + (1 + this.tier) + " / Consumption +" + (625 * this.tier) + "HE/t"); - list.add(EnumChatFormatting.RED + "Electric Furnace:"); - list.add("Delay -" + (25 * this.tier) + "% / Consumption +" + (50 * this.tier) + "HE/t"); - list.add(EnumChatFormatting.RED + "Assembly Machine:"); - list.add("Delay -" + (25 * this.tier) + "% / Consumption +" + (300 * this.tier) + "HE/t"); - list.add(EnumChatFormatting.RED + "Chemical Plant:"); - list.add("Delay -" + (25 * this.tier) + "% / Consumption +" + (300 * this.tier) + "HE/t"); - list.add(EnumChatFormatting.RED + "Oil Wells:"); - list.add("Delay -" + (25 * this.tier) + "% / Consumption +" + (25 * this.tier) + "%"); - list.add(EnumChatFormatting.RED + "Crystallizer:"); - list.add("Delay -" + (20 * this.tier) + "% / Consumption +" + (1000 * this.tier) + "HE/t"); - list.add(EnumChatFormatting.RED + "Cyclotron:"); - list.add("Speed x" + (1 + this.tier)); - list.add(EnumChatFormatting.RED + "Flare Stack:"); - list.add("Speed x" + (1 + this.tier)); - list.add(EnumChatFormatting.RED + "Maxwell:"); - list.add("Damage +" + (0.25 * (double)this.tier) + "dmg/t"); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[0]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.speed",(15 * this.tier),(300 * this.tier),"","","","","","")[0]); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[1]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.speed","","",(1 + this.tier),(625 * this.tier),"","","","")[1]); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[2]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.speed",(25 * this.tier),(50 * this.tier),"","","","","","")[0]); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[3]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.speed",(25 * this.tier),(300 * this.tier),"","","","","","")[0]); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[4]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.speed",(25 * this.tier),(300 * this.tier),"","","","","","")[0]); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[5]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.speed","","","","",(25 * this.tier),(25 * this.tier),"","")[2]); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[6]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.speed",(20 * this.tier),(1000 * this.tier),"","","","","","")[0]); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[7]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.speed","","","","","","",(1 + this.tier),"")[3]); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[8]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.speed","","","","","","",(1 + this.tier),"")[3]); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[9]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.speed","","","","","","","",(0.25 * (double)this.tier))[4]); } if(this.type == UpgradeType.EFFECT) { - list.add(EnumChatFormatting.RED + "Mining Drill:"); - list.add("Radius +" + this.tier + "m / Consumption +" + (80 * this.tier) + "HE/t"); - list.add(EnumChatFormatting.RED + "Crystallizer:"); - list.add("+" + (5 * this.tier) + "% chance of not consuming an item / Acid consumption +" + (1000 * this.tier) + "mB"); - list.add(EnumChatFormatting.RED + "Cyclotron:"); - list.add("-" + (100 - 100 / (this.tier + 1)) + "% chance of incrementing overheat counter"); - list.add(EnumChatFormatting.RED + "Flare Stack:"); - list.add("+" + (100 * this.tier / 3) + "% power production"); - list.add(EnumChatFormatting.RED + "Maxwell:"); - list.add("Range +" + (3 * this.tier) + "m"); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[0]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.effect",this.tier,(80 * this.tier),"","","","","")[0]); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[6]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.effect","","",(5 * this.tier),(1000 * this.tier),"","","")[1]); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[7]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.effect","","","","",(100 - 100 / (this.tier + 1)),"","")[2]); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[8]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.effect","","","","","",(100 * this.tier / 3),"")[3]); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[9]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.effect","","","","","","",(3 * this.tier))[4]); } if(this.type == UpgradeType.POWER) { - list.add(EnumChatFormatting.RED + "Mining Drill:"); - list.add("Consumption -" + (30 * this.tier) + "HE/t / Delay +" + (5 * this.tier) + "%"); - list.add(EnumChatFormatting.RED + "Electric Furnace:"); - list.add("Consumption -" + (15 * this.tier) + "HE/t / Delay +" + (10 * this.tier) + "%"); - list.add(EnumChatFormatting.RED + "Assembly Machine:"); - list.add("Consumption -" + (30 * this.tier) + "HE/t / Delay +" + (5 * this.tier) + "%"); - list.add(EnumChatFormatting.RED + "Chemical Plant:"); - list.add("Consumption -" + (30 * this.tier) + "HE/t / Delay +" + (5 * this.tier) + "%"); - list.add(EnumChatFormatting.RED + "Oil Wells:"); - list.add("Consumption -" + (25 * this.tier) + "% / Delay +" + (10 * this.tier) + "%"); - list.add(EnumChatFormatting.RED + "Cyclotron:"); - list.add("Consumption -" + (100 * this.tier) + "kHE/t"); - list.add(EnumChatFormatting.RED + "Maxwell:"); - list.add("Consumption -" + (150 * this.tier) + "HE/t"); - list.add("Consumption when firing -" + (1500 * this.tier) + "HE/t"); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[0]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.power",(30 * this.tier),(5 * this.tier),"","","","","")[0]); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[2]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.power",(15 * this.tier),(10 * this.tier),"","","","","")[0]); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[3]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.power",(30 * this.tier),(5 * this.tier),"","","","","")[0]); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[4]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.power",(30 * this.tier),(5 * this.tier),"","","","","")[0]); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[5]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.power","","",(25 * this.tier),(10 * this.tier),"","","")[1]); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[7]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.power","","","","",(100 * this.tier),"","")[2]); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[9]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.power","","","","","",(150 * this.tier),"")[3]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.power","","","","","","",(1500 * this.tier))[4]); } if(this == ModItems.upgrade_fortune_1) { - list.add(EnumChatFormatting.RED + "Mining Drill:"); - list.add("Fortune +1 / Delay +15"); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[0]); + list.add(I18nUtil.resolveKey("desc.item.upgrade.fortune","1","15")); } if(this == ModItems.upgrade_fortune_2) { - list.add(EnumChatFormatting.RED + "Mining Drill:"); - list.add("Fortune +2 / Delay +30"); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[0]); + list.add(I18nUtil.resolveKey("desc.item.upgrade.fortune","2","30")); } if(this == ModItems.upgrade_fortune_3) { - list.add(EnumChatFormatting.RED + "Mining Drill:"); - list.add("Fortune +3 / Delay +45"); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[0]); + list.add(I18nUtil.resolveKey("desc.item.upgrade.fortune","3","45")); } if(this.type == UpgradeType.AFTERBURN) { - list.add(EnumChatFormatting.RED + "Turbofan:"); - list.add("Production x" + (this.tier + 1) + " / Consumption x" + (this.tier + 2)); - list.add(EnumChatFormatting.RED + "Maxwell:"); - list.add("Afterburn +" + (this.tier * 3) + "s"); - list.add(EnumChatFormatting.RED + "Oil Wells:"); - list.add("Burn " + (this.tier * 10) + "mB of gas for " + (this.tier * 50) + "HE/t"); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[10]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.afterburn",(this.tier + 1),(this.tier + 2),"","","")[0]); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[9]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.afterburn","","",(this.tier * 3),"","")[1]); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[5]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.afterburn","","","",(this.tier * 10),(this.tier * 50))[2]); } if(this == ModItems.upgrade_radius) { - list.add(EnumChatFormatting.RED + "Forcefield Range Upgrade"); - list.add("Radius +16 / Consumption +500"); - list.add("Stacks to 16"); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[11]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.forcefield","16","500")[0]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.forcefield")[2]); } if(this == ModItems.upgrade_health) { - list.add(EnumChatFormatting.RED + "Forcefield Health Upgrade"); - list.add("Max. Health +50 / Consumption +250"); - list.add("Stacks to 16"); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[12]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.forcefield","50","250")[1]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.forcefield")[2]); } if(this == ModItems.upgrade_smelter) { - list.add(EnumChatFormatting.RED + "Mining Laser Upgrade"); - list.add("Smelts blocks. Easy enough."); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[13]); + list.add(I18nUtil.resolveKey("desc.item.upgrade.smelter")); } if(this == ModItems.upgrade_shredder) { - list.add(EnumChatFormatting.RED + "Mining Laser Upgrade"); - list.add("Crunches ores"); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[13]); + list.add(I18nUtil.resolveKey("desc.item.upgrade.shredder")); } if(this == ModItems.upgrade_centrifuge) { - list.add(EnumChatFormatting.RED + "Mining Laser Upgrade"); - list.add("Hopefully self-explanatory"); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[13]); + list.add(I18nUtil.resolveKey("desc.item.upgrade.centrifuge")); } if(this == ModItems.upgrade_crystallizer) { - list.add(EnumChatFormatting.RED + "Mining Laser Upgrade"); - list.add("Your new best friend"); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[13]); + list.add(I18nUtil.resolveKey("desc.item.upgrade.crystallizer")); } if(this == ModItems.upgrade_screm) { - list.add(EnumChatFormatting.RED + "Mining Laser Upgrade"); - list.add("It's like in Super Mario where all blocks are"); - list.add("actually Toads, but here it's Half-Life scientists"); - list.add("and they scream. A lot."); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[13]); + for(String s : I18nUtil.resolveKeyArray("desc.item.upgrade.screm")) + list.add(s); } if(this == ModItems.upgrade_nullifier) { - list.add(EnumChatFormatting.RED + "Mining Laser Upgrade"); - list.add("50% chance to override worthless items with /dev/zero"); - list.add("50% chance to move worthless items to /dev/null"); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[13]); + for(String s : I18nUtil.resolveKeyArray("desc.item.upgrade.nullifier")) + list.add(s); } if(this == ModItems.upgrade_gc_speed) { - list.add(EnumChatFormatting.RED + "Gas Centrifuge Upgrade"); - list.add("Allows for total isotopic separation of HEUF6"); - list.add(EnumChatFormatting.YELLOW + "also your centrifuge goes sicko mode"); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[14]); + for(String s : I18nUtil.resolveKeyArray("desc.item.upgrade.gc_speed")) + list.add(s); } } diff --git a/src/main/java/com/hbm/items/machine/ItemPWRFuel.java b/src/main/java/com/hbm/items/machine/ItemPWRFuel.java index db802776a..70bd64d81 100644 --- a/src/main/java/com/hbm/items/machine/ItemPWRFuel.java +++ b/src/main/java/com/hbm/items/machine/ItemPWRFuel.java @@ -4,6 +4,7 @@ import java.util.List; import com.hbm.items.ItemEnumMulti; import com.hbm.util.EnumUtil; +import com.hbm.util.I18nUtil; import com.hbm.util.function.Function; import com.hbm.util.function.Function.FunctionLogarithmic; import com.hbm.util.function.Function.FunctionSqrt; @@ -55,10 +56,7 @@ public class ItemPWRFuel extends ItemEnumMulti { EnumPWRFuel num = EnumUtil.grabEnumSafely(EnumPWRFuel.class, stack.getItemDamage()); String color = EnumChatFormatting.GOLD + ""; - String reset = EnumChatFormatting.RESET + ""; - - list.add(color + "Heat per flux: " + reset + num.heatEmission + " TU"); - list.add(color + "Reacton function: " + reset + num.function.getLabelForFuel()); - list.add(color + "Fuel type: " + reset + num.function.getDangerFromFuel()); + for(String s : I18nUtil.resolveKeyArray("trait.pwr_fuel" , num.heatEmission, num.function.getLabelForFuel(), num.function.getDangerFromFuel())) + list.add(color + s); } } diff --git a/src/main/java/com/hbm/items/machine/ItemPlateFuel.java b/src/main/java/com/hbm/items/machine/ItemPlateFuel.java index f30978de9..6f76853b2 100644 --- a/src/main/java/com/hbm/items/machine/ItemPlateFuel.java +++ b/src/main/java/com/hbm/items/machine/ItemPlateFuel.java @@ -4,6 +4,7 @@ import java.util.List; import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; @@ -27,10 +28,8 @@ public class ItemPlateFuel extends ItemFuelRod { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - - list.add(EnumChatFormatting.YELLOW + "[Research Reactor Plate Fuel]"); - list.add(EnumChatFormatting.DARK_AQUA + " " + getFunctionDesc()); - list.add(EnumChatFormatting.DARK_AQUA + " Yield of " + BobMathUtil.getShortNumber(lifeTime) + " events"); + for(String s : I18nUtil.resolveKeyArray("trait.platefuel", getFunctionDesc(), BobMathUtil.getShortNumber(lifeTime))) + list.add(EnumChatFormatting.YELLOW + s); super.addInformation(itemstack, player, list, bool); } diff --git a/src/main/java/com/hbm/items/machine/ItemRBMKPellet.java b/src/main/java/com/hbm/items/machine/ItemRBMKPellet.java index e50dbcd66..09f5a359a 100644 --- a/src/main/java/com/hbm/items/machine/ItemRBMKPellet.java +++ b/src/main/java/com/hbm/items/machine/ItemRBMKPellet.java @@ -5,6 +5,7 @@ import java.util.List; import com.hbm.items.special.ItemNuclearWaste; import com.hbm.main.MainRegistry; +import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.renderer.texture.IIconRegister; @@ -77,20 +78,20 @@ public class ItemRBMKPellet extends ItemNuclearWaste { super.addInformation(stack, player, list, bool); list.add(EnumChatFormatting.ITALIC + this.fullName); - list.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC + "Pellet for recycling"); + list.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC + I18nUtil.resolveKeyArray("trait.rbmk_pellet")[0]); int meta = rectify(stack.getItemDamage()); switch(meta % 5) { - case 0: list.add(EnumChatFormatting.GOLD + "Brand New"); break; - case 1: list.add(EnumChatFormatting.YELLOW + "Barely Depleted"); break; - case 2: list.add(EnumChatFormatting.GREEN + "Moderately Depleted"); break; - case 3: list.add(EnumChatFormatting.DARK_GREEN + "Highly Depleted"); break; - case 4: list.add(EnumChatFormatting.DARK_GRAY + "Fully Depleted"); break; + case 0: list.add(EnumChatFormatting.GOLD + I18nUtil.resolveKeyArray("trait.rbmk_pellet")[1]); break; + case 1: list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("trait.rbmk_pellet")[2]); break; + case 2: list.add(EnumChatFormatting.GREEN + I18nUtil.resolveKeyArray("trait.rbmk_pellet")[3]); break; + case 3: list.add(EnumChatFormatting.DARK_GREEN + I18nUtil.resolveKeyArray("trait.rbmk_pellet")[4]); break; + case 4: list.add(EnumChatFormatting.DARK_GRAY + I18nUtil.resolveKeyArray("trait.rbmk_pellet")[5]); break; } if(hasXenon(meta)) - list.add(EnumChatFormatting.DARK_PURPLE + "High Xenon Poison"); + list.add(EnumChatFormatting.DARK_PURPLE + I18nUtil.resolveKeyArray("trait.rbmk_pellet")[6]); } @Override diff --git a/src/main/java/com/hbm/items/machine/ItemRBMKRod.java b/src/main/java/com/hbm/items/machine/ItemRBMKRod.java index 960a84874..9808cf170 100644 --- a/src/main/java/com/hbm/items/machine/ItemRBMKRod.java +++ b/src/main/java/com/hbm/items/machine/ItemRBMKRod.java @@ -223,15 +223,15 @@ public class ItemRBMKRod extends Item { } public static enum EnumBurnFunc { - PASSIVE(EnumChatFormatting.DARK_GREEN + "SAFE / PASSIVE"), //const, no reactivity - LOG_TEN(EnumChatFormatting.YELLOW + "MEDIUM / LOGARITHMIC"), //log10(x + 1) * reactivity * 50 - PLATEU(EnumChatFormatting.GREEN + "SAFE / EULER"), //(1 - e^(-x/25)) * reactivity * 100 - ARCH(EnumChatFormatting.RED + "DANGEROUS / NEGATIVE-QUADRATIC"), //x-(x²/1000) * reactivity - SIGMOID(EnumChatFormatting.GREEN + "SAFE / SIGMOID"), //100 / (1 + e^(-(x - 50) / 10)) <- tiny amount of reactivity at x=0 ! - SQUARE_ROOT(EnumChatFormatting.YELLOW + "MEDIUM / SQUARE ROOT"), //sqrt(x) * 10 * reactivity - LINEAR(EnumChatFormatting.RED + "DANGEROUS / LINEAR"), //x * reactivity - QUADRATIC(EnumChatFormatting.RED + "DANGEROUS / QUADRATIC"), //x^2 / 100 * reactivity - EXPERIMENTAL(EnumChatFormatting.RED + "EXPERIMENTAL / SINE SLOPE"); //x * (sin(x) + 1) + PASSIVE(EnumChatFormatting.DARK_GREEN + I18nUtil.resolveKeyArray("trait.rbmk.BurnFunc")[0]), //const, no reactivity + LOG_TEN(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("trait.rbmk.BurnFunc")[1]), //log10(x + 1) * reactivity * 50 + PLATEU(EnumChatFormatting.GREEN + I18nUtil.resolveKeyArray("trait.rbmk.BurnFunc")[2]), //(1 - e^(-x/25)) * reactivity * 100 + ARCH(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("trait.rbmk.BurnFunc")[3]), //x-(x²/1000) * reactivity + SIGMOID(EnumChatFormatting.GREEN + I18nUtil.resolveKeyArray("trait.rbmk.BurnFunc")[4]), //100 / (1 + e^(-(x - 50) / 10)) <- tiny amount of reactivity at x=0 ! + SQUARE_ROOT(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("trait.rbmk.BurnFunc")[5]), //sqrt(x) * 10 * reactivity + LINEAR(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("trait.rbmk.BurnFunc")[6]), //x * reactivity + QUADRATIC(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("trait.rbmk.BurnFunc")[7]), //x^2 / 100 * reactivity + EXPERIMENTAL(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("trait.rbmk.BurnFunc")[8]); //x * (sin(x) + 1) public String title = ""; diff --git a/src/main/java/com/hbm/items/machine/ItemWatzPellet.java b/src/main/java/com/hbm/items/machine/ItemWatzPellet.java index be5e0ad7f..73971bb41 100644 --- a/src/main/java/com/hbm/items/machine/ItemWatzPellet.java +++ b/src/main/java/com/hbm/items/machine/ItemWatzPellet.java @@ -9,6 +9,7 @@ import com.hbm.main.MainRegistry; import com.hbm.render.icon.RGBMutatorInterpolatedComponentRemap; import com.hbm.render.icon.TextureAtlasSpriteMutatable; import com.hbm.util.EnumUtil; +import com.hbm.util.I18nUtil; import com.hbm.util.function.Function; import com.hbm.util.function.Function.*; @@ -127,23 +128,23 @@ public class ItemWatzPellet extends ItemEnumMulti { if(this != ModItems.watz_pellet) return; EnumWatzType num = EnumUtil.grabEnumSafely(EnumWatzType.class, stack.getItemDamage()); - - list.add(EnumChatFormatting.GREEN + "Depletion: " + String.format(Locale.US, "%.1f", getDurabilityForDisplay(stack) * 100D) + "%"); + + list.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey("trait.watz_pellet", String.format(Locale.US, "%.1f", getDurabilityForDisplay(stack) * 100D))); String color = EnumChatFormatting.GOLD + ""; String reset = EnumChatFormatting.RESET + ""; if(num.passive > 0){ - list.add(color + "Base fission rate: " + reset + num.passive); - list.add(EnumChatFormatting.RED + "Self-igniting!"); + list.add(color + I18nUtil.resolveKeyArray("trait.watz_pellet.passive")[0] + reset + num.passive); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("trait.watz_pellet.passive")[1]); } - if(num.heatEmission > 0) list.add(color + "Heat per flux: " + reset + num.heatEmission + " TU"); + if(num.heatEmission > 0) list.add(color + I18nUtil.resolveKey("trait.watz_pellet.heatEmission") + reset + num.heatEmission + " TU"); if(num.burnFunc != null) { - list.add(color + "Reacton function: " + reset + num.burnFunc.getLabelForFuel()); - list.add(color + "Fuel type: " + reset + num.burnFunc.getDangerFromFuel()); + list.add(color + I18nUtil.resolveKeyArray("trait.watz_pellet.burnFunc")[0] + reset + num.burnFunc.getLabelForFuel()); + list.add(color + I18nUtil.resolveKeyArray("trait.watz_pellet.burnFunc")[1] + reset + num.burnFunc.getDangerFromFuel()); } - if(num.heatDiv != null) list.add(color + "Thermal multiplier: " + reset + num.heatDiv.getLabelForFuel() + " TU⁻¹"); - if(num.absorbFunc != null) list.add(color + "Flux capture: " + reset + num.absorbFunc.getLabelForFuel()); + if(num.heatDiv != null) list.add(color + I18nUtil.resolveKey("trait.watz_pellet.heatDiv") + reset + num.heatDiv.getLabelForFuel() + " TU⁻¹"); + if(num.absorbFunc != null) list.add(color + I18nUtil.resolveKey("trait.watz_pellet.absorbFunc") + reset + num.absorbFunc.getLabelForFuel()); } @Override diff --git a/src/main/java/com/hbm/items/special/ItemAMSCore.java b/src/main/java/com/hbm/items/special/ItemAMSCore.java index 6a4fb569f..68c12677f 100644 --- a/src/main/java/com/hbm/items/special/ItemAMSCore.java +++ b/src/main/java/com/hbm/items/special/ItemAMSCore.java @@ -5,6 +5,7 @@ import java.util.List; import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; +import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.player.EntityPlayer; @@ -28,51 +29,26 @@ public class ItemAMSCore extends Item { public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { if (this == ModItems.ams_core_sing) { - list.add("A modified undefined state of spacetime"); - list.add("used to aid in inter-gluon fusion and"); - list.add("spacetime annihilation. Yes, this destroys"); - list.add("the universe itself, slowly but steadily,"); - list.add("but at least you can power your toaster with"); - list.add("this, so it's all good."); + for(String s : I18nUtil.resolveKeyArray("item.ams_core_sing.desc")) + list.add(s); } if (this == ModItems.ams_core_wormhole) { - list.add("A cloud of billions of nano-wormholes which"); - list.add("deliberately fail at tunneling matter from"); - list.add("another dimension, rather it converts all"); - list.add("that matter into pure energy. That means"); - list.add("you're actively contributing to the destruction"); - list.add("of another dimension, sucking it dry like a"); - list.add("juicebox."); - list.add("That dimension probably sucked, anyways. I"); - list.add("bet it was full of wasps or some crap, man,"); - list.add("I hate these things."); + for(String s : I18nUtil.resolveKeyArray("item.ams_core_wormhole.desc")) + list.add(s); } if (this == ModItems.ams_core_eyeofharmony) { - list.add("A star collapsing in on itself, mere nanoseconds"); - list.add("away from being turned into a black hole,"); - list.add("frozen in time. If I didn't know better I"); - list.add("would say this is some deep space magic"); - list.add("bullcrap some guy made up to sound intellectual."); - list.add("Probably Steve from accounting. You still owe me"); - list.add("ten bucks."); + for(String s : I18nUtil.resolveKeyArray("item.ams_core_eyeofharmony.desc")) + list.add(s); } if (this == ModItems.ams_core_thingy) { if(MainRegistry.polaroidID == 11) { - list.add("Yeah I'm not even gonna question that one."); + list.add(I18nUtil.resolveKey("item.ams_core_thingy_hide.desc")); } else { - list.add("..."); - list.add("..."); - list.add("...am I even holding this right?"); - list.add("It's a small metal thing. I dunno where it's from"); - list.add("or what it does, maybe they found it on a"); - list.add("junkyard and sold it as some kind of antique"); - list.add("artifact. If it weren't for the fact that I can"); - list.add("actually stuff this into some great big laser"); - list.add("reactor thing, I'd probably bring it back to where"); - list.add("it belongs. In the trash."); + for(String s : I18nUtil.resolveKeyArray("item.ams_core_thingy.desc")) + list.add(s); } } } diff --git a/src/main/java/com/hbm/items/special/ItemGlitch.java b/src/main/java/com/hbm/items/special/ItemGlitch.java index 9942c4754..f44dab7ec 100644 --- a/src/main/java/com/hbm/items/special/ItemGlitch.java +++ b/src/main/java/com/hbm/items/special/ItemGlitch.java @@ -13,6 +13,7 @@ import com.hbm.lib.ModDamageSource; import com.hbm.main.MainRegistry; import api.hbm.energy.IBatteryItem; +import com.hbm.util.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.item.Item; @@ -39,10 +40,10 @@ public class ItemGlitch extends Item implements IBatteryItem { if(!world.isRemote) switch(itemRand.nextInt(31)) { case 0: - player.addChatMessage(new ChatComponentText("Sorry nothing.")); + player.addChatMessage(new ChatComponentText(I18nUtil.resolveKeyArray("item.glitch.message")[0])); break; case 1: - player.addChatMessage(new ChatComponentText("Prometheus was punished by the gods by giving the gift of knowledge to man. He was cast into the bowels of the earth and pecked by birds.")); + player.addChatMessage(new ChatComponentText(I18nUtil.resolveKeyArray("item.glitch.message")[1])); break; case 2: player.attackEntityFrom(ModDamageSource.radiation, 1000); @@ -66,7 +67,7 @@ public class ItemGlitch extends Item implements IBatteryItem { break; case 8: player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_container, 10)); - player.addChatMessage(new ChatComponentText("Oh, and by the way: The polaroid shifts reality. Things can be different if the polaroid is broken.")); + player.addChatMessage(new ChatComponentText(I18nUtil.resolveKeyArray("item.glitch.message")[2])); break; case 9: player.inventory.addItemStackToInventory(new ItemStack(ModItems.nuke_advanced_kit, 1)); @@ -94,7 +95,7 @@ public class ItemGlitch extends Item implements IBatteryItem { player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_revolver_pip)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.bottle_sparkle)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.geiger_counter)); - player.addChatMessage(new ChatComponentText("Have some free stuff. You'll need it for that one cryptic achievement.")); + player.addChatMessage(new ChatComponentText(I18nUtil.resolveKeyArray("item.glitch.message")[3])); break; case 14: player.inventory.dropAllItems(); @@ -105,43 +106,43 @@ public class ItemGlitch extends Item implements IBatteryItem { player.inventory.addItemStackToInventory(new ItemStack(Blocks.dirt, 64)); break; case 16: - player.addChatMessage(new ChatComponentText("v yvxr lbhe nggvghqr!")); + player.addChatMessage(new ChatComponentText(I18nUtil.resolveKeyArray("item.glitch.message")[4])); break; case 17: - player.addChatMessage(new ChatComponentText("89% of magic tricks are not magic. Technically, they are sorcery.")); + player.addChatMessage(new ChatComponentText(I18nUtil.resolveKeyArray("item.glitch.message")[5])); break; case 18: player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_lever_action)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_20gauge, 12)); - player.addChatMessage(new ChatComponentText("Here ya go.")); + player.addChatMessage(new ChatComponentText(I18nUtil.resolveKeyArray("item.glitch.message")[6])); break; case 19: - player.addChatMessage(new ChatComponentText("Ë")); + player.addChatMessage(new ChatComponentText(I18nUtil.resolveKeyArray("item.glitch.message")[7])); break; case 20: - player.addChatMessage(new ChatComponentText("Good day, I am text")); + player.addChatMessage(new ChatComponentText(I18nUtil.resolveKeyArray("item.glitch.message")[8])); break; case 21: player.inventory.addItemStackToInventory(new ItemStack(ModItems.missile_nuclear)); - player.addChatMessage(new ChatComponentText("73616d706c652074657874!")); + player.addChatMessage(new ChatComponentText(I18nUtil.resolveKeyArray("item.glitch.message")[9])); break; case 22: - player.addChatMessage(new ChatComponentText("Budget cuts, no effect for you.")); + player.addChatMessage(new ChatComponentText(I18nUtil.resolveKeyArray("item.glitch.message")[10])); break; case 23: - player.addChatMessage(new ChatComponentText("oof")); + player.addChatMessage(new ChatComponentText(I18nUtil.resolveKeyArray("item.glitch.message")[11])); break; case 24: player.addPotionEffect(new PotionEffect(Potion.resistance.id, 60 * 20, 9)); - player.addChatMessage(new ChatComponentText("Tank!")); + player.addChatMessage(new ChatComponentText(I18nUtil.resolveKeyArray("item.glitch.message")[12])); break; case 25: player.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 60 * 20, 9)); - player.addChatMessage(new ChatComponentText("More devastating than a falling boxcar!")); + player.addChatMessage(new ChatComponentText(I18nUtil.resolveKeyArray("item.glitch.message")[13])); break; case 26: player.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 60 * 20, 9)); - player.addChatMessage(new ChatComponentText("Ha!")); + player.addChatMessage(new ChatComponentText(I18nUtil.resolveKeyArray("item.glitch.message")[14])); break; case 27: EntityVortex vortex = new EntityVortex(world, 2.5F); @@ -156,15 +157,15 @@ public class ItemGlitch extends Item implements IBatteryItem { mirv.posY = player.posY + 100; mirv.posZ = player.posZ; world.spawnEntityInWorld(mirv); - player.addChatMessage(new ChatComponentText("Watch your head!")); + player.addChatMessage(new ChatComponentText(I18nUtil.resolveKeyArray("item.glitch.message")[15])); break; case 29: ExplosionLarge.spawnBurst(world, player.posX, player.posY, player.posZ, 27, 3); - player.addChatMessage(new ChatComponentText("Bam!")); + player.addChatMessage(new ChatComponentText(I18nUtil.resolveKeyArray("item.glitch.message")[16])); break; case 30: player.inventory.addItemStackToInventory(new ItemStack(ModItems.plate_saturnite)); - player.addChatMessage(new ChatComponentText("It's dangerous to go alone, take this!")); + player.addChatMessage(new ChatComponentText(I18nUtil.resolveKeyArray("item.glitch.message")[17])); break; } @@ -176,62 +177,62 @@ public class ItemGlitch extends Item implements IBatteryItem { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add("It's a gamble!"); + list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[0]); list.add(""); switch(MainRegistry.polaroidID) { case 1: - list.add("Click-click-click!"); + list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[1]); break; case 2: - list.add("Creek!"); + list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[2]); break; case 3: - list.add("Bzzzt!"); + list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[3]); break; case 4: - list.add("TS staring off into space."); + list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[4]); break; case 5: - list.add("BANG!!"); + list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[5]); break; case 6: - list.add("Woop!"); + list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[6]); break; case 7: - list.add("Poow!"); + list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[7]); break; case 8: - list.add("Pft!"); + list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[8]); break; case 9: - list.add("GF fgnevat bss vagb fcnpr."); + list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[9]); break; case 10: - list.add("Backup memory #8 on 1.44 million bytes."); + list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[10]); break; case 11: - list.add("PTANG!"); + list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[11]); break; case 12: - list.add("Bzzt-zrrt!"); + list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[12]); break; case 13: - list.add("Clang, click-brrthththrtrtrtrtrtr!"); + list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[13]); break; case 14: - list.add("KABLAM!"); + list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[14]); break; case 15: - list.add("PLENG!"); + list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[15]); break; case 16: - list.add("Wheeeeeeee-"); + list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[16]); break; case 17: - list.add("Thump."); + list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[17]); break; case 18: - list.add("BANG! Choo-chooo! B A N G ! ! !"); + list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[18]); break; } } diff --git a/src/main/java/com/hbm/items/special/ItemRag.java b/src/main/java/com/hbm/items/special/ItemRag.java index bb883f6eb..f94b5ba49 100644 --- a/src/main/java/com/hbm/items/special/ItemRag.java +++ b/src/main/java/com/hbm/items/special/ItemRag.java @@ -4,6 +4,7 @@ import java.util.List; import com.hbm.items.ModItems; +import com.hbm.util.I18nUtil; import net.minecraft.block.material.Material; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; @@ -39,7 +40,7 @@ public class ItemRag extends Item { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add("Drop into water to make damp cloth."); - list.add("Right-click to urinate on the cloth."); + for(String s : I18nUtil.resolveKeyArray("item.rag.desc")) + list.add(s); } } diff --git a/src/main/java/com/hbm/items/special/ItemSoyuz.java b/src/main/java/com/hbm/items/special/ItemSoyuz.java index 7644a0880..adfe591cd 100644 --- a/src/main/java/com/hbm/items/special/ItemSoyuz.java +++ b/src/main/java/com/hbm/items/special/ItemSoyuz.java @@ -4,6 +4,7 @@ import java.util.List; import com.hbm.lib.RefStrings; +import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.renderer.texture.IIconRegister; @@ -50,12 +51,12 @@ public class ItemSoyuz extends Item { @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { - list.add("Skin:"); + list.add(I18nUtil.resolveKeyArray("item.missile_soyuz.desc")[0]); switch(stack.getItemDamage()) { - case 0: list.add(EnumChatFormatting.GOLD + "Original"); break; - case 1: list.add(EnumChatFormatting.BLUE + "Luna Space Center"); break; - case 2: list.add(EnumChatFormatting.GREEN + "Post War"); break; + case 0: list.add(EnumChatFormatting.GOLD + I18nUtil.resolveKeyArray("item.missile_soyuz.desc")[1]); break; + case 1: list.add(EnumChatFormatting.BLUE + I18nUtil.resolveKeyArray("item.missile_soyuz.desc")[2]); break; + case 2: list.add(EnumChatFormatting.GREEN + I18nUtil.resolveKeyArray("item.missile_soyuz.desc")[3]); break; } } diff --git a/src/main/java/com/hbm/items/tool/ItemAnchorRemote.java b/src/main/java/com/hbm/items/tool/ItemAnchorRemote.java index 9fb384f23..927ae5165 100644 --- a/src/main/java/com/hbm/items/tool/ItemAnchorRemote.java +++ b/src/main/java/com/hbm/items/tool/ItemAnchorRemote.java @@ -7,6 +7,7 @@ import com.hbm.items.ModItems; import com.hbm.items.machine.ItemBattery; import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -27,14 +28,14 @@ public class ItemAnchorRemote extends ItemBattery { charge = getCharge(itemstack); if(itemstack.getItem() != ModItems.fusion_core && itemstack.getItem() != ModItems.energy_core) { - list.add("Energy stored: " + BobMathUtil.getShortNumber(charge) + "/" + BobMathUtil.getShortNumber(maxCharge) + "HE"); + list.add(I18nUtil.resolveKey("desc.item.battery.charge",BobMathUtil.getShortNumber(charge),BobMathUtil.getShortNumber(maxCharge))); } else { String charge1 = BobMathUtil.getShortNumber((charge * 100) / this.maxCharge); - list.add("Charge: " + charge1 + "%"); + list.add(I18nUtil.resolveKey("desc.item.battery.chargePerc", charge1)); list.add("(" + BobMathUtil.getShortNumber(charge) + "/" + BobMathUtil.getShortNumber(maxCharge) + "HE)"); } - list.add("Charge rate: " + BobMathUtil.getShortNumber(chargeRate) + "HE/t"); + list.add(I18nUtil.resolveKey("desc.item.battery.chargeRate",BobMathUtil.getShortNumber(chargeRate))); } @Override diff --git a/src/main/java/com/hbm/items/tool/ItemCMStructure.java b/src/main/java/com/hbm/items/tool/ItemCMStructure.java index 6c46decee..415076832 100644 --- a/src/main/java/com/hbm/items/tool/ItemCMStructure.java +++ b/src/main/java/com/hbm/items/tool/ItemCMStructure.java @@ -7,6 +7,7 @@ import com.google.gson.stream.JsonWriter; import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.ModBlocks; import com.hbm.main.MainRegistry; +import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.BlockPos; import net.minecraft.block.Block; import net.minecraft.client.Minecraft; @@ -156,10 +157,8 @@ public class ItemCMStructure extends Item implements ILookOverlay { @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { super.addInformation(stack, player, list, ext); - list.add(EnumChatFormatting.YELLOW + "Click Custom Machine Structure Positioning Anchor to"); - list.add(EnumChatFormatting.YELLOW + "Confirm the location of the custom machine core block."); - list.add(EnumChatFormatting.YELLOW + "Output all blocks between Position1 and Position2 with"); - list.add(EnumChatFormatting.YELLOW + "metadata to \"CMstructureOutput.txt\" in hbmConfig."); + for(String s : I18nUtil.resolveKeyArray("item.structure_custommachine.desc")) + list.add(EnumChatFormatting.YELLOW + s); } @Override diff --git a/src/main/java/com/hbm/items/tool/ItemDetonator.java b/src/main/java/com/hbm/items/tool/ItemDetonator.java index 201f60c5a..c34742f75 100644 --- a/src/main/java/com/hbm/items/tool/ItemDetonator.java +++ b/src/main/java/com/hbm/items/tool/ItemDetonator.java @@ -2,6 +2,7 @@ package com.hbm.items.tool; import java.util.List; +import com.hbm.util.I18nUtil; import org.apache.logging.log4j.Level; import com.hbm.config.GeneralConfig; @@ -21,12 +22,12 @@ public class ItemDetonator extends Item { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add("Shift right-click to set position,"); - list.add("right-click to detonate!"); + for(String s : I18nUtil.resolveKeyArray("item.detonator.desc")) + list.add(s); if(itemstack.getTagCompound() == null) { - list.add(EnumChatFormatting.RED + "No position set!"); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("item.detonator.pos.desc")[0]); } else { - list.add(EnumChatFormatting.YELLOW + "Linked to " + itemstack.stackTagCompound.getInteger("x") + ", " + itemstack.stackTagCompound.getInteger("y") + ", " + itemstack.stackTagCompound.getInteger("z")); + list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("item.detonator.pos.desc" , itemstack.stackTagCompound.getInteger("x") , itemstack.stackTagCompound.getInteger("y") , itemstack.stackTagCompound.getInteger("z"))[1]); } } @@ -45,7 +46,7 @@ public class ItemDetonator extends Item { player.addChatMessage(ChatBuilder.start("[").color(EnumChatFormatting.DARK_AQUA) .nextTranslation(this.getUnlocalizedName() + ".name").color(EnumChatFormatting.DARK_AQUA) .next("] ").color(EnumChatFormatting.DARK_AQUA) - .next("Position set!").color(EnumChatFormatting.GREEN).flush()); + .next(I18nUtil.resolveKeyArray("desc.item.detonator")[0]).color(EnumChatFormatting.GREEN).flush()); } world.playSoundAtEntity(player, "hbm:item.techBoop", 2.0F, 1.0F); @@ -64,7 +65,7 @@ public class ItemDetonator extends Item { player.addChatMessage(ChatBuilder.start("[").color(EnumChatFormatting.DARK_AQUA) .nextTranslation(this.getUnlocalizedName() + ".name").color(EnumChatFormatting.DARK_AQUA) .next("] ").color(EnumChatFormatting.DARK_AQUA) - .next("No position set!").color(EnumChatFormatting.RED).flush()); + .next(I18nUtil.resolveKeyArray("desc.item.detonator")[1]).color(EnumChatFormatting.RED).flush()); } } else { int x = stack.stackTagCompound.getInteger("x"); diff --git a/src/main/java/com/hbm/items/tool/ItemMS.java b/src/main/java/com/hbm/items/tool/ItemMS.java index 77495a356..bcb3b7c7f 100644 --- a/src/main/java/com/hbm/items/tool/ItemMS.java +++ b/src/main/java/com/hbm/items/tool/ItemMS.java @@ -7,6 +7,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.items.ModItems; +import com.hbm.util.I18nUtil; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; @@ -18,7 +19,7 @@ public class ItemMS extends Item { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add("Lost but not forgotten"); + list.add(I18nUtil.resolveKey("item.mysteryshovel.desc")); } public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int i, float a, float b, float c) diff --git a/src/main/java/com/hbm/items/tool/ItemSwordMeteorite.java b/src/main/java/com/hbm/items/tool/ItemSwordMeteorite.java index eefbae55d..bf8b970b3 100644 --- a/src/main/java/com/hbm/items/tool/ItemSwordMeteorite.java +++ b/src/main/java/com/hbm/items/tool/ItemSwordMeteorite.java @@ -5,6 +5,7 @@ import java.util.List; import com.hbm.items.ModItems; +import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.player.EntityPlayer; @@ -26,63 +27,63 @@ public class ItemSwordMeteorite extends ItemSwordAbility { super.addInformation(stack, player, list, ext); if(this == ModItems.meteorite_sword) { - list.add(EnumChatFormatting.ITALIC + "Forged from a fallen star"); - list.add(EnumChatFormatting.ITALIC + "Sharper than most terrestrial blades"); + for(String s : I18nUtil.resolveKeyArray("item.meteorite_sword.desc")) + list.add(EnumChatFormatting.ITALIC + s); } if(this == ModItems.meteorite_sword_seared) { - list.add(EnumChatFormatting.ITALIC + "Fire strengthens the blade"); - list.add(EnumChatFormatting.ITALIC + "Making it even more powerful"); + for(String s : I18nUtil.resolveKeyArray("item.meteorite_sword_seared.desc")) + list.add(EnumChatFormatting.ITALIC + s); } if(this == ModItems.meteorite_sword_reforged) { - list.add(EnumChatFormatting.ITALIC + "The sword has been reforged"); - list.add(EnumChatFormatting.ITALIC + "To rectify past imperfections"); + for(String s : I18nUtil.resolveKeyArray("item.meteorite_sword_reforged.desc")) + list.add(EnumChatFormatting.ITALIC + s); } if(this == ModItems.meteorite_sword_hardened) { - list.add(EnumChatFormatting.ITALIC + "Extremely high pressure has been used"); - list.add(EnumChatFormatting.ITALIC + "To harden the blade further"); + for(String s : I18nUtil.resolveKeyArray("item.meteorite_sword_hardened.desc")) + list.add(EnumChatFormatting.ITALIC + s); } if(this == ModItems.meteorite_sword_alloyed) { - list.add(EnumChatFormatting.ITALIC + "Cobalt fills the fissures"); - list.add(EnumChatFormatting.ITALIC + "Strengthening the sword"); + for(String s : I18nUtil.resolveKeyArray("item.meteorite_sword_alloyed.desc")) + list.add(EnumChatFormatting.ITALIC + s); } if(this == ModItems.meteorite_sword_machined) { - list.add(EnumChatFormatting.ITALIC + "Advanced machinery was used"); - list.add(EnumChatFormatting.ITALIC + "To refine the blade even more"); + for(String s : I18nUtil.resolveKeyArray("item.meteorite_sword_machined.desc")) + list.add(EnumChatFormatting.ITALIC + s); } if(this == ModItems.meteorite_sword_treated) { - list.add(EnumChatFormatting.ITALIC + "Chemicals have been applied"); - list.add(EnumChatFormatting.ITALIC + "Making the sword more powerful"); + for(String s : I18nUtil.resolveKeyArray("item.meteorite_sword_treated.desc")) + list.add(EnumChatFormatting.ITALIC + s); } if(this == ModItems.meteorite_sword_etched) { - list.add(EnumChatFormatting.ITALIC + "Acids clean the material"); - list.add(EnumChatFormatting.ITALIC + "To make this the perfect sword"); + for(String s : I18nUtil.resolveKeyArray("item.meteorite_sword_etched.desc")) + list.add(EnumChatFormatting.ITALIC + s); } if(this == ModItems.meteorite_sword_bred) { - list.add(EnumChatFormatting.ITALIC + "Immense heat and radiation"); - list.add(EnumChatFormatting.ITALIC + "Compress the material"); + for(String s : I18nUtil.resolveKeyArray("item.meteorite_sword_bred.desc")) + list.add(EnumChatFormatting.ITALIC + s); } if(this == ModItems.meteorite_sword_irradiated) { - list.add(EnumChatFormatting.ITALIC + "The power of the Atom"); - list.add(EnumChatFormatting.ITALIC + "Gives the sword might"); + for(String s : I18nUtil.resolveKeyArray("item.meteorite_sword_irradiated.desc")) + list.add(EnumChatFormatting.ITALIC + s); } if(this == ModItems.meteorite_sword_fused) { - list.add(EnumChatFormatting.ITALIC + "This blade has met"); - list.add(EnumChatFormatting.ITALIC + "With the forces of the stars"); + for(String s : I18nUtil.resolveKeyArray("item.meteorite_sword_fused.desc")) + list.add(EnumChatFormatting.ITALIC + s); } if(this == ModItems.meteorite_sword_baleful) { - list.add(EnumChatFormatting.ITALIC + "This sword has met temperatures"); - list.add(EnumChatFormatting.ITALIC + "Far beyond what normal material can endure"); + for(String s : I18nUtil.resolveKeyArray("item.meteorite_sword_baleful.desc")) + list.add(EnumChatFormatting.ITALIC + s); } /* diff --git a/src/main/java/com/hbm/items/tool/ItemWand.java b/src/main/java/com/hbm/items/tool/ItemWand.java index 9bb6dc6ca..d3a532941 100644 --- a/src/main/java/com/hbm/items/tool/ItemWand.java +++ b/src/main/java/com/hbm/items/tool/ItemWand.java @@ -2,6 +2,7 @@ package com.hbm.items.tool; import java.util.List; +import com.hbm.util.I18nUtil; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; @@ -15,22 +16,20 @@ public class ItemWand extends Item { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add("Creative-only item"); - list.add("\"Destruction brings creation\""); - list.add("(Set positions with right click,"); - list.add("set block with shift-right click!)"); + for(String s : I18nUtil.resolveKeyArray( "item.wand_k.desc")) + list.add(s); if(itemstack.stackTagCompound != null && !(itemstack.stackTagCompound.getInteger("x") == 0 && itemstack.stackTagCompound.getInteger("y") == 0 && itemstack.stackTagCompound.getInteger("z") == 0)) { - list.add("Pos: " + itemstack.stackTagCompound.getInteger("x") + ", " + itemstack.stackTagCompound.getInteger("y") + ", " + itemstack.stackTagCompound.getInteger("z")); + list.add(I18nUtil.resolveKey("item.wand_k.pos" , itemstack.stackTagCompound.getInteger("x") , itemstack.stackTagCompound.getInteger("y") , itemstack.stackTagCompound.getInteger("z"))); } else { - list.add("Positions not set!"); + list.add(I18nUtil.resolveKey("item.wand_k.null")); } if(itemstack.stackTagCompound != null) - list.add("Block saved: " + Block.getBlockById(itemstack.stackTagCompound.getInteger("block")).getUnlocalizedName()); + list.add(I18nUtil.resolveKey("item.wand_k.block" , Block.getBlockById(itemstack.stackTagCompound.getInteger("block")).getUnlocalizedName())); } @Override diff --git a/src/main/java/com/hbm/items/tool/ItemWandS.java b/src/main/java/com/hbm/items/tool/ItemWandS.java index ea7ba07fa..f2985ac02 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandS.java +++ b/src/main/java/com/hbm/items/tool/ItemWandS.java @@ -3,6 +3,7 @@ package com.hbm.items.tool; import java.util.List; import java.util.Random; +import com.hbm.util.I18nUtil; import com.hbm.world.machine.FWatz; import com.hbm.world.machine.NuclearReactor; import com.hbm.world.machine.Watz; @@ -19,10 +20,8 @@ public class ItemWandS extends Item { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add("Creative-only item"); - list.add("\"Instant structures for everyone!\""); - list.add("(Cycle with shift-right click,"); - list.add("spawn structures with right click!)"); + for(String s : I18nUtil.resolveKeyArray( "item.wand_s.desc")) + list.add(s); if(itemstack.stackTagCompound != null) { switch(itemstack.stackTagCompound.getInteger("building")) diff --git a/src/main/java/com/hbm/items/tool/WeaponSpecial.java b/src/main/java/com/hbm/items/tool/WeaponSpecial.java index c59daa016..ca10cc59a 100644 --- a/src/main/java/com/hbm/items/tool/WeaponSpecial.java +++ b/src/main/java/com/hbm/items/tool/WeaponSpecial.java @@ -12,6 +12,7 @@ import com.hbm.main.MainRegistry; import com.hbm.potion.HbmPotion; import com.hbm.util.ArmorUtil; +import com.hbm.util.I18nUtil; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.SharedMonsterAttributes; @@ -249,58 +250,52 @@ public class WeaponSpecial extends ItemSword { public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { if(this == ModItems.schrabidium_hammer) { - list.add("Even though it says \"+1000000000"); - list.add("damage\", it's actually \"onehit anything\""); + for(String s : I18nUtil.resolveKeyArray("item.schrabidium_hammer.desc")) + list.add(s); } if(this == ModItems.ullapool_caber) { - list.add("High-yield Scottish face removal."); - list.add("A sober person would throw it..."); + for(String s : I18nUtil.resolveKeyArray("item.ullapool_caber.desc")) + list.add(s); } if(this == ModItems.bottle_opener) { - list.add("My very own bottle opener."); - list.add("Use with caution!"); + for(String s : I18nUtil.resolveKeyArray("item.bottle_opener.desc")) + list.add(s); } if(this == ModItems.shimmer_sledge) { if(MainRegistry.polaroidID == 11) { - list.add("shimmer no"); - list.add("drop that hammer"); - list.add("you're going to hurt somebody"); - list.add("shimmer no"); - list.add("shimmer pls"); + for(String s : I18nUtil.resolveKeyArray("item.shimmer_sledge.desc.hide")) + list.add(s); } else { - list.add("Breaks everything, even portals."); + list.add(I18nUtil.resolveKey("item.shimmer_sledge.desc")); } } if(this == ModItems.shimmer_axe) { if(MainRegistry.polaroidID == 11) { - list.add("shim's toolbox does an e-x-p-a-n-d"); + list.add(I18nUtil.resolveKey("item.shimmer_axe.desc.hide")); } else { - list.add("Timber!"); + list.add(I18nUtil.resolveKey("item.shimmer_axe.desc")); } } if(this == ModItems.wrench) { - list.add("Mechanic Richard"); + list.add(I18nUtil.resolveKey("item.wrench.desc")); } if(this == ModItems.wrench_flipped) { - list.add("Wrench 2: The Wrenchening"); + list.add(I18nUtil.resolveKey("item.wrench_flipped.desc")); } if(this == ModItems.memespoon) { - list.add(EnumChatFormatting.DARK_GRAY + "Level 10 Shovel"); - list.add(EnumChatFormatting.AQUA + "Deals crits while the wielder is rocket jumping"); - list.add(EnumChatFormatting.RED + "20% slower firing speed"); - list.add(EnumChatFormatting.RED + "No random critical hits"); + for(String s : I18nUtil.resolveKeyArray("item.memespoon.desc")) + list.add(s); } if(this == ModItems.wood_gavel) { - list.add("Thunk!"); + list.add(I18nUtil.resolveKey("item.wood_gavel.desc")); } if(this == ModItems.lead_gavel) { - list.add("You are hereby sentenced to lead poisoning."); + list.add(I18nUtil.resolveKey("item.lead_gavel.desc")); } if(this == ModItems.diamond_gavel) { - list.add("The joke! It makes sense now!!"); - list.add(""); - list.add(EnumChatFormatting.BLUE + "Deals as much damage as it needs to."); + for(String s : I18nUtil.resolveKeyArray("item.diamond_gavel.desc")) + list.add(s); } } diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 7e3226470..dc43341b9 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -717,9 +717,8 @@ public class ModEventHandlerClient { } } else { - list.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC +"Hold <" + - EnumChatFormatting.YELLOW + "" + EnumChatFormatting.ITALIC + "LSHIFT" + - EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC + "> to display protection info"); + list.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC + I18nUtil.resolveKey("tooltip.show" , + EnumChatFormatting.YELLOW +"" + EnumChatFormatting.ITALIC + "LSHIFT")); } } @@ -733,13 +732,12 @@ public class ModEventHandlerClient { if(!Keyboard.isKeyDown(Keyboard.KEY_LSHIFT) && !(Minecraft.getMinecraft().currentScreen instanceof GUIArmorTable)) { - list.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC +"Hold <" + - EnumChatFormatting.YELLOW + "" + EnumChatFormatting.ITALIC + "LSHIFT" + - EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC + "> to display installed armor mods"); + list.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC + I18nUtil.resolveKey("tooltip.armormodsshow" , + EnumChatFormatting.YELLOW +"" + EnumChatFormatting.ITALIC + "LSHIFT" )); } else { - list.add(EnumChatFormatting.YELLOW + "Mods:"); + list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("tooltip.armormods")); ItemStack[] mods = ArmorModHandler.pryMods(stack); @@ -760,12 +758,12 @@ public class ModEventHandlerClient { List names = ItemStackUtil.getOreDictNames(stack); if(names.size() > 0) { - list.add(EnumChatFormatting.BLUE + "Ore Dict:"); + list.add(EnumChatFormatting.BLUE + I18nUtil.resolveKey("tooltip.oredict")); for(String s : names) { list.add(EnumChatFormatting.AQUA + " -" + s); } } else { - list.add(EnumChatFormatting.RED + "No Ore Dict data!"); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKey("tooltip.oredict.null")); } } @@ -786,10 +784,10 @@ public class ModEventHandlerClient { list.add(""); if(entry.entry == EnumEntryType.ADD) - list.add(EnumChatFormatting.GOLD + "Adds " + entry.value + " to the custom nuke stage " + entry.type); + list.add(EnumChatFormatting.GOLD + I18nUtil.resolveKey("tooltip.customnuke",entry.value,entry.type)); if(entry.entry == EnumEntryType.MULT) - list.add(EnumChatFormatting.GOLD + "Adds multiplier " + entry.value + " to the custom nuke stage " + entry.type); + list.add(EnumChatFormatting.GOLD + I18nUtil.resolveKey("tooltip.customnukemultiplier",entry.value ,entry.type)); } try { diff --git a/src/main/java/com/hbm/util/function/Function.java b/src/main/java/com/hbm/util/function/Function.java index 9dd32272c..0e82a7f07 100644 --- a/src/main/java/com/hbm/util/function/Function.java +++ b/src/main/java/com/hbm/util/function/Function.java @@ -4,6 +4,7 @@ import java.util.Locale; import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; import net.minecraft.util.EnumChatFormatting; /** @@ -50,21 +51,21 @@ public abstract class Function { public FunctionLogarithmic(double level) { super(level); this.withOff(1D); } @Override public double effonix(double x) { return Math.log10(getX(x)) * level; } @Override public String getLabelForFuel() { return "log10(" + getXName(false) + ") * " + String.format(Locale.US, "%,.1f", this.level); } - @Override public String getDangerFromFuel() { return EnumChatFormatting.YELLOW + "MEDIUM / LOGARITHMIC"; } + @Override public String getDangerFromFuel() { return EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("trait.rbmk.BurnFunc")[1]; } } public static class FunctionPassive extends FunctionSingleArg { public FunctionPassive(double level) { super(level); } @Override public double effonix(double x) { return this.level; } @Override public String getLabelForFuel() { return "" + String.format(Locale.US, "%,.1f", this.level); } - @Override public String getDangerFromFuel() { return EnumChatFormatting.DARK_GREEN + "SAFE / PASSIVE"; } + @Override public String getDangerFromFuel() { return EnumChatFormatting.DARK_GREEN + I18nUtil.resolveKeyArray("trait.rbmk.BurnFunc")[0]; } } public static class FunctionSqrt extends FunctionSingleArg { public FunctionSqrt(double level) { super(level); } @Override public double effonix(double x) { return BobMathUtil.squirt(getX(x)) * this.level; } @Override public String getLabelForFuel() { return "sqrt(" + getXName(false) + ") * " + String.format(Locale.US, "%,.3f", this.level); } //not entirely correct but good enough - @Override public String getDangerFromFuel() { return EnumChatFormatting.YELLOW + "MEDIUM / SQUARE ROOT"; } + @Override public String getDangerFromFuel() { return EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("trait.rbmk.BurnFunc")[5]; } } public static class FunctionSqrtFalling extends FunctionSqrt { @@ -78,7 +79,7 @@ public abstract class Function { public FunctionLinear(double level) { super(level); } @Override public double effonix(double x) { return getX(x) * this.level; } @Override public String getLabelForFuel() { return getXName(true) + " * " + String.format(Locale.US, "%,.1f", this.level); } - @Override public String getDangerFromFuel() { return EnumChatFormatting.RED + "DANGEROUS / LINEAR"; } + @Override public String getDangerFromFuel() { return EnumChatFormatting.RED + I18nUtil.resolveKeyArray("trait.rbmk.BurnFunc")[6]; } } public static class FunctionQuadratic extends FunctionDoubleArg { @@ -86,6 +87,6 @@ public abstract class Function { public FunctionQuadratic(double level, double vOff) { super(level, vOff); } @Override public double effonix(double x) { return getX(x) * getX(x) * this.level + this.vOff; } @Override public String getLabelForFuel() { return getXName(true) + "² * " + String.format(Locale.US, "%,.1f", this.level) + (vOff != 0 ? (" + " + String.format(Locale.US, "%,.1f", vOff)) : ""); } - @Override public String getDangerFromFuel() { return EnumChatFormatting.RED + "DANGEROUS / QUADRATIC"; } + @Override public String getDangerFromFuel() { return EnumChatFormatting.RED + I18nUtil.resolveKeyArray("trait.rbmk.BurnFunc")[7]; } } } diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 19cb1bd86..696c95c96 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -131,6 +131,7 @@ achievement.ZIRNOXBoom=CIRNOX armor.blastProtection=Damage modifier of %s against explosions armor.cap=Hard damage cap of %s +armor.charge=Charge: %s / %s armor.damageModifier=Damage modifier of %s against %s armor.dash=Grants %s dashes armor.electricJetpack=Ion Jetpack @@ -164,6 +165,42 @@ armorMod.chestplates=Chestplates armorMod.helmets=Helmets armorMod.insertHere=Insert armor to modify... armorMod.leggings=Leggings +armorMod.slot=Slot: +armorMod.mod.auto=Imported from Japsterdam. +armorMod.mod.bandaid=3%% chance for full heal when damaged$ (3%% chance for full heal) +armorMod.mod.bathwater=Inflicts poison on the attacker$ (Poisons attackers) +armorMod.mod.charm=You feel blessed. +armorMod.mod.charm.protection=Diverts meteors away from the player.$Meteors no longer destroy blocks.$Halves broadcaster damage +armorMod.mod.charm.meteor=Disables meteorite spawning.$Negates broadcaster damage +armorMod.mod.cladding= rad-resistance$ radiation resistence) +armorMod.mod.defuser=Defuses nearby creepers$ (Defuses creepers) +armorMod.mod.gasmask=Gas protection$Will never protect against:$ (gas protection) +armorMod.mod.health= health$Nostalgia +armorMod.mod.Ink=10%% chance to nullify damage$Flowers!$ (10%% chance to nullify damage) +armorMod.mod.Insert=%% damage$%% projectile damage$%% explosion damage$%% speed$HP +armorMod.mod.Iron=+0.5 knockback resistance$ (+0.5 knockback resistence) +armorMod.mod.Knife=Pain.$ $Hurts, doesn't it? +armorMod.mod.Lens=Satellite Frequency: $ (Freq: %%d) +armorMod.mod.Lodestone=Attracts nearby items$Item attraction range: %%d$ (Magnetic range: %%d) +armorMod.mod.Milk=Removes bad potion effects$ (Removes bad potion effects) +armorMod.mod.MorningGlory=5%% chance to apply resistance when hit, wither immunity$ (5%% for resistance, wither immunity) +armorMod.mod.Obsidian=Makes dropped armor indestructible$ (Item indestructible) +armorMod.mod.Pads=%% fall damage$Passively charges electric armor when walking$%% fall dmg / passive charge) +armorMod.mod.Polish=5%% chance to nullify damage$ (5%% chance to nullify damage) +armorMod.mod.Quartz=Taking damage removes 10 RAD$ (-10 RAD when hit) +armorMod.mod.Revive= revives left +armorMod.mod.Revive.scrumpy=But how did you survive?$I was drunk. +armorMod.mod.Revive.wild_p=§8Explosive §cReactive "§8Plot §cArmor +armorMod.mod.Revive.fabsols_vodka=In the news:$§c§lMan literally too angry to die.$ $§o"I ain't got time to die" says local$man after ripping the physical manifestation$of disaster itself in half. +armorMod.mod.Sensor=Beeps near hazardous gasses$Works in the inventory or when applied to armor$ (Detects gasses) +armorMod.mod.Serum=Cures poison and gives strength$ (replaces poison with strength) +armorMod.mod.Servos=Chestplate: Haste I / Damage +50%%$Leggings: Speed +25%% / Jump II$ (Haste I / Damage +50%%)$ (Speed +25%% / Jump II) +armorMod.mod.Servos.desh=Chestplate: Haste III / Damage +150%%$Leggings: Speed +50%% / Jump III$ (Haste III / Damage +150%%)$ (Speed +50%% / Jump III) +armorMod.mod.Shackles=You will speak when I ask you to.$You will eat when I tell you to.$You will die when I allow you to.$∞ revives left$ (∞ revives left) +armorMod.mod.Tesla=Zaps nearby entities (requires full electric set)$ (zaps nearby entities) +armorMod.mod.TwoKick="I've had worse"$ (Shotgun punches) +armorMod.mod.V1=BLOOD IS FUEL$ (BLOOD IS FUEL) +armorMod.mod.WD40=Highly reduces damage taken by armor, +2 HP$ (-80%% armor wear / +2 HP) armorMod.type.boots=Boots armorMod.type.chestplate=Chestplate armorMod.type.cladding=Cladding @@ -866,6 +903,7 @@ death.attack.tau=%1$s was riddeled by %2$s using negatively charged tauons. death.attack.tauBlast=%1$s charged the XVL1456 for too long and was blown into pieces. death.attack.teleporter=%1$s was teleported into nothingness. +desc.block.blastinfo=Blast Resistance: %s desc.gui.assembler.warning=§cError:§r This machine requires an assembly template! desc.gui.chemplant.warning=§cError:§r This machine requires an chemistry template! desc.gui.gasCent.enrichment=§2Enrichment§r$Uranium enrichment requires cascades.$Two-centrifuge cascades will give$uranium fuel, four-centrifuge cascades$will give total separation. @@ -980,6 +1018,7 @@ desc.item.battery.charge=Charge: %s / %sHE desc.item.battery.chargePerc=Charge: %s%% desc.item.battery.chargeRate=Charge rate: %sHE/tick desc.item.battery.dischargeRate=Discharge rate: %sHE/tick +desc.item.detonator=Position set!$No position set! desc.item.durability=Durability: %s desc.item.grenade.fuse=Fuse: %s desc.item.grenade.fuseImpact=Impact @@ -1022,6 +1061,20 @@ desc.misc.noPos=No position set! desc.misc.pos=Set pos to: %s, %s, %s desc.misc.posSet=Position set! desc.item.wasteCooling=Cool in a Spent Fuel Pool Drum +desc.item.upgrade.machine=Mining Drill:§r$Laser Miner:$Electric Furnace:§r$Assembly Machine:§r$Chemical Plant:§r$Oil Wells:§r$Crystallizer:§r$Cyclotron:§r$Flare Stack:§r$Maxwell:§r$Turbofan:§r$Forcefield Range Upgrade§r$Forcefield Health Upgrade§r$Mining Laser Upgrade§r$Gas Centrifuge Upgrade§r$ +desc.item.upgrade.speed=Delay -%s%% / Consumption +%sHE/t$Delay ÷%s / Consumption +%sHE/t$Delay -%s%% / Consumption +%s%%$Speed x%s$Damage +%sdmg/t +desc.item.upgrade.effect=Radius +%sm / Consumption +%sHE/t$+%s%% chance of not consuming an item / Acid consumption +%smB$-%s%% chance of incrementing overheat counter$+%s%% power production$Range +%sm +desc.item.upgrade.power=Consumption -%sHE/t / Delay +%s%%$Consumption -%s%% / Delay +%s%%$Consumption -%skHE/t$Consumption -%sHE/t$Consumption when firing -%sHE/t +desc.item.upgrade.fortune=Fortune +%s / Delay +%s +desc.item.upgrade.afterburn=Production x%s / Consumption x%s$Afterburn +%ss$Burn %smB of gas for %sHE/t +desc.item.upgrade.forcefield=Radius +16 / Consumption +500$Max. Health +50 / Consumption +250$Stacks to 16 +desc.item.upgrade.smelter=Smelts blocks. Easy enough. +desc.item.upgrade.shredder=Crunches ores +desc.item.upgrade.centrifuge=Hopefully self-explanatory +desc.item.upgrade.crystallizer=Your new best friend +desc.item.upgrade.screm=It's like in Super Mario where all blocks are$actually Toads, but here it's Half-Life scientists$and they scream. A lot. +desc.item.upgrade.nullifier=50%% chance to override worthless items with /dev/zero$50%% chance to move worthless items to /dev/null +desc.item.upgrade.gc_speed=Allows for total isotopic separation of HEUF6$§ealso your centrifuge goes sicko mode desc.item.zirnoxBreedingRod=§2[ZIRNOX Breeding Rod]$§ePlace next to fuel rods to breed$§eLasts %d ticks desc.item.zirnoxRod=§a[ZIRNOX Fuel Rod]$§eGenerates %1$d heat per tick$§eLasts %2$d ticks @@ -1403,6 +1456,26 @@ hbmfluid.woodoil=Wood Oil hbmfluid.xenon=Xenon Gas hbmfluid.xpjuice=Experience Juice hbmfluid.xylene=BTX + +hbmfluid.Trait.Combustible=[Combustible]$Provides §c%sHE §6per bucket$Fuel grade: §c%s +hbmfluid.Trait.Combustible.FuelGrade=Low$Medium$High$Aviation$Gaseous +hbmfluid.Trait.Coolable=Thermal capacity: %s TU$Efficiency: %s%% +hbmfluid.Trait.Corrosive=[Strongly Corrosive]$[Corrosive] +hbmfluid.Trait.Flammable=[Flammable]$Provides §c%sTU §eper bucket +hbmfluid.Trait.Poison=[Toxic Fumes] +hbmfluid.Trait.PWRModerator=[PWR Flux Multiplier]$"Core flux %s%s%% +hbmfluid.Trait.Toxin=[Toxin] +hbmfluid.Trait.VentRadiation=[Radioactive] +hbmfluid.TraitSimple.Amat=[Antimatter] +hbmfluid.TraitSimple.Delicious=[Delicious] +hbmfluid.TraitSimple.Gaseous=[Gaseous] +hbmfluid.TraitSimple.Gaseous_ART=[Gaseous at Room Temperature] +hbmfluid.TraitSimple.LeadContainer=[Requires hazardous material tank to hold] +hbmfluid.TraitSimple.Leaded=[Leaded Fuel] +hbmfluid.TraitSimple.Liquid=[Liquid] +hbmfluid.TraitSimple.Plasma=[Plasma] +hbmfluid.TraitSimple.Viscous=[Viscous] + hbmpseudofluid.none=Empty hbmpseudofluid.heuf6=Highly Enriched UF6 hbmpseudofluid.meuf6=Medium Enriched UF6 @@ -1751,9 +1824,14 @@ item.ams_catalyst_strontium.name=Strontium Reaction Catalyst item.ams_catalyst_thorium.name=Thorium Reaction Catalyst item.ams_catalyst_tungsten.name=Tungsten Reaction Catalyst item.ams_core_eyeofharmony.name=Eye of Harmony (AMS/DFC Core) +item.ams_core_eyeofharmony.desc=A star collapsing in on itself, mere nanoseconds$away from being turned into a black hole,$frozen in time. If I didn't know better I$would say this is some deep space magic$bullcrap some guy made up to sound intellectual.$Probably Steve from accounting. You still owe me$ten bucks. item.ams_core_sing.name=Vibrant Singularity (AMS/DFC Core) +item.ams_core_sing.desc=A modified undefined state of spacetime$used to aid in inter-gluon fusion and$spacetime annihilation. Yes, this destroys$the universe itself, slowly but steadily,$but at least you can power your toaster with$this, so it's all good. item.ams_core_thingy.name=Thingy (AMS/DFC Core) +item.ams_core_thingy.desc=...$"...$...am I even holding this right?$It's a small metal thing. I dunno where it's from$or what it does, maybe they found it on a$junkyard and sold it as some kind of antique$artifact. If it weren't for the fact that I can$actually stuff this into some great big laser$reactor thing, I'd probably bring it back to where$it belongs. In the trash. +item.ams_core_thingy_hide.desc=Yeah I'm not even gonna question that one. item.ams_core_wormhole.name=Tiny Wormhole (AMS/DFC Core) +item.ams_core_wormhole.desc=A cloud of billions of nano-wormholes which$deliberately fail at tunneling matter from$another dimension, rather it converts all$that matter into pure energy. That means$you're actively contributing to the destruction$of another dimension, sucking it dry like a$juicebox.$That dimension probably sucked, anyways. I$bet it was full of wasps or some crap, man,$I hate these things. item.ams_focus_blank.name=Blank Stabilizer Focus item.ams_focus_booster.name=Boosting Stabilizer Focus item.ams_focus_booster.desc=Weaker restriction field and core energy injection:$More heat generation, extra energy. @@ -1964,6 +2042,7 @@ item.bottle_empty.name=Empty Bomb-Shaped Bottle item.bottle_mercury.name=Bottle of Mercury item.bottle_nuka.name=Bottle of Nuka Cola item.bottle_opener.name=Hbm's Own Self-Made Bottle Opener +item.bottle_opener.desc=My very own bottle opener.$Use with caution! item.bottle_quantum.name=Bottle of Nuka Cola Quantum item.bottle_rad.name=Bottle of S~Cola RAD item.bottle_sparkle.name=Bottle of S~Cola @@ -2118,6 +2197,7 @@ item.centrifuge_tower.name=Centrifuge Tower item.chainsaw.name=Chainsaw item.cheese.name=Cheese item.cheese_quesadilla.name=Cheese Quesadilla +item.cheese_quesadilla.desc=That's what a 50 year old yeast infection does to you. item.chemical_dye.black.name=Chemical Dye (Black) item.chemical_dye.blue.name=Chemical Dye (Blue) item.chemical_dye.brown.name=Chemical Dye (Brown) @@ -2360,6 +2440,7 @@ item.debris_graphite.name=Hot Graphite Chunk item.debris_metal.name=Broken Metal Bar item.debris_shrapnel.name=Walkway Shrapnel item.definitelyfood.name=TotallyNotDirt-Brand MRE +item.definitelyfood.desc=A'right, I got sick and tired of$having to go out, kill things just$to get food and not die, so here is $my absolutely genius solution:$ $Have some edible dirt. item.defuser.name=High-Tech Bomb Defusing Device item.defuser_gold.name=Golden Wire Cutter item.demon_core_closed.name=Closed Demon Core @@ -2374,12 +2455,15 @@ item.designator_arty_range.name=Long Range Artillery Remote item.designator_manual.name=Manual Target Designator item.designator_range.name=Long Range Target Designator item.detonator.name=Detonator +item.detonator.desc=Shift right-click to set position,$right-click to detonate! +item.detonator.pos.desc=No position set!$Linked to %s, %s, %s item.detonator_de.name=Dead Man's Explosive item.detonator_deadman.name=Dead Man's Detonator item.detonator_laser.name=Laser Detonator item.detonator_multi.name=Multi Detonator item.deuterium_filter.name=Deuterium Filter item.diamond_gavel.name=Diamond Gavel +item.diamond_gavel.desc=The joke! It makes sense now!!$ $§9Deals as much damage as it needs to. item.dieselsuit_boots.name=Diesel-Powered High Heels item.dieselsuit_helmet.name=Diesel-Powered Head-Mounted Environmental Sensor item.dieselsuit_legs.name=Diesel-Powered Leg Servos @@ -2563,6 +2647,8 @@ item.gem_volcanic.name=Volcanic Gem item.generator_front.name=Generator Front item.generator_steel.name=Generator Body item.glitch.name=Glitch +item.glitch.desc=It's a gamble!$Click-click-click!$Creek!$Bzzzt!$TS staring off into space.$BANG!!$Woop!$Poow!$Pft!$GF fgnevat bss vagb fcnpr.$Backup memory #8 on 1.44 million bytes.$PTANG!$Bzzt-zrrt!$Clang, click-brrthththrtrtrtrtrtr!$KABLAM!$PLENG!$Wheeeeeeee-$Thump.$BANG! Choo-chooo! B A N G ! ! ! +item.glitch.message=Sorry nothing.$Prometheus was punished by the gods by giving the gift of knowledge to man. He was cast into the bowels of the earth and pecked by birds.$Oh, and by the way: The polaroid shifts reality. Things can be different if the polaroid is broken.$Have some free stuff. You'll need it for that one cryptic achievement.$v yvxr lbhe nggvghqr!$89%% of magic tricks are not magic. Technically, they are sorcery.$Here ya go.$Ë$Good day, I am text$73616d706c652074657874!$Budget cuts, no effect for you.$oof$Tank!$More devastating than a falling boxcar!$Ha!$Watch your head!$Bam!$t's dangerous to go alone, take this! item.glowing_stew.name=Glowing Mushroom Stew item.glyphid_meat.name=Glyphid Meat item.glyphid_meat_grilled.name=Grilled Glyphid Meat @@ -2875,6 +2961,7 @@ item.ingot_schrabidium_fuel.name=Ingot of Schrabidium Fuel item.ingot_schraranium.name=Schraranium Ingot item.ingot_schraranium.desc=Made from uranium in a schrabidium transmutator item.ingot_semtex.name=Bar of Semtex +item.ingot_semtex.desc=Semtex H Plastic Explosive$Performant explosive for many applications.$Edible item.ingot_smore.name=S'more Ingot item.ingot_solinium.name=Solinium Ingot item.ingot_sr90.name=Strontium-90 Ingot @@ -2920,11 +3007,16 @@ item.iv_xp.name=Experience Bag item.iv_xp_empty.name=Empty Experience Bag item.jackt.name=Damn Stylish Ballistic Jacket item.jackt2.name=Damn Stylish Ballistic Jacket 2: Tokyo Drift +item.jetpack.desc=Can be worn on its own! item.jetpack_boost.name=Boostpack +item.jetpack_boost.desc=High-powered vectorized jetpack.$Highly increased fuel consumption. item.jetpack_break.name=Builder's Jetpack +item.jetpack_break.desc=Regular jetpack that will automatically hover mid-air.$Sneaking will stop hover mode.$Hover mode will consume less fuel and increase air-mobility. item.jetpack_fly.name=Jetpack +item.jetpack_fly.desc=Regular jetpack for simple upwards momentum. item.jetpack_tank.name=Jetpack Reserve Fuel Tank item.jetpack_vector.name=Vectored Jetpack +item.jetpack_vector.desc=High-mobility jetpack.$Higher fuel consumption. item.journal_bj.name=Whiskey Drenched Notebook item.journal_pip.name=Survivalist's Journal item.journal_silver.name=Contractor's Notes @@ -2946,7 +3038,9 @@ item.laser_crystal_digamma.name=Digamma Laser Crystal item.laser_crystal_dnt.desc=Dineutronium-Spark Fermion Supercrystal item.laser_crystal_dnt.name=Spark Laser Crystal item.lead_gavel.name=Leaden Gavel +item.lead_gavel.desc=You are hereby sentenced to lead poisoning. item.lemon.name="Lemon" +item.lemon.desc=Eh, good enough. item.letter.name=Express Mail item.levitation_unit.name=Gravity Manipulator item.lignite.name=Lignite @@ -2959,7 +3053,9 @@ item.liquidator_plate.name=Liquidator Suit Chestplate item.lithium.name=Lithium Cube item.lodestone.name=Lodestone item.loop_stew.name=IT Breakfast +item.loop_stew.desc=A very, very healthy breakfast. item.loops.name=Lööps +item.loops.desc=Brøther, may I have some lööps? item.loot_10.name=Size 10 Missile Loot Crate item.loot_15.name=Size 15 Missile Loot Crate item.loot_misc.name=General Missile Loot Crate @@ -2986,28 +3082,44 @@ item.mechanism_rifle_2.name=Advanced Rifle Mechanism item.mechanism_special.name=High-Tech Weapon Mechanism item.med_bag.name=Doctor's Bag item.med_ipecac.name=Ipecac Syrup +item.med_ipecac.desc=Bitter juice that will cause your stomach$to forcefully eject its contents. item.med_ptsd.name=PTSD Medication +item.med_ptsd.desc=This isn't even PTSD mediaction, it's just$Ipecac in a different bottle! item.med_schiziphrenia.name=Schizophrenia Medication +item.med_schiziphrenia.desc=Makes the voices go away. Just for a while.$ $...$Better not take it. item.medal_liquidator.name=Liquidator Medal item.meltdown_tool.name=Dyatlov Instant Meltdown Applicator item.memespoon.name=§eMarket Gardener +item.memespoon.desc=§8Level 10 Shovel$§bDeals crits while the wielder is rocket jumping$§c20%% slower firing speed$§cNo random critical hits item.memory.name=item.null.name item.mese_gavel.name=Mese Gavel item.mese_pickaxe.name=Mese Pickaxe item.meteor_charm.name=Meteor Charm item.meteor_remote.name=Meteorite Remote item.meteorite_sword.name=Meteorite Sword +item.meteorite_sword.desc=Forged from a fallen star$Sharper than most terrestrial blades item.meteorite_sword_seared.name=Meteorite Sword (Seared) +item.meteorite_sword_seared.desc=Fire strengthens the blade$Making it even more powerful item.meteorite_sword_reforged.name=Meteorite Sword (Reforged) +item.meteorite_sword_reforged.desc=The sword has been reforged$To rectify past imperfections item.meteorite_sword_hardened.name=Meteorite Sword (Hardened) +item.meteorite_sword_hardened.desc=Extremely high pressure has been used$To harden the blade further item.meteorite_sword_alloyed.name=Meteorite Sword (Alloyed) +item.meteorite_sword_alloyed.desc=Cobalt fills the fissures$Strengthening the sword item.meteorite_sword_machined.name=Meteorite Sword (Machined) +item.meteorite_sword_machined.desc=Advanced machinery was used$To refine the blade even more item.meteorite_sword_treated.name=Meteorite Sword (Treated) +item.meteorite_sword_treated.desc=Chemicals have been applied$Making the sword more powerful item.meteorite_sword_etched.name=Meteorite Sword (Etched) +item.meteorite_sword_etched.desc=Acids clean the material$To make this the perfect sword item.meteorite_sword_bred.name=Meteorite Sword (Bred) +item.meteorite_sword_bred.desc=Immense heat and radiation$Compress the material item.meteorite_sword_irradiated.name=Meteorite Sword (Irradiated) +item.meteorite_sword_irradiated.desc=The power of the Atom$Gives the sword might item.meteorite_sword_fused.name=Meteorite Sword (Fused) +item.meteorite_sword_fused.desc=This blade has met$With the forces of the stars item.meteorite_sword_baleful.name=Meteorite Sword (Baleful) +item.meteorite_sword_baleful.desc=This sword has met temperatures$Far beyond what normal material can endure item.mike_cooling_unit.name=Deuterium Cooling Unit item.mike_core.name=Uranium Coated Deuterium Tank item.mike_deut.name=Deuterium Tank @@ -3042,6 +3154,7 @@ item.missile_nuclear_cluster.name=Thermonuclear Missile item.missile_rain.name=Bomblet Rain item.missile_schrabidium.name=Schrabidium Missile item.missile_shuttle.name=Reliant Robin Space Shuttle +item.missile_shuttle.desc=Tonite, on bo''om gear:$James huffs leaded gasoline and$goes insane, Richard spends the$entire budget on a broken .PNG,$And I forget to set the infinite$Water tanks on our RBMK to flow$out, blowing up our entire base item.missile_skin_camo.name=Missile Skin: Camo item.missile_skin_color.desc=I can't find my missile anymore! item.missile_skin_desert.name=Missile Skin: Desert Camo @@ -3061,6 +3174,7 @@ item.missile_skin_soviet_glory.desc=услуга перевода недосту item.missile_skin_soviet_stank.name=Missile Skin: Soviet Stank item.missile_skin_soviet_stank.desc=This one's got the real 60's stank to it. item.missile_soyuz.name=Soyuz-FG +item.missile_soyuz.desc=Skin:$Original$Luna Space Center$Post War item.missile_soyuz_lander.name=Orbital Module item.missile_soyuz_lander.desc=Doubles as a crappy lander! item.missile_strong.name=Strong HE Missile @@ -3207,6 +3321,7 @@ item.multitool_miner.name=Power Fist (Extracting Mining Laser) item.multitool_silk.name=Power Fist (Silk Touch Claw) item.multitool_sky.name=Power Fist (Crack the Sky) item.mysteryshovel.name=Brittle Spade +item.mysteryshovel.desc=Lost but not forgotten item.n2_charge.name=Large Explosive Charge item.neutrino_lens.name=Neutrino Lens item.neutron_reflector.name=Neutron Reflector @@ -3388,6 +3503,7 @@ item.particle_strange.name=Strange Quark Capsule item.particle_tachyon.name=Tachyon Capsule item.parts_legendary.name=Legendary Parts item.peas.name=Peas +item.peas.desc=He accepts your offering. item.pedestal_steel.name=Steel Pedestal item.pellet_advanced.name=Advanced Watz Performance Improver item.pellet_antimatter.name=Antimatter Cluster @@ -3644,6 +3760,7 @@ item.primer_buckshot.name=Buckshot Primer (x12) item.protection_charm.name=Charm of Protection item.prototype_kit.name=Prototype Kit item.pudding.name=Pudding +item.pudding.desc=What if he did?$What if he didn't?$What if the world was made of pudding? item.pwr_fuel.bfb_am_mix.name=Fuel Grade Americium PWR BFB Rod item.pwr_fuel.bfb_pu241.name=Plutonium-241 PWR BFB Rod item.pwr_fuel.hea242.name=HEA-242 PWR Fuel Rod @@ -3696,6 +3813,7 @@ item.radaway_strong.name=Strong RadAway item.radx.name=Rad-X item.radx.desc=Increases radiation resistance by 0.2 (37%%) for 3 minutes item.rag.name=Cloth +item.rag.desc=Drop into water to make damp cloth.$Right-click to urinate on the cloth. item.rag_damp.name=Damp Cloth item.rag_piss.name=Piss-Soaked Rag item.rbmk_fuel_balefire.name=Balefire RBMK Fuel Rod @@ -4002,6 +4120,7 @@ item.schnitzel_vegan.name=Vegan Schnitzel item.schrabidium_axe.name=Schrabidium Axe item.schrabidium_boots.name=Schrabidium Boots item.schrabidium_hammer.name=Schrabidium Hammer +item.schrabidium_hammer.desc=Even though it says "+1000000000"$damage", it's actually "onehit anything" item.schrabidium_helmet.name=Schrabidium Helmet item.schrabidium_hoe.name=Schrabidium Hoe item.schrabidium_legs.name=Schrabidium Leggings @@ -4030,10 +4149,14 @@ item.servo_set.name=Servo Set item.servo_set_desh.name=Desh Servo Set item.shackles.name=Shackles item.shimmer_axe.name=Shimmer Axe +item.shimmer_axe.desc=Timber! +item.shimmer_axe.desc.hide=shim's toolbox does an e-x-p-a-n-d item.shimmer_axe_head.name=Heavy Axe Head item.shimmer_handle.name=Reinforced Polymer Handle item.shimmer_head.name=Heavy Hammer Head item.shimmer_sledge.name=Shimmer Sledge +item.shimmer_sledge.desc=Breaks everything, even portals. +item.shimmer_sledge.desc.hide=shimmer no$drop that hammer$you're going to hurt somebody$shimmer no$shimmer pls item.singularity.name=Singularity item.singularity_counter_resonant.name=Contained Counter-Resonant Singularity item.singularity_micro.name=Micro Singularity @@ -4155,6 +4278,7 @@ item.tank_waste_7.name=Mud Container item.tank_waste_8.name=Mud Container item.telepad.name=Telepad item.tem_flakes.name=Tem Flakes +item.tem_flakes.desc=Heals 2HP DISCOUNT FOOD OF TEM!!!$Heals 2HP food of tem$Heals food of tem (expensiv) item.template_folder.name=Machine Template Folder item.template_folder.desc=Machine Templates: Paper + Dye$Fluid IDs: Iron Plate + Dye$Press Stamps: Flat Stamp$Siren Tracks: Insulator + Steel Plate item.test_nuke_igniter.name=Igniter @@ -4208,7 +4332,9 @@ item.turret_rocket_ammo.name=Rocket Turret 2x4 Ammunition item.turret_spitfire_ammo.name=AA-Shell item.turret_tau_ammo.name=Tau Turret Uranium Ammo item.twinkie.name=Twinkie +item.twinkie.desc=Expired 600 years ago! item.ullapool_caber.name=Ullapool Caber +item.ullapool_caber.desc=High-yield Scottish face removal.$A sober person would throw it... item.undefined.name=Undefined item.upgrade_5g.name=5G Radiation Emitter Upgrade item.upgrade_afterburn_1.name=Afterburner Upgrade Mk.I @@ -4249,8 +4375,14 @@ item.v1.name=V1 item.volcanic_pickaxe.name=Molten Pickaxe item.wand_d.name=Debug Wand item.wand_k.name=Construction Wand +item.wand_k.block=Block saved: %s +item.wand_k.desc=Creative-only item$"Destruction brings creation"$(Set positions with right click,$set block with shift-right click!) +item.wand_k.null=Positions not set! +item.wand_k.pos=Pos: %s, %s, %s item.wand_s.name=Structure Wand +item.wand_s.desc=Creative-only item$"Instant structures for everyone!"$(Cycle with shift-right click,$spawn structures with right click!) item.structure_custommachine.name=Custom Machine Structure Output Wand +item.structure_custommachine.desc=Click Custom Machine Structure Positioning Anchor to$Confirm the location of the custom machine core block.$Output all blocks between Position1 and Position2 with$metadata to \"CMstructureOutput.txt\" in hbmConfig. item.warhead_buster_large.name=Large Bunker Buster Warhead item.warhead_buster_medium.name=Medium Bunker Buster Warhead item.warhead_buster_small.name=Small Bunker Buster Warhead @@ -4333,9 +4465,12 @@ item.wire_schrabidium.name=Schrabidium Wire item.wire_tungsten.name=Tungsten Wire item.wiring_red_copper.name=Cable Drum item.wood_gavel.name=Wooden Gavel +item.wood_gavel.desc=Thunk! item.wrench.name=Pipe Wrench +item.wrench.desc=Mechanic Richard item.wrench_archineer.name=Archineer's Wrench item.wrench_flipped.name=Blade on a Wrench +item.wrench_flipped.desc=Wrench 2: The Wrenchening item.xanax.name=NAXA Anti-Digamma Medication item.xanax.desc=Removes 500mDRX item.zirconium_legs.name=Zirconium Pants @@ -4681,6 +4816,7 @@ tile.cm_tank.alloy.name=Advanced Alloy Tank tile.cm_tank.desh.name=Desh Tank tile.cm_tank.steel.name=Steel Tank tile.cm_tank.tcalloy.name=Technetium Steel Tank +tile.cm_paperPress.name=Paper Press tile.cmb_brick.name=CMB Steel Tile tile.cmb_brick_reinforced.name=Reinforced CMB Bricks tile.compact_launcher.name=Compact Launch Pad @@ -4934,6 +5070,7 @@ tile.gneiss_brick.name=Schist Brick tile.gneiss_chiseled.name=Chiseled Schist tile.gneiss_tile.name=Schist Tile tile.gravel_diamond.name=Diamond Gravel +tile.gravel_diamond.desc=There is some kind of joke here,$but I can't quite tell what it is.$ $Update, 2020-07-04:$We deny any implications of a joke on$the basis that it was so severely unfunny$that people started stabbing their eyes out.$$Update, 2020-17-04:$As it turns out, "Diamond Gravel" was$never really a thing, rendering what might$have been a joke as totally nonsensical.$We apologize for getting your hopes up with$this non-joke that hasn't been made.$$i added an item for a joke that isn't even here, what am i, stupid? can't even tell the difference between gravel and a gavel, how did i not forget how to breathe yet? tile.gravel_obsidian.name=Crushed Obsidian tile.hadron_access.name=Particle Accelerator Access Terminal tile.hadron_analysis.name=Particle Accelerator Analysis Chamber Wall @@ -5064,6 +5201,7 @@ tile.machine_excavator.name=Large Mining Drill tile.machine_fel.name=FEL tile.machine_fensu.name=FEnSU tile.machine_flare.name=Flare Stack +tile.machine_flare.desc=Can burn fluids and vent gasses$Burns up to §c10mB/t$Vents up to §c50mB/t$ $§eFuel efficiency:$§e-Flammable Gasses: §c50%%$§e-Flammable Liquids: §c10%% tile.machine_fluidtank.name=Tank tile.machine_forcefield.name=Forcefield Emitter tile.machine_fraction_tower.name=Fractioning Tower @@ -5155,6 +5293,7 @@ tile.machine_zirnox.name=ZIRNOX Nuclear Reactor tile.marker_structure.name=Multiblock Structure Marker tile.mass_storage.name=Mass Storage Unit tile.meteor_battery.name=Starmetal Static Electricity Generator +tile.meteor_battery.desc=Provides infinite charge to tesla coils tile.meteor_brick.name=Meteor Bricks tile.meteor_brick_chiseled.name=Chiseled Meteor Bricks tile.meteor_brick_cracked.name=Cracked Meteor Bricks @@ -5174,14 +5313,18 @@ tile.ntm_dirt.name=Dirt tile.nuke_boy.name=Little Boy tile.nuke_custom.name=Custom Nuke tile.nuke_fleija.name=F.L.E.I.J.A. +tile.nuke_fleija.desc=Used in:$F.L.E.I.J.A. tile.nuke_fstbmb.name=Balefire Bomb tile.nuke_gadget.name=The Gadget tile.nuke_man.name=Fat Man tile.nuke_mike.name=Ivy Mike tile.nuke_n2.name=N² Mine +tile.nuke_n2.desc=Used in:$N² Mine tile.nuke_n45.name=N45 Naval Mine tile.nuke_prototype.name=The Prototype +tile.nuke_prototype.desc=It didn't have to be like this.$ $You monster. tile.nuke_solinium.name=The Blue Rinse +tile.nuke_solinium.desc=Used in:$Solinium Bomb tile.nuke_tsar.name=Tsar Bomba tile.oil_duct.name=Oil Pipe tile.oil_duct_solid.name=Coated Oil Pipe @@ -5240,6 +5383,7 @@ tile.ore_nether_uranium.name=Nether Uranium Ore tile.ore_nether_uranium_scorched.name=Scorched Nether Uranium Ore tile.ore_niter.name=Niter Ore tile.ore_oil.name=Oil Deposit +tile.ore_oil.desc=You weren't supposed to mine that.$Come on, get a derrick you doofus. tile.ore_oil_empty.name=Empty Oil Deposit tile.ore_oil_sand.name=Tar Sand tile.ore_random.name=%s Ore @@ -5353,6 +5497,7 @@ tile.reactor_element.name=Reactor Chamber tile.reactor_hatch.name=Reactor Access Hatch tile.reactor_inserter.name=Reactor Fuel Inserter tile.red_barrel.name=Explosive Barrel +tile.red_barrel.desc=Static fluid barrel tile.red_cable.name=Red Copper Cable tile.red_cable_classic.name=Red Copper Cable (Classic) tile.red_cable_gauge.name=Power Gauge @@ -5360,7 +5505,9 @@ tile.red_cable_gauge.desc=Cable that displays how much power$moves within the ne tile.red_cable_paintable.name=Paintable Red Copper Cable tile.red_connector.name=Electricity Connector tile.red_pylon.name=Electricity Pole +tile.red_pylon.desc=Connection Type: §eSingle$Connection Range: §e25m tile.red_pylon_large.name=Large Electricity Pylon +tile.red_pylon_large.desc=Connection Type: §eQuadruple$Connection Range: §e100m$This pylon requires a substation! tile.red_wire_coated.name=Coated Red Copper Cable tile.reinforced_brick.name=Reinforced Stone tile.reinforced_brick_stairs.name=Reinforced Stone Stairs @@ -5445,6 +5592,7 @@ tile.struct_scaffold.name=Launch Pad Scaffold Block tile.struct_soyuz_core.name=Soyuz Launcher Core Component tile.struct_watz_core.name=Watz Powerplant Core Component tile.substation.name=Substation +tile.substation.desc=Connection Type: §eQuadruple$Connection Range: §e20m tile.sulfuric_acid_block.name=Sulfuric Acid tile.taint.name=Taint tile.taint_barrel.name=IMP Residue Barrel @@ -5527,6 +5675,10 @@ trait.hydro=Hydroreactive trait.radioactive=Radioactive trait.radResistance=Radiation resistance: %s +trait.platefuel=[Research Reactor Plate Fuel]$§3 %s$§3 Yield of %s events +trait.pwr_fuel=Heat per flux: §r%s TU$Reacton function: §r%s$Fuel type: §r%s + +trait.rbmk.BurnFunc=SAFE / PASSIVE$MEDIUM / LOGARITHMIC$SAFE / EULER$DANGEROUS / NEGATIVE-QUADRATIC$SAFE / SIGMOID$MEDIUM / SQUARE ROOT$DANGEROUS / LINEAR$DANGEROUS / QUADRATIC$EXPERIMENTAL / SINE SLOPE trait.rbmk.coreTemp=Core temp: %s trait.rbmk.depletion=Depletion: %s trait.rbmk.diffusion=Diffusion: %s @@ -5563,8 +5715,21 @@ trait.rbmx.xenon=Lead poison: %s trait.rbmx.xenonBurn=Lead destruction function: %s trait.rbmx.xenonGen=Lead creation function: %s +trait.rbmk_pellet=Pellet for recycling$Brand New$Barely Depleted$Moderately Depleted$Highly Depleted$Fully Depleted$High Xenon Poison +trait.watz_pellet=Depletion: %s%% +trait.watz_pellet.passive=Base fission rate: $Self-igniting! +trait.watz_pellet.heatEmission=Heat per flux: +trait.watz_pellet.burnFunc=Reacton function: $Fuel type: +trait.watz_pellet.heatDiv=Thermal multiplier: +trait.watz_pellet.absorbFunc=Flux capture: + trait.tile.cluster=Drops only when broken by a player trait.tile.depth=Can only be destroyed by explosions +trait.tile.barrel.capacity=Capacity: %smB +trait.tile.barrel.hot=Can store hot fluids$Cannot store hot fluids +trait.tile.barrel.corrosive=Can store highly corrosive fluids$Can store corrosive fluids$Cannot store highly corrosive fluids properly$Cannot store corrosive fluids properly$Cannot store corrosive fluids +trait.tile.barrel.antimatter=Can store antimatter$Cannot store antimatter +trait.tile.barrel.leak=Leaky tool.ability.centrifuge=Auto-Centrifuge tool.ability.crystallizer=Auto-Crystallizer @@ -5578,6 +5743,15 @@ tool.ability.shredder=Auto-Shredder tool.ability.silktouch=Silk Touch tool.ability.smelter=Auto-Smelter +tooltip.armormods=Mods: +tooltip.armormodsshow=Hold < %s §8§o> to display installed armor mods§r +tooltip.block=Hold < %s §8§o> to display more info§r +tooltip.customnuke=Adds %s to the custom nuke stage %s +tooltip.customnukemultiplier=Adds multiplier %s to the custom nuke stage %s +tooltip.oredict=Ore Dict: +tooltip.oredict.null=No Ore Dict data! +tooltip.show=Hold < %s §8§o> to display protection info§r + turret.animals=Target Passive: %s turret.arty.artillery=§eArtillery Mode$Grace: 250m$Range: 3,000m turret.arty.cannon=§eCannon Mode$Grace: 32m$Range: 250m diff --git a/src/main/resources/assets/hbm/lang/zh_CN.lang b/src/main/resources/assets/hbm/lang/zh_CN.lang index 4bd5871e0..7610a1c62 100644 --- a/src/main/resources/assets/hbm/lang/zh_CN.lang +++ b/src/main/resources/assets/hbm/lang/zh_CN.lang @@ -52,13 +52,13 @@ achievement.fiend2=残忍2:更残忍 achievement.fiend=残忍 achievement.freytag.desc=英勇的救生员 achievement.freytag=弗雷塔格 -achievement.fusion.desc=氘核、海卫一与能量的舞蹈。 -achievement.fusion=聚合 -achievement.gasCent.desc=贫铀讨厌他! -achievement.gasCent=链式 +achievement.fusion.desc=氘核, 氚核和能量之舞. +achievement.fusion=热核聚变反应 +achievement.gasCent.desc=未浓缩的铀讨厌他! +achievement.gasCent=拉链式 achievement.goFish.desc=航海十字架 achievement.goFish=去钓鱼 -achievement.hidden.desc=使用一节坠落的车厢杀死一只污染苦力怕 +achievement.hidden.desc=使用一节坠落的车厢杀死一只污染爬行者 achievement.hidden=隐藏目录 achievement.horizonsBonus.desc=说实话,你到底怎么了 achievement.horizonsBonus=地平线! @@ -72,14 +72,14 @@ achievement.inferno.desc=“把它变成灰烬!这还不够!投更多的炸 achievement.inferno=食人行动 achievement.manhattan.desc=1945年8月6日 8:15 achievement.manhattan=曼哈顿计划 -achievement.meltdown.desc=你走了这么远,怎么能把事情搞砸? -achievement.meltdown=快速非计划拆卸 -achievement.no9.desc=“我希望我开采的铅能被用在你的油漆里” -achievement.no9=旧数字9 -achievement.omega12.desc=解决在这个可怜的星球上继续生存的问题 -achievement.omega12=欧米茄-12粒子加速器 -achievement.polymer.desc=美味、美味的微塑料。 -achievement.polymer=特氟隆 +achievement.meltdown.desc=你都走到了这一步,怎么还能把事情搞砸? +achievement.meltdown="快速"拆卸 +achievement.no9.desc="我希望我开采的铅能被用于你的绘画" +achievement.no9=老九号 +achievement.omega12.desc=解决在这个荒凉的的星球上继续生存的问题. +achievement.omega12=欧米伽-12号粒子加速器 +achievement.polymer.desc=美味,美味的微塑料. +achievement.polymer=特氟隆 聚四氟乙烯 achievement.potato.desc=你居然捅我!你怎—喔哦哦哦哦哦! achievement.potato=流氓AI achievement.radDeath.desc=居里夫人开创了放射性理论、放射性治疗和放射性死亡。。。。 @@ -124,30 +124,32 @@ achievement.watzBoom.desc=下次记得把毒泥浆容器清空 achievement.watzBoom=令人厌恶 achievement.watz.desc=可能包括Fólkvangr弗尔克范格场 achievement.watz=126号元素的力量 -achievement.witchtaunter.desc=那些古怪的生物对你毫无兴趣! -achievement.witchtaunter=巫婆陶恩特 -achievement.ZIRNOXBoom.desc=处理, 看,满地是残骸碎片 -achievement.ZIRNOXBoom=锆诺克斯 -armor.blastProtection=修正 %s 的爆炸伤害 -armor.cap=伤害上限 %s -armor.damageModifier=修正 %s 对 %s 的伤害 -armor.dash=给予 %s 冲刺 -armor.electricJetpack=离子喷射背包 +achievement.witchtaunter.desc=那些怪胎什么都没发现! +achievement.witchtaunter=女巫陶恩特 +achievement.ZIRNOXBoom.desc=处理, 遍地都是, 残骸碎片 +achievement.ZIRNOXBoom=CIRNOX + +armor.blastProtection=只受%s的爆炸伤害 +armor.cap=硬伤上限 %s +armor.charge=电量: %s / %s +armor.damageModifier=只受%s的%s伤害 +armor.dash=提供 %s 次冲刺 +armor.electricJetpack=等离子推进器 armor.explosionImmune=免疫除爆炸伤害外的一切伤害 armor.fasterReload=快速装填 armor.fastFall=快速降落 armor.fireproof=防火 -armor.fullSetBonus=全套效果: -armor.geigerHUD=盖革计数器HUD -armor.geigerSound=盖革计数器警报 -armor.glider=滑翔 -armor.gravity=重力修正 %s -armor.hardLanding=硬着陆 -armor.ignoreLimit=防御值不受防御上限的影响 -armor.modifier=伤害修正 %s +armor.fullSetBonus=完整套装增益: +armor.geigerHUD=内置盖格计数器 +armor.geigerSound=听觉式盖革计数器 +armor.glider=按下潜行以滑翔 +armor.gravity=重力效果调整为%s +armor.hardLanding=坠地AOE伤害 +armor.ignoreLimit=防御值不受防御值上限的影响 +armor.modifier=只受%s的一般伤害 armor.moreAmmo=更多弹药 -armor.nullDamage=免疫 %s 伤害 -armor.projectileProtection=免疫 %s 的弹射物伤害 +armor.nullDamage=免疫所有的%s伤害 +armor.projectileProtection=只受%s的弹射物伤害 armor.rocketBoots=火箭靴 armor.sprintBoost=冲刺辅助加速 armor.stepSize=步长:%s @@ -162,8 +164,44 @@ armorMod.chestplates=胸甲 armorMod.helmets=头盔 armorMod.insertHere=插入装甲以改装。。。 armorMod.leggings=护腿 -armorMod.type.boots=靴子 -armorMod.type.chestplate=胸甲 +armorMod.slot=槽位: +armorMod.mod.auto=从日本进口. +armorMod.mod.bandaid=3%% 的几率让你受到伤害时HP回满$ (3%% 的几率HP回满) +armorMod.mod.bathwater=使攻击者中毒$ (让攻击者中毒) +armorMod.mod.charm=你感受到了祝福. +armorMod.mod.charm.protection=使陨石偏移以远离玩家.$陨石不再破坏方块.$将腐化广播的伤害减半 +armorMod.mod.charm.meteor=禁止陨石生成.$无视腐化广播的伤害 +armorMod.mod.cladding= 辐射抗性$ 辐射抗性) +armorMod.mod.defuser=拆除附近爬行者引信$ (拆除爬行者引信) +armorMod.mod.gasmask=有毒气体防护$绝对不会提供的危害防护:$ (有毒气体防护) +armorMod.mod.health= 生命值$怀旧 +armorMod.mod.Ink=10%% 的几率免疫伤害$花朵的护佑!$ (10%% 的几率免疫伤害) +armorMod.mod.Insert=%% 伤害$%% 弹射物伤害$%% 爆炸伤害$%% 移动速度$耐久 +armorMod.mod.Iron=+0.5 抗击退性$ (+0.5 抗击退性) +armorMod.mod.Knife=痛苦.$ $很疼, 不是吗? +armorMod.mod.Lens=卫星频道: $ (频道: %%d) +armorMod.mod.Lodestone=吸引附近的掉落物$掉落物吸引范围: %%d$ (磁力范围: %%d) +armorMod.mod.Milk=移除负面效果$ (移除负面效果) +armorMod.mod.MorningGlory=5%% 的几率在被击中时得到抗性提升效果, 免疫凋零效果$ (5%% 的几率得到抗性提升效果, 免疫凋零效果) +armorMod.mod.Obsidian=使掉落的盔甲坚不可摧$ (使掉落的盔甲坚不可摧) +armorMod.mod.Pads=%% 摔落伤害$行走时可为盔甲充电$%% 摔落伤害 / 行走时可为盔甲充电) +armorMod.mod.Polish=5%% 的几率免疫伤害$ (5%% 的几率免疫伤害) +armorMod.mod.Quartz=每受一次受到伤害将移除 10 RAD$ (每受一次受到伤害将移除10 RAD) +armorMod.mod.Revive= 条额外生命 +armorMod.mod.Revive.scrumpy=但,但你是怎么活下来的?$我当时喝醉了. +armorMod.mod.Revive.wild_p=§8爆炸 §c反应 §8局部 §c装甲 +armorMod.mod.Revive.fabsols_vodka=新闻:$§c§l一男子在极度愤怒的情况下拒绝死亡.$ $§o"我没这功夫去死" 该名当地$男子在把灾难本身在物理层面上的体现$撕成两半后如是说道. +armorMod.mod.Sensor=有危险气体在附近时发出蜂鸣音$在背包中或装配于装甲时工作$ (检测气体) +armorMod.mod.Serum=解除中毒效果并替换为力量效果$ (解除中毒效果并替换为力量效果) +armorMod.mod.Servos=装配于胸甲时: 给予 急迫 I / 伤害 +50%%$装配于护腿时: 移动速度 +25%% / 给予 跳跃提升 II$ (给予 急迫 I / 伤害 +50%%)$ (移动速度 +25%% / 给予 跳跃提升p II) +armorMod.mod.Servos.desh=装配于胸甲时: 给予 急迫 III / 伤害 +150%%$装配于护腿时: 移动速度d +50%% / 给予 跳跃提升 III$ (给予 急迫 III / 伤害e +150%%)$ (移动速度 +50%% / 给予 跳跃提升 III) +armorMod.mod.Shackles=我让你说话时,你才能说话.$我让你吃时,你才能吃.$我让你死时,你才能死.$∞ 条额外生命$ (∞ 条额外生命) +armorMod.mod.Tesla=电击附近的生物 (需要全套电动套装)$ (电击附近的生物) +armorMod.mod.TwoKick="我还有更糟的"$ (Shotgun punches) +armorMod.mod.V1=鲜血即是燃料$ (鲜血即是燃料) +armorMod.mod.WD40=-80%%对盔甲的耐久损耗度, +2 生命值$ (-80%% 对盔甲的耐久损耗度 / +2 生命值) +armorMod.type.boots=靴子配件 +armorMod.type.chestplate=胸甲配件 armorMod.type.cladding=覆层 armorMod.type.helmet=头盔 armorMod.type.insert=插板 @@ -205,11 +243,12 @@ book.error.page5=§l错误类型:§r "错误_错误区段" §l描述:§r 粒子 book.error.title6=错误 0x06 [分析室过长] book.error.page6=§l错误类型:§r "错误_分析室过长" §l描述:§r 粒子已通过三个以上所需的有效分析室段。 §l修复方式:§r 确保环形加速器的分析室长度正好为3个方块, 直线加速器的分析室长度至少为2个方块。 还要检查粒子是否未通过分支或 环形加速器中的多个分析室。 book.error.title7=错误 0x07 [分析室过短] -book.error.page7=§l错误类型:§r "错误_分析室过短" §l描述:§r 粒子已离开分析室,尽管不符合长度要求。 §l修复方式:§r 确保环形加速器上的分析室正好有3个方块长。 有效的分析段没有线圈,镀层完全由分析室壁/窗组成。 带有线圈的分析室被视为规则段。 -book.error.title8=错误 0x08 [二极管方向错误] -book.error.page8=§l错误类型:§r "错误_二极管方向错误" §l描述:§r 该粒子与肖特基粒子二极管的非输入侧碰撞。§l修复方式:§r 检查二极管的配置是否正确。 粒子只能从带有绿色向内箭头的侧面进入二极管。 -book.error.title9=错误 0x09 [多处分支] -book.error.page9=§l错误类型:§r "错误_多处分支" §l描述:§r 粒子到达具有多个出口的转弯处。§l修复方式:§r 如果你的对撞机是正常的,检查所有需要的线圈是否都存在(即线圈中没有缺漏)。如果转弯处打算进行分支,则需要正确放置的肖特基粒子二极管。 +book.error.page7=§l错误名称:§r "错误_分析室过短" §l说明:§r 粒子离开了分析室,尽管分析室不符合长度要求. §l解决方法:§r 确保环型加速器上的分析室正好有3格长. 有效的分析室部分没有线圈, 镀层完全由分析室壁/窗组成. 带有线圈的分析室会被视为普通加速部分. +book.error.title8=错误 0x08 [粒子与肖特基粒子二极管碰撞] +book.error.page8=§l错误名称:§r "错误_粒子与肖特基粒子二极管碰撞" §l说明:§r 该粒子与肖特基粒子二极管的非输入侧碰撞. §l解决方法:§r 检查二极管的方向配置是否正确. 粒子只能从带有绿色向内箭头的侧面进入二极管. +book.error.title9=错误 0x09 [转弯处分岔] +book.error.page9=§l错误名称:§r "错误_转弯处分岔" §l说明:§r 粒子已到达具有多个出口的转弯处. §l解决方法:§r 如果你的拐弯处是正常的, 检查所有需要的线圈是否都存在(即线圈层中没有孔). 如果转弯处打算进行分支, 则需要正确配置的肖特基粒子二极管. + book.rbmk.cover=$我的第一个$RBMK石墨式反应堆:$建造一个$反应堆$的基础知识 book.rbmk.title1=介绍 book.rbmk.page1=§lRBMK石墨式反应堆§r是一个完全模块化的核反应堆. 与大多数其他反应堆不同的是, 该反应堆没有"多方块结构核心"和尺寸上的限制, 而反应堆的性能和效率仅取决于你是如何建造它的, 以及各个组件如何相互作用. @@ -221,15 +260,15 @@ book.rbmk.title4=控制棒 book.rbmk.page4=反应堆中的 §l控制棒§r 将减少中子通过它的数量. 完全插入时, 它会阻挡所有中子; 当插入一半时, 它只会阻挡一半中子. 控制棒用于调节反应堆的活跃状态和使其关闭. book.rbmk.title5=控制棒 - 使用 book.rbmk.title5.scale=0.9 -book.rbmk.page5=当前控制棒插入的程度将显示在GUI的中心. 边的彩色按钮将把控制棒添加到不同的颜色组中, 这对于在 §lRBMK石墨式反应堆§r 控制台上快速选择屏幕上不同区域的控制棒非常有用. 右侧的按钮允许您以每次25%的增量手动插入. +book.rbmk.page5=当前控制棒插入的程度将显示在GUI的中心. 边的彩色按钮将把控制棒添加到不同的颜色组中, 这对于在 §lRBMK石墨式反应堆§r 控制台上快速选择屏幕上不同区域的控制棒非常有用. 右侧的按钮允许您以每次25%%的增量手动插入. book.rbmk.title6=自动控制棒 book.rbmk.page6=§L自动控制棒§r 与常规控制棒几乎相同, 但它们不能手动调整, 而是根据当前温度来调整控制棒插入的程度. 使用哪种功能, 在多少的温度插入多少的深度必须被事先设定好. book.rbmk.title7=蒸汽管道 book.rbmk.page7=反应堆中的 §l蒸汽管道§r 是唯一能有效降低反应堆热水平的组件. 如果一个蒸汽管道组件的沸点高于其设定的蒸汽类型的沸点, 那么它将试图消耗尽可能多的水 并产生尽可能多的蒸汽来冷却到沸点以下. book.rbmk.title8=碳化钨中子反射器 -book.rbmk.page8=反应堆中的 §l碳化钨中子反射器§r 将阻止中子的通过, 相反,中子将被反射回它们来自的燃料棒上. 这对于使用中子是有用的, 否则这些中子一旦离开反应堆就会被浪费掉. +book.rbmk.page8=反应堆中的 §l碳化钨中子反射器§r 将阻止中子的通过, 相反, 中子将被反射回它们来自的燃料棒上. 这对于使用中子是有用的, 否则这些中子一旦离开反应堆就会被浪费掉. book.rbmk.title9=硼中子吸收器 -book.rbmk.page9=§l硼中子吸收器§r 只是阻挡中子. 被吸收的中子不会产生热量,会被有效地吸收. 这有助于防止燃料棒发生过度反应从而超出临界值. +book.rbmk.page9=§l硼中子吸收器§r 只是阻挡中子. 被吸收的中子不会产生热量, 会被有效地吸收. 这有助于防止燃料棒发生过度反应从而超出临界值. book.rbmk.title10=石墨慢化剂 book.rbmk.page10=§l石墨慢化剂§r 把穿过它的快中子转换成慢中子. 大多数核燃料反应释放出快中子, 而引起裂变需要慢中子, 所以强烈建议使用慢化剂. book.rbmk.title11=结构柱 @@ -237,180 +276,164 @@ book.rbmk.page11=§l结构柱§r 对中子没有任何影响也没有任何特 book.rbmk.title12=控制台 book.rbmk.page12=§lRBMK石墨式反应堆控制台§r 允许你远程控制反应堆. 使用 §lRBMK石墨式反应堆连接装置记录反应堆§r 然后潜行右击控制台就能把反应堆和控制台连接起来. 一个控制台只能控制15x15个组件, 对于大型反应堆可以使用多个控制台. book.rbmk.title13=控制台的使用 -book.rbmk.page13=单击屏幕上的组件将选择或取消选择它们. 使用彩色按钮,可以快速选择该颜色组中的所有控制棒. 按钮“A”将选择所有控制棒, “X”将取消选择所有控制棒. +book.rbmk.page13=单击屏幕上的组件将选择或取消选择它们. 使用彩色按钮, 可以快速选择该颜色组中的所有控制棒. 按钮“A”将选择所有控制棒, “X”将取消选择所有控制棒. book.rbmk.page14=在绿色框中输入一个介于0和100之间的数字, 然后按下旁边的按钮, 将所有选定的控制棒拔出程度设置到该位置. 按钮“AZ-5”将使所有控制棒完全插入. book.rbmk.title15=核燃料 book.rbmk.page15= §l核燃料§r 的反应取决于许多因素. 主要是 §l核燃料强度§r, §l氙中毒程度§r 和接收到的 §l中子数量§r. 氙元素会在核燃料的中子含量较低时积聚起来, 并在正常运行时燃烧殆尽. 中子的效率取决于其类型, 大多数核燃料 §l用慢中子轰击来裂变效果最好§r. book.rbmk.title16=熔毁 book.rbmk.page16=§4§l尽量避免发生, 你不会想让这样一场核灾难发生在你的存档或服务器里的. -book.starter.cover=重建$社会的实业家$指南 + +book.starter.cover=重建工业社会的$一本实业家$的指南 book.starter.title1=介绍 -book.starter.page1=如果你正在读这篇文章,很可能社会已经因这样或 那样的方式完全崩溃了。政府、国家和权威是过去的概念, 以及文明生活的所有便利设施。因此,本指南将 告诉您如何通过重新创造过去的行业和技术 来改善自己的生活,从而改变这种状况。 -book.starter.title2=煤和芥子气 -book.starter.page2=虽然无法预测世界末日后的实际状态, 但目前形式的战争和工业不太可能没有结束。 为了保护自己的肺部,一种有效且廉价的方法是 在§L布§r上小便,制作一个§L防毒面具§r, 以使你免受煤尘或芥子气的伤害. -book.starter.title3=铁砧和锻压机 -book.starter.page3=开始工业振兴的精髓是§l砧§r和§l火力锻压机§r. 铁砧将允许您手动组合早期机械,如组装机, 而火力锻压机将允许您制作 无法用铁砧制作的板材、电线和电路. +book.starter.page1=如果你读到这篇文章, 那么很有可能社会已经以这样或那样的方式完全崩溃了. 政府,国家和权威已经是过去的概念——以及文明生活 的所有便利设施. 因此,本指南将告诉你如何通过重新创造过去的行业和 科学技术 来改善你自己的生活. +book.starter.title2=煤尘与芥子气 +book.starter.page2=虽然不可能预测世界在后世界末日时代的实际状态, 但目前形式的战争和工业活动不太可能没有结束. 为了保护自己的肺部, 一种有效且廉价的方法是在一些 §l布料§r上小便来制作一个 §l战壕版粗制防护面罩§r, 以保护你免受煤尘或芥子气的伤害, 以防你遇到其中任何一种情况. +book.starter.title3=砧与锻压机 +book.starter.page3=开始你的工业振兴的核心是一个§lE合前期的机械, 如组装机, 而火力锻压机将允许您制作无法用砧锤击在一起的板材, 金属线和电路. book.starter.title4=模板 -book.starter.page4=为了将金属冲压成有用的 形状、组装机械和执行 化学反应,您需要创建 一个§L机器模板文件夹§r, 以创建右侧显示的 各种锻模以及配方。 -book.starter.title5=废墟探索 -book.starter.page5=根据最初的世界末日事件对世界现有结构的影响程度, 有可能直接从中抢救出许多有用的材料和机器。 钢铁等金属合金、电路等部件,甚至核电站的 裂变材料都可能在等着你。 然而,要小心某些废墟,因为那里可能潜伏着过度的危险, 就像草丛中的蛇一样; 等待着用辐射、陷阱或无法形容的恐怖袭击你... +book.starter.page4=为了将金属冲压成有用的 形状,组装成机器并进行化 学反应,您需要创建一个 §l机器模板文件夹§r来制造右 侧显示的各种冲压和模板. +book.starter.title5=拾荒 +book.starter.page5=根据最初的世界末日事件对世界现有建筑的破坏程度, 你有可能直接从中回收许多有用的材料和机器. 钢铁等金属合金, 电路等零件, 甚至核电站的可裂变物质都可能在等着你. 然而, 要小心某些废墟, 因为那里可能潜伏着过度的危险, 就像草丛中的蛇一样; 等着用辐射, 陷阱或其他无法形容的恐怖袭击你... book.starter.title6=早期机械 -book.starter.page6a=您应首先装配的两台机器是§l高炉§r和§l装配机§r. 前者允许您制造合金,如§L钢§r、§l工业级铜§r和§l高级合金§r; 你需要将这些金属用于机器的机身、 电路的布线、高级电磁铁等. -book.starter.page6b=汇编程序将用于创建本指南中描述的几乎所有其他机器. 您需要一个电源,如§L火力§r§L发电机§r或§L太阳能锅炉§r. -book.starter.page7a=§l粉碎机§r以及一对粉碎机刀片将会非常有用, 能将大多数矿石粉碎成可熔炼的粉末,使其产量提高一倍. 这些粉末对于开始为各种机器制作电路也至关重要, 例如§l增强电路§r和§l超频电路§r。 -book.starter.page7b=使用您的新机器,您可以创建§L化工厂§r, 用于合成更好的电路、混凝土或进行石化产品加工等。 +book.starter.page6a=您应该首先组装的两台机器是§l高炉§r 和§l装配机§r. 前者将允许您制造合金, 如§l钢§r, §l紫铜§r, 和§l高级合金§r; 你需要将这些金属用于机器的机身, 电路的布线, 先进的电磁铁等等. +book.starter.page6b=装配机将用于制造本指南中描述的几乎所有其他机器. 您需要一个电源, 如§l火力§r§l发电机§r或§l太阳能锅炉§r. +book.starter.page7a=§l粉碎机§r以及一对粉碎机刀片将非常有用, 可以通过粉碎成可冶炼的粉末, 将大多数矿石的产量提高一倍. 这些粉末对于开始为合成各种机器而制造的电路 也至关重要,例如§l增强§r和§l超频§r电路. +book.starter.page7b=使用您的新机器, 您可以组装出§l化工装置§r, 用于合成更好的电路, 混凝土, 石化产品等. book.starter.title8=黑金 -book.starter.page8a=使用§l石油§l储层§r§l探测仪§r, 您可以通过测量一个区域 来发现地下的油岩以 放置§l石油钻机§r或 §l钻油塔§r来开采 记住,石油储备会随着时间 的推移而耗尽 +book.starter.page8a=使用§l石油§l储层§r§l探测仪§r, 您可以通过测量一个区域 来发现地下石油沉积物以 放置§l梁式抽油机§r或 §l石油钻井塔§r. 记住,石油储备会随着时间 的推移而耗尽. book.starter.page8b=在§l炼油厂§r中提炼和分离石油 成分之前,你必须在§l锅炉§r中将 石油加热至300°C. -book.starter.title9=石油化工产品 -book.starter.page9=使用§l化工厂§r, §l分馏§r§l塔§r和§l催化裂化§r§l塔§r, 你可以将分离出的油转化为各种有用的产品. §l催化裂化§r§l塔§r, 可以将分离出的油转化为各种有用的产品。 例如:§l聚合物§r或§l电木§r, 耐用又柔性的塑料; §lDesh§r, 一种非常耐用和耐热的稀土金属合金; §l固体燃料§r, 可燃烧获取能量; 甚至是§l液体燃料§r, 比如§l汽油§r, §l柴油§r, §l煤油§r等等。 -book.starter.title10=先进的机械 -book.starter.page10=通过一套成熟的石油加工系统,您可以制造§l离心机§r, 这将使矿石的产量增加三倍; §l矿物§l结晶机§r将 矿石结晶后,产量将进一步提高; 以及§lSILEX同位素激光分离室+§lFEL§r, 这两个现代工程的奇迹可以轻松地分离材料的同位素. 你需要更多的能量来驱动这些; 可通过§l柴油发电机§r,§l工业发电机§r, 甚至核反应堆等来源获取更多的能量。 -book.starter.title11=特殊地层 -book.starter.page11=在你行走的地面之下,有几个 自然形成的§l岩层§r,或者说特殊的 矿层和岩层。 §l片岩地层§r是蓝色的含锂层, 其中有铀、铁、铜、石棉和其他矿石 可供你使用。 §l深板岩层§r含有大量稀有矿物, 如§l锆§r、§l硼§r和§l朱砂§r等, 但你需要炸药才能采集 +book.starter.title9=石油化工 +book.starter.page9=使用§l化工厂§r, §l分馏§r§l塔§r和§l催化裂化§r§l塔§r, 你可以将分离出的油转化为各种有用的产品. §l催化裂化§r§l塔§r, 可以将分离出的油转化为各种有用的产品. 例如:§l聚合物§r或§l电木§r, 耐用又柔性的塑料; §l德什§r, 一种非常耐用和耐热的稀土金属合金; §l固体燃料§r, 可燃烧获取能量; 甚至是§l液体燃料§r, 比如§l汽油§r, §l柴油§r, §l煤油§r等等. +book.starter.title10=高级机械 +book.starter.page10=通过一套成熟的石油加工系统,您可以制造§l离心机§r, 这将使矿石的产量增加三倍; §l矿物§l结晶机§r将 矿石结晶后,产量将进一步提高; 以及§lSILEX同位素激光分离室+§lFEL§r, 这两个现代工程的奇迹可以轻松地分离材料的同位素. 你需要更多的能量来驱动这些; 可通过§l柴油发电机§r,§l工业发电机§r, 甚至核反应堆等来源获取更多的能量. +book.starter.title11=特殊岩层 +book.starter.page11=在你行走的地面之下,有几个自 然形成的§l岩层§r,或者说特殊的矿 层和岩层. §l片岩地层§r是蓝色的含锂层,填充 有铀,铁,铜,石棉和其他矿石可供 你自己使用. §l深板岩层§r含有大量稀有矿物, 如§l锆§r和§l硼§r,但 需要炸药才能采集. book.starter.title12=辐射 -book.starter.page12a=本书其余部分将讨论与辐射有关的问题。 为了您和他人的安全,我将提供一些建议以说明如何缓解和处理暴露于此的风险。 -book.starter.page12b=充分暴露在辐射中会导致身体伤害. 第一步是预防; 一定要限制接触,并穿戴防护装备,如§l防辐射套装§r, 或在衣服或盔甲上加装§l防辐射覆层/涂料§r; 你也可以服用§lRad-X防辐射药§r来限制你的辐射量. 多亏了现代医学,第二步可以在必要时移除; 例如,§l玩家§l去污器§r将缓慢减少身体吸收的辐射. §l消辐宁§r还可以用作暴露后预防,快速有效地逆转 电离辐射对身体造成的损害。 +book.starter.page12a=§o本书其余部分将讨论与§o辐射有关的问题. 为了您和其他人的安全,我将提供§o一些建议以说明如何缓解和处理暴露于此的风险.§r +book.starter.page12b=充分暴露在辐射中会导致身体伤害. 第一步是预防; 一定要限制接触,并穿戴防护装备,如§l防辐射套装§r, 或在衣服或盔甲上加装§l防辐射覆层/涂料§r; 你也可以服用§lRad-X防辐射药§r来限制你的辐射量. 多亏了现代医学,第二步可以在必要时移除; 例如,§l玩家§l去污器§r将缓慢减少身体吸收的辐射. §l消辐宁§r还可以用作暴露后预防,快速有效地逆转 电离辐射对身体造成的损害. book.starter.title13=铀浓缩 -book.starter.page13=核反应堆的燃料有几个简单的选择; 例如,§l天然铀§r或§l钍燃料§r。 然而, 如果你寻找更强力的东西,你可以设置两台§l气体离心机§r 的浓缩级联,用剩余的§l铀-238§r生产§l铀燃料§r. 你必须将天然铀转化为§l黄饼§r,然后是§l六氟化§l铀§r. +book.starter.page13=核反应堆的燃料有几个简单的选择; 例如,§l天然铀§r或§l钍燃料§r. 然而, 如果你寻找更强力的东西,你可以设置两台§l气体离心机§r 的浓缩级联,用剩余的§l铀-238§r生产§l铀燃料§r. 你必须将天然铀转化为§l黄饼§r,然后是§l六氟化§l铀§r. book.starter.title14=芝加哥反应堆 -book.starter.page14=或者,您可以使用§l芝加哥反应堆§r从天然铀中增殖出 §l反应堆级钚§r,这是一种更强大的燃料. 通过堆叠石墨块并在其中钻孔,您可以将燃料棒插入钚 和中子源棒,例如§l镭226-铍中子源§r,以开始反应. 确保测试你的设计;为防止过热, 可能需要隔开或限制石墨块的数量。 +book.starter.page14=或者,您可以使用§l芝加哥反应堆§r从天然铀中增殖出 §l反应堆级钚§r,这是一种更强大的燃料. 通过堆叠石墨块并在其中钻孔,您可以将燃料棒插入钚 和中子源棒,例如§l镭226-铍中子源§r,以开始反应. 确保测试你的设计;为防止过热, 可能需要隔开或限制石墨块的数量. book.starter.title15=ZIRNOX锆诺克斯 -book.starter.page15=最终,你可以制造你的第一个§o真正§r的能源来源: §lZIRNOX§r核反应堆. 与其他能量源相比,核反应堆需要更多的准备; 首先,你需要有一个强悍的水源,比如§l重型§l无限水罐§r. 要从反应堆堆芯中排出热量并将水煮沸成蒸汽, 你需要足够的§l二氧化碳§r. 你只需要足够的压力, 不要让压力§o太§r大! 你还需要三个蒸汽涡轮机来利用产生的蒸汽来制造能量; §l蒸汽§l轮机§r或§l大型工业§l汽轮机§r将是最佳的. 最后,需要一个§l冷凝器§r或§l冷却塔§r来将残余蒸汽冷凝成水, 在这个冷却回路中可以将其排空或回收。 +book.starter.page15=最终,你可以制造你的第一个§o真正§r的能源来源: §lZIRNOX§r核反应堆. 与其他能量源相比,核反应堆需要更多的准备; 首先,你需要有一个强悍的水源,比如§l重型§l无限水罐§r. 要从反应堆堆芯中排出热量并将水煮沸成蒸汽, 你需要足够的§l二氧化碳§r. 你只需要足够的压力, 不要让压力§o太§r大! 你还需要三个蒸汽涡轮机来利用产生的蒸汽来制造能量; §l蒸汽§l轮机§r或§l大型工业§l汽轮机§r将是最佳的. 最后,需要一个§l冷凝器§r或§l冷却塔§r来将残余蒸汽冷凝成水, 在这个冷却回路中可以将其排空或回收. book.starter.title16=结论 book.starter.page16=如果你已经走到了这一步,你已经走在重建文明大道上了. 你已经成功地用核能, 石油化工等重新制造了世界末日前的那些先进机器. 我不知道你将如何利用这些新发现的科技, 但我个人希望你利用这些优势是为了自己和他人的利益 - 或者至少是为了自卫. 再见! book.starter.title18=关于作者 -book.starter.page18=v?r只是一个被困在"传声头像"的§o《一生一次》§r中的 灰色虚空中太久的人. 有一次, 他发现了一扇工作室的门, 但令他沮丧的是, 他发现那是一个纸板剪出来的 -#book.rbmk.cover=HOW 2 RBMK:$The Basics$of Reactor$Construction -#book.rbmk.title1=Introduction -#book.rbmk.page1=The §lRBMK§r is a fully modular nuclear reactor. Unlike most other reactors, there is no "core", and no size limitations, rather, the behavior and efficiency of the reactor comes from how it is built and how the different pieces interact with each other. -#book.rbmk.title2=Heat -#book.rbmk.page2=As the reactor operates, it will generate §lheat§r. Heat will spread between parts, slowly decreasing in the process. The goal is to produce as much heat as possible without melting the reactor, and to move that heat to a §lsteam channel§r which cools the reactor and produces steam. -#book.rbmk.title3=Fuel Rod -#book.rbmk.page3=The §lfuel rod§r will capture neutron flux, causing the fuel inside the fuel rod to react, giving off neutrons in the process. Neutrons are released in all four cardinal directions with a maximum range of 5 blocks. The amount of neutrons released depends on the §lfuel§r used. -#book.rbmk.title4=Control Rod -#book.rbmk.page4=The §lcontrol rod§r will decrease the amount of neutrons passing though it. Fully inserted, it will block all neutrons, at half insertion, it will only block half. Control rods are used to regulate the reactor's activity and to turn it off. -#book.rbmk.title5=Control Rod - Usage -#book.rbmk.page5=The center of the GUI will display the current rod insertion. The colored buttons on the left will add a control rod to a color group, which is useful to quickly select grouped rods from the §lRBMK console§r. The buttons on the right allow for manual insertion in increments of 25%%. -#book.rbmk.title6=Automatic Control Rod -#book.rbmk.page6=§lAutomatic control rods§r function nearly identical to regular control rods, but they cannot be configured manually, instead they will adjust the rod position based on the current temperature. What function to use and how deep to insert at what temperature has to be defined first. -#book.rbmk.title7=Steam Channel -#book.rbmk.page7=The §lsteam channel§r is the only part that will actively reduce the reactor's heat level. If the component's temperature exceeds the boiling point of the set steam type, it will try to consume as much water and produce as much steam as needed to cool back below the boiling point. -#book.rbmk.title8=Neutron Reflector -#book.rbmk.page8=The §lneutron reflector§r will block neutrons from passing it, instead the neutrons will be reflected back at the fuel rod they came from. This is useful for utilizing neutrons that would otherwise be wasted by simply exiting the reactor. -#book.rbmk.title9=Neutron Absorber -#book.rbmk.page9=The §lneutron absorber§r will simply block neutrons. Neutrons absorbed will not generate heat and be effectively voided. This is useful to prevent fuel rods from reacting that would otherwise be in range. -#book.rbmk.title10=Graphite Moderator -#book.rbmk.page10=The §lgraphite moderator§r will convert fast neutrons passing through it into slow neutrons. Most fuels fission into fast neutrons while needing slow neutrons to split, so using moderators is strongly recommended. -#book.rbmk.title11=Structural Column -#book.rbmk.page11=The §lstructural column§r will not interfere with neutrons, nor does it have special uses. It is recommended to fill the reactor with structural columns where no other parts will be, because structural columns are capable of transporting heat. -#book.rbmk.title12=Console -#book.rbmk.page12=The §lRBMK console§r lets you control the reactor from afar. Using the §lRBMK§r §lconsole linking device§r on an RBMK part and then the console will link the reactor to the console. The console can only manage 15x15 parts, for larger reactors you might want to use multiple consoles. -#book.rbmk.title13=Console Usage -#book.rbmk.page13=Clicking on the parts will select and deselect them. Using the colored buttons, you can quickly select all control rods of that color group. Button 'A' will select all control rods, 'X' will deselect all. -#book.rbmk.page14=Entering a number 0-100 in the green box and then hitting the button next to it will set all selected control rods to this position. Button 'AZ-5' will cause all control rods to fully insert. -#book.rbmk.title15=Fuel -#book.rbmk.page15=The §lfuel§r's reactivity is based on multiple factors. The main ones are the §lenrichment§r, §lxenon poison§r and the amount of incoming §lneutrons§r. Xenon builds up when the fuel receives few neutrons and burns away during normal operation. The effectivity of neutrons depends on the type, most fuels §lsplit best with slow neutrons§r. -#book.rbmk.title16=Meltdown -#book.rbmk.page16=§4§lAvoid. -book_lore.author=由%s +book.starter.page18=vær只是一个被困在"传声头像"的§o《一生一次》§r中的 灰色虚空中太久的人. 有一次, 他发现了一扇工作室的门, 但令他沮丧的是, 他发现那是一个纸板剪出来的. + + +book_lore.author= %s 著 book_lore.test.name=测试 book_lore.test.author=那个家伙 -book_lore.test.page.0=>hello anons before i begin let me clarify that i'm not gay. >Be me >This night >18 > At hanging out with my best friend with my parents gone for a few days >We've been best friends for a year now >Been drinking a bit and playing lots of video games and ordered a pizza >We were having a blast >At a certain point in the night like around 9:00 he makes a really funny joke that I don't remember but I know that it made us both laugh really hard > With out thinking I brush my right hand through his semi-curly black hair and call him a funny boy >He blushes >I realize I'm feeling flustered >We're kinda close >All of the sudden he kisses me and for some reason I kiss him back >We make love >Cuddle together and fall asleep >Wake up in the middle of the night with his head snuggled up on my chest and neck area >It feels nice but I'm not a homosexual -book_lore.test.page.1=>你好,在我开始之前,让我澄清我不是同性恋。>做我>今天晚上>18>和我最好的朋友和我的父母出去玩了几天>我们已经是最好的朋友一年了>喝了点酒,玩了很多电子游戏,还点了一份披萨>我们玩得很开心>在晚上的某个时候,比如9点左右,他开了一个非常有趣的玩笑,我不记得了,但我知道这让我们俩都笑得很厉害>没有我想我用右手摸了摸他那半卷曲的黑发,然后叫他一个有趣的男孩>他脸红了>我意识到我很慌张>我们有点亲密>突然他吻了我,出于某种原因我又吻了他>我们做爱>拥抱在一起睡着了>半夜醒来时,他的头贴在我的胸部和颈部>感觉很好,但我不是同性恋 -book_lore.test.page.2=他在我怀里睡着时,我正在打字。我怎么才能让我最好的朋友失望呢?我不想成为[编辑]/b/ -book_lore.test.page.3=3 +book_lore.test.page.0=>在我开始之前,请允许我 澄清我不是同性恋. >做我 >今晚 >18点 >趁我的父母走了几天,和我最好 的朋友一起出去玩 >我们已经是一年的好朋友了 >喝了点酒,玩了很多电子游戏, 还点了一个比萨饼 >我们玩得很开心 >在晚上的某个时刻,比如9点 左右,他开了一个非常有趣的 玩笑,我不记得了, 但我知道这让我们都笑得很开心 > 我不假思索地用右手 +book_lore.test.page.1=拂过他半卷曲的黑发, 说他真是一个有趣的男孩 >他脸红了 >我意识到我很慌乱 >我们有点太亲近了 >突然他吻了我,出于某种原因 我回吻了他 >我们做爱了 >拥抱在一起睡着了 >半夜醒来,他的头紧贴在我的 胸口和脖子上 >这感觉很好, 但我仍是个钢铁直男 +book_lore.test.page.2=我在他在我怀里睡着的时候 写了这个. 我怎么能让我最好的 朋友失望呢? 我可不想成为一个 [弱智] /b/ +book_lore.test.page.3=4 book_lore.test.page.4=4 + book_lore.book_iodine.name=笔记 book_lore.book_iodine.author=戴夫 -book_lore.book_iodine.page.0=alright you will not believe this, but old man weathervane finally managed to show up again since he left two weeks ago and what's more surprising is the fact that he actually decided to spill the beans on what they were doing in the canyon: -book_lore.book_iodine.page.1=alright you will not believe this, but old man weathervane finally managed to show up again since he left two weeks ago and what's more surprising is the fact that he actually decided to spill the beans on what they were doing in the canyon: -book_lore.book_iodine.page.2=apparently the morons from R&D discovered a compound that is mostly inorganic, pretty much like a toxin in nature, but get this: the dying cells will reproduce said toxin and excrete it through the skin, creating an aerosol that is highly contagious. +book_lore.book_iodine.page.0=好吧,你不会相信的, 但自从两周前离开后,这位老人终于再次出现了。更令人惊讶的是,他竟然决定把他们在峡谷里的所作所为泄露出去: +book_lore.book_iodine.page.1=显然,研发部门的白痴们发现了一种主要是无机的化合物, 很像自然界中的毒素, 但要记住:濒死的细胞会繁殖毒素并通过皮肤排出, 产生一种具有高度传染性的气溶胶. +book_lore.book_iodine.page.2=就像病毒一样, 但不是病毒. 它的成分很奇怪, 你可以把它放在任何家用瓶子里,但你必须把顺序弄对. 博士告诉我第一种成分是粉末状的碘晶体,要放进槽 %d + book_lore.book_phosphorous.name=笔记 book_lore.book_phosphorous.author=戴夫 -book_lore.book_phosphorous.page.0=heyo, it's me again. i assume you got my last memo, the doc wasn't too happy about it. i'll have to do this quick, the dunderheads from R&D are currently moaning again, probably over money. again. anyway, doc weathervane found that the second -book_lore.book_phosphorous.page.1=heyo, it's me again. i assume you got my last memo, the doc wasn't too happy about it. i'll have to do this quick, the dunderheads from R&D are currently moaning again, probably over money. again. anyway, doc weathervane found that the second +book_lore.book_phosphorous.page.0=嘿,又是我. 我想你收到了我最后的备忘录,博士对此不太高兴. 我得动作快点, 研发部门的笨蛋们现在又在抱怨了, 可能是因为钱, 又一次. 无论如何, 风向标博士发现第二种 +book_lore.book_phosphorous.page.1=成分是红磷, 必须将其混入 %d槽中 + book_lore.book_dust.name=笔记 book_lore.book_dust.author=戴夫 -book_lore.book_dust.page.0=the doc was furious when he found out that the R&D dorks kept the one remaining sample, ranting about gross negligence this and a doomsday scenario that. i told him to chill for a minute, getting all worked up isn't good for his blood pressure, not -book_lore.book_dust.page.1=the doc was furious when he found out that the R&D dorks kept the one remaining sample, ranting about gross negligence this and a doomsday scenario that. i told him to chill for a minute, getting all worked up isn't good for his blood pressure, not -book_lore.book_dust.page.2=that he has much blood left to begin with. one of the R&D morons slipped some more info into last week's circular, they call their little concoction \"MKU\" whatever that means, and that it contains actual household lint. can you believe that? one of the most +book_lore.book_dust.page.0=当博士发现研发人员保留了剩下的一个样本时,他大发雷霆, 大喊大叫说这是严重的疏忽,简直是世界末日的剧本. 我告诉他冷静一分钟, 紧张起来对他的血压没有好处, 并 +book_lore.book_dust.page.1=不是说他还剩下很多血. 一个研发部的白痴在上周的通告中透露了更多信息, 他们称他们那宝贝混合物 \"MKU\" ,鬼知道这是啥意思, 它含有货真价实的家用棉绒. 你能相信吗? 这是他们 +book_lore.book_dust.page.2=最危险的发明之一而它含有灰尘. 奇怪的是,他们还提到它会进入槽 %d + book_lore.book_mercury.name=笔记 book_lore.book_mercury.author=戴夫 -book_lore.book_mercury.page.0=well that settles that. not counting the vomitting blood part, the toxicological report mostly resembles that of mercury poisoning. why? because our little mix also contains mercury! i just wonder where all that stuff comes from when being -book_lore.book_mercury.page.1=well that settles that. not counting the vomitting blood part, the toxicological report mostly resembles that of mercury poisoning. why? because our little mix also contains mercury! i just wonder where all that stuff comes from when being +book_lore.book_mercury.page.0=好吧,这就说得通了. 不包括呕吐的血液部分, 毒理学报告表明其主要类似于汞中毒. 为什么? 因为我们的小混合物也含有汞! 我只是想知道当这些东西 +book_lore.book_mercury.page.1=被身体复制时,它们从哪来? 不管怎样,水银要进入槽 %d + book_lore.book_flower.name=笔记 book_lore.book_flower.author=戴夫 -book_lore.book_flower.page.0=remember when i mentioned in my first memo that the compound is mostly anorganic? well guess what, the old man shared the fourth ingredient: ipomoea nil, a genus of flower. morning glory! it might be due to its low sulfur content, whatever might be the case, -book_lore.book_flower.page.1=remember when i mentioned in my first memo that the compound is mostly anorganic? well guess what, the old man shared the fourth ingredient: ipomoea nil, a genus of flower. morning glory! it might be due to its low sulfur content, whatever might be the case, +book_lore.book_flower.page.0=还记得我在第一份备忘录中提到的化合物大多是无机的吗? 好吧,你猜怎么着, 那个老家伙分享了第四种配料: 牵牛花, 花的一属. 就是喇叭花! 可能是因为它的硫含量低, 不管是什么情况, +book_lore.book_flower.page.1=其他花就是不起作用. 牵牛花要放入槽 %d + book_lore.book_syringe.name=笔记 book_lore.book_syringe.author=戴夫 -book_lore.book_syringe.page.0=a little addendum to my fifth message, obviously you have to store this MKU stuff in a container. the R&D nuts used regular metal syringes that they got from medical. surplus ware i presume, they got thousands of needles just lying around. the metal -book_lore.book_syringe.page.1=a little addendum to my fifth message, obviously you have to store this MKU stuff in a container. the R&D nuts used regular metal syringes that they got from medical. surplus ware i presume, they got thousands of needles just lying around. the metal +book_lore.book_syringe.page.0=我第五条留言的一个小附录, 显然你必须把这些叫MKU的东西放在一个容器里. 研发人员使用的是从医疗机构购买的普通金属注射器. 我猜是多余的, 他们有成千上万的针头. +book_lore.book_syringe.page.1=金属注射器要放入槽 %d + book_lore.resignation_note.name=辞职信 book_lore.resignation_note.author=科斯马 -book_lore.resignation_note.page.0=Management downsized our department again yesterday. Those idiots only have themselves to blame, I don't know what they were expecting after that fiasco. Who the hell leaks that sort of information? We're losing millions and -book_lore.resignation_note.page.1=管理层昨天又对我们的部门进行裁员了。那群白痴要怪只能怪他们自己,我都不知道他们在那场惨败后还在期待什么。到底是谁他妈泄露了那种程度的信息? -book_lore.resignation_note.page.2=我们损失了几百万,而且现在失业的还是爷。老子希望你们这帮混蛋最后能从你们的一堆问题中学到点教训然后给爷滚去自闭。 -book_lore.memo_stocks.name=公司内部备忘录 -book_lore.memo_stocks.page.0=投资者关系 - $ $ 最新季度报告提供的数据存在一些明显差异。财务部门做出一些调整是谨慎的,所以不必有任何担忧。 +book_lore.resignation_note.page.0=管理层昨天又缩减了我们的 部门.那帮白痴只能怪自己, 我不知道他们在那场惨败后 还在期待什么. 到底是谁泄露了这种信息? 我们损失了数百万 +book_lore.resignation_note.page.1=现在老子失业了. 我是那个被要求辞职的人. 我希望你们这帮混蛋们终于 从自己的错误中吸取点教训, 把那根棍子从屁股里拿出来. +book_lore.resignation_note.page.2=我星期五不会回来的. 发工资就行了. + +book_lore.memo_stocks.name=内部备忘录 +book_lore.memo_stocks.page.0=投资者关系部 - $ $ 最新季度报告中提供的数据 存在一些明显的差异. 让财务部门进行一些调整是 谨慎的做法, 所以不用有任何顾虑. + book_lore.memo_schrab_gsa.name=内部备忘录 -book_lore.memo_schrab_gsa.page.0=Contract Management - $ $ Legal has made a breakthrough with the DLA. They've awarded us with a 45 BILLION GSA Schedule for further procurement and research of saralloy. At current estimates, that would be at minimum -book_lore.memo_schrab_gsa.page.1=合同管理记录 - 法务部在与美国国防部后勤局的谈判中取得了突破。他们批准了450亿的联邦采购服务总署投资资金用于异变金属的采购与研究。 +book_lore.memo_schrab_gsa.page.0=合同管理部 - $ $ 法律部与DLA取得了突破. 他们授予我们450亿GSA计划, 用于进一步采购和研究saralloy. 根据目前的估计 +book_lore.memo_schrab_gsa.page.1=相关业务的利润至少为 40%%, 更不用说未来合同的可能性了. 由于保密性质,所有财务证据 都应保密. + book_lore.memo_schrab_rd.name=内部备忘录 -book_lore.memo_schrab_rd.page.0=Research & Development - $ $ Our main production method of saralloy has been through the new particle accelerator. However, the energy costs are exorbitantly high compared to the amount of output. -book_lore.memo_schrab_rd.page.1=研发 - 目前我们主要生产方法是使用新型粒子加速器。然而,与产出量相比,能源成本高得惊人。 -book_lore.memo_schrab_rd.page.2=然而,Schrabauer博士发现了一种全新的相互作用——暂称为“奇异轻子振荡”——该作用可以显著降低生产成本。通过一个目前未被完全理解的的过程,提供的电子被一种奇特的“魔力”转化为极高能量的光子。 -book_lore.memo_schrab_rd.page.3=这是许多已明确的粒子转换定律的极端例外。但初步实验证明,这些质子先转变为上下夸克,最终形成了异变金属。奇怪的是,原型机中需要钨与少量异变金属合金化所得到的合金。 +book_lore.memo_schrab_rd.page.0=研究与开发部 - $ $ 我们生产saralloy的主要方法是 使用新型粒子加速器. 然而, 与产量相比,能源成本过高. +book_lore.memo_schrab_rd.page.1=然而,Schrabauer博士发现 了一种新的相互作用, 称为 "奇异轻子振荡",可以 显著降低成本. 通过一个不完 全被理解的过程, 所提供的电 子通过一种 +book_lore.memo_schrab_rd.page.2=奇特的作用被转化为极高能 量的光子. 这是许多既定粒子 转化定律的极端例外, 但初步 实验证明,这些质子转变为 上下夸克,最终形成了 saralloy. +book_lore.memo_schrab_rd.page.3=奇怪的是,原型需要钨合金 和少量的 saralloy. 此外, 需要一个特殊的电容器来 抵消剩余的正电荷. + book_lore.memo_schrab_nuke.name=研究报告 book_lore.memo_schrab_nuke.author=Schrabauer博士 -book_lore.memo_schrab_nuke.page.0=Our most recent investigation led us to the effects of nuclear explosions on materials. Thanks to our grant money, we *accidentally* tested our theory on direct saralloy synthesis from uranium. -book_lore.memo_schrab_nuke.page.1=最近的调查使我们了解了核爆炸对材料造成的影响。多亏外界给我们的赠款,我们*意外地*测试了铀直接合成异变金属的理论。 -book_lore.memo_schrab_nuke.page.2=而此前我们只在回旋加速器中制作出异变金属。但这次,我们在对Everwerpen的地下拍摄中,在该地点的铀矿石中发现了微量的异变金属。其附近所有的纯金属铀则都发生了裂变。 +book_lore.memo_schrab_nuke.page.0=我们最近的调查使我们了 解了核爆炸对材料的影响. 感谢给我们的赠款, 我们 *意外地* 测试了 我们从铀直接合成 saralloy的理论. +book_lore.memo_schrab_nuke.page.1=以前只有我们的回旋加速 器真正创造了saralloy. 然而,在我们在埃弗沃彭 的地下拍摄中,在现场的 铀矿中发现了微量的saralloy. 附近所有纯金属铀都发生了 裂变. +book_lore.memo_schrab_nuke.page.2=因此,如果有足够多的铀 矿石集中在炸药周围, 甚至可能是一枚富含可裂 变材料的脏弹,人们可以 理论上制造出足够多的 saralloy来人工收集. + book_lore.bf_bomb_1.name=私人笔记 book_lore.bf_bomb_1.author=M. 波特 -book_lore.bf_bomb_1.page.0=Took long enough, but my transfer was accepted. Those new grads were already hard to handle, let alone all the unprofessionalism of the lead. $ Not all good news - this lab was withholding further detail, and I didn't need more chaos over another magic new discovery. -book_lore.bf_bomb_1.page.1=Of course that was the case. The alumni had their doubts (surprising, considering how bright-eyed they were), but my only... competent? colleague actually got his hands on the primer hand-out. Must have more connections than I thought. His memo is discouraging: -book_lore.bf_bomb_1.page.2=apparently, there's yet ANOTHER miracle material that they prodded out of some concoction of antimatter and a fringe isotope. The brochure calls it "SWIRLMAT" - hell if I know - and that's it. No wonder they wanted a theoretical physicist, -book_lore.bf_bomb_1.page.3=they don't even know what it is yet. Either way, practically any job would be better than my old position, so I can't complain much about sketchiness. +book_lore.bf_bomb_1.page.0=花了足够长的时间, 但我的转会被接受了. 那些应届毕业生已经很难应付了, 更不用说那些不专业的领导了. $ 这还不是所有的好消息 - 这个实验室隐瞒了更多的细节, 我不需要在另一个神奇的新发现上碰到更多的混乱. +book_lore.bf_bomb_1.page.1=当然是这样. 毕业生们有他们的疑虑 (考虑到他们的眼睛多么纯真,真是令人惊讶), 但我唯一... 有能力的? 同事实际上拿到了项目介绍资料. 一定比我想象的有更多的关系. 他的备忘录令人沮丧: +book_lore.bf_bomb_1.page.2=显然, 他们从反物质和边缘同位素的混合物中又发现了 另 一 种 神奇的物质. 小册子上称之为 "SWIRLMAT" - 鬼知道是啥 - 就这样. 难怪他们想要一个理论物理学家, +book_lore.bf_bomb_1.page.3=他们甚至还不知道它是什么. 不管怎样, 实际上任何一份工作都会比我以前的职位好, 我不能对这些粗糙之处抱怨太多. + book_lore.bf_bomb_2.name=私人笔记 book_lore.bf_bomb_2.author=M. 波特 -book_lore.bf_bomb_2.page.0=Despite the absence of information in that primer, I still had some hope they knew a bit more. Not at all. Every other senior researcher has a blind faith in this material; their propositions were practically biblical. I was near speechless. -book_lore.bf_bomb_2.page.1=And yet I can't even blame them. Swirlmat makes no goddamn sense - it is completely unlike any other substance I've seen before. Its appearance was near frightening, a literal mass of swirling colors, with darker lines permeating through the neon green surface. -book_lore.bf_bomb_2.page.2=Even worse, this thing is an energy source. The existence of our sample is a violation of ALARA: the lab was vacated when it arrived, and the only person brave enough (one Dr. Melfyn) donned a level A hazmat just to carry it 20 meters. -book_lore.bf_bomb_2.page.3=The empirical data isn't better, as we're breaking the first law of thermodynamics with how much energy it radiates. Being anywhere near that thing - even behind a meter of lead - was terrifying. We sprinted out of the chamber upon conclusion of the spectroscopy -book_lore.bf_bomb_2.page.4=and we got nothing new out of it. Those idiots in the science team, god, did not even waver after all that. Sitting through those "discussions" was horrible; that quack of a head researcher even rumored that the test ban would be lifted, that we could be -book_lore.bf_bomb_2.page.5=building bombs out of the shit in the coming weeks, who in their right mind would work on that? Hell, the one sane assistant (an Andrew) nicknamed it "balefire" - because burning to death on a funeral pyre would be painless by comparison. - - +book_lore.bf_bomb_2.page.0=尽管项目介绍资料中缺乏信息, 但我仍抱着他们或许了解更多的希望. 完全相反! 每一位老研究员都对这种材料抱有盲目的信念; 他们的主张跟圣经似的. 我几乎无言以对. +book_lore.bf_bomb_2.page.1=但我甚至不能责怪他们. Swirlmat 完全不合常理 - 它与我以前见过的任何其他物质都完全不同. 它的外观几乎令人恐惧, 一团漩涡般的色彩, 深色的线条渗透到霓虹绿的表面. +book_lore.bf_bomb_2.page.2=更糟糕的是, 这个东西是一种能量源. 我们的样本的存在违反了ALARA合理最低剂量原则: 实验室在它到达时被清场了, 唯一一个足够勇敢的人 (Dr. Melfyn) 穿着a级危险防护服,只为了把它抬20米. +book_lore.bf_bomb_2.page.3=经验数据也好不到哪里去, 为我们正在用它辐射的能量打破热力学第一定律. 在那东西附近的任何地方 - 甚至是一米厚的铅后面 - 都是可怕的. 光谱分析结束后,我们迅速跑出了房间 +book_lore.bf_bomb_2.page.4=而且我们并没有从中得到什么新的东西. 科学团队中的那些白痴, 天啊, 在这一切之后甚至没有产生一丝动摇. 坐在那里进行这些"讨论" 可怕的; 首席研究员中的一位半吊子甚至扬言说测试禁令将被取消, 这样我们就可能 +book_lore.bf_bomb_2.page.5=在未来几周内用这鬼玩意制造出炸弹, 哪个脑袋正常的人会去干这事? 真见鬼, 一个理智的助手 (Andrew) 给它起了个绰号"balefire" - 因为相比之下,在火葬柴堆上烧死更好受. + book_lore.bf_bomb_3.name=私人笔记 book_lore.bf_bomb_3.author=M. 波特 -book_lore.bf_bomb_3.page.0=The team and I have made some breakthroughs. Emphasis on the separation - isolating myself from the more devout has made working there so much more bearable. While we still have no idea about the actual properties of balefire (it's difficult to analyze -book_lore.bf_bomb_3.page.1=a sample that fries your equipment) its interactions with other matter has proved fruitful. Notably, they synthesized a "gaseous" form: Andrew, of all people, informed me that it was really a colloid consisting of microscopic balefire particles, suspended in some -book_lore.bf_bomb_3.page.2=noble gas. Each particle is enveloped by a positively-charged 'bubble' of ionized gas, preventing it from settling. Who could've guessed that fatal gamma radiation had a benefit? Not me. $ I'm choosing not to think about how they transformed the sample into -book_lore.bf_bomb_3.page.3=particulate, but I can't understate the utility of this gaseous balefire - it's made it much safer to experiment on. $ Speaking of safety, the head researcher (in an act of callous disregard) made a discovery that also nearly took his head off. - - -book_lore.bf_bomb_3.page.4=He decided to get "dirty" by letting a cell of our new colloid interact directly with some very expensive antimatter: the resulting explosion turned the table it was on into a piece of radiation-bleached slag, carved a near-perfect hemisphere through -book_lore.bf_bomb_3.page.5=the top, and gave the head a healthy dose of ARS. I guess we know how to make it explode now, but god, some people... +book_lore.bf_bomb_3.page.0=我和团队取得了一些突破. 主要是靠分离 - 将我自己与那些神经兮兮的人隔离开来让在这里工作变得更容易忍受. 虽然我们仍然不知道balefire的实际性质 (很难分析会 +book_lore.bf_bomb_3.page.1=炸烂设备的样品) 但事实证明它与其他物质的相互作用是富有成效的. 值得注意的是, 他们合成了一种"气态" 形式: 在所有人中, Andrew, 告诉我,这实际上是一种胶体, 由悬浮在某种惰性气体中的微小balefire颗粒组成 +book_lore.bf_bomb_3.page.2=每个粒子都充满被带正电的电离气体的'气泡'包裹, 阻止其沉降. 谁能想到致命的伽马射线有好处? 反正不是我. $ 我选择不去想他们是如何将样本转化为颗粒的 +book_lore.bf_bomb_3.page.3=, 但我不能低估这种气态balefire的效用 - 它使实验更加安全. $ 说到安全, 首席研究员 (以一种无视安全的行为) 做出了一个几乎让他大吃一惊的发现. +book_lore.bf_bomb_3.page.4=他决定让我们新胶体的一个细胞与一些非常昂贵的反物质直接相互作用来“推进”实验: 由此产生的爆炸将它所在的桌子变成了一块辐射漂白的渣子, 在顶部雕刻出一个近乎完美的半球 +book_lore.bf_bomb_3.page.5=, 并给予头部健康剂量的ARS. 我想我们现在知道如何让它爆炸了, 但天哪, 有些人... + book_lore.bf_bomb_4.name=私人笔记 book_lore.bf_bomb_4.author=M. 波特 -book_lore.bf_bomb_4.page.0=I just can't escape my old work. They're the only place that's hiring despite all this godforsaken turmoil, but I'm not going back into that hole. $ They only tempted me because I need out, fast. Remember that atmospheric testing treaty we withdrew from a week ago? -book_lore.bf_bomb_4.page.1=Well, the dipshit in charge of our lab got something right for once. The denunciation came with a flurry of new "scientists" joining, just so we could weaponize balefire. The lack of critical thought here is honestly baffling - bless him, Andrew even jumped ship the -book_lore.bf_bomb_4.page.2=second the first fucking BOMB DESIGN was drafted. That ass Melfyn looked so happy with his little mechanism - perhaps he got brainworms from carrying that sample? - which involved some stupid shit using the solidified, base balefire and an HV -book_lore.bf_bomb_4.page.3=battery. $ Apparently, the form matters for energy output and activation method or whatever, kind of like uranium versus plutonium in regular nukes, but the end result is an initial shock starting the explosion. I find it funny, hilarious even. -book_lore.bf_bomb_4.page.4=All of them place such emphasis on the activation; they ignore the actual mechanism of it all because they don't have a single clue how it works! It may as well be magic at this point, and yet they're still trying to twist and bend it - just for more weapons of war. +book_lore.bf_bomb_4.page.0=我就是逃避不了以前的工作. 他们是唯一一个在经历了这场混乱之后仍在招聘的地方, 但我不会再回到那个坑里了. $ 他们只是诱惑我,因为我需要出去,要很快出去. 还记得我们一周前退出的大气试验条约吗? +book_lore.bf_bomb_4.page.1=好吧, 我们实验室的负责人这一次做对了. 谴责随着一批新的 "科学家"的加入而来, 只是为了让我们可以将balefire武器化. 这里缺乏批判性思维确实令人困惑 - 祝福他,安德鲁甚至在第一个该死的 +book_lore.bf_bomb_4.page.2=炸 弹 设 计 起草的第二天就跳槽了. 那个混蛋Melfyn看起来对他的那些小玩意很满意 - 也许他携带样本时脑子里进了啥东西? - 其中包括一些愚蠢的垃圾,使用固化的 +book_lore.bf_bomb_4.page.3=基础balefire和高压电池. $ 显然,这种形式对能量输出和激活方法或其他什么都很重要, 有点像常规核武器中的铀与钚, 但最终结果是引发爆炸的初始冲击. 我觉得它很有趣, 甚至很搞笑. +book_lore.bf_bomb_4.page.4=所有这些都强调激活; 他们忽略了这一切的实际机制,因为他们根本不知道它是如何工作的! 在这一点上,这可能很神奇, 但他们仍在试图扭转和弯曲它 - 只是为了获得更多的战争武器. + book_lore.bf_bomb_5.name=私人笔记 book_lore.bf_bomb_5.author=M. 波特 -book_lore.bf_bomb_5.page.0=I just... can't come to grips with it, even days after. It was a foregone conclusion, really, with how flippant the science team was with safety. $ $ Doctor Melfyn, M.S., is gone. Dead, maybe. I saw it happen before my own eyes, in their test chamber. -book_lore.bf_bomb_5.page.1=We had just gotten another batch of pure balefire, and he had recovered electrical equipment and an energy source to test his proposal. I don't know what caused it (was the power on? had he begun too soon?), but it seemingly progressed in agonizingly slow motion, -book_lore.bf_bomb_5.page.2=as the green-tinted light consumed the table, the battery, and Dr. Melfyn standing only a meter away. Even when the table had degraded into a pool of broiling metal on the floor, he did not burn. I don't know what I saw in his eyes... $ $ Terror, or awe -book_lore.bf_bomb_5.page.3=over his continued survival, maybe? Whatever our "miracle" material was, it didn't care. With a bright blaze of light, he disappeared in the next moment. Was he evaporated? incinerated? annihilated? sent to fucking hell itself, I don't know anymore! -book_lore.bf_bomb_5.page.4=The head researcher sickens me. Said we could be more careful, keep trucking, whatever other morale-improving filth he spewed. That dipshit won't ever figure out that playing with fire will get you burned. $ I didn't bother -book_lore.bf_bomb_5.page.5=resigning, I just grabbed my shit and ran for the hills. Not like it matters, anyway; considering the lack of calls, and the mushroom cloud that rose over my (now former) workplace, they've either blown everything up or entered full-on military jurisdiction. -book_lore.bf_bomb_5.page.6=There's a vital distinction to be made between dissection and VIVISECTION, one which was clearly lost on them. They can dissect metal or atoms as much as they like, but tearing into, vivisecting reality itself is only going to end in more Dr. Melfyns. Who knows! -book_lore.bf_bomb_5.page.7=The government wants to put this shit into bombs after all, maybe we'll see a couple more wars, couple more million resigned to a fate worse than death. They can't hide this forever. $ $ I don't care. Not anymore. Please, god, let me go back -book_lore.bf_bomb_5.page.8=to actual science. $ $ Goddamnit, Mae, get ahold of yourself... +book_lore.bf_bomb_5.page.0=我只是... 即使几天后也无法应对. 事实上, 科学团队对安全问题的轻率态度已成定局. $ $ Doctor Melfyn, M.S., 不在了. 也许死了. 我亲眼目睹了这一切, 在他们的试验室里. +book_lore.bf_bomb_5.page.1=我们刚刚得到了另一批纯balefire, 他已经找到了电气设备和能源来测试他的提议. 我不知道是什么原因造成的 (电源开了? 他开始得太早了?), 但它似乎以令人痛苦的慢动作进行, +book_lore.bf_bomb_5.page.2=绿色的光芒吞噬了桌子, 电池, Dr. Melfyn就站在一米外. 即使桌子已经化成地板上的一池灼热的金属, 他也没有被烧伤. 不知道我从他的眼睛里看到了什么... $ $ 也许是对他继续生存 +book_lore.bf_bomb_5.page.3=的恐惧,或者敬畏? 不管我们的“奇迹”材料是什么, 它都不在乎. 随着一道明亮的光, 他在下一刻消失了. 他蒸发了吗? 烧成灰烬了? 完全湮灭了? 被送进他妈的地狱了? 我再也不会知道了! +book_lore.bf_bomb_5.page.4=首席研究员让我恶心. 他说我们可以更加小心, 继续用卡车运输, 或者其他什么能提高士气的屁话. 那个混蛋永远不会明白玩火终会自焚. $ 我没有辞职 +book_lore.bf_bomb_5.page.5=, 我只是抓起我的那点破烂往山上跑. 无论如何,现在这些都不重要了; 考虑到没有电话, 加上我 (现在是以前的了) 工作场所上空升起的蘑菇云, 他们要么炸毁了一切要么完全进入了军事管辖模式. +book_lore.bf_bomb_5.page.6=解剖和 活 体 解 剖 之间有一个重要的区别, 这一点在他们身上显然已经消失了. 们可以随心所欲地解剖金属或原子, 但撕裂、活体解剖现实本身只会以更多的Dr. Melfyns而告终. 谁知道呢! +book_lore.bf_bomb_5.page.7=毕竟政府想把这些玩意装进炸弹里, 也许我们会看到更多的战争, 数百万人听天由命. 他们不能永远隐瞒这件事. $ $ 我不在乎. 再也不了. 求你了, 上帝, 让我回到 +book_lore.bf_bomb_5.page.8=实际的科学上来. $ $ 妈的, Mae, 保持冷静... + book_lore.beacon.name=信号信标说明书 book_lore.beacon.author=Flim Flam工业 book_lore.beacon.page.0=感谢您购买Mk.2照明信号信标(版本1.3)!这本小册子将简要介绍信标的操作及其内部工作原理。 @@ -594,10 +617,11 @@ commands.satellite.not_a_satellite=持有的物品不是卫星! commands.satellite.satellite_descended=卫星成功降落。 commands.satellite.satellite_orbited=卫星发射。 commands.satellite.should_be_run_as_player=此命令应该由玩家运行! -container.amsBase=AMS基座(装饰) -container.amsEmitter=AMS发射极(装饰) -container.amsLimiter=AMS稳能器(装饰) -container.anvil=砧 + +container.amsBase=AMS基座 [装饰] +container.amsEmitter=AMS激发装置 [装饰] +container.amsLimiter=AMS稳定力场发生装置 [装饰] +container.anvil=%s 级砧 container.arcFurnace=电弧炉 container.armorTable=装甲改装台 container.ashpit=储灰槽 @@ -659,9 +683,10 @@ container.heaterOven=加热炉 container.iGenerator=工业发电机 container.keyForge=锁匠桌 container.launchPad=导弹发射台 -container.launchTable=大型发射台 -container.leadBox=安全盒 -container.machineBoiler=锅炉 +container.launchTable=大型导弹发射台 +container.leadBox=安全箱 +container.machineArcWelder=弧焊机 +container.machineBoiler=原油加热器 container.machineCMB=CMB炼钢炉 container.machineCoal=火力发电机 container.machineCoker=焦化装置 @@ -681,9 +706,9 @@ container.machineShredder=粉碎机 container.machineSILEX=激光同位素分离室 container.machineSolidifier=固化机 container.machineTurbine=汽轮机 -container.machineTurbofan=涡扇发动机 -container.machine_schrabidium_transmutator=Sa326嬗变装置 -container.massStorage=存储 +container.machineTurbofan=涡扇发电机 +container.machine_schrabidium_transmutator=Sa326异变铀金属嬗变装置 +container.massStorage=存储器 container.microwave=微波炉 container.miningDrill=自动采矿钻机 container.miningLaser=采矿激光 @@ -765,97 +790,100 @@ crucible.hematite=赤铁矿炼铁 crucible.hss=高速钢生产 crucible.malachite=孔雀石炼铜 crucible.redcopper=紫铜生产 -crucible.steel=钢铁生产 -crucible.steelMeteoric=陨铁炼钢 -crucible.steelPig=生铁炼钢 -crucible.steelWrought=锻铁炼钢 -crucible.tcalloy=锝钢合金生产 -death.attack.acid=%1$s 掉进了酸里 -death.attack.acidPlayer=%1$s 被 %2$s 溶解 -death.attack.ams=%1$s 沐浴在尚未被人类科学命名的致命粒子中 -death.attack.amsCore=%1$s 在奇点之火中蒸发 -death.attack.asbestos=%1$s现在有权获得经济补偿 -death.attack.bang=%1$s 被炸成小块碎片 -death.attack.blackhole=%1$s 粉身碎骨 -death.attack.blender=%1$s 被切成小块 -death.attack.boat=%1$s 被船撞了 -death.attack.boil=%1$s被%2$s活活煮沸 -death.attack.boxcar=%1$s 被一节坠落的车厢撞死了...好吧 -death.attack.broadcast=%1$s 的大脑融化了 -death.attack.building=%1$s 被从天而降的建筑砸中了 -death.attack.cheater=%1$s 的肠子变成了燕麦(???) -death.attack.chopperBullet=%1$s 被 %2$s 屠杀 -death.attack.cloud=%1$s 像冰棒一样在太阳下融化 -death.attack.cmb=%1$s 被 %2$s 搞得嘶嘶作响 -death.attack.digamma=%1$s 踏入深渊 -death.attack.electricity=%1$s 被电死 -death.attack.electrified=%1$s 被 %2$s 电死 -death.attack.euthanized=%1$s 被 %2$s 安乐死 -death.attack.euthanizedSelf2=%1$s 获得了达尔文奖 -death.attack.euthanizedSelf=%1$s 把自己安乐死了,可真傻 -death.attack.exhaust=%1$s 被火箭烤成了羊肉串 -death.attack.flamethrower=%1$s 被 %2$s 火化 -death.attack.flamethrower.item=%1$s 被 %2$s 使用 %3$s 火化 -death.attack.ice=%1$s 被 %2$s 做成了冰棒 -death.attack.laser=%1$s 被 %2$s 变成了灰烬 -death.attack.laser.item=%1$s 被 %2$s 使用 %3$s 变成灰烬 -death.attack.lead=%1$s 死于铅中毒 -death.attack.lunar=%1$s 忘记了给重要器官充电 -death.attack.meteorite=%1$s 被来自外太空的陨石击中 -death.attack.microwave=%1s 因微波辐射爆炸 -death.attack.mku=%1$s 死于不明原因 -death.attack.monoxide=%1$s忘了换一氧化碳探测器的电池 -death.attack.mudPoisoning=%1$s 死于毒泥浆中 -death.attack.nuclearBlast=%1$s 被核爆炸飞 -death.attack.overdose=%1$s 上瘾并窒息 -death.attack.pc=%1$s 在粉红色的云中变成了一个水坑 -death.attack.plasma=%1$s 被 %2$s 烧死 -death.attack.radiation=%1$s 死于辐射 -death.attack.revolverBullet=%1$s 被 %2$s 用 %3$s 击中头部 -death.attack.revolverBullet.item=%1$s 被 %2$s 使用 %3$s 爆头 -death.attack.rubble=%1$s 被碎片压扁了 -death.attack.shrapnel=%1$s 被榴弹碎片炸得千疮百孔 -death.attack.spikes=%1$s被刺穿了 -death.attack.subAtomic1=%1$s 的原子已被 %2$s 销毁. -death.attack.subAtomic2=%1$s 因为被 %2$s 篡改了实际速度,导致QPU没有对准 -death.attack.subAtomic3=由于 %2$s,1$s 的偏差下降到1%以下 -death.attack.subAtomic4=%1$s 因为 %2$s 被零除了 -death.attack.subAtomic5=%1$s 因为 %2$s 无效了 -death.attack.suicide=%1$s 打爆了自己的头 -death.attack.taint=%1$s 死于恶性肿瘤 -death.attack.tau=%1$s 被 %2$s 用带负电荷的陶子射穿 -death.attack.tauBlast=%1$s 对XVL1456充能时间过长,被炸成碎片 -death.attack.teleporter=%1$s 被传送到虚空 -desc.gui.assembler.warning=§c错误:§r此机器需要装配机模板! -desc.gui.chemplant.warning=§c错误:§r此机器需要化工厂模板! -desc.gui.gasCent.enrichment=§2浓缩§r$浓缩铀需要串联$两个离心机串联将离心出$铀燃料,四个离心机串联$将完全分离出铀235。 -desc.gui.gasCent.output=§6流体输送§r$流体可通过输出端口输送至另一台离心机$进行进一步处理。 -desc.gui.nukeBoy.desc=§1需要:§r$ * 中子屏蔽罩$ * 铀-235弹头$ * 次临界铀-235标靶$ * 炸药$ * 点火器 -desc.gui.nukeGadget.desc=§1需要:§r$ * 4个 初代$ 炸药透镜阵列$ * 钚核心$ * 线路 -desc.gui.nukeMan.desc=§1需要:§r$ * 4个 初代$ 炸药透镜阵列$ * 钚核心$ * 点火器 -desc.gui.nukeMike.desc=§1需要:§r$ * 4个 炸药透镜阵列$ * 钚核心$ * 氘冷却装置$ * 铀涂层氘罐 * 氘罐 -desc.gui.nukeTsar.desc=§1需要:§r$ * 4个 炸药透镜阵列$ * 钚核心$§9可选:§r$ * 沙皇炸弹核心 -desc.gui.radiolysis.desc=§9说明§r$该RTG比其他RTG更高效,并且$配备了一个用于$裂解和灭菌的辐解室。 -desc.gui.rtgBFurnace.desc=处理$金-198需要至少15热量。此外,热量越多,运行速度越快$金-198可能会衰变为水银 -desc.gui.rtg.heat=§e当前热等级:%s -desc.gui.rtg.pellets=接受的靶丸: +crucible.steel=钢生产 +crucible.steelMeteoric=陨铁->钢 生产 +crucible.steelPig=生铁->钢 生产 +crucible.steelWrought=锻铁->钢 生产 +crucible.tcalloy=锝-钢合金生产 + +death.attack.acid=%1$s 掉进了酸里. +death.attack.acidPlayer=%1$s 被 %2$s 溶解了. +death.attack.ams=%1$s 沐浴在尚未被人类科学命名的致命粒子中. +death.attack.amsCore=%1$s 在高能奇点之火中蒸发. +death.attack.asbestos=%1$s 现在有权获得经济补偿. +death.attack.bang=%1$s 被炸成一口大小碎片. +death.attack.blackhole=%1$s 被黑洞拉成了意大利面. +death.attack.blender=%1$s 被切割成了很小的,以Byte计数的单位. +death.attack.boat=%1$s 被船砸扁了. +death.attack.boil=%1$s 被 %2$s 活生生煮沸了. +death.attack.boxcar=%1$s 被一节坠落的车厢砸扁了...好吧. +death.attack.broadcast=%1$s 的大脑融化了. +death.attack.building=%1$s 被从天而降的建筑砸中了. +death.attack.cheater=%1$s 的内脏变成了燕麦(???). +death.attack.chopperBullet=%1$s 被 %2$s 屠杀. +death.attack.cloud=%1$s 像在太阳下的冰棒一样融化. +death.attack.cmb=%1$s 被 %2$s 电的焦脆. +death.attack.digamma=%1$s 在追求真理时步入了深渊. +death.attack.electricity=%1$s 被电死. +death.attack.electrified=%1$s 被 %2$s 电死. +death.attack.euthanized=%1$s 被 %2$s 安乐死. +death.attack.euthanizedSelf2=%1$s 获得了达尔文奖. +death.attack.euthanizedSelf=%1$s 把自己安乐死了, 真鸡儿丢人. +death.attack.exhaust=%1$s 被火箭烤成了羊肉串. +death.attack.flamethrower=%1$s 被 %2$s 火化. +death.attack.flamethrower.item=%1$s 被 %2$s 用 %3$s火化. +death.attack.ice=%1$s 被 %2$s 冻成了冰棒. +death.attack.laser=%1$s 被 %2$s 变成了灰烬. +death.attack.laser.item=%1$s 被 %2$s 用 %3$s 变成了灰烬. +death.attack.lead=%1$s 死于铅中毒. +death.attack.lunar=%1$s 忘了给他的重要器官维持系统充电. +death.attack.meteorite=%1$s 被来自外太空的陨石击中,他可以去买彩票了. +death.attack.microwave=%1$s 被过量微波辐射而爆炸了. +death.attack.mku=%1$s 死于不知名的原因. +death.attack.monoxide=%1$s 忘了给一氧化碳探测器换电池. +death.attack.mudPoisoning=%1$s 死于毒泥浆中. +death.attack.nuclearBlast=%1$s 被核爆冲击波炸飞. +death.attack.overdose=%1$s 服药过量后窒息了. +death.attack.pc=%1$s 在粉红色的云中变成了一滩水. +death.attack.plasma=%1$s 被 %2$s 献祭了. +death.attack.radiation=%1$s 死于辐射. +death.attack.revolverBullet=%1$s 被 %2$s 爆头. +death.attack.revolverBullet.item=%1$s 被 %2$s 用 %3$s 爆头. +death.attack.rubble=%1$s 被挤压成了碎片. +death.attack.shrapnel=%1$s 被榴弹碎片炸得千疮百孔. +death.attack.spikes=%1$s 被刺了个透心凉. +death.attack.subAtomic1=%1$s 的原子被 %2$s 摧毁. +death.attack.subAtomic2=%1$s 因为被 %2$s 篡改了实际速度, 导致QPU没有对准. +death.attack.subAtomic3=由于 %2$s, 1$s 的偏差下降到1%以下. +death.attack.subAtomic4=%1$s 因为 %2$s 被零除了. +death.attack.subAtomic5=%1$s 因为 %2$s 无效了. +death.attack.suicide=%1$s 打爆了自己的头. +death.attack.taint=%1$s 死于恶性肿瘤. +death.attack.tau=%1$s 被 %2$s 用带负电荷的陶子打得千疮百孔. +death.attack.tauBlast=%1$s 对XVL1456充能时间过长, 被炸成碎片. +death.attack.teleporter=%1$s 被传送到虚空. + +desc.block.blastinfo=方块抗爆性: %s +desc.gui.assembler.warning=§c错误:§r 错误:此装配机需要组装机模板! +desc.gui.chemplant.warning=§c错误:§r 此化工装置需要化学配方模板! +desc.gui.gasCent.enrichment=§2浓缩§r$铀浓缩需要多个离心机串联.$两个离心串联$将仅分离出铀238,$四个离心串联将完全分离六氟化铀. +desc.gui.gasCent.output=§6流体传输§r$液体可以通过输出端口转移到$另一台离心机进行进一步处理. +desc.gui.nukeBoy.desc=§1需要组件:§r$ * 中子屏蔽罩$ * 铀235弹头$ * 次临界铀235标靶$ * 炸药$ * 点火器 +desc.gui.nukeGadget.desc=§1需要组件:§r$ * 4 个初代高能$ 内爆炸药阵列$ * 大型钚核心$ * 线路 +desc.gui.nukeMan.desc=§1需要组件:§r$ * 4 个初代高能$ 内爆炸药阵列$ * 钚核心$ * 炸弹点火装置 +desc.gui.nukeMike.desc=§1需要组件:§r$ * 4 个高能内爆炸药阵列$ * 钚核心$ * 氘冷却装置$ * 铀涂层氘罐$ * 氘罐 +desc.gui.nukeTsar.desc=§1需要组件:§r$ * 4 个高能内爆炸药阵列$ * 钚核心$§9可选:§r$ * 沙皇炸弹核心 +desc.gui.radiolysis.desc=§9说明§r$这种RTG比其他RTG效率更高, $配有一个辐解室,$用于裂解和灭菌. +desc.gui.rtgBFurnace.desc=需要至少15级热量来进行加工$热量越多,运行速度越快$超过最大速度后多余的热量不会产生任何影响$短半衰期的靶丸可能会衰变 +desc.gui.rtg.heat=§e当前热量级别: %s +desc.gui.rtg.pellets=可接受的靶丸: desc.gui.rtg.pelletHeat=%s (%s 热量) -desc.gui.rtg.pelletPower=%s (%s HE/刻) -desc.gui.template=§9模板§r$模板可由$机器模板文件夹制作。 -desc.gui.turbinegas.automode=§2自动涡轮机节流模式§r$通过单击“AUTO”按钮,涡轮机$将根据网络所需的功率自动调整发电量$ -desc.gui.turbinegas.fuels=§6可接受的燃料:§r -desc.gui.turbinegas.warning=§c燃油或润滑油液位低!§r -desc.gui.upgrade=§l可接受的升级:§r -desc.gui.upgrade.afterburner=*§d加力燃烧§r:堆叠至3级 -desc.gui.upgrade.effectiveness=*§a效率§r:堆叠至3级 -desc.gui.upgrade.overdrive=*§7超速§r:堆叠至3级 -desc.gui.upgrade.power=*§1节能§r:堆叠至3级 -desc.gui.upgrade.speed=*§4速度§r:堆叠至3级 -desc.gui.zirnox.coolant=§3冷却剂§r$CO2将热量从堆芯转移到水中$这会令它变成成超热蒸汽$冷却和蒸汽生产的效率取决于压力。 -desc.gui.zirnox.pressure=§6压力§r$排放二氧化碳可以降低压力$然而,压力过低,冷却效率和蒸汽产量将降低$小心熔毁! -desc.gui.zirnox.warning1=§c错误:§r反应堆正常运行需要水! -desc.gui.zirnox.warning2=§c错误:§r二氧化碳是反应堆正常运行所必需的! -desc.item.ammo.con_accuracy2=- 精度大幅降低 +desc.gui.rtg.pelletPower=%s (%s HE/tick) +desc.gui.template=§9模板§r$可以使用机器模板$文件夹制作模板. +desc.gui.turbinegas.automode=§2燃汽轮机自动节流模式§r$通过点击 "AUTO" 按钮, 燃汽轮机$将根据电网所需功率$自动调整发电量 +desc.gui.turbinegas.fuels=§6可接受的燃气:§r$ +desc.gui.turbinegas.warning=§c燃油或润滑油液位低!§r +desc.gui.upgrade=§l可接受的升级:§r +desc.gui.upgrade.afterburner= * §d加力燃烧§r: 最高为3级 +desc.gui.upgrade.effectiveness= * §a效率§r: 最高为3级 +desc.gui.upgrade.overdrive= * §7超频§r: 最高为3级 +desc.gui.upgrade.power= * §1节能§r: 最高为3级 +desc.gui.upgrade.speed= * §4速度§r: 最高为3级 +desc.gui.zirnox.coolant=§3冷却§r$二氧化碳将热量从反应堆核心转移到水中.$这会把水加热成蒸汽. $冷却和蒸汽生产的$效率取决于压力大小. +desc.gui.zirnox.pressure=§6压力§r$可以通过减少反应堆中的CO2量来降低压力.$但是, 压力过低, 冷却效率和$蒸汽产量会降低.$小心熔毁! +desc.gui.zirnox.warning1=§c错误:§r 反应堆正常运行$需要水! +desc.gui.zirnox.warning2=§c错误:§r 反应堆正常运行$需要二氧化碳! +desc.item.ammo.con_accuracy2=- 精确度大大降低 desc.item.ammo.con_damage=- 伤害大幅降低 desc.item.ammo.con_heavy_wear=- 大幅增加磨损 desc.item.ammo.con_ling_fire=- 没有火焰 @@ -880,27 +908,27 @@ desc.item.ammo.neu_boat=* 船 desc.item.ammo.neu_boxcar=* 车厢 desc.item.ammo.neu_building=* 建筑物 desc.item.ammo.neu_chlorophyte=* 叶绿 -desc.item.ammo.neu_eraser=* 用于消除重大错误 -desc.item.ammo.neu_fun=* 全家其乐无穷! -desc.item.ammo.neu_heavy_metal=* 重金属 -desc.item.ammo.neu_homing=* 追踪 -desc.item.ammo.neu_jolt=* 震荡 +desc.item.ammo.neu_eraser=* 为了消除一些大麻烦 +desc.item.ammo.neu_fun=* 和你的核谐家庭一起快乐的来放烟花玩耍吧! +desc.item.ammo.neu_heavy_metal=* 含重金属 +desc.item.ammo.neu_homing=* 自动追踪目标 +desc.item.ammo.neu_jolt=* 颠簸 desc.item.ammo.neu_leadburster=* 附着在表面并喷射子弹 -desc.item.ammo.neu_less_bouncy=* 弹性更小 -desc.item.ammo.neu_maskman_flechette=* 曳光弹,同时引发一场贫铀飞镖弹风暴 -desc.item.ammo.neu_maskman_meteorite=* 高伤害,同时召唤小陨石 -desc.item.ammo.neu_more_bouncy=* 额外弹性 -desc.item.ammo.neu_no_bounce=* 没有弹性 -desc.item.ammo.neu_no_con=* 没有缺点 -desc.item.ammo.neu_starmetal=* 星辉金属 -desc.item.ammo.neu_tracer=* 示踪剂 -desc.item.ammo.neu_uhh=* Uhhh -desc.item.ammo.neu_warcrime1=* 从技术上来讲触犯了战争罪 -desc.item.ammo.neu_warcrime2=* 一发触犯两条战争罪! -desc.item.ammo.pro_accurate1=+ 提升精度 -desc.item.ammo.pro_accurate2=+ 近乎完美的精度 -desc.item.ammo.pro_balefire=+ 野火 -desc.item.ammo.pro_bomb_count=+ 炸弹数量增加 +desc.item.ammo.neu_less_bouncy=* 霰弹更少 +desc.item.ammo.neu_maskman_flechette=* 发射一个能召唤出一场铀涂层镖弹碎片风暴的示踪剂 +desc.item.ammo.neu_maskman_meteorite=* 发射高伤害的子弹并召唤一颗小陨石 +desc.item.ammo.neu_more_bouncy=* 更多霰弹 +desc.item.ammo.neu_no_bounce=* 非霰弹 +desc.item.ammo.neu_no_con=* 没有任何负面作用 lol +desc.item.ammo.neu_starmetal=* 含星辉金属 +desc.item.ammo.neu_tracer=* 曳光弹 +desc.item.ammo.neu_uhh=* 啊哈 +desc.item.ammo.neu_warcrime1=* 从技术上讲使用它是犯了战争罪 +desc.item.ammo.neu_warcrime2=* 一颗子弹犯下两条战争罪! +desc.item.ammo.pro_accurate1=+ 准确性提高 +desc.item.ammo.pro_accurate2=+ 近乎完美的精确度 +desc.item.ammo.pro_balefire=+ B.F.野火 +desc.item.ammo.pro_bomb_count=+ 增加炸弹数量 desc.item.ammo.pro_caustic=+ 腐蚀性 desc.item.ammo.pro_chainsaw=+ 电锯 desc.item.ammo.pro_chlorine=+ 氯气 @@ -935,18 +963,19 @@ desc.item.ammo.pro_stunning=+ 眩晕 desc.item.ammo.pro_toxic=+ 剧毒 desc.item.ammo.pro_wear=+ 减少磨损 desc.item.ammo.pro_withering=+ 凋零 -desc.item.armorMod.display=显示已安装的装甲模块 -desc.item.battery.charge=储能: %s / %sHE -desc.item.battery.chargePerc=储能: %s%% -desc.item.battery.chargeRate=充电效率: %sHE/刻 -desc.item.battery.dischargeRate=放电效率: %sHE/刻 -desc.item.durability=耐久: %s -desc.item.grenade.fuse=引信: %s -desc.item.grenade.fuseImpact=碰炸 -desc.item.grenade.fuseInstant=瞬发 -desc.item.gun.ammo=弹药 %s -desc.item.gun.ammoBelt=从背包中使用 -desc.item.gun.ammoEnergy=能耗; %sHE 每发 +desc.item.armorMod.display=来显示该盔甲上所安装的配件的效果 +desc.item.battery.charge=电量: %s / %sHE +desc.item.battery.chargePerc=电量: %s%% +desc.item.battery.chargeRate=充电速率: %sHE/tick +desc.item.battery.dischargeRate=放电速率: %sHE/tick +desc.item.detonator=已设置引爆位置!$未设置引爆位置! +desc.item.durability=耐久度: %s +desc.item.grenade.fuse=引爆延时: %s +desc.item.grenade.fuseImpact=接触爆炸 +desc.item.grenade.fuseInstant=即爆 +desc.item.gun.ammo=弹药量 %s +desc.item.gun.ammoBelt=自动从背包中装填 +desc.item.gun.ammoEnergy=能量; %sHE 每发 desc.item.gun.ammoEnergyAlt=%sHE 每发 desc.item.gun.ammoMag=%s / %s desc.item.gun.ammoType=弹药类型: %s @@ -956,18 +985,16 @@ desc.item.gun.damageAlt=伤害: %s desc.item.gun.lore=查看深入的知识 desc.item.gun.loreFunc=查看深入功能 desc.item.gun.manufacturer=制造商: %s -desc.item.gun.name=名称: %s -desc.item.gun.pellets=弹丸数:%s-%s -desc.item.gun.penetration=装甲穿透值: %s -desc.item.kitArmor=装甲将被新的装备取代。 -desc.item.kitHaz=装甲将被防护服取代。 -desc.item.kitPack=真便宜! -desc.item.kitPool=请在打开前清空背包库存! -desc.item.pileRod=§e使用钻孔石墨插入$§E使用螺丝刀拔出$ - - -desc.item.rtgDecay=衰变为:%s -desc.item.rtgHeat=功率级别:%s +desc.item.gun.name=枪械名称: %s +desc.item.gun.pellets=弹丸: %s - %s +desc.item.gun.penetration=护甲穿透值: %s +desc.item.kitArmor=现穿的护甲将被新护甲取代. +desc.item.kitHaz=防护服将取代现穿的护甲. +desc.item.kitPack=真便宜! +desc.item.kitPool=请在打开前清空你的背包! +desc.item.pileRod=§e用于插入钻削过的石墨$§e使用螺丝刀翘出$ +desc.item.rtgDecay=衰变为: %s +desc.item.rtgHeat=热量级别: %s desc.item.storage.capacity=容量 %s%%s desc.item.storage.proscons=查看利弊列表 desc.misc.357=.357 马格南 @@ -980,18 +1007,34 @@ desc.misc.lore=§n-- 知识 -- desc.misc.lshift=§8按住 <§e§o左SHIFT§8§o> %s desc.misc.luna=§o20x155mm Lunatic desc.misc.meltPoint=熔点: §c%s -desc.misc.noPos=未设置位置! -desc.misc.pos=将位置设置为:%s,%s,%s -desc.misc.posSet=位置已设置! +desc.misc.noPos=未设置触发位置! +desc.misc.pos=设置触发位置为 : %s, %s, %s +desc.misc.posSet=触发位置已设置! desc.item.wasteCooling=在乏燃料池中冷却 -desc.item.zirnoxBreedingRod=§2[ZIRNOX增殖棒]$§e放在燃料棒旁边增殖$§e持续 %d 刻 -desc.item.zirnoxRod=§a[ZIRNOX燃料棒]$§e每刻产生 %1$d 热量$§e持续 %2$d 刻 -digamma.playerDigamma=玩家F-迪伽马辐照水平: -digamma.playerHealth=玩家所受F-迪伽马辐照影响: -digamma.playerRes=玩家F-迪伽马防护水平: -digamma.title=玩家F-迪伽马辐射自检器 -entity.entity_cyber_crab.name=赛博螃蟹 -entity.entity_elder_one.name=上古鸭神 +desc.item.upgrade.machine=采矿钻机:§r$自动激光采矿钻机:$电炉:§r$装配机:§r$化工厂:§r$油井:§r$矿物结晶机:§r$回旋加速器:§r$废气燃烧塔:§r$高能微波炮塔:§r$涡扇发电机:§r$力场范围升级§r$力场能量升级§r$采矿激光升级§r$气体离心机升级§r$ +desc.item.upgrade.speed=耗时 -%s%% / 耗电量 +%sHE/t$耗时 ÷%s / 耗电量 +%sHE/t$耗时 -%s%% / 耗电量 +%s%%$对撞速度 x%s$伤害 +%sdmg/t +desc.item.upgrade.effect=半径 +%sm / 耗电量 +%sHE/t$+%s%% 的几率不消耗物品 / 酸消耗量 +%smB$-%s%% 的几率延长加速器过热缓冲时间$+%s%% 发电量$攻击范围 +%sm +desc.item.upgrade.power=耗电量 -%sHE/t / 耗时 +%s%%$耗电量 -%s%% / 耗时 +%s%%$耗电量 -%skHE/t$耗电量 -%sHE/t$单次开火耗电 -%sHE/t +desc.item.upgrade.fortune=幸运 +%s / 耗时 +%s +desc.item.upgrade.afterburn=发电量 x%s / 燃料消耗 x%s$加力燃烧 +%ss$燃烧%smB燃气产生%sHE/t +desc.item.upgrade.forcefield=半径 +16 / 耗电 +500$最大能量 +50 / 耗电 +250$最多堆叠16个 +desc.item.upgrade.smelter=融化方块.够简单了. +desc.item.upgrade.shredder=自动粉碎矿石 +desc.item.upgrade.centrifuge=其作用不言自明 +desc.item.upgrade.crystallizer=你新的最好的朋友:) +desc.item.upgrade.screm=就像在《超级马里奥》里,所有的方块都是蟾蜍$但在这里是半条命的科学家.$他们在尖叫.很多尖叫. +desc.item.upgrade.nullifier=有50%%的几率用/dev/zero覆盖无用物品$有50%%的几率将无用物品移到/dev/null +desc.item.upgrade.gc_speed=允许对六氟化铀进行全同位素分离$§e离心机也会进入病态模式 +desc.item.zirnoxBreedingRod=§2[ZIRNOX锆诺克斯反应堆增殖棒]$§e放在燃料棒旁边以增殖$§e持续 %d ticks +desc.item.zirnoxRod=§a[ZIRNOX锆诺克斯反应堆燃料棒]$§e产生 %1$d 热量每tick$§e持续 %2$d ticks + +digamma.playerDigamma=玩家Ϝ迪伽马辐照水平: +digamma.playerHealth=玩家所受Ϝ迪伽马辐照影响: +digamma.playerRes=玩家Ϝ迪伽马防护水平: +digamma.title=玩家Ϝ迪伽马辐射自检器 + +entity.entity_cyber_crab.name=机械螃蟹 +entity.entity_elder_one.name=Quackos古老者 entity.entity_fucc_a_ducc.name=鸭子 entity.entity_glyphid.name=异虫 entity.entity_glyphid_behemoth.name=巨兽异虫 @@ -1011,20 +1054,24 @@ entity.entity_mob_nuclear_creeper.name=核爆爬行者 entity.entity_mob_phosgene_creeper.name=光气爬行者 entity.entity_mob_tainted_creeper.name=污染爬行者 entity.entity_mob_volatile_creeper.name=不稳定爬行者 -entity.entity_taint_crab.name=污染螃蟹 -entity.entity_tesla_crab.name=磁暴螃蟹 -entity.hbm.entity_balls_o_tron.name=机械蠕虫 -entity.hbm.entity_balls_o_tron_seg.name=机械蠕虫 +entity.entity_plastic_bag.name=塑料袋 +entity.entity_taint_crab.name=腐化机械螃蟹 +entity.entity_tesla_crab.name=磁暴机械螃蟹 +entity.hbm.entity_balls_o_tron.name=世-界-毁-灭-者 O-TRON +entity.hbm.entity_balls_o_tron_seg.name=世-界-毁-灭-者 O-TRON 躯干 entity.hbm.entity_bullet.name=子弹 entity.hbm.entity_rocket.name=火箭弹 -entity.hbm.entity_schrabnel.name=Schrabnel +entity.hbm.entity_schrabnel.name=弹片 + excavator.crusher=粉碎开关 excavator.drill=挖掘开关 excavator.silktouch=精准采集开关 excavator.veinminer=连锁挖矿开关 excavator.walling=填充开关 -flare.ignition=点火装置 -flare.valve=流量阀 + +flare.ignition=点火开关 +flare.valve=燃气阀门 + fluid.acid_fluid=酸 fluid.corium_fluid=堆芯熔融物 fluid.mud_fluid=毒泥 @@ -1069,7 +1116,7 @@ gun.make.MANN=Open Mann公司 gun.make.MAXIM=海勒姆·马克沁 gun.make.METRO=地铁枪手 gun.make.MWT=MWT原型实验室 -gun.make.NAWS=Kayarm Industries +gun.make.NAWS=Kayarm工业 gun.make.ERFURT=埃尔福特机械制造厂 gun.make.NONE=- gun.make.RAYTHEON=导弹系统公司 @@ -1082,74 +1129,75 @@ gun.make.SACO=萨科防卫军械 gun.make.TULSKY=图拉武器厂 gun.make.UAC=联合宇宙航空公司 gun.make.UNKNOWN=??? -gun.make.WESTTEK=WestTek研究设施 -gun.make.WGW=威廉·古斯特洛夫·维尔克 -gun.make.WINCHESTER=温彻斯特速射武器公司 -gun.make.WINCHESTER_BIGMT=温彻斯特速射武器公司/大型MT -gun.name.ar15_50=AR-15 .50BMG型 -gun.name.baeAR=英国制式突击步枪 -gun.name.bel=野火蛋发射器 -gun.name.benelli=伯奈利M4 Super 90霰弹枪 -gun.name.benelliDrum=伯奈利M4 Super 90霰弹枪 (泵动供弹改进型) +gun.make.WESTTEK=西部科技 +gun.make.WGW=威廉·古斯特洛夫·沃克 +gun.make.WINCHESTER=温彻斯特连发轻武器公司 +gun.make.WINCHESTER_BIGMT=温彻斯特连发轻武器公司 / 巨山研发中心 + +gun.name.ar15_50=AR-15 .50 BMG 模式 +gun.name.baeAR=不列颠标准型突击步枪 +gun.name.bel=B.F.野火蛋弹射器 +gun.name.benelli=贝内利M4 Super 90霰弹枪 +gun.name.benelliDrum=贝内利M4 Super 90霰弹枪(弹鼓) gun.name.bio=RI No. 2 Mark 1 gun.name.bolter=Manticora Pattern爆弹枪 gun.name.congoLake=刚果湖水泵动榴弹发射器 gun.name.cPython=柯尔特蟒蛇 -gun.name.cz53=CZ53 单兵转轮机枪 -gun.name.cz57=CZ57 复仇者机枪 -gun.name.dart=针枪 -gun.name.deagle=以色列军事工业公司沙漠之鹰 -gun.name.emp=EMP投射器 -gun.name.extinguisher=PROTEX灭火器6kg -gun.name.ffiV=FFI Viper -gun.name.ffiVInox=FFI Viper Inox -gun.name.ffiVLead=FFI Viper Lead -gun.name.ffiVN1=FFI Viper N1 -gun.name.ffiVN2=FFI Viper N2 -gun.name.ffiVUltra=FFI Viper Ultra -gun.name.ffivBling=FFI Viper Bling -gun.name.ffivSatur=FFI Viper D-25A -gun.name.g36=HK G36突击步枪 -gun.name.gPistol=HK69A1 手持单发榴弹发射器 -gun.name.gustav=卡尔·古斯塔夫M1无后坐力炮 -gun.name.ifHorseshoe=IF-18 蹄铁 -gun.name.ifPit=IF-18 蹄铁 Bottomless Pit -gun.name.ifScope=IF-18 蹄铁 Scoped -gun.name.ifStorm=IF-18 蹄铁 银色风暴 -gun.name.ifVanity=IF-18 蹄铁 Vanity -gun.name.karl=M1 卡尔·古斯塔夫 -gun.name.ks23=KS-23霰弹枪 -gun.name.lacunae=Auntie Lacunae -gun.name.lasetDet=霍普维尔激光雷管 -gun.name.lunaAR=1986 Bishamonten式突击步枪 -gun.name.lunaGun=1978 Rāhula type Standard Issue Sidearm (Revision 2) -gun.name.lunaHLR=1944嫦娥式轻机枪 -gun.name.lunaShotty=1978年关羽式散弹枪(第1次修订) -gun.name.lunaSMG=1956 ānanda type Submachine Gun -gun.name.lunaSniper=1915后羿式反器材步枪 +gun.name.cz53=CZ53单兵火神炮 +gun.name.cz57=CZ57复仇火神炮 +gun.name.dart=气动射针枪 +gun.name.deagle=IMI沙漠之鹰 +gun.name.emp=EMP磁暴步枪 +gun.name.extinguisher=PROTEX6kg灭火器 +gun.name.ffiV=普通左轮手枪 +gun.name.ffiVInox=强化左轮手枪 +gun.name.ffiVLead=核子左轮手枪 +gun.name.ffiVN1=梦魇左轮手枪(初代) +gun.name.ffiVN2=梦魇左轮手枪(黑暗) +gun.name.ffiVUltra=Sa326元素左轮手枪 +gun.name.ffivBling=黄金左轮手枪 +gun.name.ffivSatur=土星金属手枪 +gun.name.g36=黑克勒 & 科赫 G36突击步枪 +gun.name.gPistol=HK69榴弹手枪 +gun.name.gustav=M1卡尔·古斯塔夫无后座力步枪 +gun.name.ifHorseshoe=IF-18蹄铁军工诺华克 +gun.name.ifPit=IF-18蹄铁军工红钥匙左轮手枪 +gun.name.ifScope=小皮的IF-18蹄铁军工左轮手枪 +gun.name.ifStorm=IF-18蹄铁军工银色风暴 +gun.name.ifVanity=黑杰克的IF-18蹄铁军工五发装左轮枪 +gun.name.karl=M1卡尔火箭筒 +gun.name.ks23=萨缪尔-23大口径霰弹枪 +gun.name.lacunae=CZ33地狱火神 +gun.name.lasetDet=霍普维尔激光引爆器 +gun.name.lunaAR=1986-”毘沙门天“式突击步枪 +gun.name.lunaGun=1978-”毗纽天“式标配自卫武器 (2改型) +gun.name.lunaHLR=1944-“嫦娥”式轻机枪 +gun.name.lunaShotty=1978-”关羽“式霰弹枪 (1改型) +gun.name.lunaSMG=1956-”阿难答“式冲锋枪 +gun.name.lunaSniper=1915 “后羿” 式反物质来复枪 gun.name.lunaTWR=时间扭曲步枪 -gun.name.m2=M2式勃朗宁大口径重机枪 -gun.name.m42=M-42战术核弹发射器 -gun.name.m42MIRV=M-42实验MIRV -gun.name.m60=7.62毫米口径M60机枪 +gun.name.m2=.50口径勃朗宁机枪, M2, HB +gun.name.m42=M-42战术核弹射器 +gun.name.m42MIRV=M-42 核弹弹射器"试验性子母弹头 +gun.name.m60= 7.62 mm口径机枪, M60 gun.name.maxim=马克沁机枪 -gun.name.maximDouble=双重马克沁机枪 -gun.name.mg3=MG-42通用机枪 -gun.name.mp40=MP40冲锋枪 -gun.name.nerf=某些无良记者眼中的大规模杀伤性武器 -gun.name.osipr=守望标准型脉冲步枪 -gun.name.panz=反坦克火箭来复枪 54 -gun.name.quadro=OpenQuadro便携式导弹发射器 +gun.name.maximDouble=双管马克沁机枪 +gun.name.mg3=通用MG3机枪 - .50 模式 +gun.name.mp40=Mp40冲锋枪 +gun.name.nerf=设计者未知的NERF发射器 +gun.name.osipr=看守者暗能量脉冲步枪 +gun.name.panz=坦克杀手54 +gun.name.quadro=四联装制导便携式电视制导导弹发射器 gun.name.remington870=雷明顿870 -gun.name.revolverCursed=不列颠标准问题电动手枪 -gun.name.sauer=绍尔猎枪 -gun.name.spas12=弗兰基SPAS-12式12号霰弹枪 -gun.name.spiw=H&R SPIW -gun.name.stinger=FIM-92毒刺便携式防空系统 -gun.name.stingerOneSky=The One Sky 毒刺便携式防空系统 +gun.name.revolverCursed=被诅咒的不列颠标准发行版左轮手枪 +gun.name.sauer=斯坦.索尔的萨缪尔-23霰 +gun.name.spas12= +gun.name.spiw=H&R弗莱切特镖 +gun.name.stinger=FIM-92“毒刺”便携式防空导弹 +gun.name.stingerOneSky=天马防空导弹 gun.name.supershotty=双管战斗霰弹枪 -gun.name.tau=XVL1456 陶子加农炮 -gun.name.tommy9=M1A1冲锋枪9毫米型 +gun.name.tau=XVL1456 负陶子加农炮原型 +gun.name.tommy9=9mm口径M1A1冲锋枪 gun.name.tommy=M1A1冲锋枪 gun.name.topaz=重型火焰燃烧器 gun.name.uacCarbine=UAC-41卡宾枪 @@ -1249,14 +1297,15 @@ hbmfluid.death=锇酸溶液 hbmfluid.deuterium=氘 hbmfluid.diesel=柴油 hbmfluid.diesel_crack=裂化柴油 -hbmfluid.diesel_crack_reform=高辛烷值裂化柴油 +hbmfluid.diesel_crack_reform=高辛烷值裂解柴油 hbmfluid.diesel_reform=高辛烷值柴油 hbmfluid.egg=蛋溶解液 hbmfluid.estradiol=雌二醇溶液 hbmfluid.ethanol=乙醇 -hbmfluid.enderjuice=末影果汁 +hbmfluid.enderjuice=末影液 hbmfluid.fishoil=鱼油 hbmfluid.fracksol=压裂液 +hbmfluid.fullerene=富勒烯溶液 hbmfluid.gas=天然气 hbmfluid.gas_coker=焦化气 hbmfluid.gasoline=含铅汽油基油 @@ -1312,7 +1361,7 @@ hbmfluid.potassium_chloride=氯化钾溶液 hbmfluid.puf6=六氟化钚 hbmfluid.radiosolvent=高性能溶剂 hbmfluid.reclaimed=再生油 -hbmfluid.redmud=红色泥浆 +hbmfluid.redmud=红泥浆 hbmfluid.reformate=重整油 hbmfluid.reformgas=重整气 hbmfluid.salient=绿色液体 @@ -1331,7 +1380,7 @@ hbmfluid.spentsteam=低压蒸汽 hbmfluid.steam=蒸汽 hbmfluid.sulfuric_acid=硫酸 hbmfluid.sunfloweroil=葵花籽油 -hbmfluid.superhotsteam=超热蒸汽 +hbmfluid.superhotsteam=超热浓蒸汽 hbmfluid.syngas=合成气 hbmfluid.thorium_salt=液态钍盐 hbmfluid.thorium_salt_depleted=贫化液态钍盐 @@ -1347,7 +1396,27 @@ hbmfluid.watz=毒泥浆 hbmfluid.woodoil=木油 hbmfluid.xenon=氙气 hbmfluid.xpjuice=经验汁 -hbmfluid.xylene=轻质芳烃(BTX) +hbmfluid.xylene=BTX苯-甲苯-二甲苯混合物 + +hbmfluid.Trait.Combustible=[可燃烧发电]$产生 §c%sHE §6每桶$燃料等级: §c%s +hbmfluid.Trait.Combustible.FuelGrade=低$中$高$航空级$气态 +hbmfluid.Trait.Coolable=热容量: %s TU$导热效率: %s%% +hbmfluid.Trait.Corrosive=[强腐蚀性]$[腐蚀性] +hbmfluid.Trait.Flammable=[可燃烧产热]$产生 §c%sTU §e每桶 +hbmfluid.Trait.Poison=[有毒气体] +hbmfluid.Trait.PWRModerator=[PWR中子通量倍增]$核心中子通量 %s%s%% +hbmfluid.Trait.Toxin=[毒素] +hbmfluid.Trait.VentRadiation=[放射性] +hbmfluid.TraitSimple.Amat=[反物质] +hbmfluid.TraitSimple.Delicious=[美味] +hbmfluid.TraitSimple.Gaseous=[气体] +hbmfluid.TraitSimple.Gaseous_ART=[室温下为气体] +hbmfluid.TraitSimple.LeadContainer=[需要用危险品罐容纳] +hbmfluid.TraitSimple.Leaded=[含铅燃料] +hbmfluid.TraitSimple.Liquid=[液体] +hbmfluid.TraitSimple.Plasma=[等离子体] +hbmfluid.TraitSimple.Viscous=[粘性] + hbmpseudofluid.none=空 hbmpseudofluid.heuf6=高浓缩六氟化铀 hbmpseudofluid.meuf6=中浓缩六氟化铀 @@ -1527,12 +1596,12 @@ item.ammo_4gauge_explosive.name=23mm榴弹 item.ammo_4gauge_flechette.name=4号箭霰弹 item.ammo_4gauge_flechette_phosphorus.name=4号箭霰弹[白磷] item.ammo_4gauge_kampf.name=23mm火箭弹 -item.ammo_4gauge_semtex.name=23mm采矿弹药 -item.ammo_4gauge_sleek.name=4号鹿弹[IF-R&D] -item.ammo_4gauge_slug.name=四号实心独头弹 -item.ammo_4gauge_titan.name=4号Quacker鹿弹 -item.ammo_4gauge_vampire.name=4号木签弹 -item.ammo_4gauge_void.name=4号电离粒子弹 +item.ammo_4gauge_semtex.name=23mm挖掘榴弹 +item.ammo_4gauge_sleek.name=4口径鹿弹[IF-R&D] +item.ammo_4gauge_slug.name=四口径实心独头弹 +item.ammo_4gauge_titan.name=四口径泰坦杀手弹 +item.ammo_4gauge_vampire.name=4口径反吸血鬼木桩霰弹 +item.ammo_4gauge_void.name=4口径电离子霰弹 item.ammo_50ae.name=.50AE子弹 item.ammo_50ae_ap.name=.50AE子弹[AP] item.ammo_50ae_chlorophyte.name=.50AE子弹[叶绿] @@ -1551,17 +1620,17 @@ item.ammo_50bmg_phosphorus.name=.50BMG子弹[白磷] item.ammo_50bmg_sleek.name=.50BMG子弹[IF-R&D] item.ammo_50bmg_star.name=.50BMG子弹[星辉] item.ammo_556.name=5.56mm子弹 -item.ammo_556_ap.name=5.56mm子弹[AP] -item.ammo_556_chlorophyte.name=5.56mm子弹[叶绿] -item.ammo_556_du.name=5.56mm子弹[贫铀] -item.ammo_556_flechette.name=5.56mm弗莱彻子弹 -item.ammo_556_flechette_chlorophyte.name=5.56mm弗莱彻子弹[叶绿] -item.ammo_556_flechette_du.name=5.56mm弗莱彻子弹 [贫铀穿甲] -item.ammo_556_flechette_incendiary.name=5.56mm弗莱彻子弹 [燃烧] -item.ammo_556_flechette_phosphorus.name=5.56mm弗莱彻子弹 [白磷穿甲] -item.ammo_556_flechette_sleek.name=5.56mm弗莱彻子弹[IF-R&D] +item.ammo_556_ap.name=5.56mm子弹[穿甲弹] +item.ammo_556_chlorophyte.name=5.56mm弹药[绿藻] +item.ammo_556_du.name=5.56mm子弹[贫铀涂层] +item.ammo_556_flechette.name=5.56mm镖形弹 +item.ammo_556_flechette_chlorophyte.name=5.56mm镖形弹弹药[绿藻] +item.ammo_556_flechette_du.name=5.56mm镖形弹 [贫铀涂层] +item.ammo_556_flechette_incendiary.name=5.56mm镖形弹 [燃烧] +item.ammo_556_flechette_phosphorus.name=5.56mm镖形弹 [白磷弹] +item.ammo_556_flechette_sleek.name=5.56mm镖形弹[IF-R&D] item.ammo_556_k.name=5.56mm空包弹 -item.ammo_556_phosphorus.name=5.56mm子弹[白磷] +item.ammo_556_phosphorus.name=5.56mm子弹[白磷弹] item.ammo_556_sleek.name=5.56mm子弹[IF-R&D] item.ammo_556_star.name=5.56mm子弹 [星辉] item.ammo_556_tracer.name=5.56mm 子弹[曳光弹] @@ -1601,13 +1670,13 @@ item.ammo_coilgun.name=钨制线圈枪子弹 item.ammo_coilgun_du.name=铀铁合金制线圈枪子弹 item.ammo_coilgun_rubber.name=橡胶制线圈枪子弹 item.ammo_container.name=万能弹药盒 -item.ammo_dart.name=塑料镖[凋零] -item.ammo_dart_nerf.name=NERF 飞镖 -item.ammo_dart_nuclear.name=塑料镖[定时炸药] -item.ammo_dgk.name=双联守门员近防系统200发弹药 -item.ammo_fireext.name=灭火器 水罐 -item.ammo_fireext_foam.name=灭火器 泡沫罐 -item.ammo_fireext_sand.name=灭火器 硼砂罐 +item.ammo_dart.name=塑料飞镖 [凋零] +item.ammo_dart_nerf.name=NERF飞镖 +item.ammo_dart_nuclear.name=塑料飞镖 [定时爆炸] +item.ammo_dgk.name=200发双管近防炮"霍华德"弹药箱 +item.ammo_fireext.name=灭火器水罐 +item.ammo_fireext_foam.name=灭火器泡沫罐 +item.ammo_fireext_sand.name=灭火器硼砂罐 item.ammo_folly.name=银弹 item.ammo_folly_du.name=银弹[贫铀, 不爆炸] item.ammo_folly_nuclear.name=银弹[核子] @@ -1615,7 +1684,7 @@ item.ammo_fuel.name=柴油罐 item.ammo_fuel_gas.name=毒气罐 item.ammo_fuel_napalm.name=凝固汽油罐 item.ammo_fuel_phosphorus.name=白磷罐 -item.ammo_fuel_vaporizer.name=汽化罐 +item.ammo_fuel_vaporizer.name=挥发性燃料罐 item.ammo_grenade.name=40mm榴弹 item.ammo_grenade_concussion.name=40mm榴弹[震荡] item.ammo_grenade_finned.name=40mm榴弹[尾翼稳定] @@ -1649,8 +1718,8 @@ item.ammo_nuke_barrel.name=小型核废料桶 item.ammo_nuke_high.name=迷你核弹 (高当量) item.ammo_nuke_low.name=迷你核弹 (低当量) item.ammo_nuke_pumpkin.name=南瓜炸弹 -item.ammo_nuke_safe.name=迷你核弹 (安全) -item.ammo_nuke_tots.name=迷你核弹 (幼体) +item.ammo_nuke_safe.name=迷你核弹 (安全) +item.ammo_nuke_tots.name=迷你核弹 (小型散射弹丸) item.ammo_rocket.name=84mm火箭弹 item.ammo_rocket_canister.name=84mm 火箭弹[榴霰弹] item.ammo_rocket_digamma.name=§4归 零§r @@ -1663,7 +1732,7 @@ item.ammo_rocket_phosphorus.name=84mm火箭弹[白磷] item.ammo_rocket_rpc.name=84mm火箭弹[飞行电锯] item.ammo_rocket_shrapnel.name=84mm火箭弹[破片] item.ammo_rocket_sleek.name=84mm火箭弹[IF-R&D] -item.ammo_rocket_toxic.name=84mm火箭弹[化学] +item.ammo_rocket_toxic.name=84mm火箭弹[化学毒气] item.ammo_shell.name=240mm炮弹 item.ammo_shell_apfsds_du.name=240mm 贫铀尾翼稳定脱壳穿甲弹 item.ammo_shell_apfsds_t.name=240mm 钨心尾翼稳定脱壳穿甲弹 @@ -1691,9 +1760,14 @@ item.ams_catalyst_strontium.name=锶反应催化剂 item.ams_catalyst_thorium.name=钍反应催化剂 item.ams_catalyst_tungsten.name=钨反应催化剂 item.ams_core_eyeofharmony.name=和谐之眼[AMS/DFC核心] +item.ams_core_eyeofharmony.desc=一颗恒星自行崩塌,$仅仅几纳秒就变成了黑洞,$被时间冻结了.$如果我不了解相关领域的话,$我会说这是某个人编出来的一些$关于深空魔法的故作高深的鬼话.$你还欠我十块钱. item.ams_core_sing.name=活跃奇点[AMS/DFC核心] -item.ams_core_thingy.name=Thingy[AMS/DFC核心] +item.ams_core_sing.desc=一种被修正的、未定义的时空状态$用于协助胶子间聚变和时空湮灭.$是的,这会缓慢而稳定地摧毁$宇宙本身结构,但至少你可以用它给你的$烤面包机供电$所以一切都安好. +item.ams_core_thingy.name=暮光闪闪的皇冠[AMS/DFC核心] +item.ams_core_thingy.desc=...$...$...我还拿着这个吗?$这是个小金属制品.$我不知道它是从哪里来的,也不知道它是干什么的,$也许他们是在垃圾场发现的,$然后把它当作某种古董艺术品卖掉.$事实上如果不是因为我可以把它塞进一个巨大的激光反应堆里,$我可能会把它扔回到它属于的地方$----垃圾桶. +item.ams_core_thingy_hide.desc=是的,我甚至不会质疑这个. item.ams_core_wormhole.name=微型虫洞[AMS/DFC核心] +item.ams_core_wormhole.desc=数十亿个纳米虫洞云无法主动从$另一个维度获取物质$而是将所有物质转化为$纯能量.这意味着$你正在积极地破坏另一个$维度,像吸一盒果汁$一样吸干它.$无论如何,这个维度可能很糟糕.$我敢打赌里面全是黄蜂或是别的什么垃圾,伙计,$而我讨厌这些东西. item.ams_focus_blank.name=空白稳定器焦点 item.ams_focus_booster.name=较弱的约束场和核心能量注入:$更多的热量产生,更多的能量。 item.ams_focus_booster.desc=较弱的约束场和核心能量注入:$更多的热量产生,更多的能量。 @@ -1874,7 +1948,7 @@ item.blade_meteorite.name=陨石刀 item.blade_titanium.name=钛扇片 item.blade_tungsten.name=钨强化扇片 item.blades_advanced_alloy.name=高级合金刀片 -item.blades_desh.name=Desh制刀片 +item.blades_desh.name=德什制刀片 item.blades_steel.name=钢制刀片 item.blades_titanium.name=钛制刀片 item.blowtorch.name=喷灯 @@ -1904,6 +1978,7 @@ item.bottle_empty.name=空可乐瓶 item.bottle_mercury.name=一瓶水银 item.bottle_nuka.name=核子可乐 item.bottle_opener.name=Hbm自制开瓶器 +item.bottle_opener.desc=我自己的开瓶器.$谨慎使用! item.bottle_quantum.name=量子核子可乐 item.bottle_rad.name=辐射S~核子可乐 item.bottle_sparkle.name=S~核子可乐 @@ -2013,7 +2088,7 @@ item.canned_yogurt.desc=可能坏掉了,但管它呢 item.canteen_13.name=Vault13水壶 item.canteen_fab.name=极品伏特加 item.canteen_vodka.name=伏特加 -item.cap_fritz.name=弗里茨瓶盖 +item.cap_fritz.name=Fritz弗里茨可乐瓶盖 item.cap_korl.name=Korl瓶盖 item.cap_nuka.name=核子可乐瓶盖 item.cap_quantum.name=樱桃味核子可乐瓶盖 @@ -2057,25 +2132,26 @@ item.centrifuge_element.name=离心元件 item.centrifuge_tower.name=离心塔 item.chainsaw.name=链锯 item.cheese.name=奶酪 -item.cheese_quesadilla.name=奶酪油炸玉米粉饼 -item.chemical_dye.black.name=化学染料(黑色) -item.chemical_dye.blue.name=化学染料(蓝色) -item.chemical_dye.brown.name=化学染料(棕色) -item.chemical_dye.cyan.name=化学染料(青色) -item.chemical_dye.gray.name=化学染料(灰色) -item.chemical_dye.green.name=化学染料(绿色) -item.chemical_dye.lightblue.name=化学染料(浅蓝色) -item.chemical_dye.lime.name=化学染料(石灰) -item.chemical_dye.magenta.name=化学染料(品红色) -item.chemical_dye.orange.name=化学染料(橙色) -item.chemical_dye.pink.name=化学染料(粉色) -item.chemical_dye.purple.name=化学染料(紫色) -item.chemical_dye.red.name=化学染料(红色) -item.chemical_dye.silver.name=化学染料(浅灰色) -item.chemical_dye.white.name=化学染料(白色) -item.chemical_dye.yellow.name=化学染料(黄色) -item.chemistry_set.name=实验室玻璃器皿 -item.chemistry_set_boron.name=实验室玻璃器皿(硼玻璃) +item.cheese_quesadilla.name=墨西哥奶酪饼 +item.cheese_quesadilla.desc=这就是50年份的酵母感染对你的影响. +item.chemical_dye.black.name=化学染料 (黑色) +item.chemical_dye.blue.name=化学染料 (蓝色) +item.chemical_dye.brown.name=化学染料 (棕色) +item.chemical_dye.cyan.name=化学染料 (青色) +item.chemical_dye.gray.name=化学染料 (灰色) +item.chemical_dye.green.name=化学染料 (绿色) +item.chemical_dye.lightblue.name=化学染料 (浅蓝色) +item.chemical_dye.lime.name=化学染料 (石灰色) +item.chemical_dye.magenta.name=化学染料 (洋红色) +item.chemical_dye.orange.name=化学染料 (橙色) +item.chemical_dye.pink.name=化学染料 (粉色) +item.chemical_dye.purple.name=化学染料 (紫色) +item.chemical_dye.red.name=化学染料 (红色) +item.chemical_dye.silver.name=化学染料 (浅灰色) +item.chemical_dye.white.name=化学染料 (白色) +item.chemical_dye.yellow.name=化学染料 (黄色) +item.chemistry_set.name=化学玻璃仪器 +item.chemistry_set_boron.name=化学玻璃仪器(硼玻璃) item.chemistry_template.name=化工厂模板: item.chernobylsign.name=辐射警告标志战斧 item.chlorine_pinwheel.name=氯气转轮 @@ -2300,6 +2376,7 @@ item.debris_graphite.name=热石墨块 item.debris_metal.name=断裂金属棒 item.debris_shrapnel.name=走道碎片 item.definitelyfood.name=完全不脏牌军粮 +item.definitelyfood.desc=是的,$我厌倦了不得不外出$为了找东西吃而不至于饿死,$所以这就是我天才般的解决的方案:$ $吃点可食用的泥土. item.defuser.name=高科技拆弹装置 item.defuser_gold.name=黄金剪线钳 item.demon_core_closed.name=封闭的恶魔核心 @@ -2314,13 +2391,16 @@ item.designator_arty_range.name=远程火炮遥控器 item.designator_manual.name=手动目标指示器 item.designator_range.name=远程目标指示器 item.detonator.name=起爆器 +item.detonator.desc=Shift右击来设置触发位置,$右击来触发! +item.detonator.pos.desc=未设置触发位置!$连接到: %s, %s, %s item.detonator_de.name=死亡炸弹 item.detonator_deadman.name=死亡雷管 item.detonator_laser.name=激光起爆器 item.detonator_multi.name=多发起爆器 item.deuterium_filter.name=氘过滤器 item.diamond_gavel.name=钻石槌 -item.dieselsuit_boots.name=柴油动力高跟鞋 +item.diamond_gavel.desc=那个关于钻石沙砾的笑话! 它现在终于讲得通了!!$ $§9能造成尽可能多的伤害. +item.dieselsuit_boots.name=柴油动力装甲靴 item.dieselsuit_helmet.name=柴油动力头戴式环境传感器 item.dieselsuit_legs.name=柴油动力腿部伺服系统 item.dieselsuit_plate.name=柴油动力控制器 @@ -2389,17 +2469,17 @@ item.envsuit_boots.name=M1TTY环保套装靴子 item.envsuit_helmet.name=M1TTY环保套装头盔 item.envsuit_legs.name=M1TTY环保套装护腿 item.envsuit_plate.name=M1TTY环保套装胸甲 -item.euphemium_boots.name=Ep靴子 -item.euphemium_capacitor.name=Ep电容 -item.euphemium_capacitor.desc=允许被动分散累积的正能量。 -item.euphemium_helmet.name=Ep头盔 -item.euphemium_kit.name=Ep工具箱 -item.euphemium_legs.name=Ep护腿 -item.euphemium_plate.name=Ep胸甲 -item.euphemium_stopper.name=Ep-阻滞者 -item.explosive_lenses.name=炸药透镜阵列 -item.explosive_lenses.desc=8个PBX炸药组装的阵列,带有一个薄的$铝推进器、硬铝外壳和$小型桥丝雷管。 -item.fabsols_vodka.name=Fabsol伏特加 +item.euphemium_boots.name=Ep元素靴子 +item.euphemium_capacitor.name=Ep元素电容器 +item.euphemium_capacitor.desc=允许被动分散累积的正能量. +item.euphemium_helmet.name=Ep元素头盔 +item.euphemium_kit.name=Ep元素工具箱 +item.euphemium_legs.name=Ep元素护腿 +item.euphemium_plate.name=Ep元素胸甲 +item.euphemium_stopper.name=Ep元素-阻滞者 +item.explosive_lenses.name=高能内爆炸药阵列 +item.explosive_lenses.desc=由8个PBX聚合物粘结炸药装配而成,带有一个薄型铝推进器, $硬铝外壳和小型桥丝式雷管. +item.fabsols_vodka.name=Fabsol的伏特加 item.factory_core_advanced.name=高级工厂能源组件 item.factory_core_titanium.name=工厂能源组件 item.fallout.name=一堆辐射尘 @@ -2442,8 +2522,8 @@ item.fluid_identifier_multi.info=通用流体识别码: item.fluid_identifier_multi.info2=次要类型: item.fluid_tank_empty.name=空通用流体罐 item.fluid_tank_full.name=通用流体罐: -item.fluid_tank_lead_empty.name=空危险品罐 -item.fluid_tank_lead_full.name=危险品罐: +item.fluid_tank_lead_empty.name=空的危险品流体罐 +item.fluid_tank_lead_full.name=危险品流体罐: item.fluorite.name=氟石粉 item.flywheel_beryllium.name=铍制飞轮 item.fmn.name=氟硝西泮片 @@ -2472,7 +2552,7 @@ item.fusion_shield_chlorophyte.name=叶绿金属聚变反应堆覆层 item.fusion_shield_desh.name=Desh聚变反应堆覆层 item.fusion_shield_tungsten.name=钨聚变反应堆覆层 item.fusion_shield_vaporwave.name=蒸汽波反应堆覆层 -item.gadget_core.name=钚核心 +item.gadget_core.name=大型钚核心 item.gadget_explosive.name=炸药 item.gadget_kit.name=小玩意 套件 item.gadget_wireing.name=线路 @@ -2556,7 +2636,7 @@ item.gun_avenger.name=CZ57复仇者机枪 item.gun_b92.name=§9B92能量手枪§r item.gun_b92_ammo.name=§9B92能量单元§r item.gun_b93.name=§cB93能量手枪§r -item.gun_benelli.name=伯奈利自动霰弹枪(Drum Mod) +item.gun_benelli.name=伯奈利自动霰弹枪(弹鼓) item.gun_bf.name=BEL item.gun_bf_ammo.name=Mk.V小型AMAT-炮弹 –野火型 item.gun_bio_revolver.name=Atlas @@ -2609,8 +2689,8 @@ item.gun_lever_action.name=马腿杠杆式霰弹枪[原版] item.gun_lever_action_ammo.name=12x74 鹿弹 item.gun_lever_action_dark.name=马腿杠杆式霰弹枪[黑暗] item.gun_lever_action_sonata.name=自杀霰弹 -item.gun_lever_action_sonata_2.name=§cSonata的麦克风§r -item.gun_lunatic_marksman.name=Lunatic狙击步枪 +item.gun_lever_action_sonata_2.name=§c奏鸣的麦克风§r +item.gun_lunatic_marksman.name=月都科技狙击步枪 item.gun_m2.name=勃朗宁M2HB型重机枪 item.gun_minigun.name=CZ53机枪 item.gun_mirv.name=M42核弹发射器 "试验型MIRV" @@ -2671,9 +2751,9 @@ item.gun_uboinik.name=Uboinik item.gun_uboinik_ammo.name=12x70 鹿弹 item.gun_uzi.name=Uzi冲锋枪 item.gun_uzi_ammo.name=.22LR子弹 -item.gun_uzi_saturnite.name=土星Uzi冲锋枪 -item.gun_uzi_saturnite_silencer.name=带消音器的土星Uzi冲锋枪 -item.gun_uzi_silencer.name=带消音器的Uzi冲锋枪 +item.gun_uzi_saturnite.name=土星金属Uzi +item.gun_uzi_saturnite_silencer.name=带消音器的土星金属Uzi +item.gun_uzi_silencer.name=带消音器的Uzi item.gun_xvl1456.name=XVL1456陶子加农炮原型机 item.gun_xvl1456_ammo.name=贫化铀235子弹 item.gun_zomg.name=奇点能湮灭射线“ZOMG炮” @@ -2751,8 +2831,9 @@ item.ingot_boron.name=硼锭 item.ingot_c4.name=一块C-4 item.ingot_cadmium.name=镉锭 item.ingot_calcium.name=钙锭 -item.ingot_cdalloy.name=镉钢锭 -item.ingot_chainsteel.name=重链钢 +item.ingot_cdalloy.name=镉钢合金锭 +item.ingot_cft.name=结晶富勒烯 +item.ingot_chainsteel.name=沉重链钢 item.ingot_co60.name=钴-60锭 item.ingot_cobalt.name=钴锭 item.ingot_combine_steel.name=CMB钢锭 @@ -2808,14 +2889,15 @@ item.ingot_red_copper.name=紫铜锭 item.ingot_reiium.name=雷恩锭 item.ingot_rubber.name=橡胶锭 item.ingot_saturnite.name=土星锭 -item.ingot_schrabidate.name=Sa酸铁锭 -item.ingot_schrabidium.name=Sa326锭 -item.ingot_schrabidium_fuel.name=Sa326燃料锭 -item.ingot_schraranium.name=低丰度Sa326锭 -item.ingot_schraranium.desc=在Sa326嬗变器中由铀制成 -item.ingot_semtex.name=塞姆汀塑胶炸药块 -item.ingot_smore.name=S'more 锭 -item.ingot_solinium.name=Sa327锭 +item.ingot_schrabidate.name=Sa326元素酸化铁锭 +item.ingot_schrabidium.name=Sa326异变铀金属锭 +item.ingot_schrabidium_fuel.name=Sa326异变铀金属燃料锭 +item.ingot_schraranium.name=低丰度Sa326异变铀金属锭 +item.ingot_schraranium.desc=在Sa326异变铀金属嬗变器中由铀锭嬗变而来 +item.ingot_semtex.name=塞姆汀塑胶炸药 +item.ingot_semtex.desc=塞姆汀H塑料炸药$适用于多种应用的明星炸药.$可食用 +item.ingot_smore.name=S'more饼干 +item.ingot_solinium.name=Sa327索林锭 item.ingot_sr90.name=锶-90锭 item.ingot_starmetal.name=§9星辉锭§r item.ingot_steel.name=钢锭 @@ -2859,12 +2941,17 @@ item.iv_xp.name=经验包 item.iv_xp_empty.name=空的经验包 item.jackt.name=时尚防弹夹克 item.jackt2.name=时尚防弹夹克2:东京漂移 -item.jetpack_boost.name=弹跳背包 -item.jetpack_break.name=缓降背包 +item.jetpack.desc=本身可单独穿戴! +item.jetpack_boost.name=强力喷气背包 +item.jetpack_boost.desc=拥有强劲动力的矢量喷气背包.$燃油消耗量大幅增加. +item.jetpack_break.name=建筑工喷气背包 +item.jetpack_break.desc=可以让你在空中自动悬停的常规动力喷气背包.$潜行将关闭悬停模式.$悬停模式将消耗更少的燃料并增加你的空中机动性. item.jetpack_fly.name=喷气背包 +item.jetpack_fly.desc=常规动力喷气背包,提供简单的上升动力. item.jetpack_tank.name=喷气背包备用燃料罐 item.jetpack_vector.name=矢量喷气背包 -item.journal_bj.name=被威士忌浸透的笔记本 +item.jetpack_vector.desc=超高机动性喷气背包.$更高的燃料消耗率. +item.journal_bj.name=被威士忌泡湿透的笔记本 item.journal_pip.name=生存主义者日记 item.journal_silver.name=承包商注释 item.key.name=钥匙 @@ -2885,7 +2972,9 @@ item.laser_crystal_digamma.name=Digamma迪伽马激光晶体 item.laser_crystal_dnt.desc=双聚态中子-Spark费米子超晶体 item.laser_crystal_dnt.name=Spark激光晶体 item.lead_gavel.name=铅槌 +item.lead_gavel.desc=你被判决为铅中毒. item.lemon.name="柠檬" +item.lemon.desc=嗯,不错. item.letter.name=快捷邮件 item.levitation_unit.name=重力控制器 item.lignite.name=褐煤 @@ -2898,7 +2987,9 @@ item.liquidator_plate.name=核废土清道夫套装胸甲 item.lithium.name=锂锭 item.lodestone.name=磁石 item.loop_stew.name=程序猿专属早餐 +item.loop_stew.desc=一份非常非常非常健康的早餐. item.loops.name=五彩麦圈 +item.loops.desc=bro,我能拿你一些麦圈吗? item.loot_10.name=10号导弹战利箱 item.loot_15.name=15号导弹战利箱 item.loot_misc.name=普通导弹战利箱 @@ -2925,28 +3016,44 @@ item.mechanism_rifle_2.name=先进步枪机构 item.mechanism_special.name=高科技武器机构 item.med_bag.name=医疗包 item.med_ipecac.name=吐根酊催吐剂 +item.med_ipecac.desc=苦涩的果汁会使你的胃$强行排出里面的东西. item.med_ptsd.name=PTSD治疗药物 +item.med_ptsd.desc=这根本不是PTSD治疗药物,$只是换了个瓶子装的吐根酊! item.med_schiziphrenia.name=抗精神分裂症药物 +item.med_schiziphrenia.desc=求求了,让那声音消失,就一会儿.$ $...$最好不要服用. item.medal_liquidator.name=核废土清道夫勋章 item.meltdown_tool.name=达洛夫快速熔毁装置 -item.memespoon.name=§ee花园园丁 +item.memespoon.name=§e花园园丁 +item.memespoon.desc=§810级铲子$§b持用者在火箭跳跃时可造成暴击$§c减缓 20%% 开火速度$§c没有随机的暴击 item.memory.name=item.null.name item.mese_gavel.name=Mese槌 item.mese_pickaxe.name=Mese镐 item.meteor_charm.name=陨石项链 item.meteor_remote.name=陨石召唤器 item.meteorite_sword.name=陨石剑 -item.meteorite_sword_seared.name=陨石剑(烧焦) -item.meteorite_sword_reforged.name=陨石剑(重铸) -item.meteorite_sword_hardened.name=陨石剑(硬化) -item.meteorite_sword_alloyed.name=陨石剑(合金) -item.meteorite_sword_machined.name=陨石剑(机械加工) -item.meteorite_sword_treated.name=陨石剑(精制) -item.meteorite_sword_etched.name=陨石剑(刻蚀) -item.meteorite_sword_bred.name=陨石剑(增殖) -item.meteorite_sword_irradiated.name=陨石剑(辐照) -item.meteorite_sword_fused.name=陨石剑(熔融) -item.meteorite_sword_baleful.name=陨石剑(凶恶) +item.meteorite_sword.desc=由一颗坠落之星锻造而成$比大多数地球上的刀刃锋利 +item.meteorite_sword_seared.name=陨石剑 (炽热) +item.meteorite_sword_seared.desc=火焰增强了刀刃$让它更加强大 +item.meteorite_sword_reforged.name=陨石剑 (重铸) +item.meteorite_sword_reforged.desc=这把剑已经被重铸了$以改正过去的缺陷 +item.meteorite_sword_hardened.name=陨石剑 (硬化) +item.meteorite_sword_hardened.desc=极高的压力让$刀刃进一步的硬化了 +item.meteorite_sword_alloyed.name=陨石剑 (合金化) +item.meteorite_sword_alloyed.desc==钴元素填充剑身上的裂缝$进一步加强了这把剑 +item.meteorite_sword_machined.name=陨石剑 (机械加工) +item.meteorite_sword_machined.desc=使用了先进的机械来$进一步改进刀刃 +item.meteorite_sword_treated.name=陨石剑 (治疗) +item.meteorite_sword_treated.desc=化学物质的应用使$这把剑更加强大 +item.meteorite_sword_etched.name=陨石剑 (蚀刻) +item.meteorite_sword_etched.desc=酸清洗了原材料,$打造出了这把完美的剑 +item.meteorite_sword_bred.name=陨石剑 (增殖) +item.meteorite_sword_bred.desc=巨大的热量和辐射$压缩了这把剑的材料 +item.meteorite_sword_irradiated.name=陨石剑 (辐照处理) +item.meteorite_sword_irradiated.desc=原子的力量$赋予了这把剑新的力量 +item.meteorite_sword_fused.name=陨石剑 (熔融) +item.meteorite_sword_fused.desc=这把剑已经沐浴过了$来自星星的远古力量 +item.meteorite_sword_baleful.name=陨石剑 (B.F野火烧炼处理) +item.meteorite_sword_baleful.desc=这把剑在远远超过$正常材料所能承受的温度下被锻造出来 item.mike_cooling_unit.name=氘冷却装置 item.mike_core.name=铀涂层氘罐 item.mike_deut.name=氘罐 @@ -2981,6 +3088,7 @@ item.missile_nuclear_cluster.name=热核导弹 item.missile_rain.name=炸弹雨 item.missile_schrabidium.name=Sa326导弹 item.missile_shuttle.name=万金罗宾航天飞机 +item.missile_shuttle.desc=今夜, 在bo''om gear真人秀上:$James吸含铅汽油吸嗨了,$Richard把整个项目的预算都花在了$一张损坏的PNG色图文件上,$而我忘记了打开RBMK反应堆的$水循环系统,等反应过来,$整个基地都被炸飞了. item.missile_skin_camo.name=导弹外壳:迷彩 item.missile_skin_color.desc=我再也找不到我的导弹了! item.missile_skin_desert.name=导弹外壳:沙漠迷彩 @@ -3000,6 +3108,7 @@ item.missile_skin_soviet_glory.desc=услуга перевода недосту item.missile_skin_soviet_stank.name=导弹外壳:苏维埃不朽 item.missile_skin_soviet_stank.desc=这个真的很有60年代的味道。 item.missile_soyuz.name=联盟-FG运载火箭 +item.missile_soyuz.desc=Skin:$Original$Luna Space Center$Post War item.missile_soyuz_lander.name=联盟号轨道舱 item.missile_soyuz_lander.desc=劣质着陆器! item.missile_strong.name=强化型高爆导弹 @@ -3010,8 +3119,8 @@ item.mold_base.name=毛坯铸造模具 item.mold.name=铸造模具 item.morning_glory.name=牵牛花 item.motor.name=马达 -item.motor_bismuth.name=铋马达 -item.motor_desh.name=Desh马达 +item.motor_bismuth.name=铋制马达 +item.motor_desh.name=德什制马达 item.mp_c_1.name=1级导弹制导芯片 item.mp_c_2.name=2级导弹制导芯片 item.mp_c_3.name=3级导弹制导芯片 @@ -3146,6 +3255,7 @@ item.multitool_miner.name=动力拳套[采矿激光] item.multitool_silk.name=动力拳套[精准采集] item.multitool_sky.name=动力拳套[划破天际] item.mysteryshovel.name=易碎锹 +item.mysteryshovel.desc=失去了却没有被忘记 item.n2_charge.name=大型炸药 item.neutrino_lens.name=中子透镜 item.neutron_reflector.name=中子反射板 @@ -3260,31 +3370,31 @@ item.ore.titanium=钛 item.ore.tungsten=钨 item.ore.thorium=钍 item.ore.uranium=铀 -item.ore_bedrock.name=基岩%s矿 -item.ore_byproduct.b_aluminium.name=铝晶体碎片 -item.ore_byproduct.b_bismuth.name=铋晶体碎片 -item.ore_byproduct.b_calcium.name=钙晶体碎片 -item.ore_byproduct.b_copper.name=铜晶体碎片 -item.ore_byproduct.b_iron.name=铁晶体碎片 -item.ore_byproduct.b_lead.name=铅晶体碎片 -item.ore_byproduct.b_lithium.name=锂晶体碎片 -item.ore_byproduct.b_polonium.name=钋晶体碎片 -item.ore_byproduct.b_radium.name=镭晶体碎片 -item.ore_byproduct.b_silicon.name=硅晶体碎片 -item.ore_byproduct.b_sulfur.name=硫晶体碎片 -item.ore_byproduct.b_technetium.name=锝晶体碎片 -item.ore_byproduct.b_titanium.name=钛晶体碎片 -item.ore_byproduct.b_uranium.name=铀晶体碎片 -item.ore_centrifuged.name=离心%s矿 -item.ore_cleaned.name=清洁%s矿 -item.ore_deepcleaned.name=深清洁%s矿 -item.ore_enriched.name=富集%s矿 -item.ore_nitrated.name=硝化%s矿 -item.ore_nitrocrystalline.name=亚硝基结晶%s矿 -item.ore_purified.name=净化%s矿 -item.ore_radcleaned.name=经辐射清洁的%s矿 -item.ore_seared.name=灼热的%s矿 -item.ore_separated.name=分离的%s矿 +item.ore_bedrock.name=%s 基岩矿粉 +item.ore_byproduct.b_aluminium.name=结晶铝碎片 +item.ore_byproduct.b_bismuth.name=结晶铋碎片 +item.ore_byproduct.b_calcium.name=结晶钙碎片 +item.ore_byproduct.b_copper.name=结晶铜碎片 +item.ore_byproduct.b_iron.name=结晶铁碎片 +item.ore_byproduct.b_lead.name=结晶铅碎片 +item.ore_byproduct.b_lithium.name=结晶锂碎片 +item.ore_byproduct.b_polonium.name=结晶钋碎片 +item.ore_byproduct.b_radium.name=结晶镭碎片 +item.ore_byproduct.b_silicon.name=结晶硅碎片 +item.ore_byproduct.b_sulfur.name=结晶硫碎片 +item.ore_byproduct.b_technetium.name=结晶锝碎片 +item.ore_byproduct.b_titanium.name=结晶钛碎片 +item.ore_byproduct.b_uranium.name=结晶铀碎片 +item.ore_centrifuged.name=离心 %s 基岩矿粉 +item.ore_cleaned.name=洗净 %s 基岩矿粉 +item.ore_deepcleaned.name=深度清洁 %s 基岩矿粉 +item.ore_enriched.name=富集 %s 基岩矿粉 +item.ore_nitrated.name=硝化 %s 基岩矿粉 +item.ore_nitrocrystalline.name=硝化结晶 %s 基岩矿粉 +item.ore_purified.name=纯化 %s 基岩矿粉 +item.ore_radcleaned.name=辐照清洁 %s 基岩矿粉 +item.ore_seared.name=灼烧 %s 基岩矿粉 +item.ore_separated.name=分离提纯 %s 基岩矿粉 item.overfuse.name=奇异螺丝刀 item.overfuse.desc=说啥? item.oxy_mask.name=氧气面罩 @@ -3325,6 +3435,7 @@ item.particle_strange.name=奇夸克胶囊 item.particle_tachyon.name=超光速粒子密封胶囊 item.parts_legendary.name=传奇零件 item.peas.name=豌豆 +item.peas.desc=他接受了你的贡品. item.pedestal_steel.name=钢底座 item.pellet_advanced.name=高级Watz性能增强剂 item.pellet_antimatter.name=反物质团 @@ -3411,6 +3522,7 @@ item.plan_c.desc=致死 item.plant_item.mustardwillow.name=芥子柳叶 item.plant_item.rope.name=麻绳 item.plant_item.tobacco.name=烟叶 +item.plastic_bag.name=塑料袋 item.plate_advanced_alloy.name=高级合金板 item.plate_aluminium.name=铝板 item.plate_armor_ajr.name=铁皮装甲板 @@ -3446,6 +3558,7 @@ item.plate_saturnite.name=土星板 item.plate_schrabidium.name=Sa326板 item.plate_steel.name=钢板 item.plate_titanium.name=钛板 +item.plate_welded.name=焊接的%s板 item.polaroid.name=偏光片 item.pollution_detector.name=污染探测器 item.powder_actinium.name=锕粉 @@ -3456,6 +3569,7 @@ item.powder_asbestos.name=石棉粉 item.powder_asbestos.desc=§o\"Sniffffffff- MHHHHHHMHHHHHHHHH\"§r item.powder_ash.coal.name=煤灰 item.powder_ash.fly.name=飞尘 +item.powder_ash.fullerene.name=富勒烯 item.powder_ash.misc.name=灰尘 item.powder_ash.soot.name=细烟灰 item.powder_ash.wood.name=木灰 @@ -3476,7 +3590,7 @@ item.powder_caesium.name=铯粉 item.powder_calcium.name=钙粉 item.powder_cerium.name=铈粉 item.powder_cerium_tiny.name=小撮铈粉 -item.powder_chlorocalcite.name=氯方解石 +item.powder_chlorocalcite.name=氯方解石粉 item.powder_chlorophyte.name=叶绿粉 item.powder_cloud.name=云粉末 item.powder_co60.name=钴-60粉 @@ -3498,8 +3612,8 @@ item.powder_diamond.name=钻石粉 item.powder_dineutronium.name=双聚中子态素粉 item.powder_dura_steel.name=高速钢粉 item.powder_emerald.name=绿宝石粉 -item.powder_euphemium.name=Ep粉 -item.powder_euphemium.desc=粉红色$尝起来像草莓。 +item.powder_euphemium.name=Ep元素粉 +item.powder_euphemium.desc=粉色的粉末..$尝起来像草莓. item.powder_fertilizer.name=工业肥料 item.powder_fire.name=火焰粉 item.powder_fire.desc=用于多用途炸弹:燃烧弹很有趣! @@ -3578,6 +3692,7 @@ item.primer_buckshot.name=鹿弹底火[x12] item.protection_charm.name=守护项链 item.prototype_kit.name=原型 套件 item.pudding.name=布丁 +item.pudding.desc=如果他做了呢?$如果他没有呢?$如果这个世界是布丁做的呢? item.pwr_fuel.bfb_am_mix.name=燃料级镅压水堆BFB燃料棒 item.pwr_fuel.bfb_pu241.name=钚-241压水堆BFB棒 item.pwr_fuel.hea242.name=HEA-242 高浓缩度镅-242压水堆燃料棒 @@ -3628,44 +3743,45 @@ item.radaway.name=消辐宁 item.radaway_flush.name=超级消辐宁 item.radaway_strong.name=强效消辐宁 item.radx.name=防辐射药 -item.radx.desc=在3分钟内增加0.2(37%)的抗辐射能力 -item.rag.name=布 -item.rag_damp.name=湿布 -item.rag_piss.name=沾有尿的布 -item.rbmk_fuel_balefire.name=RBMK反应堆野火燃料棒 -item.rbmk_fuel_balefire_gold.name=RBMK反应堆激活态金-198燃料棒 -item.rbmk_fuel_drx.name=§cRBMK反应堆F迪伽马粒子燃料棒§r -item.rbmk_fuel_empty.name=空 RBMK反应堆燃料棒 -item.rbmk_fuel_flashlead.name=RBMK反应堆闪光铅燃料棒 -item.rbmk_fuel_hea241.name=HEA-241 RBMK反应堆高浓缩度镅-241燃料棒 -item.rbmk_fuel_hea242.name=HEA-242 RBMK反应堆高浓缩度镅-242燃料棒 -item.rbmk_fuel_heaus.name=HEAus RBMK反应堆高浓缩度奥斯燃料棒 -item.rbmk_fuel_hen.name=HEN RBMK反应堆高浓缩度镎燃料棒 -item.rbmk_fuel_hes.name=HES RBMK反应堆高浓缩度Sa326燃料棒 -item.rbmk_fuel_hep.name=HEP-239 RBMK反应堆高浓缩度钚-239燃料棒 -item.rbmk_fuel_hep241.name=HEP-241 RBMK反应堆高浓缩度钚-241燃料棒 -item.rbmk_fuel_heu233.name=HEU-233 RBMK反应堆高浓缩度铀-233燃料棒 -item.rbmk_fuel_heu235.name=HEU-235 RBMK反应堆高浓缩度铀-235燃料棒 -item.rbmk_fuel_lea.name=LEA RBMK反应堆低浓缩度镅-242燃料棒 -item.rbmk_fuel_leaus.name=LEAus RBMK反应堆低浓缩度奥斯燃料棒 -item.rbmk_fuel_lep.name=LEP RBMK反应堆低浓缩度钚-239燃料棒 -item.rbmk_fuel_les.name=LES RBMK反应堆低浓缩度Sa326燃料棒 -item.rbmk_fuel_mea.name=MEA RBMK反应堆中浓缩度镅-242燃料棒 -item.rbmk_fuel_men.name=MEN RBMK反应堆中浓缩度镎-237燃料棒 -item.rbmk_fuel_mep.name=MEP RBMK反应堆中浓缩度钚-239燃料棒 -item.rbmk_fuel_mes.name=MES RBMK中浓缩度Sa326燃料棒 -item.rbmk_fuel_meu.name=MEU RBMK中浓缩度铀-235燃料棒 -item.rbmk_fuel_mox.name=MOX RBMK反应堆燃料棒 -item.rbmk_fuel_po210be.name=钋210-铍 RBMK反应堆中子源 -item.rbmk_fuel_pu238be.name=钚238-铍 RBMK反应堆中子源 -item.rbmk_fuel_ra226be.name=镭226-铍 RBMK反应堆中子源 -item.rbmk_fuel_thmeu.name=ThMEU RBMK反应堆中浓缩度铀-233导向钍燃料棒 -item.rbmk_fuel_ueu.name=NU RBMK反应堆未浓缩铀燃料棒 -item.rbmk_fuel_zfb_am_mix.name=ZFB 燃料级镅RBMK反应堆燃料棒 -item.rbmk_fuel_zfb_bismuth.name=ZFB 铋RBMK反应堆燃料棒 -item.rbmk_fuel_zfb_pu241.name=ZFB 钚-241RBMK反应堆燃料棒 -item.rbmk_lid.name=RBMK反应堆覆盖层 -item.rbmk_lid_glass.name=RBMK反应堆玻璃覆盖层 +item.radx.desc=增加0.2(37%%)的抗辐射能力,持续3分钟 +item.rag.name=破布 +item.rag.desc=丢进水中合成湿破布.$右击尿在破布上. +item.rag_damp.name=湿破布 +item.rag_piss.name=尿湿润的破布 +item.rbmk_fuel_balefire.name=RBMK石墨式反应堆野火燃料棒 +item.rbmk_fuel_balefire_gold.name=激活态金-198 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_drx.name=§cϜ迪伽马粒子 RBMK石墨式反应堆燃料棒§r +item.rbmk_fuel_empty.name=空 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_flashlead.name=激活态铅 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_hea241.name=HEA-241 高浓缩度镅-241 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_hea242.name=HEA-242 高浓缩度镅-242 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_heaus.name=HEAus 高浓缩度奥金 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_hen.name=HEN 高浓缩度镎-237 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_hes.name=HES 高浓缩度Sa-326 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_hep.name=HEP-239 高浓缩度钚-239 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_hep241.name=HEP-241 高浓缩度钚-241 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_heu233.name=HEU-233 高浓缩度铀-233 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_heu235.name=HEU-235 高浓缩度铀-235 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_lea.name=LEA 低浓缩度镅-242 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_leaus.name=LEAus 低浓缩度奥金 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_lep.name=LEP 低浓缩度钚-239 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_les.name=LES 低浓缩度Sa-326 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_mea.name=MEA 中浓缩度镅-242 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_men.name=MEN 中浓缩度镎-237 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_mep.name=MEP 中浓缩度钚-239 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_mes.name=MES 中浓缩度Sa-326 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_meu.name=MEU 中浓缩度铀-235 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_mox.name=MOX 钚-铀混合RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_po210be.name=钋210-铍RBMK石墨式反应堆中子源 +item.rbmk_fuel_pu238be.name=钚238-铍RBMK石墨式反应堆中子源 +item.rbmk_fuel_ra226be.name=镭226-铍RBMK石墨式反应堆中子源 +item.rbmk_fuel_thmeu.name=ThMEU 中浓缩度铀-235导向钍 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_ueu.name=NU 未浓缩铀 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_zfb_am_mix.name=ZFB 锆混合反应堆级镅快速增殖式RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_zfb_bismuth.name=ZFB 锆混合铋快速增殖式RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_zfb_pu241.name=ZFB 锆混合钚-241快速增殖式RBMK石墨式反应堆燃料棒 +item.rbmk_lid.name=RBMK石墨式反应堆覆盖层 +item.rbmk_lid_glass.name=RBMK石墨式反应堆玻璃覆盖层 item.rbmk_pellet_balefire.name=野火燃料芯块 item.rbmk_pellet_balefire_gold.name=激活态金-198燃料芯块 item.rbmk_pellet_drx.name=§cF迪伽马粒子燃料芯块§r @@ -3816,16 +3932,16 @@ item.rod_lithium.name=锂棒 item.rod_mox_fuel.name=核反应堆 MOX燃料棒 item.rod_mox_fuel_depleted.name=核反应堆 枯竭MOX燃料棒 item.rod_neptunium.name=镎燃料棒 -item.rod_of_discord.name=混沌传送杖 +item.rod_of_discord.name=混沌传送法杖 item.rod_plutonium.name=钚棒 -item.rod_plutonium_fuel.name=核反应堆 钚燃料棒 -item.rod_plutonium_fuel_depleted.name=核反应堆 枯竭钚燃料棒 -item.rod_polonium.name=钋棒 -item.rod_pu238.name=钚-238燃料棒 -item.rod_pu239.name=钚-239燃料棒 -item.rod_pu240.name=钚-240燃料棒 -item.rod_quad_balefire.name=四联野火燃料棒 -item.rod_quad_balefire_blazing.name=炽热的四联野火燃料棒 +item.rod_plutonium_fuel.name=钚燃料棒 +item.rod_plutonium_fuel_depleted.name=枯竭钚燃料棒 +item.rod_polonium.name=钋-210棒 +item.rod_pu238.name=钚238燃料棒 +item.rod_pu239.name=钚239燃料棒 +item.rod_pu240.name=钚240燃料棒 +item.rod_quad_balefire.name=四联BF燃料棒 +item.rod_quad_balefire_blazing.name=炽热的四联BF燃料棒 item.rod_quad_coolant.name=四联燃料棒[冷却液] item.rod_quad_euphemium.name=枯竭的四联Sa326燃料棒 item.rod_quad_lead.name=四联铅棒 @@ -3933,16 +4049,18 @@ item.sat_resonator.name=X晶体共振卫星 item.sat_scanner.name=绘测和资源探测卫星 item.sawblade.name=锯片 item.schnitzel_vegan.name=“素”肉排 -item.schrabidium_axe.name=Sa326斧 -item.schrabidium_boots.name=Sa326靴子 -item.schrabidium_hammer.name=Sa326锤 -item.schrabidium_helmet.name=Sa326头盔 -item.schrabidium_hoe.name=Sa326锄 -item.schrabidium_legs.name=Sa326护腿 -item.schrabidium_pickaxe.name=Sa326镐 -item.schrabidium_plate.name=Sa326胸甲 -item.schrabidium_shovel.name=Sa326锹 -item.schrabidium_sword.name=Sa326剑 + +item.schrabidium_axe.name=Sa326异变铀金属斧 +item.schrabidium_boots.name=Sa326异变铀金属靴子 +item.schrabidium_hammer.name=Sa326异变铀金属锤 +item.schrabidium_hammer.desc=尽管上面写着 "+1000000000"$的伤害", 但它实际上是 "一击必杀任何东西" +item.schrabidium_helmet.name=Sa326异变铀金属头盔 +item.schrabidium_hoe.name=Sa326异变铀金属锄 +item.schrabidium_legs.name=Sa326异变铀金属护腿 +item.schrabidium_pickaxe.name=Sa326异变铀金属镐 +item.schrabidium_plate.name=Sa326异变铀金属胸甲 +item.schrabidium_shovel.name=Sa326异变铀金属锹 +item.schrabidium_sword.name=Sa326异变铀金属剑 item.scrap.name=废料 item.scrap_nuclear.name=放射性废料 item.scrap_oil.name=油性废料 @@ -3964,10 +4082,14 @@ item.servo_set.name=伺服装置 item.servo_set_desh.name=Desh伺服装置 item.shackles.name=枷锁 item.shimmer_axe.name=闪耀斧 +item.shimmer_axe.desc=木材! +item.shimmer_axe.desc.hide=shim的工具箱得到了 扩-展 item.shimmer_axe_head.name=重型斧头 item.shimmer_handle.name=强化聚合物手柄 item.shimmer_head.name=重型锤头 item.shimmer_sledge.name=闪耀锤 +item.shimmer_sledge.desc=可以破坏一切东西,甚至包括传送门方块. +item.shimmer_sledge.desc.hide=shimmer别$放下那把锤子$你会伤到别人的$shimmer别$shimmer求你了 item.singularity.name=奇点 item.singularity_counter_resonant.name=可控反振谐奇点 item.singularity_micro.name=微型奇点 @@ -4055,7 +4177,7 @@ item.steel_shovel.name=钢锹 item.steel_sword.name=钢剑 item.stick_c4.name=C-4炸药棒 item.stick_dynamite.name=炸药棒 -item.stick_dynamite_fishing.name=捕鱼炸药棒 +item.stick_dynamite_fishing.name=炸鱼用炸药棒 item.stick_semtex.name=塞姆汀塑胶炸药棒 item.stick_tnt.name=TNT棒 item.stopsign.name=停车标志战斧 @@ -4089,6 +4211,7 @@ item.tank_waste_7.name=泥浆容器 item.tank_waste_8.name=泥浆容器 item.telepad.name=传送部件 item.tem_flakes.name=Tem薄片 +item.tem_flakes.desc=能回复一颗心的廉价Tem薄片!!!$能回复一颗心的Tem薄片$能回复生命值的Tem薄片(昂贵) item.template_folder.name=机器模板文件夹 item.template_folder.desc=机器模板:纸张+染料$流体识别码:铁板+染料$锻模:空白锻模 $警报声轨:绝缘体+钢板 item.test_nuke_igniter.name=点火器 @@ -4119,10 +4242,10 @@ item.titanium_shovel.name=钛锹 item.titanium_sword.name=钛剑 item.toothpicks.name=牙签 item.train.cargo_tram.name=平板载货电车 -item.trenchmaster_boots.name=Trenchmaster的靴子 -item.trenchmaster_helmet.name=Trenchmaster的头盔 -item.trenchmaster_legs.name=Trenchmaster的护腿 -item.trenchmaster_plate.name=Trenchmaster的胸甲 +item.trenchmaster_boots.name=战术大师的靴子 +item.trenchmaster_helmet.name=战术大师的头盔 +item.trenchmaster_legs.name=战术大师的护腿 +item.trenchmaster_plate.name=战术大师的胸甲 item.trinitite.name=玻璃石 item.tritium_deuterium_cake.name=氚氘饼 item.tritium_deuterium_cake.desc=不是真正的蛋糕,而是很棒的$聚变燃料! @@ -4142,7 +4265,9 @@ item.turret_rocket_ammo.name=火箭炮塔弹药 item.turret_spitfire_ammo.name=防空炮弹 item.turret_tau_ammo.name=陶子炮塔铀弹药 item.twinkie.name=小蛋糕 +item.twinkie.desc=600年前就过期了! item.ullapool_caber.name=阿勒浦长木杆 +item.ullapool_caber.desc=苏格兰式高效面部切除术.$一个清醒的人会扔掉它... item.undefined.name=形态未定义物质 item.upgrade_5g.name=5G辐射发射器升级 item.upgrade_afterburn_1.name=一级粉色机器升级 @@ -4183,7 +4308,14 @@ item.v1.name=V1 item.volcanic_pickaxe.name=熔岩镐 item.wand_d.name=调试魔杖 item.wand_k.name=建筑魔杖 +item.wand_k.block=保存的方块: %s +item.wand_k.desc=创造模式专有物品$"毁灭往往带来创造"$(右击以选择点,$shift右击选择放置方块种类!) +item.wand_k.null=未选择位置! +item.wand_k.pos=坐标: %s, %s, %s item.wand_s.name=结构魔杖 +item.wand_s.desc=创造模式专有物品$"每个人都能使用的快速建造多方块结构的工具!"$(shift右击以切换到下一结构,$右击以生成结构!) +item.structure_custommachine.name=自定义机器结构输出杖 +item.structure_custommachine.desc=点击自定义机器结构定位锚以确认$自定义机器核心块的位置.$将Position1和Position2之间所有方块$以及其metadata数据一起输出到hbmConfig下的"CMstructureOutput.txt". item.warhead_buster_large.name=大型掩体破坏弹头 item.warhead_buster_medium.name=中型掩体破坏弹头 item.warhead_buster_small.name=小型掩体破坏弹头 @@ -4265,22 +4397,27 @@ item.wire_schrabidium.name=Sa326线 item.wire_tungsten.name=钨线 item.wiring_red_copper.name=电缆卷 item.wood_gavel.name=木槌 +item.wood_gavel.desc=砰砰! item.wrench.name=管道扳手 -item.wrench_archineer.name=Archineer扳手 +item.wrench.desc=机械师理查德 +item.wrench_archineer.name=Archineer的扳手 item.wrench_flipped.name=刺刀扳手 -item.xanax.name=NAXA 抗迪伽马药物 -item.xanax.desc=移除500mDRX迪伽马辐射 +item.wrench_flipped.desc=扳手2:扳手 +item.xanax.name=NAXA 抗Ϝ迪伽马辐射药物 +item.xanax.desc=移除500mDRX的Ϝ迪伽马辐射 item.zirconium_legs.name=锆质护腿 -itemGroup.tabBlocks=HBM 矿石和方块 -itemGroup.tabConsumable=HBM 食物和装备 -itemGroup.tabControl=HBM 机器项目和燃料 -itemGroup.tabMachine=HBM 机器 -itemGroup.tabMissile=HBM 导弹和卫星 -itemGroup.tabNuke=HBM 炸弹 -itemGroup.tabParts=HBM 资源和零件 -itemGroup.tabTemplate=HBM 模板 -itemGroup.tabTest=HBM的核科技mod测试项[S166、Bismarck、nukesteve联合汉化] -itemGroup.tabWeapon=HBM 武器和炮塔 + +itemGroup.tabBlocks=核技术矿石和方块 +itemGroup.tabConsumable=核技术食物和装备 +itemGroup.tabControl=核技术机器项目和燃料 +itemGroup.tabMachine=核技术机器 +itemGroup.tabMissile=核技术导弹和卫星 +itemGroup.tabNuke=核技术炸弹 +itemGroup.tabParts=核技术资源和零件 +itemGroup.tabTemplate=核技术模板 +itemGroup.tabTest=HBM的核科技mod测试项[S166, Bismarck, nukesteve联合汉化] +itemGroup.tabWeapon=核技术武器和炮塔 + potion.hbm_bang=! ! ! potion.hbm_death=重度突变 potion.hbm_lead=铅中毒 @@ -4384,8 +4521,8 @@ tile.basalt_fluorite.name=富含氟石的玄武岩 tile.basalt_gem.name=富含宝石的玄武岩 tile.basalt_polished.name=抛光玄武岩 tile.basalt_smooth.name=平滑玄武岩 -tile.basalt_sulfur.name=富含硫的玄武岩 -tile.basalt_tiles.name=玄武岩砖 +tile.basalt_sulfur.name=富硫玄武岩 +tile.basalt_tiles.name=玄武岩瓦 tile.blast_door.name=防爆闸门 tile.block_actinium.name=锕块 tile.block_advanced_alloy.name=高级合金块 @@ -4396,16 +4533,16 @@ tile.block_bakelite.name=电木块 tile.block_beryllium.name=铍块 tile.block_bismuth.name=铋块 tile.block_boron.name=硼块 -tile.block_c4.name=C-4块 +tile.block_c4.name=C-4炸药块 tile.block_cadmium.name=镉块 -tile.block_cap_fritz.name=弗里茨瓶盖方块 -tile.block_cap_korl.name=Korl瓶盖方块 -tile.block_cap_nuka.name=核子可乐瓶盖方块 -tile.block_cap_quantum.name=樱桃味核子可乐瓶盖方块 -tile.block_cap_rad.name=辐射 S~核子可乐瓶盖方块 -tile.block_cap_sparkle.name=核子可乐瓶盖方块 -tile.block_cap_star.name=夕阳沙士星星瓶盖方块 -tile.block_cap_sunset.name=夕阳沙士瓶盖方块 +tile.block_cap_fritz.name=Fritz弗里茨可乐瓶盖压缩块 +tile.block_cap_korl.name=Korl库尔勒瓶盖压缩块 +tile.block_cap_nuka.name=核子可乐瓶盖压缩块 +tile.block_cap_quantum.name=樱桃味量子核子可乐瓶盖压缩块 +tile.block_cap_rad.name=辐射S~闪闪可乐瓶盖压缩块 +tile.block_cap_sparkle.name=S~闪闪可乐瓶盖压缩块 +tile.block_cap_star.name=夕阳沙士星星瓶盖压缩块 +tile.block_cap_sunset.name=夕阳沙士瓶盖压缩块 tile.block_cdalloy.name=镉钢块 tile.block_cobalt.name=钴块 tile.block_coke.coal.name=煤焦炭块 @@ -4568,9 +4705,9 @@ tile.charger.name=充电站 tile.cheater_virus.name=冻结Ep tile.cheater_virus_seed.name=不稳定Ep Schrabide块 tile.chimney_brick.name=烟囱 -tile.chimney_brick.desc=使用排气管连接污染机器$减少75%的污染排放 +tile.chimney_brick.desc=使用排气管连接污染机器$减少75%%的污染排放 tile.chimney_industrial.name=工业烟囱 -tile.chimney_industrial.desc=使用排气管连接污染机器$减少90%的污染排放 +tile.chimney_industrial.desc=使用排气管连接污染机器$减少90%%的污染排放 tile.chlorine_gas.name=氯气 tile.cluster_aluminium.name=铝矿簇 tile.cluster_copper.name=铜矿簇 @@ -4579,6 +4716,7 @@ tile.cluster_depth_titanium.name=深层钛矿簇 tile.cluster_depth_tungsten.name=深层钨矿簇 tile.cluster_iron.name=铁矿簇 tile.cluster_titanium.name=钛矿簇 +tile.custom_machine_anchor.name=自定义机器结构定位锚 tile.cm_block.alloy.name=高级合金机器外壳 tile.cm_block.desh.name=Desh机器外壳 tile.cm_block.steel.name=钢制机器外壳 @@ -4603,6 +4741,7 @@ tile.cm_tank.alloy.name=高级合金储罐 tile.cm_tank.desh.name=Desh储罐 tile.cm_tank.steel.name=钢制储罐 tile.cm_tank.tcalloy.name=锝钢储罐 +tile.cm_paperPress.name=压纸机 tile.cmb_brick.name=CMB钢瓦块 tile.cmb_brick_reinforced.name=加固CMB钢砖块 tile.compact_launcher.name=紧凑型发射台 @@ -4630,22 +4769,22 @@ tile.concrete_colored.red.name=红色混凝土 tile.concrete_colored.silver.name=淡灰色混凝土 tile.concrete_colored.white.name=白色混凝土 tile.concrete_colored.yellow.name=黄色混凝土 -tile.concrete_colored_ext.hazard.name=建筑商指定混凝土-危险地带 -tile.concrete_colored_ext.indigo.name=建筑商指定混凝土-深靛蓝 -tile.concrete_colored_ext.machine.name=建筑商指定混凝土-工业风 -tile.concrete_colored_ext.machine_stripe.name=建筑商指定混凝土-工业条纹 -tile.concrete_colored_ext.pink.name=建筑商指定混凝土-猛男粉 -tile.concrete_colored_ext.purple.name=建筑商指定混凝土-神秘紫 +tile.concrete_colored_ext.hazard.name=建筑玩家首选混凝土 - 警示条纹 +tile.concrete_colored_ext.indigo.name=建筑玩家首选混凝土 - 深靛色 +tile.concrete_colored_ext.machine.name=建筑玩家首选混凝土 - 工业风 +tile.concrete_colored_ext.machine_stripe.name=建筑玩家首选混凝土 - 工业条纹 +tile.concrete_colored_ext.pink.name=建筑玩家首选混凝土 - 猛男粉 +tile.concrete_colored_ext.purple.name=建筑玩家首选混凝土 - 神秘紫 tile.concrete_pillar.name=钢筋混凝土柱 -tile.concrete_slab.concrete.name=混凝土瓷砖板 -tile.concrete_slab.concrete_asbestos.name=石棉混凝土板 -tile.concrete_slab.concrete_smooth.name=混凝土板 -tile.concrete_slab.ducrete.name=高密度贫铀混凝土瓷砖板 -tile.concrete_slab.ducrete_smooth.name=高密度贫铀混凝土板 +tile.concrete_slab.concrete.name=混凝土瓷砖台阶 +tile.concrete_slab.concrete_asbestos.name=石棉夹层混凝土台阶 +tile.concrete_slab.concrete_smooth.name=混凝土台阶 +tile.concrete_slab.ducrete.name=贫铀高密度混凝土瓦台阶 +tile.concrete_slab.ducrete_smooth.name=贫铀高密度混凝土砖台阶 tile.concrete_smooth.name=混凝土 tile.concrete_smooth_stairs.name=混凝土楼梯 -tile.concrete_stairs.name=混凝土瓷砖楼梯 -tile.concrete_super.name=über混凝土 +tile.concrete_stairs.name=混凝土瓦楼梯 +tile.concrete_super.name=Über混凝土 tile.concrete_super_broken.name=发霉的碎片 tile.conveyor.name=输送带 tile.conveyor.desc=移动掉在上面的物品$可以用螺丝刀顺时针旋转$用螺丝刀按住Shift键单击以转弯 @@ -4695,7 +4834,7 @@ tile.deco_aluminium.name=铝装饰块 tile.deco_asbestos.name=石棉瓦 tile.deco_beryllium.name=铍装饰块 tile.deco_computer.ibm_300pl.name=IBM个人电脑300PL -tile.deco_emitter.name=Deco发光体 +tile.deco_emitter.name=装饰性激光发射器 tile.deco_lead.name=铅装饰块 tile.deco_rbmk.name=RBMK装饰块 tile.deco_rbmk_smooth.name=平滑RBMK装饰块 @@ -4755,10 +4894,10 @@ tile.drone_waypoint_request.name=物流无人机航路点 tile.door_bunker.name=仓门 tile.door_metal.name=金属门 tile.door_office.name=办公室门 -tile.ducrete.name=高密度贫铀混凝土瓷砖 -tile.ducrete_stairs.name=高密度贫铀混凝土瓷砖楼梯 -tile.ducrete_smooth.name=高密度贫铀混凝土 -tile.ducrete_smooth_stairs.name=高密度贫铀混凝土楼梯 +tile.ducrete.name=贫铀高密度混凝土瓦 +tile.ducrete_stairs.name=贫铀高密度混凝土瓦楼梯 +tile.ducrete_smooth.name=贫铀高密度混凝土 +tile.ducrete_smooth_stairs.name=贫铀高密度混凝土台阶 tile.dummy_block.name=虚拟方块 tile.dummy_port.name=虚拟方块[电力接口] tile.dungeon_chain.name=金属链 @@ -4779,7 +4918,7 @@ tile.fence_metal.name=铁丝网围栏 tile.field_disturber.name=高能场干扰机 tile.filing_cabinet.green.name=蒙尘的文件柜 tile.filing_cabinet.steel.name=钢制文件柜 -tile.fire_digamma.name=挥之不去的迪伽马之火 +tile.fire_digamma.name=挥之不去的迪伽玛之火 tile.fire_door.name=防火门 tile.fireworks.name=烟花箱 tile.fireworks.charges=已充能: %s @@ -4799,13 +4938,13 @@ tile.fluid_duct_solid.name=带涂层的通用流体导管 tile.fluid_switch.name=红石流体阀 tile.fluid_valve.name=流体阀 tile.foam_layer.name=泡沫层 -tile.foundry_basin.name=铸造盘 -tile.foundry_channel.name=铸造浇道 -tile.foundry_tank.name=铸造池 -tile.foundry_mold.name=浅铸造池 -tile.foundry_outlet.name=浇筑出口 -tile.foundry_slagtap.name=炉渣出口 -tile.fraction_spacer.name=分馏塔分隔器 +tile.foundry_basin.name=浇筑盆 +tile.foundry_channel.name=浇筑道 +tile.foundry_tank.name=储液池 +tile.foundry_mold.name=浅浇筑盆 +tile.foundry_outlet.name=浇筑口 +tile.foundry_slagtap.name=铸造出渣口 +tile.fraction_spacer.name=分馏塔分离器 tile.frozen_dirt.name=冰冻土 tile.frozen_grass.name=冰冻草 tile.frozen_log.name=冰冻原木 @@ -4856,6 +4995,7 @@ tile.gneiss_brick.name=页岩砖 tile.gneiss_chiseled.name=錾制页岩砖 tile.gneiss_tile.name=页岩瓷砖 tile.gravel_diamond.name=钻石砂砾 +tile.gravel_diamond.desc=这里有个笑话,$但我不太清楚它是什么.$ $上传日期, 2020-07-04:$我们否认一个笑话的任何含义,$因为它是如此的令人不愉快,$以至于让人们觉得眼睛刺痛.$$上传日期, 2020-17-04:$事实证明,“粉碎钻石”从来就不是一个真正的东西,$它让原本可能是个笑话$的东西变得毫无意义.$ tile.gravel_obsidian.name=碎黑曜石 tile.hadron_access.name=粒子加速器接入终端 tile.hadron_analysis.name=粒子加速器分析室壁 @@ -4872,32 +5012,32 @@ tile.hadron_coil_starmetal.name=密集星辉线圈 tile.hadron_cooler.name=粒子加速器冷却装置 tile.hadron_cooler.desc=冷却功率:10$过冷阈值:10$冷却加成:+10%%$过冷惩罚:-25%% tile.hadron_cooler_mk2.name=粒子加速器冷却装置-回文特制 -tile.hadron_cooler_mk2.desc=冷却功率:5$效率功能:2-(冷却-15)2/225$最高惩罚:-90%% -tile.hadron_core.name=粒子加速器核心组件 -tile.hadron_diode.name=肖基特二极管 -tile.hadron_plating.name=粒子加速器镀层 -tile.hadron_plating_black.name=粒子加速器镀层 (黑) -tile.hadron_plating_blue.name=粒子加速器镀层 (蓝) -tile.hadron_plating_glass.name=粒子加速器镀层 (窗口) -tile.hadron_plating_striped.name=粒子加速器镀层(低温危险) -tile.hadron_plating_voltz.name=粒子加速器镀层 (VOLTZ) -tile.hadron_plating_yellow.name=粒子加速器镀层(Yello染料) -tile.hadron_power.name=粒子加速器电源接口 -tile.hadron_power_10m.name=粒子加速器电源接口(10MHE) -tile.hadron_power_100m.name=粒子加速器电源接口(100MHE) -tile.hadron_power_1g.name=粒子加速器电源接口(1GHE) -tile.hadron_power_10g.name=粒子加速器电源接口(10GHE) +tile.hadron_cooler_mk2.desc=冷却功率:5$效率函数:2-(冷却功率-15)²/225$最高惩罚:-90%% +tile.hadron_core.name=粒子加速器核心部件 +tile.hadron_diode.name=肖特基粒子二极管 +tile.hadron_plating.name=粒子加速器电镀层 +tile.hadron_plating_black.name=粒子加速器电镀层 (黑色) +tile.hadron_plating_blue.name=粒子加速器电镀层 (蓝色) +tile.hadron_plating_glass.name=粒子加速器电镀层 (窗口) +tile.hadron_plating_striped.name=粒子加速器电镀层 (炫酷的警示条纹) +tile.hadron_plating_voltz.name=粒子加速器电镀层 (VOLTZ) +tile.hadron_plating_yellow.name=粒子加速器电镀层 (黄色) +tile.hadron_power.name=粒子加速器电力接口 (1MHE) +tile.hadron_power_10m.name=粒子加速器电力接口 (10MHE) +tile.hadron_power_100m.name=粒子加速器电力接口 (100MHE) +tile.hadron_power_1g.name=粒子加速器电力接口 (1GHE) +tile.hadron_power_10g.name=粒子加速器电力接口 (10GHE) tile.hazmat.name=防辐射布块 tile.heater_electric.name=电加热器 -tile.heater_electric.desc=利用电能产生热量$以85%的效率接受来自底部的热量$可使用螺丝刀进行配置。 +tile.heater_electric.desc=使用电能来产生热量.$可以85%%的效率接受来自底部的热量.$可用螺丝刀配置效率. tile.heater_firebox.name=燃烧室 tile.heater_firebox.desc=燃烧固体燃料以产生热量。 tile.heater_heatex.name=换热加热器 tile.heater_heatex.desc=从热流体中产生热量。 tile.heater_oilburner.name=流体燃烧器 tile.heater_oilburner.desc=燃烧可燃液体产生热量。 -tile.heater_oven.name=加热炉 -tile.heater_oven.desc=燃烧固体燃料以产生热量$以50%的效率接受来自底部的热量。 +tile.heater_oven.name=加热 +tile.heater_oven.desc=燃烧固体燃料以产生热量.$可以85%%的效率接受来自底部的热量. tile.hev_battery.name=盔甲电池 tile.impact_dirt.name=烧焦的泥土 tile.iter.name=聚变反应堆 @@ -4925,6 +5065,7 @@ tile.lox_barrel.name=液氧桶 tile.machine_amgen.name=环境辐射发电机 tile.machine_arc_furnace_off.name=电弧炉 tile.machine_arc_furnace_on.name=电弧炉 +tile.machine_arc_welder.name=弧焊机 tile.machine_armor_table.name=装甲改装台 tile.machine_ashpit.name=储灰槽 tile.machine_ashpit.desc=收集来自燃烧室和加热炉的灰烬 @@ -4984,7 +5125,8 @@ tile.machine_epress.name=电动锻压机 tile.machine_excavator.name=大型采矿钻机 tile.machine_fel.name=FEL自由电子激光器 tile.machine_fensu.name=FEnSU飞轮储能系统 -tile.machine_flare.name=高架火炬 +tile.machine_flare.name=废气燃烧塔 +tile.machine_flare.desc=可燃烧液体和排出气体$燃烧速率 §c10mB/t$排放速率 §c50mB/t$ $§e燃料效率:$§e-易燃气体: §c50%%$§e-易燃液体: §c10%% tile.machine_fluidtank.name=储罐 tile.machine_forcefield.name=力场发生器 tile.machine_fraction_tower.name=分馏塔 @@ -5050,7 +5192,7 @@ tile.machine_steam_engine.desc=效率:85% tile.machine_stirling.name=斯特林发电机 tile.machine_stirling.desc=它将热量转化为能量。这需要外部热源$传热率:T*0.1 TU/T$最大进气量:300 TU/T$效率:50% tile.machine_stirling_creative.name=创造斯特林发动机 -tile.machine_stirling_creative.desc=将热量转化为能量。需要外部热源$传热率:T*0.1 TU/T$无限吸热/T$效率:100% +tile.machine_stirling_creative.desc=将热量转化为能量。需要外部热源$传热率:T*0.1 TU/T$无限吸热/T$效率:100%% tile.machine_stirling_steel.name=重型斯特林发电机 tile.machine_stirling_steel.desc=它将热量转化为能量。这需要外部热源$使用更重的齿轮来支持更高的温度$传热率:T*0.1 TU/T$最大进气量:1500 TU/T$效率:50% tile.machine_storage_drum.name=核废料处理桶 @@ -5074,6 +5216,7 @@ tile.machine_zirnox.name=锆诺克斯核反应堆 tile.marker_structure.name=多方块结构信标 tile.mass_storage.name=大规模存储单元 tile.meteor_battery.name=星辉静电发生器 +tile.meteor_battery.desc=为特斯拉线圈提供无限电能 tile.meteor_brick.name=陨石砖 tile.meteor_brick_chiseled.name=錾制陨石砖 tile.meteor_brick_cracked.name=裂纹陨石砖 @@ -5093,14 +5236,18 @@ tile.ntm_dirt.name=泥土 tile.nuke_boy.name=小男孩 tile.nuke_custom.name=自定义核弹 tile.nuke_fleija.name=F.L.E.I.J.A. +tile.nuke_fleija.desc=适用于:$F.L.E.I.J.A. tile.nuke_fstbmb.name=BF炸弹 tile.nuke_gadget.name=小玩意 tile.nuke_man.name=胖子 tile.nuke_mike.name=常青藤迈克 -tile.nuke_n2.name=N2炸弹 +tile.nuke_n2.name=N²炸弹 +tile.nuke_n2.desc=适用于:$N²炸弹 tile.nuke_n45.name=N45水雷 tile.nuke_prototype.name=原型 +tile.nuke_prototype.desc=本不必如此的.$ $你这个怪物. tile.nuke_solinium.name=蔚蓝洗礼 +tile.nuke_solinium.desc=适用于:$蔚蓝洗礼 tile.nuke_tsar.name=沙皇炸弹 tile.oil_duct.name=输油管 tile.oil_duct_solid.name=粗输油管 @@ -5159,6 +5306,7 @@ tile.ore_nether_uranium.name=下界铀矿石 tile.ore_nether_uranium_scorched.name=烧焦的下界铀矿石 tile.ore_niter.name=硝石矿石 tile.ore_oil.name=油岩 +tile.ore_oil.desc=你不该把它挖出来的..$来吧,去拿个井架,你这个笨蛋. tile.ore_oil_empty.name=空油岩 tile.ore_oil_sand.name=沥青砂 tile.ore_random.name=%s 矿 @@ -5177,7 +5325,7 @@ tile.ore_uranium_scorched.name=烧焦的铀矿石 tile.ore_verticium.name=韦德赛矿石 tile.ore_volcano.name=地热裂缝 tile.ore_weidanium.name=魏丹矿石 -tile.part_emitter.name=Deco粒子发射器 +tile.part_emitter.name=装饰性粒子生成器 tile.pink_barrel.name=煤油桶 tile.pink_log.name=粉色原木 tile.pink_planks.name=粉色木板 @@ -5229,13 +5377,13 @@ tile.pwr_port.name=PWR接入端口 tile.pwr_port.desc=允许物品和液体交换$位置:组件 tile.pwr_reflector.name=PWR中子反射器 tile.pwr_reflector.desc=将中子通量反射回燃料棒$位置:网格,用于增加反应速率$可作为外壳材料 -tile.radio_telex.name=Telex Machine -tile.radio_torch_counter.name=红石无线项目计数器 -tile.radio_torch_counter.desc=平面或比较器兼容块上的标牌$根据匹配项目的数量发出信号 -tile.radio_torch_receiver.name=无线红石信号接收器 -tile.radio_torch_receiver.desc=可在平坦表面或与比较器兼容的方块上放置 -tile.radio_torch_sender.name=无线红石信号发射器 -tile.radio_torch_sender.desc=可在平坦表面或比较器兼容的方块上放置$读取红石信号或比较器输入 +tile.radio_telex.name=电报机 +tile.radio_torch_counter.name=红石无线物品计数器 +tile.radio_torch_counter.desc=平面或比较器兼容块上的标牌$根据匹配物品的数量发出信号 +tile.radio_torch_receiver.name=红石无线信号接收器 +tile.radio_torch_receiver.desc=可在平坦表面或与比较器兼容的块上放置 +tile.radio_torch_sender.name=红石无线信号发送器 +tile.radio_torch_sender.desc=可在平坦表面或与比较器兼容的块上放置$读取红石信号或比较器输入 tile.radiobox.name=无线怪物清除箱 tile.radiorec.name=坏掉的收音机 tile.rail_booster.name=高速动力轨道 @@ -5272,6 +5420,7 @@ tile.reactor_element.name=反应堆室 tile.reactor_hatch.name=反应堆端口 tile.reactor_inserter.name=反应堆燃料插入器 tile.red_barrel.name=炸药桶 +tile.red_barrel.desc=静态流体桶 tile.red_cable.name=紫铜电线 tile.red_cable_classic.name=紫铜电缆(经典型) tile.red_cable_gauge.name=功率计 @@ -5279,13 +5428,15 @@ tile.red_cable_gauge.desc=显示每刻在网络中流动的电力$的电缆$由 tile.red_cable_paintable.name=可涂漆紫铜线 tile.red_connector.name=电力连接器 tile.red_pylon.name=电线杆 +tile.red_pylon.desc=连接类型: §e单通道$连接范围: §e25m tile.red_pylon_large.name=大型输电塔 +tile.red_pylon_large.desc=连接类型: §e四通道$连接范围: §e100m$这个输电塔需要配合变电器使用! tile.red_wire_coated.name=密封紫铜电缆 tile.reinforced_brick.name=强化石头 tile.reinforced_brick_stairs.name=钢筋石楼梯 tile.reinforced_ducrete.name=加固高密度贫铀混凝土 tile.reinforced_glass.name=强化玻璃 -tile.reinforced_glass_pane.name=强化玻璃窗 +tile.reinforced_glass_pane.name=强化玻璃板 tile.reinforced_lamp_off.name=强化红石灯 tile.reinforced_lamp_on.name=强化红石灯 tile.reinforced_light.name=强化萤石 @@ -5349,7 +5500,7 @@ tile.stone_depth.name=深层岩石 tile.stone_depth_nether.name=下界深层岩石 tile.stone_gneiss.name=石墨页岩 tile.stone_porous.name=多孔石 -tile.stone_resource.asbestos.name=温石棉 +tile.stone_resource.asbestos.name=蛇纹石石棉 tile.stone_resource.bauxite.name=铝土矿 tile.stone_resource.hematite.name=赤铁矿 tile.stone_resource.limestone.name=石灰石 @@ -5362,8 +5513,9 @@ tile.struct_launcher_core_large.name=发射台核心组件 tile.struct_plasma_core.name=等离子加热器核心组件 tile.struct_scaffold.name=发射台骨架 tile.struct_soyuz_core.name=联盟号发射器核心组件 -tile.struct_watz_core.name=Watz发电厂核心组件 -tile.substation.name=变电站 +tile.struct_watz_core.name=Watz瓦茨电厂核心组件 +tile.substation.name=变电器 +tile.substation.desc=连接类型: §e四通道$连接范围: §e20m tile.sulfuric_acid_block.name=硫酸 tile.taint.name=腐质 tile.taint_barrel.name=IMP残渣桶 @@ -5388,10 +5540,10 @@ tile.turret_flamer.name=喷火炮塔 tile.turret_friendly.name=轻机枪炮塔“友好先生” tile.turret_fritz.name=重型火焰喷射器炮塔“弗里茨” tile.turret_heavy.name=重型机枪炮塔 -tile.turret_himars.name=火箭炮塔“亨利” -tile.turret_howard.name=双联守门员近防系统“霍华德” -tile.turret_howard_damaged.name=CIWS双联守门员近防系统 "玛士撒拉" -tile.turret_jeremy.name=重炮炮塔“杰里米” +tile.turret_himars.name=远程火箭弹炮塔"亨利" +tile.turret_howard.name=双管近防炮"霍华德" +tile.turret_howard_damaged.name=双管近防炮 "玛土撒拉" +tile.turret_jeremy.name=重炮炮台"杰米里" tile.turret_light.name=轻型机枪炮塔 tile.turret_maxwell.name=高能微波炮塔 "麦克斯韦" tile.turret_rocket.name=火箭炮塔 @@ -5406,8 +5558,8 @@ tile.vent_chlorine.name=氯气排气口 tile.vent_chlorine_seal.name=氯气容器 tile.vent_cloud.name=云排气口 tile.vent_pink_cloud.name=粉色云排气口 -tile.vinyl_tile.large.name=大型乙烯基瓷砖 -tile.vinyl_tile.small.name=小型乙烯基瓷砖 +tile.vinyl_tile.large.name=大块乙烯基瓷砖 +tile.vinyl_tile.small.name=小块乙烯基瓷砖 tile.vitrified_barrel.name=玻璃化核废料桶 tile.volcanic_lava_block.name=火山熔岩 tile.volcano_core.name=火山核心 @@ -5444,6 +5596,11 @@ trait.hot=自燃/高温 trait.hydro=与水反应 trait.radioactive=放射性 trait.radResistance=辐射抗性: %s + +trait.platefuel=[研究反应堆堆板式燃料]$§3 %s$§3 %s事件的收益率 +trait.pwr_fuel=每通量热量: §r%s TU$反应函数: §r%s$燃料类型: §r%s + +trait.rbmk.BurnFunc=安全 / 被动$中等 / 对数方程$安全 / 欧拉方程$危险 / 负二次方程$安全 / S型饱和函数$中等 / 平方根函数$危险 / 线性函数$危险 / 二次函数$实验性 / 正弦斜率函数 trait.rbmk.coreTemp=核心温度: %s trait.rbmk.depletion=燃料消耗: %s trait.rbmk.diffusion=扩散度: %s @@ -5478,8 +5635,23 @@ trait.rbmx.splitsWith=接受: %s trait.rbmx.xenon=铅元素堆积程度: %s trait.rbmx.xenonBurn=铅元素寂灭函数: %s trait.rbmx.xenonGen=铅元素产生函数: %s + +trait.rbmk_pellet=可回收芯块$全新的$少量衰变$中度衰变$高度衰变$完全衰变$大量氙元素堆积 +trait.watz_pellet=消耗: %s%% +trait.watz_pellet.passive=基本裂变率: $自燃! +trait.watz_pellet.heatEmission=每中子通量产生热量: +trait.watz_pellet.burnFunc=反应函数: $燃料类型: +trait.watz_pellet.heatDiv=热倍增系数: +trait.watz_pellet.absorbFunc=中子通量捕获: + trait.tile.cluster=只有在被玩家破坏时才会掉落 trait.tile.depth=只能被爆炸破坏 +trait.tile.barrel.capacity=容量: %smB +trait.tile.barrel.hot=可以储存热的液体$不能储存热的液体 +trait.tile.barrel.corrosive=可以储存强腐蚀性液体$可以储存腐蚀性液体$不能长期地储存强腐蚀性液体$不能长期地储存腐蚀性液体$不能储存腐蚀性液体 +trait.tile.barrel.antimatter=可以储存反物质类物质$不能储存反物质类物质 +trait.tile.barrel.leak=泄露 + tool.ability.centrifuge=自动离心 tool.ability.crystallizer=自动结晶 tool.ability.explosion=爆破 @@ -5491,16 +5663,27 @@ tool.ability.recursion=连锁挖矿 tool.ability.shredder=自动粉碎 tool.ability.silktouch=精准采集 tool.ability.smelter=自动熔炼 -turret.animals=被动目标:%s -turret.arty.artillery=§e火炮模式$最低射程: 250m$最大射程: 3,000m -turret.arty.cannon=§e炮塔模式$最低射程: 32m$射程: 250m -turret.arty.manual=§e手动模式$射程: 3,000m -turret.machines=以机械为目标: %s -turret.mobs=以怪物为目标: %s -turret.none=无 -turret.off=关 -turret.on=开 -turret.players=以玩家为目标:%s + +tooltip.armormods=附件: +tooltip.armormodsshow=按住 < %s §8§o> 来显示该盔甲上所安装的配件的效果§r +tooltip.block=按住 < %s §8§o>以显示更多信息§r +tooltip.customnuke=增加 %s 给自定义核弹 %s 阶段 +tooltip.customnukemultiplier=增加倍数 %s 给自定义核弹 %s 阶段 +tooltip.oredict=矿物辞典: +tooltip.oredict.null=无矿物辞典数据! +tooltip.show=按住 < %s §8§o> 来显示所能提供的防护的信息§r + +turret.animals=攻击中立生物: %s +turret.arty.artillery=§e重炮模式$宽度: 250m$范围: 3,000m +turret.arty.cannon=§e加农炮模式$宽度: 32m$范围: 250m +turret.arty.manual=§e手动模式$范围: 3,000m +turret.machines=攻击机器: %s +turret.mobs=攻击敌对生物: %s +turret.none=无白名单 +turret.off=OFF +turret.on=ON +turret.players=攻击玩家: %s + wavelengths.name.ir=红外线 wavelengths.name.visible=可见光 wavelengths.name.uv=紫外线 @@ -5526,7 +5709,41 @@ weapon.elecGun.glass_cannon.ir=红外线 weapon.elecGun.glass_cannon.visible=可见光 weapon.elecGun.glass_cannon.uv=紫外线 weapon.elecGun.glass_cannon.xray=X射线 -weapon.elecGun.glass_cannon.gamma=伽马射线 -hadron.error=错误! -container.reactor=增殖反应堆 -death.attack.subAtomic=%1$s 的原子被 %2$s 摧毁 \ No newline at end of file +weapon.elecGun.glass_cannon.gamma=γ射线 + +#book_lore.insanity_1.author=Ferguson博士 +#book_lore.insanity_1.name=撕裂的书页 +#book_lore.insanity_1.page.1=8月6日$ $几个月,不,几年来, 为了与投资者角力和运营 北半球最大的能源市场而 讨价还价,终于有了回报. +#book_lore.insanity_1.page.2=虽然我们不能完全确定 我们到底发现了什么—— 考虑到我们在粒子上进行了 千兆伏特的碰撞,而这些 粒子的记录仍然很差—— 但结果再令人兴奋不过了. +#book_lore.insanity_1.page.3=我们还没有为我们发现的 这东西找到一个名字, 也不确定我们是否在寻找 一种新的粒子, 一个通向另一个维度的虫洞, 或者撒旦的肛门, 但我相信我们的公关人员 可以想出一些办法. +#book_lore.insanity_2.author=Ferguson博士 +#book_lore.insanity_2.name=撕裂的书页 +#book_lore.insanity_2.page.1=8月8日$ $过去几天,我们一直将 “The Thing” (是的,我们现在就是 这么称呼这玩意的) 保持在磁隔离状态。 光谱测试最终搞坏了 我们的光谱仪,但我们 设法获得了一些有用的数据. +#book_lore.insanity_2.page.2=首先,这东西像圣诞树 一样发光,你能想到的 每种波长的辐射光子都被 强大的红外日冕所包围。 逻辑上的结论是, 用肉眼看它很可能会杀死你。 +#book_lore.insanity_2.page.3=这就引出了一个问题: 这么小的粒子怎么能辐射 出如此巨大的能量? 你隐藏了些什么,小家伙? +#book_lore.insanity_3.author=Ferguson博士 +#book_lore.insanity_3.name=撕裂的书页 +#book_lore.insanity_3.page.1=8月22日 $ $ 我已经好几天没睡好了。 医生说他什么毛病都找不到。 现在我正在服用各种药物, 但头痛只会加重。 实验室工作人员怀疑这 可能是两周前的事件造成 的污染. +#book_lore.insanity_3.page.2=医生说不太可能, 这症状和急性放射病不同。 如果这种情况持续下去, 我可能需要休息一段时间。 实验人员推测, 如果约束磁场下降, 整个综合体建筑群就会变成 蘑菇云. +#book_lore.insanity_3.page.3=我不知道行政部门如何 保持冷静,但我没有被 支付足够的薪水来浪费时间. +#book_lore.insanity_4.author=Ferguson博士 +#book_lore.insanity_4.name=撕裂的书页 +#book_lore.insanity_4.page.1=8月28日 $ $ 他们拒绝了我的请假请求, 过去几天我一直在努力。 头痛越来越严重了。 我也不是唯一有这种感 觉的人。一些实验室的人员 也有类似的情况. +#book_lore.insanity_4.page.2=The Thing终于离开了综合体 -真tm棒。 昨天有几套西装运过来, 天知道在哪里。 一名实验室人员扎卡里说, 他们可能正在把密封装置 埋在沙漠里, +#book_lore.insanity_4.page.3=慢慢地试图让The Thing 远离文明来“虎头蛇尾 地结束”。要我说我们应 把它射向太空。 不用说,我们的投资者 暂时削减了所有资金。 我应该开始找另一份工作了. +#book_lore.insanity_5.author=Ferguson博士 +#book_lore.insanity_5.name=撕裂的书页 +#book_lore.insanity_5.page.1=9月11日 $ $ 我正在反复做一场噩梦。 我在一块空地上走来走去, 到处都是这些人, 穿着橡胶服和长着畸形的脸。 总是一样的噩梦, +#book_lore.insanity_5.page.2=和我最近交谈过的一个实验 室的同事也做了同样的梦。 与此同时,我的工作已经 相当枯燥了,加速器已经 关闭,所有正在进行的 项目都停止了,我们的 预算也在慢慢减少. +#book_lore.insanity_5.page.3=有某种东西在告诉我 The Thing还在某处。 我能感觉到. +#book_lore.insanity_6.author=Ferguson博士 +#book_lore.insanity_6.name=撕裂的书页 +#book_lore.insanity_6.page.1=10月3日 $ $ 一半的工作人员已经死亡, 其余大部分在ICU。 我的病情在过去几周里 没有改变,无论是好是坏. +#book_lore.insanity_6.page.2=然而,现实开始变得越来越 不真实。 有时我会在夜晚仰望天空, 幻想着我们在几个星期前 发现的东西. +#book_lore.insanity_6.page.3=我们的分光计吐出的同样 灿烂的深红光泽。 我的医生说这是由这起事件 引起的精神错乱和压力, 也许他是对的, 但药物根本不起作用. +#book_lore.insanity_7.author=Ferguson博士 +#book_lore.insanity_7.name=撕裂的书页 +#book_lore.insanity_7.page.1=12月12日 $ $ 我已经失业了,但老实说, 我对此有些感激。 我以前的工作场所已经 付之一炬了 ——他们这么说的. +#book_lore.insanity_7.page.2=南部几英里处的地震观测站 连续几天记录到持续不断的 地震,而其他任何人都不会 注意到沙漠深处. +#book_lore.insanity_7.page.3=我的结论是,这个地方被 诅咒了,让每个人都感到恶心, 然后像埃德加·爱伦·坡 (Edgar Allan Poe)的故事 一样坠入地狱。 谢天谢地. + From 0d37bfe8fc6b1bf9ad92f58ea1b13551ed7b569d Mon Sep 17 00:00:00 2001 From: Bob Date: Sat, 11 Nov 2023 14:07:19 +0100 Subject: [PATCH 369/432] texture sheet --- .../models/machines/exposure_chamber.png | Bin 0 -> 2278 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/models/machines/exposure_chamber.png diff --git a/src/main/resources/assets/hbm/textures/models/machines/exposure_chamber.png b/src/main/resources/assets/hbm/textures/models/machines/exposure_chamber.png new file mode 100644 index 0000000000000000000000000000000000000000..ac26fc0796689144dd48af558deddc8cb19c1bea GIT binary patch literal 2278 zcmbtWYg7{076#NLD>aqO(lRGaNpUJ6%n7pOI*M8t`AR1%)5*fPB7{?2#Kl|w%6 zYxFkg0RVtC9zVMI0sugyrauB+p{Z9-AsL!Ro3!5p57v|m;ILl-0C0han=3vxUoNgq z6+Sl8{ZKTl`?|LQafufrw<0hc{N4?RBKa+}fAK<*uAT^3Zy6CH$?xr$hD{sFa!&Z~ z@Xzwgu!TjS787YerLR@QY2~ra5y*TSTuNF9YX~k#7fNF)2?q(6bNK9(czO^n z0$0mf#WNp>d0?IM&J?Zn?@2diKc9<0p@R9=P{S;m)&nErzJPL-r0H_EGJji?-l06j z(cBnfbsRj(a_UqNZ+ugW7V^PY-{{Te%z7VQguM9mO1i9hW6lb-2wI zk!1^fgW4iqvsXH*;km*rK}}&d7!$%lsa6w-!`k9IDb&IaONlL`Ft4+hPIwfIXY`fM zihZeeywfsik1Z5)xF;n1Nl||U40^;crX5`WXsQhdaiwI3x_I$%)~=L;xAuDTad%5s z6ohW<494#d@O-hd{?mGl!=*-!|62HaZQ-ddjP*_1St{m>^JuX_>Wj#l_sN4~Fmhc{ zR-y6P0c%M>hHsM3E${YV{JM&a)*9czwVAj+-+Y%s+)ze*%*eYq7AQ*3H z|7->5_)4UueF^7QsG!QJ(vdRJR9b$Oz;5JNpULg3Cj^Pb0yV`c29;9#}qb84jqM zd}QR4WU@USdwW~dd-xDm5&!niyr5O~oo?i}fThG8Dn`8Xmj<$Qt^6^GOz)R?cQ zW`)G|Y2NO0-E%kD!>!IxD+z~g`PK-AyLgMil|*+}5QKNcQPQZVKMcW_`g2OL$RS5u zi}la6IB2&=GFb0j^(wN~SV=)s=WHd~W-Qw|BXYACh7kFB&SnZ9H4S8@I733(+ETH7 zO@XGFV@^DUV~H~HC+|di*LCS+oLxUR?Sn!natKV_vW4ga$avVqF?pwuN>}Y>adrfn zLatj@6_9a2u9uEGB)B+wCD0wBfgxVeOD?6C=)rJ}$+Qw%5c5p*@{E>EL`y5w$+(M$mh4V;@Mb9N{B-@+evD4TPKfBiI|KJt z^>or{A~C)fwFgGJO>mU#O=ES*bZ1+IC}&e*S%# zs#zzMC1zDKZ+WD|DRTNIgQJwwxjiL81$)pc;qlcF4Y*1}a!nor@;kW9T#`>5k6Psx zryO5El`hD!()oweyuJm)L-*_`R3Aa%zT2=!o!pEKTC3VM=X*v9O+GN(|K=C_k##Mw zNQWaL)D}u^Pj3LKfYVXK96WrIBmcDOLO!XTWYd!UY`*Qva=9yjT^pNvd zyg1>_jO_SZ`66?Dn0mg2P^JoP-1`Ncu6$EIkTca8H0Nx8o4&mz z^5mZ8%I``uP-r}9LAgUj@R1?Pqn=24@AdRUuUc(yXzkT+rc|XXB-@(vF(sukewf<+^C8_^MQvQD{7YsP@5$kU-3Hq9k O3%~>8 Date: Sun, 12 Nov 2023 21:11:38 +0100 Subject: [PATCH 370/432] radar rewrite, first attempt --- .../java/api/hbm/entity/IRadarDetectable.java | 3 +- .../api/hbm/entity/IRadarDetectableNT.java | 22 + src/main/java/api/hbm/entity/RadarEntry.java | 35 + .../machine/TileEntityMachineRadarNT.java | 105 + .../hbm/models/machines/exposure_chamber.obj | 4253 +++++++++++++++++ .../hbm/textures/gui/machine/gui_radar_nt.png | Bin 0 -> 21545 bytes .../models/machines/exposure_chamber.png | Bin 2278 -> 6849 bytes 7 files changed, 4417 insertions(+), 1 deletion(-) create mode 100644 src/main/java/api/hbm/entity/IRadarDetectableNT.java create mode 100644 src/main/java/api/hbm/entity/RadarEntry.java create mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java create mode 100644 src/main/resources/assets/hbm/models/machines/exposure_chamber.obj create mode 100644 src/main/resources/assets/hbm/textures/gui/machine/gui_radar_nt.png diff --git a/src/main/java/api/hbm/entity/IRadarDetectable.java b/src/main/java/api/hbm/entity/IRadarDetectable.java index f89fc99d4..0c3700b99 100644 --- a/src/main/java/api/hbm/entity/IRadarDetectable.java +++ b/src/main/java/api/hbm/entity/IRadarDetectable.java @@ -1,5 +1,6 @@ package api.hbm.entity; +@Deprecated //Use IRadarDetectableNT instead, old interface will still work though public interface IRadarDetectable { public static enum RadarTargetType { @@ -15,7 +16,7 @@ public interface IRadarDetectable { MISSILE_20("Size 20 Custom Missile"), //size 20 custom missiles MISSILE_AB("Anti-Ballistic Missile"), //anti ballistic missile PLAYER("Player"), //airborne players - ARTILLERY("Artillery Shell"); //airborne players + ARTILLERY("Artillery Shell"); //artillery shells public String name; diff --git a/src/main/java/api/hbm/entity/IRadarDetectableNT.java b/src/main/java/api/hbm/entity/IRadarDetectableNT.java new file mode 100644 index 000000000..83c4bf503 --- /dev/null +++ b/src/main/java/api/hbm/entity/IRadarDetectableNT.java @@ -0,0 +1,22 @@ +package api.hbm.entity; + +public interface IRadarDetectableNT { + + public static final int TIER0 = 0; + public static final int TIER1 = 1; + public static final int TIER2 = 2; + public static final int TIER3 = 3; + public static final int TIER4 = 4; + public static final int TIER10 = 5; + public static final int TIER10_15 = 6; + public static final int TIER15 = 7; + public static final int TIER15_20 = 8; + public static final int TIER20 = 9; + public static final int TIER_AB = 10; + public static final int PLAYER = 11; + public static final int ARTY = 12; + + public String getUnlocalizedName(); + public int getBlipLevel(); + public boolean canBeSeenBy(Object radar); +} diff --git a/src/main/java/api/hbm/entity/RadarEntry.java b/src/main/java/api/hbm/entity/RadarEntry.java new file mode 100644 index 000000000..540ec925b --- /dev/null +++ b/src/main/java/api/hbm/entity/RadarEntry.java @@ -0,0 +1,35 @@ +package api.hbm.entity; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; + +public class RadarEntry { + + public String unlocalizedName; + public int blipLevel; + public int posX; + public int posY; + public int posZ; + public int dim; + + public RadarEntry(String name, int level, int x, int y, int z, int dim) { + this.unlocalizedName = name; + this.blipLevel = level; + this.posX = x; + this.posY = y; + this.posZ = z; + this.dim = dim; + } + + public RadarEntry(IRadarDetectableNT detectable, Entity entity) { + this(detectable.getUnlocalizedName(), detectable.getBlipLevel(), (int) Math.floor(entity.posX), (int) Math.floor(entity.posY), (int) Math.floor(entity.posZ), entity.dimension); + } + + public RadarEntry(IRadarDetectable detectable, Entity entity) { + this(detectable.getTargetType().name, detectable.getTargetType().ordinal(), (int) Math.floor(entity.posX), (int) Math.floor(entity.posY), (int) Math.floor(entity.posZ), entity.dimension); + } + + public RadarEntry(EntityPlayer player) { + this(player.getDisplayName(), IRadarDetectableNT.PLAYER, (int) Math.floor(player.posX), (int) Math.floor(player.posY), (int) Math.floor(player.posZ), player.dimension); + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java new file mode 100644 index 000000000..db8f40435 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java @@ -0,0 +1,105 @@ +package com.hbm.tileentity.machine; + +import java.util.ArrayList; +import java.util.List; +import java.util.function.Function; + +import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.Tuple.Pair; + +import api.hbm.entity.IRadarDetectable; +import api.hbm.entity.IRadarDetectableNT; +import api.hbm.entity.RadarEntry; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.world.WorldServer; + +/** + * Now with SmЯt™ lag-free entity detection! + * @author hbm + */ +public class TileEntityMachineRadarNT extends TileEntityMachineBase { + + public boolean scanMissiles = true; + public boolean scanPlayers = true; + public boolean smartMode = true; + public boolean redMode = true; + + public boolean jammed = false; + + public TileEntityMachineRadarNT() { + super(1); + } + + @Override + public String getName() { + return ""; + } + + @Override + public void updateEntity() { + + } + + //List of lambdas that are supplied a Pair with the entity and radar in question to generate a RadarEntry + //The converters coming first have the highest priority + public static List, RadarEntry>> converters = new ArrayList(); + public static List classes = new ArrayList(); + public static List matchingEntities = new ArrayList(); + + /** + * Iterates over every entity in the world and add them to the matchingEntities list if the class is in the detectable list + * From this compiled list, radars can easily grab the required entities since we can assume that the total amount of detectable entities is comparatively low + */ + public static void updateSystem() { + matchingEntities.clear(); + + for(WorldServer world : Minecraft.getMinecraft().getIntegratedServer().worldServers) { + for(Object entity : world.loadedEntityList) { + for(Class clazz : classes) { + if(clazz.isAssignableFrom(entity.getClass())) { + matchingEntities.add((Entity) entity); + break; + } + } + } + } + } + + /** Registers a class that if an entity inherits that class, it is picked up by the system */ + public static void registerEntityClasses() { + classes.add(IRadarDetectableNT.class); + classes.add(IRadarDetectable.class); + classes.add(EntityPlayer.class); + } + + /** Registers converters. Converters are used to go over the list of detected entities and turn them into a RadarEntry using the entity instance and the radar's instance. */ + public static void registerConverters() { + //IRadarDetectableNT + converters.add(x -> { + Entity e = x.getKey(); + if(e instanceof IRadarDetectableNT) { + IRadarDetectableNT detectable = (IRadarDetectableNT) e; + if(detectable.canBeSeenBy(x.getValue())) return new RadarEntry(detectable, e); + } + return null; + }); + //IRadarDetectable, Legacy + converters.add(x -> { + Entity e = x.getKey(); + if(e instanceof IRadarDetectable) { + return new RadarEntry((IRadarDetectable) e, e); + } + return null; + }); + //Players + converters.add(x -> { + Entity e = x.getKey(); + if(e instanceof EntityPlayer) { + return new RadarEntry((EntityPlayer) e); + } + return null; + }); + } +} diff --git a/src/main/resources/assets/hbm/models/machines/exposure_chamber.obj b/src/main/resources/assets/hbm/models/machines/exposure_chamber.obj new file mode 100644 index 000000000..ac6d44aa7 --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/exposure_chamber.obj @@ -0,0 +1,4253 @@ +# Blender v2.79 (sub 0) OBJ File: 'exposure_chamber.blend' +# www.blender.org +o Magnets +v 1.961571 0.500000 0.292636 +v 1.961571 0.500000 -0.292635 +v 1.225981 0.500000 0.243863 +v 1.225982 0.500000 -0.243863 +v 1.961571 1.250000 0.292636 +v 1.225981 1.250000 0.243863 +v 1.961571 1.250000 -0.292635 +v 1.225982 1.250000 -0.243863 +v 1.225982 4.500000 -0.243863 +v 1.961571 4.500000 -0.292635 +v 1.225981 4.500000 0.243863 +v 1.961571 4.500000 0.292636 +v 1.225982 3.750000 -0.243863 +v 1.225981 3.750000 0.243863 +v 1.961571 3.750000 -0.292635 +v 1.961571 3.750000 0.292636 +v -1.961571 0.500000 -0.292636 +v -1.961571 0.500000 0.292636 +v -1.225981 0.500000 -0.243863 +v -1.225983 0.500000 0.243863 +v -1.961571 1.250000 -0.292636 +v -1.225981 1.250000 -0.243863 +v -1.961571 1.250000 0.292636 +v -1.225983 1.250000 0.243863 +v -1.225983 4.500000 0.243863 +v -1.961571 4.500000 0.292636 +v -1.225981 4.500000 -0.243863 +v -1.961571 4.500000 -0.292636 +v -1.225983 3.750000 0.243863 +v -1.225981 3.750000 -0.243863 +v -1.961571 3.750000 0.292636 +v -1.961571 3.750000 -0.292636 +v 0.292635 0.500000 -1.961571 +v -0.292636 0.500000 -1.961571 +v 0.243863 0.500000 -1.225981 +v -0.243863 0.500000 -1.225982 +v 0.292635 1.250000 -1.961571 +v 0.243863 1.250000 -1.225981 +v -0.292636 1.250000 -1.961571 +v -0.243863 1.250000 -1.225982 +v -0.243863 4.500000 -1.225982 +v -0.292636 4.500000 -1.961571 +v 0.243863 4.500000 -1.225981 +v 0.292635 4.500000 -1.961571 +v -0.243863 3.750000 -1.225982 +v 0.243863 3.750000 -1.225981 +v -0.292636 3.750000 -1.961571 +v 0.292635 3.750000 -1.961571 +v -0.292636 0.500000 1.961571 +v 0.292635 0.500000 1.961571 +v -0.243863 0.500000 1.225981 +v 0.243863 0.500000 1.225982 +v -0.292636 1.250000 1.961571 +v -0.243863 1.250000 1.225981 +v 0.292635 1.250000 1.961571 +v 0.243863 1.250000 1.225982 +v 0.243863 4.500000 1.225982 +v 0.292635 4.500000 1.961571 +v -0.243863 4.500000 1.225981 +v -0.292636 4.500000 1.961571 +v 0.243863 3.750000 1.225982 +v -0.243863 3.750000 1.225981 +v 0.292635 3.750000 1.961571 +v -0.292636 3.750000 1.961571 +v 1.593965 0.500000 -1.180115 +v 1.180116 0.500000 -1.593965 +v 1.039336 0.500000 -0.694462 +v 0.694463 0.500000 -1.039337 +v 1.593965 1.250000 -1.180115 +v 1.039336 1.250000 -0.694462 +v 1.180116 1.250000 -1.593965 +v 0.694463 1.250000 -1.039337 +v 0.694463 4.500000 -1.039337 +v 1.180116 4.500000 -1.593965 +v 1.039336 4.500000 -0.694462 +v 1.593965 4.500000 -1.180115 +v 0.694463 3.750000 -1.039337 +v 1.039336 3.750000 -0.694462 +v 1.180116 3.750000 -1.593965 +v 1.593965 3.750000 -1.180115 +v -1.593966 0.500000 1.180115 +v -1.180116 0.500000 1.593965 +v -1.039337 0.500000 0.694462 +v -0.694464 0.500000 1.039337 +v -1.593966 1.250000 1.180115 +v -1.039337 1.250000 0.694462 +v -1.180116 1.250000 1.593965 +v -0.694464 1.250000 1.039337 +v -0.694464 4.500000 1.039337 +v -1.180116 4.500000 1.593965 +v -1.039337 4.500000 0.694462 +v -1.593966 4.500000 1.180115 +v -0.694464 3.750000 1.039337 +v -1.039337 3.750000 0.694462 +v -1.180116 3.750000 1.593965 +v -1.593966 3.750000 1.180115 +v -1.180116 0.500000 -1.593965 +v -1.593966 0.500000 -1.180115 +v -0.694463 0.500000 -1.039337 +v -1.039337 0.500000 -0.694463 +v -1.180116 1.250000 -1.593965 +v -0.694463 1.250000 -1.039337 +v -1.593966 1.250000 -1.180115 +v -1.039337 1.250000 -0.694463 +v -1.039337 4.500000 -0.694463 +v -1.593966 4.500000 -1.180115 +v -0.694463 4.500000 -1.039337 +v -1.180116 4.500000 -1.593965 +v -1.039337 3.750000 -0.694463 +v -0.694463 3.750000 -1.039337 +v -1.593966 3.750000 -1.180115 +v -1.180116 3.750000 -1.593965 +v 1.180115 0.500000 1.593965 +v 1.593965 0.500000 1.180115 +v 0.694462 0.500000 1.039337 +v 1.039337 0.500000 0.694463 +v 1.180115 1.250000 1.593965 +v 0.694462 1.250000 1.039337 +v 1.593965 1.250000 1.180115 +v 1.039337 1.250000 0.694463 +v 1.039337 4.500000 0.694463 +v 1.593965 4.500000 1.180115 +v 0.694462 4.500000 1.039337 +v 1.180115 4.500000 1.593965 +v 1.039337 3.750000 0.694463 +v 0.694462 3.750000 1.039337 +v 1.593965 3.750000 1.180115 +v 1.180115 3.750000 1.593965 +v 1.021021 0.500000 -1.700268 +v 0.480301 0.500000 -1.924242 +v 0.694463 0.500000 -1.039336 +v 0.243863 0.500000 -1.225982 +v 1.021021 1.250000 -1.700268 +v 0.694463 1.250000 -1.039336 +v 0.480301 1.250000 -1.924242 +v 0.243863 1.250000 -1.225982 +v 0.243863 4.500000 -1.225982 +v 0.480301 4.500000 -1.924242 +v 0.694463 4.500000 -1.039336 +v 1.021021 4.500000 -1.700268 +v 0.243863 3.750000 -1.225982 +v 0.694463 3.750000 -1.039336 +v 0.480301 3.750000 -1.924242 +v 1.021021 3.750000 -1.700268 +v -1.021021 0.500000 1.700269 +v -0.480301 0.500000 1.924242 +v -0.694463 0.500000 1.039336 +v -0.243863 0.500000 1.225982 +v -1.021021 1.250000 1.700269 +v -0.694463 1.250000 1.039336 +v -0.480301 1.250000 1.924242 +v -0.243863 1.250000 1.225982 +v -0.243863 4.500000 1.225982 +v -0.480301 4.500000 1.924242 +v -0.694463 4.500000 1.039336 +v -1.021021 4.500000 1.700269 +v -0.243863 3.750000 1.225982 +v -0.694463 3.750000 1.039336 +v -0.480301 3.750000 1.924242 +v -1.021021 3.750000 1.700269 +v -1.700269 0.500000 -1.021021 +v -1.924242 0.500000 -0.480300 +v -1.039337 0.500000 -0.694463 +v -1.225983 0.500000 -0.243863 +v -1.700269 1.250000 -1.021021 +v -1.039337 1.250000 -0.694463 +v -1.924242 1.250000 -0.480300 +v -1.225983 1.250000 -0.243863 +v -1.225983 4.500000 -0.243863 +v -1.924242 4.500000 -0.480300 +v -1.039337 4.500000 -0.694463 +v -1.700269 4.500000 -1.021021 +v -1.225983 3.750000 -0.243863 +v -1.039337 3.750000 -0.694463 +v -1.924242 3.750000 -0.480300 +v -1.700269 3.750000 -1.021021 +v 1.700268 0.500000 1.021021 +v 1.924242 0.500000 0.480300 +v 1.039336 0.500000 0.694463 +v 1.225982 0.500000 0.243863 +v 1.700268 1.250000 1.021021 +v 1.039336 1.250000 0.694463 +v 1.924242 1.250000 0.480300 +v 1.225982 1.250000 0.243863 +v 1.225982 4.500000 0.243863 +v 1.924242 4.500000 0.480300 +v 1.039336 4.500000 0.694463 +v 1.700268 4.500000 1.021021 +v 1.225982 3.750000 0.243863 +v 1.039336 3.750000 0.694463 +v 1.924242 3.750000 0.480300 +v 1.700268 3.750000 1.021021 +v -0.480301 0.500000 -1.924242 +v -1.021021 0.500000 -1.700269 +v -0.243863 0.500000 -1.225981 +v -0.694464 0.500000 -1.039337 +v -0.480301 1.250000 -1.924242 +v -0.243863 1.250000 -1.225981 +v -1.021021 1.250000 -1.700269 +v -0.694464 1.250000 -1.039337 +v -0.694464 4.500000 -1.039337 +v -1.021021 4.500000 -1.700269 +v -0.243863 4.500000 -1.225981 +v -0.480301 4.500000 -1.924242 +v -0.694464 3.750000 -1.039337 +v -0.243863 3.750000 -1.225981 +v -1.021021 3.750000 -1.700269 +v -0.480301 3.750000 -1.924242 +v 0.480300 0.500000 1.924242 +v 1.021021 0.500000 1.700268 +v 0.243862 0.500000 1.225981 +v 0.694463 0.500000 1.039337 +v 0.480300 1.250000 1.924242 +v 0.243862 1.250000 1.225981 +v 1.021021 1.250000 1.700268 +v 0.694463 1.250000 1.039337 +v 0.694463 4.500000 1.039337 +v 1.021021 4.500000 1.700268 +v 0.243862 4.500000 1.225981 +v 0.480300 4.500000 1.924242 +v 0.694463 3.750000 1.039337 +v 0.243862 3.750000 1.225981 +v 1.021021 3.750000 1.700268 +v 0.480300 3.750000 1.924242 +v -1.924242 0.500000 0.480301 +v -1.700269 0.500000 1.021021 +v -1.225981 0.500000 0.243863 +v -1.039337 0.500000 0.694463 +v -1.924242 1.250000 0.480301 +v -1.225981 1.250000 0.243863 +v -1.700269 1.250000 1.021021 +v -1.039337 1.250000 0.694463 +v -1.039337 4.500000 0.694463 +v -1.700269 4.500000 1.021021 +v -1.225981 4.500000 0.243863 +v -1.924242 4.500000 0.480301 +v -1.039337 3.750000 0.694463 +v -1.225981 3.750000 0.243863 +v -1.700269 3.750000 1.021021 +v -1.924242 3.750000 0.480301 +v 1.924242 0.500000 -0.480301 +v 1.700268 0.500000 -1.021021 +v 1.225981 0.500000 -0.243863 +v 1.039337 0.500000 -0.694463 +v 1.924242 1.250000 -0.480301 +v 1.225981 1.250000 -0.243863 +v 1.700268 1.250000 -1.021021 +v 1.039337 1.250000 -0.694463 +v 1.039337 4.500000 -0.694463 +v 1.700268 4.500000 -1.021021 +v 1.225981 4.500000 -0.243863 +v 1.924242 4.500000 -0.480301 +v 1.039337 3.750000 -0.694463 +v 1.225981 3.750000 -0.243863 +v 1.700268 3.750000 -1.021021 +v 1.924242 3.750000 -0.480301 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vn 0.0000 1.0000 0.0000 +vn -0.0662 0.0000 0.9978 +vn -0.0662 0.0000 -0.9978 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0662 0.0000 -0.9978 +vn 0.0662 0.0000 0.9978 +vn -1.0000 0.0000 0.0000 +vn 0.9978 0.0000 0.0662 +vn -0.9978 0.0000 0.0662 +vn 0.0000 0.0000 -1.0000 +vn -0.9978 0.0000 -0.0662 +vn 0.9978 0.0000 -0.0662 +vn 0.0000 0.0000 1.0000 +vn 0.6588 0.0000 0.7523 +vn -0.7523 0.0000 -0.6588 +vn 0.7071 0.0000 -0.7071 +vn -0.6588 0.0000 -0.7523 +vn 0.7523 0.0000 0.6588 +vn -0.7071 0.0000 0.7071 +vn 0.7523 0.0000 -0.6588 +vn -0.6588 0.0000 0.7523 +vn -0.7071 0.0000 -0.7071 +vn -0.7523 0.0000 0.6588 +vn 0.6588 0.0000 -0.7523 +vn 0.7071 0.0000 0.7071 +vn 0.8965 0.0000 0.4430 +vn -0.9472 0.0000 -0.3207 +vn 0.3827 0.0000 -0.9239 +vn -0.8965 0.0000 -0.4430 +vn 0.9472 0.0000 0.3207 +vn -0.3827 0.0000 0.9239 +vn 0.4430 0.0000 -0.8965 +vn -0.3207 0.0000 0.9472 +vn -0.9239 0.0000 -0.3827 +vn -0.4430 0.0000 0.8965 +vn 0.3207 0.0000 -0.9472 +vn 0.9239 0.0000 0.3827 +vn 0.9472 0.0000 -0.3207 +vn -0.8965 0.0000 0.4430 +vn -0.3827 0.0000 -0.9239 +vn -0.9472 0.0000 0.3207 +vn 0.8965 0.0000 -0.4430 +vn 0.3827 0.0000 0.9239 +vn -0.3207 0.0000 -0.9472 +vn 0.4430 0.0000 0.8965 +vn -0.9239 0.0000 0.3827 +vn 0.3207 0.0000 0.9472 +vn -0.4430 0.0000 -0.8965 +vn 0.9239 0.0000 -0.3827 +s off +f 5/1/1 8/2/1 6/3/1 +f 1/4/2 6/5/2 3/6/2 +f 4/7/3 7/8/3 2/9/3 +f 2/9/4 5/1/4 1/4/4 +f 15/10/4 12/11/4 16/12/4 +f 13/13/3 10/14/3 15/10/3 +f 16/12/2 11/15/2 14/16/2 +f 16/12/5 13/17/5 15/10/5 +f 21/18/1 24/19/1 22/20/1 +f 17/21/6 22/22/6 19/23/6 +f 20/24/7 23/25/7 18/26/7 +f 18/26/8 21/18/8 17/21/8 +f 31/27/8 28/28/8 32/29/8 +f 29/30/7 26/31/7 31/27/7 +f 32/29/6 27/32/6 30/33/6 +f 32/29/5 29/34/5 31/27/5 +f 37/35/1 40/36/1 38/37/1 +f 33/38/9 38/39/9 35/40/9 +f 36/41/10 39/42/10 34/43/10 +f 34/43/11 37/35/11 33/38/11 +f 47/44/11 44/45/11 48/46/11 +f 45/47/10 42/48/10 47/44/10 +f 48/46/9 43/49/9 46/50/9 +f 48/46/5 45/51/5 47/44/5 +f 53/52/1 56/53/1 54/54/1 +f 49/55/12 54/56/12 51/57/12 +f 52/58/13 55/59/13 50/60/13 +f 50/60/14 53/52/14 49/55/14 +f 63/61/14 60/62/14 64/63/14 +f 61/64/13 58/65/13 63/61/13 +f 64/63/12 59/66/12 62/67/12 +f 64/63/5 61/68/5 63/61/5 +f 69/69/1 72/70/1 70/71/1 +f 65/72/15 70/73/15 67/74/15 +f 68/75/16 71/76/16 66/77/16 +f 66/77/17 69/69/17 65/72/17 +f 79/78/17 76/79/17 80/80/17 +f 77/81/16 74/82/16 79/78/16 +f 80/80/15 75/83/15 78/84/15 +f 80/80/5 77/85/5 79/78/5 +f 85/86/1 88/87/1 86/88/1 +f 81/89/18 86/90/18 83/91/18 +f 84/92/19 87/93/19 82/94/19 +f 82/94/20 85/86/20 81/89/20 +f 95/95/20 92/96/20 96/97/20 +f 93/98/19 90/99/19 95/95/19 +f 96/97/18 91/100/18 94/101/18 +f 96/97/5 93/102/5 95/95/5 +f 101/103/1 104/104/1 102/105/1 +f 97/106/21 102/107/21 99/108/21 +f 100/109/22 103/110/22 98/111/22 +f 98/111/23 101/103/23 97/106/23 +f 111/112/23 108/113/23 112/114/23 +f 109/115/22 106/116/22 111/112/22 +f 112/114/21 107/117/21 110/118/21 +f 112/114/5 109/119/5 111/112/5 +f 117/120/1 120/121/1 118/122/1 +f 113/123/24 118/124/24 115/125/24 +f 116/126/25 119/127/25 114/128/25 +f 114/128/26 117/120/26 113/123/26 +f 127/129/26 124/130/26 128/131/26 +f 125/132/25 122/133/25 127/129/25 +f 128/131/24 123/134/24 126/135/24 +f 128/131/5 125/136/5 127/129/5 +f 133/137/1 136/138/1 134/139/1 +f 129/140/27 134/141/27 131/142/27 +f 132/143/28 135/144/28 130/145/28 +f 130/145/29 133/137/29 129/140/29 +f 143/146/29 140/147/29 144/148/29 +f 141/149/28 138/150/28 143/146/28 +f 144/148/27 139/151/27 142/152/27 +f 144/148/5 141/153/5 143/146/5 +f 149/154/1 152/155/1 150/156/1 +f 145/157/30 150/158/30 147/159/30 +f 148/160/31 151/161/31 146/162/31 +f 146/162/32 149/154/32 145/157/32 +f 159/163/32 156/164/32 160/165/32 +f 157/166/31 154/167/31 159/163/31 +f 160/165/30 155/168/30 158/169/30 +f 160/165/5 157/170/5 159/163/5 +f 165/171/1 168/172/1 166/173/1 +f 161/174/33 166/175/33 163/176/33 +f 164/177/34 167/178/34 162/179/34 +f 162/179/35 165/171/35 161/174/35 +f 175/180/35 172/181/35 176/182/35 +f 173/183/34 170/184/34 175/180/34 +f 176/182/33 171/185/33 174/186/33 +f 176/182/5 173/187/5 175/180/5 +f 181/188/1 184/189/1 182/190/1 +f 177/191/36 182/192/36 179/193/36 +f 180/194/37 183/195/37 178/196/37 +f 178/196/38 181/188/38 177/191/38 +f 191/197/38 188/198/38 192/199/38 +f 189/200/37 186/201/37 191/197/37 +f 192/199/36 187/202/36 190/203/36 +f 192/199/5 189/204/5 191/197/5 +f 197/205/1 200/206/1 198/207/1 +f 193/208/39 198/209/39 195/210/39 +f 196/211/40 199/212/40 194/213/40 +f 194/213/41 197/205/41 193/208/41 +f 207/214/41 204/215/41 208/216/41 +f 205/217/40 202/218/40 207/214/40 +f 208/216/39 203/219/39 206/220/39 +f 208/216/5 205/221/5 207/214/5 +f 213/222/1 216/223/1 214/224/1 +f 209/225/42 214/226/42 211/227/42 +f 212/228/43 215/229/43 210/230/43 +f 210/230/44 213/222/44 209/225/44 +f 223/231/44 220/232/44 224/233/44 +f 221/234/43 218/235/43 223/231/43 +f 224/233/42 219/236/42 222/237/42 +f 224/233/5 221/238/5 223/231/5 +f 229/239/1 232/240/1 230/241/1 +f 225/242/45 230/243/45 227/244/45 +f 228/245/46 231/246/46 226/247/46 +f 226/247/47 229/239/47 225/242/47 +f 239/248/47 236/249/47 240/250/47 +f 237/251/46 234/252/46 239/248/46 +f 240/250/45 235/253/45 238/254/45 +f 240/250/5 237/255/5 239/248/5 +f 245/256/1 248/257/1 246/258/1 +f 241/259/48 246/260/48 243/261/48 +f 244/262/49 247/263/49 242/264/49 +f 242/264/50 245/256/50 241/259/50 +f 255/265/50 252/266/50 256/267/50 +f 253/268/49 250/269/49 255/265/49 +f 256/267/48 251/270/48 254/271/48 +f 256/267/5 253/272/5 255/265/5 +f 5/1/1 7/8/1 8/2/1 +f 1/4/2 5/1/2 6/5/2 +f 4/7/3 8/273/3 7/8/3 +f 2/9/4 7/8/4 5/1/4 +f 15/10/4 10/14/4 12/11/4 +f 13/13/3 9/274/3 10/14/3 +f 16/12/2 12/11/2 11/15/2 +f 16/12/5 14/275/5 13/17/5 +f 21/18/1 23/25/1 24/19/1 +f 17/21/6 21/18/6 22/22/6 +f 20/24/7 24/276/7 23/25/7 +f 18/26/8 23/25/8 21/18/8 +f 31/27/8 26/31/8 28/28/8 +f 29/30/7 25/277/7 26/31/7 +f 32/29/6 28/28/6 27/32/6 +f 32/29/5 30/278/5 29/34/5 +f 37/35/1 39/42/1 40/36/1 +f 33/38/9 37/35/9 38/39/9 +f 36/41/10 40/279/10 39/42/10 +f 34/43/11 39/42/11 37/35/11 +f 47/44/11 42/48/11 44/45/11 +f 45/47/10 41/280/10 42/48/10 +f 48/46/9 44/45/9 43/49/9 +f 48/46/5 46/281/5 45/51/5 +f 53/52/1 55/59/1 56/53/1 +f 49/55/12 53/52/12 54/56/12 +f 52/58/13 56/282/13 55/59/13 +f 50/60/14 55/59/14 53/52/14 +f 63/61/14 58/65/14 60/62/14 +f 61/64/13 57/283/13 58/65/13 +f 64/63/12 60/62/12 59/66/12 +f 64/63/5 62/284/5 61/68/5 +f 69/69/1 71/76/1 72/70/1 +f 65/72/15 69/69/15 70/73/15 +f 68/75/16 72/285/16 71/76/16 +f 66/77/17 71/76/17 69/69/17 +f 79/78/17 74/82/17 76/79/17 +f 77/81/16 73/286/16 74/82/16 +f 80/80/15 76/79/15 75/83/15 +f 80/80/5 78/287/5 77/85/5 +f 85/86/1 87/93/1 88/87/1 +f 81/89/18 85/86/18 86/90/18 +f 84/92/19 88/288/19 87/93/19 +f 82/94/20 87/93/20 85/86/20 +f 95/95/20 90/99/20 92/96/20 +f 93/98/19 89/289/19 90/99/19 +f 96/97/18 92/96/18 91/100/18 +f 96/97/5 94/290/5 93/102/5 +f 101/103/1 103/110/1 104/104/1 +f 97/106/21 101/103/21 102/107/21 +f 100/109/22 104/291/22 103/110/22 +f 98/111/23 103/110/23 101/103/23 +f 111/112/23 106/116/23 108/113/23 +f 109/115/22 105/292/22 106/116/22 +f 112/114/21 108/113/21 107/117/21 +f 112/114/5 110/293/5 109/119/5 +f 117/120/1 119/127/1 120/121/1 +f 113/123/24 117/120/24 118/124/24 +f 116/126/25 120/294/25 119/127/25 +f 114/128/26 119/127/26 117/120/26 +f 127/129/26 122/133/26 124/130/26 +f 125/132/25 121/295/25 122/133/25 +f 128/131/24 124/130/24 123/134/24 +f 128/131/5 126/296/5 125/136/5 +f 133/137/1 135/144/1 136/138/1 +f 129/140/27 133/137/27 134/141/27 +f 132/143/28 136/297/28 135/144/28 +f 130/145/29 135/144/29 133/137/29 +f 143/146/29 138/150/29 140/147/29 +f 141/149/28 137/298/28 138/150/28 +f 144/148/27 140/147/27 139/151/27 +f 144/148/5 142/299/5 141/153/5 +f 149/154/1 151/161/1 152/155/1 +f 145/157/30 149/154/30 150/158/30 +f 148/160/31 152/300/31 151/161/31 +f 146/162/32 151/161/32 149/154/32 +f 159/163/32 154/167/32 156/164/32 +f 157/166/31 153/301/31 154/167/31 +f 160/165/30 156/164/30 155/168/30 +f 160/165/5 158/302/5 157/170/5 +f 165/171/1 167/178/1 168/172/1 +f 161/174/33 165/171/33 166/175/33 +f 164/177/34 168/303/34 167/178/34 +f 162/179/35 167/178/35 165/171/35 +f 175/180/35 170/184/35 172/181/35 +f 173/183/34 169/304/34 170/184/34 +f 176/182/33 172/181/33 171/185/33 +f 176/182/5 174/305/5 173/187/5 +f 181/188/1 183/195/1 184/189/1 +f 177/191/36 181/188/36 182/192/36 +f 180/194/37 184/306/37 183/195/37 +f 178/196/38 183/195/38 181/188/38 +f 191/197/38 186/201/38 188/198/38 +f 189/200/37 185/307/37 186/201/37 +f 192/199/36 188/198/36 187/202/36 +f 192/199/5 190/308/5 189/204/5 +f 197/205/1 199/212/1 200/206/1 +f 193/208/39 197/205/39 198/209/39 +f 196/211/40 200/309/40 199/212/40 +f 194/213/41 199/212/41 197/205/41 +f 207/214/41 202/218/41 204/215/41 +f 205/217/40 201/310/40 202/218/40 +f 208/216/39 204/215/39 203/219/39 +f 208/216/5 206/311/5 205/221/5 +f 213/222/1 215/229/1 216/223/1 +f 209/225/42 213/222/42 214/226/42 +f 212/228/43 216/312/43 215/229/43 +f 210/230/44 215/229/44 213/222/44 +f 223/231/44 218/235/44 220/232/44 +f 221/234/43 217/313/43 218/235/43 +f 224/233/42 220/232/42 219/236/42 +f 224/233/5 222/314/5 221/238/5 +f 229/239/1 231/246/1 232/240/1 +f 225/242/45 229/239/45 230/243/45 +f 228/245/46 232/315/46 231/246/46 +f 226/247/47 231/246/47 229/239/47 +f 239/248/47 234/252/47 236/249/47 +f 237/251/46 233/316/46 234/252/46 +f 240/250/45 236/249/45 235/253/45 +f 240/250/5 238/317/5 237/255/5 +f 245/256/1 247/263/1 248/257/1 +f 241/259/48 245/256/48 246/260/48 +f 244/262/49 248/318/49 247/263/49 +f 242/264/50 247/263/50 245/256/50 +f 255/265/50 250/269/50 252/266/50 +f 253/268/49 249/319/49 250/269/49 +f 256/267/48 252/266/48 251/270/48 +f 256/267/5 254/320/5 253/272/5 +o Core +v 0.000000 2.250000 -0.000000 +v 0.180900 2.388196 0.131430 +v -0.069097 2.388196 0.212660 +v -0.223606 2.388196 -0.000000 +v -0.069097 2.388196 -0.212660 +v 0.180900 2.388196 -0.131430 +v 0.069096 2.611804 0.212660 +v -0.180901 2.611804 0.131430 +v -0.180901 2.611804 -0.131430 +v 0.069096 2.611804 -0.212660 +v 0.223606 2.611804 -0.000000 +v 0.000000 2.750000 -0.000000 +vt 0.538462 0.491228 +vt 0.525641 0.491228 +vt 0.532051 0.473684 +vt 0.532051 0.473684 +vt 0.538462 0.491228 +vt 0.525641 0.491228 +vt 0.532051 0.473684 +vt 0.538462 0.491228 +vt 0.525641 0.491228 +vt 0.538462 0.491228 +vt 0.525641 0.491228 +vt 0.532051 0.473684 +vt 0.538462 0.491228 +vt 0.532051 0.473684 +vt 0.538462 0.491228 +vt 0.532051 0.473684 +vt 0.538462 0.491228 +vt 0.532051 0.473684 +vt 0.525641 0.491228 +vt 0.525641 0.491228 +vt 0.532051 0.473684 +vt 0.525641 0.491228 +vt 0.525641 0.491228 +vt 0.532051 0.473684 +vt 0.538462 0.491228 +vt 0.538462 0.491228 +vt 0.532051 0.473684 +vn 0.1876 -0.7947 0.5774 +vn 0.6071 -0.7947 0.0000 +vn -0.4911 -0.7947 0.3568 +vn -0.4911 -0.7947 -0.3568 +vn 0.1876 -0.7947 -0.5774 +vn 0.9822 -0.1876 0.0000 +vn 0.3035 -0.1876 0.9342 +vn -0.7946 -0.1876 0.5774 +vn -0.7946 -0.1876 -0.5774 +vn 0.3035 -0.1876 -0.9342 +vn 0.7946 0.1876 0.5774 +vn -0.3035 0.1876 0.9342 +vn -0.9822 0.1876 0.0000 +vn -0.3035 0.1876 -0.9342 +vn 0.7946 0.1876 -0.5774 +vn 0.4911 0.7947 0.3568 +vn -0.1876 0.7947 0.5774 +vn -0.6071 0.7947 0.0000 +vn -0.1876 0.7947 -0.5774 +vn 0.4911 0.7947 -0.3568 +s off +f 257/321/51 258/322/51 259/323/51 +f 258/322/52 257/324/52 262/325/52 +f 257/321/53 259/326/53 260/327/53 +f 257/324/54 260/328/54 261/329/54 +f 257/324/55 261/330/55 262/331/55 +f 258/322/56 262/332/56 267/333/56 +f 259/326/57 258/334/57 263/335/57 +f 260/328/58 259/326/58 264/336/58 +f 261/329/59 260/327/59 265/337/59 +f 262/325/60 261/329/60 266/338/60 +f 258/334/61 267/333/61 263/339/61 +f 259/323/62 263/335/62 264/340/62 +f 260/328/63 264/340/63 265/341/63 +f 261/330/64 265/342/64 266/338/64 +f 262/325/65 266/343/65 267/344/65 +f 263/339/66 267/344/66 268/345/66 +f 264/346/67 263/339/67 268/347/67 +f 265/337/68 264/340/68 268/347/68 +f 266/343/69 265/341/69 268/345/69 +f 267/333/70 266/343/70 268/347/70 +o Chamber +v 0.000000 0.000000 -2.500000 +v -0.956709 0.000000 -2.309699 +v -1.767767 0.000000 -1.767767 +v -2.309699 0.000000 -0.956709 +v -2.500000 0.000000 0.000000 +v -2.309699 0.000000 0.956709 +v -1.767767 0.000000 1.767767 +v -0.956709 0.000000 2.309699 +v 0.000000 0.000000 2.500000 +v 0.956708 0.000000 2.309699 +v 1.767767 0.000000 1.767768 +v 2.309699 0.000000 0.956709 +v 2.500000 0.000000 -0.000000 +v 2.309698 0.000000 -0.956709 +v 1.767766 0.000000 -1.767768 +v 0.956707 0.000000 -2.309699 +v 0.000000 0.500000 -2.500000 +v -0.956709 0.500000 -2.309699 +v -1.767767 0.500000 -1.767767 +v -2.309699 0.500000 -0.956709 +v -2.500000 0.500000 0.000000 +v -2.309699 0.500000 0.956709 +v -1.767767 0.500000 1.767767 +v -0.956709 0.500000 2.309699 +v 0.000000 0.500000 2.500000 +v 0.956708 0.500000 2.309699 +v 1.767767 0.500000 1.767768 +v 2.309699 0.500000 0.956709 +v 2.500000 0.500000 -0.000000 +v 2.309698 0.500000 -0.956709 +v 1.767766 0.500000 -1.767768 +v 0.956707 0.500000 -2.309699 +v 0.000000 0.500000 -2.250000 +v -0.861038 0.500000 -2.078729 +v -1.590990 0.500000 -1.590990 +v -2.078729 0.500000 -0.861038 +v -2.250000 0.500000 0.000000 +v -2.078729 0.500000 0.861038 +v -1.590990 0.500000 1.590990 +v -0.861038 0.500000 2.078729 +v -0.000001 0.500000 2.250000 +v 0.861037 0.500000 2.078729 +v 1.590990 0.500000 1.590991 +v 2.078729 0.500000 0.861038 +v 2.250000 0.500000 0.000000 +v 2.078729 0.500000 -0.861038 +v 1.590990 0.500000 -1.590991 +v 0.861036 0.500000 -2.078730 +v 0.000000 4.500000 -2.250000 +v -0.861038 4.500000 -2.078729 +v -1.590990 4.500000 -1.590990 +v -2.078729 4.500000 -0.861038 +v -2.250000 4.500000 0.000000 +v -2.078729 4.500000 0.861038 +v -1.590990 4.500000 1.590990 +v -0.861038 4.500000 2.078729 +v -0.000001 4.500000 2.250000 +v 0.861037 4.500000 2.078729 +v 1.590990 4.500000 1.590991 +v 2.078729 4.500000 0.861038 +v 2.250000 4.500000 0.000000 +v 2.078729 4.500000 -0.861038 +v 1.590990 4.500000 -1.590991 +v 0.861036 4.500000 -2.078730 +v 1.767767 0.375000 1.944544 +v 1.944544 0.375000 1.767767 +v 1.767767 4.625000 1.944544 +v 1.944544 4.625000 1.767767 +v 1.944544 4.625000 2.121320 +v 1.944544 0.375000 2.121320 +v 2.121320 0.375000 1.944544 +v 2.121320 4.625000 1.944544 +v 1.944544 4.875000 1.767767 +v 1.767767 4.875000 1.944544 +v 1.767767 0.125000 1.944544 +v 1.944544 0.125000 1.767767 +v 1.590990 0.375000 1.767767 +v 1.767767 0.375000 1.590990 +v 1.767767 4.625000 1.590990 +v 1.590990 4.625000 1.767767 +v 1.767767 4.875000 1.590990 +v 1.590990 4.875000 1.767767 +v 1.590990 0.125000 1.767767 +v 1.767767 0.125000 1.590990 +v 1.944544 0.375000 -1.767767 +v 1.767767 0.375000 -1.944544 +v 1.944544 4.625000 -1.767767 +v 1.767767 4.625000 -1.944544 +v 2.121321 4.625000 -1.944544 +v 2.121321 0.375000 -1.944544 +v 1.944544 0.375000 -2.121320 +v 1.944544 4.625000 -2.121320 +v 1.767767 4.875000 -1.944544 +v 1.944544 4.875000 -1.767767 +v 1.944544 0.125000 -1.767767 +v 1.767767 0.125000 -1.944544 +v 1.767767 0.375000 -1.590990 +v 1.590990 0.375000 -1.767767 +v 1.590990 4.625000 -1.767767 +v 1.767767 4.625000 -1.590990 +v 1.590990 4.875000 -1.767767 +v 1.767767 4.875000 -1.590990 +v 1.767767 0.125000 -1.590990 +v 1.590990 0.125000 -1.767767 +v -1.767767 0.375000 -1.944544 +v -1.944544 0.375000 -1.767767 +v -1.767767 4.625000 -1.944544 +v -1.944544 4.625000 -1.767767 +v -1.944544 4.625000 -2.121320 +v -1.944544 0.375000 -2.121320 +v -2.121321 0.375000 -1.944544 +v -2.121321 4.625000 -1.944544 +v -1.944544 4.875000 -1.767767 +v -1.767767 4.875000 -1.944544 +v -1.767767 0.125000 -1.944544 +v -1.944544 0.125000 -1.767767 +v -1.590990 0.375000 -1.767767 +v -1.767767 0.375000 -1.590990 +v -1.767767 4.625000 -1.590990 +v -1.590990 4.625000 -1.767767 +v -1.767767 4.875000 -1.590990 +v -1.590990 4.875000 -1.767767 +v -1.590990 0.125000 -1.767767 +v -1.767767 0.125000 -1.590990 +v -1.944544 0.375000 1.767767 +v -1.767767 0.375000 1.944544 +v -1.944544 4.625000 1.767767 +v -1.767767 4.625000 1.944544 +v -2.121320 4.625000 1.944544 +v -2.121320 0.375000 1.944544 +v -1.944544 0.375000 2.121320 +v -1.944544 4.625000 2.121320 +v -1.767767 4.875000 1.944544 +v -1.944544 4.875000 1.767767 +v -1.944544 0.125000 1.767767 +v -1.767767 0.125000 1.944544 +v -1.767767 0.375000 1.590990 +v -1.590990 0.375000 1.767767 +v -1.590990 4.625000 1.767767 +v -1.767767 4.625000 1.590990 +v -1.590990 4.875000 1.767767 +v -1.767767 4.875000 1.590990 +v -1.767767 0.125000 1.590990 +v -1.590990 0.125000 1.767767 +v 0.000000 0.500000 -1.500000 +v -0.574025 0.500000 -1.385819 +v -1.060660 0.500000 -1.060660 +v -1.385819 0.500000 -0.574025 +v -1.500000 0.500000 0.000000 +v -1.385819 0.500000 0.574025 +v -1.060660 0.500000 1.060660 +v -0.574025 0.500000 1.385819 +v 0.000000 0.500000 1.500000 +v 0.574024 0.500000 1.385819 +v 1.060659 0.500000 1.060660 +v 1.385819 0.500000 0.574025 +v 1.500000 0.500000 -0.000000 +v 1.385819 0.500000 -0.574025 +v 1.060659 0.500000 -1.060660 +v 0.574024 0.500000 -1.385820 +v 0.000000 1.500000 -1.500000 +v -0.574025 1.500000 -1.385819 +v -1.060660 1.500000 -1.060660 +v -1.385819 1.500000 -0.574025 +v -1.500000 1.500000 0.000000 +v -1.385819 1.500000 0.574025 +v -1.060660 1.500000 1.060660 +v -0.574025 1.500000 1.385819 +v 0.000000 1.500000 1.500000 +v 0.574024 1.500000 1.385819 +v 1.060659 1.500000 1.060660 +v 1.385819 1.500000 0.574025 +v 1.500000 1.500000 -0.000000 +v 1.385819 1.500000 -0.574025 +v 1.060659 1.500000 -1.060660 +v 0.574024 1.500000 -1.385820 +v 0.000000 3.500000 -1.500000 +v -0.574025 3.500000 -1.385819 +v -1.060660 3.500000 -1.060660 +v -1.385819 3.500000 -0.574025 +v -1.500000 3.500000 0.000000 +v -1.385819 3.500000 0.574025 +v -1.060660 3.500000 1.060660 +v -0.574025 3.500000 1.385819 +v 0.000000 3.500000 1.500000 +v 0.574024 3.500000 1.385819 +v 1.060659 3.500000 1.060660 +v 1.385819 3.500000 0.574025 +v 1.500000 3.500000 -0.000000 +v 1.385819 3.500000 -0.574025 +v 1.060659 3.500000 -1.060660 +v 0.574024 3.500000 -1.385820 +v 0.000000 4.500000 -1.500000 +v -0.574025 4.500000 -1.385819 +v -1.060660 4.500000 -1.060660 +v -1.385819 4.500000 -0.574025 +v -1.500000 4.500000 0.000000 +v -1.385819 4.500000 0.574025 +v -1.060660 4.500000 1.060660 +v -0.574025 4.500000 1.385819 +v 0.000000 4.500000 1.500000 +v 0.574024 4.500000 1.385819 +v 1.060659 4.500000 1.060660 +v 1.385819 4.500000 0.574025 +v 1.500000 4.500000 -0.000000 +v 1.385819 4.500000 -0.574025 +v 1.060659 4.500000 -1.060660 +v 0.574024 4.500000 -1.385820 +v 0.000000 1.500000 -1.000000 +v -0.382684 1.500000 -0.923880 +v -0.707107 1.500000 -0.707107 +v -0.923880 1.500000 -0.382683 +v -1.000000 1.500000 0.000000 +v -0.923880 1.500000 0.382683 +v -0.707107 1.500000 0.707107 +v -0.382684 1.500000 0.923880 +v 0.000000 1.500000 1.000000 +v 0.382683 1.500000 0.923880 +v 0.707107 1.500000 0.707107 +v 0.923880 1.500000 0.382684 +v 1.000000 1.500000 -0.000000 +v 0.923880 1.500000 -0.382684 +v 0.707107 1.500000 -0.707107 +v 0.382683 1.500000 -0.923880 +v 0.000000 1.750000 -1.000000 +v -0.382684 1.750000 -0.923880 +v -0.707107 1.750000 -0.707107 +v -0.923880 1.750000 -0.382683 +v -1.000000 1.750000 0.000000 +v -0.923880 1.750000 0.382683 +v -0.707107 1.750000 0.707107 +v -0.382684 1.750000 0.923880 +v 0.000000 1.750000 1.000000 +v 0.382683 1.750000 0.923880 +v 0.707107 1.750000 0.707107 +v 0.923880 1.750000 0.382684 +v 1.000000 1.750000 -0.000000 +v 0.923880 1.750000 -0.382684 +v 0.707107 1.750000 -0.707107 +v 0.382683 1.750000 -0.923880 +v 0.000000 3.250000 -1.000000 +v -0.382684 3.250000 -0.923880 +v -0.707107 3.250000 -0.707107 +v -0.923880 3.250000 -0.382683 +v -1.000000 3.250000 0.000000 +v -0.923880 3.250000 0.382683 +v -0.707107 3.250000 0.707107 +v -0.382684 3.250000 0.923880 +v 0.000000 3.250000 1.000000 +v 0.382683 3.250000 0.923880 +v 0.707107 3.250000 0.707107 +v 0.923880 3.250000 0.382684 +v 1.000000 3.250000 -0.000000 +v 0.923880 3.250000 -0.382684 +v 0.707107 3.250000 -0.707107 +v 0.382683 3.250000 -0.923880 +v 0.000000 3.500000 -1.000000 +v -0.382684 3.500000 -0.923880 +v -0.707107 3.500000 -0.707107 +v -0.923880 3.500000 -0.382683 +v -1.000000 3.500000 0.000000 +v -0.923880 3.500000 0.382683 +v -0.707107 3.500000 0.707107 +v -0.382684 3.500000 0.923880 +v 0.000000 3.500000 1.000000 +v 0.382683 3.500000 0.923880 +v 0.707107 3.500000 0.707107 +v 0.923880 3.500000 0.382684 +v 1.000000 3.500000 -0.000000 +v 0.923880 3.500000 -0.382684 +v 0.707107 3.500000 -0.707107 +v 0.382683 3.500000 -0.923880 +v 0.972271 1.500000 0.972272 +v 0.795495 1.500000 0.795495 +v 0.795495 1.500000 -0.795495 +v 0.795495 2.000000 0.795495 +v 0.972271 1.500000 -0.972272 +v 0.795495 3.000000 0.795495 +v 0.972271 3.500000 0.972272 +v 0.795495 3.500000 0.795495 +v 0.265164 2.000000 0.265165 +v 0.265164 3.000000 0.265165 +v 0.795495 2.000000 -0.795495 +v 0.795495 3.000000 -0.795495 +v 0.972271 3.500000 -0.972272 +v 0.795495 3.500000 -0.795495 +v 0.265164 2.000000 -0.265165 +v 0.265164 3.000000 -0.265165 +v -0.972272 1.500000 -0.972272 +v -0.795495 1.500000 -0.795495 +v -0.795495 1.500000 0.795495 +v -0.795495 2.000000 -0.795495 +v -0.972272 1.500000 0.972272 +v -0.795495 3.000000 -0.795495 +v -0.972272 3.500000 -0.972272 +v -0.795495 3.500000 -0.795495 +v -0.265165 2.000000 -0.265165 +v -0.265165 3.000000 -0.265165 +v -0.795495 2.000000 0.795495 +v -0.795495 3.000000 0.795495 +v -0.972272 3.500000 0.972272 +v -0.795495 3.500000 0.795495 +v -0.265165 2.000000 0.265165 +v -0.265165 3.000000 0.265165 +v 0.000000 3.000000 -1.000000 +v -0.353554 2.853553 -1.000000 +v -0.500000 2.500000 -1.000000 +v -0.353554 2.146447 -1.000000 +v 0.000000 2.000000 -1.000000 +v 0.353553 2.146447 -1.000000 +v 0.500000 2.500000 -1.000000 +v 0.353553 2.853553 -1.000000 +v 0.000000 3.000000 -6.500000 +v -0.353554 2.853553 -6.500000 +v -0.500000 2.500000 -6.500000 +v -0.353554 2.146447 -6.500000 +v 0.000000 2.000000 -6.500000 +v 0.353553 2.146447 -6.500000 +v 0.500000 2.500000 -6.500000 +v 0.353553 2.853553 -6.500000 +v 0.000000 2.875000 -1.000000 +v -0.265165 2.765165 -1.000000 +v -0.375000 2.500000 -1.000000 +v -0.265165 2.234835 -1.000000 +v 0.000000 2.125000 -1.000000 +v 0.265164 2.234835 -1.000000 +v 0.375000 2.500000 -1.000000 +v 0.265164 2.765165 -1.000000 +v -0.265165 2.765165 -0.500000 +v 0.000000 2.875000 -0.500000 +v -0.375000 2.500000 -0.500000 +v -0.265165 2.234835 -0.500000 +v 0.000000 2.125000 -0.500000 +v 0.265164 2.234835 -0.500000 +v 0.375000 2.500000 -0.500000 +v 0.265164 2.765165 -0.500000 +v -1.000000 0.000000 -6.500000 +v 1.000000 0.000000 -6.500000 +v -1.000000 0.000000 -8.500000 +v 1.000000 0.000000 -8.500000 +v -1.000000 2.500000 -8.500000 +v -1.000000 3.500000 -6.500000 +v 1.000000 3.500000 -6.500000 +v 1.000000 2.500000 -8.500000 +v -0.250000 0.000000 -3.250000 +v 0.250000 0.000000 -3.250000 +v -0.250000 0.000000 -3.750000 +v 0.250000 0.000000 -3.750000 +v -0.250000 0.125000 -3.750000 +v -0.250000 0.125000 -3.250000 +v 0.250000 0.125000 -3.250000 +v 0.250000 0.125000 -3.750000 +v -0.125000 0.125000 -3.625000 +v -0.125000 0.125000 -3.375000 +v 0.125000 0.125000 -3.375000 +v 0.125000 0.125000 -3.625000 +v -0.125000 1.750000 -3.625000 +v -0.125000 1.750000 -3.375000 +v 0.125000 1.750000 -3.375000 +v 0.125000 1.750000 -3.625000 +v -0.750000 2.500000 -6.750000 +v 0.750000 2.500000 -6.750000 +v -0.750000 2.500000 -8.250000 +v 0.750000 2.500000 -8.250000 +v -0.750000 3.500000 -8.250000 +v -0.750000 3.500000 -6.750000 +v 0.750000 3.500000 -6.750000 +v 0.750000 3.500000 -8.250000 +v 1.000000 0.000000 -6.500000 +v 1.500000 0.000000 -6.500000 +v 1.000000 0.000000 -8.500000 +v 1.500000 0.000000 -8.500000 +v 1.000000 1.500000 -8.500000 +v 1.000000 1.500000 -6.500000 +v 1.500000 1.000000 -6.500000 +v 1.500000 1.000000 -8.500000 +v -1.500000 0.000000 -6.500000 +v -1.000000 0.000000 -6.500000 +v -1.500000 0.000000 -8.500000 +v -1.000000 0.000000 -8.500000 +v -1.500000 1.000000 -8.500000 +v -1.500000 1.000000 -6.500000 +v -1.000000 1.500000 -6.500000 +v -1.000000 1.500000 -8.500000 +v 0.353553 2.853553 -2.375000 +v 0.500000 2.500000 -2.375000 +v 0.353553 2.146447 -2.375000 +v 0.000000 2.000000 -2.375000 +v -0.353554 2.146447 -2.375000 +v -0.500000 2.500000 -2.375000 +v -0.353554 2.853553 -2.375000 +v 0.000000 3.000000 -2.375000 +v 0.530330 3.030330 -2.125000 +v 0.750000 2.500000 -2.125000 +v 0.530330 1.969670 -2.125000 +v 0.000000 1.750000 -2.125000 +v -0.530331 1.969670 -2.125000 +v -0.750000 2.500000 -2.125000 +v -0.530331 3.030330 -2.125000 +v 0.000000 3.250000 -2.125000 +v 0.707107 3.207107 -2.375000 +v 1.000000 2.500000 -2.375000 +v 0.707107 1.792893 -2.375000 +v 0.000000 1.500000 -2.375000 +v -0.707107 1.792893 -2.375000 +v -1.000000 2.500000 -2.375000 +v -0.707107 3.207107 -2.375000 +v 0.000000 3.500000 -2.375000 +v 0.000000 3.500000 -2.625000 +v -0.707107 3.207107 -2.625000 +v -1.000000 2.500000 -2.625000 +v -0.707107 1.792893 -2.625000 +v 0.000000 1.500000 -2.625000 +v 0.707107 1.792893 -2.625000 +v 1.000000 2.500000 -2.625000 +v 0.707107 3.207107 -2.625000 +v 0.353553 2.853553 -2.625000 +v 0.500000 2.500000 -2.625000 +v 0.353553 2.146447 -2.625000 +v 0.000000 2.000000 -2.625000 +v -0.353554 2.146447 -2.625000 +v -0.500000 2.500000 -2.625000 +v -0.353554 2.853553 -2.625000 +v 0.000000 3.000000 -2.625000 +v 0.530330 3.030330 -2.875000 +v 0.750000 2.500000 -2.875000 +v 0.530330 1.969670 -2.875000 +v 0.000000 1.750000 -2.875000 +v -0.530331 1.969670 -2.875000 +v -0.750000 2.500000 -2.875000 +v -0.530331 3.030330 -2.875000 +v 0.000000 3.250000 -2.875000 +v -0.062500 3.750000 -2.562500 +v 0.062500 3.750000 -2.562500 +v -0.062500 3.750000 -7.437500 +v 0.062500 3.750000 -7.437500 +v -0.062500 3.625000 -7.437500 +v -0.062500 3.625000 -2.562500 +v 0.062500 3.625000 -2.562500 +v 0.062500 3.625000 -7.437500 +v 0.062500 3.625000 -3.437500 +v -0.062500 3.625000 -3.437500 +v -0.062500 3.625000 -2.437500 +v 0.062500 3.625000 -2.437500 +v 0.062500 3.625000 -3.562500 +v -0.062500 3.625000 -3.562500 +v 0.062500 3.625000 -7.562500 +v -0.062500 3.625000 -7.562500 +v -0.062500 3.437500 -2.562500 +v 0.062500 3.437500 -2.562500 +v 0.062500 3.500000 -7.437500 +v -0.062500 3.500000 -7.437500 +v -0.062500 3.437500 -2.437500 +v 0.062500 3.437500 -2.437500 +v 0.062500 3.500000 -7.562500 +v -0.062500 3.500000 -7.562500 +v -0.062500 3.437500 -3.562500 +v 0.062500 3.437500 -3.562500 +v -0.062500 3.437500 -3.437500 +v 0.062500 3.437500 -3.437500 +v 0.062500 3.625000 -4.437500 +v -0.062500 3.625000 -4.437500 +v 0.062500 3.625000 -4.562500 +v -0.062500 3.625000 -4.562500 +v -0.062500 3.437500 -4.562500 +v 0.062500 3.437500 -4.562500 +v -0.062500 3.437500 -4.437500 +v 0.062500 3.437500 -4.437500 +v 0.062500 3.625000 -5.437500 +v -0.062500 3.625000 -5.437500 +v 0.062500 3.625000 -5.562500 +v -0.062500 3.625000 -5.562500 +v -0.062500 3.437500 -5.562500 +v 0.062500 3.437500 -5.562500 +v -0.062500 3.437500 -5.437500 +v 0.062500 3.437500 -5.437500 +v 0.353553 2.853553 -3.375000 +v 0.500000 2.500000 -3.375000 +v 0.353553 2.146447 -3.375000 +v 0.000000 2.000000 -3.375000 +v -0.353554 2.146447 -3.375000 +v -0.500000 2.500000 -3.375000 +v -0.353554 2.853553 -3.375000 +v 0.000000 3.000000 -3.375000 +v 0.530330 3.030330 -3.125000 +v 0.750000 2.500000 -3.125000 +v 0.530330 1.969670 -3.125000 +v 0.000000 1.750000 -3.125000 +v -0.530331 1.969670 -3.125000 +v -0.750000 2.500000 -3.125000 +v -0.530331 3.030330 -3.125000 +v 0.000000 3.250000 -3.125000 +v 0.707107 3.207107 -3.375000 +v 1.000000 2.500000 -3.375000 +v 0.707107 1.792893 -3.375000 +v 0.000000 1.500000 -3.375000 +v -0.707107 1.792893 -3.375000 +v -1.000000 2.500000 -3.375000 +v -0.707107 3.207107 -3.375000 +v 0.000000 3.500000 -3.375000 +v 0.000000 3.500000 -3.625000 +v -0.707107 3.207107 -3.625000 +v -1.000000 2.500000 -3.625000 +v -0.707107 1.792893 -3.625000 +v 0.000000 1.500000 -3.625000 +v 0.707107 1.792893 -3.625000 +v 1.000000 2.500000 -3.625000 +v 0.707107 3.207107 -3.625000 +v 0.353553 2.853553 -3.625000 +v 0.500000 2.500000 -3.625000 +v 0.353553 2.146447 -3.625000 +v 0.000000 2.000000 -3.625000 +v -0.353554 2.146447 -3.625000 +v -0.500000 2.500000 -3.625000 +v -0.353554 2.853553 -3.625000 +v 0.000000 3.000000 -3.625000 +v 0.530330 3.030330 -3.875000 +v 0.750000 2.500000 -3.875000 +v 0.530330 1.969670 -3.875000 +v 0.000000 1.750000 -3.875000 +v -0.530331 1.969670 -3.875000 +v -0.750000 2.500000 -3.875000 +v -0.530331 3.030330 -3.875000 +v 0.000000 3.250000 -3.875000 +v 0.353553 2.853553 -4.375000 +v 0.500000 2.500000 -4.375000 +v 0.353553 2.146447 -4.375000 +v 0.000000 2.000000 -4.375000 +v -0.353554 2.146447 -4.375000 +v -0.500000 2.500000 -4.375000 +v -0.353554 2.853553 -4.375000 +v 0.000000 3.000000 -4.375000 +v 0.530330 3.030330 -4.125000 +v 0.750000 2.500000 -4.125000 +v 0.530330 1.969670 -4.125000 +v 0.000000 1.750000 -4.125000 +v -0.530331 1.969670 -4.125000 +v -0.750000 2.500000 -4.125000 +v -0.530331 3.030330 -4.125000 +v 0.000000 3.250000 -4.125000 +v 0.707107 3.207107 -4.375000 +v 1.000000 2.500000 -4.375000 +v 0.707107 1.792893 -4.375000 +v 0.000000 1.500000 -4.375000 +v -0.707107 1.792893 -4.375000 +v -1.000000 2.500000 -4.375000 +v -0.707107 3.207107 -4.375000 +v 0.000000 3.500000 -4.375000 +v 0.000000 3.500000 -4.625000 +v -0.707107 3.207107 -4.625000 +v -1.000000 2.500000 -4.625000 +v -0.707107 1.792893 -4.625000 +v 0.000000 1.500000 -4.625000 +v 0.707107 1.792893 -4.625000 +v 1.000000 2.500000 -4.625000 +v 0.707107 3.207107 -4.625000 +v 0.353553 2.853553 -4.625000 +v 0.500000 2.500000 -4.625000 +v 0.353553 2.146447 -4.625000 +v 0.000000 2.000000 -4.625000 +v -0.353554 2.146447 -4.625000 +v -0.500000 2.500000 -4.625000 +v -0.353554 2.853553 -4.625000 +v 0.000000 3.000000 -4.625000 +v 0.530330 3.030330 -4.875000 +v 0.750000 2.500000 -4.875000 +v 0.530330 1.969670 -4.875000 +v 0.000000 1.750000 -4.875000 +v -0.530331 1.969670 -4.875000 +v -0.750000 2.500000 -4.875000 +v -0.530331 3.030330 -4.875000 +v 0.000000 3.250000 -4.875000 +v 0.353553 2.853553 -5.375000 +v 0.500000 2.500000 -5.375000 +v 0.353553 2.146447 -5.375000 +v 0.000000 2.000000 -5.375000 +v -0.353554 2.146447 -5.375000 +v -0.500000 2.500000 -5.375000 +v -0.353554 2.853553 -5.375000 +v 0.000000 3.000000 -5.375000 +v 0.530330 3.030330 -5.125000 +v 0.750000 2.500000 -5.125000 +v 0.530330 1.969670 -5.125000 +v 0.000000 1.750000 -5.125000 +v -0.530331 1.969670 -5.125000 +v -0.750000 2.500000 -5.125000 +v -0.530331 3.030330 -5.125000 +v 0.000000 3.250000 -5.125000 +v 0.707107 3.207107 -5.375000 +v 1.000000 2.500000 -5.375000 +v 0.707107 1.792893 -5.375000 +v 0.000000 1.500000 -5.375000 +v -0.707107 1.792893 -5.375000 +v -1.000000 2.500000 -5.375000 +v -0.707107 3.207107 -5.375000 +v 0.000000 3.500000 -5.375000 +v 0.000000 3.500000 -5.625000 +v -0.707107 3.207107 -5.625000 +v -1.000000 2.500000 -5.625000 +v -0.707107 1.792893 -5.625000 +v 0.000000 1.500000 -5.625000 +v 0.707107 1.792893 -5.625000 +v 1.000000 2.500000 -5.625000 +v 0.707107 3.207107 -5.625000 +v 0.353553 2.853553 -5.625000 +v 0.500000 2.500000 -5.625000 +v 0.353553 2.146447 -5.625000 +v 0.000000 2.000000 -5.625000 +v -0.353554 2.146447 -5.625000 +v -0.500000 2.500000 -5.625000 +v -0.353554 2.853553 -5.625000 +v 0.000000 3.000000 -5.625000 +v 0.530330 3.030330 -5.875000 +v 0.750000 2.500000 -5.875000 +v 0.530330 1.969670 -5.875000 +v 0.000000 1.750000 -5.875000 +v -0.530331 1.969670 -5.875000 +v -0.750000 2.500000 -5.875000 +v -0.530331 3.030330 -5.875000 +v 0.000000 3.250000 -5.875000 +v 0.353553 2.853553 -6.375000 +v 0.500000 2.500000 -6.375000 +v 0.353553 2.146447 -6.375000 +v 0.000000 2.000000 -6.375000 +v -0.353554 2.146447 -6.375000 +v -0.500000 2.500000 -6.375000 +v -0.353554 2.853553 -6.375000 +v 0.000000 3.000000 -6.375000 +v 0.530330 3.030330 -6.125000 +v 0.750000 2.500000 -6.125000 +v 0.530330 1.969670 -6.125000 +v 0.000000 1.750000 -6.125000 +v -0.530331 1.969670 -6.125000 +v -0.750000 2.500000 -6.125000 +v -0.530331 3.030330 -6.125000 +v 0.000000 3.250000 -6.125000 +v 0.707107 3.207107 -6.375000 +v 1.000000 2.500000 -6.375000 +v 0.707107 1.792893 -6.375000 +v 0.000000 1.500000 -6.375000 +v -0.707107 1.792893 -6.375000 +v -1.000000 2.500000 -6.375000 +v -0.707107 3.207107 -6.375000 +v 0.000000 3.500000 -6.375000 +v 0.000000 3.500000 -6.500000 +v -0.707107 3.207107 -6.500000 +v -1.000000 2.500000 -6.500000 +v -0.707107 1.792893 -6.500000 +v 0.000000 1.500000 -6.500000 +v 0.707107 1.792893 -6.500000 +v 1.000000 2.500000 -6.500000 +v 0.707107 3.207107 -6.500000 +v -0.250000 0.000000 -5.250000 +v 0.250000 0.000000 -5.250000 +v -0.250000 0.000000 -5.750000 +v 0.250000 0.000000 -5.750000 +v -0.250000 0.125000 -5.750000 +v -0.250000 0.125000 -5.250000 +v 0.250000 0.125000 -5.250000 +v 0.250000 0.125000 -5.750000 +v -0.125000 0.125000 -5.625000 +v -0.125000 0.125000 -5.375000 +v 0.125000 0.125000 -5.375000 +v 0.125000 0.125000 -5.625000 +v -0.125000 1.750000 -5.625000 +v -0.125000 1.750000 -5.375000 +v 0.125000 1.750000 -5.375000 +v 0.125000 1.750000 -5.625000 +v 0.000000 4.500000 -2.500000 +v -0.956709 4.500000 -2.309699 +v -1.767767 4.500000 -1.767767 +v -2.309699 4.500000 -0.956709 +v -2.500000 4.500000 0.000000 +v -2.309699 4.500000 0.956709 +v -1.767767 4.500000 1.767767 +v -0.956709 4.500000 2.309699 +v 0.000000 4.500000 2.500000 +v 0.956708 4.500000 2.309699 +v 1.767767 4.500000 1.767768 +v 2.309699 4.500000 0.956709 +v 2.500000 4.500000 -0.000000 +v 2.309698 4.500000 -0.956709 +v 1.767766 4.500000 -1.767768 +v 0.956707 4.500000 -2.309699 +v 0.000000 5.000000 -2.500000 +v -0.956709 5.000000 -2.309699 +v -1.767767 5.000000 -1.767767 +v -2.309699 5.000000 -0.956709 +v -2.500000 5.000000 0.000000 +v -2.309699 5.000000 0.956709 +v -1.767767 5.000000 1.767767 +v -0.956709 5.000000 2.309699 +v 0.000000 5.000000 2.500000 +v 0.956708 5.000000 2.309699 +v 1.767767 5.000000 1.767768 +v 2.309699 5.000000 0.956709 +v 2.500000 5.000000 -0.000000 +v 2.309698 5.000000 -0.956709 +v 1.767766 5.000000 -1.767768 +v 0.956707 5.000000 -2.309699 +v 1.250000 2.562500 -2.562500 +v 1.250000 2.437500 -2.562500 +v 1.250000 2.562500 -7.437500 +v 1.250000 2.437500 -7.437500 +v 1.125000 2.562500 -7.437500 +v 1.125000 2.562500 -2.562500 +v 1.125000 2.437500 -2.562500 +v 1.125000 2.437500 -7.437500 +v 1.125000 2.437500 -3.437500 +v 1.125000 2.562500 -3.437500 +v 1.125000 2.562500 -2.437500 +v 1.125000 2.437500 -2.437500 +v 1.125000 2.437500 -3.562500 +v 1.125000 2.562500 -3.562500 +v 1.125000 2.437500 -7.562500 +v 1.125000 2.562500 -7.562500 +v 0.937500 2.562500 -2.562500 +v 0.937500 2.437500 -2.562500 +v 1.000000 2.437500 -7.437500 +v 1.000000 2.562500 -7.437500 +v 0.937500 2.562500 -2.437500 +v 0.937500 2.437500 -2.437500 +v 1.000000 2.437500 -7.562500 +v 1.000000 2.562500 -7.562500 +v 0.937500 2.562500 -3.562500 +v 0.937500 2.437500 -3.562500 +v 0.937500 2.562500 -3.437500 +v 0.937500 2.437500 -3.437500 +v 1.125000 2.437500 -4.437500 +v 1.125000 2.562500 -4.437500 +v 1.125000 2.437500 -4.562500 +v 1.125000 2.562500 -4.562500 +v 0.937500 2.562500 -4.562500 +v 0.937500 2.437500 -4.562500 +v 0.937500 2.562500 -4.437500 +v 0.937500 2.437500 -4.437500 +v 1.125000 2.437500 -5.437500 +v 1.125000 2.562500 -5.437500 +v 1.125000 2.437500 -5.562500 +v 1.125000 2.562500 -5.562500 +v 0.937500 2.562500 -5.562500 +v 0.937500 2.437500 -5.562500 +v 0.937500 2.562500 -5.437500 +v 0.937500 2.437500 -5.437500 +v -1.250000 2.437500 -2.562500 +v -1.250000 2.562500 -2.562500 +v -1.250000 2.437500 -7.437500 +v -1.250000 2.562500 -7.437500 +v -1.125000 2.437500 -7.437500 +v -1.125000 2.437500 -2.562500 +v -1.125000 2.562500 -2.562500 +v -1.125000 2.562500 -7.437500 +v -1.125000 2.562500 -3.437500 +v -1.125000 2.437500 -3.437500 +v -1.125000 2.437500 -2.437500 +v -1.125000 2.562500 -2.437500 +v -1.125000 2.562500 -3.562500 +v -1.125000 2.437500 -3.562500 +v -1.125000 2.562500 -7.562500 +v -1.125000 2.437500 -7.562500 +v -0.937500 2.437500 -2.562500 +v -0.937500 2.562500 -2.562500 +v -1.000000 2.562500 -7.437500 +v -1.000000 2.437500 -7.437500 +v -0.937500 2.437500 -2.437500 +v -0.937500 2.562500 -2.437500 +v -1.000000 2.562500 -7.562500 +v -1.000000 2.437500 -7.562500 +v -0.937500 2.437500 -3.562500 +v -0.937500 2.562500 -3.562500 +v -0.937500 2.437500 -3.437500 +v -0.937500 2.562500 -3.437500 +v -1.125000 2.562500 -4.437500 +v -1.125000 2.437500 -4.437500 +v -1.125000 2.562500 -4.562500 +v -1.125000 2.437500 -4.562500 +v -0.937500 2.437500 -4.562500 +v -0.937500 2.562500 -4.562500 +v -0.937500 2.437500 -4.437500 +v -0.937500 2.562500 -4.437500 +v -1.125000 2.562500 -5.437500 +v -1.125000 2.437500 -5.437500 +v -1.125000 2.562500 -5.562500 +v -1.125000 2.437500 -5.562500 +v -0.937500 2.437500 -5.562500 +v -0.937500 2.562500 -5.562500 +v -0.937500 2.437500 -5.437500 +v -0.937500 2.562500 -5.437500 +vt 0.218809 0.299422 +vt 0.037601 0.299422 +vt 0.037602 0.051455 +vt 0.000072 0.561403 +vt 0.128205 0.386064 +vt 0.256338 0.561404 +vt 0.282051 0.350877 +vt 0.500000 0.333333 +vt 0.500000 0.350877 +vt 0.500000 0.315789 +vt 0.282051 0.298246 +vt 0.500000 0.298246 +vt 0.282051 0.333333 +vt 0.500000 0.280702 +vt 0.282051 0.280702 +vt 0.282051 0.315789 +vt 0.269231 0.333333 +vt 0.512821 0.333333 +vt 0.512821 0.298246 +vt 0.512821 0.315789 +vt 0.269231 0.280702 +vt 0.525641 0.315789 +vt 0.269231 0.298246 +vt 0.256410 0.280702 +vt 0.269231 0.280702 +vt 0.512821 0.280702 +vt 0.500000 0.315789 +vt 0.282051 0.298246 +vt 0.500000 0.298246 +vt 0.282051 0.350877 +vt 0.500000 0.333333 +vt 0.500000 0.350877 +vt 0.512821 0.280702 +vt 0.525641 0.298246 +vt 0.269231 0.333333 +vt 0.256410 0.315789 +vt 0.269231 0.315789 +vt 0.525641 0.333333 +vt 0.512821 0.333333 +vt 0.269231 0.350877 +vt 0.256410 0.333333 +vt 0.512821 0.350877 +vt 0.525641 0.350877 +vt 0.256410 0.298246 +vt 0.282051 0.333333 +vt 0.500000 0.280702 +vt 0.282051 0.280702 +vt 0.282051 0.315789 +vt 0.269231 0.333333 +vt 0.512821 0.333333 +vt 0.512821 0.298246 +vt 0.512821 0.315789 +vt 0.269231 0.280702 +vt 0.525641 0.298246 +vt 0.525641 0.315789 +vt 0.269231 0.298246 +vt 0.256410 0.280702 +vt 0.269231 0.280702 +vt 0.512821 0.280702 +vt 0.512821 0.280702 +vt 0.269231 0.333333 +vt 0.256410 0.315789 +vt 0.269231 0.315789 +vt 0.525641 0.333333 +vt 0.512821 0.333333 +vt 0.256410 0.350877 +vt 0.256410 0.333333 +vt 0.525641 0.350877 +vt 0.512821 0.350877 +vt 0.256410 0.298246 +vt 0.282051 0.350877 +vt 0.500000 0.333333 +vt 0.500000 0.350877 +vt 0.500000 0.315789 +vt 0.282051 0.298246 +vt 0.500000 0.298246 +vt 0.282051 0.333333 +vt 0.500000 0.280702 +vt 0.282051 0.280702 +vt 0.282051 0.315789 +vt 0.269231 0.333333 +vt 0.512821 0.333333 +vt 0.512821 0.315789 +vt 0.269231 0.280702 +vt 0.512821 0.298246 +vt 0.525641 0.315789 +vt 0.269231 0.298246 +vt 0.256410 0.280702 +vt 0.269231 0.280702 +vt 0.512821 0.280702 +vt 0.500000 0.315789 +vt 0.282051 0.298246 +vt 0.500000 0.298246 +vt 0.282051 0.350877 +vt 0.500000 0.333333 +vt 0.500000 0.350877 +vt 0.512821 0.280702 +vt 0.525641 0.298246 +vt 0.269231 0.333333 +vt 0.256410 0.315789 +vt 0.269231 0.315789 +vt 0.525641 0.333333 +vt 0.512821 0.333333 +vt 0.269231 0.350877 +vt 0.256410 0.333333 +vt 0.512821 0.350877 +vt 0.525641 0.350877 +vt 0.256410 0.298246 +vt 0.282051 0.333333 +vt 0.500000 0.280702 +vt 0.282051 0.280702 +vt 0.282051 0.315789 +vt 0.269231 0.333333 +vt 0.512821 0.333333 +vt 0.512821 0.315789 +vt 0.269231 0.280702 +vt 0.525641 0.298246 +vt 0.525641 0.315789 +vt 0.269231 0.298246 +vt 0.256410 0.280702 +vt 0.269231 0.280702 +vt 0.512821 0.280702 +vt 0.512821 0.280702 +vt 0.512821 0.298246 +vt 0.269231 0.333333 +vt 0.256410 0.315789 +vt 0.269231 0.315789 +vt 0.525641 0.333333 +vt 0.512821 0.333333 +vt 0.256410 0.350877 +vt 0.256410 0.333333 +vt 0.525641 0.350877 +vt 0.512821 0.350877 +vt 0.256410 0.298246 +vt 0.387590 0.487157 +vt 0.387590 0.635650 +vt 0.279077 0.635650 +vt 0.410064 0.561404 +vt 0.333333 0.666404 +vt 0.256603 0.561404 +vt 0.410509 0.543860 +vt 0.461538 0.474030 +vt 0.512568 0.543860 +vt 0.425455 0.593237 +vt 0.425455 0.494482 +vt 0.497622 0.494482 +vt 0.512821 0.614035 +vt 0.525641 0.578947 +vt 0.525641 0.614035 +vt 0.525641 0.508772 +vt 0.564103 0.578947 +vt 0.525641 0.578947 +vt 0.525641 0.508772 +vt 0.564103 0.578947 +vt 0.512821 0.473684 +vt 0.525641 0.473684 +vt 0.512821 0.614035 +vt 0.525641 0.614035 +vt 0.512821 0.473684 +vt 0.525641 0.473684 +vt 0.512821 0.614035 +vt 0.525641 0.578947 +vt 0.525641 0.614035 +vt 0.525641 0.508772 +vt 0.564103 0.578947 +vt 0.525641 0.578947 +vt 0.525641 0.508772 +vt 0.564103 0.578947 +vt 0.512821 0.473684 +vt 0.525641 0.473684 +vt 0.512821 0.614035 +vt 0.525641 0.614035 +vt 0.512821 0.473684 +vt 0.525641 0.473684 +vt 0.032051 0.868421 +vt 0.025641 0.846491 +vt 0.032051 0.842105 +vt 0.032051 0.815789 +vt 0.025641 0.837719 +vt 0.025641 0.820175 +vt 0.032051 0.763158 +vt 0.025641 0.785088 +vt 0.025641 0.767544 +vt 0.032051 0.947368 +vt 0.025641 0.925439 +vt 0.032051 0.921053 +vt 0.032051 0.894737 +vt 0.025641 0.872807 +vt 0.025641 0.793860 +vt 0.032051 0.789474 +vt 0.025641 0.741228 +vt 0.032051 0.736842 +vt 0.025641 0.916667 +vt 0.025641 0.899123 +vt 0.333333 0.789452 +vt 0.314118 0.763158 +vt 0.333333 0.736863 +vt 0.717949 0.614035 +vt 0.615385 0.473684 +vt 0.717949 0.473684 +vt 0.615385 0.929825 +vt 0.717949 0.789474 +vt 0.717949 0.929825 +vt 0.512821 0.614035 +vt 0.615385 0.789474 +vt 0.512821 0.859649 +vt 0.820513 0.614035 +vt 0.615385 0.614035 +vt 0.410256 0.859649 +vt 0.410256 0.614035 +vt 0.903846 0.280702 +vt 0.878205 0.315789 +vt 0.878205 0.280702 +vt 0.903846 0.324561 +vt 0.884615 0.333333 +vt 0.878205 0.324561 +vt 0.903846 0.315789 +vt 0.903846 0.315789 +vt 0.878205 0.324561 +vt 0.878205 0.315789 +vt 0.903846 0.315789 +vt 0.878205 0.324561 +vt 0.878205 0.315789 +vt 0.903846 0.315789 +vt 0.878205 0.324561 +vt 0.878205 0.315789 +vt 0.897436 0.333333 +vt 0.884615 0.447368 +vt 0.884615 0.333333 +vt 0.903846 0.324561 +vt 0.884615 0.333333 +vt 0.903846 0.324561 +vt 0.903846 0.324561 +vt 0.884615 0.333333 +vt 0.897436 0.333333 +vt 0.884615 0.447368 +vt 0.897436 0.333333 +vt 0.884615 0.447368 +vt 0.897436 0.333333 +vt 0.884615 0.447368 +vt 0.871795 0.877193 +vt 0.948718 0.771930 +vt 0.948718 0.877193 +vt 0.948718 0.701754 +vt 0.871795 0.771930 +vt 0.871795 0.701754 +vt 0.871795 0.947368 +vt 0.948718 0.947368 +vt 0.820513 0.771930 +vt 0.820513 0.877193 +vt 1.000000 0.877193 +vt 1.000000 0.771930 +vt 0.442308 0.859649 +vt 0.339744 0.894737 +vt 0.339744 0.859649 +vt 0.339744 0.964912 +vt 0.442308 1.000000 +vt 0.339744 1.000000 +vt 0.442308 0.894737 +vt 0.467949 0.894737 +vt 0.442308 0.964912 +vt 0.314103 0.894737 +vt 0.314103 1.000000 +vt 0.339744 0.894737 +vt 0.442308 0.859649 +vt 0.442308 0.894737 +vt 0.442308 1.000000 +vt 0.339744 0.964912 +vt 0.442308 0.964912 +vt 0.314103 0.894737 +vt 0.314103 1.000000 +vt 0.467949 0.894737 +vt 0.541667 0.298246 +vt 0.791667 0.307018 +vt 0.541667 0.307018 +vt 0.791667 0.280702 +vt 0.541667 0.289474 +vt 0.541667 0.280702 +vt 0.791667 0.315789 +vt 0.798077 0.315789 +vt 0.535256 0.289474 +vt 0.525641 0.280702 +vt 0.535256 0.280702 +vt 0.791667 0.289474 +vt 0.791667 0.298246 +vt 0.541667 0.315789 +vt 0.798077 0.307018 +vt 0.535256 0.315789 +vt 0.525641 0.307018 +vt 0.535256 0.307018 +vt 0.535256 0.315789 +vt 0.535256 0.289474 +vt 0.535256 0.289474 +vt 0.525641 0.280702 +vt 0.535256 0.280702 +vt 0.798077 0.280702 +vt 0.804487 0.289474 +vt 0.798077 0.289474 +vt 0.535256 0.298246 +vt 0.525641 0.289474 +vt 0.798077 0.289474 +vt 0.535256 0.298246 +vt 0.525641 0.289474 +vt 0.804487 0.315789 +vt 0.798077 0.315789 +vt 0.798077 0.298246 +vt 0.804487 0.307018 +vt 0.535256 0.315789 +vt 0.525641 0.307018 +vt 0.535256 0.307018 +vt 0.804487 0.298246 +vt 0.525641 0.298246 +vt 0.525641 0.298246 +vt 0.535256 0.315789 +vt 0.525641 0.307018 +vt 0.535256 0.307018 +vt 0.535256 0.289474 +vt 0.525641 0.280702 +vt 0.535256 0.280702 +vt 0.535256 0.298246 +vt 0.525641 0.289474 +vt 0.525641 0.298246 +vt 0.535256 0.315789 +vt 0.525641 0.307018 +vt 0.535256 0.307018 +vt 0.535256 0.289474 +vt 0.525641 0.280702 +vt 0.535256 0.280702 +vt 0.535256 0.298246 +vt 0.525641 0.289474 +vt 0.525641 0.298246 +vt 0.903846 0.280702 +vt 0.878205 0.315789 +vt 0.878205 0.280702 +vt 0.903846 0.324561 +vt 0.884615 0.333333 +vt 0.878205 0.324561 +vt 0.903846 0.315789 +vt 0.903846 0.315789 +vt 0.878205 0.324561 +vt 0.878205 0.315789 +vt 0.903846 0.315789 +vt 0.878205 0.324561 +vt 0.878205 0.315789 +vt 0.903846 0.315789 +vt 0.878205 0.324561 +vt 0.878205 0.315789 +vt 0.897436 0.333333 +vt 0.884615 0.447368 +vt 0.884615 0.333333 +vt 0.903846 0.324561 +vt 0.884615 0.333333 +vt 0.903846 0.324561 +vt 0.903846 0.324561 +vt 0.884615 0.333333 +vt 0.897436 0.333333 +vt 0.884615 0.447368 +vt 0.897436 0.333333 +vt 0.884615 0.447368 +vt 0.897436 0.333333 +vt 0.884615 0.447368 +vt 0.218809 0.299422 +vt 0.037601 0.299422 +vt 0.037602 0.051455 +vt 0.000072 0.561403 +vt 0.128205 0.386064 +vt 0.256338 0.561404 +vt 0.541667 0.298246 +vt 0.791667 0.307018 +vt 0.541667 0.307018 +vt 0.791667 0.280702 +vt 0.541667 0.289474 +vt 0.541667 0.280702 +vt 0.791667 0.315789 +vt 0.798077 0.315789 +vt 0.535256 0.289474 +vt 0.525641 0.280702 +vt 0.535256 0.280702 +vt 0.791667 0.289474 +vt 0.791667 0.298246 +vt 0.541667 0.315789 +vt 0.798077 0.307018 +vt 0.535256 0.315789 +vt 0.525641 0.307018 +vt 0.535256 0.307018 +vt 0.535256 0.315789 +vt 0.535256 0.289474 +vt 0.535256 0.289474 +vt 0.525641 0.280702 +vt 0.535256 0.280702 +vt 0.798077 0.280702 +vt 0.804487 0.289474 +vt 0.798077 0.289474 +vt 0.535256 0.298246 +vt 0.525641 0.289474 +vt 0.798077 0.289474 +vt 0.535256 0.298246 +vt 0.525641 0.289474 +vt 0.804487 0.315789 +vt 0.798077 0.315789 +vt 0.798077 0.298246 +vt 0.804487 0.307018 +vt 0.535256 0.315789 +vt 0.525641 0.307018 +vt 0.535256 0.307018 +vt 0.804487 0.298246 +vt 0.525641 0.298246 +vt 0.525641 0.298246 +vt 0.535256 0.315789 +vt 0.525641 0.307018 +vt 0.535256 0.307018 +vt 0.535256 0.289474 +vt 0.525641 0.280702 +vt 0.535256 0.280702 +vt 0.535256 0.298246 +vt 0.525641 0.289474 +vt 0.525641 0.298246 +vt 0.535256 0.315789 +vt 0.525641 0.307018 +vt 0.535256 0.307018 +vt 0.535256 0.289474 +vt 0.525641 0.280702 +vt 0.535256 0.280702 +vt 0.535256 0.298246 +vt 0.525641 0.289474 +vt 0.525641 0.298246 +vt 0.541667 0.298246 +vt 0.791667 0.307018 +vt 0.541667 0.307018 +vt 0.791667 0.280702 +vt 0.541667 0.289474 +vt 0.541667 0.280702 +vt 0.791667 0.315789 +vt 0.798077 0.315789 +vt 0.535256 0.289474 +vt 0.525641 0.280702 +vt 0.535256 0.280702 +vt 0.791667 0.289474 +vt 0.791667 0.298246 +vt 0.541667 0.315789 +vt 0.798077 0.307018 +vt 0.535256 0.315789 +vt 0.525641 0.307018 +vt 0.535256 0.307018 +vt 0.535256 0.315789 +vt 0.535256 0.289474 +vt 0.535256 0.289474 +vt 0.525641 0.280702 +vt 0.535256 0.280702 +vt 0.798077 0.280702 +vt 0.804487 0.289474 +vt 0.798077 0.289474 +vt 0.535256 0.298246 +vt 0.525641 0.289474 +vt 0.798077 0.289474 +vt 0.535256 0.298246 +vt 0.525641 0.289474 +vt 0.804487 0.315789 +vt 0.798077 0.315789 +vt 0.798077 0.298246 +vt 0.804487 0.307018 +vt 0.535256 0.315789 +vt 0.525641 0.307018 +vt 0.535256 0.307018 +vt 0.804487 0.298246 +vt 0.525641 0.298246 +vt 0.525641 0.298246 +vt 0.535256 0.315789 +vt 0.525641 0.307018 +vt 0.535256 0.307018 +vt 0.535256 0.289474 +vt 0.525641 0.280702 +vt 0.535256 0.280702 +vt 0.535256 0.298246 +vt 0.525641 0.289474 +vt 0.525641 0.298246 +vt 0.535256 0.315789 +vt 0.525641 0.307018 +vt 0.535256 0.307018 +vt 0.535256 0.289474 +vt 0.525641 0.280702 +vt 0.535256 0.280702 +vt 0.535256 0.298246 +vt 0.525641 0.289474 +vt 0.525641 0.298246 +vt 0.218809 0.051455 +vt 0.246584 0.108339 +vt 0.256338 0.175439 +vt 0.246584 0.242538 +vt 0.177239 0.337431 +vt 0.128205 0.350778 +vt 0.079171 0.337431 +vt 0.009826 0.242538 +vt 0.000072 0.175438 +vt 0.009826 0.108339 +vt 0.079171 0.013446 +vt 0.128205 0.000099 +vt 0.177239 0.013446 +vt 0.246584 0.628503 +vt 0.218809 0.685387 +vt 0.177240 0.723396 +vt 0.128205 0.736743 +vt 0.079171 0.723396 +vt 0.037602 0.685387 +vt 0.009826 0.628503 +vt 0.009826 0.494304 +vt 0.037602 0.437420 +vt 0.079171 0.399411 +vt 0.177239 0.399411 +vt 0.218809 0.437420 +vt 0.246585 0.494304 +vt 0.525641 0.280702 +vt 0.256410 0.350877 +vt 0.525641 0.280702 +vt 0.269231 0.350877 +vt 0.525641 0.280702 +vt 0.256410 0.350877 +vt 0.525641 0.280702 +vt 0.269231 0.350877 +vt 0.404223 0.521222 +vt 0.410064 0.561404 +vt 0.404223 0.601585 +vt 0.362697 0.658411 +vt 0.333333 0.666404 +vt 0.303970 0.658411 +vt 0.262443 0.601585 +vt 0.256603 0.561404 +vt 0.262443 0.521222 +vt 0.279077 0.487157 +vt 0.303970 0.464396 +vt 0.333333 0.456403 +vt 0.362697 0.464396 +vt 0.404223 0.601585 +vt 0.387590 0.635650 +vt 0.362697 0.658411 +vt 0.303970 0.658411 +vt 0.279077 0.635650 +vt 0.262443 0.601585 +vt 0.262443 0.521222 +vt 0.279077 0.487157 +vt 0.303970 0.464396 +vt 0.333333 0.456404 +vt 0.362697 0.464396 +vt 0.387590 0.487158 +vt 0.404223 0.521222 +vt 0.508684 0.570583 +vt 0.497622 0.593237 +vt 0.481067 0.608374 +vt 0.461538 0.613690 +vt 0.442010 0.608374 +vt 0.425455 0.593237 +vt 0.414393 0.570582 +vt 0.414393 0.517137 +vt 0.425455 0.494482 +vt 0.442010 0.479345 +vt 0.481067 0.479345 +vt 0.497622 0.494482 +vt 0.508684 0.517137 +vt 0.508684 0.517137 +vt 0.512568 0.543860 +vt 0.508684 0.570583 +vt 0.497622 0.593237 +vt 0.481067 0.608374 +vt 0.461538 0.613690 +vt 0.442010 0.608374 +vt 0.414393 0.570583 +vt 0.410509 0.543860 +vt 0.414393 0.517137 +vt 0.442010 0.479345 +vt 0.461538 0.474030 +vt 0.481067 0.479345 +vt 0.564103 0.508772 +vt 0.564103 0.508772 +vt 0.564103 0.508772 +vt 0.564103 0.508772 +vt 0.025641 0.864035 +vt 0.025641 0.942982 +vt 0.025641 0.890351 +vt 0.025641 0.811404 +vt 0.025641 0.758772 +vt 0.319746 0.781751 +vt 0.319746 0.744565 +vt 0.346920 0.744565 +vt 0.352549 0.763158 +vt 0.346921 0.781751 +vt 0.820513 0.859649 +vt 0.897436 0.447368 +vt 0.897436 0.447368 +vt 0.897436 0.447368 +vt 0.897436 0.447368 +vt 0.467949 1.000000 +vt 0.339744 0.859649 +vt 0.339744 1.000000 +vt 0.467949 1.000000 +vt 0.525641 0.315789 +vt 0.804487 0.280702 +vt 0.525641 0.315789 +vt 0.525641 0.315789 +vt 0.525641 0.315789 +vt 0.897436 0.447368 +vt 0.897436 0.447368 +vt 0.897436 0.447368 +vt 0.897436 0.447368 +vt 0.218809 0.051455 +vt 0.246584 0.108339 +vt 0.256338 0.175439 +vt 0.246584 0.242538 +vt 0.177239 0.337431 +vt 0.128205 0.350778 +vt 0.079171 0.337431 +vt 0.009826 0.242538 +vt 0.000072 0.175438 +vt 0.009826 0.108339 +vt 0.079171 0.013446 +vt 0.128205 0.000099 +vt 0.177239 0.013446 +vt 0.246584 0.628503 +vt 0.218809 0.685387 +vt 0.177240 0.723396 +vt 0.128205 0.736743 +vt 0.079171 0.723396 +vt 0.037602 0.685387 +vt 0.009826 0.628503 +vt 0.009826 0.494304 +vt 0.037602 0.437420 +vt 0.079171 0.399411 +vt 0.177239 0.399411 +vt 0.218809 0.437420 +vt 0.246585 0.494304 +vt 0.525641 0.315789 +vt 0.804487 0.280702 +vt 0.525641 0.315789 +vt 0.525641 0.315789 +vt 0.525641 0.315789 +vt 0.525641 0.315789 +vt 0.804487 0.280702 +vt 0.525641 0.315789 +vt 0.525641 0.315789 +vt 0.525641 0.315789 +vt 0.512821 0.350877 +vt 0.461538 0.385965 +vt 0.461538 0.350877 +vt 0.153846 0.350877 +vt 0.102564 0.385965 +vt 0.102564 0.350877 +vt 0.564103 0.350877 +vt 0.512821 0.385965 +vt 0.205128 0.350877 +vt 0.153846 0.385965 +vt 0.666667 0.350877 +vt 0.615385 0.385965 +vt 0.615385 0.350877 +vt 0.564103 0.385965 +vt 0.256410 0.350877 +vt 0.205128 0.385965 +vt 0.717949 0.350877 +vt 0.666667 0.385965 +vt 0.307692 0.350877 +vt 0.256410 0.385965 +vt 0.769231 0.350877 +vt 0.717949 0.385965 +vt 0.358974 0.350877 +vt 0.307692 0.385965 +vt 0.820513 0.350877 +vt 0.769231 0.385965 +vt 0.410256 0.350877 +vt 0.358974 0.385965 +vt 0.051282 0.350877 +vt 0.000000 0.385965 +vt 0.000000 0.350877 +vt 0.410256 0.385965 +vt 0.051282 0.385965 +vt 0.705128 0.000000 +vt 0.660256 0.280702 +vt 0.660256 0.000000 +vt 0.391026 0.000000 +vt 0.346154 0.280702 +vt 0.346154 0.000000 +vt 0.750000 0.000000 +vt 0.705128 0.280702 +vt 0.435897 0.000000 +vt 0.391026 0.280702 +vt 0.839744 -0.000000 +vt 0.794872 0.280702 +vt 0.794872 0.000000 +vt 0.750000 0.280702 +vt 0.480769 0.000000 +vt 0.435897 0.280702 +vt 0.884615 -0.000000 +vt 0.839744 0.280702 +vt 0.525641 0.000000 +vt 0.480769 0.280702 +vt 0.929487 -0.000000 +vt 0.884615 0.280702 +vt 0.570513 0.000000 +vt 0.525641 0.280702 +vt 0.974359 -0.000000 +vt 0.929487 0.280702 +vt 0.615385 0.000000 +vt 0.570513 0.280702 +vt 0.301282 0.000000 +vt 0.256410 0.280702 +vt 0.256410 0.000000 +vt 0.615385 0.280702 +vt 0.301282 0.280702 +vt 0.544872 0.385965 +vt 0.516026 0.456140 +vt 0.516026 0.385965 +vt 0.342949 0.385965 +vt 0.314103 0.456140 +vt 0.314103 0.385965 +vt 0.573718 0.385965 +vt 0.544872 0.456140 +vt 0.371795 0.385965 +vt 0.342949 0.456140 +vt 0.631410 0.385965 +vt 0.602564 0.456140 +vt 0.602564 0.385965 +vt 0.573718 0.456140 +vt 0.400641 0.385965 +vt 0.371795 0.456140 +vt 0.660256 0.385965 +vt 0.631410 0.456140 +vt 0.429487 0.385965 +vt 0.400641 0.456140 +vt 0.689103 0.385965 +vt 0.660256 0.456140 +vt 0.458333 0.385965 +vt 0.429487 0.456140 +vt 0.717949 0.385965 +vt 0.689103 0.456140 +vt 0.487179 0.385965 +vt 0.458333 0.456140 +vt 0.285256 0.385965 +vt 0.256410 0.456140 +vt 0.256410 0.385965 +vt 0.487179 0.456140 +vt 0.285256 0.456140 +vt 0.429487 0.456140 +vt 0.458333 0.385965 +vt 0.458333 0.456140 +vt 0.631410 0.456140 +vt 0.660256 0.385965 +vt 0.660256 0.456140 +vt 0.400641 0.456140 +vt 0.429487 0.385965 +vt 0.602564 0.456140 +vt 0.631410 0.385965 +vt 0.342949 0.456140 +vt 0.371795 0.385965 +vt 0.371795 0.456140 +vt 0.400641 0.385965 +vt 0.573718 0.456140 +vt 0.602564 0.385965 +vt 0.314103 0.456140 +vt 0.342949 0.385965 +vt 0.544872 0.456140 +vt 0.573718 0.385965 +vt 0.285256 0.456140 +vt 0.314103 0.385965 +vt 0.516026 0.456140 +vt 0.544872 0.385965 +vt 0.256410 0.456140 +vt 0.285256 0.385965 +vt 0.487179 0.456140 +vt 0.516026 0.385965 +vt 0.689103 0.456140 +vt 0.717949 0.385965 +vt 0.717949 0.456140 +vt 0.487179 0.385965 +vt 0.689103 0.385965 +vt 0.544872 0.456140 +vt 0.525641 0.473684 +vt 0.525641 0.456140 +vt 0.717949 0.456140 +vt 0.698718 0.473684 +vt 0.698718 0.456140 +vt 0.564103 0.456140 +vt 0.544872 0.473684 +vt 0.429487 0.456140 +vt 0.410256 0.473684 +vt 0.410256 0.456140 +vt 0.583333 0.456140 +vt 0.564103 0.473684 +vt 0.448718 0.456140 +vt 0.429487 0.473684 +vt 0.602564 0.456140 +vt 0.583333 0.473684 +vt 0.467949 0.456140 +vt 0.448718 0.473684 +vt 0.621795 0.456140 +vt 0.602564 0.473684 +vt 0.487179 0.456140 +vt 0.467949 0.473684 +vt 0.660256 0.456140 +vt 0.641026 0.473684 +vt 0.641026 0.456140 +vt 0.621795 0.473684 +vt 0.506410 0.456140 +vt 0.487179 0.473684 +vt 0.679487 0.456140 +vt 0.660256 0.473684 +vt 0.506410 0.473684 +vt 0.679487 0.473684 +vt 0.583333 0.473684 +vt 0.602564 0.456140 +vt 0.602564 0.473684 +vt 0.410256 0.473684 +vt 0.429487 0.456140 +vt 0.429487 0.473684 +vt 0.564103 0.473684 +vt 0.583333 0.456140 +vt 0.698718 0.473684 +vt 0.717949 0.456140 +vt 0.717949 0.473684 +vt 0.544872 0.473684 +vt 0.564103 0.456140 +vt 0.679487 0.473684 +vt 0.698718 0.456140 +vt 0.525641 0.473684 +vt 0.544872 0.456140 +vt 0.660256 0.473684 +vt 0.679487 0.456140 +vt 0.506410 0.473684 +vt 0.525641 0.456140 +vt 0.641026 0.473684 +vt 0.660256 0.456140 +vt 0.467949 0.473684 +vt 0.487179 0.456140 +vt 0.487179 0.473684 +vt 0.506410 0.456140 +vt 0.621795 0.473684 +vt 0.641026 0.456140 +vt 0.448718 0.473684 +vt 0.467949 0.456140 +vt 0.621795 0.456140 +vt 0.448718 0.456140 +vt 0.314103 0.842105 +vt 0.314103 0.815789 +vt 0.314103 0.763158 +vt 0.314103 0.921053 +vt 0.314103 0.868421 +vt 0.314103 0.789474 +vt 0.314103 0.736842 +vt 0.314103 0.894737 +vt 0.000000 0.820175 +vt 0.000000 0.767544 +vt 0.000000 0.925439 +vt 0.000000 0.872807 +vt 0.000000 0.793860 +vt -0.000000 0.741228 +vt 0.000000 0.899123 +vt 0.000000 0.846491 +vt 0.993590 0.451754 +vt 0.974359 0.482456 +vt 0.974359 0.447368 +vt 0.993590 0.399123 +vt 0.974359 0.429825 +vt 0.974359 0.394737 +vt 0.974359 0.342105 +vt 0.993590 0.372807 +vt 0.974359 0.377193 +vt 0.993590 0.293860 +vt 0.974359 0.324561 +vt 0.974359 0.289474 +vt 0.993590 0.662281 +vt 0.974359 0.692982 +vt 0.974359 0.657895 +vt 0.974359 0.605263 +vt 0.993590 0.635965 +vt 0.974359 0.640351 +vt 0.993590 0.557018 +vt 0.974359 0.587719 +vt 0.974359 0.552632 +vt 0.974359 0.500000 +vt 0.993590 0.530702 +vt 0.974359 0.535088 +vt 0.955128 0.543860 +vt 0.942308 0.491228 +vt 0.955128 0.491228 +vt 0.955128 0.596491 +vt 0.942308 0.543860 +vt 0.955128 0.649123 +vt 0.942308 0.596491 +vt 0.955128 0.701754 +vt 0.942308 0.649123 +vt 0.955128 0.333333 +vt 0.942308 0.280702 +vt 0.955128 0.280702 +vt 0.955128 0.385965 +vt 0.942308 0.333333 +vt 0.955128 0.438596 +vt 0.942308 0.385965 +vt 0.942308 0.438596 +vt 0.923077 0.587719 +vt 0.903846 0.557018 +vt 0.923077 0.552632 +vt 0.923077 0.605263 +vt 0.903846 0.635965 +vt 0.903846 0.609649 +vt 0.923077 0.692982 +vt 0.903846 0.662281 +vt 0.923077 0.657895 +vt 0.923077 0.289474 +vt 0.903846 0.320175 +vt 0.903846 0.293860 +vt 0.923077 0.342105 +vt 0.903846 0.372807 +vt 0.903846 0.346491 +vt 0.923077 0.429825 +vt 0.903846 0.399123 +vt 0.923077 0.394737 +vt 0.923077 0.447368 +vt 0.903846 0.478070 +vt 0.903846 0.451754 +vt 0.923077 0.500000 +vt 0.903846 0.530702 +vt 0.903846 0.504386 +vt 0.923077 0.377193 +vt 0.923077 0.324561 +vt 0.942308 0.701754 +vt 0.923077 0.640351 +vt 0.974359 0.447368 +vt 0.993590 0.478070 +vt 0.974359 0.482456 +vt 0.993590 0.399123 +vt 0.974359 0.429825 +vt 0.974359 0.394737 +vt 0.974359 0.342105 +vt 0.993590 0.372807 +vt 0.974359 0.377193 +vt 0.974359 0.289474 +vt 0.993590 0.320175 +vt 0.974359 0.324561 +vt 0.993590 0.662281 +vt 0.974359 0.692982 +vt 0.974359 0.657895 +vt 0.974359 0.605263 +vt 0.993590 0.635965 +vt 0.974359 0.640351 +vt 0.993590 0.557018 +vt 0.974359 0.587719 +vt 0.974359 0.552632 +vt 0.974359 0.500000 +vt 0.993590 0.530702 +vt 0.974359 0.535088 +vt 0.955128 0.543860 +vt 0.942308 0.491228 +vt 0.955128 0.491228 +vt 0.955128 0.596491 +vt 0.942308 0.543860 +vt 0.955128 0.649123 +vt 0.942308 0.596491 +vt 0.955128 0.701754 +vt 0.942308 0.649123 +vt 0.955128 0.333333 +vt 0.942308 0.280702 +vt 0.955128 0.280702 +vt 0.955128 0.385965 +vt 0.942308 0.333333 +vt 0.955128 0.438596 +vt 0.942308 0.385965 +vt 0.942308 0.438596 +vt 0.923077 0.587719 +vt 0.903846 0.557018 +vt 0.923077 0.552632 +vt 0.923077 0.605263 +vt 0.903846 0.635965 +vt 0.903846 0.609649 +vt 0.923077 0.692982 +vt 0.903846 0.662281 +vt 0.923077 0.657895 +vt 0.923077 0.289474 +vt 0.903846 0.320175 +vt 0.903846 0.293860 +vt 0.923077 0.342105 +vt 0.903846 0.372807 +vt 0.903846 0.346491 +vt 0.923077 0.429825 +vt 0.903846 0.399123 +vt 0.923077 0.394737 +vt 0.923077 0.482456 +vt 0.903846 0.451754 +vt 0.923077 0.447368 +vt 0.923077 0.500000 +vt 0.903846 0.530702 +vt 0.903846 0.504386 +vt 0.923077 0.324561 +vt 0.993590 0.451754 +vt 0.974359 0.482456 +vt 0.974359 0.447368 +vt 0.993590 0.399123 +vt 0.974359 0.429825 +vt 0.974359 0.394737 +vt 0.974359 0.342105 +vt 0.993590 0.372807 +vt 0.974359 0.377193 +vt 0.993590 0.293860 +vt 0.974359 0.324561 +vt 0.974359 0.289474 +vt 0.993590 0.662281 +vt 0.974359 0.692982 +vt 0.974359 0.657895 +vt 0.974359 0.605263 +vt 0.993590 0.635965 +vt 0.974359 0.640351 +vt 0.993590 0.557018 +vt 0.974359 0.587719 +vt 0.974359 0.552632 +vt 0.974359 0.500000 +vt 0.993590 0.530702 +vt 0.974359 0.535088 +vt 0.955128 0.543860 +vt 0.942308 0.491228 +vt 0.955128 0.491228 +vt 0.955128 0.596491 +vt 0.942308 0.543860 +vt 0.955128 0.649123 +vt 0.942308 0.596491 +vt 0.955128 0.701754 +vt 0.942308 0.649123 +vt 0.955128 0.333333 +vt 0.942308 0.280702 +vt 0.955128 0.280702 +vt 0.955128 0.385965 +vt 0.942308 0.333333 +vt 0.955128 0.438596 +vt 0.942308 0.385965 +vt 0.942308 0.438596 +vt 0.923077 0.587719 +vt 0.903846 0.557018 +vt 0.923077 0.552632 +vt 0.923077 0.605263 +vt 0.903846 0.635965 +vt 0.903846 0.609649 +vt 0.923077 0.692982 +vt 0.903846 0.662281 +vt 0.923077 0.657895 +vt 0.923077 0.324561 +vt 0.903846 0.293860 +vt 0.923077 0.289474 +vt 0.923077 0.342105 +vt 0.903846 0.372807 +vt 0.903846 0.346491 +vt 0.923077 0.429825 +vt 0.903846 0.399123 +vt 0.923077 0.394737 +vt 0.923077 0.447368 +vt 0.903846 0.478070 +vt 0.903846 0.451754 +vt 0.923077 0.500000 +vt 0.903846 0.530702 +vt 0.903846 0.504386 +vt 0.923077 0.377193 +vt 0.923077 0.482456 +vt 0.974359 0.447368 +vt 0.993590 0.478070 +vt 0.974359 0.482456 +vt 0.993590 0.399123 +vt 0.974359 0.429825 +vt 0.974359 0.394737 +vt 0.974359 0.342105 +vt 0.993590 0.372807 +vt 0.974359 0.377193 +vt 0.974359 0.289474 +vt 0.993590 0.320175 +vt 0.974359 0.324561 +vt 0.993590 0.662281 +vt 0.974359 0.692982 +vt 0.974359 0.657895 +vt 0.974359 0.605263 +vt 0.993590 0.635965 +vt 0.974359 0.640351 +vt 0.993590 0.557018 +vt 0.974359 0.587719 +vt 0.974359 0.552632 +vt 0.993590 0.504386 +vt 0.974359 0.535088 +vt 0.974359 0.500000 +vt 0.955128 0.543860 +vt 0.942308 0.491228 +vt 0.955128 0.491228 +vt 0.955128 0.596491 +vt 0.942308 0.543860 +vt 0.955128 0.649123 +vt 0.942308 0.596491 +vt 0.955128 0.701754 +vt 0.942308 0.649123 +vt 0.955128 0.333333 +vt 0.942308 0.280702 +vt 0.955128 0.280702 +vt 0.955128 0.385965 +vt 0.942308 0.333333 +vt 0.955128 0.438596 +vt 0.942308 0.385965 +vt 0.942308 0.438596 +vt 0.923077 0.587719 +vt 0.903846 0.557018 +vt 0.923077 0.552632 +vt 0.923077 0.640351 +vt 0.903846 0.609649 +vt 0.923077 0.605263 +vt 0.923077 0.692982 +vt 0.903846 0.662281 +vt 0.923077 0.657895 +vt 0.923077 0.289474 +vt 0.903846 0.320175 +vt 0.903846 0.293860 +vt 0.923077 0.342105 +vt 0.903846 0.372807 +vt 0.903846 0.346491 +vt 0.923077 0.429825 +vt 0.903846 0.399123 +vt 0.923077 0.394737 +vt 0.923077 0.447368 +vt 0.903846 0.478070 +vt 0.903846 0.451754 +vt 0.923077 0.500000 +vt 0.903846 0.530702 +vt 0.903846 0.504386 +vt 0.923077 0.324561 +vt 0.923077 0.482456 +vt 0.948718 0.543860 +vt 0.942308 0.491228 +vt 0.948718 0.491228 +vt 0.948718 0.596491 +vt 0.942308 0.543860 +vt 0.948718 0.649123 +vt 0.942308 0.596491 +vt 0.948718 0.701754 +vt 0.942308 0.649123 +vt 0.948718 0.333333 +vt 0.942308 0.280702 +vt 0.948718 0.280702 +vt 0.948718 0.385965 +vt 0.942308 0.333333 +vt 0.948718 0.438596 +vt 0.942308 0.385965 +vt 0.942308 0.438596 +vt 0.923077 0.587719 +vt 0.903846 0.557018 +vt 0.923077 0.552632 +vt 0.923077 0.605263 +vt 0.903846 0.635965 +vt 0.903846 0.609649 +vt 0.923077 0.692982 +vt 0.903846 0.662281 +vt 0.923077 0.657895 +vt 0.923077 0.289474 +vt 0.903846 0.320175 +vt 0.903846 0.293860 +vt 0.923077 0.342105 +vt 0.903846 0.372807 +vt 0.903846 0.346491 +vt 0.923077 0.429825 +vt 0.903846 0.399123 +vt 0.923077 0.394737 +vt 0.923077 0.447368 +vt 0.903846 0.478070 +vt 0.903846 0.451754 +vt 0.923077 0.500000 +vt 0.903846 0.530702 +vt 0.903846 0.504386 +vt 0.923077 0.377193 +vt 0.923077 0.640351 +vt 0.923077 0.482456 +vt 0.512821 0.350877 +vt 0.461538 0.385965 +vt 0.461538 0.350877 +vt 0.153846 0.350877 +vt 0.102564 0.385965 +vt 0.102564 0.350877 +vt 0.564103 0.350877 +vt 0.512821 0.385965 +vt 0.205128 0.350877 +vt 0.153846 0.385965 +vt 0.666667 0.350877 +vt 0.615385 0.385965 +vt 0.615385 0.350877 +vt 0.564103 0.385965 +vt 0.256410 0.350877 +vt 0.205128 0.385965 +vt 0.717949 0.350877 +vt 0.666667 0.385965 +vt 0.307692 0.350877 +vt 0.256410 0.385965 +vt 0.769231 0.350877 +vt 0.717949 0.385965 +vt 0.358974 0.350877 +vt 0.307692 0.385965 +vt 0.820513 0.350877 +vt 0.769231 0.385965 +vt 0.410256 0.350877 +vt 0.358974 0.385965 +vt 0.051282 0.350877 +vt 0.000000 0.385965 +vt 0.000000 0.350877 +vt 0.410256 0.385965 +vt 0.051282 0.385965 +vt 0.820513 0.385965 +vt 0.974359 0.280702 +vt 0.717949 0.456140 +vt 0.256410 0.385965 +vt 0.717949 0.473684 +vt 0.410256 0.456140 +vt 0.314103 0.947368 +vt 0.000000 0.837719 +vt 0.000000 0.785088 +vt 0.000000 0.942982 +vt 0.000000 0.890351 +vt 0.000000 0.811404 +vt 0.000000 0.758772 +vt 0.000000 0.916667 +vt 0.000000 0.864035 +vt 0.993590 0.478070 +vt 0.993590 0.425439 +vt 0.993590 0.346491 +vt 0.993590 0.320175 +vt 0.993590 0.688596 +vt 0.993590 0.609649 +vt 0.993590 0.583333 +vt 0.993590 0.504386 +vt 0.903846 0.583333 +vt 0.903846 0.688596 +vt 0.903846 0.425439 +vt 0.923077 0.482456 +vt 0.923077 0.535088 +vt 0.993590 0.451754 +vt 0.993590 0.425439 +vt 0.993590 0.346491 +vt 0.993590 0.293860 +vt 0.993590 0.688596 +vt 0.993590 0.609649 +vt 0.993590 0.583333 +vt 0.993590 0.504386 +vt 0.942308 0.701754 +vt 0.903846 0.583333 +vt 0.923077 0.640351 +vt 0.903846 0.688596 +vt 0.923077 0.377193 +vt 0.903846 0.425439 +vt 0.903846 0.478070 +vt 0.923077 0.535088 +vt 0.993590 0.478070 +vt 0.993590 0.425439 +vt 0.993590 0.346491 +vt 0.993590 0.320175 +vt 0.993590 0.688596 +vt 0.993590 0.609649 +vt 0.993590 0.583333 +vt 0.993590 0.504386 +vt 0.942308 0.701754 +vt 0.903846 0.583333 +vt 0.923077 0.640351 +vt 0.903846 0.688596 +vt 0.903846 0.320175 +vt 0.903846 0.425439 +vt 0.923077 0.535088 +vt 0.993590 0.451754 +vt 0.993590 0.425439 +vt 0.993590 0.346491 +vt 0.993590 0.293860 +vt 0.993590 0.688596 +vt 0.993590 0.609649 +vt 0.993590 0.583333 +vt 0.993590 0.530702 +vt 0.942308 0.701754 +vt 0.903846 0.583333 +vt 0.903846 0.635965 +vt 0.903846 0.688596 +vt 0.923077 0.377193 +vt 0.903846 0.425439 +vt 0.923077 0.535088 +vt 0.942308 0.701754 +vt 0.903846 0.583333 +vt 0.903846 0.688596 +vt 0.923077 0.324561 +vt 0.903846 0.425439 +vt 0.923077 0.535088 +vt 0.820513 0.385965 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 0.7071 +vn 0.5000 -0.7071 0.5000 +vn 0.5000 0.7071 0.5000 +vn 0.5000 -0.7071 -0.5000 +vn 0.5000 0.7071 -0.5000 +vn -0.5000 -0.7071 -0.5000 +vn -0.5000 0.7071 -0.5000 +vn -0.5000 -0.7071 0.5000 +vn -0.5000 0.7071 0.5000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.8944 -0.4472 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.7071 0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 0.7071 0.7071 +vn 0.9239 0.0000 -0.3827 +vn -0.3827 0.0000 0.9239 +vn 0.3827 0.0000 -0.9239 +vn -0.3827 0.0000 -0.9239 +vn 0.3827 0.0000 0.9239 +vn -0.9239 0.0000 -0.3827 +vn 0.9239 0.0000 0.3827 +vn -0.9239 0.0000 0.3827 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn -0.5000 -0.5000 -0.7071 +vn -0.0000 -0.7071 -0.7071 +vn -0.5000 0.5000 -0.7071 +vn 0.5000 0.5000 -0.7071 +vn 0.5000 -0.5000 -0.7071 +vn 0.5000 -0.5000 0.7071 +vn 0.5000 0.5000 0.7071 +vn -0.5000 0.5000 0.7071 +vn -0.5000 -0.5000 0.7071 +vn -0.0000 -0.7071 0.7071 +s off +f 283/348/71 279/349/71 275/350/71 +f 293/351/72 297/352/72 285/353/72 +f 335/354/73 334/355/73 333/356/73 +f 339/357/74 337/358/74 338/359/74 +f 336/360/75 339/357/75 334/355/75 +f 333/361/76 337/358/76 335/362/76 +f 340/363/75 336/360/75 341/364/75 +f 334/355/75 339/357/75 344/365/75 +f 339/357/77 343/366/77 344/367/77 +f 335/362/76 337/358/76 342/368/76 +f 343/366/71 352/369/71 344/367/71 +f 342/370/76 348/371/76 335/372/76 +f 338/359/76 333/361/76 343/373/76 +f 359/374/75 357/375/75 358/376/75 +f 355/377/76 354/378/76 353/379/76 +f 333/380/76 351/381/76 343/366/76 +f 336/382/75 349/383/75 341/384/75 +f 344/367/75 346/385/75 334/386/75 +f 335/387/71 347/388/71 336/382/71 +f 333/389/72 346/385/72 345/390/72 +f 342/370/72 349/383/72 350/391/72 +f 340/363/78 342/370/78 337/358/78 +f 356/392/73 359/374/73 354/378/73 +f 353/393/74 357/375/74 355/394/74 +f 360/395/73 356/392/73 361/396/73 +f 354/378/73 359/374/73 364/397/73 +f 359/374/79 363/398/79 364/399/79 +f 355/394/74 357/375/74 362/400/74 +f 364/399/71 371/401/71 372/402/71 +f 362/403/74 368/404/74 355/405/74 +f 358/376/74 353/393/74 363/406/74 +f 353/407/74 371/401/74 363/398/74 +f 356/408/73 369/409/73 361/410/73 +f 364/399/73 366/411/73 354/412/73 +f 356/408/71 368/413/71 367/414/71 +f 354/412/72 365/415/72 353/416/72 +f 361/410/72 370/417/72 362/403/72 +f 360/395/80 362/403/80 357/375/80 +f 375/418/74 374/419/74 373/420/74 +f 379/421/73 377/422/73 378/423/73 +f 376/424/76 379/421/76 374/419/76 +f 373/425/75 377/422/75 375/426/75 +f 380/427/76 376/424/76 381/428/76 +f 374/419/76 379/421/76 384/429/76 +f 378/423/81 384/430/81 379/421/81 +f 375/426/75 377/422/75 382/431/75 +f 383/432/71 392/433/71 384/430/71 +f 382/434/75 388/435/75 375/436/75 +f 378/423/75 373/425/75 383/437/75 +f 399/438/76 397/439/76 398/440/76 +f 395/441/75 394/442/75 393/443/75 +f 373/444/75 391/445/75 383/432/75 +f 376/446/76 389/447/76 381/448/76 +f 384/430/76 386/449/76 374/450/76 +f 375/451/71 387/452/71 376/446/71 +f 373/453/72 386/449/72 385/454/72 +f 382/434/72 389/447/72 390/455/72 +f 377/422/82 381/448/82 382/434/82 +f 396/456/74 399/438/74 394/442/74 +f 393/457/73 397/439/73 395/458/73 +f 400/459/74 396/456/74 401/460/74 +f 394/442/74 399/438/74 404/461/74 +f 398/440/83 404/462/83 399/438/83 +f 395/458/73 397/439/73 402/463/73 +f 404/462/71 411/464/71 412/465/71 +f 402/466/73 408/467/73 395/468/73 +f 398/440/73 393/457/73 403/469/73 +f 393/470/73 411/464/73 403/471/73 +f 396/472/74 409/473/74 401/474/74 +f 404/462/74 406/475/74 394/476/74 +f 396/472/71 408/477/71 407/478/71 +f 394/476/72 405/479/72 393/480/72 +f 401/474/72 410/481/72 402/466/72 +f 400/459/84 402/466/84 397/439/84 +f 447/482/71 459/483/71 455/484/71 +f 429/485/72 433/486/72 437/487/72 +f 501/488/72 505/489/72 493/490/72 +f 519/491/71 515/492/71 511/493/71 +f 553/494/73 552/495/73 554/496/73 +f 544/497/75 550/498/75 546/499/75 +f 551/500/73 556/501/73 552/495/73 +f 551/500/73 545/502/73 543/503/73 +f 547/504/75 546/499/75 548/505/75 +f 544/497/75 541/506/75 542/507/75 +f 569/508/74 568/509/74 570/510/74 +f 560/511/76 566/512/76 562/513/76 +f 567/514/74 572/515/74 568/509/74 +f 567/514/74 561/516/74 559/517/74 +f 563/518/76 562/513/76 564/519/76 +f 560/511/76 557/520/76 558/521/76 +f 574/522/85 589/523/85 573/524/85 +f 580/525/85 589/526/85 596/527/85 +f 578/528/85 595/529/85 594/530/85 +f 577/531/85 592/532/85 576/533/85 +f 575/534/85 590/535/85 574/522/85 +f 580/525/85 595/536/85 579/537/85 +f 578/528/85 593/538/85 577/539/85 +f 575/534/85 592/540/85 591/541/85 +f 598/542/85 599/543/85 601/544/85 +f 607/545/71 606/546/71 605/547/71 +f 611/548/86 609/549/86 610/550/86 +f 606/551/87 612/552/87 611/553/87 +f 605/554/88 609/549/88 607/545/88 +f 607/545/89 612/552/89 608/555/89 +f 606/551/85 610/556/85 605/557/85 +f 615/558/71 614/559/71 613/560/71 +f 620/561/72 623/562/72 619/563/72 +f 616/564/87 619/563/87 614/559/87 +f 613/565/88 617/566/88 615/567/88 +f 615/568/89 620/569/89 616/570/89 +f 614/571/85 618/572/85 613/573/85 +f 621/574/89 628/575/89 624/576/89 +f 618/577/72 621/578/72 617/566/72 +f 617/579/72 624/576/72 620/569/72 +f 619/580/72 622/581/72 618/572/72 +f 623/582/85 626/583/85 622/581/85 +f 624/584/87 627/585/87 623/562/87 +f 622/586/88 625/587/88 621/578/88 +f 635/588/72 633/589/72 634/590/72 +f 631/591/89 636/592/89 632/593/89 +f 630/594/85 634/590/85 629/595/85 +f 632/596/87 635/588/87 630/597/87 +f 629/598/88 633/589/88 631/599/88 +f 639/600/71 638/601/71 637/602/71 +f 643/603/90 641/604/90 642/605/90 +f 640/606/87 643/603/87 638/601/87 +f 639/607/89 644/608/89 640/606/89 +f 637/609/85 643/603/85 642/610/85 +f 647/611/71 646/612/71 645/613/71 +f 651/614/91 649/615/91 650/616/91 +f 648/617/89 649/615/89 652/618/89 +f 646/619/85 650/616/85 645/613/85 +f 645/613/88 649/615/88 647/611/88 +f 702/620/72 703/621/72 701/622/72 +f 705/623/71 707/624/71 706/625/71 +f 705/626/88 703/621/88 716/627/88 +f 707/628/89 717/629/89 706/630/89 +f 702/620/87 708/631/87 704/632/87 +f 703/621/88 706/633/88 701/622/88 +f 704/632/92 716/634/92 703/621/92 +f 714/635/88 727/636/88 710/637/88 +f 701/622/88 706/633/88 711/638/88 +f 707/624/87 702/620/87 712/639/87 +f 713/640/89 725/641/89 714/642/89 +f 705/643/85 719/644/85 708/645/85 +f 709/646/87 726/647/87 713/640/87 +f 704/632/87 708/631/87 715/648/87 +f 701/622/93 712/649/93 702/620/93 +f 712/649/87 718/650/87 707/628/87 +f 716/634/88 720/651/88 705/652/88 +f 715/653/89 724/654/89 716/634/89 +f 706/655/88 721/656/88 711/657/88 +f 708/645/87 723/658/87 715/653/87 +f 711/657/85 722/659/85 712/649/85 +f 710/637/85 728/660/85 709/646/85 +f 732/661/88 735/662/88 730/663/88 +f 731/664/89 733/665/89 732/666/89 +f 729/667/87 734/668/87 731/664/87 +f 730/663/85 736/669/85 729/667/85 +f 740/670/88 743/671/88 738/672/88 +f 739/673/89 741/674/89 740/675/89 +f 737/676/87 742/677/87 739/673/87 +f 738/672/85 744/678/85 737/676/85 +f 923/679/71 922/680/71 921/681/71 +f 928/682/72 931/683/72 927/684/72 +f 924/685/87 927/684/87 922/680/87 +f 921/686/88 925/687/88 923/688/88 +f 923/689/89 928/690/89 924/691/89 +f 922/692/85 926/693/85 921/694/85 +f 929/695/89 936/696/89 932/697/89 +f 926/698/72 929/699/72 925/687/72 +f 925/700/72 932/697/72 928/690/72 +f 927/701/72 930/702/72 926/693/72 +f 931/703/85 934/704/85 930/702/85 +f 932/705/87 935/706/87 931/683/87 +f 930/707/88 933/708/88 929/699/88 +f 951/709/71 947/710/71 943/711/71 +f 961/712/72 965/713/72 953/714/72 +f 970/715/87 971/716/87 969/717/87 +f 973/718/88 975/719/88 974/720/88 +f 973/721/72 971/716/72 984/722/72 +f 975/723/89 985/724/89 974/725/89 +f 970/715/71 976/726/71 972/727/71 +f 971/716/72 974/728/72 969/717/72 +f 972/727/75 984/729/75 971/716/75 +f 982/730/72 995/731/72 978/732/72 +f 969/717/72 974/728/72 979/733/72 +f 975/719/71 970/715/71 980/734/71 +f 981/735/89 993/736/89 982/737/89 +f 973/738/85 987/739/85 976/740/85 +f 977/741/71 994/742/71 981/735/71 +f 972/727/71 976/726/71 983/743/71 +f 969/717/74 980/744/74 970/715/74 +f 980/744/71 986/745/71 975/723/71 +f 984/729/72 988/746/72 973/747/72 +f 983/748/89 992/749/89 984/729/89 +f 974/750/72 989/751/72 979/752/72 +f 976/740/71 991/753/71 983/748/71 +f 979/752/85 990/754/85 980/744/85 +f 978/732/85 996/755/85 977/741/85 +f 1000/756/72 1003/757/72 998/758/72 +f 999/759/89 1001/760/89 1000/761/89 +f 997/762/71 1002/763/71 999/759/71 +f 998/758/85 1004/764/85 997/762/85 +f 1008/765/72 1011/766/72 1006/767/72 +f 1007/768/89 1009/769/89 1008/770/89 +f 1005/771/71 1010/772/71 1007/768/71 +f 1006/767/85 1012/773/85 1005/771/85 +f 1014/774/88 1015/775/88 1013/776/88 +f 1017/777/87 1019/778/87 1018/779/87 +f 1017/780/71 1015/775/71 1028/781/71 +f 1019/782/89 1029/783/89 1018/784/89 +f 1014/774/72 1020/785/72 1016/786/72 +f 1015/775/71 1018/787/71 1013/776/71 +f 1016/786/73 1028/788/73 1015/775/73 +f 1026/789/71 1039/790/71 1022/791/71 +f 1013/776/71 1018/787/71 1023/792/71 +f 1019/778/72 1014/774/72 1024/793/72 +f 1025/794/89 1037/795/89 1026/796/89 +f 1017/797/85 1031/798/85 1020/799/85 +f 1021/800/72 1038/801/72 1025/794/72 +f 1016/786/72 1020/785/72 1027/802/72 +f 1013/776/76 1024/803/76 1014/774/76 +f 1024/803/72 1030/804/72 1019/782/72 +f 1028/788/71 1032/805/71 1017/806/71 +f 1027/807/89 1036/808/89 1028/788/89 +f 1018/809/71 1033/810/71 1023/811/71 +f 1020/799/72 1035/812/72 1027/807/72 +f 1023/811/85 1034/813/85 1024/803/85 +f 1022/791/85 1040/814/85 1021/800/85 +f 1044/815/71 1047/816/71 1042/817/71 +f 1043/818/89 1045/819/89 1044/820/89 +f 1041/821/72 1046/822/72 1043/818/72 +f 1042/817/85 1048/823/85 1041/821/85 +f 1052/824/71 1055/825/71 1050/826/71 +f 1051/827/89 1053/828/89 1052/829/89 +f 1049/830/72 1054/831/72 1051/827/72 +f 1050/826/85 1056/832/85 1049/830/85 +f 271/833/71 270/834/71 269/835/71 +f 269/835/71 284/836/71 271/833/71 +f 284/836/71 283/348/71 271/833/71 +f 283/348/71 282/837/71 279/349/71 +f 282/837/71 281/838/71 279/349/71 +f 281/838/71 280/839/71 279/349/71 +f 279/349/71 278/840/71 275/350/71 +f 278/840/71 277/841/71 275/350/71 +f 277/841/71 276/842/71 275/350/71 +f 275/350/71 274/843/71 273/844/71 +f 273/844/71 272/845/71 271/833/71 +f 275/350/71 273/844/71 271/833/71 +f 271/833/71 283/348/71 275/350/71 +f 285/353/72 286/846/72 287/847/72 +f 287/847/72 288/848/72 289/849/72 +f 289/849/72 290/850/72 291/851/72 +f 291/851/72 292/852/72 293/351/72 +f 293/351/72 294/853/72 297/352/72 +f 294/853/72 295/854/72 297/352/72 +f 295/854/72 296/855/72 297/352/72 +f 297/352/72 298/856/72 285/353/72 +f 298/856/72 299/857/72 285/353/72 +f 299/857/72 300/858/72 285/353/72 +f 285/353/72 287/847/72 289/849/72 +f 289/849/72 291/851/72 293/351/72 +f 285/353/72 289/849/72 293/351/72 +f 335/354/73 336/360/73 334/355/73 +f 339/357/74 340/363/74 337/358/74 +f 336/360/75 340/363/75 339/357/75 +f 333/361/76 338/359/76 337/358/76 +f 339/357/77 338/359/77 343/366/77 +f 343/366/71 351/381/71 352/369/71 +f 342/370/76 350/391/76 348/371/76 +f 359/374/75 360/395/75 357/375/75 +f 355/377/76 356/392/76 354/378/76 +f 333/380/76 345/859/76 351/381/76 +f 336/382/75 347/388/75 349/383/75 +f 344/367/75 352/369/75 346/385/75 +f 335/387/71 348/860/71 347/388/71 +f 333/389/72 334/386/72 346/385/72 +f 342/370/72 341/384/72 349/383/72 +f 340/363/78 341/384/78 342/370/78 +f 356/392/73 360/395/73 359/374/73 +f 353/393/74 358/376/74 357/375/74 +f 359/374/79 358/376/79 363/398/79 +f 364/399/71 363/398/71 371/401/71 +f 362/403/74 370/417/74 368/404/74 +f 353/407/74 365/861/74 371/401/74 +f 356/408/73 367/414/73 369/409/73 +f 364/399/73 372/402/73 366/411/73 +f 356/408/71 355/862/71 368/413/71 +f 354/412/72 366/411/72 365/415/72 +f 361/410/72 369/409/72 370/417/72 +f 360/395/80 361/410/80 362/403/80 +f 375/418/74 376/424/74 374/419/74 +f 379/421/73 380/427/73 377/422/73 +f 376/424/76 380/427/76 379/421/76 +f 373/425/75 378/423/75 377/422/75 +f 378/423/81 383/432/81 384/430/81 +f 383/432/71 391/445/71 392/433/71 +f 382/434/75 390/455/75 388/435/75 +f 399/438/76 400/459/76 397/439/76 +f 395/441/75 396/456/75 394/442/75 +f 373/444/75 385/863/75 391/445/75 +f 376/446/76 387/452/76 389/447/76 +f 384/430/76 392/433/76 386/449/76 +f 375/451/71 388/864/71 387/452/71 +f 373/453/72 374/450/72 386/449/72 +f 382/434/72 381/448/72 389/447/72 +f 377/422/82 380/427/82 381/448/82 +f 396/456/74 400/459/74 399/438/74 +f 393/457/73 398/440/73 397/439/73 +f 398/440/83 403/471/83 404/462/83 +f 404/462/71 403/471/71 411/464/71 +f 402/466/73 410/481/73 408/467/73 +f 393/470/73 405/865/73 411/464/73 +f 396/472/74 407/478/74 409/473/74 +f 404/462/74 412/465/74 406/475/74 +f 396/472/71 395/866/71 408/477/71 +f 394/476/72 406/475/72 405/479/72 +f 401/474/72 409/473/72 410/481/72 +f 400/459/84 401/474/84 402/466/84 +f 447/482/71 446/867/71 459/483/71 +f 446/867/71 445/868/71 459/483/71 +f 445/868/71 460/869/71 459/483/71 +f 459/483/71 458/870/71 457/871/71 +f 457/871/71 456/872/71 455/484/71 +f 455/484/71 454/873/71 453/874/71 +f 453/874/71 452/875/71 455/484/71 +f 452/875/71 451/876/71 455/484/71 +f 451/876/71 450/877/71 449/878/71 +f 449/878/71 448/879/71 447/482/71 +f 459/483/71 457/871/71 455/484/71 +f 451/876/71 449/878/71 455/484/71 +f 449/878/71 447/482/71 455/484/71 +f 429/485/72 430/880/72 433/486/72 +f 430/880/72 431/881/72 433/486/72 +f 431/881/72 432/882/72 433/486/72 +f 433/486/72 434/883/72 435/884/72 +f 435/884/72 436/885/72 433/486/72 +f 436/885/72 437/487/72 433/486/72 +f 437/487/72 438/886/72 439/887/72 +f 439/887/72 440/888/72 441/889/72 +f 441/889/72 442/890/72 443/891/72 +f 443/891/72 444/892/72 429/485/72 +f 437/487/72 439/887/72 429/485/72 +f 439/887/72 441/889/72 429/485/72 +f 441/889/72 443/891/72 429/485/72 +f 493/490/72 494/893/72 495/894/72 +f 495/894/72 496/895/72 497/896/72 +f 497/896/72 498/897/72 499/898/72 +f 499/898/72 500/899/72 501/488/72 +f 501/488/72 502/900/72 505/489/72 +f 502/900/72 503/901/72 505/489/72 +f 503/901/72 504/902/72 505/489/72 +f 505/489/72 506/903/72 507/904/72 +f 507/904/72 508/905/72 505/489/72 +f 508/905/72 493/490/72 505/489/72 +f 493/490/72 495/894/72 497/896/72 +f 497/896/72 499/898/72 493/490/72 +f 499/898/72 501/488/72 493/490/72 +f 511/493/71 510/906/71 509/907/71 +f 509/907/71 524/908/71 511/493/71 +f 524/908/71 523/909/71 511/493/71 +f 523/909/71 522/910/71 521/911/71 +f 521/911/71 520/912/71 519/491/71 +f 519/491/71 518/913/71 515/492/71 +f 518/913/71 517/914/71 515/492/71 +f 517/914/71 516/915/71 515/492/71 +f 515/492/71 514/916/71 513/917/71 +f 513/917/71 512/918/71 511/493/71 +f 523/909/71 521/911/71 511/493/71 +f 521/911/71 519/491/71 511/493/71 +f 515/492/71 513/917/71 511/493/71 +f 547/504/75 541/506/75 544/497/75 +f 544/497/75 549/919/75 550/498/75 +f 546/499/75 547/504/75 544/497/75 +f 553/494/73 545/502/73 551/500/73 +f 551/500/73 555/920/73 556/501/73 +f 552/495/73 553/494/73 551/500/73 +f 563/518/76 557/520/76 560/511/76 +f 560/511/76 565/921/76 566/512/76 +f 562/513/76 563/518/76 560/511/76 +f 569/508/74 561/516/74 567/514/74 +f 567/514/74 571/922/74 572/515/74 +f 568/509/74 569/508/74 567/514/74 +f 574/522/85 590/923/85 589/523/85 +f 580/525/85 573/524/85 589/526/85 +f 578/528/85 579/537/85 595/529/85 +f 577/531/85 593/924/85 592/532/85 +f 575/534/85 591/925/85 590/535/85 +f 580/525/85 596/926/85 595/536/85 +f 578/528/85 594/927/85 593/538/85 +f 575/534/85 576/533/85 592/540/85 +f 598/542/85 597/928/85 599/543/85 +f 599/543/85 600/929/85 601/544/85 +f 601/544/85 602/930/85 603/931/85 +f 603/931/85 604/932/85 601/544/85 +f 604/932/85 598/542/85 601/544/85 +f 607/545/71 608/555/71 606/546/71 +f 611/548/86 612/552/86 609/549/86 +f 606/551/87 608/555/87 612/552/87 +f 605/554/88 610/933/88 609/549/88 +f 607/545/89 609/549/89 612/552/89 +f 606/551/85 611/553/85 610/556/85 +f 615/558/71 616/564/71 614/559/71 +f 620/561/72 624/584/72 623/562/72 +f 616/564/87 620/561/87 619/563/87 +f 613/565/88 618/577/88 617/566/88 +f 615/568/89 617/579/89 620/569/89 +f 614/571/85 619/580/85 618/572/85 +f 621/574/89 625/934/89 628/575/89 +f 618/577/72 622/586/72 621/578/72 +f 617/579/72 621/574/72 624/576/72 +f 619/580/72 623/582/72 622/581/72 +f 623/582/85 627/935/85 626/583/85 +f 624/584/87 628/936/87 627/585/87 +f 622/586/88 626/937/88 625/587/88 +f 635/588/72 636/592/72 633/589/72 +f 631/591/89 633/589/89 636/592/89 +f 630/594/85 635/588/85 634/590/85 +f 632/596/87 636/592/87 635/588/87 +f 629/598/88 634/590/88 633/589/88 +f 639/600/71 640/606/71 638/601/71 +f 643/603/90 644/608/90 641/604/90 +f 640/606/87 644/608/87 643/603/87 +f 639/607/89 641/938/89 644/608/89 +f 637/609/85 638/601/85 643/603/85 +f 647/611/71 648/939/71 646/612/71 +f 651/614/91 652/940/91 649/615/91 +f 648/617/89 647/611/89 649/615/89 +f 646/619/85 651/941/85 650/616/85 +f 645/613/88 650/616/88 649/615/88 +f 702/620/72 704/632/72 703/621/72 +f 705/623/71 708/631/71 707/624/71 +f 707/628/89 718/650/89 717/629/89 +f 702/620/87 707/624/87 708/631/87 +f 703/621/88 705/626/88 706/633/88 +f 704/632/92 715/653/92 716/634/92 +f 714/635/88 725/942/88 727/636/88 +f 713/640/89 726/647/89 725/641/89 +f 705/643/85 720/943/85 719/644/85 +f 709/646/87 728/660/87 726/647/87 +f 701/622/93 711/657/93 712/649/93 +f 712/649/87 722/659/87 718/650/87 +f 716/634/88 724/654/88 720/651/88 +f 715/653/89 723/658/89 724/654/89 +f 706/655/88 717/944/88 721/656/88 +f 708/645/87 719/644/87 723/658/87 +f 711/657/85 721/656/85 722/659/85 +f 710/637/85 727/636/85 728/660/85 +f 732/661/88 733/945/88 735/662/88 +f 731/664/89 734/668/89 733/665/89 +f 729/667/87 736/669/87 734/668/87 +f 730/663/85 735/662/85 736/669/85 +f 740/670/88 741/946/88 743/671/88 +f 739/673/89 742/677/89 741/674/89 +f 737/676/87 744/678/87 742/677/87 +f 738/672/85 743/671/85 744/678/85 +f 923/679/71 924/685/71 922/680/71 +f 928/682/72 932/705/72 931/683/72 +f 924/685/87 928/682/87 927/684/87 +f 921/686/88 926/698/88 925/687/88 +f 923/689/89 925/700/89 928/690/89 +f 922/692/85 927/701/85 926/693/85 +f 929/695/89 933/947/89 936/696/89 +f 926/698/72 930/707/72 929/699/72 +f 925/700/72 929/695/72 932/697/72 +f 927/701/72 931/703/72 930/702/72 +f 931/703/85 935/948/85 934/704/85 +f 932/705/87 936/949/87 935/706/87 +f 930/707/88 934/950/88 933/708/88 +f 939/951/71 938/952/71 937/953/71 +f 937/953/71 952/954/71 939/951/71 +f 952/954/71 951/709/71 939/951/71 +f 951/709/71 950/955/71 947/710/71 +f 950/955/71 949/956/71 947/710/71 +f 949/956/71 948/957/71 947/710/71 +f 947/710/71 946/958/71 943/711/71 +f 946/958/71 945/959/71 943/711/71 +f 945/959/71 944/960/71 943/711/71 +f 943/711/71 942/961/71 941/962/71 +f 941/962/71 940/963/71 939/951/71 +f 943/711/71 941/962/71 939/951/71 +f 939/951/71 951/709/71 943/711/71 +f 953/714/72 954/964/72 955/965/72 +f 955/965/72 956/966/72 957/967/72 +f 957/967/72 958/968/72 959/969/72 +f 959/969/72 960/970/72 961/712/72 +f 961/712/72 962/971/72 965/713/72 +f 962/971/72 963/972/72 965/713/72 +f 963/972/72 964/973/72 965/713/72 +f 965/713/72 966/974/72 953/714/72 +f 966/974/72 967/975/72 953/714/72 +f 967/975/72 968/976/72 953/714/72 +f 953/714/72 955/965/72 957/967/72 +f 957/967/72 959/969/72 961/712/72 +f 953/714/72 957/967/72 961/712/72 +f 970/715/87 972/727/87 971/716/87 +f 973/718/88 976/726/88 975/719/88 +f 975/723/89 986/745/89 985/724/89 +f 970/715/71 975/719/71 976/726/71 +f 971/716/72 973/721/72 974/728/72 +f 972/727/75 983/748/75 984/729/75 +f 982/730/72 993/977/72 995/731/72 +f 981/735/89 994/742/89 993/736/89 +f 973/738/85 988/978/85 987/739/85 +f 977/741/71 996/755/71 994/742/71 +f 969/717/74 979/752/74 980/744/74 +f 980/744/71 990/754/71 986/745/71 +f 984/729/72 992/749/72 988/746/72 +f 983/748/89 991/753/89 992/749/89 +f 974/750/72 985/979/72 989/751/72 +f 976/740/71 987/739/71 991/753/71 +f 979/752/85 989/751/85 990/754/85 +f 978/732/85 995/731/85 996/755/85 +f 1000/756/72 1001/980/72 1003/757/72 +f 999/759/89 1002/763/89 1001/760/89 +f 997/762/71 1004/764/71 1002/763/71 +f 998/758/85 1003/757/85 1004/764/85 +f 1008/765/72 1009/981/72 1011/766/72 +f 1007/768/89 1010/772/89 1009/769/89 +f 1005/771/71 1012/773/71 1010/772/71 +f 1006/767/85 1011/766/85 1012/773/85 +f 1014/774/88 1016/786/88 1015/775/88 +f 1017/777/87 1020/785/87 1019/778/87 +f 1019/782/89 1030/804/89 1029/783/89 +f 1014/774/72 1019/778/72 1020/785/72 +f 1015/775/71 1017/780/71 1018/787/71 +f 1016/786/73 1027/807/73 1028/788/73 +f 1026/789/71 1037/982/71 1039/790/71 +f 1025/794/89 1038/801/89 1037/795/89 +f 1017/797/85 1032/983/85 1031/798/85 +f 1021/800/72 1040/814/72 1038/801/72 +f 1013/776/76 1023/811/76 1024/803/76 +f 1024/803/72 1034/813/72 1030/804/72 +f 1028/788/71 1036/808/71 1032/805/71 +f 1027/807/89 1035/812/89 1036/808/89 +f 1018/809/71 1029/984/71 1033/810/71 +f 1020/799/72 1031/798/72 1035/812/72 +f 1023/811/85 1033/810/85 1034/813/85 +f 1022/791/85 1039/790/85 1040/814/85 +f 1044/815/71 1045/985/71 1047/816/71 +f 1043/818/89 1046/822/89 1045/819/89 +f 1041/821/72 1048/823/72 1046/822/72 +f 1042/817/85 1047/816/85 1048/823/85 +f 1052/824/71 1053/986/71 1055/825/71 +f 1051/827/89 1054/831/89 1053/828/89 +f 1049/830/72 1056/832/72 1054/831/72 +f 1050/826/85 1055/825/85 1056/832/85 +s 1 +f 283/987/75 298/988/94 282/989/94 +f 276/990/95 291/991/76 275/992/76 +f 284/993/96 299/994/75 283/987/75 +f 277/995/85 292/996/95 276/990/95 +f 270/997/97 285/998/89 269/999/89 +f 269/999/89 300/1000/96 284/993/96 +f 278/1001/98 293/1002/85 277/995/85 +f 271/1003/73 286/1004/97 270/997/97 +f 279/1005/74 294/1006/98 278/1001/98 +f 272/1007/99 287/1008/73 271/1003/73 +f 280/1009/100 295/1010/74 279/1005/74 +f 273/1011/88 288/1012/99 272/1007/99 +f 281/1013/87 296/1014/100 280/1009/100 +f 274/1015/101 289/1016/88 273/1017/88 +f 282/989/94 297/1018/87 281/1013/87 +f 275/992/76 290/1019/101 274/1015/101 +f 315/1020/75 330/1021/94 314/1022/94 +f 308/1023/95 323/1024/76 307/1025/76 +f 316/1026/96 331/1027/75 315/1020/75 +f 309/1028/85 324/1029/95 308/1023/95 +f 302/1030/97 317/1031/89 301/1032/89 +f 301/1032/89 332/1033/96 316/1026/96 +f 310/1034/98 325/1035/85 309/1028/85 +f 303/1036/73 318/1037/97 302/1030/97 +f 311/1038/74 326/1039/98 310/1034/98 +f 304/1040/99 319/1041/73 303/1036/73 +f 312/1042/100 327/1043/74 311/1038/74 +f 305/1044/88 320/1045/99 304/1040/99 +f 313/1046/87 328/1047/100 312/1042/100 +f 306/1048/101 321/1049/88 305/1050/88 +f 314/1022/94 329/1051/87 313/1046/87 +f 307/1025/76 322/1052/101 306/1048/101 +f 427/1053/75 442/1054/94 426/1055/94 +f 420/1056/95 435/1057/76 419/1058/76 +f 428/1059/96 443/1060/75 427/1053/75 +f 421/1061/85 436/1062/95 420/1056/95 +f 414/1063/97 429/1064/89 413/1065/89 +f 413/1065/89 444/1066/96 428/1059/96 +f 422/1067/98 437/1068/85 421/1061/85 +f 415/1069/73 430/1070/97 414/1063/97 +f 423/1071/74 438/1072/98 422/1067/98 +f 416/1073/99 431/1074/73 415/1069/73 +f 424/1075/100 439/1076/74 423/1071/74 +f 417/1077/88 432/1078/99 416/1073/99 +f 425/1079/87 440/1080/100 424/1075/100 +f 418/1081/101 433/1082/88 417/1083/88 +f 426/1055/94 441/1084/87 425/1079/87 +f 419/1058/76 434/1085/101 418/1081/101 +f 459/1086/75 474/1087/94 458/1088/94 +f 452/1089/95 467/1090/76 451/1091/76 +f 460/1092/96 475/1093/75 459/1086/75 +f 453/1094/85 468/1095/95 452/1089/95 +f 446/1096/97 461/1097/89 445/1098/89 +f 445/1098/89 476/1099/96 460/1092/96 +f 454/1100/98 469/1101/85 453/1094/85 +f 447/1102/73 462/1103/97 446/1096/97 +f 455/1104/74 470/1105/98 454/1100/98 +f 448/1106/99 463/1107/73 447/1102/73 +f 456/1108/100 471/1109/74 455/1104/74 +f 449/1110/88 464/1111/99 448/1106/99 +f 457/1112/87 472/1113/100 456/1108/100 +f 450/1114/101 465/1115/88 449/1116/88 +f 458/1088/94 473/1117/87 457/1112/87 +f 451/1091/76 466/1118/101 450/1114/101 +f 488/1119/100 503/1120/74 487/1121/74 +f 481/1122/88 496/1123/99 480/1124/99 +f 489/1125/87 504/1126/100 488/1119/100 +f 482/1127/101 497/1128/88 481/1129/88 +f 490/1130/94 505/1131/87 489/1125/87 +f 483/1132/76 498/1133/101 482/1127/101 +f 491/1134/75 506/1135/94 490/1130/94 +f 484/1136/95 499/1137/76 483/1132/76 +f 492/1138/96 507/1139/75 491/1134/75 +f 485/1140/85 500/1141/95 484/1136/95 +f 478/1142/97 493/1143/89 477/1144/89 +f 477/1144/89 508/1145/96 492/1138/96 +f 486/1146/98 501/1147/85 485/1140/85 +f 479/1148/73 494/1149/97 478/1142/97 +f 487/1121/74 502/1150/98 486/1146/98 +f 480/1124/99 495/1151/73 479/1148/73 +f 520/1152/100 535/1153/74 519/1154/74 +f 513/1155/88 528/1156/99 512/1157/99 +f 521/1158/87 536/1159/100 520/1152/100 +f 514/1160/101 529/1161/88 513/1162/88 +f 522/1163/94 537/1164/87 521/1158/87 +f 515/1165/76 530/1166/101 514/1160/101 +f 523/1167/75 538/1168/94 522/1163/94 +f 516/1169/95 531/1170/76 515/1165/76 +f 524/1171/96 539/1172/75 523/1167/75 +f 517/1173/85 532/1174/95 516/1169/95 +f 510/1175/97 525/1176/89 509/1177/89 +f 509/1177/89 540/1178/96 524/1171/96 +f 518/1179/98 533/1180/85 517/1173/85 +f 511/1181/73 526/1182/97 510/1175/97 +f 519/1154/74 534/1183/98 518/1179/98 +f 512/1157/99 527/1184/73 511/1181/73 +f 581/1185/72 574/522/91 573/524/72 +f 588/1186/90 573/524/72 580/525/90 +f 586/1187/102 579/537/87 578/528/102 +f 584/1188/103 577/531/71 576/533/103 +f 582/1189/91 575/534/88 574/522/91 +f 587/1190/87 580/525/90 579/537/87 +f 585/1191/71 578/528/102 577/539/71 +f 583/1192/88 576/533/103 575/534/88 +f 589/526/72 604/1193/90 596/527/90 +f 595/529/87 602/1194/102 594/530/102 +f 593/924/71 600/1195/103 592/532/103 +f 591/925/88 597/1196/91 590/535/91 +f 596/926/90 603/1197/87 595/536/87 +f 594/927/102 601/1198/71 593/538/71 +f 592/540/103 599/1199/88 591/541/88 +f 590/923/91 598/1200/72 589/523/72 +f 685/1201/104 700/1202/105 693/1203/104 +f 686/1204/73 693/1205/104 694/1206/73 +f 695/1207/106 686/1208/73 694/1209/73 +f 688/1210/92 695/1211/106 696/1212/92 +f 689/1213/107 696/1214/92 697/1215/107 +f 698/1216/75 689/1217/107 697/1218/107 +f 691/1219/108 698/1220/75 699/1221/108 +f 700/1222/105 691/1223/108 699/1224/108 +f 678/1225/91 676/1226/72 677/1227/72 +f 679/1228/88 675/1229/91 678/1225/91 +f 680/1230/103 674/1231/88 679/1228/88 +f 681/1232/71 673/1233/103 680/1230/103 +f 682/1234/102 672/1235/71 681/1236/71 +f 683/1237/87 671/1238/102 682/1234/102 +f 684/1239/90 670/1240/87 683/1237/87 +f 677/1227/72 669/1241/90 684/1239/90 +f 666/1242/74 659/1243/109 667/1244/109 +f 666/1245/74 657/1246/110 658/1247/74 +f 664/1248/93 657/1249/110 665/1250/110 +f 664/1251/93 655/1252/111 656/1253/93 +f 663/1254/111 654/1255/76 655/1256/111 +f 661/1257/112 654/1258/76 662/1259/76 +f 661/1260/112 660/1261/113 653/1262/112 +f 668/1263/113 659/1264/109 660/1265/113 +f 671/1238/109 662/1266/74 663/1254/109 +f 672/1235/113 663/1267/109 664/1251/113 +f 672/1268/113 665/1250/112 673/1233/112 +f 674/1231/76 665/1269/112 666/1245/76 +f 674/1231/76 667/1244/111 675/1229/111 +f 675/1229/111 668/1263/93 676/1226/93 +f 676/1226/93 661/1260/110 669/1241/110 +f 669/1241/110 662/1259/74 670/1240/74 +f 694/1206/75 684/1239/107 683/1237/75 +f 693/1203/107 677/1227/92 684/1239/107 +f 700/1222/92 678/1225/106 677/1227/92 +f 699/1221/106 679/1228/73 678/1225/106 +f 679/1228/73 697/1218/104 680/1230/104 +f 680/1230/104 696/1214/105 681/1232/105 +f 696/1212/105 682/1234/108 681/1236/105 +f 682/1234/108 694/1209/75 683/1237/75 +f 785/1270/104 784/1271/105 792/1272/105 +f 778/1273/73 785/1274/104 786/1275/73 +f 787/1276/106 778/1277/73 786/1278/73 +f 788/1279/92 779/1280/106 787/1281/106 +f 781/1282/107 788/1283/92 789/1284/107 +f 790/1285/75 781/1286/107 789/1287/107 +f 783/1288/108 790/1289/75 791/1290/108 +f 792/1291/105 783/1292/108 791/1293/108 +f 770/1294/91 768/1295/72 769/1296/72 +f 771/1297/88 767/1298/91 770/1294/91 +f 772/1299/103 766/1300/88 771/1297/88 +f 773/1301/71 765/1302/103 772/1299/103 +f 774/1303/102 764/1304/71 773/1305/71 +f 775/1306/87 763/1307/102 774/1303/102 +f 776/1308/90 762/1309/87 775/1306/87 +f 769/1296/72 761/1310/90 776/1308/90 +f 758/1311/74 751/1312/109 759/1313/109 +f 758/1314/74 749/1315/110 750/1316/74 +f 756/1317/93 749/1318/110 757/1319/110 +f 756/1320/93 747/1321/111 748/1322/93 +f 755/1323/111 746/1324/76 747/1325/111 +f 753/1326/112 746/1327/76 754/1328/76 +f 760/1329/113 745/1330/112 753/1331/112 +f 760/1332/113 751/1333/109 752/1334/113 +f 762/1309/74 755/1323/109 763/1307/109 +f 764/1304/113 755/1335/109 756/1320/113 +f 765/1302/112 756/1317/113 757/1319/112 +f 765/1302/112 758/1314/76 766/1300/76 +f 766/1300/76 759/1313/111 767/1298/111 +f 767/1298/111 760/1332/93 768/1295/93 +f 768/1295/93 753/1331/110 761/1310/110 +f 761/1310/110 754/1328/74 762/1309/74 +f 786/1275/75 776/1308/107 775/1306/75 +f 785/1270/107 769/1296/92 776/1308/107 +f 792/1291/92 770/1294/106 769/1296/92 +f 791/1290/106 771/1297/73 770/1294/106 +f 771/1297/73 789/1287/104 772/1299/104 +f 772/1299/104 788/1283/105 773/1301/105 +f 773/1305/105 787/1281/108 774/1303/108 +f 774/1303/108 786/1278/75 775/1306/75 +f 825/1336/104 840/1337/105 833/1338/104 +f 826/1339/73 833/1340/104 834/1341/73 +f 835/1342/106 826/1343/73 834/1344/73 +f 828/1345/92 835/1346/106 836/1347/92 +f 829/1348/107 836/1349/92 837/1350/107 +f 838/1351/75 829/1352/107 837/1353/107 +f 831/1354/108 838/1355/75 839/1356/108 +f 840/1357/105 831/1358/108 839/1359/108 +f 818/1360/91 816/1361/72 817/1362/72 +f 819/1363/88 815/1364/91 818/1360/91 +f 820/1365/103 814/1366/88 819/1363/88 +f 821/1367/71 813/1368/103 820/1365/103 +f 822/1369/102 812/1370/71 821/1371/71 +f 823/1372/87 811/1373/102 822/1369/102 +f 824/1374/90 810/1375/87 823/1372/87 +f 817/1362/72 809/1376/90 824/1374/90 +f 806/1377/74 799/1378/109 807/1379/109 +f 806/1380/74 797/1381/110 798/1382/74 +f 804/1383/93 797/1384/110 805/1385/110 +f 803/1386/111 796/1387/93 804/1388/93 +f 803/1389/111 794/1390/76 795/1391/111 +f 801/1392/112 794/1393/76 802/1394/76 +f 801/1395/112 800/1396/113 793/1397/112 +f 808/1398/113 799/1399/109 800/1400/113 +f 811/1373/109 802/1401/74 803/1389/109 +f 811/1373/109 804/1388/113 812/1370/113 +f 813/1368/112 804/1383/113 805/1385/112 +f 813/1368/112 806/1380/76 814/1366/76 +f 814/1366/76 807/1379/111 815/1364/111 +f 815/1364/111 808/1398/93 816/1361/93 +f 809/1376/110 808/1402/93 801/1395/110 +f 809/1376/110 802/1394/74 810/1375/74 +f 834/1341/75 824/1374/107 823/1372/75 +f 833/1338/107 817/1362/92 824/1374/107 +f 840/1357/92 818/1360/106 817/1362/92 +f 839/1356/106 819/1363/73 818/1360/106 +f 819/1363/73 837/1353/104 820/1365/104 +f 820/1365/104 836/1349/105 821/1367/105 +f 836/1347/105 822/1369/108 821/1371/105 +f 822/1369/108 834/1344/75 823/1372/75 +f 881/1403/104 880/1404/105 888/1405/105 +f 874/1406/73 881/1407/104 882/1408/73 +f 883/1409/106 874/1410/73 882/1411/73 +f 884/1412/92 875/1413/106 883/1414/106 +f 877/1415/107 884/1416/92 885/1417/107 +f 886/1418/75 877/1419/107 885/1420/107 +f 879/1421/108 886/1422/75 887/1423/108 +f 880/1424/105 887/1425/108 888/1426/105 +f 866/1427/91 864/1428/72 865/1429/72 +f 867/1430/88 863/1431/91 866/1427/91 +f 868/1432/103 862/1433/88 867/1430/88 +f 869/1434/71 861/1435/103 868/1432/103 +f 870/1436/102 860/1437/71 869/1438/71 +f 871/1439/87 859/1440/102 870/1436/102 +f 872/1441/90 858/1442/87 871/1439/87 +f 865/1429/72 857/1443/90 872/1441/90 +f 854/1444/74 847/1445/109 855/1446/109 +f 853/1447/110 846/1448/74 854/1449/74 +f 852/1450/93 845/1451/110 853/1452/110 +f 852/1453/93 843/1454/111 844/1455/93 +f 851/1456/111 842/1457/76 843/1458/111 +f 849/1459/112 842/1460/76 850/1461/76 +f 849/1462/112 848/1463/113 841/1464/112 +f 856/1465/113 847/1466/109 848/1467/113 +f 858/1442/74 851/1456/109 859/1440/109 +f 860/1437/113 851/1468/109 852/1453/113 +f 861/1435/112 852/1450/113 853/1452/112 +f 861/1435/112 854/1449/76 862/1433/76 +f 862/1433/76 855/1446/111 863/1431/111 +f 863/1431/111 856/1465/93 864/1428/93 +f 857/1443/110 856/1469/93 849/1462/110 +f 857/1443/110 850/1461/74 858/1442/74 +f 882/1408/75 872/1441/107 871/1439/75 +f 881/1403/107 865/1429/92 872/1441/107 +f 888/1426/92 866/1427/106 865/1429/92 +f 887/1423/106 867/1430/73 866/1427/106 +f 867/1430/73 885/1420/104 868/1432/104 +f 868/1432/104 884/1416/105 869/1434/105 +f 884/1412/105 870/1436/108 869/1438/105 +f 870/1436/108 882/1411/75 871/1439/75 +f 914/1470/91 912/1471/72 913/1472/72 +f 915/1473/88 911/1474/91 914/1470/91 +f 916/1475/103 910/1476/88 915/1473/88 +f 917/1477/71 909/1478/103 916/1475/103 +f 918/1479/102 908/1480/71 917/1481/71 +f 919/1482/87 907/1483/102 918/1479/102 +f 920/1484/90 906/1485/87 919/1482/87 +f 913/1472/72 905/1486/90 920/1484/90 +f 902/1487/74 895/1488/109 903/1489/109 +f 902/1490/74 893/1491/110 894/1492/74 +f 900/1493/93 893/1494/110 901/1495/110 +f 900/1496/93 891/1497/111 892/1498/93 +f 899/1499/111 890/1500/76 891/1501/111 +f 897/1502/112 890/1503/76 898/1504/76 +f 897/1505/112 896/1506/113 889/1507/112 +f 904/1508/113 895/1509/109 896/1510/113 +f 907/1483/109 898/1511/74 899/1499/109 +f 907/1483/109 900/1496/113 908/1480/113 +f 909/1478/112 900/1493/113 901/1495/112 +f 910/1476/76 901/1512/112 902/1490/76 +f 911/1474/111 902/1487/76 903/1489/111 +f 911/1474/111 904/1508/93 912/1471/93 +f 905/1486/110 904/1513/93 897/1505/110 +f 905/1486/110 898/1504/74 906/1485/74 +f 951/1514/75 966/1515/94 950/1516/94 +f 944/1517/95 959/1518/76 943/1519/76 +f 952/1520/96 967/1521/75 951/1514/75 +f 945/1522/85 960/1523/95 944/1517/95 +f 938/1524/97 953/1525/89 937/1526/89 +f 937/1526/89 968/1527/96 952/1520/96 +f 946/1528/98 961/1529/85 945/1522/85 +f 939/1530/73 954/1531/97 938/1524/97 +f 947/1532/74 962/1533/98 946/1528/98 +f 940/1534/99 955/1535/73 939/1530/73 +f 948/1536/100 963/1537/74 947/1532/74 +f 941/1538/88 956/1539/99 940/1534/99 +f 949/1540/87 964/1541/100 948/1536/100 +f 942/1542/101 957/1543/88 941/1544/88 +f 950/1516/94 965/1545/87 949/1540/87 +f 943/1519/76 958/1546/101 942/1542/101 +f 283/987/75 299/994/75 298/988/94 +f 276/990/95 292/996/95 291/991/76 +f 284/993/96 300/1000/96 299/994/75 +f 277/995/85 293/1002/85 292/996/95 +f 270/997/97 286/1004/97 285/998/89 +f 269/999/89 285/998/89 300/1000/96 +f 278/1001/98 294/1006/98 293/1002/85 +f 271/1003/73 287/1008/73 286/1004/97 +f 279/1005/74 295/1010/74 294/1006/98 +f 272/1007/99 288/1012/99 287/1008/73 +f 280/1009/100 296/1014/100 295/1010/74 +f 273/1011/88 289/1547/88 288/1012/99 +f 281/1013/87 297/1018/87 296/1014/100 +f 274/1015/101 290/1019/101 289/1016/88 +f 282/989/94 298/988/94 297/1018/87 +f 275/992/76 291/991/76 290/1019/101 +f 315/1020/75 331/1027/75 330/1021/94 +f 308/1023/95 324/1029/95 323/1024/76 +f 316/1026/96 332/1033/96 331/1027/75 +f 309/1028/85 325/1035/85 324/1029/95 +f 302/1030/97 318/1037/97 317/1031/89 +f 301/1032/89 317/1031/89 332/1033/96 +f 310/1034/98 326/1039/98 325/1035/85 +f 303/1036/73 319/1041/73 318/1037/97 +f 311/1038/74 327/1043/74 326/1039/98 +f 304/1040/99 320/1045/99 319/1041/73 +f 312/1042/100 328/1047/100 327/1043/74 +f 305/1044/88 321/1548/88 320/1045/99 +f 313/1046/87 329/1051/87 328/1047/100 +f 306/1048/101 322/1052/101 321/1049/88 +f 314/1022/94 330/1021/94 329/1051/87 +f 307/1025/76 323/1024/76 322/1052/101 +f 427/1053/75 443/1060/75 442/1054/94 +f 420/1056/95 436/1062/95 435/1057/76 +f 428/1059/96 444/1066/96 443/1060/75 +f 421/1061/85 437/1068/85 436/1062/95 +f 414/1063/97 430/1070/97 429/1064/89 +f 413/1065/89 429/1064/89 444/1066/96 +f 422/1067/98 438/1072/98 437/1068/85 +f 415/1069/73 431/1074/73 430/1070/97 +f 423/1071/74 439/1076/74 438/1072/98 +f 416/1073/99 432/1078/99 431/1074/73 +f 424/1075/100 440/1080/100 439/1076/74 +f 417/1077/88 433/1549/88 432/1078/99 +f 425/1079/87 441/1084/87 440/1080/100 +f 418/1081/101 434/1085/101 433/1082/88 +f 426/1055/94 442/1054/94 441/1084/87 +f 419/1058/76 435/1057/76 434/1085/101 +f 459/1086/75 475/1093/75 474/1087/94 +f 452/1089/95 468/1095/95 467/1090/76 +f 460/1092/96 476/1099/96 475/1093/75 +f 453/1094/85 469/1101/85 468/1095/95 +f 446/1096/97 462/1103/97 461/1097/89 +f 445/1098/89 461/1097/89 476/1099/96 +f 454/1100/98 470/1105/98 469/1101/85 +f 447/1102/73 463/1107/73 462/1103/97 +f 455/1104/74 471/1109/74 470/1105/98 +f 448/1106/99 464/1111/99 463/1107/73 +f 456/1108/100 472/1113/100 471/1109/74 +f 449/1110/88 465/1550/88 464/1111/99 +f 457/1112/87 473/1117/87 472/1113/100 +f 450/1114/101 466/1118/101 465/1115/88 +f 458/1088/94 474/1087/94 473/1117/87 +f 451/1091/76 467/1090/76 466/1118/101 +f 488/1119/100 504/1126/100 503/1120/74 +f 481/1122/88 497/1551/88 496/1123/99 +f 489/1125/87 505/1131/87 504/1126/100 +f 482/1127/101 498/1133/101 497/1128/88 +f 490/1130/94 506/1135/94 505/1131/87 +f 483/1132/76 499/1137/76 498/1133/101 +f 491/1134/75 507/1139/75 506/1135/94 +f 484/1136/95 500/1141/95 499/1137/76 +f 492/1138/96 508/1145/96 507/1139/75 +f 485/1140/85 501/1147/85 500/1141/95 +f 478/1142/97 494/1149/97 493/1143/89 +f 477/1144/89 493/1143/89 508/1145/96 +f 486/1146/98 502/1150/98 501/1147/85 +f 479/1148/73 495/1151/73 494/1149/97 +f 487/1121/74 503/1120/74 502/1150/98 +f 480/1124/99 496/1123/99 495/1151/73 +f 520/1152/100 536/1159/100 535/1153/74 +f 513/1155/88 529/1552/88 528/1156/99 +f 521/1158/87 537/1164/87 536/1159/100 +f 514/1160/101 530/1166/101 529/1161/88 +f 522/1163/94 538/1168/94 537/1164/87 +f 515/1165/76 531/1170/76 530/1166/101 +f 523/1167/75 539/1172/75 538/1168/94 +f 516/1169/95 532/1174/95 531/1170/76 +f 524/1171/96 540/1178/96 539/1172/75 +f 517/1173/85 533/1180/85 532/1174/95 +f 510/1175/97 526/1182/97 525/1176/89 +f 509/1177/89 525/1176/89 540/1178/96 +f 518/1179/98 534/1183/98 533/1180/85 +f 511/1181/73 527/1184/73 526/1182/97 +f 519/1154/74 535/1153/74 534/1183/98 +f 512/1157/99 528/1156/99 527/1184/73 +f 581/1185/72 582/1189/91 574/522/91 +f 588/1186/90 581/1185/72 573/524/72 +f 586/1187/102 587/1190/87 579/537/87 +f 584/1188/103 585/1553/71 577/531/71 +f 582/1189/91 583/1192/88 575/534/88 +f 587/1190/87 588/1186/90 580/525/90 +f 585/1191/71 586/1187/102 578/528/102 +f 583/1192/88 584/1188/103 576/533/103 +f 589/526/72 598/1554/72 604/1193/90 +f 595/529/87 603/1555/87 602/1194/102 +f 593/924/71 601/1556/71 600/1195/103 +f 591/925/88 599/1557/88 597/1196/91 +f 596/926/90 604/1558/90 603/1197/87 +f 594/927/102 602/1559/102 601/1198/71 +f 592/540/103 600/1560/103 599/1199/88 +f 590/923/91 597/1561/91 598/1200/72 +f 685/1201/104 692/1562/105 700/1202/105 +f 686/1204/73 685/1563/104 693/1205/104 +f 695/1207/106 687/1564/106 686/1208/73 +f 688/1210/92 687/1565/106 695/1211/106 +f 689/1213/107 688/1566/92 696/1214/92 +f 698/1216/75 690/1567/75 689/1217/107 +f 691/1219/108 690/1568/75 698/1220/75 +f 700/1222/105 692/1569/105 691/1223/108 +f 678/1225/91 675/1229/91 676/1226/72 +f 679/1228/88 674/1231/88 675/1229/91 +f 680/1230/103 673/1233/103 674/1231/88 +f 681/1232/71 672/1268/71 673/1233/103 +f 682/1234/102 671/1238/102 672/1235/71 +f 683/1237/87 670/1240/87 671/1238/102 +f 684/1239/90 669/1241/90 670/1240/87 +f 677/1227/72 676/1226/72 669/1241/90 +f 666/1242/74 658/1570/74 659/1243/109 +f 666/1245/74 665/1269/110 657/1246/110 +f 664/1248/93 656/1571/93 657/1249/110 +f 664/1251/93 663/1267/111 655/1252/111 +f 663/1254/111 662/1266/76 654/1255/76 +f 661/1257/112 653/1572/112 654/1258/76 +f 661/1260/112 668/1573/113 660/1261/113 +f 668/1263/113 667/1574/109 659/1264/109 +f 671/1238/109 670/1240/74 662/1266/74 +f 672/1235/113 671/1238/109 663/1267/109 +f 672/1268/113 664/1248/113 665/1250/112 +f 674/1231/76 673/1233/112 665/1269/112 +f 674/1231/76 666/1242/76 667/1244/111 +f 675/1229/111 667/1574/111 668/1263/93 +f 676/1226/93 668/1573/93 661/1260/110 +f 669/1241/110 661/1257/110 662/1259/74 +f 694/1206/75 693/1205/107 684/1239/107 +f 693/1203/107 700/1202/92 677/1227/92 +f 700/1222/92 699/1224/106 678/1225/106 +f 699/1221/106 698/1220/73 679/1228/73 +f 679/1228/73 698/1216/73 697/1218/104 +f 680/1230/104 697/1215/104 696/1214/105 +f 696/1212/105 695/1211/108 682/1234/108 +f 682/1234/108 695/1207/108 694/1209/75 +f 785/1270/104 777/1575/104 784/1271/105 +f 778/1273/73 777/1576/104 785/1274/104 +f 787/1276/106 779/1577/106 778/1277/73 +f 788/1279/92 780/1578/92 779/1280/106 +f 781/1282/107 780/1579/92 788/1283/92 +f 790/1285/75 782/1580/75 781/1286/107 +f 783/1288/108 782/1581/75 790/1289/75 +f 792/1291/105 784/1582/105 783/1292/108 +f 770/1294/91 767/1298/91 768/1295/72 +f 771/1297/88 766/1300/88 767/1298/91 +f 772/1299/103 765/1302/103 766/1300/88 +f 773/1301/71 764/1583/71 765/1302/103 +f 774/1303/102 763/1307/102 764/1304/71 +f 775/1306/87 762/1309/87 763/1307/102 +f 776/1308/90 761/1310/90 762/1309/87 +f 769/1296/72 768/1295/72 761/1310/90 +f 758/1311/74 750/1584/74 751/1312/109 +f 758/1314/74 757/1585/110 749/1315/110 +f 756/1317/93 748/1586/93 749/1318/110 +f 756/1320/93 755/1335/111 747/1321/111 +f 755/1323/111 754/1587/76 746/1324/76 +f 753/1326/112 745/1588/112 746/1327/76 +f 760/1329/113 752/1589/113 745/1330/112 +f 760/1332/113 759/1590/109 751/1333/109 +f 762/1309/74 754/1587/74 755/1323/109 +f 764/1304/113 763/1307/109 755/1335/109 +f 765/1302/112 764/1583/113 756/1317/113 +f 765/1302/112 757/1585/112 758/1314/76 +f 766/1300/76 758/1311/76 759/1313/111 +f 767/1298/111 759/1590/111 760/1332/93 +f 768/1295/93 760/1329/93 753/1331/110 +f 761/1310/110 753/1326/110 754/1328/74 +f 786/1275/75 785/1274/107 776/1308/107 +f 785/1270/107 792/1272/92 769/1296/92 +f 792/1291/92 791/1293/106 770/1294/106 +f 791/1290/106 790/1289/73 771/1297/73 +f 771/1297/73 790/1285/73 789/1287/104 +f 772/1299/104 789/1284/104 788/1283/105 +f 773/1305/105 788/1279/105 787/1281/108 +f 774/1303/108 787/1276/108 786/1278/75 +f 825/1336/104 832/1591/105 840/1337/105 +f 826/1339/73 825/1592/104 833/1340/104 +f 835/1342/106 827/1593/106 826/1343/73 +f 828/1345/92 827/1594/106 835/1346/106 +f 829/1348/107 828/1595/92 836/1349/92 +f 838/1351/75 830/1596/75 829/1352/107 +f 831/1354/108 830/1597/75 838/1355/75 +f 840/1357/105 832/1598/105 831/1358/108 +f 818/1360/91 815/1364/91 816/1361/72 +f 819/1363/88 814/1366/88 815/1364/91 +f 820/1365/103 813/1368/103 814/1366/88 +f 821/1367/71 812/1599/71 813/1368/103 +f 822/1369/102 811/1373/102 812/1370/71 +f 823/1372/87 810/1375/87 811/1373/102 +f 824/1374/90 809/1376/90 810/1375/87 +f 817/1362/72 816/1361/72 809/1376/90 +f 806/1377/74 798/1600/74 799/1378/109 +f 806/1380/74 805/1601/110 797/1381/110 +f 804/1383/93 796/1602/93 797/1384/110 +f 803/1386/111 795/1603/111 796/1387/93 +f 803/1389/111 802/1401/76 794/1390/76 +f 801/1392/112 793/1604/112 794/1393/76 +f 801/1395/112 808/1402/113 800/1396/113 +f 808/1398/113 807/1605/109 799/1399/109 +f 811/1373/109 810/1375/74 802/1401/74 +f 811/1373/109 803/1386/109 804/1388/113 +f 813/1368/112 812/1599/113 804/1383/113 +f 813/1368/112 805/1601/112 806/1380/76 +f 814/1366/76 806/1377/76 807/1379/111 +f 815/1364/111 807/1605/111 808/1398/93 +f 809/1376/110 816/1361/93 808/1402/93 +f 809/1376/110 801/1392/110 802/1394/74 +f 834/1341/75 833/1340/107 824/1374/107 +f 833/1338/107 840/1337/92 817/1362/92 +f 840/1357/92 839/1359/106 818/1360/106 +f 839/1356/106 838/1355/73 819/1363/73 +f 819/1363/73 838/1351/73 837/1353/104 +f 820/1365/104 837/1350/104 836/1349/105 +f 836/1347/105 835/1346/108 822/1369/108 +f 822/1369/108 835/1342/108 834/1344/75 +f 881/1403/104 873/1606/104 880/1404/105 +f 874/1406/73 873/1607/104 881/1407/104 +f 883/1409/106 875/1608/106 874/1410/73 +f 884/1412/92 876/1609/92 875/1413/106 +f 877/1415/107 876/1610/92 884/1416/92 +f 886/1418/75 878/1611/75 877/1419/107 +f 879/1421/108 878/1612/75 886/1422/75 +f 880/1424/105 879/1613/108 887/1425/108 +f 866/1427/91 863/1431/91 864/1428/72 +f 867/1430/88 862/1433/88 863/1431/91 +f 868/1432/103 861/1435/103 862/1433/88 +f 869/1434/71 860/1614/71 861/1435/103 +f 870/1436/102 859/1440/102 860/1437/71 +f 871/1439/87 858/1442/87 859/1440/102 +f 872/1441/90 857/1443/90 858/1442/87 +f 865/1429/72 864/1428/72 857/1443/90 +f 854/1444/74 846/1615/74 847/1445/109 +f 853/1447/110 845/1616/110 846/1448/74 +f 852/1450/93 844/1617/93 845/1451/110 +f 852/1453/93 851/1468/111 843/1454/111 +f 851/1456/111 850/1618/76 842/1457/76 +f 849/1459/112 841/1619/112 842/1460/76 +f 849/1462/112 856/1469/113 848/1463/113 +f 856/1465/113 855/1620/109 847/1466/109 +f 858/1442/74 850/1618/74 851/1456/109 +f 860/1437/113 859/1440/109 851/1468/109 +f 861/1435/112 860/1614/113 852/1450/113 +f 861/1435/112 853/1447/112 854/1449/76 +f 862/1433/76 854/1444/76 855/1446/111 +f 863/1431/111 855/1620/111 856/1465/93 +f 857/1443/110 864/1428/93 856/1469/93 +f 857/1443/110 849/1459/110 850/1461/74 +f 882/1408/75 881/1407/107 872/1441/107 +f 881/1403/107 888/1405/92 865/1429/92 +f 888/1426/92 887/1425/106 866/1427/106 +f 887/1423/106 886/1422/73 867/1430/73 +f 867/1430/73 886/1418/73 885/1420/104 +f 868/1432/104 885/1417/104 884/1416/105 +f 884/1412/105 883/1414/108 870/1436/108 +f 870/1436/108 883/1409/108 882/1411/75 +f 914/1470/91 911/1474/91 912/1471/72 +f 915/1473/88 910/1476/88 911/1474/91 +f 916/1475/103 909/1478/103 910/1476/88 +f 917/1477/71 908/1621/71 909/1478/103 +f 918/1479/102 907/1483/102 908/1480/71 +f 919/1482/87 906/1485/87 907/1483/102 +f 920/1484/90 905/1486/90 906/1485/87 +f 913/1472/72 912/1471/72 905/1486/90 +f 902/1487/74 894/1622/74 895/1488/109 +f 902/1490/74 901/1512/110 893/1491/110 +f 900/1493/93 892/1623/93 893/1494/110 +f 900/1496/93 899/1624/111 891/1497/111 +f 899/1499/111 898/1511/76 890/1500/76 +f 897/1502/112 889/1625/112 890/1503/76 +f 897/1505/112 904/1513/113 896/1506/113 +f 904/1508/113 903/1626/109 895/1509/109 +f 907/1483/109 906/1485/74 898/1511/74 +f 907/1483/109 899/1624/109 900/1496/113 +f 909/1478/112 908/1621/113 900/1493/113 +f 910/1476/76 909/1478/112 901/1512/112 +f 911/1474/111 910/1476/76 902/1487/76 +f 911/1474/111 903/1626/111 904/1508/93 +f 905/1486/110 912/1471/93 904/1513/93 +f 905/1486/110 897/1502/110 898/1504/74 +f 951/1514/75 967/1521/75 966/1515/94 +f 944/1517/95 960/1523/95 959/1518/76 +f 952/1520/96 968/1527/96 967/1521/75 +f 945/1522/85 961/1529/85 960/1523/95 +f 938/1524/97 954/1531/97 953/1525/89 +f 937/1526/89 953/1525/89 968/1527/96 +f 946/1528/98 962/1533/98 961/1529/85 +f 939/1530/73 955/1535/73 954/1531/97 +f 947/1532/74 963/1537/74 962/1533/98 +f 940/1534/99 956/1539/99 955/1535/73 +f 948/1536/100 964/1541/100 963/1537/74 +f 941/1538/88 957/1627/88 956/1539/99 +f 949/1540/87 965/1545/87 964/1541/100 +f 942/1542/101 958/1546/101 957/1543/88 +f 950/1516/94 966/1515/94 965/1545/87 +f 943/1519/76 959/1518/76 958/1546/101 diff --git a/src/main/resources/assets/hbm/textures/gui/machine/gui_radar_nt.png b/src/main/resources/assets/hbm/textures/gui/machine/gui_radar_nt.png new file mode 100644 index 0000000000000000000000000000000000000000..a6a4d174537830640fd06b4a553852c4a2643991 GIT binary patch literal 21545 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 Rp_}MOTI#xL#i~{z{{^P-o(}*3 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/machines/exposure_chamber.png b/src/main/resources/assets/hbm/textures/models/machines/exposure_chamber.png index ac26fc0796689144dd48af558deddc8cb19c1bea..658fb024b1d57bd2e1e39110a54e026912e434fb 100644 GIT binary patch literal 6849 zcma)BXH-*NmktO4F@hi<9i#|`PUuPzX*O!;^`%RVprI2mA|Ta5@1PO_66qpcr9%)A zLMKXx(0d8Y<^9&0S@UZqKhC}P)V=q4&a?MEi80XAxlG4F2LgdE-_zAJ0)Z$Lf%jQj zFi=8v6kh=kDnE^Ta9ZFOLhBR_0&xV~)4T%@$XcBY^<>^pr`f=*T4-2H@~k@ydq8&c z%?01{lT*^#xcw9uhp?q$;r}l`37!|jo7xA&lw>}jcV<%-ZgyhT97|740cS`9UiHyto+_f z`VMO*a3o#f86U|$-4w+QDK^@6%}8@TiX;B+vK!&CA{6H8-D=dEW$9YEkY}|;T{rMU zSBRk_FD_xcX?SCvduVy6Bl+<}Ap*8;G1%;jgKUfK@u*ErCK<6nd{d_(EVv`uAtdha@q_poTCz|t+ z@j@1Hr)9W2h$Ul2x<8?{L2&C5Sdn+Lf;-EsH5tP!h88GjaR>*B?&IhqR6pvvc;xaG zx_i1G;H2g%3{!{6Gi}$RMpdeUf@etNM`w%n8Mc?qShV2K9lD|Gf@OZgf0y(<2fvA)XO z2;`sHEhSwealvAGtn!6$3O(k@Tq_0;8y6Q9sH(R10?78bE9O;0uI{y%PFnFKnJ{{Z zw;QB-<0NNx{r#JYb*GL%?M6Cpw)FGyKXNig3Y>W#;qSetj#?Mt76}iGnA@J9M{J&? z!4&68xA$cAV_ADwyd)boDBC-#=LH7bn8#~+tTUAAgtPAbRrxSW$EE!sXW;quW>O zA$pSjJ@URn6moLt-`4H(mSF$cPR5R_C;E0P_bVZK4_8-LqqPg$rw82NqB^(8dRkMw z%=`(J3krJd6RBZx(Im~~rKXDwr=zzf`iWa!SFBPjz)=sJ53QkZSI27?;7sr>@*Tr2 zdjSQVZJ${fl6|5kB2ybNjxrP1$X5>8_N1#2o4KS`AAZ4qdd(Z$VF^F$E?yOr*@o_t z@4%2=Rs6YwY zG2KCeYmbeT3u~Uv-sdmmo|sCIMP}iEjsYiqq9c_W4&qS8n69i=FVzyKD!(2)X-8}| z_yPR(;V_$%MLRy0&h{%x+QSh2sv0xv8U!xdR|i$`&=Fpq#u;GnoohP~z3iT0q(rv# zSXU_7-*JR7*IC@%K#ApPunJEWAy?laR?~^}C1A!h@*6fXN#nB8Xr>Z+5JfLx8qdQJ ze3j0&!H*G`zWwo6b#)Ki+*|+*jJ^!eGV#~xdC=#eQDJ>~^kY+Jn`t;ee4-W#ZoyDPsETTdIi(Q6w-8~iipF}K! zzZzBC9WG!pDgV@WQ?u|98*j7i&#k)sA~8{l9ljk+Ox2pVj&YyT%8q)G2;E+pd9;(! z9YOwURZikq{m3uy8Si(N>Ts?Cn0p*Q{PMgdh4V(Dt+`?-xp z&fWm}{4u>%rO|PB#k>(qa+W*#F|2-y42Rn$dXe-JZ)o#k*Lj^X=VK#fjvYCbtyZ;vC^2+2hLeBPFFyk;TJNj6{z9f>BFu(CdVXw^Rn z%A>Bmw(i-|xe=e`rEy8n(^59!F0Z^sN_GEebwfBLp&CQw*80(C=AAPtg~vW~MjEV~ zng)BejdC->uo~%B*sL{RI9gYUDwo-~b6zr6^v5E_ajk0)ER)8A*1$DwS;ywY}^ z`xWB^Qi2TAxa2hROjw84O}hR0zs(+{Z!xY%RevS42DF*(SvR`W>-+tjWX)`EdL7hR z5hpyw)83SPNesOm;dJ*jCfBj&Z?w3NR*z09e@%nj^t|S_Lzz1Jqc}FZ_6~VuQDc@u zE3S8;FGMwBqRhX4=O%5R%J5Q;_&T|Z)_Xb_@dUqeNV2MH!8{KAsNcFfP#(wYhZwKq zKRc~J<9K8Nx&}_V5>D;7Y}f(-uOL-PX#%^==9aUk`h4B6hnWB6`vJR>RlcIz5cA+$ zzf$I`A`kuukHsIdA`E+tx(##{TdOY$~UQmKzVKP!l6 zdtoZ6E-14cHC*s!gKcq3RPeKf($QwLbWa0ofO{Nq53OJG&%v)G=gZFd^v~q&2ie=I zQ1JyKiirJH>h+E?rawbbRvSZh9*N&G@ggnhm$WnMQVFv2C{6CVtd`CX*CA({P;H6J zEFtQebL~0=YrVvRNZQEdjcrNfyzB%SzntVe3||z$jy9v#@Nvy7TCFR&jfG!kp1RRj zoJoksEj98mYqfUm@(yOi0O#@KCHv$Ftj4qWcbvTDm%gBS=MPHMR$fy>7CoyLvGqeBOVoDVF5co)?r`mx+>y6q0-t)#G!DLOKzh*4rx6TJ7hJ0tdJ7oA-sC6dzr4r z?Bm@Pas4NYkc68??{0wjpIon5n~51zrFg?{RfwI-|9rd zCy(!o8*)85BVOf?0Yx`hI2Ic?o`NtT_JbehpGQo})cY)b)WWl81;Ue3*ZS>R_Kc{s zT~AZbm|N8pEZ40Vz6LQ+s|2{v%#nmV42#{JXp|c#(^6+hfq=P2=PXToa)w^V8EPQA zhVOLV&KXZQD0Q4Rs^orR@1rq()(m+NFyWB-`w z&c|q%bR_cbo20+d-BB-yODJ^Qg$5{1mj*6T*SqkI_K-HGDwYH`m+$hhth8wp>-MY3 zypnF=B+4*E&my{0|~1@m`St#SOkiO`LB=FJ6vzd7VCdf&T67Qn$7`JV46HQ zct(mQu&XfTg!$*B;<=3r`@@<$)ERNafOn<0YI1rU>#PrULCn(OqAqP&R-YX|n0wcn z?(u+Py8(l80qZ0ie)>+mge6bgLF)lS;#U{!fEe?m`$O5rbE*o^zW`J8O(gg+ZEQD^ zPkhU}iM=Y!0Pj8jqh_lGr~t6{-z8OGGUGC5gxuj+>uXqZEgGgDWc0W&hOvMCE^)yl z7qvVq`JxUrJ$`yv#r&qK%;w{ivAes(K_5A+KjJMlFAS!*6{1HO*5seNUVV0QLVkP? ztCbCp^)S;hP#}18PXymLam~lV($cL?w|GyXpK!@&)@pIxMyEFpvr-mp8%yc`v@ZuG4nB zBG4>L`5V`~WB)Y?vUauOEY+quy3;O2ES}|ED+`(;0i*kG_TaOt4Wtm3N)t=|4Yx#c z9qi!z6kgL!Dn)N1Nad2y*ZQ-+Q)K*lVgc|on|speMy zb_DC>Yy|0n!osBHojRk~xdIDz1s=JPb>F(?s!2(OD-TYS$z+yn0b+Ul@bu%+FLqF^Dd=onM`jC6P^)=#tU&H+N>C2a3G0Q3uSMuge z2YY8o96J{yH7iV!A7pH7oR*Q%ZQ--O*sTLc*@Ja7M5@HCbaZHxm6hX~kB^SJD|}Q7 zz*k|4Od8i)z4|ib+Si5kbHolBOCNo*?Im{l1x*_X2MzCai{jW;{%$IQ@|v4@6K`+n zPK7G&+RO>KO99pn?4GFo9dlUz)ZQKh`ut=@Ti~sz6R%#V*;weICiA8e^z*wYdsh`ciT{aI%-fQwVXyJ|vTRZk#sgK;QbhO5+27Z?ov zm~=g{xB3GhR&VFTTK#&{o5YAj3|?a2ZsX|6d}OHMJ=#dwIX5paEffmX{#D~SXOuB? za(1Vb5G5rEByZQ5Il_4YXJ5xrNcL0%+A0SV%cHh@es6Q`GrZRYutB9-Fh4_(QFK9Q zzDu?1Ap#qUXkcSV02VO^cR&(CO2;To%m01t{t>%L>|{Uh!$_S1^aTVAi5LV2_28Tl z$a7Wy?o~ys?2+}goxf#{^IUwIK0%z1`qjNb3&`6tyCcREK)S9-wuzqc(v4d2C?_@D z;;a3!v6qOtP}HooRNvi%5rp_n5BcKVo24e;HK8nby%P$Qc(!LN7X+;BGAr?kquc+z=LKq>rKi`P?R_%AFmM2OonDYH<@*1HBHie-bG}RKA3kgjJWX9WGVU5(sph zvw(cqvDw-8o57_`zPYzD*dk<>$KoD!=0`#jSU$)`5H1B3DE!!`LgiGRF%I^NA{Hzz}mp^pw;TA+R11LnQR(^VV z%Fzy90CgRrkxNBY+yZdO|GnaPt+RQ6=C6~pGVoo{Fq@*GeVb9Tr5s3kw}Os4{`S=x z(AEIF*l=Qbj*IB6Ef01s;GA{GI-h$i%K!a1hXinrH3JW;A$a=Z0=k5mV#Aw3!NIW^ z{(tXZKR&5HA)7q&Ae6B<=)qe)G-3WA*fQn4zUAMIdKFZ7s1l+!-M@dlPqy`~mvrwV z6798IB>4F^for5xIdml_1O8JJ23d_cUxEdQ?D*-#&Sh)af}%^Z)6&%a{S|K9xbf;p zx;bin;rK8N)zoan|0wo~*Bi$8&S(kmZ-3`$GaL+h{FLx7y| zX8q$obfJx7n^BDx&VDXvLm9;e&AvD8M z>m%HqA)&YTK;bq?uzjs;eRi$|t=*RSzD)L6uEo~Am6^P)ZhG&duTC;ufrjMnHR%To zzAUO-c2YD7svk`O`M^|Y%P_r##i`)+xkJCMr9ph6--lnkI-fpsXX$TB|5ho|&n^3> zMf8zSfBujFG>=*pU=$0siTlFcN>1PfW3jtX+|trx97BY43q*pimwHhwvC?!=iGz&| zV^QZT)c?;#O{J(_Vn{a-we@L|cFz^(TX>qFdEjuAEwYfrZXGW5Maje6y_?n-2?m4R zK~I|AhY9>T1hAajErE74dw-IVkrBt28k(@Yvf@`$YpD}i^83)w{f0xwY7>Tp)zWNA z_G!^`K?u=BeYfSMWE`~*7d3QrEF?s!Ys$Mfs)G3WYo%Hk4eh1Ri*iVrrgxwC61;|h zSmIP#`Iv%I_&iRrmhD=*apb(Ud?ekH?B?tHYl!TMGSqBN?`h0FZ9^R2u8$=2kFRuq z%nE$W}7$W1Gn8TR6#5Lro1iRuqWP9UUK2Ow6sEPYjEk(!4V&;r2>Z&2Mz*wSW$EET^=x z5|;gh%i_cr(E2>C0s^o9t9aR@`t0wIi=dXH-4!pwwaR$ByG;#=ti+u=xrgk~hU@hb zvFc6Xb9)PO$C;ht5QND$2}~MHguD+N0#3DgLIq*&m}|S{CmQ*y6o*hm1&SIF-T1{f^yBa~91Swq*ChwCtemU%!boC2lFt{L8 zUFrEEsovgq_Jw!~Qi2t8yUX%>32VK2X) zq4CZL)dl9;B-={&WBFWi|3WAP3BL!hrO0Qt|GOCZNr>W*2o-Rh{JpgfM%L%uTstX6 z7l%r1dIRq~ZpcQ>ECn7x1?{9zuHdH_6Da_2_KX95mADIN8#{huS{~uph&3$}) zl)2~~iz^-+WY$fL%gM|0bI}*p))LdUVV2u2MRAvd=(0-ugj*jdvi$K z9SjI1yPpJX!!M9~21Z8Gwlgpam7L>`9zFzt059)X!@`csZC_ofMXru<6cI*$)@mNb zTYH<@LDWf^qw%XGJbE#JENg402Aphn50CAmE74ff;NW^kaEFW{;2FUGU6{(e)5Qq^ nenhGzxznfbS~Rxn?1I_5(yYlI$zQ;KQlNWUdYWY#_Rs$dVDPKS literal 2278 zcmbtWYg7{076#NLD>aqO(lRGaNpUJ6%n7pOI*M8t`AR1%)5*fPB7{?2#Kl|w%6 zYxFkg0RVtC9zVMI0sugyrauB+p{Z9-AsL!Ro3!5p57v|m;ILl-0C0han=3vxUoNgq z6+Sl8{ZKTl`?|LQafufrw<0hc{N4?RBKa+}fAK<*uAT^3Zy6CH$?xr$hD{sFa!&Z~ z@Xzwgu!TjS787YerLR@QY2~ra5y*TSTuNF9YX~k#7fNF)2?q(6bNK9(czO^n z0$0mf#WNp>d0?IM&J?Zn?@2diKc9<0p@R9=P{S;m)&nErzJPL-r0H_EGJji?-l06j z(cBnfbsRj(a_UqNZ+ugW7V^PY-{{Te%z7VQguM9mO1i9hW6lb-2wI zk!1^fgW4iqvsXH*;km*rK}}&d7!$%lsa6w-!`k9IDb&IaONlL`Ft4+hPIwfIXY`fM zihZeeywfsik1Z5)xF;n1Nl||U40^;crX5`WXsQhdaiwI3x_I$%)~=L;xAuDTad%5s z6ohW<494#d@O-hd{?mGl!=*-!|62HaZQ-ddjP*_1St{m>^JuX_>Wj#l_sN4~Fmhc{ zR-y6P0c%M>hHsM3E${YV{JM&a)*9czwVAj+-+Y%s+)ze*%*eYq7AQ*3H z|7->5_)4UueF^7QsG!QJ(vdRJR9b$Oz;5JNpULg3Cj^Pb0yV`c29;9#}qb84jqM zd}QR4WU@USdwW~dd-xDm5&!niyr5O~oo?i}fThG8Dn`8Xmj<$Qt^6^GOz)R?cQ zW`)G|Y2NO0-E%kD!>!IxD+z~g`PK-AyLgMil|*+}5QKNcQPQZVKMcW_`g2OL$RS5u zi}la6IB2&=GFb0j^(wN~SV=)s=WHd~W-Qw|BXYACh7kFB&SnZ9H4S8@I733(+ETH7 zO@XGFV@^DUV~H~HC+|di*LCS+oLxUR?Sn!natKV_vW4ga$avVqF?pwuN>}Y>adrfn zLatj@6_9a2u9uEGB)B+wCD0wBfgxVeOD?6C=)rJ}$+Qw%5c5p*@{E>EL`y5w$+(M$mh4V;@Mb9N{B-@+evD4TPKfBiI|KJt z^>or{A~C)fwFgGJO>mU#O=ES*bZ1+IC}&e*S%# zs#zzMC1zDKZ+WD|DRTNIgQJwwxjiL81$)pc;qlcF4Y*1}a!nor@;kW9T#`>5k6Psx zryO5El`hD!()oweyuJm)L-*_`R3Aa%zT2=!o!pEKTC3VM=X*v9O+GN(|K=C_k##Mw zNQWaL)D}u^Pj3LKfYVXK96WrIBmcDOLO!XTWYd!UY`*Qva=9yjT^pNvd zyg1>_jO_SZ`66?Dn0mg2P^JoP-1`Ncu6$EIkTca8H0Nx8o4&mz z^5mZ8%I``uP-r}9LAgUj@R1?Pqn=24@AdRUuUc(yXzkT+rc|XXB-@(vF(sukewf<+^C8_^MQvQD{7YsP@5$kU-3Hq9k O3%~>8 Date: Mon, 13 Nov 2023 16:08:36 +0100 Subject: [PATCH 371/432] more radar crap --- changelog | 3 + src/main/java/api/hbm/entity/RadarEntry.java | 22 +++ .../inventory/recipes/ReformingRecipes.java | 10 ++ src/main/java/com/hbm/packet/BufPacket.java | 56 ++++++++ src/main/java/com/hbm/packet/NBTPacket.java | 2 + .../java/com/hbm/packet/PacketDispatcher.java | 15 +- .../com/hbm/packet/TEAssemblerPacket.java | 62 -------- .../hbm/packet/TERadarDestructorPacket.java | 62 -------- .../hbm/tileentity/IBufPacketReceiver.java | 9 ++ .../hbm/tileentity/TileEntityMachineBase.java | 34 ++--- .../java/com/hbm/tileentity/TileMappings.java | 3 + .../machine/TileEntityMachineRadarNT.java | 133 ++++++++++++++++-- 12 files changed, 250 insertions(+), 161 deletions(-) create mode 100644 src/main/java/com/hbm/packet/BufPacket.java delete mode 100644 src/main/java/com/hbm/packet/TEAssemblerPacket.java delete mode 100644 src/main/java/com/hbm/packet/TERadarDestructorPacket.java create mode 100644 src/main/java/com/hbm/tileentity/IBufPacketReceiver.java diff --git a/changelog b/changelog index 54fd44341..e03539fb7 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,6 @@ +## Changed +* Light oil and cracked light oil can now be refomred into large quantities of aromatic hydrocarbons a well as some reformate gas + ## Fixed * Fixed thorium bedrock ore using the wrong ore dict key, making it unable to be processed via centrifuge or acidizer * Fixed custom machine NEI slots going out of bounds after the third slot \ No newline at end of file diff --git a/src/main/java/api/hbm/entity/RadarEntry.java b/src/main/java/api/hbm/entity/RadarEntry.java index 540ec925b..56bb41df4 100644 --- a/src/main/java/api/hbm/entity/RadarEntry.java +++ b/src/main/java/api/hbm/entity/RadarEntry.java @@ -1,5 +1,7 @@ package api.hbm.entity; +import cpw.mods.fml.common.network.ByteBufUtils; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; @@ -12,6 +14,8 @@ public class RadarEntry { public int posZ; public int dim; + public RadarEntry() { } //blank ctor for packets + public RadarEntry(String name, int level, int x, int y, int z, int dim) { this.unlocalizedName = name; this.blipLevel = level; @@ -32,4 +36,22 @@ public class RadarEntry { public RadarEntry(EntityPlayer player) { this(player.getDisplayName(), IRadarDetectableNT.PLAYER, (int) Math.floor(player.posX), (int) Math.floor(player.posY), (int) Math.floor(player.posZ), player.dimension); } + + public void fromBytes(ByteBuf buf) { + this.unlocalizedName = ByteBufUtils.readUTF8String(buf); + this.blipLevel = buf.readShort(); + this.posX = buf.readInt(); + this.posY = buf.readInt(); + this.posZ = buf.readInt(); + this.dim = buf.readShort(); + } + + public void toBytes(ByteBuf buf) { + ByteBufUtils.writeUTF8String(buf, this.unlocalizedName); + buf.writeShort(this.blipLevel); + buf.writeInt(this.posX); + buf.writeInt(this.posY); + buf.writeInt(this.posZ); + buf.writeShort(this.dim); + } } diff --git a/src/main/java/com/hbm/inventory/recipes/ReformingRecipes.java b/src/main/java/com/hbm/inventory/recipes/ReformingRecipes.java index 238e5bca9..168fbe902 100644 --- a/src/main/java/com/hbm/inventory/recipes/ReformingRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ReformingRecipes.java @@ -32,6 +32,16 @@ public class ReformingRecipes extends SerializableRecipe { new FluidStack(Fluids.AROMATICS, 10), new FluidStack(Fluids.HYDROGEN, 5) )); + recipes.put(Fluids.LIGHTOIL, new Triplet( + new FluidStack(Fluids.AROMATICS, 50), + new FluidStack(Fluids.REFORMGAS, 10), + new FluidStack(Fluids.HYDROGEN, 15) + )); + recipes.put(Fluids.LIGHTOIL_CRACK, new Triplet( + new FluidStack(Fluids.AROMATICS, 50), + new FluidStack(Fluids.REFORMGAS, 5), + new FluidStack(Fluids.HYDROGEN, 20) + )); recipes.put(Fluids.PETROLEUM, new Triplet( new FluidStack(Fluids.UNSATURATEDS, 85), new FluidStack(Fluids.REFORMGAS, 10), diff --git a/src/main/java/com/hbm/packet/BufPacket.java b/src/main/java/com/hbm/packet/BufPacket.java new file mode 100644 index 000000000..b2a158ef8 --- /dev/null +++ b/src/main/java/com/hbm/packet/BufPacket.java @@ -0,0 +1,56 @@ +package com.hbm.packet; + +import com.hbm.tileentity.IBufPacketReceiver; + +import cpw.mods.fml.common.network.simpleimpl.IMessage; +import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; +import cpw.mods.fml.common.network.simpleimpl.MessageContext; +import io.netty.buffer.ByteBuf; +import net.minecraft.client.Minecraft; +import net.minecraft.tileentity.TileEntity; + +public class BufPacket implements IMessage { + + int x; + int y; + int z; + IBufPacketReceiver rec; + ByteBuf buf; + + public BufPacket() { } + + public BufPacket(int x, int y, int z, IBufPacketReceiver rec) { + this.x = x; + this.y = y; + this.z = z; + this.rec = rec; + } + + @Override + public void fromBytes(ByteBuf buf) { + this.buf = buf; + } + + @Override + public void toBytes(ByteBuf buf) { + this.rec.serialize(buf); + } + + public static class Handler implements IMessageHandler { + + @Override + public IMessage onMessage(BufPacket m, MessageContext ctx) { + + if(Minecraft.getMinecraft().theWorld == null) + return null; + + TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(m.x, m.y, m.z); + + if(te instanceof IBufPacketReceiver) { + ((IBufPacketReceiver) te).deserialize(m.buf); + } + + return null; + } + } +} diff --git a/src/main/java/com/hbm/packet/NBTPacket.java b/src/main/java/com/hbm/packet/NBTPacket.java index 80645347d..3bd5afbcb 100644 --- a/src/main/java/com/hbm/packet/NBTPacket.java +++ b/src/main/java/com/hbm/packet/NBTPacket.java @@ -14,6 +14,8 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.PacketBuffer; import net.minecraft.tileentity.TileEntity; + +@Deprecated // rest in peace sweet little prince public class NBTPacket implements IMessage { PacketBuffer buffer; diff --git a/src/main/java/com/hbm/packet/PacketDispatcher.java b/src/main/java/com/hbm/packet/PacketDispatcher.java index 3d94f2d10..d56e9407a 100644 --- a/src/main/java/com/hbm/packet/PacketDispatcher.java +++ b/src/main/java/com/hbm/packet/PacketDispatcher.java @@ -21,8 +21,6 @@ public class PacketDispatcher { wrapper.registerMessage(TEDrillPacket.Handler.class, TEDrillPacket.class, i++, Side.CLIENT); //Mining drill torque for sounds wrapper.registerMessage(TEDrillSoundPacket.Handler.class, TEDrillSoundPacket.class, i++, Side.CLIENT); - //Assembler cog rotation for rendering - wrapper.registerMessage(TEAssemblerPacket.Handler.class, TEAssemblerPacket.class, i++, Side.CLIENT); //Missile type for rendering wrapper.registerMessage(TEMissilePacket.Handler.class, TEMissilePacket.class, i++, Side.CLIENT); //Fluid packet for GUI @@ -33,16 +31,12 @@ public class PacketDispatcher { wrapper.registerMessage(ItemFolderPacket.Handler.class, ItemFolderPacket.class, i++, Side.SERVER); //Electricity gauge for GUI rendering wrapper.registerMessage(AuxElectricityPacket.Handler.class, AuxElectricityPacket.class, i++, Side.CLIENT); - //Universal package for machine gauges and states - wrapper.registerMessage(AuxGaugePacket.Handler.class, AuxGaugePacket.class, i++, Side.CLIENT); //Siren packet for looped sounds wrapper.registerMessage(TESirenPacket.Handler.class, TESirenPacket.class, i++, Side.CLIENT); //Signals server to change ItemStacks wrapper.registerMessage(ItemDesignatorPacket.Handler.class, ItemDesignatorPacket.class, i++, Side.SERVER); //Siren packet for looped sounds wrapper.registerMessage(TERadarPacket.Handler.class, TERadarPacket.class, i++, Side.CLIENT); - //Siren packet for looped sounds - wrapper.registerMessage(TERadarDestructorPacket.Handler.class, TERadarDestructorPacket.class, i++, Side.CLIENT); //Signals server to perform orbital strike, among other things wrapper.registerMessage(SatLaserPacket.Handler.class, SatLaserPacket.class, i++, Side.SERVER); //Universal package for sending small info packs back to server @@ -57,7 +51,7 @@ public class PacketDispatcher { wrapper.registerMessage(ExtPropPacket.Handler.class, ExtPropPacket.class, i++, Side.CLIENT); //Entity sound packet that keeps client and server separated wrapper.registerMessage(LoopedEntitySoundPacket.Handler.class, LoopedEntitySoundPacket.class, i++, Side.CLIENT); - //Entity sound packet that keeps client and server separated + //Packet for force fields wrapper.registerMessage(TEFFPacket.Handler.class, TEFFPacket.class, i++, Side.CLIENT); //Sends button information for ItemGunBase wrapper.registerMessage(GunButtonPacket.Handler.class, GunButtonPacket.class, i++, Side.SERVER); @@ -67,8 +61,6 @@ public class PacketDispatcher { wrapper.registerMessage(ItemBobmazonPacket.Handler.class, ItemBobmazonPacket.class, i++, Side.SERVER); //Packet to send missile multipart information to TEs wrapper.registerMessage(TEMissileMultipartPacket.Handler.class, TEMissileMultipartPacket.class, i++, Side.CLIENT); - //Packet to send NBT data to tile entities - wrapper.registerMessage(NBTPacket.Handler.class, NBTPacket.class, i++, Side.CLIENT); //Aux Particle Packet, New Technology: like the APP but with NBT wrapper.registerMessage(AuxParticlePacketNT.Handler.class, AuxParticlePacketNT.class, i++, Side.CLIENT); //Signals server to do coord based satellite stuff @@ -97,6 +89,11 @@ public class PacketDispatcher { wrapper.registerMessage(PermaSyncPacket.Handler.class, PermaSyncPacket.class, i++, Side.CLIENT); //Syncs biome information for single positions or entire chunks wrapper.registerMessage(BiomeSyncPacket.Handler.class, BiomeSyncPacket.class, i++, Side.CLIENT); + + //Tile sync + wrapper.registerMessage(AuxGaugePacket.Handler.class, AuxGaugePacket.class, i++, Side.CLIENT); //The horrid one + wrapper.registerMessage(NBTPacket.Handler.class, NBTPacket.class, i++, Side.CLIENT); //The convenient but laggy one + wrapper.registerMessage(BufPacket.Handler.class, BufPacket.class, i++, Side.CLIENT); //The not-so-convenient but not laggy one } } diff --git a/src/main/java/com/hbm/packet/TEAssemblerPacket.java b/src/main/java/com/hbm/packet/TEAssemblerPacket.java deleted file mode 100644 index fddaeedcb..000000000 --- a/src/main/java/com/hbm/packet/TEAssemblerPacket.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.hbm.packet; - -import com.hbm.tileentity.machine.TileEntityMachineAssembler; - -import cpw.mods.fml.common.network.simpleimpl.IMessage; -import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; -import cpw.mods.fml.common.network.simpleimpl.MessageContext; -import io.netty.buffer.ByteBuf; -import net.minecraft.client.Minecraft; -import net.minecraft.tileentity.TileEntity; - -public class TEAssemblerPacket implements IMessage { - - int x; - int y; - int z; - boolean progress; - - public TEAssemblerPacket() - { - - } - - public TEAssemblerPacket(int x, int y, int z, boolean bool) - { - this.x = x; - this.y = y; - this.z = z; - this.progress = bool; - } - - @Override - public void fromBytes(ByteBuf buf) { - x = buf.readInt(); - y = buf.readInt(); - z = buf.readInt(); - progress = buf.readBoolean(); - } - - @Override - public void toBytes(ByteBuf buf) { - buf.writeInt(x); - buf.writeInt(y); - buf.writeInt(z); - buf.writeBoolean(progress); - } - - public static class Handler implements IMessageHandler { - - @Override - public IMessage onMessage(TEAssemblerPacket m, MessageContext ctx) { - TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(m.x, m.y, m.z); - - if (te != null && te instanceof TileEntityMachineAssembler) { - - TileEntityMachineAssembler gen = (TileEntityMachineAssembler) te; - gen.isProgressing = m.progress; - } - return null; - } - } -} diff --git a/src/main/java/com/hbm/packet/TERadarDestructorPacket.java b/src/main/java/com/hbm/packet/TERadarDestructorPacket.java deleted file mode 100644 index 4b5a14763..000000000 --- a/src/main/java/com/hbm/packet/TERadarDestructorPacket.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.hbm.packet; - -import com.hbm.tileentity.machine.TileEntityMachineRadar; - -import cpw.mods.fml.common.network.simpleimpl.IMessage; -import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; -import cpw.mods.fml.common.network.simpleimpl.MessageContext; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import io.netty.buffer.ByteBuf; -import net.minecraft.client.Minecraft; -import net.minecraft.tileentity.TileEntity; - -public class TERadarDestructorPacket implements IMessage { - - int x; - int y; - int z; - - public TERadarDestructorPacket() { - - } - - public TERadarDestructorPacket(int x, int y, int z) { - this.x = x; - this.y = y; - this.z = z; - } - - @Override - public void fromBytes(ByteBuf buf) { - x = buf.readInt(); - y = buf.readInt(); - z = buf.readInt(); - } - - @Override - public void toBytes(ByteBuf buf) { - buf.writeInt(x); - buf.writeInt(y); - buf.writeInt(z); - } - - public static class Handler implements IMessageHandler { - - @Override - @SideOnly(Side.CLIENT) - public IMessage onMessage(TERadarDestructorPacket m, MessageContext ctx) { - TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(m.x, m.y, m.z); - - try { - if (te != null && te instanceof TileEntityMachineRadar) { - - TileEntityMachineRadar radar = (TileEntityMachineRadar) te; - radar.nearbyMissiles.clear(); - } - } catch (Exception x) { - } - return null; - } - } -} diff --git a/src/main/java/com/hbm/tileentity/IBufPacketReceiver.java b/src/main/java/com/hbm/tileentity/IBufPacketReceiver.java new file mode 100644 index 000000000..4250d6edd --- /dev/null +++ b/src/main/java/com/hbm/tileentity/IBufPacketReceiver.java @@ -0,0 +1,9 @@ +package com.hbm.tileentity; + +import io.netty.buffer.ByteBuf; + +public interface IBufPacketReceiver { + + public void serialize(ByteBuf buf); + public void deserialize(ByteBuf buf); +} diff --git a/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java b/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java index 996a216b9..f90a124e2 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java +++ b/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java @@ -2,10 +2,12 @@ package com.hbm.tileentity; import com.hbm.blocks.ModBlocks; import com.hbm.packet.AuxGaugePacket; +import com.hbm.packet.BufPacket; import com.hbm.packet.NBTPacket; import com.hbm.packet.PacketDispatcher; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; @@ -14,7 +16,7 @@ import net.minecraft.nbt.NBTTagList; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidTank; -public abstract class TileEntityMachineBase extends TileEntityLoadedBase implements ISidedInventory, INBTPacketReceiver { +public abstract class TileEntityMachineBase extends TileEntityLoadedBase implements ISidedInventory, INBTPacketReceiver, IBufPacketReceiver { public ItemStack slots[]; @@ -147,23 +149,23 @@ public abstract class TileEntityMachineBase extends TileEntityLoadedBase impleme @Override public abstract void updateEntity(); - @Deprecated - public void updateGauge(int val, int id, int range) { - - if(!worldObj.isRemote) - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, val, id), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range)); + @Deprecated public void updateGauge(int val, int id, int range) { + if(!worldObj.isRemote) PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, val, id), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range)); + } + @Deprecated public void processGauge(int val, int id) { } + + @Deprecated public void networkPack(NBTTagCompound nbt, int range) { + if(!worldObj.isRemote) PacketDispatcher.wrapper.sendToAllAround(new NBTPacket(nbt, xCoord, yCoord, zCoord), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range)); + } + @Deprecated public void networkUnpack(NBTTagCompound nbt) { } + + /** Sends a sync packet that uses ByteBuf for efficient information-cramming */ + public void networkPackNT(int range) { + if(!worldObj.isRemote) PacketDispatcher.wrapper.sendToAllAround(new BufPacket(xCoord, yCoord, zCoord, this), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range)); } - @Deprecated - public void processGauge(int val, int id) { } - - public void networkPack(NBTTagCompound nbt, int range) { - - if(!worldObj.isRemote) - PacketDispatcher.wrapper.sendToAllAround(new NBTPacket(nbt, xCoord, yCoord, zCoord), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range)); - } - - public void networkUnpack(NBTTagCompound nbt) { } + @Override public void serialize(ByteBuf buf) { } + @Override public void deserialize(ByteBuf buf) { } @Deprecated public void handleButtonPacket(int value, int meta) { } diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 4e0500c15..2cf953045 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -231,6 +231,9 @@ public class TileMappings { putMachines(); putPile(); putRBMK(); + + TileEntityMachineRadarNT.registerEntityClasses(); + TileEntityMachineRadarNT.registerConverters(); } private static void putBombs() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java index db8f40435..e9d80203b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java @@ -1,25 +1,33 @@ package com.hbm.tileentity.machine; +import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.function.Function; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; +import com.hbm.extprop.HbmLivingProps; +import com.hbm.lib.Library; +import com.hbm.tileentity.IConfigurableMachine; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.Tuple.Pair; import api.hbm.entity.IRadarDetectable; import api.hbm.entity.IRadarDetectableNT; import api.hbm.entity.RadarEntry; +import io.netty.buffer.ByteBuf; import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.world.WorldServer; /** - * Now with SmЯt™ lag-free entity detection! + * Now with SmЯt™ lag-free entity detection! (patent pending) * @author hbm */ -public class TileEntityMachineRadarNT extends TileEntityMachineBase { +public class TileEntityMachineRadarNT extends TileEntityMachineBase implements IConfigurableMachine { public boolean scanMissiles = true; public boolean scanPlayers = true; @@ -28,6 +36,42 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase { public boolean jammed = false; + public float prevRotation; + public float rotation; + + public long power = 0; + + public static int maxPower = 100_000; + public static int consumption = 500; + public static int radarRange = 1_000; + public static int radarBuffer = 30; + public static int radarAltitude = 55; + + public List entries = new ArrayList(); + + @Override + public String getConfigName() { + return "radar"; + } + + @Override + public void readIfPresent(JsonObject obj) { + maxPower = IConfigurableMachine.grab(obj, "L:powerCap", maxPower); + consumption = IConfigurableMachine.grab(obj, "L:consumption", consumption); + radarRange = IConfigurableMachine.grab(obj, "I:radarRange", radarRange); + radarBuffer = IConfigurableMachine.grab(obj, "I:radarBuffer", radarBuffer); + radarAltitude = IConfigurableMachine.grab(obj, "I:radarAltitude", radarAltitude); + } + + @Override + public void writeConfig(JsonWriter writer) throws IOException { + writer.name("L:powerCap").value(maxPower); + writer.name("L:consumption").value(consumption); + writer.name("I:radarRange").value(radarRange); + writer.name("I:radarBuffer").value(radarBuffer); + writer.name("I:radarAltitude").value(radarAltitude); + } + public TileEntityMachineRadarNT() { super(1); } @@ -40,10 +84,81 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase { @Override public void updateEntity() { + if(!worldObj.isRemote) { + + this.power = Library.chargeTEFromItems(slots, 0, power, maxPower); + this.jammed = false; + allocateTargets(); + + this.networkPackNT(25); + } } - //List of lambdas that are supplied a Pair with the entity and radar in question to generate a RadarEntry - //The converters coming first have the highest priority + protected void allocateTargets() { + this.entries.clear(); + + if(this.yCoord < radarAltitude) return; + if(this.power <= consumption) return; + this.power -= consumption; + + int scan = this.scanRange(); + + for(Entity e : matchingEntities) { + + if(e.dimension == worldObj.provider.dimensionId && Math.abs(e.posX - (xCoord + 0.5)) <= scan && Math.abs(e.posZ - (zCoord + 0.5)) <= scan && e.posY - yCoord < radarBuffer) { + + if(e instanceof EntityLivingBase && HbmLivingProps.getDigamma((EntityLivingBase) e) > 0.001) { + this.jammed = true; + entries.clear(); + return; + } + + for(Function, RadarEntry> converter : converters) { + + RadarEntry entry = converter.apply(new Pair(e, this)); + if(entry != null) { + this.entries.add(entry); + break; + } + } + } + } + } + + protected int scanRange() { + return radarRange; + } + + @Override + public void serialize(ByteBuf buf) { + buf.writeLong(this.power); + buf.writeBoolean(this.scanMissiles); + buf.writeBoolean(this.scanPlayers); + buf.writeBoolean(this.smartMode); + buf.writeBoolean(this.redMode); + buf.writeBoolean(this.jammed); + buf.writeInt(entries.size()); + for(RadarEntry entry : entries) entry.toBytes(buf); + } + + @Override + public void deserialize(ByteBuf buf) { + this.power = buf.readLong(); + this.scanMissiles = buf.readBoolean(); + this.scanPlayers = buf.readBoolean(); + this.smartMode = buf.readBoolean(); + this.redMode = buf.readBoolean(); + this.jammed = buf.readBoolean(); + int count = buf.readInt(); + for(int i = 0; i < count; i++) { + RadarEntry entry = new RadarEntry(); + entry.fromBytes(buf); + this.entries.add(entry); + } + } + + /** List of lambdas that are supplied a Pair with the entity and radar in question to generate a RadarEntry + The converters coming first have the highest priority */ public static List, RadarEntry>> converters = new ArrayList(); public static List classes = new ArrayList(); public static List matchingEntities = new ArrayList(); @@ -87,18 +202,12 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase { }); //IRadarDetectable, Legacy converters.add(x -> { - Entity e = x.getKey(); - if(e instanceof IRadarDetectable) { - return new RadarEntry((IRadarDetectable) e, e); - } + if(x.getKey() instanceof IRadarDetectable) return new RadarEntry((IRadarDetectable) x.getKey(), x.getKey()); return null; }); //Players converters.add(x -> { - Entity e = x.getKey(); - if(e instanceof EntityPlayer) { - return new RadarEntry((EntityPlayer) e); - } + if(x.getKey() instanceof EntityPlayer) return new RadarEntry((EntityPlayer) x.getKey()); return null; }); } From 15ceba150118509732c072be39ba93e85b25be49 Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 14 Nov 2023 15:22:35 +0100 Subject: [PATCH 372/432] even more radar stuff --- .../hbm/inventory/gui/GUIMachineRadarNT.java | 63 ++++++++++++++++++ .../machine/TileEntityCustomMachine.java | 14 ++-- .../machine/TileEntityMachineRadarNT.java | 52 ++++++++++++++- .../hbm/textures/gui/machine/gui_radar_nt.png | Bin 21545 -> 21661 bytes 4 files changed, 120 insertions(+), 9 deletions(-) create mode 100644 src/main/java/com/hbm/inventory/gui/GUIMachineRadarNT.java diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNT.java b/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNT.java new file mode 100644 index 000000000..3c91249bf --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNT.java @@ -0,0 +1,63 @@ +package com.hbm.inventory.gui; + +import java.util.Arrays; + +import org.lwjgl.opengl.GL11; + +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.machine.TileEntityMachineRadarNT; +import com.hbm.util.I18nUtil; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.util.ResourceLocation; + +public class GUIMachineRadarNT extends GuiScreen { + + protected static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/machine/gui_radar_nt.png"); + + protected TileEntityMachineRadarNT radar; + protected int xSize = 216; + protected int ySize = 234; + protected int guiLeft; + protected int guiTop; + + public GUIMachineRadarNT(TileEntityMachineRadarNT tile) { + this.radar = tile; + } + + @Override + public void initGui() { + super.initGui(); + this.guiLeft = (this.width - this.xSize) / 2; + this.guiTop = (this.height - this.ySize) / 2; + } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + this.drawDefaultBackground(); + this.drawGuiContainerBackgroundLayer(f, mouseX, mouseY); + GL11.glDisable(GL11.GL_LIGHTING); + this.drawGuiContainerForegroundLayer(mouseX, mouseY); + GL11.glEnable(GL11.GL_LIGHTING); + } + + private void drawGuiContainerForegroundLayer(int x, int y) { + if(checkClick(x, y, -10, 88, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.detectMissiles")), x, y); + if(checkClick(x, y, -10, 98, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.detectShells")), x, y); + if(checkClick(x, y, -10, 108, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.detectPlayers")), x, y); + if(checkClick(x, y, -10, 118, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.smartMode")), x, y); + if(checkClick(x, y, -10, 128, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.redMode")), x, y); + if(checkClick(x, y, -10, 138, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.showMap")), x, y); + } + + private void drawGuiContainerBackgroundLayer(float f, int mouseX, int mouseY) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + } + + protected boolean checkClick(int x, int y, int left, int top, int sizeX, int sizeY) { + return guiLeft + left <= x && guiLeft + left + sizeX > x && guiTop + top < y && guiTop + top + sizeY >= y; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java index 4803e6e38..9c906623d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java @@ -185,7 +185,7 @@ public class TileEntityCustomMachine extends TileEntityMachineBase implements IF /** Only accepts inputs in a fixed order, saves a ton of performance because there's no permutations to check for */ public CustomMachineRecipe getMatchingRecipe() { - List recipes = CustomMachineRecipes.recipes.get(this.machineType); + List recipes = CustomMachineRecipes.recipes.get(this.config.recipeKey); if(recipes == null || recipes.isEmpty()) return null; outer: @@ -391,11 +391,11 @@ public class TileEntityCustomMachine extends TileEntityMachineBase implements IF for(int i = 0; i < outputTanks.length; i++) outputTanks[i].readFromNBT(nbt, "o" + i); this.matcher.readFromNBT(nbt); - } - - int index = nbt.getInteger("cachedIndex"); - if(index != -1) { - this.cachedRecipe = CustomMachineRecipes.recipes.get(this.machineType).get(index); + + int index = nbt.getInteger("cachedIndex"); + if(index != -1) { + this.cachedRecipe = CustomMachineRecipes.recipes.get(this.config.recipeKey).get(index); + } } } @@ -417,7 +417,7 @@ public class TileEntityCustomMachine extends TileEntityMachineBase implements IF this.matcher.writeToNBT(nbt); if(this.cachedRecipe != null) { - int index = CustomMachineRecipes.recipes.get(this.machineType).indexOf(this.cachedRecipe); + int index = CustomMachineRecipes.recipes.get(this.config.recipeKey).indexOf(this.cachedRecipe); nbt.setInteger("cachedIndex", index); } else { nbt.setInteger("cachedIndex", -1); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java index e9d80203b..d5911b2a2 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java @@ -8,31 +8,41 @@ import java.util.function.Function; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; import com.hbm.extprop.HbmLivingProps; +import com.hbm.inventory.gui.GUIMachineRadarNT; import com.hbm.lib.Library; import com.hbm.tileentity.IConfigurableMachine; +import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.Tuple.Pair; import api.hbm.entity.IRadarDetectable; import api.hbm.entity.IRadarDetectableNT; import api.hbm.entity.RadarEntry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import io.netty.buffer.ByteBuf; import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; import net.minecraft.world.WorldServer; /** * Now with SmЯt™ lag-free entity detection! (patent pending) * @author hbm */ -public class TileEntityMachineRadarNT extends TileEntityMachineBase implements IConfigurableMachine { - +public class TileEntityMachineRadarNT extends TileEntityMachineBase implements IGUIProvider, IConfigurableMachine { + public boolean scanMissiles = true; + public boolean scanShells = true; public boolean scanPlayers = true; public boolean smartMode = true; public boolean redMode = true; + public boolean showMap = false; public boolean jammed = false; @@ -133,9 +143,11 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I public void serialize(ByteBuf buf) { buf.writeLong(this.power); buf.writeBoolean(this.scanMissiles); + buf.writeBoolean(this.scanShells); buf.writeBoolean(this.scanPlayers); buf.writeBoolean(this.smartMode); buf.writeBoolean(this.redMode); + buf.writeBoolean(this.showMap); buf.writeBoolean(this.jammed); buf.writeInt(entries.size()); for(RadarEntry entry : entries) entry.toBytes(buf); @@ -145,9 +157,11 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I public void deserialize(ByteBuf buf) { this.power = buf.readLong(); this.scanMissiles = buf.readBoolean(); + this.scanShells = buf.readBoolean(); this.scanPlayers = buf.readBoolean(); this.smartMode = buf.readBoolean(); this.redMode = buf.readBoolean(); + this.showMap = buf.readBoolean(); this.jammed = buf.readBoolean(); int count = buf.readInt(); for(int i = 0; i < count; i++) { @@ -157,6 +171,40 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I } } + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 1, + yCoord, + zCoord - 1, + xCoord + 2, + yCoord + 3, + zCoord + 2 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() + { + return 65536.0D; + } + + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return null; } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIMachineRadarNT(this); + } + /** List of lambdas that are supplied a Pair with the entity and radar in question to generate a RadarEntry The converters coming first have the highest priority */ public static List, RadarEntry>> converters = new ArrayList(); diff --git a/src/main/resources/assets/hbm/textures/gui/machine/gui_radar_nt.png b/src/main/resources/assets/hbm/textures/gui/machine/gui_radar_nt.png index a6a4d174537830640fd06b4a553852c4a2643991..690e1b5f5fa1706b4b2f8aa6a7daad7435912487 100644 GIT binary patch literal 21661 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 F?0>iMUBUnW literal 21545 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 Rp_}MOTI#xL#i~{z{{^P-o(}*3 From c5f30afab0661a6a0435f5faefcbb2528e21c730 Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Tue, 14 Nov 2023 18:17:03 -0600 Subject: [PATCH 373/432] first commit on new shit --- .../machine/TileEntityPWRController.java | 42 +++++++++++++++++++ .../machine/rbmk/TileEntityRBMKStorage.java | 37 +--------------- 2 files changed, 43 insertions(+), 36 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java index 8d1568b2d..952dac8bd 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java @@ -25,8 +25,12 @@ import com.hbm.util.EnumUtil; import com.hbm.util.fauxpointtwelve.BlockPos; import api.hbm.fluid.IFluidStandardTransceiver; +import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; import net.minecraft.block.Block; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; @@ -37,6 +41,7 @@ import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) public class TileEntityPWRController extends TileEntityMachineBase implements IGUIProvider, IControlReceiver, IFluidStandardTransceiver { public FluidTank[] tanks; @@ -502,6 +507,43 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG } } + + public String getComponentName() { + return "ntm_pwr_control"; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getHeat(Context context, Arguments args) { + return new Object[] {coreHeat, hullHeat}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getFlux(Context context, Arguments args) { + return new Object[] {flux}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getLevel(Context context, Arguments args) { + return new Object[] {rodTarget}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getInfo(Context context, Arguments args) { + return new Object[] {coreHeat, hullHeat, flux, rodTarget}; + } + + @Callback(direct = true, limit = 4) + @Optional.Method(modid = "OpenComputers") + public Object[] setLevel(Context context, Arguments args) { + rodTarget = MathHelper.clamp_int(args.checkInteger(0), 0, 100); + this.markChanged(); + return new Object[] {true}; + } + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerPWR(player.inventory, this); diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKStorage.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKStorage.java index baa22c2c3..a670b6c09 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKStorage.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKStorage.java @@ -4,21 +4,15 @@ import com.hbm.inventory.container.ContainerRBMKStorage; import com.hbm.inventory.gui.GUIRBMKStorage; import com.hbm.items.machine.ItemRBMKRod; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole.ColumnType; -import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import li.cil.oc.api.machine.Arguments; -import li.cil.oc.api.machine.Callback; -import li.cil.oc.api.machine.Context; -import li.cil.oc.api.network.SimpleComponent; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.world.World; -@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityRBMKStorage extends TileEntityRBMKSlottedBase implements IRBMKLoadable, SimpleComponent { +public class TileEntityRBMKStorage extends TileEntityRBMKSlottedBase implements IRBMKLoadable { public TileEntityRBMKStorage() { super(12); @@ -91,35 +85,6 @@ public class TileEntityRBMKStorage extends TileEntityRBMKSlottedBase implements slots[0] = null; } - @Override - public String getComponentName() { - return "rbmk_storage_rod"; - } - @Callback(direct = true, limit = 8) - @Optional.Method(modid = "OpenComputers") - public Object[] getCoordinates(Context context, Arguments args) { - return new Object[] {xCoord, yCoord, zCoord}; - } - - @Callback(direct = true, limit = 8) - @Optional.Method(modid = "OpenComputers") - public Object[] getHeat(Context context, Arguments args) { - return new Object[] {heat}; - } - - - @Callback(direct = true, limit = 8) - @Optional.Method(modid = "OpenComputers") - public Object[] getStored(Context context, Arguments args) { - return new Object[] {slots[0], slots[1], slots[2], slots[3], slots[4], slots[5], slots[6], slots[7], slots[8], slots[9], slots[10], slots[11]}; - } - - @Callback(direct = true, limit = 8) - @Optional.Method(modid = "OpenComputers") - public Object[] getInfo(Context context, Arguments args) { - return new Object[] {heat, slots[0], slots[1], slots[2], slots[3], slots[4], slots[5], slots[6], slots[7], slots[8], slots[9], slots[10], slots[11], xCoord, yCoord, zCoord}; - } - @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerRBMKStorage(player.inventory, this); From 17044d558b260e92731ca3f1e5647714b05da57e Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Tue, 14 Nov 2023 19:18:43 -0600 Subject: [PATCH 374/432] back at it again with the OC compat Now including: Optimizations Turbine Compat Compat handler for general functions other compat --- .../java/com/hbm/handler/CompatHandler.java | 31 +++++++++++++++ .../tileentity/machine/TileEntityChungus.java | 33 +++++++++++++++- .../machine/TileEntityCoreEmitter.java | 7 +--- .../machine/TileEntityCoreStabilizer.java | 7 +--- .../TileEntityMachineLargeTurbine.java | 39 ++++++++++++++++++- .../machine/TileEntityMachineTurbine.java | 33 +++++++++++++++- .../machine/TileEntityMicrowave.java | 19 ++++++++- .../machine/TileEntityReactorControl.java | 39 +++++-------------- .../machine/TileEntityReactorResearch.java | 8 +--- .../machine/rbmk/TileEntityRBMKBoiler.java | 16 ++------ .../machine/storage/TileEntityBarrel.java | 8 ++-- .../storage/TileEntityMachineBattery.java | 4 +- .../storage/TileEntityMachineFluidTank.java | 8 ++-- 13 files changed, 177 insertions(+), 75 deletions(-) create mode 100644 src/main/java/com/hbm/handler/CompatHandler.java diff --git a/src/main/java/com/hbm/handler/CompatHandler.java b/src/main/java/com/hbm/handler/CompatHandler.java new file mode 100644 index 000000000..07d7fd20a --- /dev/null +++ b/src/main/java/com/hbm/handler/CompatHandler.java @@ -0,0 +1,31 @@ +package com.hbm.handler; + +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; + + +/** + * General handler for OpenComputers compatibility. + *

    + * Mostly just functions used across many TEs. + */ +public class CompatHandler { + public static Object[] steamTypeToInt(FluidType type) { + if(type == Fluids.STEAM) {return new Object[] {0};} + else if(type == Fluids.HOTSTEAM) {return new Object[] {1};} + else if(type == Fluids.SUPERHOTSTEAM) {return new Object[] {2};} + return new Object[] {3}; + } + public static FluidType intToSteamType(int arg) { + switch(arg) { + default: + return Fluids.STEAM; + case(1): + return Fluids.HOTSTEAM; + case(2): + return Fluids.SUPERHOTSTEAM; + case(3): + return Fluids.ULTRAHOTSTEAM; + } + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java index 4a0226d96..e1dcddcf8 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java @@ -5,6 +5,7 @@ import java.util.List; import java.util.Random; import com.hbm.blocks.BlockDummyable; +import com.hbm.handler.CompatHandler; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.fluid.FluidType; @@ -22,15 +23,20 @@ import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IEnergyGenerator; import api.hbm.fluid.IFluidStandardTransceiver; +import cpw.mods.fml.common.Optional; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; +import li.cil.oc.api.network.SimpleComponent; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcceptor, IFluidSource, IEnergyGenerator, INBTPacketReceiver, IFluidStandardTransceiver { +public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcceptor, IFluidSource, IEnergyGenerator, INBTPacketReceiver, IFluidStandardTransceiver, SimpleComponent { public long power; public static final long maxPower = 100000000000L; @@ -275,6 +281,31 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcc this.power = power; } + @Override + public String getComponentName() { + return "ntm_large_turbine"; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getFluid(Context context, Arguments args) { + return new Object[] {tanks[0].getFill(), tanks[1].getFill()}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getType(Context context, Arguments args) { + return CompatHandler.steamTypeToInt(tanks[1].getTankType()); + } + + @Callback(direct = true, limit = 4) + @Optional.Method(modid = "OpenComputers") + public Object[] setType(Context context, Arguments args) { + tanks[1].setTankType(CompatHandler.intToSteamType(args.checkInteger(0))); + return new Object[] {true}; + } + + @Override public FluidTank[] getSendingTanks() { return new FluidTank[] {tanks[1]}; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java index f19f9e586..9516a8246 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java @@ -315,12 +315,7 @@ public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEne @Optional.Method(modid = "OpenComputers") public Object[] setInput(Context context, Arguments args) { int newOutput = args.checkInteger(0); - if (newOutput > 100) { - newOutput = 100; - } else if (newOutput < 0) { - newOutput = 0; - } - watts = newOutput; + watts = MathHelper.clamp_int(newOutput, 0, 100); return new Object[] {}; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java index 74673c332..3d7990286 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java @@ -209,12 +209,7 @@ public class TileEntityCoreStabilizer extends TileEntityMachineBase implements I @Optional.Method(modid = "OpenComputers") public Object[] setInput(Context context, Arguments args) { int newOutput = args.checkInteger(0); - if (newOutput > 100) { - newOutput = 100; - } else if (newOutput < 0) { - newOutput = 0; - } - watts = newOutput; + watts = MathHelper.clamp_int(newOutput, 0, 100); return new Object[] {}; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java index 5f37053e9..fc22fe394 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.List; import com.hbm.blocks.BlockDummyable; +import com.hbm.handler.CompatHandler; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; import com.hbm.interfaces.IFluidSource; @@ -21,8 +22,13 @@ import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IEnergyGenerator; import api.hbm.fluid.IFluidStandardTransceiver; +import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; +import li.cil.oc.api.network.SimpleComponent; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; @@ -32,7 +38,8 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineLargeTurbine extends TileEntityMachineBase implements IFluidContainer, IFluidAcceptor, IFluidSource, IEnergyGenerator, IFluidStandardTransceiver, IGUIProvider { +@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) +public class TileEntityMachineLargeTurbine extends TileEntityMachineBase implements IFluidContainer, IFluidAcceptor, IFluidSource, IEnergyGenerator, IFluidStandardTransceiver, IGUIProvider, SimpleComponent { public long power; public static final long maxPower = 100000000; @@ -280,6 +287,36 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme return new FluidTank[] {tanks[0]}; } + @Override + public String getComponentName() { + return "ntm_turbine"; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getFluid(Context context, Arguments args) { + return new Object[] {tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill()}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getType(Context context, Arguments args) { + return CompatHandler.steamTypeToInt(tanks[1].getTankType()); + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getInfo(Context context, Arguments args) { + return new Object[] {tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill(), tanks[1].getTankType()}; + } + + @Callback(direct = true, limit = 4) + @Optional.Method(modid = "OpenComputers") + public Object[] setType(Context context, Arguments args) { + tanks[1].setTankType(CompatHandler.intToSteamType(args.checkInteger(0))); + return new Object[] {true}; + } + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerMachineLargeTurbine(player.inventory, this); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java index eb4d3f731..a2857822a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java @@ -3,6 +3,7 @@ package com.hbm.tileentity.machine; import java.util.ArrayList; import java.util.List; +import com.hbm.handler.CompatHandler; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; import com.hbm.interfaces.IFluidSource; @@ -22,9 +23,14 @@ import com.hbm.tileentity.TileEntityLoadedBase; import api.hbm.energy.IBatteryItem; import api.hbm.energy.IEnergyGenerator; import api.hbm.fluid.IFluidStandardTransceiver; +import cpw.mods.fml.common.Optional; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; +import li.cil.oc.api.network.SimpleComponent; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; @@ -35,7 +41,8 @@ import net.minecraft.nbt.NBTTagList; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineTurbine extends TileEntityLoadedBase implements ISidedInventory, IFluidContainer, IFluidAcceptor, IFluidSource, IEnergyGenerator, IFluidStandardTransceiver, IGUIProvider { +@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) +public class TileEntityMachineTurbine extends TileEntityLoadedBase implements ISidedInventory, IFluidContainer, IFluidAcceptor, IFluidSource, IEnergyGenerator, IFluidStandardTransceiver, IGUIProvider, SimpleComponent { private ItemStack slots[]; @@ -376,6 +383,30 @@ public class TileEntityMachineTurbine extends TileEntityLoadedBase implements IS return tanks; } + @Override + public String getComponentName() { + return "ntm_small_turbine"; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getFluid(Context context, Arguments args) { + return new Object[] {tanks[0].getFill(), tanks[1].getFill()}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getType(Context context, Arguments args) { + return CompatHandler.steamTypeToInt(tanks[1].getTankType()); + } + + @Callback(direct = true, limit = 4) + @Optional.Method(modid = "OpenComputers") + public Object[] setType(Context context, Arguments args) { + tanks[1].setTankType(CompatHandler.intToSteamType(args.checkInteger(0))); + return new Object[] {true}; + } + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerMachineTurbine(player.inventory, this); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMicrowave.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMicrowave.java index 6b5846286..5253e4aec 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMicrowave.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMicrowave.java @@ -7,8 +7,13 @@ import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; import api.hbm.energy.IEnergyUser; +import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; +import li.cil.oc.api.network.SimpleComponent; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; @@ -19,7 +24,8 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; -public class TileEntityMicrowave extends TileEntityMachineBase implements IEnergyUser, IGUIProvider { +@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) +public class TileEntityMicrowave extends TileEntityMachineBase implements IEnergyUser, IGUIProvider, SimpleComponent { public long power; public static final long maxPower = 50000; @@ -209,6 +215,17 @@ public class TileEntityMicrowave extends TileEntityMachineBase implements IEnerg nbt.setInteger("speed", speed); } + @Override + public String getComponentName() { + return "microwave"; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] test(Context context, Arguments args) { + return new Object[] {"This is a testing device for everything OC."}; + } + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerMicrowave(player.inventory, this); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorControl.java b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorControl.java index 67c70eded..8d55eb799 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorControl.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorControl.java @@ -272,36 +272,15 @@ public class TileEntityReactorControl extends TileEntityMachineBase implements I @Optional.Method(modid = "OpenComputers") public Object[] setParams(Context context, Arguments args) { //i hate my life int newFunction = args.checkInteger(0); - double newMaxheat = args.checkDouble(1); - double newMinheat = args.checkDouble(2); - double newMaxlevel = args.checkDouble(3)/100.0; - double newMinlevel = args.checkDouble(4)/100.0; - if (newFunction > 2) { //no more out of bounds for you (and yes there's integer values for functions, sue me) - newFunction = 0; - } else if (newFunction < 0) { - newFunction = 0; - } - if (newMaxheat < 0.0) { - newMaxheat = 0.0; - } - if (newMinheat < 0.0) { - newMinheat = 0.0; - } - if (newMaxlevel < 0.0) { - newMaxlevel = 0.0; - } else if (newMaxlevel > 1.0) { - newMaxlevel = 1.0; - } - if (newMinlevel < 0.0) { - newMinlevel = 0.0; - } else if (newMinlevel > 1.0) { - newMinlevel = 1.0; - } - function = RodFunction.values()[newFunction]; - heatUpper = newMaxheat; - heatLower = newMinheat; - levelUpper = newMaxlevel; - levelLower = newMinlevel; + double newMaxHeat = args.checkDouble(1); + double newMinHeat = args.checkDouble(2); + double newMaxLevel = args.checkDouble(3)/100.0; + double newMinLevel = args.checkDouble(4)/100.0; + function = RodFunction.values()[MathHelper.clamp_int(newFunction, 0, 2)]; + heatUpper = MathHelper.clamp_double(newMaxHeat, 0, 9999); + heatLower = MathHelper.clamp_double(newMinHeat, 0, 9999); + levelUpper = MathHelper.clamp_double(newMaxLevel, 0, 1); + levelLower = MathHelper.clamp_double(newMinLevel, 0, 1); return new Object[] {}; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorResearch.java b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorResearch.java index 3e17bf1e0..89809cf60 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorResearch.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorResearch.java @@ -31,6 +31,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -425,12 +426,7 @@ public class TileEntityReactorResearch extends TileEntityMachineBase implements @Optional.Method(modid = "OpenComputers") public Object[] setLevel(Context context, Arguments args) { double newLevel = args.checkDouble(0)/100.0; - if (newLevel > 1.0) { - newLevel = 1.0; - } else if (newLevel < 0.0) { - newLevel = 0.0; - } - targetLevel = newLevel; + targetLevel = MathHelper.clamp_double(newLevel, 0, 100.0); return new Object[] {}; } diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java index 44baadde9..f025f1114 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java @@ -5,6 +5,7 @@ import api.hbm.fluid.IFluidUser; import api.hbm.fluid.IPipeNet; import com.hbm.blocks.ModBlocks; import com.hbm.entity.projectile.EntityRBMKDebris.DebrisType; +import com.hbm.handler.CompatHandler; import com.hbm.interfaces.IControlReceiver; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidSource; @@ -369,25 +370,14 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I @Callback(direct = true, limit = 16) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { - FluidType type = steam.getTankType(); - Object type_1; - if(type == Fluids.STEAM) {type_1 = "0";} - else if(type == Fluids.HOTSTEAM) {type_1 = "1";} - else if(type == Fluids.SUPERHOTSTEAM) {type_1 = "2";} - else if(type == Fluids.ULTRAHOTSTEAM) {type_1 = "3";} - else {type_1 = "Unknown Error";} + int type_1 = (int) CompatHandler.steamTypeToInt(steam.getTankType())[0]; return new Object[] {heat, steam.getFill(), steam.getMaxFill(), feed.getFill(), feed.getMaxFill(), type_1, xCoord, yCoord, zCoord}; } @Callback(direct = true, limit = 16) @Optional.Method(modid = "OpenComputers") public Object[] getSteamType(Context context, Arguments args) { - FluidType type = steam.getTankType(); - if(type == Fluids.STEAM) {return new Object[] {0};} - else if(type == Fluids.HOTSTEAM) {return new Object[] {1};} - else if(type == Fluids.SUPERHOTSTEAM) {return new Object[] {2};} - else if(type == Fluids.ULTRAHOTSTEAM) {return new Object[] {3};} - else {return new Object[] {"Unknown Error"};} + return CompatHandler.steamTypeToInt(steam.getTankType()); } @Callback(direct = true, limit = 16) diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java index 495f38ca6..66ea25fcb 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java @@ -393,25 +393,25 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc return "ntm_fluid_tank"; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getFluidStored(Context context, Arguments args) { return new Object[] {tank.getFill()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getMaxStored(Context context, Arguments args) { return new Object[] {tank.getMaxFill()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getTypeStored(Context context, Arguments args) { return new Object[] {tank.getTankType().getName()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[]{tank.getFill(), tank.getMaxFill(), tank.getTankType().getName()}; diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java index dc6a60f44..c27670d37 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java @@ -420,13 +420,13 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I return "ntm_energy_storage"; //ok if someone else can figure out how to do this that'd be nice (change the component name based on the type of storage block) } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getEnergyInfo(Context context, Arguments args) { return new Object[] {getPower(), getMaxPower()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[] {getPower(), getMaxPower()}; diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java index 00486dfda..7e6d91be2 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java @@ -473,25 +473,25 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements return "ntm_tank"; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getFluidStored(Context context, Arguments args) { return new Object[] {tank.getFill()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getMaxStored(Context context, Arguments args) { return new Object[] {tank.getMaxFill()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getTypeStored(Context context, Arguments args) { return new Object[] {tank.getTankType().getName()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[]{tank.getFill(), tank.getMaxFill(), tank.getTankType().getName()}; From 2f2f389e90c04c3beefd95ee34e049531a609b55 Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Tue, 14 Nov 2023 19:41:10 -0600 Subject: [PATCH 375/432] Gas turbine compat!!! --- .../machine/TileEntityMachineTurbineGas.java | 80 ++++++++++++++++++- 1 file changed, 79 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java index b506f3f6b..efb36937f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java @@ -22,18 +22,25 @@ import com.hbm.tileentity.TileEntityMachineBase; import api.hbm.energy.IEnergyGenerator; import api.hbm.fluid.IFluidStandardTransceiver; +import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; +import li.cil.oc.api.network.SimpleComponent; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineTurbineGas extends TileEntityMachineBase implements IFluidStandardTransceiver, IEnergyGenerator, IControlReceiver, IGUIProvider { +@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) +public class TileEntityMachineTurbineGas extends TileEntityMachineBase implements IFluidStandardTransceiver, IEnergyGenerator, IControlReceiver, IGUIProvider, SimpleComponent { public long power; public static final long maxPower = 1000000L; @@ -546,6 +553,77 @@ public class TileEntityMachineTurbineGas extends TileEntityMachineBase implement return dir != ForgeDirection.DOWN; } + @Override + public String getComponentName() { + return "ntm_gas_turbine"; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getFluid(Context context, Arguments args) { + return new Object[] { + tanks[0].getFill(), tanks[0].getMaxFill(), + tanks[1].getFill(), tanks[1].getMaxFill(), + tanks[2].getFill(), tanks[2].getMaxFill(), + tanks[3].getFill(), tanks[3].getMaxFill() + }; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getType(Context context, Arguments args) { + return new Object[] {tanks[0].getTankType().getName()}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getPower(Context context, Arguments args) { + return new Object[] {power}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getThrottle(Context context, Arguments args) { + return new Object[] {throttle}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getState(Context context, Arguments args) { + return new Object[] {state}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getAuto(Context context, Arguments args) { + return new Object[] {autoMode}; + } + + @Callback(direct = true, limit = 4) + @Optional.Method(modid = "OpenComputers") + public Object[] setThrottle(Context context, Arguments args) { + powerSliderPos = MathHelper.clamp_int(args.checkInteger(0) / 100 * 60, 0 , 60); + return new Object[] {true}; + } + + @Callback(direct = true, limit = 4) + @Optional.Method(modid = "OpenComputers") + public Object[] setAuto(Context context, Arguments args) { + autoMode = args.checkBoolean(0); + return new Object[] {true}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getInfo(Context context, Arguments args) { + + return new Object[] {throttle, state, + tanks[0].getFill(), tanks[0].getMaxFill(), + tanks[1].getFill(), tanks[1].getMaxFill(), + tanks[2].getFill(), tanks[2].getMaxFill(), + tanks[3].getFill(), tanks[3].getMaxFill()}; + } + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerMachineTurbineGas(player.inventory, this); From 4451e80db9c5bfea1ab9a64cb12a631d0d0b5a2e Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Tue, 14 Nov 2023 21:30:48 -0600 Subject: [PATCH 376/432] Large update to direct calls and limits for pulling values. --- .../hbm/blocks/network/FluidDuctGauge.java | 6 +-- .../machine/TileEntityCoreEmitter.java | 14 +++---- .../machine/TileEntityCoreInjector.java | 6 +-- .../machine/TileEntityCoreReceiver.java | 6 +-- .../machine/TileEntityCoreStabilizer.java | 10 ++--- .../tileentity/machine/TileEntityGeiger.java | 2 +- .../machine/TileEntityMachineRadar.java | 6 +-- .../machine/TileEntityReactorControl.java | 8 ++-- .../machine/TileEntityReactorResearch.java | 12 +++--- .../machine/TileEntityReactorZirnox.java | 16 ++++---- .../machine/rbmk/TileEntityCraneConsole.java | 4 +- .../machine/rbmk/TileEntityRBMKBoiler.java | 40 ++++++------------- .../machine/rbmk/TileEntityRBMKControl.java | 20 ++++------ .../rbmk/TileEntityRBMKControlManual.java | 2 +- .../machine/rbmk/TileEntityRBMKCooler.java | 10 ++--- .../machine/rbmk/TileEntityRBMKHeater.java | 18 ++++----- .../machine/rbmk/TileEntityRBMKOutgasser.java | 12 +++--- .../machine/rbmk/TileEntityRBMKRod.java | 20 +++++----- 18 files changed, 96 insertions(+), 116 deletions(-) diff --git a/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java b/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java index 8c2106abe..9c17a38c0 100644 --- a/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java +++ b/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java @@ -156,19 +156,19 @@ public class FluidDuctGauge extends FluidDuctBase implements IBlockMultiPass, IL return "ntm_fluid_gauge"; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getTransfer(Context context, Arguments args) { return new Object[] {deltaTick, deltaSecond}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getFluid(Context context, Arguments args) { return new Object[] {getType().getName()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[] {deltaTick, deltaSecond, getType().getName(), xCoord, yCoord, zCoord}; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java index 9516a8246..92a83d81b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java @@ -274,44 +274,44 @@ public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEne return "dfc_emitter"; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getEnergyInfo(Context context, Arguments args) { return new Object[] {getPower(), getMaxPower()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getCryogel(Context context, Arguments args) { return new Object[] {tank.getFill()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInput(Context context, Arguments args) { return new Object[] {watts}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[] {getPower(), getMaxPower(), tank.getFill(), watts, isOn}; } - @Callback(direct = true, limit = 2) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] isActive(Context context, Arguments args) { return new Object[] {isOn}; } - @Callback(direct = true, limit = 2) + @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] setActive(Context context, Arguments args) { isOn = args.checkBoolean(0); return new Object[] {}; } - @Callback(direct = true, limit = 2) + @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] setInput(Context context, Arguments args) { int newOutput = args.checkInteger(0); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java index bd2366acc..b0fb0c484 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java @@ -199,19 +199,19 @@ public class TileEntityCoreInjector extends TileEntityMachineBase implements IFl return "dfc_injector"; } - @Callback(direct = true, limit = 2) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getFuel(Context context, Arguments args) { return new Object[] {tanks[0].getFill(), tanks[1].getFill()}; } - @Callback(direct = true, limit = 2) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getTypes(Context context, Arguments args) { return new Object[] {tanks[0].getTankType().getName(), tanks[1].getTankType().getName()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[] {tanks[0].getFill(), tanks[0].getTankType().getName(), tanks[1].getFill(), tanks[1].getTankType().getName()}; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java index 4a9adbebc..c3fbf28d6 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java @@ -191,19 +191,19 @@ public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEn return "dfc_receiver"; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getEnergyInfo(Context context, Arguments args) { return new Object[] {joules, getPower()}; //literally only doing this for the consistency between components } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getCryogel(Context context, Arguments args) { return new Object[] {tank.getFill()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[] {joules, getPower(), tank.getFill()}; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java index 3d7990286..6e6413032 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java @@ -172,19 +172,19 @@ public class TileEntityCoreStabilizer extends TileEntityMachineBase implements I return "dfc_stabilizer"; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getEnergyInfo(Context context, Arguments args) { return new Object[] {getPower(), getMaxPower()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInput(Context context, Arguments args) { return new Object[] {watts}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getDurability(Context context, Arguments args) { if(slots[0] != null && slots[0].getItem() == ModItems.ams_lens && ItemLens.getLensDamage(slots[0]) < ((ItemLens)ModItems.ams_lens).maxDamage) { @@ -193,7 +193,7 @@ public class TileEntityCoreStabilizer extends TileEntityMachineBase implements I return new Object[] {"N/A"}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { Object lens_damage_buf; @@ -205,7 +205,7 @@ public class TileEntityCoreStabilizer extends TileEntityMachineBase implements I return new Object[] {power, maxPower, watts, lens_damage_buf}; } - @Callback(direct = true, limit = 2) + @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] setInput(Context context, Arguments args) { int newOutput = args.checkInteger(0); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityGeiger.java b/src/main/java/com/hbm/tileentity/machine/TileEntityGeiger.java index ac7bddef0..4c43bf5fc 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityGeiger.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityGeiger.java @@ -68,7 +68,7 @@ public class TileEntityGeiger extends TileEntity implements SimpleComponent { return "ntm_geiger"; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getRads(Context context, Arguments args) { return new Object[] {check()}; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadar.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadar.java index e543f4fd5..805e7c35c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadar.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadar.java @@ -289,19 +289,19 @@ public class TileEntityMachineRadar extends TileEntityTickingBase implements IEn return "ntm_radar"; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getEnergyInfo(Context context, Arguments args) { return new Object[] {getPower(), getMaxPower()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] isJammed(Context context, Arguments args) { return new Object[] {jammed}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getEntities(Context context, Arguments args) { //fuck fuck fuck if(!jammed) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorControl.java b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorControl.java index 8d55eb799..63ea4818e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorControl.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorControl.java @@ -256,19 +256,19 @@ public class TileEntityReactorControl extends TileEntityMachineBase implements I return "reactor_control"; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] isLinked(Context context, Arguments args) { return new Object[] {isLinked}; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getReactor(Context context, Arguments args) { return new Object[] {getDisplayData()}; } - @Callback + @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] setParams(Context context, Arguments args) { //i hate my life int newFunction = args.checkInteger(0); @@ -284,7 +284,7 @@ public class TileEntityReactorControl extends TileEntityMachineBase implements I return new Object[] {}; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getParams(Context context, Arguments args) { return new Object[] {function.ordinal(), heatUpper, heatLower, levelUpper, levelLower}; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorResearch.java b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorResearch.java index 89809cf60..29d3d4266 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorResearch.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorResearch.java @@ -392,37 +392,37 @@ public class TileEntityReactorResearch extends TileEntityMachineBase implements return "research_reactor"; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getTemp(Context context, Arguments args) { // or getHeat, whatever. return new Object[] {heat}; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getLevel(Context context, Arguments args) { return new Object[] {level * 100}; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getTargetLevel(Context context, Arguments args) { return new Object[] {targetLevel}; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getFlux(Context context, Arguments args) { return new Object[] {totalFlux}; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[] {heat, level, targetLevel, totalFlux}; } - @Callback + @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] setLevel(Context context, Arguments args) { double newLevel = args.checkDouble(0)/100.0; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java index c605f96d6..43536fedb 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java @@ -545,49 +545,49 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF return "zirnox_reactor"; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getTemp(Context context, Arguments args) { return new Object[] {heat}; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getPressure(Context context, Arguments args) { return new Object[] {pressure}; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getWater(Context context, Arguments args) { return new Object[] {water.getFill()}; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getSteam(Context context, Arguments args) { return new Object[] {steam.getFill()}; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getCarbonDioxide(Context context, Arguments args) { return new Object[] {carbonDioxide.getFill()}; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] isActive(Context context, Arguments args) { return new Object[] {isOn}; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[] {heat, pressure, water.getFill(), steam.getFill(), carbonDioxide.getFill(), isOn}; } - @Callback + @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] setActive(Context context, Arguments args) { isOn = args.checkBoolean(0); diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityCraneConsole.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityCraneConsole.java index f6e81933f..75097cd48 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityCraneConsole.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityCraneConsole.java @@ -378,7 +378,7 @@ public class TileEntityCraneConsole extends TileEntity implements INBTPacketRece return new Object[] {"Crane not found"}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getDepletion(Context context, Arguments args) { if(loadedItem != null && loadedItem.getItem() instanceof ItemRBMKRod) { @@ -387,7 +387,7 @@ public class TileEntityCraneConsole extends TileEntity implements INBTPacketRece return new Object[] {"N/A"}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getXenonPoison(Context context, Arguments args) { if(loadedItem != null && loadedItem.getItem() instanceof ItemRBMKRod) { diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java index f025f1114..dba203483 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java @@ -332,76 +332,60 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I public String getComponentName() { return "rbmk_boiler"; } - - @Callback(direct = true, limit = 16) + + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getHeat(Context context, Arguments args) { return new Object[] {heat}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getSteam(Context context, Arguments args) { return new Object[] {steam.getFill()}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getSteamMax(Context context, Arguments args) { return new Object[] {steam.getMaxFill()}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getWater(Context context, Arguments args) { return new Object[] {feed.getFill()}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getWaterMax(Context context, Arguments args) { return new Object[] {feed.getMaxFill()}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getCoordinates(Context context, Arguments args) { return new Object[] {xCoord, yCoord, zCoord}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { int type_1 = (int) CompatHandler.steamTypeToInt(steam.getTankType())[0]; return new Object[] {heat, steam.getFill(), steam.getMaxFill(), feed.getFill(), feed.getMaxFill(), type_1, xCoord, yCoord, zCoord}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getSteamType(Context context, Arguments args) { return CompatHandler.steamTypeToInt(steam.getTankType()); } - @Callback(direct = true, limit = 16) + @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] setSteamType(Context context, Arguments args) { int type = args.checkInteger(0); - if(type > 3) { - type = 3; - } else if(type < 0) { - type = 0; - } - if(type == 0) { - steam.setTankType(Fluids.STEAM); - return new Object[] {true}; - } else if(type == 1) { - steam.setTankType(Fluids.HOTSTEAM); - return new Object[] {true}; - } else if(type == 2) { - steam.setTankType(Fluids.SUPERHOTSTEAM); - return new Object[] {true}; - } else { - steam.setTankType(Fluids.ULTRAHOTSTEAM); - return new Object[] {true}; - } + steam.setTankType(CompatHandler.intToSteamType(type)); + return new Object[] {true}; } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControl.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControl.java index 945638b7e..076e5afc6 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControl.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControl.java @@ -9,6 +9,7 @@ import li.cil.oc.api.machine.Callback; import li.cil.oc.api.machine.Context; import li.cil.oc.api.network.SimpleComponent; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) public abstract class TileEntityRBMKControl extends TileEntityRBMKSlottedBase implements SimpleComponent { @@ -126,46 +127,41 @@ public abstract class TileEntityRBMKControl extends TileEntityRBMKSlottedBase im return "rbmk_control_rod"; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getLevel(Context context, Arguments args) { return new Object[] {getMult() * 100}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getTargetLevel(Context context, Arguments args) { return new Object[] {targetLevel * 100}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getCoordinates(Context context, Arguments args) { return new Object[] {xCoord, yCoord, zCoord}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getHeat(Context context, Arguments args) { return new Object[] {heat}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[] {heat, getMult() * 100, targetLevel * 100, xCoord, yCoord, zCoord}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] setLevel(Context context, Arguments args) { double newLevel = args.checkDouble(0)/100.0; - if (newLevel > 1.0) { - newLevel = 1.0; - } else if (newLevel < 0.0) { - newLevel = 0.0; - } - targetLevel = newLevel; + targetLevel = MathHelper.clamp_double(newLevel, 0, 1); return new Object[] {}; } } diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlManual.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlManual.java index f22e00b47..1afb0cc8d 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlManual.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlManual.java @@ -133,7 +133,7 @@ public class TileEntityRBMKControlManual extends TileEntityRBMKControl implement return data; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getColor(Context context, Arguments args) { return new Object[] {this.color}; diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCooler.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCooler.java index 8c15cd8d7..715eba42f 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCooler.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCooler.java @@ -149,31 +149,31 @@ public class TileEntityRBMKCooler extends TileEntityRBMKBase implements IFluidAc return "rbmk_cooler"; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getHeat(Context context, Arguments args) { return new Object[]{heat}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getCryo(Context context, Arguments args) { return new Object[]{tank.getFill()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getCryoMax(Context context, Arguments args) { return new Object[]{tank.getMaxFill()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getCoordinates(Context context, Arguments args) { return new Object[] {xCoord, yCoord, zCoord}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[]{heat, tank.getFill(), tank.getMaxFill(), xCoord, yCoord, zCoord}; diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java index e9699b87f..38436e799 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java @@ -280,54 +280,54 @@ public class TileEntityRBMKHeater extends TileEntityRBMKSlottedBase implements I return "rbmk_heater"; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getHeat(Context context, Arguments args) { return new Object[] {heat}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getFill(Context context, Arguments args) { return new Object[] {feed.getFill()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getFillMax(Context context, Arguments args) { return new Object[] {feed.getMaxFill()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getExport(Context context, Arguments args) { return new Object[] {steam.getFill()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getExportMax(Context context, Arguments args) { return new Object[] {steam.getMaxFill()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getFillType(Context context, Arguments args) { return new Object[] {feed.getTankType().getName()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getExportType(Context context, Arguments args) { return new Object[] {steam.getTankType().getName()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[] {heat, feed.getFill(), feed.getMaxFill(), steam.getFill(), steam.getMaxFill(), feed.getTankType().getName(), steam.getTankType().getName(), xCoord, yCoord, zCoord}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getCoordinates(Context context, Arguments args) { return new Object[] {xCoord, yCoord, zCoord}; diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java index 8dbaa6360..1b74e6e92 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java @@ -226,37 +226,37 @@ public class TileEntityRBMKOutgasser extends TileEntityRBMKSlottedBase implement return "rbmk_outgasser"; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getGas(Context context, Arguments args) { return new Object[] {gas.getFill()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getGasMax(Context context, Arguments args) { return new Object[] {gas.getMaxFill()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getGasType(Context context, Arguments args) { return new Object[] {gas.getTankType().getID()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getProgress(Context context, Arguments args) { return new Object[] {progress}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getCoordinates(Context context, Arguments args) { return new Object[] {xCoord, yCoord, zCoord}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[] {gas.getFill(), gas.getMaxFill(), progress, gas.getTankType().getID(), xCoord, yCoord, zCoord}; diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java index 2a432b5d7..d22b5ae13 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java @@ -389,25 +389,25 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM return "rbmk_fuel_rod"; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getHeat(Context context, Arguments args) { return new Object[] {heat}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getFluxSlow(Context context, Arguments args) { return new Object[] {fluxSlow}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getFluxFast(Context context, Arguments args) { return new Object[] {fluxFast}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getDepletion(Context context, Arguments args) { if(slots[0] != null && slots[0].getItem() instanceof ItemRBMKRod) { @@ -416,7 +416,7 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM return new Object[] {"N/A"}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getXenonPoison(Context context, Arguments args) { if(slots[0] != null && slots[0].getItem() instanceof ItemRBMKRod) { @@ -425,7 +425,7 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM return new Object[] {"N/A"}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getCoreHeat(Context context, Arguments args) { if(slots[0] != null && slots[0].getItem() instanceof ItemRBMKRod) { @@ -434,7 +434,7 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM return new Object[] {"N/A"}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getSkinHeat(Context context, Arguments args) { if(slots[0] != null && slots[0].getItem() instanceof ItemRBMKRod) { @@ -443,7 +443,7 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM return new Object[] {"N/A"}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { Object OC_enrich_buf; @@ -464,13 +464,13 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM return new Object[] {heat, OC_hull_buf, OC_core_buf, fluxSlow, fluxFast, OC_enrich_buf, OC_poison_buf, ((RBMKRod)this.getBlockType()).moderated, xCoord, yCoord, zCoord}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getModerated(Context context, Arguments args) { return new Object[] {((RBMKRod)this.getBlockType()).moderated}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getCoordinates(Context context, Arguments args) { return new Object[] {xCoord, yCoord, zCoord}; From d0d8f2c285057eff34a3a9964c5d45159395491e Mon Sep 17 00:00:00 2001 From: Bob Date: Sat, 11 Nov 2023 14:07:19 +0100 Subject: [PATCH 377/432] texture sheet --- .../models/machines/exposure_chamber.png | Bin 0 -> 2278 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/models/machines/exposure_chamber.png diff --git a/src/main/resources/assets/hbm/textures/models/machines/exposure_chamber.png b/src/main/resources/assets/hbm/textures/models/machines/exposure_chamber.png new file mode 100644 index 0000000000000000000000000000000000000000..ac26fc0796689144dd48af558deddc8cb19c1bea GIT binary patch literal 2278 zcmbtWYg7{076#NLD>aqO(lRGaNpUJ6%n7pOI*M8t`AR1%)5*fPB7{?2#Kl|w%6 zYxFkg0RVtC9zVMI0sugyrauB+p{Z9-AsL!Ro3!5p57v|m;ILl-0C0han=3vxUoNgq z6+Sl8{ZKTl`?|LQafufrw<0hc{N4?RBKa+}fAK<*uAT^3Zy6CH$?xr$hD{sFa!&Z~ z@Xzwgu!TjS787YerLR@QY2~ra5y*TSTuNF9YX~k#7fNF)2?q(6bNK9(czO^n z0$0mf#WNp>d0?IM&J?Zn?@2diKc9<0p@R9=P{S;m)&nErzJPL-r0H_EGJji?-l06j z(cBnfbsRj(a_UqNZ+ugW7V^PY-{{Te%z7VQguM9mO1i9hW6lb-2wI zk!1^fgW4iqvsXH*;km*rK}}&d7!$%lsa6w-!`k9IDb&IaONlL`Ft4+hPIwfIXY`fM zihZeeywfsik1Z5)xF;n1Nl||U40^;crX5`WXsQhdaiwI3x_I$%)~=L;xAuDTad%5s z6ohW<494#d@O-hd{?mGl!=*-!|62HaZQ-ddjP*_1St{m>^JuX_>Wj#l_sN4~Fmhc{ zR-y6P0c%M>hHsM3E${YV{JM&a)*9czwVAj+-+Y%s+)ze*%*eYq7AQ*3H z|7->5_)4UueF^7QsG!QJ(vdRJR9b$Oz;5JNpULg3Cj^Pb0yV`c29;9#}qb84jqM zd}QR4WU@USdwW~dd-xDm5&!niyr5O~oo?i}fThG8Dn`8Xmj<$Qt^6^GOz)R?cQ zW`)G|Y2NO0-E%kD!>!IxD+z~g`PK-AyLgMil|*+}5QKNcQPQZVKMcW_`g2OL$RS5u zi}la6IB2&=GFb0j^(wN~SV=)s=WHd~W-Qw|BXYACh7kFB&SnZ9H4S8@I733(+ETH7 zO@XGFV@^DUV~H~HC+|di*LCS+oLxUR?Sn!natKV_vW4ga$avVqF?pwuN>}Y>adrfn zLatj@6_9a2u9uEGB)B+wCD0wBfgxVeOD?6C=)rJ}$+Qw%5c5p*@{E>EL`y5w$+(M$mh4V;@Mb9N{B-@+evD4TPKfBiI|KJt z^>or{A~C)fwFgGJO>mU#O=ES*bZ1+IC}&e*S%# zs#zzMC1zDKZ+WD|DRTNIgQJwwxjiL81$)pc;qlcF4Y*1}a!nor@;kW9T#`>5k6Psx zryO5El`hD!()oweyuJm)L-*_`R3Aa%zT2=!o!pEKTC3VM=X*v9O+GN(|K=C_k##Mw zNQWaL)D}u^Pj3LKfYVXK96WrIBmcDOLO!XTWYd!UY`*Qva=9yjT^pNvd zyg1>_jO_SZ`66?Dn0mg2P^JoP-1`Ncu6$EIkTca8H0Nx8o4&mz z^5mZ8%I``uP-r}9LAgUj@R1?Pqn=24@AdRUuUc(yXzkT+rc|XXB-@(vF(sukewf<+^C8_^MQvQD{7YsP@5$kU-3Hq9k O3%~>8 Date: Sun, 12 Nov 2023 21:11:38 +0100 Subject: [PATCH 378/432] radar rewrite, first attempt --- .../java/api/hbm/entity/IRadarDetectable.java | 3 +- .../api/hbm/entity/IRadarDetectableNT.java | 22 + src/main/java/api/hbm/entity/RadarEntry.java | 35 + .../machine/TileEntityMachineRadarNT.java | 105 + .../hbm/models/machines/exposure_chamber.obj | 4253 +++++++++++++++++ .../hbm/textures/gui/machine/gui_radar_nt.png | Bin 0 -> 21545 bytes .../models/machines/exposure_chamber.png | Bin 2278 -> 6849 bytes 7 files changed, 4417 insertions(+), 1 deletion(-) create mode 100644 src/main/java/api/hbm/entity/IRadarDetectableNT.java create mode 100644 src/main/java/api/hbm/entity/RadarEntry.java create mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java create mode 100644 src/main/resources/assets/hbm/models/machines/exposure_chamber.obj create mode 100644 src/main/resources/assets/hbm/textures/gui/machine/gui_radar_nt.png diff --git a/src/main/java/api/hbm/entity/IRadarDetectable.java b/src/main/java/api/hbm/entity/IRadarDetectable.java index f89fc99d4..0c3700b99 100644 --- a/src/main/java/api/hbm/entity/IRadarDetectable.java +++ b/src/main/java/api/hbm/entity/IRadarDetectable.java @@ -1,5 +1,6 @@ package api.hbm.entity; +@Deprecated //Use IRadarDetectableNT instead, old interface will still work though public interface IRadarDetectable { public static enum RadarTargetType { @@ -15,7 +16,7 @@ public interface IRadarDetectable { MISSILE_20("Size 20 Custom Missile"), //size 20 custom missiles MISSILE_AB("Anti-Ballistic Missile"), //anti ballistic missile PLAYER("Player"), //airborne players - ARTILLERY("Artillery Shell"); //airborne players + ARTILLERY("Artillery Shell"); //artillery shells public String name; diff --git a/src/main/java/api/hbm/entity/IRadarDetectableNT.java b/src/main/java/api/hbm/entity/IRadarDetectableNT.java new file mode 100644 index 000000000..83c4bf503 --- /dev/null +++ b/src/main/java/api/hbm/entity/IRadarDetectableNT.java @@ -0,0 +1,22 @@ +package api.hbm.entity; + +public interface IRadarDetectableNT { + + public static final int TIER0 = 0; + public static final int TIER1 = 1; + public static final int TIER2 = 2; + public static final int TIER3 = 3; + public static final int TIER4 = 4; + public static final int TIER10 = 5; + public static final int TIER10_15 = 6; + public static final int TIER15 = 7; + public static final int TIER15_20 = 8; + public static final int TIER20 = 9; + public static final int TIER_AB = 10; + public static final int PLAYER = 11; + public static final int ARTY = 12; + + public String getUnlocalizedName(); + public int getBlipLevel(); + public boolean canBeSeenBy(Object radar); +} diff --git a/src/main/java/api/hbm/entity/RadarEntry.java b/src/main/java/api/hbm/entity/RadarEntry.java new file mode 100644 index 000000000..540ec925b --- /dev/null +++ b/src/main/java/api/hbm/entity/RadarEntry.java @@ -0,0 +1,35 @@ +package api.hbm.entity; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; + +public class RadarEntry { + + public String unlocalizedName; + public int blipLevel; + public int posX; + public int posY; + public int posZ; + public int dim; + + public RadarEntry(String name, int level, int x, int y, int z, int dim) { + this.unlocalizedName = name; + this.blipLevel = level; + this.posX = x; + this.posY = y; + this.posZ = z; + this.dim = dim; + } + + public RadarEntry(IRadarDetectableNT detectable, Entity entity) { + this(detectable.getUnlocalizedName(), detectable.getBlipLevel(), (int) Math.floor(entity.posX), (int) Math.floor(entity.posY), (int) Math.floor(entity.posZ), entity.dimension); + } + + public RadarEntry(IRadarDetectable detectable, Entity entity) { + this(detectable.getTargetType().name, detectable.getTargetType().ordinal(), (int) Math.floor(entity.posX), (int) Math.floor(entity.posY), (int) Math.floor(entity.posZ), entity.dimension); + } + + public RadarEntry(EntityPlayer player) { + this(player.getDisplayName(), IRadarDetectableNT.PLAYER, (int) Math.floor(player.posX), (int) Math.floor(player.posY), (int) Math.floor(player.posZ), player.dimension); + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java new file mode 100644 index 000000000..db8f40435 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java @@ -0,0 +1,105 @@ +package com.hbm.tileentity.machine; + +import java.util.ArrayList; +import java.util.List; +import java.util.function.Function; + +import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.Tuple.Pair; + +import api.hbm.entity.IRadarDetectable; +import api.hbm.entity.IRadarDetectableNT; +import api.hbm.entity.RadarEntry; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.world.WorldServer; + +/** + * Now with SmЯt™ lag-free entity detection! + * @author hbm + */ +public class TileEntityMachineRadarNT extends TileEntityMachineBase { + + public boolean scanMissiles = true; + public boolean scanPlayers = true; + public boolean smartMode = true; + public boolean redMode = true; + + public boolean jammed = false; + + public TileEntityMachineRadarNT() { + super(1); + } + + @Override + public String getName() { + return ""; + } + + @Override + public void updateEntity() { + + } + + //List of lambdas that are supplied a Pair with the entity and radar in question to generate a RadarEntry + //The converters coming first have the highest priority + public static List, RadarEntry>> converters = new ArrayList(); + public static List classes = new ArrayList(); + public static List matchingEntities = new ArrayList(); + + /** + * Iterates over every entity in the world and add them to the matchingEntities list if the class is in the detectable list + * From this compiled list, radars can easily grab the required entities since we can assume that the total amount of detectable entities is comparatively low + */ + public static void updateSystem() { + matchingEntities.clear(); + + for(WorldServer world : Minecraft.getMinecraft().getIntegratedServer().worldServers) { + for(Object entity : world.loadedEntityList) { + for(Class clazz : classes) { + if(clazz.isAssignableFrom(entity.getClass())) { + matchingEntities.add((Entity) entity); + break; + } + } + } + } + } + + /** Registers a class that if an entity inherits that class, it is picked up by the system */ + public static void registerEntityClasses() { + classes.add(IRadarDetectableNT.class); + classes.add(IRadarDetectable.class); + classes.add(EntityPlayer.class); + } + + /** Registers converters. Converters are used to go over the list of detected entities and turn them into a RadarEntry using the entity instance and the radar's instance. */ + public static void registerConverters() { + //IRadarDetectableNT + converters.add(x -> { + Entity e = x.getKey(); + if(e instanceof IRadarDetectableNT) { + IRadarDetectableNT detectable = (IRadarDetectableNT) e; + if(detectable.canBeSeenBy(x.getValue())) return new RadarEntry(detectable, e); + } + return null; + }); + //IRadarDetectable, Legacy + converters.add(x -> { + Entity e = x.getKey(); + if(e instanceof IRadarDetectable) { + return new RadarEntry((IRadarDetectable) e, e); + } + return null; + }); + //Players + converters.add(x -> { + Entity e = x.getKey(); + if(e instanceof EntityPlayer) { + return new RadarEntry((EntityPlayer) e); + } + return null; + }); + } +} diff --git a/src/main/resources/assets/hbm/models/machines/exposure_chamber.obj b/src/main/resources/assets/hbm/models/machines/exposure_chamber.obj new file mode 100644 index 000000000..ac6d44aa7 --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/exposure_chamber.obj @@ -0,0 +1,4253 @@ +# Blender v2.79 (sub 0) OBJ File: 'exposure_chamber.blend' +# www.blender.org +o Magnets +v 1.961571 0.500000 0.292636 +v 1.961571 0.500000 -0.292635 +v 1.225981 0.500000 0.243863 +v 1.225982 0.500000 -0.243863 +v 1.961571 1.250000 0.292636 +v 1.225981 1.250000 0.243863 +v 1.961571 1.250000 -0.292635 +v 1.225982 1.250000 -0.243863 +v 1.225982 4.500000 -0.243863 +v 1.961571 4.500000 -0.292635 +v 1.225981 4.500000 0.243863 +v 1.961571 4.500000 0.292636 +v 1.225982 3.750000 -0.243863 +v 1.225981 3.750000 0.243863 +v 1.961571 3.750000 -0.292635 +v 1.961571 3.750000 0.292636 +v -1.961571 0.500000 -0.292636 +v -1.961571 0.500000 0.292636 +v -1.225981 0.500000 -0.243863 +v -1.225983 0.500000 0.243863 +v -1.961571 1.250000 -0.292636 +v -1.225981 1.250000 -0.243863 +v -1.961571 1.250000 0.292636 +v -1.225983 1.250000 0.243863 +v -1.225983 4.500000 0.243863 +v -1.961571 4.500000 0.292636 +v -1.225981 4.500000 -0.243863 +v -1.961571 4.500000 -0.292636 +v -1.225983 3.750000 0.243863 +v -1.225981 3.750000 -0.243863 +v -1.961571 3.750000 0.292636 +v -1.961571 3.750000 -0.292636 +v 0.292635 0.500000 -1.961571 +v -0.292636 0.500000 -1.961571 +v 0.243863 0.500000 -1.225981 +v -0.243863 0.500000 -1.225982 +v 0.292635 1.250000 -1.961571 +v 0.243863 1.250000 -1.225981 +v -0.292636 1.250000 -1.961571 +v -0.243863 1.250000 -1.225982 +v -0.243863 4.500000 -1.225982 +v -0.292636 4.500000 -1.961571 +v 0.243863 4.500000 -1.225981 +v 0.292635 4.500000 -1.961571 +v -0.243863 3.750000 -1.225982 +v 0.243863 3.750000 -1.225981 +v -0.292636 3.750000 -1.961571 +v 0.292635 3.750000 -1.961571 +v -0.292636 0.500000 1.961571 +v 0.292635 0.500000 1.961571 +v -0.243863 0.500000 1.225981 +v 0.243863 0.500000 1.225982 +v -0.292636 1.250000 1.961571 +v -0.243863 1.250000 1.225981 +v 0.292635 1.250000 1.961571 +v 0.243863 1.250000 1.225982 +v 0.243863 4.500000 1.225982 +v 0.292635 4.500000 1.961571 +v -0.243863 4.500000 1.225981 +v -0.292636 4.500000 1.961571 +v 0.243863 3.750000 1.225982 +v -0.243863 3.750000 1.225981 +v 0.292635 3.750000 1.961571 +v -0.292636 3.750000 1.961571 +v 1.593965 0.500000 -1.180115 +v 1.180116 0.500000 -1.593965 +v 1.039336 0.500000 -0.694462 +v 0.694463 0.500000 -1.039337 +v 1.593965 1.250000 -1.180115 +v 1.039336 1.250000 -0.694462 +v 1.180116 1.250000 -1.593965 +v 0.694463 1.250000 -1.039337 +v 0.694463 4.500000 -1.039337 +v 1.180116 4.500000 -1.593965 +v 1.039336 4.500000 -0.694462 +v 1.593965 4.500000 -1.180115 +v 0.694463 3.750000 -1.039337 +v 1.039336 3.750000 -0.694462 +v 1.180116 3.750000 -1.593965 +v 1.593965 3.750000 -1.180115 +v -1.593966 0.500000 1.180115 +v -1.180116 0.500000 1.593965 +v -1.039337 0.500000 0.694462 +v -0.694464 0.500000 1.039337 +v -1.593966 1.250000 1.180115 +v -1.039337 1.250000 0.694462 +v -1.180116 1.250000 1.593965 +v -0.694464 1.250000 1.039337 +v -0.694464 4.500000 1.039337 +v -1.180116 4.500000 1.593965 +v -1.039337 4.500000 0.694462 +v -1.593966 4.500000 1.180115 +v -0.694464 3.750000 1.039337 +v -1.039337 3.750000 0.694462 +v -1.180116 3.750000 1.593965 +v -1.593966 3.750000 1.180115 +v -1.180116 0.500000 -1.593965 +v -1.593966 0.500000 -1.180115 +v -0.694463 0.500000 -1.039337 +v -1.039337 0.500000 -0.694463 +v -1.180116 1.250000 -1.593965 +v -0.694463 1.250000 -1.039337 +v -1.593966 1.250000 -1.180115 +v -1.039337 1.250000 -0.694463 +v -1.039337 4.500000 -0.694463 +v -1.593966 4.500000 -1.180115 +v -0.694463 4.500000 -1.039337 +v -1.180116 4.500000 -1.593965 +v -1.039337 3.750000 -0.694463 +v -0.694463 3.750000 -1.039337 +v -1.593966 3.750000 -1.180115 +v -1.180116 3.750000 -1.593965 +v 1.180115 0.500000 1.593965 +v 1.593965 0.500000 1.180115 +v 0.694462 0.500000 1.039337 +v 1.039337 0.500000 0.694463 +v 1.180115 1.250000 1.593965 +v 0.694462 1.250000 1.039337 +v 1.593965 1.250000 1.180115 +v 1.039337 1.250000 0.694463 +v 1.039337 4.500000 0.694463 +v 1.593965 4.500000 1.180115 +v 0.694462 4.500000 1.039337 +v 1.180115 4.500000 1.593965 +v 1.039337 3.750000 0.694463 +v 0.694462 3.750000 1.039337 +v 1.593965 3.750000 1.180115 +v 1.180115 3.750000 1.593965 +v 1.021021 0.500000 -1.700268 +v 0.480301 0.500000 -1.924242 +v 0.694463 0.500000 -1.039336 +v 0.243863 0.500000 -1.225982 +v 1.021021 1.250000 -1.700268 +v 0.694463 1.250000 -1.039336 +v 0.480301 1.250000 -1.924242 +v 0.243863 1.250000 -1.225982 +v 0.243863 4.500000 -1.225982 +v 0.480301 4.500000 -1.924242 +v 0.694463 4.500000 -1.039336 +v 1.021021 4.500000 -1.700268 +v 0.243863 3.750000 -1.225982 +v 0.694463 3.750000 -1.039336 +v 0.480301 3.750000 -1.924242 +v 1.021021 3.750000 -1.700268 +v -1.021021 0.500000 1.700269 +v -0.480301 0.500000 1.924242 +v -0.694463 0.500000 1.039336 +v -0.243863 0.500000 1.225982 +v -1.021021 1.250000 1.700269 +v -0.694463 1.250000 1.039336 +v -0.480301 1.250000 1.924242 +v -0.243863 1.250000 1.225982 +v -0.243863 4.500000 1.225982 +v -0.480301 4.500000 1.924242 +v -0.694463 4.500000 1.039336 +v -1.021021 4.500000 1.700269 +v -0.243863 3.750000 1.225982 +v -0.694463 3.750000 1.039336 +v -0.480301 3.750000 1.924242 +v -1.021021 3.750000 1.700269 +v -1.700269 0.500000 -1.021021 +v -1.924242 0.500000 -0.480300 +v -1.039337 0.500000 -0.694463 +v -1.225983 0.500000 -0.243863 +v -1.700269 1.250000 -1.021021 +v -1.039337 1.250000 -0.694463 +v -1.924242 1.250000 -0.480300 +v -1.225983 1.250000 -0.243863 +v -1.225983 4.500000 -0.243863 +v -1.924242 4.500000 -0.480300 +v -1.039337 4.500000 -0.694463 +v -1.700269 4.500000 -1.021021 +v -1.225983 3.750000 -0.243863 +v -1.039337 3.750000 -0.694463 +v -1.924242 3.750000 -0.480300 +v -1.700269 3.750000 -1.021021 +v 1.700268 0.500000 1.021021 +v 1.924242 0.500000 0.480300 +v 1.039336 0.500000 0.694463 +v 1.225982 0.500000 0.243863 +v 1.700268 1.250000 1.021021 +v 1.039336 1.250000 0.694463 +v 1.924242 1.250000 0.480300 +v 1.225982 1.250000 0.243863 +v 1.225982 4.500000 0.243863 +v 1.924242 4.500000 0.480300 +v 1.039336 4.500000 0.694463 +v 1.700268 4.500000 1.021021 +v 1.225982 3.750000 0.243863 +v 1.039336 3.750000 0.694463 +v 1.924242 3.750000 0.480300 +v 1.700268 3.750000 1.021021 +v -0.480301 0.500000 -1.924242 +v -1.021021 0.500000 -1.700269 +v -0.243863 0.500000 -1.225981 +v -0.694464 0.500000 -1.039337 +v -0.480301 1.250000 -1.924242 +v -0.243863 1.250000 -1.225981 +v -1.021021 1.250000 -1.700269 +v -0.694464 1.250000 -1.039337 +v -0.694464 4.500000 -1.039337 +v -1.021021 4.500000 -1.700269 +v -0.243863 4.500000 -1.225981 +v -0.480301 4.500000 -1.924242 +v -0.694464 3.750000 -1.039337 +v -0.243863 3.750000 -1.225981 +v -1.021021 3.750000 -1.700269 +v -0.480301 3.750000 -1.924242 +v 0.480300 0.500000 1.924242 +v 1.021021 0.500000 1.700268 +v 0.243862 0.500000 1.225981 +v 0.694463 0.500000 1.039337 +v 0.480300 1.250000 1.924242 +v 0.243862 1.250000 1.225981 +v 1.021021 1.250000 1.700268 +v 0.694463 1.250000 1.039337 +v 0.694463 4.500000 1.039337 +v 1.021021 4.500000 1.700268 +v 0.243862 4.500000 1.225981 +v 0.480300 4.500000 1.924242 +v 0.694463 3.750000 1.039337 +v 0.243862 3.750000 1.225981 +v 1.021021 3.750000 1.700268 +v 0.480300 3.750000 1.924242 +v -1.924242 0.500000 0.480301 +v -1.700269 0.500000 1.021021 +v -1.225981 0.500000 0.243863 +v -1.039337 0.500000 0.694463 +v -1.924242 1.250000 0.480301 +v -1.225981 1.250000 0.243863 +v -1.700269 1.250000 1.021021 +v -1.039337 1.250000 0.694463 +v -1.039337 4.500000 0.694463 +v -1.700269 4.500000 1.021021 +v -1.225981 4.500000 0.243863 +v -1.924242 4.500000 0.480301 +v -1.039337 3.750000 0.694463 +v -1.225981 3.750000 0.243863 +v -1.700269 3.750000 1.021021 +v -1.924242 3.750000 0.480301 +v 1.924242 0.500000 -0.480301 +v 1.700268 0.500000 -1.021021 +v 1.225981 0.500000 -0.243863 +v 1.039337 0.500000 -0.694463 +v 1.924242 1.250000 -0.480301 +v 1.225981 1.250000 -0.243863 +v 1.700268 1.250000 -1.021021 +v 1.039337 1.250000 -0.694463 +v 1.039337 4.500000 -0.694463 +v 1.700268 4.500000 -1.021021 +v 1.225981 4.500000 -0.243863 +v 1.924242 4.500000 -0.480301 +v 1.039337 3.750000 -0.694463 +v 1.225981 3.750000 -0.243863 +v 1.700268 3.750000 -1.021021 +v 1.924242 3.750000 -0.480301 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.756410 0.491228 +vt 0.782051 0.543860 +vt 0.759615 0.543860 +vt 0.756410 0.438596 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.785256 0.438596 +vt 0.785256 0.438596 +vt 0.756410 0.491228 +vt 0.756410 0.438596 +vt 0.823718 0.438596 +vt 0.785256 0.491228 +vt 0.717949 0.491228 +vt 0.717949 0.438596 +vt 0.782051 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vt 0.823718 0.491228 +vt 0.823718 0.491228 +vt 0.759615 0.385965 +vn 0.0000 1.0000 0.0000 +vn -0.0662 0.0000 0.9978 +vn -0.0662 0.0000 -0.9978 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0662 0.0000 -0.9978 +vn 0.0662 0.0000 0.9978 +vn -1.0000 0.0000 0.0000 +vn 0.9978 0.0000 0.0662 +vn -0.9978 0.0000 0.0662 +vn 0.0000 0.0000 -1.0000 +vn -0.9978 0.0000 -0.0662 +vn 0.9978 0.0000 -0.0662 +vn 0.0000 0.0000 1.0000 +vn 0.6588 0.0000 0.7523 +vn -0.7523 0.0000 -0.6588 +vn 0.7071 0.0000 -0.7071 +vn -0.6588 0.0000 -0.7523 +vn 0.7523 0.0000 0.6588 +vn -0.7071 0.0000 0.7071 +vn 0.7523 0.0000 -0.6588 +vn -0.6588 0.0000 0.7523 +vn -0.7071 0.0000 -0.7071 +vn -0.7523 0.0000 0.6588 +vn 0.6588 0.0000 -0.7523 +vn 0.7071 0.0000 0.7071 +vn 0.8965 0.0000 0.4430 +vn -0.9472 0.0000 -0.3207 +vn 0.3827 0.0000 -0.9239 +vn -0.8965 0.0000 -0.4430 +vn 0.9472 0.0000 0.3207 +vn -0.3827 0.0000 0.9239 +vn 0.4430 0.0000 -0.8965 +vn -0.3207 0.0000 0.9472 +vn -0.9239 0.0000 -0.3827 +vn -0.4430 0.0000 0.8965 +vn 0.3207 0.0000 -0.9472 +vn 0.9239 0.0000 0.3827 +vn 0.9472 0.0000 -0.3207 +vn -0.8965 0.0000 0.4430 +vn -0.3827 0.0000 -0.9239 +vn -0.9472 0.0000 0.3207 +vn 0.8965 0.0000 -0.4430 +vn 0.3827 0.0000 0.9239 +vn -0.3207 0.0000 -0.9472 +vn 0.4430 0.0000 0.8965 +vn -0.9239 0.0000 0.3827 +vn 0.3207 0.0000 0.9472 +vn -0.4430 0.0000 -0.8965 +vn 0.9239 0.0000 -0.3827 +s off +f 5/1/1 8/2/1 6/3/1 +f 1/4/2 6/5/2 3/6/2 +f 4/7/3 7/8/3 2/9/3 +f 2/9/4 5/1/4 1/4/4 +f 15/10/4 12/11/4 16/12/4 +f 13/13/3 10/14/3 15/10/3 +f 16/12/2 11/15/2 14/16/2 +f 16/12/5 13/17/5 15/10/5 +f 21/18/1 24/19/1 22/20/1 +f 17/21/6 22/22/6 19/23/6 +f 20/24/7 23/25/7 18/26/7 +f 18/26/8 21/18/8 17/21/8 +f 31/27/8 28/28/8 32/29/8 +f 29/30/7 26/31/7 31/27/7 +f 32/29/6 27/32/6 30/33/6 +f 32/29/5 29/34/5 31/27/5 +f 37/35/1 40/36/1 38/37/1 +f 33/38/9 38/39/9 35/40/9 +f 36/41/10 39/42/10 34/43/10 +f 34/43/11 37/35/11 33/38/11 +f 47/44/11 44/45/11 48/46/11 +f 45/47/10 42/48/10 47/44/10 +f 48/46/9 43/49/9 46/50/9 +f 48/46/5 45/51/5 47/44/5 +f 53/52/1 56/53/1 54/54/1 +f 49/55/12 54/56/12 51/57/12 +f 52/58/13 55/59/13 50/60/13 +f 50/60/14 53/52/14 49/55/14 +f 63/61/14 60/62/14 64/63/14 +f 61/64/13 58/65/13 63/61/13 +f 64/63/12 59/66/12 62/67/12 +f 64/63/5 61/68/5 63/61/5 +f 69/69/1 72/70/1 70/71/1 +f 65/72/15 70/73/15 67/74/15 +f 68/75/16 71/76/16 66/77/16 +f 66/77/17 69/69/17 65/72/17 +f 79/78/17 76/79/17 80/80/17 +f 77/81/16 74/82/16 79/78/16 +f 80/80/15 75/83/15 78/84/15 +f 80/80/5 77/85/5 79/78/5 +f 85/86/1 88/87/1 86/88/1 +f 81/89/18 86/90/18 83/91/18 +f 84/92/19 87/93/19 82/94/19 +f 82/94/20 85/86/20 81/89/20 +f 95/95/20 92/96/20 96/97/20 +f 93/98/19 90/99/19 95/95/19 +f 96/97/18 91/100/18 94/101/18 +f 96/97/5 93/102/5 95/95/5 +f 101/103/1 104/104/1 102/105/1 +f 97/106/21 102/107/21 99/108/21 +f 100/109/22 103/110/22 98/111/22 +f 98/111/23 101/103/23 97/106/23 +f 111/112/23 108/113/23 112/114/23 +f 109/115/22 106/116/22 111/112/22 +f 112/114/21 107/117/21 110/118/21 +f 112/114/5 109/119/5 111/112/5 +f 117/120/1 120/121/1 118/122/1 +f 113/123/24 118/124/24 115/125/24 +f 116/126/25 119/127/25 114/128/25 +f 114/128/26 117/120/26 113/123/26 +f 127/129/26 124/130/26 128/131/26 +f 125/132/25 122/133/25 127/129/25 +f 128/131/24 123/134/24 126/135/24 +f 128/131/5 125/136/5 127/129/5 +f 133/137/1 136/138/1 134/139/1 +f 129/140/27 134/141/27 131/142/27 +f 132/143/28 135/144/28 130/145/28 +f 130/145/29 133/137/29 129/140/29 +f 143/146/29 140/147/29 144/148/29 +f 141/149/28 138/150/28 143/146/28 +f 144/148/27 139/151/27 142/152/27 +f 144/148/5 141/153/5 143/146/5 +f 149/154/1 152/155/1 150/156/1 +f 145/157/30 150/158/30 147/159/30 +f 148/160/31 151/161/31 146/162/31 +f 146/162/32 149/154/32 145/157/32 +f 159/163/32 156/164/32 160/165/32 +f 157/166/31 154/167/31 159/163/31 +f 160/165/30 155/168/30 158/169/30 +f 160/165/5 157/170/5 159/163/5 +f 165/171/1 168/172/1 166/173/1 +f 161/174/33 166/175/33 163/176/33 +f 164/177/34 167/178/34 162/179/34 +f 162/179/35 165/171/35 161/174/35 +f 175/180/35 172/181/35 176/182/35 +f 173/183/34 170/184/34 175/180/34 +f 176/182/33 171/185/33 174/186/33 +f 176/182/5 173/187/5 175/180/5 +f 181/188/1 184/189/1 182/190/1 +f 177/191/36 182/192/36 179/193/36 +f 180/194/37 183/195/37 178/196/37 +f 178/196/38 181/188/38 177/191/38 +f 191/197/38 188/198/38 192/199/38 +f 189/200/37 186/201/37 191/197/37 +f 192/199/36 187/202/36 190/203/36 +f 192/199/5 189/204/5 191/197/5 +f 197/205/1 200/206/1 198/207/1 +f 193/208/39 198/209/39 195/210/39 +f 196/211/40 199/212/40 194/213/40 +f 194/213/41 197/205/41 193/208/41 +f 207/214/41 204/215/41 208/216/41 +f 205/217/40 202/218/40 207/214/40 +f 208/216/39 203/219/39 206/220/39 +f 208/216/5 205/221/5 207/214/5 +f 213/222/1 216/223/1 214/224/1 +f 209/225/42 214/226/42 211/227/42 +f 212/228/43 215/229/43 210/230/43 +f 210/230/44 213/222/44 209/225/44 +f 223/231/44 220/232/44 224/233/44 +f 221/234/43 218/235/43 223/231/43 +f 224/233/42 219/236/42 222/237/42 +f 224/233/5 221/238/5 223/231/5 +f 229/239/1 232/240/1 230/241/1 +f 225/242/45 230/243/45 227/244/45 +f 228/245/46 231/246/46 226/247/46 +f 226/247/47 229/239/47 225/242/47 +f 239/248/47 236/249/47 240/250/47 +f 237/251/46 234/252/46 239/248/46 +f 240/250/45 235/253/45 238/254/45 +f 240/250/5 237/255/5 239/248/5 +f 245/256/1 248/257/1 246/258/1 +f 241/259/48 246/260/48 243/261/48 +f 244/262/49 247/263/49 242/264/49 +f 242/264/50 245/256/50 241/259/50 +f 255/265/50 252/266/50 256/267/50 +f 253/268/49 250/269/49 255/265/49 +f 256/267/48 251/270/48 254/271/48 +f 256/267/5 253/272/5 255/265/5 +f 5/1/1 7/8/1 8/2/1 +f 1/4/2 5/1/2 6/5/2 +f 4/7/3 8/273/3 7/8/3 +f 2/9/4 7/8/4 5/1/4 +f 15/10/4 10/14/4 12/11/4 +f 13/13/3 9/274/3 10/14/3 +f 16/12/2 12/11/2 11/15/2 +f 16/12/5 14/275/5 13/17/5 +f 21/18/1 23/25/1 24/19/1 +f 17/21/6 21/18/6 22/22/6 +f 20/24/7 24/276/7 23/25/7 +f 18/26/8 23/25/8 21/18/8 +f 31/27/8 26/31/8 28/28/8 +f 29/30/7 25/277/7 26/31/7 +f 32/29/6 28/28/6 27/32/6 +f 32/29/5 30/278/5 29/34/5 +f 37/35/1 39/42/1 40/36/1 +f 33/38/9 37/35/9 38/39/9 +f 36/41/10 40/279/10 39/42/10 +f 34/43/11 39/42/11 37/35/11 +f 47/44/11 42/48/11 44/45/11 +f 45/47/10 41/280/10 42/48/10 +f 48/46/9 44/45/9 43/49/9 +f 48/46/5 46/281/5 45/51/5 +f 53/52/1 55/59/1 56/53/1 +f 49/55/12 53/52/12 54/56/12 +f 52/58/13 56/282/13 55/59/13 +f 50/60/14 55/59/14 53/52/14 +f 63/61/14 58/65/14 60/62/14 +f 61/64/13 57/283/13 58/65/13 +f 64/63/12 60/62/12 59/66/12 +f 64/63/5 62/284/5 61/68/5 +f 69/69/1 71/76/1 72/70/1 +f 65/72/15 69/69/15 70/73/15 +f 68/75/16 72/285/16 71/76/16 +f 66/77/17 71/76/17 69/69/17 +f 79/78/17 74/82/17 76/79/17 +f 77/81/16 73/286/16 74/82/16 +f 80/80/15 76/79/15 75/83/15 +f 80/80/5 78/287/5 77/85/5 +f 85/86/1 87/93/1 88/87/1 +f 81/89/18 85/86/18 86/90/18 +f 84/92/19 88/288/19 87/93/19 +f 82/94/20 87/93/20 85/86/20 +f 95/95/20 90/99/20 92/96/20 +f 93/98/19 89/289/19 90/99/19 +f 96/97/18 92/96/18 91/100/18 +f 96/97/5 94/290/5 93/102/5 +f 101/103/1 103/110/1 104/104/1 +f 97/106/21 101/103/21 102/107/21 +f 100/109/22 104/291/22 103/110/22 +f 98/111/23 103/110/23 101/103/23 +f 111/112/23 106/116/23 108/113/23 +f 109/115/22 105/292/22 106/116/22 +f 112/114/21 108/113/21 107/117/21 +f 112/114/5 110/293/5 109/119/5 +f 117/120/1 119/127/1 120/121/1 +f 113/123/24 117/120/24 118/124/24 +f 116/126/25 120/294/25 119/127/25 +f 114/128/26 119/127/26 117/120/26 +f 127/129/26 122/133/26 124/130/26 +f 125/132/25 121/295/25 122/133/25 +f 128/131/24 124/130/24 123/134/24 +f 128/131/5 126/296/5 125/136/5 +f 133/137/1 135/144/1 136/138/1 +f 129/140/27 133/137/27 134/141/27 +f 132/143/28 136/297/28 135/144/28 +f 130/145/29 135/144/29 133/137/29 +f 143/146/29 138/150/29 140/147/29 +f 141/149/28 137/298/28 138/150/28 +f 144/148/27 140/147/27 139/151/27 +f 144/148/5 142/299/5 141/153/5 +f 149/154/1 151/161/1 152/155/1 +f 145/157/30 149/154/30 150/158/30 +f 148/160/31 152/300/31 151/161/31 +f 146/162/32 151/161/32 149/154/32 +f 159/163/32 154/167/32 156/164/32 +f 157/166/31 153/301/31 154/167/31 +f 160/165/30 156/164/30 155/168/30 +f 160/165/5 158/302/5 157/170/5 +f 165/171/1 167/178/1 168/172/1 +f 161/174/33 165/171/33 166/175/33 +f 164/177/34 168/303/34 167/178/34 +f 162/179/35 167/178/35 165/171/35 +f 175/180/35 170/184/35 172/181/35 +f 173/183/34 169/304/34 170/184/34 +f 176/182/33 172/181/33 171/185/33 +f 176/182/5 174/305/5 173/187/5 +f 181/188/1 183/195/1 184/189/1 +f 177/191/36 181/188/36 182/192/36 +f 180/194/37 184/306/37 183/195/37 +f 178/196/38 183/195/38 181/188/38 +f 191/197/38 186/201/38 188/198/38 +f 189/200/37 185/307/37 186/201/37 +f 192/199/36 188/198/36 187/202/36 +f 192/199/5 190/308/5 189/204/5 +f 197/205/1 199/212/1 200/206/1 +f 193/208/39 197/205/39 198/209/39 +f 196/211/40 200/309/40 199/212/40 +f 194/213/41 199/212/41 197/205/41 +f 207/214/41 202/218/41 204/215/41 +f 205/217/40 201/310/40 202/218/40 +f 208/216/39 204/215/39 203/219/39 +f 208/216/5 206/311/5 205/221/5 +f 213/222/1 215/229/1 216/223/1 +f 209/225/42 213/222/42 214/226/42 +f 212/228/43 216/312/43 215/229/43 +f 210/230/44 215/229/44 213/222/44 +f 223/231/44 218/235/44 220/232/44 +f 221/234/43 217/313/43 218/235/43 +f 224/233/42 220/232/42 219/236/42 +f 224/233/5 222/314/5 221/238/5 +f 229/239/1 231/246/1 232/240/1 +f 225/242/45 229/239/45 230/243/45 +f 228/245/46 232/315/46 231/246/46 +f 226/247/47 231/246/47 229/239/47 +f 239/248/47 234/252/47 236/249/47 +f 237/251/46 233/316/46 234/252/46 +f 240/250/45 236/249/45 235/253/45 +f 240/250/5 238/317/5 237/255/5 +f 245/256/1 247/263/1 248/257/1 +f 241/259/48 245/256/48 246/260/48 +f 244/262/49 248/318/49 247/263/49 +f 242/264/50 247/263/50 245/256/50 +f 255/265/50 250/269/50 252/266/50 +f 253/268/49 249/319/49 250/269/49 +f 256/267/48 252/266/48 251/270/48 +f 256/267/5 254/320/5 253/272/5 +o Core +v 0.000000 2.250000 -0.000000 +v 0.180900 2.388196 0.131430 +v -0.069097 2.388196 0.212660 +v -0.223606 2.388196 -0.000000 +v -0.069097 2.388196 -0.212660 +v 0.180900 2.388196 -0.131430 +v 0.069096 2.611804 0.212660 +v -0.180901 2.611804 0.131430 +v -0.180901 2.611804 -0.131430 +v 0.069096 2.611804 -0.212660 +v 0.223606 2.611804 -0.000000 +v 0.000000 2.750000 -0.000000 +vt 0.538462 0.491228 +vt 0.525641 0.491228 +vt 0.532051 0.473684 +vt 0.532051 0.473684 +vt 0.538462 0.491228 +vt 0.525641 0.491228 +vt 0.532051 0.473684 +vt 0.538462 0.491228 +vt 0.525641 0.491228 +vt 0.538462 0.491228 +vt 0.525641 0.491228 +vt 0.532051 0.473684 +vt 0.538462 0.491228 +vt 0.532051 0.473684 +vt 0.538462 0.491228 +vt 0.532051 0.473684 +vt 0.538462 0.491228 +vt 0.532051 0.473684 +vt 0.525641 0.491228 +vt 0.525641 0.491228 +vt 0.532051 0.473684 +vt 0.525641 0.491228 +vt 0.525641 0.491228 +vt 0.532051 0.473684 +vt 0.538462 0.491228 +vt 0.538462 0.491228 +vt 0.532051 0.473684 +vn 0.1876 -0.7947 0.5774 +vn 0.6071 -0.7947 0.0000 +vn -0.4911 -0.7947 0.3568 +vn -0.4911 -0.7947 -0.3568 +vn 0.1876 -0.7947 -0.5774 +vn 0.9822 -0.1876 0.0000 +vn 0.3035 -0.1876 0.9342 +vn -0.7946 -0.1876 0.5774 +vn -0.7946 -0.1876 -0.5774 +vn 0.3035 -0.1876 -0.9342 +vn 0.7946 0.1876 0.5774 +vn -0.3035 0.1876 0.9342 +vn -0.9822 0.1876 0.0000 +vn -0.3035 0.1876 -0.9342 +vn 0.7946 0.1876 -0.5774 +vn 0.4911 0.7947 0.3568 +vn -0.1876 0.7947 0.5774 +vn -0.6071 0.7947 0.0000 +vn -0.1876 0.7947 -0.5774 +vn 0.4911 0.7947 -0.3568 +s off +f 257/321/51 258/322/51 259/323/51 +f 258/322/52 257/324/52 262/325/52 +f 257/321/53 259/326/53 260/327/53 +f 257/324/54 260/328/54 261/329/54 +f 257/324/55 261/330/55 262/331/55 +f 258/322/56 262/332/56 267/333/56 +f 259/326/57 258/334/57 263/335/57 +f 260/328/58 259/326/58 264/336/58 +f 261/329/59 260/327/59 265/337/59 +f 262/325/60 261/329/60 266/338/60 +f 258/334/61 267/333/61 263/339/61 +f 259/323/62 263/335/62 264/340/62 +f 260/328/63 264/340/63 265/341/63 +f 261/330/64 265/342/64 266/338/64 +f 262/325/65 266/343/65 267/344/65 +f 263/339/66 267/344/66 268/345/66 +f 264/346/67 263/339/67 268/347/67 +f 265/337/68 264/340/68 268/347/68 +f 266/343/69 265/341/69 268/345/69 +f 267/333/70 266/343/70 268/347/70 +o Chamber +v 0.000000 0.000000 -2.500000 +v -0.956709 0.000000 -2.309699 +v -1.767767 0.000000 -1.767767 +v -2.309699 0.000000 -0.956709 +v -2.500000 0.000000 0.000000 +v -2.309699 0.000000 0.956709 +v -1.767767 0.000000 1.767767 +v -0.956709 0.000000 2.309699 +v 0.000000 0.000000 2.500000 +v 0.956708 0.000000 2.309699 +v 1.767767 0.000000 1.767768 +v 2.309699 0.000000 0.956709 +v 2.500000 0.000000 -0.000000 +v 2.309698 0.000000 -0.956709 +v 1.767766 0.000000 -1.767768 +v 0.956707 0.000000 -2.309699 +v 0.000000 0.500000 -2.500000 +v -0.956709 0.500000 -2.309699 +v -1.767767 0.500000 -1.767767 +v -2.309699 0.500000 -0.956709 +v -2.500000 0.500000 0.000000 +v -2.309699 0.500000 0.956709 +v -1.767767 0.500000 1.767767 +v -0.956709 0.500000 2.309699 +v 0.000000 0.500000 2.500000 +v 0.956708 0.500000 2.309699 +v 1.767767 0.500000 1.767768 +v 2.309699 0.500000 0.956709 +v 2.500000 0.500000 -0.000000 +v 2.309698 0.500000 -0.956709 +v 1.767766 0.500000 -1.767768 +v 0.956707 0.500000 -2.309699 +v 0.000000 0.500000 -2.250000 +v -0.861038 0.500000 -2.078729 +v -1.590990 0.500000 -1.590990 +v -2.078729 0.500000 -0.861038 +v -2.250000 0.500000 0.000000 +v -2.078729 0.500000 0.861038 +v -1.590990 0.500000 1.590990 +v -0.861038 0.500000 2.078729 +v -0.000001 0.500000 2.250000 +v 0.861037 0.500000 2.078729 +v 1.590990 0.500000 1.590991 +v 2.078729 0.500000 0.861038 +v 2.250000 0.500000 0.000000 +v 2.078729 0.500000 -0.861038 +v 1.590990 0.500000 -1.590991 +v 0.861036 0.500000 -2.078730 +v 0.000000 4.500000 -2.250000 +v -0.861038 4.500000 -2.078729 +v -1.590990 4.500000 -1.590990 +v -2.078729 4.500000 -0.861038 +v -2.250000 4.500000 0.000000 +v -2.078729 4.500000 0.861038 +v -1.590990 4.500000 1.590990 +v -0.861038 4.500000 2.078729 +v -0.000001 4.500000 2.250000 +v 0.861037 4.500000 2.078729 +v 1.590990 4.500000 1.590991 +v 2.078729 4.500000 0.861038 +v 2.250000 4.500000 0.000000 +v 2.078729 4.500000 -0.861038 +v 1.590990 4.500000 -1.590991 +v 0.861036 4.500000 -2.078730 +v 1.767767 0.375000 1.944544 +v 1.944544 0.375000 1.767767 +v 1.767767 4.625000 1.944544 +v 1.944544 4.625000 1.767767 +v 1.944544 4.625000 2.121320 +v 1.944544 0.375000 2.121320 +v 2.121320 0.375000 1.944544 +v 2.121320 4.625000 1.944544 +v 1.944544 4.875000 1.767767 +v 1.767767 4.875000 1.944544 +v 1.767767 0.125000 1.944544 +v 1.944544 0.125000 1.767767 +v 1.590990 0.375000 1.767767 +v 1.767767 0.375000 1.590990 +v 1.767767 4.625000 1.590990 +v 1.590990 4.625000 1.767767 +v 1.767767 4.875000 1.590990 +v 1.590990 4.875000 1.767767 +v 1.590990 0.125000 1.767767 +v 1.767767 0.125000 1.590990 +v 1.944544 0.375000 -1.767767 +v 1.767767 0.375000 -1.944544 +v 1.944544 4.625000 -1.767767 +v 1.767767 4.625000 -1.944544 +v 2.121321 4.625000 -1.944544 +v 2.121321 0.375000 -1.944544 +v 1.944544 0.375000 -2.121320 +v 1.944544 4.625000 -2.121320 +v 1.767767 4.875000 -1.944544 +v 1.944544 4.875000 -1.767767 +v 1.944544 0.125000 -1.767767 +v 1.767767 0.125000 -1.944544 +v 1.767767 0.375000 -1.590990 +v 1.590990 0.375000 -1.767767 +v 1.590990 4.625000 -1.767767 +v 1.767767 4.625000 -1.590990 +v 1.590990 4.875000 -1.767767 +v 1.767767 4.875000 -1.590990 +v 1.767767 0.125000 -1.590990 +v 1.590990 0.125000 -1.767767 +v -1.767767 0.375000 -1.944544 +v -1.944544 0.375000 -1.767767 +v -1.767767 4.625000 -1.944544 +v -1.944544 4.625000 -1.767767 +v -1.944544 4.625000 -2.121320 +v -1.944544 0.375000 -2.121320 +v -2.121321 0.375000 -1.944544 +v -2.121321 4.625000 -1.944544 +v -1.944544 4.875000 -1.767767 +v -1.767767 4.875000 -1.944544 +v -1.767767 0.125000 -1.944544 +v -1.944544 0.125000 -1.767767 +v -1.590990 0.375000 -1.767767 +v -1.767767 0.375000 -1.590990 +v -1.767767 4.625000 -1.590990 +v -1.590990 4.625000 -1.767767 +v -1.767767 4.875000 -1.590990 +v -1.590990 4.875000 -1.767767 +v -1.590990 0.125000 -1.767767 +v -1.767767 0.125000 -1.590990 +v -1.944544 0.375000 1.767767 +v -1.767767 0.375000 1.944544 +v -1.944544 4.625000 1.767767 +v -1.767767 4.625000 1.944544 +v -2.121320 4.625000 1.944544 +v -2.121320 0.375000 1.944544 +v -1.944544 0.375000 2.121320 +v -1.944544 4.625000 2.121320 +v -1.767767 4.875000 1.944544 +v -1.944544 4.875000 1.767767 +v -1.944544 0.125000 1.767767 +v -1.767767 0.125000 1.944544 +v -1.767767 0.375000 1.590990 +v -1.590990 0.375000 1.767767 +v -1.590990 4.625000 1.767767 +v -1.767767 4.625000 1.590990 +v -1.590990 4.875000 1.767767 +v -1.767767 4.875000 1.590990 +v -1.767767 0.125000 1.590990 +v -1.590990 0.125000 1.767767 +v 0.000000 0.500000 -1.500000 +v -0.574025 0.500000 -1.385819 +v -1.060660 0.500000 -1.060660 +v -1.385819 0.500000 -0.574025 +v -1.500000 0.500000 0.000000 +v -1.385819 0.500000 0.574025 +v -1.060660 0.500000 1.060660 +v -0.574025 0.500000 1.385819 +v 0.000000 0.500000 1.500000 +v 0.574024 0.500000 1.385819 +v 1.060659 0.500000 1.060660 +v 1.385819 0.500000 0.574025 +v 1.500000 0.500000 -0.000000 +v 1.385819 0.500000 -0.574025 +v 1.060659 0.500000 -1.060660 +v 0.574024 0.500000 -1.385820 +v 0.000000 1.500000 -1.500000 +v -0.574025 1.500000 -1.385819 +v -1.060660 1.500000 -1.060660 +v -1.385819 1.500000 -0.574025 +v -1.500000 1.500000 0.000000 +v -1.385819 1.500000 0.574025 +v -1.060660 1.500000 1.060660 +v -0.574025 1.500000 1.385819 +v 0.000000 1.500000 1.500000 +v 0.574024 1.500000 1.385819 +v 1.060659 1.500000 1.060660 +v 1.385819 1.500000 0.574025 +v 1.500000 1.500000 -0.000000 +v 1.385819 1.500000 -0.574025 +v 1.060659 1.500000 -1.060660 +v 0.574024 1.500000 -1.385820 +v 0.000000 3.500000 -1.500000 +v -0.574025 3.500000 -1.385819 +v -1.060660 3.500000 -1.060660 +v -1.385819 3.500000 -0.574025 +v -1.500000 3.500000 0.000000 +v -1.385819 3.500000 0.574025 +v -1.060660 3.500000 1.060660 +v -0.574025 3.500000 1.385819 +v 0.000000 3.500000 1.500000 +v 0.574024 3.500000 1.385819 +v 1.060659 3.500000 1.060660 +v 1.385819 3.500000 0.574025 +v 1.500000 3.500000 -0.000000 +v 1.385819 3.500000 -0.574025 +v 1.060659 3.500000 -1.060660 +v 0.574024 3.500000 -1.385820 +v 0.000000 4.500000 -1.500000 +v -0.574025 4.500000 -1.385819 +v -1.060660 4.500000 -1.060660 +v -1.385819 4.500000 -0.574025 +v -1.500000 4.500000 0.000000 +v -1.385819 4.500000 0.574025 +v -1.060660 4.500000 1.060660 +v -0.574025 4.500000 1.385819 +v 0.000000 4.500000 1.500000 +v 0.574024 4.500000 1.385819 +v 1.060659 4.500000 1.060660 +v 1.385819 4.500000 0.574025 +v 1.500000 4.500000 -0.000000 +v 1.385819 4.500000 -0.574025 +v 1.060659 4.500000 -1.060660 +v 0.574024 4.500000 -1.385820 +v 0.000000 1.500000 -1.000000 +v -0.382684 1.500000 -0.923880 +v -0.707107 1.500000 -0.707107 +v -0.923880 1.500000 -0.382683 +v -1.000000 1.500000 0.000000 +v -0.923880 1.500000 0.382683 +v -0.707107 1.500000 0.707107 +v -0.382684 1.500000 0.923880 +v 0.000000 1.500000 1.000000 +v 0.382683 1.500000 0.923880 +v 0.707107 1.500000 0.707107 +v 0.923880 1.500000 0.382684 +v 1.000000 1.500000 -0.000000 +v 0.923880 1.500000 -0.382684 +v 0.707107 1.500000 -0.707107 +v 0.382683 1.500000 -0.923880 +v 0.000000 1.750000 -1.000000 +v -0.382684 1.750000 -0.923880 +v -0.707107 1.750000 -0.707107 +v -0.923880 1.750000 -0.382683 +v -1.000000 1.750000 0.000000 +v -0.923880 1.750000 0.382683 +v -0.707107 1.750000 0.707107 +v -0.382684 1.750000 0.923880 +v 0.000000 1.750000 1.000000 +v 0.382683 1.750000 0.923880 +v 0.707107 1.750000 0.707107 +v 0.923880 1.750000 0.382684 +v 1.000000 1.750000 -0.000000 +v 0.923880 1.750000 -0.382684 +v 0.707107 1.750000 -0.707107 +v 0.382683 1.750000 -0.923880 +v 0.000000 3.250000 -1.000000 +v -0.382684 3.250000 -0.923880 +v -0.707107 3.250000 -0.707107 +v -0.923880 3.250000 -0.382683 +v -1.000000 3.250000 0.000000 +v -0.923880 3.250000 0.382683 +v -0.707107 3.250000 0.707107 +v -0.382684 3.250000 0.923880 +v 0.000000 3.250000 1.000000 +v 0.382683 3.250000 0.923880 +v 0.707107 3.250000 0.707107 +v 0.923880 3.250000 0.382684 +v 1.000000 3.250000 -0.000000 +v 0.923880 3.250000 -0.382684 +v 0.707107 3.250000 -0.707107 +v 0.382683 3.250000 -0.923880 +v 0.000000 3.500000 -1.000000 +v -0.382684 3.500000 -0.923880 +v -0.707107 3.500000 -0.707107 +v -0.923880 3.500000 -0.382683 +v -1.000000 3.500000 0.000000 +v -0.923880 3.500000 0.382683 +v -0.707107 3.500000 0.707107 +v -0.382684 3.500000 0.923880 +v 0.000000 3.500000 1.000000 +v 0.382683 3.500000 0.923880 +v 0.707107 3.500000 0.707107 +v 0.923880 3.500000 0.382684 +v 1.000000 3.500000 -0.000000 +v 0.923880 3.500000 -0.382684 +v 0.707107 3.500000 -0.707107 +v 0.382683 3.500000 -0.923880 +v 0.972271 1.500000 0.972272 +v 0.795495 1.500000 0.795495 +v 0.795495 1.500000 -0.795495 +v 0.795495 2.000000 0.795495 +v 0.972271 1.500000 -0.972272 +v 0.795495 3.000000 0.795495 +v 0.972271 3.500000 0.972272 +v 0.795495 3.500000 0.795495 +v 0.265164 2.000000 0.265165 +v 0.265164 3.000000 0.265165 +v 0.795495 2.000000 -0.795495 +v 0.795495 3.000000 -0.795495 +v 0.972271 3.500000 -0.972272 +v 0.795495 3.500000 -0.795495 +v 0.265164 2.000000 -0.265165 +v 0.265164 3.000000 -0.265165 +v -0.972272 1.500000 -0.972272 +v -0.795495 1.500000 -0.795495 +v -0.795495 1.500000 0.795495 +v -0.795495 2.000000 -0.795495 +v -0.972272 1.500000 0.972272 +v -0.795495 3.000000 -0.795495 +v -0.972272 3.500000 -0.972272 +v -0.795495 3.500000 -0.795495 +v -0.265165 2.000000 -0.265165 +v -0.265165 3.000000 -0.265165 +v -0.795495 2.000000 0.795495 +v -0.795495 3.000000 0.795495 +v -0.972272 3.500000 0.972272 +v -0.795495 3.500000 0.795495 +v -0.265165 2.000000 0.265165 +v -0.265165 3.000000 0.265165 +v 0.000000 3.000000 -1.000000 +v -0.353554 2.853553 -1.000000 +v -0.500000 2.500000 -1.000000 +v -0.353554 2.146447 -1.000000 +v 0.000000 2.000000 -1.000000 +v 0.353553 2.146447 -1.000000 +v 0.500000 2.500000 -1.000000 +v 0.353553 2.853553 -1.000000 +v 0.000000 3.000000 -6.500000 +v -0.353554 2.853553 -6.500000 +v -0.500000 2.500000 -6.500000 +v -0.353554 2.146447 -6.500000 +v 0.000000 2.000000 -6.500000 +v 0.353553 2.146447 -6.500000 +v 0.500000 2.500000 -6.500000 +v 0.353553 2.853553 -6.500000 +v 0.000000 2.875000 -1.000000 +v -0.265165 2.765165 -1.000000 +v -0.375000 2.500000 -1.000000 +v -0.265165 2.234835 -1.000000 +v 0.000000 2.125000 -1.000000 +v 0.265164 2.234835 -1.000000 +v 0.375000 2.500000 -1.000000 +v 0.265164 2.765165 -1.000000 +v -0.265165 2.765165 -0.500000 +v 0.000000 2.875000 -0.500000 +v -0.375000 2.500000 -0.500000 +v -0.265165 2.234835 -0.500000 +v 0.000000 2.125000 -0.500000 +v 0.265164 2.234835 -0.500000 +v 0.375000 2.500000 -0.500000 +v 0.265164 2.765165 -0.500000 +v -1.000000 0.000000 -6.500000 +v 1.000000 0.000000 -6.500000 +v -1.000000 0.000000 -8.500000 +v 1.000000 0.000000 -8.500000 +v -1.000000 2.500000 -8.500000 +v -1.000000 3.500000 -6.500000 +v 1.000000 3.500000 -6.500000 +v 1.000000 2.500000 -8.500000 +v -0.250000 0.000000 -3.250000 +v 0.250000 0.000000 -3.250000 +v -0.250000 0.000000 -3.750000 +v 0.250000 0.000000 -3.750000 +v -0.250000 0.125000 -3.750000 +v -0.250000 0.125000 -3.250000 +v 0.250000 0.125000 -3.250000 +v 0.250000 0.125000 -3.750000 +v -0.125000 0.125000 -3.625000 +v -0.125000 0.125000 -3.375000 +v 0.125000 0.125000 -3.375000 +v 0.125000 0.125000 -3.625000 +v -0.125000 1.750000 -3.625000 +v -0.125000 1.750000 -3.375000 +v 0.125000 1.750000 -3.375000 +v 0.125000 1.750000 -3.625000 +v -0.750000 2.500000 -6.750000 +v 0.750000 2.500000 -6.750000 +v -0.750000 2.500000 -8.250000 +v 0.750000 2.500000 -8.250000 +v -0.750000 3.500000 -8.250000 +v -0.750000 3.500000 -6.750000 +v 0.750000 3.500000 -6.750000 +v 0.750000 3.500000 -8.250000 +v 1.000000 0.000000 -6.500000 +v 1.500000 0.000000 -6.500000 +v 1.000000 0.000000 -8.500000 +v 1.500000 0.000000 -8.500000 +v 1.000000 1.500000 -8.500000 +v 1.000000 1.500000 -6.500000 +v 1.500000 1.000000 -6.500000 +v 1.500000 1.000000 -8.500000 +v -1.500000 0.000000 -6.500000 +v -1.000000 0.000000 -6.500000 +v -1.500000 0.000000 -8.500000 +v -1.000000 0.000000 -8.500000 +v -1.500000 1.000000 -8.500000 +v -1.500000 1.000000 -6.500000 +v -1.000000 1.500000 -6.500000 +v -1.000000 1.500000 -8.500000 +v 0.353553 2.853553 -2.375000 +v 0.500000 2.500000 -2.375000 +v 0.353553 2.146447 -2.375000 +v 0.000000 2.000000 -2.375000 +v -0.353554 2.146447 -2.375000 +v -0.500000 2.500000 -2.375000 +v -0.353554 2.853553 -2.375000 +v 0.000000 3.000000 -2.375000 +v 0.530330 3.030330 -2.125000 +v 0.750000 2.500000 -2.125000 +v 0.530330 1.969670 -2.125000 +v 0.000000 1.750000 -2.125000 +v -0.530331 1.969670 -2.125000 +v -0.750000 2.500000 -2.125000 +v -0.530331 3.030330 -2.125000 +v 0.000000 3.250000 -2.125000 +v 0.707107 3.207107 -2.375000 +v 1.000000 2.500000 -2.375000 +v 0.707107 1.792893 -2.375000 +v 0.000000 1.500000 -2.375000 +v -0.707107 1.792893 -2.375000 +v -1.000000 2.500000 -2.375000 +v -0.707107 3.207107 -2.375000 +v 0.000000 3.500000 -2.375000 +v 0.000000 3.500000 -2.625000 +v -0.707107 3.207107 -2.625000 +v -1.000000 2.500000 -2.625000 +v -0.707107 1.792893 -2.625000 +v 0.000000 1.500000 -2.625000 +v 0.707107 1.792893 -2.625000 +v 1.000000 2.500000 -2.625000 +v 0.707107 3.207107 -2.625000 +v 0.353553 2.853553 -2.625000 +v 0.500000 2.500000 -2.625000 +v 0.353553 2.146447 -2.625000 +v 0.000000 2.000000 -2.625000 +v -0.353554 2.146447 -2.625000 +v -0.500000 2.500000 -2.625000 +v -0.353554 2.853553 -2.625000 +v 0.000000 3.000000 -2.625000 +v 0.530330 3.030330 -2.875000 +v 0.750000 2.500000 -2.875000 +v 0.530330 1.969670 -2.875000 +v 0.000000 1.750000 -2.875000 +v -0.530331 1.969670 -2.875000 +v -0.750000 2.500000 -2.875000 +v -0.530331 3.030330 -2.875000 +v 0.000000 3.250000 -2.875000 +v -0.062500 3.750000 -2.562500 +v 0.062500 3.750000 -2.562500 +v -0.062500 3.750000 -7.437500 +v 0.062500 3.750000 -7.437500 +v -0.062500 3.625000 -7.437500 +v -0.062500 3.625000 -2.562500 +v 0.062500 3.625000 -2.562500 +v 0.062500 3.625000 -7.437500 +v 0.062500 3.625000 -3.437500 +v -0.062500 3.625000 -3.437500 +v -0.062500 3.625000 -2.437500 +v 0.062500 3.625000 -2.437500 +v 0.062500 3.625000 -3.562500 +v -0.062500 3.625000 -3.562500 +v 0.062500 3.625000 -7.562500 +v -0.062500 3.625000 -7.562500 +v -0.062500 3.437500 -2.562500 +v 0.062500 3.437500 -2.562500 +v 0.062500 3.500000 -7.437500 +v -0.062500 3.500000 -7.437500 +v -0.062500 3.437500 -2.437500 +v 0.062500 3.437500 -2.437500 +v 0.062500 3.500000 -7.562500 +v -0.062500 3.500000 -7.562500 +v -0.062500 3.437500 -3.562500 +v 0.062500 3.437500 -3.562500 +v -0.062500 3.437500 -3.437500 +v 0.062500 3.437500 -3.437500 +v 0.062500 3.625000 -4.437500 +v -0.062500 3.625000 -4.437500 +v 0.062500 3.625000 -4.562500 +v -0.062500 3.625000 -4.562500 +v -0.062500 3.437500 -4.562500 +v 0.062500 3.437500 -4.562500 +v -0.062500 3.437500 -4.437500 +v 0.062500 3.437500 -4.437500 +v 0.062500 3.625000 -5.437500 +v -0.062500 3.625000 -5.437500 +v 0.062500 3.625000 -5.562500 +v -0.062500 3.625000 -5.562500 +v -0.062500 3.437500 -5.562500 +v 0.062500 3.437500 -5.562500 +v -0.062500 3.437500 -5.437500 +v 0.062500 3.437500 -5.437500 +v 0.353553 2.853553 -3.375000 +v 0.500000 2.500000 -3.375000 +v 0.353553 2.146447 -3.375000 +v 0.000000 2.000000 -3.375000 +v -0.353554 2.146447 -3.375000 +v -0.500000 2.500000 -3.375000 +v -0.353554 2.853553 -3.375000 +v 0.000000 3.000000 -3.375000 +v 0.530330 3.030330 -3.125000 +v 0.750000 2.500000 -3.125000 +v 0.530330 1.969670 -3.125000 +v 0.000000 1.750000 -3.125000 +v -0.530331 1.969670 -3.125000 +v -0.750000 2.500000 -3.125000 +v -0.530331 3.030330 -3.125000 +v 0.000000 3.250000 -3.125000 +v 0.707107 3.207107 -3.375000 +v 1.000000 2.500000 -3.375000 +v 0.707107 1.792893 -3.375000 +v 0.000000 1.500000 -3.375000 +v -0.707107 1.792893 -3.375000 +v -1.000000 2.500000 -3.375000 +v -0.707107 3.207107 -3.375000 +v 0.000000 3.500000 -3.375000 +v 0.000000 3.500000 -3.625000 +v -0.707107 3.207107 -3.625000 +v -1.000000 2.500000 -3.625000 +v -0.707107 1.792893 -3.625000 +v 0.000000 1.500000 -3.625000 +v 0.707107 1.792893 -3.625000 +v 1.000000 2.500000 -3.625000 +v 0.707107 3.207107 -3.625000 +v 0.353553 2.853553 -3.625000 +v 0.500000 2.500000 -3.625000 +v 0.353553 2.146447 -3.625000 +v 0.000000 2.000000 -3.625000 +v -0.353554 2.146447 -3.625000 +v -0.500000 2.500000 -3.625000 +v -0.353554 2.853553 -3.625000 +v 0.000000 3.000000 -3.625000 +v 0.530330 3.030330 -3.875000 +v 0.750000 2.500000 -3.875000 +v 0.530330 1.969670 -3.875000 +v 0.000000 1.750000 -3.875000 +v -0.530331 1.969670 -3.875000 +v -0.750000 2.500000 -3.875000 +v -0.530331 3.030330 -3.875000 +v 0.000000 3.250000 -3.875000 +v 0.353553 2.853553 -4.375000 +v 0.500000 2.500000 -4.375000 +v 0.353553 2.146447 -4.375000 +v 0.000000 2.000000 -4.375000 +v -0.353554 2.146447 -4.375000 +v -0.500000 2.500000 -4.375000 +v -0.353554 2.853553 -4.375000 +v 0.000000 3.000000 -4.375000 +v 0.530330 3.030330 -4.125000 +v 0.750000 2.500000 -4.125000 +v 0.530330 1.969670 -4.125000 +v 0.000000 1.750000 -4.125000 +v -0.530331 1.969670 -4.125000 +v -0.750000 2.500000 -4.125000 +v -0.530331 3.030330 -4.125000 +v 0.000000 3.250000 -4.125000 +v 0.707107 3.207107 -4.375000 +v 1.000000 2.500000 -4.375000 +v 0.707107 1.792893 -4.375000 +v 0.000000 1.500000 -4.375000 +v -0.707107 1.792893 -4.375000 +v -1.000000 2.500000 -4.375000 +v -0.707107 3.207107 -4.375000 +v 0.000000 3.500000 -4.375000 +v 0.000000 3.500000 -4.625000 +v -0.707107 3.207107 -4.625000 +v -1.000000 2.500000 -4.625000 +v -0.707107 1.792893 -4.625000 +v 0.000000 1.500000 -4.625000 +v 0.707107 1.792893 -4.625000 +v 1.000000 2.500000 -4.625000 +v 0.707107 3.207107 -4.625000 +v 0.353553 2.853553 -4.625000 +v 0.500000 2.500000 -4.625000 +v 0.353553 2.146447 -4.625000 +v 0.000000 2.000000 -4.625000 +v -0.353554 2.146447 -4.625000 +v -0.500000 2.500000 -4.625000 +v -0.353554 2.853553 -4.625000 +v 0.000000 3.000000 -4.625000 +v 0.530330 3.030330 -4.875000 +v 0.750000 2.500000 -4.875000 +v 0.530330 1.969670 -4.875000 +v 0.000000 1.750000 -4.875000 +v -0.530331 1.969670 -4.875000 +v -0.750000 2.500000 -4.875000 +v -0.530331 3.030330 -4.875000 +v 0.000000 3.250000 -4.875000 +v 0.353553 2.853553 -5.375000 +v 0.500000 2.500000 -5.375000 +v 0.353553 2.146447 -5.375000 +v 0.000000 2.000000 -5.375000 +v -0.353554 2.146447 -5.375000 +v -0.500000 2.500000 -5.375000 +v -0.353554 2.853553 -5.375000 +v 0.000000 3.000000 -5.375000 +v 0.530330 3.030330 -5.125000 +v 0.750000 2.500000 -5.125000 +v 0.530330 1.969670 -5.125000 +v 0.000000 1.750000 -5.125000 +v -0.530331 1.969670 -5.125000 +v -0.750000 2.500000 -5.125000 +v -0.530331 3.030330 -5.125000 +v 0.000000 3.250000 -5.125000 +v 0.707107 3.207107 -5.375000 +v 1.000000 2.500000 -5.375000 +v 0.707107 1.792893 -5.375000 +v 0.000000 1.500000 -5.375000 +v -0.707107 1.792893 -5.375000 +v -1.000000 2.500000 -5.375000 +v -0.707107 3.207107 -5.375000 +v 0.000000 3.500000 -5.375000 +v 0.000000 3.500000 -5.625000 +v -0.707107 3.207107 -5.625000 +v -1.000000 2.500000 -5.625000 +v -0.707107 1.792893 -5.625000 +v 0.000000 1.500000 -5.625000 +v 0.707107 1.792893 -5.625000 +v 1.000000 2.500000 -5.625000 +v 0.707107 3.207107 -5.625000 +v 0.353553 2.853553 -5.625000 +v 0.500000 2.500000 -5.625000 +v 0.353553 2.146447 -5.625000 +v 0.000000 2.000000 -5.625000 +v -0.353554 2.146447 -5.625000 +v -0.500000 2.500000 -5.625000 +v -0.353554 2.853553 -5.625000 +v 0.000000 3.000000 -5.625000 +v 0.530330 3.030330 -5.875000 +v 0.750000 2.500000 -5.875000 +v 0.530330 1.969670 -5.875000 +v 0.000000 1.750000 -5.875000 +v -0.530331 1.969670 -5.875000 +v -0.750000 2.500000 -5.875000 +v -0.530331 3.030330 -5.875000 +v 0.000000 3.250000 -5.875000 +v 0.353553 2.853553 -6.375000 +v 0.500000 2.500000 -6.375000 +v 0.353553 2.146447 -6.375000 +v 0.000000 2.000000 -6.375000 +v -0.353554 2.146447 -6.375000 +v -0.500000 2.500000 -6.375000 +v -0.353554 2.853553 -6.375000 +v 0.000000 3.000000 -6.375000 +v 0.530330 3.030330 -6.125000 +v 0.750000 2.500000 -6.125000 +v 0.530330 1.969670 -6.125000 +v 0.000000 1.750000 -6.125000 +v -0.530331 1.969670 -6.125000 +v -0.750000 2.500000 -6.125000 +v -0.530331 3.030330 -6.125000 +v 0.000000 3.250000 -6.125000 +v 0.707107 3.207107 -6.375000 +v 1.000000 2.500000 -6.375000 +v 0.707107 1.792893 -6.375000 +v 0.000000 1.500000 -6.375000 +v -0.707107 1.792893 -6.375000 +v -1.000000 2.500000 -6.375000 +v -0.707107 3.207107 -6.375000 +v 0.000000 3.500000 -6.375000 +v 0.000000 3.500000 -6.500000 +v -0.707107 3.207107 -6.500000 +v -1.000000 2.500000 -6.500000 +v -0.707107 1.792893 -6.500000 +v 0.000000 1.500000 -6.500000 +v 0.707107 1.792893 -6.500000 +v 1.000000 2.500000 -6.500000 +v 0.707107 3.207107 -6.500000 +v -0.250000 0.000000 -5.250000 +v 0.250000 0.000000 -5.250000 +v -0.250000 0.000000 -5.750000 +v 0.250000 0.000000 -5.750000 +v -0.250000 0.125000 -5.750000 +v -0.250000 0.125000 -5.250000 +v 0.250000 0.125000 -5.250000 +v 0.250000 0.125000 -5.750000 +v -0.125000 0.125000 -5.625000 +v -0.125000 0.125000 -5.375000 +v 0.125000 0.125000 -5.375000 +v 0.125000 0.125000 -5.625000 +v -0.125000 1.750000 -5.625000 +v -0.125000 1.750000 -5.375000 +v 0.125000 1.750000 -5.375000 +v 0.125000 1.750000 -5.625000 +v 0.000000 4.500000 -2.500000 +v -0.956709 4.500000 -2.309699 +v -1.767767 4.500000 -1.767767 +v -2.309699 4.500000 -0.956709 +v -2.500000 4.500000 0.000000 +v -2.309699 4.500000 0.956709 +v -1.767767 4.500000 1.767767 +v -0.956709 4.500000 2.309699 +v 0.000000 4.500000 2.500000 +v 0.956708 4.500000 2.309699 +v 1.767767 4.500000 1.767768 +v 2.309699 4.500000 0.956709 +v 2.500000 4.500000 -0.000000 +v 2.309698 4.500000 -0.956709 +v 1.767766 4.500000 -1.767768 +v 0.956707 4.500000 -2.309699 +v 0.000000 5.000000 -2.500000 +v -0.956709 5.000000 -2.309699 +v -1.767767 5.000000 -1.767767 +v -2.309699 5.000000 -0.956709 +v -2.500000 5.000000 0.000000 +v -2.309699 5.000000 0.956709 +v -1.767767 5.000000 1.767767 +v -0.956709 5.000000 2.309699 +v 0.000000 5.000000 2.500000 +v 0.956708 5.000000 2.309699 +v 1.767767 5.000000 1.767768 +v 2.309699 5.000000 0.956709 +v 2.500000 5.000000 -0.000000 +v 2.309698 5.000000 -0.956709 +v 1.767766 5.000000 -1.767768 +v 0.956707 5.000000 -2.309699 +v 1.250000 2.562500 -2.562500 +v 1.250000 2.437500 -2.562500 +v 1.250000 2.562500 -7.437500 +v 1.250000 2.437500 -7.437500 +v 1.125000 2.562500 -7.437500 +v 1.125000 2.562500 -2.562500 +v 1.125000 2.437500 -2.562500 +v 1.125000 2.437500 -7.437500 +v 1.125000 2.437500 -3.437500 +v 1.125000 2.562500 -3.437500 +v 1.125000 2.562500 -2.437500 +v 1.125000 2.437500 -2.437500 +v 1.125000 2.437500 -3.562500 +v 1.125000 2.562500 -3.562500 +v 1.125000 2.437500 -7.562500 +v 1.125000 2.562500 -7.562500 +v 0.937500 2.562500 -2.562500 +v 0.937500 2.437500 -2.562500 +v 1.000000 2.437500 -7.437500 +v 1.000000 2.562500 -7.437500 +v 0.937500 2.562500 -2.437500 +v 0.937500 2.437500 -2.437500 +v 1.000000 2.437500 -7.562500 +v 1.000000 2.562500 -7.562500 +v 0.937500 2.562500 -3.562500 +v 0.937500 2.437500 -3.562500 +v 0.937500 2.562500 -3.437500 +v 0.937500 2.437500 -3.437500 +v 1.125000 2.437500 -4.437500 +v 1.125000 2.562500 -4.437500 +v 1.125000 2.437500 -4.562500 +v 1.125000 2.562500 -4.562500 +v 0.937500 2.562500 -4.562500 +v 0.937500 2.437500 -4.562500 +v 0.937500 2.562500 -4.437500 +v 0.937500 2.437500 -4.437500 +v 1.125000 2.437500 -5.437500 +v 1.125000 2.562500 -5.437500 +v 1.125000 2.437500 -5.562500 +v 1.125000 2.562500 -5.562500 +v 0.937500 2.562500 -5.562500 +v 0.937500 2.437500 -5.562500 +v 0.937500 2.562500 -5.437500 +v 0.937500 2.437500 -5.437500 +v -1.250000 2.437500 -2.562500 +v -1.250000 2.562500 -2.562500 +v -1.250000 2.437500 -7.437500 +v -1.250000 2.562500 -7.437500 +v -1.125000 2.437500 -7.437500 +v -1.125000 2.437500 -2.562500 +v -1.125000 2.562500 -2.562500 +v -1.125000 2.562500 -7.437500 +v -1.125000 2.562500 -3.437500 +v -1.125000 2.437500 -3.437500 +v -1.125000 2.437500 -2.437500 +v -1.125000 2.562500 -2.437500 +v -1.125000 2.562500 -3.562500 +v -1.125000 2.437500 -3.562500 +v -1.125000 2.562500 -7.562500 +v -1.125000 2.437500 -7.562500 +v -0.937500 2.437500 -2.562500 +v -0.937500 2.562500 -2.562500 +v -1.000000 2.562500 -7.437500 +v -1.000000 2.437500 -7.437500 +v -0.937500 2.437500 -2.437500 +v -0.937500 2.562500 -2.437500 +v -1.000000 2.562500 -7.562500 +v -1.000000 2.437500 -7.562500 +v -0.937500 2.437500 -3.562500 +v -0.937500 2.562500 -3.562500 +v -0.937500 2.437500 -3.437500 +v -0.937500 2.562500 -3.437500 +v -1.125000 2.562500 -4.437500 +v -1.125000 2.437500 -4.437500 +v -1.125000 2.562500 -4.562500 +v -1.125000 2.437500 -4.562500 +v -0.937500 2.437500 -4.562500 +v -0.937500 2.562500 -4.562500 +v -0.937500 2.437500 -4.437500 +v -0.937500 2.562500 -4.437500 +v -1.125000 2.562500 -5.437500 +v -1.125000 2.437500 -5.437500 +v -1.125000 2.562500 -5.562500 +v -1.125000 2.437500 -5.562500 +v -0.937500 2.437500 -5.562500 +v -0.937500 2.562500 -5.562500 +v -0.937500 2.437500 -5.437500 +v -0.937500 2.562500 -5.437500 +vt 0.218809 0.299422 +vt 0.037601 0.299422 +vt 0.037602 0.051455 +vt 0.000072 0.561403 +vt 0.128205 0.386064 +vt 0.256338 0.561404 +vt 0.282051 0.350877 +vt 0.500000 0.333333 +vt 0.500000 0.350877 +vt 0.500000 0.315789 +vt 0.282051 0.298246 +vt 0.500000 0.298246 +vt 0.282051 0.333333 +vt 0.500000 0.280702 +vt 0.282051 0.280702 +vt 0.282051 0.315789 +vt 0.269231 0.333333 +vt 0.512821 0.333333 +vt 0.512821 0.298246 +vt 0.512821 0.315789 +vt 0.269231 0.280702 +vt 0.525641 0.315789 +vt 0.269231 0.298246 +vt 0.256410 0.280702 +vt 0.269231 0.280702 +vt 0.512821 0.280702 +vt 0.500000 0.315789 +vt 0.282051 0.298246 +vt 0.500000 0.298246 +vt 0.282051 0.350877 +vt 0.500000 0.333333 +vt 0.500000 0.350877 +vt 0.512821 0.280702 +vt 0.525641 0.298246 +vt 0.269231 0.333333 +vt 0.256410 0.315789 +vt 0.269231 0.315789 +vt 0.525641 0.333333 +vt 0.512821 0.333333 +vt 0.269231 0.350877 +vt 0.256410 0.333333 +vt 0.512821 0.350877 +vt 0.525641 0.350877 +vt 0.256410 0.298246 +vt 0.282051 0.333333 +vt 0.500000 0.280702 +vt 0.282051 0.280702 +vt 0.282051 0.315789 +vt 0.269231 0.333333 +vt 0.512821 0.333333 +vt 0.512821 0.298246 +vt 0.512821 0.315789 +vt 0.269231 0.280702 +vt 0.525641 0.298246 +vt 0.525641 0.315789 +vt 0.269231 0.298246 +vt 0.256410 0.280702 +vt 0.269231 0.280702 +vt 0.512821 0.280702 +vt 0.512821 0.280702 +vt 0.269231 0.333333 +vt 0.256410 0.315789 +vt 0.269231 0.315789 +vt 0.525641 0.333333 +vt 0.512821 0.333333 +vt 0.256410 0.350877 +vt 0.256410 0.333333 +vt 0.525641 0.350877 +vt 0.512821 0.350877 +vt 0.256410 0.298246 +vt 0.282051 0.350877 +vt 0.500000 0.333333 +vt 0.500000 0.350877 +vt 0.500000 0.315789 +vt 0.282051 0.298246 +vt 0.500000 0.298246 +vt 0.282051 0.333333 +vt 0.500000 0.280702 +vt 0.282051 0.280702 +vt 0.282051 0.315789 +vt 0.269231 0.333333 +vt 0.512821 0.333333 +vt 0.512821 0.315789 +vt 0.269231 0.280702 +vt 0.512821 0.298246 +vt 0.525641 0.315789 +vt 0.269231 0.298246 +vt 0.256410 0.280702 +vt 0.269231 0.280702 +vt 0.512821 0.280702 +vt 0.500000 0.315789 +vt 0.282051 0.298246 +vt 0.500000 0.298246 +vt 0.282051 0.350877 +vt 0.500000 0.333333 +vt 0.500000 0.350877 +vt 0.512821 0.280702 +vt 0.525641 0.298246 +vt 0.269231 0.333333 +vt 0.256410 0.315789 +vt 0.269231 0.315789 +vt 0.525641 0.333333 +vt 0.512821 0.333333 +vt 0.269231 0.350877 +vt 0.256410 0.333333 +vt 0.512821 0.350877 +vt 0.525641 0.350877 +vt 0.256410 0.298246 +vt 0.282051 0.333333 +vt 0.500000 0.280702 +vt 0.282051 0.280702 +vt 0.282051 0.315789 +vt 0.269231 0.333333 +vt 0.512821 0.333333 +vt 0.512821 0.315789 +vt 0.269231 0.280702 +vt 0.525641 0.298246 +vt 0.525641 0.315789 +vt 0.269231 0.298246 +vt 0.256410 0.280702 +vt 0.269231 0.280702 +vt 0.512821 0.280702 +vt 0.512821 0.280702 +vt 0.512821 0.298246 +vt 0.269231 0.333333 +vt 0.256410 0.315789 +vt 0.269231 0.315789 +vt 0.525641 0.333333 +vt 0.512821 0.333333 +vt 0.256410 0.350877 +vt 0.256410 0.333333 +vt 0.525641 0.350877 +vt 0.512821 0.350877 +vt 0.256410 0.298246 +vt 0.387590 0.487157 +vt 0.387590 0.635650 +vt 0.279077 0.635650 +vt 0.410064 0.561404 +vt 0.333333 0.666404 +vt 0.256603 0.561404 +vt 0.410509 0.543860 +vt 0.461538 0.474030 +vt 0.512568 0.543860 +vt 0.425455 0.593237 +vt 0.425455 0.494482 +vt 0.497622 0.494482 +vt 0.512821 0.614035 +vt 0.525641 0.578947 +vt 0.525641 0.614035 +vt 0.525641 0.508772 +vt 0.564103 0.578947 +vt 0.525641 0.578947 +vt 0.525641 0.508772 +vt 0.564103 0.578947 +vt 0.512821 0.473684 +vt 0.525641 0.473684 +vt 0.512821 0.614035 +vt 0.525641 0.614035 +vt 0.512821 0.473684 +vt 0.525641 0.473684 +vt 0.512821 0.614035 +vt 0.525641 0.578947 +vt 0.525641 0.614035 +vt 0.525641 0.508772 +vt 0.564103 0.578947 +vt 0.525641 0.578947 +vt 0.525641 0.508772 +vt 0.564103 0.578947 +vt 0.512821 0.473684 +vt 0.525641 0.473684 +vt 0.512821 0.614035 +vt 0.525641 0.614035 +vt 0.512821 0.473684 +vt 0.525641 0.473684 +vt 0.032051 0.868421 +vt 0.025641 0.846491 +vt 0.032051 0.842105 +vt 0.032051 0.815789 +vt 0.025641 0.837719 +vt 0.025641 0.820175 +vt 0.032051 0.763158 +vt 0.025641 0.785088 +vt 0.025641 0.767544 +vt 0.032051 0.947368 +vt 0.025641 0.925439 +vt 0.032051 0.921053 +vt 0.032051 0.894737 +vt 0.025641 0.872807 +vt 0.025641 0.793860 +vt 0.032051 0.789474 +vt 0.025641 0.741228 +vt 0.032051 0.736842 +vt 0.025641 0.916667 +vt 0.025641 0.899123 +vt 0.333333 0.789452 +vt 0.314118 0.763158 +vt 0.333333 0.736863 +vt 0.717949 0.614035 +vt 0.615385 0.473684 +vt 0.717949 0.473684 +vt 0.615385 0.929825 +vt 0.717949 0.789474 +vt 0.717949 0.929825 +vt 0.512821 0.614035 +vt 0.615385 0.789474 +vt 0.512821 0.859649 +vt 0.820513 0.614035 +vt 0.615385 0.614035 +vt 0.410256 0.859649 +vt 0.410256 0.614035 +vt 0.903846 0.280702 +vt 0.878205 0.315789 +vt 0.878205 0.280702 +vt 0.903846 0.324561 +vt 0.884615 0.333333 +vt 0.878205 0.324561 +vt 0.903846 0.315789 +vt 0.903846 0.315789 +vt 0.878205 0.324561 +vt 0.878205 0.315789 +vt 0.903846 0.315789 +vt 0.878205 0.324561 +vt 0.878205 0.315789 +vt 0.903846 0.315789 +vt 0.878205 0.324561 +vt 0.878205 0.315789 +vt 0.897436 0.333333 +vt 0.884615 0.447368 +vt 0.884615 0.333333 +vt 0.903846 0.324561 +vt 0.884615 0.333333 +vt 0.903846 0.324561 +vt 0.903846 0.324561 +vt 0.884615 0.333333 +vt 0.897436 0.333333 +vt 0.884615 0.447368 +vt 0.897436 0.333333 +vt 0.884615 0.447368 +vt 0.897436 0.333333 +vt 0.884615 0.447368 +vt 0.871795 0.877193 +vt 0.948718 0.771930 +vt 0.948718 0.877193 +vt 0.948718 0.701754 +vt 0.871795 0.771930 +vt 0.871795 0.701754 +vt 0.871795 0.947368 +vt 0.948718 0.947368 +vt 0.820513 0.771930 +vt 0.820513 0.877193 +vt 1.000000 0.877193 +vt 1.000000 0.771930 +vt 0.442308 0.859649 +vt 0.339744 0.894737 +vt 0.339744 0.859649 +vt 0.339744 0.964912 +vt 0.442308 1.000000 +vt 0.339744 1.000000 +vt 0.442308 0.894737 +vt 0.467949 0.894737 +vt 0.442308 0.964912 +vt 0.314103 0.894737 +vt 0.314103 1.000000 +vt 0.339744 0.894737 +vt 0.442308 0.859649 +vt 0.442308 0.894737 +vt 0.442308 1.000000 +vt 0.339744 0.964912 +vt 0.442308 0.964912 +vt 0.314103 0.894737 +vt 0.314103 1.000000 +vt 0.467949 0.894737 +vt 0.541667 0.298246 +vt 0.791667 0.307018 +vt 0.541667 0.307018 +vt 0.791667 0.280702 +vt 0.541667 0.289474 +vt 0.541667 0.280702 +vt 0.791667 0.315789 +vt 0.798077 0.315789 +vt 0.535256 0.289474 +vt 0.525641 0.280702 +vt 0.535256 0.280702 +vt 0.791667 0.289474 +vt 0.791667 0.298246 +vt 0.541667 0.315789 +vt 0.798077 0.307018 +vt 0.535256 0.315789 +vt 0.525641 0.307018 +vt 0.535256 0.307018 +vt 0.535256 0.315789 +vt 0.535256 0.289474 +vt 0.535256 0.289474 +vt 0.525641 0.280702 +vt 0.535256 0.280702 +vt 0.798077 0.280702 +vt 0.804487 0.289474 +vt 0.798077 0.289474 +vt 0.535256 0.298246 +vt 0.525641 0.289474 +vt 0.798077 0.289474 +vt 0.535256 0.298246 +vt 0.525641 0.289474 +vt 0.804487 0.315789 +vt 0.798077 0.315789 +vt 0.798077 0.298246 +vt 0.804487 0.307018 +vt 0.535256 0.315789 +vt 0.525641 0.307018 +vt 0.535256 0.307018 +vt 0.804487 0.298246 +vt 0.525641 0.298246 +vt 0.525641 0.298246 +vt 0.535256 0.315789 +vt 0.525641 0.307018 +vt 0.535256 0.307018 +vt 0.535256 0.289474 +vt 0.525641 0.280702 +vt 0.535256 0.280702 +vt 0.535256 0.298246 +vt 0.525641 0.289474 +vt 0.525641 0.298246 +vt 0.535256 0.315789 +vt 0.525641 0.307018 +vt 0.535256 0.307018 +vt 0.535256 0.289474 +vt 0.525641 0.280702 +vt 0.535256 0.280702 +vt 0.535256 0.298246 +vt 0.525641 0.289474 +vt 0.525641 0.298246 +vt 0.903846 0.280702 +vt 0.878205 0.315789 +vt 0.878205 0.280702 +vt 0.903846 0.324561 +vt 0.884615 0.333333 +vt 0.878205 0.324561 +vt 0.903846 0.315789 +vt 0.903846 0.315789 +vt 0.878205 0.324561 +vt 0.878205 0.315789 +vt 0.903846 0.315789 +vt 0.878205 0.324561 +vt 0.878205 0.315789 +vt 0.903846 0.315789 +vt 0.878205 0.324561 +vt 0.878205 0.315789 +vt 0.897436 0.333333 +vt 0.884615 0.447368 +vt 0.884615 0.333333 +vt 0.903846 0.324561 +vt 0.884615 0.333333 +vt 0.903846 0.324561 +vt 0.903846 0.324561 +vt 0.884615 0.333333 +vt 0.897436 0.333333 +vt 0.884615 0.447368 +vt 0.897436 0.333333 +vt 0.884615 0.447368 +vt 0.897436 0.333333 +vt 0.884615 0.447368 +vt 0.218809 0.299422 +vt 0.037601 0.299422 +vt 0.037602 0.051455 +vt 0.000072 0.561403 +vt 0.128205 0.386064 +vt 0.256338 0.561404 +vt 0.541667 0.298246 +vt 0.791667 0.307018 +vt 0.541667 0.307018 +vt 0.791667 0.280702 +vt 0.541667 0.289474 +vt 0.541667 0.280702 +vt 0.791667 0.315789 +vt 0.798077 0.315789 +vt 0.535256 0.289474 +vt 0.525641 0.280702 +vt 0.535256 0.280702 +vt 0.791667 0.289474 +vt 0.791667 0.298246 +vt 0.541667 0.315789 +vt 0.798077 0.307018 +vt 0.535256 0.315789 +vt 0.525641 0.307018 +vt 0.535256 0.307018 +vt 0.535256 0.315789 +vt 0.535256 0.289474 +vt 0.535256 0.289474 +vt 0.525641 0.280702 +vt 0.535256 0.280702 +vt 0.798077 0.280702 +vt 0.804487 0.289474 +vt 0.798077 0.289474 +vt 0.535256 0.298246 +vt 0.525641 0.289474 +vt 0.798077 0.289474 +vt 0.535256 0.298246 +vt 0.525641 0.289474 +vt 0.804487 0.315789 +vt 0.798077 0.315789 +vt 0.798077 0.298246 +vt 0.804487 0.307018 +vt 0.535256 0.315789 +vt 0.525641 0.307018 +vt 0.535256 0.307018 +vt 0.804487 0.298246 +vt 0.525641 0.298246 +vt 0.525641 0.298246 +vt 0.535256 0.315789 +vt 0.525641 0.307018 +vt 0.535256 0.307018 +vt 0.535256 0.289474 +vt 0.525641 0.280702 +vt 0.535256 0.280702 +vt 0.535256 0.298246 +vt 0.525641 0.289474 +vt 0.525641 0.298246 +vt 0.535256 0.315789 +vt 0.525641 0.307018 +vt 0.535256 0.307018 +vt 0.535256 0.289474 +vt 0.525641 0.280702 +vt 0.535256 0.280702 +vt 0.535256 0.298246 +vt 0.525641 0.289474 +vt 0.525641 0.298246 +vt 0.541667 0.298246 +vt 0.791667 0.307018 +vt 0.541667 0.307018 +vt 0.791667 0.280702 +vt 0.541667 0.289474 +vt 0.541667 0.280702 +vt 0.791667 0.315789 +vt 0.798077 0.315789 +vt 0.535256 0.289474 +vt 0.525641 0.280702 +vt 0.535256 0.280702 +vt 0.791667 0.289474 +vt 0.791667 0.298246 +vt 0.541667 0.315789 +vt 0.798077 0.307018 +vt 0.535256 0.315789 +vt 0.525641 0.307018 +vt 0.535256 0.307018 +vt 0.535256 0.315789 +vt 0.535256 0.289474 +vt 0.535256 0.289474 +vt 0.525641 0.280702 +vt 0.535256 0.280702 +vt 0.798077 0.280702 +vt 0.804487 0.289474 +vt 0.798077 0.289474 +vt 0.535256 0.298246 +vt 0.525641 0.289474 +vt 0.798077 0.289474 +vt 0.535256 0.298246 +vt 0.525641 0.289474 +vt 0.804487 0.315789 +vt 0.798077 0.315789 +vt 0.798077 0.298246 +vt 0.804487 0.307018 +vt 0.535256 0.315789 +vt 0.525641 0.307018 +vt 0.535256 0.307018 +vt 0.804487 0.298246 +vt 0.525641 0.298246 +vt 0.525641 0.298246 +vt 0.535256 0.315789 +vt 0.525641 0.307018 +vt 0.535256 0.307018 +vt 0.535256 0.289474 +vt 0.525641 0.280702 +vt 0.535256 0.280702 +vt 0.535256 0.298246 +vt 0.525641 0.289474 +vt 0.525641 0.298246 +vt 0.535256 0.315789 +vt 0.525641 0.307018 +vt 0.535256 0.307018 +vt 0.535256 0.289474 +vt 0.525641 0.280702 +vt 0.535256 0.280702 +vt 0.535256 0.298246 +vt 0.525641 0.289474 +vt 0.525641 0.298246 +vt 0.218809 0.051455 +vt 0.246584 0.108339 +vt 0.256338 0.175439 +vt 0.246584 0.242538 +vt 0.177239 0.337431 +vt 0.128205 0.350778 +vt 0.079171 0.337431 +vt 0.009826 0.242538 +vt 0.000072 0.175438 +vt 0.009826 0.108339 +vt 0.079171 0.013446 +vt 0.128205 0.000099 +vt 0.177239 0.013446 +vt 0.246584 0.628503 +vt 0.218809 0.685387 +vt 0.177240 0.723396 +vt 0.128205 0.736743 +vt 0.079171 0.723396 +vt 0.037602 0.685387 +vt 0.009826 0.628503 +vt 0.009826 0.494304 +vt 0.037602 0.437420 +vt 0.079171 0.399411 +vt 0.177239 0.399411 +vt 0.218809 0.437420 +vt 0.246585 0.494304 +vt 0.525641 0.280702 +vt 0.256410 0.350877 +vt 0.525641 0.280702 +vt 0.269231 0.350877 +vt 0.525641 0.280702 +vt 0.256410 0.350877 +vt 0.525641 0.280702 +vt 0.269231 0.350877 +vt 0.404223 0.521222 +vt 0.410064 0.561404 +vt 0.404223 0.601585 +vt 0.362697 0.658411 +vt 0.333333 0.666404 +vt 0.303970 0.658411 +vt 0.262443 0.601585 +vt 0.256603 0.561404 +vt 0.262443 0.521222 +vt 0.279077 0.487157 +vt 0.303970 0.464396 +vt 0.333333 0.456403 +vt 0.362697 0.464396 +vt 0.404223 0.601585 +vt 0.387590 0.635650 +vt 0.362697 0.658411 +vt 0.303970 0.658411 +vt 0.279077 0.635650 +vt 0.262443 0.601585 +vt 0.262443 0.521222 +vt 0.279077 0.487157 +vt 0.303970 0.464396 +vt 0.333333 0.456404 +vt 0.362697 0.464396 +vt 0.387590 0.487158 +vt 0.404223 0.521222 +vt 0.508684 0.570583 +vt 0.497622 0.593237 +vt 0.481067 0.608374 +vt 0.461538 0.613690 +vt 0.442010 0.608374 +vt 0.425455 0.593237 +vt 0.414393 0.570582 +vt 0.414393 0.517137 +vt 0.425455 0.494482 +vt 0.442010 0.479345 +vt 0.481067 0.479345 +vt 0.497622 0.494482 +vt 0.508684 0.517137 +vt 0.508684 0.517137 +vt 0.512568 0.543860 +vt 0.508684 0.570583 +vt 0.497622 0.593237 +vt 0.481067 0.608374 +vt 0.461538 0.613690 +vt 0.442010 0.608374 +vt 0.414393 0.570583 +vt 0.410509 0.543860 +vt 0.414393 0.517137 +vt 0.442010 0.479345 +vt 0.461538 0.474030 +vt 0.481067 0.479345 +vt 0.564103 0.508772 +vt 0.564103 0.508772 +vt 0.564103 0.508772 +vt 0.564103 0.508772 +vt 0.025641 0.864035 +vt 0.025641 0.942982 +vt 0.025641 0.890351 +vt 0.025641 0.811404 +vt 0.025641 0.758772 +vt 0.319746 0.781751 +vt 0.319746 0.744565 +vt 0.346920 0.744565 +vt 0.352549 0.763158 +vt 0.346921 0.781751 +vt 0.820513 0.859649 +vt 0.897436 0.447368 +vt 0.897436 0.447368 +vt 0.897436 0.447368 +vt 0.897436 0.447368 +vt 0.467949 1.000000 +vt 0.339744 0.859649 +vt 0.339744 1.000000 +vt 0.467949 1.000000 +vt 0.525641 0.315789 +vt 0.804487 0.280702 +vt 0.525641 0.315789 +vt 0.525641 0.315789 +vt 0.525641 0.315789 +vt 0.897436 0.447368 +vt 0.897436 0.447368 +vt 0.897436 0.447368 +vt 0.897436 0.447368 +vt 0.218809 0.051455 +vt 0.246584 0.108339 +vt 0.256338 0.175439 +vt 0.246584 0.242538 +vt 0.177239 0.337431 +vt 0.128205 0.350778 +vt 0.079171 0.337431 +vt 0.009826 0.242538 +vt 0.000072 0.175438 +vt 0.009826 0.108339 +vt 0.079171 0.013446 +vt 0.128205 0.000099 +vt 0.177239 0.013446 +vt 0.246584 0.628503 +vt 0.218809 0.685387 +vt 0.177240 0.723396 +vt 0.128205 0.736743 +vt 0.079171 0.723396 +vt 0.037602 0.685387 +vt 0.009826 0.628503 +vt 0.009826 0.494304 +vt 0.037602 0.437420 +vt 0.079171 0.399411 +vt 0.177239 0.399411 +vt 0.218809 0.437420 +vt 0.246585 0.494304 +vt 0.525641 0.315789 +vt 0.804487 0.280702 +vt 0.525641 0.315789 +vt 0.525641 0.315789 +vt 0.525641 0.315789 +vt 0.525641 0.315789 +vt 0.804487 0.280702 +vt 0.525641 0.315789 +vt 0.525641 0.315789 +vt 0.525641 0.315789 +vt 0.512821 0.350877 +vt 0.461538 0.385965 +vt 0.461538 0.350877 +vt 0.153846 0.350877 +vt 0.102564 0.385965 +vt 0.102564 0.350877 +vt 0.564103 0.350877 +vt 0.512821 0.385965 +vt 0.205128 0.350877 +vt 0.153846 0.385965 +vt 0.666667 0.350877 +vt 0.615385 0.385965 +vt 0.615385 0.350877 +vt 0.564103 0.385965 +vt 0.256410 0.350877 +vt 0.205128 0.385965 +vt 0.717949 0.350877 +vt 0.666667 0.385965 +vt 0.307692 0.350877 +vt 0.256410 0.385965 +vt 0.769231 0.350877 +vt 0.717949 0.385965 +vt 0.358974 0.350877 +vt 0.307692 0.385965 +vt 0.820513 0.350877 +vt 0.769231 0.385965 +vt 0.410256 0.350877 +vt 0.358974 0.385965 +vt 0.051282 0.350877 +vt 0.000000 0.385965 +vt 0.000000 0.350877 +vt 0.410256 0.385965 +vt 0.051282 0.385965 +vt 0.705128 0.000000 +vt 0.660256 0.280702 +vt 0.660256 0.000000 +vt 0.391026 0.000000 +vt 0.346154 0.280702 +vt 0.346154 0.000000 +vt 0.750000 0.000000 +vt 0.705128 0.280702 +vt 0.435897 0.000000 +vt 0.391026 0.280702 +vt 0.839744 -0.000000 +vt 0.794872 0.280702 +vt 0.794872 0.000000 +vt 0.750000 0.280702 +vt 0.480769 0.000000 +vt 0.435897 0.280702 +vt 0.884615 -0.000000 +vt 0.839744 0.280702 +vt 0.525641 0.000000 +vt 0.480769 0.280702 +vt 0.929487 -0.000000 +vt 0.884615 0.280702 +vt 0.570513 0.000000 +vt 0.525641 0.280702 +vt 0.974359 -0.000000 +vt 0.929487 0.280702 +vt 0.615385 0.000000 +vt 0.570513 0.280702 +vt 0.301282 0.000000 +vt 0.256410 0.280702 +vt 0.256410 0.000000 +vt 0.615385 0.280702 +vt 0.301282 0.280702 +vt 0.544872 0.385965 +vt 0.516026 0.456140 +vt 0.516026 0.385965 +vt 0.342949 0.385965 +vt 0.314103 0.456140 +vt 0.314103 0.385965 +vt 0.573718 0.385965 +vt 0.544872 0.456140 +vt 0.371795 0.385965 +vt 0.342949 0.456140 +vt 0.631410 0.385965 +vt 0.602564 0.456140 +vt 0.602564 0.385965 +vt 0.573718 0.456140 +vt 0.400641 0.385965 +vt 0.371795 0.456140 +vt 0.660256 0.385965 +vt 0.631410 0.456140 +vt 0.429487 0.385965 +vt 0.400641 0.456140 +vt 0.689103 0.385965 +vt 0.660256 0.456140 +vt 0.458333 0.385965 +vt 0.429487 0.456140 +vt 0.717949 0.385965 +vt 0.689103 0.456140 +vt 0.487179 0.385965 +vt 0.458333 0.456140 +vt 0.285256 0.385965 +vt 0.256410 0.456140 +vt 0.256410 0.385965 +vt 0.487179 0.456140 +vt 0.285256 0.456140 +vt 0.429487 0.456140 +vt 0.458333 0.385965 +vt 0.458333 0.456140 +vt 0.631410 0.456140 +vt 0.660256 0.385965 +vt 0.660256 0.456140 +vt 0.400641 0.456140 +vt 0.429487 0.385965 +vt 0.602564 0.456140 +vt 0.631410 0.385965 +vt 0.342949 0.456140 +vt 0.371795 0.385965 +vt 0.371795 0.456140 +vt 0.400641 0.385965 +vt 0.573718 0.456140 +vt 0.602564 0.385965 +vt 0.314103 0.456140 +vt 0.342949 0.385965 +vt 0.544872 0.456140 +vt 0.573718 0.385965 +vt 0.285256 0.456140 +vt 0.314103 0.385965 +vt 0.516026 0.456140 +vt 0.544872 0.385965 +vt 0.256410 0.456140 +vt 0.285256 0.385965 +vt 0.487179 0.456140 +vt 0.516026 0.385965 +vt 0.689103 0.456140 +vt 0.717949 0.385965 +vt 0.717949 0.456140 +vt 0.487179 0.385965 +vt 0.689103 0.385965 +vt 0.544872 0.456140 +vt 0.525641 0.473684 +vt 0.525641 0.456140 +vt 0.717949 0.456140 +vt 0.698718 0.473684 +vt 0.698718 0.456140 +vt 0.564103 0.456140 +vt 0.544872 0.473684 +vt 0.429487 0.456140 +vt 0.410256 0.473684 +vt 0.410256 0.456140 +vt 0.583333 0.456140 +vt 0.564103 0.473684 +vt 0.448718 0.456140 +vt 0.429487 0.473684 +vt 0.602564 0.456140 +vt 0.583333 0.473684 +vt 0.467949 0.456140 +vt 0.448718 0.473684 +vt 0.621795 0.456140 +vt 0.602564 0.473684 +vt 0.487179 0.456140 +vt 0.467949 0.473684 +vt 0.660256 0.456140 +vt 0.641026 0.473684 +vt 0.641026 0.456140 +vt 0.621795 0.473684 +vt 0.506410 0.456140 +vt 0.487179 0.473684 +vt 0.679487 0.456140 +vt 0.660256 0.473684 +vt 0.506410 0.473684 +vt 0.679487 0.473684 +vt 0.583333 0.473684 +vt 0.602564 0.456140 +vt 0.602564 0.473684 +vt 0.410256 0.473684 +vt 0.429487 0.456140 +vt 0.429487 0.473684 +vt 0.564103 0.473684 +vt 0.583333 0.456140 +vt 0.698718 0.473684 +vt 0.717949 0.456140 +vt 0.717949 0.473684 +vt 0.544872 0.473684 +vt 0.564103 0.456140 +vt 0.679487 0.473684 +vt 0.698718 0.456140 +vt 0.525641 0.473684 +vt 0.544872 0.456140 +vt 0.660256 0.473684 +vt 0.679487 0.456140 +vt 0.506410 0.473684 +vt 0.525641 0.456140 +vt 0.641026 0.473684 +vt 0.660256 0.456140 +vt 0.467949 0.473684 +vt 0.487179 0.456140 +vt 0.487179 0.473684 +vt 0.506410 0.456140 +vt 0.621795 0.473684 +vt 0.641026 0.456140 +vt 0.448718 0.473684 +vt 0.467949 0.456140 +vt 0.621795 0.456140 +vt 0.448718 0.456140 +vt 0.314103 0.842105 +vt 0.314103 0.815789 +vt 0.314103 0.763158 +vt 0.314103 0.921053 +vt 0.314103 0.868421 +vt 0.314103 0.789474 +vt 0.314103 0.736842 +vt 0.314103 0.894737 +vt 0.000000 0.820175 +vt 0.000000 0.767544 +vt 0.000000 0.925439 +vt 0.000000 0.872807 +vt 0.000000 0.793860 +vt -0.000000 0.741228 +vt 0.000000 0.899123 +vt 0.000000 0.846491 +vt 0.993590 0.451754 +vt 0.974359 0.482456 +vt 0.974359 0.447368 +vt 0.993590 0.399123 +vt 0.974359 0.429825 +vt 0.974359 0.394737 +vt 0.974359 0.342105 +vt 0.993590 0.372807 +vt 0.974359 0.377193 +vt 0.993590 0.293860 +vt 0.974359 0.324561 +vt 0.974359 0.289474 +vt 0.993590 0.662281 +vt 0.974359 0.692982 +vt 0.974359 0.657895 +vt 0.974359 0.605263 +vt 0.993590 0.635965 +vt 0.974359 0.640351 +vt 0.993590 0.557018 +vt 0.974359 0.587719 +vt 0.974359 0.552632 +vt 0.974359 0.500000 +vt 0.993590 0.530702 +vt 0.974359 0.535088 +vt 0.955128 0.543860 +vt 0.942308 0.491228 +vt 0.955128 0.491228 +vt 0.955128 0.596491 +vt 0.942308 0.543860 +vt 0.955128 0.649123 +vt 0.942308 0.596491 +vt 0.955128 0.701754 +vt 0.942308 0.649123 +vt 0.955128 0.333333 +vt 0.942308 0.280702 +vt 0.955128 0.280702 +vt 0.955128 0.385965 +vt 0.942308 0.333333 +vt 0.955128 0.438596 +vt 0.942308 0.385965 +vt 0.942308 0.438596 +vt 0.923077 0.587719 +vt 0.903846 0.557018 +vt 0.923077 0.552632 +vt 0.923077 0.605263 +vt 0.903846 0.635965 +vt 0.903846 0.609649 +vt 0.923077 0.692982 +vt 0.903846 0.662281 +vt 0.923077 0.657895 +vt 0.923077 0.289474 +vt 0.903846 0.320175 +vt 0.903846 0.293860 +vt 0.923077 0.342105 +vt 0.903846 0.372807 +vt 0.903846 0.346491 +vt 0.923077 0.429825 +vt 0.903846 0.399123 +vt 0.923077 0.394737 +vt 0.923077 0.447368 +vt 0.903846 0.478070 +vt 0.903846 0.451754 +vt 0.923077 0.500000 +vt 0.903846 0.530702 +vt 0.903846 0.504386 +vt 0.923077 0.377193 +vt 0.923077 0.324561 +vt 0.942308 0.701754 +vt 0.923077 0.640351 +vt 0.974359 0.447368 +vt 0.993590 0.478070 +vt 0.974359 0.482456 +vt 0.993590 0.399123 +vt 0.974359 0.429825 +vt 0.974359 0.394737 +vt 0.974359 0.342105 +vt 0.993590 0.372807 +vt 0.974359 0.377193 +vt 0.974359 0.289474 +vt 0.993590 0.320175 +vt 0.974359 0.324561 +vt 0.993590 0.662281 +vt 0.974359 0.692982 +vt 0.974359 0.657895 +vt 0.974359 0.605263 +vt 0.993590 0.635965 +vt 0.974359 0.640351 +vt 0.993590 0.557018 +vt 0.974359 0.587719 +vt 0.974359 0.552632 +vt 0.974359 0.500000 +vt 0.993590 0.530702 +vt 0.974359 0.535088 +vt 0.955128 0.543860 +vt 0.942308 0.491228 +vt 0.955128 0.491228 +vt 0.955128 0.596491 +vt 0.942308 0.543860 +vt 0.955128 0.649123 +vt 0.942308 0.596491 +vt 0.955128 0.701754 +vt 0.942308 0.649123 +vt 0.955128 0.333333 +vt 0.942308 0.280702 +vt 0.955128 0.280702 +vt 0.955128 0.385965 +vt 0.942308 0.333333 +vt 0.955128 0.438596 +vt 0.942308 0.385965 +vt 0.942308 0.438596 +vt 0.923077 0.587719 +vt 0.903846 0.557018 +vt 0.923077 0.552632 +vt 0.923077 0.605263 +vt 0.903846 0.635965 +vt 0.903846 0.609649 +vt 0.923077 0.692982 +vt 0.903846 0.662281 +vt 0.923077 0.657895 +vt 0.923077 0.289474 +vt 0.903846 0.320175 +vt 0.903846 0.293860 +vt 0.923077 0.342105 +vt 0.903846 0.372807 +vt 0.903846 0.346491 +vt 0.923077 0.429825 +vt 0.903846 0.399123 +vt 0.923077 0.394737 +vt 0.923077 0.482456 +vt 0.903846 0.451754 +vt 0.923077 0.447368 +vt 0.923077 0.500000 +vt 0.903846 0.530702 +vt 0.903846 0.504386 +vt 0.923077 0.324561 +vt 0.993590 0.451754 +vt 0.974359 0.482456 +vt 0.974359 0.447368 +vt 0.993590 0.399123 +vt 0.974359 0.429825 +vt 0.974359 0.394737 +vt 0.974359 0.342105 +vt 0.993590 0.372807 +vt 0.974359 0.377193 +vt 0.993590 0.293860 +vt 0.974359 0.324561 +vt 0.974359 0.289474 +vt 0.993590 0.662281 +vt 0.974359 0.692982 +vt 0.974359 0.657895 +vt 0.974359 0.605263 +vt 0.993590 0.635965 +vt 0.974359 0.640351 +vt 0.993590 0.557018 +vt 0.974359 0.587719 +vt 0.974359 0.552632 +vt 0.974359 0.500000 +vt 0.993590 0.530702 +vt 0.974359 0.535088 +vt 0.955128 0.543860 +vt 0.942308 0.491228 +vt 0.955128 0.491228 +vt 0.955128 0.596491 +vt 0.942308 0.543860 +vt 0.955128 0.649123 +vt 0.942308 0.596491 +vt 0.955128 0.701754 +vt 0.942308 0.649123 +vt 0.955128 0.333333 +vt 0.942308 0.280702 +vt 0.955128 0.280702 +vt 0.955128 0.385965 +vt 0.942308 0.333333 +vt 0.955128 0.438596 +vt 0.942308 0.385965 +vt 0.942308 0.438596 +vt 0.923077 0.587719 +vt 0.903846 0.557018 +vt 0.923077 0.552632 +vt 0.923077 0.605263 +vt 0.903846 0.635965 +vt 0.903846 0.609649 +vt 0.923077 0.692982 +vt 0.903846 0.662281 +vt 0.923077 0.657895 +vt 0.923077 0.324561 +vt 0.903846 0.293860 +vt 0.923077 0.289474 +vt 0.923077 0.342105 +vt 0.903846 0.372807 +vt 0.903846 0.346491 +vt 0.923077 0.429825 +vt 0.903846 0.399123 +vt 0.923077 0.394737 +vt 0.923077 0.447368 +vt 0.903846 0.478070 +vt 0.903846 0.451754 +vt 0.923077 0.500000 +vt 0.903846 0.530702 +vt 0.903846 0.504386 +vt 0.923077 0.377193 +vt 0.923077 0.482456 +vt 0.974359 0.447368 +vt 0.993590 0.478070 +vt 0.974359 0.482456 +vt 0.993590 0.399123 +vt 0.974359 0.429825 +vt 0.974359 0.394737 +vt 0.974359 0.342105 +vt 0.993590 0.372807 +vt 0.974359 0.377193 +vt 0.974359 0.289474 +vt 0.993590 0.320175 +vt 0.974359 0.324561 +vt 0.993590 0.662281 +vt 0.974359 0.692982 +vt 0.974359 0.657895 +vt 0.974359 0.605263 +vt 0.993590 0.635965 +vt 0.974359 0.640351 +vt 0.993590 0.557018 +vt 0.974359 0.587719 +vt 0.974359 0.552632 +vt 0.993590 0.504386 +vt 0.974359 0.535088 +vt 0.974359 0.500000 +vt 0.955128 0.543860 +vt 0.942308 0.491228 +vt 0.955128 0.491228 +vt 0.955128 0.596491 +vt 0.942308 0.543860 +vt 0.955128 0.649123 +vt 0.942308 0.596491 +vt 0.955128 0.701754 +vt 0.942308 0.649123 +vt 0.955128 0.333333 +vt 0.942308 0.280702 +vt 0.955128 0.280702 +vt 0.955128 0.385965 +vt 0.942308 0.333333 +vt 0.955128 0.438596 +vt 0.942308 0.385965 +vt 0.942308 0.438596 +vt 0.923077 0.587719 +vt 0.903846 0.557018 +vt 0.923077 0.552632 +vt 0.923077 0.640351 +vt 0.903846 0.609649 +vt 0.923077 0.605263 +vt 0.923077 0.692982 +vt 0.903846 0.662281 +vt 0.923077 0.657895 +vt 0.923077 0.289474 +vt 0.903846 0.320175 +vt 0.903846 0.293860 +vt 0.923077 0.342105 +vt 0.903846 0.372807 +vt 0.903846 0.346491 +vt 0.923077 0.429825 +vt 0.903846 0.399123 +vt 0.923077 0.394737 +vt 0.923077 0.447368 +vt 0.903846 0.478070 +vt 0.903846 0.451754 +vt 0.923077 0.500000 +vt 0.903846 0.530702 +vt 0.903846 0.504386 +vt 0.923077 0.324561 +vt 0.923077 0.482456 +vt 0.948718 0.543860 +vt 0.942308 0.491228 +vt 0.948718 0.491228 +vt 0.948718 0.596491 +vt 0.942308 0.543860 +vt 0.948718 0.649123 +vt 0.942308 0.596491 +vt 0.948718 0.701754 +vt 0.942308 0.649123 +vt 0.948718 0.333333 +vt 0.942308 0.280702 +vt 0.948718 0.280702 +vt 0.948718 0.385965 +vt 0.942308 0.333333 +vt 0.948718 0.438596 +vt 0.942308 0.385965 +vt 0.942308 0.438596 +vt 0.923077 0.587719 +vt 0.903846 0.557018 +vt 0.923077 0.552632 +vt 0.923077 0.605263 +vt 0.903846 0.635965 +vt 0.903846 0.609649 +vt 0.923077 0.692982 +vt 0.903846 0.662281 +vt 0.923077 0.657895 +vt 0.923077 0.289474 +vt 0.903846 0.320175 +vt 0.903846 0.293860 +vt 0.923077 0.342105 +vt 0.903846 0.372807 +vt 0.903846 0.346491 +vt 0.923077 0.429825 +vt 0.903846 0.399123 +vt 0.923077 0.394737 +vt 0.923077 0.447368 +vt 0.903846 0.478070 +vt 0.903846 0.451754 +vt 0.923077 0.500000 +vt 0.903846 0.530702 +vt 0.903846 0.504386 +vt 0.923077 0.377193 +vt 0.923077 0.640351 +vt 0.923077 0.482456 +vt 0.512821 0.350877 +vt 0.461538 0.385965 +vt 0.461538 0.350877 +vt 0.153846 0.350877 +vt 0.102564 0.385965 +vt 0.102564 0.350877 +vt 0.564103 0.350877 +vt 0.512821 0.385965 +vt 0.205128 0.350877 +vt 0.153846 0.385965 +vt 0.666667 0.350877 +vt 0.615385 0.385965 +vt 0.615385 0.350877 +vt 0.564103 0.385965 +vt 0.256410 0.350877 +vt 0.205128 0.385965 +vt 0.717949 0.350877 +vt 0.666667 0.385965 +vt 0.307692 0.350877 +vt 0.256410 0.385965 +vt 0.769231 0.350877 +vt 0.717949 0.385965 +vt 0.358974 0.350877 +vt 0.307692 0.385965 +vt 0.820513 0.350877 +vt 0.769231 0.385965 +vt 0.410256 0.350877 +vt 0.358974 0.385965 +vt 0.051282 0.350877 +vt 0.000000 0.385965 +vt 0.000000 0.350877 +vt 0.410256 0.385965 +vt 0.051282 0.385965 +vt 0.820513 0.385965 +vt 0.974359 0.280702 +vt 0.717949 0.456140 +vt 0.256410 0.385965 +vt 0.717949 0.473684 +vt 0.410256 0.456140 +vt 0.314103 0.947368 +vt 0.000000 0.837719 +vt 0.000000 0.785088 +vt 0.000000 0.942982 +vt 0.000000 0.890351 +vt 0.000000 0.811404 +vt 0.000000 0.758772 +vt 0.000000 0.916667 +vt 0.000000 0.864035 +vt 0.993590 0.478070 +vt 0.993590 0.425439 +vt 0.993590 0.346491 +vt 0.993590 0.320175 +vt 0.993590 0.688596 +vt 0.993590 0.609649 +vt 0.993590 0.583333 +vt 0.993590 0.504386 +vt 0.903846 0.583333 +vt 0.903846 0.688596 +vt 0.903846 0.425439 +vt 0.923077 0.482456 +vt 0.923077 0.535088 +vt 0.993590 0.451754 +vt 0.993590 0.425439 +vt 0.993590 0.346491 +vt 0.993590 0.293860 +vt 0.993590 0.688596 +vt 0.993590 0.609649 +vt 0.993590 0.583333 +vt 0.993590 0.504386 +vt 0.942308 0.701754 +vt 0.903846 0.583333 +vt 0.923077 0.640351 +vt 0.903846 0.688596 +vt 0.923077 0.377193 +vt 0.903846 0.425439 +vt 0.903846 0.478070 +vt 0.923077 0.535088 +vt 0.993590 0.478070 +vt 0.993590 0.425439 +vt 0.993590 0.346491 +vt 0.993590 0.320175 +vt 0.993590 0.688596 +vt 0.993590 0.609649 +vt 0.993590 0.583333 +vt 0.993590 0.504386 +vt 0.942308 0.701754 +vt 0.903846 0.583333 +vt 0.923077 0.640351 +vt 0.903846 0.688596 +vt 0.903846 0.320175 +vt 0.903846 0.425439 +vt 0.923077 0.535088 +vt 0.993590 0.451754 +vt 0.993590 0.425439 +vt 0.993590 0.346491 +vt 0.993590 0.293860 +vt 0.993590 0.688596 +vt 0.993590 0.609649 +vt 0.993590 0.583333 +vt 0.993590 0.530702 +vt 0.942308 0.701754 +vt 0.903846 0.583333 +vt 0.903846 0.635965 +vt 0.903846 0.688596 +vt 0.923077 0.377193 +vt 0.903846 0.425439 +vt 0.923077 0.535088 +vt 0.942308 0.701754 +vt 0.903846 0.583333 +vt 0.903846 0.688596 +vt 0.923077 0.324561 +vt 0.903846 0.425439 +vt 0.923077 0.535088 +vt 0.820513 0.385965 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 0.7071 +vn 0.5000 -0.7071 0.5000 +vn 0.5000 0.7071 0.5000 +vn 0.5000 -0.7071 -0.5000 +vn 0.5000 0.7071 -0.5000 +vn -0.5000 -0.7071 -0.5000 +vn -0.5000 0.7071 -0.5000 +vn -0.5000 -0.7071 0.5000 +vn -0.5000 0.7071 0.5000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.8944 -0.4472 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.7071 0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 0.7071 0.7071 +vn 0.9239 0.0000 -0.3827 +vn -0.3827 0.0000 0.9239 +vn 0.3827 0.0000 -0.9239 +vn -0.3827 0.0000 -0.9239 +vn 0.3827 0.0000 0.9239 +vn -0.9239 0.0000 -0.3827 +vn 0.9239 0.0000 0.3827 +vn -0.9239 0.0000 0.3827 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn -0.5000 -0.5000 -0.7071 +vn -0.0000 -0.7071 -0.7071 +vn -0.5000 0.5000 -0.7071 +vn 0.5000 0.5000 -0.7071 +vn 0.5000 -0.5000 -0.7071 +vn 0.5000 -0.5000 0.7071 +vn 0.5000 0.5000 0.7071 +vn -0.5000 0.5000 0.7071 +vn -0.5000 -0.5000 0.7071 +vn -0.0000 -0.7071 0.7071 +s off +f 283/348/71 279/349/71 275/350/71 +f 293/351/72 297/352/72 285/353/72 +f 335/354/73 334/355/73 333/356/73 +f 339/357/74 337/358/74 338/359/74 +f 336/360/75 339/357/75 334/355/75 +f 333/361/76 337/358/76 335/362/76 +f 340/363/75 336/360/75 341/364/75 +f 334/355/75 339/357/75 344/365/75 +f 339/357/77 343/366/77 344/367/77 +f 335/362/76 337/358/76 342/368/76 +f 343/366/71 352/369/71 344/367/71 +f 342/370/76 348/371/76 335/372/76 +f 338/359/76 333/361/76 343/373/76 +f 359/374/75 357/375/75 358/376/75 +f 355/377/76 354/378/76 353/379/76 +f 333/380/76 351/381/76 343/366/76 +f 336/382/75 349/383/75 341/384/75 +f 344/367/75 346/385/75 334/386/75 +f 335/387/71 347/388/71 336/382/71 +f 333/389/72 346/385/72 345/390/72 +f 342/370/72 349/383/72 350/391/72 +f 340/363/78 342/370/78 337/358/78 +f 356/392/73 359/374/73 354/378/73 +f 353/393/74 357/375/74 355/394/74 +f 360/395/73 356/392/73 361/396/73 +f 354/378/73 359/374/73 364/397/73 +f 359/374/79 363/398/79 364/399/79 +f 355/394/74 357/375/74 362/400/74 +f 364/399/71 371/401/71 372/402/71 +f 362/403/74 368/404/74 355/405/74 +f 358/376/74 353/393/74 363/406/74 +f 353/407/74 371/401/74 363/398/74 +f 356/408/73 369/409/73 361/410/73 +f 364/399/73 366/411/73 354/412/73 +f 356/408/71 368/413/71 367/414/71 +f 354/412/72 365/415/72 353/416/72 +f 361/410/72 370/417/72 362/403/72 +f 360/395/80 362/403/80 357/375/80 +f 375/418/74 374/419/74 373/420/74 +f 379/421/73 377/422/73 378/423/73 +f 376/424/76 379/421/76 374/419/76 +f 373/425/75 377/422/75 375/426/75 +f 380/427/76 376/424/76 381/428/76 +f 374/419/76 379/421/76 384/429/76 +f 378/423/81 384/430/81 379/421/81 +f 375/426/75 377/422/75 382/431/75 +f 383/432/71 392/433/71 384/430/71 +f 382/434/75 388/435/75 375/436/75 +f 378/423/75 373/425/75 383/437/75 +f 399/438/76 397/439/76 398/440/76 +f 395/441/75 394/442/75 393/443/75 +f 373/444/75 391/445/75 383/432/75 +f 376/446/76 389/447/76 381/448/76 +f 384/430/76 386/449/76 374/450/76 +f 375/451/71 387/452/71 376/446/71 +f 373/453/72 386/449/72 385/454/72 +f 382/434/72 389/447/72 390/455/72 +f 377/422/82 381/448/82 382/434/82 +f 396/456/74 399/438/74 394/442/74 +f 393/457/73 397/439/73 395/458/73 +f 400/459/74 396/456/74 401/460/74 +f 394/442/74 399/438/74 404/461/74 +f 398/440/83 404/462/83 399/438/83 +f 395/458/73 397/439/73 402/463/73 +f 404/462/71 411/464/71 412/465/71 +f 402/466/73 408/467/73 395/468/73 +f 398/440/73 393/457/73 403/469/73 +f 393/470/73 411/464/73 403/471/73 +f 396/472/74 409/473/74 401/474/74 +f 404/462/74 406/475/74 394/476/74 +f 396/472/71 408/477/71 407/478/71 +f 394/476/72 405/479/72 393/480/72 +f 401/474/72 410/481/72 402/466/72 +f 400/459/84 402/466/84 397/439/84 +f 447/482/71 459/483/71 455/484/71 +f 429/485/72 433/486/72 437/487/72 +f 501/488/72 505/489/72 493/490/72 +f 519/491/71 515/492/71 511/493/71 +f 553/494/73 552/495/73 554/496/73 +f 544/497/75 550/498/75 546/499/75 +f 551/500/73 556/501/73 552/495/73 +f 551/500/73 545/502/73 543/503/73 +f 547/504/75 546/499/75 548/505/75 +f 544/497/75 541/506/75 542/507/75 +f 569/508/74 568/509/74 570/510/74 +f 560/511/76 566/512/76 562/513/76 +f 567/514/74 572/515/74 568/509/74 +f 567/514/74 561/516/74 559/517/74 +f 563/518/76 562/513/76 564/519/76 +f 560/511/76 557/520/76 558/521/76 +f 574/522/85 589/523/85 573/524/85 +f 580/525/85 589/526/85 596/527/85 +f 578/528/85 595/529/85 594/530/85 +f 577/531/85 592/532/85 576/533/85 +f 575/534/85 590/535/85 574/522/85 +f 580/525/85 595/536/85 579/537/85 +f 578/528/85 593/538/85 577/539/85 +f 575/534/85 592/540/85 591/541/85 +f 598/542/85 599/543/85 601/544/85 +f 607/545/71 606/546/71 605/547/71 +f 611/548/86 609/549/86 610/550/86 +f 606/551/87 612/552/87 611/553/87 +f 605/554/88 609/549/88 607/545/88 +f 607/545/89 612/552/89 608/555/89 +f 606/551/85 610/556/85 605/557/85 +f 615/558/71 614/559/71 613/560/71 +f 620/561/72 623/562/72 619/563/72 +f 616/564/87 619/563/87 614/559/87 +f 613/565/88 617/566/88 615/567/88 +f 615/568/89 620/569/89 616/570/89 +f 614/571/85 618/572/85 613/573/85 +f 621/574/89 628/575/89 624/576/89 +f 618/577/72 621/578/72 617/566/72 +f 617/579/72 624/576/72 620/569/72 +f 619/580/72 622/581/72 618/572/72 +f 623/582/85 626/583/85 622/581/85 +f 624/584/87 627/585/87 623/562/87 +f 622/586/88 625/587/88 621/578/88 +f 635/588/72 633/589/72 634/590/72 +f 631/591/89 636/592/89 632/593/89 +f 630/594/85 634/590/85 629/595/85 +f 632/596/87 635/588/87 630/597/87 +f 629/598/88 633/589/88 631/599/88 +f 639/600/71 638/601/71 637/602/71 +f 643/603/90 641/604/90 642/605/90 +f 640/606/87 643/603/87 638/601/87 +f 639/607/89 644/608/89 640/606/89 +f 637/609/85 643/603/85 642/610/85 +f 647/611/71 646/612/71 645/613/71 +f 651/614/91 649/615/91 650/616/91 +f 648/617/89 649/615/89 652/618/89 +f 646/619/85 650/616/85 645/613/85 +f 645/613/88 649/615/88 647/611/88 +f 702/620/72 703/621/72 701/622/72 +f 705/623/71 707/624/71 706/625/71 +f 705/626/88 703/621/88 716/627/88 +f 707/628/89 717/629/89 706/630/89 +f 702/620/87 708/631/87 704/632/87 +f 703/621/88 706/633/88 701/622/88 +f 704/632/92 716/634/92 703/621/92 +f 714/635/88 727/636/88 710/637/88 +f 701/622/88 706/633/88 711/638/88 +f 707/624/87 702/620/87 712/639/87 +f 713/640/89 725/641/89 714/642/89 +f 705/643/85 719/644/85 708/645/85 +f 709/646/87 726/647/87 713/640/87 +f 704/632/87 708/631/87 715/648/87 +f 701/622/93 712/649/93 702/620/93 +f 712/649/87 718/650/87 707/628/87 +f 716/634/88 720/651/88 705/652/88 +f 715/653/89 724/654/89 716/634/89 +f 706/655/88 721/656/88 711/657/88 +f 708/645/87 723/658/87 715/653/87 +f 711/657/85 722/659/85 712/649/85 +f 710/637/85 728/660/85 709/646/85 +f 732/661/88 735/662/88 730/663/88 +f 731/664/89 733/665/89 732/666/89 +f 729/667/87 734/668/87 731/664/87 +f 730/663/85 736/669/85 729/667/85 +f 740/670/88 743/671/88 738/672/88 +f 739/673/89 741/674/89 740/675/89 +f 737/676/87 742/677/87 739/673/87 +f 738/672/85 744/678/85 737/676/85 +f 923/679/71 922/680/71 921/681/71 +f 928/682/72 931/683/72 927/684/72 +f 924/685/87 927/684/87 922/680/87 +f 921/686/88 925/687/88 923/688/88 +f 923/689/89 928/690/89 924/691/89 +f 922/692/85 926/693/85 921/694/85 +f 929/695/89 936/696/89 932/697/89 +f 926/698/72 929/699/72 925/687/72 +f 925/700/72 932/697/72 928/690/72 +f 927/701/72 930/702/72 926/693/72 +f 931/703/85 934/704/85 930/702/85 +f 932/705/87 935/706/87 931/683/87 +f 930/707/88 933/708/88 929/699/88 +f 951/709/71 947/710/71 943/711/71 +f 961/712/72 965/713/72 953/714/72 +f 970/715/87 971/716/87 969/717/87 +f 973/718/88 975/719/88 974/720/88 +f 973/721/72 971/716/72 984/722/72 +f 975/723/89 985/724/89 974/725/89 +f 970/715/71 976/726/71 972/727/71 +f 971/716/72 974/728/72 969/717/72 +f 972/727/75 984/729/75 971/716/75 +f 982/730/72 995/731/72 978/732/72 +f 969/717/72 974/728/72 979/733/72 +f 975/719/71 970/715/71 980/734/71 +f 981/735/89 993/736/89 982/737/89 +f 973/738/85 987/739/85 976/740/85 +f 977/741/71 994/742/71 981/735/71 +f 972/727/71 976/726/71 983/743/71 +f 969/717/74 980/744/74 970/715/74 +f 980/744/71 986/745/71 975/723/71 +f 984/729/72 988/746/72 973/747/72 +f 983/748/89 992/749/89 984/729/89 +f 974/750/72 989/751/72 979/752/72 +f 976/740/71 991/753/71 983/748/71 +f 979/752/85 990/754/85 980/744/85 +f 978/732/85 996/755/85 977/741/85 +f 1000/756/72 1003/757/72 998/758/72 +f 999/759/89 1001/760/89 1000/761/89 +f 997/762/71 1002/763/71 999/759/71 +f 998/758/85 1004/764/85 997/762/85 +f 1008/765/72 1011/766/72 1006/767/72 +f 1007/768/89 1009/769/89 1008/770/89 +f 1005/771/71 1010/772/71 1007/768/71 +f 1006/767/85 1012/773/85 1005/771/85 +f 1014/774/88 1015/775/88 1013/776/88 +f 1017/777/87 1019/778/87 1018/779/87 +f 1017/780/71 1015/775/71 1028/781/71 +f 1019/782/89 1029/783/89 1018/784/89 +f 1014/774/72 1020/785/72 1016/786/72 +f 1015/775/71 1018/787/71 1013/776/71 +f 1016/786/73 1028/788/73 1015/775/73 +f 1026/789/71 1039/790/71 1022/791/71 +f 1013/776/71 1018/787/71 1023/792/71 +f 1019/778/72 1014/774/72 1024/793/72 +f 1025/794/89 1037/795/89 1026/796/89 +f 1017/797/85 1031/798/85 1020/799/85 +f 1021/800/72 1038/801/72 1025/794/72 +f 1016/786/72 1020/785/72 1027/802/72 +f 1013/776/76 1024/803/76 1014/774/76 +f 1024/803/72 1030/804/72 1019/782/72 +f 1028/788/71 1032/805/71 1017/806/71 +f 1027/807/89 1036/808/89 1028/788/89 +f 1018/809/71 1033/810/71 1023/811/71 +f 1020/799/72 1035/812/72 1027/807/72 +f 1023/811/85 1034/813/85 1024/803/85 +f 1022/791/85 1040/814/85 1021/800/85 +f 1044/815/71 1047/816/71 1042/817/71 +f 1043/818/89 1045/819/89 1044/820/89 +f 1041/821/72 1046/822/72 1043/818/72 +f 1042/817/85 1048/823/85 1041/821/85 +f 1052/824/71 1055/825/71 1050/826/71 +f 1051/827/89 1053/828/89 1052/829/89 +f 1049/830/72 1054/831/72 1051/827/72 +f 1050/826/85 1056/832/85 1049/830/85 +f 271/833/71 270/834/71 269/835/71 +f 269/835/71 284/836/71 271/833/71 +f 284/836/71 283/348/71 271/833/71 +f 283/348/71 282/837/71 279/349/71 +f 282/837/71 281/838/71 279/349/71 +f 281/838/71 280/839/71 279/349/71 +f 279/349/71 278/840/71 275/350/71 +f 278/840/71 277/841/71 275/350/71 +f 277/841/71 276/842/71 275/350/71 +f 275/350/71 274/843/71 273/844/71 +f 273/844/71 272/845/71 271/833/71 +f 275/350/71 273/844/71 271/833/71 +f 271/833/71 283/348/71 275/350/71 +f 285/353/72 286/846/72 287/847/72 +f 287/847/72 288/848/72 289/849/72 +f 289/849/72 290/850/72 291/851/72 +f 291/851/72 292/852/72 293/351/72 +f 293/351/72 294/853/72 297/352/72 +f 294/853/72 295/854/72 297/352/72 +f 295/854/72 296/855/72 297/352/72 +f 297/352/72 298/856/72 285/353/72 +f 298/856/72 299/857/72 285/353/72 +f 299/857/72 300/858/72 285/353/72 +f 285/353/72 287/847/72 289/849/72 +f 289/849/72 291/851/72 293/351/72 +f 285/353/72 289/849/72 293/351/72 +f 335/354/73 336/360/73 334/355/73 +f 339/357/74 340/363/74 337/358/74 +f 336/360/75 340/363/75 339/357/75 +f 333/361/76 338/359/76 337/358/76 +f 339/357/77 338/359/77 343/366/77 +f 343/366/71 351/381/71 352/369/71 +f 342/370/76 350/391/76 348/371/76 +f 359/374/75 360/395/75 357/375/75 +f 355/377/76 356/392/76 354/378/76 +f 333/380/76 345/859/76 351/381/76 +f 336/382/75 347/388/75 349/383/75 +f 344/367/75 352/369/75 346/385/75 +f 335/387/71 348/860/71 347/388/71 +f 333/389/72 334/386/72 346/385/72 +f 342/370/72 341/384/72 349/383/72 +f 340/363/78 341/384/78 342/370/78 +f 356/392/73 360/395/73 359/374/73 +f 353/393/74 358/376/74 357/375/74 +f 359/374/79 358/376/79 363/398/79 +f 364/399/71 363/398/71 371/401/71 +f 362/403/74 370/417/74 368/404/74 +f 353/407/74 365/861/74 371/401/74 +f 356/408/73 367/414/73 369/409/73 +f 364/399/73 372/402/73 366/411/73 +f 356/408/71 355/862/71 368/413/71 +f 354/412/72 366/411/72 365/415/72 +f 361/410/72 369/409/72 370/417/72 +f 360/395/80 361/410/80 362/403/80 +f 375/418/74 376/424/74 374/419/74 +f 379/421/73 380/427/73 377/422/73 +f 376/424/76 380/427/76 379/421/76 +f 373/425/75 378/423/75 377/422/75 +f 378/423/81 383/432/81 384/430/81 +f 383/432/71 391/445/71 392/433/71 +f 382/434/75 390/455/75 388/435/75 +f 399/438/76 400/459/76 397/439/76 +f 395/441/75 396/456/75 394/442/75 +f 373/444/75 385/863/75 391/445/75 +f 376/446/76 387/452/76 389/447/76 +f 384/430/76 392/433/76 386/449/76 +f 375/451/71 388/864/71 387/452/71 +f 373/453/72 374/450/72 386/449/72 +f 382/434/72 381/448/72 389/447/72 +f 377/422/82 380/427/82 381/448/82 +f 396/456/74 400/459/74 399/438/74 +f 393/457/73 398/440/73 397/439/73 +f 398/440/83 403/471/83 404/462/83 +f 404/462/71 403/471/71 411/464/71 +f 402/466/73 410/481/73 408/467/73 +f 393/470/73 405/865/73 411/464/73 +f 396/472/74 407/478/74 409/473/74 +f 404/462/74 412/465/74 406/475/74 +f 396/472/71 395/866/71 408/477/71 +f 394/476/72 406/475/72 405/479/72 +f 401/474/72 409/473/72 410/481/72 +f 400/459/84 401/474/84 402/466/84 +f 447/482/71 446/867/71 459/483/71 +f 446/867/71 445/868/71 459/483/71 +f 445/868/71 460/869/71 459/483/71 +f 459/483/71 458/870/71 457/871/71 +f 457/871/71 456/872/71 455/484/71 +f 455/484/71 454/873/71 453/874/71 +f 453/874/71 452/875/71 455/484/71 +f 452/875/71 451/876/71 455/484/71 +f 451/876/71 450/877/71 449/878/71 +f 449/878/71 448/879/71 447/482/71 +f 459/483/71 457/871/71 455/484/71 +f 451/876/71 449/878/71 455/484/71 +f 449/878/71 447/482/71 455/484/71 +f 429/485/72 430/880/72 433/486/72 +f 430/880/72 431/881/72 433/486/72 +f 431/881/72 432/882/72 433/486/72 +f 433/486/72 434/883/72 435/884/72 +f 435/884/72 436/885/72 433/486/72 +f 436/885/72 437/487/72 433/486/72 +f 437/487/72 438/886/72 439/887/72 +f 439/887/72 440/888/72 441/889/72 +f 441/889/72 442/890/72 443/891/72 +f 443/891/72 444/892/72 429/485/72 +f 437/487/72 439/887/72 429/485/72 +f 439/887/72 441/889/72 429/485/72 +f 441/889/72 443/891/72 429/485/72 +f 493/490/72 494/893/72 495/894/72 +f 495/894/72 496/895/72 497/896/72 +f 497/896/72 498/897/72 499/898/72 +f 499/898/72 500/899/72 501/488/72 +f 501/488/72 502/900/72 505/489/72 +f 502/900/72 503/901/72 505/489/72 +f 503/901/72 504/902/72 505/489/72 +f 505/489/72 506/903/72 507/904/72 +f 507/904/72 508/905/72 505/489/72 +f 508/905/72 493/490/72 505/489/72 +f 493/490/72 495/894/72 497/896/72 +f 497/896/72 499/898/72 493/490/72 +f 499/898/72 501/488/72 493/490/72 +f 511/493/71 510/906/71 509/907/71 +f 509/907/71 524/908/71 511/493/71 +f 524/908/71 523/909/71 511/493/71 +f 523/909/71 522/910/71 521/911/71 +f 521/911/71 520/912/71 519/491/71 +f 519/491/71 518/913/71 515/492/71 +f 518/913/71 517/914/71 515/492/71 +f 517/914/71 516/915/71 515/492/71 +f 515/492/71 514/916/71 513/917/71 +f 513/917/71 512/918/71 511/493/71 +f 523/909/71 521/911/71 511/493/71 +f 521/911/71 519/491/71 511/493/71 +f 515/492/71 513/917/71 511/493/71 +f 547/504/75 541/506/75 544/497/75 +f 544/497/75 549/919/75 550/498/75 +f 546/499/75 547/504/75 544/497/75 +f 553/494/73 545/502/73 551/500/73 +f 551/500/73 555/920/73 556/501/73 +f 552/495/73 553/494/73 551/500/73 +f 563/518/76 557/520/76 560/511/76 +f 560/511/76 565/921/76 566/512/76 +f 562/513/76 563/518/76 560/511/76 +f 569/508/74 561/516/74 567/514/74 +f 567/514/74 571/922/74 572/515/74 +f 568/509/74 569/508/74 567/514/74 +f 574/522/85 590/923/85 589/523/85 +f 580/525/85 573/524/85 589/526/85 +f 578/528/85 579/537/85 595/529/85 +f 577/531/85 593/924/85 592/532/85 +f 575/534/85 591/925/85 590/535/85 +f 580/525/85 596/926/85 595/536/85 +f 578/528/85 594/927/85 593/538/85 +f 575/534/85 576/533/85 592/540/85 +f 598/542/85 597/928/85 599/543/85 +f 599/543/85 600/929/85 601/544/85 +f 601/544/85 602/930/85 603/931/85 +f 603/931/85 604/932/85 601/544/85 +f 604/932/85 598/542/85 601/544/85 +f 607/545/71 608/555/71 606/546/71 +f 611/548/86 612/552/86 609/549/86 +f 606/551/87 608/555/87 612/552/87 +f 605/554/88 610/933/88 609/549/88 +f 607/545/89 609/549/89 612/552/89 +f 606/551/85 611/553/85 610/556/85 +f 615/558/71 616/564/71 614/559/71 +f 620/561/72 624/584/72 623/562/72 +f 616/564/87 620/561/87 619/563/87 +f 613/565/88 618/577/88 617/566/88 +f 615/568/89 617/579/89 620/569/89 +f 614/571/85 619/580/85 618/572/85 +f 621/574/89 625/934/89 628/575/89 +f 618/577/72 622/586/72 621/578/72 +f 617/579/72 621/574/72 624/576/72 +f 619/580/72 623/582/72 622/581/72 +f 623/582/85 627/935/85 626/583/85 +f 624/584/87 628/936/87 627/585/87 +f 622/586/88 626/937/88 625/587/88 +f 635/588/72 636/592/72 633/589/72 +f 631/591/89 633/589/89 636/592/89 +f 630/594/85 635/588/85 634/590/85 +f 632/596/87 636/592/87 635/588/87 +f 629/598/88 634/590/88 633/589/88 +f 639/600/71 640/606/71 638/601/71 +f 643/603/90 644/608/90 641/604/90 +f 640/606/87 644/608/87 643/603/87 +f 639/607/89 641/938/89 644/608/89 +f 637/609/85 638/601/85 643/603/85 +f 647/611/71 648/939/71 646/612/71 +f 651/614/91 652/940/91 649/615/91 +f 648/617/89 647/611/89 649/615/89 +f 646/619/85 651/941/85 650/616/85 +f 645/613/88 650/616/88 649/615/88 +f 702/620/72 704/632/72 703/621/72 +f 705/623/71 708/631/71 707/624/71 +f 707/628/89 718/650/89 717/629/89 +f 702/620/87 707/624/87 708/631/87 +f 703/621/88 705/626/88 706/633/88 +f 704/632/92 715/653/92 716/634/92 +f 714/635/88 725/942/88 727/636/88 +f 713/640/89 726/647/89 725/641/89 +f 705/643/85 720/943/85 719/644/85 +f 709/646/87 728/660/87 726/647/87 +f 701/622/93 711/657/93 712/649/93 +f 712/649/87 722/659/87 718/650/87 +f 716/634/88 724/654/88 720/651/88 +f 715/653/89 723/658/89 724/654/89 +f 706/655/88 717/944/88 721/656/88 +f 708/645/87 719/644/87 723/658/87 +f 711/657/85 721/656/85 722/659/85 +f 710/637/85 727/636/85 728/660/85 +f 732/661/88 733/945/88 735/662/88 +f 731/664/89 734/668/89 733/665/89 +f 729/667/87 736/669/87 734/668/87 +f 730/663/85 735/662/85 736/669/85 +f 740/670/88 741/946/88 743/671/88 +f 739/673/89 742/677/89 741/674/89 +f 737/676/87 744/678/87 742/677/87 +f 738/672/85 743/671/85 744/678/85 +f 923/679/71 924/685/71 922/680/71 +f 928/682/72 932/705/72 931/683/72 +f 924/685/87 928/682/87 927/684/87 +f 921/686/88 926/698/88 925/687/88 +f 923/689/89 925/700/89 928/690/89 +f 922/692/85 927/701/85 926/693/85 +f 929/695/89 933/947/89 936/696/89 +f 926/698/72 930/707/72 929/699/72 +f 925/700/72 929/695/72 932/697/72 +f 927/701/72 931/703/72 930/702/72 +f 931/703/85 935/948/85 934/704/85 +f 932/705/87 936/949/87 935/706/87 +f 930/707/88 934/950/88 933/708/88 +f 939/951/71 938/952/71 937/953/71 +f 937/953/71 952/954/71 939/951/71 +f 952/954/71 951/709/71 939/951/71 +f 951/709/71 950/955/71 947/710/71 +f 950/955/71 949/956/71 947/710/71 +f 949/956/71 948/957/71 947/710/71 +f 947/710/71 946/958/71 943/711/71 +f 946/958/71 945/959/71 943/711/71 +f 945/959/71 944/960/71 943/711/71 +f 943/711/71 942/961/71 941/962/71 +f 941/962/71 940/963/71 939/951/71 +f 943/711/71 941/962/71 939/951/71 +f 939/951/71 951/709/71 943/711/71 +f 953/714/72 954/964/72 955/965/72 +f 955/965/72 956/966/72 957/967/72 +f 957/967/72 958/968/72 959/969/72 +f 959/969/72 960/970/72 961/712/72 +f 961/712/72 962/971/72 965/713/72 +f 962/971/72 963/972/72 965/713/72 +f 963/972/72 964/973/72 965/713/72 +f 965/713/72 966/974/72 953/714/72 +f 966/974/72 967/975/72 953/714/72 +f 967/975/72 968/976/72 953/714/72 +f 953/714/72 955/965/72 957/967/72 +f 957/967/72 959/969/72 961/712/72 +f 953/714/72 957/967/72 961/712/72 +f 970/715/87 972/727/87 971/716/87 +f 973/718/88 976/726/88 975/719/88 +f 975/723/89 986/745/89 985/724/89 +f 970/715/71 975/719/71 976/726/71 +f 971/716/72 973/721/72 974/728/72 +f 972/727/75 983/748/75 984/729/75 +f 982/730/72 993/977/72 995/731/72 +f 981/735/89 994/742/89 993/736/89 +f 973/738/85 988/978/85 987/739/85 +f 977/741/71 996/755/71 994/742/71 +f 969/717/74 979/752/74 980/744/74 +f 980/744/71 990/754/71 986/745/71 +f 984/729/72 992/749/72 988/746/72 +f 983/748/89 991/753/89 992/749/89 +f 974/750/72 985/979/72 989/751/72 +f 976/740/71 987/739/71 991/753/71 +f 979/752/85 989/751/85 990/754/85 +f 978/732/85 995/731/85 996/755/85 +f 1000/756/72 1001/980/72 1003/757/72 +f 999/759/89 1002/763/89 1001/760/89 +f 997/762/71 1004/764/71 1002/763/71 +f 998/758/85 1003/757/85 1004/764/85 +f 1008/765/72 1009/981/72 1011/766/72 +f 1007/768/89 1010/772/89 1009/769/89 +f 1005/771/71 1012/773/71 1010/772/71 +f 1006/767/85 1011/766/85 1012/773/85 +f 1014/774/88 1016/786/88 1015/775/88 +f 1017/777/87 1020/785/87 1019/778/87 +f 1019/782/89 1030/804/89 1029/783/89 +f 1014/774/72 1019/778/72 1020/785/72 +f 1015/775/71 1017/780/71 1018/787/71 +f 1016/786/73 1027/807/73 1028/788/73 +f 1026/789/71 1037/982/71 1039/790/71 +f 1025/794/89 1038/801/89 1037/795/89 +f 1017/797/85 1032/983/85 1031/798/85 +f 1021/800/72 1040/814/72 1038/801/72 +f 1013/776/76 1023/811/76 1024/803/76 +f 1024/803/72 1034/813/72 1030/804/72 +f 1028/788/71 1036/808/71 1032/805/71 +f 1027/807/89 1035/812/89 1036/808/89 +f 1018/809/71 1029/984/71 1033/810/71 +f 1020/799/72 1031/798/72 1035/812/72 +f 1023/811/85 1033/810/85 1034/813/85 +f 1022/791/85 1039/790/85 1040/814/85 +f 1044/815/71 1045/985/71 1047/816/71 +f 1043/818/89 1046/822/89 1045/819/89 +f 1041/821/72 1048/823/72 1046/822/72 +f 1042/817/85 1047/816/85 1048/823/85 +f 1052/824/71 1053/986/71 1055/825/71 +f 1051/827/89 1054/831/89 1053/828/89 +f 1049/830/72 1056/832/72 1054/831/72 +f 1050/826/85 1055/825/85 1056/832/85 +s 1 +f 283/987/75 298/988/94 282/989/94 +f 276/990/95 291/991/76 275/992/76 +f 284/993/96 299/994/75 283/987/75 +f 277/995/85 292/996/95 276/990/95 +f 270/997/97 285/998/89 269/999/89 +f 269/999/89 300/1000/96 284/993/96 +f 278/1001/98 293/1002/85 277/995/85 +f 271/1003/73 286/1004/97 270/997/97 +f 279/1005/74 294/1006/98 278/1001/98 +f 272/1007/99 287/1008/73 271/1003/73 +f 280/1009/100 295/1010/74 279/1005/74 +f 273/1011/88 288/1012/99 272/1007/99 +f 281/1013/87 296/1014/100 280/1009/100 +f 274/1015/101 289/1016/88 273/1017/88 +f 282/989/94 297/1018/87 281/1013/87 +f 275/992/76 290/1019/101 274/1015/101 +f 315/1020/75 330/1021/94 314/1022/94 +f 308/1023/95 323/1024/76 307/1025/76 +f 316/1026/96 331/1027/75 315/1020/75 +f 309/1028/85 324/1029/95 308/1023/95 +f 302/1030/97 317/1031/89 301/1032/89 +f 301/1032/89 332/1033/96 316/1026/96 +f 310/1034/98 325/1035/85 309/1028/85 +f 303/1036/73 318/1037/97 302/1030/97 +f 311/1038/74 326/1039/98 310/1034/98 +f 304/1040/99 319/1041/73 303/1036/73 +f 312/1042/100 327/1043/74 311/1038/74 +f 305/1044/88 320/1045/99 304/1040/99 +f 313/1046/87 328/1047/100 312/1042/100 +f 306/1048/101 321/1049/88 305/1050/88 +f 314/1022/94 329/1051/87 313/1046/87 +f 307/1025/76 322/1052/101 306/1048/101 +f 427/1053/75 442/1054/94 426/1055/94 +f 420/1056/95 435/1057/76 419/1058/76 +f 428/1059/96 443/1060/75 427/1053/75 +f 421/1061/85 436/1062/95 420/1056/95 +f 414/1063/97 429/1064/89 413/1065/89 +f 413/1065/89 444/1066/96 428/1059/96 +f 422/1067/98 437/1068/85 421/1061/85 +f 415/1069/73 430/1070/97 414/1063/97 +f 423/1071/74 438/1072/98 422/1067/98 +f 416/1073/99 431/1074/73 415/1069/73 +f 424/1075/100 439/1076/74 423/1071/74 +f 417/1077/88 432/1078/99 416/1073/99 +f 425/1079/87 440/1080/100 424/1075/100 +f 418/1081/101 433/1082/88 417/1083/88 +f 426/1055/94 441/1084/87 425/1079/87 +f 419/1058/76 434/1085/101 418/1081/101 +f 459/1086/75 474/1087/94 458/1088/94 +f 452/1089/95 467/1090/76 451/1091/76 +f 460/1092/96 475/1093/75 459/1086/75 +f 453/1094/85 468/1095/95 452/1089/95 +f 446/1096/97 461/1097/89 445/1098/89 +f 445/1098/89 476/1099/96 460/1092/96 +f 454/1100/98 469/1101/85 453/1094/85 +f 447/1102/73 462/1103/97 446/1096/97 +f 455/1104/74 470/1105/98 454/1100/98 +f 448/1106/99 463/1107/73 447/1102/73 +f 456/1108/100 471/1109/74 455/1104/74 +f 449/1110/88 464/1111/99 448/1106/99 +f 457/1112/87 472/1113/100 456/1108/100 +f 450/1114/101 465/1115/88 449/1116/88 +f 458/1088/94 473/1117/87 457/1112/87 +f 451/1091/76 466/1118/101 450/1114/101 +f 488/1119/100 503/1120/74 487/1121/74 +f 481/1122/88 496/1123/99 480/1124/99 +f 489/1125/87 504/1126/100 488/1119/100 +f 482/1127/101 497/1128/88 481/1129/88 +f 490/1130/94 505/1131/87 489/1125/87 +f 483/1132/76 498/1133/101 482/1127/101 +f 491/1134/75 506/1135/94 490/1130/94 +f 484/1136/95 499/1137/76 483/1132/76 +f 492/1138/96 507/1139/75 491/1134/75 +f 485/1140/85 500/1141/95 484/1136/95 +f 478/1142/97 493/1143/89 477/1144/89 +f 477/1144/89 508/1145/96 492/1138/96 +f 486/1146/98 501/1147/85 485/1140/85 +f 479/1148/73 494/1149/97 478/1142/97 +f 487/1121/74 502/1150/98 486/1146/98 +f 480/1124/99 495/1151/73 479/1148/73 +f 520/1152/100 535/1153/74 519/1154/74 +f 513/1155/88 528/1156/99 512/1157/99 +f 521/1158/87 536/1159/100 520/1152/100 +f 514/1160/101 529/1161/88 513/1162/88 +f 522/1163/94 537/1164/87 521/1158/87 +f 515/1165/76 530/1166/101 514/1160/101 +f 523/1167/75 538/1168/94 522/1163/94 +f 516/1169/95 531/1170/76 515/1165/76 +f 524/1171/96 539/1172/75 523/1167/75 +f 517/1173/85 532/1174/95 516/1169/95 +f 510/1175/97 525/1176/89 509/1177/89 +f 509/1177/89 540/1178/96 524/1171/96 +f 518/1179/98 533/1180/85 517/1173/85 +f 511/1181/73 526/1182/97 510/1175/97 +f 519/1154/74 534/1183/98 518/1179/98 +f 512/1157/99 527/1184/73 511/1181/73 +f 581/1185/72 574/522/91 573/524/72 +f 588/1186/90 573/524/72 580/525/90 +f 586/1187/102 579/537/87 578/528/102 +f 584/1188/103 577/531/71 576/533/103 +f 582/1189/91 575/534/88 574/522/91 +f 587/1190/87 580/525/90 579/537/87 +f 585/1191/71 578/528/102 577/539/71 +f 583/1192/88 576/533/103 575/534/88 +f 589/526/72 604/1193/90 596/527/90 +f 595/529/87 602/1194/102 594/530/102 +f 593/924/71 600/1195/103 592/532/103 +f 591/925/88 597/1196/91 590/535/91 +f 596/926/90 603/1197/87 595/536/87 +f 594/927/102 601/1198/71 593/538/71 +f 592/540/103 599/1199/88 591/541/88 +f 590/923/91 598/1200/72 589/523/72 +f 685/1201/104 700/1202/105 693/1203/104 +f 686/1204/73 693/1205/104 694/1206/73 +f 695/1207/106 686/1208/73 694/1209/73 +f 688/1210/92 695/1211/106 696/1212/92 +f 689/1213/107 696/1214/92 697/1215/107 +f 698/1216/75 689/1217/107 697/1218/107 +f 691/1219/108 698/1220/75 699/1221/108 +f 700/1222/105 691/1223/108 699/1224/108 +f 678/1225/91 676/1226/72 677/1227/72 +f 679/1228/88 675/1229/91 678/1225/91 +f 680/1230/103 674/1231/88 679/1228/88 +f 681/1232/71 673/1233/103 680/1230/103 +f 682/1234/102 672/1235/71 681/1236/71 +f 683/1237/87 671/1238/102 682/1234/102 +f 684/1239/90 670/1240/87 683/1237/87 +f 677/1227/72 669/1241/90 684/1239/90 +f 666/1242/74 659/1243/109 667/1244/109 +f 666/1245/74 657/1246/110 658/1247/74 +f 664/1248/93 657/1249/110 665/1250/110 +f 664/1251/93 655/1252/111 656/1253/93 +f 663/1254/111 654/1255/76 655/1256/111 +f 661/1257/112 654/1258/76 662/1259/76 +f 661/1260/112 660/1261/113 653/1262/112 +f 668/1263/113 659/1264/109 660/1265/113 +f 671/1238/109 662/1266/74 663/1254/109 +f 672/1235/113 663/1267/109 664/1251/113 +f 672/1268/113 665/1250/112 673/1233/112 +f 674/1231/76 665/1269/112 666/1245/76 +f 674/1231/76 667/1244/111 675/1229/111 +f 675/1229/111 668/1263/93 676/1226/93 +f 676/1226/93 661/1260/110 669/1241/110 +f 669/1241/110 662/1259/74 670/1240/74 +f 694/1206/75 684/1239/107 683/1237/75 +f 693/1203/107 677/1227/92 684/1239/107 +f 700/1222/92 678/1225/106 677/1227/92 +f 699/1221/106 679/1228/73 678/1225/106 +f 679/1228/73 697/1218/104 680/1230/104 +f 680/1230/104 696/1214/105 681/1232/105 +f 696/1212/105 682/1234/108 681/1236/105 +f 682/1234/108 694/1209/75 683/1237/75 +f 785/1270/104 784/1271/105 792/1272/105 +f 778/1273/73 785/1274/104 786/1275/73 +f 787/1276/106 778/1277/73 786/1278/73 +f 788/1279/92 779/1280/106 787/1281/106 +f 781/1282/107 788/1283/92 789/1284/107 +f 790/1285/75 781/1286/107 789/1287/107 +f 783/1288/108 790/1289/75 791/1290/108 +f 792/1291/105 783/1292/108 791/1293/108 +f 770/1294/91 768/1295/72 769/1296/72 +f 771/1297/88 767/1298/91 770/1294/91 +f 772/1299/103 766/1300/88 771/1297/88 +f 773/1301/71 765/1302/103 772/1299/103 +f 774/1303/102 764/1304/71 773/1305/71 +f 775/1306/87 763/1307/102 774/1303/102 +f 776/1308/90 762/1309/87 775/1306/87 +f 769/1296/72 761/1310/90 776/1308/90 +f 758/1311/74 751/1312/109 759/1313/109 +f 758/1314/74 749/1315/110 750/1316/74 +f 756/1317/93 749/1318/110 757/1319/110 +f 756/1320/93 747/1321/111 748/1322/93 +f 755/1323/111 746/1324/76 747/1325/111 +f 753/1326/112 746/1327/76 754/1328/76 +f 760/1329/113 745/1330/112 753/1331/112 +f 760/1332/113 751/1333/109 752/1334/113 +f 762/1309/74 755/1323/109 763/1307/109 +f 764/1304/113 755/1335/109 756/1320/113 +f 765/1302/112 756/1317/113 757/1319/112 +f 765/1302/112 758/1314/76 766/1300/76 +f 766/1300/76 759/1313/111 767/1298/111 +f 767/1298/111 760/1332/93 768/1295/93 +f 768/1295/93 753/1331/110 761/1310/110 +f 761/1310/110 754/1328/74 762/1309/74 +f 786/1275/75 776/1308/107 775/1306/75 +f 785/1270/107 769/1296/92 776/1308/107 +f 792/1291/92 770/1294/106 769/1296/92 +f 791/1290/106 771/1297/73 770/1294/106 +f 771/1297/73 789/1287/104 772/1299/104 +f 772/1299/104 788/1283/105 773/1301/105 +f 773/1305/105 787/1281/108 774/1303/108 +f 774/1303/108 786/1278/75 775/1306/75 +f 825/1336/104 840/1337/105 833/1338/104 +f 826/1339/73 833/1340/104 834/1341/73 +f 835/1342/106 826/1343/73 834/1344/73 +f 828/1345/92 835/1346/106 836/1347/92 +f 829/1348/107 836/1349/92 837/1350/107 +f 838/1351/75 829/1352/107 837/1353/107 +f 831/1354/108 838/1355/75 839/1356/108 +f 840/1357/105 831/1358/108 839/1359/108 +f 818/1360/91 816/1361/72 817/1362/72 +f 819/1363/88 815/1364/91 818/1360/91 +f 820/1365/103 814/1366/88 819/1363/88 +f 821/1367/71 813/1368/103 820/1365/103 +f 822/1369/102 812/1370/71 821/1371/71 +f 823/1372/87 811/1373/102 822/1369/102 +f 824/1374/90 810/1375/87 823/1372/87 +f 817/1362/72 809/1376/90 824/1374/90 +f 806/1377/74 799/1378/109 807/1379/109 +f 806/1380/74 797/1381/110 798/1382/74 +f 804/1383/93 797/1384/110 805/1385/110 +f 803/1386/111 796/1387/93 804/1388/93 +f 803/1389/111 794/1390/76 795/1391/111 +f 801/1392/112 794/1393/76 802/1394/76 +f 801/1395/112 800/1396/113 793/1397/112 +f 808/1398/113 799/1399/109 800/1400/113 +f 811/1373/109 802/1401/74 803/1389/109 +f 811/1373/109 804/1388/113 812/1370/113 +f 813/1368/112 804/1383/113 805/1385/112 +f 813/1368/112 806/1380/76 814/1366/76 +f 814/1366/76 807/1379/111 815/1364/111 +f 815/1364/111 808/1398/93 816/1361/93 +f 809/1376/110 808/1402/93 801/1395/110 +f 809/1376/110 802/1394/74 810/1375/74 +f 834/1341/75 824/1374/107 823/1372/75 +f 833/1338/107 817/1362/92 824/1374/107 +f 840/1357/92 818/1360/106 817/1362/92 +f 839/1356/106 819/1363/73 818/1360/106 +f 819/1363/73 837/1353/104 820/1365/104 +f 820/1365/104 836/1349/105 821/1367/105 +f 836/1347/105 822/1369/108 821/1371/105 +f 822/1369/108 834/1344/75 823/1372/75 +f 881/1403/104 880/1404/105 888/1405/105 +f 874/1406/73 881/1407/104 882/1408/73 +f 883/1409/106 874/1410/73 882/1411/73 +f 884/1412/92 875/1413/106 883/1414/106 +f 877/1415/107 884/1416/92 885/1417/107 +f 886/1418/75 877/1419/107 885/1420/107 +f 879/1421/108 886/1422/75 887/1423/108 +f 880/1424/105 887/1425/108 888/1426/105 +f 866/1427/91 864/1428/72 865/1429/72 +f 867/1430/88 863/1431/91 866/1427/91 +f 868/1432/103 862/1433/88 867/1430/88 +f 869/1434/71 861/1435/103 868/1432/103 +f 870/1436/102 860/1437/71 869/1438/71 +f 871/1439/87 859/1440/102 870/1436/102 +f 872/1441/90 858/1442/87 871/1439/87 +f 865/1429/72 857/1443/90 872/1441/90 +f 854/1444/74 847/1445/109 855/1446/109 +f 853/1447/110 846/1448/74 854/1449/74 +f 852/1450/93 845/1451/110 853/1452/110 +f 852/1453/93 843/1454/111 844/1455/93 +f 851/1456/111 842/1457/76 843/1458/111 +f 849/1459/112 842/1460/76 850/1461/76 +f 849/1462/112 848/1463/113 841/1464/112 +f 856/1465/113 847/1466/109 848/1467/113 +f 858/1442/74 851/1456/109 859/1440/109 +f 860/1437/113 851/1468/109 852/1453/113 +f 861/1435/112 852/1450/113 853/1452/112 +f 861/1435/112 854/1449/76 862/1433/76 +f 862/1433/76 855/1446/111 863/1431/111 +f 863/1431/111 856/1465/93 864/1428/93 +f 857/1443/110 856/1469/93 849/1462/110 +f 857/1443/110 850/1461/74 858/1442/74 +f 882/1408/75 872/1441/107 871/1439/75 +f 881/1403/107 865/1429/92 872/1441/107 +f 888/1426/92 866/1427/106 865/1429/92 +f 887/1423/106 867/1430/73 866/1427/106 +f 867/1430/73 885/1420/104 868/1432/104 +f 868/1432/104 884/1416/105 869/1434/105 +f 884/1412/105 870/1436/108 869/1438/105 +f 870/1436/108 882/1411/75 871/1439/75 +f 914/1470/91 912/1471/72 913/1472/72 +f 915/1473/88 911/1474/91 914/1470/91 +f 916/1475/103 910/1476/88 915/1473/88 +f 917/1477/71 909/1478/103 916/1475/103 +f 918/1479/102 908/1480/71 917/1481/71 +f 919/1482/87 907/1483/102 918/1479/102 +f 920/1484/90 906/1485/87 919/1482/87 +f 913/1472/72 905/1486/90 920/1484/90 +f 902/1487/74 895/1488/109 903/1489/109 +f 902/1490/74 893/1491/110 894/1492/74 +f 900/1493/93 893/1494/110 901/1495/110 +f 900/1496/93 891/1497/111 892/1498/93 +f 899/1499/111 890/1500/76 891/1501/111 +f 897/1502/112 890/1503/76 898/1504/76 +f 897/1505/112 896/1506/113 889/1507/112 +f 904/1508/113 895/1509/109 896/1510/113 +f 907/1483/109 898/1511/74 899/1499/109 +f 907/1483/109 900/1496/113 908/1480/113 +f 909/1478/112 900/1493/113 901/1495/112 +f 910/1476/76 901/1512/112 902/1490/76 +f 911/1474/111 902/1487/76 903/1489/111 +f 911/1474/111 904/1508/93 912/1471/93 +f 905/1486/110 904/1513/93 897/1505/110 +f 905/1486/110 898/1504/74 906/1485/74 +f 951/1514/75 966/1515/94 950/1516/94 +f 944/1517/95 959/1518/76 943/1519/76 +f 952/1520/96 967/1521/75 951/1514/75 +f 945/1522/85 960/1523/95 944/1517/95 +f 938/1524/97 953/1525/89 937/1526/89 +f 937/1526/89 968/1527/96 952/1520/96 +f 946/1528/98 961/1529/85 945/1522/85 +f 939/1530/73 954/1531/97 938/1524/97 +f 947/1532/74 962/1533/98 946/1528/98 +f 940/1534/99 955/1535/73 939/1530/73 +f 948/1536/100 963/1537/74 947/1532/74 +f 941/1538/88 956/1539/99 940/1534/99 +f 949/1540/87 964/1541/100 948/1536/100 +f 942/1542/101 957/1543/88 941/1544/88 +f 950/1516/94 965/1545/87 949/1540/87 +f 943/1519/76 958/1546/101 942/1542/101 +f 283/987/75 299/994/75 298/988/94 +f 276/990/95 292/996/95 291/991/76 +f 284/993/96 300/1000/96 299/994/75 +f 277/995/85 293/1002/85 292/996/95 +f 270/997/97 286/1004/97 285/998/89 +f 269/999/89 285/998/89 300/1000/96 +f 278/1001/98 294/1006/98 293/1002/85 +f 271/1003/73 287/1008/73 286/1004/97 +f 279/1005/74 295/1010/74 294/1006/98 +f 272/1007/99 288/1012/99 287/1008/73 +f 280/1009/100 296/1014/100 295/1010/74 +f 273/1011/88 289/1547/88 288/1012/99 +f 281/1013/87 297/1018/87 296/1014/100 +f 274/1015/101 290/1019/101 289/1016/88 +f 282/989/94 298/988/94 297/1018/87 +f 275/992/76 291/991/76 290/1019/101 +f 315/1020/75 331/1027/75 330/1021/94 +f 308/1023/95 324/1029/95 323/1024/76 +f 316/1026/96 332/1033/96 331/1027/75 +f 309/1028/85 325/1035/85 324/1029/95 +f 302/1030/97 318/1037/97 317/1031/89 +f 301/1032/89 317/1031/89 332/1033/96 +f 310/1034/98 326/1039/98 325/1035/85 +f 303/1036/73 319/1041/73 318/1037/97 +f 311/1038/74 327/1043/74 326/1039/98 +f 304/1040/99 320/1045/99 319/1041/73 +f 312/1042/100 328/1047/100 327/1043/74 +f 305/1044/88 321/1548/88 320/1045/99 +f 313/1046/87 329/1051/87 328/1047/100 +f 306/1048/101 322/1052/101 321/1049/88 +f 314/1022/94 330/1021/94 329/1051/87 +f 307/1025/76 323/1024/76 322/1052/101 +f 427/1053/75 443/1060/75 442/1054/94 +f 420/1056/95 436/1062/95 435/1057/76 +f 428/1059/96 444/1066/96 443/1060/75 +f 421/1061/85 437/1068/85 436/1062/95 +f 414/1063/97 430/1070/97 429/1064/89 +f 413/1065/89 429/1064/89 444/1066/96 +f 422/1067/98 438/1072/98 437/1068/85 +f 415/1069/73 431/1074/73 430/1070/97 +f 423/1071/74 439/1076/74 438/1072/98 +f 416/1073/99 432/1078/99 431/1074/73 +f 424/1075/100 440/1080/100 439/1076/74 +f 417/1077/88 433/1549/88 432/1078/99 +f 425/1079/87 441/1084/87 440/1080/100 +f 418/1081/101 434/1085/101 433/1082/88 +f 426/1055/94 442/1054/94 441/1084/87 +f 419/1058/76 435/1057/76 434/1085/101 +f 459/1086/75 475/1093/75 474/1087/94 +f 452/1089/95 468/1095/95 467/1090/76 +f 460/1092/96 476/1099/96 475/1093/75 +f 453/1094/85 469/1101/85 468/1095/95 +f 446/1096/97 462/1103/97 461/1097/89 +f 445/1098/89 461/1097/89 476/1099/96 +f 454/1100/98 470/1105/98 469/1101/85 +f 447/1102/73 463/1107/73 462/1103/97 +f 455/1104/74 471/1109/74 470/1105/98 +f 448/1106/99 464/1111/99 463/1107/73 +f 456/1108/100 472/1113/100 471/1109/74 +f 449/1110/88 465/1550/88 464/1111/99 +f 457/1112/87 473/1117/87 472/1113/100 +f 450/1114/101 466/1118/101 465/1115/88 +f 458/1088/94 474/1087/94 473/1117/87 +f 451/1091/76 467/1090/76 466/1118/101 +f 488/1119/100 504/1126/100 503/1120/74 +f 481/1122/88 497/1551/88 496/1123/99 +f 489/1125/87 505/1131/87 504/1126/100 +f 482/1127/101 498/1133/101 497/1128/88 +f 490/1130/94 506/1135/94 505/1131/87 +f 483/1132/76 499/1137/76 498/1133/101 +f 491/1134/75 507/1139/75 506/1135/94 +f 484/1136/95 500/1141/95 499/1137/76 +f 492/1138/96 508/1145/96 507/1139/75 +f 485/1140/85 501/1147/85 500/1141/95 +f 478/1142/97 494/1149/97 493/1143/89 +f 477/1144/89 493/1143/89 508/1145/96 +f 486/1146/98 502/1150/98 501/1147/85 +f 479/1148/73 495/1151/73 494/1149/97 +f 487/1121/74 503/1120/74 502/1150/98 +f 480/1124/99 496/1123/99 495/1151/73 +f 520/1152/100 536/1159/100 535/1153/74 +f 513/1155/88 529/1552/88 528/1156/99 +f 521/1158/87 537/1164/87 536/1159/100 +f 514/1160/101 530/1166/101 529/1161/88 +f 522/1163/94 538/1168/94 537/1164/87 +f 515/1165/76 531/1170/76 530/1166/101 +f 523/1167/75 539/1172/75 538/1168/94 +f 516/1169/95 532/1174/95 531/1170/76 +f 524/1171/96 540/1178/96 539/1172/75 +f 517/1173/85 533/1180/85 532/1174/95 +f 510/1175/97 526/1182/97 525/1176/89 +f 509/1177/89 525/1176/89 540/1178/96 +f 518/1179/98 534/1183/98 533/1180/85 +f 511/1181/73 527/1184/73 526/1182/97 +f 519/1154/74 535/1153/74 534/1183/98 +f 512/1157/99 528/1156/99 527/1184/73 +f 581/1185/72 582/1189/91 574/522/91 +f 588/1186/90 581/1185/72 573/524/72 +f 586/1187/102 587/1190/87 579/537/87 +f 584/1188/103 585/1553/71 577/531/71 +f 582/1189/91 583/1192/88 575/534/88 +f 587/1190/87 588/1186/90 580/525/90 +f 585/1191/71 586/1187/102 578/528/102 +f 583/1192/88 584/1188/103 576/533/103 +f 589/526/72 598/1554/72 604/1193/90 +f 595/529/87 603/1555/87 602/1194/102 +f 593/924/71 601/1556/71 600/1195/103 +f 591/925/88 599/1557/88 597/1196/91 +f 596/926/90 604/1558/90 603/1197/87 +f 594/927/102 602/1559/102 601/1198/71 +f 592/540/103 600/1560/103 599/1199/88 +f 590/923/91 597/1561/91 598/1200/72 +f 685/1201/104 692/1562/105 700/1202/105 +f 686/1204/73 685/1563/104 693/1205/104 +f 695/1207/106 687/1564/106 686/1208/73 +f 688/1210/92 687/1565/106 695/1211/106 +f 689/1213/107 688/1566/92 696/1214/92 +f 698/1216/75 690/1567/75 689/1217/107 +f 691/1219/108 690/1568/75 698/1220/75 +f 700/1222/105 692/1569/105 691/1223/108 +f 678/1225/91 675/1229/91 676/1226/72 +f 679/1228/88 674/1231/88 675/1229/91 +f 680/1230/103 673/1233/103 674/1231/88 +f 681/1232/71 672/1268/71 673/1233/103 +f 682/1234/102 671/1238/102 672/1235/71 +f 683/1237/87 670/1240/87 671/1238/102 +f 684/1239/90 669/1241/90 670/1240/87 +f 677/1227/72 676/1226/72 669/1241/90 +f 666/1242/74 658/1570/74 659/1243/109 +f 666/1245/74 665/1269/110 657/1246/110 +f 664/1248/93 656/1571/93 657/1249/110 +f 664/1251/93 663/1267/111 655/1252/111 +f 663/1254/111 662/1266/76 654/1255/76 +f 661/1257/112 653/1572/112 654/1258/76 +f 661/1260/112 668/1573/113 660/1261/113 +f 668/1263/113 667/1574/109 659/1264/109 +f 671/1238/109 670/1240/74 662/1266/74 +f 672/1235/113 671/1238/109 663/1267/109 +f 672/1268/113 664/1248/113 665/1250/112 +f 674/1231/76 673/1233/112 665/1269/112 +f 674/1231/76 666/1242/76 667/1244/111 +f 675/1229/111 667/1574/111 668/1263/93 +f 676/1226/93 668/1573/93 661/1260/110 +f 669/1241/110 661/1257/110 662/1259/74 +f 694/1206/75 693/1205/107 684/1239/107 +f 693/1203/107 700/1202/92 677/1227/92 +f 700/1222/92 699/1224/106 678/1225/106 +f 699/1221/106 698/1220/73 679/1228/73 +f 679/1228/73 698/1216/73 697/1218/104 +f 680/1230/104 697/1215/104 696/1214/105 +f 696/1212/105 695/1211/108 682/1234/108 +f 682/1234/108 695/1207/108 694/1209/75 +f 785/1270/104 777/1575/104 784/1271/105 +f 778/1273/73 777/1576/104 785/1274/104 +f 787/1276/106 779/1577/106 778/1277/73 +f 788/1279/92 780/1578/92 779/1280/106 +f 781/1282/107 780/1579/92 788/1283/92 +f 790/1285/75 782/1580/75 781/1286/107 +f 783/1288/108 782/1581/75 790/1289/75 +f 792/1291/105 784/1582/105 783/1292/108 +f 770/1294/91 767/1298/91 768/1295/72 +f 771/1297/88 766/1300/88 767/1298/91 +f 772/1299/103 765/1302/103 766/1300/88 +f 773/1301/71 764/1583/71 765/1302/103 +f 774/1303/102 763/1307/102 764/1304/71 +f 775/1306/87 762/1309/87 763/1307/102 +f 776/1308/90 761/1310/90 762/1309/87 +f 769/1296/72 768/1295/72 761/1310/90 +f 758/1311/74 750/1584/74 751/1312/109 +f 758/1314/74 757/1585/110 749/1315/110 +f 756/1317/93 748/1586/93 749/1318/110 +f 756/1320/93 755/1335/111 747/1321/111 +f 755/1323/111 754/1587/76 746/1324/76 +f 753/1326/112 745/1588/112 746/1327/76 +f 760/1329/113 752/1589/113 745/1330/112 +f 760/1332/113 759/1590/109 751/1333/109 +f 762/1309/74 754/1587/74 755/1323/109 +f 764/1304/113 763/1307/109 755/1335/109 +f 765/1302/112 764/1583/113 756/1317/113 +f 765/1302/112 757/1585/112 758/1314/76 +f 766/1300/76 758/1311/76 759/1313/111 +f 767/1298/111 759/1590/111 760/1332/93 +f 768/1295/93 760/1329/93 753/1331/110 +f 761/1310/110 753/1326/110 754/1328/74 +f 786/1275/75 785/1274/107 776/1308/107 +f 785/1270/107 792/1272/92 769/1296/92 +f 792/1291/92 791/1293/106 770/1294/106 +f 791/1290/106 790/1289/73 771/1297/73 +f 771/1297/73 790/1285/73 789/1287/104 +f 772/1299/104 789/1284/104 788/1283/105 +f 773/1305/105 788/1279/105 787/1281/108 +f 774/1303/108 787/1276/108 786/1278/75 +f 825/1336/104 832/1591/105 840/1337/105 +f 826/1339/73 825/1592/104 833/1340/104 +f 835/1342/106 827/1593/106 826/1343/73 +f 828/1345/92 827/1594/106 835/1346/106 +f 829/1348/107 828/1595/92 836/1349/92 +f 838/1351/75 830/1596/75 829/1352/107 +f 831/1354/108 830/1597/75 838/1355/75 +f 840/1357/105 832/1598/105 831/1358/108 +f 818/1360/91 815/1364/91 816/1361/72 +f 819/1363/88 814/1366/88 815/1364/91 +f 820/1365/103 813/1368/103 814/1366/88 +f 821/1367/71 812/1599/71 813/1368/103 +f 822/1369/102 811/1373/102 812/1370/71 +f 823/1372/87 810/1375/87 811/1373/102 +f 824/1374/90 809/1376/90 810/1375/87 +f 817/1362/72 816/1361/72 809/1376/90 +f 806/1377/74 798/1600/74 799/1378/109 +f 806/1380/74 805/1601/110 797/1381/110 +f 804/1383/93 796/1602/93 797/1384/110 +f 803/1386/111 795/1603/111 796/1387/93 +f 803/1389/111 802/1401/76 794/1390/76 +f 801/1392/112 793/1604/112 794/1393/76 +f 801/1395/112 808/1402/113 800/1396/113 +f 808/1398/113 807/1605/109 799/1399/109 +f 811/1373/109 810/1375/74 802/1401/74 +f 811/1373/109 803/1386/109 804/1388/113 +f 813/1368/112 812/1599/113 804/1383/113 +f 813/1368/112 805/1601/112 806/1380/76 +f 814/1366/76 806/1377/76 807/1379/111 +f 815/1364/111 807/1605/111 808/1398/93 +f 809/1376/110 816/1361/93 808/1402/93 +f 809/1376/110 801/1392/110 802/1394/74 +f 834/1341/75 833/1340/107 824/1374/107 +f 833/1338/107 840/1337/92 817/1362/92 +f 840/1357/92 839/1359/106 818/1360/106 +f 839/1356/106 838/1355/73 819/1363/73 +f 819/1363/73 838/1351/73 837/1353/104 +f 820/1365/104 837/1350/104 836/1349/105 +f 836/1347/105 835/1346/108 822/1369/108 +f 822/1369/108 835/1342/108 834/1344/75 +f 881/1403/104 873/1606/104 880/1404/105 +f 874/1406/73 873/1607/104 881/1407/104 +f 883/1409/106 875/1608/106 874/1410/73 +f 884/1412/92 876/1609/92 875/1413/106 +f 877/1415/107 876/1610/92 884/1416/92 +f 886/1418/75 878/1611/75 877/1419/107 +f 879/1421/108 878/1612/75 886/1422/75 +f 880/1424/105 879/1613/108 887/1425/108 +f 866/1427/91 863/1431/91 864/1428/72 +f 867/1430/88 862/1433/88 863/1431/91 +f 868/1432/103 861/1435/103 862/1433/88 +f 869/1434/71 860/1614/71 861/1435/103 +f 870/1436/102 859/1440/102 860/1437/71 +f 871/1439/87 858/1442/87 859/1440/102 +f 872/1441/90 857/1443/90 858/1442/87 +f 865/1429/72 864/1428/72 857/1443/90 +f 854/1444/74 846/1615/74 847/1445/109 +f 853/1447/110 845/1616/110 846/1448/74 +f 852/1450/93 844/1617/93 845/1451/110 +f 852/1453/93 851/1468/111 843/1454/111 +f 851/1456/111 850/1618/76 842/1457/76 +f 849/1459/112 841/1619/112 842/1460/76 +f 849/1462/112 856/1469/113 848/1463/113 +f 856/1465/113 855/1620/109 847/1466/109 +f 858/1442/74 850/1618/74 851/1456/109 +f 860/1437/113 859/1440/109 851/1468/109 +f 861/1435/112 860/1614/113 852/1450/113 +f 861/1435/112 853/1447/112 854/1449/76 +f 862/1433/76 854/1444/76 855/1446/111 +f 863/1431/111 855/1620/111 856/1465/93 +f 857/1443/110 864/1428/93 856/1469/93 +f 857/1443/110 849/1459/110 850/1461/74 +f 882/1408/75 881/1407/107 872/1441/107 +f 881/1403/107 888/1405/92 865/1429/92 +f 888/1426/92 887/1425/106 866/1427/106 +f 887/1423/106 886/1422/73 867/1430/73 +f 867/1430/73 886/1418/73 885/1420/104 +f 868/1432/104 885/1417/104 884/1416/105 +f 884/1412/105 883/1414/108 870/1436/108 +f 870/1436/108 883/1409/108 882/1411/75 +f 914/1470/91 911/1474/91 912/1471/72 +f 915/1473/88 910/1476/88 911/1474/91 +f 916/1475/103 909/1478/103 910/1476/88 +f 917/1477/71 908/1621/71 909/1478/103 +f 918/1479/102 907/1483/102 908/1480/71 +f 919/1482/87 906/1485/87 907/1483/102 +f 920/1484/90 905/1486/90 906/1485/87 +f 913/1472/72 912/1471/72 905/1486/90 +f 902/1487/74 894/1622/74 895/1488/109 +f 902/1490/74 901/1512/110 893/1491/110 +f 900/1493/93 892/1623/93 893/1494/110 +f 900/1496/93 899/1624/111 891/1497/111 +f 899/1499/111 898/1511/76 890/1500/76 +f 897/1502/112 889/1625/112 890/1503/76 +f 897/1505/112 904/1513/113 896/1506/113 +f 904/1508/113 903/1626/109 895/1509/109 +f 907/1483/109 906/1485/74 898/1511/74 +f 907/1483/109 899/1624/109 900/1496/113 +f 909/1478/112 908/1621/113 900/1493/113 +f 910/1476/76 909/1478/112 901/1512/112 +f 911/1474/111 910/1476/76 902/1487/76 +f 911/1474/111 903/1626/111 904/1508/93 +f 905/1486/110 912/1471/93 904/1513/93 +f 905/1486/110 897/1502/110 898/1504/74 +f 951/1514/75 967/1521/75 966/1515/94 +f 944/1517/95 960/1523/95 959/1518/76 +f 952/1520/96 968/1527/96 967/1521/75 +f 945/1522/85 961/1529/85 960/1523/95 +f 938/1524/97 954/1531/97 953/1525/89 +f 937/1526/89 953/1525/89 968/1527/96 +f 946/1528/98 962/1533/98 961/1529/85 +f 939/1530/73 955/1535/73 954/1531/97 +f 947/1532/74 963/1537/74 962/1533/98 +f 940/1534/99 956/1539/99 955/1535/73 +f 948/1536/100 964/1541/100 963/1537/74 +f 941/1538/88 957/1627/88 956/1539/99 +f 949/1540/87 965/1545/87 964/1541/100 +f 942/1542/101 958/1546/101 957/1543/88 +f 950/1516/94 966/1515/94 965/1545/87 +f 943/1519/76 959/1518/76 958/1546/101 diff --git a/src/main/resources/assets/hbm/textures/gui/machine/gui_radar_nt.png b/src/main/resources/assets/hbm/textures/gui/machine/gui_radar_nt.png new file mode 100644 index 0000000000000000000000000000000000000000..a6a4d174537830640fd06b4a553852c4a2643991 GIT binary patch literal 21545 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 Rp_}MOTI#xL#i~{z{{^P-o(}*3 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/machines/exposure_chamber.png b/src/main/resources/assets/hbm/textures/models/machines/exposure_chamber.png index ac26fc0796689144dd48af558deddc8cb19c1bea..658fb024b1d57bd2e1e39110a54e026912e434fb 100644 GIT binary patch literal 6849 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 literal 2278 zcmbtWYg7{076#NLD>aqO(lRGaNpUJ6%n7pOI*M8t`AR1%)5*fPB7{?2#Kl|w%6 zYxFkg0RVtC9zVMI0sugyrauB+p{Z9-AsL!Ro3!5p57v|m;ILl-0C0han=3vxUoNgq z6+Sl8{ZKTl`?|LQafufrw<0hc{N4?RBKa+}fAK<*uAT^3Zy6CH$?xr$hD{sFa!&Z~ z@Xzwgu!TjS787YerLR@QY2~ra5y*TSTuNF9YX~k#7fNF)2?q(6bNK9(czO^n z0$0mf#WNp>d0?IM&J?Zn?@2diKc9<0p@R9=P{S;m)&nErzJPL-r0H_EGJji?-l06j z(cBnfbsRj(a_UqNZ+ugW7V^PY-{{Te%z7VQguM9mO1i9hW6lb-2wI zk!1^fgW4iqvsXH*;km*rK}}&d7!$%lsa6w-!`k9IDb&IaONlL`Ft4+hPIwfIXY`fM zihZeeywfsik1Z5)xF;n1Nl||U40^;crX5`WXsQhdaiwI3x_I$%)~=L;xAuDTad%5s z6ohW<494#d@O-hd{?mGl!=*-!|62HaZQ-ddjP*_1St{m>^JuX_>Wj#l_sN4~Fmhc{ zR-y6P0c%M>hHsM3E${YV{JM&a)*9czwVAj+-+Y%s+)ze*%*eYq7AQ*3H z|7->5_)4UueF^7QsG!QJ(vdRJR9b$Oz;5JNpULg3Cj^Pb0yV`c29;9#}qb84jqM zd}QR4WU@USdwW~dd-xDm5&!niyr5O~oo?i}fThG8Dn`8Xmj<$Qt^6^GOz)R?cQ zW`)G|Y2NO0-E%kD!>!IxD+z~g`PK-AyLgMil|*+}5QKNcQPQZVKMcW_`g2OL$RS5u zi}la6IB2&=GFb0j^(wN~SV=)s=WHd~W-Qw|BXYACh7kFB&SnZ9H4S8@I733(+ETH7 zO@XGFV@^DUV~H~HC+|di*LCS+oLxUR?Sn!natKV_vW4ga$avVqF?pwuN>}Y>adrfn zLatj@6_9a2u9uEGB)B+wCD0wBfgxVeOD?6C=)rJ}$+Qw%5c5p*@{E>EL`y5w$+(M$mh4V;@Mb9N{B-@+evD4TPKfBiI|KJt z^>or{A~C)fwFgGJO>mU#O=ES*bZ1+IC}&e*S%# zs#zzMC1zDKZ+WD|DRTNIgQJwwxjiL81$)pc;qlcF4Y*1}a!nor@;kW9T#`>5k6Psx zryO5El`hD!()oweyuJm)L-*_`R3Aa%zT2=!o!pEKTC3VM=X*v9O+GN(|K=C_k##Mw zNQWaL)D}u^Pj3LKfYVXK96WrIBmcDOLO!XTWYd!UY`*Qva=9yjT^pNvd zyg1>_jO_SZ`66?Dn0mg2P^JoP-1`Ncu6$EIkTca8H0Nx8o4&mz z^5mZ8%I``uP-r}9LAgUj@R1?Pqn=24@AdRUuUc(yXzkT+rc|XXB-@(vF(sukewf<+^C8_^MQvQD{7YsP@5$kU-3Hq9k O3%~>8 Date: Mon, 13 Nov 2023 16:08:36 +0100 Subject: [PATCH 379/432] more radar crap --- changelog | 3 + src/main/java/api/hbm/entity/RadarEntry.java | 22 +++ .../inventory/recipes/ReformingRecipes.java | 10 ++ src/main/java/com/hbm/packet/BufPacket.java | 56 ++++++++ src/main/java/com/hbm/packet/NBTPacket.java | 2 + .../java/com/hbm/packet/PacketDispatcher.java | 15 +- .../com/hbm/packet/TEAssemblerPacket.java | 62 -------- .../hbm/packet/TERadarDestructorPacket.java | 62 -------- .../hbm/tileentity/IBufPacketReceiver.java | 9 ++ .../hbm/tileentity/TileEntityMachineBase.java | 34 ++--- .../java/com/hbm/tileentity/TileMappings.java | 3 + .../machine/TileEntityMachineRadarNT.java | 133 ++++++++++++++++-- 12 files changed, 250 insertions(+), 161 deletions(-) create mode 100644 src/main/java/com/hbm/packet/BufPacket.java delete mode 100644 src/main/java/com/hbm/packet/TEAssemblerPacket.java delete mode 100644 src/main/java/com/hbm/packet/TERadarDestructorPacket.java create mode 100644 src/main/java/com/hbm/tileentity/IBufPacketReceiver.java diff --git a/changelog b/changelog index 54fd44341..e03539fb7 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,6 @@ +## Changed +* Light oil and cracked light oil can now be refomred into large quantities of aromatic hydrocarbons a well as some reformate gas + ## Fixed * Fixed thorium bedrock ore using the wrong ore dict key, making it unable to be processed via centrifuge or acidizer * Fixed custom machine NEI slots going out of bounds after the third slot \ No newline at end of file diff --git a/src/main/java/api/hbm/entity/RadarEntry.java b/src/main/java/api/hbm/entity/RadarEntry.java index 540ec925b..56bb41df4 100644 --- a/src/main/java/api/hbm/entity/RadarEntry.java +++ b/src/main/java/api/hbm/entity/RadarEntry.java @@ -1,5 +1,7 @@ package api.hbm.entity; +import cpw.mods.fml.common.network.ByteBufUtils; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; @@ -12,6 +14,8 @@ public class RadarEntry { public int posZ; public int dim; + public RadarEntry() { } //blank ctor for packets + public RadarEntry(String name, int level, int x, int y, int z, int dim) { this.unlocalizedName = name; this.blipLevel = level; @@ -32,4 +36,22 @@ public class RadarEntry { public RadarEntry(EntityPlayer player) { this(player.getDisplayName(), IRadarDetectableNT.PLAYER, (int) Math.floor(player.posX), (int) Math.floor(player.posY), (int) Math.floor(player.posZ), player.dimension); } + + public void fromBytes(ByteBuf buf) { + this.unlocalizedName = ByteBufUtils.readUTF8String(buf); + this.blipLevel = buf.readShort(); + this.posX = buf.readInt(); + this.posY = buf.readInt(); + this.posZ = buf.readInt(); + this.dim = buf.readShort(); + } + + public void toBytes(ByteBuf buf) { + ByteBufUtils.writeUTF8String(buf, this.unlocalizedName); + buf.writeShort(this.blipLevel); + buf.writeInt(this.posX); + buf.writeInt(this.posY); + buf.writeInt(this.posZ); + buf.writeShort(this.dim); + } } diff --git a/src/main/java/com/hbm/inventory/recipes/ReformingRecipes.java b/src/main/java/com/hbm/inventory/recipes/ReformingRecipes.java index 238e5bca9..168fbe902 100644 --- a/src/main/java/com/hbm/inventory/recipes/ReformingRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ReformingRecipes.java @@ -32,6 +32,16 @@ public class ReformingRecipes extends SerializableRecipe { new FluidStack(Fluids.AROMATICS, 10), new FluidStack(Fluids.HYDROGEN, 5) )); + recipes.put(Fluids.LIGHTOIL, new Triplet( + new FluidStack(Fluids.AROMATICS, 50), + new FluidStack(Fluids.REFORMGAS, 10), + new FluidStack(Fluids.HYDROGEN, 15) + )); + recipes.put(Fluids.LIGHTOIL_CRACK, new Triplet( + new FluidStack(Fluids.AROMATICS, 50), + new FluidStack(Fluids.REFORMGAS, 5), + new FluidStack(Fluids.HYDROGEN, 20) + )); recipes.put(Fluids.PETROLEUM, new Triplet( new FluidStack(Fluids.UNSATURATEDS, 85), new FluidStack(Fluids.REFORMGAS, 10), diff --git a/src/main/java/com/hbm/packet/BufPacket.java b/src/main/java/com/hbm/packet/BufPacket.java new file mode 100644 index 000000000..b2a158ef8 --- /dev/null +++ b/src/main/java/com/hbm/packet/BufPacket.java @@ -0,0 +1,56 @@ +package com.hbm.packet; + +import com.hbm.tileentity.IBufPacketReceiver; + +import cpw.mods.fml.common.network.simpleimpl.IMessage; +import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; +import cpw.mods.fml.common.network.simpleimpl.MessageContext; +import io.netty.buffer.ByteBuf; +import net.minecraft.client.Minecraft; +import net.minecraft.tileentity.TileEntity; + +public class BufPacket implements IMessage { + + int x; + int y; + int z; + IBufPacketReceiver rec; + ByteBuf buf; + + public BufPacket() { } + + public BufPacket(int x, int y, int z, IBufPacketReceiver rec) { + this.x = x; + this.y = y; + this.z = z; + this.rec = rec; + } + + @Override + public void fromBytes(ByteBuf buf) { + this.buf = buf; + } + + @Override + public void toBytes(ByteBuf buf) { + this.rec.serialize(buf); + } + + public static class Handler implements IMessageHandler { + + @Override + public IMessage onMessage(BufPacket m, MessageContext ctx) { + + if(Minecraft.getMinecraft().theWorld == null) + return null; + + TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(m.x, m.y, m.z); + + if(te instanceof IBufPacketReceiver) { + ((IBufPacketReceiver) te).deserialize(m.buf); + } + + return null; + } + } +} diff --git a/src/main/java/com/hbm/packet/NBTPacket.java b/src/main/java/com/hbm/packet/NBTPacket.java index 80645347d..3bd5afbcb 100644 --- a/src/main/java/com/hbm/packet/NBTPacket.java +++ b/src/main/java/com/hbm/packet/NBTPacket.java @@ -14,6 +14,8 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.PacketBuffer; import net.minecraft.tileentity.TileEntity; + +@Deprecated // rest in peace sweet little prince public class NBTPacket implements IMessage { PacketBuffer buffer; diff --git a/src/main/java/com/hbm/packet/PacketDispatcher.java b/src/main/java/com/hbm/packet/PacketDispatcher.java index 3d94f2d10..d56e9407a 100644 --- a/src/main/java/com/hbm/packet/PacketDispatcher.java +++ b/src/main/java/com/hbm/packet/PacketDispatcher.java @@ -21,8 +21,6 @@ public class PacketDispatcher { wrapper.registerMessage(TEDrillPacket.Handler.class, TEDrillPacket.class, i++, Side.CLIENT); //Mining drill torque for sounds wrapper.registerMessage(TEDrillSoundPacket.Handler.class, TEDrillSoundPacket.class, i++, Side.CLIENT); - //Assembler cog rotation for rendering - wrapper.registerMessage(TEAssemblerPacket.Handler.class, TEAssemblerPacket.class, i++, Side.CLIENT); //Missile type for rendering wrapper.registerMessage(TEMissilePacket.Handler.class, TEMissilePacket.class, i++, Side.CLIENT); //Fluid packet for GUI @@ -33,16 +31,12 @@ public class PacketDispatcher { wrapper.registerMessage(ItemFolderPacket.Handler.class, ItemFolderPacket.class, i++, Side.SERVER); //Electricity gauge for GUI rendering wrapper.registerMessage(AuxElectricityPacket.Handler.class, AuxElectricityPacket.class, i++, Side.CLIENT); - //Universal package for machine gauges and states - wrapper.registerMessage(AuxGaugePacket.Handler.class, AuxGaugePacket.class, i++, Side.CLIENT); //Siren packet for looped sounds wrapper.registerMessage(TESirenPacket.Handler.class, TESirenPacket.class, i++, Side.CLIENT); //Signals server to change ItemStacks wrapper.registerMessage(ItemDesignatorPacket.Handler.class, ItemDesignatorPacket.class, i++, Side.SERVER); //Siren packet for looped sounds wrapper.registerMessage(TERadarPacket.Handler.class, TERadarPacket.class, i++, Side.CLIENT); - //Siren packet for looped sounds - wrapper.registerMessage(TERadarDestructorPacket.Handler.class, TERadarDestructorPacket.class, i++, Side.CLIENT); //Signals server to perform orbital strike, among other things wrapper.registerMessage(SatLaserPacket.Handler.class, SatLaserPacket.class, i++, Side.SERVER); //Universal package for sending small info packs back to server @@ -57,7 +51,7 @@ public class PacketDispatcher { wrapper.registerMessage(ExtPropPacket.Handler.class, ExtPropPacket.class, i++, Side.CLIENT); //Entity sound packet that keeps client and server separated wrapper.registerMessage(LoopedEntitySoundPacket.Handler.class, LoopedEntitySoundPacket.class, i++, Side.CLIENT); - //Entity sound packet that keeps client and server separated + //Packet for force fields wrapper.registerMessage(TEFFPacket.Handler.class, TEFFPacket.class, i++, Side.CLIENT); //Sends button information for ItemGunBase wrapper.registerMessage(GunButtonPacket.Handler.class, GunButtonPacket.class, i++, Side.SERVER); @@ -67,8 +61,6 @@ public class PacketDispatcher { wrapper.registerMessage(ItemBobmazonPacket.Handler.class, ItemBobmazonPacket.class, i++, Side.SERVER); //Packet to send missile multipart information to TEs wrapper.registerMessage(TEMissileMultipartPacket.Handler.class, TEMissileMultipartPacket.class, i++, Side.CLIENT); - //Packet to send NBT data to tile entities - wrapper.registerMessage(NBTPacket.Handler.class, NBTPacket.class, i++, Side.CLIENT); //Aux Particle Packet, New Technology: like the APP but with NBT wrapper.registerMessage(AuxParticlePacketNT.Handler.class, AuxParticlePacketNT.class, i++, Side.CLIENT); //Signals server to do coord based satellite stuff @@ -97,6 +89,11 @@ public class PacketDispatcher { wrapper.registerMessage(PermaSyncPacket.Handler.class, PermaSyncPacket.class, i++, Side.CLIENT); //Syncs biome information for single positions or entire chunks wrapper.registerMessage(BiomeSyncPacket.Handler.class, BiomeSyncPacket.class, i++, Side.CLIENT); + + //Tile sync + wrapper.registerMessage(AuxGaugePacket.Handler.class, AuxGaugePacket.class, i++, Side.CLIENT); //The horrid one + wrapper.registerMessage(NBTPacket.Handler.class, NBTPacket.class, i++, Side.CLIENT); //The convenient but laggy one + wrapper.registerMessage(BufPacket.Handler.class, BufPacket.class, i++, Side.CLIENT); //The not-so-convenient but not laggy one } } diff --git a/src/main/java/com/hbm/packet/TEAssemblerPacket.java b/src/main/java/com/hbm/packet/TEAssemblerPacket.java deleted file mode 100644 index fddaeedcb..000000000 --- a/src/main/java/com/hbm/packet/TEAssemblerPacket.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.hbm.packet; - -import com.hbm.tileentity.machine.TileEntityMachineAssembler; - -import cpw.mods.fml.common.network.simpleimpl.IMessage; -import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; -import cpw.mods.fml.common.network.simpleimpl.MessageContext; -import io.netty.buffer.ByteBuf; -import net.minecraft.client.Minecraft; -import net.minecraft.tileentity.TileEntity; - -public class TEAssemblerPacket implements IMessage { - - int x; - int y; - int z; - boolean progress; - - public TEAssemblerPacket() - { - - } - - public TEAssemblerPacket(int x, int y, int z, boolean bool) - { - this.x = x; - this.y = y; - this.z = z; - this.progress = bool; - } - - @Override - public void fromBytes(ByteBuf buf) { - x = buf.readInt(); - y = buf.readInt(); - z = buf.readInt(); - progress = buf.readBoolean(); - } - - @Override - public void toBytes(ByteBuf buf) { - buf.writeInt(x); - buf.writeInt(y); - buf.writeInt(z); - buf.writeBoolean(progress); - } - - public static class Handler implements IMessageHandler { - - @Override - public IMessage onMessage(TEAssemblerPacket m, MessageContext ctx) { - TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(m.x, m.y, m.z); - - if (te != null && te instanceof TileEntityMachineAssembler) { - - TileEntityMachineAssembler gen = (TileEntityMachineAssembler) te; - gen.isProgressing = m.progress; - } - return null; - } - } -} diff --git a/src/main/java/com/hbm/packet/TERadarDestructorPacket.java b/src/main/java/com/hbm/packet/TERadarDestructorPacket.java deleted file mode 100644 index 4b5a14763..000000000 --- a/src/main/java/com/hbm/packet/TERadarDestructorPacket.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.hbm.packet; - -import com.hbm.tileentity.machine.TileEntityMachineRadar; - -import cpw.mods.fml.common.network.simpleimpl.IMessage; -import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; -import cpw.mods.fml.common.network.simpleimpl.MessageContext; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import io.netty.buffer.ByteBuf; -import net.minecraft.client.Minecraft; -import net.minecraft.tileentity.TileEntity; - -public class TERadarDestructorPacket implements IMessage { - - int x; - int y; - int z; - - public TERadarDestructorPacket() { - - } - - public TERadarDestructorPacket(int x, int y, int z) { - this.x = x; - this.y = y; - this.z = z; - } - - @Override - public void fromBytes(ByteBuf buf) { - x = buf.readInt(); - y = buf.readInt(); - z = buf.readInt(); - } - - @Override - public void toBytes(ByteBuf buf) { - buf.writeInt(x); - buf.writeInt(y); - buf.writeInt(z); - } - - public static class Handler implements IMessageHandler { - - @Override - @SideOnly(Side.CLIENT) - public IMessage onMessage(TERadarDestructorPacket m, MessageContext ctx) { - TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(m.x, m.y, m.z); - - try { - if (te != null && te instanceof TileEntityMachineRadar) { - - TileEntityMachineRadar radar = (TileEntityMachineRadar) te; - radar.nearbyMissiles.clear(); - } - } catch (Exception x) { - } - return null; - } - } -} diff --git a/src/main/java/com/hbm/tileentity/IBufPacketReceiver.java b/src/main/java/com/hbm/tileentity/IBufPacketReceiver.java new file mode 100644 index 000000000..4250d6edd --- /dev/null +++ b/src/main/java/com/hbm/tileentity/IBufPacketReceiver.java @@ -0,0 +1,9 @@ +package com.hbm.tileentity; + +import io.netty.buffer.ByteBuf; + +public interface IBufPacketReceiver { + + public void serialize(ByteBuf buf); + public void deserialize(ByteBuf buf); +} diff --git a/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java b/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java index 996a216b9..f90a124e2 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java +++ b/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java @@ -2,10 +2,12 @@ package com.hbm.tileentity; import com.hbm.blocks.ModBlocks; import com.hbm.packet.AuxGaugePacket; +import com.hbm.packet.BufPacket; import com.hbm.packet.NBTPacket; import com.hbm.packet.PacketDispatcher; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; @@ -14,7 +16,7 @@ import net.minecraft.nbt.NBTTagList; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidTank; -public abstract class TileEntityMachineBase extends TileEntityLoadedBase implements ISidedInventory, INBTPacketReceiver { +public abstract class TileEntityMachineBase extends TileEntityLoadedBase implements ISidedInventory, INBTPacketReceiver, IBufPacketReceiver { public ItemStack slots[]; @@ -147,23 +149,23 @@ public abstract class TileEntityMachineBase extends TileEntityLoadedBase impleme @Override public abstract void updateEntity(); - @Deprecated - public void updateGauge(int val, int id, int range) { - - if(!worldObj.isRemote) - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, val, id), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range)); + @Deprecated public void updateGauge(int val, int id, int range) { + if(!worldObj.isRemote) PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, val, id), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range)); + } + @Deprecated public void processGauge(int val, int id) { } + + @Deprecated public void networkPack(NBTTagCompound nbt, int range) { + if(!worldObj.isRemote) PacketDispatcher.wrapper.sendToAllAround(new NBTPacket(nbt, xCoord, yCoord, zCoord), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range)); + } + @Deprecated public void networkUnpack(NBTTagCompound nbt) { } + + /** Sends a sync packet that uses ByteBuf for efficient information-cramming */ + public void networkPackNT(int range) { + if(!worldObj.isRemote) PacketDispatcher.wrapper.sendToAllAround(new BufPacket(xCoord, yCoord, zCoord, this), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range)); } - @Deprecated - public void processGauge(int val, int id) { } - - public void networkPack(NBTTagCompound nbt, int range) { - - if(!worldObj.isRemote) - PacketDispatcher.wrapper.sendToAllAround(new NBTPacket(nbt, xCoord, yCoord, zCoord), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range)); - } - - public void networkUnpack(NBTTagCompound nbt) { } + @Override public void serialize(ByteBuf buf) { } + @Override public void deserialize(ByteBuf buf) { } @Deprecated public void handleButtonPacket(int value, int meta) { } diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 4e0500c15..2cf953045 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -231,6 +231,9 @@ public class TileMappings { putMachines(); putPile(); putRBMK(); + + TileEntityMachineRadarNT.registerEntityClasses(); + TileEntityMachineRadarNT.registerConverters(); } private static void putBombs() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java index db8f40435..e9d80203b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java @@ -1,25 +1,33 @@ package com.hbm.tileentity.machine; +import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.function.Function; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; +import com.hbm.extprop.HbmLivingProps; +import com.hbm.lib.Library; +import com.hbm.tileentity.IConfigurableMachine; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.Tuple.Pair; import api.hbm.entity.IRadarDetectable; import api.hbm.entity.IRadarDetectableNT; import api.hbm.entity.RadarEntry; +import io.netty.buffer.ByteBuf; import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.world.WorldServer; /** - * Now with SmЯt™ lag-free entity detection! + * Now with SmЯt™ lag-free entity detection! (patent pending) * @author hbm */ -public class TileEntityMachineRadarNT extends TileEntityMachineBase { +public class TileEntityMachineRadarNT extends TileEntityMachineBase implements IConfigurableMachine { public boolean scanMissiles = true; public boolean scanPlayers = true; @@ -28,6 +36,42 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase { public boolean jammed = false; + public float prevRotation; + public float rotation; + + public long power = 0; + + public static int maxPower = 100_000; + public static int consumption = 500; + public static int radarRange = 1_000; + public static int radarBuffer = 30; + public static int radarAltitude = 55; + + public List entries = new ArrayList(); + + @Override + public String getConfigName() { + return "radar"; + } + + @Override + public void readIfPresent(JsonObject obj) { + maxPower = IConfigurableMachine.grab(obj, "L:powerCap", maxPower); + consumption = IConfigurableMachine.grab(obj, "L:consumption", consumption); + radarRange = IConfigurableMachine.grab(obj, "I:radarRange", radarRange); + radarBuffer = IConfigurableMachine.grab(obj, "I:radarBuffer", radarBuffer); + radarAltitude = IConfigurableMachine.grab(obj, "I:radarAltitude", radarAltitude); + } + + @Override + public void writeConfig(JsonWriter writer) throws IOException { + writer.name("L:powerCap").value(maxPower); + writer.name("L:consumption").value(consumption); + writer.name("I:radarRange").value(radarRange); + writer.name("I:radarBuffer").value(radarBuffer); + writer.name("I:radarAltitude").value(radarAltitude); + } + public TileEntityMachineRadarNT() { super(1); } @@ -40,10 +84,81 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase { @Override public void updateEntity() { + if(!worldObj.isRemote) { + + this.power = Library.chargeTEFromItems(slots, 0, power, maxPower); + this.jammed = false; + allocateTargets(); + + this.networkPackNT(25); + } } - //List of lambdas that are supplied a Pair with the entity and radar in question to generate a RadarEntry - //The converters coming first have the highest priority + protected void allocateTargets() { + this.entries.clear(); + + if(this.yCoord < radarAltitude) return; + if(this.power <= consumption) return; + this.power -= consumption; + + int scan = this.scanRange(); + + for(Entity e : matchingEntities) { + + if(e.dimension == worldObj.provider.dimensionId && Math.abs(e.posX - (xCoord + 0.5)) <= scan && Math.abs(e.posZ - (zCoord + 0.5)) <= scan && e.posY - yCoord < radarBuffer) { + + if(e instanceof EntityLivingBase && HbmLivingProps.getDigamma((EntityLivingBase) e) > 0.001) { + this.jammed = true; + entries.clear(); + return; + } + + for(Function, RadarEntry> converter : converters) { + + RadarEntry entry = converter.apply(new Pair(e, this)); + if(entry != null) { + this.entries.add(entry); + break; + } + } + } + } + } + + protected int scanRange() { + return radarRange; + } + + @Override + public void serialize(ByteBuf buf) { + buf.writeLong(this.power); + buf.writeBoolean(this.scanMissiles); + buf.writeBoolean(this.scanPlayers); + buf.writeBoolean(this.smartMode); + buf.writeBoolean(this.redMode); + buf.writeBoolean(this.jammed); + buf.writeInt(entries.size()); + for(RadarEntry entry : entries) entry.toBytes(buf); + } + + @Override + public void deserialize(ByteBuf buf) { + this.power = buf.readLong(); + this.scanMissiles = buf.readBoolean(); + this.scanPlayers = buf.readBoolean(); + this.smartMode = buf.readBoolean(); + this.redMode = buf.readBoolean(); + this.jammed = buf.readBoolean(); + int count = buf.readInt(); + for(int i = 0; i < count; i++) { + RadarEntry entry = new RadarEntry(); + entry.fromBytes(buf); + this.entries.add(entry); + } + } + + /** List of lambdas that are supplied a Pair with the entity and radar in question to generate a RadarEntry + The converters coming first have the highest priority */ public static List, RadarEntry>> converters = new ArrayList(); public static List classes = new ArrayList(); public static List matchingEntities = new ArrayList(); @@ -87,18 +202,12 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase { }); //IRadarDetectable, Legacy converters.add(x -> { - Entity e = x.getKey(); - if(e instanceof IRadarDetectable) { - return new RadarEntry((IRadarDetectable) e, e); - } + if(x.getKey() instanceof IRadarDetectable) return new RadarEntry((IRadarDetectable) x.getKey(), x.getKey()); return null; }); //Players converters.add(x -> { - Entity e = x.getKey(); - if(e instanceof EntityPlayer) { - return new RadarEntry((EntityPlayer) e); - } + if(x.getKey() instanceof EntityPlayer) return new RadarEntry((EntityPlayer) x.getKey()); return null; }); } From 089b3907083f7078a6dae3e642f5b8bfc321f26d Mon Sep 17 00:00:00 2001 From: HbmMods Date: Tue, 14 Nov 2023 10:19:43 +0100 Subject: [PATCH 380/432] Merge pull request #1242 from JameH2/hbm The Convenience Store --- .../hbm/blocks/machine/BlockFluidBarrel.java | 19 ++++++++- .../blocks/machine/MachineBigAssTank9000.java | 27 ++++++++++++- .../hbm/blocks/machine/MachineFluidTank.java | 31 +++++++++++++- .../com/hbm/blocks/machine/MachineOrbus.java | 27 ++++++++++++- .../hbm/blocks/network/FluidDuctStandard.java | 40 +++++++++++++++++++ 5 files changed, 139 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/hbm/blocks/machine/BlockFluidBarrel.java b/src/main/java/com/hbm/blocks/machine/BlockFluidBarrel.java index 84ad21963..41ab8cba8 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockFluidBarrel.java +++ b/src/main/java/com/hbm/blocks/machine/BlockFluidBarrel.java @@ -7,8 +7,10 @@ import java.util.Random; import com.hbm.blocks.IPersistentInfoProvider; import com.hbm.blocks.ITooltipProvider; import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.main.MainRegistry; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.machine.storage.TileEntityBarrel; @@ -27,6 +29,9 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.stats.StatList; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatComponentTranslation; +import net.minecraft.util.ChatStyle; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; @@ -71,7 +76,19 @@ public class BlockFluidBarrel extends BlockContainer implements ITooltipProvider FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); return true; - } else { + } else if(player.isSneaking()){ + TileEntityBarrel mileEntity = (TileEntityBarrel) world.getTileEntity(x, y, z); + + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof IItemFluidIdentifier) { + FluidType type = ((IItemFluidIdentifier) player.getHeldItem().getItem()).getType(world, x, y, z, player.getHeldItem()); + + mileEntity.tank.setTankType(type); + mileEntity.markDirty(); + player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation(type.getConditionalName())).appendSibling(new ChatComponentText("!"))); + } + return true; + + }else { return false; } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java b/src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java index ec8f81136..e0a494ede 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java +++ b/src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java @@ -6,12 +6,15 @@ import java.util.List; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.IPersistentInfoProvider; import com.hbm.handler.MultiblockHandlerXR; +import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.main.MainRegistry; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.storage.TileEntityMachineBAT9000; +import com.hbm.tileentity.machine.storage.TileEntityMachineOrbus; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.material.Material; @@ -19,6 +22,9 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatComponentTranslation; +import net.minecraft.util.ChatStyle; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -87,7 +93,26 @@ public class MachineBigAssTank9000 extends BlockDummyable implements IPersistent FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, pos[0], pos[1], pos[2]); //we can do this because nobody is stopping me from doing this return true; - } else { + } else if(player.isSneaking()){ + int[] pos = this.findCore(world, x, y, z); + + if(pos == null) + return false; + + TileEntityMachineBAT9000 trialEntity = (TileEntityMachineBAT9000) world.getTileEntity(pos[0], pos[1], pos[2]); + + if(trialEntity != null) { + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof IItemFluidIdentifier) { + FluidType type = ((IItemFluidIdentifier) player.getHeldItem().getItem()).getType(world, pos[0], pos[1], pos[2], player.getHeldItem()); + + trialEntity.tank.setTankType(type); + trialEntity.markDirty(); + player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation(type.getConditionalName())).appendSibling(new ChatComponentText("!"))); + } + } + + return true; + }else { return true; } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineFluidTank.java b/src/main/java/com/hbm/blocks/machine/MachineFluidTank.java index d639eed45..32274741c 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineFluidTank.java +++ b/src/main/java/com/hbm/blocks/machine/MachineFluidTank.java @@ -7,9 +7,11 @@ import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.IPersistentInfoProvider; import com.hbm.entity.projectile.EntityBombletZeta; +import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Flammable; +import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.main.MainRegistry; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.IRepairable; @@ -27,6 +29,9 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatComponentTranslation; +import net.minecraft.util.ChatStyle; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.Explosion; import net.minecraft.world.World; @@ -61,7 +66,8 @@ public class MachineFluidTank extends BlockDummyable implements IPersistentInfoP if(world.isRemote) { return true; - } else if(!player.isSneaking()) { + } + else if(!player.isSneaking()) { int[] pos = this.findCore(world, x, y, z); if(pos == null) @@ -74,9 +80,30 @@ public class MachineFluidTank extends BlockDummyable implements IPersistentInfoP FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, pos[0], pos[1], pos[2]); } return true; - } else { + } + else if(player.isSneaking()){ + int[] pos = this.findCore(world, x, y, z); + + if(pos == null) + return false; + + TileEntityMachineFluidTank tank = (TileEntityMachineFluidTank) world.getTileEntity(pos[0], pos[1], pos[2]); + + if(tank != null) { + if(tank.hasExploded) return false; + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof IItemFluidIdentifier) { + FluidType type = ((IItemFluidIdentifier) player.getHeldItem().getItem()).getType(world, pos[0], pos[1], pos[2], player.getHeldItem()); + + tank.tank.setTankType(type); + tank.markDirty(); + player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation(type.getConditionalName())).appendSibling(new ChatComponentText("!"))); + } + } + return true; + }else { return true; } + } @Override diff --git a/src/main/java/com/hbm/blocks/machine/MachineOrbus.java b/src/main/java/com/hbm/blocks/machine/MachineOrbus.java index 78ffddd31..902c24672 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineOrbus.java +++ b/src/main/java/com/hbm/blocks/machine/MachineOrbus.java @@ -5,11 +5,14 @@ import java.util.List; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.IPersistentInfoProvider; +import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.main.MainRegistry; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.machine.storage.TileEntityMachineFluidTank; import com.hbm.tileentity.machine.storage.TileEntityMachineOrbus; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; @@ -18,6 +21,9 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatComponentTranslation; +import net.minecraft.util.ChatStyle; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -60,7 +66,26 @@ public class MachineOrbus extends BlockDummyable implements IPersistentInfoProvi FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, pos[0], pos[1], pos[2]); return true; - } else { + } else if(player.isSneaking()){ + int[] pos = this.findCore(world, x, y, z); + + if(pos == null) + return false; + + TileEntityMachineOrbus kyleEntity = (TileEntityMachineOrbus) world.getTileEntity(pos[0], pos[1], pos[2]); + + if(kyleEntity != null) { + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof IItemFluidIdentifier) { + FluidType type = ((IItemFluidIdentifier) player.getHeldItem().getItem()).getType(world, pos[0], pos[1], pos[2], player.getHeldItem()); + + kyleEntity.tank.setTankType(type); + kyleEntity.markDirty(); + player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation(type.getConditionalName())).appendSibling(new ChatComponentText("!"))); + } + } + + return true; + } else { return true; } } diff --git a/src/main/java/com/hbm/blocks/network/FluidDuctStandard.java b/src/main/java/com/hbm/blocks/network/FluidDuctStandard.java index 35d197059..7a6ab966b 100644 --- a/src/main/java/com/hbm/blocks/network/FluidDuctStandard.java +++ b/src/main/java/com/hbm/blocks/network/FluidDuctStandard.java @@ -5,8 +5,10 @@ import java.util.List; import com.hbm.blocks.IBlockMulti; import com.hbm.blocks.ILookOverlay; +import com.hbm.blocks.ModBlocks; import com.hbm.blocks.test.TestPipe; import com.hbm.inventory.fluid.FluidType; +import com.hbm.items.ModItems; import com.hbm.lib.Library; import com.hbm.lib.RefStrings; import com.hbm.tileentity.network.TileEntityPipeBaseNT; @@ -14,15 +16,18 @@ import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.IIcon; +import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; @@ -70,7 +75,42 @@ public class FluidDuctStandard extends FluidDuctBase implements IBlockMulti, ILo public int damageDropped(int meta) { return rectify(meta); } + /* + @Override + @SideOnly(Side.CLIENT) + public Item getItem(World world, int x, int y, int z) { + Block block = world.getBlock(x, y, z); // Get the block at the specified coordinates + int blockMetadata = world.getBlockMetadata(x, y, z); // Get the metadata of the block at the specified coordinates + TileEntity tileEntity = world.getTileEntity(x, y, z); // Get the tile entity at the specified coordinates + TileEntityPipeBaseNT pipe = (TileEntityPipeBaseNT) tileEntity; + + // Get the metadata (FluidType) from the pipe + FluidType fluidType = pipe.getType(); + int metadata = fluidType.getID(); + + // Create an ItemStack with the item and metadata + ItemStack itemStack = new ItemStack(ModItems.fluid_duct, 1, metadata); + System.out.println(metadata); + System.out.println(itemStack); + + return new ItemStack(ModItems.fluid_duct, 1, metadata).getItem(); + } + */ + + @Override + @SideOnly(Side.CLIENT) + public ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z, EntityPlayer player) { + TileEntity tileEntity = world.getTileEntity(x, y, z); + if (tileEntity instanceof TileEntityPipeBaseNT) { + TileEntityPipeBaseNT pipe = (TileEntityPipeBaseNT) tileEntity; + FluidType fluidType = pipe.getType(); + int retadata = fluidType.getID(); //florf + + return new ItemStack(ModItems.fluid_duct, 1, retadata); + } + return super.getPickBlock(target, world, x, y, z, player); + } @Override public int getRenderType() { return TestPipe.renderID; From c47e96c3cdb994ac8eaf77d528f51a3decc07105 Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 14 Nov 2023 15:22:35 +0100 Subject: [PATCH 381/432] even more radar stuff --- .../hbm/inventory/gui/GUIMachineRadarNT.java | 63 ++++++++++++++++++ .../machine/TileEntityCustomMachine.java | 14 ++-- .../machine/TileEntityMachineRadarNT.java | 52 ++++++++++++++- .../hbm/textures/gui/machine/gui_radar_nt.png | Bin 21545 -> 21661 bytes 4 files changed, 120 insertions(+), 9 deletions(-) create mode 100644 src/main/java/com/hbm/inventory/gui/GUIMachineRadarNT.java diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNT.java b/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNT.java new file mode 100644 index 000000000..3c91249bf --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNT.java @@ -0,0 +1,63 @@ +package com.hbm.inventory.gui; + +import java.util.Arrays; + +import org.lwjgl.opengl.GL11; + +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.machine.TileEntityMachineRadarNT; +import com.hbm.util.I18nUtil; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.util.ResourceLocation; + +public class GUIMachineRadarNT extends GuiScreen { + + protected static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/machine/gui_radar_nt.png"); + + protected TileEntityMachineRadarNT radar; + protected int xSize = 216; + protected int ySize = 234; + protected int guiLeft; + protected int guiTop; + + public GUIMachineRadarNT(TileEntityMachineRadarNT tile) { + this.radar = tile; + } + + @Override + public void initGui() { + super.initGui(); + this.guiLeft = (this.width - this.xSize) / 2; + this.guiTop = (this.height - this.ySize) / 2; + } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + this.drawDefaultBackground(); + this.drawGuiContainerBackgroundLayer(f, mouseX, mouseY); + GL11.glDisable(GL11.GL_LIGHTING); + this.drawGuiContainerForegroundLayer(mouseX, mouseY); + GL11.glEnable(GL11.GL_LIGHTING); + } + + private void drawGuiContainerForegroundLayer(int x, int y) { + if(checkClick(x, y, -10, 88, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.detectMissiles")), x, y); + if(checkClick(x, y, -10, 98, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.detectShells")), x, y); + if(checkClick(x, y, -10, 108, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.detectPlayers")), x, y); + if(checkClick(x, y, -10, 118, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.smartMode")), x, y); + if(checkClick(x, y, -10, 128, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.redMode")), x, y); + if(checkClick(x, y, -10, 138, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.showMap")), x, y); + } + + private void drawGuiContainerBackgroundLayer(float f, int mouseX, int mouseY) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + } + + protected boolean checkClick(int x, int y, int left, int top, int sizeX, int sizeY) { + return guiLeft + left <= x && guiLeft + left + sizeX > x && guiTop + top < y && guiTop + top + sizeY >= y; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java index 4803e6e38..9c906623d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java @@ -185,7 +185,7 @@ public class TileEntityCustomMachine extends TileEntityMachineBase implements IF /** Only accepts inputs in a fixed order, saves a ton of performance because there's no permutations to check for */ public CustomMachineRecipe getMatchingRecipe() { - List recipes = CustomMachineRecipes.recipes.get(this.machineType); + List recipes = CustomMachineRecipes.recipes.get(this.config.recipeKey); if(recipes == null || recipes.isEmpty()) return null; outer: @@ -391,11 +391,11 @@ public class TileEntityCustomMachine extends TileEntityMachineBase implements IF for(int i = 0; i < outputTanks.length; i++) outputTanks[i].readFromNBT(nbt, "o" + i); this.matcher.readFromNBT(nbt); - } - - int index = nbt.getInteger("cachedIndex"); - if(index != -1) { - this.cachedRecipe = CustomMachineRecipes.recipes.get(this.machineType).get(index); + + int index = nbt.getInteger("cachedIndex"); + if(index != -1) { + this.cachedRecipe = CustomMachineRecipes.recipes.get(this.config.recipeKey).get(index); + } } } @@ -417,7 +417,7 @@ public class TileEntityCustomMachine extends TileEntityMachineBase implements IF this.matcher.writeToNBT(nbt); if(this.cachedRecipe != null) { - int index = CustomMachineRecipes.recipes.get(this.machineType).indexOf(this.cachedRecipe); + int index = CustomMachineRecipes.recipes.get(this.config.recipeKey).indexOf(this.cachedRecipe); nbt.setInteger("cachedIndex", index); } else { nbt.setInteger("cachedIndex", -1); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java index e9d80203b..d5911b2a2 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java @@ -8,31 +8,41 @@ import java.util.function.Function; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; import com.hbm.extprop.HbmLivingProps; +import com.hbm.inventory.gui.GUIMachineRadarNT; import com.hbm.lib.Library; import com.hbm.tileentity.IConfigurableMachine; +import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.Tuple.Pair; import api.hbm.entity.IRadarDetectable; import api.hbm.entity.IRadarDetectableNT; import api.hbm.entity.RadarEntry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import io.netty.buffer.ByteBuf; import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; import net.minecraft.world.WorldServer; /** * Now with SmЯt™ lag-free entity detection! (patent pending) * @author hbm */ -public class TileEntityMachineRadarNT extends TileEntityMachineBase implements IConfigurableMachine { - +public class TileEntityMachineRadarNT extends TileEntityMachineBase implements IGUIProvider, IConfigurableMachine { + public boolean scanMissiles = true; + public boolean scanShells = true; public boolean scanPlayers = true; public boolean smartMode = true; public boolean redMode = true; + public boolean showMap = false; public boolean jammed = false; @@ -133,9 +143,11 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I public void serialize(ByteBuf buf) { buf.writeLong(this.power); buf.writeBoolean(this.scanMissiles); + buf.writeBoolean(this.scanShells); buf.writeBoolean(this.scanPlayers); buf.writeBoolean(this.smartMode); buf.writeBoolean(this.redMode); + buf.writeBoolean(this.showMap); buf.writeBoolean(this.jammed); buf.writeInt(entries.size()); for(RadarEntry entry : entries) entry.toBytes(buf); @@ -145,9 +157,11 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I public void deserialize(ByteBuf buf) { this.power = buf.readLong(); this.scanMissiles = buf.readBoolean(); + this.scanShells = buf.readBoolean(); this.scanPlayers = buf.readBoolean(); this.smartMode = buf.readBoolean(); this.redMode = buf.readBoolean(); + this.showMap = buf.readBoolean(); this.jammed = buf.readBoolean(); int count = buf.readInt(); for(int i = 0; i < count; i++) { @@ -157,6 +171,40 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I } } + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 1, + yCoord, + zCoord - 1, + xCoord + 2, + yCoord + 3, + zCoord + 2 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() + { + return 65536.0D; + } + + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return null; } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIMachineRadarNT(this); + } + /** List of lambdas that are supplied a Pair with the entity and radar in question to generate a RadarEntry The converters coming first have the highest priority */ public static List, RadarEntry>> converters = new ArrayList(); diff --git a/src/main/resources/assets/hbm/textures/gui/machine/gui_radar_nt.png b/src/main/resources/assets/hbm/textures/gui/machine/gui_radar_nt.png index a6a4d174537830640fd06b4a553852c4a2643991..690e1b5f5fa1706b4b2f8aa6a7daad7435912487 100644 GIT binary patch literal 21661 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 F?0>iMUBUnW literal 21545 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 Rp_}MOTI#xL#i~{z{{^P-o(}*3 From 45fe9a81b2af77ba9c531719180b1def83206033 Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 15 Nov 2023 16:09:18 +0100 Subject: [PATCH 382/432] MINE THE NITRA FOR AMMO --- changelog | 10 +++++++- .../com/hbm/crafting/ConsumableRecipes.java | 1 + .../java/com/hbm/crafting/MineralRecipes.java | 2 ++ .../java/com/hbm/crafting/WeaponRecipes.java | 14 +++++++++++ .../java/com/hbm/handler/WeaponAbility.java | 23 +----------------- .../com/hbm/inventory/OreDictManager.java | 2 +- src/main/java/com/hbm/items/ModItems.java | 6 +++++ src/main/resources/assets/hbm/lang/de_DE.lang | 2 ++ src/main/resources/assets/hbm/lang/en_US.lang | 2 ++ .../assets/hbm/textures/gui/gui_inserter.png | Bin 2245 -> 0 bytes .../assets/hbm/textures/gui/gui_turbofan.png | Bin 2642 -> 0 bytes .../hbm/textures/gui/machine/gui_pattern.png | Bin 3347 -> 0 bytes .../assets/hbm/textures/items/nitra.png | Bin 0 -> 206 bytes .../assets/hbm/textures/items/nitra_small.png | Bin 0 -> 155 bytes .../assets/hbm/textures/items/pattern.png | Bin 179 -> 0 bytes .../hbm/textures/items/pattern_drawn.png | Bin 208 -> 0 bytes 16 files changed, 38 insertions(+), 24 deletions(-) delete mode 100644 src/main/resources/assets/hbm/textures/gui/gui_inserter.png delete mode 100644 src/main/resources/assets/hbm/textures/gui/gui_turbofan.png delete mode 100644 src/main/resources/assets/hbm/textures/gui/machine/gui_pattern.png create mode 100644 src/main/resources/assets/hbm/textures/items/nitra.png create mode 100644 src/main/resources/assets/hbm/textures/items/nitra_small.png delete mode 100644 src/main/resources/assets/hbm/textures/items/pattern.png delete mode 100644 src/main/resources/assets/hbm/textures/items/pattern_drawn.png diff --git a/changelog b/changelog index e03539fb7..ec78b2193 100644 --- a/changelog +++ b/changelog @@ -1,6 +1,14 @@ +## Added +* Nitra + * Dropped by the painsaw ability when killing a mob + * Can be used to quickly craft standard ammo types in the 2x2 crafting grid + * Can also refill empty syringes, making stimpaks + ## Changed * Light oil and cracked light oil can now be refomred into large quantities of aromatic hydrocarbons a well as some reformate gas +* The painsaw ability no longer drops ammo and syringes, instead it drops nitra ## Fixed * Fixed thorium bedrock ore using the wrong ore dict key, making it unable to be processed via centrifuge or acidizer -* Fixed custom machine NEI slots going out of bounds after the third slot \ No newline at end of file +* Fixed custom machine NEI slots going out of bounds after the third slot +* Fixed bismuth billets not being oredicted, making BFB PWR rods uncraftable \ No newline at end of file diff --git a/src/main/java/com/hbm/crafting/ConsumableRecipes.java b/src/main/java/com/hbm/crafting/ConsumableRecipes.java index 971b29fa1..57c95d9b7 100644 --- a/src/main/java/com/hbm/crafting/ConsumableRecipes.java +++ b/src/main/java/com/hbm/crafting/ConsumableRecipes.java @@ -105,6 +105,7 @@ public class ConsumableRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.syringe_awesome, 1), new Object[] { "SNS", "PCP", "SNS", 'C', ModItems.syringe_empty, 'S', S.dust(), 'P', PU239.nugget(), 'N', PU238.nugget() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.syringe_metal_empty, 6), new Object[] { "P", "C", "B", 'B', Blocks.iron_bars, 'C', ModItems.rod_empty, 'P', IRON.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.syringe_metal_stimpak, 1), new Object[] { " N ", "NSN", " N ", 'N', Items.nether_wart, 'S', ModItems.syringe_metal_empty }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.syringe_metal_stimpak, 1), new Object[] { ModItems.nitra_small, ModItems.nitra_small, ModItems.nitra_small, ModItems.syringe_metal_empty }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.syringe_metal_medx, 1), new Object[] { " N ", "NSN", " N ", 'N', Items.quartz, 'S', ModItems.syringe_metal_empty }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.syringe_metal_psycho, 1), new Object[] { " N ", "NSN", " N ", 'N', Items.glowstone_dust, 'S', ModItems.syringe_metal_empty }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.syringe_metal_super, 1), new Object[] { " N ", "PSP", "L L", 'N', ModItems.bottle_nuka, 'P', STEEL.plate(), 'S', ModItems.syringe_metal_stimpak, 'L', Items.leather }); diff --git a/src/main/java/com/hbm/crafting/MineralRecipes.java b/src/main/java/com/hbm/crafting/MineralRecipes.java index 45e58b454..49b00e0d4 100644 --- a/src/main/java/com/hbm/crafting/MineralRecipes.java +++ b/src/main/java/com/hbm/crafting/MineralRecipes.java @@ -418,6 +418,8 @@ public class MineralRecipes { GameRegistry.addRecipe(new ItemStack(ModItems.ingot_mercury, 8), new Object[] { "#", '#', ModItems.bottle_mercury }); GameRegistry.addRecipe(new ItemStack(ModItems.egg_balefire, 1), new Object[] { "###", "###", "###", '#', ModItems.egg_balefire_shard }); GameRegistry.addRecipe(new ItemStack(ModItems.egg_balefire_shard, 9), new Object[] { "#", '#', ModItems.egg_balefire }); + GameRegistry.addRecipe(new ItemStack(ModItems.nitra, 1), new Object[] { "##", "##", '#', ModItems.nitra_small }); + GameRegistry.addRecipe(new ItemStack(ModItems.nitra_small, 9), new Object[] { "#", '#', ModItems.nitra }); add1To9Pair(ModItems.powder_paleogenite, ModItems.powder_paleogenite_tiny); add1To9Pair(ModItems.ingot_osmiridium, ModItems.nugget_osmiridium); diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index 003f4c7e3..60c6823c0 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -166,6 +166,20 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_coilgun, 16, 0), new Object[] { " T ", "TST", " T ", 'T', W.ingot(), 'S', BIGMT.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_coilgun, 16, 1), new Object[] { " T ", "TST", " T ", 'T', FERRO.ingot(), 'S', BIGMT.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_coilgun, 16, 2), new Object[] { " T ", "TST", " T ", 'T', RUBBER.ingot(), 'S', ANY_PLASTIC.ingot() }); + + //TODO: somehow add more variance, 4 gauge is still missing + CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_22lr, 16), new Object[] { ModItems.nitra_small }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_9mm, 16), new Object[] { ModItems.nitra_small, ModItems.nitra_small }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_5mm, 16), new Object[] { ModItems.nitra_small, ModItems.nitra_small, ModItems.nitra_small }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_357, 16, Ammo357Magnum.LEAD.ordinal()), new Object[] { ModItems.nitra, ModItems.nitra_small }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_44, 16), new Object[] { ModItems.nitra, ModItems.nitra_small, ModItems.nitra_small }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_45, 16), new Object[] { ModItems.nitra, ModItems.nitra_small, ModItems.nitra_small, ModItems.nitra_small }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_50ae, 16), new Object[] { ModItems.nitra, ModItems.nitra }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_556, 16), new Object[] { ModItems.nitra, ModItems.nitra, ModItems.nitra_small }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_20gauge, 16), new Object[] { ModItems.nitra, ModItems.nitra, ModItems.nitra_small, ModItems.nitra_small }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_12gauge, 16), new Object[] { ModItems.nitra, ModItems.nitra, ModItems.nitra }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_762, 16), new Object[] { ModItems.nitra, ModItems.nitra, ModItems.nitra, ModItems.nitra_small }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_50bmg, 16), new Object[] { ModItems.nitra, ModItems.nitra, ModItems.nitra, ModItems.nitra }); //Ammo assemblies CraftingManager.addRecipeAuto(new ItemStack(ModItems.pellet_flechette, 1), new Object[] { " L ", " L ", "LLL", 'L', PB.nugget() }); diff --git a/src/main/java/com/hbm/handler/WeaponAbility.java b/src/main/java/com/hbm/handler/WeaponAbility.java index 919b149a2..11e2621b3 100644 --- a/src/main/java/com/hbm/handler/WeaponAbility.java +++ b/src/main/java/com/hbm/handler/WeaponAbility.java @@ -2,14 +2,12 @@ package com.hbm.handler; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockBobble.BobbleType; -import com.hbm.items.ItemAmmoEnums.*; import com.hbm.items.ModItems; import com.hbm.items.tool.IItemAbility; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; import com.hbm.potion.HbmPotion; import com.hbm.util.ContaminationUtil; -import com.hbm.util.WeightedRandomObject; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; @@ -36,7 +34,6 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; import net.minecraft.util.DamageSource; -import net.minecraft.util.WeightedRandom; import net.minecraft.world.World; public abstract class WeaponAbility { @@ -208,28 +205,10 @@ public abstract class WeaponAbility { if(living.getHealth() <= 0.0F) { - WeightedRandomObject[] ammo = new WeightedRandomObject[] { - new WeightedRandomObject(ModItems.ammo_12gauge.stackFromEnum(Ammo12Gauge.STOCK), 10), - new WeightedRandomObject(ModItems.ammo_12gauge.stackFromEnum(Ammo12Gauge.SHRAPNEL), 5), - new WeightedRandomObject(ModItems.ammo_20gauge.stackFromEnum(Ammo20Gauge.STOCK), 10), - new WeightedRandomObject(ModItems.ammo_20gauge.stackFromEnum(Ammo20Gauge.FLECHETTE), 5), - new WeightedRandomObject(ModItems.ammo_20gauge.stackFromEnum(Ammo20Gauge.SLUG), 5), - new WeightedRandomObject(ModItems.ammo_9mm.stackFromEnum(Ammo9mm.STOCK), 10), - new WeightedRandomObject(ModItems.ammo_5mm.stackFromEnum(Ammo5mm.STOCK), 10), - new WeightedRandomObject(ModItems.ammo_556.stackFromEnum(Ammo556mm.STOCK), 10), - new WeightedRandomObject(ModItems.ammo_556.stackFromEnum(Ammo556mm.FLECHETTE), 10), - new WeightedRandomObject(ModItems.ammo_50bmg.stackFromEnum(Ammo50BMG.STOCK), 3), - new WeightedRandomObject(ModItems.ammo_grenade.stackFromEnum(AmmoGrenade.STOCK), 3), - new WeightedRandomObject(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.STOCK), 1), - new WeightedRandomObject(ModItems.ammo_rocket.stackFromEnum(AmmoRocket.GLARE), 1), - new WeightedRandomObject(new ItemStack(ModItems.syringe_metal_stimpak), 20), - }; - int count = Math.min((int)Math.ceil(living.getMaxHealth() / divider), 250); //safeguard to prevent funnies from bosses with obscene health for(int i = 0; i < count; i++) { - - living.entityDropItem(((WeightedRandomObject)WeightedRandom.getRandomItem(living.getRNG(), ammo)).asStack(), 1); + living.entityDropItem(new ItemStack(ModItems.nitra_small), 1); world.spawnEntityInWorld(new EntityXPOrb(world, living.posX, living.posY, living.posZ, 1)); } diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index 4ac445aa0..f195610ed 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -356,7 +356,7 @@ public class OreDictManager { TCALLOY .ingot(ingot_tcalloy) .dust(powder_tcalloy) .block(block_tcalloy); CDALLOY .ingot(ingot_cdalloy) .block(block_cdalloy); PB .nugget(nugget_lead) .ingot(ingot_lead) .dust(powder_lead) .plate(plate_lead) .block(block_lead) .ore(ore_lead, ore_meteor_lead); - BI .nugget(nugget_bismuth) .ingot(ingot_bismuth) .dust(powder_bismuth); + BI .nugget(nugget_bismuth) .billet(billet_bismuth) .ingot(ingot_bismuth) .dust(powder_bismuth); AS .nugget(nugget_arsenic) .ingot(ingot_arsenic); CA .ingot(ingot_calcium) .dust(powder_calcium); CD .ingot(ingot_cadmium) .dust(powder_cadmium) .block(block_cadmium); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 4609fed6d..21b01c816 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -103,6 +103,8 @@ public class ModItems { public static Item ingot_titanium; public static Item ingot_cobalt; public static Item sulfur; + public static Item nitra; + public static Item nitra_small; public static Item coke; public static Item lignite; @@ -2524,6 +2526,8 @@ public class ModItems { ingot_firebrick = new Item().setUnlocalizedName("ingot_firebrick").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_firebrick"); ingot_smore = new ItemFood(10, 20F, false).setUnlocalizedName("ingot_smore").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_smore"); sulfur = new Item().setUnlocalizedName("sulfur").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":sulfur"); + nitra = new Item().setUnlocalizedName("nitra").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nitra"); + nitra_small = new Item().setUnlocalizedName("nitra_small").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nitra_small"); ingot_uranium_fuel = new Item().setUnlocalizedName("ingot_uranium_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_uranium_fuel"); ingot_plutonium_fuel = new Item().setUnlocalizedName("ingot_plutonium_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_plutonium_fuel"); @@ -5721,6 +5725,8 @@ public class ModItems { GameRegistry.registerItem(briquette, briquette.getUnlocalizedName()); GameRegistry.registerItem(sulfur, sulfur.getUnlocalizedName()); GameRegistry.registerItem(niter, niter.getUnlocalizedName()); + GameRegistry.registerItem(nitra, nitra.getUnlocalizedName()); + GameRegistry.registerItem(nitra_small, nitra_small.getUnlocalizedName()); GameRegistry.registerItem(fluorite, fluorite.getUnlocalizedName()); GameRegistry.registerItem(powder_coal, powder_coal.getUnlocalizedName()); GameRegistry.registerItem(powder_coal_tiny, powder_coal_tiny.getUnlocalizedName()); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 770d3d540..56baffc69 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -2464,6 +2464,8 @@ item.n2_charge.name=Große Sprengladung item.neutrino_lens.name=Neutrinolinse item.neutron_reflector.name=Neutronenreflektor item.niter.name=Salpeter +item.nitra.name=Nitra +item.nitra_small.name=Kleines Stück Nitra item.no9.name=Bergbauhelm item.nossy_hat.name=Fabulöser Hut item.nothing.name=Leer diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 19cb1bd86..deb978aef 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -3214,6 +3214,8 @@ item.night_vision.name=Night Vision Goggles item.night_vision.description.item=Grants you night vision (requires full electric set) item.night_vision.description.in_armor=%s (grants night vision) item.niter.name=Niter +item.nitra.name=Nitra +item.nitra_small.name=Small Pile of Nitra item.no9.name=Mining Helmet item.nossy_hat.name=Fabulous Hat item.nothing.name=Nothing diff --git a/src/main/resources/assets/hbm/textures/gui/gui_inserter.png b/src/main/resources/assets/hbm/textures/gui/gui_inserter.png deleted file mode 100644 index a38ebf127ee093cd1741e9d8a9b936eae297ec68..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2245 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 A&;S4c literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/pattern.png b/src/main/resources/assets/hbm/textures/items/pattern.png deleted file mode 100644 index 9a263db7ba70834dcabdf1aad2651493a0f05b1f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 179 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfYT%Pc~mg^g@2i=Vf0#T@;iU z86MSWEZuS5r6ub1jmH-ktXj^H7T08Ee(56r52l2djDn3b^BLWy27Be^%}_Vy-uIgG Z?W7o~2i;bC{s3)d@O1TaS?83{1OVR+Jb(ZI diff --git a/src/main/resources/assets/hbm/textures/items/pattern_drawn.png b/src/main/resources/assets/hbm/textures/items/pattern_drawn.png deleted file mode 100644 index ca8a8505a5f013dd950fa67eb5daf7ddb0bc11e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 208 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf4cQK=PU2A8&2gae?JbpTDECxlqH*SEiy0Yxx=1x`;lQ_2U)St>8O# z4>gx?W!T1uI=IY`eLZLQCynUrV9P|?Rso;=ueoz`gB4>=1$Q3@I*Gy4)z4*}Q$iB} D=F3T3 From 1bc94c989bcf379e1f4e0797ce66999db018b555 Mon Sep 17 00:00:00 2001 From: Boblet Date: Thu, 16 Nov 2023 15:01:56 +0100 Subject: [PATCH 383/432] finally checking this off my bucket list --- changelog | 5 ++ .../java/com/hbm/crafting/ArmorRecipes.java | 22 ++++---- .../com/hbm/crafting/ConsumableRecipes.java | 24 ++++----- .../com/hbm/crafting/SmeltingRecipes.java | 1 + .../java/com/hbm/crafting/ToolRecipes.java | 4 +- .../java/com/hbm/crafting/WeaponRecipes.java | 48 +++++++++--------- .../com/hbm/inventory/OreDictManager.java | 5 ++ .../inventory/recipes/AssemblerRecipes.java | 30 +++++------ .../hbm/inventory/recipes/MagicRecipes.java | 2 +- src/main/java/com/hbm/items/ModItems.java | 8 ++- .../java/com/hbm/main/CraftingManager.java | 21 ++++---- src/main/resources/assets/hbm/lang/de_DE.lang | 2 + src/main/resources/assets/hbm/lang/en_US.lang | 2 + .../assets/hbm/textures/items/ball_resin.png | Bin 0 -> 255 bytes .../hbm/textures/items/ingot_biorubber.png | Bin 0 -> 259 bytes 15 files changed, 99 insertions(+), 75 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/items/ball_resin.png create mode 100644 src/main/resources/assets/hbm/textures/items/ingot_biorubber.png diff --git a/changelog b/changelog index ec78b2193..9bbc6c83e 100644 --- a/changelog +++ b/changelog @@ -3,6 +3,11 @@ * Dropped by the painsaw ability when killing a mob * Can be used to quickly craft standard ammo types in the 2x2 crafting grid * Can also refill empty syringes, making stimpaks +* Latex + * Made from crafting dandelions into dandelion milk, then smelting it + * Replaces insulator in many recipes where electrical insulation that is potentially made from brick doesn't make sense, like rubber gas masks, jackets, tools and so on + * Latex is interchangable with rubber in all recipes where it's used, but not the other way round + * The old insulator is now mainly used for electrical and heat insulation as well as PWR rods ## Changed * Light oil and cracked light oil can now be refomred into large quantities of aromatic hydrocarbons a well as some reformate gas diff --git a/src/main/java/com/hbm/crafting/ArmorRecipes.java b/src/main/java/com/hbm/crafting/ArmorRecipes.java index c4ff68c93..33d455ca6 100644 --- a/src/main/java/com/hbm/crafting/ArmorRecipes.java +++ b/src/main/java/com/hbm/crafting/ArmorRecipes.java @@ -47,15 +47,15 @@ public class ArmorRecipes { addHelmet( ModItems.rag, ModItems.robes_helmet); addChest( ModItems.rag, ModItems.robes_plate); addLegs( ModItems.rag, ModItems.robes_legs); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.robes_boots, 1), new Object[] { "R R", "P P", 'R', ModItems.rag, 'P', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.robes_boots, 1), new Object[] { "R R", "P P", 'R', ModItems.rag, 'P', ANY_RUBBER.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.cobalt_helmet, 1), new Object[] {"ECE", 'E', CO.billet(), 'C', ModItems.steel_helmet }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.cobalt_plate, 1), new Object[] { " E ", "ECE"," E ", 'E', CO.billet(), 'C', ModItems.steel_plate }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.cobalt_legs, 1), new Object[] { "ECE", "E E", 'E', CO.billet(), 'C', ModItems.steel_legs }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.cobalt_boots, 1), new Object[] {"ECE", 'E', CO.billet(), 'C', ModItems.steel_boots }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.security_helmet, 1), new Object[] { "SSS", "IGI", 'S', STEEL.plate(), 'I', ModItems.plate_polymer, 'G', KEY_ANYPANE }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.security_helmet, 1), new Object[] { "SSS", "IGI", 'S', STEEL.plate(), 'I', ANY_RUBBER.ingot(), 'G', KEY_ANYPANE }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.security_plate, 1), new Object[] { "KWK", "IKI", "WKW", 'K', ModItems.plate_kevlar, 'I', ANY_PLASTIC.ingot(), 'W', new ItemStack(Blocks.wool, 1, OreDictionary.WILDCARD_VALUE) }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.security_legs, 1), new Object[] { "IWI", "K K", "W W", 'K', ModItems.plate_kevlar, 'I', ANY_PLASTIC.ingot(), 'W', new ItemStack(Blocks.wool, 1, OreDictionary.WILDCARD_VALUE) }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.security_boots, 1), new Object[] { "P P", "I I", 'P', STEEL.plate(), 'I', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.security_boots, 1), new Object[] { "P P", "I I", 'P', STEEL.plate(), 'I', ANY_RUBBER.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.dnt_helmet, 1), new Object[] { "EEE", "EE ", 'E', DNT.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.dnt_plate, 1), new Object[] { "EE ", "EEE", "EEE", 'E', DNT.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.dnt_legs, 1), new Object[] { "EE ", "EEE", "E E", 'E', DNT.ingot() }); @@ -63,7 +63,7 @@ public class ArmorRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.zirconium_legs, 1), new Object[] { "EEE", "E E", "E E", 'E', ZR.ingot() }); //Power armor - CraftingManager.addRecipeAuto(new ItemStack(ModItems.t45_helmet, 1), new Object[] { "PPC", "PBP", "IXI", 'P', ModItems.plate_armor_titanium, 'C', ModItems.circuit_targeting_tier3, 'I', ModItems.plate_polymer, 'X', ModItems.gas_mask_m65, 'B', ModItems.titanium_helmet }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.t45_helmet, 1), new Object[] { "PPC", "PBP", "IXI", 'P', ModItems.plate_armor_titanium, 'C', ModItems.circuit_targeting_tier3, 'I', ANY_RUBBER.ingot(), 'X', ModItems.gas_mask_m65, 'B', ModItems.titanium_helmet }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.t45_plate, 1), new Object[] { "MPM", "TBT", "PPP", 'M', ModItems.motor, 'P', ModItems.plate_armor_titanium, 'T', ModItems.gas_empty, 'B', ModItems.titanium_plate }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.t45_legs, 1), new Object[] { "MPM", "PBP", "P P", 'M', ModItems.motor, 'P', ModItems.plate_armor_titanium, 'B', ModItems.titanium_legs }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.t45_boots, 1), new Object[] { "P P", "PBP", 'P', ModItems.plate_armor_titanium, 'B', ModItems.titanium_boots }); @@ -153,19 +153,19 @@ public class ArmorRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.paa_boots, 1), new Object[] { "E E", "N N", 'E', ModItems.plate_paa, 'N', OreDictManager.getReflector() }); //Liquidator Suit - CraftingManager.addRecipeAuto(new ItemStack(ModItems.liquidator_helmet, 1), new Object[] { "III", "CBC", "III", 'I', ModItems.plate_polymer, 'C', ModItems.cladding_lead, 'B', ModItems.hazmat_helmet_grey }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.liquidator_plate, 1), new Object[] { "ICI", "TBT", "ICI", 'I', ModItems.plate_polymer, 'C', ModItems.cladding_lead, 'B', ModItems.hazmat_plate_grey, 'T', ModItems.gas_empty }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.liquidator_legs, 1), new Object[] { "III", "CBC", "I I", 'I', ModItems.plate_polymer, 'C', ModItems.cladding_lead, 'B', ModItems.hazmat_legs_grey }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.liquidator_boots, 1), new Object[] { "ICI", "IBI", 'I', ModItems.plate_polymer, 'C', ModItems.cladding_lead, 'B', ModItems.hazmat_boots_grey }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.liquidator_helmet, 1), new Object[] { "III", "CBC", "III", 'I', ANY_RUBBER.ingot(), 'C', ModItems.cladding_lead, 'B', ModItems.hazmat_helmet_grey }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.liquidator_plate, 1), new Object[] { "ICI", "TBT", "ICI", 'I', ANY_RUBBER.ingot(), 'C', ModItems.cladding_lead, 'B', ModItems.hazmat_plate_grey, 'T', ModItems.gas_empty }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.liquidator_legs, 1), new Object[] { "III", "CBC", "I I", 'I', ANY_RUBBER.ingot(), 'C', ModItems.cladding_lead, 'B', ModItems.hazmat_legs_grey }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.liquidator_boots, 1), new Object[] { "ICI", "IBI", 'I', ANY_RUBBER.ingot(), 'C', ModItems.cladding_lead, 'B', ModItems.hazmat_boots_grey }); //Masks CraftingManager.addRecipeAuto(new ItemStack(ModItems.goggles, 1), new Object[] { "P P", "GPG", 'G', KEY_ANYPANE, 'P', STEEL.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gas_mask, 1), new Object[] { "PPP", "GPG", " F ", 'G', KEY_ANYPANE, 'P', STEEL.plate(), 'F', IRON.plate() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gas_mask_m65, 1), new Object[] { "PPP", "GPG", " F ", 'G', KEY_ANYPANE, 'P', ModItems.plate_polymer, 'F', IRON.plate() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gas_mask_m65, 1), new Object[] { "PPP", "GPG", " F ", 'G', KEY_ANYPANE, 'P', ANY_RUBBER.ingot(), 'F', IRON.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gas_mask_olde, 1), new Object[] { "PPP", "GPG", " F ", 'G', KEY_ANYPANE, 'P', Items.leather, 'F', IRON.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gas_mask_mono, 1), new Object[] { " P ", "PPP", " F ", 'P', ModItems.plate_polymer, 'F', IRON.plate() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gas_mask_mono, 1), new Object[] { " P ", "PPP", " F ", 'P', ANY_RUBBER.ingot(), 'F', IRON.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.mask_of_infamy, 1), new Object[] { "III", "III", " I ", 'I', IRON.plate() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ashglasses, 1), new Object[] { "I I", "GPG", 'I', ModItems.plate_polymer, 'G', ModBlocks.glass_ash, 'P', ANY_PLASTIC.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ashglasses, 1), new Object[] { "I I", "GPG", 'I', ANY_RUBBER.ingot(), 'G', ModBlocks.glass_ash, 'P', ANY_PLASTIC.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.mask_rag, 1), new Object[] { "RRR", 'R', ModItems.rag_damp }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.mask_piss, 1), new Object[] { "RRR", 'R', ModItems.rag_piss }); diff --git a/src/main/java/com/hbm/crafting/ConsumableRecipes.java b/src/main/java/com/hbm/crafting/ConsumableRecipes.java index 57c95d9b7..a7a2b6e3f 100644 --- a/src/main/java/com/hbm/crafting/ConsumableRecipes.java +++ b/src/main/java/com/hbm/crafting/ConsumableRecipes.java @@ -109,9 +109,9 @@ public class ConsumableRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.syringe_metal_medx, 1), new Object[] { " N ", "NSN", " N ", 'N', Items.quartz, 'S', ModItems.syringe_metal_empty }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.syringe_metal_psycho, 1), new Object[] { " N ", "NSN", " N ", 'N', Items.glowstone_dust, 'S', ModItems.syringe_metal_empty }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.syringe_metal_super, 1), new Object[] { " N ", "PSP", "L L", 'N', ModItems.bottle_nuka, 'P', STEEL.plate(), 'S', ModItems.syringe_metal_stimpak, 'L', Items.leather }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.syringe_metal_super, 1), new Object[] { " N ", "PSP", "L L", 'N', ModItems.bottle_nuka, 'P', STEEL.plate(), 'S', ModItems.syringe_metal_stimpak, 'L', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.syringe_metal_super, 1), new Object[] { " N ", "PSP", "L L", 'N', ModItems.bottle_nuka, 'P', STEEL.plate(), 'S', ModItems.syringe_metal_stimpak, 'L', ANY_RUBBER.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.syringe_metal_super, 1), new Object[] { " N ", "PSP", "L L", 'N', ModItems.bottle_cherry, 'P', STEEL.plate(), 'S', ModItems.syringe_metal_stimpak, 'L', Items.leather }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.syringe_metal_super, 1), new Object[] { " N ", "PSP", "L L", 'N', ModItems.bottle_cherry, 'P', STEEL.plate(), 'S', ModItems.syringe_metal_stimpak, 'L', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.syringe_metal_super, 1), new Object[] { " N ", "PSP", "L L", 'N', ModItems.bottle_cherry, 'P', STEEL.plate(), 'S', ModItems.syringe_metal_stimpak, 'L', ANY_RUBBER.ingot() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.syringe_taint), new Object[] { ModItems.bottle2_empty, ModItems.syringe_metal_empty, ModItems.ducttape, ModItems.powder_magic, SA326.nugget(), Items.potionitem }); //Medicine @@ -135,12 +135,12 @@ public class ConsumableRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.med_bag, 1), new Object[] { "LLL", "SIS", "LLL", 'L', Items.leather, 'S', ModItems.syringe_metal_stimpak, 'I', ModItems.syringe_antidote }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.med_bag, 1), new Object[] { "LLL", "SIS", "LLL", 'L', Items.leather, 'S', ModItems.syringe_metal_stimpak, 'I', ModItems.pill_iodine }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.med_bag, 1), new Object[] { "LL", "SI", "LL", 'L', Items.leather, 'S', ModItems.syringe_metal_super, 'I', ModItems.radaway }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.med_bag, 1), new Object[] { "LLL", "SIS", "LLL", 'L', ModItems.plate_polymer, 'S', ModItems.syringe_metal_stimpak, 'I', ModItems.syringe_antidote }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.med_bag, 1), new Object[] { "LLL", "SIS", "LLL", 'L', ModItems.plate_polymer, 'S', ModItems.syringe_metal_stimpak, 'I', ModItems.pill_iodine }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.med_bag, 1), new Object[] { "LL", "SI", "LL", 'L', ModItems.plate_polymer, 'S', ModItems.syringe_metal_super, 'I', ModItems.radaway }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.med_bag, 1), new Object[] { "LLL", "SIS", "LLL", 'L', ANY_RUBBER.ingot(), 'S', ModItems.syringe_metal_stimpak, 'I', ModItems.syringe_antidote }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.med_bag, 1), new Object[] { "LLL", "SIS", "LLL", 'L', ANY_RUBBER.ingot(), 'S', ModItems.syringe_metal_stimpak, 'I', ModItems.pill_iodine }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.med_bag, 1), new Object[] { "LL", "SI", "LL", 'L', ANY_RUBBER.ingot(), 'S', ModItems.syringe_metal_super, 'I', ModItems.radaway }); //IV Bags - CraftingManager.addRecipeAuto(new ItemStack(ModItems.iv_empty, 4), new Object[] { "S", "I", "S", 'S', ModItems.plate_polymer, 'I', IRON.plate() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.iv_empty, 4), new Object[] { "S", "I", "S", 'S', ANY_RUBBER.ingot(), 'I', IRON.plate() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.iv_xp_empty, 1), new Object[] { ModItems.iv_empty, ModItems.powder_magic }); //Radaway @@ -150,7 +150,7 @@ public class ConsumableRecipes { //Cladding CraftingManager.addShapelessAuto(new ItemStack(ModItems.cladding_paint, 1), new Object[] { PB.nugget(), PB.nugget(), PB.nugget(), PB.nugget(), Items.clay_ball, Items.glass_bottle }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.cladding_rubber, 1), new Object[] { "RCR", "CDC", "RCR", 'R', ModItems.plate_polymer, 'C', COAL.dust(), 'D', ModItems.ducttape }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.cladding_rubber, 1), new Object[] { "RCR", "CDC", "RCR", 'R', ANY_RUBBER.ingot(), 'C', COAL.dust(), 'D', ModItems.ducttape }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.cladding_lead, 1), new Object[] { "DPD", "PRP", "DPD", 'R', ModItems.cladding_rubber, 'P', PB.plate(), 'D', ModItems.ducttape }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.cladding_desh, 1), new Object[] { "DPD", "PRP", "DPD", 'R', ModItems.cladding_lead, 'P', ModItems.plate_desh, 'D', ModItems.ducttape }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.cladding_ghiorsium, 1), new Object[] { "DPD", "PRP", "DPD", 'R', ModItems.cladding_desh, 'P', ModItems.ingot_gh336, 'D', ModItems.ducttape }); @@ -163,7 +163,7 @@ public class ConsumableRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.insert_ghiorsium, 1), new Object[] { "DPD", "PSP", "DPD", 'D', ModItems.ducttape, 'P', GH336.ingot(), 'S', U238.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.insert_polonium, 1), new Object[] { "DPD", "PSP", "DPD", 'D', ModItems.ducttape, 'P', IRON.plate(), 'S', PO210.block() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.insert_era, 1), new Object[] { "DPD", "PSP", "DPD", 'D', ModItems.ducttape, 'P', IRON.plate(), 'S', ModItems.ingot_semtex }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.insert_kevlar, 1), new Object[] { "KIK", "IDI", "KIK", 'K', ModItems.plate_kevlar, 'I', ModItems.plate_polymer, 'D', ModItems.ducttape }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.insert_kevlar, 1), new Object[] { "KIK", "IDI", "KIK", 'K', ModItems.plate_kevlar, 'I', ANY_RUBBER.ingot(), 'D', ModItems.ducttape }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.insert_sapi, 1), new Object[] { "PKP", "DPD", "PKP", 'P', POLYMER.ingot(), 'K', ModItems.insert_kevlar, 'D', ModItems.ducttape }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.insert_esapi, 1), new Object[] { "PKP", "DSD", "PKP", 'P', POLYMER.ingot(), 'K', ModItems.insert_sapi, 'D', ModItems.ducttape, 'S', BIGMT.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.insert_xsapi, 1), new Object[] { "PKP", "DSD", "PKP", 'P', ASBESTOS.ingot(), 'K', ModItems.insert_esapi, 'D', ModItems.ducttape, 'S', ModItems.ingot_meteorite_forged }); @@ -174,13 +174,13 @@ public class ConsumableRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.servo_set_desh, 1), new Object[] { "MBM", "PSP", "MBM", 'M', ModItems.motor_desh, 'B', ModItems.bolt_dura_steel, 'P', ALLOY.plate(), 'S', ModItems.servo_set }); //Helmet Mods - CraftingManager.addRecipeAuto(new ItemStack(ModItems.attachment_mask, 1), new Object[] { "DID", "IGI", " F ", 'D', ModItems.ducttape, 'I', ModItems.plate_polymer, 'G', KEY_ANYPANE, 'F', IRON.plate() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.attachment_mask_mono, 1), new Object[] { " D ", "DID", " F ", 'D', ModItems.ducttape, 'I', ModItems.plate_polymer, 'F', IRON.plate() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.attachment_mask, 1), new Object[] { "DID", "IGI", " F ", 'D', ModItems.ducttape, 'I', ANY_RUBBER.ingot(), 'G', KEY_ANYPANE, 'F', IRON.plate() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.attachment_mask_mono, 1), new Object[] { " D ", "DID", " F ", 'D', ModItems.ducttape, 'I', ANY_RUBBER.ingot(), 'F', IRON.plate() }); //Boot Mods - CraftingManager.addRecipeAuto(new ItemStack(ModItems.pads_rubber, 1), new Object[] { "P P", "IDI", "P P", 'P', ModItems.plate_polymer, 'I', IRON.plate(), 'D', ModItems.ducttape }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.pads_rubber, 1), new Object[] { "P P", "IDI", "P P", 'P', ANY_RUBBER.ingot(), 'I', IRON.plate(), 'D', ModItems.ducttape }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.pads_slime, 1), new Object[] { "SPS", "DSD", "SPS", 'S', KEY_SLIME, 'P', ModItems.pads_rubber, 'D', ModItems.ducttape }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.pads_static, 1), new Object[] { "CDC", "ISI", "CDC", 'C', CU.ingot(), 'D', ModItems.ducttape, 'I', ModItems.plate_polymer, 'S', ModItems.pads_slime }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.pads_static, 1), new Object[] { "CDC", "ISI", "CDC", 'C', CU.ingot(), 'D', ModItems.ducttape, 'I', ANY_RUBBER.ingot(), 'S', ModItems.pads_slime }); //Special Mods CraftingManager.addRecipeAuto(new ItemStack(ModItems.horseshoe_magnet, 1), new Object[] { "L L", "I I", "ILI", 'L', ModItems.lodestone, 'I', IRON.ingot() }); diff --git a/src/main/java/com/hbm/crafting/SmeltingRecipes.java b/src/main/java/com/hbm/crafting/SmeltingRecipes.java index 60a709ce0..e3da94819 100644 --- a/src/main/java/com/hbm/crafting/SmeltingRecipes.java +++ b/src/main/java/com/hbm/crafting/SmeltingRecipes.java @@ -108,6 +108,7 @@ public class SmeltingRecipes { GameRegistry.addSmelting(ModItems.powder_bismuth, new ItemStack(ModItems.ingot_bismuth), 1.0F); GameRegistry.addSmelting(ModItems.powder_calcium, new ItemStack(ModItems.ingot_calcium), 1.0F); GameRegistry.addSmelting(ModItems.powder_cadmium, new ItemStack(ModItems.ingot_cadmium), 1.0F); + GameRegistry.addSmelting(ModItems.ball_resin, new ItemStack(ModItems.ingot_biorubber), 0.1F); GameRegistry.addSmelting(ModItems.combine_scrap, new ItemStack(ModItems.ingot_combine_steel), 1.0F); GameRegistry.addSmelting(ModItems.rag_damp, new ItemStack(ModItems.rag), 0.1F); diff --git a/src/main/java/com/hbm/crafting/ToolRecipes.java b/src/main/java/com/hbm/crafting/ToolRecipes.java index 873b5605d..4af76365c 100644 --- a/src/main/java/com/hbm/crafting/ToolRecipes.java +++ b/src/main/java/com/hbm/crafting/ToolRecipes.java @@ -115,14 +115,14 @@ public class ToolRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.oil_detector, 1), new Object[] { "W I", "WCI", "PPP", 'W', ModItems.wire_gold, 'I', CU.ingot(), 'C', ModItems.circuit_red_copper, 'P', STEEL.plate528() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.turret_chip, 1), new Object[] { "WWW", "CPC", "WWW", 'W', ModItems.wire_gold, 'P', ANY_PLASTIC.ingot(), 'C', ModItems.circuit_gold, }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.survey_scanner, 1), new Object[] { "SWS", " G ", "PCP", 'W', ModItems.wire_gold, 'P', ANY_PLASTIC.ingot(), 'C', ModItems.circuit_gold, 'S', STEEL.plate528(), 'G', GOLD.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.geiger_counter, 1), new Object[] { "GPP", "WCS", "WBB", 'W', ModItems.wire_gold, 'P', ModItems.plate_polymer, 'C', ModItems.circuit_red_copper, 'G', GOLD.ingot(), 'S', STEEL.plate528(), 'B', ModItems.ingot_beryllium }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.geiger_counter, 1), new Object[] { "GPP", "WCS", "WBB", 'W', ModItems.wire_gold, 'P', ANY_RUBBER.ingot(), 'C', ModItems.circuit_red_copper, 'G', GOLD.ingot(), 'S', STEEL.plate528(), 'B', ModItems.ingot_beryllium }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.dosimeter, 1), new Object[] { "WGW", "WCW", "WBW", 'W', KEY_PLANKS, 'G', KEY_ANYPANE, 'C', ModItems.circuit_aluminium, 'B', BE.ingot() }); CraftingManager.addShapelessAuto(new ItemStack(ModBlocks.geiger), new Object[] { ModItems.geiger_counter }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.digamma_diagnostic), new Object[] { ModItems.geiger_counter, PO210.billet(), ASBESTOS.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.pollution_detector, 1), new Object[] { "SFS", "SCS", " S ", 'S', STEEL.plate(), 'F', ModItems.filter_coal, 'C', ModItems.circuit_copper }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.defuser, 1), new Object[] { " PS", "P P", " P ", 'P', ANY_PLASTIC.ingot(), 'S', STEEL.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.coltan_tool, 1), new Object[] { "ACA", "CXC", "ACA", 'A', ALLOY.ingot(), 'C', CINNABAR.crystal(), 'X', Items.compass }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.reacher, 1), new Object[] { "BIB", "P P", "B B", 'B', ModItems.bolt_tungsten, 'I', W.ingot(), 'P', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.reacher, 1), new Object[] { "BIB", "P P", "B B", 'B', ModItems.bolt_tungsten, 'I', W.ingot(), 'P', ANY_RUBBER.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.bismuth_tool, 1), new Object[] { "TBT", "SRS", "SCS", 'T', TA.nugget(), 'B', ModItems.nugget_bismuth, 'S', ANY_RESISTANTALLOY.ingot(), 'R', ModItems.reacher, 'C', ModItems.circuit_aluminium }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.sat_designator, 1), new Object[] { "RRD", "PIC", " P", 'P', GOLD.plate(), 'R', Items.redstone, 'C', ModItems.circuit_gold, 'D', ModItems.sat_chip, 'I', GOLD.ingot() }); diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index 60c6823c0..aa58d5393 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -46,12 +46,12 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_thruster_15_balefire_large_rad, 1), new Object[] { "CCC", "CTC", "CCC", 'C', ModItems.board_copper, 'T', ModItems.mp_thruster_15_balefire_large }); //Missile fuselages - CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_fuselage_10_kerosene_insulation, 1), new Object[] { "CCC", "CTC", "CCC", 'C', ModItems.plate_polymer, 'T', ModItems.mp_fuselage_10_kerosene }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_fuselage_10_long_kerosene_insulation, 1), new Object[] { "CCC", "CTC", "CCC", 'C', ModItems.plate_polymer, 'T', ModItems.mp_fuselage_10_long_kerosene }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_fuselage_15_kerosene_insulation, 1), new Object[] { "CCC", "CTC", "CCC", 'C', ModItems.plate_polymer, 'T', ModItems.mp_fuselage_15_kerosene }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_fuselage_10_solid_insulation, 1), new Object[] { "CCC", "CTC", "CCC", 'C', ModItems.plate_polymer, 'T', ModItems.mp_fuselage_10_solid }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_fuselage_10_long_solid_insulation, 1), new Object[] { "CCC", "CTC", "CCC", 'C', ModItems.plate_polymer, 'T', ModItems.mp_fuselage_10_long_solid }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_fuselage_15_solid_insulation, 1), new Object[] { "CCC", "CTC", "CCC", 'C', ModItems.plate_polymer, 'T', ModItems.mp_fuselage_15_solid }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_fuselage_10_kerosene_insulation, 1), new Object[] { "CCC", "CTC", "CCC", 'C', ANY_RUBBER.ingot(), 'T', ModItems.mp_fuselage_10_kerosene }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_fuselage_10_long_kerosene_insulation, 1), new Object[] { "CCC", "CTC", "CCC", 'C', ANY_RUBBER.ingot(), 'T', ModItems.mp_fuselage_10_long_kerosene }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_fuselage_15_kerosene_insulation, 1), new Object[] { "CCC", "CTC", "CCC", 'C', ANY_RUBBER.ingot(), 'T', ModItems.mp_fuselage_15_kerosene }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_fuselage_10_solid_insulation, 1), new Object[] { "CCC", "CTC", "CCC", 'C', ANY_RUBBER.ingot(), 'T', ModItems.mp_fuselage_10_solid }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_fuselage_10_long_solid_insulation, 1), new Object[] { "CCC", "CTC", "CCC", 'C', ANY_RUBBER.ingot(), 'T', ModItems.mp_fuselage_10_long_solid }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_fuselage_15_solid_insulation, 1), new Object[] { "CCC", "CTC", "CCC", 'C', ANY_RUBBER.ingot(), 'T', ModItems.mp_fuselage_15_solid }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_fuselage_15_solid_desh, 1), new Object[] { "CCC", "CTC", "CCC", 'C', DESH.ingot(), 'T', ModItems.mp_fuselage_15_solid }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_fuselage_10_kerosene_metal, 1), new Object[] { "ICI", "CTC", "ICI", 'C', STEEL.plate(), 'I', IRON.plate(), 'T', ModItems.mp_fuselage_10_kerosene }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_fuselage_10_long_kerosene_metal, 1), new Object[] { "ICI", "CTC", "ICI", 'C', STEEL.plate(), 'I', IRON.plate(), 'T', ModItems.mp_fuselage_10_long_kerosene }); @@ -61,11 +61,11 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_warhead_15_boxcar, 1), new Object[] { "SNS", "CBC", "SFS", 'S', STAR.ingot(), 'N', ModBlocks.det_nuke, 'C', ModItems.circuit_targeting_tier4, 'B', ModBlocks.boxcar, 'F', ModItems.tritium_deuterium_cake }); //Missile chips - CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_chip_1, 1), new Object[] { "P", "C", "S", 'P', ModItems.plate_polymer, 'C', ModItems.circuit_targeting_tier1, 'S', ModBlocks.steel_scaffold }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_chip_2, 1), new Object[] { "P", "C", "S", 'P', ModItems.plate_polymer, 'C', ModItems.circuit_targeting_tier2, 'S', ModBlocks.steel_scaffold }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_chip_3, 1), new Object[] { "P", "C", "S", 'P', ModItems.plate_polymer, 'C', ModItems.circuit_targeting_tier3, 'S', ModBlocks.steel_scaffold }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_chip_4, 1), new Object[] { "P", "C", "S", 'P', ModItems.plate_polymer, 'C', ModItems.circuit_targeting_tier4, 'S', ModBlocks.steel_scaffold }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_chip_5, 1), new Object[] { "P", "C", "S", 'P', ModItems.plate_polymer, 'C', ModItems.circuit_targeting_tier5, 'S', ModBlocks.steel_scaffold }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_chip_1, 1), new Object[] { "P", "C", "S", 'P', ANY_RUBBER.ingot(), 'C', ModItems.circuit_targeting_tier1, 'S', ModBlocks.steel_scaffold }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_chip_2, 1), new Object[] { "P", "C", "S", 'P', ANY_RUBBER.ingot(), 'C', ModItems.circuit_targeting_tier2, 'S', ModBlocks.steel_scaffold }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_chip_3, 1), new Object[] { "P", "C", "S", 'P', ANY_RUBBER.ingot(), 'C', ModItems.circuit_targeting_tier3, 'S', ModBlocks.steel_scaffold }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_chip_4, 1), new Object[] { "P", "C", "S", 'P', ANY_RUBBER.ingot(), 'C', ModItems.circuit_targeting_tier4, 'S', ModBlocks.steel_scaffold }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_chip_5, 1), new Object[] { "P", "C", "S", 'P', ANY_RUBBER.ingot(), 'C', ModItems.circuit_targeting_tier5, 'S', ModBlocks.steel_scaffold }); //Turrets CraftingManager.addRecipeAuto(new ItemStack(ModBlocks.turret_sentry, 1), new Object[] { "PPL", " MD", " SC", 'P', STEEL.plate(), 'M', ModItems.motor, 'L', ModItems.mechanism_rifle_1, 'S', ModBlocks.steel_scaffold, 'C', ModItems.circuit_red_copper, 'D', ModItems.crt_display }); @@ -97,7 +97,7 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_chemthrower, 1), new Object[] { "RWC", "HHT", "RLC", 'R', RUBBER.ingot(), 'W', ModItems.wrench, 'C', CU.plate(), 'H', ModItems.hull_small_steel, 'T', ModItems.tank_steel, 'L', ModItems.mechanism_launcher_2 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_fatman, 1), new Object[] { "SSI", "IIM", "WPH", 'S', STEEL.plate(), 'I', STEEL.ingot(), 'W', ModItems.wire_aluminium, 'H', ModItems.hull_small_steel, 'P', Item.getItemFromBlock(Blocks.piston), 'M', ModItems.mechanism_launcher_2 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_mirv, 1), new Object[] { "LLL", "WFW", "SSS", 'S', STEEL.plate(), 'L', PB.plate(), 'W', ModItems.wire_gold, 'F', ModItems.gun_fatman }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_proto, 1), new Object[] { "LLL", "WFW", "SSS", 'S', ModItems.plate_polymer, 'L', ModItems.plate_desh, 'W', ModItems.wire_tungsten, 'F', ModItems.gun_fatman }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_proto, 1), new Object[] { "LLL", "WFW", "SSS", 'S', ANY_RUBBER.ingot(), 'L', ModItems.plate_desh, 'W', ModItems.wire_tungsten, 'F', ModItems.gun_fatman }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_nuke, 1, AmmoFatman.BALEFIRE.ordinal()), new Object[] { " S ", "EBE", " S ", 'S', ModItems.hull_small_steel, 'E', ModItems.powder_power, 'B', ModItems.egg_balefire_shard }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_mp40, 1), new Object[] { "IIM", " SW", " S ", 'S', STEEL.plate(), 'I', STEEL.ingot(), 'W', KEY_PLANKS, 'M', ModItems.mechanism_rifle_2 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_thompson, 1), new Object[] { "IIM", " SW", " S ", 'S', IRON.plate(), 'I', STEEL.plate(), 'W', KEY_PLANKS, 'M', ModItems.mechanism_rifle_2 }); @@ -154,7 +154,7 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_minigun, 1), new Object[] { "PIB", "PCM", "PIB", 'P', ModItems.pipes_steel, 'B', STEEL.block(), 'I', ANY_PLASTIC.ingot(), 'C', ModItems.mechanism_rifle_2, 'M', ModItems.motor }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_avenger, 1), new Object[] { "PIB", "PCM", "PIB", 'P', ModItems.pipes_steel, 'B', BE.block(), 'I', DESH.ingot(), 'C', ModItems.mechanism_rifle_2, 'M', ModItems.motor }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_lacunae, 1), new Object[] { "TIT", "ILI", "PRP", 'T', ModItems.syringe_taint, 'I', STAR.ingot(), 'L', ModItems.gun_minigun, 'P', ModItems.pellet_rtg, 'R', ModBlocks.machine_rtg_grey }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_mymy, 1), new Object[] { "PP ", " WP", 'P', ModItems.plate_polymer, 'W', ModItems.wire_aluminium }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_mymy, 1), new Object[] { "PP ", " WP", 'P', ANY_RUBBER.ingot(), 'W', ModItems.wire_aluminium }); //CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_darter, 1), new Object[] { "SST", " P", 'S', STEEL.plate(), 'T', ModItems.gas_empty, 'P', ANY_PLASTIC.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_fireext, 1), new Object[] { "HB", " T", 'H', ModItems.hull_small_steel, 'B', ModItems.bolt_tungsten, 'T', ModItems.tank_steel }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_spas12, 1), new Object[] { "TPS", "HHR", " L", 'T', ModItems.bolt_tungsten, 'P', STEEL.plate(), 'S', STEEL.ingot(), 'H', ModItems.hull_small_steel, 'R', ModItems.mechanism_rifle_1, 'L', ANY_PLASTIC.ingot()}); @@ -207,15 +207,15 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_lacunae, 1), new Object[] { " I", "GC", 'I', CU.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_9 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_nopip, 1), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_44 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_nopip, 1), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ModItems.ballistite, 'C', ModItems.casing_44 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_12gauge, 12), new Object[] { " I ", "GCL", 'I', ModItems.pellet_buckshot, 'G', ModItems.cordite, 'C', ModItems.casing_buckshot, 'L', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_12gauge, 12), new Object[] { " I ", "GCL", 'I', ModItems.pellet_buckshot, 'G', ModItems.ballistite, 'C', ModItems.casing_buckshot, 'L', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_12gauge, 12), new Object[] { " I ", "GCL", 'I', ModItems.pellet_buckshot, 'G', ModItems.cordite, 'C', ModItems.casing_buckshot, 'L', ANY_RUBBER.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_12gauge, 12), new Object[] { " I ", "GCL", 'I', ModItems.pellet_buckshot, 'G', ModItems.ballistite, 'C', ModItems.casing_buckshot, 'L', ANY_RUBBER.ingot() }); CraftingManager.addRecipeAuto(ModItems.ammo_12gauge.stackFromEnum(12, Ammo12Gauge.PERCUSSION), new Object[] { "G", "C", 'G', ModItems.ballistite, 'C', ModItems.casing_buckshot }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_4gauge, 12), new Object[] { " I ", "GCL", 'I', ModItems.pellet_buckshot, 'G', ModItems.cordite, 'C', ModItems.casing_50, 'L', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(12, Ammo4Gauge.SLUG), new Object[] { " I ", "GCL", 'I', STEEL.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_50, 'L', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(12, Ammo4Gauge.FLECHETTE), new Object[] { " I ", "GCL", 'I', ModItems.pellet_flechette, 'G', ModItems.cordite, 'C', ModItems.casing_50, 'L', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(4, Ammo4Gauge.EXPLOSIVE), new Object[] { " I ", "GCL", 'I', ModBlocks.tnt, 'G', ModItems.cordite, 'C', ModItems.casing_50, 'L', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(6, Ammo4Gauge.EXPLOSIVE), new Object[] { " I ", "GCL", 'I', ANY_PLASTICEXPLOSIVE.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_50, 'L', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(4, Ammo4Gauge.MINING), new Object[] { " I ", "GCL", 'I', ModBlocks.det_miner, 'G', ModItems.cordite, 'C', ModItems.casing_50, 'L', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_4gauge, 12), new Object[] { " I ", "GCL", 'I', ModItems.pellet_buckshot, 'G', ModItems.cordite, 'C', ModItems.casing_50, 'L', ANY_RUBBER.ingot() }); + CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(12, Ammo4Gauge.SLUG), new Object[] { " I ", "GCL", 'I', STEEL.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_50, 'L', ANY_RUBBER.ingot() }); + CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(12, Ammo4Gauge.FLECHETTE), new Object[] { " I ", "GCL", 'I', ModItems.pellet_flechette, 'G', ModItems.cordite, 'C', ModItems.casing_50, 'L', ANY_RUBBER.ingot() }); + CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(4, Ammo4Gauge.EXPLOSIVE), new Object[] { " I ", "GCL", 'I', ModBlocks.tnt, 'G', ModItems.cordite, 'C', ModItems.casing_50, 'L', ANY_RUBBER.ingot() }); + CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(6, Ammo4Gauge.EXPLOSIVE), new Object[] { " I ", "GCL", 'I', ANY_PLASTICEXPLOSIVE.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_50, 'L', ANY_RUBBER.ingot() }); + CraftingManager.addRecipeAuto(ModItems.ammo_4gauge.stackFromEnum(4, Ammo4Gauge.MINING), new Object[] { " I ", "GCL", 'I', ModBlocks.det_miner, 'G', ModItems.cordite, 'C', ModItems.casing_50, 'L', ANY_RUBBER.ingot() }); CraftingManager.addShapelessAuto(ModItems.ammo_4gauge.stackFromEnum(Ammo4Gauge.QUACK), new Object[] { ModItems.ammo_4gauge, ModItems.nugget_bismuth, ModItems.nugget_tantalium, ModItems.ball_dynamite }); CraftingManager.addRecipeAuto(ModItems.ammo_20gauge.stackFromEnum(12, Ammo20Gauge.STOCK), new Object[] { " I ", "GCL", 'I', ModItems.pellet_buckshot, 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_buckshot, 'L', CU.plate() }); CraftingManager.addRecipeAuto(ModItems.ammo_20gauge.stackFromEnum(12, Ammo20Gauge.SLUG), new Object[] { " I ", "GCL", 'I', PB.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_buckshot, 'L', CU.plate() }); @@ -225,8 +225,8 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_calamity, 1), new Object[] { " I ", "GCG", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_50 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_actionexpress, 1), new Object[] { " I", "GC", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_50 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_nuke, 1), new Object[] { " WP", "SEP", " WP", 'W', ModItems.wire_aluminium, 'P', STEEL.plate(), 'S', ModItems.hull_small_steel, 'E', ANY_HIGHEXPLOSIVE.ingot() }); - CraftingManager.addRecipeAuto(ModItems.ammo_dart.stackFromEnum(16, AmmoDart.GPS), new Object[] { "IPI", "ICI", "IPI", 'I', ModItems.plate_polymer, 'P', IRON.plate(), 'C', new ItemStack(ModItems.fluid_tank_lead_full, 1, Fluids.WATZ.getID()) }); - CraftingManager.addRecipeAuto(ModItems.ammo_dart.stackFromEnum(16, AmmoDart.NERF), new Object[] { "I", "I", 'I', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(ModItems.ammo_dart.stackFromEnum(16, AmmoDart.GPS), new Object[] { "IPI", "ICI", "IPI", 'I', ANY_RUBBER.ingot(), 'P', IRON.plate(), 'C', new ItemStack(ModItems.fluid_tank_lead_full, 1, Fluids.WATZ.getID()) }); + CraftingManager.addRecipeAuto(ModItems.ammo_dart.stackFromEnum(16, AmmoDart.NERF), new Object[] { "I", "I", 'I', ANY_RUBBER.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_45, 1), " I", "GC", 'I', CU.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_44); CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_762, 1), " I", "GC", 'I', CU.ingot(), 'G', ANY_SMOKELESS.dust(), 'C', ModItems.casing_50); CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_luna, 1), new Object[] { " B ", "GCG", "GPG", 'B', FERRO.ingot(), 'G', ModItems.powder_nitan_mix, 'C', ModItems.casing_50, 'P', ModItems.powder_power}); @@ -384,7 +384,7 @@ public class WeaponRecipes { //IF Grenades CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_if_generic, 1), new Object[] { " C ", "PTP", " P ", 'C', ModItems.coil_tungsten, 'P', STEEL.plate(), 'T', Blocks.tnt }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_if_he, 1), new Object[] { "A", "G", "A", 'G', ModItems.grenade_if_generic, 'A', Items.gunpowder }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_if_bouncy, 1), new Object[] { "G", "A", 'G', ModItems.grenade_if_generic, 'A', ModItems.plate_polymer }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_if_bouncy, 1), new Object[] { "G", "A", 'G', ModItems.grenade_if_generic, 'A', ANY_RUBBER.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_if_sticky, 1), new Object[] { "G", "A", 'G', ModItems.grenade_if_generic, 'A', KEY_SLIME }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_if_impact, 1), new Object[] { "G", "A", 'G', ModItems.grenade_if_generic, 'A', REDSTONE.dust() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_if_concussion, 1), new Object[] { "G", "A", 'G', ModItems.grenade_if_generic, 'A', Items.glowstone_dust }); diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index f195610ed..a64fdb6eb 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -185,6 +185,7 @@ public class OreDictManager { public static final DictFrame PET = new DictFrame("PET"); public static final DictFrame PC = new DictFrame("Polycarbonate"); public static final DictFrame PVC = new DictFrame("PVC"); + public static final DictFrame LATEX = new DictFrame("Latex"); public static final DictFrame RUBBER = new DictFrame("Rubber"); public static final DictFrame MAGTUNG = new DictFrame("MagnetizedTungsten"); public static final DictFrame CMB = new DictFrame("CMBSteel"); @@ -277,6 +278,8 @@ public class OreDictManager { /* * COLLECTIONS */ + /** Any form of elastic polymer */ + public static final DictGroup ANY_RUBBER = new DictGroup("AnyRubber", LATEX, RUBBER); /** Any post oil polymer like teflon ("polymer") or bakelite */ public static final DictGroup ANY_PLASTIC = new DictGroup("AnyPlastic", POLYMER, BAKELITE); //using the Any prefix means that it's just the secondary prefix, and that shape prefixes are applicable /** Any post vacuum polymer like PET or PVC */ @@ -370,6 +373,7 @@ public class OreDictManager { DURA .ingot(ingot_dura_steel) .dust(powder_dura_steel) .block(block_dura_steel); POLYMER .ingot(ingot_polymer) .dust(powder_polymer) .block(block_polymer); BAKELITE .ingot(ingot_bakelite) .dust(powder_bakelite) .block(block_bakelite); + LATEX .gem(ball_resin) .ingot(ingot_biorubber); RUBBER .ingot(ingot_rubber) .block(block_rubber); //PET .ingot(ingot_pet); PC .ingot(ingot_pc); @@ -604,6 +608,7 @@ public class OreDictManager { } public static void registerGroups() { + ANY_RUBBER.addPrefix(INGOT, true); ANY_PLASTIC.addPrefix(INGOT, true).addPrefix(DUST, true).addPrefix(BLOCK, true); ANY_HARDPLASTIC.addPrefix(INGOT, true); ANY_RESISTANTALLOY.addPrefix(INGOT, true).addPrefix(DUST, true).addPrefix(PLATECAST, true).addPrefix(PLATEWELDED, true).addPrefix(HEAVY_COMPONENT, true).addPrefix(BLOCK, true); diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index b76505159..7e498b763 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -179,7 +179,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.entanglement_kit, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new OreDictStack(DURA.ingot(), 4), new OreDictStack(CU.plate(), 24), new ComparableStack(ModBlocks.hadron_coil_gold, 4), new OreDictStack(Fluids.XENON.getDict(1_000))},200); makeRecipe(new ComparableStack(ModItems.dysfunctional_reactor, 1), new AStack[] {new OreDictStack(STEEL.plate(), 15), new OreDictStack(PB.ingot(), 5), new ComparableStack(ModItems.rod_quad_empty, 10), new OreDictStack("dyeBrown", 3), },200); makeRecipe(new ComparableStack(ModItems.missile_assembly, 1), new AStack[] {new ComparableStack(ModItems.hull_small_steel, 1), new ComparableStack(ModItems.hull_small_aluminium, 4), new OreDictStack(STEEL.ingot(), 2), new OreDictStack(TI.plate(), 6), new ComparableStack(ModItems.wire_aluminium, 6), new ComparableStack(ModItems.canister_full, 3, Fluids.KEROSENE.getID()), new ComparableStack(ModItems.circuit_targeting_tier1, 1), },200); - makeRecipe(new ComparableStack(ModItems.missile_carrier, 1), new AStack[] {new ComparableStack(ModItems.fluid_barrel_full, 16, Fluids.KEROSENE.getID()), new ComparableStack(ModItems.thruster_medium, 4), new ComparableStack(ModItems.thruster_large, 1), new ComparableStack(ModItems.hull_big_titanium, 6), new ComparableStack(ModItems.hull_big_steel, 2), new ComparableStack(ModItems.hull_small_aluminium, 12), new OreDictStack(TI.plate(), 24), new ComparableStack(ModItems.plate_polymer, 128), new ComparableStack(ModBlocks.det_cord, 8), new ComparableStack(ModItems.circuit_targeting_tier3, 12), new ComparableStack(ModItems.circuit_targeting_tier4, 3), },4800); + makeRecipe(new ComparableStack(ModItems.missile_carrier, 1), new AStack[] {new ComparableStack(ModItems.fluid_barrel_full, 16, Fluids.KEROSENE.getID()), new ComparableStack(ModItems.thruster_medium, 4), new ComparableStack(ModItems.thruster_large, 1), new ComparableStack(ModItems.hull_big_titanium, 6), new ComparableStack(ModItems.hull_big_steel, 2), new ComparableStack(ModItems.hull_small_aluminium, 12), new OreDictStack(TI.plate(), 24), new OreDictStack(ANY_RUBBER.ingot(), 128), new ComparableStack(ModBlocks.det_cord, 8), new ComparableStack(ModItems.circuit_targeting_tier3, 12), new ComparableStack(ModItems.circuit_targeting_tier4, 3), },4800); makeRecipe(new ComparableStack(ModItems.warhead_generic_small, 1), new AStack[] {new OreDictStack(TI.plate(), 5), new OreDictStack(STEEL.plate(), 3), new ComparableStack(Blocks.tnt, 2), },100); makeRecipe(new ComparableStack(ModItems.warhead_generic_medium, 1), new AStack[] {new OreDictStack(TI.plate(), 8), new OreDictStack(STEEL.plate(), 5), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 4), },150); makeRecipe(new ComparableStack(ModItems.warhead_generic_large, 1), new AStack[] {new OreDictStack(TI.plate(), 15), new OreDictStack(STEEL.plate(), 8), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 8), },200); @@ -259,11 +259,11 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.upgrade_overdrive_3, 1), new AStack[] {new ComparableStack(ModItems.upgrade_overdrive_2, 1), new ComparableStack(ModItems.upgrade_afterburn_1, 1), new ComparableStack(ModItems.upgrade_speed_3, 1), new ComparableStack(ModItems.upgrade_effect_3, 1), new ComparableStack(ModItems.crystal_lithium, 16), new OreDictStack(KEY_CIRCUIT_BISMUTH), }, 500); makeRecipe(new ComparableStack(ModItems.redcoil_capacitor, 1), new AStack[] {new OreDictStack(GOLD.plate(), 3), new ComparableStack(ModItems.fuse, 1), new ComparableStack(ModItems.wire_advanced_alloy, 4), new ComparableStack(ModItems.coil_advanced_alloy, 6), new ComparableStack(Blocks.redstone_block, 2), },200); makeRecipe(new ComparableStack(ModItems.titanium_filter, 1), new AStack[] {new OreDictStack(PB.plate(), 3), new ComparableStack(ModItems.fuse, 1), new ComparableStack(ModItems.wire_tungsten, 4), new OreDictStack(TI.plate(), 6), new OreDictStack(U238.ingot(), 2), },200); - makeRecipe(new ComparableStack(ModItems.part_lithium, 1), new AStack[] {new ComparableStack(ModItems.plate_polymer, 1), new OreDictStack(LI.dust(), 1), },50); - makeRecipe(new ComparableStack(ModItems.part_beryllium, 1), new AStack[] {new ComparableStack(ModItems.plate_polymer, 1), new OreDictStack(BE.dust(), 1), },50); - makeRecipe(new ComparableStack(ModItems.part_carbon, 1), new AStack[] {new ComparableStack(ModItems.plate_polymer, 1), new OreDictStack(COAL.dust(), 1), },50); - makeRecipe(new ComparableStack(ModItems.part_copper, 1), new AStack[] {new ComparableStack(ModItems.plate_polymer, 1), new OreDictStack(CU.dust(), 1), },50); - makeRecipe(new ComparableStack(ModItems.part_plutonium, 1), new AStack[] {new ComparableStack(ModItems.plate_polymer, 1), new ComparableStack(ModItems.powder_plutonium, 1), },50); + makeRecipe(new ComparableStack(ModItems.part_lithium, 1), new AStack[] {new OreDictStack(ANY_RUBBER.ingot(), 1), new OreDictStack(LI.dust(), 1), },50); + makeRecipe(new ComparableStack(ModItems.part_beryllium, 1), new AStack[] {new OreDictStack(ANY_RUBBER.ingot(), 1), new OreDictStack(BE.dust(), 1), },50); + makeRecipe(new ComparableStack(ModItems.part_carbon, 1), new AStack[] {new OreDictStack(ANY_RUBBER.ingot(), 1), new OreDictStack(COAL.dust(), 1), },50); + makeRecipe(new ComparableStack(ModItems.part_copper, 1), new AStack[] {new OreDictStack(ANY_RUBBER.ingot(), 1), new OreDictStack(CU.dust(), 1), },50); + makeRecipe(new ComparableStack(ModItems.part_plutonium, 1), new AStack[] {new OreDictStack(ANY_RUBBER.ingot(), 1), new ComparableStack(ModItems.powder_plutonium, 1), },50); makeRecipe(new ComparableStack(ModItems.thermo_element, 1), new AStack[] {new OreDictStack(STEEL.plate(), 1), new ComparableStack(ModItems.wire_red_copper, 2), new OreDictStack(NETHERQUARTZ.dust(), 2), }, 60); makeRecipe(new ComparableStack(ModItems.plate_dalekanium, 1), new AStack[] {new ComparableStack(ModBlocks.block_meteor, 1), },50); makeRecipe(new ComparableStack(ModBlocks.block_meteor, 1), new AStack[] {new ComparableStack(ModItems.fragment_meteorite, 100), },500); @@ -287,7 +287,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.machine_flare, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(IRON.ingot(), 12), new OreDictStack(CU.plate528(), 4), new ComparableStack(ModItems.tank_steel, 1), new ComparableStack(ModBlocks.deco_pipe_quad, 8), new ComparableStack(ModItems.hull_small_steel, 4), new ComparableStack(ModItems.thermo_element, 3), },200); makeRecipe(new ComparableStack(ModBlocks.machine_coker, 1), new AStack[] {!exp ? new OreDictStack(STEEL.plateWelded(), 3) : new OreDictStack(STEEL.heavyComp(), 2), new OreDictStack(IRON.ingot(), 16), new OreDictStack(CU.plate528(), 8), new OreDictStack(RUBBER.ingot(), 4), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModBlocks.steel_grate, 4) },200); makeRecipe(new ComparableStack(ModBlocks.machine_refinery, 1), new AStack[] {!exp ? new OreDictStack(STEEL.plateWelded(), 3) : new OreDictStack(STEEL.heavyComp(), 1), new OreDictStack(CU.plate528(), 16), new ComparableStack(ModItems.hull_big_steel, 6), new ComparableStack(ModItems.pipes_steel, 2), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModItems.circuit_red_copper, 1) },350); - makeRecipe(new ComparableStack(ModBlocks.machine_epress, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new ComparableStack(ModItems.plate_polymer, 4), new ComparableStack(ModItems.part_generic, 2, EnumPartType.PISTON_HYDRAULIC.ordinal()), new ComparableStack(ModItems.circuit_copper, 1) }, 100); + makeRecipe(new ComparableStack(ModBlocks.machine_epress, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new OreDictStack(ANY_RUBBER.ingot(), 4), new ComparableStack(ModItems.part_generic, 2, EnumPartType.PISTON_HYDRAULIC.ordinal()), new ComparableStack(ModItems.circuit_copper, 1) }, 100); makeRecipe(new ComparableStack(ModBlocks.machine_chemplant, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(CU.plate528(), 6), new ComparableStack(ModItems.tank_steel, 4), new ComparableStack(ModItems.hull_big_steel, 1), new ComparableStack(ModItems.coil_tungsten, 3), new ComparableStack(ModItems.circuit_copper, 2), new ComparableStack(ModItems.circuit_red_copper, 1), new ComparableStack(ModItems.plate_polymer, 8), },200); makeRecipe(new ComparableStack(ModBlocks.machine_crystallizer, 1), new AStack[] {new ComparableStack(ModItems.hull_big_steel, 4), new ComparableStack(ModItems.pipes_steel, 1), new OreDictStack(DESH.ingot(), 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.blades_advanced_alloy, 2), new OreDictStack(STEEL.plateWelded(), 4), new OreDictStack(TI.plate(), 16), new ComparableStack(Blocks.glass, 4), new ComparableStack(ModItems.circuit_gold, 1), },400); makeRecipe(new ComparableStack(ModBlocks.machine_fluidtank, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(STEEL.plate528(), 6), new ComparableStack(ModItems.hull_big_steel, 4), new OreDictStack(ANY_TAR.any(), 4), },150); @@ -384,7 +384,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.ams_limiter, 1), new AStack[] {new ComparableStack(ModItems.board_copper, 6), new OreDictStack(STEEL.plate(), 24), new ComparableStack(ModBlocks.steel_scaffold, 20), new ComparableStack(ModItems.crystal_diamond, 1)}, 600); makeRecipe(new ComparableStack(ModBlocks.ams_emitter, 1), new AStack[] {new ComparableStack(ModItems.board_copper, 24), new OreDictStack(STEEL.plate(), 32), new ComparableStack(ModBlocks.steel_scaffold, 40), new ComparableStack(ModItems.crystal_redstone, 5), new ComparableStack(ModBlocks.machine_lithium_battery)}, 600); makeRecipe(new ComparableStack(ModBlocks.ams_base, 1), new AStack[] {new ComparableStack(ModItems.board_copper, 12), new OreDictStack(STEEL.plate(), 28), new ComparableStack(ModBlocks.steel_scaffold, 30), new ComparableStack(ModBlocks.steel_grate, 8), new ComparableStack(ModBlocks.barrel_steel, 2)}, 600); - makeRecipe(new ComparableStack(ModBlocks.machine_radar, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 16), new OreDictStack(ANY_PLASTIC.ingot(), 4), new ComparableStack(ModItems.plate_polymer, 24), new ComparableStack(ModItems.magnetron, 10), new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.circuit_gold, 4), new ComparableStack(ModItems.coil_copper, 12), new ComparableStack(ModItems.crt_display, 4), },300); + makeRecipe(new ComparableStack(ModBlocks.machine_radar, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 16), new OreDictStack(ANY_PLASTIC.ingot(), 4), new OreDictStack(ANY_RUBBER.ingot(), 24), new ComparableStack(ModItems.magnetron, 10), new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.circuit_gold, 4), new ComparableStack(ModItems.coil_copper, 12), new ComparableStack(ModItems.crt_display, 4), },300); makeRecipe(new ComparableStack(ModBlocks.machine_forcefield, 1), new AStack[] {new OreDictStack(ALLOY.plate528(), 8), new ComparableStack(ModItems.plate_desh, 4), new ComparableStack(ModItems.coil_gold_torus, 6), new ComparableStack(ModItems.coil_magnetized_tungsten, 12), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.upgrade_radius, 1), new ComparableStack(ModItems.upgrade_health, 1), new ComparableStack(ModItems.circuit_targeting_tier5, 1), new ComparableStack(ModBlocks.machine_transformer, 1), },1000); makeRecipe(new ComparableStack(ModItems.mp_thruster_10_kerosene, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new ComparableStack(ModBlocks.deco_pipe_quad, 1), new OreDictStack(W.ingot(), 4), new OreDictStack(STEEL.plate(), 4), },100); makeRecipe(new ComparableStack(ModItems.mp_thruster_10_solid, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new ComparableStack(ModItems.coil_tungsten, 1), new OreDictStack(DURA.ingot(), 4), new OreDictStack(STEEL.plate(), 4), },100); @@ -433,7 +433,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.mp_warhead_15_n2, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.plate(), 8), new OreDictStack(TI.plate(), 20), new ComparableStack(ModBlocks.det_charge, 24), new ComparableStack(Blocks.redstone_block, 12), new OreDictStack(MAGTUNG.dust(), 6), new ComparableStack(ModItems.circuit_targeting_tier4, 1), },400); makeRecipe(new ComparableStack(ModItems.mp_warhead_15_balefire, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(OreDictManager.getReflector(), 16), new ComparableStack(ModItems.powder_magic, 6), new ComparableStack(ModItems.egg_balefire_shard, 4), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 8), new ComparableStack(ModItems.circuit_targeting_tier4, 1), }, 60); makeRecipe(new ComparableStack(ModItems.missile_soyuz, 1), new AStack[] {new ComparableStack(ModItems.rocket_fuel, 40), new ComparableStack(ModBlocks.det_cord, 20), new ComparableStack(ModItems.thruster_medium, 12), new ComparableStack(ModItems.thruster_small, 12), new ComparableStack(ModItems.tank_steel, 10), new ComparableStack(ModItems.circuit_targeting_tier4, 2), new ComparableStack(ModItems.circuit_targeting_tier3, 8), new OreDictStack(RUBBER.ingot(), 64), new ComparableStack(ModItems.fins_small_steel, 4), new ComparableStack(ModItems.hull_big_titanium, 32), new ComparableStack(ModItems.hull_big_steel, 18), new OreDictStack(FIBER.ingot(), 64), },600); - makeRecipe(new ComparableStack(ModItems.missile_soyuz_lander, 1), new AStack[] {new ComparableStack(ModItems.rocket_fuel, 10), new ComparableStack(ModItems.thruster_small, 3), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModItems.circuit_targeting_tier3, 4), new ComparableStack(ModItems.plate_polymer, 32), new ComparableStack(ModItems.hull_big_aluminium, 2), new ComparableStack(ModItems.sphere_steel, 1), new OreDictStack(FIBER.ingot(), 12), },600); + makeRecipe(new ComparableStack(ModItems.missile_soyuz_lander, 1), new AStack[] {new ComparableStack(ModItems.rocket_fuel, 10), new ComparableStack(ModItems.thruster_small, 3), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModItems.circuit_targeting_tier3, 4), new OreDictStack(ANY_RUBBER.ingot(), 32), new ComparableStack(ModItems.hull_big_aluminium, 2), new ComparableStack(ModItems.sphere_steel, 1), new OreDictStack(FIBER.ingot(), 12), },600); makeRecipe(new ComparableStack(ModItems.fusion_shield_tungsten, 1), new AStack[] {new OreDictStack(W.block(), 32), new OreDictStack(OreDictManager.getReflector(), 96)}, 600); makeRecipe(new ComparableStack(ModItems.fusion_shield_desh, 1), new AStack[] {new OreDictStack(DESH.block(), 16), new OreDictStack(CO.block(), 16), new OreDictStack(BIGMT.plate(), 96)}, 600); makeRecipe(new ComparableStack(ModItems.fusion_shield_chlorophyte, 1), new AStack[] {new OreDictStack(W.block(), 16), new OreDictStack(DURA.block(), 16), new OreDictStack(OreDictManager.getReflector(), 48), new ComparableStack(ModItems.powder_chlorophyte, 48)}, 600); @@ -695,7 +695,7 @@ public class AssemblerRecipes { new OreDictStack(W.ingot(), 32), new OreDictStack(PB.plate(), 16), new OreDictStack(ALLOY.plate(), 4), - new ComparableStack(ModItems.plate_polymer, 4), + new OreDictStack(ANY_RUBBER.ingot(), 4), new ComparableStack(ModItems.bolt_tungsten, 8), new ComparableStack(ModItems.bolt_dura_steel, 8), new ComparableStack(ModItems.motor, 3), @@ -706,7 +706,7 @@ public class AssemblerRecipes { new OreDictStack(W.ingot(), 8), new OreDictStack(PB.plate(), 6), new OreDictStack(ALLOY.plate(), 3), - new ComparableStack(ModItems.plate_polymer, 3), + new OreDictStack(ANY_RUBBER.ingot(), 3), new ComparableStack(ModItems.bolt_tungsten, 3), new ComparableStack(ModItems.bolt_dura_steel, 3), new ComparableStack(ModItems.motor, 1), @@ -1088,7 +1088,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.rbmk_console, 1), new AStack[] { new OreDictStack(STEEL.ingot(), 16), new OreDictStack(AL.plate528(), 32), - new ComparableStack(ModItems.plate_polymer, 16), + new OreDictStack(ANY_RUBBER.ingot(), 16), new ComparableStack(ModItems.circuit_gold, 5), new ComparableStack(ModItems.circuit_tantalium, 20), new ComparableStack(ModItems.crt_display, 8), @@ -1097,7 +1097,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.rbmk_crane_console, 1), new AStack[] { new OreDictStack(STEEL.ingot(), 16), new OreDictStack(AL.plate528(), 8), - new ComparableStack(ModItems.plate_polymer, 4), + new OreDictStack(ANY_RUBBER.ingot(), 4), new ComparableStack(ModItems.circuit_gold, 1), new ComparableStack(ModItems.circuit_tantalium, 10), }, 300); @@ -1199,7 +1199,7 @@ public class AssemblerRecipes { new ComparableStack(ModBlocks.cmb_brick_reinforced, 16), new OreDictStack(STEEL.plate(), 64), new OreDictStack(ALLOY.plate(), 40), - new ComparableStack(ModItems.plate_polymer, 36), + new OreDictStack(ANY_RUBBER.ingot(), 36), new OreDictStack(STEEL.block(), 24), new ComparableStack(ModItems.motor_desh, 16), new ComparableStack(ModItems.bolt_dura_steel, 12), @@ -1210,7 +1210,7 @@ public class AssemblerRecipes { new OreDictStack(STEEL.plate(), 16), new OreDictStack(W.ingot(), 8), new ComparableStack(ModBlocks.reinforced_glass, 4), - new ComparableStack(ModItems.plate_polymer, 4), + new OreDictStack(ANY_RUBBER.ingot(), 4), new ComparableStack(ModItems.bolt_dura_steel, 8), new ComparableStack(ModItems.motor, 2) }, 200); diff --git a/src/main/java/com/hbm/inventory/recipes/MagicRecipes.java b/src/main/java/com/hbm/inventory/recipes/MagicRecipes.java index 0c4e12f45..21e8ca942 100644 --- a/src/main/java/com/hbm/inventory/recipes/MagicRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/MagicRecipes.java @@ -99,7 +99,7 @@ public class MagicRecipes { new OreDictStack(GOLD.plate()))); recipes.add(new MagicRecipe(new ItemStack(ModItems.ammo_dart, 4, ItemAmmoEnums.AmmoDart.NUCLEAR.ordinal()), - new ComparableStack(ModItems.plate_polymer), + new OreDictStack(ANY_RUBBER.ingot()), new ComparableStack(ModItems.nugget_pu239), new ComparableStack(ModItems.circuit_aluminium))); } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 21b01c816..925d77d11 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -345,10 +345,12 @@ public class ModItems { public static Item crayon; public static Item undefined; - + + public static Item ball_resin; public static Item ingot_dura_steel; public static Item ingot_polymer; public static Item ingot_bakelite; + public static Item ingot_biorubber; public static Item ingot_rubber; public static Item ingot_pet; public static Item ingot_pc; @@ -2656,9 +2658,11 @@ public class ModItems { billet_zfb_am_mix = new Item().setUnlocalizedName("billet_zfb_am_mix").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_zfb_am_mix"); billet_nuclear_waste = new Item().setUnlocalizedName("billet_nuclear_waste").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_nuclear_waste"); + ball_resin = new ItemCustomLore().setUnlocalizedName("ball_resin").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ball_resin"); ingot_dura_steel = new ItemCustomLore().setUnlocalizedName("ingot_dura_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_dura_steel"); ingot_polymer = new ItemCustomLore().setUnlocalizedName("ingot_polymer").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_polymer"); ingot_bakelite = new ItemCustomLore().setUnlocalizedName("ingot_bakelite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_bakelite"); + ingot_biorubber = new ItemCustomLore().setUnlocalizedName("ingot_biorubber").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_biorubber"); ingot_rubber = new ItemCustomLore().setUnlocalizedName("ingot_rubber").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_rubber"); //ingot_pet = new ItemCustomLore().setUnlocalizedName("ingot_pet").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_pet"); ingot_pc = new ItemCustomLore().setUnlocalizedName("ingot_pc").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_pc"); @@ -5596,6 +5600,7 @@ public class ModItems { GameRegistry.registerItem(ingot_dura_steel, ingot_dura_steel.getUnlocalizedName()); GameRegistry.registerItem(ingot_polymer, ingot_polymer.getUnlocalizedName()); GameRegistry.registerItem(ingot_bakelite, ingot_bakelite.getUnlocalizedName()); + GameRegistry.registerItem(ingot_biorubber, ingot_biorubber.getUnlocalizedName()); GameRegistry.registerItem(ingot_rubber, ingot_rubber.getUnlocalizedName()); //GameRegistry.registerItem(ingot_pet, ingot_pet.getUnlocalizedName()); GameRegistry.registerItem(ingot_pc, ingot_pc.getUnlocalizedName()); @@ -5850,6 +5855,7 @@ public class ModItems { GameRegistry.registerItem(ball_dynamite, ball_dynamite.getUnlocalizedName()); GameRegistry.registerItem(ball_tnt, ball_tnt.getUnlocalizedName()); GameRegistry.registerItem(ball_tatb, ball_tatb.getUnlocalizedName()); + GameRegistry.registerItem(ball_resin, ball_resin.getUnlocalizedName()); GameRegistry.registerItem(ball_fireclay, ball_fireclay.getUnlocalizedName()); //Ores diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index d54d2267f..34fbbfd48 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -90,7 +90,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.board_copper, 1), new Object[] { "TTT", "TTT", 'T', CU.plate() }); addRecipeAuto(Mats.MAT_IRON.make(ModItems.plate_cast), new Object[] { "BPB", "BPB", "BPB", 'B', ModItems.bolt_tungsten, 'P', IRON.plate() }); addRecipeAuto(new ItemStack(ModItems.hazmat_cloth_red, 1), new Object[] { "C", "R", "C", 'C', ModItems.hazmat_cloth, 'R', REDSTONE.dust() }); - addRecipeAuto(new ItemStack(ModItems.hazmat_cloth_grey, 1), new Object[] { " P ", "ICI", " L ", 'C', ModItems.hazmat_cloth_red, 'P', IRON.plate(), 'L', PB.plate(), 'I', ModItems.plate_polymer }); + addRecipeAuto(new ItemStack(ModItems.hazmat_cloth_grey, 1), new Object[] { " P ", "ICI", " L ", 'C', ModItems.hazmat_cloth_red, 'P', IRON.plate(), 'L', PB.plate(), 'I', ANY_RUBBER.ingot() }); addRecipeAuto(new ItemStack(ModItems.asbestos_cloth, 8), new Object[] { "SCS", "CPC", "SCS", 'S', Items.string, 'P', BR.dust(), 'C', Blocks.wool }); addRecipeAuto(new ItemStack(ModItems.bolt_dura_steel, 4), new Object[] { "D", "D", 'D', DURA.ingot()}); addRecipeAuto(new ItemStack(ModItems.pipes_steel, 1), new Object[] { "B", "B", "B", 'B', STEEL.block() }); @@ -98,6 +98,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.bolt_compound, 1), new Object[] { "PDP", "PTP", "PDP", 'D', ModItems.bolt_dura_steel, 'T', ModItems.bolt_tungsten, 'P', TI.plate() }); addRecipeAuto(new ItemStack(ModItems.pellet_coal, 1), new Object[] { "PFP", "FOF", "PFP", 'P', COAL.dust(), 'F', Items.flint, 'O', ModBlocks.gravel_obsidian }); addRecipeAuto(new ItemStack(ModItems.plate_polymer, 8), new Object[] { "DD", 'D', ANY_PLASTIC.ingot() }); + addRecipeAuto(new ItemStack(ModItems.plate_polymer, 8), new Object[] { "DD", 'D', ANY_RUBBER.ingot() }); addRecipeAuto(new ItemStack(ModItems.plate_polymer, 16), new Object[] { "DD", 'D', FIBER.ingot()}); addRecipeAuto(new ItemStack(ModItems.plate_polymer, 16), new Object[] { "DD", 'D', ASBESTOS.ingot()}); addRecipeAuto(new ItemStack(ModItems.plate_polymer, 4), new Object[] { "SWS", 'S', Items.string, 'W', Blocks.wool }); @@ -259,7 +260,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.conveyor, 16), new Object[] { "LLL", "I I", "LLL", 'L', Items.leather, 'I', IRON.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.conveyor, 16), new Object[] { "RSR", "I I", "RSR", 'I', IRON.ingot(), 'R', DictFrame.fromOne(ModItems.plant_item, EnumPlantType.ROPE), 'S', IRON.plate() }); - addRecipeAuto(new ItemStack(ModBlocks.conveyor, 64), new Object[] { "LLL", "I I", "LLL", 'L', RUBBER.ingot(), 'I', IRON.ingot() }); + addRecipeAuto(new ItemStack(ModBlocks.conveyor, 64), new Object[] { "LLL", "I I", "LLL", 'L', ANY_RUBBER.ingot(), 'I', IRON.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.conveyor_express, 8), new Object[] { "CCC", "CLC", "CCC", 'C', ModBlocks.conveyor, 'L', Fluids.LUBRICANT.getDict(1_000) }); addRecipeAuto(new ItemStack(ModBlocks.conveyor_double, 3), new Object[] { "CPC", "CPC", "CPC", 'C', ModBlocks.conveyor, 'P', IRON.plate() }); addRecipeAuto(new ItemStack(ModBlocks.conveyor_triple, 3), new Object[] { "CPC", "CPC", "CPC", 'C', ModBlocks.conveyor_double, 'P', STEEL.plate() }); @@ -312,7 +313,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.machine_autocrafter, 1), new Object[] { "SCS", "MWM", "SCS", 'S', STEEL.plate(), 'C', ModItems.circuit_copper, 'M', ModItems.motor, 'W', Blocks.crafting_table }); addRecipeAuto(new ItemStack(ModBlocks.machine_waste_drum, 1), new Object[] { "LRL", "BRB", "LRL", 'L', PB.ingot(), 'B', Blocks.iron_bars, 'R', ModItems.rod_quad_empty }); addRecipeAuto(new ItemStack(ModBlocks.machine_press, 1), new Object[] { "IRI", "IPI", "IBI", 'I', IRON.ingot(), 'R', Blocks.furnace, 'B', IRON.block(), 'P', Blocks.piston }); - addRecipeAuto(new ItemStack(ModBlocks.machine_siren, 1), new Object[] { "SIS", "ICI", "SRS", 'S', STEEL.plate(), 'I', ModItems.plate_polymer, 'C', ModItems.circuit_copper, 'R', REDSTONE.dust() }); + addRecipeAuto(new ItemStack(ModBlocks.machine_siren, 1), new Object[] { "SIS", "ICI", "SRS", 'S', STEEL.plate(), 'I', ANY_RUBBER.ingot(), 'C', ModItems.circuit_copper, 'R', REDSTONE.dust() }); addRecipeAuto(new ItemStack(ModBlocks.machine_microwave, 1), new Object[] { "III", "SGM", "IDI", 'I', ModItems.plate_polymer, 'S', STEEL.plate(), 'G', KEY_ANYPANE, 'M', ModItems.magnetron, 'D', ModItems.motor }); addRecipeAuto(new ItemStack(ModBlocks.machine_solar_boiler), new Object[] { "SHS", "DHD", "SHS", 'S', STEEL.ingot(), 'H', ModItems.hull_big_steel, 'D', KEY_BLACK }); addRecipeAuto(new ItemStack(ModBlocks.solar_mirror, 3), new Object[] { "AAA", " B ", "SSS", 'A', AL.plate(), 'B', ModBlocks.steel_beam, 'S', STEEL.ingot() }); @@ -326,7 +327,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.fan), new Object[] { "BPB", "PRP", "BPB", 'B', ModItems.bolt_tungsten, 'P', IRON.plate(), 'R', REDSTONE.dust() }); addRecipeAuto(new ItemStack(ModBlocks.piston_inserter), new Object[] { "ITI", "TPT", "ITI", 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_PNEUMATIC), 'I', IRON.plate(), 'T', ModItems.bolt_tungsten }); - addRecipeAuto(new ItemStack(ModBlocks.muffler, 1), new Object[] { "III", "IWI", "III", 'I', ModItems.plate_polymer, 'W', Blocks.wool }); + addRecipeAuto(new ItemStack(ModBlocks.muffler, 1), new Object[] { "III", "IWI", "III", 'I', ANY_RUBBER.ingot(), 'W', Blocks.wool }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.factory_titanium_hull), 8), new Object[] { "PIP", "I I", "PIP", 'P', TI.plate(), 'I', TI.ingot() }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.factory_advanced_hull), 8), new Object[] { "PIP", "I I", "PIP", 'P', ALLOY.plate(), 'I', ALLOY.ingot() }); @@ -597,8 +598,8 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.wiring_red_copper, 1), new Object[] { "PPP", "PIP", "PPP", 'P', STEEL.plate(), 'I', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModItems.jetpack_tank, 1), new Object[] { " S ", "BKB", " S ", 'S', STEEL.plate(), 'B', ModItems.bolt_tungsten, 'K', Fluids.KEROSENE.getDict(1000) }); - addRecipeAuto(new ItemStack(ModItems.gun_kit_1, 4), new Object[] { "I ", "LB", "P ", 'I', ModItems.plate_polymer, 'L', Fluids.LUBRICANT.getDict(1000), 'B', ModItems.bolt_tungsten, 'P', IRON.plate() }); - addRecipeAuto(new ItemStack(ModItems.gun_kit_2, 1), new Object[] { "III", "GLG", "PPP", 'I', ModItems.plate_polymer, 'L', ModItems.ducttape, 'G', ModItems.gun_kit_1, 'P', IRON.plate() }); + addRecipeAuto(new ItemStack(ModItems.gun_kit_1, 4), new Object[] { "I ", "LB", "P ", 'I', ANY_RUBBER.ingot(), 'L', Fluids.LUBRICANT.getDict(1000), 'B', ModItems.bolt_tungsten, 'P', IRON.plate() }); + addRecipeAuto(new ItemStack(ModItems.gun_kit_2, 1), new Object[] { "III", "GLG", "PPP", 'I', ANY_RUBBER.ingot(), 'L', ModItems.ducttape, 'G', ModItems.gun_kit_1, 'P', IRON.plate() }); addRecipeAuto(new ItemStack(ModItems.igniter, 1), new Object[] { " W", "SC", "CE", 'S', STEEL.plate(), 'W', ModItems.wire_schrabidium, 'C', ModItems.circuit_schrabidium, 'E', EUPH.ingot() }); addRecipeAuto(new ItemStack(ModItems.watch, 1), new Object[] { "LYL", "EWE", "LYL", 'E', EUPH.ingot(), 'L', KEY_BLUE, 'W', Items.clock, 'Y', ModItems.billet_yharonite }); @@ -687,14 +688,14 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.machine_transformer_dnt_20), new Object[] { "SDS", "MCM", "MCM", 'S', STAR.ingot(), 'D', DESH.ingot(), 'M', ModBlocks.fusion_conductor, 'C', ModItems.circuit_targeting_tier6 }); addRecipeAuto(new ItemStack(ModBlocks.radiobox), new Object[] { "PLP", "PSP", "PLP", 'P', STEEL.plate(), 'S', ModItems.ring_starmetal, 'C', ModItems.fusion_core, 'L', getReflector() }); addRecipeAuto(new ItemStack(ModBlocks.radiorec), new Object[] { " W", "PCP", "PIP", 'W', ModItems.wire_copper, 'P', STEEL.plate(), 'C', ModItems.circuit_red_copper, 'I', ANY_PLASTIC.ingot() }); - addRecipeAuto(new ItemStack(ModItems.jackt), new Object[] { "S S", "LIL", "LIL", 'S', STEEL.plate(), 'L', Items.leather, 'I', ModItems.plate_polymer }); - addRecipeAuto(new ItemStack(ModItems.jackt2), new Object[] { "S S", "LIL", "III", 'S', STEEL.plate(), 'L', Items.leather, 'I', ModItems.plate_polymer }); + addRecipeAuto(new ItemStack(ModItems.jackt), new Object[] { "S S", "LIL", "LIL", 'S', STEEL.plate(), 'L', Items.leather, 'I', ANY_RUBBER.ingot() }); + addRecipeAuto(new ItemStack(ModItems.jackt2), new Object[] { "S S", "LIL", "III", 'S', STEEL.plate(), 'L', Items.leather, 'I', ANY_RUBBER.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.vent_chlorine), new Object[] { "IGI", "ICI", "IDI", 'I', IRON.plate(), 'G', Blocks.iron_bars, 'C', ModItems.pellet_gas, 'D', Blocks.dispenser }); addRecipeAuto(new ItemStack(ModBlocks.vent_chlorine_seal), new Object[] { "ISI", "SCS", "ISI", 'I', BIGMT.ingot(), 'S', STAR.ingot(), 'C', ModItems.chlorine_pinwheel }); addRecipeAuto(new ItemStack(ModBlocks.vent_cloud), new Object[] { "IGI", "ICI", "IDI", 'I', IRON.plate(), 'G', Blocks.iron_bars, 'C', ModItems.grenade_cloud, 'D', Blocks.dispenser }); addRecipeAuto(new ItemStack(ModBlocks.vent_pink_cloud), new Object[] { "IGI", "ICI", "IDI", 'I', IRON.plate(), 'G', Blocks.iron_bars, 'C', ModItems.grenade_pink_cloud, 'D', Blocks.dispenser }); addRecipeAuto(new ItemStack(ModBlocks.spikes, 4), new Object[] { "FFF", "BBB", "TTT", 'F', Items.flint, 'B', ModItems.bolt_tungsten, 'T', W.ingot() }); - addRecipeAuto(new ItemStack(ModItems.custom_fall, 1), new Object[] { "IIP", "CHW", "IIP", 'I', ModItems.plate_polymer, 'P', BIGMT.plate(), 'C', ModItems.circuit_red_copper, 'H', ModItems.hull_small_steel, 'W', ModItems.coil_copper }); + addRecipeAuto(new ItemStack(ModItems.custom_fall, 1), new Object[] { "IIP", "CHW", "IIP", 'I', ANY_RUBBER.ingot(), 'P', BIGMT.plate(), 'C', ModItems.circuit_red_copper, 'H', ModItems.hull_small_steel, 'W', ModItems.coil_copper }); addRecipeAuto(new ItemStack(ModBlocks.machine_controller, 1), new Object[] { "TDT", "DCD", "TDT", 'T', ANY_RESISTANTALLOY.ingot(), 'D', ModItems.crt_display, 'C', ModItems.circuit_targeting_tier3 }); addRecipeAuto(new ItemStack(ModItems.containment_box, 1), new Object[] { "LUL", "UCU", "LUL", 'L', PB.plate(), 'U', U238.billet(), 'C', ModBlocks.crate_steel }); @@ -1021,6 +1022,8 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.drone_crate_requester), new Object[] { "T", "C", "B", 'T', ModBlocks.drone_waypoint_request, 'C', ModBlocks.crate_steel, 'B', KEY_YELLOW }); addRecipeAuto(new ItemStack(ModBlocks.drone_crate_provider), new Object[] { "T", "C", "B", 'T', ModBlocks.drone_waypoint_request, 'C', ModBlocks.crate_steel, 'B', KEY_ORANGE }); addRecipeAuto(new ItemStack(ModBlocks.drone_dock), new Object[] { "T", "C", "B", 'T', ModBlocks.drone_waypoint_request, 'C', ModBlocks.crate_steel, 'B', ModItems.circuit_gold }); + + addRecipeAuto(new ItemStack(ModItems.ball_resin), new Object[] { "DD", "DD", 'D', Blocks.yellow_flower }); addShapelessAuto(DictFrame.fromOne(ModItems.parts_legendary, EnumLegendaryType.TIER1), new Object[] { ModItems.ingot_chainsteel, ASBESTOS.ingot(), ModItems.gem_alexandrite }); addShapelessAuto(DictFrame.fromOne(ModItems.parts_legendary, EnumLegendaryType.TIER1, 3), new Object[] { DictFrame.fromOne(ModItems.parts_legendary, EnumLegendaryType.TIER2) }); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 56baffc69..f8684f74d 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -1156,6 +1156,7 @@ item.balefire_and_steel.name=Balefire-Zeug item.balefire_scrambled.name=Rühr-Balefire-Ei item.ball_dynamite.name=Dynamit item.ball_fireclay.name=Schamott +item.ball_resin.name=Löwenzahn-Kautschuk item.ball_tatb.name=TATB item.ball_tnt.name=TNT item.ballistic_gauntlet.name=Ballistischer Panzerhandschuh @@ -2083,6 +2084,7 @@ item.ingot_au198.name=Gold-198-Barren item.ingot_australium.name=Australiumbarren item.ingot_bakelite.name=Bakelittafel item.ingot_beryllium.name=Berylliumbarren +item.ingot_biorubber.name=Latextafel item.ingot_bismuth.name=Bismutbarren item.ingot_boron.name=Borbarren item.ingot_c4.name=C4-Tafel diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index deb978aef..c8dbdf375 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1810,6 +1810,7 @@ item.balefire_and_steel.name=Balefire and Steel item.balefire_scrambled.name=Scrambled Balefire Egg item.ball_dynamite.name=Dynamite item.ball_fireclay.name=Fireclay +item.ball_resin.name=Dandelion Milk item.ball_tatb.name=TATB item.ball_tnt.name=TNT item.ballistic_gauntlet.name=Ballistic Gauntlet @@ -2806,6 +2807,7 @@ item.ingot_au198.name=Gold-198 Ingot item.ingot_australium.name=Australium Ingot item.ingot_bakelite.name=Bakelite Bar item.ingot_beryllium.name=Beryllium Ingot +item.ingot_biorubber.name=Latex Bar item.ingot_bismuth.name=Bismuth Ingot item.ingot_boron.name=Boron Ingot item.ingot_c4.name=Bar of Composition C-4 diff --git a/src/main/resources/assets/hbm/textures/items/ball_resin.png b/src/main/resources/assets/hbm/textures/items/ball_resin.png new file mode 100644 index 0000000000000000000000000000000000000000..5c4657a999e0c6d85d7cac1dbd238d89e4be2146 GIT binary patch literal 255 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfVbgAD1c|UU_+Wfz%<7HE9wK<}IwV#U+5CEPp5O^&kKKR>zz&;QjIIsrH?)l-~RM z>(d`Rd2+;{fphlC8zzTe2dSLb81&GQ#&G-ReFBqUV){G@vL%-Z#Z>`FXK zs=NQ0o0z0j{QqZrhaqQHp%jBL%glb?&jySPo6Pc0C?vh{2Ks=()78&qol`;+0O~$z A@Bjb+ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/ingot_biorubber.png b/src/main/resources/assets/hbm/textures/items/ingot_biorubber.png new file mode 100644 index 0000000000000000000000000000000000000000..7094fdeffdec214e37f8996cb58acb275e1fa840 GIT binary patch literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfmQ$B&M-1+(^mSZQ`F4E6#0M4 zcJuq@*1JF0YhJn_l9|y~o6h&@l}1-VxE||_yARcN?TcXI4W6rQ)fvH6JK4fjYL?A; zP5-AlBKgVD=KXCtl~U{unypicLN2vW3CdW@m~mUILO(G3uj0(6SG%^=|9%{ML-xnM z{^yk*n&}JwwS2qi+2niRYth^mH&%woP1~-|XsXlEpCg*8mMvZr0rUlfr>mdKI;Vst E0K*MqCjbBd literal 0 HcmV?d00001 From 353049c53891062f07c260a8259dcd60558e22df Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 26 Nov 2023 20:22:23 +0100 Subject: [PATCH 384/432] missile rewrite, terrain scan radar --- .../api/hbm/entity/IRadarDetectableNT.java | 15 + .../java/com/hbm/blocks/bomb/LaunchPad.java | 5 + .../blocks/machine/MachineBigAssTank9000.java | 1 - .../com/hbm/blocks/machine/MachineOrbus.java | 1 - .../com/hbm/blocks/machine/MachineRadar.java | 49 ++- .../java/com/hbm/blocks/machine/NTMAnvil.java | 13 +- .../hbm/blocks/network/FluidDuctStandard.java | 2 - .../java/com/hbm/entity/EntityMappings.java | 5 + .../missile/EntityMissileAntiBallistic.java | 4 +- .../entity/missile/EntityMissileBHole.java | 59 ---- .../missile/EntityMissileBaseAdvanced.java | 289 ------------------ .../entity/missile/EntityMissileBaseNT.java | 270 ++++++++++++++++ .../missile/EntityMissileBunkerBuster.java | 55 ---- .../entity/missile/EntityMissileBurst.java | 50 --- .../missile/EntityMissileBusterStrong.java | 54 ---- .../entity/missile/EntityMissileCluster.java | 54 ---- .../missile/EntityMissileClusterStrong.java | 55 ---- .../entity/missile/EntityMissileDoomsday.java | 2 +- .../entity/missile/EntityMissileDrill.java | 58 ---- .../hbm/entity/missile/EntityMissileEMP.java | 59 ---- .../missile/EntityMissileEMPStrong.java | 54 ---- .../hbm/entity/missile/EntityMissileEndo.java | 51 ---- .../hbm/entity/missile/EntityMissileExo.java | 51 ---- .../entity/missile/EntityMissileGeneric.java | 190 ------------ .../missile/EntityMissileIncendiary.java | 47 --- .../EntityMissileIncendiaryStrong.java | 50 --- .../entity/missile/EntityMissileInferno.java | 51 ---- .../entity/missile/EntityMissileMicro.java | 52 ---- .../hbm/entity/missile/EntityMissileMirv.java | 53 ---- .../entity/missile/EntityMissileNuclear.java | 53 ---- .../hbm/entity/missile/EntityMissileRain.java | 55 ---- .../missile/EntityMissileSchrabidium.java | 62 ---- .../entity/missile/EntityMissileShuttle.java | 2 +- .../entity/missile/EntityMissileStrong.java | 48 --- .../entity/missile/EntityMissileTaint.java | 58 ---- .../entity/missile/EntityMissileTier0.java | 108 +++++++ .../entity/missile/EntityMissileTier1.java | 68 +++++ .../entity/missile/EntityMissileTier2.java | 88 ++++++ .../entity/missile/EntityMissileTier3.java | 125 ++++++++ .../entity/missile/EntityMissileTier4.java | 76 +++++ .../entity/missile/EntityMissileVolcano.java | 61 ---- .../entity/projectile/EntityThrowableNT.java | 6 +- .../hbm/inventory/gui/GUIMachineRadarNT.java | 164 +++++++++- .../java/com/hbm/items/tool/ItemWandD.java | 2 - .../com/hbm/items/tool/WeaponSpecial.java | 1 - src/main/java/com/hbm/main/ClientProxy.java | 7 +- .../java/com/hbm/main/ModEventHandler.java | 10 +- src/main/java/com/hbm/packet/BufPacket.java | 6 + .../entity/rocket/RenderMissileGeneric.java | 5 +- .../entity/rocket/RenderMissileHuge.java | 5 +- .../entity/rocket/RenderMissileNuclear.java | 2 +- .../entity/rocket/RenderMissileStrong.java | 6 +- .../entity/rocket/RenderMissileTaint.java | 5 +- .../entity/rocket/RenderMissileThermo.java | 3 +- .../hbm/render/tileentity/RenderRadar.java | 7 +- .../java/com/hbm/tileentity/TileMappings.java | 2 +- .../machine/TileEntityMachineRadarNT.java | 227 +++++++++++--- .../turret/TileEntityTurretBaseNT.java | 4 +- .../hbm/textures/gui/machine/gui_radar_nt.png | Bin 21661 -> 19931 bytes 59 files changed, 1169 insertions(+), 1796 deletions(-) delete mode 100644 src/main/java/com/hbm/entity/missile/EntityMissileBHole.java delete mode 100644 src/main/java/com/hbm/entity/missile/EntityMissileBaseAdvanced.java create mode 100644 src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java delete mode 100644 src/main/java/com/hbm/entity/missile/EntityMissileBunkerBuster.java delete mode 100644 src/main/java/com/hbm/entity/missile/EntityMissileBurst.java delete mode 100644 src/main/java/com/hbm/entity/missile/EntityMissileBusterStrong.java delete mode 100644 src/main/java/com/hbm/entity/missile/EntityMissileCluster.java delete mode 100644 src/main/java/com/hbm/entity/missile/EntityMissileClusterStrong.java delete mode 100644 src/main/java/com/hbm/entity/missile/EntityMissileDrill.java delete mode 100644 src/main/java/com/hbm/entity/missile/EntityMissileEMP.java delete mode 100644 src/main/java/com/hbm/entity/missile/EntityMissileEMPStrong.java delete mode 100644 src/main/java/com/hbm/entity/missile/EntityMissileEndo.java delete mode 100644 src/main/java/com/hbm/entity/missile/EntityMissileExo.java delete mode 100644 src/main/java/com/hbm/entity/missile/EntityMissileGeneric.java delete mode 100644 src/main/java/com/hbm/entity/missile/EntityMissileIncendiary.java delete mode 100644 src/main/java/com/hbm/entity/missile/EntityMissileIncendiaryStrong.java delete mode 100644 src/main/java/com/hbm/entity/missile/EntityMissileInferno.java delete mode 100644 src/main/java/com/hbm/entity/missile/EntityMissileMicro.java delete mode 100644 src/main/java/com/hbm/entity/missile/EntityMissileMirv.java delete mode 100644 src/main/java/com/hbm/entity/missile/EntityMissileNuclear.java delete mode 100644 src/main/java/com/hbm/entity/missile/EntityMissileRain.java delete mode 100644 src/main/java/com/hbm/entity/missile/EntityMissileSchrabidium.java delete mode 100644 src/main/java/com/hbm/entity/missile/EntityMissileStrong.java delete mode 100644 src/main/java/com/hbm/entity/missile/EntityMissileTaint.java create mode 100644 src/main/java/com/hbm/entity/missile/EntityMissileTier0.java create mode 100644 src/main/java/com/hbm/entity/missile/EntityMissileTier1.java create mode 100644 src/main/java/com/hbm/entity/missile/EntityMissileTier2.java create mode 100644 src/main/java/com/hbm/entity/missile/EntityMissileTier3.java create mode 100644 src/main/java/com/hbm/entity/missile/EntityMissileTier4.java delete mode 100644 src/main/java/com/hbm/entity/missile/EntityMissileVolcano.java diff --git a/src/main/java/api/hbm/entity/IRadarDetectableNT.java b/src/main/java/api/hbm/entity/IRadarDetectableNT.java index 83c4bf503..19b3f85bf 100644 --- a/src/main/java/api/hbm/entity/IRadarDetectableNT.java +++ b/src/main/java/api/hbm/entity/IRadarDetectableNT.java @@ -19,4 +19,19 @@ public interface IRadarDetectableNT { public String getUnlocalizedName(); public int getBlipLevel(); public boolean canBeSeenBy(Object radar); + public boolean paramsApplicable(RadarScanParams params); + + public static class RadarScanParams { + public boolean scanMissiles = true; + public boolean scanShells = true; + public boolean scanPlayers = true; + public boolean smartMode = true; + + public RadarScanParams(boolean m, boolean s, boolean p, boolean smart) { + this.scanMissiles = m; + this.scanShells = s; + this.scanPlayers = p; + this.smartMode = smart; + } + } } diff --git a/src/main/java/com/hbm/blocks/bomb/LaunchPad.java b/src/main/java/com/hbm/blocks/bomb/LaunchPad.java index 675fbfd38..79725a555 100644 --- a/src/main/java/com/hbm/blocks/bomb/LaunchPad.java +++ b/src/main/java/com/hbm/blocks/bomb/LaunchPad.java @@ -7,6 +7,11 @@ import org.apache.logging.log4j.Level; import com.hbm.blocks.ModBlocks; import com.hbm.config.GeneralConfig; import com.hbm.entity.missile.*; +import com.hbm.entity.missile.EntityMissileTier0.*; +import com.hbm.entity.missile.EntityMissileTier1.*; +import com.hbm.entity.missile.EntityMissileTier2.*; +import com.hbm.entity.missile.EntityMissileTier3.*; +import com.hbm.entity.missile.EntityMissileTier4.*; import com.hbm.interfaces.IBomb; import com.hbm.interfaces.Spaghetti; import com.hbm.items.ModItems; diff --git a/src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java b/src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java index e0a494ede..300f9b019 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java +++ b/src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java @@ -14,7 +14,6 @@ import com.hbm.main.MainRegistry; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.storage.TileEntityMachineBAT9000; -import com.hbm.tileentity.machine.storage.TileEntityMachineOrbus; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.material.Material; diff --git a/src/main/java/com/hbm/blocks/machine/MachineOrbus.java b/src/main/java/com/hbm/blocks/machine/MachineOrbus.java index 902c24672..445956358 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineOrbus.java +++ b/src/main/java/com/hbm/blocks/machine/MachineOrbus.java @@ -12,7 +12,6 @@ import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.main.MainRegistry; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.TileEntityProxyCombo; -import com.hbm.tileentity.machine.storage.TileEntityMachineFluidTank; import com.hbm.tileentity.machine.storage.TileEntityMachineOrbus; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; diff --git a/src/main/java/com/hbm/blocks/machine/MachineRadar.java b/src/main/java/com/hbm/blocks/machine/MachineRadar.java index 9a7ccb8f6..beaf39189 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineRadar.java +++ b/src/main/java/com/hbm/blocks/machine/MachineRadar.java @@ -1,8 +1,7 @@ package com.hbm.blocks.machine; -import com.hbm.config.WeaponConfig; import com.hbm.main.MainRegistry; -import com.hbm.tileentity.machine.TileEntityMachineRadar; +import com.hbm.tileentity.machine.TileEntityMachineRadarNT; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.BlockContainer; @@ -10,6 +9,8 @@ import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatStyle; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; @@ -21,7 +22,7 @@ public class MachineRadar extends BlockContainer { @Override public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityMachineRadar(); + return new TileEntityMachineRadarNT(); } @Override @@ -42,41 +43,35 @@ public class MachineRadar extends BlockContainer { @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(y < WeaponConfig.radarAltitude) { + if(y < TileEntityMachineRadarNT.radarAltitude) { if(world.isRemote) - player.addChatMessage(new ChatComponentText("[Radar] Error: Radar altitude not sufficient.")); + player.addChatMessage(new ChatComponentText("[Radar] Error: Radar altitude not sufficient.").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.RED))); return true; } - if(world.isRemote) - { + if(world.isRemote) { + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); return true; - } else if(!player.isSneaking()) - { - TileEntityMachineRadar entity = (TileEntityMachineRadar) world.getTileEntity(x, y, z); - if(entity != null) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); - } + } else if(!player.isSneaking()) { return true; } else { return false; } } - public boolean canProvidePower() - { - return true; - } + @Override + public boolean canProvidePower() { + return true; + } - public int isProvidingWeakPower(IBlockAccess world, int x, int y, int z, int m) - { - TileEntityMachineRadar entity = (TileEntityMachineRadar) world.getTileEntity(x, y, z); - return entity.getRedPower(); - } + @Override + public int isProvidingWeakPower(IBlockAccess world, int x, int y, int z, int m) { + TileEntityMachineRadarNT entity = (TileEntityMachineRadarNT) world.getTileEntity(x, y, z); + return entity.getRedPower(); + } - public int isProvidingStrongPower(IBlockAccess world, int x, int y, int z, int m) - { - return isProvidingWeakPower(world, x, y, z, m); - } + @Override + public int isProvidingStrongPower(IBlockAccess world, int x, int y, int z, int m) { + return isProvidingWeakPower(world, x, y, z, m); + } } diff --git a/src/main/java/com/hbm/blocks/machine/NTMAnvil.java b/src/main/java/com/hbm/blocks/machine/NTMAnvil.java index 5a73eb253..c71865430 100644 --- a/src/main/java/com/hbm/blocks/machine/NTMAnvil.java +++ b/src/main/java/com/hbm/blocks/machine/NTMAnvil.java @@ -197,17 +197,10 @@ public class NTMAnvil extends BlockFallingNT implements ITooltipProvider, IGUIPr @SideOnly(Side.CLIENT) public void overrideRenderer(EntityFallingBlockNT falling, RenderBlocks renderBlocks, Tessellator tessellator) { - World world = falling.worldObj; float rotation = 0; - - if(falling.getMeta() == 2) - rotation = 90F / 180F * (float) Math.PI; - - if(falling.getMeta() == 3) - rotation = 270F / 180F * (float) Math.PI; - - if(falling.getMeta() == 4) - rotation = 180F / 180F * (float)Math.PI; + if(falling.getMeta() == 2) rotation = 90F / 180F * (float) Math.PI; + if(falling.getMeta() == 3) rotation = 270F / 180F * (float) Math.PI; + if(falling.getMeta() == 4) rotation = 180F / 180F * (float)Math.PI; tessellator.addTranslation(0F, -0.5F, 0F); ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.anvil, "Top", getIcon(1, 0), tessellator, rotation, true); diff --git a/src/main/java/com/hbm/blocks/network/FluidDuctStandard.java b/src/main/java/com/hbm/blocks/network/FluidDuctStandard.java index 7a6ab966b..e58d7ab02 100644 --- a/src/main/java/com/hbm/blocks/network/FluidDuctStandard.java +++ b/src/main/java/com/hbm/blocks/network/FluidDuctStandard.java @@ -5,7 +5,6 @@ import java.util.List; import com.hbm.blocks.IBlockMulti; import com.hbm.blocks.ILookOverlay; -import com.hbm.blocks.ModBlocks; import com.hbm.blocks.test.TestPipe; import com.hbm.inventory.fluid.FluidType; import com.hbm.items.ModItems; @@ -16,7 +15,6 @@ import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index c0e61d016..cf6c7e0d1 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -9,6 +9,11 @@ import com.hbm.entity.grenade.*; import com.hbm.entity.item.*; import com.hbm.entity.logic.*; import com.hbm.entity.missile.*; +import com.hbm.entity.missile.EntityMissileTier0.*; +import com.hbm.entity.missile.EntityMissileTier1.*; +import com.hbm.entity.missile.EntityMissileTier2.*; +import com.hbm.entity.missile.EntityMissileTier3.*; +import com.hbm.entity.missile.EntityMissileTier4.*; import com.hbm.entity.mob.*; import com.hbm.entity.mob.botprime.*; import com.hbm.entity.mob.siege.*; diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileAntiBallistic.java b/src/main/java/com/hbm/entity/missile/EntityMissileAntiBallistic.java index b350038be..5d6e40d2a 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileAntiBallistic.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileAntiBallistic.java @@ -58,7 +58,7 @@ public class EntityMissileAntiBallistic extends Entity implements IRadarDetectab List list = worldObj.getEntitiesWithinAABBExcludingEntity(null, AxisAlignedBB.getBoundingBox(posX - 5, posY - 5, posZ - 5, posX + 5, posY + 5, posZ + 5)); for(Entity e : list) { - if(e instanceof EntityMissileBaseAdvanced || e instanceof EntityMissileCustom) { + if(e instanceof EntityMissileBaseNT || e instanceof EntityMissileCustom) { ExplosionLarge.explode(worldObj, posX, posY, posZ, 15F, true, false, true); this.setDead(); return; @@ -110,7 +110,7 @@ public class EntityMissileAntiBallistic extends Entity implements IRadarDetectab double closest = 1000D; for(Entity e : list) { - if(e instanceof EntityMissileBaseAdvanced || e instanceof EntityMissileCustom) { + if(e instanceof EntityMissileBaseNT || e instanceof EntityMissileCustom) { double dis = Math.sqrt(Math.pow(e.posX - posX, 2) + Math.pow(e.posY - posY, 2) + Math.pow(e.posZ - posZ, 2)); if(dis < closest) { diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileBHole.java b/src/main/java/com/hbm/entity/missile/EntityMissileBHole.java deleted file mode 100644 index dcc595d05..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileBHole.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.entity.effect.EntityBlackHole; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileBHole extends EntityMissileBaseAdvanced { - - public EntityMissileBHole(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileBHole(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - if (!this.worldObj.isRemote) - { - this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 1.5F, true); - - EntityBlackHole bl = new EntityBlackHole(this.worldObj, 1.5F); - bl.posX = this.posX; - bl.posY = this.posY; - bl.posZ = this.posZ; - this.worldObj.spawnEntityInWorld(bl); - } - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.wire_aluminium, 4)); - list.add(new ItemStack(ModItems.plate_titanium, 4)); - list.add(new ItemStack(ModItems.hull_small_aluminium, 2)); - list.add(new ItemStack(ModItems.ducttape, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier1, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.grenade_black_hole, 1); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER0; - } - -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileBaseAdvanced.java b/src/main/java/com/hbm/entity/missile/EntityMissileBaseAdvanced.java deleted file mode 100644 index 69d128a51..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileBaseAdvanced.java +++ /dev/null @@ -1,289 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.entity.logic.IChunkLoader; -import com.hbm.explosion.ExplosionLarge; -import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxParticlePacket; -import com.hbm.packet.PacketDispatcher; - -import api.hbm.entity.IRadarDetectable; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.entity.Entity; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.DamageSource; -import net.minecraft.util.MathHelper; -import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkCoordIntPair; -import net.minecraft.world.World; -import net.minecraftforge.common.ForgeChunkManager; -import net.minecraftforge.common.ForgeChunkManager.Ticket; -import net.minecraftforge.common.ForgeChunkManager.Type; - -public abstract class EntityMissileBaseAdvanced extends Entity implements IChunkLoader, IRadarDetectable { - - int startX; - int startZ; - int targetX; - int targetZ; - public int velocity; - double decelY; - double accelXZ; - boolean isCluster = false; - private Ticket loaderTicket; - public int health = 50; - - public EntityMissileBaseAdvanced(World p_i1582_1_) { - super(p_i1582_1_); - this.ignoreFrustumCheck = true; - startX = (int) posX; - startZ = (int) posZ; - targetX = (int) posX; - targetZ = (int) posZ; - } - - public boolean canBeCollidedWith() { - return true; - } - - public boolean attackEntityFrom(DamageSource p_70097_1_, float p_70097_2_) { - if(this.isEntityInvulnerable()) { - return false; - } else { - if(!this.isDead && !this.worldObj.isRemote) { - health -= p_70097_2_; - - if(this.health <= 0) { - this.setDead(); - this.killMissile(); - } - } - - return true; - } - } - - private void killMissile() { - ExplosionLarge.explode(worldObj, posX, posY, posZ, 5, true, false, true); - ExplosionLarge.spawnShrapnelShower(worldObj, posX, posY, posZ, motionX, motionY, motionZ, 15, 0.075); - ExplosionLarge.spawnMissileDebris(worldObj, posX, posY, posZ, motionX, motionY, motionZ, 0.25, getDebris(), getDebrisRareDrop()); - } - - public EntityMissileBaseAdvanced(World world, float x, float y, float z, int a, int b) { - super(world); - this.ignoreFrustumCheck = true; - this.setLocationAndAngles(x, y, z, 0, 0); - startX = (int) x; - startZ = (int) z; - targetX = a; - targetZ = b; - this.motionY = 2; - - Vec3 vector = Vec3.createVectorHelper(targetX - startX, 0, targetZ - startZ); - accelXZ = decelY = 1 / vector.lengthVector(); - decelY *= 2; - - velocity = 1; - - this.setSize(1.5F, 1.5F); - } - - @Override - protected void entityInit() { - init(ForgeChunkManager.requestTicket(MainRegistry.instance, worldObj, Type.ENTITY)); - this.dataWatcher.addObject(8, Integer.valueOf(this.health)); - } - - @Override - protected void readEntityFromNBT(NBTTagCompound nbt) { - motionX = nbt.getDouble("moX"); - motionY = nbt.getDouble("moY"); - motionZ = nbt.getDouble("moZ"); - posX = nbt.getDouble("poX"); - posY = nbt.getDouble("poY"); - posZ = nbt.getDouble("poZ"); - decelY = nbt.getDouble("decel"); - accelXZ = nbt.getDouble("accel"); - targetX = nbt.getInteger("tX"); - targetZ = nbt.getInteger("tZ"); - startX = nbt.getInteger("sX"); - startZ = nbt.getInteger("sZ"); - velocity = nbt.getInteger("veloc"); - } - - @Override - protected void writeEntityToNBT(NBTTagCompound nbt) { - nbt.setDouble("moX", motionX); - nbt.setDouble("moY", motionY); - nbt.setDouble("moZ", motionZ); - nbt.setDouble("poX", posX); - nbt.setDouble("poY", posY); - nbt.setDouble("poZ", posZ); - nbt.setDouble("decel", decelY); - nbt.setDouble("accel", accelXZ); - nbt.setInteger("tX", targetX); - nbt.setInteger("tZ", targetZ); - nbt.setInteger("sX", startX); - nbt.setInteger("sZ", startZ); - nbt.setInteger("veloc", velocity); - } - - protected void rotation() { - float f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - - for (this.rotationPitch = (float)(Math.atan2(this.motionY, f2) * 180.0D / Math.PI) - 90; this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F) - { - ; - } - - while (this.rotationPitch - this.prevRotationPitch >= 180.0F) - { - this.prevRotationPitch += 360.0F; - } - - while (this.rotationYaw - this.prevRotationYaw < -180.0F) - { - this.prevRotationYaw -= 360.0F; - } - - while (this.rotationYaw - this.prevRotationYaw >= 180.0F) - { - this.prevRotationYaw += 360.0F; - } - } - - @Override - public void onUpdate() { - - if(velocity < 1) - velocity = 1; - if(this.ticksExisted > 40) - velocity = 3; - else if(this.ticksExisted > 20) - velocity = 2; - - this.dataWatcher.updateObject(8, Integer.valueOf(this.health)); - - this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; - - //TODO: instead of crappy skipping, implement a hitscan - for(int i = 0; i < velocity; i++) { - //this.posX += this.motionX; - //this.posY += this.motionY; - //this.posZ += this.motionZ; - this.setLocationAndAngles(posX + this.motionX, posY + this.motionY, posZ + this.motionZ, 0, 0); - - this.rotation(); - - this.motionY -= decelY; - - Vec3 vector = Vec3.createVectorHelper(targetX - startX, 0, targetZ - startZ); - vector = vector.normalize(); - vector.xCoord *= accelXZ; - vector.zCoord *= accelXZ; - - if(motionY > 0) { - motionX += vector.xCoord; - motionZ += vector.zCoord; - } - - if(motionY < 0) { - motionX -= vector.xCoord; - motionZ -= vector.zCoord; - } - - if(!this.worldObj.isRemote) - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacket(posX, posY, posZ, 2), - new TargetPoint(worldObj.provider.dimensionId, posX, posY, posZ, 300)); - - if(this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.air && - this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.water && - this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.flowing_water) { - - if(!this.worldObj.isRemote) { - onImpact(); - } - this.killAndClear(); - return; - } - - loadNeighboringChunks((int) (posX / 16), (int) (posZ / 16)); - - if(motionY < -1 && this.isCluster && !worldObj.isRemote) { - cluster(); - this.setDead(); - return; - } - } - } - - @Override - @SideOnly(Side.CLIENT) - public boolean isInRangeToRenderDist(double distance) { - return true; - } - - public abstract void onImpact(); - - public abstract List getDebris(); - - public abstract ItemStack getDebrisRareDrop(); - - public void cluster() { } - - public void init(Ticket ticket) { - if(!worldObj.isRemote) { - - if(ticket != null) { - - if(loaderTicket == null) { - - loaderTicket = ticket; - loaderTicket.bindEntity(this); - loaderTicket.getModData(); - } - - ForgeChunkManager.forceChunk(loaderTicket, new ChunkCoordIntPair(chunkCoordX, chunkCoordZ)); - } - } - } - - List loadedChunks = new ArrayList(); - - public void loadNeighboringChunks(int newChunkX, int newChunkZ) { - if(!worldObj.isRemote && loaderTicket != null) { - - clearChunkLoader(); - - loadedChunks.clear(); - loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX + (int) Math.ceil((this.posX + this.motionX) / 16D), newChunkZ + (int) Math.ceil((this.posZ + this.motionZ) / 16D))); - - for(ChunkCoordIntPair chunk : loadedChunks) { - ForgeChunkManager.forceChunk(loaderTicket, chunk); - } - } - } - - public void killAndClear() { - this.setDead(); - this.clearChunkLoader(); - } - - public void clearChunkLoader() { - if(!worldObj.isRemote && loaderTicket != null) { - for(ChunkCoordIntPair chunk : loadedChunks) { - ForgeChunkManager.unforceChunk(loaderTicket, chunk); - } - } - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java b/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java new file mode 100644 index 000000000..766950a91 --- /dev/null +++ b/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java @@ -0,0 +1,270 @@ +package com.hbm.entity.missile; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.entity.logic.IChunkLoader; +import com.hbm.entity.projectile.EntityThrowableInterp; +import com.hbm.explosion.ExplosionLarge; +import com.hbm.main.MainRegistry; + +import api.hbm.entity.IRadarDetectable; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; +import net.minecraft.world.ChunkCoordIntPair; +import net.minecraft.world.World; +import net.minecraftforge.common.ForgeChunkManager; +import net.minecraftforge.common.ForgeChunkManager.Ticket; +import net.minecraftforge.common.ForgeChunkManager.Type; + +public abstract class EntityMissileBaseNT extends EntityThrowableInterp implements IChunkLoader, IRadarDetectable { + + public int startX; + public int startZ; + public int targetX; + public int targetZ; + public double velocity; + public double decelY; + public double accelXZ; + public boolean isCluster = false; + private Ticket loaderTicket; + public int health = 50; + + public EntityMissileBaseNT(World world) { + super(world); + this.ignoreFrustumCheck = true; + startX = (int) posX; + startZ = (int) posZ; + targetX = (int) posX; + targetZ = (int) posZ; + } + + public EntityMissileBaseNT(World world, float x, float y, float z, int a, int b) { + super(world); + this.ignoreFrustumCheck = true; + this.setLocationAndAngles(x, y, z, 0, 0); + startX = (int) x; + startZ = (int) z; + targetX = a; + targetZ = b; + this.motionY = 2; + + Vec3 vector = Vec3.createVectorHelper(targetX - startX, 0, targetZ - startZ); + accelXZ = decelY = 1 / vector.lengthVector(); + decelY *= 2; + velocity = 0; + + this.setSize(1.5F, 1.5F); + } + + @Override + protected void entityInit() { + init(ForgeChunkManager.requestTicket(MainRegistry.instance, worldObj, Type.ENTITY)); + this.dataWatcher.addObject(8, Integer.valueOf(this.health)); + } + + @Override + protected double motionMult() { + return velocity; + } + + @Override + public boolean doesImpactEntities() { + return false; + } + + @Override + public void onUpdate() { + super.onUpdate(); + + if(velocity < 4) velocity += 0.025; + + if(!worldObj.isRemote) { + + this.motionY -= decelY * velocity; + + Vec3 vector = Vec3.createVectorHelper(targetX - startX, 0, targetZ - startZ); + vector = vector.normalize(); + vector.xCoord *= accelXZ; + vector.zCoord *= accelXZ; + + if(motionY > 0) { + motionX += vector.xCoord * velocity; + motionZ += vector.zCoord * velocity; + } + + if(motionY < 0) { + motionX -= vector.xCoord * velocity; + motionZ -= vector.zCoord * velocity; + } + + if(motionY < -velocity && this.isCluster) { + cluster(); + this.setDead(); + return; + } + + loadNeighboringChunks((int) Math.floor(posX / 16), (int) Math.floor(posZ / 16)); + } else { + Vec3 vec = Vec3.createVectorHelper(motionX, motionY, motionZ).normalize(); + MainRegistry.proxy.particleControl(posX - vec.xCoord, posY - vec.yCoord, posZ - vec.zCoord, 2); + } + + float f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); + this.rotationYaw = (float) (Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); + for(this.rotationPitch = (float) (Math.atan2(this.motionY, f2) * 180.0D / Math.PI) - 90; this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F); + while(this.rotationPitch - this.prevRotationPitch >= 180.0F) this.prevRotationPitch += 360.0F; + while(this.rotationYaw - this.prevRotationYaw < -180.0F) this.prevRotationYaw -= 360.0F; + while(this.rotationYaw - this.prevRotationYaw >= 180.0F) this.prevRotationYaw += 360.0F; + } + + @Override + public void readEntityFromNBT(NBTTagCompound nbt) { + super.readEntityFromNBT(nbt); + motionX = nbt.getDouble("moX"); + motionY = nbt.getDouble("moY"); + motionZ = nbt.getDouble("moZ"); + posX = nbt.getDouble("poX"); + posY = nbt.getDouble("poY"); + posZ = nbt.getDouble("poZ"); + decelY = nbt.getDouble("decel"); + accelXZ = nbt.getDouble("accel"); + targetX = nbt.getInteger("tX"); + targetZ = nbt.getInteger("tZ"); + startX = nbt.getInteger("sX"); + startZ = nbt.getInteger("sZ"); + velocity = nbt.getDouble("veloc"); + } + + @Override + public void writeEntityToNBT(NBTTagCompound nbt) { + super.writeEntityToNBT(nbt); + nbt.setDouble("moX", motionX); + nbt.setDouble("moY", motionY); + nbt.setDouble("moZ", motionZ); + nbt.setDouble("poX", posX); + nbt.setDouble("poY", posY); + nbt.setDouble("poZ", posZ); + nbt.setDouble("decel", decelY); + nbt.setDouble("accel", accelXZ); + nbt.setInteger("tX", targetX); + nbt.setInteger("tZ", targetZ); + nbt.setInteger("sX", startX); + nbt.setInteger("sZ", startZ); + nbt.setDouble("veloc", velocity); + } + + public boolean canBeCollidedWith() { + return true; + } + + public boolean attackEntityFrom(DamageSource source, float amount) { + if(this.isEntityInvulnerable()) { + return false; + } else { + if(!this.isDead && !this.worldObj.isRemote) { + health -= amount; + + if(this.health <= 0) { + this.killMissile(); + } + } + + return true; + } + } + + private void killMissile() { + ExplosionLarge.explode(worldObj, posX, posY, posZ, 5, true, false, true); + ExplosionLarge.spawnShrapnelShower(worldObj, posX, posY, posZ, motionX, motionY, motionZ, 15, 0.075); + ExplosionLarge.spawnMissileDebris(worldObj, posX, posY, posZ, motionX, motionY, motionZ, 0.25, getDebris(), getDebrisRareDrop()); + this.killAndClear(); + } + + @Override + @SideOnly(Side.CLIENT) + public boolean isInRangeToRenderDist(double distance) { + return true; + } + + @Override + protected void onImpact(MovingObjectPosition mop) { + if(mop != null && mop.typeOfHit == mop.typeOfHit.BLOCK) { + this.onImpact(); + this.killAndClear(); + } + } + + public abstract void onImpact(); + public abstract List getDebris(); + public abstract ItemStack getDebrisRareDrop(); + public void cluster() { } + + @Override + public double getGravityVelocity() { + return 0.0D; + } + + @Override + protected float getAirDrag() { + return 1F; + } + + @Override + protected float getWaterDrag() { + return 1F; + } + + public void init(Ticket ticket) { + if(!worldObj.isRemote) { + + if(ticket != null) { + + if(loaderTicket == null) { + + loaderTicket = ticket; + loaderTicket.bindEntity(this); + loaderTicket.getModData(); + } + + ForgeChunkManager.forceChunk(loaderTicket, new ChunkCoordIntPair(chunkCoordX, chunkCoordZ)); + } + } + } + + List loadedChunks = new ArrayList(); + + public void loadNeighboringChunks(int newChunkX, int newChunkZ) { + if(!worldObj.isRemote && loaderTicket != null) { + + clearChunkLoader(); + + loadedChunks.clear(); + loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ)); + loadedChunks.add(new ChunkCoordIntPair(newChunkX + (int) Math.floor((this.posX + this.motionX * this.motionMult()) / 16D), newChunkZ + (int) Math.floor((this.posZ + this.motionZ * this.motionMult()) / 16D))); + + for(ChunkCoordIntPair chunk : loadedChunks) { + ForgeChunkManager.forceChunk(loaderTicket, chunk); + } + } + } + + public void killAndClear() { + this.setDead(); + this.clearChunkLoader(); + } + + public void clearChunkLoader() { + if(!worldObj.isRemote && loaderTicket != null) { + for(ChunkCoordIntPair chunk : loadedChunks) { + ForgeChunkManager.unforceChunk(loaderTicket, chunk); + } + } + } +} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileBunkerBuster.java b/src/main/java/com/hbm/entity/missile/EntityMissileBunkerBuster.java deleted file mode 100644 index b23a22063..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileBunkerBuster.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.explosion.ExplosionLarge; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileBunkerBuster extends EntityMissileBaseAdvanced { - - public EntityMissileBunkerBuster(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileBunkerBuster(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - for(int i = 0; i < 15; i++) - { - this.worldObj.createExplosion(this, this.posX, this.posY - i, this.posZ, 5F, true); - } - - ExplosionLarge.spawnParticles(worldObj, this.posX, this.posY, this.posZ, 5); - ExplosionLarge.spawnShrapnels(worldObj, this.posX, this.posY, this.posZ, 5); - ExplosionLarge.spawnRubble(worldObj, this.posX, this.posY, this.posZ, 5); - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.plate_titanium, 4)); - list.add(new ItemStack(ModItems.thruster_small, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier1, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.warhead_buster_small); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER1; - } - -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileBurst.java b/src/main/java/com/hbm/entity/missile/EntityMissileBurst.java deleted file mode 100644 index b9285eb32..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileBurst.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.explosion.ExplosionLarge; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileBurst extends EntityMissileBaseAdvanced { - - public EntityMissileBurst(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileBurst(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - for(int i = 0; i < 4; i++) - this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 50.0F, true); - ExplosionLarge.explode(worldObj, posX, posY, posZ, 50.0F, true, true, true); - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.plate_steel, 16)); - list.add(new ItemStack(ModItems.plate_titanium, 10)); - list.add(new ItemStack(ModItems.thruster_large, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier3, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.warhead_generic_large); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER3; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileBusterStrong.java b/src/main/java/com/hbm/entity/missile/EntityMissileBusterStrong.java deleted file mode 100644 index ac4e903b6..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileBusterStrong.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.explosion.ExplosionLarge; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileBusterStrong extends EntityMissileBaseAdvanced { - - public EntityMissileBusterStrong(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileBusterStrong(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - for(int i = 0; i < 20; i++) - { - this.worldObj.createExplosion(this, this.posX, this.posY - i, this.posZ, 7.5F, true); - } - ExplosionLarge.spawnParticles(worldObj, this.posX, this.posY, this.posZ, 8); - ExplosionLarge.spawnShrapnels(worldObj, this.posX, this.posY, this.posZ, 8); - ExplosionLarge.spawnRubble(worldObj, this.posX, this.posY, this.posZ, 8); - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.plate_steel, 10)); - list.add(new ItemStack(ModItems.plate_titanium, 6)); - list.add(new ItemStack(ModItems.thruster_medium, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier2, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.warhead_buster_medium); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER2; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileCluster.java b/src/main/java/com/hbm/entity/missile/EntityMissileCluster.java deleted file mode 100644 index 38ac71f9a..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileCluster.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.explosion.ExplosionChaos; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileCluster extends EntityMissileBaseAdvanced { - - public EntityMissileCluster(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileCluster(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - this.isCluster = true; - } - - @Override - public void onImpact() { - this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 5F, true); - ExplosionChaos.cluster(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 25, 100); - } - - @Override - public void cluster() { - this.onImpact(); - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.plate_titanium, 4)); - list.add(new ItemStack(ModItems.thruster_small, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier1, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.warhead_cluster_small); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER1; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileClusterStrong.java b/src/main/java/com/hbm/entity/missile/EntityMissileClusterStrong.java deleted file mode 100644 index 81a3cab63..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileClusterStrong.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.explosion.ExplosionChaos; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileClusterStrong extends EntityMissileBaseAdvanced { - - public EntityMissileClusterStrong(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileClusterStrong(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - this.isCluster = true; - } - - @Override - public void onImpact() { - this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 15F, true); - ExplosionChaos.cluster(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 50, 100); - } - - @Override - public void cluster() { - this.onImpact(); - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.plate_steel, 10)); - list.add(new ItemStack(ModItems.plate_titanium, 6)); - list.add(new ItemStack(ModItems.thruster_medium, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier2, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.warhead_cluster_medium); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER2; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileDoomsday.java b/src/main/java/com/hbm/entity/missile/EntityMissileDoomsday.java index 7b1d42a36..e4f8609b4 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileDoomsday.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileDoomsday.java @@ -7,7 +7,7 @@ import com.hbm.explosion.ExplosionLarge; import net.minecraft.item.ItemStack; import net.minecraft.world.World; -public class EntityMissileDoomsday extends EntityMissileBaseAdvanced { +public class EntityMissileDoomsday extends EntityMissileBaseNT { public EntityMissileDoomsday(World p_i1582_1_) { super(p_i1582_1_); diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileDrill.java b/src/main/java/com/hbm/entity/missile/EntityMissileDrill.java deleted file mode 100644 index 3c0ab3442..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileDrill.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.explosion.ExplosionLarge; -import com.hbm.explosion.ExplosionNT; -import com.hbm.explosion.ExplosionNT.ExAttrib; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileDrill extends EntityMissileBaseAdvanced { - - public EntityMissileDrill(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileDrill(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - for(int i = 0; i < 30; i++) - { - ExplosionNT explosion = new ExplosionNT(worldObj, this, this.posX, this.posY - i, this.posZ, 10F); - explosion.addAllAttrib(ExAttrib.ERRODE); - explosion.explode(); //an explosion exploded! - } - ExplosionLarge.spawnParticles(worldObj, this.posX, this.posY, this.posZ, 25); - ExplosionLarge.spawnShrapnels(worldObj, this.posX, this.posY, this.posZ, 12); - ExplosionLarge.jolt(worldObj, this.posX, this.posY, this.posZ, 10, 50, 1); - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.plate_steel, 16)); - list.add(new ItemStack(ModItems.plate_titanium, 10)); - list.add(new ItemStack(ModItems.thruster_large, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier3, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.warhead_buster_large); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER3; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileEMP.java b/src/main/java/com/hbm/entity/missile/EntityMissileEMP.java deleted file mode 100644 index bd6ce0281..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileEMP.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.blocks.ModBlocks; -import com.hbm.entity.effect.EntityEMPBlast; -import com.hbm.explosion.ExplosionNukeGeneric; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileEMP extends EntityMissileBaseAdvanced { - - public EntityMissileEMP(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileEMP(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - if (!this.worldObj.isRemote) - { - ExplosionNukeGeneric.empBlast(worldObj, (int)posX, (int)posY, (int)posZ, 50); - EntityEMPBlast wave = new EntityEMPBlast(worldObj, 50); - wave.posX = posX; - wave.posY = posY; - wave.posZ = posZ; - worldObj.spawnEntityInWorld(wave); - } - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.wire_aluminium, 4)); - list.add(new ItemStack(ModItems.plate_titanium, 4)); - list.add(new ItemStack(ModItems.hull_small_aluminium, 2)); - list.add(new ItemStack(ModItems.ducttape, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier1, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModBlocks.emp_bomb, 1); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER0; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileEMPStrong.java b/src/main/java/com/hbm/entity/missile/EntityMissileEMPStrong.java deleted file mode 100644 index 4253cbaa6..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileEMPStrong.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.entity.logic.EntityEMP; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileEMPStrong extends EntityMissileBaseAdvanced { - - public EntityMissileEMPStrong(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileEMPStrong(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - - EntityEMP emp = new EntityEMP(worldObj); - emp.posX = posX; - emp.posY = posY; - emp.posZ = posZ; - - worldObj.spawnEntityInWorld(emp); - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.plate_steel, 10)); - list.add(new ItemStack(ModItems.plate_titanium, 6)); - list.add(new ItemStack(ModItems.thruster_medium, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier2, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.warhead_generic_medium); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER2; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileEndo.java b/src/main/java/com/hbm/entity/missile/EntityMissileEndo.java deleted file mode 100644 index e1205b606..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileEndo.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.explosion.ExplosionThermo; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileEndo extends EntityMissileBaseAdvanced { - - public EntityMissileEndo(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileEndo(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 10.0F, true); - ExplosionThermo.freeze(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 30); - ExplosionThermo.freezer(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 40); - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.plate_titanium, 10)); - list.add(new ItemStack(ModItems.plate_steel, 14)); - list.add(new ItemStack(ModItems.plate_aluminium, 8)); - list.add(new ItemStack(ModItems.thruster_large, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier4, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.warhead_thermo_exo); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER3; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileExo.java b/src/main/java/com/hbm/entity/missile/EntityMissileExo.java deleted file mode 100644 index 494bebb06..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileExo.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.explosion.ExplosionThermo; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileExo extends EntityMissileBaseAdvanced { - - public EntityMissileExo(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileExo(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 10.0F, true); - ExplosionThermo.scorch(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 30); - ExplosionThermo.setEntitiesOnFire(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 40); - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.plate_titanium, 10)); - list.add(new ItemStack(ModItems.plate_steel, 14)); - list.add(new ItemStack(ModItems.plate_aluminium, 8)); - list.add(new ItemStack(ModItems.thruster_large, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier4, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.warhead_thermo_exo); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER3; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileGeneric.java b/src/main/java/com/hbm/entity/missile/EntityMissileGeneric.java deleted file mode 100644 index b1ad0f37b..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileGeneric.java +++ /dev/null @@ -1,190 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.explosion.ExplosionLarge; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileGeneric extends EntityMissileBaseAdvanced { - - public EntityMissileGeneric(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileGeneric(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - ExplosionLarge.explode(worldObj, posX, posY, posZ, 10.0F, true, true, true); - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.plate_titanium, 4)); - list.add(new ItemStack(ModItems.thruster_small, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier1, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.warhead_generic_small); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER1; - } - - /*public EntityMissileGeneric(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileGeneric(World p_i1582_1_, int x, int z, double a, double b, double c) { - super(p_i1582_1_, x, z, a, b, c); - } - - @Override - public void onUpdate() - { - - this.posX += this.motionX; - this.posY += this.motionY; - this.posZ += this.motionZ; - - this.rotation(); - - switch(phase) - { - case 0: - if(loc0 != null) - { - freePizzaGoddammit(loc0); - if(loc0.posX + 2 > this.posX && loc0.posX - 2 < this.posX && - loc0.posY + 2 > this.posY && loc0.posY - 2 < this.posY && - loc0.posZ + 2 > this.posZ && loc0.posZ - 2 < this.posZ) - { - this.phase = 1; - } - } - break; - case 1: - if(loc1 != null) - { - freePizzaGoddammit(loc1); - if(loc1.posX + 2 > this.posX && loc1.posX - 2 < this.posX && - loc1.posY + 2 > this.posY && loc1.posY - 2 < this.posY && - loc1.posZ + 2 > this.posZ && loc1.posZ - 2 < this.posZ) - { - this.phase = 2; - } - } - break; - case 2: - if(loc2 != null) - { - freePizzaGoddammit(loc2); - if(loc2.posX + 2 > this.posX && loc2.posX - 2 < this.posX && - loc2.posY + 2 > this.posY && loc2.posY - 2 < this.posY && - loc2.posZ + 2 > this.posZ && loc2.posZ - 2 < this.posZ) - { - this.phase = 3; - } - } - break; - case 3: - if(loc3 != null) - { - freePizzaGoddammit(loc3); - if(loc3.posX + 2 > this.posX && loc3.posX - 2 < this.posX && - loc3.posY + 2 > this.posY && loc3.posY - 2 < this.posY && - loc3.posZ + 2 > this.posZ && loc3.posZ - 2 < this.posZ) - { - this.phase = 4; - } - } - break; - case 4: - if(loc4 != null) - { - freePizzaGoddammit(loc4); - if(loc4.posX + 2 > this.posX && loc4.posX - 2 < this.posX && - loc4.posY + 2 > this.posY && loc4.posY - 2 < this.posY && - loc4.posZ + 2 > this.posZ && loc4.posZ - 2 < this.posZ) - { - this.phase = 5; - } - } - break; - case 5: - if(loc5 != null) - { - freePizzaGoddammit(loc5); - if(loc5.posX + 2 > this.posX && loc5.posX - 2 < this.posX && - loc5.posY + 2 > this.posY && loc5.posY - 2 < this.posY && - loc5.posZ + 2 > this.posZ && loc5.posZ - 2 < this.posZ) - { - this.phase = 6; - } - } - break; - case 6: - if(loc6 != null) - { - freePizzaGoddammit(loc6); - if(loc6.posX + 2 > this.posX && loc6.posX - 2 < this.posX && - loc6.posY + 2 > this.posY && loc6.posY - 2 < this.posY && - loc6.posZ + 2 > this.posZ && loc6.posZ - 2 < this.posZ) - { - this.phase = 7; - } - } - break; - case 7: - if(loc7 != null) - { - freePizzaGoddammit(loc7); - if(loc7.posX + 2 > this.posX && loc7.posX - 2 < this.posX && - loc7.posY + 2 > this.posY && loc7.posY - 2 < this.posY && - loc7.posZ + 2 > this.posZ && loc7.posZ - 2 < this.posZ) - { - this.phase = 8; - } - } - break; - case 8: - if(target != null) - { - freePizzaGoddammit(target); - if(target.posX + 2 > this.posX && target.posX - 2 < this.posX && - target.posY + 2 > this.posY && target.posY - 2 < this.posY && - target.posZ + 2 > this.posZ && target.posZ - 2 < this.posZ) - { - this.phase = -1; - } - } - break; - } - - this.worldObj.spawnEntityInWorld(new EntitySmokeFX(this.worldObj, this.posX, this.posY, this.posZ, 0.0, 0.0, 0.0)); - - if(this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.air && this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.water && this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.flowing_water) - { - if(!this.worldObj.isRemote) - { - ExplosionLarge.explode(worldObj, posX, posY, posZ, 10.0F, true, true, true); - } - this.setDead(); - } - }*/ - -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileIncendiary.java b/src/main/java/com/hbm/entity/missile/EntityMissileIncendiary.java deleted file mode 100644 index 709e2e1f3..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileIncendiary.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.explosion.ExplosionLarge; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileIncendiary extends EntityMissileBaseAdvanced { - - public EntityMissileIncendiary(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileIncendiary(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - ExplosionLarge.explodeFire(worldObj, this.posX + 0.5F, this.posY + 0.5F, this.posZ + 0.5F, 10.0F, true, true, true); - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.plate_titanium, 4)); - list.add(new ItemStack(ModItems.thruster_small, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier1, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.warhead_incendiary_small); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER1; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileIncendiaryStrong.java b/src/main/java/com/hbm/entity/missile/EntityMissileIncendiaryStrong.java deleted file mode 100644 index 56e8b86d6..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileIncendiaryStrong.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.explosion.ExplosionChaos; -import com.hbm.explosion.ExplosionLarge; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileIncendiaryStrong extends EntityMissileBaseAdvanced { - - public EntityMissileIncendiaryStrong(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileIncendiaryStrong(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - ExplosionLarge.explodeFire(worldObj, this.posX + 0.5F, this.posY + 0.5F, this.posZ + 0.5F, 25.0F, true, true, true); - ExplosionChaos.flameDeath(this.worldObj, (int)((float)this.posX + 0.5F), (int)((float)this.posY + 0.5F), (int)((float)this.posZ + 0.5F), 25); - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.plate_steel, 10)); - list.add(new ItemStack(ModItems.plate_titanium, 6)); - list.add(new ItemStack(ModItems.thruster_medium, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier2, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.warhead_incendiary_medium); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER2; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileInferno.java b/src/main/java/com/hbm/entity/missile/EntityMissileInferno.java deleted file mode 100644 index 4109390b0..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileInferno.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.explosion.ExplosionChaos; -import com.hbm.explosion.ExplosionLarge; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileInferno extends EntityMissileBaseAdvanced { - - public EntityMissileInferno(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileInferno(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - ExplosionLarge.explodeFire(worldObj, this.posX + 0.5F, this.posY + 0.5F, this.posZ + 0.5F, 35.0F, true, true, true); - ExplosionChaos.burn(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 10); - ExplosionChaos.flameDeath(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 25); - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.plate_steel, 16)); - list.add(new ItemStack(ModItems.plate_titanium, 10)); - list.add(new ItemStack(ModItems.thruster_large, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier3, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.warhead_incendiary_large); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER3; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileMicro.java b/src/main/java/com/hbm/entity/missile/EntityMissileMicro.java deleted file mode 100644 index a85d7a980..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileMicro.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.explosion.ExplosionNukeSmall; -import com.hbm.items.ItemAmmoEnums.AmmoFatman; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileMicro extends EntityMissileBaseAdvanced { - - public EntityMissileMicro(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileMicro(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - if(!this.worldObj.isRemote) { - ExplosionNukeSmall.explode(worldObj, posX, posY + 0.5, posZ, ExplosionNukeSmall.PARAMS_HIGH); - } - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.wire_aluminium, 4)); - list.add(new ItemStack(ModItems.plate_titanium, 4)); - list.add(new ItemStack(ModItems.hull_small_aluminium, 2)); - list.add(new ItemStack(ModItems.ducttape, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier1, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return ModItems.ammo_nuke.stackFromEnum(AmmoFatman.HIGH); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER0; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileMirv.java b/src/main/java/com/hbm/entity/missile/EntityMissileMirv.java deleted file mode 100644 index e5dbe3db7..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileMirv.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.config.BombConfig; -import com.hbm.entity.effect.EntityNukeTorex; -import com.hbm.entity.logic.EntityNukeExplosionMK5; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileMirv extends EntityMissileBaseAdvanced { - - public EntityMissileMirv(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileMirv(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - - worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, BombConfig.missileRadius * 2, posX, posY, posZ)); - EntityNukeTorex.statFac(worldObj, posX, posY, posZ, BombConfig.missileRadius * 2); - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.plate_titanium, 16)); - list.add(new ItemStack(ModItems.plate_steel, 20)); - list.add(new ItemStack(ModItems.plate_aluminium, 12)); - list.add(new ItemStack(ModItems.thruster_large, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier5, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.warhead_mirv); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER4; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileNuclear.java b/src/main/java/com/hbm/entity/missile/EntityMissileNuclear.java deleted file mode 100644 index f7db04860..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileNuclear.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.config.BombConfig; -import com.hbm.entity.effect.EntityNukeTorex; -import com.hbm.entity.logic.EntityNukeExplosionMK5; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileNuclear extends EntityMissileBaseAdvanced { - - public EntityMissileNuclear(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileNuclear(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - - this.worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, BombConfig.missileRadius, posX, posY, posZ)); - EntityNukeTorex.statFac(worldObj, posX, posY, posZ, BombConfig.missileRadius); - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.plate_titanium, 16)); - list.add(new ItemStack(ModItems.plate_steel, 20)); - list.add(new ItemStack(ModItems.plate_aluminium, 12)); - list.add(new ItemStack(ModItems.thruster_large, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier4, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.warhead_nuclear); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER4; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileRain.java b/src/main/java/com/hbm/entity/missile/EntityMissileRain.java deleted file mode 100644 index 877fe54c4..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileRain.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.explosion.ExplosionChaos; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileRain extends EntityMissileBaseAdvanced { - - public EntityMissileRain(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileRain(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - this.isCluster = true; - } - - @Override - public void onImpact() { - this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 25F, true); - ExplosionChaos.cluster(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 100, 100); - } - - @Override - public void cluster() { - this.onImpact(); - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.plate_steel, 16)); - list.add(new ItemStack(ModItems.plate_titanium, 10)); - list.add(new ItemStack(ModItems.thruster_large, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier3, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.warhead_cluster_large); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER3; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileSchrabidium.java b/src/main/java/com/hbm/entity/missile/EntityMissileSchrabidium.java deleted file mode 100644 index c197026bc..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileSchrabidium.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.config.BombConfig; -import com.hbm.entity.effect.EntityCloudFleija; -import com.hbm.entity.logic.EntityNukeExplosionMK3; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileSchrabidium extends EntityMissileBaseAdvanced { - - public EntityMissileSchrabidium(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileSchrabidium(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - if(!this.worldObj.isRemote) { - EntityNukeExplosionMK3 ex = EntityNukeExplosionMK3.statFacFleija(worldObj, posX, posY, posZ, BombConfig.aSchrabRadius); - if(!ex.isDead) { - worldObj.spawnEntityInWorld(ex); - - EntityCloudFleija cloud = new EntityCloudFleija(this.worldObj, BombConfig.aSchrabRadius); - cloud.posX = this.posX; - cloud.posY = this.posY; - cloud.posZ = this.posZ; - this.worldObj.spawnEntityInWorld(cloud); - } - } - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.wire_aluminium, 4)); - list.add(new ItemStack(ModItems.plate_titanium, 4)); - list.add(new ItemStack(ModItems.hull_small_aluminium, 2)); - list.add(new ItemStack(ModItems.ducttape, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier1, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.powder_schrabidium, 1); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER0; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileShuttle.java b/src/main/java/com/hbm/entity/missile/EntityMissileShuttle.java index c662a383d..42edb75dd 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileShuttle.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileShuttle.java @@ -17,7 +17,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; -public class EntityMissileShuttle extends EntityMissileBaseAdvanced { +public class EntityMissileShuttle extends EntityMissileBaseNT { public EntityMissileShuttle(World p_i1582_1_) { super(p_i1582_1_); diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileStrong.java b/src/main/java/com/hbm/entity/missile/EntityMissileStrong.java deleted file mode 100644 index 60d2486d2..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileStrong.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.explosion.ExplosionLarge; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileStrong extends EntityMissileBaseAdvanced { - - public EntityMissileStrong(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileStrong(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - ExplosionLarge.explode(worldObj, posX, posY, posZ, 25.0F, true, true, true); - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.plate_steel, 10)); - list.add(new ItemStack(ModItems.plate_titanium, 6)); - list.add(new ItemStack(ModItems.thruster_medium, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier2, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.warhead_generic_medium); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER2; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileTaint.java b/src/main/java/com/hbm/entity/missile/EntityMissileTaint.java deleted file mode 100644 index b536b4410..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileTaint.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.blocks.ModBlocks; -import com.hbm.blocks.bomb.BlockTaint; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileTaint extends EntityMissileBaseAdvanced { - - public EntityMissileTaint(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileTaint(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 10.0F, true); - - for(int i = 0; i < 100; i++) { - int a = rand.nextInt(11) + (int)this.posX - 5; - int b = rand.nextInt(11) + (int)this.posY - 5; - int c = rand.nextInt(11) + (int)this.posZ - 5; - if(worldObj.getBlock(a, b, c).isReplaceable(worldObj, a, b, c) && BlockTaint.hasPosNeightbour(worldObj, a, b, c)) - worldObj.setBlock(a, b, c, ModBlocks.taint); - } - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.wire_aluminium, 4)); - list.add(new ItemStack(ModItems.plate_titanium, 4)); - list.add(new ItemStack(ModItems.hull_small_aluminium, 2)); - list.add(new ItemStack(ModItems.powder_magic, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier1, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.powder_spark_mix, 1); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER0; - } -} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileTier0.java b/src/main/java/com/hbm/entity/missile/EntityMissileTier0.java new file mode 100644 index 000000000..e3aee4b0b --- /dev/null +++ b/src/main/java/com/hbm/entity/missile/EntityMissileTier0.java @@ -0,0 +1,108 @@ +package com.hbm.entity.missile; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.bomb.BlockTaint; +import com.hbm.config.BombConfig; +import com.hbm.entity.effect.EntityBlackHole; +import com.hbm.entity.effect.EntityCloudFleija; +import com.hbm.entity.effect.EntityEMPBlast; +import com.hbm.entity.logic.EntityNukeExplosionMK3; +import com.hbm.explosion.ExplosionNukeGeneric; +import com.hbm.explosion.ExplosionNukeSmall; +import com.hbm.items.ModItems; +import com.hbm.items.ItemAmmoEnums.AmmoFatman; + +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public abstract class EntityMissileTier0 extends EntityMissileBaseNT { + + public EntityMissileTier0(World world) { super(world); } + public EntityMissileTier0(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + + @Override + public List getDebris() { + List list = new ArrayList(); + list.add(new ItemStack(ModItems.wire_aluminium, 4)); + list.add(new ItemStack(ModItems.plate_titanium, 4)); + list.add(new ItemStack(ModItems.hull_small_aluminium, 2)); + list.add(new ItemStack(ModItems.ducttape, 1)); + list.add(new ItemStack(ModItems.circuit_targeting_tier1, 1)); + return list; + } + + @Override + public RadarTargetType getTargetType() { + return RadarTargetType.MISSILE_TIER0; + } + + public static class EntityMissileMicro extends EntityMissileTier0 { + public EntityMissileMicro(World world) { super(world); } + public EntityMissileMicro(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { ExplosionNukeSmall.explode(worldObj, posX, posY + 0.5, posZ, ExplosionNukeSmall.PARAMS_HIGH); } + @Override public ItemStack getDebrisRareDrop() { return ModItems.ammo_nuke.stackFromEnum(AmmoFatman.HIGH); } + } + + public static class EntityMissileSchrabidium extends EntityMissileTier0 { + public EntityMissileSchrabidium(World world) { super(world); } + public EntityMissileSchrabidium(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { + EntityNukeExplosionMK3 ex = EntityNukeExplosionMK3.statFacFleija(worldObj, posX, posY, posZ, BombConfig.aSchrabRadius); + if(!ex.isDead) { + worldObj.spawnEntityInWorld(ex); + EntityCloudFleija cloud = new EntityCloudFleija(this.worldObj, BombConfig.aSchrabRadius); + cloud.posX = this.posX; + cloud.posY = this.posY; + cloud.posZ = this.posZ; + this.worldObj.spawnEntityInWorld(cloud); + } + } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.powder_schrabidium, 1); } + } + + public static class EntityMissileBHole extends EntityMissileTier0 { + public EntityMissileBHole(World world) { super(world); } + public EntityMissileBHole(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { + this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 1.5F, true); + EntityBlackHole bl = new EntityBlackHole(this.worldObj, 1.5F); + bl.posX = this.posX; + bl.posY = this.posY; + bl.posZ = this.posZ; + this.worldObj.spawnEntityInWorld(bl); + } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.grenade_black_hole, 1); } + } + + public static class EntityMissileTaint extends EntityMissileTier0 { + public EntityMissileTaint(World world) { super(world); } + public EntityMissileTaint(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { + this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 10.0F, true); + for(int i = 0; i < 100; i++) { + int a = rand.nextInt(11) + (int) this.posX - 5; + int b = rand.nextInt(11) + (int) this.posY - 5; + int c = rand.nextInt(11) + (int) this.posZ - 5; + if(worldObj.getBlock(a, b, c).isReplaceable(worldObj, a, b, c) && BlockTaint.hasPosNeightbour(worldObj, a, b, c)) worldObj.setBlock(a, b, c, ModBlocks.taint); + } + } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.powder_spark_mix, 1); } + } + + public static class EntityMissileEMP extends EntityMissileTier0 { + public EntityMissileEMP(World world) { super(world); } + public EntityMissileEMP(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { + ExplosionNukeGeneric.empBlast(worldObj, (int)posX, (int)posY, (int)posZ, 50); + EntityEMPBlast wave = new EntityEMPBlast(worldObj, 50); + wave.posX = posX; + wave.posY = posY; + wave.posZ = posZ; + worldObj.spawnEntityInWorld(wave); + } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModBlocks.emp_bomb, 1); } + } +} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileTier1.java b/src/main/java/com/hbm/entity/missile/EntityMissileTier1.java new file mode 100644 index 000000000..8fe5cae83 --- /dev/null +++ b/src/main/java/com/hbm/entity/missile/EntityMissileTier1.java @@ -0,0 +1,68 @@ +package com.hbm.entity.missile; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.explosion.ExplosionChaos; +import com.hbm.explosion.ExplosionLarge; +import com.hbm.items.ModItems; + +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public abstract class EntityMissileTier1 extends EntityMissileBaseNT { + + public EntityMissileTier1(World world) { super(world); } + public EntityMissileTier1(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + + @Override + public List getDebris() { + List list = new ArrayList(); + list.add(new ItemStack(ModItems.plate_titanium, 4)); + list.add(new ItemStack(ModItems.thruster_small, 1)); + list.add(new ItemStack(ModItems.circuit_targeting_tier1, 1)); + return list; + } + + @Override + public RadarTargetType getTargetType() { + return RadarTargetType.MISSILE_TIER1; + } + + public static class EntityMissileGeneric extends EntityMissileTier1 { + public EntityMissileGeneric(World world) { super(world); } + public EntityMissileGeneric(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { ExplosionLarge.explode(worldObj, posX, posY, posZ, 10.0F, true, true, true); } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_generic_small); } + } + + public static class EntityMissileIncendiary extends EntityMissileTier1 { + public EntityMissileIncendiary(World world) { super(world); } + public EntityMissileIncendiary(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { ExplosionLarge.explodeFire(worldObj, this.posX + 0.5F, this.posY + 0.5F, this.posZ + 0.5F, 10.0F, true, true, true); } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_incendiary_small); } + } + + public static class EntityMissileCluster extends EntityMissileTier1 { + public EntityMissileCluster(World world) { super(world); } + public EntityMissileCluster(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); this.isCluster = true; } + @Override public void onImpact() { + this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 5F, true); + ExplosionChaos.cluster(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 25, 100); + } + @Override public void cluster() { this.onImpact(); } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_cluster_small); } + } + + public static class EntityMissileBunkerBuster extends EntityMissileTier1 { + public EntityMissileBunkerBuster(World world) { super(world); } + public EntityMissileBunkerBuster(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { + for(int i = 0; i < 15; i++) this.worldObj.createExplosion(this, this.posX, this.posY - i, this.posZ, 5F, true); + ExplosionLarge.spawnParticles(worldObj, this.posX, this.posY, this.posZ, 5); + ExplosionLarge.spawnShrapnels(worldObj, this.posX, this.posY, this.posZ, 5); + ExplosionLarge.spawnRubble(worldObj, this.posX, this.posY, this.posZ, 5); + } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_buster_small); } + } +} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileTier2.java b/src/main/java/com/hbm/entity/missile/EntityMissileTier2.java new file mode 100644 index 000000000..9296e0448 --- /dev/null +++ b/src/main/java/com/hbm/entity/missile/EntityMissileTier2.java @@ -0,0 +1,88 @@ +package com.hbm.entity.missile; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.entity.logic.EntityEMP; +import com.hbm.explosion.ExplosionChaos; +import com.hbm.explosion.ExplosionLarge; +import com.hbm.items.ModItems; + +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public abstract class EntityMissileTier2 extends EntityMissileBaseNT { + + public EntityMissileTier2(World world) { super(world); } + public EntityMissileTier2(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + + @Override + public List getDebris() { + List list = new ArrayList(); + + list.add(new ItemStack(ModItems.plate_steel, 10)); + list.add(new ItemStack(ModItems.plate_titanium, 6)); + list.add(new ItemStack(ModItems.thruster_medium, 1)); + list.add(new ItemStack(ModItems.circuit_targeting_tier2, 1)); + + return list; + } + + @Override + public RadarTargetType getTargetType() { + return RadarTargetType.MISSILE_TIER2; + } + + public static class EntityMissileStrong extends EntityMissileTier2 { + public EntityMissileStrong(World world) { super(world); } + public EntityMissileStrong(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { ExplosionLarge.explode(worldObj, posX, posY, posZ, 25.0F, true, true, true); } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_generic_medium); } + } + + public static class EntityMissileIncendiaryStrong extends EntityMissileTier2 { + public EntityMissileIncendiaryStrong(World world) { super(world); } + public EntityMissileIncendiaryStrong(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { + ExplosionLarge.explodeFire(worldObj, this.posX + 0.5F, this.posY + 0.5F, this.posZ + 0.5F, 25.0F, true, true, true); + ExplosionChaos.flameDeath(this.worldObj, (int)((float)this.posX + 0.5F), (int)((float)this.posY + 0.5F), (int)((float)this.posZ + 0.5F), 25); + } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_incendiary_medium); } + } + + public static class EntityMissileClusterStrong extends EntityMissileTier2 { + public EntityMissileClusterStrong(World world) { super(world); } + public EntityMissileClusterStrong(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); this.isCluster = true; } + @Override public void onImpact() { + this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 15F, true); + ExplosionChaos.cluster(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 50, 100); + } + @Override public void cluster() { this.onImpact(); } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_cluster_medium); } + } + + public static class EntityMissileBusterStrong extends EntityMissileTier2 { + public EntityMissileBusterStrong(World world) { super(world); } + public EntityMissileBusterStrong(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { + for(int i = 0; i < 20; i++) this.worldObj.createExplosion(this, this.posX, this.posY - i, this.posZ, 7.5F, true); + ExplosionLarge.spawnParticles(worldObj, this.posX, this.posY, this.posZ, 8); + ExplosionLarge.spawnShrapnels(worldObj, this.posX, this.posY, this.posZ, 8); + ExplosionLarge.spawnRubble(worldObj, this.posX, this.posY, this.posZ, 8); + } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_buster_medium); } + } + + public static class EntityMissileEMPStrong extends EntityMissileTier2 { + public EntityMissileEMPStrong(World world) { super(world); } + public EntityMissileEMPStrong(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { + EntityEMP emp = new EntityEMP(worldObj); + emp.posX = posX; + emp.posY = posY; + emp.posZ = posZ; + worldObj.spawnEntityInWorld(emp); + } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_generic_medium); } + } +} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileTier3.java b/src/main/java/com/hbm/entity/missile/EntityMissileTier3.java new file mode 100644 index 000000000..11c527b0e --- /dev/null +++ b/src/main/java/com/hbm/entity/missile/EntityMissileTier3.java @@ -0,0 +1,125 @@ +package com.hbm.entity.missile; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.explosion.ExplosionChaos; +import com.hbm.explosion.ExplosionLarge; +import com.hbm.explosion.ExplosionNT; +import com.hbm.explosion.ExplosionThermo; +import com.hbm.explosion.ExplosionNT.ExAttrib; +import com.hbm.items.ModItems; + +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public abstract class EntityMissileTier3 extends EntityMissileBaseNT { + + public EntityMissileTier3(World world) { super(world); } + public EntityMissileTier3(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + + @Override + public List getDebris() { + List list = new ArrayList(); + + list.add(new ItemStack(ModItems.plate_steel, 16)); + list.add(new ItemStack(ModItems.plate_titanium, 10)); + list.add(new ItemStack(ModItems.thruster_large, 1)); + list.add(new ItemStack(ModItems.circuit_targeting_tier3, 1)); + + return list; + } + + @Override + public RadarTargetType getTargetType() { + return RadarTargetType.MISSILE_TIER3; + } + + public static class EntityMissileBurst extends EntityMissileTier3 { + public EntityMissileBurst(World world) { super(world); } + public EntityMissileBurst(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { + for(int i = 0; i < 4; i++) this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 50.0F, true); + ExplosionLarge.explode(worldObj, posX, posY, posZ, 50.0F, true, true, true); + } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_generic_large); } + } + + public static class EntityMissileInferno extends EntityMissileTier3 { + public EntityMissileInferno(World world) { super(world); } + public EntityMissileInferno(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { + ExplosionLarge.explodeFire(worldObj, this.posX + 0.5F, this.posY + 0.5F, this.posZ + 0.5F, 35.0F, true, true, true); + ExplosionChaos.burn(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 10); + ExplosionChaos.flameDeath(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 25); + } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_incendiary_large); } + } + + public static class EntityMissileRain extends EntityMissileTier3 { + public EntityMissileRain(World world) { super(world); } + public EntityMissileRain(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); this.isCluster = true; } + @Override public void onImpact() { + this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 25F, true); + ExplosionChaos.cluster(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 100, 100); + } + @Override public void cluster() { this.onImpact(); } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_cluster_large); } + } + + public static class EntityMissileDrill extends EntityMissileTier3 { + public EntityMissileDrill(World world) { super(world); } + public EntityMissileDrill(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { + for(int i = 0; i < 30; i++) { + ExplosionNT explosion = new ExplosionNT(worldObj, this, this.posX, this.posY - i, this.posZ, 10F); + explosion.addAllAttrib(ExAttrib.ERRODE); + explosion.explode(); //an explosion exploded! + } + ExplosionLarge.spawnParticles(worldObj, this.posX, this.posY, this.posZ, 25); + ExplosionLarge.spawnShrapnels(worldObj, this.posX, this.posY, this.posZ, 12); + ExplosionLarge.jolt(worldObj, this.posX, this.posY, this.posZ, 10, 50, 1); + } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_buster_large); } + } + + public static class EntityMissileEndo extends EntityMissileTier3 { + public EntityMissileEndo(World world) { super(world); } + public EntityMissileEndo(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { + this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 10.0F, true); + ExplosionThermo.freeze(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 30); + ExplosionThermo.freezer(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 40); + } + @Override public List getDebris() { + List list = new ArrayList(); + list.add(new ItemStack(ModItems.plate_titanium, 10)); + list.add(new ItemStack(ModItems.plate_steel, 14)); + list.add(new ItemStack(ModItems.plate_aluminium, 8)); + list.add(new ItemStack(ModItems.thruster_large, 1)); + list.add(new ItemStack(ModItems.circuit_targeting_tier4, 1)); + return list; + } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_thermo_exo); } + } + + public static class EntityMissileExo extends EntityMissileTier3 { + public EntityMissileExo(World world) { super(world); } + public EntityMissileExo(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { + this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 10.0F, true); + ExplosionThermo.scorch(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 30); + ExplosionThermo.setEntitiesOnFire(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 40); + } + @Override public List getDebris() { + List list = new ArrayList(); + list.add(new ItemStack(ModItems.plate_titanium, 10)); + list.add(new ItemStack(ModItems.plate_steel, 14)); + list.add(new ItemStack(ModItems.plate_aluminium, 8)); + list.add(new ItemStack(ModItems.thruster_large, 1)); + list.add(new ItemStack(ModItems.circuit_targeting_tier4, 1)); + return list; + } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_thermo_exo); } + } +} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileTier4.java b/src/main/java/com/hbm/entity/missile/EntityMissileTier4.java new file mode 100644 index 000000000..7e859c779 --- /dev/null +++ b/src/main/java/com/hbm/entity/missile/EntityMissileTier4.java @@ -0,0 +1,76 @@ +package com.hbm.entity.missile; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.blocks.ModBlocks; +import com.hbm.config.BombConfig; +import com.hbm.entity.effect.EntityNukeTorex; +import com.hbm.entity.logic.EntityNukeExplosionMK5; +import com.hbm.explosion.ExplosionLarge; +import com.hbm.items.ModItems; + +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public abstract class EntityMissileTier4 extends EntityMissileBaseNT { + + public EntityMissileTier4(World world) { super(world); } + public EntityMissileTier4(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + + @Override + public List getDebris() { + List list = new ArrayList(); + list.add(new ItemStack(ModItems.plate_titanium, 16)); + list.add(new ItemStack(ModItems.plate_steel, 20)); + list.add(new ItemStack(ModItems.plate_aluminium, 12)); + list.add(new ItemStack(ModItems.thruster_large, 1)); + list.add(new ItemStack(ModItems.circuit_targeting_tier4, 1)); + return list; + } + + @Override + public RadarTargetType getTargetType() { + return RadarTargetType.MISSILE_TIER1; + } + + public static class EntityMissileNuclear extends EntityMissileTier4 { + public EntityMissileNuclear(World world) { super(world); } + public EntityMissileNuclear(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { + this.worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, BombConfig.missileRadius, posX, posY, posZ)); + EntityNukeTorex.statFac(worldObj, posX, posY, posZ, BombConfig.missileRadius); + } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_nuclear); } + } + + public static class EntityMissileMirv extends EntityMissileTier4 { + public EntityMissileMirv(World world) { super(world); } + public EntityMissileMirv(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { + worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, BombConfig.missileRadius * 2, posX, posY, posZ)); + EntityNukeTorex.statFac(worldObj, posX, posY, posZ, BombConfig.missileRadius * 2); + } + @Override public List getDebris() { + List list = new ArrayList(); + list.add(new ItemStack(ModItems.plate_titanium, 16)); + list.add(new ItemStack(ModItems.plate_steel, 20)); + list.add(new ItemStack(ModItems.plate_aluminium, 12)); + list.add(new ItemStack(ModItems.thruster_large, 1)); + list.add(new ItemStack(ModItems.circuit_targeting_tier5, 1)); + return list; + } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_mirv); } + } + + public static class EntityMissileVolcano extends EntityMissileTier4 { + public EntityMissileVolcano(World world) { super(world); } + public EntityMissileVolcano(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { + ExplosionLarge.explode(worldObj, posX, posY, posZ, 10.0F, true, true, true); + for(int x = -1; x <= 1; x++) for(int y = -1; y <= 1; y++) for(int z = -1; z <= 1; z++) worldObj.setBlock((int)Math.floor(posX + x), (int)Math.floor(posY + y), (int)Math.floor(posZ + z), ModBlocks.volcanic_lava_block); + worldObj.setBlock((int)Math.floor(posX), (int)Math.floor(posY), (int)Math.floor(posZ), ModBlocks.volcano_core); + } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_volcano); } + } +} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileVolcano.java b/src/main/java/com/hbm/entity/missile/EntityMissileVolcano.java deleted file mode 100644 index 4a8ccbebf..000000000 --- a/src/main/java/com/hbm/entity/missile/EntityMissileVolcano.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.hbm.entity.missile; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.blocks.ModBlocks; -import com.hbm.explosion.ExplosionLarge; -import com.hbm.items.ModItems; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class EntityMissileVolcano extends EntityMissileBaseAdvanced { - - public EntityMissileVolcano(World p_i1582_1_) { - super(p_i1582_1_); - } - - public EntityMissileVolcano(World world, float x, float y, float z, int a, int b) { - super(world, x, y, z, a, b); - } - - @Override - public void onImpact() { - - ExplosionLarge.explode(worldObj, posX, posY, posZ, 10.0F, true, true, true); - - for(int x = -1; x <= 1; x++) { - for(int y = -1; y <= 1; y++) { - for(int z = -1; z <= 1; z++) { - worldObj.setBlock((int)Math.floor(posX + x), (int)Math.floor(posY + y), (int)Math.floor(posZ + z), ModBlocks.volcanic_lava_block); - } - } - } - - worldObj.setBlock((int)Math.floor(posX), (int)Math.floor(posY), (int)Math.floor(posZ), ModBlocks.volcano_core); - } - - @Override - public List getDebris() { - List list = new ArrayList(); - - list.add(new ItemStack(ModItems.plate_titanium, 16)); - list.add(new ItemStack(ModItems.plate_steel, 20)); - list.add(new ItemStack(ModItems.plate_aluminium, 12)); - list.add(new ItemStack(ModItems.thruster_large, 1)); - list.add(new ItemStack(ModItems.circuit_targeting_tier4, 1)); - - return list; - } - - @Override - public ItemStack getDebrisRareDrop() { - return new ItemStack(ModItems.warhead_volcano); - } - - @Override - public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER4; - } -} diff --git a/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java b/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java index c07a22bd8..40964b9d3 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java +++ b/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java @@ -185,7 +185,7 @@ public abstract class EntityThrowableNT extends Entity implements IProjectile { nextPos = Vec3.createVectorHelper(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord); } - if(!this.worldObj.isRemote) { + if(!this.worldObj.isRemote && this.doesImpactEntities()) { Entity hitEntity = null; List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox.addCoord(this.motionX * motionMult(), this.motionY * motionMult(), this.motionZ * motionMult()).expand(1.0D, 1.0D, 1.0D)); @@ -282,6 +282,10 @@ public abstract class EntityThrowableNT extends Entity implements IProjectile { } } + public boolean doesImpactEntities() { + return true; + } + public boolean doesPenetrate() { return false; } diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNT.java b/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNT.java index 3c91249bf..2be6a3266 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNT.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNT.java @@ -5,12 +5,20 @@ import java.util.Arrays; import org.lwjgl.opengl.GL11; import com.hbm.lib.RefStrings; +import com.hbm.packet.NBTControlPacket; +import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.machine.TileEntityMachineRadarNT; +import com.hbm.util.BobMathUtil; import com.hbm.util.I18nUtil; +import api.hbm.entity.RadarEntry; import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.ResourceLocation; +import net.minecraft.util.Vec3; public class GUIMachineRadarNT extends GuiScreen { @@ -33,6 +41,27 @@ public class GUIMachineRadarNT extends GuiScreen { this.guiTop = (this.height - this.ySize) / 2; } + @Override + protected void mouseClicked(int x, int y, int i) { + super.mouseClicked(x, y, i); + + String cmd = null; + + if(checkClick(x, y, -10, 88, 8, 8)) cmd = "missiles"; + if(checkClick(x, y, -10, 98, 8, 8)) cmd = "shells"; + if(checkClick(x, y, -10, 108, 8, 8)) cmd = "players"; + if(checkClick(x, y, -10, 118, 8, 8)) cmd = "smart"; + if(checkClick(x, y, -10, 128, 8, 8)) cmd = "red"; + if(checkClick(x, y, -10, 138, 8, 8)) cmd = "map"; + + if(cmd != null) { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + data.setBoolean(cmd, true); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, radar.xCoord, radar.yCoord, radar.zCoord)); + } + } + @Override public void drawScreen(int mouseX, int mouseY, float f) { this.drawDefaultBackground(); @@ -42,22 +71,143 @@ public class GUIMachineRadarNT extends GuiScreen { GL11.glEnable(GL11.GL_LIGHTING); } - private void drawGuiContainerForegroundLayer(int x, int y) { - if(checkClick(x, y, -10, 88, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.detectMissiles")), x, y); - if(checkClick(x, y, -10, 98, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.detectShells")), x, y); - if(checkClick(x, y, -10, 108, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.detectPlayers")), x, y); - if(checkClick(x, y, -10, 118, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.smartMode")), x, y); - if(checkClick(x, y, -10, 128, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.redMode")), x, y); - if(checkClick(x, y, -10, 138, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.showMap")), x, y); + private void drawGuiContainerForegroundLayer(int mouseX, int mouseY) { + + if(checkClick(mouseX, mouseY, 8, 221, 200, 7)) this.func_146283_a(Arrays.asList(BobMathUtil.getShortNumber(radar.power) + "/" + BobMathUtil.getShortNumber(radar.maxPower) + "HE"), mouseX, mouseY); + + if(checkClick(mouseX, mouseY, -10, 88, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.detectMissiles")), mouseX, mouseY); + if(checkClick(mouseX, mouseY, -10, 98, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.detectShells")), mouseX, mouseY); + if(checkClick(mouseX, mouseY, -10, 108, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.detectPlayers")), mouseX, mouseY); + if(checkClick(mouseX, mouseY, -10, 118, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.smartMode")), mouseX, mouseY); + if(checkClick(mouseX, mouseY, -10, 128, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.redMode")), mouseX, mouseY); + if(checkClick(mouseX, mouseY, -10, 138, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.showMap")), mouseX, mouseY); + + if(!radar.entries.isEmpty()) { + for(RadarEntry m : radar.entries) { + int x = guiLeft + (int)((m.posX - radar.xCoord) / ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) * (200D - 8D)) + 108; + int z = guiTop + (int)((m.posZ - radar.zCoord) / ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) * (200D - 8D)) + 117; + + if(mouseX + 5 > x && mouseX - 4 <= x && mouseY + 5 > z && mouseY - 4 <= z) { + + String[] text = new String[] { I18nUtil.resolveKey(m.unlocalizedName), m.posX + " / " + m.posZ, "Alt.: " + m.posY }; + this.func_146283_a(Arrays.asList(text), x, z); + return; + } + } + } } private void drawGuiContainerBackgroundLayer(float f, int mouseX, int mouseY) { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + drawTexturedModalRect(guiLeft - 14, guiTop + 84, 224, 0, 14, 66); + + if(radar.scanMissiles ^ (radar.jammed && radar.getWorldObj().rand.nextBoolean())) drawTexturedModalRect(guiLeft - 10, guiTop + 88, 238, 4, 8, 8); + if(radar.scanShells ^ (radar.jammed && radar.getWorldObj().rand.nextBoolean())) drawTexturedModalRect(guiLeft - 10, guiTop + 98, 238, 14, 8, 8); + if(radar.scanPlayers ^ (radar.jammed && radar.getWorldObj().rand.nextBoolean())) drawTexturedModalRect(guiLeft - 10, guiTop + 108, 238, 24, 8, 8); + if(radar.smartMode ^ (radar.jammed && radar.getWorldObj().rand.nextBoolean())) drawTexturedModalRect(guiLeft - 10, guiTop + 118, 238, 34, 8, 8); + if(radar.redMode ^ (radar.jammed && radar.getWorldObj().rand.nextBoolean())) drawTexturedModalRect(guiLeft - 10, guiTop + 128, 238, 44, 8, 8); + if(radar.showMap ^ (radar.jammed && radar.getWorldObj().rand.nextBoolean())) drawTexturedModalRect(guiLeft - 10, guiTop + 138, 238, 54, 8, 8); + + if(radar.jammed) { + for(int i = 0; i < 5; i++) { + for(int j = 0; j < 5; j++) { + drawTexturedModalRect(guiLeft + 8 + i * 40, guiTop + 17 + j * 40, 216, 118 + radar.getWorldObj().rand.nextInt(81), 40, 40); + } + } + return; + } + + if(radar.showMap) { + Tessellator tess = Tessellator.instance; + GL11.glDisable(GL11.GL_TEXTURE_2D); + tess.startDrawingQuads(); + for(int i = 0; i < 40_000; i++) { + int iX = i % 200; + int iZ = i / 200; + byte b = radar.map[i]; + if(b > 0) { + int color = ((b * 8) % 256) << 8; + tess.setColorOpaque_I(color); + tess.addVertex(guiLeft + 8 + iX, guiTop + 18 + iZ, this.zLevel); + tess.addVertex(guiLeft + 9 + iX, guiTop + 18 + iZ, this.zLevel); + tess.addVertex(guiLeft + 9 + iX, guiTop + 17 + iZ, this.zLevel); + tess.addVertex(guiLeft + 8 + iX, guiTop + 17 + iZ, this.zLevel); + } + } + tess.draw(); + GL11.glEnable(GL11.GL_TEXTURE_2D); + } + + Vec3 tr = Vec3.createVectorHelper(100, 0, 0); + Vec3 tl = Vec3.createVectorHelper(100, 0, 0); + Vec3 bl = Vec3.createVectorHelper(0, -5, 0); + float rot = -(radar.getWorldObj().getTotalWorldTime() + f) / 20F % (float) (Math.PI * 2); + tr.rotateAroundZ(rot); + tl.rotateAroundZ(rot + 0.25F); + bl.rotateAroundZ(rot); + + GL11.glDisable(GL11.GL_TEXTURE_2D); + GL11.glEnable(GL11.GL_BLEND); + GL11.glDisable(GL11.GL_ALPHA_TEST); + GL11.glShadeModel(GL11.GL_SMOOTH); + Tessellator tess = Tessellator.instance; + tess.startDrawingQuads(); + tess.setColorRGBA_I(0x00ff00, 0); tess.addVertex(guiLeft + 108, guiTop + 117, this.zLevel); + tess.setColorRGBA_I(0x00ff00, 255); tess.addVertex(guiLeft + 108 + tr.xCoord, guiTop + 117 + tr.yCoord, this.zLevel); + tess.setColorRGBA_I(0x00ff00, 0); tess.addVertex(guiLeft + 108 + tl.xCoord, guiTop + 117 + tl.yCoord, this.zLevel); + tess.setColorRGBA_I(0x00ff00, 0); tess.addVertex(guiLeft + 108 + bl.xCoord, guiTop + 117 + bl.yCoord, this.zLevel); + tess.draw(); + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glDisable(GL11.GL_BLEND); + GL11.glEnable(GL11.GL_ALPHA_TEST); + GL11.glShadeModel(GL11.GL_FLAT); + + if(!radar.entries.isEmpty()) { + for(RadarEntry m : radar.entries) { + double x = (m.posX - radar.xCoord) / ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) * (200D - 8D) - 4D; + double z = (m.posZ - radar.zCoord) / ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) * (200D - 8D) - 4D; + int t = m.blipLevel; + drawTexturedModalRectDouble(guiLeft + 108 + x, guiTop + 117 + z, 216, 8 * t, 8, 8); + } + } + } + + public void drawTexturedModalRectDouble(double x, double y, int sourceX, int sourceY, int sizeX, int sizeY) { + float f = 0.00390625F; + float f1 = 0.00390625F; + Tessellator tessellator = Tessellator.instance; + tessellator.startDrawingQuads(); + tessellator.addVertexWithUV(x, y + sizeY, this.zLevel, (sourceX + 0) * f, (sourceY + sizeY) * f1); + tessellator.addVertexWithUV(x + sizeX, y + sizeY, this.zLevel, (sourceX + sizeX) * f, (sourceY + sizeY) * f1); + tessellator.addVertexWithUV(x + sizeX, y, this.zLevel, (sourceX + sizeX) * f, (sourceY + 0) * f1); + tessellator.addVertexWithUV(x, y, this.zLevel, (sourceX + 0) * f, (sourceY + 0) * f1); + tessellator.draw(); } protected boolean checkClick(int x, int y, int left, int top, int sizeX, int sizeY) { return guiLeft + left <= x && guiLeft + left + sizeX > x && guiTop + top < y && guiTop + top + sizeY >= y; } + + @Override + protected void keyTyped(char c, int key) { + if(key == 1 || key == this.mc.gameSettings.keyBindInventory.getKeyCode()) { + this.mc.thePlayer.closeScreen(); + } + } + + @Override + public boolean doesGuiPauseGame() { + return false; + } + + @Override + public void updateScreen() { + super.updateScreen(); + + if(!this.mc.thePlayer.isEntityAlive() || this.mc.thePlayer.isDead) { + this.mc.thePlayer.closeScreen(); + } + } } diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index 2c76d2e96..3c1a0da33 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -2,10 +2,8 @@ package com.hbm.items.tool; import java.util.List; -import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.lib.Library; import com.hbm.saveddata.TomSaveData; -import com.hbm.util.TrackerUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; diff --git a/src/main/java/com/hbm/items/tool/WeaponSpecial.java b/src/main/java/com/hbm/items/tool/WeaponSpecial.java index c59daa016..7d8f177dc 100644 --- a/src/main/java/com/hbm/items/tool/WeaponSpecial.java +++ b/src/main/java/com/hbm/items/tool/WeaponSpecial.java @@ -23,7 +23,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.item.ItemSword; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; -import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.Vec3; import net.minecraft.world.World; diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 4ccab463c..4774e9a31 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -57,6 +57,11 @@ import com.hbm.entity.grenade.*; import com.hbm.entity.item.*; import com.hbm.entity.logic.*; import com.hbm.entity.missile.*; +import com.hbm.entity.missile.EntityMissileTier0.*; +import com.hbm.entity.missile.EntityMissileTier1.*; +import com.hbm.entity.missile.EntityMissileTier2.*; +import com.hbm.entity.missile.EntityMissileTier3.*; +import com.hbm.entity.missile.EntityMissileTier4.*; import com.hbm.entity.mob.*; import com.hbm.entity.mob.botprime.*; import com.hbm.entity.mob.siege.*; @@ -236,7 +241,7 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachinePress.class, new RenderPress()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineEPress.class, new RenderEPress()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineRadGen.class, new RenderRadGen()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineRadar.class, new RenderRadar()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineRadarNT.class, new RenderRadar()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineSeleniumEngine.class, new RenderSelenium()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityReactorResearch.class, new RenderSmallReactor()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineShredderLarge.class, new RenderMachineShredder()); diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index e88e39b82..4a1cda31b 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -20,8 +20,6 @@ import com.hbm.blocks.generic.BlockAshes; import com.hbm.config.GeneralConfig; import com.hbm.config.MobConfig; import com.hbm.config.RadiationConfig; -import com.hbm.entity.missile.EntityMissileBaseAdvanced; -import com.hbm.entity.missile.EntityMissileCustom; import com.hbm.entity.mob.EntityCyberCrab; import com.hbm.entity.mob.EntityDuck; import com.hbm.entity.mob.EntityCreeperNuclear; @@ -66,6 +64,7 @@ import com.hbm.packet.PermaSyncPacket; import com.hbm.packet.PlayerInformPacket; import com.hbm.potion.HbmPotion; import com.hbm.saveddata.AuxSavedData; +import com.hbm.tileentity.machine.TileEntityMachineRadarNT; import com.hbm.tileentity.network.RTTYSystem; import com.hbm.tileentity.network.RequestNetwork; import com.hbm.util.AchievementHandler; @@ -1099,19 +1098,20 @@ public class ModEventHandler { if(event.phase == event.phase.START) { RTTYSystem.updateBroadcastQueue(); RequestNetwork.updateEntries(); + TileEntityMachineRadarNT.updateSystem(); } } @SubscribeEvent public void enteringChunk(EnteringChunk evt) { - if(evt.entity instanceof EntityMissileBaseAdvanced) { - ((EntityMissileBaseAdvanced) evt.entity).loadNeighboringChunks(evt.newChunkX, evt.newChunkZ); + /*if(evt.entity instanceof EntityMissileBaseNT) { + ((EntityMissileBaseNT) evt.entity).loadNeighboringChunks(evt.newChunkX, evt.newChunkZ); } if(evt.entity instanceof EntityMissileCustom) { ((EntityMissileCustom) evt.entity).loadNeighboringChunks(evt.newChunkX, evt.newChunkZ); - } + }*/ } @SubscribeEvent diff --git a/src/main/java/com/hbm/packet/BufPacket.java b/src/main/java/com/hbm/packet/BufPacket.java index b2a158ef8..7ff502c9d 100644 --- a/src/main/java/com/hbm/packet/BufPacket.java +++ b/src/main/java/com/hbm/packet/BufPacket.java @@ -28,11 +28,17 @@ public class BufPacket implements IMessage { @Override public void fromBytes(ByteBuf buf) { + this.x = buf.readInt(); + this.y = buf.readInt(); + this.z = buf.readInt(); this.buf = buf; } @Override public void toBytes(ByteBuf buf) { + buf.writeInt(x); + buf.writeInt(y); + buf.writeInt(z); this.rec.serialize(buf); } diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderMissileGeneric.java b/src/main/java/com/hbm/render/entity/rocket/RenderMissileGeneric.java index 268cca1cf..88efff5e3 100644 --- a/src/main/java/com/hbm/render/entity/rocket/RenderMissileGeneric.java +++ b/src/main/java/com/hbm/render/entity/rocket/RenderMissileGeneric.java @@ -3,10 +3,7 @@ package com.hbm.render.entity.rocket; import org.lwjgl.opengl.GL11; import com.hbm.entity.missile.EntityMissileAntiBallistic; -import com.hbm.entity.missile.EntityMissileBunkerBuster; -import com.hbm.entity.missile.EntityMissileCluster; -import com.hbm.entity.missile.EntityMissileGeneric; -import com.hbm.entity.missile.EntityMissileIncendiary; +import com.hbm.entity.missile.EntityMissileTier1.*; import com.hbm.main.ResourceManager; import net.minecraft.client.renderer.entity.Render; diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderMissileHuge.java b/src/main/java/com/hbm/render/entity/rocket/RenderMissileHuge.java index af95674e1..9c7a64938 100644 --- a/src/main/java/com/hbm/render/entity/rocket/RenderMissileHuge.java +++ b/src/main/java/com/hbm/render/entity/rocket/RenderMissileHuge.java @@ -2,10 +2,7 @@ package com.hbm.render.entity.rocket; import org.lwjgl.opengl.GL11; -import com.hbm.entity.missile.EntityMissileBurst; -import com.hbm.entity.missile.EntityMissileDrill; -import com.hbm.entity.missile.EntityMissileInferno; -import com.hbm.entity.missile.EntityMissileRain; +import com.hbm.entity.missile.EntityMissileTier3.*; import com.hbm.main.ResourceManager; import net.minecraft.client.renderer.entity.Render; diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderMissileNuclear.java b/src/main/java/com/hbm/render/entity/rocket/RenderMissileNuclear.java index 7719b2612..f69443b8f 100644 --- a/src/main/java/com/hbm/render/entity/rocket/RenderMissileNuclear.java +++ b/src/main/java/com/hbm/render/entity/rocket/RenderMissileNuclear.java @@ -2,7 +2,7 @@ package com.hbm.render.entity.rocket; import org.lwjgl.opengl.GL11; -import com.hbm.entity.missile.EntityMissileVolcano; +import com.hbm.entity.missile.EntityMissileTier4.EntityMissileVolcano; import com.hbm.main.ResourceManager; import net.minecraft.client.renderer.entity.Render; diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderMissileStrong.java b/src/main/java/com/hbm/render/entity/rocket/RenderMissileStrong.java index cbe85f692..23d3003ce 100644 --- a/src/main/java/com/hbm/render/entity/rocket/RenderMissileStrong.java +++ b/src/main/java/com/hbm/render/entity/rocket/RenderMissileStrong.java @@ -2,11 +2,7 @@ package com.hbm.render.entity.rocket; import org.lwjgl.opengl.GL11; -import com.hbm.entity.missile.EntityMissileBusterStrong; -import com.hbm.entity.missile.EntityMissileClusterStrong; -import com.hbm.entity.missile.EntityMissileEMPStrong; -import com.hbm.entity.missile.EntityMissileIncendiaryStrong; -import com.hbm.entity.missile.EntityMissileStrong; +import com.hbm.entity.missile.EntityMissileTier2.*; import com.hbm.main.ResourceManager; import net.minecraft.client.renderer.entity.Render; diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderMissileTaint.java b/src/main/java/com/hbm/render/entity/rocket/RenderMissileTaint.java index 19c49616a..65643516f 100644 --- a/src/main/java/com/hbm/render/entity/rocket/RenderMissileTaint.java +++ b/src/main/java/com/hbm/render/entity/rocket/RenderMissileTaint.java @@ -2,10 +2,7 @@ package com.hbm.render.entity.rocket; import org.lwjgl.opengl.GL11; -import com.hbm.entity.missile.EntityMissileBHole; -import com.hbm.entity.missile.EntityMissileEMP; -import com.hbm.entity.missile.EntityMissileSchrabidium; -import com.hbm.entity.missile.EntityMissileTaint; +import com.hbm.entity.missile.EntityMissileTier0.*; import com.hbm.main.ResourceManager; import net.minecraft.client.renderer.entity.Render; diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderMissileThermo.java b/src/main/java/com/hbm/render/entity/rocket/RenderMissileThermo.java index 644dc3c81..c19a36c83 100644 --- a/src/main/java/com/hbm/render/entity/rocket/RenderMissileThermo.java +++ b/src/main/java/com/hbm/render/entity/rocket/RenderMissileThermo.java @@ -2,8 +2,7 @@ package com.hbm.render.entity.rocket; import org.lwjgl.opengl.GL11; -import com.hbm.entity.missile.EntityMissileEndo; -import com.hbm.entity.missile.EntityMissileExo; +import com.hbm.entity.missile.EntityMissileTier3.*; import com.hbm.main.ResourceManager; import net.minecraft.client.renderer.entity.Render; diff --git a/src/main/java/com/hbm/render/tileentity/RenderRadar.java b/src/main/java/com/hbm/render/tileentity/RenderRadar.java index 45cc19fd0..6910c9b6e 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderRadar.java +++ b/src/main/java/com/hbm/render/tileentity/RenderRadar.java @@ -3,7 +3,7 @@ package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; import com.hbm.main.ResourceManager; -import com.hbm.tileentity.machine.TileEntityMachineRadar; +import com.hbm.tileentity.machine.TileEntityMachineRadarNT; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; @@ -21,8 +21,8 @@ public class RenderRadar extends TileEntitySpecialRenderer { bindTexture(ResourceManager.radar_base_tex); ResourceManager.radar.renderPart("Base"); - TileEntityMachineRadar radar = (TileEntityMachineRadar) tileEntity; - GL11.glRotatef(radar.prevRotation + (radar.rotation - radar.prevRotation) * f, 0F, 1F, 0F); + TileEntityMachineRadarNT radar = (TileEntityMachineRadarNT) tileEntity; + GL11.glRotatef(radar.prevRotation + (radar.rotation - radar.prevRotation) * f, 0F, -1F, 0F); GL11.glTranslated(-0.125D, 0, 0); bindTexture(ResourceManager.radar_dish_tex); @@ -30,5 +30,4 @@ public class RenderRadar extends TileEntitySpecialRenderer { GL11.glPopMatrix(); } - } diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 2cf953045..2094dcfcc 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -112,7 +112,7 @@ public class TileMappings { put(TileEntityMachineSPP.class, "tileentity_spp"); put(TileEntityMachineRadGen.class, "tileentity_radgen"); put(TileEntityMachineTransformer.class, "tileentity_transformer"); - put(TileEntityMachineRadar.class, "tileentity_radar"); + put(TileEntityMachineRadarNT.class, "tileentity_radar"); put(TileEntityBroadcaster.class, "tileentity_pink_cloud_broadcaster"); put(TileEntityMachineSeleniumEngine.class, "tileentity_selenium_engine"); put(TileEntityMachineSatLinker.class, "tileentity_satlinker"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java index d5911b2a2..e90d861d0 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java @@ -7,16 +7,21 @@ import java.util.function.Function; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; +import com.hbm.blocks.ModBlocks; +import com.hbm.config.WeaponConfig; import com.hbm.extprop.HbmLivingProps; +import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.gui.GUIMachineRadarNT; import com.hbm.lib.Library; import com.hbm.tileentity.IConfigurableMachine; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; -import com.hbm.util.Tuple.Pair; +import com.hbm.util.Tuple.Triplet; +import api.hbm.energy.IEnergyUser; import api.hbm.entity.IRadarDetectable; import api.hbm.entity.IRadarDetectableNT; +import api.hbm.entity.IRadarDetectableNT.RadarScanParams; import api.hbm.entity.RadarEntry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -27,6 +32,7 @@ import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraft.world.WorldServer; @@ -35,7 +41,7 @@ import net.minecraft.world.WorldServer; * Now with SmЯt™ lag-free entity detection! (patent pending) * @author hbm */ -public class TileEntityMachineRadarNT extends TileEntityMachineBase implements IGUIProvider, IConfigurableMachine { +public class TileEntityMachineRadarNT extends TileEntityMachineBase implements IEnergyUser, IGUIProvider, IConfigurableMachine, IControlReceiver { public boolean scanMissiles = true; public boolean scanShells = true; @@ -50,12 +56,19 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I public float rotation; public long power = 0; + + protected int pingTimer = 0; + protected int lastPower; + protected final static int maxTimer = 80; public static int maxPower = 100_000; public static int consumption = 500; public static int radarRange = 1_000; public static int radarBuffer = 30; public static int radarAltitude = 55; + public static int chunkLoadCap = 5; + + public byte[] map = new byte[40_000]; public List entries = new ArrayList(); @@ -71,6 +84,7 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I radarRange = IConfigurableMachine.grab(obj, "I:radarRange", radarRange); radarBuffer = IConfigurableMachine.grab(obj, "I:radarBuffer", radarBuffer); radarAltitude = IConfigurableMachine.grab(obj, "I:radarAltitude", radarAltitude); + chunkLoadCap = IConfigurableMachine.grab(obj, "I:chunkLoadCap", chunkLoadCap); } @Override @@ -80,6 +94,7 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I writer.name("I:radarRange").value(radarRange); writer.name("I:radarBuffer").value(radarBuffer); writer.name("I:radarAltitude").value(radarAltitude); + writer.name("I:chunkLoadCap").value(chunkLoadCap); } public TileEntityMachineRadarNT() { @@ -95,50 +110,60 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I public void updateEntity() { if(!worldObj.isRemote) { + + if(worldObj.getTotalWorldTime() % 20 == 0) this.updateStandardConnections(worldObj, xCoord, yCoord, zCoord); this.power = Library.chargeTEFromItems(slots, 0, power, maxPower); this.jammed = false; allocateTargets(); - this.networkPackNT(25); - } - } - - protected void allocateTargets() { - this.entries.clear(); - - if(this.yCoord < radarAltitude) return; - if(this.power <= consumption) return; - this.power -= consumption; - - int scan = this.scanRange(); - - for(Entity e : matchingEntities) { + if(this.lastPower != getRedPower()) worldObj.notifyBlocksOfNeighborChange(xCoord, yCoord, zCoord, getBlockType()); - if(e.dimension == worldObj.provider.dimensionId && Math.abs(e.posX - (xCoord + 0.5)) <= scan && Math.abs(e.posZ - (zCoord + 0.5)) <= scan && e.posY - yCoord < radarBuffer) { + if(worldObj.getBlock(xCoord, yCoord - 1, zCoord) != ModBlocks.muffler) { - if(e instanceof EntityLivingBase && HbmLivingProps.getDigamma((EntityLivingBase) e) > 0.001) { - this.jammed = true; - entries.clear(); - return; + pingTimer++; + + if(power > 0 && pingTimer >= maxTimer) { + this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "hbm:block.sonarPing", 5.0F, 1.0F); + pingTimer = 0; } - - for(Function, RadarEntry> converter : converters) { + } + + if(this.showMap) { + int chunkLoadCap = 5; + int chunkLoads = 0; + for(int i = 0; i < 100; i++) { + int index = (int) (worldObj.getTotalWorldTime() % 400) * 100 + i; + int iX = (index % 200) * radarRange * 2 / 200; + int iZ = index / 200 * radarRange * 2 / 200; - RadarEntry entry = converter.apply(new Pair(e, this)); - if(entry != null) { - this.entries.add(entry); - break; + int x = xCoord - radarRange + iX; + int z = zCoord - radarRange + iZ; + + if(worldObj.getChunkProvider().chunkExists(x >> 4, z >> 4)) { + this.map[index] = (byte) worldObj.getHeightValue(x, z); + } else { + if(this.map[index] == 0 && chunkLoads < chunkLoadCap) { + worldObj.getChunkFromChunkCoords(x >> 4, z >> 4); + this.map[index] = (byte) worldObj.getHeightValue(x, z); + chunkLoads++; + } } } } + + this.networkPackNT(25); + } else { + prevRotation = rotation; + if(power > 0) rotation += 5F; + + if(rotation >= 360) { + rotation -= 360F; + prevRotation -= 360F; + } } } - protected int scanRange() { - return radarRange; - } - @Override public void serialize(ByteBuf buf) { buf.writeLong(this.power); @@ -151,6 +176,16 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I buf.writeBoolean(this.jammed); buf.writeInt(entries.size()); for(RadarEntry entry : entries) entry.toBytes(buf); + if(this.showMap) { + buf.writeBoolean(true); + short index = (short) (worldObj.getTotalWorldTime() % 400); + buf.writeShort(index); + for(int i = index * 100; i < (index + 1) * 100; i++) { + buf.writeByte(this.map[i]); + } + } else { + buf.writeBoolean(false); + } } @Override @@ -164,11 +199,124 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I this.showMap = buf.readBoolean(); this.jammed = buf.readBoolean(); int count = buf.readInt(); + this.entries.clear(); for(int i = 0; i < count; i++) { RadarEntry entry = new RadarEntry(); entry.fromBytes(buf); this.entries.add(entry); } + if(buf.readBoolean()) { + int index = buf.readShort(); + for(int i = index * 100; i < (index + 1) * 100; i++) { + this.map[i] = buf.readByte(); + } + } + } + + protected void allocateTargets() { + this.entries.clear(); + + if(this.yCoord < radarAltitude) return; + if(this.power <= consumption) return; + this.power -= consumption; + + int scan = this.scanRange(); + + RadarScanParams params = new RadarScanParams(this.scanMissiles, this.scanShells, this.scanPlayers, this.smartMode); + + for(Entity e : matchingEntities) { + + if(e.dimension == worldObj.provider.dimensionId && Math.abs(e.posX - (xCoord + 0.5)) <= scan && Math.abs(e.posZ - (zCoord + 0.5)) <= scan && e.posY - yCoord > radarBuffer) { + + if(e instanceof EntityLivingBase && HbmLivingProps.getDigamma((EntityLivingBase) e) > 0.001) { + this.jammed = true; + entries.clear(); + return; + } + + for(Function, RadarEntry> converter : converters) { + + RadarEntry entry = converter.apply(new Triplet(e, this, params)); + if(entry != null) { + this.entries.add(entry); + break; + } + } + } + } + } + + public int getRedPower() { + + if(!entries.isEmpty()) { + + /// PROXIMITY /// + if(redMode) { + + double maxRange = WeaponConfig.radarRange * Math.sqrt(2D); + int power = 0; + + for(int i = 0; i < entries.size(); i++) { + RadarEntry e = entries.get(i); + double dist = Math.sqrt(Math.pow(e.posX - xCoord, 2) + Math.pow(e.posZ - zCoord, 2)); + int p = 15 - (int)Math.floor(dist / maxRange * 15); + + if(p > power) power = p; + } + + return power; + + /// TIER /// + } else { + + int power = 0; + + for(int i = 0; i < entries.size(); i++) { + + if(entries.get(i).blipLevel + 1 > power) { + power = entries.get(i).blipLevel + 1; + } + } + + return power; + } + } + + return 0; + } + + protected int scanRange() { + return radarRange; + } + + @Override + public void setPower(long i) { + power = i; + } + + @Override + public long getPower() { + return power; + } + + @Override + public long getMaxPower() { + return maxPower; + } + + @Override + public boolean hasPermission(EntityPlayer player) { + return this.isUseableByPlayer(player); + } + + @Override + public void receiveControl(NBTTagCompound data) { + if(data.hasKey("missiles")) this.scanMissiles = !this.scanMissiles; + if(data.hasKey("shells")) this.scanShells = !this.scanShells; + if(data.hasKey("players")) this.scanPlayers = !this.scanPlayers; + if(data.hasKey("smart")) this.smartMode = !this.smartMode; + if(data.hasKey("red")) this.redMode = !this.redMode; + if(data.hasKey("map")) this.showMap = !this.showMap; } AxisAlignedBB bb = null; @@ -192,8 +340,7 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I @Override @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { + public double getMaxRenderDistanceSquared() { return 65536.0D; } @@ -207,7 +354,7 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I /** List of lambdas that are supplied a Pair with the entity and radar in question to generate a RadarEntry The converters coming first have the highest priority */ - public static List, RadarEntry>> converters = new ArrayList(); + public static List, RadarEntry>> converters = new ArrayList(); public static List classes = new ArrayList(); public static List matchingEntities = new ArrayList(); @@ -241,21 +388,25 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I public static void registerConverters() { //IRadarDetectableNT converters.add(x -> { - Entity e = x.getKey(); + Entity e = x.getX(); if(e instanceof IRadarDetectableNT) { IRadarDetectableNT detectable = (IRadarDetectableNT) e; - if(detectable.canBeSeenBy(x.getValue())) return new RadarEntry(detectable, e); + if(detectable.canBeSeenBy(x.getY()) && detectable.paramsApplicable(x.getZ())) return new RadarEntry(detectable, e); } return null; }); //IRadarDetectable, Legacy converters.add(x -> { - if(x.getKey() instanceof IRadarDetectable) return new RadarEntry((IRadarDetectable) x.getKey(), x.getKey()); + Entity e = x.getX(); + RadarScanParams params = x.getZ(); + if(e instanceof IRadarDetectable && params.scanMissiles) { + return new RadarEntry((IRadarDetectable) e, e); + } return null; }); //Players converters.add(x -> { - if(x.getKey() instanceof EntityPlayer) return new RadarEntry((EntityPlayer) x.getKey()); + if(x.getX() instanceof EntityPlayer && x.getZ().scanPlayers) return new RadarEntry((EntityPlayer) x.getX()); return null; }); } diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java index 62580710e..fa55c200b 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java @@ -7,7 +7,7 @@ import java.util.function.BiFunction; import com.hbm.blocks.BlockDummyable; import com.hbm.entity.logic.EntityBomber; -import com.hbm.entity.missile.EntityMissileBaseAdvanced; +import com.hbm.entity.missile.EntityMissileBaseNT; import com.hbm.entity.missile.EntityMissileCustom; import com.hbm.entity.missile.EntitySiegeDropship; import com.hbm.entity.projectile.EntityBulletBaseNT; @@ -642,7 +642,7 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple if(targetMachines) { - if(e instanceof EntityMissileBaseAdvanced) return true; + if(e instanceof EntityMissileBaseNT) return true; if(e instanceof EntityMissileCustom) return true; if(e instanceof EntityMinecart) return true; if(e instanceof EntityRailCarBase) return true; diff --git a/src/main/resources/assets/hbm/textures/gui/machine/gui_radar_nt.png b/src/main/resources/assets/hbm/textures/gui/machine/gui_radar_nt.png index 690e1b5f5fa1706b4b2f8aa6a7daad7435912487..095c54c69a8aeca9352d8d94124f6ade7da290fe 100644 GIT binary patch literal 19931 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 F?0>iMUBUnW From 5081dccb19e37808beeaeb5d7c32631f7c0910ad Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 26 Nov 2023 20:25:31 +0100 Subject: [PATCH 385/432] tweaks, fixes, radar crap --- changelog | 21 ++++++++- src/main/java/com/hbm/blocks/ModBlocks.java | 4 +- .../com/hbm/blocks/generic/BlockGlyphid.java | 43 ++++++++++++++++++ .../java/com/hbm/crafting/MineralRecipes.java | 2 +- .../entity/missile/EntityMissileBaseNT.java | 2 +- .../projectile/EntityArtilleryRocket.java | 2 +- .../projectile/EntityArtilleryShell.java | 2 +- .../hbm/inventory/gui/GUIMachineRadarNT.java | 11 ++++- .../inventory/recipes/ArcWelderRecipes.java | 6 +-- .../inventory/recipes/AssemblerRecipes.java | 2 +- .../hbm/inventory/recipes/PressRecipes.java | 2 + src/main/java/com/hbm/items/ModItems.java | 4 +- .../hbm/items/armor/ArmorTrenchmaster.java | 1 + .../com/hbm/items/machine/ItemFluidDuct.java | 2 +- .../java/com/hbm/items/tool/ItemDrone.java | 2 + .../machine/TileEntityMachineRadarNT.java | 43 +++++++++++++++--- .../machine/TileEntityMachineTurbofan.java | 2 +- .../oil/TileEntityMachineGasFlare.java | 2 +- src/main/resources/assets/hbm/lang/de_DE.lang | 2 +- src/main/resources/assets/hbm/lang/en_US.lang | 2 +- .../hbm/textures/blocks/glyphid_base_alt.png | Bin 0 -> 553 bytes .../hbm/textures/blocks/glyphid_eggs.png | Bin 0 -> 567 bytes .../hbm/textures/blocks/glyphid_eggs_alt.png | Bin 0 -> 737 bytes .../hbm/textures/blocks/glyphid_eggs_base.png | Bin 0 -> 423 bytes 24 files changed, 130 insertions(+), 27 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/generic/BlockGlyphid.java create mode 100644 src/main/resources/assets/hbm/textures/blocks/glyphid_base_alt.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/glyphid_eggs.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/glyphid_eggs_alt.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/glyphid_eggs_base.png diff --git a/changelog b/changelog index 9bbc6c83e..67de8712b 100644 --- a/changelog +++ b/changelog @@ -4,7 +4,7 @@ * Can be used to quickly craft standard ammo types in the 2x2 crafting grid * Can also refill empty syringes, making stimpaks * Latex - * Made from crafting dandelions into dandelion milk, then smelting it + * Can be made from dandelions or from pressing jungle wood * Replaces insulator in many recipes where electrical insulation that is potentially made from brick doesn't make sense, like rubber gas masks, jackets, tools and so on * Latex is interchangable with rubber in all recipes where it's used, but not the other way round * The old insulator is now mainly used for electrical and heat insulation as well as PWR rods @@ -12,8 +12,25 @@ ## Changed * Light oil and cracked light oil can now be refomred into large quantities of aromatic hydrocarbons a well as some reformate gas * The painsaw ability no longer drops ammo and syringes, instead it drops nitra +* Radars have been completely rewritten + * Dots will now move smoothly across the screen, instead of jittering and being bound to the pixel grid + * Radars no longer use CPU-intensive full scans of the map, instead of using an optimized search for nearby scannable entities + * There's now a dedicated toggle for detecing artillery shells + * Radars now have a local area map that can be enabled + * The map scans up to 100 points per tick, the display can show 40,000 points + * The map will scan loaded chunks instantly, unloaded chunks have a limit of 5 chunk loads per tick to prevent excessive lag + * The chunk load limit can be adjusted in the machine config file + * The map will show terrain height between Y:50 and Y:128, anything outside that range is truncated +* The turbofan's afterburner now adds a 33% efficiency bonus for every level. This means that instead of the efficiency remaining constant between levels, a tier 3 upgrade will yield double efficiency. +* Reduced the flarestack's base energy efficiency +* Trenchmaster armor is now unbreakable +* The arc welder recipe for advanced circuits now uses simple insulator instead of gold dust +* The arc welder recipes for enhanced and advanced circuits now use only 100mB of fluid instead of 250mB ## Fixed * Fixed thorium bedrock ore using the wrong ore dict key, making it unable to be processed via centrifuge or acidizer * Fixed custom machine NEI slots going out of bounds after the third slot -* Fixed bismuth billets not being oredicted, making BFB PWR rods uncraftable \ No newline at end of file +* Fixed bismuth billets not being oredicted, making BFB PWR rods uncraftable +* Fixed missile chunkloading having rounding issues, sometimes causing them to get stuck in unloaded chunks while crossing chunk borders +* Fixed drones not being listed in the creative tabs +* Fixed pre-defined fluid duct items not being being able to be placed where replacable blocks are, eg. water \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index b531674dd..f0b3ccb90 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1728,8 +1728,8 @@ public class ModBlocks { mush = new BlockMush(Material.plants).setBlockName("mush").setCreativeTab(MainRegistry.blockTab).setLightLevel(0.5F).setStepSound(Block.soundTypeGrass).setBlockTextureName(RefStrings.MODID + ":mush"); mush_block = new BlockMushHuge(Material.plants).setBlockName("mush_block").setLightLevel(1.0F).setStepSound(Block.soundTypeGrass).setHardness(0.2F).setBlockTextureName(RefStrings.MODID + ":mush_block_skin"); mush_block_stem = new BlockMushHuge(Material.plants).setBlockName("mush_block_stem").setLightLevel(1.0F).setStepSound(Block.soundTypeGrass).setHardness(0.2F).setBlockTextureName(RefStrings.MODID + ":mush_block_stem"); - glyphid_base = new BlockBase(Material.coral).setBlockName("glyphid_base").setStepSound(Block.soundTypeCloth).setHardness(0.5F); - glyphid_spawner = new BlockGlyphidSpawner(Material.coral).setBlockName("glyphid_spawner").setStepSound(Block.soundTypeCloth).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":glyphid_base"); + glyphid_base = new BlockGlyphid(Material.coral).setBlockName("glyphid_base").setStepSound(Block.soundTypeCloth).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":glyphid_base"); + glyphid_spawner = new BlockGlyphidSpawner(Material.coral).setBlockName("glyphid_spawner").setStepSound(Block.soundTypeCloth).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":glyphid_eggs_alt"); plant_flower = new BlockNTMFlower().setBlockName("plant_flower").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGrass).setHardness(0.0F); plant_tall = new BlockTallPlant().setBlockName("plant_tall").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGrass).setHardness(0.0F); diff --git a/src/main/java/com/hbm/blocks/generic/BlockGlyphid.java b/src/main/java/com/hbm/blocks/generic/BlockGlyphid.java new file mode 100644 index 000000000..267624e28 --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockGlyphid.java @@ -0,0 +1,43 @@ +package com.hbm.blocks.generic; + +import com.hbm.lib.RefStrings; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; + +public class BlockGlyphid extends Block { + + public IIcon[] icons = new IIcon[2]; + + public BlockGlyphid(Material mat) { + super(mat); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) { + long l = (long) (x * 3129871) ^ (long)y * 116129781L ^ (long)z; + l = l * l * 42317861L + l * 11L; + int i = (int)(l >> 16 & 3L); + return icons[(int)(Math.abs(i) % this.icons.length)]; + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta) { + return icons[meta % this.icons.length]; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister reg) { + icons[0] = reg.registerIcon(RefStrings.MODID + ":glyphid_base"); + icons[1] = reg.registerIcon(RefStrings.MODID + ":glyphid_base_alt"); + } + +} diff --git a/src/main/java/com/hbm/crafting/MineralRecipes.java b/src/main/java/com/hbm/crafting/MineralRecipes.java index 49b00e0d4..ebd11b692 100644 --- a/src/main/java/com/hbm/crafting/MineralRecipes.java +++ b/src/main/java/com/hbm/crafting/MineralRecipes.java @@ -419,7 +419,7 @@ public class MineralRecipes { GameRegistry.addRecipe(new ItemStack(ModItems.egg_balefire, 1), new Object[] { "###", "###", "###", '#', ModItems.egg_balefire_shard }); GameRegistry.addRecipe(new ItemStack(ModItems.egg_balefire_shard, 9), new Object[] { "#", '#', ModItems.egg_balefire }); GameRegistry.addRecipe(new ItemStack(ModItems.nitra, 1), new Object[] { "##", "##", '#', ModItems.nitra_small }); - GameRegistry.addRecipe(new ItemStack(ModItems.nitra_small, 9), new Object[] { "#", '#', ModItems.nitra }); + GameRegistry.addRecipe(new ItemStack(ModItems.nitra_small, 4), new Object[] { "#", '#', ModItems.nitra }); add1To9Pair(ModItems.powder_paleogenite, ModItems.powder_paleogenite_tiny); add1To9Pair(ModItems.ingot_osmiridium, ModItems.nugget_osmiridium); diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java b/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java index 766950a91..75a1d265b 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java @@ -247,7 +247,7 @@ public abstract class EntityMissileBaseNT extends EntityThrowableInterp implemen loadedChunks.clear(); loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX + (int) Math.floor((this.posX + this.motionX * this.motionMult()) / 16D), newChunkZ + (int) Math.floor((this.posZ + this.motionZ * this.motionMult()) / 16D))); + //loadedChunks.add(new ChunkCoordIntPair(newChunkX + (int) Math.floor((this.posX + this.motionX * this.motionMult()) / 16D), newChunkZ + (int) Math.floor((this.posZ + this.motionZ * this.motionMult()) / 16D))); for(ChunkCoordIntPair chunk : loadedChunks) { ForgeChunkManager.forceChunk(loaderTicket, chunk); diff --git a/src/main/java/com/hbm/entity/projectile/EntityArtilleryRocket.java b/src/main/java/com/hbm/entity/projectile/EntityArtilleryRocket.java index e8f4a6ad8..0115dbef3 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityArtilleryRocket.java +++ b/src/main/java/com/hbm/entity/projectile/EntityArtilleryRocket.java @@ -150,7 +150,7 @@ public class EntityArtilleryRocket extends EntityThrowableInterp implements IChu loadedChunks.clear(); loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX + (int) Math.ceil((this.posX + this.motionX) / 16D), newChunkZ + (int) Math.ceil((this.posZ + this.motionZ) / 16D))); + //loadedChunks.add(new ChunkCoordIntPair(newChunkX + (int) Math.floor((this.posX + this.motionX) / 16D), newChunkZ + (int) Math.floor((this.posZ + this.motionZ) / 16D))); for(ChunkCoordIntPair chunk : loadedChunks) { ForgeChunkManager.forceChunk(loaderTicket, chunk); diff --git a/src/main/java/com/hbm/entity/projectile/EntityArtilleryShell.java b/src/main/java/com/hbm/entity/projectile/EntityArtilleryShell.java index b03d3118f..e608b49d5 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityArtilleryShell.java +++ b/src/main/java/com/hbm/entity/projectile/EntityArtilleryShell.java @@ -198,7 +198,7 @@ public class EntityArtilleryShell extends EntityThrowableNT implements IChunkLoa loadedChunks.clear(); loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX + (int) Math.ceil((this.posX + this.motionX) / 16D), newChunkZ + (int) Math.ceil((this.posZ + this.motionZ) / 16D))); + //loadedChunks.add(new ChunkCoordIntPair(newChunkX + (int) Math.floor((this.posX + this.motionX) / 16D), newChunkZ + (int) Math.floor((this.posZ + this.motionZ) / 16D))); for(ChunkCoordIntPair chunk : loadedChunks) { ForgeChunkManager.forceChunk(loaderTicket, chunk); diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNT.java b/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNT.java index 2be6a3266..3674c9ea9 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNT.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNT.java @@ -103,6 +103,11 @@ public class GUIMachineRadarNT extends GuiScreen { drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); drawTexturedModalRect(guiLeft - 14, guiTop + 84, 224, 0, 14, 66); + if(radar.power > 0) { + int i = (int) (radar.power * 200 / radar.maxPower); + drawTexturedModalRect(guiLeft + 8, guiTop + 221, 0, 234, i, 16); + } + if(radar.scanMissiles ^ (radar.jammed && radar.getWorldObj().rand.nextBoolean())) drawTexturedModalRect(guiLeft - 10, guiTop + 88, 238, 4, 8, 8); if(radar.scanShells ^ (radar.jammed && radar.getWorldObj().rand.nextBoolean())) drawTexturedModalRect(guiLeft - 10, guiTop + 98, 238, 14, 8, 8); if(radar.scanPlayers ^ (radar.jammed && radar.getWorldObj().rand.nextBoolean())) drawTexturedModalRect(guiLeft - 10, guiTop + 108, 238, 24, 8, 8); @@ -110,6 +115,8 @@ public class GUIMachineRadarNT extends GuiScreen { if(radar.redMode ^ (radar.jammed && radar.getWorldObj().rand.nextBoolean())) drawTexturedModalRect(guiLeft - 10, guiTop + 128, 238, 44, 8, 8); if(radar.showMap ^ (radar.jammed && radar.getWorldObj().rand.nextBoolean())) drawTexturedModalRect(guiLeft - 10, guiTop + 138, 238, 54, 8, 8); + if(radar.power < radar.consumption) return; + if(radar.jammed) { for(int i = 0; i < 5; i++) { for(int j = 0; j < 5; j++) { @@ -128,7 +135,7 @@ public class GUIMachineRadarNT extends GuiScreen { int iZ = i / 200; byte b = radar.map[i]; if(b > 0) { - int color = ((b * 8) % 256) << 8; + int color = ((b - 50) * 255 / 78) << 8; tess.setColorOpaque_I(color); tess.addVertex(guiLeft + 8 + iX, guiTop + 18 + iZ, this.zLevel); tess.addVertex(guiLeft + 9 + iX, guiTop + 18 + iZ, this.zLevel); @@ -143,7 +150,7 @@ public class GUIMachineRadarNT extends GuiScreen { Vec3 tr = Vec3.createVectorHelper(100, 0, 0); Vec3 tl = Vec3.createVectorHelper(100, 0, 0); Vec3 bl = Vec3.createVectorHelper(0, -5, 0); - float rot = -(radar.getWorldObj().getTotalWorldTime() + f) / 20F % (float) (Math.PI * 2); + float rot = (float) -Math.toRadians(radar.prevRotation + (radar.rotation - radar.prevRotation) * f + 180F); tr.rotateAroundZ(rot); tl.rotateAroundZ(rot + 0.25F); bl.rotateAroundZ(rot); diff --git a/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java b/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java index d8214f5e3..b7c9be8b6 100644 --- a/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java @@ -40,10 +40,10 @@ public class ArcWelderRecipes extends SerializableRecipe { recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.wire_dense, 1, Mats.MAT_GOLD.id), 100, 10_000L, new ComparableStack(ModItems.wire_gold, 8))); - recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.circuit_copper), 100, 1_000L, new FluidStack(Fluids.GAS, 250), + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.circuit_copper), 100, 1_000L, new FluidStack(Fluids.GAS, 100), new ComparableStack(ModItems.circuit_aluminium, 1), new OreDictStack(NETHERQUARTZ.dust()), new ComparableStack(ModItems.wire_copper, 8))); - recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.circuit_red_copper), 100, 2_500L, new FluidStack(Fluids.PETROLEUM, 250), - new ComparableStack(ModItems.circuit_copper, 1), new OreDictStack(GOLD.dust()), new ComparableStack(ModItems.wire_red_copper, 8))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.circuit_red_copper), 100, 2_500L, new FluidStack(Fluids.PETROLEUM, 100), + new ComparableStack(ModItems.circuit_copper, 1), new ComparableStack(ModItems.plate_polymer), new ComparableStack(ModItems.wire_red_copper, 8))); recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.circuit_gold), 100, 10_000L, new FluidStack(Fluids.UNSATURATEDS, 250), new ComparableStack(ModItems.circuit_red_copper, 1), new OreDictStack(ANY_PLASTIC.ingot()), new ComparableStack(ModItems.wire_gold, 8))); recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.circuit_schrabidium), 100, 50_000L, new FluidStack(Fluids.SOURGAS, 250), diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 7e498b763..de360a362 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -384,7 +384,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.ams_limiter, 1), new AStack[] {new ComparableStack(ModItems.board_copper, 6), new OreDictStack(STEEL.plate(), 24), new ComparableStack(ModBlocks.steel_scaffold, 20), new ComparableStack(ModItems.crystal_diamond, 1)}, 600); makeRecipe(new ComparableStack(ModBlocks.ams_emitter, 1), new AStack[] {new ComparableStack(ModItems.board_copper, 24), new OreDictStack(STEEL.plate(), 32), new ComparableStack(ModBlocks.steel_scaffold, 40), new ComparableStack(ModItems.crystal_redstone, 5), new ComparableStack(ModBlocks.machine_lithium_battery)}, 600); makeRecipe(new ComparableStack(ModBlocks.ams_base, 1), new AStack[] {new ComparableStack(ModItems.board_copper, 12), new OreDictStack(STEEL.plate(), 28), new ComparableStack(ModBlocks.steel_scaffold, 30), new ComparableStack(ModBlocks.steel_grate, 8), new ComparableStack(ModBlocks.barrel_steel, 2)}, 600); - makeRecipe(new ComparableStack(ModBlocks.machine_radar, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 16), new OreDictStack(ANY_PLASTIC.ingot(), 4), new OreDictStack(ANY_RUBBER.ingot(), 24), new ComparableStack(ModItems.magnetron, 10), new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.circuit_gold, 4), new ComparableStack(ModItems.coil_copper, 12), new ComparableStack(ModItems.crt_display, 4), },300); + makeRecipe(new ComparableStack(ModBlocks.machine_radar, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 16), new OreDictStack(ANY_PLASTIC.ingot(), 8), new OreDictStack(ANY_RUBBER.ingot(), 8), new ComparableStack(ModItems.magnetron, 10), new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.circuit_gold, 4), new ComparableStack(ModItems.coil_copper, 12), new ComparableStack(ModItems.crt_display, 4), },300); makeRecipe(new ComparableStack(ModBlocks.machine_forcefield, 1), new AStack[] {new OreDictStack(ALLOY.plate528(), 8), new ComparableStack(ModItems.plate_desh, 4), new ComparableStack(ModItems.coil_gold_torus, 6), new ComparableStack(ModItems.coil_magnetized_tungsten, 12), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.upgrade_radius, 1), new ComparableStack(ModItems.upgrade_health, 1), new ComparableStack(ModItems.circuit_targeting_tier5, 1), new ComparableStack(ModBlocks.machine_transformer, 1), },1000); makeRecipe(new ComparableStack(ModItems.mp_thruster_10_kerosene, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new ComparableStack(ModBlocks.deco_pipe_quad, 1), new OreDictStack(W.ingot(), 4), new OreDictStack(STEEL.plate(), 4), },100); makeRecipe(new ComparableStack(ModItems.mp_thruster_10_solid, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new ComparableStack(ModItems.coil_tungsten, 1), new OreDictStack(DURA.ingot(), 4), new OreDictStack(STEEL.plate(), 4), },100); diff --git a/src/main/java/com/hbm/inventory/recipes/PressRecipes.java b/src/main/java/com/hbm/inventory/recipes/PressRecipes.java index 76775b3b9..8c6498c8f 100644 --- a/src/main/java/com/hbm/inventory/recipes/PressRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/PressRecipes.java @@ -23,6 +23,7 @@ import com.hbm.items.machine.ItemStamp; import com.hbm.items.machine.ItemStamp.StampType; import com.hbm.util.Tuple.Pair; +import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -61,6 +62,7 @@ public class PressRecipes extends SerializableRecipe { makeRecipe(StampType.FLAT, new ComparableStack(ModItems.biomass), ModItems.biomass_compressed); makeRecipe(StampType.FLAT, new OreDictStack(ANY_COKE.gem()), ModItems.ingot_graphite); makeRecipe(StampType.FLAT, new ComparableStack(ModItems.meteorite_sword_reforged), ModItems.meteorite_sword_hardened); + makeRecipe(StampType.FLAT, new ComparableStack(Blocks.log, 1, 3), ModItems.ball_resin); makeRecipe(StampType.FLAT, new OreDictStack(COAL.dust()), DictFrame.fromOne(ModItems.briquette, EnumBriquetteType.COAL)); makeRecipe(StampType.FLAT, new OreDictStack(LIGNITE.dust()), DictFrame.fromOne(ModItems.briquette, EnumBriquetteType.LIGNITE)); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 925d77d11..6d7b52f9f 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -4977,7 +4977,7 @@ public class ModItems { Fluids.DIESEL, Fluids.DIESEL_CRACK, Fluids.KEROSENE, Fluids.BIOFUEL, Fluids.GASOLINE, Fluids.GASOLINE_LEADED, Fluids.PETROIL, Fluids.PETROIL_LEADED, Fluids.COALGAS, Fluids.COALGAS_LEADED) .addBreakAbility(new ToolAbility.SilkAbility()) .addBreakAbility(new ToolAbility.RecursionAbility(5)) - .addHitAbility(new WeaponAbility.ChainsawAbility(4)) + .addHitAbility(new WeaponAbility.ChainsawAbility(10)) .addHitAbility(new WeaponAbility.BeheaderAbility()).setShears().setUnlocalizedName("chainsaw").setTextureName(RefStrings.MODID + ":chainsaw"); schrabidium_sword = new ItemSwordAbility(150, 0, MainRegistry.tMatSchrab) @@ -5085,7 +5085,7 @@ public class ModItems { .addBreakAbility(new ToolAbility.RecursionAbility(5)) .addBreakAbility(new ToolAbility.SilkAbility()) .addBreakAbility(new LuckAbility(2)) - .addHitAbility(new WeaponAbility.ChainsawAbility(6)) + .addHitAbility(new WeaponAbility.ChainsawAbility(15)) .addHitAbility(new WeaponAbility.BeheaderAbility()).setShears().setUnlocalizedName("elec_axe").setTextureName(RefStrings.MODID + ":elec_chainsaw_anim"); elec_shovel = new ItemToolAbilityPower(7.5F, 0, MainRegistry.tMatElec, EnumToolType.SHOVEL, 500000, 1000, 100) diff --git a/src/main/java/com/hbm/items/armor/ArmorTrenchmaster.java b/src/main/java/com/hbm/items/armor/ArmorTrenchmaster.java index 582b44179..0036d36e6 100644 --- a/src/main/java/com/hbm/items/armor/ArmorTrenchmaster.java +++ b/src/main/java/com/hbm/items/armor/ArmorTrenchmaster.java @@ -20,6 +20,7 @@ public class ArmorTrenchmaster extends ArmorFSB { public ArmorTrenchmaster(ArmorMaterial material, int slot, String texture) { super(material, slot, texture); + this.setMaxDamage(0); } @SideOnly(Side.CLIENT) diff --git a/src/main/java/com/hbm/items/machine/ItemFluidDuct.java b/src/main/java/com/hbm/items/machine/ItemFluidDuct.java index f98c79735..e6153e1f5 100644 --- a/src/main/java/com/hbm/items/machine/ItemFluidDuct.java +++ b/src/main/java/com/hbm/items/machine/ItemFluidDuct.java @@ -110,7 +110,7 @@ public class ItemFluidDuct extends Item { ++x; } - if(!world.isAirBlock(x, y, z)) { + if(!world.getBlock(x, y, z).isReplaceable(world, x, y, z)) { return false; } } diff --git a/src/main/java/com/hbm/items/tool/ItemDrone.java b/src/main/java/com/hbm/items/tool/ItemDrone.java index 5ac0d79f0..e2c7b5ffe 100644 --- a/src/main/java/com/hbm/items/tool/ItemDrone.java +++ b/src/main/java/com/hbm/items/tool/ItemDrone.java @@ -2,6 +2,7 @@ package com.hbm.items.tool; import com.hbm.entity.item.EntityDeliveryDrone; import com.hbm.items.ItemEnumMulti; +import com.hbm.main.MainRegistry; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; @@ -12,6 +13,7 @@ public class ItemDrone extends ItemEnumMulti { public ItemDrone() { super(EnumDroneType.class, true, true); + this.setCreativeTab(MainRegistry.machineTab); } public static enum EnumDroneType { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java index e90d861d0..89ef0ec5c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java @@ -34,6 +34,7 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraft.world.WorldServer; @@ -109,6 +110,8 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I @Override public void updateEntity() { + if(this.map == null || this.map.length != 40_000) this.map = new byte[40_000]; + if(!worldObj.isRemote) { if(worldObj.getTotalWorldTime() % 20 == 0) this.updateStandardConnections(worldObj, xCoord, yCoord, zCoord); @@ -117,7 +120,10 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I this.jammed = false; allocateTargets(); - if(this.lastPower != getRedPower()) worldObj.notifyBlocksOfNeighborChange(xCoord, yCoord, zCoord, getBlockType()); + if(this.lastPower != getRedPower()) { + this.markDirty(); + } + lastPower = getRedPower(); if(worldObj.getBlock(xCoord, yCoord - 1, zCoord) != ModBlocks.muffler) { @@ -130,7 +136,6 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I } if(this.showMap) { - int chunkLoadCap = 5; int chunkLoads = 0; for(int i = 0; i < 100; i++) { int index = (int) (worldObj.getTotalWorldTime() % 400) * 100 + i; @@ -141,18 +146,18 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I int z = zCoord - radarRange + iZ; if(worldObj.getChunkProvider().chunkExists(x >> 4, z >> 4)) { - this.map[index] = (byte) worldObj.getHeightValue(x, z); + this.map[index] = (byte) MathHelper.clamp_int(worldObj.getHeightValue(x, z), 50, 128); } else { if(this.map[index] == 0 && chunkLoads < chunkLoadCap) { worldObj.getChunkFromChunkCoords(x >> 4, z >> 4); - this.map[index] = (byte) worldObj.getHeightValue(x, z); + this.map[index] = (byte) MathHelper.clamp_int(worldObj.getHeightValue(x, z), 50, 128); chunkLoads++; } } } } - this.networkPackNT(25); + this.networkPackNT(50); } else { prevRotation = rotation; if(power > 0) rotation += 5F; @@ -212,12 +217,38 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I } } } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.power = nbt.getLong("power"); + this.scanMissiles = nbt.getBoolean("scanMissiles"); + this.scanShells = nbt.getBoolean("scanShells"); + this.scanPlayers = nbt.getBoolean("scanPlayers"); + this.smartMode = nbt.getBoolean("smartMode"); + this.redMode = nbt.getBoolean("redMode"); + this.showMap = nbt.getBoolean("showMap"); + if(nbt.hasKey("map")) this.map = nbt.getByteArray("map"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setLong("power", power); + nbt.setBoolean("scanMissiles", scanMissiles); + nbt.setBoolean("scanShells", scanShells); + nbt.setBoolean("scanPlayers", scanPlayers); + nbt.setBoolean("smartMode", smartMode); + nbt.setBoolean("redMode", redMode); + nbt.setBoolean("showMap", showMap); + nbt.setByteArray("map", map); + } protected void allocateTargets() { this.entries.clear(); if(this.yCoord < radarAltitude) return; - if(this.power <= consumption) return; + if(this.power < consumption) return; this.power -= consumption; int scan = this.scanRange(); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java index 53e056569..e1c3d08ba 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java @@ -162,7 +162,7 @@ public class TileEntityMachineTurbofan extends TileEntityMachinePolluting implem if(amountToBurn > 0) { this.wasOn = true; this.tank.setFill(this.tank.getFill() - amountToBurn); - this.power += burnValue * amountToBurn; + this.power += burnValue * amountToBurn * (1 + Math.min(this.afterburner / 3D, 4)); if(worldObj.getTotalWorldTime() % 20 == 0) PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * amountToBurn); } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java index 39f928faf..b8f52817c 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java @@ -133,7 +133,7 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements int eject = Math.min(maxBurn, tank.getFill()); tank.setFill(tank.getFill() - eject); - int penalty = 2; + int penalty = 5; if(!tank.getTankType().hasTrait(FT_Gaseous.class) && !tank.getTankType().hasTrait(FT_Gaseous_ART.class)) penalty = 10; diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index f8684f74d..0d3763b16 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -1156,7 +1156,7 @@ item.balefire_and_steel.name=Balefire-Zeug item.balefire_scrambled.name=Rühr-Balefire-Ei item.ball_dynamite.name=Dynamit item.ball_fireclay.name=Schamott -item.ball_resin.name=Löwenzahn-Kautschuk +item.ball_resin.name=Kautschuk item.ball_tatb.name=TATB item.ball_tnt.name=TNT item.ballistic_gauntlet.name=Ballistischer Panzerhandschuh diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index c8dbdf375..f45980c13 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1810,7 +1810,7 @@ item.balefire_and_steel.name=Balefire and Steel item.balefire_scrambled.name=Scrambled Balefire Egg item.ball_dynamite.name=Dynamite item.ball_fireclay.name=Fireclay -item.ball_resin.name=Dandelion Milk +item.ball_resin.name=Latex item.ball_tatb.name=TATB item.ball_tnt.name=TNT item.ballistic_gauntlet.name=Ballistic Gauntlet diff --git a/src/main/resources/assets/hbm/textures/blocks/glyphid_base_alt.png b/src/main/resources/assets/hbm/textures/blocks/glyphid_base_alt.png new file mode 100644 index 0000000000000000000000000000000000000000..a0fa4d8e649d32073d2733c269a8a284e8e04625 GIT binary patch literal 553 zcmV+^0@nSBP)17HfcK#eqL%xkvzLnwBUED9w(hX)(6r`sS8dtnmN@ zL{8vOX}bey7GrEj)3h!YMF9ZIMM7Pf9-yuarP;Y8t$a7h`>S^p#iNTSI%F1W>dIj4 z5l@Q0{^}Fb@fi)R>jaSJb8_ai-2rL1-fW4YfRPlZ<1?<_h6B;8JyKVOqIjh34g~&` zx-xwE_T7Pd(p5U1a#U(Epa!^a$r~j)9B`LA&0=SnR=yMZa+SMD6CL&wEEfrzhZ3Tp zNCKE1zP!BuJR`edESd7s*6ac*8bd97~45O0a9v$*LDZ$%8=*t0avlf*lu90 zwMVq_dqC)ITyM6lH(M^2ncG6?EL>r@?(+6>@i+V=s{VMWX@Bo|^SW2~{M_fb|HF9f z4T{q&=9RD5?=7QKOQ7HTyZge?NVE7^vFt->c6d<~I8Mt&^0fOaoEzeTfJ(7eK3<|j rO0y%;A=Vz9~Ns%Sl*&H^n(~D`cBx-_HO3f8Kk4Wi=QT9G~uZ zPQBg19JV;;NRt?V-gE&FFk=h=T5F>2cusdb_Z*nR7Jz!YbAszy6Cp&vwAKJbLWtKw zV@Q)2=N!7$3`E8loO9vZ7yHJMAIn-BNX%i2t~CL$)&^qd9NA<@Z@R!YuBJ(hQi_ZD zPk^_>n~XGxkv0t}}?-yT- zm*=y9uLh&=zl=xzZfO#qsBf*sIfoD;j9hlZmXjNxgMg|J8|+1}j*|9z7`qtC&S zAY$18f4BZ@Nxj|S_qUHn@BiZUN|Tt~ZikeH%6{D{yaQgWvMajQz|$rRSUJ*KYowH?6O@7S8QFYd5;O(-Cl>c?>VR8&o?vw z@Av;EGT%4i(O4am7KvQ~RnDWe#vaZA&^g@-KxJb9dpL(u3IHi3(T+(AYjh^K169rg z(7ZQ;*>yM6<4qHorWw{sDFHC5ddNSh6pQ^f)~Kd=Zw6If4fV>#0H$e%mq{tL$an^T#eO@q zu8Vn;QlZ^o-(Hv_QBo}2zJLL6WITfrGXStgXIQ$_hmDD}puI4M<2a2p60{fQutsM%dG86)pig@^hfJlZzW*4)3+UTVw*aWsYhld0f7P&` zZV@|s==jY_rGn>qY}TLi?Z-cKF^}hY#6Nel@ANCuUY&Qv{gj?<@$=PD*8c9)835-V zpK2tqL%U}-OJbMc?X|&1_8SDebTLnqE&IfNpF;KZH7?CDCeHkBdzy^ZbdZF*+2 ze3@S-b?goCcpR-Y2d%e0#NgFnD&tKFR5?%PhW}53!RnZ_SnT)fI8EYWp^-wKff^wIU+i_l>F|BJ&*nY$0Wx z-QBsai&6^iPAP@^z7Y}jeV_A}Qr;d!0;~ID4BVYaDVpLw@GTw#oaZ^sNh!@ATWeg` z#dl2;*92m=TI+27&fd&;yN*_xU36xTJMB}&2l{9`1g|QRv&R@dw4M{WV R-5vk{002ovPDHLkV1l*_x9$J{ literal 0 HcmV?d00001 From 89447441425108a16c8fa630b6393387fbd5779d Mon Sep 17 00:00:00 2001 From: HbmMods Date: Mon, 20 Nov 2023 10:58:43 +0100 Subject: [PATCH 386/432] Merge pull request #1247 from Ice-Arrow/master Make the research reactor compatible with IC2's water changes --- .../com/hbm/tileentity/machine/TileEntityReactorResearch.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorResearch.java b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorResearch.java index 3e17bf1e0..a6ee7c13d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorResearch.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorResearch.java @@ -26,6 +26,7 @@ import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -211,6 +212,9 @@ public class TileEntityReactorResearch extends TileEntityMachineBase implements Block b = worldObj.getBlock(x, y, z); + if((b == Blocks.water || b == Blocks.flowing_water) && worldObj.getBlockMetadata(x, y, z) == 0) + return true; + if(b == ModBlocks.block_lead || b == ModBlocks.block_desh || b == ModBlocks.reactor_research || b == ModBlocks.machine_reactor_breeding) return true; From a28156065f001ec66086776cd6e4b847d58957c7 Mon Sep 17 00:00:00 2001 From: Boblet Date: Mon, 20 Nov 2023 15:58:21 +0100 Subject: [PATCH 387/432] nuclear blast furnace IO config --- gradle.properties | 17 +++++----- .../java/com/hbm/crafting/ToolRecipes.java | 2 ++ .../ContainerMachineDiFurnaceRTG.java | 23 +++++++++++-- .../inventory/gui/GUIMachineDiFurnaceRTG.java | 21 ++++++++++++ .../machine/TileEntityDiFurnaceRTG.java | 34 ++++++++++++++++--- 5 files changed, 82 insertions(+), 15 deletions(-) diff --git a/gradle.properties b/gradle.properties index 5d374e4ff..a60f1e9c9 100644 --- a/gradle.properties +++ b/gradle.properties @@ -8,11 +8,12 @@ credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion al \ (chinese localization), Frooz (models), Minecreep (models), VT-6/24 (models, textures), Pheo (textures,\ \ various machines, models, weapons), Vr (gas centrifuges, better worldgen, ZIRNOX, CP-1 parts, starter guide),\ \ Adam29 (liquid petroleum, ethanol, electric furnace), Pashtet (russian localization), MartinTheDragon\ - \ (calculator, chunk-based fallout, bendable cranes), haru315 (spiral point algorithm), Sten89 (models), Pixelguru26\ - \ (textures), TheBlueHat (textures), Alcater (GUI textures, porting), impbk2002 (project settings), Nos (models),\ - \ Burningwater202 (laminate glass), OvermindDL1 (project settings), TehTemmie (reacher radiation function),\ - \ Toshayo (satellite loot system, project settings, gradle curse task), Silly541 (config for safe ME drives),\ - \ Voxelstice (OpenComputers integration, turbine spinup), BallOfEnergy1 (OpenComputers integration), martemen\ - \ (project settings), Pvndols (thorium fuel recipe, gas turbine), JamesH2 (blood mechanics, nitric acid,\ - \ particle emitter), sdddddf80 (recipe configs, chinese localization, custom machine holograms),\ - \ SuperCraftAlex (tooltips) LePeep (coilgun model, BDCL QC), 70k (textures), Maksymisio (polish localization) + \ (calculator, chunk-based fallout, bendable cranes, pipe improvements), haru315 (spiral point algorithm),\ + \ Sten89 (models), Pixelguru26 (textures), TheBlueHat (textures), Alcater (GUI textures, porting), impbk2002\ + \ (project settings), Nos (models), Burningwater202 (laminate glass), OvermindDL1 (project settings), TehTemmie\ + \ (reacher radiation function), Toshayo (satellite loot system, project settings, gradle curse task), Silly541\ + \ (config for safe ME drives), Voxelstice (OpenComputers integration, turbine spinup), BallOfEnergy1\ + \ (OpenComputers integration), martemen (project settings), Pvndols (thorium fuel recipe, gas turbine),\ + \ JamesH2 (blood mechanics, nitric acid, particle emitter), sdddddf80 (recipe configs, chinese localization,\ + \ custom machine holograms, I18n improvements), SuperCraftAlex (tooltips) LePeep (coilgun model, BDCL QC),\ + \ 70k (textures), Maksymisio (polish localization) Ice-Arrow (research reactor tweaks) diff --git a/src/main/java/com/hbm/crafting/ToolRecipes.java b/src/main/java/com/hbm/crafting/ToolRecipes.java index 4af76365c..c0a1e2f74 100644 --- a/src/main/java/com/hbm/crafting/ToolRecipes.java +++ b/src/main/java/com/hbm/crafting/ToolRecipes.java @@ -6,6 +6,7 @@ import com.hbm.inventory.fluid.Fluids; import static com.hbm.inventory.OreDictManager.*; +import com.hbm.items.ItemEnums.EnumPlantType; import com.hbm.items.ItemGenericPart.EnumPartType; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemBattery; @@ -88,6 +89,7 @@ public class ToolRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.euphemium_stopper, 1), new Object[] { "I", "S", "S", 'I', EUPH.ingot(), 'S', KEY_STICK }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.crowbar, 1), new Object[] { "II", " I", " I", 'I', STEEL.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.bottle_opener, 1), new Object[] { "S", "P", 'S', STEEL.plate(), 'P', KEY_PLANKS }); + CraftingManager.addRecipeAuto(new ItemStack(Items.saddle, 1), new Object[] { "LLL", "LRL", " S ", 'S', STEEL.ingot(), 'L', Items.leather, 'R', DictFrame.fromOne(ModItems.plant_item, EnumPlantType.ROPE) }); //Matches CraftingManager.addRecipeAuto(new ItemStack(ModItems.matchstick, 16), new Object[] { "I", "S", 'I', S.dust(), 'S', KEY_STICK }); diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineDiFurnaceRTG.java b/src/main/java/com/hbm/inventory/container/ContainerMachineDiFurnaceRTG.java index 4f0b39b00..e32e9197c 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineDiFurnaceRTG.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineDiFurnaceRTG.java @@ -1,7 +1,7 @@ package com.hbm.inventory.container; import com.hbm.inventory.SlotCraftingOutput; -import com.hbm.tileentity.IRadioisotopeFuel; +import com.hbm.items.machine.ItemRTGPellet; import com.hbm.tileentity.machine.TileEntityDiFurnaceRTG; import net.minecraft.entity.player.EntityPlayer; @@ -45,6 +45,25 @@ public class ContainerMachineDiFurnaceRTG extends Container { return bFurnace.isUseableByPlayer(player); } + @Override + public ItemStack slotClick(int index, int button, int mode, EntityPlayer player) { + + if(index >= 0 && index < 2 && button == 1 && mode == 0) { + Slot slot = this.getSlot(index); + if(!slot.getHasStack() && player.inventory.getItemStack() == null) { + if(!player.worldObj.isRemote) { + if(index == 0) bFurnace.sideUpper = (byte) ((bFurnace.sideUpper + 1) % 6); + if(index == 1) bFurnace.sideLower = (byte) ((bFurnace.sideLower + 1) % 6); + + bFurnace.markDirty(); + } + return null; + } + } + + return super.slotClick(index, button, mode, player); + } + @Override public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { ItemStack var3 = null; @@ -58,7 +77,7 @@ public class ContainerMachineDiFurnaceRTG extends Container { if(!this.mergeItemStack(var5, 9, this.inventorySlots.size(), true)) { return null; } - } else if(var5.getItem() instanceof IRadioisotopeFuel) { + } else if(var5.getItem() instanceof ItemRTGPellet) { if(!this.mergeItemStack(var5, 3, 9, false)) return null; diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineDiFurnaceRTG.java b/src/main/java/com/hbm/inventory/gui/GUIMachineDiFurnaceRTG.java index 0345dc6a4..36606b0f4 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineDiFurnaceRTG.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineDiFurnaceRTG.java @@ -1,5 +1,6 @@ package com.hbm.inventory.gui; +import java.util.Arrays; import java.util.List; import org.lwjgl.opengl.GL11; @@ -14,8 +15,11 @@ import com.hbm.util.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Slot; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.ResourceLocation; +import net.minecraftforge.common.util.ForgeDirection; public class GUIMachineDiFurnaceRTG extends GuiInfoContainer { public static ResourceLocation texture = new ResourceLocation(RefStrings.MODID, "textures/gui/processing/gui_rtg_difurnace.png"); @@ -47,6 +51,23 @@ public class GUIMachineDiFurnaceRTG extends GuiInfoContainer { } this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 15, guiTop + 36, 16, 16, guiLeft - 8, guiTop + 36 + 16, pelletText); + + if(this.mc.thePlayer.inventory.getItemStack() == null) { + for(int i = 0; i < 2; i++) { + Slot slot = (Slot) this.inventorySlots.inventorySlots.get(i); + + if(this.isMouseOverSlot(slot, mouseX, mouseY)) { + + String label = EnumChatFormatting.YELLOW + "Accepts items from: "; + byte dir = i == 0 ? bFurnace.sideUpper : bFurnace.sideLower; + label += ForgeDirection.getOrientation(dir); + + this.func_146283_a(Arrays.asList(new String[] { label }), mouseX, mouseY - (slot.getHasStack() ? 15 : 0)); + + return; + } + } + } } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnaceRTG.java b/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnaceRTG.java index 7b5d5e485..7c7891802 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnaceRTG.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnaceRTG.java @@ -4,6 +4,7 @@ import com.hbm.blocks.machine.MachineDiFurnaceRTG; import com.hbm.inventory.container.ContainerMachineDiFurnaceRTG; import com.hbm.inventory.gui.GUIMachineDiFurnaceRTG; import com.hbm.inventory.recipes.BlastFurnaceRecipes; +import com.hbm.items.machine.ItemRTGPellet; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.RTGUtil; @@ -25,6 +26,8 @@ public class TileEntityDiFurnaceRTG extends TileEntityMachineBase implements IGU private static final short timeRequired = 1200; private static final int[] rtgIn = new int[] {3, 4, 5, 6, 7, 8}; private String name; + public byte sideUpper = 1; + public byte sideLower = 1; public TileEntityDiFurnaceRTG() { super(9); @@ -70,6 +73,7 @@ public class TileEntityDiFurnaceRTG extends TileEntityMachineBase implements IGU NBTTagCompound data = new NBTTagCompound(); data.setShort("progress", progress); data.setShort("speed", processSpeed); + data.setByteArray("modes", new byte[] {(byte) sideUpper, (byte) sideLower}); networkPack(data, 10); } @@ -77,6 +81,9 @@ public class TileEntityDiFurnaceRTG extends TileEntityMachineBase implements IGU public void networkUnpack(NBTTagCompound nbt) { progress = nbt.getShort("progress"); processSpeed = nbt.getShort("speed"); + byte[] modes = nbt.getByteArray("modes"); + this.sideUpper = modes[0]; + this.sideLower = modes[1]; } private void processItem() { @@ -105,6 +112,10 @@ public class TileEntityDiFurnaceRTG extends TileEntityMachineBase implements IGU super.readFromNBT(nbt); progress = nbt.getShort("progress"); processSpeed = nbt.getShort("speed"); + + byte[] modes = nbt.getByteArray("modes"); + this.sideUpper = modes[0]; + this.sideLower = modes[1]; } @Override @@ -112,6 +123,7 @@ public class TileEntityDiFurnaceRTG extends TileEntityMachineBase implements IGU super.writeToNBT(nbt); nbt.setShort("progress", progress); nbt.setShort("speed", processSpeed); + nbt.setByteArray("modes", new byte[] {(byte) sideUpper, (byte) sideLower}); } public int getDiFurnaceProgressScaled(int i) { @@ -159,21 +171,33 @@ public class TileEntityDiFurnaceRTG extends TileEntityMachineBase implements IGU return 64; } + @Override + public boolean canInsertItem(int i, ItemStack itemStack, int j) { + if(i == 0 && this.sideUpper != j) return false; + if(i == 1 && this.sideLower != j) return false; + + return this.isItemValidForSlot(i, itemStack); + } + @Override public boolean isItemValidForSlot(int i, ItemStack stack) { - if(i == 2) { - return false; - } - return true; + if(i == 2) return false; + if(stack.getItem() instanceof ItemRTGPellet) return i > 2; + return !(stack.getItem() instanceof ItemRTGPellet); } @Override public int[] getAccessibleSlotsFromSide(int side) { - return side == 0 ? new int[] {2} : side == 1 ? new int[] {0} : new int[] {1}; + return new int[] {0, 1, 2, 3, 4, 5, 6, 7, 8}; } @Override public boolean canExtractItem(int slot, ItemStack stack, int side) { + + if(slot > 2) { + return !(stack.getItem() instanceof ItemRTGPellet); + } + return slot == 2; } From 927abb9066bda079f8b1f143245a9758ed0a1280 Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 21 Nov 2023 16:39:36 +0100 Subject: [PATCH 388/432] guh --- .../recipes/GasCentrifugeRecipes.java | 80 ++++++++---------- .../machine/TileEntityMachineGasCent.java | 69 ++++----------- .../textures/gui/machine/gui_radar_link.png | Bin 0 -> 1491 bytes .../assets/hbm/textures/items/radar_link.png | Bin 0 -> 230 bytes 4 files changed, 51 insertions(+), 98 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/gui/machine/gui_radar_link.png create mode 100644 src/main/resources/assets/hbm/textures/items/radar_link.png diff --git a/src/main/java/com/hbm/inventory/recipes/GasCentrifugeRecipes.java b/src/main/java/com/hbm/inventory/recipes/GasCentrifugeRecipes.java index 7b7743f2c..c352c085d 100644 --- a/src/main/java/com/hbm/inventory/recipes/GasCentrifugeRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/GasCentrifugeRecipes.java @@ -7,6 +7,7 @@ import java.util.Map; import java.util.Map.Entry; import com.hbm.inventory.FluidStack; +import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemFluidIcon; @@ -16,63 +17,47 @@ import net.minecraft.item.ItemStack; public class GasCentrifugeRecipes { - public static enum PseudoFluidType { - NONE (0, 0, null, false, (ItemStack[])null), + public static class PseudoFluidType { - HEUF6 (300, 0, NONE, true, new ItemStack(ModItems.nugget_u238, 2), new ItemStack(ModItems.nugget_u235, 1), new ItemStack(ModItems.fluorite, 1)), - MEUF6 (200, 100, HEUF6, false, new ItemStack(ModItems.nugget_u238, 1)), - LEUF6 (300, 200, MEUF6, false, new ItemStack(ModItems.nugget_u238, 1), new ItemStack(ModItems.fluorite, 1)), - NUF6 (400, 300, LEUF6, false, new ItemStack(ModItems.nugget_u238, 1)), + public static HashMap types = new HashMap(); - PF6 (300, 0, NONE, false, new ItemStack(ModItems.nugget_pu238, 1), new ItemStack(ModItems.nugget_pu_mix, 2), new ItemStack(ModItems.fluorite, 1)), + public static PseudoFluidType NONE = new PseudoFluidType("NONE", 0, 0, null, false, (ItemStack[])null); - MUD_HEAVY (500, 0, NONE, false, new ItemStack(ModItems.powder_iron, 1), new ItemStack(ModItems.dust, 1), new ItemStack(ModItems.nuclear_waste_tiny, 1)), - MUD (1000, 500, MUD_HEAVY, false, new ItemStack(ModItems.powder_lead, 1), new ItemStack(ModItems.dust, 1)); + public static PseudoFluidType HEUF6 = new PseudoFluidType("HEUF6", 300, 0, NONE, true, new ItemStack(ModItems.nugget_u238, 2), new ItemStack(ModItems.nugget_u235, 1), new ItemStack(ModItems.fluorite, 1)); + public static PseudoFluidType MEUF6 = new PseudoFluidType("MEUF6", 200, 100, HEUF6, false, new ItemStack(ModItems.nugget_u238, 1)); + public static PseudoFluidType LEUF6 = new PseudoFluidType("LEUF6", 300, 200, MEUF6, false, new ItemStack(ModItems.nugget_u238, 1), new ItemStack(ModItems.fluorite, 1)); + public static PseudoFluidType NUF6 = new PseudoFluidType("NUF6", 400, 300, LEUF6, false, new ItemStack(ModItems.nugget_u238, 1)); - //TODO for bob: consider more fluid types - //Schraranium Trisulfide for more schrab-containing, pre-SILEX processing using the crystals? - //Gaseous Nuclear Waste: because why not? Large inputs could output Xe-135 and maybe some other fun stuff... - // + public static PseudoFluidType PF6 = new PseudoFluidType("PF6", 300, 0, NONE, false, new ItemStack(ModItems.nugget_pu238, 1), new ItemStack(ModItems.nugget_pu_mix, 2), new ItemStack(ModItems.fluorite, 1)); + public static PseudoFluidType MUD_HEAVY = new PseudoFluidType("MUD_HEAVY", 500, 0, NONE, false, new ItemStack(ModItems.powder_iron, 1), new ItemStack(ModItems.dust, 1), new ItemStack(ModItems.nuclear_waste_tiny, 1)); + public static PseudoFluidType MUD = new PseudoFluidType("MUD", 1000, 500, MUD_HEAVY, false, new ItemStack(ModItems.powder_lead, 1), new ItemStack(ModItems.dust, 1)); + + public String name; int fluidConsumed; int fluidProduced; PseudoFluidType outputFluid; boolean isHighSpeed; ItemStack[] output; - PseudoFluidType(int fluidConsumed, int fluidProduced, PseudoFluidType outputFluid, boolean isHighSpeed, ItemStack... output) { + PseudoFluidType(String name, int fluidConsumed, int fluidProduced, PseudoFluidType outputFluid, boolean isHighSpeed, ItemStack... output) { + this.name = name; this.fluidConsumed = fluidConsumed; this.fluidProduced = fluidProduced; this.outputFluid = outputFluid; this.isHighSpeed = isHighSpeed; this.output = output; + types.put(name, this); } - public int getFluidConsumed() { - return this.fluidConsumed; - } + public int getFluidConsumed() { return this.fluidConsumed; } + public int getFluidProduced() { return this.fluidProduced; } + public PseudoFluidType getOutputType() { return this.outputFluid; } + public ItemStack[] getOutput() { return this.output; } + public boolean getIfHighSpeed() { return this.isHighSpeed; } + public String getName() { return I18nUtil.resolveKey("hbmpseudofluid.".concat(this.name.toLowerCase(Locale.US))); } - public int getFluidProduced() { - return this.fluidProduced; - } - - public PseudoFluidType getOutputType() { - return this.outputFluid; - } - - public String getName() { - return I18nUtil.resolveKey("hbmpseudofluid.".concat(this.toString().toLowerCase(Locale.US))); - } - - public boolean getIfHighSpeed() { - return this.isHighSpeed; - } - - public ItemStack[] getOutput() { - return this.output; - } - - }; + } /* Recipe NEI Handler */ //Fluid input; ItemStack[] outputs, isHighSpeed, # of centrifuges @@ -102,14 +87,17 @@ public class GasCentrifugeRecipes { return recipes; } + public static HashMap fluidConversions = new HashMap(); + public static void register() { - gasCent.put(new FluidStack(1200, Fluids.UF6), new Object[] { new ItemStack[] - {new ItemStack(ModItems.nugget_u238, 11), new ItemStack(ModItems.nugget_u235, 1), new ItemStack(ModItems.fluorite, 4)}, true, 4 }); - gasCent.put(new FluidStack(1200, Fluids.UF6), new Object[] { new ItemStack[] - {new ItemStack(ModItems.nugget_u238, 6), new ItemStack(ModItems.nugget_uranium_fuel, 6), new ItemStack(ModItems.fluorite, 4)}, false, 2 }); - gasCent.put(new FluidStack(900, Fluids.PUF6), new Object[] { new ItemStack[] - {new ItemStack(ModItems.nugget_pu238, 3), new ItemStack(ModItems.nugget_pu_mix, 6), new ItemStack(ModItems.fluorite, 3)}, false, 1 }); - gasCent.put(new FluidStack(1000, Fluids.WATZ), new Object[] { new ItemStack[] - {new ItemStack(ModItems.powder_iron, 1), new ItemStack(ModItems.powder_lead, 1), new ItemStack(ModItems.nuclear_waste_tiny, 1), new ItemStack(ModItems.dust, 2)}, false, 2 }); + + fluidConversions.put(Fluids.UF6, PseudoFluidType.NUF6); + fluidConversions.put(Fluids.PUF6, PseudoFluidType.PF6); + fluidConversions.put(Fluids.WATZ, PseudoFluidType.MUD); + + gasCent.put(new FluidStack(1200, Fluids.UF6), new Object[] { new ItemStack[] {new ItemStack(ModItems.nugget_u238, 11), new ItemStack(ModItems.nugget_u235, 1), new ItemStack(ModItems.fluorite, 4)}, true, 4 }); + gasCent.put(new FluidStack(1200, Fluids.UF6), new Object[] { new ItemStack[] {new ItemStack(ModItems.nugget_u238, 6), new ItemStack(ModItems.nugget_uranium_fuel, 6), new ItemStack(ModItems.fluorite, 4)}, false, 2 }); + gasCent.put(new FluidStack(900, Fluids.PUF6), new Object[] { new ItemStack[] {new ItemStack(ModItems.nugget_pu238, 3), new ItemStack(ModItems.nugget_pu_mix, 6), new ItemStack(ModItems.fluorite, 3)}, false, 1 }); + gasCent.put(new FluidStack(1000, Fluids.WATZ), new Object[] { new ItemStack[] {new ItemStack(ModItems.powder_iron, 1), new ItemStack(ModItems.powder_lead, 1), new ItemStack(ModItems.nuclear_waste_tiny, 1), new ItemStack(ModItems.dust, 2)}, false, 2 }); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java index ac797a691..eb993e4f7 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java @@ -1,14 +1,12 @@ package com.hbm.tileentity.machine; -import java.util.HashMap; - import com.hbm.blocks.BlockDummyable; -import com.hbm.interfaces.IFluidAcceptor; import com.hbm.inventory.container.ContainerMachineGasCent; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIMachineGasCent; +import com.hbm.inventory.recipes.GasCentrifugeRecipes; import com.hbm.inventory.recipes.GasCentrifugeRecipes.PseudoFluidType; import com.hbm.items.ModItems; import com.hbm.items.machine.IItemFluidIdentifier; @@ -36,7 +34,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; //epic! -public class TileEntityMachineGasCent extends TileEntityMachineBase implements IEnergyUser, IFluidAcceptor, IFluidStandardReceiver, IGUIProvider { +public class TileEntityMachineGasCent extends TileEntityMachineBase implements IEnergyUser, IFluidStandardReceiver, IGUIProvider { public long power; public int progress; @@ -50,17 +48,9 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I private static final int[] slots_io = new int[] { 0, 1, 2, 3 }; - private static HashMap fluidConversions = new HashMap(); - - static { - fluidConversions.put(Fluids.UF6, PseudoFluidType.NUF6); - fluidConversions.put(Fluids.PUF6, PseudoFluidType.PF6); - fluidConversions.put(Fluids.WATZ, PseudoFluidType.MUD); - } - public TileEntityMachineGasCent() { super(7); - tank = new FluidTank(Fluids.UF6, 2000, 0); + tank = new FluidTank(Fluids.UF6, 2000); inputTank = new PseudoFluidTank(PseudoFluidType.NUF6, 8000); outputTank = new PseudoFluidTank(PseudoFluidType.LEUF6, 8000); } @@ -180,10 +170,11 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I this.power = data.getLong("power"); this.progress = data.getInteger("progress"); this.isProgressing = data.getBoolean("isProgressing"); - this.inputTank.setTankType(PseudoFluidType.valueOf(data.getString("inputType"))); - this.outputTank.setTankType(PseudoFluidType.valueOf(data.getString("outputType"))); + this.inputTank.setTankType(PseudoFluidType.types.get(data.getString("inputType"))); + this.outputTank.setTankType(PseudoFluidType.types.get(data.getString("outputType"))); this.inputTank.setFill(data.getInteger("inputFill")); this.outputTank.setFill(data.getInteger("outputFill")); + this.tank.readFromNBT(data, "t"); } @Override @@ -195,9 +186,8 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I power = Library.chargeTEFromItems(slots, 4, power, maxPower); setTankType(5); - tank.updateTank(this); - if(fluidConversions.containsValue(inputTank.getTankType())) { + if(GasCentrifugeRecipes.fluidConversions.containsValue(inputTank.getTankType())) { attemptConversion(); } @@ -246,8 +236,9 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I data.setBoolean("isProgressing", isProgressing); data.setInteger("inputFill", inputTank.getFill()); data.setInteger("outputFill", outputTank.getFill()); - data.setString("inputType", inputTank.getTankType().toString()); - data.setString("outputType", outputTank.getTankType().toString()); + data.setString("inputType", inputTank.getTankType().name); + data.setString("outputType", outputTank.getTankType().name); + tank.writeToNBT(data, "t"); this.networkPack(data, 50); PacketDispatcher.wrapper.sendToAllAround(new LoopedSoundPacket(xCoord, yCoord, zCoord), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); @@ -258,7 +249,7 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I for(DirPos pos : getConPos()) { this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); - if(fluidConversions.containsValue(inputTank.getTankType())) { + if(GasCentrifugeRecipes.fluidConversions.containsValue(inputTank.getTankType())) { this.trySubscribe(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } } @@ -301,10 +292,10 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I if(slots[in] != null && slots[in].getItem() instanceof IItemFluidIdentifier) { IItemFluidIdentifier id = (IItemFluidIdentifier) slots[in].getItem(); - FluidType newType = id.getType(null, 0, 0, 0, slots[in]); + FluidType newType = id.getType(worldObj, xCoord, yCoord, zCoord, slots[in]); if(tank.getTankType() != newType) { - PseudoFluidType pseudo = fluidConversions.get(newType); + PseudoFluidType pseudo = GasCentrifugeRecipes.fluidConversions.get(newType); if(pseudo != null) { inputTank.setTankType(pseudo); @@ -316,32 +307,6 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I } } - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setFluidFill(int fill, FluidType type) { - if(type == tank.getTankType()) - tank.setFill(fill); - } - - @Override - public int getFluidFill(FluidType type) { - return tank.getTankType() == type ? tank.getFill() : 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - return tank.getTankType() == type ? tank.getMaxFill() : 0; - } - @Override public FluidTank[] getReceivingTanks() { return new FluidTank[] { tank }; @@ -413,16 +378,16 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I public void writeToNBT(NBTTagCompound nbt, String s) { nbt.setInteger(s, fluid); nbt.setInteger(s + "_max", maxFluid); - nbt.setString(s + "_type", type.toString()); + nbt.setString(s + "_type", type.name); } //Called by TE to load fillstate public void readFromNBT(NBTTagCompound nbt, String s) { fluid = nbt.getInteger(s); int max = nbt.getInteger(s + "_max"); - if(max > 0) - maxFluid = nbt.getInteger(s + "_max"); - type = PseudoFluidType.valueOf(nbt.getString(s + "_type")); + if(max > 0) maxFluid = nbt.getInteger(s + "_max"); + type = PseudoFluidType.types.get(nbt.getString(s + "_type")); + if(type == null) type = PseudoFluidType.NONE; } /* ______ ______ diff --git a/src/main/resources/assets/hbm/textures/gui/machine/gui_radar_link.png b/src/main/resources/assets/hbm/textures/gui/machine/gui_radar_link.png new file mode 100644 index 0000000000000000000000000000000000000000..dafca0ee5008dd68020698ad8aa9b3db38d24317 GIT binary patch literal 1491 zcmcgsTTqi%5I%oECaB?}h~+9u)mRZ>kZUDG_(cN9%_|xt2!a+7j0U3+2tJS?SgaO7 z6e1`fqM&FRfsh16C{Pj@VnPX-NMitrglka2VE<10(3$eweff62-E+?De!C|pEMyO6 zx#e;I0EQ3%M*sjJE(Fj92oT8+;t|k4=S$d+Ml2m2#{^*66#~3#KlRSITuvDXG&AUN zc_b$1qLX?8B;<9Dtr^^HZ_l5QGhp|_roKLU*FDns{l9*))1NtYAKIJaQ%t8}6YB)e zPP)hS?HKS`2n)7`no2*cdw=G~))4&)cy zvME1DhU@}VS^(&+`rzA5z|I*0Iffu07~qeiz^c{YTG8L3xp7nDX=Qutj%Z>rW`W}y>OP_-@}~G< zWR+Z*bb?m;)JW?+YmMgwd2n*6UL`#4Pmv2@o@LWTCYJ5W^l!9Y@oml)R z=T*kfOGgRMDL*`jtnz)G0vVgi)%yI_0hm#9UY8EQP2Ti{K6+#I*fRhkea+Il=q{c8KO5Y$|W*2gyAJq`G! zWr;*059>BnuVifH8`;84Ritr_+}YYFJ*L z>L-KmYz1L@tO0Fu^sGiyE$)b9sLU~Xj-JDc0V>C9;h~>RO&&@dm`))}%4}HzdaJn> zw594ok@j=B4i~YMRnnmhUa+y|<%$nk?_1Po(Mv0bi25{YFJ{=+e&G*_g2$j)oP57_ zSFkBN^w`HFt2N+U-JE?xjO^fNuavF=()8G|wSonb%?;GuK*tic?^>R2;y~FMA zz>8E{(su|ktd(aIpdM+@i2mg*WftElG~nx@rG(0I^i)NQxfql7oW34xkUtYGjA zAIXWz4MjPYtSKVaYG-E`B~R7WE&WxAEWNi={>$ht3*yR_Pxe1Uk1^7l$8O%qX#tbr zA=EQQP=A3`DrFxUs!q>kMg*Qhw&^r6pmH4gc|yUjYuw=US|&RR!;xv;bG1#-?E?~2 zW#6Z**s0Jyc!w!Ngssqhwg@lAG88^tBZYiU7w=26P9dx(f70>o*WGJ+q|*gmJ(_=3 zIWbT2Gj6a*rde6x(sY=uZ>pxywF@T&Rsr2Z`AWJ1d=T{vU4zfr#( pWD;I+)+n3aX1qid|38Iy{0f~HqLP?~M{NFjov=FuuJt8d{u9DUdzJtI literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/radar_link.png b/src/main/resources/assets/hbm/textures/items/radar_link.png new file mode 100644 index 0000000000000000000000000000000000000000..274181b4b59a71aca94b41b1935bdf7123ff0a21 GIT binary patch literal 230 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf!p)=jVDEXGWhU0oLzEk~iYe5# z&G6#2$uHj~+NW-0XTRjqD%l+EGs$PARy7DPedf6AbX01SlZy)P;SY7kCA6I*muOD^ a-!5)uWt*n?E>s=pPzFy|KbLh*2~7Y Date: Wed, 22 Nov 2023 15:26:56 +0100 Subject: [PATCH 389/432] more missile fun --- .../missile/EntityMissileAntiBallistic.java | 7 + .../entity/missile/EntityMissileBaseNT.java | 12 +- .../entity/missile/EntityMissileCustom.java | 332 +++--------------- .../hbm/textures/items/coal_eternal.png | Bin 0 -> 429 bytes 4 files changed, 70 insertions(+), 281 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/items/coal_eternal.png diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileAntiBallistic.java b/src/main/java/com/hbm/entity/missile/EntityMissileAntiBallistic.java index 5d6e40d2a..40083b324 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileAntiBallistic.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileAntiBallistic.java @@ -16,6 +16,13 @@ import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.World; +/* + * COME ON + * STEP 1: GET 24 EGGS + * STEP 2: FUCK EVERY EGG + * STEP 3: BLOW UP ALL THE FUCKING EGGS + * AND FROM THE ASHES THE MOTHER OF ALL OMELETTES WILL BE BORN! + */ public class EntityMissileAntiBallistic extends Entity implements IRadarDetectable { int activationTimer; diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java b/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java index 75a1d265b..243835d76 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java @@ -65,8 +65,8 @@ public abstract class EntityMissileBaseNT extends EntityThrowableInterp implemen @Override protected void entityInit() { + super.entityInit(); init(ForgeChunkManager.requestTicket(MainRegistry.instance, worldObj, Type.ENTITY)); - this.dataWatcher.addObject(8, Integer.valueOf(this.health)); } @Override @@ -112,8 +112,7 @@ public abstract class EntityMissileBaseNT extends EntityThrowableInterp implemen loadNeighboringChunks((int) Math.floor(posX / 16), (int) Math.floor(posZ / 16)); } else { - Vec3 vec = Vec3.createVectorHelper(motionX, motionY, motionZ).normalize(); - MainRegistry.proxy.particleControl(posX - vec.xCoord, posY - vec.yCoord, posZ - vec.zCoord, 2); + this.spawnContrail(); } float f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); @@ -123,6 +122,11 @@ public abstract class EntityMissileBaseNT extends EntityThrowableInterp implemen while(this.rotationYaw - this.prevRotationYaw < -180.0F) this.prevRotationYaw -= 360.0F; while(this.rotationYaw - this.prevRotationYaw >= 180.0F) this.prevRotationYaw += 360.0F; } + + protected void spawnContrail() { + Vec3 vec = Vec3.createVectorHelper(motionX, motionY, motionZ).normalize(); + MainRegistry.proxy.particleControl(posX - vec.xCoord, posY - vec.yCoord, posZ - vec.zCoord, 2); + } @Override public void readEntityFromNBT(NBTTagCompound nbt) { @@ -180,7 +184,7 @@ public abstract class EntityMissileBaseNT extends EntityThrowableInterp implemen } } - private void killMissile() { + protected void killMissile() { ExplosionLarge.explode(worldObj, posX, posY, posZ, 5, true, false, true); ExplosionLarge.spawnShrapnelShower(worldObj, posX, posY, posZ, motionX, motionY, motionZ, 15, 0.075); ExplosionLarge.spawnMissileDebris(worldObj, posX, posY, posZ, motionX, motionY, motionZ, 0.25, getDebris(), getDebrisRareDrop()); diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java b/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java index 0fed51411..c8ed518e2 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java @@ -21,99 +21,43 @@ import com.hbm.items.weapon.ItemMissile.WarheadType; import com.hbm.main.MainRegistry; import api.hbm.entity.IRadarDetectable; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.entity.Entity; -import net.minecraft.init.Blocks; import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.DamageSource; -import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.world.World; -import net.minecraftforge.common.ForgeChunkManager; -import net.minecraftforge.common.ForgeChunkManager.Ticket; -import net.minecraftforge.common.ForgeChunkManager.Type; -public class EntityMissileCustom extends Entity implements IChunkLoader, IRadarDetectable { +public class EntityMissileCustom extends EntityMissileBaseNT implements IChunkLoader, IRadarDetectable { - int startX; - int startZ; - int targetX; - int targetZ; - double velocity; - double decelY; - double accelXZ; - float fuel; - float consumption; - private Ticket loaderTicket; - public int health = 50; - MissileStruct template; + protected float fuel; + protected float consumption; - public EntityMissileCustom(World p_i1582_1_) { - super(p_i1582_1_); - this.ignoreFrustumCheck = true; - startX = (int) posX; - startZ = (int) posZ; - targetX = (int) posX; - targetZ = (int) posZ; - } - - public boolean canBeCollidedWith() { - return true; - } - - public boolean attackEntityFrom(DamageSource p_70097_1_, float p_70097_2_) { - if(this.isEntityInvulnerable()) { - return false; - } else { - if(!this.isDead && !this.worldObj.isRemote) { - health -= p_70097_2_; - - if(this.health <= 0) { - this.setDead(); - this.killMissile(); - } - } - - return true; - } - } - - private void killMissile() { - ExplosionLarge.explode(worldObj, posX, posY, posZ, 5, true, false, true); - ExplosionLarge.spawnShrapnelShower(worldObj, posX, posY, posZ, motionX, motionY, motionZ, 15, 0.075); + public EntityMissileCustom(World world) { + super(world); } public EntityMissileCustom(World world, float x, float y, float z, int a, int b, MissileStruct template) { super(world); this.ignoreFrustumCheck = true; - /* - * this.posX = x; this.posY = y; this.posZ = z; - */ this.setLocationAndAngles(x, y, z, 0, 0); startX = (int) x; startZ = (int) z; targetX = a; targetZ = b; - this.motionY = 2; - - this.template = template; - - this.dataWatcher.updateObject(9, Item.getIdFromItem(template.warhead)); - this.dataWatcher.updateObject(10, Item.getIdFromItem(template.fuselage)); - if(template.fins != null) - this.dataWatcher.updateObject(11, Item.getIdFromItem(template.fins)); - else - this.dataWatcher.updateObject(11, Integer.valueOf(0)); - this.dataWatcher.updateObject(12, Item.getIdFromItem(template.thruster)); Vec3 vector = Vec3.createVectorHelper(targetX - startX, 0, targetZ - startZ); accelXZ = decelY = 1 / vector.lengthVector(); decelY *= 2; + velocity = 0; - velocity = 0.0; + this.dataWatcher.updateObject(9, Item.getIdFromItem(template.warhead)); + this.dataWatcher.updateObject(10, Item.getIdFromItem(template.fuselage)); + this.dataWatcher.updateObject(12, Item.getIdFromItem(template.thruster)); + if(template.fins != null) { + this.dataWatcher.updateObject(11, Item.getIdFromItem(template.fins)); + } else { + this.dataWatcher.updateObject(11, Integer.valueOf(0)); + } ItemMissile fuselage = (ItemMissile) template.fuselage; ItemMissile thruster = (ItemMissile) template.thruster; @@ -125,43 +69,24 @@ public class EntityMissileCustom extends Entity implements IChunkLoader, IRadarD } @Override - protected void entityInit() { - init(ForgeChunkManager.requestTicket(MainRegistry.instance, worldObj, Type.ENTITY)); - this.dataWatcher.addObject(8, Integer.valueOf(this.health)); - - if(template != null) { - this.dataWatcher.addObject(9, Integer.valueOf(Item.getIdFromItem(template.warhead))); - this.dataWatcher.addObject(10, Integer.valueOf(Item.getIdFromItem(template.fuselage))); - - if(template.fins != null) - this.dataWatcher.addObject(11, Integer.valueOf(Item.getIdFromItem(template.fins))); - else - this.dataWatcher.addObject(11, Integer.valueOf(0)); - - this.dataWatcher.addObject(12, Integer.valueOf(Item.getIdFromItem(template.thruster))); - } else { - this.dataWatcher.addObject(9, Integer.valueOf(0)); - this.dataWatcher.addObject(10, Integer.valueOf(0)); - this.dataWatcher.addObject(11, Integer.valueOf(0)); - this.dataWatcher.addObject(12, Integer.valueOf(0)); - } + protected void killMissile() { + ExplosionLarge.explode(worldObj, posX, posY, posZ, 5, true, false, true); + ExplosionLarge.spawnShrapnelShower(worldObj, posX, posY, posZ, motionX, motionY, motionZ, 15, 0.075); } @Override - protected void readEntityFromNBT(NBTTagCompound nbt) { - motionX = nbt.getDouble("moX"); - motionY = nbt.getDouble("moY"); - motionZ = nbt.getDouble("moZ"); - posX = nbt.getDouble("poX"); - posY = nbt.getDouble("poY"); - posZ = nbt.getDouble("poZ"); - decelY = nbt.getDouble("decel"); - accelXZ = nbt.getDouble("accel"); - targetX = nbt.getInteger("tX"); - targetZ = nbt.getInteger("tZ"); - startX = nbt.getInteger("sX"); - startZ = nbt.getInteger("sZ"); - velocity = nbt.getInteger("veloc"); + protected void entityInit() { + super.entityInit(); + this.dataWatcher.addObject(8, Integer.valueOf(this.health)); + this.dataWatcher.addObject(9, Integer.valueOf(0)); + this.dataWatcher.addObject(10, Integer.valueOf(0)); + this.dataWatcher.addObject(11, Integer.valueOf(0)); + this.dataWatcher.addObject(12, Integer.valueOf(0)); + } + + @Override + public void readEntityFromNBT(NBTTagCompound nbt) { + super.readEntityFromNBT(nbt); fuel = nbt.getFloat("fuel"); consumption = nbt.getFloat("consumption"); this.dataWatcher.updateObject(9, nbt.getInteger("warhead")); @@ -171,20 +96,8 @@ public class EntityMissileCustom extends Entity implements IChunkLoader, IRadarD } @Override - protected void writeEntityToNBT(NBTTagCompound nbt) { - nbt.setDouble("moX", motionX); - nbt.setDouble("moY", motionY); - nbt.setDouble("moZ", motionZ); - nbt.setDouble("poX", posX); - nbt.setDouble("poY", posY); - nbt.setDouble("poZ", posZ); - nbt.setDouble("decel", decelY); - nbt.setDouble("accel", accelXZ); - nbt.setInteger("tX", targetX); - nbt.setInteger("tZ", targetZ); - nbt.setInteger("sX", startX); - nbt.setInteger("sZ", startZ); - nbt.setDouble("veloc", velocity); + public void writeEntityToNBT(NBTTagCompound nbt) { + super.writeEntityToNBT(nbt); nbt.setFloat("fuel", fuel); nbt.setFloat("consumption", consumption); nbt.setInteger("warhead", this.dataWatcher.getWatchableObjectInt(9)); @@ -192,118 +105,28 @@ public class EntityMissileCustom extends Entity implements IChunkLoader, IRadarD nbt.setInteger("fins", this.dataWatcher.getWatchableObjectInt(11)); nbt.setInteger("thruster", this.dataWatcher.getWatchableObjectInt(12)); } + + @Override + protected void spawnContrail() { - protected void rotation() { - float f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - this.rotationYaw = (float) (Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); + Vec3 v = Vec3.createVectorHelper(motionX, motionY, motionZ).normalize(); + String smoke = ""; + ItemMissile part = (ItemMissile) Item.getItemById(this.dataWatcher.getWatchableObjectInt(10)); + FuelType type = (FuelType) part.attributes[0]; - for(this.rotationPitch = (float) (Math.atan2(this.motionY, f2) * 180.0D / Math.PI) - 90; this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F) { - ; + switch(type) { + case BALEFIRE: smoke = "exBalefire"; break; + case HYDROGEN: smoke = "exHydrogen"; break; + case KEROSENE: smoke = "exKerosene"; break; + case SOLID: smoke = "exSolid"; break; + case XENON: break; } - while(this.rotationPitch - this.prevRotationPitch >= 180.0F) { - this.prevRotationPitch += 360.0F; - } - - while(this.rotationYaw - this.prevRotationYaw < -180.0F) { - this.prevRotationYaw -= 360.0F; - } - - while(this.rotationYaw - this.prevRotationYaw >= 180.0F) { - this.prevRotationYaw += 360.0F; - } + if(!smoke.isEmpty()) for(int i = 0; i < velocity; i++) MainRegistry.proxy.spawnParticle(posX - v.xCoord * i, posY - v.yCoord * i, posZ - v.zCoord * i, smoke, null); } @Override - public void onUpdate() { - this.dataWatcher.updateObject(8, Integer.valueOf(this.health)); - - this.setLocationAndAngles(posX + this.motionX * velocity, posY + this.motionY * velocity, posZ + this.motionZ * velocity, 0, 0); - - this.rotation(); - - if(fuel > 0 || worldObj.isRemote) { - - fuel -= consumption; - - this.motionY -= decelY * velocity; - - Vec3 vector = Vec3.createVectorHelper(targetX - startX, 0, targetZ - startZ); - vector = vector.normalize(); - vector.xCoord *= accelXZ * velocity; - vector.zCoord *= accelXZ * velocity; - - if(motionY > 0) { - motionX += vector.xCoord; - motionZ += vector.zCoord; - } - - if(motionY < 0) { - motionX -= vector.xCoord; - motionZ -= vector.zCoord; - } - - if(velocity < 5) - velocity += 0.01; - } else { - - motionX *= 0.99; - motionZ *= 0.99; - - if(motionY > -1.5) - motionY -= 0.05; - } - - if(this.worldObj.getBlock((int) this.posX, (int) this.posY, (int) this.posZ) != Blocks.air && this.worldObj.getBlock((int) this.posX, (int) this.posY, (int) this.posZ) != Blocks.water && this.worldObj.getBlock((int) this.posX, (int) this.posY, (int) this.posZ) != Blocks.flowing_water) { - - if(!this.worldObj.isRemote) { - onImpact(); - } - this.setDead(); - return; - } - - if(this.worldObj.isRemote) { - - Vec3 v = Vec3.createVectorHelper(motionX, motionY, motionZ); - v = v.normalize(); - - String smoke = ""; - - ItemMissile part = (ItemMissile) Item.getItemById(this.dataWatcher.getWatchableObjectInt(10)); - FuelType type = (FuelType) part.attributes[0]; - - switch(type) { - case BALEFIRE: - smoke = "exBalefire"; - break; - case HYDROGEN: - smoke = "exHydrogen"; - break; - case KEROSENE: - smoke = "exKerosene"; - break; - case SOLID: - smoke = "exSolid"; - break; - case XENON: - break; - } - - for(int i = 0; i < velocity; i++) - MainRegistry.proxy.spawnParticle(posX - v.xCoord * i, posY - v.yCoord * i, posZ - v.zCoord * i, smoke, null); - } - - loadNeighboringChunks((int) (posX / 16), (int) (posZ / 16)); - } - - @Override - @SideOnly(Side.CLIENT) - public boolean isInRangeToRenderDist(double distance) { - return distance < 2500000; - } - - public void onImpact() { + public void onImpact() { //TODO: demolish this steaming pile of shit ItemMissile part = (ItemMissile) Item.getItemById(this.dataWatcher.getWatchableObjectInt(9)); @@ -378,67 +201,22 @@ public class EntityMissileCustom extends Entity implements IChunkLoader, IRadarD } } - public void init(Ticket ticket) { - if(!worldObj.isRemote) { - - if(ticket != null) { - - if(loaderTicket == null) { - - loaderTicket = ticket; - loaderTicket.bindEntity(this); - loaderTicket.getModData(); - } - - ForgeChunkManager.forceChunk(loaderTicket, new ChunkCoordIntPair(chunkCoordX, chunkCoordZ)); - } - } - } - - List loadedChunks = new ArrayList(); - - public void loadNeighboringChunks(int newChunkX, int newChunkZ) { - if(!worldObj.isRemote && loaderTicket != null) { - for(ChunkCoordIntPair chunk : loadedChunks) { - ForgeChunkManager.unforceChunk(loaderTicket, chunk); - } - - loadedChunks.clear(); - loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX + 1, newChunkZ + 1)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX - 1, newChunkZ - 1)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX + 1, newChunkZ - 1)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX - 1, newChunkZ + 1)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX + 1, newChunkZ)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ + 1)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX - 1, newChunkZ)); - loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ - 1)); - - for(ChunkCoordIntPair chunk : loadedChunks) { - ForgeChunkManager.forceChunk(loaderTicket, chunk); - } - } - } - @Override public RadarTargetType getTargetType() { ItemMissile part = (ItemMissile) Item.getItemById(this.dataWatcher.getWatchableObjectInt(10)); - PartSize top = part.top; PartSize bottom = part.bottom; - if(top == PartSize.SIZE_10 && bottom == PartSize.SIZE_10) - return RadarTargetType.MISSILE_10; - if(top == PartSize.SIZE_10 && bottom == PartSize.SIZE_15) - return RadarTargetType.MISSILE_10_15; - if(top == PartSize.SIZE_15 && bottom == PartSize.SIZE_15) - return RadarTargetType.MISSILE_15; - if(top == PartSize.SIZE_15 && bottom == PartSize.SIZE_20) - return RadarTargetType.MISSILE_15_20; - if(top == PartSize.SIZE_20 && bottom == PartSize.SIZE_20) - return RadarTargetType.MISSILE_20; + if(top == PartSize.SIZE_10 && bottom == PartSize.SIZE_10) return RadarTargetType.MISSILE_10; + if(top == PartSize.SIZE_10 && bottom == PartSize.SIZE_15) return RadarTargetType.MISSILE_10_15; + if(top == PartSize.SIZE_15 && bottom == PartSize.SIZE_15) return RadarTargetType.MISSILE_15; + if(top == PartSize.SIZE_15 && bottom == PartSize.SIZE_20) return RadarTargetType.MISSILE_15_20; + if(top == PartSize.SIZE_20 && bottom == PartSize.SIZE_20) return RadarTargetType.MISSILE_20; return RadarTargetType.PLAYER; } + + @Override public List getDebris() { return new ArrayList(); } + @Override public ItemStack getDebrisRareDrop() { return null; } } diff --git a/src/main/resources/assets/hbm/textures/items/coal_eternal.png b/src/main/resources/assets/hbm/textures/items/coal_eternal.png new file mode 100644 index 0000000000000000000000000000000000000000..36ee856f8fe79f1c521ddfa5f78471460016cc3d GIT binary patch literal 429 zcmV;e0aE^nP)@>LIOiaEXe{I>ayJlzFi;Og@3kZ XnbD=?!6j$g00000NkvXXu0mjfLW;XH literal 0 HcmV?d00001 From b6f9953b3e8556f0cd16c6eeb2e103c80b7c8d7f Mon Sep 17 00:00:00 2001 From: Bob Date: Wed, 22 Nov 2023 21:46:35 +0100 Subject: [PATCH 390/432] *blows up missile with mind* --- .../entity/missile/EntityMissileBaseNT.java | 40 +- .../entity/missile/EntityMissileCustom.java | 15 + .../java/com/hbm/main/ResourceManager.java | 3 +- .../entity/rocket/RenderMissileGeneric.java | 41 +- .../tileentity/RenderLaunchPadTier1.java | 4 +- .../assets/hbm/models/missile_abm.obj | 2124 +++++++++++++++++ .../hbm/textures/models/missile_abm.png | Bin 0 -> 1320 bytes 7 files changed, 2194 insertions(+), 33 deletions(-) create mode 100644 src/main/resources/assets/hbm/models/missile_abm.obj create mode 100644 src/main/resources/assets/hbm/textures/models/missile_abm.png diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java b/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java index 243835d76..45a904538 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java @@ -87,21 +87,29 @@ public abstract class EntityMissileBaseNT extends EntityThrowableInterp implemen if(!worldObj.isRemote) { - this.motionY -= decelY * velocity; + if(hasPropulsion()) { + this.motionY -= decelY * velocity; + + Vec3 vector = Vec3.createVectorHelper(targetX - startX, 0, targetZ - startZ); + vector = vector.normalize(); + vector.xCoord *= accelXZ; + vector.zCoord *= accelXZ; + + if(motionY > 0) { + motionX += vector.xCoord * velocity; + motionZ += vector.zCoord * velocity; + } + + if(motionY < 0) { + motionX -= vector.xCoord * velocity; + motionZ -= vector.zCoord * velocity; + } + } else { + motionX *= 0.99; + motionZ *= 0.99; - Vec3 vector = Vec3.createVectorHelper(targetX - startX, 0, targetZ - startZ); - vector = vector.normalize(); - vector.xCoord *= accelXZ; - vector.zCoord *= accelXZ; - - if(motionY > 0) { - motionX += vector.xCoord * velocity; - motionZ += vector.zCoord * velocity; - } - - if(motionY < 0) { - motionX -= vector.xCoord * velocity; - motionZ -= vector.zCoord * velocity; + if(motionY > -1.5) + motionY -= 0.05; } if(motionY < -velocity && this.isCluster) { @@ -123,6 +131,10 @@ public abstract class EntityMissileBaseNT extends EntityThrowableInterp implemen while(this.rotationYaw - this.prevRotationYaw >= 180.0F) this.prevRotationYaw += 360.0F; } + public boolean hasPropulsion() { + return true; + } + protected void spawnContrail() { Vec3 vec = Vec3.createVectorHelper(motionX, motionY, motionZ).normalize(); MainRegistry.proxy.particleControl(posX - vec.xCoord, posY - vec.yCoord, posZ - vec.zCoord, 2); diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java b/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java index c8ed518e2..65d5b0142 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java @@ -73,6 +73,21 @@ public class EntityMissileCustom extends EntityMissileBaseNT implements IChunkLo ExplosionLarge.explode(worldObj, posX, posY, posZ, 5, true, false, true); ExplosionLarge.spawnShrapnelShower(worldObj, posX, posY, posZ, motionX, motionY, motionZ, 15, 0.075); } + + @Override + public void onUpdate() { + + if(!worldObj.isRemote) { + if(this.hasPropulsion()) this.fuel -= this.consumption; + } + + super.onUpdate(); + } + + @Override + public boolean hasPropulsion() { + return this.fuel > 0; + } @Override protected void entityInit() { diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 26fa2963a..901fb11b2 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -1010,6 +1010,7 @@ public class ResourceManager { //Missiles public static final IModelCustom missileV2 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileV2.obj")); + public static final IModelCustom missileABM = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_abm.obj")).asDisplayList(); public static final IModelCustom missileStrong = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileGeneric.obj")); public static final IModelCustom missileHuge = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileHuge.obj")); public static final IModelCustom missileNuclear = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileNeon.obj")); @@ -1152,7 +1153,7 @@ public class ResourceManager { public static final ResourceLocation missileV2_IN_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileV2_IN.png"); public static final ResourceLocation missileV2_CL_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileV2_CL.png"); public static final ResourceLocation missileV2_BU_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileV2_BU.png"); - public static final ResourceLocation missileAA_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileAA.png"); + public static final ResourceLocation missileAA_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_abm.png"); public static final ResourceLocation missileStrong_HE_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileStrong_HE.png"); public static final ResourceLocation missileStrong_EMP_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileStrong_EMP.png"); public static final ResourceLocation missileStrong_IN_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileStrong_IN.png"); diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderMissileGeneric.java b/src/main/java/com/hbm/render/entity/rocket/RenderMissileGeneric.java index 88efff5e3..1b9d98585 100644 --- a/src/main/java/com/hbm/render/entity/rocket/RenderMissileGeneric.java +++ b/src/main/java/com/hbm/render/entity/rocket/RenderMissileGeneric.java @@ -11,28 +11,35 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; public class RenderMissileGeneric extends Render { - - public RenderMissileGeneric() { } + + public RenderMissileGeneric() { + } @Override public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { GL11.glPushMatrix(); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_); - GL11.glRotatef(p_76986_1_.prevRotationYaw + (p_76986_1_.rotationYaw - p_76986_1_.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(p_76986_1_.prevRotationPitch + (p_76986_1_.rotationPitch - p_76986_1_.prevRotationPitch) * p_76986_9_, 0.0F, 0.0F, 1.0F); - - if(p_76986_1_ instanceof EntityMissileGeneric) - bindTexture(ResourceManager.missileV2_HE_tex); - if(p_76986_1_ instanceof EntityMissileIncendiary) - bindTexture(ResourceManager.missileV2_IN_tex); - if(p_76986_1_ instanceof EntityMissileCluster) - bindTexture(ResourceManager.missileV2_CL_tex); - if(p_76986_1_ instanceof EntityMissileBunkerBuster) - bindTexture(ResourceManager.missileV2_BU_tex); - if(p_76986_1_ instanceof EntityMissileAntiBallistic) - bindTexture(ResourceManager.missileAA_tex); - ResourceManager.missileV2.renderAll(); + GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_); + GL11.glRotatef(p_76986_1_.prevRotationYaw + (p_76986_1_.rotationYaw - p_76986_1_.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(p_76986_1_.prevRotationPitch + (p_76986_1_.rotationPitch - p_76986_1_.prevRotationPitch) * p_76986_9_, 0.0F, 0.0F, 1.0F); + + if(p_76986_1_ instanceof EntityMissileGeneric) + bindTexture(ResourceManager.missileV2_HE_tex); + if(p_76986_1_ instanceof EntityMissileIncendiary) + bindTexture(ResourceManager.missileV2_IN_tex); + if(p_76986_1_ instanceof EntityMissileCluster) + bindTexture(ResourceManager.missileV2_CL_tex); + if(p_76986_1_ instanceof EntityMissileBunkerBuster) + bindTexture(ResourceManager.missileV2_BU_tex); + + if(p_76986_1_ instanceof EntityMissileAntiBallistic) { + bindTexture(ResourceManager.missileAA_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.missileABM.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } else { + ResourceManager.missileV2.renderAll(); + } GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/render/tileentity/RenderLaunchPadTier1.java b/src/main/java/com/hbm/render/tileentity/RenderLaunchPadTier1.java index 047155832..fe1adcf1e 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderLaunchPadTier1.java +++ b/src/main/java/com/hbm/render/tileentity/RenderLaunchPadTier1.java @@ -165,7 +165,9 @@ public class RenderLaunchPadTier1 extends TileEntitySpecialRenderer { { GL11.glScalef(1.0F, 1.0F, 1.0F); bindTexture(ResourceManager.missileAA_tex); - ResourceManager.missileV2.renderAll(); + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.missileABM.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); } if(state == 22) { diff --git a/src/main/resources/assets/hbm/models/missile_abm.obj b/src/main/resources/assets/hbm/models/missile_abm.obj new file mode 100644 index 000000000..d77bc487d --- /dev/null +++ b/src/main/resources/assets/hbm/models/missile_abm.obj @@ -0,0 +1,2124 @@ +# Blender v2.79 (sub 0) OBJ File: 'missile_abm.blend' +# www.blender.org +o Circle +v 0.000000 7.000000 -0.500000 +v -0.191342 7.000000 -0.461940 +v -0.353553 7.000000 -0.353553 +v -0.461940 7.000000 -0.191342 +v -0.500000 7.000000 0.000000 +v -0.461940 7.000000 0.191342 +v -0.353553 7.000000 0.353553 +v -0.191342 7.000000 0.461940 +v -0.000000 7.000000 0.500000 +v 0.191342 7.000000 0.461940 +v 0.353553 7.000000 0.353554 +v 0.461940 7.000000 0.191342 +v 0.500000 7.000000 -0.000000 +v 0.461940 7.000000 -0.191342 +v 0.353553 7.000000 -0.353554 +v 0.191341 7.000000 -0.461940 +v -0.000000 8.500000 0.000000 +v 0.000000 5.500000 -0.500000 +v -0.191342 5.500000 -0.461940 +v -0.353553 5.500000 -0.353553 +v -0.461940 5.500000 -0.191342 +v -0.500000 5.500000 0.000000 +v -0.461940 5.500000 0.191342 +v -0.353553 5.500000 0.353553 +v -0.191342 5.500000 0.461940 +v -0.000000 5.500000 0.500000 +v 0.191342 5.500000 0.461940 +v 0.353553 5.500000 0.353554 +v 0.461940 5.500000 0.191342 +v 0.500000 5.500000 -0.000000 +v 0.461940 5.500000 -0.191342 +v 0.353553 5.500000 -0.353554 +v 0.191341 5.500000 -0.461940 +v -0.000000 4.500000 -0.250000 +v -0.095671 4.500000 -0.230970 +v -0.176777 4.500000 -0.176777 +v -0.230970 4.500000 -0.095671 +v -0.250000 4.500000 0.000000 +v -0.230970 4.500000 0.095671 +v -0.176777 4.500000 0.176777 +v -0.095671 4.500000 0.230970 +v -0.000000 4.500000 0.250000 +v 0.095671 4.500000 0.230970 +v 0.176777 4.500000 0.176777 +v 0.230970 4.500000 0.095671 +v 0.250000 4.500000 -0.000000 +v 0.230970 4.500000 -0.095671 +v 0.176777 4.500000 -0.176777 +v 0.095671 4.500000 -0.230970 +v -0.000000 1.500000 -0.250000 +v -0.095671 1.500000 -0.230970 +v -0.176777 1.500000 -0.176777 +v -0.230970 1.500000 -0.095671 +v -0.250000 1.500000 0.000000 +v -0.230970 1.500000 0.095671 +v -0.176777 1.500000 0.176777 +v -0.095671 1.500000 0.230970 +v -0.000000 1.500000 0.250000 +v 0.095671 1.500000 0.230970 +v 0.176777 1.500000 0.176777 +v 0.230970 1.500000 0.095671 +v 0.250000 1.500000 -0.000000 +v 0.230970 1.500000 -0.095671 +v 0.176777 1.500000 -0.176777 +v 0.095671 1.500000 -0.230970 +v -0.000000 0.250000 -0.250000 +v 0.019030 0.250000 -0.154329 +v 0.073223 0.250000 -0.073223 +v 0.154329 0.250000 -0.019030 +v 0.250000 0.250000 0.000000 +v 0.345671 0.250000 -0.019030 +v 0.426777 0.250000 -0.073223 +v 0.480970 0.250000 -0.154329 +v 0.500000 0.250000 -0.250000 +v 0.480970 0.250000 -0.345671 +v 0.426777 0.250000 -0.426777 +v 0.345671 0.250000 -0.480970 +v 0.250000 0.250000 -0.500000 +v 0.154329 0.250000 -0.480970 +v 0.073223 0.250000 -0.426777 +v 0.019030 0.250000 -0.345671 +v -0.000000 1.500000 -0.250000 +v 0.019030 1.500000 -0.154329 +v 0.073223 1.500000 -0.073223 +v 0.154329 1.500000 -0.019030 +v 0.250000 1.500000 0.000000 +v 0.345671 1.500000 -0.019030 +v 0.426777 1.500000 -0.073223 +v 0.480970 1.500000 -0.154329 +v 0.500000 1.500000 -0.250000 +v 0.480970 1.500000 -0.345671 +v 0.426777 1.500000 -0.426777 +v 0.345671 1.500000 -0.480970 +v 0.250000 1.500000 -0.500000 +v 0.154329 1.500000 -0.480970 +v 0.073223 1.500000 -0.426777 +v 0.019030 1.500000 -0.345671 +v 0.125000 2.500000 -0.125000 +v 0.125000 0.250000 -0.250000 +v 0.134515 0.250000 -0.202165 +v 0.161612 0.250000 -0.161612 +v 0.202165 0.250000 -0.134515 +v 0.250000 0.250000 -0.125000 +v 0.297835 0.250000 -0.134515 +v 0.338388 0.250000 -0.161612 +v 0.365485 0.250000 -0.202165 +v 0.375000 0.250000 -0.250000 +v 0.365485 0.250000 -0.297835 +v 0.338388 0.250000 -0.338388 +v 0.297835 0.250000 -0.365485 +v 0.250000 0.250000 -0.375000 +v 0.202165 0.250000 -0.365485 +v 0.161612 0.250000 -0.338388 +v 0.134515 0.250000 -0.297835 +v -0.000000 0.000000 -0.250000 +v 0.019030 0.000000 -0.154329 +v 0.073223 0.000000 -0.073223 +v 0.154329 0.000000 -0.019030 +v 0.250000 0.000000 0.000000 +v 0.345671 0.000000 -0.019030 +v 0.426777 0.000000 -0.073223 +v 0.480970 0.000000 -0.154329 +v 0.500000 0.000000 -0.250000 +v 0.480970 0.000000 -0.345671 +v 0.426777 0.000000 -0.426777 +v 0.345671 0.000000 -0.480970 +v 0.250000 0.000000 -0.500000 +v 0.154329 0.000000 -0.480970 +v 0.073223 0.000000 -0.426777 +v 0.019030 0.000000 -0.345671 +v 0.000000 5.500000 -0.875000 +v 0.000000 4.500000 -0.875000 +v -0.031250 6.000000 -0.125000 +v -0.031250 4.000000 -0.125000 +v 0.031250 6.000000 -0.125000 +v 0.031250 4.000000 -0.125000 +v 0.031250 0.500000 -0.125000 +v 0.031250 2.500000 -0.125000 +v -0.031250 0.500000 -0.125000 +v -0.031250 2.500000 -0.125000 +v 0.000000 0.500000 -1.125000 +v 0.000000 2.000000 -1.125000 +v -0.062500 4.250000 -0.875000 +v -0.062500 5.750000 -0.875000 +v -0.031250 4.250000 -0.929127 +v -0.031250 5.750000 -0.929127 +v 0.031250 4.250000 -0.929127 +v 0.031250 5.750000 -0.929127 +v 0.062500 4.250000 -0.875000 +v 0.062500 5.750000 -0.875000 +v 0.031250 4.250000 -0.820873 +v 0.031250 5.750000 -0.820873 +v -0.031250 4.250000 -0.820873 +v -0.031250 5.750000 -0.820873 +v 0.000000 0.250000 0.250000 +v -0.019030 0.250000 0.154329 +v -0.073223 0.250000 0.073223 +v -0.154329 0.250000 0.019030 +v -0.250000 0.250000 0.000000 +v -0.345671 0.250000 0.019030 +v -0.426777 0.250000 0.073223 +v -0.480970 0.250000 0.154329 +v -0.500000 0.250000 0.250000 +v -0.480970 0.250000 0.345671 +v -0.426777 0.250000 0.426777 +v -0.345671 0.250000 0.480970 +v -0.250000 0.250000 0.500000 +v -0.154329 0.250000 0.480970 +v -0.073223 0.250000 0.426777 +v -0.019030 0.250000 0.345671 +v 0.000000 1.500000 0.250000 +v -0.019030 1.500000 0.154329 +v -0.073223 1.500000 0.073223 +v -0.154329 1.500000 0.019030 +v -0.250000 1.500000 0.000000 +v -0.345671 1.500000 0.019030 +v -0.426777 1.500000 0.073223 +v -0.480970 1.500000 0.154329 +v -0.500000 1.500000 0.250000 +v -0.480970 1.500000 0.345671 +v -0.426777 1.500000 0.426777 +v -0.345671 1.500000 0.480970 +v -0.250000 1.500000 0.500000 +v -0.154329 1.500000 0.480970 +v -0.073223 1.500000 0.426777 +v -0.019030 1.500000 0.345671 +v -0.125000 2.500000 0.125000 +v -0.125000 0.250000 0.250000 +v -0.134515 0.250000 0.202165 +v -0.161612 0.250000 0.161612 +v -0.202165 0.250000 0.134515 +v -0.250000 0.250000 0.125000 +v -0.297835 0.250000 0.134515 +v -0.338388 0.250000 0.161612 +v -0.365485 0.250000 0.202165 +v -0.375000 0.250000 0.250000 +v -0.365485 0.250000 0.297835 +v -0.338388 0.250000 0.338388 +v -0.297835 0.250000 0.365485 +v -0.250000 0.250000 0.375000 +v -0.202164 0.250000 0.365485 +v -0.161612 0.250000 0.338388 +v -0.134515 0.250000 0.297835 +v 0.000000 0.000000 0.250000 +v -0.019030 0.000000 0.154329 +v -0.073223 0.000000 0.073223 +v -0.154329 0.000000 0.019030 +v -0.250000 0.000000 0.000000 +v -0.345671 0.000000 0.019030 +v -0.426777 0.000000 0.073223 +v -0.480970 0.000000 0.154329 +v -0.500000 0.000000 0.250000 +v -0.480970 0.000000 0.345671 +v -0.426777 0.000000 0.426777 +v -0.345671 0.000000 0.480970 +v -0.250000 0.000000 0.500000 +v -0.154329 0.000000 0.480970 +v -0.073223 0.000000 0.426777 +v -0.019030 0.000000 0.345671 +v -0.031250 0.500000 0.125000 +v -0.031250 2.500000 0.125000 +v 0.031250 0.500000 0.125000 +v 0.031250 2.500000 0.125000 +v 0.000000 0.500000 1.125000 +v 0.000000 2.000000 1.125000 +v -0.250000 0.250000 0.000000 +v -0.154329 0.250000 -0.019030 +v -0.073223 0.250000 -0.073223 +v -0.019030 0.250000 -0.154329 +v -0.000000 0.250000 -0.250000 +v -0.019030 0.250000 -0.345671 +v -0.073223 0.250000 -0.426777 +v -0.154329 0.250000 -0.480970 +v -0.250000 0.250000 -0.500000 +v -0.345671 0.250000 -0.480970 +v -0.426777 0.250000 -0.426777 +v -0.480970 0.250000 -0.345671 +v -0.500000 0.250000 -0.250000 +v -0.480970 0.250000 -0.154329 +v -0.426777 0.250000 -0.073223 +v -0.345671 0.250000 -0.019030 +v -0.250000 1.500000 0.000000 +v -0.154329 1.500000 -0.019030 +v -0.073223 1.500000 -0.073223 +v -0.019030 1.500000 -0.154329 +v -0.000000 1.500000 -0.250000 +v -0.019030 1.500000 -0.345671 +v -0.073223 1.500000 -0.426777 +v -0.154329 1.500000 -0.480970 +v -0.250000 1.500000 -0.500000 +v -0.345671 1.500000 -0.480970 +v -0.426777 1.500000 -0.426777 +v -0.480970 1.500000 -0.345671 +v -0.500000 1.500000 -0.250000 +v -0.480970 1.500000 -0.154329 +v -0.426777 1.500000 -0.073223 +v -0.345671 1.500000 -0.019030 +v -0.125000 2.500000 -0.125000 +v -0.250000 0.250000 -0.125000 +v -0.202165 0.250000 -0.134515 +v -0.161612 0.250000 -0.161612 +v -0.134515 0.250000 -0.202165 +v -0.125000 0.250000 -0.250000 +v -0.134515 0.250000 -0.297835 +v -0.161612 0.250000 -0.338388 +v -0.202165 0.250000 -0.365485 +v -0.250000 0.250000 -0.375000 +v -0.297835 0.250000 -0.365485 +v -0.338388 0.250000 -0.338388 +v -0.365485 0.250000 -0.297835 +v -0.375000 0.250000 -0.250000 +v -0.365485 0.250000 -0.202164 +v -0.338388 0.250000 -0.161612 +v -0.297835 0.250000 -0.134515 +v -0.250000 0.000000 0.000000 +v -0.154329 0.000000 -0.019030 +v -0.073223 0.000000 -0.073223 +v -0.019030 0.000000 -0.154329 +v -0.000000 0.000000 -0.250000 +v -0.019030 0.000000 -0.345671 +v -0.073223 0.000000 -0.426777 +v -0.154329 0.000000 -0.480970 +v -0.250000 0.000000 -0.500000 +v -0.345671 0.000000 -0.480970 +v -0.426777 0.000000 -0.426777 +v -0.480970 0.000000 -0.345671 +v -0.500000 0.000000 -0.250000 +v -0.480970 0.000000 -0.154329 +v -0.426777 0.000000 -0.073223 +v -0.345671 0.000000 -0.019030 +v -0.125000 0.500000 -0.031250 +v -0.125000 2.500000 -0.031250 +v -0.125000 0.500000 0.031250 +v -0.125000 2.500000 0.031250 +v -1.125000 0.500000 0.000000 +v -1.125000 2.000000 0.000000 +v 0.250000 0.250000 -0.000000 +v 0.154329 0.250000 0.019030 +v 0.073223 0.250000 0.073223 +v 0.019030 0.250000 0.154329 +v 0.000000 0.250000 0.250000 +v 0.019030 0.250000 0.345671 +v 0.073223 0.250000 0.426777 +v 0.154329 0.250000 0.480970 +v 0.250000 0.250000 0.500000 +v 0.345671 0.250000 0.480970 +v 0.426777 0.250000 0.426777 +v 0.480970 0.250000 0.345671 +v 0.500000 0.250000 0.250000 +v 0.480970 0.250000 0.154329 +v 0.426777 0.250000 0.073223 +v 0.345671 0.250000 0.019030 +v 0.250000 1.500000 -0.000000 +v 0.154329 1.500000 0.019030 +v 0.073223 1.500000 0.073223 +v 0.019030 1.500000 0.154329 +v 0.000000 1.500000 0.250000 +v 0.019030 1.500000 0.345671 +v 0.073223 1.500000 0.426777 +v 0.154329 1.500000 0.480970 +v 0.250000 1.500000 0.500000 +v 0.345671 1.500000 0.480970 +v 0.426777 1.500000 0.426777 +v 0.480970 1.500000 0.345671 +v 0.500000 1.500000 0.250000 +v 0.480970 1.500000 0.154329 +v 0.426777 1.500000 0.073223 +v 0.345671 1.500000 0.019030 +v 0.125000 2.500000 0.125000 +v 0.250000 0.250000 0.125000 +v 0.202165 0.250000 0.134515 +v 0.161612 0.250000 0.161612 +v 0.134515 0.250000 0.202165 +v 0.125000 0.250000 0.250000 +v 0.134515 0.250000 0.297835 +v 0.161612 0.250000 0.338388 +v 0.202165 0.250000 0.365485 +v 0.250000 0.250000 0.375000 +v 0.297835 0.250000 0.365485 +v 0.338388 0.250000 0.338388 +v 0.365485 0.250000 0.297835 +v 0.375000 0.250000 0.250000 +v 0.365485 0.250000 0.202164 +v 0.338388 0.250000 0.161612 +v 0.297835 0.250000 0.134515 +v 0.250000 0.000000 -0.000000 +v 0.154329 0.000000 0.019030 +v 0.073223 0.000000 0.073223 +v 0.019030 0.000000 0.154329 +v 0.000000 0.000000 0.250000 +v 0.019030 0.000000 0.345671 +v 0.073223 0.000000 0.426777 +v 0.154329 0.000000 0.480970 +v 0.250000 0.000000 0.500000 +v 0.345671 0.000000 0.480970 +v 0.426777 0.000000 0.426777 +v 0.480970 0.000000 0.345671 +v 0.500000 0.000000 0.250000 +v 0.480970 0.000000 0.154329 +v 0.426777 0.000000 0.073223 +v 0.345671 0.000000 0.019030 +v 0.125000 0.500000 0.031250 +v 0.125000 2.500000 0.031250 +v 0.125000 0.500000 -0.031250 +v 0.125000 2.500000 -0.031250 +v 1.125000 0.500000 -0.000000 +v 1.125000 2.000000 -0.000000 +v 0.000000 5.500000 0.875000 +v 0.000000 4.500000 0.875000 +v 0.031250 6.000000 0.125000 +v 0.031250 4.000000 0.125000 +v -0.031250 6.000000 0.125000 +v -0.031250 4.000000 0.125000 +v 0.062500 4.250000 0.875000 +v 0.062500 5.750000 0.875000 +v 0.031250 4.250000 0.929127 +v 0.031250 5.750000 0.929127 +v -0.031250 4.250000 0.929127 +v -0.031250 5.750000 0.929127 +v -0.062500 4.250000 0.875000 +v -0.062500 5.750000 0.875000 +v -0.031250 4.250000 0.820873 +v -0.031250 5.750000 0.820873 +v 0.031250 4.250000 0.820873 +v 0.031250 5.750000 0.820873 +v -0.875000 5.500000 0.000000 +v -0.875000 4.500000 0.000000 +v -0.125000 6.000000 0.031250 +v -0.125000 4.000000 0.031250 +v -0.125000 6.000000 -0.031250 +v -0.125000 4.000000 -0.031250 +v -0.875000 4.250000 0.062500 +v -0.875000 5.750000 0.062500 +v -0.929127 4.250000 0.031250 +v -0.929127 5.750000 0.031250 +v -0.929127 4.250000 -0.031250 +v -0.929127 5.750000 -0.031250 +v -0.875000 4.250000 -0.062500 +v -0.875000 5.750000 -0.062500 +v -0.820873 4.250000 -0.031250 +v -0.820873 5.750000 -0.031250 +v -0.820873 4.250000 0.031250 +v -0.820873 5.750000 0.031250 +v 0.875000 5.500000 -0.000000 +v 0.875000 4.500000 -0.000000 +v 0.125000 6.000000 -0.031250 +v 0.125000 4.000000 -0.031250 +v 0.125000 6.000000 0.031250 +v 0.125000 4.000000 0.031250 +v 0.875000 4.250000 -0.062500 +v 0.875000 5.750000 -0.062500 +v 0.929127 4.250000 -0.031250 +v 0.929127 5.750000 -0.031250 +v 0.929127 4.250000 0.031250 +v 0.929127 5.750000 0.031250 +v 0.875000 4.250000 0.062500 +v 0.875000 5.750000 0.062500 +v 0.820873 4.250000 0.031250 +v 0.820873 5.750000 0.031250 +v 0.820873 4.250000 -0.031250 +v 0.820873 5.750000 -0.031250 +vt 0.720253 0.439829 +vt 0.720253 0.488743 +vt 0.648168 0.488743 +vt 0.447368 0.053571 +vt 0.421053 0.035714 +vt 0.434211 0.035714 +vt 0.473684 0.053571 +vt 0.447368 0.035714 +vt 0.460526 0.035714 +vt 0.486842 0.035714 +vt 0.500000 0.053571 +vt 0.513158 0.035714 +vt 0.526316 0.053571 +vt 0.552632 0.053571 +vt 0.526316 0.035714 +vt 0.539474 0.035714 +vt 0.578947 0.053571 +vt 0.552632 0.035714 +vt 0.565789 0.035714 +vt 0.605263 0.053571 +vt 0.578947 0.035714 +vt 0.592105 0.035714 +vt 0.618421 0.035714 +vt 0.631579 0.053571 +vt 0.657895 0.053571 +vt 0.631579 0.035714 +vt 0.644737 0.035714 +vt 0.684211 0.053571 +vt 0.657895 0.035714 +vt 0.671053 0.035714 +vt 0.697368 0.035714 +vt 0.710526 0.053571 +vt 0.723684 0.035714 +vt 0.736842 0.053571 +vt 0.789474 0.053571 +vt 0.802632 0.035714 +vt 0.815789 0.053571 +vt 0.763158 0.053571 +vt 0.736842 0.035714 +vt 0.750000 0.035714 +vt 0.828947 0.035714 +vt 0.842105 0.053571 +vt 0.776316 0.035714 +vt 0.684211 0.570302 +vt 0.633240 0.535715 +vt 0.684211 0.501127 +vt 0.842105 0.294643 +vt 1.000000 0.080357 +vt 0.842105 0.008929 +vt 1.000000 0.223214 +vt 0.842105 0.008929 +vt 0.842105 0.294643 +vt 1.000000 0.294643 +vt 0.842105 0.303571 +vt 0.842105 -0.000000 +vt 1.000000 0.008929 +vt 0.631579 0.580357 +vt 0.631579 0.571429 +vt 0.842105 0.580357 +vt 0.631579 0.875000 +vt 0.842105 0.875000 +vt 0.631579 0.883929 +vt 0.842105 0.803571 +vt 0.631579 0.580357 +vt 0.921712 0.330357 +vt 0.940460 0.323013 +vt 0.940460 0.337702 +vt 0.946709 0.312500 +vt 0.940460 0.319845 +vt 0.927961 0.319845 +vt 0.447368 0.053571 +vt 0.421053 0.035714 +vt 0.434211 0.035714 +vt 0.473684 0.053571 +vt 0.447368 0.035714 +vt 0.460526 0.035714 +vt 0.486842 0.035714 +vt 0.500000 0.053571 +vt 0.513158 0.035714 +vt 0.526316 0.053571 +vt 0.552632 0.053571 +vt 0.526316 0.035714 +vt 0.539474 0.035714 +vt 0.578947 0.053571 +vt 0.552632 0.035714 +vt 0.565789 0.035714 +vt 0.605263 0.053571 +vt 0.578947 0.035714 +vt 0.592105 0.035714 +vt 0.618421 0.035714 +vt 0.631579 0.053571 +vt 0.657895 0.053571 +vt 0.631579 0.035714 +vt 0.644737 0.035714 +vt 0.684211 0.053571 +vt 0.657895 0.035714 +vt 0.671053 0.035714 +vt 0.697368 0.035714 +vt 0.710526 0.053571 +vt 0.723684 0.035714 +vt 0.736842 0.053571 +vt 0.789474 0.053571 +vt 0.802632 0.035714 +vt 0.815789 0.053571 +vt 0.763158 0.053571 +vt 0.736842 0.035714 +vt 0.750000 0.035714 +vt 0.828947 0.035714 +vt 0.842105 0.053571 +vt 0.776316 0.035714 +vt 0.633240 0.535715 +vt 0.648169 0.511257 +vt 0.684211 0.501127 +vt 0.631579 0.580357 +vt 0.631579 0.571429 +vt 0.842105 0.580357 +vt 0.631579 0.875000 +vt 0.842105 0.875000 +vt 0.631579 0.883929 +vt 0.842105 0.803571 +vt 0.631579 0.580357 +vt 0.447368 0.053571 +vt 0.421053 0.035714 +vt 0.434211 0.035714 +vt 0.473684 0.053571 +vt 0.447368 0.035714 +vt 0.460526 0.035714 +vt 0.486842 0.035714 +vt 0.500000 0.053571 +vt 0.513158 0.035714 +vt 0.526316 0.053571 +vt 0.552632 0.053571 +vt 0.526316 0.035714 +vt 0.539474 0.035714 +vt 0.578947 0.053571 +vt 0.552632 0.035714 +vt 0.565789 0.035714 +vt 0.605263 0.053571 +vt 0.578947 0.035714 +vt 0.592105 0.035714 +vt 0.618421 0.035714 +vt 0.631579 0.053571 +vt 0.657895 0.053571 +vt 0.631579 0.035714 +vt 0.644737 0.035714 +vt 0.671053 0.035714 +vt 0.684211 0.053571 +vt 0.697368 0.035714 +vt 0.710526 0.053571 +vt 0.723684 0.035714 +vt 0.736842 0.053571 +vt 0.789474 0.053571 +vt 0.802632 0.035714 +vt 0.815789 0.053571 +vt 0.763158 0.053571 +vt 0.736842 0.035714 +vt 0.750000 0.035714 +vt 0.828947 0.035714 +vt 0.842105 0.053571 +vt 0.776316 0.035714 +vt 0.684211 0.570302 +vt 0.633240 0.535715 +vt 0.684211 0.501127 +vt 0.631579 0.580357 +vt 0.631579 0.571429 +vt 0.842105 0.580357 +vt 0.631579 0.875000 +vt 0.842105 0.875000 +vt 0.631579 0.883929 +vt 0.842105 0.803571 +vt 0.631579 0.580357 +vt 0.447368 0.053571 +vt 0.421053 0.035714 +vt 0.434211 0.035714 +vt 0.473684 0.053571 +vt 0.447368 0.035714 +vt 0.460526 0.035714 +vt 0.486842 0.035714 +vt 0.500000 0.053571 +vt 0.513158 0.035714 +vt 0.526316 0.053571 +vt 0.552632 0.053571 +vt 0.526316 0.035714 +vt 0.539474 0.035714 +vt 0.578947 0.053571 +vt 0.552632 0.035714 +vt 0.565789 0.035714 +vt 0.605263 0.053571 +vt 0.578947 0.035714 +vt 0.592105 0.035714 +vt 0.618421 0.035714 +vt 0.631579 0.053571 +vt 0.657895 0.053571 +vt 0.631579 0.035714 +vt 0.644737 0.035714 +vt 0.684211 0.053571 +vt 0.657895 0.035714 +vt 0.671053 0.035714 +vt 0.697368 0.035714 +vt 0.710526 0.053571 +vt 0.723684 0.035714 +vt 0.736842 0.053571 +vt 0.789474 0.053571 +vt 0.802632 0.035714 +vt 0.815789 0.053571 +vt 0.763158 0.053571 +vt 0.736842 0.035714 +vt 0.750000 0.035714 +vt 0.828947 0.035714 +vt 0.842105 0.053571 +vt 0.763158 0.035714 +vt 0.776316 0.035714 +vt 0.684211 0.570302 +vt 0.633240 0.535715 +vt 0.684211 0.501127 +vt 0.631579 0.580357 +vt 0.631579 0.571429 +vt 0.842105 0.580357 +vt 0.631579 0.875000 +vt 0.842105 0.875000 +vt 0.631579 0.883929 +vt 0.842105 0.803571 +vt 0.631579 0.580357 +vt 0.842105 0.294643 +vt 1.000000 0.080357 +vt 0.842105 0.008929 +vt 1.000000 0.223214 +vt 0.842105 0.008929 +vt 0.842105 0.294643 +vt 1.000000 0.294643 +vt 0.842105 0.303571 +vt 0.842105 -0.000000 +vt 1.000000 0.008929 +vt 0.946709 0.330357 +vt 0.940460 0.337702 +vt 0.921712 0.330357 +vt 0.946709 0.312500 +vt 0.940460 0.319845 +vt 0.927961 0.319845 +vt 0.842105 0.294643 +vt 1.000000 0.080357 +vt 0.842105 0.008929 +vt 1.000000 0.223214 +vt 0.842105 0.008929 +vt 0.842105 0.294643 +vt 1.000000 0.294643 +vt 0.842105 0.303571 +vt 0.842105 -0.000000 +vt 1.000000 0.008929 +vt 0.921712 0.330357 +vt 0.940460 0.323013 +vt 0.940460 0.337702 +vt 0.946709 0.312500 +vt 0.940460 0.319845 +vt 0.927961 0.319845 +vt 0.842105 0.008929 +vt 1.000000 0.223214 +vt 1.000000 0.080357 +vt 0.842105 0.008929 +vt 0.842105 0.294643 +vt 1.000000 0.294643 +vt 0.842105 0.303571 +vt 0.842105 -0.000000 +vt 1.000000 0.008929 +vt 0.921712 0.330357 +vt 0.940460 0.323013 +vt 0.940460 0.337702 +vt 0.946709 0.312500 +vt 0.940460 0.319845 +vt 0.927961 0.319845 +vt 0.731302 0.451050 +vt 0.735182 0.464286 +vt 0.731302 0.477522 +vt 0.703716 0.496241 +vt 0.684211 0.498873 +vt 0.664705 0.496241 +vt 0.637119 0.477522 +vt 0.633239 0.464286 +vt 0.637119 0.451050 +vt 0.648169 0.439829 +vt 0.664705 0.432331 +vt 0.684211 0.429698 +vt 0.703716 0.432331 +vt 0.421053 0.053571 +vt 0.473684 0.035714 +vt 0.500000 0.035714 +vt 0.605263 0.035714 +vt 0.684211 0.035714 +vt 0.710526 0.035714 +vt 0.789474 0.035714 +vt 0.815789 0.035714 +vt 0.763158 0.035714 +vt 0.703717 0.503760 +vt 0.720253 0.511257 +vt 0.731302 0.522478 +vt 0.735182 0.535715 +vt 0.731302 0.548951 +vt 0.720253 0.560172 +vt 0.703717 0.567669 +vt 0.664705 0.567669 +vt 0.648169 0.560172 +vt 0.637119 0.548951 +vt 0.637119 0.522478 +vt 0.648169 0.511257 +vt 0.664705 0.503760 +vt 0.631579 0.875000 +vt 0.927961 0.337702 +vt 0.927961 0.323013 +vt 0.946709 0.330357 +vt 0.921712 0.312500 +vt 0.927962 0.305155 +vt 0.940460 0.305155 +vt 0.421053 0.053571 +vt 0.473684 0.035714 +vt 0.500000 0.035714 +vt 0.605263 0.035714 +vt 0.684211 0.035714 +vt 0.710526 0.035714 +vt 0.789474 0.035714 +vt 0.815789 0.035714 +vt 0.763158 0.035714 +vt 0.703717 0.503760 +vt 0.720253 0.511257 +vt 0.731302 0.522478 +vt 0.735182 0.535715 +vt 0.731302 0.548951 +vt 0.720253 0.560172 +vt 0.703717 0.567669 +vt 0.684211 0.570302 +vt 0.664705 0.567669 +vt 0.648169 0.560172 +vt 0.637119 0.548951 +vt 0.637119 0.522478 +vt 0.664705 0.503760 +vt 0.631579 0.875000 +vt 0.421053 0.053571 +vt 0.473684 0.035714 +vt 0.500000 0.035714 +vt 0.605263 0.035714 +vt 0.657895 0.035714 +vt 0.684211 0.035714 +vt 0.710526 0.035714 +vt 0.789474 0.035714 +vt 0.815789 0.035714 +vt 0.763158 0.035714 +vt 0.703717 0.503760 +vt 0.720253 0.511257 +vt 0.731302 0.522478 +vt 0.735182 0.535715 +vt 0.731302 0.548951 +vt 0.720253 0.560172 +vt 0.703717 0.567669 +vt 0.664705 0.567669 +vt 0.648169 0.560172 +vt 0.637119 0.548951 +vt 0.637119 0.522478 +vt 0.648169 0.511257 +vt 0.664705 0.503760 +vt 0.631579 0.875000 +vt 0.421053 0.053571 +vt 0.473684 0.035714 +vt 0.500000 0.035714 +vt 0.605263 0.035714 +vt 0.684211 0.035714 +vt 0.710526 0.035714 +vt 0.789474 0.035714 +vt 0.815789 0.035714 +vt 0.703717 0.503760 +vt 0.720253 0.511257 +vt 0.731302 0.522478 +vt 0.735182 0.535715 +vt 0.731302 0.548951 +vt 0.720253 0.560172 +vt 0.703717 0.567669 +vt 0.664705 0.567669 +vt 0.648169 0.560172 +vt 0.637119 0.548951 +vt 0.637119 0.522478 +vt 0.648169 0.511257 +vt 0.664705 0.503760 +vt 0.631579 0.875000 +vt 0.927961 0.337702 +vt 0.927961 0.323013 +vt 0.940460 0.323013 +vt 0.921712 0.312500 +vt 0.927962 0.305155 +vt 0.940460 0.305155 +vt 0.927961 0.337702 +vt 0.927961 0.323013 +vt 0.946709 0.330357 +vt 0.921712 0.312500 +vt 0.927962 0.305155 +vt 0.940460 0.305155 +vt 0.842105 0.294643 +vt 0.927961 0.337702 +vt 0.927961 0.323013 +vt 0.946709 0.330357 +vt 0.921712 0.312500 +vt 0.927962 0.305155 +vt 0.940460 0.305155 +vt 0.434211 0.785714 +vt 0.473684 0.785714 +vt 0.447368 1.000000 +vt 0.394737 0.785714 +vt 0.407895 1.000000 +vt 0.355263 0.785714 +vt 0.368421 1.000000 +vt 0.315789 0.785714 +vt 0.328947 1.000000 +vt 0.276316 0.785714 +vt 0.289474 1.000000 +vt 0.236842 0.785714 +vt 0.250000 1.000000 +vt 0.197368 0.785714 +vt 0.210526 1.000000 +vt 0.157895 0.785714 +vt 0.171053 1.000000 +vt 0.131579 1.000000 +vt 0.118421 0.785714 +vt 0.078947 0.785714 +vt 0.092105 1.000000 +vt 0.039474 0.785714 +vt 0.052632 1.000000 +vt 0.000000 0.785714 +vt 0.013158 1.000000 +vt 0.592105 0.785714 +vt 0.631579 0.785714 +vt 0.605263 1.000000 +vt 0.552632 0.785714 +vt 0.565789 1.000000 +vt 0.513158 0.785714 +vt 0.526316 1.000000 +vt 0.486842 1.000000 +vt 0.631579 0.571429 +vt 0.315789 0.571429 +vt 0.039474 0.571429 +vt 0.355263 0.571429 +vt 0.078947 0.571429 +vt 0.394737 0.571429 +vt 0.118421 0.571429 +vt 0.434211 0.571429 +vt 0.157895 0.571429 +vt 0.513158 0.571429 +vt 0.473684 0.571429 +vt 0.197368 0.571429 +vt 0.552632 0.571429 +vt 0.236842 0.571429 +vt 0.592105 0.571429 +vt 0.276316 0.571429 +vt 0.184211 0.428571 +vt 0.539474 0.428571 +vt 0.223684 0.428571 +vt 0.578947 0.428571 +vt 0.263158 0.428571 +vt 0.618421 0.428571 +vt 0.302632 0.428571 +vt 0.000000 0.571429 +vt 0.026316 0.428571 +vt 0.342105 0.428571 +vt 0.065789 0.428571 +vt 0.381579 0.428571 +vt 0.105263 0.428571 +vt 0.394737 0.428571 +vt 0.421053 0.428571 +vt 0.144737 0.428571 +vt 0.500000 0.428571 +vt 0.460526 0.428571 +vt 0.236842 0.428571 +vt 0.263158 -0.000000 +vt 0.263158 0.428571 +vt 0.052632 0.428571 +vt 0.078947 -0.000000 +vt 0.078947 0.428571 +vt 0.289474 -0.000000 +vt 0.289474 0.428571 +vt 0.105263 -0.000000 +vt 0.105263 0.428571 +vt 0.315789 0.428571 +vt 0.342105 -0.000000 +vt 0.342105 0.428571 +vt 0.315789 -0.000000 +vt 0.131579 -0.000000 +vt 0.131579 0.428571 +vt 0.368421 -0.000000 +vt 0.368421 0.428571 +vt 0.157895 -0.000000 +vt 0.157895 0.428571 +vt 0.394737 -0.000000 +vt 0.394737 0.428571 +vt 0.184211 -0.000000 +vt 0.184211 0.428571 +vt 0.421053 -0.000000 +vt 0.421053 0.428571 +vt 0.210526 -0.000000 +vt 0.210526 0.428571 +vt 0.000000 0.428571 +vt 0.026316 -0.000000 +vt 0.236842 -0.000000 +vt 0.052632 -0.000000 +vt 0.815789 0.232143 +vt 0.605263 0.232143 +vt 0.421053 0.232143 +vt 0.631579 0.232143 +vt 0.447368 0.232143 +vt 0.657895 0.232143 +vt 0.473684 0.232143 +vt 0.684211 0.232143 +vt 0.500000 0.232143 +vt 0.710526 0.232143 +vt 0.526316 0.232143 +vt 0.736842 0.232143 +vt 0.552632 0.232143 +vt 0.789474 0.232143 +vt 0.763158 0.232143 +vt 0.578947 0.232143 +vt 0.671053 0.375000 +vt 0.644737 0.375000 +vt 0.618421 0.375000 +vt 0.592105 0.375000 +vt 0.565789 0.375000 +vt 0.539474 0.375000 +vt 0.513158 0.375000 +vt 0.486842 0.375000 +vt 0.460526 0.375000 +vt 0.434211 0.375000 +vt 0.842105 0.232143 +vt 0.828947 0.375000 +vt 0.802632 0.375000 +vt 0.776316 0.375000 +vt 0.750000 0.375000 +vt 0.723684 0.375000 +vt 0.697368 0.375000 +vt 0.605263 -0.000000 +vt 0.631579 -0.000000 +vt 0.657895 -0.000000 +vt 0.684211 -0.000000 +vt 0.710526 -0.000000 +vt 0.736842 -0.000000 +vt 0.789474 -0.000000 +vt 0.815789 -0.000000 +vt 0.763158 -0.000000 +vt 0.842105 -0.000000 +vt 0.421053 -0.000000 +vt 0.447368 -0.000000 +vt 0.473684 -0.000000 +vt 0.500000 -0.000000 +vt 0.526316 -0.000000 +vt 0.552632 -0.000000 +vt 0.578947 -0.000000 +vt 0.907895 0.517857 +vt 0.894737 0.303571 +vt 0.907895 0.303571 +vt 0.894737 0.517857 +vt 0.881579 0.303571 +vt 0.881579 0.517857 +vt 0.868421 0.303571 +vt 0.868421 0.517857 +vt 0.855263 0.303571 +vt 0.855263 0.517857 +vt 0.842105 0.303571 +vt 0.921053 0.517857 +vt 0.921053 0.303571 +vt 0.815789 0.232143 +vt 0.605263 0.232143 +vt 0.421053 0.232143 +vt 0.631579 0.232143 +vt 0.447368 0.232143 +vt 0.657895 0.232143 +vt 0.473684 0.232143 +vt 0.684211 0.232143 +vt 0.500000 0.232143 +vt 0.710526 0.232143 +vt 0.526316 0.232143 +vt 0.736842 0.232143 +vt 0.552632 0.232143 +vt 0.789474 0.232143 +vt 0.763158 0.232143 +vt 0.578947 0.232143 +vt 0.671053 0.375000 +vt 0.644737 0.375000 +vt 0.618421 0.375000 +vt 0.592105 0.375000 +vt 0.565789 0.375000 +vt 0.539474 0.375000 +vt 0.513158 0.375000 +vt 0.486842 0.375000 +vt 0.460526 0.375000 +vt 0.434211 0.375000 +vt 0.842105 0.232143 +vt 0.828947 0.375000 +vt 0.802632 0.375000 +vt 0.776316 0.375000 +vt 0.750000 0.375000 +vt 0.723684 0.375000 +vt 0.697368 0.375000 +vt 0.605263 -0.000000 +vt 0.631579 -0.000000 +vt 0.657895 -0.000000 +vt 0.684211 -0.000000 +vt 0.710526 -0.000000 +vt 0.736842 -0.000000 +vt 0.815789 -0.000000 +vt 0.763158 -0.000000 +vt 0.842105 -0.000000 +vt 0.789474 -0.000000 +vt 0.447368 -0.000000 +vt 0.473684 -0.000000 +vt 0.500000 -0.000000 +vt 0.526316 -0.000000 +vt 0.552632 -0.000000 +vt 0.578947 -0.000000 +vt 0.815789 0.232143 +vt 0.605263 0.232143 +vt 0.421053 0.232143 +vt 0.631579 0.232143 +vt 0.447368 0.232143 +vt 0.657895 0.232143 +vt 0.473684 0.232143 +vt 0.684211 0.232143 +vt 0.500000 0.232143 +vt 0.710526 0.232143 +vt 0.526316 0.232143 +vt 0.736842 0.232143 +vt 0.552632 0.232143 +vt 0.789474 0.232143 +vt 0.763158 0.232143 +vt 0.578947 0.232143 +vt 0.671053 0.375000 +vt 0.644737 0.375000 +vt 0.618421 0.375000 +vt 0.592105 0.375000 +vt 0.565789 0.375000 +vt 0.539474 0.375000 +vt 0.513158 0.375000 +vt 0.486842 0.375000 +vt 0.460526 0.375000 +vt 0.434211 0.375000 +vt 0.842105 0.232143 +vt 0.828947 0.375000 +vt 0.802632 0.375000 +vt 0.776316 0.375000 +vt 0.750000 0.375000 +vt 0.723684 0.375000 +vt 0.697368 0.375000 +vt 0.631579 -0.000000 +vt 0.657895 -0.000000 +vt 0.684211 -0.000000 +vt 0.710526 -0.000000 +vt 0.736842 -0.000000 +vt 0.815789 -0.000000 +vt 0.763158 -0.000000 +vt 0.842105 -0.000000 +vt 0.789474 -0.000000 +vt 0.421053 -0.000000 +vt 0.447368 -0.000000 +vt 0.473684 -0.000000 +vt 0.500000 -0.000000 +vt 0.526316 -0.000000 +vt 0.552632 -0.000000 +vt 0.578947 -0.000000 +vt 0.605263 -0.000000 +vt 0.815789 0.232143 +vt 0.605263 0.232143 +vt 0.421053 0.232143 +vt 0.631579 0.232143 +vt 0.447368 0.232143 +vt 0.657895 0.232143 +vt 0.473684 0.232143 +vt 0.684211 0.232143 +vt 0.500000 0.232143 +vt 0.710526 0.232143 +vt 0.526316 0.232143 +vt 0.736842 0.232143 +vt 0.552632 0.232143 +vt 0.789474 0.232143 +vt 0.763158 0.232143 +vt 0.578947 0.232143 +vt 0.671053 0.375000 +vt 0.644737 0.375000 +vt 0.618421 0.375000 +vt 0.592105 0.375000 +vt 0.565789 0.375000 +vt 0.539474 0.375000 +vt 0.513158 0.375000 +vt 0.486842 0.375000 +vt 0.460526 0.375000 +vt 0.434211 0.375000 +vt 0.842105 0.232143 +vt 0.828947 0.375000 +vt 0.802632 0.375000 +vt 0.776316 0.375000 +vt 0.750000 0.375000 +vt 0.723684 0.375000 +vt 0.697368 0.375000 +vt 0.605263 -0.000000 +vt 0.631579 -0.000000 +vt 0.657895 -0.000000 +vt 0.684211 -0.000000 +vt 0.710526 -0.000000 +vt 0.736842 -0.000000 +vt 0.815789 -0.000000 +vt 0.763158 -0.000000 +vt 0.842105 -0.000000 +vt 0.789474 -0.000000 +vt 0.421053 -0.000000 +vt 0.447368 -0.000000 +vt 0.473684 -0.000000 +vt 0.500000 -0.000000 +vt 0.526316 -0.000000 +vt 0.552632 -0.000000 +vt 0.578947 -0.000000 +vt 0.907895 0.517857 +vt 0.894737 0.303571 +vt 0.907895 0.303571 +vt 0.894737 0.517857 +vt 0.881579 0.303571 +vt 0.881579 0.517857 +vt 0.868421 0.303571 +vt 0.868421 0.517857 +vt 0.855263 0.303571 +vt 0.855263 0.517857 +vt 0.842105 0.303571 +vt 0.921053 0.517857 +vt 0.921053 0.303571 +vt 0.907895 0.517857 +vt 0.894737 0.303571 +vt 0.907895 0.303571 +vt 0.894737 0.517857 +vt 0.881579 0.303571 +vt 0.881579 0.517857 +vt 0.868421 0.303571 +vt 0.868421 0.517857 +vt 0.855263 0.303571 +vt 0.855263 0.517857 +vt 0.842105 0.303571 +vt 0.921053 0.517857 +vt 0.921053 0.303571 +vt 0.907895 0.517857 +vt 0.894737 0.303571 +vt 0.907895 0.303571 +vt 0.894737 0.517857 +vt 0.881579 0.303571 +vt 0.881579 0.517857 +vt 0.868421 0.303571 +vt 0.868421 0.517857 +vt 0.855263 0.303571 +vt 0.855263 0.517857 +vt 0.842105 0.303571 +vt 0.921053 0.517857 +vt 0.921053 0.303571 +vt 0.157895 0.428571 +vt 0.513158 0.428571 +vt 0.197368 0.428571 +vt 0.552632 0.428571 +vt 0.236842 0.428571 +vt 0.592105 0.428571 +vt 0.276316 0.428571 +vt 0.315789 0.428571 +vt 0.039474 0.428571 +vt 0.355263 0.428571 +vt 0.078947 0.428571 +vt 0.118421 0.428571 +vt 0.473684 0.428571 +vt 0.434211 0.428571 +vt 0.000000 -0.000000 +vt 0.842105 0.517857 +vt 0.421053 -0.000000 +vt 0.842105 0.517857 +vt 0.842105 0.517857 +vt 0.842105 0.517857 +vn 0.0000 -1.0000 0.0000 +vn -0.9991 0.0000 -0.0416 +vn 0.9991 0.0000 -0.0416 +vn 0.0000 0.8321 -0.5547 +vn 0.0000 -0.8321 -0.5547 +vn 0.0000 0.8944 -0.4472 +vn 0.9995 0.0000 -0.0312 +vn -0.9995 0.0000 -0.0312 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.8944 0.4472 +vn -0.9995 0.0000 0.0312 +vn 0.9995 0.0000 0.0312 +vn -0.4472 0.8944 0.0000 +vn -0.0312 0.0000 -0.9995 +vn -0.0312 0.0000 0.9995 +vn 0.4472 0.8944 0.0000 +vn 0.0312 0.0000 0.9995 +vn 0.0312 0.0000 -0.9995 +vn 0.9991 0.0000 0.0416 +vn -0.9991 0.0000 0.0416 +vn 0.0000 0.8321 0.5547 +vn 0.0000 -0.8321 0.5547 +vn -0.0416 0.0000 0.9991 +vn -0.0416 0.0000 -0.9991 +vn -0.5547 0.8321 0.0000 +vn -0.5547 -0.8321 0.0000 +vn 0.0416 0.0000 -0.9991 +vn 0.0416 0.0000 0.9991 +vn 0.5547 0.8321 0.0000 +vn 0.5547 -0.8321 0.0000 +vn 0.3630 0.3162 -0.8765 +vn -0.0000 0.3162 -0.9487 +vn 0.6708 0.3162 -0.6708 +vn 0.8765 0.3162 -0.3630 +vn 0.9487 0.3162 0.0000 +vn 0.8765 0.3162 0.3630 +vn 0.6708 0.3162 0.6708 +vn 0.3630 0.3162 0.8765 +vn -0.0000 0.3162 0.9487 +vn -0.3630 0.3162 0.8765 +vn -0.6708 0.3162 0.6708 +vn -0.8765 0.3162 0.3630 +vn -0.9487 0.3162 0.0000 +vn -0.8765 0.3162 -0.3630 +vn -0.6708 0.3162 -0.6708 +vn -0.3630 0.3162 -0.8765 +vn -0.9239 0.0000 -0.3827 +vn -1.0000 0.0000 0.0000 +vn 0.9239 0.0000 0.3827 +vn 1.0000 0.0000 -0.0000 +vn -0.9239 0.0000 0.3827 +vn 0.9239 0.0000 -0.3827 +vn -0.7071 0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn -0.3827 0.0000 0.9239 +vn 0.3827 0.0000 -0.9239 +vn -0.0000 0.0000 1.0000 +vn -0.0000 0.0000 -1.0000 +vn -0.3827 0.0000 -0.9239 +vn 0.3827 0.0000 0.9239 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +vn -0.0000 -0.2425 0.9701 +vn 0.3713 -0.2425 0.8963 +vn -0.3713 -0.2425 -0.8963 +vn -0.6860 -0.2425 -0.6860 +vn 0.6860 -0.2425 0.6860 +vn -0.8963 -0.2425 -0.3713 +vn 0.8963 -0.2425 0.3713 +vn -0.9701 -0.2425 -0.0000 +vn 0.9701 -0.2425 -0.0000 +vn -0.8963 -0.2425 0.3713 +vn 0.8963 -0.2425 -0.3713 +vn -0.6860 -0.2425 0.6860 +vn 0.6860 -0.2425 -0.6860 +vn -0.3713 -0.2425 0.8963 +vn 0.3713 -0.2425 -0.8963 +vn -0.0000 -0.2425 -0.9701 +vn 0.0127 0.3525 -0.9357 +vn -0.1164 0.9864 0.1164 +vn 0.3598 0.3824 -0.8511 +vn 0.6504 0.3925 -0.6504 +vn 0.8511 0.3824 -0.3598 +vn 0.9357 0.3525 -0.0127 +vn 0.8863 0.3053 0.3484 +vn 0.6991 0.2457 0.6714 +vn 0.3936 0.1823 0.9010 +vn 0.0149 0.1259 0.9919 +vn -0.3736 0.0869 0.9235 +vn -0.7052 0.0730 0.7052 +vn -0.9235 0.0869 0.3736 +vn -0.9919 0.1259 -0.0149 +vn -0.9010 0.1823 -0.3936 +vn -0.6714 0.2457 -0.6991 +vn -0.3484 0.3053 -0.8863 +vn 0.6325 0.4472 -0.6325 +vn 0.8263 0.4472 -0.3423 +vn 0.3423 0.4472 -0.8263 +vn 0.0000 0.4472 -0.8944 +vn -0.3423 0.4472 -0.8263 +vn -0.6325 0.4472 -0.6325 +vn -0.8263 0.4472 0.3423 +vn -0.8944 0.4472 0.0000 +vn -0.8263 0.4472 -0.3423 +vn -0.6325 0.4472 0.6325 +vn -0.3423 0.4472 0.8263 +vn 0.0000 0.4472 0.8944 +vn 0.3423 0.4472 0.8263 +vn 0.6325 0.4472 0.6325 +vn 0.8263 0.4472 0.3423 +vn 0.8944 0.4472 -0.0000 +vn -0.5000 0.0000 -0.8660 +vn 0.5000 0.0000 -0.8660 +vn 0.5000 0.0000 0.8660 +vn -0.5000 0.0000 0.8660 +vn -0.0127 0.3525 0.9357 +vn 0.1164 0.9864 -0.1164 +vn -0.3598 0.3824 0.8511 +vn -0.6504 0.3925 0.6504 +vn -0.8511 0.3824 0.3598 +vn -0.9357 0.3525 0.0127 +vn -0.8863 0.3053 -0.3484 +vn -0.6991 0.2457 -0.6714 +vn -0.3936 0.1823 -0.9010 +vn -0.0149 0.1259 -0.9919 +vn 0.3736 0.0869 -0.9235 +vn 0.7052 0.0730 -0.7052 +vn 0.9235 0.0869 -0.3736 +vn 0.9919 0.1259 0.0149 +vn 0.9010 0.1823 0.3936 +vn 0.6714 0.2457 0.6991 +vn 0.3484 0.3053 0.8863 +vn -0.9357 0.3525 -0.0127 +vn 0.1164 0.9864 0.1164 +vn -0.8511 0.3824 -0.3598 +vn -0.6504 0.3925 -0.6504 +vn -0.3598 0.3824 -0.8511 +vn -0.0127 0.3525 -0.9357 +vn 0.3484 0.3053 -0.8863 +vn 0.6714 0.2457 -0.6991 +vn 0.9010 0.1823 -0.3936 +vn 0.9919 0.1259 -0.0149 +vn 0.9235 0.0869 0.3736 +vn 0.7052 0.0730 0.7052 +vn 0.3737 0.0869 0.9235 +vn -0.0149 0.1259 0.9919 +vn -0.3936 0.1823 0.9010 +vn -0.6991 0.2457 0.6714 +vn -0.8863 0.3053 0.3484 +vn 0.9357 0.3525 0.0127 +vn -0.1164 0.9864 -0.1164 +vn 0.8511 0.3824 0.3598 +vn 0.6504 0.3925 0.6504 +vn 0.3598 0.3824 0.8511 +vn 0.0127 0.3525 0.9357 +vn -0.3484 0.3053 0.8863 +vn -0.6714 0.2457 0.6991 +vn -0.9010 0.1823 0.3936 +vn -0.9919 0.1259 0.0149 +vn -0.9235 0.0869 -0.3736 +vn -0.7052 0.0730 -0.7052 +vn -0.3737 0.0869 -0.9235 +vn 0.0149 0.1259 -0.9919 +vn 0.3936 0.1823 -0.9010 +vn 0.6991 0.2457 -0.6714 +vn 0.8863 0.3053 -0.3484 +vn -0.8660 0.0000 0.5000 +vn -0.8660 0.0000 -0.5000 +vn 0.8660 0.0000 -0.5000 +vn 0.8660 0.0000 0.5000 +s off +f 52/1/1 64/2/1 60/3/1 +f 69/4/1 101/5/1 102/6/1 +f 70/7/1 102/8/1 103/9/1 +f 70/7/1 104/10/1 71/11/1 +f 71/11/1 105/12/1 72/13/1 +f 73/14/1 105/15/1 106/16/1 +f 74/17/1 106/18/1 107/19/1 +f 75/20/1 107/21/1 108/22/1 +f 75/20/1 109/23/1 76/24/1 +f 77/25/1 109/26/1 110/27/1 +f 78/28/1 110/29/1 111/30/1 +f 78/28/1 112/31/1 79/32/1 +f 79/32/1 113/33/1 80/34/1 +f 66/35/1 100/36/1 67/37/1 +f 81/38/1 113/39/1 114/40/1 +f 67/37/1 101/41/1 68/42/1 +f 81/38/1 99/43/1 66/35/1 +f 125/44/1 121/45/1 117/46/1 +f 133/47/2 132/48/2 134/49/2 +f 131/50/3 136/51/3 132/48/3 +f 135/52/4 131/53/4 133/54/4 +f 136/51/5 134/55/5 132/56/5 +f 137/57/1 139/58/1 141/59/1 +f 138/60/6 142/61/6 140/62/6 +f 142/63/7 137/57/7 141/59/7 +f 139/64/8 142/63/8 141/59/8 +f 144/65/9 152/66/9 148/67/9 +f 149/68/1 151/69/1 153/70/1 +f 158/71/1 190/72/1 191/73/1 +f 159/74/1 191/75/1 192/76/1 +f 159/74/1 193/77/1 160/78/1 +f 160/78/1 194/79/1 161/80/1 +f 162/81/1 194/82/1 195/83/1 +f 163/84/1 195/85/1 196/86/1 +f 164/87/1 196/88/1 197/89/1 +f 164/87/1 198/90/1 165/91/1 +f 166/92/1 198/93/1 199/94/1 +f 167/95/1 199/96/1 200/97/1 +f 167/95/1 201/98/1 168/99/1 +f 168/99/1 202/100/1 169/101/1 +f 155/102/1 189/103/1 156/104/1 +f 170/105/1 202/106/1 203/107/1 +f 156/104/1 190/108/1 157/109/1 +f 170/105/1 188/110/1 155/102/1 +f 210/111/1 208/112/1 206/113/1 +f 220/114/1 222/115/1 224/116/1 +f 221/117/10 225/118/10 223/119/10 +f 225/120/11 220/114/11 224/116/11 +f 222/121/12 225/120/12 224/116/12 +f 229/122/1 261/123/1 262/124/1 +f 230/125/1 262/126/1 263/127/1 +f 230/125/1 264/128/1 231/129/1 +f 231/129/1 265/130/1 232/131/1 +f 233/132/1 265/133/1 266/134/1 +f 234/135/1 266/136/1 267/137/1 +f 235/138/1 267/139/1 268/140/1 +f 235/138/1 269/141/1 236/142/1 +f 237/143/1 269/144/1 270/145/1 +f 237/143/1 271/146/1 238/147/1 +f 238/147/1 272/148/1 239/149/1 +f 239/149/1 273/150/1 240/151/1 +f 226/152/1 260/153/1 227/154/1 +f 241/155/1 273/156/1 274/157/1 +f 227/154/1 261/158/1 228/159/1 +f 241/155/1 259/160/1 226/152/1 +f 285/161/1 281/162/1 277/163/1 +f 291/164/1 293/165/1 295/166/1 +f 292/167/13 296/168/13 294/169/13 +f 296/170/14 291/164/14 295/166/14 +f 293/171/15 296/170/15 295/166/15 +f 300/172/1 332/173/1 333/174/1 +f 301/175/1 333/176/1 334/177/1 +f 301/175/1 335/178/1 302/179/1 +f 302/179/1 336/180/1 303/181/1 +f 304/182/1 336/183/1 337/184/1 +f 305/185/1 337/186/1 338/187/1 +f 306/188/1 338/189/1 339/190/1 +f 306/188/1 340/191/1 307/192/1 +f 308/193/1 340/194/1 341/195/1 +f 309/196/1 341/197/1 342/198/1 +f 309/196/1 343/199/1 310/200/1 +f 310/200/1 344/201/1 311/202/1 +f 297/203/1 331/204/1 298/205/1 +f 312/206/1 344/207/1 345/208/1 +f 298/205/1 332/209/1 299/210/1 +f 297/203/1 345/211/1 330/212/1 +f 356/213/1 352/214/1 348/215/1 +f 362/216/1 364/217/1 366/218/1 +f 363/219/16 367/220/16 365/221/16 +f 367/222/17 362/216/17 366/218/17 +f 364/223/18 367/222/18 366/218/18 +f 370/224/19 369/225/19 371/226/19 +f 368/227/20 373/228/20 369/225/20 +f 372/229/21 368/230/21 370/231/21 +f 373/228/22 371/232/22 369/233/22 +f 381/234/9 379/235/9 375/236/9 +f 380/237/1 382/238/1 384/239/1 +f 388/240/23 387/241/23 389/242/23 +f 386/243/24 391/244/24 387/241/24 +f 390/245/25 386/246/25 388/247/25 +f 391/244/26 389/248/26 387/249/26 +f 393/250/9 401/251/9 397/252/9 +f 398/253/1 400/254/1 402/255/1 +f 407/256/27 404/257/27 405/258/27 +f 404/257/28 409/259/28 405/258/28 +f 408/260/29 404/261/29 406/262/29 +f 409/259/30 407/263/30 405/264/30 +f 411/265/9 419/266/9 415/267/9 +f 416/268/1 418/269/1 420/270/1 +f 52/1/1 51/271/1 50/272/1 +f 50/272/1 65/273/1 52/1/1 +f 65/273/1 64/2/1 52/1/1 +f 64/2/1 63/274/1 62/275/1 +f 62/275/1 61/276/1 60/3/1 +f 60/3/1 59/277/1 58/278/1 +f 58/278/1 57/279/1 56/280/1 +f 56/280/1 55/281/1 52/1/1 +f 55/281/1 54/282/1 52/1/1 +f 54/282/1 53/283/1 52/1/1 +f 64/2/1 62/275/1 60/3/1 +f 60/3/1 58/278/1 52/1/1 +f 58/278/1 56/280/1 52/1/1 +f 69/4/1 68/284/1 101/5/1 +f 70/7/1 69/4/1 102/8/1 +f 70/7/1 103/285/1 104/10/1 +f 71/11/1 104/286/1 105/12/1 +f 73/14/1 72/13/1 105/15/1 +f 74/17/1 73/14/1 106/18/1 +f 75/20/1 74/17/1 107/21/1 +f 75/20/1 108/287/1 109/23/1 +f 77/25/1 76/24/1 109/26/1 +f 78/28/1 77/25/1 110/29/1 +f 78/28/1 111/288/1 112/31/1 +f 79/32/1 112/289/1 113/33/1 +f 66/35/1 99/290/1 100/36/1 +f 81/38/1 80/34/1 113/39/1 +f 67/37/1 100/291/1 101/41/1 +f 81/38/1 114/292/1 99/43/1 +f 117/46/1 116/293/1 115/294/1 +f 115/294/1 130/295/1 117/46/1 +f 130/295/1 129/296/1 117/46/1 +f 129/296/1 128/297/1 127/298/1 +f 127/298/1 126/299/1 125/44/1 +f 125/44/1 124/300/1 121/45/1 +f 124/300/1 123/301/1 121/45/1 +f 123/301/1 122/302/1 121/45/1 +f 121/45/1 120/303/1 119/304/1 +f 119/304/1 118/305/1 117/46/1 +f 129/296/1 127/298/1 117/46/1 +f 127/298/1 125/44/1 117/46/1 +f 121/45/1 119/304/1 117/46/1 +f 133/47/2 131/50/2 132/48/2 +f 131/50/3 135/52/3 136/51/3 +f 142/63/7 138/60/7 137/57/7 +f 139/64/8 140/306/8 142/63/8 +f 148/67/9 146/307/9 144/65/9 +f 144/65/9 154/308/9 152/66/9 +f 152/66/9 150/309/9 148/67/9 +f 153/70/1 143/310/1 145/311/1 +f 145/311/1 147/312/1 153/70/1 +f 147/312/1 149/68/1 153/70/1 +f 158/71/1 157/313/1 190/72/1 +f 159/74/1 158/71/1 191/75/1 +f 159/74/1 192/314/1 193/77/1 +f 160/78/1 193/315/1 194/79/1 +f 162/81/1 161/80/1 194/82/1 +f 163/84/1 162/81/1 195/85/1 +f 164/87/1 163/84/1 196/88/1 +f 164/87/1 197/316/1 198/90/1 +f 166/92/1 165/91/1 198/93/1 +f 167/95/1 166/92/1 199/96/1 +f 167/95/1 200/317/1 201/98/1 +f 168/99/1 201/318/1 202/100/1 +f 155/102/1 188/319/1 189/103/1 +f 170/105/1 169/101/1 202/106/1 +f 156/104/1 189/320/1 190/108/1 +f 170/105/1 203/321/1 188/110/1 +f 206/113/1 205/322/1 204/323/1 +f 204/323/1 219/324/1 218/325/1 +f 218/325/1 217/326/1 216/327/1 +f 216/327/1 215/328/1 214/329/1 +f 214/329/1 213/330/1 212/331/1 +f 212/331/1 211/332/1 210/111/1 +f 210/111/1 209/333/1 208/112/1 +f 208/112/1 207/334/1 206/113/1 +f 206/113/1 204/323/1 214/329/1 +f 204/323/1 218/325/1 214/329/1 +f 218/325/1 216/327/1 214/329/1 +f 214/329/1 212/331/1 206/113/1 +f 212/331/1 210/111/1 206/113/1 +f 225/120/11 221/117/11 220/114/11 +f 222/121/12 223/335/12 225/120/12 +f 229/122/1 228/336/1 261/123/1 +f 230/125/1 229/122/1 262/126/1 +f 230/125/1 263/337/1 264/128/1 +f 231/129/1 264/338/1 265/130/1 +f 233/132/1 232/131/1 265/133/1 +f 234/135/1 233/132/1 266/136/1 +f 235/138/1 234/135/1 267/139/1 +f 235/138/1 268/339/1 269/141/1 +f 237/143/1 236/142/1 269/144/1 +f 237/143/1 270/340/1 271/146/1 +f 238/147/1 271/341/1 272/148/1 +f 239/149/1 272/342/1 273/150/1 +f 226/152/1 259/343/1 260/153/1 +f 241/155/1 240/151/1 273/156/1 +f 227/154/1 260/344/1 261/158/1 +f 241/155/1 274/345/1 259/160/1 +f 277/163/1 276/346/1 275/347/1 +f 275/347/1 290/348/1 289/349/1 +f 289/349/1 288/350/1 287/351/1 +f 287/351/1 286/352/1 285/161/1 +f 285/161/1 284/353/1 281/162/1 +f 284/353/1 283/354/1 281/162/1 +f 283/354/1 282/355/1 281/162/1 +f 281/162/1 280/356/1 279/357/1 +f 279/357/1 278/358/1 277/163/1 +f 277/163/1 275/347/1 289/349/1 +f 289/349/1 287/351/1 277/163/1 +f 287/351/1 285/161/1 277/163/1 +f 281/162/1 279/357/1 277/163/1 +f 296/170/14 292/167/14 291/164/14 +f 293/171/15 294/359/15 296/170/15 +f 300/172/1 299/360/1 332/173/1 +f 301/175/1 300/172/1 333/176/1 +f 301/175/1 334/361/1 335/178/1 +f 302/179/1 335/362/1 336/180/1 +f 304/182/1 303/181/1 336/183/1 +f 305/185/1 304/182/1 337/186/1 +f 306/188/1 305/185/1 338/189/1 +f 306/188/1 339/363/1 340/191/1 +f 308/193/1 307/192/1 340/194/1 +f 309/196/1 308/193/1 341/197/1 +f 309/196/1 342/364/1 343/199/1 +f 310/200/1 343/365/1 344/201/1 +f 297/203/1 330/366/1 331/204/1 +f 312/206/1 311/202/1 344/207/1 +f 298/205/1 331/367/1 332/209/1 +f 297/203/1 312/206/1 345/211/1 +f 348/215/1 347/368/1 346/369/1 +f 346/369/1 361/370/1 348/215/1 +f 361/370/1 360/371/1 348/215/1 +f 360/371/1 359/372/1 358/373/1 +f 358/373/1 357/374/1 356/213/1 +f 356/213/1 355/375/1 352/214/1 +f 355/375/1 354/376/1 352/214/1 +f 354/376/1 353/377/1 352/214/1 +f 352/214/1 351/378/1 350/379/1 +f 350/379/1 349/380/1 348/215/1 +f 360/371/1 358/373/1 348/215/1 +f 358/373/1 356/213/1 348/215/1 +f 352/214/1 350/379/1 348/215/1 +f 367/222/17 363/219/17 362/216/17 +f 364/223/18 365/381/18 367/222/18 +f 370/224/19 368/227/19 369/225/19 +f 368/227/20 372/229/20 373/228/20 +f 379/235/9 377/382/9 375/236/9 +f 375/236/9 385/383/9 383/384/9 +f 383/384/9 381/234/9 375/236/9 +f 384/239/1 374/385/1 376/386/1 +f 376/386/1 378/387/1 384/239/1 +f 378/387/1 380/237/1 384/239/1 +f 388/240/23 386/243/23 387/241/23 +f 386/243/24 390/245/24 391/244/24 +f 397/252/9 395/388/9 393/250/9 +f 393/250/9 403/389/9 401/251/9 +f 401/251/9 399/390/9 397/252/9 +f 402/255/1 392/391/1 394/392/1 +f 394/392/1 396/393/1 402/255/1 +f 396/393/1 398/253/1 402/255/1 +f 407/256/27 406/394/27 404/257/27 +f 404/257/28 408/260/28 409/259/28 +f 415/267/9 413/395/9 411/265/9 +f 411/265/9 421/396/9 419/266/9 +f 419/266/9 417/397/9 415/267/9 +f 420/270/1 410/398/1 412/399/1 +f 412/399/1 414/400/1 420/270/1 +f 414/400/1 416/268/1 420/270/1 +s 1 +f 16/401/31 1/402/32 17/403/9 +f 15/404/33 16/401/31 17/405/9 +f 14/406/34 15/404/33 17/407/9 +f 13/408/35 14/406/34 17/409/9 +f 12/410/36 13/408/35 17/411/9 +f 11/412/37 12/410/36 17/413/9 +f 10/414/38 11/412/37 17/415/9 +f 9/416/39 10/414/38 17/417/9 +f 9/416/39 17/418/9 8/419/40 +f 7/420/41 8/419/40 17/421/9 +f 6/422/42 7/420/41 17/423/9 +f 5/424/43 6/422/42 17/425/9 +f 4/426/44 5/427/43 17/428/9 +f 3/429/45 4/426/44 17/430/9 +f 2/431/46 3/429/45 17/432/9 +f 1/402/32 2/431/46 17/433/9 +f 4/426/47 22/434/48 5/427/48 +f 12/410/49 30/435/50 13/408/50 +f 5/424/48 23/436/51 6/422/51 +f 13/408/50 31/437/52 14/406/52 +f 6/422/51 24/438/53 7/420/53 +f 14/406/52 32/439/54 15/404/54 +f 7/420/53 25/440/55 8/419/55 +f 15/404/54 33/441/56 16/401/56 +f 8/419/55 26/442/57 9/416/57 +f 1/402/58 19/443/59 2/431/59 +f 16/401/56 18/444/58 1/402/58 +f 9/416/57 27/445/60 10/414/60 +f 2/431/59 20/446/61 3/429/61 +f 10/414/60 28/447/62 11/412/62 +f 3/429/61 21/448/47 4/426/47 +f 11/412/62 29/449/49 12/410/49 +f 26/442/63 43/450/64 27/445/64 +f 19/443/65 36/451/66 20/446/66 +f 27/445/64 44/452/67 28/447/67 +f 20/446/66 37/453/68 21/448/68 +f 28/447/67 45/454/69 29/449/69 +f 21/448/68 38/455/70 22/434/70 +f 29/449/69 46/456/71 30/435/71 +f 22/457/70 39/458/72 23/436/72 +f 30/435/71 47/459/73 31/437/73 +f 23/436/72 40/460/74 24/438/74 +f 31/437/73 48/461/75 32/439/75 +f 24/438/74 41/462/76 25/440/76 +f 33/441/77 48/463/75 49/464/77 +f 25/440/76 42/465/63 26/442/63 +f 18/444/78 35/466/65 19/443/65 +f 33/441/77 34/467/78 18/444/78 +f 47/468/52 64/469/54 48/470/54 +f 40/471/53 57/472/55 41/473/55 +f 48/470/54 65/474/56 49/475/56 +f 41/473/55 58/476/57 42/477/57 +f 34/478/58 51/479/59 35/480/59 +f 49/475/56 50/481/58 34/478/58 +f 42/477/57 59/482/60 43/483/60 +f 35/480/59 52/484/61 36/485/61 +f 43/483/60 60/486/62 44/487/62 +f 36/485/61 53/488/47 37/489/47 +f 44/487/62 61/490/49 45/491/49 +f 37/489/47 54/492/48 38/493/48 +f 45/491/49 62/494/50 46/495/50 +f 38/496/48 55/497/51 39/458/51 +f 46/495/50 63/498/52 47/468/52 +f 39/458/51 56/499/53 40/471/53 +f 68/42/53 83/500/51 67/37/51 +f 76/24/54 91/501/52 75/20/52 +f 69/4/55 84/502/53 68/284/53 +f 77/25/56 92/503/54 76/24/54 +f 70/7/57 85/504/55 69/4/55 +f 78/28/58 93/505/56 77/25/56 +f 71/11/60 86/506/57 70/7/57 +f 79/32/59 94/507/58 78/28/58 +f 72/13/62 87/508/60 71/11/60 +f 80/34/61 95/509/59 79/32/59 +f 73/14/49 88/510/62 72/13/62 +f 81/38/47 96/511/61 80/34/61 +f 74/17/50 89/512/49 73/14/49 +f 67/37/51 82/513/48 66/35/48 +f 66/35/48 97/514/47 81/38/47 +f 75/20/52 90/515/50 74/17/50 +f 94/507/79 98/516/80 93/505/81 +f 92/503/82 93/505/81 98/517/80 +f 91/501/83 92/503/82 98/518/80 +f 90/515/84 91/501/83 98/519/80 +f 89/512/85 90/515/84 98/520/80 +f 88/510/86 89/512/85 98/521/80 +f 87/508/87 88/510/86 98/522/80 +f 86/506/88 87/508/87 98/523/80 +f 85/504/89 86/506/88 98/524/80 +f 84/502/90 85/504/89 98/525/80 +f 83/500/91 84/526/90 98/527/80 +f 82/513/92 83/500/91 98/528/80 +f 97/514/93 82/513/92 98/529/80 +f 96/511/94 97/514/93 98/530/80 +f 95/509/95 96/511/94 98/531/80 +f 94/507/79 95/509/95 98/532/80 +f 109/23/96 124/533/97 125/534/96 +f 109/26/96 126/535/98 110/27/98 +f 110/29/98 127/536/99 111/30/99 +f 111/288/99 128/537/100 112/31/100 +f 113/33/101 128/537/100 129/538/101 +f 100/36/102 115/539/103 116/540/102 +f 113/39/101 130/541/104 114/40/104 +f 100/291/102 117/542/105 101/41/105 +f 114/292/104 115/539/103 99/43/103 +f 102/6/106 117/543/105 118/544/106 +f 102/8/106 119/545/107 103/9/107 +f 103/285/107 120/546/108 104/10/108 +f 104/286/108 121/547/109 105/12/109 +f 105/15/109 122/548/110 106/16/110 +f 106/18/110 123/549/111 107/19/111 +f 107/21/111 124/533/97 108/22/97 +f 144/550/48 145/551/112 143/552/48 +f 146/553/112 147/554/113 145/551/112 +f 148/555/113 149/556/50 147/554/113 +f 150/557/50 151/558/114 149/556/50 +f 152/559/114 153/560/115 151/558/114 +f 154/561/115 143/552/48 153/562/115 +f 157/109/54 172/563/52 156/104/52 +f 165/91/53 180/564/51 164/87/51 +f 158/71/56 173/565/54 157/313/54 +f 166/92/55 181/566/53 165/91/53 +f 159/74/58 174/567/56 158/71/56 +f 167/95/57 182/568/55 166/92/55 +f 160/78/59 175/569/58 159/74/58 +f 168/99/60 183/570/57 167/95/57 +f 161/80/61 176/571/59 160/78/59 +f 169/101/62 184/572/60 168/99/60 +f 162/81/47 177/573/61 161/80/61 +f 170/105/49 185/574/62 169/101/62 +f 163/84/48 178/575/47 162/81/47 +f 156/104/52 171/576/50 155/102/50 +f 155/102/50 186/577/49 170/105/49 +f 164/87/51 179/578/48 163/84/48 +f 183/570/116 187/579/117 182/568/118 +f 181/566/119 182/568/118 187/580/117 +f 180/564/120 181/566/119 187/581/117 +f 179/578/121 180/564/120 187/582/117 +f 178/575/122 179/578/121 187/583/117 +f 177/573/123 178/575/122 187/584/117 +f 176/571/124 177/573/123 187/585/117 +f 175/569/125 176/571/124 187/586/117 +f 174/567/126 175/569/125 187/587/117 +f 173/565/127 174/567/126 187/588/117 +f 172/563/128 173/589/127 187/590/117 +f 171/576/129 172/563/128 187/591/117 +f 186/577/130 171/576/129 187/592/117 +f 185/574/131 186/577/130 187/593/117 +f 184/572/132 185/574/131 187/594/117 +f 183/570/116 184/572/132 187/595/117 +f 198/90/105 213/596/102 214/597/105 +f 198/93/105 215/598/106 199/94/106 +f 199/96/106 216/599/107 200/97/107 +f 201/98/108 216/599/107 217/600/108 +f 202/100/109 217/600/108 218/601/109 +f 188/319/111 205/602/97 189/103/97 +f 202/106/109 219/603/110 203/107/110 +f 190/108/96 205/602/97 206/604/96 +f 203/321/110 204/605/111 188/110/111 +f 190/72/96 207/606/98 191/73/98 +f 191/75/98 208/607/99 192/76/99 +f 192/314/99 209/608/100 193/77/100 +f 193/315/100 210/609/101 194/79/101 +f 194/82/101 211/610/104 195/83/104 +f 195/85/104 212/611/103 196/86/103 +f 196/88/103 213/596/102 197/89/102 +f 228/159/62 243/612/60 227/154/60 +f 236/142/61 251/613/59 235/138/59 +f 229/122/49 244/614/62 228/336/62 +f 237/143/47 252/615/61 236/142/61 +f 230/125/50 245/616/49 229/122/49 +f 238/147/48 253/617/47 237/143/47 +f 231/129/52 246/618/50 230/125/50 +f 239/149/51 254/619/48 238/147/48 +f 232/131/54 247/620/52 231/129/52 +f 240/151/53 255/621/51 239/149/51 +f 233/132/56 248/622/54 232/131/54 +f 241/155/55 256/623/53 240/151/53 +f 234/135/58 249/624/56 233/132/56 +f 227/154/60 242/625/57 226/152/57 +f 226/152/57 257/626/55 241/155/55 +f 235/138/59 250/627/58 234/135/58 +f 254/619/133 258/628/134 253/617/135 +f 252/615/136 253/617/135 258/629/134 +f 251/613/137 252/615/136 258/630/134 +f 250/627/138 251/613/137 258/631/134 +f 249/624/139 250/627/138 258/632/134 +f 248/622/140 249/624/139 258/633/134 +f 247/620/141 248/622/140 258/634/134 +f 246/618/142 247/620/141 258/635/134 +f 245/616/143 246/618/142 258/636/134 +f 244/614/144 245/616/143 258/637/134 +f 243/612/145 244/638/144 258/639/134 +f 242/625/146 243/612/145 258/640/134 +f 257/626/147 242/625/146 258/641/134 +f 256/623/148 257/626/147 258/642/134 +f 255/621/149 256/623/148 258/643/134 +f 254/619/133 255/621/149 258/644/134 +f 268/339/100 285/645/101 269/141/101 +f 269/144/101 286/646/104 270/145/104 +f 270/340/104 287/647/103 271/146/103 +f 271/341/103 288/648/102 272/148/102 +f 273/150/105 288/648/102 289/649/105 +f 259/343/107 276/650/108 260/153/108 +f 273/156/105 290/651/106 274/157/106 +f 260/344/108 277/652/109 261/158/109 +f 274/345/106 275/653/107 259/160/107 +f 262/124/110 277/654/109 278/655/110 +f 262/126/110 279/656/111 263/127/111 +f 263/337/111 280/657/97 264/128/97 +f 264/338/97 281/658/96 265/130/96 +f 265/133/96 282/659/98 266/134/98 +f 266/136/98 283/660/99 267/137/99 +f 267/139/99 284/661/100 268/140/100 +f 299/210/61 314/662/59 298/205/59 +f 307/192/62 322/663/60 306/188/60 +f 300/172/47 315/664/61 299/360/61 +f 308/193/49 323/665/62 307/192/62 +f 301/175/48 316/666/47 300/172/47 +f 309/196/50 324/667/49 308/193/49 +f 302/179/51 317/668/48 301/175/48 +f 310/200/52 325/669/50 309/196/50 +f 303/181/53 318/670/51 302/179/51 +f 311/202/54 326/671/52 310/200/52 +f 304/182/55 319/672/53 303/181/53 +f 312/206/56 327/673/54 311/202/54 +f 305/185/57 320/674/55 304/182/55 +f 298/205/59 313/675/58 297/203/58 +f 297/203/58 328/676/56 312/206/56 +f 306/188/60 321/677/57 305/185/57 +f 325/669/150 329/678/151 324/667/152 +f 323/665/153 324/667/152 329/679/151 +f 322/663/154 323/665/153 329/680/151 +f 321/677/155 322/663/154 329/681/151 +f 320/674/156 321/677/155 329/682/151 +f 319/672/157 320/674/156 329/683/151 +f 318/670/158 319/672/157 329/684/151 +f 317/668/159 318/670/158 329/685/151 +f 316/666/160 317/668/159 329/686/151 +f 315/664/161 316/666/160 329/687/151 +f 314/662/162 315/688/161 329/689/151 +f 313/675/163 314/662/162 329/690/151 +f 328/676/164 313/675/163 329/691/151 +f 327/673/165 328/676/164 329/692/151 +f 326/671/166 327/673/165 329/693/151 +f 325/669/150 326/671/166 329/694/151 +f 340/191/109 355/695/108 356/696/109 +f 340/194/109 357/697/110 341/195/110 +f 341/197/110 358/698/111 342/198/111 +f 343/199/97 358/698/111 359/699/97 +f 343/365/97 360/700/96 344/201/96 +f 330/366/99 347/701/100 331/204/100 +f 345/208/98 360/700/96 361/702/98 +f 332/209/101 347/701/100 348/703/101 +f 345/211/98 346/704/99 330/212/99 +f 333/174/104 348/705/101 349/706/104 +f 333/176/104 350/707/103 334/177/103 +f 335/178/102 350/707/103 351/708/102 +f 335/362/102 352/709/105 336/180/105 +f 336/183/105 353/710/106 337/184/106 +f 337/186/106 354/711/107 338/187/107 +f 338/189/107 355/695/108 339/190/108 +f 375/712/50 376/713/114 374/714/50 +f 377/715/114 378/716/115 376/713/114 +f 379/717/115 380/718/48 378/716/115 +f 381/719/48 382/720/112 380/718/48 +f 383/721/112 384/722/113 382/720/112 +f 385/723/113 374/714/50 384/724/113 +f 393/725/57 394/726/167 392/727/57 +f 395/728/167 396/729/168 394/726/167 +f 397/730/168 398/731/58 396/729/168 +f 399/732/58 400/733/169 398/731/58 +f 401/734/169 402/735/170 400/733/169 +f 403/736/170 392/727/57 402/737/170 +f 411/738/58 412/739/169 410/740/58 +f 413/741/169 414/742/170 412/739/169 +f 415/743/170 416/744/57 414/742/170 +f 417/745/57 418/746/167 416/744/57 +f 419/747/167 420/748/168 418/746/167 +f 421/749/168 410/740/58 420/750/168 +f 4/426/47 21/448/47 22/434/48 +f 12/410/49 29/449/49 30/435/50 +f 5/424/48 22/457/48 23/436/51 +f 13/408/50 30/435/50 31/437/52 +f 6/422/51 23/436/51 24/438/53 +f 14/406/52 31/437/52 32/439/54 +f 7/420/53 24/438/53 25/440/55 +f 15/404/54 32/439/54 33/441/56 +f 8/419/55 25/440/55 26/442/57 +f 1/402/58 18/444/58 19/443/59 +f 16/401/56 33/441/56 18/444/58 +f 9/416/57 26/442/57 27/445/60 +f 2/431/59 19/443/59 20/446/61 +f 10/414/60 27/445/60 28/447/62 +f 3/429/61 20/446/61 21/448/47 +f 11/412/62 28/447/62 29/449/49 +f 26/442/63 42/751/63 43/450/64 +f 19/443/65 35/752/65 36/451/66 +f 27/445/64 43/753/64 44/452/67 +f 20/446/66 36/754/66 37/453/68 +f 28/447/67 44/755/67 45/454/69 +f 21/448/68 37/756/68 38/455/70 +f 29/449/69 45/757/69 46/456/71 +f 22/457/70 38/496/70 39/458/72 +f 30/435/71 46/758/71 47/459/73 +f 23/436/72 39/759/72 40/460/74 +f 31/437/73 47/760/73 48/461/75 +f 24/438/74 40/761/74 41/462/76 +f 33/441/77 32/439/75 48/463/75 +f 25/440/76 41/762/76 42/465/63 +f 18/444/78 34/763/78 35/466/65 +f 33/441/77 49/764/77 34/467/78 +f 47/468/52 63/498/52 64/469/54 +f 40/471/53 56/499/53 57/472/55 +f 48/470/54 64/469/54 65/474/56 +f 41/473/55 57/472/55 58/476/57 +f 34/478/58 50/481/58 51/479/59 +f 49/475/56 65/474/56 50/481/58 +f 42/477/57 58/476/57 59/482/60 +f 35/480/59 51/479/59 52/484/61 +f 43/483/60 59/482/60 60/486/62 +f 36/485/61 52/484/61 53/488/47 +f 44/487/62 60/486/62 61/490/49 +f 37/489/47 53/488/47 54/492/48 +f 45/491/49 61/490/49 62/494/50 +f 38/496/48 54/765/48 55/497/51 +f 46/495/50 62/494/50 63/498/52 +f 39/458/51 55/497/51 56/499/53 +f 68/42/53 84/526/53 83/500/51 +f 76/24/54 92/503/54 91/501/52 +f 69/4/55 85/504/55 84/502/53 +f 77/25/56 93/505/56 92/503/54 +f 70/7/57 86/506/57 85/504/55 +f 78/28/58 94/507/58 93/505/56 +f 71/11/60 87/508/60 86/506/57 +f 79/32/59 95/509/59 94/507/58 +f 72/13/62 88/510/62 87/508/60 +f 80/34/61 96/511/61 95/509/59 +f 73/14/49 89/512/49 88/510/62 +f 81/38/47 97/514/47 96/511/61 +f 74/17/50 90/515/50 89/512/49 +f 67/37/51 83/500/51 82/513/48 +f 66/35/48 82/513/48 97/514/47 +f 75/20/52 91/501/52 90/515/50 +f 109/23/96 108/287/97 124/533/97 +f 109/26/96 125/534/96 126/535/98 +f 110/29/98 126/535/98 127/536/99 +f 111/288/99 127/536/99 128/537/100 +f 113/33/101 112/289/100 128/537/100 +f 100/36/102 99/290/103 115/539/103 +f 113/39/101 129/538/101 130/541/104 +f 100/291/102 116/540/102 117/542/105 +f 114/292/104 130/541/104 115/539/103 +f 102/6/106 101/5/105 117/543/105 +f 102/8/106 118/544/106 119/545/107 +f 103/285/107 119/545/107 120/546/108 +f 104/286/108 120/546/108 121/547/109 +f 105/15/109 121/547/109 122/548/110 +f 106/18/110 122/548/110 123/549/111 +f 107/21/111 123/549/111 124/533/97 +f 144/550/48 146/553/112 145/551/112 +f 146/553/112 148/555/113 147/554/113 +f 148/555/113 150/557/50 149/556/50 +f 150/557/50 152/559/114 151/558/114 +f 152/559/114 154/766/115 153/560/115 +f 154/561/115 144/550/48 143/552/48 +f 157/109/54 173/589/54 172/563/52 +f 165/91/53 181/566/53 180/564/51 +f 158/71/56 174/567/56 173/565/54 +f 166/92/55 182/568/55 181/566/53 +f 159/74/58 175/569/58 174/567/56 +f 167/95/57 183/570/57 182/568/55 +f 160/78/59 176/571/59 175/569/58 +f 168/99/60 184/572/60 183/570/57 +f 161/80/61 177/573/61 176/571/59 +f 169/101/62 185/574/62 184/572/60 +f 162/81/47 178/575/47 177/573/61 +f 170/105/49 186/577/49 185/574/62 +f 163/84/48 179/578/48 178/575/47 +f 156/104/52 172/563/52 171/576/50 +f 155/102/50 171/576/50 186/577/49 +f 164/87/51 180/564/51 179/578/48 +f 198/90/105 197/316/102 213/596/102 +f 198/93/105 214/597/105 215/598/106 +f 199/96/106 215/598/106 216/599/107 +f 201/98/108 200/317/107 216/599/107 +f 202/100/109 201/318/108 217/600/108 +f 188/319/111 204/605/111 205/602/97 +f 202/106/109 218/601/109 219/603/110 +f 190/108/96 189/320/97 205/602/97 +f 203/321/110 219/603/110 204/605/111 +f 190/72/96 206/767/96 207/606/98 +f 191/75/98 207/606/98 208/607/99 +f 192/314/99 208/607/99 209/608/100 +f 193/315/100 209/608/100 210/609/101 +f 194/82/101 210/609/101 211/610/104 +f 195/85/104 211/610/104 212/611/103 +f 196/88/103 212/611/103 213/596/102 +f 228/159/62 244/638/62 243/612/60 +f 236/142/61 252/615/61 251/613/59 +f 229/122/49 245/616/49 244/614/62 +f 237/143/47 253/617/47 252/615/61 +f 230/125/50 246/618/50 245/616/49 +f 238/147/48 254/619/48 253/617/47 +f 231/129/52 247/620/52 246/618/50 +f 239/149/51 255/621/51 254/619/48 +f 232/131/54 248/622/54 247/620/52 +f 240/151/53 256/623/53 255/621/51 +f 233/132/56 249/624/56 248/622/54 +f 241/155/55 257/626/55 256/623/53 +f 234/135/58 250/627/58 249/624/56 +f 227/154/60 243/612/60 242/625/57 +f 226/152/57 242/625/57 257/626/55 +f 235/138/59 251/613/59 250/627/58 +f 268/339/100 284/661/100 285/645/101 +f 269/144/101 285/645/101 286/646/104 +f 270/340/104 286/646/104 287/647/103 +f 271/341/103 287/647/103 288/648/102 +f 273/150/105 272/342/102 288/648/102 +f 259/343/107 275/653/107 276/650/108 +f 273/156/105 289/649/105 290/651/106 +f 260/344/108 276/650/108 277/652/109 +f 274/345/106 290/651/106 275/653/107 +f 262/124/110 261/123/109 277/654/109 +f 262/126/110 278/655/110 279/656/111 +f 263/337/111 279/656/111 280/657/97 +f 264/338/97 280/657/97 281/658/96 +f 265/133/96 281/658/96 282/659/98 +f 266/136/98 282/659/98 283/660/99 +f 267/139/99 283/660/99 284/661/100 +f 299/210/61 315/688/61 314/662/59 +f 307/192/62 323/665/62 322/663/60 +f 300/172/47 316/666/47 315/664/61 +f 308/193/49 324/667/49 323/665/62 +f 301/175/48 317/668/48 316/666/47 +f 309/196/50 325/669/50 324/667/49 +f 302/179/51 318/670/51 317/668/48 +f 310/200/52 326/671/52 325/669/50 +f 303/181/53 319/672/53 318/670/51 +f 311/202/54 327/673/54 326/671/52 +f 304/182/55 320/674/55 319/672/53 +f 312/206/56 328/676/56 327/673/54 +f 305/185/57 321/677/57 320/674/55 +f 298/205/59 314/662/59 313/675/58 +f 297/203/58 313/675/58 328/676/56 +f 306/188/60 322/663/60 321/677/57 +f 340/191/109 339/363/108 355/695/108 +f 340/194/109 356/696/109 357/697/110 +f 341/197/110 357/697/110 358/698/111 +f 343/199/97 342/364/111 358/698/111 +f 343/365/97 359/699/97 360/700/96 +f 330/366/99 346/704/99 347/701/100 +f 345/208/98 344/207/96 360/700/96 +f 332/209/101 331/367/100 347/701/100 +f 345/211/98 361/702/98 346/704/99 +f 333/174/104 332/173/101 348/705/101 +f 333/176/104 349/706/104 350/707/103 +f 335/178/102 334/361/103 350/707/103 +f 335/362/102 351/708/102 352/709/105 +f 336/183/105 352/709/105 353/710/106 +f 337/186/106 353/710/106 354/711/107 +f 338/189/107 354/711/107 355/695/108 +f 375/712/50 377/715/114 376/713/114 +f 377/715/114 379/717/115 378/716/115 +f 379/717/115 381/719/48 380/718/48 +f 381/719/48 383/721/112 382/720/112 +f 383/721/112 385/768/113 384/722/113 +f 385/723/113 375/712/50 374/714/50 +f 393/725/57 395/728/167 394/726/167 +f 395/728/167 397/730/168 396/729/168 +f 397/730/168 399/732/58 398/731/58 +f 399/732/58 401/734/169 400/733/169 +f 401/734/169 403/769/170 402/735/170 +f 403/736/170 393/725/57 392/727/57 +f 411/738/58 413/741/169 412/739/169 +f 413/741/169 415/743/170 414/742/170 +f 415/743/170 417/745/57 416/744/57 +f 417/745/57 419/747/167 418/746/167 +f 419/747/167 421/770/168 420/748/168 +f 421/749/168 411/738/58 410/740/58 diff --git a/src/main/resources/assets/hbm/textures/models/missile_abm.png b/src/main/resources/assets/hbm/textures/models/missile_abm.png new file mode 100644 index 0000000000000000000000000000000000000000..0b56f1d54b0f99956e42aeaf6e77fd6d0b2eab75 GIT binary patch literal 1320 zcmV+@1=sqCP)v5uoK5I`r$SKkU<2TFO>N=HXab03i|)k)j!N8J8Ln*D|= z(xj!!N|9E&a)n#OeL=1=0@gMRwy_ONmoK)T!7GAEA_*pmB$ypFxe+ z*F|qfk|bI5hPuhJ?EdiZ0000@(*XAG>-CBnypuFdwLQE|E|<$9S&L{`P?jb4MAyrU zqPS;SW;|8(Nns)r^`*QhihEHM#uT@Ee}DHnfp|C^q`peGseWoX;Wm!U==Sr1z>*AG}sK2Tz>A778uj=pt07#za?E~oeQr$1Z>M~uw zh%sf(AsXITrOArEjOqHj$jnZMNw(=7UFIUH%XIyWG);wanQSVgYbL6d4X5gJpxoZ7O z;C()9;l+VeUs*ERztO6g(hf1WB_R4t2Di9L`R2LXi++2vN#%;6o z%U$nN)Q7`CD#uRA9K-u4*`=;)sOwsKjw;?qNk(1Q@bU4{9>;MkJXeKPnB-7d008^_ z9^yDQW0HaCtU_UN9K(LUZ;x5)GQnyV8g&(fQI=>|1<`H=t5Fz$IY-~cdxbqeKTGAu z<54RA`r`**aJzAfSK-4LNs<`v`Fr2O7)g@!2Ir=Re5+_-LuI9DYOJNLLSaj?iq&kC z(q1N&&HXaLCm-h8IB{xuS3xFIR-Y8+QZ^M^zC>=%`aFH?lu6r2(>v@JGcETC=}Qpy zg-pwRf;$;yY%+-nxi7Q|>zWPEgiOnQp;g$hr#!^8+!w5mB~Pc5-4yxxj5<9GjgUyU zk{RR^OYdf7z0MIwp%jL4O{?^DgnAIg&mfgMIDOi+q*lv*EEd(mLe6 z5y_H$lu~IjP>0-Qf=MFbndIgbhII>@R~Ts+l-zkXRep}DDzP!AMpV|_#ITo$L!aV(H|8kK4j7KVy@}_B|*P4bochq#Ju}EcF e?gCT)6Y76p?&a-c^j_=$0000 Date: Thu, 23 Nov 2023 15:40:35 +0100 Subject: [PATCH 391/432] =?UTF-8?q?ABMs=20with=20Sm=D0=AFt=E2=84=A2=20pred?= =?UTF-8?q?ictive=20targeting=20technology?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- changelog | 6 + .../missile/EntityMissileAntiBallistic.java | 317 +++++++++------ .../entity/missile/EntityMissileBaseNT.java | 1 + .../entity/missile/EntityMissileCustom.java | 2 +- .../container/ContainerMachineRadar.java | 24 -- .../hbm/inventory/gui/GUIMachineRadar.java | 143 ------- .../java/com/hbm/packet/PacketDispatcher.java | 6 - .../com/hbm/packet/TEDrillSoundPacket.java | 62 --- .../java/com/hbm/packet/TEMissilePacket.java | 124 ------ .../java/com/hbm/packet/TERadarPacket.java | 78 ---- .../tileentity/RenderLaunchPadTier1.java | 371 ++++++++---------- .../tileentity/bomb/TileEntityLaunchPad.java | 31 +- .../machine/TileEntityMachineRadar.java | 342 ---------------- .../machine/TileEntityPWRController.java | 153 ++++---- 14 files changed, 480 insertions(+), 1180 deletions(-) delete mode 100644 src/main/java/com/hbm/inventory/container/ContainerMachineRadar.java delete mode 100644 src/main/java/com/hbm/inventory/gui/GUIMachineRadar.java delete mode 100644 src/main/java/com/hbm/packet/TEDrillSoundPacket.java delete mode 100644 src/main/java/com/hbm/packet/TEMissilePacket.java delete mode 100644 src/main/java/com/hbm/packet/TERadarPacket.java delete mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadar.java diff --git a/changelog b/changelog index 67de8712b..8898e8c88 100644 --- a/changelog +++ b/changelog @@ -26,6 +26,12 @@ * Trenchmaster armor is now unbreakable * The arc welder recipe for advanced circuits now uses simple insulator instead of gold dust * The arc welder recipes for enhanced and advanced circuits now use only 100mB of fluid instead of 250mB +* Completely rewrote the missile base code, missiles now accelerate smoothly instead of in increments and use interpolated movement, making them less jittery +* Missiles now have a slightly higher top-speed +* Remodeled the anti-ballistic missile +* Anti-ballistic missiles now use predictive targeting as well as a heightened sensor range of 1,000 blocks (instead of 500) which should make them a lot more effective +* Anti-ballistic missiles accelerate 4x faster than normal missiles and have a 50% higher top-speed +* PWRs that have recently been close to unloaded chunks now have a 40 tick timeframe where they are "frozen", only trying to connect to a fluid network but not doing any fission, this should reduce the amount of meltdowns caused by chunkloading ## Fixed * Fixed thorium bedrock ore using the wrong ore dict key, making it unable to be processed via centrifuge or acidizer diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileAntiBallistic.java b/src/main/java/com/hbm/entity/missile/EntityMissileAntiBallistic.java index 40083b324..8c0ca9511 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileAntiBallistic.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileAntiBallistic.java @@ -1,168 +1,229 @@ package com.hbm.entity.missile; +import java.util.ArrayList; import java.util.List; -import com.hbm.entity.particle.EntitySmokeFX; +import com.hbm.entity.logic.IChunkLoader; +import com.hbm.entity.projectile.EntityThrowableInterp; import com.hbm.explosion.ExplosionLarge; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.machine.TileEntityMachineRadarNT; import api.hbm.entity.IRadarDetectable; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.Entity; -import net.minecraft.init.Blocks; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MathHelper; +import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.Vec3; +import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.world.World; +import net.minecraftforge.common.ForgeChunkManager; +import net.minecraftforge.common.ForgeChunkManager.Ticket; +import net.minecraftforge.common.ForgeChunkManager.Type; -/* - * COME ON - * STEP 1: GET 24 EGGS - * STEP 2: FUCK EVERY EGG - * STEP 3: BLOW UP ALL THE FUCKING EGGS - * AND FROM THE ASHES THE MOTHER OF ALL OMELETTES WILL BE BORN! - */ -public class EntityMissileAntiBallistic extends Entity implements IRadarDetectable { +public class EntityMissileAntiBallistic extends EntityThrowableInterp implements IChunkLoader, IRadarDetectable { - int activationTimer; + private Ticket loaderTicket; + public Entity tracking; + public double velocity; + protected int activationTimer; + + public static double baseSpeed = 1.5D; - public EntityMissileAntiBallistic(World p_i1582_1_) { - super(p_i1582_1_); - } - - @Override - public void onUpdate() { - - if(activationTimer < 40) { - activationTimer++; - - motionY = 1.5D; - - this.setLocationAndAngles(posX + this.motionX, posY + this.motionY, posZ + this.motionZ, 0, 0); - this.rotation(); - - if(!this.worldObj.isRemote && this.posY < 400) - this.worldObj.spawnEntityInWorld(new EntitySmokeFX(this.worldObj, this.posX, this.posY, this.posZ, 0.0, 0.0, 0.0)); - - } else { - - if(activationTimer == 40) { - ExplosionLarge.spawnParticlesRadial(worldObj, posX, posY, posZ, 15); - activationTimer = 100; - } - - for(int i = 0; i < 5; i++) { - - targetMissile(); - - this.setLocationAndAngles(posX + this.motionX, posY + this.motionY, posZ + this.motionZ, 0, 0); - this.rotation(); - - if(!this.worldObj.isRemote && this.posY < 400) - this.worldObj.spawnEntityInWorld(new EntitySmokeFX(this.worldObj, this.posX, this.posY, this.posZ, 0.0, 0.0, 0.0)); - - List list = worldObj.getEntitiesWithinAABBExcludingEntity(null, AxisAlignedBB.getBoundingBox(posX - 5, posY - 5, posZ - 5, posX + 5, posY + 5, posZ + 5)); - - for(Entity e : list) { - if(e instanceof EntityMissileBaseNT || e instanceof EntityMissileCustom) { - ExplosionLarge.explode(worldObj, posX, posY, posZ, 15F, true, false, true); - this.setDead(); - return; - } - } - } - } - - if(this.posY > 2000) - this.setDead(); - - if(this.worldObj.getBlock((int) this.posX, (int) this.posY, (int) this.posZ) != Blocks.air && this.worldObj.getBlock((int) this.posX, (int) this.posY, (int) this.posZ) != Blocks.water && this.worldObj.getBlock((int) this.posX, (int) this.posY, (int) this.posZ) != Blocks.flowing_water) { - - if(!this.worldObj.isRemote) { - ExplosionLarge.explode(worldObj, posX, posY, posZ, 10F, true, true, true); - } - this.setDead(); - return; - } - - } - - protected void rotation() { - float f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - this.rotationYaw = (float) (Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - - for(this.rotationPitch = (float) (Math.atan2(this.motionY, f2) * 180.0D / Math.PI) - 90; this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F) { - ; - } - - while(this.rotationPitch - this.prevRotationPitch >= 180.0F) { - this.prevRotationPitch += 360.0F; - } - - while(this.rotationYaw - this.prevRotationYaw < -180.0F) { - this.prevRotationYaw -= 360.0F; - } - - while(this.rotationYaw - this.prevRotationYaw >= 180.0F) { - this.prevRotationYaw += 360.0F; - } - } - - private void targetMissile() { - - List list = worldObj.getEntitiesWithinAABBExcludingEntity(null, AxisAlignedBB.getBoundingBox(posX - 500, 0, posZ - 500, posX + 500, 5000, posZ + 500)); - - Entity target = null; - double closest = 1000D; - - for(Entity e : list) { - if(e instanceof EntityMissileBaseNT || e instanceof EntityMissileCustom) { - double dis = Math.sqrt(Math.pow(e.posX - posX, 2) + Math.pow(e.posY - posY, 2) + Math.pow(e.posZ - posZ, 2)); - - if(dis < closest) { - closest = dis; - target = e; - } - } - } - - if(target != null) { - - Vec3 vec = Vec3.createVectorHelper(target.posX - posX, target.posY - posY, target.posZ - posZ); - - vec.normalize(); - - this.motionX = vec.xCoord * 0.065D; - this.motionY = vec.yCoord * 0.065D; - this.motionZ = vec.zCoord * 0.065D; - } + public EntityMissileAntiBallistic(World world) { + super(world); + this.setSize(1.5F, 1.5F); + this.motionY = baseSpeed; } @Override protected void entityInit() { - + super.entityInit(); + init(ForgeChunkManager.requestTicket(MainRegistry.instance, worldObj, Type.ENTITY)); } @Override - protected void readEntityFromNBT(NBTTagCompound p_70037_1_) { - + protected double motionMult() { + return velocity; } @Override - protected void writeEntityToNBT(NBTTagCompound p_70014_1_) { + public boolean doesImpactEntities() { + return false; + } + @Override + public void onUpdate() { + super.onUpdate(); + + if(!worldObj.isRemote) { + + if(velocity < 6) velocity += 0.1; + + if(activationTimer < 40) { + activationTimer++; + motionY = baseSpeed; + } else { + Entity prevTracking = this.tracking; + + if(this.tracking == null || this.tracking.isDead) this.targetMissile(); + + if(prevTracking == null && this.tracking != null) { + ExplosionLarge.spawnShock(worldObj, posX, posY, posZ, 24, 3F); + } + + if(this.tracking != null) { + this.aimAtTarget(); + } + } + + if(this.posY > 2000 && (this.tracking == null || this.tracking.isDead)) this.setDead(); + + } else { + + Vec3 vec = Vec3.createVectorHelper(motionX, motionY, motionZ).normalize(); + MainRegistry.proxy.particleControl(posX - vec.xCoord, posY - vec.yCoord, posZ - vec.zCoord, 2); + } + + float f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); + this.rotationYaw = (float) (Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); + for(this.rotationPitch = (float) (Math.atan2(this.motionY, f2) * 180.0D / Math.PI) - 90; this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F); + while(this.rotationPitch - this.prevRotationPitch >= 180.0F) this.prevRotationPitch += 360.0F; + while(this.rotationYaw - this.prevRotationYaw < -180.0F) this.prevRotationYaw -= 360.0F; + while(this.rotationYaw - this.prevRotationYaw >= 180.0F) this.prevRotationYaw += 360.0F; + } + + /** Detects and caches nearby EntityMissileBaseNT */ + protected void targetMissile() { + + Entity closest = null; + double dist = 1_000; + + for(Entity e : TileEntityMachineRadarNT.matchingEntities) { + if(e.dimension != this.dimension) continue; + if(!(e instanceof EntityMissileBaseNT)) continue; + + Vec3 vec = Vec3.createVectorHelper(e.posX - posX, e.posY - posY, e.posZ - posZ); + + if(vec.lengthVector() < dist) { + closest = e; + } + } + + this.tracking = closest; + } + + /** Predictive targeting system */ + protected void aimAtTarget() { + + Vec3 delta = Vec3.createVectorHelper(tracking.posX - posX, tracking.posY - posY, tracking.posZ - posZ); + double intercept = delta.lengthVector() / (this.baseSpeed * this.velocity); + Vec3 predicted = Vec3.createVectorHelper(tracking.posX + (tracking.posX - tracking.lastTickPosX) * intercept, tracking.posY + (tracking.posY - tracking.lastTickPosY) * intercept, tracking.posZ + (tracking.posZ - tracking.lastTickPosZ) * intercept); + Vec3 motion = Vec3.createVectorHelper(predicted.xCoord - posX, predicted.yCoord - posY, predicted.zCoord - posZ).normalize(); + + if(delta.lengthVector() < 10 && activationTimer >= 40) { + ExplosionLarge.explode(worldObj, posX, posY, posZ, 15F, true, false, false); + this.killAndClear(); + } + + this.motionX = motion.xCoord * baseSpeed; + this.motionY = motion.yCoord * baseSpeed; + this.motionZ = motion.zCoord * baseSpeed; + } + + @Override + protected void onImpact(MovingObjectPosition mop) { + if(this.activationTimer >= 40) { + ExplosionLarge.explode(worldObj, posX, posY, posZ, 20F, true, false, false); + this.killAndClear(); + } + } + + @Override + public double getGravityVelocity() { + return 0.0D; + } + + @Override + protected float getAirDrag() { + return 1F; + } + + @Override + protected float getWaterDrag() { + return 1F; + } + + @Override + public void readEntityFromNBT(NBTTagCompound nbt) { + super.readEntityFromNBT(nbt); + this.velocity = nbt.getDouble("veloc"); + } + + @Override + public void writeEntityToNBT(NBTTagCompound nbt) { + super.writeEntityToNBT(nbt); + nbt.setDouble("veloc", this.velocity); + } + + @Override + public void init(Ticket ticket) { + if(!worldObj.isRemote) { + + if(ticket != null) { + + if(loaderTicket == null) { + + loaderTicket = ticket; + loaderTicket.bindEntity(this); + loaderTicket.getModData(); + } + + ForgeChunkManager.forceChunk(loaderTicket, new ChunkCoordIntPair(chunkCoordX, chunkCoordZ)); + } + } + } + + List loadedChunks = new ArrayList(); + + public void loadNeighboringChunks(int newChunkX, int newChunkZ) { + if(!worldObj.isRemote && loaderTicket != null) { + + clearChunkLoader(); + + loadedChunks.clear(); + loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ)); + //loadedChunks.add(new ChunkCoordIntPair(newChunkX + (int) Math.floor((this.posX + this.motionX * this.motionMult()) / 16D), newChunkZ + (int) Math.floor((this.posZ + this.motionZ * this.motionMult()) / 16D))); + + for(ChunkCoordIntPair chunk : loadedChunks) { + ForgeChunkManager.forceChunk(loaderTicket, chunk); + } + } + } + + public void killAndClear() { + this.setDead(); + this.clearChunkLoader(); + } + + public void clearChunkLoader() { + if(!worldObj.isRemote && loaderTicket != null) { + for(ChunkCoordIntPair chunk : loadedChunks) { + ForgeChunkManager.unforceChunk(loaderTicket, chunk); + } + } } @Override @SideOnly(Side.CLIENT) public boolean isInRangeToRenderDist(double distance) { - return distance < 500000; + return true; } @Override public RadarTargetType getTargetType() { return RadarTargetType.MISSILE_AB; } - } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java b/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java index 45a904538..aa45fc7ef 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java @@ -237,6 +237,7 @@ public abstract class EntityMissileBaseNT extends EntityThrowableInterp implemen return 1F; } + @Override public void init(Ticket ticket) { if(!worldObj.isRemote) { diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java b/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java index 65d5b0142..79d7c21c5 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java @@ -229,7 +229,7 @@ public class EntityMissileCustom extends EntityMissileBaseNT implements IChunkLo if(top == PartSize.SIZE_15 && bottom == PartSize.SIZE_20) return RadarTargetType.MISSILE_15_20; if(top == PartSize.SIZE_20 && bottom == PartSize.SIZE_20) return RadarTargetType.MISSILE_20; - return RadarTargetType.PLAYER; + return RadarTargetType.MISSILE_TIER1; } @Override public List getDebris() { return new ArrayList(); } diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineRadar.java b/src/main/java/com/hbm/inventory/container/ContainerMachineRadar.java deleted file mode 100644 index 5599c4f76..000000000 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineRadar.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.hbm.inventory.container; - -import com.hbm.tileentity.machine.TileEntityMachineRadar; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ICrafting; - -public class ContainerMachineRadar extends Container { - - public ContainerMachineRadar(InventoryPlayer invPlayer, TileEntityMachineRadar tedf) { - } - - @Override - public void addCraftingToCrafters(ICrafting crafting) { - super.addCraftingToCrafters(crafting); - } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return true; - } -} diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineRadar.java b/src/main/java/com/hbm/inventory/gui/GUIMachineRadar.java deleted file mode 100644 index 4cd9db8d5..000000000 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineRadar.java +++ /dev/null @@ -1,143 +0,0 @@ -package com.hbm.inventory.gui; - -import java.util.Arrays; - -import org.lwjgl.opengl.GL11; - -import com.hbm.config.WeaponConfig; -import com.hbm.inventory.container.ContainerMachineRadar; -import com.hbm.lib.RefStrings; -import com.hbm.packet.AuxButtonPacket; -import com.hbm.packet.PacketDispatcher; -import com.hbm.tileentity.machine.TileEntityMachineRadar; -import com.hbm.util.I18nUtil; - -import api.hbm.entity.IRadarDetectable.RadarTargetType; -import net.minecraft.client.Minecraft; -import net.minecraft.client.audio.PositionedSoundRecord; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; - -public class GUIMachineRadar extends GuiInfoContainer { - - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/machine/gui_radar.png"); - private TileEntityMachineRadar diFurnace; - - public GUIMachineRadar(InventoryPlayer invPlayer, TileEntityMachineRadar tedf) { - super(new ContainerMachineRadar(invPlayer, tedf)); - diFurnace = tedf; - texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/machine/gui_radar.png"); - - this.xSize = 216; - this.ySize = 234; - } - - @Override - public void drawScreen(int mouseX, int mouseY, float f) { - super.drawScreen(mouseX, mouseY, f); - - this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 221, 200, 7, diFurnace.power, diFurnace.maxPower); - - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 10, guiTop + 98, 8, 8, mouseX, mouseY, I18nUtil.resolveKeyArray("radar.detectMissiles") ); - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 10, guiTop + 108, 8, 8, mouseX, mouseY, I18nUtil.resolveKeyArray("radar.detectPlayers")); - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 10, guiTop + 118, 8, 8, mouseX, mouseY, I18nUtil.resolveKeyArray("radar.smartMode")); - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 10, guiTop + 128, 8, 8, mouseX, mouseY, I18nUtil.resolveKeyArray("radar.redMode")); - - if(!diFurnace.nearbyMissiles.isEmpty()) { - for(int[] m : diFurnace.nearbyMissiles) { - int x = guiLeft + (int)((m[0] - diFurnace.xCoord) / ((double)WeaponConfig.radarRange * 2 + 1) * (200D - 8D)) + 108; - int z = guiTop + (int)((m[1] - diFurnace.zCoord) / ((double)WeaponConfig.radarRange * 2 + 1) * (200D - 8D)) + 117; - - if(mouseX + 4 > x && mouseX - 4 < x && - mouseY + 4 > z && mouseY - 4 < z) { - - - String[] text = new String[] { RadarTargetType.values()[m[2]].name, m[0] + " / " + m[1], "Alt.: " + m[3] }; - - this.func_146283_a(Arrays.asList(text), x, z); - - return; - } - } - } - } - - @Override - protected void mouseClicked(int x, int y, int i) { - super.mouseClicked(x, y, i); - - if(guiLeft -10 <= x && guiLeft + -10 + 8 > x && guiTop + 98 < y && guiTop + 98 + 8 >= y) { - mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); - PacketDispatcher.wrapper.sendToServer(new AuxButtonPacket(diFurnace.xCoord, diFurnace.yCoord, diFurnace.zCoord, 0, 0)); - } - - if(guiLeft -10 <= x && guiLeft + -10 + 8 > x && guiTop + 108 < y && guiTop + 108 + 8 >= y) { - mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); - PacketDispatcher.wrapper.sendToServer(new AuxButtonPacket(diFurnace.xCoord, diFurnace.yCoord, diFurnace.zCoord, 0, 1)); - } - - if(guiLeft -10 <= x && guiLeft + -10 + 8 > x && guiTop + 118 < y && guiTop + 118 + 8 >= y) { - mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); - PacketDispatcher.wrapper.sendToServer(new AuxButtonPacket(diFurnace.xCoord, diFurnace.yCoord, diFurnace.zCoord, 0, 2)); - } - - if(guiLeft -10 <= x && guiLeft + -10 + 8 > x && guiTop + 128 < y && guiTop + 128 + 8 >= y) { - mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); - PacketDispatcher.wrapper.sendToServer(new AuxButtonPacket(diFurnace.xCoord, diFurnace.yCoord, diFurnace.zCoord, 0, 3)); - } - } - - @Override - protected void drawGuiContainerForegroundLayer(int i, int j) { - String name = I18n.format("container.radar"); - - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); - } - - @Override - protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - Minecraft.getMinecraft().getTextureManager().bindTexture(texture); - drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - drawTexturedModalRect(guiLeft - 14, guiTop + 94, 216, 198, 14, 46); - - if(diFurnace.scanMissiles || (diFurnace.jammed && diFurnace.getWorldObj().rand.nextBoolean())) - drawTexturedModalRect(guiLeft - 10, guiTop + 98, 230, 202, 8, 8); - - if(diFurnace.scanPlayers || (diFurnace.jammed && diFurnace.getWorldObj().rand.nextBoolean())) - drawTexturedModalRect(guiLeft - 10, guiTop + 108, 230, 212, 8, 8); - - if(diFurnace.smartMode || (diFurnace.jammed && diFurnace.getWorldObj().rand.nextBoolean())) - drawTexturedModalRect(guiLeft - 10, guiTop + 118, 230, 222, 8, 8); - - if(diFurnace.redMode || (diFurnace.jammed && diFurnace.getWorldObj().rand.nextBoolean())) - drawTexturedModalRect(guiLeft - 10, guiTop + 128, 230, 232, 8, 8); - - if(diFurnace.power > 0) { - int i = (int)diFurnace.getPowerScaled(200); - drawTexturedModalRect(guiLeft + 8, guiTop + 221, 0, 234, i, 16); - } - - if(diFurnace.jammed) { - - for(int i = 0; i < 5; i++) { - for(int j = 0; j < 5; j++) { - drawTexturedModalRect(guiLeft + 8 + i * 40, guiTop + 17 + j * 40, 216, 118 + diFurnace.getWorldObj().rand.nextInt(41), 40, 40); - } - } - - return; - } - - if(!diFurnace.nearbyMissiles.isEmpty()) { - for(int[] m : diFurnace.nearbyMissiles) { - int x = (int)((m[0] - diFurnace.xCoord) / ((double)WeaponConfig.radarRange * 2 + 1) * (200D - 8D)) - 4; - int z = (int)((m[1] - diFurnace.zCoord) / ((double)WeaponConfig.radarRange * 2 + 1) * (200D - 8D)) - 4; - int t = m[2]; - - drawTexturedModalRect(guiLeft + 108 + x, guiTop + 117 + z, 216, 8 * t, 8, 8); - } - } - } -} diff --git a/src/main/java/com/hbm/packet/PacketDispatcher.java b/src/main/java/com/hbm/packet/PacketDispatcher.java index d56e9407a..9414d49a0 100644 --- a/src/main/java/com/hbm/packet/PacketDispatcher.java +++ b/src/main/java/com/hbm/packet/PacketDispatcher.java @@ -19,10 +19,6 @@ public class PacketDispatcher { wrapper.registerMessage(TEStructurePacket.Handler.class, TEStructurePacket.class, i++, Side.CLIENT); //Mining drill rotation for rendering wrapper.registerMessage(TEDrillPacket.Handler.class, TEDrillPacket.class, i++, Side.CLIENT); - //Mining drill torque for sounds - wrapper.registerMessage(TEDrillSoundPacket.Handler.class, TEDrillSoundPacket.class, i++, Side.CLIENT); - //Missile type for rendering - wrapper.registerMessage(TEMissilePacket.Handler.class, TEMissilePacket.class, i++, Side.CLIENT); //Fluid packet for GUI wrapper.registerMessage(TEFluidPacket.Handler.class, TEFluidPacket.class, i++, Side.CLIENT); //Sound packet that keeps client and server separated @@ -35,8 +31,6 @@ public class PacketDispatcher { wrapper.registerMessage(TESirenPacket.Handler.class, TESirenPacket.class, i++, Side.CLIENT); //Signals server to change ItemStacks wrapper.registerMessage(ItemDesignatorPacket.Handler.class, ItemDesignatorPacket.class, i++, Side.SERVER); - //Siren packet for looped sounds - wrapper.registerMessage(TERadarPacket.Handler.class, TERadarPacket.class, i++, Side.CLIENT); //Signals server to perform orbital strike, among other things wrapper.registerMessage(SatLaserPacket.Handler.class, SatLaserPacket.class, i++, Side.SERVER); //Universal package for sending small info packs back to server diff --git a/src/main/java/com/hbm/packet/TEDrillSoundPacket.java b/src/main/java/com/hbm/packet/TEDrillSoundPacket.java deleted file mode 100644 index 5e8ba4a6c..000000000 --- a/src/main/java/com/hbm/packet/TEDrillSoundPacket.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.hbm.packet; - -import com.hbm.tileentity.machine.TileEntityMachineMiningDrill; - -import cpw.mods.fml.common.network.simpleimpl.IMessage; -import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; -import cpw.mods.fml.common.network.simpleimpl.MessageContext; -import io.netty.buffer.ByteBuf; -import net.minecraft.client.Minecraft; -import net.minecraft.tileentity.TileEntity; - -public class TEDrillSoundPacket implements IMessage { - - int x; - int y; - int z; - float spin; - - public TEDrillSoundPacket() - { - - } - - public TEDrillSoundPacket(int x, int y, int z, float spin) - { - this.x = x; - this.y = y; - this.z = z; - this.spin = spin; - } - - @Override - public void fromBytes(ByteBuf buf) { - x = buf.readInt(); - y = buf.readInt(); - z = buf.readInt(); - spin = buf.readFloat(); - } - - @Override - public void toBytes(ByteBuf buf) { - buf.writeInt(x); - buf.writeInt(y); - buf.writeInt(z); - buf.writeFloat(spin); - } - - public static class Handler implements IMessageHandler { - - @Override - public IMessage onMessage(TEDrillSoundPacket m, MessageContext ctx) { - TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(m.x, m.y, m.z); - - if (te != null && te instanceof TileEntityMachineMiningDrill) { - - TileEntityMachineMiningDrill gen = (TileEntityMachineMiningDrill) te; - gen.torque = m.spin; - } - return null; - } - } -} diff --git a/src/main/java/com/hbm/packet/TEMissilePacket.java b/src/main/java/com/hbm/packet/TEMissilePacket.java deleted file mode 100644 index 86933573a..000000000 --- a/src/main/java/com/hbm/packet/TEMissilePacket.java +++ /dev/null @@ -1,124 +0,0 @@ -package com.hbm.packet; - -import com.hbm.interfaces.Spaghetti; -import com.hbm.items.ModItems; -import com.hbm.tileentity.bomb.TileEntityLaunchPad; - -import cpw.mods.fml.common.network.simpleimpl.IMessage; -import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; -import cpw.mods.fml.common.network.simpleimpl.MessageContext; -import io.netty.buffer.ByteBuf; -import net.minecraft.client.Minecraft; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; - -public class TEMissilePacket implements IMessage { - - int x; - int y; - int z; - int type; - - public TEMissilePacket() { } - - @Spaghetti("die") - public TEMissilePacket(int x, int y, int z, ItemStack stack) { - - this.x = x; - this.y = y; - this.z = z; - this.type = 0; - if(stack != null) { - if(stack.getItem() == ModItems.missile_generic) - type = 1; - if(stack.getItem() == ModItems.missile_strong) - type = 2; - if(stack.getItem() == ModItems.missile_cluster) - type = 3; - if(stack.getItem() == ModItems.missile_nuclear) - type = 4; - if(stack.getItem() == ModItems.missile_incendiary) - type = 5; - if(stack.getItem() == ModItems.missile_buster) - type = 6; - if(stack.getItem() == ModItems.missile_incendiary_strong) - type = 7; - if(stack.getItem() == ModItems.missile_cluster_strong) - type = 8; - if(stack.getItem() == ModItems.missile_buster_strong) - type = 9; - if(stack.getItem() == ModItems.missile_burst) - type = 10; - if(stack.getItem() == ModItems.missile_inferno) - type = 11; - if(stack.getItem() == ModItems.missile_rain) - type = 12; - if(stack.getItem() == ModItems.missile_drill) - type = 13; - if(stack.getItem() == ModItems.missile_endo) - type = 14; - if(stack.getItem() == ModItems.missile_exo) - type = 15; - if(stack.getItem() == ModItems.missile_nuclear_cluster) - type = 16; - if(stack.getItem() == ModItems.missile_doomsday) - type = 17; - if(stack.getItem() == ModItems.missile_taint) - type = 18; - if(stack.getItem() == ModItems.missile_micro) - type = 19; - if(stack.getItem() == ModItems.missile_carrier) - type = 20; - if(stack.getItem() == ModItems.missile_anti_ballistic) - type = 21; - if(stack.getItem() == ModItems.missile_bhole) - type = 22; - if(stack.getItem() == ModItems.missile_schrabidium) - type = 23; - if(stack.getItem() == ModItems.missile_emp) - type = 24; - if(stack.getItem() == ModItems.missile_emp_strong) - type = 25; - if(stack.getItem() == ModItems.missile_volcano) - type = 26; - if(stack.getItem() == ModItems.missile_shuttle) - type = 27; - - } - } - - @Override - public void fromBytes(ByteBuf buf) { - x = buf.readInt(); - y = buf.readInt(); - z = buf.readInt(); - type = buf.readInt(); - } - - @Override - public void toBytes(ByteBuf buf) { - buf.writeInt(x); - buf.writeInt(y); - buf.writeInt(z); - buf.writeInt(type); - } - - public static class Handler implements IMessageHandler { - - @Override - public IMessage onMessage(TEMissilePacket m, MessageContext ctx) { - - try { - TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(m.x, m.y, m.z); - - if (te != null && te instanceof TileEntityLaunchPad) { - - TileEntityLaunchPad gen = (TileEntityLaunchPad)te; - gen.state = m.type; - } - } catch(Exception e) { } - - return null; - } - } -} diff --git a/src/main/java/com/hbm/packet/TERadarPacket.java b/src/main/java/com/hbm/packet/TERadarPacket.java deleted file mode 100644 index 661438627..000000000 --- a/src/main/java/com/hbm/packet/TERadarPacket.java +++ /dev/null @@ -1,78 +0,0 @@ -package com.hbm.packet; - -import com.hbm.tileentity.machine.TileEntityMachineRadar; - -import cpw.mods.fml.common.network.simpleimpl.IMessage; -import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; -import cpw.mods.fml.common.network.simpleimpl.MessageContext; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import io.netty.buffer.ByteBuf; -import net.minecraft.client.Minecraft; -import net.minecraft.tileentity.TileEntity; - -public class TERadarPacket implements IMessage { - - int x; - int y; - int z; - int conX; - int conY; - int conZ; - int alt; - - public TERadarPacket() { - - } - - public TERadarPacket(int x, int y, int z, int conX, int conY, int conZ, int alt) { - this.x = x; - this.y = y; - this.z = z; - this.conX = conX; - this.conY = conY; - this.conZ = conZ; - this.alt = alt; - } - - @Override - public void fromBytes(ByteBuf buf) { - x = buf.readInt(); - y = buf.readInt(); - z = buf.readInt(); - conX = buf.readInt(); - conY = buf.readInt(); - conZ = buf.readInt(); - alt = buf.readInt(); - } - - @Override - public void toBytes(ByteBuf buf) { - buf.writeInt(x); - buf.writeInt(y); - buf.writeInt(z); - buf.writeInt(conX); - buf.writeInt(conY); - buf.writeInt(conZ); - buf.writeInt(alt); - } - - public static class Handler implements IMessageHandler { - - @Override - @SideOnly(Side.CLIENT) - public IMessage onMessage(TERadarPacket m, MessageContext ctx) { - TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(m.x, m.y, m.z); - - try { - if (te != null && te instanceof TileEntityMachineRadar) { - - TileEntityMachineRadar radar = (TileEntityMachineRadar) te; - radar.nearbyMissiles.add(new int[]{m.conX, m.conY, m.conZ, m.alt}); - } - } catch (Exception x) { - } - return null; - } - } -} diff --git a/src/main/java/com/hbm/render/tileentity/RenderLaunchPadTier1.java b/src/main/java/com/hbm/render/tileentity/RenderLaunchPadTier1.java index fe1adcf1e..5ccfc1900 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderLaunchPadTier1.java +++ b/src/main/java/com/hbm/render/tileentity/RenderLaunchPadTier1.java @@ -2,213 +2,190 @@ package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; +import com.hbm.items.ModItems; import com.hbm.main.ResourceManager; import com.hbm.tileentity.bomb.TileEntityLaunchPad; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; public class RenderLaunchPadTier1 extends TileEntitySpecialRenderer { - @Override - public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) - { - GL11.glPushMatrix(); - GL11.glTranslated(x + 0.5D, y, z + 0.5D); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - - bindTexture(ResourceManager.missile_pad_tex); - ResourceManager.missile_pad.renderAll(); + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glDisable(GL11.GL_CULL_FACE); - int state = 0; - - if(tileEntity instanceof TileEntityLaunchPad) - state = ((TileEntityLaunchPad)tileEntity).state; - - GL11.glTranslated(0, 1, 0); - - if(state == 1) - { - GL11.glScalef(1.0F, 1.0F, 1.0F); - bindTexture(ResourceManager.missileV2_HE_tex); - ResourceManager.missileV2.renderAll(); - } - if(state == 2) - { - GL11.glScalef(1.5F, 1.5F, 1.5F); - bindTexture(ResourceManager.missileStrong_HE_tex); - ResourceManager.missileStrong.renderAll(); - } - if(state == 3) - { - GL11.glScalef(1.0F, 1.0F, 1.0F); - bindTexture(ResourceManager.missileV2_CL_tex); - ResourceManager.missileV2.renderAll(); - } - if(state == 4) - { - GL11.glScalef(1.5F, 1.5F, 1.5F); - bindTexture(ResourceManager.missileNuclear_tex); - ResourceManager.missileNuclear.renderAll(); - } - if(state == 5) - { - GL11.glScalef(1.0F, 1.0F, 1.0F); - bindTexture(ResourceManager.missileV2_IN_tex); - ResourceManager.missileV2.renderAll(); - } - if(state == 6) - { - GL11.glScalef(1.0F, 1.0F, 1.0F); - bindTexture(ResourceManager.missileV2_BU_tex); - ResourceManager.missileV2.renderAll(); - } - if(state == 7) - { - GL11.glScalef(1.5F, 1.5F, 1.5F); - bindTexture(ResourceManager.missileStrong_IN_tex); - ResourceManager.missileStrong.renderAll(); - } - if(state == 8) - { - GL11.glScalef(1.5F, 1.5F, 1.5F); - bindTexture(ResourceManager.missileStrong_CL_tex); - ResourceManager.missileStrong.renderAll(); - } - if(state == 9) - { - GL11.glScalef(1.5F, 1.5F, 1.5F); - bindTexture(ResourceManager.missileStrong_BU_tex); - ResourceManager.missileStrong.renderAll(); - } - if(state == 10) - { - GL11.glScalef(2.0F, 2.0F, 2.0F); - bindTexture(ResourceManager.missileHuge_HE_tex); - ResourceManager.missileHuge.renderAll(); - } - if(state == 11) - { - GL11.glScalef(2.0F, 2.0F, 2.0F); - bindTexture(ResourceManager.missileHuge_IN_tex); - ResourceManager.missileHuge.renderAll(); - } - if(state == 12) - { - GL11.glScalef(2.0F, 2.0F, 2.0F); - bindTexture(ResourceManager.missileHuge_CL_tex); - ResourceManager.missileHuge.renderAll(); - } - if(state == 13) - { - GL11.glScalef(2.0F, 2.0F, 2.0F); - bindTexture(ResourceManager.missileHuge_BU_tex); - ResourceManager.missileHuge.renderAll(); - } - if(state == 14) - { - GL11.glScalef(1.5F, 1.5F, 1.5F); - bindTexture(ResourceManager.missileEndo_tex); - ResourceManager.missileThermo.renderAll(); - } - if(state == 15) - { - GL11.glScalef(1.5F, 1.5F, 1.5F); - bindTexture(ResourceManager.missileExo_tex); - ResourceManager.missileThermo.renderAll(); - } - if(state == 16) - { - GL11.glScalef(1.5F, 1.5F, 1.5F); - bindTexture(ResourceManager.missileMIRV_tex); - ResourceManager.missileNuclear.renderAll(); - } - if(state == 17) - { - GL11.glScalef(2F, 2F, 2F); - bindTexture(ResourceManager.missileDoomsday_tex); - ResourceManager.missileDoomsday.renderAll(); - } - if(state == 18) - { - GL11.glScalef(2F, 2F, 2F); - bindTexture(ResourceManager.missileTaint_tex); - ResourceManager.missileTaint.renderAll(); - } - if(state == 19) - { - GL11.glScalef(2F, 2F, 2F); - bindTexture(ResourceManager.missileMicro_tex); - ResourceManager.missileTaint.renderAll(); - } - if(state == 20) - { - GL11.glScalef(2F, 2F, 2F); - bindTexture(ResourceManager.missileCarrier_tex); - ResourceManager.missileCarrier.renderAll(); - GL11.glTranslated(0.0D, 0.5D, 0.0D); - GL11.glTranslated(1.25D, 0.0D, 0.0D); - bindTexture(ResourceManager.missileBooster_tex); - ResourceManager.missileBooster.renderAll(); - GL11.glTranslated(-2.5D, 0.0D, 0.0D); - ResourceManager.missileBooster.renderAll(); - GL11.glTranslated(1.25D, 0.0D, 0.0D); - GL11.glTranslated(0.0D, 0.0D, 1.25D); - ResourceManager.missileBooster.renderAll(); - GL11.glTranslated(0.0D, 0.0D, -2.5D); - ResourceManager.missileBooster.renderAll(); - GL11.glTranslated(0.0D, 0.0D, 1.25D); - } - if(state == 21) - { - GL11.glScalef(1.0F, 1.0F, 1.0F); - bindTexture(ResourceManager.missileAA_tex); - GL11.glShadeModel(GL11.GL_SMOOTH); - ResourceManager.missileABM.renderAll(); - GL11.glShadeModel(GL11.GL_FLAT); - } - if(state == 22) - { - GL11.glScalef(2F, 2F, 2F); - bindTexture(ResourceManager.missileMicroBHole_tex); - ResourceManager.missileTaint.renderAll(); - } - if(state == 23) - { - GL11.glScalef(2F, 2F, 2F); - bindTexture(ResourceManager.missileMicroSchrab_tex); - ResourceManager.missileTaint.renderAll(); - } - if(state == 24) - { - GL11.glScalef(2F, 2F, 2F); - bindTexture(ResourceManager.missileMicroEMP_tex); - ResourceManager.missileTaint.renderAll(); - } - if(state == 25) - { - GL11.glScalef(1.5F, 1.5F, 1.5F); - bindTexture(ResourceManager.missileStrong_EMP_tex); - ResourceManager.missileStrong.renderAll(); - } - if(state == 26) - { - GL11.glScalef(1.5F, 1.5F, 1.5F); - bindTexture(ResourceManager.missileVolcano_tex); - ResourceManager.missileNuclear.renderAll(); - } - if(state == 27) - { - GL11.glScalef(1.0F, 1.0F, 1.0F); - bindTexture(ResourceManager.missileShuttle_tex); - ResourceManager.missileShuttle.renderAll(); - } + bindTexture(ResourceManager.missile_pad_tex); + ResourceManager.missile_pad.renderAll(); + + GL11.glDisable(GL11.GL_CULL_FACE); + + if(tileEntity instanceof TileEntityLaunchPad) { + ItemStack toRender = ((TileEntityLaunchPad) tileEntity).toRender; - GL11.glEnable(GL11.GL_CULL_FACE); + if(toRender != null) { + GL11.glTranslated(0, 1, 0); + + //TODO: add a registry for missile rendering to be reused here and for the entity renderer + if(toRender.getItem() == ModItems.missile_generic) { + GL11.glScalef(1.0F, 1.0F, 1.0F); + bindTexture(ResourceManager.missileV2_HE_tex); + ResourceManager.missileV2.renderAll(); + } + if(toRender.getItem() == ModItems.missile_strong) { + GL11.glScalef(1.5F, 1.5F, 1.5F); + bindTexture(ResourceManager.missileStrong_HE_tex); + ResourceManager.missileStrong.renderAll(); + } + if(toRender.getItem() == ModItems.missile_cluster) { + GL11.glScalef(1.0F, 1.0F, 1.0F); + bindTexture(ResourceManager.missileV2_CL_tex); + ResourceManager.missileV2.renderAll(); + } + if(toRender.getItem() == ModItems.missile_nuclear) { + GL11.glScalef(1.5F, 1.5F, 1.5F); + bindTexture(ResourceManager.missileNuclear_tex); + ResourceManager.missileNuclear.renderAll(); + } + if(toRender.getItem() == ModItems.missile_incendiary) { + GL11.glScalef(1.0F, 1.0F, 1.0F); + bindTexture(ResourceManager.missileV2_IN_tex); + ResourceManager.missileV2.renderAll(); + } + if(toRender.getItem() == ModItems.missile_buster) { + GL11.glScalef(1.0F, 1.0F, 1.0F); + bindTexture(ResourceManager.missileV2_BU_tex); + ResourceManager.missileV2.renderAll(); + } + if(toRender.getItem() == ModItems.missile_incendiary_strong) { + GL11.glScalef(1.5F, 1.5F, 1.5F); + bindTexture(ResourceManager.missileStrong_IN_tex); + ResourceManager.missileStrong.renderAll(); + } + if(toRender.getItem() == ModItems.missile_cluster_strong) { + GL11.glScalef(1.5F, 1.5F, 1.5F); + bindTexture(ResourceManager.missileStrong_CL_tex); + ResourceManager.missileStrong.renderAll(); + } + if(toRender.getItem() == ModItems.missile_buster_strong) { + GL11.glScalef(1.5F, 1.5F, 1.5F); + bindTexture(ResourceManager.missileStrong_BU_tex); + ResourceManager.missileStrong.renderAll(); + } + if(toRender.getItem() == ModItems.missile_burst) { + GL11.glScalef(2.0F, 2.0F, 2.0F); + bindTexture(ResourceManager.missileHuge_HE_tex); + ResourceManager.missileHuge.renderAll(); + } + if(toRender.getItem() == ModItems.missile_inferno) { + GL11.glScalef(2.0F, 2.0F, 2.0F); + bindTexture(ResourceManager.missileHuge_IN_tex); + ResourceManager.missileHuge.renderAll(); + } + if(toRender.getItem() == ModItems.missile_rain) { + GL11.glScalef(2.0F, 2.0F, 2.0F); + bindTexture(ResourceManager.missileHuge_CL_tex); + ResourceManager.missileHuge.renderAll(); + } + if(toRender.getItem() == ModItems.missile_drill) { + GL11.glScalef(2.0F, 2.0F, 2.0F); + bindTexture(ResourceManager.missileHuge_BU_tex); + ResourceManager.missileHuge.renderAll(); + } + if(toRender.getItem() == ModItems.missile_endo) { + GL11.glScalef(1.5F, 1.5F, 1.5F); + bindTexture(ResourceManager.missileEndo_tex); + ResourceManager.missileThermo.renderAll(); + } + if(toRender.getItem() == ModItems.missile_exo) { + GL11.glScalef(1.5F, 1.5F, 1.5F); + bindTexture(ResourceManager.missileExo_tex); + ResourceManager.missileThermo.renderAll(); + } + if(toRender.getItem() == ModItems.missile_nuclear_cluster) { + GL11.glScalef(1.5F, 1.5F, 1.5F); + bindTexture(ResourceManager.missileMIRV_tex); + ResourceManager.missileNuclear.renderAll(); + } + if(toRender.getItem() == ModItems.missile_doomsday) { + GL11.glScalef(2F, 2F, 2F); + bindTexture(ResourceManager.missileDoomsday_tex); + ResourceManager.missileDoomsday.renderAll(); + } + if(toRender.getItem() == ModItems.missile_taint) { + GL11.glScalef(2F, 2F, 2F); + bindTexture(ResourceManager.missileTaint_tex); + ResourceManager.missileTaint.renderAll(); + } + if(toRender.getItem() == ModItems.missile_micro) { + GL11.glScalef(2F, 2F, 2F); + bindTexture(ResourceManager.missileMicro_tex); + ResourceManager.missileTaint.renderAll(); + } + if(toRender.getItem() == ModItems.missile_carrier) { + GL11.glScalef(2F, 2F, 2F); + bindTexture(ResourceManager.missileCarrier_tex); + ResourceManager.missileCarrier.renderAll(); + GL11.glTranslated(0.0D, 0.5D, 0.0D); + GL11.glTranslated(1.25D, 0.0D, 0.0D); + bindTexture(ResourceManager.missileBooster_tex); + ResourceManager.missileBooster.renderAll(); + GL11.glTranslated(-2.5D, 0.0D, 0.0D); + ResourceManager.missileBooster.renderAll(); + GL11.glTranslated(1.25D, 0.0D, 0.0D); + GL11.glTranslated(0.0D, 0.0D, 1.25D); + ResourceManager.missileBooster.renderAll(); + GL11.glTranslated(0.0D, 0.0D, -2.5D); + ResourceManager.missileBooster.renderAll(); + GL11.glTranslated(0.0D, 0.0D, 1.25D); + } + if(toRender.getItem() == ModItems.missile_anti_ballistic) { + GL11.glScalef(1.0F, 1.0F, 1.0F); + bindTexture(ResourceManager.missileAA_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.missileABM.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } + if(toRender.getItem() == ModItems.missile_bhole) { + GL11.glScalef(2F, 2F, 2F); + bindTexture(ResourceManager.missileMicroBHole_tex); + ResourceManager.missileTaint.renderAll(); + } + if(toRender.getItem() == ModItems.missile_schrabidium) { + GL11.glScalef(2F, 2F, 2F); + bindTexture(ResourceManager.missileMicroSchrab_tex); + ResourceManager.missileTaint.renderAll(); + } + if(toRender.getItem() == ModItems.missile_emp) { + GL11.glScalef(2F, 2F, 2F); + bindTexture(ResourceManager.missileMicroEMP_tex); + ResourceManager.missileTaint.renderAll(); + } + if(toRender.getItem() == ModItems.missile_emp_strong) { + GL11.glScalef(1.5F, 1.5F, 1.5F); + bindTexture(ResourceManager.missileStrong_EMP_tex); + ResourceManager.missileStrong.renderAll(); + } + if(toRender.getItem() == ModItems.missile_volcano) { + GL11.glScalef(1.5F, 1.5F, 1.5F); + bindTexture(ResourceManager.missileVolcano_tex); + ResourceManager.missileNuclear.renderAll(); + } + if(toRender.getItem() == ModItems.missile_shuttle) { + GL11.glScalef(1.0F, 1.0F, 1.0F); + bindTexture(ResourceManager.missileShuttle_tex); + ResourceManager.missileShuttle.renderAll(); + } + } + } - GL11.glPopMatrix(); - } + GL11.glEnable(GL11.GL_CULL_FACE); + + GL11.glPopMatrix(); + } } diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java index 7781511f5..5ad95d374 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java @@ -5,16 +5,13 @@ import com.hbm.blocks.bomb.LaunchPad; import com.hbm.inventory.container.ContainerLaunchPadTier1; import com.hbm.inventory.gui.GUILaunchPadTier1; import com.hbm.lib.Library; -import com.hbm.packet.AuxElectricityPacket; -import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.TEMissilePacket; import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.INBTPacketReceiver; import com.hbm.tileentity.TileEntityLoadedBase; import api.hbm.energy.IEnergyUser; import api.hbm.item.IDesignatorItem; import cpw.mods.fml.common.Optional; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import li.cil.oc.api.machine.Arguments; @@ -25,6 +22,7 @@ import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.ISidedInventory; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; @@ -34,9 +32,10 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityLaunchPad extends TileEntityLoadedBase implements ISidedInventory, IEnergyUser, SimpleComponent, IGUIProvider { +public class TileEntityLaunchPad extends TileEntityLoadedBase implements ISidedInventory, INBTPacketReceiver, IEnergyUser, SimpleComponent, IGUIProvider { public ItemStack slots[]; + public ItemStack toRender; public long power; public final long maxPower = 100000; @@ -44,7 +43,6 @@ public class TileEntityLaunchPad extends TileEntityLoadedBase implements ISidedI private static final int[] slots_top = new int[] {0}; private static final int[] slots_bottom = new int[] { 0, 1, 2}; private static final int[] slots_side = new int[] {0}; - public int state = 0; private String customName; public TileEntityLaunchPad() { @@ -209,8 +207,25 @@ public class TileEntityLaunchPad extends TileEntityLoadedBase implements ISidedI power = Library.chargeTEFromItems(slots, 2, power, maxPower); this.updateConnections(); - PacketDispatcher.wrapper.sendToAllAround(new TEMissilePacket(xCoord, yCoord, zCoord, slots[0]), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 250)); - PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); + NBTTagCompound data = new NBTTagCompound(); + data.setLong("power", power); + if(slots[0] != null) { + data.setInteger("id", Item.getIdFromItem(slots[0].getItem())); + data.setShort("meta", (short) slots[0].getItemDamage()); + } + + INBTPacketReceiver.networkPack(this, data, 250); + } + } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + this.power = nbt.getLong("power"); + + if(nbt.hasKey("id")) { + this.toRender = new ItemStack(Item.getItemById(nbt.getInteger("id")), 1, nbt.getShort("meta")); + } else { + this.toRender = null; } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadar.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadar.java deleted file mode 100644 index e543f4fd5..000000000 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadar.java +++ /dev/null @@ -1,342 +0,0 @@ -package com.hbm.tileentity.machine; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.blocks.ModBlocks; -import com.hbm.config.WeaponConfig; -import com.hbm.extprop.HbmLivingProps; -import com.hbm.inventory.container.ContainerMachineRadar; -import com.hbm.inventory.gui.GUIMachineRadar; -import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityTickingBase; - -import api.hbm.energy.IEnergyUser; -import api.hbm.entity.IRadarDetectable; -import api.hbm.entity.IRadarDetectable.RadarTargetType; -import cpw.mods.fml.common.Optional; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.World; -import li.cil.oc.api.machine.Arguments; -import li.cil.oc.api.machine.Callback; -import li.cil.oc.api.machine.Context; -import li.cil.oc.api.network.SimpleComponent; - -@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityMachineRadar extends TileEntityTickingBase implements IEnergyUser, IGUIProvider, SimpleComponent { - - public List detectedEntities = new ArrayList(); - public List nearbyMissiles = new ArrayList(); - int pingTimer = 0; - int lastPower; - final static int maxTimer = 80; - - public boolean scanMissiles = true; - public boolean scanPlayers = true; - public boolean smartMode = true; - public boolean redMode = true; - - public boolean jammed = false; - - public float prevRotation; - public float rotation; - - public long power = 0; - public static final int maxPower = 100000; - - @Override - public String getInventoryName() { - return ""; - } - - @Override - public void updateEntity() { - - if(this.yCoord < WeaponConfig.radarAltitude) return; - - if(!worldObj.isRemote) { - - this.updateStandardConnections(worldObj, xCoord, yCoord, zCoord); - - nearbyMissiles.clear(); - - if(power > 0) { - allocateMissiles(); - power -= 500; - - if(power < 0) power = 0; - } - - if(this.lastPower != getRedPower()) worldObj.notifyBlocksOfNeighborChange(xCoord, yCoord, zCoord, getBlockType()); - - sendMissileData(); - lastPower = getRedPower(); - - if(worldObj.getBlock(xCoord, yCoord - 1, zCoord) != ModBlocks.muffler) { - - pingTimer++; - - if(power > 0 && pingTimer >= maxTimer) { - this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "hbm:block.sonarPing", 5.0F, 1.0F); - pingTimer = 0; - } - } - } else { - prevRotation = rotation; - if(power > 0) rotation += 5F; - - if(rotation >= 360) { - rotation -= 360F; - prevRotation -= 360F; - } - } - } - - public void handleButtonPacket(int value, int meta) { - - switch(meta) { - case 0: this.scanMissiles = !this.scanMissiles; break; - case 1: this.scanPlayers = !this.scanPlayers; break; - case 2: this.smartMode = !this.smartMode; break; - case 3: this.redMode = !this.redMode; break; - } - } - - private void allocateMissiles() { - - nearbyMissiles.clear(); - detectedEntities.clear(); - jammed = false; - - List list = worldObj.getEntitiesWithinAABBExcludingEntity(null, AxisAlignedBB.getBoundingBox(xCoord + 0.5 - WeaponConfig.radarRange, 0, zCoord + 0.5 - WeaponConfig.radarRange, xCoord + 0.5 + WeaponConfig.radarRange, 5000, zCoord + 0.5 + WeaponConfig.radarRange)); - - for(Entity e : list) { - - if(e.posY < yCoord + WeaponConfig.radarBuffer) - continue; - - if(e instanceof EntityLivingBase && HbmLivingProps.getDigamma((EntityLivingBase) e) > 0.001) { - this.jammed = true; - nearbyMissiles.clear(); - detectedEntities.clear(); - return; - } - - if(e instanceof EntityPlayer && this.scanPlayers) { - nearbyMissiles.add(new int[] { (int)e.posX, (int)e.posZ, RadarTargetType.PLAYER.ordinal(), (int)e.posY }); - detectedEntities.add(e); - } - - if(e instanceof IRadarDetectable && this.scanMissiles) { - nearbyMissiles.add(new int[] { (int)e.posX, (int)e.posZ, ((IRadarDetectable)e).getTargetType().ordinal(), (int)e.posY }); - - if(!this.smartMode || e.motionY <= 0) - detectedEntities.add(e); - } - } - } - - public int getRedPower() { - - if(!detectedEntities.isEmpty()) { - - /// PROXIMITY /// - if(redMode) { - - double maxRange = WeaponConfig.radarRange * Math.sqrt(2D); - - int power = 0; - - for(int i = 0; i < detectedEntities.size(); i++) { - - Entity e = detectedEntities.get(i); - double dist = Math.sqrt(Math.pow(e.posX - xCoord, 2) + Math.pow(e.posZ - zCoord, 2)); - int p = 15 - (int)Math.floor(dist / maxRange * 15); - - if(p > power) - power = p; - } - - return power; - - /// TIER /// - } else { - - int power = 0; - - for(int i = 0; i < nearbyMissiles.size(); i++) { - - if(nearbyMissiles.get(i)[2] + 1 > power) { - power = nearbyMissiles.get(i)[2] + 1; - } - } - - return power; - } - } - - return 0; - } - - private void sendMissileData() { - - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", power); - data.setBoolean("scanMissiles", scanMissiles); - data.setBoolean("scanPlayers", scanPlayers); - data.setBoolean("smartMode", smartMode); - data.setBoolean("redMode", redMode); - data.setBoolean("jammed", jammed); - data.setInteger("count", this.nearbyMissiles.size()); - - for(int i = 0; i < this.nearbyMissiles.size(); i++) { - data.setInteger("x" + i, this.nearbyMissiles.get(i)[0]); - data.setInteger("z" + i, this.nearbyMissiles.get(i)[1]); - data.setInteger("type" + i, this.nearbyMissiles.get(i)[2]); - data.setInteger("y" + i, this.nearbyMissiles.get(i)[3]); - } - - this.networkPack(data, 15); - } - - public void networkUnpack(NBTTagCompound data) { - - this.nearbyMissiles.clear(); - this.power = data.getLong("power"); - this.scanMissiles = data.getBoolean("scanMissiles"); - this.scanPlayers = data.getBoolean("scanPlayers"); - this.smartMode = data.getBoolean("smartMode"); - this.redMode = data.getBoolean("redMode"); - this.jammed = data.getBoolean("jammed"); - - int count = data.getInteger("count"); - - for(int i = 0; i < count; i++) { - - int x = data.getInteger("x" + i); - int z = data.getInteger("z" + i); - int type = data.getInteger("type" + i); - int y = data.getInteger("y" + i); - - this.nearbyMissiles.add(new int[] {x, z, type, y}); - } - } - - public long getPowerScaled(long i) { - return (power * i) / maxPower; - } - - @Override - public void setPower(long i) { - power = i; - } - - @Override - public long getPower() { - return power; - } - - @Override - public long getMaxPower() { - return maxPower; - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - this.power = nbt.getLong("power"); - this.scanMissiles = nbt.getBoolean("scanMissiles"); - this.scanPlayers = nbt.getBoolean("scanPlayers"); - this.smartMode = nbt.getBoolean("smartMode"); - this.redMode = nbt.getBoolean("redMode"); - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - nbt.setLong("power", power); - nbt.setBoolean("scanMissiles", scanMissiles); - nbt.setBoolean("scanPlayers", scanPlayers); - nbt.setBoolean("smartMode", smartMode); - nbt.setBoolean("redMode", redMode); - } - - @Override - public AxisAlignedBB getRenderBoundingBox() { - return TileEntity.INFINITE_EXTENT_AABB; - } - - @Override - @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { - return 65536.0D; - } - - // do some opencomputer stuff - - @Override - public String getComponentName() { - return "ntm_radar"; - } - - @Callback(direct = true, limit = 8) - @Optional.Method(modid = "OpenComputers") - public Object[] getEnergyInfo(Context context, Arguments args) { - return new Object[] {getPower(), getMaxPower()}; - } - - @Callback(direct = true, limit = 8) - @Optional.Method(modid = "OpenComputers") - public Object[] isJammed(Context context, Arguments args) { - return new Object[] {jammed}; - } - - @Callback(direct = true, limit = 8) - @Optional.Method(modid = "OpenComputers") - public Object[] getEntities(Context context, Arguments args) { //fuck fuck fuck - if(!jammed) { - List list = new ArrayList(); - list.add(detectedEntities.size()); // small header of how many entities in the list - for (Entity e : detectedEntities) { - list.add(e.posX); // positions - list.add(e.posY); - list.add(e.posZ); - list.add(e.motionX); - list.add(e.motionY); - list.add(e.motionZ); - list.add(e.rotationYaw); // just do rotation so you can calculate DOT - list.add(Math.sqrt(Math.pow(e.posX - xCoord, 2) + Math.pow(e.posZ - zCoord, 2))); // distance - boolean player = e instanceof EntityPlayer; - list.add(player); // isPlayer boolean - if(!player) // missile tier - list.add(((IRadarDetectable) e).getTargetType().ordinal()); - else // player name (hopefully) - list.add(((EntityPlayer) e).getDisplayName()); - } - return new Object[] {list}; // long-ass list (like 9 entries per entity) - } else { - return new Object[] {"Radar jammed!"}; - } - } - - @Override - public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new ContainerMachineRadar(player.inventory, this); - } - - @Override - @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GUIMachineRadar(player.inventory, this); - } -} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java index 8d1568b2d..2fa44fcf8 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java @@ -61,6 +61,7 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG public int channelCount; public int sourceCount; + public int unloadDelay = 0; public boolean assembled; private AudioWrapper audio; @@ -160,6 +161,20 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG this.tanks[0].setType(2, slots); setupTanks(); + if(unloadDelay > 0) unloadDelay--; + + int chunkX = xCoord >> 4; + int chunkZ = zCoord >> 4; + + //since fluid sources are often not within 1 chunk, we just do 2 chunks distance and call it a day + if(!worldObj.getChunkProvider().chunkExists(chunkX, chunkZ) || + !worldObj.getChunkProvider().chunkExists(chunkX + 2, chunkZ + 2) || + !worldObj.getChunkProvider().chunkExists(chunkX + 2, chunkZ - 2) || + !worldObj.getChunkProvider().chunkExists(chunkX - 2, chunkZ + 2) || + !worldObj.getChunkProvider().chunkExists(chunkX - 2, chunkZ - 2)) { + this.unloadDelay = 40; + } + if(this.assembled) { for(BlockPos pos : ports) { for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { @@ -170,76 +185,80 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG } } - if((typeLoaded == -1 || amountLoaded <= 0) && slots[0] != null && slots[0].getItem() == ModItems.pwr_fuel) { - typeLoaded = slots[0].getItemDamage(); - amountLoaded++; - this.decrStackSize(0, 1); - this.markChanged(); - } else if(slots[0] != null && slots[0].getItem() == ModItems.pwr_fuel && slots[0].getItemDamage() == typeLoaded && amountLoaded < rodCount){ - amountLoaded++; - this.decrStackSize(0, 1); - this.markChanged(); - } - - if(this.rodTarget > this.rodLevel) this.rodLevel++; - if(this.rodTarget < this.rodLevel) this.rodLevel--; - - int newFlux = this.sourceCount * 20; - - if(typeLoaded != -1 && amountLoaded > 0) { + //only perform fission if the area has been loaded for 40 ticks or more + if(this.unloadDelay <= 0) { - EnumPWRFuel fuel = EnumUtil.grabEnumSafely(EnumPWRFuel.class, typeLoaded); - double usedRods = getTotalProcessMultiplier(); - double fluxPerRod = this.flux / this.rodCount; - double outputPerRod = fuel.function.effonix(fluxPerRod); - double totalOutput = outputPerRod * amountLoaded * usedRods; - double totalHeatOutput = totalOutput * fuel.heatEmission; - - this.coreHeat += totalHeatOutput; - newFlux += totalOutput; - - this.processTime = (int) fuel.yield; - this.progress += totalOutput; - - if(this.progress >= this.processTime) { - this.progress -= this.processTime; - - if(slots[1] == null) { - slots[1] = new ItemStack(ModItems.pwr_fuel_hot, 1, typeLoaded); - } else if(slots[1].getItem() == ModItems.pwr_fuel_hot && slots[1].getItemDamage() == typeLoaded && slots[1].stackSize < slots[1].getMaxStackSize()) { - slots[1].stackSize++; - } - - this.amountLoaded--; + if((typeLoaded == -1 || amountLoaded <= 0) && slots[0] != null && slots[0].getItem() == ModItems.pwr_fuel) { + typeLoaded = slots[0].getItemDamage(); + amountLoaded++; + this.decrStackSize(0, 1); + this.markChanged(); + } else if(slots[0] != null && slots[0].getItem() == ModItems.pwr_fuel && slots[0].getItemDamage() == typeLoaded && amountLoaded < rodCount){ + amountLoaded++; + this.decrStackSize(0, 1); this.markChanged(); } - } - - if(this.amountLoaded <= 0) { - this.typeLoaded = -1; - } - - if(amountLoaded > rodCount) amountLoaded = rodCount; - - /* CORE COOLING */ - double coreCoolingApproachNum = getXOverE((double) this.heatexCount * 5 / (double) this.rodCount, 2) / 2D; - int averageCoreHeat = (this.coreHeat + this.hullHeat) / 2; - this.coreHeat -= (coreHeat - averageCoreHeat) * coreCoolingApproachNum; - this.hullHeat -= (hullHeat - averageCoreHeat) * coreCoolingApproachNum; - - updateCoolant(); - - this.coreHeat *= 0.999D; - this.hullHeat *= 0.999D; - - this.flux = newFlux; - - if(tanks[0].getTankType().hasTrait(FT_PWRModerator.class) && tanks[0].getFill() > 0) { - this.flux *= tanks[0].getTankType().getTrait(FT_PWRModerator.class).getMultiplier(); - } - - if(this.coreHeat > this.coreHeatCapacity) { - meltDown(); + + if(this.rodTarget > this.rodLevel) this.rodLevel++; + if(this.rodTarget < this.rodLevel) this.rodLevel--; + + int newFlux = this.sourceCount * 20; + + if(typeLoaded != -1 && amountLoaded > 0) { + + EnumPWRFuel fuel = EnumUtil.grabEnumSafely(EnumPWRFuel.class, typeLoaded); + double usedRods = getTotalProcessMultiplier(); + double fluxPerRod = this.flux / this.rodCount; + double outputPerRod = fuel.function.effonix(fluxPerRod); + double totalOutput = outputPerRod * amountLoaded * usedRods; + double totalHeatOutput = totalOutput * fuel.heatEmission; + + this.coreHeat += totalHeatOutput; + newFlux += totalOutput; + + this.processTime = (int) fuel.yield; + this.progress += totalOutput; + + if(this.progress >= this.processTime) { + this.progress -= this.processTime; + + if(slots[1] == null) { + slots[1] = new ItemStack(ModItems.pwr_fuel_hot, 1, typeLoaded); + } else if(slots[1].getItem() == ModItems.pwr_fuel_hot && slots[1].getItemDamage() == typeLoaded && slots[1].stackSize < slots[1].getMaxStackSize()) { + slots[1].stackSize++; + } + + this.amountLoaded--; + this.markChanged(); + } + } + + if(this.amountLoaded <= 0) { + this.typeLoaded = -1; + } + + if(amountLoaded > rodCount) amountLoaded = rodCount; + + /* CORE COOLING */ + double coreCoolingApproachNum = getXOverE((double) this.heatexCount * 5 / (double) this.rodCount, 2) / 2D; + int averageCoreHeat = (this.coreHeat + this.hullHeat) / 2; + this.coreHeat -= (coreHeat - averageCoreHeat) * coreCoolingApproachNum; + this.hullHeat -= (hullHeat - averageCoreHeat) * coreCoolingApproachNum; + + updateCoolant(); + + this.coreHeat *= 0.999D; + this.hullHeat *= 0.999D; + + this.flux = newFlux; + + if(tanks[0].getTankType().hasTrait(FT_PWRModerator.class) && tanks[0].getFill() > 0) { + this.flux *= tanks[0].getTankType().getTrait(FT_PWRModerator.class).getMultiplier(); + } + + if(this.coreHeat > this.coreHeatCapacity) { + meltDown(); + } } } From e40343b6dd6fed2d479d72b51b0b227b91bebb33 Mon Sep 17 00:00:00 2001 From: Bob Date: Thu, 23 Nov 2023 20:39:54 +0100 Subject: [PATCH 392/432] crunchier tier 1 missiles --- .../entity/missile/EntityMissileCustom.java | 1 + .../java/com/hbm/main/ResourceManager.java | 10 +- .../entity/rocket/RenderMissileGeneric.java | 20 +- .../tileentity/RenderLaunchPadTier1.java | 8 + .../assets/hbm/models/missile_abm.obj | 972 +++++++++--------- .../assets/hbm/models/missile_v2.obj | 572 +++++++++++ .../assets/hbm/textures/models/missile_v2.png | Bin 0 -> 885 bytes .../hbm/textures/models/missile_v2_bu.png | Bin 0 -> 846 bytes .../hbm/textures/models/missile_v2_cl.png | Bin 0 -> 887 bytes .../hbm/textures/models/missile_v2_inc.png | Bin 0 -> 942 bytes 10 files changed, 1083 insertions(+), 500 deletions(-) create mode 100644 src/main/resources/assets/hbm/models/missile_v2.obj create mode 100644 src/main/resources/assets/hbm/textures/models/missile_v2.png create mode 100644 src/main/resources/assets/hbm/textures/models/missile_v2_bu.png create mode 100644 src/main/resources/assets/hbm/textures/models/missile_v2_cl.png create mode 100644 src/main/resources/assets/hbm/textures/models/missile_v2_inc.png diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java b/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java index 79d7c21c5..f2ebf4584 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java @@ -44,6 +44,7 @@ public class EntityMissileCustom extends EntityMissileBaseNT implements IChunkLo startZ = (int) z; targetX = a; targetZ = b; + this.motionY = 2; Vec3 vector = Vec3.createVectorHelper(targetX - startX, 0, targetZ - startZ); accelXZ = decelY = 1 / vector.lengthVector(); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 901fb11b2..29b591050 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -1009,7 +1009,7 @@ public class ResourceManager { public static final IModelCustom b29 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/b29.obj")); //Missiles - public static final IModelCustom missileV2 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileV2.obj")); + public static final IModelCustom missileV2 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_v2.obj")).asDisplayList(); public static final IModelCustom missileABM = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_abm.obj")).asDisplayList(); public static final IModelCustom missileStrong = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileGeneric.obj")); public static final IModelCustom missileHuge = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileHuge.obj")); @@ -1149,10 +1149,10 @@ public class ResourceManager { public static final ResourceLocation b29_3_tex = new ResourceLocation(RefStrings.MODID, "textures/models/b29_3.png"); //Missiles - public static final ResourceLocation missileV2_HE_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileV2_HE.png"); - public static final ResourceLocation missileV2_IN_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileV2_IN.png"); - public static final ResourceLocation missileV2_CL_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileV2_CL.png"); - public static final ResourceLocation missileV2_BU_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileV2_BU.png"); + public static final ResourceLocation missileV2_HE_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_v2.png"); + public static final ResourceLocation missileV2_IN_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_v2_inc.png"); + public static final ResourceLocation missileV2_CL_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_v2_cl.png"); + public static final ResourceLocation missileV2_BU_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_v2_bu.png"); public static final ResourceLocation missileAA_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_abm.png"); public static final ResourceLocation missileStrong_HE_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileStrong_HE.png"); public static final ResourceLocation missileStrong_EMP_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileStrong_EMP.png"); diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderMissileGeneric.java b/src/main/java/com/hbm/render/entity/rocket/RenderMissileGeneric.java index 1b9d98585..64051609e 100644 --- a/src/main/java/com/hbm/render/entity/rocket/RenderMissileGeneric.java +++ b/src/main/java/com/hbm/render/entity/rocket/RenderMissileGeneric.java @@ -16,29 +16,31 @@ public class RenderMissileGeneric extends Render { } @Override - public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { + public void doRender(Entity entity, double x, double y, double z, float p_76986_8_, float interp) { GL11.glPushMatrix(); - GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_); - GL11.glRotatef(p_76986_1_.prevRotationYaw + (p_76986_1_.rotationYaw - p_76986_1_.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(p_76986_1_.prevRotationPitch + (p_76986_1_.rotationPitch - p_76986_1_.prevRotationPitch) * p_76986_9_, 0.0F, 0.0F, 1.0F); + GL11.glTranslatef((float) x, (float) y, (float) z); + GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * interp - 90.0F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(entity.prevRotationPitch + (entity.rotationPitch - entity.prevRotationPitch) * interp, 0.0F, 0.0F, 1.0F); - if(p_76986_1_ instanceof EntityMissileGeneric) + if(entity instanceof EntityMissileGeneric) bindTexture(ResourceManager.missileV2_HE_tex); - if(p_76986_1_ instanceof EntityMissileIncendiary) + if(entity instanceof EntityMissileIncendiary) bindTexture(ResourceManager.missileV2_IN_tex); - if(p_76986_1_ instanceof EntityMissileCluster) + if(entity instanceof EntityMissileCluster) bindTexture(ResourceManager.missileV2_CL_tex); - if(p_76986_1_ instanceof EntityMissileBunkerBuster) + if(entity instanceof EntityMissileBunkerBuster) bindTexture(ResourceManager.missileV2_BU_tex); - if(p_76986_1_ instanceof EntityMissileAntiBallistic) { + if(entity instanceof EntityMissileAntiBallistic) { bindTexture(ResourceManager.missileAA_tex); GL11.glShadeModel(GL11.GL_SMOOTH); ResourceManager.missileABM.renderAll(); GL11.glShadeModel(GL11.GL_FLAT); } else { + GL11.glShadeModel(GL11.GL_SMOOTH); ResourceManager.missileV2.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); } GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/render/tileentity/RenderLaunchPadTier1.java b/src/main/java/com/hbm/render/tileentity/RenderLaunchPadTier1.java index 5ccfc1900..acaff58a5 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderLaunchPadTier1.java +++ b/src/main/java/com/hbm/render/tileentity/RenderLaunchPadTier1.java @@ -34,7 +34,9 @@ public class RenderLaunchPadTier1 extends TileEntitySpecialRenderer { if(toRender.getItem() == ModItems.missile_generic) { GL11.glScalef(1.0F, 1.0F, 1.0F); bindTexture(ResourceManager.missileV2_HE_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); ResourceManager.missileV2.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); } if(toRender.getItem() == ModItems.missile_strong) { GL11.glScalef(1.5F, 1.5F, 1.5F); @@ -44,7 +46,9 @@ public class RenderLaunchPadTier1 extends TileEntitySpecialRenderer { if(toRender.getItem() == ModItems.missile_cluster) { GL11.glScalef(1.0F, 1.0F, 1.0F); bindTexture(ResourceManager.missileV2_CL_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); ResourceManager.missileV2.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); } if(toRender.getItem() == ModItems.missile_nuclear) { GL11.glScalef(1.5F, 1.5F, 1.5F); @@ -54,12 +58,16 @@ public class RenderLaunchPadTier1 extends TileEntitySpecialRenderer { if(toRender.getItem() == ModItems.missile_incendiary) { GL11.glScalef(1.0F, 1.0F, 1.0F); bindTexture(ResourceManager.missileV2_IN_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); ResourceManager.missileV2.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); } if(toRender.getItem() == ModItems.missile_buster) { GL11.glScalef(1.0F, 1.0F, 1.0F); bindTexture(ResourceManager.missileV2_BU_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); ResourceManager.missileV2.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); } if(toRender.getItem() == ModItems.missile_incendiary_strong) { GL11.glScalef(1.5F, 1.5F, 1.5F); diff --git a/src/main/resources/assets/hbm/models/missile_abm.obj b/src/main/resources/assets/hbm/models/missile_abm.obj index d77bc487d..1cc213eba 100644 --- a/src/main/resources/assets/hbm/models/missile_abm.obj +++ b/src/main/resources/assets/hbm/models/missile_abm.obj @@ -1,39 +1,39 @@ # Blender v2.79 (sub 0) OBJ File: 'missile_abm.blend' # www.blender.org o Circle -v 0.000000 7.000000 -0.500000 -v -0.191342 7.000000 -0.461940 -v -0.353553 7.000000 -0.353553 -v -0.461940 7.000000 -0.191342 -v -0.500000 7.000000 0.000000 -v -0.461940 7.000000 0.191342 -v -0.353553 7.000000 0.353553 -v -0.191342 7.000000 0.461940 -v -0.000000 7.000000 0.500000 -v 0.191342 7.000000 0.461940 -v 0.353553 7.000000 0.353554 -v 0.461940 7.000000 0.191342 -v 0.500000 7.000000 -0.000000 -v 0.461940 7.000000 -0.191342 -v 0.353553 7.000000 -0.353554 -v 0.191341 7.000000 -0.461940 +v -0.000000 7.000000 -0.375000 +v -0.143506 7.000000 -0.346455 +v -0.265165 7.000000 -0.265165 +v -0.346455 7.000000 -0.143506 +v -0.375000 7.000000 0.000000 +v -0.346455 7.000000 0.143506 +v -0.265165 7.000000 0.265165 +v -0.143506 7.000000 0.346455 +v -0.000000 7.000000 0.375000 +v 0.143506 7.000000 0.346455 +v 0.265165 7.000000 0.265165 +v 0.346455 7.000000 0.143506 +v 0.375000 7.000000 -0.000000 +v 0.346455 7.000000 -0.143506 +v 0.265165 7.000000 -0.265165 +v 0.143506 7.000000 -0.346455 v -0.000000 8.500000 0.000000 -v 0.000000 5.500000 -0.500000 -v -0.191342 5.500000 -0.461940 -v -0.353553 5.500000 -0.353553 -v -0.461940 5.500000 -0.191342 -v -0.500000 5.500000 0.000000 -v -0.461940 5.500000 0.191342 -v -0.353553 5.500000 0.353553 -v -0.191342 5.500000 0.461940 -v -0.000000 5.500000 0.500000 -v 0.191342 5.500000 0.461940 -v 0.353553 5.500000 0.353554 -v 0.461940 5.500000 0.191342 -v 0.500000 5.500000 -0.000000 -v 0.461940 5.500000 -0.191342 -v 0.353553 5.500000 -0.353554 -v 0.191341 5.500000 -0.461940 +v -0.000000 5.500000 -0.375000 +v -0.143506 5.500000 -0.346455 +v -0.265165 5.500000 -0.265165 +v -0.346455 5.500000 -0.143506 +v -0.375000 5.500000 0.000000 +v -0.346455 5.500000 0.143506 +v -0.265165 5.500000 0.265165 +v -0.143506 5.500000 0.346455 +v -0.000000 5.500000 0.375000 +v 0.143506 5.500000 0.346455 +v 0.265165 5.500000 0.265165 +v 0.346455 5.500000 0.143506 +v 0.375000 5.500000 -0.000000 +v 0.346455 5.500000 -0.143506 +v 0.265165 5.500000 -0.265165 +v 0.143506 5.500000 -0.346455 v -0.000000 4.500000 -0.250000 v -0.095671 4.500000 -0.230970 v -0.176777 4.500000 -0.176777 @@ -884,7 +884,6 @@ vt 0.342105 0.428571 vt 0.065789 0.428571 vt 0.381579 0.428571 vt 0.105263 0.428571 -vt 0.394737 0.428571 vt 0.421053 0.428571 vt 0.144737 0.428571 vt 0.500000 0.428571 @@ -1183,6 +1182,7 @@ vt 0.315789 0.428571 vt 0.039474 0.428571 vt 0.355263 0.428571 vt 0.078947 0.428571 +vt 0.394737 0.428571 vt 0.118421 0.428571 vt 0.473684 0.428571 vt 0.434211 0.428571 @@ -1222,24 +1222,24 @@ vn 0.0416 0.0000 -0.9991 vn 0.0416 0.0000 0.9991 vn 0.5547 0.8321 0.0000 vn 0.5547 -0.8321 0.0000 -vn 0.3630 0.3162 -0.8765 -vn -0.0000 0.3162 -0.9487 -vn 0.6708 0.3162 -0.6708 -vn 0.8765 0.3162 -0.3630 -vn 0.9487 0.3162 0.0000 -vn 0.8765 0.3162 0.3630 -vn 0.6708 0.3162 0.6708 -vn 0.3630 0.3162 0.8765 -vn -0.0000 0.3162 0.9487 -vn -0.3630 0.3162 0.8765 -vn -0.6708 0.3162 0.6708 -vn -0.8765 0.3162 0.3630 -vn -0.9487 0.3162 0.0000 -vn -0.8765 0.3162 -0.3630 -vn -0.6708 0.3162 -0.6708 -vn -0.3630 0.3162 -0.8765 +vn 0.3713 0.2425 -0.8963 +vn -0.0000 0.2425 -0.9701 +vn 0.6860 0.2425 -0.6860 +vn 0.8963 0.2425 -0.3713 +vn 0.9701 0.2425 -0.0000 +vn 0.8963 0.2425 0.3713 +vn 0.6860 0.2425 0.6860 +vn 0.3713 0.2425 0.8963 +vn -0.0000 0.2425 0.9701 +vn -0.3713 0.2425 0.8963 +vn -0.6860 0.2425 0.6860 +vn -0.8963 0.2425 0.3713 +vn -0.9701 0.2425 0.0000 +vn -0.8963 0.2425 -0.3713 +vn -0.6860 0.2425 -0.6860 +vn -0.3713 0.2425 -0.8963 vn -0.9239 0.0000 -0.3827 -vn -1.0000 0.0000 0.0000 +vn -1.0000 0.0000 -0.0000 vn 0.9239 0.0000 0.3827 vn 1.0000 0.0000 -0.0000 vn -0.9239 0.0000 0.3827 @@ -1254,22 +1254,22 @@ vn -0.3827 0.0000 -0.9239 vn 0.3827 0.0000 0.9239 vn -0.7071 0.0000 -0.7071 vn 0.7071 0.0000 0.7071 -vn -0.0000 -0.2425 0.9701 -vn 0.3713 -0.2425 0.8963 -vn -0.3713 -0.2425 -0.8963 -vn -0.6860 -0.2425 -0.6860 -vn 0.6860 -0.2425 0.6860 -vn -0.8963 -0.2425 -0.3713 -vn 0.8963 -0.2425 0.3713 -vn -0.9701 -0.2425 -0.0000 -vn 0.9701 -0.2425 -0.0000 -vn -0.8963 -0.2425 0.3713 -vn 0.8963 -0.2425 -0.3713 -vn -0.6860 -0.2425 0.6860 -vn 0.6860 -0.2425 -0.6860 -vn -0.3713 -0.2425 0.8963 -vn 0.3713 -0.2425 -0.8963 -vn -0.0000 -0.2425 -0.9701 +vn -0.0000 -0.1240 0.9923 +vn 0.3797 -0.1240 0.9167 +vn -0.3797 -0.1240 -0.9167 +vn -0.7016 -0.1240 -0.7016 +vn 0.7016 -0.1240 0.7016 +vn -0.9167 -0.1240 -0.3797 +vn 0.9167 -0.1240 0.3797 +vn -0.9923 -0.1240 -0.0000 +vn 0.9923 -0.1240 0.0000 +vn -0.9167 -0.1240 0.3797 +vn 0.9167 -0.1240 -0.3797 +vn -0.7016 -0.1240 0.7016 +vn 0.7016 -0.1240 -0.7016 +vn -0.3797 -0.1240 0.9167 +vn 0.3797 -0.1240 -0.9167 +vn -0.0000 -0.1240 -0.9923 vn 0.0127 0.3525 -0.9357 vn -0.1164 0.9864 0.1164 vn 0.3598 0.3824 -0.8511 @@ -1686,242 +1686,242 @@ f 30/435/71 47/459/73 31/437/73 f 23/436/72 40/460/74 24/438/74 f 31/437/73 48/461/75 32/439/75 f 24/438/74 41/462/76 25/440/76 -f 33/441/77 48/463/75 49/464/77 -f 25/440/76 42/465/63 26/442/63 -f 18/444/78 35/466/65 19/443/65 -f 33/441/77 34/467/78 18/444/78 -f 47/468/52 64/469/54 48/470/54 -f 40/471/53 57/472/55 41/473/55 -f 48/470/54 65/474/56 49/475/56 -f 41/473/55 58/476/57 42/477/57 -f 34/478/58 51/479/59 35/480/59 -f 49/475/56 50/481/58 34/478/58 -f 42/477/57 59/482/60 43/483/60 -f 35/480/59 52/484/61 36/485/61 -f 43/483/60 60/486/62 44/487/62 -f 36/485/61 53/488/47 37/489/47 -f 44/487/62 61/490/49 45/491/49 -f 37/489/47 54/492/48 38/493/48 -f 45/491/49 62/494/50 46/495/50 -f 38/496/48 55/497/51 39/458/51 -f 46/495/50 63/498/52 47/468/52 -f 39/458/51 56/499/53 40/471/53 -f 68/42/53 83/500/51 67/37/51 -f 76/24/54 91/501/52 75/20/52 -f 69/4/55 84/502/53 68/284/53 -f 77/25/56 92/503/54 76/24/54 -f 70/7/57 85/504/55 69/4/55 -f 78/28/58 93/505/56 77/25/56 -f 71/11/60 86/506/57 70/7/57 -f 79/32/59 94/507/58 78/28/58 -f 72/13/62 87/508/60 71/11/60 -f 80/34/61 95/509/59 79/32/59 -f 73/14/49 88/510/62 72/13/62 -f 81/38/47 96/511/61 80/34/61 -f 74/17/50 89/512/49 73/14/49 -f 67/37/51 82/513/48 66/35/48 -f 66/35/48 97/514/47 81/38/47 -f 75/20/52 90/515/50 74/17/50 -f 94/507/79 98/516/80 93/505/81 -f 92/503/82 93/505/81 98/517/80 -f 91/501/83 92/503/82 98/518/80 -f 90/515/84 91/501/83 98/519/80 -f 89/512/85 90/515/84 98/520/80 -f 88/510/86 89/512/85 98/521/80 -f 87/508/87 88/510/86 98/522/80 -f 86/506/88 87/508/87 98/523/80 -f 85/504/89 86/506/88 98/524/80 -f 84/502/90 85/504/89 98/525/80 -f 83/500/91 84/526/90 98/527/80 -f 82/513/92 83/500/91 98/528/80 -f 97/514/93 82/513/92 98/529/80 -f 96/511/94 97/514/93 98/530/80 -f 95/509/95 96/511/94 98/531/80 -f 94/507/79 95/509/95 98/532/80 -f 109/23/96 124/533/97 125/534/96 -f 109/26/96 126/535/98 110/27/98 -f 110/29/98 127/536/99 111/30/99 -f 111/288/99 128/537/100 112/31/100 -f 113/33/101 128/537/100 129/538/101 -f 100/36/102 115/539/103 116/540/102 -f 113/39/101 130/541/104 114/40/104 -f 100/291/102 117/542/105 101/41/105 -f 114/292/104 115/539/103 99/43/103 -f 102/6/106 117/543/105 118/544/106 -f 102/8/106 119/545/107 103/9/107 -f 103/285/107 120/546/108 104/10/108 -f 104/286/108 121/547/109 105/12/109 -f 105/15/109 122/548/110 106/16/110 -f 106/18/110 123/549/111 107/19/111 -f 107/21/111 124/533/97 108/22/97 -f 144/550/48 145/551/112 143/552/48 -f 146/553/112 147/554/113 145/551/112 -f 148/555/113 149/556/50 147/554/113 -f 150/557/50 151/558/114 149/556/50 -f 152/559/114 153/560/115 151/558/114 -f 154/561/115 143/552/48 153/562/115 -f 157/109/54 172/563/52 156/104/52 -f 165/91/53 180/564/51 164/87/51 -f 158/71/56 173/565/54 157/313/54 -f 166/92/55 181/566/53 165/91/53 -f 159/74/58 174/567/56 158/71/56 -f 167/95/57 182/568/55 166/92/55 -f 160/78/59 175/569/58 159/74/58 -f 168/99/60 183/570/57 167/95/57 -f 161/80/61 176/571/59 160/78/59 -f 169/101/62 184/572/60 168/99/60 -f 162/81/47 177/573/61 161/80/61 -f 170/105/49 185/574/62 169/101/62 -f 163/84/48 178/575/47 162/81/47 -f 156/104/52 171/576/50 155/102/50 -f 155/102/50 186/577/49 170/105/49 -f 164/87/51 179/578/48 163/84/48 -f 183/570/116 187/579/117 182/568/118 -f 181/566/119 182/568/118 187/580/117 -f 180/564/120 181/566/119 187/581/117 -f 179/578/121 180/564/120 187/582/117 -f 178/575/122 179/578/121 187/583/117 -f 177/573/123 178/575/122 187/584/117 -f 176/571/124 177/573/123 187/585/117 -f 175/569/125 176/571/124 187/586/117 -f 174/567/126 175/569/125 187/587/117 -f 173/565/127 174/567/126 187/588/117 -f 172/563/128 173/589/127 187/590/117 -f 171/576/129 172/563/128 187/591/117 -f 186/577/130 171/576/129 187/592/117 -f 185/574/131 186/577/130 187/593/117 -f 184/572/132 185/574/131 187/594/117 -f 183/570/116 184/572/132 187/595/117 -f 198/90/105 213/596/102 214/597/105 -f 198/93/105 215/598/106 199/94/106 -f 199/96/106 216/599/107 200/97/107 -f 201/98/108 216/599/107 217/600/108 -f 202/100/109 217/600/108 218/601/109 -f 188/319/111 205/602/97 189/103/97 -f 202/106/109 219/603/110 203/107/110 -f 190/108/96 205/602/97 206/604/96 -f 203/321/110 204/605/111 188/110/111 -f 190/72/96 207/606/98 191/73/98 -f 191/75/98 208/607/99 192/76/99 -f 192/314/99 209/608/100 193/77/100 -f 193/315/100 210/609/101 194/79/101 -f 194/82/101 211/610/104 195/83/104 -f 195/85/104 212/611/103 196/86/103 -f 196/88/103 213/596/102 197/89/102 -f 228/159/62 243/612/60 227/154/60 -f 236/142/61 251/613/59 235/138/59 -f 229/122/49 244/614/62 228/336/62 -f 237/143/47 252/615/61 236/142/61 -f 230/125/50 245/616/49 229/122/49 -f 238/147/48 253/617/47 237/143/47 -f 231/129/52 246/618/50 230/125/50 -f 239/149/51 254/619/48 238/147/48 -f 232/131/54 247/620/52 231/129/52 -f 240/151/53 255/621/51 239/149/51 -f 233/132/56 248/622/54 232/131/54 -f 241/155/55 256/623/53 240/151/53 -f 234/135/58 249/624/56 233/132/56 -f 227/154/60 242/625/57 226/152/57 -f 226/152/57 257/626/55 241/155/55 -f 235/138/59 250/627/58 234/135/58 -f 254/619/133 258/628/134 253/617/135 -f 252/615/136 253/617/135 258/629/134 -f 251/613/137 252/615/136 258/630/134 -f 250/627/138 251/613/137 258/631/134 -f 249/624/139 250/627/138 258/632/134 -f 248/622/140 249/624/139 258/633/134 -f 247/620/141 248/622/140 258/634/134 -f 246/618/142 247/620/141 258/635/134 -f 245/616/143 246/618/142 258/636/134 -f 244/614/144 245/616/143 258/637/134 -f 243/612/145 244/638/144 258/639/134 -f 242/625/146 243/612/145 258/640/134 -f 257/626/147 242/625/146 258/641/134 -f 256/623/148 257/626/147 258/642/134 -f 255/621/149 256/623/148 258/643/134 -f 254/619/133 255/621/149 258/644/134 -f 268/339/100 285/645/101 269/141/101 -f 269/144/101 286/646/104 270/145/104 -f 270/340/104 287/647/103 271/146/103 -f 271/341/103 288/648/102 272/148/102 -f 273/150/105 288/648/102 289/649/105 -f 259/343/107 276/650/108 260/153/108 -f 273/156/105 290/651/106 274/157/106 -f 260/344/108 277/652/109 261/158/109 -f 274/345/106 275/653/107 259/160/107 -f 262/124/110 277/654/109 278/655/110 -f 262/126/110 279/656/111 263/127/111 -f 263/337/111 280/657/97 264/128/97 -f 264/338/97 281/658/96 265/130/96 -f 265/133/96 282/659/98 266/134/98 -f 266/136/98 283/660/99 267/137/99 -f 267/139/99 284/661/100 268/140/100 -f 299/210/61 314/662/59 298/205/59 -f 307/192/62 322/663/60 306/188/60 -f 300/172/47 315/664/61 299/360/61 -f 308/193/49 323/665/62 307/192/62 -f 301/175/48 316/666/47 300/172/47 -f 309/196/50 324/667/49 308/193/49 -f 302/179/51 317/668/48 301/175/48 -f 310/200/52 325/669/50 309/196/50 -f 303/181/53 318/670/51 302/179/51 -f 311/202/54 326/671/52 310/200/52 -f 304/182/55 319/672/53 303/181/53 -f 312/206/56 327/673/54 311/202/54 -f 305/185/57 320/674/55 304/182/55 -f 298/205/59 313/675/58 297/203/58 -f 297/203/58 328/676/56 312/206/56 -f 306/188/60 321/677/57 305/185/57 -f 325/669/150 329/678/151 324/667/152 -f 323/665/153 324/667/152 329/679/151 -f 322/663/154 323/665/153 329/680/151 -f 321/677/155 322/663/154 329/681/151 -f 320/674/156 321/677/155 329/682/151 -f 319/672/157 320/674/156 329/683/151 -f 318/670/158 319/672/157 329/684/151 -f 317/668/159 318/670/158 329/685/151 -f 316/666/160 317/668/159 329/686/151 -f 315/664/161 316/666/160 329/687/151 -f 314/662/162 315/688/161 329/689/151 -f 313/675/163 314/662/162 329/690/151 -f 328/676/164 313/675/163 329/691/151 -f 327/673/165 328/676/164 329/692/151 -f 326/671/166 327/673/165 329/693/151 -f 325/669/150 326/671/166 329/694/151 -f 340/191/109 355/695/108 356/696/109 -f 340/194/109 357/697/110 341/195/110 -f 341/197/110 358/698/111 342/198/111 -f 343/199/97 358/698/111 359/699/97 -f 343/365/97 360/700/96 344/201/96 -f 330/366/99 347/701/100 331/204/100 -f 345/208/98 360/700/96 361/702/98 -f 332/209/101 347/701/100 348/703/101 -f 345/211/98 346/704/99 330/212/99 -f 333/174/104 348/705/101 349/706/104 -f 333/176/104 350/707/103 334/177/103 -f 335/178/102 350/707/103 351/708/102 -f 335/362/102 352/709/105 336/180/105 -f 336/183/105 353/710/106 337/184/106 -f 337/186/106 354/711/107 338/187/107 -f 338/189/107 355/695/108 339/190/108 -f 375/712/50 376/713/114 374/714/50 -f 377/715/114 378/716/115 376/713/114 -f 379/717/115 380/718/48 378/716/115 -f 381/719/48 382/720/112 380/718/48 -f 383/721/112 384/722/113 382/720/112 -f 385/723/113 374/714/50 384/724/113 -f 393/725/57 394/726/167 392/727/57 -f 395/728/167 396/729/168 394/726/167 -f 397/730/168 398/731/58 396/729/168 -f 399/732/58 400/733/169 398/731/58 -f 401/734/169 402/735/170 400/733/169 -f 403/736/170 392/727/57 402/737/170 -f 411/738/58 412/739/169 410/740/58 -f 413/741/169 414/742/170 412/739/169 -f 415/743/170 416/744/57 414/742/170 -f 417/745/57 418/746/167 416/744/57 -f 419/747/167 420/748/168 418/746/167 -f 421/749/168 410/740/58 420/750/168 +f 32/439/75 49/463/77 33/441/77 +f 25/440/76 42/464/63 26/442/63 +f 18/444/78 35/465/65 19/443/65 +f 33/441/77 34/466/78 18/444/78 +f 47/467/52 64/468/54 48/469/54 +f 40/470/53 57/471/55 41/472/55 +f 48/469/54 65/473/56 49/474/56 +f 41/472/55 58/475/57 42/476/57 +f 34/477/58 51/478/59 35/479/59 +f 49/474/56 50/480/58 34/477/58 +f 42/476/57 59/481/60 43/482/60 +f 35/479/59 52/483/61 36/484/61 +f 43/482/60 60/485/62 44/486/62 +f 36/484/61 53/487/47 37/488/47 +f 44/486/62 61/489/49 45/490/49 +f 37/488/47 54/491/48 38/492/48 +f 45/490/49 62/493/50 46/494/50 +f 38/495/48 55/496/51 39/458/51 +f 46/494/50 63/497/52 47/467/52 +f 39/458/51 56/498/53 40/470/53 +f 68/42/53 83/499/51 67/37/51 +f 76/24/54 91/500/52 75/20/52 +f 69/4/55 84/501/53 68/284/53 +f 77/25/56 92/502/54 76/24/54 +f 70/7/57 85/503/55 69/4/55 +f 78/28/58 93/504/56 77/25/56 +f 71/11/60 86/505/57 70/7/57 +f 79/32/59 94/506/58 78/28/58 +f 72/13/62 87/507/60 71/11/60 +f 80/34/61 95/508/59 79/32/59 +f 73/14/49 88/509/62 72/13/62 +f 81/38/47 96/510/61 80/34/61 +f 74/17/50 89/511/49 73/14/49 +f 67/37/51 82/512/48 66/35/48 +f 66/35/48 97/513/47 81/38/47 +f 75/20/52 90/514/50 74/17/50 +f 94/506/79 98/515/80 93/504/81 +f 92/502/82 93/504/81 98/516/80 +f 91/500/83 92/502/82 98/517/80 +f 90/514/84 91/500/83 98/518/80 +f 89/511/85 90/514/84 98/519/80 +f 88/509/86 89/511/85 98/520/80 +f 87/507/87 88/509/86 98/521/80 +f 86/505/88 87/507/87 98/522/80 +f 85/503/89 86/505/88 98/523/80 +f 84/501/90 85/503/89 98/524/80 +f 83/499/91 84/525/90 98/526/80 +f 82/512/92 83/499/91 98/527/80 +f 97/513/93 82/512/92 98/528/80 +f 96/510/94 97/513/93 98/529/80 +f 95/508/95 96/510/94 98/530/80 +f 94/506/79 95/508/95 98/531/80 +f 109/23/96 124/532/97 125/533/96 +f 109/26/96 126/534/98 110/27/98 +f 110/29/98 127/535/99 111/30/99 +f 111/288/99 128/536/100 112/31/100 +f 113/33/101 128/536/100 129/537/101 +f 100/36/102 115/538/103 116/539/102 +f 113/39/101 130/540/104 114/40/104 +f 100/291/102 117/541/105 101/41/105 +f 114/292/104 115/538/103 99/43/103 +f 102/6/106 117/542/105 118/543/106 +f 102/8/106 119/544/107 103/9/107 +f 103/285/107 120/545/108 104/10/108 +f 104/286/108 121/546/109 105/12/109 +f 105/15/109 122/547/110 106/16/110 +f 106/18/110 123/548/111 107/19/111 +f 107/21/111 124/532/97 108/22/97 +f 144/549/48 145/550/112 143/551/48 +f 146/552/112 147/553/113 145/550/112 +f 148/554/113 149/555/50 147/553/113 +f 150/556/50 151/557/114 149/555/50 +f 152/558/114 153/559/115 151/557/114 +f 154/560/115 143/551/48 153/561/115 +f 157/109/54 172/562/52 156/104/52 +f 165/91/53 180/563/51 164/87/51 +f 158/71/56 173/564/54 157/313/54 +f 166/92/55 181/565/53 165/91/53 +f 159/74/58 174/566/56 158/71/56 +f 167/95/57 182/567/55 166/92/55 +f 160/78/59 175/568/58 159/74/58 +f 168/99/60 183/569/57 167/95/57 +f 161/80/61 176/570/59 160/78/59 +f 169/101/62 184/571/60 168/99/60 +f 162/81/47 177/572/61 161/80/61 +f 170/105/49 185/573/62 169/101/62 +f 163/84/48 178/574/47 162/81/47 +f 156/104/52 171/575/50 155/102/50 +f 155/102/50 186/576/49 170/105/49 +f 164/87/51 179/577/48 163/84/48 +f 183/569/116 187/578/117 182/567/118 +f 181/565/119 182/567/118 187/579/117 +f 180/563/120 181/565/119 187/580/117 +f 179/577/121 180/563/120 187/581/117 +f 178/574/122 179/577/121 187/582/117 +f 177/572/123 178/574/122 187/583/117 +f 176/570/124 177/572/123 187/584/117 +f 175/568/125 176/570/124 187/585/117 +f 174/566/126 175/568/125 187/586/117 +f 173/564/127 174/566/126 187/587/117 +f 172/562/128 173/588/127 187/589/117 +f 171/575/129 172/562/128 187/590/117 +f 186/576/130 171/575/129 187/591/117 +f 185/573/131 186/576/130 187/592/117 +f 184/571/132 185/573/131 187/593/117 +f 183/569/116 184/571/132 187/594/117 +f 198/90/105 213/595/102 214/596/105 +f 198/93/105 215/597/106 199/94/106 +f 199/96/106 216/598/107 200/97/107 +f 201/98/108 216/598/107 217/599/108 +f 202/100/109 217/599/108 218/600/109 +f 188/319/111 205/601/97 189/103/97 +f 202/106/109 219/602/110 203/107/110 +f 190/108/96 205/601/97 206/603/96 +f 203/321/110 204/604/111 188/110/111 +f 190/72/96 207/605/98 191/73/98 +f 191/75/98 208/606/99 192/76/99 +f 192/314/99 209/607/100 193/77/100 +f 193/315/100 210/608/101 194/79/101 +f 194/82/101 211/609/104 195/83/104 +f 195/85/104 212/610/103 196/86/103 +f 196/88/103 213/595/102 197/89/102 +f 228/159/62 243/611/60 227/154/60 +f 236/142/61 251/612/59 235/138/59 +f 229/122/49 244/613/62 228/336/62 +f 237/143/47 252/614/61 236/142/61 +f 230/125/50 245/615/49 229/122/49 +f 238/147/48 253/616/47 237/143/47 +f 231/129/52 246/617/50 230/125/50 +f 239/149/51 254/618/48 238/147/48 +f 232/131/54 247/619/52 231/129/52 +f 240/151/53 255/620/51 239/149/51 +f 233/132/56 248/621/54 232/131/54 +f 241/155/55 256/622/53 240/151/53 +f 234/135/58 249/623/56 233/132/56 +f 227/154/60 242/624/57 226/152/57 +f 226/152/57 257/625/55 241/155/55 +f 235/138/59 250/626/58 234/135/58 +f 254/618/133 258/627/134 253/616/135 +f 252/614/136 253/616/135 258/628/134 +f 251/612/137 252/614/136 258/629/134 +f 250/626/138 251/612/137 258/630/134 +f 249/623/139 250/626/138 258/631/134 +f 248/621/140 249/623/139 258/632/134 +f 247/619/141 248/621/140 258/633/134 +f 246/617/142 247/619/141 258/634/134 +f 245/615/143 246/617/142 258/635/134 +f 244/613/144 245/615/143 258/636/134 +f 243/611/145 244/637/144 258/638/134 +f 242/624/146 243/611/145 258/639/134 +f 257/625/147 242/624/146 258/640/134 +f 256/622/148 257/625/147 258/641/134 +f 255/620/149 256/622/148 258/642/134 +f 254/618/133 255/620/149 258/643/134 +f 268/339/100 285/644/101 269/141/101 +f 269/144/101 286/645/104 270/145/104 +f 270/340/104 287/646/103 271/146/103 +f 271/341/103 288/647/102 272/148/102 +f 273/150/105 288/647/102 289/648/105 +f 259/343/107 276/649/108 260/153/108 +f 273/156/105 290/650/106 274/157/106 +f 260/344/108 277/651/109 261/158/109 +f 274/345/106 275/652/107 259/160/107 +f 262/124/110 277/653/109 278/654/110 +f 262/126/110 279/655/111 263/127/111 +f 263/337/111 280/656/97 264/128/97 +f 264/338/97 281/657/96 265/130/96 +f 265/133/96 282/658/98 266/134/98 +f 266/136/98 283/659/99 267/137/99 +f 267/139/99 284/660/100 268/140/100 +f 299/210/61 314/661/59 298/205/59 +f 307/192/62 322/662/60 306/188/60 +f 300/172/47 315/663/61 299/360/61 +f 308/193/49 323/664/62 307/192/62 +f 301/175/48 316/665/47 300/172/47 +f 309/196/50 324/666/49 308/193/49 +f 302/179/51 317/667/48 301/175/48 +f 310/200/52 325/668/50 309/196/50 +f 303/181/53 318/669/51 302/179/51 +f 311/202/54 326/670/52 310/200/52 +f 304/182/55 319/671/53 303/181/53 +f 312/206/56 327/672/54 311/202/54 +f 305/185/57 320/673/55 304/182/55 +f 298/205/59 313/674/58 297/203/58 +f 297/203/58 328/675/56 312/206/56 +f 306/188/60 321/676/57 305/185/57 +f 325/668/150 329/677/151 324/666/152 +f 323/664/153 324/666/152 329/678/151 +f 322/662/154 323/664/153 329/679/151 +f 321/676/155 322/662/154 329/680/151 +f 320/673/156 321/676/155 329/681/151 +f 319/671/157 320/673/156 329/682/151 +f 318/669/158 319/671/157 329/683/151 +f 317/667/159 318/669/158 329/684/151 +f 316/665/160 317/667/159 329/685/151 +f 315/663/161 316/665/160 329/686/151 +f 314/661/162 315/687/161 329/688/151 +f 313/674/163 314/661/162 329/689/151 +f 328/675/164 313/674/163 329/690/151 +f 327/672/165 328/675/164 329/691/151 +f 326/670/166 327/672/165 329/692/151 +f 325/668/150 326/670/166 329/693/151 +f 340/191/109 355/694/108 356/695/109 +f 340/194/109 357/696/110 341/195/110 +f 341/197/110 358/697/111 342/198/111 +f 343/199/97 358/697/111 359/698/97 +f 343/365/97 360/699/96 344/201/96 +f 330/366/99 347/700/100 331/204/100 +f 345/208/98 360/699/96 361/701/98 +f 332/209/101 347/700/100 348/702/101 +f 345/211/98 346/703/99 330/212/99 +f 333/174/104 348/704/101 349/705/104 +f 333/176/104 350/706/103 334/177/103 +f 335/178/102 350/706/103 351/707/102 +f 335/362/102 352/708/105 336/180/105 +f 336/183/105 353/709/106 337/184/106 +f 337/186/106 354/710/107 338/187/107 +f 338/189/107 355/694/108 339/190/108 +f 375/711/50 376/712/114 374/713/50 +f 377/714/114 378/715/115 376/712/114 +f 379/716/115 380/717/48 378/715/115 +f 381/718/48 382/719/112 380/717/48 +f 383/720/112 384/721/113 382/719/112 +f 385/722/113 374/713/50 384/723/113 +f 393/724/57 394/725/167 392/726/57 +f 395/727/167 396/728/168 394/725/167 +f 397/729/168 398/730/58 396/728/168 +f 399/731/58 400/732/169 398/730/58 +f 401/733/169 402/734/170 400/732/169 +f 403/735/170 392/726/57 402/736/170 +f 411/737/58 412/738/169 410/739/58 +f 413/740/169 414/741/170 412/738/169 +f 415/742/170 416/743/57 414/741/170 +f 417/744/57 418/745/167 416/743/57 +f 419/746/167 420/747/168 418/745/167 +f 421/748/168 410/739/58 420/749/168 f 4/426/47 21/448/47 22/434/48 f 12/410/49 29/449/49 30/435/50 f 5/424/48 22/457/48 23/436/51 @@ -1938,187 +1938,187 @@ f 2/431/59 19/443/59 20/446/61 f 10/414/60 27/445/60 28/447/62 f 3/429/61 20/446/61 21/448/47 f 11/412/62 28/447/62 29/449/49 -f 26/442/63 42/751/63 43/450/64 -f 19/443/65 35/752/65 36/451/66 -f 27/445/64 43/753/64 44/452/67 -f 20/446/66 36/754/66 37/453/68 -f 28/447/67 44/755/67 45/454/69 -f 21/448/68 37/756/68 38/455/70 -f 29/449/69 45/757/69 46/456/71 -f 22/457/70 38/496/70 39/458/72 -f 30/435/71 46/758/71 47/459/73 -f 23/436/72 39/759/72 40/460/74 -f 31/437/73 47/760/73 48/461/75 -f 24/438/74 40/761/74 41/462/76 -f 33/441/77 32/439/75 48/463/75 -f 25/440/76 41/762/76 42/465/63 -f 18/444/78 34/763/78 35/466/65 -f 33/441/77 49/764/77 34/467/78 -f 47/468/52 63/498/52 64/469/54 -f 40/471/53 56/499/53 57/472/55 -f 48/470/54 64/469/54 65/474/56 -f 41/473/55 57/472/55 58/476/57 -f 34/478/58 50/481/58 51/479/59 -f 49/475/56 65/474/56 50/481/58 -f 42/477/57 58/476/57 59/482/60 -f 35/480/59 51/479/59 52/484/61 -f 43/483/60 59/482/60 60/486/62 -f 36/485/61 52/484/61 53/488/47 -f 44/487/62 60/486/62 61/490/49 -f 37/489/47 53/488/47 54/492/48 -f 45/491/49 61/490/49 62/494/50 -f 38/496/48 54/765/48 55/497/51 -f 46/495/50 62/494/50 63/498/52 -f 39/458/51 55/497/51 56/499/53 -f 68/42/53 84/526/53 83/500/51 -f 76/24/54 92/503/54 91/501/52 -f 69/4/55 85/504/55 84/502/53 -f 77/25/56 93/505/56 92/503/54 -f 70/7/57 86/506/57 85/504/55 -f 78/28/58 94/507/58 93/505/56 -f 71/11/60 87/508/60 86/506/57 -f 79/32/59 95/509/59 94/507/58 -f 72/13/62 88/510/62 87/508/60 -f 80/34/61 96/511/61 95/509/59 -f 73/14/49 89/512/49 88/510/62 -f 81/38/47 97/514/47 96/511/61 -f 74/17/50 90/515/50 89/512/49 -f 67/37/51 83/500/51 82/513/48 -f 66/35/48 82/513/48 97/514/47 -f 75/20/52 91/501/52 90/515/50 -f 109/23/96 108/287/97 124/533/97 -f 109/26/96 125/534/96 126/535/98 -f 110/29/98 126/535/98 127/536/99 -f 111/288/99 127/536/99 128/537/100 -f 113/33/101 112/289/100 128/537/100 -f 100/36/102 99/290/103 115/539/103 -f 113/39/101 129/538/101 130/541/104 -f 100/291/102 116/540/102 117/542/105 -f 114/292/104 130/541/104 115/539/103 -f 102/6/106 101/5/105 117/543/105 -f 102/8/106 118/544/106 119/545/107 -f 103/285/107 119/545/107 120/546/108 -f 104/286/108 120/546/108 121/547/109 -f 105/15/109 121/547/109 122/548/110 -f 106/18/110 122/548/110 123/549/111 -f 107/21/111 123/549/111 124/533/97 -f 144/550/48 146/553/112 145/551/112 -f 146/553/112 148/555/113 147/554/113 -f 148/555/113 150/557/50 149/556/50 -f 150/557/50 152/559/114 151/558/114 -f 152/559/114 154/766/115 153/560/115 -f 154/561/115 144/550/48 143/552/48 -f 157/109/54 173/589/54 172/563/52 -f 165/91/53 181/566/53 180/564/51 -f 158/71/56 174/567/56 173/565/54 -f 166/92/55 182/568/55 181/566/53 -f 159/74/58 175/569/58 174/567/56 -f 167/95/57 183/570/57 182/568/55 -f 160/78/59 176/571/59 175/569/58 -f 168/99/60 184/572/60 183/570/57 -f 161/80/61 177/573/61 176/571/59 -f 169/101/62 185/574/62 184/572/60 -f 162/81/47 178/575/47 177/573/61 -f 170/105/49 186/577/49 185/574/62 -f 163/84/48 179/578/48 178/575/47 -f 156/104/52 172/563/52 171/576/50 -f 155/102/50 171/576/50 186/577/49 -f 164/87/51 180/564/51 179/578/48 -f 198/90/105 197/316/102 213/596/102 -f 198/93/105 214/597/105 215/598/106 -f 199/96/106 215/598/106 216/599/107 -f 201/98/108 200/317/107 216/599/107 -f 202/100/109 201/318/108 217/600/108 -f 188/319/111 204/605/111 205/602/97 -f 202/106/109 218/601/109 219/603/110 -f 190/108/96 189/320/97 205/602/97 -f 203/321/110 219/603/110 204/605/111 -f 190/72/96 206/767/96 207/606/98 -f 191/75/98 207/606/98 208/607/99 -f 192/314/99 208/607/99 209/608/100 -f 193/315/100 209/608/100 210/609/101 -f 194/82/101 210/609/101 211/610/104 -f 195/85/104 211/610/104 212/611/103 -f 196/88/103 212/611/103 213/596/102 -f 228/159/62 244/638/62 243/612/60 -f 236/142/61 252/615/61 251/613/59 -f 229/122/49 245/616/49 244/614/62 -f 237/143/47 253/617/47 252/615/61 -f 230/125/50 246/618/50 245/616/49 -f 238/147/48 254/619/48 253/617/47 -f 231/129/52 247/620/52 246/618/50 -f 239/149/51 255/621/51 254/619/48 -f 232/131/54 248/622/54 247/620/52 -f 240/151/53 256/623/53 255/621/51 -f 233/132/56 249/624/56 248/622/54 -f 241/155/55 257/626/55 256/623/53 -f 234/135/58 250/627/58 249/624/56 -f 227/154/60 243/612/60 242/625/57 -f 226/152/57 242/625/57 257/626/55 -f 235/138/59 251/613/59 250/627/58 -f 268/339/100 284/661/100 285/645/101 -f 269/144/101 285/645/101 286/646/104 -f 270/340/104 286/646/104 287/647/103 -f 271/341/103 287/647/103 288/648/102 -f 273/150/105 272/342/102 288/648/102 -f 259/343/107 275/653/107 276/650/108 -f 273/156/105 289/649/105 290/651/106 -f 260/344/108 276/650/108 277/652/109 -f 274/345/106 290/651/106 275/653/107 -f 262/124/110 261/123/109 277/654/109 -f 262/126/110 278/655/110 279/656/111 -f 263/337/111 279/656/111 280/657/97 -f 264/338/97 280/657/97 281/658/96 -f 265/133/96 281/658/96 282/659/98 -f 266/136/98 282/659/98 283/660/99 -f 267/139/99 283/660/99 284/661/100 -f 299/210/61 315/688/61 314/662/59 -f 307/192/62 323/665/62 322/663/60 -f 300/172/47 316/666/47 315/664/61 -f 308/193/49 324/667/49 323/665/62 -f 301/175/48 317/668/48 316/666/47 -f 309/196/50 325/669/50 324/667/49 -f 302/179/51 318/670/51 317/668/48 -f 310/200/52 326/671/52 325/669/50 -f 303/181/53 319/672/53 318/670/51 -f 311/202/54 327/673/54 326/671/52 -f 304/182/55 320/674/55 319/672/53 -f 312/206/56 328/676/56 327/673/54 -f 305/185/57 321/677/57 320/674/55 -f 298/205/59 314/662/59 313/675/58 -f 297/203/58 313/675/58 328/676/56 -f 306/188/60 322/663/60 321/677/57 -f 340/191/109 339/363/108 355/695/108 -f 340/194/109 356/696/109 357/697/110 -f 341/197/110 357/697/110 358/698/111 -f 343/199/97 342/364/111 358/698/111 -f 343/365/97 359/699/97 360/700/96 -f 330/366/99 346/704/99 347/701/100 -f 345/208/98 344/207/96 360/700/96 -f 332/209/101 331/367/100 347/701/100 -f 345/211/98 361/702/98 346/704/99 -f 333/174/104 332/173/101 348/705/101 -f 333/176/104 349/706/104 350/707/103 -f 335/178/102 334/361/103 350/707/103 -f 335/362/102 351/708/102 352/709/105 -f 336/183/105 352/709/105 353/710/106 -f 337/186/106 353/710/106 354/711/107 -f 338/189/107 354/711/107 355/695/108 -f 375/712/50 377/715/114 376/713/114 -f 377/715/114 379/717/115 378/716/115 -f 379/717/115 381/719/48 380/718/48 -f 381/719/48 383/721/112 382/720/112 -f 383/721/112 385/768/113 384/722/113 -f 385/723/113 375/712/50 374/714/50 -f 393/725/57 395/728/167 394/726/167 -f 395/728/167 397/730/168 396/729/168 -f 397/730/168 399/732/58 398/731/58 -f 399/732/58 401/734/169 400/733/169 -f 401/734/169 403/769/170 402/735/170 -f 403/736/170 393/725/57 392/727/57 -f 411/738/58 413/741/169 412/739/169 -f 413/741/169 415/743/170 414/742/170 -f 415/743/170 417/745/57 416/744/57 -f 417/745/57 419/747/167 418/746/167 -f 419/747/167 421/770/168 420/748/168 -f 421/749/168 411/738/58 410/740/58 +f 26/442/63 42/750/63 43/450/64 +f 19/443/65 35/751/65 36/451/66 +f 27/445/64 43/752/64 44/452/67 +f 20/446/66 36/753/66 37/453/68 +f 28/447/67 44/754/67 45/454/69 +f 21/448/68 37/755/68 38/455/70 +f 29/449/69 45/756/69 46/456/71 +f 22/457/70 38/495/70 39/458/72 +f 30/435/71 46/757/71 47/459/73 +f 23/436/72 39/758/72 40/460/74 +f 31/437/73 47/759/73 48/461/75 +f 24/438/74 40/760/74 41/462/76 +f 32/439/75 48/761/75 49/463/77 +f 25/440/76 41/762/76 42/464/63 +f 18/444/78 34/763/78 35/465/65 +f 33/441/77 49/764/77 34/466/78 +f 47/467/52 63/497/52 64/468/54 +f 40/470/53 56/498/53 57/471/55 +f 48/469/54 64/468/54 65/473/56 +f 41/472/55 57/471/55 58/475/57 +f 34/477/58 50/480/58 51/478/59 +f 49/474/56 65/473/56 50/480/58 +f 42/476/57 58/475/57 59/481/60 +f 35/479/59 51/478/59 52/483/61 +f 43/482/60 59/481/60 60/485/62 +f 36/484/61 52/483/61 53/487/47 +f 44/486/62 60/485/62 61/489/49 +f 37/488/47 53/487/47 54/491/48 +f 45/490/49 61/489/49 62/493/50 +f 38/495/48 54/765/48 55/496/51 +f 46/494/50 62/493/50 63/497/52 +f 39/458/51 55/496/51 56/498/53 +f 68/42/53 84/525/53 83/499/51 +f 76/24/54 92/502/54 91/500/52 +f 69/4/55 85/503/55 84/501/53 +f 77/25/56 93/504/56 92/502/54 +f 70/7/57 86/505/57 85/503/55 +f 78/28/58 94/506/58 93/504/56 +f 71/11/60 87/507/60 86/505/57 +f 79/32/59 95/508/59 94/506/58 +f 72/13/62 88/509/62 87/507/60 +f 80/34/61 96/510/61 95/508/59 +f 73/14/49 89/511/49 88/509/62 +f 81/38/47 97/513/47 96/510/61 +f 74/17/50 90/514/50 89/511/49 +f 67/37/51 83/499/51 82/512/48 +f 66/35/48 82/512/48 97/513/47 +f 75/20/52 91/500/52 90/514/50 +f 109/23/96 108/287/97 124/532/97 +f 109/26/96 125/533/96 126/534/98 +f 110/29/98 126/534/98 127/535/99 +f 111/288/99 127/535/99 128/536/100 +f 113/33/101 112/289/100 128/536/100 +f 100/36/102 99/290/103 115/538/103 +f 113/39/101 129/537/101 130/540/104 +f 100/291/102 116/539/102 117/541/105 +f 114/292/104 130/540/104 115/538/103 +f 102/6/106 101/5/105 117/542/105 +f 102/8/106 118/543/106 119/544/107 +f 103/285/107 119/544/107 120/545/108 +f 104/286/108 120/545/108 121/546/109 +f 105/15/109 121/546/109 122/547/110 +f 106/18/110 122/547/110 123/548/111 +f 107/21/111 123/548/111 124/532/97 +f 144/549/48 146/552/112 145/550/112 +f 146/552/112 148/554/113 147/553/113 +f 148/554/113 150/556/50 149/555/50 +f 150/556/50 152/558/114 151/557/114 +f 152/558/114 154/766/115 153/559/115 +f 154/560/115 144/549/48 143/551/48 +f 157/109/54 173/588/54 172/562/52 +f 165/91/53 181/565/53 180/563/51 +f 158/71/56 174/566/56 173/564/54 +f 166/92/55 182/567/55 181/565/53 +f 159/74/58 175/568/58 174/566/56 +f 167/95/57 183/569/57 182/567/55 +f 160/78/59 176/570/59 175/568/58 +f 168/99/60 184/571/60 183/569/57 +f 161/80/61 177/572/61 176/570/59 +f 169/101/62 185/573/62 184/571/60 +f 162/81/47 178/574/47 177/572/61 +f 170/105/49 186/576/49 185/573/62 +f 163/84/48 179/577/48 178/574/47 +f 156/104/52 172/562/52 171/575/50 +f 155/102/50 171/575/50 186/576/49 +f 164/87/51 180/563/51 179/577/48 +f 198/90/105 197/316/102 213/595/102 +f 198/93/105 214/596/105 215/597/106 +f 199/96/106 215/597/106 216/598/107 +f 201/98/108 200/317/107 216/598/107 +f 202/100/109 201/318/108 217/599/108 +f 188/319/111 204/604/111 205/601/97 +f 202/106/109 218/600/109 219/602/110 +f 190/108/96 189/320/97 205/601/97 +f 203/321/110 219/602/110 204/604/111 +f 190/72/96 206/767/96 207/605/98 +f 191/75/98 207/605/98 208/606/99 +f 192/314/99 208/606/99 209/607/100 +f 193/315/100 209/607/100 210/608/101 +f 194/82/101 210/608/101 211/609/104 +f 195/85/104 211/609/104 212/610/103 +f 196/88/103 212/610/103 213/595/102 +f 228/159/62 244/637/62 243/611/60 +f 236/142/61 252/614/61 251/612/59 +f 229/122/49 245/615/49 244/613/62 +f 237/143/47 253/616/47 252/614/61 +f 230/125/50 246/617/50 245/615/49 +f 238/147/48 254/618/48 253/616/47 +f 231/129/52 247/619/52 246/617/50 +f 239/149/51 255/620/51 254/618/48 +f 232/131/54 248/621/54 247/619/52 +f 240/151/53 256/622/53 255/620/51 +f 233/132/56 249/623/56 248/621/54 +f 241/155/55 257/625/55 256/622/53 +f 234/135/58 250/626/58 249/623/56 +f 227/154/60 243/611/60 242/624/57 +f 226/152/57 242/624/57 257/625/55 +f 235/138/59 251/612/59 250/626/58 +f 268/339/100 284/660/100 285/644/101 +f 269/144/101 285/644/101 286/645/104 +f 270/340/104 286/645/104 287/646/103 +f 271/341/103 287/646/103 288/647/102 +f 273/150/105 272/342/102 288/647/102 +f 259/343/107 275/652/107 276/649/108 +f 273/156/105 289/648/105 290/650/106 +f 260/344/108 276/649/108 277/651/109 +f 274/345/106 290/650/106 275/652/107 +f 262/124/110 261/123/109 277/653/109 +f 262/126/110 278/654/110 279/655/111 +f 263/337/111 279/655/111 280/656/97 +f 264/338/97 280/656/97 281/657/96 +f 265/133/96 281/657/96 282/658/98 +f 266/136/98 282/658/98 283/659/99 +f 267/139/99 283/659/99 284/660/100 +f 299/210/61 315/687/61 314/661/59 +f 307/192/62 323/664/62 322/662/60 +f 300/172/47 316/665/47 315/663/61 +f 308/193/49 324/666/49 323/664/62 +f 301/175/48 317/667/48 316/665/47 +f 309/196/50 325/668/50 324/666/49 +f 302/179/51 318/669/51 317/667/48 +f 310/200/52 326/670/52 325/668/50 +f 303/181/53 319/671/53 318/669/51 +f 311/202/54 327/672/54 326/670/52 +f 304/182/55 320/673/55 319/671/53 +f 312/206/56 328/675/56 327/672/54 +f 305/185/57 321/676/57 320/673/55 +f 298/205/59 314/661/59 313/674/58 +f 297/203/58 313/674/58 328/675/56 +f 306/188/60 322/662/60 321/676/57 +f 340/191/109 339/363/108 355/694/108 +f 340/194/109 356/695/109 357/696/110 +f 341/197/110 357/696/110 358/697/111 +f 343/199/97 342/364/111 358/697/111 +f 343/365/97 359/698/97 360/699/96 +f 330/366/99 346/703/99 347/700/100 +f 345/208/98 344/207/96 360/699/96 +f 332/209/101 331/367/100 347/700/100 +f 345/211/98 361/701/98 346/703/99 +f 333/174/104 332/173/101 348/704/101 +f 333/176/104 349/705/104 350/706/103 +f 335/178/102 334/361/103 350/706/103 +f 335/362/102 351/707/102 352/708/105 +f 336/183/105 352/708/105 353/709/106 +f 337/186/106 353/709/106 354/710/107 +f 338/189/107 354/710/107 355/694/108 +f 375/711/50 377/714/114 376/712/114 +f 377/714/114 379/716/115 378/715/115 +f 379/716/115 381/718/48 380/717/48 +f 381/718/48 383/720/112 382/719/112 +f 383/720/112 385/768/113 384/721/113 +f 385/722/113 375/711/50 374/713/50 +f 393/724/57 395/727/167 394/725/167 +f 395/727/167 397/729/168 396/728/168 +f 397/729/168 399/731/58 398/730/58 +f 399/731/58 401/733/169 400/732/169 +f 401/733/169 403/769/170 402/734/170 +f 403/735/170 393/724/57 392/726/57 +f 411/737/58 413/740/169 412/738/169 +f 413/740/169 415/742/170 414/741/170 +f 415/742/170 417/744/57 416/743/57 +f 417/744/57 419/746/167 418/745/167 +f 419/746/167 421/770/168 420/747/168 +f 421/748/168 411/737/58 410/739/58 diff --git a/src/main/resources/assets/hbm/models/missile_v2.obj b/src/main/resources/assets/hbm/models/missile_v2.obj new file mode 100644 index 000000000..16b7be918 --- /dev/null +++ b/src/main/resources/assets/hbm/models/missile_v2.obj @@ -0,0 +1,572 @@ +# Blender v2.79 (sub 0) OBJ File: 'missile_v2.blend' +# www.blender.org +o Cylinder +v 0.000000 1.500000 -0.500000 +v -0.191342 1.500000 -0.461940 +v -0.353553 1.500000 -0.353553 +v -0.461940 1.500000 -0.191342 +v -0.500000 1.500000 0.000000 +v -0.461940 1.500000 0.191342 +v -0.353553 1.500000 0.353553 +v -0.191342 1.500000 0.461940 +v -0.000000 1.500000 0.500000 +v 0.191342 1.500000 0.461940 +v 0.353553 1.500000 0.353553 +v 0.461940 1.500000 0.191342 +v 0.500000 1.500000 -0.000000 +v 0.461940 1.500000 -0.191342 +v 0.353553 1.500000 -0.353554 +v 0.191341 1.500000 -0.461940 +v 0.000000 4.000000 -0.500000 +v -0.191342 4.000000 -0.461940 +v -0.353553 4.000000 -0.353553 +v -0.461940 4.000000 -0.191342 +v -0.500000 4.000000 0.000000 +v -0.461940 4.000000 0.191342 +v -0.353553 4.000000 0.353553 +v -0.191342 4.000000 0.461940 +v -0.000000 4.000000 0.500000 +v 0.191342 4.000000 0.461940 +v 0.353553 4.000000 0.353554 +v 0.461940 4.000000 0.191342 +v 0.500000 4.000000 -0.000000 +v 0.461940 4.000000 -0.191342 +v 0.353553 4.000000 -0.353554 +v 0.191341 4.000000 -0.461940 +v -0.000000 5.500000 -0.375000 +v -0.143506 5.500000 -0.346455 +v -0.265165 5.500000 -0.265165 +v -0.346455 5.500000 -0.143506 +v -0.375000 5.500000 0.000000 +v -0.346455 5.500000 0.143506 +v -0.265165 5.500000 0.265165 +v -0.143506 5.500000 0.346455 +v -0.000000 5.500000 0.375000 +v 0.143506 5.500000 0.346455 +v 0.265165 5.500000 0.265165 +v 0.346455 5.500000 0.143506 +v 0.375000 5.500000 -0.000000 +v 0.346455 5.500000 -0.143506 +v 0.265165 5.500000 -0.265165 +v 0.143506 5.500000 -0.346455 +v -0.000000 7.000000 0.000000 +v -0.000000 0.500000 -0.375000 +v -0.143506 0.500000 -0.346455 +v -0.265165 0.500000 -0.265165 +v -0.346455 0.500000 -0.143506 +v -0.375000 0.500000 0.000000 +v -0.346455 0.500000 0.143506 +v -0.265165 0.500000 0.265165 +v -0.143506 0.500000 0.346455 +v -0.000000 0.500000 0.375000 +v 0.143506 0.500000 0.346455 +v 0.265165 0.500000 0.265165 +v 0.346455 0.500000 0.143506 +v 0.375000 0.500000 -0.000000 +v 0.346455 0.500000 -0.143506 +v 0.265165 0.500000 -0.265165 +v 0.143506 0.500000 -0.346455 +v -0.198874 0.500000 -0.243068 +v 0.243068 0.500000 -0.198874 +v -0.552427 -0.000000 -0.596621 +v -0.198874 2.500000 -0.243068 +v -0.596621 -0.000000 -0.552427 +v 0.596621 -0.000000 -0.552427 +v -0.243068 0.500000 -0.198874 +v -0.243068 2.500000 -0.198874 +v -0.729204 -0.000000 -0.773398 +v -0.729204 1.500000 -0.773398 +v -0.773398 1.500000 -0.729204 +v -0.773398 -0.000000 -0.729204 +v 0.243068 2.500000 -0.198874 +v 0.552427 -0.000000 -0.596621 +v 0.198874 0.500000 -0.243068 +v 0.198874 2.500000 -0.243068 +v 0.773398 -0.000000 -0.729204 +v 0.773398 1.500000 -0.729204 +v 0.729204 1.500000 -0.773398 +v 0.729204 -0.000000 -0.773398 +v -0.729204 -0.000000 0.773398 +v -0.729204 1.500000 0.773398 +v -0.773398 1.500000 0.729204 +v -0.773398 -0.000000 0.729204 +v -0.198874 2.500000 0.243068 +v -0.198874 0.500000 0.243068 +v -0.552427 -0.000000 0.596621 +v -0.243068 2.500000 0.198874 +v -0.596621 -0.000000 0.552427 +v -0.243068 0.500000 0.198874 +v 0.773398 -0.000000 0.729204 +v 0.773398 1.500000 0.729204 +v 0.729204 1.500000 0.773398 +v 0.729204 -0.000000 0.773398 +v 0.243068 2.500000 0.198874 +v 0.243068 0.500000 0.198874 +v 0.596621 -0.000000 0.552427 +v 0.198874 2.500000 0.243068 +v 0.552427 -0.000000 0.596621 +v 0.198874 0.500000 0.243068 +vt 0.954652 0.411214 +vt 0.954652 0.492632 +vt 0.815840 0.492632 +vt 0.803279 0.240385 +vt 0.786885 0.009615 +vt 0.803279 0.009615 +vt 0.803279 0.750000 +vt 0.786885 0.519231 +vt 0.803279 0.519231 +vt 1.000000 0.509615 +vt 0.868852 0.519231 +vt 0.868852 0.509615 +vt 1.000000 -0.000000 +vt 0.868852 0.009615 +vt 0.868852 -0.000000 +vt 0.803279 0.750000 +vt 1.000000 0.596154 +vt 0.803279 0.519231 +vt 0.803279 0.240385 +vt 1.000000 0.086538 +vt 0.803279 0.009615 +vt 1.000000 0.596154 +vt 1.000000 0.086538 +vt 0.803279 0.509615 +vt 0.786885 0.750000 +vt 0.803279 0.903846 +vt 0.786885 0.903846 +vt 0.803279 0.000000 +vt 0.786885 0.240385 +vt 0.803279 0.394231 +vt 0.786885 0.394231 +vt 0.786885 0.394231 +vt 0.803279 0.240385 +vt 0.803279 0.394231 +vt 0.868852 0.009615 +vt 0.803279 0.000000 +vt 0.868852 -0.000000 +vt 0.803279 0.009615 +vt 1.000000 0.086538 +vt 0.803279 0.240385 +vt 1.000000 0.086538 +vt 0.803279 0.009615 +vt 1.000000 -0.000000 +vt 0.786885 0.009615 +vt 0.786885 0.750000 +vt 0.803279 0.903846 +vt 0.786885 0.903846 +vt 0.868852 0.509615 +vt 0.803279 0.519231 +vt 0.803279 0.509615 +vt 0.803279 0.750000 +vt 1.000000 0.596154 +vt 0.803279 0.750000 +vt 1.000000 0.596154 +vt 0.803279 0.519231 +vt 1.000000 0.519231 +vt 1.000000 0.509615 +vt 0.786885 0.519231 +vt 0.815840 0.411214 +vt 0.847684 0.398734 +vt 0.885246 0.394352 +vt 0.922808 0.398734 +vt 0.975929 0.429891 +vt 0.983401 0.451923 +vt 0.975929 0.473955 +vt 0.922808 0.505112 +vt 0.885246 0.509494 +vt 0.847684 0.505112 +vt 0.794563 0.473955 +vt 0.787091 0.451923 +vt 0.794563 0.429891 +vt 1.000000 0.519231 +vt 1.000000 0.009615 +vt 1.000000 0.903846 +vt 0.868852 0.519231 +vt 1.000000 0.394231 +vt 0.868852 0.009615 +vt 1.000000 0.903846 +vt 1.000000 0.394231 +vt 0.786885 0.240385 +vt 1.000000 0.394231 +vt 1.000000 0.394231 +vt 0.868852 0.009615 +vt 1.000000 0.009615 +vt 0.868852 0.519231 +vt 1.000000 0.903846 +vt 1.000000 0.903846 +vt 0.868852 0.519231 +vt 0.295082 0.153846 +vt 0.245902 0.538462 +vt 0.245902 0.153846 +vt 0.737705 0.153846 +vt 0.688525 0.538462 +vt 0.688525 0.153846 +vt 0.344262 0.153846 +vt 0.295082 0.538462 +vt 0.786885 0.153846 +vt 0.737705 0.538462 +vt 0.393443 0.153846 +vt 0.344262 0.538462 +vt 0.049180 0.153846 +vt -0.000000 0.538462 +vt -0.000000 0.153846 +vt 0.442623 0.153846 +vt 0.393443 0.538462 +vt 0.098361 0.153846 +vt 0.049180 0.538462 +vt 0.491803 0.153846 +vt 0.442623 0.538462 +vt 0.147541 0.153846 +vt 0.098361 0.538462 +vt 0.540984 0.153846 +vt 0.491803 0.538462 +vt 0.196721 0.538462 +vt 0.147541 0.538462 +vt 0.639344 0.153846 +vt 0.590164 0.538462 +vt 0.590164 0.153846 +vt 0.540984 0.538462 +vt 0.196721 0.153846 +vt 0.639344 0.538462 +vt 0.573770 0.769231 +vt 0.540984 0.769231 +vt 0.196721 0.769231 +vt 0.672131 0.769231 +vt 0.639344 0.769231 +vt 0.278689 0.769231 +vt 0.245902 0.769231 +vt 0.688525 0.769231 +vt 0.295082 0.769231 +vt 0.770492 0.769231 +vt 0.737705 0.769231 +vt 0.377049 0.769231 +vt 0.344262 0.769231 +vt -0.000000 0.769231 +vt 0.393443 0.769231 +vt 0.081967 0.769231 +vt 0.049180 0.769231 +vt 0.442623 0.769231 +vt 0.098361 0.769231 +vt 0.491803 0.769231 +vt 0.147541 0.769231 +vt 0.590164 0.769231 +vt 0.655738 1.000000 +vt 0.721311 0.769231 +vt 0.704918 1.000000 +vt 0.754098 1.000000 +vt 0.032787 0.769231 +vt 0.016393 1.000000 +vt 0.065574 1.000000 +vt 0.131148 0.769231 +vt 0.114754 1.000000 +vt 0.180328 0.769231 +vt 0.163934 1.000000 +vt 0.229508 0.769231 +vt 0.213115 1.000000 +vt 0.262295 1.000000 +vt 0.327869 0.769231 +vt 0.311475 1.000000 +vt 0.360656 1.000000 +vt 0.426230 0.769231 +vt 0.409836 1.000000 +vt 0.475410 0.769231 +vt 0.459016 1.000000 +vt 0.524590 0.769231 +vt 0.508197 1.000000 +vt 0.557377 1.000000 +vt 0.622951 0.769231 +vt 0.606557 1.000000 +vt 0.278689 0.000000 +vt 0.688525 0.000000 +vt 0.721311 0.000000 +vt 0.295082 0.000000 +vt 0.327869 0.000000 +vt 0.737705 0.000000 +vt 0.770492 0.000000 +vt 0.344262 0.000000 +vt 0.377049 0.000000 +vt -0.000000 0.000000 +vt 0.032787 0.000000 +vt 0.426230 0.000000 +vt 0.081967 0.000000 +vt 0.475410 0.000000 +vt 0.131148 0.000000 +vt 0.491803 0.000000 +vt 0.524590 0.000000 +vt 0.180328 0.000000 +vt 0.622951 0.000000 +vt 0.573770 0.000000 +vt 0.196721 0.000000 +vt 0.229508 0.000000 +vt 0.639344 0.000000 +vt 0.672131 0.000000 +vt 0.786885 0.538462 +vt 0.245902 0.000000 +vt 0.393443 0.000000 +vt 0.049180 0.000000 +vt 0.442623 0.000000 +vt 0.098361 0.000000 +vt 0.147541 0.000000 +vt 0.590164 0.000000 +vt 0.540984 0.000000 +vn 0.0000 -1.0000 0.0000 +vn 0.7071 -0.0000 -0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.5000 -0.7071 0.5000 +vn -0.5000 -0.7071 0.5000 +vn 0.7071 -0.0000 0.7071 +vn -0.7071 -0.0000 0.7071 +vn -0.5657 0.6000 -0.5657 +vn 0.5657 0.6000 -0.5657 +vn -0.5657 0.6000 0.5657 +vn 0.5000 -0.7071 -0.5000 +vn 0.5657 0.6000 0.5657 +vn -0.5000 -0.7071 -0.5000 +vn 0.7058 -0.0617 0.7058 +vn 0.3824 0.0413 0.9231 +vn 0.3820 -0.0617 0.9221 +vn -0.9221 -0.0617 -0.3820 +vn -0.7065 0.0413 -0.7065 +vn -0.7058 -0.0617 -0.7058 +vn 0.9221 -0.0617 0.3820 +vn 0.7065 0.0413 0.7065 +vn -0.9981 -0.0617 -0.0000 +vn -0.9231 0.0413 -0.3824 +vn 0.9981 -0.0617 -0.0000 +vn 0.9231 0.0413 0.3824 +vn -0.9221 -0.0617 0.3820 +vn -0.9991 0.0413 0.0000 +vn 0.9221 -0.0617 -0.3820 +vn 0.9991 0.0413 -0.0000 +vn -0.7058 -0.0617 0.7058 +vn -0.9231 0.0413 0.3824 +vn 0.7058 -0.0617 -0.7058 +vn 0.9231 0.0413 -0.3824 +vn -0.3820 -0.0617 0.9221 +vn -0.7065 0.0413 0.7065 +vn 0.3820 -0.0617 -0.9221 +vn 0.7065 0.0413 -0.7065 +vn 0.0000 0.0413 0.9991 +vn -0.3824 0.0413 0.9231 +vn -0.3820 -0.0617 -0.9221 +vn -0.0000 0.0413 -0.9991 +vn -0.0000 -0.0617 -0.9981 +vn 0.3824 0.0413 -0.9231 +vn -0.0000 -0.0617 0.9981 +vn -0.3824 0.0413 -0.9231 +vn -0.0000 0.1617 -0.9868 +vn 0.3776 0.1617 -0.9117 +vn -0.0000 0.1617 0.9868 +vn -0.6978 0.1617 -0.6978 +vn -0.3776 0.1617 -0.9117 +vn 0.6978 0.1617 0.6978 +vn 0.3776 0.1617 0.9117 +vn -0.9868 0.1617 0.0000 +vn -0.9117 0.1617 -0.3776 +vn 0.9868 0.1617 0.0000 +vn 0.9117 0.1617 0.3776 +vn -0.6978 0.1617 0.6978 +vn -0.9117 0.1617 0.3776 +vn 0.9117 0.1617 -0.3776 +vn 0.6978 0.1617 -0.6978 +vn -0.3776 0.1617 0.9117 +vn -0.0000 1.0000 0.0000 +vn 0.7016 -0.1240 0.7016 +vn -0.7016 -0.1240 -0.7016 +vn -0.9167 -0.1240 -0.3797 +vn 0.9167 -0.1240 0.3797 +vn -0.9923 -0.1240 -0.0000 +vn 0.9923 -0.1240 -0.0000 +vn -0.9167 -0.1240 0.3797 +vn 0.9167 -0.1240 -0.3797 +vn -0.7016 -0.1240 0.7016 +vn 0.7016 -0.1240 -0.7016 +vn -0.3797 -0.1240 0.9167 +vn 0.3797 -0.1240 -0.9167 +vn 0.0000 -0.1240 0.9923 +vn -0.3797 -0.1240 -0.9167 +vn -0.0000 -0.1240 -0.9923 +vn 0.3797 -0.1240 0.9167 +s off +f 64/1/1 60/2/1 56/3/1 +f 84/4/2 82/5/2 85/6/2 +f 76/7/3 74/8/3 77/9/3 +f 66/10/4 70/11/4 68/12/4 +f 67/13/5 79/14/5 71/15/5 +f 75/16/2 66/17/2 74/18/2 +f 83/19/6 67/20/6 82/21/6 +f 76/7/7 77/9/7 72/22/7 +f 84/4/3 85/6/3 80/23/3 +f 70/11/1 74/24/1 68/12/1 +f 75/25/8 73/26/8 69/27/8 +f 71/15/1 85/6/1 82/28/1 +f 83/29/9 81/30/9 78/31/9 +f 93/32/10 87/33/10 90/34/10 +f 92/35/1 89/36/1 94/37/1 +f 87/33/6 86/38/6 91/39/6 +f 88/40/3 95/41/3 89/42/3 +f 95/43/11 92/35/11 94/37/11 +f 87/33/7 89/44/7 86/38/7 +f 98/45/12 100/46/12 103/47/12 +f 104/48/1 96/49/1 99/50/1 +f 97/51/2 96/49/2 101/52/2 +f 98/53/7 105/54/7 99/55/7 +f 101/56/13 104/48/13 105/57/13 +f 97/51/6 99/58/6 96/49/6 +f 52/59/1 51/60/1 50/61/1 +f 50/61/1 65/62/1 64/1/1 +f 64/1/1 63/63/1 60/2/1 +f 63/63/1 62/64/1 60/2/1 +f 62/64/1 61/65/1 60/2/1 +f 60/2/1 59/66/1 56/3/1 +f 59/66/1 58/67/1 56/3/1 +f 58/67/1 57/68/1 56/3/1 +f 56/3/1 55/69/1 54/70/1 +f 54/70/1 53/71/1 52/59/1 +f 52/59/1 50/61/1 64/1/1 +f 56/3/1 54/70/1 52/59/1 +f 52/59/1 64/1/1 56/3/1 +f 84/4/2 83/29/2 82/5/2 +f 76/7/3 75/25/3 74/8/3 +f 66/10/4 72/72/4 70/11/4 +f 67/13/5 80/73/5 79/14/5 +f 69/74/2 66/17/2 75/16/2 +f 66/17/2 68/75/2 74/18/2 +f 78/76/6 67/20/6 83/19/6 +f 67/20/6 71/77/6 82/21/6 +f 70/11/7 72/22/7 77/9/7 +f 72/22/7 73/78/7 76/7/7 +f 79/14/3 80/23/3 85/6/3 +f 80/23/3 81/79/3 84/4/3 +f 70/11/1 77/9/1 74/24/1 +f 75/25/8 76/7/8 73/26/8 +f 71/15/1 79/14/1 85/6/1 +f 83/29/9 84/4/9 81/30/9 +f 93/32/10 88/80/10 87/33/10 +f 92/35/1 86/38/1 89/36/1 +f 92/35/6 91/39/6 86/38/6 +f 91/39/6 90/81/6 87/33/6 +f 93/82/3 95/41/3 88/40/3 +f 95/41/3 94/83/3 89/42/3 +f 95/43/11 91/84/11 92/35/11 +f 87/33/7 88/80/7 89/44/7 +f 98/45/12 97/51/12 100/46/12 +f 104/48/1 102/85/1 96/49/1 +f 102/85/2 101/52/2 96/49/2 +f 101/52/2 100/86/2 97/51/2 +f 103/87/7 105/54/7 98/53/7 +f 105/54/7 104/88/7 99/55/7 +f 101/56/13 102/85/13 104/48/13 +f 97/51/6 98/45/6 99/58/6 +s 1 +f 11/89/14 26/90/15 10/91/16 +f 4/92/17 19/93/18 3/94/19 +f 12/95/20 27/96/21 11/89/14 +f 5/97/22 20/98/23 4/92/17 +f 13/99/24 28/100/25 12/95/20 +f 6/101/26 21/102/27 5/103/22 +f 14/104/28 29/105/29 13/99/24 +f 7/106/30 22/107/31 6/101/26 +f 15/108/32 30/109/33 14/104/28 +f 8/110/34 23/111/35 7/106/30 +f 16/112/36 31/113/37 15/108/32 +f 8/110/34 25/114/38 24/115/39 +f 2/116/40 17/117/41 1/118/42 +f 1/118/42 32/119/43 16/112/36 +f 10/91/16 25/114/38 9/120/44 +f 3/94/19 18/121/45 2/116/40 +f 32/119/43 33/122/46 48/123/47 +f 26/90/15 41/124/48 25/114/38 +f 18/121/45 35/125/49 34/126/50 +f 26/90/15 43/127/51 42/128/52 +f 20/98/23 35/129/49 19/93/18 +f 28/100/25 43/130/51 27/96/21 +f 20/98/23 37/131/53 36/132/54 +f 28/100/25 45/133/55 44/134/56 +f 22/107/31 37/135/53 21/102/27 +f 30/109/33 45/136/55 29/105/29 +f 22/107/31 39/137/57 38/138/58 +f 31/113/37 46/139/59 30/109/33 +f 24/115/39 39/140/57 23/111/35 +f 32/119/43 47/141/60 31/113/37 +f 25/114/38 40/142/61 24/115/39 +f 18/121/45 33/143/46 17/117/41 +f 34/126/50 35/125/49 49/144/62 +f 35/129/49 36/145/54 49/146/62 +f 36/132/54 37/131/53 49/147/62 +f 37/135/53 38/148/58 49/149/62 +f 38/138/58 39/137/57 49/150/62 +f 39/140/57 40/151/61 49/152/62 +f 40/142/61 41/153/48 49/154/62 +f 41/124/48 42/155/52 49/156/62 +f 42/128/52 43/127/51 49/157/62 +f 43/130/51 44/158/56 49/159/62 +f 44/134/56 45/133/55 49/160/62 +f 45/136/55 46/161/59 49/162/62 +f 46/139/59 47/163/60 49/164/62 +f 47/141/60 48/165/47 49/166/62 +f 48/123/47 33/122/46 49/167/62 +f 33/143/46 34/168/50 49/169/62 +f 10/91/16 60/170/63 11/89/14 +f 4/92/17 52/171/64 53/172/65 +f 12/95/20 60/173/63 61/174/66 +f 5/97/22 53/175/65 54/176/67 +f 13/99/24 61/177/66 62/178/68 +f 6/101/26 54/179/67 55/180/69 +f 13/99/24 63/181/70 14/104/28 +f 6/101/26 56/182/71 7/106/30 +f 14/104/28 64/183/72 15/108/32 +f 7/106/30 57/184/73 8/110/34 +f 16/112/36 64/185/72 65/186/74 +f 8/110/34 58/187/75 9/120/44 +f 1/118/42 51/188/76 2/116/40 +f 16/112/36 50/189/77 1/118/42 +f 10/91/16 58/190/75 59/191/78 +f 3/94/19 51/192/76 52/193/64 +f 11/89/14 27/96/21 26/90/15 +f 4/92/17 20/98/23 19/93/18 +f 12/95/20 28/100/25 27/96/21 +f 5/97/22 21/194/27 20/98/23 +f 13/99/24 29/105/29 28/100/25 +f 6/101/26 22/107/31 21/102/27 +f 14/104/28 30/109/33 29/105/29 +f 7/106/30 23/111/35 22/107/31 +f 15/108/32 31/113/37 30/109/33 +f 8/110/34 24/115/39 23/111/35 +f 16/112/36 32/119/43 31/113/37 +f 8/110/34 9/120/44 25/114/38 +f 2/116/40 18/121/45 17/117/41 +f 1/118/42 17/117/41 32/119/43 +f 10/91/16 26/90/15 25/114/38 +f 3/94/19 19/93/18 18/121/45 +f 32/119/43 17/117/41 33/122/46 +f 26/90/15 42/155/52 41/124/48 +f 18/121/45 19/93/18 35/125/49 +f 26/90/15 27/96/21 43/127/51 +f 20/98/23 36/145/54 35/129/49 +f 28/100/25 44/158/56 43/130/51 +f 20/98/23 21/194/27 37/131/53 +f 28/100/25 29/105/29 45/133/55 +f 22/107/31 38/148/58 37/135/53 +f 30/109/33 46/161/59 45/136/55 +f 22/107/31 23/111/35 39/137/57 +f 31/113/37 47/163/60 46/139/59 +f 24/115/39 40/151/61 39/140/57 +f 32/119/43 48/165/47 47/141/60 +f 25/114/38 41/153/48 40/142/61 +f 18/121/45 34/168/50 33/143/46 +f 10/91/16 59/195/78 60/170/63 +f 4/92/17 3/94/19 52/171/64 +f 12/95/20 11/89/14 60/173/63 +f 5/97/22 4/92/17 53/175/65 +f 13/99/24 12/95/20 61/177/66 +f 6/101/26 5/103/22 54/179/67 +f 13/99/24 62/196/68 63/181/70 +f 6/101/26 55/197/69 56/182/71 +f 14/104/28 63/198/70 64/183/72 +f 7/106/30 56/199/71 57/184/73 +f 16/112/36 15/108/32 64/185/72 +f 8/110/34 57/200/73 58/187/75 +f 1/118/42 50/201/77 51/188/76 +f 16/112/36 65/202/74 50/189/77 +f 10/91/16 9/120/44 58/190/75 +f 3/94/19 2/116/40 51/192/76 diff --git a/src/main/resources/assets/hbm/textures/models/missile_v2.png b/src/main/resources/assets/hbm/textures/models/missile_v2.png new file mode 100644 index 0000000000000000000000000000000000000000..9959468ec14a38c89e1c2cd39162f7d11bc17ad3 GIT binary patch literal 885 zcmeAS@N?(olHy`uVBq!ia0vp^wm_W0!3HFq6o0G*QY^(zo*^7SP{WbZ!N9<*Ba_2b)q7Gs^pVA@ zZ_JMyoDW9*-gIpr1A|vg+~Lf((%#FwPQpsKfiQrzEjO`37H zEY)`z6`$MNHGP^u`Gv$Kg>Eu#QpFrEe^#!KvkH9?;vGCScB@Hi)XO_R)&^C*Y;v7z z@|^3fNni3O`K4>(4|nd0)=af+tCqd@$Ts5BrX{L(YA)ITGu!d~##s|zrI)Y2YW-5G zz2CiU`my8gcO{q~Tj-sd&%n@@Sh4!?FUb^(s&M)8YnKN+Rb`=Sfa7f&(aaH2TAqEEBdxtOa zKip9M$I|-{gZ8g`{l}fZsOD{-o$*`ual61j4rYcem)b9!d%ij2_uj|B0f!juTi@K~ znyg}{n!dKy^7*9oZofXsyC>vfITUTRz0t%)WQYNjdfOj|htv2E~^6Pczn-+>_9My!hiufz73V zG-M7wn&B*FR8|$7Gxc8d5%XgWTfhC?zSS(!`h=5Mv(CoQs(LB=dl^goBm)(-dn>OV zdu_1llJ&78>qXwY^8Kj$QdhCsZ~B4HKU>zlK4HDe^0LX(`W-=+j&io&Pz@?AoW#8S z=!q}Ox(% zSHIl+`qCeTR%sne%tZBh6@=LWlzJcXRK8kbxwzFTlke4%>?+|Elbpa##^|@Z}e{SiwdRbYuJk2E3_chPq53gN)ABx$pE#7~B w^6R<9Pm;rq{?|KgIekvvw|o0nc>UvFUgSJ6IIa8=Fds2^y85}Sb4q9e0MSdXv;Y7A literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/missile_v2_bu.png b/src/main/resources/assets/hbm/textures/models/missile_v2_bu.png new file mode 100644 index 0000000000000000000000000000000000000000..84ca714b3067cdc37db4d46457caeca792f7020d GIT binary patch literal 846 zcmV-U1F`&xP)`~~#38;`( zqT{bXj$@O7tl7-NpA^XuqFsS5>-&CMkl3EX z7un&DvNVtc%NX|35e z9?9u+TAe?B2d>xa)IJ;ztZg!mZ6wk6{ZsKN(R zG{@e_D^LI4fv+T)+U)54{qqxQf41TC^KOw7z2QW&>`g?X?X9(*+H8B@iXznhY{Hkd z9PRA^PBaI&bDCvuv~xPz+XI|vj=kZ|X%1OcRiXB06E2s_;%(sWvYy>q)^(l0iJr4~ zUDpW_V7kc1D3}N^UF5R2DVWI0dm~`m+ZIejlx?;*8(<&hrfD7o69MMEM|^^b00Nm$ zoYs0M%hLHts;Uw_BRikZi~6^1i+7#o;0$DIBRV%egdE@QE_@m$vQ@F`40~y=iuk_h!e5DlS zc|I-YdG2(|>@;*uv|Pe(j^B0N6u9hd7X>nD*iqYDX98vKvA_9o!H(Xq^!cmteTcuc zJRXnEduAU`3s)pfPB^d%SENl&<}hEO^x8Xg8tE_7R8G;Mvng9=YhvLF0i=uOm@Qm+ zhurm+uSvq?y+>lHGff<9q8!d^v-!)^e_JMf~&WrfCw_6ArEQ;EUw{ Y0leu#$u@hv)c^nh07*qoM6N<$f^Q(59smFU literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/missile_v2_cl.png b/src/main/resources/assets/hbm/textures/models/missile_v2_cl.png new file mode 100644 index 0000000000000000000000000000000000000000..7399458d671e3a050ebc831f3dd34c968308f310 GIT binary patch literal 887 zcmV--1Bm>IP)rVUt1C%Ti`px6%c+^2zmZ!2TPXGWE+hf>_{UK$d z=(P|Xd}n!M(yUbKbKT zZF6*K+qT^S#kLQZXJ$X zVp|6@+R6RH9clA^{PWbcvF6S0IgN?S*@?!CcKYS>*BNdl9FOqSf002tHJ!RNFy5P; zXq5K`0Mgz&&-1R04o>#_eVDtMiNoP=b{x&y0Xxwc*v)B_d2^f7(Yzh76OA!%c5@m- zdjD`2>V9THUs_^ex60~UT2@t+uoLYw@v5p40EX!z7fLX|yJ$T*NU^PBGjClm06;qQ zA6q)6d7FX(0Mgm+W(LeruIu_jFaX26x56bD;C-ZD-(I>oLaklbbzl~5rB2q7+nd(AsU zWE84@U9glAq?Bjkb-bddL`E2{-MoVyr=fxG)?EY6sBWSurhDcYwPE9yd$lLeN(QPvwzI{W@zs{<(gad?}Gf&a<|)A z*UT<@3s)!wCm2wLE7XD$ANnhlPV)|(M!IF1$|^c^Hf8Q?O)Oji=6P>#;mQ(n*VoE> zV_=u}R>Z;;19o|DRN)H1GMrK94LluIjtpD4LViwr*onr# zPINSH2kb;+U?)17w*z*fF|ZRI&D#Mx(HPi?j^^!vooEc~L`U;>z)mywlYxN0rEg)7wer^gho`~wUCS$$5Y1xx?{ N002ovPDHLkV1j<%uc-h4 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/missile_v2_inc.png b/src/main/resources/assets/hbm/textures/models/missile_v2_inc.png new file mode 100644 index 0000000000000000000000000000000000000000..18faa37efcc020494ce3ac30cf6d2452a54d0c82 GIT binary patch literal 942 zcmV;f15x~mP)WX`Y zYwjIFaZOyHAi1!Fx zg~_Qe44F}SD2&oWVU!*U@$}|u|0KliQyAox4qke*yj9K2Hp|;x@X{KZ6EqlUJ0k`o zZ8Hez_U9g6+EwVFrMb!uEzJQd?Hj)#rMo69aMF?)+GP9u>ik0}`%huQePan_zm0Sr z9@}Ry`$yIB+W7WWpWa;2_W89_enLc46vcjr zWLukpeaE+vTy3~3Edg$vmJDrh(vqtUCoKU^dQ5KyIB5xR(qnovz)4GhlOEHX0Zv*1 zob;I93~lb;5@Od*-x%nt#xvpPvCsI%n1kn4RUIAU zlqT}56EpuJt1o-DF6f=i-YOyfl$cmXAY0Zw{MZw5GN32@R~>767A-VL$7^lrMQaMB$1dKa9uE4|wbd~nk3 z^meUiLM`hQMRD-pmT-e#)_M8-%ej9(pR>1F1^>IOyZJnFt#IUdzT+zSUj Date: Fri, 24 Nov 2023 15:00:52 +0100 Subject: [PATCH 393/432] new radar targeting interface, second GUI, target localiaztion --- .../api/hbm/entity/IRadarDetectableNT.java | 8 ++ src/main/java/api/hbm/entity/RadarEntry.java | 15 ++-- .../com/hbm/crafting/ConsumableRecipes.java | 2 +- .../missile/EntityMissileAntiBallistic.java | 28 ++++++- .../entity/missile/EntityMissileBaseNT.java | 20 ++++- .../entity/missile/EntityMissileCustom.java | 33 ++++++++ .../entity/missile/EntityMissileDoomsday.java | 11 +++ .../entity/missile/EntityMissileShuttle.java | 11 +++ .../entity/missile/EntityMissileTier0.java | 13 +++ .../entity/missile/EntityMissileTier1.java | 11 +++ .../entity/missile/EntityMissileTier2.java | 11 +++ .../entity/missile/EntityMissileTier3.java | 11 +++ .../entity/missile/EntityMissileTier4.java | 13 ++- .../container/ContainerMachineRadarNT.java | 76 ++++++++++++++++++ .../hbm/inventory/gui/GUIMachineRadarNT.java | 5 ++ .../inventory/gui/GUIMachineRadarNTSlots.java | 69 ++++++++++++++++ .../hbm/inventory/gui/GuiInfoContainer.java | 4 + .../machine/TileEntityMachineRadarNT.java | 69 +++++++++++----- src/main/resources/assets/hbm/lang/de_DE.lang | 4 + src/main/resources/assets/hbm/lang/en_US.lang | 20 ++++- .../textures/gui/machine/gui_radar_link.png | Bin 1491 -> 2030 bytes .../hbm/textures/gui/machine/gui_radar_nt.png | Bin 19931 -> 20169 bytes 22 files changed, 405 insertions(+), 29 deletions(-) create mode 100644 src/main/java/com/hbm/inventory/container/ContainerMachineRadarNT.java create mode 100644 src/main/java/com/hbm/inventory/gui/GUIMachineRadarNTSlots.java diff --git a/src/main/java/api/hbm/entity/IRadarDetectableNT.java b/src/main/java/api/hbm/entity/IRadarDetectableNT.java index 19b3f85bf..0b327620c 100644 --- a/src/main/java/api/hbm/entity/IRadarDetectableNT.java +++ b/src/main/java/api/hbm/entity/IRadarDetectableNT.java @@ -15,11 +15,19 @@ public interface IRadarDetectableNT { public static final int TIER_AB = 10; public static final int PLAYER = 11; public static final int ARTY = 12; + /** Reserved type that shows a unique purple blip. Used for when nothing else applies. */ + public static final int SPECIAL = 13; + /** Name use for radar display, uses I18n for lookup */ public String getUnlocalizedName(); + /** The type of dot to show on the radar as well as the redstone level in tier mode */ public int getBlipLevel(); + /** Whether the object can be seen by this type of radar */ public boolean canBeSeenBy(Object radar); + /** Whether the object is currently visible, as well as whether the radar's setting allow for picking this up */ public boolean paramsApplicable(RadarScanParams params); + /** Whether this radar entry should be counted for the redstone output */ + public boolean suppliesRedstone(RadarScanParams params); public static class RadarScanParams { public boolean scanMissiles = true; diff --git a/src/main/java/api/hbm/entity/RadarEntry.java b/src/main/java/api/hbm/entity/RadarEntry.java index 56bb41df4..91733b81e 100644 --- a/src/main/java/api/hbm/entity/RadarEntry.java +++ b/src/main/java/api/hbm/entity/RadarEntry.java @@ -7,34 +7,39 @@ import net.minecraft.entity.player.EntityPlayer; public class RadarEntry { + /** Name use for radar display, uses I18n for lookup */ public String unlocalizedName; + /** The type of dot to show on the radar as well as the redstone level in tier mode */ public int blipLevel; public int posX; public int posY; public int posZ; public int dim; + /** Whether this radar entry should be counted for the redstone output */ + public boolean redstone; public RadarEntry() { } //blank ctor for packets - public RadarEntry(String name, int level, int x, int y, int z, int dim) { + public RadarEntry(String name, int level, int x, int y, int z, int dim, boolean redstone) { this.unlocalizedName = name; this.blipLevel = level; this.posX = x; this.posY = y; this.posZ = z; this.dim = dim; + this.redstone = redstone; } - public RadarEntry(IRadarDetectableNT detectable, Entity entity) { - this(detectable.getUnlocalizedName(), detectable.getBlipLevel(), (int) Math.floor(entity.posX), (int) Math.floor(entity.posY), (int) Math.floor(entity.posZ), entity.dimension); + public RadarEntry(IRadarDetectableNT detectable, Entity entity, boolean redstone) { + this(detectable.getUnlocalizedName(), detectable.getBlipLevel(), (int) Math.floor(entity.posX), (int) Math.floor(entity.posY), (int) Math.floor(entity.posZ), entity.dimension, redstone); } public RadarEntry(IRadarDetectable detectable, Entity entity) { - this(detectable.getTargetType().name, detectable.getTargetType().ordinal(), (int) Math.floor(entity.posX), (int) Math.floor(entity.posY), (int) Math.floor(entity.posZ), entity.dimension); + this(detectable.getTargetType().name, detectable.getTargetType().ordinal(), (int) Math.floor(entity.posX), (int) Math.floor(entity.posY), (int) Math.floor(entity.posZ), entity.dimension, entity.motionY < 0); } public RadarEntry(EntityPlayer player) { - this(player.getDisplayName(), IRadarDetectableNT.PLAYER, (int) Math.floor(player.posX), (int) Math.floor(player.posY), (int) Math.floor(player.posZ), player.dimension); + this(player.getDisplayName(), IRadarDetectableNT.PLAYER, (int) Math.floor(player.posX), (int) Math.floor(player.posY), (int) Math.floor(player.posZ), player.dimension, true); } public void fromBytes(ByteBuf buf) { diff --git a/src/main/java/com/hbm/crafting/ConsumableRecipes.java b/src/main/java/com/hbm/crafting/ConsumableRecipes.java index a7a2b6e3f..caac98962 100644 --- a/src/main/java/com/hbm/crafting/ConsumableRecipes.java +++ b/src/main/java/com/hbm/crafting/ConsumableRecipes.java @@ -52,7 +52,7 @@ public class ConsumableRecipes { CraftingManager.addShapelessAuto(new ItemStack(ModItems.med_ptsd, 1), new Object[] { ModItems.med_ipecac }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.pancake, 1), new Object[] { REDSTONE.dust(), DIAMOND.dust(), Items.wheat, ModItems.bolt_tungsten, ModItems.wire_copper, STEEL.plate() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.pancake, 1), new Object[] { REDSTONE.dust(), EMERALD.dust(), Items.wheat, ModItems.bolt_tungsten, ModItems.wire_copper, STEEL.plate() }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.chocolate_milk, 1), new Object[] { KEY_ANYPANE, new ItemStack(Items.dye, 1, 3), Items.milk_bucket, KNO.block(), S.dust(), S.dust(), S.dust(), P_RED.dust() }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.chocolate_milk, 1), new Object[] { KEY_ANYPANE, new ItemStack(Items.dye, 1, 3), Items.milk_bucket, Fluids.NITROGLYCERIN.getDict(1_000) }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.loops), new Object[] { ModItems.flame_pony, Items.wheat, Items.sugar }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.loop_stew), new Object[] { ModItems.loops, ModItems.can_smart, Items.bowl }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.coffee), new Object[] { COAL.dust(), Items.milk_bucket, Items.potionitem, Items.sugar }); diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileAntiBallistic.java b/src/main/java/com/hbm/entity/missile/EntityMissileAntiBallistic.java index 8c0ca9511..21657fafb 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileAntiBallistic.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileAntiBallistic.java @@ -10,6 +10,7 @@ import com.hbm.main.MainRegistry; import com.hbm.tileentity.machine.TileEntityMachineRadarNT; import api.hbm.entity.IRadarDetectable; +import api.hbm.entity.IRadarDetectableNT; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.Entity; @@ -23,7 +24,7 @@ import net.minecraftforge.common.ForgeChunkManager; import net.minecraftforge.common.ForgeChunkManager.Ticket; import net.minecraftforge.common.ForgeChunkManager.Type; -public class EntityMissileAntiBallistic extends EntityThrowableInterp implements IChunkLoader, IRadarDetectable { +public class EntityMissileAntiBallistic extends EntityThrowableInterp implements IChunkLoader, IRadarDetectable, IRadarDetectableNT { private Ticket loaderTicket; public Entity tracking; @@ -226,4 +227,29 @@ public class EntityMissileAntiBallistic extends EntityThrowableInterp implements public RadarTargetType getTargetType() { return RadarTargetType.MISSILE_AB; } + + @Override + public String getUnlocalizedName() { + return "radar.target.abm"; + } + + @Override + public int getBlipLevel() { + return IRadarDetectableNT.TIER_AB; + } + + @Override + public boolean canBeSeenBy(Object radar) { + return true; + } + + @Override + public boolean paramsApplicable(RadarScanParams params) { + return params.scanMissiles; + } + + @Override + public boolean suppliesRedstone(RadarScanParams params) { + return false; + } } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java b/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java index aa45fc7ef..9cc8c9456 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java @@ -9,6 +9,7 @@ import com.hbm.explosion.ExplosionLarge; import com.hbm.main.MainRegistry; import api.hbm.entity.IRadarDetectable; +import api.hbm.entity.IRadarDetectableNT; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.item.ItemStack; @@ -23,7 +24,7 @@ import net.minecraftforge.common.ForgeChunkManager; import net.minecraftforge.common.ForgeChunkManager.Ticket; import net.minecraftforge.common.ForgeChunkManager.Type; -public abstract class EntityMissileBaseNT extends EntityThrowableInterp implements IChunkLoader, IRadarDetectable { +public abstract class EntityMissileBaseNT extends EntityThrowableInterp implements IChunkLoader, IRadarDetectable, IRadarDetectableNT { public int startX; public int startZ; @@ -62,6 +63,23 @@ public abstract class EntityMissileBaseNT extends EntityThrowableInterp implemen this.setSize(1.5F, 1.5F); } + + @Override + public boolean canBeSeenBy(Object radar) { + return true; + } + + @Override + public boolean paramsApplicable(RadarScanParams params) { + if(!params.scanMissiles) return false; + return true; + } + + @Override + public boolean suppliesRedstone(RadarScanParams params) { + if(params.smartMode && this.motionY >= 0) return false; + return true; + } @Override protected void entityInit() { diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java b/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java index f2ebf4584..7c82eb017 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java @@ -21,6 +21,7 @@ import com.hbm.items.weapon.ItemMissile.WarheadType; import com.hbm.main.MainRegistry; import api.hbm.entity.IRadarDetectable; +import api.hbm.entity.IRadarDetectableNT; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -233,6 +234,38 @@ public class EntityMissileCustom extends EntityMissileBaseNT implements IChunkLo return RadarTargetType.MISSILE_TIER1; } + @Override + public String getUnlocalizedName() { + + ItemMissile part = (ItemMissile) Item.getItemById(this.dataWatcher.getWatchableObjectInt(10)); + PartSize top = part.top; + PartSize bottom = part.bottom; + + if(top == PartSize.SIZE_10 && bottom == PartSize.SIZE_10) return "radar.target.custom10"; + if(top == PartSize.SIZE_10 && bottom == PartSize.SIZE_15) return "radar.target.custom1015"; + if(top == PartSize.SIZE_15 && bottom == PartSize.SIZE_15) return "radar.target.custom15"; + if(top == PartSize.SIZE_15 && bottom == PartSize.SIZE_20) return "radar.target.custom1520"; + if(top == PartSize.SIZE_20 && bottom == PartSize.SIZE_20) return "radar.target.custom20"; + + return "radar.target.custom"; + } + + @Override + public int getBlipLevel() { + + ItemMissile part = (ItemMissile) Item.getItemById(this.dataWatcher.getWatchableObjectInt(10)); + PartSize top = part.top; + PartSize bottom = part.bottom; + + if(top == PartSize.SIZE_10 && bottom == PartSize.SIZE_10) return IRadarDetectableNT.TIER10; + if(top == PartSize.SIZE_10 && bottom == PartSize.SIZE_15) return IRadarDetectableNT.TIER10_15; + if(top == PartSize.SIZE_15 && bottom == PartSize.SIZE_15) return IRadarDetectableNT.TIER15; + if(top == PartSize.SIZE_15 && bottom == PartSize.SIZE_20) return IRadarDetectableNT.TIER15_20; + if(top == PartSize.SIZE_20 && bottom == PartSize.SIZE_20) return IRadarDetectableNT.TIER20; + + return IRadarDetectableNT.TIER1; + } + @Override public List getDebris() { return new ArrayList(); } @Override public ItemStack getDebrisRareDrop() { return null; } } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileDoomsday.java b/src/main/java/com/hbm/entity/missile/EntityMissileDoomsday.java index e4f8609b4..63e14e7f3 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileDoomsday.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileDoomsday.java @@ -4,6 +4,7 @@ import java.util.List; import com.hbm.explosion.ExplosionLarge; +import api.hbm.entity.IRadarDetectableNT; import net.minecraft.item.ItemStack; import net.minecraft.world.World; @@ -108,4 +109,14 @@ public class EntityMissileDoomsday extends EntityMissileBaseNT { public RadarTargetType getTargetType() { return RadarTargetType.MISSILE_TIER4; } + + @Override + public String getUnlocalizedName() { + return "radar.target.doomsday"; + } + + @Override + public int getBlipLevel() { + return IRadarDetectableNT.TIER4; + } } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileShuttle.java b/src/main/java/com/hbm/entity/missile/EntityMissileShuttle.java index 42edb75dd..356588f64 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileShuttle.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileShuttle.java @@ -11,6 +11,7 @@ import com.hbm.main.MainRegistry; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import api.hbm.entity.IRadarDetectableNT; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; @@ -64,4 +65,14 @@ public class EntityMissileShuttle extends EntityMissileBaseNT { public RadarTargetType getTargetType() { return RadarTargetType.MISSILE_TIER3; } + + @Override + public String getUnlocalizedName() { + return "radar.target.shuttle"; + } + + @Override + public int getBlipLevel() { + return IRadarDetectableNT.TIER3; + } } \ No newline at end of file diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileTier0.java b/src/main/java/com/hbm/entity/missile/EntityMissileTier0.java index e3aee4b0b..d1d6ecba9 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileTier0.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileTier0.java @@ -13,6 +13,9 @@ import com.hbm.entity.logic.EntityNukeExplosionMK3; import com.hbm.explosion.ExplosionNukeGeneric; import com.hbm.explosion.ExplosionNukeSmall; import com.hbm.items.ModItems; + +import api.hbm.entity.IRadarDetectableNT; + import com.hbm.items.ItemAmmoEnums.AmmoFatman; import net.minecraft.item.ItemStack; @@ -38,6 +41,16 @@ public abstract class EntityMissileTier0 extends EntityMissileBaseNT { public RadarTargetType getTargetType() { return RadarTargetType.MISSILE_TIER0; } + + @Override + public String getUnlocalizedName() { + return "radar.target.tier0"; + } + + @Override + public int getBlipLevel() { + return IRadarDetectableNT.TIER0; + } public static class EntityMissileMicro extends EntityMissileTier0 { public EntityMissileMicro(World world) { super(world); } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileTier1.java b/src/main/java/com/hbm/entity/missile/EntityMissileTier1.java index 8fe5cae83..f640def7a 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileTier1.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileTier1.java @@ -7,6 +7,7 @@ import com.hbm.explosion.ExplosionChaos; import com.hbm.explosion.ExplosionLarge; import com.hbm.items.ModItems; +import api.hbm.entity.IRadarDetectableNT; import net.minecraft.item.ItemStack; import net.minecraft.world.World; @@ -29,6 +30,16 @@ public abstract class EntityMissileTier1 extends EntityMissileBaseNT { return RadarTargetType.MISSILE_TIER1; } + @Override + public String getUnlocalizedName() { + return "radar.target.tier1"; + } + + @Override + public int getBlipLevel() { + return IRadarDetectableNT.TIER1; + } + public static class EntityMissileGeneric extends EntityMissileTier1 { public EntityMissileGeneric(World world) { super(world); } public EntityMissileGeneric(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileTier2.java b/src/main/java/com/hbm/entity/missile/EntityMissileTier2.java index 9296e0448..8c9917324 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileTier2.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileTier2.java @@ -8,6 +8,7 @@ import com.hbm.explosion.ExplosionChaos; import com.hbm.explosion.ExplosionLarge; import com.hbm.items.ModItems; +import api.hbm.entity.IRadarDetectableNT; import net.minecraft.item.ItemStack; import net.minecraft.world.World; @@ -33,6 +34,16 @@ public abstract class EntityMissileTier2 extends EntityMissileBaseNT { return RadarTargetType.MISSILE_TIER2; } + @Override + public String getUnlocalizedName() { + return "radar.target.tier2"; + } + + @Override + public int getBlipLevel() { + return IRadarDetectableNT.TIER2; + } + public static class EntityMissileStrong extends EntityMissileTier2 { public EntityMissileStrong(World world) { super(world); } public EntityMissileStrong(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileTier3.java b/src/main/java/com/hbm/entity/missile/EntityMissileTier3.java index 11c527b0e..17602263a 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileTier3.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileTier3.java @@ -10,6 +10,7 @@ import com.hbm.explosion.ExplosionThermo; import com.hbm.explosion.ExplosionNT.ExAttrib; import com.hbm.items.ModItems; +import api.hbm.entity.IRadarDetectableNT; import net.minecraft.item.ItemStack; import net.minecraft.world.World; @@ -34,6 +35,16 @@ public abstract class EntityMissileTier3 extends EntityMissileBaseNT { public RadarTargetType getTargetType() { return RadarTargetType.MISSILE_TIER3; } + + @Override + public String getUnlocalizedName() { + return "radar.target.tier3"; + } + + @Override + public int getBlipLevel() { + return IRadarDetectableNT.TIER3; + } public static class EntityMissileBurst extends EntityMissileTier3 { public EntityMissileBurst(World world) { super(world); } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileTier4.java b/src/main/java/com/hbm/entity/missile/EntityMissileTier4.java index 7e859c779..826f4143f 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileTier4.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileTier4.java @@ -10,6 +10,7 @@ import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.explosion.ExplosionLarge; import com.hbm.items.ModItems; +import api.hbm.entity.IRadarDetectableNT; import net.minecraft.item.ItemStack; import net.minecraft.world.World; @@ -31,7 +32,17 @@ public abstract class EntityMissileTier4 extends EntityMissileBaseNT { @Override public RadarTargetType getTargetType() { - return RadarTargetType.MISSILE_TIER1; + return RadarTargetType.MISSILE_TIER4; + } + + @Override + public String getUnlocalizedName() { + return "radar.target.tier4"; + } + + @Override + public int getBlipLevel() { + return IRadarDetectableNT.TIER4; } public static class EntityMissileNuclear extends EntityMissileTier4 { diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineRadarNT.java b/src/main/java/com/hbm/inventory/container/ContainerMachineRadarNT.java new file mode 100644 index 000000000..0bd1f475b --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineRadarNT.java @@ -0,0 +1,76 @@ +package com.hbm.inventory.container; + +import com.hbm.items.ModItems; +import com.hbm.tileentity.machine.TileEntityMachineRadarNT; + +import api.hbm.energy.IBatteryItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerMachineRadarNT extends Container { + + private TileEntityMachineRadarNT radar; + + public ContainerMachineRadarNT(InventoryPlayer invPlayer, TileEntityMachineRadarNT tedf) { + this.radar = tedf; + + for(int i = 0; i < 8; i++) this.addSlotToContainer(new Slot(tedf, i, 26 + i * 18, 17)); + + this.addSlotToContainer(new Slot(tedf, 8, 26, 44)); + this.addSlotToContainer(new Slot(tedf, 9, 152, 44)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 103 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 161)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(par2); + + if(var4 != null && var4.getHasStack()) { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if(par2 <= 9) { + if(!this.mergeItemStack(var5, 10, this.inventorySlots.size(), true)) { + return null; + } + } else { + + if(var3.getItem() instanceof IBatteryItem || var3.getItem() == ModItems.battery_creative) { + if(!this.mergeItemStack(var5, 9, 10, false)) { + return null; + } + } else { + if(!this.mergeItemStack(var5, 0, 9, false)) { + return null; + } + } + } + + if(var5.stackSize == 0) { + var4.putStack((ItemStack) null); + } else { + var4.onSlotChanged(); + } + } + + return var3; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return radar.isUseableByPlayer(player); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNT.java b/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNT.java index 3674c9ea9..8a937f3af 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNT.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNT.java @@ -53,6 +53,8 @@ public class GUIMachineRadarNT extends GuiScreen { if(checkClick(x, y, -10, 118, 8, 8)) cmd = "smart"; if(checkClick(x, y, -10, 128, 8, 8)) cmd = "red"; if(checkClick(x, y, -10, 138, 8, 8)) cmd = "map"; + if(checkClick(x, y, -10, 158, 8, 8)) cmd = "gui1"; + if(checkClick(x, y, -10, 178, 8, 8)) cmd = "clear"; if(cmd != null) { mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); @@ -81,6 +83,8 @@ public class GUIMachineRadarNT extends GuiScreen { if(checkClick(mouseX, mouseY, -10, 118, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.smartMode")), mouseX, mouseY); if(checkClick(mouseX, mouseY, -10, 128, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.redMode")), mouseX, mouseY); if(checkClick(mouseX, mouseY, -10, 138, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.showMap")), mouseX, mouseY); + if(checkClick(mouseX, mouseY, -10, 158, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.toggleGui")), mouseX, mouseY); + if(checkClick(mouseX, mouseY, -10, 178, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.clearMap")), mouseX, mouseY); if(!radar.entries.isEmpty()) { for(RadarEntry m : radar.entries) { @@ -102,6 +106,7 @@ public class GUIMachineRadarNT extends GuiScreen { Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); drawTexturedModalRect(guiLeft - 14, guiTop + 84, 224, 0, 14, 66); + drawTexturedModalRect(guiLeft - 14, guiTop + 154, 224, 66, 14, 36); if(radar.power > 0) { int i = (int) (radar.power * 200 / radar.maxPower); diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNTSlots.java b/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNTSlots.java new file mode 100644 index 000000000..4cc5406c9 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNTSlots.java @@ -0,0 +1,69 @@ +package com.hbm.inventory.gui; + +import java.util.Arrays; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerMachineRadarNT; +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.machine.TileEntityMachineRadarNT; +import com.hbm.util.I18nUtil; + +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.network.play.client.C0DPacketCloseWindow; +import net.minecraft.util.ResourceLocation; + +public class GUIMachineRadarNTSlots extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/machine/gui_radar_link.png"); + private TileEntityMachineRadarNT radar; + + public GUIMachineRadarNTSlots(InventoryPlayer invPlayer, TileEntityMachineRadarNT tedf) { + super(new ContainerMachineRadarNT(invPlayer, tedf)); + radar = tedf; + + this.xSize = 176; + this.ySize = 184; + } + + @Override + protected void mouseClicked(int x, int y, int i) { + super.mouseClicked(x, y, i); + + if(checkClick(x, y, 5, 5, 8, 8)) { + this.mc.thePlayer.sendQueue.addToSendQueue(new C0DPacketCloseWindow(this.mc.thePlayer.openContainer.windowId)); // closes the server-side GUI component without resetting the client's cursor position + FMLNetworkHandler.openGui(this.mc.thePlayer, MainRegistry.instance, 0, radar.getWorldObj(), radar.xCoord, radar.yCoord, radar.zCoord); + } + } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + + if(checkClick(mouseX, mouseY, 5, 5, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.toggleGui")), mouseX, mouseY); + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.radar.hasCustomInventoryName() ? this.radar.getInventoryName() : I18n.format(this.radar.getInventoryName()); + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + if(radar.power > 0) { + int i = (int) (radar.power * 160 / radar.maxPower); + drawTexturedModalRect(guiLeft + 8, guiTop + 64, 0, 185, i, 16); + } + } + +} diff --git a/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java b/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java index e5b244fc5..1ae9a28e9 100644 --- a/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java +++ b/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java @@ -75,6 +75,10 @@ public abstract class GuiInfoContainer extends GuiContainer { return this.func_146978_c(slot.xDisplayPosition, slot.yDisplayPosition, 16, 16, x, y); } + protected boolean checkClick(int x, int y, int left, int top, int sizeX, int sizeY) { + return guiLeft + left <= x && guiLeft + left + sizeX > x && guiTop + top < y && guiTop + top + sizeY >= y; + } + /* Getters for external use of the GUI's rect rendering, such as NumberDisplay */ public int getGuiTop() { return this.guiTop; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java index 89ef0ec5c..9dba6fd2d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java @@ -11,8 +11,11 @@ import com.hbm.blocks.ModBlocks; import com.hbm.config.WeaponConfig; import com.hbm.extprop.HbmLivingProps; import com.hbm.interfaces.IControlReceiver; +import com.hbm.inventory.container.ContainerMachineRadarNT; import com.hbm.inventory.gui.GUIMachineRadarNT; +import com.hbm.inventory.gui.GUIMachineRadarNTSlots; import com.hbm.lib.Library; +import com.hbm.main.MainRegistry; import com.hbm.tileentity.IConfigurableMachine; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; @@ -23,6 +26,7 @@ import api.hbm.entity.IRadarDetectable; import api.hbm.entity.IRadarDetectableNT; import api.hbm.entity.IRadarDetectableNT.RadarScanParams; import api.hbm.entity.RadarEntry; +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import io.netty.buffer.ByteBuf; @@ -70,6 +74,7 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I public static int chunkLoadCap = 5; public byte[] map = new byte[40_000]; + public boolean clearFlag = false; public List entries = new ArrayList(); @@ -99,12 +104,12 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I } public TileEntityMachineRadarNT() { - super(1); + super(10); } @Override public String getName() { - return ""; + return "container.radar"; } @Override @@ -113,6 +118,8 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I if(this.map == null || this.map.length != 40_000) this.map = new byte[40_000]; if(!worldObj.isRemote) { + + this.power = Library.chargeTEFromItems(slots, 9, power, maxPower); if(worldObj.getTotalWorldTime() % 20 == 0) this.updateStandardConnections(worldObj, xCoord, yCoord, zCoord); @@ -158,6 +165,7 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I } this.networkPackNT(50); + if(this.clearFlag) this.clearFlag = false; } else { prevRotation = rotation; if(power > 0) rotation += 5F; @@ -181,15 +189,20 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I buf.writeBoolean(this.jammed); buf.writeInt(entries.size()); for(RadarEntry entry : entries) entry.toBytes(buf); - if(this.showMap) { + if(this.clearFlag) { buf.writeBoolean(true); - short index = (short) (worldObj.getTotalWorldTime() % 400); - buf.writeShort(index); - for(int i = index * 100; i < (index + 1) * 100; i++) { - buf.writeByte(this.map[i]); - } } else { buf.writeBoolean(false); + if(this.showMap) { + buf.writeBoolean(true); + short index = (short) (worldObj.getTotalWorldTime() % 400); + buf.writeShort(index); + for(int i = index * 100; i < (index + 1) * 100; i++) { + buf.writeByte(this.map[i]); + } + } else { + buf.writeBoolean(false); + } } } @@ -210,10 +223,14 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I entry.fromBytes(buf); this.entries.add(entry); } - if(buf.readBoolean()) { - int index = buf.readShort(); - for(int i = index * 100; i < (index + 1) * 100; i++) { - this.map[i] = buf.readByte(); + if(buf.readBoolean()) { // clear flag + this.map = new byte[40_000]; + } else { + if(buf.readBoolean()) { // map enabled + int index = buf.readShort(); + for(int i = index * 100; i < (index + 1) * 100; i++) { + this.map[i] = buf.readByte(); + } } } } @@ -289,6 +306,7 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I for(int i = 0; i < entries.size(); i++) { RadarEntry e = entries.get(i); + if(!e.redstone) continue; double dist = Math.sqrt(Math.pow(e.posX - xCoord, 2) + Math.pow(e.posZ - zCoord, 2)); int p = 15 - (int)Math.floor(dist / maxRange * 15); @@ -303,9 +321,10 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I int power = 0; for(int i = 0; i < entries.size(); i++) { - - if(entries.get(i).blipLevel + 1 > power) { - power = entries.get(i).blipLevel + 1; + RadarEntry e = entries.get(i); + if(!e.redstone) continue; + if(e.blipLevel + 1 > power) { + power = e.blipLevel + 1; } } @@ -340,14 +359,20 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I return this.isUseableByPlayer(player); } + @Override public void receiveControl(NBTTagCompound data) { } + @Override - public void receiveControl(NBTTagCompound data) { + public void receiveControl(EntityPlayer player, NBTTagCompound data) { + if(data.hasKey("missiles")) this.scanMissiles = !this.scanMissiles; if(data.hasKey("shells")) this.scanShells = !this.scanShells; if(data.hasKey("players")) this.scanPlayers = !this.scanPlayers; if(data.hasKey("smart")) this.smartMode = !this.smartMode; if(data.hasKey("red")) this.redMode = !this.redMode; if(data.hasKey("map")) this.showMap = !this.showMap; + if(data.hasKey("clear")) this.clearFlag = true; + + if(data.hasKey("gui1")) FMLNetworkHandler.openGui(player, MainRegistry.instance, 1, worldObj, xCoord, yCoord, zCoord); } AxisAlignedBB bb = null; @@ -375,12 +400,18 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I return 65536.0D; } - @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return null; } + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + if(ID == 1) return new ContainerMachineRadarNT(player.inventory, this); + return null; + } @Override @SideOnly(Side.CLIENT) public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GUIMachineRadarNT(this); + if(ID == 0) return new GUIMachineRadarNT(this); + if(ID == 1) return new GUIMachineRadarNTSlots(player.inventory, this); + return null; } /** List of lambdas that are supplied a Pair with the entity and radar in question to generate a RadarEntry @@ -422,7 +453,7 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I Entity e = x.getX(); if(e instanceof IRadarDetectableNT) { IRadarDetectableNT detectable = (IRadarDetectableNT) e; - if(detectable.canBeSeenBy(x.getY()) && detectable.paramsApplicable(x.getZ())) return new RadarEntry(detectable, e); + if(detectable.canBeSeenBy(x.getY()) && detectable.paramsApplicable(x.getZ())) return new RadarEntry(detectable, e, detectable.suppliesRedstone(x.getZ())); } return null; }); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 0d3763b16..88e385bbc 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -3439,10 +3439,14 @@ potion.hbm_stability=Stabilität potion.hbm_taint=Verdorben potion.hbm_telekinesis=! ! ! +radar.clearMap=Karte zurücksetzen radar.detectMissiles=Raketen erkennen radar.detectPlayers=Spieler erkennen +radar.detectShells=Geschosse erkennen radar.redMode=Redstone Mode$Ein: Redstonesignal basiert auf Nähe$Aus: Redstonesignal basiert auf Größe +radar.showMap=Karte anzeigen radar.smartMode=Smart Mode$Redstonesignal ignoriert aufsteigende Raketen +radar.toggleGui=Ansicht umschalten rbmk.heat=Komponententemperatur: %s rbmk.boiler.water=Wasser: %s / %s diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index f45980c13..d0dc54d01 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -3017,7 +3017,7 @@ item.mike_kit.name=Ivy Mike Kit item.mirror_tool.name=Mirror Adjustment Tool item.mirror_tool.linked=Alignment position set! item.mirror_tool.desc=Right-click boiler to memorize the position.$Click on mirrors to turn them towards the boiler. -item.missile_anti_ballistic.name=Anti Ballistic Missile +item.missile_anti_ballistic.name=Anti-Ballistic Missile item.missile_assembly.name=Small Missile Assembly item.missile_bhole.name=Black Hole Missile item.missile_burst.name=Spare Missile @@ -4368,10 +4368,28 @@ potion.hbm_stability=Stability potion.hbm_taint=Tainted potion.hbm_telekinesis=! ! ! +radar.clearMap=Clear Map radar.detectMissiles=Detect Missiles radar.detectPlayers=Detect Players +radar.detectShells=Detect Shells radar.redMode=Redstone Mode$On: Redstone output based on range$Off: Redstone output based on tier +radar.showMap=Show Map radar.smartMode=Smart Mode$Redstone output ignores ascending missiles +radar.toggleGui=Switch View + +radar.target.abm=Anti-Ballsitic Missile +radar.target.custom10=Size 10 Custom Missile +radar.target.custom1015=Size 10/15 Custom Missile +radar.target.custom15=Size 15 Custom Missile +radar.target.custom1520=Size 15/20 Custom Missile +radar.target.custom20=Size 20 Custom Missile +radar.target.doomsday=Doomsday Missile +radar.target.shuttle=Reliant Robin Space Shuttle +radar.target.tier0=Tier 0 Missile +radar.target.tier1=Tier 1 Missile +radar.target.tier2=Tier 2 Missile +radar.target.tier3=Tier 3 Missile +radar.target.tier4=Tier 4 Missile rbmk.heat=Column temperature: %s rbmk.boiler.water=Feedwater: %s / %s diff --git a/src/main/resources/assets/hbm/textures/gui/machine/gui_radar_link.png b/src/main/resources/assets/hbm/textures/gui/machine/gui_radar_link.png index dafca0ee5008dd68020698ad8aa9b3db38d24317..423352af03dd38d8099adaa3ff25005eba8027b3 100644 GIT binary patch literal 2030 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 diff --git a/src/main/resources/assets/hbm/textures/gui/machine/gui_radar_nt.png b/src/main/resources/assets/hbm/textures/gui/machine/gui_radar_nt.png index 095c54c69a8aeca9352d8d94124f6ade7da290fe..572179845e349f5e366159eb3a8f1c2a4a403d07 100644 GIT binary patch literal 20169 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 P6G6@xoi{8tAV&QUgPWL# literal 19931 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 s+G1HR(LP_$e+y&+m<9jG$>O9C Date: Sat, 25 Nov 2023 21:22:45 +0100 Subject: [PATCH 394/432] we gotta move these color TVs --- changelog | 3 + src/main/java/api/hbm/entity/RadarEntry.java | 12 +- src/main/java/com/hbm/blocks/ModBlocks.java | 5 +- .../java/com/hbm/blocks/bomb/LaunchPad.java | 193 +-------- .../com/hbm/blocks/machine/MachineRadar.java | 2 +- .../blocks/machine/MachineRadarScreen.java | 56 +++ .../missile/EntityMissileAntiBallistic.java | 5 +- .../container/ContainerLaunchPadTier1.java | 44 +-- .../hbm/inventory/gui/GUIMachineRadarNT.java | 46 ++- .../inventory/gui/GUIMachineRadarNTSlots.java | 2 + src/main/java/com/hbm/items/ModItems.java | 3 + .../hbm/items/tool/ItemCoordinateBase.java | 75 ++++ .../com/hbm/items/tool/ItemRadarLinker.java | 30 ++ src/main/java/com/hbm/main/ClientProxy.java | 1 + src/main/java/com/hbm/main/MainRegistry.java | 2 + .../java/com/hbm/main/ResourceManager.java | 2 + .../render/tileentity/RenderRadarScreen.java | 94 +++++ .../hbm/tileentity/IRadarCommandReceiver.java | 9 + .../java/com/hbm/tileentity/TileMappings.java | 1 + .../tileentity/bomb/TileEntityLaunchPad.java | 372 ++++++++++-------- .../machine/TileEntityMachineRadarNT.java | 67 +++- .../machine/TileEntityMachineRadarScreen.java | 61 +++ .../turret/TileEntityTurretArty.java | 3 +- .../turret/TileEntityTurretBaseArtillery.java | 14 +- .../turret/TileEntityTurretHIMARS.java | 2 + .../hbm/models/machines/radar_screen.obj | 140 +++++++ .../{radar_link.png => radar_linker.png} | Bin .../textures/models/machines/radar_screen.png | Bin 0 -> 621 bytes 28 files changed, 843 insertions(+), 401 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/machine/MachineRadarScreen.java create mode 100644 src/main/java/com/hbm/items/tool/ItemCoordinateBase.java create mode 100644 src/main/java/com/hbm/items/tool/ItemRadarLinker.java create mode 100644 src/main/java/com/hbm/render/tileentity/RenderRadarScreen.java create mode 100644 src/main/java/com/hbm/tileentity/IRadarCommandReceiver.java create mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarScreen.java create mode 100644 src/main/resources/assets/hbm/models/machines/radar_screen.obj rename src/main/resources/assets/hbm/textures/items/{radar_link.png => radar_linker.png} (100%) create mode 100644 src/main/resources/assets/hbm/textures/models/machines/radar_screen.png diff --git a/changelog b/changelog index 8898e8c88..fd05f734e 100644 --- a/changelog +++ b/changelog @@ -21,6 +21,8 @@ * The map will scan loaded chunks instantly, unloaded chunks have a limit of 5 chunk loads per tick to prevent excessive lag * The chunk load limit can be adjusted in the machine config file * The map will show terrain height between Y:50 and Y:128, anything outside that range is truncated + * Radars now have a second GUI which allows the use of a battery, as well as linking the radar to other machines + * By using the number keys, the radar can now launch missiles, ABMs or artillery at the current aimed at position * The turbofan's afterburner now adds a 33% efficiency bonus for every level. This means that instead of the efficiency remaining constant between levels, a tier 3 upgrade will yield double efficiency. * Reduced the flarestack's base energy efficiency * Trenchmaster armor is now unbreakable @@ -31,6 +33,7 @@ * Remodeled the anti-ballistic missile * Anti-ballistic missiles now use predictive targeting as well as a heightened sensor range of 1,000 blocks (instead of 500) which should make them a lot more effective * Anti-ballistic missiles accelerate 4x faster than normal missiles and have a 50% higher top-speed +* Anti-ballistic missiles can now load their own chunks, allowing them to get to far away incoming missiles without getting stuck * PWRs that have recently been close to unloaded chunks now have a 40 tick timeframe where they are "frozen", only trying to connect to a fluid network but not doing any fission, this should reduce the amount of meltdowns caused by chunkloading ## Fixed diff --git a/src/main/java/api/hbm/entity/RadarEntry.java b/src/main/java/api/hbm/entity/RadarEntry.java index 91733b81e..5dcc56845 100644 --- a/src/main/java/api/hbm/entity/RadarEntry.java +++ b/src/main/java/api/hbm/entity/RadarEntry.java @@ -15,31 +15,33 @@ public class RadarEntry { public int posY; public int posZ; public int dim; + public int entityID; /** Whether this radar entry should be counted for the redstone output */ public boolean redstone; public RadarEntry() { } //blank ctor for packets - public RadarEntry(String name, int level, int x, int y, int z, int dim, boolean redstone) { + public RadarEntry(String name, int level, int x, int y, int z, int dim, int entityID, boolean redstone) { this.unlocalizedName = name; this.blipLevel = level; this.posX = x; this.posY = y; this.posZ = z; this.dim = dim; + this.entityID = entityID; this.redstone = redstone; } public RadarEntry(IRadarDetectableNT detectable, Entity entity, boolean redstone) { - this(detectable.getUnlocalizedName(), detectable.getBlipLevel(), (int) Math.floor(entity.posX), (int) Math.floor(entity.posY), (int) Math.floor(entity.posZ), entity.dimension, redstone); + this(detectable.getUnlocalizedName(), detectable.getBlipLevel(), (int) Math.floor(entity.posX), (int) Math.floor(entity.posY), (int) Math.floor(entity.posZ), entity.dimension, entity.getEntityId(), redstone); } public RadarEntry(IRadarDetectable detectable, Entity entity) { - this(detectable.getTargetType().name, detectable.getTargetType().ordinal(), (int) Math.floor(entity.posX), (int) Math.floor(entity.posY), (int) Math.floor(entity.posZ), entity.dimension, entity.motionY < 0); + this(detectable.getTargetType().name, detectable.getTargetType().ordinal(), (int) Math.floor(entity.posX), (int) Math.floor(entity.posY), (int) Math.floor(entity.posZ), entity.dimension, entity.getEntityId(), entity.motionY < 0); } public RadarEntry(EntityPlayer player) { - this(player.getDisplayName(), IRadarDetectableNT.PLAYER, (int) Math.floor(player.posX), (int) Math.floor(player.posY), (int) Math.floor(player.posZ), player.dimension, true); + this(player.getDisplayName(), IRadarDetectableNT.PLAYER, (int) Math.floor(player.posX), (int) Math.floor(player.posY), (int) Math.floor(player.posZ), player.dimension, player.getEntityId(), true); } public void fromBytes(ByteBuf buf) { @@ -49,6 +51,7 @@ public class RadarEntry { this.posY = buf.readInt(); this.posZ = buf.readInt(); this.dim = buf.readShort(); + this.entityID = buf.readInt(); } public void toBytes(ByteBuf buf) { @@ -58,5 +61,6 @@ public class RadarEntry { buf.writeInt(this.posY); buf.writeInt(this.posZ); buf.writeShort(this.dim); + buf.writeInt(this.entityID); } } diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index f0b3ccb90..a4873c99c 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1057,8 +1057,9 @@ public class ModBlocks { public static Block launch_table; public static Block soyuz_launcher; - + public static Block machine_radar; + public static Block radar_screen; public static Block machine_turbofan; public static Block machine_turbinegas; @@ -2164,6 +2165,7 @@ public class ModBlocks { launch_pad = new LaunchPad(Material.iron).setBlockName("launch_pad").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":launch_pad"); machine_radar = new MachineRadar(Material.iron).setBlockName("machine_radar").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":machine_radar"); + radar_screen = new MachineRadarScreen(Material.iron).setBlockName("radar_screen").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_missile_assembly = new MachineMissileAssembly(Material.iron).setBlockName("machine_missile_assembly").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":machine_missile_assembly"); compact_launcher = new CompactLauncher(Material.iron).setBlockName("compact_launcher").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":compact_launcher"); @@ -3504,6 +3506,7 @@ public class ModBlocks { GameRegistry.registerBlock(sat_dock, sat_dock.getUnlocalizedName()); GameRegistry.registerBlock(soyuz_capsule, soyuz_capsule.getUnlocalizedName()); GameRegistry.registerBlock(machine_radar, machine_radar.getUnlocalizedName()); + GameRegistry.registerBlock(radar_screen, radar_screen.getUnlocalizedName()); //Guide GameRegistry.registerBlock(book_guide, book_guide.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/bomb/LaunchPad.java b/src/main/java/com/hbm/blocks/bomb/LaunchPad.java index 79725a555..78436a540 100644 --- a/src/main/java/com/hbm/blocks/bomb/LaunchPad.java +++ b/src/main/java/com/hbm/blocks/bomb/LaunchPad.java @@ -2,43 +2,27 @@ package com.hbm.blocks.bomb; import java.util.Random; -import org.apache.logging.log4j.Level; - import com.hbm.blocks.ModBlocks; -import com.hbm.config.GeneralConfig; -import com.hbm.entity.missile.*; -import com.hbm.entity.missile.EntityMissileTier0.*; -import com.hbm.entity.missile.EntityMissileTier1.*; -import com.hbm.entity.missile.EntityMissileTier2.*; -import com.hbm.entity.missile.EntityMissileTier3.*; -import com.hbm.entity.missile.EntityMissileTier4.*; import com.hbm.interfaces.IBomb; -import com.hbm.interfaces.Spaghetti; -import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; import com.hbm.tileentity.bomb.TileEntityLaunchPad; -import api.hbm.item.IDesignatorItem; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.MathHelper; import net.minecraft.world.World; public class LaunchPad extends BlockContainer implements IBomb { - public TileEntityLaunchPad tetn = new TileEntityLaunchPad(); public static boolean keepInventory = false; private final static Random field_149933_a = new Random(); @@ -51,11 +35,6 @@ public class LaunchPad extends BlockContainer implements IBomb { return new TileEntityLaunchPad(); } - @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) { - return Item.getItemFromBlock(ModBlocks.launch_pad); - } - @Override public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_) { if(!keepInventory) { @@ -137,186 +116,16 @@ public class LaunchPad extends BlockContainer implements IBomb { return false; } - @Override - public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { - int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; - - if(i == 0) { - world.setBlockMetadataWithNotify(x, y, z, 5, 2); - } - if(i == 1) { - world.setBlockMetadataWithNotify(x, y, z, 3, 2); - } - if(i == 2) { - world.setBlockMetadataWithNotify(x, y, z, 4, 2); - } - if(i == 3) { - world.setBlockMetadataWithNotify(x, y, z, 2, 2); - } - } - - /* - * @Override public void setBlockBoundsBasedOnState(IBlockAccess - * p_149719_1_, int p_149719_2_, int p_149719_3_, int p_149719_4_) { float f - * = 0.0625F; this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.5F, 1.0F); } - * - * @Override public AxisAlignedBB getCollisionBoundingBoxFromPool(World - * world, int x, int y, int z) { float f = 0.0625F; - * this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 8*f, 1.0F); return - * AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, - * x + this.maxX, y + this.maxY, z + this.maxZ); } - */ - @Override @SideOnly(Side.CLIENT) public Item getItem(World p_149694_1_, int p_149694_2_, int p_149694_3_, int p_149694_4_) { return Item.getItemFromBlock(ModBlocks.launch_pad); } - @Spaghetti("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA *takes breath* AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA") @Override public BombReturnCode explode(World world, int x, int y, int z) { - TileEntityLaunchPad entity = (TileEntityLaunchPad) world.getTileEntity(x, y, z); - - if(entity.slots[0] == null || world.isRemote) - return BombReturnCode.ERROR_MISSING_COMPONENT; - - if(entity.slots[1] != null && entity.slots[1].getItem() instanceof IDesignatorItem && entity.power >= 75000) { - - if(!((IDesignatorItem)entity.slots[1].getItem()).isReady(world, entity.slots[1], x, y, z)) - return BombReturnCode.ERROR_MISSING_COMPONENT; - - int xCoord = entity.slots[1].stackTagCompound.getInteger("xCoord"); - int zCoord = entity.slots[1].stackTagCompound.getInteger("zCoord"); - - if(xCoord == entity.xCoord && zCoord == entity.zCoord) { - xCoord += 1; - } - - Entity missile = null; - - if(entity.slots[0].getItem() == ModItems.missile_generic) { - missile = new EntityMissileGeneric(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_incendiary) { - missile = new EntityMissileIncendiary(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_cluster) { - missile = new EntityMissileCluster(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_buster) { - missile = new EntityMissileBunkerBuster(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_strong) { - missile = new EntityMissileStrong(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_incendiary_strong) { - missile = new EntityMissileIncendiaryStrong(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_cluster_strong) { - missile = new EntityMissileClusterStrong(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_buster_strong) { - missile = new EntityMissileBusterStrong(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_burst) { - missile = new EntityMissileBurst(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_inferno) { - missile = new EntityMissileInferno(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_rain) { - missile = new EntityMissileRain(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_drill) { - missile = new EntityMissileDrill(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_nuclear) { - missile = new EntityMissileNuclear(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_endo) { - missile = new EntityMissileEndo(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_exo) { - missile = new EntityMissileExo(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_nuclear_cluster) { - missile = new EntityMissileMirv(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_doomsday) { - missile = new EntityMissileDoomsday(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_taint) { - missile = new EntityMissileTaint(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_micro) { - missile = new EntityMissileMicro(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_bhole) { - missile = new EntityMissileBHole(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_schrabidium) { - missile = new EntityMissileSchrabidium(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_emp) { - missile = new EntityMissileEMP(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_emp_strong) { - missile = new EntityMissileEMPStrong(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_volcano) { - missile = new EntityMissileVolcano(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - if(entity.slots[0].getItem() == ModItems.missile_shuttle) { - missile = new EntityMissileShuttle(world, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord); - } - - if(missile != null) { - world.spawnEntityInWorld(missile); - world.playSoundEffect(x, y, z, "hbm:weapon.missileTakeOff", 2.0F, 1.0F); - entity.power -= 75000; - entity.slots[0] = null; - - if(GeneralConfig.enableExtendedLogging) - MainRegistry.logger.log(Level.INFO, "[MISSILE] Tried to launch missile at " + x + " / " + y + " / " + z + " to " + xCoord + " / " + zCoord + "!"); - return BombReturnCode.LAUNCHED; - } - } - - if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_carrier && entity.power >= 75000) { - EntityCarrier missile = new EntityCarrier(world); - missile.posX = x + 0.5F; - missile.posY = y + 1F; - missile.posZ = z + 0.5F; - - if(entity.slots[1] != null) - missile.setPayload(entity.slots[1]); - - world.spawnEntityInWorld(missile); - entity.power -= 75000; - - entity.slots[0] = null; - entity.slots[1] = null; - world.playSoundEffect(x, y, z, "hbm:entity.rocketTakeoff", 100.0F, 1.0F); - return BombReturnCode.LAUNCHED; - } - - if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_anti_ballistic && entity.power >= 75000) { - EntityMissileAntiBallistic missile = new EntityMissileAntiBallistic(world); - missile.posX = x + 0.5F; - missile.posY = y + 0.5F; - missile.posZ = z + 0.5F; - - world.spawnEntityInWorld(missile); - entity.power -= 75000; - - entity.slots[0] = null; - world.playSoundEffect(x, y, z, "hbm:weapon.missileTakeOff", 2.0F, 1.0F); - return BombReturnCode.LAUNCHED; - } - - return BombReturnCode.ERROR_MISSING_COMPONENT; + return entity.launchFromDesignator(); } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineRadar.java b/src/main/java/com/hbm/blocks/machine/MachineRadar.java index beaf39189..a06effd14 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineRadar.java +++ b/src/main/java/com/hbm/blocks/machine/MachineRadar.java @@ -49,7 +49,7 @@ public class MachineRadar extends BlockContainer { return true; } - if(world.isRemote) { + if(world.isRemote && !player.isSneaking()) { FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); return true; } else if(!player.isSneaking()) { diff --git a/src/main/java/com/hbm/blocks/machine/MachineRadarScreen.java b/src/main/java/com/hbm/blocks/machine/MachineRadarScreen.java new file mode 100644 index 000000000..6f1df1a14 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineRadarScreen.java @@ -0,0 +1,56 @@ +package com.hbm.blocks.machine; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.machine.TileEntityMachineRadarNT; +import com.hbm.tileentity.machine.TileEntityMachineRadarScreen; + +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class MachineRadarScreen extends BlockDummyable { + + public MachineRadarScreen(Material mat) { + super(mat); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return meta >= 12 ? new TileEntityMachineRadarScreen() : null; + } + + @Override + public int[] getDimensions() { + return new int[] {1, 0, 0, 0, 1, 0}; + } + + @Override + public int getOffset() { + return 0; + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + + if(world.isRemote && !player.isSneaking()) { + int[] pos = this.findCore(world, x, y, z); + + if(pos == null) return false; + + TileEntityMachineRadarScreen screen = (TileEntityMachineRadarScreen) world.getTileEntity(pos[0], pos[1], pos[2]); + + if(screen.linked && world.getTileEntity(screen.refX, screen.refY, screen.refZ) instanceof TileEntityMachineRadarNT) { + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, screen.refX, screen.refY, screen.refZ); + } + + return false; + } else if(!player.isSneaking()) { + return true; + } else { + return false; + } + } +} diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileAntiBallistic.java b/src/main/java/com/hbm/entity/missile/EntityMissileAntiBallistic.java index 21657fafb..c48961d7d 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileAntiBallistic.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileAntiBallistic.java @@ -79,6 +79,8 @@ public class EntityMissileAntiBallistic extends EntityThrowableInterp implements this.aimAtTarget(); } } + + loadNeighboringChunks((int) Math.floor(posX / 16), (int) Math.floor(posZ / 16)); if(this.posY > 2000 && (this.tracking == null || this.tracking.isDead)) this.setDead(); @@ -195,8 +197,7 @@ public class EntityMissileAntiBallistic extends EntityThrowableInterp implements clearChunkLoader(); loadedChunks.clear(); - loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ)); - //loadedChunks.add(new ChunkCoordIntPair(newChunkX + (int) Math.floor((this.posX + this.motionX * this.motionMult()) / 16D), newChunkZ + (int) Math.floor((this.posZ + this.motionZ * this.motionMult()) / 16D))); + for(int i = -1; i <= 1; i++) for(int j = -1; j <= 1; j++) loadedChunks.add(new ChunkCoordIntPair(newChunkX + i, newChunkZ + j)); for(ChunkCoordIntPair chunk : loadedChunks) { ForgeChunkManager.forceChunk(loaderTicket, chunk); diff --git a/src/main/java/com/hbm/inventory/container/ContainerLaunchPadTier1.java b/src/main/java/com/hbm/inventory/container/ContainerLaunchPadTier1.java index 11a9190e1..0abda201e 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerLaunchPadTier1.java +++ b/src/main/java/com/hbm/inventory/container/ContainerLaunchPadTier1.java @@ -21,57 +21,43 @@ public class ContainerLaunchPadTier1 extends Container { this.addSlotToContainer(new Slot(tedf, 1, 80, 17)); this.addSlotToContainer(new Slot(tedf, 2, 134, 17)); - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); } } - - for(int i = 0; i < 9; i++) - { + + for(int i = 0; i < 9; i++) { this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142)); } } @Override - public void addCraftingToCrafters(ICrafting crafting) { - super.addCraftingToCrafters(crafting); - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { ItemStack var3 = null; Slot var4 = (Slot) this.inventorySlots.get(par2); - - if (var4 != null && var4.getHasStack()) - { + + if(var4 != null && var4.getHasStack()) { ItemStack var5 = var4.getStack(); var3 = var5.copy(); - - if (par2 <= 2) { - if (!this.mergeItemStack(var5, 3, this.inventorySlots.size(), true)) - { + + if(par2 <= 2) { + if(!this.mergeItemStack(var5, 3, this.inventorySlots.size(), true)) { return null; } } else { return null; } - - if (var5.stackSize == 0) - { + + if(var5.stackSize == 0) { var4.putStack((ItemStack) null); - } - else - { + } else { var4.onSlotChanged(); } } - + return var3; - } + } @Override public boolean canInteractWith(EntityPlayer player) { diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNT.java b/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNT.java index 8a937f3af..5577c7638 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNT.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNT.java @@ -4,6 +4,7 @@ import java.util.Arrays; import org.lwjgl.opengl.GL11; +import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; @@ -22,13 +23,16 @@ import net.minecraft.util.Vec3; public class GUIMachineRadarNT extends GuiScreen { - protected static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/machine/gui_radar_nt.png"); + public static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/machine/gui_radar_nt.png"); protected TileEntityMachineRadarNT radar; protected int xSize = 216; protected int ySize = 234; protected int guiLeft; protected int guiTop; + + public int lastMouseX; + public int lastMouseY; public GUIMachineRadarNT(TileEntityMachineRadarNT tile) { this.radar = tile; @@ -71,6 +75,9 @@ public class GUIMachineRadarNT extends GuiScreen { GL11.glDisable(GL11.GL_LIGHTING); this.drawGuiContainerForegroundLayer(mouseX, mouseY); GL11.glEnable(GL11.GL_LIGHTING); + + this.lastMouseX = mouseX; + this.lastMouseY = mouseY; } private void drawGuiContainerForegroundLayer(int mouseX, int mouseY) { @@ -99,6 +106,12 @@ public class GUIMachineRadarNT extends GuiScreen { } } } + + if(checkClick(mouseX, mouseY, 8, 17, 200, 200)) { + int tX = (int) ((lastMouseX - guiLeft - 108) * ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) / 192D + radar.xCoord); + int tZ = (int) ((lastMouseY - guiTop - 117) * ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) / 192D + radar.zCoord); + this.func_146283_a(Arrays.asList(tX + " / " + tZ), lastMouseX, lastMouseY); + } } private void drawGuiContainerBackgroundLayer(float f, int mouseX, int mouseY) { @@ -207,6 +220,37 @@ public class GUIMachineRadarNT extends GuiScreen { if(key == 1 || key == this.mc.gameSettings.keyBindInventory.getKeyCode()) { this.mc.thePlayer.closeScreen(); } + + if(checkClick(lastMouseX, lastMouseY, 8, 17, 200, 200) && c >= '1' && c <= '8') { + + int id = c - '1'; + + if(radar.slots[id] != null && radar.slots[id].getItem() == ModItems.radar_linker) { + + if(!radar.entries.isEmpty()) { + for(RadarEntry m : radar.entries) { + int x = guiLeft + (int)((m.posX - radar.xCoord) / ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) * (200D - 8D)) + 108; + int z = guiTop + (int)((m.posZ - radar.zCoord) / ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) * (200D - 8D)) + 117; + + if(lastMouseX + 5 > x && lastMouseX - 4 <= x && lastMouseY + 5 > z && lastMouseY - 4 <= z) { + NBTTagCompound data = new NBTTagCompound(); + data.setInteger("launchEntity", m.entityID); + data.setInteger("link", id); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, radar.xCoord, radar.yCoord, radar.zCoord)); + return; + } + } + } + + int tX = (int) ((lastMouseX - guiLeft - 108) * ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) / 192D + radar.xCoord); + int tZ = (int) ((lastMouseY - guiTop - 117) * ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) / 192D + radar.zCoord); + NBTTagCompound data = new NBTTagCompound(); + data.setInteger("launchPosX", tX); + data.setInteger("launchPosZ", tZ); + data.setInteger("link", id); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, radar.xCoord, radar.yCoord, radar.zCoord)); + } + } } @Override diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNTSlots.java b/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNTSlots.java index 4cc5406c9..77f1f3a60 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNTSlots.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNTSlots.java @@ -12,6 +12,7 @@ import com.hbm.util.I18nUtil; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.network.play.client.C0DPacketCloseWindow; @@ -35,6 +36,7 @@ public class GUIMachineRadarNTSlots extends GuiInfoContainer { super.mouseClicked(x, y, i); if(checkClick(x, y, 5, 5, 8, 8)) { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); this.mc.thePlayer.sendQueue.addToSendQueue(new C0DPacketCloseWindow(this.mc.thePlayer.openContainer.windowId)); // closes the server-side GUI component without resetting the client's cursor position FMLNetworkHandler.openGui(this.mc.thePlayer, MainRegistry.instance, 0, radar.getWorldObj(), radar.xCoord, radar.yCoord, radar.zCoord); } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 6d7b52f9f..c75fa9764 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1265,6 +1265,7 @@ public class ModItems { public static Item analysis_tool; public static Item coupling_tool; public static Item drone_linker; + public static Item radar_linker; public static Item template_folder; public static Item journal_pip; @@ -4604,6 +4605,7 @@ public class ModItems { analysis_tool = new ItemAnalysisTool().setUnlocalizedName("analysis_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":analysis_tool"); coupling_tool = new ItemCouplingTool().setUnlocalizedName("coupling_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":coupling_tool"); drone_linker = new ItemDroneLinker().setUnlocalizedName("drone_linker").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":drone_linker"); + radar_linker = new ItemRadarLinker().setUnlocalizedName("radar_linker").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":radar_linker"); key = new ItemKey().setUnlocalizedName("key").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":key"); key_red = new ItemCustomLore().setUnlocalizedName("key_red").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":key_red"); @@ -6779,6 +6781,7 @@ public class ModItems { GameRegistry.registerItem(mirror_tool, mirror_tool.getUnlocalizedName()); GameRegistry.registerItem(rbmk_tool, rbmk_tool.getUnlocalizedName()); GameRegistry.registerItem(drone_linker, drone_linker.getUnlocalizedName()); + GameRegistry.registerItem(radar_linker, radar_linker.getUnlocalizedName()); GameRegistry.registerItem(coltan_tool, coltan_tool.getUnlocalizedName()); GameRegistry.registerItem(power_net_tool, power_net_tool.getUnlocalizedName()); GameRegistry.registerItem(analysis_tool, analysis_tool.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/tool/ItemCoordinateBase.java b/src/main/java/com/hbm/items/tool/ItemCoordinateBase.java new file mode 100644 index 000000000..71e8d80c5 --- /dev/null +++ b/src/main/java/com/hbm/items/tool/ItemCoordinateBase.java @@ -0,0 +1,75 @@ +package com.hbm.items.tool; + +import java.util.List; + +import com.hbm.util.fauxpointtwelve.BlockPos; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; + +public abstract class ItemCoordinateBase extends Item { + + public static BlockPos getPosition(ItemStack stack) { + + if(stack.hasTagCompound()) { + return new BlockPos(stack.stackTagCompound.getInteger("posX"), stack.stackTagCompound.getInteger("posY"), stack.stackTagCompound.getInteger("posZ")); + } + + return null; + } + + @Override + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float fX, float fY, float fZ) { + + if(this.canGrabCoordinateHere(world, x, y, z)) { + + if(!world.isRemote) { + BlockPos pos = this.getCoordinates(world, x, y, z); + + if(!stack.hasTagCompound()) stack.stackTagCompound = new NBTTagCompound(); + + stack.stackTagCompound.setInteger("posX", pos.getX()); + if(includeY()) stack.stackTagCompound.setInteger("posY", pos.getY()); + stack.stackTagCompound.setInteger("posZ", pos.getZ()); + + this.onTargetSet(world, pos.getX(), pos.getY(), pos.getZ(), player); + } + + return true; + } + + return false; + } + + /** Whether this position can be saved or if the position target is valid */ + public abstract boolean canGrabCoordinateHere(World world, int x, int y, int z); + + /** Whether this linking item saves the Y coordinate */ + public boolean includeY() { + return true; + } + + /** Modified the saved coordinates, for example detecting the core for multiblocks */ + public BlockPos getCoordinates(World world, int x, int y, int z) { + return new BlockPos(x, y, z); + } + + /** Extra on successful target set, eg. sounds */ + public void onTargetSet(World world, int x, int y, int z, EntityPlayer player) { } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { + + if(stack.hasTagCompound()) { + list.add("X: " + stack.stackTagCompound.getInteger("posX")); + if(includeY()) list.add("Y: " + stack.stackTagCompound.getInteger("posY")); + list.add("Z: " + stack.stackTagCompound.getInteger("posZ")); + } else { + list.add(EnumChatFormatting.RED + "No position set!"); + } + } +} diff --git a/src/main/java/com/hbm/items/tool/ItemRadarLinker.java b/src/main/java/com/hbm/items/tool/ItemRadarLinker.java new file mode 100644 index 000000000..53ee7e206 --- /dev/null +++ b/src/main/java/com/hbm/items/tool/ItemRadarLinker.java @@ -0,0 +1,30 @@ +package com.hbm.items.tool; + +import com.hbm.tileentity.IRadarCommandReceiver; +import com.hbm.tileentity.machine.TileEntityMachineRadarScreen; +import com.hbm.util.CompatExternal; +import com.hbm.util.fauxpointtwelve.BlockPos; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class ItemRadarLinker extends ItemCoordinateBase { + + @Override + public boolean canGrabCoordinateHere(World world, int x, int y, int z) { + TileEntity tile = CompatExternal.getCoreFromPos(world, x, y, z); + return tile instanceof IRadarCommandReceiver || tile instanceof TileEntityMachineRadarScreen; + } + + @Override + public BlockPos getCoordinates(World world, int x, int y, int z) { + TileEntity tile = CompatExternal.getCoreFromPos(world, x, y, z); + return new BlockPos(tile.xCoord, tile.yCoord, tile.zCoord); + } + + @Override + public void onTargetSet(World world, int x, int y, int z, EntityPlayer player) { + world.playSoundAtEntity(player, "hbm:item.techBleep", 1.0F, 1.0F); + } +} diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 4774e9a31..8ee506eb5 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -242,6 +242,7 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineEPress.class, new RenderEPress()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineRadGen.class, new RenderRadGen()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineRadarNT.class, new RenderRadar()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineRadarScreen.class, new RenderRadarScreen()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineSeleniumEngine.class, new RenderSelenium()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityReactorResearch.class, new RenderSmallReactor()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineShredderLarge.class, new RenderMachineShredder()); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 8d392574b..6b933db58 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -40,6 +40,7 @@ import com.hbm.packet.PacketDispatcher; import com.hbm.potion.HbmPotion; import com.hbm.saveddata.satellites.Satellite; import com.hbm.tileentity.TileMappings; +import com.hbm.tileentity.bomb.TileEntityLaunchPad; import com.hbm.tileentity.bomb.TileEntityNukeCustom; import com.hbm.tileentity.machine.TileEntityMachineReactorLarge; import com.hbm.tileentity.machine.TileEntityNukeFurnace; @@ -324,6 +325,7 @@ public class MainRegistry { TileMappings.writeMappings(); MachineDynConfig.initialize(); + TileEntityLaunchPad.registerLaunchables(); for(Entry, String[]> e : TileMappings.map.entrySet()) { diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 29b591050..b1374f425 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -242,6 +242,7 @@ public class ResourceManager { public static final IModelCustom radar_body = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/radar_base.obj")); public static final IModelCustom radar_head = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/radar_head.obj")); public static final IModelCustom radar = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/radar.obj")); + public static final IModelCustom radar_screen = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/radar_screen.obj")); //Forcefield public static final IModelCustom forcefield_top = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/forcefield_top.obj")); @@ -630,6 +631,7 @@ public class ResourceManager { public static final ResourceLocation radar_head_tex = new ResourceLocation(RefStrings.MODID, "textures/models/radar_head.png"); public static final ResourceLocation radar_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/radar_base.png"); public static final ResourceLocation radar_dish_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/radar_dish.png"); + public static final ResourceLocation radar_screen_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/radar_screen.png"); //Forcefield public static final ResourceLocation forcefield_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/forcefield_base.png"); diff --git a/src/main/java/com/hbm/render/tileentity/RenderRadarScreen.java b/src/main/java/com/hbm/render/tileentity/RenderRadarScreen.java new file mode 100644 index 000000000..e838ecf44 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderRadarScreen.java @@ -0,0 +1,94 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.inventory.gui.GUIMachineRadarNT; +import com.hbm.main.ResourceManager; +import com.hbm.tileentity.machine.TileEntityMachineRadarNT; +import com.hbm.tileentity.machine.TileEntityMachineRadarScreen; + +import api.hbm.entity.RadarEntry; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.tileentity.TileEntity; + +public class RenderRadarScreen extends TileEntitySpecialRenderer { + + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + + switch(tileEntity.getBlockMetadata() - BlockDummyable.offset) { + case 2: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(0, 0F, 1F, 0F); break; + } + + TileEntityMachineRadarScreen screen = (TileEntityMachineRadarScreen) tileEntity; + + bindTexture(ResourceManager.radar_screen_tex); + ResourceManager.radar_screen.renderAll(); + + bindTexture(GUIMachineRadarNT.texture); + Tessellator tess = Tessellator.instance; + + if(screen.linked) { + tess.startDrawingQuads(); + + double offset = ((tileEntity.getWorldObj().getTotalWorldTime() % 56) + f) / 30D; + tess.setColorRGBA_I(0x00ff00, 0); + tess.addVertex(0.38, 2 - offset, 1.375); + tess.addVertex(0.38, 2 - offset, -0.375); + tess.setColorRGBA_I(0x00ff00, 50); + tess.addVertex(0.38, 2 - offset - 0.125, -0.375); + tess.addVertex(0.38, 2 - offset - 0.125, 1.375); + + GL11.glDisable(GL11.GL_TEXTURE_2D); + GL11.glEnable(GL11.GL_BLEND); + GL11.glDisable(GL11.GL_ALPHA_TEST); + GL11.glShadeModel(GL11.GL_SMOOTH); + tess.draw(); + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glDisable(GL11.GL_BLEND); + GL11.glEnable(GL11.GL_ALPHA_TEST); + GL11.glShadeModel(GL11.GL_FLAT); + + if(!screen.entries.isEmpty()) { + tess.startDrawingQuads(); + tess.setNormal(0F, 1F, 0F); + + for(RadarEntry entry : screen.entries) { + + double sX = (entry.posX - screen.refX) / ((double) TileEntityMachineRadarNT.radarRange + 1) * (0.875D); + double sZ = (entry.posZ - screen.refZ) / ((double) TileEntityMachineRadarNT.radarRange + 1) * (0.875D); + double size = 0.0625D; + tess.addVertexWithUV(0.38, 1 - sZ + size, 0.5 - sX + size, 216D / 256D, (entry.blipLevel * 8F + 8F) / 256F); + tess.addVertexWithUV(0.38, 1 - sZ + size, 0.5 - sX - size, 224D / 256D, (entry.blipLevel * 8F + 8F) / 256F); + tess.addVertexWithUV(0.38, 1 - sZ - size, 0.5 - sX - size, 224D / 256D, entry.blipLevel * 8F / 256F); + tess.addVertexWithUV(0.38, 1 - sZ - size, 0.5 - sX + size, 216D / 256D, entry.blipLevel * 8F / 256F); + } + GL11.glDisable(GL11.GL_DEPTH_TEST); + tess.draw(); + GL11.glEnable(GL11.GL_DEPTH_TEST); + } + } else { + int offset = 118 + tileEntity.getWorldObj().rand.nextInt(81); + tess.startDrawingQuads(); + tess.setColorOpaque_I(0xffffff); + tess.setNormal(0F, 1F, 0F); + tess.addVertexWithUV(0.38, 1.875, 1.375, 216D / 256D, (offset + 40F) / 256F); + tess.addVertexWithUV(0.38, 1.875, -0.375, 256D / 256D, (offset + 40F) / 256F); + tess.addVertexWithUV(0.38, 0.125, -0.375, 256D / 256D, offset / 256F); + tess.addVertexWithUV(0.38, 0.125, 1.375, 216D / 256D, offset / 256F); + tess.draw(); + } + + GL11.glPopMatrix(); + } + +} diff --git a/src/main/java/com/hbm/tileentity/IRadarCommandReceiver.java b/src/main/java/com/hbm/tileentity/IRadarCommandReceiver.java new file mode 100644 index 000000000..0351ec055 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/IRadarCommandReceiver.java @@ -0,0 +1,9 @@ +package com.hbm.tileentity; + +import net.minecraft.entity.Entity; + +public interface IRadarCommandReceiver { + + public boolean sendCommandPosition(int x, int y, int z); + public boolean sendCommandEntity(Entity target); +} diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 2094dcfcc..4ba9495c5 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -113,6 +113,7 @@ public class TileMappings { put(TileEntityMachineRadGen.class, "tileentity_radgen"); put(TileEntityMachineTransformer.class, "tileentity_transformer"); put(TileEntityMachineRadarNT.class, "tileentity_radar"); + put(TileEntityMachineRadarScreen.class, "tileentity_radar_screen"); put(TileEntityBroadcaster.class, "tileentity_pink_cloud_broadcaster"); put(TileEntityMachineSeleniumEngine.class, "tileentity_selenium_engine"); put(TileEntityMachineSatLinker.class, "tileentity_satlinker"); diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java index 5ad95d374..eec19fae0 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java @@ -1,13 +1,31 @@ package com.hbm.tileentity.bomb; +import java.util.HashMap; + +import org.apache.logging.log4j.Level; + import com.hbm.blocks.ModBlocks; import com.hbm.blocks.bomb.LaunchPad; +import com.hbm.config.GeneralConfig; +import com.hbm.entity.missile.EntityCarrier; +import com.hbm.entity.missile.EntityMissileAntiBallistic; +import com.hbm.entity.missile.EntityMissileBaseNT; +import com.hbm.entity.missile.EntityMissileShuttle; +import com.hbm.entity.missile.EntityMissileTier0.*; +import com.hbm.entity.missile.EntityMissileTier1.*; +import com.hbm.entity.missile.EntityMissileTier2.*; +import com.hbm.entity.missile.EntityMissileTier3.*; +import com.hbm.entity.missile.EntityMissileTier4.*; +import com.hbm.interfaces.IBomb.BombReturnCode; +import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.container.ContainerLaunchPadTier1; import com.hbm.inventory.gui.GUILaunchPadTier1; +import com.hbm.items.ModItems; import com.hbm.lib.Library; +import com.hbm.main.MainRegistry; import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.INBTPacketReceiver; -import com.hbm.tileentity.TileEntityLoadedBase; +import com.hbm.tileentity.IRadarCommandReceiver; +import com.hbm.tileentity.TileEntityMachineBase; import api.hbm.energy.IEnergyUser; import api.hbm.item.IDesignatorItem; @@ -19,184 +37,72 @@ import li.cil.oc.api.machine.Callback; import li.cil.oc.api.machine.Context; import li.cil.oc.api.network.SimpleComponent; import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; -import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityLaunchPad extends TileEntityLoadedBase implements ISidedInventory, INBTPacketReceiver, IEnergyUser, SimpleComponent, IGUIProvider { +public class TileEntityLaunchPad extends TileEntityMachineBase implements IEnergyUser, SimpleComponent, IGUIProvider, IRadarCommandReceiver { + + /** Automatic instantiation of generic missiles, i.e. everything that both extends EntityMissileBaseNT and needs a designator */ + public static final HashMap> missiles = new HashMap(); + + public static void registerLaunchables() { + + //Tier 0 + missiles.put(new ComparableStack(ModItems.missile_micro), EntityMissileMicro.class); + missiles.put(new ComparableStack(ModItems.missile_schrabidium), EntityMissileSchrabidium.class); + missiles.put(new ComparableStack(ModItems.missile_bhole), EntityMissileBHole.class); + missiles.put(new ComparableStack(ModItems.missile_taint), EntityMissileTaint.class); + missiles.put(new ComparableStack(ModItems.missile_emp), EntityMissileEMP.class); + //Tier 1 + missiles.put(new ComparableStack(ModItems.missile_generic), EntityMissileGeneric.class); + missiles.put(new ComparableStack(ModItems.missile_incendiary), EntityMissileIncendiary.class); + missiles.put(new ComparableStack(ModItems.missile_cluster), EntityMissileCluster.class); + missiles.put(new ComparableStack(ModItems.missile_buster), EntityMissileBunkerBuster.class); + //Tier 2 + missiles.put(new ComparableStack(ModItems.missile_strong), EntityMissileStrong.class); + missiles.put(new ComparableStack(ModItems.missile_incendiary_strong), EntityMissileIncendiaryStrong.class); + missiles.put(new ComparableStack(ModItems.missile_cluster_strong), EntityMissileClusterStrong.class); + missiles.put(new ComparableStack(ModItems.missile_buster_strong), EntityMissileBusterStrong.class); + missiles.put(new ComparableStack(ModItems.missile_emp_strong), EntityMissileEMPStrong.class); + //Tier 3 + missiles.put(new ComparableStack(ModItems.missile_burst), EntityMissileBurst.class); + missiles.put(new ComparableStack(ModItems.missile_inferno), EntityMissileInferno.class); + missiles.put(new ComparableStack(ModItems.missile_rain), EntityMissileRain.class); + missiles.put(new ComparableStack(ModItems.missile_drill), EntityMissileDrill.class); + missiles.put(new ComparableStack(ModItems.missile_endo), EntityMissileEndo.class); + missiles.put(new ComparableStack(ModItems.missile_exo), EntityMissileExo.class); + missiles.put(new ComparableStack(ModItems.missile_shuttle), EntityMissileShuttle.class); + //Tier 4 + missiles.put(new ComparableStack(ModItems.missile_nuclear), EntityMissileNuclear.class); + missiles.put(new ComparableStack(ModItems.missile_nuclear_cluster), EntityMissileMirv.class); + missiles.put(new ComparableStack(ModItems.missile_volcano), EntityMissileVolcano.class); + } - public ItemStack slots[]; public ItemStack toRender; public long power; public final long maxPower = 100000; - private static final int[] slots_top = new int[] {0}; - private static final int[] slots_bottom = new int[] { 0, 1, 2}; + private static final int[] slots_bottom = new int[] {0, 1, 2}; private static final int[] slots_side = new int[] {0}; - private String customName; public TileEntityLaunchPad() { - slots = new ItemStack[3]; + super(3); } @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if(slots[i] != null) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.launchPad"; - } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) - { - return false; - }else{ - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=64; - } - } - - //You scrubs aren't needed for anything (right now) - @Override - public void openInventory() {} - @Override - public void closeInventory() {} - - @Override - public boolean isItemValidForSlot(int i, ItemStack itemStack) { - return true; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if(slots[i] != null) - { - if(slots[i].stackSize <= j) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) - { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - power = nbt.getLong("power"); - slots = new ItemStack[getSizeInventory()]; - - for(int i = 0; i < list.tagCount(); i++) - { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if(b0 >= 0 && b0 < slots.length) - { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - NBTTagList list = new NBTTagList(); - nbt.setLong("power", power); - - for(int i = 0; i < slots.length; i++) - { - if(slots[i] != null) - { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte)i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) - { - return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side); - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack); - } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return false; - } - - public long getPowerScaled(long i) { - return (power * i) / maxPower; + public String getName() { + return "container.launchPad"; } @Override @@ -213,8 +119,7 @@ public class TileEntityLaunchPad extends TileEntityLoadedBase implements ISidedI data.setInteger("id", Item.getIdFromItem(slots[0].getItem())); data.setShort("meta", (short) slots[0].getItemDamage()); } - - INBTPacketReceiver.networkPack(this, data, 250); + networkPack(data, 250); } } @@ -236,6 +141,34 @@ public class TileEntityLaunchPad extends TileEntityLoadedBase implements ISidedI this.trySubscribe(worldObj, xCoord, yCoord, zCoord - 1, Library.NEG_Z); this.trySubscribe(worldObj, xCoord, yCoord - 1, zCoord, Library.NEG_Y); } + + @Override + public boolean isItemValidForSlot(int i, ItemStack itemStack) { + return true; + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + power = nbt.getLong("power"); + + if(slots == null || slots.length != 3) slots = new ItemStack[3]; + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setLong("power", power); + } + + @Override + public int[] getAccessibleSlotsFromSide(int side) { + return side == 0 ? slots_bottom : (side == 1 ? new int[0] : slots_side); + } + + public long getPowerScaled(long i) { + return (power * i) / maxPower; + } @Override public AxisAlignedBB getRenderBoundingBox() { @@ -245,13 +178,11 @@ public class TileEntityLaunchPad extends TileEntityLoadedBase implements ISidedI @Override public void setPower(long i) { power = i; - } @Override public long getPower() { return power; - } @Override @@ -261,16 +192,12 @@ public class TileEntityLaunchPad extends TileEntityLoadedBase implements ISidedI @Override public long transferPower(long power) { - this.power += power; - if(this.power > this.getMaxPower()) { - long overshoot = this.power - this.getMaxPower(); this.power = this.getMaxPower(); return overshoot; } - return 0; } @@ -281,11 +208,121 @@ public class TileEntityLaunchPad extends TileEntityLoadedBase implements ISidedI @Override @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { + public double getMaxRenderDistanceSquared() { return 65536.0D; } + public boolean hasPower() { + return this.power >= 75_000; + } + + @Override + public boolean sendCommandPosition(int x, int y, int z) { + return this.launchToCoordinate(x, z) == BombReturnCode.LAUNCHED; + } + + @Override + public boolean sendCommandEntity(Entity target) { + return this.launchToEntity(target) == BombReturnCode.LAUNCHED; + } + + public BombReturnCode launchFromDesignator() { + if(slots[0] == null) return BombReturnCode.ERROR_MISSING_COMPONENT; + + boolean needsDesignator = missiles.containsKey(new ComparableStack(slots[0]).makeSingular()); + + int targetX = 0; + int targetZ = 0; + + if(slots[1] != null && slots[1].getItem() instanceof IDesignatorItem) { + + IDesignatorItem designator = (IDesignatorItem) slots[1].getItem(); + + if(!designator.isReady(worldObj, slots[1], xCoord, yCoord, zCoord) && needsDesignator) return BombReturnCode.ERROR_MISSING_COMPONENT; + + Vec3 coords = designator.getCoords(worldObj, slots[1], xCoord, yCoord, zCoord); + targetX = (int) Math.floor(coords.xCoord); + targetZ = (int) Math.floor(coords.zCoord); + + } else { + if(needsDesignator) return BombReturnCode.ERROR_MISSING_COMPONENT; + } + + return this.launchToCoordinate(targetX, targetZ); + } + + public BombReturnCode launchToEntity(Entity entity) { + if(!hasPower()) return BombReturnCode.ERROR_MISSING_COMPONENT; + Entity e = instantiateMissile((int) Math.floor(entity.posX), (int) Math.floor(entity.posZ)); + if(e != null) { + + if(e instanceof EntityMissileAntiBallistic) { + EntityMissileAntiBallistic abm = (EntityMissileAntiBallistic) e; + abm.tracking = entity; + } + + finalizeLaunch(e); + return BombReturnCode.LAUNCHED; + } + return BombReturnCode.ERROR_MISSING_COMPONENT; + } + + public BombReturnCode launchToCoordinate(int targetX, int targetZ) { + if(!hasPower()) return BombReturnCode.ERROR_MISSING_COMPONENT; + Entity e = instantiateMissile(targetX, targetZ); + if(e != null) { + finalizeLaunch(e); + return BombReturnCode.LAUNCHED; + } + return BombReturnCode.ERROR_MISSING_COMPONENT; + } + + public Entity instantiateMissile(int targetX, int targetZ) { + + if(slots[0] == null) return null; + + if(slots[0].getItem() == ModItems.missile_carrier) { + EntityCarrier missile = new EntityCarrier(worldObj); + missile.posX = xCoord + 0.5F; + missile.posY = yCoord + 1F; + missile.posZ = zCoord + 0.5F; + if(slots[1] != null) { + missile.setPayload(slots[1]); + this.slots[1] = null; + } + worldObj.playSoundEffect(xCoord + 0.5, yCoord, zCoord + 0.5, "hbm:entity.rocketTakeoff", 100.0F, 1.0F); + return missile; + } + + Class clazz = this.missiles.get(new ComparableStack(slots[0]).makeSingular()); + + if(clazz != null) { + try { + EntityMissileBaseNT missile = clazz.getConstructor(World.class, float.class, float.class, float.class, int.class, int.class).newInstance(worldObj, xCoord + 0.5F, yCoord + 2F, zCoord + 0.5F, targetX, targetZ); + worldObj.playSoundEffect(xCoord + 0.5, yCoord, zCoord + 0.5, "hbm:weapon.missileTakeOff", 2.0F, 1.0F); + if(GeneralConfig.enableExtendedLogging) MainRegistry.logger.log(Level.INFO, "[MISSILE] Tried to launch missile at " + xCoord + " / " + yCoord + " / " + zCoord + " to " + xCoord + " / " + zCoord + "!"); + return missile; + } catch(Exception e) { } + } + + if(slots[0].getItem() == ModItems.missile_anti_ballistic) { + EntityMissileAntiBallistic missile = new EntityMissileAntiBallistic(worldObj); + missile.posX = xCoord + 0.5F; + missile.posY = yCoord + 0.5F; + missile.posZ = zCoord + 0.5F; + worldObj.playSoundEffect(xCoord + 0.5, yCoord, zCoord + 0.5, "hbm:weapon.missileTakeOff", 2.0F, 1.0F); + return missile; + } + + return null; + } + + public void finalizeLaunch(Entity missile) { + this.power -= 75_000; + worldObj.spawnEntityInWorld(missile); + this.decrStackSize(0, 1); + } + // do some opencomputer stuff @Override public String getComponentName() { @@ -337,7 +374,6 @@ public class TileEntityLaunchPad extends TileEntityLoadedBase implements ISidedI @Callback @Optional.Method(modid = "OpenComputers") public Object[] launch(Context context, Arguments args) { - //worldObj.getBlock(xCoord, yCoord, zCoord).explode(worldObj, xCoord, yCoord, zCoord); ((LaunchPad) ModBlocks.launch_pad).explode(worldObj, xCoord, yCoord, zCoord); return new Object[] {}; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java index 9dba6fd2d..af253e8d8 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java @@ -14,12 +14,16 @@ import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.container.ContainerMachineRadarNT; import com.hbm.inventory.gui.GUIMachineRadarNT; import com.hbm.inventory.gui.GUIMachineRadarNTSlots; +import com.hbm.items.ModItems; +import com.hbm.items.tool.ItemCoordinateBase; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.tileentity.IConfigurableMachine; import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IRadarCommandReceiver; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.Tuple.Triplet; +import com.hbm.util.fauxpointtwelve.BlockPos; import api.hbm.energy.IEnergyUser; import api.hbm.entity.IRadarDetectable; @@ -36,7 +40,9 @@ import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; +import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MathHelper; import net.minecraft.world.World; @@ -164,8 +170,27 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I } } + if(slots[8] != null && slots[8].getItem() == ModItems.radar_linker) { + BlockPos pos = ItemCoordinateBase.getPosition(slots[8]); + if(pos != null) { + TileEntity tile = worldObj.getTileEntity(pos.getX(), pos.getY(), pos.getZ()); + if(tile instanceof TileEntityMachineRadarScreen) { + TileEntityMachineRadarScreen screen = (TileEntityMachineRadarScreen) tile; + screen.entries.clear(); + screen.entries.addAll(this.entries); + screen.refX = xCoord; + screen.refY = yCoord; + screen.refZ = zCoord; + screen.linked = true; + } + } + } + this.networkPackNT(50); - if(this.clearFlag) this.clearFlag = false; + if(this.clearFlag) { + this.map = new byte[40_000]; + this.clearFlag = false; + } } else { prevRotation = rotation; if(power > 0) rotation += 5F; @@ -373,6 +398,37 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I if(data.hasKey("clear")) this.clearFlag = true; if(data.hasKey("gui1")) FMLNetworkHandler.openGui(player, MainRegistry.instance, 1, worldObj, xCoord, yCoord, zCoord); + + if(data.hasKey("link")) { + int id = data.getInteger("link"); + ItemStack link = slots[id]; + + if(link != null && link.getItem() == ModItems.radar_linker) { + BlockPos pos = ItemCoordinateBase.getPosition(link); + + if(pos != null) { + TileEntity tile = worldObj.getTileEntity(pos.getX(), pos.getY(), pos.getZ()); + if(tile instanceof IRadarCommandReceiver) { + IRadarCommandReceiver rec = (IRadarCommandReceiver) tile; + + if(data.hasKey("launchEntity")) { + Entity entity = worldObj.getEntityByID(data.getInteger("launchEntity")); + if(entity != null) { + if(rec.sendCommandEntity(entity)) { + worldObj.playSoundAtEntity(player, "hbm:item.techBleep", 1.0F, 1.0F); + } + } + } else if(data.hasKey("launchPosX")) { + int x = data.getInteger("launchPosX"); + int z = data.getInteger("launchPosZ"); + if(rec.sendCommandPosition(x, yCoord, z)) { + worldObj.playSoundAtEntity(player, "hbm:item.techBleep", 1.0F, 1.0F); + } + } + } + } + } + } } AxisAlignedBB bb = null; @@ -400,6 +456,15 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I return 65536.0D; } + @Override + public boolean isUseableByPlayer(EntityPlayer player) { + if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) { + return false; + } else { + return player.getDistance(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <= 128; + } + } + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { if(ID == 1) return new ContainerMachineRadarNT(player.inventory, this); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarScreen.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarScreen.java new file mode 100644 index 000000000..5d6621f00 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarScreen.java @@ -0,0 +1,61 @@ +package com.hbm.tileentity.machine; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.packet.BufPacket; +import com.hbm.packet.PacketDispatcher; +import com.hbm.tileentity.IBufPacketReceiver; + +import api.hbm.entity.RadarEntry; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import io.netty.buffer.ByteBuf; +import net.minecraft.tileentity.TileEntity; + +public class TileEntityMachineRadarScreen extends TileEntity implements IBufPacketReceiver { + + public List entries = new ArrayList(); + public int refX; + public int refY; + public int refZ; + public boolean linked; + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + this.networkPackNT(100); + entries.clear(); + this.linked = false; + } + } + + public void networkPackNT(int range) { + if(!worldObj.isRemote) PacketDispatcher.wrapper.sendToAllAround(new BufPacket(xCoord, yCoord, zCoord, this), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range)); + } + + @Override + public void serialize(ByteBuf buf) { + buf.writeBoolean(linked); + buf.writeInt(refX); + buf.writeInt(refY); + buf.writeInt(refZ); + buf.writeInt(entries.size()); + for(RadarEntry entry : entries) entry.toBytes(buf); + } + + @Override + public void deserialize(ByteBuf buf) { + linked = buf.readBoolean(); + refX = buf.readInt(); + refY = buf.readInt(); + refZ = buf.readInt(); + int count = buf.readInt(); + this.entries.clear(); + for(int i = 0; i < count; i++) { + RadarEntry entry = new RadarEntry(); + entry.fromBytes(buf); + this.entries.add(entry); + } + } +} diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java index a32914fc3..c479982db 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java @@ -303,13 +303,14 @@ public class TileEntityTurretArty extends TileEntityTurretBaseArtillery implemen if(tPos != null) this.alignTurret(); } else { - this.target = null; this.tPos = null; } if(!worldObj.isRemote) { + if(!isOn()) this.targetQueue.clear(); + if(this.target != null && !target.isEntityAlive()) { this.target = null; this.tPos = null; diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseArtillery.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseArtillery.java index 35d211872..4257d55b6 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseArtillery.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseArtillery.java @@ -3,12 +3,24 @@ package com.hbm.tileentity.turret; import java.util.ArrayList; import java.util.List; +import com.hbm.tileentity.IRadarCommandReceiver; + import net.minecraft.entity.Entity; import net.minecraft.util.Vec3; -public abstract class TileEntityTurretBaseArtillery extends TileEntityTurretBaseNT { +public abstract class TileEntityTurretBaseArtillery extends TileEntityTurretBaseNT implements IRadarCommandReceiver { protected List targetQueue = new ArrayList(); + + public boolean sendCommandPosition(int x, int y, int z) { + this.enqueueTarget(x + 0.5, y, z + 0.5); + return true; + } + + public boolean sendCommandEntity(Entity target) { + this.enqueueTarget(target.posX, target.posY, target.posZ); + return true; + } public void enqueueTarget(double x, double y, double z) { diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHIMARS.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHIMARS.java index 0b0718d44..050040197 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHIMARS.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHIMARS.java @@ -222,6 +222,8 @@ public class TileEntityTurretHIMARS extends TileEntityTurretBaseArtillery implem if(!worldObj.isRemote) { + if(!isOn()) this.targetQueue.clear(); + if(this.target != null && !target.isEntityAlive()) { this.target = null; this.tPos = null; diff --git a/src/main/resources/assets/hbm/models/machines/radar_screen.obj b/src/main/resources/assets/hbm/models/machines/radar_screen.obj new file mode 100644 index 000000000..18f4a3cc5 --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/radar_screen.obj @@ -0,0 +1,140 @@ +# Blender v2.79 (sub 0) OBJ File: 'radar_screen.blend' +# www.blender.org +o Plane +v -0.250000 0.000000 1.500000 +v 0.500000 0.000000 1.500000 +v -0.250000 0.000000 -0.500000 +v 0.500000 0.000000 -0.500000 +v -0.250000 2.000000 -0.500000 +v -0.250000 2.000000 1.500000 +v 0.500000 2.000000 1.500000 +v 0.500000 2.000000 -0.500000 +v -0.250000 0.250000 -0.250000 +v -0.250000 0.250000 1.250000 +v -0.250000 1.750000 -0.250000 +v -0.250000 1.750000 1.250000 +v -0.500000 0.250000 -0.250000 +v -0.500000 0.250000 1.250000 +v -0.500000 1.750000 -0.250000 +v -0.500000 1.750000 1.250000 +v 0.500000 0.125000 1.375000 +v 0.500000 0.125000 -0.375000 +v 0.500000 1.875000 1.375000 +v 0.500000 1.875000 -0.375000 +v 0.375000 0.125000 1.375000 +v 0.375000 0.125000 -0.375000 +v 0.375000 1.875000 1.375000 +v 0.375000 1.875000 -0.375000 +vt 0.500000 0.000000 +vt 0.136364 0.214286 +vt 0.136364 0.000000 +vt 0.136364 0.785714 +vt 0.500000 1.000000 +vt 0.136364 1.000000 +vt 0.636364 0.214286 +vt 0.500000 0.785714 +vt 0.500000 0.214286 +vt 0.000000 0.785714 +vt 0.000000 0.214286 +vt 0.159091 0.750000 +vt 0.681818 0.714286 +vt 0.636364 0.785714 +vt 0.500000 0.107143 +vt 0.772727 0.035714 +vt 0.772727 0.107143 +vt 0.954545 0.714286 +vt 1.000000 0.785714 +vt 1.000000 0.214286 +vt 0.681818 0.285714 +vt 0.954545 0.285714 +vt 0.954545 0.267857 +vt 0.681818 0.714286 +vt 0.681818 0.267857 +vt 0.500000 0.107143 +vt 0.772727 0.035714 +vt 0.772727 0.107143 +vt 0.500000 0.107143 +vt 0.772727 0.035714 +vt 0.772727 0.107143 +vt 0.500000 0.107143 +vt 0.772727 0.035714 +vt 0.772727 0.107143 +vt 0.818182 -0.000000 +vt 0.500000 0.035714 +vt 0.500000 0.000000 +vt 0.477273 0.750000 +vt 0.159091 0.250000 +vt 0.477273 0.250000 +vt 0.477273 0.250000 +vt 0.159091 0.750000 +vt 0.159091 0.250000 +vt 0.818182 0.000000 +vt 0.500000 0.035714 +vt 0.500000 0.000000 +vt 0.818182 0.000000 +vt 0.500000 0.035714 +vt 0.500000 0.000000 +vt 0.818182 -0.000000 +vt 0.500000 0.035714 +vt 0.500000 0.000000 +vt 0.500000 0.035714 +vt 0.954545 0.714286 +vt 0.500000 0.035714 +vt 0.500000 0.035714 +vt 0.500000 0.035714 +vt 0.818182 0.035714 +vt 0.477273 0.750000 +vt 0.818182 0.035714 +vt 0.818182 0.035714 +vt 0.818182 0.035714 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +s off +f 3/1/1 2/2/1 1/3/1 +f 7/4/2 5/5/2 6/6/2 +f 3/7/3 8/8/3 4/9/3 +f 2/2/4 6/10/4 1/11/4 +f 2/2/5 19/12/5 7/4/5 +f 3/7/6 11/13/6 5/14/6 +f 9/15/3 15/16/3 11/17/3 +f 5/14/6 12/18/6 6/19/6 +f 1/20/6 9/21/6 3/7/6 +f 6/19/6 10/22/6 1/20/6 +f 14/23/6 15/24/6 13/25/6 +f 10/26/1 13/27/1 9/28/1 +f 12/29/4 14/30/4 10/31/4 +f 11/32/2 16/33/2 12/34/2 +f 20/35/4 22/36/4 18/37/4 +f 7/4/5 20/38/5 8/8/5 +f 4/9/5 17/39/5 2/2/5 +f 8/8/5 18/40/5 4/9/5 +f 22/41/5 23/42/5 21/43/5 +f 18/44/2 21/45/2 17/46/2 +f 17/47/3 23/48/3 19/49/3 +f 19/50/1 24/51/1 20/52/1 +f 3/1/1 4/9/1 2/2/1 +f 7/4/2 8/8/2 5/5/2 +f 3/7/3 5/14/3 8/8/3 +f 2/2/4 7/4/4 6/10/4 +f 2/2/5 17/39/5 19/12/5 +f 3/7/6 9/21/6 11/13/6 +f 9/15/3 13/53/3 15/16/3 +f 5/14/6 11/13/6 12/18/6 +f 1/20/6 10/22/6 9/21/6 +f 6/19/6 12/18/6 10/22/6 +f 14/23/6 16/54/6 15/24/6 +f 10/26/1 14/55/1 13/27/1 +f 12/29/4 16/56/4 14/30/4 +f 11/32/2 15/57/2 16/33/2 +f 20/35/4 24/58/4 22/36/4 +f 7/4/5 19/12/5 20/38/5 +f 4/9/5 18/40/5 17/39/5 +f 8/8/5 20/38/5 18/40/5 +f 22/41/5 24/59/5 23/42/5 +f 18/44/2 22/60/2 21/45/2 +f 17/47/3 21/61/3 23/48/3 +f 19/50/1 23/62/1 24/51/1 diff --git a/src/main/resources/assets/hbm/textures/items/radar_link.png b/src/main/resources/assets/hbm/textures/items/radar_linker.png similarity index 100% rename from src/main/resources/assets/hbm/textures/items/radar_link.png rename to src/main/resources/assets/hbm/textures/items/radar_linker.png diff --git a/src/main/resources/assets/hbm/textures/models/machines/radar_screen.png b/src/main/resources/assets/hbm/textures/models/machines/radar_screen.png new file mode 100644 index 0000000000000000000000000000000000000000..82e959a1c40a8f411622cb09ad26683442d63097 GIT binary patch literal 621 zcmV-z0+RiSP)S5XU!CYONpO!Gj*ZlM_Ck6_7C&c=CO-_0xUE~0!)kqm>3B#F%n>6B*4T-fQbPm8nel` z)Y?9F2~dDt%&52sxN8glot9FI+QOz(bT%31BbU1t;gY|(MCfYV@TG6up*k+lZc696 z{@Si(Ed9#^++;+oQS}?!KkaA5y=50ry8;k@v$xk;8&e#goaV=%kDSX~bf%=wf0}no z=U|E82IFt9*E8tJFQd_D?HW!Z7{U0Prm1On{=_?pP)eyR%dGW8h zld2EX?a`vWd)Kq803#7B8tfA+8Vq{nbgN>^k!zru=7&Tu;zy$4DDKoE7?D~8F@8t{ zV>JzfBpMCyqZYwfO_N&079$eT07*26ky^x-vbt`88k|JvR@1O{1t9(wSKQbFED@_~ z#cZSNFPFs0@>OEA_x*DJA+lGQ5Eob0%U)$-WS0>!5@2E^z{EJ0$wg5_I*S<$21aKo zGJ=Vb02AY!L?lVV?SdAdOpY_ru-*6Yp^wsJ=k_YQmd$+w{H;5yz?#D+00000NkvXX Hu0mjf8QmK; literal 0 HcmV?d00001 From 06181f08d9c2762368965081e4cad8afea1f1e3b Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 26 Nov 2023 20:27:58 +0100 Subject: [PATCH 395/432] yeah whatever --- changelog | 19 +- gradle.properties | 2 +- src/main/java/com/hbm/blocks/ModBlocks.java | 4 +- .../missile/EntityMissileAntiBallistic.java | 12 +- .../entity/missile/EntityMissileBaseNT.java | 9 +- .../hbm/inventory/gui/GUIMachineRadarNT.java | 42 +- src/main/java/com/hbm/lib/RefStrings.java | 2 +- .../java/com/hbm/main/CraftingManager.java | 2 + .../java/com/hbm/main/ResourceManager.java | 22 +- .../entity/rocket/RenderMissileHuge.java | 32 +- .../entity/rocket/RenderMissileStrong.java | 34 +- .../tileentity/RenderLaunchPadTier1.java | 22 +- .../render/tileentity/RenderRadarScreen.java | 25 +- .../render/tileentity/RendererObjTester.java | 42 +- .../machine/TileEntityMachineRadarNT.java | 23 +- .../machine/TileEntityMachineRadarScreen.java | 28 + src/main/java/com/hbm/world/WorldUtil.java | 32 +- src/main/resources/META-INF/HBM_at.cfg | 3 + src/main/resources/assets/hbm/lang/de_DE.lang | 3 + src/main/resources/assets/hbm/lang/en_US.lang | 3 + .../assets/hbm/models/missile_huge.obj | 1581 +++++++++++++++++ .../assets/hbm/models/missile_strong.obj | 979 ++++++++++ .../hbm/textures/items/missile_buster.png | Bin 318 -> 343 bytes .../hbm/textures/items/missile_cluster.png | Bin 312 -> 366 bytes .../hbm/textures/items/missile_generic.png | Bin 300 -> 372 bytes .../hbm/textures/items/missile_incendiary.png | Bin 315 -> 414 bytes .../assets/hbm/textures/models/mas.png | Bin 0 -> 445 bytes .../assets/hbm/textures/models/missileAA.png | Bin 7609 -> 0 bytes .../hbm/textures/models/missileHuge_BU.png | Bin 9690 -> 0 bytes .../hbm/textures/models/missileHuge_CL.png | Bin 9400 -> 0 bytes .../hbm/textures/models/missileHuge_HE.png | Bin 9365 -> 0 bytes .../hbm/textures/models/missileHuge_IN.png | Bin 10260 -> 0 bytes .../hbm/textures/models/missileMIRV.png | Bin 11306 -> 0 bytes .../hbm/textures/models/missileStrong_BU.png | Bin 9972 -> 0 bytes .../hbm/textures/models/missileStrong_CL.png | Bin 9570 -> 0 bytes .../hbm/textures/models/missileStrong_EMP.png | Bin 7748 -> 0 bytes .../hbm/textures/models/missileStrong_HE.png | Bin 9579 -> 0 bytes .../hbm/textures/models/missileStrong_IN.png | Bin 10172 -> 0 bytes .../hbm/textures/models/missileV2_BU.png | Bin 7728 -> 0 bytes .../hbm/textures/models/missileV2_CL.png | Bin 7442 -> 0 bytes .../hbm/textures/models/missileV2_HE.png | Bin 7412 -> 0 bytes .../hbm/textures/models/missileV2_IN.png | Bin 8413 -> 0 bytes .../hbm/textures/models/missile_huge.png | Bin 0 -> 2187 bytes .../hbm/textures/models/missile_huge_bu.png | Bin 0 -> 2255 bytes .../hbm/textures/models/missile_huge_cl.png | Bin 0 -> 2211 bytes .../hbm/textures/models/missile_huge_inc.png | Bin 0 -> 2211 bytes .../hbm/textures/models/missile_strong.png | Bin 0 -> 835 bytes .../hbm/textures/models/missile_strong_bu.png | Bin 0 -> 943 bytes .../hbm/textures/models/missile_strong_cl.png | Bin 0 -> 934 bytes .../textures/models/missile_strong_emp.png | Bin 0 -> 905 bytes .../textures/models/missile_strong_inc.png | Bin 0 -> 860 bytes 51 files changed, 2819 insertions(+), 102 deletions(-) create mode 100644 src/main/resources/assets/hbm/models/missile_huge.obj create mode 100644 src/main/resources/assets/hbm/models/missile_strong.obj create mode 100644 src/main/resources/assets/hbm/textures/models/mas.png delete mode 100644 src/main/resources/assets/hbm/textures/models/missileAA.png delete mode 100644 src/main/resources/assets/hbm/textures/models/missileHuge_BU.png delete mode 100644 src/main/resources/assets/hbm/textures/models/missileHuge_CL.png delete mode 100644 src/main/resources/assets/hbm/textures/models/missileHuge_HE.png delete mode 100644 src/main/resources/assets/hbm/textures/models/missileHuge_IN.png delete mode 100644 src/main/resources/assets/hbm/textures/models/missileMIRV.png delete mode 100644 src/main/resources/assets/hbm/textures/models/missileStrong_BU.png delete mode 100644 src/main/resources/assets/hbm/textures/models/missileStrong_CL.png delete mode 100644 src/main/resources/assets/hbm/textures/models/missileStrong_EMP.png delete mode 100644 src/main/resources/assets/hbm/textures/models/missileStrong_HE.png delete mode 100644 src/main/resources/assets/hbm/textures/models/missileStrong_IN.png delete mode 100644 src/main/resources/assets/hbm/textures/models/missileV2_BU.png delete mode 100644 src/main/resources/assets/hbm/textures/models/missileV2_CL.png delete mode 100644 src/main/resources/assets/hbm/textures/models/missileV2_HE.png delete mode 100644 src/main/resources/assets/hbm/textures/models/missileV2_IN.png create mode 100644 src/main/resources/assets/hbm/textures/models/missile_huge.png create mode 100644 src/main/resources/assets/hbm/textures/models/missile_huge_bu.png create mode 100644 src/main/resources/assets/hbm/textures/models/missile_huge_cl.png create mode 100644 src/main/resources/assets/hbm/textures/models/missile_huge_inc.png create mode 100644 src/main/resources/assets/hbm/textures/models/missile_strong.png create mode 100644 src/main/resources/assets/hbm/textures/models/missile_strong_bu.png create mode 100644 src/main/resources/assets/hbm/textures/models/missile_strong_cl.png create mode 100644 src/main/resources/assets/hbm/textures/models/missile_strong_emp.png create mode 100644 src/main/resources/assets/hbm/textures/models/missile_strong_inc.png diff --git a/changelog b/changelog index fd05f734e..e707528ba 100644 --- a/changelog +++ b/changelog @@ -8,21 +8,25 @@ * Replaces insulator in many recipes where electrical insulation that is potentially made from brick doesn't make sense, like rubber gas masks, jackets, tools and so on * Latex is interchangable with rubber in all recipes where it's used, but not the other way round * The old insulator is now mainly used for electrical and heat insulation as well as PWR rods +* Radar screen + * Radars can be linked to one radar screen, which will display all detected blips + * Right-clicking the radar screen will open the GUI of the radar that it is linked to ## Changed -* Light oil and cracked light oil can now be refomred into large quantities of aromatic hydrocarbons a well as some reformate gas +* Light oil and cracked light oil can now be reformed into large quantities of aromatic hydrocarbons a well as some reformate gas * The painsaw ability no longer drops ammo and syringes, instead it drops nitra * Radars have been completely rewritten * Dots will now move smoothly across the screen, instead of jittering and being bound to the pixel grid * Radars no longer use CPU-intensive full scans of the map, instead of using an optimized search for nearby scannable entities - * There's now a dedicated toggle for detecing artillery shells + * There's now a dedicated toggle for detecting artillery shells * Radars now have a local area map that can be enabled * The map scans up to 100 points per tick, the display can show 40,000 points - * The map will scan loaded chunks instantly, unloaded chunks have a limit of 5 chunk loads per tick to prevent excessive lag - * The chunk load limit can be adjusted in the machine config file + * The map will scan loaded chunks instantly, unloaded chunks have a limit 10 chunkloads per tick to prevent excessive lag. Chunks that have not yet been generated yet will show up as black spots, and will never be loaded + * The chunk load limit as well as whether chunks should be generated can be adjusted in the machine config file * The map will show terrain height between Y:50 and Y:128, anything outside that range is truncated * Radars now have a second GUI which allows the use of a battery, as well as linking the radar to other machines * By using the number keys, the radar can now launch missiles, ABMs or artillery at the current aimed at position + * Radars can be linked to one additional radar screen which shows part of the radar's GUI in-world * The turbofan's afterburner now adds a 33% efficiency bonus for every level. This means that instead of the efficiency remaining constant between levels, a tier 3 upgrade will yield double efficiency. * Reduced the flarestack's base energy efficiency * Trenchmaster armor is now unbreakable @@ -30,11 +34,13 @@ * The arc welder recipes for enhanced and advanced circuits now use only 100mB of fluid instead of 250mB * Completely rewrote the missile base code, missiles now accelerate smoothly instead of in increments and use interpolated movement, making them less jittery * Missiles now have a slightly higher top-speed -* Remodeled the anti-ballistic missile +* Remodeled tier 1, 2 and 3 missiles as well as the anti-ballistic missile * Anti-ballistic missiles now use predictive targeting as well as a heightened sensor range of 1,000 blocks (instead of 500) which should make them a lot more effective * Anti-ballistic missiles accelerate 4x faster than normal missiles and have a 50% higher top-speed * Anti-ballistic missiles can now load their own chunks, allowing them to get to far away incoming missiles without getting stuck * PWRs that have recently been close to unloaded chunks now have a 40 tick timeframe where they are "frozen", only trying to connect to a fluid network but not doing any fission, this should reduce the amount of meltdowns caused by chunkloading +* Glyphid hive blocks now have some color variance +* Glpyhid spawners now have a unique texture ## Fixed * Fixed thorium bedrock ore using the wrong ore dict key, making it unable to be processed via centrifuge or acidizer @@ -42,4 +48,5 @@ * Fixed bismuth billets not being oredicted, making BFB PWR rods uncraftable * Fixed missile chunkloading having rounding issues, sometimes causing them to get stuck in unloaded chunks while crossing chunk borders * Fixed drones not being listed in the creative tabs -* Fixed pre-defined fluid duct items not being being able to be placed where replacable blocks are, eg. water \ No newline at end of file +* Fixed pre-defined fluid duct items not being being able to be placed where replacable blocks are, eg. water +* Fixed horrible gamebreaking bug where the reinforced glass pane has too much blast resistance \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index a60f1e9c9..64187a8b7 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4775 +mod_build_number=4795 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index a4873c99c..cbc8adbd4 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1548,8 +1548,8 @@ public class ModBlocks { asphalt_light = new BlockSpeedy(Material.rock, 1.5).setBlockName("asphalt_light").setCreativeTab(MainRegistry.blockTab).setLightLevel(1F).setHardness(15.0F).setResistance(120.0F).setBlockTextureName(RefStrings.MODID + ":asphalt_light"); reinforced_brick = new BlockGeneric(Material.rock).setBlockName("reinforced_brick").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(300.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_brick"); - reinforced_glass = new BlockNTMGlassCT(0, RefStrings.MODID + ":reinforced_glass", Material.rock).setBlockName("reinforced_glass").setCreativeTab(MainRegistry.blockTab).setLightOpacity(0).setHardness(15.0F).setResistance(25.0F); - reinforced_glass_pane = new BlockNTMGlassPane(0, RefStrings.MODID + ":reinforced_glass_pane", RefStrings.MODID + ":reinforced_glass_pane_edge", Material.rock, false).setBlockName("reinforced_glass_pane").setCreativeTab(MainRegistry.blockTab).setLightOpacity(1).setHardness(15.0F).setResistance(200.0F); + reinforced_glass = new BlockNTMGlassCT(0, RefStrings.MODID + ":reinforced_glass", Material.rock).setBlockName("reinforced_glass").setCreativeTab(MainRegistry.blockTab).setLightOpacity(0).setHardness(2.0F).setResistance(25.0F); + reinforced_glass_pane = new BlockNTMGlassPane(0, RefStrings.MODID + ":reinforced_glass_pane", RefStrings.MODID + ":reinforced_glass_pane_edge", Material.rock, false).setBlockName("reinforced_glass_pane").setCreativeTab(MainRegistry.blockTab).setLightOpacity(1).setHardness(2.0F).setResistance(25.0F); reinforced_light = new BlockGeneric(Material.rock).setBlockName("reinforced_light").setCreativeTab(MainRegistry.blockTab).setLightLevel(1.0F).setHardness(15.0F).setResistance(80.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_light"); reinforced_sand = new BlockGeneric(Material.rock).setBlockName("reinforced_sand").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(40.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_sand"); reinforced_lamp_off = new ReinforcedLamp(Material.rock, false).setBlockName("reinforced_lamp_off").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(80.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_lamp_off"); diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileAntiBallistic.java b/src/main/java/com/hbm/entity/missile/EntityMissileAntiBallistic.java index c48961d7d..b0f2ef6be 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileAntiBallistic.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileAntiBallistic.java @@ -77,6 +77,8 @@ public class EntityMissileAntiBallistic extends EntityThrowableInterp implements if(this.tracking != null) { this.aimAtTarget(); + } else { + if(this.ticksExisted > 600) this.setDead(); } } @@ -127,8 +129,9 @@ public class EntityMissileAntiBallistic extends EntityThrowableInterp implements Vec3 motion = Vec3.createVectorHelper(predicted.xCoord - posX, predicted.yCoord - posY, predicted.zCoord - posZ).normalize(); if(delta.lengthVector() < 10 && activationTimer >= 40) { + this.setDead(); ExplosionLarge.explode(worldObj, posX, posY, posZ, 15F, true, false, false); - this.killAndClear(); + } this.motionX = motion.xCoord * baseSpeed; @@ -139,8 +142,8 @@ public class EntityMissileAntiBallistic extends EntityThrowableInterp implements @Override protected void onImpact(MovingObjectPosition mop) { if(this.activationTimer >= 40) { + this.setDead(); ExplosionLarge.explode(worldObj, posX, posY, posZ, 20F, true, false, false); - this.killAndClear(); } } @@ -205,8 +208,9 @@ public class EntityMissileAntiBallistic extends EntityThrowableInterp implements } } - public void killAndClear() { - this.setDead(); + @Override + public void setDead() { + super.setDead(); this.clearChunkLoader(); } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java b/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java index 9cc8c9456..8fdd2f065 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java @@ -215,10 +215,10 @@ public abstract class EntityMissileBaseNT extends EntityThrowableInterp implemen } protected void killMissile() { + this.setDead(); ExplosionLarge.explode(worldObj, posX, posY, posZ, 5, true, false, true); ExplosionLarge.spawnShrapnelShower(worldObj, posX, posY, posZ, motionX, motionY, motionZ, 15, 0.075); ExplosionLarge.spawnMissileDebris(worldObj, posX, posY, posZ, motionX, motionY, motionZ, 0.25, getDebris(), getDebrisRareDrop()); - this.killAndClear(); } @Override @@ -231,7 +231,7 @@ public abstract class EntityMissileBaseNT extends EntityThrowableInterp implemen protected void onImpact(MovingObjectPosition mop) { if(mop != null && mop.typeOfHit == mop.typeOfHit.BLOCK) { this.onImpact(); - this.killAndClear(); + this.setDead(); } } @@ -290,8 +290,9 @@ public abstract class EntityMissileBaseNT extends EntityThrowableInterp implemen } } - public void killAndClear() { - this.setDead(); + @Override + public void setDead() { + super.setDead(); this.clearChunkLoader(); } diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNT.java b/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNT.java index 5577c7638..accefedf1 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNT.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNT.java @@ -4,7 +4,6 @@ import java.util.Arrays; import org.lwjgl.opengl.GL11; -import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; import com.hbm.packet.NBTControlPacket; import com.hbm.packet.PacketDispatcher; @@ -224,32 +223,29 @@ public class GUIMachineRadarNT extends GuiScreen { if(checkClick(lastMouseX, lastMouseY, 8, 17, 200, 200) && c >= '1' && c <= '8') { int id = c - '1'; - - if(radar.slots[id] != null && radar.slots[id].getItem() == ModItems.radar_linker) { - if(!radar.entries.isEmpty()) { - for(RadarEntry m : radar.entries) { - int x = guiLeft + (int)((m.posX - radar.xCoord) / ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) * (200D - 8D)) + 108; - int z = guiTop + (int)((m.posZ - radar.zCoord) / ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) * (200D - 8D)) + 117; - - if(lastMouseX + 5 > x && lastMouseX - 4 <= x && lastMouseY + 5 > z && lastMouseY - 4 <= z) { - NBTTagCompound data = new NBTTagCompound(); - data.setInteger("launchEntity", m.entityID); - data.setInteger("link", id); - PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, radar.xCoord, radar.yCoord, radar.zCoord)); - return; - } + if(!radar.entries.isEmpty()) { + for(RadarEntry m : radar.entries) { + int x = guiLeft + (int) ((m.posX - radar.xCoord) / ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) * (200D - 8D)) + 108; + int z = guiTop + (int) ((m.posZ - radar.zCoord) / ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) * (200D - 8D)) + 117; + + if(lastMouseX + 5 > x && lastMouseX - 4 <= x && lastMouseY + 5 > z && lastMouseY - 4 <= z) { + NBTTagCompound data = new NBTTagCompound(); + data.setInteger("launchEntity", m.entityID); + data.setInteger("link", id); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, radar.xCoord, radar.yCoord, radar.zCoord)); + return; } } - - int tX = (int) ((lastMouseX - guiLeft - 108) * ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) / 192D + radar.xCoord); - int tZ = (int) ((lastMouseY - guiTop - 117) * ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) / 192D + radar.zCoord); - NBTTagCompound data = new NBTTagCompound(); - data.setInteger("launchPosX", tX); - data.setInteger("launchPosZ", tZ); - data.setInteger("link", id); - PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, radar.xCoord, radar.yCoord, radar.zCoord)); } + + int tX = (int) ((lastMouseX - guiLeft - 108) * ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) / 192D + radar.xCoord); + int tZ = (int) ((lastMouseY - guiTop - 117) * ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) / 192D + radar.zCoord); + NBTTagCompound data = new NBTTagCompound(); + data.setInteger("launchPosX", tX); + data.setInteger("launchPosZ", tZ); + data.setInteger("link", id); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, radar.xCoord, radar.yCoord, radar.zCoord)); } } diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 0c18a2d38..5f353ffa1 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4775)"; + public static final String VERSION = "1.0.27 BETA (4795)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 34fbbfd48..5e0cc59e9 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -1004,6 +1004,8 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.crane_splitter), new Object[] { "III", "PCP", "III", 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_PNEUMATIC), 'I', STEEL.ingot(), 'C', ModItems.circuit_aluminium }); addRecipeAuto(new ItemStack(ModBlocks.machine_conveyor_press), new Object[] { "CPC", "CBC", "CCC", 'C', CU.plate(), 'P', ModBlocks.machine_epress, 'B', ModBlocks.conveyor }); + addRecipeAuto(new ItemStack(ModBlocks.radar_screen), new Object[] { "PCP", "SRS", "PCP", 'P', ANY_PLASTIC.ingot(), 'C', ModItems.circuit_aluminium, 'S', STEEL.plate(), 'R', ModItems.crt_display }); + addRecipeAuto(new ItemStack(ModItems.radar_linker), new Object[] { "S", "C", "P", 'S', ModItems.crt_display, 'C', ModItems.circuit_copper, 'P', STEEL.plate() }); addRecipeAuto(new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL.ordinal()), new Object[] { "PPP", "HCH", " B ", 'P', ANY_PLASTIC.ingot(), 'H', ModItems.hull_small_steel, 'C', ModItems.circuit_copper, 'B', ModBlocks.crate_steel }); addRecipeAuto(new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL_CHUNKLOADING.ordinal()), new Object[] { "E", "D", 'E', Items.ender_pearl, 'D', new ItemStack(ModItems.drone, 1, EnumDroneType.PATROL.ordinal()) }); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index b1374f425..f585c1a71 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -1013,8 +1013,8 @@ public class ResourceManager { //Missiles public static final IModelCustom missileV2 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_v2.obj")).asDisplayList(); public static final IModelCustom missileABM = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_abm.obj")).asDisplayList(); - public static final IModelCustom missileStrong = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileGeneric.obj")); - public static final IModelCustom missileHuge = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileHuge.obj")); + public static final IModelCustom missileStrong = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_strong.obj")); + public static final IModelCustom missileHuge = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/missile_huge.obj")); public static final IModelCustom missileNuclear = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileNeon.obj")); public static final IModelCustom missileMIRV = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileMIRV.obj")); public static final IModelCustom missileThermo = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileThermo.obj")); @@ -1156,15 +1156,15 @@ public class ResourceManager { public static final ResourceLocation missileV2_CL_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_v2_cl.png"); public static final ResourceLocation missileV2_BU_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_v2_bu.png"); public static final ResourceLocation missileAA_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_abm.png"); - public static final ResourceLocation missileStrong_HE_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileStrong_HE.png"); - public static final ResourceLocation missileStrong_EMP_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileStrong_EMP.png"); - public static final ResourceLocation missileStrong_IN_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileStrong_IN.png"); - public static final ResourceLocation missileStrong_CL_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileStrong_CL.png"); - public static final ResourceLocation missileStrong_BU_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileStrong_BU.png"); - public static final ResourceLocation missileHuge_HE_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileHuge_HE.png"); - public static final ResourceLocation missileHuge_IN_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileHuge_IN.png"); - public static final ResourceLocation missileHuge_CL_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileHuge_CL.png"); - public static final ResourceLocation missileHuge_BU_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileHuge_BU.png"); + public static final ResourceLocation missileStrong_HE_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_strong.png"); + public static final ResourceLocation missileStrong_EMP_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_strong_emp.png"); + public static final ResourceLocation missileStrong_IN_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_strong_inc.png"); + public static final ResourceLocation missileStrong_CL_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_strong_cl.png"); + public static final ResourceLocation missileStrong_BU_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_strong_bu.png"); + public static final ResourceLocation missileHuge_HE_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_huge.png"); + public static final ResourceLocation missileHuge_IN_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_huge_inc.png"); + public static final ResourceLocation missileHuge_CL_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_huge_cl.png"); + public static final ResourceLocation missileHuge_BU_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_huge_bu.png"); public static final ResourceLocation missileNuclear_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileNeon.png"); public static final ResourceLocation missileMIRV_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileNeonH.png"); public static final ResourceLocation missileVolcano_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileNeonV.png"); diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderMissileHuge.java b/src/main/java/com/hbm/render/entity/rocket/RenderMissileHuge.java index 9c7a64938..00df032dc 100644 --- a/src/main/java/com/hbm/render/entity/rocket/RenderMissileHuge.java +++ b/src/main/java/com/hbm/render/entity/rocket/RenderMissileHuge.java @@ -10,27 +10,29 @@ import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; public class RenderMissileHuge extends Render { - - public RenderMissileHuge() { } + + public RenderMissileHuge() { + } @Override public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { GL11.glPushMatrix(); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_); - GL11.glScalef(2F, 2F, 2F); - GL11.glRotatef(p_76986_1_.prevRotationYaw + (p_76986_1_.rotationYaw - p_76986_1_.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(p_76986_1_.prevRotationPitch + (p_76986_1_.rotationPitch - p_76986_1_.prevRotationPitch) * p_76986_9_, 0.0F, 0.0F, 1.0F); + GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_); + GL11.glRotatef(p_76986_1_.prevRotationYaw + (p_76986_1_.rotationYaw - p_76986_1_.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(p_76986_1_.prevRotationPitch + (p_76986_1_.rotationPitch - p_76986_1_.prevRotationPitch) * p_76986_9_, 0.0F, 0.0F, 1.0F); - if(p_76986_1_ instanceof EntityMissileBurst) - bindTexture(ResourceManager.missileHuge_HE_tex); - if(p_76986_1_ instanceof EntityMissileInferno) - bindTexture(ResourceManager.missileHuge_IN_tex); - if(p_76986_1_ instanceof EntityMissileRain) - bindTexture(ResourceManager.missileHuge_CL_tex); - if(p_76986_1_ instanceof EntityMissileDrill) - bindTexture(ResourceManager.missileHuge_BU_tex); - ResourceManager.missileHuge.renderAll(); + if(p_76986_1_ instanceof EntityMissileBurst) + bindTexture(ResourceManager.missileHuge_HE_tex); + if(p_76986_1_ instanceof EntityMissileInferno) + bindTexture(ResourceManager.missileHuge_IN_tex); + if(p_76986_1_ instanceof EntityMissileRain) + bindTexture(ResourceManager.missileHuge_CL_tex); + if(p_76986_1_ instanceof EntityMissileDrill) + bindTexture(ResourceManager.missileHuge_BU_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.missileHuge.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderMissileStrong.java b/src/main/java/com/hbm/render/entity/rocket/RenderMissileStrong.java index 23d3003ce..5b31dbd04 100644 --- a/src/main/java/com/hbm/render/entity/rocket/RenderMissileStrong.java +++ b/src/main/java/com/hbm/render/entity/rocket/RenderMissileStrong.java @@ -17,22 +17,24 @@ public class RenderMissileStrong extends Render { public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { GL11.glPushMatrix(); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_); - GL11.glScalef(1.5F, 1.5F, 1.5F); - GL11.glRotatef(p_76986_1_.prevRotationYaw + (p_76986_1_.rotationYaw - p_76986_1_.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(p_76986_1_.prevRotationPitch + (p_76986_1_.rotationPitch - p_76986_1_.prevRotationPitch) * p_76986_9_, 0.0F, 0.0F, 1.0F); - - if(p_76986_1_ instanceof EntityMissileStrong) - bindTexture(ResourceManager.missileStrong_HE_tex); - if(p_76986_1_ instanceof EntityMissileIncendiaryStrong) - bindTexture(ResourceManager.missileStrong_IN_tex); - if(p_76986_1_ instanceof EntityMissileClusterStrong) - bindTexture(ResourceManager.missileStrong_CL_tex); - if(p_76986_1_ instanceof EntityMissileBusterStrong) - bindTexture(ResourceManager.missileStrong_BU_tex); - if(p_76986_1_ instanceof EntityMissileEMPStrong) - bindTexture(ResourceManager.missileStrong_EMP_tex); - ResourceManager.missileStrong.renderAll(); + GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_); + GL11.glScalef(1.5F, 1.5F, 1.5F); + GL11.glRotatef(p_76986_1_.prevRotationYaw + (p_76986_1_.rotationYaw - p_76986_1_.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(p_76986_1_.prevRotationPitch + (p_76986_1_.rotationPitch - p_76986_1_.prevRotationPitch) * p_76986_9_, 0.0F, 0.0F, 1.0F); + + if(p_76986_1_ instanceof EntityMissileStrong) + bindTexture(ResourceManager.missileStrong_HE_tex); + if(p_76986_1_ instanceof EntityMissileIncendiaryStrong) + bindTexture(ResourceManager.missileStrong_IN_tex); + if(p_76986_1_ instanceof EntityMissileClusterStrong) + bindTexture(ResourceManager.missileStrong_CL_tex); + if(p_76986_1_ instanceof EntityMissileBusterStrong) + bindTexture(ResourceManager.missileStrong_BU_tex); + if(p_76986_1_ instanceof EntityMissileEMPStrong) + bindTexture(ResourceManager.missileStrong_EMP_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.missileStrong.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/render/tileentity/RenderLaunchPadTier1.java b/src/main/java/com/hbm/render/tileentity/RenderLaunchPadTier1.java index acaff58a5..b7159a7bb 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderLaunchPadTier1.java +++ b/src/main/java/com/hbm/render/tileentity/RenderLaunchPadTier1.java @@ -41,7 +41,9 @@ public class RenderLaunchPadTier1 extends TileEntitySpecialRenderer { if(toRender.getItem() == ModItems.missile_strong) { GL11.glScalef(1.5F, 1.5F, 1.5F); bindTexture(ResourceManager.missileStrong_HE_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); ResourceManager.missileStrong.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); } if(toRender.getItem() == ModItems.missile_cluster) { GL11.glScalef(1.0F, 1.0F, 1.0F); @@ -72,37 +74,47 @@ public class RenderLaunchPadTier1 extends TileEntitySpecialRenderer { if(toRender.getItem() == ModItems.missile_incendiary_strong) { GL11.glScalef(1.5F, 1.5F, 1.5F); bindTexture(ResourceManager.missileStrong_IN_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); ResourceManager.missileStrong.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); } if(toRender.getItem() == ModItems.missile_cluster_strong) { GL11.glScalef(1.5F, 1.5F, 1.5F); bindTexture(ResourceManager.missileStrong_CL_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); ResourceManager.missileStrong.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); } if(toRender.getItem() == ModItems.missile_buster_strong) { GL11.glScalef(1.5F, 1.5F, 1.5F); bindTexture(ResourceManager.missileStrong_BU_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); ResourceManager.missileStrong.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); } if(toRender.getItem() == ModItems.missile_burst) { - GL11.glScalef(2.0F, 2.0F, 2.0F); bindTexture(ResourceManager.missileHuge_HE_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); ResourceManager.missileHuge.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); } if(toRender.getItem() == ModItems.missile_inferno) { - GL11.glScalef(2.0F, 2.0F, 2.0F); bindTexture(ResourceManager.missileHuge_IN_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); ResourceManager.missileHuge.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); } if(toRender.getItem() == ModItems.missile_rain) { - GL11.glScalef(2.0F, 2.0F, 2.0F); bindTexture(ResourceManager.missileHuge_CL_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); ResourceManager.missileHuge.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); } if(toRender.getItem() == ModItems.missile_drill) { - GL11.glScalef(2.0F, 2.0F, 2.0F); bindTexture(ResourceManager.missileHuge_BU_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); ResourceManager.missileHuge.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); } if(toRender.getItem() == ModItems.missile_endo) { GL11.glScalef(1.5F, 1.5F, 1.5F); @@ -176,7 +188,9 @@ public class RenderLaunchPadTier1 extends TileEntitySpecialRenderer { if(toRender.getItem() == ModItems.missile_emp_strong) { GL11.glScalef(1.5F, 1.5F, 1.5F); bindTexture(ResourceManager.missileStrong_EMP_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); ResourceManager.missileStrong.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); } if(toRender.getItem() == ModItems.missile_volcano) { GL11.glScalef(1.5F, 1.5F, 1.5F); diff --git a/src/main/java/com/hbm/render/tileentity/RenderRadarScreen.java b/src/main/java/com/hbm/render/tileentity/RenderRadarScreen.java index e838ecf44..adc9ae010 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderRadarScreen.java +++ b/src/main/java/com/hbm/render/tileentity/RenderRadarScreen.java @@ -3,17 +3,22 @@ package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; import com.hbm.inventory.gui.GUIMachineRadarNT; import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; import com.hbm.tileentity.machine.TileEntityMachineRadarNT; import com.hbm.tileentity.machine.TileEntityMachineRadarScreen; import api.hbm.entity.RadarEntry; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; -public class RenderRadarScreen extends TileEntitySpecialRenderer { +public class RenderRadarScreen extends TileEntitySpecialRenderer implements IItemRendererProvider { @Override public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { @@ -91,4 +96,22 @@ public class RenderRadarScreen extends TileEntitySpecialRenderer { GL11.glPopMatrix(); } + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.radar_screen); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(0, -3, 0); + GL11.glScaled(5.5, 5.5, 5.5); + } + public void renderCommonWithStack(ItemStack item) { + GL11.glTranslated(0, 0, -0.5); + bindTexture(ResourceManager.radar_screen_tex); + ResourceManager.radar_screen.renderAll(); + }}; + } } diff --git a/src/main/java/com/hbm/render/tileentity/RendererObjTester.java b/src/main/java/com/hbm/render/tileentity/RendererObjTester.java index 71c074f4c..d6311b241 100644 --- a/src/main/java/com/hbm/render/tileentity/RendererObjTester.java +++ b/src/main/java/com/hbm/render/tileentity/RendererObjTester.java @@ -6,19 +6,27 @@ import org.lwjgl.BufferUtils; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; +import com.hbm.items.ModItems; +import com.hbm.lib.RefStrings; import com.hbm.main.ResourceManager; -import com.hbm.render.model.ModelPigeon; +import com.hbm.render.util.HorsePronter; +import net.minecraft.client.renderer.ItemRenderer; import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.util.ResourceLocation; public class RendererObjTester extends TileEntitySpecialRenderer { //private static final ResourceLocation objTesterModelRL = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/TestObj.obj"); - ModelPigeon pigeon = new ModelPigeon(); - + private static ResourceLocation extra = new ResourceLocation(RefStrings.MODID, "textures/models/horse/dyx.png"); + @Override public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { GL11.glPushMatrix(); @@ -26,8 +34,32 @@ public class RendererObjTester extends TileEntitySpecialRenderer { GL11.glEnable(GL11.GL_LIGHTING); GL11.glDisable(GL11.GL_CULL_FACE); - bindTexture(ResourceManager.universal); - pigeon.render(null, 0, 0, 0, 0, 0, 0.0625F); + GL11.glRotated(System.currentTimeMillis() / 5D % 360D, 0, -1, 0); + GL11.glTranslated(0, 0.1, 0.5); + + this.bindTexture(extra); + HorsePronter.reset(); + double r = 60; + HorsePronter.pose(HorsePronter.id_body, 0, -r, 0); + HorsePronter.pose(HorsePronter.id_tail, 0, 45, 90); + HorsePronter.pose(HorsePronter.id_lbl, 0, -90 + r, 35); + HorsePronter.pose(HorsePronter.id_rbl, 0, -90 + r, -35); + HorsePronter.pose(HorsePronter.id_lfl, 0, r - 10, 5); + HorsePronter.pose(HorsePronter.id_rfl, 0, r - 10, -5); + HorsePronter.pose(HorsePronter.id_head, 0, r, 0); + HorsePronter.enableHorn(); + HorsePronter.enableWings(); + HorsePronter.pront(); + + ItemStack stack = new ItemStack(ModItems.cigarette); + double scale = 0.25; + GL11.glTranslated(0.02, 1.13, -0.42); + GL11.glScaled(scale, scale, scale); + GL11.glRotated(90, 0, -1, 0); + GL11.glRotated(60, 0, 0, -1); + bindTexture(TextureMap.locationItemsTexture); + IIcon icon = stack.getIconIndex(); + ItemRenderer.renderItemIn2D(Tessellator.instance, icon.getMaxU(), icon.getMinV(), icon.getMinU(), icon.getMaxV(), icon.getIconWidth(), icon.getIconHeight(), 0.0625F); GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java index af253e8d8..9e9061ff1 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java @@ -24,6 +24,7 @@ import com.hbm.tileentity.IRadarCommandReceiver; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.Tuple.Triplet; import com.hbm.util.fauxpointtwelve.BlockPos; +import com.hbm.world.WorldUtil; import api.hbm.energy.IEnergyUser; import api.hbm.entity.IRadarDetectable; @@ -34,7 +35,6 @@ import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import io.netty.buffer.ByteBuf; -import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; @@ -42,6 +42,7 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.server.MinecraftServer; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MathHelper; @@ -77,7 +78,8 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I public static int radarRange = 1_000; public static int radarBuffer = 30; public static int radarAltitude = 55; - public static int chunkLoadCap = 5; + public static int chunkLoadCap = 10; + public static boolean generateChunks = false; public byte[] map = new byte[40_000]; public boolean clearFlag = false; @@ -97,6 +99,7 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I radarBuffer = IConfigurableMachine.grab(obj, "I:radarBuffer", radarBuffer); radarAltitude = IConfigurableMachine.grab(obj, "I:radarAltitude", radarAltitude); chunkLoadCap = IConfigurableMachine.grab(obj, "I:chunkLoadCap", chunkLoadCap); + generateChunks = IConfigurableMachine.grab(obj, "B:generateChunks", generateChunks); } @Override @@ -106,7 +109,7 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I writer.name("I:radarRange").value(radarRange); writer.name("I:radarBuffer").value(radarBuffer); writer.name("I:radarAltitude").value(radarAltitude); - writer.name("I:chunkLoadCap").value(chunkLoadCap); + writer.name("B:generateChunks").value(generateChunks); } public TileEntityMachineRadarNT() { @@ -162,9 +165,15 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I this.map[index] = (byte) MathHelper.clamp_int(worldObj.getHeightValue(x, z), 50, 128); } else { if(this.map[index] == 0 && chunkLoads < chunkLoadCap) { - worldObj.getChunkFromChunkCoords(x >> 4, z >> 4); - this.map[index] = (byte) MathHelper.clamp_int(worldObj.getHeightValue(x, z), 50, 128); - chunkLoads++; + if(this.generateChunks) { + worldObj.getChunkFromChunkCoords(x >> 4, z >> 4); + this.map[index] = (byte) MathHelper.clamp_int(worldObj.getHeightValue(x, z), 50, 128); + chunkLoads++; + } else { + WorldUtil.provideChunk((WorldServer) worldObj, x >> 4, z >> 4); + this.map[index] = (byte) MathHelper.clamp_int(worldObj.getHeightValue(x, z), 50, 128); + if(worldObj.getChunkProvider().chunkExists(x >> 4, z >> 4)) chunkLoads++; + } } } } @@ -492,7 +501,7 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I public static void updateSystem() { matchingEntities.clear(); - for(WorldServer world : Minecraft.getMinecraft().getIntegratedServer().worldServers) { + for(WorldServer world : MinecraftServer.getServer().worldServers) { for(Object entity : world.loadedEntityList) { for(Class clazz : classes) { if(clazz.isAssignableFrom(entity.getClass())) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarScreen.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarScreen.java index 5d6621f00..663b6835a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarScreen.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarScreen.java @@ -9,8 +9,11 @@ import com.hbm.tileentity.IBufPacketReceiver; import api.hbm.entity.RadarEntry; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import io.netty.buffer.ByteBuf; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; public class TileEntityMachineRadarScreen extends TileEntity implements IBufPacketReceiver { @@ -58,4 +61,29 @@ public class TileEntityMachineRadarScreen extends TileEntity implements IBufPack this.entries.add(entry); } } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 1, + yCoord, + zCoord - 1, + xCoord + 2, + yCoord + 2, + zCoord + 2 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } } diff --git a/src/main/java/com/hbm/world/WorldUtil.java b/src/main/java/com/hbm/world/WorldUtil.java index 9e6e06647..f8667dad7 100644 --- a/src/main/java/com/hbm/world/WorldUtil.java +++ b/src/main/java/com/hbm/world/WorldUtil.java @@ -7,9 +7,13 @@ import net.minecraft.entity.Entity; import net.minecraft.util.MathHelper; import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.world.World; +import net.minecraft.world.WorldServer; import net.minecraft.world.biome.BiomeGenBase; import net.minecraft.world.chunk.Chunk; +import net.minecraft.world.chunk.storage.AnvilChunkLoader; +import net.minecraft.world.gen.ChunkProviderServer; import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.common.chunkio.ChunkIOExecutor; import net.minecraftforge.event.entity.EntityJoinWorldEvent; public class WorldUtil { @@ -34,7 +38,7 @@ public class WorldUtil { PacketDispatcher.wrapper.sendToAllAround(new BiomeSyncPacket(coord.chunkXPos, coord.chunkZPos, chunk.getBiomeArray()), new TargetPoint(world.provider.dimensionId, coord.getCenterXPos(), 128, coord.getCenterZPosition() /* who named you? */, 1024D)); } - /**Chunkloads the chunk the entity is going to spawn in and then spawns it + /**Chunkloads the chunk the entity is going to spawn in and then spawns it * @param entity The entity to be spawned**/ /*fun fact: this is based off of joinEntityInSurroundings in World @@ -68,7 +72,31 @@ public class WorldUtil { public static void syncBiomeChange(World world, int x, int z) { Chunk chunk = world.getChunkFromBlockCoords(x, z); - byte biome = chunk.getBiomeArray()[(z & 15) << 4 | (x & 15)]; + //byte biome = chunk.getBiomeArray()[(z & 15) << 4 | (x & 15)]; PacketDispatcher.wrapper.sendToAllAround(new BiomeSyncPacket(x, z, chunk.getBiomeArray()), new TargetPoint(world.provider.dimensionId, x, 128, z, 1024D)); } + + public static Chunk provideChunk(WorldServer world, int chunkX, int chunkZ) { + ChunkProviderServer provider = world.theChunkProviderServer; + Chunk chunk = (Chunk) provider.loadedChunkHashMap.getValueByKey(ChunkCoordIntPair.chunkXZ2Int(chunkX, chunkZ)); + if(chunk != null) return chunk; + return loadChunk(world, provider, chunkX, chunkZ); + } + + private static Chunk loadChunk(WorldServer world, ChunkProviderServer provider, int chunkX, int chunkZ) { + long chunkCoord = ChunkCoordIntPair.chunkXZ2Int(chunkX, chunkZ); + provider.chunksToUnload.remove(Long.valueOf(chunkCoord)); + Chunk chunk = (Chunk) provider.loadedChunkHashMap.getValueByKey(chunkCoord); + AnvilChunkLoader loader = null; + + if(provider.currentChunkLoader instanceof AnvilChunkLoader) { + loader = (AnvilChunkLoader) provider.currentChunkLoader; + } + + if(chunk == null && loader != null && loader.chunkExists(world, chunkX, chunkZ)) { + chunk = ChunkIOExecutor.syncChunkLoad(world, loader, provider, chunkX, chunkZ); + } + + return chunk; + } } diff --git a/src/main/resources/META-INF/HBM_at.cfg b/src/main/resources/META-INF/HBM_at.cfg index 158e03857..1fc5c2ec2 100644 --- a/src/main/resources/META-INF/HBM_at.cfg +++ b/src/main/resources/META-INF/HBM_at.cfg @@ -28,3 +28,6 @@ public net.minecraft.entity.EntityLivingBase field_82180_bT # pr # ChunkProviderFlat public net.minecraft.world.gen.ChunkProviderFlat field_82702_h # hasDungeons + +# ChunkProviderServer +public net.minecraft.world.gen.ChunkProviderServer field_73248_b # chunksToUnload diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 88e385bbc..cd9d9adf1 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -529,6 +529,7 @@ entity.entity_glyphid_brenda.name=Brenda entity.entity_glyphid_nuclear.name=Der dicke Johnson entity.entity_glyphid_scout.name=Glyphid-Späher entity.entity_ntm_fbi.name=FBI Agent +entity.entity_ntm_fbi_drone.name=FBI Drone entity.entity_ntm_radiation_blaze.name=Kernschmelze-Elementar entity.hbm.entity_ntm_ufo.name=Marsianisches Invasionsschiff entity.entity_mob_hunter_chopper.name=Jagdschrauber @@ -2836,6 +2837,7 @@ item.protection_charm.name=Schutzamulett item.prototype_kit.name=Prototyp Kit item.pudding.name=Pudding item.quartz_plutonium.name=Plutonisches Quarz +item.radar_linker.name=Radar-Linker item.radaway.name=RadAway item.radaway_flush.name=Elite-RadAway item.radaway_strong.name=Starkes RadAway @@ -4338,6 +4340,7 @@ tile.pwr_port.name=PWR Zugangsport tile.pwr_port.desc=Erlaubt IO für Items und Flüssigkeiten$Platzierung: Hülle tile.pwr_reflector.name=PWR Neutronenreflektor tile.pwr_reflector.desc=Reflektier Neutronen auf Brennstäbe zurück$Platzierung: Hülle, für höhere Reaktivität$Gültiger Block für Hülle +tile.radar_screen.name=Radarbildschirm tile.radio_telex.name=Telex-Maschine tile.radio_torch_counter.name=Redstone-over-Radio Itemzähler tile.radio_torch_counter.desc=Kann auf ebenen Flächen oder Komparator-kompatiblen Blöcken platziert werden$Signal basiert auf Anzahl passender Items diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index d0dc54d01..da1e3e2f9 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1042,6 +1042,7 @@ entity.entity_glyphid_brenda.name=Brenda entity.entity_glyphid_nuclear.name=Big Man Johnson entity.entity_glyphid_scout.name=Glyphid Scout entity.entity_ntm_fbi.name=FBI Agent +entity.entity_ntm_fbi_drone.name=FBI Drone entity.entity_ntm_radiation_blaze.name=Meltdown Elemental entity.hbm.entity_ntm_ufo.name=Martian Invasion Ship entity.entity_mob_hunter_chopper.name=Hunter Chopper @@ -3694,6 +3695,7 @@ item.pwr_fuel_hot.mep.name=Hot MEP PWR Fuel Rod item.pwr_fuel_hot.meu.name=Hot MEU PWR Fuel Rod item.pwr_fuel_hot.mox.name=Hot MOX PWR Fuel Rod item.quartz_plutonium.name=Plutonic Quartz +item.radar_linker.name=Radar Linker item.radaway.name=RadAway item.radaway_flush.name=Elite RadAway item.radaway_strong.name=Strong RadAway @@ -5332,6 +5334,7 @@ tile.pwr_port.name=PWR Access Port tile.pwr_port.desc=Allows item and fluid IO$Placement: Casing tile.pwr_reflector.name=PWR Neutron Reflector tile.pwr_reflector.desc=Reflects neutrons back to fuel rods$Placement: Grid, for increased reactivity$Valid casing material +tile.radar_screen.name=Radar Screen tile.radio_telex.name=Telex Machine tile.radio_torch_counter.name=Redstone-over-Radio Item Counter tile.radio_torch_counter.desc=Placable on flat surfaces or comparator-compatible blocks$Bases signal on the amount of matching items diff --git a/src/main/resources/assets/hbm/models/missile_huge.obj b/src/main/resources/assets/hbm/models/missile_huge.obj new file mode 100644 index 000000000..a3b5f2934 --- /dev/null +++ b/src/main/resources/assets/hbm/models/missile_huge.obj @@ -0,0 +1,1581 @@ +# Blender v2.79 (sub 0) OBJ File: 'missile_huge.blend' +# www.blender.org +o Circle +v 1.154849 0.500000 -0.478354 +v 1.250000 0.500000 0.000000 +v 1.154849 0.500000 0.478354 +v 0.883883 0.500000 0.883884 +v 0.478354 0.500000 1.154850 +v -0.000000 0.500000 1.250000 +v -0.478354 0.500000 1.154850 +v -0.883883 0.500000 0.883883 +v -1.154849 0.500000 0.478354 +v -1.250000 0.500000 0.000000 +v -1.154849 0.500000 -0.478354 +v -0.883883 0.500000 -0.883883 +v -0.478354 0.500000 -1.154850 +v 0.000000 0.500000 -1.250000 +v 0.000000 9.500000 -1.000000 +v -0.382683 9.500000 -0.923880 +v -0.707107 9.500000 -0.707107 +v -0.923880 9.500000 -0.382683 +v -1.000000 9.500000 0.000000 +v -0.923880 9.500000 0.382684 +v -0.707107 9.500000 0.707107 +v -0.382683 9.500000 0.923880 +v -0.000000 9.500000 1.000000 +v 0.382683 9.500000 0.923880 +v 0.707107 9.500000 0.707107 +v 0.923880 9.500000 0.382684 +v 1.000000 9.500000 0.000000 +v 0.923879 9.500000 -0.382684 +v 0.707107 9.500000 -0.707107 +v 0.382683 9.500000 -0.923880 +v -0.000000 11.000000 -0.875000 +v -0.334848 11.000000 -0.808394 +v -0.618718 11.000000 -0.618719 +v -0.808395 11.000000 -0.334848 +v -0.875000 11.000000 0.000000 +v -0.808395 11.000000 0.334848 +v -0.618718 11.000000 0.618719 +v -0.334848 11.000000 0.808394 +v -0.000000 11.000000 0.875000 +v 0.334848 11.000000 0.808394 +v 0.618718 11.000000 0.618719 +v 0.808395 11.000000 0.334848 +v 0.875000 11.000000 0.000000 +v 0.808394 11.000000 -0.334848 +v 0.618718 11.000000 -0.618719 +v 0.334848 11.000000 -0.808395 +v 0.000000 13.499999 0.000000 +v 0.095671 0.500000 -0.855970 +v 0.176777 0.500000 -0.801777 +v 0.230970 0.500000 -0.720671 +v 0.250000 0.500000 -0.625000 +v 0.230970 0.500000 -0.529329 +v 0.176777 0.500000 -0.448223 +v 0.095671 0.500000 -0.394030 +v -0.000000 0.500000 -0.375000 +v -0.095671 0.500000 -0.394030 +v -0.176777 0.500000 -0.448223 +v -0.230970 0.500000 -0.529329 +v -0.250000 0.500000 -0.625000 +v -0.230970 0.500000 -0.720671 +v -0.176777 0.500000 -0.801777 +v -0.095671 0.500000 -0.855970 +v -0.000000 0.500000 -0.875000 +v 0.143506 0.250000 -0.971455 +v 0.265165 0.250000 -0.890165 +v 0.346455 0.250000 -0.768507 +v 0.375000 0.250000 -0.625000 +v 0.346455 0.250000 -0.481493 +v 0.265165 0.250000 -0.359835 +v 0.143506 0.250000 -0.278545 +v -0.000000 0.250000 -0.250000 +v -0.143506 0.250000 -0.278545 +v -0.265165 0.250000 -0.359835 +v -0.346455 0.250000 -0.481494 +v -0.375000 0.250000 -0.625000 +v -0.346455 0.250000 -0.768506 +v -0.265165 0.250000 -0.890165 +v -0.000000 0.250000 -1.000000 +v -0.143506 0.250000 -0.971455 +v 0.143506 0.000000 -0.971455 +v 0.265165 0.000000 -0.890165 +v 0.346455 0.000000 -0.768507 +v 0.375000 0.000000 -0.625000 +v 0.346455 0.000000 -0.481493 +v 0.265165 0.000000 -0.359835 +v 0.143506 0.000000 -0.278545 +v -0.000000 0.000000 -0.250000 +v -0.143506 0.000000 -0.278545 +v -0.265165 0.000000 -0.359835 +v -0.346455 0.000000 -0.481494 +v -0.375000 0.000000 -0.625000 +v -0.346455 0.000000 -0.768506 +v -0.265165 0.000000 -0.890165 +v -0.143506 0.000000 -0.971455 +v -0.000000 0.000000 -1.000000 +v 0.000000 5.250000 -1.250000 +v -0.478354 5.250000 -1.154850 +v -0.883883 5.250000 -0.883883 +v -1.154849 5.250000 -0.478354 +v -1.250000 5.250000 0.000000 +v -1.154849 5.250000 0.478354 +v -0.883883 5.250000 0.883883 +v -0.478354 5.250000 1.154850 +v -0.000000 5.250000 1.250000 +v 0.478354 5.250000 1.154850 +v 0.883883 5.250000 0.883884 +v 1.154849 5.250000 0.478354 +v 1.250000 5.250000 0.000000 +v 1.154849 5.250000 -0.478354 +v 0.883883 5.250000 -0.883884 +v 0.478354 5.250000 -1.154850 +v 0.883883 0.500000 -0.883884 +v 0.478354 0.500000 -1.154850 +v 0.000000 6.250000 -1.000000 +v -0.382683 6.250000 -0.923880 +v -0.707107 6.250000 -0.707107 +v -0.923880 6.250000 -0.382683 +v -1.000000 6.250000 0.000000 +v -0.923880 6.250000 0.382684 +v -0.707107 6.250000 0.707107 +v -0.382683 6.250000 0.923880 +v -0.000000 6.250000 1.000000 +v 0.382683 6.250000 0.923880 +v 0.707107 6.250000 0.707107 +v 0.923880 6.250000 0.382684 +v 1.000000 6.250000 0.000000 +v 0.923879 6.250000 -0.382684 +v 0.707107 6.250000 -0.707107 +v 0.382683 6.250000 -0.923880 +v 0.000000 6.500000 -1.000000 +v -0.382683 6.500000 -0.923880 +v -0.707107 6.500000 -0.707107 +v -0.923880 6.500000 -0.382683 +v -1.000000 6.500000 0.000000 +v -0.923880 6.500000 0.382684 +v -0.707107 6.500000 0.707107 +v -0.382683 6.500000 0.923880 +v -0.000000 6.500000 1.000000 +v 0.382683 6.500000 0.923880 +v 0.707107 6.500000 0.707107 +v 0.923880 6.500000 0.382684 +v 1.000000 6.500000 0.000000 +v 0.923879 6.500000 -0.382684 +v 0.707107 6.500000 -0.707107 +v 0.382683 6.500000 -0.923880 +v -0.000000 6.500000 -0.875000 +v -0.334848 6.500000 -0.808394 +v -0.618718 6.500000 -0.618719 +v -0.808395 6.500000 -0.334848 +v -0.875000 6.500000 0.000000 +v -0.808395 6.500000 0.334848 +v -0.618718 6.500000 0.618719 +v -0.334848 6.500000 0.808394 +v -0.000000 6.500000 0.875000 +v 0.334848 6.500000 0.808394 +v 0.618718 6.500000 0.618719 +v 0.808395 6.500000 0.334848 +v 0.875000 6.500000 0.000000 +v 0.808394 6.500000 -0.334848 +v 0.618718 6.500000 -0.618719 +v 0.334848 6.500000 -0.808395 +v -0.000000 6.250000 -0.875000 +v -0.334848 6.250000 -0.808394 +v -0.618718 6.250000 -0.618719 +v -0.808395 6.250000 -0.334848 +v -0.875000 6.250000 0.000000 +v -0.808395 6.250000 0.334848 +v -0.618718 6.250000 0.618719 +v -0.334848 6.250000 0.808394 +v -0.000000 6.250000 0.875000 +v 0.334848 6.250000 0.808394 +v 0.618718 6.250000 0.618719 +v 0.808395 6.250000 0.334848 +v 0.875000 6.250000 0.000000 +v 0.808394 6.250000 -0.334848 +v 0.618718 6.250000 -0.618719 +v 0.334848 6.250000 -0.808395 +v 1.010000 7.313000 -0.010000 +v 0.933879 7.313000 -0.392684 +v 0.717107 7.313000 -0.717107 +v 0.392683 7.313000 -0.933880 +v 0.392683 8.500000 -0.933880 +v 0.717107 8.500000 -0.717107 +v 0.933879 8.500000 -0.392684 +v 1.010000 8.500000 -0.010000 +v 0.839689 3.375000 -0.751301 +v 0.751301 3.375000 -0.839689 +v 1.502602 0.375000 -1.502602 +v 0.839689 0.375000 -0.751301 +v 0.751301 0.375000 -0.839689 +v 1.502602 1.375000 -1.502602 +v 0.095671 0.500000 0.394030 +v 0.176777 0.500000 0.448223 +v 0.230970 0.500000 0.529329 +v 0.250000 0.500000 0.625000 +v 0.230970 0.500000 0.720671 +v 0.176777 0.500000 0.801777 +v 0.095671 0.500000 0.855970 +v -0.000000 0.500000 0.875000 +v -0.095671 0.500000 0.855970 +v -0.176777 0.500000 0.801777 +v -0.230970 0.500000 0.720671 +v -0.250000 0.500000 0.625000 +v -0.230970 0.500000 0.529329 +v -0.176777 0.500000 0.448223 +v -0.095671 0.500000 0.394030 +v -0.000000 0.500000 0.375000 +v 0.143506 0.250000 0.278545 +v 0.265165 0.250000 0.359835 +v 0.346455 0.250000 0.481493 +v 0.375000 0.250000 0.625000 +v 0.346455 0.250000 0.768507 +v 0.265165 0.250000 0.890165 +v 0.143506 0.250000 0.971455 +v -0.000000 0.250000 1.000000 +v -0.143506 0.250000 0.971455 +v -0.265165 0.250000 0.890165 +v -0.346455 0.250000 0.768506 +v -0.375000 0.250000 0.625000 +v -0.346455 0.250000 0.481494 +v -0.265165 0.250000 0.359835 +v -0.000000 0.250000 0.250000 +v -0.143506 0.250000 0.278545 +v 0.143506 0.000000 0.278545 +v 0.265165 0.000000 0.359835 +v 0.346455 0.000000 0.481493 +v 0.375000 0.000000 0.625000 +v 0.346455 0.000000 0.768507 +v 0.265165 0.000000 0.890165 +v 0.143506 0.000000 0.971455 +v -0.000000 0.000000 1.000000 +v -0.143506 0.000000 0.971455 +v -0.265165 0.000000 0.890165 +v -0.346455 0.000000 0.768506 +v -0.375000 0.000000 0.625000 +v -0.346455 0.000000 0.481494 +v -0.265165 0.000000 0.359835 +v -0.143506 0.000000 0.278545 +v -0.000000 0.000000 0.250000 +v 0.720671 0.500000 -0.230970 +v 0.801777 0.500000 -0.176777 +v 0.855970 0.500000 -0.095671 +v 0.875000 0.500000 0.000000 +v 0.855970 0.500000 0.095671 +v 0.801777 0.500000 0.176777 +v 0.720671 0.500000 0.230970 +v 0.625000 0.500000 0.250000 +v 0.529329 0.500000 0.230970 +v 0.448223 0.500000 0.176777 +v 0.394030 0.500000 0.095671 +v 0.375000 0.500000 0.000000 +v 0.394030 0.500000 -0.095671 +v 0.448223 0.500000 -0.176777 +v 0.529329 0.500000 -0.230970 +v 0.625000 0.500000 -0.250000 +v 0.768506 0.250000 -0.346455 +v 0.890165 0.250000 -0.265165 +v 0.971455 0.250000 -0.143507 +v 1.000000 0.250000 0.000000 +v 0.971455 0.250000 0.143507 +v 0.890165 0.250000 0.265165 +v 0.768506 0.250000 0.346455 +v 0.625000 0.250000 0.375000 +v 0.481494 0.250000 0.346455 +v 0.359835 0.250000 0.265165 +v 0.278545 0.250000 0.143506 +v 0.250000 0.250000 0.000000 +v 0.278545 0.250000 -0.143506 +v 0.359835 0.250000 -0.265165 +v 0.625000 0.250000 -0.375000 +v 0.481494 0.250000 -0.346455 +v 0.768506 0.000000 -0.346455 +v 0.890165 0.000000 -0.265165 +v 0.971455 0.000000 -0.143507 +v 1.000000 0.000000 0.000000 +v 0.971455 0.000000 0.143507 +v 0.890165 0.000000 0.265165 +v 0.768506 0.000000 0.346455 +v 0.625000 0.000000 0.375000 +v 0.481494 0.000000 0.346455 +v 0.359835 0.000000 0.265165 +v 0.278545 0.000000 0.143506 +v 0.250000 0.000000 0.000000 +v 0.278545 0.000000 -0.143506 +v 0.359835 0.000000 -0.265165 +v 0.481494 0.000000 -0.346455 +v 0.625000 0.000000 -0.375000 +v -0.529329 0.500000 -0.230970 +v -0.448223 0.500000 -0.176777 +v -0.394030 0.500000 -0.095671 +v -0.375000 0.500000 0.000000 +v -0.394030 0.500000 0.095671 +v -0.448223 0.500000 0.176777 +v -0.529329 0.500000 0.230970 +v -0.625000 0.500000 0.250000 +v -0.720671 0.500000 0.230970 +v -0.801777 0.500000 0.176777 +v -0.855970 0.500000 0.095671 +v -0.875000 0.500000 0.000000 +v -0.855970 0.500000 -0.095671 +v -0.801777 0.500000 -0.176777 +v -0.720671 0.500000 -0.230970 +v -0.625000 0.500000 -0.250000 +v -0.481494 0.250000 -0.346455 +v -0.359835 0.250000 -0.265165 +v -0.278545 0.250000 -0.143507 +v -0.250000 0.250000 0.000000 +v -0.278545 0.250000 0.143507 +v -0.359835 0.250000 0.265165 +v -0.481494 0.250000 0.346455 +v -0.625000 0.250000 0.375000 +v -0.768506 0.250000 0.346455 +v -0.890165 0.250000 0.265165 +v -0.971455 0.250000 0.143506 +v -1.000000 0.250000 0.000000 +v -0.971455 0.250000 -0.143506 +v -0.890165 0.250000 -0.265165 +v -0.625000 0.250000 -0.375000 +v -0.768506 0.250000 -0.346455 +v -0.481494 0.000000 -0.346455 +v -0.359835 0.000000 -0.265165 +v -0.278545 0.000000 -0.143507 +v -0.250000 0.000000 0.000000 +v -0.278545 0.000000 0.143507 +v -0.359835 0.000000 0.265165 +v -0.481494 0.000000 0.346455 +v -0.625000 0.000000 0.375000 +v -0.768506 0.000000 0.346455 +v -0.890165 0.000000 0.265165 +v -0.971455 0.000000 0.143506 +v -1.000000 0.000000 0.000000 +v -0.971455 0.000000 -0.143506 +v -0.890165 0.000000 -0.265165 +v -0.768506 0.000000 -0.346455 +v -0.625000 0.000000 -0.375000 +v -0.839689 3.375000 0.751301 +v -0.751301 3.375000 0.839689 +v -1.502602 0.375000 1.502602 +v -0.839689 0.375000 0.751301 +v -0.751301 0.375000 0.839689 +v -1.502602 1.375000 1.502602 +v -0.751301 3.375000 -0.839689 +v -0.839689 3.375000 -0.751301 +v -1.502602 0.375000 -1.502602 +v -0.751301 0.375000 -0.839689 +v -0.839689 0.375000 -0.751301 +v -1.502602 1.375000 -1.502602 +v 0.751301 3.375000 0.839689 +v 0.839689 3.375000 0.751301 +v 1.502602 0.375000 1.502601 +v 0.751301 0.375000 0.839689 +v 0.839689 0.375000 0.751301 +v 1.502602 1.375000 1.502601 +v -1.010000 7.313000 0.010000 +v -0.933879 7.313000 0.392684 +v -0.717106 7.313000 0.717107 +v -0.392683 7.313000 0.933880 +v -0.392683 8.500000 0.933880 +v -0.717106 8.500000 0.717107 +v -0.933879 8.500000 0.392684 +v -1.010000 8.500000 0.010000 +vt 0.291667 0.471698 +vt 0.250000 0.462264 +vt 0.291667 0.462264 +vt 0.583333 0.471698 +vt 0.625000 0.462264 +vt 0.625000 0.471698 +vt 0.208333 0.471698 +vt 0.250000 0.471698 +vt 0.541667 0.471698 +vt 0.583333 0.462264 +vt 0.166667 0.462264 +vt 0.208333 0.462264 +vt 0.500000 0.471698 +vt 0.458333 0.462264 +vt 0.500000 0.462264 +vt 0.541667 0.462264 +vt 0.125000 0.471698 +vt 0.166667 0.471698 +vt 0.416667 0.471698 +vt 0.458333 0.471698 +vt 0.083333 0.471698 +vt 0.125000 0.462264 +vt 0.375000 0.462264 +vt 0.416667 0.462264 +vt 0.041667 0.471698 +vt 0.083333 0.462264 +vt 0.375000 0.471698 +vt 0.333333 0.462264 +vt -0.000000 0.471698 +vt 0.041667 0.462264 +vt 0.333333 0.471698 +vt 0.678877 0.708687 +vt 0.678877 0.668671 +vt 0.737790 0.668671 +vt 0.666667 0.462264 +vt 0.666667 0.471698 +vt 0.333333 0.433962 +vt 0.291667 0.443396 +vt 0.291667 0.433962 +vt 0.375000 0.433962 +vt 0.333333 0.443396 +vt 0.416667 0.433962 +vt 0.375000 0.443396 +vt 0.458333 0.433962 +vt 0.416667 0.443396 +vt 0.500000 0.433962 +vt 0.458333 0.443396 +vt 0.541667 0.433962 +vt 0.500000 0.443396 +vt 0.583333 0.443396 +vt 0.541667 0.443396 +vt 0.583333 0.433962 +vt 0.625000 0.443396 +vt 0.625000 0.433962 +vt 0.666667 0.443396 +vt 0.000000 0.433962 +vt 0.041667 0.443396 +vt 0.000000 0.443396 +vt 0.041667 0.433962 +vt 0.083333 0.443396 +vt 0.125000 0.433962 +vt 0.083333 0.433962 +vt 0.166667 0.443396 +vt 0.125000 0.443396 +vt 0.208333 0.433962 +vt 0.166667 0.433962 +vt 0.250000 0.433962 +vt 0.208333 0.443396 +vt 0.250000 0.443396 +vt 0.903652 0.461671 +vt 0.903652 0.594933 +vt 0.707459 0.594933 +vt 1.000000 0.004717 +vt 0.888889 0.004717 +vt 0.888889 -0.000000 +vt 0.888889 0.231132 +vt 1.000000 0.231132 +vt 0.888889 0.235849 +vt 1.000000 0.080189 +vt 0.888889 0.004717 +vt 0.678877 0.708687 +vt 0.678877 0.668671 +vt 0.737790 0.668671 +vt 0.678877 0.708687 +vt 0.678877 0.668671 +vt 0.737790 0.668671 +vt 0.678877 0.708687 +vt 0.678877 0.668671 +vt 0.737790 0.668671 +vt 1.000000 0.004717 +vt 0.888889 0.004717 +vt 0.888889 -0.000000 +vt 0.888889 0.231132 +vt 1.000000 0.231132 +vt 0.888889 0.235849 +vt 1.000000 0.080189 +vt 0.888889 0.004717 +vt 1.000000 0.004717 +vt 0.888889 0.004717 +vt 0.888889 -0.000000 +vt 0.888889 0.231132 +vt 1.000000 0.231132 +vt 0.888889 0.235849 +vt 1.000000 0.080189 +vt 0.888889 0.004717 +vt 1.000000 0.004717 +vt 0.888889 0.004717 +vt 0.888889 -0.000000 +vt 0.888889 0.231132 +vt 1.000000 0.231132 +vt 0.888889 0.235849 +vt 1.000000 0.080189 +vt 0.888889 0.004717 +vt 0.000000 0.462264 +vt 0.746820 0.677851 +vt 0.737790 0.708687 +vt 0.749991 0.688679 +vt 0.746820 0.699508 +vt 0.724275 0.714821 +vt 0.708333 0.716975 +vt 0.692392 0.714821 +vt 0.669847 0.699508 +vt 0.666676 0.688679 +vt 0.669847 0.677851 +vt 0.692392 0.662537 +vt 0.708333 0.660383 +vt 0.724275 0.662537 +vt 0.666667 0.433962 +vt 0.933724 0.492241 +vt 0.944284 0.528302 +vt 0.933724 0.564363 +vt 0.858645 0.615360 +vt 0.805556 0.622533 +vt 0.752466 0.615360 +vt 0.677387 0.564362 +vt 0.666827 0.528302 +vt 0.677387 0.492241 +vt 0.707459 0.461671 +vt 0.752466 0.441244 +vt 0.805556 0.434071 +vt 0.858645 0.441244 +vt 0.888889 0.231132 +vt 0.746820 0.677851 +vt 0.737790 0.708687 +vt 0.749991 0.688679 +vt 0.746820 0.699508 +vt 0.724275 0.714821 +vt 0.708333 0.716975 +vt 0.692392 0.714821 +vt 0.669847 0.699508 +vt 0.666676 0.688679 +vt 0.669847 0.677851 +vt 0.692392 0.662537 +vt 0.708333 0.660383 +vt 0.724275 0.662537 +vt 0.746820 0.677851 +vt 0.737790 0.708687 +vt 0.749991 0.688679 +vt 0.746820 0.699508 +vt 0.724275 0.714821 +vt 0.708333 0.716975 +vt 0.692392 0.714821 +vt 0.669847 0.699508 +vt 0.666676 0.688679 +vt 0.669847 0.677851 +vt 0.692392 0.662537 +vt 0.708333 0.660383 +vt 0.724275 0.662537 +vt 0.746820 0.677851 +vt 0.737790 0.708687 +vt 0.749991 0.688679 +vt 0.746820 0.699508 +vt 0.724275 0.714821 +vt 0.708333 0.716975 +vt 0.692392 0.714821 +vt 0.669847 0.699508 +vt 0.666676 0.688679 +vt 0.669847 0.677851 +vt 0.692392 0.662537 +vt 0.708333 0.660383 +vt 0.724275 0.662537 +vt 0.888889 0.231132 +vt 0.888889 0.231132 +vt 0.888889 0.231132 +vt -0.000000 0.358491 +vt 0.055556 0.000000 +vt 0.055556 0.358491 +vt 0.583333 0.698113 +vt 0.541667 0.811321 +vt 0.541667 0.698113 +vt 0.250000 0.698113 +vt 0.208333 0.811321 +vt 0.208333 0.698113 +vt 0.625000 0.698113 +vt 0.583333 0.811321 +vt 0.291667 0.698113 +vt 0.250000 0.811321 +vt 0.666667 0.698113 +vt 0.625000 0.811321 +vt 0.326389 0.811321 +vt 0.291667 0.811321 +vt 0.041667 0.698113 +vt 0.000000 0.811321 +vt -0.000000 0.698113 +vt 0.375000 0.698113 +vt 0.333333 0.811321 +vt 0.333333 0.698113 +vt 0.083333 0.698113 +vt 0.041667 0.811321 +vt 0.416667 0.698113 +vt 0.375000 0.811321 +vt 0.125000 0.698113 +vt 0.083333 0.811321 +vt 0.458333 0.698113 +vt 0.416667 0.811321 +vt 0.166667 0.698113 +vt 0.125000 0.811321 +vt 0.500000 0.811321 +vt 0.500000 0.698113 +vt 0.458333 0.811321 +vt 0.166667 0.811321 +vt 0.388889 0.358491 +vt 0.444444 0.000000 +vt 0.444444 0.358491 +vt 0.576389 0.811321 +vt 0.562500 1.000000 +vt 0.618056 0.811321 +vt 0.604167 1.000000 +vt 0.659722 0.811321 +vt 0.645833 1.000000 +vt 0.034722 0.811321 +vt 0.020833 1.000000 +vt 0.076389 0.811321 +vt 0.062500 1.000000 +vt 0.118056 0.811321 +vt 0.104167 1.000000 +vt 0.159722 0.811321 +vt 0.145833 1.000000 +vt 0.194444 0.811321 +vt 0.187500 1.000000 +vt 0.243056 0.811321 +vt 0.229167 1.000000 +vt 0.284722 0.811321 +vt 0.270833 1.000000 +vt 0.312500 1.000000 +vt 0.368056 0.811321 +vt 0.354167 1.000000 +vt 0.409722 0.811321 +vt 0.395833 1.000000 +vt 0.451389 0.811321 +vt 0.437500 1.000000 +vt 0.493056 0.811321 +vt 0.479167 1.000000 +vt 0.534722 0.811321 +vt 0.520833 1.000000 +vt 0.833333 0.358491 +vt 0.888889 0.000000 +vt 0.888889 0.358491 +vt 0.333333 0.358491 +vt 0.388889 -0.000000 +vt 0.777778 0.358491 +vt 0.833333 0.000000 +vt 0.277778 0.358491 +vt 0.333333 -0.000000 +vt 0.722222 0.358491 +vt 0.777778 0.000000 +vt 0.222222 0.358491 +vt 0.277778 0.000000 +vt 0.611111 0.358491 +vt 0.666667 0.000000 +vt 0.666667 0.358491 +vt 0.729167 0.000000 +vt 0.166667 0.358491 +vt 0.222222 -0.000000 +vt 0.555556 0.358491 +vt 0.611111 0.000000 +vt 0.708333 0.641509 +vt 0.694444 0.660377 +vt 0.694444 0.641509 +vt 0.680556 0.641509 +vt 0.680556 0.660377 +vt 0.666667 0.660377 +vt 0.666667 0.641509 +vt 0.875000 0.641509 +vt 0.888889 0.660377 +vt 0.875000 0.660377 +vt 0.861111 0.660377 +vt 0.861111 0.641509 +vt 0.847222 0.660377 +vt 0.847222 0.641509 +vt 0.833333 0.660377 +vt 0.833333 0.641509 +vt 0.819444 0.660377 +vt 0.819444 0.641509 +vt 0.805556 0.660377 +vt 0.805556 0.641509 +vt 0.791667 0.641509 +vt 0.791667 0.660377 +vt 0.777778 0.660377 +vt 0.777778 0.641509 +vt 0.763889 0.660377 +vt 0.763889 0.641509 +vt 0.750000 0.660377 +vt 0.750000 0.641509 +vt 0.736111 0.641509 +vt 0.736111 0.660377 +vt 0.722222 0.641509 +vt 0.722222 0.660377 +vt 0.819444 0.622642 +vt 0.805556 0.622642 +vt 0.694444 0.622642 +vt 0.680556 0.622642 +vt 0.791667 0.622642 +vt 0.666667 0.622642 +vt 0.777778 0.622642 +vt 0.763889 0.622642 +vt 0.888889 0.622642 +vt 0.875000 0.622642 +vt 0.750000 0.622642 +vt 0.861111 0.622642 +vt 0.736111 0.622642 +vt 0.847222 0.622642 +vt 0.722222 0.622642 +vt 0.833333 0.622642 +vt 0.708333 0.622642 +vt 0.708333 0.660377 +vt 0.555556 0.433962 +vt 0.611111 0.433962 +vt 0.500000 0.000000 +vt 0.500000 0.358491 +vt 0.166667 0.433962 +vt 0.111111 0.358491 +vt 0.500000 0.433962 +vt 0.055556 0.433962 +vt 0.111111 0.433962 +vt 0.444444 0.433962 +vt 0.833333 0.433962 +vt 0.888889 0.433962 +vt 0.333333 0.433962 +vt 0.388889 0.433962 +vt 0.777778 0.433962 +vt 0.722222 0.433962 +vt 0.222222 0.433962 +vt 0.277778 0.433962 +vt 0.666667 0.433962 +vt 0.166667 -0.000000 +vt 0.555556 -0.000000 +vt 0.111111 -0.000000 +vt 0.847222 0.716981 +vt 0.937500 0.900943 +vt 0.847222 0.900943 +vt 0.756944 0.716981 +vt 0.756944 0.900943 +vt 0.666667 0.716981 +vt 0.666667 0.900943 +vt 0.708333 0.641509 +vt 0.694444 0.660377 +vt 0.694444 0.641509 +vt 0.680556 0.641509 +vt 0.680556 0.660377 +vt 0.666667 0.660377 +vt 0.666667 0.641509 +vt 0.875000 0.641509 +vt 0.888889 0.660377 +vt 0.875000 0.660377 +vt 0.861111 0.660377 +vt 0.861111 0.641509 +vt 0.847222 0.660377 +vt 0.847222 0.641509 +vt 0.833333 0.660377 +vt 0.833333 0.641509 +vt 0.819444 0.641509 +vt 0.819444 0.660377 +vt 0.805556 0.660377 +vt 0.805556 0.641509 +vt 0.791667 0.641509 +vt 0.791667 0.660377 +vt 0.777778 0.641509 +vt 0.777778 0.660377 +vt 0.763889 0.660377 +vt 0.763889 0.641509 +vt 0.750000 0.641509 +vt 0.750000 0.660377 +vt 0.736111 0.641509 +vt 0.736111 0.660377 +vt 0.722222 0.641509 +vt 0.722222 0.660377 +vt 0.819444 0.622642 +vt 0.805556 0.622642 +vt 0.694444 0.622642 +vt 0.680556 0.622642 +vt 0.791667 0.622642 +vt 0.666667 0.622642 +vt 0.777778 0.622642 +vt 0.763889 0.622642 +vt 0.888889 0.622642 +vt 0.875000 0.622642 +vt 0.750000 0.622642 +vt 0.861111 0.622642 +vt 0.736111 0.622642 +vt 0.847222 0.622642 +vt 0.722222 0.622642 +vt 0.833333 0.622642 +vt 0.708333 0.622642 +vt 0.708333 0.660377 +vt 0.708333 0.641509 +vt 0.694444 0.660377 +vt 0.694444 0.641509 +vt 0.680556 0.641509 +vt 0.680556 0.660377 +vt 0.666667 0.660377 +vt 0.666667 0.641509 +vt 0.875000 0.641509 +vt 0.888889 0.660377 +vt 0.875000 0.660377 +vt 0.861111 0.660377 +vt 0.861111 0.641509 +vt 0.847222 0.660377 +vt 0.847222 0.641509 +vt 0.833333 0.660377 +vt 0.833333 0.641509 +vt 0.819444 0.641509 +vt 0.819444 0.660377 +vt 0.805556 0.660377 +vt 0.805556 0.641509 +vt 0.791667 0.641509 +vt 0.791667 0.660377 +vt 0.777778 0.660377 +vt 0.777778 0.641509 +vt 0.763889 0.660377 +vt 0.763889 0.641509 +vt 0.750000 0.660377 +vt 0.750000 0.641509 +vt 0.736111 0.641509 +vt 0.736111 0.660377 +vt 0.722222 0.641509 +vt 0.722222 0.660377 +vt 0.819444 0.622642 +vt 0.805556 0.622642 +vt 0.694444 0.622642 +vt 0.680556 0.622642 +vt 0.791667 0.622642 +vt 0.666667 0.622642 +vt 0.777778 0.622642 +vt 0.763889 0.622642 +vt 0.888889 0.622642 +vt 0.875000 0.622642 +vt 0.750000 0.622642 +vt 0.861111 0.622642 +vt 0.736111 0.622642 +vt 0.847222 0.622642 +vt 0.722222 0.622642 +vt 0.833333 0.622642 +vt 0.708333 0.622642 +vt 0.708333 0.660377 +vt 0.708333 0.641509 +vt 0.694444 0.660377 +vt 0.694444 0.641509 +vt 0.680556 0.641509 +vt 0.680556 0.660377 +vt 0.666667 0.660377 +vt 0.666667 0.641509 +vt 0.875000 0.641509 +vt 0.888889 0.660377 +vt 0.875000 0.660377 +vt 0.861111 0.660377 +vt 0.861111 0.641509 +vt 0.847222 0.660377 +vt 0.847222 0.641509 +vt 0.833333 0.660377 +vt 0.833333 0.641509 +vt 0.819444 0.641509 +vt 0.819444 0.660377 +vt 0.805556 0.660377 +vt 0.805556 0.641509 +vt 0.791667 0.641509 +vt 0.791667 0.660377 +vt 0.777778 0.660377 +vt 0.777778 0.641509 +vt 0.763889 0.660377 +vt 0.763889 0.641509 +vt 0.750000 0.660377 +vt 0.750000 0.641509 +vt 0.736111 0.641509 +vt 0.736111 0.660377 +vt 0.722222 0.641509 +vt 0.722222 0.660377 +vt 0.819444 0.622642 +vt 0.805556 0.622642 +vt 0.694444 0.622642 +vt 0.680556 0.622642 +vt 0.791667 0.622642 +vt 0.666667 0.622642 +vt 0.777778 0.622642 +vt 0.763889 0.622642 +vt 0.888889 0.622642 +vt 0.875000 0.622642 +vt 0.750000 0.622642 +vt 0.861111 0.622642 +vt 0.736111 0.622642 +vt 0.847222 0.622642 +vt 0.722222 0.622642 +vt 0.833333 0.622642 +vt 0.708333 0.622642 +vt 0.708333 0.660377 +vt 0.847222 0.716981 +vt 0.937500 0.900943 +vt 0.847222 0.900943 +vt 0.756944 0.716981 +vt 0.756944 0.900943 +vt 0.666667 0.716981 +vt 0.666667 0.900943 +vt 0.000000 0.000000 +vt 0.888889 0.641509 +vt 0.937500 0.716981 +vt 0.888889 0.641509 +vt 0.888889 0.641509 +vt 0.888889 0.641509 +vt 0.937500 0.716981 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.6325 0.4472 -0.6325 +vn 0.7498 0.0000 0.6616 +vn -0.6616 0.0000 -0.7498 +vn -0.6325 0.4472 0.6325 +vn -0.7498 0.0000 -0.6616 +vn 0.6616 0.0000 0.7498 +vn -0.6325 0.4472 -0.6325 +vn 0.6616 0.0000 -0.7498 +vn -0.7498 0.0000 0.6616 +vn 0.6325 0.4472 0.6325 +vn -0.6616 0.0000 0.7498 +vn 0.7498 0.0000 -0.6616 +vn -1.0000 0.0000 -0.0000 +vn -0.9239 0.0000 0.3827 +vn -0.7047 0.0830 -0.7047 +vn -0.3814 0.0830 -0.9207 +vn 0.7047 0.0830 0.7047 +vn 0.3814 0.0830 0.9207 +vn -0.9207 0.0830 -0.3814 +vn 0.9207 0.0830 0.3814 +vn -0.9965 0.0830 -0.0000 +vn 0.9965 0.0830 0.0000 +vn -0.9207 0.0830 0.3814 +vn 0.9207 0.0830 -0.3814 +vn -0.7047 0.0830 0.7047 +vn 0.7047 0.0830 -0.7047 +vn -0.3814 0.0830 0.9207 +vn 0.3814 0.0830 -0.9207 +vn -0.0000 0.0830 0.9965 +vn -0.0000 0.0830 -0.9965 +vn 0.9239 0.0000 0.3827 +vn 1.0000 0.0000 -0.0000 +vn -0.3612 0.3304 -0.8720 +vn -0.6674 0.3304 -0.6674 +vn -0.8720 0.3304 -0.3612 +vn -0.9439 0.3304 0.0000 +vn -0.8720 0.3304 0.3612 +vn -0.6674 0.3304 0.6674 +vn -0.3612 0.3304 0.8720 +vn 0.0000 0.3304 0.9439 +vn 0.3612 0.3304 0.8720 +vn 0.6674 0.3304 0.6674 +vn 0.8720 0.3304 0.3612 +vn 0.9439 0.3304 0.0000 +vn 0.8720 0.3304 -0.3612 +vn 0.6674 0.3304 -0.6674 +vn 0.3612 0.3304 -0.8720 +vn -0.0000 0.3304 -0.9439 +vn -0.9239 0.0000 -0.3827 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.3827 0.0000 0.9239 +vn -0.3827 0.0000 -0.9239 +vn 0.0000 0.0000 1.0000 +vn 0.3827 0.0000 -0.9239 +vn 0.0000 0.0000 -1.0000 +vn -0.3827 0.0000 0.9239 +vn 0.7071 0.0000 -0.7071 +vn 0.8263 0.4472 0.3423 +vn 0.3423 0.4472 0.8263 +vn -0.0000 0.4472 0.8944 +vn -0.3423 0.4472 0.8263 +vn -0.8263 0.4472 0.3423 +vn -0.8944 0.4472 0.0000 +vn -0.8263 0.4472 -0.3423 +vn -0.3423 0.4472 -0.8263 +vn -0.0000 0.4472 -0.8944 +vn 0.3423 0.4472 -0.8263 +vn 0.8263 0.4472 -0.3423 +vn 0.8944 0.4472 -0.0000 +vn -0.7071 0.0000 0.7071 +vn 0.9239 0.0000 -0.3827 +vn 0.6860 0.2425 -0.6860 +vn 0.3713 0.2425 -0.8963 +vn -0.3713 0.2425 0.8963 +vn -0.6860 0.2425 0.6860 +vn 0.8963 0.2425 -0.3713 +vn -0.8963 0.2425 0.3713 +vn 0.9701 0.2425 -0.0000 +vn -0.9701 0.2425 -0.0000 +vn 0.8963 0.2425 0.3713 +vn -0.8963 0.2425 -0.3713 +vn 0.6860 0.2425 0.6860 +vn -0.6860 0.2425 -0.6860 +vn 0.3713 0.2425 0.8963 +vn -0.3713 0.2425 -0.8963 +vn 0.0000 0.2425 0.9701 +vn 0.0000 0.2425 -0.9701 +vn 0.5556 0.0000 -0.8315 +vn 0.9808 0.0000 -0.1951 +vn -0.5556 0.0000 0.8315 +vn -0.9808 0.0000 0.1951 +s off +f 141/1/1 156/2/1 157/3/1 +f 132/4/1 149/5/1 133/6/1 +f 139/7/1 156/2/1 140/8/1 +f 131/9/1 148/10/1 132/4/1 +f 139/7/1 154/11/1 155/12/1 +f 130/13/1 161/14/1 146/15/1 +f 131/9/1 146/15/1 147/16/1 +f 137/17/1 154/11/1 138/18/1 +f 144/19/1 161/14/1 145/20/1 +f 136/21/1 153/22/1 137/17/1 +f 144/19/1 159/23/1 160/24/1 +f 135/25/1 152/26/1 136/21/1 +f 143/27/1 158/28/1 159/23/1 +f 134/29/1 151/30/1 135/25/1 +f 142/31/1 157/3/1 158/28/1 +f 85/32/1 89/33/1 93/34/1 +f 133/6/1 150/35/1 134/36/1 +f 126/37/2 173/38/2 125/39/2 +f 127/40/2 174/41/2 126/37/2 +f 128/42/2 175/43/2 127/40/2 +f 129/44/2 176/45/2 128/42/2 +f 114/46/2 177/47/2 129/44/2 +f 115/48/2 162/49/2 114/46/2 +f 115/48/2 164/50/2 163/51/2 +f 116/52/2 165/53/2 164/50/2 +f 117/54/2 166/55/2 165/53/2 +f 118/56/2 167/57/2 166/58/2 +f 119/59/2 168/60/2 167/57/2 +f 121/61/2 168/60/2 120/62/2 +f 121/61/2 170/63/2 169/64/2 +f 123/65/2 170/63/2 122/66/2 +f 124/67/2 171/68/2 123/65/2 +f 125/39/2 172/69/2 124/67/2 +f 12/70/1 112/71/1 4/72/1 +f 188/73/1 189/74/1 190/75/1 +f 186/76/3 191/77/3 187/78/3 +f 189/74/4 191/79/4 186/76/4 +f 190/80/5 191/79/5 188/73/5 +f 229/81/1 233/82/1 237/83/1 +f 277/84/1 281/85/1 285/86/1 +f 325/87/1 329/88/1 333/89/1 +f 338/90/1 339/91/1 340/92/1 +f 336/93/6 341/94/6 337/95/6 +f 339/91/7 341/96/7 336/93/7 +f 340/97/8 341/96/8 338/90/8 +f 344/98/1 345/99/1 346/100/1 +f 342/101/9 347/102/9 343/103/9 +f 345/99/10 347/104/10 342/101/10 +f 346/105/11 347/104/11 344/98/11 +f 350/106/1 351/107/1 352/108/1 +f 348/109/12 353/110/12 349/111/12 +f 351/107/13 353/112/13 348/109/13 +f 352/113/14 353/112/14 350/106/14 +f 141/1/1 140/8/1 156/2/1 +f 132/4/1 148/10/1 149/5/1 +f 139/7/1 155/12/1 156/2/1 +f 131/9/1 147/16/1 148/10/1 +f 139/7/1 138/18/1 154/11/1 +f 130/13/1 145/20/1 161/14/1 +f 131/9/1 130/13/1 146/15/1 +f 137/17/1 153/22/1 154/11/1 +f 144/19/1 160/24/1 161/14/1 +f 136/21/1 152/26/1 153/22/1 +f 144/19/1 143/27/1 159/23/1 +f 135/25/1 151/30/1 152/26/1 +f 143/27/1 142/31/1 158/28/1 +f 134/29/1 150/114/1 151/30/1 +f 142/31/1 141/1/1 157/3/1 +f 93/34/1 94/115/1 81/116/1 +f 94/115/1 95/117/1 81/116/1 +f 95/117/1 80/118/1 81/116/1 +f 81/116/1 82/119/1 83/120/1 +f 83/120/1 84/121/1 85/32/1 +f 85/32/1 86/122/1 89/33/1 +f 86/122/1 87/123/1 89/33/1 +f 87/123/1 88/124/1 89/33/1 +f 89/33/1 90/125/1 91/126/1 +f 91/126/1 92/127/1 89/33/1 +f 92/127/1 93/34/1 89/33/1 +f 81/116/1 83/120/1 93/34/1 +f 83/120/1 85/32/1 93/34/1 +f 133/6/1 149/5/1 150/35/1 +f 126/37/2 174/41/2 173/38/2 +f 127/40/2 175/43/2 174/41/2 +f 128/42/2 176/45/2 175/43/2 +f 129/44/2 177/47/2 176/45/2 +f 114/46/2 162/49/2 177/47/2 +f 115/48/2 163/51/2 162/49/2 +f 115/48/2 116/52/2 164/50/2 +f 116/52/2 117/54/2 165/53/2 +f 117/54/2 118/128/2 166/55/2 +f 118/56/2 119/59/2 167/57/2 +f 119/59/2 120/62/2 168/60/2 +f 121/61/2 169/64/2 168/60/2 +f 121/61/2 122/66/2 170/63/2 +f 123/65/2 171/68/2 170/63/2 +f 124/67/2 172/69/2 171/68/2 +f 125/39/2 173/38/2 172/69/2 +f 12/70/1 13/129/1 14/130/1 +f 14/130/1 113/131/1 12/70/1 +f 113/131/1 112/71/1 12/70/1 +f 112/71/1 1/132/1 2/133/1 +f 2/133/1 3/134/1 4/72/1 +f 4/72/1 5/135/1 6/136/1 +f 6/136/1 7/137/1 8/138/1 +f 8/138/1 9/139/1 10/140/1 +f 10/140/1 11/141/1 12/70/1 +f 112/71/1 2/133/1 4/72/1 +f 4/72/1 6/136/1 12/70/1 +f 6/136/1 8/138/1 12/70/1 +f 8/138/1 10/140/1 12/70/1 +f 189/74/4 188/73/4 191/79/4 +f 190/80/5 187/142/5 191/79/5 +f 237/83/1 238/143/1 225/144/1 +f 238/143/1 239/145/1 225/144/1 +f 239/145/1 224/146/1 225/144/1 +f 225/144/1 226/147/1 227/148/1 +f 227/148/1 228/149/1 229/81/1 +f 229/81/1 230/150/1 233/82/1 +f 230/150/1 231/151/1 233/82/1 +f 231/151/1 232/152/1 233/82/1 +f 233/82/1 234/153/1 235/154/1 +f 235/154/1 236/155/1 233/82/1 +f 236/155/1 237/83/1 233/82/1 +f 225/144/1 227/148/1 237/83/1 +f 227/148/1 229/81/1 237/83/1 +f 285/86/1 286/156/1 273/157/1 +f 286/156/1 287/158/1 273/157/1 +f 287/158/1 272/159/1 273/157/1 +f 273/157/1 274/160/1 275/161/1 +f 275/161/1 276/162/1 277/84/1 +f 277/84/1 278/163/1 281/85/1 +f 278/163/1 279/164/1 281/85/1 +f 279/164/1 280/165/1 281/85/1 +f 281/85/1 282/166/1 283/167/1 +f 283/167/1 284/168/1 281/85/1 +f 284/168/1 285/86/1 281/85/1 +f 273/157/1 275/161/1 285/86/1 +f 275/161/1 277/84/1 285/86/1 +f 333/89/1 334/169/1 321/170/1 +f 334/169/1 335/171/1 321/170/1 +f 335/171/1 320/172/1 321/170/1 +f 321/170/1 322/173/1 323/174/1 +f 323/174/1 324/175/1 325/87/1 +f 325/87/1 326/176/1 329/88/1 +f 326/176/1 327/177/1 329/88/1 +f 327/177/1 328/178/1 329/88/1 +f 329/88/1 330/179/1 331/180/1 +f 331/180/1 332/181/1 329/88/1 +f 332/181/1 333/89/1 329/88/1 +f 321/170/1 323/174/1 333/89/1 +f 323/174/1 325/87/1 333/89/1 +f 339/91/7 338/90/7 341/96/7 +f 340/97/8 337/182/8 341/96/8 +f 345/99/10 344/98/10 347/104/10 +f 346/105/11 343/183/11 347/104/11 +f 351/107/13 350/106/13 353/112/13 +f 352/113/14 349/184/14 353/112/14 +s 1 +f 100/185/15 9/186/16 101/187/16 +f 17/188/17 32/189/18 16/190/18 +f 25/191/19 40/192/20 24/193/20 +f 18/194/21 33/195/17 17/188/17 +f 26/196/22 41/197/19 25/191/19 +f 19/198/23 34/199/21 18/194/21 +f 26/196/22 43/200/24 42/201/22 +f 20/202/25 35/203/23 19/204/23 +f 28/205/26 43/206/24 27/207/24 +f 21/208/27 36/209/25 20/202/25 +f 29/210/28 44/211/26 28/205/26 +f 22/212/29 37/213/27 21/208/27 +f 30/214/30 45/215/28 29/210/28 +f 23/216/31 38/217/29 22/212/29 +f 16/190/18 31/218/32 15/219/32 +f 15/219/32 46/220/30 30/214/30 +f 24/193/20 39/221/31 23/216/31 +f 107/222/33 2/223/34 108/224/34 +f 32/189/35 33/225/36 47/226/2 +f 33/195/36 34/227/37 47/228/2 +f 34/199/37 35/229/38 47/230/2 +f 35/203/38 36/231/39 47/232/2 +f 36/209/39 37/233/40 47/234/2 +f 37/213/40 38/235/41 47/236/2 +f 38/217/41 39/237/42 47/238/2 +f 39/221/42 40/239/43 47/240/2 +f 40/192/43 41/241/44 47/242/2 +f 41/197/44 42/243/45 47/244/2 +f 42/201/45 43/200/46 47/245/2 +f 43/206/46 44/246/47 47/247/2 +f 44/211/47 45/248/48 47/249/2 +f 45/215/48 46/250/49 47/251/2 +f 46/220/49 31/252/50 47/253/2 +f 31/218/50 32/254/35 47/255/2 +f 99/256/51 10/257/15 100/258/15 +f 106/259/52 3/260/33 107/222/33 +f 98/261/53 11/262/51 99/256/51 +f 105/263/54 4/264/52 106/259/52 +f 97/265/55 12/266/53 98/261/53 +f 104/267/56 5/268/54 105/263/54 +f 111/269/57 14/270/58 96/271/58 +f 96/271/58 13/272/55 97/265/55 +f 103/273/59 6/274/56 104/267/56 +f 110/275/60 113/276/57 111/269/57 +f 68/277/61 53/278/12 69/279/12 +f 70/280/62 53/278/12 54/281/62 +f 70/280/62 55/282/63 71/283/63 +f 72/284/64 55/285/63 56/286/64 +f 72/284/64 57/287/6 73/288/6 +f 73/288/6 58/289/65 74/290/65 +f 74/290/65 59/291/66 75/292/66 +f 75/292/66 60/293/67 76/294/67 +f 76/294/67 61/295/9 77/296/9 +f 79/297/68 61/295/9 62/298/68 +f 79/297/68 63/299/69 78/300/69 +f 78/300/69 48/301/70 64/302/70 +f 64/302/70 49/303/3 65/304/3 +f 66/305/71 49/303/3 50/306/71 +f 67/307/72 50/306/71 51/308/72 +f 92/309/51 77/296/53 93/310/53 +f 85/311/52 70/280/54 86/312/54 +f 93/310/53 79/297/55 94/313/55 +f 86/312/54 71/283/56 87/314/56 +f 95/315/58 64/302/57 80/316/57 +f 94/313/55 78/300/58 95/315/58 +f 87/317/56 72/284/59 88/318/59 +f 80/316/57 65/304/60 81/319/60 +f 88/318/59 73/288/73 89/320/73 +f 81/319/60 66/305/74 82/321/74 +f 89/320/73 74/290/16 90/322/16 +f 82/321/74 67/307/34 83/323/34 +f 90/322/16 75/292/15 91/324/15 +f 83/323/34 68/277/33 84/325/33 +f 91/324/15 76/294/51 92/309/51 +f 84/325/33 69/279/52 85/311/52 +f 67/307/72 52/326/61 68/277/61 +f 128/327/75 111/269/76 129/328/76 +f 108/224/34 1/329/74 109/330/74 +f 147/16/55 164/50/53 148/10/53 +f 155/12/54 172/69/52 156/2/52 +f 148/10/53 165/53/51 149/5/51 +f 156/2/52 173/38/33 157/3/33 +f 149/5/51 166/55/15 150/35/15 +f 157/3/33 174/41/34 158/28/34 +f 150/114/15 167/57/16 151/30/16 +f 158/28/34 175/43/74 159/23/74 +f 151/30/16 168/60/73 152/26/73 +f 159/23/74 176/45/60 160/24/60 +f 152/26/73 169/64/59 153/22/59 +f 160/24/60 177/47/57 161/14/57 +f 153/22/59 170/63/56 154/11/56 +f 146/15/58 163/51/55 147/16/55 +f 161/14/57 162/49/58 146/15/58 +f 154/11/56 171/68/54 155/12/54 +f 121/331/77 102/332/78 103/273/77 +f 127/333/79 110/275/75 128/327/75 +f 119/334/80 102/332/78 120/335/78 +f 126/336/81 109/330/79 127/333/79 +f 119/334/80 100/185/82 101/187/80 +f 126/336/81 107/222/83 108/224/81 +f 117/337/84 100/258/82 118/338/82 +f 124/339/85 107/222/83 125/340/83 +f 116/341/86 99/256/84 117/337/84 +f 124/339/85 105/263/87 106/259/85 +f 115/342/88 98/261/86 116/341/86 +f 122/343/89 105/263/87 123/344/87 +f 114/345/90 111/269/76 96/271/90 +f 114/345/90 97/265/88 115/342/88 +f 121/331/77 104/267/89 122/343/89 +f 102/332/73 7/346/59 103/273/59 +f 109/330/74 112/347/60 110/275/60 +f 101/187/16 8/348/73 102/332/73 +f 141/1/33 27/207/34 26/196/33 +f 142/31/34 28/205/74 27/207/34 +f 143/27/74 29/210/60 28/205/74 +f 144/19/60 30/214/57 29/210/60 +f 145/20/57 15/219/58 30/214/57 +f 130/13/58 16/190/55 15/219/58 +f 131/9/55 17/188/53 16/190/55 +f 132/4/53 18/194/51 17/188/53 +f 133/6/51 19/198/15 18/194/51 +f 134/29/15 20/202/16 19/204/15 +f 135/25/16 21/208/73 20/202/16 +f 136/21/73 22/212/59 21/208/73 +f 137/17/59 23/216/56 22/212/59 +f 138/18/56 24/193/54 23/216/56 +f 139/7/54 25/191/52 24/193/54 +f 140/8/52 26/196/33 25/191/52 +f 180/349/60 182/350/91 183/351/60 +f 179/352/74 183/351/60 184/353/74 +f 178/354/92 184/353/74 185/355/92 +f 212/356/61 197/357/12 213/358/12 +f 214/359/62 197/357/12 198/360/62 +f 214/359/62 199/361/63 215/362/63 +f 216/363/64 199/364/63 200/365/64 +f 216/363/64 201/366/6 217/367/6 +f 217/367/6 202/368/65 218/369/65 +f 218/369/65 203/370/66 219/371/66 +f 220/372/67 203/370/66 204/373/67 +f 220/372/67 205/374/9 221/375/9 +f 223/376/68 205/374/9 206/377/68 +f 222/378/69 206/377/68 207/379/69 +f 222/378/69 192/380/70 208/381/70 +f 209/382/3 192/380/70 193/383/3 +f 210/384/71 193/383/3 194/385/71 +f 211/386/72 194/385/71 195/387/72 +f 236/388/51 221/375/53 237/389/53 +f 229/390/52 214/359/54 230/391/54 +f 237/389/53 223/376/55 238/392/55 +f 230/391/54 215/362/56 231/393/56 +f 239/394/58 208/381/57 224/395/57 +f 238/392/55 222/378/58 239/394/58 +f 231/396/56 216/363/59 232/397/59 +f 224/395/57 209/382/60 225/398/60 +f 232/397/59 217/367/73 233/399/73 +f 225/398/60 210/384/74 226/400/74 +f 233/399/73 218/369/16 234/401/16 +f 226/400/74 211/386/34 227/402/34 +f 234/401/16 219/371/15 235/403/15 +f 227/402/34 212/356/33 228/404/33 +f 235/403/15 220/372/51 236/388/51 +f 228/404/33 213/358/52 229/390/52 +f 211/386/72 196/405/61 212/356/61 +f 260/406/61 245/407/12 261/408/12 +f 262/409/62 245/407/12 246/410/62 +f 262/409/62 247/411/63 263/412/63 +f 264/413/64 247/414/63 248/415/64 +f 264/413/64 249/416/6 265/417/6 +f 265/417/6 250/418/65 266/419/65 +f 266/419/65 251/420/66 267/421/66 +f 268/422/67 251/420/66 252/423/67 +f 268/422/67 253/424/9 269/425/9 +f 271/426/68 253/424/9 254/427/68 +f 271/426/68 255/428/69 270/429/69 +f 270/429/69 240/430/70 256/431/70 +f 256/431/70 241/432/3 257/433/3 +f 258/434/71 241/432/3 242/435/71 +f 259/436/72 242/435/71 243/437/72 +f 284/438/51 269/425/53 285/439/53 +f 277/440/52 262/409/54 278/441/54 +f 285/439/53 271/426/55 286/442/55 +f 278/441/54 263/412/56 279/443/56 +f 287/444/58 256/431/57 272/445/57 +f 286/442/55 270/429/58 287/444/58 +f 279/446/56 264/413/59 280/447/59 +f 272/445/57 257/433/60 273/448/60 +f 280/447/59 265/417/73 281/449/73 +f 273/448/60 258/434/74 274/450/74 +f 281/449/73 266/419/16 282/451/16 +f 274/450/74 259/436/34 275/452/34 +f 282/451/16 267/421/15 283/453/15 +f 275/452/34 260/406/33 276/454/33 +f 283/453/15 268/422/51 284/438/51 +f 276/454/33 261/408/52 277/440/52 +f 259/436/72 244/455/61 260/406/61 +f 308/456/61 293/457/12 309/458/12 +f 310/459/62 293/457/12 294/460/62 +f 310/459/62 295/461/63 311/462/63 +f 312/463/64 295/464/63 296/465/64 +f 312/463/64 297/466/6 313/467/6 +f 313/467/6 298/468/65 314/469/65 +f 314/469/65 299/470/66 315/471/66 +f 316/472/67 299/470/66 300/473/67 +f 316/472/67 301/474/9 317/475/9 +f 319/476/68 301/474/9 302/477/68 +f 319/476/68 303/478/69 318/479/69 +f 318/479/69 288/480/70 304/481/70 +f 304/481/70 289/482/3 305/483/3 +f 306/484/71 289/482/3 290/485/71 +f 307/486/72 290/485/71 291/487/72 +f 332/488/51 317/475/53 333/489/53 +f 325/490/52 310/459/54 326/491/54 +f 333/489/53 319/476/55 334/492/55 +f 326/491/54 311/462/56 327/493/56 +f 335/494/58 304/481/57 320/495/57 +f 334/492/55 318/479/58 335/494/58 +f 327/496/56 312/463/59 328/497/59 +f 320/495/57 305/483/60 321/498/60 +f 328/497/59 313/467/73 329/499/73 +f 321/498/60 306/484/74 322/500/74 +f 329/499/73 314/469/16 330/501/16 +f 322/500/74 307/486/34 323/502/34 +f 330/501/16 315/471/15 331/503/15 +f 323/502/34 308/456/33 324/504/33 +f 331/503/15 316/472/51 332/488/51 +f 324/504/33 309/458/52 325/490/52 +f 307/486/72 292/505/61 308/456/61 +f 356/506/73 358/507/93 359/508/73 +f 355/509/16 359/508/73 360/510/16 +f 354/511/94 360/510/16 361/512/94 +f 100/185/15 10/513/15 9/186/16 +f 17/188/17 33/225/17 32/189/18 +f 25/191/19 41/241/19 40/192/20 +f 18/194/21 34/227/21 33/195/17 +f 26/196/22 42/243/22 41/197/19 +f 19/198/23 35/229/23 34/199/21 +f 26/196/22 27/207/24 43/200/24 +f 20/202/25 36/231/25 35/203/23 +f 28/205/26 44/246/26 43/206/24 +f 21/208/27 37/233/27 36/209/25 +f 29/210/28 45/248/28 44/211/26 +f 22/212/29 38/235/29 37/213/27 +f 30/214/30 46/250/30 45/215/28 +f 23/216/31 39/237/31 38/217/29 +f 16/190/18 32/254/18 31/218/32 +f 15/219/32 31/252/32 46/220/30 +f 24/193/20 40/239/20 39/221/31 +f 107/222/33 3/260/33 2/223/34 +f 99/256/51 11/262/51 10/257/15 +f 106/259/52 4/264/52 3/260/33 +f 98/261/53 12/266/53 11/262/51 +f 105/263/54 5/268/54 4/264/52 +f 97/265/55 13/272/55 12/266/53 +f 104/267/56 6/274/56 5/268/54 +f 111/269/57 113/276/57 14/270/58 +f 96/271/58 14/270/58 13/272/55 +f 103/273/59 7/346/59 6/274/56 +f 110/275/60 112/347/60 113/276/57 +f 68/277/61 52/326/61 53/278/12 +f 70/280/62 69/279/12 53/278/12 +f 70/280/62 54/281/62 55/282/63 +f 72/284/64 71/514/63 55/285/63 +f 72/284/64 56/286/64 57/287/6 +f 73/288/6 57/287/6 58/289/65 +f 74/290/65 58/289/65 59/291/66 +f 75/292/66 59/291/66 60/293/67 +f 76/294/67 60/293/67 61/295/9 +f 79/297/68 77/296/9 61/295/9 +f 79/297/68 62/298/68 63/299/69 +f 78/300/69 63/299/69 48/301/70 +f 64/302/70 48/301/70 49/303/3 +f 66/305/71 65/304/3 49/303/3 +f 67/307/72 66/305/71 50/306/71 +f 92/309/51 76/294/51 77/296/53 +f 85/311/52 69/279/52 70/280/54 +f 93/310/53 77/296/53 79/297/55 +f 86/312/54 70/280/54 71/283/56 +f 95/315/58 78/300/58 64/302/57 +f 94/313/55 79/297/55 78/300/58 +f 87/317/56 71/514/56 72/284/59 +f 80/316/57 64/302/57 65/304/60 +f 88/318/59 72/284/59 73/288/73 +f 81/319/60 65/304/60 66/305/74 +f 89/320/73 73/288/73 74/290/16 +f 82/321/74 66/305/74 67/307/34 +f 90/322/16 74/290/16 75/292/15 +f 83/323/34 67/307/34 68/277/33 +f 91/324/15 75/292/15 76/294/51 +f 84/325/33 68/277/33 69/279/52 +f 67/307/72 51/308/72 52/326/61 +f 128/327/75 110/275/75 111/269/76 +f 108/224/34 2/223/34 1/329/74 +f 147/16/55 163/51/55 164/50/53 +f 155/12/54 171/68/54 172/69/52 +f 148/10/53 164/50/53 165/53/51 +f 156/2/52 172/69/52 173/38/33 +f 149/5/51 165/53/51 166/55/15 +f 157/3/33 173/38/33 174/41/34 +f 150/114/15 166/58/15 167/57/16 +f 158/28/34 174/41/34 175/43/74 +f 151/30/16 167/57/16 168/60/73 +f 159/23/74 175/43/74 176/45/60 +f 152/26/73 168/60/73 169/64/59 +f 160/24/60 176/45/60 177/47/57 +f 153/22/59 169/64/59 170/63/56 +f 146/15/58 162/49/58 163/51/55 +f 161/14/57 177/47/57 162/49/58 +f 154/11/56 170/63/56 171/68/54 +f 121/331/77 120/335/78 102/332/78 +f 127/333/79 109/330/79 110/275/75 +f 119/334/80 101/187/80 102/332/78 +f 126/336/81 108/224/81 109/330/79 +f 119/334/80 118/56/82 100/185/82 +f 126/336/81 125/340/83 107/222/83 +f 117/337/84 99/256/84 100/258/82 +f 124/339/85 106/259/85 107/222/83 +f 116/341/86 98/261/86 99/256/84 +f 124/339/85 123/344/87 105/263/87 +f 115/342/88 97/265/88 98/261/86 +f 122/343/89 104/267/89 105/263/87 +f 114/345/90 129/328/76 111/269/76 +f 114/345/90 96/271/90 97/265/88 +f 121/331/77 103/273/77 104/267/89 +f 102/332/73 8/348/73 7/346/59 +f 109/330/74 1/329/74 112/347/60 +f 101/187/16 9/186/16 8/348/73 +f 141/1/33 142/31/34 27/207/34 +f 142/31/34 143/27/74 28/205/74 +f 143/27/74 144/19/60 29/210/60 +f 144/19/60 145/20/57 30/214/57 +f 145/20/57 130/13/58 15/219/58 +f 130/13/58 131/9/55 16/190/55 +f 131/9/55 132/4/53 17/188/53 +f 132/4/53 133/6/51 18/194/51 +f 133/6/51 134/36/15 19/198/15 +f 134/29/15 135/25/16 20/202/16 +f 135/25/16 136/21/73 21/208/73 +f 136/21/73 137/17/59 22/212/59 +f 137/17/59 138/18/56 23/216/56 +f 138/18/56 139/7/54 24/193/54 +f 139/7/54 140/8/52 25/191/52 +f 140/8/52 141/1/33 26/196/33 +f 180/349/60 181/515/91 182/350/91 +f 179/352/74 180/349/60 183/351/60 +f 178/354/92 179/352/74 184/353/74 +f 212/356/61 196/405/61 197/357/12 +f 214/359/62 213/358/12 197/357/12 +f 214/359/62 198/360/62 199/361/63 +f 216/363/64 215/516/63 199/364/63 +f 216/363/64 200/365/64 201/366/6 +f 217/367/6 201/366/6 202/368/65 +f 218/369/65 202/368/65 203/370/66 +f 220/372/67 219/371/66 203/370/66 +f 220/372/67 204/373/67 205/374/9 +f 223/376/68 221/375/9 205/374/9 +f 222/378/69 223/376/68 206/377/68 +f 222/378/69 207/379/69 192/380/70 +f 209/382/3 208/381/70 192/380/70 +f 210/384/71 209/382/3 193/383/3 +f 211/386/72 210/384/71 194/385/71 +f 236/388/51 220/372/51 221/375/53 +f 229/390/52 213/358/52 214/359/54 +f 237/389/53 221/375/53 223/376/55 +f 230/391/54 214/359/54 215/362/56 +f 239/394/58 222/378/58 208/381/57 +f 238/392/55 223/376/55 222/378/58 +f 231/396/56 215/516/56 216/363/59 +f 224/395/57 208/381/57 209/382/60 +f 232/397/59 216/363/59 217/367/73 +f 225/398/60 209/382/60 210/384/74 +f 233/399/73 217/367/73 218/369/16 +f 226/400/74 210/384/74 211/386/34 +f 234/401/16 218/369/16 219/371/15 +f 227/402/34 211/386/34 212/356/33 +f 235/403/15 219/371/15 220/372/51 +f 228/404/33 212/356/33 213/358/52 +f 211/386/72 195/387/72 196/405/61 +f 260/406/61 244/455/61 245/407/12 +f 262/409/62 261/408/12 245/407/12 +f 262/409/62 246/410/62 247/411/63 +f 264/413/64 263/517/63 247/414/63 +f 264/413/64 248/415/64 249/416/6 +f 265/417/6 249/416/6 250/418/65 +f 266/419/65 250/418/65 251/420/66 +f 268/422/67 267/421/66 251/420/66 +f 268/422/67 252/423/67 253/424/9 +f 271/426/68 269/425/9 253/424/9 +f 271/426/68 254/427/68 255/428/69 +f 270/429/69 255/428/69 240/430/70 +f 256/431/70 240/430/70 241/432/3 +f 258/434/71 257/433/3 241/432/3 +f 259/436/72 258/434/71 242/435/71 +f 284/438/51 268/422/51 269/425/53 +f 277/440/52 261/408/52 262/409/54 +f 285/439/53 269/425/53 271/426/55 +f 278/441/54 262/409/54 263/412/56 +f 287/444/58 270/429/58 256/431/57 +f 286/442/55 271/426/55 270/429/58 +f 279/446/56 263/517/56 264/413/59 +f 272/445/57 256/431/57 257/433/60 +f 280/447/59 264/413/59 265/417/73 +f 273/448/60 257/433/60 258/434/74 +f 281/449/73 265/417/73 266/419/16 +f 274/450/74 258/434/74 259/436/34 +f 282/451/16 266/419/16 267/421/15 +f 275/452/34 259/436/34 260/406/33 +f 283/453/15 267/421/15 268/422/51 +f 276/454/33 260/406/33 261/408/52 +f 259/436/72 243/437/72 244/455/61 +f 308/456/61 292/505/61 293/457/12 +f 310/459/62 309/458/12 293/457/12 +f 310/459/62 294/460/62 295/461/63 +f 312/463/64 311/518/63 295/464/63 +f 312/463/64 296/465/64 297/466/6 +f 313/467/6 297/466/6 298/468/65 +f 314/469/65 298/468/65 299/470/66 +f 316/472/67 315/471/66 299/470/66 +f 316/472/67 300/473/67 301/474/9 +f 319/476/68 317/475/9 301/474/9 +f 319/476/68 302/477/68 303/478/69 +f 318/479/69 303/478/69 288/480/70 +f 304/481/70 288/480/70 289/482/3 +f 306/484/71 305/483/3 289/482/3 +f 307/486/72 306/484/71 290/485/71 +f 332/488/51 316/472/51 317/475/53 +f 325/490/52 309/458/52 310/459/54 +f 333/489/53 317/475/53 319/476/55 +f 326/491/54 310/459/54 311/462/56 +f 335/494/58 318/479/58 304/481/57 +f 334/492/55 319/476/55 318/479/58 +f 327/496/56 311/518/56 312/463/59 +f 320/495/57 304/481/57 305/483/60 +f 328/497/59 312/463/59 313/467/73 +f 321/498/60 305/483/60 306/484/74 +f 329/499/73 313/467/73 314/469/16 +f 322/500/74 306/484/74 307/486/34 +f 330/501/16 314/469/16 315/471/15 +f 323/502/34 307/486/34 308/456/33 +f 331/503/15 315/471/15 316/472/51 +f 324/504/33 308/456/33 309/458/52 +f 307/486/72 291/487/72 292/505/61 +f 356/506/73 357/519/93 358/507/93 +f 355/509/16 356/506/73 359/508/73 +f 354/511/94 355/509/16 360/510/16 diff --git a/src/main/resources/assets/hbm/models/missile_strong.obj b/src/main/resources/assets/hbm/models/missile_strong.obj new file mode 100644 index 000000000..e6b97761c --- /dev/null +++ b/src/main/resources/assets/hbm/models/missile_strong.obj @@ -0,0 +1,979 @@ +# Blender v2.79 (sub 0) OBJ File: 'missile_strong.blend' +# www.blender.org +o Circle +v 0.000000 4.125000 -0.625000 +v -0.239177 4.125000 -0.577425 +v -0.441942 4.125000 -0.441942 +v -0.577425 4.125000 -0.239177 +v -0.625000 4.125000 0.000000 +v -0.577425 4.125000 0.239177 +v -0.441942 4.125000 0.441942 +v -0.239177 4.125000 0.577425 +v -0.000000 4.125000 0.625000 +v 0.239177 4.125000 0.577425 +v 0.441942 4.125000 0.441942 +v 0.577425 4.125000 0.239177 +v 0.625000 4.125000 -0.000000 +v 0.577425 4.125000 -0.239177 +v 0.441942 4.125000 -0.441942 +v 0.239177 4.125000 -0.577425 +v 0.000000 4.875000 -0.630000 +v -0.241091 4.875000 -0.582044 +v -0.445477 4.875000 -0.445477 +v -0.582044 4.875000 -0.241091 +v -0.630000 4.875000 0.000000 +v -0.582044 4.875000 0.241091 +v -0.445477 4.875000 0.445477 +v -0.241091 4.875000 0.582044 +v -0.000000 4.875000 0.630000 +v 0.241090 4.875000 0.582044 +v 0.445477 4.875000 0.445477 +v 0.582044 4.875000 0.241091 +v 0.630000 4.875000 -0.000000 +v 0.582044 4.875000 -0.241091 +v 0.445477 4.875000 -0.445477 +v 0.241090 4.875000 -0.582044 +v 0.000000 5.000000 -0.500000 +v -0.191342 5.000000 -0.461940 +v -0.353553 5.000000 -0.353553 +v -0.461940 5.000000 -0.191342 +v -0.500000 5.000000 0.000000 +v -0.461940 5.000000 0.191342 +v -0.353553 5.000000 0.353553 +v -0.191342 5.000000 0.461940 +v -0.000000 5.000000 0.500000 +v 0.191342 5.000000 0.461940 +v 0.353553 5.000000 0.353554 +v 0.461940 5.000000 0.191342 +v 0.500000 5.000000 -0.000000 +v 0.461940 5.000000 -0.191342 +v 0.353553 5.000000 -0.353554 +v 0.191341 5.000000 -0.461940 +v 0.000000 6.000000 0.000000 +v 0.000000 4.000000 -0.500000 +v -0.191342 4.000000 -0.461940 +v -0.353553 4.000000 -0.353553 +v -0.461940 4.000000 -0.191342 +v -0.500000 4.000000 0.000000 +v -0.461940 4.000000 0.191342 +v -0.353553 4.000000 0.353553 +v -0.191342 4.000000 0.461940 +v -0.000000 4.000000 0.500000 +v 0.191342 4.000000 0.461940 +v 0.353553 4.000000 0.353554 +v 0.461940 4.000000 0.191342 +v 0.500000 4.000000 -0.000000 +v 0.461940 4.000000 -0.191342 +v 0.353553 4.000000 -0.353554 +v 0.191341 4.000000 -0.461940 +v 0.000000 3.500000 -0.500000 +v -0.191342 3.500000 -0.461940 +v -0.353553 3.500000 -0.353553 +v -0.461940 3.500000 -0.191342 +v -0.500000 3.500000 0.000000 +v -0.461940 3.500000 0.191342 +v -0.353553 3.500000 0.353553 +v -0.191342 3.500000 0.461940 +v -0.000000 3.500000 0.500000 +v 0.191342 3.500000 0.461940 +v 0.353553 3.500000 0.353554 +v 0.461940 3.500000 0.191342 +v 0.500000 3.500000 -0.000000 +v 0.461940 3.500000 -0.191342 +v 0.353553 3.500000 -0.353554 +v 0.191341 3.500000 -0.461940 +v 0.000000 2.500000 -0.625000 +v -0.239177 2.500000 -0.577425 +v -0.441942 2.500000 -0.441942 +v -0.577425 2.500000 -0.239177 +v -0.625000 2.500000 0.000000 +v -0.577425 2.500000 0.239177 +v -0.441942 2.500000 0.441942 +v -0.239177 2.500000 0.577425 +v -0.000000 2.500000 0.625000 +v 0.239177 2.500000 0.577425 +v 0.441942 2.500000 0.441942 +v 0.577425 2.500000 0.239177 +v 0.625000 2.500000 -0.000000 +v 0.577425 2.500000 -0.239177 +v 0.441942 2.500000 -0.441942 +v 0.239177 2.500000 -0.577425 +v 0.000000 0.500000 -0.625000 +v -0.239177 0.500000 -0.577425 +v -0.441942 0.500000 -0.441942 +v -0.577425 0.500000 -0.239177 +v -0.625000 0.500000 0.000000 +v -0.577425 0.500000 0.239177 +v -0.441942 0.500000 0.441942 +v -0.239177 0.500000 0.577425 +v -0.000000 0.500000 0.625000 +v 0.239177 0.500000 0.577425 +v 0.441942 0.500000 0.441942 +v 0.577425 0.500000 0.239177 +v 0.625000 0.500000 -0.000000 +v 0.577425 0.500000 -0.239177 +v 0.441942 0.500000 -0.441942 +v 0.239177 0.500000 -0.577425 +v 0.000000 0.500000 -0.500000 +v -0.191342 0.500000 -0.461940 +v -0.353553 0.500000 -0.353553 +v -0.461940 0.500000 -0.191342 +v -0.500000 0.500000 0.000000 +v -0.461940 0.500000 0.191342 +v -0.353553 0.500000 0.353553 +v -0.191342 0.500000 0.461940 +v -0.000000 0.500000 0.500000 +v 0.191342 0.500000 0.461940 +v 0.353553 0.500000 0.353554 +v 0.461940 0.500000 0.191342 +v 0.500000 0.500000 -0.000000 +v 0.461940 0.500000 -0.191342 +v 0.353553 0.500000 -0.353554 +v 0.191341 0.500000 -0.461940 +v 0.000000 0.000000 -0.500000 +v -0.191342 0.000000 -0.461940 +v -0.353553 0.000000 -0.353553 +v -0.461940 0.000000 -0.191342 +v -0.500000 0.000000 0.000000 +v -0.461940 0.000000 0.191342 +v -0.353553 0.000000 0.353553 +v -0.191342 0.000000 0.461940 +v -0.000000 0.000000 0.500000 +v 0.191342 0.000000 0.461940 +v 0.353553 0.000000 0.353554 +v 0.461940 0.000000 0.191342 +v 0.500000 0.000000 -0.000000 +v 0.461940 0.000000 -0.191342 +v 0.353553 0.000000 -0.353554 +v 0.191341 0.000000 -0.461940 +v 0.333224 4.750000 -0.377418 +v 0.885651 4.500000 -0.885651 +v 0.333224 4.250000 -0.377418 +v 0.885651 4.250000 -0.885651 +v 0.377418 4.750000 -0.333224 +v 0.377418 4.250000 -0.333224 +v 0.377418 4.750000 0.333224 +v 0.885652 4.500000 0.885651 +v 0.377418 4.250000 0.333224 +v 0.885652 4.250000 0.885651 +v 0.333224 4.750000 0.377418 +v 0.333224 4.250000 0.377418 +v 0.375651 2.250000 0.331456 +v 0.883884 1.500000 0.883883 +v 0.375651 0.250000 0.331456 +v 0.883884 0.250000 0.883883 +v 0.331456 2.250000 0.375650 +v 0.331456 0.250000 0.375650 +v -0.331456 0.250000 -0.375650 +v -0.331456 2.250000 -0.375650 +v -0.883884 0.250000 -0.883883 +v -0.375651 0.250000 -0.331456 +v -0.883884 1.500000 -0.883883 +v -0.375651 2.250000 -0.331456 +v 0.331456 2.250000 -0.375650 +v 0.883883 1.500000 -0.883883 +v 0.331456 0.250000 -0.375650 +v 0.883883 0.250000 -0.883883 +v 0.375650 2.250000 -0.331456 +v 0.375650 0.250000 -0.331456 +v -0.333224 4.250000 -0.377418 +v -0.333224 4.750000 -0.377418 +v -0.885651 4.250000 -0.885651 +v -0.377418 4.250000 -0.333224 +v -0.885651 4.500000 -0.885651 +v -0.377418 4.750000 -0.333224 +v -0.375650 0.250000 0.331456 +v -0.375650 2.250000 0.331456 +v -0.883883 0.250000 0.883883 +v -0.331456 0.250000 0.375651 +v -0.883883 1.500000 0.883883 +v -0.331456 2.250000 0.375651 +v -0.377418 4.250000 0.333224 +v -0.377418 4.750000 0.333224 +v -0.885651 4.250000 0.885651 +v -0.333224 4.250000 0.377418 +v -0.885651 4.500000 0.885651 +v -0.333224 4.750000 0.377418 +vt 0.350000 0.102041 +vt 0.387500 0.081633 +vt 0.400000 0.102041 +vt 0.437500 0.081633 +vt 0.450000 0.102041 +vt 0.450000 0.081633 +vt 0.500000 0.102041 +vt 0.500000 0.081633 +vt 0.550000 0.102041 +vt 0.550000 0.081633 +vt 0.600000 0.102041 +vt 0.600000 0.081633 +vt 0.650000 0.102041 +vt 0.650000 0.081633 +vt 0.700000 0.102041 +vt 0.737500 0.081633 +vt 0.750000 0.102041 +vt 0.750000 0.081633 +vt 0.800000 0.102041 +vt 0.000000 0.102041 +vt 0.037500 0.081633 +vt 0.050000 0.102041 +vt 0.087500 0.081633 +vt 0.100000 0.102041 +vt 0.100000 0.081633 +vt 0.150000 0.102041 +vt 0.150000 0.081633 +vt 0.200000 0.102041 +vt 0.237500 0.081633 +vt 0.250000 0.102041 +vt 0.250000 0.081633 +vt 0.300000 0.102041 +vt 0.300000 0.081633 +vt 0.970508 0.024075 +vt 0.970508 0.139190 +vt 0.829492 0.139190 +vt 0.950000 0.561224 +vt 0.800000 0.520408 +vt 0.800000 0.602041 +vt 0.800000 0.520408 +vt 0.800000 0.602041 +vt 0.950000 0.602041 +vt 0.800000 0.612245 +vt 0.800000 0.510204 +vt 0.950000 0.520408 +vt 0.950000 0.561224 +vt 0.800000 0.520408 +vt 0.800000 0.602041 +vt 0.800000 0.520408 +vt 0.800000 0.602041 +vt 0.950000 0.602041 +vt 0.800000 0.612245 +vt 0.800000 0.510204 +vt 0.950000 0.520408 +vt 0.950000 0.377551 +vt 0.800000 0.173469 +vt 0.800000 0.500000 +vt 0.800000 0.173469 +vt 0.800000 0.500000 +vt 0.950000 0.500000 +vt 0.800000 0.510204 +vt 0.800000 0.163265 +vt 0.950000 0.173469 +vt 0.800000 0.163265 +vt 0.950000 0.173469 +vt 0.800000 0.173469 +vt 0.950000 0.500000 +vt 0.800000 0.510204 +vt 0.800000 0.500000 +vt 0.950000 0.377551 +vt 0.800000 0.173469 +vt 0.800000 0.500000 +vt 0.950000 0.377551 +vt 0.800000 0.173469 +vt 0.800000 0.500000 +vt 0.800000 0.173469 +vt 0.800000 0.500000 +vt 0.950000 0.500000 +vt 0.800000 0.510204 +vt 0.800000 0.163265 +vt 0.950000 0.173469 +vt 0.800000 0.510204 +vt 0.950000 0.520408 +vt 0.800000 0.520408 +vt 0.950000 0.602041 +vt 0.800000 0.612245 +vt 0.800000 0.602041 +vt 0.950000 0.561224 +vt 0.800000 0.520408 +vt 0.800000 0.602041 +vt 0.800000 0.163265 +vt 0.950000 0.173469 +vt 0.800000 0.173469 +vt 0.950000 0.500000 +vt 0.800000 0.510204 +vt 0.800000 0.500000 +vt 0.950000 0.377551 +vt 0.800000 0.173469 +vt 0.800000 0.500000 +vt 0.800000 0.510204 +vt 0.950000 0.520408 +vt 0.800000 0.520408 +vt 0.950000 0.602041 +vt 0.800000 0.612245 +vt 0.800000 0.602041 +vt 0.950000 0.561224 +vt 0.800000 0.520408 +vt 0.800000 0.602041 +vt 0.350000 0.081633 +vt 0.400000 0.081633 +vt 0.487500 0.081633 +vt 0.537500 0.081633 +vt 0.587500 0.081633 +vt 0.637500 0.081633 +vt 0.687500 0.081633 +vt 0.700000 0.081633 +vt 0.787500 0.081633 +vt 0.000000 0.081633 +vt 0.050000 0.081633 +vt 0.137500 0.081633 +vt 0.187500 0.081633 +vt 0.200000 0.081633 +vt 0.287500 0.081633 +vt 0.337500 0.081633 +vt 0.992123 0.050483 +vt 0.999714 0.081633 +vt 0.992123 0.112783 +vt 0.938159 0.156836 +vt 0.900000 0.163032 +vt 0.861841 0.156836 +vt 0.807876 0.112783 +vt 0.800286 0.081633 +vt 0.807877 0.050483 +vt 0.829492 0.024075 +vt 0.861841 0.006430 +vt 0.900000 0.000234 +vt 0.938159 0.006430 +vt 0.700000 0.693878 +vt 0.650000 0.816327 +vt 0.650000 0.693878 +vt 0.300000 0.693878 +vt 0.250000 0.816327 +vt 0.250000 0.693878 +vt 0.750000 0.693878 +vt 0.700000 0.816327 +vt 0.350000 0.693878 +vt 0.300000 0.816327 +vt 0.800000 0.693878 +vt 0.750000 0.816327 +vt 0.400000 0.693878 +vt 0.350000 0.816327 +vt 0.050000 0.693878 +vt 0.000000 0.816327 +vt -0.000000 0.693878 +vt 0.450000 0.693878 +vt 0.400000 0.816327 +vt 0.100000 0.693878 +vt 0.050000 0.816327 +vt 0.500000 0.693878 +vt 0.450000 0.816327 +vt 0.150000 0.693878 +vt 0.100000 0.816327 +vt 0.550000 0.693878 +vt 0.500000 0.816327 +vt 0.200000 0.693878 +vt 0.150000 0.816327 +vt 0.600000 0.816327 +vt 0.600000 0.693878 +vt 0.550000 0.816327 +vt 0.200000 0.816327 +vt 0.150000 0.836735 +vt 0.600000 0.836735 +vt 0.550000 0.836735 +vt 0.200000 0.836735 +vt 0.650000 0.836735 +vt 0.250000 0.836735 +vt 0.700000 0.836735 +vt 0.337500 0.836735 +vt 0.300000 0.836735 +vt 0.800000 0.816327 +vt 0.750000 0.836735 +vt 0.350000 0.836735 +vt -0.000000 0.836735 +vt 0.437500 0.836735 +vt 0.400000 0.836735 +vt 0.050000 0.836735 +vt 0.450000 0.836735 +vt 0.100000 0.836735 +vt 0.500000 0.836735 +vt 0.300000 0.673469 +vt 0.687500 0.836735 +vt 0.662500 1.000000 +vt 0.737500 0.836735 +vt 0.712500 1.000000 +vt 0.787500 0.836735 +vt 0.762500 1.000000 +vt 0.037500 0.836735 +vt 0.012500 1.000000 +vt 0.087500 0.836735 +vt 0.062500 1.000000 +vt 0.137500 0.836735 +vt 0.112500 1.000000 +vt 0.187500 0.836735 +vt 0.162500 1.000000 +vt 0.237500 0.836735 +vt 0.212500 1.000000 +vt 0.287500 0.836735 +vt 0.262500 1.000000 +vt 0.312500 1.000000 +vt 0.387500 0.836735 +vt 0.362500 1.000000 +vt 0.412500 1.000000 +vt 0.487500 0.836735 +vt 0.462500 1.000000 +vt 0.537500 0.836735 +vt 0.512500 1.000000 +vt 0.587500 0.836735 +vt 0.562500 1.000000 +vt 0.637500 0.836735 +vt 0.612500 1.000000 +vt 0.350000 0.673469 +vt 0.400000 0.673469 +vt 0.450000 0.673469 +vt 0.500000 0.673469 +vt 0.587500 0.673469 +vt 0.600000 0.673469 +vt 0.650000 0.673469 +vt 0.700000 0.673469 +vt 0.750000 0.673469 +vt 0.000000 0.673469 +vt 0.050000 0.673469 +vt 0.100000 0.673469 +vt 0.150000 0.673469 +vt 0.200000 0.673469 +vt 0.250000 0.673469 +vt 0.687500 0.591837 +vt 0.687500 0.673469 +vt 0.287500 0.591837 +vt 0.287500 0.673469 +vt 0.737500 0.591837 +vt 0.737500 0.673469 +vt 0.337500 0.591837 +vt 0.337500 0.673469 +vt 0.787500 0.591837 +vt 0.787500 0.673469 +vt 0.387500 0.591837 +vt 0.387500 0.673469 +vt 0.037500 0.591837 +vt 0.037500 0.673469 +vt 0.437500 0.591837 +vt 0.437500 0.673469 +vt 0.087500 0.591837 +vt 0.087500 0.673469 +vt 0.487500 0.591837 +vt 0.487500 0.673469 +vt 0.137500 0.591837 +vt 0.137500 0.673469 +vt 0.537500 0.591837 +vt 0.537500 0.673469 +vt 0.187500 0.591837 +vt 0.187500 0.673469 +vt 0.637500 0.591837 +vt 0.637500 0.673469 +vt 0.550000 0.673469 +vt 0.587500 0.591837 +vt 0.237500 0.591837 +vt 0.237500 0.673469 +vt 0.100000 0.591837 +vt 0.150000 0.428571 +vt 0.500000 0.591837 +vt 0.550000 0.428571 +vt 0.150000 0.591837 +vt 0.200000 0.428571 +vt 0.600000 0.591837 +vt 0.650000 0.428571 +vt 0.550000 0.591837 +vt 0.600000 0.428571 +vt 0.250000 0.428571 +vt 0.650000 0.591837 +vt 0.700000 0.428571 +vt 0.250000 0.591837 +vt 0.300000 0.428571 +vt 0.700000 0.591837 +vt 0.750000 0.428571 +vt 0.300000 0.591837 +vt 0.350000 0.428571 +vt 0.750000 0.591837 +vt 0.800000 0.428571 +vt 0.350000 0.591837 +vt 0.400000 0.428571 +vt -0.000000 0.591837 +vt 0.050000 0.428571 +vt 0.400000 0.591837 +vt 0.450000 0.428571 +vt 0.050000 0.591837 +vt 0.100000 0.428571 +vt 0.450000 0.591837 +vt 0.500000 0.428571 +vt 0.000000 0.428571 +vt 0.537500 -0.000000 +vt 0.187500 0.000000 +vt 0.637500 0.000000 +vt 0.587500 0.000000 +vt 0.237500 0.000000 +vt 0.687500 0.000000 +vt 0.287500 0.000000 +vt 0.737500 -0.000000 +vt 0.337500 0.000000 +vt 0.787500 -0.000000 +vt 0.387500 0.000000 +vt 0.037500 -0.000000 +vt 0.437500 0.000000 +vt 0.087500 -0.000000 +vt 0.487500 0.000000 +vt 0.137500 0.000000 +vt 0.200000 0.591837 +vt 0.500000 -0.000000 +vt 0.150000 0.000000 +vt 0.600000 0.000000 +vt 0.550000 0.000000 +vt 0.200000 -0.000000 +vt 0.650000 0.000000 +vt 0.250000 -0.000000 +vt 0.700000 0.000000 +vt 0.300000 -0.000000 +vt 0.750000 0.000000 +vt 0.350000 -0.000000 +vt -0.000000 0.000000 +vt 0.400000 -0.000000 +vt 0.050000 -0.000000 +vt 0.450000 0.000000 +vt 0.100000 0.000000 +vn 0.0000 -1.0000 0.0000 +vn -0.6771 0.0000 -0.7359 +vn 0.7359 0.0000 0.6771 +vn 0.2236 0.9487 -0.2236 +vn 0.7359 0.0000 -0.6771 +vn -0.6771 0.0000 0.7359 +vn 0.2236 0.9487 0.2236 +vn 0.5000 0.7071 0.5000 +vn -0.5000 0.7071 -0.5000 +vn 0.6771 0.0000 -0.7359 +vn -0.7359 0.0000 0.6771 +vn 0.5000 0.7071 -0.5000 +vn -0.2236 0.9487 -0.2236 +vn -0.5000 0.7071 0.5000 +vn -0.7359 0.0000 -0.6771 +vn 0.6771 0.0000 0.7359 +vn -0.2236 0.9487 0.2236 +vn -0.7071 -0.0067 -0.7071 +vn -0.3827 -0.0067 -0.9239 +vn 0.7071 -0.0067 0.7071 +vn 0.3827 -0.0067 0.9239 +vn -0.9239 -0.0067 -0.3827 +vn 0.9239 -0.0067 0.3827 +vn -1.0000 -0.0067 0.0000 +vn 1.0000 -0.0067 -0.0000 +vn -0.9239 -0.0067 0.3827 +vn 0.9239 -0.0067 -0.3827 +vn -0.7071 -0.0067 0.7071 +vn 0.7071 -0.0067 -0.7071 +vn -0.3827 -0.0067 0.9239 +vn 0.3827 -0.0067 -0.9239 +vn -0.0000 -0.0067 1.0000 +vn -0.0000 -0.0067 -1.0000 +vn -0.0000 0.7208 0.6931 +vn -0.2652 0.7208 0.6403 +vn -0.2652 0.7208 -0.6403 +vn -0.0000 0.7208 -0.6931 +vn 0.2652 0.7208 -0.6403 +vn 0.2652 0.7208 0.6403 +vn -0.4901 0.7208 -0.4901 +vn -0.2652 0.7208 -0.6404 +vn 0.4901 0.7208 0.4901 +vn -0.6403 0.7208 -0.2652 +vn 0.6403 0.7208 0.2652 +vn -0.6931 0.7208 -0.0000 +vn 0.6931 0.7208 0.0000 +vn -0.6403 0.7208 0.2652 +vn 0.6403 0.7208 -0.2652 +vn -0.4901 0.7208 0.4901 +vn 0.4901 0.7208 -0.4901 +vn 0.5000 -0.7071 0.5000 +vn 0.6533 -0.7071 0.2706 +vn -0.3423 0.4472 -0.8263 +vn -0.6325 0.4472 -0.6325 +vn 0.0000 1.0000 0.0000 +vn -0.8263 0.4472 -0.3423 +vn -0.8944 0.4472 -0.0000 +vn -0.8263 0.4472 0.3423 +vn -0.6325 0.4472 0.6325 +vn -0.3423 0.4472 0.8263 +vn -0.0000 0.4472 0.8944 +vn 0.3423 0.4472 0.8263 +vn 0.6325 0.4472 0.6325 +vn 0.8263 0.4472 0.3423 +vn 0.8944 0.4472 0.0000 +vn 0.8263 0.4472 -0.3423 +vn 0.6325 0.4472 -0.6325 +vn 0.3423 0.4472 -0.8263 +vn -0.0000 0.4472 -0.8944 +vn 0.7071 -0.7071 0.0000 +vn 0.6533 -0.7071 -0.2706 +vn 0.5000 -0.7071 -0.5000 +vn 0.2706 -0.7071 -0.6533 +vn -0.0000 -0.7071 -0.7071 +vn -0.2706 -0.7071 -0.6533 +vn -0.5000 -0.7071 -0.5000 +vn -0.6533 -0.7071 -0.2706 +vn -0.7071 -0.7071 -0.0000 +vn -0.6533 -0.7071 0.2706 +vn -0.5000 -0.7071 0.5000 +vn -0.2706 -0.7071 0.6533 +vn -0.0000 -0.7071 0.7071 +vn 0.2706 -0.7071 0.6533 +vn -0.3827 0.0000 -0.9239 +vn -0.7071 0.0000 -0.7071 +vn 0.3827 0.0000 0.9239 +vn 0.7071 0.0000 0.7071 +vn -0.9239 0.0000 -0.3827 +vn 0.9239 0.0000 0.3827 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -0.9239 0.0000 0.3827 +vn 0.9239 0.0000 -0.3827 +vn -0.7071 0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn -0.3827 0.0000 0.9239 +vn 0.3827 0.0000 -0.9239 +vn -0.0000 0.0000 1.0000 +vn -0.0000 0.0000 -1.0000 +vn -0.7016 0.1240 0.7016 +vn -0.3797 0.1240 0.9167 +vn 0.7016 0.1240 -0.7016 +vn 0.3797 0.1240 -0.9167 +vn -0.0000 0.1240 0.9923 +vn -0.0000 0.1240 -0.9923 +vn -0.3797 0.1240 -0.9167 +vn 0.3797 0.1240 0.9167 +vn -0.7016 0.1240 -0.7016 +vn 0.7016 0.1240 0.7016 +vn -0.9167 0.1240 -0.3797 +vn 0.9167 0.1240 0.3797 +vn -0.9923 0.1240 -0.0000 +vn 0.9923 0.1240 0.0000 +vn -0.9167 0.1240 0.3797 +vn 0.9167 0.1240 -0.3797 +s off +f 109/1/1 126/2/1 110/3/1 +f 110/3/1 127/4/1 111/5/1 +f 127/6/1 112/7/1 111/5/1 +f 128/8/1 113/9/1 112/7/1 +f 129/10/1 98/11/1 113/9/1 +f 114/12/1 99/13/1 98/11/1 +f 115/14/1 100/15/1 99/13/1 +f 100/15/1 117/16/1 101/17/1 +f 117/18/1 102/19/1 101/17/1 +f 102/20/1 119/21/1 103/22/1 +f 103/22/1 120/23/1 104/24/1 +f 120/25/1 105/26/1 104/24/1 +f 121/27/1 106/28/1 105/26/1 +f 106/28/1 123/29/1 107/30/1 +f 123/31/1 108/32/1 107/30/1 +f 124/33/1 109/1/1 108/32/1 +f 132/34/1 144/35/1 140/36/1 +f 147/37/2 148/38/2 146/39/2 +f 151/40/3 147/37/3 150/41/3 +f 147/42/4 146/43/4 150/41/4 +f 148/44/1 149/45/1 151/40/1 +f 153/46/5 154/47/5 152/48/5 +f 157/49/6 153/46/6 156/50/6 +f 153/51/7 152/52/7 156/50/7 +f 154/53/1 155/54/1 157/49/1 +f 159/55/5 160/56/5 158/57/5 +f 163/58/6 159/55/6 162/59/6 +f 159/60/8 158/61/8 162/59/8 +f 160/62/1 161/63/1 163/58/1 +f 167/64/1 166/65/1 164/66/1 +f 168/67/9 169/68/9 165/69/9 +f 164/66/10 168/70/10 165/69/10 +f 168/70/11 167/71/11 169/72/11 +f 171/73/2 172/74/2 170/75/2 +f 175/76/3 171/73/3 174/77/3 +f 171/78/12 170/79/12 174/77/12 +f 172/80/1 173/81/1 175/76/1 +f 179/82/1 178/83/1 176/84/1 +f 180/85/13 181/86/13 177/87/13 +f 176/84/10 180/88/10 177/87/10 +f 180/88/11 179/89/11 181/90/11 +f 185/91/1 184/92/1 182/93/1 +f 186/94/14 187/95/14 183/96/14 +f 182/93/15 186/97/15 183/96/15 +f 186/97/16 185/98/16 187/99/16 +f 191/100/1 190/101/1 188/102/1 +f 192/103/17 193/104/17 189/105/17 +f 188/102/15 192/106/15 189/105/15 +f 192/106/16 191/107/16 193/108/16 +f 109/1/1 125/109/1 126/2/1 +f 110/3/1 126/110/1 127/4/1 +f 127/6/1 128/111/1 112/7/1 +f 128/8/1 129/112/1 113/9/1 +f 129/10/1 114/113/1 98/11/1 +f 114/12/1 115/114/1 99/13/1 +f 115/14/1 116/115/1 100/15/1 +f 100/15/1 116/116/1 117/16/1 +f 117/18/1 118/117/1 102/19/1 +f 102/20/1 118/118/1 119/21/1 +f 103/22/1 119/119/1 120/23/1 +f 120/25/1 121/120/1 105/26/1 +f 121/27/1 122/121/1 106/28/1 +f 106/28/1 122/122/1 123/29/1 +f 123/31/1 124/123/1 108/32/1 +f 124/33/1 125/124/1 109/1/1 +f 132/34/1 131/125/1 130/126/1 +f 130/126/1 145/127/1 144/35/1 +f 144/35/1 143/128/1 142/129/1 +f 142/129/1 141/130/1 140/36/1 +f 140/36/1 139/131/1 138/132/1 +f 138/132/1 137/133/1 136/134/1 +f 136/134/1 135/135/1 134/136/1 +f 134/136/1 133/137/1 136/134/1 +f 133/137/1 132/34/1 136/134/1 +f 132/34/1 130/126/1 144/35/1 +f 144/35/1 142/129/1 140/36/1 +f 140/36/1 138/132/1 132/34/1 +f 138/132/1 136/134/1 132/34/1 +f 147/37/2 149/45/2 148/38/2 +f 151/40/3 149/45/3 147/37/3 +f 153/46/5 155/54/5 154/47/5 +f 157/49/6 155/54/6 153/46/6 +f 159/55/5 161/63/5 160/56/5 +f 163/58/6 161/63/6 159/55/6 +f 164/66/10 166/65/10 168/70/10 +f 168/70/11 166/65/11 167/71/11 +f 171/73/2 173/81/2 172/74/2 +f 175/76/3 173/81/3 171/73/3 +f 176/84/10 178/83/10 180/88/10 +f 180/88/11 178/83/11 179/89/11 +f 182/93/15 184/92/15 186/97/15 +f 186/97/16 184/92/16 185/98/16 +f 188/102/15 190/101/15 192/106/15 +f 192/106/16 190/101/16 191/107/16 +s 1 +f 3/138/18 18/139/19 2/140/19 +f 11/141/20 26/142/21 10/143/21 +f 4/144/22 19/145/18 3/138/18 +f 12/146/23 27/147/20 11/141/20 +f 5/148/24 20/149/22 4/144/22 +f 13/150/25 28/151/23 12/146/23 +f 6/152/26 21/153/24 5/154/24 +f 14/155/27 29/156/25 13/150/25 +f 7/157/28 22/158/26 6/152/26 +f 15/159/29 30/160/27 14/155/27 +f 8/161/30 23/162/28 7/157/28 +f 16/163/31 31/164/29 15/159/29 +f 9/165/32 24/166/30 8/161/30 +f 2/140/19 17/167/33 1/168/33 +f 1/168/33 32/169/31 16/163/31 +f 10/143/21 25/170/32 9/165/32 +f 25/170/34 40/171/35 24/166/35 +f 18/139/36 33/172/37 17/167/37 +f 17/167/37 48/173/38 32/169/38 +f 26/142/39 41/174/34 25/170/34 +f 19/145/40 34/175/41 18/139/36 +f 27/147/42 42/176/39 26/142/39 +f 20/149/43 35/177/40 19/145/40 +f 27/147/42 44/178/44 43/179/42 +f 21/180/45 36/181/43 20/149/43 +f 29/156/46 44/182/44 28/151/44 +f 22/158/47 37/183/45 21/153/45 +f 29/156/46 46/184/48 45/185/46 +f 23/162/49 38/186/47 22/158/47 +f 31/164/50 46/187/48 30/160/48 +f 24/166/35 39/188/49 23/162/49 +f 32/169/38 47/189/50 31/164/50 +f 60/190/51 12/146/52 11/141/51 +f 34/175/53 35/191/54 49/192/55 +f 35/177/54 36/193/56 49/194/55 +f 36/181/56 37/195/57 49/196/55 +f 37/183/57 38/197/58 49/198/55 +f 38/186/58 39/199/59 49/200/55 +f 39/188/59 40/201/60 49/202/55 +f 40/171/60 41/203/61 49/204/55 +f 41/174/61 42/205/62 49/206/55 +f 42/176/62 43/207/63 49/208/55 +f 43/179/63 44/178/64 49/209/55 +f 44/182/64 45/210/65 49/211/55 +f 45/185/65 46/184/66 49/212/55 +f 46/187/66 47/213/67 49/214/55 +f 47/189/67 48/215/68 49/216/55 +f 48/173/68 33/217/69 49/218/55 +f 33/172/69 34/219/53 49/220/55 +f 61/221/52 13/150/70 12/146/52 +f 62/222/70 14/155/71 13/150/70 +f 63/223/71 15/159/72 14/155/71 +f 64/224/72 16/163/73 15/159/72 +f 16/163/73 50/225/74 1/168/74 +f 50/226/74 2/140/75 1/168/74 +f 51/227/75 3/138/76 2/140/75 +f 52/228/76 4/144/77 3/138/76 +f 53/229/77 5/148/78 4/144/77 +f 54/230/78 6/152/79 5/154/78 +f 55/231/79 7/157/80 6/152/79 +f 56/232/80 8/161/81 7/157/80 +f 57/233/81 9/165/82 8/161/81 +f 58/234/82 10/143/83 9/165/82 +f 59/235/83 11/141/51 10/143/83 +f 51/227/84 68/236/85 52/237/85 +f 59/235/86 76/238/87 60/239/87 +f 52/228/85 69/240/88 53/241/88 +f 60/190/87 77/242/89 61/243/89 +f 53/229/88 70/244/90 54/245/90 +f 61/221/89 78/246/91 62/247/91 +f 54/230/90 71/248/92 55/249/92 +f 62/222/91 79/250/93 63/251/93 +f 55/231/92 72/252/94 56/253/94 +f 63/223/93 80/254/95 64/255/95 +f 56/232/94 73/256/96 57/257/96 +f 64/224/95 81/258/97 65/259/97 +f 57/233/96 74/260/98 58/261/98 +f 50/226/99 67/262/84 51/263/84 +f 65/264/97 66/265/99 50/225/99 +f 58/234/98 75/266/86 59/267/86 +f 72/268/100 89/269/101 73/256/101 +f 80/270/102 97/271/103 81/258/103 +f 73/272/101 90/273/104 74/260/104 +f 66/274/105 83/275/106 67/262/106 +f 81/276/103 82/277/105 66/265/105 +f 75/266/107 90/273/104 91/278/107 +f 67/279/106 84/280/108 68/236/108 +f 75/281/107 92/282/109 76/238/109 +f 68/283/108 85/284/110 69/240/110 +f 76/285/109 93/286/111 77/242/111 +f 69/287/110 86/288/112 70/244/112 +f 77/289/111 94/290/113 78/246/113 +f 70/291/112 87/292/114 71/248/114 +f 78/293/113 95/294/115 79/250/115 +f 71/295/114 88/296/100 72/252/100 +f 79/297/115 96/298/102 80/254/102 +f 93/286/89 110/3/91 94/290/91 +f 86/299/90 103/22/92 87/292/92 +f 94/290/91 111/5/93 95/294/93 +f 87/292/92 104/24/94 88/296/94 +f 95/294/93 112/7/95 96/298/95 +f 88/296/94 105/26/96 89/269/96 +f 96/298/95 113/9/97 97/271/97 +f 89/269/96 106/28/98 90/273/98 +f 82/277/99 99/13/84 83/275/84 +f 97/271/97 98/11/99 82/277/99 +f 90/273/98 107/30/86 91/278/86 +f 83/275/84 100/15/85 84/280/85 +f 91/278/86 108/32/87 92/282/87 +f 84/280/85 101/17/88 85/284/88 +f 92/282/87 109/1/89 93/286/89 +f 85/284/88 102/19/90 86/288/90 +f 128/8/95 145/300/97 129/112/97 +f 121/27/96 138/301/98 122/121/98 +f 114/12/99 131/302/84 115/114/84 +f 129/10/97 130/303/99 114/113/99 +f 122/122/98 139/304/86 123/29/86 +f 115/14/84 132/305/85 116/115/85 +f 123/31/86 140/306/87 124/123/87 +f 116/116/85 133/307/88 117/16/88 +f 124/33/87 141/308/89 125/124/89 +f 117/18/88 134/309/90 118/117/90 +f 125/109/89 142/310/91 126/2/91 +f 118/118/90 135/311/92 119/21/92 +f 126/110/91 143/312/93 127/4/93 +f 119/119/92 136/313/94 120/23/94 +f 127/6/93 144/314/95 128/111/95 +f 120/25/94 137/315/96 121/120/96 +f 3/138/18 19/145/18 18/139/19 +f 11/141/20 27/147/20 26/142/21 +f 4/144/22 20/149/22 19/145/18 +f 12/146/23 28/151/23 27/147/20 +f 5/148/24 21/180/24 20/149/22 +f 13/150/25 29/156/25 28/151/23 +f 6/152/26 22/158/26 21/153/24 +f 14/155/27 30/160/27 29/156/25 +f 7/157/28 23/162/28 22/158/26 +f 15/159/29 31/164/29 30/160/27 +f 8/161/30 24/166/30 23/162/28 +f 16/163/31 32/169/31 31/164/29 +f 9/165/32 25/170/32 24/166/30 +f 2/140/19 18/139/19 17/167/33 +f 1/168/33 17/167/33 32/169/31 +f 10/143/21 26/142/21 25/170/32 +f 25/170/34 41/203/34 40/171/35 +f 18/139/36 34/219/41 33/172/37 +f 17/167/37 33/217/37 48/173/38 +f 26/142/39 42/205/39 41/174/34 +f 19/145/40 35/191/40 34/175/41 +f 27/147/42 43/207/42 42/176/39 +f 20/149/43 36/193/43 35/177/40 +f 27/147/42 28/151/44 44/178/44 +f 21/180/45 37/195/45 36/181/43 +f 29/156/46 45/210/46 44/182/44 +f 22/158/47 38/197/47 37/183/45 +f 29/156/46 30/160/48 46/184/48 +f 23/162/49 39/199/49 38/186/47 +f 31/164/50 47/213/50 46/187/48 +f 24/166/35 40/201/35 39/188/49 +f 32/169/38 48/215/38 47/189/50 +f 60/190/51 61/243/52 12/146/52 +f 61/221/52 62/247/70 13/150/70 +f 62/222/70 63/251/71 14/155/71 +f 63/223/71 64/255/72 15/159/72 +f 64/224/72 65/259/73 16/163/73 +f 16/163/73 65/264/73 50/225/74 +f 50/226/74 51/263/75 2/140/75 +f 51/227/75 52/237/76 3/138/76 +f 52/228/76 53/241/77 4/144/77 +f 53/229/77 54/245/78 5/148/78 +f 54/230/78 55/249/79 6/152/79 +f 55/231/79 56/253/80 7/157/80 +f 56/232/80 57/257/81 8/161/81 +f 57/233/81 58/261/82 9/165/82 +f 58/234/82 59/267/83 10/143/83 +f 59/235/83 60/239/51 11/141/51 +f 51/227/84 67/279/84 68/236/85 +f 59/235/86 75/281/86 76/238/87 +f 52/228/85 68/283/85 69/240/88 +f 60/190/87 76/285/87 77/242/89 +f 53/229/88 69/287/88 70/244/90 +f 61/221/89 77/289/89 78/246/91 +f 54/230/90 70/291/90 71/248/92 +f 62/222/91 78/293/91 79/250/93 +f 55/231/92 71/295/92 72/252/94 +f 63/223/93 79/297/93 80/254/95 +f 56/232/94 72/268/94 73/256/96 +f 64/224/95 80/270/95 81/258/97 +f 57/233/96 73/272/96 74/260/98 +f 50/226/99 66/274/99 67/262/84 +f 65/264/97 81/276/97 66/265/99 +f 58/234/98 74/316/98 75/266/86 +f 72/268/100 88/296/100 89/269/101 +f 80/270/102 96/298/102 97/271/103 +f 73/272/101 89/269/101 90/273/104 +f 66/274/105 82/277/105 83/275/106 +f 81/276/103 97/271/103 82/277/105 +f 75/266/107 74/316/104 90/273/104 +f 67/279/106 83/275/106 84/280/108 +f 75/281/107 91/278/107 92/282/109 +f 68/283/108 84/280/108 85/284/110 +f 76/285/109 92/282/109 93/286/111 +f 69/287/110 85/284/110 86/288/112 +f 77/289/111 93/286/111 94/290/113 +f 70/291/112 86/299/112 87/292/114 +f 78/293/113 94/290/113 95/294/115 +f 71/295/114 87/292/114 88/296/100 +f 79/297/115 95/294/115 96/298/102 +f 93/286/89 109/1/89 110/3/91 +f 86/299/90 102/20/90 103/22/92 +f 94/290/91 110/3/91 111/5/93 +f 87/292/92 103/22/92 104/24/94 +f 95/294/93 111/5/93 112/7/95 +f 88/296/94 104/24/94 105/26/96 +f 96/298/95 112/7/95 113/9/97 +f 89/269/96 105/26/96 106/28/98 +f 82/277/99 98/11/99 99/13/84 +f 97/271/97 113/9/97 98/11/99 +f 90/273/98 106/28/98 107/30/86 +f 83/275/84 99/13/84 100/15/85 +f 91/278/86 107/30/86 108/32/87 +f 84/280/85 100/15/85 101/17/88 +f 92/282/87 108/32/87 109/1/89 +f 85/284/88 101/17/88 102/19/90 +f 128/8/95 144/317/95 145/300/97 +f 121/27/96 137/318/96 138/301/98 +f 114/12/99 130/319/99 131/302/84 +f 129/10/97 145/320/97 130/303/99 +f 122/122/98 138/321/98 139/304/86 +f 115/14/84 131/322/84 132/305/85 +f 123/31/86 139/323/86 140/306/87 +f 116/116/85 132/324/85 133/307/88 +f 124/33/87 140/325/87 141/308/89 +f 117/18/88 133/326/88 134/309/90 +f 125/109/89 141/327/89 142/310/91 +f 118/118/90 134/328/90 135/311/92 +f 126/110/91 142/329/91 143/312/93 +f 119/119/92 135/330/92 136/313/94 +f 127/6/93 143/331/93 144/314/95 +f 120/25/94 136/332/94 137/315/96 diff --git a/src/main/resources/assets/hbm/textures/items/missile_buster.png b/src/main/resources/assets/hbm/textures/items/missile_buster.png index 40afe848bce05021c8dff4a0eacd8cdeab81bf86..2fff7c4a0d21a6c3959f0697a6a6c759e039a97a 100644 GIT binary patch delta 315 zcmV-B0mS~k0@nhNC4X~5NmK|32nc)#WQYI&0S-w-K~y-6t&&ZOgfJ9@Kbt;8HUZ6E zket8+WaAASFVfR@@*E<#4}u#P3huK=F9w66v_sF-CO^EYRJ}a-4?Ms>z<7Ys)}iv0O-070OuTaUGF%%2yNR&Ns>@i)s85o#5sr7`rzoa+r}8LwGJXuN&u|2 zD5bF01}C>Ofx51v_4PDO8HND>Aw&>aotz4+Xqtv)S&&jFuZpFgv={ZDaAOB zhr0XWW)lPOS~P2#ra=gS5Q2H0an6Oh%aJw4c%@Y6!`W9};%b=wgcm?;dr`Yzd*A>7 N002ovPDHLkV1fv&jw1j7 delta 290 zcmV+-0p0%B0=@!}C4Xl@O+f$vv5yPVH0`3BkC4X~5NmK|32nc)#WQYI&0VPR9K~y-6t&%Zo!ax{?pOnrWIyM{} z5tpDKLO=p3A!C1ln?J%oD1snDKn_~61jEs^P>@2p1($Saa~O;UY~Lxv_dfUBmxKRE z7=~3ChSfFQoBBgac@@YywvbW+ptYtb3Y1dTx#EezacWTX^nciCV*tzL($ZQ3pp*h& z=ne3r$wf#*aWop4;n{r3YxV}fbNm88Ssqv~HjPf>3Q8&K{^5?QQOIwx{X9ArL+L>B`}M18(j`MG9YPK0s-Jmb3qgc`p;uzDF8m=Z)dNWAdTn?5Jwrh i;ctwRXZms-+Z8?#Uc>uH>R|x@0000Ul2z~8md&t zp>W9oD5+9%ByN%$xI~l)Bow(o77`tDLuw19;BS*e%WgI-tDWk9OY=M)8U90BYtdTE zU%caXn9XJY0${C;-U2iRX&?ZyUawg$moGu%zQe=eKm!)7^?x8_)DG6#=yW;(uv)DE zm`p2=i__r6Oq>H|3EqVxF-z<$4{swx1IBn z@nE;xbv-0WLQz#!!wCSc*DH&~g6(z-!0~wGcDoJT_g%&qx!><%jFAw6gb+k)Enka# q2?-&HwN|XP^6Fpw2zlG|TYUg6nw9YFtP>mn0000-L1P>`6JSE84fTB2a0XP{^HrziP7P|Ye&7sn6_|E2v0d53ki=qU0FYrHs|lvQ`QUFY`U;$NlA=96zX UM+;|hgZ#_j>FVdQ&MBb@0N-3?761SM diff --git a/src/main/resources/assets/hbm/textures/items/missile_incendiary.png b/src/main/resources/assets/hbm/textures/items/missile_incendiary.png index d468e0133be4c04dbd7ba2172c3eda0b89edd703..d73c8b473420d6e6d815f448265d493d0f5bd45c 100644 GIT binary patch delta 386 zcmV-|0e$|v0-ghqC4X~5NmK|32nc)#WQYI&0aZyvK~y-6t&+VcVf8>GP@|BYscJGM3ijb{|cAc#1DxCG%9hi=#)Uc~FYZ-aS3@~h~X z&N-at_n!ATFZ_orvnZBXl)reR^F=IGz%mhlY)yx@1q2r@vwtYDQ~?0@z0J$vHI+(b zBPhJ=FkOA5TrQ)v-q= z2SD5jxq2tG5&*L-qKP8_rk}4w;u&N*!5j98CJvYm-WDKBL+Up2lD>Qfz`i*lypsgL z8}^CBGkC*3xqGV_WM#@)YcULC5#qaeBb&(HH>BPPE&YYLn$0G@@3VjL5abZqP2rC} zf;LtHdc7W{Qi)cp1wgX;gg3I+)%z)>l#It?QA&y9IN~^tSY}bWjr{gwKR0WwMQbga g=3*t}*QRat1qJGybG_n#0000007*qoM6N<$f+Vi7UjP6A delta 287 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 GjQT&8AP}^US?7bKZB(oO2RPj2_U_aL@n%0D3)Lt;fVN;=hLqNPPFG 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�apw@`&}O=HPHK5`HgZXPw0+s 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 N;19Jms?@Bb{s+EOd=vlx diff --git a/src/main/resources/assets/hbm/textures/models/missileHuge_HE.png b/src/main/resources/assets/hbm/textures/models/missileHuge_HE.png deleted file mode 100644 index 2e647789cc077d6f7ecdc2b6f1d73bb3cdd6f9eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9365 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 diff --git a/src/main/resources/assets/hbm/textures/models/missileHuge_IN.png b/src/main/resources/assets/hbm/textures/models/missileHuge_IN.png deleted file mode 100644 index 0cb6be630a4f4dc8eb2c05635335655ff6e3f5e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10260 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 diff --git a/src/main/resources/assets/hbm/textures/models/missileStrong_CL.png b/src/main/resources/assets/hbm/textures/models/missileStrong_CL.png deleted file mode 100644 index 0c86da9080106911b790a7a9e278dbfb4837b455..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9570 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 diff --git a/src/main/resources/assets/hbm/textures/models/missileStrong_EMP.png b/src/main/resources/assets/hbm/textures/models/missileStrong_EMP.png deleted file mode 100644 index a981e35a801d375a08427876e5572d649bd5fe5a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7748 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 diff --git a/src/main/resources/assets/hbm/textures/models/missileStrong_HE.png b/src/main/resources/assets/hbm/textures/models/missileStrong_HE.png deleted file mode 100644 index fb7624aa17592d7335122e6c1cc689bd52d7996a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9579 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 M>KY@fwb7CP2j16v+W-In diff --git a/src/main/resources/assets/hbm/textures/models/missileV2_BU.png b/src/main/resources/assets/hbm/textures/models/missileV2_BU.png deleted file mode 100644 index 48a2bcda9b800a3983515e8847e7e7f16b0a6a98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7728 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 diff --git a/src/main/resources/assets/hbm/textures/models/missileV2_CL.png b/src/main/resources/assets/hbm/textures/models/missileV2_CL.png deleted file mode 100644 index f373109a4c5be41990b736c63fb3683956532633..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7442 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 diff --git a/src/main/resources/assets/hbm/textures/models/missileV2_HE.png b/src/main/resources/assets/hbm/textures/models/missileV2_HE.png deleted file mode 100644 index bf8e01d1827bbf0b49020ef8cea29ec41fdd78b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7412 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 W05m1%Smo^+lSp6NM5{`}A?AO|36Y$53>YxF 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/missile_huge_bu.png b/src/main/resources/assets/hbm/textures/models/missile_huge_bu.png new file mode 100644 index 0000000000000000000000000000000000000000..fdc91812e72143fdf52326a91fb5c3ca6298b52d GIT binary patch literal 2255 zcmdT`eKZqn8{bBmO)xuM3$=b6>yv+~+>mb5_2 zfT%+N0Kg7syaPdoEZG?XZ~jcCCe(`sr&(aaWa8TSoI_SI6v!1g&hMRHNapN zoeog^A0bu9RMr|JNjoJ|klAuS<9uNvHtZvPWw1Kiof1gP3Z76V|2RBbN`R&avMd`{ z2zCe5|J_gJ$-&!YBjt%8AW#JcLjr+12@SQC6eSP{jYQ%=KcSF+XCUM$bJyn_3bwKx z+&`cfR`;G&*0TOx=o%FrdDsP8gTviX(=T~6%qF;09*WW{m>6{*t@fFjo30p(ZV_1S z?`{0e4yW`*^*-VjG|v9Xhy5RL_r9>r9lcI{Q#9|Y8@rT6xH{bJutf@QTn#(c5azF2 zfm7<&tC~-0I9)Oy8<2MX=?g(*i=dLto|&g~&!lx_b=93<>T1#Dwy0O4>O)oWf}XL9 z<}1$-X$Vij%O?lbX*9v2!#0%^!<>c;65P=c<&9Rqo{!P=z4tN!0)LoMRpq{J_Ehjo zcXPm^INYbImDU_7x%Ey>AEs*l=#M8J4&Qoe+3csFhXM}|4~1^i$tf=es@T9&>tw6( z$&8f9WB4HRih#u(O#q-H57Eyu?^#({so2e*a<{;`!J;)PT&-f8Jv2hWFxa8j4Xl7& zZ|=;Tj}|stjLql82DVLH=5YAS^^9CBrFtDV)JZD!WDo}<&rOHavonKTDRb{fM#-~h zJ!%i$zO9csRmgvF3MoMgT1~62*6ZcooL`CH!I%V?XQY3#SeH^PZlG6F>}+Zkp{gl} z#NMF&MM=dBx_l6{r`o0{S$0(+>pwlrPdw|GjPge>H4eo3pWJt_-gX81 zp!}RUruWLC@>P?}T@RJdwNzvaAx>2fDh_7MFIo-3%b)kX;NP*FAp}h%ctvN zr;~vy)$)f&G*a((dO88ne(&bz4J-HX*dSmGNBtG2*8f5lUvKm3I885-7#I0V|Iu^t zBYs81(}kAIWas28I^Bw>h>taPirui`sIVfTEX{W1YI*s|P8Zx;L)`zz>)H@7aZM*t z$^e<5;}`5_9_0u190AruG@-2HeTnr9y48cnn__IVQk~Oxg)L78AXO+Q(vkpL?6!f> zUx!80ExV5aR4Q%Wg8nvm&amJm`P=58XhA32N$47BsviI zS_s5F_|h$z{v1w939DT)u}}L|7+=NaTTjmQO^U@`o@m_R6V=jZR?m{8$?1Z<%vOkInY_~0Q0jci5QXg*l$C0VEk4smJym6ITUoopImNtzW z0rbC`;MTwIdraCi>fnOrXQ?+XNt*#sIW#$t@$Fx~rt>P}7j$mylnQF2E_D8oPF|Rb z7t*x8be8V~d>J(%5)0$v()$c)d-|c!=e2#}AfZRhvAwM(I1rO+VRVb`y6GbI)wX)` z>BT;fk<=R>d-GW)mD;I8^TzMVo*M4g^czwvo4at5mnU-I8kk`wnX6nB*K~_%D-HD| zfqxcSOm<8P+dR&O{Y{wM-RhCBa((%~nL}}{Y1#Vlxrp>4U+?ig>U!UNkdag&P7}OX z*4syGJ?kr&Z&+D~ybPVN%CX#5Ii=-~%TqX1j!fQY{$M}NlT*n!^DcA!igwn9fZbn$ zFc-G@bv=G}{_>vX^1cAsK zS{kXl5-MZP*>DTnJ0rB}Ga#xV8Qqqkj5C{FhHf(xN^nB&_;Zs|knKIb7?OM6a#G6; zcf6*+bX;-Do-NG|Zt_k3dd9;6Eea>8ot;gU8KYQ3dAn(haWynm=Y|_vqznym`017o zBsuU7E5{alXV*^)$t9A51I<-juHn&>%^gDu@x&*nCY z{XA`+n66`xLG{frg`1rYH$;A-%l*$S0uR@RA3+;)l;fv`!k3VD^3c%UX-J!;w GobXSZR}Yf_ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/missile_huge_cl.png b/src/main/resources/assets/hbm/textures/models/missile_huge_cl.png new file mode 100644 index 0000000000000000000000000000000000000000..9047f2918b1d80f8421228ff4dc2663491c717fc GIT binary patch literal 2211 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/missile_strong_bu.png b/src/main/resources/assets/hbm/textures/models/missile_strong_bu.png new file mode 100644 index 0000000000000000000000000000000000000000..e2521a6509e593b348d0a40371f18b4ff3c53689 GIT binary patch literal 943 zcmV;g15o^lP)pW00004b3#c}2nYxW zd zuYw43^X6H48tipMWG?Q-4oU2EVwX-&Pt^x9{+W)3-&7}+M1%2oe1;1zFE0T#4M;?* z)zS*6X)J6Y647qAwE}7yi}?HYCdGFEpr)~ecX$obh~4R=6;RVy#82aGgfNO6Am%%ZB;sHo5-YQ@O+8;H*?O zqBXt#t#B%bgi|>r+yjwlqp*2HrKYQJ6~fds7U4>HzPiT3yK+d_KqPD+5@F8Vsp&Y5 zZ`zeytybE|eKilHrd3RHd`Lfy*q*Cg z=$t5uj;4Qvw^yG5w@Ob63k{Z()Yl!z2q#*q>;IaW;pXaumqn2>EZ+0 z@u?{bPan7kB4GoOkPl&iY8gll_dvKkA68)lFH|*=d?un!RjQa60@R-g)U7clawei= zBI=ybdo{-ACH`D_nPkYdWF}K-xppkmzp+>Gck?i<82Bq^YUv{6Zv;z zESM)2Y(E{!zg%=d?R`bZJ<>FlCaS%V=YdGXdcBs8ZZ?}>G#Z_$X^er~1Cg+S7u1op zXuwd*v{Cr6&1x>bKiJJZP{EdMlwHF;&>%O+HpW00004b3#c}2nYxW zdJXtQ60W}RsM5R*E8mMV3Y#1YkqG?t*24h(xP}_xruGL$lem{;%x)^B`uknH<`Cy&kk$EdT)6?RN6Hsb{m9 z_9A8Pk0G?pi_FxvrFz->W094}X0y@$QLEK5HGqEdW$&MtFzwBK$U6D5^~Vs}-h8*) zS+&o}m!&@z>tce>cSzPJU-tgKyp(e4$YsO)bj#fTD83RXT4PM)N<^td)H$K|YK+gN z5LAewNSYYO@x#YN^1l-a!`E^2ok%3VpnAXGQ`>z_B)_0)Gtf7kW&Hl8sYMYw4WH3j z8d&sHqG)ZyWg<^wJbs)5zzeFmajh4!feu`&(rh3SHqZg5FcMDTFT(~p;1ou}Dg0&F zKnI+{NH~SR3>)ZxQy2-S@Rwl&9dHUGaiuW%tF!n5%YtD8k&sW}?p z(<(2%H|*vJRIpVWS;ue$8YBk!mU3*M1)pdH00pW00004b3#c}2nYxW zdOV^{65fxRMG*mnTR6Grh zpMZiQN<)DxS%d;va1x0k8REz%BLyQP9gXkUU7v5y9-E7q?K4FFTo;z4cnH zR!md6-L5B16BAXfR*eB^nhOkMqH498F(6HIQQ`S3P41I4&85Qr4Z=~sex4cw(li(E z=-^?R*6%+4C{DXA%12$lW@aU6nu~Y)Q9J#Md^_9~r`;Ciqb^^$X$(lyT#$vCz(6K2 zkO}HQChGV2t1%!=bMdx!c4POn|CjwYZB{9xwzjUWYAqsBdp?oG_xn$XWgt2cCNPi*3}k{N!b~D+Z~Nt{ma>t& z?(x2_&c63ovl5}8m1BZdjtO=k6Qhi=&&H(bWta(JX`0K-X^b?@1)T^J7{~+$GMVW_ zr0F0C7CH;)bUH@no~Z++X&u{~B6vGbpNT$=IXyni94~67_=if9AIItED2me0dT8gF zSs@}iISP$IX*!|NXrwQlAPC~*Wq(HzmER4Nt+UWg)OV(hxA**o=>LKJFYo96EQ+Gk z$izfDoKXknV25%R>L0A*LX#JsMZgYZ0t1Msg{=xbsOD}4o_^Tb0$=S@< zA|{GIQ0;36syanYOzXglR9cjwvnZ0CQv=H`CCb+GaG8iQCg(s^2M4N4;yN#cfeu`! z(lC$-40M1HW`Yo2GceErLYN6cc+J2-2MA#%2;nsY105iQnIMGM3=DLD5N6^EVez-K zaKW-K~i9tnMIT$#HBD;}@ fsFFA>^_|NfH?WtwRk=-a00000NkvXXu0mjf6~mc1 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/missile_strong_inc.png b/src/main/resources/assets/hbm/textures/models/missile_strong_inc.png new file mode 100644 index 0000000000000000000000000000000000000000..c9a5364434411da2b222e1168f4e9bf2773b936c GIT binary patch literal 860 zcmV-i1Ec(jP)pW00004b3#c}2nYxW zd(P}w9k!?%tsYwHN-1#~M8ALh&XTW`G>xMB{k}6GO`~uX2BCoRxUsOX%DB`ugV$-H1#$1JN0HZz$bB43h_b{r27Y zK$>ofG0+cXX}T%V^3x;HY0Smb&rlk}QVxXAKoC9yLHG;=pMm&_ECx2y#$~NYiPW9#zUtr&DL;KF9;5X&c|1 zIz(SSJ`mkZxO_V-9ItDp_)Voaj?Me^dTrj@pOy2r65@@Pi^$CxO-p;|^=6L~_lf;y`+PpAe6naDJzqM>TThH67X{X!ZT zAk>wnfgm(607DprA$($JU;u_N2t)Y9(7*r;VGxG!iJ^f37{VY7;S)mx12BX^LLn^v zbQTX-whRpf5g)><)#|A0lO%CA;kYjhVrF35`?76opY3+*=)qu6c%Art;U|~B9PJzD z;~UB2ZR*Ut3z?T+W1Gn1ZR&2}=wh*O^l(`GZ?Qbyw#S}*zIpjrZlXO4nFoUC=daI< zqx1PZN|Gd#rV#@<13_ru9(!diS}^P}XB9r}ZQWkVR$U*?K#Q_!qv{&YK#$y@x}_Wq mETPV9R7$B%?zGguD8B*Z!iIZIciag80000 Date: Sun, 26 Nov 2023 19:59:21 +0100 Subject: [PATCH 396/432] Merge pull request #1254 from Doctor17-git/master Updated ru_RU.lang --- src/main/resources/assets/hbm/lang/ru_RU.lang | 27 +++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/src/main/resources/assets/hbm/lang/ru_RU.lang b/src/main/resources/assets/hbm/lang/ru_RU.lang index c62064d38..aebcd3533 100644 --- a/src/main/resources/assets/hbm/lang/ru_RU.lang +++ b/src/main/resources/assets/hbm/lang/ru_RU.lang @@ -1434,10 +1434,29 @@ hadron.noresult_wrong_mode=Неверный режим! hadron.stats=Предыдущие результаты: hadron.stats_coord=Ошибка: %s / %s / %s hadron.stats_momentum=Ускорение: %s + radar.detectMissiles=Обнаружение ракет radar.detectPlayers=Обнаружение игроков radar.smartMode=Умный режим$Выход редстоуна игнорирует восходящие ракеты radar.redMode=Режим красного камня$Включён: Сигнал редстоуна базируется на дальности$Выключен: Сигнал редстоуна базируется на уровне +radar.clearMap=Очистить карту +radar.detectShells=Обнаружение снарядов +radar.showMap=Показать карту +radar.toggleGui=Переключить интерфейс + +radar.target.abm=Антибаллистическая ракета +radar.target.custom10=Ракета 10 размера +radar.target.custom1015=Ракета 10/15 размера +radar.target.custom15=Ракета 15 размера +radar.target.custom1520=Ракета 15/20 размера +radar.target.custom20=Ракета 20 размера +radar.target.doomsday=Ракета судного дня +radar.target.shuttle=Космический шаттл Reliant Robin +radar.target.tier0=Ракета 0-го уровня +radar.target.tier1=Ракета 1-го уровня +radar.target.tier2=Ракета 2-го уровня +radar.target.tier3=Ракета 3-го уровня +radar.target.tier4=Ракета 4-го уровня chem.TEST=Тест chem.FP_HEAVYOIL=Переработка тяжелой нефти @@ -2585,6 +2604,8 @@ item.ingot_gh336.name=Слиток гиорсия-336 item.ingot_gh336.desc=Коллега Сиборгиума. item.niter.name=Селитра +item.nitra.name=Нитра +item.nitra_small.name=Кучка нитры item.ingot_copper.name=Слиток промышленной меди item.ingot_red_copper.name=Слиток красной меди item.ingot_tungsten.name=Вольфрамовый слиток @@ -2696,6 +2717,7 @@ item.plate_paa.name=Пластина сплава PaA item.ingot_dura_steel.name=Высокоскоростная сталь item.ingot_polymer.name=Полимер item.ingot_rubber.name=Резина +item.ingot_biorubber.name=Брусок латекса item.ingot_polonium.name=Слиток полония-210 item.bolt_dura_steel.name=Высокоскоростной стальной стержень item.pipes_steel.name=Стальные трубы @@ -3142,7 +3164,7 @@ item.ore.malachite=Малахитовая item.ore.niobium=Ниобиевая item.ore.titanium=Титановая item.ore.tungsten=Вольфрамовая -item.ore.thorium=Ториевая +item.ore.thorium232=Ториевая item.ore.uranium=Урановая item.ore_bedrock.name=%s бедроковая руда item.ore_centrifuged.name=Центрифугированная %s бедроковая руда @@ -4602,6 +4624,7 @@ item.ball_dynamite.name=Динамит item.ball_tnt.name=ТНТ item.ball_tatb.name=TATB item.ball_fireclay.name=Шамотная глина +item.ball_resin.name=Латекс item.plate_kevlar.name=Кевларо-керамический состав item.weaponized_starblaster_cell.name=§cСмонтированная энергетическая ячейка Звездного бластера§r @@ -4892,7 +4915,7 @@ item.designator_arty_range.name=Артиллерийский целеуказа item.missile_assembly.name=Сборка малой ракеты item.assembly_nuke.name=Оболочка ядерного минизаряда item.missile_generic.name=Фугасная ракета -item.missile_anti_ballistic.name=Антибаллистическая ракета (WIP) +item.missile_anti_ballistic.name=Антибаллистическая ракета item.missile_incendiary.name=Зажигательная ракета item.missile_cluster.name=Кластерная ракета item.missile_buster.name=Противобункерная ракета From cb0557170cc4e885ae56d38a2f1b9de9f24ac0bd Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 26 Nov 2023 20:56:09 +0100 Subject: [PATCH 397/432] small fix --- src/main/java/com/hbm/items/tool/WeaponSpecial.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/hbm/items/tool/WeaponSpecial.java b/src/main/java/com/hbm/items/tool/WeaponSpecial.java index 7d8f177dc..c59daa016 100644 --- a/src/main/java/com/hbm/items/tool/WeaponSpecial.java +++ b/src/main/java/com/hbm/items/tool/WeaponSpecial.java @@ -23,6 +23,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.item.ItemSword; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.Vec3; import net.minecraft.world.World; From 0f082285cfb9de776f7c99acf1fff977e9ff9a04 Mon Sep 17 00:00:00 2001 From: KoblizekXD Date: Thu, 23 Nov 2023 15:28:03 +0100 Subject: [PATCH 398/432] feat: add secure access doors from 1.12.2 fork --- src/main/java/com/hbm/blocks/ModBlocks.java | 3 + .../java/com/hbm/main/ResourceManager.java | 5 + .../hbm/render/item/ItemRenderLibrary.java | 12 + .../java/com/hbm/tileentity/DoorDecl.java | 101 + .../hbm/models/doors/secure_access_door.obj | 4364 +++++++++++++++++ src/main/resources/assets/hbm/sounds.json | 5 +- .../hbm/sounds/block/door/garage_move.ogg | Bin 0 -> 12368 bytes .../hbm/sounds/block/door/garage_stop.ogg | Bin 0 -> 9252 bytes .../models/doors/secure_access_door.png | Bin 0 -> 123860 bytes 9 files changed, 4489 insertions(+), 1 deletion(-) create mode 100644 src/main/resources/assets/hbm/models/doors/secure_access_door.obj create mode 100644 src/main/resources/assets/hbm/sounds/block/door/garage_move.ogg create mode 100644 src/main/resources/assets/hbm/sounds/block/door/garage_stop.ogg create mode 100644 src/main/resources/assets/hbm/textures/models/doors/secure_access_door.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index cbc8adbd4..42c1948df 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -606,6 +606,7 @@ public class ModBlocks { public static Block sliding_blast_door; public static Block fire_door; public static Block transition_seal; + public static Block secure_access_door; public static Block door_metal; public static Block door_office; @@ -2142,6 +2143,7 @@ public class ModBlocks { fire_door = new BlockDoorGeneric(Material.iron, DoorDecl.FIRE_DOOR).setBlockName("fire_door").setHardness(10.0F).setResistance(10000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fire_door"); transition_seal = new BlockDoorGeneric(Material.iron, DoorDecl.TRANSITION_SEAL).setBlockName("transition_seal").setHardness(10.0F).setResistance(10000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":transition_seal"); + secure_access_door = new BlockDoorGeneric(Material.iron, DoorDecl.SECURE_ACCESS_DOOR).setBlockName("secure_access_door").setHardness(200.0F).setResistance(20000.0F).setCreativeTab(MainRegistry.machineTab); door_metal = new BlockModDoor(Material.iron).setBlockName("door_metal").setHardness(5.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":door_metal"); door_office = new BlockModDoor(Material.iron).setBlockName("door_office").setHardness(10.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":door_office"); @@ -3075,6 +3077,7 @@ public class ModBlocks { GameRegistry.registerBlock(door_metal, door_metal.getUnlocalizedName()); GameRegistry.registerBlock(door_office, door_office.getUnlocalizedName()); GameRegistry.registerBlock(door_bunker, door_bunker.getUnlocalizedName()); + GameRegistry.registerBlock(secure_access_door, secure_access_door.getUnlocalizedName()); //Crates register(crate_iron); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index f585c1a71..53c2ca946 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -318,6 +318,11 @@ public class ResourceManager { public static AnimatedModel transition_seal; public static Animation transition_seal_anim; public static final WavefrontObjDisplayList fire_door = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/fire_door.obj")).asDisplayList(); + + //Secure Access Door + public static final ResourceLocation secure_access_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/secure_access_door.png"); + public static WavefrontObjDisplayList secure_access_door = new WavefrontObjDisplayList(new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/secure_access_door.obj"))); + //Lantern public static final IModelCustom lantern = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/trinkets/lantern.obj")); diff --git a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java index 2e2820245..c9fb21d52 100644 --- a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java +++ b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java @@ -727,6 +727,18 @@ public class ItemRenderLibrary { bindTexture(ResourceManager.vault_cog_tex); ResourceManager.vault_cog.renderAll(); bindTexture(ResourceManager.vault_label_101_tex); ResourceManager.vault_label.renderAll(); }}); + renderers.put(Item.getItemFromBlock(ModBlocks.secure_access_door), new ItemRenderBase(){ + public void renderInventory() { + GL11.glTranslated(0, -4, 0); + GL11.glScaled(2.4, 2.4, 2.4); + } + public void renderCommon() { + bindTexture(ResourceManager.secure_access_door_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.secure_access_door.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } + }); renderers.put(Item.getItemFromBlock(ModBlocks.blast_door), new ItemRenderBase() { public void renderInventory() { diff --git a/src/main/java/com/hbm/tileentity/DoorDecl.java b/src/main/java/com/hbm/tileentity/DoorDecl.java index b7683d828..d6469e346 100644 --- a/src/main/java/com/hbm/tileentity/DoorDecl.java +++ b/src/main/java/com/hbm/tileentity/DoorDecl.java @@ -4,11 +4,13 @@ import com.hbm.animloader.AnimatedModel; import com.hbm.animloader.Animation; import com.hbm.main.ResourceManager; import com.hbm.render.loader.WavefrontObjDisplayList; +import com.hbm.sound.MovingSoundPlayerLoop; import com.hbm.util.BobMathUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.sound.SoundEvent; import org.lwjgl.opengl.GL11; public abstract class DoorDecl { @@ -287,6 +289,105 @@ public abstract class DoorDecl { } }; + public static final DoorDecl SECURE_ACCESS_DOOR = new DoorDecl(){ + + @Override + public String getCloseSoundLoop() { + return "hbm:door.garage_move"; + } + + @Override + public String getCloseSoundEnd() { + return "hbm:door.garage_stop"; + } + + @Override + public String getOpenSoundEnd() { + return "hbm:door.garage_stop"; + } + + @Override + public String getOpenSoundLoop() { + return "hbm:door.garage_move"; + } + + @Override + public float getSoundVolume(){ + return 2; + } + + @Override + @SideOnly(Side.CLIENT) + public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { + if(!partName.equals("base")){ + set(trans, 0, 3.5F*getNormTime(openTicks), 0); + } else { + super.getTranslation(partName, openTicks, child, trans); + } + }; + + @Override + @SideOnly(Side.CLIENT) + public void doOffsetTransform() { + GL11.glRotated(90, 0, 1, 0); + }; + + @Override + @SideOnly(Side.CLIENT) + public double[][] getClippingPlanes() { + return new double[][]{{0, -1, 0, 5}}; + }; + + @Override + public int timeToOpen() { + return 120; + }; + + @Override + public int[][] getDoorOpenRanges(){ + return new int[][]{{-2, 1, 0, 4, 5, 1}}; + } + + @Override + public int[] getDimensions(){ + return new int[]{4, 0, 0, 0, 2, 2}; + } + + @Override + public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { + if(!open){ + if(y > 0){ + return AxisAlignedBB.getBoundingBox(0, 0, 0.375, 1, 1, 0.625); + } + return AxisAlignedBB.getBoundingBox(0, 0, 0, 1, 1, 1); + } + if(y == 1) { + return AxisAlignedBB.getBoundingBox(0, 0, 0, 1, 0.0625, 1); + } else if(y == 4){ + return AxisAlignedBB.getBoundingBox(0, 0.5, 0.15, 1, 1, 0.85); + } else { + return super.getBlockBound(x, y, z, open); + } + } + + @Override + @SideOnly(Side.CLIENT) + public ResourceLocation getTextureForPart(String partName){ + return ResourceManager.secure_access_door_tex; + } + + @Override + public ResourceLocation getTextureForPart(int skinIndex, String partName) { + return ResourceManager.secure_access_door_tex; + } + + @Override + @SideOnly(Side.CLIENT) + public WavefrontObjDisplayList getModel(){ + return ResourceManager.secure_access_door; + } + }; + //Format: x, y, z, tangent amount 1 (how long the door would be if it moved up), tangent amount 2 (door places blocks in this direction), axis (0-x, 1-y, 2-z) public abstract int[][] getDoorOpenRanges(); diff --git a/src/main/resources/assets/hbm/models/doors/secure_access_door.obj b/src/main/resources/assets/hbm/models/doors/secure_access_door.obj new file mode 100644 index 000000000..24c2c95b6 --- /dev/null +++ b/src/main/resources/assets/hbm/models/doors/secure_access_door.obj @@ -0,0 +1,4364 @@ +# Blender v2.92.0 OBJ File: 'secure_access_door.blend' +# www.blender.org +o door +v -2.340313 1.159684 0.125000 +v 2.340313 1.159684 0.125000 +v -2.500000 0.999997 0.125000 +v -2.500000 4.499997 0.125000 +v 2.500000 4.499997 0.125000 +v 2.500000 0.999997 0.125000 +v -2.340313 1.159684 0.045951 +v 2.340313 1.159684 0.045951 +v -2.340313 4.119773 0.125000 +v -2.119776 4.340310 0.125000 +v -2.496256 4.496253 0.125000 +v 2.119776 4.340310 0.125000 +v 2.340313 4.119773 0.125000 +v 2.496256 4.496253 0.125000 +v -2.119776 4.340310 0.045951 +v -2.340313 4.119773 0.045951 +v 2.340313 4.119773 0.045951 +v 2.119776 4.340310 0.045951 +v -2.500000 4.119773 0.125000 +v 2.500000 4.119773 0.125000 +v 2.500000 3.579181 0.125000 +v 2.500000 3.423868 0.125000 +v 2.500000 2.800531 0.125000 +v 2.500000 2.642630 0.125000 +v 2.500000 2.022151 0.125000 +v 2.500000 1.861122 0.125000 +v -2.340313 3.455513 0.125000 +v -2.340313 3.610826 0.125000 +v -2.340313 2.714197 0.125000 +v -2.340313 2.872098 0.125000 +v -2.340313 1.972611 0.125000 +v -2.340313 2.133640 0.125000 +v -2.340313 2.133400 0.045951 +v -2.340313 1.972851 0.045951 +v -2.340313 2.871974 0.045951 +v -2.340313 2.714321 0.045951 +v -2.340313 3.610798 0.045951 +v -2.340313 3.455542 0.045951 +v 2.340313 2.133640 0.125000 +v 2.340313 1.972611 0.125000 +v 2.340313 2.872098 0.125000 +v 2.340313 2.714197 0.125000 +v 2.340313 3.610826 0.125000 +v 2.340313 3.455513 0.125000 +v 2.340313 3.455542 0.045951 +v 2.340313 3.610798 0.045951 +v 2.340313 2.714321 0.045951 +v 2.340313 2.871974 0.045951 +v 2.340313 1.972851 0.045951 +v 2.340313 2.133400 0.045951 +v -2.500000 1.861122 0.125000 +v -2.500000 2.022151 0.125000 +v -2.500000 2.642630 0.125000 +v -2.500000 2.800531 0.125000 +v -2.500000 3.423868 0.125000 +v -2.500000 3.579181 0.125000 +v -2.340313 3.455542 0.072230 +v -2.340313 3.483067 0.099755 +v -2.340313 3.583273 0.099755 +v -2.340313 3.610798 0.072230 +v 2.340313 3.610798 0.072230 +v 2.340313 3.583273 0.099755 +v 2.340313 3.483067 0.099755 +v 2.340313 3.455542 0.072230 +v -2.340313 2.714321 0.072230 +v -2.340313 2.741846 0.099755 +v -2.340313 2.844450 0.099755 +v -2.340313 2.871974 0.072230 +v 2.340313 2.871974 0.072230 +v 2.340313 2.844450 0.099755 +v 2.340313 2.741846 0.099755 +v 2.340313 2.714321 0.072230 +v -2.340313 1.972851 0.072230 +v -2.340313 2.000376 0.099755 +v -2.340313 2.105875 0.099755 +v -2.340313 2.133400 0.072230 +v 2.340313 2.133400 0.072230 +v 2.340313 2.105875 0.099755 +v 2.340313 2.000376 0.099755 +v 2.340313 1.972851 0.072230 +v -1.212864 2.208840 0.074562 +v -1.212864 2.619229 0.074562 +v -1.243111 2.178593 0.033562 +v -1.243111 2.649477 0.033562 +v -0.802475 2.208840 0.074562 +v -0.802475 2.619229 0.074562 +v -0.772228 2.178593 0.033562 +v -0.772228 2.649477 0.033562 +v -1.243111 2.178593 0.074562 +v -1.243111 2.649477 0.074562 +v -0.772228 2.649477 0.074562 +v -0.772228 2.178593 0.074562 +v -1.212864 2.208840 0.054611 +v -1.212864 2.619229 0.054611 +v -0.802475 2.619229 0.054611 +v -0.802475 2.208840 0.054611 +v -0.204356 2.301647 0.091702 +v -0.204356 2.301647 0.020851 +v -0.204356 2.466216 0.020851 +v 0.204356 2.301647 0.091702 +v 0.204356 2.301647 0.020851 +v 0.204356 2.466216 0.020851 +v -0.204356 2.395251 0.091702 +v -0.204356 2.466216 0.055863 +v -0.204356 2.445431 0.081205 +v 0.204356 2.466216 0.055863 +v 0.204356 2.395251 0.091702 +v 0.204356 2.445431 0.081205 +v -2.500240 1.249014 0.129405 +v -2.500100 1.217400 0.147657 +v -2.499822 1.217400 0.184161 +v -2.499682 1.249014 0.202413 +v -2.499822 1.280628 0.184161 +v -2.500101 1.280628 0.147657 +v -1.553283 1.291650 0.190060 +v -2.111814 1.291690 0.190126 +v -2.112233 1.249014 0.116279 +v -1.553702 1.249014 0.116145 +v -1.553562 1.291690 0.140806 +v -2.112093 1.291650 0.140872 +v -1.546745 1.249014 0.128878 +v -2.119190 1.249014 0.129046 +v -2.119050 1.217400 0.147298 +v -1.546605 1.217400 0.147130 +v -2.118771 1.217400 0.183802 +v -1.546326 1.217400 0.183635 +v -2.118632 1.249014 0.202055 +v -1.546187 1.249014 0.201887 +v -2.118772 1.280628 0.183802 +v -1.546326 1.280628 0.183635 +v -2.119050 1.280628 0.147298 +v -1.546605 1.280628 0.147130 +v -2.111675 1.249014 0.214788 +v -1.553144 1.249014 0.214653 +v -2.111814 1.206339 0.190126 +v -1.553283 1.206378 0.190060 +v -2.112093 1.206378 0.140872 +v -1.553562 1.206339 0.140806 +v -2.111814 1.206378 0.083217 +v -2.111814 1.617254 0.083217 +v -2.111814 1.206378 0.043381 +v -2.111814 1.617254 0.043381 +v -1.553562 1.206378 0.083217 +v -1.553562 1.617254 0.083217 +v -1.553562 1.206378 0.043381 +v -1.553563 1.617254 0.043381 +v -2.111814 1.291650 0.083217 +v -2.111814 1.291650 0.043381 +v -1.553562 1.291650 0.043381 +v -1.553562 1.291650 0.083217 +v -2.111814 1.249014 0.043381 +v -2.111814 1.249014 0.083217 +v -1.553562 1.249014 0.043381 +v -1.553562 1.249014 0.083217 +v 2.500240 1.249014 0.129405 +v 2.500100 1.217400 0.147657 +v 2.499822 1.217400 0.184161 +v 2.499682 1.249014 0.202413 +v 2.499822 1.280628 0.184161 +v 2.500100 1.280628 0.147657 +v 1.553283 1.291650 0.190060 +v 2.111814 1.291690 0.190126 +v 2.112233 1.249014 0.116279 +v 1.553702 1.249014 0.116145 +v 1.553562 1.291690 0.140806 +v 2.112094 1.291650 0.140872 +v 1.546745 1.249014 0.128878 +v 2.119189 1.249014 0.129046 +v 2.119050 1.217400 0.147298 +v 1.546605 1.217400 0.147130 +v 2.118771 1.217400 0.183802 +v 1.546326 1.217400 0.183635 +v 2.118632 1.249014 0.202055 +v 1.546187 1.249014 0.201887 +v 2.118772 1.280628 0.183802 +v 1.546326 1.280628 0.183635 +v 2.119050 1.280628 0.147298 +v 1.546605 1.280628 0.147130 +v 2.111675 1.249014 0.214788 +v 1.553144 1.249014 0.214653 +v 2.111814 1.206339 0.190126 +v 1.553283 1.206378 0.190060 +v 2.112093 1.206378 0.140872 +v 1.553562 1.206339 0.140806 +v 2.111814 1.206378 0.083217 +v 2.111814 1.617254 0.083217 +v 2.111814 1.206378 0.043381 +v 2.111814 1.617254 0.043381 +v 1.553562 1.206378 0.083217 +v 1.553562 1.617254 0.083217 +v 1.553562 1.206378 0.043381 +v 1.553562 1.617254 0.043381 +v 2.111814 1.291650 0.083217 +v 2.111814 1.291650 0.043381 +v 1.553562 1.291650 0.043381 +v 1.553562 1.291650 0.083217 +v 2.111814 1.249014 0.043381 +v 2.111814 1.249014 0.083217 +v 1.553562 1.249014 0.043381 +v 1.553562 1.249014 0.083217 +v 1.168282 2.133092 0.117246 +v 1.168282 2.449447 0.117246 +v 1.116952 2.081763 0.040213 +v 1.116952 2.500776 0.040213 +v 1.964271 2.133092 0.117246 +v 1.964271 2.449447 0.117246 +v 2.015600 2.081763 0.040213 +v 2.015600 2.500776 0.040213 +v 1.116952 2.081763 0.117246 +v 1.116952 2.500776 0.117246 +v 2.015600 2.500776 0.117246 +v 2.015600 2.081763 0.117246 +v 1.657742 2.277558 0.065015 +v 1.657742 2.416211 0.065015 +v 1.916054 2.416211 0.065015 +v 1.916054 2.277558 0.065015 +v 1.220038 2.166149 0.036199 +v 1.220038 2.265817 0.036199 +v 1.319705 2.166149 0.036199 +v 1.319705 2.265817 0.036199 +v 1.269871 2.166149 0.115509 +v 1.220038 2.166149 0.065675 +v 1.234634 2.166149 0.100913 +v 1.220038 2.265817 0.065675 +v 1.234634 2.265817 0.100913 +v 1.319705 2.166149 0.065675 +v 1.305109 2.166149 0.100913 +v 1.269871 2.265817 0.115509 +v 1.319705 2.265817 0.065675 +v 1.305109 2.265817 0.100913 +v 1.293844 2.216693 0.042410 +v 1.293844 2.197116 0.053712 +v 1.293844 2.197116 0.076318 +v 1.293844 2.216693 0.087620 +v 1.293844 2.236270 0.076318 +v 1.293844 2.236270 0.053712 +v 1.715496 2.216693 0.042410 +v 1.715496 2.197116 0.053712 +v 1.715496 2.197116 0.076318 +v 1.715496 2.216693 0.087620 +v 1.715496 2.236270 0.076318 +v 1.715496 2.236270 0.053712 +v 1.916054 2.187559 0.048194 +v 1.916054 2.216693 0.031373 +v 1.715496 2.216693 0.031373 +v 1.916054 2.187559 0.081836 +v 1.916054 2.216693 0.098657 +v 1.916054 2.245828 0.081836 +v 1.916054 2.245828 0.048194 +v 1.715496 2.187559 0.048194 +v 1.715496 2.187559 0.081836 +v 1.715496 2.216693 0.098657 +v 1.715496 2.245828 0.081836 +v 1.715496 2.245828 0.048194 +v 1.168282 2.133092 0.065015 +v 1.168282 2.449447 0.065015 +v 1.964271 2.449447 0.065015 +v 1.964271 2.133092 0.065015 +v 1.659844 2.302833 0.046480 +v 1.659844 2.415082 0.046480 +v 1.913952 2.415082 0.046480 +v 1.913952 2.302833 0.046480 +v 1.683615 2.394066 0.030874 +v 1.715124 2.394066 0.030874 +v 1.683615 2.376265 0.011737 +v 1.715124 2.376265 0.011737 +v 1.683615 2.350791 0.017585 +v 1.715124 2.350791 0.017585 +v 1.683615 2.343119 0.042570 +v 1.715124 2.343119 0.042570 +v 1.683615 2.360920 0.061707 +v 1.715124 2.360920 0.061707 +v 1.683615 2.386394 0.055858 +v 1.715124 2.386394 0.055858 +v 1.683615 2.365368 0.062249 +v 1.683615 2.383127 0.059579 +v 1.715124 2.383127 0.059579 +v 1.715124 2.365368 0.062249 +v 1.683615 2.373156 0.074653 +v 1.683615 2.382544 0.071410 +v 1.715124 2.382544 0.071410 +v 1.715124 2.373156 0.074653 +v 1.740331 2.391644 0.058652 +v 1.771840 2.391644 0.058652 +v 1.740331 2.400436 0.034039 +v 1.771840 2.400436 0.034039 +v 1.740331 2.383517 0.014118 +v 1.771840 2.383517 0.014118 +v 1.740331 2.357806 0.018809 +v 1.771840 2.357806 0.018809 +v 1.740331 2.349013 0.043422 +v 1.771840 2.349013 0.043422 +v 1.740331 2.365932 0.063343 +v 1.771840 2.365932 0.063343 +v 1.740331 2.350579 0.047620 +v 1.740331 2.361125 0.062156 +v 1.771840 2.361125 0.062156 +v 1.771840 2.350579 0.047620 +v 1.740331 2.343153 0.060243 +v 1.740331 2.350354 0.067085 +v 1.771840 2.350354 0.067085 +v 1.771840 2.343153 0.060243 +v 1.797047 2.386932 0.021940 +v 1.828556 2.386932 0.021940 +v 1.797047 2.362782 0.011948 +v 1.828556 2.362782 0.011948 +v 1.797047 2.342053 0.027867 +v 1.828556 2.342053 0.027867 +v 1.797047 2.345475 0.053778 +v 1.828556 2.345475 0.053778 +v 1.797047 2.369626 0.063770 +v 1.828556 2.369626 0.063770 +v 1.797047 2.390355 0.047851 +v 1.828556 2.390355 0.047851 +v 1.797047 2.373896 0.062413 +v 1.797047 2.388932 0.052594 +v 1.828556 2.388932 0.052594 +v 1.828556 2.373896 0.062413 +v 1.797047 2.386139 0.070450 +v 1.797047 2.393326 0.063594 +v 1.828556 2.393326 0.063594 +v 1.828556 2.386139 0.070450 +v 1.853763 2.396732 0.045249 +v 1.885272 2.396732 0.045249 +v 1.853763 2.391602 0.019622 +v 1.885272 2.391602 0.019622 +v 1.853763 2.366842 0.011250 +v 1.885272 2.366842 0.011250 +v 1.853763 2.347213 0.028507 +v 1.885272 2.347213 0.028507 +v 1.853763 2.352343 0.054135 +v 1.885272 2.352343 0.054135 +v 1.853763 2.377102 0.062506 +v 1.885272 2.377102 0.062506 +v 1.853763 2.355846 0.056928 +v 1.853763 2.372370 0.063962 +v 1.885272 2.372370 0.063962 +v 1.885272 2.355846 0.056928 +v 1.853763 2.355977 0.071573 +v 1.853763 2.365673 0.073732 +v 1.885272 2.365673 0.073732 +v 1.885272 2.355977 0.071573 +v -2.340313 1.159684 -0.125000 +v 2.340313 1.159684 -0.125000 +v -2.500000 0.999997 -0.125000 +v -2.500000 4.499997 -0.125000 +v 2.500000 4.499997 -0.125000 +v 2.500000 0.999997 -0.125000 +v -2.340313 1.159684 -0.045951 +v 2.340313 1.159684 -0.045951 +v -2.340313 4.119773 -0.125000 +v -2.119776 4.340310 -0.125000 +v -2.496256 4.496253 -0.125000 +v 2.119776 4.340310 -0.125000 +v 2.340313 4.119773 -0.125000 +v 2.496256 4.496253 -0.125000 +v -2.119776 4.340310 -0.045951 +v -2.340313 4.119773 -0.045951 +v 2.340313 4.119773 -0.045951 +v 2.119776 4.340310 -0.045951 +v -2.500000 4.119773 -0.125000 +v 2.500000 4.119773 -0.125000 +v 2.500000 3.579181 -0.125000 +v 2.500000 3.423868 -0.125000 +v 2.500000 2.800531 -0.125000 +v 2.500000 2.642630 -0.125000 +v 2.500000 2.022151 -0.125000 +v 2.500000 1.861122 -0.125000 +v -2.340313 3.455513 -0.125000 +v -2.340313 3.610826 -0.125000 +v -2.340313 2.714197 -0.125000 +v -2.340313 2.872098 -0.125000 +v -2.340313 1.972611 -0.125000 +v -2.340313 2.133640 -0.125000 +v -2.340313 2.133400 -0.045951 +v -2.340313 1.972851 -0.045951 +v -2.340313 2.871974 -0.045951 +v -2.340313 2.714321 -0.045951 +v -2.340313 3.610798 -0.045951 +v -2.340313 3.455542 -0.045951 +v 2.340313 2.133640 -0.125000 +v 2.340313 1.972611 -0.125000 +v 2.340313 2.872098 -0.125000 +v 2.340313 2.714197 -0.125000 +v 2.340313 3.610826 -0.125000 +v 2.340313 3.455513 -0.125000 +v 2.340313 3.455542 -0.045951 +v 2.340313 3.610798 -0.045951 +v 2.340313 2.714321 -0.045951 +v 2.340313 2.871974 -0.045951 +v 2.340313 1.972851 -0.045951 +v 2.340313 2.133400 -0.045951 +v -2.500000 1.861122 -0.125000 +v -2.500000 2.022151 -0.125000 +v -2.500000 2.642630 -0.125000 +v -2.500000 2.800531 -0.125000 +v -2.500000 3.423868 -0.125000 +v -2.500000 3.579181 -0.125000 +v -2.340313 3.455542 -0.072230 +v -2.340313 3.483067 -0.099755 +v -2.340313 3.583273 -0.099755 +v -2.340313 3.610798 -0.072230 +v 2.340313 3.610798 -0.072230 +v 2.340313 3.583273 -0.099755 +v 2.340313 3.483067 -0.099755 +v 2.340313 3.455542 -0.072230 +v -2.340313 2.714321 -0.072230 +v -2.340313 2.741846 -0.099755 +v -2.340313 2.844450 -0.099755 +v -2.340313 2.871974 -0.072230 +v 2.340313 2.871974 -0.072230 +v 2.340313 2.844450 -0.099755 +v 2.340313 2.741846 -0.099755 +v 2.340313 2.714321 -0.072230 +v -2.340313 1.972851 -0.072230 +v -2.340313 2.000376 -0.099755 +v -2.340313 2.105875 -0.099755 +v -2.340313 2.133400 -0.072230 +v 2.340313 2.133400 -0.072230 +v 2.340313 2.105875 -0.099755 +v 2.340313 2.000376 -0.099755 +v 2.340313 1.972851 -0.072230 +v -1.212864 2.208840 -0.074562 +v -1.212864 2.619229 -0.074562 +v -1.243111 2.178593 -0.033562 +v -1.243111 2.649477 -0.033562 +v -0.802475 2.208840 -0.074562 +v -0.802475 2.619229 -0.074562 +v -0.772228 2.178593 -0.033562 +v -0.772228 2.649477 -0.033562 +v -1.243111 2.178593 -0.074562 +v -1.243111 2.649477 -0.074562 +v -0.772228 2.649477 -0.074562 +v -0.772228 2.178593 -0.074562 +v -1.212864 2.208840 -0.054611 +v -1.212864 2.619229 -0.054611 +v -0.802475 2.619229 -0.054611 +v -0.802475 2.208840 -0.054611 +v -0.204356 2.301647 -0.091702 +v -0.204356 2.301647 -0.020851 +v -0.204356 2.466216 -0.020851 +v 0.204356 2.301647 -0.091702 +v 0.204356 2.301647 -0.020851 +v 0.204356 2.466216 -0.020851 +v -0.204356 2.395251 -0.091702 +v -0.204356 2.466216 -0.055863 +v -0.204356 2.445431 -0.081205 +v 0.204356 2.466216 -0.055863 +v 0.204356 2.395251 -0.091702 +v 0.204356 2.445431 -0.081205 +v -2.500240 1.249014 -0.129405 +v -2.500100 1.217400 -0.147657 +v -2.499822 1.217400 -0.184161 +v -2.499682 1.249014 -0.202413 +v -2.499822 1.280628 -0.184161 +v -2.500101 1.280628 -0.147657 +v -1.553283 1.291650 -0.190060 +v -2.111814 1.291690 -0.190126 +v -2.112233 1.249014 -0.116279 +v -1.553702 1.249014 -0.116145 +v -1.553562 1.291690 -0.140806 +v -2.112093 1.291650 -0.140872 +v -1.546745 1.249014 -0.128878 +v -2.119190 1.249014 -0.129046 +v -2.119050 1.217400 -0.147298 +v -1.546605 1.217400 -0.147130 +v -2.118771 1.217400 -0.183802 +v -1.546326 1.217400 -0.183635 +v -2.118632 1.249014 -0.202055 +v -1.546187 1.249014 -0.201887 +v -2.118772 1.280628 -0.183802 +v -1.546326 1.280628 -0.183635 +v -2.119050 1.280628 -0.147298 +v -1.546605 1.280628 -0.147130 +v -2.111675 1.249014 -0.214788 +v -1.553144 1.249014 -0.214653 +v -2.111814 1.206339 -0.190126 +v -1.553283 1.206378 -0.190060 +v -2.112093 1.206378 -0.140872 +v -1.553562 1.206339 -0.140806 +v -2.111814 1.206378 -0.083217 +v -2.111814 1.617254 -0.083217 +v -2.111814 1.206378 -0.043381 +v -2.111814 1.617254 -0.043381 +v -1.553562 1.206378 -0.083217 +v -1.553562 1.617254 -0.083217 +v -1.553562 1.206378 -0.043381 +v -1.553563 1.617254 -0.043381 +v -2.111814 1.291650 -0.083217 +v -2.111814 1.291650 -0.043381 +v -1.553562 1.291650 -0.043381 +v -1.553562 1.291650 -0.083217 +v -2.111814 1.249014 -0.043381 +v -2.111814 1.249014 -0.083217 +v -1.553562 1.249014 -0.043381 +v -1.553562 1.249014 -0.083217 +v 2.500240 1.249014 -0.129405 +v 2.500100 1.217400 -0.147657 +v 2.499822 1.217400 -0.184161 +v 2.499682 1.249014 -0.202413 +v 2.499822 1.280628 -0.184161 +v 2.500100 1.280628 -0.147657 +v 1.553283 1.291650 -0.190060 +v 2.111814 1.291690 -0.190126 +v 2.112233 1.249014 -0.116279 +v 1.553702 1.249014 -0.116145 +v 1.553562 1.291690 -0.140806 +v 2.112094 1.291650 -0.140872 +v 1.546745 1.249014 -0.128878 +v 2.119189 1.249014 -0.129046 +v 2.119050 1.217400 -0.147298 +v 1.546605 1.217400 -0.147130 +v 2.118771 1.217400 -0.183802 +v 1.546326 1.217400 -0.183635 +v 2.118632 1.249014 -0.202055 +v 1.546187 1.249014 -0.201887 +v 2.118772 1.280628 -0.183802 +v 1.546326 1.280628 -0.183635 +v 2.119050 1.280628 -0.147298 +v 1.546605 1.280628 -0.147130 +v 2.111675 1.249014 -0.214788 +v 1.553144 1.249014 -0.214653 +v 2.111814 1.206339 -0.190126 +v 1.553283 1.206378 -0.190060 +v 2.112093 1.206378 -0.140872 +v 1.553562 1.206339 -0.140806 +v 2.111814 1.206378 -0.083217 +v 2.111814 1.617254 -0.083217 +v 2.111814 1.206378 -0.043381 +v 2.111814 1.617254 -0.043381 +v 1.553562 1.206378 -0.083217 +v 1.553562 1.617254 -0.083217 +v 1.553562 1.206378 -0.043381 +v 1.553562 1.617254 -0.043381 +v 2.111814 1.291650 -0.083217 +v 2.111814 1.291650 -0.043381 +v 1.553562 1.291650 -0.043381 +v 1.553562 1.291650 -0.083217 +v 2.111814 1.249014 -0.043381 +v 2.111814 1.249014 -0.083217 +v 1.553562 1.249014 -0.043381 +v 1.553562 1.249014 -0.083217 +v 1.168282 2.133092 -0.117246 +v 1.168282 2.449447 -0.117246 +v 1.116952 2.081763 -0.040213 +v 1.116952 2.500776 -0.040213 +v 1.964271 2.133092 -0.117246 +v 1.964271 2.449447 -0.117246 +v 2.015600 2.081763 -0.040213 +v 2.015600 2.500776 -0.040213 +v 1.116952 2.081763 -0.117246 +v 1.116952 2.500776 -0.117246 +v 2.015600 2.500776 -0.117246 +v 2.015600 2.081763 -0.117246 +v 1.657742 2.277558 -0.065015 +v 1.657742 2.416211 -0.065015 +v 1.916054 2.416211 -0.065015 +v 1.916054 2.277558 -0.065015 +v 1.220038 2.166149 -0.036199 +v 1.220038 2.265817 -0.036199 +v 1.319705 2.166149 -0.036199 +v 1.319705 2.265817 -0.036199 +v 1.269871 2.166149 -0.115509 +v 1.220038 2.166149 -0.065675 +v 1.234634 2.166149 -0.100913 +v 1.220038 2.265817 -0.065675 +v 1.234634 2.265817 -0.100913 +v 1.319705 2.166149 -0.065675 +v 1.305109 2.166149 -0.100913 +v 1.269871 2.265817 -0.115509 +v 1.319705 2.265817 -0.065675 +v 1.305109 2.265817 -0.100913 +v 1.293844 2.216693 -0.042410 +v 1.293844 2.197116 -0.053712 +v 1.293844 2.197116 -0.076318 +v 1.293844 2.216693 -0.087620 +v 1.293844 2.236270 -0.076318 +v 1.293844 2.236270 -0.053712 +v 1.715496 2.216693 -0.042410 +v 1.715496 2.197116 -0.053712 +v 1.715496 2.197116 -0.076318 +v 1.715496 2.216693 -0.087620 +v 1.715496 2.236270 -0.076318 +v 1.715496 2.236270 -0.053712 +v 1.916054 2.187559 -0.048194 +v 1.916054 2.216693 -0.031373 +v 1.715496 2.216693 -0.031373 +v 1.916054 2.187559 -0.081836 +v 1.916054 2.216693 -0.098657 +v 1.916054 2.245828 -0.081836 +v 1.916054 2.245828 -0.048194 +v 1.715496 2.187559 -0.048194 +v 1.715496 2.187559 -0.081836 +v 1.715496 2.216693 -0.098657 +v 1.715496 2.245828 -0.081836 +v 1.715496 2.245828 -0.048194 +v 1.168282 2.133092 -0.065015 +v 1.168282 2.449447 -0.065015 +v 1.964271 2.449447 -0.065015 +v 1.964271 2.133092 -0.065015 +v 1.659844 2.302833 -0.046480 +v 1.659844 2.415082 -0.046480 +v 1.913952 2.415082 -0.046480 +v 1.913952 2.302833 -0.046480 +v 1.683615 2.394066 -0.030874 +v 1.715124 2.394066 -0.030874 +v 1.683615 2.376265 -0.011737 +v 1.715124 2.376265 -0.011737 +v 1.683615 2.350791 -0.017585 +v 1.715124 2.350791 -0.017585 +v 1.683615 2.343119 -0.042570 +v 1.715124 2.343119 -0.042570 +v 1.683615 2.360920 -0.061707 +v 1.715124 2.360920 -0.061707 +v 1.683615 2.386394 -0.055858 +v 1.715124 2.386394 -0.055858 +v 1.683615 2.365368 -0.062249 +v 1.683615 2.383127 -0.059579 +v 1.715124 2.383127 -0.059579 +v 1.715124 2.365368 -0.062249 +v 1.683615 2.373156 -0.074653 +v 1.683615 2.382544 -0.071410 +v 1.715124 2.382544 -0.071410 +v 1.715124 2.373156 -0.074653 +v 1.740331 2.391644 -0.058652 +v 1.771840 2.391644 -0.058652 +v 1.740331 2.400436 -0.034039 +v 1.771840 2.400436 -0.034039 +v 1.740331 2.383517 -0.014118 +v 1.771840 2.383517 -0.014118 +v 1.740331 2.357806 -0.018809 +v 1.771840 2.357806 -0.018809 +v 1.740331 2.349013 -0.043422 +v 1.771840 2.349013 -0.043422 +v 1.740331 2.365932 -0.063343 +v 1.771840 2.365932 -0.063343 +v 1.740331 2.350579 -0.047620 +v 1.740331 2.361125 -0.062156 +v 1.771840 2.361125 -0.062156 +v 1.771840 2.350579 -0.047620 +v 1.740331 2.343153 -0.060243 +v 1.740331 2.350354 -0.067085 +v 1.771840 2.350354 -0.067085 +v 1.771840 2.343153 -0.060243 +v 1.797047 2.386932 -0.021940 +v 1.828556 2.386932 -0.021940 +v 1.797047 2.362782 -0.011948 +v 1.828556 2.362782 -0.011948 +v 1.797047 2.342053 -0.027867 +v 1.828556 2.342053 -0.027867 +v 1.797047 2.345475 -0.053778 +v 1.828556 2.345475 -0.053778 +v 1.797047 2.369626 -0.063770 +v 1.828556 2.369626 -0.063770 +v 1.797047 2.390355 -0.047851 +v 1.828556 2.390355 -0.047851 +v 1.797047 2.373896 -0.062413 +v 1.797047 2.388932 -0.052594 +v 1.828556 2.388932 -0.052594 +v 1.828556 2.373896 -0.062413 +v 1.797047 2.386139 -0.070450 +v 1.797047 2.393326 -0.063594 +v 1.828556 2.393326 -0.063594 +v 1.828556 2.386139 -0.070450 +v 1.853763 2.396732 -0.045249 +v 1.885272 2.396732 -0.045249 +v 1.853763 2.391602 -0.019622 +v 1.885272 2.391602 -0.019622 +v 1.853763 2.366842 -0.011250 +v 1.885272 2.366842 -0.011250 +v 1.853763 2.347213 -0.028507 +v 1.885272 2.347213 -0.028507 +v 1.853763 2.352343 -0.054135 +v 1.885272 2.352343 -0.054135 +v 1.853763 2.377102 -0.062506 +v 1.885272 2.377102 -0.062506 +v 1.853763 2.355846 -0.056928 +v 1.853763 2.372370 -0.063962 +v 1.885272 2.372370 -0.063962 +v 1.885272 2.355846 -0.056928 +v 1.853763 2.355977 -0.071573 +v 1.853763 2.365673 -0.073732 +v 1.885272 2.365673 -0.073732 +v 1.885272 2.355977 -0.071573 +v -2.163461 0.999997 0.125000 +v -1.682692 0.999997 0.125000 +v -1.394231 0.999997 0.125000 +v -0.913461 0.999997 0.125000 +v -0.625000 0.999997 0.125000 +v -0.144231 0.999997 0.125000 +v 0.144231 0.999997 0.125000 +v 0.625000 0.999997 0.125000 +v 0.913462 0.999997 0.125000 +v 1.394231 0.999997 0.125000 +v 1.682693 0.999997 0.125000 +v 2.163461 0.999997 0.125000 +v -2.163461 0.999997 -0.125000 +v -1.682692 0.999997 -0.125000 +v -1.394231 0.999997 -0.125000 +v -0.913461 0.999997 -0.125000 +v -0.625000 0.999997 -0.125000 +v -0.144231 0.999997 -0.125000 +v 0.144231 0.999997 -0.125000 +v 0.625000 0.999997 -0.125000 +v 0.913462 0.999997 -0.125000 +v 1.394231 0.999997 -0.125000 +v 1.682693 0.999997 -0.125000 +v 2.163461 0.999997 -0.125000 +v -2.043269 0.874997 0.093750 +v -1.802885 0.874997 0.093750 +v -1.274038 0.874997 0.093750 +v -1.033654 0.874997 0.093750 +v -0.504808 0.874997 0.093750 +v -0.264423 0.874997 0.093750 +v 0.264423 0.874997 0.093750 +v 0.504808 0.874997 0.093750 +v 1.033654 0.874997 0.093750 +v 1.274039 0.874997 0.093750 +v 1.802885 0.874997 0.093750 +v 2.043269 0.874997 0.093750 +v -2.043269 0.874997 -0.093750 +v -1.802885 0.874997 -0.093750 +v -1.274038 0.874997 -0.093750 +v -1.033654 0.874997 -0.093750 +v -0.504808 0.874997 -0.093750 +v -0.264423 0.874997 -0.093750 +v 0.264423 0.874997 -0.093750 +v 0.504808 0.874997 -0.093750 +v 1.033654 0.874997 -0.093750 +v 1.274039 0.874997 -0.093750 +v 1.802885 0.874997 -0.093750 +v 2.043269 0.874997 -0.093750 +vt 0.733844 0.172974 +vt 0.709510 0.205732 +vt 0.709510 0.172974 +vt 0.831397 0.355292 +vt 0.877231 0.351301 +vt 0.877231 0.355292 +vt 0.492430 0.004449 +vt 0.468095 0.041459 +vt 0.468095 0.004449 +vt 0.425092 0.452798 +vt 0.004556 0.460138 +vt 0.004507 0.452797 +vt 0.675567 0.125895 +vt 0.691111 0.072187 +vt 0.691111 0.132861 +vt 0.675567 0.141265 +vt 0.004877 0.575079 +vt 0.425404 0.567739 +vt 0.425462 0.575079 +vt 0.535486 0.503659 +vt 0.543181 0.473300 +vt 0.543181 0.503659 +vt 0.700410 0.955730 +vt 0.700410 0.473300 +vt 0.715817 0.509987 +vt 0.788978 0.083578 +vt 0.781284 0.004449 +vt 0.788979 0.004449 +vt 0.004663 0.484298 +vt 0.425191 0.476959 +vt 0.425248 0.484299 +vt 0.840564 0.127662 +vt 0.861856 0.110783 +vt 0.864898 0.127662 +vt 0.701335 0.954904 +vt 0.740980 0.954293 +vt 0.616380 0.658755 +vt 0.632175 0.489094 +vt 0.616380 0.706311 +vt 0.004606 0.476958 +vt 0.425141 0.469618 +vt 0.772385 0.227922 +vt 0.764691 0.243037 +vt 0.764691 0.227920 +vt 0.004984 0.651201 +vt 0.425568 0.642197 +vt 0.425569 0.651201 +vt 0.602240 0.186675 +vt 0.617784 0.240383 +vt 0.602240 0.243463 +vt 0.005091 0.665882 +vt 0.425618 0.658542 +vt 0.425676 0.665882 +vt 0.691111 0.208626 +vt 0.675567 0.213449 +vt 0.675567 0.197774 +vt 0.602240 0.171305 +vt 0.617784 0.179709 +vt 0.675567 0.292577 +vt 0.691111 0.224301 +vt 0.691111 0.308120 +vt 0.691111 0.057069 +vt 0.675567 0.069107 +vt 0.675567 0.053989 +vt 0.425462 0.627517 +vt 0.764691 0.099252 +vt 0.772385 0.155774 +vt 0.764691 0.155762 +vt 0.781284 0.243034 +vt 0.788979 0.227919 +vt 0.788979 0.243037 +vt 0.602240 0.114795 +vt 0.617784 0.164339 +vt 0.004770 0.560398 +vt 0.425355 0.551180 +vt 0.425355 0.560399 +vt 0.715817 0.919044 +vt 0.739687 0.938221 +vt 0.535487 0.946694 +vt 0.543181 0.916338 +vt 0.543181 0.946694 +vt 0.764691 0.083578 +vt 0.772385 0.004449 +vt 0.772385 0.083601 +vt 0.834341 0.348357 +vt 0.831397 0.305467 +vt 0.834341 0.308411 +vt 0.781284 0.292577 +vt 0.877231 0.301476 +vt 0.877231 0.305466 +vt 0.425305 0.543839 +vt 0.004770 0.551178 +vt 0.004720 0.543838 +vt 0.005033 0.658542 +vt 0.923079 0.004449 +vt 0.883297 0.011346 +vt 0.883297 0.004449 +vt 0.788978 0.099252 +vt 0.781284 0.155774 +vt 0.781284 0.099228 +vt 0.764691 0.171132 +vt 0.425248 0.536499 +vt 0.004663 0.536498 +vt 0.617784 0.255500 +vt 0.602240 0.258581 +vt 0.788978 0.171131 +vt 0.781284 0.227922 +vt 0.781284 0.171119 +vt 0.827406 0.305467 +vt 0.831397 0.351301 +vt 0.827406 0.351301 +vt 0.004819 0.567739 +vt 0.585191 0.188500 +vt 0.588744 0.151434 +vt 0.588744 0.188524 +vt 0.408813 0.843186 +vt 0.410755 0.883132 +vt 0.408813 0.883132 +vt 0.874287 0.308411 +vt 0.883297 0.028637 +vt 0.923079 0.025447 +vt 0.923079 0.028637 +vt 0.450701 0.841244 +vt 0.410755 0.843186 +vt 0.410755 0.841244 +vt 0.592297 0.151445 +vt 0.592297 0.188536 +vt 0.410755 0.885074 +vt 0.450701 0.883132 +vt 0.450701 0.885074 +vt 0.452643 0.883132 +vt 0.450701 0.843186 +vt 0.452643 0.843186 +vt 0.881222 0.351301 +vt 0.881222 0.305467 +vt 0.883297 0.032045 +vt 0.923079 0.032045 +vt 0.004934 0.634857 +vt 0.004877 0.627516 +vt 0.922971 0.338452 +vt 0.922971 0.354471 +vt 0.916075 0.345360 +vt 0.578084 0.151410 +vt 0.581638 0.188488 +vt 0.578084 0.188500 +vt 0.874287 0.348357 +vt 0.883297 0.025447 +vt 0.923079 0.020457 +vt 0.585191 0.151410 +vt 0.513586 0.921476 +vt 0.512564 0.917257 +vt 0.515067 0.921475 +vt 0.462309 0.358295 +vt 0.463331 0.362557 +vt 0.460816 0.358296 +vt 0.570978 0.151445 +vt 0.574531 0.188524 +vt 0.570978 0.188536 +vt 0.923079 0.011346 +vt 0.927292 0.271964 +vt 0.930370 0.273741 +vt 0.930370 0.277294 +vt 0.574531 0.151434 +vt 0.921295 0.150557 +vt 0.920274 0.145672 +vt 0.927170 0.152580 +vt 0.508461 0.924433 +vt 0.505315 0.921496 +vt 0.506735 0.921496 +vt 0.464029 0.361267 +vt 0.468237 0.362487 +vt 0.067792 0.891333 +vt 0.122132 0.896120 +vt 0.067766 0.896127 +vt 0.463324 0.354029 +vt 0.464030 0.355315 +vt 0.467486 0.355305 +vt 0.470666 0.358271 +vt 0.469231 0.358271 +vt 0.511881 0.918527 +vt 0.507722 0.917326 +vt 0.511878 0.924431 +vt 0.507718 0.925667 +vt 0.067792 0.910503 +vt 0.122132 0.905715 +vt 0.122158 0.910510 +vt 0.122119 0.900918 +vt 0.067753 0.900918 +vt 0.508468 0.918556 +vt 0.467482 0.361242 +vt 0.522312 0.925727 +vt 0.518340 0.921474 +vt 0.522312 0.921471 +vt 0.866635 0.260833 +vt 0.834941 0.206494 +vt 0.866635 0.206494 +vt 0.518336 0.925725 +vt 0.512568 0.925698 +vt 0.831064 0.260833 +vt 0.834941 0.260833 +vt 0.122129 0.919999 +vt 0.067791 0.916109 +vt 0.122130 0.916122 +vt 0.468237 0.354057 +vt 0.473941 0.354062 +vt 0.477869 0.358271 +vt 0.473937 0.358271 +vt 0.518612 0.353039 +vt 0.522932 0.105485 +vt 0.522933 0.353081 +vt 0.477872 0.362476 +vt 0.473942 0.362479 +vt 0.501328 0.352990 +vt 0.505650 0.105402 +vt 0.505650 0.352998 +vt 0.518331 0.917223 +vt 0.527254 0.105493 +vt 0.527254 0.353122 +vt 0.586021 0.300510 +vt 0.589098 0.302286 +vt 0.586021 0.307616 +vt 0.067766 0.905709 +vt 0.522306 0.917217 +vt 0.920423 0.058711 +vt 0.883344 0.062264 +vt 0.883332 0.058711 +vt 0.514292 0.352998 +vt 0.518611 0.105494 +vt 0.834941 0.264711 +vt 0.866635 0.264711 +vt 0.866635 0.202617 +vt 0.920399 0.048051 +vt 0.883332 0.044498 +vt 0.920423 0.044498 +vt 0.122130 0.885714 +vt 0.122158 0.891326 +vt 0.920387 0.051604 +vt 0.883309 0.048051 +vt 0.883309 0.055157 +vt 0.883297 0.051604 +vt 0.911809 0.919556 +vt 0.910787 0.923775 +vt 0.910104 0.922505 +vt 0.903538 0.919536 +vt 0.906684 0.916599 +vt 0.904958 0.919536 +vt 0.408852 0.903469 +vt 0.463192 0.908257 +vt 0.408826 0.908263 +vt 0.920399 0.055157 +vt 0.008327 0.841244 +vt 0.004449 0.872938 +vt 0.004449 0.841244 +vt 0.066543 0.841244 +vt 0.062666 0.872938 +vt 0.062666 0.841244 +vt 0.906691 0.922476 +vt 0.883344 0.040944 +vt 0.920435 0.040944 +vt 0.509971 0.105445 +vt 0.509971 0.352990 +vt 0.463179 0.913054 +vt 0.408826 0.917845 +vt 0.408813 0.913054 +vt 0.892629 0.346980 +vt 0.891613 0.342714 +vt 0.893335 0.345694 +vt 0.008327 0.872938 +vt 0.062666 0.876815 +vt 0.008327 0.876815 +vt 0.463192 0.917852 +vt 0.408852 0.922640 +vt 0.893333 0.339742 +vt 0.897541 0.338522 +vt 0.896787 0.339767 +vt 0.913289 0.919557 +vt 0.916559 0.915307 +vt 0.916563 0.919558 +vt 0.899971 0.342738 +vt 0.898536 0.342738 +vt 0.905941 0.915366 +vt 0.910101 0.916602 +vt 0.903246 0.346947 +vt 0.897541 0.346952 +vt 0.907176 0.338533 +vt 0.903242 0.342738 +vt 0.903247 0.338530 +vt 0.916554 0.923810 +vt 0.910791 0.915335 +vt 0.892636 0.338452 +vt 0.478497 0.827980 +vt 0.509290 0.822896 +vt 0.509290 0.827980 +vt 0.463190 0.897851 +vt 0.463218 0.903463 +vt 0.463190 0.928258 +vt 0.463218 0.922646 +vt 0.434574 0.581710 +vt 0.442073 0.669182 +vt 0.434574 0.669182 +vt 0.896791 0.345704 +vt 0.920535 0.919561 +vt 0.920529 0.923815 +vt 0.490356 0.669182 +vt 0.482858 0.581710 +vt 0.490356 0.581710 +vt 0.477862 0.664186 +vt 0.447069 0.664186 +vt 0.920535 0.915306 +vt 0.907174 0.342738 +vt 0.442073 0.581710 +vt 0.482858 0.574212 +vt 0.442073 0.676680 +vt 0.482858 0.669182 +vt 0.482858 0.676680 +vt 0.514374 0.822896 +vt 0.509290 0.745417 +vt 0.514374 0.745417 +vt 0.905945 0.923706 +vt 0.473413 0.745417 +vt 0.478497 0.822896 +vt 0.473413 0.822896 +vt 0.447069 0.586706 +vt 0.477862 0.586706 +vt 0.509290 0.740332 +vt 0.478497 0.745417 +vt 0.478497 0.740332 +vt 0.931635 0.319515 +vt 0.933055 0.322945 +vt 0.923354 0.322945 +vt 0.571259 0.354466 +vt 0.572701 0.353479 +vt 0.573181 0.353528 +vt 0.848783 0.273609 +vt 0.851652 0.283311 +vt 0.848783 0.283311 +vt 0.845071 0.273609 +vt 0.845071 0.283311 +vt 0.931635 0.302896 +vt 0.933055 0.306326 +vt 0.923354 0.306326 +vt 0.831064 0.273609 +vt 0.833933 0.283311 +vt 0.831064 0.283311 +vt 0.572675 0.234699 +vt 0.583711 0.236515 +vt 0.572785 0.236515 +vt 0.754611 0.249901 +vt 0.755542 0.247164 +vt 0.755542 0.250438 +vt 0.514291 0.105486 +vt 0.408850 0.893986 +vt 0.463189 0.893973 +vt 0.841358 0.283311 +vt 0.837645 0.273609 +vt 0.841358 0.273609 +vt 0.602115 0.557117 +vt 0.605182 0.556635 +vt 0.605182 0.557117 +vt 0.602115 0.559237 +vt 0.605182 0.558270 +vt 0.605182 0.559237 +vt 0.273168 0.912975 +vt 0.314210 0.910774 +vt 0.314210 0.912975 +vt 0.603839 0.597606 +vt 0.602129 0.598020 +vt 0.602396 0.596619 +vt 0.837645 0.283311 +vt 0.833933 0.273609 +vt 0.602115 0.593742 +vt 0.604318 0.592470 +vt 0.602115 0.568731 +vt 0.605182 0.566187 +vt 0.605182 0.568731 +vt 0.602115 0.501927 +vt 0.605182 0.499383 +vt 0.605182 0.501927 +vt 0.602115 0.556635 +vt 0.605182 0.554091 +vt 0.602115 0.563643 +vt 0.605182 0.561099 +vt 0.605182 0.563643 +vt 0.602115 0.560663 +vt 0.605182 0.560663 +vt 0.752706 0.252075 +vt 0.752706 0.251001 +vt 0.750800 0.247701 +vt 0.749870 0.250438 +vt 0.749870 0.247164 +vt 0.273168 0.910774 +vt 0.314210 0.908574 +vt 0.752706 0.245526 +vt 0.752706 0.246601 +vt 0.273168 0.908574 +vt 0.314210 0.906374 +vt 0.586762 0.236310 +vt 0.583711 0.261249 +vt 0.273168 0.915175 +vt 0.314210 0.915175 +vt 0.273168 0.906374 +vt 0.314210 0.904173 +vt 0.506276 0.686230 +vt 0.525797 0.682955 +vt 0.525797 0.686230 +vt 0.481732 0.793059 +vt 0.570978 0.236310 +vt 0.572785 0.261249 +vt 0.570978 0.261453 +vt 0.273168 0.917375 +vt 0.314210 0.917375 +vt 0.506276 0.692779 +vt 0.525797 0.689505 +vt 0.525797 0.692779 +vt 0.506276 0.696054 +vt 0.525797 0.696054 +vt 0.506276 0.689505 +vt 0.752706 0.230078 +vt 0.755542 0.231716 +vt 0.755542 0.234990 +vt 0.495228 0.793059 +vt 0.495228 0.818203 +vt 0.506276 0.702603 +vt 0.525797 0.699328 +vt 0.525797 0.702603 +vt 0.754611 0.247701 +vt 0.481732 0.818203 +vt 0.572675 0.263065 +vt 0.586171 0.263065 +vt 0.602115 0.554091 +vt 0.605182 0.551547 +vt 0.602115 0.566187 +vt 0.750800 0.249901 +vt 0.506276 0.699328 +vt 0.602115 0.561099 +vt 0.602115 0.504471 +vt 0.605182 0.504471 +vt 0.602115 0.558270 +vt 0.570991 0.353066 +vt 0.571875 0.352675 +vt 0.606241 0.581779 +vt 0.604798 0.582766 +vt 0.604318 0.582718 +vt 0.602115 0.516566 +vt 0.605182 0.514022 +vt 0.605182 0.516566 +vt 0.602115 0.507015 +vt 0.605182 0.507015 +vt 0.602115 0.514022 +vt 0.605182 0.511478 +vt 0.486770 0.355301 +vt 0.488973 0.354029 +vt 0.487051 0.358179 +vt 0.602115 0.507497 +vt 0.605182 0.507497 +vt 0.602115 0.511478 +vt 0.605182 0.511042 +vt 0.606508 0.583180 +vt 0.605624 0.583571 +vt 0.602115 0.509616 +vt 0.605182 0.508650 +vt 0.605182 0.509616 +vt 0.602115 0.511042 +vt 0.602115 0.508650 +vt 0.488494 0.359166 +vt 0.486784 0.359579 +vt 0.574045 0.341232 +vt 0.570978 0.343776 +vt 0.570978 0.341232 +vt 0.602396 0.638781 +vt 0.603839 0.637794 +vt 0.604318 0.637843 +vt 0.574045 0.338688 +vt 0.570978 0.338688 +vt 0.574045 0.326592 +vt 0.570978 0.329136 +vt 0.570978 0.326592 +vt 0.574045 0.331680 +vt 0.570978 0.334224 +vt 0.570978 0.331680 +vt 0.574045 0.329136 +vt 0.749870 0.277694 +vt 0.752073 0.276422 +vt 0.750151 0.280572 +vt 0.574045 0.338206 +vt 0.570978 0.338206 +vt 0.574045 0.334224 +vt 0.570978 0.334660 +vt 0.602129 0.637381 +vt 0.603013 0.636990 +vt 0.574045 0.336086 +vt 0.570978 0.337053 +vt 0.570978 0.336086 +vt 0.574045 0.334660 +vt 0.574045 0.337053 +vt 0.751593 0.281559 +vt 0.749883 0.281972 +vt 0.278256 0.929341 +vt 0.275712 0.926274 +vt 0.278256 0.926274 +vt 0.602396 0.712981 +vt 0.603839 0.711994 +vt 0.604318 0.712043 +vt 0.280800 0.929341 +vt 0.280800 0.926274 +vt 0.275712 0.929341 +vt 0.273168 0.926274 +vt 0.287807 0.929341 +vt 0.285263 0.926274 +vt 0.287807 0.926274 +vt 0.290351 0.929341 +vt 0.290351 0.926274 +vt 0.602115 0.667942 +vt 0.604319 0.666670 +vt 0.602396 0.670819 +vt 0.281282 0.929341 +vt 0.281282 0.926274 +vt 0.285263 0.929341 +vt 0.284827 0.926274 +vt 0.602129 0.711581 +vt 0.603013 0.711190 +vt 0.283402 0.929341 +vt 0.282435 0.926274 +vt 0.283402 0.926274 +vt 0.284827 0.929341 +vt 0.282435 0.929341 +vt 0.603839 0.671806 +vt 0.602129 0.672220 +vt 0.861856 0.044727 +vt 0.874398 0.009630 +vt 0.874398 0.056426 +vt 0.712551 0.132696 +vt 0.733844 0.115817 +vt 0.730802 0.132696 +vt 0.700010 0.167794 +vt 0.700010 0.120997 +vt 0.843605 0.087385 +vt 0.864898 0.070505 +vt 0.861856 0.087385 +vt 0.861856 0.176839 +vt 0.840564 0.193718 +vt 0.843605 0.176839 +vt 0.642226 0.350853 +vt 0.625347 0.329561 +vt 0.642226 0.326519 +vt 0.434862 0.041459 +vt 0.459196 0.004449 +vt 0.459196 0.041459 +vt 0.492430 0.094079 +vt 0.468095 0.109197 +vt 0.468095 0.094079 +vt 0.668004 0.347811 +vt 0.703102 0.360353 +vt 0.656305 0.360353 +vt 0.874398 0.075685 +vt 0.874398 0.122482 +vt 0.831064 0.141741 +vt 0.831064 0.188538 +vt 0.492430 0.109197 +vt 0.468095 0.169871 +vt 0.590249 0.317019 +vt 0.637046 0.317019 +vt 0.916054 0.095497 +vt 0.883297 0.071163 +vt 0.916054 0.071163 +vt 0.691111 0.148231 +vt 0.602240 0.019993 +vt 0.617784 0.088269 +vt 0.602240 0.099121 +vt 0.691111 0.004449 +vt 0.814516 0.351301 +vt 0.818507 0.305467 +vt 0.818507 0.351301 +vt 0.004844 0.199797 +vt 0.425348 0.207135 +vt 0.004757 0.207136 +vt 0.552080 0.473300 +vt 0.559774 0.503656 +vt 0.552080 0.503656 +vt 0.626683 0.308120 +vt 0.642226 0.258581 +vt 0.642226 0.308120 +vt 0.805572 0.004449 +vt 0.797877 0.083578 +vt 0.797877 0.004449 +vt 0.425809 0.092198 +vt 0.005286 0.084858 +vt 0.425876 0.084858 +vt 0.814471 0.155774 +vt 0.822165 0.099252 +vt 0.822165 0.155761 +vt 0.651125 0.186675 +vt 0.666669 0.240383 +vt 0.651125 0.243463 +vt 0.651125 0.171305 +vt 0.666669 0.179709 +vt 0.775041 0.509987 +vt 0.790449 0.955730 +vt 0.775041 0.919044 +vt 0.805572 0.099229 +vt 0.797877 0.099252 +vt 0.814471 0.083601 +vt 0.822165 0.083577 +vt 0.797877 0.227919 +vt 0.805572 0.243034 +vt 0.797877 0.243037 +vt 0.768681 0.305467 +vt 0.811572 0.308411 +vt 0.771626 0.308411 +vt 0.642226 0.171305 +vt 0.626683 0.179709 +vt 0.626683 0.164339 +vt 0.754283 0.331232 +vt 0.717217 0.334785 +vt 0.717193 0.331232 +vt 0.666669 0.255500 +vt 0.651125 0.258581 +vt 0.797877 0.171131 +vt 0.805572 0.227922 +vt 0.822165 0.171131 +vt 0.004603 0.283258 +vt 0.425127 0.290597 +vt 0.004536 0.290598 +vt 0.877476 0.244505 +vt 0.917422 0.204559 +vt 0.917422 0.244505 +vt 0.768682 0.351301 +vt 0.814516 0.355292 +vt 0.768682 0.355292 +vt 0.919364 0.204559 +vt 0.919364 0.244505 +vt 0.805572 0.292577 +vt 0.797877 0.292577 +vt 0.552079 0.916335 +vt 0.559774 0.946694 +vt 0.552079 0.946694 +vt 0.004911 0.183237 +vt 0.425501 0.192456 +vt 0.004911 0.192457 +vt 0.642226 0.243463 +vt 0.626683 0.255500 +vt 0.626683 0.240383 +vt 0.805572 0.155774 +vt 0.797877 0.155762 +vt 0.425501 0.183237 +vt 0.004978 0.175897 +vt 0.425569 0.175897 +vt 0.917422 0.246447 +vt 0.877476 0.246447 +vt 0.754307 0.334785 +vt 0.717228 0.338339 +vt 0.753565 0.354145 +vt 0.746668 0.347238 +vt 0.752543 0.349261 +vt 0.436354 0.358291 +vt 0.437377 0.354029 +vt 0.438074 0.355319 +vt 0.919759 0.171817 +vt 0.922226 0.169794 +vt 0.925634 0.169794 +vt 0.642226 0.114795 +vt 0.004757 0.259574 +vt 0.651125 0.019993 +vt 0.666669 0.088269 +vt 0.651125 0.099121 +vt 0.764691 0.351301 +vt 0.814471 0.004449 +vt 0.822165 0.004449 +vt 0.789524 0.954904 +vt 0.751172 0.938220 +vt 0.814516 0.305467 +vt 0.768681 0.301476 +vt 0.814516 0.301476 +vt 0.005065 0.168558 +vt 0.425655 0.168558 +vt 0.915316 0.262242 +vt 0.875534 0.255346 +vt 0.915316 0.255346 +vt 0.754271 0.327679 +vt 0.717193 0.324126 +vt 0.754283 0.324125 +vt 0.442282 0.354099 +vt 0.441528 0.355343 +vt 0.875534 0.271354 +vt 0.915316 0.276344 +vt 0.875534 0.276344 +vt 0.875534 0.262242 +vt 0.200439 0.914986 +vt 0.146099 0.919773 +vt 0.146073 0.914979 +vt 0.893198 0.362986 +vt 0.890121 0.361209 +vt 0.893198 0.355879 +vt 0.811572 0.348357 +vt 0.717181 0.327679 +vt 0.717217 0.320572 +vt 0.754307 0.320572 +vt 0.717228 0.317019 +vt 0.754319 0.317019 +vt 0.437370 0.362557 +vt 0.438076 0.361271 +vt 0.373050 0.908404 +vt 0.376196 0.905467 +vt 0.374470 0.908404 +vt 0.381322 0.908424 +vt 0.380300 0.912643 +vt 0.379617 0.911373 +vt 0.444712 0.358315 +vt 0.441532 0.361280 +vt 0.443277 0.358315 +vt 0.382802 0.908425 +vt 0.386071 0.904175 +vt 0.386075 0.908426 +vt 0.390047 0.904173 +vt 0.390047 0.908429 +vt 0.146099 0.900603 +vt 0.200439 0.905390 +vt 0.146073 0.905397 +vt 0.375458 0.912574 +vt 0.376203 0.911344 +vt 0.200426 0.910188 +vt 0.146060 0.910188 +vt 0.375453 0.904234 +vt 0.379613 0.905470 +vt 0.200435 0.891107 +vt 0.146098 0.894997 +vt 0.146097 0.891120 +vt 0.442282 0.362529 +vt 0.492791 0.685579 +vt 0.438452 0.689457 +vt 0.438452 0.685579 +vt 0.492791 0.721150 +vt 0.492791 0.689457 +vt 0.380303 0.904202 +vt 0.540474 0.105465 +vt 0.544795 0.353018 +vt 0.540474 0.353051 +vt 0.451915 0.358315 +vt 0.447987 0.362523 +vt 0.447983 0.358315 +vt 0.557757 0.105393 +vt 0.562079 0.352970 +vt 0.557757 0.352979 +vt 0.386066 0.912677 +vt 0.451917 0.354109 +vt 0.447988 0.354106 +vt 0.496668 0.689457 +vt 0.496668 0.721150 +vt 0.390041 0.912683 +vt 0.588744 0.142487 +vt 0.592297 0.105409 +vt 0.592297 0.142499 +vt 0.536153 0.105474 +vt 0.536153 0.353083 +vt 0.200436 0.894984 +vt 0.200465 0.900596 +vt 0.931108 0.076493 +vt 0.928030 0.078269 +vt 0.924953 0.076493 +vt 0.570978 0.105409 +vt 0.574531 0.142487 +vt 0.570978 0.142499 +vt 0.578084 0.105373 +vt 0.581638 0.142451 +vt 0.578084 0.142463 +vt 0.508461 0.907025 +vt 0.505315 0.904087 +vt 0.506735 0.904088 +vt 0.574531 0.105397 +vt 0.137536 0.872938 +vt 0.133658 0.841244 +vt 0.137536 0.841244 +vt 0.585191 0.105373 +vt 0.585191 0.142463 +vt 0.513586 0.904067 +vt 0.512564 0.899849 +vt 0.515067 0.904067 +vt 0.588744 0.105397 +vt 0.553436 0.105426 +vt 0.553436 0.352977 +vt 0.544795 0.105467 +vt 0.549116 0.352987 +vt 0.434574 0.721150 +vt 0.438452 0.721150 +vt 0.079319 0.872938 +vt 0.075442 0.841244 +vt 0.079319 0.841244 +vt 0.508468 0.901147 +vt 0.507722 0.899917 +vt 0.004488 0.910503 +vt 0.058828 0.905715 +vt 0.058854 0.910510 +vt 0.200436 0.925392 +vt 0.200465 0.919780 +vt 0.004488 0.891333 +vt 0.058828 0.896120 +vt 0.004462 0.896127 +vt 0.518336 0.908317 +vt 0.512568 0.908289 +vt 0.512941 0.718715 +vt 0.516125 0.715744 +vt 0.513696 0.719960 +vt 0.507768 0.715767 +vt 0.508784 0.711502 +vt 0.509489 0.712788 +vt 0.079319 0.876815 +vt 0.133658 0.872938 +vt 0.133658 0.876815 +vt 0.511878 0.907022 +vt 0.519397 0.715744 +vt 0.523331 0.719949 +vt 0.519401 0.719952 +vt 0.507718 0.908258 +vt 0.508790 0.720029 +vt 0.506276 0.715768 +vt 0.004462 0.905709 +vt 0.058815 0.900918 +vt 0.735887 0.219714 +vt 0.705094 0.214630 +vt 0.735887 0.214630 +vt 0.004449 0.900918 +vt 0.519401 0.711535 +vt 0.513696 0.711529 +vt 0.518331 0.899814 +vt 0.509488 0.718739 +vt 0.748294 0.099420 +vt 0.755792 0.011948 +vt 0.755792 0.099420 +vt 0.512945 0.712778 +vt 0.707508 0.011948 +vt 0.700010 0.099420 +vt 0.700010 0.011948 +vt 0.511881 0.901119 +vt 0.712504 0.094423 +vt 0.712504 0.016944 +vt 0.748294 0.011948 +vt 0.707508 0.004449 +vt 0.748294 0.004449 +vt 0.522312 0.904062 +vt 0.522306 0.899808 +vt 0.743297 0.016944 +vt 0.523329 0.715744 +vt 0.058826 0.885714 +vt 0.058854 0.891326 +vt 0.058826 0.916122 +vt 0.004487 0.916109 +vt 0.514691 0.715744 +vt 0.705094 0.297194 +vt 0.735887 0.302278 +vt 0.705094 0.302278 +vt 0.737769 0.347238 +vt 0.734900 0.356939 +vt 0.734900 0.347238 +vt 0.705094 0.219714 +vt 0.700010 0.297194 +vt 0.700010 0.219714 +vt 0.932863 0.109247 +vt 0.932863 0.112116 +vt 0.923161 0.109247 +vt 0.933917 0.260197 +vt 0.933917 0.263066 +vt 0.924215 0.260197 +vt 0.604318 0.731971 +vt 0.602115 0.730699 +vt 0.606241 0.727821 +vt 0.731188 0.356939 +vt 0.731188 0.347238 +vt 0.754611 0.265349 +vt 0.752706 0.267523 +vt 0.752706 0.266449 +vt 0.748294 0.106918 +vt 0.707508 0.099420 +vt 0.735887 0.297194 +vt 0.740971 0.219714 +vt 0.740971 0.297194 +vt 0.720050 0.347238 +vt 0.717181 0.356939 +vt 0.717181 0.347238 +vt 0.572675 0.225800 +vt 0.583711 0.223985 +vt 0.586171 0.225800 +vt 0.743297 0.094423 +vt 0.570978 0.305598 +vt 0.574045 0.306080 +vt 0.570978 0.306080 +vt 0.364152 0.910774 +vt 0.323109 0.908574 +vt 0.364152 0.908574 +vt 0.606508 0.746419 +vt 0.604798 0.746006 +vt 0.606241 0.745019 +vt 0.004486 0.919986 +vt 0.058825 0.919999 +vt 0.723763 0.356939 +vt 0.727475 0.347238 +vt 0.727475 0.356939 +vt 0.602115 0.473300 +vt 0.605182 0.475844 +vt 0.602115 0.475844 +vt 0.570978 0.315149 +vt 0.574045 0.317693 +vt 0.570978 0.317693 +vt 0.720050 0.356939 +vt 0.723763 0.347238 +vt 0.570978 0.310061 +vt 0.574045 0.312605 +vt 0.570978 0.312605 +vt 0.570978 0.303054 +vt 0.574045 0.305598 +vt 0.570978 0.308200 +vt 0.574045 0.309625 +vt 0.570978 0.309625 +vt 0.549116 0.105457 +vt 0.604318 0.745957 +vt 0.602115 0.744685 +vt 0.570978 0.307233 +vt 0.574045 0.308200 +vt 0.522312 0.908318 +vt 0.518340 0.904065 +vt 0.755542 0.262612 +vt 0.754611 0.263149 +vt 0.323109 0.906374 +vt 0.364152 0.906374 +vt 0.602115 0.482567 +vt 0.605182 0.483534 +vt 0.602115 0.483534 +vt 0.364152 0.917375 +vt 0.323109 0.915175 +vt 0.364152 0.915175 +vt 0.749870 0.265886 +vt 0.750800 0.263149 +vt 0.750800 0.265349 +vt 0.752706 0.260974 +vt 0.752706 0.262048 +vt 0.586762 0.199046 +vt 0.586762 0.224189 +vt 0.323109 0.912975 +vt 0.364152 0.912975 +vt 0.323109 0.910774 +vt 0.602115 0.525465 +vt 0.605182 0.528009 +vt 0.602115 0.528009 +vt 0.604318 0.656918 +vt 0.602115 0.655646 +vt 0.606241 0.655979 +vt 0.602115 0.484960 +vt 0.605182 0.485396 +vt 0.602115 0.485396 +vt 0.605182 0.482567 +vt 0.602115 0.481414 +vt 0.605182 0.481414 +vt 0.590499 0.288336 +vt 0.570978 0.285062 +vt 0.590499 0.285062 +vt 0.590499 0.291611 +vt 0.570978 0.288336 +vt 0.570978 0.281787 +vt 0.590499 0.281787 +vt 0.323109 0.904173 +vt 0.364152 0.904173 +vt 0.708329 0.249551 +vt 0.708329 0.224408 +vt 0.749870 0.216268 +vt 0.752706 0.214630 +vt 0.755542 0.216268 +vt 0.570978 0.278513 +vt 0.590499 0.278513 +vt 0.572785 0.199250 +vt 0.570978 0.224189 +vt 0.570978 0.199046 +vt 0.602115 0.487940 +vt 0.605182 0.490484 +vt 0.602115 0.490484 +vt 0.605182 0.478388 +vt 0.602115 0.478388 +vt 0.604798 0.726834 +vt 0.606508 0.726421 +vt 0.721825 0.224408 +vt 0.583711 0.199250 +vt 0.572675 0.197435 +vt 0.586171 0.197435 +vt 0.590499 0.275238 +vt 0.570978 0.271963 +vt 0.590499 0.271963 +vt 0.721825 0.249551 +vt 0.574045 0.315149 +vt 0.574045 0.310061 +vt 0.574045 0.307233 +vt 0.605182 0.480932 +vt 0.602115 0.480932 +vt 0.605182 0.487940 +vt 0.570978 0.275238 +vt 0.570978 0.300510 +vt 0.574045 0.303054 +vt 0.604318 0.607310 +vt 0.606522 0.608582 +vt 0.602396 0.611459 +vt 0.606508 0.657380 +vt 0.604798 0.656966 +vt 0.605182 0.484960 +vt 0.603839 0.612446 +vt 0.602129 0.612860 +vt 0.602115 0.540105 +vt 0.605182 0.542649 +vt 0.602115 0.542649 +vt 0.604318 0.681510 +vt 0.606522 0.682782 +vt 0.602396 0.685659 +vt 0.602115 0.535017 +vt 0.605182 0.537561 +vt 0.602115 0.537561 +vt 0.605182 0.530553 +vt 0.602115 0.530553 +vt 0.605182 0.540105 +vt 0.752073 0.296350 +vt 0.749870 0.295078 +vt 0.753995 0.295412 +vt 0.605182 0.531035 +vt 0.602115 0.531035 +vt 0.602115 0.534580 +vt 0.605182 0.535017 +vt 0.605182 0.532188 +vt 0.602115 0.533155 +vt 0.605182 0.534580 +vt 0.603839 0.686646 +vt 0.602129 0.687059 +vt 0.602115 0.532188 +vt 0.605182 0.533155 +vt 0.754262 0.296812 +vt 0.752553 0.296399 +vt 0.373050 0.924649 +vt 0.375594 0.921582 +vt 0.375594 0.924649 +vt 0.385146 0.924649 +vt 0.387690 0.921582 +vt 0.387690 0.924649 +vt 0.378138 0.921582 +vt 0.378138 0.924649 +vt 0.380682 0.921582 +vt 0.380682 0.924649 +vt 0.604318 0.696350 +vt 0.606522 0.697622 +vt 0.602396 0.700499 +vt 0.390234 0.921582 +vt 0.390234 0.924649 +vt 0.604318 0.623003 +vt 0.606522 0.624275 +vt 0.602396 0.623941 +vt 0.381164 0.921582 +vt 0.381164 0.924649 +vt 0.384710 0.924649 +vt 0.385146 0.921582 +vt 0.382317 0.921582 +vt 0.383284 0.924649 +vt 0.384710 0.921582 +vt 0.603839 0.701486 +vt 0.602129 0.701899 +vt 0.382317 0.924649 +vt 0.383284 0.921582 +vt 0.602129 0.622541 +vt 0.603839 0.622954 +vt 0.831064 0.009630 +vt 0.843605 0.044727 +vt 0.831064 0.056426 +vt 0.743344 0.167794 +vt 0.743344 0.120997 +vt 0.703102 0.317019 +vt 0.668004 0.329561 +vt 0.656305 0.317019 +vt 0.590249 0.360353 +vt 0.625347 0.347811 +vt 0.637046 0.360353 +vt 0.831064 0.075685 +vt 0.843605 0.110783 +vt 0.831064 0.122482 +vt 0.874398 0.141741 +vt 0.861856 0.153440 +vt 0.666669 0.308120 +vt 0.651125 0.308120 +vt 0.814471 0.227922 +vt 0.822165 0.227919 +vt 0.651125 0.114795 +vt 0.666669 0.164339 +vt 0.425655 0.116357 +vt 0.005065 0.116357 +vt 0.626683 0.088269 +vt 0.642226 0.019993 +vt 0.642226 0.099121 +vt 0.425194 0.274253 +vt 0.004670 0.266914 +vt 0.425261 0.266913 +vt 0.425519 0.634857 +vt 0.004984 0.642197 +vt 0.601948 0.347811 +vt 0.585069 0.326519 +vt 0.601948 0.329561 +vt 0.814471 0.292577 +vt 0.822165 0.243037 +vt 0.822165 0.292577 +vt 0.434862 0.169871 +vt 0.459196 0.109197 +vt 0.459196 0.169871 +vt 0.691403 0.347811 +vt 0.730802 0.156094 +vt 0.712551 0.156094 +vt 0.434862 0.185241 +vt 0.459196 0.185241 +vt 0.434862 0.345130 +vt 0.459196 0.261311 +vt 0.459197 0.345130 +vt 0.492430 0.245636 +vt 0.468095 0.261311 +vt 0.468095 0.245636 +vt 0.843605 0.153440 +vt 0.864898 0.136561 +vt 0.927872 0.841352 +vt 0.903538 0.869430 +vt 0.903538 0.841352 +vt 0.771626 0.348357 +vt 0.492430 0.261311 +vt 0.468095 0.345130 +vt 0.626683 0.103943 +vt 0.425040 0.297936 +vt 0.004450 0.343672 +vt 0.004449 0.297937 +vt 0.911375 0.160895 +vt 0.883297 0.136561 +vt 0.911375 0.136561 +vt 0.492430 0.185241 +vt 0.468095 0.185241 +vt 0.434862 0.094079 +vt 0.459196 0.094079 +vt 0.492430 0.169871 +vt 0.890121 0.329554 +vt 0.914455 0.301476 +vt 0.914455 0.329554 +vt 0.434862 0.261311 +vt 0.459196 0.245636 +vt 0.843605 0.021329 +vt 0.864898 0.004449 +vt 0.861856 0.021329 +vt 0.840564 0.061606 +vt 0.864898 0.061606 +vt 0.559774 0.916335 +vt 0.927872 0.878329 +vt 0.903538 0.906407 +vt 0.903538 0.878329 +vt 0.617784 0.308120 +vt 0.602240 0.308120 +vt 0.593216 0.921447 +vt 0.585394 0.473304 +vt 0.593216 0.473300 +vt 0.425034 0.445458 +vt 0.004450 0.372388 +vt 0.425034 0.372389 +vt 0.739686 0.490810 +vt 0.701335 0.474126 +vt 0.535487 0.916338 +vt 0.405859 0.731434 +vt 0.005091 0.711617 +vt 0.425676 0.711617 +vt 0.651125 0.326519 +vt 0.651125 0.350853 +vt 0.740980 0.474737 +vt 0.523590 0.614076 +vt 0.499255 0.642155 +vt 0.499255 0.614076 +vt 0.434862 0.245636 +vt 0.492430 0.041459 +vt 0.004449 0.445457 +vt 0.788978 0.155761 +vt 0.004556 0.469617 +vt 0.425141 0.460139 +vt 0.617784 0.103943 +vt 0.772385 0.292577 +vt 0.764691 0.292577 +vt 0.805572 0.171119 +vt 0.005373 0.077519 +vt 0.425963 0.077519 +vt 0.005219 0.092198 +vt 0.425809 0.101678 +vt 0.005219 0.101678 +vt 0.434862 0.109197 +vt 0.005152 0.109018 +vt 0.425742 0.109018 +vt 0.642226 0.186675 +vt 0.425434 0.199796 +vt 0.749879 0.474737 +vt 0.789524 0.474126 +vt 0.751172 0.490810 +vt 0.749879 0.954293 +vt 0.641491 0.652942 +vt 0.641741 0.625305 +vt 0.658278 0.488738 +vt 0.877476 0.204559 +vt 0.875534 0.244505 +vt 0.875534 0.204559 +vt 0.425040 0.343671 +vt 0.024267 0.363490 +vt 0.576495 0.473305 +vt 0.568673 0.921447 +vt 0.568673 0.473300 +vt 0.425348 0.259574 +vt 0.877476 0.202617 +vt 0.917422 0.202617 +vt 0.004603 0.274254 +vt 0.425194 0.283257 +vt 0.666669 0.103943 +vt 0.915316 0.279534 +vt 0.875534 0.279534 +vt 0.425963 0.004449 +vt 0.005373 0.004449 +vt 0.915316 0.282942 +vt 0.875534 0.282942 +vt 0.691403 0.329561 +vt 0.708282 0.350853 +vt 0.733844 0.205732 +vt 0.535486 0.473300 +vt 0.781284 0.083601 +vt 0.616381 0.473300 +vt 0.616381 0.506586 +vt 0.632175 0.952056 +vt 0.616381 0.554136 +vt 0.618764 0.965790 +vt 0.618423 0.937186 +vt 0.617937 0.896322 +vt 0.617645 0.871803 +vt 0.617159 0.830939 +vt 0.616381 0.582667 +vt 0.616380 0.630217 +vt 0.616867 0.806430 +vt 0.616380 0.765570 +vt 0.772385 0.243035 +vt 0.772385 0.099229 +vt 0.764691 0.004449 +vt 0.788979 0.292577 +vt 0.831397 0.301476 +vt 0.772385 0.171120 +vt 0.916075 0.354471 +vt 0.917097 0.340476 +vt 0.919563 0.338452 +vt 0.581638 0.151398 +vt 0.883297 0.020457 +vt 0.927292 0.279071 +vt 0.924215 0.277294 +vt 0.924215 0.273741 +vt 0.920274 0.136561 +vt 0.927170 0.136561 +vt 0.923762 0.152580 +vt 0.831064 0.206494 +vt 0.067790 0.919986 +vt 0.477872 0.354064 +vt 0.501328 0.105361 +vt 0.589098 0.305840 +vt 0.582943 0.305840 +vt 0.582944 0.302286 +vt 0.920435 0.062264 +vt 0.834941 0.202617 +vt 0.067791 0.885727 +vt 0.066543 0.872938 +vt 0.890121 0.342714 +vt 0.408851 0.897863 +vt 0.408851 0.928245 +vt 0.907176 0.346945 +vt 0.442073 0.574212 +vt 0.933055 0.325814 +vt 0.923354 0.325814 +vt 0.924775 0.319515 +vt 0.928205 0.318094 +vt 0.575384 0.354800 +vt 0.575384 0.357344 +vt 0.573181 0.358616 +vt 0.570978 0.357344 +vt 0.570978 0.354800 +vt 0.851652 0.273609 +vt 0.933055 0.309195 +vt 0.923354 0.309195 +vt 0.924775 0.302896 +vt 0.928205 0.301476 +vt 0.586171 0.234699 +vt 0.603013 0.598411 +vt 0.606522 0.593742 +vt 0.606522 0.596286 +vt 0.604318 0.597558 +vt 0.602115 0.596286 +vt 0.602115 0.499383 +vt 0.586762 0.261453 +vt 0.273168 0.904173 +vt 0.506276 0.682955 +vt 0.752706 0.236627 +vt 0.749870 0.234990 +vt 0.749870 0.231716 +vt 0.602115 0.551547 +vt 0.602115 0.581446 +vt 0.602115 0.578902 +vt 0.604318 0.577630 +vt 0.606522 0.578902 +vt 0.606522 0.581446 +vt 0.491177 0.355301 +vt 0.491177 0.357845 +vt 0.488973 0.359117 +vt 0.486770 0.357845 +vt 0.487668 0.359970 +vt 0.574045 0.343776 +vt 0.606522 0.639115 +vt 0.606522 0.641659 +vt 0.604319 0.642931 +vt 0.602115 0.641659 +vt 0.602115 0.639115 +vt 0.754276 0.277694 +vt 0.754276 0.280238 +vt 0.752073 0.281510 +vt 0.749870 0.280238 +vt 0.750768 0.282363 +vt 0.606522 0.713315 +vt 0.606522 0.715859 +vt 0.604319 0.717131 +vt 0.602115 0.715859 +vt 0.602115 0.713315 +vt 0.273168 0.929341 +vt 0.606522 0.667942 +vt 0.606522 0.670486 +vt 0.604318 0.671758 +vt 0.602115 0.670486 +vt 0.603013 0.672611 +vt 0.709510 0.115817 +vt 0.840564 0.070505 +vt 0.864898 0.193718 +vt 0.434862 0.004449 +vt 0.883297 0.095497 +vt 0.617784 0.004449 +vt 0.675567 0.004449 +vt 0.559774 0.473300 +vt 0.805572 0.083601 +vt 0.814471 0.099228 +vt 0.790449 0.473300 +vt 0.814471 0.171119 +vt 0.754319 0.338339 +vt 0.753565 0.363256 +vt 0.746668 0.363256 +vt 0.750076 0.347238 +vt 0.434862 0.358290 +vt 0.925634 0.185813 +vt 0.918738 0.176702 +vt 0.918738 0.185813 +vt 0.666669 0.004449 +vt 0.764691 0.305467 +vt 0.915316 0.271354 +vt 0.890121 0.357656 +vt 0.896275 0.357656 +vt 0.896275 0.361209 +vt 0.451917 0.362521 +vt 0.562079 0.105361 +vt 0.924953 0.072939 +vt 0.928030 0.071163 +vt 0.931108 0.072940 +vt 0.581638 0.105361 +vt 0.434574 0.689457 +vt 0.075442 0.872938 +vt 0.146098 0.925379 +vt 0.523331 0.711537 +vt 0.004487 0.885727 +vt 0.737769 0.356939 +vt 0.923161 0.112116 +vt 0.924582 0.105817 +vt 0.928012 0.104396 +vt 0.931442 0.105817 +vt 0.924215 0.263066 +vt 0.925636 0.256767 +vt 0.929066 0.255346 +vt 0.932496 0.256767 +vt 0.602115 0.728155 +vt 0.604318 0.726883 +vt 0.606522 0.728155 +vt 0.606522 0.730699 +vt 0.755542 0.265886 +vt 0.707508 0.106918 +vt 0.572785 0.223985 +vt 0.605624 0.746811 +vt 0.605182 0.473300 +vt 0.602115 0.742141 +vt 0.604318 0.740869 +vt 0.606522 0.742141 +vt 0.606522 0.744685 +vt 0.323109 0.917375 +vt 0.749870 0.262611 +vt 0.605182 0.525465 +vt 0.602115 0.653102 +vt 0.604318 0.651830 +vt 0.606522 0.653102 +vt 0.606522 0.655646 +vt 0.570978 0.291611 +vt 0.755542 0.219542 +vt 0.752706 0.221180 +vt 0.749870 0.219542 +vt 0.605624 0.726029 +vt 0.574045 0.300510 +vt 0.606522 0.611126 +vt 0.604318 0.612398 +vt 0.602115 0.611126 +vt 0.602115 0.608582 +vt 0.605624 0.657771 +vt 0.603013 0.613251 +vt 0.606522 0.685326 +vt 0.604318 0.686598 +vt 0.602115 0.685326 +vt 0.602115 0.682782 +vt 0.749870 0.292534 +vt 0.752073 0.291262 +vt 0.754276 0.292534 +vt 0.754276 0.295078 +vt 0.603013 0.687451 +vt 0.753378 0.297203 +vt 0.373050 0.921582 +vt 0.606522 0.700166 +vt 0.604318 0.701438 +vt 0.602115 0.700166 +vt 0.602115 0.697622 +vt 0.606522 0.626819 +vt 0.604318 0.628091 +vt 0.602115 0.626819 +vt 0.602115 0.624275 +vt 0.603013 0.702291 +vt 0.603013 0.622150 +vt 0.874398 0.188538 +vt 0.626683 0.004449 +vt 0.585069 0.350853 +vt 0.814471 0.243034 +vt 0.840564 0.136561 +vt 0.927872 0.869430 +vt 0.492430 0.345130 +vt 0.883297 0.160895 +vt 0.890121 0.301476 +vt 0.840564 0.004449 +vt 0.927872 0.906407 +vt 0.585394 0.921451 +vt 0.024908 0.731434 +vt 0.523590 0.642155 +vt 0.658278 0.937198 +vt 0.642978 0.726786 +vt 0.642978 0.952498 +vt 0.642978 0.920254 +vt 0.642978 0.874191 +vt 0.642978 0.846554 +vt 0.642978 0.800490 +vt 0.642825 0.505544 +vt 0.643117 0.473300 +vt 0.642158 0.579242 +vt 0.642408 0.551605 +vt 0.642978 0.772852 +vt 0.641074 0.699003 +vt 0.405223 0.363488 +vt 0.576495 0.921451 +vt 0.708282 0.326519 +vn 0.0000 -1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.7071 -0.7071 0.0000 +vn -0.7208 -0.6931 0.0000 +vn 0.0000 0.7071 0.7071 +vn -0.7071 -0.7071 0.0000 +vn 0.0005 0.8669 0.4984 +vn -0.0005 0.8669 -0.4984 +vn -0.0005 0.8651 -0.5016 +vn 0.0000 0.9416 0.3368 +vn 0.0000 0.5185 0.8551 +vn 0.0000 0.9416 0.3367 +vn -0.0009 -0.0000 -1.0000 +vn 0.0005 -0.8651 0.5016 +vn 0.0009 0.0000 1.0000 +vn 0.0005 -0.8669 0.4984 +vn 0.0000 0.1029 0.9947 +vn 0.0005 0.8651 0.5016 +vn 0.8773 -0.0000 -0.4799 +vn 0.9438 -0.2844 -0.1682 +vn 0.9861 0.0000 -0.1660 +vn -0.8773 -0.0000 0.4799 +vn -0.8778 -0.4127 0.2431 +vn -0.8776 0.0000 0.4795 +vn -0.0005 -0.8651 -0.5016 +vn -1.0000 -0.0000 0.0076 +vn -0.0005 -0.8669 -0.4984 +vn 0.8778 0.4175 0.2349 +vn 0.8784 0.0000 0.4779 +vn 0.8781 0.0000 0.4785 +vn -0.8774 -0.4131 0.2439 +vn -0.9430 -0.2896 -0.1641 +vn 0.0000 0.8671 0.4982 +vn 0.0002 0.8650 0.5018 +vn -0.8778 0.4127 0.2431 +vn -0.8774 0.4131 0.2439 +vn -0.8778 0.4175 -0.2349 +vn -0.9850 -0.0000 -0.1723 +vn -0.8781 -0.0000 -0.4785 +vn 0.8774 -0.4131 -0.2439 +vn 0.8783 -0.4163 0.2352 +vn 0.8774 0.4131 -0.2439 +vn 0.8783 0.4163 0.2352 +vn 0.0000 -0.8671 0.4982 +vn -0.0001 -1.0000 -0.0004 +vn 0.0002 0.0000 1.0000 +vn 0.8778 -0.4175 0.2349 +vn -0.8778 -0.4175 -0.2349 +vn 1.0000 0.0000 0.0021 +vn 1.0000 -0.0006 0.0006 +vn 0.9438 0.2844 -0.1682 +vn 0.0000 -1.0000 -0.0003 +vn -0.9430 0.2896 -0.1641 +vn -1.0000 0.0012 -0.0027 +vn -1.0000 0.0000 -0.0063 +vn 0.0000 -0.8650 -0.5018 +vn -1.0000 -0.0018 -0.0041 +vn 0.0000 -0.0000 -1.0000 +vn 0.0000 0.8650 -0.5018 +vn 1.0000 0.0010 0.0009 +vn 1.0000 -0.0000 0.0076 +vn 0.0002 -0.8650 0.5018 +vn 0.0005 0.8651 -0.5016 +vn 0.0009 -0.0000 -1.0000 +vn 0.0005 0.8669 -0.4984 +vn -0.0005 -0.8669 0.4984 +vn 0.0005 -0.8669 -0.4984 +vn 0.0005 -0.8651 -0.5016 +vn -0.0001 1.0000 -0.0000 +vn -0.0001 1.0000 -0.0004 +vn -0.0009 -0.0000 1.0000 +vn -0.0005 -0.8651 0.5016 +vn -0.0005 0.8651 0.5016 +vn -0.8773 0.0000 -0.4800 +vn -0.9438 -0.2844 -0.1682 +vn -0.8774 -0.4131 -0.2439 +vn -0.8784 -0.0000 0.4779 +vn -0.8778 0.4175 0.2349 +vn -0.8781 -0.0000 0.4785 +vn -0.0002 -0.8650 0.5018 +vn -0.0005 0.8669 0.4984 +vn -1.0000 -0.0006 0.0006 +vn 1.0000 0.0012 -0.0027 +vn -0.8778 -0.4175 0.2349 +vn -0.0002 0.0000 1.0000 +vn -0.0002 0.8650 0.5018 +vn 0.8778 0.4127 0.2431 +vn 0.8773 -0.0000 0.4799 +vn 0.8774 0.4131 0.2439 +vn 0.8774 -0.4131 0.2439 +vn 0.9430 -0.2896 -0.1641 +vn 0.8778 -0.4175 -0.2349 +vn -0.9861 0.0000 -0.1660 +vn -1.0000 0.0000 0.0021 +vn 0.9850 -0.0000 -0.1723 +vn 0.8781 -0.0000 -0.4785 +vn -0.8783 0.4163 0.2352 +vn -0.8774 0.4131 -0.2439 +vn 0.9430 0.2896 -0.1641 +vn 1.0000 0.0000 -0.0063 +vn 1.0000 -0.0018 -0.0041 +vn -1.0000 0.0010 0.0009 +vn -0.9438 0.2844 -0.1682 +vn 0.8778 -0.4127 0.2431 +vn 0.0001 -1.0000 -0.0004 +vn 0.0001 1.0000 -0.0000 +vn 0.0001 1.0000 -0.0004 +vn 0.8778 0.4175 -0.2349 +vn -0.8783 -0.4163 0.2352 +vn -0.9808 0.0000 0.1951 +vn -0.7071 0.0000 0.7071 +vn 0.9808 0.0000 0.1951 +vn 0.9936 0.0000 0.1127 +vn 0.7071 0.0000 0.7071 +vn 0.0000 0.9268 0.3755 +vn 0.0000 0.8731 0.4875 +vn 0.0000 0.9268 0.3754 +vn 0.0000 0.3265 0.9452 +vn 0.0000 -0.8660 0.5000 +vn 0.0000 0.2935 -0.9559 +vn 0.0000 -0.6811 -0.7322 +vn 0.0000 0.9838 -0.1795 +vn 0.0000 0.3364 -0.9417 +vn 0.0000 0.9746 -0.2238 +vn 0.0000 -0.9746 0.2238 +vn 0.0000 -0.7322 0.6811 +vn 0.0000 -0.8469 0.5318 +vn 0.0000 -0.8469 0.5317 +vn 0.0000 0.8660 0.5000 +vn 0.0000 0.8660 -0.5000 +vn 0.0000 0.5914 0.8064 +vn 0.0000 -0.8660 -0.5000 +vn 0.0000 -0.9981 0.0608 +vn 0.0000 -0.9982 0.0608 +vn -0.9936 0.0000 0.1127 +vn 0.0000 -0.1211 0.9926 +vn 0.0000 0.6473 0.7622 +vn 0.0000 0.9988 0.0492 +vn 0.0000 -0.6473 -0.7622 +vn 0.0000 -0.0308 0.9995 +vn 0.0000 -0.9417 -0.3364 +vn 0.0000 0.0934 0.9956 +vn 0.0000 -0.9369 0.3495 +vn 0.0000 -0.9369 0.3496 +vn 0.0000 -0.6888 0.7249 +vn 0.0000 -0.8619 -0.5070 +vn 0.0000 0.4161 0.9093 +vn 0.0000 0.7931 -0.6091 +vn 0.0000 -0.1309 -0.9914 +vn 0.0000 0.9968 0.0800 +vn 0.0000 0.9968 0.0799 +vn 0.0000 -0.9240 -0.3823 +vn 0.0000 -0.7931 0.6091 +vn 0.0000 -0.3823 0.9240 +vn 0.0000 0.9990 -0.0443 +vn 0.0000 0.3030 0.9530 +vn 0.0000 0.6902 0.7236 +vn 0.0000 -0.5488 0.8360 +vn 0.0000 0.9286 -0.3710 +vn 0.0000 0.9473 0.3203 +vn 0.0000 0.7510 -0.6603 +vn 0.0000 0.4880 0.8728 +vn 0.0000 -0.1963 -0.9805 +vn 0.0000 -0.9473 -0.3203 +vn 0.0000 -0.9806 0.1963 +vn 0.0000 0.5925 0.8055 +vn 0.0000 -0.6234 0.7819 +vn 0.0000 -0.2174 0.9761 +vn 0.0000 -1.0000 0.0089 +vn 0.0000 0.8248 0.5654 +vn 0.0000 -0.2425 0.9701 +vn 0.7208 -0.6931 0.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 0.7071 -0.7071 +vn -0.8773 -0.0000 -0.4799 +vn -0.8778 -0.4127 -0.2431 +vn -0.9430 -0.2896 0.1641 +vn 0.0000 0.1029 -0.9947 +vn 0.0000 0.5185 -0.8551 +vn 0.0000 0.8671 -0.4982 +vn 0.0002 0.8650 -0.5018 +vn -1.0000 -0.0000 -0.0076 +vn -0.8778 0.4127 -0.2431 +vn 0.8784 0.0000 -0.4779 +vn 0.9438 -0.2844 0.1682 +vn -0.9850 -0.0000 0.1723 +vn 0.9861 0.0000 0.1660 +vn 1.0000 -0.0006 -0.0006 +vn 1.0000 0.0000 -0.0021 +vn 0.0000 -0.8671 -0.4982 +vn 0.0002 -0.8650 -0.5018 +vn 0.8783 -0.4163 -0.2352 +vn 0.0002 0.0000 -1.0000 +vn 0.8783 0.4163 -0.2352 +vn 0.0000 -1.0000 0.0003 +vn -0.9430 0.2896 0.1641 +vn 0.9438 0.2844 0.1682 +vn 0.0000 -0.8650 0.5018 +vn -1.0000 0.0012 0.0027 +vn -1.0000 0.0000 0.0063 +vn 0.0000 0.8650 0.5018 +vn 1.0000 0.0010 -0.0009 +vn -1.0000 -0.0018 0.0041 +vn -0.0001 -1.0000 0.0004 +vn 1.0000 -0.0000 -0.0076 +vn -0.8784 -0.0000 -0.4779 +vn -1.0000 -0.0006 -0.0006 +vn -0.8773 0.0000 0.4800 +vn -0.9438 -0.2844 0.1682 +vn -0.9861 0.0000 0.1660 +vn 1.0000 0.0012 0.0027 +vn -0.8783 -0.4163 -0.2352 +vn 0.0001 -1.0000 0.0004 +vn -0.0001 1.0000 0.0004 +vn -0.0002 0.8650 -0.5018 +vn -0.9438 0.2844 0.1682 +vn 0.9850 -0.0000 0.1723 +vn 0.9430 -0.2896 0.1641 +vn 0.8778 0.4127 -0.2431 +vn 1.0000 0.0000 0.0063 +vn 1.0000 -0.0018 0.0041 +vn -0.8783 0.4163 -0.2352 +vn 0.8778 -0.4127 -0.2431 +vn 0.8776 0.0000 -0.4795 +vn -0.0002 -0.8650 -0.5018 +vn -0.0002 0.0000 -1.0000 +vn 0.9430 0.2896 0.1641 +vn -1.0000 0.0010 -0.0009 +vn 0.8778 0.4174 0.2349 +vn 0.0001 1.0000 0.0004 +vn -0.9808 0.0000 -0.1951 +vn -0.7071 0.0000 -0.7071 +vn 0.9808 0.0000 -0.1951 +vn 0.9936 0.0000 -0.1127 +vn 0.0000 0.8731 -0.4875 +vn 0.0000 0.9268 -0.3755 +vn 0.0000 0.9268 -0.3754 +vn 0.7071 0.0000 -0.7071 +vn 0.0000 0.3364 0.9417 +vn 0.0000 0.9838 0.1795 +vn 0.0000 -0.6811 0.7322 +vn 0.0000 0.2935 0.9559 +vn 0.0000 -0.7322 -0.6811 +vn 0.0000 -0.9746 -0.2238 +vn 0.0000 0.9746 0.2238 +vn 0.0000 -0.8469 -0.5317 +vn 0.0000 -0.8469 -0.5318 +vn 0.0000 0.3265 -0.9452 +vn -1.0000 0.0000 -0.0021 +vn 0.0000 -0.6888 -0.7249 +vn 0.0000 0.5914 -0.8064 +vn 0.0000 -0.1309 0.9914 +vn 0.0000 0.7931 0.6091 +vn 0.0000 -0.9369 -0.3496 +vn 0.0000 -0.9369 -0.3495 +vn 0.0000 0.4161 -0.9093 +vn 0.0000 0.0934 -0.9956 +vn 0.0000 -0.9982 -0.0608 +vn 0.0000 -0.9981 -0.0608 +vn 0.0000 -0.6473 0.7622 +vn 0.0000 0.6473 -0.7622 +vn -0.9936 0.0000 -0.1127 +vn 0.0000 -0.1211 -0.9926 +vn 0.0000 0.9988 -0.0492 +vn 0.0000 -0.0308 -0.9995 +vn 0.0000 -0.9417 0.3364 +vn 0.0000 -0.8619 0.5070 +vn 0.0000 -0.9240 0.3823 +vn 0.0000 -0.3823 -0.9240 +vn 0.0000 -0.7931 -0.6091 +vn 0.0000 0.9968 -0.0800 +vn 0.0000 0.9968 -0.0799 +vn 0.0000 0.9990 0.0443 +vn 0.0000 0.3030 -0.9530 +vn 0.0000 0.9286 0.3710 +vn 0.0000 -0.5488 -0.8360 +vn 0.0000 0.6902 -0.7236 +vn 0.0000 -0.1963 0.9805 +vn 0.0000 0.7510 0.6603 +vn 0.0000 -0.9806 -0.1963 +vn 0.0000 -0.9473 0.3203 +vn 0.0000 0.9473 -0.3203 +vn 0.0000 0.4880 -0.8728 +vn 0.0000 0.5925 -0.8055 +vn 0.0000 -0.6234 -0.7819 +vn 0.0000 0.8248 -0.5654 +vn 0.0000 -1.0000 -0.0089 +vn 0.0000 -0.2174 -0.9761 +vn 0.0000 -0.2425 -0.9701 +vn 0.0000 0.9416 -0.3368 +vn 0.0000 0.9416 -0.3367 +vn 0.0000 1.0000 -0.0007 +vn 0.8776 0.0000 0.4795 +vn 1.0000 0.0001 0.0000 +vn 0.0000 0.9287 -0.3709 +vn 0.0000 -0.9805 0.1963 +vn -0.8776 0.0000 -0.4795 +vn 0.0000 1.0000 0.0007 +vn 0.0000 0.9287 0.3709 +vn 0.0000 -0.9805 -0.1963 +s 1 +f 708/1/1 6/2/1 696/3/1 +f 88/4/2 92/5/2 87/6/2 +f 346/7/3 19/8/3 4/9/3 +f 80/10/4 74/11/4 73/12/4 +f 30/13/5 55/14/5 54/15/5 +f 54/15/5 29/16/5 30/13/5 +f 35/17/6 69/18/6 48/19/6 +f 10/20/7 16/21/7 15/22/7 +f 5/23/5 4/24/5 10/25/5 +f 40/26/3 8/27/3 2/28/3 +f 33/29/6 77/30/6 50/31/6 +f 697/32/8 709/33/8 685/34/8 +f 14/35/5 20/36/5 5/23/5 +f 692/37/5 2/38/5 691/39/5 +f 76/40/9 78/41/9 77/30/9 +f 38/42/2 28/43/2 27/44/2 +f 59/45/5 63/46/5 62/47/5 +f 41/48/5 22/49/5 44/50/5 +f 37/51/6 61/52/6 46/53/6 +f 52/54/5 31/55/5 32/56/5 +f 42/57/5 23/58/5 41/48/5 +f 1/59/5 51/60/5 3/61/5 +f 56/62/5 27/63/5 28/64/5 +f 45/65/5 35/17/5 48/19/5 +f 32/66/2 36/67/2 29/68/2 +f 46/69/3 44/70/3 43/71/3 +f 39/72/5 24/73/5 42/57/5 +f 67/74/5 71/75/5 70/76/5 +f 12/77/5 13/78/5 14/35/5 +f 13/79/10 18/80/10 17/81/10 +f 31/82/2 7/83/2 34/84/2 +f 86/85/5 90/86/5 82/87/5 +f 43/71/3 17/88/3 46/69/3 +f 90/86/3 83/89/3 89/90/3 +f 72/91/4 66/92/4 65/93/4 +f 60/94/9 62/47/9 61/52/9 +f 101/95/1 97/96/1 98/97/1 +f 39/98/3 47/99/3 50/100/3 +f 36/67/2 30/101/2 29/68/2 +f 47/102/1 65/93/1 36/103/1 +f 34/84/2 32/66/2 31/82/2 +f 50/100/3 40/26/3 39/98/3 +f 44/50/5 21/104/5 43/105/5 +f 41/106/3 45/107/3 48/108/3 +f 84/109/6 91/110/6 88/111/6 +f 68/112/9 70/76/9 69/18/9 +f 113/113/11 131/114/12 114/115/13 +f 85/116/6 93/117/6 81/118/6 +f 81/119/5 90/86/5 89/90/5 +f 104/120/14 108/121/15 106/122/16 +f 86/123/3 96/124/3 85/125/3 +f 114/115/13 122/126/17 109/127/17 +f 81/128/2 94/129/2 82/130/2 +f 82/131/1 95/132/1 86/133/1 +f 87/134/1 89/90/1 83/135/1 +f 99/136/6 106/122/16 102/137/6 +f 95/132/5 93/117/5 96/124/5 +f 45/65/1 57/138/1 38/139/1 +f 99/140/3 98/141/3 103/142/3 +f 125/143/18 112/144/19 111/145/20 +f 85/146/5 91/110/5 86/85/5 +f 105/147/15 107/148/21 108/121/15 +f 112/144/19 129/149/22 113/113/11 +f 121/150/23 138/151/24 118/152/25 +f 127/153/26 135/154/27 133/155/28 +f 122/156/17 110/157/29 109/158/17 +f 107/148/21 97/96/5 100/159/5 +f 112/160/30 113/161/30 114/162/30 +f 123/163/31 111/145/20 110/157/29 +f 108/164/2 107/165/2 102/166/2 +f 130/167/32 134/168/33 128/169/34 +f 125/170/35 137/171/36 135/154/27 +f 119/172/6 116/173/37 115/174/38 +f 127/153/26 116/175/39 129/176/40 +f 131/177/41 117/178/42 122/179/43 +f 124/180/44 136/181/45 138/151/24 +f 132/182/46 115/183/47 130/167/32 +f 138/184/1 135/185/48 137/186/49 +f 115/174/38 133/187/50 134/188/50 +f 126/189/51 134/168/33 136/181/45 +f 123/190/52 117/178/42 137/171/36 +f 149/191/2 154/192/53 153/193/2 +f 150/194/5 140/195/5 147/196/5 +f 118/152/25 150/197/54 119/198/55 +f 146/199/6 140/195/6 144/200/6 +f 141/201/1 143/202/56 139/203/1 +f 129/176/40 120/204/57 131/177/41 +f 147/205/58 151/206/3 152/207/59 +f 172/208/48 124/209/60 170/210/60 +f 121/150/23 119/198/55 132/182/46 +f 152/207/59 141/211/3 139/212/61 +f 147/205/58 117/178/42 120/204/57 +f 167/213/62 132/214/63 178/215/63 +f 143/216/64 118/152/25 138/151/24 +f 138/184/1 139/203/1 143/202/56 +f 117/178/42 139/212/61 137/171/36 +f 170/210/60 121/217/62 167/218/62 +f 157/219/65 156/220/65 160/221/65 +f 136/222/66 133/187/50 135/185/48 +f 153/193/2 143/216/64 145/223/2 +f 160/224/67 168/225/68 177/226/69 +f 174/227/5 126/228/48 172/208/48 +f 146/229/2 150/194/54 149/230/2 +f 140/195/3 148/231/3 147/196/58 +f 157/232/70 169/233/71 156/234/72 +f 119/172/6 147/235/73 120/236/74 +f 158/237/75 171/238/76 157/232/70 +f 158/237/75 175/239/77 173/240/75 +f 167/241/78 184/242/79 170/243/80 +f 180/244/81 176/245/82 174/246/83 +f 184/247/1 181/248/48 182/249/84 +f 159/250/85 177/226/69 175/239/77 +f 196/251/86 192/252/3 195/253/3 +f 194/254/2 186/255/2 193/256/87 +f 172/257/88 180/244/81 174/246/83 +f 156/234/72 168/258/68 155/259/68 +f 178/215/63 130/260/37 176/261/37 +f 179/262/89 161/263/90 180/264/89 +f 162/265/91 173/266/92 175/267/93 +f 190/268/6 188/269/6 192/270/6 +f 162/271/37 165/272/6 161/263/90 +f 171/273/94 183/274/95 169/275/96 +f 164/276/97 196/277/86 200/278/98 +f 169/275/96 163/279/99 168/280/100 +f 161/281/101 178/282/102 176/245/82 +f 163/279/99 193/283/87 166/284/103 +f 187/285/2 198/286/104 185/287/105 +f 164/276/97 189/288/106 184/242/79 +f 165/289/107 167/241/78 178/282/102 +f 182/249/84 179/262/89 180/264/89 +f 173/266/92 181/290/108 171/273/94 +f 206/291/3 258/292/3 205/293/3 +f 184/247/1 185/294/1 183/295/109 +f 193/256/5 190/268/5 196/251/5 +f 193/296/110 165/272/6 166/297/111 +f 204/298/6 211/299/6 208/300/6 +f 163/279/99 185/287/105 198/286/104 +f 166/284/103 175/267/93 177/301/112 +f 189/288/106 199/302/3 191/303/3 +f 207/304/1 209/305/1 203/306/1 +f 205/307/5 211/299/5 206/308/5 +f 200/278/98 195/309/3 199/302/3 +f 197/310/2 193/283/87 198/286/104 +f 210/311/3 203/312/3 209/305/3 +f 208/313/2 212/314/2 207/315/2 +f 205/316/6 255/317/6 201/318/6 +f 170/243/80 182/319/113 172/257/88 +f 202/320/1 257/321/1 206/322/1 +f 202/323/5 211/299/5 210/311/5 +f 201/324/5 212/314/5 205/307/5 +f 201/325/2 256/326/2 202/327/2 +f 230/328/6 229/329/6 224/330/6 +f 275/331/3 276/332/3 273/333/3 +f 224/334/114 217/335/3 222/336/114 +f 201/324/5 210/311/5 209/305/5 +f 225/337/115 222/336/114 223/338/115 +f 223/339/1 222/340/1 226/341/1 +f 220/342/2 226/343/116 219/344/2 +f 214/345/117 259/346/117 260/347/117 +f 163/279/99 177/301/112 168/280/100 +f 237/348/3 254/349/3 245/350/3 +f 176/261/37 128/351/5 174/227/5 +f 185/294/1 191/352/1 187/353/1 +f 221/354/5 230/355/118 228/356/5 +f 277/357/119 273/358/120 276/359/121 +f 282/360/122 280/361/122 279/362/122 +f 239/363/123 234/364/5 233/365/123 +f 277/366/2 282/367/2 278/368/2 +f 227/369/118 229/370/116 230/355/118 +f 270/371/2 268/372/2 278/368/2 +f 266/373/124 267/374/125 265/375/124 +f 228/356/5 223/338/115 221/354/5 +f 286/376/126 287/377/127 285/378/126 +f 274/379/120 263/380/128 273/358/120 +f 270/381/129 271/382/130 269/383/129 +f 278/384/131 279/362/132 275/385/132 +f 237/348/3 250/386/3 238/387/3 +f 240/388/3 251/389/3 252/390/3 +f 240/391/5 235/392/133 234/364/5 +f 240/388/3 253/393/3 241/394/3 +f 241/395/133 236/396/134 235/392/133 +f 213/397/135 262/398/135 259/346/135 +f 238/399/136 233/365/123 232/400/136 +f 242/401/134 231/402/62 236/396/134 +f 249/403/134 245/404/62 254/405/134 +f 214/406/5 257/321/5 256/326/5 +f 214/407/137 261/408/138 215/409/138 +f 237/410/62 232/400/136 231/411/62 +f 247/412/5 253/413/133 252/414/5 +f 246/415/123 252/414/5 251/416/123 +f 248/417/133 254/405/134 253/413/133 +f 248/418/2 247/419/2 246/420/2 +f 261/408/5 259/346/5 262/398/5 +f 213/421/5 258/292/5 216/422/5 +f 244/423/62 250/424/136 245/425/62 +f 241/394/3 254/349/3 242/426/3 +f 216/422/5 257/321/5 215/427/5 +f 215/428/139 262/398/139 216/429/139 +f 264/430/128 265/431/124 263/380/128 +f 268/432/125 269/383/129 267/374/125 +f 238/387/3 251/389/3 239/433/3 +f 243/434/136 251/416/123 250/424/136 +f 213/421/5 256/326/5 255/317/5 +f 272/435/140 275/385/140 271/382/140 +f 284/436/141 285/378/126 283/437/141 +f 276/359/121 281/438/142 277/357/119 +f 276/332/3 279/439/3 280/440/3 +f 295/441/3 296/442/3 293/443/3 +f 288/444/127 289/445/143 287/446/127 +f 294/447/144 283/437/141 293/448/144 +f 290/449/143 291/450/145 289/445/143 +f 290/451/2 288/452/2 298/453/2 +f 297/454/146 293/448/144 296/455/146 +f 292/456/147 295/457/148 291/450/148 +f 296/442/3 299/458/3 300/459/3 +f 302/460/149 300/461/149 299/462/149 +f 298/463/150 299/462/150 295/457/150 +f 296/455/146 301/464/151 297/454/146 +f 297/465/2 302/466/2 298/453/2 +f 304/467/152 305/468/153 303/469/152 +f 315/470/3 316/471/3 313/472/3 +f 314/473/154 303/469/152 313/474/155 +f 306/475/153 307/476/156 305/477/153 +f 310/478/157 311/479/158 309/480/157 +f 308/481/156 309/480/157 307/476/156 +f 310/482/2 308/483/2 318/484/2 +f 317/485/159 313/474/155 316/486/159 +f 312/487/160 315/488/160 311/479/160 +f 316/471/3 319/489/3 320/490/3 +f 322/491/161 320/492/161 319/493/161 +f 318/494/162 319/493/162 315/488/162 +f 316/486/159 321/495/163 317/485/159 +f 317/496/2 322/497/2 318/484/2 +f 324/498/164 325/499/165 323/500/164 +f 335/501/3 336/502/3 333/503/3 +f 334/504/166 323/500/164 333/505/166 +f 326/506/165 327/507/167 325/499/165 +f 330/508/168 331/509/169 329/510/168 +f 328/511/167 329/510/168 327/512/167 +f 330/513/2 328/514/2 338/515/2 +f 337/516/170 333/505/166 336/517/170 +f 332/518/171 335/519/171 331/509/171 +f 336/502/3 339/520/3 340/521/3 +f 342/522/172 340/523/172 339/524/172 +f 338/525/173 339/524/173 335/519/173 +f 336/517/170 341/526/174 337/516/170 +f 337/527/2 342/528/2 338/515/2 +f 713/529/175 690/530/175 689/531/175 +f 719/532/8 707/533/8 731/534/8 +f 719/532/175 696/535/175 695/536/175 +f 722/537/176 686/538/176 710/539/176 +f 724/540/176 688/541/176 712/542/176 +f 703/543/8 715/544/8 691/545/8 +f 362/546/2 5/547/2 20/548/2 +f 398/549/3 55/550/3 56/551/3 +f 717/552/175 694/553/175 693/554/175 +f 709/33/175 686/555/175 685/556/175 +f 687/557/175 712/542/175 688/558/175 +f 397/559/3 54/560/3 55/550/3 +f 715/544/175 692/561/175 691/562/175 +f 345/563/1 685/564/1 3/565/1 +f 32/56/5 53/566/5 52/54/5 +f 2/567/5 26/568/5 40/569/5 +f 47/102/5 33/29/5 50/31/5 +f 28/64/5 19/570/5 56/62/5 +f 30/101/2 38/42/2 27/44/2 +f 434/571/2 430/572/2 429/573/2 +f 411/574/6 377/575/6 390/576/6 +f 358/577/7 352/578/7 357/579/7 +f 362/580/62 385/581/62 355/582/62 +f 350/583/3 382/584/3 344/585/3 +f 416/586/177 422/587/177 415/588/177 +f 378/589/2 374/590/2 371/591/2 +f 372/592/62 397/593/62 369/594/62 +f 371/595/62 396/596/62 372/592/62 +f 352/597/62 347/598/62 354/599/62 +f 382/584/3 392/600/3 381/601/3 +f 374/590/2 376/602/2 373/603/2 +f 386/604/3 388/605/3 385/606/3 +f 432/607/62 428/608/62 424/609/62 +f 384/610/62 365/611/62 366/612/62 +f 455/613/69 473/614/85 471/615/67 +f 369/594/62 398/616/62 370/617/62 +f 383/618/3 387/619/3 386/604/3 +f 372/620/2 378/589/2 371/591/2 +f 404/621/178 402/622/178 403/623/178 +f 435/624/62 437/625/62 438/626/62 +f 431/627/1 429/628/1 425/629/1 +f 438/626/3 428/630/3 427/631/3 +f 385/606/3 359/632/3 355/633/3 +f 360/634/10 355/635/10 359/636/10 +f 413/637/62 409/638/62 412/639/62 +f 386/640/62 363/641/62 364/642/62 +f 381/601/3 389/643/3 384/644/3 +f 408/645/177 414/646/177 407/647/177 +f 435/624/6 427/648/6 423/649/6 +f 456/650/77 464/651/75 473/614/85 +f 445/652/3 441/653/3 447/654/3 +f 469/655/179 477/656/180 467/657/80 +f 450/658/2 448/659/2 444/660/2 +f 366/612/62 381/661/62 384/610/62 +f 377/575/62 387/662/62 390/576/62 +f 343/663/62 393/664/62 373/665/62 +f 425/666/3 432/607/3 431/627/3 +f 373/603/2 349/667/2 343/668/2 +f 354/599/62 356/669/62 355/670/62 +f 433/671/6 426/672/6 430/673/6 +f 407/647/1 389/674/1 378/675/1 +f 439/676/1 443/677/1 440/678/1 +f 454/679/68 467/680/72 453/681/71 +f 467/657/80 479/682/181 465/683/88 +f 449/684/182 447/685/183 450/686/183 +f 439/676/62 449/684/182 442/687/62 +f 458/688/184 461/689/6 457/690/185 +f 453/691/186 452/692/186 456/693/186 +f 433/671/62 427/694/62 428/608/62 +f 454/679/68 471/615/67 469/695/68 +f 453/681/71 465/696/70 452/697/76 +f 452/697/76 464/698/75 451/699/75 +f 458/700/187 469/655/179 471/701/102 +f 476/702/188 472/703/112 470/704/100 +f 463/705/92 480/706/189 466/707/94 +f 459/708/190 473/709/82 464/710/83 +f 465/683/88 459/708/190 464/710/83 +f 460/711/191 492/712/192 496/713/193 +f 496/713/193 491/714/2 495/715/2 +f 480/716/1 477/717/194 478/718/195 +f 466/707/94 478/719/196 468/720/96 +f 468/720/96 476/702/188 470/704/100 +f 475/721/197 457/690/185 476/722/197 +f 457/723/198 474/724/93 472/703/112 +f 483/725/1 485/726/199 487/727/1 +f 462/728/200 471/701/102 473/709/82 +f 488/729/6 482/730/6 484/731/6 +f 492/732/62 482/730/62 486/733/62 +f 461/734/201 463/705/92 474/724/93 +f 466/735/202 514/736/194 512/737/202 +f 493/738/3 489/739/203 494/740/204 +f 474/741/205 509/742/5 520/743/205 +f 460/711/191 485/744/206 480/706/189 +f 459/708/190 489/739/203 462/728/200 +f 483/745/3 494/740/204 481/746/207 +f 492/732/192 488/747/2 491/748/2 +f 478/718/195 475/721/197 476/722/197 +f 485/744/206 495/715/2 487/749/2 +f 502/750/22 510/751/19 497/752/19 +f 463/753/5 512/737/202 509/754/5 +f 480/716/1 481/755/1 479/756/208 +f 500/757/209 501/758/209 502/759/209 +f 510/760/19 498/761/18 497/762/19 +f 513/763/29 500/764/17 499/765/31 +f 518/766/41 522/767/210 516/768/43 +f 511/769/20 499/765/31 498/761/18 +f 534/770/3 538/771/211 537/772/3 +f 500/764/17 517/773/13 501/774/12 +f 459/708/190 481/746/207 494/740/204 +f 509/775/212 526/776/213 506/777/214 +f 501/774/12 519/778/11 502/750/22 +f 472/779/184 520/743/205 518/780/184 +f 468/781/194 516/782/62 514/736/194 +f 490/783/3 482/730/3 489/784/203 +f 528/785/2 536/786/2 535/787/215 +f 514/788/52 522/767/210 524/789/216 +f 526/790/1 523/791/194 525/792/217 +f 489/793/73 461/689/6 462/794/218 +f 507/795/6 504/796/184 503/797/219 +f 506/777/214 538/798/211 507/799/220 +f 511/800/51 505/801/221 525/802/222 +f 515/803/23 504/804/223 517/805/46 +f 530/806/6 532/807/6 534/808/6 +f 509/775/212 507/799/220 520/809/40 +f 540/810/224 529/811/2 527/812/225 +f 520/809/40 503/813/226 518/766/41 +f 515/803/23 523/814/227 521/815/228 +f 524/816/229 521/817/230 523/791/194 +f 600/818/3 548/819/3 547/820/3 +f 503/797/219 521/817/230 522/821/230 +f 535/822/215 505/801/221 508/823/231 +f 531/824/232 506/777/214 526/776/213 +f 513/825/44 525/802/222 523/814/227 +f 551/826/1 549/827/1 545/828/1 +f 517/805/46 508/823/231 519/829/233 +f 553/830/6 546/831/6 550/832/6 +f 512/833/35 524/789/216 526/776/213 +f 544/834/62 553/830/62 548/835/62 +f 554/836/2 550/837/2 549/838/2 +f 541/839/3 531/824/232 533/840/3 +f 553/830/62 547/841/62 548/835/62 +f 535/822/215 539/842/2 540/810/224 +f 507/795/6 535/843/110 508/844/234 +f 526/790/1 527/845/1 531/846/199 +f 505/801/221 527/812/225 525/802/222 +f 519/829/233 505/801/221 510/847/34 +f 598/848/2 543/849/2 544/850/2 +f 559/851/3 566/852/235 564/853/235 +f 599/854/1 544/855/1 548/856/1 +f 568/857/1 561/858/1 564/859/1 +f 566/860/6 560/861/6 571/862/6 +f 532/807/62 535/787/62 538/771/62 +f 609/863/3 607/864/3 617/865/3 +f 564/853/235 567/866/236 565/867/236 +f 579/868/3 596/869/3 584/870/3 +f 545/871/3 552/872/3 551/826/3 +f 597/873/6 547/874/6 543/875/6 +f 568/876/237 562/877/2 561/878/2 +f 556/879/238 601/880/238 555/881/238 +f 543/882/62 552/872/62 544/834/62 +f 554/836/62 543/882/62 547/841/62 +f 615/883/239 619/884/240 618/885/241 +f 576/886/62 581/887/136 575/888/136 +f 624/889/2 619/890/2 620/891/2 +f 533/892/1 527/845/1 529/893/1 +f 572/894/242 563/895/62 570/896/62 +f 629/897/243 628/898/244 627/899/244 +f 609/900/245 608/901/246 607/902/246 +f 571/903/237 569/904/242 572/894/242 +f 613/905/247 612/906/248 611/907/248 +f 605/908/249 616/909/239 615/883/239 +f 621/910/250 620/911/251 617/912/250 +f 470/913/62 518/780/184 516/782/62 +f 616/914/2 606/915/2 620/891/2 +f 565/867/236 570/896/62 563/895/62 +f 622/916/252 624/917/252 621/910/252 +f 537/918/3 542/919/253 541/839/3 +f 592/920/3 579/868/3 580/921/3 +f 575/888/136 580/922/123 574/923/123 +f 642/924/254 644/925/254 641/926/254 +f 573/927/5 584/928/133 578/929/133 +f 595/930/3 582/931/3 583/932/3 +f 582/931/3 593/933/3 581/934/3 +f 601/880/255 558/935/255 555/936/255 +f 578/929/133 583/937/134 577/938/134 +f 577/938/134 582/939/62 576/886/62 +f 647/940/256 646/941/257 645/942/257 +f 636/943/2 626/944/2 640/945/2 +f 637/946/258 634/947/259 633/948/258 +f 643/949/260 638/950/261 639/951/261 +f 596/952/133 590/953/134 595/954/134 +f 587/955/5 591/956/133 596/952/133 +f 595/954/134 589/957/62 594/958/62 +f 574/923/123 579/959/5 573/960/5 +f 556/961/62 599/854/62 557/962/62 +f 590/963/2 591/964/2 586/965/2 +f 594/958/62 588/966/136 593/967/136 +f 603/968/262 556/969/263 557/970/262 +f 631/971/264 630/972/243 629/973/243 +f 627/899/244 626/974/265 625/975/265 +f 618/976/3 621/977/3 617/865/3 +f 593/933/3 580/921/3 581/934/3 +f 599/854/62 558/978/62 557/962/62 +f 604/979/266 557/980/266 558/981/266 +f 596/869/3 583/932/3 584/870/3 +f 592/982/123 586/983/5 587/984/5 +f 600/818/62 555/985/62 558/978/62 +f 601/880/62 603/968/62 604/979/62 +f 611/907/248 610/986/245 609/900/245 +f 555/985/62 598/848/62 556/961/62 +f 617/912/267 614/987/267 613/905/267 +f 623/988/268 618/885/241 619/884/240 +f 625/975/265 636/989/269 635/990/269 +f 633/948/270 632/991/264 631/971/264 +f 593/967/136 585/992/123 592/982/123 +f 607/993/246 606/994/249 605/908/249 +f 629/995/3 627/996/3 637/997/3 +f 635/990/269 639/951/261 638/950/261 +f 644/998/2 639/999/2 640/945/2 +f 641/926/271 640/1000/271 637/946/271 +f 638/1001/3 641/1002/3 637/997/3 +f 649/1003/272 648/1004/256 647/1005/256 +f 649/1006/3 647/1007/3 657/1008/3 +f 653/1009/273 652/1010/274 651/1011/274 +f 645/942/257 656/1012/275 655/1013/276 +f 651/1011/274 650/1014/272 649/1003/272 +f 656/1015/2 646/1016/2 660/1017/2 +f 655/1013/276 659/1018/277 658/1019/277 +f 657/1020/278 654/1021/278 653/1009/278 +f 663/1022/279 658/1019/277 659/1018/277 +f 661/1023/280 660/1024/280 657/1020/280 +f 658/1025/3 661/1026/3 657/1008/3 +f 662/1027/281 664/1028/281 661/1023/281 +f 664/1029/2 659/1030/2 660/1017/2 +f 669/1031/282 668/1032/283 667/1033/283 +f 673/1034/284 672/1035/285 671/1036/285 +f 667/1033/283 666/1037/286 665/1038/286 +f 665/1038/286 676/1039/287 675/1040/287 +f 669/1041/3 667/1042/3 677/1043/3 +f 671/1036/285 670/1044/282 669/1045/282 +f 676/1046/2 666/1047/2 680/1048/2 +f 675/1040/287 679/1049/288 678/1050/288 +f 677/1051/289 674/1052/289 673/1034/289 +f 683/1053/290 678/1050/288 679/1049/288 +f 681/1054/291 680/1055/291 677/1051/291 +f 678/1056/3 681/1057/3 677/1043/3 +f 682/1058/292 684/1059/292 681/1054/292 +f 684/1060/2 679/1061/2 680/1048/2 +f 702/1062/293 725/1063/293 701/1064/293 +f 708/1065/293 731/534/293 707/1066/293 +f 706/1067/293 729/1068/293 705/1069/293 +f 704/1070/293 727/1071/293 703/1072/293 +f 698/1073/293 721/1074/293 697/1075/293 +f 699/1076/293 724/540/293 723/1077/293 +f 370/617/62 361/1078/62 351/1079/62 +f 380/1080/2 372/620/2 369/1081/2 +f 374/1082/62 395/1083/62 371/595/62 +f 375/1084/62 389/674/62 392/1085/62 +f 368/1086/62 344/1087/62 382/1088/62 +f 400/1089/177 406/1090/177 399/1091/177 +f 64/1092/4 58/1093/4 57/138/4 +f 728/1094/176 692/1095/176 716/1096/176 +f 358/1097/2 370/1098/2 351/1099/2 +f 365/1100/2 22/1101/2 23/1102/2 +f 729/1068/1 718/1103/1 717/552/1 +f 732/1104/176 696/3/176 720/1105/176 +f 366/1106/2 23/1102/2 24/1107/2 +f 348/1108/2 26/1109/2 6/1110/2 +f 394/1111/3 51/1112/3 52/1113/3 +f 711/1114/8 699/1115/8 723/1077/8 +f 704/1116/1 693/1117/1 692/1118/1 +f 434/571/62 423/1119/62 427/694/62 +f 393/1120/3 3/1121/3 51/1112/3 +f 382/1088/62 367/1122/62 368/1086/62 +f 379/1123/62 359/1124/62 388/1125/62 +f 706/1126/1 695/1127/1 694/1128/1 +f 395/1129/3 52/1113/3 53/1130/3 +f 363/1131/2 20/548/2 21/1132/2 +f 396/1133/3 53/1130/3 54/560/3 +f 702/1134/1 691/1135/1 690/1136/1 +f 368/1137/2 25/1138/2 26/1109/2 +f 726/1139/176 690/1140/176 714/1141/176 +f 701/1142/8 713/529/8 689/1143/8 +f 360/634/1 352/578/1 354/1144/1 +f 700/1145/1 689/1146/1 688/1147/1 +f 43/105/5 20/1148/5 13/1149/5 +f 2/1150/6 7/1151/6 1/1152/6 +f 721/1074/1 710/539/1 709/33/1 +f 49/1153/5 7/1154/5 8/1155/5 +f 9/1156/5 10/25/5 11/1157/5 +f 81/119/5 92/5/5 85/146/5 +f 10/20/1 18/80/1 12/1158/1 +f 18/1159/5 16/1160/5 17/1161/5 +f 17/1161/5 37/51/5 46/53/5 +f 705/1162/8 717/552/8 693/1163/8 +f 11/1157/5 19/1164/5 9/1156/5 +f 698/1165/1 687/1166/1 686/1167/1 +f 727/1071/1 716/1096/1 715/544/1 +f 731/534/1 720/1105/1 719/532/1 +f 367/1168/2 24/1107/2 25/1138/2 +f 361/1169/3 56/551/3 19/8/3 +f 49/1153/1 73/12/1 34/1170/1 +f 48/108/3 42/1171/3 41/106/3 +f 75/1172/5 79/1173/5 78/41/5 +f 40/569/5 25/1174/5 39/72/5 +f 28/43/2 16/1175/2 9/1176/2 +f 723/1077/1 712/542/1 711/1114/1 +f 384/644/3 390/1177/3 383/618/3 +f 415/588/1 391/1178/1 376/1179/1 +f 421/1180/62 417/1181/62 420/1182/62 +f 364/1183/2 21/1132/2 22/1101/2 +f 419/1184/178 417/1181/178 418/1185/178 +f 364/642/62 383/1186/62 386/640/62 +f 412/639/178 410/1187/178 411/574/178 +f 361/1188/62 353/1189/62 351/1190/62 +f 356/669/62 362/1191/62 355/670/62 +f 701/1192/62 700/1193/62 343/1194/62 +f 436/1195/2 423/1196/2 424/1197/2 +f 358/1198/62 360/1199/62 359/1124/62 +f 725/1063/1 714/1141/1 713/529/1 +f 349/1200/6 344/1201/6 343/1202/6 +f 399/1091/1 387/662/1 380/1203/1 +f 437/625/1 424/1204/1 428/1205/1 +f 405/1206/62 401/1207/62 404/621/62 +f 370/1098/2 380/1080/2 369/1081/2 +f 373/665/62 394/1208/62 374/1082/62 +f 403/623/6 379/1123/6 388/1125/6 +f 450/686/183 446/1209/294 448/1210/295 +f 423/1119/62 432/607/62 424/609/62 +f 351/1190/62 353/1189/62 352/597/62 +f 349/1211/62 391/1178/62 350/1212/62 +f 448/1210/295 441/1213/6 444/1214/6 +f 419/1184/6 375/1084/6 392/1085/6 +f 730/1215/176 694/1216/176 718/1103/176 +f 708/1/1 348/1217/1 6/2/1 +f 88/4/2 91/110/2 92/5/2 +f 346/7/3 361/1169/3 19/8/3 +f 80/10/4 79/1173/4 74/11/4 +f 30/13/5 27/63/5 55/14/5 +f 54/15/5 53/566/5 29/16/5 +f 35/17/6 68/112/6 69/18/6 +f 10/20/7 9/1218/7 16/21/7 +f 4/24/5 11/1157/5 10/25/5 +f 10/25/5 12/77/5 5/23/5 +f 12/77/5 14/35/5 5/23/5 +f 40/26/3 49/1219/3 8/27/3 +f 33/29/6 76/40/6 77/30/6 +f 697/32/8 721/1074/8 709/33/8 +f 14/35/5 13/78/5 20/36/5 +f 6/1220/5 2/38/5 696/1221/5 +f 2/38/5 1/1222/5 691/39/5 +f 696/1221/5 2/38/5 695/1223/5 +f 1/1222/5 3/1224/5 685/1225/5 +f 686/1226/5 687/1227/5 1/1222/5 +f 687/1227/5 688/1228/5 1/1222/5 +f 1/1222/5 685/1225/5 686/1226/5 +f 695/1223/5 2/38/5 694/1229/5 +f 693/1230/5 694/1229/5 2/38/5 +f 693/1230/5 2/38/5 692/37/5 +f 689/1231/5 690/1232/5 1/1222/5 +f 690/1232/5 691/39/5 1/1222/5 +f 1/1222/5 688/1228/5 689/1231/5 +f 76/40/9 75/1172/9 78/41/9 +f 38/42/2 37/1233/2 28/43/2 +f 59/45/5 58/1093/5 63/46/5 +f 41/48/5 23/58/5 22/49/5 +f 37/51/6 60/94/6 61/52/6 +f 52/54/5 51/60/5 31/55/5 +f 42/57/5 24/73/5 23/58/5 +f 1/59/5 31/55/5 51/60/5 +f 56/62/5 55/14/5 27/63/5 +f 45/65/5 38/139/5 35/17/5 +f 32/66/2 33/1234/2 36/67/2 +f 46/69/3 45/107/3 44/70/3 +f 39/72/5 25/1174/5 24/73/5 +f 67/74/5 66/92/5 71/75/5 +f 13/79/10 12/1158/10 18/80/10 +f 31/82/2 1/1235/2 7/83/2 +f 86/85/5 91/110/5 90/86/5 +f 43/71/3 13/1236/3 17/88/3 +f 90/86/3 84/1237/3 83/89/3 +f 72/91/4 71/75/4 66/92/4 +f 60/94/9 59/45/9 62/47/9 +f 101/95/1 100/159/1 97/96/1 +f 39/98/3 42/1171/3 47/99/3 +f 36/67/2 35/1238/2 30/101/2 +f 47/102/1 72/91/1 65/93/1 +f 34/84/2 33/1234/2 32/66/2 +f 50/100/3 49/1219/3 40/26/3 +f 44/50/5 22/49/5 21/104/5 +f 41/106/3 44/70/3 45/107/3 +f 84/109/6 90/86/6 91/110/6 +f 68/112/9 67/74/9 70/76/9 +f 113/113/11 129/149/22 131/114/12 +f 85/116/6 96/124/6 93/117/6 +f 81/119/5 82/87/5 90/86/5 +f 104/120/14 105/147/15 108/121/15 +f 86/123/3 95/132/3 96/124/3 +f 114/115/13 131/114/12 122/126/17 +f 81/128/2 93/117/2 94/129/2 +f 82/131/1 94/129/1 95/132/1 +f 87/134/1 92/5/1 89/90/1 +f 99/136/6 104/120/14 106/122/16 +f 95/132/5 94/129/5 93/117/5 +f 45/65/1 64/1092/1 57/138/1 +f 98/141/3 97/1239/3 103/142/3 +f 103/142/3 105/1240/3 99/140/3 +f 105/1240/3 104/1241/3 99/140/3 +f 125/143/18 127/1242/19 112/144/19 +f 85/146/5 92/5/5 91/110/5 +f 105/147/15 103/1243/21 107/148/21 +f 112/144/19 127/1242/19 129/149/22 +f 121/150/23 124/180/44 138/151/24 +f 127/153/26 125/170/35 135/154/27 +f 122/156/17 123/163/31 110/157/29 +f 107/148/21 103/1243/21 97/96/5 +f 114/162/30 109/1244/30 110/1245/30 +f 110/1245/30 111/1246/30 114/162/30 +f 111/1246/30 112/160/30 114/162/30 +f 123/163/31 125/143/18 111/145/20 +f 100/1247/2 101/1248/2 107/165/2 +f 101/1248/2 102/166/2 107/165/2 +f 102/166/2 106/1249/2 108/164/2 +f 130/167/32 115/183/47 134/168/33 +f 125/170/35 123/190/52 137/171/36 +f 119/172/6 120/236/74 116/173/37 +f 127/153/26 133/155/28 116/175/39 +f 131/177/41 120/204/57 117/178/42 +f 124/180/44 126/189/51 136/181/45 +f 132/182/46 119/198/55 115/183/47 +f 138/184/1 136/222/66 135/185/48 +f 115/174/38 116/173/37 133/187/50 +f 126/189/51 128/169/34 134/168/33 +f 123/190/52 122/179/43 117/178/42 +f 149/191/2 150/197/54 154/192/53 +f 150/194/5 144/200/5 140/195/5 +f 118/152/25 154/192/53 150/197/54 +f 146/199/6 142/1250/6 140/195/6 +f 141/201/1 145/1251/1 143/202/56 +f 129/176/40 116/175/39 120/204/57 +f 147/205/58 148/1252/3 151/206/3 +f 172/208/48 126/228/48 124/209/60 +f 121/150/23 118/152/25 119/198/55 +f 152/207/59 151/206/3 141/211/3 +f 147/205/58 152/207/59 117/178/42 +f 167/213/62 121/1253/62 132/214/63 +f 143/216/64 154/192/53 118/152/25 +f 138/184/1 137/186/49 139/203/1 +f 117/178/42 152/207/59 139/212/61 +f 170/210/60 124/209/60 121/217/62 +f 156/220/65 155/1254/65 160/221/65 +f 160/221/65 159/1255/65 158/1256/65 +f 158/1256/65 157/219/65 160/221/65 +f 136/222/66 134/188/50 133/187/50 +f 153/193/2 154/192/53 143/216/64 +f 160/224/67 155/1257/68 168/225/68 +f 174/227/5 128/351/5 126/228/48 +f 146/229/2 144/200/2 150/194/54 +f 140/195/3 142/1258/3 148/231/3 +f 157/232/70 171/238/76 169/233/71 +f 119/172/6 150/1259/296 147/235/73 +f 158/237/75 173/240/75 171/238/76 +f 158/237/75 159/250/85 175/239/77 +f 167/241/78 164/276/97 184/242/79 +f 180/244/81 161/281/101 176/245/82 +f 184/247/1 183/295/109 181/248/48 +f 159/250/85 160/224/67 177/226/69 +f 196/251/86 190/268/3 192/252/3 +f 194/254/2 188/1260/2 186/255/2 +f 172/257/88 182/319/113 180/244/81 +f 156/234/72 169/233/71 168/258/68 +f 178/215/63 132/214/63 130/260/37 +f 179/262/89 162/271/37 161/263/90 +f 162/265/91 179/1261/297 173/266/92 +f 190/268/6 186/255/6 188/269/6 +f 162/271/37 166/297/111 165/272/6 +f 171/273/94 181/290/108 183/274/95 +f 164/276/97 165/289/107 196/277/86 +f 169/275/96 183/274/95 163/279/99 +f 161/281/101 165/289/107 178/282/102 +f 163/279/99 198/286/104 193/283/87 +f 187/285/2 197/310/2 198/286/104 +f 164/276/97 200/278/98 189/288/106 +f 165/289/107 164/276/97 167/241/78 +f 182/249/84 181/248/48 179/262/89 +f 173/266/92 179/1261/297 181/290/108 +f 206/291/3 257/321/3 258/292/3 +f 184/247/1 189/1262/56 185/294/1 +f 193/256/5 186/255/5 190/268/5 +f 193/296/110 196/1263/296 165/272/6 +f 204/298/6 210/311/6 211/299/6 +f 163/279/99 183/274/95 185/287/105 +f 166/284/103 162/265/91 175/267/93 +f 189/288/106 200/278/98 199/302/3 +f 207/304/1 212/314/1 209/305/1 +f 205/307/5 212/314/5 211/299/5 +f 200/278/98 196/277/86 195/309/3 +f 197/310/2 194/1264/2 193/283/87 +f 210/311/3 204/1265/3 203/312/3 +f 208/313/2 211/299/2 212/314/2 +f 205/316/6 258/292/6 255/317/6 +f 170/243/80 184/242/79 182/319/113 +f 202/320/1 256/326/1 257/321/1 +f 202/323/5 206/308/5 211/299/5 +f 201/324/5 209/305/5 212/314/5 +f 201/325/2 255/317/2 256/326/2 +f 229/329/6 220/1266/6 218/1267/6 +f 218/1267/6 224/330/6 229/329/6 +f 224/330/6 225/1268/6 230/328/6 +f 225/1268/6 228/1269/6 230/328/6 +f 273/333/3 263/1270/3 275/331/3 +f 263/1270/3 265/1271/3 275/331/3 +f 265/1271/3 267/1272/3 275/331/3 +f 267/1272/3 269/1273/3 275/331/3 +f 269/1273/3 271/1274/3 275/331/3 +f 224/334/114 218/1275/3 217/335/3 +f 201/324/5 202/323/5 210/311/5 +f 225/337/115 224/334/114 222/336/114 +f 222/340/1 217/1276/1 219/1277/1 +f 219/1277/1 226/341/1 222/340/1 +f 226/341/1 227/1278/1 223/339/1 +f 227/1278/1 221/1279/1 223/339/1 +f 220/342/2 229/370/116 226/343/116 +f 214/345/117 213/1280/117 259/346/117 +f 163/279/99 166/284/103 177/301/112 +f 237/348/3 242/426/3 254/349/3 +f 176/261/37 130/260/37 128/351/5 +f 185/294/1 189/1262/56 191/352/1 +f 221/354/5 227/369/118 230/355/118 +f 277/357/119 274/379/120 273/358/120 +f 282/360/122 281/438/122 280/361/122 +f 239/363/123 240/391/5 234/364/5 +f 277/366/2 281/1281/2 282/367/2 +f 227/369/118 226/343/116 229/370/116 +f 268/372/2 266/1282/2 278/368/2 +f 266/1282/2 264/1283/2 278/368/2 +f 264/1283/2 274/1284/2 278/368/2 +f 274/1284/2 277/366/2 278/368/2 +f 278/368/2 272/1285/298 270/371/2 +f 266/373/124 268/432/125 267/374/125 +f 228/356/5 225/337/115 223/338/115 +f 286/376/126 288/1286/127 287/377/127 +f 274/379/120 264/430/128 263/380/128 +f 270/381/129 272/435/130 271/382/130 +f 278/384/131 282/360/131 279/362/132 +f 237/348/3 245/350/3 250/386/3 +f 240/388/3 239/433/3 251/389/3 +f 240/391/5 241/395/133 235/392/133 +f 240/388/3 252/390/3 253/393/3 +f 241/395/133 242/401/134 236/396/134 +f 213/397/135 216/1287/135 262/398/135 +f 238/399/136 239/363/123 233/365/123 +f 242/401/134 237/1288/62 231/402/62 +f 249/403/134 244/1289/62 245/404/62 +f 214/406/5 215/427/5 257/321/5 +f 214/407/137 260/347/137 261/408/138 +f 237/410/62 238/399/136 232/400/136 +f 247/412/5 248/417/133 253/413/133 +f 246/415/123 247/412/5 252/414/5 +f 248/417/133 249/403/134 254/405/134 +f 246/420/2 243/1290/2 248/418/2 +f 243/1290/2 244/1291/2 248/418/2 +f 244/1291/2 249/1292/2 248/418/2 +f 261/408/5 260/347/5 259/346/5 +f 213/421/5 255/317/5 258/292/5 +f 244/423/62 243/434/136 250/424/136 +f 241/394/3 253/393/3 254/349/3 +f 216/422/5 258/292/5 257/321/5 +f 215/428/139 261/408/139 262/398/139 +f 264/430/128 266/1293/124 265/431/124 +f 268/432/125 270/381/129 269/383/129 +f 238/387/3 250/386/3 251/389/3 +f 243/434/136 246/415/123 251/416/123 +f 213/421/5 214/406/5 256/326/5 +f 272/435/140 278/384/140 275/385/140 +f 284/436/141 286/376/126 285/378/126 +f 276/359/121 280/361/142 281/438/142 +f 276/332/3 275/331/3 279/439/3 +f 293/443/3 283/1294/3 295/441/3 +f 283/1294/3 285/1295/3 295/441/3 +f 285/1295/3 287/1296/3 295/441/3 +f 287/1296/3 289/1297/3 295/441/3 +f 289/1297/3 291/1298/3 295/441/3 +f 288/444/127 290/449/143 289/445/143 +f 294/447/144 284/436/141 283/437/141 +f 290/449/143 292/456/145 291/450/145 +f 288/452/2 286/1299/2 298/453/2 +f 286/1299/2 284/1300/2 298/453/2 +f 284/1300/2 294/1301/2 298/453/2 +f 294/1301/2 297/465/2 298/453/2 +f 298/453/2 292/1302/2 290/451/2 +f 297/454/146 294/447/144 293/448/144 +f 292/456/147 298/463/147 295/457/148 +f 296/442/3 295/441/3 299/458/3 +f 302/460/149 301/464/149 300/461/149 +f 298/463/150 302/460/150 299/462/150 +f 296/455/146 300/461/151 301/464/151 +f 297/465/2 301/1303/2 302/466/2 +f 304/467/152 306/1304/153 305/468/153 +f 313/472/3 303/1305/3 315/470/3 +f 303/1305/3 305/1306/3 315/470/3 +f 305/1306/3 307/1307/3 315/470/3 +f 307/1307/3 309/1308/3 315/470/3 +f 309/1308/3 311/1309/3 315/470/3 +f 314/473/154 304/467/152 303/469/152 +f 306/475/153 308/481/156 307/476/156 +f 310/478/157 312/487/158 311/479/158 +f 308/481/156 310/478/157 309/480/157 +f 308/483/2 306/1310/2 318/484/2 +f 306/1310/2 304/1311/2 318/484/2 +f 304/1311/2 314/1312/2 318/484/2 +f 314/1312/2 317/496/2 318/484/2 +f 318/484/2 312/1313/2 310/482/2 +f 317/485/159 314/473/154 313/474/155 +f 312/487/160 318/494/160 315/488/160 +f 316/471/3 315/470/3 319/489/3 +f 322/491/161 321/495/161 320/492/161 +f 318/494/162 322/491/162 319/493/162 +f 316/486/159 320/492/299 321/495/163 +f 317/496/2 321/1314/2 322/497/2 +f 324/498/164 326/506/165 325/499/165 +f 333/503/3 323/1315/3 335/501/3 +f 323/1315/3 325/1316/3 335/501/3 +f 325/1316/3 327/1317/3 335/501/3 +f 327/1317/3 329/1318/3 335/501/3 +f 329/1318/3 331/1319/3 335/501/3 +f 334/504/166 324/498/164 323/500/164 +f 326/506/165 328/1320/167 327/507/167 +f 330/508/168 332/518/300 331/509/169 +f 328/511/167 330/508/168 329/510/168 +f 328/514/2 326/1321/2 338/515/2 +f 326/1321/2 324/1322/2 338/515/2 +f 324/1322/2 334/1323/2 338/515/2 +f 334/1323/2 337/527/2 338/515/2 +f 338/515/2 332/1324/2 330/513/2 +f 337/516/170 334/504/166 333/505/166 +f 332/518/171 338/525/171 335/519/171 +f 336/502/3 335/501/3 339/520/3 +f 342/522/172 341/526/172 340/523/172 +f 338/525/173 342/522/173 339/524/173 +f 336/517/170 340/523/174 341/526/174 +f 337/527/2 341/1325/2 342/528/2 +f 713/529/175 714/1141/175 690/530/175 +f 719/532/8 695/1326/8 707/533/8 +f 719/532/175 720/1105/175 696/535/175 +f 722/537/176 698/1327/176 686/538/176 +f 724/540/176 700/1328/176 688/541/176 +f 703/543/8 727/1071/8 715/544/8 +f 362/546/2 347/1329/2 5/547/2 +f 398/549/3 397/559/3 55/550/3 +f 717/552/175 718/1103/175 694/553/175 +f 709/33/175 710/539/175 686/555/175 +f 687/557/175 711/1114/175 712/542/175 +f 397/559/3 396/1133/3 54/560/3 +f 715/544/175 716/1096/175 692/561/175 +f 345/563/1 697/1330/1 685/564/1 +f 32/56/5 29/16/5 53/566/5 +f 2/567/5 6/1331/5 26/568/5 +f 47/102/5 36/103/5 33/29/5 +f 28/64/5 9/1332/5 19/570/5 +f 30/101/2 35/1238/2 38/42/2 +f 434/571/2 433/671/2 430/572/2 +f 411/574/6 410/1187/6 377/575/6 +f 358/577/7 351/1333/7 352/578/7 +f 362/580/62 363/641/62 385/581/62 +f 350/583/3 391/1334/3 382/584/3 +f 416/586/177 421/1180/177 422/587/177 +f 378/589/2 375/1335/2 374/590/2 +f 372/592/62 396/596/62 397/593/62 +f 371/595/62 395/1083/62 396/596/62 +f 352/597/62 353/1189/62 346/1336/62 +f 346/1336/62 347/598/62 352/597/62 +f 347/598/62 356/669/62 354/599/62 +f 382/584/3 391/1334/3 392/600/3 +f 374/590/2 375/1335/2 376/602/2 +f 386/604/3 387/619/3 388/605/3 +f 432/607/62 433/671/62 428/608/62 +f 384/610/62 383/1186/62 365/611/62 +f 455/613/69 456/650/77 473/614/85 +f 369/594/62 397/593/62 398/616/62 +f 383/618/3 390/1177/3 387/619/3 +f 372/620/2 377/1337/2 378/589/2 +f 404/621/178 401/1207/178 402/622/178 +f 435/624/62 436/1195/62 437/625/62 +f 431/627/1 434/571/1 429/628/1 +f 438/626/3 437/625/3 428/630/3 +f 385/606/3 388/605/3 359/632/3 +f 360/634/10 354/1144/10 355/635/10 +f 413/637/62 408/645/62 409/638/62 +f 386/640/62 385/581/62 363/641/62 +f 381/601/3 392/600/3 389/643/3 +f 408/645/177 413/637/177 414/646/177 +f 435/624/6 438/626/6 427/648/6 +f 456/650/77 451/1338/75 464/651/75 +f 445/652/3 439/1339/3 440/1340/3 +f 440/1340/3 441/653/3 445/652/3 +f 441/653/3 446/1341/3 447/654/3 +f 469/655/179 475/1342/301 477/656/180 +f 444/660/2 443/1343/2 449/1344/2 +f 443/1343/2 442/1345/2 449/1344/2 +f 449/1344/2 450/658/2 444/660/2 +f 366/612/62 367/1122/62 381/661/62 +f 377/575/62 380/1203/62 387/662/62 +f 343/663/62 345/1346/62 393/664/62 +f 425/666/3 426/1347/3 432/607/3 +f 373/603/2 376/602/2 349/667/2 +f 433/671/6 432/607/6 426/672/6 +f 407/647/1 414/646/1 389/674/1 +f 439/676/1 442/687/1 443/677/1 +f 454/679/68 469/695/68 467/680/72 +f 467/657/80 477/656/180 479/682/181 +f 449/684/182 445/1348/182 447/685/183 +f 439/676/62 445/1348/182 449/684/182 +f 458/688/184 462/794/218 461/689/6 +f 452/692/186 451/1349/186 456/693/186 +f 456/693/186 455/1350/186 454/1351/186 +f 454/1351/186 453/691/186 456/693/186 +f 433/671/62 434/571/62 427/694/62 +f 454/679/68 455/613/69 471/615/67 +f 453/681/71 467/680/72 465/696/70 +f 452/697/76 465/696/70 464/698/75 +f 458/700/187 475/1342/301 469/655/179 +f 476/702/188 457/723/198 472/703/112 +f 463/705/92 460/711/191 480/706/189 +f 459/708/190 462/728/200 473/709/82 +f 465/683/88 479/682/181 459/708/190 +f 460/711/191 461/734/201 492/712/192 +f 496/713/193 492/712/192 491/714/2 +f 480/716/1 479/756/208 477/717/194 +f 466/707/94 480/706/189 478/719/196 +f 468/720/96 478/719/196 476/702/188 +f 475/721/197 458/688/184 457/690/185 +f 457/723/198 461/734/201 474/724/93 +f 483/725/1 481/755/1 485/726/199 +f 462/728/200 458/700/187 471/701/102 +f 488/729/6 486/733/6 482/730/6 +f 492/732/62 489/784/62 482/730/62 +f 461/734/201 460/711/191 463/705/92 +f 466/735/202 468/781/194 514/736/194 +f 493/738/3 490/1352/3 489/739/203 +f 474/741/205 463/1353/5 509/742/5 +f 460/711/191 496/713/193 485/744/206 +f 459/708/190 494/740/204 489/739/203 +f 483/745/3 493/738/3 494/740/204 +f 492/732/192 486/733/2 488/747/2 +f 478/718/195 477/717/194 475/721/197 +f 485/744/206 496/713/193 495/715/2 +f 502/750/22 519/778/11 510/751/19 +f 463/753/5 466/735/202 512/737/202 +f 480/716/1 485/726/199 481/755/1 +f 502/759/209 497/1354/209 498/1355/209 +f 498/1355/209 499/1356/209 502/759/209 +f 499/1356/209 500/757/209 502/759/209 +f 510/760/19 511/769/20 498/761/18 +f 513/763/29 515/1357/17 500/764/17 +f 518/766/41 503/813/226 522/767/210 +f 511/769/20 513/763/29 499/765/31 +f 534/770/3 532/807/3 538/771/211 +f 500/764/17 515/1357/17 517/773/13 +f 459/708/190 479/682/181 481/746/207 +f 509/775/212 512/833/35 526/776/213 +f 501/774/12 517/773/13 519/778/11 +f 472/779/184 474/741/205 520/743/205 +f 468/781/194 470/913/62 516/782/62 +f 490/783/3 484/1358/3 482/730/3 +f 528/785/2 530/1359/2 536/786/2 +f 514/788/52 516/768/43 522/767/210 +f 526/790/1 524/816/229 523/791/194 +f 489/793/73 492/1360/302 461/689/6 +f 507/795/6 508/844/234 504/796/184 +f 506/777/214 542/919/253 538/798/211 +f 511/800/51 510/847/34 505/801/221 +f 515/803/23 521/815/228 504/804/223 +f 530/806/6 528/785/6 532/807/6 +f 509/775/212 506/777/214 507/799/220 +f 540/810/224 539/842/2 529/811/2 +f 520/809/40 507/799/220 503/813/226 +f 515/803/23 513/825/44 523/814/227 +f 524/816/229 522/821/230 521/817/230 +f 600/818/3 599/854/3 548/819/3 +f 503/797/219 504/796/184 521/817/230 +f 535/822/215 540/810/224 505/801/221 +f 531/824/232 542/919/253 506/777/214 +f 513/825/44 511/800/51 525/802/222 +f 551/826/1 554/836/1 549/827/1 +f 517/805/46 504/804/223 508/823/231 +f 553/830/6 552/872/6 546/831/6 +f 512/833/35 514/788/52 524/789/216 +f 544/834/62 552/872/62 553/830/62 +f 554/836/2 553/830/2 550/837/2 +f 541/839/3 542/919/253 531/824/232 +f 553/830/62 554/836/62 547/841/62 +f 535/822/215 536/1361/2 539/842/2 +f 507/795/6 538/1362/302 535/843/110 +f 526/790/1 525/792/217 527/845/1 +f 505/801/221 540/810/224 527/812/225 +f 519/829/233 508/823/231 505/801/221 +f 598/848/2 597/873/2 543/849/2 +f 559/851/3 560/1363/3 566/852/235 +f 599/854/1 598/848/1 544/855/1 +f 561/858/1 559/1364/1 564/859/1 +f 564/859/1 565/1365/1 568/857/1 +f 565/1365/1 563/1366/1 568/857/1 +f 563/1366/1 569/1367/1 568/857/1 +f 560/861/6 562/1368/6 571/862/6 +f 571/862/6 572/1369/6 570/1370/6 +f 570/1370/6 567/1371/6 571/862/6 +f 567/1371/6 566/860/6 571/862/6 +f 532/807/62 528/785/62 535/787/62 +f 607/864/3 605/1372/3 617/865/3 +f 605/1372/3 615/1373/3 617/865/3 +f 615/1373/3 618/976/3 617/865/3 +f 617/865/3 613/1374/3 611/1375/3 +f 611/1375/3 609/863/3 617/865/3 +f 564/853/235 566/852/235 567/866/236 +f 579/868/3 587/1376/3 596/869/3 +f 545/871/3 546/1377/3 552/872/3 +f 597/873/6 600/818/6 547/874/6 +f 568/876/237 571/903/237 562/877/2 +f 556/879/238 602/1378/238 601/880/238 +f 543/882/62 551/826/62 552/872/62 +f 554/836/62 551/826/62 543/882/62 +f 615/883/239 616/909/239 619/884/240 +f 576/886/62 582/939/62 581/887/136 +f 624/889/2 623/1379/2 619/890/2 +f 533/892/1 531/846/199 527/845/1 +f 572/894/242 569/904/242 563/895/62 +f 629/897/243 630/1380/243 628/898/244 +f 609/900/245 610/986/245 608/901/246 +f 571/903/237 568/876/237 569/904/242 +f 613/905/247 614/987/247 612/906/248 +f 605/908/249 606/994/249 616/909/239 +f 621/910/250 624/917/251 620/911/251 +f 470/913/62 472/779/184 518/780/184 +f 606/915/2 608/1381/2 620/891/2 +f 608/1381/2 610/1382/2 620/891/2 +f 610/1382/2 612/1383/2 620/891/2 +f 612/1383/2 614/1384/298 620/891/2 +f 620/891/2 619/890/2 616/914/2 +f 565/867/236 567/866/236 570/896/62 +f 622/916/252 623/988/252 624/917/252 +f 537/918/3 538/798/211 542/919/253 +f 592/920/3 587/1376/3 579/868/3 +f 575/888/136 581/887/136 580/922/123 +f 642/924/254 643/949/254 644/925/254 +f 573/927/5 579/1385/5 584/928/133 +f 595/930/3 594/1386/3 582/931/3 +f 582/931/3 594/1386/3 593/933/3 +f 601/880/255 604/979/255 558/935/255 +f 578/929/133 584/928/133 583/937/134 +f 577/938/134 583/937/134 582/939/62 +f 647/940/256 648/1387/256 646/941/257 +f 626/944/2 628/1388/2 640/945/2 +f 628/1388/2 630/1389/2 640/945/2 +f 630/1389/2 632/1390/2 640/945/2 +f 632/1390/2 634/1391/2 640/945/2 +f 640/945/2 639/999/2 636/943/2 +f 637/946/258 640/1000/259 634/947/259 +f 643/949/260 642/924/260 638/950/261 +f 596/952/133 591/956/133 590/953/134 +f 587/955/5 586/1392/5 591/956/133 +f 595/954/134 590/953/134 589/957/62 +f 574/923/123 580/922/123 579/959/5 +f 556/961/62 598/848/62 599/854/62 +f 586/965/2 585/1393/2 590/963/2 +f 585/1393/2 588/1394/2 590/963/2 +f 588/1394/2 589/1395/2 590/963/2 +f 594/958/62 589/957/62 588/966/136 +f 603/968/262 602/1378/263 556/969/263 +f 631/971/264 632/991/264 630/972/243 +f 627/899/244 628/898/244 626/974/265 +f 618/976/3 622/1396/3 621/977/3 +f 593/933/3 592/920/3 580/921/3 +f 599/854/62 600/818/62 558/978/62 +f 604/979/266 603/968/266 557/980/266 +f 596/869/3 595/930/3 583/932/3 +f 592/982/123 585/992/123 586/983/5 +f 600/818/62 597/873/62 555/985/62 +f 601/880/62 602/1378/62 603/968/62 +f 611/907/248 612/906/248 610/986/245 +f 555/985/62 597/873/62 598/848/62 +f 617/912/267 620/911/267 614/987/267 +f 623/988/268 622/916/268 618/885/241 +f 625/975/265 626/974/265 636/989/269 +f 633/948/270 634/947/270 632/991/264 +f 593/967/136 588/966/136 585/992/123 +f 607/993/246 608/1397/246 606/994/249 +f 627/996/3 625/1398/3 637/997/3 +f 625/1398/3 635/1399/3 637/997/3 +f 635/1399/3 638/1001/3 637/997/3 +f 637/997/3 633/1400/3 631/1401/3 +f 631/1401/3 629/995/3 637/997/3 +f 635/990/269 636/989/269 639/951/261 +f 644/998/2 643/1402/2 639/999/2 +f 641/926/271 644/925/271 640/1000/271 +f 638/1001/3 642/1403/3 641/1002/3 +f 649/1003/272 650/1014/272 648/1004/256 +f 647/1007/3 645/1404/3 657/1008/3 +f 645/1404/3 655/1405/3 657/1008/3 +f 655/1405/3 658/1025/3 657/1008/3 +f 657/1008/3 653/1406/3 651/1407/3 +f 651/1407/3 649/1006/3 657/1008/3 +f 653/1009/273 654/1021/273 652/1010/274 +f 645/942/257 646/941/257 656/1012/275 +f 651/1011/274 652/1010/274 650/1014/272 +f 646/1016/2 648/1408/2 660/1017/2 +f 648/1408/2 650/1409/2 660/1017/2 +f 650/1409/2 652/1410/2 660/1017/2 +f 652/1410/2 654/1411/2 660/1017/2 +f 660/1017/2 659/1030/2 656/1015/2 +f 655/1013/276 656/1012/275 659/1018/277 +f 657/1020/278 660/1024/278 654/1021/278 +f 663/1022/279 662/1027/303 658/1019/277 +f 661/1023/280 664/1028/280 660/1024/280 +f 658/1025/3 662/1412/3 661/1026/3 +f 662/1027/281 663/1022/281 664/1028/281 +f 664/1029/2 663/1413/2 659/1030/2 +f 669/1031/282 670/1414/282 668/1032/283 +f 673/1034/284 674/1052/304 672/1035/285 +f 667/1033/283 668/1032/283 666/1037/286 +f 665/1038/286 666/1037/286 676/1039/287 +f 667/1042/3 665/1415/3 677/1043/3 +f 665/1415/3 675/1416/3 677/1043/3 +f 675/1416/3 678/1056/3 677/1043/3 +f 677/1043/3 673/1417/3 671/1418/3 +f 671/1418/3 669/1041/3 677/1043/3 +f 671/1036/285 672/1035/285 670/1044/282 +f 666/1047/2 668/1419/2 680/1048/2 +f 668/1419/2 670/1420/2 680/1048/2 +f 670/1420/2 672/1421/2 680/1048/2 +f 672/1421/2 674/1422/2 680/1048/2 +f 680/1048/2 679/1061/2 676/1046/2 +f 675/1040/287 676/1039/287 679/1049/288 +f 677/1051/289 680/1055/289 674/1052/289 +f 683/1053/290 682/1058/290 678/1050/288 +f 681/1054/291 684/1059/291 680/1055/291 +f 678/1056/3 682/1423/3 681/1057/3 +f 682/1058/292 683/1053/292 684/1059/292 +f 684/1060/2 683/1424/2 679/1061/2 +f 702/1062/293 726/1139/293 725/1063/293 +f 708/1065/293 732/1104/293 731/534/293 +f 706/1067/293 730/1215/293 729/1068/293 +f 704/1070/293 728/1094/293 727/1071/293 +f 698/1073/293 722/537/293 721/1074/293 +f 699/1076/293 700/1425/293 724/540/293 +f 370/617/62 398/616/62 361/1078/62 +f 380/1080/2 377/1337/2 372/620/2 +f 374/1082/62 394/1208/62 395/1083/62 +f 375/1084/62 378/675/62 389/674/62 +f 368/1086/62 348/1426/62 344/1087/62 +f 400/1089/177 405/1206/177 406/1090/177 +f 64/1092/4 63/46/4 58/1093/4 +f 728/1094/176 704/1427/176 692/1095/176 +f 358/1097/2 379/1428/2 370/1098/2 +f 365/1100/2 364/1183/2 22/1101/2 +f 729/1068/1 730/1215/1 718/1103/1 +f 732/1104/176 708/1/176 696/3/176 +f 366/1106/2 365/1100/2 23/1102/2 +f 348/1108/2 368/1137/2 26/1109/2 +f 394/1111/3 393/1120/3 51/1112/3 +f 711/1114/8 687/1429/8 699/1115/8 +f 704/1116/1 705/1430/1 693/1117/1 +f 434/571/62 431/627/62 423/1119/62 +f 393/1120/3 345/1431/3 3/1121/3 +f 382/1088/62 381/661/62 367/1122/62 +f 379/1123/62 358/1198/62 359/1124/62 +f 706/1126/1 707/1432/1 695/1127/1 +f 395/1129/3 394/1111/3 52/1113/3 +f 363/1131/2 362/546/2 20/548/2 +f 396/1133/3 395/1129/3 53/1130/3 +f 702/1134/1 703/1433/1 691/1135/1 +f 368/1137/2 367/1168/2 25/1138/2 +f 726/1139/176 702/1434/176 690/1140/176 +f 701/1142/8 725/1063/8 713/529/8 +f 360/634/1 357/579/1 352/578/1 +f 700/1145/1 701/1435/1 689/1146/1 +f 43/105/5 21/104/5 20/1148/5 +f 2/1150/6 8/1436/6 7/1151/6 +f 721/1074/1 722/537/1 710/539/1 +f 49/1153/5 34/1170/5 7/1154/5 +f 81/119/5 89/90/5 92/5/5 +f 10/20/1 15/22/1 18/80/1 +f 18/1159/5 15/1437/5 16/1160/5 +f 17/1161/5 16/1160/5 37/51/5 +f 705/1162/8 729/1068/8 717/552/8 +f 11/1157/5 4/24/5 19/1164/5 +f 698/1165/1 699/1438/1 687/1166/1 +f 727/1071/1 728/1094/1 716/1096/1 +f 731/534/1 732/1104/1 720/1105/1 +f 367/1168/2 366/1106/2 24/1107/2 +f 361/1169/3 398/549/3 56/551/3 +f 49/1153/1 80/10/1 73/12/1 +f 48/108/3 47/99/3 42/1171/3 +f 75/1172/5 74/11/5 79/1173/5 +f 40/569/5 26/568/5 25/1174/5 +f 28/43/2 37/1233/2 16/1175/2 +f 723/1077/1 724/540/1 712/542/1 +f 384/644/3 389/643/3 390/1177/3 +f 415/588/1 422/587/1 391/1178/1 +f 421/1180/62 416/586/62 417/1181/62 +f 364/1183/2 363/1131/2 21/1132/2 +f 419/1184/178 420/1182/178 417/1181/178 +f 364/642/62 365/611/62 383/1186/62 +f 412/639/178 409/638/178 410/1187/178 +f 361/1188/62 346/1336/62 353/1189/62 +f 356/669/62 347/598/62 362/1191/62 +f 343/1194/62 344/1439/62 703/1440/62 +f 344/1439/62 348/1441/62 708/1442/62 +f 708/1442/62 707/1443/62 344/1439/62 +f 707/1443/62 706/1444/62 344/1439/62 +f 344/1439/62 706/1444/62 705/1445/62 +f 697/1446/62 345/1447/62 343/1194/62 +f 700/1193/62 699/1448/62 343/1194/62 +f 699/1448/62 698/1449/62 343/1194/62 +f 698/1449/62 697/1446/62 343/1194/62 +f 705/1445/62 704/1450/62 344/1439/62 +f 704/1450/62 703/1440/62 344/1439/62 +f 703/1440/62 702/1451/62 343/1194/62 +f 702/1451/62 701/1192/62 343/1194/62 +f 436/1195/2 435/624/2 423/1196/2 +f 358/1198/62 357/1452/62 360/1199/62 +f 725/1063/1 726/1139/1 714/1141/1 +f 349/1200/6 350/1453/6 344/1201/6 +f 399/1091/1 406/1090/1 387/662/1 +f 437/625/1 436/1195/1 424/1204/1 +f 405/1206/62 400/1089/62 401/1207/62 +f 370/1098/2 379/1428/2 380/1080/2 +f 373/665/62 393/664/62 394/1208/62 +f 403/623/6 402/622/6 379/1123/6 +f 450/686/183 447/685/183 446/1209/294 +f 423/1119/62 431/627/62 432/607/62 +f 349/1211/62 376/1179/62 391/1178/62 +f 448/1210/295 446/1209/294 441/1213/6 +f 419/1184/6 418/1185/6 375/1084/6 +f 730/1215/176 706/1454/176 694/1216/176 +o base +v -2.500000 1.000000 0.125000 +v 2.500000 1.000000 0.125000 +v -2.500000 1.000000 -0.125000 +v 2.500000 1.000000 -0.125000 +v -2.163461 1.000000 0.125000 +v -1.682692 1.000000 0.125000 +v -1.394231 1.000000 0.125000 +v -0.913461 1.000000 0.125000 +v -0.625000 1.000000 0.125000 +v -0.144231 1.000000 0.125000 +v 0.144231 1.000000 0.125000 +v 0.625000 1.000000 0.125000 +v 0.913462 1.000000 0.125000 +v 1.394231 1.000000 0.125000 +v 1.682693 1.000000 0.125000 +v 2.163462 1.000000 0.125000 +v -2.163461 1.000000 -0.125000 +v -1.682692 1.000000 -0.125000 +v -1.394231 1.000000 -0.125000 +v -0.913461 1.000000 -0.125000 +v -0.625000 1.000000 -0.125000 +v -0.144231 1.000000 -0.125000 +v 0.144231 1.000000 -0.125000 +v 0.625000 1.000000 -0.125000 +v 0.913462 1.000000 -0.125000 +v 1.394231 1.000000 -0.125000 +v 1.682693 1.000000 -0.125000 +v 2.163462 1.000000 -0.125000 +v -2.043269 0.875000 0.093750 +v -1.802885 0.875000 0.093750 +v -1.274038 0.875000 0.093750 +v -1.033654 0.875000 0.093750 +v -0.504808 0.875000 0.093750 +v -0.264423 0.875000 0.093750 +v 0.264423 0.875000 0.093750 +v 0.504808 0.875000 0.093750 +v 1.033654 0.875000 0.093750 +v 1.274039 0.875000 0.093750 +v 1.802885 0.875000 0.093750 +v 2.043269 0.875000 0.093750 +v -2.043269 0.875000 -0.093750 +v -1.802885 0.875000 -0.093750 +v -1.274038 0.875000 -0.093750 +v -1.033654 0.875000 -0.093750 +v -0.504808 0.875000 -0.093750 +v -0.264423 0.875000 -0.093750 +v 0.264423 0.875000 -0.093750 +v 0.504808 0.875000 -0.093750 +v 1.033654 0.875000 -0.093750 +v 1.274039 0.875000 -0.093750 +v 1.802885 0.875000 -0.093750 +v 2.043269 0.875000 -0.093750 +v -2.500000 1.000000 0.500000 +v -2.500000 1.000000 -0.500000 +v 2.500000 1.000000 0.500000 +v 2.500000 1.000000 -0.500000 +v -2.500000 0.000000 0.500000 +v -2.500000 0.000000 -0.500000 +v 2.500000 0.000000 0.500000 +v 2.500000 0.000000 -0.500000 +v 2.163462 1.062500 0.125000 +v 2.500000 1.062500 0.125000 +v 2.163462 1.062500 -0.125000 +v 2.500000 1.062500 -0.125000 +v -2.500000 1.062500 0.125000 +v -2.163461 1.062500 0.125000 +v -1.682692 1.062500 0.125000 +v -1.394231 1.062500 0.125000 +v -0.913461 1.062500 0.125000 +v -0.625000 1.062500 0.125000 +v -0.144231 1.062500 0.125000 +v 0.144231 1.062500 0.125000 +v 0.625000 1.062500 0.125000 +v 0.913462 1.062500 0.125000 +v 1.394231 1.062500 0.125000 +v 1.682693 1.062500 0.125000 +v -2.500000 1.062500 -0.125000 +v -2.163461 1.062500 -0.125000 +v -1.682692 1.062500 -0.125000 +v -1.394231 1.062500 -0.125000 +v -0.913461 1.062500 -0.125000 +v -0.625000 1.062500 -0.125000 +v -0.144231 1.062500 -0.125000 +v 0.144231 1.062500 -0.125000 +v 0.625000 1.062500 -0.125000 +v 0.913462 1.062500 -0.125000 +v 1.394231 1.062500 -0.125000 +v 1.682693 1.062500 -0.125000 +v -2.500000 1.062500 0.437500 +v 2.500000 1.062500 0.437500 +v 2.500000 1.062500 -0.437500 +v -2.500000 1.062500 -0.437500 +v -2.500000 4.499997 0.125000 +v 2.500000 4.499997 0.125000 +v -2.500000 4.499997 -0.125000 +v 2.500000 4.499997 -0.125000 +v 2.500000 4.999997 -0.125000 +v -2.500000 4.999997 -0.125000 +v 2.500000 4.999997 0.125000 +v -2.500000 4.999997 0.125000 +v 2.500000 4.584002 -0.341924 +v -2.500000 4.584002 -0.341924 +v 2.500000 4.584002 0.341924 +v -2.500000 4.584002 0.341924 +v 2.500000 4.999997 -0.341924 +v -2.500000 4.999997 -0.341924 +v 2.500000 4.999997 0.341924 +v -2.500000 4.999997 0.341924 +vt 0.995551 0.832453 +vt 0.903538 0.372388 +vt 0.995551 0.372388 +vt 0.004449 0.740332 +vt 0.464514 0.832345 +vt 0.004449 0.832345 +vt 0.894639 0.464401 +vt 0.434574 0.372388 +vt 0.894639 0.372388 +vt 0.883297 0.104396 +vt 0.914263 0.127399 +vt 0.883297 0.127399 +vt 0.241266 0.930716 +vt 0.264269 0.904173 +vt 0.264269 0.930716 +vt 0.221219 0.879319 +vt 0.209364 0.846141 +vt 0.221219 0.857200 +vt 0.909839 0.192797 +vt 0.883297 0.169794 +vt 0.909839 0.169794 +vt 0.485268 0.852835 +vt 0.505396 0.836879 +vt 0.502521 0.852835 +vt 0.473413 0.926350 +vt 0.496416 0.899808 +vt 0.496416 0.926350 +vt 0.195568 0.841244 +vt 0.162390 0.853100 +vt 0.151331 0.841244 +vt 0.318069 0.895275 +vt 0.338196 0.879319 +vt 0.341072 0.895275 +vt 0.514376 0.886013 +vt 0.514376 0.841776 +vt 0.499255 0.651053 +vt 0.525797 0.674057 +vt 0.499255 0.674057 +vt 0.370806 0.879319 +vt 0.358951 0.846141 +vt 0.370806 0.857200 +vt 0.502521 0.874953 +vt 0.288334 0.879319 +vt 0.271082 0.857200 +vt 0.288334 0.857200 +vt 0.238472 0.879319 +vt 0.238472 0.857200 +vt 0.320944 0.857200 +vt 0.338196 0.857200 +vt 0.184509 0.853100 +vt 0.162390 0.870352 +vt 0.388059 0.879319 +vt 0.388059 0.857200 +vt 0.146434 0.850224 +vt 0.482393 0.890909 +vt 0.505396 0.890909 +vt 0.300190 0.890378 +vt 0.300190 0.846141 +vt 0.200465 0.873228 +vt 0.200465 0.850224 +vt 0.399914 0.846141 +vt 0.291209 0.841244 +vt 0.320944 0.879319 +vt 0.309088 0.846141 +vt 0.390934 0.841244 +vt 0.268206 0.895275 +vt 0.291209 0.895275 +vt 0.250327 0.890378 +vt 0.250327 0.846141 +vt 0.367931 0.895275 +vt 0.390934 0.895275 +vt 0.485268 0.874953 +vt 0.473413 0.841776 +vt 0.241347 0.841244 +vt 0.218344 0.841244 +vt 0.184509 0.870352 +vt 0.151331 0.882208 +vt 0.218344 0.895275 +vt 0.350052 0.890378 +vt 0.350052 0.846141 +vt 0.271082 0.879319 +vt 0.259226 0.846141 +vt 0.341072 0.841244 +vt 0.318069 0.841244 +vt 0.894636 0.700521 +vt 0.888604 0.654741 +vt 0.894521 0.654738 +vt 0.841467 0.867572 +vt 0.836035 0.841924 +vt 0.841594 0.841952 +vt 0.522258 0.605178 +vt 0.499255 0.574212 +vt 0.522258 0.574212 +vt 0.209364 0.930716 +vt 0.232367 0.904173 +vt 0.232367 0.930716 +vt 0.469079 0.565313 +vt 0.434574 0.565313 +vt 0.434574 0.473300 +vt 0.535833 0.096462 +vt 0.501328 0.004449 +vt 0.593341 0.004449 +vt 0.836363 0.773181 +vt 0.836233 0.799101 +vt 0.807869 0.939936 +vt 0.888458 0.773182 +vt 0.888328 0.799102 +vt 0.859964 0.939936 +vt 0.841825 0.799136 +vt 0.894639 0.729014 +vt 0.888578 0.700511 +vt 0.842044 0.773229 +vt 0.836608 0.729026 +vt 0.842544 0.729014 +vt 0.836709 0.473339 +vt 0.807494 0.479148 +vt 0.801659 0.473300 +vt 0.894139 0.773229 +vt 0.888703 0.729026 +vt 0.836483 0.700510 +vt 0.842541 0.700521 +vt 0.835565 0.945607 +vt 0.835591 0.940063 +vt 0.893920 0.799137 +vt 0.836509 0.654740 +vt 0.842426 0.654737 +vt 0.888803 0.473339 +vt 0.859588 0.479148 +vt 0.853753 0.473300 +vt 0.893689 0.841952 +vt 0.836534 0.627597 +vt 0.842402 0.627598 +vt 0.887660 0.945608 +vt 0.887686 0.940063 +vt 0.893562 0.867572 +vt 0.888130 0.841925 +vt 0.836583 0.582562 +vt 0.842433 0.582567 +vt 0.893366 0.910233 +vt 0.888013 0.867546 +vt 0.836614 0.555582 +vt 0.842458 0.555588 +vt 0.842508 0.510644 +vt 0.836702 0.479181 +vt 0.842544 0.479188 +vt 0.836666 0.510638 +vt 0.894603 0.510644 +vt 0.888797 0.479181 +vt 0.894639 0.479188 +vt 0.893230 0.940089 +vt 0.887821 0.910207 +vt 0.894553 0.555588 +vt 0.888761 0.510638 +vt 0.799348 0.479155 +vt 0.799723 0.939943 +vt 0.894528 0.582568 +vt 0.888709 0.555582 +vt 0.841135 0.940088 +vt 0.835726 0.910207 +vt 0.841271 0.910232 +vt 0.851443 0.479155 +vt 0.851818 0.939943 +vt 0.894497 0.627599 +vt 0.888678 0.582562 +vt 0.835918 0.867546 +vt 0.888628 0.627597 +vt 0.233016 0.948456 +vt 0.251643 0.984178 +vt 0.233016 0.991391 +vt 0.014324 0.956233 +vt 0.443677 0.977701 +vt 0.014324 0.977701 +vt 0.082167 0.993341 +vt 0.103634 0.950405 +vt 0.103634 0.993341 +vt 0.211548 0.991391 +vt 0.122262 0.986127 +vt 0.032779 0.982491 +vt 0.462133 0.946769 +vt 0.462133 0.982491 +vt 0.476898 0.940769 +vt 0.047544 0.976491 +vt 0.047544 0.940769 +vt 0.503969 0.961382 +vt 0.074613 0.981357 +vt 0.074613 0.961382 +vt 0.443677 0.937606 +vt 0.443677 0.956233 +vt 0.483594 0.956906 +vt 0.054238 0.976881 +vt 0.054238 0.956906 +vt 0.211548 0.948456 +vt 0.192921 0.984178 +vt 0.192921 0.948456 +vt 0.082167 0.950405 +vt 0.063539 0.986127 +vt 0.063539 0.950405 +vt 0.014324 0.996329 +vt 0.903538 0.832453 +vt 0.464514 0.740333 +vt 0.434574 0.464401 +vt 0.914263 0.104396 +vt 0.241266 0.904173 +vt 0.209364 0.890378 +vt 0.883297 0.192797 +vt 0.482393 0.836879 +vt 0.473413 0.899808 +vt 0.525797 0.651053 +vt 0.358951 0.890378 +vt 0.146434 0.873228 +vt 0.399914 0.890378 +vt 0.268206 0.841244 +vt 0.309088 0.890378 +vt 0.367931 0.841244 +vt 0.473413 0.886012 +vt 0.195568 0.882208 +vt 0.241347 0.895275 +vt 0.259226 0.890378 +vt 0.499255 0.605178 +vt 0.209364 0.904173 +vt 0.526587 0.473300 +vt 0.492082 0.565313 +vt 0.526587 0.565313 +vt 0.593341 0.096462 +vt 0.558837 0.096462 +vt 0.501328 0.096462 +vt 0.802299 0.945455 +vt 0.854395 0.945455 +vt 0.251643 0.948456 +vt 0.122262 0.950405 +vt 0.032779 0.946769 +vt 0.476898 0.976491 +vt 0.503969 0.981358 +vt 0.014324 0.937606 +vt 0.483594 0.976881 +vt 0.443677 0.996329 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.2425 0.9701 +vn 0.7208 0.6931 0.0000 +vn 0.0000 0.2425 -0.9701 +vn -0.7208 0.6931 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.7071 0.0000 -0.7071 +vn 0.8321 0.3922 0.3922 +vn 0.4472 0.6325 0.6325 +vn -0.7071 0.0000 -0.7071 +vn -0.8321 0.3922 0.3922 +vn -0.7071 0.0000 0.7071 +vn -0.8321 0.3922 -0.3922 +vn -0.4472 0.6325 -0.6325 +vn 0.7071 0.0000 0.7071 +vn 0.8321 0.3922 -0.3922 +vn -0.4472 0.6325 0.6325 +vn 0.4472 0.6325 -0.6325 +vn 0.8944 0.4472 0.0000 +vn 0.5993 -0.4524 0.6604 +vn 0.8700 -0.4597 0.1780 +vn -0.8700 -0.4597 0.1780 +vn -0.8944 0.4472 0.0000 +vn -0.8700 -0.4597 -0.1780 +vn 0.8700 -0.4597 -0.1780 +vn -0.5993 -0.4524 -0.6604 +vn -0.5774 0.5774 0.5774 +vn -0.5993 -0.4524 0.6604 +vn 0.5774 0.5774 -0.5774 +vn 0.5993 -0.4524 -0.6604 +vn -0.5774 0.5774 -0.5774 +vn 0.5774 0.5774 0.5774 +s 1 +f 792/1455/305 789/1456/305 790/1457/305 +f 792/1458/306 786/1459/306 788/1460/306 +f 789/1461/307 787/1462/307 785/1463/307 +f 736/1464/308 748/1465/308 734/1466/308 +f 755/1467/308 742/1468/308 743/1469/308 +f 778/1470/309 753/1471/309 777/1472/309 +f 738/1473/308 751/1474/308 750/1475/308 +f 773/1476/310 737/1477/310 761/1478/310 +f 753/1479/308 740/1480/308 741/1481/308 +f 746/1482/311 769/1483/311 745/1484/311 +f 756/1485/312 768/1486/312 744/1487/312 +f 738/1488/311 761/1478/311 737/1489/311 +f 759/1490/308 746/1491/308 747/1492/308 +f 784/1493/309 759/1494/309 783/1495/309 +f 762/1496/308 773/1476/308 761/1478/308 +f 764/1497/308 775/1498/308 763/1499/308 +f 766/1500/308 777/1472/308 765/1501/308 +f 768/1486/308 779/1502/308 767/1503/308 +f 770/1504/308 781/1505/308 769/1483/308 +f 772/1506/308 783/1495/308 771/1507/308 +f 781/1505/310 745/1508/310 769/1483/310 +f 750/1509/312 762/1496/312 738/1510/312 +f 740/1511/311 763/1499/311 739/1512/311 +f 758/1513/312 770/1504/312 746/1514/312 +f 747/1515/311 772/1506/311 771/1507/311 +f 775/1498/310 739/1516/310 763/1499/310 +f 780/1517/309 755/1518/309 779/1502/309 +f 783/1495/310 747/1519/310 771/1507/310 +f 752/1520/312 764/1497/312 740/1521/312 +f 742/1522/311 765/1501/311 741/1523/311 +f 760/1524/312 772/1506/312 748/1525/312 +f 774/1526/309 749/1527/309 773/1476/309 +f 741/1528/310 777/1472/310 753/1529/310 +f 782/1530/309 757/1531/309 781/1505/309 +f 766/1500/312 754/1532/312 778/1470/312 +f 744/1533/311 767/1503/311 743/1534/311 +f 776/1535/309 751/1536/309 775/1498/309 +f 743/1537/310 779/1502/310 755/1538/310 +f 754/1539/307 814/1540/307 753/1541/307 +f 738/1542/306 800/1543/306 739/1544/306 +f 737/1545/308 735/1546/308 733/1547/308 +f 757/1548/308 744/1549/308 745/1550/308 +f 734/1551/313 787/1552/313 791/1553/313 +f 735/1554/314 790/1555/314 789/1556/314 +f 802/1557/308 801/1558/308 821/1559/308 +f 817/1560/308 818/1561/308 823/1562/308 +f 739/1544/306 801/1558/306 740/1563/306 +f 755/1564/307 815/1565/307 754/1539/307 +f 741/1566/306 803/1567/306 742/1568/306 +f 734/1569/315 822/1570/316 787/1571/317 +f 756/1572/307 816/1573/307 755/1564/307 +f 742/1568/306 804/1574/306 743/1575/306 +f 733/1576/318 821/1559/319 797/1577/318 +f 757/1578/307 817/1560/307 756/1572/307 +f 743/1575/306 805/1579/306 744/1580/306 +f 735/1581/320 824/1582/321 786/1583/322 +f 758/1584/307 818/1561/307 757/1578/307 +f 744/1580/306 806/1585/306 745/1586/306 +f 736/1587/323 823/1562/324 796/1588/323 +f 759/1589/307 819/1590/307 758/1584/307 +f 745/1586/306 807/1591/306 746/1592/306 +f 760/1593/307 820/1594/307 759/1589/307 +f 746/1592/306 808/1595/306 747/1596/306 +f 748/1597/306 794/1598/315 734/1599/315 +f 747/1596/306 793/1600/306 748/1597/306 +f 740/1563/306 802/1557/306 741/1566/306 +f 749/1601/307 809/1602/320 735/1603/320 +f 736/1604/323 795/1605/307 760/1593/307 +f 750/1606/307 810/1607/307 749/1601/307 +f 787/1608/317 821/1559/319 785/1609/325 +f 751/1610/307 811/1611/307 750/1606/307 +f 733/1612/318 798/1613/306 737/1614/306 +f 786/1615/322 823/1562/324 788/1616/326 +f 752/1617/307 812/1618/307 751/1610/307 +f 737/1614/306 799/1619/306 738/1542/306 +f 753/1541/307 813/1620/307 752/1617/307 +f 831/1621/327 835/1622/328 826/1623/329 +f 829/1624/308 832/1625/308 831/1626/308 +f 825/1627/330 830/1628/331 827/1629/332 +f 828/1630/333 831/1621/327 826/1623/329 +f 830/1628/331 834/1631/334 827/1629/332 +f 835/1632/328 840/1633/335 836/1634/336 +f 834/1635/334 837/1636/337 833/1637/338 +f 827/1638/332 833/1639/338 828/1640/333 +f 829/1624/327 838/1641/339 830/1642/331 +f 826/1643/329 836/1644/336 825/1645/330 +f 829/1646/327 833/1647/338 837/1648/337 +f 832/1649/331 836/1650/336 840/1651/335 +f 832/1625/331 839/1652/340 831/1626/327 +f 792/1455/305 791/1653/305 789/1456/305 +f 792/1458/306 790/1654/306 786/1459/306 +f 789/1461/307 791/1655/307 787/1462/307 +f 736/1464/308 760/1656/308 748/1465/308 +f 755/1467/308 754/1657/308 742/1468/308 +f 778/1470/309 754/1658/309 753/1471/309 +f 738/1473/308 739/1659/308 751/1474/308 +f 773/1476/310 749/1660/310 737/1477/310 +f 753/1479/308 752/1661/308 740/1480/308 +f 746/1482/311 770/1504/311 769/1483/311 +f 756/1485/312 780/1517/312 768/1486/312 +f 738/1488/311 762/1496/311 761/1478/311 +f 759/1490/308 758/1662/308 746/1491/308 +f 784/1493/309 760/1663/309 759/1494/309 +f 762/1496/308 774/1526/308 773/1476/308 +f 764/1497/308 776/1535/308 775/1498/308 +f 766/1500/308 778/1470/308 777/1472/308 +f 768/1486/308 780/1517/308 779/1502/308 +f 770/1504/308 782/1530/308 781/1505/308 +f 772/1506/308 784/1493/308 783/1495/308 +f 781/1505/310 757/1664/310 745/1508/310 +f 750/1509/312 774/1526/312 762/1496/312 +f 740/1511/311 764/1497/311 763/1499/311 +f 758/1513/312 782/1530/312 770/1504/312 +f 747/1515/311 748/1665/311 772/1506/311 +f 775/1498/310 751/1666/310 739/1516/310 +f 780/1517/309 756/1667/309 755/1518/309 +f 783/1495/310 759/1668/310 747/1519/310 +f 752/1520/312 776/1535/312 764/1497/312 +f 742/1522/311 766/1500/311 765/1501/311 +f 760/1524/312 784/1493/312 772/1506/312 +f 774/1526/309 750/1669/309 749/1527/309 +f 741/1528/310 765/1501/310 777/1472/310 +f 782/1530/309 758/1670/309 757/1531/309 +f 766/1500/312 742/1671/312 754/1532/312 +f 744/1533/311 768/1486/311 767/1503/311 +f 776/1535/309 752/1672/309 751/1536/309 +f 743/1537/310 767/1503/310 779/1502/310 +f 754/1539/307 815/1565/307 814/1540/307 +f 738/1542/306 799/1619/306 800/1543/306 +f 737/1545/308 749/1673/308 735/1546/308 +f 757/1548/308 756/1674/308 744/1549/308 +f 791/1553/313 792/1675/313 736/1676/313 +f 792/1675/313 788/1677/313 736/1676/313 +f 736/1676/313 734/1551/313 791/1553/313 +f 789/1556/314 785/1678/314 733/1679/314 +f 735/1554/314 786/1680/314 790/1555/314 +f 789/1556/314 733/1679/314 735/1554/314 +f 821/1559/308 822/1570/308 804/1574/308 +f 822/1570/308 794/1598/308 793/1600/308 +f 793/1600/308 808/1595/308 822/1570/308 +f 808/1595/308 807/1591/308 822/1570/308 +f 822/1570/308 807/1591/308 806/1585/308 +f 798/1613/308 797/1577/308 821/1559/308 +f 801/1558/308 800/1543/308 821/1559/308 +f 800/1543/308 799/1619/308 821/1559/308 +f 799/1619/308 798/1613/308 821/1559/308 +f 806/1585/308 805/1579/308 822/1570/308 +f 805/1579/308 804/1574/308 822/1570/308 +f 804/1574/308 803/1567/308 821/1559/308 +f 803/1567/308 802/1557/308 821/1559/308 +f 823/1562/308 824/1582/308 815/1565/308 +f 824/1582/308 809/1602/308 810/1607/308 +f 810/1607/308 811/1611/308 824/1582/308 +f 811/1611/308 812/1618/308 824/1582/308 +f 824/1582/308 812/1618/308 813/1620/308 +f 795/1605/308 796/1588/308 823/1562/308 +f 818/1561/308 819/1590/308 823/1562/308 +f 819/1590/308 820/1594/308 823/1562/308 +f 820/1594/308 795/1605/308 823/1562/308 +f 813/1620/308 814/1540/308 824/1582/308 +f 814/1540/308 815/1565/308 824/1582/308 +f 815/1565/308 816/1573/308 823/1562/308 +f 816/1573/308 817/1560/308 823/1562/308 +f 739/1544/306 800/1543/306 801/1558/306 +f 755/1564/307 816/1573/307 815/1565/307 +f 741/1566/306 802/1557/306 803/1567/306 +f 734/1569/315 794/1598/315 822/1570/316 +f 756/1572/307 817/1560/307 816/1573/307 +f 742/1568/306 803/1567/306 804/1574/306 +f 733/1576/318 785/1681/325 821/1559/319 +f 757/1578/307 818/1561/307 817/1560/307 +f 743/1575/306 804/1574/306 805/1579/306 +f 735/1581/320 809/1602/320 824/1582/321 +f 758/1584/307 819/1590/307 818/1561/307 +f 744/1580/306 805/1579/306 806/1585/306 +f 736/1587/323 788/1682/326 823/1562/324 +f 759/1589/307 820/1594/307 819/1590/307 +f 745/1586/306 806/1585/306 807/1591/306 +f 760/1593/307 795/1605/307 820/1594/307 +f 746/1592/306 807/1591/306 808/1595/306 +f 748/1597/306 793/1600/306 794/1598/315 +f 747/1596/306 808/1595/306 793/1600/306 +f 740/1563/306 801/1558/306 802/1557/306 +f 749/1601/307 810/1607/307 809/1602/320 +f 736/1604/323 796/1588/323 795/1605/307 +f 750/1606/307 811/1611/307 810/1607/307 +f 787/1608/317 822/1570/316 821/1559/319 +f 751/1610/307 812/1618/307 811/1611/307 +f 733/1612/318 797/1577/318 798/1613/306 +f 786/1615/322 824/1582/321 823/1562/324 +f 752/1617/307 813/1620/307 812/1618/307 +f 737/1614/306 798/1613/306 799/1619/306 +f 753/1541/307 814/1540/307 813/1620/307 +f 831/1621/327 839/1683/340 835/1622/328 +f 829/1624/308 830/1642/308 832/1625/308 +f 825/1627/330 832/1649/331 830/1628/331 +f 828/1630/333 829/1646/327 831/1621/327 +f 830/1628/331 838/1684/339 834/1631/334 +f 835/1632/328 839/1685/340 840/1633/335 +f 834/1635/334 838/1686/339 837/1636/337 +f 827/1638/332 834/1687/334 833/1639/338 +f 829/1624/327 837/1688/337 838/1641/339 +f 826/1643/329 835/1689/328 836/1644/336 +f 829/1646/327 828/1630/333 833/1647/338 +f 832/1649/331 825/1627/330 836/1650/336 +f 832/1625/331 840/1690/335 839/1652/340 diff --git a/src/main/resources/assets/hbm/sounds.json b/src/main/resources/assets/hbm/sounds.json index d2c6248c7..484174398 100644 --- a/src/main/resources/assets/hbm/sounds.json +++ b/src/main/resources/assets/hbm/sounds.json @@ -67,7 +67,10 @@ "door.sliding_door_shut": {"category": "block", "sounds": [{"name": "block/door/sliding_door_shut", "stream": false}]}, "door.sliding_door_opened": {"category": "block", "sounds": [{"name": "block/door/sliding_door_opened", "stream": false}]}, "door.sliding_door_opening": {"category": "block", "sounds": [{"name": "block/door/sliding_door_opening", "stream": false}]}, - + + "door.garage_move": { "category": "block", "sounds": [{"name": "block/door/garage_move", "stream": false}] }, + "door.garage_stop": { "category": "block", "sounds": [{"name": "block/door/garage_stop", "stream": false}] }, + "item.techBleep": {"category": "player", "sounds": [{"name": "tool/techBleep", "stream": false}]}, "item.techBoop": {"category": "player", "sounds": [{"name": "tool/techBoop", "stream": false}]}, "item.geiger1": {"category": "player", "sounds": [{"name": "tool/geiger1", "stream": false}]}, diff --git a/src/main/resources/assets/hbm/sounds/block/door/garage_move.ogg b/src/main/resources/assets/hbm/sounds/block/door/garage_move.ogg new file mode 100644 index 0000000000000000000000000000000000000000..9a8c707a14166fef0827bd7beb9d24262ba9b5d5 GIT binary patch literal 12368 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/doors/secure_access_door.png b/src/main/resources/assets/hbm/textures/models/doors/secure_access_door.png new file mode 100644 index 0000000000000000000000000000000000000000..108b7cefdb4a1da3fb65156d580e5584c8252b1d GIT binary patch literal 123860 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
  • Ingjp>iyBo&R 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 literal 0 HcmV?d00001 From 51ee74a4187626190f9fec0dbbc3c70fccb233a3 Mon Sep 17 00:00:00 2001 From: KoblizekXD Date: Thu, 23 Nov 2023 16:47:09 +0100 Subject: [PATCH 399/432] feat: WE LOVE DOORS --- src/main/java/com/hbm/blocks/ModBlocks.java | 20 + src/main/java/com/hbm/lib/Library.java | 14 +- .../java/com/hbm/main/ResourceManager.java | 19 + .../hbm/render/item/ItemRenderLibrary.java | 77 + .../java/com/hbm/tileentity/DoorDecl.java | 556 ++ .../hbm/models/doors/large_vehicle_door.obj | 6312 ++++++++++++++ .../hbm/models/doors/qe_containment.obj | 1601 ++++ .../hbm/models/doors/qe_sliding_door.obj | 2312 +++++ .../hbm/models/doors/round_airlock_door.obj | 3160 +++++++ .../hbm/models/doors/sliding_seal_door.obj | 2522 ++++++ .../assets/hbm/models/doors/water_door.obj | 7570 +++++++++++++++++ src/main/resources/assets/hbm/sounds.json | 8 + .../sounds/block/door/door_wgh_big_start.ogg | Bin 0 -> 69062 bytes .../sounds/block/door/door_wgh_big_stop.ogg | Bin 0 -> 24339 bytes .../hbm/sounds/block/door/doormove2.ogg | Bin 0 -> 15160 bytes .../hbm/sounds/block/door/doorshut_1.ogg | Bin 0 -> 8560 bytes .../sounds/block/door/doorslide_opened1.ogg | Bin 0 -> 13499 bytes .../sounds/block/door/doorslide_opening1.ogg | Bin 0 -> 14886 bytes .../assets/hbm/sounds/block/door/lever1.ogg | Bin 0 -> 10690 bytes .../hbm/sounds/block/door/metal_stop1.ogg | Bin 0 -> 16388 bytes .../models/doors/large_vehicle_door.png | Bin 0 -> 87580 bytes .../textures/models/doors/qe_containment.png | Bin 0 -> 131559 bytes .../models/doors/qe_containment_decal.png | Bin 0 -> 314 bytes .../textures/models/doors/qe_sliding_door.png | Bin 0 -> 18673 bytes .../models/doors/round_airlock_door.png | Bin 0 -> 136009 bytes .../models/doors/sliding_seal_door.png | Bin 0 -> 76202 bytes .../hbm/textures/models/doors/water_door.png | Bin 0 -> 106397 bytes 27 files changed, 24170 insertions(+), 1 deletion(-) create mode 100644 src/main/resources/assets/hbm/models/doors/large_vehicle_door.obj create mode 100644 src/main/resources/assets/hbm/models/doors/qe_containment.obj create mode 100644 src/main/resources/assets/hbm/models/doors/qe_sliding_door.obj create mode 100644 src/main/resources/assets/hbm/models/doors/round_airlock_door.obj create mode 100644 src/main/resources/assets/hbm/models/doors/sliding_seal_door.obj create mode 100644 src/main/resources/assets/hbm/models/doors/water_door.obj create mode 100644 src/main/resources/assets/hbm/sounds/block/door/door_wgh_big_start.ogg create mode 100644 src/main/resources/assets/hbm/sounds/block/door/door_wgh_big_stop.ogg create mode 100644 src/main/resources/assets/hbm/sounds/block/door/doormove2.ogg create mode 100644 src/main/resources/assets/hbm/sounds/block/door/doorshut_1.ogg create mode 100644 src/main/resources/assets/hbm/sounds/block/door/doorslide_opened1.ogg create mode 100644 src/main/resources/assets/hbm/sounds/block/door/doorslide_opening1.ogg create mode 100644 src/main/resources/assets/hbm/sounds/block/door/lever1.ogg create mode 100644 src/main/resources/assets/hbm/sounds/block/door/metal_stop1.ogg create mode 100644 src/main/resources/assets/hbm/textures/models/doors/large_vehicle_door.png create mode 100644 src/main/resources/assets/hbm/textures/models/doors/qe_containment.png create mode 100644 src/main/resources/assets/hbm/textures/models/doors/qe_containment_decal.png create mode 100644 src/main/resources/assets/hbm/textures/models/doors/qe_sliding_door.png create mode 100644 src/main/resources/assets/hbm/textures/models/doors/round_airlock_door.png create mode 100644 src/main/resources/assets/hbm/textures/models/doors/sliding_seal_door.png create mode 100644 src/main/resources/assets/hbm/textures/models/doors/water_door.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 42c1948df..98442c95e 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -606,7 +606,15 @@ public class ModBlocks { public static Block sliding_blast_door; public static Block fire_door; public static Block transition_seal; + + // 1.12.2 Doors public static Block secure_access_door; + public static Block large_vehicle_door; + public static Block qe_containment; + public static Block qe_sliding_door; + public static Block round_airlock_door; + public static Block sliding_seal_door; + public static Block water_door; public static Block door_metal; public static Block door_office; @@ -2144,6 +2152,12 @@ public class ModBlocks { fire_door = new BlockDoorGeneric(Material.iron, DoorDecl.FIRE_DOOR).setBlockName("fire_door").setHardness(10.0F).setResistance(10000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fire_door"); transition_seal = new BlockDoorGeneric(Material.iron, DoorDecl.TRANSITION_SEAL).setBlockName("transition_seal").setHardness(10.0F).setResistance(10000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":transition_seal"); secure_access_door = new BlockDoorGeneric(Material.iron, DoorDecl.SECURE_ACCESS_DOOR).setBlockName("secure_access_door").setHardness(200.0F).setResistance(20000.0F).setCreativeTab(MainRegistry.machineTab); + large_vehicle_door = new BlockDoorGeneric(Material.iron, DoorDecl.LARGE_VEHICLE_DOOR).setBlockName("large_vehicle_door").setHardness(100.0F).setResistance(10000.0F).setCreativeTab(MainRegistry.machineTab); + qe_containment = new BlockDoorGeneric(Material.iron, DoorDecl.QE_CONTAINMENT).setBlockName("qe_containment").setHardness(100.0F).setResistance(10000.0F).setCreativeTab(MainRegistry.machineTab); + qe_sliding_door = new BlockDoorGeneric(Material.iron, DoorDecl.QE_SLIDING).setBlockName("qe_sliding_door").setHardness(100.0F).setResistance(10000.0F).setCreativeTab(MainRegistry.machineTab); + round_airlock_door = new BlockDoorGeneric(Material.iron, DoorDecl.ROUND_AIRLOCK_DOOR).setBlockName("round_airlock_door").setHardness(100.0F).setResistance(10000.0F).setCreativeTab(MainRegistry.machineTab); + sliding_seal_door = new BlockDoorGeneric(Material.iron, DoorDecl.SLIDING_SEAL_DOOR).setBlockName("sliding_seal_door").setHardness(10.0F).setResistance(10000.0F).setCreativeTab(MainRegistry.machineTab); + water_door = new BlockDoorGeneric(Material.iron, DoorDecl.WATER_DOOR).setBlockName("water_door").setHardness(50.0F).setResistance(500.0F).setCreativeTab(MainRegistry.machineTab); door_metal = new BlockModDoor(Material.iron).setBlockName("door_metal").setHardness(5.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":door_metal"); door_office = new BlockModDoor(Material.iron).setBlockName("door_office").setHardness(10.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":door_office"); @@ -3078,6 +3092,12 @@ public class ModBlocks { GameRegistry.registerBlock(door_office, door_office.getUnlocalizedName()); GameRegistry.registerBlock(door_bunker, door_bunker.getUnlocalizedName()); GameRegistry.registerBlock(secure_access_door, secure_access_door.getUnlocalizedName()); + GameRegistry.registerBlock(large_vehicle_door, large_vehicle_door.getUnlocalizedName()); + GameRegistry.registerBlock(qe_containment, qe_containment.getUnlocalizedName()); + GameRegistry.registerBlock(qe_sliding_door, qe_sliding_door.getUnlocalizedName()); + GameRegistry.registerBlock(round_airlock_door, round_airlock_door.getUnlocalizedName()); + GameRegistry.registerBlock(sliding_seal_door, sliding_seal_door.getUnlocalizedName()); + GameRegistry.registerBlock(water_door, water_door.getUnlocalizedName()); //Crates register(crate_iron); diff --git a/src/main/java/com/hbm/lib/Library.java b/src/main/java/com/hbm/lib/Library.java index 28416dc2e..3cd331dae 100644 --- a/src/main/java/com/hbm/lib/Library.java +++ b/src/main/java/com/hbm/lib/Library.java @@ -33,6 +33,7 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.MathHelper; import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.Vec3; import net.minecraft.world.IBlockAccess; @@ -528,7 +529,18 @@ public class Library { return flag; } - + + // Added for sake of doors + // Original: Drillgon200: https://thebookofshaders.com/glossary/?search=smoothstep + public static double smoothstep(double t, double edge0, double edge1){ + t = MathHelper.clamp_double((t - edge0) / (edge1 - edge0), 0.0, 1.0); + return t * t * (3.0 - 2.0 * t); + } + public static float smoothstep(float t, float edge0, float edge1){ + t = MathHelper.clamp_float((t - edge0) / (edge1 - edge0), 0.0F, 1.0F); + return t * t * (3.0F - 2.0F * t); + } + public static boolean isObstructed(World world, double x, double y, double z, double a, double b, double c) { MovingObjectPosition pos = world.rayTraceBlocks(Vec3.createVectorHelper(x, y, z), Vec3.createVectorHelper(a, b, c)); return pos != null; diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 53c2ca946..8c1040c1c 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -323,6 +323,25 @@ public class ResourceManager { public static final ResourceLocation secure_access_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/secure_access_door.png"); public static WavefrontObjDisplayList secure_access_door = new WavefrontObjDisplayList(new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/secure_access_door.obj"))); + public static final ResourceLocation water_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/water_door.png"); + public static WavefrontObjDisplayList water_door = new WavefrontObjDisplayList(new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/water_door.obj"))); + + public static final ResourceLocation sliding_seal_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/sliding_seal_door.png"); + public static WavefrontObjDisplayList sliding_seal_door = new WavefrontObjDisplayList(new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/sliding_seal_door.obj"))); + + public static final ResourceLocation round_airlock_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/round_airlock_door.png"); + public static WavefrontObjDisplayList round_airlock_door = new WavefrontObjDisplayList(new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/round_airlock_door.obj"))); + + public static final ResourceLocation qe_sliding_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/qe_sliding_door.png"); + public static WavefrontObjDisplayList qe_sliding_door = new WavefrontObjDisplayList(new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/qe_sliding_door.obj"))); + + public static final ResourceLocation qe_containment_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/qe_containment.png"); + public static WavefrontObjDisplayList qe_containment = new WavefrontObjDisplayList(new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/qe_containment.obj"))); + + public static final ResourceLocation large_vehicle_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/large_vehicle_door.png"); + public static WavefrontObjDisplayList large_vehicle_door = new WavefrontObjDisplayList(new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/large_vehicle_door.obj"))); + public static final ResourceLocation qe_containment_decal = new ResourceLocation(RefStrings.MODID, "textures/models/doors/qe_containment_decal.png"); + //Lantern public static final IModelCustom lantern = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/trinkets/lantern.obj")); diff --git a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java index c9fb21d52..0c3a421c2 100644 --- a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java +++ b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java @@ -739,6 +739,83 @@ public class ItemRenderLibrary { GL11.glShadeModel(GL11.GL_FLAT); } }); + + renderers.put(Item.getItemFromBlock(ModBlocks.large_vehicle_door), new ItemRenderBase(){ + public void renderInventory() { + GL11.glTranslated(0, -4, 0); + GL11.glScaled(1.8, 1.8, 1.8); + } + public void renderCommon() { + bindTexture(ResourceManager.large_vehicle_door_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.large_vehicle_door.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } + }); + renderers.put(Item.getItemFromBlock(ModBlocks.water_door), new ItemRenderBase(){ + public void renderInventory() { + GL11.glTranslated(0, -4, 0); + GL11.glScaled(4, 4, 4); + } + public void renderCommon() { + bindTexture(ResourceManager.water_door_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.water_door.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } + }); + renderers.put(Item.getItemFromBlock(ModBlocks.qe_containment), new ItemRenderBase(){ + public void renderInventory() { + GL11.glTranslated(0, -3.5, 0); + GL11.glScaled(3.8, 3.8, 3.8); + } + public void renderCommon() { + bindTexture(ResourceManager.qe_containment_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.qe_containment.renderAllExcept("decal"); + bindTexture(ResourceManager.qe_containment_decal); + ResourceManager.qe_containment.renderPart("decal"); + GL11.glShadeModel(GL11.GL_FLAT); + } + }); + renderers.put(Item.getItemFromBlock(ModBlocks.qe_sliding_door), new ItemRenderBase(){ + public void renderInventory() { + GL11.glTranslated(0, -3.5, 0); + GL11.glScaled(6, 6, 6); + } + public void renderCommon() { + bindTexture(ResourceManager.qe_sliding_door_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.qe_sliding_door.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } + }); + + renderers.put(Item.getItemFromBlock(ModBlocks.round_airlock_door), new ItemRenderBase(){ + public void renderInventory() { + GL11.glTranslated(0, -4, 0); + GL11.glScaled(3, 3, 3); + } + public void renderCommon() { + bindTexture(ResourceManager.round_airlock_door_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.round_airlock_door.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } + }); + + renderers.put(Item.getItemFromBlock(ModBlocks.sliding_seal_door), new ItemRenderBase(){ + public void renderInventory() { + GL11.glTranslated(0, -5, 0); + GL11.glScaled(7, 7, 7); + } + public void renderCommon() { + bindTexture(ResourceManager.sliding_seal_door_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.sliding_seal_door.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } + }); renderers.put(Item.getItemFromBlock(ModBlocks.blast_door), new ItemRenderBase() { public void renderInventory() { diff --git a/src/main/java/com/hbm/tileentity/DoorDecl.java b/src/main/java/com/hbm/tileentity/DoorDecl.java index d6469e346..40e1c7047 100644 --- a/src/main/java/com/hbm/tileentity/DoorDecl.java +++ b/src/main/java/com/hbm/tileentity/DoorDecl.java @@ -2,6 +2,7 @@ package com.hbm.tileentity; import com.hbm.animloader.AnimatedModel; import com.hbm.animloader.Animation; +import com.hbm.lib.Library; import com.hbm.main.ResourceManager; import com.hbm.render.loader.WavefrontObjDisplayList; import com.hbm.sound.MovingSoundPlayerLoop; @@ -289,6 +290,88 @@ public abstract class DoorDecl { } }; + public static final DoorDecl SLIDING_SEAL_DOOR = new DoorDecl(){ + + @Override + public String getOpenSoundEnd() { + return "hbm:door.sliding_seal_stop"; + } + + @Override + public String getOpenSoundStart() { + return "hbm:door.sliding_seal_open"; + } + + public float getSoundVolume(){ + return 2; + } + + @Override + @SideOnly(Side.CLIENT) + public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { + if(partName.startsWith("door")){ + set(trans, 0, 0, Library.smoothstep(getNormTime(openTicks), 0, 1)); + } else { + set(trans, 0, 0, 0); + } + }; + + @Override + @SideOnly(Side.CLIENT) + public double[][] getClippingPlanes() { + return new double[][]{{0, 0, -1, 0.5001}}; + }; + + @Override + @SideOnly(Side.CLIENT) + public void doOffsetTransform() { + GL11.glTranslated(0.375, 0, 0); + }; + + @Override + public int timeToOpen() { + return 20; + }; + + @Override + public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { + if(open){ + if(y == 0) + return AxisAlignedBB.getBoundingBox(0, 0, 1-0.25, 1, 0.125, 1); + return super.getBlockBound(x, y, z, open); + } else { + return AxisAlignedBB.getBoundingBox(0, 0, 1-0.25, 1, 1, 1); + } + }; + + @Override + public int[][] getDoorOpenRanges(){ + return new int[][]{{0, 0, 0, 1, 2, 2}}; + } + + @Override + public int[] getDimensions(){ + return new int[]{1, 0, 0, 0, 0, 0}; + } + + @Override + @SideOnly(Side.CLIENT) + public ResourceLocation getTextureForPart(String partName){ + return ResourceManager.sliding_seal_door_tex; + } + + @Override + public ResourceLocation getTextureForPart(int skinIndex, String partName) { + return ResourceManager.sliding_seal_door_tex; + } + + @Override + @SideOnly(Side.CLIENT) + public WavefrontObjDisplayList getModel(){ + return ResourceManager.sliding_seal_door; + } + }; + public static final DoorDecl SECURE_ACCESS_DOOR = new DoorDecl(){ @Override @@ -388,6 +471,479 @@ public abstract class DoorDecl { } }; + public static final DoorDecl ROUND_AIRLOCK_DOOR = new DoorDecl(){ + + @Override + public String getOpenSoundEnd() { + return "hbm:door.garage_stop"; + } + + @Override + public String getOpenSoundLoop() { + return "hbm:door.garage_move"; + } + + public float getSoundVolume(){ + return 2; + } + + @Override + @SideOnly(Side.CLIENT) + public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { + if("doorLeft".equals(partName)){ + set(trans, 0, 0, 1.5F*getNormTime(openTicks)); + } else if("doorRight".equals(partName)){ + set(trans, 0, 0, -1.5F*getNormTime(openTicks)); + } else { + super.getTranslation(partName, openTicks, child, trans); + } + }; + + @Override + @SideOnly(Side.CLIENT) + public void doOffsetTransform() { + GL11.glTranslated(0, 0, 0.5); + }; + + @Override + @SideOnly(Side.CLIENT) + public double[][] getClippingPlanes() { + return new double[][]{{0.0, 0.0, 1.0, 2.0001}, {0.0, 0.0, -1.0, 2.0001}}; + }; + + @Override + public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { + if(!open) + return super.getBlockBound(x, y, z, open); + if(z == 1){ + return AxisAlignedBB.getBoundingBox(0.4, 0, 0, 1, 1, 1); + } else if(z == -2){ + return AxisAlignedBB.getBoundingBox(0, 0, 0, 0.6, 1, 1); + } else if(y == 3){ + return AxisAlignedBB.getBoundingBox(0, 0.5, 0, 1, 1, 1); + } else if(y == 0){ + return AxisAlignedBB.getBoundingBox(0, 0, 0, 1, 0.0625, 1); + } + return super.getBlockBound(x, y, z, open); + }; + + @Override + public int timeToOpen() { + return 60; + }; + + @Override + public int[][] getDoorOpenRanges(){ + return new int[][]{{0, 0, 0, -2, 4, 2}, {0, 0, 0, 3, 4, 2}}; + } + + @Override + public int[] getDimensions() { + return new int[]{3, 0, 0, 0, 2, 1}; + }; + + @Override + @SideOnly(Side.CLIENT) + public ResourceLocation getTextureForPart(String partName){ + return ResourceManager.round_airlock_door_tex; + } + + @Override + public ResourceLocation getTextureForPart(int skinIndex, String partName) { + return ResourceManager.round_airlock_door_tex; + } + + @Override + @SideOnly(Side.CLIENT) + public WavefrontObjDisplayList getModel(){ + return ResourceManager.round_airlock_door; + } + }; + + public static final DoorDecl QE_SLIDING = new DoorDecl(){ + + @Override + public String getOpenSoundEnd() { + return "hbm:door.qe_sliding_opened"; + }; + @Override + public String getCloseSoundEnd() { + return "hbmsound:door.qe_sliding_shut"; + }; + @Override + public String getOpenSoundLoop() { + return "hbm:door.qe_sliding_opening"; + }; + + public float getSoundVolume(){ + return 2; + } + + @Override + @SideOnly(Side.CLIENT) + public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { + if(partName.startsWith("left")){ + set(trans, 0, 0, 1*getNormTime(openTicks)); + } else { + set(trans, 0, 0, -1*getNormTime(openTicks)); + } + }; + + @Override + @SideOnly(Side.CLIENT) + public void doOffsetTransform() { + GL11.glTranslated(0.4375, 0, 0.5); + }; + + @Override + public int timeToOpen() { + return 10; + }; + + @Override + public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { + if(open){ + if(z == 0){ + return AxisAlignedBB.getBoundingBox(1-0.125, 0, 1-0.125, 1, 1, 1); + } else { + return AxisAlignedBB.getBoundingBox(0, 0, 1-0.125, 0.125, 1, 1); + } + } else { + return AxisAlignedBB.getBoundingBox(0, 0, 1-0.125, 1, 1, 1); + } + }; + + @Override + public int[][] getDoorOpenRanges(){ + return new int[][]{{0, 0, 0, 2, 2, 2}}; + } + + @Override + public int[] getDimensions(){ + return new int[]{1, 0, 0, 0, 1, 0}; + } + + @Override + @SideOnly(Side.CLIENT) + public ResourceLocation getTextureForPart(String partName){ + return ResourceManager.qe_sliding_door_tex; + } + + @Override + public ResourceLocation getTextureForPart(int skinIndex, String partName) { + return getTextureForPart(partName); + } + + @Override + @SideOnly(Side.CLIENT) + public WavefrontObjDisplayList getModel(){ + return ResourceManager.qe_sliding_door; + } + + }; + + public static final DoorDecl QE_CONTAINMENT = new DoorDecl(){ + + @Override + public String getOpenSoundEnd() { + return "hbm:door.wgh_stop"; + }; + @Override + public String getOpenSoundLoop() { + return "hbm:door.wgh_start"; + }; + + @Override + public float getSoundVolume(){ + return 2; + } + + @Override + @SideOnly(Side.CLIENT) + public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { + if(!partName.equals("frame")){ + set(trans, 0, 3*getNormTime(openTicks), 0); + } else { + super.getTranslation(partName, openTicks, child, trans); + } + }; + + @Override + @SideOnly(Side.CLIENT) + public void doOffsetTransform() { + GL11.glTranslated(0.25, 0, 0); + }; + + @Override + @SideOnly(Side.CLIENT) + public double[][] getClippingPlanes() { + return new double[][]{{0, -1, 0, 3.0001}}; + }; + + @Override + public int timeToOpen() { + return 160; + }; + + @Override + public int[][] getDoorOpenRanges(){ + return new int[][]{{-1, 0, 0, 3, 3, 1}}; + } + + @Override + public int[] getDimensions(){ + return new int[]{2, 0, 0, 0, 1, 1}; + } + + @Override + public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { + if(!open) + return AxisAlignedBB.getBoundingBox(0, 0, 0.5, 1, 1, 1); + if(y > 1) + return AxisAlignedBB.getBoundingBox(0, 0.5, 0.5, 1, 1, 1); + else if(y == 0) + return AxisAlignedBB.getBoundingBox(0, 0, 0.5, 1, 0.1, 1); + return super.getBlockBound(x, y, z, open); + }; + + @Override + @SideOnly(Side.CLIENT) + public ResourceLocation getTextureForPart(String partName){ + if(partName.equals("decal")) + return ResourceManager.qe_containment_decal; + return ResourceManager.qe_containment_tex; + } + + @Override + public ResourceLocation getTextureForPart(int skinIndex, String partName) { + return getTextureForPart(partName); + } + + @Override + @SideOnly(Side.CLIENT) + public WavefrontObjDisplayList getModel(){ + return ResourceManager.qe_containment; + } + + }; + + public static final DoorDecl WATER_DOOR = new DoorDecl(){ + + @Override + public String getOpenSoundEnd() { + return "hbm:door.wgh_big_stop"; + }; + @Override + public String getOpenSoundLoop() { + return "hbm:door.wgh_big_start"; + }; + @Override + public String getOpenSoundStart() { + return "hbm:door.door.lever"; + }; + @Override + public String getCloseSoundStart() { + return null; + }; + @Override + public String getCloseSoundEnd() { + return "hbm:door.door.lever"; + }; + + @Override + public float getSoundVolume(){ + return 2; + } + + @Override + @SideOnly(Side.CLIENT) + public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { + if("bolt".equals(partName)){ + set(trans, 0, 0, 0.4F*Library.smoothstep(getNormTime(openTicks, 0, 30), 0, 1)); + } else { + set(trans, 0, 0, 0); + } + }; + + @Override + @SideOnly(Side.CLIENT) + public void doOffsetTransform(){ + GL11.glTranslated(0.375, 0, 0); + } + + @Override + @SideOnly(Side.CLIENT) + public void getOrigin(String partName, float[] orig) { + if("door".equals(partName) || "bolt".equals(partName)){ + set(orig, 0.125F, 1.5F, 1.18F); + return; + } else if("spinny_upper".equals(partName)){ + set(orig, 0.041499F, 2.43569F, -0.587849F); + return; + } else if("spinny_lower".equals(partName)){ + set(orig, 0.041499F, 0.571054F, -0.587849F); + return; + } + super.getOrigin(partName, orig); + }; + + @Override + @SideOnly(Side.CLIENT) + public void getRotation(String partName, float openTicks, float[] rot) { + if(partName.startsWith("spinny")){ + set(rot, Library.smoothstep(getNormTime(openTicks, 0, 30), 0, 1)*360, 0, 0); + return; + } else if("door".equals(partName) || "bolt".equals(partName)){ + set(rot, 0, Library.smoothstep(getNormTime(openTicks, 30, 60), 0, 1)*-134, 0); + return; + } + super.getRotation(partName, openTicks, rot); + }; + + @Override + @SideOnly(Side.CLIENT) + public boolean doesRender(String partName, boolean child) { + return child || !partName.startsWith("spinny"); + }; + + @Override + @SideOnly(Side.CLIENT) + public String[] getChildren(String partName) { + if("door".equals(partName)) + return new String[]{"spinny_lower", "spinny_upper"}; + return super.getChildren(partName); + }; + + @Override + public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { + if(!open){ + return AxisAlignedBB.getBoundingBox(0, 0, 0.75, 1, 1, 1); + } else if(y > 1) { + return AxisAlignedBB.getBoundingBox(0, 0.85, 0.75, 1, 1, 1); + } else if(y == 0){ + return AxisAlignedBB.getBoundingBox(0, 0, 0.75, 1, 0.15, 1); + } + return super.getBlockBound(x, y, z, open); + }; + + @Override + public int timeToOpen() { + return 60; + }; + + @Override + public int[][] getDoorOpenRanges(){ + return new int[][]{{1, 0, 0, -3, 3, 2}}; + } + + public float getDoorRangeOpenTime(int ticks, int idx) { + return getNormTime(ticks, 35, 40); + }; + + @Override + public int[] getDimensions(){ + return new int[]{2, 0, 0, 0, 1, 1}; + } + + @Override + @SideOnly(Side.CLIENT) + public ResourceLocation getTextureForPart(String partName){ + return ResourceManager.water_door_tex; + } + + @Override + public ResourceLocation getTextureForPart(int skinIndex, String partName) { + return ResourceManager.water_door_tex; + } + + @Override + @SideOnly(Side.CLIENT) + public WavefrontObjDisplayList getModel(){ + return ResourceManager.water_door; + } + + }; + + public static final DoorDecl LARGE_VEHICLE_DOOR = new DoorDecl(){ + + @Override + @SideOnly(Side.CLIENT) + public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { + if("doorLeft".equals(partName)){ + set(trans, 0, 0, 3*getNormTime(openTicks)); + } else if("doorRight".equals(partName)){ + set(trans, 0, 0, -3*getNormTime(openTicks)); + } else { + super.getTranslation(partName, openTicks, child, trans); + } + }; + + @Override + public String getOpenSoundEnd() { + return "hbm:door.garage_stop"; + } + + @Override + public String getOpenSoundLoop() { + return "hbm:door.garage_move"; + }; + + public float getSoundVolume(){ + return 2; + } + + @Override + @SideOnly(Side.CLIENT) + public double[][] getClippingPlanes() { + return new double[][]{{0.0, 0.0, 1.0, 3.50001}, {0.0, 0.0, -1.0, 3.50001}}; + }; + + @Override + public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { + if(!open) + return super.getBlockBound(x, y, z, open); + if(z == 3){ + return AxisAlignedBB.getBoundingBox(0.4, 0, 0, 1, 1, 1); + } else if(z == -3){ + return AxisAlignedBB.getBoundingBox(0, 0, 0, 0.6, 1, 1); + } + return super.getBlockBound(x, y, z, open); + }; + + @Override + public int timeToOpen() { + return 60; + }; + + @Override + public int[][] getDoorOpenRanges(){ + return new int[][]{{0, 0, 0, -4, 6, 2}, {0, 0, 0, 4, 6, 2}}; + } + + @Override + public int[] getDimensions() { + return new int[]{5, 0, 0, 0, 3, 3}; + }; + + @Override + @SideOnly(Side.CLIENT) + public ResourceLocation getTextureForPart(String partName){ + return ResourceManager.large_vehicle_door_tex; + } + + @Override + public ResourceLocation getTextureForPart(int skinIndex, String partName) { + return ResourceManager.large_vehicle_door_tex; + } + + @Override + @SideOnly(Side.CLIENT) + public WavefrontObjDisplayList getModel(){ + return ResourceManager.large_vehicle_door; + } + + }; + //Format: x, y, z, tangent amount 1 (how long the door would be if it moved up), tangent amount 2 (door places blocks in this direction), axis (0-x, 1-y, 2-z) public abstract int[][] getDoorOpenRanges(); diff --git a/src/main/resources/assets/hbm/models/doors/large_vehicle_door.obj b/src/main/resources/assets/hbm/models/doors/large_vehicle_door.obj new file mode 100644 index 000000000..321a3e384 --- /dev/null +++ b/src/main/resources/assets/hbm/models/doors/large_vehicle_door.obj @@ -0,0 +1,6312 @@ +# Blender v2.92.0 OBJ File: 'large_vehicle_door.blend' +# www.blender.org +o doorLeft +v 0.299220 0.487402 3.251414 +v 0.299220 5.590070 1.004025 +v 0.299220 5.128570 1.909768 +v 0.299220 4.409768 2.628571 +v 0.299220 3.503919 3.090124 +v 0.299220 2.496066 3.251015 +v 0.299220 5.679564 0.438986 +v 0.299220 0.487402 0.438985 +v 0.149610 5.900837 0.125000 +v 0.149610 0.054715 0.125000 +v 0.299220 0.054715 3.440433 +v 0.299220 2.511072 3.439998 +v 0.299220 3.563152 3.272047 +v 0.299220 4.522236 2.783369 +v 0.299220 5.283369 2.022236 +v 0.299220 5.772047 1.063152 +v 0.299220 5.900837 0.250000 +v 0.299220 0.054715 0.250000 +v 0.231315 0.487402 3.251414 +v 0.231315 2.496066 3.251015 +v 0.231315 3.503919 3.090124 +v 0.231315 4.409768 2.628571 +v 0.231315 5.128570 1.909768 +v 0.231315 5.590070 1.004025 +v 0.231315 5.679564 0.438986 +v 0.231315 0.487402 0.438985 +v 0.204275 1.917457 1.651271 +v 0.204275 2.047506 1.651271 +v 0.204275 1.917457 1.142414 +v 0.204275 2.047506 1.142414 +v 0.261126 1.933194 1.635535 +v 0.245389 1.917457 1.651271 +v 0.245389 2.047506 1.651271 +v 0.261126 2.031770 1.635535 +v 0.261126 1.933194 1.158151 +v 0.245389 1.917457 1.142414 +v 0.261126 2.031770 1.158151 +v 0.245389 2.047506 1.142414 +v 0.215124 3.126893 0.898361 +v 0.215124 3.628286 0.898361 +v 0.215124 3.126893 0.736489 +v 0.215124 3.628286 0.736489 +v 0.294289 3.126893 0.898361 +v 0.247374 3.628286 0.898361 +v 0.294289 3.126893 0.736489 +v 0.247374 3.628286 0.736489 +v 0.215124 3.447602 0.898361 +v 0.215124 3.447602 0.736489 +v 0.294289 3.447602 0.736489 +v 0.294289 3.447602 0.898361 +v 0.215124 3.126893 1.339800 +v 0.215124 3.628286 1.339800 +v 0.215124 3.126893 1.177929 +v 0.215124 3.628286 1.177929 +v 0.294289 3.126893 1.339800 +v 0.247374 3.628286 1.339800 +v 0.294289 3.126893 1.177929 +v 0.247374 3.628286 1.177929 +v 0.215124 3.447602 1.339800 +v 0.215124 3.447602 1.177929 +v 0.294289 3.447602 1.177929 +v 0.294289 3.447602 1.339800 +v 0.110842 1.775868 3.124604 +v 0.110842 2.305447 3.124604 +v 0.110842 1.775868 1.892389 +v 0.110842 2.305447 1.892389 +v 0.303721 1.835501 3.064971 +v 0.303721 2.245814 3.064971 +v 0.303721 1.835501 1.952022 +v 0.303721 2.245814 1.952022 +v 0.303721 2.305447 1.892389 +v 0.303721 1.775868 1.892389 +v 0.303721 1.775868 3.124604 +v 0.303721 2.305447 3.124604 +v 0.237602 2.245814 1.952022 +v 0.237602 1.835501 1.952022 +v 0.237602 1.835501 3.064971 +v 0.237602 2.245814 3.064971 +v 0.185097 0.938915 3.260309 +v 0.185097 1.140242 3.260309 +v 0.185097 0.938915 0.391829 +v 0.185097 1.140242 0.391829 +v 0.250002 0.938915 3.260309 +v 0.279439 0.968351 3.260309 +v 0.279439 1.110806 3.260309 +v 0.250002 1.140242 3.260309 +v 0.279439 0.968351 0.391829 +v 0.250002 0.938915 0.391829 +v 0.250002 1.140242 0.391829 +v 0.279439 1.110806 0.391829 +v 0.185097 1.623428 3.260309 +v 0.185097 1.824755 3.260309 +v 0.185097 1.623428 0.391829 +v 0.185097 1.824755 0.391829 +v 0.250002 1.623428 3.260309 +v 0.279439 1.652864 3.260309 +v 0.279439 1.795319 3.260309 +v 0.250002 1.824755 3.260309 +v 0.279439 1.652864 0.391829 +v 0.250002 1.623428 0.391829 +v 0.250002 1.824755 0.391829 +v 0.279439 1.795319 0.391829 +v 0.185097 2.307941 3.260309 +v 0.185097 2.509268 3.260309 +v 0.185097 2.307941 0.391829 +v 0.185097 2.509268 0.391829 +v 0.250002 2.307941 3.260309 +v 0.279439 2.337377 3.260309 +v 0.279439 2.479832 3.260309 +v 0.250002 2.509268 3.260309 +v 0.279439 2.337377 0.391829 +v 0.250002 2.307941 0.391829 +v 0.250002 2.509268 0.391829 +v 0.279439 2.479832 0.391829 +v 0.185097 2.992454 3.260309 +v 0.185097 3.193781 3.260309 +v 0.185097 2.992454 0.391829 +v 0.185097 3.193781 0.391829 +v 0.250002 2.992454 3.260309 +v 0.279439 3.021890 3.260309 +v 0.279439 3.164345 3.260309 +v 0.250002 3.193781 3.260309 +v 0.279439 3.021890 0.391829 +v 0.250002 2.992454 0.391829 +v 0.250002 3.193781 0.391829 +v 0.279439 3.164345 0.391829 +v 0.185097 3.676967 3.079826 +v 0.185097 3.878294 3.079826 +v 0.185097 3.676967 0.391829 +v 0.185097 3.878294 0.391829 +v 0.250002 3.676967 3.079826 +v 0.279439 3.706403 3.079826 +v 0.279439 3.848858 3.079826 +v 0.250002 3.878294 3.079826 +v 0.279439 3.706403 0.391829 +v 0.250002 3.676967 0.391829 +v 0.250002 3.878294 0.391829 +v 0.279439 3.848858 0.391829 +v 0.185097 4.361480 2.726382 +v 0.185097 4.562807 2.726382 +v 0.185097 4.361480 0.391829 +v 0.185097 4.562807 0.391829 +v 0.250002 4.361480 2.726382 +v 0.279439 4.390916 2.726382 +v 0.279439 4.533370 2.726382 +v 0.250002 4.562807 2.726382 +v 0.279439 4.390916 0.391829 +v 0.250002 4.361480 0.391829 +v 0.250002 4.562807 0.391829 +v 0.279439 4.533370 0.391829 +v 0.185097 5.045993 2.044939 +v 0.185097 5.247320 2.044939 +v 0.185097 5.045993 0.391829 +v 0.185097 5.247320 0.391829 +v 0.250002 5.045993 2.044939 +v 0.279439 5.075429 2.044939 +v 0.279439 5.217884 2.044939 +v 0.250002 5.247320 2.044939 +v 0.279439 5.075429 0.391829 +v 0.250002 5.045993 0.391829 +v 0.250002 5.247320 0.391829 +v 0.279439 5.217884 0.391829 +v 0.315590 0.554430 1.179831 +v 0.315590 0.554430 0.490474 +v 0.381347 0.554430 1.179831 +v 0.381347 0.554430 0.490474 +v 0.427845 0.600927 1.179831 +v 0.427845 0.600927 0.490474 +v 0.427845 0.666685 1.179831 +v 0.427845 0.666685 0.490474 +v 0.381347 0.713183 1.179831 +v 0.381347 0.713183 0.490474 +v 0.315590 0.713183 1.179831 +v 0.315590 0.713183 0.490474 +v 0.269092 0.666685 1.179831 +v 0.269092 0.666685 0.490474 +v 0.269092 0.600927 1.179831 +v 0.269092 0.600927 0.490474 +v 0.212011 0.554430 1.179831 +v 0.212011 0.554430 0.490474 +v 0.212011 0.713183 0.490474 +v 0.212011 0.713183 1.179831 +v 0.212011 0.666685 1.179831 +v 0.212011 0.666685 0.490474 +v 0.212011 0.600927 1.179831 +v 0.212011 0.600927 0.490474 +v 0.323809 0.574274 3.311587 +v 0.373128 0.574274 3.311587 +v 0.408001 0.609147 3.311587 +v 0.408001 0.658465 3.311587 +v 0.373128 0.693339 3.311587 +v 0.323809 0.693339 3.311587 +v 0.288936 0.658465 3.311587 +v 0.288936 0.609147 3.311587 +v 0.373127 0.574274 0.452471 +v 0.408000 0.609147 0.452471 +v 0.323808 0.574274 0.452471 +v 0.408000 0.658465 0.452471 +v 0.373127 0.693339 0.452471 +v 0.323808 0.693339 0.452471 +v 0.288935 0.658465 0.452471 +v 0.288935 0.609147 0.452471 +v 0.299220 0.790051 0.250000 +v 0.299220 5.165501 0.250000 +v 0.299220 1.519293 0.250000 +v 0.299220 2.248535 0.250000 +v 0.299220 2.977776 0.250000 +v 0.299220 3.707018 0.250000 +v 0.299220 4.436259 0.250000 +v 0.149610 5.165501 0.125000 +v 0.149610 0.790051 0.125000 +v 0.149610 4.436259 0.125000 +v 0.149610 3.707017 0.125000 +v 0.149610 2.977776 0.125000 +v 0.149610 2.248534 0.125000 +v 0.149610 1.519293 0.125000 +v 0.149610 0.054715 -0.125000 +v 0.299220 0.054715 -0.000000 +v 0.149610 0.790051 -0.125000 +v 0.149610 1.519293 -0.125000 +v 0.149610 2.248534 -0.125000 +v 0.149610 2.977776 -0.125000 +v 0.149610 3.707017 -0.125000 +v 0.149610 4.436259 -0.125000 +v 0.149610 5.165501 -0.125000 +v 0.299220 0.790051 -0.000000 +v 0.299220 1.519293 -0.000000 +v 0.299220 2.248535 -0.000000 +v 0.299220 2.977776 -0.000000 +v 0.299220 3.707018 -0.000000 +v 0.299220 4.436259 -0.000000 +v 0.299220 5.165501 -0.000000 +v -0.299220 0.487402 3.251414 +v -0.299220 5.590070 1.004025 +v -0.299220 5.128570 1.909768 +v -0.299220 4.409768 2.628571 +v -0.299220 3.503919 3.090124 +v -0.299220 2.496066 3.251015 +v -0.299220 5.679564 0.438986 +v -0.299220 0.487402 0.438985 +v -0.149610 5.900837 0.125000 +v -0.149610 0.054715 0.125000 +v -0.299220 0.054715 3.440433 +v -0.299220 2.511072 3.439998 +v -0.299220 3.563152 3.272047 +v -0.299220 4.522236 2.783369 +v -0.299220 5.283369 2.022236 +v -0.299220 5.772047 1.063152 +v -0.299220 5.900837 0.250000 +v -0.299220 0.054715 0.250000 +v -0.231315 0.487402 3.251414 +v -0.231315 2.496066 3.251015 +v -0.231315 3.503919 3.090124 +v -0.231315 4.409768 2.628571 +v -0.231315 5.128570 1.909768 +v -0.231315 5.590070 1.004025 +v -0.231315 5.679564 0.438986 +v -0.231315 0.487402 0.438985 +v -0.204275 1.917457 1.651271 +v -0.204275 2.047506 1.651271 +v -0.204275 1.917457 1.142414 +v -0.204275 2.047506 1.142414 +v -0.261126 1.933194 1.635535 +v -0.245389 1.917457 1.651271 +v -0.245389 2.047506 1.651271 +v -0.261126 2.031770 1.635535 +v -0.261126 1.933194 1.158151 +v -0.245389 1.917457 1.142414 +v -0.261126 2.031770 1.158151 +v -0.245389 2.047506 1.142414 +v -0.215124 3.126893 0.898361 +v -0.215124 3.628286 0.898361 +v -0.215124 3.126893 0.736489 +v -0.215124 3.628286 0.736489 +v -0.294289 3.126893 0.898361 +v -0.247374 3.628286 0.898361 +v -0.294289 3.126893 0.736489 +v -0.247374 3.628286 0.736489 +v -0.215124 3.447602 0.898361 +v -0.215124 3.447602 0.736489 +v -0.294289 3.447602 0.736489 +v -0.294289 3.447602 0.898361 +v -0.215124 3.126893 1.339800 +v -0.215124 3.628286 1.339800 +v -0.215124 3.126893 1.177929 +v -0.215124 3.628286 1.177929 +v -0.294289 3.126893 1.339800 +v -0.247374 3.628286 1.339800 +v -0.294289 3.126893 1.177929 +v -0.247374 3.628286 1.177929 +v -0.215124 3.447602 1.339800 +v -0.215124 3.447602 1.177929 +v -0.294289 3.447602 1.177929 +v -0.294289 3.447602 1.339800 +v -0.110842 1.775868 3.124604 +v -0.110842 2.305447 3.124604 +v -0.110842 1.775868 1.892389 +v -0.110842 2.305447 1.892389 +v -0.303721 1.835501 3.064971 +v -0.303721 2.245814 3.064971 +v -0.303721 1.835501 1.952022 +v -0.303721 2.245814 1.952022 +v -0.303721 2.305447 1.892389 +v -0.303721 1.775868 1.892389 +v -0.303721 1.775868 3.124604 +v -0.303721 2.305447 3.124604 +v -0.237602 2.245814 1.952022 +v -0.237602 1.835501 1.952022 +v -0.237602 1.835501 3.064971 +v -0.237602 2.245814 3.064971 +v -0.185097 0.938915 3.260309 +v -0.185097 1.140242 3.260309 +v -0.185097 0.938915 0.391829 +v -0.185097 1.140242 0.391829 +v -0.250002 0.938915 3.260309 +v -0.279439 0.968351 3.260309 +v -0.279439 1.110806 3.260309 +v -0.250002 1.140242 3.260309 +v -0.279439 0.968351 0.391829 +v -0.250002 0.938915 0.391829 +v -0.250002 1.140242 0.391829 +v -0.279439 1.110806 0.391829 +v -0.185097 1.623428 3.260309 +v -0.185097 1.824755 3.260309 +v -0.185097 1.623428 0.391829 +v -0.185097 1.824755 0.391829 +v -0.250002 1.623428 3.260309 +v -0.279439 1.652864 3.260309 +v -0.279439 1.795319 3.260309 +v -0.250002 1.824755 3.260309 +v -0.279439 1.652864 0.391829 +v -0.250002 1.623428 0.391829 +v -0.250002 1.824755 0.391829 +v -0.279439 1.795319 0.391829 +v -0.185097 2.307941 3.260309 +v -0.185097 2.509268 3.260309 +v -0.185097 2.307941 0.391829 +v -0.185097 2.509268 0.391829 +v -0.250002 2.307941 3.260309 +v -0.279439 2.337377 3.260309 +v -0.279439 2.479832 3.260309 +v -0.250002 2.509268 3.260309 +v -0.279439 2.337377 0.391829 +v -0.250002 2.307941 0.391829 +v -0.250002 2.509268 0.391829 +v -0.279439 2.479832 0.391829 +v -0.185097 2.992454 3.260309 +v -0.185097 3.193781 3.260309 +v -0.185097 2.992454 0.391829 +v -0.185097 3.193781 0.391829 +v -0.250002 2.992454 3.260309 +v -0.279439 3.021890 3.260309 +v -0.279439 3.164345 3.260309 +v -0.250002 3.193781 3.260309 +v -0.279439 3.021890 0.391829 +v -0.250002 2.992454 0.391829 +v -0.250002 3.193781 0.391829 +v -0.279439 3.164345 0.391829 +v -0.185097 3.676967 3.079826 +v -0.185097 3.878294 3.079826 +v -0.185097 3.676967 0.391829 +v -0.185097 3.878294 0.391829 +v -0.250002 3.676967 3.079826 +v -0.279439 3.706403 3.079826 +v -0.279439 3.848858 3.079826 +v -0.250002 3.878294 3.079826 +v -0.279439 3.706403 0.391829 +v -0.250002 3.676967 0.391829 +v -0.250002 3.878294 0.391829 +v -0.279439 3.848858 0.391829 +v -0.185097 4.361480 2.726382 +v -0.185097 4.562807 2.726382 +v -0.185097 4.361480 0.391829 +v -0.185097 4.562807 0.391829 +v -0.250002 4.361480 2.726382 +v -0.279439 4.390916 2.726382 +v -0.279439 4.533370 2.726382 +v -0.250002 4.562807 2.726382 +v -0.279439 4.390916 0.391829 +v -0.250002 4.361480 0.391829 +v -0.250002 4.562807 0.391829 +v -0.279439 4.533370 0.391829 +v -0.185097 5.045993 2.044939 +v -0.185097 5.247320 2.044939 +v -0.185097 5.045993 0.391829 +v -0.185097 5.247320 0.391829 +v -0.250002 5.045993 2.044939 +v -0.279439 5.075429 2.044939 +v -0.279439 5.217884 2.044939 +v -0.250002 5.247320 2.044939 +v -0.279439 5.075429 0.391829 +v -0.250002 5.045993 0.391829 +v -0.250002 5.247320 0.391829 +v -0.279439 5.217884 0.391829 +v -0.315590 0.554430 1.179831 +v -0.315590 0.554430 0.490474 +v -0.381347 0.554430 1.179831 +v -0.381347 0.554430 0.490474 +v -0.427845 0.600927 1.179831 +v -0.427845 0.600927 0.490474 +v -0.427845 0.666685 1.179831 +v -0.427845 0.666685 0.490474 +v -0.381347 0.713183 1.179831 +v -0.381347 0.713183 0.490474 +v -0.315590 0.713183 1.179831 +v -0.315590 0.713183 0.490474 +v -0.269092 0.666685 1.179831 +v -0.269092 0.666685 0.490474 +v -0.269092 0.600927 1.179831 +v -0.269092 0.600927 0.490474 +v -0.212011 0.554430 1.179831 +v -0.212011 0.554430 0.490474 +v -0.212011 0.713183 0.490474 +v -0.212011 0.713183 1.179831 +v -0.212011 0.666685 1.179831 +v -0.212011 0.666685 0.490474 +v -0.212011 0.600927 1.179831 +v -0.212011 0.600927 0.490474 +v -0.323809 0.574274 3.311587 +v -0.373128 0.574274 3.311587 +v -0.408001 0.609147 3.311587 +v -0.408001 0.658465 3.311587 +v -0.373128 0.693339 3.311587 +v -0.323809 0.693339 3.311587 +v -0.288936 0.658465 3.311587 +v -0.288936 0.609147 3.311587 +v -0.373127 0.574274 0.452471 +v -0.408000 0.609147 0.452471 +v -0.323808 0.574274 0.452471 +v -0.408000 0.658465 0.452471 +v -0.373127 0.693339 0.452471 +v -0.323808 0.693339 0.452471 +v -0.288935 0.658465 0.452471 +v -0.288935 0.609147 0.452471 +v -0.299220 0.790051 0.250000 +v -0.299220 5.165501 0.250000 +v -0.299220 1.519293 0.250000 +v -0.299220 2.248535 0.250000 +v -0.299220 2.977776 0.250000 +v -0.299220 3.707018 0.250000 +v -0.299220 4.436259 0.250000 +v -0.149610 5.165501 0.125000 +v -0.149610 0.790051 0.125000 +v -0.149610 4.436259 0.125000 +v -0.149610 3.707017 0.125000 +v -0.149610 2.977776 0.125000 +v -0.149610 2.248534 0.125000 +v -0.149610 1.519293 0.125000 +v -0.149610 0.054715 -0.125000 +v -0.299220 0.054715 -0.000000 +v -0.149610 0.790051 -0.125000 +v -0.149610 1.519293 -0.125000 +v -0.149610 2.248534 -0.125000 +v -0.149610 2.977776 -0.125000 +v -0.149610 3.707017 -0.125000 +v -0.149610 4.436259 -0.125000 +v -0.149610 5.165501 -0.125000 +v -0.299220 0.790051 -0.000000 +v -0.299220 1.519293 -0.000000 +v -0.299220 2.248535 -0.000000 +v -0.299220 2.977776 -0.000000 +v -0.299220 3.707018 -0.000000 +v -0.299220 4.436259 -0.000000 +v -0.299220 5.165501 -0.000000 +v 0.000000 0.054715 3.440433 +v 0.000000 2.511072 3.439998 +v 0.000000 3.563152 3.272047 +v 0.000000 4.522236 2.783369 +v 0.000000 5.283369 2.022236 +v 0.000000 5.772047 1.063152 +v 0.000000 5.900837 0.250000 +v 0.000000 0.054715 0.250000 +v 0.000000 5.900837 0.125000 +v 0.000000 0.054715 0.125000 +v 0.000000 0.790051 0.125000 +v 0.000000 1.519293 0.125000 +v 0.000000 2.248534 0.125000 +v 0.000000 2.977776 0.125000 +v 0.000000 3.707017 0.125000 +v 0.000000 4.436259 0.125000 +v 0.000000 5.165501 0.125000 +v 0.000000 0.054715 -0.125000 +v 0.000000 0.790051 -0.125000 +v 0.000000 1.519293 -0.125000 +v 0.000000 2.248534 -0.125000 +v 0.000000 2.977776 -0.125000 +v 0.000000 3.707017 -0.125000 +v 0.000000 4.436259 -0.125000 +v 0.000000 5.165501 -0.125000 +v -0.236978 1.966246 2.101461 +v -0.236978 1.868288 2.101461 +v -0.271611 1.966246 2.115807 +v -0.271611 1.868288 2.115807 +v -0.285957 1.966246 2.150440 +v -0.285957 1.868288 2.150440 +v -0.271611 1.966246 2.185074 +v -0.271611 1.868288 2.185074 +v -0.236978 1.966246 2.199419 +v -0.236978 1.868289 2.199419 +v -0.261013 1.935379 2.738888 +v -0.243801 1.942508 2.738888 +v -0.243801 1.942508 2.168687 +v -0.261013 1.935379 2.168687 +v -0.268143 1.918167 2.168687 +v -0.261013 1.900955 2.168687 +v -0.243801 1.893826 2.168687 +v -0.226590 1.900955 2.168687 +v -0.219460 1.918167 2.168687 +v -0.226590 1.935379 2.168687 +v -0.268142 1.918167 2.738888 +v -0.261013 1.900955 2.738888 +v -0.243801 1.893826 2.738888 +v -0.226589 1.900955 2.738888 +v -0.219460 1.918167 2.738888 +v -0.226589 1.935379 2.738888 +v -0.243801 1.952222 2.738888 +v -0.267882 1.942248 2.738888 +v -0.277856 1.918167 2.738888 +v -0.243801 1.952222 2.956852 +v -0.267881 1.942248 2.956852 +v -0.267882 1.894087 2.738888 +v -0.277856 1.918167 2.956852 +v -0.243801 1.884113 2.738888 +v -0.267881 1.894087 2.956852 +v -0.219721 1.894087 2.738888 +v -0.243801 1.884113 2.956852 +v -0.209747 1.918167 2.738888 +v -0.219721 1.894087 2.956852 +v -0.219721 1.942248 2.738888 +v -0.209747 1.918167 2.956852 +v -0.219721 1.942248 2.956852 +v -0.234903 1.996067 2.602893 +v -0.234903 2.177792 2.602893 +v -0.234903 1.996067 2.957389 +v -0.234903 2.177792 2.957389 +v -0.248363 1.996858 2.604437 +v -0.248363 2.177001 2.604437 +v -0.248363 1.996858 2.955846 +v -0.248363 2.177001 2.955846 +v -0.239626 2.025193 2.631219 +v -0.239626 2.077102 2.631219 +v -0.239626 2.025193 2.683128 +v -0.239626 2.077102 2.683128 +v -0.264276 2.026531 2.632558 +v -0.264276 2.075763 2.632558 +v -0.264276 2.026531 2.681789 +v -0.264276 2.075763 2.681789 +v -0.239626 2.025193 2.713007 +v -0.239626 2.077102 2.713007 +v -0.239626 2.025193 2.764916 +v -0.239626 2.077102 2.764916 +v -0.264276 2.026531 2.714346 +v -0.264276 2.075763 2.714346 +v -0.264276 2.026531 2.763577 +v -0.264276 2.075763 2.763577 +v -0.239626 2.025193 2.794795 +v -0.239626 2.077102 2.794795 +v -0.239626 2.025193 2.846704 +v -0.239626 2.077102 2.846704 +v -0.264276 2.026531 2.796134 +v -0.264276 2.075763 2.796134 +v -0.264276 2.026531 2.845365 +v -0.264276 2.075763 2.845365 +v -0.239626 2.025193 2.876583 +v -0.239626 2.077102 2.876583 +v -0.239626 2.025193 2.928492 +v -0.239626 2.077102 2.928492 +v -0.264276 2.026531 2.877922 +v -0.264276 2.075763 2.877922 +v -0.264276 2.026531 2.927153 +v -0.264276 2.075763 2.927153 +v -0.257845 2.139290 2.641807 +v -0.231994 2.143135 2.641807 +v -0.215737 2.122669 2.641807 +v -0.225334 2.098358 2.641807 +v -0.251185 2.094513 2.641807 +v -0.254999 2.096865 2.641807 +v -0.267210 2.110033 2.641807 +v -0.267441 2.114980 2.641807 +v -0.267210 2.110033 2.673316 +v -0.267441 2.114980 2.673316 +v -0.268826 2.092032 2.641807 +v -0.268826 2.092032 2.673316 +v -0.274138 2.100425 2.673316 +v -0.274138 2.100425 2.641807 +v -0.254999 2.096865 2.673316 +v -0.231994 2.143135 2.673316 +v -0.257845 2.139290 2.673316 +v -0.251185 2.094513 2.673316 +v -0.225334 2.098358 2.673316 +v -0.215737 2.122669 2.673316 +v -0.231185 2.137330 2.805390 +v -0.214479 2.117230 2.805390 +v -0.223533 2.092711 2.805390 +v -0.249294 2.088294 2.805390 +v -0.265999 2.108394 2.805390 +v -0.265969 2.112875 2.805390 +v -0.261052 2.130147 2.805390 +v -0.256944 2.132912 2.805390 +v -0.261052 2.130147 2.836899 +v -0.256944 2.132912 2.836899 +v -0.277276 2.122184 2.805390 +v -0.277276 2.122184 2.836899 +v -0.272861 2.131080 2.836899 +v -0.272861 2.131080 2.805390 +v -0.265969 2.112875 2.836899 +v -0.214479 2.117230 2.836899 +v -0.231185 2.137330 2.836899 +v -0.265999 2.108394 2.836899 +v -0.249294 2.088294 2.836899 +v -0.223533 2.092711 2.836899 +v -0.222124 2.128488 2.723598 +v -0.215961 2.103088 2.723598 +v -0.234877 2.085051 2.723598 +v -0.259955 2.092414 2.723598 +v -0.266117 2.117813 2.723598 +v -0.264119 2.121824 2.723598 +v -0.252107 2.135173 2.723598 +v -0.247201 2.135850 2.723598 +v -0.252107 2.135173 2.755107 +v -0.247201 2.135850 2.755107 +v -0.270180 2.135158 2.723598 +v -0.270180 2.135158 2.755107 +v -0.262301 2.141205 2.755107 +v -0.262301 2.141205 2.723598 +v -0.264119 2.121824 2.755107 +v -0.215961 2.103088 2.755107 +v -0.222124 2.128488 2.755107 +v -0.266117 2.117813 2.755107 +v -0.259955 2.092414 2.755107 +v -0.234877 2.085051 2.755107 +v -0.241062 2.141376 2.887181 +v -0.218098 2.128895 2.887181 +v -0.217426 2.102767 2.887181 +v -0.239718 2.089121 2.887181 +v -0.262680 2.101603 2.887181 +v -0.264312 2.105776 2.887181 +v -0.266144 2.123641 2.887181 +v -0.263352 2.127731 2.887181 +v -0.266143 2.123641 2.918690 +v -0.263352 2.127731 2.918690 +v -0.278264 2.110234 2.887181 +v -0.278264 2.110234 2.918690 +v -0.277458 2.120133 2.918690 +v -0.277458 2.120133 2.887181 +v -0.264312 2.105776 2.918690 +v -0.218098 2.128895 2.918690 +v -0.241062 2.141376 2.918690 +v -0.262680 2.101603 2.918690 +v -0.239718 2.089121 2.918690 +v -0.217426 2.102767 2.918690 +v -0.266144 2.123641 2.887181 +v -0.263352 2.127731 2.887181 +v -0.266143 2.123641 2.918690 +v -0.263352 2.127731 2.918690 +vt 0.114995 0.927786 +vt 0.122324 0.928335 +vt 0.115027 0.928335 +vt 0.115027 0.942571 +vt 0.122324 0.942571 +vt 0.114995 0.943119 +vt 0.114481 0.928272 +vt 0.114481 0.942633 +vt 0.122871 0.928272 +vt 0.977830 0.045536 +vt 0.979878 0.044536 +vt 0.979932 0.045536 +vt 0.977884 0.044536 +vt 0.979878 0.042542 +vt 0.977884 0.042542 +vt 0.979932 0.041542 +vt 0.980878 0.044591 +vt 0.980878 0.042488 +vt 0.976884 0.044591 +vt 0.980878 0.062002 +vt 0.979878 0.059953 +vt 0.980878 0.059899 +vt 0.979878 0.061948 +vt 0.977884 0.059953 +vt 0.977884 0.061948 +vt 0.976884 0.059899 +vt 0.977829 0.058953 +vt 0.979932 0.058953 +vt 0.979932 0.062948 +vt 0.979932 0.076365 +vt 0.977884 0.077365 +vt 0.977829 0.076365 +vt 0.979878 0.077365 +vt 0.977884 0.079359 +vt 0.979878 0.079359 +vt 0.977829 0.080359 +vt 0.976884 0.079414 +vt 0.976884 0.077311 +vt 0.980878 0.079414 +vt 0.976884 0.096825 +vt 0.977884 0.094776 +vt 0.977884 0.096771 +vt 0.979878 0.096771 +vt 0.979878 0.094777 +vt 0.980878 0.096825 +vt 0.979932 0.097771 +vt 0.977829 0.097771 +vt 0.977830 0.093776 +vt 0.122356 0.927786 +vt 0.122356 0.943119 +vt 0.122871 0.942633 +vt 0.977830 0.041542 +vt 0.976884 0.042488 +vt 0.976884 0.062002 +vt 0.977829 0.062948 +vt 0.979932 0.080359 +vt 0.980878 0.077311 +vt 0.976884 0.094722 +vt 0.980878 0.094722 +vt 0.979932 0.093776 +vt 0.888428 0.294606 +vt 0.900550 0.394114 +vt 0.888429 0.394114 +vt 0.900550 0.437274 +vt 0.888429 0.437274 +vt 0.900550 0.480879 +vt 0.888429 0.480879 +vt 0.900550 0.524484 +vt 0.888429 0.524484 +vt 0.900550 0.568090 +vt 0.888429 0.568090 +vt 0.801760 0.796084 +vt 0.813882 0.666839 +vt 0.813882 0.796084 +vt 0.897588 0.747418 +vt 0.900339 0.861350 +vt 0.897588 0.861350 +vt 0.899184 0.935956 +vt 0.928726 0.925829 +vt 0.928726 0.935956 +vt 0.888429 0.601441 +vt 0.894489 0.606505 +vt 0.888429 0.606505 +vt 0.476557 0.585175 +vt 0.394577 0.577535 +vt 0.494085 0.577517 +vt 0.354357 0.591708 +vt 0.395185 0.585191 +vt 0.317661 0.610406 +vt 0.351957 0.584339 +vt 0.282271 0.634969 +vt 0.313105 0.604135 +vt 0.269847 0.676217 +vt 0.288542 0.639525 +vt 0.266221 0.699107 +vt 0.262475 0.673821 +vt 0.494085 0.706763 +vt 0.476557 0.699107 +vt 0.516594 0.667355 +vt 0.510076 0.626526 +vt 0.623992 0.545155 +vt 0.933712 0.486222 +vt 0.930761 0.461662 +vt 0.933677 0.461658 +vt 0.933835 0.573519 +vt 0.930857 0.529875 +vt 0.933773 0.529871 +vt 0.933959 0.660995 +vt 0.930981 0.617175 +vt 0.933896 0.617171 +vt 0.931165 0.294610 +vt 0.934080 0.294606 +vt 0.930796 0.486226 +vt 0.930919 0.573523 +vt 0.934080 0.747247 +vt 0.931043 0.660999 +vt 0.115673 0.891561 +vt 0.120941 0.889896 +vt 0.120941 0.891562 +vt 0.113743 0.912440 +vt 0.115409 0.891825 +vt 0.115409 0.912440 +vt 0.116310 0.911802 +vt 0.120303 0.892463 +vt 0.120303 0.911802 +vt 0.115673 0.914369 +vt 0.120941 0.912703 +vt 0.120941 0.914369 +vt 0.115673 0.912703 +vt 0.121205 0.912440 +vt 0.121205 0.891825 +vt 0.116310 0.892463 +vt 0.122871 0.891825 +vt 0.122871 0.912440 +vt 0.517321 0.983616 +vt 0.530057 0.979918 +vt 0.530177 0.983265 +vt 0.517124 0.992977 +vt 0.509923 0.990179 +vt 0.517491 0.989800 +vt 0.509916 0.983328 +vt 0.516908 0.980489 +vt 0.530177 0.990089 +vt 0.533514 0.983265 +vt 0.533514 0.990089 +vt 0.508558 0.990180 +vt 0.530099 0.993292 +vt 0.862038 0.983177 +vt 0.874774 0.979479 +vt 0.874894 0.982826 +vt 0.861840 0.992538 +vt 0.854639 0.989740 +vt 0.862208 0.989361 +vt 0.854633 0.982888 +vt 0.861624 0.980050 +vt 0.874894 0.989649 +vt 0.878231 0.982826 +vt 0.878231 0.989649 +vt 0.853274 0.989741 +vt 0.874816 0.992852 +vt 0.201844 0.802196 +vt 0.194030 0.780742 +vt 0.201844 0.780742 +vt 0.473107 0.953861 +vt 0.489729 0.951182 +vt 0.489729 0.953861 +vt 0.144113 0.802196 +vt 0.136299 0.780742 +vt 0.144113 0.780742 +vt 0.144113 0.772929 +vt 0.194030 0.772929 +vt 0.194030 0.810009 +vt 0.194030 0.802196 +vt 0.191614 0.783158 +vt 0.191614 0.799780 +vt 0.146529 0.799780 +vt 0.146529 0.783158 +vt 0.489729 0.906096 +vt 0.473107 0.951182 +vt 0.473107 0.906096 +vt 0.470428 0.906096 +vt 0.470428 0.951182 +vt 0.492407 0.951182 +vt 0.492407 0.906096 +vt 0.489729 0.903418 +vt 0.473107 0.903418 +vt 0.006709 0.937024 +vt 0.009278 0.823485 +vt 0.009278 0.937024 +vt 0.011259 0.937019 +vt 0.016898 0.823479 +vt 0.016898 0.937019 +vt 0.018880 0.937014 +vt 0.018880 0.823474 +vt 0.021449 0.823474 +vt 0.021449 0.937014 +vt 0.192614 0.936977 +vt 0.195183 0.823437 +vt 0.195183 0.936977 +vt 0.197165 0.936971 +vt 0.202803 0.823432 +vt 0.202803 0.936971 +vt 0.204785 0.936966 +vt 0.204785 0.823426 +vt 0.207354 0.823426 +vt 0.207354 0.936966 +vt 0.811263 0.938243 +vt 0.813832 0.824703 +vt 0.813832 0.938243 +vt 0.815814 0.938237 +vt 0.821453 0.824698 +vt 0.821453 0.938237 +vt 0.823434 0.938232 +vt 0.823434 0.824692 +vt 0.826003 0.824692 +vt 0.826003 0.938232 +vt 0.034866 0.937024 +vt 0.037435 0.823485 +vt 0.037435 0.937024 +vt 0.039417 0.937019 +vt 0.045055 0.823479 +vt 0.045055 0.937019 +vt 0.047037 0.937014 +vt 0.047037 0.823474 +vt 0.049606 0.823474 +vt 0.049606 0.937014 +vt 0.932252 0.241137 +vt 0.934844 0.133830 +vt 0.934844 0.241137 +vt 0.936717 0.241134 +vt 0.942404 0.133826 +vt 0.942403 0.241134 +vt 0.944276 0.241130 +vt 0.944277 0.133823 +vt 0.946868 0.133823 +vt 0.946868 0.241130 +vt 0.100157 0.851974 +vt 0.097527 0.946547 +vt 0.097528 0.851974 +vt 0.095841 0.851974 +vt 0.090070 0.946546 +vt 0.090070 0.851974 +vt 0.088384 0.851974 +vt 0.088384 0.946546 +vt 0.085754 0.946546 +vt 0.085755 0.851974 +vt 0.136299 0.950395 +vt 0.203267 0.953024 +vt 0.136299 0.953024 +vt 0.136299 0.954710 +vt 0.203267 0.960481 +vt 0.136299 0.960481 +vt 0.136299 0.962168 +vt 0.203267 0.962168 +vt 0.203267 0.964797 +vt 0.136299 0.964797 +vt 0.301908 0.982691 +vt 0.329834 0.980027 +vt 0.329834 0.982690 +vt 0.301908 0.980027 +vt 0.329834 0.977363 +vt 0.301908 0.977363 +vt 0.329834 0.974699 +vt 0.301908 0.974699 +vt 0.329834 0.972035 +vt 0.301908 0.972035 +vt 0.329834 0.969371 +vt 0.970662 0.802390 +vt 0.973326 0.800078 +vt 0.973326 0.802390 +vt 0.968778 0.826786 +vt 0.968778 0.824122 +vt 0.975209 0.826786 +vt 0.975209 0.824122 +vt 0.977522 0.822238 +vt 0.977522 0.824122 +vt 0.968778 0.800078 +vt 0.970662 0.800078 +vt 0.970662 0.808821 +vt 0.968778 0.804274 +vt 0.874581 0.121851 +vt 0.876591 0.006711 +vt 0.876591 0.121851 +vt 0.968778 0.906729 +vt 0.970191 0.903318 +vt 0.973601 0.904731 +vt 0.977522 0.828669 +vt 0.973326 0.828669 +vt 0.301908 0.969371 +vt 0.329834 0.965175 +vt 0.301908 0.986886 +vt 0.975209 0.800078 +vt 0.975209 0.804274 +vt 0.977522 0.826786 +vt 0.886640 0.006709 +vt 0.888649 0.121848 +vt 0.886640 0.121849 +vt 0.882620 0.006710 +vt 0.884630 0.121849 +vt 0.882620 0.121850 +vt 0.878601 0.006711 +vt 0.880610 0.121850 +vt 0.878601 0.121850 +vt 0.888649 0.006709 +vt 0.890659 0.121848 +vt 0.884630 0.006710 +vt 0.880610 0.006711 +vt 0.711814 0.977254 +vt 0.717875 0.972190 +vt 0.717875 0.982318 +vt 0.405212 0.706763 +vt 0.375671 0.706763 +vt 0.978906 0.626265 +vt 0.968778 0.620204 +vt 0.978906 0.620204 +vt 0.973842 0.632325 +vt 0.968778 0.626265 +vt 0.978906 0.701585 +vt 0.968778 0.695524 +vt 0.978906 0.695524 +vt 0.085754 0.959964 +vt 0.093652 0.989505 +vt 0.085754 0.989505 +vt 0.973842 0.707645 +vt 0.968778 0.701585 +vt 0.968182 0.245444 +vt 0.960285 0.274985 +vt 0.960285 0.245444 +vt 0.947497 0.992681 +vt 0.977039 0.984783 +vt 0.977039 0.992681 +vt 0.645374 0.953709 +vt 0.674916 0.943582 +vt 0.674916 0.953709 +vt 0.975414 0.951347 +vt 0.967516 0.921558 +vt 0.975414 0.921558 +vt 0.384226 0.941462 +vt 0.414014 0.933565 +vt 0.414014 0.941462 +vt 0.899184 0.925829 +vt 0.928726 0.917931 +vt 0.688333 0.943582 +vt 0.717875 0.935684 +vt 0.717875 0.943582 +vt 0.645374 0.943582 +vt 0.674916 0.935684 +vt 0.263318 0.975303 +vt 0.257257 0.970239 +vt 0.263318 0.965175 +vt 0.269379 0.965175 +vt 0.269379 0.975303 +vt 0.361433 0.970908 +vt 0.367494 0.965844 +vt 0.367494 0.975971 +vt 0.384226 0.951590 +vt 0.414014 0.951590 +vt 0.688333 0.953709 +vt 0.717875 0.953709 +vt 0.651435 0.977254 +vt 0.645374 0.972190 +vt 0.651435 0.967126 +vt 0.657496 0.967127 +vt 0.657496 0.977254 +vt 0.807821 0.801148 +vt 0.801760 0.806211 +vt 0.978906 0.651803 +vt 0.973842 0.645742 +vt 0.983970 0.645742 +vt 0.645374 0.929623 +vt 0.645374 0.935684 +vt 0.688333 0.929623 +vt 0.688333 0.935684 +vt 0.899184 0.911870 +vt 0.899184 0.917931 +vt 0.384226 0.933565 +vt 0.414014 0.927504 +vt 0.978906 0.657864 +vt 0.968778 0.651803 +vt 0.947497 0.978723 +vt 0.947497 0.984783 +vt 0.355372 0.970908 +vt 0.361433 0.960780 +vt 0.974243 0.245444 +vt 0.968182 0.274985 +vt 0.705753 0.977254 +vt 0.711814 0.967126 +vt 0.099713 0.959964 +vt 0.093652 0.959964 +vt 0.813882 0.801148 +vt 0.807821 0.811275 +vt 0.967516 0.951347 +vt 0.961456 0.921558 +vt 0.900550 0.601441 +vt 0.876307 0.394114 +vt 0.876307 0.437274 +vt 0.876307 0.480879 +vt 0.876307 0.524484 +vt 0.876307 0.568090 +vt 0.826003 0.796084 +vt 0.622483 0.966501 +vt 0.508551 0.963750 +vt 0.622483 0.963750 +vt 0.928726 0.897912 +vt 0.899184 0.887784 +vt 0.928726 0.887784 +vt 0.882368 0.606505 +vt 0.876307 0.601441 +vt 0.511219 0.226008 +vt 0.503579 0.144028 +vt 0.511235 0.144636 +vt 0.517753 0.103808 +vt 0.510383 0.101409 +vt 0.536450 0.067112 +vt 0.530179 0.062556 +vt 0.565569 0.037993 +vt 0.561013 0.031722 +vt 0.602261 0.019298 +vt 0.599866 0.011926 +vt 0.625151 0.015672 +vt 0.632807 0.243536 +vt 0.625151 0.226008 +vt 0.279578 0.779761 +vt 0.260883 0.743070 +vt 0.257257 0.720180 +vt 0.913967 0.580195 +vt 0.916923 0.555635 +vt 0.916883 0.580199 +vt 0.914077 0.511982 +vt 0.917064 0.468338 +vt 0.916993 0.511987 +vt 0.914218 0.424679 +vt 0.917205 0.380859 +vt 0.917134 0.424684 +vt 0.917344 0.747253 +vt 0.914007 0.555630 +vt 0.914148 0.468333 +vt 0.914289 0.380855 +vt 0.917344 0.294611 +vt 0.065127 0.861396 +vt 0.070396 0.863061 +vt 0.065127 0.863061 +vt 0.070660 0.863325 +vt 0.072325 0.883939 +vt 0.070660 0.883939 +vt 0.065765 0.863963 +vt 0.069758 0.883302 +vt 0.065765 0.883302 +vt 0.065127 0.884203 +vt 0.070396 0.885869 +vt 0.065127 0.885869 +vt 0.070396 0.884203 +vt 0.064863 0.883939 +vt 0.064863 0.863325 +vt 0.069758 0.863963 +vt 0.063198 0.863325 +vt 0.063198 0.883939 +vt 0.568438 0.993292 +vt 0.555701 0.989594 +vt 0.568557 0.989945 +vt 0.555504 0.980233 +vt 0.548303 0.983031 +vt 0.548041 0.981699 +vt 0.555872 0.983409 +vt 0.555288 0.992721 +vt 0.548296 0.989882 +vt 0.571895 0.989945 +vt 0.568557 0.983121 +vt 0.571895 0.983121 +vt 0.546938 0.983030 +vt 0.568480 0.979918 +vt 0.491677 0.993292 +vt 0.478941 0.989594 +vt 0.491797 0.989945 +vt 0.478743 0.980233 +vt 0.471542 0.983031 +vt 0.471281 0.981699 +vt 0.479111 0.983409 +vt 0.478527 0.992721 +vt 0.471536 0.989882 +vt 0.495134 0.989945 +vt 0.491797 0.983121 +vt 0.495134 0.983121 +vt 0.470177 0.983030 +vt 0.491719 0.979918 +vt 0.567791 0.850757 +vt 0.575605 0.829304 +vt 0.575605 0.850757 +vt 0.241162 0.906203 +vt 0.224540 0.903524 +vt 0.241162 0.903524 +vt 0.510060 0.850757 +vt 0.517874 0.829304 +vt 0.517874 0.850757 +vt 0.517874 0.858571 +vt 0.567791 0.858571 +vt 0.567791 0.821490 +vt 0.567791 0.829304 +vt 0.565375 0.848342 +vt 0.565375 0.831720 +vt 0.520290 0.848342 +vt 0.520290 0.831720 +vt 0.224540 0.906203 +vt 0.241162 0.951289 +vt 0.224540 0.951289 +vt 0.221861 0.951289 +vt 0.221861 0.906203 +vt 0.243840 0.906203 +vt 0.243840 0.951289 +vt 0.241162 0.953967 +vt 0.224540 0.953967 +vt 0.176628 0.823438 +vt 0.179197 0.936978 +vt 0.176628 0.936978 +vt 0.169007 0.823432 +vt 0.174646 0.936972 +vt 0.169008 0.936972 +vt 0.167026 0.936966 +vt 0.167026 0.823426 +vt 0.164457 0.823426 +vt 0.164457 0.936966 +vt 0.257269 0.850098 +vt 0.370809 0.847529 +vt 0.370809 0.850098 +vt 0.257263 0.857718 +vt 0.370803 0.852080 +vt 0.370803 0.857718 +vt 0.370797 0.859700 +vt 0.257257 0.859700 +vt 0.257257 0.862269 +vt 0.370797 0.862269 +vt 0.784658 0.821502 +vt 0.787227 0.935042 +vt 0.784658 0.935042 +vt 0.777038 0.821496 +vt 0.782677 0.935036 +vt 0.777038 0.935036 +vt 0.775056 0.935030 +vt 0.775056 0.821490 +vt 0.772487 0.821490 +vt 0.772487 0.935030 +vt 0.148471 0.823438 +vt 0.151040 0.936978 +vt 0.148471 0.936978 +vt 0.140850 0.823432 +vt 0.146489 0.936972 +vt 0.140850 0.936972 +vt 0.138869 0.936966 +vt 0.138869 0.823426 +vt 0.136299 0.823426 +vt 0.136300 0.936966 +vt 0.944276 0.006716 +vt 0.946868 0.114023 +vt 0.944277 0.114023 +vt 0.936717 0.006712 +vt 0.942404 0.114020 +vt 0.936717 0.114020 +vt 0.934844 0.114016 +vt 0.934844 0.006709 +vt 0.932252 0.006709 +vt 0.932253 0.114016 +vt 0.645374 0.880347 +vt 0.739946 0.877717 +vt 0.739946 0.880347 +vt 0.645374 0.887804 +vt 0.739946 0.882033 +vt 0.739946 0.887804 +vt 0.739946 0.889491 +vt 0.645374 0.889491 +vt 0.645374 0.892120 +vt 0.739946 0.892120 +vt 0.811263 0.954289 +vt 0.878231 0.951660 +vt 0.878231 0.954289 +vt 0.811263 0.961746 +vt 0.878231 0.955975 +vt 0.878231 0.961746 +vt 0.878231 0.963433 +vt 0.811263 0.963433 +vt 0.811263 0.966062 +vt 0.878231 0.966062 +vt 0.427431 0.979920 +vt 0.455358 0.982584 +vt 0.427431 0.982584 +vt 0.427431 0.977257 +vt 0.455358 0.979920 +vt 0.427431 0.974593 +vt 0.455358 0.977256 +vt 0.427431 0.971929 +vt 0.455358 0.974593 +vt 0.427431 0.969265 +vt 0.455358 0.971929 +vt 0.977522 0.843970 +vt 0.975209 0.846634 +vt 0.975209 0.843970 +vt 0.968778 0.784777 +vt 0.970662 0.780230 +vt 0.975209 0.782113 +vt 0.975209 0.784777 +vt 0.977522 0.786661 +vt 0.973326 0.786661 +vt 0.977522 0.848518 +vt 0.973326 0.848518 +vt 0.968778 0.846634 +vt 0.876591 0.135269 +vt 0.874581 0.250408 +vt 0.874581 0.135268 +vt 0.973602 0.865345 +vt 0.970191 0.866758 +vt 0.968778 0.863347 +vt 0.977522 0.780230 +vt 0.973326 0.780230 +vt 0.427431 0.965069 +vt 0.455358 0.969265 +vt 0.455358 0.986780 +vt 0.977522 0.842086 +vt 0.973326 0.842086 +vt 0.977522 0.782113 +vt 0.888649 0.135271 +vt 0.886640 0.250410 +vt 0.886640 0.135271 +vt 0.884630 0.135270 +vt 0.882620 0.250410 +vt 0.882620 0.135270 +vt 0.880610 0.135270 +vt 0.878601 0.250409 +vt 0.878601 0.135269 +vt 0.890659 0.135272 +vt 0.888649 0.250411 +vt 0.884630 0.250410 +vt 0.876591 0.250408 +vt 0.880610 0.250409 +vt 0.693632 0.972190 +vt 0.699693 0.977254 +vt 0.693632 0.982318 +vt 0.632807 0.213747 +vt 0.978906 0.614143 +vt 0.973842 0.608082 +vt 0.983970 0.608082 +vt 0.978906 0.689463 +vt 0.113671 0.959964 +vt 0.105773 0.989505 +vt 0.105773 0.959964 +vt 0.973842 0.683402 +vt 0.983970 0.683402 +vt 0.988201 0.274985 +vt 0.980304 0.245444 +vt 0.988201 0.245444 +vt 0.947497 0.964764 +vt 0.977039 0.972662 +vt 0.947497 0.972662 +vt 0.674916 0.915665 +vt 0.645374 0.905537 +vt 0.674916 0.905537 +vt 0.955395 0.921558 +vt 0.947497 0.951347 +vt 0.947497 0.921558 +vt 0.414014 0.921443 +vt 0.384226 0.913545 +vt 0.414014 0.913545 +vt 0.899184 0.897912 +vt 0.928726 0.905810 +vt 0.899184 0.905810 +vt 0.688333 0.915665 +vt 0.717875 0.923563 +vt 0.688333 0.923563 +vt 0.645374 0.915665 +vt 0.674916 0.923563 +vt 0.645374 0.923563 +vt 0.275440 0.975303 +vt 0.281500 0.970239 +vt 0.281500 0.980367 +vt 0.343251 0.965844 +vt 0.349312 0.970908 +vt 0.343251 0.975971 +vt 0.384226 0.903418 +vt 0.414014 0.903418 +vt 0.717875 0.915665 +vt 0.688333 0.905537 +vt 0.717875 0.905537 +vt 0.663556 0.977254 +vt 0.669617 0.972190 +vt 0.669617 0.982318 +vt 0.826003 0.806211 +vt 0.819943 0.801148 +vt 0.973842 0.669985 +vt 0.978906 0.663925 +vt 0.983970 0.669985 +vt 0.384226 0.921443 +vt 0.968778 0.663925 +vt 0.349312 0.960780 +vt 0.980304 0.274985 +vt 0.699693 0.967126 +vt 0.819943 0.811275 +vt 0.955395 0.951347 +vt 0.876307 0.937367 +vt 0.877826 0.933398 +vt 0.877826 0.937367 +vt 0.879344 0.937367 +vt 0.879344 0.933398 +vt 0.880863 0.937367 +vt 0.882381 0.933398 +vt 0.882381 0.937367 +vt 0.840001 0.746144 +vt 0.840001 0.743338 +vt 0.841404 0.742757 +vt 0.841404 0.764111 +vt 0.840001 0.763530 +vt 0.839420 0.762127 +vt 0.968778 0.725591 +vt 0.991877 0.724836 +vt 0.991877 0.725590 +vt 0.978536 0.159457 +vt 0.979433 0.159840 +vt 0.979069 0.159990 +vt 0.968778 0.724836 +vt 0.991877 0.724081 +vt 0.968778 0.724081 +vt 0.991877 0.723327 +vt 0.977247 0.160745 +vt 0.977630 0.161642 +vt 0.976884 0.160895 +vt 0.968778 0.723326 +vt 0.991877 0.722572 +vt 0.977630 0.159093 +vt 0.978686 0.159093 +vt 0.968778 0.722572 +vt 0.991877 0.721817 +vt 0.979069 0.160745 +vt 0.979433 0.160895 +vt 0.968778 0.721817 +vt 0.991877 0.721062 +vt 0.968778 0.727100 +vt 0.991877 0.726345 +vt 0.991877 0.727100 +vt 0.968778 0.726345 +vt 0.737627 0.942995 +vt 0.736571 0.934165 +vt 0.737627 0.934165 +vt 0.736571 0.942995 +vt 0.735515 0.934165 +vt 0.735515 0.942995 +vt 0.734459 0.934165 +vt 0.734459 0.942995 +vt 0.733404 0.934165 +vt 0.732348 0.942995 +vt 0.732348 0.934165 +vt 0.731292 0.934165 +vt 0.738683 0.942995 +vt 0.738683 0.934165 +vt 0.739739 0.942995 +vt 0.739739 0.934165 +vt 0.977247 0.159990 +vt 0.976884 0.159840 +vt 0.978686 0.161642 +vt 0.978536 0.161279 +vt 0.977630 0.145676 +vt 0.976884 0.143873 +vt 0.978686 0.143127 +vt 0.977781 0.159457 +vt 0.977781 0.161279 +vt 0.987094 0.328112 +vt 0.986494 0.328523 +vt 0.986294 0.328503 +vt 0.733610 0.979860 +vt 0.733409 0.978584 +vt 0.733610 0.978584 +vt 0.734492 0.979860 +vt 0.734090 0.978584 +vt 0.734492 0.978584 +vt 0.986494 0.342610 +vt 0.987205 0.342438 +vt 0.987094 0.343021 +vt 0.987211 0.344218 +vt 0.986294 0.344748 +vt 0.738443 0.978584 +vt 0.737385 0.979860 +vt 0.737385 0.978584 +vt 0.733409 0.979860 +vt 0.732351 0.978584 +vt 0.736326 0.979860 +vt 0.735267 0.978584 +vt 0.736326 0.978584 +vt 0.735086 0.979860 +vt 0.735086 0.978584 +vt 0.732351 0.979860 +vt 0.731292 0.978584 +vt 0.734090 0.979860 +vt 0.987205 0.328695 +vt 0.986837 0.328858 +vt 0.623574 0.981645 +vt 0.622974 0.982056 +vt 0.622774 0.982036 +vt 0.839420 0.689726 +vt 0.840697 0.689525 +vt 0.840697 0.689726 +vt 0.839420 0.690608 +vt 0.840697 0.690206 +vt 0.840697 0.690608 +vt 0.840539 0.920381 +vt 0.841251 0.920209 +vt 0.841140 0.920792 +vt 0.841256 0.921989 +vt 0.840340 0.922519 +vt 0.839420 0.694559 +vt 0.840697 0.693501 +vt 0.840697 0.694559 +vt 0.839420 0.689525 +vt 0.840697 0.688467 +vt 0.839420 0.692442 +vt 0.840697 0.691383 +vt 0.840697 0.692442 +vt 0.839420 0.691202 +vt 0.840697 0.691202 +vt 0.839420 0.687408 +vt 0.840697 0.687408 +vt 0.839420 0.693501 +vt 0.839420 0.691383 +vt 0.839420 0.690206 +vt 0.623685 0.982228 +vt 0.623317 0.982391 +vt 0.841137 0.905883 +vt 0.840537 0.906294 +vt 0.840337 0.906274 +vt 0.839420 0.669157 +vt 0.840697 0.668957 +vt 0.840697 0.669157 +vt 0.840697 0.670040 +vt 0.839420 0.669637 +vt 0.840697 0.669637 +vt 0.986494 0.294941 +vt 0.987205 0.294769 +vt 0.987094 0.295352 +vt 0.987211 0.296549 +vt 0.986294 0.297079 +vt 0.839420 0.673991 +vt 0.840697 0.672932 +vt 0.840697 0.673991 +vt 0.839420 0.668957 +vt 0.840697 0.667898 +vt 0.839420 0.671873 +vt 0.840697 0.670815 +vt 0.840697 0.671873 +vt 0.839420 0.670633 +vt 0.840697 0.670633 +vt 0.839420 0.667898 +vt 0.840697 0.666839 +vt 0.839420 0.670815 +vt 0.841249 0.906466 +vt 0.840881 0.906629 +vt 0.987094 0.312223 +vt 0.986494 0.312634 +vt 0.986294 0.312613 +vt 0.628006 0.949880 +vt 0.627604 0.948603 +vt 0.628006 0.948603 +vt 0.978000 0.186892 +vt 0.978712 0.186720 +vt 0.978601 0.187303 +vt 0.978718 0.188500 +vt 0.977801 0.189030 +vt 0.631957 0.949880 +vt 0.630898 0.948603 +vt 0.631957 0.948603 +vt 0.626923 0.949880 +vt 0.625864 0.948603 +vt 0.626923 0.948603 +vt 0.629840 0.949880 +vt 0.628781 0.948603 +vt 0.629840 0.948603 +vt 0.628599 0.948603 +vt 0.625864 0.949880 +vt 0.624806 0.948603 +vt 0.630898 0.949880 +vt 0.628781 0.949880 +vt 0.627124 0.948603 +vt 0.627604 0.949880 +vt 0.627124 0.949880 +vt 0.987205 0.312806 +vt 0.986837 0.312968 +vt 0.627124 0.949880 +vt 0.626923 0.948603 +vt 0.627124 0.948603 +vt 0.900550 0.294606 +vt 0.801760 0.666839 +vt 0.900339 0.747418 +vt 0.257257 0.706763 +vt 0.510060 0.545155 +vt 0.623992 0.755490 +vt 0.564411 0.733169 +vt 0.601102 0.751865 +vt 0.535292 0.704051 +vt 0.931165 0.747251 +vt 0.115673 0.889896 +vt 0.113743 0.891825 +vt 0.509661 0.991511 +vt 0.509641 0.982031 +vt 0.508551 0.983329 +vt 0.854378 0.991072 +vt 0.854357 0.981591 +vt 0.853268 0.982890 +vt 0.136299 0.802196 +vt 0.144113 0.810009 +vt 0.006709 0.823485 +vt 0.011260 0.823479 +vt 0.192614 0.823437 +vt 0.197165 0.823432 +vt 0.811263 0.824703 +vt 0.815814 0.824698 +vt 0.034866 0.823485 +vt 0.039417 0.823479 +vt 0.932253 0.133830 +vt 0.936717 0.133826 +vt 0.100157 0.946547 +vt 0.095841 0.946547 +vt 0.203267 0.950395 +vt 0.203267 0.954710 +vt 0.970662 0.822238 +vt 0.973326 0.822238 +vt 0.970662 0.828669 +vt 0.975209 0.806938 +vt 0.973326 0.808821 +vt 0.968778 0.806938 +vt 0.874581 0.006712 +vt 0.972189 0.908141 +vt 0.970191 0.908141 +vt 0.968778 0.904731 +vt 0.972189 0.903318 +vt 0.973601 0.906729 +vt 0.301908 0.965175 +vt 0.329834 0.986886 +vt 0.890659 0.006709 +vt 0.287046 0.706763 +vt 0.316588 0.706763 +vt 0.464296 0.706763 +vt 0.434754 0.706763 +vt 0.346130 0.706763 +vt 0.983970 0.632325 +vt 0.983970 0.707645 +vt 0.257257 0.980367 +vt 0.645374 0.982318 +vt 0.674916 0.929623 +vt 0.717875 0.929623 +vt 0.928726 0.911870 +vt 0.384226 0.927504 +vt 0.968778 0.657864 +vt 0.977039 0.978723 +vt 0.355372 0.960780 +vt 0.974243 0.274985 +vt 0.705753 0.967126 +vt 0.099713 0.989505 +vt 0.813882 0.811275 +vt 0.961456 0.951347 +vt 0.876307 0.294606 +vt 0.826003 0.666839 +vt 0.508551 0.966501 +vt 0.503562 0.243536 +vt 0.632807 0.006709 +vt 0.467593 0.720180 +vt 0.467593 0.834112 +vt 0.386221 0.834096 +vt 0.345393 0.827578 +vt 0.308697 0.808880 +vt 0.914428 0.747248 +vt 0.914429 0.294606 +vt 0.070396 0.861396 +vt 0.072325 0.863325 +vt 0.548021 0.991179 +vt 0.546931 0.989881 +vt 0.471260 0.991179 +vt 0.470171 0.989881 +vt 0.510060 0.829304 +vt 0.517874 0.821490 +vt 0.179197 0.823438 +vt 0.174646 0.823432 +vt 0.257269 0.847529 +vt 0.257263 0.852080 +vt 0.787227 0.821502 +vt 0.782677 0.821496 +vt 0.151040 0.823438 +vt 0.146489 0.823432 +vt 0.946868 0.006716 +vt 0.942403 0.006712 +vt 0.645374 0.877718 +vt 0.645374 0.882034 +vt 0.811263 0.951660 +vt 0.811263 0.955975 +vt 0.977522 0.846634 +vt 0.970662 0.786661 +vt 0.968778 0.782113 +vt 0.977522 0.784777 +vt 0.970662 0.842086 +vt 0.970662 0.848518 +vt 0.968778 0.843970 +vt 0.970191 0.861935 +vt 0.972189 0.861935 +vt 0.973602 0.863347 +vt 0.972189 0.866758 +vt 0.968778 0.865345 +vt 0.455358 0.965069 +vt 0.427431 0.986780 +vt 0.890659 0.250411 +vt 0.632807 0.125122 +vt 0.632807 0.036497 +vt 0.632807 0.066039 +vt 0.632807 0.095581 +vt 0.632807 0.154663 +vt 0.632807 0.184205 +vt 0.968778 0.614143 +vt 0.968778 0.689463 +vt 0.113671 0.989505 +vt 0.977039 0.964764 +vt 0.275440 0.965175 +vt 0.663556 0.967127 +vt 0.876307 0.933398 +vt 0.880863 0.933398 +vt 0.841404 0.746726 +vt 0.839420 0.744741 +vt 0.840001 0.760724 +vt 0.841404 0.760143 +vt 0.968778 0.721062 +vt 0.733404 0.942995 +vt 0.731292 0.942995 +vt 0.976884 0.144929 +vt 0.977630 0.143127 +vt 0.979433 0.143873 +vt 0.979433 0.144929 +vt 0.978686 0.145676 +vt 0.985377 0.327974 +vt 0.985377 0.326915 +vt 0.986294 0.326385 +vt 0.987211 0.326915 +vt 0.987211 0.327974 +vt 0.986837 0.342275 +vt 0.985377 0.344218 +vt 0.985377 0.343159 +vt 0.986294 0.342630 +vt 0.987211 0.343160 +vt 0.738443 0.979860 +vt 0.735267 0.979860 +vt 0.731292 0.979860 +vt 0.621857 0.981507 +vt 0.621857 0.980448 +vt 0.622774 0.979918 +vt 0.623691 0.980448 +vt 0.623691 0.981506 +vt 0.840883 0.920046 +vt 0.839423 0.921989 +vt 0.839423 0.920931 +vt 0.840340 0.920401 +vt 0.841256 0.920931 +vt 0.839420 0.688467 +vt 0.839420 0.905745 +vt 0.839420 0.904686 +vt 0.840337 0.904156 +vt 0.841254 0.904686 +vt 0.841254 0.905745 +vt 0.839420 0.670040 +vt 0.986837 0.294606 +vt 0.985377 0.296549 +vt 0.985377 0.295491 +vt 0.986294 0.294961 +vt 0.987211 0.295491 +vt 0.839420 0.672932 +vt 0.839420 0.666839 +vt 0.985377 0.312084 +vt 0.985377 0.311025 +vt 0.986294 0.310496 +vt 0.987211 0.311025 +vt 0.987211 0.312084 +vt 0.978344 0.186557 +vt 0.976884 0.188500 +vt 0.976884 0.187442 +vt 0.977801 0.186912 +vt 0.978718 0.187442 +vt 0.628599 0.949880 +vt 0.624806 0.949880 +vt 0.626923 0.949880 +vn -0.1139 0.0000 0.9935 +vn -1.0000 0.0000 0.0000 +vn -0.1139 -0.0000 -0.9935 +vn -0.0587 -0.9983 0.0000 +vn -0.0587 0.9983 0.0000 +vn -0.0542 0.0000 0.9985 +vn -0.0542 -0.0000 -0.9985 +vn -0.0542 -0.9985 0.0000 +vn -0.0542 0.9985 0.0000 +vn -0.0543 0.0000 -0.9985 +vn 0.0000 0.0002 1.0000 +vn 0.0000 0.0792 0.9969 +vn 0.0000 0.3096 0.9509 +vn 0.0000 0.5878 0.8090 +vn 0.0000 0.8090 0.5878 +vn 0.0000 0.9511 0.3090 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.9969 0.0785 +vn 0.0000 -0.9511 -0.3090 +vn 0.0000 -0.9877 -0.1564 +vn 0.0000 -0.5878 -0.8090 +vn 0.0000 -0.8090 -0.5878 +vn 0.0000 -0.0792 -0.9969 +vn 0.0000 -0.3096 -0.9509 +vn 0.0000 -0.0000 1.0000 +vn 0.0000 -0.0002 -1.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.7071 0.0000 -0.7071 +vn 0.7071 -0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.7071 0.0000 0.7071 +vn 0.9679 0.2513 0.0000 +vn 0.9919 0.1267 0.0000 +vn 0.3827 -0.9239 0.0000 +vn 0.9239 -0.3827 0.0000 +vn 0.9239 0.3827 0.0000 +vn 0.3827 0.9239 0.0000 +vn -0.9239 -0.3827 0.0000 +vn -0.3827 -0.9239 0.0000 +vn -0.3827 0.9239 0.0000 +vn -0.9239 0.3827 0.0000 +vn 0.6412 0.0000 -0.7674 +vn 0.0000 0.9941 0.1087 +vn -0.7071 0.0000 -0.7071 +vn -0.7071 -0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn -0.7071 0.0000 0.7071 +vn -0.9919 0.1267 0.0000 +vn -0.9679 0.2513 0.0000 +vn -0.6412 0.0000 -0.7674 +vn -0.3827 0.0000 -0.9239 +vn -0.3827 0.0000 0.9239 +vn -0.9585 0.2850 0.0000 +vn -0.9865 0.1639 0.0000 +vn -0.8450 -0.5348 0.0000 +vn 0.7830 0.6220 -0.0000 +vn -0.9302 0.3672 0.0000 +vn 0.1471 -0.9891 -0.0000 +vn 0.3299 -0.9440 0.0000 +vn -0.1471 0.9891 0.0000 +vn 0.9302 -0.3672 0.0000 +vn -0.5247 -0.8513 0.0000 +vn -0.8112 0.5848 0.0000 +vn -0.2540 0.9672 0.0000 +vn -0.3720 0.9282 0.0000 +vn -0.8957 0.4446 0.0000 +vn 0.9381 -0.3464 0.0000 +vn -0.1690 0.9856 0.0000 +vn -0.7691 -0.6392 0.0000 +vn -0.6356 -0.7720 -0.0000 +vn 0.7690 0.6392 -0.0000 +vn 0.1690 -0.9856 0.0000 +vn -1.0000 0.0066 0.0000 +vn 0.0788 0.9969 0.0000 +vn 0.0001 -0.0000 -1.0000 +vn 0.1973 0.9803 0.0000 +vn 0.0742 0.9972 0.0000 +vn -0.6089 0.7932 0.0000 +vn -0.6089 0.7933 0.0000 +vn -0.0001 0.0000 1.0000 +vn 0.6901 -0.7237 0.0000 +vn 0.2817 0.9595 0.0000 +vn -0.9718 -0.2358 0.0000 +vn -0.9104 -0.4138 0.0000 +vn 0.9718 0.2358 -0.0000 +vn -0.2817 -0.9595 -0.0000 +vn -0.8951 0.4458 0.0000 +vn -0.8952 0.4458 0.0000 +vn 0.5092 0.8606 -0.0000 +vn -0.9967 0.0811 0.0000 +vn 0.9997 0.0257 -0.0000 +vn -0.5221 0.8529 0.0000 +vn -0.4776 -0.8786 0.0000 +vn -0.3044 -0.9525 -0.0000 +vn 0.4776 0.8786 -0.0000 +vn 0.5221 -0.8529 0.0000 +vn -0.9313 -0.3642 -0.0000 +vn -0.9313 -0.3643 -0.0000 +vn -0.2961 0.9552 0.0000 +vn -0.8260 0.5637 0.0000 +vn 0.0002 0.0000 1.0000 +s off +f 534/1/1 539/2/1 538/3/1 +f 539/2/2 536/4/2 538/3/2 +f 537/5/3 532/6/3 536/4/3 +f 534/7/4 536/4/4 532/8/4 +f 535/9/5 537/5/5 539/2/5 +f 543/10/6 546/11/6 542/12/6 +f 547/13/2 544/14/2 546/11/2 +f 545/15/7 540/16/7 544/14/7 +f 542/17/8 544/14/8 540/18/8 +f 543/19/9 545/15/9 547/13/9 +f 551/20/6 554/21/6 550/22/6 +f 555/23/2 552/24/2 554/21/2 +f 553/25/10 548/26/10 552/24/10 +f 554/21/8 548/27/8 550/28/8 +f 551/29/9 553/25/9 555/23/9 +f 559/30/6 562/31/6 558/32/6 +f 563/33/2 560/34/2 562/31/2 +f 561/35/7 556/36/7 560/34/7 +f 562/31/8 556/37/8 558/38/8 +f 563/33/9 557/39/9 561/35/9 +f 566/40/6 571/41/6 570/42/6 +f 571/41/2 568/43/2 570/42/2 +f 569/44/10 564/45/10 568/43/10 +f 570/42/8 564/46/8 566/47/8 +f 567/48/9 569/44/9 571/41/9 +f 534/1/1 535/49/1 539/2/1 +f 539/2/2 537/5/2 536/4/2 +f 537/5/3 533/50/3 532/6/3 +f 534/7/4 538/3/4 536/4/4 +f 535/9/5 533/51/5 537/5/5 +f 543/10/6 547/13/6 546/11/6 +f 547/13/2 545/15/2 544/14/2 +f 545/15/7 541/52/7 540/16/7 +f 542/17/8 546/11/8 544/14/8 +f 543/19/9 541/53/9 545/15/9 +f 551/20/6 555/23/6 554/21/6 +f 555/23/2 553/25/2 552/24/2 +f 553/25/7 549/54/7 548/26/7 +f 554/21/8 552/24/8 548/27/8 +f 551/29/9 549/55/9 553/25/9 +f 559/30/6 563/33/6 562/31/6 +f 563/33/2 561/35/2 560/34/2 +f 561/35/7 557/56/7 556/36/7 +f 562/31/8 560/34/8 556/37/8 +f 563/33/9 559/57/9 557/39/9 +f 566/40/6 567/58/6 571/41/6 +f 571/41/2 569/44/2 568/43/2 +f 569/44/7 565/59/7 564/45/7 +f 570/42/8 568/43/8 564/46/8 +f 567/48/9 565/60/9 569/44/9 +s 1 +f 465/61/11 12/62/12 466/63/12 +f 466/63/12 13/64/13 467/65/13 +f 467/65/13 14/66/14 468/67/14 +f 468/67/14 15/68/15 469/69/15 +f 469/69/15 16/70/16 470/71/16 +f 18/72/17 465/73/17 472/74/17 +f 8/75/18 19/76/18 1/77/18 +f 205/78/19 228/79/19 206/80/19 +f 471/81/20 9/82/18 473/83/18 +f 1/84/19 12/85/19 11/86/19 +f 5/87/19 12/85/19 6/88/19 +f 4/89/19 13/90/19 5/87/19 +f 4/89/19 15/91/19 14/92/19 +f 2/93/19 15/91/19 3/94/19 +f 7/95/19 16/96/19 2/93/19 +f 1/84/19 18/97/19 8/98/19 +f 21/99/19 20/100/19 26/101/19 +f 2/102/21 25/103/22 7/104/22 +f 4/105/23 23/106/24 3/107/24 +f 6/108/25 21/109/26 5/110/26 +f 7/104/27 26/111/27 8/112/27 +f 3/107/24 24/113/21 2/102/21 +f 5/110/26 22/114/23 4/105/23 +f 1/115/28 20/116/25 6/108/25 +f 33/117/27 27/118/27 32/119/27 +f 30/120/18 33/121/18 38/122/18 +f 37/123/19 31/124/19 35/125/19 +f 30/126/29 36/127/29 29/128/29 +f 35/125/30 38/129/30 37/123/30 +f 36/130/31 31/124/31 32/131/31 +f 33/121/32 37/123/32 38/122/32 +f 32/119/33 34/132/33 33/117/33 +f 36/130/17 27/133/17 29/134/17 +f 50/135/27 39/136/27 43/137/27 +f 48/138/29 46/139/29 49/140/29 +f 46/139/34 50/135/35 49/140/35 +f 44/141/27 47/142/27 50/135/27 +f 45/143/17 39/144/17 41/145/17 +f 42/146/18 44/141/18 46/139/18 +f 49/140/35 43/137/19 45/143/19 +f 48/138/29 45/143/29 41/147/29 +f 62/148/27 51/149/27 55/150/27 +f 60/151/29 58/152/29 61/153/29 +f 58/152/34 62/148/35 61/153/35 +f 56/154/27 59/155/27 62/148/27 +f 57/156/17 51/157/17 53/158/17 +f 54/159/18 56/154/18 58/152/18 +f 61/153/35 55/150/19 57/156/19 +f 60/151/29 57/156/29 53/160/29 +f 66/161/29 72/162/29 65/163/29 +f 67/164/29 78/165/29 68/166/29 +f 74/167/27 63/168/27 73/169/27 +f 72/162/17 63/170/17 65/171/17 +f 66/172/18 74/167/18 71/173/18 +f 69/174/19 71/173/19 70/175/19 +f 69/174/19 73/169/19 72/162/19 +f 68/176/19 71/173/19 74/167/19 +f 68/176/19 73/169/19 67/177/19 +f 75/178/19 77/179/19 76/180/19 +f 69/181/18 77/179/18 67/182/18 +f 68/183/17 75/178/17 70/184/17 +f 70/185/27 76/180/27 69/186/27 +f 82/187/18 86/188/18 89/189/18 +f 90/190/19 84/191/19 87/192/19 +f 88/193/31 84/191/31 83/194/31 +f 86/188/32 90/190/32 89/189/32 +f 88/193/17 79/195/17 81/196/17 +f 94/197/18 98/198/18 101/199/18 +f 102/200/19 96/201/19 99/202/19 +f 100/203/31 96/201/31 95/204/31 +f 98/198/32 102/200/32 101/199/32 +f 100/203/17 91/205/17 93/206/17 +f 106/207/18 110/208/18 113/209/18 +f 114/210/19 108/211/19 111/212/19 +f 112/213/31 108/211/31 107/214/31 +f 110/208/32 114/210/32 113/209/32 +f 112/213/17 103/215/17 105/216/17 +f 118/217/18 122/218/18 125/219/18 +f 126/220/19 120/221/19 123/222/19 +f 124/223/31 120/221/31 119/224/31 +f 122/218/32 126/220/32 125/219/32 +f 124/223/17 115/225/17 117/226/17 +f 130/227/18 134/228/18 137/229/18 +f 138/230/19 132/231/19 135/232/19 +f 136/233/31 132/231/31 131/234/31 +f 134/228/32 138/230/32 137/229/32 +f 136/233/17 127/235/17 129/236/17 +f 142/237/18 146/238/18 149/239/18 +f 150/240/19 144/241/19 147/242/19 +f 148/243/31 144/241/31 143/244/31 +f 146/238/32 150/240/32 149/239/32 +f 148/243/17 139/245/17 141/246/17 +f 154/247/18 158/248/18 161/249/18 +f 162/250/19 156/251/19 159/252/19 +f 160/253/31 156/251/31 155/254/31 +f 158/248/32 162/250/32 161/249/32 +f 160/253/17 151/255/17 153/256/17 +f 164/257/17 165/258/36 163/259/17 +f 166/260/36 167/261/37 165/258/36 +f 168/262/37 169/263/38 167/261/37 +f 170/264/38 171/265/39 169/263/38 +f 172/266/39 173/267/18 171/265/39 +f 175/268/27 185/269/27 177/270/27 +f 170/271/29 168/272/29 176/273/29 +f 178/274/29 180/275/29 186/276/29 +f 175/268/27 182/277/27 183/278/27 +f 169/279/27 173/280/27 177/270/27 +f 194/281/40 197/282/41 187/283/41 +f 202/284/29 200/285/29 198/286/29 +f 176/273/29 181/287/29 174/288/29 +f 174/289/18 182/290/18 173/267/18 +f 163/259/17 180/291/17 164/257/17 +f 177/270/27 179/292/27 163/293/27 +f 178/274/29 184/294/29 176/273/29 +f 200/295/42 193/296/43 192/297/42 +f 198/298/38 191/299/39 190/300/38 +f 195/301/36 189/302/37 188/303/36 +f 201/304/43 194/305/40 193/296/43 +f 199/306/39 192/297/42 191/299/39 +f 197/282/41 188/303/36 187/283/41 +f 196/307/37 190/300/38 189/302/37 +f 216/308/17 227/309/17 205/310/17 +f 206/311/19 207/312/19 8/98/19 +f 211/313/18 483/314/18 475/315/18 +f 211/313/18 226/316/18 219/317/18 +f 210/318/18 489/319/18 481/320/18 +f 203/321/44 216/322/44 205/323/44 +f 210/318/18 232/324/18 225/325/18 +f 215/326/44 207/327/44 206/328/44 +f 208/329/44 212/330/44 209/331/44 +f 209/332/19 232/333/19 204/334/19 +f 204/335/44 9/336/44 17/337/44 +f 218/338/44 219/339/44 226/340/44 +f 227/341/44 221/342/44 228/79/44 +f 229/343/44 223/344/44 230/345/44 +f 231/346/44 225/347/44 232/333/44 +f 215/348/18 228/349/18 221/350/18 +f 215/348/18 485/351/18 477/352/18 +f 214/353/17 229/354/17 207/355/17 +f 18/356/19 226/340/19 203/357/19 +f 207/358/19 230/345/19 208/359/19 +f 213/360/18 230/361/18 223/362/18 +f 213/360/18 487/363/18 479/364/18 +f 10/365/17 218/366/17 18/72/17 +f 212/367/17 231/368/17 209/369/17 +f 488/370/29 225/347/29 224/371/29 +f 486/372/29 223/344/29 222/373/29 +f 484/374/29 221/342/29 220/375/29 +f 217/376/29 483/377/29 219/339/29 +f 480/378/17 224/379/17 212/367/17 +f 479/380/29 212/330/29 213/381/29 +f 478/382/17 222/383/17 214/353/17 +f 477/384/29 214/385/29 215/326/29 +f 476/386/17 220/387/17 216/308/17 +f 475/388/29 216/322/29 211/389/29 +f 474/390/17 217/391/17 10/365/17 +f 210/392/29 473/393/29 9/336/29 +f 472/74/17 10/365/17 18/72/17 +f 471/81/20 16/70/16 17/394/45 +f 244/395/12 465/61/11 466/63/12 +f 245/396/13 466/63/12 467/65/13 +f 246/397/14 467/65/13 468/67/14 +f 247/398/15 468/67/14 469/69/15 +f 248/399/16 469/69/15 470/71/16 +f 465/73/17 250/400/17 472/74/17 +f 251/401/18 240/402/18 233/403/18 +f 460/404/2 437/405/2 438/406/2 +f 471/81/20 241/407/18 249/408/45 +f 233/409/2 244/410/2 238/411/2 +f 244/410/2 237/412/2 238/411/2 +f 245/413/2 236/414/2 237/412/2 +f 246/415/2 235/416/2 236/414/2 +f 247/417/2 234/418/2 235/416/2 +f 248/419/2 239/420/2 234/418/2 +f 250/421/2 233/409/2 240/422/2 +f 255/423/2 256/424/2 257/425/2 +f 257/426/22 234/427/21 239/428/22 +f 255/429/24 236/430/23 235/431/24 +f 253/432/26 238/433/25 237/434/26 +f 240/435/27 257/426/27 239/428/27 +f 256/436/21 235/431/24 234/427/21 +f 254/437/23 237/434/26 236/430/23 +f 252/438/25 233/439/28 238/433/25 +f 259/440/27 265/441/27 264/442/27 +f 265/443/18 262/444/18 270/445/18 +f 263/446/2 269/447/2 267/448/2 +f 268/449/29 262/450/29 261/451/29 +f 270/452/46 267/448/46 269/447/46 +f 263/446/47 268/453/47 264/454/47 +f 269/447/48 265/443/48 270/445/48 +f 266/455/49 264/442/49 265/441/49 +f 259/456/17 268/453/17 261/457/17 +f 271/458/27 282/459/27 275/460/27 +f 280/461/29 278/462/29 274/463/29 +f 282/459/50 278/462/51 281/464/50 +f 279/465/27 276/466/27 282/459/27 +f 271/467/17 277/468/17 273/469/17 +f 276/466/18 274/470/18 278/462/18 +f 275/460/2 281/464/50 277/468/2 +f 277/468/29 280/461/29 273/471/29 +f 283/472/27 294/473/27 287/474/27 +f 292/475/29 290/476/29 286/477/29 +f 294/473/50 290/476/51 293/478/50 +f 291/479/27 288/480/27 294/473/27 +f 283/481/17 289/482/17 285/483/17 +f 288/480/18 286/484/18 290/476/18 +f 287/474/2 293/478/50 289/482/2 +f 289/482/29 292/475/29 285/485/29 +f 304/486/29 298/487/29 297/488/29 +f 310/489/29 299/490/29 300/491/29 +f 295/492/27 306/493/27 305/494/27 +f 295/495/17 304/486/17 297/496/17 +f 306/493/18 298/497/18 303/498/18 +f 303/498/2 301/499/2 302/500/2 +f 304/486/2 299/501/2 301/499/2 +f 306/493/2 302/500/2 300/502/2 +f 305/494/2 300/502/2 299/501/2 +f 309/503/2 307/504/2 308/505/2 +f 309/503/18 301/506/18 299/507/18 +f 307/504/17 300/508/17 302/509/17 +f 308/505/27 302/510/27 301/511/27 +f 318/512/18 314/513/18 321/514/18 +f 316/515/2 322/516/2 319/517/2 +f 316/515/47 320/518/47 315/519/47 +f 322/516/48 318/512/48 321/514/48 +f 311/520/17 320/518/17 313/521/17 +f 330/522/18 326/523/18 333/524/18 +f 328/525/2 334/526/2 331/527/2 +f 328/525/47 332/528/47 327/529/47 +f 334/526/48 330/522/48 333/524/48 +f 323/530/17 332/528/17 325/531/17 +f 342/532/18 338/533/18 345/534/18 +f 340/535/2 346/536/2 343/537/2 +f 340/535/47 344/538/47 339/539/47 +f 346/536/48 342/532/48 345/534/48 +f 335/540/17 344/538/17 337/541/17 +f 354/542/18 350/543/18 357/544/18 +f 352/545/2 358/546/2 355/547/2 +f 352/545/47 356/548/47 351/549/47 +f 358/546/48 354/542/48 357/544/48 +f 347/550/17 356/548/17 349/551/17 +f 366/552/18 362/553/18 369/554/18 +f 364/555/2 370/556/2 367/557/2 +f 364/555/47 368/558/47 363/559/47 +f 370/556/48 366/552/48 369/554/48 +f 359/560/17 368/558/17 361/561/17 +f 378/562/18 374/563/18 381/564/18 +f 376/565/2 382/566/2 379/567/2 +f 376/565/47 380/568/47 375/569/47 +f 382/566/48 378/562/48 381/564/48 +f 371/570/17 380/568/17 373/571/17 +f 390/572/18 386/573/18 393/574/18 +f 388/575/2 394/576/2 391/577/2 +f 388/575/47 392/578/47 387/579/47 +f 394/576/48 390/572/48 393/574/48 +f 383/580/17 392/578/17 385/581/17 +f 397/582/41 396/583/17 395/584/17 +f 399/585/40 398/586/41 397/582/41 +f 401/587/43 400/588/40 399/585/40 +f 403/589/42 402/590/43 401/587/43 +f 405/591/18 404/592/42 403/589/42 +f 417/593/27 407/594/27 409/595/27 +f 400/596/29 404/597/29 408/598/29 +f 410/599/29 412/600/29 396/601/29 +f 407/594/27 414/602/27 405/603/27 +f 409/595/27 405/603/27 401/604/27 +f 419/605/36 434/606/37 426/607/37 +f 430/608/29 432/609/29 434/610/29 +f 413/611/29 408/598/29 406/612/29 +f 414/613/18 406/614/18 405/591/18 +f 412/615/17 395/584/17 396/583/17 +f 411/616/27 409/595/27 395/617/27 +f 416/618/29 410/599/29 408/598/29 +f 425/619/38 432/620/39 424/621/39 +f 423/622/42 430/623/43 422/624/43 +f 421/625/40 427/626/41 420/627/41 +f 426/628/37 433/629/38 425/619/38 +f 424/621/39 431/630/42 423/622/42 +f 420/627/41 429/631/36 419/605/36 +f 422/624/43 428/632/40 421/625/40 +f 459/633/17 448/634/17 437/635/17 +f 435/636/2 250/421/2 240/422/2 +f 483/314/18 443/637/18 475/315/18 +f 443/637/18 458/638/18 435/639/18 +f 489/319/18 442/640/18 481/320/18 +f 435/641/52 448/642/52 443/643/52 +f 442/640/18 464/644/18 436/645/18 +f 439/646/52 447/647/52 438/648/52 +f 440/649/52 444/650/52 445/651/52 +f 464/652/2 441/653/2 436/654/2 +f 241/655/52 436/656/52 249/657/52 +f 451/658/52 450/659/52 458/660/52 +f 459/661/52 453/662/52 452/663/52 +f 461/664/52 455/665/52 454/666/52 +f 463/667/52 457/668/52 456/669/52 +f 447/670/18 460/671/18 438/672/18 +f 485/351/18 447/670/18 477/352/18 +f 461/673/17 446/674/17 439/675/17 +f 458/660/2 250/676/2 435/677/2 +f 462/678/2 439/679/2 440/680/2 +f 445/681/18 462/682/18 440/683/18 +f 487/363/18 445/681/18 479/364/18 +f 450/684/17 242/685/17 250/400/17 +f 463/686/17 444/687/17 441/688/17 +f 457/668/29 488/370/29 456/669/29 +f 455/665/29 486/372/29 454/666/29 +f 453/662/29 484/374/29 452/663/29 +f 483/377/29 449/689/29 451/658/29 +f 456/690/17 480/378/17 444/687/17 +f 444/650/29 479/380/29 445/651/29 +f 454/691/17 478/382/17 446/674/17 +f 446/692/29 477/384/29 447/647/29 +f 452/693/17 476/386/17 448/634/17 +f 448/642/29 475/388/29 443/643/29 +f 449/694/17 474/390/17 242/685/17 +f 473/393/29 442/695/29 241/655/29 +f 242/685/17 472/74/17 250/400/17 +f 248/399/16 471/81/20 249/408/45 +f 490/696/53 493/697/46 492/698/46 +f 493/697/46 494/699/2 492/698/46 +f 495/700/2 496/701/49 494/699/2 +f 496/701/49 499/702/54 498/703/54 +f 492/704/18 496/705/18 498/706/18 +f 499/707/17 497/708/17 495/709/17 +f 502/710/18 500/711/48 501/712/18 +f 510/713/29 517/714/29 500/715/29 +f 503/716/48 510/717/2 500/711/48 +f 504/718/2 511/719/47 510/717/2 +f 513/720/29 527/721/29 525/722/29 +f 505/723/47 512/724/17 511/719/47 +f 510/713/29 521/725/29 518/726/29 +f 506/727/17 513/728/31 512/724/17 +f 501/729/29 517/714/29 516/730/29 +f 507/731/31 514/732/19 513/728/31 +f 508/733/19 515/734/32 514/735/19 +f 509/736/32 501/712/18 515/734/32 +f 516/737/18 520/738/48 519/739/18 +f 517/740/48 522/741/2 520/738/48 +f 518/742/2 524/743/47 522/741/2 +f 521/744/47 526/745/17 524/743/47 +f 526/745/17 525/746/31 528/747/31 +f 525/746/31 530/748/19 528/747/31 +f 529/749/32 519/739/18 531/750/32 +f 527/751/19 531/750/32 530/752/19 +f 512/753/29 525/722/29 523/754/29 +f 501/729/29 529/755/29 515/756/29 +f 531/757/27 520/758/27 524/759/27 +f 512/753/29 521/725/29 511/760/29 +f 515/756/29 527/721/29 514/761/29 +f 577/762/29 578/763/29 579/764/29 +f 580/765/55 579/766/56 578/767/55 +f 583/768/57 585/769/57 582/770/57 +f 580/771/27 583/772/27 586/773/27 +f 590/774/27 591/775/27 586/773/27 +f 573/776/58 591/777/58 574/778/58 +f 581/779/56 572/780/59 579/766/56 +f 590/781/60 576/782/60 575/783/60 +f 586/784/61 582/770/61 577/785/61 +f 588/786/62 573/787/62 572/780/62 +f 591/777/63 575/783/63 574/778/63 +f 576/782/64 586/784/64 577/785/64 +f 580/765/55 585/769/65 584/788/65 +f 578/763/29 582/789/29 585/790/29 +f 597/791/29 598/792/29 599/793/29 +f 600/794/66 599/795/67 598/796/66 +f 603/797/68 605/798/68 602/799/68 +f 600/800/27 603/801/27 606/802/27 +f 610/803/27 611/804/27 606/802/27 +f 607/805/69 594/806/69 593/807/69 +f 601/808/67 592/809/70 599/795/67 +f 610/810/71 596/811/71 595/812/71 +f 606/813/72 602/799/72 597/814/72 +f 592/809/73 607/815/73 593/816/73 +f 611/817/74 595/812/74 594/806/74 +f 609/818/75 597/814/75 596/811/75 +f 600/794/66 605/798/76 604/819/76 +f 598/792/29 602/820/29 605/821/29 +f 617/822/29 618/823/77 619/824/29 +f 620/825/78 619/826/79 618/827/78 +f 622/828/80 624/829/81 625/830/80 +f 620/831/82 623/832/27 626/833/27 +f 630/834/27 631/835/27 626/833/27 +f 627/836/83 614/837/83 613/838/83 +f 621/839/79 612/840/84 619/826/79 +f 630/841/85 616/842/85 615/843/85 +f 626/844/86 622/828/86 617/845/86 +f 628/846/87 613/847/87 612/840/87 +f 614/837/88 630/841/88 615/843/88 +f 629/848/89 617/845/90 616/842/90 +f 618/827/78 624/829/91 620/825/78 +f 618/823/77 622/849/29 625/850/29 +f 637/851/29 638/852/77 639/853/29 +f 643/854/92 645/855/92 642/856/92 +f 640/857/27 643/858/27 646/859/27 +f 650/860/27 651/861/27 646/859/27 +f 647/862/93 634/863/93 633/864/93 +f 641/865/94 632/866/94 639/867/94 +f 650/868/95 636/869/95 635/870/95 +f 637/871/96 643/854/96 642/856/96 +f 648/872/97 633/873/97 632/866/97 +f 651/874/98 635/870/98 634/863/98 +f 649/875/99 637/871/100 636/869/100 +f 638/876/101 644/877/101 640/878/101 +f 638/852/77 642/879/29 645/880/77 +f 654/881/102 653/882/102 652/883/102 +f 465/61/11 11/884/11 12/62/12 +f 466/63/12 12/62/12 13/64/13 +f 467/65/13 13/64/13 14/66/14 +f 468/67/14 14/66/14 15/68/15 +f 469/69/15 15/68/15 16/70/16 +f 18/72/17 11/885/17 465/73/17 +f 8/75/18 26/886/18 19/76/18 +f 205/78/19 227/341/19 228/79/19 +f 471/81/20 17/394/45 9/82/18 +f 1/84/19 6/88/19 12/85/19 +f 5/87/19 13/90/19 12/85/19 +f 4/89/19 14/92/19 13/90/19 +f 4/89/19 3/94/19 15/91/19 +f 2/93/19 16/96/19 15/91/19 +f 7/95/19 17/887/19 16/96/19 +f 1/84/19 11/86/19 18/97/19 +f 19/888/19 26/101/19 20/100/19 +f 26/101/19 25/889/19 23/890/19 +f 25/889/19 24/891/19 23/890/19 +f 23/890/19 22/892/19 26/101/19 +f 22/892/19 21/99/19 26/101/19 +f 2/102/21 24/113/21 25/103/22 +f 4/105/23 22/114/23 23/106/24 +f 6/108/25 20/116/25 21/109/26 +f 7/104/27 25/103/27 26/111/27 +f 3/107/24 23/106/24 24/113/21 +f 5/110/26 21/109/26 22/114/23 +f 1/115/28 19/893/28 20/116/25 +f 33/117/27 28/894/27 27/118/27 +f 30/120/18 28/895/18 33/121/18 +f 37/123/19 34/132/19 31/124/19 +f 30/126/29 38/129/29 36/127/29 +f 35/125/30 36/127/30 38/129/30 +f 36/130/31 35/125/31 31/124/31 +f 33/121/32 34/132/32 37/123/32 +f 32/119/33 31/124/33 34/132/33 +f 36/130/17 32/131/17 27/133/17 +f 50/135/27 47/142/27 39/136/27 +f 48/138/29 42/896/29 46/139/29 +f 46/139/34 44/141/34 50/135/35 +f 44/141/27 40/897/27 47/142/27 +f 45/143/17 43/137/17 39/144/17 +f 42/146/18 40/898/18 44/141/18 +f 49/140/35 50/135/35 43/137/19 +f 48/138/29 49/140/29 45/143/29 +f 62/148/27 59/155/27 51/149/27 +f 60/151/29 54/899/29 58/152/29 +f 58/152/34 56/154/34 62/148/35 +f 56/154/27 52/900/27 59/155/27 +f 57/156/17 55/150/17 51/157/17 +f 54/159/18 52/901/18 56/154/18 +f 61/153/35 62/148/35 55/150/19 +f 60/151/29 61/153/29 57/156/29 +f 66/161/29 71/173/29 72/162/29 +f 67/164/29 77/179/29 78/165/29 +f 74/167/27 64/902/27 63/168/27 +f 72/162/17 73/169/17 63/170/17 +f 66/172/18 64/903/18 74/167/18 +f 69/174/19 72/162/19 71/173/19 +f 69/174/19 67/177/19 73/169/19 +f 68/176/19 70/175/19 71/173/19 +f 68/176/19 74/167/19 73/169/19 +f 75/178/19 78/165/19 77/179/19 +f 69/181/18 76/180/18 77/179/18 +f 68/183/17 78/165/17 75/178/17 +f 70/185/27 75/178/27 76/180/27 +f 82/187/18 80/904/18 86/188/18 +f 90/190/19 85/905/19 84/191/19 +f 88/193/31 87/192/31 84/191/31 +f 86/188/32 85/905/32 90/190/32 +f 88/193/17 83/194/17 79/195/17 +f 94/197/18 92/906/18 98/198/18 +f 102/200/19 97/907/19 96/201/19 +f 100/203/31 99/202/31 96/201/31 +f 98/198/32 97/907/32 102/200/32 +f 100/203/17 95/204/17 91/205/17 +f 106/207/18 104/908/18 110/208/18 +f 114/210/19 109/909/19 108/211/19 +f 112/213/31 111/212/31 108/211/31 +f 110/208/32 109/909/32 114/210/32 +f 112/213/17 107/214/17 103/215/17 +f 118/217/18 116/910/18 122/218/18 +f 126/220/19 121/911/19 120/221/19 +f 124/223/31 123/222/31 120/221/31 +f 122/218/32 121/911/32 126/220/32 +f 124/223/17 119/224/17 115/225/17 +f 130/227/18 128/912/18 134/228/18 +f 138/230/19 133/913/19 132/231/19 +f 136/233/31 135/232/31 132/231/31 +f 134/228/32 133/913/32 138/230/32 +f 136/233/17 131/234/17 127/235/17 +f 142/237/18 140/914/18 146/238/18 +f 150/240/19 145/915/19 144/241/19 +f 148/243/31 147/242/31 144/241/31 +f 146/238/32 145/915/32 150/240/32 +f 148/243/17 143/244/17 139/245/17 +f 154/247/18 152/916/18 158/248/18 +f 162/250/19 157/917/19 156/251/19 +f 160/253/31 159/252/31 156/251/31 +f 158/248/32 157/917/32 162/250/32 +f 160/253/17 155/254/17 151/255/17 +f 164/257/17 166/260/36 165/258/36 +f 166/260/36 168/262/37 167/261/37 +f 168/262/37 170/264/38 169/263/38 +f 170/264/38 172/266/39 171/265/39 +f 172/266/39 174/289/18 173/267/18 +f 175/268/27 183/278/27 185/269/27 +f 168/272/29 166/918/29 164/919/29 +f 164/919/29 178/274/29 168/272/29 +f 178/274/29 176/273/29 168/272/29 +f 176/273/29 174/288/29 172/920/29 +f 172/920/29 170/271/29 176/273/29 +f 178/274/29 164/919/29 180/275/29 +f 175/268/27 173/280/27 182/277/27 +f 177/270/27 163/293/27 165/921/27 +f 165/921/27 167/922/27 177/270/27 +f 167/922/27 169/279/27 177/270/27 +f 169/279/27 171/923/27 173/280/27 +f 173/280/27 175/268/27 177/270/27 +f 194/281/40 202/924/40 197/282/41 +f 195/925/29 197/926/29 202/284/29 +f 202/284/29 201/927/29 200/285/29 +f 200/285/29 199/928/29 198/286/29 +f 198/286/29 196/929/29 195/925/29 +f 195/925/29 202/284/29 198/286/29 +f 176/273/29 184/294/29 181/287/29 +f 174/289/18 181/930/18 182/290/18 +f 163/259/17 179/931/17 180/291/17 +f 177/270/27 185/269/27 179/292/27 +f 178/274/29 186/276/29 184/294/29 +f 200/295/42 201/304/43 193/296/43 +f 198/298/38 199/306/39 191/299/39 +f 195/301/36 196/307/37 189/302/37 +f 201/304/43 202/932/40 194/305/40 +f 199/306/39 200/295/42 192/297/42 +f 197/282/41 195/301/36 188/303/36 +f 196/307/37 198/298/38 190/300/38 +f 216/308/17 220/387/17 227/309/17 +f 17/887/19 7/95/19 204/933/19 +f 7/95/19 8/98/19 207/312/19 +f 204/933/19 7/95/19 209/934/19 +f 8/98/19 18/97/19 203/935/19 +f 203/935/19 205/936/19 8/98/19 +f 205/936/19 206/311/19 8/98/19 +f 207/312/19 208/937/19 7/95/19 +f 208/937/19 209/934/19 7/95/19 +f 211/313/18 219/317/18 483/314/18 +f 211/313/18 203/938/18 226/316/18 +f 210/318/18 225/325/18 489/319/18 +f 203/321/44 211/389/44 216/322/44 +f 210/318/18 204/939/18 232/324/18 +f 215/326/44 214/385/44 207/327/44 +f 208/329/44 213/381/44 212/330/44 +f 209/332/19 231/346/19 232/333/19 +f 204/335/44 210/392/44 9/336/44 +f 218/338/44 217/376/44 219/339/44 +f 227/341/44 220/375/44 221/342/44 +f 229/343/44 222/373/44 223/344/44 +f 231/346/44 224/371/44 225/347/44 +f 215/348/18 206/940/18 228/349/18 +f 215/348/18 221/350/18 485/351/18 +f 214/353/17 222/383/17 229/354/17 +f 18/356/19 218/338/19 226/340/19 +f 207/358/19 229/343/19 230/345/19 +f 213/360/18 208/941/18 230/361/18 +f 213/360/18 223/362/18 487/363/18 +f 10/365/17 217/391/17 218/366/17 +f 212/367/17 224/379/17 231/368/17 +f 488/370/29 489/942/29 225/347/29 +f 486/372/29 487/943/29 223/344/29 +f 484/374/29 485/944/29 221/342/29 +f 217/376/29 482/945/29 483/377/29 +f 480/378/17 488/946/17 224/379/17 +f 479/380/29 480/947/29 212/330/29 +f 478/382/17 486/948/17 222/383/17 +f 477/384/29 478/949/29 214/385/29 +f 476/386/17 484/950/17 220/387/17 +f 475/388/29 476/951/29 216/322/29 +f 474/390/17 482/952/17 217/391/17 +f 210/392/29 481/953/29 473/393/29 +f 472/74/17 474/390/17 10/365/17 +f 471/81/20 470/71/16 16/70/16 +f 244/395/12 243/954/11 465/61/11 +f 245/396/13 244/395/12 466/63/12 +f 246/397/14 245/396/13 467/65/13 +f 247/398/15 246/397/14 468/67/14 +f 248/399/16 247/398/15 469/69/15 +f 465/73/17 243/955/17 250/400/17 +f 251/401/18 258/956/18 240/402/18 +f 460/404/2 459/661/2 437/405/2 +f 471/81/20 473/83/18 241/407/18 +f 233/409/2 243/957/2 244/410/2 +f 244/410/2 245/413/2 237/412/2 +f 245/413/2 246/415/2 236/414/2 +f 246/415/2 247/417/2 235/416/2 +f 247/417/2 248/419/2 234/418/2 +f 248/419/2 249/958/2 239/420/2 +f 250/421/2 243/957/2 233/409/2 +f 257/425/2 258/959/2 255/423/2 +f 258/959/2 251/960/2 252/961/2 +f 253/962/2 258/959/2 252/961/2 +f 253/962/2 254/963/2 258/959/2 +f 254/963/2 255/423/2 258/959/2 +f 257/426/22 256/436/21 234/427/21 +f 255/429/24 254/437/23 236/430/23 +f 253/432/26 252/438/25 238/433/25 +f 240/435/27 258/964/27 257/426/27 +f 256/436/21 255/429/24 235/431/24 +f 254/437/23 253/432/26 237/434/26 +f 252/438/25 251/965/28 233/439/28 +f 259/440/27 260/966/27 265/441/27 +f 265/443/18 260/967/18 262/444/18 +f 263/446/2 266/455/2 269/447/2 +f 268/449/29 270/452/29 262/450/29 +f 270/452/46 268/449/46 267/448/46 +f 263/446/47 267/448/47 268/453/47 +f 269/447/48 266/455/48 265/443/48 +f 266/455/49 263/446/49 264/442/49 +f 259/456/17 264/454/17 268/453/17 +f 271/458/27 279/465/27 282/459/27 +f 280/461/29 281/464/29 278/462/29 +f 282/459/50 276/466/51 278/462/51 +f 279/465/27 272/968/27 276/466/27 +f 271/467/17 275/460/17 277/468/17 +f 276/466/18 272/969/18 274/470/18 +f 275/460/2 282/459/50 281/464/50 +f 277/468/29 281/464/29 280/461/29 +f 283/472/27 291/479/27 294/473/27 +f 292/475/29 293/478/29 290/476/29 +f 294/473/50 288/480/51 290/476/51 +f 291/479/27 284/970/27 288/480/27 +f 283/481/17 287/474/17 289/482/17 +f 288/480/18 284/971/18 286/484/18 +f 287/474/2 294/473/50 293/478/50 +f 289/482/29 293/478/29 292/475/29 +f 304/486/29 303/498/29 298/487/29 +f 310/489/29 309/503/29 299/490/29 +f 295/492/27 296/972/27 306/493/27 +f 295/495/17 305/494/17 304/486/17 +f 306/493/18 296/973/18 298/497/18 +f 303/498/2 304/486/2 301/499/2 +f 304/486/2 305/494/2 299/501/2 +f 306/493/2 303/498/2 302/500/2 +f 305/494/2 306/493/2 300/502/2 +f 309/503/2 310/489/2 307/504/2 +f 309/503/18 308/505/18 301/506/18 +f 307/504/17 310/489/17 300/508/17 +f 308/505/27 307/504/27 302/510/27 +f 318/512/18 312/974/18 314/513/18 +f 316/515/2 317/975/2 322/516/2 +f 316/515/47 319/517/47 320/518/47 +f 322/516/48 317/975/48 318/512/48 +f 311/520/17 315/519/17 320/518/17 +f 330/522/18 324/976/18 326/523/18 +f 328/525/2 329/977/2 334/526/2 +f 328/525/47 331/527/47 332/528/47 +f 334/526/48 329/977/48 330/522/48 +f 323/530/17 327/529/17 332/528/17 +f 342/532/18 336/978/18 338/533/18 +f 340/535/2 341/979/2 346/536/2 +f 340/535/47 343/537/47 344/538/47 +f 346/536/48 341/979/48 342/532/48 +f 335/540/17 339/539/17 344/538/17 +f 354/542/18 348/980/18 350/543/18 +f 352/545/2 353/981/2 358/546/2 +f 352/545/47 355/547/47 356/548/47 +f 358/546/48 353/981/48 354/542/48 +f 347/550/17 351/549/17 356/548/17 +f 366/552/18 360/982/18 362/553/18 +f 364/555/2 365/983/2 370/556/2 +f 364/555/47 367/557/47 368/558/47 +f 370/556/48 365/983/48 366/552/48 +f 359/560/17 363/559/17 368/558/17 +f 378/562/18 372/984/18 374/563/18 +f 376/565/2 377/985/2 382/566/2 +f 376/565/47 379/567/47 380/568/47 +f 382/566/48 377/985/48 378/562/48 +f 371/570/17 375/569/17 380/568/17 +f 390/572/18 384/986/18 386/573/18 +f 388/575/2 389/987/2 394/576/2 +f 388/575/47 391/577/47 392/578/47 +f 394/576/48 389/987/48 390/572/48 +f 383/580/17 387/579/17 392/578/17 +f 397/582/41 398/586/41 396/583/17 +f 399/585/40 400/588/40 398/586/41 +f 401/587/43 402/590/43 400/588/40 +f 403/589/42 404/592/42 402/590/43 +f 405/591/18 406/614/18 404/592/42 +f 417/593/27 415/988/27 407/594/27 +f 396/601/29 398/989/29 400/596/29 +f 400/596/29 402/990/29 404/597/29 +f 404/597/29 406/612/29 408/598/29 +f 408/598/29 410/599/29 396/601/29 +f 396/601/29 400/596/29 408/598/29 +f 410/599/29 418/991/29 412/600/29 +f 407/594/27 415/988/27 414/602/27 +f 397/992/27 395/617/27 409/595/27 +f 409/595/27 407/594/27 405/603/27 +f 405/603/27 403/993/27 401/604/27 +f 401/604/27 399/994/27 397/992/27 +f 397/992/27 409/595/27 401/604/27 +f 419/605/36 429/631/36 434/606/37 +f 434/610/29 429/995/29 427/996/29 +f 427/996/29 428/997/29 434/610/29 +f 428/997/29 430/608/29 434/610/29 +f 430/608/29 431/998/29 432/609/29 +f 432/609/29 433/999/29 434/610/29 +f 413/611/29 416/618/29 408/598/29 +f 414/613/18 413/1000/18 406/614/18 +f 412/615/17 411/1001/17 395/584/17 +f 411/616/27 417/593/27 409/595/27 +f 416/618/29 418/991/29 410/599/29 +f 425/619/38 433/629/38 432/620/39 +f 423/622/42 431/630/42 430/623/43 +f 421/625/40 428/632/40 427/626/41 +f 426/628/37 434/1002/37 433/629/38 +f 424/621/39 432/620/39 431/630/42 +f 420/627/41 427/626/41 429/631/36 +f 422/624/43 430/623/43 428/632/40 +f 459/633/17 452/693/17 448/634/17 +f 240/422/2 239/420/2 439/1003/2 +f 239/420/2 249/958/2 436/1004/2 +f 441/1005/2 239/420/2 436/1004/2 +f 441/1005/2 440/1006/2 239/420/2 +f 440/1006/2 439/1003/2 239/420/2 +f 240/422/2 439/1003/2 438/1007/2 +f 438/1007/2 437/1008/2 240/422/2 +f 437/1008/2 435/636/2 240/422/2 +f 483/314/18 451/1009/18 443/637/18 +f 443/637/18 451/1009/18 458/638/18 +f 489/319/18 457/1010/18 442/640/18 +f 435/641/52 437/1011/52 448/642/52 +f 442/640/18 457/1010/18 464/644/18 +f 439/646/52 446/692/52 447/647/52 +f 440/649/52 441/1012/52 444/650/52 +f 464/652/2 463/667/2 441/653/2 +f 241/655/52 442/695/52 436/656/52 +f 451/658/52 449/689/52 450/659/52 +f 459/661/52 460/404/52 453/662/52 +f 461/664/52 462/678/52 455/665/52 +f 463/667/52 464/652/52 457/668/52 +f 447/670/18 453/1013/18 460/671/18 +f 485/351/18 453/1013/18 447/670/18 +f 461/673/17 454/691/17 446/674/17 +f 458/660/2 450/659/2 250/676/2 +f 462/678/2 461/664/2 439/679/2 +f 445/681/18 455/1014/18 462/682/18 +f 487/363/18 455/1014/18 445/681/18 +f 450/684/17 449/694/17 242/685/17 +f 463/686/17 456/690/17 444/687/17 +f 457/668/29 489/942/29 488/370/29 +f 455/665/29 487/943/29 486/372/29 +f 453/662/29 485/944/29 484/374/29 +f 483/377/29 482/945/29 449/689/29 +f 456/690/17 488/946/17 480/378/17 +f 444/650/29 480/947/29 479/380/29 +f 454/691/17 486/948/17 478/382/17 +f 446/692/29 478/949/29 477/384/29 +f 452/693/17 484/950/17 476/386/17 +f 448/642/29 476/951/29 475/388/29 +f 449/694/17 482/952/17 474/390/17 +f 473/393/29 481/953/29 442/695/29 +f 242/685/17 474/390/17 472/74/17 +f 248/399/16 470/71/16 471/81/20 +f 490/696/53 491/1015/53 493/697/46 +f 493/697/46 495/700/2 494/699/2 +f 495/700/2 497/1016/49 496/701/49 +f 496/701/49 497/1016/49 499/702/54 +f 498/706/18 490/1017/18 492/704/18 +f 492/704/18 494/1018/18 496/705/18 +f 495/709/17 493/1019/17 491/1020/17 +f 491/1020/17 499/707/17 495/709/17 +f 502/710/18 503/716/48 500/711/48 +f 510/713/29 518/726/29 517/714/29 +f 503/716/48 504/718/2 510/717/2 +f 504/718/2 505/723/47 511/719/47 +f 513/720/29 514/761/29 527/721/29 +f 505/723/47 506/727/17 512/724/17 +f 510/713/29 511/760/29 521/725/29 +f 506/727/17 507/731/31 513/728/31 +f 501/729/29 500/715/29 517/714/29 +f 507/731/31 508/1021/19 514/732/19 +f 508/733/19 509/736/32 515/734/32 +f 509/736/32 502/710/18 501/712/18 +f 516/737/18 517/740/48 520/738/48 +f 517/740/48 518/742/2 522/741/2 +f 518/742/2 521/744/47 524/743/47 +f 521/744/47 523/1022/17 526/745/17 +f 526/745/17 523/1022/17 525/746/31 +f 525/746/31 527/1023/19 530/748/19 +f 529/749/32 516/737/18 519/739/18 +f 527/751/19 529/749/32 531/750/32 +f 512/753/29 513/720/29 525/722/29 +f 501/729/29 516/730/29 529/755/29 +f 531/757/27 519/1024/27 520/758/27 +f 520/758/27 522/1025/27 524/759/27 +f 524/759/27 526/1026/27 531/757/27 +f 526/1026/27 528/1027/27 531/757/27 +f 528/1027/27 530/1028/27 531/757/27 +f 512/753/29 523/754/29 521/725/29 +f 515/756/29 529/755/29 527/721/29 +f 579/764/29 572/1029/29 577/762/29 +f 572/1029/29 573/1030/29 577/762/29 +f 573/1030/29 574/1031/29 577/762/29 +f 574/1031/29 575/1032/29 577/762/29 +f 575/1032/29 576/1033/29 577/762/29 +f 580/765/55 581/779/56 579/766/56 +f 583/768/57 584/788/57 585/769/57 +f 580/771/27 584/1034/27 583/772/27 +f 591/775/27 587/1035/27 586/773/27 +f 587/1035/27 588/1036/27 586/773/27 +f 588/1036/27 581/1037/27 586/773/27 +f 581/1037/27 580/771/27 586/773/27 +f 586/773/27 589/1038/27 590/774/27 +f 573/776/58 587/1039/58 591/777/58 +f 581/779/56 588/786/59 572/780/59 +f 590/781/60 589/1040/60 576/782/60 +f 586/784/61 583/768/61 582/770/61 +f 588/786/62 587/1041/62 573/787/62 +f 591/777/63 590/781/63 575/783/63 +f 576/782/64 589/1040/64 586/784/64 +f 580/765/55 578/767/55 585/769/65 +f 578/763/29 577/762/29 582/789/29 +f 599/793/29 592/1042/29 597/791/29 +f 592/1042/29 593/1043/29 597/791/29 +f 593/1043/29 594/1044/29 597/791/29 +f 594/1044/29 595/1045/29 597/791/29 +f 595/1045/29 596/1046/29 597/791/29 +f 600/794/66 601/808/67 599/795/67 +f 603/797/68 604/819/68 605/798/68 +f 600/800/27 604/1047/27 603/801/27 +f 611/804/27 607/1048/27 606/802/27 +f 607/1048/27 608/1049/27 606/802/27 +f 608/1049/27 601/1050/27 606/802/27 +f 601/1050/27 600/800/27 606/802/27 +f 606/802/27 609/1051/27 610/803/27 +f 607/805/69 611/817/69 594/806/69 +f 601/808/67 608/1052/70 592/809/70 +f 610/810/71 609/818/71 596/811/71 +f 606/813/72 603/797/72 602/799/72 +f 592/809/73 608/1052/73 607/815/73 +f 611/817/74 610/810/74 595/812/74 +f 609/818/75 606/813/75 597/814/75 +f 600/794/66 598/796/66 605/798/76 +f 598/792/29 597/791/29 602/820/29 +f 619/824/29 612/1053/29 617/822/29 +f 612/1053/29 613/1054/29 617/822/29 +f 613/1054/29 614/1055/29 617/822/29 +f 614/1055/29 615/1056/29 617/822/29 +f 615/1056/29 616/1057/29 617/822/29 +f 620/825/78 621/839/79 619/826/79 +f 622/828/80 623/1058/81 624/829/81 +f 620/831/82 624/1059/27 623/832/27 +f 631/835/27 627/1060/27 626/833/27 +f 627/1060/27 628/1061/27 626/833/27 +f 628/1061/27 621/1062/27 626/833/27 +f 621/1062/27 620/831/82 626/833/27 +f 626/833/27 629/1063/103 630/834/27 +f 627/836/83 631/1064/83 614/837/83 +f 621/839/79 628/846/84 612/840/84 +f 630/841/85 629/848/85 616/842/85 +f 626/844/86 623/1058/86 622/828/86 +f 628/846/87 627/1065/87 613/847/87 +f 614/837/88 631/1064/88 630/841/88 +f 629/848/89 626/844/89 617/845/90 +f 618/827/78 625/830/91 624/829/91 +f 618/823/77 617/822/29 622/849/29 +f 639/853/29 632/1066/29 637/851/29 +f 632/1066/29 633/1067/29 637/851/29 +f 633/1067/29 634/1068/29 637/851/29 +f 634/1068/29 635/1069/29 637/851/29 +f 635/1069/29 636/1070/29 637/851/29 +f 643/854/92 644/877/92 645/855/92 +f 640/857/27 644/1071/27 643/858/27 +f 651/861/27 647/1072/27 646/859/27 +f 647/1072/27 648/1073/27 646/859/27 +f 648/1073/27 641/1074/27 646/859/27 +f 641/1074/27 640/857/27 646/859/27 +f 646/859/27 649/1075/82 650/860/27 +f 647/862/93 651/874/93 634/863/93 +f 641/865/94 648/872/94 632/866/94 +f 650/868/95 649/875/95 636/869/95 +f 637/871/96 646/1076/96 643/854/96 +f 648/872/97 647/1077/97 633/873/97 +f 651/874/98 650/868/98 635/870/98 +f 649/875/99 646/1076/99 637/871/100 +f 638/876/101 645/855/101 644/877/101 +f 638/852/77 637/851/29 642/879/29 +f 654/881/102 655/1078/102 653/882/102 +o doorRight +v 0.299220 0.487402 -3.251414 +v 0.299220 5.590070 -1.004025 +v 0.299220 5.128570 -1.909768 +v 0.299220 4.409768 -2.628571 +v 0.299220 3.503919 -3.090124 +v 0.299220 2.496066 -3.251015 +v 0.299220 5.679564 -0.438986 +v 0.299220 0.487402 -0.438985 +v 0.149610 5.900837 -0.125000 +v 0.149610 0.054715 -0.125000 +v 0.299220 0.054715 -3.440433 +v 0.299220 2.511072 -3.439998 +v 0.299220 3.563152 -3.272047 +v 0.299220 4.522236 -2.783369 +v 0.299220 5.283369 -2.022236 +v 0.299220 5.772047 -1.063152 +v 0.299220 5.900837 -0.250000 +v 0.299220 0.054715 -0.250000 +v 0.231315 0.487402 -3.251414 +v 0.231315 2.496066 -3.251015 +v 0.231315 3.503919 -3.090124 +v 0.231315 4.409768 -2.628571 +v 0.231315 5.128570 -1.909768 +v 0.231315 5.590070 -1.004025 +v 0.231315 5.679564 -0.438986 +v 0.231315 0.487402 -0.438985 +v 0.204275 1.917457 -1.651271 +v 0.204275 2.047506 -1.651271 +v 0.204275 1.917457 -1.142414 +v 0.204275 2.047506 -1.142414 +v 0.261126 1.933194 -1.635535 +v 0.245389 1.917457 -1.651271 +v 0.245389 2.047506 -1.651271 +v 0.261126 2.031770 -1.635535 +v 0.261126 1.933194 -1.158151 +v 0.245389 1.917457 -1.142414 +v 0.261126 2.031770 -1.158151 +v 0.245389 2.047506 -1.142414 +v 0.215124 3.126893 -0.898361 +v 0.215124 3.628286 -0.898361 +v 0.215124 3.126893 -0.736489 +v 0.215124 3.628286 -0.736489 +v 0.294289 3.126893 -0.898361 +v 0.247374 3.628286 -0.898361 +v 0.294289 3.126893 -0.736489 +v 0.247374 3.628286 -0.736489 +v 0.215124 3.447602 -0.898361 +v 0.215124 3.447602 -0.736489 +v 0.294289 3.447602 -0.736489 +v 0.294289 3.447602 -0.898361 +v 0.215124 3.126893 -1.339800 +v 0.215124 3.628286 -1.339800 +v 0.215124 3.126893 -1.177929 +v 0.215124 3.628286 -1.177929 +v 0.294289 3.126893 -1.339800 +v 0.247374 3.628286 -1.339800 +v 0.294289 3.126893 -1.177929 +v 0.247374 3.628286 -1.177929 +v 0.215124 3.447602 -1.339800 +v 0.215124 3.447602 -1.177929 +v 0.294289 3.447602 -1.177929 +v 0.294289 3.447602 -1.339800 +v 0.110842 1.775868 -3.124604 +v 0.110842 2.305447 -3.124604 +v 0.110842 1.775868 -1.892389 +v 0.110842 2.305447 -1.892389 +v 0.303721 1.835501 -3.064971 +v 0.303721 2.245814 -3.064971 +v 0.303721 1.835501 -1.952022 +v 0.303721 2.245814 -1.952022 +v 0.303721 2.305447 -1.892389 +v 0.303721 1.775868 -1.892389 +v 0.303721 1.775868 -3.124604 +v 0.303721 2.305447 -3.124604 +v 0.237602 2.245814 -1.952022 +v 0.237602 1.835501 -1.952022 +v 0.237602 1.835501 -3.064971 +v 0.237602 2.245814 -3.064971 +v 0.185097 0.938915 -3.260309 +v 0.185097 1.140242 -3.260309 +v 0.185097 0.938915 -0.391829 +v 0.185097 1.140242 -0.391829 +v 0.250002 0.938915 -3.260309 +v 0.279439 0.968351 -3.260309 +v 0.279439 1.110806 -3.260309 +v 0.250002 1.140242 -3.260309 +v 0.279439 0.968351 -0.391829 +v 0.250002 0.938915 -0.391829 +v 0.250002 1.140242 -0.391829 +v 0.279439 1.110806 -0.391829 +v 0.185097 1.623428 -3.260309 +v 0.185097 1.824755 -3.260309 +v 0.185097 1.623428 -0.391829 +v 0.185097 1.824755 -0.391829 +v 0.250002 1.623428 -3.260309 +v 0.279439 1.652864 -3.260309 +v 0.279439 1.795319 -3.260309 +v 0.250002 1.824755 -3.260309 +v 0.279439 1.652864 -0.391829 +v 0.250002 1.623428 -0.391829 +v 0.250002 1.824755 -0.391829 +v 0.279439 1.795319 -0.391829 +v 0.185097 2.307941 -3.260309 +v 0.185097 2.509268 -3.260309 +v 0.185097 2.307941 -0.391829 +v 0.185097 2.509268 -0.391829 +v 0.250002 2.307941 -3.260309 +v 0.279439 2.337377 -3.260309 +v 0.279439 2.479832 -3.260309 +v 0.250002 2.509268 -3.260309 +v 0.279439 2.337377 -0.391829 +v 0.250002 2.307941 -0.391829 +v 0.250002 2.509268 -0.391829 +v 0.279439 2.479832 -0.391829 +v 0.185097 2.992454 -3.260309 +v 0.185097 3.193781 -3.260309 +v 0.185097 2.992454 -0.391829 +v 0.185097 3.193781 -0.391829 +v 0.250002 2.992454 -3.260309 +v 0.279439 3.021890 -3.260309 +v 0.279439 3.164345 -3.260309 +v 0.250002 3.193781 -3.260309 +v 0.279439 3.021890 -0.391829 +v 0.250002 2.992454 -0.391829 +v 0.250002 3.193781 -0.391829 +v 0.279439 3.164345 -0.391829 +v 0.185097 3.676967 -3.079826 +v 0.185097 3.878294 -3.079826 +v 0.185097 3.676967 -0.391829 +v 0.185097 3.878294 -0.391829 +v 0.250002 3.676967 -3.079826 +v 0.279439 3.706403 -3.079826 +v 0.279439 3.848858 -3.079826 +v 0.250002 3.878294 -3.079826 +v 0.279439 3.706403 -0.391829 +v 0.250002 3.676967 -0.391829 +v 0.250002 3.878294 -0.391829 +v 0.279439 3.848858 -0.391829 +v 0.185097 4.361480 -2.726382 +v 0.185097 4.562807 -2.726382 +v 0.185097 4.361480 -0.391829 +v 0.185097 4.562807 -0.391829 +v 0.250002 4.361480 -2.726382 +v 0.279439 4.390916 -2.726382 +v 0.279439 4.533370 -2.726382 +v 0.250002 4.562807 -2.726382 +v 0.279439 4.390916 -0.391829 +v 0.250002 4.361480 -0.391829 +v 0.250002 4.562807 -0.391829 +v 0.279439 4.533370 -0.391829 +v 0.185097 5.045993 -2.044939 +v 0.185097 5.247320 -2.044939 +v 0.185097 5.045993 -0.391829 +v 0.185097 5.247320 -0.391829 +v 0.250002 5.045993 -2.044939 +v 0.279439 5.075429 -2.044939 +v 0.279439 5.217884 -2.044939 +v 0.250002 5.247320 -2.044939 +v 0.279439 5.075429 -0.391829 +v 0.250002 5.045993 -0.391829 +v 0.250002 5.247320 -0.391829 +v 0.279439 5.217884 -0.391829 +v 0.315590 0.554430 -1.179831 +v 0.315590 0.554430 -0.490474 +v 0.381347 0.554430 -1.179831 +v 0.381347 0.554430 -0.490474 +v 0.427845 0.600927 -1.179831 +v 0.427845 0.600927 -0.490474 +v 0.427845 0.666685 -1.179831 +v 0.427845 0.666685 -0.490474 +v 0.381347 0.713183 -1.179831 +v 0.381347 0.713183 -0.490474 +v 0.315590 0.713183 -1.179831 +v 0.315590 0.713183 -0.490474 +v 0.269092 0.666685 -1.179831 +v 0.269092 0.666685 -0.490474 +v 0.269092 0.600927 -1.179831 +v 0.269092 0.600927 -0.490474 +v 0.212011 0.554430 -1.179831 +v 0.212011 0.554430 -0.490474 +v 0.212011 0.713183 -0.490474 +v 0.212011 0.713183 -1.179831 +v 0.212011 0.666685 -1.179831 +v 0.212011 0.666685 -0.490474 +v 0.212011 0.600927 -1.179831 +v 0.212011 0.600927 -0.490474 +v 0.323809 0.574274 -3.311587 +v 0.373128 0.574274 -3.311587 +v 0.408001 0.609147 -3.311587 +v 0.408001 0.658465 -3.311587 +v 0.373128 0.693339 -3.311587 +v 0.323809 0.693339 -3.311587 +v 0.288936 0.658465 -3.311587 +v 0.288936 0.609147 -3.311587 +v 0.373127 0.574274 -0.452471 +v 0.408000 0.609147 -0.452471 +v 0.323808 0.574274 -0.452471 +v 0.408000 0.658465 -0.452471 +v 0.373127 0.693339 -0.452471 +v 0.323808 0.693339 -0.452471 +v 0.288935 0.658465 -0.452471 +v 0.288935 0.609147 -0.452471 +v 0.149610 5.165501 -0.125000 +v 0.149610 0.790051 -0.125000 +v 0.149610 4.436259 -0.125000 +v 0.149610 3.707017 -0.125000 +v 0.149610 2.977776 -0.125000 +v 0.149610 2.248534 -0.125000 +v 0.149610 1.519293 -0.125000 +v 0.299220 5.165501 -0.250000 +v 0.299220 0.790051 -0.250000 +v 0.299220 4.436259 -0.250000 +v 0.299220 3.707017 -0.250000 +v 0.299220 2.977776 -0.250000 +v 0.299220 2.248534 -0.250000 +v 0.299220 1.519293 -0.250000 +v 0.149610 5.900837 0.125000 +v 0.299220 5.900837 0.000000 +v 0.149610 1.519293 0.125000 +v 0.149610 0.790051 0.125000 +v 0.299220 0.790051 0.000000 +v 0.299220 1.519293 0.000000 +v 0.299220 2.248534 0.000000 +v 0.149610 2.248534 0.125000 +v 0.149610 2.977776 0.125000 +v 0.299220 2.977776 0.000000 +v 0.299220 3.707017 0.000000 +v 0.149610 3.707017 0.125000 +v 0.149610 4.436259 0.125000 +v 0.299220 4.436259 0.000000 +v 0.299220 5.165501 0.000000 +v 0.149610 5.165501 0.125000 +v -0.299220 0.487402 -3.251414 +v -0.299220 5.590070 -1.004025 +v -0.299220 5.128570 -1.909768 +v -0.299220 4.409768 -2.628571 +v -0.299220 3.503919 -3.090124 +v -0.299220 2.496066 -3.251015 +v -0.299220 5.679564 -0.438986 +v -0.299220 0.487402 -0.438985 +v -0.149610 5.900837 -0.125000 +v -0.149610 0.054715 -0.125000 +v -0.299220 0.054715 -3.440433 +v -0.299220 2.511072 -3.439998 +v -0.299220 3.563152 -3.272047 +v -0.299220 4.522236 -2.783369 +v -0.299220 5.283369 -2.022236 +v -0.299220 5.772047 -1.063152 +v -0.299220 5.900837 -0.250000 +v -0.299220 0.054715 -0.250000 +v -0.231315 0.487402 -3.251414 +v -0.231315 2.496066 -3.251015 +v -0.231315 3.503919 -3.090124 +v -0.231315 4.409768 -2.628571 +v -0.231315 5.128570 -1.909768 +v -0.231315 5.590070 -1.004025 +v -0.231315 5.679564 -0.438986 +v -0.231315 0.487402 -0.438985 +v -0.204275 1.917457 -1.651271 +v -0.204275 2.047506 -1.651271 +v -0.204275 1.917457 -1.142414 +v -0.204275 2.047506 -1.142414 +v -0.261126 1.933194 -1.635535 +v -0.245389 1.917457 -1.651271 +v -0.245389 2.047506 -1.651271 +v -0.261126 2.031770 -1.635535 +v -0.261126 1.933194 -1.158151 +v -0.245389 1.917457 -1.142414 +v -0.261126 2.031770 -1.158151 +v -0.245389 2.047506 -1.142414 +v -0.215124 3.126893 -0.898361 +v -0.215124 3.628286 -0.898361 +v -0.215124 3.126893 -0.736489 +v -0.215124 3.628286 -0.736489 +v -0.294289 3.126893 -0.898361 +v -0.247374 3.628286 -0.898361 +v -0.294289 3.126893 -0.736489 +v -0.247374 3.628286 -0.736489 +v -0.215124 3.447602 -0.898361 +v -0.215124 3.447602 -0.736489 +v -0.294289 3.447602 -0.736489 +v -0.294289 3.447602 -0.898361 +v -0.215124 3.126893 -1.339800 +v -0.215124 3.628286 -1.339800 +v -0.215124 3.126893 -1.177929 +v -0.215124 3.628286 -1.177929 +v -0.294289 3.126893 -1.339800 +v -0.247374 3.628286 -1.339800 +v -0.294289 3.126893 -1.177929 +v -0.247374 3.628286 -1.177929 +v -0.215124 3.447602 -1.339800 +v -0.215124 3.447602 -1.177929 +v -0.294289 3.447602 -1.177929 +v -0.294289 3.447602 -1.339800 +v -0.110842 1.775868 -3.124604 +v -0.110842 2.305447 -3.124604 +v -0.110842 1.775868 -1.892389 +v -0.110842 2.305447 -1.892389 +v -0.303721 1.835501 -3.064971 +v -0.303721 2.245814 -3.064971 +v -0.303721 1.835501 -1.952022 +v -0.303721 2.245814 -1.952022 +v -0.303721 2.305447 -1.892389 +v -0.303721 1.775868 -1.892389 +v -0.303721 1.775868 -3.124604 +v -0.303721 2.305447 -3.124604 +v -0.237602 2.245814 -1.952022 +v -0.237602 1.835501 -1.952022 +v -0.237602 1.835501 -3.064971 +v -0.237602 2.245814 -3.064971 +v -0.185097 0.938915 -3.260309 +v -0.185097 1.140242 -3.260309 +v -0.185097 0.938915 -0.391829 +v -0.185097 1.140242 -0.391829 +v -0.250002 0.938915 -3.260309 +v -0.279439 0.968351 -3.260309 +v -0.279439 1.110806 -3.260309 +v -0.250002 1.140242 -3.260309 +v -0.279439 0.968351 -0.391829 +v -0.250002 0.938915 -0.391829 +v -0.250002 1.140242 -0.391829 +v -0.279439 1.110806 -0.391829 +v -0.185097 1.623428 -3.260309 +v -0.185097 1.824755 -3.260309 +v -0.185097 1.623428 -0.391829 +v -0.185097 1.824755 -0.391829 +v -0.250002 1.623428 -3.260309 +v -0.279439 1.652864 -3.260309 +v -0.279439 1.795319 -3.260309 +v -0.250002 1.824755 -3.260309 +v -0.279439 1.652864 -0.391829 +v -0.250002 1.623428 -0.391829 +v -0.250002 1.824755 -0.391829 +v -0.279439 1.795319 -0.391829 +v -0.185097 2.307941 -3.260309 +v -0.185097 2.509268 -3.260309 +v -0.185097 2.307941 -0.391829 +v -0.185097 2.509268 -0.391829 +v -0.250002 2.307941 -3.260309 +v -0.279439 2.337377 -3.260309 +v -0.279439 2.479832 -3.260309 +v -0.250002 2.509268 -3.260309 +v -0.279439 2.337377 -0.391829 +v -0.250002 2.307941 -0.391829 +v -0.250002 2.509268 -0.391829 +v -0.279439 2.479832 -0.391829 +v -0.185097 2.992454 -3.260309 +v -0.185097 3.193781 -3.260309 +v -0.185097 2.992454 -0.391829 +v -0.185097 3.193781 -0.391829 +v -0.250002 2.992454 -3.260309 +v -0.279439 3.021890 -3.260309 +v -0.279439 3.164345 -3.260309 +v -0.250002 3.193781 -3.260309 +v -0.279439 3.021890 -0.391829 +v -0.250002 2.992454 -0.391829 +v -0.250002 3.193781 -0.391829 +v -0.279439 3.164345 -0.391829 +v -0.185097 3.676967 -3.079826 +v -0.185097 3.878294 -3.079826 +v -0.185097 3.676967 -0.391829 +v -0.185097 3.878294 -0.391829 +v -0.250002 3.676967 -3.079826 +v -0.279439 3.706403 -3.079826 +v -0.279439 3.848858 -3.079826 +v -0.250002 3.878294 -3.079826 +v -0.279439 3.706403 -0.391829 +v -0.250002 3.676967 -0.391829 +v -0.250002 3.878294 -0.391829 +v -0.279439 3.848858 -0.391829 +v -0.185097 4.361480 -2.726382 +v -0.185097 4.562807 -2.726382 +v -0.185097 4.361480 -0.391829 +v -0.185097 4.562807 -0.391829 +v -0.250002 4.361480 -2.726382 +v -0.279439 4.390916 -2.726382 +v -0.279439 4.533370 -2.726382 +v -0.250002 4.562807 -2.726382 +v -0.279439 4.390916 -0.391829 +v -0.250002 4.361480 -0.391829 +v -0.250002 4.562807 -0.391829 +v -0.279439 4.533370 -0.391829 +v -0.185097 5.045993 -2.044939 +v -0.185097 5.247320 -2.044939 +v -0.185097 5.045993 -0.391829 +v -0.185097 5.247320 -0.391829 +v -0.250002 5.045993 -2.044939 +v -0.279439 5.075429 -2.044939 +v -0.279439 5.217884 -2.044939 +v -0.250002 5.247320 -2.044939 +v -0.279439 5.075429 -0.391829 +v -0.250002 5.045993 -0.391829 +v -0.250002 5.247320 -0.391829 +v -0.279439 5.217884 -0.391829 +v -0.315590 0.554430 -1.179831 +v -0.315590 0.554430 -0.490474 +v -0.381347 0.554430 -1.179831 +v -0.381347 0.554430 -0.490474 +v -0.427845 0.600927 -1.179831 +v -0.427845 0.600927 -0.490474 +v -0.427845 0.666685 -1.179831 +v -0.427845 0.666685 -0.490474 +v -0.381347 0.713183 -1.179831 +v -0.381347 0.713183 -0.490474 +v -0.315590 0.713183 -1.179831 +v -0.315590 0.713183 -0.490474 +v -0.269092 0.666685 -1.179831 +v -0.269092 0.666685 -0.490474 +v -0.269092 0.600927 -1.179831 +v -0.269092 0.600927 -0.490474 +v -0.212011 0.554430 -1.179831 +v -0.212011 0.554430 -0.490474 +v -0.212011 0.713183 -0.490474 +v -0.212011 0.713183 -1.179831 +v -0.212011 0.666685 -1.179831 +v -0.212011 0.666685 -0.490474 +v -0.212011 0.600927 -1.179831 +v -0.212011 0.600927 -0.490474 +v -0.323809 0.574274 -3.311587 +v -0.373128 0.574274 -3.311587 +v -0.408001 0.609147 -3.311587 +v -0.408001 0.658465 -3.311587 +v -0.373128 0.693339 -3.311587 +v -0.323809 0.693339 -3.311587 +v -0.288936 0.658465 -3.311587 +v -0.288936 0.609147 -3.311587 +v -0.373127 0.574274 -0.452471 +v -0.408000 0.609147 -0.452471 +v -0.323808 0.574274 -0.452471 +v -0.408000 0.658465 -0.452471 +v -0.373127 0.693339 -0.452471 +v -0.323808 0.693339 -0.452471 +v -0.288935 0.658465 -0.452471 +v -0.288935 0.609147 -0.452471 +v -0.149610 5.165501 -0.125000 +v -0.149610 0.790051 -0.125000 +v -0.149610 4.436259 -0.125000 +v -0.149610 3.707017 -0.125000 +v -0.149610 2.977776 -0.125000 +v -0.149610 2.248534 -0.125000 +v -0.149610 1.519293 -0.125000 +v -0.299220 5.165501 -0.250000 +v -0.299220 0.790051 -0.250000 +v -0.299220 4.436259 -0.250000 +v -0.299220 3.707017 -0.250000 +v -0.299220 2.977776 -0.250000 +v -0.299220 2.248534 -0.250000 +v -0.299220 1.519293 -0.250000 +v -0.149610 5.900837 0.125000 +v -0.299220 5.900837 0.000000 +v -0.149610 1.519293 0.125000 +v -0.149610 0.790051 0.125000 +v -0.299220 0.790051 0.000000 +v -0.299220 1.519293 0.000000 +v -0.299220 2.248534 0.000000 +v -0.149610 2.248534 0.125000 +v -0.149610 2.977776 0.125000 +v -0.299220 2.977776 0.000000 +v -0.299220 3.707017 0.000000 +v -0.149610 3.707017 0.125000 +v -0.149610 4.436259 0.125000 +v -0.299220 4.436259 0.000000 +v -0.299220 5.165501 0.000000 +v -0.149610 5.165501 0.125000 +v 0.000000 0.054715 -3.440433 +v 0.000000 2.511072 -3.439998 +v 0.000000 3.563152 -3.272047 +v 0.000000 4.522236 -2.783369 +v 0.000000 5.283369 -2.022236 +v 0.000000 5.772047 -1.063152 +v 0.000000 5.900837 -0.250000 +v 0.000000 0.054715 -0.250000 +v 0.000000 5.900837 -0.125000 +v 0.000000 0.054715 -0.125000 +v 0.000000 0.790051 -0.125000 +v 0.000000 1.519293 -0.125000 +v 0.000000 2.248534 -0.125000 +v 0.000000 2.977776 -0.125000 +v 0.000000 3.707017 -0.125000 +v 0.000000 4.436259 -0.125000 +v 0.000000 5.165501 -0.125000 +v 0.000000 5.900837 0.125000 +v 0.000000 0.790051 0.125000 +v 0.000000 1.519293 0.125000 +v 0.000000 2.248534 0.125000 +v 0.000000 2.977776 0.125000 +v 0.000000 3.707017 0.125000 +v 0.000000 4.436259 0.125000 +v 0.000000 5.165501 0.125000 +v 0.236978 1.966246 -2.101461 +v 0.236978 1.868289 -2.101461 +v 0.271611 1.966246 -2.115807 +v 0.271611 1.868289 -2.115807 +v 0.285957 1.966246 -2.150440 +v 0.285957 1.868289 -2.150440 +v 0.271611 1.966246 -2.185074 +v 0.271611 1.868289 -2.185074 +v 0.236978 1.966246 -2.199419 +v 0.236978 1.868289 -2.199419 +v 0.261013 1.935379 -2.738888 +v 0.243802 1.942508 -2.738888 +v 0.243802 1.942508 -2.168687 +v 0.261013 1.935379 -2.168687 +v 0.268143 1.918167 -2.168687 +v 0.261013 1.900955 -2.168687 +v 0.243802 1.893826 -2.168687 +v 0.226590 1.900955 -2.168687 +v 0.219460 1.918167 -2.168687 +v 0.226590 1.935379 -2.168687 +v 0.268143 1.918167 -2.738888 +v 0.261013 1.900955 -2.738888 +v 0.243802 1.893826 -2.738888 +v 0.226590 1.900955 -2.738888 +v 0.219460 1.918167 -2.738888 +v 0.226590 1.935379 -2.738888 +v 0.243802 1.952222 -2.738888 +v 0.267882 1.942248 -2.738888 +v 0.277856 1.918167 -2.738888 +v 0.243802 1.952222 -2.956852 +v 0.267882 1.942248 -2.956852 +v 0.267882 1.894087 -2.738888 +v 0.277856 1.918167 -2.956852 +v 0.243802 1.884113 -2.738888 +v 0.267882 1.894087 -2.956852 +v 0.219721 1.894087 -2.738888 +v 0.243802 1.884113 -2.956852 +v 0.209747 1.918167 -2.738888 +v 0.219721 1.894087 -2.956852 +v 0.219721 1.942248 -2.738888 +v 0.209747 1.918167 -2.956852 +v 0.219721 1.942248 -2.956852 +v 0.234904 1.996067 -2.602894 +v 0.234904 2.177792 -2.602893 +v 0.234904 1.996067 -2.957389 +v 0.234904 2.177792 -2.957389 +v 0.248364 1.996858 -2.604437 +v 0.248364 2.177001 -2.604437 +v 0.248364 1.996858 -2.955846 +v 0.248364 2.177001 -2.955846 +v 0.239626 2.025193 -2.631219 +v 0.239626 2.077102 -2.631219 +v 0.239626 2.025193 -2.683128 +v 0.239626 2.077102 -2.683128 +v 0.264276 2.026531 -2.632558 +v 0.264276 2.075763 -2.632558 +v 0.264276 2.026531 -2.681790 +v 0.264276 2.075763 -2.681790 +v 0.239626 2.025193 -2.713007 +v 0.239626 2.077102 -2.713007 +v 0.239626 2.025193 -2.764916 +v 0.239626 2.077102 -2.764916 +v 0.264276 2.026531 -2.714346 +v 0.264276 2.075763 -2.714346 +v 0.264276 2.026531 -2.763577 +v 0.264276 2.075763 -2.763577 +v 0.239626 2.025193 -2.794795 +v 0.239626 2.077102 -2.794795 +v 0.239626 2.025193 -2.846704 +v 0.239626 2.077102 -2.846704 +v 0.264276 2.026531 -2.796134 +v 0.264276 2.075763 -2.796134 +v 0.264276 2.026531 -2.845365 +v 0.264276 2.075763 -2.845365 +v 0.239626 2.025193 -2.876583 +v 0.239626 2.077102 -2.876583 +v 0.239626 2.025193 -2.928492 +v 0.239626 2.077102 -2.928492 +v 0.264276 2.026531 -2.877922 +v 0.264276 2.075763 -2.877922 +v 0.264276 2.026531 -2.927153 +v 0.264276 2.075763 -2.927153 +v 0.241062 2.141376 -2.887181 +v 0.218099 2.128895 -2.887181 +v 0.217427 2.102767 -2.887181 +v 0.239718 2.089121 -2.887181 +v 0.262680 2.101603 -2.887181 +v 0.264313 2.105776 -2.887181 +v 0.266144 2.123641 -2.887181 +v 0.263352 2.127731 -2.887181 +v 0.266144 2.123641 -2.918690 +v 0.263352 2.127731 -2.918690 +v 0.278264 2.110234 -2.887181 +v 0.278264 2.110234 -2.918690 +v 0.277458 2.120133 -2.918690 +v 0.277458 2.120133 -2.887181 +v 0.264313 2.105776 -2.918690 +v 0.218099 2.128895 -2.918690 +v 0.241062 2.141376 -2.918690 +v 0.262680 2.101603 -2.918690 +v 0.239718 2.089121 -2.918690 +v 0.217427 2.102767 -2.918690 +v 0.257846 2.139290 -2.641807 +v 0.231994 2.143135 -2.641807 +v 0.215738 2.122669 -2.641807 +v 0.225334 2.098358 -2.641807 +v 0.251185 2.094513 -2.641807 +v 0.255000 2.096865 -2.641807 +v 0.267210 2.110033 -2.641807 +v 0.267441 2.114980 -2.641807 +v 0.267210 2.110033 -2.673316 +v 0.267441 2.114980 -2.673316 +v 0.268826 2.092032 -2.641807 +v 0.268826 2.092032 -2.673316 +v 0.274138 2.100425 -2.673316 +v 0.274138 2.100425 -2.641807 +v 0.255000 2.096865 -2.673316 +v 0.231994 2.143135 -2.673316 +v 0.257846 2.139290 -2.673316 +v 0.251185 2.094513 -2.673316 +v 0.225334 2.098358 -2.673316 +v 0.215738 2.122669 -2.673316 +v 0.222125 2.128488 -2.723598 +v 0.215962 2.103088 -2.723598 +v 0.234877 2.085051 -2.723598 +v 0.259955 2.092414 -2.723598 +v 0.266117 2.117813 -2.723598 +v 0.264120 2.121824 -2.723598 +v 0.252107 2.135173 -2.723598 +v 0.247202 2.135850 -2.723598 +v 0.252107 2.135173 -2.755107 +v 0.247202 2.135850 -2.755107 +v 0.270180 2.135158 -2.723598 +v 0.270180 2.135158 -2.755107 +v 0.262302 2.141205 -2.755107 +v 0.262302 2.141205 -2.723598 +v 0.264120 2.121824 -2.755107 +v 0.215962 2.103088 -2.755107 +v 0.222125 2.128488 -2.755107 +v 0.266117 2.117813 -2.755107 +v 0.259955 2.092414 -2.755107 +v 0.234877 2.085051 -2.755107 +v 0.231185 2.137330 -2.805390 +v 0.214479 2.117230 -2.805390 +v 0.223533 2.092711 -2.805390 +v 0.249294 2.088294 -2.805390 +v 0.265999 2.108394 -2.805390 +v 0.265969 2.112875 -2.805390 +v 0.261052 2.130147 -2.805390 +v 0.256945 2.132912 -2.805390 +v 0.261052 2.130147 -2.836899 +v 0.256945 2.132912 -2.836899 +v 0.277277 2.122184 -2.805390 +v 0.277277 2.122184 -2.836899 +v 0.272861 2.131080 -2.836899 +v 0.272861 2.131080 -2.805390 +v 0.265969 2.112875 -2.836899 +v 0.214479 2.117230 -2.836899 +v 0.231185 2.137330 -2.836899 +v 0.265999 2.108394 -2.836899 +v 0.249294 2.088294 -2.836899 +v 0.223533 2.092711 -2.836899 +vt 0.071084 0.914639 +vt 0.063745 0.914089 +vt 0.071052 0.914089 +vt 0.071052 0.899835 +vt 0.063745 0.899835 +vt 0.071084 0.899286 +vt 0.071599 0.899773 +vt 0.071599 0.914152 +vt 0.063198 0.914152 +vt 0.980883 0.027178 +vt 0.979882 0.025127 +vt 0.980883 0.025072 +vt 0.979882 0.027124 +vt 0.977885 0.025127 +vt 0.977885 0.027124 +vt 0.976884 0.025072 +vt 0.977831 0.024125 +vt 0.979936 0.024125 +vt 0.979936 0.028125 +vt 0.010095 0.976613 +vt 0.012147 0.975612 +vt 0.012201 0.976613 +vt 0.010150 0.975612 +vt 0.012147 0.973615 +vt 0.010150 0.973615 +vt 0.012201 0.972613 +vt 0.013148 0.973560 +vt 0.013148 0.975666 +vt 0.009148 0.975666 +vt 0.977831 0.010708 +vt 0.979882 0.009707 +vt 0.979936 0.010708 +vt 0.977885 0.009707 +vt 0.979882 0.007710 +vt 0.977885 0.007710 +vt 0.979936 0.006709 +vt 0.980883 0.007656 +vt 0.980883 0.009761 +vt 0.976884 0.009761 +vt 0.969725 0.889901 +vt 0.971776 0.888900 +vt 0.971831 0.889901 +vt 0.969779 0.888900 +vt 0.971776 0.886903 +vt 0.969779 0.886903 +vt 0.971831 0.885901 +vt 0.972778 0.886849 +vt 0.972778 0.888954 +vt 0.968778 0.888954 +vt 0.063713 0.914639 +vt 0.063713 0.899286 +vt 0.063198 0.899773 +vt 0.976884 0.027178 +vt 0.977831 0.028125 +vt 0.010095 0.972613 +vt 0.009148 0.973560 +vt 0.977831 0.006709 +vt 0.976884 0.007656 +vt 0.969725 0.885901 +vt 0.968778 0.886849 +vt 0.838616 0.394242 +vt 0.850753 0.294606 +vt 0.850753 0.394242 +vt 0.838616 0.437457 +vt 0.850753 0.437457 +vt 0.838616 0.481118 +vt 0.850753 0.481118 +vt 0.838616 0.524780 +vt 0.850753 0.524779 +vt 0.838616 0.568441 +vt 0.850753 0.568441 +vt 0.816684 0.141189 +vt 0.804547 0.011779 +vt 0.816684 0.011779 +vt 0.637409 0.742651 +vt 0.751488 0.745406 +vt 0.637409 0.745406 +vt 0.850753 0.601835 +vt 0.844684 0.606906 +vt 0.838616 0.601835 +vt 0.623992 0.501911 +vt 0.623992 0.531738 +vt 0.616326 0.514187 +vt 0.502248 0.514187 +vt 0.494599 0.432102 +vt 0.502264 0.432711 +vt 0.508790 0.391831 +vt 0.501411 0.389428 +vt 0.527512 0.355087 +vt 0.521233 0.350525 +vt 0.556668 0.325931 +vt 0.552106 0.319652 +vt 0.593407 0.307212 +vt 0.591009 0.299830 +vt 0.616327 0.303582 +vt 0.691829 0.316956 +vt 0.728568 0.298236 +vt 0.751488 0.294606 +vt 0.861164 0.006709 +vt 0.858410 0.029913 +vt 0.858410 0.006709 +vt 0.861164 0.071146 +vt 0.858410 0.112380 +vt 0.858410 0.071146 +vt 0.861164 0.153618 +vt 0.858410 0.195017 +vt 0.858410 0.153618 +vt 0.963467 0.189030 +vt 0.960285 0.006709 +vt 0.963467 0.006723 +vt 0.861164 0.029913 +vt 0.861164 0.112380 +vt 0.861164 0.195017 +vt 0.858410 0.276493 +vt 0.070405 0.847979 +vt 0.065130 0.846311 +vt 0.070405 0.846311 +vt 0.064865 0.846046 +vt 0.063198 0.825406 +vt 0.064865 0.825406 +vt 0.069767 0.845408 +vt 0.065768 0.826044 +vt 0.069767 0.826044 +vt 0.070405 0.825142 +vt 0.065130 0.823474 +vt 0.070405 0.823474 +vt 0.065130 0.825142 +vt 0.070669 0.825406 +vt 0.070669 0.846046 +vt 0.065768 0.845408 +vt 0.072337 0.846046 +vt 0.072337 0.825406 +vt 0.832797 0.992869 +vt 0.820045 0.989167 +vt 0.832917 0.989519 +vt 0.819847 0.979794 +vt 0.812637 0.982596 +vt 0.812375 0.981262 +vt 0.820215 0.982975 +vt 0.819631 0.992298 +vt 0.812630 0.989456 +vt 0.836258 0.989519 +vt 0.832917 0.982686 +vt 0.836258 0.982686 +vt 0.811270 0.982595 +vt 0.832839 0.979479 +vt 0.157833 0.991605 +vt 0.145081 0.987902 +vt 0.157953 0.988254 +vt 0.144883 0.978529 +vt 0.137673 0.981331 +vt 0.137411 0.979997 +vt 0.145251 0.981710 +vt 0.144667 0.991033 +vt 0.137666 0.988191 +vt 0.161295 0.988254 +vt 0.157953 0.981421 +vt 0.161295 0.981421 +vt 0.136306 0.981330 +vt 0.157876 0.978214 +vt 0.115059 0.780752 +vt 0.093578 0.772929 +vt 0.115059 0.772929 +vt 0.767587 0.714665 +vt 0.784230 0.717347 +vt 0.767587 0.717347 +vt 0.115059 0.838557 +vt 0.093578 0.830734 +vt 0.115059 0.830734 +vt 0.122882 0.830734 +vt 0.122882 0.780752 +vt 0.085754 0.780752 +vt 0.093578 0.780752 +vt 0.112640 0.783171 +vt 0.095997 0.783171 +vt 0.112640 0.828315 +vt 0.095997 0.828315 +vt 0.784230 0.714665 +vt 0.767587 0.669521 +vt 0.784230 0.669521 +vt 0.786912 0.669521 +vt 0.786912 0.714665 +vt 0.764905 0.714665 +vt 0.764905 0.669521 +vt 0.767587 0.666839 +vt 0.784230 0.666839 +vt 0.493197 0.720191 +vt 0.495769 0.833877 +vt 0.493197 0.833877 +vt 0.485567 0.720186 +vt 0.491213 0.833871 +vt 0.485567 0.833871 +vt 0.483582 0.833865 +vt 0.483582 0.720180 +vt 0.481010 0.720180 +vt 0.481010 0.833865 +vt 0.916263 0.006720 +vt 0.918835 0.120406 +vt 0.916263 0.120406 +vt 0.908633 0.006714 +vt 0.914279 0.120400 +vt 0.908633 0.120400 +vt 0.906649 0.120394 +vt 0.906649 0.006709 +vt 0.904076 0.006709 +vt 0.904076 0.120394 +vt 0.916263 0.133834 +vt 0.918835 0.247520 +vt 0.916263 0.247520 +vt 0.908633 0.133829 +vt 0.914279 0.247514 +vt 0.908633 0.247514 +vt 0.906649 0.247508 +vt 0.906649 0.133823 +vt 0.904076 0.133823 +vt 0.904076 0.247508 +vt 0.926154 0.760682 +vt 0.928726 0.874367 +vt 0.926154 0.874367 +vt 0.918524 0.760676 +vt 0.924170 0.874361 +vt 0.918524 0.874361 +vt 0.916540 0.874356 +vt 0.916539 0.760670 +vt 0.913967 0.760670 +vt 0.913967 0.874356 +vt 0.491671 0.859568 +vt 0.384226 0.862163 +vt 0.384226 0.859568 +vt 0.491675 0.851999 +vt 0.384229 0.857693 +vt 0.384229 0.851999 +vt 0.384233 0.850123 +vt 0.491678 0.850123 +vt 0.491678 0.847529 +vt 0.384233 0.847529 +vt 0.478919 0.887368 +vt 0.384226 0.890001 +vt 0.384226 0.887368 +vt 0.478919 0.879901 +vt 0.384226 0.885680 +vt 0.384226 0.879901 +vt 0.384226 0.878213 +vt 0.478919 0.878213 +vt 0.478919 0.875580 +vt 0.384226 0.875580 +vt 0.874581 0.266461 +vt 0.941635 0.263828 +vt 0.941635 0.266461 +vt 0.874581 0.273928 +vt 0.941635 0.268150 +vt 0.941635 0.273928 +vt 0.941635 0.275616 +vt 0.874581 0.275616 +vt 0.874581 0.278249 +vt 0.941635 0.278249 +vt 0.751964 0.269991 +vt 0.779926 0.272658 +vt 0.751964 0.272658 +vt 0.751964 0.267324 +vt 0.779926 0.269991 +vt 0.751964 0.264657 +vt 0.779926 0.267324 +vt 0.751964 0.261989 +vt 0.779926 0.264657 +vt 0.751964 0.259322 +vt 0.779926 0.261989 +vt 0.011262 0.959196 +vt 0.008595 0.956881 +vt 0.011262 0.956881 +vt 0.977533 0.762259 +vt 0.975647 0.766813 +vt 0.971094 0.764927 +vt 0.971094 0.762259 +vt 0.968778 0.760373 +vt 0.972980 0.760373 +vt 0.006709 0.959196 +vt 0.006709 0.954995 +vt 0.008595 0.950441 +vt 0.239689 0.888219 +vt 0.241702 0.772932 +vt 0.241702 0.888219 +vt 0.758193 0.881133 +vt 0.754778 0.882547 +vt 0.753363 0.879132 +vt 0.968778 0.766813 +vt 0.972980 0.766813 +vt 0.751964 0.255121 +vt 0.779926 0.259322 +vt 0.779926 0.276860 +vt 0.013148 0.959196 +vt 0.013148 0.954995 +vt 0.968778 0.764927 +vt 0.227615 0.888217 +vt 0.229628 0.772930 +vt 0.229628 0.888217 +vt 0.231640 0.888217 +vt 0.233652 0.772930 +vt 0.233652 0.888218 +vt 0.235665 0.888218 +vt 0.237677 0.772931 +vt 0.237677 0.888219 +vt 0.225603 0.888216 +vt 0.227615 0.772929 +vt 0.231640 0.772930 +vt 0.239689 0.772932 +vt 0.235665 0.772931 +vt 0.757401 0.968504 +vt 0.787227 0.976412 +vt 0.757401 0.976412 +vt 0.978919 0.583929 +vt 0.968778 0.577860 +vt 0.978919 0.577860 +vt 0.838616 0.611976 +vt 0.899184 0.978953 +vt 0.907092 0.949373 +vt 0.907092 0.978953 +vt 0.034866 0.980021 +vt 0.042774 0.950441 +vt 0.042774 0.980021 +vt 0.973848 0.546238 +vt 0.978919 0.552306 +vt 0.968778 0.552306 +vt 0.960285 0.232027 +vt 0.968192 0.202447 +vt 0.968192 0.232027 +vt 0.913161 0.949373 +vt 0.913161 0.978953 +vt 0.300254 0.951758 +vt 0.329834 0.941618 +vt 0.329834 0.951758 +vt 0.048842 0.950441 +vt 0.048842 0.980021 +vt 0.974261 0.202447 +vt 0.974261 0.232027 +vt 0.737360 0.915678 +vt 0.743429 0.905537 +vt 0.743429 0.915678 +vt 0.973848 0.589997 +vt 0.968778 0.583929 +vt 0.510060 0.902173 +vt 0.539887 0.910081 +vt 0.510060 0.910081 +vt 0.457011 0.941511 +vt 0.427431 0.933603 +vt 0.457011 0.933603 +vt 0.329834 0.933710 +vt 0.300254 0.941618 +vt 0.300254 0.933710 +vt 0.286837 0.941618 +vt 0.257257 0.933710 +vt 0.286837 0.933710 +vt 0.427431 0.927535 +vt 0.457011 0.927535 +vt 0.300254 0.927641 +vt 0.329834 0.927641 +vt 0.257257 0.927641 +vt 0.286837 0.927641 +vt 0.349320 0.942293 +vt 0.343251 0.937222 +vt 0.349320 0.932152 +vt 0.355388 0.932152 +vt 0.355388 0.942293 +vt 0.257257 0.951758 +vt 0.286837 0.951758 +vt 0.731292 0.910608 +vt 0.737360 0.905537 +vt 0.978919 0.496410 +vt 0.973848 0.490341 +vt 0.983989 0.490341 +vt 0.427431 0.951652 +vt 0.457011 0.951652 +vt 0.769975 0.748970 +vt 0.775045 0.755038 +vt 0.764905 0.755038 +vt 0.349319 0.913665 +vt 0.355388 0.903524 +vt 0.355388 0.913665 +vt 0.343251 0.908594 +vt 0.349319 0.903524 +vt 0.510060 0.920222 +vt 0.539887 0.920222 +vt 0.510060 0.896105 +vt 0.539887 0.902173 +vt 0.978919 0.502478 +vt 0.968778 0.496410 +vt 0.973848 0.540169 +vt 0.983989 0.546238 +vt 0.769975 0.742901 +vt 0.780115 0.748970 +vt 0.757401 0.962435 +vt 0.787227 0.968504 +vt 0.850753 0.606906 +vt 0.844684 0.617046 +vt 0.810615 0.006709 +vt 0.862890 0.394242 +vt 0.862890 0.437457 +vt 0.862890 0.481118 +vt 0.862890 0.524780 +vt 0.862890 0.568441 +vt 0.828821 0.011779 +vt 0.897588 0.619922 +vt 0.900342 0.734001 +vt 0.897588 0.734001 +vt 0.856821 0.606906 +vt 0.066114 0.706928 +vt 0.036535 0.706928 +vt 0.015684 0.699263 +vt 0.226289 0.585184 +vt 0.144205 0.577535 +vt 0.243840 0.577517 +vt 0.103933 0.591727 +vt 0.144813 0.585201 +vt 0.067190 0.610448 +vt 0.101530 0.584348 +vt 0.031754 0.635043 +vt 0.062628 0.604169 +vt 0.019314 0.676344 +vt 0.038033 0.639605 +vt 0.011933 0.673945 +vt 0.243840 0.706929 +vt 0.226289 0.699263 +vt 0.643952 0.640985 +vt 0.637425 0.600105 +vt 0.751488 0.518629 +vt 0.844992 0.029914 +vt 0.842238 0.006709 +vt 0.844992 0.006709 +vt 0.844992 0.112379 +vt 0.842238 0.071146 +vt 0.844992 0.071146 +vt 0.844992 0.195014 +vt 0.842238 0.153615 +vt 0.844992 0.153615 +vt 0.971960 0.476912 +vt 0.968778 0.294618 +vt 0.971960 0.294606 +vt 0.842238 0.029914 +vt 0.842238 0.112379 +vt 0.844992 0.276493 +vt 0.842238 0.195014 +vt 0.120950 0.874811 +vt 0.115675 0.876479 +vt 0.115675 0.874811 +vt 0.122882 0.853906 +vt 0.121215 0.874547 +vt 0.121215 0.853906 +vt 0.120312 0.854545 +vt 0.116313 0.873908 +vt 0.116313 0.854545 +vt 0.120950 0.851974 +vt 0.115675 0.853642 +vt 0.115675 0.851974 +vt 0.120950 0.853642 +vt 0.115411 0.853906 +vt 0.115411 0.874547 +vt 0.120312 0.873908 +vt 0.113743 0.874547 +vt 0.113743 0.853906 +vt 0.227626 0.971087 +vt 0.240379 0.967384 +vt 0.240499 0.970735 +vt 0.227428 0.980459 +vt 0.220218 0.977658 +vt 0.227797 0.977279 +vt 0.220212 0.970798 +vt 0.227212 0.967956 +vt 0.240499 0.977568 +vt 0.243840 0.970735 +vt 0.243840 0.977568 +vt 0.218851 0.977659 +vt 0.240421 0.980775 +vt 0.183493 0.981917 +vt 0.196246 0.978214 +vt 0.196366 0.981565 +vt 0.183295 0.991289 +vt 0.176085 0.988488 +vt 0.183663 0.988109 +vt 0.176079 0.981628 +vt 0.183079 0.978786 +vt 0.196366 0.988398 +vt 0.199707 0.981565 +vt 0.199707 0.988398 +vt 0.174718 0.988489 +vt 0.196288 0.991605 +vt 0.006709 0.780752 +vt 0.014532 0.802233 +vt 0.006709 0.802233 +vt 0.572923 0.871988 +vt 0.556279 0.874670 +vt 0.556279 0.871988 +vt 0.064513 0.780752 +vt 0.072337 0.802233 +vt 0.064513 0.802233 +vt 0.064513 0.810057 +vt 0.014532 0.810057 +vt 0.014532 0.772929 +vt 0.014532 0.780752 +vt 0.016951 0.799814 +vt 0.016951 0.783171 +vt 0.062095 0.783171 +vt 0.062095 0.799814 +vt 0.556279 0.919814 +vt 0.572923 0.874670 +vt 0.572923 0.919814 +vt 0.575605 0.919814 +vt 0.575605 0.874670 +vt 0.553598 0.874670 +vt 0.553598 0.919814 +vt 0.556279 0.922495 +vt 0.572923 0.922495 +vt 0.617258 0.281189 +vt 0.503572 0.278617 +vt 0.617258 0.278617 +vt 0.617252 0.276633 +vt 0.503567 0.270987 +vt 0.617252 0.270987 +vt 0.617247 0.269002 +vt 0.503562 0.269002 +vt 0.503562 0.266430 +vt 0.617247 0.266430 +vt 0.589022 0.935186 +vt 0.591594 0.821501 +vt 0.591594 0.935186 +vt 0.593578 0.935181 +vt 0.599224 0.821496 +vt 0.599224 0.935181 +vt 0.601209 0.935176 +vt 0.601209 0.821490 +vt 0.603781 0.821490 +vt 0.603781 0.935176 +vt 0.759070 0.836249 +vt 0.645385 0.833677 +vt 0.759070 0.833677 +vt 0.759065 0.831693 +vt 0.645379 0.826047 +vt 0.759065 0.826047 +vt 0.759060 0.824063 +vt 0.645374 0.824063 +vt 0.645374 0.821490 +vt 0.759060 0.821490 +vt 0.617198 0.935186 +vt 0.619771 0.821501 +vt 0.619770 0.935186 +vt 0.621755 0.935181 +vt 0.627401 0.821496 +vt 0.627401 0.935181 +vt 0.629385 0.935176 +vt 0.629385 0.821490 +vt 0.631957 0.821490 +vt 0.631957 0.935176 +vt 0.752826 0.864300 +vt 0.645381 0.861706 +vt 0.752826 0.861706 +vt 0.752823 0.859831 +vt 0.645378 0.854136 +vt 0.752823 0.854136 +vt 0.752819 0.852261 +vt 0.645374 0.852261 +vt 0.645374 0.849667 +vt 0.752819 0.849667 +vt 0.351951 0.890107 +vt 0.257257 0.887474 +vt 0.351951 0.887474 +vt 0.351951 0.885786 +vt 0.257257 0.880008 +vt 0.351951 0.880007 +vt 0.351951 0.878319 +vt 0.257257 0.878319 +vt 0.257257 0.875686 +vt 0.351951 0.875686 +vt 0.508551 0.935913 +vt 0.575605 0.938545 +vt 0.508551 0.938545 +vt 0.508551 0.940234 +vt 0.575605 0.946012 +vt 0.508551 0.946012 +vt 0.508551 0.947701 +vt 0.575605 0.947701 +vt 0.575605 0.950333 +vt 0.508551 0.950333 +vt 0.384226 0.982545 +vt 0.412188 0.979878 +vt 0.412188 0.982545 +vt 0.384226 0.979878 +vt 0.412188 0.977210 +vt 0.384226 0.977210 +vt 0.412188 0.974543 +vt 0.384226 0.974543 +vt 0.412188 0.971876 +vt 0.384226 0.971876 +vt 0.412188 0.969209 +vt 0.975218 0.742403 +vt 0.977533 0.745070 +vt 0.975218 0.745070 +vt 0.733178 0.956412 +vt 0.735845 0.956412 +vt 0.733178 0.962851 +vt 0.735845 0.962851 +vt 0.737731 0.965167 +vt 0.735845 0.965167 +vt 0.977533 0.740517 +vt 0.977533 0.742403 +vt 0.968778 0.742403 +vt 0.973332 0.740517 +vt 0.804547 0.269897 +vt 0.806559 0.154609 +vt 0.806559 0.269897 +vt 0.368783 0.880516 +vt 0.365368 0.879101 +vt 0.366783 0.875686 +vt 0.731292 0.965167 +vt 0.731292 0.960966 +vt 0.384226 0.969208 +vt 0.412188 0.965007 +vt 0.384226 0.986746 +vt 0.977533 0.746956 +vt 0.973332 0.746956 +vt 0.733178 0.965167 +vt 0.816621 0.154607 +vt 0.818633 0.269894 +vt 0.816621 0.269895 +vt 0.812596 0.154608 +vt 0.814609 0.269895 +vt 0.812596 0.269895 +vt 0.808571 0.154609 +vt 0.810584 0.269896 +vt 0.808571 0.269896 +vt 0.818633 0.154607 +vt 0.820646 0.269894 +vt 0.814609 0.154608 +vt 0.810584 0.154608 +vt 0.787228 0.948459 +vt 0.757401 0.956367 +vt 0.757401 0.948459 +vt 0.978919 0.571792 +vt 0.862890 0.611976 +vt 0.862890 0.601835 +vt 0.919230 0.949373 +vt 0.927137 0.978953 +vt 0.919230 0.978953 +vt 0.054911 0.950441 +vt 0.062819 0.980021 +vt 0.054911 0.980021 +vt 0.978919 0.528032 +vt 0.973848 0.534101 +vt 0.968778 0.528032 +vt 0.980330 0.202447 +vt 0.988237 0.232027 +vt 0.980330 0.232027 +vt 0.329834 0.913665 +vt 0.300254 0.903524 +vt 0.329834 0.903524 +vt 0.749497 0.915678 +vt 0.973848 0.565723 +vt 0.983989 0.565723 +vt 0.539887 0.882128 +vt 0.510060 0.890036 +vt 0.510060 0.882128 +vt 0.427431 0.921466 +vt 0.457011 0.913558 +vt 0.457011 0.921466 +vt 0.329834 0.921573 +vt 0.300254 0.913665 +vt 0.257257 0.921573 +vt 0.286837 0.913665 +vt 0.286837 0.921573 +vt 0.361456 0.942293 +vt 0.367525 0.937222 +vt 0.367525 0.947363 +vt 0.257257 0.903524 +vt 0.286837 0.903524 +vt 0.755566 0.910608 +vt 0.755566 0.920748 +vt 0.973848 0.514615 +vt 0.978919 0.508547 +vt 0.983989 0.514615 +vt 0.427431 0.903418 +vt 0.457011 0.903418 +vt 0.775045 0.730764 +vt 0.769975 0.736832 +vt 0.764905 0.730764 +vt 0.361456 0.913665 +vt 0.367525 0.908595 +vt 0.367525 0.918735 +vt 0.510060 0.871988 +vt 0.539887 0.871988 +vt 0.539887 0.890036 +vt 0.968778 0.508547 +vt 0.983989 0.534101 +vt 0.780115 0.736832 +vt 0.787228 0.956367 +vt 0.856821 0.617046 +vt 0.822752 0.006709 +vt 0.492337 0.881662 +vt 0.496310 0.880141 +vt 0.496310 0.881662 +vt 0.492337 0.880141 +vt 0.496310 0.878621 +vt 0.492337 0.878621 +vt 0.496310 0.877100 +vt 0.492337 0.877100 +vt 0.496310 0.875580 +vt 0.840002 0.728758 +vt 0.840002 0.725949 +vt 0.841407 0.725367 +vt 0.841407 0.707976 +vt 0.841407 0.711950 +vt 0.840002 0.711368 +vt 0.608440 0.981430 +vt 0.585312 0.982185 +vt 0.585312 0.981430 +vt 0.977248 0.128811 +vt 0.977631 0.129710 +vt 0.976884 0.128962 +vt 0.608440 0.982185 +vt 0.585312 0.982941 +vt 0.608440 0.982941 +vt 0.585312 0.983697 +vt 0.979072 0.128056 +vt 0.978688 0.127157 +vt 0.979436 0.127905 +vt 0.608440 0.983697 +vt 0.585312 0.984452 +vt 0.978538 0.129346 +vt 0.977782 0.129346 +vt 0.608440 0.984452 +vt 0.585312 0.985208 +vt 0.977248 0.128056 +vt 0.976884 0.127905 +vt 0.608440 0.985208 +vt 0.585312 0.985964 +vt 0.608440 0.979918 +vt 0.585312 0.980674 +vt 0.585312 0.979918 +vt 0.608440 0.980674 +vt 0.063198 0.934399 +vt 0.072039 0.933342 +vt 0.072039 0.934399 +vt 0.063198 0.933342 +vt 0.072039 0.932285 +vt 0.063198 0.932285 +vt 0.072039 0.931228 +vt 0.063198 0.931228 +vt 0.072039 0.930170 +vt 0.063198 0.930170 +vt 0.072039 0.929113 +vt 0.063198 0.929113 +vt 0.072039 0.928056 +vt 0.063198 0.935456 +vt 0.072039 0.935456 +vt 0.063198 0.936514 +vt 0.072039 0.936514 +vt 0.979072 0.128811 +vt 0.979436 0.128962 +vt 0.977631 0.127157 +vt 0.977782 0.127521 +vt 0.978688 0.111188 +vt 0.979436 0.111936 +vt 0.976884 0.112993 +vt 0.978688 0.129710 +vt 0.978538 0.127521 +vt 0.841139 0.826421 +vt 0.840538 0.826833 +vt 0.840338 0.826812 +vt 0.839894 0.635303 +vt 0.838616 0.635504 +vt 0.838616 0.635303 +vt 0.839894 0.634419 +vt 0.838616 0.634822 +vt 0.838616 0.634419 +vt 0.840538 0.809135 +vt 0.841251 0.808962 +vt 0.841139 0.809546 +vt 0.841256 0.810745 +vt 0.840338 0.811275 +vt 0.839894 0.630463 +vt 0.838616 0.631523 +vt 0.838616 0.630463 +vt 0.839894 0.635504 +vt 0.838616 0.636564 +vt 0.839894 0.632583 +vt 0.838616 0.633644 +vt 0.838616 0.632583 +vt 0.839894 0.633825 +vt 0.838616 0.633825 +vt 0.839894 0.636564 +vt 0.838616 0.637624 +vt 0.839894 0.631523 +vt 0.839894 0.633644 +vt 0.839894 0.634822 +vt 0.841251 0.827005 +vt 0.840882 0.827168 +vt 0.841139 0.779257 +vt 0.840538 0.779669 +vt 0.840338 0.779648 +vt 0.494581 0.547476 +vt 0.495859 0.547275 +vt 0.495859 0.547476 +vt 0.494581 0.548359 +vt 0.495859 0.547956 +vt 0.495859 0.548359 +vt 0.631793 0.258471 +vt 0.632505 0.258299 +vt 0.632394 0.258882 +vt 0.632511 0.260081 +vt 0.631593 0.260611 +vt 0.494581 0.552316 +vt 0.495859 0.551255 +vt 0.495859 0.552316 +vt 0.494581 0.547275 +vt 0.495859 0.546215 +vt 0.494581 0.550195 +vt 0.495859 0.549135 +vt 0.495859 0.550195 +vt 0.494581 0.548953 +vt 0.495859 0.548953 +vt 0.494581 0.546215 +vt 0.495859 0.545155 +vt 0.494581 0.551255 +vt 0.494581 0.549135 +vt 0.494581 0.547956 +vt 0.841251 0.779841 +vt 0.840882 0.780004 +vt 0.841139 0.842314 +vt 0.840538 0.842726 +vt 0.840338 0.842705 +vt 0.630675 0.276350 +vt 0.631953 0.276149 +vt 0.631953 0.276350 +vt 0.630675 0.277233 +vt 0.631953 0.276830 +vt 0.631953 0.277233 +vt 0.840538 0.872706 +vt 0.841251 0.872534 +vt 0.841139 0.873117 +vt 0.841256 0.874317 +vt 0.840338 0.874847 +vt 0.630675 0.281189 +vt 0.631953 0.280129 +vt 0.631953 0.281189 +vt 0.630675 0.276149 +vt 0.631953 0.275089 +vt 0.630675 0.279069 +vt 0.631953 0.278009 +vt 0.631953 0.279069 +vt 0.630675 0.277827 +vt 0.631953 0.277827 +vt 0.630675 0.274028 +vt 0.631953 0.274028 +vt 0.630675 0.280129 +vt 0.630675 0.278009 +vt 0.630675 0.276830 +vt 0.841251 0.842898 +vt 0.840882 0.843061 +vt 0.841139 0.889993 +vt 0.840538 0.890404 +vt 0.840338 0.890384 +vt 0.591343 0.949881 +vt 0.591142 0.948603 +vt 0.591343 0.948603 +vt 0.592226 0.949881 +vt 0.591823 0.948603 +vt 0.592226 0.948603 +vt 0.840538 0.856813 +vt 0.841251 0.856641 +vt 0.841139 0.857225 +vt 0.841256 0.858424 +vt 0.840338 0.858954 +vt 0.596182 0.949881 +vt 0.595122 0.948603 +vt 0.596182 0.948603 +vt 0.591142 0.949881 +vt 0.590082 0.948603 +vt 0.594062 0.948603 +vt 0.593002 0.949881 +vt 0.593002 0.948603 +vt 0.592820 0.949881 +vt 0.592820 0.948603 +vt 0.590082 0.949881 +vt 0.589022 0.948603 +vt 0.595122 0.949881 +vt 0.591823 0.949881 +vt 0.841251 0.890576 +vt 0.840882 0.890739 +vt 0.838616 0.294606 +vt 0.804547 0.141189 +vt 0.751488 0.742652 +vt 0.623992 0.413172 +vt 0.623992 0.294606 +vt 0.623992 0.324433 +vt 0.623992 0.354013 +vt 0.623992 0.383592 +vt 0.623992 0.442751 +vt 0.623992 0.472331 +vt 0.494581 0.531738 +vt 0.751488 0.505212 +vt 0.637409 0.505212 +vt 0.637426 0.423736 +vt 0.643952 0.382855 +vt 0.662673 0.346112 +vt 0.960285 0.189016 +vt 0.861164 0.276493 +vt 0.065130 0.847979 +vt 0.063198 0.846046 +vt 0.812354 0.990755 +vt 0.811263 0.989455 +vt 0.137391 0.989490 +vt 0.136299 0.988190 +vt 0.093578 0.838557 +vt 0.085754 0.830734 +vt 0.495769 0.720191 +vt 0.491213 0.720186 +vt 0.918835 0.006720 +vt 0.914279 0.006714 +vt 0.918835 0.133834 +vt 0.914279 0.133829 +vt 0.928726 0.760682 +vt 0.924170 0.760676 +vt 0.491671 0.862163 +vt 0.491675 0.857693 +vt 0.478919 0.890001 +vt 0.478919 0.885680 +vt 0.874581 0.263828 +vt 0.874581 0.268150 +vt 0.008595 0.959196 +vt 0.975647 0.760373 +vt 0.977533 0.764927 +vt 0.968778 0.762259 +vt 0.013148 0.952327 +vt 0.006709 0.952327 +vt 0.011262 0.950441 +vt 0.754778 0.877717 +vt 0.756778 0.877717 +vt 0.758193 0.879132 +vt 0.756778 0.882547 +vt 0.753363 0.881133 +vt 0.779926 0.255121 +vt 0.751964 0.276860 +vt 0.225603 0.772929 +vt 0.899184 0.949373 +vt 0.034866 0.950441 +vt 0.960285 0.202447 +vt 0.983989 0.589997 +vt 0.427431 0.941511 +vt 0.257257 0.941618 +vt 0.343251 0.947363 +vt 0.731292 0.920748 +vt 0.343251 0.918735 +vt 0.539887 0.896105 +vt 0.968778 0.502478 +vt 0.983989 0.540169 +vt 0.780115 0.742901 +vt 0.787227 0.962435 +vt 0.850753 0.617046 +vt 0.816684 0.006709 +vt 0.862890 0.294606 +vt 0.828821 0.141189 +vt 0.900342 0.619922 +vt 0.006709 0.706928 +vt 0.125275 0.706929 +vt 0.095695 0.706929 +vt 0.214013 0.706929 +vt 0.184434 0.706929 +vt 0.154853 0.706929 +vt 0.637409 0.518629 +vt 0.751488 0.729234 +vt 0.691829 0.706885 +vt 0.728568 0.725604 +vt 0.662673 0.677729 +vt 0.968778 0.476924 +vt 0.842238 0.276493 +vt 0.120950 0.876479 +vt 0.122882 0.874547 +vt 0.219956 0.978992 +vt 0.219936 0.969499 +vt 0.218845 0.970799 +vt 0.175823 0.989822 +vt 0.175803 0.980329 +vt 0.174712 0.981629 +vt 0.072337 0.780752 +vt 0.064513 0.772929 +vt 0.503572 0.281189 +vt 0.503567 0.276632 +vt 0.589022 0.821501 +vt 0.593579 0.821496 +vt 0.645385 0.836249 +vt 0.645379 0.831693 +vt 0.617198 0.821501 +vt 0.621755 0.821496 +vt 0.645381 0.864300 +vt 0.645378 0.859830 +vt 0.257257 0.890107 +vt 0.257257 0.885786 +vt 0.575605 0.935912 +vt 0.575605 0.940234 +vt 0.737731 0.958298 +vt 0.737731 0.960966 +vt 0.731292 0.958298 +vt 0.970664 0.746956 +vt 0.968778 0.745070 +vt 0.970664 0.740517 +vt 0.804547 0.154610 +vt 0.370198 0.877100 +vt 0.370198 0.879101 +vt 0.366783 0.880516 +vt 0.365368 0.877100 +vt 0.368783 0.875686 +vt 0.384226 0.965007 +vt 0.412188 0.986746 +vt 0.820646 0.154606 +vt 0.968778 0.571792 +vt 0.927137 0.949373 +vt 0.062819 0.950441 +vt 0.988237 0.202447 +vt 0.749497 0.905537 +vt 0.427431 0.913558 +vt 0.300254 0.921573 +vt 0.257257 0.913665 +vt 0.361456 0.932152 +vt 0.361456 0.903524 +vt 0.492337 0.875580 +vt 0.841407 0.729340 +vt 0.839420 0.727354 +vt 0.839420 0.709963 +vt 0.840002 0.708558 +vt 0.608440 0.985964 +vt 0.063198 0.928056 +vt 0.979436 0.112993 +vt 0.978688 0.113740 +vt 0.977631 0.113740 +vt 0.976884 0.111936 +vt 0.977631 0.111188 +vt 0.839420 0.826282 +vt 0.839420 0.825222 +vt 0.840338 0.824692 +vt 0.841256 0.825222 +vt 0.841256 0.826282 +vt 0.840882 0.808799 +vt 0.839420 0.810745 +vt 0.839420 0.809685 +vt 0.840338 0.809155 +vt 0.841256 0.809685 +vt 0.839894 0.637624 +vt 0.839420 0.779118 +vt 0.839420 0.778058 +vt 0.840338 0.777528 +vt 0.841256 0.778058 +vt 0.841256 0.779118 +vt 0.632137 0.258136 +vt 0.630675 0.260081 +vt 0.630675 0.259021 +vt 0.631593 0.258491 +vt 0.632511 0.259021 +vt 0.494581 0.545155 +vt 0.839420 0.842175 +vt 0.839420 0.841115 +vt 0.840338 0.840585 +vt 0.841256 0.841115 +vt 0.841256 0.842175 +vt 0.840882 0.872371 +vt 0.839420 0.874316 +vt 0.839420 0.873256 +vt 0.840338 0.872726 +vt 0.841256 0.873256 +vt 0.630675 0.275089 +vt 0.839420 0.889854 +vt 0.839420 0.888794 +vt 0.840338 0.888264 +vt 0.841256 0.888794 +vt 0.841256 0.889854 +vt 0.840882 0.856478 +vt 0.839420 0.858424 +vt 0.839420 0.857364 +vt 0.840338 0.856833 +vt 0.841256 0.857364 +vt 0.594062 0.949881 +vt 0.589022 0.949881 +vn 0.1139 0.0000 -0.9935 +vn 1.0000 0.0000 0.0000 +vn 0.1139 0.0000 0.9935 +vn 0.0587 -0.9983 0.0000 +vn 0.0587 0.9983 0.0000 +vn 0.0542 0.0000 -0.9985 +vn 0.0542 0.0000 0.9985 +vn 0.0542 -0.9985 0.0000 +vn 0.0542 0.9985 0.0000 +vn 0.0543 0.0000 0.9985 +vn 0.1140 -0.0000 0.9935 +vn 0.0000 0.0792 -0.9969 +vn 0.0000 0.0002 -1.0000 +vn 0.0000 0.3096 -0.9509 +vn 0.0000 0.5878 -0.8090 +vn 0.0000 0.8090 -0.5878 +vn 0.0000 0.9511 -0.3090 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.9969 -0.0785 +vn 0.0000 0.9941 -0.1087 +vn 0.0000 -0.9877 0.1564 +vn 0.0000 -0.9511 0.3090 +vn 0.0000 -0.8090 0.5878 +vn 0.0000 -0.5878 0.8090 +vn 0.0000 -0.3096 0.9509 +vn 0.0000 -0.0792 0.9969 +vn 0.0000 -0.0000 -1.0000 +vn 0.0000 -0.0002 1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.7071 0.0000 0.7071 +vn 0.7071 -0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.7071 0.0000 -0.7071 +vn 0.9919 0.1267 0.0000 +vn 0.9679 0.2513 0.0000 +vn 0.3827 -0.9239 0.0000 +vn 0.9239 -0.3827 0.0000 +vn 0.9239 0.3827 0.0000 +vn 0.3827 0.9239 0.0000 +vn -0.3827 -0.9239 -0.0000 +vn -0.9239 -0.3827 -0.0000 +vn -0.9239 0.3827 -0.0000 +vn -0.3827 0.9239 -0.0000 +vn 0.6412 0.0000 0.7674 +vn -1.0000 0.0000 0.0000 +vn -0.7071 0.0000 0.7071 +vn -0.7071 -0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn -0.7071 0.0000 -0.7071 +vn -0.9679 0.2513 0.0000 +vn -0.9919 0.1267 0.0000 +vn -0.6412 0.0000 0.7674 +vn 0.3827 0.0000 0.9239 +vn 0.3827 0.0000 -0.9239 +vn 0.5942 0.8043 0.0000 +vn 0.6894 0.7244 0.0000 +vn 0.9967 0.0811 0.0000 +vn -0.9997 0.0257 0.0000 +vn 0.5221 0.8529 0.0000 +vn 0.4776 -0.8786 0.0000 +vn 0.3044 -0.9525 0.0000 +vn -0.4776 0.8786 0.0000 +vn -0.5221 -0.8529 0.0000 +vn 0.9313 -0.3643 0.0000 +vn 0.2961 0.9552 0.0000 +vn 0.9585 0.2850 0.0000 +vn 0.9865 0.1639 0.0000 +vn 0.8450 -0.5348 0.0000 +vn -0.7830 0.6220 0.0000 +vn 0.9302 0.3672 0.0000 +vn -0.1471 -0.9891 0.0000 +vn -0.3299 -0.9440 0.0000 +vn 0.1471 0.9891 0.0000 +vn -0.9302 -0.3672 0.0000 +vn 0.5247 -0.8513 0.0000 +vn 0.8112 0.5848 0.0000 +vn -0.0001 0.0000 1.0000 +vn -0.1973 0.9803 0.0000 +vn -0.0742 0.9972 0.0000 +vn 0.6089 0.7932 0.0000 +vn 0.0001 0.0000 -1.0000 +vn -0.6901 -0.7237 0.0000 +vn -0.2817 0.9595 0.0000 +vn 0.9718 -0.2358 0.0000 +vn 0.9104 -0.4138 0.0000 +vn -0.9718 0.2358 0.0000 +vn 0.2817 -0.9595 0.0000 +vn 0.8952 0.4458 0.0000 +vn 0.8951 0.4458 0.0000 +vn -0.5092 0.8606 0.0000 +vn 0.2540 0.9672 0.0000 +vn 0.3720 0.9282 0.0000 +vn 0.8957 0.4446 0.0000 +vn -0.9381 -0.3464 0.0000 +vn 0.1690 0.9856 0.0000 +vn 0.7691 -0.6392 0.0000 +vn 0.6356 -0.7720 0.0000 +vn -0.7690 0.6392 0.0000 +vn -0.1690 -0.9856 0.0000 +vn 1.0000 0.0066 0.0000 +vn -0.0788 0.9969 0.0000 +vn -0.4775 0.8786 0.0000 +vn -0.0002 0.0000 -1.0000 +s off +f 1189/1079/104 1194/1080/104 1193/1081/104 +f 1194/1080/105 1191/1082/105 1193/1081/105 +f 1192/1083/106 1187/1084/106 1191/1082/106 +f 1193/1081/107 1187/1085/107 1189/1086/107 +f 1190/1087/108 1192/1083/108 1194/1080/108 +f 1198/1088/109 1201/1089/109 1197/1090/109 +f 1202/1091/105 1199/1092/105 1201/1089/105 +f 1200/1093/110 1195/1094/110 1199/1092/110 +f 1201/1089/111 1195/1095/111 1197/1096/111 +f 1198/1097/112 1200/1093/112 1202/1091/112 +f 1206/1098/109 1209/1099/109 1205/1100/109 +f 1210/1101/105 1207/1102/105 1209/1099/105 +f 1208/1103/113 1203/1104/113 1207/1102/113 +f 1209/1099/111 1203/1105/111 1205/1106/111 +f 1206/1107/112 1208/1103/112 1210/1101/112 +f 1214/1108/109 1217/1109/109 1213/1110/109 +f 1218/1111/105 1215/1112/105 1217/1109/105 +f 1216/1113/110 1211/1114/110 1215/1112/110 +f 1217/1109/111 1211/1115/111 1213/1116/111 +f 1214/1117/112 1216/1113/112 1218/1111/112 +f 1222/1118/109 1225/1119/109 1221/1120/109 +f 1226/1121/105 1223/1122/105 1225/1119/105 +f 1224/1123/113 1219/1124/113 1223/1122/113 +f 1225/1119/111 1219/1125/111 1221/1126/111 +f 1222/1127/112 1224/1123/112 1226/1121/112 +f 1189/1079/104 1190/1128/104 1194/1080/104 +f 1194/1080/105 1192/1083/105 1191/1082/105 +f 1192/1083/114 1188/1129/114 1187/1084/114 +f 1193/1081/107 1191/1082/107 1187/1085/107 +f 1190/1087/108 1188/1130/108 1192/1083/108 +f 1198/1088/109 1202/1091/109 1201/1089/109 +f 1202/1091/105 1200/1093/105 1199/1092/105 +f 1200/1093/110 1196/1131/110 1195/1094/110 +f 1201/1089/111 1199/1092/111 1195/1095/111 +f 1198/1097/112 1196/1132/112 1200/1093/112 +f 1206/1098/109 1210/1101/109 1209/1099/109 +f 1210/1101/105 1208/1103/105 1207/1102/105 +f 1208/1103/110 1204/1133/110 1203/1104/110 +f 1209/1099/111 1207/1102/111 1203/1105/111 +f 1206/1107/112 1204/1134/112 1208/1103/112 +f 1214/1108/109 1218/1111/109 1217/1109/109 +f 1218/1111/105 1216/1113/105 1215/1112/105 +f 1216/1113/110 1212/1135/110 1211/1114/110 +f 1217/1109/111 1215/1112/111 1211/1115/111 +f 1214/1117/112 1212/1136/112 1216/1113/112 +f 1222/1118/109 1226/1121/109 1225/1119/109 +f 1226/1121/105 1224/1123/105 1223/1122/105 +f 1224/1123/110 1220/1137/110 1219/1124/110 +f 1225/1119/111 1223/1122/111 1219/1125/111 +f 1222/1127/112 1220/1138/112 1224/1123/112 +s 1 +f 667/1139/115 1120/1140/116 1121/1141/115 +f 668/1142/117 1121/1141/115 1122/1143/117 +f 669/1144/118 1122/1143/117 1123/1145/118 +f 670/1146/119 1123/1145/118 1124/1147/119 +f 671/1148/120 1124/1147/119 1125/1149/120 +f 1120/1150/121 673/1151/121 1127/1152/121 +f 674/1153/122 663/1154/122 656/1155/122 +f 1126/1156/123 664/1157/122 672/1158/124 +f 866/1159/105 673/1160/105 663/1161/105 +f 656/1162/105 667/1163/105 661/1164/105 +f 667/1163/105 660/1165/105 661/1164/105 +f 668/1166/105 659/1167/105 660/1165/105 +f 669/1168/105 658/1169/105 659/1167/105 +f 670/1170/105 657/1171/105 658/1169/105 +f 671/1172/105 662/1173/105 657/1171/105 +f 673/1160/105 656/1162/105 663/1161/105 +f 678/1174/105 679/1175/105 680/1176/105 +f 680/1177/125 657/1178/126 662/1179/125 +f 678/1180/127 659/1181/128 658/1182/127 +f 676/1183/129 661/1184/130 660/1185/129 +f 663/1186/131 680/1187/131 662/1188/131 +f 679/1189/126 658/1182/127 657/1178/126 +f 677/1190/128 660/1185/129 659/1181/128 +f 675/1191/130 656/1192/132 661/1184/130 +f 682/1193/131 688/1194/131 687/1195/131 +f 688/1196/122 685/1197/122 693/1198/122 +f 686/1199/105 692/1200/105 690/1201/105 +f 691/1202/133 685/1203/133 684/1204/133 +f 693/1205/134 690/1201/134 692/1200/134 +f 686/1199/135 691/1206/135 687/1207/135 +f 692/1200/136 688/1196/136 693/1198/136 +f 689/1208/137 687/1195/137 688/1194/137 +f 682/1209/121 691/1206/121 684/1210/121 +f 694/1211/131 705/1212/131 698/1213/131 +f 703/1214/133 701/1215/133 697/1216/133 +f 705/1212/138 701/1215/139 704/1217/138 +f 702/1218/131 699/1219/131 705/1212/131 +f 694/1220/121 700/1221/121 696/1222/121 +f 699/1219/122 697/1223/122 701/1215/122 +f 698/1213/105 704/1217/138 700/1221/105 +f 700/1221/133 703/1214/133 696/1224/133 +f 706/1225/131 717/1226/131 710/1227/131 +f 715/1228/133 713/1229/133 709/1230/133 +f 717/1226/138 713/1229/139 716/1231/138 +f 714/1232/131 711/1233/131 717/1226/131 +f 706/1234/121 712/1235/121 708/1236/121 +f 711/1233/122 709/1237/122 713/1229/122 +f 710/1227/105 716/1231/138 712/1235/105 +f 712/1235/133 715/1228/133 708/1238/133 +f 727/1239/133 721/1240/133 720/1241/133 +f 733/1242/133 722/1243/133 723/1244/133 +f 718/1245/131 729/1246/131 728/1247/131 +f 718/1248/121 727/1239/121 720/1249/121 +f 729/1246/122 721/1250/122 726/1251/122 +f 726/1251/105 724/1252/105 725/1253/105 +f 727/1239/105 722/1254/105 724/1252/105 +f 729/1246/105 725/1253/105 723/1255/105 +f 728/1247/105 723/1255/105 722/1254/105 +f 732/1256/105 730/1257/105 731/1258/105 +f 732/1256/122 724/1259/122 722/1260/122 +f 730/1257/121 723/1261/121 725/1262/121 +f 731/1258/131 725/1263/131 724/1264/131 +f 741/1265/122 737/1266/122 744/1267/122 +f 739/1268/105 745/1269/105 742/1270/105 +f 739/1268/135 743/1271/135 738/1272/135 +f 745/1269/136 741/1265/136 744/1267/136 +f 734/1273/121 743/1271/121 736/1274/121 +f 753/1275/122 749/1276/122 756/1277/122 +f 751/1278/105 757/1279/105 754/1280/105 +f 751/1278/135 755/1281/135 750/1282/135 +f 757/1279/136 753/1275/136 756/1277/136 +f 746/1283/121 755/1281/121 748/1284/121 +f 765/1285/122 761/1286/122 768/1287/122 +f 763/1288/105 769/1289/105 766/1290/105 +f 763/1288/135 767/1291/135 762/1292/135 +f 769/1289/136 765/1285/136 768/1287/136 +f 758/1293/121 767/1291/121 760/1294/121 +f 777/1295/122 773/1296/122 780/1297/122 +f 775/1298/105 781/1299/105 778/1300/105 +f 775/1298/135 779/1301/135 774/1302/135 +f 781/1299/136 777/1295/136 780/1297/136 +f 770/1303/121 779/1301/121 772/1304/121 +f 789/1305/122 785/1306/122 792/1307/122 +f 787/1308/105 793/1309/105 790/1310/105 +f 787/1308/135 791/1311/135 786/1312/135 +f 793/1309/136 789/1305/136 792/1307/136 +f 782/1313/121 791/1311/121 784/1314/121 +f 801/1315/122 797/1316/122 804/1317/122 +f 799/1318/105 805/1319/105 802/1320/105 +f 799/1318/135 803/1321/135 798/1322/135 +f 805/1319/136 801/1315/136 804/1317/136 +f 794/1323/121 803/1321/121 796/1324/121 +f 813/1325/122 809/1326/122 816/1327/122 +f 811/1328/105 817/1329/105 814/1330/105 +f 811/1328/135 815/1331/135 810/1332/135 +f 817/1329/136 813/1325/136 816/1327/136 +f 806/1333/121 815/1331/121 808/1334/121 +f 820/1335/140 819/1336/121 818/1337/121 +f 822/1338/141 821/1339/140 820/1335/140 +f 824/1340/142 823/1341/141 822/1338/141 +f 826/1342/143 825/1343/142 824/1340/142 +f 828/1344/122 827/1345/143 826/1342/143 +f 840/1346/131 830/1347/131 832/1348/131 +f 823/1349/133 827/1350/133 831/1351/133 +f 833/1352/133 835/1353/133 819/1354/133 +f 830/1347/131 837/1355/131 828/1356/131 +f 832/1348/131 828/1356/131 824/1357/131 +f 842/1358/144 857/1359/145 849/1360/145 +f 853/1361/133 855/1362/133 857/1363/133 +f 836/1364/133 831/1351/133 829/1365/133 +f 837/1366/122 829/1367/122 828/1344/122 +f 835/1368/121 818/1337/121 819/1336/121 +f 834/1369/131 832/1348/131 818/1370/131 +f 839/1371/133 833/1352/133 831/1351/133 +f 848/1372/146 855/1373/147 847/1374/147 +f 846/1375/143 853/1376/142 845/1377/142 +f 844/1378/141 850/1379/140 843/1380/140 +f 849/1381/145 856/1382/146 848/1372/146 +f 847/1374/147 854/1383/143 846/1375/143 +f 843/1380/140 852/1384/144 842/1358/144 +f 845/1377/142 851/1385/141 844/1378/141 +f 859/1386/148 673/1387/148 866/1388/148 +f 863/1389/121 1140/1390/121 1132/1391/121 +f 664/1157/122 873/1392/122 672/1158/122 +f 871/1393/148 863/1394/148 864/1395/148 +f 869/1396/148 861/1397/148 862/1398/148 +f 862/1399/122 881/1400/122 869/1401/122 +f 867/1402/148 858/1403/148 860/1404/148 +f 864/1395/133 1132/1405/133 1131/1406/133 +f 869/1407/105 878/1408/105 870/1409/105 +f 862/1398/133 1134/1410/133 1133/1411/133 +f 860/1404/133 1136/1412/133 1135/1413/133 +f 859/1414/121 1138/1415/121 1130/1416/121 +f 863/1389/121 878/1417/121 879/1418/121 +f 872/1419/148 886/1420/148 873/1421/148 +f 876/1422/148 874/1423/148 875/1424/148 +f 879/1425/148 881/1426/148 880/1427/148 +f 882/1428/148 884/1429/148 883/1430/148 +f 875/1424/133 1139/1431/133 1138/1432/133 +f 879/1425/133 1141/1433/133 1140/1434/133 +f 883/1430/133 1143/1435/133 1142/1436/133 +f 861/1437/121 882/1438/121 883/1439/121 +f 861/1437/121 1142/1440/121 1134/1441/121 +f 867/1442/105 882/1428/105 868/1443/105 +f 859/1414/121 876/1444/121 875/1445/121 +f 860/1446/122 885/1447/122 867/1448/122 +f 871/1449/105 876/1422/105 866/1450/105 +f 864/1451/122 877/1452/122 871/1453/122 +f 858/1454/121 1144/1455/121 1136/1456/121 +f 858/1454/121 886/1457/121 887/1458/121 +f 672/1459/105 886/1420/105 865/1460/105 +f 1137/1461/133 887/1462/133 872/1419/133 +f 1135/1463/122 884/1464/122 860/1446/122 +f 1133/1465/122 880/1466/122 862/1399/122 +f 1131/1467/122 874/1468/122 864/1451/122 +f 1130/1469/133 665/1470/133 859/1386/133 +f 1128/1471/122 872/1472/122 664/1157/122 +f 665/1473/121 1127/1152/121 673/1151/121 +f 671/1148/120 1126/1156/123 672/1158/124 +f 1120/1140/116 899/1474/115 1121/1141/115 +f 1121/1141/115 900/1475/117 1122/1143/117 +f 1122/1143/117 901/1476/118 1123/1145/118 +f 1123/1145/118 902/1477/119 1124/1147/119 +f 1124/1147/119 903/1478/120 1125/1149/120 +f 905/1479/121 1120/1150/121 1127/1152/121 +f 895/1480/122 906/1481/122 888/1482/122 +f 1126/1156/123 896/1483/122 1128/1471/122 +f 1099/1484/149 1097/1485/149 894/1486/149 +f 888/1487/149 899/1488/149 898/1489/149 +f 892/1490/149 899/1488/149 893/1491/149 +f 891/1492/149 900/1493/149 892/1490/149 +f 891/1492/149 902/1494/149 901/1495/149 +f 889/1496/149 902/1494/149 890/1497/149 +f 894/1486/149 903/1498/149 889/1496/149 +f 888/1487/149 905/1499/149 895/1500/149 +f 908/1501/149 907/1502/149 913/1503/149 +f 889/1504/126 912/1505/125 894/1506/125 +f 891/1507/128 910/1508/127 890/1509/127 +f 893/1510/130 908/1511/129 892/1512/129 +f 894/1513/131 913/1514/131 895/1515/131 +f 890/1509/127 911/1516/126 889/1504/126 +f 892/1512/129 909/1517/128 891/1507/128 +f 888/1518/132 907/1519/130 893/1510/130 +f 920/1520/131 914/1521/131 919/1522/131 +f 917/1523/122 920/1524/122 925/1525/122 +f 924/1526/149 918/1527/149 922/1528/149 +f 917/1529/133 923/1530/133 916/1531/133 +f 922/1528/150 925/1532/150 924/1526/150 +f 923/1533/151 918/1527/151 919/1534/151 +f 920/1524/152 924/1526/152 925/1525/152 +f 919/1522/153 921/1535/153 920/1520/153 +f 923/1533/121 914/1536/121 916/1537/121 +f 937/1538/131 926/1539/131 930/1540/131 +f 935/1541/133 933/1542/133 936/1543/133 +f 933/1542/154 937/1538/155 936/1543/155 +f 931/1544/131 934/1545/131 937/1538/131 +f 932/1546/121 926/1547/121 928/1548/121 +f 929/1549/122 931/1544/122 933/1542/122 +f 936/1543/155 930/1540/149 932/1546/149 +f 935/1541/133 932/1546/133 928/1550/133 +f 949/1551/131 938/1552/131 942/1553/131 +f 947/1554/133 945/1555/133 948/1556/133 +f 945/1555/154 949/1551/155 948/1556/155 +f 943/1557/131 946/1558/131 949/1551/131 +f 944/1559/121 938/1560/121 940/1561/121 +f 941/1562/122 943/1557/122 945/1555/122 +f 948/1556/155 942/1553/149 944/1559/149 +f 947/1554/133 944/1559/133 940/1563/133 +f 953/1564/133 959/1565/133 952/1566/133 +f 954/1567/133 965/1568/133 955/1569/133 +f 961/1570/131 950/1571/131 960/1572/131 +f 959/1565/121 950/1573/121 952/1574/121 +f 953/1575/122 961/1570/122 958/1576/122 +f 956/1577/149 958/1576/149 957/1578/149 +f 956/1577/149 960/1572/149 959/1565/149 +f 955/1579/149 958/1576/149 961/1570/149 +f 955/1579/149 960/1572/149 954/1580/149 +f 962/1581/149 964/1582/149 963/1583/149 +f 956/1584/122 964/1582/122 954/1585/122 +f 955/1586/121 962/1581/121 957/1587/121 +f 957/1588/131 963/1583/131 956/1589/131 +f 969/1590/122 973/1591/122 976/1592/122 +f 977/1593/149 971/1594/149 974/1595/149 +f 975/1596/151 971/1594/151 970/1597/151 +f 973/1591/152 977/1593/152 976/1592/152 +f 975/1596/121 966/1598/121 968/1599/121 +f 981/1600/122 985/1601/122 988/1602/122 +f 989/1603/149 983/1604/149 986/1605/149 +f 987/1606/151 983/1604/151 982/1607/151 +f 985/1601/152 989/1603/152 988/1602/152 +f 987/1606/121 978/1608/121 980/1609/121 +f 993/1610/122 997/1611/122 1000/1612/122 +f 1001/1613/149 995/1614/149 998/1615/149 +f 999/1616/151 995/1614/151 994/1617/151 +f 997/1611/152 1001/1613/152 1000/1612/152 +f 999/1616/121 990/1618/121 992/1619/121 +f 1005/1620/122 1009/1621/122 1012/1622/122 +f 1013/1623/149 1007/1624/149 1010/1625/149 +f 1011/1626/151 1007/1624/151 1006/1627/151 +f 1009/1621/152 1013/1623/152 1012/1622/152 +f 1011/1626/121 1002/1628/121 1004/1629/121 +f 1017/1630/122 1021/1631/122 1024/1632/122 +f 1025/1633/149 1019/1634/149 1022/1635/149 +f 1023/1636/151 1019/1634/151 1018/1637/151 +f 1021/1631/152 1025/1633/152 1024/1632/152 +f 1023/1636/121 1014/1638/121 1016/1639/121 +f 1029/1640/122 1033/1641/122 1036/1642/122 +f 1037/1643/149 1031/1644/149 1034/1645/149 +f 1035/1646/151 1031/1644/151 1030/1647/151 +f 1033/1641/152 1037/1643/152 1036/1642/152 +f 1035/1646/121 1026/1648/121 1028/1649/121 +f 1041/1650/122 1045/1651/122 1048/1652/122 +f 1049/1653/149 1043/1654/149 1046/1655/149 +f 1047/1656/151 1043/1654/151 1042/1657/151 +f 1045/1651/152 1049/1653/152 1048/1652/152 +f 1047/1656/121 1038/1658/121 1040/1659/121 +f 1051/1660/121 1052/1661/144 1050/1662/121 +f 1053/1663/144 1054/1664/145 1052/1661/144 +f 1055/1665/145 1056/1666/146 1054/1664/145 +f 1057/1667/146 1058/1668/147 1056/1666/146 +f 1059/1669/147 1060/1670/122 1058/1668/147 +f 1062/1671/131 1072/1672/131 1064/1673/131 +f 1057/1674/133 1055/1675/133 1063/1676/133 +f 1065/1677/133 1067/1678/133 1073/1679/133 +f 1062/1671/131 1069/1680/131 1070/1681/131 +f 1056/1682/131 1060/1683/131 1064/1673/131 +f 1081/1684/141 1084/1685/140 1074/1686/140 +f 1089/1687/133 1087/1688/133 1085/1689/133 +f 1063/1676/133 1068/1690/133 1061/1691/133 +f 1061/1692/122 1069/1693/122 1060/1670/122 +f 1050/1662/121 1067/1694/121 1051/1660/121 +f 1064/1673/131 1066/1695/131 1050/1696/131 +f 1065/1677/133 1071/1697/133 1063/1676/133 +f 1087/1698/143 1080/1699/142 1079/1700/143 +f 1085/1701/146 1078/1702/147 1077/1703/146 +f 1082/1704/144 1076/1705/145 1075/1706/144 +f 1088/1707/142 1081/1708/141 1080/1699/142 +f 1086/1709/147 1079/1700/143 1078/1702/147 +f 1084/1685/140 1075/1706/144 1074/1686/140 +f 1083/1710/145 1077/1703/146 1076/1705/145 +f 905/1711/156 1091/1712/156 1098/1713/156 +f 1140/1390/121 1095/1714/121 1132/1391/121 +f 1105/1715/122 896/1483/122 904/1716/122 +f 1095/1717/156 1103/1718/156 1096/1719/156 +f 1093/1720/156 1101/1721/156 1094/1722/156 +f 1113/1723/122 1094/1724/122 1101/1725/122 +f 1090/1726/156 1099/1727/156 1092/1728/156 +f 1132/1405/133 1096/1719/133 1131/1406/133 +f 1110/1729/149 1101/1730/149 1102/1731/149 +f 1134/1410/133 1094/1722/133 1133/1411/133 +f 1136/1412/133 1092/1728/133 1135/1413/133 +f 1138/1415/121 1091/1732/121 1130/1416/121 +f 1095/1714/121 1110/1733/121 1102/1734/121 +f 1118/1735/156 1104/1736/156 1105/1737/156 +f 1106/1738/156 1108/1739/156 1107/1740/156 +f 1111/1741/156 1113/1742/156 1110/1729/156 +f 1116/1743/156 1114/1744/156 1115/1745/156 +f 1139/1431/133 1107/1740/133 1138/1432/133 +f 1141/1433/133 1111/1741/133 1140/1434/133 +f 1143/1435/133 1115/1745/133 1142/1436/133 +f 1093/1746/121 1114/1747/121 1100/1748/121 +f 1142/1440/121 1093/1746/121 1134/1441/121 +f 1114/1744/149 1099/1749/149 1100/1750/149 +f 1091/1732/121 1108/1751/121 1098/1752/121 +f 1117/1753/122 1092/1754/122 1099/1755/122 +f 1108/1739/149 1103/1756/149 1098/1757/149 +f 1109/1758/122 1096/1759/122 1103/1760/122 +f 1144/1455/121 1090/1761/121 1136/1456/121 +f 1090/1761/121 1118/1762/121 1097/1763/121 +f 1118/1735/149 904/1764/149 1097/1765/149 +f 1119/1766/133 1137/1461/133 1104/1736/133 +f 1116/1767/122 1135/1463/122 1092/1754/122 +f 1112/1768/122 1133/1465/122 1094/1724/122 +f 1106/1769/122 1131/1467/122 1096/1759/122 +f 897/1770/133 1130/1469/133 1091/1712/133 +f 1104/1771/122 1128/1471/122 896/1483/122 +f 1127/1152/121 897/1772/121 905/1479/121 +f 1126/1156/123 903/1478/120 904/1716/124 +f 1146/1773/157 1147/1774/134 1145/1775/157 +f 1148/1776/134 1149/1777/105 1147/1774/134 +f 1150/1778/105 1151/1779/137 1149/1777/105 +f 1152/1780/137 1153/1781/158 1151/1779/137 +f 1147/1782/122 1151/1783/122 1153/1784/122 +f 1146/1785/121 1154/1786/121 1152/1787/121 +f 1157/1788/122 1155/1789/136 1156/1790/122 +f 1155/1791/133 1173/1792/133 1172/1793/133 +f 1158/1794/136 1165/1795/105 1155/1789/136 +f 1159/1796/105 1166/1797/135 1165/1795/105 +f 1168/1798/133 1182/1799/133 1180/1800/133 +f 1160/1801/135 1167/1802/121 1166/1797/135 +f 1166/1803/133 1173/1792/133 1165/1804/133 +f 1161/1805/121 1168/1806/151 1167/1802/121 +f 1156/1807/133 1172/1793/133 1171/1808/133 +f 1162/1809/151 1169/1810/149 1168/1806/151 +f 1163/1811/149 1170/1812/152 1169/1813/149 +f 1164/1814/152 1156/1790/122 1170/1812/152 +f 1171/1815/122 1175/1816/136 1174/1817/122 +f 1172/1818/136 1177/1819/105 1175/1816/136 +f 1173/1820/105 1179/1821/135 1177/1819/105 +f 1176/1822/135 1181/1823/121 1179/1821/135 +f 1178/1824/121 1183/1825/151 1181/1823/121 +f 1180/1826/151 1185/1827/149 1183/1825/151 +f 1184/1828/152 1174/1817/122 1186/1829/152 +f 1182/1830/149 1186/1829/152 1185/1831/149 +f 1167/1832/133 1180/1800/133 1178/1833/133 +f 1156/1807/133 1184/1834/133 1170/1835/133 +f 1185/1836/131 1186/1837/131 1179/1838/131 +f 1167/1832/133 1176/1839/133 1166/1803/133 +f 1170/1835/133 1182/1799/133 1169/1840/133 +f 1232/1841/133 1233/1842/133 1234/1843/133 +f 1235/1844/159 1234/1845/160 1233/1846/159 +f 1238/1847/161 1240/1848/161 1237/1849/161 +f 1235/1850/131 1238/1851/131 1241/1852/131 +f 1245/1853/131 1246/1854/131 1241/1852/131 +f 1242/1855/162 1229/1856/162 1228/1857/162 +f 1236/1858/160 1227/1859/163 1234/1845/160 +f 1245/1860/164 1231/1861/164 1230/1862/164 +f 1241/1863/165 1237/1849/165 1232/1864/165 +f 1243/1865/166 1228/1866/166 1227/1859/166 +f 1246/1867/167 1230/1862/167 1229/1856/167 +f 1244/1868/168 1232/1864/168 1231/1861/168 +f 1233/1846/159 1239/1869/169 1235/1844/159 +f 1233/1842/133 1237/1870/133 1240/1871/133 +f 1252/1872/133 1253/1873/133 1254/1874/133 +f 1255/1875/170 1254/1876/171 1253/1877/170 +f 1258/1878/172 1260/1879/172 1257/1880/172 +f 1255/1881/131 1258/1882/131 1261/1883/131 +f 1265/1884/131 1266/1885/131 1261/1883/131 +f 1262/1886/173 1249/1887/173 1248/1888/173 +f 1256/1889/171 1247/1890/174 1254/1876/171 +f 1265/1891/175 1251/1892/175 1250/1893/175 +f 1261/1894/176 1257/1880/176 1252/1895/176 +f 1263/1896/177 1248/1897/177 1247/1890/177 +f 1266/1898/178 1250/1893/178 1249/1887/178 +f 1264/1899/179 1252/1895/179 1251/1892/179 +f 1255/1875/170 1260/1879/180 1259/1900/180 +f 1253/1873/133 1257/1901/133 1260/1902/133 +f 1272/1903/133 1273/1904/181 1274/1905/133 +f 1275/1906/182 1274/1907/183 1273/1908/182 +f 1278/1909/184 1280/1910/184 1277/1911/184 +f 1275/1912/185 1278/1913/131 1281/1914/131 +f 1285/1915/131 1286/1916/131 1281/1914/131 +f 1282/1917/186 1269/1918/186 1268/1919/186 +f 1276/1920/183 1267/1921/187 1274/1907/183 +f 1285/1922/188 1271/1923/188 1270/1924/188 +f 1281/1925/189 1277/1911/189 1272/1926/189 +f 1267/1921/190 1282/1927/190 1268/1928/190 +f 1286/1929/191 1270/1924/191 1269/1918/191 +f 1284/1930/192 1272/1926/193 1271/1923/193 +f 1273/1908/182 1279/1931/194 1275/1906/182 +f 1273/1904/181 1277/1932/133 1280/1933/133 +f 1292/1934/133 1293/1935/133 1294/1936/133 +f 1295/1937/195 1294/1938/196 1293/1939/195 +f 1298/1940/197 1300/1941/197 1297/1942/197 +f 1295/1943/131 1298/1944/131 1301/1945/131 +f 1305/1946/131 1306/1947/131 1301/1945/131 +f 1302/1948/198 1289/1949/198 1288/1950/198 +f 1296/1951/196 1287/1952/199 1294/1938/196 +f 1290/1953/200 1304/1954/200 1291/1955/200 +f 1301/1956/201 1297/1942/201 1292/1957/201 +f 1303/1958/202 1288/1959/202 1287/1952/202 +f 1306/1960/203 1290/1953/203 1289/1949/203 +f 1304/1954/204 1292/1957/204 1291/1955/204 +f 1293/1939/195 1299/1961/205 1295/1937/195 +f 1293/1935/133 1297/1962/133 1300/1963/133 +f 667/1139/115 666/1964/116 1120/1140/116 +f 668/1142/117 667/1139/115 1121/1141/115 +f 669/1144/118 668/1142/117 1122/1143/117 +f 670/1146/119 669/1144/118 1123/1145/118 +f 671/1148/120 670/1146/119 1124/1147/119 +f 1120/1150/121 666/1965/121 673/1151/121 +f 674/1153/122 681/1966/122 663/1154/122 +f 1126/1156/123 1128/1471/122 664/1157/122 +f 663/1161/105 662/1173/105 869/1967/105 +f 662/1173/105 672/1968/105 865/1969/105 +f 867/1970/105 662/1173/105 865/1969/105 +f 867/1970/105 868/1971/105 662/1173/105 +f 868/1971/105 869/1967/105 662/1173/105 +f 870/1972/105 871/1973/105 663/1161/105 +f 871/1973/105 866/1159/105 663/1161/105 +f 869/1967/105 870/1972/105 663/1161/105 +f 656/1162/105 666/1974/105 667/1163/105 +f 667/1163/105 668/1166/105 660/1165/105 +f 668/1166/105 669/1168/105 659/1167/105 +f 669/1168/105 670/1170/105 658/1169/105 +f 670/1170/105 671/1172/105 657/1171/105 +f 671/1172/105 672/1968/105 662/1173/105 +f 673/1160/105 666/1974/105 656/1162/105 +f 680/1176/105 681/1975/105 678/1174/105 +f 681/1975/105 674/1976/105 675/1977/105 +f 676/1978/105 681/1975/105 675/1977/105 +f 676/1978/105 677/1979/105 681/1975/105 +f 677/1979/105 678/1174/105 681/1975/105 +f 680/1177/125 679/1189/126 657/1178/126 +f 678/1180/127 677/1190/128 659/1181/128 +f 676/1183/129 675/1191/130 661/1184/130 +f 663/1186/131 681/1980/131 680/1187/131 +f 679/1189/126 678/1180/127 658/1182/127 +f 677/1190/128 676/1183/129 660/1185/129 +f 675/1191/130 674/1981/132 656/1192/132 +f 682/1193/131 683/1982/131 688/1194/131 +f 688/1196/122 683/1983/122 685/1197/122 +f 686/1199/105 689/1208/105 692/1200/105 +f 691/1202/133 693/1205/133 685/1203/133 +f 693/1205/134 691/1202/134 690/1201/134 +f 686/1199/135 690/1201/135 691/1206/135 +f 692/1200/136 689/1208/136 688/1196/136 +f 689/1208/137 686/1199/137 687/1195/137 +f 682/1209/121 687/1207/121 691/1206/121 +f 694/1211/131 702/1218/131 705/1212/131 +f 703/1214/133 704/1217/133 701/1215/133 +f 705/1212/138 699/1219/139 701/1215/139 +f 702/1218/131 695/1984/131 699/1219/131 +f 694/1220/121 698/1213/121 700/1221/121 +f 699/1219/122 695/1985/122 697/1223/122 +f 698/1213/105 705/1212/138 704/1217/138 +f 700/1221/133 704/1217/133 703/1214/133 +f 706/1225/131 714/1232/131 717/1226/131 +f 715/1228/133 716/1231/133 713/1229/133 +f 717/1226/138 711/1233/139 713/1229/139 +f 714/1232/131 707/1986/131 711/1233/131 +f 706/1234/121 710/1227/121 712/1235/121 +f 711/1233/122 707/1987/122 709/1237/122 +f 710/1227/105 717/1226/138 716/1231/138 +f 712/1235/133 716/1231/133 715/1228/133 +f 727/1239/133 726/1251/133 721/1240/133 +f 733/1242/133 732/1256/133 722/1243/133 +f 718/1245/131 719/1988/131 729/1246/131 +f 718/1248/121 728/1247/121 727/1239/121 +f 729/1246/122 719/1989/122 721/1250/122 +f 726/1251/105 727/1239/105 724/1252/105 +f 727/1239/105 728/1247/105 722/1254/105 +f 729/1246/105 726/1251/105 725/1253/105 +f 728/1247/105 729/1246/105 723/1255/105 +f 732/1256/105 733/1242/105 730/1257/105 +f 732/1256/122 731/1258/122 724/1259/122 +f 730/1257/121 733/1242/121 723/1261/121 +f 731/1258/131 730/1257/131 725/1263/131 +f 741/1265/122 735/1990/122 737/1266/122 +f 739/1268/105 740/1991/105 745/1269/105 +f 739/1268/135 742/1270/135 743/1271/135 +f 745/1269/136 740/1991/136 741/1265/136 +f 734/1273/121 738/1272/121 743/1271/121 +f 753/1275/122 747/1992/122 749/1276/122 +f 751/1278/105 752/1993/105 757/1279/105 +f 751/1278/135 754/1280/135 755/1281/135 +f 757/1279/136 752/1993/136 753/1275/136 +f 746/1283/121 750/1282/121 755/1281/121 +f 765/1285/122 759/1994/122 761/1286/122 +f 763/1288/105 764/1995/105 769/1289/105 +f 763/1288/135 766/1290/135 767/1291/135 +f 769/1289/136 764/1995/136 765/1285/136 +f 758/1293/121 762/1292/121 767/1291/121 +f 777/1295/122 771/1996/122 773/1296/122 +f 775/1298/105 776/1997/105 781/1299/105 +f 775/1298/135 778/1300/135 779/1301/135 +f 781/1299/136 776/1997/136 777/1295/136 +f 770/1303/121 774/1302/121 779/1301/121 +f 789/1305/122 783/1998/122 785/1306/122 +f 787/1308/105 788/1999/105 793/1309/105 +f 787/1308/135 790/1310/135 791/1311/135 +f 793/1309/136 788/1999/136 789/1305/136 +f 782/1313/121 786/1312/121 791/1311/121 +f 801/1315/122 795/2000/122 797/1316/122 +f 799/1318/105 800/2001/105 805/1319/105 +f 799/1318/135 802/1320/135 803/1321/135 +f 805/1319/136 800/2001/136 801/1315/136 +f 794/1323/121 798/1322/121 803/1321/121 +f 813/1325/122 807/2002/122 809/1326/122 +f 811/1328/105 812/2003/105 817/1329/105 +f 811/1328/135 814/1330/135 815/1331/135 +f 817/1329/136 812/2003/136 813/1325/136 +f 806/1333/121 810/1332/121 815/1331/121 +f 820/1335/140 821/1339/140 819/1336/121 +f 822/1338/141 823/1341/141 821/1339/140 +f 824/1340/142 825/1343/142 823/1341/141 +f 826/1342/143 827/1345/143 825/1343/142 +f 828/1344/122 829/1367/122 827/1345/143 +f 840/1346/131 838/2004/131 830/1347/131 +f 819/1354/133 821/2005/133 823/1349/133 +f 823/1349/133 825/2006/133 827/1350/133 +f 827/1350/133 829/1365/133 831/1351/133 +f 831/1351/133 833/1352/133 819/1354/133 +f 819/1354/133 823/1349/133 831/1351/133 +f 833/1352/133 841/2007/133 835/1353/133 +f 830/1347/131 838/2004/131 837/1355/131 +f 820/2008/131 818/1370/131 832/1348/131 +f 832/1348/131 830/1347/131 828/1356/131 +f 828/1356/131 826/2009/131 824/1357/131 +f 824/1357/131 822/2010/131 820/2008/131 +f 820/2008/131 832/1348/131 824/1357/131 +f 842/1358/144 852/1384/144 857/1359/145 +f 857/1363/133 852/2011/133 850/2012/133 +f 850/2012/133 851/2013/133 857/1363/133 +f 851/2013/133 853/1361/133 857/1363/133 +f 853/1361/133 854/2014/133 855/1362/133 +f 855/1362/133 856/2015/133 857/1363/133 +f 836/1364/133 839/1371/133 831/1351/133 +f 837/1366/122 836/2016/122 829/1367/122 +f 835/1368/121 834/2017/121 818/1337/121 +f 834/1369/131 840/1346/131 832/1348/131 +f 839/1371/133 841/2007/133 833/1352/133 +f 848/1372/146 856/1382/146 855/1373/147 +f 846/1375/143 854/1383/143 853/1376/142 +f 844/1378/141 851/1385/141 850/1379/140 +f 849/1381/145 857/2018/145 856/1382/146 +f 847/1374/147 855/1373/147 854/1383/143 +f 843/1380/140 850/1379/140 852/1384/144 +f 845/1377/142 853/1376/142 851/1385/141 +f 859/1386/148 665/1470/148 673/1387/148 +f 863/1389/121 879/1418/121 1140/1390/121 +f 664/1157/122 872/1472/122 873/1392/122 +f 871/1393/148 870/2019/148 863/1394/148 +f 869/1396/148 868/2020/148 861/1397/148 +f 862/1399/122 880/1466/122 881/1400/122 +f 867/1402/148 865/2021/148 858/1403/148 +f 864/1395/133 863/1394/133 1132/1405/133 +f 869/1407/105 881/1426/105 878/1408/105 +f 862/1398/133 861/1397/133 1134/1410/133 +f 860/1404/133 858/1403/133 1136/1412/133 +f 859/1414/121 875/1445/121 1138/1415/121 +f 863/1389/121 870/2022/121 878/1417/121 +f 872/1419/148 887/1462/148 886/1420/148 +f 876/1422/148 877/2023/148 874/1423/148 +f 879/1425/148 878/1408/148 881/1426/148 +f 882/1428/148 885/2024/148 884/1429/148 +f 875/1424/133 874/1423/133 1139/1431/133 +f 879/1425/133 880/1427/133 1141/1433/133 +f 883/1430/133 884/1429/133 1143/1435/133 +f 861/1437/121 868/2025/121 882/1438/121 +f 861/1437/121 883/1439/121 1142/1440/121 +f 867/1442/105 885/2024/105 882/1428/105 +f 859/1414/121 866/2026/121 876/1444/121 +f 860/1446/122 884/1464/122 885/1447/122 +f 871/1449/105 877/2023/105 876/1422/105 +f 864/1451/122 874/1468/122 877/1452/122 +f 858/1454/121 887/1458/121 1144/1455/121 +f 858/1454/121 865/2027/121 886/1457/121 +f 672/1459/105 873/1421/105 886/1420/105 +f 1137/1461/133 1144/2028/133 887/1462/133 +f 1135/1463/122 1143/2029/122 884/1464/122 +f 1133/1465/122 1141/2030/122 880/1466/122 +f 1131/1467/122 1139/2031/122 874/1468/122 +f 1130/1469/133 1129/2032/133 665/1470/133 +f 1128/1471/122 1137/2033/122 872/1472/122 +f 665/1473/121 1129/2034/121 1127/1152/121 +f 671/1148/120 1125/1149/120 1126/1156/123 +f 1120/1140/116 898/2035/116 899/1474/115 +f 1121/1141/115 899/1474/115 900/1475/117 +f 1122/1143/117 900/1475/117 901/1476/118 +f 1123/1145/118 901/1476/118 902/1477/119 +f 1124/1147/119 902/1477/119 903/1478/120 +f 905/1479/121 898/2036/121 1120/1150/121 +f 895/1480/122 913/2037/122 906/1481/122 +f 1126/1156/123 904/1716/124 896/1483/122 +f 904/2038/149 894/1486/149 1097/1485/149 +f 894/1486/149 895/1500/149 1101/2039/149 +f 1099/1484/149 894/1486/149 1100/2040/149 +f 895/1500/149 905/1499/149 1098/2041/149 +f 1098/2041/149 1103/2042/149 895/1500/149 +f 1103/2042/149 1102/2043/149 895/1500/149 +f 1101/2039/149 1100/2040/149 894/1486/149 +f 1102/2043/149 1101/2039/149 895/1500/149 +f 888/1487/149 893/1491/149 899/1488/149 +f 892/1490/149 900/1493/149 899/1488/149 +f 891/1492/149 901/1495/149 900/1493/149 +f 891/1492/149 890/1497/149 902/1494/149 +f 889/1496/149 903/1498/149 902/1494/149 +f 894/1486/149 904/2038/149 903/1498/149 +f 888/1487/149 898/1489/149 905/1499/149 +f 906/2044/149 913/1503/149 907/1502/149 +f 913/1503/149 912/2045/149 910/2046/149 +f 912/2045/149 911/2047/149 910/2046/149 +f 910/2046/149 909/2048/149 913/1503/149 +f 909/2048/149 908/1501/149 913/1503/149 +f 889/1504/126 911/1516/126 912/1505/125 +f 891/1507/128 909/1517/128 910/1508/127 +f 893/1510/130 907/1519/130 908/1511/129 +f 894/1513/131 912/2049/131 913/1514/131 +f 890/1509/127 910/1508/127 911/1516/126 +f 892/1512/129 908/1511/129 909/1517/128 +f 888/1518/132 906/2050/132 907/1519/130 +f 920/1520/131 915/2051/131 914/1521/131 +f 917/1523/122 915/2052/122 920/1524/122 +f 924/1526/149 921/1535/149 918/1527/149 +f 917/1529/133 925/1532/133 923/1530/133 +f 922/1528/150 923/1530/150 925/1532/150 +f 923/1533/151 922/1528/151 918/1527/151 +f 920/1524/152 921/1535/152 924/1526/152 +f 919/1522/153 918/1527/153 921/1535/153 +f 923/1533/121 919/1534/121 914/1536/121 +f 937/1538/131 934/1545/131 926/1539/131 +f 935/1541/133 929/2053/133 933/1542/133 +f 933/1542/154 931/1544/154 937/1538/155 +f 931/1544/131 927/2054/131 934/1545/131 +f 932/1546/121 930/1540/121 926/1547/121 +f 929/1549/122 927/2055/122 931/1544/122 +f 936/1543/155 937/1538/155 930/1540/149 +f 935/1541/133 936/1543/133 932/1546/133 +f 949/1551/131 946/1558/131 938/1552/131 +f 947/1554/133 941/2056/133 945/1555/133 +f 945/1555/154 943/1557/154 949/1551/155 +f 943/1557/131 939/2057/131 946/1558/131 +f 944/1559/121 942/1553/121 938/1560/121 +f 941/1562/122 939/2058/122 943/1557/122 +f 948/1556/155 949/1551/155 942/1553/149 +f 947/1554/133 948/1556/133 944/1559/133 +f 953/1564/133 958/1576/133 959/1565/133 +f 954/1567/133 964/1582/133 965/1568/133 +f 961/1570/131 951/2059/131 950/1571/131 +f 959/1565/121 960/1572/121 950/1573/121 +f 953/1575/122 951/2060/122 961/1570/122 +f 956/1577/149 959/1565/149 958/1576/149 +f 956/1577/149 954/1580/149 960/1572/149 +f 955/1579/149 957/1578/149 958/1576/149 +f 955/1579/149 961/1570/149 960/1572/149 +f 962/1581/149 965/1568/149 964/1582/149 +f 956/1584/122 963/1583/122 964/1582/122 +f 955/1586/121 965/1568/121 962/1581/121 +f 957/1588/131 962/1581/131 963/1583/131 +f 969/1590/122 967/2061/122 973/1591/122 +f 977/1593/149 972/2062/149 971/1594/149 +f 975/1596/151 974/1595/151 971/1594/151 +f 973/1591/152 972/2062/152 977/1593/152 +f 975/1596/121 970/1597/121 966/1598/121 +f 981/1600/122 979/2063/122 985/1601/122 +f 989/1603/149 984/2064/149 983/1604/149 +f 987/1606/151 986/1605/151 983/1604/151 +f 985/1601/152 984/2064/152 989/1603/152 +f 987/1606/121 982/1607/121 978/1608/121 +f 993/1610/122 991/2065/122 997/1611/122 +f 1001/1613/149 996/2066/149 995/1614/149 +f 999/1616/151 998/1615/151 995/1614/151 +f 997/1611/152 996/2066/152 1001/1613/152 +f 999/1616/121 994/1617/121 990/1618/121 +f 1005/1620/122 1003/2067/122 1009/1621/122 +f 1013/1623/149 1008/2068/149 1007/1624/149 +f 1011/1626/151 1010/1625/151 1007/1624/151 +f 1009/1621/152 1008/2068/152 1013/1623/152 +f 1011/1626/121 1006/1627/121 1002/1628/121 +f 1017/1630/122 1015/2069/122 1021/1631/122 +f 1025/1633/149 1020/2070/149 1019/1634/149 +f 1023/1636/151 1022/1635/151 1019/1634/151 +f 1021/1631/152 1020/2070/152 1025/1633/152 +f 1023/1636/121 1018/1637/121 1014/1638/121 +f 1029/1640/122 1027/2071/122 1033/1641/122 +f 1037/1643/149 1032/2072/149 1031/1644/149 +f 1035/1646/151 1034/1645/151 1031/1644/151 +f 1033/1641/152 1032/2072/152 1037/1643/152 +f 1035/1646/121 1030/1647/121 1026/1648/121 +f 1041/1650/122 1039/2073/122 1045/1651/122 +f 1049/1653/149 1044/2074/149 1043/1654/149 +f 1047/1656/151 1046/1655/151 1043/1654/151 +f 1045/1651/152 1044/2074/152 1049/1653/152 +f 1047/1656/121 1042/1657/121 1038/1658/121 +f 1051/1660/121 1053/1663/144 1052/1661/144 +f 1053/1663/144 1055/1665/145 1054/1664/145 +f 1055/1665/145 1057/1667/146 1056/1666/146 +f 1057/1667/146 1059/1669/147 1058/1668/147 +f 1059/1669/147 1061/1692/122 1060/1670/122 +f 1062/1671/131 1070/1681/131 1072/1672/131 +f 1055/1675/133 1053/2075/133 1051/2076/133 +f 1051/2076/133 1065/1677/133 1055/1675/133 +f 1065/1677/133 1063/1676/133 1055/1675/133 +f 1063/1676/133 1061/1691/133 1059/2077/133 +f 1059/2077/133 1057/1674/133 1063/1676/133 +f 1065/1677/133 1051/2076/133 1067/1678/133 +f 1062/1671/131 1060/1683/131 1069/1680/131 +f 1064/1673/131 1050/1696/131 1052/2078/131 +f 1052/2078/131 1054/2079/131 1064/1673/131 +f 1054/2079/131 1056/1682/131 1064/1673/131 +f 1056/1682/131 1058/2080/131 1060/1683/131 +f 1060/1683/131 1062/1671/131 1064/1673/131 +f 1081/1684/141 1089/2081/141 1084/1685/140 +f 1082/2082/133 1084/2083/133 1089/1687/133 +f 1089/1687/133 1088/2084/133 1087/1688/133 +f 1087/1688/133 1086/2085/133 1085/1689/133 +f 1085/1689/133 1083/2086/133 1082/2082/133 +f 1082/2082/133 1089/1687/133 1085/1689/133 +f 1063/1676/133 1071/1697/133 1068/1690/133 +f 1061/1692/122 1068/2087/122 1069/1693/122 +f 1050/1662/121 1066/2088/121 1067/1694/121 +f 1064/1673/131 1072/1672/131 1066/1695/131 +f 1065/1677/133 1073/1679/133 1071/1697/133 +f 1087/1698/143 1088/1707/142 1080/1699/142 +f 1085/1701/146 1086/1709/147 1078/1702/147 +f 1082/1704/144 1083/1710/145 1076/1705/145 +f 1088/1707/142 1089/2089/141 1081/1708/141 +f 1086/1709/147 1087/1698/143 1079/1700/143 +f 1084/1685/140 1082/1704/144 1075/1706/144 +f 1083/1710/145 1085/1701/146 1077/1703/146 +f 905/1711/156 897/1770/156 1091/1712/156 +f 1140/1390/121 1111/2090/121 1095/1714/121 +f 1105/1715/122 1104/1771/122 896/1483/122 +f 1095/1717/156 1102/2091/156 1103/1718/156 +f 1093/1720/156 1100/2092/156 1101/1721/156 +f 1113/1723/122 1112/1768/122 1094/1724/122 +f 1090/1726/156 1097/2093/156 1099/1727/156 +f 1132/1405/133 1095/1717/133 1096/1719/133 +f 1110/1729/149 1113/1742/149 1101/1730/149 +f 1134/1410/133 1093/1720/133 1094/1722/133 +f 1136/1412/133 1090/1726/133 1092/1728/133 +f 1138/1415/121 1107/2094/121 1091/1732/121 +f 1095/1714/121 1111/2090/121 1110/1733/121 +f 1118/1735/156 1119/1766/156 1104/1736/156 +f 1106/1738/156 1109/2095/156 1108/1739/156 +f 1111/1741/156 1112/2096/156 1113/1742/156 +f 1116/1743/156 1117/2097/156 1114/1744/156 +f 1139/1431/133 1106/1738/133 1107/1740/133 +f 1141/1433/133 1112/2096/133 1111/1741/133 +f 1143/1435/133 1116/1743/133 1115/1745/133 +f 1093/1746/121 1115/2098/121 1114/1747/121 +f 1142/1440/121 1115/2098/121 1093/1746/121 +f 1114/1744/149 1117/2097/149 1099/1749/149 +f 1091/1732/121 1107/2094/121 1108/1751/121 +f 1117/1753/122 1116/1767/122 1092/1754/122 +f 1108/1739/149 1109/2095/149 1103/1756/149 +f 1109/1758/122 1106/1769/122 1096/1759/122 +f 1144/1455/121 1119/2099/121 1090/1761/121 +f 1090/1761/121 1119/2099/121 1118/1762/121 +f 1118/1735/149 1105/1737/149 904/1764/149 +f 1119/1766/133 1144/2028/133 1137/1461/133 +f 1116/1767/122 1143/2029/122 1135/1463/122 +f 1112/1768/122 1141/2030/122 1133/1465/122 +f 1106/1769/122 1139/2031/122 1131/1467/122 +f 897/1770/133 1129/2032/133 1130/1469/133 +f 1104/1771/122 1137/2033/122 1128/1471/122 +f 1127/1152/121 1129/2034/121 897/1772/121 +f 1126/1156/123 1125/1149/120 903/1478/120 +f 1146/1773/157 1148/1776/134 1147/1774/134 +f 1148/1776/134 1150/1778/105 1149/1777/105 +f 1150/1778/105 1152/1780/137 1151/1779/137 +f 1152/1780/137 1154/2100/158 1153/1781/158 +f 1153/1784/122 1145/2101/122 1147/1782/122 +f 1147/1782/122 1149/2102/122 1151/1783/122 +f 1150/2103/121 1148/2104/121 1152/1787/121 +f 1148/2104/121 1146/1785/121 1152/1787/121 +f 1157/1788/122 1158/1794/136 1155/1789/136 +f 1155/1791/133 1165/1804/133 1173/1792/133 +f 1158/1794/136 1159/1796/105 1165/1795/105 +f 1159/1796/105 1160/1801/135 1166/1797/135 +f 1168/1798/133 1169/1840/133 1182/1799/133 +f 1160/1801/135 1161/1805/121 1167/1802/121 +f 1166/1803/133 1176/1839/133 1173/1792/133 +f 1161/1805/121 1162/1809/151 1168/1806/151 +f 1156/1807/133 1155/1791/133 1172/1793/133 +f 1162/1809/151 1163/2105/149 1169/1810/149 +f 1163/1811/149 1164/1814/152 1170/1812/152 +f 1164/1814/152 1157/1788/122 1156/1790/122 +f 1171/1815/122 1172/1818/136 1175/1816/136 +f 1172/1818/136 1173/1820/105 1177/1819/105 +f 1173/1820/105 1176/1822/135 1179/1821/135 +f 1176/1822/135 1178/1824/121 1181/1823/121 +f 1178/1824/121 1180/1826/151 1183/1825/151 +f 1180/1826/151 1182/2106/149 1185/1827/149 +f 1184/1828/152 1171/1815/122 1174/1817/122 +f 1182/1830/149 1184/1828/152 1186/1829/152 +f 1167/1832/133 1168/1798/133 1180/1800/133 +f 1156/1807/133 1171/1808/133 1184/1834/133 +f 1186/1837/131 1174/2107/131 1179/1838/131 +f 1174/2107/131 1175/2108/131 1179/1838/131 +f 1175/2108/131 1177/2109/131 1179/1838/131 +f 1179/1838/131 1181/2110/131 1183/2111/131 +f 1183/2111/131 1185/1836/131 1179/1838/131 +f 1167/1832/133 1178/1833/133 1176/1839/133 +f 1170/1835/133 1184/1834/133 1182/1799/133 +f 1234/1843/133 1227/2112/133 1232/1841/133 +f 1227/2112/133 1228/2113/133 1232/1841/133 +f 1228/2113/133 1229/2114/133 1232/1841/133 +f 1229/2114/133 1230/2115/133 1232/1841/133 +f 1230/2115/133 1231/2116/133 1232/1841/133 +f 1235/1844/159 1236/1858/160 1234/1845/160 +f 1238/1847/161 1239/1869/161 1240/1848/161 +f 1235/1850/131 1239/2117/131 1238/1851/131 +f 1246/1854/131 1242/2118/131 1241/1852/131 +f 1242/2118/131 1243/2119/131 1241/1852/131 +f 1243/2119/131 1236/2120/131 1241/1852/131 +f 1236/2120/131 1235/1850/131 1241/1852/131 +f 1241/1852/131 1244/2121/185 1245/1853/131 +f 1242/1855/162 1246/1867/162 1229/1856/162 +f 1236/1858/160 1243/1865/163 1227/1859/163 +f 1245/1860/164 1244/1868/164 1231/1861/164 +f 1241/1863/165 1238/1847/165 1237/1849/165 +f 1243/1865/166 1242/2122/206 1228/1866/166 +f 1246/1867/167 1245/1860/167 1230/1862/167 +f 1244/1868/168 1241/1863/168 1232/1864/168 +f 1233/1846/159 1240/1848/169 1239/1869/169 +f 1233/1842/133 1232/1841/133 1237/1870/133 +f 1254/1874/133 1247/2123/133 1252/1872/133 +f 1247/2123/133 1248/2124/133 1252/1872/133 +f 1248/2124/133 1249/2125/133 1252/1872/133 +f 1249/2125/133 1250/2126/133 1252/1872/133 +f 1250/2126/133 1251/2127/133 1252/1872/133 +f 1255/1875/170 1256/1889/171 1254/1876/171 +f 1258/1878/172 1259/1900/172 1260/1879/172 +f 1255/1881/131 1259/2128/131 1258/1882/131 +f 1266/1885/131 1262/2129/131 1261/1883/131 +f 1262/2129/131 1263/2130/131 1261/1883/131 +f 1263/2130/131 1256/2131/131 1261/1883/131 +f 1256/2131/131 1255/1881/131 1261/1883/131 +f 1261/1883/131 1264/2132/131 1265/1884/131 +f 1262/1886/173 1266/1898/173 1249/1887/173 +f 1256/1889/171 1263/1896/174 1247/1890/174 +f 1265/1891/175 1264/1899/175 1251/1892/175 +f 1261/1894/176 1258/1878/176 1257/1880/176 +f 1263/1896/177 1262/2133/177 1248/1897/177 +f 1266/1898/178 1265/1891/178 1250/1893/178 +f 1264/1899/179 1261/1894/179 1252/1895/179 +f 1255/1875/170 1253/1877/170 1260/1879/180 +f 1253/1873/133 1252/1872/133 1257/1901/133 +f 1274/1905/133 1267/2134/133 1272/1903/133 +f 1267/2134/133 1268/2135/133 1272/1903/133 +f 1268/2135/133 1269/2136/133 1272/1903/133 +f 1269/2136/133 1270/2137/133 1272/1903/133 +f 1270/2137/133 1271/2138/133 1272/1903/133 +f 1275/1906/182 1276/1920/183 1274/1907/183 +f 1278/1909/184 1279/1931/184 1280/1910/184 +f 1275/1912/185 1279/2139/131 1278/1913/131 +f 1286/1916/131 1282/2140/131 1281/1914/131 +f 1282/2140/131 1283/2141/131 1281/1914/131 +f 1283/2141/131 1276/2142/131 1281/1914/131 +f 1276/2142/131 1275/1912/185 1281/1914/131 +f 1281/1914/131 1284/2143/207 1285/1915/131 +f 1282/1917/186 1286/1929/186 1269/1918/186 +f 1276/1920/183 1283/2144/187 1267/1921/187 +f 1285/1922/188 1284/1930/188 1271/1923/188 +f 1281/1925/189 1278/1909/189 1277/1911/189 +f 1267/1921/190 1283/2144/190 1282/1927/190 +f 1286/1929/191 1285/1922/191 1270/1924/191 +f 1284/1930/192 1281/1925/192 1272/1926/193 +f 1273/1908/182 1280/1910/194 1279/1931/194 +f 1273/1904/181 1272/1903/133 1277/1932/133 +f 1294/1936/133 1287/2145/133 1292/1934/133 +f 1287/2145/133 1288/2146/133 1292/1934/133 +f 1288/2146/133 1289/2147/133 1292/1934/133 +f 1289/2147/133 1290/2148/133 1292/1934/133 +f 1290/2148/133 1291/2149/133 1292/1934/133 +f 1295/1937/195 1296/1951/196 1294/1938/196 +f 1298/1940/197 1299/1961/197 1300/1941/197 +f 1295/1943/131 1299/2150/131 1298/1944/131 +f 1306/1947/131 1302/2151/131 1301/1945/131 +f 1302/2151/131 1303/2152/131 1301/1945/131 +f 1303/2152/131 1296/2153/131 1301/1945/131 +f 1296/2153/131 1295/1943/131 1301/1945/131 +f 1301/1945/131 1304/2154/131 1305/1946/131 +f 1302/1948/198 1306/1960/198 1289/1949/198 +f 1296/1951/196 1303/1958/199 1287/1952/199 +f 1290/1953/200 1305/2155/200 1304/1954/200 +f 1301/1956/201 1298/1940/201 1297/1942/201 +f 1303/1958/202 1302/2156/202 1288/1959/202 +f 1306/1960/203 1305/2155/203 1290/1953/203 +f 1304/1954/204 1301/1956/204 1292/1957/204 +f 1293/1939/195 1300/1941/205 1299/1961/205 +f 1293/1935/133 1292/1934/133 1297/1962/133 +o frame +v 0.500000 0.000000 -3.500000 +v 0.500000 0.000000 3.500000 +v 0.500000 6.000000 3.500000 +v 0.500000 5.999982 -3.499982 +v 0.299220 0.054715 -3.299312 +v 0.299220 0.054715 3.299312 +v 0.299220 2.500000 -3.299312 +v 0.299220 3.519543 -3.137832 +v 0.299220 4.439287 -2.669199 +v 0.299220 5.169199 -1.939287 +v 0.299220 5.637832 -1.019543 +v 0.299220 5.799312 0.000000 +v 0.299220 5.637832 1.019543 +v 0.299220 5.169199 1.939287 +v 0.299220 4.439287 2.669199 +v 0.299220 3.519543 3.137832 +v 0.299220 2.500000 3.299312 +v 0.299220 0.054715 -3.440433 +v 0.299220 0.054715 3.440433 +v 0.299220 2.511072 -3.439998 +v 0.299220 3.563152 -3.439998 +v 0.299220 4.522236 -3.439998 +v 0.299220 5.283369 -3.439998 +v 0.299220 5.772047 -3.439998 +v 0.299220 5.940434 0.000000 +v 0.299220 5.772047 3.439998 +v 0.299220 5.283369 3.439998 +v 0.299220 4.522236 3.439998 +v 0.299220 3.563152 3.439998 +v 0.299220 2.511072 3.439998 +v 0.500000 0.000000 3.299312 +v 0.500000 0.000000 -3.299311 +v 0.509942 2.575847 3.433846 +v 0.500000 2.500000 3.299312 +v 0.500000 5.799312 0.000000 +v 0.500000 5.999991 0.000009 +v 0.500000 3.519543 3.137832 +v 0.509942 3.693161 3.215357 +v 0.500000 4.439287 2.669199 +v 0.509942 4.591897 2.756523 +v 0.500000 5.169199 1.939287 +v 0.509942 5.306234 2.042186 +v 0.500000 5.637832 1.019543 +v 0.509942 5.777302 1.066608 +v 0.500000 2.500000 -3.299312 +v 0.509942 2.562243 -3.433324 +v 0.509942 5.779282 -1.054175 +v 0.500000 5.637832 -1.019543 +v 0.500000 5.169199 -1.939287 +v 0.509942 5.306233 -2.042186 +v 0.500000 4.439287 -2.669199 +v 0.509942 4.591897 -2.756523 +v 0.500000 3.519543 -3.137832 +v 0.509942 3.637241 -3.226135 +v 0.500000 2.575847 3.500000 +v 0.500000 0.000000 3.433846 +v 0.500000 0.000000 -3.399656 +v -0.500000 0.000000 -3.500000 +v -0.500000 0.000000 3.500000 +v -0.500000 6.000000 3.500000 +v -0.500000 5.999982 -3.499982 +v -0.299220 0.054715 -3.299312 +v -0.299220 0.054715 3.299312 +v -0.299220 2.500000 -3.299312 +v -0.299220 3.519543 -3.137832 +v -0.299220 4.439287 -2.669199 +v -0.299220 5.169199 -1.939287 +v -0.299220 5.637832 -1.019543 +v -0.299220 5.799312 0.000000 +v -0.299220 5.637832 1.019543 +v -0.299220 5.169199 1.939287 +v -0.299220 4.439287 2.669199 +v -0.299220 3.519543 3.137832 +v -0.299220 2.500000 3.299312 +v -0.299220 0.054715 -3.440433 +v -0.299220 0.054715 3.440433 +v -0.299220 2.511072 -3.439998 +v -0.299220 3.563152 -3.439998 +v -0.299220 4.522236 -3.439998 +v -0.299220 5.283369 -3.439998 +v -0.299220 5.772047 -3.439998 +v -0.299220 5.940434 0.000000 +v -0.299220 5.772047 3.439998 +v -0.299220 5.283369 3.439998 +v -0.299220 4.522236 3.439998 +v -0.299220 3.563152 3.439998 +v -0.299220 2.511072 3.439998 +v -0.500000 0.000000 3.299312 +v -0.500000 0.000000 -3.299311 +v -0.509942 2.575847 3.433846 +v -0.500000 2.500000 3.299312 +v -0.500000 5.799312 0.000000 +v -0.500000 5.999991 0.000009 +v -0.500000 3.519543 3.137832 +v -0.509942 3.693161 3.215357 +v -0.500000 4.439287 2.669199 +v -0.509942 4.591897 2.756523 +v -0.500000 5.169199 1.939287 +v -0.509942 5.306234 2.042186 +v -0.500000 5.637832 1.019543 +v -0.509942 5.777302 1.066608 +v -0.500000 2.500000 -3.299312 +v -0.509942 2.562243 -3.433324 +v -0.509942 5.779282 -1.054175 +v -0.500000 5.637832 -1.019543 +v -0.500000 5.169199 -1.939287 +v -0.509942 5.306233 -2.042186 +v -0.500000 4.439287 -2.669199 +v -0.509942 4.591897 -2.756523 +v -0.500000 3.519543 -3.137832 +v -0.509942 3.637241 -3.226135 +v -0.500000 2.575847 3.500000 +v -0.500000 0.000000 3.433846 +v -0.500000 0.000000 -3.399656 +v 0.000000 0.000000 -3.500000 +v 0.000000 0.000000 3.500000 +v 0.000000 6.000000 3.500000 +v 0.000000 5.999982 -3.499982 +v 0.000000 0.054715 -3.299312 +v 0.000000 0.054715 3.299312 +v 0.000000 0.054715 -3.440433 +v 0.000000 0.054715 3.440433 +v 0.000000 2.511072 -3.439998 +v 0.000000 3.563152 -3.439998 +v 0.000000 4.522236 -3.439998 +v 0.000000 5.283369 -3.439998 +v 0.000000 5.772047 -3.439998 +v 0.000000 5.940434 0.000000 +v 0.000000 5.772047 3.439998 +v 0.000000 5.283369 3.439998 +v 0.000000 4.522236 3.439998 +v 0.000000 3.563152 3.439998 +v 0.000000 2.511072 3.439998 +vt 0.241702 0.739929 +vt 0.006709 0.759512 +vt 0.006709 0.739929 +vt 0.685390 0.273007 +vt 0.685390 0.278276 +vt 0.665807 0.280867 +vt 0.855026 0.768807 +vt 0.862890 0.728378 +vt 0.862890 0.768807 +vt 0.490115 0.143946 +vt 0.481472 0.102659 +vt 0.490145 0.006876 +vt 0.855026 0.728378 +vt 0.862890 0.632606 +vt 0.876307 0.622065 +vt 0.884171 0.717836 +vt 0.876307 0.717836 +vt 0.855026 0.930522 +vt 0.862890 0.890094 +vt 0.862890 0.930522 +vt 0.855026 0.849665 +vt 0.862890 0.809236 +vt 0.862890 0.849665 +vt 0.855026 0.890094 +vt 0.876307 0.758265 +vt 0.855026 0.809236 +vt 0.884171 0.798694 +vt 0.876307 0.839123 +vt 0.876307 0.798694 +vt 0.884171 0.758265 +vt 0.884171 0.839123 +vt 0.876307 0.879552 +vt 0.397594 0.017557 +vt 0.355501 0.009420 +vt 0.434984 0.035969 +vt 0.462955 0.063960 +vt 0.481394 0.185718 +vt 0.490145 0.281015 +vt 0.884171 0.879552 +vt 0.876307 0.919981 +vt 0.462955 0.223931 +vt 0.434983 0.251922 +vt 0.399781 0.269910 +vt 0.356032 0.278491 +vt 0.036915 0.353397 +vt 0.013305 0.294621 +vt 0.032444 0.294621 +vt 0.141455 0.558572 +vt 0.237228 0.564100 +vt 0.141022 0.564083 +vt 0.065501 0.533893 +vt 0.032442 0.564081 +vt 0.036914 0.505305 +vt 0.101525 0.306456 +vt 0.141023 0.294622 +vt 0.141456 0.300132 +vt 0.018561 0.389419 +vt 0.006709 0.429350 +vt 0.101524 0.552247 +vt 0.062252 0.564082 +vt 0.788343 0.516011 +vt 0.776624 0.557217 +vt 0.776624 0.516011 +vt 0.788343 0.478448 +vt 0.776624 0.478448 +vt 0.788343 0.448638 +vt 0.776624 0.448638 +vt 0.788343 0.429498 +vt 0.776624 0.429498 +vt 0.788343 0.294606 +vt 0.776624 0.294606 +vt 0.801760 0.429498 +vt 0.813480 0.294606 +vt 0.813480 0.429498 +vt 0.801760 0.448638 +vt 0.813480 0.448638 +vt 0.801760 0.478448 +vt 0.813480 0.478448 +vt 0.801760 0.516011 +vt 0.813480 0.516011 +vt 0.801760 0.557217 +vt 0.813480 0.557217 +vt 0.801760 0.653422 +vt 0.813480 0.653422 +vt 0.013302 0.564081 +vt 0.018560 0.469282 +vt 0.065503 0.324810 +vt 0.062254 0.294621 +vt 0.237228 0.294606 +vt 0.237228 0.300133 +vt 0.099816 0.564082 +vt 0.012236 0.429350 +vt 0.099818 0.294622 +vt 0.730396 0.270674 +vt 0.718677 0.276201 +vt 0.718677 0.270674 +vt 0.392975 0.266861 +vt 0.353056 0.273212 +vt 0.428998 0.248493 +vt 0.457578 0.219896 +vt 0.482256 0.143945 +vt 0.475920 0.183871 +vt 0.475919 0.104020 +vt 0.457578 0.067995 +vt 0.428998 0.039397 +vt 0.392978 0.021029 +vt 0.353057 0.014680 +vt 0.255157 0.010638 +vt 0.738547 0.270674 +vt 0.730396 0.012236 +vt 0.738547 0.012236 +vt 0.255142 0.278598 +vt 0.255136 0.273329 +vt 0.356034 0.281112 +vt 0.255161 0.006709 +vt 0.788343 0.653422 +vt 0.788343 0.557217 +vt 0.718677 0.012236 +vt 0.730396 0.006709 +vt 0.510060 0.788490 +vt 0.510060 0.768907 +vt 0.647140 0.768907 +vt 0.751964 0.140819 +vt 0.771547 0.006709 +vt 0.771547 0.241704 +vt 0.006709 0.720346 +vt 0.646224 0.278276 +vt 0.646224 0.273007 +vt 0.955361 0.496751 +vt 0.947497 0.456323 +vt 0.955361 0.456323 +vt 0.241689 0.143952 +vt 0.241719 0.281021 +vt 0.233046 0.185239 +vt 0.947497 0.496751 +vt 0.955361 0.592522 +vt 0.947497 0.594665 +vt 0.955361 0.610225 +vt 0.947497 0.705997 +vt 0.947497 0.608082 +vt 0.955361 0.335035 +vt 0.947497 0.294606 +vt 0.955361 0.294606 +vt 0.955361 0.415894 +vt 0.947497 0.375465 +vt 0.955361 0.375465 +vt 0.947497 0.335035 +vt 0.955361 0.746426 +vt 0.955361 0.705997 +vt 0.947497 0.415894 +vt 0.955361 0.827284 +vt 0.947497 0.786855 +vt 0.955361 0.786855 +vt 0.947497 0.746426 +vt 0.955361 0.867713 +vt 0.947497 0.827284 +vt 0.149169 0.270340 +vt 0.107075 0.278477 +vt 0.186559 0.251928 +vt 0.214530 0.223938 +vt 0.232968 0.102180 +vt 0.241719 0.006883 +vt 0.955361 0.908141 +vt 0.947497 0.867713 +vt 0.214529 0.063967 +vt 0.186557 0.035976 +vt 0.151355 0.017988 +vt 0.107605 0.009406 +vt 0.280851 0.505307 +vt 0.257240 0.564083 +vt 0.262497 0.469284 +vt 0.385392 0.300133 +vt 0.481164 0.294606 +vt 0.481164 0.300133 +vt 0.276379 0.294623 +vt 0.309438 0.324812 +vt 0.280851 0.353400 +vt 0.384959 0.564083 +vt 0.345461 0.552249 +vt 0.385392 0.558573 +vt 0.250645 0.429353 +vt 0.256172 0.429353 +vt 0.306190 0.294623 +vt 0.345461 0.306458 +vt 0.764905 0.516011 +vt 0.764905 0.478448 +vt 0.764905 0.448638 +vt 0.764905 0.429498 +vt 0.764905 0.294606 +vt 0.825199 0.429498 +vt 0.825199 0.448638 +vt 0.825199 0.478448 +vt 0.825199 0.516011 +vt 0.825199 0.557217 +vt 0.825199 0.653422 +vt 0.257240 0.294623 +vt 0.262496 0.389422 +vt 0.309438 0.533894 +vt 0.276379 0.564083 +vt 0.481164 0.564100 +vt 0.481164 0.558573 +vt 0.384958 0.294623 +vt 0.306190 0.564083 +vt 0.706958 0.270674 +vt 0.144548 0.021036 +vt 0.104629 0.014686 +vt 0.180571 0.039405 +vt 0.209152 0.068002 +vt 0.227494 0.104027 +vt 0.233830 0.143953 +vt 0.227494 0.183878 +vt 0.209152 0.219903 +vt 0.180573 0.248500 +vt 0.144552 0.266868 +vt 0.104632 0.273218 +vt 0.006731 0.277259 +vt 0.706958 0.012236 +vt 0.698807 0.270674 +vt 0.698807 0.012236 +vt 0.006715 0.009300 +vt 0.107607 0.006786 +vt 0.006735 0.281189 +vt 0.764905 0.653422 +vt 0.764905 0.557217 +vt 0.706958 0.006709 +vt 0.647140 0.808073 +vt 0.784220 0.788490 +vt 0.791130 0.006709 +vt 0.791130 0.140818 +vt 0.241702 0.759512 +vt 0.665807 0.006709 +vt 0.685390 0.014569 +vt 0.685390 0.006709 +vt 0.685390 0.010639 +vt 0.685390 0.280867 +vt 0.855026 0.630463 +vt 0.884171 0.619922 +vt 0.884171 0.919981 +vt 0.237228 0.558573 +vt 0.801760 0.294606 +vt 0.730396 0.276201 +vt 0.255152 0.014568 +vt 0.255144 0.281189 +vt 0.776624 0.653422 +vt 0.718677 0.006709 +vt 0.784220 0.768907 +vt 0.751964 0.241704 +vt 0.751964 0.006709 +vt 0.241702 0.720346 +vt 0.646224 0.006709 +vt 0.646224 0.010639 +vt 0.646224 0.014569 +vt 0.646224 0.280867 +vt 0.947497 0.908141 +vt 0.343753 0.564083 +vt 0.343753 0.294623 +vt 0.825199 0.294606 +vt 0.706958 0.276201 +vt 0.006727 0.273330 +vt 0.006709 0.014569 +vt 0.006717 0.006709 +vt 0.784220 0.808073 +vt 0.510060 0.808073 +vt 0.791130 0.241704 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 -0.3090 -0.9511 +vn 0.0000 -0.0785 -0.9969 +vn 1.0000 0.0059 0.0000 +vn 0.9999 -0.0072 0.0088 +vn 1.0000 0.0070 -0.0070 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -0.0785 0.9969 +vn 0.0000 -0.9511 -0.3090 +vn 0.0000 -0.8090 -0.5878 +vn 0.0000 -0.5878 -0.8090 +vn 0.0000 -0.3090 0.9511 +vn 0.0000 -0.5878 0.8090 +vn 0.0000 -0.8090 0.5878 +vn 0.0000 -0.9511 0.3090 +vn 0.9996 -0.0118 0.0267 +vn 0.9992 -0.0037 -0.0401 +vn 0.9997 -0.0146 0.0182 +vn 0.9998 -0.0176 0.0132 +vn 0.9999 -0.0066 -0.0091 +vn 1.0000 0.0071 0.0070 +vn 0.9998 -0.0176 -0.0129 +vn 0.9997 -0.0148 -0.0183 +vn 0.9997 -0.0111 -0.0234 +vn 0.9991 -0.0049 0.0417 +vn -1.0000 -0.0000 0.0000 +vn 0.0000 -0.0001 -1.0000 +vn 0.0000 -0.9988 -0.0489 +vn 0.0000 -0.9988 0.0489 +vn 0.0000 -0.0001 1.0000 +vn 0.0000 -0.0002 1.0000 +vn 0.0883 0.9961 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.9966 -0.0205 -0.0804 +vn 0.9976 -0.0063 -0.0690 +vn 0.9980 -0.0347 -0.0530 +vn 0.9983 -0.0476 -0.0337 +vn 1.0000 -0.0054 0.0001 +vn 0.9977 -0.0641 -0.0207 +vn 0.9977 -0.0646 0.0206 +vn 0.9983 -0.0469 0.0340 +vn 0.9980 -0.0345 0.0539 +vn 0.9964 -0.0224 0.0812 +vn 0.9975 -0.0060 0.0703 +vn 1.0000 -0.0020 0.0012 +vn 0.2629 0.9648 0.0000 +vn 1.0000 -0.0001 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.9891 -0.0019 0.1474 +vn 1.0000 -0.0038 -0.0025 +vn 0.0000 -0.0002 -1.0000 +vn -1.0000 0.0059 0.0000 +vn -1.0000 0.0070 -0.0070 +vn -0.9999 -0.0072 0.0088 +vn -0.9996 -0.0118 0.0267 +vn -0.9992 -0.0037 -0.0401 +vn -0.9997 -0.0146 0.0182 +vn -0.9998 -0.0176 0.0132 +vn -0.9999 -0.0066 -0.0091 +vn -1.0000 0.0071 0.0070 +vn -0.9998 -0.0176 -0.0129 +vn -0.9997 -0.0148 -0.0183 +vn -0.9997 -0.0111 -0.0234 +vn -0.9991 -0.0049 0.0417 +vn -0.0883 0.9961 0.0000 +vn -0.9966 -0.0205 -0.0804 +vn -0.9976 -0.0063 -0.0690 +vn -0.9980 -0.0347 -0.0530 +vn -0.9983 -0.0476 -0.0337 +vn -0.9977 -0.0641 -0.0207 +vn -1.0000 -0.0054 0.0001 +vn -0.9977 -0.0646 0.0206 +vn -0.9983 -0.0469 0.0340 +vn -0.9980 -0.0345 0.0539 +vn -0.9964 -0.0224 0.0812 +vn -0.9975 -0.0060 0.0703 +vn -1.0000 -0.0020 0.0012 +vn -0.2629 0.9648 0.0000 +vn -1.0000 -0.0001 0.0000 +vn -0.9891 -0.0019 0.1474 +vn -1.0000 -0.0038 -0.0025 +s 1 +f 1424/2157/208 1307/2158/208 1421/2159/208 +f 1337/2160/209 1362/2161/209 1422/2162/209 +f 1343/2163/210 1323/2164/211 1322/2165/210 +f 1342/2166/212 1353/2167/213 1310/2168/214 +f 1340/2169/211 1312/2170/208 1323/2164/211 +f 1311/2171/215 1351/2172/216 1313/2173/216 +f 1341/2174/209 1319/2175/217 1318/2176/209 +f 1347/2177/218 1321/2178/219 1320/2179/218 +f 1349/2180/217 1320/2179/218 1319/2175/217 +f 1351/2172/216 1314/2181/220 1313/2173/216 +f 1345/2182/219 1322/2165/210 1321/2178/219 +f 1357/2183/221 1316/2184/222 1315/2185/221 +f 1359/2186/220 1315/2185/221 1314/2181/220 +f 1355/2187/222 1317/2188/223 1316/2184/222 +f 1360/2189/224 1352/2190/225 1310/2168/214 +f 1358/2191/226 1360/2189/224 1310/2168/214 +f 1356/2192/227 1358/2191/226 1310/2168/214 +f 1353/2167/213 1356/2192/227 1310/2168/214 +f 1350/2193/228 1342/2166/212 1309/2194/229 +f 1354/2195/223 1318/2196/209 1317/2188/223 +f 1348/2197/230 1350/2193/228 1309/2194/229 +f 1346/2198/231 1348/2197/230 1309/2194/229 +f 1344/2199/232 1346/2198/231 1309/2194/229 +f 1339/2200/233 1344/2199/232 1309/2194/229 +f 1316/2201/234 1330/2202/234 1329/2203/234 +f 1323/2204/234 1325/2205/234 1336/2206/234 +f 1321/2207/234 1333/2208/234 1320/2209/234 +f 1314/2210/234 1326/2211/234 1313/2212/234 +f 1317/2213/234 1331/2214/234 1330/2202/234 +f 1322/2215/234 1334/2216/234 1321/2207/234 +f 1335/2217/208 1439/2218/235 1438/2219/208 +f 1334/2220/208 1438/2219/208 1437/2221/208 +f 1333/2222/208 1437/2221/208 1436/2223/208 +f 1332/2224/208 1436/2223/208 1435/2225/208 +f 1331/2226/209 1435/2225/236 1434/2227/209 +f 1330/2228/237 1434/2229/209 1433/2230/237 +f 1329/2231/215 1433/2230/215 1432/2232/215 +f 1328/2233/215 1432/2232/215 1431/2234/215 +f 1327/2235/215 1431/2234/215 1430/2236/215 +f 1326/2237/238 1430/2236/215 1429/2238/238 +f 1324/2239/239 1429/2238/238 1427/2240/239 +f 1320/2209/234 1332/2241/234 1319/2242/234 +f 1315/2243/234 1329/2203/234 1328/2244/234 +f 1313/2212/234 1324/2245/234 1311/2246/234 +f 1322/2215/234 1336/2206/234 1335/2247/234 +f 1319/2242/234 1331/2214/234 1318/2248/234 +f 1314/2210/234 1328/2244/234 1327/2249/234 +f 1311/2250/240 1427/2251/241 1425/2252/241 +f 1343/2253/242 1339/2200/233 1340/2254/243 +f 1345/2255/244 1344/2199/232 1343/2253/242 +f 1347/2256/245 1346/2198/231 1345/2255/244 +f 1347/2256/245 1350/2193/228 1348/2197/230 +f 1341/2257/246 1350/2193/228 1349/2258/247 +f 1354/2259/248 1356/2192/227 1353/2167/213 +f 1355/2260/249 1358/2191/226 1356/2192/227 +f 1357/2261/250 1360/2189/224 1358/2191/226 +f 1359/2262/251 1352/2190/225 1360/2189/224 +f 1351/2263/252 1363/2264/253 1352/2190/225 +f 1341/2257/246 1353/2167/213 1342/2166/212 +f 1338/2265/254 1312/2266/240 1337/2267/254 +f 1340/2254/243 1362/2268/255 1337/2269/256 +f 1339/2200/233 1309/2194/229 1361/2270/257 +f 1352/2190/225 1307/2271/258 1310/2168/214 +f 1325/2272/259 1439/2218/235 1336/2273/235 +f 1426/2274/241 1325/2275/241 1312/2266/240 +f 1311/2250/240 1426/2274/241 1312/2266/240 +f 1423/2276/241 1309/2277/241 1342/2278/241 +f 1361/2279/215 1423/2280/215 1422/2281/215 +f 1364/2282/208 1424/2157/208 1421/2159/208 +f 1422/2162/209 1419/2283/209 1394/2284/209 +f 1380/2285/211 1400/2286/210 1379/2287/210 +f 1399/2288/260 1367/2289/261 1410/2290/262 +f 1397/2291/211 1369/2292/208 1394/2293/208 +f 1368/2294/215 1408/2295/216 1395/2296/215 +f 1376/2297/217 1398/2298/209 1375/2299/209 +f 1378/2300/219 1404/2301/218 1377/2302/218 +f 1377/2302/218 1406/2303/217 1376/2297/217 +f 1371/2304/220 1408/2295/216 1370/2305/216 +f 1379/2287/210 1402/2306/219 1378/2300/219 +f 1373/2307/222 1414/2308/221 1372/2309/221 +f 1372/2309/221 1416/2310/220 1371/2304/220 +f 1374/2311/223 1412/2312/222 1373/2307/222 +f 1417/2313/263 1367/2289/261 1409/2314/264 +f 1415/2315/265 1367/2289/261 1417/2313/263 +f 1413/2316/266 1367/2289/261 1415/2315/265 +f 1410/2290/262 1367/2289/261 1413/2316/266 +f 1407/2317/267 1366/2318/268 1399/2288/260 +f 1375/2319/209 1411/2320/223 1374/2311/223 +f 1405/2321/269 1366/2318/268 1407/2317/267 +f 1403/2322/270 1366/2318/268 1405/2321/269 +f 1401/2323/271 1366/2318/268 1403/2322/270 +f 1396/2324/272 1366/2318/268 1401/2323/271 +f 1373/2325/256 1387/2326/256 1374/2327/256 +f 1380/2328/256 1382/2329/256 1369/2330/256 +f 1390/2331/256 1378/2332/256 1377/2333/256 +f 1383/2334/256 1371/2335/256 1370/2336/256 +f 1374/2327/256 1388/2337/256 1375/2338/256 +f 1391/2339/256 1379/2340/256 1378/2332/256 +f 1439/2218/235 1392/2341/208 1438/2219/208 +f 1438/2219/208 1391/2342/208 1437/2221/208 +f 1437/2221/208 1390/2343/208 1436/2223/208 +f 1436/2223/208 1389/2344/208 1435/2225/208 +f 1435/2225/236 1388/2345/209 1434/2227/209 +f 1434/2229/209 1387/2346/237 1433/2230/237 +f 1433/2230/215 1386/2347/215 1432/2232/215 +f 1432/2232/215 1385/2348/215 1431/2234/215 +f 1431/2234/215 1384/2349/215 1430/2236/215 +f 1430/2236/215 1383/2350/238 1429/2238/238 +f 1429/2238/238 1381/2351/239 1427/2240/239 +f 1389/2352/256 1377/2333/256 1376/2353/256 +f 1372/2354/256 1386/2355/256 1373/2325/256 +f 1381/2356/256 1370/2336/256 1368/2357/256 +f 1379/2340/256 1393/2358/256 1380/2328/256 +f 1388/2337/256 1376/2353/256 1375/2338/256 +f 1371/2335/256 1385/2359/256 1372/2354/256 +f 1427/2251/241 1368/2360/273 1425/2252/241 +f 1396/2324/272 1400/2361/274 1397/2362/275 +f 1401/2323/271 1402/2363/276 1400/2361/274 +f 1403/2322/270 1404/2364/277 1402/2363/276 +f 1404/2364/277 1407/2317/267 1406/2365/278 +f 1407/2317/267 1398/2366/279 1406/2365/278 +f 1411/2367/280 1413/2316/266 1412/2368/281 +f 1412/2368/281 1415/2315/265 1414/2369/282 +f 1414/2369/282 1417/2313/263 1416/2370/283 +f 1416/2370/283 1409/2314/264 1408/2371/284 +f 1420/2372/285 1408/2371/284 1409/2314/264 +f 1398/2366/279 1410/2290/262 1411/2367/280 +f 1369/2373/273 1395/2374/286 1394/2375/286 +f 1397/2362/275 1419/2376/287 1396/2324/272 +f 1418/2377/288 1396/2324/272 1419/2376/287 +f 1409/2314/264 1364/2378/289 1420/2372/285 +f 1439/2218/235 1382/2379/259 1393/2380/235 +f 1382/2381/241 1426/2274/241 1369/2373/273 +f 1426/2274/241 1368/2360/273 1369/2373/273 +f 1399/2382/241 1423/2276/241 1424/2383/241 +f 1423/2280/215 1366/2384/215 1418/2385/215 +f 1424/2157/208 1310/2386/208 1307/2158/208 +f 1422/2162/209 1421/2387/209 1338/2388/209 +f 1421/2387/209 1307/2389/209 1363/2390/209 +f 1363/2390/209 1338/2388/209 1421/2387/209 +f 1338/2388/209 1337/2160/209 1422/2162/209 +f 1362/2161/209 1308/2391/209 1422/2162/209 +f 1343/2163/210 1340/2169/211 1323/2164/211 +f 1340/2169/211 1337/2392/208 1312/2170/208 +f 1311/2171/215 1338/2393/215 1351/2172/216 +f 1341/2174/209 1349/2180/217 1319/2175/217 +f 1347/2177/218 1345/2182/219 1321/2178/219 +f 1349/2180/217 1347/2177/218 1320/2179/218 +f 1351/2172/216 1359/2186/220 1314/2181/220 +f 1345/2182/219 1343/2163/210 1322/2165/210 +f 1357/2183/221 1355/2187/222 1316/2184/222 +f 1359/2186/220 1357/2183/221 1315/2185/221 +f 1355/2187/222 1354/2195/223 1317/2188/223 +f 1354/2195/223 1341/2394/209 1318/2196/209 +f 1316/2201/234 1317/2213/234 1330/2202/234 +f 1323/2204/234 1312/2395/234 1325/2205/234 +f 1321/2207/234 1334/2216/234 1333/2208/234 +f 1314/2210/234 1327/2249/234 1326/2211/234 +f 1317/2213/234 1318/2248/234 1331/2214/234 +f 1322/2215/234 1335/2247/234 1334/2216/234 +f 1335/2217/208 1336/2273/235 1439/2218/235 +f 1334/2220/208 1335/2217/208 1438/2219/208 +f 1333/2222/208 1334/2220/208 1437/2221/208 +f 1332/2224/208 1333/2222/208 1436/2223/208 +f 1331/2226/209 1332/2224/236 1435/2225/236 +f 1330/2228/237 1331/2396/209 1434/2229/209 +f 1329/2231/215 1330/2228/215 1433/2230/215 +f 1328/2233/215 1329/2231/215 1432/2232/215 +f 1327/2235/215 1328/2233/215 1431/2234/215 +f 1326/2237/238 1327/2235/215 1430/2236/215 +f 1324/2239/239 1326/2237/238 1429/2238/238 +f 1320/2209/234 1333/2208/234 1332/2241/234 +f 1315/2243/234 1316/2201/234 1329/2203/234 +f 1313/2212/234 1326/2211/234 1324/2245/234 +f 1322/2215/234 1323/2204/234 1336/2206/234 +f 1319/2242/234 1332/2241/234 1331/2214/234 +f 1314/2210/234 1315/2243/234 1328/2244/234 +f 1311/2250/240 1324/2397/241 1427/2251/241 +f 1343/2253/242 1344/2199/232 1339/2200/233 +f 1345/2255/244 1346/2198/231 1344/2199/232 +f 1347/2256/245 1348/2197/230 1346/2198/231 +f 1347/2256/245 1349/2258/247 1350/2193/228 +f 1341/2257/246 1342/2166/212 1350/2193/228 +f 1354/2259/248 1355/2260/249 1356/2192/227 +f 1355/2260/249 1357/2261/250 1358/2191/226 +f 1357/2261/250 1359/2262/251 1360/2189/224 +f 1359/2262/251 1351/2263/252 1352/2190/225 +f 1351/2263/252 1338/2398/256 1363/2264/253 +f 1341/2257/246 1354/2259/248 1353/2167/213 +f 1338/2265/254 1311/2250/240 1312/2266/240 +f 1340/2254/243 1339/2200/233 1362/2268/255 +f 1361/2270/257 1308/2399/256 1362/2268/255 +f 1362/2268/255 1339/2200/233 1361/2270/257 +f 1352/2190/225 1363/2264/253 1307/2271/258 +f 1325/2272/259 1428/2400/259 1439/2218/235 +f 1426/2274/241 1428/2401/241 1325/2275/241 +f 1311/2250/240 1425/2252/241 1426/2274/241 +f 1342/2278/241 1310/2402/241 1424/2383/241 +f 1424/2383/241 1423/2276/241 1342/2278/241 +f 1422/2281/215 1308/2403/215 1361/2279/215 +f 1361/2279/215 1309/2404/215 1423/2280/215 +f 1364/2282/208 1367/2405/208 1424/2157/208 +f 1364/2406/209 1421/2387/209 1420/2407/209 +f 1421/2387/209 1422/2162/209 1395/2408/209 +f 1420/2407/209 1421/2387/209 1395/2408/209 +f 1422/2162/209 1365/2409/209 1419/2283/209 +f 1394/2284/209 1395/2408/209 1422/2162/209 +f 1380/2285/211 1397/2291/211 1400/2286/210 +f 1397/2291/211 1380/2285/211 1369/2292/208 +f 1368/2294/215 1370/2305/216 1408/2295/216 +f 1376/2297/217 1406/2303/217 1398/2298/209 +f 1378/2300/219 1402/2306/219 1404/2301/218 +f 1377/2302/218 1404/2301/218 1406/2303/217 +f 1371/2304/220 1416/2310/220 1408/2295/216 +f 1379/2287/210 1400/2286/210 1402/2306/219 +f 1373/2307/222 1412/2312/222 1414/2308/221 +f 1372/2309/221 1414/2308/221 1416/2310/220 +f 1374/2311/223 1411/2320/223 1412/2312/222 +f 1375/2319/209 1398/2410/209 1411/2320/223 +f 1373/2325/256 1386/2355/256 1387/2326/256 +f 1380/2328/256 1393/2358/256 1382/2329/256 +f 1390/2331/256 1391/2339/256 1378/2332/256 +f 1383/2334/256 1384/2411/256 1371/2335/256 +f 1374/2327/256 1387/2326/256 1388/2337/256 +f 1391/2339/256 1392/2412/256 1379/2340/256 +f 1439/2218/235 1393/2380/235 1392/2341/208 +f 1438/2219/208 1392/2341/208 1391/2342/208 +f 1437/2221/208 1391/2342/208 1390/2343/208 +f 1436/2223/208 1390/2343/208 1389/2344/208 +f 1435/2225/236 1389/2344/236 1388/2345/209 +f 1434/2229/209 1388/2413/209 1387/2346/237 +f 1433/2230/215 1387/2346/215 1386/2347/215 +f 1432/2232/215 1386/2347/215 1385/2348/215 +f 1431/2234/215 1385/2348/215 1384/2349/215 +f 1430/2236/215 1384/2349/215 1383/2350/238 +f 1429/2238/238 1383/2350/238 1381/2351/239 +f 1389/2352/256 1390/2331/256 1377/2333/256 +f 1372/2354/256 1385/2359/256 1386/2355/256 +f 1381/2356/256 1383/2334/256 1370/2336/256 +f 1379/2340/256 1392/2412/256 1393/2358/256 +f 1388/2337/256 1389/2352/256 1376/2353/256 +f 1371/2335/256 1384/2411/256 1385/2359/256 +f 1427/2251/241 1381/2414/241 1368/2360/273 +f 1396/2324/272 1401/2323/271 1400/2361/274 +f 1401/2323/271 1403/2322/270 1402/2363/276 +f 1403/2322/270 1405/2321/269 1404/2364/277 +f 1404/2364/277 1405/2321/269 1407/2317/267 +f 1407/2317/267 1399/2288/260 1398/2366/279 +f 1411/2367/280 1410/2290/262 1413/2316/266 +f 1412/2368/281 1413/2316/266 1415/2315/265 +f 1414/2369/282 1415/2315/265 1417/2313/263 +f 1416/2370/283 1417/2313/263 1409/2314/264 +f 1420/2372/285 1395/2415/234 1408/2371/284 +f 1398/2366/279 1399/2288/260 1410/2290/262 +f 1369/2373/273 1368/2360/273 1395/2374/286 +f 1397/2362/275 1394/2416/234 1419/2376/287 +f 1419/2376/287 1365/2417/234 1418/2377/288 +f 1418/2377/288 1366/2318/268 1396/2324/272 +f 1409/2314/264 1367/2289/261 1364/2378/289 +f 1439/2218/235 1428/2400/259 1382/2379/259 +f 1382/2381/241 1428/2401/241 1426/2274/241 +f 1426/2274/241 1425/2252/241 1368/2360/273 +f 1424/2383/241 1367/2418/241 1399/2382/241 +f 1399/2382/241 1366/2419/241 1423/2276/241 +f 1418/2385/215 1365/2420/215 1422/2281/215 +f 1422/2281/215 1423/2280/215 1418/2385/215 diff --git a/src/main/resources/assets/hbm/models/doors/qe_containment.obj b/src/main/resources/assets/hbm/models/doors/qe_containment.obj new file mode 100644 index 000000000..d3c72a634 --- /dev/null +++ b/src/main/resources/assets/hbm/models/doors/qe_containment.obj @@ -0,0 +1,1601 @@ +# Blender v2.92.0 OBJ File: 'qe_lockdown_doorblend.blend' +# www.blender.org +o door +v 0.125956 2.428429 1.096965 +v 0.125956 0.142335 1.385726 +v 0.125956 0.142335 -1.385726 +v 0.125956 2.128096 1.397299 +v 0.125956 2.128096 -1.397299 +v 0.125956 2.428429 -1.096965 +v 0.125956 0.042149 -1.485400 +v 0.125956 2.169381 -1.497698 +v 0.125956 0.042149 1.485400 +v 0.125956 2.169381 1.497698 +v 0.125956 2.528616 -1.138464 +v 0.125956 2.528616 1.138464 +v 0.064985 0.142335 -1.385726 +v 0.064985 2.128096 -1.397299 +v 0.064985 0.142335 1.385726 +v 0.064985 2.128096 1.397299 +v 0.064985 2.428429 -1.096965 +v 0.064985 2.428429 1.096965 +v 0.040207 0.897613 1.390926 +v 0.040207 1.171400 1.391563 +v 0.040207 0.897613 -1.390926 +v 0.040207 1.171400 -1.391554 +v 0.092371 0.897613 1.390926 +v 0.092371 1.171400 1.391563 +v 0.092371 0.897613 -1.390926 +v 0.092371 1.171400 -1.391554 +v 0.125956 1.171400 1.392205 +v 0.125956 1.171400 -1.392233 +v 0.125956 0.897613 -1.390926 +v 0.125956 0.897613 1.390926 +v 0.090460 0.951001 -1.390926 +v 0.090460 1.118012 -1.390926 +v 0.090460 0.951001 1.390926 +v 0.090460 1.118012 1.390926 +v 0.125956 1.118012 -1.391606 +v 0.125956 1.118012 1.391568 +v 0.125956 0.951001 1.390926 +v 0.125956 0.951001 -1.390926 +v 0.029347 1.034506 -0.285639 +v 0.029347 0.925197 -0.263896 +v 0.029347 0.832529 -0.201977 +v 0.029347 0.770611 -0.109309 +v 0.029347 0.748868 0.000000 +v 0.029347 0.770611 0.109309 +v 0.029347 0.832529 0.201977 +v 0.029347 0.925197 0.263896 +v 0.029347 1.034506 0.285639 +v 0.029347 1.143816 0.263896 +v 0.029347 1.236483 0.201977 +v 0.029347 1.298402 0.109309 +v 0.029347 1.320145 0.000000 +v 0.029347 1.298402 -0.109309 +v 0.029347 1.236483 -0.201977 +v 0.029347 1.143815 -0.263896 +v 0.109739 1.034506 -0.250510 +v 0.075285 1.034506 -0.285639 +v 0.109739 0.938640 -0.231441 +v 0.075285 0.925197 -0.263896 +v 0.109739 0.857369 -0.177137 +v 0.075285 0.832529 -0.201977 +v 0.109739 0.803065 -0.095866 +v 0.075285 0.770611 -0.109309 +v 0.109739 0.783996 0.000000 +v 0.075285 0.748868 0.000000 +v 0.109739 0.803065 0.095866 +v 0.075285 0.770611 0.109309 +v 0.109739 0.857369 0.177137 +v 0.075285 0.832529 0.201977 +v 0.109739 0.938640 0.231441 +v 0.075285 0.925197 0.263896 +v 0.109739 1.034506 0.250510 +v 0.075285 1.034506 0.285639 +v 0.109739 1.130372 0.231441 +v 0.075285 1.143816 0.263896 +v 0.109739 1.211644 0.177137 +v 0.075285 1.236483 0.201977 +v 0.109739 1.265947 0.095866 +v 0.075285 1.298402 0.109309 +v 0.109739 1.285016 0.000000 +v 0.075285 1.320145 0.000000 +v 0.109739 1.265947 -0.095866 +v 0.075285 1.298402 -0.109309 +v 0.109739 1.211644 -0.177137 +v 0.075285 1.236483 -0.201977 +v 0.109739 1.130372 -0.231441 +v 0.075285 1.143815 -0.263896 +v 0.015982 0.142335 0.468209 +v 0.015982 2.428429 0.468209 +v 0.015982 0.142335 0.393815 +v 0.015982 2.428429 0.393815 +v 0.125956 0.142335 0.468209 +v 0.125956 2.428429 0.468209 +v 0.125956 0.142335 0.393815 +v 0.125956 2.428429 0.393815 +v 0.015982 1.171400 0.468209 +v 0.015982 1.171400 0.393815 +v 0.125956 1.171400 0.393815 +v 0.125956 1.171400 0.468209 +v 0.015982 0.897613 0.393815 +v 0.125956 0.897613 0.393815 +v 0.125956 0.897613 0.468209 +v 0.015982 0.897613 0.468209 +v 0.059135 1.138329 0.491282 +v 0.059135 2.143588 1.400841 +v 0.059135 1.193578 0.424240 +v 0.059135 2.198836 1.333799 +v 0.101822 1.138329 0.491282 +v 0.101822 2.143588 1.400841 +v 0.101822 1.193578 0.424240 +v 0.101822 2.198836 1.333799 +v 0.054672 0.167400 1.418743 +v 0.054672 0.948722 0.471243 +v 0.054672 0.096526 1.366685 +v 0.054672 0.877848 0.419185 +v 0.097593 0.167400 1.418743 +v 0.097593 0.948722 0.471243 +v 0.097593 0.096526 1.366685 +v 0.097593 0.877848 0.419185 +v 0.015982 0.142335 -0.468209 +v 0.015982 2.428429 -0.468209 +v 0.015982 0.142335 -0.393815 +v 0.015982 2.428429 -0.393815 +v 0.125956 0.142335 -0.468209 +v 0.125956 2.428429 -0.468209 +v 0.125956 0.142335 -0.393815 +v 0.125956 2.428429 -0.393815 +v 0.015982 1.171400 -0.468209 +v 0.015982 1.171400 -0.393815 +v 0.125956 1.171400 -0.393815 +v 0.125956 1.171400 -0.468209 +v 0.015982 0.897613 -0.393815 +v 0.125956 0.897613 -0.393815 +v 0.125956 0.897613 -0.468209 +v 0.015982 0.897613 -0.468209 +v 0.059135 1.138329 -0.491282 +v 0.059135 2.143588 -1.400841 +v 0.059135 1.193578 -0.424240 +v 0.059135 2.198836 -1.333799 +v 0.101822 1.138329 -0.491282 +v 0.101822 2.143588 -1.400841 +v 0.101822 1.193578 -0.424240 +v 0.101822 2.198836 -1.333799 +v 0.054672 0.167400 -1.418743 +v 0.054672 0.948722 -0.471243 +v 0.054672 0.096526 -1.366685 +v 0.054672 0.877848 -0.419185 +v 0.097593 0.167400 -1.418743 +v 0.097593 0.948722 -0.471243 +v 0.097593 0.096526 -1.366685 +v 0.097593 0.877848 -0.419185 +v 0.075121 0.042149 1.010166 +v 0.075121 0.042149 0.687434 +v 0.075121 0.042149 0.161366 +v 0.075121 0.042149 -0.161366 +v 0.075121 0.042149 -0.687434 +v 0.075121 0.042149 -1.010166 +v 0.125956 0.042149 1.061000 +v 0.125956 0.042149 0.636600 +v 0.125956 0.042149 0.212200 +v 0.125956 0.042149 -0.212200 +v 0.125956 0.042149 -0.636600 +v 0.125956 0.042149 -1.061000 +v 0.056341 -0.123867 0.969824 +v 0.056341 -0.123867 0.727776 +v 0.056341 -0.123867 0.121024 +v 0.056341 -0.123867 -0.121024 +v 0.056341 -0.123867 -0.727776 +v 0.056341 -0.123867 -0.969824 +v -0.125956 2.428429 1.096965 +v -0.125956 0.142335 1.385726 +v -0.125956 0.142335 -1.385726 +v -0.125956 2.128096 1.397299 +v -0.125956 2.128096 -1.397299 +v -0.125956 2.428429 -1.096965 +v -0.125956 0.042149 -1.485400 +v -0.125956 2.169381 -1.497698 +v -0.125956 0.042149 1.485400 +v -0.125956 2.169381 1.497698 +v -0.125956 2.528616 -1.138464 +v -0.125956 2.528616 1.138464 +v -0.064985 0.142335 -1.385726 +v -0.064985 2.128096 -1.397299 +v -0.064985 0.142335 1.385726 +v -0.064985 2.128096 1.397299 +v -0.064985 2.428429 -1.096965 +v -0.064985 2.428429 1.096965 +v -0.040207 0.897613 1.390926 +v -0.040207 1.171400 1.391563 +v -0.040207 0.897613 -1.390926 +v -0.040207 1.171400 -1.391554 +v -0.092371 0.897613 1.390926 +v -0.092371 1.171400 1.391563 +v -0.092371 0.897613 -1.390926 +v -0.092371 1.171400 -1.391554 +v -0.125956 1.171400 1.392205 +v -0.125956 1.171400 -1.392233 +v -0.125956 0.897613 -1.390926 +v -0.125956 0.897613 1.390926 +v -0.090460 0.951001 -1.390926 +v -0.090460 1.118012 -1.390926 +v -0.090460 0.951001 1.390926 +v -0.090460 1.118012 1.390926 +v -0.125956 1.118012 -1.391606 +v -0.125956 1.118012 1.391568 +v -0.125956 0.951001 1.390926 +v -0.125956 0.951001 -1.390926 +v -0.029347 1.034506 -0.285639 +v -0.029347 0.925197 -0.263896 +v -0.029347 0.832529 -0.201977 +v -0.029347 0.770611 -0.109309 +v -0.029347 0.748868 0.000000 +v -0.029347 0.770611 0.109309 +v -0.029347 0.832529 0.201977 +v -0.029347 0.925197 0.263896 +v -0.029347 1.034506 0.285639 +v -0.029347 1.143816 0.263896 +v -0.029347 1.236483 0.201977 +v -0.029347 1.298402 0.109309 +v -0.029347 1.320145 0.000000 +v -0.029347 1.298402 -0.109309 +v -0.029347 1.236483 -0.201977 +v -0.029347 1.143815 -0.263896 +v -0.109739 1.034506 -0.250510 +v -0.075285 1.034506 -0.285639 +v -0.109739 0.938640 -0.231441 +v -0.075285 0.925197 -0.263896 +v -0.109739 0.857369 -0.177137 +v -0.075285 0.832529 -0.201977 +v -0.109739 0.803065 -0.095866 +v -0.075285 0.770611 -0.109309 +v -0.109739 0.783996 0.000000 +v -0.075285 0.748868 0.000000 +v -0.109739 0.803065 0.095866 +v -0.075285 0.770611 0.109309 +v -0.109739 0.857369 0.177137 +v -0.075285 0.832529 0.201977 +v -0.109739 0.938640 0.231441 +v -0.075285 0.925197 0.263896 +v -0.109739 1.034506 0.250510 +v -0.075285 1.034506 0.285639 +v -0.109739 1.130372 0.231441 +v -0.075285 1.143816 0.263896 +v -0.109739 1.211644 0.177137 +v -0.075285 1.236483 0.201977 +v -0.109739 1.265947 0.095866 +v -0.075285 1.298402 0.109309 +v -0.109739 1.285016 0.000000 +v -0.075285 1.320145 0.000000 +v -0.109739 1.265947 -0.095866 +v -0.075285 1.298402 -0.109309 +v -0.109739 1.211644 -0.177137 +v -0.075285 1.236483 -0.201977 +v -0.109739 1.130372 -0.231441 +v -0.075285 1.143815 -0.263896 +v -0.015982 0.142335 0.468209 +v -0.015982 2.428429 0.468209 +v -0.015982 0.142335 0.393815 +v -0.015982 2.428429 0.393815 +v -0.125956 0.142335 0.468209 +v -0.125956 2.428429 0.468209 +v -0.125956 0.142335 0.393815 +v -0.125956 2.428429 0.393815 +v -0.015982 1.171400 0.468209 +v -0.015982 1.171400 0.393815 +v -0.125956 1.171400 0.393815 +v -0.125956 1.171400 0.468209 +v -0.015982 0.897613 0.393815 +v -0.125956 0.897613 0.393815 +v -0.125956 0.897613 0.468209 +v -0.015982 0.897613 0.468209 +v -0.059135 1.138329 0.491282 +v -0.059135 2.143588 1.400841 +v -0.059135 1.193578 0.424240 +v -0.059135 2.198836 1.333799 +v -0.101822 1.138329 0.491282 +v -0.101822 2.143588 1.400841 +v -0.101822 1.193578 0.424240 +v -0.101822 2.198836 1.333799 +v -0.054672 0.167400 1.418743 +v -0.054672 0.948722 0.471243 +v -0.054672 0.096526 1.366685 +v -0.054672 0.877848 0.419185 +v -0.097593 0.167400 1.418743 +v -0.097593 0.948722 0.471243 +v -0.097593 0.096526 1.366685 +v -0.097593 0.877848 0.419185 +v -0.015982 0.142335 -0.468209 +v -0.015982 2.428429 -0.468209 +v -0.015982 0.142335 -0.393815 +v -0.015982 2.428429 -0.393815 +v -0.125956 0.142335 -0.468209 +v -0.125956 2.428429 -0.468209 +v -0.125956 0.142335 -0.393815 +v -0.125956 2.428429 -0.393815 +v -0.015982 1.171400 -0.468209 +v -0.015982 1.171400 -0.393815 +v -0.125956 1.171400 -0.393815 +v -0.125956 1.171400 -0.468209 +v -0.015982 0.897613 -0.393815 +v -0.125956 0.897613 -0.393815 +v -0.125956 0.897613 -0.468209 +v -0.015982 0.897613 -0.468209 +v -0.059135 1.138329 -0.491282 +v -0.059135 2.143588 -1.400841 +v -0.059135 1.193578 -0.424240 +v -0.059135 2.198836 -1.333799 +v -0.101822 1.138329 -0.491282 +v -0.101822 2.143588 -1.400841 +v -0.101822 1.193578 -0.424240 +v -0.101822 2.198836 -1.333799 +v -0.054672 0.167400 -1.418743 +v -0.054672 0.948722 -0.471243 +v -0.054672 0.096526 -1.366685 +v -0.054672 0.877848 -0.419185 +v -0.097593 0.167400 -1.418743 +v -0.097593 0.948722 -0.471243 +v -0.097593 0.096526 -1.366685 +v -0.097593 0.877848 -0.419185 +v -0.075121 0.042149 1.010166 +v -0.075121 0.042149 0.687434 +v -0.075121 0.042149 0.161366 +v -0.075121 0.042149 -0.161366 +v -0.075121 0.042149 -0.687434 +v -0.075121 0.042149 -1.010166 +v -0.125956 0.042149 1.061000 +v -0.125956 0.042149 0.636600 +v -0.125956 0.042149 0.212200 +v -0.125956 0.042149 -0.212200 +v -0.125956 0.042149 -0.636600 +v -0.125956 0.042149 -1.061000 +v -0.056341 -0.123867 0.969824 +v -0.056341 -0.123867 0.727776 +v -0.056341 -0.123867 0.121024 +v -0.056341 -0.123867 -0.121024 +v -0.056341 -0.123867 -0.727776 +v -0.056341 -0.123867 -0.969824 +vt 0.895448 0.314338 +vt 0.901321 0.525639 +vt 0.895448 0.525639 +vt 0.273099 0.724653 +vt 0.053805 0.700391 +vt 0.273099 0.700391 +vt 0.788557 0.587648 +vt 0.812819 0.546774 +vt 0.812819 0.587648 +vt 0.004875 0.734403 +vt 0.209756 0.758666 +vt 0.004875 0.758666 +vt 0.322029 0.700391 +vt 0.322029 0.724653 +vt 0.937895 0.608456 +vt 0.947550 0.803744 +vt 0.937904 0.799712 +vt 0.866298 0.477800 +vt 0.856648 0.549952 +vt 0.866298 0.436927 +vt 0.932801 0.468721 +vt 0.942456 0.273431 +vt 0.942456 0.478314 +vt 0.778807 0.283695 +vt 0.740232 0.258767 +vt 0.749881 0.254770 +vt 0.740231 0.039474 +vt 0.749881 0.043471 +vt 0.778807 0.014545 +vt 0.774830 0.004875 +vt 0.425063 0.839089 +vt 0.425063 0.627788 +vt 0.645240 0.866900 +vt 0.515948 0.883638 +vt 0.707201 0.877765 +vt 0.707201 0.883638 +vt 0.978538 0.273431 +vt 0.984410 0.464685 +vt 0.978538 0.464685 +vt 0.895448 0.273431 +vt 0.901320 0.314338 +vt 0.901320 0.566546 +vt 0.895448 0.566546 +vt 0.922272 0.598863 +vt 0.928144 0.865781 +vt 0.922272 0.865781 +vt 0.711943 0.004974 +vt 0.716385 0.259410 +vt 0.711944 0.259428 +vt 0.721268 0.004956 +vt 0.721268 0.259410 +vt 0.725709 0.259390 +vt 0.730481 0.004936 +vt 0.730481 0.259390 +vt 0.678126 0.259489 +vt 0.682897 0.004936 +vt 0.682897 0.259488 +vt 0.696667 0.004974 +vt 0.696667 0.259428 +vt 0.687341 0.259571 +vt 0.692225 0.004934 +vt 0.692225 0.259514 +vt 0.687342 0.004875 +vt 0.725709 0.004936 +vt 0.004875 0.790146 +vt 0.015467 0.911212 +vt 0.004875 0.911212 +vt 0.015467 0.790146 +vt 0.022632 0.911212 +vt 0.022632 0.790146 +vt 0.033224 0.911212 +vt 0.173791 0.818495 +vt 0.246533 0.807903 +vt 0.246533 0.818494 +vt 0.173791 0.807903 +vt 0.246533 0.800738 +vt 0.173791 0.790146 +vt 0.246533 0.790146 +vt 0.937895 0.813881 +vt 0.942006 0.944448 +vt 0.937895 0.944448 +vt 0.942006 0.813881 +vt 0.950364 0.944061 +vt 0.950364 0.813495 +vt 0.954475 0.944061 +vt 0.980950 0.931775 +vt 0.976816 0.813495 +vt 0.980950 0.813495 +vt 0.976816 0.931775 +vt 0.968360 0.813969 +vt 0.968360 0.932249 +vt 0.964226 0.813969 +vt 0.164041 0.800738 +vt 0.042974 0.790146 +vt 0.164041 0.790146 +vt 0.164041 0.807903 +vt 0.042974 0.800738 +vt 0.164041 0.818495 +vt 0.042974 0.807903 +vt 0.254220 0.944448 +vt 0.264812 0.871705 +vt 0.264812 0.944448 +vt 0.247055 0.944448 +vt 0.254220 0.871705 +vt 0.236463 0.871705 +vt 0.247055 0.871705 +vt 0.964676 0.545087 +vt 0.968787 0.414521 +vt 0.968787 0.545087 +vt 0.956318 0.544701 +vt 0.964676 0.414521 +vt 0.952207 0.544701 +vt 0.956318 0.414135 +vt 0.969891 0.717617 +vt 0.974025 0.599337 +vt 0.974025 0.717617 +vt 0.961435 0.717142 +vt 0.969891 0.599337 +vt 0.957301 0.717142 +vt 0.961435 0.598863 +vt 0.788557 0.342401 +vt 0.812819 0.301526 +vt 0.812819 0.342401 +vt 0.278994 0.877789 +vt 0.295085 0.904987 +vt 0.278994 0.908872 +vt 0.788557 0.505899 +vt 0.807923 0.510795 +vt 0.793453 0.510795 +vt 0.788557 0.424150 +vt 0.807923 0.429046 +vt 0.793453 0.429046 +vt 0.807923 0.541878 +vt 0.812819 0.505899 +vt 0.812819 0.465024 +vt 0.807923 0.460128 +vt 0.807923 0.347297 +vt 0.812819 0.383275 +vt 0.807923 0.378379 +vt 0.053805 0.724653 +vt 0.004875 0.700391 +vt 0.812819 0.424150 +vt 0.441154 0.894220 +vt 0.453816 0.877765 +vt 0.452007 0.894220 +vt 0.305938 0.881675 +vt 0.295085 0.881675 +vt 0.199769 0.911472 +vt 0.210621 0.888160 +vt 0.210621 0.911472 +vt 0.293276 0.865220 +vt 0.307746 0.865220 +vt 0.441154 0.917532 +vt 0.453816 0.933986 +vt 0.439346 0.933986 +vt 0.226713 0.915357 +vt 0.226713 0.884275 +vt 0.468098 0.921417 +vt 0.468098 0.890334 +vt 0.212430 0.927926 +vt 0.197960 0.927926 +vt 0.199769 0.888160 +vt 0.212430 0.871705 +vt 0.305938 0.904987 +vt 0.293276 0.921441 +vt 0.793453 0.347297 +vt 0.788557 0.383275 +vt 0.788557 0.465024 +vt 0.788557 0.546774 +vt 0.822636 0.209756 +vt 0.846898 0.004875 +vt 0.846898 0.209756 +vt 0.906649 0.851070 +vt 0.912521 0.639770 +vt 0.912521 0.851070 +vt 0.950900 0.004875 +vt 0.941245 0.200163 +vt 0.941254 0.008907 +vt 0.885698 0.477803 +vt 0.885698 0.518678 +vt 0.876048 0.549953 +vt 0.921839 0.014469 +vt 0.931494 0.209758 +vt 0.921848 0.205726 +vt 0.691906 0.303921 +vt 0.730481 0.278991 +vt 0.701555 0.307917 +vt 0.691906 0.523212 +vt 0.701555 0.519216 +vt 0.730481 0.548141 +vt 0.875168 0.839089 +vt 0.846242 0.868015 +vt 0.654991 0.866900 +vt 0.987125 0.196128 +vt 0.992998 0.004875 +vt 0.992998 0.196128 +vt 0.989648 0.598863 +vt 0.983775 0.790116 +vt 0.983775 0.598863 +vt 0.906649 0.639770 +vt 0.912521 0.598863 +vt 0.906649 0.891977 +vt 0.912521 0.891977 +vt 0.342747 0.665374 +vt 0.336874 0.932293 +vt 0.336875 0.665374 +vt 0.366750 0.401078 +vt 0.362309 0.655506 +vt 0.362309 0.401057 +vt 0.371633 0.655527 +vt 0.371633 0.401078 +vt 0.380846 0.655551 +vt 0.376074 0.401102 +vt 0.380846 0.401102 +vt 0.333262 0.655585 +vt 0.328490 0.401010 +vt 0.333263 0.401010 +vt 0.347033 0.655506 +vt 0.347033 0.401057 +vt 0.342590 0.655566 +vt 0.337707 0.400920 +vt 0.342590 0.400977 +vt 0.337707 0.655624 +vt 0.376074 0.655551 +vt 0.370254 0.786441 +vt 0.380846 0.665374 +vt 0.380846 0.786441 +vt 0.363089 0.786441 +vt 0.370254 0.665374 +vt 0.352497 0.786441 +vt 0.363089 0.665374 +vt 0.495605 0.950507 +vt 0.506197 0.877765 +vt 0.506197 0.950507 +vt 0.488440 0.950507 +vt 0.495605 0.877765 +vt 0.477849 0.877765 +vt 0.488440 0.877765 +vt 0.173927 0.875817 +vt 0.043361 0.871705 +vt 0.173927 0.871705 +vt 0.173541 0.884175 +vt 0.043361 0.875816 +vt 0.173541 0.888286 +vt 0.042974 0.884174 +vt 0.973241 0.123629 +vt 0.977375 0.005350 +vt 0.977375 0.123629 +vt 0.964785 0.123155 +vt 0.973241 0.005350 +vt 0.960651 0.123155 +vt 0.964785 0.004875 +vt 0.322029 0.855470 +vt 0.311437 0.734403 +vt 0.322029 0.734403 +vt 0.311437 0.855470 +vt 0.304272 0.734403 +vt 0.304272 0.855470 +vt 0.293680 0.734403 +vt 0.911071 0.493804 +vt 0.921663 0.566546 +vt 0.911071 0.566546 +vt 0.921663 0.493804 +vt 0.928828 0.566546 +vt 0.939420 0.493804 +vt 0.939420 0.566546 +vt 0.968787 0.403998 +vt 0.964676 0.273431 +vt 0.968787 0.273431 +vt 0.964676 0.403998 +vt 0.956318 0.273818 +vt 0.956318 0.404384 +vt 0.952207 0.273818 +vt 0.977374 0.251660 +vt 0.973241 0.133380 +vt 0.977374 0.133380 +vt 0.973241 0.251660 +vt 0.964785 0.133855 +vt 0.964785 0.252134 +vt 0.960651 0.133855 +vt 0.322029 0.877789 +vt 0.322029 0.908872 +vt 0.793453 0.541878 +vt 0.793453 0.460128 +vt 0.793453 0.378379 +vt 0.183678 0.915357 +vt 0.183678 0.884275 +vt 0.425063 0.921417 +vt 0.425063 0.890334 +vt 0.452007 0.917532 +vt 0.209756 0.734404 +vt 0.947550 0.598863 +vt 0.866298 0.559552 +vt 0.866298 0.518676 +vt 0.856649 0.283031 +vt 0.866298 0.273431 +vt 0.866298 0.314306 +vt 0.866298 0.355180 +vt 0.866298 0.396055 +vt 0.932810 0.277463 +vt 0.774830 0.293365 +vt 0.453988 0.598863 +vt 0.645240 0.599977 +vt 0.453989 0.868015 +vt 0.515948 0.877765 +vt 0.984410 0.273431 +vt 0.901320 0.273431 +vt 0.928144 0.598863 +vt 0.716385 0.004956 +vt 0.678124 0.004936 +vt 0.033224 0.790146 +vt 0.173791 0.800738 +vt 0.954475 0.813495 +vt 0.964226 0.932249 +vt 0.042974 0.818495 +vt 0.236463 0.944447 +vt 0.952207 0.414135 +vt 0.957301 0.598863 +vt 0.788557 0.301526 +vt 0.004875 0.724653 +vt 0.439346 0.877765 +vt 0.197960 0.871705 +vt 0.307746 0.921441 +vt 0.822636 0.004875 +vt 0.950900 0.209756 +vt 0.876048 0.283031 +vt 0.885698 0.396057 +vt 0.885698 0.273431 +vt 0.885698 0.314306 +vt 0.885698 0.355181 +vt 0.885698 0.559553 +vt 0.885698 0.436928 +vt 0.931494 0.004875 +vt 0.726504 0.269322 +vt 0.726505 0.557811 +vt 0.654991 0.599977 +vt 0.875168 0.627788 +vt 0.846242 0.598863 +vt 0.987125 0.004875 +vt 0.989648 0.790116 +vt 0.906649 0.598863 +vt 0.342747 0.932293 +vt 0.366750 0.655527 +vt 0.328491 0.655585 +vt 0.352497 0.665374 +vt 0.477849 0.950507 +vt 0.042974 0.888286 +vt 0.960651 0.004875 +vt 0.293680 0.855470 +vt 0.928828 0.493804 +vt 0.952207 0.404384 +vt 0.960651 0.252134 +vt 0.774310 0.356785 +vt 0.778734 0.346051 +vt 0.778734 0.356785 +vt 0.774310 0.324583 +vt 0.778734 0.313849 +vt 0.778734 0.324583 +vt 0.774310 0.313849 +vt 0.778734 0.303115 +vt 0.774310 0.474859 +vt 0.778734 0.464125 +vt 0.778734 0.474859 +vt 0.774310 0.453391 +vt 0.778734 0.453391 +vt 0.774310 0.442657 +vt 0.778734 0.442657 +vt 0.774310 0.431923 +vt 0.778734 0.431923 +vt 0.774310 0.421189 +vt 0.778734 0.421189 +vt 0.778734 0.410455 +vt 0.774310 0.399721 +vt 0.778734 0.399721 +vt 0.778734 0.388987 +vt 0.774310 0.388987 +vt 0.778734 0.378253 +vt 0.774310 0.378253 +vt 0.778734 0.367519 +vt 0.774310 0.367519 +vt 0.774310 0.346051 +vt 0.778734 0.335317 +vt 0.774310 0.335317 +vt 0.380672 0.853280 +vt 0.389768 0.846563 +vt 0.391710 0.851049 +vt 0.397514 0.841314 +vt 0.401024 0.844732 +vt 0.402736 0.833547 +vt 0.407278 0.835359 +vt 0.409423 0.824311 +vt 0.404530 0.824367 +vt 0.407228 0.813279 +vt 0.402742 0.815203 +vt 0.400946 0.803966 +vt 0.397541 0.807463 +vt 0.389804 0.802292 +vt 0.391595 0.797762 +vt 0.380574 0.795668 +vt 0.380679 0.800538 +vt 0.371575 0.802462 +vt 0.369601 0.798003 +vt 0.363855 0.807771 +vt 0.360350 0.804352 +vt 0.354053 0.813669 +vt 0.358574 0.815517 +vt 0.351811 0.824674 +vt 0.356686 0.824637 +vt 0.358476 0.833755 +vt 0.354001 0.835677 +vt 0.363674 0.841469 +vt 0.360275 0.844968 +vt 0.371430 0.846637 +vt 0.369638 0.851175 +vt 0.380596 0.848390 +vt 0.990700 0.856431 +vt 0.995125 0.867165 +vt 0.990700 0.867165 +vt 0.990700 0.824229 +vt 0.995125 0.834963 +vt 0.990700 0.834963 +vt 0.990700 0.813495 +vt 0.995125 0.824229 +vt 0.990700 0.974504 +vt 0.995125 0.985238 +vt 0.990700 0.985238 +vt 0.990700 0.963771 +vt 0.995125 0.974504 +vt 0.995125 0.953036 +vt 0.995125 0.963771 +vt 0.990700 0.942302 +vt 0.990700 0.953037 +vt 0.990700 0.931569 +vt 0.995125 0.942302 +vt 0.990700 0.920835 +vt 0.995125 0.931569 +vt 0.995125 0.910101 +vt 0.995125 0.920835 +vt 0.990700 0.899367 +vt 0.990700 0.910101 +vt 0.990700 0.888633 +vt 0.995125 0.899367 +vt 0.990700 0.877899 +vt 0.995125 0.888633 +vt 0.995125 0.877899 +vt 0.990700 0.845697 +vt 0.995125 0.856431 +vt 0.995125 0.845697 +vt 0.358695 0.881542 +vt 0.352004 0.890628 +vt 0.354214 0.879611 +vt 0.363898 0.873817 +vt 0.360512 0.870301 +vt 0.371693 0.868708 +vt 0.369926 0.864155 +vt 0.380884 0.866994 +vt 0.380981 0.862102 +vt 0.392001 0.864382 +vt 0.401281 0.870726 +vt 0.390046 0.868860 +vt 0.402825 0.881899 +vt 0.407377 0.880158 +vt 0.409363 0.891190 +vt 0.402641 0.900280 +vt 0.407127 0.902214 +vt 0.397445 0.908018 +vt 0.400833 0.911528 +vt 0.391433 0.917673 +vt 0.380404 0.919707 +vt 0.389670 0.913130 +vt 0.371351 0.912975 +vt 0.369398 0.917446 +vt 0.363652 0.907727 +vt 0.360122 0.911100 +vt 0.358560 0.899918 +vt 0.354006 0.901666 +vt 0.356895 0.890716 +vt 0.404473 0.891090 +vt 0.380501 0.914823 +vt 0.774310 0.303115 +vt 0.774310 0.464125 +vt 0.774310 0.410455 +vt 0.995125 0.813495 +vt 0.397753 0.874096 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -0.0058 1.0000 +vn 0.0000 0.7071 -0.7071 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0058 -1.0000 +vn 0.0000 0.0058 1.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.6709 -0.7415 +vn 0.0000 -0.6709 0.7415 +vn 0.0000 -0.7715 -0.6362 +vn 0.0000 0.7715 0.6362 +vn 0.0000 0.6709 0.7415 +vn 0.0000 -0.6709 -0.7415 +vn 0.0000 -0.7715 0.6362 +vn 0.0000 0.7715 -0.6362 +vn 0.9937 -0.1124 0.0000 +vn 0.0000 0.7071 0.7071 +vn 0.0000 -0.2361 -0.9717 +vn 0.0000 -0.2361 0.9717 +vn 0.0000 -0.0058 -1.0000 +vn -1.0000 0.0000 0.0000 +vn -0.9937 -0.1124 0.0000 +vn 0.0000 0.3827 -0.9239 +vn 0.0000 -0.9239 -0.3827 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 -0.3827 0.9239 +vn 0.0000 0.3827 0.9239 +vn 0.0000 0.9239 0.3827 +vn 0.0000 0.9239 -0.3827 +vn 0.0000 -0.3827 -0.9239 +vn 0.7139 -0.0000 -0.7002 +vn 0.7139 -0.2680 -0.6469 +vn 0.7139 -0.4951 -0.4951 +vn 0.7139 -0.6469 -0.2680 +vn 0.7139 -0.7002 -0.0000 +vn 0.7139 -0.6469 0.2680 +vn 0.7139 -0.4951 0.4951 +vn 0.7139 -0.2680 0.6469 +vn 0.7139 0.0000 0.7002 +vn 0.7139 0.2680 0.6469 +vn 0.7139 0.4951 0.4951 +vn 0.7139 0.6469 0.2680 +vn 0.7139 0.7002 0.0000 +vn 0.7139 0.6469 -0.2680 +vn 0.7139 0.4951 -0.4951 +vn 0.7139 0.2680 -0.6469 +vn -0.7139 -0.2680 -0.6469 +vn -0.7139 -0.0000 -0.7002 +vn -0.7139 -0.4951 -0.4951 +vn -0.7139 -0.6469 -0.2680 +vn -0.7139 -0.7002 0.0000 +vn -0.7139 -0.6469 0.2680 +vn -0.7139 -0.4951 0.4951 +vn -0.7139 -0.2680 0.6469 +vn -0.7139 0.0000 0.7002 +vn -0.7139 0.2680 0.6469 +vn -0.7139 0.4951 0.4951 +vn -0.7139 0.6469 0.2680 +vn -0.7139 0.7002 0.0000 +vn -0.7139 0.6469 -0.2680 +vn -0.7139 0.4951 -0.4951 +vn -0.7139 0.2680 -0.6469 +s off +f 1/1/1 17/2/1 6/3/1 +f 179/4/2 12/5/2 11/6/2 +f 177/7/1 157/8/1 9/9/1 +f 178/10/3 9/11/3 10/12/3 +f 179/4/4 8/13/4 176/14/4 +f 3/15/5 8/16/5 5/17/5 +f 161/18/5 3/19/5 160/20/5 +f 2/21/5 10/22/5 9/23/5 +f 5/24/5 11/25/5 6/26/5 +f 6/26/5 12/27/5 1/28/5 +f 4/29/5 12/27/5 10/30/5 +f 17/31/5 18/32/5 13/33/5 +f 2/34/6 16/35/6 4/36/6 +f 5/37/7 13/38/7 3/39/7 +f 4/40/8 18/41/8 1/1/8 +f 6/3/9 14/42/9 5/43/9 +f 3/44/2 15/45/2 2/46/2 +f 33/47/2 38/48/2 31/49/2 +f 38/48/5 30/50/5 29/51/5 +f 25/52/1 19/53/1 21/54/1 +f 22/55/2 24/56/2 26/57/2 +f 34/58/5 31/49/5 32/59/5 +f 28/60/5 36/61/5 35/62/5 +f 26/57/2 27/63/2 28/60/2 +f 32/59/1 36/61/1 34/58/1 +f 25/52/1 30/50/1 23/64/1 +f 90/65/10 97/66/10 96/67/10 +f 94/68/5 98/69/5 97/66/5 +f 92/70/11 95/71/11 98/69/11 +f 99/72/10 93/73/10 89/74/10 +f 100/75/5 91/76/5 93/73/5 +f 91/76/11 102/77/11 87/78/11 +f 106/79/12 109/80/12 105/81/12 +f 110/82/5 107/83/5 109/80/5 +f 108/84/13 103/85/13 107/83/13 +f 114/86/14 117/87/14 113/88/14 +f 118/89/5 115/90/5 117/87/5 +f 116/91/15 111/92/15 115/90/15 +f 129/93/11 122/94/11 128/95/11 +f 130/96/5 126/97/5 129/93/5 +f 127/98/10 124/99/10 130/96/10 +f 125/100/11 131/101/11 121/102/11 +f 123/103/5 132/104/5 125/100/5 +f 123/103/10 134/105/10 133/106/10 +f 141/107/16 138/108/16 137/109/16 +f 139/110/5 142/111/5 141/107/5 +f 135/112/17 140/113/17 139/110/17 +f 149/114/18 146/115/18 145/116/18 +f 147/117/5 150/118/5 149/114/5 +f 143/119/19 148/120/19 147/117/19 +f 330/121/1 7/122/1 162/123/1 +f 151/124/20 164/125/20 152/126/20 +f 326/127/1 152/128/1 320/129/1 +f 328/130/1 154/131/1 322/132/1 +f 151/133/1 158/134/1 157/8/1 +f 154/131/1 159/135/1 153/136/1 +f 156/137/1 161/138/1 155/139/1 +f 180/140/21 10/141/21 12/5/21 +f 326/127/1 159/135/1 158/134/1 +f 328/130/1 161/138/1 160/142/1 +f 336/143/22 156/144/22 168/145/22 +f 331/146/1 164/125/1 163/147/1 +f 333/148/1 166/149/1 165/150/1 +f 331/146/23 151/151/23 319/152/23 +f 335/153/23 155/154/23 323/155/23 +f 153/156/20 166/149/20 154/157/20 +f 155/158/20 168/145/20 156/159/20 +f 333/148/23 153/160/23 321/161/23 +f 334/162/22 154/163/22 166/149/22 +f 332/164/22 152/165/22 164/125/22 +f 330/121/1 156/137/1 324/166/1 +f 329/167/1 155/139/1 161/138/1 +f 327/168/1 153/136/1 159/135/1 +f 325/169/1 151/133/1 157/8/1 +f 175/170/24 8/171/24 7/172/24 +f 185/173/1 169/174/1 174/175/1 +f 176/176/25 171/177/25 173/178/25 +f 326/179/25 325/180/25 170/181/25 +f 170/182/25 178/183/25 172/184/25 +f 179/185/25 173/186/25 174/187/25 +f 180/188/25 174/187/25 169/189/25 +f 172/190/25 180/188/25 169/189/25 +f 185/191/25 182/192/25 181/193/25 +f 184/194/6 170/195/6 172/196/6 +f 181/197/7 173/198/7 171/199/7 +f 186/200/8 172/201/8 169/174/8 +f 182/202/9 174/175/9 173/203/9 +f 183/204/2 171/205/2 170/206/2 +f 206/207/2 201/208/2 199/209/2 +f 198/210/25 206/207/25 197/211/25 +f 187/212/1 193/213/1 189/214/1 +f 192/215/2 190/216/2 194/217/2 +f 199/209/25 202/218/25 200/219/25 +f 204/220/25 196/221/25 203/222/25 +f 194/217/2 195/223/2 192/215/2 +f 204/220/1 200/219/1 202/218/1 +f 198/210/1 193/213/1 191/224/1 +f 265/225/10 258/226/10 264/227/10 +f 266/228/25 262/229/25 265/225/25 +f 263/230/11 260/231/11 266/228/11 +f 261/232/10 267/233/10 257/234/10 +f 259/235/25 268/236/25 261/232/25 +f 259/235/11 270/237/11 269/238/11 +f 277/239/12 274/240/12 273/241/12 +f 275/242/25 278/243/25 277/239/25 +f 271/244/13 276/245/13 275/242/13 +f 285/246/14 282/247/14 281/248/14 +f 283/249/25 286/250/25 285/246/25 +f 279/251/15 284/252/15 283/249/15 +f 290/253/11 297/254/11 296/255/11 +f 294/256/25 298/257/25 297/254/25 +f 292/258/10 295/259/10 298/257/10 +f 299/260/11 293/261/11 289/262/11 +f 300/263/25 291/264/25 293/261/25 +f 291/264/10 302/265/10 287/266/10 +f 306/267/16 309/268/16 305/269/16 +f 310/270/25 307/271/25 309/268/25 +f 308/272/17 303/273/17 307/271/17 +f 314/274/18 317/275/18 313/276/18 +f 318/277/25 315/278/25 317/275/25 +f 316/279/19 311/280/19 315/278/19 +f 332/164/26 319/281/26 320/282/26 +f 325/169/1 320/129/1 319/283/1 +f 327/168/1 322/132/1 321/284/1 +f 329/167/1 324/166/1 323/285/1 +f 334/162/26 321/286/26 322/287/26 +f 336/143/26 323/288/26 324/289/26 +f 335/153/1 168/145/1 167/290/1 +f 1/1/1 18/41/1 17/2/1 +f 179/4/2 180/140/2 12/5/2 +f 177/7/1 325/169/1 157/8/1 +f 178/10/3 177/291/3 9/11/3 +f 179/4/4 11/6/4 8/13/4 +f 3/15/5 7/292/5 8/16/5 +f 7/293/5 3/19/5 162/294/5 +f 3/19/5 2/295/5 160/20/5 +f 162/294/5 3/19/5 161/18/5 +f 2/295/5 9/296/5 157/297/5 +f 158/298/5 159/299/5 2/295/5 +f 159/299/5 160/20/5 2/295/5 +f 2/295/5 157/297/5 158/298/5 +f 2/21/5 4/300/5 10/22/5 +f 5/24/5 8/301/5 11/25/5 +f 6/26/5 11/25/5 12/27/5 +f 4/29/5 1/28/5 12/27/5 +f 16/302/5 15/303/5 18/32/5 +f 15/303/5 13/33/5 18/32/5 +f 13/33/5 14/304/5 17/31/5 +f 2/34/6 15/305/6 16/35/6 +f 5/37/7 14/306/7 13/38/7 +f 4/40/8 16/307/8 18/41/8 +f 6/3/9 17/2/9 14/42/9 +f 3/44/2 13/308/2 15/45/2 +f 33/47/2 37/309/2 38/48/2 +f 38/48/5 37/309/5 30/50/5 +f 25/52/1 23/64/1 19/53/1 +f 22/55/2 20/310/2 24/56/2 +f 34/58/5 33/47/5 31/49/5 +f 28/60/5 27/63/5 36/61/5 +f 26/57/2 24/56/2 27/63/2 +f 32/59/1 35/62/1 36/61/1 +f 25/52/1 29/51/1 30/50/1 +f 90/65/10 94/68/10 97/66/10 +f 94/68/5 92/70/5 98/69/5 +f 92/70/11 88/311/11 95/71/11 +f 99/72/10 100/75/10 93/73/10 +f 100/75/5 101/312/5 91/76/5 +f 91/76/11 101/312/11 102/77/11 +f 106/79/12 110/82/12 109/80/12 +f 110/82/5 108/84/5 107/83/5 +f 108/84/13 104/313/13 103/85/13 +f 114/86/14 118/89/14 117/87/14 +f 118/89/5 116/91/5 115/90/5 +f 116/91/15 112/314/15 111/92/15 +f 129/93/11 126/97/11 122/94/11 +f 130/96/5 124/99/5 126/97/5 +f 127/98/10 120/315/10 124/99/10 +f 125/100/11 132/104/11 131/101/11 +f 123/103/5 133/106/5 132/104/5 +f 123/103/10 119/316/10 134/105/10 +f 141/107/16 142/111/16 138/108/16 +f 139/110/5 140/113/5 142/111/5 +f 135/112/17 136/317/17 140/113/17 +f 149/114/18 150/118/18 146/115/18 +f 147/117/5 148/120/5 150/118/5 +f 143/119/19 144/318/19 148/120/19 +f 330/121/1 175/319/1 7/122/1 +f 151/124/20 163/147/20 164/125/20 +f 326/127/1 158/134/1 152/128/1 +f 328/130/1 160/142/1 154/131/1 +f 151/133/1 152/128/1 158/134/1 +f 154/131/1 160/142/1 159/135/1 +f 156/137/1 162/123/1 161/138/1 +f 180/140/21 178/320/21 10/141/21 +f 326/127/1 327/168/1 159/135/1 +f 328/130/1 329/167/1 161/138/1 +f 336/143/22 324/321/22 156/144/22 +f 331/146/1 332/164/1 164/125/1 +f 333/148/1 334/162/1 166/149/1 +f 331/146/23 163/147/23 151/151/23 +f 335/153/23 167/290/23 155/154/23 +f 153/156/20 165/150/20 166/149/20 +f 155/158/20 167/290/20 168/145/20 +f 333/148/23 165/150/23 153/160/23 +f 334/162/22 322/322/22 154/163/22 +f 332/164/22 320/323/22 152/165/22 +f 330/121/1 162/123/1 156/137/1 +f 329/167/1 323/285/1 155/139/1 +f 327/168/1 321/284/1 153/136/1 +f 325/169/1 319/283/1 151/133/1 +f 175/170/24 176/324/24 8/171/24 +f 185/173/1 186/200/1 169/174/1 +f 176/176/25 175/325/25 171/177/25 +f 170/181/25 171/326/25 328/327/25 +f 171/326/25 175/328/25 330/329/25 +f 330/329/25 329/330/25 171/326/25 +f 329/330/25 328/327/25 171/326/25 +f 325/180/25 177/331/25 170/181/25 +f 328/327/25 327/332/25 170/181/25 +f 327/332/25 326/179/25 170/181/25 +f 170/182/25 177/333/25 178/183/25 +f 179/185/25 176/334/25 173/186/25 +f 180/188/25 179/185/25 174/187/25 +f 172/190/25 178/335/25 180/188/25 +f 181/193/25 183/336/25 186/337/25 +f 183/336/25 184/338/25 186/337/25 +f 186/337/25 185/191/25 181/193/25 +f 184/194/6 183/339/6 170/195/6 +f 181/197/7 182/340/7 173/198/7 +f 186/200/8 184/341/8 172/201/8 +f 182/202/9 185/173/9 174/175/9 +f 183/204/2 181/342/2 171/205/2 +f 206/207/2 205/343/2 201/208/2 +f 198/210/25 205/343/25 206/207/25 +f 187/212/1 191/224/1 193/213/1 +f 192/215/2 188/344/2 190/216/2 +f 199/209/25 201/208/25 202/218/25 +f 204/220/25 195/223/25 196/221/25 +f 194/217/2 196/221/2 195/223/2 +f 204/220/1 203/222/1 200/219/1 +f 198/210/1 197/211/1 193/213/1 +f 265/225/10 262/229/10 258/226/10 +f 266/228/25 260/231/25 262/229/25 +f 263/230/11 256/345/11 260/231/11 +f 261/232/10 268/236/10 267/233/10 +f 259/235/25 269/238/25 268/236/25 +f 259/235/11 255/346/11 270/237/11 +f 277/239/12 278/243/12 274/240/12 +f 275/242/25 276/245/25 278/243/25 +f 271/244/13 272/347/13 276/245/13 +f 285/246/14 286/250/14 282/247/14 +f 283/249/25 284/252/25 286/250/25 +f 279/251/15 280/348/15 284/252/15 +f 290/253/11 294/256/11 297/254/11 +f 294/256/25 292/258/25 298/257/25 +f 292/258/10 288/349/10 295/259/10 +f 299/260/11 300/263/11 293/261/11 +f 300/263/25 301/350/25 291/264/25 +f 291/264/10 301/350/10 302/265/10 +f 306/267/16 310/270/16 309/268/16 +f 310/270/25 308/272/25 307/271/25 +f 308/272/17 304/351/17 303/273/17 +f 314/274/18 318/277/18 317/275/18 +f 318/277/25 316/279/25 315/278/25 +f 316/279/19 312/352/19 311/280/19 +f 332/164/26 331/146/26 319/281/26 +f 325/169/1 326/127/1 320/129/1 +f 327/168/1 328/130/1 322/132/1 +f 329/167/1 330/121/1 324/166/1 +f 334/162/26 333/148/26 321/286/26 +f 336/143/26 335/153/26 323/288/26 +f 335/153/1 336/143/1 168/145/1 +s 1 +f 86/353/27 39/354/10 54/355/27 +f 60/356/8 42/357/28 41/358/8 +f 62/359/28 43/360/1 42/357/28 +f 64/361/1 44/362/29 43/363/1 +f 44/362/29 68/364/9 45/365/9 +f 45/365/9 70/366/30 46/367/30 +f 46/367/30 72/368/11 47/369/11 +f 47/369/11 74/370/31 48/371/31 +f 74/370/31 49/372/21 48/371/31 +f 49/372/21 78/373/32 50/374/32 +f 78/373/32 51/375/2 50/374/32 +f 80/376/2 52/377/33 51/375/2 +f 82/378/33 53/379/4 52/377/33 +f 84/380/4 54/355/27 53/379/4 +f 56/381/10 40/382/34 39/354/10 +f 58/383/34 41/358/8 40/382/34 +f 56/384/35 57/385/36 58/386/36 +f 58/386/36 59/387/37 60/388/37 +f 60/388/37 61/389/38 62/390/38 +f 64/391/39 61/389/38 63/392/39 +f 66/393/40 63/392/39 65/394/40 +f 68/395/41 65/394/40 67/396/41 +f 68/395/41 69/397/42 70/398/42 +f 72/399/43 69/397/42 71/400/43 +f 72/399/43 73/401/44 74/402/44 +f 74/402/44 75/403/45 76/404/45 +f 78/405/46 75/403/45 77/406/46 +f 80/407/47 77/406/46 79/408/47 +f 80/407/47 81/409/48 82/410/48 +f 82/410/48 83/411/49 84/412/49 +f 84/412/49 85/413/50 86/414/50 +f 86/414/50 55/415/35 56/384/35 +f 63/392/5 59/387/5 75/403/5 +f 207/416/10 254/417/27 222/418/27 +f 210/419/28 228/420/8 209/421/8 +f 211/422/1 230/423/28 210/419/28 +f 212/424/29 232/425/1 211/426/1 +f 213/427/9 234/428/29 212/424/29 +f 213/427/9 238/429/30 236/430/9 +f 215/431/11 238/429/30 214/432/30 +f 216/433/31 240/434/11 215/431/11 +f 217/435/21 242/436/31 216/433/31 +f 217/435/21 246/437/32 244/438/21 +f 219/439/2 246/437/32 218/440/32 +f 220/441/33 248/442/2 219/439/2 +f 221/443/4 250/444/33 220/441/33 +f 222/418/27 252/445/4 221/443/4 +f 208/446/34 224/447/10 207/416/10 +f 209/421/8 226/448/34 208/446/34 +f 225/449/51 224/450/52 226/451/51 +f 227/452/53 226/451/51 228/453/53 +f 229/454/54 228/453/53 230/455/54 +f 231/456/55 230/455/54 232/457/55 +f 234/458/56 231/456/55 232/457/55 +f 236/459/57 233/460/56 234/458/56 +f 237/461/58 236/459/57 238/462/58 +f 240/463/59 237/461/58 238/462/58 +f 241/464/60 240/463/59 242/465/60 +f 243/466/61 242/465/60 244/467/61 +f 246/468/62 243/466/61 244/467/61 +f 248/469/63 245/470/62 246/468/62 +f 249/471/64 248/469/63 250/472/64 +f 251/473/65 250/472/64 252/474/65 +f 253/475/66 252/474/65 254/476/66 +f 223/477/52 254/476/66 224/450/52 +f 239/478/25 247/479/25 223/477/25 +f 86/353/27 56/381/10 39/354/10 +f 60/356/8 62/359/28 42/357/28 +f 62/359/28 64/480/1 43/360/1 +f 64/361/1 66/481/29 44/362/29 +f 44/362/29 66/481/29 68/364/9 +f 45/365/9 68/364/9 70/366/30 +f 46/367/30 70/366/30 72/368/11 +f 47/369/11 72/368/11 74/370/31 +f 74/370/31 76/482/21 49/372/21 +f 49/372/21 76/482/21 78/373/32 +f 78/373/32 80/376/2 51/375/2 +f 80/376/2 82/378/33 52/377/33 +f 82/378/33 84/380/4 53/379/4 +f 84/380/4 86/353/27 54/355/27 +f 56/381/10 58/383/34 40/382/34 +f 58/383/34 60/356/8 41/358/8 +f 56/384/35 55/415/35 57/385/36 +f 58/386/36 57/385/36 59/387/37 +f 60/388/37 59/387/37 61/389/38 +f 64/391/39 62/390/38 61/389/38 +f 66/393/40 64/391/39 63/392/39 +f 68/395/41 66/393/40 65/394/40 +f 68/395/41 67/396/41 69/397/42 +f 72/399/43 70/398/42 69/397/42 +f 72/399/43 71/400/43 73/401/44 +f 74/402/44 73/401/44 75/403/45 +f 78/405/46 76/404/45 75/403/45 +f 80/407/47 78/405/46 77/406/46 +f 80/407/47 79/408/47 81/409/48 +f 82/410/48 81/409/48 83/411/49 +f 84/412/49 83/411/49 85/413/50 +f 86/414/50 85/413/50 55/415/35 +f 59/387/5 57/385/5 55/415/5 +f 55/415/5 85/413/5 83/411/5 +f 83/411/5 81/409/5 79/408/5 +f 79/408/5 77/406/5 83/411/5 +f 77/406/5 75/403/5 83/411/5 +f 75/403/5 73/401/5 67/396/5 +f 73/401/5 71/400/5 67/396/5 +f 71/400/5 69/397/5 67/396/5 +f 67/396/5 65/394/5 63/392/5 +f 63/392/5 61/389/5 59/387/5 +f 59/387/5 55/415/5 75/403/5 +f 55/415/5 83/411/5 75/403/5 +f 67/396/5 63/392/5 75/403/5 +f 207/416/10 224/447/10 254/417/27 +f 210/419/28 230/423/28 228/420/8 +f 211/422/1 232/483/1 230/423/28 +f 212/424/29 234/428/29 232/425/1 +f 213/427/9 236/430/9 234/428/29 +f 213/427/9 214/432/30 238/429/30 +f 215/431/11 240/434/11 238/429/30 +f 216/433/31 242/436/31 240/434/11 +f 217/435/21 244/438/21 242/436/31 +f 217/435/21 218/440/32 246/437/32 +f 219/439/2 248/442/2 246/437/32 +f 220/441/33 250/444/33 248/442/2 +f 221/443/4 252/445/4 250/444/33 +f 222/418/27 254/417/27 252/445/4 +f 208/446/34 226/448/34 224/447/10 +f 209/421/8 228/420/8 226/448/34 +f 225/449/51 223/477/52 224/450/52 +f 227/452/53 225/449/51 226/451/51 +f 229/454/54 227/452/53 228/453/53 +f 231/456/55 229/454/54 230/455/54 +f 234/458/56 233/460/56 231/456/55 +f 236/459/57 235/484/57 233/460/56 +f 237/461/58 235/484/57 236/459/57 +f 240/463/59 239/478/59 237/461/58 +f 241/464/60 239/478/59 240/463/59 +f 243/466/61 241/464/60 242/465/60 +f 246/468/62 245/470/62 243/466/61 +f 248/469/63 247/479/63 245/470/62 +f 249/471/64 247/479/63 248/469/63 +f 251/473/65 249/471/64 250/472/64 +f 253/475/66 251/473/65 252/474/65 +f 223/477/52 253/475/66 254/476/66 +f 223/477/25 225/449/25 227/452/25 +f 227/452/25 229/454/25 223/477/25 +f 229/454/25 231/456/25 223/477/25 +f 231/456/25 233/460/25 239/478/25 +f 233/460/25 235/484/25 239/478/25 +f 235/484/25 237/461/25 239/478/25 +f 239/478/25 241/464/25 247/479/25 +f 241/464/25 243/466/25 247/479/25 +f 243/466/25 245/470/25 247/479/25 +f 247/479/25 249/471/25 251/473/25 +f 251/473/25 253/475/25 223/477/25 +f 247/479/25 251/473/25 223/477/25 +f 223/477/25 231/456/25 239/478/25 +o frame +v -0.250000 0.082265 1.245283 +v -0.250000 0.082265 -1.245283 +v 0.250000 0.082265 1.245283 +v 0.250000 0.082265 -1.245283 +v -0.250000 -0.250000 -1.500000 +v -0.250000 -0.250000 1.500000 +v -0.250000 3.000000 1.500000 +v -0.250000 3.000000 -1.500000 +v 0.250000 3.000000 -1.500000 +v 0.250000 -0.250000 -1.500000 +v 0.250000 -0.250000 1.500000 +v 0.250000 3.000000 1.500000 +v -0.250000 2.476200 0.916753 +v -0.250000 2.147670 1.245283 +v -0.250000 2.147670 -1.245283 +v -0.250000 2.476200 -0.916753 +v 0.250000 2.247670 1.245283 +v 0.250000 2.476200 1.016753 +v 0.250000 2.476200 -1.016753 +v 0.250000 2.247670 -1.245283 +v 0.125956 2.528616 1.138464 +v -0.125956 2.528616 1.138464 +v -0.125956 0.041706 1.485400 +v 0.125956 0.041706 1.485400 +v -0.125956 0.041706 -1.485400 +v 0.125956 0.041706 -1.485400 +v 0.125956 0.082265 -1.245283 +v -0.125956 0.082265 -1.245283 +v 0.125956 0.082265 1.245283 +v -0.125956 0.082265 1.245283 +v -0.125956 2.476200 0.916753 +v 0.125956 2.476200 1.016753 +v 0.125956 2.247670 1.245283 +v -0.125956 2.147670 1.245283 +v -0.125956 2.147670 -1.245283 +v 0.125956 2.247670 -1.245283 +v 0.125956 2.476200 -1.016753 +v -0.125956 2.476200 -0.916753 +v 0.125956 2.169381 1.490198 +v -0.125956 2.169381 1.490198 +v -0.125956 2.169381 -1.490198 +v 0.125956 2.169381 -1.490198 +v 0.125956 2.528616 -1.138464 +v -0.125956 2.528616 -1.138464 +vt 0.252094 0.849975 +vt 0.042974 0.861955 +vt 0.042974 0.849975 +vt 0.053162 0.391169 +vt 0.367026 0.342882 +vt 0.367026 0.391169 +vt 0.900109 0.004875 +vt 0.912088 0.204338 +vt 0.900109 0.204338 +vt 0.053162 0.053162 +vt 0.367026 0.004876 +vt 0.367026 0.053162 +vt 0.415312 0.053162 +vt 0.415313 0.342882 +vt 0.004875 0.342883 +vt 0.053162 0.342883 +vt 0.286651 0.425519 +vt 0.318739 0.690640 +vt 0.286651 0.666041 +vt 0.226812 0.768416 +vt 0.271682 0.780396 +vt 0.226812 0.780396 +vt 0.856649 0.036087 +vt 0.868628 0.232469 +vt 0.856648 0.232469 +vt 0.103747 0.099831 +vt 0.334938 0.077761 +vt 0.334938 0.318284 +vt 0.125817 0.077761 +vt 0.125817 0.318284 +vt 0.055461 0.457246 +vt 0.004875 0.690640 +vt 0.004875 0.400920 +vt 0.087188 0.425519 +vt 0.318739 0.400920 +vt 0.055460 0.634314 +vt 0.087188 0.666041 +vt 0.103747 0.296214 +vt 0.049744 0.780396 +vt 0.049744 0.768416 +vt 0.004875 0.768416 +vt 0.004875 0.780396 +vt 0.414924 0.449983 +vt 0.390596 0.400920 +vt 0.414924 0.400920 +vt 0.856648 0.263681 +vt 0.868628 0.263681 +vt 0.923050 0.472894 +vt 0.911071 0.273431 +vt 0.923050 0.273431 +vt 0.868628 0.004875 +vt 0.868628 0.036087 +vt 0.890358 0.245395 +vt 0.878378 0.004875 +vt 0.890358 0.004875 +vt 0.896898 0.839383 +vt 0.884919 0.598863 +vt 0.896898 0.598863 +vt 0.430107 0.236244 +vt 0.425246 0.039582 +vt 0.430253 0.060865 +vt 0.461883 0.029415 +vt 0.459928 0.004875 +vt 0.664327 0.329425 +vt 0.459896 0.302054 +vt 0.668618 0.304997 +vt 0.664320 0.561413 +vt 0.459690 0.589112 +vt 0.452012 0.564649 +vt 0.461669 0.267743 +vt 0.425063 0.257528 +vt 0.668618 0.585734 +vt 0.042974 0.840225 +vt 0.252094 0.828245 +vt 0.252094 0.840225 +vt 0.414924 0.718936 +vt 0.390596 0.669873 +vt 0.414924 0.669873 +vt 0.822570 0.301526 +vt 0.846898 0.507007 +vt 0.822570 0.507007 +vt 0.390596 0.449983 +vt 0.812885 0.291775 +vt 0.788557 0.004875 +vt 0.812885 0.004875 +vt 0.764559 0.508596 +vt 0.740232 0.303115 +vt 0.764559 0.303115 +vt 0.452216 0.326499 +vt 0.425247 0.336687 +vt 0.664083 0.032287 +vt 0.668374 0.288821 +vt 0.664077 0.264516 +vt 0.425063 0.554433 +vt 0.430094 0.542765 +vt 0.430257 0.348360 +vt 0.668374 0.007875 +vt 0.459720 0.292303 +vt 0.252094 0.861955 +vt 0.912088 0.004875 +vt 0.053162 0.004875 +vt 0.004875 0.053162 +vt 0.271682 0.768416 +vt 0.911071 0.472894 +vt 0.856649 0.004875 +vt 0.878379 0.245395 +vt 0.884919 0.839383 +vt 0.042974 0.828245 +vt 0.390596 0.718936 +vt 0.846898 0.301526 +vt 0.788557 0.291775 +vt 0.740231 0.508596 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -0.7071 -0.7071 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 -0.6996 0.7145 +vn 0.0000 -0.6996 -0.7145 +vn 0.0000 0.0023 -1.0000 +vn 0.0000 0.0023 1.0000 +s off +f 339/485/67 369/486/67 353/487/67 +f 344/488/67 346/489/67 341/490/67 +f 371/491/68 338/492/68 364/493/68 +f 348/494/68 342/495/68 347/496/68 +f 346/489/69 342/497/69 341/498/69 +f 344/499/70 348/494/70 345/500/70 +f 338/501/71 342/502/71 337/503/71 +f 367/504/72 350/505/72 349/506/72 +f 354/507/69 373/508/69 355/509/69 +f 354/510/73 345/500/73 348/494/73 +f 339/511/73 346/489/73 340/512/73 +f 353/513/73 347/496/73 339/511/73 +f 356/514/73 346/489/73 345/500/73 +f 352/515/71 343/516/71 344/517/71 +f 351/518/71 341/519/71 338/501/71 +f 349/520/71 350/521/71 343/516/71 +f 351/518/71 352/515/71 344/517/71 +f 353/513/73 354/510/73 348/494/73 +f 355/522/73 356/514/73 345/500/73 +f 367/504/69 352/523/69 374/524/69 +f 371/525/74 352/523/74 351/526/74 +f 350/521/71 342/502/71 343/516/71 +f 379/527/75 377/528/75 378/529/75 +f 356/530/74 373/508/74 372/531/74 +f 366/532/67 350/533/67 370/534/67 +f 354/507/72 369/535/72 368/536/72 +f 365/537/70 340/538/70 363/539/70 +f 337/540/70 364/541/70 338/542/70 +f 374/543/73 358/544/73 367/545/73 +f 370/546/73 358/544/73 376/547/73 +f 363/548/71 378/549/71 362/550/71 +f 365/551/71 375/552/71 369/553/71 +f 371/554/73 380/555/73 374/543/73 +f 363/548/71 360/556/71 365/551/71 +f 356/557/68 363/558/68 340/559/68 +f 375/560/76 358/561/76 357/562/76 +f 376/563/77 360/564/77 359/565/77 +f 380/566/69 357/562/69 358/561/69 +f 362/567/70 359/568/70 360/569/70 +f 361/570/78 378/571/78 377/572/78 +f 372/573/71 379/574/71 378/549/71 +f 366/575/73 361/576/73 364/577/73 +f 369/553/71 357/578/71 368/579/71 +f 373/580/71 357/578/71 379/574/71 +f 366/575/73 376/547/73 359/581/73 +f 364/577/73 377/582/73 371/554/73 +f 339/485/67 365/583/67 369/486/67 +f 344/488/67 345/500/67 346/489/67 +f 371/491/68 351/584/68 338/492/68 +f 348/494/68 343/585/68 342/495/68 +f 346/489/69 347/496/69 342/497/69 +f 344/499/70 343/586/70 348/494/70 +f 338/501/71 341/519/71 342/502/71 +f 367/504/72 370/587/72 350/505/72 +f 354/507/69 368/536/69 373/508/69 +f 354/510/73 355/522/73 345/500/73 +f 339/511/73 347/496/73 346/489/73 +f 353/513/73 348/494/73 347/496/73 +f 356/514/73 340/512/73 346/489/73 +f 352/515/71 349/520/71 343/516/71 +f 351/518/71 344/517/71 341/519/71 +f 367/504/69 349/506/69 352/523/69 +f 371/525/74 374/524/74 352/523/74 +f 350/521/71 337/503/71 342/502/71 +f 379/527/75 380/566/75 377/528/75 +f 356/530/74 355/509/74 373/508/74 +f 366/532/67 337/588/67 350/533/67 +f 354/507/72 353/589/72 369/535/72 +f 365/537/70 339/590/70 340/538/70 +f 337/540/70 366/591/70 364/541/70 +f 374/543/73 380/555/73 358/544/73 +f 370/546/73 367/545/73 358/544/73 +f 363/548/71 372/573/71 378/549/71 +f 365/551/71 360/556/71 375/552/71 +f 371/554/73 377/582/73 380/555/73 +f 363/548/71 362/550/71 360/556/71 +f 356/557/68 372/592/68 363/558/68 +f 375/560/76 376/593/76 358/561/76 +f 376/563/77 375/594/77 360/564/77 +f 380/566/69 379/527/69 357/562/69 +f 362/567/70 361/595/70 359/568/70 +f 361/570/78 362/596/78 378/571/78 +f 372/573/71 373/580/71 379/574/71 +f 366/575/73 359/581/73 361/576/73 +f 369/553/71 375/552/71 357/578/71 +f 373/580/71 368/579/71 357/578/71 +f 366/575/73 370/546/73 376/547/73 +f 364/577/73 361/576/73 377/582/73 +o decal +v -0.074985 1.303216 -0.467952 +v -0.074985 1.303216 0.467952 +v -0.074985 2.239120 -0.467952 +v -0.074985 2.239120 0.467952 +v 0.074985 1.303216 0.467952 +v 0.074985 1.303216 -0.467952 +v 0.074985 2.239120 0.467952 +v 0.074985 2.239120 -0.467952 +vt 1.000000 0.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 1.000000 1.000000 +vt 1.000000 1.000000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 -0.0000 +s off +f 382/597/79 383/598/79 381/599/79 +f 386/600/80 387/601/80 385/602/80 +f 382/597/79 384/603/79 383/598/79 +f 386/600/80 388/604/80 387/601/80 diff --git a/src/main/resources/assets/hbm/models/doors/qe_sliding_door.obj b/src/main/resources/assets/hbm/models/doors/qe_sliding_door.obj new file mode 100644 index 000000000..66bd1e8ce --- /dev/null +++ b/src/main/resources/assets/hbm/models/doors/qe_sliding_door.obj @@ -0,0 +1,2312 @@ +# Blender v2.92.0 OBJ File: 'qe_sliding_door.blend' +# www.blender.org +o leftDoor +v 0.030935 0.772401 0.150776 +v 0.030935 0.972661 0.150776 +v 0.075000 0.088688 0.911312 +v 0.075000 1.911312 0.911312 +v 0.075000 0.088688 0.088688 +v 0.075000 1.911312 0.088688 +v 0.075000 2.000000 1.000000 +v 0.075000 0.000000 1.000000 +v 0.012500 1.861312 0.861312 +v 0.012500 0.138688 0.861312 +v 0.012500 0.138688 0.138688 +v 0.012500 1.861312 0.138688 +v 0.012500 0.733440 0.267519 +v 0.012500 0.988637 0.267519 +v 0.075000 0.655676 0.088688 +v 0.075000 1.166712 0.088688 +v 0.012500 1.166712 0.138688 +v 0.012500 0.655676 0.138688 +v 0.075000 0.733440 0.217519 +v 0.075000 0.988637 0.217519 +v 0.026895 0.753307 0.256002 +v 0.023223 0.758010 0.253518 +v 0.026895 0.753307 0.872828 +v 0.023223 0.758010 0.875312 +v 0.026895 0.834000 0.872828 +v 0.023223 0.829297 0.875312 +v 0.026895 0.834000 0.256002 +v 0.023223 0.829297 0.253518 +v 0.012500 0.753307 0.861312 +v 0.011573 0.758010 0.866015 +v 0.012500 0.753307 0.267519 +v 0.011573 0.758010 0.262816 +v 0.012500 0.834000 0.861312 +v 0.011573 0.829297 0.866015 +v 0.012500 0.834000 0.267519 +v 0.011573 0.829297 0.262816 +v 0.026895 0.873731 0.256002 +v 0.023223 0.878434 0.253518 +v 0.026895 0.873731 0.872828 +v 0.023223 0.878434 0.875312 +v 0.026895 0.954424 0.872828 +v 0.023223 0.949722 0.875312 +v 0.026895 0.954424 0.256002 +v 0.023223 0.949722 0.253518 +v 0.012500 0.873731 0.861312 +v 0.011573 0.878434 0.866015 +v 0.012500 0.873731 0.267519 +v 0.011573 0.878434 0.262816 +v 0.012500 0.954424 0.861312 +v 0.011573 0.949722 0.866015 +v 0.012500 0.954424 0.267519 +v 0.011573 0.949722 0.262816 +v 0.023223 0.758010 0.252557 +v 0.023223 0.829297 0.252557 +v 0.023223 0.758010 0.880367 +v 0.023223 0.829297 0.880367 +v 0.023223 0.878434 0.252557 +v 0.023223 0.949722 0.252557 +v 0.023223 0.878434 0.880367 +v 0.023223 0.949722 0.880367 +v 0.075000 0.772401 0.150776 +v 0.075000 0.972661 0.150776 +v -0.030935 0.772401 0.150776 +v -0.030935 0.972661 0.150776 +v -0.075000 0.088688 0.911312 +v -0.075000 1.911312 0.911312 +v -0.075000 0.088688 0.088688 +v -0.075000 1.911312 0.088688 +v -0.075000 2.000000 1.000000 +v -0.075000 0.000000 1.000000 +v -0.012500 1.861312 0.861312 +v -0.012500 0.138688 0.861312 +v -0.012500 0.138688 0.138688 +v -0.012500 1.861312 0.138688 +v -0.012500 0.733440 0.267519 +v -0.012500 0.988637 0.267519 +v -0.075000 0.655676 0.088688 +v -0.075000 1.166712 0.088688 +v -0.012500 1.166712 0.138688 +v -0.012500 0.655676 0.138688 +v -0.075000 0.733440 0.217519 +v -0.075000 0.988637 0.217519 +v -0.026895 0.753307 0.256002 +v -0.023223 0.758010 0.253518 +v -0.026895 0.753307 0.872828 +v -0.023223 0.758010 0.875312 +v -0.026895 0.834000 0.872828 +v -0.023223 0.829297 0.875312 +v -0.026895 0.834000 0.256002 +v -0.023223 0.829297 0.253518 +v -0.012500 0.753307 0.861312 +v -0.011573 0.758010 0.866015 +v -0.012500 0.753307 0.267519 +v -0.011573 0.758010 0.262816 +v -0.012500 0.834000 0.861312 +v -0.011573 0.829297 0.866015 +v -0.012500 0.834000 0.267519 +v -0.011573 0.829297 0.262816 +v -0.026895 0.873731 0.256002 +v -0.023223 0.878434 0.253518 +v -0.026895 0.873731 0.872828 +v -0.023223 0.878434 0.875312 +v -0.026895 0.954424 0.872828 +v -0.023223 0.949722 0.875312 +v -0.026895 0.954424 0.256002 +v -0.023223 0.949722 0.253518 +v -0.012500 0.873731 0.861312 +v -0.011573 0.878434 0.866015 +v -0.012500 0.873731 0.267519 +v -0.011573 0.878434 0.262816 +v -0.012500 0.954424 0.861312 +v -0.011573 0.949722 0.866015 +v -0.012500 0.954424 0.267519 +v -0.011573 0.949722 0.262816 +v -0.023223 0.758010 0.252557 +v -0.023223 0.829297 0.252557 +v -0.023223 0.758010 0.880367 +v -0.023223 0.829297 0.880367 +v -0.023223 0.878434 0.252557 +v -0.023223 0.949722 0.252557 +v -0.023223 0.878434 0.880367 +v -0.023223 0.949722 0.880367 +v -0.075000 0.772401 0.150776 +v -0.075000 0.972661 0.150776 +v 0.065000 0.000000 0.000000 +v 0.075000 0.000000 0.010000 +v 0.065000 2.000000 0.000000 +v 0.075000 2.000000 0.010000 +v 0.065000 0.655676 0.000000 +v 0.075000 0.655676 0.010000 +v 0.065000 1.166712 0.000000 +v 0.075000 1.166712 0.010000 +v 0.065000 0.733440 0.000000 +v 0.075000 0.733440 0.010000 +v 0.065000 0.988637 0.000000 +v 0.075000 0.988637 0.010000 +v 0.065000 0.982661 0.000000 +v 0.075000 0.972661 0.010000 +v 0.065000 0.762401 0.000000 +v 0.075000 0.772401 0.010000 +v 0.020935 0.982661 0.000000 +v 0.030935 0.972661 0.010000 +v 0.020935 0.762401 0.000000 +v 0.030935 0.772401 0.010000 +v -0.065000 0.000000 0.000000 +v -0.075000 0.000000 0.010000 +v -0.065000 2.000000 0.000000 +v -0.075000 2.000000 0.010000 +v -0.065000 0.655676 0.000000 +v -0.075000 0.655676 0.010000 +v -0.065000 1.166712 0.000000 +v -0.075000 1.166712 0.010000 +v -0.065000 0.733440 0.000000 +v -0.075000 0.733440 0.010000 +v -0.065000 0.988637 0.000000 +v -0.075000 0.988637 0.010000 +v -0.065000 0.982661 0.000000 +v -0.075000 0.972661 0.010000 +v -0.065000 0.762401 0.000000 +v -0.075000 0.772401 0.010000 +v -0.020935 0.982661 0.000000 +v -0.030935 0.972661 0.010000 +v -0.020935 0.762401 0.000000 +v -0.030935 0.772401 0.010000 +v -0.075000 0.954424 0.911312 +v -0.075000 0.753307 0.911312 +v 0.075000 0.954424 0.911312 +v 0.075000 0.753307 0.911312 +v 0.075000 0.954424 1.000000 +v 0.075000 0.753307 1.000000 +v -0.075000 0.954424 1.000000 +v -0.075000 0.753307 1.000000 +v -0.053113 0.981602 0.127840 +v -0.053113 0.753528 0.127840 +v -0.066310 0.981602 0.120221 +v -0.066310 0.753528 0.120221 +v -0.066310 0.981602 0.104982 +v -0.066310 0.753528 0.104982 +v -0.053113 0.981602 0.097362 +v -0.053113 0.753528 0.097362 +v -0.039915 0.981602 0.104982 +v -0.039915 0.753528 0.104982 +v -0.039915 0.981602 0.120221 +v -0.039915 0.753528 0.120221 +v -0.032467 0.940925 -0.136816 +v -0.032467 0.927874 -0.136816 +v -0.032467 0.940925 0.131365 +v -0.032467 0.927874 0.131365 +v -0.073758 0.940925 -0.136816 +v -0.073758 0.927874 -0.136816 +v -0.073758 0.940925 0.131365 +v -0.073758 0.927874 0.131365 +v -0.032467 0.818858 -0.136816 +v -0.032467 0.805807 -0.136816 +v -0.032467 0.818858 0.131365 +v -0.032467 0.805807 0.131365 +v -0.073758 0.818858 -0.136816 +v -0.073758 0.805807 -0.136816 +v -0.073758 0.818858 0.131365 +v -0.073758 0.805807 0.131365 +v -0.053113 0.939957 -0.088549 +v -0.053113 0.813798 -0.088550 +v -0.071903 0.939957 -0.099398 +v -0.071903 0.813798 -0.099398 +v -0.071903 0.939957 -0.121096 +v -0.071903 0.813798 -0.121096 +v -0.053113 0.939957 -0.131945 +v -0.053113 0.813798 -0.131945 +v -0.034322 0.939957 -0.121096 +v -0.034322 0.813798 -0.121096 +v -0.034322 0.939957 -0.099398 +v -0.034322 0.813798 -0.099398 +v 0.012500 1.861312 0.861312 +v 0.012500 0.138688 0.861312 +v 0.012500 0.138688 0.138688 +v 0.012500 1.861312 0.138688 +v 0.012500 0.733440 0.267519 +v 0.012500 0.988637 0.267519 +v 0.012500 1.166712 0.138688 +v 0.012500 0.655676 0.138688 +v 0.012500 0.753307 0.861312 +v 0.011573 0.758010 0.866015 +v 0.012500 0.753307 0.267519 +v 0.011573 0.758010 0.262816 +v 0.012500 0.834000 0.861312 +v 0.011573 0.829297 0.866015 +v 0.012500 0.834000 0.267519 +v 0.011573 0.829297 0.262816 +v 0.012500 0.873731 0.861312 +v 0.011573 0.878434 0.866015 +v 0.012500 0.873731 0.267519 +v 0.011573 0.878434 0.262816 +v 0.012500 0.954424 0.861312 +v 0.011573 0.949722 0.866015 +v 0.012500 0.954424 0.267519 +v 0.011573 0.949722 0.262816 +v -0.012500 1.861312 0.861312 +v -0.012500 0.138688 0.861312 +v -0.012500 0.138688 0.138688 +v -0.012500 1.861312 0.138688 +v -0.012500 0.733440 0.267519 +v -0.012500 0.988637 0.267519 +v -0.012500 1.166712 0.138688 +v -0.012500 0.655676 0.138688 +v -0.012500 0.753307 0.861312 +v -0.011573 0.758010 0.866015 +v -0.012500 0.753307 0.267519 +v -0.011573 0.758010 0.262816 +v -0.012500 0.834000 0.861312 +v -0.011573 0.829297 0.866015 +v -0.012500 0.834000 0.267519 +v -0.011573 0.829297 0.262816 +v -0.012500 0.873731 0.861312 +v -0.011573 0.878434 0.866015 +v -0.012500 0.873731 0.267519 +v -0.011573 0.878434 0.262816 +v -0.012500 0.954424 0.861312 +v -0.011573 0.949722 0.866015 +v -0.012500 0.954424 0.267519 +v -0.011573 0.949722 0.262816 +vt 0.727731 0.909684 +vt 0.717217 0.861903 +vt 0.727731 0.861903 +vt 0.994311 0.103548 +vt 0.958521 0.339756 +vt 0.958521 0.103548 +vt 0.883586 0.940828 +vt 0.877670 0.942230 +vt 0.878053 0.940634 +vt 0.857471 0.136616 +vt 0.838387 0.302232 +vt 0.838387 0.124694 +vt 0.401117 0.005690 +vt 0.559691 0.026850 +vt 0.401117 0.026850 +vt 0.413762 0.782316 +vt 0.549042 0.763542 +vt 0.549042 0.782317 +vt 0.819625 0.302232 +vt 0.425692 0.801413 +vt 0.711314 0.382154 +vt 0.692217 0.566498 +vt 0.692217 0.370225 +vt 0.248180 0.728437 +vt 0.063836 0.709339 +vt 0.260109 0.709340 +vt 0.804820 0.331268 +vt 0.769031 0.580736 +vt 0.769031 0.331268 +vt 0.136754 0.051912 +vt 0.353132 0.045947 +vt 0.353132 0.051912 +vt 0.075766 0.734402 +vt 0.075766 0.728437 +vt 0.091858 0.900883 +vt 0.092397 0.931216 +vt 0.073304 0.931621 +vt 0.048047 0.923951 +vt 0.547761 0.045947 +vt 0.401117 0.051912 +vt 0.401117 0.045947 +vt 0.090428 0.866950 +vt 0.132915 0.885725 +vt 0.090428 0.885725 +vt 0.132915 0.836212 +vt 0.085677 0.848454 +vt 0.128164 0.817715 +vt 0.873687 0.631974 +vt 0.894191 0.606510 +vt 0.904705 0.631974 +vt 0.612014 0.873137 +vt 0.564233 0.873137 +vt 0.560421 0.857213 +vt 0.927871 0.057405 +vt 0.917358 0.090994 +vt 0.917358 0.057405 +vt 0.863432 0.302232 +vt 0.857471 0.302232 +vt 0.353132 0.041548 +vt 0.136754 0.045947 +vt 0.621310 0.857213 +vt 0.587837 0.842515 +vt 0.711314 0.554568 +vt 0.717279 0.382154 +vt 0.717279 0.554568 +vt 0.124668 0.812883 +vt 0.909280 0.919388 +vt 0.903479 0.920905 +vt 0.903374 0.919265 +vt 0.598908 0.941632 +vt 0.599882 0.924151 +vt 0.599882 0.942747 +vt 0.912069 0.938667 +vt 0.913157 0.921031 +vt 0.913157 0.939831 +vt 0.595651 0.923166 +vt 0.595950 0.921479 +vt 0.590064 0.923387 +vt 0.589668 0.921765 +vt 0.909011 0.940828 +vt 0.909311 0.942491 +vt 0.918708 0.873065 +vt 0.912874 0.871208 +vt 0.918408 0.871402 +vt 0.595840 0.942876 +vt 0.596024 0.944398 +vt 0.909105 0.920915 +vt 0.921466 0.869241 +vt 0.922554 0.851605 +vt 0.922554 0.870405 +vt 0.886645 0.938667 +vt 0.887733 0.921031 +vt 0.887733 0.939831 +vt 0.381864 0.045947 +vt 0.372385 0.051912 +vt 0.372385 0.045947 +vt 0.883680 0.920915 +vt 0.883856 0.919388 +vt 0.918502 0.851489 +vt 0.918677 0.849962 +vt 0.912876 0.851479 +vt 0.912771 0.849839 +vt 0.883887 0.942491 +vt 0.200475 0.935830 +vt 0.183466 0.786038 +vt 0.200475 0.786038 +vt 0.392602 0.916184 +vt 0.542394 0.899175 +vt 0.542394 0.916184 +vt 0.144294 0.786038 +vt 0.155376 0.935830 +vt 0.144294 0.935830 +vt 0.736376 0.566497 +vt 0.757536 0.351450 +vt 0.757536 0.587658 +vt 0.760166 0.808558 +vt 0.749652 0.842147 +vt 0.749652 0.808558 +vt 0.761319 0.909684 +vt 0.761319 0.861903 +vt 0.542394 0.860003 +vt 0.392602 0.871085 +vt 0.392602 0.860003 +vt 0.392602 0.888093 +vt 0.542394 0.888093 +vt 0.560421 0.838116 +vt 0.568584 0.832151 +vt 0.568584 0.838116 +vt 0.597317 0.838116 +vt 0.587837 0.832151 +vt 0.597317 0.832151 +vt 0.172385 0.935830 +vt 0.172385 0.786038 +vt 0.590227 0.942930 +vt 0.621310 0.838116 +vt 0.616570 0.832151 +vt 0.621310 0.832151 +vt 0.110951 0.900478 +vt 0.097503 0.934298 +vt 0.903477 0.940634 +vt 0.549042 0.801413 +vt 0.425692 0.807378 +vt 0.211854 0.900206 +vt 0.222368 0.852425 +vt 0.222368 0.900206 +vt 0.882516 0.302232 +vt 0.863432 0.136616 +vt 0.882516 0.124694 +vt 0.559691 0.071009 +vt 0.401117 0.092169 +vt 0.401117 0.071009 +vt 0.413762 0.826475 +vt 0.549042 0.845250 +vt 0.392602 0.845250 +vt 0.901278 0.302232 +vt 0.549042 0.826475 +vt 0.549042 0.807378 +vt 0.736376 0.370225 +vt 0.063837 0.753498 +vt 0.248180 0.734401 +vt 0.260109 0.753498 +vt 0.124594 0.920643 +vt 0.106040 0.951381 +vt 0.124594 0.970155 +vt 0.066099 0.833322 +vt 0.061559 0.787093 +vt 0.108586 0.802584 +vt 0.082180 0.843621 +vt 0.045062 0.774659 +vt 0.560421 0.813054 +vt 0.612014 0.797130 +vt 0.621310 0.813054 +vt 0.917358 0.005689 +vt 0.927871 0.039278 +vt 0.917358 0.039278 +vt 0.353132 0.071009 +vt 0.124824 0.071009 +vt 0.597317 0.827753 +vt 0.587837 0.827753 +vt 0.585860 0.943106 +vt 0.587029 0.925646 +vt 0.586842 0.941897 +vt 0.899112 0.920791 +vt 0.900475 0.938441 +vt 0.899407 0.939584 +vt 0.585893 0.924471 +vt 0.903094 0.942230 +vt 0.590140 0.944568 +vt 0.900106 0.921973 +vt 0.908509 0.851365 +vt 0.909872 0.869015 +vt 0.908804 0.870158 +vt 0.873687 0.920791 +vt 0.875051 0.938442 +vt 0.873983 0.939584 +vt 0.912492 0.872804 +vt 0.878055 0.920905 +vt 0.874681 0.921973 +vt 0.909503 0.852547 +vt 0.155376 0.786038 +vt 0.542394 0.871085 +vt 0.692387 0.083838 +vt 0.725975 0.073325 +vt 0.725975 0.083838 +vt 0.255956 0.852425 +vt 0.255956 0.900206 +vt 0.045062 0.688179 +vt 0.817642 0.952534 +vt 0.781852 0.716326 +vt 0.817642 0.716326 +vt 0.877950 0.919265 +vt 0.561847 0.910100 +vt 0.560421 0.906726 +vt 0.564233 0.906726 +vt 0.053706 0.941940 +vt 0.056692 0.940368 +vt 0.132915 0.889099 +vt 0.394988 0.760168 +vt 0.549042 0.760168 +vt 0.816200 0.302233 +vt 0.819626 0.103548 +vt 0.621310 0.906726 +vt 0.614400 0.910100 +vt 0.612014 0.906726 +vt 0.757780 0.845521 +vt 0.747266 0.845521 +vt 0.764693 0.859517 +vt 0.925485 0.054031 +vt 0.991925 0.343130 +vt 0.994311 0.339756 +vt 0.784238 0.712952 +vt 0.561847 0.760168 +vt 0.560421 0.763542 +vt 0.560421 0.760168 +vt 0.106040 0.970155 +vt 0.124594 0.973530 +vt 0.106040 0.973530 +vt 0.045062 0.826392 +vt 0.058354 0.786038 +vt 0.549042 0.848624 +vt 0.904705 0.105933 +vt 0.904705 0.302233 +vt 0.621310 0.763542 +vt 0.614400 0.760168 +vt 0.621310 0.760168 +vt 0.689012 0.075710 +vt 0.692387 0.073325 +vt 0.259330 0.850040 +vt 0.259330 0.902592 +vt 0.925485 0.042652 +vt 0.914972 0.042652 +vt 0.671057 0.351450 +vt 0.124824 0.026850 +vt 0.353132 0.005690 +vt 0.353132 0.026850 +vt 0.769031 0.283283 +vt 0.804820 0.283283 +vt 0.353132 0.092169 +vt 0.103663 0.092169 +vt 0.401117 0.056310 +vt 0.547761 0.051912 +vt 0.381864 0.056310 +vt 0.372385 0.056310 +vt 0.769031 0.103548 +vt 0.804820 0.103548 +vt 0.372385 0.041548 +vt 0.381864 0.041548 +vt 0.458081 0.526437 +vt 0.607011 0.526438 +vt 0.462895 0.670321 +vt 0.831325 0.715192 +vt 0.840009 0.715191 +vt 0.840030 0.844974 +vt 0.295376 0.106106 +vt 0.439436 0.106106 +vt 0.439436 0.114406 +vt 0.557651 0.368753 +vt 0.560208 0.513936 +vt 0.557674 0.512813 +vt 0.007994 0.658645 +vt 0.016699 0.788428 +vt 0.008015 0.788429 +vt 0.106169 0.527870 +vt 0.250053 0.527870 +vt 0.250053 0.532684 +vt 0.717217 0.909684 +vt 0.580852 0.005690 +vt 0.392602 0.763542 +vt 0.804820 0.580736 +vt 0.904705 0.510044 +vt 0.904705 0.552531 +vt 0.894191 0.553957 +vt 0.904705 0.553958 +vt 0.873688 0.313612 +vt 0.904705 0.313612 +vt 0.873687 0.553957 +vt 0.873687 0.552531 +vt 0.884201 0.553957 +vt 0.873687 0.510044 +vt 0.873687 0.613420 +vt 0.873687 0.606510 +vt 0.884201 0.606510 +vt 0.904705 0.606510 +vt 0.904705 0.613420 +vt 0.873687 0.786029 +vt 0.904705 0.786029 +vt 0.927871 0.090994 +vt 0.568584 0.842515 +vt 0.587837 0.838116 +vt 0.597317 0.842515 +vt 0.616570 0.838116 +vt 0.616570 0.842515 +vt 0.598757 0.925348 +vt 0.912182 0.922144 +vt 0.921579 0.852718 +vt 0.886758 0.922144 +vt 0.381864 0.051912 +vt 0.183466 0.935830 +vt 0.392602 0.899175 +vt 0.760166 0.842147 +vt 0.560421 0.832151 +vt 0.116057 0.903560 +vt 0.211854 0.852425 +vt 0.580852 0.092169 +vt 0.901278 0.103548 +vt 0.048267 0.827448 +vt 0.281270 0.774659 +vt 0.564233 0.797130 +vt 0.564233 0.763542 +vt 0.612014 0.763542 +vt 0.927871 0.005689 +vt 0.353132 0.056310 +vt 0.568584 0.827753 +vt 0.616570 0.827753 +vt 0.281270 0.688179 +vt 0.781852 0.952534 +vt 0.560421 0.910100 +vt 0.045062 0.925523 +vt 0.090428 0.889099 +vt 0.816199 0.105971 +vt 0.621310 0.910100 +vt 0.764693 0.912070 +vt 0.914972 0.054031 +vt 0.960907 0.343130 +vt 0.815256 0.712952 +vt 0.394988 0.848624 +vt 0.689012 0.086224 +vt 0.671057 0.587658 +vt 0.401117 0.041548 +vt 0.103663 0.005689 +vt 0.607011 0.701538 +vt 0.481738 0.701538 +vt 0.458081 0.670321 +vt 0.455526 0.672827 +vt 0.455550 0.525315 +vt 0.831346 0.844976 +vt 0.829021 0.847215 +vt 0.829021 0.714139 +vt 0.842335 0.712952 +vt 0.842335 0.846028 +vt 0.292867 0.103548 +vt 0.440560 0.103572 +vt 0.470692 0.326126 +vt 0.295376 0.326126 +vt 0.470692 0.157609 +vt 0.337654 0.512849 +vt 0.506142 0.337506 +vt 0.337625 0.337533 +vt 0.549350 0.368754 +vt 0.560208 0.366244 +vt 0.016678 0.658644 +vt 0.019004 0.656405 +vt 0.019004 0.789481 +vt 0.005690 0.790668 +vt 0.005689 0.657592 +vt 0.281270 0.551527 +vt 0.281270 0.676800 +vt 0.106169 0.676800 +vt 0.103663 0.525315 +vt 0.251175 0.525339 +vt 0.264782 0.924581 +vt 0.211854 0.921044 +vt 0.264782 0.921044 +vt 0.264782 0.928117 +vt 0.211854 0.924580 +vt 0.211854 0.931653 +vt 0.211854 0.928117 +vt 0.264782 0.935190 +vt 0.264782 0.931653 +vt 0.264782 0.917508 +vt 0.211854 0.913971 +vt 0.264782 0.913971 +vt 0.211854 0.917508 +vt 0.643612 0.591953 +vt 0.640583 0.529718 +vt 0.643612 0.529718 +vt 0.627972 0.591953 +vt 0.631001 0.601535 +vt 0.627972 0.601535 +vt 0.631001 0.529718 +vt 0.631001 0.591953 +vt 0.627972 0.520135 +vt 0.627972 0.529718 +vt 0.618390 0.529718 +vt 0.618390 0.591953 +vt 0.640583 0.591953 +vt 0.030911 0.873865 +vt 0.027882 0.811629 +vt 0.030911 0.811629 +vt 0.015272 0.873865 +vt 0.018300 0.883447 +vt 0.015272 0.883447 +vt 0.018300 0.811629 +vt 0.018300 0.873865 +vt 0.015272 0.802047 +vt 0.015272 0.811629 +vt 0.005689 0.811629 +vt 0.005689 0.873865 +vt 0.027883 0.873865 +vt 0.858298 0.868664 +vt 0.829021 0.863629 +vt 0.858298 0.863629 +vt 0.829021 0.873700 +vt 0.829021 0.868664 +vt 0.858298 0.878735 +vt 0.858298 0.873700 +vt 0.858298 0.883770 +vt 0.829021 0.878735 +vt 0.858298 0.888806 +vt 0.829021 0.883770 +vt 0.829021 0.858594 +vt 0.858298 0.858594 +vt 0.211854 0.935190 +vt 0.631001 0.520135 +vt 0.018300 0.802047 +vt 0.829021 0.888806 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -0.7071 0.7071 +vn 0.6247 0.0000 0.7809 +vn 1.0000 0.0000 0.0000 +vn 0.6247 0.7809 0.0000 +vn 0.6247 -0.7809 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.3821 -0.7912 0.4776 +vn 0.5439 0.4919 0.6799 +vn 0.6247 0.0000 -0.7809 +vn 0.0000 0.5862 0.8102 +vn 0.0000 -0.7071 -0.7071 +vn -0.5602 0.0000 0.8283 +vn -0.5602 0.0000 -0.8283 +vn 0.4634 0.6706 0.5793 +vn 0.0000 0.7071 0.7071 +vn 0.4634 0.6706 -0.5793 +vn 0.0000 0.7071 -0.7071 +vn 0.4634 -0.6706 0.5792 +vn 0.4634 -0.6706 -0.5792 +vn 0.4634 -0.6706 -0.5793 +vn 0.4634 -0.6706 0.5793 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -0.8561 0.5168 +vn -0.6247 0.0000 0.7809 +vn -0.6247 0.7809 0.0000 +vn -0.6247 -0.7809 0.0000 +vn -0.3821 -0.7912 0.4776 +vn -0.5439 0.4919 0.6799 +vn -0.6247 0.0000 -0.7809 +vn 0.5602 0.0000 0.8283 +vn 0.5602 0.0000 -0.8283 +vn -0.4637 0.6689 0.5810 +vn -0.4634 0.6706 -0.5793 +vn -0.4634 -0.6706 0.5792 +vn -0.4637 -0.6689 -0.5810 +vn -0.4634 -0.6706 0.5793 +vn 0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 -0.7071 +vn -0.9811 -0.1935 0.0000 +vn 0.4637 0.6689 0.5810 +vn 0.4637 0.6689 -0.5810 +vn 0.4637 -0.6689 0.5810 +vn 0.4637 -0.6689 -0.5810 +vn -0.5603 0.0000 0.8283 +vn -0.4634 0.6706 0.5793 +vn -0.4637 0.6689 -0.5810 +vn -0.4637 -0.6689 0.5810 +vn -0.4634 -0.6706 -0.5792 +vn 0.5603 0.0000 0.8283 +vn -0.4634 -0.6706 -0.5793 +vn 0.9811 0.1935 0.0000 +vn 0.9811 -0.1935 0.0000 +vn -0.9811 0.1935 0.0000 +vn -0.8660 0.0000 0.5000 +vn -0.8660 0.0000 -0.5000 +vn 0.8660 0.0000 -0.5000 +vn 0.8660 0.0000 0.5000 +vn 0.5773 0.5773 0.5773 +vn 0.5773 -0.5773 -0.5773 +vn 0.5773 0.5773 -0.5773 +vn -0.5773 0.5773 0.5773 +vn 0.5773 -0.5773 0.5773 +vn -0.5773 -0.5773 -0.5773 +vn -0.5773 -0.5773 0.5773 +vn -0.5773 0.5773 -0.5773 +s off +f 2/1/1 61/2/1 1/3/1 +f 7/4/2 148/5/2 69/6/2 +f 52/7/3 113/8/3 114/9/3 +f 12/10/4 16/11/4 6/12/4 +f 170/13/5 3/14/5 168/15/5 +f 5/16/5 130/17/5 15/18/5 +f 132/19/5 6/12/5 16/11/5 +f 15/18/4 11/20/4 5/16/4 +f 11/21/6 3/22/6 5/23/6 +f 9/24/7 6/25/7 4/26/7 +f 169/27/8 69/28/8 171/29/8 +f 71/30/1 49/31/1 111/32/1 +f 9/24/9 74/33/9 12/34/9 +f 19/35/10 18/36/10 15/37/10 +f 15/37/5 134/38/5 19/35/5 +f 10/39/1 91/40/1 29/41/1 +f 16/42/5 136/43/5 132/44/5 +f 20/45/11 17/46/11 14/47/11 +f 149/48/1 143/49/1 129/50/1 +f 61/51/5 62/52/5 20/53/5 +f 138/54/9 2/55/9 142/56/9 +f 12/10/8 79/57/8 17/58/8 +f 41/59/12 49/31/12 9/60/12 +f 19/61/4 20/53/4 37/62/4 +f 10/63/2 73/64/2 72/65/2 +f 17/46/13 76/66/13 14/47/13 +f 33/67/14 96/68/14 95/69/14 +f 28/70/15 21/71/15 27/72/15 +f 24/73/16 25/74/16 23/75/16 +f 21/71/17 32/76/17 31/77/17 +f 31/77/18 94/78/18 93/79/18 +f 30/80/19 23/75/19 29/81/19 +f 45/82/20 108/83/20 46/84/20 +f 36/85/21 27/72/21 35/86/21 +f 25/74/22 34/87/22 33/67/22 +f 40/88/16 41/89/16 39/90/16 +f 44/91/15 37/92/15 43/93/15 +f 33/94/1 107/95/1 45/96/1 +f 46/84/19 39/90/19 45/82/19 +f 37/92/17 48/97/17 47/98/17 +f 41/89/23 50/99/23 49/100/23 +f 49/100/14 112/101/14 111/102/14 +f 52/7/24 43/93/24 51/103/24 +f 53/104/5 56/105/5 55/106/5 +f 57/107/5 60/108/5 59/109/5 +f 55/110/9 115/111/9 53/112/9 +f 65/113/25 146/114/25 70/115/25 +f 61/116/2 144/117/2 1/118/2 +f 142/119/5 1/3/5 144/120/5 +f 59/121/9 119/122/9 57/123/9 +f 60/108/2 120/124/2 122/125/2 +f 14/126/8 113/127/8 51/128/8 +f 35/129/8 109/130/8 97/131/8 +f 56/105/2 116/132/2 118/133/2 +f 35/86/3 98/134/3 36/85/3 +f 13/135/8 93/136/8 75/137/8 +f 13/138/26 80/139/26 18/36/26 +f 29/81/20 92/140/20 30/80/20 +f 18/141/8 73/142/8 11/20/8 +f 123/143/1 64/144/1 63/145/1 +f 78/146/27 74/147/27 68/148/27 +f 65/149/25 172/150/25 166/151/25 +f 67/152/25 150/153/25 146/154/25 +f 68/148/25 152/155/25 78/146/25 +f 77/156/27 73/142/27 80/157/27 +f 65/113/28 73/64/28 67/158/28 +f 68/159/29 71/160/29 66/161/29 +f 80/139/30 81/162/30 77/163/30 +f 154/164/25 77/163/25 81/162/25 +f 78/165/25 156/166/25 82/167/25 +f 82/167/31 79/168/31 78/165/31 +f 66/161/25 148/169/25 68/159/25 +f 82/170/25 123/171/25 81/172/25 +f 64/173/9 158/174/9 162/175/9 +f 165/176/32 66/177/32 71/30/32 +f 81/172/27 89/178/27 99/179/27 +f 89/180/33 84/181/33 90/182/33 +f 87/183/34 86/184/34 85/185/34 +f 83/186/35 94/78/35 84/181/35 +f 85/185/36 92/140/36 91/187/36 +f 89/180/37 98/134/37 97/188/37 +f 87/183/38 96/68/38 88/189/38 +f 103/190/34 102/191/34 101/192/34 +f 99/193/33 106/194/33 105/195/33 +f 101/192/36 108/83/36 107/196/36 +f 99/193/35 110/197/35 100/198/35 +f 103/190/38 112/101/38 104/199/38 +f 105/195/39 114/9/39 113/8/39 +f 118/133/25 115/111/25 117/200/25 +f 122/125/25 119/122/25 121/201/25 +f 164/202/2 123/203/2 63/204/2 +f 63/145/25 162/205/25 164/206/25 +f 128/207/5 4/26/5 6/25/5 +f 8/208/9 146/209/9 126/210/9 +f 47/98/18 110/197/18 109/211/18 +f 137/212/40 136/213/40 138/214/40 +f 129/215/40 134/38/40 130/216/40 +f 135/217/40 132/44/40 136/43/40 +f 130/17/40 125/218/40 129/219/40 +f 131/220/40 128/221/40 132/19/40 +f 134/222/40 139/223/40 140/224/40 +f 144/117/20 139/225/20 143/226/20 +f 143/227/40 142/119/40 144/120/40 +f 142/56/14 137/228/14 138/54/14 +f 127/229/2 148/5/2 128/230/2 +f 145/231/9 126/210/9 146/209/9 +f 157/232/41 156/233/41 155/234/41 +f 150/235/41 153/236/41 149/237/41 +f 156/166/41 151/238/41 155/239/41 +f 149/240/41 146/154/41 150/153/41 +f 152/155/41 147/241/41 151/242/41 +f 154/243/41 159/244/41 153/245/41 +f 164/202/20 159/246/20 160/247/20 +f 164/206/41 161/248/41 163/249/41 +f 162/175/14 157/250/14 161/251/14 +f 3/22/5 126/252/5 5/23/5 +f 168/15/12 3/14/12 10/39/12 +f 4/253/5 169/254/5 167/255/5 +f 169/27/8 172/256/8 170/257/8 +f 66/177/25 171/258/25 69/259/25 +f 85/260/32 91/40/32 72/261/32 +f 87/262/32 165/176/32 101/263/32 +f 166/151/25 171/258/25 165/176/25 +f 170/257/8 70/264/8 8/265/8 +f 169/254/5 168/15/5 167/255/5 +f 39/266/12 167/255/12 25/267/12 +f 221/268/5 214/269/5 217/270/5 +f 229/271/5 225/272/5 227/273/5 +f 233/274/5 235/275/5 218/276/5 +f 259/277/42 258/278/42 257/279/42 +f 255/280/25 249/281/25 253/282/25 +f 245/283/25 247/284/25 241/285/25 +f 2/1/1 62/286/1 61/2/1 +f 7/4/2 128/230/2 148/5/2 +f 52/7/3 51/103/3 113/8/3 +f 12/10/4 17/58/4 16/11/4 +f 170/13/5 8/287/5 3/14/5 +f 5/16/5 126/288/5 130/17/5 +f 132/19/5 128/221/5 6/12/5 +f 15/18/4 18/141/4 11/20/4 +f 11/21/6 10/63/6 3/22/6 +f 9/24/7 12/34/7 6/25/7 +f 169/27/8 7/289/8 69/28/8 +f 71/30/1 9/60/1 49/31/1 +f 9/24/9 71/160/9 74/33/9 +f 19/35/10 13/138/10 18/36/10 +f 15/37/5 130/216/5 134/38/5 +f 10/39/1 72/261/1 91/40/1 +f 16/42/5 20/45/5 136/43/5 +f 20/45/11 16/42/11 17/46/11 +f 131/290/1 135/291/1 141/292/1 +f 135/291/1 137/293/1 141/292/1 +f 147/294/1 127/295/1 131/290/1 +f 157/296/1 155/297/1 161/298/1 +f 155/297/1 151/299/1 161/298/1 +f 151/299/1 147/294/1 131/290/1 +f 151/299/1 131/290/1 141/292/1 +f 153/300/1 159/301/1 163/302/1 +f 161/298/1 151/299/1 141/292/1 +f 149/48/1 153/300/1 163/302/1 +f 163/302/1 161/298/1 141/292/1 +f 143/49/1 139/303/1 133/304/1 +f 163/302/1 141/292/1 143/49/1 +f 145/305/1 149/48/1 129/50/1 +f 149/48/1 163/302/1 143/49/1 +f 129/50/1 125/306/1 145/305/1 +f 143/49/1 133/304/1 129/50/1 +f 19/61/5 134/222/5 61/51/5 +f 134/222/5 140/224/5 61/51/5 +f 138/214/5 136/213/5 62/52/5 +f 136/213/5 20/53/5 62/52/5 +f 19/61/5 61/51/5 20/53/5 +f 138/54/9 62/307/9 2/55/9 +f 12/10/8 74/147/8 79/57/8 +f 4/253/12 167/255/12 9/60/12 +f 167/255/12 41/59/12 9/60/12 +f 14/126/4 51/128/4 43/308/4 +f 37/62/4 47/309/4 35/129/4 +f 20/53/4 14/126/4 43/308/4 +f 37/62/4 35/129/4 27/310/4 +f 20/53/4 43/308/4 37/62/4 +f 31/311/4 13/135/4 21/312/4 +f 13/135/4 19/61/4 21/312/4 +f 37/62/4 27/310/4 19/61/4 +f 27/310/4 21/312/4 19/61/4 +f 10/63/2 11/21/2 73/64/2 +f 17/46/13 79/168/13 76/66/13 +f 33/67/14 34/87/14 96/68/14 +f 28/70/15 22/313/15 21/71/15 +f 24/73/16 26/314/16 25/74/16 +f 21/71/43 22/313/43 32/76/43 +f 31/77/18 32/76/18 94/78/18 +f 30/80/44 24/73/44 23/75/44 +f 45/82/20 107/196/20 108/83/20 +f 36/85/45 28/70/45 27/72/45 +f 25/74/46 26/314/46 34/87/46 +f 40/88/16 42/315/16 41/89/16 +f 44/91/47 38/316/47 37/92/47 +f 33/94/1 95/317/1 107/95/1 +f 46/84/44 40/88/44 39/90/44 +f 37/92/43 38/316/43 48/97/43 +f 41/89/46 42/315/46 50/99/46 +f 49/100/14 50/99/14 112/101/14 +f 52/7/45 44/91/45 43/93/45 +f 53/104/5 54/318/5 56/105/5 +f 57/107/5 58/319/5 60/108/5 +f 55/110/9 117/200/9 115/111/9 +f 65/113/25 67/158/25 146/114/25 +f 61/116/2 140/320/2 144/117/2 +f 142/119/5 2/1/5 1/3/5 +f 59/121/9 121/201/9 119/122/9 +f 60/108/2 58/319/2 120/124/2 +f 14/126/8 76/321/8 113/127/8 +f 35/129/8 47/309/8 109/130/8 +f 56/105/2 54/318/2 116/132/2 +f 35/86/3 97/188/3 98/134/3 +f 13/135/8 31/311/8 93/136/8 +f 13/138/26 75/322/26 80/139/26 +f 29/81/20 91/187/20 92/140/20 +f 18/141/8 80/157/8 73/142/8 +f 123/143/1 124/323/1 64/144/1 +f 78/146/27 79/57/27 74/147/27 +f 65/149/25 70/324/25 172/150/25 +f 67/152/25 77/156/25 150/153/25 +f 68/148/25 148/325/25 152/155/25 +f 77/156/27 67/152/27 73/142/27 +f 65/113/28 72/65/28 73/64/28 +f 68/159/29 74/33/29 71/160/29 +f 80/139/30 75/322/30 81/162/30 +f 154/164/25 150/235/25 77/163/25 +f 78/165/25 152/326/25 156/166/25 +f 82/167/31 76/66/31 79/168/31 +f 66/161/25 69/327/25 148/169/25 +f 82/170/25 156/233/25 124/328/25 +f 156/233/25 158/329/25 124/328/25 +f 160/330/25 154/243/25 123/171/25 +f 154/243/25 81/172/25 123/171/25 +f 82/170/25 124/328/25 123/171/25 +f 64/173/9 124/331/9 158/174/9 +f 111/32/32 103/332/32 71/30/32 +f 103/332/32 165/176/32 71/30/32 +f 105/333/27 113/127/27 76/321/27 +f 81/172/27 75/137/27 83/334/27 +f 75/137/27 93/136/27 83/334/27 +f 105/333/27 76/321/27 82/170/27 +f 97/131/27 109/130/27 99/179/27 +f 99/179/27 105/333/27 82/170/27 +f 82/170/27 81/172/27 99/179/27 +f 81/172/27 83/334/27 89/178/27 +f 89/178/27 97/131/27 99/179/27 +f 89/180/33 83/186/33 84/181/33 +f 87/183/34 88/189/34 86/184/34 +f 83/186/48 93/79/48 94/78/48 +f 85/185/49 86/184/49 92/140/49 +f 89/180/50 90/182/50 98/134/50 +f 87/183/51 95/69/51 96/68/51 +f 103/190/34 104/199/34 102/191/34 +f 99/193/52 100/198/52 106/194/52 +f 101/192/49 102/191/49 108/83/49 +f 99/193/48 109/211/48 110/197/48 +f 103/190/53 111/102/53 112/101/53 +f 105/195/50 106/194/50 114/9/50 +f 118/133/25 116/132/25 115/111/25 +f 122/125/25 120/124/25 119/122/25 +f 164/202/2 160/247/2 123/203/2 +f 63/145/25 64/144/25 162/205/25 +f 128/207/5 7/335/5 4/26/5 +f 8/208/9 70/336/9 146/209/9 +f 47/98/18 48/97/18 110/197/18 +f 137/212/40 135/337/40 136/213/40 +f 129/215/40 133/338/40 134/38/40 +f 135/217/40 131/339/40 132/44/40 +f 130/17/40 126/288/40 125/218/40 +f 131/220/40 127/340/40 128/221/40 +f 134/222/40 133/341/40 139/223/40 +f 144/117/20 140/320/20 139/225/20 +f 143/227/40 141/342/40 142/119/40 +f 142/56/14 141/343/14 137/228/14 +f 127/229/2 147/344/2 148/5/2 +f 145/231/9 125/345/9 126/210/9 +f 157/232/41 158/329/41 156/233/41 +f 150/235/41 154/164/41 153/236/41 +f 156/166/41 152/326/41 151/238/41 +f 149/240/41 145/346/41 146/154/41 +f 152/155/41 148/325/41 147/241/41 +f 154/243/41 160/330/41 159/244/41 +f 164/202/20 163/347/20 159/246/20 +f 164/206/41 162/205/41 161/248/41 +f 162/175/14 158/174/14 157/250/14 +f 3/22/5 8/348/5 126/252/5 +f 29/41/12 23/349/12 10/39/12 +f 23/349/12 168/15/12 10/39/12 +f 4/253/5 7/350/5 169/254/5 +f 169/27/8 171/29/8 172/256/8 +f 66/177/25 165/176/25 171/258/25 +f 65/149/32 166/151/32 72/261/32 +f 166/151/32 85/260/32 72/261/32 +f 101/263/32 107/95/32 95/317/32 +f 87/262/32 85/260/32 166/151/32 +f 101/263/32 95/317/32 87/262/32 +f 165/176/32 103/332/32 101/263/32 +f 87/262/32 166/151/32 165/176/32 +f 166/151/25 172/150/25 171/258/25 +f 170/257/8 172/256/8 70/264/8 +f 169/254/5 170/13/5 168/15/5 +f 33/94/12 45/96/12 39/266/12 +f 39/266/12 41/59/12 167/255/12 +f 167/255/12 168/15/12 25/267/12 +f 168/15/12 23/349/12 25/267/12 +f 25/267/12 33/94/12 39/266/12 +f 215/351/5 220/352/5 217/270/5 +f 223/353/54 224/354/54 222/355/54 +f 214/269/5 215/351/5 217/270/5 +f 217/270/5 223/353/5 221/268/5 +f 223/353/54 222/355/54 221/268/54 +f 231/356/54 232/357/54 229/271/54 +f 232/357/54 230/358/54 229/271/54 +f 226/359/55 228/360/55 227/273/55 +f 227/273/5 231/356/5 229/271/5 +f 225/272/55 226/359/55 227/273/55 +f 233/274/55 234/361/55 236/362/55 +f 233/274/55 236/362/55 235/275/55 +f 216/363/5 213/364/5 219/365/5 +f 213/364/5 233/274/5 219/365/5 +f 219/365/5 233/274/5 218/276/5 +f 257/279/25 237/366/25 243/367/25 +f 237/366/25 240/368/25 243/367/25 +f 257/279/25 243/367/25 242/369/25 +f 259/277/42 260/370/42 258/278/42 +f 242/369/25 259/277/25 257/279/25 +f 251/371/42 252/372/42 249/281/42 +f 252/372/42 250/373/42 249/281/42 +f 254/374/56 256/375/56 255/280/56 +f 255/280/25 251/371/25 249/281/25 +f 253/282/56 254/374/56 255/280/56 +f 241/285/25 244/376/25 239/377/25 +f 239/377/25 238/378/25 241/285/25 +f 238/378/25 245/283/25 241/285/25 +f 245/283/56 246/379/56 248/380/56 +f 245/283/56 248/380/56 247/284/56 +s 1 +f 175/381/57 174/382/8 173/383/8 +f 177/384/58 176/385/57 175/381/57 +f 177/384/58 180/386/1 178/387/58 +f 181/388/59 180/386/1 179/389/1 +f 183/390/60 182/391/59 181/392/59 +f 173/383/8 184/393/60 183/390/60 +f 187/394/61 186/395/62 185/396/63 +f 191/397/64 188/398/65 187/399/61 +f 191/397/64 190/400/66 192/401/67 +f 185/402/63 190/400/66 189/403/68 +f 185/404/63 191/397/64 187/405/61 +f 190/400/66 188/406/65 192/401/67 +f 195/407/61 194/408/62 193/409/63 +f 199/410/64 196/411/65 195/412/61 +f 199/410/64 198/413/66 200/414/67 +f 193/415/63 198/413/66 197/416/68 +f 193/417/63 199/410/64 195/418/61 +f 198/413/66 196/419/65 200/414/67 +f 203/420/57 202/421/8 201/422/8 +f 203/420/57 206/423/58 204/424/57 +f 207/425/1 206/423/58 205/426/58 +f 209/427/59 208/428/1 207/425/1 +f 211/429/60 210/430/59 209/427/59 +f 201/422/8 212/431/60 211/432/60 +f 175/381/57 176/385/57 174/382/8 +f 177/384/58 178/387/58 176/385/57 +f 177/384/58 179/389/1 180/386/1 +f 181/388/59 182/433/59 180/386/1 +f 183/390/60 184/393/60 182/391/59 +f 173/383/8 174/382/8 184/393/60 +f 187/394/61 188/406/65 186/395/62 +f 191/397/64 192/401/67 188/398/65 +f 191/397/64 189/403/68 190/400/66 +f 185/402/63 186/434/62 190/400/66 +f 185/404/63 189/403/68 191/397/64 +f 190/400/66 186/395/62 188/406/65 +f 195/407/61 196/419/65 194/408/62 +f 199/410/64 200/414/67 196/411/65 +f 199/410/64 197/416/68 198/413/66 +f 193/415/63 194/435/62 198/413/66 +f 193/417/63 197/416/68 199/410/64 +f 198/413/66 194/408/62 196/419/65 +f 203/420/57 204/424/57 202/421/8 +f 203/420/57 205/426/58 206/423/58 +f 207/425/1 208/428/1 206/423/58 +f 209/427/59 210/430/59 208/428/1 +f 211/429/60 212/436/60 210/430/59 +f 201/422/8 202/421/8 212/431/60 +o rightDoor +v 0.030935 0.772401 -0.150776 +v 0.030935 0.972661 -0.150776 +v 0.075000 0.088688 -0.911312 +v 0.075000 1.911312 -0.911312 +v 0.075000 0.088688 -0.088688 +v 0.075000 1.911312 -0.088688 +v 0.075000 2.000000 -1.000000 +v 0.075000 0.000000 -1.000000 +v 0.012500 1.861312 -0.861312 +v 0.012500 0.138688 -0.861312 +v 0.012500 0.138688 -0.138688 +v 0.012500 1.861312 -0.138688 +v 0.012500 0.733440 -0.267519 +v 0.012500 0.988637 -0.267519 +v 0.075000 0.655676 -0.088688 +v 0.075000 1.166712 -0.088688 +v 0.012500 1.166712 -0.138688 +v 0.012500 0.655676 -0.138688 +v 0.075000 0.733440 -0.217519 +v 0.075000 0.988637 -0.217519 +v 0.026895 0.753307 -0.256002 +v 0.023223 0.758010 -0.253518 +v 0.026895 0.753307 -0.872828 +v 0.023223 0.758010 -0.875312 +v 0.026895 0.834000 -0.872828 +v 0.023223 0.829297 -0.875312 +v 0.026895 0.834000 -0.256002 +v 0.023223 0.829297 -0.253518 +v 0.012500 0.753307 -0.861312 +v 0.011573 0.758010 -0.866015 +v 0.012500 0.753307 -0.267519 +v 0.011573 0.758010 -0.262816 +v 0.012500 0.834000 -0.861312 +v 0.011573 0.829297 -0.866015 +v 0.012500 0.834000 -0.267519 +v 0.011573 0.829297 -0.262816 +v 0.026895 0.873731 -0.256002 +v 0.023223 0.878434 -0.253518 +v 0.026895 0.873731 -0.872828 +v 0.023223 0.878434 -0.875312 +v 0.026895 0.954424 -0.872828 +v 0.023223 0.949722 -0.875312 +v 0.026895 0.954424 -0.256002 +v 0.023223 0.949722 -0.253518 +v 0.012500 0.873731 -0.861312 +v 0.011573 0.878434 -0.866015 +v 0.012500 0.873731 -0.267519 +v 0.011573 0.878434 -0.262816 +v 0.012500 0.954424 -0.861312 +v 0.011573 0.949722 -0.866015 +v 0.012500 0.954424 -0.267519 +v 0.011573 0.949722 -0.262816 +v 0.023223 0.758010 -0.252557 +v 0.023223 0.829297 -0.252557 +v 0.023223 0.758010 -0.880367 +v 0.023223 0.829297 -0.880367 +v 0.023223 0.878434 -0.252557 +v 0.023223 0.949722 -0.252557 +v 0.023223 0.878434 -0.880367 +v 0.023223 0.949722 -0.880367 +v 0.075000 0.772401 -0.150776 +v 0.075000 0.972661 -0.150776 +v -0.030935 0.772401 -0.150776 +v -0.030935 0.972661 -0.150776 +v -0.075000 0.088688 -0.911312 +v -0.075000 1.911312 -0.911312 +v -0.075000 0.088688 -0.088688 +v -0.075000 1.911312 -0.088688 +v -0.075000 2.000000 -1.000000 +v -0.075000 0.000000 -1.000000 +v -0.012500 1.861312 -0.861312 +v -0.012500 0.138688 -0.861312 +v -0.012500 0.138688 -0.138688 +v -0.012500 1.861312 -0.138688 +v -0.012500 0.733440 -0.267519 +v -0.012500 0.988637 -0.267519 +v -0.075000 0.655676 -0.088688 +v -0.075000 1.166712 -0.088688 +v -0.012500 1.166712 -0.138688 +v -0.012500 0.655676 -0.138688 +v -0.075000 0.733440 -0.217519 +v -0.075000 0.988637 -0.217519 +v -0.026895 0.753307 -0.256002 +v -0.023223 0.758010 -0.253518 +v -0.026895 0.753307 -0.872828 +v -0.023223 0.758010 -0.875312 +v -0.026895 0.834000 -0.872828 +v -0.023223 0.829297 -0.875312 +v -0.026895 0.834000 -0.256002 +v -0.023223 0.829297 -0.253518 +v -0.012500 0.753307 -0.861312 +v -0.011573 0.758010 -0.866015 +v -0.012500 0.753307 -0.267519 +v -0.011573 0.758010 -0.262816 +v -0.012500 0.834000 -0.861312 +v -0.011573 0.829297 -0.866015 +v -0.012500 0.834000 -0.267519 +v -0.011573 0.829297 -0.262816 +v -0.026895 0.873731 -0.256002 +v -0.023223 0.878434 -0.253518 +v -0.026895 0.873731 -0.872828 +v -0.023223 0.878434 -0.875312 +v -0.026895 0.954424 -0.872828 +v -0.023223 0.949722 -0.875312 +v -0.026895 0.954424 -0.256002 +v -0.023223 0.949722 -0.253518 +v -0.012500 0.873731 -0.861312 +v -0.011573 0.878434 -0.866015 +v -0.012500 0.873731 -0.267519 +v -0.011573 0.878434 -0.262816 +v -0.012500 0.954424 -0.861312 +v -0.011573 0.949722 -0.866015 +v -0.012500 0.954424 -0.267519 +v -0.011573 0.949722 -0.262816 +v -0.023223 0.758010 -0.252557 +v -0.023223 0.829297 -0.252557 +v -0.023223 0.758010 -0.880367 +v -0.023223 0.829297 -0.880367 +v -0.023223 0.878434 -0.252557 +v -0.023223 0.949722 -0.252557 +v -0.023223 0.878434 -0.880367 +v -0.023223 0.949722 -0.880367 +v -0.075000 0.772401 -0.150776 +v -0.075000 0.972661 -0.150776 +v 0.065000 0.000000 0.000000 +v 0.075000 0.000000 -0.010000 +v 0.065000 2.000000 0.000000 +v 0.075000 2.000000 -0.010000 +v 0.065000 0.655676 0.000000 +v 0.075000 0.655676 -0.010000 +v 0.065000 1.166712 0.000000 +v 0.075000 1.166712 -0.010000 +v 0.065000 0.733440 0.000000 +v 0.075000 0.733440 -0.010000 +v 0.065000 0.988637 0.000000 +v 0.075000 0.988637 -0.010000 +v 0.065000 0.982661 0.000000 +v 0.075000 0.972661 -0.010000 +v 0.065000 0.762401 0.000000 +v 0.075000 0.772401 -0.010000 +v 0.020935 0.982661 0.000000 +v 0.030935 0.972661 -0.010000 +v 0.020935 0.762401 0.000000 +v 0.030935 0.772401 -0.010000 +v -0.065000 0.000000 0.000000 +v -0.075000 0.000000 -0.010000 +v -0.065000 2.000000 0.000000 +v -0.075000 2.000000 -0.010000 +v -0.065000 0.655676 0.000000 +v -0.075000 0.655676 -0.010000 +v -0.065000 1.166712 0.000000 +v -0.075000 1.166712 -0.010000 +v -0.065000 0.733440 0.000000 +v -0.075000 0.733440 -0.010000 +v -0.065000 0.988637 0.000000 +v -0.075000 0.988637 -0.010000 +v -0.065000 0.982661 0.000000 +v -0.075000 0.972661 -0.010000 +v -0.065000 0.762401 0.000000 +v -0.075000 0.772401 -0.010000 +v -0.020935 0.982661 0.000000 +v -0.030935 0.972661 -0.010000 +v -0.020935 0.762401 0.000000 +v -0.030935 0.772401 -0.010000 +v -0.075000 0.954424 -0.911312 +v -0.075000 0.753307 -0.911312 +v -0.075000 0.954424 -1.000000 +v -0.075000 0.753307 -1.000000 +v 0.075000 0.954424 -1.000000 +v 0.075000 0.753307 -1.000000 +v 0.075000 0.954424 -0.911312 +v 0.075000 0.753307 -0.911312 +v 0.053113 0.765130 -0.133291 +v 0.053113 0.993204 -0.133291 +v 0.066310 0.765130 -0.125672 +v 0.066310 0.993204 -0.125672 +v 0.066310 0.765130 -0.110433 +v 0.066310 0.993204 -0.110433 +v 0.053113 0.765130 -0.102813 +v 0.053113 0.993204 -0.102813 +v 0.039915 0.765130 -0.110433 +v 0.039915 0.993204 -0.110433 +v 0.039915 0.765130 -0.125672 +v 0.039915 0.993204 -0.125672 +v 0.032467 0.805807 0.131365 +v 0.032467 0.818858 0.131365 +v 0.032467 0.805807 -0.136816 +v 0.032467 0.818858 -0.136816 +v 0.073758 0.805807 0.131365 +v 0.073758 0.818858 0.131365 +v 0.073758 0.805807 -0.136816 +v 0.073758 0.818858 -0.136816 +v 0.032467 0.927874 0.131365 +v 0.032467 0.940925 0.131365 +v 0.032467 0.927874 -0.136816 +v 0.032467 0.940925 -0.136816 +v 0.073758 0.927874 0.131365 +v 0.073758 0.940925 0.131365 +v 0.073758 0.927874 -0.136816 +v 0.073758 0.940925 -0.136816 +v 0.053113 0.806775 0.083099 +v 0.053113 0.932934 0.083099 +v 0.071903 0.806775 0.093947 +v 0.071903 0.932934 0.093947 +v 0.071903 0.806775 0.115645 +v 0.071903 0.932934 0.115645 +v 0.053113 0.806775 0.126494 +v 0.053113 0.932934 0.126494 +v 0.034322 0.806775 0.115645 +v 0.034322 0.932934 0.115645 +v 0.034322 0.806775 0.093947 +v 0.034322 0.932934 0.093947 +v 0.012500 1.861312 -0.861312 +v 0.012500 0.138688 -0.861312 +v 0.012500 0.138688 -0.138688 +v 0.012500 1.861312 -0.138688 +v 0.012500 0.733440 -0.267519 +v 0.012500 0.988637 -0.267519 +v 0.012500 1.166712 -0.138688 +v 0.012500 0.655676 -0.138688 +v 0.012500 0.753307 -0.861312 +v 0.011573 0.758010 -0.866015 +v 0.012500 0.753307 -0.267519 +v 0.011573 0.758010 -0.262816 +v 0.012500 0.834000 -0.861312 +v 0.011573 0.829297 -0.866015 +v 0.012500 0.834000 -0.267519 +v 0.011573 0.829297 -0.262816 +v 0.012500 0.873731 -0.861312 +v 0.011573 0.878434 -0.866015 +v 0.012500 0.873731 -0.267519 +v 0.011573 0.878434 -0.262816 +v 0.012500 0.954424 -0.861312 +v 0.011573 0.949722 -0.866015 +v 0.012500 0.954424 -0.267519 +v 0.011573 0.949722 -0.262816 +v -0.012500 1.861312 -0.861312 +v -0.012500 0.138688 -0.861312 +v -0.012500 0.138688 -0.138688 +v -0.012500 1.861312 -0.138688 +v -0.012500 0.733440 -0.267519 +v -0.012500 0.988637 -0.267519 +v -0.012500 1.166712 -0.138688 +v -0.012500 0.655676 -0.138688 +v -0.012500 0.753307 -0.861312 +v -0.011573 0.758010 -0.866015 +v -0.012500 0.753307 -0.267519 +v -0.011573 0.758010 -0.262816 +v -0.012500 0.834000 -0.861312 +v -0.011573 0.829297 -0.866015 +v -0.012500 0.834000 -0.267519 +v -0.011573 0.829297 -0.262816 +v -0.012500 0.873731 -0.861312 +v -0.011573 0.878434 -0.866015 +v -0.012500 0.873731 -0.267519 +v -0.011573 0.878434 -0.262816 +v -0.012500 0.954424 -0.861312 +v -0.011573 0.949722 -0.866015 +v -0.012500 0.954424 -0.267519 +v -0.011573 0.949722 -0.262816 +vt 0.482071 0.316646 +vt 0.492599 0.268801 +vt 0.492599 0.316646 +vt 0.916084 0.591352 +vt 0.951921 0.827876 +vt 0.916084 0.827876 +vt 0.934488 0.940835 +vt 0.928582 0.942288 +vt 0.928948 0.940645 +vt 0.817339 0.635132 +vt 0.651502 0.654242 +vt 0.639564 0.635132 +vt 0.026878 0.462326 +vt 0.005689 0.303540 +vt 0.026878 0.303540 +vt 0.314827 0.781356 +vt 0.296028 0.916817 +vt 0.296028 0.760168 +vt 0.817339 0.616345 +vt 0.314827 0.916817 +vt 0.333950 0.793302 +vt 0.333949 0.916817 +vt 0.736463 0.318882 +vt 0.717341 0.134293 +vt 0.736463 0.122348 +vt 0.594271 0.285212 +vt 0.613394 0.469801 +vt 0.594271 0.481746 +vt 0.542450 0.748788 +vt 0.292649 0.712952 +vt 0.542450 0.712952 +vt 0.046001 0.255490 +vt 0.051973 0.038824 +vt 0.051973 0.255490 +vt 0.619366 0.297157 +vt 0.613394 0.297157 +vt 0.666555 0.886644 +vt 0.652881 0.859517 +vt 0.683660 0.878096 +vt 0.702460 0.859517 +vt 0.051973 0.303540 +vt 0.046001 0.450380 +vt 0.046001 0.303540 +vt 0.680036 0.827073 +vt 0.633746 0.831619 +vt 0.649257 0.784529 +vt 0.690349 0.810970 +vt 0.926611 0.283306 +vt 0.916084 0.257808 +vt 0.936615 0.283306 +vt 0.066659 0.592068 +vt 0.014998 0.608014 +vt 0.005690 0.592068 +vt 0.749656 0.760168 +vt 0.760183 0.793801 +vt 0.749656 0.793801 +vt 0.817339 0.660210 +vt 0.817339 0.654242 +vt 0.026878 0.255490 +vt 0.026878 0.026878 +vt 0.046001 0.038824 +vt 0.029715 0.577350 +vt 0.039207 0.577350 +vt 0.711368 0.134293 +vt 0.717341 0.306937 +vt 0.711368 0.306937 +vt 0.664409 0.764925 +vt 0.659570 0.768426 +vt 0.570526 0.921544 +vt 0.564753 0.923072 +vt 0.564622 0.921479 +vt 0.717217 0.945045 +vt 0.718388 0.927567 +vt 0.718195 0.943853 +vt 0.560421 0.922992 +vt 0.561787 0.940663 +vt 0.560713 0.941820 +vt 0.717245 0.926378 +vt 0.721467 0.925304 +vt 0.727061 0.925087 +vt 0.721087 0.923635 +vt 0.727381 0.923449 +vt 0.564833 0.942859 +vt 0.564468 0.944502 +vt 0.010061 0.896685 +vt 0.015903 0.894826 +vt 0.015602 0.896491 +vt 0.721550 0.944905 +vt 0.721435 0.946497 +vt 0.561410 0.924159 +vt 0.019754 0.916314 +vt 0.018664 0.898655 +vt 0.019754 0.897489 +vt 0.924536 0.920778 +vt 0.925902 0.938449 +vt 0.924828 0.939606 +vt 0.051973 0.274769 +vt 0.046001 0.284261 +vt 0.046001 0.274769 +vt 0.928868 0.920858 +vt 0.925525 0.921945 +vt 0.015696 0.916430 +vt 0.018777 0.915200 +vt 0.010063 0.916440 +vt 0.015871 0.917960 +vt 0.009957 0.918083 +vt 0.903593 0.022721 +vt 0.753601 0.005689 +vt 0.903593 0.005689 +vt 0.592231 0.044914 +vt 0.742222 0.061946 +vt 0.592231 0.061946 +vt 0.753601 0.050849 +vt 0.903593 0.061946 +vt 0.753601 0.061946 +vt 0.692245 0.318882 +vt 0.671057 0.103548 +vt 0.692246 0.122348 +vt 0.674255 0.075714 +vt 0.640621 0.086241 +vt 0.640621 0.075714 +vt 0.526232 0.268801 +vt 0.526232 0.316646 +vt 0.742222 0.016786 +vt 0.592231 0.005689 +vt 0.742222 0.005689 +vt 0.742222 0.033818 +vt 0.592231 0.033818 +vt 0.058485 0.566973 +vt 0.066659 0.572946 +vt 0.058485 0.572946 +vt 0.039207 0.566973 +vt 0.029715 0.572946 +vt 0.029715 0.566973 +vt 0.753601 0.033817 +vt 0.903593 0.033818 +vt 0.727149 0.944802 +vt 0.010436 0.566973 +vt 0.005689 0.572946 +vt 0.005689 0.566973 +vt 0.663468 0.891757 +vt 0.635775 0.868065 +vt 0.570373 0.943049 +vt 0.339922 0.793302 +vt 0.222382 0.836271 +vt 0.211854 0.788427 +vt 0.222382 0.788427 +vt 0.651502 0.660211 +vt 0.817339 0.679320 +vt 0.639564 0.679320 +vt 0.092284 0.303540 +vt 0.071096 0.462326 +vt 0.071096 0.303540 +vt 0.359045 0.781356 +vt 0.377844 0.916817 +vt 0.359045 0.916817 +vt 0.817339 0.698107 +vt 0.619367 0.469801 +vt 0.638489 0.285211 +vt 0.638489 0.481746 +vt 0.633095 0.892296 +vt 0.663874 0.910875 +vt 0.656193 0.936166 +vt 0.713709 0.802712 +vt 0.732509 0.760168 +vt 0.732509 0.802712 +vt 0.682930 0.760168 +vt 0.695188 0.807469 +vt 0.659678 0.266412 +vt 0.014998 0.531905 +vt 0.062842 0.531905 +vt 0.066659 0.547851 +vt 0.553906 0.269791 +vt 0.543379 0.303424 +vt 0.543379 0.269791 +vt 0.056378 0.255490 +vt 0.005690 0.547851 +vt 0.039207 0.562569 +vt 0.730271 0.943568 +vt 0.731254 0.926081 +vt 0.731254 0.944703 +vt 0.573397 0.940891 +vt 0.574481 0.923217 +vt 0.574481 0.942042 +vt 0.570696 0.944663 +vt 0.727318 0.946384 +vt 0.570366 0.923131 +vt 0.007055 0.898880 +vt 0.005689 0.916555 +vt 0.005985 0.897737 +vt 0.937512 0.938677 +vt 0.938596 0.921004 +vt 0.938596 0.939828 +vt 0.009677 0.895087 +vt 0.934481 0.920918 +vt 0.934641 0.919331 +vt 0.934811 0.942449 +vt 0.903593 0.050849 +vt 0.592231 0.016786 +vt 0.592231 0.073325 +vt 0.625864 0.083852 +vt 0.592231 0.083852 +vt 0.256015 0.836271 +vt 0.256015 0.788427 +vt 0.573083 0.266412 +vt 0.852036 0.316991 +vt 0.816199 0.553514 +vt 0.816199 0.316991 +vt 0.928736 0.919265 +vt 0.066659 0.641647 +vt 0.065231 0.645026 +vt 0.062842 0.641647 +vt 0.705838 0.878096 +vt 0.702460 0.878096 +vt 0.674154 0.844929 +vt 0.632689 0.834828 +vt 0.292649 0.762557 +vt 0.292649 0.916817 +vt 0.618390 0.616345 +vt 0.817340 0.612914 +vt 0.005690 0.641647 +vt 0.012609 0.645026 +vt 0.005690 0.645026 +vt 0.677633 0.083852 +vt 0.677633 0.073325 +vt 0.529611 0.319035 +vt 0.757794 0.797179 +vt 0.747266 0.797179 +vt 0.949531 0.587974 +vt 0.951921 0.591352 +vt 0.849647 0.313612 +vt 0.065231 0.494893 +vt 0.066659 0.498272 +vt 0.062842 0.498272 +vt 0.657767 0.939155 +vt 0.672632 0.927510 +vt 0.674207 0.930499 +vt 0.735888 0.802712 +vt 0.735888 0.760168 +vt 0.381223 0.762557 +vt 0.381223 0.916817 +vt 0.620816 0.701538 +vt 0.817340 0.701537 +vt 0.012609 0.494893 +vt 0.005690 0.498272 +vt 0.005690 0.494893 +vt 0.629242 0.075714 +vt 0.629242 0.086241 +vt 0.259394 0.838661 +vt 0.259394 0.786038 +vt 0.551517 0.266412 +vt 0.540990 0.266412 +vt 0.757652 0.103548 +vt 0.757652 0.340071 +vt 0.041596 0.303540 +vt 0.005689 0.255490 +vt 0.005690 0.005690 +vt 0.590499 0.748788 +vt 0.590499 0.712952 +vt 0.071096 0.026878 +vt 0.092284 0.255490 +vt 0.071096 0.255490 +vt 0.051973 0.450380 +vt 0.056378 0.274769 +vt 0.056378 0.284261 +vt 0.770473 0.748789 +vt 0.770473 0.712952 +vt 0.041596 0.284261 +vt 0.041596 0.274769 +vt 0.839729 0.699298 +vt 0.831045 0.699299 +vt 0.831024 0.569515 +vt 0.323689 0.368753 +vt 0.326247 0.513936 +vt 0.323712 0.512813 +vt 0.484577 0.106103 +vt 0.628460 0.106103 +vt 0.628460 0.110917 +vt 0.300041 0.670357 +vt 0.295227 0.670357 +vt 0.295227 0.526483 +vt 0.089048 0.626916 +vt 0.080343 0.497134 +vt 0.089027 0.497132 +vt 0.106172 0.106106 +vt 0.250233 0.114407 +vt 0.281488 0.157609 +vt 0.482071 0.268801 +vt 0.005689 0.483514 +vt 0.292649 0.748789 +vt 0.947142 0.335929 +vt 0.947142 0.337357 +vt 0.936615 0.335929 +vt 0.947142 0.379901 +vt 0.947142 0.576595 +vt 0.916084 0.576595 +vt 0.916084 0.379901 +vt 0.916084 0.337357 +vt 0.926611 0.335929 +vt 0.916084 0.335929 +vt 0.947142 0.276387 +vt 0.947142 0.283306 +vt 0.947142 0.257808 +vt 0.916084 0.283306 +vt 0.916084 0.276387 +vt 0.947142 0.103548 +vt 0.916084 0.103548 +vt 0.062842 0.608014 +vt 0.014998 0.641647 +vt 0.760183 0.760168 +vt 0.041596 0.255490 +vt 0.058485 0.577350 +vt 0.010436 0.577350 +vt 0.010436 0.572946 +vt 0.039207 0.572946 +vt 0.051973 0.284261 +vt 0.753601 0.022721 +vt 0.742222 0.044914 +vt 0.671057 0.340071 +vt 0.674255 0.086241 +vt 0.066659 0.566973 +vt 0.632689 0.873178 +vt 0.339922 0.916817 +vt 0.211854 0.836271 +vt 0.092284 0.483514 +vt 0.377844 0.760168 +vt 0.618390 0.698107 +vt 0.659678 0.502935 +vt 0.014998 0.498272 +vt 0.553906 0.303424 +vt 0.058485 0.562569 +vt 0.029715 0.562569 +vt 0.010436 0.562569 +vt 0.730133 0.927265 +vt 0.573497 0.924351 +vt 0.006685 0.915371 +vt 0.937612 0.922137 +vt 0.625864 0.073325 +vt 0.573082 0.502935 +vt 0.852036 0.553514 +vt 0.066659 0.645026 +vt 0.705838 0.859517 +vt 0.673097 0.848138 +vt 0.620778 0.612914 +vt 0.529611 0.266412 +vt 0.918473 0.587974 +vt 0.818588 0.313612 +vt 0.066659 0.494893 +vt 0.092284 0.005689 +vt 0.056378 0.303540 +vt 0.839707 0.569514 +vt 0.842033 0.567275 +vt 0.842033 0.700351 +vt 0.828719 0.701538 +vt 0.828719 0.568462 +vt 0.103692 0.512849 +vt 0.272181 0.337506 +vt 0.103663 0.337533 +vt 0.315389 0.368754 +vt 0.326247 0.366244 +vt 0.659678 0.129760 +vt 0.659678 0.255033 +vt 0.484577 0.255033 +vt 0.482071 0.103548 +vt 0.629582 0.103572 +vt 0.444147 0.526484 +vt 0.444147 0.701573 +vt 0.318883 0.701573 +vt 0.292649 0.672839 +vt 0.292673 0.525315 +vt 0.080364 0.626918 +vt 0.078038 0.629157 +vt 0.078038 0.496080 +vt 0.091352 0.494893 +vt 0.091352 0.627970 +vt 0.281488 0.326127 +vt 0.106172 0.326127 +vt 0.103663 0.103548 +vt 0.251356 0.103572 +vt 0.250233 0.106106 +vt 0.030383 0.669552 +vt 0.079577 0.666265 +vt 0.079577 0.669552 +vt 0.030383 0.666265 +vt 0.079577 0.662978 +vt 0.030383 0.662978 +vt 0.079577 0.659692 +vt 0.030383 0.659692 +vt 0.079577 0.656405 +vt 0.030383 0.676126 +vt 0.079577 0.672839 +vt 0.079577 0.676126 +vt 0.030383 0.672839 +vt 0.882594 0.884444 +vt 0.940438 0.887259 +vt 0.882594 0.887259 +vt 0.949344 0.898980 +vt 0.940438 0.896165 +vt 0.949344 0.896165 +vt 0.940438 0.898980 +vt 0.882594 0.896165 +vt 0.882594 0.898980 +vt 0.873687 0.896165 +vt 0.940438 0.907886 +vt 0.897130 0.806314 +vt 0.894315 0.864159 +vt 0.894315 0.806314 +vt 0.882594 0.873065 +vt 0.885409 0.864159 +vt 0.885409 0.873065 +vt 0.882594 0.864159 +vt 0.885409 0.806314 +vt 0.882594 0.806314 +vt 0.885409 0.797408 +vt 0.873687 0.864159 +vt 0.833701 0.900185 +vt 0.838381 0.927396 +vt 0.833701 0.927396 +vt 0.838381 0.900185 +vt 0.843061 0.927396 +vt 0.843061 0.900185 +vt 0.847741 0.927396 +vt 0.847741 0.900185 +vt 0.852421 0.927396 +vt 0.852421 0.900185 +vt 0.857101 0.927396 +vt 0.829021 0.900185 +vt 0.829021 0.927396 +vt 0.030383 0.656405 +vt 0.940438 0.884444 +vt 0.873687 0.898980 +vt 0.882594 0.907886 +vt 0.897130 0.864159 +vt 0.882594 0.797408 +vt 0.873687 0.806314 +vt 0.857101 0.900185 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.6247 0.0000 -0.7809 +vn 1.0000 0.0000 0.0000 +vn 0.6247 0.7809 0.0000 +vn 0.6247 -0.7809 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.3821 -0.7912 -0.4776 +vn 0.5439 0.4919 -0.6799 +vn 0.6247 0.0000 0.7809 +vn 0.0000 0.5862 -0.8102 +vn 0.0000 -0.7071 0.7071 +vn -0.5602 0.0000 -0.8283 +vn -0.5602 0.0000 0.8283 +vn 0.4637 0.6689 -0.5810 +vn 0.0000 0.7071 -0.7071 +vn 0.4634 0.6706 0.5793 +vn 0.0000 0.7071 0.7071 +vn 0.4634 -0.6706 -0.5792 +vn 0.4637 -0.6689 0.5810 +vn 0.4634 -0.6706 -0.5793 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -0.8561 -0.5168 +vn -0.6247 0.0000 -0.7809 +vn -0.6247 0.7809 0.0000 +vn -0.6247 -0.7809 0.0000 +vn -0.3821 -0.7912 -0.4776 +vn -0.5439 0.4919 -0.6799 +vn -0.6247 0.0000 0.7809 +vn 0.5602 0.0000 -0.8283 +vn 0.5602 0.0000 0.8283 +vn -0.4634 0.6706 -0.5793 +vn -0.4634 0.6706 0.5793 +vn -0.4634 -0.6706 -0.5792 +vn -0.4634 -0.6706 0.5792 +vn -0.4634 -0.6706 0.5793 +vn -0.4634 -0.6706 -0.5793 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 0.7071 +vn 0.9811 -0.1935 0.0000 +vn 0.4634 0.6706 -0.5793 +vn 0.4637 0.6689 0.5810 +vn 0.4637 -0.6689 -0.5810 +vn 0.4634 -0.6706 0.5792 +vn -0.5603 0.0000 -0.8283 +vn 0.4634 -0.6706 0.5793 +vn -0.4637 0.6689 -0.5810 +vn -0.4637 0.6689 0.5810 +vn -0.4637 -0.6689 -0.5810 +vn -0.4637 -0.6689 0.5810 +vn 0.5603 0.0000 -0.8283 +vn 0.9811 0.1935 -0.0000 +vn -0.9811 0.1935 0.0000 +vn -0.9811 -0.1935 -0.0000 +vn 0.8660 0.0000 -0.5000 +vn 0.8660 0.0000 0.5000 +vn -0.8660 0.0000 0.5000 +vn -0.8660 0.0000 -0.5000 +vn -0.5773 0.5773 0.5773 +vn -0.5773 -0.5773 -0.5773 +vn -0.5773 -0.5773 0.5773 +vn -0.5773 0.5773 -0.5773 +vn 0.5773 -0.5773 -0.5773 +vn 0.5773 0.5773 -0.5773 +vn 0.5773 -0.5773 0.5773 +vn 0.5773 0.5773 0.5773 +s off +f 321/437/69 262/438/69 261/439/69 +f 408/440/70 267/441/70 329/442/70 +f 374/443/71 311/444/71 312/445/71 +f 276/446/72 272/447/72 266/448/72 +f 263/449/73 430/450/73 432/451/73 +f 265/452/73 390/453/73 386/454/73 +f 266/448/73 392/455/73 276/446/73 +f 275/456/72 271/457/72 278/458/72 +f 263/459/74 271/460/74 265/461/74 +f 266/462/75 269/463/75 264/464/75 +f 427/465/76 267/466/76 429/467/76 +f 309/468/69 331/469/69 371/470/69 +f 334/471/77 269/463/77 272/472/77 +f 278/473/78 279/474/78 275/475/78 +f 394/476/73 275/475/73 279/474/73 +f 351/477/69 270/478/69 289/479/69 +f 276/480/73 396/481/73 280/482/73 +f 280/482/79 277/483/79 276/480/79 +f 423/484/69 409/485/69 403/486/69 +f 280/487/73 321/488/73 279/489/73 +f 262/490/77 398/491/77 402/492/77 +f 339/493/76 272/447/76 277/494/76 +f 431/495/80 264/496/80 269/497/80 +f 279/489/72 287/498/72 297/499/72 +f 333/500/70 270/501/70 332/502/70 +f 336/503/81 277/483/81 274/504/81 +f 355/505/82 294/506/82 293/507/82 +f 287/508/83 282/509/83 288/510/83 +f 285/511/84 284/512/84 283/513/84 +f 281/514/85 292/515/85 282/509/85 +f 354/516/86 291/517/86 353/518/86 +f 283/513/87 290/519/87 289/520/87 +f 368/521/88 305/522/88 306/523/88 +f 287/508/89 296/524/89 295/525/89 +f 285/511/90 294/506/90 286/526/90 +f 301/527/84 300/528/84 299/529/84 +f 297/530/83 304/531/83 303/532/83 +f 367/533/69 293/534/69 305/535/69 +f 299/529/87 306/523/87 305/522/87 +f 297/530/85 308/536/85 298/537/85 +f 301/527/90 310/538/90 302/539/90 +f 372/540/82 309/541/82 371/542/82 +f 303/532/91 312/445/91 311/444/91 +f 316/543/73 313/544/73 315/545/73 +f 320/546/73 317/547/73 319/548/73 +f 375/549/77 315/550/77 313/551/77 +f 325/552/92 406/553/92 327/554/92 +f 404/555/70 321/556/70 261/557/70 +f 261/439/73 402/558/73 404/559/73 +f 379/560/77 319/561/77 317/562/77 +f 380/563/70 320/546/70 382/564/70 +f 373/565/76 274/566/76 311/567/76 +f 369/568/76 295/569/76 357/570/76 +f 376/571/70 316/543/70 378/572/70 +f 358/573/71 295/525/71 296/524/71 +f 353/574/76 273/575/76 335/576/76 +f 340/577/93 273/578/93 278/473/93 +f 352/579/88 289/520/88 290/519/88 +f 333/580/76 278/458/76 271/457/76 +f 324/581/69 383/582/69 323/583/69 +f 334/584/94 338/585/94 328/586/94 +f 428/587/92 325/588/92 426/589/92 +f 327/590/92 410/591/92 337/592/92 +f 412/593/92 328/586/92 338/585/92 +f 337/592/94 333/580/94 327/590/94 +f 333/500/95 325/552/95 327/554/95 +f 331/594/96 328/595/96 326/596/96 +f 341/597/97 340/577/97 337/598/97 +f 337/598/92 414/599/92 341/597/92 +f 338/600/92 416/601/92 412/602/92 +f 342/603/98 339/604/98 336/503/98 +f 408/605/92 326/596/92 328/595/92 +f 383/606/92 384/607/92 342/608/92 +f 418/609/77 324/610/77 422/611/77 +f 363/612/99 371/470/99 331/469/99 +f 341/613/94 342/608/94 359/614/94 +f 350/615/100 343/616/100 349/617/100 +f 346/618/101 347/619/101 345/620/101 +f 343/616/102 354/516/102 353/518/102 +f 352/579/103 345/620/103 351/621/103 +f 358/573/104 349/617/104 357/622/104 +f 347/619/105 356/623/105 355/505/105 +f 362/624/101 363/625/101 361/626/101 +f 366/627/100 359/628/100 365/629/100 +f 368/521/103 361/626/103 367/630/103 +f 359/628/102 370/631/102 369/632/102 +f 363/625/106 372/540/106 371/542/106 +f 374/443/107 365/629/107 373/633/107 +f 375/549/92 378/572/92 377/634/92 +f 379/560/92 382/564/92 381/635/92 +f 383/636/70 424/637/70 323/638/70 +f 422/639/92 323/583/92 424/640/92 +f 264/464/73 388/641/73 266/462/73 +f 406/642/77 268/643/77 386/644/77 +f 370/631/86 307/645/86 369/632/86 +f 396/646/108 397/647/108 398/648/108 +f 394/476/108 389/649/108 390/650/108 +f 392/651/108 395/652/108 396/481/108 +f 385/653/108 390/453/108 389/654/108 +f 388/655/108 391/656/108 392/455/108 +f 394/657/108 399/658/108 393/659/108 +f 399/660/88 404/555/88 403/661/88 +f 402/558/108 403/662/108 404/559/108 +f 402/492/82 397/663/82 401/664/82 +f 408/440/70 387/665/70 388/666/70 +f 386/644/77 405/667/77 406/642/77 +f 417/668/109 416/669/109 418/670/109 +f 413/671/109 410/672/109 409/673/109 +f 411/674/109 416/601/109 415/675/109 +f 410/591/109 405/676/109 409/677/109 +f 407/678/109 412/593/109 411/679/109 +f 419/680/109 414/681/109 413/682/109 +f 424/637/88 419/683/88 423/684/88 +f 421/685/109 424/640/109 423/686/109 +f 417/687/82 422/611/82 421/688/82 +f 263/459/73 386/689/73 268/690/73 +f 283/691/80 289/479/80 270/478/80 +f 264/496/73 429/692/73 267/693/73 +f 428/694/76 429/467/76 430/695/76 +f 326/696/92 427/697/92 425/698/92 +f 426/589/99 325/588/99 332/699/99 +f 361/700/99 425/698/99 347/701/99 +f 427/697/92 426/589/92 425/698/92 +f 330/702/76 430/695/76 268/703/76 +f 432/451/73 429/692/73 431/495/73 +f 285/704/80 431/495/80 299/705/80 +f 485/706/73 489/707/73 491/708/73 +f 495/709/110 494/710/110 493/711/110 +f 481/712/73 483/713/73 477/714/73 +f 501/715/92 507/716/92 505/717/92 +f 511/718/92 513/719/92 509/720/92 +f 517/721/92 502/722/92 503/723/92 +f 321/437/69 322/724/69 262/438/69 +f 408/440/70 388/666/70 267/441/70 +f 374/443/71 373/633/71 311/444/71 +f 276/446/72 277/494/72 272/447/72 +f 263/449/73 268/725/73 430/450/73 +f 265/452/73 275/456/73 390/453/73 +f 266/448/73 388/655/73 392/455/73 +f 275/456/72 265/452/72 271/457/72 +f 263/459/74 270/501/74 271/460/74 +f 266/462/75 272/472/75 269/463/75 +f 427/465/76 329/726/76 267/466/76 +f 309/468/69 269/497/69 331/469/69 +f 334/471/77 331/594/77 269/463/77 +f 278/473/78 273/578/78 279/474/78 +f 394/476/73 390/650/73 275/475/73 +f 351/477/69 332/699/69 270/478/69 +f 276/480/73 392/651/73 396/481/73 +f 280/482/79 274/504/79 277/483/79 +f 397/727/69 395/728/69 401/729/69 +f 395/728/69 391/730/69 401/729/69 +f 391/730/69 387/731/69 407/732/69 +f 411/733/69 415/734/69 421/735/69 +f 415/734/69 417/736/69 421/735/69 +f 391/730/69 407/732/69 411/733/69 +f 393/737/69 399/738/69 403/486/69 +f 401/729/69 391/730/69 411/733/69 +f 389/739/69 393/737/69 403/486/69 +f 423/484/69 419/740/69 413/741/69 +f 401/729/69 411/733/69 421/735/69 +f 423/484/69 413/741/69 409/485/69 +f 401/729/69 421/735/69 423/484/69 +f 385/742/69 389/739/69 405/743/69 +f 389/739/69 403/486/69 409/485/69 +f 405/743/69 389/739/69 409/485/69 +f 403/486/69 401/729/69 423/484/69 +f 280/487/73 396/646/73 322/744/73 +f 396/646/73 398/648/73 322/744/73 +f 400/745/73 394/657/73 321/488/73 +f 394/657/73 279/489/73 321/488/73 +f 280/487/73 322/744/73 321/488/73 +f 262/490/77 322/746/77 398/491/77 +f 339/493/76 334/584/76 272/447/76 +f 309/468/80 301/747/80 269/497/80 +f 301/747/80 431/495/80 269/497/80 +f 303/748/72 311/567/72 274/566/72 +f 279/489/72 273/575/72 281/749/72 +f 273/575/72 291/750/72 281/749/72 +f 303/748/72 274/566/72 280/487/72 +f 295/569/72 307/751/72 297/499/72 +f 297/499/72 303/748/72 280/487/72 +f 280/487/72 279/489/72 297/499/72 +f 279/489/72 281/749/72 287/498/72 +f 287/498/72 295/569/72 297/499/72 +f 333/500/70 271/460/70 270/501/70 +f 336/503/81 339/604/81 277/483/81 +f 355/505/82 356/623/82 294/506/82 +f 287/508/83 281/514/83 282/509/83 +f 285/511/84 286/526/84 284/512/84 +f 281/514/111 291/517/111 292/515/111 +f 354/516/86 292/515/86 291/517/86 +f 283/513/112 284/512/112 290/519/112 +f 368/521/88 367/630/88 305/522/88 +f 287/508/113 288/510/113 296/524/113 +f 285/511/114 293/507/114 294/506/114 +f 301/527/84 302/539/84 300/528/84 +f 297/530/115 298/537/115 304/531/115 +f 367/533/69 355/752/69 293/534/69 +f 299/529/112 300/528/112 306/523/112 +f 297/530/111 307/645/111 308/536/111 +f 301/527/116 309/541/116 310/538/116 +f 372/540/82 310/538/82 309/541/82 +f 303/532/113 304/531/113 312/445/113 +f 316/543/73 314/753/73 313/544/73 +f 320/546/73 318/754/73 317/547/73 +f 375/549/77 377/634/77 315/550/77 +f 325/552/92 330/755/92 406/553/92 +f 404/555/70 400/756/70 321/556/70 +f 261/439/73 262/438/73 402/558/73 +f 379/560/77 381/635/77 319/561/77 +f 380/563/70 318/754/70 320/546/70 +f 373/565/76 336/757/76 274/566/76 +f 369/568/76 307/751/76 295/569/76 +f 376/571/70 314/753/70 316/543/70 +f 358/573/71 357/622/71 295/525/71 +f 353/574/76 291/750/76 273/575/76 +f 340/577/93 335/758/93 273/578/93 +f 352/579/88 351/621/88 289/520/88 +f 333/580/76 340/759/76 278/458/76 +f 324/581/69 384/760/69 383/582/69 +f 334/584/94 339/493/94 338/585/94 +f 428/587/92 330/761/92 325/588/92 +f 327/590/92 406/762/92 410/591/92 +f 412/593/92 408/763/92 328/586/92 +f 337/592/94 340/759/94 333/580/94 +f 333/500/95 332/502/95 325/552/95 +f 331/594/96 334/471/96 328/595/96 +f 341/597/97 335/758/97 340/577/97 +f 337/598/92 410/672/92 414/599/92 +f 338/600/92 342/603/92 416/601/92 +f 342/603/98 338/600/98 339/604/98 +f 408/605/92 329/764/92 326/596/92 +f 341/613/92 414/681/92 383/606/92 +f 414/681/92 420/765/92 383/606/92 +f 418/670/92 416/669/92 384/607/92 +f 416/669/92 342/608/92 384/607/92 +f 341/613/92 383/606/92 342/608/92 +f 418/609/77 384/766/77 324/610/77 +f 326/696/99 425/698/99 331/469/99 +f 425/698/99 363/612/99 331/469/99 +f 336/757/94 373/565/94 365/767/94 +f 359/614/94 369/568/94 357/570/94 +f 342/608/94 336/757/94 365/767/94 +f 359/614/94 357/570/94 349/768/94 +f 342/608/94 365/767/94 359/614/94 +f 353/574/94 335/576/94 343/769/94 +f 335/576/94 341/613/94 343/769/94 +f 359/614/94 349/768/94 341/613/94 +f 349/768/94 343/769/94 341/613/94 +f 350/615/100 344/770/100 343/616/100 +f 346/618/101 348/771/101 347/619/101 +f 343/616/117 344/770/117 354/516/117 +f 352/579/118 346/618/118 345/620/118 +f 358/573/119 350/615/119 349/617/119 +f 347/619/120 348/771/120 356/623/120 +f 362/624/101 364/772/101 363/625/101 +f 366/627/121 360/773/121 359/628/121 +f 368/521/118 362/624/118 361/626/118 +f 359/628/117 360/773/117 370/631/117 +f 363/625/120 364/772/120 372/540/120 +f 374/443/119 366/627/119 365/629/119 +f 375/549/92 376/571/92 378/572/92 +f 379/560/92 380/563/92 382/564/92 +f 383/636/70 420/774/70 424/637/70 +f 422/639/92 324/581/92 323/583/92 +f 264/464/73 267/775/73 388/641/73 +f 406/642/77 330/776/77 268/643/77 +f 370/631/86 308/536/86 307/645/86 +f 396/646/108 395/777/108 397/647/108 +f 394/476/108 393/778/108 389/649/108 +f 392/651/108 391/779/108 395/652/108 +f 385/653/108 386/454/108 390/453/108 +f 388/655/108 387/780/108 391/656/108 +f 394/657/108 400/745/108 399/658/108 +f 399/660/88 400/756/88 404/555/88 +f 402/558/108 401/781/108 403/662/108 +f 402/492/82 398/491/82 397/663/82 +f 408/440/70 407/782/70 387/665/70 +f 386/644/77 385/783/77 405/667/77 +f 417/668/109 415/784/109 416/669/109 +f 413/671/109 414/599/109 410/672/109 +f 411/674/109 412/602/109 416/601/109 +f 410/591/109 406/762/109 405/676/109 +f 407/678/109 408/763/109 412/593/109 +f 419/680/109 420/765/109 414/681/109 +f 424/637/88 420/774/88 419/683/88 +f 421/685/109 422/639/109 424/640/109 +f 417/687/82 418/609/82 422/611/82 +f 263/459/73 265/461/73 386/689/73 +f 263/449/80 432/451/80 270/478/80 +f 432/451/80 283/691/80 270/478/80 +f 264/496/73 431/495/73 429/692/73 +f 428/694/76 427/465/76 429/467/76 +f 326/696/92 329/785/92 427/697/92 +f 351/477/99 345/786/99 332/699/99 +f 345/786/99 426/589/99 332/699/99 +f 355/752/99 367/533/99 361/700/99 +f 361/700/99 363/612/99 425/698/99 +f 425/698/99 426/589/99 347/701/99 +f 426/589/99 345/786/99 347/701/99 +f 347/701/99 355/752/99 361/700/99 +f 427/697/92 428/587/92 426/589/92 +f 330/702/76 428/694/76 430/695/76 +f 432/451/73 430/450/73 429/692/73 +f 299/705/80 305/535/80 293/534/80 +f 285/704/80 283/691/80 432/451/80 +f 299/705/80 293/534/80 285/704/80 +f 431/495/80 301/747/80 299/705/80 +f 285/704/80 432/451/80 431/495/80 +f 487/787/110 488/788/110 485/706/110 +f 488/788/110 486/789/110 485/706/110 +f 490/790/122 492/791/122 491/708/122 +f 491/708/73 487/787/73 485/706/73 +f 489/707/122 490/790/122 491/708/122 +f 493/711/73 473/792/73 479/793/73 +f 473/792/73 476/794/73 479/793/73 +f 493/711/73 479/793/73 478/795/73 +f 495/709/110 496/796/110 494/710/110 +f 478/795/73 495/709/73 493/711/73 +f 480/797/73 475/798/73 477/714/73 +f 475/798/73 474/799/73 477/714/73 +f 481/712/122 482/800/122 484/801/122 +f 474/799/73 481/712/73 477/714/73 +f 481/712/122 484/801/122 483/713/122 +f 498/802/92 499/803/92 501/715/92 +f 499/803/92 504/804/92 501/715/92 +f 508/805/123 506/806/123 505/717/123 +f 505/717/92 498/802/92 501/715/92 +f 507/716/123 508/805/123 505/717/123 +f 515/807/123 516/808/123 513/719/123 +f 516/808/123 514/809/123 513/719/123 +f 510/810/124 512/811/124 511/718/124 +f 511/718/92 515/807/92 513/719/92 +f 509/720/124 510/810/124 511/718/124 +f 500/812/92 497/813/92 503/723/92 +f 497/813/92 517/721/92 503/723/92 +f 517/721/124 518/814/124 520/815/124 +f 517/721/124 520/815/124 519/816/124 +f 517/721/92 519/816/92 502/722/92 +s 1 +f 434/817/76 435/818/125 433/819/76 +f 436/820/125 437/821/126 435/818/125 +f 438/822/126 439/823/69 437/821/126 +f 440/824/69 441/825/127 439/823/69 +f 442/826/127 443/827/128 441/828/127 +f 444/829/128 433/819/76 443/827/128 +f 446/830/129 447/831/130 445/832/131 +f 448/833/132 451/834/133 447/835/130 +f 452/836/134 449/837/135 451/834/133 +f 450/838/136 445/839/131 449/837/135 +f 451/834/133 445/832/131 447/831/130 +f 448/840/132 450/838/136 452/836/134 +f 454/841/129 455/842/130 453/843/131 +f 456/844/132 459/845/133 455/846/130 +f 460/847/134 457/848/135 459/845/133 +f 458/849/136 453/850/131 457/848/135 +f 459/845/133 453/843/131 455/842/130 +f 456/851/132 458/849/136 460/847/134 +f 462/852/76 463/853/125 461/854/76 +f 464/855/125 465/856/126 463/853/125 +f 466/857/126 467/858/69 465/856/126 +f 468/859/69 469/860/127 467/858/69 +f 470/861/127 471/862/128 469/860/127 +f 472/863/128 461/854/76 471/864/128 +f 434/817/76 436/820/125 435/818/125 +f 436/820/125 438/822/126 437/821/126 +f 438/822/126 440/824/69 439/823/69 +f 440/824/69 442/865/127 441/825/127 +f 442/826/127 444/829/128 443/827/128 +f 444/829/128 434/817/76 433/819/76 +f 446/830/129 448/866/132 447/831/130 +f 448/833/132 452/836/134 451/834/133 +f 452/836/134 450/838/136 449/837/135 +f 450/838/136 446/867/129 445/839/131 +f 451/834/133 449/837/135 445/832/131 +f 448/840/132 446/868/129 450/838/136 +f 454/841/129 456/869/132 455/842/130 +f 456/844/132 460/847/134 459/845/133 +f 460/847/134 458/849/136 457/848/135 +f 458/849/136 454/870/129 453/850/131 +f 459/845/133 457/848/135 453/843/131 +f 456/851/132 454/871/129 458/849/136 +f 462/852/76 464/855/125 463/853/125 +f 464/855/125 466/857/126 465/856/126 +f 466/857/126 468/859/69 467/858/69 +f 468/859/69 470/861/127 469/860/127 +f 470/861/127 472/872/128 471/862/128 +f 472/863/128 462/852/76 461/854/76 diff --git a/src/main/resources/assets/hbm/models/doors/round_airlock_door.obj b/src/main/resources/assets/hbm/models/doors/round_airlock_door.obj new file mode 100644 index 000000000..1a9ada200 --- /dev/null +++ b/src/main/resources/assets/hbm/models/doors/round_airlock_door.obj @@ -0,0 +1,3160 @@ +# Blender v2.92.0 OBJ File: 'airlock.blend' +# www.blender.org +o frame +v -0.500000 0.000000 2.000000 +v -0.500000 4.000000 2.000000 +v -0.500000 0.000000 -2.000000 +v -0.500000 4.000000 -2.000000 +v 0.500000 0.000000 2.000000 +v 0.500000 4.000000 2.000000 +v 0.500000 0.000000 -2.000000 +v 0.500000 4.000000 -2.000000 +v 0.500000 1.990837 -1.903622 +v -0.500000 1.990837 -1.903622 +v 0.500000 2.466150 -1.706741 +v -0.500000 2.466150 -1.706741 +v 0.500000 1.480763 -1.970774 +v -0.500000 1.480763 -1.970774 +v 0.500000 0.970688 -1.903621 +v -0.500000 0.970688 -1.903622 +v 0.500000 0.495375 -1.706740 +v -0.500000 0.495375 -1.706740 +v 0.500000 2.874311 -1.393548 +v -0.500000 2.874311 -1.393548 +v 0.500000 0.056024 -1.443547 +v -0.500000 0.056024 -1.443547 +v 0.500000 3.187504 -0.985387 +v -0.500000 3.187504 -0.985387 +v 0.500000 0.056026 1.443549 +v -0.500000 0.056026 1.443549 +v 0.500000 3.384384 -0.510074 +v -0.500000 3.384384 -0.510074 +v 0.500000 3.451537 -0.000000 +v -0.500000 3.451537 -0.000000 +v 0.500000 3.384385 0.510074 +v -0.500000 3.384385 0.510074 +v 0.500000 3.187504 0.985387 +v -0.500000 3.187504 0.985387 +v 0.500000 2.874311 1.393548 +v -0.500000 2.874311 1.393548 +v 0.500000 2.466151 1.706741 +v -0.500000 2.466151 1.706741 +v 0.500000 1.990837 1.903622 +v -0.500000 1.990837 1.903622 +v 0.500000 1.480764 1.970774 +v -0.500000 1.480763 1.970774 +v 0.500000 0.970690 1.903622 +v -0.500000 0.970690 1.903622 +v 0.500000 0.495377 1.706741 +v -0.500000 0.495376 1.706741 +v -0.533603 1.476714 -2.000000 +v -0.533603 1.994352 -1.931852 +v -0.533603 2.476714 -1.732051 +v -0.533603 2.890928 -1.414214 +v -0.533603 3.208765 -1.000000 +v -0.533603 3.408566 -0.517638 +v -0.533603 3.476714 -0.000000 +v -0.533603 3.408566 0.517638 +v -0.533603 3.208765 1.000000 +v -0.533603 2.890928 1.414213 +v -0.533603 2.476715 1.732051 +v -0.533603 1.994353 1.931852 +v -0.533603 1.476715 2.000000 +v -0.533603 0.959077 1.931852 +v -0.533603 0.476715 1.732051 +v -0.533603 0.062501 1.414214 +v -0.533603 0.062500 -1.414213 +v -0.533603 0.476713 -1.732050 +v -0.533603 0.959075 -1.931851 +v 0.533603 1.476714 -2.000000 +v 0.533603 1.994352 -1.931852 +v 0.533603 2.476714 -1.732051 +v 0.533603 2.890928 -1.414214 +v 0.533603 3.208765 -1.000000 +v 0.533603 3.408566 -0.517638 +v 0.533603 3.476714 -0.000000 +v 0.533603 3.408566 0.517638 +v 0.533603 3.208765 1.000000 +v 0.533603 2.890928 1.414213 +v 0.533603 2.476715 1.732051 +v 0.533603 1.994353 1.931852 +v 0.533603 1.476715 2.000000 +v 0.533603 0.959077 1.931852 +v 0.533603 0.476715 1.732051 +v 0.533603 0.062501 1.414214 +v 0.533603 0.062500 -1.414213 +v 0.533603 0.476713 -1.732050 +v 0.533603 0.959074 -1.931851 +v -0.533603 1.970088 -1.841296 +v -0.533603 1.476714 -1.906250 +v -0.533603 2.429839 -1.650861 +v -0.533603 2.824636 -1.347922 +v -0.533603 3.127575 -0.953125 +v -0.533603 3.318010 -0.493374 +v -0.533603 3.382964 -0.000000 +v -0.533603 3.318010 0.493374 +v -0.533603 3.127575 0.953125 +v -0.533603 2.824636 1.347922 +v -0.533603 2.429840 1.650861 +v -0.533603 1.970088 1.841296 +v -0.533603 1.476715 1.906250 +v -0.533603 0.983341 1.841296 +v -0.533603 0.523590 1.650861 +v -0.533603 0.523588 -1.650860 +v -0.533603 0.983339 -1.841296 +v 0.533603 1.970088 -1.841296 +v 0.533603 1.476714 -1.906250 +v 0.533603 2.429839 -1.650861 +v 0.533603 2.824636 -1.347922 +v 0.533603 3.127575 -0.953125 +v 0.533603 3.318010 -0.493374 +v 0.533603 3.382964 -0.000000 +v 0.533603 3.318010 0.493374 +v 0.533603 3.127575 0.953125 +v 0.533603 2.824637 1.347922 +v 0.533603 2.429840 1.650861 +v 0.533603 1.970088 1.841296 +v 0.533603 1.476715 1.906250 +v 0.533603 0.983341 1.841296 +v 0.533603 0.523590 1.650861 +v 0.533603 0.523588 -1.650860 +v 0.533603 0.983339 -1.841296 +v 0.533603 -0.000000 -1.414213 +v -0.533603 -0.000000 -1.414213 +v -0.533603 0.000001 1.414214 +v 0.533603 0.000001 1.414214 +v 0.166667 0.062500 -1.414213 +v -0.166667 0.062500 -1.414213 +v -0.166667 0.062501 1.414214 +v 0.166667 0.062501 1.414214 +v 0.166667 3.382964 -0.000000 +v -0.166667 3.382964 -0.000000 +v -0.166667 3.318010 0.493374 +v 0.166667 3.318010 0.493374 +v -0.166667 0.523588 -1.650860 +v 0.166667 0.523588 -1.650860 +v 0.166667 0.523590 1.650861 +v -0.166667 0.523590 1.650861 +v -0.166667 3.127575 0.953125 +v 0.166667 3.127575 0.953125 +v -0.166667 0.983339 -1.841296 +v 0.166667 0.983339 -1.841296 +v 0.166667 1.476714 -1.906250 +v -0.166667 1.476714 -1.906250 +v -0.166667 1.970088 -1.841296 +v 0.166667 1.970088 -1.841296 +v -0.166667 2.824637 1.347922 +v 0.166667 2.824637 1.347922 +v -0.166667 2.429839 -1.650861 +v 0.166667 2.429839 -1.650861 +v -0.166667 2.429840 1.650861 +v 0.166667 2.429840 1.650861 +v -0.166667 2.824636 -1.347922 +v 0.166667 2.824636 -1.347922 +v -0.166667 1.970088 1.841296 +v 0.166667 1.970088 1.841296 +v -0.166667 3.127575 -0.953125 +v 0.166667 3.127575 -0.953125 +v -0.166667 1.476715 1.906250 +v 0.166667 1.476715 1.906250 +v -0.166667 3.318010 -0.493374 +v 0.166667 3.318010 -0.493374 +v -0.166667 0.983341 1.841296 +v 0.166667 0.983341 1.841296 +v 0.500000 -0.000000 -1.414213 +v -0.500000 -0.000000 -1.414213 +v -0.500000 0.000001 1.414214 +v 0.500000 0.000001 1.414214 +v -0.166667 0.048000 1.923243 +v -0.166667 0.047998 -1.923243 +v 0.166667 0.048000 1.923243 +v 0.166667 0.047998 -1.923243 +v -0.166667 0.978943 1.923243 +v -0.166667 0.516453 1.923243 +v 0.166667 0.978943 1.923243 +v 0.166667 0.516453 1.923243 +v -0.166667 3.334424 -1.923243 +v -0.166667 3.399957 -0.000000 +v 0.166667 3.334424 -1.923243 +v 0.166667 3.399957 -0.000000 +v -0.166667 1.476715 1.923243 +v 0.166667 1.476715 1.923243 +v -0.166667 3.142291 -1.923243 +v 0.166667 3.142291 -1.923243 +v -0.166667 1.974486 1.923243 +v 0.166667 1.974486 1.923243 +v -0.166667 2.836652 -1.923243 +v 0.166667 2.836652 -1.923243 +v -0.166667 2.438336 1.923243 +v 0.166667 2.438336 1.923243 +v -0.166667 2.438335 -1.923243 +v 0.166667 2.438335 -1.923243 +v -0.166667 2.836652 1.923243 +v 0.166667 2.836653 1.923243 +v -0.166667 1.974486 -1.923243 +v 0.166667 1.974486 -1.923243 +v -0.166667 0.978941 -1.923243 +v -0.166667 1.476714 -1.923243 +v 0.166667 0.978941 -1.923243 +v 0.166667 1.476714 -1.923243 +v -0.166667 3.142291 1.923243 +v 0.166667 3.142291 1.923243 +v -0.166667 0.516451 -1.923243 +v 0.166667 0.516451 -1.923243 +v -0.166667 3.334424 1.923243 +v 0.166667 3.334424 1.923243 +v 0.500000 0.476715 1.732051 +v 0.500000 0.959077 1.931852 +v 0.500000 1.476715 2.000000 +v 0.500000 1.994353 1.931852 +v 0.500000 2.476715 1.732051 +v 0.500000 2.890928 1.414213 +v 0.500000 3.208765 1.000000 +v 0.500000 3.408566 0.517638 +v 0.500000 3.476714 -0.000000 +v 0.500000 3.408566 -0.517638 +v 0.500000 3.208765 -1.000000 +v 0.500000 2.890928 -1.414214 +v 0.500000 2.476714 -1.732051 +v 0.500000 1.994352 -1.931852 +v 0.500000 1.476714 -2.000000 +v 0.500000 0.959074 -1.931851 +v 0.500000 0.476713 -1.732050 +v -0.500000 0.476715 1.732051 +v -0.500000 0.959077 1.931852 +v -0.500000 1.476715 2.000000 +v -0.500000 1.994353 1.931852 +v -0.500000 2.476715 1.732051 +v -0.500000 2.890928 1.414213 +v -0.500000 3.208765 1.000000 +v -0.500000 3.408566 0.517638 +v -0.500000 3.476714 -0.000000 +v -0.500000 3.408566 -0.517638 +v -0.500000 3.208765 -1.000000 +v -0.500000 2.890928 -1.414214 +v -0.500000 2.476714 -1.732051 +v -0.500000 1.994352 -1.931852 +v -0.500000 1.476714 -2.000000 +v -0.500000 0.959075 -1.931851 +v -0.500000 0.476713 -1.732050 +vt 0.068980 0.323539 +vt 0.067373 0.076025 +vt 0.101951 0.199335 +vt 0.320032 0.005495 +vt 0.321765 0.069092 +vt 0.647589 0.225990 +vt 0.647578 0.043005 +vt 0.651413 0.005495 +vt 0.067840 0.386736 +vt 0.321765 0.328100 +vt 0.320625 0.391296 +vt 0.386516 0.069092 +vt 0.007101 0.323941 +vt 0.005495 0.076427 +vt 0.317926 0.106905 +vt 0.431125 0.134236 +vt 0.435293 0.166263 +vt 0.397517 0.258065 +vt 0.132225 0.655744 +vt 0.163488 0.645688 +vt 0.165025 0.651426 +vt 0.421694 0.342907 +vt 0.403923 0.370450 +vt 0.416559 0.339942 +vt 0.100963 0.645688 +vt 0.099425 0.651426 +vt 0.409650 0.371984 +vt 0.399613 0.403189 +vt 0.071831 0.633622 +vt 0.068860 0.638766 +vt 0.409650 0.434393 +vt 0.403923 0.435928 +vt 0.042614 0.618627 +vt 0.416560 0.466435 +vt 0.526107 0.529682 +vt 0.557311 0.519644 +vt 0.558846 0.525372 +vt 0.027618 0.589410 +vt 0.022474 0.592380 +vt 0.421695 0.463471 +vt 0.436662 0.492633 +vt 0.589354 0.512735 +vt 0.015551 0.560278 +vt 0.009813 0.561816 +vt 0.440855 0.488440 +vt 0.462860 0.512735 +vt 0.011435 0.529016 +vt 0.005495 0.529016 +vt 0.465825 0.507600 +vt 0.493368 0.525372 +vt 0.619504 0.313743 +vt 0.615551 0.492633 +vt 0.615551 0.313743 +vt 0.358254 0.687384 +vt 0.381505 0.655852 +vt 0.381505 0.687384 +vt 0.381505 0.972483 +vt 0.358254 0.939643 +vt 0.381505 0.939643 +vt 0.358254 0.435125 +vt 0.381505 0.402285 +vt 0.381505 0.435125 +vt 0.358254 0.655852 +vt 0.381505 0.624319 +vt 0.381505 0.908111 +vt 0.358254 0.876578 +vt 0.381505 0.845046 +vt 0.381505 0.876578 +vt 0.358254 0.624319 +vt 0.381505 0.592787 +vt 0.358254 0.813513 +vt 0.381505 0.813513 +vt 0.358254 0.592787 +vt 0.381505 0.561255 +vt 0.358254 0.781981 +vt 0.381505 0.781981 +vt 0.358254 0.561255 +vt 0.381505 0.529722 +vt 0.381505 0.750449 +vt 0.358254 0.498190 +vt 0.381505 0.498190 +vt 0.358254 0.750449 +vt 0.381505 0.718916 +vt 0.381505 0.466657 +vt 0.358254 0.718916 +vt 0.440854 0.317937 +vt 0.436662 0.313744 +vt 0.195590 0.638765 +vt 0.132223 0.408225 +vt 0.099423 0.406604 +vt 0.132223 0.402285 +vt 0.465824 0.298777 +vt 0.462859 0.293642 +vt 0.100960 0.412342 +vt 0.068858 0.419264 +vt 0.493367 0.281005 +vt 0.698707 0.252092 +vt 0.662402 0.254221 +vt 0.662402 0.252092 +vt 0.046812 0.443605 +vt 0.042612 0.439404 +vt 0.526106 0.276695 +vt 0.494902 0.286732 +vt 0.195588 0.419263 +vt 0.163486 0.412341 +vt 0.165023 0.406603 +vt 0.027617 0.468621 +vt 0.022472 0.465651 +vt 0.557310 0.286732 +vt 0.558845 0.281005 +vt 0.009812 0.496216 +vt 0.589353 0.293641 +vt 0.494902 0.519645 +vt 0.015550 0.497753 +vt 0.108173 0.933725 +vt 0.106043 0.897420 +vt 0.108173 0.897420 +vt 0.087859 0.930852 +vt 0.085729 0.963935 +vt 0.085729 0.930852 +vt 0.714219 0.524745 +vt 0.747302 0.526874 +vt 0.714219 0.526874 +vt 0.020742 0.931104 +vt 0.018613 0.964186 +vt 0.018613 0.931104 +vt 0.551923 0.901930 +vt 0.549793 0.935013 +vt 0.549793 0.901930 +vt 0.461565 0.291956 +vt 0.435368 0.312058 +vt 0.434975 0.312450 +vt 0.414873 0.338648 +vt 0.414596 0.339129 +vt 0.401959 0.369636 +vt 0.401816 0.370172 +vt 0.397506 0.402911 +vt 0.397506 0.403466 +vt 0.401816 0.436205 +vt 0.401960 0.436741 +vt 0.414596 0.467249 +vt 0.414874 0.467729 +vt 0.434976 0.493927 +vt 0.435368 0.494319 +vt 0.461566 0.514421 +vt 0.462047 0.514699 +vt 0.492555 0.527335 +vt 0.493090 0.527479 +vt 0.525829 0.531789 +vt 0.526384 0.531789 +vt 0.559123 0.527479 +vt 0.559659 0.527335 +vt 0.590167 0.514698 +vt 0.225797 0.618625 +vt 0.221836 0.439403 +vt 0.225797 0.439403 +vt 0.619504 0.492633 +vt 0.831188 0.746127 +vt 0.807937 0.925350 +vt 0.807937 0.746127 +vt 0.192618 0.424408 +vt 0.586388 0.298776 +vt 0.221836 0.618625 +vt 0.192620 0.633620 +vt 0.773697 0.746127 +vt 0.796948 0.925350 +vt 0.773697 0.925350 +vt 0.926346 0.069867 +vt 0.949597 0.038335 +vt 0.949597 0.069867 +vt 0.949597 0.322126 +vt 0.926346 0.290593 +vt 0.949597 0.290593 +vt 0.926346 0.101399 +vt 0.949597 0.101399 +vt 0.926346 0.353658 +vt 0.949597 0.353658 +vt 0.949597 0.132932 +vt 0.926346 0.385190 +vt 0.949597 0.385190 +vt 0.949597 0.164464 +vt 0.926346 0.132932 +vt 0.926346 0.416723 +vt 0.949597 0.416723 +vt 0.949597 0.195996 +vt 0.926346 0.164464 +vt 0.949597 0.448255 +vt 0.926346 0.511320 +vt 0.949597 0.479788 +vt 0.949597 0.511320 +vt 0.949597 0.227529 +vt 0.926346 0.195996 +vt 0.926346 0.479788 +vt 0.926346 0.542852 +vt 0.949597 0.542852 +vt 0.926346 0.259061 +vt 0.949597 0.259061 +vt 0.926346 0.038335 +vt 0.949597 0.005495 +vt 0.926346 0.575693 +vt 0.949597 0.575693 +vt 0.622626 0.313752 +vt 0.622626 0.492642 +vt 0.635215 0.820032 +vt 0.632634 0.967885 +vt 0.632634 0.820018 +vt 0.815877 0.291846 +vt 0.877345 0.278740 +vt 0.877345 0.290914 +vt 0.640163 0.633315 +vt 0.641239 0.601777 +vt 0.641240 0.633315 +vt 0.860085 0.456842 +vt 0.877344 0.486978 +vt 0.845090 0.486059 +vt 0.579768 0.737922 +vt 0.641240 0.751029 +vt 0.550636 0.749989 +vt 0.872152 0.365186 +vt 0.877345 0.335517 +vt 0.877345 0.364908 +vt 0.623981 0.572926 +vt 0.641239 0.542793 +vt 0.641239 0.572474 +vt 0.634692 0.396460 +vt 0.633615 0.428001 +vt 0.633615 0.396460 +vt 0.636047 0.664578 +vt 0.641240 0.694248 +vt 0.623980 0.693710 +vt 0.650875 0.456855 +vt 0.633615 0.486991 +vt 0.633615 0.457307 +vt 0.398583 0.633314 +vt 0.397506 0.601771 +vt 0.402699 0.602049 +vt 0.650876 0.336062 +vt 0.633615 0.310283 +vt 0.670072 0.311044 +vt 0.414766 0.572916 +vt 0.397506 0.542778 +vt 0.429762 0.543697 +vt 0.786746 0.279780 +vt 0.755485 0.274588 +vt 0.414766 0.693709 +vt 0.397506 0.719487 +vt 0.397506 0.694248 +vt 0.695090 0.291847 +vt 0.633615 0.278740 +vt 0.724224 0.279780 +vt 0.519374 0.755181 +vt 0.519374 0.754105 +vt 0.860086 0.336056 +vt 0.877345 0.310279 +vt 0.458978 0.737922 +vt 0.397506 0.751029 +vt 0.397506 0.738854 +vt 0.638808 0.427723 +vt 0.915357 0.920578 +vt 0.894235 0.676845 +vt 0.915357 0.676845 +vt 0.894235 0.005495 +vt 0.915357 0.035178 +vt 0.894235 0.035178 +vt 0.915357 0.064484 +vt 0.894235 0.064484 +vt 0.915357 0.096025 +vt 0.894235 0.096025 +vt 0.894235 0.127566 +vt 0.915357 0.127566 +vt 0.915357 0.156958 +vt 0.894235 0.156958 +vt 0.915357 0.182197 +vt 0.894235 0.182197 +vt 0.915357 0.201564 +vt 0.894235 0.201564 +vt 0.915357 0.213739 +vt 0.894235 0.213739 +vt 0.915357 0.335675 +vt 0.894235 0.335675 +vt 0.915357 0.457612 +vt 0.894235 0.457612 +vt 0.915357 0.469787 +vt 0.894235 0.469787 +vt 0.915357 0.489153 +vt 0.894235 0.489153 +vt 0.915357 0.514393 +vt 0.894235 0.514393 +vt 0.915357 0.543784 +vt 0.894235 0.543784 +vt 0.915357 0.575326 +vt 0.894235 0.575326 +vt 0.894235 0.606867 +vt 0.915357 0.606867 +vt 0.915357 0.636173 +vt 0.894235 0.636173 +vt 0.894235 0.665856 +vt 0.915357 0.665856 +vt 0.488111 0.749989 +vt 0.876268 0.396447 +vt 0.877345 0.427988 +vt 0.872152 0.427710 +vt 0.397506 0.664856 +vt 0.397506 0.633314 +vt 0.755485 0.275664 +vt 0.433962 0.718726 +vt 0.633615 0.364917 +vt 0.638808 0.365195 +vt 0.633615 0.290915 +vt 0.604785 0.718726 +vt 0.641240 0.738854 +vt 0.641240 0.664857 +vt 0.840892 0.311041 +vt 0.760850 0.958917 +vt 0.762194 0.823957 +vt 0.762194 0.969333 +vt 0.877345 0.396447 +vt 0.402699 0.664577 +vt 0.990032 0.493759 +vt 0.992233 0.561870 +vt 0.990889 0.551453 +vt 0.636047 0.602055 +vt 0.633615 0.335523 +vt 0.397506 0.572463 +vt 0.877345 0.457294 +vt 0.641240 0.719488 +vt 0.462046 0.291678 +vt 0.493090 0.278898 +vt 0.526383 0.274588 +vt 0.559658 0.279041 +vt 0.005495 0.931104 +vt 0.007624 0.964186 +vt 0.005495 0.964186 +vt 0.198058 0.922286 +vt 0.200187 0.955369 +vt 0.198058 0.955369 +vt 0.536675 0.901930 +vt 0.538804 0.935013 +vt 0.536675 0.935013 +vt 0.742779 0.252092 +vt 0.709696 0.254221 +vt 0.709696 0.252092 +vt 0.753769 0.254221 +vt 0.786851 0.252092 +vt 0.786851 0.254221 +vt 0.072611 0.930852 +vt 0.074740 0.963935 +vt 0.072611 0.963935 +vt 0.187069 0.955369 +vt 0.184940 0.922286 +vt 0.187069 0.922286 +vt 0.960586 0.538006 +vt 0.962716 0.571089 +vt 0.960586 0.571089 +vt 0.341384 0.897681 +vt 0.343513 0.930765 +vt 0.341384 0.930765 +vt 0.871547 0.531064 +vt 0.869418 0.497980 +vt 0.871547 0.497980 +vt 0.328265 0.897681 +vt 0.330395 0.930765 +vt 0.328265 0.930765 +vt 0.741558 0.930395 +vt 0.743688 0.963478 +vt 0.741558 0.963478 +vt 0.620683 0.494401 +vt 0.590532 0.514503 +vt 0.620683 0.311975 +vt 0.223103 0.324116 +vt 0.221951 0.074040 +vt 0.190475 0.078944 +vt 0.191904 0.319517 +vt 0.162864 0.306928 +vt 0.161326 0.091754 +vt 0.136494 0.111633 +vt 0.137910 0.287105 +vt 0.118657 0.261353 +vt 0.117599 0.137327 +vt 0.105823 0.167232 +vt 0.106317 0.231450 +vt 0.065640 0.012427 +vt 0.651413 0.263598 +vt 0.552691 0.259238 +vt 0.586679 0.255595 +vt 0.618394 0.243259 +vt 0.586883 0.013251 +vt 0.552820 0.009503 +vt 0.618445 0.025671 +vt 0.386516 0.328100 +vt 0.257044 0.320347 +vt 0.288698 0.307876 +vt 0.256415 0.077528 +vt 0.288704 0.089685 +vt 0.317917 0.290484 +vt 0.397506 0.010132 +vt 0.521402 0.014143 +vt 0.521401 0.254494 +vt 0.492084 0.026804 +vt 0.466891 0.046640 +vt 0.492220 0.241702 +vt 0.467071 0.221661 +vt 0.447526 0.072318 +vt 0.435314 0.102161 +vt 0.447526 0.196031 +vt 0.132225 0.649804 +vt 0.405542 0.403189 +vt 0.046814 0.614426 +vt 0.526107 0.523753 +vt 0.586389 0.507600 +vt 0.358254 0.972483 +vt 0.358254 0.402285 +vt 0.358254 0.908110 +vt 0.358254 0.845046 +vt 0.358254 0.529722 +vt 0.358254 0.466657 +vt 0.071828 0.424409 +vt 0.698707 0.254221 +vt 0.526106 0.282624 +vt 0.106043 0.933725 +vt 0.087859 0.963935 +vt 0.747302 0.524745 +vt 0.020742 0.964186 +vt 0.551923 0.935013 +vt 0.831188 0.925350 +vt 0.796948 0.746127 +vt 0.926346 0.322126 +vt 0.926346 0.448255 +vt 0.926346 0.227529 +vt 0.926346 0.005495 +vt 0.635215 0.967900 +vt 0.608988 0.543712 +vt 0.665870 0.486072 +vt 0.894235 0.920578 +vt 0.915357 0.005495 +vt 0.759993 0.901223 +vt 0.992233 0.416493 +vt 0.492554 0.279041 +vt 0.525828 0.274588 +vt 0.559122 0.278898 +vt 0.590166 0.291678 +vt 0.007624 0.931104 +vt 0.200187 0.922286 +vt 0.538804 0.901930 +vt 0.742779 0.254221 +vt 0.753769 0.252092 +vt 0.074740 0.930852 +vt 0.184940 0.955369 +vt 0.962716 0.538006 +vt 0.343513 0.897681 +vt 0.869418 0.531064 +vt 0.330395 0.897681 +vt 0.743688 0.930395 +vt 0.590532 0.291873 +vn -1.0000 -0.0000 -0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -0.9659 -0.2588 +vn 0.0000 0.4566 0.8897 +vn 0.0000 0.4200 0.9075 +vn -0.0000 0.4200 -0.9075 +vn -0.0000 0.4566 -0.8897 +vn 0.0000 -0.8660 -0.5000 +vn 0.0000 0.2588 0.9659 +vn -0.0000 -0.2588 0.9659 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -0.5000 0.8660 +vn 0.0000 -0.5000 -0.8660 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 -0.2588 -0.9659 +vn 0.0000 -0.8660 0.5000 +vn 0.0000 -0.9659 0.2588 +vn -0.0000 0.2588 -0.9659 +vn 0.0000 -0.5547 -0.8320 +vn 0.0000 -0.4710 -0.8822 +vn 0.0000 -0.4710 0.8822 +vn 0.0000 -0.5547 0.8320 +vn 0.0000 0.5000 0.8660 +vn 0.0000 0.7071 0.7071 +vn 0.0000 0.8660 0.5000 +vn 0.0000 0.9659 0.2588 +vn 0.0000 0.9659 -0.2588 +vn 0.0000 0.8660 -0.5000 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 0.5000 -0.8660 +vn 0.0000 -0.9994 0.0341 +vn 0.0000 -0.9994 -0.0341 +s 1 +f 2/1/1 4/2/1 30/3/1 +f 4/2/2 7/4/2 3/5/2 +f 21/6/3 25/7/3 5/8/3 +f 6/9/4 1/10/4 5/11/4 +f 7/12/5 1/10/5 3/5/5 +f 4/2/6 6/13/6 8/14/6 +f 22/15/1 3/5/1 1/10/1 +f 29/16/3 27/17/3 8/18/3 +f 59/19/1 98/20/1 60/21/1 +f 110/22/3 73/23/3 74/24/3 +f 96/25/1 59/19/1 58/26/1 +f 109/27/3 72/28/3 73/23/3 +f 95/29/1 58/26/1 57/30/1 +f 72/28/3 107/31/3 71/32/3 +f 56/33/1 95/29/1 57/30/1 +f 107/31/3 70/34/3 71/32/3 +f 66/35/3 118/36/3 84/37/3 +f 93/38/1 56/33/1 55/39/1 +f 106/40/3 69/41/3 70/34/3 +f 118/36/3 83/42/3 84/37/3 +f 92/43/1 55/39/1 54/44/1 +f 105/45/3 68/46/3 69/41/3 +f 91/47/1 54/44/1 53/48/1 +f 104/49/3 67/50/3 68/46/3 +f 122/51/3 82/52/3 81/53/3 +f 108/54/5 130/55/7 127/56/5 +f 123/57/8 117/58/9 132/59/9 +f 116/60/10 126/61/11 133/62/10 +f 109/63/7 136/64/12 130/55/7 +f 117/58/9 138/65/13 132/59/9 +f 103/66/4 142/67/14 139/68/4 +f 110/69/12 144/70/15 136/64/12 +f 138/65/13 103/66/4 139/68/4 +f 142/67/14 104/71/16 146/72/16 +f 111/73/15 148/74/17 144/70/15 +f 146/72/16 105/75/18 150/76/18 +f 112/77/17 152/78/19 148/74/17 +f 105/75/18 154/79/20 150/76/18 +f 152/78/19 114/80/2 156/81/2 +f 106/82/20 158/83/21 154/79/20 +f 114/80/2 160/84/22 156/81/2 +f 107/85/21 127/56/5 158/83/21 +f 160/84/22 116/60/10 133/62/10 +f 111/86/3 74/24/3 75/87/3 +f 98/20/1 61/88/1 60/21/1 +f 86/89/1 48/90/1 47/91/1 +f 112/92/3 75/87/3 76/93/3 +f 85/94/1 49/95/1 48/90/1 +f 77/96/3 112/92/3 76/93/3 +f 162/97/23 64/98/24 236/99/24 +f 49/95/1 88/100/1 50/101/1 +f 78/102/3 113/103/3 77/96/3 +f 64/104/1 101/105/1 65/106/1 +f 50/101/1 89/107/1 51/108/1 +f 115/109/3 78/102/3 79/110/3 +f 65/106/1 86/89/1 47/91/1 +f 89/107/1 52/111/1 51/108/1 +f 80/112/3 115/109/3 79/110/3 +f 102/113/3 66/35/3 67/50/3 +f 90/114/1 53/48/1 52/111/1 +f 220/115/25 121/116/26 163/117/26 +f 60/118/14 220/119/25 221/120/14 +f 59/121/4 221/122/14 222/123/4 +f 58/124/13 222/125/4 223/126/13 +f 57/127/27 223/128/13 224/129/27 +f 207/130/27 75/87/28 208/131/28 +f 208/132/28 74/24/29 209/133/29 +f 209/134/29 73/23/30 210/135/30 +f 210/136/30 72/28/6 211/137/6 +f 211/138/6 71/32/31 212/139/31 +f 212/140/31 70/34/32 213/141/32 +f 213/142/32 69/41/33 214/143/33 +f 214/144/33 68/46/34 215/145/34 +f 215/146/34 67/50/22 216/147/22 +f 216/148/22 66/35/2 217/149/2 +f 217/150/2 84/37/19 218/151/19 +f 218/152/19 83/42/24 219/153/24 +f 121/154/1 63/155/1 120/156/1 +f 83/42/3 82/52/3 119/157/3 +f 125/158/6 63/159/6 62/160/6 +f 64/104/1 63/155/1 100/161/1 +f 80/112/3 81/53/3 116/162/3 +f 62/163/1 61/88/1 99/164/1 +f 126/165/6 82/166/6 123/167/6 +f 159/168/22 99/169/10 98/170/22 +f 90/171/21 128/172/5 91/173/5 +f 155/174/2 98/170/22 97/175/2 +f 153/176/20 90/171/21 89/177/20 +f 96/178/19 155/174/2 97/175/2 +f 149/179/18 89/177/20 88/180/18 +f 95/181/17 151/182/19 96/178/19 +f 145/183/16 88/180/18 87/184/16 +f 94/185/15 147/186/17 95/181/17 +f 85/187/14 145/183/16 87/184/16 +f 137/188/13 86/189/4 101/190/13 +f 93/191/12 143/192/15 94/185/15 +f 140/193/4 85/187/14 86/189/4 +f 131/194/9 101/190/13 100/195/9 +f 129/196/7 93/191/12 92/197/7 +f 134/198/10 62/199/11 99/169/10 +f 124/200/8 100/195/9 63/201/8 +f 128/172/5 92/197/7 91/173/5 +f 119/157/5 164/202/5 161/203/5 +f 162/204/5 121/205/5 120/206/5 +f 154/207/1 175/208/1 180/209/1 +f 140/210/3 193/211/3 194/212/3 +f 132/213/1 168/214/1 123/215/1 +f 153/216/3 173/217/3 157/218/3 +f 142/219/1 188/220/1 192/221/1 +f 131/222/3 166/223/3 199/224/3 +f 156/225/1 171/226/1 178/227/1 +f 141/228/3 187/229/3 145/230/3 +f 133/231/1 167/232/1 172/233/1 +f 155/234/3 169/235/3 159/236/3 +f 148/237/1 190/238/1 144/239/1 +f 134/240/3 165/241/3 125/242/3 +f 158/243/1 176/244/1 175/208/1 +f 147/245/3 189/246/3 185/247/3 +f 136/248/1 202/249/1 130/250/1 +f 157/218/3 174/251/3 128/252/3 +f 146/253/1 184/254/1 188/220/1 +f 135/255/3 201/256/3 197/257/3 +f 160/258/1 172/233/1 171/226/1 +f 165/259/6 168/260/6 166/261/6 +f 166/262/4 200/263/4 199/264/4 +f 199/264/4 195/265/4 193/266/4 +f 193/266/4 196/267/4 194/268/4 +f 191/269/4 196/267/4 192/270/4 +f 191/269/4 188/271/4 187/272/4 +f 187/272/4 184/273/4 183/274/4 +f 183/274/4 180/275/4 179/276/4 +f 179/276/4 175/277/4 173/278/4 +f 173/278/35 176/279/5 174/280/5 +f 174/280/5 202/281/36 201/282/36 +f 201/282/2 198/283/2 197/284/2 +f 197/284/2 190/285/2 189/286/2 +f 189/286/2 186/287/2 185/288/2 +f 185/288/2 182/289/2 181/290/2 +f 181/290/2 178/291/2 177/292/2 +f 169/293/2 178/291/2 171/294/2 +f 169/293/2 172/295/2 170/296/2 +f 165/297/2 172/295/2 167/298/2 +f 129/299/3 174/251/3 201/256/3 +f 139/300/1 195/301/1 138/302/1 +f 155/234/3 181/303/3 177/304/3 +f 130/250/1 176/244/1 127/305/1 +f 143/306/3 197/257/3 189/246/3 +f 156/225/1 182/307/1 152/308/1 +f 144/239/1 198/309/1 136/248/1 +f 149/310/3 179/311/3 153/216/3 +f 140/210/3 191/312/3 141/228/3 +f 150/313/1 180/209/1 184/254/1 +f 124/314/3 165/315/3 166/316/3 +f 139/300/1 192/221/1 196/317/1 +f 151/318/3 185/247/3 181/303/3 +f 123/319/1 167/320/1 126/321/1 +f 137/322/3 199/224/3 193/211/3 +f 152/308/1 186/323/1 148/237/1 +f 159/236/3 170/324/3 134/240/3 +f 138/302/1 200/325/1 132/213/1 +f 145/230/3 183/326/3 149/310/3 +f 207/327/27 77/96/13 76/93/27 +f 206/328/13 78/102/4 77/96/13 +f 205/329/4 79/110/14 78/102/4 +f 204/330/14 80/112/25 79/110/14 +f 57/331/27 225/332/28 56/333/28 +f 56/334/28 226/335/29 55/336/29 +f 55/337/29 227/338/30 54/339/30 +f 54/340/30 228/341/6 53/342/6 +f 53/343/6 229/344/31 52/345/31 +f 52/346/31 230/347/32 51/348/32 +f 51/349/32 231/350/33 50/351/33 +f 50/352/33 232/353/34 49/354/34 +f 49/355/34 233/356/22 48/357/22 +f 48/358/22 234/359/2 47/360/2 +f 47/361/2 235/362/19 65/363/19 +f 65/364/19 236/365/24 64/366/24 +f 83/42/24 161/367/23 219/368/24 +f 80/112/25 164/369/26 122/51/26 +f 42/370/1 1/10/1 2/1/1 +f 4/2/1 3/5/1 14/371/1 +f 4/2/1 14/371/1 10/372/1 +f 40/373/1 42/370/1 2/1/1 +f 38/374/1 40/373/1 2/1/1 +f 4/2/1 10/372/1 12/375/1 +f 4/2/1 12/375/1 20/376/1 +f 36/377/1 38/374/1 2/1/1 +f 34/378/1 36/377/1 2/1/1 +f 4/2/1 20/376/1 24/379/1 +f 4/2/1 24/379/1 28/380/1 +f 32/381/1 34/378/1 2/1/1 +f 4/2/1 28/380/1 30/3/1 +f 30/3/1 32/381/1 2/1/1 +f 4/2/2 8/382/2 7/4/2 +f 7/383/3 13/384/3 15/385/3 +f 7/383/3 15/385/3 17/386/3 +f 43/387/3 41/388/3 5/8/3 +f 45/389/3 43/387/3 5/8/3 +f 7/383/3 17/386/3 21/6/3 +f 25/7/3 45/389/3 5/8/3 +f 7/383/3 21/6/3 5/8/3 +f 6/9/4 2/1/4 1/10/4 +f 7/12/5 5/390/5 1/10/5 +f 4/2/6 2/1/6 6/13/6 +f 1/10/1 42/370/1 44/391/1 +f 1/10/1 44/391/1 46/392/1 +f 16/393/1 14/371/1 3/5/1 +f 18/394/1 16/393/1 3/5/1 +f 1/10/1 46/392/1 26/395/1 +f 22/15/1 18/394/1 3/5/1 +f 1/10/1 26/395/1 22/15/1 +f 6/396/3 5/8/3 41/388/3 +f 6/396/3 41/388/3 39/397/3 +f 13/384/3 7/383/3 8/18/3 +f 9/398/3 13/384/3 8/18/3 +f 6/396/3 39/397/3 37/399/3 +f 6/396/3 37/399/3 35/400/3 +f 11/401/3 9/398/3 8/18/3 +f 19/402/3 11/401/3 8/18/3 +f 6/396/3 35/400/3 33/403/3 +f 6/396/3 33/403/3 31/404/3 +f 23/405/3 19/402/3 8/18/3 +f 27/17/3 23/405/3 8/18/3 +f 8/18/3 6/396/3 29/16/3 +f 6/396/3 31/404/3 29/16/3 +f 59/19/1 97/406/1 98/20/1 +f 110/22/3 109/27/3 73/23/3 +f 96/25/1 97/406/1 59/19/1 +f 109/27/3 108/407/3 72/28/3 +f 95/29/1 96/25/1 58/26/1 +f 72/28/3 108/407/3 107/31/3 +f 56/33/1 94/408/1 95/29/1 +f 107/31/3 106/40/3 70/34/3 +f 66/35/3 103/409/3 118/36/3 +f 93/38/1 94/408/1 56/33/1 +f 106/40/3 105/45/3 69/41/3 +f 118/36/3 117/410/3 83/42/3 +f 92/43/1 93/38/1 55/39/1 +f 105/45/3 104/49/3 68/46/3 +f 91/47/1 92/43/1 54/44/1 +f 104/49/3 102/113/3 67/50/3 +f 122/51/3 119/157/3 82/52/3 +f 108/54/5 109/63/7 130/55/7 +f 123/57/8 82/411/8 117/58/9 +f 116/60/10 81/412/11 126/61/11 +f 109/63/7 110/69/12 136/64/12 +f 117/58/9 118/413/13 138/65/13 +f 103/66/4 102/414/14 142/67/14 +f 110/69/12 111/73/15 144/70/15 +f 138/65/13 118/413/13 103/66/4 +f 142/67/14 102/414/14 104/71/16 +f 111/73/15 112/77/17 148/74/17 +f 146/72/16 104/71/16 105/75/18 +f 112/77/17 113/415/19 152/78/19 +f 105/75/18 106/82/20 154/79/20 +f 152/78/19 113/415/19 114/80/2 +f 106/82/20 107/85/21 158/83/21 +f 114/80/2 115/416/22 160/84/22 +f 107/85/21 108/54/5 127/56/5 +f 160/84/22 115/416/22 116/60/10 +f 111/86/3 110/22/3 74/24/3 +f 98/20/1 99/164/1 61/88/1 +f 86/89/1 85/94/1 48/90/1 +f 112/92/3 111/86/3 75/87/3 +f 85/94/1 87/417/1 49/95/1 +f 77/96/3 113/103/3 112/92/3 +f 162/97/23 120/418/23 64/98/24 +f 49/95/1 87/417/1 88/100/1 +f 78/102/3 114/419/3 113/103/3 +f 64/104/1 100/161/1 101/105/1 +f 50/101/1 88/100/1 89/107/1 +f 115/109/3 114/419/3 78/102/3 +f 65/106/1 101/105/1 86/89/1 +f 89/107/1 90/114/1 52/111/1 +f 80/112/3 116/162/3 115/109/3 +f 102/113/3 103/409/3 66/35/3 +f 90/114/1 91/47/1 53/48/1 +f 220/115/25 61/420/25 121/116/26 +f 60/118/14 61/421/25 220/119/25 +f 59/121/4 60/422/14 221/122/14 +f 58/124/13 59/423/4 222/125/4 +f 57/127/27 58/424/13 223/128/13 +f 207/130/27 76/93/27 75/87/28 +f 208/132/28 75/87/28 74/24/29 +f 209/134/29 74/24/29 73/23/30 +f 210/136/30 73/23/30 72/28/6 +f 211/138/6 72/28/6 71/32/31 +f 212/140/31 71/32/31 70/34/32 +f 213/142/32 70/34/32 69/41/33 +f 214/144/33 69/41/33 68/46/34 +f 215/146/34 68/46/34 67/50/22 +f 216/148/22 67/50/22 66/35/2 +f 217/150/2 66/35/2 84/37/19 +f 218/152/19 84/37/19 83/42/24 +f 121/154/1 62/163/1 63/155/1 +f 83/42/3 117/410/3 82/52/3 +f 125/158/6 124/425/6 63/159/6 +f 64/104/1 120/156/1 63/155/1 +f 80/112/3 122/51/3 81/53/3 +f 62/163/1 121/154/1 61/88/1 +f 126/165/6 81/426/6 82/166/6 +f 159/168/22 134/198/10 99/169/10 +f 90/171/21 157/427/21 128/172/5 +f 155/174/2 159/168/22 98/170/22 +f 153/176/20 157/427/21 90/171/21 +f 96/178/19 151/182/19 155/174/2 +f 149/179/18 153/176/20 89/177/20 +f 95/181/17 147/186/17 151/182/19 +f 145/183/16 149/179/18 88/180/18 +f 94/185/15 143/192/15 147/186/17 +f 85/187/14 141/428/14 145/183/16 +f 137/188/13 140/193/4 86/189/4 +f 93/191/12 135/429/12 143/192/15 +f 140/193/4 141/428/14 85/187/14 +f 131/194/9 137/188/13 101/190/13 +f 129/196/7 135/429/12 93/191/12 +f 134/198/10 125/430/11 62/199/11 +f 124/200/8 131/194/9 100/195/9 +f 128/172/5 129/196/7 92/197/7 +f 119/157/5 122/51/5 164/202/5 +f 162/204/5 163/431/5 121/205/5 +f 154/207/1 158/243/1 175/208/1 +f 140/210/3 137/322/3 193/211/3 +f 132/213/1 200/325/1 168/214/1 +f 153/216/3 179/311/3 173/217/3 +f 142/219/1 146/253/1 188/220/1 +f 131/222/3 124/432/3 166/223/3 +f 156/225/1 160/258/1 171/226/1 +f 141/228/3 191/312/3 187/229/3 +f 133/231/1 126/433/1 167/232/1 +f 155/234/3 177/304/3 169/235/3 +f 148/237/1 186/323/1 190/238/1 +f 134/240/3 170/324/3 165/241/3 +f 158/243/1 127/305/1 176/244/1 +f 147/245/3 143/306/3 189/246/3 +f 136/248/1 198/309/1 202/249/1 +f 157/218/3 173/217/3 174/251/3 +f 146/253/1 150/313/1 184/254/1 +f 135/255/3 129/299/3 201/256/3 +f 160/258/1 133/231/1 172/233/1 +f 165/259/6 167/434/6 168/260/6 +f 166/262/4 168/435/4 200/263/4 +f 199/264/4 200/263/4 195/265/4 +f 193/266/4 195/265/4 196/267/4 +f 191/269/4 194/268/4 196/267/4 +f 191/269/4 192/270/4 188/271/4 +f 187/272/4 188/271/4 184/273/4 +f 183/274/4 184/273/4 180/275/4 +f 179/276/4 180/275/4 175/277/4 +f 173/278/35 175/277/35 176/279/5 +f 174/280/5 176/279/5 202/281/36 +f 201/282/2 202/281/2 198/283/2 +f 197/284/2 198/283/2 190/285/2 +f 189/286/2 190/285/2 186/287/2 +f 185/288/2 186/287/2 182/289/2 +f 181/290/2 182/289/2 178/291/2 +f 169/293/2 177/292/2 178/291/2 +f 169/293/2 171/294/2 172/295/2 +f 165/297/2 170/296/2 172/295/2 +f 129/299/3 128/252/3 174/251/3 +f 139/300/1 196/317/1 195/301/1 +f 155/234/3 151/318/3 181/303/3 +f 130/250/1 202/249/1 176/244/1 +f 143/306/3 135/255/3 197/257/3 +f 156/225/1 178/227/1 182/307/1 +f 144/239/1 190/238/1 198/309/1 +f 149/310/3 183/326/3 179/311/3 +f 140/210/3 194/212/3 191/312/3 +f 150/313/1 154/207/1 180/209/1 +f 124/314/3 125/436/3 165/315/3 +f 139/300/1 142/219/1 192/221/1 +f 151/318/3 147/245/3 185/247/3 +f 123/319/1 168/437/1 167/320/1 +f 137/322/3 131/222/3 199/224/3 +f 152/308/1 182/307/1 186/323/1 +f 159/236/3 169/235/3 170/324/3 +f 138/302/1 195/301/1 200/325/1 +f 145/230/3 187/229/3 183/326/3 +f 207/327/27 206/438/13 77/96/13 +f 206/328/13 205/439/4 78/102/4 +f 205/329/4 204/440/14 79/110/14 +f 204/330/14 203/441/25 80/112/25 +f 57/331/27 224/442/27 225/332/28 +f 56/334/28 225/443/28 226/335/29 +f 55/337/29 226/444/29 227/338/30 +f 54/340/30 227/445/30 228/341/6 +f 53/343/6 228/446/6 229/344/31 +f 52/346/31 229/447/31 230/347/32 +f 51/349/32 230/448/32 231/350/33 +f 50/352/33 231/449/33 232/353/34 +f 49/355/34 232/450/34 233/356/22 +f 48/358/22 233/451/22 234/359/2 +f 47/361/2 234/452/2 235/362/19 +f 65/364/19 235/453/19 236/365/24 +f 83/42/24 119/157/23 161/367/23 +f 80/112/25 203/454/25 164/369/26 +o doorRight +v 0.166667 0.183059 -1.291355 +v 0.166667 0.574264 -1.541358 +v 0.166667 1.014811 -1.723840 +v 0.166667 1.476714 -1.784650 +v 0.166667 1.938615 -1.723840 +v 0.166667 2.369039 -1.545552 +v 0.166667 2.738652 -1.261938 +v 0.166667 3.022266 -0.892325 +v 0.166667 3.200554 -0.461901 +v 0.168084 0.047997 -1.426236 +v 0.166667 0.183060 -0.183059 +v 0.168084 3.345687 -0.497568 +v 0.168084 3.153632 -0.961228 +v 0.166667 3.245492 -0.183060 +v 0.168084 2.848119 -1.359382 +v 0.168084 2.449965 -1.664895 +v 0.168084 1.986305 -1.856950 +v 0.168084 0.991167 -1.856950 +v 0.168084 1.488737 -1.922456 +v 0.168084 0.527508 -1.664895 +v 0.107558 0.183060 -0.183059 +v 0.107558 3.245492 -0.183060 +v 0.107558 0.183059 -1.291355 +v 0.107558 3.200554 -0.461901 +v 0.107558 3.022266 -0.892325 +v 0.107558 2.738652 -1.261938 +v 0.107558 2.369039 -1.545552 +v 0.107558 1.938615 -1.723840 +v 0.107558 1.014811 -1.723840 +v 0.107558 1.476714 -1.784650 +v 0.107558 0.574264 -1.541358 +v 0.166667 0.047998 -0.100000 +v 0.166667 3.039069 -0.100000 +v 0.166667 2.708339 -0.100000 +v 0.166667 2.377609 -0.100000 +v 0.166667 2.046879 -0.100000 +v 0.166667 1.716149 -0.100000 +v 0.166667 1.385420 -0.100000 +v 0.166667 1.054690 -0.100000 +v 0.166667 0.723960 -0.100000 +v 0.166667 0.393230 -0.100000 +v 0.116667 0.393230 0.100000 +v 0.166667 0.393230 0.050000 +v 0.166667 0.047998 0.050000 +v 0.116667 0.047998 0.100000 +v 0.116667 3.039069 0.100000 +v 0.166667 3.039069 0.050000 +v 0.166667 2.708339 0.050000 +v 0.116667 2.708339 0.100000 +v 0.116667 2.377609 0.100000 +v 0.166667 2.377609 0.050000 +v 0.166667 2.046879 0.050000 +v 0.116667 2.046879 0.100000 +v 0.116667 1.716149 0.100000 +v 0.166667 1.716149 0.050000 +v 0.166667 1.385420 0.050000 +v 0.116667 1.385420 0.100000 +v 0.116667 1.054690 0.100000 +v 0.166667 1.054690 0.050000 +v 0.166667 0.723960 0.050000 +v 0.116667 0.723960 0.100000 +v -0.166666 0.183059 -1.291355 +v -0.166666 0.574264 -1.541358 +v -0.166666 1.014811 -1.723840 +v -0.166666 1.476714 -1.784650 +v -0.166666 1.938615 -1.723840 +v -0.166666 2.369039 -1.545552 +v -0.166666 2.738652 -1.261938 +v -0.166666 3.022266 -0.892325 +v -0.166666 3.200554 -0.461901 +v -0.168083 0.047997 -1.426236 +v -0.166666 0.183060 -0.183059 +v -0.168083 3.345687 -0.497568 +v -0.168083 3.153632 -0.961228 +v -0.166666 3.245492 -0.183060 +v -0.168083 2.848119 -1.359382 +v -0.168083 2.449965 -1.664895 +v -0.168083 1.986305 -1.856950 +v -0.168083 0.991167 -1.856950 +v -0.168083 1.488737 -1.922456 +v -0.168083 0.527508 -1.664895 +v -0.107558 0.183060 -0.183059 +v -0.107557 3.245492 -0.183060 +v -0.107558 0.183059 -1.291355 +v -0.107557 3.200554 -0.461901 +v -0.107557 3.022266 -0.892325 +v -0.107557 2.738652 -1.261938 +v -0.107558 2.369039 -1.545552 +v -0.107558 1.938615 -1.723840 +v -0.107558 1.014811 -1.723840 +v -0.107557 1.476714 -1.784650 +v -0.107558 0.574264 -1.541358 +v -0.168083 3.397916 -0.100850 +v -0.166666 3.039069 -0.100000 +v -0.166666 2.708339 -0.100000 +v -0.166666 2.377609 -0.100000 +v -0.166666 2.046879 -0.100000 +v -0.166666 1.716149 -0.100000 +v -0.166666 1.385420 -0.100000 +v -0.166666 1.054690 -0.100000 +v -0.166666 0.723960 -0.100000 +v -0.166666 0.393230 -0.100000 +v -0.116666 0.393230 0.100000 +v -0.166666 0.393230 0.050000 +v -0.166666 0.047998 0.050000 +v -0.116666 0.047998 0.100000 +v -0.116666 3.039069 0.100000 +v -0.166666 3.039069 0.050000 +v -0.166666 2.708339 0.050000 +v -0.116666 2.708339 0.100000 +v -0.116666 2.377609 0.100000 +v -0.166666 2.377609 0.050000 +v -0.166666 2.046879 0.050000 +v -0.116666 2.046879 0.100000 +v -0.116666 1.716149 0.100000 +v -0.166666 1.716149 0.050000 +v -0.166666 1.385420 0.050000 +v -0.116666 1.385420 0.100000 +v -0.116666 1.054690 0.100000 +v -0.166666 1.054690 0.050000 +v -0.166666 0.723960 0.050000 +v -0.116666 0.723960 0.100000 +v 0.166667 0.047998 -0.183059 +v -0.166666 0.047998 -0.183059 +v 0.057399 2.947922 -0.628826 +v 0.057399 2.811188 -0.572189 +v 0.057399 2.754550 -0.435454 +v 0.057399 2.811188 -0.298720 +v 0.057399 2.947922 -0.242083 +v 0.057399 3.084657 -0.298720 +v 0.057399 3.141294 -0.435454 +v 0.057399 3.084657 -0.572189 +v 0.134706 2.811188 -0.572189 +v 0.134706 2.947922 -0.628826 +v 0.134706 2.754550 -0.435454 +v 0.134706 2.811188 -0.298720 +v 0.134706 2.947922 -0.242083 +v 0.134706 3.084657 -0.298720 +v 0.134706 3.141294 -0.435454 +v 0.134706 3.084657 -0.572189 +v -0.057398 2.947922 -0.628826 +v -0.057398 2.811188 -0.572189 +v -0.057398 2.754550 -0.435454 +v -0.057398 2.811188 -0.298720 +v -0.057398 2.947922 -0.242083 +v -0.057398 3.084657 -0.298720 +v -0.057398 3.141294 -0.435454 +v -0.057398 3.084657 -0.572189 +v -0.134705 2.811188 -0.572189 +v -0.134705 2.947922 -0.628826 +v -0.134705 2.754550 -0.435454 +v -0.134705 2.811188 -0.298720 +v -0.134705 2.947922 -0.242083 +v -0.134705 3.084657 -0.298720 +v -0.134705 3.141294 -0.435454 +v -0.134705 3.084657 -0.572189 +v 0.168084 3.397916 -0.100850 +v -0.166666 0.047998 -0.100000 +v 0.168084 3.397916 -0.184616 +v -0.168083 3.397916 -0.184616 +v 0.090995 0.595453 -0.114216 +v 0.090995 0.707781 -0.114216 +v 0.090995 0.595453 -1.616943 +v 0.090995 0.707781 -1.616943 +v 0.159155 0.609494 -0.114216 +v 0.159155 0.693740 -0.114216 +v 0.159155 0.609494 -1.616943 +v 0.159155 0.693740 -1.616943 +v 0.090995 1.262953 -0.114216 +v 0.090995 1.375282 -0.114216 +v 0.090995 1.262953 -1.841179 +v 0.090995 1.375282 -1.841179 +v 0.159155 1.276994 -0.114216 +v 0.159155 1.361241 -0.114216 +v 0.159155 1.276994 -1.841179 +v 0.159155 1.361241 -1.841179 +v 0.090995 1.930453 -0.114216 +v 0.090995 2.042782 -0.114216 +v 0.090995 1.930453 -1.753672 +v 0.090995 2.042782 -1.753672 +v 0.159155 1.944494 -0.114216 +v 0.159155 2.028741 -0.114216 +v 0.159155 1.944494 -1.753672 +v 0.159155 2.028741 -1.753672 +v 0.090995 2.597953 -0.114216 +v 0.090995 2.710282 -0.114216 +v 0.090995 2.597953 -1.403646 +v 0.090995 2.710282 -1.403646 +v 0.159155 2.611994 -0.114216 +v 0.159155 2.696241 -0.114216 +v 0.159155 2.611994 -1.403646 +v 0.159155 2.696241 -1.403646 +v -0.090994 0.595453 -0.114216 +v -0.090994 0.707781 -0.114216 +v -0.090994 0.595453 -1.616943 +v -0.090994 0.707781 -1.616943 +v -0.159155 0.609494 -0.114216 +v -0.159155 0.693740 -0.114216 +v -0.159155 0.609494 -1.616943 +v -0.159155 0.693740 -1.616943 +v -0.090994 1.262953 -0.114216 +v -0.090994 1.375282 -0.114216 +v -0.090994 1.262953 -1.841179 +v -0.090994 1.375282 -1.841179 +v -0.159155 1.276994 -0.114216 +v -0.159155 1.361241 -0.114216 +v -0.159155 1.276994 -1.841179 +v -0.159155 1.361241 -1.841179 +v -0.090994 1.930453 -0.114216 +v -0.090994 2.042782 -0.114216 +v -0.090994 1.930453 -1.753672 +v -0.090994 2.042782 -1.753672 +v -0.159155 1.944494 -0.114216 +v -0.159155 2.028741 -0.114216 +v -0.159155 1.944494 -1.753672 +v -0.159155 2.028741 -1.753672 +v -0.090994 2.597953 -0.114216 +v -0.090994 2.710282 -0.114216 +v -0.090994 2.597953 -1.403646 +v -0.090994 2.710282 -1.403646 +v -0.159155 2.611994 -0.114216 +v -0.159155 2.696241 -0.114216 +v -0.159155 2.611994 -1.403646 +v -0.159155 2.696241 -1.403646 +vt 0.633615 0.502400 +vt 0.743307 0.497980 +vt 0.743307 0.502401 +vt 0.739233 0.919405 +vt 0.744584 0.823957 +vt 0.744584 0.919405 +vt 0.749004 0.823957 +vt 0.749004 0.919405 +vt 0.734812 0.919405 +vt 0.739233 0.823957 +vt 0.772094 0.236682 +vt 0.662402 0.231331 +vt 0.772094 0.231331 +vt 0.662402 0.226911 +vt 0.772094 0.226911 +vt 0.772094 0.241103 +vt 0.662402 0.236682 +vt 0.005495 0.876659 +vt 0.109628 0.882010 +vt 0.005495 0.882010 +vt 0.109628 0.886430 +vt 0.005495 0.886430 +vt 0.005495 0.872239 +vt 0.109628 0.876659 +vt 0.261809 0.876921 +vt 0.343710 0.882272 +vt 0.261809 0.882272 +vt 0.343710 0.886692 +vt 0.261809 0.886692 +vt 0.261809 0.872501 +vt 0.343710 0.876921 +vt 0.633615 0.507752 +vt 0.743307 0.507752 +vt 0.633615 0.512172 +vt 0.743307 0.512172 +vt 0.719403 0.823957 +vt 0.723823 0.919405 +vt 0.719403 0.919405 +vt 0.709632 0.823957 +vt 0.714052 0.919405 +vt 0.709632 0.919405 +vt 0.714052 0.823957 +vt 0.858429 0.502401 +vt 0.754296 0.507752 +vt 0.754296 0.502401 +vt 0.418177 0.958691 +vt 0.413756 0.876791 +vt 0.418177 0.876791 +vt 0.427948 0.958691 +vt 0.423528 0.876791 +vt 0.427948 0.876791 +vt 0.423528 0.958691 +vt 0.858429 0.507752 +vt 0.754296 0.512172 +vt 0.858429 0.497980 +vt 0.754296 0.497980 +vt 0.633615 0.497980 +vt 0.734812 0.823957 +vt 0.662402 0.241102 +vt 0.109628 0.872239 +vt 0.343710 0.872501 +vt 0.723823 0.823957 +vt 0.413756 0.958691 +vt 0.858429 0.512172 +vt 0.993787 0.200005 +vt 0.990032 0.005495 +vt 0.993787 0.005495 +vt 0.960586 0.378465 +vt 0.964341 0.348873 +vt 0.964341 0.378465 +vt 0.960586 0.497528 +vt 0.964341 0.467240 +vt 0.964341 0.497528 +vt 0.947698 0.768695 +vt 0.926346 0.736818 +vt 0.947698 0.736818 +vt 0.676169 0.690209 +vt 0.656390 0.665899 +vt 0.664845 0.662870 +vt 0.717658 0.731702 +vt 0.687992 0.720640 +vt 0.694182 0.713686 +vt 0.762708 0.745883 +vt 0.742731 0.752246 +vt 0.744997 0.743027 +vt 0.347265 0.411967 +vt 0.327288 0.405604 +vt 0.347166 0.402285 +vt 0.329554 0.414822 +vt 0.297838 0.417804 +vt 0.302215 0.426148 +vt 0.272550 0.437210 +vt 0.278739 0.444163 +vt 0.253145 0.462500 +vt 0.260726 0.467640 +vt 0.240947 0.491951 +vt 0.245539 0.524318 +vt 0.240946 0.555159 +vt 0.236786 0.523555 +vt 0.249402 0.494980 +vt 0.249401 0.553657 +vt 0.253144 0.584609 +vt 0.276870 0.606488 +vt 0.260991 0.581640 +vt 0.038696 0.698926 +vt 0.062172 0.680912 +vt 0.107223 0.861250 +vt 0.960586 0.082619 +vt 0.964341 0.112210 +vt 0.960586 0.112210 +vt 0.960586 0.005495 +vt 0.964341 0.023434 +vt 0.960586 0.023434 +vt 0.960586 0.200985 +vt 0.964341 0.231273 +vt 0.960586 0.231273 +vt 0.964341 0.141802 +vt 0.960586 0.141802 +vt 0.964341 0.053027 +vt 0.960586 0.053026 +vt 0.964341 0.260761 +vt 0.960586 0.260761 +vt 0.960586 0.171394 +vt 0.964341 0.200985 +vt 0.964341 0.082619 +vt 0.599944 0.947302 +vt 0.596189 0.876906 +vt 0.599943 0.876906 +vt 0.964341 0.171394 +vt 0.993787 0.210994 +vt 0.990032 0.405504 +vt 0.990032 0.210994 +vt 0.685939 0.766554 +vt 0.664932 0.776082 +vt 0.664932 0.766554 +vt 0.261809 0.897681 +vt 0.284602 0.918944 +vt 0.261809 0.919034 +vt 0.173950 0.922286 +vt 0.152778 0.943293 +vt 0.152778 0.922286 +vt 0.141789 0.922286 +vt 0.120617 0.943293 +vt 0.120617 0.922286 +vt 0.504679 0.901930 +vt 0.525686 0.923102 +vt 0.504679 0.923102 +vt 0.752490 0.800264 +vt 0.742962 0.779257 +vt 0.752490 0.779257 +vt 0.564552 0.766170 +vt 0.543545 0.775698 +vt 0.543545 0.766170 +vt 0.621955 0.766170 +vt 0.600948 0.775698 +vt 0.600948 0.766170 +vt 0.507149 0.795010 +vt 0.485221 0.799501 +vt 0.485221 0.795010 +vt 0.664932 0.780573 +vt 0.685939 0.776082 +vt 0.685939 0.780573 +vt 0.600948 0.780189 +vt 0.621955 0.775698 +vt 0.621955 0.780189 +vt 0.738471 0.779257 +vt 0.742962 0.800264 +vt 0.738471 0.800264 +vt 0.543545 0.780189 +vt 0.564552 0.775698 +vt 0.564552 0.780189 +vt 0.485221 0.809029 +vt 0.507149 0.799501 +vt 0.507149 0.809029 +vt 0.723651 0.800264 +vt 0.564552 0.795010 +vt 0.485221 0.780189 +vt 0.519852 0.798186 +vt 0.510325 0.798186 +vt 0.493690 0.901930 +vt 0.472517 0.922937 +vt 0.472517 0.901930 +vt 0.530841 0.777013 +vt 0.540369 0.777013 +vt 0.741647 0.766554 +vt 0.741647 0.776082 +vt 0.588244 0.777013 +vt 0.597772 0.777013 +vt 0.652229 0.777397 +vt 0.661756 0.777397 +vt 0.947698 0.948231 +vt 0.926346 0.928078 +vt 0.947698 0.928078 +vt 0.668587 0.573240 +vt 0.692313 0.551361 +vt 0.676434 0.576210 +vt 0.960586 0.319281 +vt 0.964341 0.289690 +vt 0.964341 0.319281 +vt 0.713281 0.740046 +vt 0.668588 0.695350 +vt 0.660982 0.633531 +vt 0.656389 0.602691 +vt 0.664844 0.604193 +vt 0.118212 0.748902 +vt 0.122074 0.719563 +vt 0.219940 0.666733 +vt 0.960586 0.408057 +vt 0.964341 0.408057 +vt 0.960586 0.289690 +vt 0.964341 0.271750 +vt 0.964341 0.437648 +vt 0.960586 0.467240 +vt 0.664932 0.799885 +vt 0.685939 0.809412 +vt 0.664932 0.809412 +vt 0.960586 0.348873 +vt 0.614687 0.876906 +vt 0.610933 0.947302 +vt 0.610933 0.876906 +vt 0.960586 0.527017 +vt 0.964341 0.527017 +vt 0.543545 0.799501 +vt 0.564552 0.809029 +vt 0.543545 0.809029 +vt 0.719159 0.779257 +vt 0.709632 0.800264 +vt 0.709632 0.779257 +vt 0.600948 0.799501 +vt 0.621955 0.809029 +vt 0.600948 0.809029 +vt 0.685939 0.799885 +vt 0.664932 0.795393 +vt 0.685939 0.795393 +vt 0.485221 0.775698 +vt 0.507149 0.780189 +vt 0.621955 0.799501 +vt 0.600948 0.795010 +vt 0.621955 0.795010 +vt 0.564552 0.799501 +vt 0.543545 0.795010 +vt 0.719159 0.800264 +vt 0.723651 0.779257 +vt 0.507149 0.775698 +vt 0.485221 0.766170 +vt 0.507149 0.766170 +vt 0.762708 0.542778 +vt 0.762708 0.551357 +vt 0.347265 0.615072 +vt 0.268302 0.615067 +vt 0.472517 0.777013 +vt 0.577255 0.798186 +vt 0.720475 0.812968 +vt 0.634658 0.798186 +vt 0.698643 0.798569 +vt 0.926346 0.896201 +vt 0.947698 0.896201 +vt 0.926346 0.864325 +vt 0.947698 0.864325 +vt 0.926346 0.832448 +vt 0.947698 0.832448 +vt 0.926346 0.800571 +vt 0.947698 0.800571 +vt 0.926346 0.768695 +vt 0.652229 0.634295 +vt 0.926346 0.704941 +vt 0.947698 0.704941 +vt 0.926346 0.670920 +vt 0.947698 0.670920 +vt 0.947608 0.591958 +vt 0.926436 0.591957 +vt 0.947698 0.953551 +vt 0.926346 0.948231 +vt 0.443847 0.895592 +vt 0.438937 0.904993 +vt 0.438937 0.895592 +vt 0.443847 0.904993 +vt 0.438937 0.914393 +vt 0.443847 0.914393 +vt 0.438937 0.923794 +vt 0.443847 0.923794 +vt 0.438937 0.933194 +vt 0.443847 0.933194 +vt 0.438937 0.942595 +vt 0.443847 0.942595 +vt 0.438937 0.951995 +vt 0.443847 0.876791 +vt 0.438937 0.886191 +vt 0.438937 0.876791 +vt 0.443847 0.886191 +vt 0.454837 0.923794 +vt 0.459747 0.933194 +vt 0.454837 0.933194 +vt 0.454837 0.914393 +vt 0.459747 0.923794 +vt 0.454837 0.904993 +vt 0.459747 0.914393 +vt 0.454837 0.895592 +vt 0.459747 0.904993 +vt 0.454837 0.886191 +vt 0.459747 0.895592 +vt 0.454837 0.876791 +vt 0.459747 0.886191 +vt 0.454837 0.942595 +vt 0.459747 0.951995 +vt 0.454837 0.951995 +vt 0.459747 0.942595 +vt 0.025527 0.900082 +vt 0.029124 0.908767 +vt 0.004560 0.908767 +vt 0.863808 0.746128 +vt 0.858532 0.958902 +vt 0.858487 0.746127 +vt 0.842223 0.746128 +vt 0.847498 0.958897 +vt 0.842177 0.958898 +vt 0.042481 0.916865 +vt 0.038915 0.908257 +vt 0.063262 0.908257 +vt 0.990032 0.200005 +vt 0.762609 0.755565 +vt 0.107223 0.666733 +vt 0.089512 0.669587 +vt 0.036827 0.861250 +vt 0.020948 0.836401 +vt 0.009357 0.808419 +vt 0.005495 0.779081 +vt 0.009357 0.749742 +vt 0.020681 0.722403 +vt 0.964341 0.005495 +vt 0.596189 0.947302 +vt 0.993787 0.405504 +vt 0.284602 0.897771 +vt 0.173950 0.943293 +vt 0.141789 0.943293 +vt 0.525686 0.901930 +vt 0.510325 0.777013 +vt 0.519852 0.777013 +vt 0.493690 0.922937 +vt 0.540369 0.798186 +vt 0.530841 0.798186 +vt 0.720475 0.776082 +vt 0.720475 0.766554 +vt 0.597772 0.798186 +vt 0.588244 0.798186 +vt 0.661756 0.798569 +vt 0.652229 0.798569 +vt 0.683745 0.542783 +vt 0.149544 0.666733 +vt 0.133665 0.691581 +vt 0.219940 0.861250 +vt 0.202229 0.858395 +vt 0.174890 0.847071 +vt 0.151413 0.829057 +vt 0.133399 0.805580 +vt 0.122074 0.778241 +vt 0.960586 0.271750 +vt 0.960586 0.437648 +vt 0.614687 0.947302 +vt 0.347265 0.606493 +vt 0.482045 0.798186 +vt 0.472517 0.798186 +vt 0.482045 0.777013 +vt 0.567728 0.777013 +vt 0.577255 0.777013 +vt 0.567728 0.798186 +vt 0.741647 0.803440 +vt 0.741647 0.812968 +vt 0.720475 0.803440 +vt 0.625130 0.777013 +vt 0.634658 0.777013 +vt 0.625130 0.798186 +vt 0.689115 0.777397 +vt 0.698643 0.777397 +vt 0.689115 0.798569 +vt 0.926436 0.586682 +vt 0.947608 0.586682 +vt 0.926346 0.953551 +vt 0.443847 0.951995 +vt 0.459747 0.876791 +vt 0.025527 0.917452 +vt 0.016842 0.921049 +vt 0.008157 0.917452 +vt 0.008157 0.900082 +vt 0.016842 0.896485 +vt 0.863808 0.958903 +vt 0.847498 0.746127 +vt 0.042481 0.899649 +vt 0.051089 0.896083 +vt 0.059697 0.899649 +vt 0.059697 0.916865 +vt 0.051089 0.920430 +vn -0.2018 0.9794 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.2018 -0.9794 0.0000 +vn 0.2018 0.9794 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.2018 -0.9794 0.0000 +vn 0.0000 -0.0000 -1.0000 +vn 0.0000 -0.5000 0.8660 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.4624 0.8867 +vn 0.0000 0.2588 0.9659 +vn 0.0000 -0.2588 -0.9659 +vn -1.0000 -0.0049 0.0086 +vn -0.9999 -0.0027 0.0097 +vn -0.9999 -0.0025 0.0097 +vn -1.0000 -0.0083 0.0048 +vn -1.0000 -0.0069 0.0068 +vn -1.0000 -0.0068 0.0069 +vn -1.0000 -0.0093 0.0015 +vn -1.0000 -0.0091 0.0026 +vn 1.0000 -0.0093 0.0015 +vn 1.0000 -0.0091 0.0026 +vn 1.0000 -0.0083 0.0048 +vn 1.0000 -0.0069 0.0068 +vn 1.0000 -0.0068 0.0069 +vn 1.0000 -0.0050 0.0085 +vn 1.0000 -0.0049 0.0086 +vn 0.9999 -0.0027 0.0097 +vn 0.9999 0.0001 0.0103 +vn 0.9999 0.0027 0.0102 +vn 0.9999 -0.0001 0.0103 +vn 0.9999 -0.0025 0.0097 +vn 0.9999 0.0028 0.0101 +vn 0.9999 0.0047 0.0093 +vn 1.0000 0.0067 0.0038 +vn 0.9999 0.0051 0.0096 +vn 0.0000 -0.9873 0.1591 +vn 0.0000 -0.9621 0.2727 +vn 0.0000 -0.2588 0.9659 +vn 0.0000 -0.8660 0.5000 +vn 0.0000 0.5385 0.8426 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 -0.0000 +vn 0.0000 0.0024 1.0000 +vn 0.7071 0.0000 0.7071 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.9966 -0.0826 +vn 0.0000 0.9613 -0.2754 +vn -0.9999 0.0047 0.0093 +vn -1.0000 0.0067 0.0038 +vn -0.9999 0.0051 0.0096 +vn -1.0000 -0.0050 0.0085 +vn -0.9999 0.0001 0.0103 +vn -0.9999 0.0027 0.0102 +vn -0.9999 0.0028 0.0101 +vn -0.7071 0.0000 0.7071 +vn -1.0000 0.0007 0.0001 +vn 1.0000 0.0007 0.0001 +vn 1.0000 0.0058 0.0047 +vn 0.0000 0.8660 -0.5000 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 0.5000 -0.8660 +vn 0.0000 0.2588 -0.9659 +vn -0.9999 -0.0001 0.0103 +vn 0.0000 -0.4144 -0.9101 +vn 0.0000 -0.4456 -0.8952 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 0.7071 0.7071 +vn 1.0000 -0.0004 0.0000 +vn -1.0000 -0.0004 0.0000 +vn -1.0000 0.0058 0.0047 +s off +f 442/455/37 440/456/37 444/457/37 +f 404/458/38 401/459/38 403/460/38 +f 403/460/39 397/461/39 399/462/39 +f 400/463/40 402/464/40 404/458/40 +f 412/465/38 409/466/38 411/467/38 +f 411/467/39 405/468/39 407/469/39 +f 408/470/40 410/471/40 412/465/40 +f 420/472/38 417/473/38 419/474/38 +f 419/474/39 413/475/39 415/476/39 +f 416/477/40 418/478/40 420/472/40 +f 428/479/38 425/480/38 427/481/38 +f 427/481/39 421/482/39 423/483/39 +f 424/484/40 426/485/40 428/479/40 +f 441/486/41 444/457/41 443/487/41 +f 437/488/42 443/487/42 439/489/42 +f 434/490/37 432/491/37 436/492/37 +f 429/493/42 435/494/42 431/495/42 +f 433/496/41 436/492/41 435/494/41 +f 449/497/41 452/498/41 451/499/41 +f 458/500/37 456/501/37 460/502/37 +f 453/503/42 459/504/42 455/505/42 +f 457/506/41 460/502/41 459/504/41 +f 450/507/37 448/508/37 452/498/37 +f 445/509/42 451/499/42 447/510/42 +f 442/455/37 438/511/37 440/456/37 +f 404/458/38 402/464/38 401/459/38 +f 403/460/39 401/459/39 397/461/39 +f 400/463/40 398/512/40 402/464/40 +f 412/465/38 410/471/38 409/466/38 +f 411/467/39 409/466/39 405/468/39 +f 408/470/40 406/513/40 410/471/40 +f 420/472/38 418/478/38 417/473/38 +f 419/474/39 417/473/39 413/475/39 +f 416/477/40 414/514/40 418/478/40 +f 428/479/38 426/485/38 425/480/38 +f 427/481/39 425/480/39 421/482/39 +f 424/484/40 422/515/40 426/485/40 +f 441/486/41 442/455/41 444/457/41 +f 437/488/42 441/486/42 443/487/42 +f 434/490/37 430/516/37 432/491/37 +f 429/493/42 433/496/42 435/494/42 +f 433/496/41 434/490/41 436/492/41 +f 449/497/41 450/507/41 452/498/41 +f 458/500/37 454/517/37 456/501/37 +f 453/503/42 457/506/42 459/504/42 +f 457/506/41 458/500/41 460/502/41 +f 450/507/37 446/518/37 448/508/37 +f 445/509/42 449/497/42 451/499/42 +s 1 +f 247/519/43 258/520/43 250/521/43 +f 324/522/44 304/523/45 303/524/44 +f 328/525/46 300/526/47 299/527/46 +f 316/528/43 254/529/48 315/530/48 +f 303/531/49 314/532/50 302/533/51 +f 305/534/52 312/535/53 304/536/54 +f 311/537/55 309/538/56 306/539/56 +f 250/540/57 248/541/58 395/542/57 +f 245/543/58 249/544/59 248/541/58 +f 244/545/59 251/546/60 249/544/59 +f 243/547/61 252/548/62 251/546/60 +f 242/549/63 253/550/64 252/548/62 +f 240/551/65 254/552/66 255/553/67 +f 241/554/68 255/553/67 253/550/64 +f 239/555/69 256/556/70 254/552/66 +f 237/557/71 256/556/70 238/558/72 +f 262/559/38 261/560/38 257/561/38 +f 243/562/45 263/563/44 242/564/44 +f 250/565/73 260/566/74 245/567/74 +f 239/568/47 267/569/46 238/570/46 +f 242/564/44 264/571/75 241/572/75 +f 245/567/74 261/573/76 244/574/76 +f 238/570/46 259/575/77 237/576/77 +f 240/577/78 265/578/47 239/568/47 +f 244/574/76 262/579/45 243/562/45 +f 237/580/79 257/581/79 247/582/79 +f 241/572/75 266/583/78 240/577/78 +f 319/584/43 308/585/43 311/586/43 +f 269/587/38 284/588/38 270/589/38 +f 329/590/80 269/591/80 393/592/80 +f 331/593/78 271/594/78 270/595/78 +f 333/596/78 273/597/78 272/598/78 +f 335/599/78 275/600/78 274/601/78 +f 273/602/38 292/603/38 274/604/38 +f 275/605/38 296/606/38 276/607/38 +f 271/608/38 288/609/38 272/610/38 +f 281/611/81 279/612/81 278/613/81 +f 285/614/81 283/615/81 282/616/81 +f 289/617/81 287/618/81 286/619/81 +f 293/620/81 291/621/81 290/622/81 +f 297/623/81 295/624/81 294/625/81 +f 277/626/38 280/627/38 268/628/38 +f 351/629/78 293/620/78 290/622/78 +f 355/630/78 297/623/78 294/625/78 +f 339/631/78 281/611/78 278/613/78 +f 268/632/82 280/633/82 281/611/82 +f 337/634/78 277/635/78 276/636/78 +f 276/637/82 296/638/82 297/623/82 +f 274/639/82 292/640/82 293/620/82 +f 272/641/82 288/642/82 289/617/82 +f 270/643/82 284/644/82 285/614/82 +f 396/645/83 248/646/84 309/647/84 +f 317/648/85 298/649/86 299/650/87 +f 322/651/76 306/652/74 305/653/76 +f 306/539/56 310/654/52 305/534/52 +f 304/536/54 313/655/88 303/531/49 +f 301/656/89 315/657/90 300/658/91 +f 327/659/41 326/660/41 318/661/41 +f 300/658/91 317/648/85 299/650/87 +f 325/662/75 303/524/44 302/663/75 +f 321/664/74 311/665/73 306/652/74 +f 301/666/78 325/662/75 302/663/75 +f 326/667/47 301/666/78 300/526/47 +f 345/668/41 330/669/41 331/670/41 +f 323/671/45 305/653/76 304/523/45 +f 318/672/79 298/673/79 308/674/79 +f 320/675/77 299/527/46 298/676/77 +f 357/677/41 336/678/41 337/679/41 +f 353/680/41 334/681/41 335/682/41 +f 349/683/41 332/684/41 333/685/41 +f 344/686/92 346/687/92 343/688/92 +f 340/689/92 342/690/92 339/631/92 +f 348/691/92 350/692/92 347/693/92 +f 356/694/92 358/695/92 355/630/92 +f 352/696/92 354/697/92 351/629/92 +f 341/698/41 338/699/41 394/700/41 +f 298/649/86 360/701/93 308/702/41 +f 347/693/78 289/617/78 286/619/78 +f 237/557/71 359/703/94 246/704/95 +f 343/688/78 285/614/78 282/616/78 +f 339/631/79 278/613/79 338/705/79 +f 355/630/79 294/625/79 336/706/79 +f 351/629/79 290/622/79 334/707/79 +f 347/693/79 286/619/79 332/708/79 +f 343/688/79 282/616/79 330/709/79 +f 309/647/84 249/710/96 310/711/96 +f 310/711/96 251/712/97 312/713/97 +f 312/713/97 252/714/98 313/715/98 +f 313/715/98 253/716/99 314/717/99 +f 316/528/43 253/716/99 255/718/43 +f 302/533/51 316/719/100 301/656/89 +f 315/530/48 256/720/101 317/721/101 +f 317/721/101 246/722/102 307/723/102 +f 360/724/82 246/722/82 359/725/82 +f 329/726/79 395/727/83 396/645/83 +f 370/728/43 362/729/103 361/730/43 +f 369/731/103 363/732/82 362/729/103 +f 371/733/82 364/734/45 363/732/82 +f 372/735/45 365/736/78 364/734/45 +f 373/737/78 366/738/104 365/736/78 +f 374/739/104 367/740/79 366/738/104 +f 375/741/79 368/742/97 367/743/79 +f 376/744/97 361/730/43 368/742/97 +f 378/745/103 386/746/43 377/747/43 +f 379/748/82 385/749/103 378/745/103 +f 380/750/45 387/751/82 379/748/82 +f 381/752/78 388/753/45 380/750/45 +f 382/754/104 389/755/78 381/752/78 +f 383/756/79 390/757/104 382/754/104 +f 384/758/97 391/759/79 383/760/79 +f 377/747/43 392/761/97 384/758/97 +f 392/762/41 386/763/41 389/764/41 +f 393/765/105 359/766/105 395/767/105 +f 360/768/106 329/769/106 396/770/106 +f 372/771/38 371/772/38 375/773/38 +f 247/519/43 257/774/43 258/520/43 +f 324/522/44 323/671/45 304/523/45 +f 328/525/46 326/667/47 300/526/47 +f 316/528/43 255/718/43 254/529/48 +f 303/531/49 313/655/88 314/532/50 +f 305/534/52 310/654/52 312/535/53 +f 311/537/55 396/775/55 309/538/56 +f 250/540/57 245/543/58 248/541/58 +f 245/543/58 244/545/59 249/544/59 +f 244/545/59 243/547/61 251/546/60 +f 243/547/61 242/549/63 252/548/62 +f 242/549/63 241/554/68 253/550/64 +f 240/551/65 239/555/69 254/552/66 +f 241/554/68 240/551/65 255/553/67 +f 239/555/69 238/558/72 256/556/70 +f 237/557/71 246/704/95 256/556/70 +f 258/776/38 257/561/38 260/777/38 +f 257/561/38 259/778/38 267/779/38 +f 260/777/38 257/561/38 261/560/38 +f 267/779/38 265/780/38 257/561/38 +f 265/780/38 266/781/38 257/561/38 +f 266/781/38 264/782/38 257/561/38 +f 264/782/38 263/783/38 257/561/38 +f 263/783/38 262/559/38 257/561/38 +f 243/562/45 262/579/45 263/563/44 +f 250/565/73 258/784/73 260/566/74 +f 239/568/47 265/578/47 267/569/46 +f 242/564/44 263/563/44 264/571/75 +f 245/567/74 260/566/74 261/573/76 +f 238/570/46 267/569/46 259/575/77 +f 240/577/78 266/583/78 265/578/47 +f 244/574/76 261/573/76 262/579/45 +f 237/580/79 259/785/79 257/581/79 +f 241/572/75 264/571/75 266/583/78 +f 319/584/43 318/786/43 308/585/43 +f 269/587/38 283/615/38 284/588/38 +f 329/590/80 330/787/80 269/591/80 +f 331/593/78 332/788/78 271/594/78 +f 333/596/78 334/789/78 273/597/78 +f 335/599/78 336/790/78 275/600/78 +f 273/602/38 291/621/38 292/603/38 +f 275/605/38 295/624/38 296/606/38 +f 271/608/38 287/618/38 288/609/38 +f 281/611/81 280/627/81 279/612/81 +f 285/614/81 284/588/81 283/615/81 +f 289/617/81 288/609/81 287/618/81 +f 293/620/81 292/603/81 291/621/81 +f 297/623/81 296/606/81 295/624/81 +f 277/626/38 279/612/38 280/627/38 +f 351/629/78 354/697/78 293/620/78 +f 355/630/78 358/695/78 297/623/78 +f 339/631/78 342/690/78 281/611/78 +f 281/611/82 342/690/82 268/632/82 +f 342/690/82 341/791/82 394/792/82 +f 268/632/82 342/690/82 394/792/82 +f 337/634/78 338/793/78 277/635/78 +f 297/623/82 358/695/82 276/637/82 +f 358/695/82 357/794/82 337/795/82 +f 276/637/82 358/695/82 337/795/82 +f 293/620/82 354/697/82 274/639/82 +f 354/697/82 353/796/82 335/797/82 +f 274/639/82 354/697/82 335/797/82 +f 289/617/82 350/692/82 272/641/82 +f 350/692/82 349/798/82 333/799/82 +f 272/641/82 350/692/82 333/799/82 +f 285/614/82 346/687/82 270/643/82 +f 346/687/82 345/800/82 331/801/82 +f 270/643/82 346/687/82 331/801/82 +f 396/645/83 395/727/83 248/646/84 +f 317/648/85 307/802/107 298/649/86 +f 322/651/76 321/664/74 306/652/74 +f 306/539/56 309/538/56 310/654/52 +f 304/536/54 312/535/53 313/655/88 +f 301/656/89 316/719/100 315/657/90 +f 320/803/41 318/661/41 328/804/41 +f 318/661/41 319/805/41 321/806/41 +f 328/804/41 318/661/41 326/660/41 +f 321/806/41 322/807/41 318/661/41 +f 322/807/41 323/808/41 318/661/41 +f 323/808/41 324/809/41 318/661/41 +f 324/809/41 325/810/41 318/661/41 +f 325/810/41 327/659/41 318/661/41 +f 300/658/91 315/657/90 317/648/85 +f 325/662/75 324/522/44 303/524/44 +f 321/664/74 319/811/73 311/665/73 +f 301/666/78 327/812/78 325/662/75 +f 326/667/47 327/812/78 301/666/78 +f 345/668/41 344/686/41 330/669/41 +f 323/671/45 322/651/76 305/653/76 +f 318/672/79 320/813/79 298/673/79 +f 320/675/77 328/525/46 299/527/46 +f 357/677/41 356/694/41 336/678/41 +f 353/680/41 352/696/41 334/681/41 +f 349/683/41 348/691/41 332/684/41 +f 344/686/92 345/668/92 346/687/92 +f 340/689/92 341/698/92 342/690/92 +f 348/691/92 349/683/92 350/692/92 +f 356/694/92 357/677/92 358/695/92 +f 352/696/92 353/680/92 354/697/92 +f 341/698/41 340/689/41 338/699/41 +f 298/649/86 307/802/107 360/701/93 +f 347/693/78 350/692/78 289/617/78 +f 237/557/71 247/814/38 359/703/94 +f 343/688/78 346/687/78 285/614/78 +f 279/815/79 277/816/79 278/613/79 +f 277/816/79 338/705/79 278/613/79 +f 338/705/79 340/817/79 339/631/79 +f 295/818/79 275/819/79 294/625/79 +f 275/819/79 336/706/79 294/625/79 +f 336/706/79 356/820/79 355/630/79 +f 291/821/79 273/822/79 290/622/79 +f 273/822/79 334/707/79 290/622/79 +f 334/707/79 352/823/79 351/629/79 +f 287/824/79 271/825/79 286/619/79 +f 271/825/79 332/708/79 286/619/79 +f 332/708/79 348/826/79 347/693/79 +f 283/827/79 269/828/79 282/616/79 +f 269/828/79 330/709/79 282/616/79 +f 330/709/79 344/829/79 343/688/79 +f 309/647/84 248/646/84 249/710/96 +f 310/711/96 249/710/96 251/712/97 +f 312/713/97 251/712/97 252/714/98 +f 313/715/98 252/714/98 253/716/99 +f 316/528/43 314/717/99 253/716/99 +f 302/533/51 314/532/50 316/719/100 +f 315/530/48 254/529/48 256/720/101 +f 317/721/101 256/720/101 246/722/102 +f 268/830/82 394/831/82 360/724/82 +f 360/724/82 307/723/82 246/722/82 +f 359/725/82 268/830/82 360/724/82 +f 329/726/79 393/832/79 395/727/83 +f 370/728/43 369/731/103 362/729/103 +f 369/731/103 371/733/82 363/732/82 +f 371/733/82 372/735/45 364/734/45 +f 372/735/45 373/737/78 365/736/78 +f 373/737/78 374/739/104 366/738/104 +f 374/739/104 375/833/79 367/740/79 +f 375/741/79 376/744/97 368/742/97 +f 376/744/97 370/728/43 361/730/43 +f 378/745/103 385/749/103 386/746/43 +f 379/748/82 387/751/82 385/749/103 +f 380/750/45 388/753/45 387/751/82 +f 381/752/78 389/755/78 388/753/45 +f 382/754/104 390/757/104 389/755/78 +f 383/756/79 391/834/79 390/757/104 +f 384/758/97 392/761/97 391/759/79 +f 377/747/43 386/746/43 392/761/97 +f 386/763/41 385/835/41 389/764/41 +f 385/835/41 387/836/41 389/764/41 +f 387/836/41 388/837/41 389/764/41 +f 389/764/41 390/838/41 391/839/41 +f 391/839/41 392/762/41 389/764/41 +f 393/765/105 268/840/105 359/766/105 +f 360/768/106 394/841/106 329/769/106 +f 371/772/38 369/842/38 375/773/38 +f 369/842/38 370/843/38 375/773/38 +f 370/843/38 376/844/38 375/773/38 +f 375/773/38 374/845/38 373/846/38 +f 373/846/38 372/771/38 375/773/38 +o doorLeft +v 0.166667 0.183059 1.291355 +v 0.166667 0.574264 1.541358 +v 0.166667 1.014811 1.723840 +v 0.166667 1.476714 1.784650 +v 0.166667 1.938615 1.723840 +v 0.166667 2.369039 1.545552 +v 0.166667 2.738652 1.261938 +v 0.166667 3.022266 0.892325 +v 0.166667 3.200554 0.461901 +v 0.168084 0.047998 1.426236 +v 0.166667 0.183060 0.183059 +v 0.168084 3.345687 0.497568 +v 0.168084 3.153632 0.961228 +v 0.166667 3.245492 0.183060 +v 0.168084 2.848119 1.359382 +v 0.168084 2.449965 1.664895 +v 0.168084 1.986305 1.856950 +v 0.168084 0.991167 1.856950 +v 0.168084 1.488737 1.922456 +v 0.168084 0.527508 1.664895 +v 0.107558 0.183060 0.183059 +v 0.107558 3.245492 0.183060 +v 0.107558 0.183059 1.291355 +v 0.107558 3.200554 0.461901 +v 0.107558 3.022266 0.892325 +v 0.107558 2.738652 1.261938 +v 0.107558 2.369039 1.545552 +v 0.107558 1.938615 1.723840 +v 0.107558 1.014811 1.723840 +v 0.107558 1.476714 1.784650 +v 0.107558 0.574264 1.541358 +v 0.168084 3.397916 0.100850 +v 0.166667 3.039069 0.100000 +v 0.166667 2.708339 0.100000 +v 0.166667 2.377609 0.100000 +v 0.166667 2.046879 0.100000 +v 0.166667 1.716149 0.100000 +v 0.166667 1.385420 0.100000 +v 0.166667 1.054690 0.100000 +v 0.166667 0.723960 0.100000 +v 0.166667 0.393230 0.100000 +v -0.166666 0.183059 1.291355 +v -0.166666 0.574264 1.541358 +v -0.166666 1.014811 1.723840 +v -0.166666 1.476714 1.784650 +v -0.166666 1.938615 1.723840 +v -0.166666 2.369039 1.545552 +v -0.166666 2.738652 1.261938 +v -0.166666 3.022266 0.892325 +v -0.166666 3.200554 0.461901 +v -0.168083 0.047998 1.426236 +v -0.166666 0.183060 0.183059 +v -0.168083 3.345687 0.497568 +v -0.168083 3.153632 0.961228 +v -0.166666 3.245492 0.183060 +v -0.168083 2.848119 1.359382 +v -0.168083 2.449965 1.664895 +v -0.168083 1.986305 1.856950 +v -0.168083 0.991167 1.856950 +v -0.168083 1.488737 1.922456 +v -0.168083 0.527508 1.664895 +v -0.107558 0.183060 0.183059 +v -0.107557 3.245492 0.183060 +v -0.107558 0.183059 1.291355 +v -0.107557 3.200554 0.461901 +v -0.107557 3.022266 0.892325 +v -0.107557 2.738652 1.261938 +v -0.107558 2.369039 1.545552 +v -0.107558 1.938615 1.723840 +v -0.107558 1.014811 1.723840 +v -0.107557 1.476714 1.784650 +v -0.107558 0.574264 1.541358 +v -0.166666 3.039069 0.100000 +v -0.166666 2.708339 0.100000 +v -0.166666 2.377609 0.100000 +v -0.166666 2.046879 0.100000 +v -0.166666 1.716149 0.100000 +v -0.166666 1.385420 0.100000 +v -0.166666 1.054690 0.100000 +v -0.166666 0.723960 0.100000 +v -0.166666 0.393230 0.100000 +v 0.166667 0.047999 0.183059 +v -0.168083 3.397916 0.184616 +v 0.168084 3.397916 -0.050425 +v 0.117658 3.397916 -0.100850 +v 0.116667 3.039069 -0.100000 +v 0.166667 3.039069 -0.050000 +v 0.166667 2.708339 -0.050000 +v 0.116667 2.708339 -0.100000 +v 0.116667 2.377609 -0.100000 +v 0.166667 2.377609 -0.050000 +v 0.166667 2.046879 -0.050000 +v 0.116667 2.046879 -0.100000 +v 0.116667 1.716149 -0.100000 +v 0.166667 1.716149 -0.050000 +v 0.166667 1.385420 -0.050000 +v 0.116667 1.385420 -0.100000 +v 0.116667 1.054690 -0.100000 +v 0.166667 1.054690 -0.050000 +v 0.166667 0.723960 -0.050000 +v 0.116667 0.723960 -0.100000 +v 0.116667 0.393230 -0.100000 +v 0.166667 0.393230 -0.050000 +v -0.168083 3.397916 -0.050425 +v -0.117658 3.397916 -0.100850 +v -0.116666 3.039069 -0.100000 +v -0.166666 3.039069 -0.050000 +v -0.166666 2.708339 -0.050000 +v -0.116666 2.708339 -0.100000 +v -0.116666 2.377609 -0.100000 +v -0.166666 2.377609 -0.050000 +v -0.166666 2.046879 -0.050000 +v -0.116666 2.046879 -0.100000 +v -0.116666 1.716149 -0.100000 +v -0.166666 1.716149 -0.050000 +v -0.166666 1.385420 -0.050000 +v -0.116666 1.385420 -0.100000 +v -0.116666 1.054690 -0.100000 +v -0.166666 1.054690 -0.050000 +v -0.166666 0.723960 -0.050000 +v -0.116666 0.723960 -0.100000 +v -0.116666 0.393230 -0.100000 +v -0.166666 0.393230 -0.050000 +v 0.057399 2.947922 0.628826 +v 0.057399 2.811188 0.572189 +v 0.057399 2.754550 0.435454 +v 0.057399 2.811188 0.298720 +v 0.057399 2.947922 0.242083 +v 0.057399 3.084657 0.298720 +v 0.057399 3.141294 0.435454 +v 0.057399 3.084657 0.572189 +v 0.134706 2.811188 0.572189 +v 0.134706 2.947922 0.628826 +v 0.134706 2.754550 0.435454 +v 0.134706 2.811188 0.298720 +v 0.134706 2.947922 0.242083 +v 0.134706 3.084657 0.298720 +v 0.134706 3.141294 0.435454 +v 0.134706 3.084657 0.572189 +v -0.057398 2.947922 0.628826 +v -0.057398 2.811188 0.572189 +v -0.057398 2.754550 0.435454 +v -0.057398 2.811188 0.298720 +v -0.057398 2.947922 0.242083 +v -0.057398 3.084657 0.298720 +v -0.057398 3.141294 0.435454 +v -0.057398 3.084657 0.572189 +v -0.134705 2.811188 0.572189 +v -0.134705 2.947922 0.628826 +v -0.134705 2.754550 0.435454 +v -0.134705 2.811188 0.298720 +v -0.134705 2.947922 0.242083 +v -0.134705 3.084657 0.298720 +v -0.134705 3.141294 0.435454 +v -0.134705 3.084657 0.572189 +v 0.166667 2.212244 0.100000 +v -0.166666 2.212244 0.100000 +v 0.090995 0.595453 0.114216 +v 0.090995 0.707781 0.114216 +v 0.090995 0.595453 1.616943 +v 0.090995 0.707781 1.616943 +v 0.159155 0.609494 0.114216 +v 0.159155 0.693740 0.114216 +v 0.159155 0.609494 1.616943 +v 0.159155 0.693740 1.616943 +v 0.090995 1.262953 0.114216 +v 0.090995 1.375282 0.114216 +v 0.090995 1.262953 1.841179 +v 0.090995 1.375282 1.841179 +v 0.159155 1.276994 0.114216 +v 0.159155 1.361241 0.114216 +v 0.159155 1.276994 1.841179 +v 0.159155 1.361241 1.841179 +v 0.090995 1.930453 0.114216 +v 0.090995 2.042782 0.114216 +v 0.090995 1.930453 1.753672 +v 0.090995 2.042782 1.753672 +v 0.159155 1.944494 0.114216 +v 0.159155 2.028741 0.114216 +v 0.159155 1.944494 1.753672 +v 0.159155 2.028741 1.753672 +v 0.090995 2.597953 0.114216 +v 0.090995 2.710282 0.114216 +v 0.090995 2.597953 1.403646 +v 0.090995 2.710282 1.403646 +v 0.159155 2.611994 0.114216 +v 0.159155 2.696241 0.114216 +v 0.159155 2.611994 1.403646 +v 0.159155 2.696241 1.403646 +v -0.090994 0.595453 0.114216 +v -0.090994 0.707781 0.114216 +v -0.090994 0.595453 1.616943 +v -0.090994 0.707781 1.616943 +v -0.159155 0.609494 0.114216 +v -0.159155 0.693740 0.114216 +v -0.159155 0.609494 1.616943 +v -0.159155 0.693740 1.616943 +v -0.090994 1.262953 0.114216 +v -0.090994 1.375282 0.114216 +v -0.090994 1.262953 1.841179 +v -0.090994 1.375282 1.841179 +v -0.159155 1.276994 0.114216 +v -0.159155 1.361241 0.114216 +v -0.159155 1.276994 1.841179 +v -0.159155 1.361241 1.841179 +v -0.090994 1.930453 0.114216 +v -0.090994 2.042782 0.114216 +v -0.090994 1.930453 1.753672 +v -0.090994 2.042782 1.753672 +v -0.159155 1.944494 0.114216 +v -0.159155 2.028741 0.114216 +v -0.159155 1.944494 1.753672 +v -0.159155 2.028741 1.753672 +v -0.090994 2.597953 0.114216 +v -0.090994 2.710282 0.114216 +v -0.090994 2.597953 1.403646 +v -0.090994 2.710282 1.403646 +v -0.159155 2.611994 0.114216 +v -0.159155 2.696241 0.114216 +v -0.159155 2.611994 1.403646 +v -0.159155 2.696241 1.403646 +v 0.166667 0.047999 0.100000 +v -0.166666 0.047999 0.100000 +v -0.168083 3.397916 0.100850 +v 0.168084 3.397916 0.184616 +v -0.166666 0.047999 0.183059 +vt 0.345261 0.851848 +vt 0.236786 0.847477 +vt 0.345261 0.847477 +vt 0.783083 0.236574 +vt 0.877473 0.231282 +vt 0.877473 0.236574 +vt 0.783083 0.240945 +vt 0.877473 0.240945 +vt 0.783083 0.231282 +vt 0.877473 0.226911 +vt 0.661892 0.928877 +vt 0.656600 0.820401 +vt 0.661892 0.820401 +vt 0.666263 0.928877 +vt 0.666263 0.820401 +vt 0.656600 0.928877 +vt 0.652229 0.820401 +vt 0.686915 0.923380 +vt 0.681624 0.820401 +vt 0.686915 0.820401 +vt 0.691287 0.923380 +vt 0.691287 0.820401 +vt 0.681624 0.923380 +vt 0.677252 0.820401 +vt 0.120617 0.906925 +vt 0.201609 0.901634 +vt 0.201609 0.906925 +vt 0.120617 0.911296 +vt 0.201609 0.911296 +vt 0.120617 0.901634 +vt 0.201609 0.897262 +vt 0.345261 0.857140 +vt 0.236786 0.851848 +vt 0.246449 0.872501 +vt 0.241157 0.966891 +vt 0.241157 0.872501 +vt 0.250820 0.872501 +vt 0.246449 0.966891 +vt 0.236786 0.966891 +vt 0.236786 0.872501 +vt 0.553510 0.890940 +vt 0.472517 0.886569 +vt 0.553510 0.886569 +vt 0.345261 0.861511 +vt 0.236786 0.857140 +vt 0.120617 0.881902 +vt 0.223595 0.886273 +vt 0.120617 0.886273 +vt 0.472517 0.881277 +vt 0.553510 0.881278 +vt 0.472517 0.876906 +vt 0.553510 0.876906 +vt 0.120617 0.872239 +vt 0.223595 0.876610 +vt 0.120617 0.876610 +vt 0.223595 0.881902 +vt 0.783083 0.226911 +vt 0.652229 0.928877 +vt 0.677252 0.923380 +vt 0.120617 0.897262 +vt 0.250820 0.966891 +vt 0.472517 0.890940 +vt 0.236786 0.861511 +vt 0.223595 0.872239 +vt 0.990793 0.982377 +vt 0.994505 0.790024 +vt 0.994505 0.982377 +vt 0.975330 0.140291 +vt 0.979043 0.169554 +vt 0.975330 0.169554 +vt 0.958688 0.735153 +vt 0.979803 0.703630 +vt 0.979803 0.735153 +vt 0.686077 0.070125 +vt 0.666517 0.094166 +vt 0.678580 0.065042 +vt 0.754142 0.017893 +vt 0.722778 0.020841 +vt 0.751901 0.008776 +vt 0.346040 0.826913 +vt 0.326285 0.833206 +vt 0.328526 0.824090 +vt 0.297161 0.821141 +vt 0.301490 0.812889 +vt 0.272153 0.801950 +vt 0.278274 0.795074 +vt 0.252964 0.776940 +vt 0.260460 0.771857 +vt 0.240900 0.747817 +vt 0.249262 0.744821 +vt 0.245442 0.715808 +vt 0.240900 0.685309 +vt 0.249262 0.686794 +vt 0.236786 0.716563 +vt 0.252963 0.656185 +vt 0.260723 0.659122 +vt 0.276425 0.634549 +vt 0.782646 0.086752 +vt 0.786465 0.057739 +vt 0.883246 0.005495 +vt 0.975330 0.374451 +vt 0.979043 0.345187 +vt 0.979043 0.374451 +vt 0.975330 0.286661 +vt 0.979043 0.268920 +vt 0.979043 0.286661 +vt 0.975330 0.492194 +vt 0.979043 0.462242 +vt 0.979043 0.492194 +vt 0.975330 0.403715 +vt 0.979043 0.403715 +vt 0.975330 0.315924 +vt 0.979043 0.315924 +vt 0.975330 0.521356 +vt 0.979043 0.521356 +vt 0.975330 0.462242 +vt 0.979043 0.432979 +vt 0.975330 0.345187 +vt 0.633615 0.523161 +vt 0.703230 0.526874 +vt 0.633615 0.526874 +vt 0.975330 0.023236 +vt 0.979043 0.052499 +vt 0.975330 0.052499 +vt 0.486381 0.832580 +vt 0.501037 0.853354 +vt 0.486381 0.853354 +vt 0.593125 0.832580 +vt 0.588684 0.853354 +vt 0.588684 0.832580 +vt 0.514901 0.853354 +vt 0.505479 0.832580 +vt 0.514901 0.832580 +vt 0.958688 0.703630 +vt 0.979803 0.669986 +vt 0.975330 0.198817 +vt 0.979043 0.228769 +vt 0.975330 0.228769 +vt 0.979043 0.081763 +vt 0.975330 0.081763 +vt 0.990793 0.586682 +vt 0.994505 0.779035 +vt 0.990792 0.779035 +vt 0.703891 0.046908 +vt 0.697769 0.040032 +vt 0.702042 0.207434 +vt 0.678579 0.185797 +vt 0.686339 0.182860 +vt 0.979043 0.111027 +vt 0.975330 0.111027 +vt 0.979043 0.198817 +vt 0.771656 0.215922 +vt 0.693569 0.215917 +vt 0.212598 0.897262 +vt 0.216311 0.966877 +vt 0.212598 0.966877 +vt 0.481939 0.832580 +vt 0.472517 0.853354 +vt 0.472517 0.832580 +vt 0.979043 0.257931 +vt 0.975330 0.257931 +vt 0.346040 0.626061 +vt 0.346040 0.634544 +vt 0.589985 0.820018 +vt 0.610922 0.820018 +vt 0.607782 0.832580 +vt 0.958688 0.892770 +vt 0.979803 0.861246 +vt 0.979803 0.892770 +vt 0.448966 0.780214 +vt 0.452106 0.777073 +vt 0.461528 0.777073 +vt 0.958688 0.829723 +vt 0.979803 0.798200 +vt 0.979803 0.829723 +vt 0.958688 0.944222 +vt 0.979803 0.924293 +vt 0.979803 0.944222 +vt 0.674878 0.155188 +vt 0.666516 0.156673 +vt 0.806530 0.574614 +vt 0.829747 0.556800 +vt 0.874297 0.735138 +vt 0.958688 0.949484 +vt 0.979803 0.949484 +vt 0.958688 0.766676 +vt 0.979803 0.766676 +vt 0.958688 0.798200 +vt 0.413756 0.798100 +vt 0.413756 0.776984 +vt 0.426426 0.780152 +vt 0.424479 0.819903 +vt 0.445417 0.819903 +vt 0.442276 0.832465 +vt 0.442276 0.853239 +vt 0.445417 0.856380 +vt 0.445417 0.865802 +vt 0.504178 0.856495 +vt 0.504178 0.865917 +vt 0.554409 0.853354 +vt 0.557550 0.856495 +vt 0.557550 0.865917 +vt 0.958688 0.861246 +vt 0.483240 0.820018 +vt 0.504178 0.820018 +vt 0.501037 0.832580 +vt 0.536613 0.820018 +vt 0.557550 0.820018 +vt 0.554409 0.832580 +vt 0.295591 0.929608 +vt 0.316365 0.950546 +vt 0.295591 0.950545 +vt 0.568273 0.853354 +vt 0.558851 0.832580 +vt 0.568273 0.832580 +vt 0.426437 0.799412 +vt 0.449030 0.808733 +vt 0.426490 0.808914 +vt 0.539753 0.832580 +vt 0.535312 0.853354 +vt 0.535312 0.832580 +vt 0.427620 0.832465 +vt 0.423178 0.853239 +vt 0.423178 0.832465 +vt 0.413756 0.853239 +vt 0.413756 0.832465 +vt 0.525890 0.853354 +vt 0.525890 0.832580 +vt 0.456139 0.853239 +vt 0.446718 0.832465 +vt 0.456139 0.832465 +vt 0.621645 0.853354 +vt 0.612223 0.832580 +vt 0.621645 0.832580 +vt 0.426426 0.794932 +vt 0.448977 0.799312 +vt 0.448977 0.775772 +vt 0.426437 0.775672 +vt 0.612223 0.853354 +vt 0.446718 0.853239 +vt 0.558851 0.853354 +vt 0.449030 0.766351 +vt 0.426490 0.766170 +vt 0.427620 0.853239 +vt 0.607782 0.853354 +vt 0.593125 0.853354 +vt 0.448966 0.794870 +vt 0.610922 0.856495 +vt 0.610922 0.865917 +vt 0.958777 0.591899 +vt 0.979714 0.586682 +vt 0.979714 0.591899 +vt 0.282747 0.940410 +vt 0.261809 0.950797 +vt 0.261809 0.940410 +vt 0.481939 0.853355 +vt 0.295591 0.897681 +vt 0.317276 0.918619 +vt 0.295591 0.918619 +vt 0.060116 0.930852 +vt 0.039179 0.951626 +vt 0.039179 0.930852 +vt 0.958688 0.924293 +vt 0.771657 0.015069 +vt 0.771558 0.005495 +vt 0.730569 0.930395 +vt 0.709632 0.951169 +vt 0.709632 0.930395 +vt 0.727106 0.029093 +vt 0.671059 0.126175 +vt 0.662402 0.125419 +vt 0.979043 0.140291 +vt 0.674878 0.097162 +vt 0.975330 0.005495 +vt 0.979043 0.023236 +vt 0.579262 0.853354 +vt 0.579262 0.832580 +vt 0.539753 0.853354 +vt 0.580344 0.923388 +vt 0.585200 0.932684 +vt 0.580344 0.932684 +vt 0.580344 0.914091 +vt 0.585200 0.923388 +vt 0.580344 0.904795 +vt 0.585200 0.914091 +vt 0.580344 0.895499 +vt 0.585200 0.904795 +vt 0.580344 0.886202 +vt 0.585200 0.895499 +vt 0.580344 0.876906 +vt 0.585200 0.886202 +vt 0.580344 0.941980 +vt 0.585200 0.951277 +vt 0.580344 0.951277 +vt 0.585200 0.941980 +vt 0.041812 0.917230 +vt 0.038254 0.908641 +vt 0.062546 0.908641 +vt 0.564499 0.932684 +vt 0.569355 0.923388 +vt 0.569355 0.932684 +vt 0.564499 0.923388 +vt 0.569355 0.914091 +vt 0.564499 0.914091 +vt 0.569355 0.904795 +vt 0.564499 0.904795 +vt 0.569355 0.895499 +vt 0.564499 0.895499 +vt 0.569355 0.886202 +vt 0.564499 0.886202 +vt 0.569355 0.876906 +vt 0.564499 0.951277 +vt 0.569355 0.941980 +vt 0.569355 0.951277 +vt 0.564499 0.941980 +vt 0.092421 0.900053 +vt 0.095979 0.908641 +vt 0.071686 0.908641 +vt 0.282747 0.930023 +vt 0.261809 0.930023 +vt 0.874841 0.746128 +vt 0.880058 0.956548 +vt 0.874797 0.956549 +vt 0.402767 0.766172 +vt 0.397550 0.976585 +vt 0.397506 0.766170 +vt 0.990792 0.790024 +vt 0.345942 0.836488 +vt 0.267953 0.626065 +vt 0.813631 0.005495 +vt 0.797928 0.030067 +vt 0.883246 0.197854 +vt 0.865731 0.195031 +vt 0.838695 0.183833 +vt 0.815479 0.166018 +vt 0.797664 0.142802 +vt 0.786465 0.115766 +vt 0.975330 0.268920 +vt 0.975330 0.432979 +vt 0.703230 0.523161 +vt 0.505479 0.853354 +vt 0.958688 0.669986 +vt 0.994505 0.586682 +vt 0.771657 0.207438 +vt 0.216311 0.897262 +vt 0.610922 0.829440 +vt 0.589985 0.829440 +vt 0.461528 0.798011 +vt 0.452106 0.798011 +vt 0.874297 0.542778 +vt 0.856783 0.545601 +vt 0.804682 0.735138 +vt 0.788979 0.710565 +vt 0.777517 0.682893 +vt 0.773697 0.653880 +vt 0.777517 0.624867 +vt 0.788716 0.597831 +vt 0.423258 0.776984 +vt 0.423258 0.798100 +vt 0.445417 0.829325 +vt 0.424479 0.829325 +vt 0.424479 0.865802 +vt 0.424479 0.856380 +vt 0.483240 0.865917 +vt 0.483240 0.856495 +vt 0.536613 0.865917 +vt 0.536613 0.856495 +vt 0.504178 0.829440 +vt 0.483240 0.829440 +vt 0.557550 0.829440 +vt 0.536613 0.829440 +vt 0.316365 0.929608 +vt 0.589985 0.865917 +vt 0.589985 0.856495 +vt 0.958777 0.586682 +vt 0.282747 0.950797 +vt 0.317276 0.897681 +vt 0.060116 0.951626 +vt 0.730569 0.951169 +vt 0.979043 0.005495 +vt 0.585200 0.876906 +vt 0.041812 0.900053 +vt 0.050400 0.896495 +vt 0.058989 0.900053 +vt 0.058989 0.917230 +vt 0.050400 0.920787 +vt 0.564499 0.876906 +vt 0.092421 0.917230 +vt 0.083833 0.920787 +vt 0.075244 0.917230 +vt 0.075244 0.900052 +vt 0.083833 0.896495 +vt 0.880058 0.746127 +vt 0.402767 0.976587 +vn -0.2018 -0.9794 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.2018 -0.9794 0.0000 +vn 0.2018 0.9794 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.2018 0.9794 0.0000 +vn 0.0000 -0.0000 1.0000 +vn 0.0000 -0.2588 -0.9659 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -0.2588 0.9659 +vn 0.0000 -0.4144 0.9101 +vn -1.0000 -0.0049 -0.0086 +vn -0.9999 -0.0027 -0.0097 +vn -1.0000 -0.0050 -0.0085 +vn -1.0000 -0.0091 -0.0026 +vn -1.0000 -0.0083 -0.0048 +vn 1.0000 -0.0093 -0.0015 +vn 1.0000 -0.0091 -0.0026 +vn 1.0000 -0.0083 -0.0048 +vn 1.0000 -0.0069 -0.0068 +vn 1.0000 -0.0068 -0.0069 +vn 1.0000 -0.0050 -0.0085 +vn 1.0000 -0.0049 -0.0086 +vn 0.9999 -0.0027 -0.0097 +vn 0.9999 -0.0025 -0.0097 +vn 0.9999 0.0001 -0.0103 +vn 0.9999 0.0027 -0.0102 +vn 0.9999 0.0028 -0.0101 +vn 0.9999 -0.0001 -0.0103 +vn 0.9999 0.0047 -0.0093 +vn 0.9999 0.0051 -0.0096 +vn 1.0000 0.0067 -0.0038 +vn 0.0000 -0.5000 -0.8660 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -0.9621 -0.2727 +vn 0.0000 -0.9873 -0.1591 +vn 0.0000 0.4624 -0.8867 +vn 0.0000 0.2588 -0.9659 +vn 0.0000 -0.8660 -0.5000 +vn 0.0000 0.5385 -0.8426 +vn 0.0000 1.0000 0.0000 +vn -0.7071 0.0000 -0.7071 +vn 0.0000 -0.4456 0.8952 +vn -1.0000 -0.0068 -0.0069 +vn -1.0000 -0.0069 -0.0068 +vn -1.0000 0.0067 -0.0038 +vn -0.9999 0.0047 -0.0093 +vn -0.9999 0.0051 -0.0096 +vn -1.0000 0.0007 -0.0001 +vn -1.0000 0.0058 -0.0047 +vn 1.0000 0.0007 -0.0001 +vn 0.0000 0.8660 0.5000 +vn 0.0000 0.7071 0.7071 +vn 0.0000 -1.0000 -0.0000 +vn 0.0000 0.5000 0.8660 +vn 0.0000 0.2588 0.9659 +vn 0.0000 0.9966 0.0826 +vn 0.0000 0.9613 0.2754 +vn -0.9999 0.0028 -0.0101 +vn -0.9999 0.0027 -0.0102 +vn -1.0000 -0.0039 0.0000 +vn -0.7071 -0.0036 -0.7071 +vn 0.7071 -0.0036 -0.7071 +vn 0.7071 0.0000 -0.7071 +vn 1.0000 -0.0039 0.0000 +vn 0.0000 -0.0024 -1.0000 +vn -1.0000 -0.0093 -0.0015 +vn -0.9999 0.0001 -0.0103 +vn -0.9999 -0.0001 -0.0103 +vn -0.9999 -0.0025 -0.0097 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.7071 -0.7071 +vn 1.0000 -0.0004 0.0000 +vn -1.0000 -0.0004 0.0000 +vn 1.0000 0.0058 -0.0047 +s off +f 664/847/108 658/848/108 660/849/108 +f 622/850/109 625/851/109 624/852/109 +f 618/853/110 624/852/110 620/854/110 +f 623/855/111 621/856/111 625/851/111 +f 630/857/109 633/858/109 632/859/109 +f 626/860/110 632/859/110 628/861/110 +f 631/862/111 629/863/111 633/858/111 +f 638/864/109 641/865/109 640/866/109 +f 634/867/110 640/866/110 636/868/110 +f 639/869/111 637/870/111 641/865/111 +f 646/871/109 649/872/109 648/873/109 +f 642/874/110 648/873/110 644/875/110 +f 647/876/111 645/877/111 649/872/111 +f 665/878/112 662/879/112 664/847/112 +f 657/880/112 654/881/112 656/882/112 +f 653/883/113 655/884/113 657/880/113 +f 656/882/108 650/885/108 652/886/108 +f 677/887/113 679/888/113 681/889/113 +f 661/890/113 663/891/113 665/878/113 +f 672/892/108 666/893/108 668/894/108 +f 681/889/112 678/895/112 680/896/112 +f 680/896/108 674/897/108 676/898/108 +f 669/899/113 671/900/113 673/901/113 +f 673/901/112 670/902/112 672/892/112 +f 664/847/108 662/879/108 658/848/108 +f 622/850/109 623/855/109 625/851/109 +f 618/853/110 622/850/110 624/852/110 +f 623/855/111 619/903/111 621/856/111 +f 630/857/109 631/862/109 633/858/109 +f 626/860/110 630/857/110 632/859/110 +f 631/862/111 627/904/111 629/863/111 +f 638/864/109 639/869/109 641/865/109 +f 634/867/110 638/864/110 640/866/110 +f 639/869/111 635/905/111 637/870/111 +f 646/871/109 647/876/109 649/872/109 +f 642/874/110 646/871/110 648/873/110 +f 647/876/111 643/906/111 645/877/111 +f 665/878/112 663/891/112 662/879/112 +f 657/880/112 655/884/112 654/881/112 +f 653/883/113 651/907/113 655/884/113 +f 656/882/108 654/881/108 650/885/108 +f 677/887/113 675/908/113 679/888/113 +f 661/890/113 659/909/113 663/891/113 +f 672/892/108 670/902/108 666/893/108 +f 681/889/112 679/888/112 678/895/112 +f 680/896/108 678/895/108 674/897/108 +f 669/899/113 667/910/113 671/900/113 +f 673/901/112 671/900/112 670/902/112 +s 1 +f 482/911/114 471/912/114 474/913/114 +f 506/914/115 531/915/116 505/916/116 +f 519/917/117 480/918/118 478/919/117 +f 507/920/119 518/921/120 517/922/121 +f 510/923/122 514/924/123 513/925/122 +f 474/926/124 472/927/125 469/928/125 +f 469/928/125 473/929/126 468/930/126 +f 468/930/126 475/931/127 467/932/128 +f 467/932/128 476/933/129 466/934/130 +f 466/934/130 477/935/131 465/936/132 +f 464/937/133 478/938/134 463/939/135 +f 465/936/132 479/940/136 464/937/133 +f 463/939/135 480/941/137 462/942/138 +f 480/941/137 461/943/139 462/942/138 +f 490/944/109 489/945/109 481/946/109 +f 487/947/140 467/948/141 466/949/140 +f 484/950/142 474/951/143 469/952/142 +f 491/953/144 463/954/145 462/955/144 +f 488/956/115 466/949/140 465/957/115 +f 485/958/146 469/952/142 468/959/146 +f 483/960/147 462/955/144 461/961/147 +f 489/962/145 464/963/116 463/954/145 +f 486/964/141 468/959/146 467/948/141 +f 481/965/148 461/966/148 471/967/148 +f 464/963/116 488/956/115 465/957/115 +f 510/968/142 526/969/146 509/970/146 +f 577/971/116 558/972/116 578/973/116 +f 569/974/149 571/975/149 568/976/149 +f 499/977/109 556/978/109 498/979/109 +f 521/980/118 470/981/150 480/918/118 +f 504/982/145 532/983/144 503/984/144 +f 509/970/146 527/985/141 508/986/141 +f 512/987/114 523/988/114 515/989/114 +f 508/990/151 517/922/121 516/991/152 +f 502/992/153 521/993/154 503/994/155 +f 508/986/141 528/995/140 507/996/140 +f 505/916/116 530/997/145 504/982/145 +f 502/992/153 686/998/156 511/999/157 +f 502/1000/148 522/1001/148 512/1002/148 +f 576/1003/112 539/1004/112 538/1005/112 +f 503/984/144 524/1006/147 502/1007/147 +f 461/943/139 542/1008/158 471/1009/109 +f 534/1010/148 494/1011/148 549/1012/148 +f 514/1013/159 475/1014/160 473/1015/159 +f 546/1016/161 547/1017/161 493/1018/161 +f 517/1019/162 477/1020/163 476/1021/162 +f 543/1022/164 472/1023/165 685/1024/164 +f 504/1025/166 521/993/154 519/1026/167 +f 527/1027/112 526/1028/112 522/1029/112 +f 684/1030/148 685/1024/164 492/1031/148 +f 520/1032/114 478/919/117 479/1033/114 +f 520/1032/114 477/1020/163 518/1034/163 +f 684/1035/148 492/1036/148 545/1037/148 +f 536/1038/148 496/1039/148 553/1040/148 +f 554/1041/161 555/1042/161 497/1043/161 +f 558/972/161 559/1044/161 499/1045/161 +f 562/1046/161 563/1047/161 501/1048/161 +f 516/1049/160 476/1021/162 475/1014/160 +f 538/1050/148 498/1051/148 557/1052/148 +f 540/1053/148 500/1054/148 561/1055/148 +f 540/1056/116 499/1057/116 500/1058/116 +f 501/1059/109 560/1060/109 500/1061/109 +f 564/1062/168 533/1063/168 684/1064/168 +f 581/1065/149 583/1066/149 580/1067/149 +f 573/1068/149 575/1069/149 572/1070/149 +f 572/1070/112 537/1071/112 536/1072/112 +f 580/1067/112 541/1073/112 540/1074/112 +f 497/1075/109 552/1076/109 496/1077/109 +f 495/1078/109 548/1079/109 494/1080/109 +f 565/1081/169 567/1082/169 564/1062/169 +f 547/1083/170 545/1037/170 544/1084/170 +f 551/1085/171 549/1012/171 548/1079/171 +f 555/1086/171 553/1040/171 552/1076/171 +f 556/978/171 558/972/171 557/1052/171 +f 563/1087/171 561/1055/171 560/1060/171 +f 493/1088/172 544/1084/172 492/1089/172 +f 573/1068/116 554/1041/116 574/1090/116 +f 569/974/116 550/1091/116 570/1092/116 +f 565/1081/173 546/1016/173 566/1093/173 +f 550/1091/161 551/1094/161 495/1095/161 +f 686/1096/161 682/1097/161 542/1098/161 +f 617/1099/116 495/1100/116 616/1101/116 +f 576/1003/149 578/973/149 579/1102/149 +f 683/1103/116 501/1104/116 682/1105/116 +f 538/1106/116 497/1107/116 498/1108/116 +f 513/1109/165 473/1015/159 472/1023/165 +f 515/1110/174 513/925/122 543/1111/174 +f 534/1112/116 493/1113/116 494/1114/116 +f 509/1115/123 516/991/152 514/924/123 +f 505/1116/175 519/1026/167 520/1117/176 +f 507/996/140 529/1118/115 506/914/115 +f 506/1119/177 520/1117/176 518/921/120 +f 515/1120/143 525/1121/142 510/968/142 +f 568/976/112 535/1122/112 534/1123/112 +f 581/1065/116 562/1046/116 582/1124/116 +f 585/1125/178 593/1126/114 584/1127/114 +f 586/1128/161 592/1129/178 585/1125/178 +f 587/1130/141 594/1131/161 586/1128/161 +f 588/1132/116 595/1133/141 587/1130/141 +f 589/1134/179 596/1135/116 588/1132/116 +f 590/1136/148 597/1137/179 589/1134/179 +f 591/1138/160 598/1139/148 590/1140/148 +f 584/1127/114 599/1141/160 591/1138/160 +f 599/1142/109 593/1143/109 596/1144/109 +f 609/1145/114 601/1146/178 600/1147/114 +f 608/1148/178 602/1149/161 601/1146/178 +f 610/1150/161 603/1151/141 602/1149/161 +f 611/1152/141 604/1153/116 603/1151/141 +f 612/1154/116 605/1155/179 604/1153/116 +f 613/1156/179 606/1157/148 605/1155/179 +f 614/1158/148 607/1159/160 606/1160/148 +f 615/1161/160 600/1147/114 607/1159/160 +f 611/1162/112 610/1163/112 614/1164/112 +f 536/1165/116 616/1101/116 496/1166/116 +f 542/1167/180 492/1168/180 685/1169/180 +f 684/1170/181 686/1171/181 543/1172/181 +f 482/911/114 481/1173/114 471/912/114 +f 506/914/115 529/1118/115 531/915/116 +f 519/917/117 521/980/118 480/918/118 +f 507/920/119 506/1119/177 518/921/120 +f 510/923/122 509/1115/123 514/924/123 +f 474/926/124 685/1174/124 472/927/125 +f 469/928/125 472/927/125 473/929/126 +f 468/930/126 473/929/126 475/931/127 +f 467/932/128 475/931/127 476/933/129 +f 466/934/130 476/933/129 477/935/131 +f 464/937/133 479/940/136 478/938/134 +f 465/936/132 477/935/131 479/940/136 +f 463/939/135 478/938/134 480/941/137 +f 480/941/137 470/1175/182 461/943/139 +f 483/1176/109 481/946/109 491/1177/109 +f 481/946/109 482/1178/109 484/1179/109 +f 491/1177/109 481/946/109 489/945/109 +f 484/1179/109 485/1180/109 481/946/109 +f 485/1180/109 486/1181/109 481/946/109 +f 486/1181/109 487/1182/109 481/946/109 +f 487/1182/109 488/1183/109 481/946/109 +f 488/1183/109 490/944/109 481/946/109 +f 487/947/140 486/964/141 467/948/141 +f 484/950/142 482/1184/143 474/951/143 +f 491/953/144 489/962/145 463/954/145 +f 488/956/115 487/947/140 466/949/140 +f 485/958/146 484/950/142 469/952/142 +f 483/960/147 491/953/144 462/955/144 +f 489/962/145 490/1185/116 464/963/116 +f 486/964/141 485/958/146 468/959/146 +f 481/965/148 483/1186/148 461/966/148 +f 464/963/116 490/1185/116 488/956/115 +f 510/968/142 525/1121/142 526/969/146 +f 577/971/116 557/1052/116 558/972/116 +f 569/974/149 570/1092/149 571/975/149 +f 499/977/109 559/1187/109 556/978/109 +f 521/980/118 511/1188/150 470/981/150 +f 504/982/145 530/997/145 532/983/144 +f 509/970/146 526/969/146 527/985/141 +f 512/987/114 522/1189/114 523/988/114 +f 508/990/151 507/920/119 517/922/121 +f 502/992/153 511/999/157 521/993/154 +f 508/986/141 527/985/141 528/995/140 +f 505/916/116 531/915/116 530/997/145 +f 502/992/153 512/1190/112 686/998/156 +f 502/1000/148 524/1191/148 522/1001/148 +f 576/1003/112 579/1102/112 539/1004/112 +f 503/984/144 532/983/144 524/1006/147 +f 461/943/139 470/1175/182 542/1008/158 +f 548/1192/148 549/1012/148 494/1011/148 +f 549/1012/148 569/974/148 534/1010/148 +f 569/974/148 568/1193/148 534/1010/148 +f 514/1013/159 516/1049/160 475/1014/160 +f 493/1018/161 533/1194/161 566/1093/161 +f 533/1194/161 567/1195/161 566/1093/161 +f 566/1093/161 546/1016/161 493/1018/161 +f 517/1019/162 518/1034/163 477/1020/163 +f 543/1022/164 513/1109/165 472/1023/165 +f 504/1025/166 503/994/155 521/993/154 +f 523/1196/112 522/1029/112 525/1197/112 +f 522/1029/112 524/1198/112 532/1199/112 +f 525/1197/112 522/1029/112 526/1028/112 +f 532/1199/112 530/1200/112 522/1029/112 +f 530/1200/112 531/1201/112 522/1029/112 +f 531/1201/112 529/1202/112 522/1029/112 +f 529/1202/112 528/1203/112 522/1029/112 +f 528/1203/112 527/1027/112 522/1029/112 +f 684/1030/148 543/1022/164 685/1024/164 +f 520/1032/114 519/917/117 478/919/117 +f 520/1032/114 479/1033/114 477/1020/163 +f 544/1204/148 545/1037/148 492/1036/148 +f 545/1037/148 565/1081/148 684/1035/148 +f 565/1081/148 564/1205/148 684/1035/148 +f 552/1206/148 553/1040/148 496/1039/148 +f 553/1040/148 573/1068/148 536/1038/148 +f 573/1068/148 572/1207/148 536/1038/148 +f 497/1043/161 537/1208/161 574/1090/161 +f 537/1208/161 575/1209/161 574/1090/161 +f 574/1090/161 554/1041/161 497/1043/161 +f 499/1045/161 539/1210/161 578/973/161 +f 539/1210/161 579/1211/161 578/973/161 +f 578/973/161 558/972/161 499/1045/161 +f 501/1048/161 541/1212/161 582/1124/161 +f 541/1212/161 583/1213/161 582/1124/161 +f 582/1124/161 562/1046/161 501/1048/161 +f 516/1049/160 517/1019/162 476/1021/162 +f 556/1214/148 557/1052/148 498/1051/148 +f 557/1052/148 577/971/148 538/1050/148 +f 577/971/148 576/1215/148 538/1050/148 +f 560/1216/148 561/1055/148 500/1054/148 +f 561/1055/148 581/1065/148 540/1053/148 +f 581/1065/148 580/1217/148 540/1053/148 +f 540/1056/116 539/1218/116 499/1057/116 +f 501/1059/109 563/1087/109 560/1060/109 +f 564/1062/168 567/1082/168 533/1063/168 +f 581/1065/149 582/1124/149 583/1066/149 +f 573/1068/149 574/1090/149 575/1069/149 +f 572/1070/112 575/1069/112 537/1071/112 +f 580/1067/112 583/1066/112 541/1073/112 +f 497/1075/109 555/1086/109 552/1076/109 +f 495/1078/109 551/1085/109 548/1079/109 +f 565/1081/169 566/1093/169 567/1082/169 +f 547/1083/170 546/1016/170 545/1037/170 +f 551/1085/171 550/1091/171 549/1012/171 +f 555/1086/171 554/1041/171 553/1040/171 +f 556/978/171 559/1187/171 558/972/171 +f 563/1087/171 562/1046/171 561/1055/171 +f 493/1088/172 547/1083/172 544/1084/172 +f 573/1068/116 553/1040/116 554/1041/116 +f 569/974/116 549/1012/116 550/1091/116 +f 565/1081/173 545/1037/173 546/1016/173 +f 495/1095/161 535/1219/161 570/1092/161 +f 535/1219/161 571/1220/161 570/1092/161 +f 570/1092/161 550/1091/161 495/1095/161 +f 542/1098/161 470/981/161 511/1188/161 +f 686/1096/161 683/1221/161 682/1097/161 +f 542/1098/161 511/1188/161 686/1096/161 +f 617/1099/116 535/1222/116 495/1100/116 +f 576/1003/149 577/971/149 578/973/149 +f 683/1103/116 541/1223/116 501/1104/116 +f 538/1106/116 537/1224/116 497/1107/116 +f 513/1109/165 514/1013/159 473/1015/159 +f 515/1110/174 510/923/122 513/925/122 +f 534/1112/116 533/1225/116 493/1113/116 +f 509/1115/123 508/990/151 516/991/152 +f 505/1116/175 504/1025/166 519/1026/167 +f 507/996/140 528/995/140 529/1118/115 +f 506/1119/177 505/1116/175 520/1117/176 +f 515/1120/143 523/1226/143 525/1121/142 +f 568/976/112 571/975/112 535/1122/112 +f 581/1065/116 561/1055/116 562/1046/116 +f 585/1125/178 592/1129/178 593/1126/114 +f 586/1128/161 594/1131/161 592/1129/178 +f 587/1130/141 595/1133/141 594/1131/161 +f 588/1132/116 596/1135/116 595/1133/141 +f 589/1134/179 597/1137/179 596/1135/116 +f 590/1136/148 598/1227/148 597/1137/179 +f 591/1138/160 599/1141/160 598/1139/148 +f 584/1127/114 593/1126/114 599/1141/160 +f 593/1143/109 592/1228/109 596/1144/109 +f 592/1228/109 594/1229/109 596/1144/109 +f 594/1229/109 595/1230/109 596/1144/109 +f 596/1144/109 597/1231/109 598/1232/109 +f 598/1232/109 599/1142/109 596/1144/109 +f 609/1145/114 608/1148/178 601/1146/178 +f 608/1148/178 610/1150/161 602/1149/161 +f 610/1150/161 611/1152/141 603/1151/141 +f 611/1152/141 612/1154/116 604/1153/116 +f 612/1154/116 613/1156/179 605/1155/179 +f 613/1156/179 614/1233/148 606/1157/148 +f 614/1158/148 615/1161/160 607/1159/160 +f 615/1161/160 609/1145/114 600/1147/114 +f 610/1163/112 608/1234/112 614/1164/112 +f 608/1234/112 609/1235/112 614/1164/112 +f 609/1235/112 615/1236/112 614/1164/112 +f 614/1164/112 613/1237/112 612/1238/112 +f 612/1238/112 611/1162/112 614/1164/112 +f 536/1165/116 617/1099/116 616/1101/116 +f 542/1167/180 682/1239/180 492/1168/180 +f 684/1170/181 683/1240/181 686/1171/181 diff --git a/src/main/resources/assets/hbm/models/doors/sliding_seal_door.obj b/src/main/resources/assets/hbm/models/doors/sliding_seal_door.obj new file mode 100644 index 000000000..dc0017cc3 --- /dev/null +++ b/src/main/resources/assets/hbm/models/doors/sliding_seal_door.obj @@ -0,0 +1,2522 @@ +# Blender v2.92.0 OBJ File: 'sliding_seal_door.blend' +# www.blender.org +o frame +v 0.125000 2.000000 -0.500000 +v 0.125000 0.000000 -0.500000 +v 0.125000 0.000000 0.500000 +v 0.125000 2.000000 0.500000 +v 0.125000 0.076037 0.228141 +v 0.125000 0.271859 0.423963 +v 0.125000 0.102272 0.326052 +v 0.125000 0.173948 0.397728 +v 0.125000 1.728141 0.423963 +v 0.125000 1.923963 0.228141 +v 0.125000 1.826052 0.397728 +v 0.125000 1.897728 0.326052 +v 0.125000 0.271859 -0.423963 +v 0.125000 0.076037 -0.228141 +v 0.125000 0.173948 -0.397728 +v 0.125000 0.102272 -0.326052 +v 0.125000 1.923963 -0.228141 +v 0.125000 1.728141 -0.423963 +v 0.125000 1.897728 -0.326052 +v 0.125000 1.826052 -0.397728 +v 0.089033 1.728141 -0.423963 +v 0.089033 1.826052 -0.397728 +v 0.089033 1.897728 -0.326052 +v 0.089033 1.923963 -0.228141 +v 0.089033 0.076037 -0.228141 +v 0.089033 0.102272 -0.326052 +v 0.089033 0.173948 -0.397728 +v 0.089033 0.271859 -0.423963 +v 0.089033 0.271859 0.423963 +v 0.089033 0.173948 0.397728 +v 0.089033 0.102272 0.326052 +v 0.089033 0.076037 0.228141 +v 0.089033 1.923963 0.228141 +v 0.089033 1.897728 0.326052 +v 0.089033 1.826052 0.397728 +v 0.089033 1.728141 0.423963 +v 0.089033 0.036209 -0.233384 +v 0.089033 0.036209 0.233384 +v 0.089033 1.846138 0.432517 +v 0.089033 1.733384 0.463791 +v 0.089033 1.932517 0.346138 +v 0.089033 1.963791 0.233384 +v 0.089033 0.067483 0.346138 +v 0.089033 0.153862 0.432517 +v 0.089033 0.266616 0.463791 +v 0.089033 0.036209 -0.432517 +v 0.089033 0.036209 -0.477970 +v 0.089033 0.036209 -0.346138 +v 0.089033 1.963791 -0.346138 +v 0.089033 1.963791 -0.233384 +v 0.089033 1.963791 -0.432517 +v 0.089033 1.963791 -0.477970 +v 0.125000 0.053035 0.242267 +v 0.125000 0.253733 0.450214 +v 0.125000 0.079924 0.346241 +v 0.125000 0.153384 0.422355 +v 0.125000 1.746267 0.450214 +v 0.125000 1.946965 0.242267 +v 0.125000 1.846616 0.422355 +v 0.125000 1.920076 0.346241 +v 0.125000 0.253733 -0.450214 +v 0.125000 0.053035 -0.242267 +v 0.125000 0.153384 -0.422355 +v 0.125000 0.079924 -0.346241 +v 0.125000 1.946965 -0.242267 +v 0.125000 1.746267 -0.450214 +v 0.125000 1.920076 -0.346241 +v 0.125000 1.846616 -0.422355 +v 0.139289 0.068129 0.233128 +v 0.139289 0.094589 0.333179 +v 0.139289 0.166878 0.406422 +v 0.139289 0.265627 0.433231 +v 0.139289 1.734373 0.433231 +v 0.139289 1.833122 0.406422 +v 0.139289 1.905411 0.333179 +v 0.139289 1.931871 0.233128 +v 0.139289 0.265627 -0.433231 +v 0.139289 0.166878 -0.406422 +v 0.139289 0.094589 -0.333179 +v 0.139289 0.068129 -0.233128 +v 0.139289 1.931871 -0.233128 +v 0.139289 1.905411 -0.333179 +v 0.139289 1.833122 -0.406422 +v 0.139289 1.734373 -0.433231 +v 0.139289 0.058093 0.238676 +v 0.139289 0.084837 0.341109 +v 0.139289 0.157905 0.416095 +v 0.139289 0.257718 0.443541 +v 0.139289 1.742282 0.443541 +v 0.139289 1.842094 0.416095 +v 0.139289 1.915163 0.341109 +v 0.139289 1.941907 0.238676 +v 0.139289 0.257718 -0.443541 +v 0.139289 0.157905 -0.416095 +v 0.139289 0.084837 -0.341109 +v 0.139289 0.058093 -0.238676 +v 0.139289 1.941907 -0.238676 +v 0.139289 1.915163 -0.341109 +v 0.139289 1.842094 -0.416095 +v 0.139289 1.742282 -0.443541 +v -0.125000 2.000000 -0.500000 +v -0.125000 0.000000 -0.500000 +v -0.125000 0.000000 0.500000 +v -0.125000 2.000000 0.500000 +v -0.125000 0.076037 0.228141 +v -0.125000 0.271859 0.423963 +v -0.125000 0.102272 0.326052 +v -0.125000 0.173948 0.397728 +v -0.125000 1.728141 0.423963 +v -0.125000 1.923963 0.228141 +v -0.125000 1.826052 0.397728 +v -0.125000 1.897728 0.326052 +v -0.125000 0.271859 -0.423963 +v -0.125000 0.076037 -0.228141 +v -0.125000 0.173948 -0.397728 +v -0.125000 0.102272 -0.326052 +v -0.125000 1.923963 -0.228141 +v -0.125000 1.728141 -0.423963 +v -0.125000 1.897728 -0.326052 +v -0.125000 1.826052 -0.397728 +v -0.089033 1.728141 -0.423963 +v -0.089033 1.826052 -0.397728 +v -0.089033 1.897728 -0.326052 +v -0.089033 1.923963 -0.228141 +v -0.089033 0.076037 -0.228141 +v -0.089033 0.102272 -0.326052 +v -0.089033 0.173948 -0.397728 +v -0.089033 0.271859 -0.423963 +v -0.089033 0.271859 0.423963 +v -0.089033 0.173948 0.397728 +v -0.089033 0.102272 0.326052 +v -0.089033 0.076037 0.228141 +v -0.089033 1.923963 0.228141 +v -0.089033 1.897728 0.326052 +v -0.089033 1.826052 0.397728 +v -0.089033 1.728141 0.423963 +v -0.089033 0.036209 -0.233384 +v -0.089033 0.036209 0.233384 +v -0.089033 1.846138 0.432517 +v -0.089033 1.733384 0.463791 +v -0.089033 1.932517 0.346138 +v -0.089033 1.963791 0.233384 +v -0.089033 0.067483 0.346138 +v -0.089033 0.153862 0.432517 +v -0.089033 0.266616 0.463791 +v -0.089033 0.036209 -0.432517 +v -0.089033 0.036209 -0.477970 +v -0.089033 0.036209 -0.346138 +v -0.089033 1.963791 -0.346138 +v -0.089033 1.963791 -0.233384 +v -0.089033 1.963791 -0.432517 +v -0.089033 1.963791 -0.477970 +v -0.125000 0.053035 0.242267 +v -0.125000 0.253733 0.450214 +v -0.125000 0.079924 0.346241 +v -0.125000 0.153384 0.422355 +v -0.125000 1.746267 0.450214 +v -0.125000 1.946965 0.242267 +v -0.125000 1.846616 0.422355 +v -0.125000 1.920076 0.346241 +v -0.125000 0.253733 -0.450214 +v -0.125000 0.053035 -0.242267 +v -0.125000 0.153384 -0.422355 +v -0.125000 0.079924 -0.346241 +v -0.125000 1.946965 -0.242267 +v -0.125000 1.746267 -0.450214 +v -0.125000 1.920076 -0.346241 +v -0.125000 1.846616 -0.422355 +v -0.139289 0.068129 0.233128 +v -0.139289 0.094589 0.333179 +v -0.139289 0.166878 0.406422 +v -0.139289 0.265627 0.433231 +v -0.139289 1.734373 0.433231 +v -0.139289 1.833122 0.406422 +v -0.139289 1.905411 0.333179 +v -0.139289 1.931871 0.233128 +v -0.139289 0.265627 -0.433231 +v -0.139289 0.166878 -0.406422 +v -0.139289 0.094589 -0.333179 +v -0.139289 0.068129 -0.233128 +v -0.139289 1.931871 -0.233128 +v -0.139289 1.905411 -0.333179 +v -0.139289 1.833122 -0.406422 +v -0.139289 1.734373 -0.433231 +v -0.139289 0.058093 0.238676 +v -0.139289 0.084837 0.341109 +v -0.139289 0.157905 0.416095 +v -0.139289 0.257718 0.443541 +v -0.139289 1.742282 0.443541 +v -0.139289 1.842094 0.416095 +v -0.139289 1.915163 0.341109 +v -0.139289 1.941907 0.238676 +v -0.139289 0.257718 -0.443541 +v -0.139289 0.157905 -0.416095 +v -0.139289 0.084837 -0.341109 +v -0.139289 0.058093 -0.238676 +v -0.139289 1.941907 -0.238676 +v -0.139289 1.915163 -0.341109 +v -0.139289 1.842094 -0.416095 +v -0.139289 1.742282 -0.443541 +v 0.000000 0.036209 0.233384 +v 0.000000 1.846138 0.432517 +v 0.000000 1.932517 0.346138 +v 0.000000 1.963791 0.233384 +v 0.000000 0.067483 0.346138 +v 0.000000 0.153862 0.432517 +v 0.000000 0.266616 0.463791 +v 0.000000 0.036209 -0.432517 +v 0.000000 0.036209 -0.346138 +v 0.000000 1.963791 -0.346138 +v 0.000000 1.963791 -0.432517 +v 0.000000 1.963791 -0.477970 +v 0.000000 0.036209 -0.233384 +v 0.000000 1.733384 0.463791 +v 0.000000 0.036209 -0.477970 +v 0.000000 1.963791 -0.233384 +vt 0.904854 0.827347 +vt 0.912404 0.923128 +vt 0.904854 0.923128 +vt 0.182166 0.407583 +vt 0.214442 0.424360 +vt 0.160340 0.413227 +vt 0.730026 0.958073 +vt 0.722475 0.652378 +vt 0.730026 0.652378 +vt 0.912404 0.806069 +vt 0.912404 0.827347 +vt 0.904854 0.784791 +vt 0.912404 0.763512 +vt 0.912404 0.784791 +vt 0.904854 0.806069 +vt 0.932696 0.944406 +vt 0.940246 0.923128 +vt 0.940246 0.944406 +vt 0.932696 0.965684 +vt 0.940246 0.965684 +vt 0.932695 0.784790 +vt 0.940246 0.763512 +vt 0.940246 0.784790 +vt 0.932695 0.806068 +vt 0.940246 0.806068 +vt 0.932695 0.827347 +vt 0.940246 0.827347 +vt 0.904854 0.944406 +vt 0.912404 0.944406 +vt 0.904854 0.965684 +vt 0.912404 0.965684 +vt 0.966711 0.756750 +vt 0.974261 0.451055 +vt 0.974261 0.756750 +vt 0.932696 0.923128 +vt 0.932696 0.986962 +vt 0.940246 0.986962 +vt 0.422073 0.482879 +vt 0.433410 0.838040 +vt 0.422073 0.788572 +vt 0.295881 0.650980 +vt 0.282013 0.670433 +vt 0.288578 0.646764 +vt 0.295881 0.787867 +vt 0.282013 0.810216 +vt 0.282013 0.792083 +vt 0.369446 0.638910 +vt 0.340532 0.622066 +vt 0.389999 0.633403 +vt 0.354400 0.790843 +vt 0.340532 0.771391 +vt 0.348893 0.770290 +vt 0.310927 0.802913 +vt 0.282013 0.819757 +vt 0.354400 0.653956 +vt 0.340532 0.631607 +vt 0.365229 0.813192 +vt 0.347097 0.795059 +vt 0.904854 0.986962 +vt 0.912404 0.986962 +vt 0.631115 0.055869 +vt 0.649805 0.032200 +vt 0.649805 0.055869 +vt 0.631115 0.611283 +vt 0.649805 0.586720 +vt 0.649805 0.611283 +vt 0.631115 0.561077 +vt 0.649805 0.536515 +vt 0.649805 0.561077 +vt 0.290374 0.767314 +vt 0.290374 0.671533 +vt 0.282013 0.768414 +vt 0.306711 0.628631 +vt 0.310927 0.635934 +vt 0.340532 0.673409 +vt 0.348893 0.674509 +vt 0.369446 0.805889 +vt 0.388898 0.819757 +vt 0.340532 0.649740 +vt 0.949298 0.452156 +vt 0.957659 0.758947 +vt 0.949298 0.757847 +vt 0.330379 0.622066 +vt 0.331480 0.630427 +vt 0.198143 0.392163 +vt 0.203991 0.371098 +vt 0.214442 0.004526 +vt 0.865192 0.817262 +vt 0.858261 0.797178 +vt 0.861696 0.796063 +vt 0.852813 0.799151 +vt 0.859566 0.820210 +vt 0.856513 0.821732 +vt 0.592572 0.439565 +vt 0.585588 0.459661 +vt 0.589275 0.437907 +vt 0.580143 0.457706 +vt 0.586941 0.436609 +vt 0.583470 0.458607 +vt 0.602693 0.421328 +vt 0.599653 0.419257 +vt 0.583884 0.435080 +vt 0.597329 0.418076 +vt 0.615681 0.405976 +vt 0.618533 0.408287 +vt 0.610906 0.402422 +vt 0.594693 0.416061 +vt 0.858132 0.697391 +vt 0.861606 0.698513 +vt 0.865116 0.677295 +vt 0.861819 0.675637 +vt 0.852687 0.695436 +vt 0.859486 0.674339 +vt 0.856014 0.696337 +vt 0.875237 0.659059 +vt 0.872197 0.656987 +vt 0.856428 0.672810 +vt 0.869873 0.655806 +vt 0.888224 0.643707 +vt 0.891076 0.646018 +vt 0.883449 0.640153 +vt 0.867237 0.653791 +vt 0.981481 0.010131 +vt 0.985505 0.237997 +vt 0.981527 0.237046 +vt 0.203992 0.057788 +vt 0.198143 0.036724 +vt 0.182166 0.021303 +vt 0.160340 0.015659 +vt 0.004526 0.004526 +vt 0.058629 0.015659 +vt 0.036803 0.021303 +vt 0.020825 0.036724 +vt 0.014977 0.057789 +vt 0.004528 0.424360 +vt 0.014978 0.371099 +vt 0.020826 0.392163 +vt 0.036803 0.407583 +vt 0.058629 0.413227 +vt 0.585717 0.559449 +vt 0.583550 0.560522 +vt 0.589353 0.581187 +vt 0.587023 0.582481 +vt 0.597374 0.600993 +vt 0.599696 0.599816 +vt 0.613430 0.614296 +vt 0.615683 0.613092 +vt 0.989529 0.239202 +vt 0.985466 0.008672 +vt 0.989522 0.005561 +vt 0.885969 0.642498 +vt 0.856093 0.798250 +vt 0.861896 0.818916 +vt 0.869918 0.838723 +vt 0.872239 0.837545 +vt 0.885973 0.852026 +vt 0.888226 0.850822 +vt 0.012574 0.918273 +vt 0.008511 0.687744 +vt 0.012567 0.684632 +vt 0.613425 0.404768 +vt 0.004526 0.689203 +vt 0.008550 0.917069 +vt 0.004572 0.916117 +vt 0.867284 0.840731 +vt 0.875277 0.835481 +vt 0.883455 0.854365 +vt 0.580270 0.561422 +vt 0.589153 0.558335 +vt 0.589062 0.460784 +vt 0.993618 0.239807 +vt 0.993618 0.004526 +vt 0.583970 0.584003 +vt 0.592648 0.579533 +vt 0.594741 0.603002 +vt 0.602733 0.597751 +vt 0.016663 0.918878 +vt 0.016663 0.683597 +vt 0.610912 0.616635 +vt 0.631115 0.732934 +vt 0.649805 0.709265 +vt 0.649805 0.732934 +vt 0.631115 0.751066 +vt 0.649805 0.751066 +vt 0.631115 0.014067 +vt 0.649805 0.004526 +vt 0.649805 0.014067 +vt 0.631115 0.032200 +vt 0.631115 0.228619 +vt 0.649805 0.204057 +vt 0.649805 0.228619 +vt 0.631115 0.204057 +vt 0.649805 0.178414 +vt 0.631115 0.586720 +vt 0.631115 0.178414 +vt 0.649805 0.153851 +vt 0.004526 0.674545 +vt 0.214442 0.622066 +vt 0.214442 0.674545 +vt 0.677547 0.004526 +vt 0.730026 0.424358 +vt 0.677547 0.424358 +vt 0.631116 0.760608 +vt 0.649805 0.760608 +vt 0.461152 0.807049 +vt 0.479841 0.402422 +vt 0.479841 0.807049 +vt 0.631115 0.536515 +vt 0.631115 0.709265 +vt 0.631115 0.153851 +vt 0.677547 0.643326 +vt 0.730026 0.433410 +vt 0.730026 0.643326 +vt 0.190397 0.881984 +vt 0.094616 0.874434 +vt 0.190397 0.874434 +vt 0.255771 0.407583 +vt 0.277596 0.413227 +vt 0.223495 0.424360 +vt 0.713423 0.652379 +vt 0.705873 0.958073 +vt 0.705873 0.652379 +vt 0.073338 0.881984 +vt 0.094616 0.881984 +vt 0.030782 0.881984 +vt 0.052060 0.874434 +vt 0.052060 0.881984 +vt 0.073338 0.874434 +vt 0.602077 0.869276 +vt 0.623356 0.861726 +vt 0.623356 0.869276 +vt 0.644634 0.861726 +vt 0.644634 0.869276 +vt 0.442462 0.869276 +vt 0.463740 0.861726 +vt 0.463740 0.869276 +vt 0.485018 0.861726 +vt 0.485018 0.869276 +vt 0.506296 0.861726 +vt 0.506296 0.869276 +vt 0.211675 0.874434 +vt 0.211675 0.881984 +vt 0.232953 0.874434 +vt 0.232953 0.881984 +vt 0.964879 0.004526 +vt 0.972429 0.310220 +vt 0.964879 0.310220 +vt 0.602077 0.861726 +vt 0.665912 0.861726 +vt 0.665912 0.869276 +vt 0.916191 0.004526 +vt 0.904854 0.359687 +vt 0.904855 0.053992 +vt 0.237362 0.790843 +vt 0.223494 0.771391 +vt 0.231855 0.770290 +vt 0.237362 0.653956 +vt 0.223494 0.631607 +vt 0.252408 0.638910 +vt 0.739078 0.631101 +vt 0.767991 0.614257 +vt 0.788545 0.619764 +vt 0.739078 0.481777 +vt 0.752945 0.462324 +vt 0.747438 0.482877 +vt 0.223494 0.622066 +vt 0.272961 0.633403 +vt 0.739078 0.621560 +vt 0.752945 0.599211 +vt 0.763775 0.439975 +vt 0.767991 0.447278 +vt 0.254232 0.874434 +vt 0.254232 0.881984 +vt 0.668494 0.055869 +vt 0.668494 0.611283 +vt 0.668494 0.561077 +vt 0.231855 0.674510 +vt 0.223494 0.673409 +vt 0.248192 0.813192 +vt 0.252408 0.805889 +vt 0.739078 0.579758 +vt 0.747438 0.578658 +vt 0.787444 0.433410 +vt 0.788545 0.441771 +vt 0.955827 0.004526 +vt 0.947465 0.311311 +vt 0.947466 0.005627 +vt 0.271861 0.819757 +vt 0.272961 0.811396 +vt 0.239793 0.392163 +vt 0.233945 0.371098 +vt 0.223494 0.004526 +vt 0.862987 0.061715 +vt 0.869917 0.041630 +vt 0.866422 0.062829 +vt 0.864292 0.038682 +vt 0.857539 0.059741 +vt 0.861238 0.037160 +vt 0.869842 0.404863 +vt 0.862858 0.384768 +vt 0.866332 0.383645 +vt 0.857413 0.386723 +vt 0.864212 0.407819 +vt 0.861155 0.409348 +vt 0.879963 0.423098 +vt 0.866546 0.406520 +vt 0.874599 0.426351 +vt 0.871964 0.428366 +vt 0.892950 0.438449 +vt 0.895802 0.436138 +vt 0.888175 0.442003 +vt 0.862858 0.161501 +vt 0.866332 0.160379 +vt 0.869842 0.181597 +vt 0.857413 0.163457 +vt 0.864212 0.184553 +vt 0.861155 0.186082 +vt 0.879963 0.199833 +vt 0.866545 0.183254 +vt 0.874599 0.203086 +vt 0.871964 0.205101 +vt 0.892950 0.215184 +vt 0.895802 0.212873 +vt 0.888175 0.218738 +vt 0.987299 0.699025 +vt 0.983360 0.926896 +vt 0.983313 0.700458 +vt 0.233945 0.057789 +vt 0.239793 0.036724 +vt 0.255771 0.021303 +vt 0.277597 0.015659 +vt 0.433410 0.004526 +vt 0.379308 0.015659 +vt 0.401134 0.021304 +vt 0.417111 0.036724 +vt 0.422960 0.057789 +vt 0.433410 0.424360 +vt 0.422959 0.371097 +vt 0.417111 0.392162 +vt 0.401133 0.407583 +vt 0.379308 0.413227 +vt 0.860741 0.385822 +vt 0.862986 0.284980 +vt 0.860818 0.283907 +vt 0.866621 0.263241 +vt 0.864291 0.261947 +vt 0.874643 0.243433 +vt 0.890699 0.230129 +vt 0.876965 0.244611 +vt 0.987338 0.927885 +vt 0.991379 0.695962 +vt 0.991386 0.929157 +vt 0.876923 0.201904 +vt 0.890695 0.216393 +vt 0.860741 0.162555 +vt 0.860819 0.060642 +vt 0.866622 0.039976 +vt 0.874644 0.020169 +vt 0.890699 0.006865 +vt 0.876965 0.021346 +vt 0.987338 0.683984 +vt 0.991379 0.452060 +vt 0.991386 0.685255 +vt 0.876923 0.425169 +vt 0.890694 0.439658 +vt 0.987299 0.455123 +vt 0.983360 0.682994 +vt 0.983313 0.456556 +vt 0.872010 0.018160 +vt 0.880002 0.023411 +vt 0.888181 0.004526 +vt 0.892952 0.008069 +vt 0.895802 0.010374 +vt 0.857538 0.283007 +vt 0.866421 0.286094 +vt 0.995474 0.694957 +vt 0.995474 0.929807 +vt 0.861238 0.260425 +vt 0.869917 0.264894 +vt 0.872009 0.241424 +vt 0.880002 0.246675 +vt 0.995474 0.451055 +vt 0.995474 0.685905 +vt 0.888181 0.227790 +vt 0.892952 0.231334 +vt 0.895802 0.233638 +vt 0.668494 0.732934 +vt 0.668494 0.751066 +vt 0.668494 0.014067 +vt 0.668494 0.032200 +vt 0.668494 0.228619 +vt 0.668494 0.204057 +vt 0.668494 0.586720 +vt 0.668494 0.178414 +vt 0.668494 0.760608 +vt 0.442462 0.402422 +vt 0.442462 0.807049 +vt 0.668494 0.536515 +vt 0.668494 0.709265 +vt 0.668494 0.153851 +vt 0.739078 0.424358 +vt 0.791557 0.004526 +vt 0.791557 0.424358 +vt 0.722475 0.958073 +vt 0.904854 0.763512 +vt 0.932695 0.763512 +vt 0.966711 0.451055 +vt 0.433410 0.433412 +vt 0.331480 0.808420 +vt 0.389999 0.811396 +vt 0.957659 0.451055 +vt 0.891076 0.848518 +vt 0.618533 0.610788 +vt 0.631115 0.004526 +vt 0.004526 0.622066 +vt 0.730026 0.004526 +vt 0.461151 0.402422 +vt 0.677547 0.433410 +vt 0.713423 0.958073 +vt 0.030782 0.874434 +vt 0.442462 0.861726 +vt 0.972429 0.004526 +vt 0.916191 0.409154 +vt 0.230059 0.795060 +vt 0.223494 0.649740 +vt 0.745642 0.458108 +vt 0.739078 0.603427 +vt 0.955827 0.312412 +vt 0.668494 0.004526 +vt 0.739078 0.004526 +vn 0.0000 -0.9914 -0.1305 +vn 0.0000 -0.9914 0.1305 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.1305 -0.9914 +vn 0.0000 -0.1305 -0.9914 +vn 0.0000 -0.8660 -0.5000 +vn 0.0000 -0.5000 -0.8660 +vn 0.0000 0.8660 -0.5000 +vn 0.0000 0.9914 -0.1305 +vn 0.0000 0.5000 -0.8660 +vn 0.0000 0.5000 0.8660 +vn 0.0000 0.1305 0.9914 +vn 0.0000 0.8660 0.5000 +vn 0.0000 0.9914 0.1305 +vn 0.0000 -0.8660 0.5000 +vn 0.0000 -0.5000 0.8660 +vn 0.0000 -0.1305 0.9914 +vn -1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -0.9909 -0.1349 +vn 0.0000 -0.8638 -0.5038 +vn 0.0000 -0.5038 -0.8638 +vn 0.0000 -0.1349 -0.9909 +vn 0.5785 -0.7172 0.3885 +vn 0.5147 -0.8479 0.1271 +vn 0.5072 -0.8566 0.0950 +vn 0.3608 0.9232 -0.1322 +vn 0.4265 0.7984 -0.4251 +vn 0.4330 0.7770 -0.4570 +vn 0.5785 0.7172 0.3885 +vn 0.5147 0.8479 0.1271 +vn 0.5847 0.6955 0.4177 +vn 0.3608 -0.9232 -0.1322 +vn 0.4265 -0.7984 -0.4251 +vn 0.3550 -0.9290 -0.1043 +vn 0.6108 0.3862 0.6912 +vn 0.6133 0.4076 0.6765 +vn 0.4330 -0.7770 -0.4570 +vn 0.4732 -0.4444 -0.7607 +vn 0.5767 0.1242 0.8074 +vn 0.5686 0.0871 0.8180 +vn 0.4489 -0.1331 -0.8836 +vn 0.4742 -0.4551 -0.7537 +vn 0.5147 -0.8479 -0.1271 +vn 0.5072 -0.8566 -0.0950 +vn 0.5785 -0.7172 -0.3885 +vn 0.5847 -0.6955 -0.4177 +vn 0.3608 0.9232 0.1322 +vn 0.4265 0.7984 0.4251 +vn 0.3550 0.9290 0.1043 +vn 0.6108 -0.3862 -0.6912 +vn 0.6133 -0.4076 -0.6765 +vn 0.4330 0.7770 0.4570 +vn 0.4732 0.4444 0.7607 +vn 0.5767 -0.1242 -0.8074 +vn 0.5686 -0.0871 -0.8180 +vn 0.4489 0.1331 0.8836 +vn 0.4742 0.4551 0.7537 +vn 0.5767 0.1242 -0.8074 +vn 0.5686 0.0871 -0.8180 +vn 0.5767 -0.1242 0.8074 +vn 0.5686 -0.0871 0.8180 +vn 0.4732 0.4444 -0.7607 +vn 0.4742 0.4551 -0.7537 +vn 0.6108 -0.3862 0.6912 +vn 0.5847 -0.6955 0.4177 +vn 0.4489 0.1331 -0.8836 +vn 0.4446 0.1047 -0.8896 +vn 0.6133 -0.4076 0.6765 +vn 0.3550 -0.9290 0.1043 +vn 0.3608 -0.9232 0.1322 +vn 0.5072 0.8566 -0.0950 +vn 0.5072 0.8566 0.0950 +vn 0.4489 -0.1331 0.8836 +vn 0.4446 0.1047 0.8896 +vn 0.4265 -0.7984 0.4251 +vn 0.4330 -0.7770 0.4570 +vn 0.5785 0.7172 -0.3885 +vn 0.5147 0.8479 -0.1271 +vn 0.3550 0.9290 -0.1043 +vn 0.4732 -0.4444 0.7607 +vn 0.4742 -0.4551 0.7537 +vn 0.6108 0.3862 -0.6912 +vn 0.5847 0.6955 -0.4177 +vn 0.4446 -0.1047 -0.8896 +vn 0.4446 -0.1047 0.8896 +vn 0.6133 0.4076 -0.6765 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.1349 -0.9909 +vn 0.0000 0.5038 -0.8638 +vn 0.0000 0.8638 -0.5038 +vn 0.0000 0.9909 -0.1349 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn -0.5147 -0.8479 0.1271 +vn -0.5785 -0.7172 0.3885 +vn -0.5072 -0.8566 0.0950 +vn -0.4265 0.7984 -0.4251 +vn -0.3608 0.9232 -0.1322 +vn -0.4330 0.7770 -0.4570 +vn -0.5785 0.7172 0.3885 +vn -0.5147 0.8479 0.1271 +vn -0.5072 0.8566 0.0950 +vn -0.3608 -0.9232 -0.1322 +vn -0.4265 -0.7984 -0.4251 +vn -0.4330 -0.7770 -0.4570 +vn -0.6108 0.3862 0.6912 +vn -0.5847 0.6955 0.4177 +vn -0.4732 -0.4444 -0.7607 +vn -0.4742 -0.4551 -0.7537 +vn -0.5767 0.1242 0.8074 +vn -0.5686 0.0871 0.8180 +vn -0.4489 -0.1331 -0.8836 +vn -0.5147 -0.8479 -0.1271 +vn -0.5072 -0.8566 -0.0950 +vn -0.5785 -0.7172 -0.3885 +vn -0.3608 0.9232 0.1322 +vn -0.4265 0.7984 0.4251 +vn -0.4330 0.7770 0.4570 +vn -0.6108 -0.3862 -0.6912 +vn -0.5847 -0.6955 -0.4177 +vn -0.4732 0.4444 0.7607 +vn -0.4742 0.4551 0.7537 +vn -0.5767 -0.1242 -0.8074 +vn -0.5686 -0.0871 -0.8180 +vn -0.4489 0.1331 0.8836 +vn -0.5767 0.1242 -0.8074 +vn -0.5686 0.0871 -0.8180 +vn -0.5767 -0.1242 0.8074 +vn -0.5686 -0.0871 0.8180 +vn -0.4732 0.4444 -0.7607 +vn -0.4742 0.4551 -0.7537 +vn -0.5847 -0.6955 0.4177 +vn -0.6108 -0.3862 0.6912 +vn -0.4489 0.1331 -0.8836 +vn -0.3550 -0.9290 0.1043 +vn -0.3608 -0.9232 0.1322 +vn -0.5072 0.8566 -0.0950 +vn -0.4446 0.1047 0.8896 +vn -0.4489 -0.1331 0.8836 +vn -0.4265 -0.7984 0.4251 +vn -0.4330 -0.7770 0.4570 +vn -0.5147 0.8479 -0.1271 +vn -0.5785 0.7172 -0.3885 +vn -0.3550 0.9290 -0.1043 +vn -0.4732 -0.4444 0.7607 +vn -0.4742 -0.4551 0.7537 +vn -0.5847 0.6955 -0.4177 +vn -0.6108 0.3862 -0.6912 +vn -0.4446 -0.1047 -0.8896 +vn -0.3550 -0.9290 -0.1043 +vn -0.6133 0.4076 0.6765 +vn -0.3550 0.9290 0.1043 +vn -0.6133 -0.4076 -0.6765 +vn -0.6133 -0.4076 0.6765 +vn -0.4446 0.1047 -0.8896 +vn -0.4446 -0.1047 0.8896 +vn -0.6133 0.4076 -0.6765 +s 1 +f 10/1/1 24/2/2 17/3/2 +f 67/4/3 1/5/3 65/6/3 +f 6/7/4 36/8/5 9/9/5 +f 10/1/1 34/10/6 33/11/1 +f 11/12/7 36/13/5 35/14/7 +f 12/15/6 35/14/7 34/10/6 +f 7/16/8 32/17/9 31/18/8 +f 8/19/10 31/18/8 30/20/10 +f 15/21/11 28/22/12 27/23/11 +f 16/24/13 27/23/11 26/25/13 +f 14/26/14 26/25/13 25/27/14 +f 19/28/15 24/2/2 23/29/15 +f 20/30/16 23/29/15 22/31/16 +f 13/32/12 21/33/17 28/34/12 +f 14/26/14 32/17/9 5/35/9 +f 6/36/4 30/20/10 29/37/4 +f 21/38/18 47/39/18 28/40/18 +f 31/41/18 38/42/18 43/43/18 +f 26/44/18 46/45/18 48/46/18 +f 22/47/18 52/48/18 21/49/18 +f 34/50/18 42/51/18 33/52/18 +f 27/53/18 47/54/18 46/45/18 +f 23/55/18 51/56/18 22/47/18 +f 34/50/18 39/57/18 41/58/18 +f 18/59/17 22/31/16 21/60/17 +f 37/61/19 209/62/19 213/63/19 +f 42/64/20 203/65/21 204/66/20 +f 39/67/22 214/68/23 202/69/22 +f 25/70/18 38/42/18 32/71/18 +f 26/44/18 37/72/18 25/70/18 +f 31/41/18 44/73/18 30/74/18 +f 33/52/18 50/75/18 24/76/18 +f 35/77/18 40/78/18 39/57/18 +f 23/55/18 50/75/18 49/79/18 +f 29/80/18 40/81/18 36/82/18 +f 30/74/18 45/83/18 29/84/18 +f 1/5/3 67/4/3 68/85/3 +f 68/85/3 66/86/3 1/5/3 +f 66/86/3 2/87/3 1/5/3 +f 19/88/24 81/89/25 17/90/26 +f 65/91/27 98/92/28 67/93/29 +f 16/94/30 80/95/31 79/96/32 +f 62/97/33 95/98/34 96/99/35 +f 15/100/36 79/96/32 78/101/37 +f 64/102/38 94/103/39 95/98/34 +f 15/100/36 77/104/40 13/105/41 +f 61/106/42 94/103/39 63/107/43 +f 17/90/26 76/108/44 10/109/45 +f 12/110/46 76/108/44 75/111/47 +f 58/112/48 91/113/49 92/114/50 +f 11/115/51 75/111/47 74/116/52 +f 60/117/53 90/118/54 91/113/49 +f 11/115/51 73/119/55 9/120/56 +f 57/121/57 90/118/54 59/122/58 +f 9/123/56 72/124/59 6/125/60 +f 61/126/3 63/127/3 2/87/3 +f 64/128/3 2/87/3 63/127/3 +f 62/129/3 2/87/3 64/128/3 +f 62/129/3 3/130/3 2/87/3 +f 53/131/3 55/132/3 3/130/3 +f 56/133/3 3/130/3 55/132/3 +f 54/134/3 3/130/3 56/133/3 +f 54/134/3 4/135/3 3/130/3 +f 57/136/3 59/137/3 4/135/3 +f 60/138/3 4/135/3 59/137/3 +f 58/139/3 4/135/3 60/138/3 +f 58/139/3 1/5/3 4/135/3 +f 96/99/3 79/96/3 80/95/3 +f 96/99/3 69/140/3 85/141/3 +f 85/141/3 70/142/3 86/143/3 +f 87/144/3 70/142/3 71/145/3 +f 88/146/3 71/145/3 72/147/3 +f 88/148/3 73/149/3 89/150/3 +f 89/151/3 74/116/3 90/118/3 +f 90/118/3 75/111/3 91/113/3 +f 92/114/3 75/111/3 76/108/3 +f 92/114/3 81/89/3 97/152/3 +f 97/152/3 82/153/3 98/92/3 +f 99/154/3 82/153/3 83/155/3 +f 100/156/3 83/155/3 84/157/3 +f 100/158/3 77/159/3 93/160/3 +f 93/161/3 78/101/3 94/103/3 +f 94/103/3 79/96/3 95/98/3 +f 13/162/41 84/163/61 18/164/62 +f 67/93/29 99/154/63 68/165/64 +f 20/166/65 82/153/66 19/88/24 +f 66/167/67 99/154/63 100/156/68 +f 20/166/65 84/157/61 83/155/69 +f 62/97/33 85/141/70 53/168/71 +f 5/169/72 80/95/31 14/170/73 +f 54/171/74 89/150/75 57/172/57 +f 53/168/71 86/143/76 55/173/77 +f 7/174/78 69/140/79 5/169/72 +f 58/112/48 97/152/80 65/91/27 +f 55/173/77 87/144/81 56/175/82 +f 8/176/83 70/142/84 7/174/78 +f 66/177/67 93/160/85 61/178/42 +f 54/179/74 87/144/81 88/146/86 +f 8/176/83 72/147/59 71/145/87 +f 49/180/88 216/181/88 210/182/88 +f 51/183/88 210/182/88 211/184/88 +f 46/185/19 215/186/19 208/187/19 +f 48/188/19 208/187/19 209/62/19 +f 45/189/89 206/190/90 207/191/89 +f 44/192/90 205/193/91 206/190/90 +f 41/194/21 202/69/22 203/65/21 +f 43/195/91 201/196/92 205/193/91 +f 102/197/88 3/198/88 103/199/88 +f 101/200/93 2/201/93 102/202/93 +f 52/203/88 211/184/88 212/204/88 +f 212/205/94 47/206/94 52/207/94 +f 207/191/89 40/208/23 45/189/89 +f 204/66/20 50/209/88 42/64/20 +f 213/63/19 38/210/92 37/61/19 +f 101/211/19 4/212/19 1/213/19 +f 124/214/2 110/215/1 117/216/2 +f 167/217/18 165/218/18 101/219/18 +f 136/220/5 106/221/4 109/222/5 +f 134/223/6 110/215/1 133/224/1 +f 136/225/5 111/226/7 135/227/7 +f 135/227/7 112/228/6 134/223/6 +f 132/229/9 107/230/8 131/231/8 +f 131/231/8 108/232/10 130/233/10 +f 128/234/12 115/235/11 127/236/11 +f 127/236/11 116/237/13 126/238/13 +f 126/238/13 114/239/14 125/240/14 +f 124/214/2 119/241/15 123/242/15 +f 123/242/15 120/243/16 122/244/16 +f 121/245/17 113/246/12 128/247/12 +f 132/229/9 114/239/14 105/248/9 +f 130/233/10 106/249/4 129/250/4 +f 147/251/3 121/252/3 128/253/3 +f 131/254/3 138/255/3 132/256/3 +f 126/257/3 146/258/3 127/259/3 +f 152/260/3 122/261/3 121/262/3 +f 142/263/3 134/264/3 133/265/3 +f 127/259/3 147/266/3 128/267/3 +f 151/268/3 123/269/3 122/261/3 +f 134/264/3 139/270/3 135/271/3 +f 122/244/16 118/272/17 121/273/17 +f 209/62/19 137/274/19 213/63/19 +f 203/65/21 142/275/20 204/66/20 +f 214/68/23 139/276/22 202/69/22 +f 138/255/3 125/277/3 132/256/3 +f 137/278/3 126/257/3 125/277/3 +f 144/279/3 131/254/3 130/280/3 +f 150/281/3 133/265/3 124/282/3 +f 135/271/3 140/283/3 136/284/3 +f 123/269/3 150/281/3 124/282/3 +f 140/285/3 129/286/3 136/287/3 +f 145/288/3 130/280/3 129/289/3 +f 101/219/18 168/290/18 167/217/18 +f 168/290/18 101/219/18 166/291/18 +f 102/292/18 166/291/18 101/219/18 +f 181/293/95 119/294/96 117/295/97 +f 198/296/98 165/297/99 167/298/100 +f 116/299/101 180/300/102 114/301/103 +f 162/302/104 195/303/105 164/304/106 +f 115/305/107 179/306/108 116/299/101 +f 164/304/106 194/307/109 163/308/110 +f 177/309/111 115/305/107 113/310/112 +f 194/307/109 161/311/113 163/308/110 +f 176/312/114 117/295/97 110/313/115 +f 112/314/116 176/312/114 110/313/115 +f 158/315/117 191/316/118 160/317/119 +f 111/318/120 175/319/121 112/314/116 +f 160/317/119 190/320/122 159/321/123 +f 173/322/124 111/318/120 109/323/125 +f 190/320/122 157/324/126 159/321/123 +f 172/325/127 109/326/125 106/327/128 +f 161/328/18 102/292/18 163/329/18 +f 164/330/18 163/329/18 102/292/18 +f 162/331/18 164/330/18 102/292/18 +f 103/332/18 162/331/18 102/292/18 +f 153/333/18 103/332/18 155/334/18 +f 156/335/18 155/334/18 103/332/18 +f 154/336/18 156/335/18 103/332/18 +f 104/337/18 154/336/18 103/332/18 +f 157/338/18 104/337/18 159/339/18 +f 160/340/18 159/339/18 104/337/18 +f 158/341/18 160/340/18 104/337/18 +f 101/219/18 158/341/18 104/337/18 +f 179/306/18 196/342/18 180/300/18 +f 169/343/18 196/342/18 185/344/18 +f 170/345/18 185/344/18 186/346/18 +f 187/347/18 170/345/18 186/346/18 +f 188/348/18 171/349/18 187/347/18 +f 173/350/18 188/351/18 189/352/18 +f 174/353/18 189/354/18 190/320/18 +f 175/319/18 190/320/18 191/316/18 +f 192/355/18 175/319/18 191/316/18 +f 181/293/18 192/355/18 197/356/18 +f 182/357/18 197/356/18 198/296/18 +f 199/358/18 182/357/18 198/296/18 +f 200/359/18 183/360/18 199/358/18 +f 177/361/18 200/362/18 193/363/18 +f 178/364/18 193/365/18 194/307/18 +f 179/306/18 194/307/18 195/303/18 +f 184/366/129 113/367/112 118/368/130 +f 199/358/131 167/298/100 168/369/132 +f 182/357/133 120/370/134 119/294/96 +f 166/371/135 199/358/131 168/369/132 +f 120/370/134 184/372/129 118/373/130 +f 185/344/136 162/302/104 153/374/137 +f 180/300/102 105/375/138 114/301/103 +f 189/352/139 154/376/140 157/377/126 +f 186/346/141 153/374/137 155/378/142 +f 169/343/143 107/379/144 105/375/138 +f 197/356/145 158/315/117 165/297/99 +f 187/347/146 155/378/142 156/380/147 +f 170/345/148 108/381/149 107/379/144 +f 193/363/150 166/382/135 161/383/113 +f 154/384/140 187/347/146 156/380/147 +f 108/381/149 172/385/127 106/386/128 +f 216/181/88 149/387/88 210/182/88 +f 210/182/88 151/388/88 211/184/88 +f 215/186/19 146/389/19 208/187/19 +f 208/187/19 148/390/19 209/62/19 +f 206/190/90 145/391/89 207/191/89 +f 205/193/91 144/392/90 206/190/90 +f 202/69/22 141/393/21 203/65/21 +f 201/196/92 143/394/91 205/193/91 +f 211/184/88 152/395/88 212/204/88 +f 147/396/94 212/205/94 152/397/94 +f 140/398/23 207/191/89 145/391/89 +f 150/399/88 204/66/20 142/275/20 +f 138/400/92 213/63/19 137/274/19 +f 104/401/94 3/402/94 4/403/94 +f 10/1/1 33/11/1 24/2/2 +f 6/7/4 29/404/4 36/8/5 +f 10/1/1 12/15/6 34/10/6 +f 11/12/7 9/405/5 36/13/5 +f 12/15/6 11/12/7 35/14/7 +f 7/16/8 5/35/9 32/17/9 +f 8/19/10 7/16/8 31/18/8 +f 15/21/11 13/406/12 28/22/12 +f 16/24/13 15/21/11 27/23/11 +f 14/26/14 16/24/13 26/25/13 +f 19/28/15 17/3/2 24/2/2 +f 20/30/16 19/28/15 23/29/15 +f 13/32/12 18/407/17 21/33/17 +f 14/26/14 25/27/14 32/17/9 +f 6/36/4 8/19/10 30/20/10 +f 21/38/18 52/408/18 47/39/18 +f 31/41/18 32/71/18 38/42/18 +f 26/44/18 27/53/18 46/45/18 +f 22/47/18 51/56/18 52/48/18 +f 34/50/18 41/58/18 42/51/18 +f 27/53/18 28/409/18 47/54/18 +f 23/55/18 49/79/18 51/56/18 +f 34/50/18 35/77/18 39/57/18 +f 18/59/17 20/30/16 22/31/16 +f 37/61/19 48/188/19 209/62/19 +f 42/64/20 41/194/21 203/65/21 +f 39/67/22 40/208/23 214/68/23 +f 25/70/18 37/72/18 38/42/18 +f 26/44/18 48/46/18 37/72/18 +f 31/41/18 43/43/18 44/73/18 +f 33/52/18 42/51/18 50/75/18 +f 35/77/18 36/410/18 40/78/18 +f 23/55/18 24/76/18 50/75/18 +f 29/80/18 45/411/18 40/81/18 +f 30/74/18 44/73/18 45/83/18 +f 66/86/3 61/126/3 2/87/3 +f 19/88/24 82/153/66 81/89/25 +f 65/91/27 97/152/80 98/92/28 +f 16/94/30 14/170/73 80/95/31 +f 62/97/33 64/102/38 95/98/34 +f 15/100/36 16/94/30 79/96/32 +f 64/102/38 63/107/43 94/103/39 +f 15/100/36 78/101/37 77/104/40 +f 61/106/42 93/161/85 94/103/39 +f 17/90/26 81/89/25 76/108/44 +f 12/110/46 10/109/45 76/108/44 +f 58/112/48 60/117/53 91/113/49 +f 11/115/51 12/110/46 75/111/47 +f 60/117/53 59/122/58 90/118/54 +f 11/115/51 74/116/52 73/119/55 +f 57/121/57 89/151/75 90/118/54 +f 9/123/56 73/149/55 72/124/59 +f 62/129/3 53/131/3 3/130/3 +f 54/134/3 57/136/3 4/135/3 +f 58/139/3 65/6/3 1/5/3 +f 96/99/3 95/98/3 79/96/3 +f 96/99/3 80/95/3 69/140/3 +f 85/141/3 69/140/3 70/142/3 +f 87/144/3 86/143/3 70/142/3 +f 88/146/3 87/144/3 71/145/3 +f 88/148/3 72/124/3 73/149/3 +f 89/151/3 73/119/3 74/116/3 +f 90/118/3 74/116/3 75/111/3 +f 92/114/3 91/113/3 75/111/3 +f 92/114/3 76/108/3 81/89/3 +f 97/152/3 81/89/3 82/153/3 +f 99/154/3 98/92/3 82/153/3 +f 100/156/3 99/154/3 83/155/3 +f 100/158/3 84/163/3 77/159/3 +f 93/161/3 77/104/3 78/101/3 +f 94/103/3 78/101/3 79/96/3 +f 13/162/41 77/159/40 84/163/61 +f 67/93/29 98/92/28 99/154/63 +f 20/166/65 83/155/69 82/153/66 +f 66/167/67 68/165/64 99/154/63 +f 20/166/65 18/412/62 84/157/61 +f 62/97/33 96/99/35 85/141/70 +f 5/169/72 69/140/79 80/95/31 +f 54/171/74 88/148/86 89/150/75 +f 53/168/71 85/141/70 86/143/76 +f 7/174/78 70/142/84 69/140/79 +f 58/112/48 92/114/50 97/152/80 +f 55/173/77 86/143/76 87/144/81 +f 8/176/83 71/145/87 70/142/84 +f 66/177/67 100/158/68 93/160/85 +f 54/179/74 56/175/82 87/144/81 +f 8/176/83 6/413/60 72/147/59 +f 49/180/88 50/209/88 216/181/88 +f 51/183/88 49/180/88 210/182/88 +f 46/185/19 47/414/19 215/186/19 +f 48/188/19 46/185/19 208/187/19 +f 45/189/89 44/192/90 206/190/90 +f 44/192/90 43/195/91 205/193/91 +f 41/194/21 39/67/22 202/69/22 +f 43/195/91 38/210/92 201/196/92 +f 102/197/88 2/415/88 3/198/88 +f 101/200/93 1/416/93 2/201/93 +f 52/203/88 51/183/88 211/184/88 +f 212/205/94 215/417/94 47/206/94 +f 207/191/89 214/68/23 40/208/23 +f 204/66/20 216/181/88 50/209/88 +f 213/63/19 201/196/92 38/210/92 +f 101/211/19 104/418/19 4/212/19 +f 124/214/2 133/224/1 110/215/1 +f 136/220/5 129/419/4 106/221/4 +f 134/223/6 112/228/6 110/215/1 +f 136/225/5 109/420/5 111/226/7 +f 135/227/7 111/226/7 112/228/6 +f 132/229/9 105/248/9 107/230/8 +f 131/231/8 107/230/8 108/232/10 +f 128/234/12 113/421/12 115/235/11 +f 127/236/11 115/235/11 116/237/13 +f 126/238/13 116/237/13 114/239/14 +f 124/214/2 117/216/2 119/241/15 +f 123/242/15 119/241/15 120/243/16 +f 121/245/17 118/422/17 113/246/12 +f 132/229/9 125/240/14 114/239/14 +f 130/233/10 108/232/10 106/249/4 +f 147/251/3 152/423/3 121/252/3 +f 131/254/3 143/424/3 138/255/3 +f 126/257/3 148/425/3 146/258/3 +f 152/260/3 151/268/3 122/261/3 +f 142/263/3 141/426/3 134/264/3 +f 127/259/3 146/258/3 147/266/3 +f 151/268/3 149/427/3 123/269/3 +f 134/264/3 141/426/3 139/270/3 +f 122/244/16 120/243/16 118/272/17 +f 209/62/19 148/390/19 137/274/19 +f 203/65/21 141/393/21 142/275/20 +f 214/68/23 140/398/23 139/276/22 +f 138/255/3 137/278/3 125/277/3 +f 137/278/3 148/425/3 126/257/3 +f 144/279/3 143/424/3 131/254/3 +f 150/281/3 142/263/3 133/265/3 +f 135/271/3 139/270/3 140/283/3 +f 123/269/3 149/427/3 150/281/3 +f 140/285/3 145/428/3 129/286/3 +f 145/288/3 144/279/3 130/280/3 +f 102/292/18 161/328/18 166/291/18 +f 181/293/95 182/357/133 119/294/96 +f 198/296/98 197/356/145 165/297/99 +f 116/299/101 179/306/108 180/300/102 +f 162/302/104 196/342/151 195/303/105 +f 115/305/107 178/364/152 179/306/108 +f 164/304/106 195/303/105 194/307/109 +f 177/309/111 178/364/152 115/305/107 +f 194/307/109 193/365/150 161/311/113 +f 176/312/114 181/293/95 117/295/97 +f 112/314/116 175/319/121 176/312/114 +f 158/315/117 192/355/153 191/316/118 +f 111/318/120 174/353/154 175/319/121 +f 160/317/119 191/316/118 190/320/122 +f 173/322/124 174/353/154 111/318/120 +f 190/320/122 189/354/139 157/324/126 +f 172/325/127 173/350/124 109/326/125 +f 103/332/18 153/333/18 162/331/18 +f 104/337/18 157/338/18 154/336/18 +f 101/219/18 165/218/18 158/341/18 +f 179/306/18 195/303/18 196/342/18 +f 169/343/18 180/300/18 196/342/18 +f 170/345/18 169/343/18 185/344/18 +f 187/347/18 171/349/18 170/345/18 +f 188/348/18 172/385/18 171/349/18 +f 173/350/18 172/325/18 188/351/18 +f 174/353/18 173/322/18 189/354/18 +f 175/319/18 174/353/18 190/320/18 +f 192/355/18 176/312/18 175/319/18 +f 181/293/18 176/312/18 192/355/18 +f 182/357/18 181/293/18 197/356/18 +f 199/358/18 183/360/18 182/357/18 +f 200/359/18 184/372/18 183/360/18 +f 177/361/18 184/366/18 200/362/18 +f 178/364/18 177/309/18 193/365/18 +f 179/306/18 178/364/18 194/307/18 +f 184/366/129 177/361/111 113/367/112 +f 199/358/131 198/296/98 167/298/100 +f 182/357/133 183/360/155 120/370/134 +f 166/371/135 200/359/156 199/358/131 +f 120/370/134 183/360/155 184/372/129 +f 185/344/136 196/342/151 162/302/104 +f 180/300/102 169/343/143 105/375/138 +f 189/352/139 188/351/157 154/376/140 +f 186/346/141 185/344/136 153/374/137 +f 169/343/143 170/345/148 107/379/144 +f 197/356/145 192/355/153 158/315/117 +f 187/347/146 186/346/141 155/378/142 +f 170/345/148 171/349/158 108/381/149 +f 193/363/150 200/362/156 166/382/135 +f 154/384/140 188/348/157 187/347/146 +f 108/381/149 171/349/158 172/385/127 +f 216/181/88 150/399/88 149/387/88 +f 210/182/88 149/387/88 151/388/88 +f 215/186/19 147/429/19 146/389/19 +f 208/187/19 146/389/19 148/390/19 +f 206/190/90 144/392/90 145/391/89 +f 205/193/91 143/394/91 144/392/90 +f 202/69/22 139/276/22 141/393/21 +f 201/196/92 138/400/92 143/394/91 +f 211/184/88 151/388/88 152/395/88 +f 147/396/94 215/417/94 212/205/94 +f 140/398/23 214/68/23 207/191/89 +f 150/399/88 216/181/88 204/66/20 +f 138/400/92 201/196/92 213/63/19 +f 104/401/94 103/430/94 3/402/94 +o door +v 0.089033 0.062912 -0.229749 +v 0.089033 0.062912 0.229749 +v 0.089033 1.832227 0.408665 +v 0.089033 1.908665 0.332227 +v 0.089033 1.937088 0.229749 +v 0.089033 0.091335 0.332227 +v 0.089033 0.167773 0.408665 +v 0.089033 0.167773 -0.408665 +v 0.089033 0.091335 -0.332227 +v 0.089033 1.908665 -0.332227 +v 0.089033 1.937088 -0.229749 +v 0.089033 1.832227 -0.408665 +v 0.089033 0.036209 0.233384 +v 0.089033 0.036209 -0.233384 +v 0.089033 1.846138 0.432517 +v 0.089033 1.733384 0.463791 +v 0.089033 1.932517 0.346138 +v 0.089033 1.963791 0.233384 +v 0.089033 0.067483 0.346138 +v 0.089033 0.153862 0.432517 +v 0.089033 0.266616 0.463791 +v 0.089033 0.153862 -0.432517 +v 0.089033 0.266616 -0.463791 +v 0.089033 0.067483 -0.346138 +v 0.089033 1.932517 -0.346138 +v 0.089033 1.963791 -0.233384 +v 0.089033 1.846138 -0.432517 +v 0.089033 1.733384 -0.463791 +v 0.089033 1.440030 -0.463791 +v 0.089033 0.559970 0.463791 +v 0.089033 0.559970 -0.463791 +v 0.089033 0.853323 -0.463791 +v 0.089033 1.146677 -0.463791 +v 0.089033 1.440030 0.463791 +v 0.089033 1.146677 0.463791 +v 0.089033 0.853323 0.463791 +v 0.067522 0.088680 0.216673 +v 0.067522 0.088680 -0.216673 +v 0.067522 1.809342 0.385405 +v 0.067522 1.883679 0.313317 +v 0.067522 1.911320 0.216673 +v 0.067522 0.116321 0.313317 +v 0.067522 0.190658 0.385405 +v 0.067522 0.190658 -0.385405 +v 0.067522 0.116321 -0.313317 +v 0.067522 1.883679 -0.313317 +v 0.067522 1.911320 -0.216673 +v 0.067522 1.809342 -0.385405 +v 0.089033 1.719954 0.437088 +v 0.089033 1.737910 0.432067 +v 0.089033 1.732162 0.454811 +v 0.089033 0.262090 0.432067 +v 0.089033 0.280046 0.437088 +v 0.089033 0.267838 0.454811 +v 0.089033 0.280046 -0.437088 +v 0.089033 0.262090 -0.432067 +v 0.089033 0.267838 -0.454811 +v 0.089033 1.737910 -0.432067 +v 0.089033 1.719954 -0.437088 +v 0.089033 1.732162 -0.454811 +v 0.089033 0.568817 -0.437088 +v 0.089033 0.551123 -0.437088 +v 0.089033 0.559970 -0.454975 +v 0.089033 0.861853 -0.437088 +v 0.089033 0.844794 -0.437088 +v 0.089033 0.853323 -0.454975 +v 0.089033 1.155206 -0.437088 +v 0.089033 1.138147 -0.437088 +v 0.089033 1.146677 -0.454975 +v 0.089033 1.448877 -0.437088 +v 0.089033 1.431183 -0.437088 +v 0.089033 1.440030 -0.454975 +v 0.089033 1.431183 0.437088 +v 0.089033 1.448877 0.437088 +v 0.089033 1.440030 0.454975 +v 0.089033 1.138147 0.437088 +v 0.089033 1.155206 0.437088 +v 0.089033 1.146677 0.454975 +v 0.089033 0.844794 0.437088 +v 0.089033 0.861853 0.437088 +v 0.089033 0.853323 0.454975 +v 0.089033 0.551123 0.437088 +v 0.089033 0.568817 0.437088 +v 0.089033 0.559970 0.454975 +v 0.067522 1.689992 -0.412210 +v 0.067522 1.727860 -0.407321 +v 0.067522 1.727860 0.407321 +v 0.067522 1.689992 0.412210 +v 0.067522 0.310008 -0.412210 +v 0.067522 0.272139 -0.407321 +v 0.067522 0.310008 0.412210 +v 0.067522 0.272139 0.407321 +v 0.067522 0.553441 -0.412210 +v 0.067522 0.590698 -0.412210 +v 0.067522 0.590698 0.412210 +v 0.067522 0.553441 0.412210 +v 0.067522 0.839382 -0.412210 +v 0.067522 0.875331 -0.412210 +v 0.067522 0.839382 0.412210 +v 0.067522 0.875331 0.412210 +v 0.067522 1.124669 -0.412210 +v 0.067522 1.160618 -0.412210 +v 0.067522 1.124669 0.412210 +v 0.067522 1.160618 0.412210 +v 0.067522 1.409302 -0.412210 +v 0.067522 1.446559 -0.412210 +v 0.067522 1.446559 0.412210 +v 0.067522 1.409302 0.412210 +v 0.079726 1.134115 0.439682 +v 0.079726 1.151172 0.439682 +v 0.079726 0.848828 0.439682 +v 0.079726 0.865885 0.439682 +v 0.079726 0.300058 -0.434752 +v 0.079726 0.282090 -0.429863 +v 0.079726 1.699942 -0.434752 +v 0.079726 1.717910 -0.429863 +v 0.079726 1.717910 0.434792 +v 0.079726 1.699942 0.439682 +v 0.079726 0.300058 0.439682 +v 0.079726 0.282090 0.434792 +v 0.079726 0.563230 -0.434752 +v 0.079726 0.580909 -0.434752 +v 0.079726 0.580909 0.439682 +v 0.079726 0.563230 0.439682 +v 0.079726 0.848828 -0.434752 +v 0.079726 0.865885 -0.434752 +v 0.079726 1.134115 -0.434752 +v 0.079726 1.151172 -0.434752 +v 0.079726 1.419091 -0.434752 +v 0.079726 1.436770 -0.434752 +v 0.079726 1.436770 0.439682 +v 0.079726 1.419091 0.439682 +v -0.089033 0.062912 -0.229749 +v -0.089033 0.062912 0.229749 +v -0.089033 1.832227 0.408665 +v -0.089033 1.908665 0.332227 +v -0.089033 1.937088 0.229749 +v -0.089033 0.091335 0.332227 +v -0.089033 0.167773 0.408665 +v -0.089033 0.167773 -0.408665 +v -0.089033 0.091335 -0.332227 +v -0.089033 1.908665 -0.332227 +v -0.089033 1.937088 -0.229749 +v -0.089033 1.832227 -0.408665 +v -0.089033 0.036209 0.233384 +v -0.089033 0.036209 -0.233384 +v -0.089033 1.846138 0.432517 +v -0.089033 1.733384 0.463791 +v -0.089033 1.932517 0.346138 +v -0.089033 1.963791 0.233384 +v -0.089033 0.067483 0.346138 +v -0.089033 0.153862 0.432517 +v -0.089033 0.266616 0.463791 +v -0.089033 0.153862 -0.432517 +v -0.089033 0.266616 -0.463791 +v -0.089033 0.067483 -0.346138 +v -0.089033 1.932517 -0.346138 +v -0.089033 1.963791 -0.233384 +v -0.089033 1.846138 -0.432517 +v -0.089033 1.733384 -0.463791 +v -0.089033 1.440030 -0.463791 +v -0.089033 0.559970 0.463791 +v -0.089033 0.559970 -0.463791 +v -0.089033 0.853323 -0.463791 +v -0.089033 1.146677 -0.463791 +v -0.089033 1.440030 0.463791 +v -0.089033 1.146677 0.463791 +v -0.089033 0.853323 0.463791 +v -0.067522 0.088680 0.216673 +v -0.067522 0.088680 -0.216673 +v -0.067522 1.809342 0.385405 +v -0.067522 1.883679 0.313317 +v -0.067522 1.911320 0.216673 +v -0.067522 0.116321 0.313317 +v -0.067522 0.190658 0.385405 +v -0.067522 0.190658 -0.385405 +v -0.067522 0.116321 -0.313317 +v -0.067522 1.883679 -0.313317 +v -0.067522 1.911320 -0.216673 +v -0.067522 1.809342 -0.385405 +v -0.089033 1.719954 0.437088 +v -0.089033 1.737910 0.432067 +v -0.089033 1.732162 0.454811 +v -0.089033 0.262090 0.432067 +v -0.089033 0.280046 0.437088 +v -0.089033 0.267838 0.454811 +v -0.089033 0.280046 -0.437088 +v -0.089033 0.262090 -0.432067 +v -0.089033 0.267838 -0.454811 +v -0.089033 1.737910 -0.432067 +v -0.089033 1.719954 -0.437088 +v -0.089033 1.732162 -0.454811 +v -0.089033 0.568817 -0.437088 +v -0.089033 0.551123 -0.437088 +v -0.089033 0.559970 -0.454975 +v -0.089033 0.861853 -0.437088 +v -0.089033 0.844794 -0.437088 +v -0.089033 0.853323 -0.454975 +v -0.089033 1.155206 -0.437088 +v -0.089033 1.138147 -0.437088 +v -0.089033 1.146677 -0.454975 +v -0.089033 1.448877 -0.437088 +v -0.089033 1.431183 -0.437088 +v -0.089033 1.440030 -0.454975 +v -0.089033 1.431183 0.437088 +v -0.089033 1.448877 0.437088 +v -0.089033 1.440030 0.454975 +v -0.089033 1.138147 0.437088 +v -0.089033 1.155206 0.437088 +v -0.089033 1.146677 0.454975 +v -0.089033 0.844794 0.437088 +v -0.089033 0.861853 0.437088 +v -0.089033 0.853323 0.454975 +v -0.089033 0.551123 0.437088 +v -0.089033 0.568817 0.437088 +v -0.089033 0.559970 0.454975 +v -0.067522 1.689992 -0.412210 +v -0.067522 1.727860 -0.407321 +v -0.067522 1.727860 0.407321 +v -0.067522 1.689992 0.412210 +v -0.067522 0.310008 -0.412210 +v -0.067522 0.272139 -0.407321 +v -0.067522 0.310008 0.412210 +v -0.067522 0.272139 0.407321 +v -0.067522 0.553441 -0.412210 +v -0.067522 0.590698 -0.412210 +v -0.067522 0.590698 0.412210 +v -0.067522 0.553441 0.412210 +v -0.067522 0.839382 -0.412210 +v -0.067522 0.875331 -0.412210 +v -0.067522 0.839382 0.412210 +v -0.067522 0.875331 0.412210 +v -0.067522 1.124669 -0.412210 +v -0.067522 1.160618 -0.412210 +v -0.067522 1.124669 0.412210 +v -0.067522 1.160618 0.412210 +v -0.067522 1.409302 -0.412210 +v -0.067522 1.446559 -0.412210 +v -0.067522 1.446559 0.412210 +v -0.067522 1.409302 0.412210 +v -0.079726 1.134115 0.439682 +v -0.079726 1.151172 0.439682 +v -0.079726 0.848828 0.439682 +v -0.079726 0.865885 0.439682 +v -0.079726 0.300058 -0.434752 +v -0.079726 0.282090 -0.429863 +v -0.079726 1.699942 -0.434752 +v -0.079726 1.717910 -0.429863 +v -0.079726 1.717910 0.434792 +v -0.079726 1.699942 0.439682 +v -0.079726 0.300058 0.439682 +v -0.079726 0.282090 0.434792 +v -0.079726 0.563230 -0.434752 +v -0.079726 0.580909 -0.434752 +v -0.079726 0.580909 0.439682 +v -0.079726 0.563230 0.439682 +v -0.079726 0.848828 -0.434752 +v -0.079726 0.865885 -0.434752 +v -0.079726 1.134115 -0.434752 +v -0.079726 1.151172 -0.434752 +v -0.079726 1.419091 -0.434752 +v -0.079726 1.436770 -0.434752 +v -0.079726 1.436770 0.439682 +v -0.079726 1.419091 0.439682 +vt 0.783593 0.831993 +vt 0.770625 0.819241 +vt 0.786830 0.825688 +vt 0.904889 0.572687 +vt 0.904889 0.512544 +vt 0.910360 0.514355 +vt 0.764922 0.653705 +vt 0.756727 0.675027 +vt 0.750214 0.670777 +vt 0.934743 0.510728 +vt 0.927961 0.461088 +vt 0.934717 0.454799 +vt 0.744799 0.692104 +vt 0.751356 0.783421 +vt 0.744526 0.786188 +vt 0.904889 0.632829 +vt 0.910364 0.574436 +vt 0.783665 0.646709 +vt 0.761647 0.649126 +vt 0.783850 0.640153 +vt 0.739383 0.691433 +vt 0.910357 0.694788 +vt 0.917138 0.744427 +vt 0.910383 0.750717 +vt 0.821727 0.653705 +vt 0.801970 0.668151 +vt 0.818451 0.649126 +vt 0.807019 0.670776 +vt 0.796188 0.691433 +vt 0.749803 0.807573 +vt 0.739078 0.786824 +vt 0.764620 0.824799 +vt 0.744748 0.810146 +vt 0.910357 0.510728 +vt 0.917138 0.461089 +vt 0.917112 0.511201 +vt 0.840397 0.831993 +vt 0.827430 0.819241 +vt 0.843635 0.825688 +vt 0.745166 0.668151 +vt 0.806608 0.807573 +vt 0.795882 0.786824 +vt 0.801331 0.786188 +vt 0.821424 0.824799 +vt 0.801552 0.810145 +vt 0.934743 0.694788 +vt 0.927961 0.744427 +vt 0.927987 0.694314 +vt 0.840556 0.838653 +vt 0.818043 0.829441 +vt 0.801604 0.692104 +vt 0.783752 0.838653 +vt 0.761239 0.829441 +vt 0.770853 0.659218 +vt 0.934736 0.574436 +vt 0.927993 0.628317 +vt 0.927993 0.577199 +vt 0.934736 0.634577 +vt 0.927993 0.686669 +vt 0.927993 0.635687 +vt 0.910364 0.634578 +vt 0.917107 0.686670 +vt 0.910360 0.691161 +vt 0.840470 0.646709 +vt 0.827657 0.659218 +vt 0.917106 0.628317 +vt 0.910364 0.631080 +vt 0.910364 0.570938 +vt 0.917107 0.518846 +vt 0.917106 0.569829 +vt 0.295529 0.438043 +vt 0.345528 0.607370 +vt 0.295529 0.607370 +vt 0.052365 0.438043 +vt 0.102363 0.607367 +vt 0.052365 0.607367 +vt 0.393369 0.567210 +vt 0.387691 0.587060 +vt 0.355688 0.606368 +vt 0.112420 0.438043 +vt 0.163496 0.607367 +vt 0.112420 0.607367 +vt 0.042205 0.439048 +vt 0.042206 0.606362 +vt 0.004526 0.567206 +vt 0.173340 0.438043 +vt 0.224551 0.607368 +vt 0.173340 0.607369 +vt 0.234395 0.438043 +vt 0.285472 0.607370 +vt 0.234395 0.607370 +vt 0.940211 0.512544 +vt 0.940246 0.452090 +vt 0.751649 0.694916 +vt 0.813531 0.675027 +vt 0.940210 0.572687 +vt 0.934739 0.514355 +vt 0.813165 0.803316 +vt 0.808453 0.694916 +vt 0.940210 0.632828 +vt 0.934736 0.631080 +vt 0.756360 0.803316 +vt 0.940211 0.692971 +vt 0.934739 0.691161 +vt 0.940246 0.753425 +vt 0.934717 0.750716 +vt 0.904889 0.692971 +vt 0.904854 0.753426 +vt 0.934736 0.570939 +vt 0.927993 0.518846 +vt 0.904854 0.452090 +vt 0.910383 0.454799 +vt 0.808160 0.783421 +vt 0.911333 0.754460 +vt 0.906690 0.753196 +vt 0.911333 0.451055 +vt 0.906690 0.452320 +vt 0.933767 0.451055 +vt 0.938409 0.452320 +vt 0.933767 0.754460 +vt 0.938409 0.753195 +vt 0.938406 0.512543 +vt 0.938402 0.572687 +vt 0.938402 0.632828 +vt 0.938406 0.692972 +vt 0.906694 0.692973 +vt 0.906697 0.632829 +vt 0.906697 0.572687 +vt 0.906694 0.512543 +vt 0.917106 0.635687 +vt 0.927076 0.453302 +vt 0.045440 0.434418 +vt 0.045441 0.612005 +vt 0.166666 0.433413 +vt 0.166667 0.613011 +vt 0.918024 0.453302 +vt 0.918024 0.752213 +vt 0.927987 0.511202 +vt 0.927993 0.569829 +vt 0.927076 0.752213 +vt 0.917112 0.694314 +vt 0.840655 0.640153 +vt 0.352454 0.612010 +vt 0.348762 0.433413 +vt 0.352453 0.434417 +vt 0.049131 0.613009 +vt 0.049131 0.433413 +vt 0.109207 0.613009 +vt 0.105575 0.433414 +vt 0.109207 0.433414 +vt 0.170170 0.613011 +vt 0.170170 0.433413 +vt 0.231225 0.613012 +vt 0.227721 0.433413 +vt 0.231224 0.433413 +vt 0.292316 0.613013 +vt 0.288684 0.433414 +vt 0.292316 0.433414 +vt 0.355688 0.439047 +vt 0.227721 0.613012 +vt 0.105576 0.613009 +vt 0.348763 0.613014 +vt 0.288685 0.613013 +vt 0.534518 0.522925 +vt 0.571091 0.462674 +vt 0.571091 0.522925 +vt 0.525466 0.462674 +vt 0.488893 0.522925 +vt 0.488893 0.462674 +vt 0.525466 0.522925 +vt 0.488893 0.583177 +vt 0.525466 0.583177 +vt 0.488893 0.643428 +vt 0.103937 0.865381 +vt 0.079904 0.828809 +vt 0.103937 0.828809 +vt 0.079904 0.865381 +vt 0.054814 0.828809 +vt 0.525466 0.402422 +vt 0.488893 0.402422 +vt 0.054814 0.865381 +vt 0.030782 0.828809 +vt 0.525466 0.643428 +vt 0.488893 0.703680 +vt 0.442462 0.816101 +vt 0.466495 0.852674 +vt 0.442462 0.852674 +vt 0.466495 0.816101 +vt 0.491585 0.852674 +vt 0.491585 0.816101 +vt 0.515617 0.852674 +vt 0.515617 0.816101 +vt 0.611486 0.852674 +vt 0.611486 0.816101 +vt 0.635519 0.852674 +vt 0.635519 0.816101 +vt 0.660609 0.852674 +vt 0.534518 0.703680 +vt 0.571091 0.643428 +vt 0.571091 0.703680 +vt 0.660609 0.816101 +vt 0.684642 0.852674 +vt 0.534518 0.462674 +vt 0.571091 0.402422 +vt 0.272961 0.865381 +vt 0.248929 0.828809 +vt 0.272961 0.828809 +vt 0.248929 0.865381 +vt 0.223838 0.828809 +vt 0.223838 0.865381 +vt 0.199806 0.828809 +vt 0.199806 0.865381 +vt 0.534518 0.583177 +vt 0.571091 0.583177 +vt 0.845124 0.011186 +vt 0.832156 0.023938 +vt 0.826151 0.018380 +vt 0.406715 0.685366 +vt 0.412185 0.743698 +vt 0.406711 0.741949 +vt 0.818257 0.168152 +vt 0.826453 0.189473 +vt 0.811744 0.172402 +vt 0.937528 0.014559 +vt 0.930746 0.064198 +vt 0.930772 0.008270 +vt 0.812887 0.059757 +vt 0.806330 0.151074 +vt 0.806057 0.056990 +vt 0.406711 0.745446 +vt 0.412185 0.803840 +vt 0.406711 0.802091 +vt 0.823177 0.194053 +vt 0.845196 0.196470 +vt 0.800914 0.151745 +vt 0.399936 0.915438 +vt 0.406718 0.865799 +vt 0.406692 0.921727 +vt 0.826453 0.397025 +vt 0.806696 0.382579 +vt 0.811744 0.379954 +vt 0.800913 0.359297 +vt 0.806330 0.358626 +vt 0.800609 0.056354 +vt 0.811335 0.035605 +vt 0.806279 0.033033 +vt 0.406718 0.681738 +vt 0.399936 0.632099 +vt 0.406692 0.625810 +vt 0.845124 0.218738 +vt 0.832156 0.231489 +vt 0.826151 0.225932 +vt 0.806696 0.175027 +vt 0.800609 0.263906 +vt 0.811335 0.243157 +vt 0.806057 0.264542 +vt 0.806279 0.240585 +vt 0.930746 0.248259 +vt 0.937528 0.297898 +vt 0.930772 0.304187 +vt 0.845283 0.212078 +vt 0.845754 0.213902 +vt 0.845283 0.004526 +vt 0.845755 0.006350 +vt 0.832384 0.183961 +vt 0.930753 0.127906 +vt 0.937496 0.181787 +vt 0.930753 0.184550 +vt 0.930753 0.188048 +vt 0.937496 0.240140 +vt 0.930750 0.244631 +vt 0.399968 0.857680 +vt 0.406711 0.805588 +vt 0.406714 0.862172 +vt 0.832383 0.391513 +vt 0.845196 0.404022 +vt 0.399969 0.799328 +vt 0.399968 0.689857 +vt 0.448109 0.052365 +vt 0.617432 0.102364 +vt 0.448109 0.102362 +vt 0.448105 0.295531 +vt 0.617433 0.345528 +vt 0.448106 0.345530 +vt 0.597123 0.010205 +vt 0.611928 0.025473 +vt 0.616429 0.042208 +vt 0.448105 0.234396 +vt 0.617432 0.285472 +vt 0.448105 0.285473 +vt 0.577272 0.393368 +vt 0.488267 0.393370 +vt 0.616429 0.355686 +vt 0.448106 0.173341 +vt 0.617432 0.224552 +vt 0.448106 0.224552 +vt 0.448108 0.112421 +vt 0.617433 0.163498 +vt 0.448108 0.163497 +vt 0.925278 0.066015 +vt 0.818257 0.375704 +vt 0.930750 0.067825 +vt 0.930753 0.124409 +vt 0.925279 0.126158 +vt 0.817892 0.247415 +vt 0.817892 0.039863 +vt 0.925279 0.186299 +vt 0.925278 0.246442 +vt 0.412186 0.863982 +vt 0.937496 0.072317 +vt 0.412186 0.683555 +vt 0.812887 0.267309 +vt 0.410384 0.924207 +vt 0.405742 0.925471 +vt 0.405742 0.622066 +vt 0.410384 0.623331 +vt 0.927080 0.005791 +vt 0.931722 0.004526 +vt 0.931722 0.307931 +vt 0.927080 0.306666 +vt 0.927083 0.066014 +vt 0.927086 0.126158 +vt 0.927086 0.186299 +vt 0.927083 0.246443 +vt 0.410381 0.863983 +vt 0.410378 0.803840 +vt 0.410378 0.743698 +vt 0.410381 0.683554 +vt 0.399969 0.806698 +vt 0.399969 0.740840 +vt 0.938413 0.006773 +vt 0.449109 0.355690 +vt 0.621059 0.352452 +vt 0.622062 0.231225 +vt 0.617432 0.234395 +vt 0.399051 0.624313 +vt 0.399963 0.682212 +vt 0.399051 0.923224 +vt 0.937501 0.064672 +vt 0.937496 0.123300 +vt 0.937496 0.130670 +vt 0.937496 0.189157 +vt 0.937501 0.247785 +vt 0.938413 0.305684 +vt 0.399963 0.865325 +vt 0.823177 0.401605 +vt 0.622063 0.049133 +vt 0.443471 0.045440 +vt 0.621059 0.045442 +vt 0.442462 0.348765 +vt 0.622063 0.348762 +vt 0.622062 0.292316 +vt 0.442463 0.288686 +vt 0.622062 0.288685 +vt 0.442463 0.227723 +vt 0.622062 0.227721 +vt 0.622062 0.170171 +vt 0.442464 0.166668 +vt 0.622062 0.166667 +vt 0.622062 0.109209 +vt 0.442466 0.105576 +vt 0.622062 0.105578 +vt 0.449115 0.042205 +vt 0.617432 0.173341 +vt 0.617432 0.295529 +vt 0.617433 0.052367 +vt 0.617433 0.112422 +vt 0.534518 0.643428 +vt 0.784307 0.641951 +vt 0.841028 0.836829 +vt 0.784223 0.836829 +vt 0.786830 0.652929 +vt 0.843635 0.652929 +vt 0.917106 0.577199 +vt 0.345528 0.438043 +vt 0.102362 0.438043 +vt 0.372423 0.601866 +vt 0.372423 0.443548 +vt 0.387691 0.458355 +vt 0.393369 0.478205 +vt 0.163496 0.438043 +vt 0.025471 0.601860 +vt 0.010204 0.587055 +vt 0.004526 0.478204 +vt 0.010203 0.458355 +vt 0.025470 0.443549 +vt 0.224551 0.438043 +vt 0.285471 0.438043 +vt 0.841112 0.641951 +vt 0.030782 0.865381 +vt 0.525466 0.703680 +vt 0.684642 0.816101 +vt 0.534518 0.402422 +vt 0.848361 0.017491 +vt 0.813179 0.148262 +vt 0.845838 0.201228 +vt 0.845381 0.203026 +vt 0.822770 0.013738 +vt 0.848361 0.225043 +vt 0.822770 0.221290 +vt 0.848361 0.190250 +vt 0.848361 0.397802 +vt 0.399969 0.748210 +vt 0.488272 0.004526 +vt 0.453616 0.025470 +vt 0.468422 0.010203 +vt 0.577274 0.004528 +vt 0.468417 0.387693 +vt 0.453611 0.372426 +vt 0.611928 0.372422 +vt 0.597122 0.387690 +vt 0.925243 0.005561 +vt 0.813179 0.355814 +vt 0.925243 0.306896 +vt 0.412221 0.924437 +vt 0.412221 0.623101 +vt 0.443467 0.352456 +vt 0.442463 0.231227 +vt 0.845838 0.408780 +vt 0.845381 0.410578 +vt 0.442467 0.049131 +vt 0.442463 0.292318 +vt 0.442464 0.170171 +vt 0.442466 0.109207 +vn 0.7790 0.1642 -0.6052 +vn 0.8198 0.2555 -0.5126 +vn 0.7857 0.1313 -0.6045 +vn 1.0000 0.0000 -0.0000 +vn 0.8258 0.2898 0.4837 +vn 0.8225 0.4962 0.2778 +vn 0.8229 0.4869 0.2928 +vn 0.7564 0.0000 0.6541 +vn 0.7693 0.0222 0.6385 +vn 0.7802 0.0915 0.6187 +vn 0.7889 0.6067 0.0976 +vn 0.7831 0.6180 -0.0704 +vn 0.7889 0.6067 -0.0976 +vn 0.7564 0.0000 -0.6541 +vn 0.7693 -0.0222 -0.6385 +vn 0.7802 -0.0915 -0.6187 +vn 0.7693 0.0222 -0.6385 +vn 0.7790 -0.1642 0.6052 +vn 0.8198 -0.2555 0.5126 +vn 0.7857 -0.1313 0.6045 +vn 0.7693 -0.0222 0.6385 +vn 0.7790 0.1642 0.6052 +vn 0.8198 0.2555 0.5126 +vn 0.7790 -0.1642 -0.6052 +vn 0.8198 -0.2555 -0.5126 +vn 0.8258 -0.2898 -0.4837 +vn 0.7831 0.6180 0.0704 +vn 0.8225 -0.4962 -0.2778 +vn 0.8229 -0.4869 -0.2928 +vn 0.7889 -0.6067 0.0976 +vn 0.8225 -0.4962 0.2778 +vn 0.8229 -0.4869 0.2928 +vn 0.7889 -0.6067 -0.0976 +vn 0.7831 -0.6180 -0.0704 +vn 0.8258 -0.2898 0.4837 +vn 0.8225 0.4962 -0.2778 +vn 0.8229 0.4869 -0.2928 +vn 0.8258 0.2898 -0.4837 +vn 0.7831 -0.6180 0.0704 +vn 0.7857 0.1313 0.6045 +vn 0.6319 -0.7750 0.0000 +vn 0.6121 -0.7908 0.0000 +vn 0.7802 0.0915 -0.6187 +vn 0.7857 -0.1313 -0.6045 +vn 0.7802 -0.0915 0.6187 +vn 0.6121 0.7908 0.0000 +vn 0.6257 0.7800 0.0000 +vn 0.6319 0.7750 0.0000 +vn 0.6257 -0.7800 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -0.9909 -0.1349 +vn 0.0000 -0.8638 -0.5038 +vn 0.0000 -0.5038 -0.8638 +vn 0.0000 -0.1349 -0.9909 +vn 0.0000 0.1349 -0.9909 +vn 0.0000 0.5038 -0.8638 +vn 0.0000 0.8638 -0.5038 +vn 0.0000 0.9909 -0.1349 +vn 0.0000 0.9909 0.1349 +vn 0.0000 0.8638 0.5038 +vn 0.0000 0.5038 0.8638 +vn 0.0000 0.1349 0.9909 +vn 0.0000 -0.1349 0.9909 +vn 0.0000 -0.5038 0.8638 +vn 0.0000 -0.8638 0.5038 +vn 0.0000 -0.9909 0.1349 +vn -0.7790 0.1642 -0.6052 +vn -0.8198 0.2555 -0.5126 +vn -0.8258 0.2898 -0.4837 +vn -1.0000 0.0000 0.0000 +vn -0.8225 0.4962 0.2778 +vn -0.8258 0.2898 0.4837 +vn -0.8229 0.4869 0.2928 +vn -0.7693 0.0222 0.6385 +vn -0.7564 0.0000 0.6541 +vn -0.7802 0.0915 0.6187 +vn -0.7831 0.6180 -0.0704 +vn -0.7889 0.6067 0.0976 +vn -0.7889 0.6067 -0.0976 +vn -0.7693 -0.0222 -0.6385 +vn -0.7564 0.0000 -0.6541 +vn -0.7802 -0.0915 -0.6187 +vn -0.7693 0.0222 -0.6385 +vn -0.7802 0.0915 -0.6187 +vn -0.7790 -0.1642 0.6052 +vn -0.8198 -0.2555 0.5126 +vn -0.8258 -0.2898 0.4837 +vn -0.7693 -0.0222 0.6385 +vn -0.7802 -0.0915 0.6187 +vn -0.8198 0.2555 0.5126 +vn -0.7790 0.1642 0.6052 +vn -0.8198 -0.2555 -0.5126 +vn -0.7790 -0.1642 -0.6052 +vn -0.8258 -0.2898 -0.4837 +vn -0.8225 -0.4962 -0.2778 +vn -0.8229 -0.4869 -0.2928 +vn -0.8225 -0.4962 0.2778 +vn -0.7889 -0.6067 0.0976 +vn -0.8229 -0.4869 0.2928 +vn -0.7889 -0.6067 -0.0976 +vn -0.8225 0.4962 -0.2778 +vn -0.8229 0.4869 -0.2928 +vn -0.7831 -0.6180 0.0704 +vn -0.7857 0.1313 0.6045 +vn -0.6319 -0.7750 0.0000 +vn -0.6121 -0.7908 0.0000 +vn -0.7857 0.1313 -0.6045 +vn -0.7857 -0.1313 -0.6045 +vn -0.7857 -0.1313 0.6045 +vn -0.6121 0.7908 0.0000 +vn -0.6257 0.7800 0.0000 +vn -0.6319 0.7750 0.0000 +vn -0.6257 -0.7800 0.0000 +vn -0.7831 0.6180 0.0704 +vn -0.7831 -0.6180 -0.0704 +s 1 +f 268/431/159 259/432/160 308/433/161 +f 252/434/162 246/435/162 299/436/162 +f 224/437/163 261/438/164 225/439/165 +f 278/440/166 305/441/167 271/442/168 +f 217/443/169 253/444/170 218/445/171 +f 251/446/162 252/434/162 296/447/162 +f 272/448/162 238/449/162 239/450/162 +f 218/445/162 230/451/162 217/443/162 +f 290/452/172 304/453/173 265/454/174 +f 219/455/162 233/456/162 231/457/162 +f 220/458/162 234/459/162 233/456/162 +f 222/460/162 229/461/162 218/445/162 +f 223/462/162 235/463/162 222/460/162 +f 298/464/172 307/465/175 312/466/172 +f 274/467/176 264/468/177 302/469/178 +f 225/439/162 238/449/162 224/437/162 +f 225/439/162 230/451/162 240/470/162 +f 226/471/162 242/472/162 227/473/162 +f 228/474/162 241/475/162 226/471/162 +f 286/476/166 301/477/179 322/478/166 +f 274/467/162 244/479/162 243/480/162 +f 227/473/162 234/459/162 221/481/162 +f 268/431/162 237/482/162 236/483/162 +f 272/448/180 260/484/181 224/437/163 +f 280/485/166 317/486/166 314/487/166 +f 283/488/166 321/489/166 318/490/166 +f 293/491/172 324/492/172 289/493/172 +f 266/494/182 255/495/183 219/455/184 +f 296/447/172 319/496/172 292/497/172 +f 295/498/172 311/499/172 315/500/172 +f 322/501/162 304/502/162 323/503/162 +f 305/504/162 312/505/162 307/506/162 +f 257/507/162 256/508/162 303/509/162 +f 310/510/162 315/511/162 311/512/162 +f 306/513/162 308/514/162 253/515/162 +f 314/516/162 319/517/162 316/518/162 +f 318/519/162 324/520/162 320/521/162 +f 247/522/162 271/442/162 239/523/162 +f 217/443/169 261/438/164 254/524/185 +f 219/455/184 256/525/186 220/458/187 +f 248/526/162 277/527/162 247/522/162 +f 227/473/188 262/528/189 226/471/190 +f 221/481/191 256/525/186 257/529/192 +f 248/526/162 249/530/162 284/531/162 +f 228/474/193 262/528/189 264/468/177 +f 218/445/171 258/532/194 222/460/195 +f 249/530/162 245/533/162 287/534/162 +f 245/533/162 244/535/162 275/536/162 +f 223/462/196 258/532/194 259/432/160 +f 250/537/162 265/454/162 232/538/162 +f 281/539/166 310/540/166 277/527/166 +f 246/435/162 237/541/162 269/542/162 +f 251/446/162 289/493/162 250/537/162 +f 221/481/191 263/543/197 227/473/188 +f 265/454/162 266/544/162 267/545/162 +f 268/546/162 269/542/162 270/547/162 +f 271/442/162 272/548/162 273/549/162 +f 274/550/162 275/536/162 276/551/162 +f 277/527/162 278/440/162 279/552/162 +f 280/485/162 281/539/162 282/553/162 +f 283/488/162 284/531/162 285/554/162 +f 286/476/162 287/534/162 288/555/162 +f 289/493/162 290/452/162 291/556/162 +f 292/497/162 293/491/162 294/557/162 +f 295/498/162 296/447/162 297/558/162 +f 298/464/162 299/436/162 300/559/162 +f 320/560/172 292/497/172 319/496/172 +f 315/500/172 296/447/172 295/498/172 +f 271/442/168 306/561/198 272/548/180 +f 308/514/199 330/562/199 336/563/199 +f 315/511/200 341/564/200 327/565/200 +f 308/566/161 269/542/201 268/546/159 +f 299/436/172 312/466/172 311/499/172 +f 265/454/174 303/567/202 266/544/182 +f 277/527/166 309/568/166 278/440/166 +f 280/485/166 313/569/166 281/539/166 +f 318/490/166 284/531/166 283/488/166 +f 322/478/166 287/534/166 286/476/166 +f 275/536/203 302/570/178 301/477/179 +f 289/493/172 323/571/172 290/452/172 +f 266/494/162 231/457/162 232/572/162 +f 333/573/162 331/574/162 332/575/162 +f 335/576/162 330/562/162 329/577/162 +f 339/578/162 337/579/162 338/580/162 +f 328/581/162 341/564/162 342/582/162 +f 326/583/162 343/584/162 344/585/162 +f 347/586/162 345/587/162 346/588/162 +f 320/521/204 344/585/204 318/519/204 +f 311/512/205 338/580/205 310/510/205 +f 303/509/206 332/575/206 302/589/206 +f 319/517/200 343/584/200 325/590/200 +f 312/505/207 337/579/207 340/591/207 +f 304/502/199 331/574/199 334/592/199 +f 323/503/205 346/588/205 322/501/205 +f 307/506/206 329/577/206 305/504/206 +f 316/518/204 342/582/204 314/516/204 +f 324/520/207 345/587/207 348/593/207 +f 384/594/208 246/595/208 252/596/208 +f 379/597/209 248/598/209 247/599/209 +f 380/600/209 249/601/209 248/598/209 +f 381/602/209 245/603/209 249/601/209 +f 362/604/210 240/605/211 230/606/210 +f 372/607/211 238/608/212 240/605/211 +f 371/609/213 247/599/209 239/610/213 +f 370/611/212 239/612/213 238/608/212 +f 377/613/209 244/614/214 245/603/209 +f 376/615/214 243/616/215 244/617/214 +f 375/618/215 241/619/216 243/616/215 +f 373/620/216 242/621/217 241/619/216 +f 374/622/217 234/623/218 242/621/217 +f 366/624/218 233/625/219 234/623/218 +f 365/626/219 231/627/220 233/625/219 +f 364/628/221 250/629/208 232/630/221 +f 363/631/220 232/632/221 231/627/220 +f 378/633/208 237/634/222 246/595/208 +f 369/635/222 236/636/223 237/637/222 +f 368/638/223 235/639/224 236/636/223 +f 367/640/224 229/641/225 235/639/224 +f 361/642/225 230/606/210 229/641/225 +f 383/643/208 252/596/208 251/644/208 +f 400/645/226 391/646/227 355/647/228 +f 431/648/229 384/649/229 427/650/229 +f 393/651/230 356/652/231 357/653/232 +f 437/654/233 410/655/234 403/656/235 +f 385/657/236 349/658/237 350/659/238 +f 428/660/229 383/661/229 424/662/229 +f 370/663/229 356/652/229 404/664/229 +f 362/665/229 350/659/229 349/658/229 +f 436/666/239 422/667/240 397/668/241 +f 351/669/229 365/670/229 352/671/229 +f 352/671/229 366/672/229 353/673/229 +f 361/674/229 354/675/229 350/659/229 +f 367/676/229 355/647/229 354/675/229 +f 430/677/240 439/678/242 401/679/243 +f 406/680/244 396/681/245 360/682/246 +f 356/652/229 372/683/229 357/653/229 +f 357/653/229 362/665/229 349/658/229 +f 374/684/229 358/685/229 359/686/229 +f 373/687/229 360/682/229 358/685/229 +f 418/688/234 433/689/247 407/690/248 +f 376/691/229 408/692/229 406/680/229 +f 366/672/229 359/686/229 353/673/229 +f 369/693/229 402/694/229 400/645/229 +f 392/695/249 404/664/250 356/652/231 +f 412/696/234 449/697/234 416/698/234 +f 415/699/234 453/700/234 419/701/234 +f 456/702/240 425/703/240 421/704/240 +f 387/705/251 398/706/252 351/669/253 +f 451/707/240 428/660/240 424/662/240 +f 427/650/240 443/708/240 431/648/240 +f 436/709/229 454/710/229 455/711/229 +f 444/712/229 437/713/229 439/714/229 +f 394/715/229 396/716/229 434/717/229 +f 447/718/229 442/719/229 443/720/229 +f 386/721/229 385/722/229 438/723/229 +f 451/724/229 446/725/229 448/726/229 +f 456/727/229 450/728/229 452/729/229 +f 403/656/229 410/655/229 379/730/229 +f 349/658/237 393/651/230 357/653/232 +f 388/731/254 351/669/253 352/671/255 +f 409/732/229 413/733/229 380/734/229 +f 394/735/256 359/686/257 358/685/258 +f 353/673/259 388/731/254 352/671/255 +f 416/698/229 380/734/229 412/696/229 +f 360/682/246 394/735/256 358/685/258 +f 390/736/260 350/659/238 354/675/261 +f 419/701/229 381/737/229 415/699/229 +f 407/690/229 377/738/229 418/688/229 +f 355/647/228 390/736/260 354/675/261 +f 397/668/229 422/667/229 382/739/229 +f 442/740/234 413/733/234 409/732/234 +f 401/679/229 378/741/229 430/677/229 +f 421/704/229 425/703/229 383/661/229 +f 395/742/262 353/673/259 359/686/257 +f 397/668/229 399/743/229 398/744/229 +f 400/745/229 402/746/229 401/679/229 +f 403/656/229 405/747/229 404/748/229 +f 406/749/229 408/750/229 407/690/229 +f 409/732/229 411/751/229 410/655/229 +f 412/696/229 414/752/229 413/733/229 +f 415/699/229 417/753/229 416/698/229 +f 418/688/229 420/754/229 419/701/229 +f 421/704/229 423/755/229 422/667/229 +f 424/662/229 426/756/229 425/703/229 +f 427/650/229 429/757/229 428/660/229 +f 430/677/229 432/758/229 431/648/229 +f 452/759/240 424/662/240 425/703/240 +f 428/660/240 447/760/240 427/650/240 +f 403/656/235 438/761/263 437/654/233 +f 440/762/264 462/763/264 438/723/264 +f 447/718/265 473/764/265 445/765/265 +f 401/679/243 440/766/266 400/745/226 +f 444/767/240 431/648/240 443/708/240 +f 397/668/241 435/768/267 436/666/239 +f 409/732/234 441/769/234 442/740/234 +f 412/696/234 445/770/234 446/771/234 +f 416/698/234 450/772/234 415/699/234 +f 419/701/234 454/773/234 418/688/234 +f 434/774/268 407/690/248 433/689/247 +f 421/704/240 455/775/240 456/702/240 +f 363/776/229 351/669/229 398/706/229 +f 463/777/229 465/778/229 464/779/229 +f 462/763/229 467/780/229 461/781/229 +f 469/782/229 471/783/229 470/784/229 +f 473/764/229 460/785/229 474/786/229 +f 475/787/229 458/788/229 476/789/229 +f 477/790/229 479/791/229 478/792/229 +f 476/789/269 452/729/269 450/728/269 +f 470/784/270 443/720/270 442/719/270 +f 464/779/271 435/793/271 434/717/271 +f 451/724/265 475/787/265 449/794/265 +f 444/712/272 469/782/272 441/795/272 +f 436/709/264 463/777/264 433/796/264 +f 478/792/270 455/711/270 454/710/270 +f 461/781/271 439/714/271 437/713/271 +f 474/786/269 448/726/269 446/725/269 +f 456/727/272 477/790/272 453/797/272 +f 382/798/208 251/644/208 250/629/208 +f 268/431/159 223/462/196 259/432/160 +f 246/435/162 300/559/162 299/436/162 +f 299/436/162 295/498/162 252/434/162 +f 295/498/162 297/558/162 252/434/162 +f 224/437/163 260/484/181 261/438/164 +f 278/440/166 309/568/166 305/441/167 +f 217/443/169 254/524/185 253/444/170 +f 252/434/162 297/558/162 296/447/162 +f 296/447/162 292/497/162 251/446/162 +f 292/497/162 294/557/162 251/446/162 +f 239/450/162 273/799/162 272/448/162 +f 272/448/162 224/437/162 238/449/162 +f 218/445/162 229/461/162 230/451/162 +f 290/452/172 323/571/172 304/453/173 +f 219/455/162 220/458/162 233/456/162 +f 220/458/162 221/481/162 234/459/162 +f 222/460/162 235/463/162 229/461/162 +f 223/462/162 236/483/162 235/463/162 +f 298/464/172 269/542/201 307/465/175 +f 274/467/176 228/474/193 264/468/177 +f 225/439/162 240/470/162 238/449/162 +f 225/439/162 217/443/162 230/451/162 +f 226/471/162 241/475/162 242/472/162 +f 228/474/162 243/480/162 241/475/162 +f 286/476/166 275/536/203 301/477/179 +f 243/480/162 228/474/162 274/467/162 +f 274/467/162 276/800/162 244/479/162 +f 227/473/162 242/472/162 234/459/162 +f 236/483/162 223/462/162 268/431/162 +f 268/431/162 270/801/162 237/482/162 +f 272/448/180 306/802/198 260/484/181 +f 280/485/166 284/531/166 317/486/166 +f 283/488/166 287/534/166 321/489/166 +f 293/491/172 320/560/172 324/492/172 +f 266/494/182 303/803/202 255/495/183 +f 296/447/172 316/804/172 319/496/172 +f 295/498/172 299/436/172 311/499/172 +f 322/501/162 301/805/162 304/502/162 +f 305/504/162 309/806/162 312/505/162 +f 255/807/162 303/509/162 256/508/162 +f 303/509/162 302/589/162 257/507/162 +f 302/589/162 264/808/162 262/809/162 +f 262/809/162 263/810/162 302/589/162 +f 263/810/162 257/507/162 302/589/162 +f 310/510/162 313/811/162 315/511/162 +f 259/812/162 258/813/162 308/514/162 +f 258/813/162 253/515/162 308/514/162 +f 253/515/162 254/814/162 306/513/162 +f 254/814/162 261/815/162 306/513/162 +f 261/815/162 260/816/162 306/513/162 +f 314/516/162 317/817/162 319/517/162 +f 318/519/162 321/818/162 324/520/162 +f 247/522/162 279/552/162 278/440/162 +f 278/440/162 271/442/162 247/522/162 +f 271/442/162 273/549/162 239/523/162 +f 217/443/169 225/439/165 261/438/164 +f 219/455/184 255/495/183 256/525/186 +f 248/526/162 282/553/162 281/539/162 +f 281/539/162 277/527/162 248/526/162 +f 277/527/162 279/552/162 247/522/162 +f 227/473/188 263/543/197 262/528/189 +f 221/481/191 220/458/187 256/525/186 +f 249/530/162 285/554/162 284/531/162 +f 284/531/162 280/485/162 248/526/162 +f 280/485/162 282/553/162 248/526/162 +f 228/474/193 226/471/190 262/528/189 +f 218/445/171 253/444/170 258/532/194 +f 245/533/162 288/555/162 287/534/162 +f 287/534/162 283/488/162 249/530/162 +f 283/488/162 285/554/162 249/530/162 +f 244/535/162 276/551/162 275/536/162 +f 275/536/162 286/476/162 245/533/162 +f 286/476/162 288/555/162 245/533/162 +f 223/462/196 222/460/195 258/532/194 +f 250/537/162 291/556/162 290/452/162 +f 290/452/162 265/454/162 250/537/162 +f 265/454/162 267/545/162 232/538/162 +f 281/539/166 313/569/166 310/540/166 +f 237/541/162 270/547/162 269/542/162 +f 269/542/162 298/464/162 246/435/162 +f 298/464/162 300/559/162 246/435/162 +f 251/446/162 294/557/162 293/491/162 +f 293/491/162 289/493/162 251/446/162 +f 289/493/162 291/556/162 250/537/162 +f 221/481/191 257/529/192 263/543/197 +f 320/560/172 293/491/172 292/497/172 +f 315/500/172 316/804/172 296/447/172 +f 271/442/168 305/441/167 306/561/198 +f 308/514/199 306/513/199 330/562/199 +f 315/511/200 313/811/200 341/564/200 +f 308/566/161 307/465/175 269/542/201 +f 299/436/172 298/464/172 312/466/172 +f 265/454/174 304/453/173 303/567/202 +f 277/527/166 310/540/166 309/568/166 +f 280/485/166 314/487/166 313/569/166 +f 318/490/166 317/486/166 284/531/166 +f 322/478/166 321/489/166 287/534/166 +f 275/536/203 274/550/176 302/570/178 +f 289/493/172 324/492/172 323/571/172 +f 232/572/162 267/819/162 266/494/162 +f 266/494/162 219/455/162 231/457/162 +f 333/573/162 334/592/162 331/574/162 +f 335/576/162 336/563/162 330/562/162 +f 339/578/162 340/591/162 337/579/162 +f 328/581/162 327/565/162 341/564/162 +f 326/583/162 325/590/162 343/584/162 +f 347/586/162 348/593/162 345/587/162 +f 320/521/204 326/583/204 344/585/204 +f 311/512/205 339/578/205 338/580/205 +f 303/509/206 333/573/206 332/575/206 +f 319/517/200 317/817/200 343/584/200 +f 312/505/207 309/806/207 337/579/207 +f 304/502/199 301/805/199 331/574/199 +f 323/503/205 347/586/205 346/588/205 +f 307/506/206 335/576/206 329/577/206 +f 316/518/204 328/581/204 342/582/204 +f 324/520/207 321/818/207 345/587/207 +f 384/594/208 378/633/208 246/595/208 +f 379/597/209 380/600/209 248/598/209 +f 380/600/209 381/602/209 249/601/209 +f 381/602/209 377/613/209 245/603/209 +f 362/604/210 372/607/211 240/605/211 +f 372/607/211 370/611/212 238/608/212 +f 371/609/213 379/597/209 247/599/209 +f 370/611/212 371/820/213 239/612/213 +f 377/613/209 376/821/214 244/614/214 +f 376/615/214 375/618/215 243/616/215 +f 375/618/215 373/620/216 241/619/216 +f 373/620/216 374/622/217 242/621/217 +f 374/622/217 366/624/218 234/623/218 +f 366/624/218 365/626/219 233/625/219 +f 365/626/219 363/631/220 231/627/220 +f 364/628/221 382/798/208 250/629/208 +f 363/631/220 364/822/221 232/632/221 +f 378/633/208 369/823/222 237/634/222 +f 369/635/222 368/638/223 236/636/223 +f 368/638/223 367/640/224 235/639/224 +f 367/640/224 361/642/225 229/641/225 +f 361/642/225 362/604/210 230/606/210 +f 383/643/208 384/594/208 252/596/208 +f 400/645/226 440/824/266 391/646/227 +f 431/648/229 432/758/229 378/741/229 +f 378/741/229 384/649/229 431/648/229 +f 384/649/229 429/757/229 427/650/229 +f 393/651/230 392/695/249 356/652/231 +f 437/654/233 441/769/234 410/655/234 +f 385/657/236 386/825/273 349/658/237 +f 428/660/229 429/757/229 384/649/229 +f 384/649/229 383/661/229 428/660/229 +f 383/661/229 426/756/229 424/662/229 +f 404/664/229 405/826/229 371/827/229 +f 371/827/229 370/663/229 404/664/229 +f 362/665/229 361/674/229 350/659/229 +f 436/666/239 455/775/240 422/667/240 +f 351/669/229 363/776/229 365/670/229 +f 352/671/229 365/670/229 366/672/229 +f 361/674/229 367/676/229 354/675/229 +f 367/676/229 368/828/229 355/647/229 +f 430/677/240 444/767/240 439/678/242 +f 406/680/244 434/829/268 396/681/245 +f 356/652/229 370/663/229 372/683/229 +f 357/653/229 372/683/229 362/665/229 +f 374/684/229 373/687/229 358/685/229 +f 373/687/229 375/830/229 360/682/229 +f 418/688/234 454/773/234 433/689/247 +f 406/680/229 360/682/229 375/830/229 +f 375/830/229 376/691/229 406/680/229 +f 366/672/229 374/684/229 359/686/229 +f 400/645/229 355/647/229 368/828/229 +f 368/828/229 369/693/229 400/645/229 +f 392/695/249 438/831/263 404/664/250 +f 412/696/234 446/771/234 449/697/234 +f 415/699/234 450/772/234 453/700/234 +f 456/702/240 452/759/240 425/703/240 +f 387/705/251 435/832/267 398/706/252 +f 451/707/240 448/833/240 428/660/240 +f 427/650/240 447/760/240 443/708/240 +f 436/709/229 433/796/229 454/710/229 +f 444/712/229 441/795/229 437/713/229 +f 434/717/229 435/793/229 389/834/229 +f 435/793/229 387/835/229 388/836/229 +f 389/834/229 435/793/229 388/836/229 +f 389/834/229 395/837/229 434/717/229 +f 395/837/229 394/715/229 434/717/229 +f 447/718/229 445/765/229 442/719/229 +f 385/722/229 390/838/229 440/762/229 +f 390/838/229 391/839/229 440/762/229 +f 440/762/229 438/723/229 385/722/229 +f 438/723/229 392/840/229 393/841/229 +f 393/841/229 386/721/229 438/723/229 +f 451/724/229 449/794/229 446/725/229 +f 456/727/229 453/797/229 450/728/229 +f 410/655/229 411/751/229 379/730/229 +f 379/730/229 371/842/229 403/656/229 +f 371/842/229 405/747/229 403/656/229 +f 349/658/237 386/825/273 393/651/230 +f 388/731/254 387/705/251 351/669/253 +f 413/733/229 414/752/229 380/734/229 +f 380/734/229 379/730/229 409/732/229 +f 379/730/229 411/751/229 409/732/229 +f 394/735/256 395/742/262 359/686/257 +f 353/673/259 389/843/274 388/731/254 +f 416/698/229 417/753/229 381/737/229 +f 381/737/229 380/734/229 416/698/229 +f 380/734/229 414/752/229 412/696/229 +f 360/682/246 396/681/245 394/735/256 +f 390/736/260 385/657/236 350/659/238 +f 419/701/229 420/754/229 377/738/229 +f 377/738/229 381/737/229 419/701/229 +f 381/737/229 417/753/229 415/699/229 +f 407/690/229 408/750/229 376/844/229 +f 376/844/229 377/738/229 407/690/229 +f 377/738/229 420/754/229 418/688/229 +f 355/647/228 391/646/227 390/736/260 +f 422/667/229 423/755/229 382/739/229 +f 382/739/229 364/845/229 397/668/229 +f 364/845/229 399/743/229 397/668/229 +f 442/740/234 445/770/234 413/733/234 +f 401/679/229 402/746/229 369/846/229 +f 369/846/229 378/741/229 401/679/229 +f 378/741/229 432/758/229 430/677/229 +f 425/703/229 426/756/229 383/661/229 +f 383/661/229 382/739/229 421/704/229 +f 382/739/229 423/755/229 421/704/229 +f 395/742/262 389/843/274 353/673/259 +f 452/759/240 451/707/240 424/662/240 +f 428/660/240 448/833/240 447/760/240 +f 403/656/235 404/748/250 438/761/263 +f 440/762/264 468/847/264 462/763/264 +f 447/718/265 459/848/265 473/764/265 +f 401/679/243 439/678/242 440/766/266 +f 444/767/240 430/677/240 431/648/240 +f 397/668/241 398/744/252 435/768/267 +f 409/732/234 410/655/234 441/769/234 +f 412/696/234 413/733/234 445/770/234 +f 416/698/234 449/697/234 450/772/234 +f 419/701/234 453/700/234 454/773/234 +f 434/774/268 406/749/244 407/690/248 +f 421/704/240 422/667/240 455/775/240 +f 398/706/229 399/849/229 364/850/229 +f 364/850/229 363/776/229 398/706/229 +f 463/777/229 466/851/229 465/778/229 +f 462/763/229 468/847/229 467/780/229 +f 469/782/229 472/852/229 471/783/229 +f 473/764/229 459/848/229 460/785/229 +f 475/787/229 457/853/229 458/788/229 +f 477/790/229 480/854/229 479/791/229 +f 476/789/269 458/788/269 452/729/269 +f 470/784/270 471/783/270 443/720/270 +f 464/779/271 465/778/271 435/793/271 +f 451/724/265 457/853/265 475/787/265 +f 444/712/272 472/852/272 469/782/272 +f 436/709/264 466/851/264 463/777/264 +f 478/792/270 479/791/270 455/711/270 +f 461/781/271 467/780/271 439/714/271 +f 474/786/269 460/785/269 448/726/269 +f 456/727/272 480/854/272 477/790/272 +f 382/798/208 383/643/208 251/644/208 diff --git a/src/main/resources/assets/hbm/models/doors/water_door.obj b/src/main/resources/assets/hbm/models/doors/water_door.obj new file mode 100644 index 000000000..6dfaabcff --- /dev/null +++ b/src/main/resources/assets/hbm/models/doors/water_door.obj @@ -0,0 +1,7570 @@ +# Blender v2.92.0 OBJ File: 'water_door.blend' +# www.blender.org +o bolt +v 0.165037 2.447428 -0.486393 +v 0.165037 2.563211 -0.486393 +v 0.165037 2.447428 -1.450890 +v 0.165037 2.563211 -1.450890 +v 0.197443 2.447428 -0.486393 +v 0.197443 2.563211 -0.486393 +v 0.197443 2.447428 -1.450890 +v 0.197443 2.563211 -1.450890 +v 0.165037 0.441220 -0.486393 +v 0.165037 0.557003 -0.486393 +v 0.165037 0.441220 -1.450890 +v 0.165037 0.557003 -1.450890 +v 0.197443 0.441220 -0.486393 +v 0.197443 0.557003 -0.486393 +v 0.197443 0.441220 -1.450890 +v 0.197443 0.557003 -1.450890 +vt 0.017052 0.475044 +vt 0.410579 0.522284 +vt 0.017052 0.522285 +vt 0.423801 0.461821 +vt 0.410579 0.414580 +vt 0.423801 0.414580 +vt 0.410579 0.461821 +vt 0.017052 0.414580 +vt 0.017052 0.461821 +vt 0.003830 0.414580 +vt 0.017052 0.401357 +vt 0.410579 0.401358 +vt 0.410579 0.475043 +vt 0.478701 0.414580 +vt 0.431462 0.808107 +vt 0.431460 0.414580 +vt 0.491925 0.821329 +vt 0.539166 0.808106 +vt 0.539166 0.821329 +vt 0.491925 0.808106 +vt 0.539165 0.414580 +vt 0.491924 0.414580 +vt 0.539165 0.401357 +vt 0.552388 0.414579 +vt 0.552388 0.808106 +vt 0.478703 0.808106 +vt 0.003830 0.461821 +vt 0.491924 0.401357 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +s off +f 2/1/1 3/2/1 1/3/1 +f 4/4/2 7/5/2 3/6/2 +f 8/7/3 5/8/3 7/5/3 +f 6/9/4 1/10/4 5/8/4 +f 7/5/5 1/11/5 3/12/5 +f 4/13/6 6/9/6 8/7/6 +f 10/14/1 11/15/1 9/16/1 +f 12/17/2 15/18/2 11/19/2 +f 16/20/3 13/21/3 15/18/3 +f 14/22/4 9/23/4 13/21/4 +f 15/18/5 9/24/5 11/25/5 +f 12/26/6 14/22/6 16/20/6 +f 2/1/1 4/13/1 3/2/1 +f 4/4/2 8/7/2 7/5/2 +f 8/7/3 6/9/3 5/8/3 +f 6/9/4 2/27/4 1/10/4 +f 7/5/5 5/8/5 1/11/5 +f 4/13/6 2/1/6 6/9/6 +f 10/14/1 12/26/1 11/15/1 +f 12/17/2 16/20/2 15/18/2 +f 16/20/3 14/22/3 13/21/3 +f 14/22/4 10/28/4 9/23/4 +f 15/18/5 13/21/5 9/24/5 +f 12/26/6 10/14/6 14/22/6 +o door +v 0.101040 2.807820 -0.722241 +v 0.101040 2.743416 -0.939834 +v 0.101040 2.807820 0.722241 +v 0.101040 2.743416 0.939834 +v 0.101040 2.325418 -1.144342 +v 0.101040 2.325418 1.144342 +v 0.101040 0.674582 -1.144342 +v 0.101040 0.674582 1.144342 +v 0.101040 0.256584 -0.939834 +v 0.101040 0.256584 0.939834 +v 0.101040 0.192180 -0.722241 +v 0.101040 0.192180 0.722241 +v 0.125000 2.848552 -0.726781 +v 0.125000 2.780064 -0.958169 +v 0.125000 2.848552 0.726781 +v 0.125000 2.780064 0.958169 +v 0.125000 2.330607 -1.179983 +v 0.125000 2.330607 1.179983 +v 0.125000 0.669393 -1.179983 +v 0.125000 0.669393 1.179983 +v 0.125000 0.219935 -0.958169 +v 0.125000 0.219935 0.958169 +v 0.125000 0.151448 -0.726781 +v 0.125000 0.151448 0.726781 +v 0.125000 2.848552 -0.108504 +v 0.125000 2.848552 0.108504 +v 0.125000 0.151448 0.108504 +v 0.125000 0.151448 -0.108504 +v 0.101040 2.807820 -0.108504 +v 0.101040 2.807820 0.108504 +v 0.101040 0.192180 0.108504 +v 0.101040 0.192180 -0.108504 +v 0.133246 2.807820 -0.071231 +v 0.133246 2.807820 0.071231 +v 0.133246 0.192180 0.071231 +v 0.133246 0.192180 -0.071231 +v 0.101040 2.325418 0.722241 +v 0.101040 2.325418 0.108504 +v 0.133246 2.324229 0.071231 +v 0.133246 2.324229 -0.071231 +v 0.101040 2.325418 -0.108504 +v 0.101040 2.325418 -0.722241 +v 0.101040 0.674582 0.722241 +v 0.101040 0.674582 0.108504 +v 0.133246 0.675771 0.071231 +v 0.133246 0.675771 -0.071231 +v 0.101040 0.674582 -0.108504 +v 0.101040 0.674582 -0.722241 +v 0.130922 1.829642 -0.108504 +v 0.130922 1.906068 -0.108504 +v 0.130922 1.093932 -0.108504 +v 0.130922 1.170358 -0.108504 +v 0.130922 1.906068 0.108504 +v 0.130922 1.829642 0.108504 +v 0.130922 1.170358 0.108504 +v 0.130922 1.093932 0.108504 +v 0.130922 1.829642 1.144342 +v 0.130922 1.906068 1.144342 +v 0.130922 1.906068 0.722241 +v 0.130922 1.829642 0.722241 +v 0.130922 1.170358 0.722241 +v 0.130922 1.093932 0.722241 +v 0.130922 1.093932 1.144342 +v 0.130922 1.170358 1.144342 +v 0.130922 1.829642 -0.722241 +v 0.130922 1.906068 -0.722241 +v 0.130922 1.906068 -1.144342 +v 0.130922 1.829642 -1.144342 +v 0.130922 1.170358 -1.144342 +v 0.130922 1.093932 -1.144342 +v 0.130922 1.093932 -0.722241 +v 0.130922 1.170358 -0.722241 +v 0.125000 1.075880 -1.179983 +v 0.125000 1.188410 -1.179983 +v 0.125000 1.811590 -1.179983 +v 0.125000 1.924120 -1.179983 +v 0.125000 1.924120 1.179983 +v 0.125000 1.811590 1.179983 +v 0.125000 1.188410 1.179983 +v 0.125000 1.075880 1.179983 +v 0.101040 1.075880 -1.144342 +v 0.101040 1.188410 -1.144342 +v 0.101040 1.811590 -1.144342 +v 0.101040 1.924120 -1.144342 +v 0.101040 1.924120 1.144342 +v 0.101040 1.811590 1.144342 +v 0.101040 1.188410 1.144342 +v 0.101040 1.075880 1.144342 +v 0.133246 1.075880 -0.071231 +v 0.133246 1.188410 -0.071231 +v 0.133246 1.811590 -0.071231 +v 0.133246 1.924120 -0.071231 +v 0.101040 1.924120 -0.108504 +v 0.101040 1.811590 -0.108504 +v 0.101040 1.188410 -0.108504 +v 0.101040 1.075880 -0.108504 +v 0.101040 1.075880 0.722241 +v 0.101040 1.188410 0.722241 +v 0.101040 1.811590 0.722241 +v 0.101040 1.924120 0.722241 +v 0.101040 1.075880 0.108504 +v 0.101040 1.188410 0.108504 +v 0.101040 1.811590 0.108504 +v 0.101040 1.924120 0.108504 +v 0.133246 1.075880 0.071231 +v 0.133246 1.188410 0.071231 +v 0.133246 1.811590 0.071231 +v 0.133246 1.924120 0.071231 +v 0.101040 1.924120 -0.722241 +v 0.101040 1.811590 -0.722241 +v 0.101040 1.188410 -0.722241 +v 0.101040 1.075880 -0.722241 +v 0.101040 0.392644 1.051717 +v 0.101040 0.605411 1.126214 +v 0.124987 0.404961 1.120039 +v 0.101040 0.605411 -1.126213 +v 0.101040 0.392644 -1.051717 +v 0.124987 0.404961 -1.120039 +v 0.101040 0.392642 -0.722241 +v 0.101040 0.605412 -0.722241 +v 0.101040 0.392635 -0.108504 +v 0.101040 0.605416 -0.108504 +v 0.133246 0.392635 -0.071231 +v 0.133246 0.605416 -0.071231 +v 0.133246 0.392635 0.071231 +v 0.133246 0.605416 0.071231 +v 0.101040 0.392635 0.108504 +v 0.101040 0.605416 0.108504 +v 0.101040 0.605412 0.722241 +v 0.101040 0.392642 0.722241 +v 0.124996 0.586645 1.161225 +v 0.124996 0.586645 -1.161225 +v 0.148339 0.594584 0.722241 +v 0.148339 0.403470 0.722241 +v 0.148339 0.403463 0.108504 +v 0.148339 0.594588 0.108504 +v 0.148339 0.403463 -0.108504 +v 0.148339 0.594588 -0.108504 +v 0.148339 0.403470 -0.722241 +v 0.148339 0.594584 -0.722241 +v 0.101040 2.603477 -1.033087 +v 0.101040 2.403613 -1.126622 +v 0.124987 2.595039 -1.120039 +v 0.101040 2.403613 1.126622 +v 0.101040 2.600861 1.034830 +v 0.124987 2.595039 1.120039 +v 0.101040 2.590124 0.722241 +v 0.101040 2.403611 0.722241 +v 0.101040 2.590129 0.108504 +v 0.101040 2.403606 0.108504 +v 0.133246 2.590129 0.071231 +v 0.133246 2.403606 0.071231 +v 0.133246 2.590129 -0.071231 +v 0.133246 2.403606 -0.071231 +v 0.101040 2.590129 -0.108504 +v 0.101040 2.403606 -0.108504 +v 0.101040 2.403611 -0.722241 +v 0.101040 2.590124 -0.722241 +v 0.124996 2.411551 -1.161633 +v 0.124996 2.411551 1.161633 +v 0.148339 2.579340 -0.108504 +v 0.148339 2.414395 -0.108504 +v 0.148339 2.414400 -0.722241 +v 0.148339 2.579335 -0.722241 +v 0.148339 2.579340 0.108504 +v 0.148339 2.414395 0.108504 +v 0.148339 2.579335 0.722241 +v 0.148339 2.414400 0.722241 +v -0.101040 2.807820 -0.722241 +v -0.101040 2.743416 -0.939834 +v -0.101040 2.807820 0.722241 +v -0.101040 2.743416 0.939834 +v -0.101040 2.325418 -1.144342 +v -0.101040 2.325418 1.144342 +v -0.101040 0.674582 -1.144342 +v -0.101040 0.674582 1.144342 +v -0.101040 0.256584 -0.939834 +v -0.101040 0.256584 0.939834 +v -0.101040 0.192180 -0.722241 +v -0.101040 0.192180 0.722241 +v -0.125000 2.848552 -0.726781 +v -0.125000 2.780064 -0.958169 +v -0.125000 2.848552 0.726781 +v -0.125000 2.780064 0.958169 +v -0.125000 2.330607 -1.179983 +v -0.125000 2.330607 1.179983 +v -0.125000 0.669393 -1.179983 +v -0.125000 0.669393 1.179983 +v -0.125000 0.219935 -0.958169 +v -0.125000 0.219935 0.958169 +v -0.125000 0.151448 -0.726781 +v -0.125000 0.151448 0.726781 +v -0.125000 2.848552 -0.108504 +v -0.125000 2.848552 0.108504 +v -0.125000 0.151448 0.108504 +v -0.125000 0.151448 -0.108504 +v -0.101040 2.807820 -0.108504 +v -0.101040 2.807820 0.108504 +v -0.101040 0.192180 0.108504 +v -0.101040 0.192180 -0.108504 +v -0.133246 2.807820 -0.071231 +v -0.133246 2.807820 0.071231 +v -0.133246 0.192180 0.071231 +v -0.133246 0.192180 -0.071231 +v -0.101040 2.325418 0.722241 +v -0.101040 2.325418 0.108504 +v -0.133246 2.324229 0.071231 +v -0.133246 2.324229 -0.071231 +v -0.101040 2.325418 -0.108504 +v -0.101040 2.325418 -0.722241 +v -0.101040 0.674582 0.722241 +v -0.101040 0.674582 0.108504 +v -0.133246 0.675771 0.071231 +v -0.133246 0.675771 -0.071231 +v -0.101040 0.674582 -0.108504 +v -0.101040 0.674582 -0.722241 +v -0.130922 1.829642 -0.108504 +v -0.130922 1.906068 -0.108504 +v -0.130922 1.093932 -0.108504 +v -0.130922 1.170358 -0.108504 +v -0.130922 1.906068 0.108504 +v -0.130922 1.829642 0.108504 +v -0.130922 1.170358 0.108504 +v -0.130922 1.093932 0.108504 +v -0.130922 1.829642 1.144342 +v -0.130922 1.906068 1.144342 +v -0.130922 1.906068 0.722241 +v -0.130922 1.829642 0.722241 +v -0.130922 1.170358 0.722241 +v -0.130922 1.093932 0.722241 +v -0.130922 1.093932 1.144342 +v -0.130922 1.170358 1.144342 +v -0.130922 1.829642 -0.722241 +v -0.130922 1.906068 -0.722241 +v -0.130922 1.906068 -1.144342 +v -0.130922 1.829642 -1.144342 +v -0.130922 1.170358 -1.144342 +v -0.130922 1.093932 -1.144342 +v -0.130922 1.093932 -0.722241 +v -0.130922 1.170358 -0.722241 +v -0.125000 1.075880 -1.179983 +v -0.125000 1.188410 -1.179983 +v -0.125000 1.811590 -1.179983 +v -0.125000 1.924120 -1.179983 +v -0.125000 1.924120 1.179983 +v -0.125000 1.811590 1.179983 +v -0.125000 1.188410 1.179983 +v -0.125000 1.075880 1.179983 +v -0.101040 1.075880 -1.144342 +v -0.101040 1.188410 -1.144342 +v -0.101040 1.811590 -1.144342 +v -0.101040 1.924120 -1.144342 +v -0.101040 1.924120 1.144342 +v -0.101040 1.811590 1.144342 +v -0.101040 1.188410 1.144342 +v -0.101040 1.075880 1.144342 +v -0.133246 1.075880 -0.071231 +v -0.133246 1.188410 -0.071231 +v -0.133246 1.811590 -0.071231 +v -0.133246 1.924120 -0.071231 +v -0.101040 1.924120 -0.108504 +v -0.101040 1.811590 -0.108504 +v -0.101040 1.188410 -0.108504 +v -0.101040 1.075880 -0.108504 +v -0.101040 1.075880 0.722241 +v -0.101040 1.188410 0.722241 +v -0.101040 1.811590 0.722241 +v -0.101040 1.924120 0.722241 +v -0.101040 1.075880 0.108504 +v -0.101040 1.188410 0.108504 +v -0.101040 1.811590 0.108504 +v -0.101040 1.924120 0.108504 +v -0.133246 1.075880 0.071231 +v -0.133246 1.188410 0.071231 +v -0.133246 1.811590 0.071231 +v -0.133246 1.924120 0.071231 +v -0.101040 1.924120 -0.722241 +v -0.101040 1.811590 -0.722241 +v -0.101040 1.188410 -0.722241 +v -0.101040 1.075880 -0.722241 +v -0.101040 0.392644 1.051717 +v -0.101040 0.605411 1.126214 +v -0.124987 0.404961 1.120039 +v -0.101040 0.605411 -1.126213 +v -0.101040 0.392644 -1.051717 +v -0.124987 0.404961 -1.120039 +v -0.101040 0.392642 -0.722241 +v -0.101040 0.605412 -0.722241 +v -0.101040 0.392635 -0.108504 +v -0.101040 0.605416 -0.108504 +v -0.133246 0.392635 -0.071231 +v -0.133246 0.605416 -0.071231 +v -0.133246 0.392635 0.071231 +v -0.133246 0.605416 0.071231 +v -0.101040 0.392635 0.108504 +v -0.101040 0.605416 0.108504 +v -0.101040 0.605412 0.722241 +v -0.101040 0.392642 0.722241 +v -0.124996 0.586645 1.161225 +v -0.124996 0.586645 -1.161225 +v -0.148339 0.594584 0.722241 +v -0.148339 0.403470 0.722241 +v -0.148339 0.403463 0.108504 +v -0.148339 0.594588 0.108504 +v -0.148339 0.403463 -0.108504 +v -0.148339 0.594588 -0.108504 +v -0.148339 0.403470 -0.722241 +v -0.148339 0.594584 -0.722241 +v -0.101040 2.603477 -1.033087 +v -0.101040 2.403613 -1.126622 +v -0.124987 2.595039 -1.120039 +v -0.101040 2.403613 1.126622 +v -0.101040 2.600861 1.034830 +v -0.124987 2.595039 1.120039 +v -0.101040 2.590124 0.722241 +v -0.101040 2.403611 0.722241 +v -0.101040 2.590129 0.108504 +v -0.101040 2.403606 0.108504 +v -0.133246 2.590129 0.071231 +v -0.133246 2.403606 0.071231 +v -0.133246 2.590129 -0.071231 +v -0.133246 2.403606 -0.071231 +v -0.101040 2.590129 -0.108504 +v -0.101040 2.403606 -0.108504 +v -0.101040 2.403611 -0.722241 +v -0.101040 2.590124 -0.722241 +v -0.124996 2.411551 -1.161633 +v -0.124996 2.411551 1.161633 +v -0.148339 2.579340 -0.108504 +v -0.148339 2.414395 -0.108504 +v -0.148339 2.414400 -0.722241 +v -0.148339 2.579335 -0.722241 +v -0.148339 2.579340 0.108504 +v -0.148339 2.414395 0.108504 +v -0.148339 2.579335 0.722241 +v -0.148339 2.414400 0.722241 +v 0.197647 2.347521 -0.528361 +v 0.197647 2.645470 -0.528361 +v 0.197647 2.347521 -0.647202 +v 0.197647 2.645470 -0.647202 +v 0.226225 2.347521 -0.528361 +v 0.226225 2.645470 -0.528361 +v 0.226225 2.347521 -0.647202 +v 0.226225 2.645470 -0.647202 +v 0.097240 2.347521 -0.528361 +v 0.097240 2.645470 -0.528361 +v 0.097240 2.347521 -0.647202 +v 0.097240 2.645470 -0.647202 +v 0.164155 2.347521 -0.528361 +v 0.164155 2.645470 -0.528361 +v 0.164155 2.347521 -0.647202 +v 0.164155 2.645470 -0.647202 +v 0.203265 2.586435 -0.575212 +v 0.203265 2.612117 -0.575212 +v 0.203265 2.586435 -0.600894 +v 0.203265 2.612117 -0.600894 +v 0.244293 2.612117 -0.600894 +v 0.244293 2.586435 -0.600894 +v 0.244293 2.586435 -0.575212 +v 0.244293 2.612117 -0.575212 +v 0.161929 2.564306 -0.571122 +v 0.161929 2.582345 -0.553083 +v 0.161929 2.616207 -0.553083 +v 0.161929 2.634246 -0.571122 +v 0.161929 2.582345 -0.623023 +v 0.161929 2.564306 -0.604984 +v 0.161929 2.634246 -0.604984 +v 0.161929 2.616207 -0.623023 +v 0.203265 2.616207 -0.623023 +v 0.203265 2.634246 -0.604984 +v 0.203265 2.621491 -0.610268 +v 0.203265 2.564306 -0.604984 +v 0.203265 2.582345 -0.623023 +v 0.203265 2.577062 -0.610268 +v 0.203265 2.582345 -0.553083 +v 0.203265 2.564306 -0.571122 +v 0.203265 2.577062 -0.565838 +v 0.203265 2.634246 -0.571122 +v 0.203265 2.616207 -0.553083 +v 0.203265 2.621491 -0.565838 +v 0.203265 2.384638 -0.575212 +v 0.203265 2.410320 -0.575212 +v 0.203265 2.384638 -0.600894 +v 0.203265 2.410320 -0.600894 +v 0.244293 2.410320 -0.600894 +v 0.244293 2.384638 -0.600894 +v 0.244293 2.384638 -0.575212 +v 0.244293 2.410320 -0.575212 +v 0.161929 2.362509 -0.571122 +v 0.161929 2.380548 -0.553083 +v 0.161929 2.414410 -0.553083 +v 0.161929 2.432449 -0.571122 +v 0.161929 2.380548 -0.623023 +v 0.161929 2.362509 -0.604984 +v 0.161929 2.432449 -0.604984 +v 0.161929 2.414410 -0.623023 +v 0.203265 2.414410 -0.623023 +v 0.203265 2.432449 -0.604984 +v 0.203265 2.419693 -0.610268 +v 0.203265 2.362509 -0.604984 +v 0.203265 2.380548 -0.623023 +v 0.203265 2.375264 -0.610268 +v 0.203265 2.380548 -0.553083 +v 0.203265 2.362509 -0.571122 +v 0.203265 2.375264 -0.565838 +v 0.203265 2.432449 -0.571122 +v 0.203265 2.414410 -0.553083 +v 0.203265 2.419693 -0.565838 +v 0.197647 0.341313 -0.866632 +v 0.197647 0.639262 -0.866632 +v 0.197647 0.341313 -0.985472 +v 0.197647 0.639262 -0.985472 +v 0.226225 0.341313 -0.866632 +v 0.226225 0.639262 -0.866632 +v 0.226225 0.341313 -0.985472 +v 0.226225 0.639262 -0.985472 +v 0.097240 0.341313 -0.866632 +v 0.097240 0.639262 -0.866632 +v 0.097240 0.341313 -0.985472 +v 0.097240 0.639262 -0.985472 +v 0.164155 0.341313 -0.866632 +v 0.164155 0.639262 -0.866632 +v 0.164155 0.341313 -0.985472 +v 0.164155 0.639262 -0.985472 +v 0.203265 0.580227 -0.913483 +v 0.203265 0.605909 -0.913483 +v 0.203265 0.580227 -0.939164 +v 0.203265 0.605909 -0.939164 +v 0.244293 0.605909 -0.939164 +v 0.244293 0.580227 -0.939164 +v 0.244293 0.580227 -0.913483 +v 0.244293 0.605909 -0.913483 +v 0.161929 0.558098 -0.909392 +v 0.161929 0.576137 -0.891353 +v 0.161929 0.609999 -0.891353 +v 0.161929 0.628038 -0.909392 +v 0.161929 0.576137 -0.961294 +v 0.161929 0.558098 -0.943255 +v 0.161929 0.628038 -0.943255 +v 0.161929 0.609999 -0.961294 +v 0.203265 0.609999 -0.961294 +v 0.203265 0.628038 -0.943255 +v 0.203265 0.615283 -0.948538 +v 0.203265 0.558098 -0.943255 +v 0.203265 0.576137 -0.961294 +v 0.203265 0.570854 -0.948538 +v 0.203265 0.576137 -0.891353 +v 0.203265 0.558098 -0.909392 +v 0.203265 0.570854 -0.904109 +v 0.203265 0.628038 -0.909392 +v 0.203265 0.609999 -0.891353 +v 0.203265 0.615283 -0.904109 +v 0.203265 0.378430 -0.913483 +v 0.203265 0.404112 -0.913483 +v 0.203265 0.378430 -0.939164 +v 0.203265 0.404112 -0.939164 +v 0.244293 0.404112 -0.939164 +v 0.244293 0.378430 -0.939164 +v 0.244293 0.378430 -0.913483 +v 0.244293 0.404112 -0.913483 +v 0.161929 0.356301 -0.909392 +v 0.161929 0.374340 -0.891353 +v 0.161929 0.408202 -0.891353 +v 0.161929 0.426241 -0.909392 +v 0.161929 0.374340 -0.961294 +v 0.161929 0.356301 -0.943255 +v 0.161929 0.426241 -0.943255 +v 0.161929 0.408202 -0.961294 +v 0.203265 0.408202 -0.961294 +v 0.203265 0.426241 -0.943255 +v 0.203265 0.413486 -0.948538 +v 0.203265 0.356301 -0.943255 +v 0.203265 0.374340 -0.961294 +v 0.203265 0.369056 -0.948538 +v 0.203265 0.374340 -0.891353 +v 0.203265 0.356301 -0.909392 +v 0.203265 0.369056 -0.904109 +v 0.203265 0.426241 -0.909392 +v 0.203265 0.408202 -0.891353 +v 0.203265 0.413486 -0.904109 +v 0.197647 0.341313 -0.528361 +v 0.197647 0.639262 -0.528361 +v 0.197647 0.341313 -0.647202 +v 0.197647 0.639262 -0.647202 +v 0.226225 0.341313 -0.528361 +v 0.226225 0.639262 -0.528361 +v 0.226225 0.341313 -0.647202 +v 0.226225 0.639262 -0.647202 +v 0.097240 0.341313 -0.528361 +v 0.097240 0.639262 -0.528361 +v 0.097240 0.341313 -0.647202 +v 0.097240 0.639262 -0.647202 +v 0.164155 0.341313 -0.528361 +v 0.164155 0.639262 -0.528361 +v 0.164155 0.341313 -0.647202 +v 0.164155 0.639262 -0.647202 +v 0.203265 0.580227 -0.575212 +v 0.203265 0.605909 -0.575212 +v 0.203265 0.580227 -0.600894 +v 0.203265 0.605909 -0.600894 +v 0.244293 0.605909 -0.600894 +v 0.244293 0.580227 -0.600894 +v 0.244293 0.580227 -0.575212 +v 0.244293 0.605909 -0.575212 +v 0.161929 0.558098 -0.571122 +v 0.161929 0.576137 -0.553083 +v 0.161929 0.609999 -0.553083 +v 0.161929 0.628038 -0.571122 +v 0.161929 0.576137 -0.623023 +v 0.161929 0.558098 -0.604984 +v 0.161929 0.628038 -0.604984 +v 0.161929 0.609999 -0.623023 +v 0.203265 0.609999 -0.623023 +v 0.203265 0.628038 -0.604984 +v 0.203265 0.615283 -0.610268 +v 0.203265 0.558098 -0.604984 +v 0.203265 0.576137 -0.623023 +v 0.203265 0.570854 -0.610268 +v 0.203265 0.576137 -0.553083 +v 0.203265 0.558098 -0.571122 +v 0.203265 0.570854 -0.565839 +v 0.203265 0.628038 -0.571122 +v 0.203265 0.609999 -0.553083 +v 0.203265 0.615283 -0.565839 +v 0.203265 0.378430 -0.575212 +v 0.203265 0.404112 -0.575212 +v 0.203265 0.378430 -0.600894 +v 0.203265 0.404112 -0.600894 +v 0.244293 0.404112 -0.600894 +v 0.244293 0.378430 -0.600894 +v 0.244293 0.378430 -0.575212 +v 0.244293 0.404112 -0.575212 +v 0.161929 0.356301 -0.571122 +v 0.161929 0.374340 -0.553083 +v 0.161929 0.408202 -0.553083 +v 0.161929 0.426241 -0.571122 +v 0.161929 0.374340 -0.623023 +v 0.161929 0.356301 -0.604984 +v 0.161929 0.426241 -0.604984 +v 0.161929 0.408202 -0.623023 +v 0.203265 0.408202 -0.623023 +v 0.203265 0.426241 -0.604984 +v 0.203265 0.413486 -0.610268 +v 0.203265 0.356301 -0.604984 +v 0.203265 0.374340 -0.623023 +v 0.203265 0.369056 -0.610268 +v 0.203265 0.374340 -0.553083 +v 0.203265 0.356301 -0.571122 +v 0.203265 0.369056 -0.565839 +v 0.203265 0.426241 -0.571122 +v 0.203265 0.408202 -0.553083 +v 0.203265 0.413486 -0.565839 +v 0.197647 2.347521 -0.866632 +v 0.197647 2.645470 -0.866632 +v 0.197647 2.347521 -0.985472 +v 0.197647 2.645470 -0.985472 +v 0.226225 2.347521 -0.866632 +v 0.226225 2.645470 -0.866632 +v 0.226225 2.347521 -0.985472 +v 0.226225 2.645470 -0.985472 +v 0.097240 2.347521 -0.866632 +v 0.097240 2.645470 -0.866632 +v 0.097240 2.347521 -0.985472 +v 0.097240 2.645470 -0.985472 +v 0.164155 2.347521 -0.866632 +v 0.164155 2.645470 -0.866632 +v 0.164155 2.347521 -0.985472 +v 0.164155 2.645470 -0.985472 +v 0.203265 2.586436 -0.913483 +v 0.203265 2.612117 -0.913483 +v 0.203265 2.586436 -0.939164 +v 0.203265 2.612117 -0.939164 +v 0.244293 2.612117 -0.939164 +v 0.244293 2.586436 -0.939164 +v 0.244293 2.586436 -0.913483 +v 0.244293 2.612117 -0.913483 +v 0.161929 2.564306 -0.909392 +v 0.161929 2.582345 -0.891353 +v 0.161929 2.616208 -0.891353 +v 0.161929 2.634247 -0.909392 +v 0.161929 2.582345 -0.961294 +v 0.161929 2.564306 -0.943255 +v 0.161929 2.634247 -0.943255 +v 0.161929 2.616208 -0.961294 +v 0.203265 2.616208 -0.961294 +v 0.203265 2.634247 -0.943255 +v 0.203265 2.621491 -0.948538 +v 0.203265 2.564306 -0.943255 +v 0.203265 2.582345 -0.961294 +v 0.203265 2.577062 -0.948538 +v 0.203265 2.582345 -0.891353 +v 0.203265 2.564306 -0.909392 +v 0.203265 2.577062 -0.904109 +v 0.203265 2.634247 -0.909392 +v 0.203265 2.616208 -0.891353 +v 0.203265 2.621491 -0.904109 +v 0.203265 2.384638 -0.913483 +v 0.203265 2.410320 -0.913483 +v 0.203265 2.384638 -0.939164 +v 0.203265 2.410320 -0.939164 +v 0.244293 2.410320 -0.939164 +v 0.244293 2.384638 -0.939164 +v 0.244293 2.384638 -0.913483 +v 0.244293 2.410320 -0.913483 +v 0.161929 2.362509 -0.909392 +v 0.161929 2.380548 -0.891353 +v 0.161929 2.414410 -0.891353 +v 0.161929 2.432449 -0.909392 +v 0.161929 2.380548 -0.961294 +v 0.161929 2.362509 -0.943255 +v 0.161929 2.432449 -0.943255 +v 0.161929 2.414410 -0.961294 +v 0.203265 2.414410 -0.961294 +v 0.203265 2.432449 -0.943255 +v 0.203265 2.419694 -0.948538 +v 0.203265 2.362509 -0.943255 +v 0.203265 2.380548 -0.961294 +v 0.203265 2.375265 -0.948538 +v 0.203265 2.380548 -0.891353 +v 0.203265 2.362509 -0.909392 +v 0.203265 2.375265 -0.904109 +v 0.203265 2.432449 -0.909392 +v 0.203265 2.414410 -0.891353 +v 0.203265 2.419694 -0.904109 +vt 0.511490 0.377541 +vt 0.478344 0.390762 +vt 0.478345 0.377541 +vt 0.194788 0.944062 +vt 0.161643 0.947241 +vt 0.161643 0.944062 +vt 0.194788 0.947241 +vt 0.161643 0.960462 +vt 0.194788 0.960462 +vt 0.161643 0.963641 +vt 0.158463 0.960462 +vt 0.158463 0.947241 +vt 0.197968 0.947241 +vt 0.882134 0.687732 +vt 0.874690 0.654587 +vt 0.882134 0.654587 +vt 0.874690 0.687732 +vt 0.861469 0.654587 +vt 0.861469 0.687732 +vt 0.854025 0.654587 +vt 0.861469 0.647143 +vt 0.874690 0.647143 +vt 0.874690 0.695177 +vt 0.034978 0.968702 +vt 0.034978 0.972469 +vt 0.032517 0.969157 +vt 0.423791 0.822353 +vt 0.419227 0.819496 +vt 0.423791 0.819496 +vt 0.032972 0.979074 +vt 0.029205 0.974476 +vt 0.032972 0.974476 +vt 0.027198 0.972469 +vt 0.022599 0.968702 +vt 0.027198 0.968702 +vt 0.039577 0.972469 +vt 0.039577 0.968702 +vt 0.032517 0.972014 +vt 0.029660 0.972014 +vt 0.029205 0.966695 +vt 0.032972 0.966695 +vt 0.029660 0.969157 +vt 0.416370 0.816639 +vt 0.419227 0.813782 +vt 0.419227 0.816639 +vt 0.423791 0.816639 +vt 0.423791 0.825210 +vt 0.419227 0.822353 +vt 0.423791 0.813782 +vt 0.033559 0.973057 +vt 0.033559 0.968114 +vt 0.028617 0.968114 +vt 0.028617 0.973057 +vt 0.039577 0.965864 +vt 0.034978 0.965864 +vt 0.034978 0.975307 +vt 0.039577 0.975307 +vt 0.027198 0.965864 +vt 0.022599 0.965864 +vt 0.022599 0.975307 +vt 0.027198 0.975307 +vt 0.029205 0.962097 +vt 0.032972 0.962097 +vt 0.701874 0.977962 +vt 0.701874 0.974195 +vt 0.704336 0.977507 +vt 0.689065 0.943870 +vt 0.684500 0.941013 +vt 0.689065 0.941013 +vt 0.703881 0.967590 +vt 0.707648 0.972188 +vt 0.703881 0.972188 +vt 0.709655 0.974195 +vt 0.714253 0.977962 +vt 0.709655 0.977962 +vt 0.697276 0.974195 +vt 0.697276 0.977962 +vt 0.704336 0.974650 +vt 0.707193 0.974650 +vt 0.707648 0.979969 +vt 0.703881 0.979969 +vt 0.707193 0.977507 +vt 0.681643 0.938156 +vt 0.684500 0.935299 +vt 0.684500 0.938156 +vt 0.689065 0.938156 +vt 0.689065 0.946727 +vt 0.684500 0.943870 +vt 0.689065 0.935299 +vt 0.703293 0.973607 +vt 0.703293 0.978550 +vt 0.708236 0.978550 +vt 0.708236 0.973607 +vt 0.697276 0.980800 +vt 0.701874 0.980800 +vt 0.701874 0.971357 +vt 0.697276 0.971357 +vt 0.709655 0.980800 +vt 0.714253 0.980800 +vt 0.714253 0.971357 +vt 0.709655 0.971357 +vt 0.707648 0.984567 +vt 0.703881 0.984567 +vt 0.889793 0.647143 +vt 0.903014 0.680288 +vt 0.889793 0.680288 +vt 0.493260 0.943731 +vt 0.460114 0.946910 +vt 0.460114 0.943731 +vt 0.493260 0.946910 +vt 0.460114 0.960131 +vt 0.493260 0.960131 +vt 0.460114 0.963310 +vt 0.456935 0.960131 +vt 0.456935 0.946910 +vt 0.496439 0.946910 +vt 0.772543 0.890867 +vt 0.805689 0.883423 +vt 0.805689 0.890867 +vt 0.772543 0.883423 +vt 0.805689 0.870202 +vt 0.772543 0.870202 +vt 0.805689 0.862758 +vt 0.813133 0.870202 +vt 0.813133 0.883423 +vt 0.765099 0.883423 +vt 0.408141 0.976041 +vt 0.404374 0.976041 +vt 0.407686 0.973579 +vt 0.867301 0.965358 +vt 0.862737 0.962501 +vt 0.867301 0.962501 +vt 0.397769 0.974034 +vt 0.402367 0.970267 +vt 0.402367 0.974034 +vt 0.404374 0.968260 +vt 0.408141 0.963662 +vt 0.408141 0.968260 +vt 0.404374 0.980639 +vt 0.408141 0.980639 +vt 0.404829 0.973579 +vt 0.404829 0.970722 +vt 0.410148 0.970267 +vt 0.410148 0.974034 +vt 0.407686 0.970722 +vt 0.859880 0.959644 +vt 0.862737 0.956788 +vt 0.862737 0.959644 +vt 0.867301 0.959644 +vt 0.867301 0.968215 +vt 0.862737 0.965358 +vt 0.867301 0.956788 +vt 0.403786 0.974622 +vt 0.408729 0.974622 +vt 0.408729 0.969679 +vt 0.403786 0.969679 +vt 0.410979 0.980639 +vt 0.410979 0.976041 +vt 0.401536 0.976041 +vt 0.401536 0.980639 +vt 0.410979 0.968260 +vt 0.410979 0.963662 +vt 0.401536 0.963662 +vt 0.401536 0.968260 +vt 0.414746 0.970267 +vt 0.414746 0.974034 +vt 0.443840 0.950804 +vt 0.443840 0.954571 +vt 0.441378 0.951259 +vt 0.054658 0.970667 +vt 0.050093 0.967811 +vt 0.054658 0.967811 +vt 0.441833 0.961177 +vt 0.438066 0.956578 +vt 0.441833 0.956578 +vt 0.436059 0.954571 +vt 0.431460 0.950804 +vt 0.436059 0.950804 +vt 0.448438 0.954571 +vt 0.448438 0.950804 +vt 0.441378 0.954116 +vt 0.438521 0.954116 +vt 0.438066 0.948798 +vt 0.441833 0.948798 +vt 0.438521 0.951259 +vt 0.047236 0.964954 +vt 0.050093 0.962097 +vt 0.050093 0.964954 +vt 0.054658 0.964954 +vt 0.054658 0.973525 +vt 0.050093 0.970667 +vt 0.054657 0.962097 +vt 0.442421 0.955159 +vt 0.442421 0.950217 +vt 0.437478 0.950217 +vt 0.437478 0.955159 +vt 0.448438 0.947966 +vt 0.443840 0.947966 +vt 0.443840 0.957409 +vt 0.448438 0.957409 +vt 0.436059 0.947966 +vt 0.431460 0.947966 +vt 0.431461 0.957409 +vt 0.436059 0.957409 +vt 0.438066 0.944199 +vt 0.441833 0.944199 +vt 0.675687 0.855341 +vt 0.688907 0.888487 +vt 0.675687 0.888487 +vt 0.058924 0.934858 +vt 0.025779 0.938038 +vt 0.025779 0.934858 +vt 0.058924 0.938038 +vt 0.025779 0.951258 +vt 0.058924 0.951258 +vt 0.025779 0.954437 +vt 0.022599 0.951258 +vt 0.022599 0.938038 +vt 0.062104 0.938038 +vt 0.861382 0.862758 +vt 0.828236 0.870202 +vt 0.828236 0.862758 +vt 0.861382 0.870202 +vt 0.828236 0.883423 +vt 0.861382 0.883423 +vt 0.828236 0.890867 +vt 0.820792 0.883423 +vt 0.820792 0.870202 +vt 0.868826 0.870202 +vt 0.376465 0.974034 +vt 0.376465 0.970267 +vt 0.378927 0.973579 +vt 0.797157 0.964005 +vt 0.792593 0.961147 +vt 0.797157 0.961147 +vt 0.378472 0.963662 +vt 0.382239 0.968260 +vt 0.378472 0.968260 +vt 0.384246 0.970267 +vt 0.388845 0.974034 +vt 0.384246 0.974034 +vt 0.371867 0.970267 +vt 0.371867 0.974034 +vt 0.378927 0.970722 +vt 0.381784 0.970722 +vt 0.382239 0.976041 +vt 0.378472 0.976041 +vt 0.381784 0.973579 +vt 0.789736 0.958290 +vt 0.792593 0.955434 +vt 0.792593 0.958290 +vt 0.797157 0.958290 +vt 0.797157 0.966861 +vt 0.792593 0.964005 +vt 0.797157 0.955434 +vt 0.377884 0.969679 +vt 0.377884 0.974622 +vt 0.382827 0.974622 +vt 0.382827 0.969679 +vt 0.371867 0.976872 +vt 0.376465 0.976872 +vt 0.376465 0.967429 +vt 0.371867 0.967429 +vt 0.384246 0.976872 +vt 0.388845 0.976872 +vt 0.388844 0.967429 +vt 0.384246 0.967429 +vt 0.382239 0.980639 +vt 0.378472 0.980639 +vt 0.775471 0.967813 +vt 0.771704 0.967813 +vt 0.775016 0.965351 +vt 0.756238 0.968067 +vt 0.751673 0.965210 +vt 0.756238 0.965210 +vt 0.765099 0.965806 +vt 0.769697 0.962039 +vt 0.769697 0.965806 +vt 0.771704 0.960032 +vt 0.775471 0.955434 +vt 0.775471 0.960032 +vt 0.771704 0.972411 +vt 0.775471 0.972411 +vt 0.772159 0.965351 +vt 0.772159 0.962494 +vt 0.777478 0.962039 +vt 0.777478 0.965806 +vt 0.775016 0.962494 +vt 0.748816 0.962353 +vt 0.751673 0.959496 +vt 0.751673 0.962353 +vt 0.756238 0.962353 +vt 0.756238 0.970924 +vt 0.751673 0.968067 +vt 0.756238 0.959496 +vt 0.771116 0.966394 +vt 0.776059 0.966394 +vt 0.776059 0.961451 +vt 0.771116 0.961451 +vt 0.778309 0.972411 +vt 0.778309 0.967813 +vt 0.768866 0.967813 +vt 0.768866 0.972411 +vt 0.778309 0.960032 +vt 0.778309 0.955434 +vt 0.768866 0.955434 +vt 0.768866 0.960032 +vt 0.782076 0.962039 +vt 0.782076 0.965806 +vt 0.512483 0.943731 +vt 0.525704 0.976877 +vt 0.512483 0.976877 +vt 0.074406 0.963605 +vt 0.107552 0.960426 +vt 0.107552 0.963605 +vt 0.074406 0.960426 +vt 0.107552 0.947205 +vt 0.074406 0.947205 +vt 0.107552 0.944026 +vt 0.110731 0.947205 +vt 0.110731 0.960426 +vt 0.071227 0.960426 +vt 0.030043 0.901723 +vt 0.063189 0.894279 +vt 0.063189 0.901723 +vt 0.030043 0.894279 +vt 0.063189 0.881059 +vt 0.030043 0.881059 +vt 0.063189 0.873614 +vt 0.070633 0.881059 +vt 0.070633 0.894279 +vt 0.022599 0.894279 +vt 0.660584 0.966766 +vt 0.656817 0.966766 +vt 0.660129 0.964304 +vt 0.977236 0.397669 +vt 0.972672 0.394812 +vt 0.977236 0.394812 +vt 0.650212 0.964759 +vt 0.654810 0.960992 +vt 0.654810 0.964759 +vt 0.656817 0.958985 +vt 0.660584 0.954387 +vt 0.660584 0.958985 +vt 0.656817 0.971364 +vt 0.660584 0.971364 +vt 0.657272 0.964304 +vt 0.657272 0.961447 +vt 0.662591 0.960992 +vt 0.662591 0.964759 +vt 0.660129 0.961447 +vt 0.969815 0.391955 +vt 0.972672 0.389098 +vt 0.972672 0.391955 +vt 0.977236 0.391955 +vt 0.977236 0.400526 +vt 0.972672 0.397669 +vt 0.977236 0.389098 +vt 0.656229 0.965347 +vt 0.661172 0.965347 +vt 0.661172 0.960404 +vt 0.656229 0.960404 +vt 0.663422 0.971364 +vt 0.663422 0.966766 +vt 0.653979 0.966766 +vt 0.653979 0.971364 +vt 0.663422 0.958985 +vt 0.663422 0.954387 +vt 0.653979 0.954387 +vt 0.653979 0.958985 +vt 0.667189 0.960992 +vt 0.667189 0.964759 +vt 0.352279 0.963111 +vt 0.348512 0.963111 +vt 0.351824 0.960649 +vt 0.558839 0.924580 +vt 0.563403 0.927437 +vt 0.558839 0.927437 +vt 0.341907 0.961105 +vt 0.346505 0.957337 +vt 0.346505 0.961105 +vt 0.348512 0.955331 +vt 0.352279 0.950732 +vt 0.352279 0.955331 +vt 0.348512 0.967710 +vt 0.352279 0.967710 +vt 0.348967 0.960649 +vt 0.348967 0.957793 +vt 0.354286 0.957337 +vt 0.354286 0.961105 +vt 0.351824 0.957793 +vt 0.566260 0.930294 +vt 0.563403 0.933151 +vt 0.563403 0.930294 +vt 0.558839 0.930294 +vt 0.558839 0.921723 +vt 0.563403 0.924580 +vt 0.558839 0.933151 +vt 0.347924 0.961692 +vt 0.352867 0.961692 +vt 0.352867 0.956750 +vt 0.347924 0.956750 +vt 0.355117 0.967710 +vt 0.355117 0.963111 +vt 0.345674 0.963111 +vt 0.345674 0.967710 +vt 0.355117 0.955331 +vt 0.355117 0.950732 +vt 0.345674 0.950732 +vt 0.345674 0.955331 +vt 0.358885 0.957337 +vt 0.358885 0.961105 +vt 0.511490 0.390762 +vt 0.194788 0.963641 +vt 0.197968 0.960462 +vt 0.854025 0.687732 +vt 0.861469 0.695177 +vt 0.029205 0.979074 +vt 0.022599 0.972469 +vt 0.416370 0.813782 +vt 0.419227 0.825210 +vt 0.707648 0.967590 +vt 0.714253 0.974195 +vt 0.681643 0.935299 +vt 0.684500 0.946727 +vt 0.903014 0.647143 +vt 0.493260 0.963310 +vt 0.496439 0.960131 +vt 0.772543 0.862758 +vt 0.765099 0.870202 +vt 0.397769 0.970267 +vt 0.404374 0.963662 +vt 0.859880 0.956788 +vt 0.862737 0.968215 +vt 0.438066 0.961177 +vt 0.431460 0.954571 +vt 0.047236 0.962097 +vt 0.050093 0.973525 +vt 0.688907 0.855341 +vt 0.058924 0.954437 +vt 0.062104 0.951258 +vt 0.861382 0.890867 +vt 0.868826 0.883423 +vt 0.382239 0.963662 +vt 0.388844 0.970267 +vt 0.789736 0.955434 +vt 0.792593 0.966861 +vt 0.765099 0.962039 +vt 0.771704 0.955434 +vt 0.748816 0.959496 +vt 0.751673 0.970924 +vt 0.525704 0.943731 +vt 0.074406 0.944026 +vt 0.071227 0.947205 +vt 0.030043 0.873614 +vt 0.022599 0.881059 +vt 0.650212 0.960992 +vt 0.656817 0.954387 +vt 0.969815 0.389098 +vt 0.972672 0.400526 +vt 0.341907 0.957337 +vt 0.348512 0.950732 +vt 0.566260 0.933151 +vt 0.563403 0.921723 +vt 0.962155 0.498815 +vt 0.946315 0.483530 +vt 0.951470 0.482388 +vt 0.292551 0.908723 +vt 0.297329 0.864080 +vt 0.297329 0.909300 +vt 0.702534 0.910123 +vt 0.698853 0.936428 +vt 0.697276 0.909630 +vt 0.377124 0.887972 +vt 0.384948 0.956002 +vt 0.371867 0.888476 +vt 0.373391 0.861674 +vt 0.378558 0.862768 +vt 0.095346 0.841810 +vt 0.078293 0.866016 +vt 0.079778 0.831435 +vt 0.411927 0.362717 +vt 0.436133 0.345664 +vt 0.436133 0.369882 +vt 0.697276 0.721157 +vt 0.705975 0.766143 +vt 0.697276 0.766143 +vt 0.697277 0.834419 +vt 0.705975 0.834419 +vt 0.574383 0.786681 +vt 0.621341 0.717354 +vt 0.621341 0.786681 +vt 0.180764 0.899749 +vt 0.165628 0.923956 +vt 0.158463 0.899749 +vt 0.140691 0.868091 +vt 0.125555 0.843884 +vt 0.140691 0.831438 +vt 0.861720 0.571207 +vt 0.854025 0.526267 +vt 0.861720 0.524250 +vt 0.604921 0.904982 +vt 0.601436 0.878650 +vt 0.606591 0.879793 +vt 0.612106 0.973083 +vt 0.599659 0.905436 +vt 0.949800 0.457198 +vt 0.944539 0.456744 +vt 0.140691 0.936367 +vt 0.118390 0.868091 +vt 0.478418 0.836683 +vt 0.546694 0.828988 +vt 0.546694 0.836683 +vt 0.854026 0.639483 +vt 0.854025 0.571207 +vt 0.710224 0.842078 +vt 0.715387 0.843068 +vt 0.956985 0.389098 +vt 0.962155 0.390049 +vt 0.929895 0.931209 +vt 0.924414 0.939908 +vt 0.924414 0.931077 +vt 0.701542 0.386315 +vt 0.701542 0.391795 +vt 0.696582 0.388057 +vt 0.949162 0.319186 +vt 0.944539 0.339181 +vt 0.944539 0.323332 +vt 0.929894 0.947567 +vt 0.924414 0.969867 +vt 0.924414 0.947567 +vt 0.903086 0.747560 +vt 0.908566 0.739865 +vt 0.908566 0.747692 +vt 0.676304 0.386315 +vt 0.676304 0.392525 +vt 0.671927 0.389227 +vt 0.688923 0.391795 +vt 0.683963 0.388057 +vt 0.688923 0.386315 +vt 0.739610 0.391572 +vt 0.734440 0.388131 +vt 0.739610 0.386315 +vt 0.753440 0.931842 +vt 0.748816 0.951837 +vt 0.748816 0.927696 +vt 0.906363 0.639483 +vt 0.906363 0.571207 +vt 0.333757 0.943873 +vt 0.309540 0.959721 +vt 0.309540 0.943873 +vt 0.333757 0.938393 +vt 0.309540 0.938393 +vt 0.504409 0.345664 +vt 0.504409 0.369882 +vt 0.750618 0.834419 +vt 0.903086 0.947567 +vt 0.908566 0.969867 +vt 0.903086 0.969867 +vt 0.689617 0.717354 +vt 0.689617 0.786681 +vt 0.977306 0.524250 +vt 0.985809 0.571207 +vt 0.977306 0.571207 +vt 0.908566 0.804721 +vt 0.903086 0.874048 +vt 0.903086 0.804721 +vt 0.929895 0.886566 +vt 0.924415 0.886566 +vt 0.834425 0.786823 +vt 0.765099 0.739865 +vt 0.834425 0.739865 +vt 0.431460 0.881326 +vt 0.478418 0.881326 +vt 0.924415 0.874048 +vt 0.908566 0.874048 +vt 0.903086 0.886566 +vt 0.908566 0.931077 +vt 0.903086 0.931209 +vt 0.924415 0.792203 +vt 0.908566 0.792203 +vt 0.834425 0.855099 +vt 0.765099 0.786823 +vt 0.908566 0.886566 +vt 0.850784 0.808141 +vt 0.895427 0.855099 +vt 0.850784 0.855099 +vt 0.416370 0.599271 +vt 0.421147 0.529944 +vt 0.421147 0.599271 +vt 0.590697 0.386315 +vt 0.635340 0.391092 +vt 0.590119 0.391092 +vt 0.906363 0.524250 +vt 0.705975 0.719185 +vt 0.750618 0.766143 +vt 0.546694 0.881326 +vt 0.903086 0.792203 +vt 0.929895 0.804721 +vt 0.929895 0.874048 +vt 0.850784 0.739865 +vt 0.895427 0.808141 +vt 0.929895 0.792203 +vt 0.924415 0.747692 +vt 0.929895 0.747560 +vt 0.560047 0.823690 +vt 0.564825 0.868333 +vt 0.560047 0.868333 +vt 0.470685 0.382319 +vt 0.401359 0.377541 +vt 0.470685 0.377541 +vt 0.960886 0.173680 +vt 0.964770 0.241956 +vt 0.960886 0.241956 +vt 0.960886 0.334373 +vt 0.964770 0.381331 +vt 0.960886 0.381331 +vt 0.989692 0.778858 +vt 0.985809 0.731901 +vt 0.989692 0.731901 +vt 0.924415 0.804721 +vt 0.985809 0.663625 +vt 0.989692 0.663625 +vt 0.989692 0.571207 +vt 0.985809 0.524250 +vt 0.989692 0.524250 +vt 0.912276 0.191579 +vt 0.896428 0.260905 +vt 0.896428 0.191579 +vt 0.118390 0.965355 +vt 0.140690 0.970835 +vt 0.118390 0.970835 +vt 0.560047 0.770811 +vt 0.564825 0.815454 +vt 0.560047 0.815454 +vt 0.964770 0.334373 +vt 0.973272 0.381331 +vt 0.977306 0.731901 +vt 0.985809 0.778858 +vt 0.977306 0.778858 +vt 0.964770 0.126722 +vt 0.973272 0.173680 +vt 0.964770 0.173680 +vt 0.977306 0.663625 +vt 0.973272 0.241956 +vt 0.985809 0.639483 +vt 0.977306 0.639483 +vt 0.964770 0.266097 +vt 0.973272 0.334373 +vt 0.973423 0.571207 +vt 0.973423 0.639483 +vt 0.960886 0.126722 +vt 0.977156 0.241956 +vt 0.977156 0.173680 +vt 0.989692 0.639483 +vt 0.977156 0.381331 +vt 0.977156 0.334373 +vt 0.960886 0.266097 +vt 0.973272 0.126722 +vt 0.977156 0.126722 +vt 0.973272 0.266097 +vt 0.973423 0.524250 +vt 0.973423 0.663625 +vt 0.973423 0.731901 +vt 0.973423 0.778858 +vt 0.977156 0.266097 +vt 0.937554 0.874470 +vt 0.941182 0.873085 +vt 0.941182 0.877578 +vt 0.900865 0.689333 +vt 0.904493 0.687948 +vt 0.904493 0.692441 +vt 0.937554 0.900498 +vt 0.941182 0.897390 +vt 0.941182 0.901883 +vt 0.889793 0.689802 +vt 0.893206 0.687948 +vt 0.893206 0.692725 +vt 0.974157 0.408185 +vt 0.973894 0.412060 +vt 0.969815 0.410177 +vt 0.870080 0.728312 +vt 0.870080 0.732196 +vt 0.865882 0.729914 +vt 0.937554 0.886623 +vt 0.941182 0.885237 +vt 0.941182 0.889731 +vt 0.862539 0.389233 +vt 0.862539 0.393117 +vt 0.858341 0.390835 +vt 0.937554 0.741874 +vt 0.941573 0.752384 +vt 0.937554 0.750376 +vt 0.974157 0.420558 +vt 0.937554 0.831087 +vt 0.941573 0.820577 +vt 0.941573 0.833096 +vt 0.937554 0.790731 +vt 0.941573 0.780221 +vt 0.941573 0.792740 +vt 0.180764 0.831473 +vt 0.158464 0.831473 +vt 0.908566 0.947567 +vt 0.924415 0.739865 +vt 0.929895 0.739865 +vt 0.617276 0.863365 +vt 0.615741 0.855341 +vt 0.974840 0.486710 +vt 0.969815 0.494974 +vt 0.970038 0.487022 +vt 0.292551 0.918134 +vt 0.297576 0.926398 +vt 0.292774 0.926086 +vt 0.118889 0.775223 +vt 0.123843 0.706772 +vt 0.124265 0.775055 +vt 0.756046 0.920036 +vt 0.748816 0.898762 +vt 0.756046 0.894958 +vt 0.150421 0.614029 +vt 0.145357 0.682370 +vt 0.145048 0.614189 +vt 0.148468 0.577451 +vt 0.145067 0.569966 +vt 0.433477 0.828988 +vt 0.478418 0.828988 +vt 0.123824 0.682440 +vt 0.124085 0.614116 +vt 0.145233 0.774949 +vt 0.145374 0.706709 +vt 0.145361 0.819164 +vt 0.124627 0.565415 +vt 0.121057 0.569182 +vt 0.118719 0.613964 +vt 0.148744 0.811669 +vt 0.150597 0.775094 +vt 0.150804 0.706823 +vt 0.118390 0.682322 +vt 0.121349 0.820020 +vt 0.124930 0.823778 +vt 0.121773 0.702573 +vt 0.147427 0.686567 +vt 0.842086 0.739865 +vt 0.842085 0.808141 +vt 0.102511 0.866016 +vt 0.078293 0.934292 +vt 0.309540 0.965201 +vt 0.333757 0.959721 +vt 0.333757 0.965201 +vt 0.908566 0.939908 +vt 0.903086 0.939908 +vt 0.390110 0.847611 +vt 0.387329 0.838144 +vt 0.715387 0.950181 +vt 0.704017 0.935324 +vt 0.969815 0.504122 +vt 0.974617 0.513041 +vt 0.969816 0.513041 +vt 0.436262 0.968836 +vt 0.431460 0.977756 +vt 0.431461 0.968836 +vt 0.163923 0.682368 +vt 0.182432 0.706700 +vt 0.163904 0.706645 +vt 0.161863 0.686545 +vt 0.159554 0.579292 +vt 0.164151 0.614096 +vt 0.158785 0.614004 +vt 0.182420 0.682417 +vt 0.184482 0.686608 +vt 0.158622 0.775163 +vt 0.164011 0.775077 +vt 0.842085 0.853127 +vt 0.182190 0.775035 +vt 0.182308 0.614138 +vt 0.162601 0.569894 +vt 0.183172 0.565415 +vt 0.162456 0.819349 +vt 0.187684 0.614037 +vt 0.186007 0.820003 +vt 0.187559 0.775139 +vt 0.187859 0.706817 +vt 0.012567 0.964099 +vt 0.003830 0.944483 +vt 0.012567 0.939896 +vt 0.158507 0.682251 +vt 0.012607 0.907688 +vt 0.003830 0.927287 +vt 0.007897 0.906755 +vt 0.159300 0.809760 +vt 0.186122 0.569220 +vt 0.896428 0.317934 +vt 0.912276 0.273424 +vt 0.912276 0.317934 +vt 0.313424 0.704790 +vt 0.321926 0.680648 +vt 0.321926 0.704790 +vt 0.576159 0.949773 +vt 0.579645 0.923442 +vt 0.581315 0.948631 +vt 0.890948 0.117046 +vt 0.898643 0.072106 +vt 0.898643 0.119063 +vt 0.301881 0.633691 +vt 0.232554 0.680649 +vt 0.232554 0.633691 +vt 0.626712 0.878650 +vt 0.642552 0.863365 +vt 0.631868 0.879792 +vt 0.728304 0.891885 +vt 0.724624 0.865580 +vt 0.729788 0.866684 +vt 0.240249 0.858158 +vt 0.284892 0.811201 +vt 0.284892 0.858158 +vt 0.081500 0.569163 +vt 0.084333 0.614085 +vt 0.078962 0.613908 +vt 0.896428 0.134549 +vt 0.912276 0.126722 +vt 0.912276 0.134549 +vt 0.896428 0.179060 +vt 0.912276 0.179060 +vt 0.309540 0.862457 +vt 0.326593 0.838251 +vt 0.333758 0.862457 +vt 0.202683 0.923955 +vt 0.217819 0.899749 +vt 0.217819 0.936402 +vt 0.592000 0.965058 +vt 0.590465 0.973082 +vt 0.364208 0.874797 +vt 0.349071 0.850590 +vt 0.364208 0.838144 +vt 0.399293 0.932471 +vt 0.403026 0.906173 +vt 0.404460 0.931377 +vt 0.105273 0.706731 +vt 0.105312 0.682391 +vt 0.107368 0.686578 +vt 0.689617 0.847682 +vt 0.621341 0.803039 +vt 0.689617 0.803039 +vt 0.219353 0.614177 +vt 0.200968 0.682546 +vt 0.201178 0.614191 +vt 0.917756 0.260905 +vt 0.917756 0.191579 +vt 0.301881 0.688308 +vt 0.232554 0.735265 +vt 0.232554 0.688308 +vt 0.689617 0.794341 +vt 0.621341 0.794340 +vt 0.104848 0.774990 +vt 0.083730 0.706630 +vt 0.937554 0.862318 +vt 0.941182 0.860933 +vt 0.941182 0.865426 +vt 0.961879 0.778858 +vt 0.965763 0.731901 +vt 0.965763 0.778858 +vt 0.576354 0.794340 +vt 0.630197 0.904981 +vt 0.416370 0.806123 +vt 0.421147 0.761480 +vt 0.421147 0.806123 +vt 0.546649 0.369882 +vt 0.614925 0.345664 +vt 0.614925 0.369882 +vt 0.969815 0.470786 +vt 0.974840 0.479050 +vt 0.970038 0.478738 +vt 0.081713 0.686492 +vt 0.083790 0.682300 +vt 0.105279 0.614229 +vt 0.108851 0.577554 +vt 0.110638 0.614094 +vt 0.200938 0.706829 +vt 0.195717 0.775183 +vt 0.195523 0.706937 +vt 0.862724 0.448315 +vt 0.854026 0.516591 +vt 0.854025 0.448315 +vt 0.554691 0.967948 +vt 0.560171 0.943731 +vt 0.560171 0.967948 +vt 0.854025 0.403329 +vt 0.232554 0.926434 +vt 0.240249 0.926434 +vt 0.558839 0.910259 +vt 0.566068 0.888985 +vt 0.566068 0.914064 +vt 0.586830 0.855341 +vt 0.592000 0.856293 +vt 0.637382 0.973082 +vt 0.642552 0.972131 +vt 0.416012 0.946534 +vt 0.413231 0.956002 +vt 0.224624 0.775254 +vt 0.219458 0.706797 +vt 0.224895 0.706914 +vt 0.714161 0.391795 +vt 0.709202 0.390052 +vt 0.714161 0.386315 +vt 0.110226 0.775160 +vt 0.110731 0.706859 +vt 0.195518 0.899749 +vt 0.217819 0.831473 +vt 0.917756 0.273424 +vt 0.917756 0.318066 +vt 0.953377 0.571207 +vt 0.949494 0.639483 +vt 0.949494 0.571207 +vt 0.313424 0.773066 +vt 0.309540 0.820023 +vt 0.309540 0.773066 +vt 0.012607 0.898163 +vt 0.003830 0.878565 +vt 0.012607 0.873614 +vt 0.313424 0.565415 +vt 0.309540 0.612372 +vt 0.309540 0.565415 +vt 0.321926 0.773066 +vt 0.325810 0.704790 +vt 0.325810 0.773066 +vt 0.838696 0.345664 +vt 0.838696 0.350441 +vt 0.835284 0.347518 +vt 0.953377 0.639483 +vt 0.961879 0.571207 +vt 0.961879 0.639483 +vt 0.313424 0.612372 +vt 0.309540 0.680648 +vt 0.850682 0.393117 +vt 0.846484 0.391514 +vt 0.850682 0.389233 +vt 0.943286 0.003830 +vt 0.943286 0.072106 +vt 0.974157 0.444854 +vt 0.969815 0.442862 +vt 0.973894 0.440979 +vt 0.313424 0.680648 +vt 0.321926 0.612372 +vt 0.621341 0.847682 +vt 0.574383 0.803039 +vt 0.953377 0.663625 +vt 0.961879 0.663625 +vt 0.907367 0.401357 +vt 0.862724 0.401357 +vt 0.416370 0.606930 +vt 0.421147 0.676257 +vt 0.416370 0.676257 +vt 0.949162 0.375128 +vt 0.944539 0.355133 +vt 0.949162 0.350987 +vt 0.953377 0.778858 +vt 0.961879 0.731901 +vt 0.321926 0.820023 +vt 0.325810 0.820023 +vt 0.917756 0.134417 +vt 0.917756 0.126722 +vt 0.965763 0.639483 +vt 0.858223 0.732196 +vt 0.854025 0.729914 +vt 0.858223 0.728312 +vt 0.313424 0.820023 +vt 0.941573 0.760043 +vt 0.937554 0.770554 +vt 0.937554 0.762051 +vt 0.943286 0.119063 +vt 0.309540 0.704790 +vt 0.140690 0.944026 +vt 0.118390 0.949506 +vt 0.118390 0.944026 +vt 0.965763 0.663625 +vt 0.364207 0.943073 +vt 0.341907 0.874797 +vt 0.325810 0.612372 +vt 0.325810 0.680648 +vt 0.721821 0.388057 +vt 0.726781 0.386315 +vt 0.726781 0.391795 +vt 0.890948 0.179060 +vt 0.890948 0.134417 +vt 0.953377 0.731901 +vt 0.416370 0.683917 +vt 0.421147 0.753243 +vt 0.416370 0.753243 +vt 0.197431 0.569219 +vt 0.195796 0.614081 +vt 0.735994 0.959930 +vt 0.741157 0.958941 +vt 0.688907 0.916141 +vt 0.684284 0.896147 +vt 0.688907 0.900293 +vt 0.890948 0.003830 +vt 0.898643 0.003830 +vt 0.890948 0.318066 +vt 0.896428 0.326765 +vt 0.890948 0.326765 +vt 0.859880 0.944541 +vt 0.868617 0.924925 +vt 0.868617 0.949128 +vt 0.941573 0.800399 +vt 0.937554 0.810909 +vt 0.937554 0.802407 +vt 0.301881 0.565415 +vt 0.232554 0.565415 +vt 0.554691 0.943731 +vt 0.538843 0.967948 +vt 0.538843 0.943731 +vt 0.140690 0.965355 +vt 0.140690 0.949506 +vt 0.965763 0.571207 +vt 0.284892 0.926434 +vt 0.890948 0.191579 +vt 0.890948 0.260905 +vt 0.105485 0.570061 +vt 0.890948 0.273424 +vt 0.747269 0.388131 +vt 0.752440 0.386315 +vt 0.752440 0.391572 +vt 0.912276 0.260905 +vt 0.560047 0.717931 +vt 0.564825 0.762574 +vt 0.560047 0.762574 +vt 0.961879 0.524250 +vt 0.835284 0.361023 +vt 0.838696 0.358101 +vt 0.838696 0.362878 +vt 0.533363 0.967948 +vt 0.533363 0.943731 +vt 0.104784 0.819259 +vt 0.083864 0.775023 +vt 0.664268 0.392525 +vt 0.659891 0.389612 +vt 0.664268 0.386315 +vt 0.941573 0.840755 +vt 0.937554 0.851265 +vt 0.937554 0.842763 +vt 0.917756 0.179060 +vt 0.953377 0.524250 +vt 0.949494 0.524250 +vt 0.907367 0.448315 +vt 0.862724 0.516591 +vt 0.896428 0.273424 +vt 0.937554 0.912650 +vt 0.941182 0.909542 +vt 0.941182 0.914035 +vt 0.974157 0.432481 +vt 0.219475 0.682519 +vt 0.221529 0.686702 +vt 0.912276 0.326765 +vt 0.080747 0.819998 +vt 0.078491 0.775165 +vt 0.917756 0.326765 +vt 0.232554 0.813217 +vt 0.240249 0.811200 +vt 0.741157 0.851828 +vt 0.652232 0.391117 +vt 0.643313 0.386315 +vt 0.652232 0.386315 +vt 0.448724 0.978069 +vt 0.443922 0.969150 +vt 0.448724 0.968836 +vt 0.198886 0.702648 +vt 0.223890 0.809813 +vt 0.219241 0.775160 +vt 0.220975 0.569932 +vt 0.200390 0.565415 +vt 0.195518 0.682427 +vt 0.321926 0.565415 +vt 0.301881 0.735265 +vt 0.232554 0.803541 +vt 0.297329 0.811200 +vt 0.292551 0.855843 +vt 0.292551 0.811200 +vt 0.748817 0.842655 +vt 0.753594 0.887298 +vt 0.748816 0.887298 +vt 0.224010 0.579344 +vt 0.224725 0.614094 +vt 0.110731 0.682286 +vt 0.201081 0.775087 +vt 0.197195 0.820002 +vt 0.974840 0.452513 +vt 0.969815 0.460777 +vt 0.970038 0.452825 +vt 0.410851 0.838144 +vt 0.416012 0.839143 +vt 0.949494 0.778858 +vt 0.949494 0.731901 +vt 0.949494 0.663625 +vt 0.309540 0.930733 +vt 0.333758 0.930733 +vt 0.108202 0.811773 +vt 0.965763 0.524250 +vt 0.325810 0.565415 +vt 0.522443 0.362717 +vt 0.546649 0.345664 +vt 0.078342 0.682167 +vt 0.078293 0.706739 +vt 0.835284 0.373460 +vt 0.838696 0.370537 +vt 0.838696 0.375315 +vt 0.896428 0.126722 +vt 0.890948 0.126722 +vt 0.224895 0.682411 +vt 0.220721 0.819387 +vt 0.200139 0.823813 +vt 0.249890 0.529944 +vt 0.181109 0.557756 +vt 0.181109 0.529944 +vt 0.925415 0.126722 +vt 0.953227 0.171943 +vt 0.925415 0.171943 +vt 0.953227 0.184461 +vt 0.925415 0.184461 +vt 0.953227 0.253788 +vt 0.925415 0.253788 +vt 0.088187 0.529944 +vt 0.061342 0.557756 +vt 0.061342 0.529944 +vt 0.033993 0.557754 +vt 0.033993 0.529946 +vt 0.914023 0.581989 +vt 0.941834 0.651315 +vt 0.914023 0.651315 +vt 0.914023 0.569470 +vt 0.941834 0.581989 +vt 0.811014 0.013269 +vt 0.811013 0.003830 +vt 0.838824 0.013269 +vt 0.156968 0.557756 +vt 0.156968 0.529944 +vt 0.088187 0.557756 +vt 0.838825 0.181109 +vt 0.811013 0.156968 +vt 0.838825 0.156968 +vt 0.838823 0.304084 +vt 0.811013 0.276736 +vt 0.838825 0.276736 +vt 0.838825 0.249890 +vt 0.811013 0.181109 +vt 0.811013 0.249891 +vt 0.013063 0.557755 +vt 0.003830 0.557756 +vt 0.013063 0.529945 +vt 0.914023 0.524250 +vt 0.941834 0.569470 +vt 0.838825 0.061342 +vt 0.811015 0.033993 +vt 0.838823 0.033993 +vt 0.325014 0.557755 +vt 0.304084 0.557754 +vt 0.325014 0.529945 +vt 0.304084 0.529946 +vt 0.276735 0.557756 +vt 0.276735 0.529944 +vt 0.941834 0.663834 +vt 0.914023 0.663834 +vt 0.953227 0.266306 +vt 0.925415 0.266306 +vt 0.953227 0.311527 +vt 0.925415 0.311527 +vt 0.811014 0.324809 +vt 0.811015 0.304084 +vt 0.838824 0.324809 +vt 0.941834 0.709054 +vt 0.914023 0.709054 +vt 0.838825 0.088187 +vt 0.811013 0.061342 +vt 0.811013 0.088187 +vt 0.249890 0.557756 +vt 0.960620 0.506839 +vt 0.292551 0.864080 +vt 0.390110 0.955002 +vt 0.401359 0.346858 +vt 0.574383 0.717354 +vt 0.180764 0.936403 +vt 0.617276 0.972131 +vt 0.118391 0.936367 +vt 0.861720 0.639483 +vt 0.929895 0.939908 +vt 0.949162 0.343327 +vt 0.929894 0.969867 +vt 0.903086 0.739865 +vt 0.753440 0.947690 +vt 0.431460 0.836683 +vt 0.765099 0.855099 +vt 0.416370 0.529944 +vt 0.635340 0.386315 +vt 0.750618 0.719186 +vt 0.895427 0.739865 +vt 0.564825 0.823113 +vt 0.401359 0.382319 +vt 0.564825 0.770234 +vt 0.941573 0.739865 +vt 0.970202 0.422690 +vt 0.937554 0.822585 +vt 0.937554 0.782229 +vt 0.974840 0.496149 +vt 0.297576 0.916959 +vt 0.118391 0.706895 +vt 0.750927 0.919379 +vt 0.150804 0.682252 +vt 0.121754 0.686636 +vt 0.147444 0.702513 +vt 0.102511 0.934292 +vt 0.712839 0.959930 +vt 0.974617 0.503808 +vt 0.436262 0.978069 +vt 0.158463 0.706753 +vt 0.161839 0.702446 +vt 0.184497 0.702510 +vt 0.187859 0.682307 +vt 0.183054 0.823814 +vt 0.007855 0.965022 +vt 0.012607 0.932237 +vt 0.574383 0.922987 +vt 0.890948 0.072106 +vt 0.301881 0.680649 +vt 0.641017 0.855341 +vt 0.723046 0.892378 +vt 0.085084 0.565415 +vt 0.310734 0.827683 +vt 0.397769 0.905669 +vt 0.107356 0.702525 +vt 0.624936 0.905436 +vt 0.416370 0.760902 +vt 0.974840 0.469611 +vt 0.081667 0.702429 +vt 0.232554 0.858158 +vt 0.560950 0.889642 +vt 0.195519 0.831472 +vt 0.007897 0.899096 +vt 0.574383 0.847682 +vt 0.421147 0.606930 +vt 0.944539 0.370981 +vt 0.941573 0.772562 +vt 0.341907 0.943073 +vt 0.421147 0.683917 +vt 0.684284 0.920288 +vt 0.863905 0.924002 +vt 0.941573 0.812918 +vt 0.564825 0.717354 +vt 0.084313 0.823776 +vt 0.941573 0.853273 +vt 0.907367 0.516591 +vt 0.970202 0.430349 +vt 0.221528 0.702603 +vt 0.738610 0.842078 +vt 0.642999 0.391117 +vt 0.443923 0.978069 +vt 0.198893 0.686746 +vt 0.301881 0.803541 +vt 0.297329 0.856421 +vt 0.753594 0.842078 +vt 0.974840 0.461952 +vt 0.512068 0.347149 +vt 0.953227 0.126722 +vt 0.838825 0.003830 +vt 0.003830 0.529944 +vt 0.941834 0.524250 +vt 0.334248 0.529944 +vt 0.334248 0.557756 +vt 0.838825 0.334248 +vt 0.811013 0.334248 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.7071 0.7071 +vn 0.8722 0.3210 -0.3692 +vn 0.8648 0.4236 -0.2696 +vn 0.8609 0.4168 -0.2918 +vn 0.8326 0.0701 -0.5495 +vn 0.8299 0.0000 -0.5579 +vn 0.8355 0.0676 -0.5453 +vn 0.8632 -0.4995 0.0739 +vn 0.8725 -0.4038 0.2752 +vn 0.8632 -0.4998 0.0712 +vn 0.8632 -0.4995 -0.0739 +vn 0.8619 -0.5070 0.0000 +vn 0.8632 -0.4998 -0.0712 +vn 0.8725 -0.4037 -0.2752 +vn 0.8580 -0.3995 -0.3228 +vn 0.8632 0.4995 0.0739 +vn 0.8648 0.4236 0.2696 +vn 0.8609 0.4168 0.2918 +vn 0.8619 0.5070 0.0000 +vn 0.8632 0.4998 0.0712 +vn 0.8632 0.4995 -0.0739 +vn 0.8632 0.4998 -0.0712 +vn 0.7567 0.0000 -0.6538 +vn 0.7439 -0.1827 0.6428 +vn 0.7477 -0.1538 0.6460 +vn 0.6913 -0.4066 0.5973 +vn 0.9801 -0.1984 0.0000 +vn 0.9930 -0.1185 0.0000 +vn 0.7567 0.0000 0.6538 +vn 0.7477 0.1538 0.6460 +vn 0.6913 0.4066 0.5973 +vn 0.7439 0.1827 0.6428 +vn 0.7477 0.1538 -0.6460 +vn 0.6913 0.4066 -0.5973 +vn 0.7439 0.1827 -0.6428 +vn 0.6913 -0.4066 -0.5973 +vn 0.7477 -0.1538 -0.6460 +vn 0.7439 -0.1827 -0.6428 +vn 0.9930 0.1185 0.0000 +vn 0.9801 0.1984 0.0000 +vn 0.9957 0.0000 -0.0928 +vn 0.8324 -0.0604 0.5508 +vn 0.8299 0.0000 0.5579 +vn 0.8325 -0.0626 0.5505 +vn 0.8324 -0.0604 -0.5508 +vn 0.5171 0.8559 0.0000 +vn 0.5116 0.8469 0.1446 +vn 0.5123 0.8481 0.1351 +vn 0.5123 0.8481 -0.1351 +vn -0.7477 0.1538 -0.6460 +vn -0.7567 0.0000 -0.6538 +vn -0.7439 0.1827 -0.6428 +vn 0.8326 0.0701 0.5495 +vn 0.9957 0.0000 0.0928 +vn 0.5171 -0.8559 0.0000 +vn 0.5123 -0.8481 0.1351 +vn 0.5116 -0.8469 -0.1446 +vn 0.5123 -0.8481 -0.1351 +vn 0.4884 0.8085 0.3283 +vn 0.4884 -0.8085 0.3283 +vn 0.5116 -0.8469 0.1446 +vn 0.4884 -0.8085 -0.3283 +vn 0.5116 0.8469 -0.1446 +vn 0.4884 0.8085 -0.3283 +vn 0.9865 0.0000 0.1639 +vn 0.9865 0.0000 -0.1639 +vn 0.8722 0.3210 0.3692 +vn 0.8751 0.3187 0.3642 +vn 0.8430 0.1242 -0.5234 +vn 0.8430 0.1242 0.5234 +vn 0.8355 0.0676 0.5453 +vn 0.2232 0.9748 -0.0000 +vn 0.2779 0.9581 -0.0692 +vn 0.2324 0.9726 -0.0011 +vn -0.8691 -0.1186 -0.4803 +vn -0.9219 -0.1215 -0.3680 +vn -0.9296 -0.1218 -0.3478 +vn 0.2231 -0.9748 0.0000 +vn 0.2779 -0.9581 0.0692 +vn 0.2284 -0.9736 0.0008 +vn 0.3872 -0.9217 0.0253 +vn 0.3960 -0.9179 0.0267 +vn 0.9996 0.0000 0.0293 +vn 0.9996 -0.0016 0.0284 +vn 0.9996 0.0000 -0.0293 +vn 0.9985 -0.0090 -0.0543 +vn 0.9996 -0.0016 -0.0284 +vn 0.9985 -0.0090 0.0543 +vn 0.9985 -0.0120 0.0529 +vn 0.5589 0.8281 0.0432 +vn 0.2324 0.9726 0.0011 +vn 0.3872 -0.9217 -0.0253 +vn 0.2284 -0.9736 -0.0008 +vn 0.2779 -0.9581 -0.0692 +vn 0.2226 -0.9725 -0.0683 +vn 0.2226 0.9725 0.0683 +vn 0.2779 0.9581 0.0692 +vn 0.5589 0.8281 -0.0432 +vn 0.5742 0.8175 -0.0453 +vn 0.4856 0.8723 -0.0568 +vn 0.4856 -0.8723 0.0568 +vn 0.9214 -0.2503 -0.2971 +vn 0.9294 -0.2431 -0.2778 +vn 0.9206 -0.2516 0.2987 +vn 0.8580 -0.3995 0.3228 +vn 0.8318 -0.1227 0.5413 +vn 0.8318 -0.1227 -0.5413 +vn 0.4844 0.8730 0.0566 +vn 0.2769 0.9584 0.0690 +vn 0.2769 0.9584 -0.0690 +vn 0.2981 0.9543 -0.0206 +vn 0.2249 0.9743 -0.0160 +vn 0.2223 0.9748 -0.0168 +vn 0.2769 -0.9584 -0.0690 +vn 0.2769 -0.9584 0.0690 +vn 0.4844 -0.8730 0.0566 +vn 0.2223 0.9747 0.0210 +vn 0.2275 0.9736 0.0196 +vn 0.9996 0.0017 -0.0286 +vn 0.9996 0.0000 0.0297 +vn 0.9996 0.0017 0.0286 +vn 0.9985 0.0094 0.0543 +vn 0.9985 0.0121 0.0531 +vn 0.9985 0.0094 -0.0543 +vn 0.9996 0.0000 -0.0297 +vn 0.2224 -0.9750 0.0000 +vn 0.2241 -0.9746 0.0002 +vn 0.2978 -0.9546 -0.0094 +vn 0.2241 -0.9746 -0.0002 +vn 0.2219 -0.9727 -0.0680 +vn -0.8671 0.1251 0.4821 +vn -0.9420 0.1285 0.3099 +vn -0.9524 0.1286 0.2764 +vn 0.2219 0.9727 0.0680 +vn -0.8674 0.1251 -0.4816 +vn -0.9426 0.1285 -0.3081 +vn -0.8318 0.1227 -0.5413 +vn 0.3700 0.9289 0.0158 +vn 0.3782 0.9256 0.0143 +vn 0.2978 -0.9546 0.0094 +vn 0.3015 -0.9534 0.0098 +vn -0.8648 0.4236 0.2696 +vn -0.8632 0.4995 0.0739 +vn -0.8609 0.4168 0.2918 +vn -0.8648 0.4236 -0.2696 +vn -0.8722 0.3210 -0.3692 +vn -0.8609 0.4168 -0.2918 +vn -0.8632 -0.4995 0.0739 +vn -0.8725 -0.4038 0.2752 +vn -0.8580 -0.3995 0.3228 +vn -0.5589 0.8281 -0.0432 +vn -0.2324 0.9726 -0.0011 +vn -0.2232 0.9748 -0.0000 +vn -0.8722 0.3210 0.3692 +vn -0.8751 0.3187 0.3642 +vn -0.8725 -0.4037 -0.2752 +vn -0.8632 -0.4995 -0.0739 +vn -0.8580 -0.3995 -0.3228 +vn -0.2779 -0.9581 0.0692 +vn -0.2779 -0.9581 -0.0692 +vn -0.4856 -0.8723 -0.0568 +vn -0.9996 0.0000 0.0297 +vn -0.9996 0.0017 0.0286 +vn -0.7567 0.0000 0.6538 +vn -0.9996 0.0000 0.0293 +vn -0.5123 -0.8481 0.1351 +vn -0.5116 -0.8469 0.1446 +vn -0.4884 -0.8085 0.3283 +vn -0.5116 0.8469 0.1446 +vn -0.5171 0.8559 0.0000 +vn -0.5123 0.8481 0.1351 +vn -0.8632 0.4995 -0.0739 +vn -0.8299 0.0000 -0.5579 +vn -0.8324 -0.0604 -0.5508 +vn -0.8430 0.1242 -0.5234 +vn -0.8355 0.0676 -0.5453 +vn -0.8326 0.0701 -0.5495 +vn -0.4856 0.8723 -0.0568 +vn -0.2779 0.9581 -0.0692 +vn -0.2779 0.9581 0.0692 +vn -0.2284 -0.9736 -0.0008 +vn -0.3872 -0.9217 -0.0253 +vn -0.2231 -0.9748 -0.0000 +vn -0.2769 -0.9584 -0.0690 +vn -0.2224 -0.9750 -0.0000 +vn -0.2219 -0.9727 -0.0680 +vn -0.7439 -0.1827 -0.6428 +vn 0.9219 -0.1215 -0.3680 +vn 0.8691 -0.1186 -0.4803 +vn 0.9296 -0.1218 -0.3478 +vn -0.8619 0.5070 0.0000 +vn -0.9214 -0.2503 -0.2971 +vn -0.9294 -0.2431 -0.2778 +vn -0.2223 0.9747 0.0210 +vn -0.2769 0.9584 -0.0690 +vn -0.2219 0.9727 -0.0680 +vn -0.7439 -0.1827 0.6428 +vn -0.6913 -0.4066 0.5973 +vn -0.7477 -0.1538 0.6460 +vn -0.2226 -0.9725 0.0683 +vn -0.5171 -0.8559 0.0000 +vn -0.5123 0.8481 -0.1351 +vn 0.8674 0.1251 -0.4816 +vn 0.9426 0.1285 -0.3081 +vn 0.9528 0.1286 -0.2749 +vn -0.5123 -0.8481 -0.1351 +vn -0.4884 -0.8085 -0.3283 +vn -0.5116 -0.8469 -0.1446 +vn -0.9801 0.1984 0.0000 +vn -0.9930 0.1185 0.0000 +vn -0.9957 0.0000 -0.0928 +vn -0.4884 0.8085 0.3283 +vn -0.9957 0.0000 0.0928 +vn -0.9865 0.0000 0.1639 +vn -0.7477 0.1538 0.6460 +vn -0.7439 0.1827 0.6428 +vn -0.6913 0.4066 0.5973 +vn -0.8299 0.0000 0.5579 +vn -0.2978 -0.9546 0.0094 +vn -0.2241 -0.9746 0.0002 +vn -0.8619 -0.5070 0.0000 +vn -0.9930 -0.1185 0.0000 +vn -0.9801 -0.1984 0.0000 +vn 0.9420 0.1285 0.3099 +vn 0.8671 0.1251 0.4821 +vn 0.9524 0.1286 0.2764 +vn -0.9865 0.0000 -0.1639 +vn -0.9996 -0.0016 -0.0284 +vn -0.9985 -0.0090 -0.0543 +vn -0.9996 0.0000 -0.0293 +vn -0.6913 0.4066 -0.5973 +vn -0.8324 -0.0604 0.5508 +vn -0.5116 0.8469 -0.1446 +vn -0.4884 0.8085 -0.3283 +vn -0.9985 -0.0090 0.0543 +vn -0.9996 -0.0016 0.0284 +vn -0.6913 -0.4066 -0.5973 +vn -0.7477 -0.1538 -0.6460 +vn -0.2769 0.9584 0.0690 +vn -0.4844 0.8730 0.0566 +vn -0.2324 0.9726 0.0011 +vn -0.5589 0.8281 0.0432 +vn -0.9206 -0.2516 0.2987 +vn -0.8318 -0.1227 0.5413 +vn -0.8318 -0.1227 -0.5413 +vn -0.8325 -0.0626 -0.5505 +vn -0.4844 -0.8730 -0.0566 +vn -0.2769 -0.9584 0.0690 +vn -0.3700 0.9289 0.0158 +vn -0.2275 0.9736 0.0196 +vn -0.9985 0.0094 0.0543 +vn -0.9985 0.0121 0.0531 +vn -0.2219 -0.9727 0.0680 +vn -0.8326 0.0701 0.5495 +vn -0.2249 0.9743 -0.0160 +vn -0.2981 0.9543 -0.0206 +vn -0.2223 0.9748 -0.0168 +vn -0.2226 -0.9725 -0.0683 +vn -0.2241 -0.9746 -0.0002 +vn -0.2978 -0.9546 -0.0094 +vn -0.8355 0.0676 0.5453 +vn -0.8430 0.1242 0.5234 +vn -0.9996 0.0017 -0.0286 +vn -0.3872 -0.9217 0.0253 +vn -0.2284 -0.9736 0.0008 +vn -0.2226 0.9725 -0.0683 +vn -0.2226 0.9725 0.0683 +vn -0.2219 0.9727 0.0680 +vn -0.9985 0.0094 -0.0543 +vn -0.9985 0.0121 -0.0531 +vn 0.0000 0.9897 0.1434 +vn 0.0000 -0.1112 0.9938 +vn 0.0000 0.9897 -0.1434 +vn 0.0000 0.8420 -0.5396 +vn 0.0000 0.4536 -0.8912 +vn 0.0000 -0.2211 0.9753 +vn 0.0000 -0.4536 -0.8912 +vn 0.0000 -0.8420 -0.5396 +vn 0.0000 -0.9897 -0.1434 +vn 0.0000 0.2211 -0.9753 +vn 0.0000 0.1112 -0.9938 +vn 0.0000 -0.8420 0.5396 +vn 0.0000 -0.4536 0.8912 +vn 0.0000 0.2211 0.9753 +vn 0.0000 0.4536 0.8912 +vn 0.0000 0.8420 0.5396 +vn 0.0000 0.1112 0.9938 +vn 0.0000 -0.2211 -0.9753 +vn 0.0000 -0.1112 -0.9938 +vn 0.0000 -0.9897 0.1434 +vn 0.8751 0.3187 -0.3642 +vn 0.8325 -0.0626 -0.5505 +vn 0.8478 0.1172 -0.5172 +vn 0.8478 0.1172 0.5172 +vn 0.2226 0.9725 -0.0683 +vn -0.8478 -0.1172 -0.5172 +vn 0.2226 -0.9725 0.0683 +vn 0.9985 -0.0120 -0.0529 +vn 0.5742 0.8175 0.0453 +vn 0.3960 -0.9179 -0.0267 +vn 0.4856 0.8723 0.0568 +vn 0.4856 -0.8723 -0.0568 +vn 0.9285 -0.2445 0.2794 +vn 0.2219 0.9727 -0.0680 +vn 0.4844 0.8730 -0.0566 +vn 0.3024 0.9530 -0.0199 +vn 0.4844 -0.8730 -0.0566 +vn 0.2219 -0.9727 0.0680 +vn 0.9985 0.0121 -0.0531 +vn 0.3015 -0.9534 -0.0098 +vn -0.8318 0.1227 0.5413 +vn -0.9528 0.1286 -0.2749 +vn -0.8632 0.4998 0.0712 +vn -0.8751 0.3187 -0.3642 +vn -0.8632 -0.4998 0.0712 +vn -0.5742 0.8175 -0.0453 +vn -0.8632 -0.4998 -0.0712 +vn -0.4856 -0.8723 0.0568 +vn -0.8632 0.4998 -0.0712 +vn -0.8478 0.1172 -0.5172 +vn -0.4856 0.8723 0.0568 +vn -0.3960 -0.9179 -0.0267 +vn 0.8478 -0.1172 -0.5172 +vn 0.8318 0.1227 -0.5413 +vn -0.3015 -0.9534 0.0098 +vn 0.8318 0.1227 0.5413 +vn -0.9985 -0.0120 -0.0529 +vn -0.8325 -0.0626 0.5505 +vn -0.9985 -0.0120 0.0529 +vn -0.4844 0.8730 -0.0566 +vn -0.5742 0.8175 0.0453 +vn -0.9285 -0.2445 0.2794 +vn -0.4844 -0.8730 0.0566 +vn -0.3782 0.9256 0.0143 +vn -0.3024 0.9530 -0.0199 +vn -0.3015 -0.9534 -0.0098 +vn -0.8478 0.1172 0.5172 +vn -0.9996 0.0000 -0.0297 +vn -0.3960 -0.9179 0.0267 +s off +f 354/29/7 355/30/7 353/31/7 +f 356/32/8 359/33/8 355/34/8 +f 360/35/9 357/36/9 359/33/9 +f 358/37/10 353/38/10 357/36/10 +f 359/33/11 353/39/11 355/40/11 +f 356/41/12 358/37/12 360/35/12 +f 364/42/8 367/43/8 363/44/8 +f 368/45/9 365/46/9 367/43/9 +f 366/47/10 361/48/10 365/46/10 +f 367/43/11 361/49/11 363/50/11 +f 364/51/12 366/47/12 368/45/12 +f 389/52/9 385/53/9 371/54/9 +f 370/55/12 373/56/12 372/57/12 +f 383/58/12 394/59/12 386/60/12 +f 395/61/10 378/62/10 391/63/10 +f 384/64/8 389/52/8 381/65/8 +f 386/60/9 394/59/9 372/66/9 +f 395/61/9 391/63/9 370/67/9 +f 392/68/9 388/69/9 369/70/9 +f 373/71/9 375/72/9 374/73/9 +f 372/57/8 374/73/8 371/74/8 +f 369/75/10 376/76/10 370/55/10 +f 371/74/11 375/72/11 369/77/11 +f 385/53/9 386/60/9 387/78/9 +f 388/69/9 389/52/9 390/79/9 +f 391/63/9 392/68/9 393/80/9 +f 394/59/9 395/61/9 396/81/9 +f 382/82/13 389/52/13 388/83/13 +f 386/84/14 384/64/14 383/85/14 +f 392/86/15 378/62/15 377/87/15 +f 380/88/16 395/61/16 394/89/16 +f 388/69/11 377/90/11 382/91/11 +f 417/92/9 413/93/9 399/94/9 +f 398/95/12 401/96/12 400/97/12 +f 411/98/12 422/99/12 414/100/12 +f 423/101/10 406/102/10 419/103/10 +f 412/104/8 417/92/8 409/105/8 +f 414/100/9 422/99/9 400/106/9 +f 423/101/9 419/103/9 398/107/9 +f 420/108/9 416/109/9 397/110/9 +f 401/111/9 403/112/9 402/113/9 +f 400/97/8 402/113/8 399/114/8 +f 397/115/10 404/116/10 398/95/10 +f 399/114/11 403/112/11 397/117/11 +f 413/93/9 414/100/9 415/118/9 +f 416/109/9 417/92/9 418/119/9 +f 419/103/9 420/108/9 421/120/9 +f 422/99/9 423/101/9 424/121/9 +f 410/122/13 417/92/13 416/123/13 +f 414/124/14 412/104/14 411/125/14 +f 420/126/15 406/102/15 405/127/15 +f 408/128/16 423/101/16 422/129/16 +f 416/109/11 405/130/11 410/131/11 +f 426/132/7 427/133/7 425/134/7 +f 428/135/8 431/136/8 427/137/8 +f 432/138/9 429/139/9 431/136/9 +f 430/140/10 425/141/10 429/139/10 +f 431/136/11 425/142/11 427/143/11 +f 428/144/12 430/140/12 432/138/12 +f 436/145/8 439/146/8 435/147/8 +f 440/148/9 437/149/9 439/146/9 +f 438/150/10 433/151/10 437/149/10 +f 439/146/11 433/152/11 435/153/11 +f 436/154/12 438/150/12 440/148/12 +f 461/155/9 457/156/9 443/157/9 +f 442/158/12 445/159/12 444/160/12 +f 455/161/12 466/162/12 458/163/12 +f 467/164/10 450/165/10 463/166/10 +f 456/167/8 461/155/8 453/168/8 +f 458/163/9 466/162/9 444/169/9 +f 467/164/9 463/166/9 442/170/9 +f 464/171/9 460/172/9 441/173/9 +f 445/174/9 447/175/9 446/176/9 +f 444/160/8 446/176/8 443/177/8 +f 441/178/10 448/179/10 442/158/10 +f 443/177/11 447/175/11 441/180/11 +f 457/156/9 458/163/9 459/181/9 +f 460/172/9 461/155/9 462/182/9 +f 463/166/9 464/171/9 465/183/9 +f 466/162/9 467/164/9 468/184/9 +f 454/185/13 461/155/13 460/186/13 +f 458/187/14 456/167/14 455/188/14 +f 464/189/15 450/165/15 449/190/15 +f 452/191/16 467/164/16 466/192/16 +f 460/172/11 449/193/11 454/194/11 +f 489/195/9 485/196/9 471/197/9 +f 470/198/12 473/199/12 472/200/12 +f 483/201/12 494/202/12 486/203/12 +f 495/204/10 478/205/10 491/206/10 +f 484/207/8 489/195/8 481/208/8 +f 486/203/9 494/202/9 472/209/9 +f 495/204/9 491/206/9 470/210/9 +f 492/211/9 488/212/9 469/213/9 +f 473/214/9 475/215/9 474/216/9 +f 472/200/8 474/216/8 471/217/8 +f 469/218/10 476/219/10 470/198/10 +f 471/217/11 475/215/11 469/220/11 +f 485/196/9 486/203/9 487/221/9 +f 488/212/9 489/195/9 490/222/9 +f 491/206/9 492/211/9 493/223/9 +f 494/202/9 495/204/9 496/224/9 +f 482/225/13 489/195/13 488/226/13 +f 486/227/14 484/207/14 483/228/14 +f 492/229/15 478/205/15 477/230/15 +f 480/231/16 495/204/16 494/232/16 +f 488/212/11 477/233/11 482/234/11 +f 498/235/7 499/236/7 497/237/7 +f 500/238/8 503/239/8 499/240/8 +f 504/241/9 501/242/9 503/239/9 +f 502/243/10 497/244/10 501/242/10 +f 503/239/11 497/245/11 499/246/11 +f 500/247/12 502/243/12 504/241/12 +f 508/248/8 511/249/8 507/250/8 +f 512/251/9 509/252/9 511/249/9 +f 510/253/10 505/254/10 509/252/10 +f 511/249/11 505/255/11 507/256/11 +f 508/257/12 510/253/12 512/251/12 +f 533/258/9 529/259/9 515/260/9 +f 514/261/12 517/262/12 516/263/12 +f 527/264/12 538/265/12 530/266/12 +f 539/267/10 522/268/10 535/269/10 +f 528/270/8 533/258/8 525/271/8 +f 530/266/9 538/265/9 516/272/9 +f 539/267/9 535/269/9 514/273/9 +f 536/274/9 532/275/9 513/276/9 +f 517/277/9 519/278/9 518/279/9 +f 516/263/8 518/279/8 515/280/8 +f 513/281/10 520/282/10 514/261/10 +f 515/280/11 519/278/11 513/283/11 +f 529/259/9 530/266/9 531/284/9 +f 532/275/9 533/258/9 534/285/9 +f 535/269/9 536/274/9 537/286/9 +f 538/265/9 539/267/9 540/287/9 +f 526/288/13 533/258/13 532/289/13 +f 530/290/14 528/270/14 527/291/14 +f 536/292/15 522/268/15 521/293/15 +f 524/294/16 539/267/16 538/295/16 +f 532/275/11 521/296/11 526/297/11 +f 561/298/9 557/299/9 543/300/9 +f 542/301/12 545/302/12 544/303/12 +f 555/304/12 566/305/12 558/306/12 +f 567/307/10 550/308/10 563/309/10 +f 556/310/8 561/298/8 553/311/8 +f 558/306/9 566/305/9 544/312/9 +f 567/307/9 563/309/9 542/313/9 +f 564/314/9 560/315/9 541/316/9 +f 545/317/9 547/318/9 546/319/9 +f 544/303/8 546/319/8 543/320/8 +f 541/321/10 548/322/10 542/301/10 +f 543/320/11 547/318/11 541/323/11 +f 557/299/9 558/306/9 559/324/9 +f 560/315/9 561/298/9 562/325/9 +f 563/309/9 564/314/9 565/326/9 +f 566/305/9 567/307/9 568/327/9 +f 554/328/13 561/298/13 560/329/13 +f 558/330/14 556/310/14 555/331/14 +f 564/332/15 550/308/15 549/333/15 +f 552/334/16 567/307/16 566/335/16 +f 560/315/11 549/336/11 554/337/11 +f 570/338/7 571/339/7 569/340/7 +f 572/341/8 575/342/8 571/343/8 +f 576/344/9 573/345/9 575/342/9 +f 574/346/10 569/347/10 573/345/10 +f 575/342/11 569/348/11 571/349/11 +f 572/350/12 574/346/12 576/344/12 +f 580/351/8 583/352/8 579/353/8 +f 584/354/9 581/355/9 583/352/9 +f 582/356/10 577/357/10 581/355/10 +f 583/352/11 577/358/11 579/359/11 +f 580/360/12 582/356/12 584/354/12 +f 605/361/9 601/362/9 587/363/9 +f 586/364/12 589/365/12 588/366/12 +f 599/367/12 610/368/12 602/369/12 +f 611/370/10 594/371/10 607/372/10 +f 600/373/8 605/361/8 597/374/8 +f 602/369/9 610/368/9 588/375/9 +f 611/370/9 607/372/9 586/376/9 +f 608/377/9 604/378/9 585/379/9 +f 589/380/9 591/381/9 590/382/9 +f 588/366/8 590/382/8 587/383/8 +f 585/384/10 592/385/10 586/364/10 +f 587/383/11 591/381/11 585/386/11 +f 601/362/9 602/369/9 603/387/9 +f 604/378/9 605/361/9 606/388/9 +f 607/372/9 608/377/9 609/389/9 +f 610/368/9 611/370/9 612/390/9 +f 598/391/13 605/361/13 604/392/13 +f 602/393/14 600/373/14 599/394/14 +f 608/395/15 594/371/15 593/396/15 +f 596/397/16 611/370/16 610/398/16 +f 604/378/11 593/399/11 598/400/11 +f 633/401/9 629/402/9 615/403/9 +f 614/404/12 617/405/12 616/406/12 +f 627/407/12 638/408/12 630/409/12 +f 639/410/10 622/411/10 635/412/10 +f 628/413/8 633/401/8 625/414/8 +f 630/409/9 638/408/9 616/415/9 +f 639/410/9 635/412/9 614/416/9 +f 636/417/9 632/418/9 613/419/9 +f 617/420/9 619/421/9 618/422/9 +f 616/406/8 618/422/8 615/423/8 +f 613/424/10 620/425/10 614/404/10 +f 615/423/11 619/421/11 613/426/11 +f 629/402/9 630/409/9 631/427/9 +f 632/418/9 633/401/9 634/428/9 +f 635/412/9 636/417/9 637/429/9 +f 638/408/9 639/410/9 640/430/9 +f 626/431/13 633/401/13 632/432/13 +f 630/433/14 628/413/14 627/434/14 +f 636/435/15 622/411/15 621/436/15 +f 624/437/16 639/410/16 638/438/16 +f 632/418/11 621/439/11 626/440/11 +f 354/29/7 356/441/7 355/30/7 +f 356/32/8 360/35/8 359/33/8 +f 360/35/9 358/37/9 357/36/9 +f 358/37/10 354/442/10 353/38/10 +f 359/33/11 357/36/11 353/39/11 +f 356/41/12 354/443/12 358/37/12 +f 364/42/8 368/45/8 367/43/8 +f 368/45/9 366/47/9 365/46/9 +f 366/47/10 362/444/10 361/48/10 +f 367/43/11 365/46/11 361/49/11 +f 364/51/12 362/445/12 366/47/12 +f 387/78/9 372/66/9 385/53/9 +f 372/66/9 371/54/9 385/53/9 +f 371/54/9 390/79/9 389/52/9 +f 370/55/12 376/76/12 373/56/12 +f 383/58/12 380/446/12 394/59/12 +f 395/61/10 379/447/10 378/62/10 +f 384/64/8 385/53/8 389/52/8 +f 396/81/9 370/67/9 394/59/9 +f 370/67/9 372/66/9 394/59/9 +f 372/66/9 387/78/9 386/60/9 +f 393/80/9 369/70/9 391/63/9 +f 369/70/9 370/67/9 391/63/9 +f 370/67/9 396/81/9 395/61/9 +f 390/79/9 371/54/9 388/69/9 +f 371/54/9 369/70/9 388/69/9 +f 369/70/9 393/80/9 392/68/9 +f 373/71/9 376/448/9 375/72/9 +f 372/57/8 373/56/8 374/73/8 +f 369/75/10 375/449/10 376/76/10 +f 371/74/11 374/73/11 375/72/11 +f 382/82/13 381/65/13 389/52/13 +f 386/84/14 385/53/14 384/64/14 +f 392/86/15 391/63/15 378/62/15 +f 380/88/16 379/447/16 395/61/16 +f 388/69/11 392/68/11 377/90/11 +f 415/118/9 400/106/9 413/93/9 +f 400/106/9 399/94/9 413/93/9 +f 399/94/9 418/119/9 417/92/9 +f 398/95/12 404/116/12 401/96/12 +f 411/98/12 408/450/12 422/99/12 +f 423/101/10 407/451/10 406/102/10 +f 412/104/8 413/93/8 417/92/8 +f 424/121/9 398/107/9 422/99/9 +f 398/107/9 400/106/9 422/99/9 +f 400/106/9 415/118/9 414/100/9 +f 421/120/9 397/110/9 419/103/9 +f 397/110/9 398/107/9 419/103/9 +f 398/107/9 424/121/9 423/101/9 +f 418/119/9 399/94/9 416/109/9 +f 399/94/9 397/110/9 416/109/9 +f 397/110/9 421/120/9 420/108/9 +f 401/111/9 404/452/9 403/112/9 +f 400/97/8 401/96/8 402/113/8 +f 397/115/10 403/453/10 404/116/10 +f 399/114/11 402/113/11 403/112/11 +f 410/122/13 409/105/13 417/92/13 +f 414/124/14 413/93/14 412/104/14 +f 420/126/15 419/103/15 406/102/15 +f 408/128/16 407/451/16 423/101/16 +f 416/109/11 420/108/11 405/130/11 +f 426/132/7 428/454/7 427/133/7 +f 428/135/8 432/138/8 431/136/8 +f 432/138/9 430/140/9 429/139/9 +f 430/140/10 426/455/10 425/141/10 +f 431/136/11 429/139/11 425/142/11 +f 428/144/12 426/456/12 430/140/12 +f 436/145/8 440/148/8 439/146/8 +f 440/148/9 438/150/9 437/149/9 +f 438/150/10 434/457/10 433/151/10 +f 439/146/11 437/149/11 433/152/11 +f 436/154/12 434/458/12 438/150/12 +f 459/181/9 444/169/9 457/156/9 +f 444/169/9 443/157/9 457/156/9 +f 443/157/9 462/182/9 461/155/9 +f 442/158/12 448/179/12 445/159/12 +f 455/161/12 452/459/12 466/162/12 +f 467/164/10 451/460/10 450/165/10 +f 456/167/8 457/156/8 461/155/8 +f 468/184/9 442/170/9 466/162/9 +f 442/170/9 444/169/9 466/162/9 +f 444/169/9 459/181/9 458/163/9 +f 465/183/9 441/173/9 463/166/9 +f 441/173/9 442/170/9 463/166/9 +f 442/170/9 468/184/9 467/164/9 +f 462/182/9 443/157/9 460/172/9 +f 443/157/9 441/173/9 460/172/9 +f 441/173/9 465/183/9 464/171/9 +f 445/174/9 448/461/9 447/175/9 +f 444/160/8 445/159/8 446/176/8 +f 441/178/10 447/462/10 448/179/10 +f 443/177/11 446/176/11 447/175/11 +f 454/185/13 453/168/13 461/155/13 +f 458/187/14 457/156/14 456/167/14 +f 464/189/15 463/166/15 450/165/15 +f 452/191/16 451/460/16 467/164/16 +f 460/172/11 464/171/11 449/193/11 +f 487/221/9 472/209/9 485/196/9 +f 472/209/9 471/197/9 485/196/9 +f 471/197/9 490/222/9 489/195/9 +f 470/198/12 476/219/12 473/199/12 +f 483/201/12 480/463/12 494/202/12 +f 495/204/10 479/464/10 478/205/10 +f 484/207/8 485/196/8 489/195/8 +f 496/224/9 470/210/9 494/202/9 +f 470/210/9 472/209/9 494/202/9 +f 472/209/9 487/221/9 486/203/9 +f 493/223/9 469/213/9 491/206/9 +f 469/213/9 470/210/9 491/206/9 +f 470/210/9 496/224/9 495/204/9 +f 490/222/9 471/197/9 488/212/9 +f 471/197/9 469/213/9 488/212/9 +f 469/213/9 493/223/9 492/211/9 +f 473/214/9 476/465/9 475/215/9 +f 472/200/8 473/199/8 474/216/8 +f 469/218/10 475/466/10 476/219/10 +f 471/217/11 474/216/11 475/215/11 +f 482/225/13 481/208/13 489/195/13 +f 486/227/14 485/196/14 484/207/14 +f 492/229/15 491/206/15 478/205/15 +f 480/231/16 479/464/16 495/204/16 +f 488/212/11 492/211/11 477/233/11 +f 498/235/7 500/467/7 499/236/7 +f 500/238/8 504/241/8 503/239/8 +f 504/241/9 502/243/9 501/242/9 +f 502/243/10 498/468/10 497/244/10 +f 503/239/11 501/242/11 497/245/11 +f 500/247/12 498/469/12 502/243/12 +f 508/248/8 512/251/8 511/249/8 +f 512/251/9 510/253/9 509/252/9 +f 510/253/10 506/470/10 505/254/10 +f 511/249/11 509/252/11 505/255/11 +f 508/257/12 506/471/12 510/253/12 +f 531/284/9 516/272/9 529/259/9 +f 516/272/9 515/260/9 529/259/9 +f 515/260/9 534/285/9 533/258/9 +f 514/261/12 520/282/12 517/262/12 +f 527/264/12 524/472/12 538/265/12 +f 539/267/10 523/473/10 522/268/10 +f 528/270/8 529/259/8 533/258/8 +f 540/287/9 514/273/9 538/265/9 +f 514/273/9 516/272/9 538/265/9 +f 516/272/9 531/284/9 530/266/9 +f 537/286/9 513/276/9 535/269/9 +f 513/276/9 514/273/9 535/269/9 +f 514/273/9 540/287/9 539/267/9 +f 534/285/9 515/260/9 532/275/9 +f 515/260/9 513/276/9 532/275/9 +f 513/276/9 537/286/9 536/274/9 +f 517/277/9 520/474/9 519/278/9 +f 516/263/8 517/262/8 518/279/8 +f 513/281/10 519/475/10 520/282/10 +f 515/280/11 518/279/11 519/278/11 +f 526/288/13 525/271/13 533/258/13 +f 530/290/14 529/259/14 528/270/14 +f 536/292/15 535/269/15 522/268/15 +f 524/294/16 523/473/16 539/267/16 +f 532/275/11 536/274/11 521/296/11 +f 559/324/9 544/312/9 557/299/9 +f 544/312/9 543/300/9 557/299/9 +f 543/300/9 562/325/9 561/298/9 +f 542/301/12 548/322/12 545/302/12 +f 555/304/12 552/476/12 566/305/12 +f 567/307/10 551/477/10 550/308/10 +f 556/310/8 557/299/8 561/298/8 +f 568/327/9 542/313/9 566/305/9 +f 542/313/9 544/312/9 566/305/9 +f 544/312/9 559/324/9 558/306/9 +f 565/326/9 541/316/9 563/309/9 +f 541/316/9 542/313/9 563/309/9 +f 542/313/9 568/327/9 567/307/9 +f 562/325/9 543/300/9 560/315/9 +f 543/300/9 541/316/9 560/315/9 +f 541/316/9 565/326/9 564/314/9 +f 545/317/9 548/478/9 547/318/9 +f 544/303/8 545/302/8 546/319/8 +f 541/321/10 547/479/10 548/322/10 +f 543/320/11 546/319/11 547/318/11 +f 554/328/13 553/311/13 561/298/13 +f 558/330/14 557/299/14 556/310/14 +f 564/332/15 563/309/15 550/308/15 +f 552/334/16 551/477/16 567/307/16 +f 560/315/11 564/314/11 549/336/11 +f 570/338/7 572/480/7 571/339/7 +f 572/341/8 576/344/8 575/342/8 +f 576/344/9 574/346/9 573/345/9 +f 574/346/10 570/481/10 569/347/10 +f 575/342/11 573/345/11 569/348/11 +f 572/350/12 570/482/12 574/346/12 +f 580/351/8 584/354/8 583/352/8 +f 584/354/9 582/356/9 581/355/9 +f 582/356/10 578/483/10 577/357/10 +f 583/352/11 581/355/11 577/358/11 +f 580/360/12 578/484/12 582/356/12 +f 603/387/9 588/375/9 601/362/9 +f 588/375/9 587/363/9 601/362/9 +f 587/363/9 606/388/9 605/361/9 +f 586/364/12 592/385/12 589/365/12 +f 599/367/12 596/485/12 610/368/12 +f 611/370/10 595/486/10 594/371/10 +f 600/373/8 601/362/8 605/361/8 +f 612/390/9 586/376/9 610/368/9 +f 586/376/9 588/375/9 610/368/9 +f 588/375/9 603/387/9 602/369/9 +f 609/389/9 585/379/9 607/372/9 +f 585/379/9 586/376/9 607/372/9 +f 586/376/9 612/390/9 611/370/9 +f 606/388/9 587/363/9 604/378/9 +f 587/363/9 585/379/9 604/378/9 +f 585/379/9 609/389/9 608/377/9 +f 589/380/9 592/487/9 591/381/9 +f 588/366/8 589/365/8 590/382/8 +f 585/384/10 591/488/10 592/385/10 +f 587/383/11 590/382/11 591/381/11 +f 598/391/13 597/374/13 605/361/13 +f 602/393/14 601/362/14 600/373/14 +f 608/395/15 607/372/15 594/371/15 +f 596/397/16 595/486/16 611/370/16 +f 604/378/11 608/377/11 593/399/11 +f 631/427/9 616/415/9 629/402/9 +f 616/415/9 615/403/9 629/402/9 +f 615/403/9 634/428/9 633/401/9 +f 614/404/12 620/425/12 617/405/12 +f 627/407/12 624/489/12 638/408/12 +f 639/410/10 623/490/10 622/411/10 +f 628/413/8 629/402/8 633/401/8 +f 640/430/9 614/416/9 638/408/9 +f 614/416/9 616/415/9 638/408/9 +f 616/415/9 631/427/9 630/409/9 +f 637/429/9 613/419/9 635/412/9 +f 613/419/9 614/416/9 635/412/9 +f 614/416/9 640/430/9 639/410/9 +f 634/428/9 615/403/9 632/418/9 +f 615/403/9 613/419/9 632/418/9 +f 613/419/9 637/429/9 636/417/9 +f 617/420/9 620/491/9 619/421/9 +f 616/406/8 617/405/8 618/422/8 +f 613/424/10 619/492/10 620/425/10 +f 615/423/11 618/422/11 619/421/11 +f 626/431/13 625/414/13 633/401/13 +f 630/433/14 629/402/14 628/413/14 +f 636/435/15 635/412/15 622/411/15 +f 624/437/16 623/490/16 639/410/16 +f 632/418/11 636/417/11 621/439/11 +s 1 +f 129/493/17 38/494/18 26/495/19 +f 24/496/20 96/497/21 36/498/22 +f 17/499/23 30/500/24 29/501/25 +f 19/502/26 42/503/27 31/504/28 +f 19/502/26 32/505/29 20/506/30 +f 18/507/9 174/508/9 157/509/9 +f 20/510/9 163/511/9 19/512/9 +f 160/513/9 53/514/9 164/515/9 +f 166/516/9 53/514/9 54/517/9 +f 98/518/9 126/519/9 127/520/9 +f 146/521/9 26/522/9 28/523/9 +f 135/524/9 25/525/9 133/526/9 +f 64/527/9 132/528/9 23/529/9 +f 27/530/31 37/531/32 25/532/33 +f 27/530/31 44/533/34 39/534/35 +f 28/535/36 38/494/18 40/536/37 +f 137/537/9 27/538/9 135/524/9 +f 59/539/9 144/540/9 60/541/9 +f 64/527/9 138/542/9 136/543/9 +f 17/499/23 41/544/27 45/545/27 +f 28/535/36 43/546/34 47/547/34 +f 57/548/38 170/549/38 56/550/38 +f 46/551/39 50/552/40 42/553/41 +f 43/554/42 52/555/43 51/556/43 +f 143/557/44 51/558/45 141/559/44 +f 60/560/44 142/561/44 61/562/44 +f 43/563/46 51/564/45 47/565/47 +f 52/566/48 44/567/49 48/568/50 +f 41/569/51 49/570/52 45/571/53 +f 50/572/54 41/573/55 42/574/55 +f 112/575/9 64/527/9 128/576/9 +f 167/577/9 49/578/54 50/579/54 +f 165/580/44 50/579/40 46/581/39 +f 19/512/9 165/582/9 46/583/9 +f 53/514/9 120/584/9 54/517/9 +f 137/585/38 52/586/48 48/587/50 +f 127/520/9 110/588/9 111/589/9 +f 86/590/56 88/591/9 87/592/9 +f 122/593/44 119/594/44 118/595/44 +f 109/596/38 56/550/38 108/597/38 +f 114/598/9 102/599/9 103/600/9 +f 104/601/9 59/539/9 113/602/9 +f 122/593/9 107/603/9 123/604/9 +f 120/605/44 55/606/44 54/607/44 +f 61/562/9 105/608/9 121/609/9 +f 118/610/9 115/611/9 114/598/9 +f 124/612/9 56/550/9 55/606/9 +f 58/613/9 100/614/9 21/615/9 +f 94/616/21 103/617/21 102/618/21 +f 21/619/57 92/620/58 33/621/59 +f 128/576/9 23/529/9 97/622/9 +f 22/623/9 116/624/9 53/514/9 +f 113/602/9 60/541/9 117/625/9 +f 117/626/44 61/562/44 121/609/44 +f 107/603/38 111/627/38 110/628/38 +f 57/629/9 125/630/9 58/613/9 +f 112/631/38 62/632/38 63/633/38 +f 22/634/60 93/635/21 101/636/21 +f 90/637/58 99/638/58 98/639/58 +f 116/640/61 69/641/61 120/642/61 +f 125/643/61 83/644/62 100/645/63 +f 103/646/64 77/647/61 114/648/61 +f 121/609/44 118/595/44 117/626/44 +f 120/605/44 123/604/44 124/612/44 +f 121/609/9 106/649/9 122/593/9 +f 108/597/9 123/604/9 107/603/9 +f 114/648/61 71/650/61 118/651/61 +f 127/652/61 85/653/62 98/654/63 +f 108/597/38 110/628/38 109/596/38 +f 112/631/38 106/649/38 105/608/38 +f 290/655/7 275/656/7 274/657/7 +f 220/658/65 305/659/66 216/660/67 +f 23/661/68 89/662/58 97/663/58 +f 82/664/9 84/665/56 83/644/56 +f 78/666/9 80/667/69 79/668/69 +f 74/669/69 76/670/9 75/671/9 +f 72/672/9 77/647/9 78/666/9 +f 75/671/9 70/673/9 69/641/9 +f 87/592/9 68/674/9 67/675/9 +f 66/676/9 81/677/9 82/664/9 +f 128/678/70 67/675/70 112/679/70 +f 101/680/64 75/671/61 116/640/61 +f 119/681/70 76/670/70 115/682/70 +f 111/683/61 88/591/61 127/652/61 +f 99/684/71 81/677/70 126/685/70 +f 109/686/61 82/664/61 125/643/61 +f 115/682/70 73/687/72 102/688/73 +f 69/641/9 65/689/9 66/676/9 +f 97/690/71 87/592/70 128/678/70 +f 117/691/70 78/666/70 113/692/70 +f 113/692/70 79/668/72 104/693/73 +f 126/685/70 65/689/70 110/694/70 +f 119/681/70 65/689/70 70/673/70 +f 66/676/61 120/642/61 69/641/61 +f 118/651/61 68/674/61 111/683/61 +f 67/675/9 71/650/9 72/672/9 +f 117/691/70 67/675/70 72/672/70 +f 98/695/63 85/696/62 90/697/74 +f 100/698/63 83/699/62 92/700/74 +f 99/701/71 91/702/75 84/703/76 +f 86/704/76 97/705/71 89/706/75 +f 104/707/73 79/708/72 96/709/77 +f 80/710/78 103/711/64 95/712/79 +f 102/713/73 73/714/72 94/715/77 +f 74/716/78 101/717/64 93/718/79 +f 74/719/69 94/720/80 73/721/69 +f 80/722/69 96/709/80 79/708/69 +f 85/723/56 89/724/81 90/725/81 +f 83/726/56 91/727/81 92/728/81 +f 143/729/9 28/523/9 47/730/9 +f 51/558/43 139/731/9 141/559/9 +f 142/561/9 62/632/9 61/562/9 +f 63/633/38 140/732/38 138/733/38 +f 133/734/82 37/531/32 134/735/83 +f 36/736/22 130/737/84 24/738/20 +f 132/739/85 35/740/86 23/741/68 +f 136/742/87 154/743/88 156/744/89 +f 132/745/90 134/746/91 133/747/92 +f 146/748/93 151/749/94 150/750/95 +f 129/751/96 150/750/95 131/752/97 +f 59/539/9 130/753/9 145/754/9 +f 150/750/98 152/755/9 149/756/99 +f 155/757/100 154/743/9 153/758/9 +f 134/759/101 156/744/102 155/757/100 +f 131/752/103 149/756/99 147/760/104 +f 130/761/105 149/756/106 145/762/87 +f 133/763/107 155/757/108 135/764/93 +f 135/764/93 153/758/109 137/765/110 +f 144/766/111 149/756/106 152/755/112 +f 132/767/113 156/744/89 148/768/114 +f 152/755/112 154/743/88 140/769/115 +f 141/770/116 153/758/109 151/749/94 +f 152/755/9 153/758/9 154/743/9 +f 172/771/9 58/613/9 173/772/9 +f 17/773/9 171/774/9 174/508/9 +f 45/775/53 169/776/38 171/777/38 +f 55/606/9 170/549/9 168/778/9 +f 54/607/44 168/778/44 166/779/44 +f 161/780/117 32/505/29 162/781/118 +f 157/782/119 30/500/24 18/783/120 +f 21/784/57 175/785/121 158/786/121 +f 176/787/122 22/788/60 160/789/122 +f 181/790/9 178/791/9 177/792/9 +f 167/793/123 181/790/124 177/792/125 +f 161/794/126 183/795/127 163/796/128 +f 178/791/129 182/797/130 168/798/131 +f 174/799/132 177/792/125 180/800/133 +f 158/801/9 58/613/9 21/615/9 +f 179/802/134 177/792/9 178/791/9 +f 182/797/9 183/795/135 184/803/136 +f 184/803/136 162/804/137 176/805/138 +f 179/802/134 159/806/139 180/800/140 +f 164/807/141 182/797/130 184/803/142 +f 158/808/143 179/802/144 173/809/141 +f 173/809/141 178/791/129 172/810/145 +f 160/811/146 162/812/147 161/813/148 +f 163/796/128 181/790/124 165/814/149 +f 158/815/150 159/816/151 175/817/152 +f 157/818/153 180/800/133 159/806/154 +f 160/819/155 184/803/142 176/805/156 +f 224/820/7 292/821/7 223/822/7 +f 239/823/7 235/824/7 240/825/7 +f 205/826/157 195/827/158 193/828/159 +f 300/829/7 232/830/7 191/831/7 +f 294/832/7 266/833/7 295/834/7 +f 206/835/160 297/836/161 194/837/162 +f 185/838/163 198/839/164 186/840/165 +f 227/841/7 272/842/7 281/843/7 +f 300/844/166 324/845/167 304/846/168 +f 230/847/7 310/848/7 229/849/7 +f 273/850/7 229/849/7 289/851/7 +f 331/852/7 188/853/7 187/854/7 +f 193/855/7 303/856/7 301/857/7 +f 205/826/157 301/858/169 302/859/170 +f 314/860/7 194/861/7 297/862/7 +f 200/863/171 187/864/172 188/865/173 +f 319/866/174 321/867/175 307/868/176 +f 288/869/7 221/870/7 222/871/7 +f 351/872/177 350/873/7 352/874/178 +f 287/875/179 290/655/179 286/876/179 +f 270/877/7 282/878/7 271/879/7 +f 334/880/7 221/870/7 332/881/7 +f 318/882/180 320/883/7 319/866/7 +f 267/884/181 252/885/182 259/886/183 +f 251/887/184 293/888/185 268/889/186 +f 221/870/7 328/890/7 332/881/7 +f 196/891/187 206/835/160 194/837/162 +f 261/892/188 190/893/189 269/894/188 +f 185/895/7 339/896/7 213/897/7 +f 298/898/190 204/899/191 192/900/192 +f 308/901/193 322/902/194 320/883/195 +f 323/903/196 301/904/197 303/905/198 +f 346/906/199 341/907/200 340/908/201 +f 226/909/7 340/910/7 341/911/7 +f 337/912/66 213/913/202 339/914/66 +f 326/915/7 226/909/7 341/911/7 +f 312/916/7 227/841/7 228/917/7 +f 302/918/203 300/919/204 301/920/205 +f 195/827/158 212/921/206 216/922/206 +f 211/923/206 196/891/187 215/924/206 +f 200/863/171 329/925/207 330/926/208 +f 342/927/209 345/928/210 339/929/211 +f 214/930/212 210/931/213 218/932/214 +f 314/933/198 319/866/174 311/934/215 +f 195/935/7 305/936/7 303/856/7 +f 223/822/179 288/937/179 222/938/179 +f 244/939/216 287/940/216 283/941/216 +f 320/883/7 321/867/7 319/866/7 +f 245/942/185 271/943/217 282/944/185 +f 326/945/218 327/946/219 325/947/220 +f 253/948/184 295/949/185 266/950/186 +f 246/951/216 285/952/216 281/953/216 +f 270/954/221 262/955/222 241/956/223 +f 238/957/7 243/958/7 237/959/7 +f 256/960/185 279/961/185 295/949/185 +f 254/962/182 257/963/183 265/964/181 +f 232/830/7 280/965/7 296/966/7 +f 272/967/221 264/968/222 247/969/223 +f 236/970/7 255/971/7 235/824/7 +f 284/972/7 190/973/7 221/870/7 +f 233/974/7 237/959/7 234/975/7 +f 268/976/7 226/909/7 189/977/7 +f 271/978/188 262/979/188 270/980/188 +f 209/981/224 218/982/225 210/983/224 +f 252/984/226 250/985/7 251/887/226 +f 247/986/223 281/953/216 272/987/221 +f 228/988/179 310/848/179 312/989/179 +f 288/990/185 234/975/185 237/959/185 +f 266/991/186 258/992/227 253/993/184 +f 248/994/228 246/951/7 247/986/228 +f 262/995/229 242/996/228 241/997/228 +f 191/831/7 296/966/7 265/998/7 +f 239/823/185 282/944/185 286/999/185 +f 311/1000/179 219/1001/230 215/1002/231 +f 250/985/185 277/1003/185 293/888/185 +f 311/1004/7 196/1005/7 314/860/7 +f 235/824/216 296/1006/216 280/1007/216 +f 211/1008/232 215/1009/231 219/1010/230 +f 230/847/66 280/1011/66 231/1012/66 +f 236/970/185 286/999/185 279/961/185 +f 249/1013/7 234/975/7 250/985/7 +f 267/1014/233 258/1015/233 266/1016/233 +f 328/1017/234 352/874/235 332/1018/200 +f 209/1019/236 185/838/163 213/1020/236 +f 220/1021/237 211/1022/238 219/1023/237 +f 232/830/7 306/1024/7 231/1025/7 +f 225/1026/66 338/1027/66 340/1028/66 +f 330/1029/239 328/1030/240 329/1031/241 +f 258/1032/242 254/1033/226 253/1034/226 +f 278/1035/7 295/834/7 279/1036/7 +f 217/1037/225 335/1038/7 218/1039/225 +f 307/1040/7 219/1001/237 309/1041/7 +f 237/959/185 284/1042/185 288/990/185 +f 228/917/7 281/843/7 285/1043/7 +f 279/1044/66 275/656/66 278/1045/66 +f 324/845/243 302/1046/244 323/903/245 +f 277/1047/66 224/820/66 225/1026/66 +f 220/1048/65 216/1049/67 212/1050/246 +f 291/1051/179 288/937/179 292/821/179 +f 189/1052/247 260/1053/233 268/1054/233 +f 244/939/7 242/1055/228 243/958/7 +f 248/1056/248 263/1057/249 271/1058/217 +f 218/1039/214 333/1059/179 214/1060/212 +f 299/1061/250 317/1062/251 318/882/180 +f 209/1063/252 213/1064/202 217/1065/253 +f 260/1066/242 252/1067/226 251/1068/226 +f 289/851/7 274/657/7 273/850/7 +f 245/942/7 240/825/7 246/951/7 +f 285/1069/179 229/849/179 228/988/179 +f 274/657/66 280/1011/66 273/850/66 +f 241/1070/223 283/941/216 270/1071/221 +f 293/1072/7 225/1073/7 226/909/7 +f 276/1074/7 291/1051/7 292/821/7 +f 235/824/216 285/952/216 240/825/216 +f 268/1075/186 260/1076/227 251/1077/184 +f 264/968/229 248/1078/228 247/969/228 +f 286/876/179 289/851/179 285/1069/179 +f 345/928/210 349/1079/254 335/1080/255 +f 338/1027/7 223/822/7 336/1081/7 +f 317/1062/256 298/1082/257 313/1083/168 +f 336/1081/179 222/938/179 334/1084/179 +f 227/841/7 298/1085/7 192/1086/7 +f 198/839/164 325/1087/258 186/840/165 +f 343/1088/259 189/1089/247 326/1090/259 +f 344/1091/260 190/1092/189 202/1093/261 +f 338/1094/262 350/873/263 346/906/199 +f 325/1095/264 348/1096/265 342/927/209 +f 346/906/7 349/1079/7 345/928/7 +f 330/1097/266 352/874/178 344/1098/267 +f 332/1018/200 350/873/263 334/1099/268 +f 256/960/7 254/1100/226 255/971/7 +f 283/1101/7 286/1102/7 282/878/7 +f 257/1103/233 191/1104/269 265/1105/233 +f 192/1106/192 264/1107/188 272/1108/188 +f 278/1045/66 276/1074/66 277/1047/66 +f 351/872/270 329/1109/271 331/1110/272 +f 321/867/175 303/905/198 305/1111/273 +f 347/1112/274 326/1113/275 341/907/200 +f 203/1114/276 300/1115/277 191/1116/269 +f 322/902/7 323/903/245 321/867/7 +f 187/864/172 210/1117/236 214/1118/236 +f 345/928/7 347/1112/278 346/906/7 +f 249/1013/216 267/1119/181 294/1120/216 +f 233/974/216 294/1120/216 278/1121/216 +f 333/1122/7 187/854/7 214/1123/7 +f 297/1124/279 318/882/280 314/933/198 +f 243/958/185 269/1125/217 284/1042/185 +f 255/971/216 265/1126/181 296/1006/216 +f 233/974/216 287/940/216 238/957/216 +f 186/1127/7 342/1128/7 185/895/7 +f 324/845/167 306/1129/281 304/846/168 +f 320/883/195 313/1083/168 312/1130/282 +f 242/1131/248 261/1132/249 269/1133/217 +f 308/1134/66 231/1012/66 306/1135/66 +f 349/1079/254 331/1110/272 333/1136/283 +f 347/1112/278 327/1137/284 343/1138/285 +f 199/1139/286 42/1140/12 210/1141/12 +f 204/1142/287 96/1143/10 264/1144/10 +f 264/1144/10 95/1145/10 263/1146/10 +f 263/1146/10 94/1147/10 262/1148/10 +f 197/1149/288 30/1150/289 198/1151/289 +f 198/1151/289 159/1152/290 327/1153/290 +f 259/1154/8 90/1155/8 258/1156/8 +f 260/1157/8 91/1158/8 259/1154/8 +f 147/1159/291 36/1160/287 315/1161/291 +f 210/1141/12 41/1162/12 209/1163/12 +f 209/1163/12 29/1164/288 197/1149/288 +f 212/1165/11 43/1166/11 211/1167/11 +f 302/1168/292 37/1169/293 205/1170/293 +f 207/1171/294 44/1172/11 212/1165/11 +f 205/1170/293 39/1173/294 207/1171/294 +f 175/1174/295 33/1175/296 343/1176/295 +f 201/1177/296 92/1178/8 260/1157/8 +f 206/1179/297 131/1180/298 299/1181/298 +f 176/1182/299 162/1183/300 344/1184/299 +f 330/1185/300 32/1186/301 200/1187/301 +f 258/1156/8 89/1188/8 257/1189/8 +f 262/1148/10 93/1190/10 261/1191/10 +f 261/1191/10 34/1192/302 202/1193/302 +f 148/1194/303 134/1195/292 316/1196/303 +f 257/1189/8 35/1197/304 203/1198/304 +f 208/1199/305 38/1200/297 206/1179/297 +f 211/1167/11 40/1201/305 208/1199/305 +f 200/1187/301 31/1202/286 199/1139/286 +f 129/493/17 131/1203/306 38/494/18 +f 24/496/20 104/1204/21 96/497/21 +f 17/499/23 18/783/120 30/500/24 +f 19/502/26 46/1205/27 42/503/27 +f 19/502/26 31/504/28 32/505/29 +f 18/507/9 17/773/9 174/508/9 +f 20/510/9 161/1206/9 163/511/9 +f 160/513/9 22/623/9 53/514/9 +f 166/516/9 164/515/9 53/514/9 +f 98/518/9 99/1207/9 126/519/9 +f 146/521/9 129/1208/9 26/522/9 +f 135/524/9 27/538/9 25/525/9 +f 64/527/9 136/543/9 132/528/9 +f 27/530/31 39/534/35 37/531/32 +f 27/530/31 48/1209/34 44/533/34 +f 28/535/36 26/495/19 38/494/18 +f 137/537/9 48/1210/9 27/538/9 +f 59/539/9 145/754/9 144/540/9 +f 64/527/9 63/1211/9 138/542/9 +f 17/499/23 29/501/25 41/544/27 +f 28/535/36 40/536/37 43/546/34 +f 57/548/38 172/1212/38 170/549/38 +f 43/554/42 44/1213/42 52/555/43 +f 143/557/44 47/1214/47 51/558/45 +f 60/560/44 144/1215/44 142/561/44 +f 50/572/54 49/1216/54 41/573/55 +f 112/575/9 63/1211/9 64/527/9 +f 167/577/9 169/776/9 49/578/54 +f 165/580/44 167/577/44 50/579/40 +f 19/512/9 163/511/9 165/582/9 +f 53/514/9 116/624/9 120/584/9 +f 137/585/38 139/731/38 52/586/48 +f 127/520/9 126/519/9 110/588/9 +f 86/590/56 85/653/56 88/591/9 +f 122/593/44 123/604/44 119/594/44 +f 109/596/38 57/548/38 56/550/38 +f 114/598/9 115/611/9 102/599/9 +f 104/601/9 24/1217/9 59/539/9 +f 122/593/9 106/649/9 107/603/9 +f 120/605/44 124/612/44 55/606/44 +f 61/562/9 62/632/9 105/608/9 +f 118/610/9 119/1218/9 115/611/9 +f 124/612/9 108/597/9 56/550/9 +f 58/613/9 125/630/9 100/614/9 +f 94/616/21 95/1219/21 103/617/21 +f 21/619/57 100/1220/58 92/620/58 +f 128/576/9 64/527/9 23/529/9 +f 22/623/9 101/1221/9 116/624/9 +f 113/602/9 59/539/9 60/541/9 +f 117/626/44 60/560/44 61/562/44 +f 107/603/38 106/649/38 111/627/38 +f 57/629/9 109/1222/9 125/630/9 +f 112/631/38 105/608/38 62/632/38 +f 22/634/60 34/1223/307 93/635/21 +f 90/637/58 91/1224/58 99/638/58 +f 116/640/61 75/671/61 69/641/61 +f 125/643/61 82/664/61 83/644/62 +f 103/646/64 80/667/78 77/647/61 +f 121/609/44 122/593/44 118/595/44 +f 120/605/44 119/594/44 123/604/44 +f 121/609/9 105/608/9 106/649/9 +f 108/597/9 124/612/9 123/604/9 +f 114/648/61 77/647/61 71/650/61 +f 127/652/61 88/591/61 85/653/62 +f 108/597/38 107/603/38 110/628/38 +f 112/631/38 111/627/38 106/649/38 +f 290/655/7 291/1051/7 275/656/7 +f 220/658/65 307/1040/66 305/659/66 +f 23/661/68 35/1225/86 89/662/58 +f 82/664/9 81/677/9 84/665/56 +f 78/666/9 77/647/9 80/667/69 +f 74/669/69 73/687/69 76/670/9 +f 72/672/9 71/650/9 77/647/9 +f 75/671/9 76/670/9 70/673/9 +f 87/592/9 88/591/9 68/674/9 +f 66/676/9 65/689/9 81/677/9 +f 128/678/70 87/592/70 67/675/70 +f 101/680/64 74/669/78 75/671/61 +f 119/681/70 70/673/70 76/670/70 +f 111/683/61 68/674/61 88/591/61 +f 99/684/71 84/665/76 81/677/70 +f 109/686/61 66/676/61 82/664/61 +f 115/682/70 76/670/70 73/687/72 +f 69/641/9 70/673/9 65/689/9 +f 97/690/71 86/590/76 87/592/70 +f 117/691/70 72/672/70 78/666/70 +f 113/692/70 78/666/70 79/668/72 +f 126/685/70 81/677/70 65/689/70 +f 119/681/70 110/694/70 65/689/70 +f 66/676/61 109/686/61 120/642/61 +f 118/651/61 71/650/61 68/674/61 +f 67/675/9 68/674/9 71/650/9 +f 117/691/70 112/679/70 67/675/70 +f 74/719/69 93/1226/80 94/720/80 +f 80/722/69 95/1227/80 96/709/80 +f 85/723/56 86/1228/56 89/724/81 +f 83/726/56 84/1229/56 91/727/81 +f 143/729/9 146/521/9 28/523/9 +f 51/558/43 52/586/43 139/731/9 +f 142/561/9 140/732/9 62/632/9 +f 63/633/38 62/632/38 140/732/38 +f 133/734/82 25/532/33 37/531/32 +f 36/736/22 147/1230/308 130/737/84 +f 132/739/85 148/1231/309 35/740/86 +f 136/742/87 138/1232/310 154/743/88 +f 132/745/90 148/1233/311 134/746/91 +f 146/748/93 143/1234/312 151/749/94 +f 129/751/96 146/748/93 150/750/95 +f 59/539/9 24/1217/9 130/753/9 +f 150/750/98 151/749/9 152/755/9 +f 155/757/100 156/744/102 154/743/9 +f 134/759/101 148/768/313 156/744/102 +f 131/752/103 150/750/98 149/756/99 +f 130/761/105 147/760/314 149/756/106 +f 133/763/107 134/759/315 155/757/108 +f 135/764/93 155/757/108 153/758/109 +f 144/766/111 145/762/87 149/756/106 +f 132/767/113 136/742/87 156/744/89 +f 142/1235/316 144/766/111 152/755/112 +f 154/743/88 138/1232/310 140/769/115 +f 140/769/115 142/1235/316 152/755/112 +f 139/1236/317 137/765/110 153/758/109 +f 151/749/94 143/1234/312 141/770/116 +f 141/770/116 139/1236/317 153/758/109 +f 152/755/9 151/749/9 153/758/9 +f 172/771/9 57/629/9 58/613/9 +f 17/773/9 45/1237/9 171/774/9 +f 45/775/53 49/578/52 169/776/38 +f 55/606/9 56/550/9 170/549/9 +f 54/607/44 55/606/44 168/778/44 +f 161/780/117 20/506/30 32/505/29 +f 157/782/119 159/1238/318 30/500/24 +f 21/784/57 33/1239/59 175/785/121 +f 176/787/122 34/1240/307 22/788/60 +f 181/790/9 182/797/9 178/791/9 +f 177/792/125 171/1241/319 169/1242/320 +f 167/793/123 165/814/149 181/790/124 +f 177/792/125 169/1242/320 167/793/123 +f 161/794/126 162/804/321 183/795/127 +f 170/1243/322 172/810/145 178/791/129 +f 182/797/130 166/1244/323 168/798/131 +f 168/798/131 170/1243/322 178/791/129 +f 174/799/132 171/1241/319 177/792/125 +f 158/801/9 173/772/9 58/613/9 +f 179/802/134 180/800/140 177/792/9 +f 182/797/9 181/790/9 183/795/135 +f 184/803/136 183/795/135 162/804/137 +f 179/802/134 175/1245/324 159/806/139 +f 164/807/141 166/1244/323 182/797/130 +f 158/808/143 175/1245/325 179/802/144 +f 173/809/141 179/802/144 178/791/129 +f 160/811/146 176/1246/326 162/812/147 +f 163/796/128 183/795/127 181/790/124 +f 158/815/150 157/1247/327 159/816/151 +f 157/818/153 174/799/132 180/800/133 +f 160/819/155 164/807/141 184/803/142 +f 224/820/7 276/1074/7 292/821/7 +f 239/823/7 236/970/7 235/824/7 +f 205/826/157 207/1248/328 195/827/158 +f 300/829/7 304/1249/7 232/830/7 +f 294/832/7 267/1250/7 266/833/7 +f 206/835/160 299/1251/329 297/836/161 +f 185/838/163 197/1252/330 198/839/164 +f 227/841/7 192/1086/7 272/842/7 +f 300/844/166 316/1253/331 324/845/167 +f 230/847/7 308/1134/7 310/848/7 +f 273/850/7 230/847/7 229/849/7 +f 331/852/7 329/1254/7 188/853/7 +f 193/855/7 195/935/7 303/856/7 +f 205/826/157 193/828/159 301/858/169 +f 314/860/7 196/1005/7 194/861/7 +f 200/863/171 199/1255/332 187/864/172 +f 309/1256/333 311/934/215 319/866/174 +f 321/867/175 305/1111/273 307/868/176 +f 307/868/176 309/1256/333 319/866/174 +f 288/869/7 284/972/7 221/870/7 +f 351/872/177 349/1079/7 350/873/7 +f 287/875/179 291/1051/179 290/655/179 +f 270/877/7 283/1101/7 282/878/7 +f 334/880/7 222/871/7 221/870/7 +f 318/882/180 317/1062/251 320/883/7 +f 251/887/184 250/985/185 293/888/185 +f 221/870/7 190/973/7 328/890/7 +f 196/891/187 208/1257/334 206/835/160 +f 261/892/188 202/1258/261 190/893/189 +f 185/895/7 342/1128/7 339/896/7 +f 298/898/190 315/1259/335 204/899/191 +f 320/883/195 312/1130/282 310/1260/336 +f 308/901/193 306/1129/281 322/902/194 +f 320/883/195 310/1260/336 308/901/193 +f 323/903/196 302/1046/337 301/904/197 +f 346/906/199 347/1112/274 341/907/200 +f 226/909/7 225/1073/7 340/910/7 +f 337/912/66 217/1037/253 213/913/202 +f 326/915/7 189/977/7 226/909/7 +f 312/916/7 313/1261/7 227/841/7 +f 302/918/203 316/1262/338 300/919/204 +f 195/827/158 207/1248/328 212/921/206 +f 211/923/206 208/1257/334 196/891/187 +f 200/863/171 188/865/173 329/925/207 +f 342/927/209 348/1096/265 345/928/210 +f 314/933/198 318/882/280 319/866/174 +f 195/935/7 216/1263/7 305/936/7 +f 223/822/179 292/821/179 288/937/179 +f 244/939/216 238/957/216 287/940/216 +f 320/883/7 322/902/7 321/867/7 +f 245/942/185 248/994/248 271/943/217 +f 326/945/218 343/1264/339 327/946/219 +f 253/948/184 256/960/185 295/949/185 +f 246/951/216 240/825/216 285/952/216 +f 238/957/7 244/939/7 243/958/7 +f 256/960/185 236/970/185 279/961/185 +f 232/830/7 231/1025/7 280/965/7 +f 236/970/7 256/960/7 255/971/7 +f 284/972/7 269/1265/7 190/973/7 +f 233/974/7 238/957/7 237/959/7 +f 268/976/7 293/1072/7 226/909/7 +f 271/978/188 263/1266/188 262/979/188 +f 209/981/224 217/1267/225 218/982/225 +f 252/984/226 249/1013/7 250/985/7 +f 247/986/223 246/951/216 281/953/216 +f 228/988/179 229/849/179 310/848/179 +f 288/990/185 277/1003/185 234/975/185 +f 248/994/228 245/942/7 246/951/7 +f 262/995/229 261/1268/229 242/996/228 +f 191/831/7 232/830/7 296/966/7 +f 239/823/185 245/942/185 282/944/185 +f 311/1000/179 309/1041/179 219/1001/230 +f 250/985/185 234/975/185 277/1003/185 +f 311/1004/7 215/1269/7 196/1005/7 +f 235/824/216 255/971/216 296/1006/216 +f 230/847/66 273/850/66 280/1011/66 +f 236/970/185 239/823/185 286/999/185 +f 249/1013/7 233/974/7 234/975/7 +f 267/1014/233 259/1270/233 258/1015/233 +f 328/1017/234 344/1098/340 352/874/235 +f 209/1019/236 197/1252/330 185/838/163 +f 220/1021/237 212/1271/238 211/1022/238 +f 232/830/7 304/1249/7 306/1024/7 +f 225/1026/66 224/820/66 338/1027/66 +f 330/1029/239 344/1272/341 328/1030/240 +f 258/1032/242 257/1273/242 254/1033/226 +f 278/1035/7 294/832/7 295/834/7 +f 217/1037/225 337/912/7 335/1038/7 +f 307/1040/7 220/658/237 219/1001/237 +f 237/959/185 243/958/185 284/1042/185 +f 228/917/7 227/841/7 281/843/7 +f 279/1044/66 274/657/66 275/656/66 +f 324/845/243 316/1253/342 302/1046/244 +f 277/1047/66 276/1074/66 224/820/66 +f 291/1051/179 287/875/179 288/937/179 +f 189/1052/247 201/1274/343 260/1053/233 +f 244/939/7 241/1070/228 242/1055/228 +f 218/1039/214 335/1038/179 333/1059/179 +f 299/1061/250 315/1275/344 317/1062/251 +f 260/1066/242 259/1276/242 252/1067/226 +f 289/851/7 290/655/7 274/657/7 +f 245/942/7 239/823/7 240/825/7 +f 285/1069/179 289/851/179 229/849/179 +f 274/657/66 279/1044/66 280/1011/66 +f 241/1070/223 244/939/216 283/941/216 +f 293/1072/7 277/1277/7 225/1073/7 +f 276/1074/7 275/656/7 291/1051/7 +f 235/824/216 280/1007/216 285/952/216 +f 264/968/229 263/1278/229 248/1078/228 +f 286/876/179 290/655/179 289/851/179 +f 337/1279/345 339/929/211 345/928/210 +f 349/1079/254 333/1136/283 335/1080/255 +f 335/1080/255 337/1279/345 345/928/210 +f 338/1027/7 224/820/7 223/822/7 +f 317/1062/256 315/1275/346 298/1082/257 +f 336/1081/179 223/822/179 222/938/179 +f 227/841/7 313/1261/7 298/1085/7 +f 198/839/164 327/1280/347 325/1087/258 +f 343/1088/259 201/1281/343 189/1089/247 +f 344/1091/260 328/1282/260 190/1092/189 +f 336/1283/348 334/1099/268 350/873/263 +f 346/906/199 340/908/201 338/1094/262 +f 338/1094/262 336/1283/348 350/873/263 +f 325/1095/264 327/1137/349 348/1096/265 +f 346/906/7 350/873/7 349/1079/7 +f 330/1097/266 351/872/177 352/874/178 +f 332/1018/200 352/874/235 350/873/263 +f 256/960/7 253/948/226 254/1100/226 +f 283/1101/7 287/1284/7 286/1102/7 +f 257/1103/233 203/1285/276 191/1104/269 +f 192/1106/192 204/1286/191 264/1107/188 +f 278/1045/66 275/656/66 276/1074/66 +f 351/872/270 330/1097/350 329/1109/271 +f 321/867/175 323/903/196 303/905/198 +f 347/1112/274 343/1138/351 326/1113/275 +f 203/1114/276 316/1287/352 300/1115/277 +f 322/902/7 324/845/243 323/903/245 +f 187/864/172 199/1255/332 210/1117/236 +f 345/928/7 348/1096/353 347/1112/278 +f 249/1013/216 252/984/182 267/1119/181 +f 233/974/216 249/1013/216 294/1120/216 +f 333/1122/7 331/852/7 187/854/7 +f 297/1124/279 299/1061/354 318/882/280 +f 243/958/185 242/1055/248 269/1125/217 +f 255/971/216 254/1100/182 265/1126/181 +f 233/974/216 278/1121/216 287/940/216 +f 186/1127/7 325/1288/7 342/1128/7 +f 324/845/167 322/902/194 306/1129/281 +f 320/883/195 317/1062/256 313/1083/168 +f 308/1134/66 230/847/66 231/1012/66 +f 349/1079/254 351/872/270 331/1110/272 +f 347/1112/278 348/1096/353 327/1137/284 +f 199/1139/286 31/1202/286 42/1140/12 +f 204/1142/287 36/1289/287 96/1143/10 +f 264/1144/10 96/1143/10 95/1145/10 +f 263/1146/10 95/1145/10 94/1147/10 +f 197/1149/288 29/1164/288 30/1150/289 +f 198/1151/289 30/1150/289 159/1152/290 +f 259/1154/8 91/1158/8 90/1155/8 +f 260/1157/8 92/1178/8 91/1158/8 +f 36/1160/287 204/1290/287 315/1161/291 +f 315/1161/291 299/1181/298 131/1180/298 +f 131/1180/298 147/1159/291 315/1161/291 +f 210/1141/12 42/1140/12 41/1162/12 +f 209/1163/12 41/1162/12 29/1164/288 +f 212/1165/11 44/1172/11 43/1166/11 +f 302/1168/292 134/1195/292 37/1169/293 +f 207/1171/294 39/1173/294 44/1172/11 +f 205/1170/293 37/1169/293 39/1173/294 +f 33/1175/296 201/1291/296 343/1176/295 +f 343/1176/295 327/1153/290 159/1152/290 +f 159/1152/290 175/1174/295 343/1176/295 +f 201/1177/296 33/1292/296 92/1178/8 +f 206/1179/297 38/1200/297 131/1180/298 +f 162/1183/300 330/1185/300 344/1184/299 +f 344/1184/299 202/1293/302 34/1294/302 +f 34/1294/302 176/1182/299 344/1184/299 +f 330/1185/300 162/1183/300 32/1186/301 +f 258/1156/8 90/1155/8 89/1188/8 +f 262/1148/10 94/1147/10 93/1190/10 +f 261/1191/10 93/1190/10 34/1192/302 +f 134/1195/292 302/1168/292 316/1196/303 +f 316/1196/303 203/1295/304 35/1296/304 +f 35/1296/304 148/1194/303 316/1196/303 +f 257/1189/8 89/1188/8 35/1197/304 +f 208/1199/305 40/1201/305 38/1200/297 +f 211/1167/11 43/1166/11 40/1201/305 +f 200/1187/301 32/1186/301 31/1202/286 +o frame +v -0.125000 0.000000 1.500000 +v -0.125000 3.000000 1.500000 +v -0.125000 0.000000 -1.500000 +v -0.125000 3.000000 -1.500000 +v 0.125000 0.000000 1.500000 +v 0.125000 3.000000 1.500000 +v 0.125000 0.000000 -1.500000 +v 0.125000 3.000000 -1.500000 +v 0.125000 2.937500 0.737027 +v -0.125000 2.937500 0.737027 +v 0.125000 2.857760 -0.997420 +v -0.125000 2.857760 -0.997420 +v 0.125000 2.937500 -0.737027 +v -0.125000 2.937500 -0.737027 +v 0.125000 2.857760 0.997420 +v -0.125000 2.857760 0.997420 +v 0.125000 2.639908 -1.188040 +v -0.125000 2.639908 -1.188040 +v 0.125000 2.342317 -1.257812 +v -0.125000 2.342317 -1.257812 +v 0.125000 2.639908 1.188040 +v -0.125000 2.639908 1.188040 +v 0.125000 0.657683 -1.257812 +v -0.125000 0.657683 -1.257812 +v 0.125000 2.342317 1.257812 +v -0.125000 2.342317 1.257812 +v 0.125000 0.657683 1.257812 +v -0.125000 0.657683 1.257812 +v 0.125000 0.360092 -1.188040 +v -0.125000 0.360092 -1.188040 +v 0.125000 0.360092 1.188040 +v -0.125000 0.360092 1.188040 +v 0.125000 0.142239 0.997420 +v -0.125000 0.142239 0.997420 +v 0.125000 0.142239 -0.997420 +v -0.125000 0.142239 -0.997420 +v 0.125000 0.062500 -0.737027 +v -0.125000 0.062500 -0.737027 +v 0.125000 0.062500 0.737027 +v -0.125000 0.062500 0.737027 +v -0.125000 2.848552 0.726781 +v -0.125000 2.848552 -0.726781 +v 0.125000 2.848552 -0.726781 +v 0.125000 2.780064 -0.958169 +v -0.125000 2.780064 -0.958169 +v 0.125000 2.848552 0.726781 +v 0.125000 2.780064 0.958169 +v -0.125000 2.780064 0.958169 +v 0.125000 2.595050 -1.120056 +v 0.125000 2.330607 -1.179983 +v -0.125000 2.595050 -1.120056 +v -0.125000 2.330607 -1.179983 +v -0.125000 2.595050 1.120056 +v 0.125000 2.595050 1.120056 +v 0.125000 2.330607 1.179983 +v -0.125000 2.330607 1.179983 +v 0.125000 0.669393 -1.179983 +v -0.125000 0.669393 -1.179983 +v -0.125000 0.669393 1.179983 +v 0.125000 0.669393 1.179983 +v 0.125000 0.404949 1.120056 +v -0.125000 0.404949 1.120056 +v 0.125000 0.404949 -1.120056 +v -0.125000 0.404949 -1.120056 +v 0.125000 0.219935 -0.958169 +v -0.125000 0.219935 -0.958169 +v -0.125000 0.219935 0.958169 +v 0.125000 0.219935 0.958169 +v 0.125000 0.151448 -0.726781 +v -0.125000 0.151448 -0.726781 +v -0.125000 0.151448 0.726781 +v 0.125000 0.151448 0.726781 +v -0.165200 2.915023 0.725503 +v -0.165200 2.915023 -0.725503 +v 0.165200 2.912970 -0.724451 +v 0.165200 2.834591 -0.980400 +v -0.165200 2.836530 -0.981824 +v 0.165200 2.912970 0.724451 +v 0.165200 2.834591 0.980400 +v -0.165200 2.836530 0.981824 +v 0.165200 2.620457 -1.167768 +v 0.165200 2.327943 -1.236349 +v -0.165200 2.622084 -1.169464 +v -0.165200 2.329146 -1.238145 +v -0.165200 2.622084 1.169464 +v 0.165200 2.620457 1.167768 +v 0.165200 2.327943 1.236349 +v -0.165200 2.329146 1.238145 +v 0.165200 0.672056 -1.236349 +v -0.165200 0.670854 -1.238145 +v -0.165200 0.670854 1.238145 +v 0.165200 0.672056 1.236349 +v 0.165200 0.379543 1.167768 +v -0.165200 0.377916 1.169464 +v 0.165200 0.379543 -1.167768 +v -0.165200 0.377916 -1.169464 +v 0.165200 0.165408 -0.980400 +v -0.165200 0.163470 -0.981824 +v -0.165200 0.163470 0.981824 +v 0.165200 0.165408 0.980400 +v 0.165200 0.087030 -0.724451 +v -0.165200 0.084977 -0.725503 +v -0.165200 0.084977 0.725503 +v 0.165200 0.087030 0.724451 +v 0.165200 2.848552 -0.726781 +v 0.165200 0.669393 -1.179983 +v 0.165200 2.330607 -1.179983 +v -0.165200 0.219935 -0.958169 +v -0.165200 0.151448 -0.726781 +v -0.165200 2.848552 0.726781 +v -0.165200 2.848552 -0.726781 +v -0.165200 2.330607 1.179983 +v -0.165200 2.595050 1.120056 +v 0.165200 0.151448 -0.726781 +v 0.165200 0.219935 -0.958169 +v 0.165200 2.330607 1.179983 +v 0.165200 0.404949 1.120056 +v 0.165200 0.219935 0.958169 +v 0.165200 2.780064 0.958169 +v 0.165200 2.595050 1.120056 +v 0.165200 2.780064 -0.958169 +v -0.165200 2.780064 -0.958169 +v 0.165200 2.848552 0.726781 +v -0.165200 2.780064 0.958169 +v 0.165200 2.595050 -1.120056 +v -0.165200 2.595050 -1.120056 +v -0.165200 2.330607 -1.179983 +v -0.165200 0.669393 -1.179983 +v -0.165200 0.669393 1.179983 +v 0.165200 0.669393 1.179983 +v -0.165200 0.404949 1.120056 +v 0.165200 0.404949 -1.120056 +v -0.165200 0.404949 -1.120056 +v -0.165200 0.219935 0.958169 +v -0.165200 0.151448 0.726781 +v 0.165200 0.151448 0.726781 +v 0.230582 0.420818 -1.368763 +v 0.080675 0.420818 -1.368763 +v 0.080675 0.577552 -1.368763 +v 0.230582 0.577552 -1.368763 +v 0.080675 0.559258 -1.358201 +v 0.230582 0.559258 -1.358201 +v 0.080675 0.559258 -1.337076 +v 0.230582 0.559258 -1.337076 +v 0.080675 0.577552 -1.326513 +v 0.230582 0.577552 -1.326513 +v 0.080675 0.595847 -1.337076 +v 0.230582 0.595847 -1.337076 +v 0.080675 0.595847 -1.358201 +v 0.230582 0.595847 -1.358201 +v 0.080675 0.402524 -1.358201 +v 0.230582 0.402524 -1.358201 +v 0.080675 0.402524 -1.337076 +v 0.230582 0.402524 -1.337076 +v 0.080675 0.420819 -1.326513 +v 0.230582 0.420819 -1.326513 +v 0.080675 0.439113 -1.337076 +v 0.230582 0.439113 -1.337076 +v 0.080675 0.439113 -1.358201 +v 0.230582 0.439113 -1.358201 +v 0.198458 0.382969 -1.310873 +v 0.198458 0.398839 -1.286747 +v 0.198458 0.597258 -1.286747 +v 0.198458 0.613127 -1.310873 +v 0.198458 0.398839 -1.408400 +v 0.198458 0.382969 -1.384274 +v 0.198458 0.613127 -1.384274 +v 0.198458 0.597258 -1.408400 +v 0.218101 0.398839 -1.316452 +v 0.218101 0.382969 -1.340579 +v 0.218101 0.613127 -1.340579 +v 0.218101 0.597258 -1.316452 +v 0.218101 0.382969 -1.354568 +v 0.218101 0.398839 -1.378695 +v 0.218101 0.597258 -1.378695 +v 0.218101 0.613127 -1.354568 +v 0.117133 0.382969 -1.306907 +v 0.117133 0.398839 -1.286747 +v 0.117133 0.597258 -1.286747 +v 0.117133 0.613127 -1.306907 +v 0.117133 0.398839 -1.408400 +v 0.117133 0.382969 -1.388240 +v 0.117133 0.613127 -1.388240 +v 0.117133 0.597258 -1.408400 +v 0.164418 0.398839 -1.288175 +v 0.164418 0.382969 -1.308335 +v 0.164418 0.613127 -1.308335 +v 0.164418 0.597257 -1.288175 +v 0.164418 0.382969 -1.386812 +v 0.164418 0.398839 -1.406973 +v 0.164418 0.597257 -1.406973 +v 0.164418 0.613127 -1.386812 +v 0.230582 2.427027 -1.368763 +v 0.080675 2.427027 -1.368763 +v 0.080675 2.583760 -1.368763 +v 0.230582 2.583760 -1.368763 +v 0.080675 2.565465 -1.358201 +v 0.230582 2.565465 -1.358201 +v 0.080675 2.565465 -1.337076 +v 0.230582 2.565465 -1.337076 +v 0.080675 2.583760 -1.326513 +v 0.230582 2.583760 -1.326513 +v 0.080675 2.602055 -1.337076 +v 0.230582 2.602055 -1.337076 +v 0.080675 2.602055 -1.358201 +v 0.230582 2.602055 -1.358201 +v 0.080675 2.408732 -1.358201 +v 0.230582 2.408732 -1.358201 +v 0.080675 2.408732 -1.337076 +v 0.230582 2.408732 -1.337076 +v 0.080675 2.427027 -1.326513 +v 0.230582 2.427027 -1.326513 +v 0.080675 2.445322 -1.337076 +v 0.230582 2.445322 -1.337076 +v 0.080675 2.445322 -1.358201 +v 0.230582 2.445322 -1.358201 +v 0.198458 2.389177 -1.310873 +v 0.198458 2.405047 -1.286747 +v 0.198458 2.603466 -1.286747 +v 0.198458 2.619336 -1.310873 +v 0.198458 2.405047 -1.408400 +v 0.198458 2.389177 -1.384273 +v 0.198458 2.619336 -1.384273 +v 0.198458 2.603466 -1.408400 +v 0.218101 2.405047 -1.316452 +v 0.218101 2.389177 -1.340578 +v 0.218101 2.619336 -1.340578 +v 0.218101 2.603466 -1.316452 +v 0.218101 2.389177 -1.354568 +v 0.218101 2.405047 -1.378694 +v 0.218101 2.603466 -1.378694 +v 0.218101 2.619336 -1.354568 +v 0.117133 2.389177 -1.306907 +v 0.117133 2.405047 -1.286747 +v 0.117133 2.603466 -1.286747 +v 0.117133 2.619336 -1.306907 +v 0.117133 2.405047 -1.408400 +v 0.117133 2.389177 -1.388240 +v 0.117133 2.619336 -1.388240 +v 0.117133 2.603466 -1.408400 +v 0.164418 2.405047 -1.288174 +v 0.164418 2.389177 -1.308335 +v 0.164418 2.619336 -1.308335 +v 0.164418 2.603466 -1.288174 +v 0.164418 2.389177 -1.386812 +v 0.164418 2.405047 -1.406972 +v 0.164418 2.603466 -1.406972 +v 0.164418 2.619336 -1.386812 +vt 0.523106 0.381508 +vt 0.545208 0.377541 +vt 0.545208 0.381508 +vt 0.546975 0.384195 +vt 0.545208 0.388441 +vt 0.801271 0.940418 +vt 0.796004 0.931517 +vt 0.801271 0.931358 +vt 0.521338 0.385754 +vt 0.519150 0.380887 +vt 0.521338 0.384195 +vt 0.767060 0.321658 +vt 0.768828 0.324345 +vt 0.767060 0.335209 +vt 0.523105 0.392408 +vt 0.545208 0.392408 +vt 0.772134 0.929272 +vt 0.794236 0.924002 +vt 0.794236 0.929272 +vt 0.794236 0.942505 +vt 0.765099 0.940418 +vt 0.770366 0.931517 +vt 0.770366 0.940259 +vt 0.794236 0.947774 +vt 0.772134 0.942505 +vt 0.811367 0.391021 +vt 0.809329 0.387491 +vt 0.813405 0.387491 +vt 0.793185 0.331070 +vt 0.776487 0.333423 +vt 0.776487 0.331070 +vt 0.930721 0.719067 +vt 0.914023 0.721420 +vt 0.914023 0.719067 +vt 0.793185 0.333423 +vt 0.776487 0.335777 +vt 0.930721 0.716713 +vt 0.914023 0.716713 +vt 0.793185 0.321658 +vt 0.776487 0.324011 +vt 0.776487 0.321658 +vt 0.930721 0.723773 +vt 0.914023 0.726126 +vt 0.914023 0.723773 +vt 0.930721 0.728479 +vt 0.914023 0.730832 +vt 0.914023 0.728479 +vt 0.793185 0.324011 +vt 0.776487 0.326364 +vt 0.834837 0.386315 +vt 0.836875 0.387491 +vt 0.836875 0.389844 +vt 0.930721 0.726126 +vt 0.793185 0.326364 +vt 0.776487 0.328717 +vt 0.930721 0.721420 +vt 0.793185 0.328717 +vt 0.547515 0.390166 +vt 0.547515 0.386200 +vt 0.520798 0.390166 +vt 0.523105 0.388441 +vt 0.547515 0.379783 +vt 0.520798 0.379783 +vt 0.520798 0.383750 +vt 0.797093 0.947706 +vt 0.797093 0.942437 +vt 0.769277 0.947706 +vt 0.772134 0.947774 +vt 0.797093 0.924070 +vt 0.769277 0.924070 +vt 0.769277 0.929339 +vt 0.546975 0.385754 +vt 0.549163 0.380886 +vt 0.549163 0.389063 +vt 0.209594 0.970120 +vt 0.205627 0.948018 +vt 0.209594 0.948018 +vt 0.212281 0.946250 +vt 0.216527 0.948018 +vt 0.666628 0.910555 +vt 0.657727 0.915822 +vt 0.657568 0.910555 +vt 0.213840 0.971888 +vt 0.208972 0.974076 +vt 0.212281 0.971888 +vt 0.580692 0.377541 +vt 0.582460 0.380228 +vt 0.580692 0.391092 +vt 0.220494 0.970120 +vt 0.220494 0.948018 +vt 0.655481 0.939692 +vt 0.650212 0.917590 +vt 0.655482 0.917590 +vt 0.668715 0.917590 +vt 0.666628 0.946727 +vt 0.657727 0.941460 +vt 0.666469 0.941460 +vt 0.673984 0.939692 +vt 0.673984 0.917590 +vt 0.821064 0.387491 +vt 0.823102 0.386315 +vt 0.825140 0.387491 +vt 0.679555 0.971085 +vt 0.677202 0.954387 +vt 0.679555 0.954387 +vt 0.738611 0.969943 +vt 0.721913 0.972296 +vt 0.721913 0.969943 +vt 0.677202 0.971085 +vt 0.674849 0.954387 +vt 0.738611 0.967590 +vt 0.721913 0.967590 +vt 0.688968 0.971085 +vt 0.686615 0.954387 +vt 0.688968 0.954387 +vt 0.738611 0.974649 +vt 0.721913 0.977002 +vt 0.721913 0.974649 +vt 0.738611 0.979355 +vt 0.721913 0.981709 +vt 0.721913 0.979355 +vt 0.686615 0.971085 +vt 0.684261 0.954387 +vt 0.562085 0.875993 +vt 0.564123 0.877169 +vt 0.564123 0.879522 +vt 0.738611 0.977002 +vt 0.684261 0.971085 +vt 0.681908 0.954387 +vt 0.738611 0.972296 +vt 0.681908 0.971085 +vt 0.218252 0.945711 +vt 0.214285 0.945711 +vt 0.218252 0.972427 +vt 0.216527 0.970120 +vt 0.207869 0.945711 +vt 0.207869 0.972427 +vt 0.211835 0.972427 +vt 0.673916 0.914733 +vt 0.668647 0.914733 +vt 0.673916 0.942549 +vt 0.668715 0.939692 +vt 0.650280 0.914733 +vt 0.650280 0.942549 +vt 0.655549 0.942549 +vt 0.213840 0.946250 +vt 0.208972 0.944062 +vt 0.217149 0.944062 +vt 0.523106 0.377541 +vt 0.796004 0.940259 +vt 0.519150 0.389063 +vt 0.768828 0.332521 +vt 0.744958 0.335209 +vt 0.744958 0.321658 +vt 0.743190 0.332521 +vt 0.743190 0.324345 +vt 0.772134 0.924002 +vt 0.765099 0.931358 +vt 0.813405 0.389844 +vt 0.809329 0.389844 +vt 0.811367 0.386315 +vt 0.793185 0.335777 +vt 0.930721 0.730832 +vt 0.834837 0.391021 +vt 0.832799 0.389844 +vt 0.832799 0.387491 +vt 0.520798 0.386200 +vt 0.547515 0.383750 +vt 0.769277 0.942437 +vt 0.797093 0.929339 +vt 0.205627 0.970120 +vt 0.666469 0.915822 +vt 0.217148 0.974075 +vt 0.582460 0.388405 +vt 0.558590 0.391092 +vt 0.558590 0.377541 +vt 0.556823 0.388405 +vt 0.556823 0.380228 +vt 0.650212 0.939692 +vt 0.657568 0.946727 +vt 0.825140 0.389844 +vt 0.823102 0.391021 +vt 0.821064 0.389844 +vt 0.674849 0.971085 +vt 0.738611 0.981709 +vt 0.562085 0.880699 +vt 0.560047 0.879522 +vt 0.560047 0.877169 +vt 0.214285 0.972427 +vt 0.211836 0.945711 +vt 0.668647 0.942549 +vt 0.655549 0.914733 +vt 0.401359 0.003830 +vt 0.408321 0.088818 +vt 0.401361 0.338004 +vt 0.393699 0.365850 +vt 0.365852 0.031678 +vt 0.393699 0.031678 +vt 0.280864 0.038640 +vt 0.031677 0.031680 +vt 0.031677 0.365850 +vt 0.003830 0.031680 +vt 0.031677 0.003832 +vt 0.365852 0.003830 +vt 0.365852 0.393698 +vt 0.365852 0.365850 +vt 0.841888 0.485825 +vt 0.846366 0.647738 +vt 0.841888 0.647738 +vt 0.769577 0.647738 +vt 0.765099 0.485825 +vt 0.769577 0.485825 +vt 0.697356 0.474001 +vt 0.708945 0.447031 +vt 0.702588 0.475501 +vt 0.743270 0.076473 +vt 0.748362 0.239849 +vt 0.743190 0.241352 +vt 0.116663 0.358888 +vt 0.814040 0.485825 +vt 0.809562 0.458945 +vt 0.814040 0.458945 +vt 0.797425 0.485825 +vt 0.801903 0.647738 +vt 0.797425 0.647738 +vt 0.628662 0.637787 +vt 0.640527 0.664610 +vt 0.635711 0.667109 +vt 0.754815 0.268328 +vt 0.750109 0.270703 +vt 0.841888 0.458945 +vt 0.846366 0.485825 +vt 0.797425 0.458945 +vt 0.801902 0.485825 +vt 0.702448 0.637376 +vt 0.697276 0.638880 +vt 0.560135 0.473269 +vt 0.571963 0.446453 +vt 0.565468 0.474876 +vt 0.728569 0.253018 +vt 0.735531 0.003830 +vt 0.735531 0.338004 +vt 0.814040 0.647738 +vt 0.809562 0.485825 +vt 0.765099 0.458945 +vt 0.769577 0.458945 +vt 0.586568 0.692218 +vt 0.571913 0.664610 +vt 0.590826 0.688728 +vt 0.769577 0.702002 +vt 0.765099 0.674618 +vt 0.769577 0.674618 +vt 0.841888 0.674618 +vt 0.814040 0.702002 +vt 0.814040 0.674618 +vt 0.841888 0.702002 +vt 0.814040 0.732206 +vt 0.814040 0.431561 +vt 0.841888 0.401357 +vt 0.841888 0.431561 +vt 0.797425 0.674618 +vt 0.797425 0.702002 +vt 0.878810 0.196531 +vt 0.850962 0.381573 +vt 0.850963 0.196531 +vt 0.769577 0.732206 +vt 0.797425 0.732206 +vt 0.797425 0.431561 +vt 0.769577 0.431561 +vt 0.797425 0.401357 +vt 0.769577 0.401357 +vt 0.850962 0.188872 +vt 0.878810 0.003830 +vt 0.878810 0.188872 +vt 0.769214 0.021788 +vt 0.754859 0.049503 +vt 0.750154 0.047134 +vt 0.801903 0.702002 +vt 0.769193 0.296049 +vt 0.773358 0.292689 +vt 0.801903 0.458945 +vt 0.586590 0.418847 +vt 0.567148 0.443960 +vt 0.765099 0.431561 +vt 0.797900 0.313998 +vt 0.801475 0.310034 +vt 0.801903 0.431561 +vt 0.615740 0.401357 +vt 0.590849 0.422333 +vt 0.765099 0.401357 +vt 0.797897 0.003830 +vt 0.773379 0.025144 +vt 0.801903 0.732206 +vt 0.615746 0.709695 +vt 0.619388 0.705598 +vt 0.765099 0.702002 +vt 0.979972 0.974174 +vt 0.974896 0.788118 +vt 0.979972 0.786518 +vt 0.883288 0.381573 +vt 0.878810 0.381573 +vt 0.572625 0.636718 +vt 0.578156 0.662994 +vt 0.634082 0.474876 +vt 0.641239 0.636718 +vt 0.633938 0.636178 +vt 0.955972 0.972704 +vt 0.949494 0.787822 +vt 0.955973 0.787985 +vt 0.565324 0.636178 +vt 0.710061 0.475048 +vt 0.931894 0.505372 +vt 0.925415 0.320490 +vt 0.931894 0.320653 +vt 0.748502 0.077974 +vt 0.755924 0.240301 +vt 0.646770 0.662995 +vt 0.989892 0.128323 +vt 0.996170 0.313071 +vt 0.989892 0.312775 +vt 0.761304 0.266651 +vt 0.710010 0.637828 +vt 0.755560 0.707562 +vt 0.731650 0.685815 +vt 0.757439 0.701378 +vt 0.572689 0.474336 +vt 0.659463 0.422333 +vt 0.689616 0.411717 +vt 0.663366 0.426670 +vt 0.594728 0.684386 +vt 0.646819 0.448064 +vt 0.640577 0.446453 +vt 0.974896 0.972573 +vt 0.968618 0.787822 +vt 0.641303 0.474336 +vt 0.755975 0.077521 +vt 0.621002 0.699326 +vt 0.708900 0.665856 +vt 0.715389 0.664178 +vt 0.801472 0.007790 +vt 0.777586 0.029541 +vt 0.659440 0.688728 +vt 0.689617 0.699326 +vt 0.688002 0.705598 +vt 0.621002 0.411717 +vt 0.594752 0.426670 +vt 0.755558 0.405318 +vt 0.731671 0.427068 +vt 0.727464 0.422672 +vt 0.777564 0.288288 +vt 0.803354 0.303850 +vt 0.663342 0.684386 +vt 0.578204 0.448064 +vt 0.715432 0.448705 +vt 0.727443 0.690216 +vt 0.761346 0.051177 +vt 0.560047 0.637787 +vt 0.628749 0.473269 +vt 0.765099 0.647738 +vt 0.846366 0.674618 +vt 0.567097 0.667109 +vt 0.801903 0.674618 +vt 0.809562 0.647738 +vt 0.704195 0.668230 +vt 0.846366 0.431561 +vt 0.684360 0.709695 +vt 0.809562 0.401357 +vt 0.814040 0.401357 +vt 0.751982 0.401357 +vt 0.723300 0.419316 +vt 0.846366 0.458945 +vt 0.655182 0.692219 +vt 0.809562 0.431561 +vt 0.704240 0.444662 +vt 0.809562 0.674618 +vt 0.723279 0.693576 +vt 0.846366 0.702002 +vt 0.655204 0.418847 +vt 0.635762 0.443960 +vt 0.846366 0.732206 +vt 0.841888 0.732206 +vt 0.684355 0.401357 +vt 0.809562 0.702002 +vt 0.751986 0.711526 +vt 0.846484 0.003830 +vt 0.850963 0.003830 +vt 0.984815 0.126722 +vt 0.984816 0.314376 +vt 0.883288 0.188872 +vt 0.936879 0.506839 +vt 0.936879 0.319186 +vt 0.846484 0.196531 +vt 0.960957 0.974171 +vt 0.960957 0.786518 +vt 0.662272 0.030807 +vt 0.474619 0.030807 +vt 0.441471 0.303256 +vt 0.474619 0.311027 +vt 0.417204 0.282023 +vt 0.441470 0.038579 +vt 0.417203 0.059813 +vt 0.408322 0.253018 +vt 0.338874 0.292590 +vt 0.338874 0.104938 +vt 0.066426 0.071790 +vt 0.058654 0.104939 +vt 0.087659 0.047523 +vt 0.331102 0.071789 +vt 0.309869 0.047522 +vt 0.116664 0.038641 +vt 0.003830 0.365850 +vt 0.031677 0.393698 +vt 0.058654 0.292591 +vt 0.331102 0.325739 +vt 0.309869 0.350006 +vt 0.066426 0.325740 +vt 0.087659 0.350006 +vt 0.280864 0.358888 +vt 0.662272 0.311027 +vt 0.695421 0.038579 +vt 0.719687 0.059812 +vt 0.695421 0.303255 +vt 0.719687 0.282022 +vt 0.728569 0.088816 +vt 0.801903 0.401357 +vt 0.619384 0.405449 +vt 0.765099 0.732206 +vt 0.883288 0.196531 +vt 0.949494 0.972866 +vt 0.925415 0.505535 +vt 0.996170 0.128027 +vt 0.687998 0.405449 +vt 0.968617 0.972870 +vt 0.803354 0.013970 +vt 0.757439 0.411498 +vt 0.846366 0.401357 +vt 0.809562 0.732206 +vt 0.846484 0.188872 +vt 0.883288 0.003830 +vt 0.846484 0.381573 +vn 0.8341 0.0000 0.5516 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.8341 0.0000 -0.5516 +vn 0.0302 0.0000 0.9995 +vn 0.0302 0.0000 -0.9995 +vn 0.0000 -0.5000 -0.8660 +vn 0.0000 0.5000 0.8660 +vn 0.0000 -0.5000 0.8660 +vn 0.0000 0.5000 -0.8660 +vn 0.6392 -0.6425 -0.4226 +vn 0.6392 0.6425 -0.4226 +vn 0.6392 -0.6425 0.4226 +vn 0.6391 0.6425 0.4226 +vn 0.0187 -0.7856 -0.6184 +vn 0.0187 0.7856 -0.6184 +vn 0.0187 -0.7856 0.6184 +vn 0.0187 0.7856 0.6184 +vn 0.6392 0.6425 0.4227 +vn 0.6391 -0.6425 0.4226 +vn 0.6392 0.6425 0.4226 +vn 0.6391 -0.6425 0.4227 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -0.9897 0.1434 +vn 0.0000 -0.9897 -0.1434 +vn 0.0000 0.9897 -0.1434 +vn 0.0000 0.9897 0.1434 +vn -0.5135 0.8467 -0.1398 +vn -0.5473 0.7055 -0.4502 +vn -0.5093 0.8532 -0.1126 +vn -0.5135 -0.8467 0.1398 +vn -0.5093 -0.8532 -0.1126 +vn -0.5135 -0.8467 -0.1398 +vn 0.0000 -0.9589 0.2838 +vn 0.0000 -0.8420 0.5395 +vn 0.5469 0.8259 -0.1371 +vn 0.5809 0.6864 -0.4376 +vn 0.5811 0.6808 -0.4458 +vn -0.5473 -0.7055 -0.4502 +vn -0.5475 -0.7002 -0.4582 +vn 0.0000 0.8420 0.5395 +vn -0.5093 0.8532 0.1126 +vn -0.5135 0.8467 0.1398 +vn 0.5469 -0.8259 -0.1371 +vn 0.5809 -0.6864 -0.4376 +vn 0.5424 -0.8330 -0.1090 +vn 0.0000 0.9589 0.2838 +vn 0.5589 -0.3954 0.7289 +vn 0.5809 -0.6864 0.4376 +vn 0.5529 -0.3591 0.7519 +vn 0.0000 0.4536 -0.8912 +vn 0.0000 0.6585 -0.7526 +vn 0.0000 0.8420 -0.5395 +vn 0.0000 -0.8420 -0.5395 +vn 0.0000 -0.4536 -0.8912 +vn 0.0000 -0.1112 -0.9938 +vn 0.0000 -0.4536 0.8912 +vn 0.0000 -0.1112 0.9938 +vn 0.0000 0.1112 -0.9938 +vn 0.0000 0.4536 0.8912 +vn 0.0000 0.1112 0.9938 +vn -0.5253 -0.4049 0.7484 +vn -0.5473 -0.7055 0.4502 +vn -0.5475 -0.7002 0.4582 +vn -0.5253 -0.4049 -0.7484 +vn -0.5198 -0.3697 -0.7702 +vn 0.0000 0.6585 0.7526 +vn 0.5589 -0.3954 -0.7289 +vn 0.5811 -0.6808 -0.4458 +vn -0.4669 -0.1159 -0.8767 +vn -0.4604 -0.0861 -0.8835 +vn 0.4994 -0.1145 -0.8588 +vn 0.5529 -0.3591 -0.7519 +vn -0.4669 -0.1159 0.8767 +vn -0.5198 -0.3697 0.7702 +vn 0.4994 -0.1145 0.8588 +vn 0.4924 -0.0833 0.8664 +vn 0.4924 0.0833 0.8664 +vn 0.4994 0.1145 0.8588 +vn 0.5424 -0.8330 0.1090 +vn 0.5469 -0.8259 0.1371 +vn 0.5469 0.8259 0.1371 +vn 0.5424 0.8330 -0.1090 +vn 0.0000 -0.9589 -0.2838 +vn 0.5811 -0.6808 0.4458 +vn 0.5809 0.6864 0.4376 +vn 0.5424 0.8330 0.1090 +vn 0.0000 0.9589 -0.2838 +vn -0.5093 -0.8532 0.1126 +vn -0.5473 0.7055 0.4502 +vn -0.5475 0.7002 0.4582 +vn 0.4994 0.1145 -0.8588 +vn 0.5529 0.3591 -0.7519 +vn 0.4924 0.0833 -0.8664 +vn -0.4669 0.1159 -0.8767 +vn -0.5198 0.3697 -0.7702 +vn -0.5253 0.4049 -0.7484 +vn 0.0000 -0.6585 0.7526 +vn 0.5589 0.3954 -0.7289 +vn -0.5475 0.7002 -0.4582 +vn 0.0000 -0.6585 -0.7526 +vn -0.5253 0.4049 0.7484 +vn -0.5198 0.3697 0.7702 +vn 0.5589 0.3954 0.7289 +vn 0.5811 0.6808 0.4458 +vn 0.5529 0.3591 0.7519 +vn -0.4669 0.1159 0.8767 +vn -0.4604 0.0861 0.8835 +vn 0.4924 -0.0833 -0.8664 +vn -0.4605 0.0861 -0.8835 +vn -0.4605 -0.0861 0.8835 +s off +f 812/1297/355 802/1298/355 809/1299/355 +f 809/1299/356 810/1300/356 814/1301/356 +f 822/1302/357 826/1303/357 817/1304/357 +f 816/1305/358 804/1306/358 811/1307/358 +f 805/1308/359 806/1309/359 802/1310/359 +f 808/1311/360 814/1301/360 805/1312/360 +f 828/1313/361 818/1314/361 825/1315/361 +f 825/1315/356 826/1303/356 830/1316/356 +f 823/1317/358 827/1318/358 832/1319/358 +f 821/1320/362 831/1321/362 830/1316/362 +f 777/1322/356 798/1323/356 794/1324/356 +f 780/1325/363 781/1326/363 779/1327/363 +f 796/1328/364 797/1329/364 795/1330/364 +f 782/1331/357 783/1332/357 781/1326/357 +f 794/1333/365 795/1330/365 793/1334/365 +f 784/1335/365 785/1336/365 783/1337/365 +f 800/1338/366 778/1339/366 799/1340/366 +f 792/1341/357 793/1342/357 791/1343/357 +f 786/1344/364 787/1345/364 785/1336/364 +f 788/1346/356 786/1347/356 784/1348/356 +f 777/1349/363 791/1343/363 778/1339/363 +f 788/1350/358 789/1351/358 787/1345/358 +f 798/1352/358 799/1340/358 797/1329/358 +f 790/1353/366 779/1327/366 789/1351/366 +f 806/1354/367 814/1301/367 813/1355/367 +f 807/1356/368 815/1357/368 808/1311/368 +f 801/1358/369 809/1299/369 802/1298/369 +f 804/1359/370 812/1297/370 811/1360/370 +f 822/1361/371 830/1316/371 829/1362/371 +f 823/1363/372 831/1321/372 824/1364/372 +f 817/1365/373 825/1315/373 818/1314/373 +f 820/1366/374 828/1313/374 827/1367/374 +f 813/1368/357 801/1369/357 806/1370/357 +f 868/1371/355 858/1372/355 865/1373/355 +f 865/1373/356 866/1374/356 870/1375/356 +f 878/1376/357 882/1377/357 873/1378/357 +f 872/1379/358 860/1380/358 867/1381/358 +f 861/1382/359 862/1383/359 858/1384/359 +f 864/1385/360 870/1375/360 861/1386/360 +f 884/1387/361 874/1388/361 881/1389/361 +f 881/1389/356 882/1377/356 886/1390/356 +f 879/1391/358 883/1392/358 888/1393/358 +f 880/1394/362 886/1390/362 877/1395/362 +f 854/1396/356 852/1397/356 850/1398/356 +f 836/1399/363 837/1400/363 835/1401/363 +f 852/1402/364 853/1403/364 851/1404/364 +f 838/1405/357 839/1406/357 837/1400/357 +f 850/1407/365 851/1404/365 849/1408/365 +f 840/1409/365 841/1410/365 839/1411/365 +f 856/1412/366 834/1413/366 855/1414/366 +f 848/1415/357 849/1416/357 847/1417/357 +f 842/1418/364 843/1419/364 841/1410/364 +f 844/1420/356 842/1421/356 840/1422/356 +f 833/1423/363 847/1417/363 834/1413/363 +f 844/1424/358 845/1425/358 843/1419/358 +f 854/1426/358 855/1414/358 853/1403/358 +f 846/1427/366 835/1401/366 845/1425/366 +f 862/1428/367 870/1375/367 869/1429/367 +f 863/1430/368 871/1431/368 864/1385/368 +f 857/1432/369 865/1373/369 858/1372/369 +f 860/1433/375 868/1371/375 867/1434/375 +f 878/1435/371 886/1390/371 885/1436/371 +f 879/1437/372 887/1438/372 880/1394/372 +f 873/1439/373 881/1389/373 874/1388/373 +f 876/1440/374 884/1387/374 883/1441/374 +f 869/1442/357 857/1443/357 862/1444/357 +f 812/1297/355 803/1445/355 802/1298/355 +f 810/1300/356 813/1368/356 814/1301/356 +f 814/1301/356 815/1357/356 812/1297/356 +f 815/1357/356 816/1305/356 812/1297/356 +f 816/1305/356 811/1307/356 812/1297/356 +f 812/1297/356 809/1299/356 814/1301/356 +f 822/1302/357 829/1446/357 826/1303/357 +f 816/1305/358 807/1447/358 804/1306/358 +f 806/1309/359 801/1448/359 802/1310/359 +f 802/1310/359 803/1449/359 808/1450/359 +f 803/1449/359 804/1451/359 808/1450/359 +f 804/1451/359 807/1452/359 808/1450/359 +f 808/1450/359 805/1308/359 802/1310/359 +f 808/1311/360 815/1357/360 814/1301/360 +f 828/1313/361 819/1453/361 818/1314/361 +f 826/1303/356 829/1446/356 830/1316/356 +f 830/1316/356 831/1321/356 828/1313/356 +f 831/1321/356 832/1319/356 828/1313/356 +f 832/1319/356 827/1318/356 828/1313/356 +f 828/1313/356 825/1315/356 830/1316/356 +f 823/1317/358 820/1454/358 827/1318/358 +f 821/1320/362 824/1364/362 831/1321/362 +f 794/1324/356 792/1455/356 777/1322/356 +f 777/1322/356 800/1456/356 798/1323/356 +f 798/1323/356 796/1457/356 794/1324/356 +f 780/1325/363 782/1331/363 781/1326/363 +f 796/1328/364 798/1352/364 797/1329/364 +f 782/1331/357 784/1458/357 783/1332/357 +f 794/1333/365 796/1328/365 795/1330/365 +f 784/1335/365 786/1344/365 785/1336/365 +f 800/1338/366 777/1349/366 778/1339/366 +f 792/1341/357 794/1459/357 793/1342/357 +f 786/1344/364 788/1350/364 787/1345/364 +f 784/1348/356 782/1460/356 788/1346/356 +f 782/1460/356 780/1461/356 788/1346/356 +f 780/1461/356 790/1462/356 788/1346/356 +f 777/1349/363 792/1341/363 791/1343/363 +f 788/1350/358 790/1353/358 789/1351/358 +f 798/1352/358 800/1338/358 799/1340/358 +f 790/1353/366 780/1325/366 779/1327/366 +f 806/1354/367 805/1312/367 814/1301/367 +f 807/1356/368 816/1463/368 815/1357/368 +f 801/1358/376 810/1464/376 809/1299/376 +f 804/1359/377 803/1445/377 812/1297/377 +f 822/1361/371 821/1320/371 830/1316/371 +f 823/1363/372 832/1465/372 831/1321/372 +f 817/1365/373 826/1466/373 825/1315/373 +f 820/1366/374 819/1453/374 828/1313/374 +f 813/1368/357 810/1300/357 801/1369/357 +f 868/1371/355 859/1467/355 858/1372/355 +f 866/1374/356 869/1442/356 870/1375/356 +f 870/1375/356 871/1431/356 868/1371/356 +f 871/1431/356 872/1379/356 868/1371/356 +f 872/1379/356 867/1381/356 868/1371/356 +f 868/1371/356 865/1373/356 870/1375/356 +f 878/1376/357 885/1468/357 882/1377/357 +f 872/1379/358 863/1469/358 860/1380/358 +f 862/1383/359 857/1470/359 858/1384/359 +f 858/1384/359 859/1471/359 864/1472/359 +f 859/1471/359 860/1473/359 864/1472/359 +f 860/1473/359 863/1474/359 864/1472/359 +f 864/1472/359 861/1382/359 858/1384/359 +f 864/1385/360 871/1431/360 870/1375/360 +f 884/1387/361 875/1475/361 874/1388/361 +f 882/1377/356 885/1468/356 886/1390/356 +f 886/1390/356 887/1438/356 884/1387/356 +f 887/1438/356 888/1393/356 884/1387/356 +f 888/1393/356 883/1392/356 884/1387/356 +f 884/1387/356 881/1389/356 886/1390/356 +f 879/1391/358 876/1476/358 883/1392/358 +f 880/1394/362 887/1438/362 886/1390/362 +f 850/1398/356 848/1477/356 854/1396/356 +f 848/1477/356 833/1478/356 854/1396/356 +f 833/1478/356 856/1479/356 854/1396/356 +f 836/1399/363 838/1405/363 837/1400/363 +f 852/1402/364 854/1426/364 853/1403/364 +f 838/1405/357 840/1480/357 839/1406/357 +f 850/1407/365 852/1402/365 851/1404/365 +f 840/1409/365 842/1418/365 841/1410/365 +f 856/1412/366 833/1423/366 834/1413/366 +f 848/1415/357 850/1481/357 849/1416/357 +f 842/1418/364 844/1424/364 843/1419/364 +f 840/1422/356 838/1482/356 844/1420/356 +f 838/1482/356 836/1483/356 844/1420/356 +f 836/1483/356 846/1484/356 844/1420/356 +f 833/1423/363 848/1415/363 847/1417/363 +f 844/1424/358 846/1427/358 845/1425/358 +f 854/1426/358 856/1412/358 855/1414/358 +f 846/1427/366 836/1399/366 835/1401/366 +f 862/1428/367 861/1386/367 870/1375/367 +f 863/1430/368 872/1485/368 871/1431/368 +f 857/1432/378 866/1486/378 865/1373/378 +f 860/1433/375 859/1467/375 868/1371/375 +f 878/1435/371 877/1395/371 886/1390/371 +f 879/1437/372 888/1487/372 887/1438/372 +f 873/1439/373 882/1488/373 881/1389/373 +f 876/1440/374 875/1475/374 884/1387/374 +f 869/1442/357 866/1374/357 857/1443/357 +s 1 +f 641/1489/359 680/1490/359 643/1491/359 +f 644/1492/379 647/1493/379 643/1494/379 +f 647/1493/356 677/1495/356 645/1496/356 +f 646/1497/380 641/1498/380 645/1496/380 +f 647/1493/357 641/1499/357 643/1500/357 +f 644/1501/358 646/1497/358 648/1502/358 +f 683/1503/381 763/1504/382 686/1505/382 +f 712/1506/383 754/1507/384 709/1508/384 +f 654/1509/385 717/1510/386 714/1511/387 +f 680/1512/388 742/1513/389 678/1514/390 +f 649/1515/356 648/1502/356 646/1497/356 +f 682/1516/381 762/1517/391 685/1518/392 +f 710/1519/384 775/1520/383 711/1521/383 +f 653/1522/393 716/1523/394 651/1524/395 +f 678/1514/390 738/1525/396 676/1526/397 +f 684/1527/392 745/1528/381 683/1503/381 +f 706/1529/398 749/1530/384 710/1519/384 +f 654/1509/385 713/1531/399 650/1532/400 +f 677/1533/401 737/1534/402 741/1535/403 +f 654/1536/359 642/1537/359 644/1538/359 +f 681/1539/382 751/1540/381 682/1516/381 +f 709/1508/384 755/1541/404 705/1542/398 +f 671/1543/405 740/1544/406 733/1545/407 +f 701/1546/408 758/1547/409 708/1548/410 +f 687/1549/411 693/1550/412 688/1551/411 +f 694/1552/412 696/1553/413 693/1550/412 +f 686/1505/382 688/1551/411 681/1539/382 +f 683/1503/381 681/1539/382 682/1516/381 +f 691/1554/414 690/1555/415 689/1556/414 +f 712/1506/383 710/1519/384 711/1521/383 +f 682/1516/381 684/1527/392 683/1503/381 +f 685/1518/392 689/1556/414 684/1527/392 +f 701/1546/408 707/1557/410 702/1558/408 +f 708/1548/410 711/1521/383 707/1557/410 +f 706/1529/398 709/1508/384 705/1542/398 +f 695/1559/413 699/1560/416 696/1561/413 +f 700/1562/416 702/1558/408 699/1563/416 +f 704/1564/417 705/1542/398 703/1565/417 +f 698/1566/418 703/1565/417 697/1567/418 +f 697/1568/418 692/1569/415 698/1570/418 +f 672/1571/419 739/1572/420 674/1573/421 +f 707/1557/410 771/1574/408 702/1558/408 +f 670/1575/422 738/1525/396 736/1576/423 +f 704/1564/417 748/1577/424 706/1529/398 +f 669/1578/425 737/1534/402 675/1579/426 +f 705/1542/398 772/1580/417 703/1565/417 +f 664/1581/427 736/1576/423 730/1582/428 +f 698/1566/418 773/1583/417 704/1564/417 +f 663/1584/429 735/1585/430 669/1578/425 +f 703/1565/417 746/1586/418 697/1567/418 +f 668/1587/431 734/1588/432 672/1571/419 +f 702/1558/408 769/1589/416 699/1563/416 +f 667/1590/433 733/1545/407 732/1591/434 +f 700/1562/416 757/1592/408 701/1546/408 +f 667/1593/433 727/1594/435 665/1595/436 +f 695/1559/413 770/1596/416 700/1597/416 +f 740/1544/356 776/1598/356 758/1599/356 +f 718/1600/356 745/1601/356 715/1602/356 +f 728/1603/359 769/1604/359 731/1605/359 +f 741/1535/356 776/1598/356 744/1606/356 +f 717/1510/359 751/1607/359 714/1511/359 +f 730/1608/359 767/1609/359 724/1610/359 +f 743/1611/359 749/1612/359 742/1513/359 +f 716/1523/356 745/1601/356 761/1613/356 +f 722/1614/356 746/1615/356 729/1616/356 +f 738/1525/359 749/1612/359 748/1617/359 +f 714/1511/359 750/1618/359 713/1531/359 +f 728/1619/359 753/1620/359 752/1621/359 +f 737/1534/356 754/1622/356 741/1535/356 +f 726/1623/356 756/1624/356 760/1625/356 +f 733/1545/356 758/1599/356 757/1626/356 +f 726/1623/356 759/1627/356 719/1628/356 +f 732/1629/356 756/1630/356 727/1594/356 +f 719/1628/356 763/1631/356 718/1600/356 +f 739/1572/359 775/1632/359 743/1611/359 +f 733/1545/356 770/1633/356 732/1591/356 +f 720/1634/359 750/1618/359 764/1635/359 +f 731/1636/359 771/1637/359 734/1588/359 +f 721/1638/356 747/1639/356 722/1640/356 +f 735/1585/356 746/1641/356 772/1642/356 +f 724/1643/359 766/1644/359 723/1645/359 +f 730/1582/359 773/1646/359 768/1647/359 +f 721/1638/356 761/1613/356 765/1648/356 +f 735/1585/356 755/1649/356 737/1534/356 +f 723/1645/359 762/1650/359 717/1510/359 +f 736/1576/359 748/1617/359 773/1646/359 +f 725/1651/359 764/1635/359 753/1620/359 +f 734/1588/359 774/1652/359 739/1572/359 +f 677/1533/401 744/1606/437 679/1653/438 +f 649/1654/439 715/1602/440 653/1522/393 +f 708/1548/410 776/1655/383 712/1506/383 +f 686/1505/382 759/1656/441 687/1549/411 +f 679/1653/438 740/1544/406 673/1657/442 +f 649/1654/439 719/1628/443 718/1600/444 +f 711/1521/383 774/1658/445 707/1557/410 +f 688/1551/411 750/1659/382 681/1539/382 +f 680/1512/388 739/1572/420 743/1611/446 +f 650/1532/400 720/1634/447 656/1660/448 +f 690/1555/415 765/1661/414 689/1556/414 +f 659/1662/449 721/1638/450 722/1640/451 +f 691/1554/414 767/1663/415 692/1664/415 +f 660/1665/452 723/1645/453 658/1666/454 +f 689/1556/414 761/1667/455 684/1527/392 +f 657/1668/456 716/1523/394 721/1638/450 +f 685/1518/392 766/1669/414 691/1554/414 +f 658/1666/454 717/1510/386 652/1670/457 +f 693/1550/412 764/1671/458 688/1551/411 +f 662/1672/459 720/1634/447 725/1651/460 +f 687/1549/411 760/1673/412 694/1552/412 +f 661/1674/461 719/1628/443 655/1675/462 +f 694/1552/412 756/1676/413 695/1677/413 +f 665/1678/436 726/1623/463 661/1674/461 +f 696/1553/413 753/1679/412 693/1550/412 +f 666/1680/464 725/1651/460 728/1619/465 +f 697/1568/418 747/1681/415 690/1682/415 +f 659/1683/449 729/1616/466 663/1684/429 +f 692/1569/415 768/1685/418 698/1570/418 +f 664/1686/427 724/1610/467 660/1687/452 +f 699/1560/416 752/1688/413 696/1561/413 +f 666/1689/464 731/1605/468 668/1690/431 +f 641/1489/359 642/1537/359 666/1691/359 +f 641/1489/359 666/1691/359 668/1692/359 +f 670/1693/359 664/1694/359 643/1491/359 +f 676/1695/359 670/1693/359 643/1491/359 +f 641/1489/359 668/1692/359 672/1696/359 +f 641/1489/359 672/1696/359 674/1697/359 +f 678/1698/359 676/1695/359 643/1491/359 +f 641/1489/359 674/1697/359 680/1490/359 +f 680/1490/359 678/1698/359 643/1491/359 +f 644/1492/379 648/1502/379 647/1493/379 +f 647/1493/356 648/1502/356 659/1699/356 +f 647/1493/356 659/1699/356 663/1700/356 +f 671/1701/356 667/1702/356 645/1496/356 +f 673/1703/356 671/1701/356 645/1496/356 +f 647/1493/356 663/1700/356 669/1704/356 +f 647/1493/356 669/1704/356 675/1705/356 +f 679/1706/356 673/1703/356 645/1496/356 +f 647/1493/356 675/1705/356 677/1495/356 +f 677/1495/356 679/1706/356 645/1496/356 +f 646/1497/380 642/1707/380 641/1498/380 +f 647/1493/357 645/1496/357 641/1499/357 +f 644/1501/358 642/1708/358 646/1497/358 +f 683/1503/381 745/1528/381 763/1504/382 +f 712/1506/383 776/1655/383 754/1507/384 +f 654/1509/385 652/1670/457 717/1510/386 +f 680/1512/388 743/1611/446 742/1513/389 +f 646/1497/356 645/1496/356 667/1702/356 +f 646/1497/356 667/1702/356 665/1709/356 +f 657/1710/356 659/1699/356 648/1502/356 +f 651/1711/356 657/1710/356 648/1502/356 +f 646/1497/356 665/1709/356 661/1712/356 +f 646/1497/356 661/1712/356 655/1713/356 +f 653/1714/356 651/1711/356 648/1502/356 +f 646/1497/356 655/1713/356 649/1515/356 +f 649/1515/356 653/1714/356 648/1502/356 +f 682/1516/381 751/1540/381 762/1517/391 +f 710/1519/384 749/1530/384 775/1520/383 +f 653/1522/393 715/1602/440 716/1523/394 +f 678/1514/390 742/1513/389 738/1525/396 +f 684/1527/392 761/1667/391 745/1528/381 +f 706/1529/398 748/1577/404 749/1530/384 +f 654/1509/385 714/1511/387 713/1531/399 +f 677/1533/401 675/1579/426 737/1534/402 +f 644/1538/359 643/1491/359 664/1694/359 +f 644/1538/359 664/1694/359 660/1715/359 +f 662/1716/359 666/1691/359 642/1537/359 +f 656/1717/359 662/1716/359 642/1537/359 +f 644/1538/359 660/1715/359 658/1718/359 +f 644/1538/359 658/1718/359 652/1719/359 +f 650/1720/359 656/1717/359 642/1537/359 +f 644/1538/359 652/1719/359 654/1536/359 +f 654/1536/359 650/1720/359 642/1537/359 +f 681/1539/382 750/1659/382 751/1540/381 +f 709/1508/384 754/1507/384 755/1541/404 +f 671/1543/405 673/1657/442 740/1544/406 +f 701/1546/408 757/1592/408 758/1547/409 +f 687/1549/411 694/1552/412 693/1550/412 +f 694/1552/412 695/1677/413 696/1553/413 +f 686/1505/382 687/1549/411 688/1551/411 +f 683/1503/381 686/1505/382 681/1539/382 +f 691/1554/414 692/1664/415 690/1555/415 +f 712/1506/383 709/1508/384 710/1519/384 +f 682/1516/381 685/1518/392 684/1527/392 +f 685/1518/392 691/1554/414 689/1556/414 +f 701/1546/408 708/1548/410 707/1557/410 +f 708/1548/410 712/1506/383 711/1521/383 +f 706/1529/398 710/1519/384 709/1508/384 +f 695/1559/413 700/1597/416 699/1560/416 +f 700/1562/416 701/1546/408 702/1558/408 +f 704/1564/417 706/1529/398 705/1542/398 +f 698/1566/418 704/1564/417 703/1565/417 +f 697/1568/418 690/1682/415 692/1569/415 +f 672/1571/419 734/1588/432 739/1572/420 +f 707/1557/410 774/1658/409 771/1574/408 +f 670/1575/422 676/1526/397 738/1525/396 +f 704/1564/417 773/1583/417 748/1577/424 +f 669/1578/425 735/1585/430 737/1534/402 +f 705/1542/398 755/1541/424 772/1580/417 +f 664/1581/427 670/1575/422 736/1576/423 +f 698/1566/418 768/1721/418 773/1583/417 +f 663/1584/429 729/1722/466 735/1585/430 +f 703/1565/417 772/1580/417 746/1586/418 +f 668/1587/431 731/1636/468 734/1588/432 +f 702/1558/408 771/1574/408 769/1589/416 +f 667/1590/433 671/1543/405 733/1545/407 +f 700/1562/416 770/1723/416 757/1592/408 +f 667/1593/433 732/1629/434 727/1594/435 +f 695/1559/413 756/1724/413 770/1596/416 +f 740/1544/356 744/1606/356 776/1598/356 +f 718/1600/356 763/1631/356 745/1601/356 +f 728/1603/359 752/1725/359 769/1604/359 +f 741/1535/356 754/1622/356 776/1598/356 +f 717/1510/359 762/1650/359 751/1607/359 +f 730/1608/359 768/1726/359 767/1609/359 +f 743/1611/359 775/1632/359 749/1612/359 +f 716/1523/356 715/1602/356 745/1601/356 +f 722/1614/356 747/1727/356 746/1615/356 +f 738/1525/359 742/1513/359 749/1612/359 +f 714/1511/359 751/1607/359 750/1618/359 +f 728/1619/359 725/1651/359 753/1620/359 +f 737/1534/356 755/1649/356 754/1622/356 +f 726/1623/356 727/1728/356 756/1624/356 +f 733/1545/356 740/1544/356 758/1599/356 +f 726/1623/356 760/1625/356 759/1627/356 +f 732/1629/356 770/1729/356 756/1630/356 +f 719/1628/356 759/1627/356 763/1631/356 +f 739/1572/359 774/1652/359 775/1632/359 +f 733/1545/356 757/1626/356 770/1633/356 +f 720/1634/359 713/1531/359 750/1618/359 +f 731/1636/359 769/1730/359 771/1637/359 +f 721/1638/356 765/1648/356 747/1639/356 +f 735/1585/356 729/1722/356 746/1641/356 +f 724/1643/359 767/1731/359 766/1644/359 +f 730/1582/359 736/1576/359 773/1646/359 +f 721/1638/356 716/1523/356 761/1613/356 +f 735/1585/356 772/1642/356 755/1649/356 +f 723/1645/359 766/1644/359 762/1650/359 +f 736/1576/359 738/1525/359 748/1617/359 +f 725/1651/359 720/1634/359 764/1635/359 +f 734/1588/359 771/1637/359 774/1652/359 +f 677/1533/401 741/1535/403 744/1606/437 +f 649/1654/439 718/1600/444 715/1602/440 +f 708/1548/410 758/1547/445 776/1655/383 +f 686/1505/382 763/1504/382 759/1656/441 +f 679/1653/438 744/1606/437 740/1544/406 +f 649/1654/439 655/1675/462 719/1628/443 +f 711/1521/383 775/1520/383 774/1658/445 +f 688/1551/411 764/1671/441 750/1659/382 +f 680/1512/388 674/1573/421 739/1572/420 +f 650/1532/400 713/1531/399 720/1634/447 +f 690/1555/415 747/1732/415 765/1661/414 +f 659/1662/449 657/1668/456 721/1638/450 +f 691/1554/414 766/1669/414 767/1663/415 +f 660/1665/452 724/1643/467 723/1645/453 +f 689/1556/414 765/1661/414 761/1667/455 +f 657/1668/456 651/1524/395 716/1523/394 +f 685/1518/392 762/1517/455 766/1669/414 +f 658/1666/454 723/1645/453 717/1510/386 +f 693/1550/412 753/1679/412 764/1671/458 +f 662/1672/459 656/1660/448 720/1634/447 +f 687/1549/411 759/1656/458 760/1673/412 +f 661/1674/461 726/1623/463 719/1628/443 +f 694/1552/412 760/1673/412 756/1676/413 +f 665/1678/436 727/1728/435 726/1623/463 +f 696/1553/413 752/1733/413 753/1679/412 +f 666/1680/464 662/1672/459 725/1651/460 +f 697/1568/418 746/1734/418 747/1681/415 +f 659/1683/449 722/1614/451 729/1616/466 +f 692/1569/415 767/1735/415 768/1685/418 +f 664/1686/427 730/1608/428 724/1610/467 +f 699/1560/416 769/1736/416 752/1688/413 +f 666/1689/464 728/1603/465 731/1605/468 +o spinny_lower +v 0.127409 0.571053 -0.570525 +v 0.311433 0.571053 -0.573891 +v 0.127409 0.586056 -0.579187 +v 0.311433 0.583141 -0.580870 +v 0.127409 0.586056 -0.596510 +v 0.311433 0.583141 -0.594827 +v 0.127409 0.571053 -0.605172 +v 0.311433 0.571053 -0.601806 +v 0.127409 0.556051 -0.596510 +v 0.311433 0.558966 -0.594827 +v 0.127409 0.556051 -0.579187 +v 0.311433 0.558966 -0.580870 +v 0.296158 0.571053 -0.570525 +v 0.244484 0.571053 -0.570525 +v 0.244484 0.586056 -0.579187 +v 0.296158 0.586056 -0.579187 +v 0.244484 0.586056 -0.596510 +v 0.296158 0.586056 -0.596510 +v 0.244484 0.571053 -0.605172 +v 0.296158 0.571053 -0.605172 +v 0.244484 0.556051 -0.596510 +v 0.296158 0.556051 -0.596510 +v 0.244484 0.556051 -0.579187 +v 0.296158 0.556051 -0.579187 +v 0.248187 0.538846 -0.569253 +v 0.292455 0.538846 -0.569253 +v 0.292455 0.571053 -0.550658 +v 0.248187 0.571053 -0.550658 +v 0.248187 0.538846 -0.606444 +v 0.292455 0.538846 -0.606444 +v 0.248187 0.571053 -0.625039 +v 0.292455 0.571053 -0.625039 +v 0.248187 0.603261 -0.606444 +v 0.292455 0.603261 -0.606444 +v 0.248187 0.603261 -0.569253 +v 0.292455 0.603261 -0.569253 +v 0.264576 0.585795 -0.571215 +v 0.375908 0.798690 -0.587129 +v 0.252583 0.591199 -0.579309 +v 0.363915 0.804094 -0.595223 +v 0.252527 0.590075 -0.594713 +v 0.363860 0.802970 -0.610627 +v 0.264465 0.583548 -0.602023 +v 0.375797 0.796443 -0.617937 +v 0.276457 0.578144 -0.593929 +v 0.387789 0.791039 -0.609843 +v 0.276513 0.579268 -0.578525 +v 0.387845 0.792162 -0.594439 +v 0.265024 0.589041 -0.594850 +v 0.375908 0.639695 -0.806877 +v 0.253032 0.583014 -0.602490 +v 0.363915 0.633667 -0.814518 +v 0.252976 0.568017 -0.606182 +v 0.363859 0.618670 -0.818209 +v 0.264913 0.559048 -0.602232 +v 0.375797 0.609701 -0.814260 +v 0.276906 0.565075 -0.594592 +v 0.387789 0.615728 -0.806619 +v 0.276962 0.580072 -0.590900 +v 0.387845 0.630725 -0.802928 +v 0.264576 0.567567 -0.605240 +v 0.375908 0.382270 -0.719820 +v 0.252583 0.558438 -0.601869 +v 0.363915 0.373140 -0.716448 +v 0.252527 0.550293 -0.588746 +v 0.363859 0.364995 -0.703326 +v 0.264465 0.551277 -0.578996 +v 0.375797 0.365980 -0.693575 +v 0.276457 0.560406 -0.582368 +v 0.387789 0.375109 -0.696947 +v 0.276513 0.568551 -0.595490 +v 0.387845 0.383254 -0.710069 +v 0.264576 0.551049 -0.588028 +v 0.375908 0.388167 -0.450017 +v 0.252583 0.551435 -0.578304 +v 0.363915 0.388553 -0.440293 +v 0.252527 0.561398 -0.566502 +v 0.363860 0.398516 -0.428491 +v 0.264465 0.570975 -0.564425 +v 0.375797 0.408094 -0.426414 +v 0.276457 0.570589 -0.574150 +v 0.387789 0.407708 -0.436139 +v 0.276513 0.560626 -0.585951 +v 0.387845 0.397745 -0.447940 +v 0.269238 0.562315 -0.566999 +v 0.375908 0.648259 -0.361717 +v 0.257245 0.571682 -0.564361 +v 0.363915 0.657627 -0.359079 +v 0.257189 0.585985 -0.570190 +v 0.363860 0.671929 -0.364907 +v 0.269127 0.590920 -0.578657 +v 0.375797 0.676864 -0.373374 +v 0.281119 0.581552 -0.581295 +v 0.387789 0.667496 -0.376013 +v 0.281175 0.567249 -0.575466 +v 0.387845 0.653194 -0.370184 +v 0.380466 0.828227 -0.481324 +v 0.398360 0.821379 -0.484160 +v 0.405772 0.804848 -0.491008 +v 0.398360 0.788316 -0.497855 +v 0.380466 0.781468 -0.500692 +v 0.362572 0.788316 -0.497855 +v 0.355160 0.804848 -0.491008 +v 0.362572 0.821379 -0.484160 +v 0.380466 0.677578 -0.330675 +v 0.398360 0.674742 -0.337523 +v 0.405772 0.667894 -0.354054 +v 0.398360 0.661046 -0.370586 +v 0.380466 0.658210 -0.377434 +v 0.362572 0.661046 -0.370586 +v 0.355160 0.667894 -0.354054 +v 0.362572 0.674742 -0.337523 +v 0.380466 0.464529 -0.330675 +v 0.398360 0.467365 -0.337523 +v 0.405772 0.474213 -0.354054 +v 0.398360 0.481060 -0.370586 +v 0.380466 0.483897 -0.377434 +v 0.362572 0.481060 -0.370586 +v 0.355160 0.474213 -0.354054 +v 0.362572 0.467365 -0.337523 +v 0.380466 0.313880 -0.481324 +v 0.398360 0.320727 -0.484160 +v 0.405772 0.337259 -0.491008 +v 0.398360 0.353791 -0.497856 +v 0.380466 0.360639 -0.500692 +v 0.362572 0.353791 -0.497856 +v 0.355160 0.337259 -0.491008 +v 0.362572 0.320727 -0.484160 +v 0.380466 0.313880 -0.694373 +v 0.398360 0.320727 -0.691537 +v 0.405772 0.337259 -0.684689 +v 0.398360 0.353791 -0.677842 +v 0.380466 0.360639 -0.675005 +v 0.362572 0.353791 -0.677842 +v 0.355160 0.337259 -0.684689 +v 0.362572 0.320727 -0.691537 +v 0.380466 0.464529 -0.845022 +v 0.398360 0.467365 -0.838174 +v 0.405772 0.474213 -0.821643 +v 0.398360 0.481060 -0.805111 +v 0.380466 0.483897 -0.798263 +v 0.362572 0.481060 -0.805111 +v 0.355160 0.474213 -0.821643 +v 0.362572 0.467365 -0.838174 +v 0.380466 0.677578 -0.845022 +v 0.398360 0.674742 -0.838174 +v 0.405772 0.667894 -0.821643 +v 0.398360 0.661047 -0.805111 +v 0.380466 0.658210 -0.798263 +v 0.362572 0.661047 -0.805111 +v 0.355160 0.667894 -0.821643 +v 0.362572 0.674742 -0.838174 +v 0.380466 0.828227 -0.694373 +v 0.398360 0.821379 -0.691537 +v 0.405772 0.804848 -0.684689 +v 0.398360 0.788316 -0.677842 +v 0.380466 0.781468 -0.675005 +v 0.362572 0.788316 -0.677842 +v 0.355160 0.804848 -0.684689 +v 0.362572 0.821379 -0.691537 +v -0.044410 0.571053 -0.570525 +v -0.228434 0.571053 -0.573891 +v -0.044410 0.586056 -0.579187 +v -0.228434 0.583141 -0.580870 +v -0.044410 0.586056 -0.596510 +v -0.228434 0.583141 -0.594827 +v -0.044410 0.571053 -0.605172 +v -0.228434 0.571053 -0.601806 +v -0.044410 0.556051 -0.596510 +v -0.228434 0.558966 -0.594827 +v -0.044410 0.556051 -0.579187 +v -0.228434 0.558966 -0.580870 +v -0.213159 0.571053 -0.570525 +v -0.161485 0.571053 -0.570525 +v -0.161485 0.586056 -0.579187 +v -0.213159 0.586056 -0.579187 +v -0.161485 0.586056 -0.596510 +v -0.213159 0.586056 -0.596510 +v -0.161485 0.571053 -0.605172 +v -0.213159 0.571053 -0.605172 +v -0.161485 0.556051 -0.596510 +v -0.213159 0.556051 -0.596510 +v -0.161485 0.556051 -0.579187 +v -0.213159 0.556051 -0.579187 +v -0.165188 0.538846 -0.569253 +v -0.209456 0.538846 -0.569253 +v -0.209456 0.571053 -0.550658 +v -0.165188 0.571053 -0.550658 +v -0.165188 0.538846 -0.606444 +v -0.209456 0.538846 -0.606444 +v -0.165188 0.571053 -0.625039 +v -0.209456 0.571053 -0.625039 +v -0.165188 0.603261 -0.606444 +v -0.209456 0.603261 -0.606444 +v -0.165188 0.603261 -0.569253 +v -0.209456 0.603261 -0.569253 +v -0.181577 0.585795 -0.571215 +v -0.292909 0.798690 -0.587129 +v -0.169584 0.591199 -0.579309 +v -0.280916 0.804094 -0.595223 +v -0.169529 0.590076 -0.594713 +v -0.280861 0.802970 -0.610627 +v -0.181466 0.583548 -0.602023 +v -0.292798 0.796443 -0.617937 +v -0.193459 0.578144 -0.593929 +v -0.304791 0.791039 -0.609843 +v -0.193514 0.579268 -0.578525 +v -0.304846 0.792162 -0.594439 +v -0.182026 0.589041 -0.594850 +v -0.292909 0.639695 -0.806877 +v -0.170033 0.583014 -0.602490 +v -0.280916 0.633667 -0.814518 +v -0.169977 0.568017 -0.606182 +v -0.280861 0.618670 -0.818209 +v -0.181915 0.559048 -0.602232 +v -0.292798 0.609701 -0.814260 +v -0.193907 0.565075 -0.594592 +v -0.304791 0.615728 -0.806620 +v -0.193963 0.580072 -0.590901 +v -0.304846 0.630725 -0.802928 +v -0.181577 0.567567 -0.605240 +v -0.292909 0.382270 -0.719820 +v -0.169584 0.558438 -0.601869 +v -0.280916 0.373140 -0.716448 +v -0.169529 0.550293 -0.588746 +v -0.280861 0.364995 -0.703326 +v -0.181466 0.551277 -0.578996 +v -0.292798 0.365980 -0.693575 +v -0.193459 0.560406 -0.582368 +v -0.304791 0.375109 -0.696947 +v -0.193514 0.568551 -0.595490 +v -0.304846 0.383254 -0.710069 +v -0.181577 0.551049 -0.588028 +v -0.292909 0.388168 -0.450017 +v -0.169584 0.551435 -0.578304 +v -0.280916 0.388553 -0.440293 +v -0.169529 0.561398 -0.566502 +v -0.280861 0.398516 -0.428491 +v -0.181466 0.570975 -0.564425 +v -0.292798 0.408094 -0.426414 +v -0.193459 0.570589 -0.574150 +v -0.304791 0.407708 -0.436139 +v -0.193514 0.560626 -0.585951 +v -0.304846 0.397745 -0.447940 +v -0.186239 0.562315 -0.566999 +v -0.292909 0.648259 -0.361717 +v -0.174246 0.571682 -0.564361 +v -0.280916 0.657627 -0.359079 +v -0.174191 0.585985 -0.570190 +v -0.280861 0.671929 -0.364907 +v -0.186128 0.590920 -0.578657 +v -0.292798 0.676864 -0.373374 +v -0.198121 0.581552 -0.581295 +v -0.304791 0.667497 -0.376013 +v -0.198176 0.567249 -0.575466 +v -0.304846 0.653194 -0.370184 +v -0.297467 0.828227 -0.481324 +v -0.315361 0.821379 -0.484160 +v -0.322773 0.804848 -0.491008 +v -0.315361 0.788316 -0.497855 +v -0.297467 0.781468 -0.500692 +v -0.279573 0.788316 -0.497855 +v -0.272162 0.804848 -0.491008 +v -0.279573 0.821379 -0.484160 +v -0.297467 0.677578 -0.330675 +v -0.315361 0.674742 -0.337523 +v -0.322773 0.667894 -0.354054 +v -0.315361 0.661047 -0.370586 +v -0.297467 0.658210 -0.377434 +v -0.279573 0.661047 -0.370586 +v -0.272162 0.667894 -0.354054 +v -0.279573 0.674742 -0.337523 +v -0.297467 0.464529 -0.330675 +v -0.315361 0.467365 -0.337523 +v -0.322773 0.474213 -0.354054 +v -0.315361 0.481060 -0.370586 +v -0.297467 0.483897 -0.377434 +v -0.279573 0.481060 -0.370586 +v -0.272162 0.474213 -0.354054 +v -0.279573 0.467365 -0.337523 +v -0.297467 0.313880 -0.481324 +v -0.315361 0.320727 -0.484160 +v -0.322773 0.337259 -0.491008 +v -0.315361 0.353791 -0.497856 +v -0.297467 0.360639 -0.500692 +v -0.279573 0.353791 -0.497856 +v -0.272162 0.337259 -0.491008 +v -0.279573 0.320727 -0.484160 +v -0.297467 0.313880 -0.694373 +v -0.315361 0.320727 -0.691537 +v -0.322773 0.337259 -0.684689 +v -0.315361 0.353791 -0.677842 +v -0.297467 0.360639 -0.675005 +v -0.279573 0.353791 -0.677842 +v -0.272162 0.337259 -0.684689 +v -0.279573 0.320727 -0.691537 +v -0.297467 0.464529 -0.845022 +v -0.315361 0.467365 -0.838175 +v -0.322773 0.474213 -0.821643 +v -0.315361 0.481060 -0.805111 +v -0.297467 0.483897 -0.798263 +v -0.279573 0.481060 -0.805111 +v -0.272162 0.474213 -0.821643 +v -0.279573 0.467365 -0.838175 +v -0.297467 0.677578 -0.845022 +v -0.315361 0.674742 -0.838174 +v -0.322773 0.667894 -0.821643 +v -0.315361 0.661047 -0.805111 +v -0.297467 0.658210 -0.798263 +v -0.279573 0.661047 -0.805111 +v -0.272162 0.667894 -0.821643 +v -0.279573 0.674742 -0.838174 +v -0.297467 0.828227 -0.694373 +v -0.315361 0.821379 -0.691537 +v -0.322773 0.804848 -0.684689 +v -0.315361 0.788316 -0.677842 +v -0.297467 0.781468 -0.675005 +v -0.279573 0.788316 -0.677842 +v -0.272162 0.804848 -0.684689 +v -0.279573 0.821379 -0.691537 +vt 0.799635 0.362279 +vt 0.827262 0.359326 +vt 0.827222 0.362762 +vt 0.800448 0.375165 +vt 0.827415 0.369730 +vt 0.827624 0.373751 +vt 0.799726 0.370763 +vt 0.827275 0.366229 +vt 0.799597 0.366415 +vt 0.762423 0.391682 +vt 0.760099 0.390340 +vt 0.762423 0.386315 +vt 0.800031 0.354283 +vt 0.827395 0.355916 +vt 0.827624 0.352523 +vt 0.788264 0.364363 +vt 0.785449 0.361184 +vt 0.788551 0.361047 +vt 0.784514 0.366272 +vt 0.787270 0.367605 +vt 0.783039 0.368301 +vt 0.785025 0.370236 +vt 0.783984 0.355430 +vt 0.785188 0.350017 +vt 0.787304 0.353840 +vt 0.788273 0.357581 +vt 0.791373 0.353216 +vt 0.796382 0.357395 +vt 0.797036 0.352990 +vt 0.799724 0.358261 +vt 0.796056 0.361474 +vt 0.791701 0.357754 +vt 0.795690 0.365588 +vt 0.791589 0.361641 +vt 0.791021 0.365400 +vt 0.795191 0.370261 +vt 0.789634 0.369320 +vt 0.786082 0.373815 +vt 0.795397 0.378285 +vt 0.799279 0.347383 +vt 0.801389 0.350415 +vt 0.286473 0.934138 +vt 0.283504 0.980386 +vt 0.283504 0.934093 +vt 0.301319 0.934093 +vt 0.298350 0.980386 +vt 0.298350 0.934093 +vt 0.295381 0.934138 +vt 0.295381 0.980430 +vt 0.292412 0.934182 +vt 0.292412 0.980475 +vt 0.289442 0.934183 +vt 0.286473 0.980430 +vt 0.867854 0.901496 +vt 0.820842 0.898526 +vt 0.867866 0.898526 +vt 0.820842 0.916343 +vt 0.867852 0.913373 +vt 0.867866 0.916343 +vt 0.820829 0.913373 +vt 0.867827 0.910404 +vt 0.820804 0.910404 +vt 0.867815 0.907434 +vt 0.820805 0.904465 +vt 0.867828 0.904465 +vt 0.820830 0.901496 +vt 0.548210 0.936048 +vt 0.551180 0.889032 +vt 0.551180 0.936071 +vt 0.533363 0.936071 +vt 0.536332 0.889032 +vt 0.536332 0.936072 +vt 0.539302 0.936049 +vt 0.539302 0.889009 +vt 0.542271 0.936025 +vt 0.542271 0.888986 +vt 0.545241 0.936025 +vt 0.548210 0.889008 +vt 0.837375 0.924047 +vt 0.834405 0.970295 +vt 0.834405 0.924002 +vt 0.852221 0.924002 +vt 0.849251 0.970295 +vt 0.849251 0.924002 +vt 0.846282 0.924046 +vt 0.846282 0.970339 +vt 0.843313 0.924091 +vt 0.843313 0.970384 +vt 0.840344 0.924091 +vt 0.837374 0.970339 +vt 0.434430 0.936466 +vt 0.431460 0.889069 +vt 0.434429 0.889017 +vt 0.449276 0.936519 +vt 0.446307 0.889090 +vt 0.449276 0.889069 +vt 0.443337 0.936508 +vt 0.443337 0.889059 +vt 0.440368 0.936456 +vt 0.440368 0.889006 +vt 0.437399 0.936435 +vt 0.437399 0.888985 +vt 0.400992 0.791352 +vt 0.397193 0.754418 +vt 0.400852 0.754391 +vt 0.394091 0.791397 +vt 0.393709 0.754385 +vt 0.390187 0.754324 +vt 0.390588 0.791361 +vt 0.386451 0.754283 +vt 0.382815 0.791366 +vt 0.382712 0.754242 +vt 0.379184 0.754177 +vt 0.407987 0.754399 +vt 0.404551 0.791300 +vt 0.404509 0.754364 +vt 0.401029 0.830484 +vt 0.397466 0.791406 +vt 0.393644 0.828434 +vt 0.390393 0.827137 +vt 0.386724 0.791360 +vt 0.387036 0.826636 +vt 0.383603 0.827212 +vt 0.379180 0.791346 +vt 0.408711 0.828478 +vt 0.408040 0.791308 +vt 0.405031 0.829914 +vt 0.401081 0.569288 +vt 0.397276 0.530538 +vt 0.401303 0.529944 +vt 0.397510 0.569275 +vt 0.393569 0.531995 +vt 0.394002 0.569210 +vt 0.390094 0.533390 +vt 0.390377 0.569117 +vt 0.386663 0.533954 +vt 0.386493 0.569035 +vt 0.383340 0.533443 +vt 0.382642 0.568946 +vt 0.380148 0.532152 +vt 0.407993 0.569370 +vt 0.405237 0.530579 +vt 0.408711 0.531968 +vt 0.404608 0.569300 +vt 0.397153 0.606277 +vt 0.393668 0.606235 +vt 0.390146 0.606165 +vt 0.386408 0.606121 +vt 0.382669 0.606079 +vt 0.379138 0.568835 +vt 0.407945 0.606274 +vt 0.404466 0.606234 +vt 0.400804 0.643287 +vt 0.400811 0.606255 +vt 0.393655 0.643272 +vt 0.390136 0.643206 +vt 0.386405 0.643166 +vt 0.379155 0.643060 +vt 0.379143 0.606013 +vt 0.404468 0.643264 +vt 0.400813 0.680323 +vt 0.397140 0.643310 +vt 0.397149 0.680346 +vt 0.393664 0.680308 +vt 0.390145 0.680243 +vt 0.386415 0.680202 +vt 0.382675 0.643125 +vt 0.382685 0.680161 +vt 0.407962 0.680337 +vt 0.407952 0.643302 +vt 0.404477 0.680299 +vt 0.400825 0.717358 +vt 0.393676 0.717344 +vt 0.390157 0.717280 +vt 0.382696 0.717198 +vt 0.379166 0.680096 +vt 0.404489 0.717335 +vt 0.397161 0.717382 +vt 0.386427 0.717239 +vt 0.379176 0.717133 +vt 0.407973 0.717373 +vt 0.720912 0.364623 +vt 0.693285 0.361670 +vt 0.720872 0.361187 +vt 0.721066 0.354219 +vt 0.694098 0.348783 +vt 0.721275 0.350197 +vt 0.720925 0.357719 +vt 0.693377 0.353186 +vt 0.693247 0.357533 +vt 0.777055 0.387656 +vt 0.777055 0.390340 +vt 0.774731 0.391682 +vt 0.721046 0.368033 +vt 0.693374 0.365687 +vt 0.721275 0.371425 +vt 0.693682 0.369665 +vt 0.682202 0.362901 +vt 0.678936 0.360105 +vt 0.681915 0.359585 +vt 0.680920 0.356343 +vt 0.678164 0.357676 +vt 0.676690 0.355648 +vt 0.678676 0.353713 +vt 0.678838 0.373931 +vt 0.677634 0.368519 +vt 0.680955 0.370109 +vt 0.678692 0.365585 +vt 0.681923 0.366367 +vt 0.685023 0.370733 +vt 0.690686 0.370958 +vt 0.690033 0.366554 +vt 0.689707 0.362474 +vt 0.685352 0.366194 +vt 0.688841 0.353688 +vt 0.679099 0.362764 +vt 0.685239 0.362307 +vt 0.684671 0.358548 +vt 0.683285 0.354629 +vt 0.689047 0.345664 +vt 0.679733 0.350133 +vt 0.682787 0.378285 +vt 0.692930 0.376566 +vt 0.695039 0.373533 +vt 0.953914 0.104208 +vt 0.950945 0.057960 +vt 0.953914 0.057915 +vt 0.968761 0.104252 +vt 0.965791 0.057960 +vt 0.968761 0.057960 +vt 0.962822 0.104208 +vt 0.965791 0.104253 +vt 0.959853 0.104163 +vt 0.962822 0.057916 +vt 0.956883 0.104163 +vt 0.959853 0.057871 +vt 0.956883 0.057871 +vt 0.901087 0.717683 +vt 0.854075 0.720652 +vt 0.854064 0.717683 +vt 0.901085 0.705805 +vt 0.854075 0.702836 +vt 0.901099 0.702836 +vt 0.901060 0.708775 +vt 0.854062 0.705805 +vt 0.901048 0.711744 +vt 0.854037 0.708775 +vt 0.854038 0.714714 +vt 0.854025 0.711744 +vt 0.901062 0.714714 +vt 0.459905 0.936048 +vt 0.456935 0.889032 +vt 0.459905 0.889008 +vt 0.474752 0.936071 +vt 0.471782 0.889032 +vt 0.474752 0.889032 +vt 0.468813 0.936049 +vt 0.471782 0.936072 +vt 0.465844 0.936025 +vt 0.468813 0.889009 +vt 0.462874 0.936025 +vt 0.465844 0.888986 +vt 0.462874 0.888985 +vt 0.891332 0.918016 +vt 0.894301 0.964265 +vt 0.891332 0.964309 +vt 0.876485 0.917972 +vt 0.879455 0.964264 +vt 0.876486 0.964265 +vt 0.882424 0.918016 +vt 0.879455 0.917972 +vt 0.885393 0.918061 +vt 0.882424 0.964309 +vt 0.888363 0.918061 +vt 0.885393 0.964353 +vt 0.888363 0.964354 +vt 0.890948 0.381894 +vt 0.893917 0.334497 +vt 0.893917 0.381947 +vt 0.905794 0.381873 +vt 0.908763 0.334445 +vt 0.908763 0.381894 +vt 0.902824 0.334456 +vt 0.905794 0.334424 +vt 0.902824 0.381905 +vt 0.899855 0.334508 +vt 0.899855 0.381957 +vt 0.896886 0.334529 +vt 0.896886 0.381978 +vt 0.359961 0.606011 +vt 0.363760 0.569076 +vt 0.363621 0.606038 +vt 0.356860 0.569032 +vt 0.360235 0.569022 +vt 0.356477 0.606043 +vt 0.353356 0.569068 +vt 0.349219 0.606145 +vt 0.352955 0.606105 +vt 0.345583 0.569063 +vt 0.349493 0.569068 +vt 0.341953 0.606252 +vt 0.345481 0.606186 +vt 0.367278 0.606065 +vt 0.370809 0.569120 +vt 0.370756 0.606029 +vt 0.367319 0.569128 +vt 0.359879 0.530591 +vt 0.363797 0.529944 +vt 0.353162 0.533291 +vt 0.356412 0.531994 +vt 0.349805 0.533792 +vt 0.342919 0.531808 +vt 0.346372 0.533216 +vt 0.371479 0.531950 +vt 0.367800 0.530514 +vt 0.364071 0.830484 +vt 0.360279 0.791154 +vt 0.363850 0.791140 +vt 0.356338 0.828434 +vt 0.360044 0.829890 +vt 0.353146 0.791312 +vt 0.356770 0.791219 +vt 0.349432 0.826474 +vt 0.352863 0.827038 +vt 0.346108 0.826986 +vt 0.349262 0.791394 +vt 0.341907 0.791593 +vt 0.345411 0.791482 +vt 0.368006 0.829850 +vt 0.370761 0.791058 +vt 0.371479 0.828460 +vt 0.367376 0.791128 +vt 0.363579 0.754173 +vt 0.359921 0.754151 +vt 0.352914 0.754263 +vt 0.356437 0.754193 +vt 0.349176 0.754307 +vt 0.345438 0.754350 +vt 0.367235 0.754194 +vt 0.370713 0.754154 +vt 0.363572 0.717142 +vt 0.356423 0.717157 +vt 0.359908 0.717119 +vt 0.352904 0.717222 +vt 0.349174 0.717263 +vt 0.341923 0.717369 +vt 0.345443 0.717304 +vt 0.370720 0.717126 +vt 0.367236 0.717164 +vt 0.363582 0.680106 +vt 0.356432 0.680121 +vt 0.359918 0.680083 +vt 0.349184 0.680226 +vt 0.352914 0.680186 +vt 0.341934 0.680332 +vt 0.345453 0.680267 +vt 0.370731 0.680091 +vt 0.367246 0.680129 +vt 0.363594 0.643070 +vt 0.356444 0.643084 +vt 0.359930 0.643046 +vt 0.352925 0.643149 +vt 0.349195 0.643189 +vt 0.345464 0.643230 +vt 0.370742 0.643055 +vt 0.367257 0.643093 +vt 0.341944 0.643295 +vt 0.760099 0.387656 +vt 0.764747 0.387656 +vt 0.764747 0.390340 +vt 0.785286 0.363844 +vt 0.782109 0.352463 +vt 0.785042 0.358363 +vt 0.789136 0.345664 +vt 0.301319 0.980386 +vt 0.289442 0.980475 +vt 0.820792 0.907434 +vt 0.533363 0.889032 +vt 0.545241 0.888985 +vt 0.852221 0.970295 +vt 0.840343 0.970384 +vt 0.431460 0.936519 +vt 0.446306 0.936540 +vt 0.397110 0.829838 +vt 0.380151 0.828621 +vt 0.772406 0.390340 +vt 0.772406 0.387656 +vt 0.774731 0.386315 +vt 0.675759 0.371485 +vt 0.689340 0.358360 +vt 0.950945 0.104252 +vt 0.901099 0.720652 +vt 0.456935 0.936071 +vt 0.894301 0.917972 +vt 0.890948 0.334445 +vt 0.341949 0.569082 +vt 0.342916 0.828276 +vt 0.341912 0.754415 +vn 0.0000 -0.8660 0.5000 +vn 0.0000 -0.0000 1.0000 +vn 0.0000 0.8660 -0.5000 +vn 0.0000 -0.0000 -1.0000 +vn 0.0000 -0.8660 -0.5000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.8660 0.5000 +vn 0.2152 -0.8457 -0.4883 +vn 0.2152 -0.8457 0.4883 +vn 0.2152 -0.0000 -0.9766 +vn 0.2152 0.8457 -0.4883 +vn 0.2152 0.8457 0.4883 +vn 0.2152 -0.0000 0.9766 +vn 0.9831 0.1587 -0.0916 +vn 0.9831 0.1587 0.0916 +vn -0.9831 0.1587 0.0916 +vn -0.9831 0.0000 0.1832 +vn -0.9831 -0.1587 0.0916 +vn -0.9831 -0.1587 -0.0916 +vn 0.9831 -0.0000 0.1832 +vn -0.9831 -0.0000 -0.1832 +vn 0.9831 0.0000 -0.1832 +vn 0.9831 -0.1587 0.0916 +vn 0.9831 -0.1587 -0.0916 +vn -0.9831 0.1587 -0.0916 +vn -0.0013 0.0752 0.9972 +vn -0.7649 0.4355 0.4747 +vn -0.7674 0.4364 0.4698 +vn -0.7685 0.3624 -0.5273 +vn -0.7709 0.3641 -0.5227 +vn -0.0085 -0.0701 -0.9975 +vn 0.0013 -0.0752 -0.9972 +vn 0.7649 -0.4355 -0.4747 +vn 0.7674 -0.4364 -0.4698 +vn 0.7685 -0.3624 0.5273 +vn 0.0085 0.0701 0.9975 +vn 0.0036 0.9722 0.2341 +vn -0.7691 0.5824 -0.2631 +vn -0.7690 0.5826 -0.2630 +vn -0.7757 -0.3873 -0.4982 +vn -0.7736 -0.3916 -0.4981 +vn -0.0076 -0.9717 -0.2361 +vn -0.0036 -0.9722 -0.2341 +vn 0.7691 -0.5824 0.2631 +vn 0.7757 0.3873 0.4982 +vn 0.7736 0.3916 0.4981 +vn 0.0076 0.9717 0.2361 +vn 0.0010 0.5263 -0.8503 +vn -0.7687 -0.0687 -0.6359 +vn -0.7701 -0.0706 -0.6341 +vn -0.7723 -0.5975 0.2158 +vn -0.7736 -0.5967 0.2134 +vn -0.0061 -0.5286 0.8489 +vn -0.0010 -0.5264 0.8503 +vn 0.7687 0.0687 0.6359 +vn 0.7701 0.0706 0.6341 +vn 0.7723 0.5975 -0.2158 +vn 0.0061 0.5286 -0.8489 +vn -0.0013 -0.6470 -0.7625 +vn -0.7649 -0.6313 -0.1281 +vn -0.7674 -0.6292 -0.1236 +vn -0.7685 0.0167 0.6397 +vn -0.7709 0.0127 0.6369 +vn -0.0085 0.6431 0.7658 +vn 0.0013 0.6470 0.7625 +vn 0.7649 0.6313 0.1281 +vn 0.7674 0.6292 0.1236 +vn 0.7685 -0.0167 -0.6397 +vn 0.0085 -0.6431 -0.7658 +vn 0.0020 -0.9228 0.3853 +vn -0.7755 -0.3271 0.5399 +vn 0.0114 -0.9245 0.3811 +vn -0.7797 -0.3191 0.5388 +vn -0.7840 0.6009 0.1558 +vn -0.0114 0.9245 -0.3811 +vn -0.0020 0.9228 -0.3853 +vn 0.7755 0.3271 -0.5399 +vn 0.7797 0.3191 -0.5388 +vn 0.7840 -0.6009 -0.1558 +vn 0.7846 -0.6000 -0.1565 +vn -0.0000 0.3827 0.9239 +vn 0.6630 0.6916 0.2865 +vn 0.0000 0.9239 0.3827 +vn 0.9955 0.0363 0.0876 +vn 0.9955 0.0876 0.0363 +vn 0.7574 -0.6033 -0.2499 +vn 0.7574 -0.2499 -0.6033 +vn 0.0000 -0.9239 -0.3827 +vn -0.7574 -0.2499 -0.6033 +vn -0.7574 -0.6033 -0.2499 +vn -0.9955 0.0876 0.0363 +vn -0.6630 0.2865 0.6916 +vn -0.6630 0.6916 0.2865 +vn 0.0000 -0.3827 0.9239 +vn 0.6630 0.2865 0.6916 +vn 0.9955 -0.0363 0.0876 +vn 0.7574 0.2499 -0.6033 +vn 0.0000 -0.3827 -0.9239 +vn -0.0000 0.3827 -0.9239 +vn -0.7574 0.2499 -0.6033 +vn -0.9955 0.0363 0.0876 +vn -0.9955 -0.0363 0.0876 +vn -0.6630 -0.2865 0.6916 +vn 0.0000 -0.9239 0.3827 +vn 0.6630 -0.2865 0.6916 +vn 0.6630 -0.6916 0.2865 +vn 0.9955 -0.0876 0.0363 +vn 0.7574 0.6033 -0.2499 +vn 0.0000 0.9239 -0.3827 +vn -0.7574 0.6033 -0.2499 +vn -0.9955 -0.0876 0.0363 +vn -0.6630 -0.6916 0.2865 +vn 0.6630 -0.6916 -0.2865 +vn 0.9955 -0.0876 -0.0363 +vn 0.7574 0.6033 0.2499 +vn -0.7574 0.6033 0.2499 +vn -0.9955 -0.0876 -0.0363 +vn -0.6630 -0.6916 -0.2865 +vn 0.9955 -0.0363 -0.0876 +vn 0.7574 0.2499 0.6033 +vn -0.9955 -0.0363 -0.0876 +vn -0.6630 -0.2865 -0.6916 +vn 0.6630 -0.2865 -0.6916 +vn 0.6630 0.2865 -0.6916 +vn 0.9955 0.0363 -0.0876 +vn 0.7574 -0.2499 0.6033 +vn -0.7574 0.2499 0.6033 +vn -0.7574 -0.2499 0.6033 +vn -0.9955 0.0363 -0.0876 +vn -0.6630 0.2865 -0.6916 +vn 0.9955 0.0876 -0.0363 +vn 0.7574 -0.6033 0.2499 +vn -0.7574 -0.6033 0.2499 +vn -0.6630 0.6916 -0.2865 +vn 0.6630 0.6916 -0.2865 +vn -0.9955 0.0876 -0.0363 +vn -1.0000 0.0000 0.0000 +vn -0.2152 -0.8457 0.4883 +vn -0.2152 -0.8457 -0.4883 +vn -0.2152 -0.0000 -0.9766 +vn -0.2152 0.8457 -0.4883 +vn -0.2152 0.8457 0.4883 +vn -0.2152 0.0000 0.9766 +vn 0.0013 0.0752 0.9972 +vn 0.7649 0.4355 0.4747 +vn -0.0085 0.0701 0.9975 +vn 0.7674 0.4364 0.4698 +vn 0.7685 0.3625 -0.5273 +vn 0.0085 -0.0701 -0.9975 +vn 0.7709 0.3641 -0.5227 +vn -0.7649 -0.4355 -0.4747 +vn -0.0013 -0.0752 -0.9972 +vn -0.7685 -0.3624 0.5273 +vn -0.7674 -0.4364 -0.4698 +vn -0.7709 -0.3641 0.5227 +vn -0.0036 0.9722 0.2341 +vn 0.7691 0.5824 -0.2631 +vn -0.0076 0.9717 0.2361 +vn 0.7757 -0.3873 -0.4982 +vn 0.7690 0.5826 -0.2630 +vn 0.0076 -0.9717 -0.2361 +vn 0.7736 -0.3916 -0.4981 +vn -0.7691 -0.5824 0.2631 +vn 0.0036 -0.9722 -0.2341 +vn -0.7757 0.3873 0.4982 +vn -0.7691 -0.5826 0.2630 +vn -0.7736 0.3916 0.4981 +vn -0.0010 0.5263 -0.8503 +vn 0.7687 -0.0687 -0.6359 +vn -0.0061 0.5286 -0.8489 +vn 0.7701 -0.0706 -0.6341 +vn 0.7723 -0.5975 0.2158 +vn 0.0061 -0.5286 0.8489 +vn 0.7736 -0.5967 0.2134 +vn -0.7687 0.0687 0.6359 +vn 0.0010 -0.5263 0.8503 +vn -0.7723 0.5975 -0.2158 +vn -0.7701 0.0706 0.6341 +vn -0.7736 0.5967 -0.2134 +vn 0.0013 -0.6470 -0.7625 +vn 0.7649 -0.6313 -0.1281 +vn -0.0085 -0.6431 -0.7658 +vn 0.7674 -0.6292 -0.1236 +vn 0.7685 0.0167 0.6397 +vn 0.0085 0.6431 0.7658 +vn 0.7709 0.0127 0.6369 +vn -0.7649 0.6313 0.1281 +vn -0.0013 0.6470 0.7625 +vn -0.7685 -0.0167 -0.6397 +vn -0.7674 0.6292 0.1236 +vn -0.7709 -0.0127 -0.6369 +vn 0.7755 -0.3271 0.5399 +vn -0.0020 -0.9228 0.3853 +vn -0.0114 -0.9245 0.3811 +vn 0.7840 0.6009 0.1558 +vn 0.7797 -0.3191 0.5388 +vn 0.0114 0.9245 -0.3811 +vn 0.7846 0.6000 0.1565 +vn 0.0020 0.9228 -0.3853 +vn -0.7755 0.3271 -0.5399 +vn -0.7797 0.3191 -0.5388 +vn -0.7840 -0.6009 -0.1558 +vn -0.7846 -0.6000 -0.1565 +vn 0.7709 -0.3641 0.5227 +vn 0.7690 -0.5826 0.2630 +vn 0.7736 0.5967 -0.2134 +vn 0.7709 -0.0127 -0.6369 +vn -0.7846 0.6000 0.1565 +s 1 +f 911/1737/469 889/1738/470 899/1739/469 +f 905/1740/471 895/1741/472 893/1742/471 +f 907/1743/472 897/1744/473 895/1741/472 +f 909/1745/473 899/1739/469 897/1744/473 +f 896/1746/474 894/1747/474 890/1748/474 +f 889/1738/470 903/1749/475 891/1750/475 +f 903/1749/475 893/1751/471 891/1750/475 +f 910/1752/476 900/1753/477 912/1754/477 +f 896/1755/478 910/1752/476 908/1756/478 +f 894/1757/479 908/1756/478 906/1758/479 +f 892/1759/480 906/1760/479 904/1761/480 +f 901/1762/481 892/1759/480 904/1761/480 +f 906/1760/482 924/1763/483 904/1761/483 +f 903/1749/484 916/1764/485 923/1765/484 +f 902/1766/485 913/1767/486 916/1764/485 +f 909/1745/487 913/1767/486 911/1737/486 +f 904/1761/483 915/1768/488 901/1762/488 +f 907/1743/489 917/1769/487 909/1745/487 +f 900/1753/477 901/1762/481 912/1754/477 +f 915/1768/470 913/1767/469 914/1770/469 +f 914/1770/469 917/1769/473 918/1771/473 +f 918/1771/473 919/1772/472 920/1773/472 +f 922/1774/471 919/1772/472 921/1775/471 +f 924/1763/475 921/1776/471 923/1765/475 +f 924/1763/475 916/1764/470 915/1768/470 +f 908/1756/490 922/1774/482 906/1758/482 +f 901/1762/488 914/1770/491 912/1754/491 +f 910/1752/492 920/1773/490 908/1756/490 +f 903/1749/484 921/1776/493 905/1777/493 +f 912/1754/491 918/1771/492 910/1752/492 +f 905/1740/493 919/1772/489 907/1743/489 +f 925/1778/494 928/1779/495 927/1780/496 +f 927/1781/496 930/1782/497 929/1783/498 +f 930/1782/497 931/1784/499 929/1783/498 +f 932/1785/500 933/1786/501 931/1784/499 +f 934/1787/502 935/1788/503 933/1786/501 +f 935/1788/503 926/1789/504 925/1778/494 +f 937/1790/505 940/1791/506 939/1792/507 +f 940/1793/506 941/1794/508 939/1795/507 +f 942/1796/509 943/1797/510 941/1794/508 +f 944/1798/511 945/1799/512 943/1797/510 +f 945/1799/512 948/1800/513 947/1801/514 +f 947/1801/514 938/1802/515 937/1790/505 +f 949/1803/516 952/1804/517 951/1805/518 +f 951/1806/518 954/1807/519 953/1808/520 +f 954/1807/519 955/1809/521 953/1808/520 +f 956/1810/522 957/1811/523 955/1809/521 +f 958/1812/524 959/1813/525 957/1811/523 +f 959/1813/525 950/1814/526 949/1803/516 +f 961/1815/527 964/1816/528 963/1817/529 +f 963/1818/529 966/1819/530 965/1820/531 +f 966/1819/530 967/1821/532 965/1820/531 +f 968/1822/533 969/1823/534 967/1821/532 +f 970/1824/535 971/1825/536 969/1823/534 +f 971/1825/536 962/1826/537 961/1815/527 +f 974/1827/538 975/1828/539 973/1829/540 +f 976/1830/541 977/1831/542 975/1832/539 +f 977/1831/542 980/1833/543 979/1834/544 +f 979/1834/544 982/1835/545 981/1836/546 +f 981/1836/546 984/1837/547 983/1838/548 +f 984/1837/547 973/1829/540 983/1838/548 +f 993/1839/549 986/1840/550 985/1841/551 +f 986/1840/550 995/1842/552 987/1843/553 +f 995/1842/552 988/1844/554 987/1843/553 +f 996/1845/555 989/1846/556 988/1844/554 +f 989/1846/556 998/1847/557 990/1848/558 +f 998/1847/557 991/1849/559 990/1848/558 +f 991/1850/559 1000/1851/560 992/1852/561 +f 1000/1851/560 985/1841/551 992/1852/561 +f 1001/1853/562 994/1854/563 993/1839/549 +f 994/1854/563 1003/1855/564 995/1842/552 +f 1003/1855/564 996/1845/555 995/1842/552 +f 1004/1856/565 997/1857/566 996/1845/555 +f 1005/1858/567 998/1847/557 997/1857/566 +f 1006/1859/568 999/1860/569 998/1847/557 +f 1007/1861/570 1000/1851/560 999/1862/569 +f 1008/1863/571 993/1839/549 1000/1851/560 +f 1009/1864/572 1002/1865/573 1001/1866/562 +f 1010/1867/574 1003/1868/564 1002/1865/573 +f 1011/1869/575 1004/1870/565 1003/1868/564 +f 1012/1871/576 1005/1872/567 1004/1870/565 +f 1013/1873/577 1006/1874/568 1005/1872/567 +f 1014/1875/578 1007/1876/570 1006/1874/568 +f 1015/1877/579 1008/1878/571 1007/1879/570 +f 1016/1880/580 1001/1866/562 1008/1878/571 +f 1009/1864/572 1018/1881/581 1010/1867/574 +f 1018/1881/581 1011/1869/575 1010/1867/574 +f 1019/1882/582 1012/1871/576 1011/1869/575 +f 1020/1883/583 1013/1873/577 1012/1871/576 +f 1021/1884/551 1014/1875/578 1013/1873/577 +f 1022/1885/584 1015/1886/579 1014/1875/578 +f 1023/1887/585 1016/1880/580 1015/1877/579 +f 1024/1888/586 1009/1864/572 1016/1880/580 +f 1025/1889/566 1018/1881/581 1017/1890/556 +f 1018/1881/581 1027/1891/587 1019/1882/582 +f 1019/1882/582 1028/1892/588 1020/1883/583 +f 1020/1883/583 1029/1893/549 1021/1884/551 +f 1029/1893/549 1022/1885/584 1021/1884/551 +f 1022/1885/584 1031/1894/589 1023/1895/585 +f 1023/1887/585 1032/1896/590 1024/1888/586 +f 1032/1896/590 1017/1890/556 1024/1888/586 +f 1033/1897/567 1026/1898/591 1025/1889/566 +f 1034/1899/592 1027/1891/587 1026/1898/591 +f 1035/1900/593 1028/1892/588 1027/1891/587 +f 1036/1901/594 1029/1893/549 1028/1892/588 +f 1037/1902/562 1030/1903/595 1029/1893/549 +f 1038/1904/596 1031/1894/589 1030/1903/595 +f 1039/1905/597 1032/1896/590 1031/1906/589 +f 1040/1907/598 1025/1889/566 1032/1896/590 +f 1041/1908/577 1034/1899/592 1033/1897/567 +f 1034/1899/592 1043/1909/599 1035/1900/593 +f 1043/1909/599 1036/1901/594 1035/1900/593 +f 1044/1910/600 1037/1902/562 1036/1901/594 +f 1037/1902/562 1046/1911/601 1038/1904/596 +f 1046/1911/601 1039/1912/597 1038/1904/596 +f 1039/1905/597 1048/1913/602 1040/1907/598 +f 1048/1913/602 1033/1897/567 1040/1907/598 +f 985/1841/551 1042/1914/603 1041/1908/577 +f 986/1840/550 1043/1909/599 1042/1914/603 +f 987/1843/553 1044/1910/600 1043/1909/599 +f 988/1844/554 1045/1915/572 1044/1910/600 +f 989/1846/556 1046/1911/601 1045/1915/572 +f 990/1848/558 1047/1916/604 1046/1911/601 +f 991/1850/559 1048/1913/602 1047/1917/604 +f 1048/1913/602 985/1841/551 1041/1908/577 +f 1049/1918/470 1071/1919/469 1059/1920/469 +f 1055/1921/472 1065/1922/471 1053/1923/471 +f 1057/1924/473 1067/1925/472 1055/1921/472 +f 1059/1920/469 1069/1926/473 1057/1924/473 +f 1058/1927/605 1060/1928/605 1050/1929/605 +f 1051/1930/475 1062/1931/470 1049/1918/470 +f 1053/1932/471 1063/1933/475 1051/1930/475 +f 1072/1934/606 1058/1935/607 1070/1936/607 +f 1068/1937/608 1058/1935/607 1056/1938/608 +f 1068/1937/608 1054/1939/609 1066/1940/609 +f 1066/1941/609 1052/1942/610 1064/1943/610 +f 1064/1943/610 1050/1944/611 1061/1945/611 +f 1084/1946/484 1066/1941/493 1064/1943/484 +f 1083/1947/483 1062/1931/488 1063/1933/483 +f 1076/1948/488 1071/1919/491 1062/1931/488 +f 1073/1949/491 1069/1926/492 1071/1919/491 +f 1075/1950/485 1064/1943/484 1061/1945/485 +f 1069/1926/492 1079/1951/490 1067/1925/490 +f 1072/1934/606 1050/1944/611 1060/1952/606 +f 1074/1953/469 1076/1948/470 1075/1950/470 +f 1078/1954/473 1073/1949/469 1074/1953/469 +f 1079/1951/472 1078/1954/473 1080/1955/472 +f 1081/1956/471 1080/1955/472 1082/1957/471 +f 1083/1947/475 1082/1958/471 1084/1946/475 +f 1076/1948/470 1084/1946/475 1075/1950/470 +f 1066/1940/493 1080/1955/489 1068/1937/489 +f 1074/1953/486 1061/1945/485 1072/1934/486 +f 1068/1937/489 1078/1954/487 1070/1936/487 +f 1081/1959/482 1063/1933/483 1065/1960/482 +f 1078/1954/487 1072/1934/486 1070/1936/487 +f 1079/1951/490 1065/1922/482 1067/1925/490 +f 1085/1961/612 1088/1962/613 1086/1963/614 +f 1087/1964/615 1090/1965/616 1088/1966/613 +f 1091/1967/617 1090/1965/616 1089/1968/618 +f 1093/1969/619 1092/1970/620 1091/1967/617 +f 1095/1971/621 1094/1972/622 1093/1969/619 +f 1095/1971/621 1086/1963/614 1096/1973/623 +f 1097/1974/624 1100/1975/625 1098/1976/626 +f 1101/1977/627 1100/1978/625 1099/1979/628 +f 1103/1980/629 1102/1981/630 1101/1977/627 +f 1105/1982/631 1104/1983/632 1103/1980/629 +f 1105/1982/631 1108/1984/633 1106/1985/634 +f 1107/1986/635 1098/1976/626 1108/1984/633 +f 1109/1987/636 1112/1988/637 1110/1989/638 +f 1111/1990/639 1114/1991/640 1112/1992/637 +f 1115/1993/641 1114/1991/640 1113/1994/642 +f 1117/1995/643 1116/1996/644 1115/1993/641 +f 1119/1997/645 1118/1998/646 1117/1995/643 +f 1119/1997/645 1110/1989/638 1120/1999/647 +f 1121/2000/648 1124/2001/649 1122/2002/650 +f 1123/2003/651 1126/2004/652 1124/2005/649 +f 1127/2006/653 1126/2004/652 1125/2007/654 +f 1129/2008/655 1128/2009/656 1127/2006/653 +f 1131/2010/657 1130/2011/658 1129/2008/655 +f 1131/2010/657 1122/2002/650 1132/2012/659 +f 1135/2013/660 1134/2014/661 1133/2015/662 +f 1137/2016/663 1136/2017/664 1135/2018/660 +f 1137/2016/663 1140/2019/665 1138/2020/666 +f 1139/2021/667 1142/2022/668 1140/2019/665 +f 1141/2023/669 1144/2024/670 1142/2022/668 +f 1133/2015/662 1144/2024/670 1143/2025/671 +f 1146/2026/561 1153/2027/549 1145/2028/551 +f 1146/2026/561 1155/2029/569 1154/2030/560 +f 1147/2031/559 1156/2032/557 1155/2029/569 +f 1149/2033/556 1156/2032/557 1148/2034/558 +f 1149/2033/556 1158/2035/555 1157/2036/566 +f 1151/2037/553 1158/2035/555 1150/2038/554 +f 1152/2039/550 1159/2040/552 1151/2041/553 +f 1145/2028/551 1160/2042/563 1152/2039/550 +f 1153/2027/549 1162/2043/571 1161/2044/562 +f 1155/2029/569 1162/2043/571 1154/2030/560 +f 1155/2029/569 1164/2045/568 1163/2046/570 +f 1157/2036/566 1164/2045/568 1156/2032/557 +f 1158/2035/555 1165/2047/567 1157/2036/566 +f 1158/2035/555 1167/2048/564 1166/2049/565 +f 1160/2042/563 1167/2050/564 1159/2040/552 +f 1153/2027/549 1168/2051/573 1160/2042/563 +f 1161/2052/562 1170/2053/580 1169/2054/572 +f 1163/2055/570 1170/2053/580 1162/2056/571 +f 1163/2055/570 1172/2057/578 1171/2058/579 +f 1165/2059/567 1172/2057/578 1164/2060/568 +f 1166/2061/565 1173/2062/577 1165/2059/567 +f 1166/2061/565 1175/2063/575 1174/2064/576 +f 1168/2065/573 1175/2066/575 1167/2067/564 +f 1161/2052/562 1176/2068/574 1168/2065/573 +f 1170/2053/580 1177/2069/556 1169/2054/572 +f 1171/2058/579 1178/2070/586 1170/2053/580 +f 1171/2058/579 1180/2071/584 1179/2072/585 +f 1173/2062/577 1180/2071/584 1172/2057/578 +f 1174/2064/576 1181/2073/551 1173/2062/577 +f 1175/2063/575 1182/2074/583 1174/2064/576 +f 1175/2066/575 1184/2075/581 1183/2076/582 +f 1169/2054/572 1184/2075/581 1176/2068/574 +f 1178/2070/586 1185/2077/566 1177/2069/556 +f 1178/2070/586 1187/2078/589 1186/2079/590 +f 1180/2071/584 1187/2078/589 1179/2072/585 +f 1181/2073/551 1188/2080/595 1180/2071/584 +f 1182/2074/583 1189/2081/549 1181/2073/551 +f 1182/2074/583 1191/2082/587 1190/2083/588 +f 1184/2075/581 1191/2084/587 1183/2076/582 +f 1184/2075/581 1185/2077/566 1192/2085/591 +f 1186/2079/590 1193/2086/567 1185/2077/566 +f 1186/2079/590 1195/2087/597 1194/2088/598 +f 1188/2080/595 1195/2087/597 1187/2078/589 +f 1188/2080/595 1197/2089/562 1196/2090/596 +f 1190/2083/588 1197/2089/562 1189/2081/549 +f 1190/2083/588 1199/2091/593 1198/2092/594 +f 1192/2085/591 1199/2093/593 1191/2084/587 +f 1185/2077/566 1200/2094/592 1192/2085/591 +f 1194/2088/598 1201/2095/577 1193/2086/567 +f 1194/2088/598 1203/2096/604 1202/2097/602 +f 1196/2090/596 1203/2096/604 1195/2087/597 +f 1197/2089/562 1204/2098/601 1196/2090/596 +f 1198/2092/594 1205/2099/572 1197/2089/562 +f 1199/2091/593 1206/2100/600 1198/2092/594 +f 1200/2094/592 1207/2101/599 1199/2093/593 +f 1193/2086/567 1208/2102/603 1200/2094/592 +f 1202/2097/602 1145/2028/551 1201/2095/577 +f 1202/2097/602 1147/2031/559 1146/2026/561 +f 1204/2098/601 1147/2031/559 1203/2096/604 +f 1204/2098/601 1149/2033/556 1148/2034/558 +f 1206/2100/600 1149/2033/556 1205/2099/572 +f 1207/2103/599 1150/2038/554 1206/2100/600 +f 1208/2102/603 1151/2041/553 1207/2101/599 +f 1201/2095/577 1152/2039/550 1208/2102/603 +f 911/1737/469 902/1766/470 889/1738/470 +f 905/1740/471 907/1743/472 895/1741/472 +f 907/1743/472 909/1745/473 897/1744/473 +f 909/1745/473 911/1737/469 899/1739/469 +f 894/1747/474 892/2104/474 890/1748/474 +f 890/1748/474 900/2105/474 898/2106/474 +f 898/2106/474 896/1746/474 890/1748/474 +f 889/1738/470 902/1766/470 903/1749/475 +f 903/1749/475 905/1777/471 893/1751/471 +f 910/1752/476 898/2107/476 900/1753/477 +f 896/1755/478 898/2107/476 910/1752/476 +f 894/1757/479 896/1755/478 908/1756/478 +f 892/1759/480 894/2108/479 906/1760/479 +f 901/1762/481 890/2109/481 892/1759/480 +f 906/1760/482 922/2110/482 924/1763/483 +f 903/1749/484 902/1766/485 916/1764/485 +f 902/1766/485 911/1737/486 913/1767/486 +f 909/1745/487 917/1769/487 913/1767/486 +f 904/1761/483 924/1763/483 915/1768/488 +f 907/1743/489 919/1772/489 917/1769/487 +f 900/1753/477 890/2109/481 901/1762/481 +f 915/1768/470 916/1764/470 913/1767/469 +f 914/1770/469 913/1767/469 917/1769/473 +f 918/1771/473 917/1769/473 919/1772/472 +f 922/1774/471 920/1773/472 919/1772/472 +f 924/1763/475 922/2110/471 921/1776/471 +f 924/1763/475 923/1765/475 916/1764/470 +f 908/1756/490 920/1773/490 922/1774/482 +f 901/1762/488 915/1768/488 914/1770/491 +f 910/1752/492 918/1771/492 920/1773/490 +f 903/1749/484 923/1765/484 921/1776/493 +f 912/1754/491 914/1770/491 918/1771/492 +f 905/1740/493 921/1775/493 919/1772/489 +f 925/1778/494 926/1789/504 928/1779/495 +f 927/1781/496 928/2111/495 930/1782/497 +f 930/1782/497 932/1785/500 931/1784/499 +f 932/1785/500 934/1787/502 933/1786/501 +f 934/1787/502 936/2112/672 935/1788/503 +f 935/1788/503 936/2112/672 926/1789/504 +f 937/1790/505 938/1802/515 940/1791/506 +f 940/1793/506 942/1796/509 941/1794/508 +f 942/1796/509 944/1798/511 943/1797/510 +f 944/1798/511 946/2113/673 945/1799/512 +f 945/1799/512 946/2113/673 948/1800/513 +f 947/1801/514 948/1800/513 938/1802/515 +f 949/1803/516 950/1814/526 952/1804/517 +f 951/1806/518 952/2114/517 954/1807/519 +f 954/1807/519 956/1810/522 955/1809/521 +f 956/1810/522 958/1812/524 957/1811/523 +f 958/1812/524 960/2115/674 959/1813/525 +f 959/1813/525 960/2115/674 950/1814/526 +f 961/1815/527 962/1826/537 964/1816/528 +f 963/1818/529 964/2116/528 966/1819/530 +f 966/1819/530 968/1822/533 967/1821/532 +f 968/1822/533 970/1824/535 969/1823/534 +f 970/1824/535 972/2117/675 971/1825/536 +f 971/1825/536 972/2117/675 962/1826/537 +f 974/1827/538 976/2118/541 975/1828/539 +f 976/1830/541 978/2119/676 977/1831/542 +f 977/1831/542 978/2119/676 980/1833/543 +f 979/1834/544 980/1833/543 982/1835/545 +f 981/1836/546 982/1835/545 984/1837/547 +f 984/1837/547 974/1827/538 973/1829/540 +f 993/1839/549 994/1854/563 986/1840/550 +f 986/1840/550 994/1854/563 995/1842/552 +f 995/1842/552 996/1845/555 988/1844/554 +f 996/1845/555 997/1857/566 989/1846/556 +f 989/1846/556 997/1857/566 998/1847/557 +f 998/1847/557 999/1860/569 991/1849/559 +f 991/1850/559 999/1862/569 1000/1851/560 +f 1000/1851/560 993/1839/549 985/1841/551 +f 1001/1853/562 1002/2120/573 994/1854/563 +f 994/1854/563 1002/2120/573 1003/1855/564 +f 1003/1855/564 1004/1856/565 996/1845/555 +f 1004/1856/565 1005/1858/567 997/1857/566 +f 1005/1858/567 1006/1859/568 998/1847/557 +f 1006/1859/568 1007/2121/570 999/1860/569 +f 1007/1861/570 1008/1863/571 1000/1851/560 +f 1008/1863/571 1001/1853/562 993/1839/549 +f 1009/1864/572 1010/1867/574 1002/1865/573 +f 1010/1867/574 1011/1869/575 1003/1868/564 +f 1011/1869/575 1012/1871/576 1004/1870/565 +f 1012/1871/576 1013/1873/577 1005/1872/567 +f 1013/1873/577 1014/1875/578 1006/1874/568 +f 1014/1875/578 1015/1886/579 1007/1876/570 +f 1015/1877/579 1016/1880/580 1008/1878/571 +f 1016/1880/580 1009/1864/572 1001/1866/562 +f 1009/1864/572 1017/1890/556 1018/1881/581 +f 1018/1881/581 1019/1882/582 1011/1869/575 +f 1019/1882/582 1020/1883/583 1012/1871/576 +f 1020/1883/583 1021/1884/551 1013/1873/577 +f 1021/1884/551 1022/1885/584 1014/1875/578 +f 1022/1885/584 1023/1895/585 1015/1886/579 +f 1023/1887/585 1024/1888/586 1016/1880/580 +f 1024/1888/586 1017/1890/556 1009/1864/572 +f 1025/1889/566 1026/1898/591 1018/1881/581 +f 1018/1881/581 1026/1898/591 1027/1891/587 +f 1019/1882/582 1027/1891/587 1028/1892/588 +f 1020/1883/583 1028/1892/588 1029/1893/549 +f 1029/1893/549 1030/1903/595 1022/1885/584 +f 1022/1885/584 1030/1903/595 1031/1894/589 +f 1023/1887/585 1031/1906/589 1032/1896/590 +f 1032/1896/590 1025/1889/566 1017/1890/556 +f 1033/1897/567 1034/1899/592 1026/1898/591 +f 1034/1899/592 1035/1900/593 1027/1891/587 +f 1035/1900/593 1036/1901/594 1028/1892/588 +f 1036/1901/594 1037/1902/562 1029/1893/549 +f 1037/1902/562 1038/1904/596 1030/1903/595 +f 1038/1904/596 1039/1912/597 1031/1894/589 +f 1039/1905/597 1040/1907/598 1032/1896/590 +f 1040/1907/598 1033/1897/567 1025/1889/566 +f 1041/1908/577 1042/1914/603 1034/1899/592 +f 1034/1899/592 1042/1914/603 1043/1909/599 +f 1043/1909/599 1044/1910/600 1036/1901/594 +f 1044/1910/600 1045/1915/572 1037/1902/562 +f 1037/1902/562 1045/1915/572 1046/1911/601 +f 1046/1911/601 1047/1916/604 1039/1912/597 +f 1039/1905/597 1047/1917/604 1048/1913/602 +f 1048/1913/602 1041/1908/577 1033/1897/567 +f 985/1841/551 986/1840/550 1042/1914/603 +f 986/1840/550 987/1843/553 1043/1909/599 +f 987/1843/553 988/1844/554 1044/1910/600 +f 988/1844/554 989/1846/556 1045/1915/572 +f 989/1846/556 990/1848/558 1046/1911/601 +f 990/1848/558 991/1849/559 1047/1916/604 +f 991/1850/559 992/1852/561 1048/1913/602 +f 1048/1913/602 992/1852/561 985/1841/551 +f 1049/1918/470 1062/1931/470 1071/1919/469 +f 1055/1921/472 1067/1925/472 1065/1922/471 +f 1057/1924/473 1069/1926/473 1067/1925/472 +f 1059/1920/469 1071/1919/469 1069/1926/473 +f 1050/1929/605 1052/2122/605 1054/2123/605 +f 1054/2123/605 1056/2124/605 1050/1929/605 +f 1056/2124/605 1058/1927/605 1050/1929/605 +f 1051/1930/475 1063/1933/475 1062/1931/470 +f 1053/1932/471 1065/1960/471 1063/1933/475 +f 1072/1934/606 1060/1952/606 1058/1935/607 +f 1068/1937/608 1070/1936/607 1058/1935/607 +f 1068/1937/608 1056/1938/608 1054/1939/609 +f 1066/1941/609 1054/2125/609 1052/1942/610 +f 1064/1943/610 1052/1942/610 1050/1944/611 +f 1084/1946/484 1082/1958/493 1066/1941/493 +f 1083/1947/483 1076/1948/488 1062/1931/488 +f 1076/1948/488 1073/1949/491 1071/1919/491 +f 1073/1949/491 1077/2126/492 1069/1926/492 +f 1075/1950/485 1084/1946/484 1064/1943/484 +f 1069/1926/492 1077/2126/492 1079/1951/490 +f 1072/1934/606 1061/1945/611 1050/1944/611 +f 1074/1953/469 1073/1949/469 1076/1948/470 +f 1078/1954/473 1077/2126/473 1073/1949/469 +f 1079/1951/472 1077/2126/473 1078/1954/473 +f 1081/1956/471 1079/1951/472 1080/1955/472 +f 1083/1947/475 1081/1959/471 1082/1958/471 +f 1076/1948/470 1083/1947/475 1084/1946/475 +f 1066/1940/493 1082/1957/493 1080/1955/489 +f 1074/1953/486 1075/1950/485 1061/1945/485 +f 1068/1937/489 1080/1955/489 1078/1954/487 +f 1081/1959/482 1083/1947/483 1063/1933/483 +f 1078/1954/487 1074/1953/486 1072/1934/486 +f 1079/1951/490 1081/1956/482 1065/1922/482 +f 1085/1961/612 1087/2127/615 1088/1962/613 +f 1087/1964/615 1089/1968/618 1090/1965/616 +f 1091/1967/617 1092/1970/620 1090/1965/616 +f 1093/1969/619 1094/1972/622 1092/1970/620 +f 1095/1971/621 1096/1973/623 1094/1972/622 +f 1095/1971/621 1085/1961/612 1086/1963/614 +f 1097/1974/624 1099/2128/628 1100/1975/625 +f 1101/1977/627 1102/1981/630 1100/1978/625 +f 1103/1980/629 1104/1983/632 1102/1981/630 +f 1105/1982/631 1106/1985/634 1104/1983/632 +f 1105/1982/631 1107/1986/635 1108/1984/633 +f 1107/1986/635 1097/1974/624 1098/1976/626 +f 1109/1987/636 1111/2129/639 1112/1988/637 +f 1111/1990/639 1113/1994/642 1114/1991/640 +f 1115/1993/641 1116/1996/644 1114/1991/640 +f 1117/1995/643 1118/1998/646 1116/1996/644 +f 1119/1997/645 1120/1999/647 1118/1998/646 +f 1119/1997/645 1109/1987/636 1110/1989/638 +f 1121/2000/648 1123/2130/651 1124/2001/649 +f 1123/2003/651 1125/2007/654 1126/2004/652 +f 1127/2006/653 1128/2009/656 1126/2004/652 +f 1129/2008/655 1130/2011/658 1128/2009/656 +f 1131/2010/657 1132/2012/659 1130/2011/658 +f 1131/2010/657 1121/2000/648 1122/2002/650 +f 1135/2013/660 1136/2131/664 1134/2014/661 +f 1137/2016/663 1138/2020/666 1136/2017/664 +f 1137/2016/663 1139/2021/667 1140/2019/665 +f 1139/2021/667 1141/2023/669 1142/2022/668 +f 1141/2023/669 1143/2025/671 1144/2024/670 +f 1133/2015/662 1134/2014/661 1144/2024/670 +f 1146/2026/561 1154/2030/560 1153/2027/549 +f 1146/2026/561 1147/2031/559 1155/2029/569 +f 1147/2031/559 1148/2034/558 1156/2032/557 +f 1149/2033/556 1157/2036/566 1156/2032/557 +f 1149/2033/556 1150/2038/554 1158/2035/555 +f 1151/2037/553 1159/2132/552 1158/2035/555 +f 1152/2039/550 1160/2042/563 1159/2040/552 +f 1145/2028/551 1153/2027/549 1160/2042/563 +f 1153/2027/549 1154/2030/560 1162/2043/571 +f 1155/2029/569 1163/2046/570 1162/2043/571 +f 1155/2029/569 1156/2032/557 1164/2045/568 +f 1157/2036/566 1165/2047/567 1164/2045/568 +f 1158/2035/555 1166/2049/565 1165/2047/567 +f 1158/2035/555 1159/2132/552 1167/2048/564 +f 1160/2042/563 1168/2051/573 1167/2050/564 +f 1153/2027/549 1161/2044/562 1168/2051/573 +f 1161/2052/562 1162/2056/571 1170/2053/580 +f 1163/2055/570 1171/2058/579 1170/2053/580 +f 1163/2055/570 1164/2060/568 1172/2057/578 +f 1165/2059/567 1173/2062/577 1172/2057/578 +f 1166/2061/565 1174/2064/576 1173/2062/577 +f 1166/2061/565 1167/2133/564 1175/2063/575 +f 1168/2065/573 1176/2068/574 1175/2066/575 +f 1161/2052/562 1169/2054/572 1176/2068/574 +f 1170/2053/580 1178/2070/586 1177/2069/556 +f 1171/2058/579 1179/2072/585 1178/2070/586 +f 1171/2058/579 1172/2057/578 1180/2071/584 +f 1173/2062/577 1181/2073/551 1180/2071/584 +f 1174/2064/576 1182/2074/583 1181/2073/551 +f 1175/2063/575 1183/2134/582 1182/2074/583 +f 1175/2066/575 1176/2068/574 1184/2075/581 +f 1169/2054/572 1177/2069/556 1184/2075/581 +f 1178/2070/586 1186/2079/590 1185/2077/566 +f 1178/2070/586 1179/2072/585 1187/2078/589 +f 1180/2071/584 1188/2080/595 1187/2078/589 +f 1181/2073/551 1189/2081/549 1188/2080/595 +f 1182/2074/583 1190/2083/588 1189/2081/549 +f 1182/2074/583 1183/2134/582 1191/2082/587 +f 1184/2075/581 1192/2085/591 1191/2084/587 +f 1184/2075/581 1177/2069/556 1185/2077/566 +f 1186/2079/590 1194/2088/598 1193/2086/567 +f 1186/2079/590 1187/2078/589 1195/2087/597 +f 1188/2080/595 1196/2090/596 1195/2087/597 +f 1188/2080/595 1189/2081/549 1197/2089/562 +f 1190/2083/588 1198/2092/594 1197/2089/562 +f 1190/2083/588 1191/2082/587 1199/2091/593 +f 1192/2085/591 1200/2094/592 1199/2093/593 +f 1185/2077/566 1193/2086/567 1200/2094/592 +f 1194/2088/598 1202/2097/602 1201/2095/577 +f 1194/2088/598 1195/2087/597 1203/2096/604 +f 1196/2090/596 1204/2098/601 1203/2096/604 +f 1197/2089/562 1205/2099/572 1204/2098/601 +f 1198/2092/594 1206/2100/600 1205/2099/572 +f 1199/2091/593 1207/2103/599 1206/2100/600 +f 1200/2094/592 1208/2102/603 1207/2101/599 +f 1193/2086/567 1201/2095/577 1208/2102/603 +f 1202/2097/602 1146/2026/561 1145/2028/551 +f 1202/2097/602 1203/2096/604 1147/2031/559 +f 1204/2098/601 1148/2034/558 1147/2031/559 +f 1204/2098/601 1205/2099/572 1149/2033/556 +f 1206/2100/600 1150/2038/554 1149/2033/556 +f 1207/2103/599 1151/2037/553 1150/2038/554 +f 1208/2102/603 1152/2039/550 1151/2041/553 +f 1201/2095/577 1145/2028/551 1152/2039/550 +o spinny_upper +v 0.127409 2.435693 -0.570525 +v 0.311433 2.435693 -0.573891 +v 0.127409 2.450696 -0.579187 +v 0.311433 2.447781 -0.580870 +v 0.127409 2.450696 -0.596510 +v 0.311433 2.447781 -0.594827 +v 0.127409 2.435693 -0.605172 +v 0.311433 2.435693 -0.601806 +v 0.127409 2.420691 -0.596510 +v 0.311433 2.423605 -0.594827 +v 0.127409 2.420691 -0.579187 +v 0.311433 2.423605 -0.580870 +v 0.296158 2.435693 -0.570525 +v 0.244484 2.435693 -0.570525 +v 0.244484 2.450696 -0.579187 +v 0.296158 2.450696 -0.579187 +v 0.244484 2.450696 -0.596510 +v 0.296158 2.450696 -0.596510 +v 0.244484 2.435693 -0.605172 +v 0.296158 2.435693 -0.605172 +v 0.244484 2.420691 -0.596510 +v 0.296158 2.420691 -0.596510 +v 0.244484 2.420691 -0.579187 +v 0.296158 2.420691 -0.579187 +v 0.248187 2.403485 -0.569253 +v 0.292455 2.403485 -0.569253 +v 0.292455 2.435693 -0.550658 +v 0.248187 2.435693 -0.550658 +v 0.248187 2.403485 -0.606444 +v 0.292455 2.403485 -0.606444 +v 0.248187 2.435693 -0.625039 +v 0.292455 2.435693 -0.625039 +v 0.248187 2.467901 -0.606444 +v 0.292455 2.467901 -0.606444 +v 0.248187 2.467901 -0.569253 +v 0.292455 2.467901 -0.569253 +v 0.264576 2.450435 -0.571215 +v 0.375908 2.663330 -0.587129 +v 0.252583 2.455839 -0.579309 +v 0.363915 2.668733 -0.595223 +v 0.252527 2.454715 -0.594713 +v 0.363860 2.667610 -0.610627 +v 0.264465 2.448188 -0.602023 +v 0.375797 2.661082 -0.617937 +v 0.276457 2.442784 -0.593929 +v 0.387789 2.655678 -0.609843 +v 0.276513 2.443907 -0.578525 +v 0.387845 2.656802 -0.594439 +v 0.265024 2.453681 -0.594850 +v 0.375908 2.504334 -0.806877 +v 0.253032 2.447653 -0.602490 +v 0.363915 2.498306 -0.814518 +v 0.252976 2.432656 -0.606182 +v 0.363859 2.483309 -0.818209 +v 0.264913 2.423687 -0.602232 +v 0.375797 2.474340 -0.814260 +v 0.276906 2.429715 -0.594592 +v 0.387789 2.480368 -0.806619 +v 0.276962 2.444712 -0.590900 +v 0.387845 2.495365 -0.802928 +v 0.264576 2.432207 -0.605240 +v 0.375908 2.246909 -0.719820 +v 0.252583 2.423077 -0.601869 +v 0.363915 2.237780 -0.716448 +v 0.252527 2.414932 -0.588746 +v 0.363859 2.229635 -0.703326 +v 0.264465 2.415917 -0.578996 +v 0.375797 2.230619 -0.693575 +v 0.276457 2.425046 -0.582368 +v 0.387789 2.239748 -0.696947 +v 0.276513 2.433191 -0.595490 +v 0.387845 2.247894 -0.710069 +v 0.264576 2.415689 -0.588028 +v 0.375908 2.252807 -0.450017 +v 0.252583 2.416074 -0.578304 +v 0.363915 2.253193 -0.440293 +v 0.252527 2.426037 -0.566502 +v 0.363860 2.263156 -0.428491 +v 0.264465 2.435615 -0.564425 +v 0.375797 2.272733 -0.426414 +v 0.276457 2.435229 -0.574150 +v 0.387789 2.272347 -0.436139 +v 0.276513 2.425266 -0.585951 +v 0.387845 2.262384 -0.447940 +v 0.269238 2.426954 -0.566999 +v 0.375908 2.512899 -0.361717 +v 0.257245 2.436322 -0.564361 +v 0.363915 2.522266 -0.359079 +v 0.257189 2.450624 -0.570190 +v 0.363860 2.536569 -0.364907 +v 0.269127 2.455559 -0.578657 +v 0.375797 2.541504 -0.373374 +v 0.281119 2.446192 -0.581295 +v 0.387789 2.532136 -0.376013 +v 0.281175 2.431889 -0.575466 +v 0.387845 2.517833 -0.370184 +v 0.380466 2.692867 -0.481324 +v 0.398360 2.686019 -0.484160 +v 0.405772 2.669487 -0.491008 +v 0.398360 2.652956 -0.497855 +v 0.380466 2.646108 -0.500692 +v 0.362572 2.652956 -0.497855 +v 0.355160 2.669487 -0.491008 +v 0.362572 2.686019 -0.484160 +v 0.380466 2.542218 -0.330675 +v 0.398360 2.539381 -0.337523 +v 0.405772 2.532534 -0.354054 +v 0.398360 2.525686 -0.370586 +v 0.380466 2.522850 -0.377434 +v 0.362572 2.525686 -0.370586 +v 0.355160 2.532534 -0.354054 +v 0.362572 2.539381 -0.337523 +v 0.380466 2.329168 -0.330675 +v 0.398360 2.332005 -0.337523 +v 0.405772 2.338852 -0.354054 +v 0.398360 2.345700 -0.370586 +v 0.380466 2.348536 -0.377434 +v 0.362572 2.345700 -0.370586 +v 0.355160 2.338852 -0.354054 +v 0.362572 2.332005 -0.337523 +v 0.380466 2.178519 -0.481324 +v 0.398360 2.185367 -0.484160 +v 0.405772 2.201899 -0.491008 +v 0.398360 2.218431 -0.497856 +v 0.380466 2.225278 -0.500692 +v 0.362572 2.218431 -0.497856 +v 0.355160 2.201899 -0.491008 +v 0.362572 2.185367 -0.484160 +v 0.380466 2.178519 -0.694373 +v 0.398360 2.185367 -0.691537 +v 0.405772 2.201899 -0.684689 +v 0.398360 2.218431 -0.677842 +v 0.380466 2.225278 -0.675005 +v 0.362572 2.218431 -0.677842 +v 0.355160 2.201899 -0.684689 +v 0.362572 2.185367 -0.691537 +v 0.380466 2.329168 -0.845022 +v 0.398360 2.332005 -0.838174 +v 0.405772 2.338852 -0.821643 +v 0.398360 2.345700 -0.805111 +v 0.380466 2.348536 -0.798263 +v 0.362572 2.345700 -0.805111 +v 0.355160 2.338852 -0.821643 +v 0.362572 2.332005 -0.838174 +v 0.380466 2.542218 -0.845022 +v 0.398360 2.539382 -0.838174 +v 0.405772 2.532534 -0.821643 +v 0.398360 2.525686 -0.805111 +v 0.380466 2.522850 -0.798263 +v 0.362572 2.525686 -0.805111 +v 0.355160 2.532534 -0.821643 +v 0.362572 2.539382 -0.838174 +v 0.380466 2.692867 -0.694373 +v 0.398360 2.686019 -0.691537 +v 0.405772 2.669487 -0.684689 +v 0.398360 2.652956 -0.677842 +v 0.380466 2.646108 -0.675005 +v 0.362572 2.652956 -0.677842 +v 0.355160 2.669487 -0.684689 +v 0.362572 2.686019 -0.691537 +v -0.044410 2.435693 -0.570525 +v -0.228434 2.435693 -0.573891 +v -0.044410 2.450695 -0.579187 +v -0.228434 2.447781 -0.580870 +v -0.044410 2.450695 -0.596510 +v -0.228434 2.447781 -0.594827 +v -0.044410 2.435693 -0.605172 +v -0.228434 2.435693 -0.601806 +v -0.044410 2.420690 -0.596510 +v -0.228434 2.423605 -0.594827 +v -0.044410 2.420690 -0.579187 +v -0.228434 2.423605 -0.580870 +v -0.213159 2.435693 -0.570525 +v -0.161486 2.435693 -0.570525 +v -0.161486 2.450695 -0.579187 +v -0.213159 2.450695 -0.579187 +v -0.161486 2.450695 -0.596510 +v -0.213159 2.450695 -0.596510 +v -0.161486 2.435693 -0.605172 +v -0.213159 2.435693 -0.605172 +v -0.161486 2.420690 -0.596510 +v -0.213159 2.420690 -0.596510 +v -0.161486 2.420690 -0.579187 +v -0.213159 2.420690 -0.579187 +v -0.165188 2.403485 -0.569253 +v -0.209457 2.403485 -0.569253 +v -0.209457 2.435693 -0.550658 +v -0.165188 2.435693 -0.550658 +v -0.165188 2.403485 -0.606444 +v -0.209457 2.403485 -0.606444 +v -0.165188 2.435693 -0.625039 +v -0.209457 2.435693 -0.625039 +v -0.165188 2.467901 -0.606444 +v -0.209457 2.467901 -0.606444 +v -0.165188 2.467901 -0.569253 +v -0.209457 2.467901 -0.569253 +v -0.181577 2.450435 -0.571215 +v -0.292909 2.663329 -0.587129 +v -0.169584 2.455838 -0.579309 +v -0.280916 2.668733 -0.595223 +v -0.169529 2.454715 -0.594713 +v -0.280861 2.667610 -0.610627 +v -0.181466 2.448187 -0.602023 +v -0.292798 2.661082 -0.617937 +v -0.193459 2.442784 -0.593929 +v -0.304791 2.655678 -0.609843 +v -0.193514 2.443907 -0.578525 +v -0.304846 2.656802 -0.594439 +v -0.182026 2.453681 -0.594850 +v -0.292909 2.504334 -0.806877 +v -0.170033 2.447653 -0.602490 +v -0.280916 2.498306 -0.814518 +v -0.169977 2.432656 -0.606182 +v -0.280861 2.483309 -0.818209 +v -0.181915 2.423687 -0.602232 +v -0.292798 2.474340 -0.814260 +v -0.193907 2.429715 -0.594592 +v -0.304791 2.480368 -0.806620 +v -0.193963 2.444712 -0.590901 +v -0.304846 2.495365 -0.802928 +v -0.181577 2.432206 -0.605240 +v -0.292909 2.246909 -0.719820 +v -0.169584 2.423077 -0.601869 +v -0.280916 2.237780 -0.716448 +v -0.169529 2.414932 -0.588746 +v -0.280861 2.229635 -0.703326 +v -0.181466 2.415916 -0.578996 +v -0.292798 2.230619 -0.693575 +v -0.193459 2.425046 -0.582368 +v -0.304791 2.239748 -0.696947 +v -0.193514 2.433191 -0.595490 +v -0.304846 2.247893 -0.710069 +v -0.181577 2.415688 -0.588028 +v -0.292909 2.252807 -0.450017 +v -0.169584 2.416074 -0.578304 +v -0.280916 2.253192 -0.440293 +v -0.169529 2.426037 -0.566502 +v -0.280861 2.263155 -0.428491 +v -0.181466 2.435614 -0.564425 +v -0.292798 2.272733 -0.426414 +v -0.193459 2.435229 -0.574150 +v -0.304791 2.272347 -0.436139 +v -0.193514 2.425266 -0.585951 +v -0.304846 2.262384 -0.447940 +v -0.186239 2.426954 -0.566999 +v -0.292909 2.512898 -0.361717 +v -0.174246 2.436321 -0.564361 +v -0.280916 2.522266 -0.359079 +v -0.174191 2.450624 -0.570190 +v -0.280861 2.536569 -0.364907 +v -0.186128 2.455559 -0.578657 +v -0.292798 2.541503 -0.373374 +v -0.198121 2.446191 -0.581295 +v -0.304791 2.532136 -0.376013 +v -0.198176 2.431889 -0.575466 +v -0.304846 2.517833 -0.370184 +v -0.297467 2.692866 -0.481324 +v -0.315361 2.686019 -0.484160 +v -0.322773 2.669487 -0.491008 +v -0.315361 2.652955 -0.497855 +v -0.297467 2.646108 -0.500692 +v -0.279574 2.652955 -0.497855 +v -0.272162 2.669487 -0.491008 +v -0.279574 2.686019 -0.484160 +v -0.297467 2.542217 -0.330675 +v -0.315361 2.539381 -0.337523 +v -0.322773 2.532533 -0.354054 +v -0.315361 2.525686 -0.370586 +v -0.297467 2.522849 -0.377434 +v -0.279574 2.525686 -0.370586 +v -0.272162 2.532533 -0.354054 +v -0.279574 2.539381 -0.337523 +v -0.297467 2.329168 -0.330675 +v -0.315361 2.332004 -0.337523 +v -0.322773 2.338852 -0.354054 +v -0.315361 2.345700 -0.370586 +v -0.297467 2.348536 -0.377434 +v -0.279574 2.345700 -0.370586 +v -0.272162 2.338852 -0.354054 +v -0.279574 2.332004 -0.337523 +v -0.297467 2.178519 -0.481324 +v -0.315361 2.185367 -0.484160 +v -0.322773 2.201899 -0.491008 +v -0.315361 2.218430 -0.497856 +v -0.297467 2.225278 -0.500692 +v -0.279574 2.218430 -0.497856 +v -0.272162 2.201899 -0.491008 +v -0.279574 2.185367 -0.484160 +v -0.297467 2.178519 -0.694373 +v -0.315361 2.185367 -0.691537 +v -0.322773 2.201899 -0.684689 +v -0.315361 2.218430 -0.677842 +v -0.297467 2.225278 -0.675005 +v -0.279574 2.218430 -0.677842 +v -0.272162 2.201899 -0.684689 +v -0.279574 2.185367 -0.691537 +v -0.297467 2.329168 -0.845022 +v -0.315361 2.332004 -0.838175 +v -0.322773 2.338852 -0.821643 +v -0.315361 2.345700 -0.805111 +v -0.297467 2.348536 -0.798263 +v -0.279574 2.345700 -0.805111 +v -0.272162 2.338852 -0.821643 +v -0.279574 2.332004 -0.838175 +v -0.297467 2.542218 -0.845022 +v -0.315361 2.539381 -0.838174 +v -0.322773 2.532534 -0.821643 +v -0.315361 2.525686 -0.805111 +v -0.297467 2.522850 -0.798263 +v -0.279574 2.525686 -0.805111 +v -0.272162 2.532534 -0.821643 +v -0.279574 2.539381 -0.838174 +v -0.297467 2.692866 -0.694373 +v -0.315361 2.686019 -0.691537 +v -0.322773 2.669487 -0.684689 +v -0.315361 2.652955 -0.677842 +v -0.297467 2.646107 -0.675005 +v -0.279574 2.652955 -0.677842 +v -0.272162 2.669487 -0.684689 +v -0.279574 2.686019 -0.691537 +vt 0.667698 0.362762 +vt 0.640199 0.358261 +vt 0.667737 0.359326 +vt 0.640924 0.375165 +vt 0.667891 0.369730 +vt 0.668100 0.373751 +vt 0.640202 0.370763 +vt 0.667750 0.366229 +vt 0.640072 0.366415 +vt 0.797021 0.387656 +vt 0.799345 0.386315 +vt 0.801670 0.390340 +vt 0.640507 0.354283 +vt 0.667871 0.355916 +vt 0.668100 0.352523 +vt 0.625761 0.363844 +vt 0.629027 0.361047 +vt 0.628740 0.364363 +vt 0.624989 0.366272 +vt 0.627746 0.367605 +vt 0.623515 0.368301 +vt 0.625501 0.370236 +vt 0.624459 0.355430 +vt 0.625663 0.350017 +vt 0.627780 0.353840 +vt 0.625518 0.358363 +vt 0.628748 0.357581 +vt 0.631848 0.353216 +vt 0.636858 0.357395 +vt 0.637511 0.352990 +vt 0.640110 0.362279 +vt 0.636532 0.361474 +vt 0.632177 0.357754 +vt 0.636165 0.365588 +vt 0.632064 0.361641 +vt 0.631496 0.365400 +vt 0.635666 0.370261 +vt 0.630110 0.369320 +vt 0.626558 0.373815 +vt 0.635872 0.378285 +vt 0.639755 0.347383 +vt 0.641864 0.350415 +vt 0.272875 0.980430 +vt 0.275844 0.934182 +vt 0.275844 0.980475 +vt 0.258029 0.980475 +vt 0.260998 0.934183 +vt 0.260998 0.980475 +vt 0.263967 0.980430 +vt 0.263967 0.934138 +vt 0.266937 0.980386 +vt 0.266937 0.934093 +vt 0.269906 0.980386 +vt 0.272875 0.934138 +vt 0.069661 0.912352 +vt 0.022650 0.909383 +vt 0.069673 0.909383 +vt 0.022650 0.927199 +vt 0.069660 0.924230 +vt 0.069673 0.927199 +vt 0.022636 0.924230 +vt 0.069634 0.921260 +vt 0.022611 0.921260 +vt 0.069622 0.918291 +vt 0.022613 0.915321 +vt 0.069636 0.915321 +vt 0.022638 0.912352 +vt 0.510857 0.889009 +vt 0.507887 0.936025 +vt 0.507887 0.888986 +vt 0.525704 0.888986 +vt 0.522734 0.936025 +vt 0.522734 0.888985 +vt 0.519765 0.889008 +vt 0.519765 0.936048 +vt 0.516795 0.889032 +vt 0.516795 0.936071 +vt 0.513826 0.889032 +vt 0.510856 0.936049 +vt 0.235523 0.934138 +vt 0.232554 0.980386 +vt 0.232554 0.934093 +vt 0.250369 0.934093 +vt 0.247400 0.980386 +vt 0.247400 0.934093 +vt 0.244431 0.934138 +vt 0.244431 0.980430 +vt 0.241462 0.934182 +vt 0.241462 0.980475 +vt 0.238492 0.934183 +vt 0.235523 0.980431 +vt 0.653181 0.902823 +vt 0.650212 0.855426 +vt 0.653181 0.855373 +vt 0.668027 0.902875 +vt 0.665058 0.855446 +vt 0.668027 0.855426 +vt 0.662089 0.902864 +vt 0.662089 0.855415 +vt 0.659120 0.902812 +vt 0.659120 0.855362 +vt 0.656150 0.902791 +vt 0.656150 0.855341 +vt 0.025683 0.826823 +vt 0.021884 0.789889 +vt 0.025544 0.789862 +vt 0.018782 0.826867 +vt 0.018400 0.789856 +vt 0.014878 0.789795 +vt 0.015279 0.826832 +vt 0.011142 0.789754 +vt 0.011415 0.826831 +vt 0.007404 0.789713 +vt 0.007506 0.826837 +vt 0.003876 0.789648 +vt 0.032732 0.826779 +vt 0.029201 0.789834 +vt 0.032679 0.789870 +vt 0.029242 0.826771 +vt 0.025720 0.865955 +vt 0.022157 0.826877 +vt 0.021801 0.865308 +vt 0.015085 0.862608 +vt 0.011727 0.862107 +vt 0.008295 0.862683 +vt 0.003872 0.826817 +vt 0.029722 0.865385 +vt 0.025994 0.565415 +vt 0.022202 0.604746 +vt 0.021967 0.566009 +vt 0.018260 0.567466 +vt 0.018693 0.604681 +vt 0.014786 0.568861 +vt 0.015069 0.604588 +vt 0.011355 0.569425 +vt 0.011185 0.604506 +vt 0.008031 0.568914 +vt 0.007334 0.604417 +vt 0.004839 0.567623 +vt 0.032684 0.604841 +vt 0.029929 0.566050 +vt 0.033402 0.567439 +vt 0.029299 0.604771 +vt 0.025502 0.641726 +vt 0.025772 0.604759 +vt 0.021844 0.641748 +vt 0.018359 0.641706 +vt 0.014837 0.641636 +vt 0.011099 0.641592 +vt 0.007360 0.641550 +vt 0.003830 0.604306 +vt 0.032636 0.641745 +vt 0.029158 0.641705 +vt 0.021831 0.678781 +vt 0.018346 0.678743 +vt 0.014827 0.678677 +vt 0.011097 0.678636 +vt 0.007366 0.678596 +vt 0.003834 0.641484 +vt 0.032643 0.678773 +vt 0.029159 0.678735 +vt 0.025505 0.715793 +vt 0.025495 0.678758 +vt 0.021841 0.715817 +vt 0.014836 0.715714 +vt 0.011107 0.715673 +vt 0.003857 0.715567 +vt 0.003846 0.678531 +vt 0.029169 0.715770 +vt 0.025517 0.752829 +vt 0.021853 0.752853 +vt 0.018355 0.715779 +vt 0.018367 0.752815 +vt 0.014848 0.752751 +vt 0.011118 0.752710 +vt 0.007376 0.715632 +vt 0.007387 0.752669 +vt 0.032664 0.752844 +vt 0.032653 0.715808 +vt 0.029180 0.752806 +vt 0.003867 0.752604 +vt 0.774087 0.364623 +vt 0.746460 0.361670 +vt 0.774047 0.361187 +vt 0.774240 0.354219 +vt 0.747273 0.348783 +vt 0.774450 0.350197 +vt 0.774100 0.357719 +vt 0.746551 0.353186 +vt 0.746422 0.357533 +vt 0.789362 0.387656 +vt 0.789362 0.390340 +vt 0.787038 0.391682 +vt 0.774220 0.368033 +vt 0.746549 0.365687 +vt 0.774450 0.371425 +vt 0.746857 0.369665 +vt 0.735376 0.362901 +vt 0.732111 0.360105 +vt 0.735089 0.359585 +vt 0.731339 0.357676 +vt 0.734095 0.356343 +vt 0.729864 0.355648 +vt 0.731851 0.353713 +vt 0.732013 0.373931 +vt 0.730809 0.368519 +vt 0.734129 0.370109 +vt 0.731867 0.365585 +vt 0.735098 0.366367 +vt 0.738198 0.370733 +vt 0.743861 0.370958 +vt 0.743208 0.366554 +vt 0.742881 0.362474 +vt 0.738526 0.366194 +vt 0.742016 0.353688 +vt 0.732274 0.362764 +vt 0.738414 0.362307 +vt 0.737846 0.358548 +vt 0.736460 0.354629 +vt 0.742222 0.345664 +vt 0.732908 0.350133 +vt 0.735961 0.378285 +vt 0.746104 0.376566 +vt 0.748214 0.373533 +vt 0.811899 0.970339 +vt 0.808930 0.924091 +vt 0.811899 0.924046 +vt 0.826746 0.970383 +vt 0.823776 0.924091 +vt 0.826746 0.924091 +vt 0.820807 0.970339 +vt 0.823776 0.970384 +vt 0.817838 0.970295 +vt 0.820807 0.924047 +vt 0.814869 0.970294 +vt 0.817838 0.924002 +vt 0.814869 0.924002 +vt 0.812160 0.913373 +vt 0.765149 0.916343 +vt 0.765137 0.913373 +vt 0.812159 0.901496 +vt 0.765149 0.898526 +vt 0.812172 0.898526 +vt 0.812134 0.904465 +vt 0.765136 0.901496 +vt 0.812122 0.907434 +vt 0.765111 0.904465 +vt 0.765112 0.910404 +vt 0.765099 0.907434 +vt 0.812135 0.910404 +vt 0.485381 0.936048 +vt 0.482411 0.889032 +vt 0.485381 0.889008 +vt 0.500228 0.936071 +vt 0.497258 0.889032 +vt 0.500228 0.889032 +vt 0.494289 0.936049 +vt 0.497258 0.936072 +vt 0.491320 0.936025 +vt 0.494289 0.889009 +vt 0.488350 0.936025 +vt 0.491320 0.888986 +vt 0.488350 0.888985 +vt 0.965791 0.003874 +vt 0.968760 0.050123 +vt 0.965791 0.050167 +vt 0.950945 0.003830 +vt 0.953915 0.050122 +vt 0.950945 0.050123 +vt 0.956884 0.003874 +vt 0.953914 0.003830 +vt 0.959853 0.003919 +vt 0.956884 0.050167 +vt 0.962822 0.003919 +vt 0.959853 0.050211 +vt 0.962822 0.050212 +vt 0.876485 0.910228 +vt 0.879454 0.862831 +vt 0.879454 0.910281 +vt 0.891331 0.910207 +vt 0.894301 0.862779 +vt 0.894301 0.910228 +vt 0.888362 0.862790 +vt 0.891331 0.862758 +vt 0.888362 0.910239 +vt 0.885393 0.862842 +vt 0.885393 0.910291 +vt 0.882424 0.862863 +vt 0.882424 0.910312 +vt 0.062775 0.641509 +vt 0.059389 0.604493 +vt 0.062914 0.604547 +vt 0.055631 0.641514 +vt 0.059115 0.641481 +vt 0.052110 0.641576 +vt 0.056014 0.604503 +vt 0.048373 0.641616 +vt 0.052511 0.604539 +vt 0.044635 0.641657 +vt 0.048647 0.604539 +vt 0.041107 0.641723 +vt 0.044738 0.604533 +vt 0.066432 0.641536 +vt 0.069963 0.604591 +vt 0.069910 0.641500 +vt 0.066474 0.604599 +vt 0.062951 0.565415 +vt 0.059033 0.566062 +vt 0.055567 0.567465 +vt 0.052316 0.568762 +vt 0.048959 0.569263 +vt 0.042074 0.567279 +vt 0.045526 0.568687 +vt 0.070633 0.567421 +vt 0.066954 0.565985 +vt 0.063226 0.865955 +vt 0.059433 0.826625 +vt 0.063004 0.826611 +vt 0.055492 0.863905 +vt 0.059198 0.865361 +vt 0.052300 0.826783 +vt 0.055924 0.826690 +vt 0.048586 0.861945 +vt 0.052017 0.862509 +vt 0.045263 0.862457 +vt 0.048416 0.826865 +vt 0.041061 0.827064 +vt 0.044565 0.826953 +vt 0.067160 0.865320 +vt 0.069915 0.826529 +vt 0.070633 0.863931 +vt 0.066530 0.826599 +vt 0.059076 0.789622 +vt 0.062734 0.789644 +vt 0.052068 0.789734 +vt 0.055591 0.789664 +vt 0.048331 0.789778 +vt 0.044592 0.789821 +vt 0.069867 0.789625 +vt 0.066389 0.789665 +vt 0.062727 0.752612 +vt 0.055577 0.752628 +vt 0.059063 0.752589 +vt 0.052058 0.752693 +vt 0.048328 0.752734 +vt 0.041077 0.752840 +vt 0.044597 0.752774 +vt 0.069875 0.752597 +vt 0.066390 0.752635 +vt 0.062736 0.715577 +vt 0.055587 0.715592 +vt 0.059072 0.715554 +vt 0.048338 0.715697 +vt 0.052068 0.715657 +vt 0.041088 0.715803 +vt 0.044608 0.715738 +vt 0.069885 0.715562 +vt 0.066400 0.715600 +vt 0.062748 0.678541 +vt 0.059084 0.678517 +vt 0.052079 0.678620 +vt 0.055599 0.678555 +vt 0.048349 0.678660 +vt 0.044619 0.678701 +vt 0.066411 0.678564 +vt 0.069896 0.678526 +vt 0.041098 0.678766 +vt 0.801670 0.387656 +vt 0.799345 0.391682 +vt 0.797021 0.390340 +vt 0.625924 0.361184 +vt 0.622584 0.352463 +vt 0.629612 0.345664 +vt 0.258029 0.934182 +vt 0.269906 0.934093 +vt 0.022599 0.918291 +vt 0.525704 0.936025 +vt 0.513826 0.936072 +vt 0.250369 0.980386 +vt 0.238492 0.980475 +vt 0.650212 0.902875 +vt 0.665058 0.902896 +vt 0.018335 0.863905 +vt 0.004842 0.864092 +vt 0.033402 0.863949 +vt 0.784714 0.390340 +vt 0.784714 0.387656 +vt 0.787038 0.386315 +vt 0.728934 0.371485 +vt 0.742515 0.358360 +vt 0.808930 0.970383 +vt 0.812172 0.916343 +vt 0.482411 0.936071 +vt 0.968760 0.003830 +vt 0.876485 0.862779 +vt 0.041103 0.604553 +vt 0.042071 0.863747 +vt 0.041066 0.789886 +vn 0.0000 -0.8660 0.5000 +vn 0.0000 -0.0000 1.0000 +vn 0.0000 0.8660 -0.5000 +vn 0.0000 -0.0000 -1.0000 +vn 0.0000 -0.8660 -0.5000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.8660 0.5000 +vn 0.2152 -0.8457 -0.4883 +vn 0.2152 -0.8457 0.4883 +vn 0.2152 0.0000 -0.9766 +vn 0.2152 0.8457 -0.4883 +vn 0.2152 0.8457 0.4883 +vn 0.2152 -0.0000 0.9766 +vn 0.9831 0.1587 -0.0916 +vn 0.9831 0.1587 0.0916 +vn -0.9831 0.1587 0.0916 +vn -0.9831 0.0000 0.1832 +vn -0.9831 -0.1587 0.0916 +vn -0.9831 -0.1587 -0.0916 +vn 0.9831 -0.0000 0.1832 +vn -0.9831 -0.0000 -0.1832 +vn 0.9831 0.0000 -0.1832 +vn 0.9831 -0.1587 0.0916 +vn 0.9831 -0.1587 -0.0916 +vn -0.9831 0.1587 -0.0916 +vn -0.0013 0.0752 0.9972 +vn -0.7649 0.4355 0.4747 +vn -0.7674 0.4364 0.4698 +vn -0.7685 0.3625 -0.5273 +vn -0.7709 0.3641 -0.5227 +vn -0.0085 -0.0701 -0.9975 +vn 0.0013 -0.0752 -0.9972 +vn 0.7649 -0.4355 -0.4747 +vn 0.7674 -0.4364 -0.4698 +vn 0.7685 -0.3625 0.5273 +vn 0.0084 0.0701 0.9975 +vn 0.0036 0.9722 0.2341 +vn -0.7691 0.5824 -0.2631 +vn -0.7690 0.5826 -0.2630 +vn -0.7757 -0.3873 -0.4982 +vn -0.7736 -0.3916 -0.4981 +vn -0.0076 -0.9717 -0.2361 +vn -0.0036 -0.9722 -0.2341 +vn 0.7691 -0.5824 0.2631 +vn 0.7757 0.3873 0.4982 +vn 0.7736 0.3916 0.4981 +vn 0.0076 0.9717 0.2361 +vn 0.0010 0.5263 -0.8503 +vn -0.7687 -0.0687 -0.6359 +vn -0.7701 -0.0706 -0.6341 +vn -0.7723 -0.5975 0.2158 +vn -0.7736 -0.5967 0.2134 +vn -0.0061 -0.5286 0.8489 +vn -0.0010 -0.5264 0.8503 +vn 0.7687 0.0687 0.6359 +vn 0.7701 0.0706 0.6341 +vn 0.7723 0.5975 -0.2158 +vn 0.0061 0.5286 -0.8489 +vn -0.0013 -0.6470 -0.7625 +vn -0.7649 -0.6313 -0.1281 +vn -0.7674 -0.6292 -0.1236 +vn -0.7685 0.0167 0.6397 +vn -0.7709 0.0127 0.6369 +vn -0.0084 0.6431 0.7658 +vn 0.0013 0.6470 0.7625 +vn 0.7649 0.6313 0.1281 +vn 0.7674 0.6292 0.1236 +vn 0.7685 -0.0167 -0.6397 +vn 0.0084 -0.6431 -0.7658 +vn 0.0020 -0.9228 0.3853 +vn -0.7755 -0.3271 0.5400 +vn 0.0114 -0.9245 0.3811 +vn -0.7797 -0.3191 0.5387 +vn -0.7840 0.6009 0.1558 +vn -0.0114 0.9245 -0.3811 +vn -0.0020 0.9228 -0.3853 +vn 0.7755 0.3271 -0.5399 +vn 0.7797 0.3191 -0.5388 +vn 0.7840 -0.6009 -0.1558 +vn 0.7846 -0.6000 -0.1565 +vn -0.0000 0.3827 0.9239 +vn 0.6630 0.6916 0.2865 +vn -0.0000 0.9239 0.3827 +vn 0.9955 0.0363 0.0876 +vn 0.9955 0.0876 0.0363 +vn 0.7574 -0.6033 -0.2499 +vn 0.7574 -0.2499 -0.6033 +vn 0.0000 -0.9239 -0.3827 +vn -0.0000 -0.3827 -0.9239 +vn -0.7574 -0.6033 -0.2499 +vn -0.7574 -0.2499 -0.6033 +vn -0.9955 0.0876 0.0363 +vn -0.9955 0.0363 0.0876 +vn -0.6630 0.6916 0.2865 +vn -0.6630 0.2865 0.6916 +vn 0.0000 -0.3827 0.9239 +vn 0.6630 0.2865 0.6916 +vn 0.6630 -0.2865 0.6916 +vn 0.7574 0.2499 -0.6033 +vn 0.0000 0.3827 -0.9239 +vn -0.7574 0.2499 -0.6033 +vn -0.6630 -0.2865 0.6916 +vn 0.6630 -0.6916 0.2865 +vn 0.9955 -0.0363 0.0876 +vn 0.9955 -0.0876 0.0363 +vn 0.7574 0.6033 -0.2499 +vn 0.0000 0.9239 -0.3827 +vn -0.7574 0.6033 -0.2499 +vn -0.9955 -0.0363 0.0876 +vn -0.9955 -0.0876 0.0363 +vn -0.6630 -0.6916 0.2865 +vn 0.0000 -0.9239 0.3827 +vn 0.6630 -0.6916 -0.2865 +vn 0.9955 -0.0876 -0.0363 +vn 0.7574 0.6033 0.2499 +vn -0.7574 0.6033 0.2499 +vn -0.9955 -0.0876 -0.0363 +vn -0.6630 -0.6916 -0.2865 +vn 0.6630 -0.2865 -0.6916 +vn 0.9955 -0.0363 -0.0876 +vn 0.7574 0.2499 0.6033 +vn -0.7574 0.2499 0.6033 +vn -0.9955 -0.0363 -0.0876 +vn -0.6630 -0.2865 -0.6916 +vn 0.6630 0.2865 -0.6916 +vn 0.7574 -0.2499 0.6033 +vn -0.9955 0.0363 -0.0876 +vn -0.6630 0.2865 -0.6916 +vn 0.6630 0.6916 -0.2865 +vn 0.9955 0.0363 -0.0876 +vn 0.9955 0.0876 -0.0363 +vn 0.7574 -0.6033 0.2499 +vn -0.7574 -0.2499 0.6033 +vn -0.7574 -0.6033 0.2499 +vn -0.9955 0.0876 -0.0363 +vn -0.6630 0.6916 -0.2865 +vn -1.0000 -0.0000 0.0000 +vn -0.2152 -0.8457 0.4883 +vn -0.2152 -0.8457 -0.4883 +vn -0.2152 -0.0000 -0.9766 +vn -0.2152 0.8457 -0.4883 +vn -0.2152 0.8457 0.4883 +vn -0.2152 0.0000 0.9766 +vn 0.0013 0.0752 0.9972 +vn 0.7649 0.4355 0.4747 +vn -0.0085 0.0701 0.9975 +vn 0.7674 0.4364 0.4698 +vn 0.7685 0.3624 -0.5273 +vn 0.0084 -0.0701 -0.9975 +vn 0.7709 0.3641 -0.5227 +vn -0.7649 -0.4355 -0.4747 +vn -0.0013 -0.0752 -0.9972 +vn -0.7685 -0.3625 0.5273 +vn -0.7674 -0.4364 -0.4698 +vn -0.7709 -0.3641 0.5227 +vn -0.0036 0.9722 0.2341 +vn 0.7691 0.5824 -0.2631 +vn -0.0076 0.9717 0.2361 +vn 0.7757 -0.3873 -0.4982 +vn 0.7690 0.5826 -0.2630 +vn 0.0076 -0.9717 -0.2361 +vn 0.7736 -0.3916 -0.4981 +vn -0.7691 -0.5824 0.2631 +vn 0.0035 -0.9722 -0.2341 +vn -0.7758 0.3873 0.4982 +vn -0.7691 -0.5826 0.2630 +vn -0.7736 0.3916 0.4981 +vn -0.0010 0.5264 -0.8503 +vn 0.7687 -0.0687 -0.6359 +vn -0.0061 0.5286 -0.8489 +vn 0.7701 -0.0706 -0.6341 +vn 0.7723 -0.5975 0.2158 +vn 0.0061 -0.5286 0.8489 +vn 0.7736 -0.5967 0.2134 +vn -0.7687 0.0687 0.6359 +vn 0.0010 -0.5263 0.8503 +vn -0.7723 0.5975 -0.2158 +vn -0.7701 0.0706 0.6341 +vn -0.7736 0.5967 -0.2134 +vn 0.0013 -0.6470 -0.7625 +vn 0.7649 -0.6313 -0.1281 +vn -0.0085 -0.6431 -0.7658 +vn 0.7674 -0.6292 -0.1236 +vn 0.7685 0.0167 0.6397 +vn 0.0085 0.6431 0.7658 +vn 0.7709 0.0127 0.6369 +vn -0.7649 0.6313 0.1281 +vn -0.0013 0.6470 0.7625 +vn -0.7685 -0.0167 -0.6397 +vn -0.7674 0.6292 0.1236 +vn -0.7709 -0.0127 -0.6369 +vn 0.7755 -0.3271 0.5399 +vn -0.0020 -0.9228 0.3853 +vn -0.0114 -0.9245 0.3811 +vn 0.7840 0.6009 0.1558 +vn 0.7797 -0.3191 0.5388 +vn 0.0114 0.9245 -0.3811 +vn 0.7846 0.6000 0.1565 +vn 0.0020 0.9228 -0.3853 +vn -0.7755 0.3271 -0.5399 +vn -0.7797 0.3191 -0.5387 +vn -0.7840 -0.6009 -0.1558 +vn -0.7846 -0.6000 -0.1565 +vn 0.7709 -0.3641 0.5227 +vn 0.7690 -0.5826 0.2630 +vn 0.7736 0.5967 -0.2134 +vn 0.7709 -0.0127 -0.6369 +vn -0.7846 0.6000 0.1565 +s 1 +f 1219/2135/677 1222/2136/678 1209/2137/678 +f 1225/2138/679 1215/2139/680 1213/2140/679 +f 1227/2141/680 1217/2142/681 1215/2139/680 +f 1229/2143/681 1219/2135/677 1217/2142/681 +f 1216/2144/682 1214/2145/682 1210/2146/682 +f 1209/2137/678 1223/2147/683 1211/2148/683 +f 1223/2147/683 1213/2149/679 1211/2148/683 +f 1218/2150/684 1232/2151/685 1230/2152/684 +f 1216/2153/686 1230/2152/684 1228/2154/686 +f 1214/2155/687 1228/2154/686 1226/2156/687 +f 1212/2157/688 1226/2158/687 1224/2159/688 +f 1210/2160/689 1224/2159/688 1221/2161/689 +f 1226/2158/690 1244/2162/691 1224/2159/691 +f 1223/2147/692 1236/2163/693 1243/2164/692 +f 1231/2165/694 1236/2163/693 1222/2136/693 +f 1229/2143/695 1233/2166/694 1231/2165/694 +f 1224/2159/691 1235/2167/696 1221/2161/696 +f 1227/2141/697 1237/2168/695 1229/2143/695 +f 1232/2151/685 1210/2160/689 1221/2161/689 +f 1235/2167/678 1233/2166/677 1234/2169/677 +f 1234/2169/677 1237/2168/681 1238/2170/681 +f 1238/2170/681 1239/2171/680 1240/2172/680 +f 1242/2173/679 1239/2171/680 1241/2174/679 +f 1244/2162/683 1241/2175/679 1243/2164/683 +f 1244/2162/683 1236/2163/678 1235/2167/678 +f 1228/2154/698 1242/2173/690 1226/2156/690 +f 1221/2161/696 1234/2169/699 1232/2151/699 +f 1230/2152/700 1240/2172/698 1228/2154/698 +f 1223/2147/692 1241/2175/701 1225/2176/701 +f 1232/2151/699 1238/2170/700 1230/2152/700 +f 1225/2138/701 1239/2171/697 1227/2141/697 +f 1245/2177/702 1248/2178/703 1247/2179/704 +f 1247/2180/704 1250/2181/705 1249/2182/706 +f 1250/2181/705 1251/2183/707 1249/2182/706 +f 1252/2184/708 1253/2185/709 1251/2183/707 +f 1254/2186/710 1255/2187/711 1253/2185/709 +f 1255/2187/711 1246/2188/712 1245/2177/702 +f 1257/2189/713 1260/2190/714 1259/2191/715 +f 1260/2192/714 1261/2193/716 1259/2194/715 +f 1262/2195/717 1263/2196/718 1261/2193/716 +f 1264/2197/719 1265/2198/720 1263/2196/718 +f 1265/2198/720 1268/2199/721 1267/2200/722 +f 1267/2200/722 1258/2201/723 1257/2189/713 +f 1269/2202/724 1272/2203/725 1271/2204/726 +f 1271/2205/726 1274/2206/727 1273/2207/728 +f 1274/2206/727 1275/2208/729 1273/2207/728 +f 1276/2209/730 1277/2210/731 1275/2208/729 +f 1278/2211/732 1279/2212/733 1277/2210/731 +f 1279/2212/733 1270/2213/734 1269/2202/724 +f 1281/2214/735 1284/2215/736 1283/2216/737 +f 1283/2217/737 1286/2218/738 1285/2219/739 +f 1286/2218/738 1287/2220/740 1285/2219/739 +f 1288/2221/741 1289/2222/742 1287/2220/740 +f 1290/2223/743 1291/2224/744 1289/2222/742 +f 1291/2224/744 1282/2225/745 1281/2214/735 +f 1294/2226/746 1295/2227/747 1293/2228/748 +f 1296/2229/749 1297/2230/750 1295/2231/747 +f 1297/2230/750 1300/2232/751 1299/2233/752 +f 1299/2233/752 1302/2234/753 1301/2235/754 +f 1301/2235/754 1304/2236/755 1303/2237/756 +f 1304/2236/755 1293/2228/748 1303/2237/756 +f 1313/2238/757 1306/2239/758 1305/2240/759 +f 1306/2239/758 1315/2241/760 1307/2242/761 +f 1315/2241/760 1308/2243/762 1307/2242/761 +f 1316/2244/763 1309/2245/764 1308/2243/762 +f 1317/2246/765 1310/2247/766 1309/2245/764 +f 1318/2248/767 1311/2249/768 1310/2247/766 +f 1319/2250/769 1312/2251/770 1311/2252/768 +f 1320/2253/771 1305/2240/759 1312/2251/770 +f 1321/2254/772 1314/2255/773 1313/2238/757 +f 1322/2256/774 1315/2241/760 1314/2255/773 +f 1315/2241/760 1324/2257/775 1316/2244/763 +f 1316/2244/763 1325/2258/776 1317/2246/765 +f 1325/2258/776 1318/2248/767 1317/2246/765 +f 1326/2259/777 1319/2260/769 1318/2248/767 +f 1319/2250/769 1328/2261/778 1320/2253/771 +f 1328/2261/778 1313/2238/757 1320/2253/771 +f 1321/2262/772 1330/2263/779 1322/2264/774 +f 1330/2263/779 1323/2265/780 1322/2264/774 +f 1331/2266/781 1324/2267/775 1323/2265/780 +f 1332/2268/782 1325/2269/776 1324/2267/775 +f 1333/2270/783 1326/2271/777 1325/2269/776 +f 1334/2272/784 1327/2273/785 1326/2271/777 +f 1335/2274/786 1328/2275/778 1327/2276/785 +f 1336/2277/787 1321/2262/772 1328/2275/778 +f 1337/2278/764 1330/2263/779 1329/2279/788 +f 1338/2280/789 1331/2266/781 1330/2263/779 +f 1339/2281/790 1332/2268/782 1331/2266/781 +f 1340/2282/791 1333/2270/783 1332/2268/782 +f 1341/2283/759 1334/2272/784 1333/2270/783 +f 1342/2284/792 1335/2285/786 1334/2272/784 +f 1343/2286/793 1336/2277/787 1335/2274/786 +f 1344/2287/794 1329/2279/788 1336/2277/787 +f 1337/2278/764 1346/2288/795 1338/2280/789 +f 1338/2280/789 1347/2289/796 1339/2281/790 +f 1347/2289/796 1340/2282/791 1339/2281/790 +f 1348/2290/797 1341/2283/759 1340/2282/791 +f 1349/2291/757 1342/2284/792 1341/2283/759 +f 1350/2292/798 1343/2293/793 1342/2284/792 +f 1351/2294/799 1344/2287/794 1343/2286/793 +f 1352/2295/800 1337/2278/764 1344/2287/794 +f 1353/2296/776 1346/2288/795 1345/2297/765 +f 1354/2298/801 1347/2289/796 1346/2288/795 +f 1347/2289/796 1356/2299/802 1348/2290/797 +f 1356/2299/802 1349/2291/757 1348/2290/797 +f 1357/2300/772 1350/2292/798 1349/2291/757 +f 1350/2292/798 1359/2301/803 1351/2302/799 +f 1351/2294/799 1360/2303/804 1352/2295/800 +f 1360/2303/804 1345/2297/765 1352/2295/800 +f 1361/2304/783 1354/2298/801 1353/2296/776 +f 1362/2305/805 1355/2306/806 1354/2298/801 +f 1363/2307/807 1356/2299/802 1355/2306/806 +f 1364/2308/808 1357/2300/772 1356/2299/802 +f 1365/2309/788 1358/2310/809 1357/2300/772 +f 1366/2311/810 1359/2301/803 1358/2310/809 +f 1367/2312/811 1360/2303/804 1359/2313/803 +f 1368/2314/812 1353/2296/776 1360/2303/804 +f 1305/2240/759 1362/2305/805 1361/2304/783 +f 1306/2239/758 1363/2307/807 1362/2305/805 +f 1307/2242/761 1364/2308/808 1363/2307/807 +f 1308/2243/762 1365/2309/788 1364/2308/808 +f 1309/2245/764 1366/2311/810 1365/2309/788 +f 1310/2247/766 1367/2315/811 1366/2311/810 +f 1311/2252/768 1368/2314/812 1367/2312/811 +f 1312/2251/770 1361/2304/783 1368/2314/812 +f 1369/2316/678 1391/2317/677 1379/2318/677 +f 1375/2319/680 1385/2320/679 1373/2321/679 +f 1377/2322/681 1387/2323/680 1375/2319/680 +f 1379/2318/677 1389/2324/681 1377/2322/681 +f 1378/2325/813 1380/2326/813 1370/2327/813 +f 1371/2328/683 1382/2329/678 1369/2316/678 +f 1373/2330/679 1383/2331/683 1371/2328/683 +f 1392/2332/814 1378/2333/815 1390/2334/815 +f 1390/2334/815 1376/2335/816 1388/2336/816 +f 1388/2336/816 1374/2337/817 1386/2338/817 +f 1386/2339/817 1372/2340/818 1384/2341/818 +f 1384/2341/818 1370/2342/819 1381/2343/819 +f 1404/2344/692 1386/2339/701 1384/2341/692 +f 1403/2345/691 1382/2329/696 1383/2331/691 +f 1396/2346/696 1391/2317/699 1382/2329/696 +f 1393/2347/699 1389/2324/700 1391/2317/699 +f 1395/2348/693 1384/2341/692 1381/2343/693 +f 1389/2324/700 1399/2349/698 1387/2323/698 +f 1392/2332/814 1370/2342/819 1380/2350/814 +f 1393/2347/677 1395/2348/678 1394/2351/677 +f 1398/2352/681 1393/2347/677 1394/2351/677 +f 1399/2349/680 1398/2352/681 1400/2353/680 +f 1401/2354/679 1400/2353/680 1402/2355/679 +f 1403/2345/683 1402/2356/679 1404/2344/683 +f 1396/2346/678 1404/2344/683 1395/2348/678 +f 1402/2355/701 1388/2336/697 1386/2338/701 +f 1394/2351/694 1381/2343/693 1392/2332/694 +f 1400/2353/697 1390/2334/695 1388/2336/697 +f 1401/2357/690 1383/2331/691 1385/2358/690 +f 1398/2352/695 1392/2332/694 1390/2334/695 +f 1399/2349/698 1385/2320/690 1387/2323/698 +f 1405/2359/820 1408/2360/821 1406/2361/822 +f 1407/2362/823 1410/2363/824 1408/2364/821 +f 1411/2365/825 1410/2363/824 1409/2366/826 +f 1413/2367/827 1412/2368/828 1411/2365/825 +f 1415/2369/829 1414/2370/830 1413/2367/827 +f 1415/2369/829 1406/2361/822 1416/2371/831 +f 1417/2372/832 1420/2373/833 1418/2374/834 +f 1421/2375/835 1420/2376/833 1419/2377/836 +f 1423/2378/837 1422/2379/838 1421/2375/835 +f 1425/2380/839 1424/2381/840 1423/2378/837 +f 1425/2380/839 1428/2382/841 1426/2383/842 +f 1427/2384/843 1418/2374/834 1428/2382/841 +f 1429/2385/844 1432/2386/845 1430/2387/846 +f 1431/2388/847 1434/2389/848 1432/2390/845 +f 1435/2391/849 1434/2389/848 1433/2392/850 +f 1437/2393/851 1436/2394/852 1435/2391/849 +f 1439/2395/853 1438/2396/854 1437/2393/851 +f 1439/2395/853 1430/2387/846 1440/2397/855 +f 1441/2398/856 1444/2399/857 1442/2400/858 +f 1443/2401/859 1446/2402/860 1444/2403/857 +f 1447/2404/861 1446/2402/860 1445/2405/862 +f 1449/2406/863 1448/2407/864 1447/2404/861 +f 1451/2408/865 1450/2409/866 1449/2406/863 +f 1451/2408/865 1442/2400/858 1452/2410/867 +f 1455/2411/868 1454/2412/869 1453/2413/870 +f 1457/2414/871 1456/2415/872 1455/2416/868 +f 1457/2414/871 1460/2417/873 1458/2418/874 +f 1459/2419/875 1462/2420/876 1460/2417/873 +f 1461/2421/877 1464/2422/878 1462/2420/876 +f 1453/2413/870 1464/2422/878 1463/2423/879 +f 1465/2424/759 1474/2425/771 1473/2426/757 +f 1467/2427/768 1474/2425/771 1466/2428/770 +f 1468/2429/766 1475/2430/769 1467/2427/768 +f 1469/2431/764 1476/2432/767 1468/2429/766 +f 1470/2433/762 1477/2434/765 1469/2431/764 +f 1471/2435/761 1478/2436/763 1470/2433/762 +f 1472/2437/758 1479/2438/760 1471/2439/761 +f 1472/2437/758 1473/2426/757 1480/2440/773 +f 1474/2425/771 1481/2441/772 1473/2426/757 +f 1475/2430/769 1482/2442/778 1474/2425/771 +f 1476/2432/767 1483/2443/785 1475/2430/769 +f 1477/2434/765 1484/2444/777 1476/2432/767 +f 1478/2436/763 1485/2445/776 1477/2434/765 +f 1478/2436/763 1487/2446/780 1486/2447/775 +f 1480/2440/773 1487/2448/780 1479/2438/760 +f 1473/2426/757 1488/2449/774 1480/2440/773 +f 1481/2450/772 1490/2451/787 1489/2452/788 +f 1483/2453/785 1490/2451/787 1482/2454/778 +f 1483/2453/785 1492/2455/784 1491/2456/786 +f 1485/2457/776 1492/2455/784 1484/2458/777 +f 1486/2459/775 1493/2460/783 1485/2457/776 +f 1486/2459/775 1495/2461/781 1494/2462/782 +f 1488/2463/774 1495/2464/781 1487/2465/780 +f 1481/2450/772 1496/2466/779 1488/2463/774 +f 1489/2452/788 1498/2467/794 1497/2468/764 +f 1491/2456/786 1498/2467/794 1490/2451/787 +f 1491/2456/786 1500/2469/792 1499/2470/793 +f 1493/2460/783 1500/2469/792 1492/2455/784 +f 1494/2462/782 1501/2471/759 1493/2460/783 +f 1495/2461/781 1502/2472/791 1494/2462/782 +f 1496/2466/779 1503/2473/790 1495/2464/781 +f 1489/2452/788 1504/2474/789 1496/2466/779 +f 1498/2467/794 1505/2475/765 1497/2468/764 +f 1498/2467/794 1507/2476/799 1506/2477/800 +f 1500/2469/792 1507/2476/799 1499/2470/793 +f 1501/2471/759 1508/2478/798 1500/2469/792 +f 1502/2472/791 1509/2479/757 1501/2471/759 +f 1502/2472/791 1511/2480/796 1510/2481/797 +f 1504/2474/789 1511/2482/796 1503/2473/790 +f 1504/2474/789 1505/2475/765 1512/2483/795 +f 1506/2477/800 1513/2484/776 1505/2475/765 +f 1506/2477/800 1515/2485/803 1514/2486/804 +f 1508/2478/798 1515/2485/803 1507/2476/799 +f 1508/2478/798 1517/2487/772 1516/2488/809 +f 1510/2481/797 1517/2487/772 1509/2479/757 +f 1510/2481/797 1519/2489/806 1518/2490/802 +f 1512/2483/795 1519/2491/806 1511/2482/796 +f 1505/2475/765 1520/2492/801 1512/2483/795 +f 1514/2486/804 1521/2493/783 1513/2484/776 +f 1515/2485/803 1522/2494/812 1514/2486/804 +f 1515/2485/803 1524/2495/810 1523/2496/811 +f 1517/2487/772 1524/2495/810 1516/2488/809 +f 1518/2490/802 1525/2497/788 1517/2487/772 +f 1519/2489/806 1526/2498/808 1518/2490/802 +f 1519/2491/806 1528/2499/805 1527/2500/807 +f 1513/2484/776 1528/2499/805 1520/2492/801 +f 1522/2494/812 1465/2424/759 1521/2493/783 +f 1522/2494/812 1467/2427/768 1466/2428/770 +f 1524/2495/810 1467/2427/768 1523/2496/811 +f 1525/2497/788 1468/2429/766 1524/2495/810 +f 1526/2498/808 1469/2431/764 1525/2497/788 +f 1527/2501/807 1470/2433/762 1526/2498/808 +f 1528/2499/805 1471/2439/761 1527/2500/807 +f 1521/2493/783 1472/2437/758 1528/2499/805 +f 1219/2135/677 1231/2165/677 1222/2136/678 +f 1225/2138/679 1227/2141/680 1215/2139/680 +f 1227/2141/680 1229/2143/681 1217/2142/681 +f 1229/2143/681 1231/2165/677 1219/2135/677 +f 1214/2145/682 1212/2502/682 1210/2146/682 +f 1210/2146/682 1220/2503/682 1218/2504/682 +f 1218/2504/682 1216/2144/682 1210/2146/682 +f 1209/2137/678 1222/2136/678 1223/2147/683 +f 1223/2147/683 1225/2176/679 1213/2149/679 +f 1218/2150/684 1220/2505/685 1232/2151/685 +f 1216/2153/686 1218/2150/684 1230/2152/684 +f 1214/2155/687 1216/2153/686 1228/2154/686 +f 1212/2157/688 1214/2506/687 1226/2158/687 +f 1210/2160/689 1212/2157/688 1224/2159/688 +f 1226/2158/690 1242/2507/690 1244/2162/691 +f 1223/2147/692 1222/2136/693 1236/2163/693 +f 1231/2165/694 1233/2166/694 1236/2163/693 +f 1229/2143/695 1237/2168/695 1233/2166/694 +f 1224/2159/691 1244/2162/691 1235/2167/696 +f 1227/2141/697 1239/2171/697 1237/2168/695 +f 1232/2151/685 1220/2505/685 1210/2160/689 +f 1235/2167/678 1236/2163/678 1233/2166/677 +f 1234/2169/677 1233/2166/677 1237/2168/681 +f 1238/2170/681 1237/2168/681 1239/2171/680 +f 1242/2173/679 1240/2172/680 1239/2171/680 +f 1244/2162/683 1242/2507/679 1241/2175/679 +f 1244/2162/683 1243/2164/683 1236/2163/678 +f 1228/2154/698 1240/2172/698 1242/2173/690 +f 1221/2161/696 1235/2167/696 1234/2169/699 +f 1230/2152/700 1238/2170/700 1240/2172/698 +f 1223/2147/692 1243/2164/692 1241/2175/701 +f 1232/2151/699 1234/2169/699 1238/2170/700 +f 1225/2138/701 1241/2174/701 1239/2171/697 +f 1245/2177/702 1246/2188/712 1248/2178/703 +f 1247/2180/704 1248/2508/703 1250/2181/705 +f 1250/2181/705 1252/2184/708 1251/2183/707 +f 1252/2184/708 1254/2186/710 1253/2185/709 +f 1254/2186/710 1256/2509/880 1255/2187/711 +f 1255/2187/711 1256/2509/880 1246/2188/712 +f 1257/2189/713 1258/2201/723 1260/2190/714 +f 1260/2192/714 1262/2195/717 1261/2193/716 +f 1262/2195/717 1264/2197/719 1263/2196/718 +f 1264/2197/719 1266/2510/881 1265/2198/720 +f 1265/2198/720 1266/2510/881 1268/2199/721 +f 1267/2200/722 1268/2199/721 1258/2201/723 +f 1269/2202/724 1270/2213/734 1272/2203/725 +f 1271/2205/726 1272/2511/725 1274/2206/727 +f 1274/2206/727 1276/2209/730 1275/2208/729 +f 1276/2209/730 1278/2211/732 1277/2210/731 +f 1278/2211/732 1280/2512/882 1279/2212/733 +f 1279/2212/733 1280/2512/882 1270/2213/734 +f 1281/2214/735 1282/2225/745 1284/2215/736 +f 1283/2217/737 1284/2513/736 1286/2218/738 +f 1286/2218/738 1288/2221/741 1287/2220/740 +f 1288/2221/741 1290/2223/743 1289/2222/742 +f 1290/2223/743 1292/2514/883 1291/2224/744 +f 1291/2224/744 1292/2514/883 1282/2225/745 +f 1294/2226/746 1296/2515/749 1295/2227/747 +f 1296/2229/749 1298/2516/884 1297/2230/750 +f 1297/2230/750 1298/2516/884 1300/2232/751 +f 1299/2233/752 1300/2232/751 1302/2234/753 +f 1301/2235/754 1302/2234/753 1304/2236/755 +f 1304/2236/755 1294/2226/746 1293/2228/748 +f 1313/2238/757 1314/2255/773 1306/2239/758 +f 1306/2239/758 1314/2255/773 1315/2241/760 +f 1315/2241/760 1316/2244/763 1308/2243/762 +f 1316/2244/763 1317/2246/765 1309/2245/764 +f 1317/2246/765 1318/2248/767 1310/2247/766 +f 1318/2248/767 1319/2260/769 1311/2249/768 +f 1319/2250/769 1320/2253/771 1312/2251/770 +f 1320/2253/771 1313/2238/757 1305/2240/759 +f 1321/2254/772 1322/2256/774 1314/2255/773 +f 1322/2256/774 1323/2517/780 1315/2241/760 +f 1315/2241/760 1323/2517/780 1324/2257/775 +f 1316/2244/763 1324/2257/775 1325/2258/776 +f 1325/2258/776 1326/2259/777 1318/2248/767 +f 1326/2259/777 1327/2518/785 1319/2260/769 +f 1319/2250/769 1327/2519/785 1328/2261/778 +f 1328/2261/778 1321/2254/772 1313/2238/757 +f 1321/2262/772 1329/2279/788 1330/2263/779 +f 1330/2263/779 1331/2266/781 1323/2265/780 +f 1331/2266/781 1332/2268/782 1324/2267/775 +f 1332/2268/782 1333/2270/783 1325/2269/776 +f 1333/2270/783 1334/2272/784 1326/2271/777 +f 1334/2272/784 1335/2285/786 1327/2273/785 +f 1335/2274/786 1336/2277/787 1328/2275/778 +f 1336/2277/787 1329/2279/788 1321/2262/772 +f 1337/2278/764 1338/2280/789 1330/2263/779 +f 1338/2280/789 1339/2281/790 1331/2266/781 +f 1339/2281/790 1340/2282/791 1332/2268/782 +f 1340/2282/791 1341/2283/759 1333/2270/783 +f 1341/2283/759 1342/2284/792 1334/2272/784 +f 1342/2284/792 1343/2293/793 1335/2285/786 +f 1343/2286/793 1344/2287/794 1336/2277/787 +f 1344/2287/794 1337/2278/764 1329/2279/788 +f 1337/2278/764 1345/2297/765 1346/2288/795 +f 1338/2280/789 1346/2288/795 1347/2289/796 +f 1347/2289/796 1348/2290/797 1340/2282/791 +f 1348/2290/797 1349/2291/757 1341/2283/759 +f 1349/2291/757 1350/2292/798 1342/2284/792 +f 1350/2292/798 1351/2302/799 1343/2293/793 +f 1351/2294/799 1352/2295/800 1344/2287/794 +f 1352/2295/800 1345/2297/765 1337/2278/764 +f 1353/2296/776 1354/2298/801 1346/2288/795 +f 1354/2298/801 1355/2306/806 1347/2289/796 +f 1347/2289/796 1355/2306/806 1356/2299/802 +f 1356/2299/802 1357/2300/772 1349/2291/757 +f 1357/2300/772 1358/2310/809 1350/2292/798 +f 1350/2292/798 1358/2310/809 1359/2301/803 +f 1351/2294/799 1359/2313/803 1360/2303/804 +f 1360/2303/804 1353/2296/776 1345/2297/765 +f 1361/2304/783 1362/2305/805 1354/2298/801 +f 1362/2305/805 1363/2307/807 1355/2306/806 +f 1363/2307/807 1364/2308/808 1356/2299/802 +f 1364/2308/808 1365/2309/788 1357/2300/772 +f 1365/2309/788 1366/2311/810 1358/2310/809 +f 1366/2311/810 1367/2315/811 1359/2301/803 +f 1367/2312/811 1368/2314/812 1360/2303/804 +f 1368/2314/812 1361/2304/783 1353/2296/776 +f 1305/2240/759 1306/2239/758 1362/2305/805 +f 1306/2239/758 1307/2242/761 1363/2307/807 +f 1307/2242/761 1308/2243/762 1364/2308/808 +f 1308/2243/762 1309/2245/764 1365/2309/788 +f 1309/2245/764 1310/2247/766 1366/2311/810 +f 1310/2247/766 1311/2249/768 1367/2315/811 +f 1311/2252/768 1312/2251/770 1368/2314/812 +f 1312/2251/770 1305/2240/759 1361/2304/783 +f 1369/2316/678 1382/2329/678 1391/2317/677 +f 1375/2319/680 1387/2323/680 1385/2320/679 +f 1377/2322/681 1389/2324/681 1387/2323/680 +f 1379/2318/677 1391/2317/677 1389/2324/681 +f 1370/2327/813 1372/2520/813 1374/2521/813 +f 1374/2521/813 1376/2522/813 1370/2327/813 +f 1376/2522/813 1378/2325/813 1370/2327/813 +f 1371/2328/683 1383/2331/683 1382/2329/678 +f 1373/2330/679 1385/2358/679 1383/2331/683 +f 1392/2332/814 1380/2350/814 1378/2333/815 +f 1390/2334/815 1378/2333/815 1376/2335/816 +f 1388/2336/816 1376/2335/816 1374/2337/817 +f 1386/2339/817 1374/2523/817 1372/2340/818 +f 1384/2341/818 1372/2340/818 1370/2342/819 +f 1404/2344/692 1402/2356/701 1386/2339/701 +f 1403/2345/691 1396/2346/696 1382/2329/696 +f 1396/2346/696 1393/2347/699 1391/2317/699 +f 1393/2347/699 1397/2524/700 1389/2324/700 +f 1395/2348/693 1404/2344/692 1384/2341/692 +f 1389/2324/700 1397/2524/700 1399/2349/698 +f 1392/2332/814 1381/2343/819 1370/2342/819 +f 1393/2347/677 1396/2346/678 1395/2348/678 +f 1398/2352/681 1397/2524/681 1393/2347/677 +f 1399/2349/680 1397/2524/681 1398/2352/681 +f 1401/2354/679 1399/2349/680 1400/2353/680 +f 1403/2345/683 1401/2357/679 1402/2356/679 +f 1396/2346/678 1403/2345/683 1404/2344/683 +f 1402/2355/701 1400/2353/697 1388/2336/697 +f 1394/2351/694 1395/2348/693 1381/2343/693 +f 1400/2353/697 1398/2352/695 1390/2334/695 +f 1401/2357/690 1403/2345/691 1383/2331/691 +f 1398/2352/695 1394/2351/694 1392/2332/694 +f 1399/2349/698 1401/2354/690 1385/2320/690 +f 1405/2359/820 1407/2525/823 1408/2360/821 +f 1407/2362/823 1409/2366/826 1410/2363/824 +f 1411/2365/825 1412/2368/828 1410/2363/824 +f 1413/2367/827 1414/2370/830 1412/2368/828 +f 1415/2369/829 1416/2371/831 1414/2370/830 +f 1415/2369/829 1405/2359/820 1406/2361/822 +f 1417/2372/832 1419/2526/836 1420/2373/833 +f 1421/2375/835 1422/2379/838 1420/2376/833 +f 1423/2378/837 1424/2381/840 1422/2379/838 +f 1425/2380/839 1426/2383/842 1424/2381/840 +f 1425/2380/839 1427/2384/843 1428/2382/841 +f 1427/2384/843 1417/2372/832 1418/2374/834 +f 1429/2385/844 1431/2527/847 1432/2386/845 +f 1431/2388/847 1433/2392/850 1434/2389/848 +f 1435/2391/849 1436/2394/852 1434/2389/848 +f 1437/2393/851 1438/2396/854 1436/2394/852 +f 1439/2395/853 1440/2397/855 1438/2396/854 +f 1439/2395/853 1429/2385/844 1430/2387/846 +f 1441/2398/856 1443/2528/859 1444/2399/857 +f 1443/2401/859 1445/2405/862 1446/2402/860 +f 1447/2404/861 1448/2407/864 1446/2402/860 +f 1449/2406/863 1450/2409/866 1448/2407/864 +f 1451/2408/865 1452/2410/867 1450/2409/866 +f 1451/2408/865 1441/2398/856 1442/2400/858 +f 1455/2411/868 1456/2529/872 1454/2412/869 +f 1457/2414/871 1458/2418/874 1456/2415/872 +f 1457/2414/871 1459/2419/875 1460/2417/873 +f 1459/2419/875 1461/2421/877 1462/2420/876 +f 1461/2421/877 1463/2423/879 1464/2422/878 +f 1453/2413/870 1454/2412/869 1464/2422/878 +f 1465/2424/759 1466/2428/770 1474/2425/771 +f 1467/2427/768 1475/2430/769 1474/2425/771 +f 1468/2429/766 1476/2432/767 1475/2430/769 +f 1469/2431/764 1477/2434/765 1476/2432/767 +f 1470/2433/762 1478/2436/763 1477/2434/765 +f 1471/2435/761 1479/2530/760 1478/2436/763 +f 1472/2437/758 1480/2440/773 1479/2438/760 +f 1472/2437/758 1465/2424/759 1473/2426/757 +f 1474/2425/771 1482/2442/778 1481/2441/772 +f 1475/2430/769 1483/2443/785 1482/2442/778 +f 1476/2432/767 1484/2444/777 1483/2443/785 +f 1477/2434/765 1485/2445/776 1484/2444/777 +f 1478/2436/763 1486/2447/775 1485/2445/776 +f 1478/2436/763 1479/2530/760 1487/2446/780 +f 1480/2440/773 1488/2449/774 1487/2448/780 +f 1473/2426/757 1481/2441/772 1488/2449/774 +f 1481/2450/772 1482/2454/778 1490/2451/787 +f 1483/2453/785 1491/2456/786 1490/2451/787 +f 1483/2453/785 1484/2458/777 1492/2455/784 +f 1485/2457/776 1493/2460/783 1492/2455/784 +f 1486/2459/775 1494/2462/782 1493/2460/783 +f 1486/2459/775 1487/2531/780 1495/2461/781 +f 1488/2463/774 1496/2466/779 1495/2464/781 +f 1481/2450/772 1489/2452/788 1496/2466/779 +f 1489/2452/788 1490/2451/787 1498/2467/794 +f 1491/2456/786 1499/2470/793 1498/2467/794 +f 1491/2456/786 1492/2455/784 1500/2469/792 +f 1493/2460/783 1501/2471/759 1500/2469/792 +f 1494/2462/782 1502/2472/791 1501/2471/759 +f 1495/2461/781 1503/2532/790 1502/2472/791 +f 1496/2466/779 1504/2474/789 1503/2473/790 +f 1489/2452/788 1497/2468/764 1504/2474/789 +f 1498/2467/794 1506/2477/800 1505/2475/765 +f 1498/2467/794 1499/2470/793 1507/2476/799 +f 1500/2469/792 1508/2478/798 1507/2476/799 +f 1501/2471/759 1509/2479/757 1508/2478/798 +f 1502/2472/791 1510/2481/797 1509/2479/757 +f 1502/2472/791 1503/2532/790 1511/2480/796 +f 1504/2474/789 1512/2483/795 1511/2482/796 +f 1504/2474/789 1497/2468/764 1505/2475/765 +f 1506/2477/800 1514/2486/804 1513/2484/776 +f 1506/2477/800 1507/2476/799 1515/2485/803 +f 1508/2478/798 1516/2488/809 1515/2485/803 +f 1508/2478/798 1509/2479/757 1517/2487/772 +f 1510/2481/797 1518/2490/802 1517/2487/772 +f 1510/2481/797 1511/2480/796 1519/2489/806 +f 1512/2483/795 1520/2492/801 1519/2491/806 +f 1505/2475/765 1513/2484/776 1520/2492/801 +f 1514/2486/804 1522/2494/812 1521/2493/783 +f 1515/2485/803 1523/2496/811 1522/2494/812 +f 1515/2485/803 1516/2488/809 1524/2495/810 +f 1517/2487/772 1525/2497/788 1524/2495/810 +f 1518/2490/802 1526/2498/808 1525/2497/788 +f 1519/2489/806 1527/2501/807 1526/2498/808 +f 1519/2491/806 1520/2492/801 1528/2499/805 +f 1513/2484/776 1521/2493/783 1528/2499/805 +f 1522/2494/812 1466/2428/770 1465/2424/759 +f 1522/2494/812 1523/2496/811 1467/2427/768 +f 1524/2495/810 1468/2429/766 1467/2427/768 +f 1525/2497/788 1469/2431/764 1468/2429/766 +f 1526/2498/808 1470/2433/762 1469/2431/764 +f 1527/2501/807 1471/2435/761 1470/2433/762 +f 1528/2499/805 1472/2437/758 1471/2439/761 +f 1521/2493/783 1465/2424/759 1472/2437/758 diff --git a/src/main/resources/assets/hbm/sounds.json b/src/main/resources/assets/hbm/sounds.json index 484174398..b550633a4 100644 --- a/src/main/resources/assets/hbm/sounds.json +++ b/src/main/resources/assets/hbm/sounds.json @@ -70,6 +70,14 @@ "door.garage_move": { "category": "block", "sounds": [{"name": "block/door/garage_move", "stream": false}] }, "door.garage_stop": { "category": "block", "sounds": [{"name": "block/door/garage_stop", "stream": false}] }, + "block.door.lever": {"category": "player", "sounds": [{"name": "hbm:block/doors/lever1", "stream": false}]}, + "block.door.wgh_big_start": {"category": "player", "sounds": [{"name": "hbm:block/doors/door_wgh_big_start", "stream": false}]}, + "block.door.wgh_big_stop": {"category": "player", "sounds": [{"name": "hbm:block/doors/door_wgh_big_stop", "stream": false}]}, + "block.door.qe_sliding_shut": {"category": "player", "sounds": [{"name": "hbm:block/doors/doorshut_1", "stream": false}]}, + "block.door.qe_sliding_opened": {"category": "player", "sounds": [{"name": "hbm:block/doors/doorslide_opened1", "stream": false}]}, + "block.door.qe_sliding_opening": {"category": "player", "sounds": [{"name": "hbm:block/doors/doorslide_opening1", "stream": false}]}, + "block.door.sliding_seal_open": {"category": "player", "sounds": [{"name": "hbm:block/doors/doormove2", "stream": false}]}, + "block.door.sliding_seal_stop": {"category": "player", "sounds": [{"name": "hbm:block/doors/metal_stop1", "stream": false}]}, "item.techBleep": {"category": "player", "sounds": [{"name": "tool/techBleep", "stream": false}]}, "item.techBoop": {"category": "player", "sounds": [{"name": "tool/techBoop", "stream": false}]}, diff --git a/src/main/resources/assets/hbm/sounds/block/door/door_wgh_big_start.ogg b/src/main/resources/assets/hbm/sounds/block/door/door_wgh_big_start.ogg new file mode 100644 index 0000000000000000000000000000000000000000..e85c687ae6c5ba6d184d72e1516389b3e728f8c8 GIT binary patch literal 69062 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/sounds/block/door/door_wgh_big_stop.ogg b/src/main/resources/assets/hbm/sounds/block/door/door_wgh_big_stop.ogg new file mode 100644 index 0000000000000000000000000000000000000000..c5322cd1acc91f86a1abac618eeec311a1bbdab1 GIT binary patch literal 24339 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 OEr0VEo`_9$U&C!Va_MSF2v5o$@z@_k0>0{ zzbB2<8!b411OPziM$9Z*>_!-hO)8~EvP~{EX@5c@^%f_Xocpc*7`br0hU^Od zA`g`j(!qwc9Z-d0Nws8zR0+Wb)A7lxg&+$ZkcalNGDQXVbG8tMBJwfC1n+PT&xfE( zMP!61@ckkUwU+cE{5J=kqpvG3;zQBtN)w1|DwwS0BY(lWnA!I{Kc~X08sJ-ql$H+ify9yBjQj(!>ix{fdBv^Y#QD- z8X|JZ(o>q?C8*=-|H}F)mLz}CVLHT~wY4foj^IQfLH@fAFg5~lqB#2l|EuIcVnxgX z)M}y4tnEBq%nZdkA&M;dChx?|s8*rfqr<7WV%P`8)2fl40^nV28(=t^rYI_idejhNZe6q~XZ7sAGR7w4V{usHJCL-2_qu7AJ$y{_2kkrh6%55{r2CXUb*~ zz|t&NH0H8@>ZE#J8UR4`2l)&R#sAHhbS7XHpk63ry&D|ST3bNbesM4zlIs! z`me+CFNmp5ily%VC;t;2b^=hrjQyV=z(HcSaiIgcWbFTn30qLWJAApn_NGuzr!-49 zG0Up@lUEf_R2^Stju$*bV5lzOsLpRW$7iU)ZwS_M)J}2KheB3UEmv>-H~&{QeDPOA zTmV2gkrtRp15Df&jH6SKuo-3sNFYD&$fzx*xNX5iI)y}f+eB;cl(O`U!}J{HioZhu z*v~_rQ&fppRJm7FnOEFFM50Z4N?CaZ%V^0-Tg~zRE2IB4a5@0Molee`P7XvT1A+m6 zwHx^IS-a$YTy!$7tYfph|74uO6NM>M+x_36@t*|%0A7xK#vhv@SH`7Z0I`8J*cL!C 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/sounds/block/door/doorslide_opened1.ogg b/src/main/resources/assets/hbm/sounds/block/door/doorslide_opened1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..4e9f5cd4e259c862f970205b972dc11682706de7 GIT binary patch literal 13499 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/sounds/block/door/doorslide_opening1.ogg b/src/main/resources/assets/hbm/sounds/block/door/doorslide_opening1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..ded65d1a19fa48153dacf37de42a88fb0c119984 GIT binary patch literal 14886 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%0DuMnE_S+d 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/sounds/block/door/metal_stop1.ogg b/src/main/resources/assets/hbm/sounds/block/door/metal_stop1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..e131a539b0cf78253536b08b02d7bbfa70199b8f GIT binary patch literal 16388 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 VO6D2mzADfH2sH<4L)WSx{}1ntfbjqT literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/doors/large_vehicle_door.png b/src/main/resources/assets/hbm/textures/models/doors/large_vehicle_door.png new file mode 100644 index 0000000000000000000000000000000000000000..3085d29d2be4f5ab73f8cd8e8985a52441d0268c GIT binary patch literal 87580 zcmV)GK)%0;P)?7;J1zw-8{8gt`Es1}X@lURKifzI*$=nG|IzC;>t8Sffg6|JA#yQI2p|?KQX{S#PsERWcyQ8`sf9L!c4+W5OH+P``6 z>aU--LWUWzD0VQA&l&p;?EUb_fm}9wNJ~JP-&J7suks zo~=9HSTJvCp@skA#f}|22elyi!+?hmA0CZG2i^Y{FOMEMT3{PT-J^cJXf%4+WtaKa zM-CqW)`Q=N9Z)X6{Bmx#wl#P4^cbd_H^5-m&AX-*NTlNX5AVAA@?|e=c-jsGS#ih6 zyGFpWS+IOVYkhBD$CQb4cI?}Tzy#2|XPLRYV`VeB*SD;mciBRJNI=Z*mkL0h>r5sy zcqIS#xqfZS^YM5x5{cxqxg7Y3q7g86zQ1wqrJ{jQFtl~o8Yv$lb2sH=0(LN$?A*Nb zwX5e||L>p0@e>Cf+YJVTw&8~Dd{5c{yg?^R%iJuiqu=1aNB|9u^-Jci%jbJ`yi;am z6J}kkxccT`Wa61Kr$>$&)Bmz%Wpgkr!{b_zt7EukC>%;<(!rosqEOd;;r0LG#fjr53s~Yc)vtgxHa1SYXks3s z{Z|Xvf8p!>wZXIF$B&O6KmMI}-mz`_Baj6hxwC!yc4%Px-p#C~;buc-CYgu(1p{s# zL7hqh79%KTWjbySE&%@s!03%!zzDYYdHSA2t7BTWo1^eDRrw5pF4{UvFq5^wakPL;&bGtA$$x9h&ey_`P%55uVHIEi74q3o zz^V>r2REBZyxQCKZdZF{N$n?Vh79KslcJm-Gr$T3fUg}e(s?Ur2T_5nAhOks#A1V+ z;`%oez`Bjkhr`ywS3

    !2rzuE=8`3R?QfXvu`g3Mm$i-_n!Th)U$9wvtMi?ru{gNx+AOWqJo3YDvPj?|a(7_C|loCK}0;VYPSP#hz(2f!F8+WCx$Ay@1ha*IF_ z7gH9>iM|lpYhpvy4%+@z1QP;y!LS*oj^HVjbSi4?JPjpT{#3O=h^U+wwlgY<0QQeTu?3=^ zIAGP-Vw8uspnGruI`0u9#8i}-RA^_NdmfrXCeH<1IZSM^Q>upX9Z3nKNp*c}Okjt{ zBCBQHG9}c&S);C}H0C!C6ONnol-kNzHPz8i{vn%=Wwxyb-&@OwbfHC%{Vw$vsbY)8 zuP%l&N8aJ;xzSG$wZbjy-KrCCb51I}$N~1xCs%@v zgZ38NoH95p|KNa~x<^ZA-+lHZq1@i-Gv#tG7<(kytC}88u(x-#>njnzrILH`HNp8l zgjlWC*6t45&*)oQ)(?zhGWHR(v7HewjcqsvtdLOv(#BLVB!1oK2z7NjyXuL{Z3L~R z+iZabTfin`0FDV)^+?OEJg^!h(u@{cfR#0dtgl~khoarn{49Aib+VmXuRb-0oQZl$ zZJ>FdryhmP8E%D8?pa~P7+;+8Xt8i3vdTQA0Mq&HK?@?q6#s2AR{4az@-2(FbcUaym|3nq<22 zNok!+0BPo>u@0&#G=ixew$!0VEnCx#_?2#MUc?+22$)N4eY@9Y;%yi9eok zC4_b+RqVC&*1MBdjUnV4TP9yZ_!ab*;@(Njg;Y>RTM5gTk^kT=C2w;Jky)E7P`hrK ziWK%x{U8L1>bgU^lUaDy&cLS&l)%U_LB1s^LqwGHI6DFP7KqebyjYi%9ylLV<=NbPm*Tw)gAbCT+R%&av3 zw+#EOTdWgSBQ20FVej@^dHdF^Rx0)tuD<49r;Q=>3p-DK zK&yg#Y;pkg`mq^4X$xq!chQd`3E|kFwlO`Wz|ExP-!@+&h^tw4=0D$(d3Jr&6$13? zs_R-)iPVs)W$*Mm(-qdx)MKxVEvQ%|viO_BqnucT$UT)oTho+eb7Z+eG>gbpu_*yY zfDW?Dh?Sx&i8!n+@eZIEAKaS9-LVtmDhGCpwO}2KrHc8IS1dz}na3{?okcvJ4^QYU zC(p>oj3Ke)c|Wa(eGkEdEJADzK3qcLP7HQqVryU{n-+#&0lPsq-YH5*L=Ju3*1Ny!1eGeJQgGDFO1E7MrD%$XqDvsId(kaf zc&Jyt--!}+t{8#Ekd}4`0m)m@0xqYffr~}6`ICQQYvgrPBcR zt<2tWM{7*qf=US2D=ijEXA>vJWDRr-Y9qRXw{)+7j!G+SpDzY!=OB#OD;Hg@w}&12 z=Bxl%_qzKhKT*iL-udn<{M1uVl7IPAX8Gs4-}~1r94&rn{wPG8w^);*p<#8(=)j;L zllN?)#ZQtm651y{B^bvQe)fcVdaQ+`JfLFqhH;)1Eb~Nw5dB$%rl;8g>u3QV$95Lj zANvFiVga?*k#swH{dXt-ooqBP`!`bU6Ha`8*tx8oqO+rT;DHC`-yv6&>GZhynUD4? z3z0NZPt{I<$%{1KyTK+6NwagMe_M8NX3MWHPwAJJNIjt9O_itE(P=WqxOz~uh<*65 z{hM#;AF-Y5Zok=*6^!uw+K%QmR!UgA(1O?geD=hA^Vo!tprp{kN!^6ea;scEJkpPt zivkc5*Vq`I6|$x$pNeQvQp~yBZnv!z5jvO`c90b~)(biyR`y6Lq|D(AsvW;I4HL6f z66-=cLkBmuLu}`Iwb*ILos9CJ=|#W?K!+Z;DaM5UQZ>$a_cwNZ(jC_zfj0LNBS?`*O2~?t~dKIJV(6kNO@?h z6Hh)v{)ZkkdFvYvG`vRmCocF$`Jv1$#5(+`5K5j&1{A_nJK%V*#djTINfaS_pc74H zKqrO}nX|0%&V!RqK25LgyYGIvg!j0Wn=fB^twOH9?mKc1KICw@JYQY(&+>flJ0_2Q z?Oz^9pxoPT`Zu|U9`Sa$vgP;8ieyZNcJA!xP`Cu<0>Z5$hBw*uiM^0eyx+i~$a>;9 z!OqfHr=kBiR?`S^5dqX_XK*gxz7wm^2qJ{|@pN(Aiy{uCg65#_1YpkLc&d~z9;Sbt!w-euR#}j{bVcSQS#(x$f|;cGB&-<7O39>_EDK3XhZ%P*s&#{`D~>Y zFbl5}6T`X%#qjU5#j~5duFV)yeFIu&vg^o4r3J0zwq;__CK8eQMq74WXiEE z;yRB!nh!mO6F;I$b{7g=)&Z>(NE8iUMBXCilK02`gHM0XtcPN|1OLa)wsW>%+qiN< zCt}{{=WQ%QevKtQG2>bqQ}H&%0a-XIL51U_Q_5$6(P}vBobwd$D`|O|q%!Ii zd}Yx$6%rq@*!l^A&irBkvkm9g{$#h(Ij|FtGfM!>Kr_Fn@xiL1 z+1^yY_^lXKdx=@(ye+9y=f5|5izgvI-$%LC_a{F6xi9I}^XAUWTw>xfDkApB7H{mq zA7B6dEXkQ4wvm&!<4pwhvL?NOzE%3bM#k)VGP_N;^u+Nz?3QZya{0beYX?bm9G{W1 zEYYj}%Xbk&;e!e3>gkpzauqRV3~oO48;VsNAd7*={q?z`$A!ybjJ= z>Ex~59cJShiA6`zc2CAj8fyyI5f!%0oxK8 zZ_YfJ&g$jhBDgWOTVqUDwsfrNDN8V=9+}M&ZU|{x_#Dzg@$vIH`B}Ry@(AdLAKR`s z_en(=D>#w6z>urvDR%q*HR7)*MP;2A9`z))N`sQn2?6^<4L^7}N;&g+5i+?o&6uhY zYRD^ND*W7#70Vgp?BN<6M;?7_7D(N1z2(Oi!ud`=0sEH2kFWrPGSX1CsWt5)#LW|X zS@A%P6Q|OED8CERZ2~(xY}cnGt+95NDId8|=;`T|pL^dNE7@k6LU`aONUR~QK=qnF zF!j4>IJCBMq`VZpp6tMZf3i)C<8f zPttM;l-mN|c7bzdjZg;r&zNbaLnC)c?(M!_g0DYy{y7Sawp#0z@T?D+eb%UbPfSF| z)P141PvnCmwN-1@X#2OzZt$K^sni|%lSQDM;6!fo*3E6%+vIT^3LcNA)~lnHe&;P3 zl}Cx~E&vHEcEtEma}P?9d+78#=KB2{a-q#fsq3CG>Nt-Aj@AibCGY6a99tM(yVjUd zWh5Lu-A1qD?t)iH-;s7iv^3f{r$w0Z*x4F#jsfw}2hK2iXqR5LP;Mj7Q%~8smU;7b zm%HrAC$c2P4&!+IT*5?0hi)fU1K7?)JWn&mF$zyZQ$>BqjFhEE#QV$^u^gqW8b<4oIay)1!kj!n(;PK3zY5?el~3Z ztfOhnOoW+Q8*%&*rn11c1}L-+YMb`8%9eV<=i*IEd=pZeOjJ}en@hj&S%oiMs@tQq z${9>8SqvSNU$#o*g4*P%`LHgrYN5eGG&Ej9HztI2#~r3Cg4RbpnQzUEHdEk7&oaCg zp>AAhsaMICjuipU=9H7FrN+ofrPZf6U^LJWIsj4g2l{!uY1B3MI)o^lU9k3Jp9Vw* zvWO+j=S7)0`Em1&KNN+_7k)#o462v}(>VYvsK5<~dys_LV3&0N^(TFAS^;#ORqVi) z-RA8kI=J8a-Vfx@KM_mv7Iq#S4H|{ljJ3$qsTUGcxwbvf)+(bwts`sI^&mcC#@f|Gk&$MU`y-pq zPZR8yRE$Z#%`KlJvjP3s)mD8zAo2%YzFRZsCxO|U5p$|BmiAXhO@CkaamwZE)0$_a z)5fRa4~4V;WWYqZnifsEMF7b}SGt?mW-UVG(F0f1+dEx;wEI`CFm%te>#om{=ds8B zTnb2kmoHx--zU!hl-ze7^HyC+u5kH4)hKX#<*caL5j1AAy<~{lT zO6}>aEuwAOT(&u!X5=|y1UWc73 zHBfb?8XRL2np4ubnCjQf-&?f>^o`k=QeR8-zmgfLw&YY!EoihJDa=|-T5y`KyilB#Z z{J2=ItRjp01=8NdGxg0*)pe{RI5+ zgeoEIwSYkD?YP`^$8Cy?{(e2mP>bmJ&O1!|o86bF%iq;)Qr#b3_dU5xG^4ikRmf-S z@fOhB({Hp!Bgj%phvbGI$>lr&B}7LH(RH*|8&TVBx7?&ulmQ*8+x;vB2ZPrRO6y#s z)I{D9PQ~80yh~^iKlfE)4=06$KlNnOAxdh8o=!v1Lt`chh$EIg40yPhDz-e~#2gZK zwze(LBxxkO4IemB7)@7w8aHbYy3o|SP3wS>vYB5zfyw>Tp3d;nC$J@EITYumWYjNG_+96zb^_MQH&VQ|r9|C>Lf8&Hj=-%$(7SAc)+l zUc&yZ&Ipg28X^zO3x2Ah5b^s6kqD2}6rOLLM63B{3$?%`FiNvv$?~LP*>zSqCTQN|Gbkplk22lyF65IyJ#KXI@bz^O<=SkWt}Il@(lJ}od8+RbS{ zKr&6uGUW@erG99NN26n-{c8upci8f(*O->{y^HUYyT_g{%Cg|xNyLefgUM^`#F*!Q z{4CKSWcKV`%5m~@ zzfzCOsYw-k1p2@l-ZD0z`Ty>?T@l`Q{7G`r=ZSSh+oxDCy%%Uw=2#0jw%c#Jk&NX2 zXA+0-=Ub1egvcW9G@QsJ+_^?)q@ydw6DtwgH4%eaMG9db+!1xlNb zA44K%MtJ{#ofuEZJ>Yi`G`C8Cn$upCn%gwc#4!|#U7cF}k{W`VK*KR{1BUU@`j1>i zyW3&q_OUU)uVU`=cU8=%moK+6glFMbuhg&I=j|?c{(Kt=lRtpqbi<0D!WkViEg(wH z+y1_OBjT!f@nmnLoZxaexea~?`*SvEv}k-%zNg~I#2+cAZ>`Nw2*nqT_!0gPli3+H zCPq>8GjR|zDINM1XoSa*nD6+gvt}Msjn(7;V&hB&zX44Bv&Ss)YR1teB&-)Hcq)`~ zyDWpv{w92=v7kST+ry-kg{oR>JTgR|#r57aRV$+7KRK~`@BOtRU}JJ(+*Z^+w|B^D z7T47nfPllFy(4Es zF=9#5g1PX66Vd%gi##tegsWgmNVvfH11RKOYVp)^lX#lt#lmRkv}yXDhKENq*-PRt zSInQ@N!KRD)E%s?pIHcKDB4?v0-EyAnf+YFL;@>d zEq|O`^T;cqHY1;&4!1J{I)38u#}vw*P^@p%bfUiTZ5)RjvW~4c=CH36BctPM@AQKW9!j_(|q%4 zmD{$`{l+4dcALN#{+Xf4)9;owo!dz`+Rt^j${LbV={$;LlXfPqM8VBdCHYv|KS=xv zacs4~<_}sxqi)NSQgynuv;$sc_J3yijv(Q$fBkC}a@SpV%jKcIvOc7rScU59GOec~ z(}YKYcY!0B7`2%39%hfyLVHr_h~JYfVF$%%M$!JUzfudU_N9k*erAPnHfe{_K8VB> zt)E516itxlyEDHXq*8foL@f+ZTwzgxNm zG|wwb&HIk`>j5hZx53>!3b3X7C*=q3w?$dXploYyrIKu!Y%}$Qe0EYtPFC*2J0GC+ zMsJ9>oq4r58LpZ9xnkkviXa_i2YMrYeFiS{GmT(FBIS0Dc$PAxU4CDgW6Zez6O+~(b{+zBk2E= z5q07?S}4w?I`8;1}47C&hL9mYVMk>CT!_r1p*FApaG9(>>-`Ps*!wEOJ6mqK3sYCG$G#T8e{rM@~5 zFMp>S0f#bt0Oy&hSEs}Kp%zn$HG?zh-|s)R-6Wr`g}fvatyk*MDrCqBe8g{#w9>o6Y|GE!AJ!^_<8n1$eAU*YXf^ z`|=u0nB)N+YlW9kRhXr}f0!vgV)^LLNV#O#)+OZoNlG3Cs99871MNo;l$GC=wSdY( zt@7Iq_I0~W_R~-MTTw_7$#A;>m?g^kBbsBaCJt+C#9|Te#NySnGt-FmA!LgYQ%B0t z-w3sOwu~YjPMr3y=@a`hR6fn93#4tpuwZM#FE0$v<*2iVU91^NW&UUpsD#AJdM{wH zsP9}6C+Ib01Sj!us+^GtJ_W6lOH3HiE4>-t%AZ{~R>I4Mu;99g36d&>*hopT+H^A3 z1}>Dbng#Yx{9>JRzfg{2Df%Op$EK-prRG4Fn`=I7kr{g1lPW#zUGai50v@Xdv zNLztD!IC9P<-ctFSM-tdI&rUy*ieH`{Ay^ESTE$}SOiMuon4cM^S$JSZcn?;^cpC! z9CX4!buVbh+7`GyD!GjCYsi@3!MRoOL<%q29Wag@ej-XHEU?zo-EBDimRtW_ZUne! zB|W{|G<@Q1chCUH>NaEjEO8t5?cg8uQx54IfXiT*-r{~hY}@=P3Ua}X5`~EUnU|t< z=X`IjV*wxo&Hi>Gx3#0Uw}Xl$X}*hYqCXZZhBIX}ReECkY!iNfKQ7e)d<~n>Z6e5JO+%BaXp>26w$egA=2MNy2xY08N-YT90>2@iwL+ zFZeUgMn)MrQdG2fqLxv_xk-Z}X^&LRCPIJ4ukh6Km)_goyu6#YB^+9g8>taW2xF|I zBUH|v@y2OSy93fRNz6h~-|E$3%LLIJrIo*zsG*<7-Q)-#<79+VEi8`~iHXbZ2<4;~ zXzeJECT5;aOR7^SfQF3)ouX+DQV?u`j~_Xkcf&ex;BYzCsZTTs%f*lkI}RvWfidP zDEpKCZaa0_3MDPi<5ii@KjBzHgzhTWjWQA;Le$c!Ad;K7S(n)LF5{DmGzsUISFpG^ zRK{H2U)f1!B}Bs~BBPXJC{{#p@dN<-0a0^2mZV(r7`nCnOCDaLB3$a+Pb|wcztJ>? z;6L{x3*>p}eh0|KP)BR9_#|sQ+ILe;rSPEdP~Vx!j*%0YygOSd(#gq1i>|H8qTek( z5(tWn+79S!=y-pYia1GAE9lh_o<)-f{wyKWpm`Nzf|X)O!ilzNWd`vruCSDiq|@#T5{1@6SM8)Z$af1 zW>>;z9KUz)qZg{KLyZ{u$fKce}75uASMofHAqW5^czM00h>R#&!Cu7d%^BmYRObWMOQtn?6e*y z0O)snSK>9J{U2hc^BL8wY@##d-)Whvf>zUQwm@tF<3{ymF{KOb>-*MLfPZY}0KaUJ zuvg8&6q{}f`y~T0bKE8ssof8lxKODk=MT1Uu{S0=RRq*we@Z*RM$o5DV*;Abx>}$H z2Y?KVHH5V&zg9UrzIcI;MDk>U2F_(z( ziA;Hj6Llwe8|Bx85ED(?s_eGPPwuV)<5M<}AiBo&_BKIG*rpe+CQNMNR81-!9Xeo% z%oJk-vJNEU?4}5$O#-nA_SH>DT?`J7Dz9AGC(ltw9wzstFMSz-azFlmE|h!mKblL9 z$mPfUL@Q@yIpq-XGRb4e=Py}EVCH`L%4_B47O*T(9&+I%M4ocOu+Ce6^uKu7RZ2x$ zt@U&7d2R_=ZOjEfUkCSK$5DOoA%`l$|9H*+l8ZGY;=@zor=0ks8^1Wl-bc>0)?56$ z#d0MnRUvz)&ye4Q-?9lBtZA|!P!eHDAwLAIk_D;LI0t|hlSzk4%Lij7r3zeKEERrY zQmXvh7!toJnElv3#~%CFihRx0*78i^%tct$2mALOJpyw-PR2Zup(&Lkn#7_`)TZmI5mN-v8hd{l5RfE9J5W z!0W-m0eSddD0yeM?bD>$)pswjL=;#rlGb%;tJGg^8!h%u93g}=KIxrEl%~P{YmEgU zMs51H^A>Pns&SxpyxyNOu(I8O#Hx!;(410!wVk)x)~G(V8GQC%kABGS2ZSYHYgD7L zJmEo8T$A>QIrTG2F?p^T6bp_a#@f#PH5Py~&zPSzN|bVfjF3j99cLG+f&EPqWm2lN z@MaY7AWv^|s~VthvnnB(oy%MEvUsR4<-k2~Z*3LXb^eT2C*w-U3K>IEIsN<|d*Jk9-+tYGm85h`Fm?=&ph_0{0TMq&dpipoU0Q4?5B6jyzuC# z$u3uE;7*Euiz0FIF5^GWHtYd#7>6%{RD8ee1jMg~@JKoCAJkX? zV$`O8J8uC^B`E1?cDJ*Dm5&KwImY5@pc>wl@0-82bPH@JY#3+0w3ujeH$GI4ph?E0 zI!wuS1y~P=wWa%G%I8yr4;rl4D4pf_ zH|CZ1=WCRYgZ)KtQ2yv!S!DuC3t(pcH=ZLo*trtfgZ8Ffo0c&k>0Qz_| zsSE0Yzep*{Iw9O;3|vvbUu=PHA<-+TW^=Ks{PfGxrH{$~*kg~%owu8z{(OBwzIoYq zUjJRmYf>OQx@bMq{*iLr10X)V$r#R;jX1IW*&QLgbo$qR;g3j-IC+}+5laiCJGmT^ z!B0Q|EJ+Em>4RUg;^7e?)#6 zrSdSsi&_8_Ul_&j3RYFD1yp@|d~O+YDgS`jBT3}pv9k0f%2*!#*0;Z_H?wE;%H7fL znV?jQ7yq|H=I;7DxmfjyrBz_|P+#J7bx%_`yal#D&03Rs$8~|aWaGH>=oSrmnLX=q zPH}%F?E(0meeoNI9x|J}LdK3e%vJ>AGgr`#<#LqD)BM|PfpQBl`}=R30(deu-cE{* z=qB2<9mi#jrC80sTeJm=?WP&2hbaJmm7DEayWFno*c_%GMQT2Te4T#sy=mV=tU zsurja0bTW#FX?q$Rr0u!m8#yl0mcNa#IzMFkDH5$dh{_zWau$1s7ji?RYkA&6PfbT z$CoNXq(l5z5<);FXrb^n$}ypkZqf1tNh8RX^F%*M|6RTrPY*zU^SNOEdi0qH_~wxy zgCo#ysh6t1zfZ5wwN=vHEPm}R;sJe-`IKHbpJ zU;Ks1So05B(xAME)=Rk0Qh?LvJa?CT@^ywlr?i7*qX=97B&5Ik2hCsxTv$FlI~sb}E|4vd()?6Rvo_4ZftXqvkmNbC1bx5)CRenuV?y&4pO_*&VW(l}L2 z+nJINuijEa*gPjo$g+!@QG=;S!}(DKN`4=d&$?z58tr=D6Kt6hHPwyVq5*QgzI z!tuu`gnOr>4N(Q^VQ&K$-N;eI8oupLy||UE%kMDY>^f-~v2pwp9={IwHeD{ES8=|| z@1K!2QFi`}`6`|?j&Yj)W($;CKuEWx9;o+c@f>fba=J4yS*SLKCKp-(<#JK*4#h|2Mw zbnvv~1-FMa7%S6}hGUFRNt#9t{~kBG}XVgAYY z{N}g&@AqNeAcWne0}vb*UCNmn0HmaOuxXAdHHxgavn40q{VP^ln?JeCc3iLzdi?PxWHIN=G0y3e7k*y7 zIWjsTA@bnhka?vq)K=(d@6zJYDX>~>|Lnz=0gAJ<>+6X+S21lItLzHE8N@jF|L)|I z<@xn5e<^p|b<(Gv8fBtD-TlD3l-f=!^6*b zu~~p!FrZJc`D}wNpqWThjBH(K%a^@GRYHEv9lAJEZ}n^w)e2w`ujwG8u9lVG)fci~ zO;7C>Nd4W@GhOd>AFtdf?K%j?x+k3IILgAaf3!TTgc14j!+NNA`@ zTobyqLzX=J2o&Thf{^47ulxRq^H2WPKYxQ2;*L9RfB7p8_|Ko-smMb5bDq01SX=RT z-DM8`h|n`?H9a3Y$Ik4GN{iI}FQU%Mkqm2&35D z(=DB#7H$qe6N9&nyH75AT#@tVHnKj_TUvPjDb~x+onu-VjXd1_@WIoLS7ZbS*{*e# ze8VU|@q{7nOD_Jj+<4bg#BpR%Pgb54pvrUVseh}Go-W%viTi5#*5FjcA;A_+6{+lJ zx=%tP@nXyJryiHq&*&{NI#EZNrpyH zJuWJemh~e29Pk?{GRkzK!nH#sM?8Rzf!X{q(IUP^;TnO)0r=98PT{)TpEK?KgBB<8 z1b#Ar5j(m4pD5*rGeG(;AS-I+ofZA?2c+Ltv>gccHPQdk-h@Knm@71zTsj~7H=g4q zoGL}^&-}wA&Zt9YGR_H<2bZQ}M{vZCAaCq~zhucDV+Qi8to!eOfYtzc4nE|qRd1Is ze@d?oe)C(O|AObs^T?7v&Dvq7cx6FV{4MbFjRzh2qTT0_kzX=bAud&uIq0?bsU!V2 zfn0ZEtaL5GD>R#KvjwJ33uqb84sENH5rfw9)G1zLC9$d9xls4mDd5s+fX31{V`VLn z7J&c#!TAaT`No^Dh=-;G=w8$MU%%&s?|%CmdbQ8q`#$jddv*46bX?Hc);c}Cy*py% zL#WF1b4%g!C`6orL_jy+{BLi1(_0kzxZ{q`_zC6m(4Uq(=ecv9S^m_lnLGUazkbe| zmMDx(CU-dVj1xtT@>?NF56F&Rc_hWuuMa{0K(cZr;3}oIzcPX#R}4z#x6o1uepNvk zp<`2T?Iq@hxeGpck`hMjALV@@qmO+2Q;NfR;El)rv7C|(=w~Nfj$04qG$!H#B%a7L z;Q$DM!s}oET6yle>+VRfrhm~w<61x{^jbD@6dp&y!pkpFNaL9Lw3Cm^a)dIu5C~=b zlp&tc%@Wr1fMgS$U{waBmLXO}xbwDKW1ejOcJ6s z;3{wJi1%YIl$@{W@7yZzy_qDxnTda-#%enwFb8w+Mk|{<0rPHMK*mr;~_Y= z0WXW*6nh$R{(&0jnLKHRWy|{?4RHVn=tTm-j^;aU2ci=wz?6au|Ht955pxFXjtOX(x6!y=oRAmJ)zM%Ou)&gk(V6{j34+jue zq${uZauqc~w9@LIB;(rtC4%O6c_iP@Hi4nT%8&n=tFMgIG7bO%%MCyJzTPH@YOp|( zw?hz#u!lj($t%9a&*=o=gcrYL|9xNb;w*yBO=kY+0s9jY{rM2dIz=L`y^+qw_>qan z8i5GX$zHe98PQqPLfM#nW7?TBZGY(LrwuoCb=ud5#2;)0w}F;DxF&J{JIpjGHX0OB zimE_8Sbf2di(rj$62p@~*Mk~?1yDx%A6pNaF(l>XkcjagkF(|V?t6Odq^PXSWW|FT zbm$#MLfoN|2~Nd_GNp?4d?1x5`Xve)b=(f3vs!nDooO>F$p`il%JLy=4{3wboiJwt4!iVR335*lYx97(UO&|eB zR*^JHT`B|3a;s&Lp4}b|zWeX{o&L>z{_cmo<;~CT$~J4)Y=LK43+TMU;LwmAPAurA zQnOGI8G=$}%gb{qr1`gY3lyW~wRD6PE9yw3bFGe#5>|3LalMiV$ir-%;mn)=OgbA8 zZACxSVhHGfaJT_hFjh9uWh^bZVDl$h8A@gL*O8|oe&#NH^iSef=Iru z%8)**76}zbig8(FsY}Z*b7*o4Z5@RcT}5OPy$QEpZ+xgHQ3(6;SdVE$k2_x@5z)h0 zQ;>DEio?21oC`kp1$iPOt4EFaxG{bVkN#*&XVt1Tz$-U(>aa`vPRy`+i{nHqHoUFKnLUEFPN3kcse@L$&a@H@iua!2}_EE2hxuk;WCH$d3@6W%RPjQQ!$eNiFt6hfpQOCD3jdO?{G?4F*14wWNE zY`b3d_3tVgbtD9Tqz|3w#uGL%98Ti0h1X<(-EK>VpX@Nf+35QcBPAoX;sDfN`Yb2h zx=!1~gkHtHfrziMS!;Si;sCH2=X^i$*ZL9mBaSd>{@{RV^&In#cgSU|av#7w_n465 z_B-y%!sXG^-EDIGYrpv&x$ipmIJy1(CIgR8pNFuQ*5-Qy=^V0uJKf>@9ixc;r6rN? zcltSGXijw6Oq*%(%Afc`e;wzCDA!rJ8f9*al*Z~N(E{>Jw_#`56OU*an6<-mjy&@1 zRO9i-9%YM_MTo%2CQm-CY{PBQEPAsArhE&aZRZzMOAcf<2w9}J6EmoryniZ0Kr|&7 zHsYhGdan~@2^^8{6SZz;h@1Gv!jAmgLzC_eXJsBA}o7yncQyI4~di+KT)bn-9dR+F~SeW9JOwUdGn9$BxBS#q9n0Y_-T`9 z%|Dho8CXOAP50}T_?yJpFj+VuLXs|uw^(e?n0pMT4E0>_J|l`wKqE+)UCL$#{2k6K zx!qu(8DK&NK}X}*V@$#a=!lczw7Iw_){$I*dN102PsMrYPY=jly!c+ZM;>*ITx1XX z?f)|QciLf=-1y{A4`8MO>%!8HRAhwqOtm_Ltq@sjk_%@5wYV!2`x^TKjF6~n&Q3sE z(6E9|+;K^>bl_7{-JM${e&|L5wqtjoZ^gCOUbP)JK(p%27MSWSFfcHn4FHu=n*US1 ztlL8Q5(f}5KE(#xCcjI=BZdNVMIlKE-J5kfcmmcR@cyt{%ZV!()Ic$;Z^R^obqPd9 zOuKxl@|iKCyc*|q{D})%$Dh;!%7XnwjvUhuU$NnV2uZ7`|A4~Km`MqFC>!S$ zU%$VcEQMywmv#HpGtLsZ=k2=d`Vrme*t4da-V10Q%mTK8aF5%g?;mvR??G@0yj`^D zT6vB+<|w&4?>w8p%mq18yJ+2u7N9+2JJ9|$Qsw$IqCCz<%Km}!jg%RU(K2XOFnJOM z-{~Pd#^){JkqfLC;htj+nz?XNF%G#KfO7z`Y>@{-L^W&@er_P$m&T)>-_feOhDoEUzXCKG5 z2PB7a#jYM4SbW>$0Ag!2{mm9=w!k*l0uBuAO5oM%()*8y4P#$XC)@iXgNf65){gf*48T?pJ_tHx)Qi{a2c-;p_joScyZ+Yxb@sV0a zor(&LX4k*&={5}2zqa3!IBFv;F1phD?z@M69((M2vsV>3IzW-3VM9+yKlANbFBN2w zM1!G-N$W-IL!ZK1pi^Y>VPQ$X*9-|PsVXq9X8=twxap!;b&a=Zjs`=4(b!mym?BBi-9A1vkw&rRMCrWo5v3>Ty*Rlji!Z$|{{{P#JAU3p z4u%kJA49t%))aqC70X}FsdT;}#^-IsWf5b>w2k;bcFqDtYj;WRNVvI__Ln91Mu=>t zI4f703>2woXQx>;0X>yutd7>50mq8HOheTy$?t#vU{!d+m?4z*Ph-q+Q=S9JrwRlT z-$1{B;?awMa_oIlF*Xu6fb|$3g50zf`W8I6`H0<{hLmzIKEvg~E z5o~Ccor&RzJ2$isCw}Ou*dv^PiQmGoYZE0pvCV@&%5R8y>KSLsqx*m4a)#eH_vX`V zfo2OdTVU$9K)USAXaB6U`XyAINrV($`96!-^wem9;=lgjI|`oWRvsfh;(Tv^zsb=O z260p#wK9^7Dd=F-z{tM5js|-aZH{x{A)+J{{vehioq}`if`aV*l^!hP&v0GZsDXo@ zQbq10U#b`qW0rC#{{`bj1QhWLEkg)&Qk#?stiyNKhfh@u*7mW{ave#A&2%vMItXos z*Grc^Dym@rQ9r@hRWuHuv)$nz2;H$i7;4;i;_|yb`J&POvE^yus3)FAf{z^hjF5@I z8IUTESYt@M`;^{{<%ygDnnLgmXxBsud%ny`w(AzF7~${}(2seMHs*^T-3-P|o1bWv zd|R(#`D3cY-A-8hH^O<4w!{-#SHXGEZXoD*;yt!!zDHt7lJ-%W6O6J9^T?&v5qnY> zsEN-pB97Bz_zPcT`$O@8kL1K`D%JQ{S7)ycF$exx9!2#42VDp z@h3hKO-t8?qP|fFEMkA`fDZa;7~AV8ag9*JrEQ~3f|2%#b3dF#JN?YF<>yPz0-K&@ z3p87x*#c9v1vL4$hHYEF1iiTal+|m9}=VibucmuT=&az{yGio<(9F z*AOB^gd5QlZwW!3#WgP_^if6!$hg5opv8pmd>0#(m-1rcJS&;4{f3d@S7OXO!b;@~ zkeWE~95LUHqMcp9@MzQ#inSvxArvP{PLXEDGN6^ls!RO5+v{8x+EWgsDxxf0WV#1^ ze$JK`lT#xO?NdQ0_oERyB%;3P_|NP$?60fe?3HW&pot6;8S^`vB2FQfkAB2Z#uZ;( zDEFCXjGLr{{f@Z8r2ndWI zsGy)IqvAG#fS}?w>WDKk;xg_GxQ#f7ps3)WfU*i13_}o*AOV7)1V~6A0YcX9^!B>@ z`=9f>@Am1w{W`Ccbh^{Imrz}|ZdKi?^XgWe{Uo?y&}!gmO!2Nx3BG9PdDiZ;RJi1c z$Cc6#_$D<=c&OdMSH(&oK7})@5Em+>XP#!q?9Mkuq1Z~yt`J(qG}ig@*GvZkk3Erg zq)vnbUl1B-HGto-MW9_;b+*v?y$(D4Naf?N{K-%MyGqXg=9iV$y8gH_x@a5eFv>}z ztw0?41sDEI6*}6Dlm5L6exmd@SN}@sBY*je(!W0PXQemRApit~{tG`-+ zgYr7Bx;r{_rY%{vRCx}!Cs#blugkfFc0VI%?`Ty9|C&@rj|iL{Y9Nb=(>A7HQuF}s zQ|!!G_QnR8Ja55nIpS`dz~GpxR#}9csZ*zBTK5-3zm<`i!RyYl#@|{}Bt7r{_~X_)+D-#hB@5KKWsl@auq?f+Zyw zbkLfh!!Lg2n`F{-+LUR^M_-jZ;uoZ!DCJ5UrkO(zv#$*QJkeuoQ=`#U-#YgPX-zV5 zZA2P{b&^mvUX_@@gPIS%H8rlP80jqWr5bz_(IobatpIdSocjuo-kiK*-5OyuQWyh>+G;~i!N5L$MxeI$I}j8W3%gaL#uu7iSB%z>-9^vTU}jWU*9WV z5NI5U7O0UfP`%2F-4^2(-gw?AepVE8`bVcT8MFRCgSCeHQvk|oNZ z*RMF|$}_5edXMo)e)_Y^lyb$M@6@Lt64299SRzVEWExhYzDHMmJ%njXjjjKeuX? zq%XV9*maNH_E05ue`V&*y>9m3zg(Ww68=Eh4yx|HbN&nWdf}iz!Sm+cbn+=@h#pjw zt{bkqrhM!CNe+P=0y`K4jBTQ=yL8zZ(9iDILp?T2y(2&Nz zG@_7=d6eaz11d=cuDSm( zaT{@{*iSYe&-}>G{m<_V#s{-)w@pcV@bJ^pY`Bu_Fa6b>=>XugLPUXa7aU)s!pSF{ zq|B6^%>T)wk3CM|kSQ2?d<5nTJQF<-$JV2UNvvNkpY0hN%P0@vEtUUvyerDLA}2la zZOK<9xM#UB4qYB+9cz>;k9CI6m+K*09{tV_-)F+F_umLjD(Zv#M@{zZFOu!K&%ZD2 z3{vVu56$e)tKA07B6!<6l<}9u0ge7fY5wcygTvm{ZC@=Xf^i;7n*KdSI|!)b#R)#^QTvn?Coo7->C7|)hmLCs1UPZ zF4P-+FxkI|cBh!>4VXZiqDvN`l&m7Jsz~el+vE0Cv}Grue%Uqb8yWo+JM9L4qU>z+ zv+4BM<4zFbulcAdQGb;=;FSm8b?4n(9qWkSHmH|c7g$lKV87b^2UXDRLl6F0@_;2v zpU6JSOL7S05ZG}cFaWVM4S(D84GVD%AR_>3>|R$u$n;nR0-DlokNfju3IF#IBtM-E zi2;o>*}wn>YnG!OIr7K7`E57d*w3Q5?B_q#8KAK5idNIw`kb)o8?V2bVDT6I=!b(2 z7S5=J_uZc!8wp_i&+T{IDsgcd95{Uxapbg68OBKoSbTD_`677j(Z}6*<8P{ZYfk+@ zBBj{x+LD$N(6_v*psJBmPXJoF8#3{U3cwopINy=-BL}GY6S_{Z@-uC z^Wxc;{^Y+^e#RLe(IE9MjrOj)@0v5`z-zAh)vDF2ID2DUB*s=QB^oLce8wMneC1kg z`*Ls}_^NFlDG6+jm`XjaI0Xej$_OJdK5yQwD%^L!mnwbj(Z>ukg|p8wKS;!`qFNT0 z0YCl5dH@ z`7kA)`pnsS`mL{jNhxcaerN(@X3W@am>!0IgdZ3r0o3Fz1^0d$SMm>j^t0i+N}nR( z_?>SNtP>ugc@oFZFOoJKGSlW-Mu~N?OTQ$OaH8L~7DWZq&Mp*Nd88D^aVRDjy^8yK z`-*M>K<8RH;>L*SkiLsJ!{D+M?mWY|+yfklgyzVpO)P`Jr7(KQMt z3mg3ls^UBHa|!ub>;9ZVAQ4;G@Qsw#s?(S8kP>BD14=fbzsaA3Kk5;34G|UC=&m4gU>3@9v+iJB@e8cf{K>-k( z3I3_vuIMVbzaXbkp8x^yspuonc;3u)Tm+NzL|-c9qu!U7$q61ivw5 z{2HlAdPRIT8*iE3h%nsc5z{DXcMq2x8|}Boi)w3|jRdNz;0%M~-RoqB`$nyHi)i$1 z(pPU`=JQ|r#-JXehSH!%72cxX#T+ZqH;dguHy}S?)j>T_Vjkbb=-1Ydeo`tNHq5uW z*wrbHPtuzQmw-+ZCN6ASR?0>(_&1x#sGO5dq%c~c$#cZvhv~K$tag_ze^MngW|&6b zqD2oXecjP-RC?N}CwsZk4PX6QKke89lgG!v8;eBBQ@xT-oo9zg*vI;uZH^@b@~Rlq z0%$}U3(7dkZ(<43ml_8b<%vy(i(m)uq(cm9dn*!iMiwYaMSRSD+5YM9TU+e|yZw&a zQ`%YVoyZiD>}BQ3XNlIGwo*nC=4-FH`skyNjfKi9I%8_tFz8W!n?oRnz?MV6IVDLq zw!Q106`AXw{_S2x18)8BEWKOR`By3!nA?z6W0VqS+7s<H^0{FBv<`z8<&ib^Q=}YjXcB>o(Y1 zP*q?giFK&=Lo#h=;{vaI`dOtsHP16PwmK@L<%thSFRgPrxIK8&g8pcA4fmvBh@C*Z zDn^T4MN^~EF;hbv+UtI6>jxN4onkmC@Bv>YR-!`Ys=R%pp*z@)9DCgH%8!Qt96{s0 zi_xBO>U%U8C}zHQ#uoRP*?&Jrg^ugn2dGP${_+D_(_55yuiMJ1#lhEFD0X)C$-Y1a z!cG+GL9MG_CRl&c+IsNV+SRT8i`%_Xhs{bGoPwM_-PY&t=iQd3Z#v#AUa!8|1fOsF z$2Tc$@inZBu4cE5hbB1Y=)p3cF8>uKH%}6Q4D+Ag2>KxLt?TdQlZrSyKAOP&`K=pk zZ6(Bgl86FDUxBPcY97aj$7n`Y6e&rCzAut*cFter- z&K!1f71}>A0pb7J@dsD}+W}y@2;v$It4Tf@Lr(g%QTzB@VKph#utxEfo7HuR0&sgd zxJC36@zZ!p<3%TG2gUbhb?vDy-ey{j-jEZ38)8+<`4+JN^5E3O`k8y9Q2@=2{q}ow z8_!13BGTT$GT@ruT%ihjqfq`t0$!V#u&IPrV(#mxgeDM;qHsCnNp)bP)4%YCrhh_j z@r{h3lJtM)-l%F&OY}hJyUp6OlICMl2doyHnuxVMRSiB18xB}AbU-)S8ojotmOZgl z>Cb;*rzY5ne7PtO7R88x6NMX5e}+a?Y*oD>5ouZX^Z3C>spOF55B+R$)}X>@fwT) zOo}l#H=8vt_S;^?I#mYTpAs;>0l2?EC`DAZw^L_b@cx8qlWb4=WJV*M}sWTjy7zzzOHom=GM zt12Djpv)D&vRQC_;EWF{bIaVDl)mzygOx_gpxf7^hAZ4ZiI43k0T%VzS2c9TS@iD( zIR`6>y$;-;ca_#BtB*2Ekz|15C)^i*Xc9T!qm(8P_PyPU6WS4pLbb2biAe!4+dR!7 zkV9a*hCn|W?>N2BB|)N%?Qe&H(0}LhBh>X8GCNg6?YiD5sjokw%9ugL4zBTZ6_ERX z;?rkqRNwo~*VD0O`SqMFoH=mYsT0reXh}d>)m7%=DJ%JNfxp^1RW{3+D93dr$Nkg4CY#JbGm0 zjUWHSS%bz9Z=YNJoNkBLqM?2zS{zwTmH005XmJ4Zot+2Wy20>e^s=i8z7~8XM;SnZ zcf0<>>eXgZnQ$uIa|`@d{0NC=*VDCYS1WCB%VDtoXhEt+y0AHDX>Q?GDHaLMbtY9R z_8Bcgt9I9@Y4wOp;77z?<>{2k#^EKF8QgZ=>U#BIhbled$k!?bD+I5%XQeA@F->xv zqItictB3P${XeBekKhKz4IUS1CgLu&wr)_(gl=%%aIn{n&dhFbC!a)I*wZ~Gf#a|A z2(<9=XYR7Ay~_y@z7b?FD%907c_*bno4K#s(5e#X=E{9ZRkAiJSz{kQ{k?kol&K~= ziIMmsUx8T+;5r2DzS*;9tL=&vPilJyp4vJU6r@@{KehF1&({*_lWL%{S_#!c`t=-b zFC^A_4%U*D((l8Z<;RGzGKGOz|zMOUF{)GE8pK7TVy`9~gGZV&t_H&e=&KlQX~ z?Ywx2(sk|=>ByswQNGI~XEaS})-d!sl@wh5gho(86I2;bA04EIhI(az2GoFmSoVCA zSH%6P%>EO1NLJn2_4chrzf#m6ynAl)m3f660yzY72y7b&gssrnD8BF8o1LdpO6@$T zQdpQcBr4b;VQ9Z?#r`i=8Qpvs`RKlA3wuvw0DHY)FLi`xd~}vM8Nm9b#-pkzF7op}C(fm3t((Iml=f)tyY67;LWddKgYrx-SeU(b3MqW9Pj zJj4|_Xan%~$Y%C-aTesUsYAOwEAt?JlZ)|_xn%iwaX>c(KX+Y4<41F4&+yWdar4*p za}u7T^Ec6fX>o7<$taz=CUQW*=>zd(^=Q{!cCiXh6M&!AyHEBm*P@v^b$Zgg^aqN{ zg1*`c@zj5Jo`ajWxG(i~x0Z0dj;c<_i{aOU3kx??6Zpt*()ZhMf0az0I!!5@-zL`p znd&96fAZy0G_}yj&uZm^8-D7OpGccCD&|6Ai9Rse1^TJA&GdE(J+>-3o?4NX(-sOK z&bQ6Aq|8r_VU7l+b?c2j13vsxz?^lfN27X8aebsSPJMU!7N|Wq1j#oZHfZouzI2+z zuORLi)1`maSM|&@&!`%^zx?^w=I)xG();N(`oK(tcA2@`^LE{}*ZJK-`Bh1JK`QU? zbt2k9|Mki-L{A^~CHxA+^~LsL-QQ0)CQDw+fQw1^mN;gBm2gL0^q^AwZ?0n6yjTE&xd%b#HX=5 za{4F-@E~)PBzV1J;`OdE-4*=uGoFN=2%~<}Ti&j_|Gnh~rFa-6WPfVC%Xs##zreaf9a+B?x%eALe7yb-;xsSpXuSYTYs<2?{2@ ziM0EYrvNM98&7ryTLMW5E1{#KO(k!B%iEM5|JHXXZEG{RMZ6X-UVP|buU@d=&a`mV zD$|KdXhHYinMkU3Hfr*)!(OixTh6s>ttN1LdgV&x(R@daLR>;t;QNB<4|!x@YNG4b zTW=*ZDBXMSy;X9}wPqzS#N|{ht5ngrbo%fvMoxXG1jZA0C%!NCCE{TaTP?AG4lm2@ zLdjm|6foiYsLqTMO3S4V#1)8pc<4CK<`BpskV7Dcz~(~0wH%Vhj-_mFN2A< zA6}~0;oUG|yKxNY??)Y>tnR;_ZtUoo0KCAvPD-5b51)&3GQqozc1t|} z9rxz9DnIw;>(e1cj3d$(kq$_3knk=}LVO1i0WH!5Y3Ir?wpcBK>$AL5R6 zxK|wcbJx{aXZlnn3d8vL=*IN)p()W%b70w9RcNyMP7}0DGCPAb$b|CvY*A(muftw_ zgx*fdFh2LWe^mxb1!)T9z^${}q-#m^+Mr+5?6JeZ89Rbzcj9fvYeFmV?M#{MdQ(n4 z(Erv=%XwFYB9Am~X?FH&e(|g4Dvi2cNKLZ1Kdr#BXSkovO0?k4JmVxaOkz#@exkSe z8*M-1yUSwDM59Y~AtyrNAK)8}HJp6!HP#Qa<10{rER~#o=07Wq7oJCnJLb-u5>G@` zZm*tL)Dt-aiI@MTa2?4CBdq3}p=2-D$wsT-yqNqFbK=(2g$? z*;l>l@c7C+pF<#rKn{T%0^vcTU^D%JTd5sPhBONDiYh+=?w>2QQwq@U&dojU~u`!@uxQ^n5bQlrD?$ZV;xse z(plYq&POSHgacz3@Dz+AU}x0Hru0Mkn~pcB2EHM)HOIE3Gk7sXuLkW7eg$yYsyh1# z;Z4JBhZDW%!G~1dP_SQ(R@u2AA*gdschR*qI$T!-zBaOigioqyP`aFBu2tZ9Te^)k z&RVwns*_JS&Hq{gZ4vD-(nn*S`P8TWMPumkwf)_1e@A&%a!swvFq{&Kv=o{fZ5{p8 zPxKm;d=VK;zs;>8qEGxSpSXD0>Vz1}@mm0QX2;-bBEE&9g{%In4*iGp)e-kk3%5#U zrAI0TU*6c+qmW_Mws|BM(ib@C)rui(B4ocjR(U5Vx)(@ztiLQYd@Cgt`)mc`N3+jc zRrkmrZjEB0Q(;gFJ?E-RvPH0nU{&4H0+O||Suk|E{02QP8p1h9s1V;tkc_ee12<;Z z6XF0z$pQVamdHm+g%b9_i1n8}0BBHQ+S$={>X{!@WmKS)*>Au7_TGD+O!NNV#Mi%; ze*Xuok3us3%P%)JRDR_U$RUtJU^5_~&76Rdv28}{J3idZe1eT^vbEW-DX^tZ96JTZ z+cm@i@Lw(o_~?gD(pV$b9Pw7BA?#l4D#gjtEn7eSGL_eni|-d|rscYgd7j2J!G^r3 z*YO&#A)^1pn&de%$;T0Lawc?)KL+2Abq3)6UWeYmNxNMyJ4)o^yOK91d`9jprGEc? zDVLn>0}ecUHa>BGMh)b_$J^bO72f5}(`Kl`)2^M(Q#j7gty!z`J)gg)(r2GB%*ff8 z`pFG@nl#Dy^;}NQ4Y=VGg|iR34+Q{6yM#~KdPMU*v3+&LvQK>MQ>DJPgTDzc+i{^Y z&$Msn{PX`)X?>$_5RMtuImf@z_Zaxdb?$KpIA8-zG^=8!uMDRF|bs) z+1C%gXCr*(Y15^NUl1L}k_&$Ha}~C_N26^?fn9XLclF+0dD<;hb+oQyU`mO6o8G3G zsErf(3Uy8_#8v}qIwk78Nc%`Ac1N+lgwCb4sti7|5=#^!1US{fK7e(7iFz}PyaA0b zy6}`8i~^!!ARna!Yk06N-as;&QnAO4uCrC9$ao8%R8 z2;>mRAuxIn(6%dXWMeQiSeMsz8?65&tf9yp0a+v<`2L>k?JVZJKyTNw~ zV~eATFU?};Jk9d@;qu3`k+#quESCiTjnU0qqaaF0;@e{$?>+cnp*)T`<|DLY4>6Ax zM9KYad@?xCdk2>eypN+A_@w_%W|O*Ey!a8N@cQ{RTiZ6OB=K13^x3qjQ&a**4;|3h zWS>@|vF@K7-WI8YA5b*?!L85>D%oTjmpO^|>)1Vf*peqjXBfJi;G~mIR!y#QFsx*z zl|XE?;eXCKU(`gFEqz?+MHgSJwAf}k@`;qi;p{4PvSBuCv9)L^UWQ7M4{U=gX%_ir z=i~$su4ImCt}6?%kAJjZvckHhCMhLE<^A&4%rbWA(j{qyY;WnKG*ijghKK*hKJtF` zCVd#mAWNQh((V(fA#jM8zTl@yLzP=w%DaP)*!~{1ww+3Aa7%J_r)h3?LY;co?GfK! z_GgM=phEjSboobBUuzz-)~;Kx0;t{%?zM@XC)xdi9FhLB76A1wkBM>uev9nR=I^eW zvGenk!3H>?7yZHJQveP11qDRx>hAvVnMMcXR}O(30yzZ63If_X#d>K9P6HVUI6LTw zIMylzujeV{S-d`C{X@*ig}~0~8R8*DZl^5tf52t_?EGLJP&%eJg>u@pU-{>80>V3-A3?dP}C)wOMPb>vXF;nKUnrZ#nzpUEt$c zja^0?DUyiw$8o;*q|@%b=dM{V*lXtVc1U`r`p`p*UN-w>;+M^tGiTww_h_61lZkQ><`u^b-9UM&3dQZ9lvd^7 zA1j0V58oU0E9tG0eri#N@=n3}6K|Rw?$5+=bNHKyti}EKgNaX@VLl+iSzM(ev4O?ToDQSU_nrEIq;mN`*gaM<(@G#V+VBV8oVmv=P3Ww% z%u3)}-}eXY`(>NLWzqSolQ)}{&7i=2%5k#`^QdY+QTy@e8^1WS_I zxD$rYH?e+@D-4<_h1%eD^C^I|J7wzY>a>SyeD6Q?L-qdkuGF>SiC9PZa^wls;_@2Q zaPw~Oy?4Q)2kzhhfP;^G%`x&Gar7IGzw!F3)zv`E+_2f)I?huP*0DQ}fSAcw$KgaCZ7E%NL4GA zFDn%%=Ly&=8#;MaQ08Zs{#YpCJKueB_DEEP$a7CSOf&S8?#n92HzX$+82^A);X2ki1?OXc^8-UT`b&?(^iFr!KX9{N8(roe9&|D_^)!OGw^Q5=S z2^aDqmcmUKn>#WbJ=SqCm ztJ-#VHM!;wQNup|aq}noz3&e8Nl7dOg3KmbQh}#X?O1=KuTS8gRfwzvET^9QZdIG& zK6j~)y^ejsrR(f-zN%~%_b)x)7JsAv(bdnb)+-eUIDK&vnJc|7WxAa#t#kdTm@hrw z^j})-;@*e&_G24t(X|cg0P^*$pT&3{a#yFrz&zU(d-1Qu!9%=+C|Qj9KP4*AdVqJ& zHVwHU%ps6NV9OzJ&gVZzC!qh+eLDudpd4x- z`=VY~+{B~{b&rVGN2$O7%D_8C~Zw9l8I!E-{FxLmKVwV)^c~_R?(@kIs%t z?>*+&w@QCmFA^tb(F6Bt>#wVC&q!UcQ%zkO6qB@Oir1FH$Y zaE~;ug#t8^2tJO5;hVnHXaC>vtm)rB%As=L-9)p(`qVhk#zVBCYI}zvEo^wgjFhzSA)A%P+r7 zDPEGQT<1#W^(x^Lqb44NC@JCo1~WW0S+25ciRueNj zDdJd*J1v$dLYsbTdj~Kn_sYnwDQWumYXPnAFx|GMM*F&lxSUp~_81=62hc-plWm?^ zuRDECCzU+iT7Qa5tS`X$KN13Xj4-|$wEH{STU96BIjuqFqCUk~0H6iLZ-hJsxm|Ww zjM9bJF*L*`4uIHTyUPoy*H-n=gMSvsUxQbqczLQ&$xko&ads}NOD5gdUj08uz3vUN zW`f0(t(lkP5Xd1gwh&02i%3zRwzj^dxxObjE6k29a{tlv$36fYzffyRw{?xp*@h~C zs_5yptukrlcBd$&Iq|R`x=ADr+U{c^c@;(~0bbaB z4=mJ6RW5ZVRa5518~S~G>x>=L6(cNE*{I?bF{W5f9u6JQpe9&Vw&wUL0gH*AXPTYI z+C1I#e279-8fJUwzG0E^7Lq!>)Zcnoc(yQRw?<`_byUq zJjh_=lUOWVQS%KoecjzAk&?!Z()g7zX4W3@Boaeuml2lmVx#`?9?H%@tC-?fij5l@ zsMhru<)KrWK`E;vZPMtJgz3EL1V|Y^`tqd_Bu0=^Z&Rikl`IuZrCm_NY5P)!xe(~4 zBn>S+8~E4HqogSQUV=}5MJE%oyK!b)?QfCiatP!Q$RRLJA;9j2KS2!vg+U3qD4urwz52AuMjNkykN6?2(f3LbtxQ&kGfywr| zo-F>U$tU``=;XKuYR*{Bt07U8~`|urH9ubPxs1_qpy)6Qr;|CbXCCH+A6?pD26u$tq=SfBoF= zZ>ocB^!#IIo}xE3H&6EW*=A0JXCj2huQ=kx3@*Wlv9omol{u19C-zYC5^8UWT==AB z#IGsxv?;_v;Q(+gpz69hbB){S6hMbtY~Zp2n~BhYjtvu9}yjW)W_{KPfc)~-k zRQ2}b3XCMu6S3de4}u*qrueRSV#l`R>4CTK);iY_Rv7DS;Uk=2@e{Z z05pGC18uFwea1F5;pscuwbrRXdO-6BE`Q?V)8|>JcYdWi3_9b3W`CYvKw$Sh_D}|G zpT&cLm2bC{s#O-gOj>^BakkDWPt4!Vx=cB3YI-C15gczTgoZ1DxGd6(97cgZDO z?=`)HM4qM*gX!KAZCg<>7BXp$^V1JOPEN%&QyreB zm6eGnY9hUGYXItiH$_Wev^cW<(Bpd+4a!IO4|+7{HVdCY6?9vP z76*Ju@P))ix5xCRlLhU|dfnQ!R^r+h#0fwP2!H5eWO{u|3iT#GfMtqp0dc;t@oxi{aWw9wG6wg^p-*iJiE z*V%3GM~{xxm^IE{@ziqFK?g<|T?kQ&UG_Dc`eCCCvcE+o5E~8nFJHDqKS_%ewXLgnm4DY|EAjtuV@K8V0ZHNj69aFU2B%oai`+FIR#K5!1HQ31ab)E z5SVBXFobtAF027Byuc!wKC^O#(#SXG`~ee>Tq;ha=Dhy8nWM{o?O2Fu$$r>9P z^iq6pK^e5P7$1{(0M9)AwDNdAC$C(+7Q4X` z68$(deK6(KlF6Y z0f#*N(0v{4W=kR8FmeP*Z>OF1VP!75=)#Wnw#J4UJ)(TUy$kMJc#otD?|tt{D*4Gz zE^c@4J#`Hx*^0;|^^??PV^F=QVzqm$g6Hi#O%)Oye76MNZ~s@QWciXulrqOi4Mg0Z zFGxXCl2?@eB)gE`LaCIV*xy(JvYSXR@ERMdPJn!&zNV+MPrq)TlR3<&+GBfClFe5# z>*3q-bn=vbBc@9F%<^f%`-8lxmHyzdec9Nn0eX zZo3GUSm*M91k-FcPl{-m5bb$DqaIOwg(4m4mhX2(!NW z%3uA{NvHkzNB_kaI%E0_t^LG_TaTgn@)fT!sHQTqMNqgDbft!{18|Tf9z%WoH#JOA z8J@LbWNaj1L?=vVp_+;I9Tv;pTcn<2KJJrVG0|Wo@I5;)<$RU=*34_dS^`gMsNLAv z)81yT;|pwQDnW*jjfT+AmQn0H4Hl*Hb$@ko=`=YMhtj1C0uy7P|2!OZCN zKaqNU!?DNTaNRW`6ymp>PH@%gRoeac+wXvv&pAMuwd>a0G5_~3-~RwG74#IStma+r z8ai#eU1zoe1rX=|t#eH)|NQg5ru0d-7S6^Gh&Vnc80S*#Czfy?meT@?t)N1PUQpN2 zWZZu)KZlKfU*;M_7G!JH8LB$qN=p=UDGeN<$P)1E22}MM=%mDkz)Psv=z7FN4I6Kf z1Nc3<;}O^ws2}uy(E2Ypm$_JNJX1Ui6`i&KC(6PqFBu*Ja}GFA6&`-* z{zDEq=(oSQR%#B_64CVZKpAv+++ZX(c%6*BCFo1AVu??`@=eq08*f+KLl|4+yz^8T z^x;RoZvL&mR|Q3-Rn$NE;gL#@b`OQ9(>~ME;tn|FK(wwQMV!S>7ecMuW8d`FYkzy? z!w)^M=L_}}g5TBEJ^SzXU$Ec~^|t>jUMZ&k-|uI)Vw=z0ZTCfs7P2YnXPdM&2w7_~d+0J0FyOGX<4 zV$*4Rlh4bbSUcM992fnISwF)aP@=I=;H}{C6UcdJX_r7n@qU;ba`}vR0 zIO8MY2=(;#D&o_z$G@G3q{pA|PGzpV>X)aSdiuQ!?uJT`^B%>I+V}7Gl?RTcPdujH zesSrKWdp0glQ-XVUAFV>w`5cffRBITEJ0+73q?;k>21oxw~DwwXIebT;f8m#nRFih zIHw2Gkvkw+_k+q|2l#?zE|4NM?grE^k z>Q4Jjp$4Fq8XAqHg1%0hGQWI)%8@)i+FWou7!N5N9}c`_T`dtXuTK zBab-N8E<*;Ty$f=i-pPFdh74eW?{5VjTX6DV%vFDbHRmwddY>Vto-7|4^bxyZ?FFK zWh$gkbpMlZAkKNOsp&LXWEw;*uJypFF7y0j!08 zWy~vdkYte!@U%A&8%ac8?}0kRPvkdcSBdlib^s-t=l*TKKbL*?1Sk=5Bw>Iev1u+S zGR8?oEH{b=uSUPZllN|Jazy{1tf`=_g{XOd%& zJ6?}O0o2!4=>V26Absg(WFn3~d~;C%k^vC*0q-$c9gL%oIaZxO0RVwMam7n|LD|{y z#?6C&xzT1JmaU1t|HckkRV3yTB}stc7V!7c{jYMLf*aPYQTeV;lGA^*0ammIR2eym^JB1C!Kuf9e;S} z;Xf-czrzjn^($AJRrW5s?y3|BL|;aYZX1j>EL1rDufFtEa*P&gq@263K=rJ)Mx1@9i8rW7XQ@%N&=LyA9wfn)AR z1)xzF^Yoo(sH;d5F!%o2>FXy_2G>hy1XYg9mw?_cD#=O_kP}2$$qpcDi^fOWZ$6~} zOwgE91LN|CJm}z8B?mxi-99eInGb3lLSP#m0N{^jyR87H<#*5fy1=n?`4XjYtbk6G zTyF`F5SCRn^>jb%ZY}G8+=Q#UFBI!HukXX^LQCxe_%IA z@NVaQ}QvzfP(M;|MuQT zB`e)$8g>KHMN-L(89OUI;*rv5{hJo1nfR3agtP=MDbl9%&NJf@0{%N` z9p=B+xcqs>@1Vx)0Qkr!K9fRa$1YPa-U^$m8jd$OHd1~6v^hMVv|N_J^&a6XtuSQf+uyrLU5@@S;DPS}GAQ zumo<~*rt-=3X?$8WEgje_hP5jR6$pqb z^CALtVS?n@5xfvGGf_dyG?t4A^~IVIV~1aN1ig>@sfE+ zX42PORI}r*f)USrTpR#ZS@{qb3`lRfdd;e|0)3{p$}mo}AYyst`6rh?rpkM~;BP8#GP*T| zq1c{cyFd6;pGe^fu;|IT?e zH9g&()wMNsDOH;GAMr{sN+^Is4m~2RGu|>cUU#*I6s>}?zDr|F;L`dud!ERtr<{J! zjRCJGjk5;T!vX-DI_?*d+F(nFTnhRj-ZgnVfJRRe{4RBlQt@?Ujiqs3EZ~9eAW-R+*>y# zuR7$A^id_=c<}0zG%>d1W?mos=%>~4yY4qB^7t;f_(GX4eBn!9-OPTsax2Y ze*&tv#=ZY1`uiNzuFI6X%XzJFAD|p;y~lmE@(Uuph$Ccnq?D5~HhLiL74!=8Qs5L- z8+QjloIp0eZtWVu(KaKOP6~_-4Gqd#AadlDQsDAH2dF1Lx9VA$0e5a}+i8kPWAba{ z5Xf=Lk;80^TIi<|MX&7=$xTk(kJ0b2J-v2Z8~``}?nc3^$Awo!G=1Ry`+X7Hrml?q zHz{WXuG6?$=(0=FWp<^tHG0$`-)~iYcE;*h^E3aMXIIH|>DgzVRyAo8_b!oYgk!RP z6ee*~eRD%Ix1ru-35}DCi+$K(uigf~A(D^CRZMjl^y!}a^{=%w*PnjoKW~GP4F3xG z?39vujB^0=Xw~Yv3Rrq~bsL1a>OE!vcxVy<7|%kz<6_B`hB=}B8b()D)iS9`-%ERY zyFQwWFS<}AC%*eV{=^bAXUgfWq}9e%CiyOsDB_VPKX{nnwv>YVlkarPm1q-?$N)kI z2_EfOIhb<9sfj~CNyMzPID4z}8<0mviI@Df>TT$WAU|uUH){Z7_6;5`quc2lPVU$< zmP55}bsUB~K+X}%fdig~J)~h`Y(<}><5Uai-ap+_BT1I{In}naYfbB)HvTFzM77KI zec8M#m4_cc7<6*<_S&*=mp=&{^aR{h?XsdCohRx=AP}XtZr%DRQ^uYCr386v)~<~| z>X_xt*)V&{m<=I+@rWQ`{0I9+Y{$v390J2Ypiqgviq?|4s7;QNVS1C!>~QBZEz$7# z-S4i`t-P};ef)9LA8*^xD#TuArruUxS8toWsp9rYyIBXa*gkgeTYoLQGu?A4s9LY+ zgM{RDk8E}(sCr$!`Jiv>Fe}#N>T|Zev-EU|NTj}c^>b_1tX6HEDf{fbx2hqBVAFfe zYmO?lO#W6fN2)T@LCpu<9(veoRPuizRxs!DhIOmt@{o6p2K)yNW6&*cjD_G7i5{#+ zLxrNk?>sd(wysx(Sv&Y+2UUrYlH)<;U|0#n%C#NvGQZhcy^R(8E17AWqka(~Pg>KO zy|(|pT1BTYnr!Zk*QdZi7YJ@Lh4C%1x3tNiOsqfX(V*Kc?=8V(9rKN0Scsw(U&mKN zef0gK&QCU?K$HQ{5BfiH>6>17&llCC5^#S?_zDs{+D&ZZOvwXzzJf%4>0Nijj8ETT z2(Im!$Tr9$=?qnpw?hYD0T2y6kcdQjCFbeJ*e9hc(FgO}WYa7?8iT(J@4a{3+I8#K ztrxRi4E+YVv#M8Qi~2?}8sy~A&K^TQZTBC185XZH%}oxi_&s#%w1GYZAwkKU`=>sz z2RmaVJ(f5#L8 z$TPK)hxlB^bYR=~<&CoZY-vgN1if8IWW3$R;~BTFD^%h!an&l*e9!8OC!jcL8{W%O}CpGCUy<$ikH_>>|*s@AcEKZZ2h$SkFK>t6p zVx>A?wtTtjsJ^=G^7u*$1E-RrbLftHvw0gG{sIda-kT#m9C!Q)$`FYZ{3Z5$=k4?E zx?|qwzwmVxZVCKjpOuUXEU&Slt|(VPg@QP2*!>Dlehe7iK;)?su3=cr&eNtUrT~^O zou*9PXP*~$Y;1kiKOBJ*f9XCQ^}087w0F$E?Uv5&&R6U^r{Mf|MSW4IcfPyRPXEY7 zKl*`WBy^IdX&8X?Ezkkgu9*Wovv5mxm@c#Rm4%*CFrss+KLuAno( z=bYe}+WNKcYqQ6^$QHEF8e{BhyEnvLn@~+%odm=>0umPm@-`r=TnD$+t1|H~LIYz7 zRj2H!L}p-gg`FR@f|p3D>ZXhu-<__h0eL zOaE^6>>F>eQ}FO3kGf^<&G+25K!G83s{8YQ2&xM;~1*ndVbZJtYK*F1j4A z7sjv7C06e1t#cV#wa#$8@#$w)KK+b>_84t3Yt}5K*cE4EEhPimtUs@P{jq9y!*y2; zYONDdr`FY1Uv+Yim0viJ}s&QD<}j{IQ;**eW%qmy&>mA^XnxD&)J(0&3v%{ZEx8l?iX*YjVv@SX)`($ZPfms`_W9oH?s zKkvVH!Momb(yI?UR1JlY8Y)>;wP3*?=gc`!2h3@we`w*tKhdYqGG(AhphYMr#SS3x z4DW)(T7{?;M(OJx@2%{Iu@!THo?u1;uywCWIjx}W$R|oJP81kJ+kCzn$AUwSnU>=p zjQRn<5FdMNvBA_uvXtm2)IXRxN(~V=4Brh{batE6w`bLJ&#CapefLv()a#B`+UX1# zWkz}(eDGl+GStfBlUF_S%nDHm-7XKdeZR(}$(#tvY2!EffgLyYOQ+YyjT?~+rzP7U zlQ=R$t!x{-Z{RDSE{zf^T~3M(td!r48wlv6HKwL(G>n@;jqyOV(LDN?xDIv|8VV9D z4!MhH_ZJID-+qen(?lvL%CxrjBR7;!jC52EfM5Ok3PGpfC(=$AQJ^JV)&TuN! z6l!%8)ajJ3Yt*=^s%v#NbcnB7)%T1aNLT#wvPqMgj(+_c)x5jM&X8%-%&+&BTto_k z0*JT?`Fj`4zvu4xuY2tq^a}XAP$X3vsV=jCPA*B$l`Apo4TV82B2HSG?+o7gX%>4E zilo9Ljwjxh^??T*_`rSlie3EtJzuD}!76ELGQO_X zx6sg{Q?y#=+Wp0GO>r%F?veor{a3_b$PTq4lf}^WD7}b@&25KE0$Q5vR{-}%29Q=( zrvI%beY9^7e?;Z##B!)@MoT%kKlxZr3A+mW@TeRB>EIrG@Im9rS5-^7N3>aeL!I`j zcmQb66%SvEp4wdMw4>A%(%nDpWVADbe}m}H{Pm4o`k ze5y$(1QW)#wQYQ4@n84Z`)@~kY_Wf-N=?n!EBxi*N2xPy>XcnPB4cbqe$k&F(qek? zi}vAQ$X1|4TgIT^Hfc>e2W>^_Dlz8LXL)8kK>)oteyttnr#ku6(+TO$Pw}%$FFO7$ zCr;ma`c+q5wdOg|`c()Cgv(1r95+NWlYOHUpuNMjlyu?kAaj9$W>tLuCt4F+{x1ac~2+hiMjbp3L z%eS?)s^Pz#eU4H|6fXb8&)2MePN=nH619cy+PXTif;2*tKvY*tT-@H;CV})Fx8FYh zw%gwM?)R$I^5x5v&hpp;%53&^%p2dLw$K59D`Ei)@4ZV;!RE5QTvj|;Wnp2%#gfG^ zLz=bEtXN8`>{14op`85UM;=yBFWdh>{aCQUjPfw%nB6u{YSz=%4I7k7RH9V4r_$A{ z>|^6fB2|@c^S|2w0tsii#%MPEGxE^sGpv8nG4FLfbhJdqGwu(#)~{QuOkA<7&*Z!C z9YrPD{lRLr(bG`WK%}Hqs7K;wqW-U2DFrG`HGGs``OFIF2Ib}d=f@XcsEjW9Cy%W_ z@30n8apkvd+^B}lE&jc9s~KBS z2W_IQd;p}cS+r=8CaPUb%KUJC^hhgGJG)pA0)kXBC2u|8m9JF!OJ=_;Z8+wc6W{gj zpI`jn9bG-$CQy^Z{~B#?BC<>w)y}h8F-(jYaDs8kk|k0t-F^3MEuIBR33nzXSw{hO zw%_Y#^F=EXKmf>P0HXlrt>2~X{`r+dU{es-Y6rkAb8phSrcRyqhdb^lc1s3bElVz4 zGUpQWN9+ZyNa=)hcNe9nuMPAa?|RRs#x`cp-+i(%g`h%ya>^R$f2r!KSWot2b#z!PAt}u& zO|T(n((61@NuvMj{&~PDpu6DzMlAwWPOpe7(Q4_^C3?F5oP(xKpZe(Ik1H=9Nje22 z#y68}cf3*UzFCk2;Pa=Z&h&-2&>O{TP)DcML&A?v9_N2X0RpZiSJmETy64iWR$Aw4 zgI7g8`uA0TZkE7><_73&=cF=LaPPo(jiHXX!w9EYsXR&E0 z556*}fk>k#6L)!-tTF7?HF0I=s_Ybx4%X&$0G_gv`u>OU#1i^vY_Xh(V3aUIW|19j zY!&msXH;YW_x$Nk+U|RM3(~%lHoZ6oVoHjaq76bjW>;6Yth`Qiwu#XHIHqx%f9XqK zqOmP{@XtC1x-^sSZf$~QG$wu4`g+YsKXQFRb1be|vu4_~Y2$VxTQV@yk}COj(8NW( zZAou=+Z+Np1jY#jwul1wzgurjr?K+sXXVd9r>ib$fam~#<*$=a|HSK;ddcyh;hXF@r^_> z>gsH-mYaE3qLph_Z|etuV>&3Cfay0+H7Id`CE?)}9U)<*rHA?7QGtN$HcVr!!<47d zLgCbozjb^uvAFR{8_UOY9{nG=e$gQDpTq3H?!j%d>$%u#_;{hvPoY8$*SM+_J%Ia1 zT7ll6yhZ(|U;*Qneq34-GiJghS)Eg08(sfrl3N|Ot}{Ad#*7)Ua+>E|eBIFZ+FH`5 z*-TWWVQi5hOmEp%l+?K|uS9pKT%{3}KlIQ;s*i+FGZ*hiW6~BNcE6M_O?|MY7J2E2 zx*czo|L!G!ry)J~zym^oB~TShTq;Z|(F93F7symfjIZ%F@+}*W(0}=*Gm~n~lgVyb zhk5H90yzZ61q2F};Nv?_H$C?r_q4;PZ=LshW$>arfBx;-_)J5*wnhYaR-K-$mYURNma!kN+~}tFOFV89BY- zR%s<;t7MK_7yjw+ltGdK?oWBd`oZ6az<*s)LQGsW5jyIreG7a$vA#3y%?YudW^sQN z>Vg&*RjfR|cOu;2+M}5vvoqDfHn_*70?@>3SFcIS*P`j*d&H8t;j z-$^6wbGxX&hbw(9U-pDXYoDu@ysa56DXlR37f8nKVnUl3q?{><2G$9udRj*1xC)!- zC4ZblAcw$sg20FmfIIKJL*tic9;L!|#TJm7r`SHaR04L~(a}DA+LROCVOak}y5N>h zpKfRAU3Z#RKDNq_KJr)T#t?O=w$9+t*=~m8^KbuyQgmRBKKdBtE5APWsee=D>#zNd zQh75?8z$$B--F+!kCe&!7>Q41AFA8Ndg~3_;L=mLjgA=wI#2pds?girCGJmmXRnSl zi2_uj^IqtDqT%DQmiXQ4&5hH5tLR4eiJoes0G&W$zj4N{{MG*`ed|BIeL%hZX3HRO z#V-w)mn(Cn{1&c>hr`FJ*T2?0P010aJq;d#R=E9&3di~Ny$gP#5uSO*`;^AazJ;AEwmB&~L8g{ZBZt6_4S^9K0N}iH=iV%ZNNsjfXqDQJSRNAgO4+}qrC9{Q z#KZlwi{!wA4onOGZ=T^+FZsLKN*6!!SCa<#F#wL7R;w@rum7Jva+>Osry+Ppk~E3sMeIbQiHJDrr8U>+As7aY_qJ z=pQnlTn>Q=4}lRJ01rR>kic=r?ei51N(wNNd`cBk0kb6gl_>n|fB&MMu2}ihga=u6 zg8y*%YgC9Ww9aiE@gk2@V*VmVe*ODr%~~RIEz9*0b^P^{s9MD9W2?wHb;iCV6ULJS zzknu?HM2^Hw%XzT5y5&ATVKPKs-@yIQ;pPfac3DDGnGT=q55W_+x%b{pHNr?@BXHc;F9{;|gAI*zF8tok*z}GAg%HvaWjAk*8UMuWaJRor7 zf=8c0E2EMjMvi~v^~bgmf050F9&xJUB@`JzIjn(x;P`|4Q#1BYUfvM<3w?n$Hp(li zTp>x(r@9Ubz?CD=N|sYl)$i;yJ#;SOAAx(~4G~=+iHJ&7^1oXd0u8RCmFS5(uQ|8^ z63*z%N&nTrbHRDH@*qa7yTjd{<|dDC%sS6%0rAz8_~!lEJIJ?c-Gi3m18a~xnee^Q04|7O?!>2i61LY$|So14rgV`GP5(v@%t;&;mLOI(mR zTJqFPVkWyzRF*=*KNz}3BclQ(4HSso5sr{S{gd0DEDY0W?uZ#f|0m|WZK3+qCg}Vo z=C78|YG??|n)O0Oj~V*eHY^?U4{8(W7~1Z8?m0^^`Jc-#lL@FaTP$|FiPK!C7-WccfZCaR1{BBSzDOu-y;b^wd?rNVx6pmQJiE;|${SNA#t_0Dvo1 z*BZ~U*yDU*sU}!#ul}d`6NP=)~6o(7`YJJ{1={bVi%& zHOm>QN*X8i`vM}cMsd9<2;c=J`bk$|era6EUfI1Ryxb-`7FOYm~l`7wPnn`F{+svPs93~h6;N>bD=7Lruq62(_CGGY$YSoe+;(6NtjVwB`<;5oBQPZCyBM$7joipmST0KePdvDvEX*x21PsYzBZO_Lf`N2f(g%jBDXcWtSIE&A)b zgp?=~xAR-n*A_G`Oq(*C2V+HZQRlz><>mGD4K`SdENW@7XpwGCJ?(U*YuBz-%7xdI z(%sO1@ys*yvw@{st2aFGRbswW$=J$`O1>C1d{+WeECiFnOS~f&Nyq>ql;SMujezx( zgZ0NcoY-fd^R-wwWWLe|y-gUmYbPptCP<-UjudmXO;~BIjOY2Bnd1;8Fa#@xTgAjIF-# z{j`VFR$o*^d#Cj;PsvlK7+IhznGpju;#oVb=@a(2aWh=|F1Pj|`ZrJc?y~!awJ%+( z*Vwnf?+)cusU5&wfBd6({lXcA{gryl{|*BIEqacys_^Qu+*b?H$7h5Q(S4UKTPpJ|g=-hPA1uQ- zjMdd2{%6xwN83HND%V@AQwg^bzU0>G4cvcg^;WhY=fAf!HE4hAcHAL7?KS;!v!=IC zooVtY&hY4ikP@(-ay>-YmK|HDR7pR;zsdcEE9Qal{hn?^NWf?s8VXv$$uZzMLUoOX zbvF2{>3_G~XR2h$k|&f-X|kuxW!1AQm7g}lo@Pf|$=I^3)YYJ?*4ejPt2a8|TD?`$ zPvz@h>LwcAM)$}h-kP0a@#bdU;Uys8wuUV_X)C8ZYjH;em2AD9E++G^ev>3|3~*+!`c z*yHg1n;Q)gEPA;tv`vfJw|$A>jI-+dKXy6xZhd8Le-PyvHC_qKva8Daj~63}CD}Y9 zgn`^s+fUhS0!3Z3dX2?(w2nP&R>X3~v#8OCcY|6nU9I z5Y4ADiV#?|XrcbSrEU|5#069K9F&x}KslKn>S`CtJw~!6~x3 z`Dgv>7bGr@^9Tp46ZT>6Y{Eo(U_Gdql zj*#_6Wb8OQxZc8i|NP)W{hRfIy^lHib+nSJpNoI^U&=?$IFG=P6~tDz_~eQBc*MA4 zp0-%JAV+Z6&P}QZu$Z3`lXF{Xo@89V#qI5;djIW0Gg8TC>#oJOpV#-@@ zZqpFw8(XQuCNJBk%3X5$TPt0vf?WURpKCcF?NH?@vr@W1(jps6%w>mydp_B%1%c&D z7hn9NAKv`Co3c!vt@Vmw`jMg$Oc=MT7hkpHs5-U^p9|K+~>R2jICHKeVsguqv!2e|G65%D?BmCn?RZ zkwV~-i+`jhYtX^-!x*d+KcL74jyme7LET<>@#QKx?c@^&mEU;7H7eO&C;$fkrLUf+ z%ooo77o}Lhz)b;D20>xNrG8qzWXa-7E`EIKv|W;K%`us%M^DY(B-`j2U&*TFjz<&BLE_6fMmOuTfd_G_aMizV994zNIWO9Ctau-s-w=pw zZ_OdF->%MzJ_U4|)Wd~qSozfA7#gFq$5m*l;1?V8X*a_xuaS34ErsOcKMV-L;Pu z8-CEJ&~_;H7+xP`9th3QfQI28pEkQ*(4emJ+Yv#4xWP2R#-g*`ejWJEc%g}UXw+Qq z5opW32=A@YduX|u>$7h}#=r7mDiNCbQ=HU1NeCjoG{1GO%>o@Qx+3y$ zm!fc&I0Te`?}AInD82HE%ak@WnKUkX{iLnM@T;o&{FlC=l;3pbt}~Ti`Lt=`ef3-4 zS31N2pwiW=o>fx~QBrE@tLk5_?jf*LeDzaHHNoRT#m$qL)RouIYvvHhAu#?SAchZN z>kIYu!jL2Y(3lYdkJaD@8~_)5|GOH;hSpX|_{`-)b#1qMu^fwVF)4g*?K&-6sRQWkVDSnF z!AR;Q#qv3#9TZi2BHe@LI9}0HmZEwfPSa&Szf}2mzWcrOnWvkCz@?WM_a9zAm|cg{ zXGud}hi&cl8|hmfvbQ~7u$Ri0EnSj61xNn(v;J8n|8~w-)AI43X=~k}LC$h%*;7xi zP(FIeW&A_}z~TYyxW@Hocv|N+{C!TT!-eneFp8G?k%oYK9&vx3(oZ(UJJS@Gp6VMh zd9NYm+7oKzM&A+izDNH0m*vZzpzWLk%t=wg6>v+1*7fUD^1>JXKc(pM-+k9z${%px zfl7byqn|0wUQmZ?)~y-z==3w~_l?)kdz0()`AB2kJinttpd0}x>UGLaJ4x2m+PYE9 zE@K{MctkrY%<_5X5Eu*rF@7R5MW2;8E7j#cnH5hyDO_CW*W$&Ghj;({?#xqH)7eBy)egZryc7jOXgr-T&w9ON$jAT3BJ z;8@i)^kYGicZN@mdtmh_T78Ir#c9`%xN6mNs)i@m#4Ayq*hJ=hS37^PxK@8qCzRIE z(@#JBmq-4p`m^@fUFqRR9GSdgt$A~b8Q zV|bbqX^uPKT(tY#bkpy4z=?0ODT@fuhoiXdI!I(uD;&Svt0gP0ms8(5x!+B;e<4~r z0Jfs>aAEz1^?Ln}FSM}b9PTp+)_+PBV2TQhX z_APNF*{75M|0PQvx7(-~AtuCZ#?d6?SW|2tZK_?}wy)X|UR_Nnry)m~a*`93UuU)INDv8- z*0*ockBzisM499OK!0P^bE~D7%3F1Q>Lf$&o7Y!@fsW|i6Rfhk01{$hm<8WYdwaX` z*uloh&b{e+-GWDeckuKZ=b2}cwlbO&Btvyn(v?a#D_G( zf@|VO834oPyF==h6?;V8yom49mfe^5Tv;F#9chO4?dz}|pu;0(D}tU-C4C^SSZ{nB znb``35}#+%q~>Q`20*O!`UbNik|;s(#i8&-1~@I@xR-Kffp2ISg_D~nNdWo4efO$l zq`I1svQhKIDk1G!nf%HjFeC&d>@601pa!)0Yv0!aFl5cVaJz$m7y+%O4&IMxZg*1{ zj{`P}*^Gdlsbl_hbqzC4JibwZiY96cEsXm*Y!Ab9&Z80wh+h2z7I#U*axAavEpL76 zCcDThLS9XD>Ji_}BQv{TY1GV-kV0V+YXG)TpH>j7F=a zv$IoVqIi@-SV}zBbkeHh_`Vkq)u_s~u!$EYlt@p|h`9787b~AfneK;ODfgQze{E25 zgg<&+1@{N*Z)q{<8qi+1!6Ykarj_~_{5SfDAN;JU>YfF6F1Ty{`QQCv_R)4x@^z=D zpI-TtM*E`+zN-|C9lpEx4Z_GrZ!Jm!hS2cwnbSk3d-oL4I|v#Dcc0VaHa+5}q)*uy zYy+3NoPu)K)Jhm&UyK4$c62}=V>v(7?FK|1sIBa=v@7#RG6v=hzZIGuuU8QVs$I_m&g4$fE6!WqkofZsYq-`9QgD$FkgMK`=`6sfja% zzXzG9IP%_C(n~YyG&Orx)FX`??4Gt$T1=0quEB5|tXPHDDBtNa0BY)1SLHSV)SuYt zEpugIQAc^mc4CWg%T1+J{T2EU{z)rf*E2NfM32d8{U8D^Up= znMi}Kl5Z~WW9Ve>z4z7w>7goZZtPzb{o^xz?p)|UH1tMLIw3V-oM<&5h<)iNoK~QG z8CIJuu$cq*ion!0j7{SRAedJje-QZfudf(?gWA4FWP5i_jrRC>NDP{i_)Ah6)rRlf zWq&B9t8LWIBhp7GN$sFEBfKr3S*#CQOn-gFdRLump-!1PWrSVr=+(24zjSWbnIz3n zsV4W?9WjpW0A9{PM!TS~p+W0ai%%PUdx!Zq*I6JvWus4>t*Ip>^OOz?9%ol`Q;Yra zxufB*cAa^Ys;jpOSPOTw_4}BDeYDcO1I^m=`PMeS90Gj(t5%z}L}H)cZ5loej$N`7 zB=VK&eyR)Is^PVOB7h^8JmSB?h$Ria@w%(^kNQyuDfXahq7|}NlgGx|=typCi>)|& zS+CpW3WcaI@ubn^&-S+EC0{?+ES#~%$08@`6JCm=!~?7%oDN9pI8`+KSF8xSs@&0S zavEvKS>C@FdXT3zWuW9Hnc&qTEt>s?Q_MsUCTf_8(Q0bzRL5h7i9;iz#dPdkTF^Yn zV*u3D%9f1iBaw#VUD;G`*Zc~#{S-g~Z_y#Dt=&J{CNJ4+2x#}87?45-)JdJye8tTfn zik(lq{KhsD#FcllbMdeh2!ZavXw zjUMsRB}-Kg9~b3(iNub`5AcbRee5OU*_TKqV=FgDWH~|?1jgheK?~UN=>NIwrgb1VOU@`^wR+P|*z=%u8h_y8k6w zRV5%&I2u{I+B}sb1Ax2T>Fco0fe6NQ!3951op-(a-Ady%JglgR?RwUiPV9$#CB2Om z{O8U4y#|TSMq4X-{f^_i6$SAX;6W!=8a}0N_Y_p+bUa!>mHRScWwJ_%P7&8CdEgc| z`j}@Ek2D1JNx?9SzLu~T$=aGx9)Fk7fIrcXNs+RC{&SzwAh8Ajn~w8k{FFHMllTsz zJnkD%`~_#Hvyw^qz0lf3!kW-+4h<+aC_H3rk|Nl)um81W`+s5x>2=P9t%i~?`bk_^ z?b_0yYclBqaLcZLF(dS}sX>-#HHz?|JY!A{-DGeo&aW+lfHpyO;J?V0bu^w@YdStH z#+2e8r6KCE7N{*$E!h0ZA&^60>p;M)#s+>;+Fsn+GQs){o$n9ZUeQbKC<#{q9a7;D zQo|6gr$?MuC%ok?p<15ZGz75CGuKYy);S4KDA++j`P>_?QNF?Te8I5j@hvC3Ytvni zQ4O#RF!#2N8?`(f$*{d1v|Zye8dZED$J{mBTHz$#0Gu@X|A~`8)464mX-U%+Z)xxd znk!d4rScgwc8*PUz&se=s%M|k-0>0vJUd;NqqWtz%s>w>K#4w;a~>%N8?794(Iz0v zQ;sEIjFL54#pN-i4a)a*m@}y_&F@o0Cjlyk*`%MA1_&K;rHM$D5RmOSj)NXI1*LsuQf_U|ICvsGqzK#LY268^73Xvhn z>#g#U%O5pB&~r#|e;5A6m;tk9?O~mlR=M&!@-=HugT{&#E0spOQ!q*(nb=#@8E2r; zsm#qo>Cl%ywP?=%!Z%bRFaJup(7fW8DmXR9%CD`qUnkNx z>sp}(tT%9fe$AFClU34KU*8WX!?E0k%fjv%-j8Lks_BmNAT_~JVYzGl`c~2Lg?jTg z%9WsO`qUGyQt3hdce5d|MJMuRzjgE*_9Od-{u}Zy8bCQMOv6f?L>T>1+)IP`kD+gjy)9q#_$pMh* zN`_Ot*Dz=>CeGPzr>o$Hj!)d58Nru_w+MHha>X>#aunikNWO`s`g9x^aVoPEnM3#W zV?#4%?y4#c^=AEB=Q`erg`^V@L`qN`I_t)@*`9jJxc^)yy!{=e>^AzlXwd_M-o$7- zJIp>)Ggc~9Y^B|fFDX=Cn*ZAuy-4}3d;Q}HZ&QbtU;ZKgxk`E)*kW7XwYQo6)oWk> z#x#v1i26U2M?St>0;#aC$9k|`z_YI86jS-LAU=a4p5!pFKmE|9v_XGwt_9HNBOvv!}pj!9RvY8r;T2lP*<3d z7NBXtX_~$mlNG5|X!LU1ZH#2Y?Vyg2cS(&2LWUHEqf?h99{C%YMmJ~nPN?0fd?mnwbf?Ac0Jtawss)NO~2oAtx4Y8755 zp7@?&YK|VnhI#1@{^-IBzAp%%rB>TuIQ!v;A2Apv*ubaZb&Yy6%DB1FXoBf8W+`3a zcJI&x?CMD@0mtZt`>T$d=!&i`7^7c)S42;k5V&`?ueZJSdf_uqubeV<+8%qDplFy2 zMv;7V33r=1b$VLU-XViyy(lfpGdTn@5OCC>RBEzc@o-$DSj2#B{m!1WzuVg-$8+*= zEt7n4R~qUYB;TuVXteqC^~q0SvAat$4y4gK2=t#YB_o1*bpTY)m@z{g)QM zLfQC7cI=yv-`-%5k9Tt*@Ys?k{${V|Z%)e*wb5Gib!A_f)||Mk+OFXvc|W`CI#cVg z@-B^g8?FL6#nJcY=IIZFK6mJ>aYwXwc>JukcGIDnIdi7cuA=49l7@oIdKMgSfLr{? zUo@n(Yu9S&2?t4sr)}Ovz{z&6rx1-=sKS*SoTr~w9>dHtPn!n4Ok9-mkzDnwUv6yg zlpTf+FpFlRFG_)#q~5AsU2#?mirZT6JoG-J6y%J>r`>==r@dWUzr=E)deoNsVs^{R zjg_k>J2$GYyy6OdVWNZJl|dOOzFrE4s1K7CZk5az&i1#p7}AQ+shSyN1@?MmMuT!)DH|Eyu%PJpgugd zdJQ~!wsjaCux{xSN-06kTXd-y@&lnA*21-q;3e3tXM+w+iQN+n-LC>YhoHCarJXxaffg1gnQ1e)t_Ho;aw( z33L14q6g*NUWcd!Id{O>ADxZ9P8?ohFzD8J7xpC8Z5fD-ZeIXtsIS`wG4S+7u@aRE zsXeTK71Z9ZxK&WNc+eAh&dkp4bY)XhU2k1)y;V;=ckzp<>1Z$Vl~K)}D3!#~t#thJKmF5q zX?%KW@})2P1Ina$_lETw)JR=uWNmn!eb<#hEEr;}v3d%?Jwl@8{iHhSd1jtSJz_f3 zw!2Qh>Xk1d@v}dB2JuZl_&&_(&YoU>Xcqt{kZMVlwJcd9r)5Zw@PA1e-+z0_-(3h= z{nD2Shg~?ND{8)yjnCM8Eu{JLwPtJH@PA&p{y!x*I`hn5NGp=I-i|&0_>pz$db>pn znm6FPF*1%za-*+zoO>5-%5GwQf&Q=~S$plAwKJw`Z}`t^`RBXIOb5L0Z~vb5?HA|^ zAOALvoL9W&jl|lkG)EtCvhb@JnlmuR3`oKYaLjQJBYMRA z2mZ{1;DF3g^B`sY?ccsXgt0Q5A)vlV0-i*+Guc*EGz!~#Z7}3uQ&Z*XnLvhsTVj?@ z&gI~ks+k+Fm;}Hs@?tVM4Bfau!_;(FcbBFNa)65yD$~ppk_JwjkAM8*zx~^**Z;?y zpDRWEGCa`yh-&G{$q6627LPOYf+xmPb$v9DFm0n+O<-s5hH6h%dkWCJl0yvUS!}nK zuqdnc4gWQCN~^#3@i!wK@=`_Y2KhFa0+7{bMr9cEr=AoW_a>Ou%KMm=uzlUE%vnEu z`Yly!J9p~Dvz6nlj%NLAWNh<|3U{is2H9J?;UPFD)+LWaHppP@3vC8tSo5`(4(wpf zzrmR?l&;QR#%+m_JslAP+CZj3HUofaiDCg^ZhJbD%QyeV3MWG1;u-tQCodZu83m`| zPy*a@-3C}cpd8wZgFuLXYb#$0RJ3>9I(EZI+)3cC!#9B-h>MD`eAf0BMh!mI6}LDA zK>K8<88@j_n5Zr;UM;kI{GUID>K@bk;@|x} zYIVlt(dHWW$pZ`?Sk-eQYs2$wj{Iw0`8(7CuLop{bYm$T|3Xk%DNQbm3(UiSc zuMTc2)=*2KM$E^|6jiotIi{ntZOc(x$%PllC+7T{;oy_P)HKt`dCLdj0MtEGRp{SZ z6weSUidsE=8;&{V*si#pYT-9MSnI!jRQ9RKAs4ep#D3RIrmMXxs6cmvS zyY~(#UQ>H_-*G!-&isYP6Pp9E_1NP{d(2wRaklWc8J1=SgbXfCORK3B;mcK=nQ;|b zP+1dlttHC}5=Y3({U8qdvVZ^gu~HeNl0z6i0~j}#>H(KHsbJbb{K5tSc4J4c5esrH zV*sop1_1g4|Ck)+N)Qqk85L;|F>OGT|G4ZEpZerwOFIat5j1gu(fp%3_2~38ua7(y zxDNwL>Ac_R3N*@I|NMwdPRjgWULF*2*Pa1dc20kP|AQX%AYO^{Hq;iC%>)DeT_8vE z0XJDzOUr{F{1BgZF4K(Xn*mlSCny0Tn^^@p0EwBeF!?8+axx#zr+Zzo+DG>z9bbH_ zxR@+^21Y|3%ur%<9aNwh8khll4FrdRB7+A^4et<7A?yKijFCBA>2*lWuIVU;D>c;VxlyKK1BhxvVacK zTCmZ!RyL14%n0`fV`>+vyJujKBY~q#ZxL^@Zv8rvJ>g3y9<>aQ3SYC((q2yanFqhA z@i#2hqJKu)iLQmiXejoby#8=0CM3G3qCE4d-$Fk@D`@c7ndg{~8Ax1`}!6ZB* zwZb_(GBT7EZ~j?|84wF%!BcuEIysna2tM*pXtaSRV3c%*L#)`yF8|bJKvlpfrfOik zjDWoX(zEJrWJJ49S7v_vT&LWVHMAQ=V30otN)f*?@X z=are_x4-ip9{@|#XS12*ngLc$vW}Lk7uw~70hO`Fnuvhdb2&vdXU7{hN~eHhD1q~H z7E~rkjLv}IBB3K8{LVMNUV5pd$-noKmk>8YBQszf43ymXuN*QJ*Rq#B>tOiQcG`N@ zjkJ8w%j9d_{^cP;F_B{BunVLK1F^5AS%gCEP8=mJ>#%q2-0_vGuNoU42br>8l(>#C zJeBHff)?q7C}D)-VnNTeh33f->(+4q^z?|QpISC}sK55>zcJ^S7q(M>%e-LY!d>mc>Fm!(=KB@lcN_;`k=UR~zEWsC|J{Gh$Y1}4KceL5nDF{WFn4>b zeAUZeMEO*E$6Vl)M{MmNuRy3c%4dH0LxYH)1V43pzSyg`aa)%9Hm$e*tl&rHtTdH1k8RrzYF z?lr0pntvBL1Hoh!o|%KqMK-Vsi_iHgT9wlMQ5@us*@i1K{Hw3J63qobWR8kyjIoMQ z#_#B82k66;a^Q*3D2W7g1^3E~aN%B%0dsb;t=Y{u{?%#;B_*~ue67F#;Kd79Z$3TP zGcf0tSe8MthPB9L1OW3Vl+!}rB=0N-;(5-ziMr!TSI*BW?ek|a?v4D%kNg8qU-#NK z%qr9TSw91<)_LYA*T+&o!wMA$1TuMH<3Yy4>@D4T1&zCN%9~oTgmDveT5<+Y8_L9H zmBifu04&xhhX5M%rP8GNmCHB0kALjL2pz`9C&W3?t`IXtYMX4yphd<;$3nHaf(j6$ z+H~ZRoKk(^m&rKYZ$1Bo`S9vF+WDgf6K{N@uyu#});@IU2YKW<(HvIsJL^_4b?}8i zB*7ZcCqZB_7=pZzz*#EmsKQpH>7aYq3e`$; z{2dF*1Ig3G#MrT$kIqY^byn_7%ey};6X`tWiV%mxn?)IDLz6UggB5SPYpW)$#NI{3{et#j#z?@{a5PT4(c1v#`)2Kie&6?;*!-1yTTF zZu@)#aK2E%#iov|OF2UG`k`#iHgkl+O~jT|L%bKLl3(9GStMO7p|XTx5Vi zaW?=->vou@>H8|v3eEI?=SVH`2rS6%T19z8McUrWoZ ziuC+aBri%ZZpH~pC3cG#8X|Vu6He~ZzQy01|JN{1=oI!nm=`>hnHG6VF9i3qLrY$K zS>o<>{Wwc8#`oOk{pQjRV^OW8zG6Q3fe%pE6t)|&29fVv>%wPId&}?$dPctr))2&LH=E+Z^L5k}*m3&QwbC4~?UbvYanh3` zI?IV_DP>UKn)j4%)=i(LZ{+;+X*!j7xPmm#7(%9_a zED(<$+EM!u&Ds=?S56vCMO9}E3lIsw@{rWjHr5cE;Xr2~)(4H$iy05J<<(JNEXiO@ z2Iv=4QYxV2RbPBLhI!!y@57Y>v@lE`xFsn5urtyQwJYR7tGB1O$F8!LV;IZbCOaCb z0OCRHsZedg8VJ`#oEabakd!i-Va?4zfOw!kLAZY)_Qd-)5A_h9#iq85iG-qROILWI zGq1`g%>H$@)@l_4$ML*@r4mp~XA*+V+hRR*YbIpey1-knx@r|u0O1QLJmi4a3s(r2 zrgE78!UdZGs1K&f3Bc-v&5dt;UO2^Y4}1-v(f>E^`Rl>KA^0I6_pDdWnes%Ljlf}m zD>t~J@JWIFC!ToHt4etwUOBs2mjh*NNrr)Z;ETDebwiu<4o(OBTMts)?CJ8^GICMbjf7g{a~(! zZE;-QUQSId8TWTx95?`HPr*E`?w_E45rcd`Cyq{5wf(X$%FHx_C? zB!K?2Uaf62J#ITd>5@u9`nCE0o2do{>}eKKJsB)X+l3SnMiek`_p*o zXE4*1k+E^arp(NVC!K`G=dA_$y*9*XIm1a zQUUw6qW8R=6z4ULoYDszP?St<3sTy``I2;3%ha!v6kGRb&D~D(O+6cLt$#b$^4OeC z+o^f%kJk91!_zRXr zM6o%7h7Re1@qP0KGK#rkZh^j!DF$<5Q2b=aLG|**;R_1(2l%jLF`CTmHatt*_GOTg z3R?2=fJA}z%f$`*Ux<13&V^z) z##*X301=7fMOu;^s%f+ACCuxP4YDhK=8->}J~~{|Rca^R2Yptg!T_COM@LU@A9Kzp zxbn+a94;?==)H$Px>kRH_T?Nt>@{Rw^Z+Z4?Lh2(w|{-IaAs93{_aa(PS%J1{t|@I z#;VNt^4ZlMw>y3MQ}S0epPl5a7T5Ss;r`WG*7?i_3oh!@pZ0WS=Gtq&MBJvUNEVdb zuZ~H?#ia%k>TcFMHnxIqO9TMmmtYK{Nn53*fKWg(fO*)ai+Z7d`}jW(4h;#rjH{`r z3!RGk8|XiMf$2aHoOIGD=RWI~jgzLh|DrltC52Oadt2UEQKh}u&5pG#u`NplaHgk? z8-6ds25u^DY5A*n|1I%#S6`_&3T>8_;4*vd^@inh$}31U7^Q(KsfnOWDY0Om3Y-)V zZ)!6MZp|6U{z*vjig6{-&^e`v@O+t!#2CU8p77MXJ=+6c`K8a3Q$6N29*@vDmQdot zF0bW85J=$5wZjq@+_TD5-#TDu;O3*@X(z>1(sumT#kkWVZS84KKbMw`vro*lb$7PE z=JoQYpW^=6sH&0ZHrI6SpY*JbL>YE1j7UMx|M&S_T%?y=lGg;G!LXsArEA6+LUi1vG3(Qqh z&1J_A7CpQrsURp+J>(F}3N4A3706zSuxDTZHX05m>=BptMP!6@mwhlHcf>P5|E1_^ zwYR~E$DSAeSJs94&nTQ>9t<}m;r1)H+TY|b8sCdv{Gt_n8^FG{6}v$6HVZ+~Lg6{j zdF~fKH@Ayfmd&in*#TgMMPmUzz|4o*v12D)9T^_07wWV5tU3d*>tI>vYCueotWOo_ zoNayQ)7b6q?xg|ybgZ^?@c&MS?-67Dj%_KD9c)$PiscAq1X95Ywc_)B551?m=c0=) z1g_DR;M!D+{CCnp^o6q_+@`zmKVwR~a14h1Hm=<4cZ&@0=POsiAY{o^uZQ=4jjF>20^(M$Rb@IhEM>wQm-z z$7d-pD>NcC;qazby+8d~P31q0U*|t(C6?Qpsk^)GnrldO2ll&Lxv zEmvIeMHeRCa^#W3+jrm>sOA5>@sIQT@JST}D|k{+SL5O9-=2S_1_vqGZcjnok|-G7 zTILGqAjiI>e6N5#$O?J{^CvqE_?mHVu)nD(0K*n3Wmj>35=sXs$JvyBLQHf9A>f}i z3c$ac@d3^NTnbvS+S~y)b*NO&@qV!OdM4wd-r~XwFGQ&m1_INVNj`O*R)+ET(u_ql zcsLd24E6y~dnqO+<>u5LER^CRS&j`Ttla~HK%CPa@rZ>=ud!!$-EkYV7RF+yo~qOF zpaBg0G|Q-`)c+~>aDp5fsUlu4fXOmSd0Y}`b=c5V@QNpe%}hrmR=k9x%gD+npN&PRLBV4Q*=9>Y1r*V(1O)&Uk z%Ym&R>0;MGiDGxk9NK=;xIZ^B?MKUpM-_95{Vv>X07568@{BCsr=Qr^oJ+L`giTwMS6X|xc}uD zZF|d0>T!S53a#yI3bB+?yJ*#wrqgKofNW8bf1E}P001BWNklNs3xP0V#(@Zpzbo*<_&#T?s_P8j-*47_2Rz^b zqCq2Y0Pxp1(7}8I<5*z_&XDv0m(*TsFBZ`84}2i6`h%Ok$7a;^PL+x!*OO8qWw~Ua z?O;yFD(>4{JkOESBRHlPMphfN?^w3%UYk(*9<|4>c5T+6{HEMwO9APC$A7-;bWx*z%Uk{w%nQ&T>Wp-PCPp`E54!4WYBKYmvxaeh zPo^zDhvO6dy0y8f=jPOL$XEGrIlQwH@CA=bdlbIKaZP?pNMB}W5Q*HDrAWo(-1U`+u`Bq3M&+VREVFmnV1b+VsB z+PiMi(rvf(3y(XC#69=i3wAI(Bn=j@3jVj$xI7^&!;*mKJx{o5eX!S*`usG?)zl%`r!bg&d#uzE=R!KrO%4y*%}4zeM8N zYraHmI>7nnai?Fz`Nrcio{O{Qi5q#-M&8l$Uy=p_TzGCHvd&Mn*WiJona*Ma*WeX^ z-I9F-KOucnSD0^91A_xse(8(Qv>YF7GZs4ij*g85_h;g@aSxqGlD0WtYt_Nk{xK=09Ek=Iom<9I#s#3JZ#Jnap%$w4^U}WN#m_?xPTQSn&+rlfY{2s5TU8xmAjL z6v`8m2ymYH%fG@?^N79bmTJammatTvd)H;Y@{r9&j9W*c|pGId^>GeIoRTW!rhs7(`%g#$()O z+RIYS*r7ZB=8_E$jj)l?wPIcO^z?$HumScw!Q3;<;}WS+I?@^>8edCPBRMswQd)R$3MMFV{rOM`i205mp4c zCFw6oj-~_HDI6r}E9|8O4|AG<5Q_&M^=dB!tc zr5Q5==IC|C?VW5(zLeyeRc>tk6pe2nZ`1HPGBy9 zp_sGTj(?u&o0=brrJ}e%{F4KR!oZ-Aiv@yjLAdmiOW>=nU$+hnOS`O`ElS@2k>UQK z!LmS8YwD3bzS-A26K&E9Pyl?IEKCB`nT=wPbWuEe_AUut$~{_aG`H_N8ocMO09kro6%_cD$d?=?$tOnGzsfFl*! zxE?NOZiZ5aEcx~Y(_WT07^>JG5nT`lcJJh7;?$;OA#64G!Q#rzxS<)qL$aMYHB|Z# zEfoA7u_oc#17p|^VtvhGFD~$IlhZTZ;H9V#g@wxkC7X}xXTbApo&d6w`T}W=p+7ld zA%M)L&zkA^XW-!v2M=bpWG$_U1NsMNX8sxn^h6iF%pJ0PdJiHXkgZJWHg|=EbAusN zD>4TKaLlpC^8Cmnw-Dd_qaWsFt<8GxPk&0z(Z?K3{FU%O{-mcoEibc{6Xx?lrGXQ0 zaR=0z`Fh6A>SyM{i#|-|pSMgK_D>IWaeOMs071}=gnNNZD!5n4^!z^tXxo zFT8~8)E1haRo~gs2fG}Lba<7rQ*3YV3U5Cgs5EltJ@*lB*(_O$LwlEGFxJ|#tG=GF z4L0AubEB-aEsrV34U9cuLm*)+okbxK$ow=A%@M~CF~$JovsvOanvJ{r3NU|J?Jwn23i$^-RT#PBh7 z2a(8X7Hz)Z^Y)sFxo056CCQ^;&?UcTCHYV~#i_+<3*W#8`K&_CpL5PYxik_wZlS0a z`Uw!MbCx{tOhNx@Nc&)C=(Oh%xRSo4RHf6x)k=;2owa`Epa9&`FP$r&Kj)nDjN#$o z4+U4+8VL3T`JMm%4o@F*#+i+Fy9Ua^&fqQK<8x@Y`wGLDU26o-HvvyLTlCY{uDz1j z{`~CI!xwvQ-zIu1)q*P5PDr#TWCFEvq-}^ zL#Z@Q{@-2ncOC5@J2-mN1*h0p_H=iH)t+|RX*^BuQ=PMswVqj-X8%KbO_WQZ_JRZu zXl;c};RVRt|D(2ucAo&fgf$0ARxYzB1wMcsg_h_1`me9`Ic(tlw;ZK8{I%yk|EKrf zd*>auljiDa=5M?-j!pXWUB z>?h^vwV41d=EY56L2#3vic@!CMLl~WGzF0Q^D{MY=_MD?&b!`o(LtF~gLbric(LiY zk=42-Xd1*amH3f_DAd43f$c+M!wV0!s{^zIA5%2JO757LoQ7s%T|eOX2T}3pt@9EP z3pab%KQ(=69g>3XYA$vJ)4=Qj-;rRgb3+I4Pl97f8lY8>1hE^(K59Um0bp4<4?mai=PfUsfR5ne?ww&T;*$GD*<7x>yL;iL zn@>FhLKX}j58oL9=*Iz2eM6v({5a2)C#3GSK=|?(zd%KxKT@?^DFx`?42zwC(7BD7 zn`iovujJnd5W|G$KNs8A8ZTcCM|QW|sW(z+qM;c$p!B9MO_ z1WU(b*arn*D$=^!zZSZ~mtX!F#+ON%WxCn2Bkr~N&bPls`lJUxBpv;lN*hPx^N5jc zCSRQ4wzyk(Dy;SY_VeDH7ekwrv^9CHDYWu*fMG@o)?qqmgyE{eQUU2XupFTj!BpTz zC$g;kUErLO{^VtsmC=Zvly)&#Dks2rnA^rNymP0GD&mZCdT*6WLJ0meS98-f!M<+pRym=_bT2z9X!! zZ(VTScGAkgz#wrd=X1K=+mCtl!-G+}EtppG%`50q>nIP10o_KrrWwI`!?w}^ z4nM};*YOSH?@Z>r!5)fIEg;+R)K0QRX#t@EXkOU79X1~bIbfYMN>?4C6SfxuVm%2R z0{cKq#>Pg0{jLjMLpVfV|KJXr^%bu7G>ZAA(Hz>U&j7SQx^T%xTC-QeMlkV4TAOdiy1IKA zYFB$lp{-SS8CHXL<9scrtr^FE(;vN-s;x6>A+D)p38P9?6d zn~uThM&8l33wz>D=K2=WoJLx+$50OTwBnrUMp|p+9qZS>SC>3=wYH%-+ct%Yy0A=8 zMF;}lADii(lfy>|J+$@f`a$lk3G zi8HxRedbd%V}D+5@5URX5%j3A4DhLV+;I=stEE_0Hn@Pg3brVy}qQ6+Db&jiG14nF{R%5r%R)wXAO@!9bM>ImxAAGt-ZM{1cw^q^C4O0ngd>8qd7> z<{vQwFL>b#fAE7JeD}Y<9kWqrFXH^Fn6LKqDr{r={ucf&rQjF!S$-DveZQOGCwHKd z$3YHI2cZJGL)ppNi~k@AAnW9C1y4b$8D%mefS<I(pmd?ejWGYl`HmNH z0OZxytrP9DWM@#`?qQLDF;c_74vRNh=p|U2VD#Z)9-w1E)tu$oEfN~z_YHNFlm?iy zbTf1Q8Ng#$p%vphv4!J6on17C{ygw(1N~H;f+h@tP(4r53kr63+KkvD}v3u99Yrpap1|piY>Vxox|NJWHtFMw> z>mR;O-fTMCb-r0onZ#iezINSL^e*8Ce0`s||6jlUdSo|zI`$>-jvU#K0EvF~EZ3V0^bl%&~=jqbRqxK#sH-eF29fopxS&^1x3s=$-1pHgM7*Zjv zZTrJ_zT@p`L8@%57b?L|-gK0?5c>s~=9~@4n}5;2L+XvgM{GC(*!LD-&Ya z!s29YDq4s!%DEU=jlR5is7<(Z0DA!b0JY;horMevJh)+wTmBvPI%x+miw9cOT+jn; zCF&!!7gMR&CeXqEuze;&F%-zcCsj`{f+PXptK0f-N%~#%0dV3;C(-f${P2gwr=Na0 zL;cbJ{7|YLu_94`A-`DEdGOx%yodNrZ~9YW^TB7KhvXkx!Ef!;yMO%#2LJ7E;W1qL zFdW)&$$@d^kDFtD+G!7`%wj13&&h?Ce1yas-|z}zWBtA_OeTTVaNeK2k>pWfJ^Qkk zzoweKWPg1pYA0@f@GX<*y|tm~Bsb2}tVV%yIt*vItWsY;l#c*(hO}XQN#F|HL@NX> z1sIdVaks=19{+^Ad^0iM3}o8eo=+(ox1vN<3{b$fviu4BAN8BIzzqWznR?vg9{0$f z`?>krZ00vU19#kU2ZgsDeGC%NiSn41G|Ft^ZHPv>nwJY9Fx#6eq#H1Ds*0 zVd@>o`NsWC(>rI;2SCze%h5+4%})*hS%UJGL8X$T$Bs_7FY6pa1T6l7HS?-$s1sh98F}fVKO-`Hky^8jC3NDO^D-Lq{~5u~>X;;Ir@t zdD%10JmUag`TX}>Obf4g=?jRhg_SmFTHyX|_mOF-z|vX^du3aaQ4HvA{bB$)@7mTb z)E_P+TLOv|+*HS4sH5bAG`3=!Vd*xoEW*2#wG^x?l^1R%7MOv_p!`Z><0?~Vm2_7M zJ}CU)i50a2p&iU8OG3VzNC)@-lv5sDE|q&adlqQ9`KXZ@z%Mez*ydMXb=6Hbec!rR z;<17LPft#T?w{K+m){((vAwj1c`R*qo>5}jyFU#{xwhr2Uc z(IgDTU;5E=c98ifCbf;})5x5`Hw2_xa{ErvC7U)#i^pL$9Z}6++}{U2@PVvBOM^Kc zNd+08Mmjq>Iy)r?J`BQLcievWoprN7J}Zg`lcL&R#OWy zaK5)^;R^cC_qdtAxEaVkfWUk(1UQh%%BL47!mk`tU0mDE(hJVOQ=a-%R=T9^!D?Hu z>>?iW9YOrfLKa;O?9ZVnP=(FIu@7wZht9wBB6^s+=zdZFZtUkyKRs{N*zpg(_g%Q* zd-m*sG6hG(H_V2O8yNiC-}Y96}San)5<;eExD zH`Kp)N8jEx!KSN1{j<+LoAOWt#OFNy9O6bSQ7N|1@Q(8@q|CPa?jrV$!9Mw|1CU|? zZ+P9yDdW3FFTV6+`)qmP0>=G)*RgSbczUVi7LfezUR71AzPOi4 zTp}G3@G-MsJIV2IvsKM&{#|GWps#pb>}VHnXL<$7Pz=F-iO2iHW5W&ua5;*?& z6Siy-hqf7(a0YA>0H>YStb{oAnPYib)Kt#)eiO*3i#Fykn z{4RlLE!~m4+9$=|PY6(uJ1kQspc+_}f>ZUu1ze^6X)~ws8HkAo^Vj7dT7y-=o6tj{ zieksbYzKsByxnHWhG(F<1(p(+2}uIQCyLL=r{p{8g9^LiT-T-WF+gIuid(8sY{WB3 zBffN=9L6S}``l+YY}|Cu-FKtZbl*>Zim)4OnpJ9HRChP0RNF-tTr|^yk*O?Z-|^0O z6I)w6eWjK6B{CZNyxrl?=awJe%wTT*(an4T|A&AVL|fc$bXqzP@Zy@AcWFKA3DRI0 z3hmm5o%V?Q73@7`X?+>FHFNpx7bwO3-F1+SnY6&vfboLA3L3)i*tjnjw;3LLvI7o< z1ybTi%MeMKaR`cj1s)*?0JU-Z_eeFitjx8GM9G#IsWTAnw8VY*cy4q`t^^pKYdM=Mz}<|#060pUBg=~;(Dqb+7zub z;D(V$_z0jW4?FGQr=I#S@2u6}%V^d_Y#|6c06jZPw6gCD z8yg?zTk}PMJToZVncXUVA;C}k0y6L2D`a3m+>10=>gKWi<=g&>N1yr3r-_}DyhK{* zz|tq5d?F3p_tSeg&On<%RwOPYhz-Clf_?=QNF?}?f4CGd^86RP(9c&x{OudRwR5K& zy>jH@*x3O+Pas`eT!{|*r-;lgzm#D$40_qeP{TR0RCXd{9kYC^RNov!p^7vV#nWtt z1D^p+Jv&RtqW+H$BJ?o(B%%P!DLC-1nk~#T1KG3(^Hb~?e}#DpHDzC= zo%eeC+y0XGI_1<;sdd`JPb0Rj{ie8?lb=f-%$swwjDy5S|M8>!y}j)nXj6dUDwNCk zTc3uU<|*=c#tG6doon=Sr>B46v3k?-l6ZNKeB>jES2CCmc=gMFhfWz4ai&*;v6V1| zS}>LHrZ>J?`SJ9G6HX@mhp&?j!NLJWa|!@ugm(mZ$utlu!cc5sgohuV1`ble6t1Vc z%Tg2fd)?Q*N=fh|$c0jAgtW)GVWaLs^1ag}nxVlND0cN>X$bcjV_>9EmFbD;85wBc zDF#FN>d$Hgy6atF z3mESmYYO!paU{iT8)SNYU`W0deCvi~1E9y`3=9azrv@u9{Lh2O?$$g(d zCQ9zT?<2#x?mp6961{zW`Qznf6rOm}Nq`UN7xgD3g`k5hSSk9+NdUR3qphU{1)F>B zy6d`YzY@h(H2R+({6MO!;a>%5C&n85L!6siKQTObbOwJbIOW211^CMPF8|Jlod7o%h2wxm7bK_}4;Yn_-zh%-Di&hjVTH{B%e2Dl2kQsJ0_B&Wp4!tD zar^1A(DIl^J?6xdPu{uxr_??6c(J(-Zm_lR9e3WrFfMrSJBiKlPe*0@K;!<-zw_=} zNxb&eFCpfN2V$3*wEogFeubQ8KI>PB9hf$z5ymo;ftd%H;z&vhLF*FN^BnDb7p?{1 z#2gqLv=0-Hq&J*{rk01+BTD_qR{LrG-S-R(4i01W%RPPL<7_AyUg(1igP%37qY zt*mxF*1p?nme}7JIN{`n43B+pYH~;#vkIsS%G z0g%LLAm7X%!}Pulf@a(A*R3k19?TRP92S*;B>_YOeUY|@qK??V`aRd)k8JrCbs~@Z z6AEDVv%Js}CQdo!l-qB=b)t-#prD47odVhdwKYv~nz3YgVY2BrgyF3l*00+Yy!e4V z1Dt!npVJ@xm;)Tu4cC8zE6AC_(UBpxihw?9Tnq}~ip=nUY#IMlunnMAY->$^B;()7zYf%ynS36+$1P%YT}yF4=>j8T%}f5ZLIFSs0A0e)mh^9jg#Z8`07*naRI;sE!?HZUnb%yczwMnJ#P{G; zqcS}{5vQLnE1d?xCVv9$S~P7Cd2?=p)d=QGa#(Dgi3dr#LD>i1bl{R>(jVN3_8@4`iEGK>Mf!CJW~pVBg;lpL%9=L}zuJ zQ8T&^xia&z-+y^`4~EUPuo`gx+Gtu@PB{Jqe!k~@mk?j@UfmOL$DOwm+Y^ZW2u%gG zL?*%PeDmVXsdv6}KL6SO;O7-z{0#BgPdbO#w;C9asNLVIbuTnCICzC(SEuAtl^Ku} zOi#)8Z4l^7kgoPcGWP|fuip%do&m7SiWEh_mN2=%2oV6p!j__l&=*l=P-?TJh>Px} zSz*B$xc8oWjyU27AP;lSw}AN>JWwOzkY!ri=X$4u~7Gb|E7liUo;Is;5~OnfZTj0jVQK8E=kB-lF553#IY!Ho-ypt4z+;gjUs zVFmhK+Adb;0C@6Ko|2FInyW<)JoI7G_POhh+W@=ZnC)#CITk12yBjvQwlljENMYg7 z1ZSVK0kFfxQ`AE1nLi?U5rzkiFf}sGDNJDwMrlJtT}pBi@VvXHo01)3R*O=Gz!)AG zB?a#9)*ub|oSZt`dW;i~-+SrrlRsZ*MAvw}y33va;+M*MsDowwfBMEh#ZB4+@cFCEA@YTer-(;_=* z7T?DVtnU{~K+qqlVYv+X#jFpHNwuF~&OQoS`cV{wv0otX1xpCp!#j@o`#4ZjN$sgD zcn6h2&&PYm4>oV!Ok#7Cw4^P4TCF|%Z&gP~`PLge>BN&sKjM);OT0n{fI6Qmpe982 zjW>R~uLmTY%k4SOpCYF+A6mO93;ge-{bJRxMr?dU!pu_QwXV!TawMN!ZVPsX8J`` zm3@I&?Lj51@Nm{#cY-jn?g2EMx`*8R-?#0)qqiP?5DtK6Kf9)3lFk~6gty&(8_Jh6 zl?nU6gDr#H7?m7~wZfZ$6TEJoxy&pX(%8+z1Pc zKvKxj*{a(}2*Lf7_=`hxX_ zHuGvT0G?m_5hAw&os3*SmnroQY?hfbx zxcLZa#4jViP0PN3S0F$Sun6Mp$gNvWf7GMPCEYt(E{l3FYYwUEs9G1Rs;_hUs+45__WYAk0I^^C*Kg$M_8q&3?P1pvHP5HH z+P0gqY{2w^`|1tJoc$yCUXamIK{*S1EVn}jL{9p3OxaH*6rr_-CSs3=Qp~}Y0WjkI z3uyZ6U&Usv{g?q}+oB|>CaQxDm^c&flT{a}5VTp?itR`9%_@!0K)@JgKe*0(2&SFN zoW7{CDGJ5V#+z%F-2WK}nIZtUqRV*VyX=2k2d!qY5s!(+#6dFlIm|{{Ys5>w&$0T} zPC4aN#_;C1{6#*JMs#x4uUk*~MwFv}_&?(785hpGAYq+)-;vuB9z#u$q-E-J?!4=c zv_PJQB}Lj=lWr}4G%LZzCgub#}QN^;Cs|1q2~`%NdW#9GpP6DNW{vILkp`siaG z^56%j@1D|p^>dZxq_xugG`%+GKb--m(OSfyeR8slU=fS@sWMl4iI1NKyh-xYSiI$D zZP3hk0}Wdl-<{qSe2c#If>B1Zw#6NP$Hv`ZW!nLu0x1cBXzT9Sab00!kH}56vhAh5 zj@T$oA;T*YdGNhs&M(H*1iJ@BizGWUFWXEsXP`L)t8xZ_?-(B;05J3?cHm$@W12_& zlz5;SR&E9an#~JZxjvVoCo5}+nY*mPn4>Xz)+l{VPl=n!AvL>S>xMf&()P}8EI9RO zVS6zzbhjBsbCSrs`j0OY#$<4XHOBACbkfIeq4gmrCN|rSsqsS_i;f!iwtp86t0%NJn1Rxy(DGJhyraWf61ZuiVMDFb=&(A8BN?y4B)vlo0lLBtpjUUN zlds)@mnUL>Wpf~Q?GeOqnUQGC`+8tVvQLBW^sGl?l6;5E{y+LnjY8}Nz;u9B-e*J1 zY75Q3`#A%nqhr_@upqj+u|8`>8l(<|7 zez0aQ!zn^qGq784;dwiD>rtdf`)d{e{9M*hid#=TGZ_yw=p=VKJUoowj%6LdVb*wd zBbfLCzx4G=(q_7!?jkL?ivKiX)bfZ^=^#G| z^;$sAPvaV_Npla;G~iV(v2q2WxsGLa$bmEL^aZj|<7J=?3F5DVr`Xor-OW$4mCRy- zEa1RsEeb)ix~g3%4C4^n!d!7|D4PvhV!d$g7#Lo)x8~oqJp-UbobxOpsr`^91fx&H zfY1y{7(qHZYz4Wt=W1o%Uhsr-Ail!N^tiOWEaL%S?);74{3atd=eiQ=`sRS!Lte%Q z4=7q}7i#U(&-lBs$mvSZ4Sw&ybB*H%D?UG6^&+^9Lmz7_Waa#1KVY9qqSy&C4u4JF zIc(!fF0hs>i^(wsK!RXkZEjj-9}s*r_&I!N8h9DiW$1JLW4Q%rjold{Omb*hv)rvDGro>%R!RR3k%emN~3vptj;z4PGz2uNER}h%DKr>c?R{ z39IGhVyX)uG&|zvlGQS-#f)PaDF8GR7>PAi)_3XDDwTZl2=-di-M_x(d(y);4h}XA z%(XRLXLlEi8>mR;uzZ3F)2~6pSnH-6xG0r{Zw(wD0&bHyTBB5U^o@>=(g=Dxz+Q9z zO$XRg&N%?)7^mX#@o^3mc@?Go;KEN&l>Pa65##1a)nWaMLsyxheJLP?=Z*Z0qP5zD zL%ow@JsHa$BridF+$DaWGq7d-v}$Eos)gzlhtjyvvHdb{V|`-rUtWVyxg@DO5vOD?&X{FlG{6)Q5L zL%S0%U6ve+297WSvoSnewYIWu`3GG9S;$kZ5QI*Z7FHlH+#4(K(0=n(JNh8RLDnz` z*t&IVKFr=eY4o?W+?(gvD*$eB96W!T z4mhh2S!n?_2h39Hfs1?_Vl&F(FHDS`=k7Ec*%iO;AG%>V4}j3+ zZwuYWk+^BgnDXXLM=)Olag$f3$sU|9bGv%GLlO|vIw3Lu)zxu;pLNMI33!}-sb!tm z@l`$-*SWJF+IxgYg9jljvost&exX6M<ISGv#A34(OJl*VNPoC51oNpQ?IMs5VCphQ42LpPM zzDxd7Iq8qpmIk6_L#qB=V1zYvo@z$(6Ga;4m`RDyG7qqVHG?*C26=d?zyWA_|+Z$ zF<8Y+G1xlmd16xMn<;?NIQ@+EV-3mbhXXF2d!~7Ux918M^-vyH9mK{oOCzHIWpEV_adY{RRRFjrCIbx*nxHd|#h#uX;p4HF%*V&+J*_#ExWPCspJ5q{jg90iTGan3 zfV6a z)S_lA8!#qdMZ(nT!bK#ozqO4w()=@%(qF=9r)urkwR>!QypcN(?8mVY&oB$OhNF7= zO@qHaQ_nHxd%@B*vv6x}CoP}0oTlgVC6$(GytVyX|Mh)2r;&H8pZ^3ygxMc7Wq6)p z7Wvv>d~6MO=DZ?Aje(Ut;CtnR6x@8Qa>N|8%&okQ?%V-e0tg_E z+tidPZ_gecu_$aDf8$1RJH`Wlp9)!>RkcDfC$rHp@7Mdnx_n)x41%j+>tbj-+9^*6 z>vtF(9jPWWeSh!`PX5UE5(_RI>`;TMj6_&;75imTbBoBrLll>0*2=EZ z4g3|9sW#8X0FuIRFW zDHB-2UUm2Gs5&@C>4CDO;3&l_P_p`1LuLGVLlhu~m?K1Nt0+&u8S3Y1WJbPg;g@Rf zuJgtYR$`S6=U`34qWjGjMRjfHuNMsa1;+$Hf0o84|NUPU-Egx)!!rQTN!c$A*IRW3 zmy-n)c*?py>A(N(X&uDl)x( zUYtX|qg%5C_m+5cOz-03rwa`zF?Kqb2k;1x`<}QDi1R-r#Oe|cNce;43_D@EMz)Ra z5XT%Ni8m4rG(9=Nk%4?=U5H!AS(#w*wdFeg?w*IZ8I@1EoXc-z-f(4mVd=6Sm^eXv zQdOM5cSRk4?9nWBwhwD^a+)izk$8m;$;uA$Fz)U8uYZ-dyWxf#kg}ld$IcuH>^?QU zwtw8r2SM-;(g`WF1t(xq7QE~GMAI8yWn7A&>bCFPoma7TkniRL4CeXvAYfj zVpQE>!D}8LQUo9?@EuJbZ#nKCR(V-$%7&N9<7491;jEV*mcn<&Y?R{`(4LTyAY9-G zVI-Uz;sX|1tsM;3%ns+qAGSF;w17SpWipOoV9@3&`UIL78KDd`4Wr_+H~N*`GOt;Y zy)mnnoRti=avY60$@;af0$;PBn^F1q`O81UqjP`xS5|Uhhg@HtNn}OSI^adsaTzTO zO&g=Fu;s`j$+$7jzWd(#*7NLi)%%Et+U5404t1*Yd{4d6RRhy64kA^E^m zflQDcSB;|l%4vyOBCnPu)X{u_F5$+QXd)fJT*3);RR=@oY)E6;8wC?%U&p~hA^k9U zIVwd{s!JmMFzV^9XH zd1*ElI>Q^j`DNDOfsYTitLIn<2W}2dPs{Lk@^^RnjxOo)7bf%+>jbKdg*K5fXpaz{ zDfvDpOX10{TrL5)>6-qrG^Vb#n{3O+`9qGm+m->C%jT|qYftv3F>-rD3Jy5#K*aGc z5kmuY%1fwQ@ZC@Dh1PiO@wi23Qr_gaYd1!yZC`-5&Z{A=h!Yb8e+G+XnlZ+0UxO2+ zQXCH=qT&``4{e3wXFl^;^khwj?|$zl(zr}f-&l84xaB}YYwuXbMX0_Gi(n3~C1K_Z z8;k7e?%-0n?K@>tdhF3h6SJF87ePe@hT}7y@$AFm?N`f7STYA3$e6hh{-M`rp9S9v zzh@79_`?~lt$%arV|*7K$taf)TPn6;y}a|_GlWwaKzeV=A+Yz*i4<@YYU980qZ$e0<$t5w3!=F`imLU3k(&Rg zCejW-w*i_G5@TS6lV{N)Qnhqh@cA0jU9Fz}ZF^0d!mMD!0uQdK^{MtT5^Ak0vlwB*s*<&rZm+aIv4H5b1((sK@rQlaN zZZ#Mh9tmC(pueT9B+VtCO0MgEt)t!FkF|k#GK8rqjm_NHa&Y>l@=aV7 z^}avZcLkf{KNVaDTN;f7z0NnJq%DX0*NOXYOK-!akW)(Ui+ls?N=`TVL#( z#&%08Wk6b}E4liU}J#7M*JZ}auR_X2XZm*!GZMY z_!f~qqz1c)_gea*;2dC{dAnMGwO@HQ_{yY~T%q;y%P+6xHd9M919MIJ5;eWz%`77Y zaQ4|x;&ndx@Bfy+RC<%Ged8E=H3KKb>&3+6CPg9NnLp9?E@|%D-@VUXu$vsq?hJcZ zbl@n{EiRi>BS@o)uN*x26f(d6+zAjOF*7(c z%y4?+&S5eYY(pEmQa=CPqfd400~o692EhA(12n=ZVtK~8zFuZ8^B5jm9)gE`JGX;J_OuuhE94aR-EA>GXOkzvAU2prpj z=C=HD>y{&v-sBx1qZlIBH+D$3PkUBS#a{jg;$~obNK>7?L-keweSNP7! z(;Q`E;alf(MT!%YFy}bAAts2!xu4EirJ32t41_J};j>##z(B9WyuFC#N}C_G||(49v9Uu=@fR z2HIM3VEnx;IA-#OSOu=w0F$&9zhEyl!zvFqJ3vdM5qwqI50f3-G52ovntk<5`&Q4? zeOrvbCvNz(lp>W_Si-@*prYFY6Suyw-w5Hd1~0ETvLyz2w}+yhZV^7kqO<}=$7RWB zYRTBW?f}9vKx^N3{r~_V07*naRGL&U9s}_RUgXrYs21}LnOngL^(s9<@`rX0g$k+8 zRC5?f>@(DV&H5^htc~Az?(?YlxzBx;*s~gFtL(0ET@?E4ngyOVGPXuWUbpyQ;^}ng_4(FuuZJ}D?S$Tsh5*LLGF`#! z_F(N$!w_3dRd3af{Gc$Za6lA-6r=E^$`&2Mrw)0O@f7_G#%wXb1aeidS{6Vw18G&K(*DQ+OtQB zjLoo^8PEclZ)wpEJ4zfPFS5n7+blcZ3;<+txH{j{LovUY-AL8I*ezdPxL|#2KI^Ol zV;tF7a9ilMTTeFg>ch+y3aQ7tQqTcD@!YTLPE87GjEs!I;PLrsZod7Vm=3W0@OW6w znWqLEq?Wa1+Cv}7n(}GO=C->vSgd*!IDY2E$QGEP*8~rihncp1;NZT=tINX;!rZz> zJ@D&wtAL<+DOymo=q#1Xg3Pj4s03Zf-Njm4wj01tC~3d1dx1g%${W`(Ku7%pVyYCD z#`rFcy0S}fNGuZNKY){?D{Pw^`Ht2muK$|VwrhVIY0by8aev=>3TZnuoAdtu@k4{ruZH1dRulT}Bz(1S}2# z=Xi}76J*^&V6pokwy*`+v2)k??|Bz5^7_}mv2I3d8I6pskr_Lj=HC$P)1Uq{)5MgQ zrf2&4C2O%08qbEYd-(&X2H${U-JWBQ-b!|+sS|J@(+LdSElKR-v?lHh8qQ9Kd&4!o zWSG_9uM8SbhGCTP_w0*DF}4zajr-#mMkRxZ;k6M(q!doV-`XuWe}&@=y^TLY{{W>x zTEA25x51%^!#-b#26LpiR%&J0cThEYwYh>n6(4A>hjZlR^wD0=SWgKZu-BvPN2Be} zRd>bm4v9go*lf(#(M(_?${pp5z#rH8+oZsYIP-?znGMhEy~L@jgM3!&{U zu`hc10Tz(~fMi=Ur`RrC9eK(mgyv5ncxvU+1Q1#}M%XCmOvda>AltU|A$c#@n}>Tb zhYo&P)KKJ;Ih6reKGB(A1iqWsw*tAONrkC6pY4$pe?YWWj9bGBA#X6%Vh(R6Q3zfh z2moiBZ4`N)L$9hEhuva)?tKciYbOrt1_^odeXWx-=7P!}h zyGyfU;6Fb3NuDlD2dwbm4|;cK^03U%882|hh55y89n2Rb6#1t1>_u`aY*yB9*ua>r zHOIm@ddrqf5AC48$)Pp??;Ts}jttAv!rF|+&HKZ>?pWyE`^}75dv`zJSlMRp3Edt; zFhes-J#Fio?#-@(V3cWv;R$gx`tUlcoWS}+#!v}_(lE!GKh{yCSRS}Pm$dbNGA*Eh zDlUMpki29qm1nI;Vm_=yOM0;bsKO1^^N}JyY}Hm~F-dbMS$(d*$+4c-OP|k~nHE?m zeL$7xZJ77iYt(bT7quZkI4V3Xv!-I+whzVwF{_0fglfRS7{DRXCt$_gLXTE~a%+Q9me+={Pd%L6|>l--DS+o75btek#;?ViLt%L+3!}Nn~?lHK1bK!ln zE&!BFTNU^Ww_R?2hgaUFDTB%I>2C=~#?6=CsJ70y&&wEDXN-i~0zy6~;GAIrac2<5 z3}kh7C-6OnC4B(K612COmH4a ztZ=aIlc|~RPR(ssm-L;i|1&f=Ff=sqzz3eN!lPRK-C0?TwavFI1@D+Kb7;!5IoM!O z!cpL4hJ%@@PF(!9XrP|QMZsvNy`=O zXv-!u@38SW^*?6h-g-fqN1*UN6ktOOh8EJGajdE^dw{EIaQoo4&pTGO>8xiU>~-Iw zR-}FsBmhXhl`;BSg}RgrgsW^-0|yL3V4wBs8d~8DW>_w-hgZ1UL!vvc81Xl=z;Qoq zW58<8+<#e4)cWk@pPTz}Gj|Qoz_L>S-Mzx^j7^tAd#5E%!jvCv*}3^#@GU8C9+@?8 zj9FKy1PwUjhEIo{jQtA*-i@n#o*MJDH$G!PE?+8%f9I3dBPn*OXXlvOFz1d;Le@)I z1zRrP#jOL}HY|@TnfDF6aZ)nIhU7q)wJifxpR?M4JUIKt+}(aA4~R0x2z<-2H9b5M z^BMgvK@Sy*A>o*gCOX1qIHM<^40La>e2+*?0eT{6Bko)STg;^YAw9JI@&X4>jA(hI zbIy52-ocGGO2ZmOG{rG;bgY@PJ-c_K75atGf1dnbI``bX{8~@o3wClExvp2mSV>mh zs0B@C>kJ8&b_7-@wTX&#s+By=dM4fm#kW5Er%I__j8F@yJI$l8WYMS$>t_E5YA4mhJm9xiW>4881Gt7@vx!9;{_=?6}G= zlN>&yB;qvoxjI@B9ncoH0+@qu&N!KbtbPB8*!=x+)Uscoj7kWq!gm*!!pl(AGNAVE z9*?nCWB0}sJbP}(xIFk8z1eGEMsu{tb~mGnVkAEEJwHC@O%*w9Z>gP__)EKEgt)J_ z7w})TEo?_A)(ipg6mk94U(5Zwb^#(bZVW6YzR^cN@}cNW(Y9^dh;41S>4+mp-+P~O zGJUPlpekZ+`});_XD^djglGTkO3p;p^*4X(`IJ0r%TdJh1+TO-9{p$v{O32mLF_q^ zWCazi5bN*SxudtQ|KlJ1N1p!ni(WimQ)?zab3M;@9gejc79=e2Za#;KYfHaqsvKEgKcq4 z4U`AO0?4kT62@+zg!#CQ^5;LLAxKHZp$lGnu&PtJ zsuHSPqjmddRS$jH2dD2X$P@w10?Bwx+gCFe{yQ=}vLTL#g^M+xuALbuUi+1+dE4D`wumAGTR57M+Ow*jNzCKyg z8Gj!dkzJ@UWoy@DXI607GyFPM{&Y|VlVxG1ZnND!xC`>dVcxna5}%x8609BJbjIZm zoGA0j7g7Y{P~(C1XLof*@0qo5c>VSpSGo#jaT!Vo zcFpvpPG9TrgvSHg0O-x~DTfw$aBpug-v@tR5aIhu=Bd`|1)~#F7BODqKXW;%FJ2@--HEqF|eOZk- z(^&AErc{(^EZas}iSx3{K0*0czUoy`Z|=x80rn1b_7l&d&<)@GFJgZ|bl4dco_shA zHf=hB3IF)VKFZVIe!+|8Zf*_aqRKG?4FEbfGqY(!KgW6*w^>>eGX;3hVK?5tK{TBC z`=+scyDX;GlQdr|f$Y_z)m&t9zWWfYOHcI}M*ipdY4$5!7f12L`?mVZWPQu8M`W zt`7904Oan`8Z<~WjFjm~Ihza6rdO$by%xT*!8hn<8#)vswx@- zz}|rYzzhe=Gi%6BEEp$yn?drBeC4S?Af)8^ycs^xIH|N!il4Ovug2+NiUt9 zIC12jFQM_-=@b3J>j#%d$DduVTW|o7f!p(@%q_s(#|E`#xHnjULN}Mu!VHKbm&E`$ zxZ!eoy01@K2lg&G5o3ET8peq@^#pU@SjD#A#nde zZmg>YV~zv6q^s^DV$(+122*YQx_;JtS9b@e2O0L6+7WbcBV%ji9S_C%|L%9c!))9b zH-B0BI2!gA<|tUZ&(g~6+wa#*wxA6N1s}=a=39!^9hOh*VIFJC>ji$0t#0VG?4|2;+XLT`cb95A%6gg=N5 z9wo&QVLTd;ib0$N3Z+!F-^j22*!yoZK~rszauoAV11Wvpr3f}-mI5h5ior8*4uDLn zr}{eXieGwIz$c9Q=Pi(&``~370PZk(^xm@k6rn&Oe>||D>5yh zQrX%69iaZd#?Dx=XmSZqgb`3y#{d}`)zrk) zjQtdWSx`?C1yvL$Lxzt8P1fJrD++@*hjxgZDvvVc8Ifc8jbr25jvMjmPs@3D@>73N z>4LEPAKdi)Jl~4~>XX4^H9bB$>iPNdm%l`rU;IVcwXU52o1ZU^{Wjmex4$puWQ^~w zk2_QGjbNF5N#?Cq`=x)qR;+i^w!m9AZ;V@KhonLGk01IV@o&B0cZeqfe{9jiH5YEU zL3(JunJeRk1hg?$o^j#Bl-AsT-`r>V0P2~#nJsSYrfm9xU++C`2-X$yKXX3J1DGu7 zD;Tnwv$7%dCyng(^=of(#1k7=^B&v~nEUg7`}yR*_0Rv9*df!#tp3dZ+82;nh3Tzf zF0eo7L*Df4gb;03CjSJ0;*YR$2l4>5mPn8WD<|+sg=;}?J1Yb(ul!(&fEf$iM^MA+ zDX?P1q+E!>KOyXa-}5jO3TJhZG|vGdW=pGNth!?hdQKe)$Bs&=HdRt>C6X))_*9I7 z8O;5?@V=}Et%*1b{Qg1%W0g=+Q(B!=o_dCfIUSK6bFMISmLn^SlY{&@--IbJ^yg_z z{+y*&I+Ll`9!je#-SMjFFBW_CTgM(?Vbrq%R?T>u133g{pvXO0`7l!*c4N(EHCX4z zd@GJqe?dTi5z`>2{mAgJFz2c){>(GaApO**ofCPA>Up3k?w=Q%m4Ip? z=Sfd_S{}PV+M4NxOD?{MN2bG!U-069_yRHPfy0W(+pA8HxIOJ-9+ zP9PlG@(5S5<`?hS_EQ!! zN)~v`GGCalnc+TjX@Ytmxnzc)#>d#cTO8zLx5`T6-uvz&{=~mZPwzLL{{muv-)vX% z`*07}UHcVY5z3hOKd--j*6SJ~c^!H_y({gi#5t}~gLI(sTv3;kcKD}LH3ENh{5X`mGx)jJmdh=JFIV)k?8p{b%t;nUM00MnB$}cKF z>`7LruyHL^01N=j1ObDKvth460_O5L#pzY1Rk>FYQ5C{k1(Wy}{|7U~C@`HwKk|7r zt9@$dzX%M)L1M`eqtTrKE6~6CaCQA&OvTn_#w91w=l+1&xOL@6c?C5DyVBn%I3U4QTP z_;!Es7w1JS;p{6JtS9rzSN~z&Db}#0ji+omauexo+cZXahyu@0Lcszi8EhT_ew~5_ z>Vemr4uE&etit7jeF@1xd4FqeM^KuQh3w9QDsECD2c8&D9eR6veBRKu=Mx&Q`jB2# zGP~Qz>!kLqp_C;7U%l=+NDh z@Q?~zaKZa{qxN=jmXQW!M>V@cHXN-`SA0sSJzjguQAZ(~vVN3zC{`WRvURs5JtMo! zWfn&1bJQ{?>zHFtK)z)*7hZS)=|6k(TZq>J9pHN@re}ovfA@Pg#ajnH9&6saqdRWd z^Nz5#k71py;)e%>trxq*lkoiWfk->R{~%$R!Mc#dc&(P>7`IN*Na#blyb(~}6b4a1 zW^bQjO9x$MAbQO7BqPiIKK;}@0H?E@xPLHZ5@!3z6n_l1HsZAAexw8DfZ_w;;ZqYb z)RF`t*0D_d*}`7ac^C0qzo?~>YJwmj774}9QnmsO=m}WAA*L!uj-5u-3fEFmPry+; zExI9LuhH3qL+}sc6aZq%vEe0{J)M3LG;h`S;(bX6iB`?p>o0Qhy?*OQw4-A~qMJ!Z9Pc$xV+Mzx)snQ39%qw;7NEeT@jd@}6ucqYTIo_Wn^`%pqY?kN^f$P5ja z93SWM&KcLubZ^63X9e$*()m%#Lt+1H?djLN_O;|#58C{CejfC&DXa=!@{&JbB-TT> zKX+^U)~u;3Gk|HPVJc{yDO(I$kS#%OD>_IVmxQj4)^f~Yp|hI__7_imnAq;ID|9a5 zzpIXp*9x*0#$e1;pDz1&`a>hO0WJr|VUINXH+8lUzT%70m9jkGh8u3ko3eI1Ob-q@ z>n82mxr={4`*S}}8QT+NIz@S%Lm~0r_nyx%y>4xt-qtG06`0Su_RZL=WvF6~-ih+~ zvz{%jvty1ume?!y9dCOp>76?zi7|#a7}ni6PnCRQwV4)q=zqIM9ubb(D8H3&`^)nb zzx|!WUK=D1v+&u^$nV*%-8+eGms5o>qLVTlKlJXss%<}EJ*zJ1IE z=E^?MtV^_jnAxYh}QzMjQm6Z^j?+rmoSZ3gg#`-hs zrGRf)e(Xf!`xD_`IaljYYo^f!bn7gGU4Or0V1-ftDjFJ?d;%$SRaUq z<{!wu_b@qD<2#6BYj%BD&H$EG!s5Mw+03K^ThH)rO5M&Ik1^#7TeJmrbfIzkT?A@?M=kQAoLEkdzT}~gq^b+2}JX|a+Kp6Rs zOg^kO&44fhnS+srZ%j4`bdhGJCix~@E=yhG4rU1!i$V!xy)9dc4(5~gIH*Idwxu_C zn#N_U+t41L!6!M^#dKN>+vWqm*72NYJd-h8am5#j&phMN#5a8NTf~_yZmb+^m8;4v zh26V%K?t0AhBS!2dhIpD4$pknv#ZHf^!JjBFJv_K$mC&-j)+t5{nFLbEhZ(CE(TkT zL%VsC?0BE|g5PzOS+OlJN?{dW^He&&Pb$yAb>GQpWePJoReTSrOrZ4R! zDfz0l z*=xgIo(!e8-529`wRz$kZs7$!e0XkxLCN+(6W(dDn@WL4ZK=6fT z7o`>tlAvP3gcJZ?PRx!2x6KMDt@02AE=Er|PaKxD_CsbSGrO6?;5TZoyf$(qPG_IW zfk*nyYV)T}UuhA!J5K=gQ<@khbJjO)`WyHQ!C1A^mdGowB2{Lpp* zL_`GywGng*l?H^es;J7U%*wlOXa3Lg#P^*z_uQL#GV^9tR_2Mk`JMRUi-<42Sl)Qv zH{N)I$T)uX$?rl1)5`-j@`8_j>|>Pq{`bHCg?itG$#=u2xYT)Tf#uTerS+GN{P%hd zlnEdMDc8czdp67Yy}>41*-2~rKSd4|yJOj}Yw>>U0-<);QupW!C7c>u+URe!`8+I*!j^8)mY^g9ptU-=C#!z zW}uaoWvJEGwxrmvd5yFz_OmlwYvmJdPdALclt`;G?Pp8p>Hq7uwb{Pu z^{>Ux3CU;NCQd!7PYaqJatW;n=PHkJod3|ZsFU~Go!PSkVHuME!Jwk^Nu?Kch_7ciT2z7 z;CH#M`6PxXJo(9OZnfup>c7q>{{3=$(;LLA<>;>1VLfR(@^udAoVed=k6x_CXUXi} z{BPe$vgr#|@! zuCIRetGV8A!*jXD4P#;Hp6UNhiF&_-_5Yjy*IV1iAOFXX;h!}UPoEK`YV4s#%Ab-S z^`5UKlRN+bAOJ~3K~(>6X*XN%?tu>wuwY!Yxy2LxpQ$M<6ck=OnkhMtA?E<*%#Z7i zT|=CI`s6=x&8l0hhaK{{W5NDqoyKQ_FL_lU@|d|90k+u4`m6^&5P$upS+OG!m;DFv z=NeM5X6`(|A~gBL-LexU8hU_E5(B|S5r||9C~FWTzaMu7wBr~w&?GNbw*h!~uatzKgj3R%DUmOapKSZ8zqP5XI;`iHI#vH>B9V1hTB}25 z;ExOswP9ugDfJ?i=09YGkX_Wjm-W5mV|u`S>QiTCmhbrjuCJ{QqJD}2sA^7Iy5|cu zdgEnU14Y5F%!l3)mzs#2J(99wPOz>bWB=d|VR1QW(MEQUU;z3IO_B5<)ZACbB*Y!u z!73s+hv=D|auNU=olK`BOo+4>^4;cX%bnPyoQJeedEQEy*EXd)1jc7Ya@O35g`8uv zbC@9Qkk8usT5R~d@Wz)Ab3g2_7u}cLGoK@jcBQRmzTtI}GJoO|{{(y}oD)cpS{1n5 zj^(Ao0niei4rdZknars~xciiJ&r`S2F^yKw`sx})Kj$2!o`N5P852@;QhgR%LJsO0 z-JZXA-=CA=6CVFKuJ8VnKjB*XfOVga96H3(lyu}}Ge;*MAaA|vZ|-7p0tS5MGq(~y zqR3$ISW_YJ0=c)m<;`u*U^nK@=<_5n$j&&uQ!MOyOl99`;ymlw(*BCwm^Q0DJw>u? z!BMQSKFHSpvmV1@0;%q_tJz7=C zC!;2DVh?S3Npgj_VE_0<>l%06v1{>ylemVr$Wz$nCQ6ZTY*{;N**t5;S1GM2n3_I;pwu%CMkY$Wt9(>WiHY)V~hA-29Qh-}wD6 z>ow|48r`tWXbY?+fGtBZSqpD zV4pC}H)l&qb>9enNt~Qwx@EjGJ1dDIJG!}E2=}F5{ur|T%fEO(*T+7_{=bsdAQtzz zcC6jJFo(BjsWlp9n$y<2g0=RU+a(kS}QpcTT6jZdl-5+0ZssdUcah}P3*Kls5!7zX<%pKGtV zIv%cD8>?J{2cyTbw5pKUfeH2xs!dM_3jKIw)3!*Htd@Q5RrrI9+zxge7g{NN?KP^Yw(q_BjCR@p6WgHI__pA7@a4 z5?5*bhayUoNfUwJ9s|%4Ha~6QEu#xjMwMdZEj3^izq>YQns948$Qo1|LyyFDNh7EY z+|SdCp-E-$ez{-T3msk;pK@xa$jIilibd6&Cw$|JUqV5$V<2Y2k!De ze!p|*52}Qw&>^UNi~U9X*{A9wApxh1F@)F*KGHMHDhp=2G92BO8Ze?SRjvsD!`f`u z%Pdi%?A0K{)SpP92Gzypau6;OPtMcf^V3_@H}@)RyN?7zBXp}w24X9v-6q{N1PHwf zB8GZoalP;+gkQR4bvN>kYT#n2fg%sh*ytIs4(gKI18byC67g$72bd zZ`_1aBqdf+(Gz3Zn;75N5QE7dE@}wsRD9REPGF99lh2RS$#Fc2Jyddr_=DXDVRecb zLLtsXmm-4It5Tmfm|IRwc--S2M>r=ub6wle8paoy1Hgl;<=P23{WXX+ae`07nT6+w zZur)gY|CT^pq6|nl^K=no=Muy#3G*LmbQN21Fj?F=39i0vp-nvkW?d?FPos~&bP8^D?3lG~ z@Ze(U>xfU*m(ultO0}%h^Qrx204RhcZ3?i zsrGVcedp(4wDdBq=s#YC_dTxO1Q;t=tPUi|MN~mct{RQ~u4Ky!CeKDf|NhE3(_IBf znLMe={Tk>@8SV9)slqe;Ue7L;FadHGlA((U^AIuyUQXW}=xwPX6`r1%xuN}%+(xZg zxwa2Ro>2{4^fgdKK#@S@%*itQWgRc`>z7(fMZ1__%abFmE}l zJ$M`%&anZJM31mP71Fw(x!E}(yXX~cuA^O0WctwtVeN#cS=|Y83{r@HQ~MHS8LrJU zo;(eC0+K6O`an|^zQTDRPKGfzM5O<{$zu?3ju zV5IK_iNoD)t*jON>l~7;VZAyYF8!Iquko+huue#Sat7(bo5qSu*_Z2jTlDoQPkJJ$ z*sZO!uJbQ8I_CB~UC~9cbUs!p@3Kb!ws*_~1xE`$R=iT$qgP0uBsDOx)7s)K_CymN zo%G}%yY_*4pSfLUVn?PN`}pB1ip3#ou)O68F(k(BQN26ex!y}y>a^u*oG$$b z$x9had*CF3${^e8rI3CLQk9lG5|beBZQ9YHF(Wr@4V+aaa0mp8 zPjv12q_&(dc%S-?QDHCN8YmOMnop-pHDreD_-wC8KbgXK6uiG}?TJRiTGLHd1vrCC z$%|}3Lisqe5W3|t=T|U+W4V(@$qfdah{$cZVs{8C50+O#OPMqCV^^=0S+N4gL&h8X zmZZ}n*((~}ThVWM{=bt=|3UdF%LIf^@b64+FzsN9SPK~puS4?2gUT&ApIdI(OEGKA z8{FZBMOG^CnB7UqRgw?DgRYR#ZRZVgiG8uuedOKBn9S5<8qDm z%LKdf8{PI``9y2%XlmR=?q#f>(icT6nG$k7x#C-ba^;n> zZM9_Han@x{{;->bvkJ;JPBN3mg+I%Ftk`32p6EBFJunWy+LcI6o*G`kt0s6ONqaw{&l$Q(U4C3M4P&PKJuS+4KSyYhX2$osCJlY-7`)I z#96=o;!EIO8Uob&(CG6V*s!_yzIs%m%c=$@V;3d6c^8U=%iY_mIXYLDIo~q&t)Fg89jyB<_-!&}oFEL&`k9QSFW90*J; zZ5eH)CR3~R)tgvRkeL(B8=qp;W!>^z00RLFfkOw~)|3e<~5U$M$ z*m#ReK56~D<#Rv(;mt!V&&X>0Fufx9Zm>1mtXfZ<+Yi3{huZMk6RG+z{lB&`S?5su zYdfzAkA6-a=Vsg7zvbpn5tvoFJpG-w{l9HA^{2*tj_Y&j)JX!uUw-maN*ni$U;mAG z)_js(q}b1Y%I;O4#Jt^mdP}l>eunwR;p>0D+#(k-B`q?Ntha@Sp7j_ESCP??mDfr0 z<>;zW_ERTixg;a*_T%n3-V>0|O5dn)T1NDpCv+-YTxxP#q<1X5V7+E=rFWd9giVTb z`;CA|*bz7mg~w?+Xne&S9HC%CxS>o8j@EZ+lQ=zh&IP8ZvgzL@*e{bd!pL)m8jvte zGjXCJTf^JJe$~Dmm0!0@6RfpRFYB}cJx^K4>IIB^qZ%01z(raEWdhi?%stw>MMmZV z$DT%zQ8aC%91-lFkisOJS7_D=Py}pf2vVv}(Su%JUl!rE96u)wY$M;-oNvsBXR$uN!|q?o z6>P#<3p9Okex9bwn$Yaz1g(SZ9O6Wd8Eu5c1ti6t=wk$Tq(ve%*5(ZOGuz(r(!;&< zj-QMIJ4<>mU7PZQ44|`0sXZ(cH)cdBVKc zhF1&dutf77?2}9?49d9RxP4D=P zB_(bT+zsmZN0;WI4}IvacRl*cRC~1>6iq213>WJ}s zM&dQL=abz7YpZDGl{J{?>dafeDE#_KpFpq>y*2MVXyxam`k^2F4_vboBD-F4C9rkB z_`0{?&pF!}r)9^07bXsZ14y53Ul@<5jM1g}14kK;Vitmec6LBy1Q4aq!=L7mnT}S4 zi>fu^ri?lWJxNTs%4?V*6f|<@R0FDTm^EqH_EjsCtFF{EA@yAITdwxg)qGZc&Z%6Z zMElmjZ~otJWjvwah@&|yU$R-b&Nzy22wK_dOslZkiDlR6DHhwLInDMovCs^$@y@3{ zee=^Rt9JXoY4qT7s)7CqV8EVFh;p-vE%|<=|H16BpJxKz>If-L<4h)u!gOvRSki0O z()rO|N}c32KR*v(ffz~DV9sDNa%vNMG!r06?9wDd>;g$mdrOoH`7$aRCoP-4@x~W7 zuN(dDQ3ErAl4Hvon(lKlQP6IK+N3p5bbF#tZS1+VwL**SjH`Rpd$1RbP0|P0c+Jxw z8a%iK>k+X(1MS?{gsCOeiIeL;ed2%M$@)|5wnvv^(Y8|tF>f$bqe&vJB|9XsVv0ZE z?|bi`;x9Pb+7_|;Nua~kGh-Ra0b{Yw&$$t~T z8xQHVvY^em7gzz>W@|e2I>9ZkVZ5+BKpfmO#CUR&ZR*@>GXO98)w8t z0HrCxQ3se zwJanj$8kOi;j7Ein~EjZIiF;H%Hag!g8g6m;_t;DZot7~uXyE8;@NNX6{9aE)%_Dd zQeS|pd4ZCz!HX6K)T1+IYS>ASc0@&>2jdDWp^?HcV7y5|Z{#jO4fJMjYF|z?WZ(Bx z+yjwB0sGr=--JUvc<-P6DeFZb4AknOinKc<3>t|(0$0Wi1tgIE!SnPHHV;Blx%HtD zniXs$ij#1}=jcN^W7k}D6@(n04ze^a%@;yarMX1Deno;YlIV`A9%$GNi#kqL1d94IA+I2&>{4{bnQJ$7{1Ie*YJPr>xdA%?l!*GuWV5j?;cM#J z03S_LF~R;+d2pT}yG)t97>rM05g_n7!6%97_@~0aQ7bF6-TGjErt&XPc*sKI%(Qe-R;@cq_l}5@RR8`( zFLLV9<#aWWHGl^_=zk*8n$KF;@=lADwN)q=)RLB2T%7BXem515n1o=8XO8 zeWccv?&Q3%xy3~(PLK@Dva*6d7EWICnx7^ldt#3smIgQN3n0Z_CR8Z|o?Zmy5(S&k z`DG9_5D;O|V@SQpw=DJ$!t76}Sal#;D4iKc5l7|;QDPBwfpuu0C^TnI^U0y0ycj1c z$s0T;bRpBIdT$YtDTO|!(xGv{nPMG5Y_@rkC#51OCD&eeDodsy^bTId9Sa_rUzi+p z8W{&(Z}C~00~Tg?$V=Dc4Y#`sp*DeM3oqG5us$GjlwJ%4rSi)Q!t7^n|dJsR=H>Gd9GAF=Xy%X0-m1 zRe?M{lp`;E^S}SVzvq{cL*IPgpZ)Rs-}}cu{HmWKW(y{Jj@CVt!A)Aa|oN1Ue2;AVMPD*d`6j>qh95OS5ht` zcP=%MrjXzww2Awc`a@`vC4@3FcWw=e2VYiNmB{2~;^;UubFaA+Lbp>?6C)GhaU>?t zLCHI4U{aG}XL|#3IWYw-qjzXWp-DEyz-jo?WyXaMz`r7L1=njW7b_v;V8W;uL9(IQ zrhWp!?rEASpsgbP>4BaHNCP*ioE=+l+UZVE0HJl3vPI>UgT7xLlVIh^^tiOLrj1nV z3@24uw(UUu^}&r}X2HlRckHfX?nIH4&!@o7P8pLIehNp0ND`#OQ1uX^uQyUE{>=TP z*!q^tK&nhqi~1{`cn(h-=9E-Daz$Bdph28qbh(6T0IEqp%X;gs&%&%ly)$mt(=q`> zdq*-|axozey2ntuLOk=EJTsH1yQkB~pZN4_!fj9zwo`qQeyaf^&>}e(BiOqQJFz&V zH2~*Kw+($D8g4qL`gzCT+Uhzvt$T2*yNi_QEkU)4J#uHNfrZ7RM2RMNc6%np;X{X@ zHD#Bk+h_(YES~v%H&$7gX!A5^D{}wLz9k=bxA_GTwd@9nL{fC9)A`4L_kimoA{xlFl=NPgc5{1^ zL#JbDYB?((){JryidD#BH(xv!9MvJNS6y+0>j|I4d(vmmCjKFFLbreBcEyxF)!35d zyoU}S;%gW$yd1|jYMk+(hx7G7hob&8Z|Z72hqIAkFfTOt4tVZIDPp^5{P)yP!o zNA8?zfR2KSmB?zEp=rQ2Gdd*599lzrs7>_S_?t)sW#ac3E*U{gA!JRI%1|rvJ%Iu> zwrDglnEOq7dB7MEy9W-o<0154txiucy>=ngok*#EL@uSvU zZ*msFcY3}~R91)w`iORo;5pwy=?QmoWdZfq&jogwU=VO&$&Qjz40m=Fx@{zhqugZF z7r$bNq!dKSijdzm&!A2uy7Kk0O}mROq@4Hu#r1a+Z?bV!m%X{ z4$V)R0}j?v#I~x3$hjAt#>$K}M5;?a3S-VNrteE>!M^)}n`S3)^&n@fPI?RnagR+% zULRc6yhQwfM@wnE&}C08u(6Dw3_tLTW`4#iB@sRmh}mq(Lu`qJlPG%*93M1__zz4% z@g;j@-kX&+Ivt)R;2-$Gm*HPAmw;#FPE!LpeIcfvQqS!Yy2vQiD`PLJ+qh*GTO{kI z)jFKBMj-nz81|4Mz<6|fX69xgFBb2zyX& zMM*s1C$!3IT%(dS)5*+~NtOGqpnwQEivc41#NkC^3j}#JJwUCP%f_MDlGq^K-XwOR z3v@Z+Lc++!l*{>;hLVq@PntZYr)R{Ac&bx|laupvvp2_fymitx)}*QZlqYLH>Q{c% zS99G@4}BP|_Us*vZq+;f@b}5>oqzOBuHn+~;KXC`z1?jMDC=T@-SCPjq8ju_vnk&W zZ|&(pm4*0<*qS~RNx>4UvPMnAk9T5)RHvb_G~!i?qLFg^4&Hd=2%I9}o0?es-Wltj z!x=EiXAH(>>fe4?s{-W7)f{2>~5uG#Mv#k&~Pk z=nvg4twuEZ9{J$tnbr@)GL=@#j~qEn!>z6g959X1W}5#xohLu}EC0pkeqNzVNqG@m znN2B0dSF8{`3SH~Zvrlyfl)}k?<%}PWF)a`l$hBukd=V&p!v`s`uM{E&<5PL;Q)rL zqa;rF$nw-vxj6uJo^y0YW4+|@`KoWW!=o4EPa!lNEy=IwkDUGSHdjL%+BtMYJpwm4 z!8OrGzh_$mmcVOpN&sIuW?Pyg1USLzl(dp$GG@|6H`N+~qqsyfHdR{a1p?^=dO=k& z_|K5w8q#2(TKWY|O?bM91TtetX_O80jPQ_Vk#E10j#G%W5@|9}M5M-&g3JH_AOJ~3 zK~zFW!yzqsto~)Fq5IOkh>Vx`E{xLprAg!7*rbB`r|=im6-r8Zx;8yFWg&pSP3s39 zMq1(UC-PxThFX&0gLZVp2%k))DS2GmWKDp6RU^4Hp?gN-VK1W+Qz>z@V?5>RRxHoz z2X3-9d|_TfuuYpiXk!s2qTrO8j)%icA*rHDPPZj8)W1zK^0>>Nbu~<~=1xzF#NV?) zgY=zW&0%HVFMX-^5;u9~s8DKHL_bygrtw%!!=LtMp2sg-$-HD55e`Eqd1;f2au(!a zX%4xtXba?Nf};bJgC&@eh^16PQo~@b;ce**liPmQKPY7DLNtf54G^u0Yia4P`L?+Qt&qi$x|V^K4FR25Hh2q`%mmoE7$u%%Bi!lOCUR zil|m?iVaMz8|DLo`+{3p-9=F`c=N=`yBWGh2`rQHF6fl@ghb6--Lu3AP!@HVtTfQOh=3#mIgkhz-#{)nf|ZRT z`bHQQG5NC1iIWX+gTG#7>r&j}YFj#|w>C3a|H+}gmOf^|Z%zTL&jS04_x(AM|KXz_ zf11e&6bt~i(}$@J<(L3ew~=TeN@IHF#ub&xBj^1- zN4SRnSoc1gSip}wIyI2@PI-4o{F6tuo)n#ykN&;Zcn(`5Wpzz;O8<1ZK$(K)$dq8M zC>%;rYBJCBlxe%mx`kM-y6rg8 zBT_;rs!8gc_XFokTSU*|8N(9ZDyP3Ces<}{zh+&dVE@3T6DMSUG&DbP4(#f=pCOtr z-koj6Y#XY+t1&96YjFgr&+1?0xY;|yD$dAz<{B`SP&BH!r4e|nmP1%yr4tP)ik_zS zO*>Ebj$N%Qs_ZQSlJG;34ZtN_)-)iNPC7s8kjdZVT8aZ9(8v+->z(EbU=>t&p1A}h zF_nY2hV+Qu8H-4*6bMWJ*^o7oCf+Lkz=Co$MbD` z1;QMYTq@IGizig9h=gZKRd4t$iNVx*l?dXXJ}5#$iJ=+?^~Vcg;%`&$Wyx29oj^<) ziK%+d!lf9VY0`~;&#MLivp`J0m~%BU%%GoDMkphDD0q&FJ`Wn%WKk`@mkhJ-H(0N` zt@UU+TuUuNH!?Empgb*2ZXkj>G$D;7ag&#V7D` z&HWuVx(r(bYu*FAjk+Sk($*-GGWtBgcy3QEFAE`e)*&yfg|=BQujnL(?wGG#$)E#0 zrD=l^{28T9>p*+(hn{MPcRH~<2T8hZruA6<;ig^> zx$BO9CR%W1okK)4US6uR*~5S1i=InpL=brkx+{c4k0m*0Uu!tv*Z<nc;kTyVHbO=nk_)ZL;F+*B z(5yftW@@#>;fG>zq&t#;0#In%hP|iE5YdY{AvIK zOqGY=_UEKlqB(GxFlMwFH${eut?jI z47VZJVi72Z{&29#BHtDP8B%bg%%NpUL~Mqyw+&K45jgq`6BG-cJX7&-Qgh;;{&>F@ zMOAo?@zM+K%g)la9ai`?D^e%41$D6vXTY7lUmu5`ieoP9AA@={a+hKa1i{x|mhMr9 z?DA_QFi;kd<;^=3JV-r3epbX3TksqjVSJ@AJ@q+TL) zMofd0vFTZDaf>br)~kr3{>hFcr08f_NM|-Kv#8by#>SrU%x5>jqu-%w;OJp3 zvaJ~>G|)9ChUI16#K8a<($$QFtJA{Il{7Bop(RvJN&ZzB|T2@oF&-%i%6tDAuR zamYLIZGjTbk7k{nn^mgFG;P~evj{Q?a~mk2a|aD41al7b5TSMY6}^H53L$rOEx${j zETadgCTbec9$NP(6Le8M?r@Zsg7HR8H0o(wLCdn(qnOdVzy3=eh5u<^|4mA95xW=O z_>#7CSX;vXb3d!yp71gJmGkwqj7Ocx@~$wc?C&z^j%(SS+T(Yud&N=hOUPMQHTG{a zZ#~Sbt-mY}`aXEMeT1jR{&l!TYdlq0JBeGP`&k&8}n^v=k%niWR$CL$KrY zO<|PP$emRUoLtsw%@NBz;}5(`8-?2=0wNkTukrNkZgzKUFSEP4vKG-KPh;v}WqpZ; z5670BnWvVp09q!AscEct5Z4a6Z?k1ulC=z)eUjn^CbeG|fen!$>d-0_7Df6S6wmBJ ze;}N6lJ{#O5=rxPq;UoI+60DfU+xA zuzApNEu*ia1?dOO)$tQ&YDRi!wW*Aaoc`^{$vH8D{e!Q=AJ7+gG~=B>iMd}%(gka7 zBRNE`dB&?&sUOKCo4SfWZ)cCX-sPC_rzF#p+SMGF@N(m-n)ZH?gluf86=I3DV0N!b zl$8cIMv>7)n=WE;^UWD(Wp%-GcCdeP&UtfLMJR9g51TLaQCoU%>rzF7kiU%(k7{-} zbWny|e|n9v{*c}s9ZwG}byXERrg{m4Ky+bu!U&HU<;l{+Rs()S{d;wKaK2q!7tO(x zAWjQvt1clKI#dGy`;{lJ=aE3mW#@o)+o~O^MT1ey z{bg4Nm*oey6Dl65f9&rjB{s4KFLAPchq2;uso6BLwj_@=nCKy7F`S`Am&*Ee7StTV4}aw{iEW&<7e-+?!08v5B`(`?P703;SRpw~B#j zHm?tbV~gAqp*z$#l29^&_zIEHsHWynYDhd*oiXh>X{~28_a&k>e=sqwk|3`)cF+vq zsRgYuRt4y5%0=^u@@k2h^x_rnC1pwi_LYSM&MRJ9W6!C-di+H<-bkDnJiv1axa*Ed zFX-7fynyTLf9dDB&dy1KJcqys4#-HB)~5lf3YwJhs|pNACSK!$aC0|h9zFhm$Kd*c zsf~8CB$GHfEw0I__Z#`UyGWUMG1c8Z4mGHy@Pk0LUJ1x~YUl}&LyE8Vrk~gZlvRhd zRzye^ziaNn5zD0yxqD{}I>O4QsuR@19J}RV3+?JlTW31pPiZ6SjP6bL%EZ5x(@os- z>!kGR`WC+#V7|!V{;=$vsCSGf$;Q??)s=5=GofiH^W5SUcb_~-V0e-CY3s=v0Jl`G zFc$U^M8CYC>2->hKI1MXuQ&~?BHNyv6jI@d8>v)DeA)a! zwL`GjPze_xyVkIFRl8g^HE|hzsP&wC-#b0KhzXON2h|H5@M-gyRHrR(nznW}xR7Yr zaHPWk(nS?K&LewbSe6iz0S2OAg=j~{quyYYC#K%OPGc24ZkF*R<;SxB@)Bx4oP{(6 zd*V$ZN<%6pVkEwk({x{~&k$nGjqMXBG=q%2SZKZGw9jWO@a7t9QMYsp{ZP3)gZs7^ab#j3QOb!vYwCzQsn~UgT?3p<9 z1j7eS4iKqrY*xAt`E3|Xl=UZ_qXI`_3-y_7cGyg+RRj?+`Xmzs5%>xS9PsG^46iA@f*l9Xo!f#!>BR zbibW_`1=UTq6yQd595r2+-n{p$USeVF>O$PLHgz-S}{diqyX`(4Wy4{jVdQpkC}4~ zFOrfMiqxj35BZhIEeXq7LS5!6V)53TN6HhfqK=t3gQczG)c#0HeD=oJqNV&x-s>Cv ztJw3&S1hlI|Gw&|)^BQ8`02uzSomqxiS*%iWRaw-wTw?|xyRg0@}bPDOLyVFmkG)f1V^V08qnJ|1!+c#)CO6 z%%C1-I&tD$w04CA*uxkk7$}ymiLCc#}|Mq5{UL65}d{lWHeJh+V>{@`RPPEe?r?U3nUA zB&Azr|0kP$;%7t}@o6@OT_7?c$bT>l0^XxL@;Xk%v*1^Dfi!}(kgz446BY(G)&Yjt zVaT7`bZ^STSt{C@4d={%IY%*oTQ^G$)rv(?2LI@fYT#DUsa$i z6fu%kBZwKE@+#}RfA0&v&t*T|Ww6EuW1mm`59T&ZAJaq#e7mE-x4}%>kip!ZXKo-Z z{=ye(g&>yY;q$1(TW+~oA;zSKWdU?--RLsNJ$yi$IUZJF+S^)cpTOYa(3+sjIwWzD zKHR|RaddET-V)@FRbVoC-5bTzr2qf%JKvFPxh8({PtLuvwvj4N{q|tzLH=M+$EoIT z@}>1Rh8Ow8Uw%vb9%!BXuGL81C%sM<48CGLu5EMI3pP8L_0;T%+4Sz2SViUdAhOBH z0e76xZsDm}>FI@I2t7=zZEiPfsn|!dZP(C!=q`UG!Lb*IYvQMduRN;L6tV_jn%@j{ zMen(0(3OzBTT*1U@I#Hg*n<<*8efgYmEi%%WYgA_pn9_#$j7j zS}1H(-04o`ge>?%x{`L}0tZa`(>E~o3&n?Qg99SjXC;bRfhA&Sx=s{8g< zh`wNUX&mrRLzXeE5zhpGQ(WF6e3!%^LF;M6(2}#)g}|^*inV89+NdMXIn_W!b4e=N z8i*c{PN;Se$qn{|UW4?WwPEC>BdU5&3X@KNU*TSXP7rU`ONosBr`s4!J`x5o?0T`< zU#V3h8vsgq5ir8usz*^u0LymokRgSQ+@3X1q!W8S8wFmLH2~yCYkOy+*q_r_;|~x< zpen=zPj=N|z!|s4UtI1#;L`4RM!fwVq^^w)rUr~=`io0|m| zu5#WlH+GRe=SaNFrAy12_gF80g&34PmSm%!A!;D9;M8z-Y(!q4kkoDD=Gpxi?U7i5 z0+;Xx?Gypm`(0Cu*l;a!_T(^&Y2WV7>aq?^jLmV-ecQ6^`vs)nAl8U+zy&$zgARb7 z-U9On0VfAkx&Z^hDcKcfl8;uH`pl-agIol_jpYCCCptNRPRV&>EM}azOL*!z-`3NI zas12rl5=Qhj$A=4te-f+EPHO%@uKg$frP=E(fyCjsK}aQC2ZZt&ZQUSY4B#f$2j{8 zB1x}f4kFn|t5e$3qyBUIq6?R5&HJ&Jmoy?at>qZ~pPaBA|82K@rY%5LGBPS77YW|4 z&yl8w6F+NgMJLMX>otk!StVQRLYFmv9ib-uC|w6>X|F>RJe3RvukDzIBJii&h;Gq_W#Ol}lgS(YGk^7Zmz)A{*h+E)B5y+w#v+KQc zzi->6xWeE zpBhLF(5;uyPd(cAtDcihO!P^0H7y5Ve{_l{#ydIVv@<<3 zOLqm`z+9X>B?~#<^L%0dk*jMU?f9A7ZX+<7QT5Yd{4aTtPV9;c-mFn4J)(J7_=B`v z(FpQc(~0jsKvSx}1@9NTvu*mu6C|5m#6ibz|AXJ<;Zy(R*ELZt>ffyYWn4splC#Y8 z^PGCQBaL@JF|@69PiB3lpdmE{$943h(`D3H4q zWM%J@n8Bn>68NKIe#ae}@xJSsl0S~zxz)hVrgVE|7o=&Bx}7vpmZjBZ?=DvUq0GS@ zK@E9VSvfE@4zG~)fU)pIHACTR%1y@$_>#X6}xGnN->-a^3KKl&nv`N)!ve%j1 zC;ZXF5qBTpS=cDJO-}F50V7+eUyvl9za$hnhppueFiUE0ASb;Uvza8l4PKL8P%wKeRDkKIvYbka zb~d@imJ2f>qn%U3=z6jAIcb|7$vAj(ehzsqDTG0nSEPHsxw#5Q(wUI%Ni4ctChc+H zpE*9I-GkBX2_J@$&-N{`_L_a6kvZlFZ%zYl<3#2N!KHO_T0>Tb4jo#gi6$*uT-$DMQo`j`jiACsnFEMM zR`%g99y-j^+wPEsu4}Kpl55$4Z_vYS>w^93^|q3yV+`(FZWH2J_rBsNJG5m8nBdzj1a30V;6vu*lmpN*OPBU3x8uNp;eYanX?5BRLlB?MdKY|dD*&OUWZoi8rT z(|Aiur)bt5fjBhflOYeLiXgwC z`#i8yU+KXJb-A1hPpnl( zTa(kN=4NMNn0}wQz2F*SCN$_i{$TuruE^O-0j*ybaeXBI3C|wmJMOrh+p_9u8(hKZoWP-IhC6A6SOkhce86&V?|ppvg8MTrkL^QngnHN zJ6K;Kf^Q^eO+JHvJyWPe2bM1-e={EzFDc)VyFfLd1}TlGR-j{jgJxN!wq-+!BDUm2Jk2D#K+}YQF>-p@H zjZ$1HHSmc~eq!)bv>1y*n}05@oYk8O3gmru2C405r8$=K;_cMO9d zVliLwhfuj8N2zPWdkyD#-Md;9D8zxu)^qJ zQO8C`mX?>94M2;;FL-}t6>>ZqS*-2OTJ) zeEFMoU(POSZ(7%(H%${nc5MTl9I|8IO0J63@L~J03l%6@~0D5W2_Bh>XAOZNKFkUBVw^ zg+OuO>7dRc+&*wa$cy3XtD^7W%J9rjA@Gh?Qfkoh&s@bs*((5i)0PC20bazg$4Uh3 ze>h4~pZ1M=6k-%~zBS<0m`u-oS+&&H6kP4Xf7|)#i`Lwzr5oN&i?n?`2L^!b)Gy2( z#*ehn??_Bje?r^=h$)YLls}!)KJfvFgG!ff-aPs}n;IzVC})#o6!%iE0h{>LfRl?V zwhjo>MqiCSFc(A7Ag;sklcFcEp1~-IkT4&k6w2Pb!8l_FH&@ogqS?3uG%v zR%d)}28|AOaB@iLCNUB5PR~q}@z#Vy1y&L%nzIYDqXDm4Js&siv%O+PB(lX=9$#Ch z9XWA9nv@aIWY6KePLCQ7I#{ zv2w0y^nkPTU3loi^+&TJtePg~PU>%z+@nF;a9h$XLrMu&H?aEGzgd@)iP0+n!h*Q^|35JcXwuQC2x&otsT`$ab9X%{t33{Z5 zXWrNm6U;eLxulxZ{($1wk8Cjpa5+$9yBX3B*V{Zp=&pI9bc$YzBCnhtiy~-}P~~_= z&}^ZJL((D*c1Ogoy*@;M`j6Z_R|DGN;l8!kE1Ryh$1}RXV5r)rw8{+F!G(L1`ZvPCCEqykDs_3|LQ4p zezuX<)9PF70YsO^I|Cv&T(^!v)?jk%*5st5`EjdD+Q+zP8%<>&ue(ZAJaY}MpDyhHhuHOuPE=0viu6A@ASuCASh!Ln7lLV)LY5lPu@otWtTyz2 zu#J*uedUn#`gWIJ;~#Xzi~@hQBNrtECjv`;LK5IeIV?gnVn~jSzcLz?m!qI02l^E z>^n0jjJYanlqAwjduTyYDx||)-|>gP&-L+7coNrzl6~=ubSctgSSVlW&h{4)oE_Tn zivy5Kju2fL$Yjn7c9;*erB@6=IpsYmxC*o797l~;{WXBF@fV!ercg#MHKZTbp5)me zg!oC)T?>*GICA%F4N&73w%VEA;hi%9xPz58mV6)eFfkAO6<$DoJs0&?r;v9x5p`$_5SZ*AGmkMVot{=xoUn$Mbz z7VBFVRI=tB+6gQ;#XAF9i)^&!;`}V>(A8(Jho^h&eQt`7OU8&2u#kuhg{rqmIVkx= zSDo%bPtfVXk@!o}s@^p>JI5Tt8O8X&^vfTU0*tOh)<7+5K5|IbDED)<<)6gi{05o~ z&67h%WJ>4~bG5`jyiWA-vwoRzkxz~cV{mURJ(>s!uj8jbr}xJG&(fOcVI8yB*RuVz zSPjaGTK4_UO-u7i@^XQp2^}Y3WW<>(LQ8f$!m&QgwQnUriHgg*#kBYIBq)0q#8BzxhTzze?|M9LdEv-&3p8%qnGv9K+v{%X{k~0kg?Vu<=pSo zw4Q3D&jYPy3&74g>iLLjd4y4S&S~A=&<sM%(YWWpWPZd z0*EV=DZSsaT!A3bhxgpZu9X)BZd2sJNp{=*vCIX zqMQu8Fsl}fmd@g$v_hiMKR-VQqsAHxA#e=d9PaL5Yl1BJCqe5Kf*T2jb5yEXH;U zwJN{O)E^`7*cH})JGwil8tC;PH>u@zO_R0= zzQy}AUDNLS6@V3|9(mK45t^gojVbr{(Ht81&(UqLf1f#pq}YX6=^(E z)U$sM^kz_akeUeZrnhIGW0hi(v$r(l3XNyDvV{}P4QXB*^xJfgpAri}t@a8ix}{N` zH#)ZG<4wVoQj-DE^@E_dSr1@-gBHNW5WKpobH1{w-nCqq4W@(yQFg7V61y1_U37<7 zJ=YAjp9PiuY+{h4b?0MCr_H4G>{pUD0-m6WgR+KrKDLZvc|2u{e@o_=##UBVX;82~ ztuIlVD7WDHYT5nEdJje&G(U7Ev>sF2h6+l;Vh`bIsdb~Cm97L0DRoNS_Y&31)FelcKQF+TC^h4t`(pLqA;Z_wNa91Uwf{{nw?6f0!P7 zP_}dmr{(pYAkD$v`>SvIPgNl$*KV9pMtb68+!aS_4awToJ*httpr;cbD9ico)b!1UXDOgzJ8g6XU95!d>B|>`*_DA?Z z2!5d}C4#V$()g;=Nh{QvT8=Sx=Uo~v$#K@FuqAwU&by0q<7@T?DQ0jvWLqTO0IYT_#ZkhLKrR>h-FGy$3)(52>Aenxz{v%B;`vZ(nV)d}b>{xjMm;}Q@ z)YJ037hPt}5Y1_z^r4`q=s&0rNa294s0>ujXgHkxCy!FJHIO=tq_@n?5SEQ97zeFk4N@pArGqyko#8@u%uq4n$*MgvX>&8sn1@P-eVup%Wx!-!kR zn*nu3q!htxq%0X<${gx#x*U|B5VbYDc~E|X_Vfti4(|b3SL}k|l0;WVX;ya~BtIc` zc$6naBsWb~nk)*MBpeDrW|=LB@2rGAtp(`JMwbg;1GQ*AyY}{f=NUU&e^R$;8tVgd6OjXQEw@aHa2<_Pn*NYbIvu8!^h7#`6%JNRRbokqL7G5f!&zT(cZ}ea+-D+ zrQIFL^w)Q`0bd|BLWJCf#k`ulVJ#rP62m=G^O*!JPJ5-hOMIejS!aV{k~XLT^r4{~ zA`iG@u4G|ZYty`E+Za=41v5D;EG$3-R-}c}ot@Sj*R(%iY<58>Qa!*HuJMfAIn;n^ zlWMir*34{d_b)L4gbx6xNJ?Yzopze+bc5)l!_e?#Jv0=AQm~}aO7u*!e|XAP44K`@ zs7Utd53)6`l_Z`@m?=B6w7Yr&y+tjKq>=)dxkNXN80kOoE+_)M<~6@S`InbvKYirR zwgw7*FMB@b!w$BYEG$YdC9OGO9if`8Tzc5QS$|T0jw@>Zpib4_e%`)K+o z@#JqJl;8Hgg>{+|#B)f|i1Dv!4Krb8_PJ^0110_F=b&qV`mZaQhNf|w5SlCPv+J$< zh3|^i+%`Red*x1Q^#gAS)a#(|im9;5DOUbB96pK4xJ@?yf@etJl2h$Jb4!spMRTMHVtCwzx#Rz=+EZHtT&9X zzw7@TFTt&;$*GCSBZvDo1Hbgf=aX*`V({$pvh0R_&DVYNIlk{=N>F)~>9oNrUCrZ{l2DO8-w|8Q|UXarAbS0?R_PE5%u-4Cd86dd2&D1XDcVyg3L_|0Guqa#d1$nMcAn5RY_JxuOuS`9{a; zyJQ);FKBdgpfx~KxY^5IzrFI-*cf!~HGRRff79v;hmLdK#z@a?dQuy_hbNQ<2Lc62r*Ibi96 zLKOX<>{|2+#9epk94L$+aUHp{t$|Y~ReN!<1``An>13@Lf<{mpj>xOFR@kJ|Z_)hO z)b8B)V;^+JJA}ifMrs`Sqxd{!r*r4m(Ie`NaSj9_i1nEv&~Sh?h$aR-M14#!0JDRe zcwr;>J8FCABpJDLu7QG2y#_El-#gbK8E$+0uG>mwu91Cz_18S@oZomcB#d>>8ncHJ zDmwesR)_S!!7?X4)(Zw75faK)^9sTKi9I`QjeDmJ#fzTL*1GmTWq(ZB=;Aop4UiXE zX?kqk>#2oWPE0VM;20Pkmb|xPba&Cxnpp#gzt&3H9lN<#nG60ifwjoC;seZ>+sunF zpb9~VhpTd^Cn5`f5Kl$;x5d9*w{`j9GX~D%s&J)&RuXTHB3zt|AbFePQrKo z!GFV(p3tZ9VxD`*%rC-dueY6_{R&p=?AQE39lzH0DPyO4oRCP^L+QfrmaAjV+4_GH zMW^og@jJPF&;up?KjAgb*!;<9zzFgand`cgF^h}t5S+Bf9H-|pCW6f%(#7@J0c`^L z%}FXbv0%$~)v(4!_~6=r=y>m)&5cGQ{=HrA2?;fHA?m%bzBF~P-a>3GE@-x?U+MrQ zgh1%o$laSYP&Zmn;cWjB)$!$TnLPYj{FkHSCR%Cx(=@U=`F{P$d5tck8n~=#fYD%u zNo(v`o33E)gQx{`z`^$j$I9#i2G4;ldIzI*5D`G3orbH{pgB*L)zGwP&qTa^;m*QVVZ+^Xqx~E#La>?JJlV zTmR`jSsy=roMCbsCZD|JpmK};)r9$~)0cm+Y#Xc6J(xdq71!+YZFmA97_1UPi`UlJ zje-7wXmq_Q;Qbj|9U{D5GYIyNF3_xbG9uux@wRAW&rpA zp#br+NE*c@(B}M$iWz;tiowb)ni7L`IQWfs+uCX@jA;F7 ztv?t)c5>q1j~i%{;OUELiqscUX#_2pbLFHwQU&`TJ$i+*G8oc&7`cVYna|E{8$}@8 zymMOZ(4wRrEmUIofcJxyK}dDI)wn+4(d^1e#mmdGudMOy9Jt0YRPl(~3UK8;05*b) zLMP+C2y{vc|1_A+)IupUu9ZoP+XD0Qp!Jt{RbK745vF-U*E+0c78Sx*PnW!8pNj!+h!Kb6Z-HUjNKd^?@Z@f=Zr;k0>Nk?A~)3#S~Dsk^|kO2<_7AufwK0=NMN6hPvbgbET46?8Hdby&wO%QTGHxf;inxwIb#jX zNLHYq90UM94m#(nq(0e6E7aIOxm|h1)p(+nG;R6KwqgA8igb`_cjt-Y+8>RvPu#=! zM3bbBHS(Wt4KTuM=Ing4yDz7I#1~zUL&F8Z^~|)W?M3ULssJ(u4g{0o8D^QLJg5Rs zYQJu`iyWWvX-bIgyE(8)EdQf_9CIQ~d+u;sLNWnh z-`-?7`aQ=QNXs5Sp>?36M*YdC))Nm}O!!lt`Y-XAYfr#^;2N#}!Ga<%9}EQbKmG|% z2u0xm!CDPQ^NkAGsRu{X7~xy7M)>aV^TVp_|T+D8ZL5iwlRGtNI4TyHo|M$0lOUQ@= zpc2mLjvYHjoY*9Z&Cc}N8RU$#i%$)u&S|%;b!3r6rAiuEIHUNL)it_DkV`nQg?U*J zQtNbg5|aG{tDG{{8JnA(qdROxqZz$kWhBRG1nqp2GHiI?c=|v_CVL*4dDdV!$HpG} zn6GfU(dFE0V0==$ugA7q`EM$lX4d%K8dE(7Mb3Cv$9)U?@23e9?U#l+PaQkFqpxZeH$a|d zd}Y-wdPG@AVeJi4to>P{rDl>vYzv|a>Q4(6ZXhhSGY#I4NH#g7%(Z@$G9vGGWTrIS ziuQZ#lA-eSjn*MFA(cUG&Y|b`tur9U($h2}AlD@wLY@Sc=}Tg)E}_a#U=U)0!k~a5 zk=x`c&**xvH2|zohHV?EUjfvo;AH7<=E%wmY2DJmdzL`>gf3JvQnvxxTRhlCFU>vB z$Mk+_f2un-8K{???saXZBhRP?hOU8IZ@u}C-u14bqhGucMH@BL>P__LTUtSEM(pOs zCS$qG4_4IRMP7H-+AlgnBID5m@%lrVTd@A9l?fF}+&^mr-gPEw!hAL3%r(HZ4GrRe z#973lyQO<$Ot2@6f_EOUP0t5__!DQRm3G_b+(%1fX-T>w9q%iSUh}WL<&A`V|lftG2J#77GPavW>|mj))tTh=#d>(1f1 zIhuB6N_=6?c@7^yRufaQGD~ET6unDQeyt>_eY4vjdHQS#&;3{jLhp+?$dkv_S4-FH zaZh+M*ZUSGrN9@JyY8ARDNk&Nt$HtgidV~yBfs9r=)0&&f2P8`>?Qw>D6vpm$4&38 zLq7J=kMQ?}U-YQQJ?;s$U?*{c`ojU_8c9R2e?p?8*m47Ni&vaFsq?%BrRvevd%&^# z@iZ%NISF86T_Yl{=9_cIMtF`1>j;%drnEusj3NTfH;C9mLw)VLgc}GoPO0k0=>vnM z6`d6l^G{^B_A_AZjL<=O+$6ld3f4P90*RIxisF)E^tp`?H9y27iBWe9oXLEU_*O>T zEYa%RNB(=N1~f<0M8fZ30Llc=Hn|@4cK{_wuTl4DeCbNuwJD_r3WU&qnwV?`zbVP< zOa|kOLPj-k{x$ITH+_V^hdt~I(f(|6JACA5OD^^e~3yGDV- z)WFTReuii*f!i}lEx+C~!bKaHT|ss6f-m|crAMSSwXFT@8OSZy>;Tx*XzX(-`S1PC z+XyuWP|YX1K ze(fmY8ERm0er{=CH_#c3UTDJoDFA?GlPb<~31Sbd-!NWFA{F>%!wf;^0A8gjku-`XS@kgV$u8 z0WW;lu}%^Aj%eB0oAFIPlb+njEfTka?oEc`&$q=tSxLvTE48~R-G);1u!OXl!SonpTz44m*0Cvc&ri`0@iK)VFg;$E9^zHkZrF8VCl zE$dB}eE>y9iGe3<0WD(JDaAnFtHaW=_cVrU3=Rq?2^wM@0z?z}DE%6F6eksv{KFsl zFxL?WkeWQVYmHLbnGZ{ylVKt4}NLmjUq#zOpgTGI*- zU7r_LLLw+})WBs%jP4rph&Q}A!$i}7*JvHR@6s`$jNrYLFwZTH*-s0|96(<_``n1Q zOUP4zy<>^Sw_AIR;u1@$pB(oAtAd`7HI^h~YS@-G2WkEU8Sec~B97bv*T6n?nn}65 zOMt+w$vyGg_BwM>=)dYD6^IA(@AJwwx4!6Y=*V*cYCuSCd@2K>0iX@B1Z+nF;ClYXb1L0(J%o)DaI^ zvnPX`WDgP~P`s7*6OcB1Ku-ReoJG?dYomH|=E>RuC4snY+Yvf`xAqXc{+E89>x+Nj z6?!n>j^8P(7sJ@nVR>gD_3nVXy|;FEX#f52wp@nEZFpNogSln@XLn0{+k&M4c0h^0 z|IzDjR&fgapcNKvvE-D_2ga`F3LHRo1EAye2pi`i=qDC_osidtI~qsYi=fT{6U;v zzPFN|*I7xIQM9On<<;Y)jmR`TJiJAA9cL3w>JWa5bkX)<2aNLc?3-Qgu@2OCCWqgW zI7O9mN8_mF10egGk1wOJie#?ejEJJ7>1&eNy! z{iy;)8E_OLd_eUClMh-OF>e5ept0;aOn`WXD4A4AG#|(aH7S*!=CeKsT1OrE54r~S ztZKCqEdeQRUMH-8rL_IfZ18`Z$52H>cT`^z;% z_<*WKK#XyYwI2q5bVci&gCH{RWe=MU1K!@rDN$GoMR^~kZ<6ecA<5l_p>T$lIPEYS z^iiASX7vyf2$RO%1(tt^S7zo7!@-W0+8f1L%~I>OYlsI|I9cozHS*|KJ$%FKeu zp+iLRE`fsj*~g2EL6pcYi*bm^AG}(yZmUp}<_HTflBd=aJ!WApqjqY zvH8^=Pznfbx8T>BBuP??K(f~>(Oa0A7xm2&(08!~D$&SYpc?#PW8H-yrnRljWh6gyb8|?E*SGbCpuFJI$cQCV>+Z0#G)da>#1kwtsb1+IrEfUFnv9AT?4R5) zm)M>^PS;nrHR>0a*tmuZ5ucY9Oxj!vf3S}nw#j4kd*&JlCY`hu*dvRwQ4<#=*hqvm zUuUCJ^ZerdeZljdLE*x|)LcvK8igl_Mt{Cx(<>i?-&3RYJgs?x^who(gQlda@qXeY zJgTB^dCQy0Fi1Q){xu#7ce|!jQpT{r%(WOyH-;)_30MoLNJ=C?$3_EmwVd<|Vcg~F za@LP>26FZRWC+$RzG*I8Qk3M#K$TE_z=^73>fH-AQCIdI(^)te$msKu)2D9-@~ci|-9U8H`stBlMwTtxGGk*u`4d0J^@m>hBV4n&X;&tf z)$Q73{Eoobi-1*c%_`mSSCw=l%omG*zo);?orVSUvrZF))BU)7VtFh(5i380I`HWOHDT04C368*QV zg=B|B_5;TVOa1M!(XRXh&pCI%(+pB3{bR!dL)UWr9_Oyed_(nG6Mca^u@C%elP_^Z z+_ezUrBX2h%IwFP^LRovU2xtW>O zYER$2U7XA5{U&9I?n7zM>dQm=t&takc))aV5)jVxwZ5?d@y)!X@^z8*Pa{H-&QDi7 z0n{B9hWQ}hux-QfSh|qZNWh&>yBN^ z_37XGua)dFbHM@+{H)LByHDJuoe;q(InpSs8Cv=9lN)!RVCIgAlUVx+q7U}3t1VhU zJ$$8Bvoy2XD?lH>+H29!5UG0vhM+v!`{%~=-VD^-;ZzaIszQ(!rcSK)4@v|GLu7RY& zYAs1Za|ZKI2t=^X7JqUMhmkWj*4B;dP5!X7Oq}d{zw?yB56_vqHDeN)M^->fw&79y z5-$yKhBhtLmAxzwHnenqaGbS=jJ~xkjp^<6UMna6j9IpHacd61R6Vf0lzdY7Kcbc68cm=fi05)%`>yDfw{qN z3t=qek>q4GF#Qas8a`war5;Xj#r%s%z7Bs!%q2}8<{T(BFP0St4)hX?i#$r17tM`= z`#kM>mfJRu$!x)g7Tq3GcJ>8qU}@63<8tb6tWJ^c@S2THY5sJ41^^h6@X0CZ zE!YYZzjD#{kAK=bfhTtQ8mZQ2mdpD0xo!9EP zrgf4>O>t@j{pwe}oCwc-!HtP_(O!daoAc{b%xJz(`&_fyzUd&ZGl>1`&#e1%Rsw2d znz|a~F!IJ?ceCuhFtxPg1B(U_?G2BJ!`8(@urlN0)&;&gT{h*`YiT)5FFbm!Qo(Kp zO(3F@dw{l-Eqs6c*`EvtNTPP&w;wytc^<%YX9%IM&A%|mFcI)bRFo-)@$8vEZy$8% z{PDN5%^zc4afnQU#B>faD~+%R0}`?N%cJBdk6v=X)0$qb^9J-ga<;FaDS5CHTWu^fk!^_`rLfwQ*{#L(x<@|pi}?$k!jo{W zN&cuW`BM9P;m58$mN-OcU(u%8!vpq<7v^}q}8nox5HZYcX+S@%n zS^ys#yTiM1_l(d64wKt3rTXxP{+c{*y6Gma+4s1-=Duyq`^YFYpBsti6tKwOQ;hI- zYipG>-`GD-Bk_;sL{Ryb`MhWZvF<{&a16ofS&oyqC8oTG~fB3Qu)0zjB+h=amnHkG#!hnkl!lYLm(W<~h zKIdUvKlO?K!L@e(@Uf3_d*a0D)&TC^`Vac9xt5f_*4ugb7d+y>|Mw3*@rh4;@Pj`4 z9qVgYIFGFV3m^HYhkxE9W~OHT=EHw|_5F^0@Gn0=+GjlThBv(aKYsor9{H&2AN}Sx zzMharf7zFQ@PqGt)T6Gy>F@rIz?(k$v8AOu2|sq-1ONHfTb}u>=f3$(ujBSRzU$c- zl#aelIFhU%Oq$8f9-8RXP3ll}l;%VgPcE+>KD6MGIhJ)zMjyjdaw43soUw;@9f?0< zS&OXJsmq2kNt1|H+EGcGb-1jHTz%Cw3h^pJj8|t}Hdcuoy{rYsFFI?QZ$s@C&Br#6IMQd(Pm*i}oO)f6X&CkzT1hhluP)k{s@VPR) z&}+)fPweRxai5unIbunh-q}i69ZCTT{SgNtg>$-7haAkJxtr`ct{G~4; zgP(rQFL1^7y>hEu*3hefJ-peku*ZWcXu>sgP`M@J!Q5nNb!_aXe)7k;e)fYtn`_Fp zwaLV~-AvqcuMT^ssX_Jt(}-DjNuH_6NZ}JwFiWM?lkl{7aLsmC`Z;}P%v#Ra$WPPy zYMj)6&X&-t`_}+c+O%?>2K9#{$$C%ntiS!@ssGeWeI2H3^|#b%YkwrU=bu}!e{!bv zk<}*8m%i*r3HSh5!*Bi9-|^QUcrVkyv!C-lL<9BH$2c17Z$I)k|MnTr ze&ZWo$3j^`5P0B!>sx>AScfZHFaq55Slw^(fr$IeGf^9Tx!q5BYa8vJhW0} z@gOXH8^HxN>)lbDA`p-b_7%d%1*V!u&;H@iyv;RP0qSNu6+zu@?2M)rnl~zk)Ii{F zSp&%4`|L|FB-V=>jv-@N6h!o$j2ohFYF$vXvANWNh!dpm9QrOq)gMS(v_8@s3WOH| zl~mmJQ}8x}R8xDqw`cFPuC^*c^@W7i8A}q)X6F6~Rmw}st0Q{yL0W*)AM&xNT3sF$ za7nf10e%eB{{VBln6rAn z+ciTF5pq``-EP9yL_DY8$q#?%|8MWiqa?fP``)#6RWGwh8d;LTSj7Bchza1xhQyeI z*~}LE*qmU+2Ld)0U?U8K9ZU#}2*QXRf^12wvf~^FI|)0&tl}V!Sfqn<5`sAh7@-+y zW;8RsS66lC^ZkAAdv&X;tJRw69*t(|YIOV7eRqHF{`UL3Hv_CKiUEexl~e&b6QFS! z7jYjL{|f29cmRG7FNbAutGSbsmVepr9g=sR3NPpZ6e!q5leFw!dihEP|B+<7yeW4- z4c$31EU`s(sUDK-m;|BIjdQIjt*4#vqQ{*Eq-|m1Hd$Xf^%tD&n!(fu zBrMK*@H+cm-?@36z(|yPoVws=845ctab?ET666Gn&AR=Am4(IMdQsKCnymM|)_Dzuih(3hkJN&{dz zx%?%#D2Pr!n69Kje1w+nD1$bQ5>(*C!kTtyoZu!&FrDH%CR6$3omhvbXlf}s>Zy}B6 zN%HiKt8CEP;G_D?%$>Riyf(p3t#Qj1-a5mohk4R7XM@RahyNe`Qr|W?xjp{EqVf|n zQ|VcfRO(X22;(vSZigcV)_VJ1Sq~*4iTGiPGJl#lgLDIDkCp^uvy4e+U~FS6qu@*2 zGG$ofi3!<3FD(oA81KQIKor9zPv)X>krm0OW+PD7R*Go_K+70dHvSvlOt_VSM(Cr*mOnuCI?RIwX@zLe*EFizH4vd^)6HgL$&(gH%~ z<$$Y=Ni_A9g?U-mnBraz+MIi%Kz-dA<(uwsljaF*QI1!7GEGYsIso--DX?u$@~6I; zGs&srM4S6Ebt$S7^s^ki0^C-uCQG4s0mRMLBs^e)=4w^@?y%-`B22{o`r40BCT=ww z`*+WH7U>dgklya__aFOPy14bW{lv+7H}JE4WZI-5txs^V*mm$?#mVZv&w@J@gah=g zC?CiV^cSHKo;dO2q=^K*@B7`XK^d#b*5YVbg1Z+LBg8r3=D0X2YYr?P^&9kCI2if~ za}`l1QTnFt%?CK&mJ<2fbbg8pB+bvM@S$kx^|Zp)eG}f^AHMx{|82Lf>E?Y`ewdt> zzDRmeQ?hFcoKioZ^5oxPJfFYrQ{`v}>EE38_ux$n=X`+acRw{TXv*C=<_Yq;DW|Hk zTx(89ZH8pRW9TgDfqRifrOLQ%m0wz(*PjUTl?xIG1P~+|ZqWcm>HhPy2jld6!w#CM z#hqfhB}Gznn0bm@UBQzi<#*E?#@OBS+_2aFdadaR9wgguLO6hmGG`M6qa^JKv#r)- z_tQ5JfR2J@Q9dXWeI>W}N5QhN+8&+TXTqSOWay?tX}$ME0o27?Jd7=Ejx{V#^A0Rx zmca+6k41+q%KoVv&Y8-LQDU?LqZK&WE5I(*o{Zh7zOx;=@lZ-Q#iq`-`o@*+`e~h; zyhK0-CFtVD6{r+}*q|mxIB#p8ppNZ@e@FP2clljAc7V!UYc8b8Sj+NgZg!>w`dFru zHYLcp14vScS85$Od^>9}FANFO(X;cl+}ToQj+xS$Zvjh|{_Z&FVxI@@qb`FRuw77Y zvn-FMK>WDvAl7}AdBtkt#I!a!F$wbH#Gn|03d})$aaqXVz3+J!vGMtNdvvF+`}*k} z2T4ESF^?hsjmJK|%qOvKF!jn=Xr5mG)h`o&?FMNb%-P&0yq5ab&_v^hJkh>UO`*pa z#MGb=YPA}cx$)|f4M5;*d2k{jL05qON~P6o=q-e{0HGdI!?aeB(+q8aPu}|Eq3`MS z7~0{NX)>hz-2cXCEhpuTleTSx?=ZsK2|0VFcM|9C!otZ;cx*MjpCr-IJB1ZOyI`7w z!!cy!((1+d_Bbs<{@dU2cH-B*`nANPu=y3h&}H4i`I{On@ZoFzlFU;_ANKg)d@|$t z(ic8k4%M{$QdctfVZrBPO|$!ak|gK)N>$4zga8a>j!zU1@(ocb(fEGq9=-ckf)_W8 zwwHfv+LCZS``Tyc7ZE(*22Q|8Mk z9}4gs6CCic24dfcU=GP%iF`s>QjuZ7$f-xT4=WcqO{|2G8yJq^=>&lS3=a8%LA}6c z*3WoS<_5q@zp}zvMVc&2-`xZxe;PyfGN6&&4w?#HY8bvMqvsa;?sl`)<@rRQ=Cf9{ zGVxy05^06A0D?>E8lI;o*?9bUmrDvB_!qAJ6Ifsi|oowdL|TX7`!lm7vPUTWYzm zVNhQlCnKb;)6km$K zhHX8BweyZmvw!188HC;Z-G3zZ`f#$Ew5>0ENAa#*qL*7iBOIR73g9@2*j&Z^;{@+d z_U$Wky12xwR$DEPpOVP@dN=@@0tp?yHTb7B=L3;yx2h4sS5-7Sev`Qv)>%FW(CO&D z2hL9O)WM_04=g{EMTEVRt?(CL001BWNklCa^~}!vn+oPDn6I*CnV9=Wb@z$Ac<-!3%XV_G=-V9&Di* zcgL8Pj1i|It)Rpg7kfJHrQiUTLL%G@GVlA}`yQodXO9v8!iD!EPG0T;R2hREKBUvF z4)$W7D`ThQ{$bOhoxuD>S%E*(i3_vhMF_xmd$xg5!i>i!W9R1Qfu=h#L<%c)7S(td z+ZA$l?3jXp4Z<3T+TkCx65=)_LU0W`ci^hKiytATkAG9hf3WDWS$WTeJ#IasPyA1*WVQ9`#zE-QVqQ>x0CA5$52$(-8=k>>w)AFXoZPjB+KlilS zie8TThNGPKjC8Xht^&4;*#1x4qfhx-hv6P;VWeFj?`e9>d9Z}kHFck?p~FrowG%Dx z-Ze#;nWJ|SUw!pe#83ad-yPk zYpO1LOYBQ|1%z4$j++UHkwr$K0$MYZXq{#i7&?*u_JuVy`ksw`j8-e=cvJdg&qkz8iZTYF+vnRY% z2WMbDv>9h~IVQ%_-MeL7lS0t5d-n7uIXfr+KlV0boMzdU@v3QmW7^PL$Y&8iv)RB} zcID0^M+Ei4UI@GRqK`zejw5KtD-oujm8#FhaY~pnGqZDm{plUkSlTQu=?yV=um{jz zaxG3spuK=L=bE#SR<~n>xY?wx1#YIMCtE@3&o0pdP@kg`lX1^2cXI>Ut@+Sti7NLc zELWD7?QIE-1>Cv-c(U#fpWD?cY)Ttvj!b8DY;v**h=+$@c8PWt8X9ZXvH1}%qU$Cq zm8IpCR#UIoGI|n(y!=?u@1{PMLuWv9E=FvdpQ9mrZG}cBQRu;`Of^NNn!5KrKZk-3 z+ZA-Tzm{&u7~LbDSJZpdHUCiw&T_$AV^Br~?NbgRQAV?~s>^hU_wV0N%nKs+cS~Xv z)?I;JyLXX)G`P}Ec>7tm7@0n0G97kYIpurFA70GUx4rYqVHHnuzHMDzj@0RS!WPYRH zDe{k4erKw6y&I~!$0(>8Dd@dLkiBNyG+mYe`WL0rU*5E{R3q9`(?UD~c|40-*Noj%9<9J=1x~dUKoP*k)giAT!7w3z$hKyWv;FhT z6G?A70x$^6hu8|bFZs%dnb@wzIf3ykNich76D`1Yy#i`oSy-9___pfU9m$*&po|0W?)bQEFp_LNdw;dyP6CP} zNN)hz;SaEz$88Ve?#y$VS7YLT-H#@0BN~C>ur`yElY9+wB`9j8ZLuR5q!yM=FetDT zP)QVaEsy!FZ+#o(zx6HIFL@n2Ha~?aCEsDOEvjT9X#dHuZkn8&CTDs|v1u90*@fha z;1$01qaPx}T$;~jn-4(kPQJAT_261emq`Ryl=nn>*3gAcrJ$ZPs<&Nn1@WK0=tab% zFl+@5#hr9MRbzd?u##`S;(a`N!|PsA7T^;j-Ch!1{Gv;rL;SAyUQ<53rxJw@Kw}%E z^z%_!LtrnbiQW$lVs1I(@|K=E?KZs!41aRk-%s;if@Dv;g875o&y`QS+jE-j{eJkP zA5-1?;^>_0`SA!}^_)<8W#p+KM3Y!e|@Z%UXCgymic?lOtHd!j3m=L&iaLKafn z>QgDZ(0Is=VF`=)r(fH^5JbZlK_8{sO=AV-tC`hRgg!JP&>6p7JgX;0pj?O4GpH(4 zb&yG*6!?Io2V8VJ`a4>I(F)uPRzNhI;EZ=NIB%?+@Rfm9MU4k7ITv(s-*TZ(F*p=R6@9&gl|Rz_ zxOHGrI3rl*#RAYK#`)zf+>$MLUew zf*NYbpDVsj>8n!3f*4X;FPHX7L$f3L)JIg%{ttM-1LD{E(Pper>>tTvaGbZ5E3ZuN zB-v=_fzqs9A<_Q&k=hB(gv+Fy;PAYLw)-;Ia?ShSO|9qrv255zVb}`T!|ui$fa|{S zC9fj!-gm!+xIPy4UBPks>02+~OX7JixF@+T)8qD9>QSvjmB#~U|MT{ochRr@+JQR` za0M87Y~(+R`(8fu!K+NIyDm4v-*nTr&0Cyz?#~`Lu%Dg%(1$(@&J&-{+$2n0oyv_s zNhjQb(|K$ehNb_DfS4kf_V+K#^sQZR4kz|WSPBA+A>EDh^ME4Y4CjG?6;Sa8U?m*0 zHeyf@VO^chwkqiC5#Dbiy*BDW;k8fh4Zm3w2Mx9d7<)r!y|RA>fW4=r$}C>nng&27 z{6qfZMRzp-dHNC}mpY=XixR>ifvDXUKLq)Ur|ynSI^t_u)1R6WJ+C)HEdXDsDkul( ziXKT32hNKhvsOCCv+3)LTZ>nhvt$z`)(S0;M4T?{mQgT=@RY?|hR-Q110A$9WpALILz%7hn7g*aDja z;pvz;y5z%u<>BAGS$2#BRm^ld--U5!-k6D(6Q875S{Mb z;V-|`#_=4N&^kKS5lO1U1BDdW{SNX03BL86nsWb&^E1QuZVsR~ry!_(NDY!4R4L~_ z#WL|QFS%|S0$erXWvnT%US5BZD53Wh5*t4g?GHg-Sn2dv$bXgeeZj*dj$z#~r%Z}S zWJTjqJ7&C=rHC^0FCGLwhJWxBdB>yl8MOl0w|Pd*Ta&%z$3G;-P-EE4VGHuhfj1~Q ztcC5!XSeIzXyIX*-K!i9kA*k>E$MOSifl>iH1dO6eoXxH_mvHgX?9CCO#8c+bcasR z?{~(TVbj;U!;0DbLBj2!zz!h?((N7rVBTWKPI=t{@)E=otgK=o8$U#ES}NC^oP@fT z%@6o?c?l%Zt#Zn=+6rtrF(E;DJMJ*hL13u$Fw)`%W8kT=ceo3!$Sz)HKLWt^ml>cK z6s=mKvLWi@JsGR}ojHw}4lfeIoVe4Gq}5O5D`|Dr^L5U6cxDY{zC8q6ek`kx&fHm9dum-3V~XUTSli^5;dNL;CE`2+}EA$tTRd~StUmy z^KhjdG?${i zv)|x5tAcwa@eAn(yRdKHPsdx+T)+i^?2^9cE1zTDqxFcn{N0{JT|Q~By5jh~>kT~$ z`Gh+6_iT$e*RpKDy8s`+5RhzP0tsR+4S>q5HEQLR2A-qII!sdB2(ibODn~BVD1YV))nSkwHPvZJ4;`wH|v(9?aU zF+ZU5Lx1@Zk9)$C@4WL6ww{RcpL@w4|I&jW_UTXjeQx^cwYcsxAHVqGr;{#AKIFj< zg)_(z$w^+doPL6lXM=O$iX6cYZ1dwDSbbw(B5wE4;X@=~Meeej!Pb)eE2Qd{3tPHv zzb^Ix>1ORY#~6|ef646A2gIB$HA@&Z{M6gSXtE56Go|)jQwym*)HEO-DKl|91{Y&o>|2>-YXSjlAhUy*itMck`ldF6Y&Vs61#z`JGJ3%N({)@o?8+{oh| z|3ni1{crypv3)9A_JBuTa_Yf^nRoYH+z_bbdtaFMt=FVkbdXgC{{_V-YLA1f*q2xE zQKs*9a2;~53KnSB!oDc?uI82x-+7S4wu^w=**zGuWCRaDD_9Pt$c&6c8k47`PJi?y zB<<;`tLnK^!($+CNu&=iHSnZwNcmGb>>pt~^e{x*Gfp_XY*-}quV}DL`B9p#R#(#c$)z;@3U*S8yb*0F&s#`rkOwvqd91NeIBSTRvvnw?MFxX}a4! z-(AKO{cPM%Fc!GZv~zlz;oG@Xqn9jvulVY~An3#~aqRw(^O+%~6TEHW>U62HY@>D9@BqX-Ld^ibYUOGt_<}~D! z$&@ge=|g2a*tW17GDkO`OF2_ca6G1iyv|&Zp-1KvgZs&!ru-OvIw2hV=u}HupQUtr zn!cqgu6Qf)-Zx%Gycutr6gw@0c?fgci}7vv28+8p**9MPcB;JQ)9%dHjp1syTyJ`PKDKE@17t6wI>*DmRJhnpxOM=!2Ie4=n8JYC~p1v)D>|4}1 z`BO{KBw;TCHvl87Z!cpQka}##?LQbxBD(=UP|)RV5roAKC6m4(<3FaRr-0NPK%hL{ zcp~nhV4W5w1pc3##5<5p71E6emiH~mz9_xW`j~iyMRfhus><`;11Z(&G4fbR3^^!1 zA6&)ql5CA+^vbspx(BbAcne{SAQK|Sq9; z7^ybmRtd{Vb03PHi+Mp)Pqu@yeRL<;Xz9jOltn~IPY~xVUj7Q%id=Z%g~Y%0+rLeG z=7h^H`;Sa^d}0@IYeM%ZI2@bR4cNu6&HnXUJO8}%sc`V%9qU%Jz0k{E`8u9naDnXo zwmX%SzklC;q|uJ&`7E^`3H+}a{mYYV35K~T<4w-3YQ@t52rxM zj{{MucY`5QzyTx5dfS`0+aF&xoW8obc~e%Vmt>8!NRiQ3vsXl(5^SdFJa3JBhrntH zvhoffEcD}`~a6a+CUyQ>3XuHv~ecB z3X~HTFQyZXMNI?F;k6(98CLTZs&Q0<3svx(W7Foa$x(Ig{FH?qj~rS zW)yd;`7Cj=^9geUv=lU8TYlm9a_*6in`f}BkcYo^c;EDR0P(bJs@5wI#gkqESEpdC zC5Z#M&|Wl%Evz)k@Y6|cpJdK;CvYnGV2~{)x|v(fYH?Zz(VbkOmaz ztJ7J^;CrmgFt30kR*LzSD|-e0?CHT(kPC38N*`6kWs z{G5}p?PB6z;{=AkPkaqfePK>=j>V7}>^bLW%N)1tUEIn%1z38)Q?LN-)K;sU6)34g zQ~JK`z%Asl^V`9B=lRQF4{1q&=aN6Y7o>rDg~uDoz_m8Ts7c6RmJ+ZDiK;K2t@+E5 zij2xmg`*6O82Zpkz~Np^Eq&1$YiBf5Wb}%aDXJTkmpOxppy(0qS!m-X3tT@~y2vpP zK>LIuFa9cnK82swKI$ts`f6J;3>=VToVL8Uh>qKM()6;u+$4>8_=B{)hb6_Sq}1byX1DC@*y1tZAL|1$ zoCq8{5odRk{5(9hwd1xOpGdGerH$WBdAgSj4p_;MtYdI5>LZ0jUoXLbgik)QA-l0K zYPMv9?~o8lNZU>4CJw-SLr|vaCIHi?k<*DW;H!rZBDEN}v$88UabzkP8%ybp4(F}B4stJ z7dc*S8*2IdhezTYp)Kq82>|D(w-cHV^K+*0ji-HnGI?qW4x`iUSzh^#y!&16qNz(S zeIfBl(t>#C+Z_MZhd)RU{!Ws{D5TPzRnfET3gV-)l0HxQ^CES;!CqJAf`)zPTQ6I; z8FQR3d&%>8`nosBt0*7ox+PCM^D&Qm0*#mh7)I&mz2s$_&NT$NZooXjpuLbOeZ!Dk zE0D|FmqS}=iG_Q&?M*ZMo^`_4ZzI;^;6a_QI_E5DMpOChOaS~pn+3nZ+A`3%t1EEu zKvDdO@kv{1;_>8jOg)B;R(>*htXqPsqzQ1zlf?lDY6)beu?B&j(#0PL)*@LF*=5Gi z1R$Gx55q=QNn6HZV{EMKhip zu;jz00%~qc_w%-M0Lk`4k{O^UJ_$Ndd}uT1)U{g$LgPvo5shRN{mXn3NWzVjcNQi&Fh)E%{hGa1gb#cVFxVB8grE~ zQ_JTSILC2*=K<5lgG{GB$O%By{~^|+2bP~`6$wlecY4EoUKaChW9XT zGZyd1q40JmeH8;86q_M(fp6dZUy1}XSfb7N%@)TPg06i`Dn1-OBhgGDcwDSSiiZZD?4Ud4X zg1L@M@I@L>ro>$aF$QU`3gZg_s17`cWkGI$2g6!Y-y^Dj*y@b(Pu~>)`ZKxNa5X|CV%zy>4!=N1yQZdf7I$W576_KG zTqZ-5e;a&xw%a`Q-LsP+@vk+;0mRtJ0=os4yImxeL2;vj@S7T2TwX4ruPt-axdF@W zL+dadzJu_jA0rZWklGJ$Me=0X*)!m=PZAB*6) z@A+ypC!)=WqDSN8US`4ZK*yEi#0r@All+YY_O^dV?hV$!V)e`?mD~&;jMojiK!_x6 zFX#kK;l3I%)8l)a`DmTqxE-JKNaqh@+pJc!2|;DV)|B|u&M6wx?4FS+Bj@C21rkRX zgK*j>v5Rz%t7yjE3AVh3EuzNmxaIi2yiatrSMOD?dNpZYT(q}-wDC+`XYl(UY-=;^ zjpySvBU^p^LK&RgT>24UFP+|FftUo8R) z+wRKPV%MJ$000s@Nkl3q=~BpmAu-?;E>ufpJA@T zZJR$RcAro4ib^|YkIrQHerDS`9*n!1{cQuTcxqVD4Gvh4Llm;EgJt(C-N2`reWUS_ zu2k`37B?PxopVh<(ic)kb+yaPb9+>I$tZHteF4cLko9CXF*pw*izV&=4-wA|>y zXa!EU6#%3HU}lfamJ>_VU-_Huvk65=PU*Yquy)9AW~c44ezqVP`#s7%p&8UiIY}L)JJU%d0@OGD&Dd zk%yH!pxOQ`ZNr023qTk<9{_sz=wDgFr9aRY?YQnq5Dmim@XrvxeRM_uy&|Y>wQgr= zfwG-tVRf|pK*=Ta$XZu0dY$vPq@A+RQZ>ICDD_R<1`k8c_C z$qC&)rqL?cXNajk5E(gWDFFNU{#2SX#ww%LHl1sKBj@fpx6C22ZZKW8&f6R)JbK36*W4UHJw6q;qtohl^Jl) zU-|;=fAve(ML&viOZhUBgwH3xdGBk>%t!vZR{IH0c`C7WY2_mln_2(&UHK78{>dfJ zgbbgUnkJpo=6j?*2;KaPfyElm3cDn$^;)m zhnM(<*b%#SsHB68xdchj1rk;Pjxheb)%~~cFN*Y?Lq2%u4)V2U_~L^GwY4NV&dBRU zXP>o)AHm)9GEZtMNLBa97j38p+>`&K-Z)BVS7aHoYgJ+!1NTL?Q(Yz1NGFbE8E^!| z=2WdJ8v&32f$F!K5a_o+iJ!IZ3PPUJMv%4`Ocad5WhyL-LZ}abb8b>d@PoIMh97@; z?$g_J#DIbLFgG!$Vjk4-)U){pBhU9uIm*Y zrA8}onyvscST@YU+-y#>V|h|e*PyoixyeM{T3!Wy!uTf7+}bpjFTjlecY>1wBwM$a zw;cgsK7v2U=_UAwC*cP`^PaSgyPC~+XY@o;I^ z0c_p1b0;VO&`Nnoc;IiRJIfN)CHTQ2TKT99DAQ`mZx2#?av=AWzr0ki3d*4__a=fj zRRGJ}**SeHL1CGmGPdt@G#3G#4Px@EeS%3Cn{TU4x*$e>0LNikAiUdGT*mKgc5aR_ zW691)!qaD>^r=WlUNgf}rgK6(HC7ENd<@=af}Xy7M! z3xw&6pRed}oYKsxA@{N!G5b)>7PywA*U+AP#E}tVZEc-mOaI7C-eJuLq|?G~C(65F z*RoeA({!nYDCt*NlbcsUeB^E+V)Ig_H0^uU{EAN(|KtDuKh(MD=I;`pvs+%*f9b*h zg7|Sycp|YiPb9V^_+5PQA4D~O?dvxX``h+?d47*R?OYp^y^1MHcb#a)&}!Htjq^Qs zKeay@_fi`(58zT;ADd@-8)wlc*H(o zYi$!kUn$bUcFqtZ|K|O*I6tS~^Y;CX<-9^(eob0Gqc4x#?HrvEOmM$`kJE7?DsMS) zx*@ml?noSi`P3jlJE*p#KxJFk1atVJIk(hJcbVj4cG~popse3dy`K5gZASpnvG?KN zX!~<0B?TtSj*3;RdLN==>n5-va~%M8z&e3i)^53-pf=JVAgrvWSStQg6XF0sAEt#- zftI3isbMpyYOF)QtS=!B7Ie|1_K$KMIyxVx1@A@xQ8CRO?4^Dacc7^i$^PcEUz90v zTb8XP`Fs)1B+Y2o6!1@JCiKZ@#md!Nx8x}E^k0EWV{CPMalk3EhU^V&!vVE;Z87CO z$N@Nim_8r@?i@IT_&T@$Dbw4h17MfyA7DyCY{4-=h``7?Kj$w`(BFnbMy0I=c*<3%~qDtkJmM&ao98VlcQho*{rm%RAm zi%IYM$&ZL{_{NRI4yMP`iO}$QWopAxU`vNx##Y<58TU?E4V$z|_(uwPAX+Ycze$gh zyisZlrc4VxlggOF_1HvjR(g^U4{Xb0Q=qSY-J59H8U^1OAh~!EOo5sjb)M77ZoMd0 z{{8G{KS|m*ZIzkpCVW#dx0tarASAhvE2rXJrC!&&_J`wl=ln$1_dcjZzjwoUwBC?j z!S{CLwOlu!kjo9;K%{#a(3*JbRr9|w*wFb%7J|At+ zv%ox_We_1BRlF3UB>FP#3mlY#>>>anVb9rDfI|>~z&C_I7lTX@%LErpiJ~G>BLV<4 zh~?B;AOJ>HG~NGKQ{aOQWi^e`V67opLnGqefQnjl#cT5~!EVA3g1xAr@`U22SO-uY z!(ov8r~EXVRD>}wONudBzM--vkCFVqQ+2ydMx08I{)|@ObYB5|?7*1n_`)%{$;-nq z+CR^C+O?JghZt?-?Ud>5(*X!rY0szKZkWK2e1n(6IKITTBY^YIJC~6iIdZ4Q*TEqL zuVw{%9q}=k>kt6GajR{m-XOEF0<8_w6X}kJKOkB|N>di13RvuhAG;$*j*{jn2gf*D zOvB(z;2!Hjo5=2gvn!mr6`W)Z!}ljzP}+^9WF57#;PF}m_=wLOAigB&LO)t-!B83t z=_>w;0J`ETxQZqG&O;#r|LelcUF=(EN`8l`Rp>bQ3EH6rGy#<7TptgS`!h)ZG^4^Q z70l5Ia@Te~j*)ar@)iC{eeM_9kTE1G567jPe4Y?zgTo6fT_;--kr~f(YMS+d3lZ_f zA;oTIKB$RwGJtaOb-DmM)eJu*k+JR31Ap-s>EouGZYH*k3cHcCrJSaA%@ZUV&A30f zB0n`nZ^^#XrqPld+^96>F*hgqxYx=&rMHMV0N1rnBDXL}V~BU*lHhgPF-z%M(R{MT zu`P}1xVeJ@E2iA@+g7i=_M>IK>$)As&8Dn7Y?a~OeImiPG$;9Q;AyW+q5n`zU7z=k zMm0yvIi~t;L2o|5 z)U>~C7qf=1ta6u$XFmH9%3Spq@8M|w#H4tS^hJe*n5+9+a@sV0t=i*Ka{WOomMteu zi}JyB;U;Ez(VkGkeJQ-1`!?9RavwAg=*5`?FnLM*Yg6FF+?S4p>SM z!1Y}WOw@2NzE{2mfmq~U%mbJj=x})%OCQv;LWRKpXo*$?yH%7u&|R6En-9>;LokOr z2Ur8CSwet5nFOt<&<0}wG;`(4D&qiT1K{DdC`lS8&s6jxN|LU3u(C`WlB&x9i-*zt z3cyz*NI_4d@#OIin^w)S2zi=36YY+9IeO0wITdE^8Z8|;LwL@ZN)=b7xMs>sO0%jo z_;|TYuBc5_TBAVLd1`m`XS4#R_X?O>2Kq0|TR<9uzL@hMjo&aXji;r2pI>>}%VnOx zY2vB4*QNZqg$V&C0QwyPbW$ATmn2;4;7eu{8O~E~YnUUSAChtp@ z|EsI;0mc+~^CJ^DjET}x2gzO=vH_VaL9Y|OC+-74R}E@okhF~5EorzV@!YUx~s#v5}{$CSy|>|`W;%KD;7_UC-U#qU`zAx*3q4%7-k~@@~^m?!mHt z%UEqwZ$5zUfdYIUDrS*ztWtsl9#1skGY5%NiITpB!W3K|PvdDt-JAxreG$hHXwS9W zW2Ym{mPeaBp2qvlDL9{%(bvAp7oKNK?e5ww`LffAzX@%D3g2_# z(ZBInI(KYs-19Ga205nv%?)^Twi0wYadrN&iTHjO{xeFkh5%5n0LlPzOu2Kcc1;^~ z>&CNugv(`_oEvba6)D{SFq8~Rk}W)L-o^PYX}i8bo^{7g@q*L--r~LZRR3HE?33=t zhgBu3koR9e$O?8`G7J$FYpTxQiC51(4#vI@z&oYyX?*zGjsW_)+@2qQbjfq`hHV^~ z=Nvhzitafvvm-fU(?B zz$mmi%0wd^U;x}xm{@NJL=tqkX>oZPDcnATr~;W|&eatH-~@6o{C;(m5+bo<9FHCS-Z}njOnb63m=O+m^LnB4q)RlP~;RCJaaf$ zYcs8xlQ57SY$4Ctd~12F!L+?^?%E+LY~x`0?*?T){Gksv#v6R7e9B-2J_Wu9&P;$& z_%gsHU;@5l?mXZT7$-O$p%xIy10VQ6w`{BS=RWUw{M^hOPv-i6?lZFSurJ1(@=YIk z@O<*{A~dY+YMPEj8T=G}tjux3l(nC_<-wg}y^dwLgHN#?rYYYrkvH!0p_rF?hDW~5 z!nRnjVrAjP2Y50;#V3lsEJ4Dj(!MSrOjx=gPVGnX2pCoAvdK!l}Fh&wBPB1kmvE;R_ zaE_0)78NMbrfEtdWy>bH6eUsA+B&jHNk?m0v}Nxe?b3l1qdXjPI2phU1{s~>%lX}x z?tXvWheo6Oy$6sUpfN+->AASCZruuh{q?8%>o1FThcAo8VzpYi+id)6GcUW{PKvry zy~Qw$wp^`7qsi53wK|;+iFdeZ-+RSdH2$;N848=r?C8ww zj4$8|cs-?Z#o=%uMBEMl?oWW*fztgv_Yeg9f$+xMyMO52!TC$^Y`I=8muXxm9J=`O z6F>R`q4Vd$rJ7!@RBv+vSnr{p-EYc$2;2q)5{Y;@A0HX@|Mu_re1U-Z1&U@a6^V^n ze)m&W&1%1W;r{*vxDAls&vGw8!0mOv_)^iPbz3k_yx3sD*m*e)^ z+x`CbKe(UsJ_Pm_0%B6MURhg@+O0Eo>v^*=omSiBSzMYAAo*ZRyw3slc8u=Veg`4o zaC(m%ojLbndU9q3>!(>$u~SliIF+tPsf_Pz*o2Z!o@(RTs@^;&gf zN&jm(xfq*|0 z3hjAMH#SzIL-yC6w^tjU#pPwQJ%~loVS6%>sOU}2Fj#cG&34{yzS}JBezrFg1m699 z$6kH@#M$R2j~qTSF){XoZ-4m3zdAKFJ+-%e)OG#y|E&}r2@H)i+YQ}pOgIw$%P;G5 z*L)tQYi4%eeGagqu$(D)mrV=z8@!7W>Op99>?dSuJj>Wj4F9W;Q09 z$;P8rx7#^?!In?w?wdjPc8uN(wO6ZEuWPuNbK5QTx~{LUuiLbCD!umXbIX)%+vSRn+Pyw^EEc=XM&9QDw+X24xoj4TcJZ7e;J1A9>v&B& z5Gs5ww-tZty}pocg1+X^*m$cpWwY5?7o$a(r#|$HVT;8PiPh_sIv(}6+06SB;5GsE zJ(q2Idg>4VXt_{m9Y5u(*Xv%d$LV%?Jf3?25dKhob8XSE)R4{0_P9N+T&wsC|G1;q ze3}9N-=6^Y!a%)|+i>aXTt3(Q^KxmvKJ>m=yV3Rp zEyKgZY_g&yh(LO^7LPc8_qS>mZ#bXN4`|-d(9r1E*wKB%2M!*%&jAJis`sne1N$F* z_@Pq|o;q>jRPP*bid36Liw-45M@K*YTPx{QdSYz2R;mog;>?6S?_aT1_y_N8>ebHD z(jr^iXb&3*N8<5PskpGVhDB&V3lHs|8MdaQS}wP~?hi)qPk;fi>hbEx(Id%t!tHeX zyex|bj~zSSBh#BAX<~G&P^=aT1xLp~)ZTxn{QckWba~tkg>ZY@MZI31**Ec36f|soZq99ifo7-l$vcR$JWF znhCO5S{n%(l)ks!yZ39y#taE5HU(7h+ht-LfyT!t{C+zZ+|3Js6j5^-zIM%!Vt z*ey1z$LsMSL|HYva0HvpviA~RuXf)nX)3OT)y6&yLtGBy@x;B-ve&yE4u`#v%LP5o za5U(02f~qRaysB}xCTquuXihYlot>C65)v3?JDGRtE+fKixS+>n@gLij@GGEYpqVZ z$7d=jwV5K=NLAD7wRW*sX|`+D#Lx(+-|A?D#%MIY13%J!b-cOLCnm@BTHUZ{hFV15 z+~_XEy!m=A!c!)osR zwcBmUu>a8Eqb%BKees{I!w~}XSgmLZ8kSNa`%T$cud#{D?bLK#!{=kKI`)RBmrycr zSQTH#($sZtK=|*Q@*--G&1!Ku9XOVSLgCfrxmFgf&*U+vlEDQ}L%e87W zIYKxo+SBf|KmO5?mtKC+@AbGqo?an!;zrTv;;yfn|+VB1Q?nz zo`~y>hTrD{Wz97&uiKLtvV8D;!Ma`<5Dy}g&Y;?KtT1pb-`3m?Cn~#;McU8Znf z2OfygcALG8Z)BqZU1TKm>;C8iKYByHWOIqn-};qbU0F?UU}bMMyxzdb=1MxA*n73- zV;>9F^h%>v#}3i80%^wTT6W?<;s5vzRQJ9}JUTum3IeF_vRj3bTi^)wY^i0pY1Xy| z@i#@=H{^)jl}78en&`o-1{sFkYE;T^;Glwo0XDz1770ZHao?Z*vD@$WHS2A?9BLZQ z&9yzY{D#8eu}S}j|4ADrKu{pl@e{j5EWYIP1Y1^5r`=bKFO^EBj6aeHmn#PHj-8c` zkXO?i%n1>JimmR)ZnvAjkuui6N%ol8;1%$F(p_%1hyWmg+JVm#a+t^j?KYo8LLr_B z@X74rff68@NDU4)GkZKfueYJ=Gy)95zlvC(tYyf&Q~y&Rl$D9eUQbvXpYs)kOCqsE z9S*|35I~e}S1J_pNnj6O$`Tm-euQ;Mw`tmXDnB{{A00-}S@cTuwPZ8=A+vuTsA1 z54s0z1`vd{ijsVFVZ&k98cp3E4hJobnhjhvSP0X!mavc6{nLd)MSMz0bUIpXS#N6+ zZ9?p&aKi>du-_jjmrKmTSTxEfwR)W(EmLFTs~c8;}pipRm( z^Uak^O6zZAygQ97SIXnlseI1sb&YzxUT7}3DFK449bfQ3F}Fa_+kP#9bh4iZBOZnf zT{k=~mwjU+6^V4}bw^ zGrbazPg*SV{o2Qd0k5M`6^p+?@0!iFz0+<%SXt`Um2zNy`4fLjue9rtkiU{E>`Npe z^T-=$3s7>K&7IFKIpfiZq4-byjAwQnnfS`ahBX+DU%ap~F)}%~khfV^zWDjh`D+u5B)&o;)TsFg(i$) zd3ilK9A)>XO@rXJ@IwrR0&R$H)3Ug-HZ?ICbh&=^=L-|lL*?><)ivC&!*?QG+ngGmsMSlJfNeasK6cQ%bk09E7DP}QpE%H}G%MAK*pT-> z|NG)dEH<~6T3MVwFgckomb2MxJQhXNdiOhGm(FLyp&-GFsKV#)SsWWi$5KcaUb)~8 z20gV(F&g!RJl?taxp;CY;PGOsJup>0bD>^ox`KXxOV^)x_sEfhrBJkx-AMe<-yY=q z+7A}rUAiBKc$`Lz7V(EE0fgFJPAKF@=(CBl6|!3u42}i-$w;tLD%b0R&2_zI>Mm}0 zVzYVl=;71nE>N7+?(}%<{y?B!t)XB=qG1r*(NN`+T7gk zE|9`pa=6MtpC~ze?(=%``P}+uCKBm}T}Y&}m5Q&U*CUBYyR$*ts1$ls?&!Ww z!eS(hPG2=0nqqe&`fDDihQZ$sAz)5VdSsBA9j#H*RvU6^fXCxLbm*{!MP>tuo$?_V zEC))s6}}NGV6*A*xaRa&^vyBa}B-5prZOh1lW#orjU6R}{m=c?)JHxtTq;$^h7-x%CVsyycG^RiF z!PAJH=wQSGfslKAKDX160~0It|K~qNTBO;4db3i@hWwFGbf}W=xC7Srzu&gHvN1lI zOr=r)*X#3PG{Dvn3;WZVj777JvWlcvKJkfqD6T*BcxG;Xen&6(xo>j%=`Te(Y`xVS z?|RP)jyIsSq1b z-0ig28)Ao{MDS7;%j|ZaPxy|!b$hsrKwxy(G{m#T$5I2>+4ZY~<*T2!2SY(`xl}?fBBBZUQoc|M z$6|{c>4`)PPEl>>pZ*W9u{-L{rt*dnr9EINtw9i~RNBAsVaHGZWDlOa)!bM#(yHVTnot>>qS&^ri1whA zU?YYkPdBc#pu0MDhKB~)Zdb21z(Oz-oHqTiF=Q$<7PJ=3?OtO2!J)^>X5-9=xgSp+#YP^_U)SMA1TGb;HQq3Q-n15yi)cm;Kl-K>= zcBhH{3rD0qfG^N%)&1JsM$qSNG%S#Rh&O{&tX4;oLo{Y|cqAV3FDy5->;=XUXz6JaNh)yJ${O?}~vT31T`^uFXsNHO7PPaW6^n*E4?lk@^7A+DB7W2ic zN}PV@JKw?R%4@-6l+T+2u9GhGPrU*k+e)Pql$J}7T;Zs&1+pm=@4nz4nOZ`>rDPtU z?g+BvQ6jYsY$08JBAf#WjepeGOAE=UCMHx>HfO75NFme+&)`9QXh85@eDOto-ia$2 ziyuCA6d4WzjBPNrx-_@Ewxc4jpD8J}U5iyB^=aCZk3M+i(iQ0_!b}s5hSe6<(QLZW zaanDRPV31>AAaq%3s{QvdeiOobXrZc0fPk)o4s7EjSj^cEv;IvxVUy087#Ij+gZPTTiN_cLH1V6y6$&%^ z_9@tcNXFT-H~f73KJVXs&$}%S``qHHZn1`3-dZIS@cGZqZ(g~4X-Aju^v_^0xMk^{ zn4EZUW;EdS|MWkI{LC+Xdo!J`)#|e|GvEKVhY4N5TGQ#PtFONLYR@JG{JucDfT5$YI|tQlRzX zQH^M?a2-Yg3WLOaM>YmPr3-VQAaI*$!&f@%a14S>4E3Qf9HDrk0EfNb0C7wFe}nh#18#{0NhO2GLd%r=;oXde0C3uUeDEO-Cr;Sy-5dq5Uu4m;CUDum#;c zo0}W1Rm-n8HJ?K}Hs*n&(lndJ7K}s}*VZ(v!{_&w)DcN;r!$|+VQ2{k0`{8-x!IfU z9cqrD1S^mlBw5pw5*t8IsR8Ok=|8XoYTz!Lsh17slldnRX8_O zZ#L(c%o9nvGuQIUDm@hh6e4Yn#v(iF0oj~QanhofAe%r#z-W|9g*Hd`NWUa@J$(VN z*g(_eD&xSUG6_7{Og)g&2&$kpfJw2UITb_R*H#Uk~dY8xbL1dS%R^`ZdHL* z4Tau18c(u?5|I)?1HBl?@V~+`@JWFN5Q+mZLJS5=5qlVktAhjE5;}kq4mjlW~Ez(L;q2@`V~sX&&!XK_=CdsX`)`i8@>5 zn2E3NJsgU{l7I^sCQUT?-A#4aYE}mnw^75eE9BM!oo#oJKAZI#*vLRRl@4uUCm@sM z0!3CR5O@fF1EWsI1Tvmfz=%aIDxqFpndxL^I8@JhTa(eL@POQ;&`t& zJpc_ZVgqz*u) zCIiC0Ac49h!xr+9LLM#>)xC?js$>yB#W>O(4294#NhBvV2z6DKBAIDQmSA+j3`WW< z3~>x8P~~BKNt8h~rw6kIdxh%69l515DXKt^Wo=bjyUixzX7$7an-(pIp4gmTo@oSA z0ISrOGpm@q)3DE_59 zMSW?{_+#wS0+)!@V`ip#PP=W$RWB9{ zr;Uw@wVW0%S^da&>}4SjINz~amR43;nCGGTDhP_G$QEsUbjV@16{>v^ARLYWeqqe~ zam-k!r4(64rLB3~Ha13zFeG>^qDvQvWf%dN$Q6v4!cGCVITK{0c_EpvQzij6BPvi< zZ{*{x2SCjDnX}d$63~U}7*}3_-%8x#S$>j@p;Uv_RoaAC^G=44L6tcJ?PE+yGs~3M zYOb0!zV3HZrh_QjY~m5fgIPr)9v7>>()AT^MEItOwBG3!LpxBix;!+Fl?0Fs^o5_& zTZR+4QBf0_;nofjnZ+-VJSLzh115;}Od)(uXMr29fDmk-4^?J6xQ?d-&lG8bj>*9~ zF`x1g<3_85PY7W$M@)D<14E)IMbM<7k&{TJ6pPCh2 z8n&(4*X@xVchqk-n+9wh(No7)hZ!q6l?8-0d&gvMVU?_lw@?Eo1O-VEau7s$CtMU) z7N8{t2J%QRtb)oy5tJu6{T2#mwc)`)9?3w2HV30;1>O0SY&xKp54Fwn+_<5)Z$Hiy^>)ph7d__KdJ*=iVgQtqm@n*j6z0k_KmlT6)-p>aM!77K7Ap?G(^HUctb^g?r>a4xyg;7C+CyJp*@E0IX?!l5@%e+$RLz0iADfT*PgH!MXEf?{d>o|vY6%6< z@hr1J&1bCsJOOno5)394!i|Ql*6A61$t-snDdrNW4Nj8-P(oo$xdfiXoO@emSNK-Fak`0|App6~hny_`5cK0Y@$hu;hO5D0+h04}_VWa8S~{QqRL z$418-Y>EnoUOoLBES~wy6bDQU-JydA&YXRP@^Kt*;YI>YfS@WBR^$aGLREp|`J5g|t~SFlYuCIxp(5%EYQNLZ&dTjrGs zE|&vOVHf_NzxL7dPyMim<5-eoBdd!Zrn8yByz}(~M-M}v_z>VLJQDo2wD3`C&t03_ z%1qccb{H#xrwj+cxq~ha#X^}vC0{JP`pVfSpLm>AhUy>|y_V ze=h&YPq9qb&A>n_kLaMoEt2!DkGctPIlZiTy=?z-!+#(yLRSDLvQMs{g#uVM`h9yZ zrUS?Q2M_H($gY@!fF4@NIE;>tDYhUpnY}WKWGZv7rcF;z-)1*h5@JT}Ke+$+i3dz! z5A-;G>d{9ZeHiy~NJbsYx?z}3SJ!Agpi zWjV^>-kqbWk=$q-@)$F~oH^|JS1r+smDXIWI3AEZJuidh+=>6ya!WoN(HaUk^ zwdCM|St_C>_|%i)^J*SzV|RfTGyWX z#?xjdRAIfGqb*^-TWOMn{uJ?M$3@F4<*LJ$J#r{)7+pP^ZC4W$GuO_|9eU8)PXneL z6NZ!u7#Rz<%Wp?FW0c_PJSfdf)T4XAQggH#URUxnfByL$ zoqG6@ho>edlvxE=cME#&b@8nI^tL^vtmA6cEOz>Qq0V&mdT;puY%h?tQMWHWK7C|i zuHtfarz`8hPJ1Xm+R+;jBANU>FY(O*85k`x8Jb=%3x#0(p!-{8SG_4$>{jx$kbF~cq|+toL+)BR#t`)egFD}>&W#- z`IpIa@W??pBW~XC6WKn}Y_m8Dal*`g?(}I0Ed-2;S}mABm(XG+XS2NMm=^24nHhL1 zwjWvtjWIV;OHLrJi16*N5N&VR-GBbV7rvNY&uyk&b9mOUn{1?VtJxf&Fwu(zN}7Z? zP71>?Icl9qAc%!N^XE4aezV!(U;xF8m^>&gOaqsbB`taL%(tI2GnjWs5(breQ`QE{ z?JkAdp22)((1+LxqlX@NsBP|aBfV58tfmowQEQ`WcJ2O7QbYzrbYulUhJ*DO)3HhT zv`ht#62l>9jf<3(-;GF=B}w)=ySm zA$zb+ZOZes3NoWr8!uganZZWRnVy&?1>z5tL40BUZME}Weh7s_b*+gVa%E|;T&d#5 z9rk;$IXdC0;(ssdB1<2@5P*1XrPbBg=l;Jh?e5XRgNL9;V%t^XBGMPI0I<(I^X=`K zAuE8Lg)I~!WRe2hy3d96pjL6J8{z;P4ETY7!enj#gf*4%|HT)-+Oxr|k5^RO0L=f;3v>PY+uwe+ zM`p2WY4NDPnCqeYZp&|tM77K38=(Xmwn(#FEDE1GHB*K8{6AJl7IXe??B^@uQR3miu*)JY^QqH`M#AjJ6RGpM*m?2% zrPTU5hVXDC8VE($!cr-hATf9_Py$S=r((CeNqe5cHrG%8D_cu*Z>H=`T{h*F_14tX zK8z-hKK6w23Fw%XpIV7vNqyNGV5cu&K0xCVLABQxafi)G@P6oxm^}#_ns{jl1vP#B|N+W1(h#fy3(^` zhUz9>^a8Z!*@F*E&+gw$WyI9LEM)Z5N=wi3 z@2Ny2btIAxd|*DF$Oj|ht`iOfhr|AQgB4Pd5m*H`Cjfy0#Fo_O^7+I+3QWZ)#_}u1 zfS%-^;B%~aBA;+{MH2&Z|4TNqhgo*CX4aj`gSDG=XjBWutbXs9&)0V)7$KriFfy42 ze7He?0>p!p#|}5@9fupK&VnrnyLA7m_wo%*XAGd@0A1ur6%)8$gE-Y0R)&Vu6i@gH zSbgovg?^by&*!p8mgPcGmUsKR5}|%XqY{?^@KHWGZnk)X+u})u2pdnt@Y)5-@k?m7 z*uTU4>&(o|KtW9-H>${hmfSn95CxdP*+TJ`|B>j91SCjCLt=Q4g#{7f&1EL-QR=WoTtIQI;4Ln9fM*$bMAu8Av@%S_FJ@rvZ8d4UIdB*hgieI z+_JIR*X5PgJ6v{g_^?{oMu-N?W{$yK@(27346YYIKa;`Ds`tglbmGr2{Qw-sAi)Ke zU>sHnp|37bTZoDS1YrdVGNv4EEEd#dBr!;rx$f1?eQ*C$sn^rlEQC3gE8_|Fws+c} zc*~sLlm!se_$y0jSU-av5_#CsKS5=VA4d`{>7^vHrTG&2c>H*h?Vq{j!*h%CH-B;C7s!CM6MICl*ns}G+YKwB z*RW)C8j^}!f&Ju0_Iv3G6Aj)e#8TA7+u4%dX7kzIOw5lR3vPx)5XoXAD%|W&xFi4g z#5kL1lgR`Nlgq2i8ykJ67Lrf3S{LFcdId^_s1^j<#{Ew%sY}5)LRd&vdmfZ`F{YM%t$cHkCFI z;Qjz=iQ|*SLa?)*nUOr8SuVE&&mx`|7Z-YFBT;y%mSxMb&D~ubREapY6ATyNdOd*A0N_d$F*OEQ?43+QV1S!htmi%^w5oW;GuJ z5rL`j*n!%~{-ioIhEGt|h(`d&kZ=1BPv467;su*OiHeB_2d6I5=*`V)v*NB4oz-eZ z95K{NFg=0`VCC%BKp+df09KG8{6Zk}7{q#JW)z_POn_i8P$=GTpxB)m3i!)E=iXQ@ zt!}_ry6;i7f9btM(X+*pj(UHFkLxLZRp{H;d+39MV4tWmdR^Aui{(bK%+mXyx_7tc zZl#D97sM99gBXq2cy3Xzz=f$U0zH952WLi|LZg7{U<*?F+52XP@RO64K*?DTMkN5D zi5Lv|;02mD`U!D=SgM5TWBwygsZcED3LEQd>9jBw;#ydcINt~t_$WJOWod|5f)bi? zd8L)tmmr#0$po!g5obZYTEDieTqAmQ3Q(C7p8Nn!7DKjh_U8QXMqUy8V(#+Q!AcUu zWiz+&-d}F-pLr09ZWhA?+sJSJ<6mj5tg!8_?}bDsi!>FjR@OKkKsZ3TT(vsHeGd)O z(y7wQzF+U%3wjB*;iTYjLuYL;tHEtyR;wjgun-NcZuycnow<#ErFFtS_doeZ3tRA)Y@PN{H1L^!?H(`zip3HLj;;|3 z*_1HUmQAHhsVagg3JRoE7Rv6$3nw@5$L;o7>>}ITqKRsQ7+NaCI3A5}tfdF!2krV(R%4=(ILo9{Yh;9vx7fsj%FTui z_K#KTuw_`DoU(mSu2Uk(Kt7qP`Fu7Kjo*?@ft=#&Bu5$ObhZ~5Z={hC$_%f_W%Jg^ zAO?sMjP50SrkDn53FamWq>9AJA1w`12Is-7hSUW8!*PSo7iuj-Y*T2%QuZtZ%d6Lay(41Iu;+4}kJdV)EoNX~=x&2z3H8kY1 ziAj7a#r+y-3KtpHgSI#89(l&h5($SQkq|nWUazD#Z<^M-8wuQn(9$oz-(0NOoo6cr zqR0wEdUKQBBfxK^?|vZI;L^$(MKhM7IooV+fAY~C*?=LnW3xj4200Mi(EKPL?P_U$ z5x=6;+6|wj9pB!GpQ@P>4_#Scg$zIQ>YY&RA5SA859Hjt}7G{+JmW|{n@z` zHZ+;hw$$?6#q(uvz$&JfZ`yM-S2%%Jx5O;K8*DwMO$k<4Dtfh*c2#SZa>9KU9s(a%J+R0fIB1$^hg_y%j zWpKN&m?F^Os-+gJ`qC$}5XfPbkdb!V-})OrN+|GaSFiRfoY2Yv537~3vH+H|(Dves zFYU+-Q#C282>b?HSiln4tSgp?VLwsdw%2z>Q`}L=>-du~6}VY!>?}hB!mTY=EG@5X zOioM`OJ!Wcpt>fS?x>XJmr{X1tp4f$)AiSWWD~-lh!c4cLvSPDM?g35?}viM!mYPG z(bs0bRVJI=m;eI|65zkMtC+OYgue(*m^#@q%V~;%sp`k$HuVBBXj~sL)-LzUc zp-Ve?ifJTE`a%QYELx#lX;f;gWK#xs&q5oT3|k~P!NH1kRy650o_)mOF$P-5m9pt16p2mG%noh=JdO>c!Ek_$jF?adXI@=f&Ezsa_Tzu^%9YF6fhz{kk9ETC z0co|M!_v)efgXbiOLf#JL>H+;q%ql+#a3(Bi*gAa+??0_t;|43HL|W@XJwBie;AI?Irq%^!Q2RBD`9MhKl%B8EBOb_q3?Vpd2jsMh7{^aw|y_ia+s)HN}yB`rD z8H(;h3U(3Ob0_N1R0cp&6$N5ck!)cZm1>1(&-_qdtvIC773qQi9iA2P1 zGNNBqYqdhLoX+H+qbBn0Xa}o@(L`iBIOyzM!A6(cP5pA$p8x00oW28^f8I-_E;>US8@d7U4`H-D=_< zJ^)0ZEkmf`%MsWL-O;Z}#1+G!xw^5TXwNNdro@uCbm=no`ib%J0d6E_T{Hx+BCujV zfw+P0JKDe^G|9-vOaodAn(&O|gHPC%D_3!=l&;*x3#&b~iOSnSBbT)cv=Z@BLXU@k z(Lk&Oy{u~N2XL`A>YX;)mkrB01nAtw3!y;NDLa2;c?;Vv>WFRnkluXRX$1v+t%~PUbKvMsTSNi&b{fe2GK6fX^0~EU$9hYvdB0}e`E;nifS#Go-{9&> z6~x>%_M;3B4I!uu&b+WVUn~^~YLd-lZs){1glRyZ&E~|b<-@9E*BGsZL?MIn zhXt}ysxrQ@cr-bbygC1!{dM-`m-)MN>5@4a*}sppfRT}brtvfs`wX^`-HpIxM_*j&cN})doe-SzywC5fCORx|KxY zF^Jf?o3(D0jHMn7fb=jBa3HlmTjT-)!2|19JPA?Sw{HrUM5e@fbGt|jPe<9#2Cff{ zg^+Uax=>3#b}Kee7Q#3%1CbS=+|p*U)sDOTfE5(eE!`Hs{#z|quWxL!b_0>Fact$S zGIQQg1%0_%dG(cZgxDV3FOY_D6!V{GQ9|B!Tv$2M=@jL)S=JPDvz*u^z7jTjBF+g` zYzVl;?A=k||K!g@GZTmRPvMPm=FI7IMo#_j8l>*OHDw9MsDwX<9 zDok3mS!NUsK>Si3=`@dx88Dk#wG3AyvJmkQC|Pj{?bE*>4!C@HcaxIO6ha}65g}+d zs!fxyqitFx${9l|VU+ICg?c&+)0T4xWaI?y11|P!Ljd>yFE#o#ASbUtXqVlE^e_8* zRivI5L71oxf%P!l9v@z50K3(-1y6(?z{nG{^b%#Yot$x@?oOvE*d zp=3JRUCu%wKQuaV{NzLX4<6x@MzQ+g-zb~93Z5~H0wV)nzyPh`5CQMS4}$n85@$$> zjQ#4~!*nD)R>Q>7g$PLV2VMxe;63c()>&n2M3fIj;=^O3{$OvvcC)r)M-PpUjSyj& zur`b+v?zDBM=+0g%6Qf zc7JZBT-V&X@1YL;a)SM8lE`#{$3&uoOsh~fkRC?HC402nEnKPDos488G^gD@a9}nT zB^Vi|QlU_7E$wpIKK*I2ECtvRk5Hgqz;mpbOwQ#&IiOa2_9S#!zb5W&I&cx|3e%LR zgj>$XecPl2aN+h)ioU~Rehr>dHt{kXE-z~^eT(F%3w4?=CN^lOd6EhThLc~B6RgVi zdaKR(5$kJfg`!v!p!#Z2SUfVg2$KlgW~ah{D(>8?BGxnHGvalM;U8Wvud$P8SCXZqP; zrmUjhMxTC>(| zi|w4@UaJ(~>dX}QGk^VR-NSUiCp^!vfk?8)UF-mZF2qh8r?J8Vi(5_rP#I#4f?cV$ zV*?2fPMU`x)U!@h%%)~wMfl7gZVGjll?{v6+3ed^r(i|>? z9i5(=-5by<{B;>x)F4P6pc#;pR~)2BKx38*07ZA8`h0+*gnov{ls6D7S6K*dm7GHmrD_cN~Hp!<^tH-`iE`mQ|;@M%>G8S7pAK$Q8OXspm{?2 zSoiI^y$t4Q}O?#lkSzAYph2)YH=GLFc7E&;v4 z>C42~K#)-)R-c?1e1 z(5dB>uYK?XE!F@bxYA=a3b@k`pc+thXfP&w#(_iB*(}tvE)oU(MK{GS3-L_A+%G4u zOxu0;E3nvMW51w^hK!higM(NLSsYOILLqqZMxIx%yPTa+iFx1uS3BQTz7Dd!=s}JOJFmrwx-%QAU}*33Oyjh z)+<;f)Crl2^RC&yhqnc*|y5 z;3o0vPXwZyt*3U(IMm5tfMv$B7yzdbjQ<; z&f$Zzs5R$bJHM)}B4!M(QJfBx(kwcIFv>xfT2C32Ve1`-6@Z`~5g^@_a&2Nt)JFyi z+~-JM`A2PnXXOZt;Z%2GgMz_?-(%9Ui~n2SdKOfOgu)Quj$Y-!7(T^pAqUU1J|Odu z))J|vwQt`H;U^$Q%zWl?#ZkcXT{Qy?VMN;;T7Hnl~OeIWj&XQ@ut|p-OW!>Yx>F zlW@;=+|@*Ej!hjKBbprUdXSUBwF6Cvv8~O25TIMIi$I8D8vLlI%3@=xSiOsf^kNGq z=ybW&aah_c27{m+tV3?6jTVa28*A)DV8l%*5)LvHOuu@qiZLFIVSHi|7LNg%_FG-z z+-eY&Kw=DvOvewGH=u+m3oM40G#x$F=H?{O3Pu||d4$1>9xhx+knlUXWc5gG1Arwe zH9+E4uuL8b_NKK=wXyLrW*>3g9G*Zl%8`ogY7;{cVUa)*FXh0EFdhn^nvAmh!!m{+diZDt91X>H#*x>ffcJP6HXw{6?x zp&-XC+aQ>t5sCxj(Jdx`&lm9cgc!?+_9s!)Sgn;WU0Y~rSdH6OR?QSX3F>wXB0mf0 z_@23Gbc*Hj(h4yVH(3RP=VEQa1dg?W4KaAEh%dhI4a}pRR=r%u65o znpz|Xm)t>FwLw?LOR1Gx>shyegx_foNU(U((76K*#$7rKg%Hp9hTVoCt4AT|0E_c0 zqA6O9wUw1*f}Nx3Kp69ySdjRDQJ@RVDhf)(dh=ww8>o|fC`@P_tSKNRr=2LG z>+2i&OolCO1dKopWt#B`2LmHeC7d0ccM)eDcKleRdYQH2E+JtQh*qGpd7Fm@A~B}| zGobW{%N(X#^vfKrG68gmB*_jDjdf_^y{p5WL|hg@f}&7ldP*i#^B?~r8ua@!nY=#` z+&ATF)`+g{CqxQ!611jC2q4UUj;a6PFP!L!9QeTEp@zLubwQ@iiQ^CS%=zEH@I_{b z#}{PEG-?g2j$cFH%WOH|pms7bXy|+O2BF)bH7&MB5~>LQ(BVXa?E++AS%y=)&R*ER zRbnAuaD+x*df^3Ytz7Q-l4B9g?)G4VRjy83+3uAGCMCfq<3nn7kiokZe-s>2+I*u) zV3J#yL4hLuL>@#L5JEff8XJnUF|Ab=7i-uHSnDR5v0<#GikIitE?!$<4??S@XY+aR zLjrQ)gei(wt5D1nA1a;N#65{9tW@c+*-M;ef^%jl3Oxs_Xb8<<6ru6hkpdbA#ldGB zqC_fgAj2&zU9MYlw(b3>H9Kgl%H5dhCw*kHQ3yMjIZT0Sw`Vq=IT>JSzVTb1;=C?{ z3Bc|;fRx$DGEX^w1f0X4PEjJuaMF8lc4&7AX3Fx)8qycf82FjEg>2urV`4G2+i^?4 zB45vl$+F+2>XieI)X>2a?ev0GYLC-`>op6&M6!dNKm>s&h1i|M`ZiJy3m|w;gZW9BgZs7P zEz^}n9x)E8({#`Wki_6fNa;OoU^Ff0vDw{@KmVK`yYJcx(QU_Tto~}P=bn4c1S~9y zT5#QOTl*ULS%8MLGtp32n|cGI>W+qO{Y1E80$|ldKnsQ(vm80x>x%htR{;WYkf}Mi z0_8>{pU;)+?N}_v=PkWTSK+$6p$vM+&i#BvoKTJ?EW-h)iY3QM@#fS#aq=XL6_pFf zj*N{_1l@xOoKnjU(q1=Ii zIOWhB*{KO$$^pes=>T{=SWqDk zt0dS2$V-F48&U>bNW-*{h+wNrivzOp3hNWZ*a`${NcLiXpbvBnSn(E0&p*s18tigM z5%-ar(f(RByzm{3dN~-BlT^S4&{rY{wRA`mL&)ecxd~H)ii=|xplLSiPDhyGV;MnN z#1(YK6R<_s7%3SYsqj0vsD))UbdB`td?@9YpGZYMpC?1aV;cQVcoc(xKLo1jOu=s%*WK=L!P?>s# zrb0^?Je3Wu$bn}%orLDW)PW0tp>FbX@d5eG$x43tUQuOLth{14#h?I@3uUu5!p0b^86gwc*_X@ET{-Hq9S#!9A)&q;O}J^r#dPom+Kw6)%-XSk3r6X zvN(+3mwkQJ+!QBFh=F9X%T%M@7LY{Eh4u?UVa8Z6ybwb{b}DHWCrE+1#smd!P#K_! z)C4g2k0X}k)Ja3^Cjv|bH0GN^Tv304=q>o#uI@6F{Nb60?g8EdZpfe7P9mb$?h6Sg z7IS5CD>hFP`v60OY3gJDvZx$PM46@;Y(u0e%%fZ}{ICAtTa%;y#nqjj)x_E;mI`QD zOkA1(D3Zg;&GjC8Xy`2RAWr0<6~x%e#`QiI=*1r|!7g=Ytec4MENTF&dXwW(h~cM; zOl9(an{_>%o)}?W1-)OsUT1ZD^c~5oDSm>HRax8zHMshd+RftM&AZ-}-!bC>aQaBajZF z1&Tn@MM8QZd`ca0m&-#h8`W|tpUog3F-C0X=MO8;@bD;}SNJ1HmykoasbK_|YK>W3 zu@PNak;H2S?OC!3Fcnw~2)1~b0(GEm0)DGu10L}7<}aBXb~!yP-pNd(WLX17(lF4) zYaEuNV7#Lc#xA{C&Tlf+Ed&iI6$_bS#qRb(R>;X*Wgrn+)FLs9T()D!9$HW7$M#R} zD2Jbf4xm~pK>&an96NkucOFs{O4ui-X9)92HyxFg{j;+@bCQ=FTw)zoW-;u=EF%sl z6CkDA;bN3VM+v7tcKGmNGO!s;%2b3KlEO(JY$A}BGinO!1c@QTLSTfa2|ReFLFNoo zm@jy&;4U-Ad>{iK3RhLFCmZO>C*8MFko*TI$!T89B|b6plftw5*)4&QFqw~fU{6Gva_tV!~k8rF+O{LPQ5$5<95X;*9b^nbbR%P4jSCR<6LDp>v`H zsEgJL9ie@i;U`eI#UQ|?cs=<25Pyt@z;R~ZzH+I8@gcRb39aX2?0l?X0vZ}xXOALN zQ4NL;MN)b&@R4cO1s6C5$_hY8R5M3_cFSvWW@d6`HXa{haT;%QQ$HKyT0Y@Zhb`Pjb&gY+hu2iWA-D0sq9ni)}y@wAUy*R(L zqa1#+MjjxRt=)kc018W-m>+)64?+ueZ~7S0bFsZB*5o7WZ=SJu{FyLj;#b+8rSlAZjDU7+yPaD@nBN)b{nvjThts0^MW zEo2nRq>$LePMMmj5dx{}$Sn{26dleS5*ZZ11iq0xO6Cy`1o2nopF7EBLFTxs0?gjY zl#s7P5Rw#%G%GcK3Mu7FRw{yF{0ktxBg1{o4t$;$dB(t9O`0d=4ZbkaH7{PgXl9z4 zn(CLE^B4$o+^SWiBXGj&_9fM9=`|nHe_GCh4sqAS;npSl4-?7c^JiX3rBiBIfZ(|t zp@$Jkz)N&>I%Xb)&3Y;R%1(453u=`JtkU={%+wgE&d8KzfchZrj>Z$>7Urf#nc^{) zv-sA;l*xZ=>UHCwzkS(g+sAaL(MsDaiR_9_FNh;YP>fo7V~e1?_`-{_Z%cKa%rMVL zG<5jzu}2aUX277;ASHbRd-+}_fmER2y-j>4(Y(}qL0Phh5Tq>0CR&>r__F(Xw+u-( zSppBVo40(+C;T*Xnu#jGELljMiNMrAHnu!)_$jg*Imf4a!i8LNr8YMpbt=XN49eI| zY|L!to%M6{{)KA`p_tI5g@uLfZ?`{lpl_j4C#(XA3i>9Lwz4RyfoR7j!%`J(ES1Wv ztgKzVcJ0-3=Q@oViY^gF)sebVLJ|i!SpldQt9C|>@PY7D$yHrWf3%bT&Kc7M-Q^sw`*HIEvI!Etqc(;oOl-4-~lB3?1edD z7o9dCk8oeDS8M3RfJk5|=PL`pYBqx(`EY)ERItdfa~i7l#DTaR7wK@p6O}kCZmSY5 zZ>t)`(7V566s}JLg_Odir7Q`-DU(ISUzHcSMFz<(qb2nLaS&M{x1^g7v`=Lti;S*W zK6!a7lA27yZjF>Kol(0^J#K8hLA7H+3Q!gHy)jjgH#r*^lRCn8-+WksQ>ka4eTE7r zC#GYW;S)zs9X%A~a4{hUR%B3kg;Fw|P!_r~luUvR zgs5QgSXiQHO1QJL`4xmvJDX%Y1!w|Ihl7o+lnicB8eKJ&B~kzsDL@R6a39drtykDW z_(O5P-lY5s#DR=K6Zf%p6F%_Tm8)Bsw?E)=@;84RyX4I9cwl*XkvXuiw3f+cu?=p| z_R>o)(Im=bDVNOfEY%HWG`+ z_V4dfG@?12Idg{1N%=x$df129nO>cn7#rVSDVz}yuz+X+0ek`PF#p%e6-Cb5iD=a4 zaq*l|Ar_aHWXInpKB)?6%l^lw&Zk@G!A6Ur6pacfb5{?PtRO3-T_K;U*{q2K66r8B zpJxV!OVC~6E+cFHl;Poj8A3Hr)C1q~txD-4yFRqKeYwa$vMN*krjdk&b7Lgb zQX4B2A;i&!8NKt!<4>rj^}azLkPQ`)z#2BlWPbJXB`ow0KlU(l_mI+=dY7naD=VuU zb}QyKa)_U!wEWW5xfjo#KmFRps;(y!QRp9b9@E9ueEYjUs+jCrE}R_ zPPTVqs}}8643PpR{HDPx$TL4JNKoQ3EyBV;fFnRd$|CWWSBK3dO?Hkq zRd60KMt}}Cq2wk<&1zO}pTJ=&%PSWa7Jure7eDtG8T{%ub43Ws;${X_dV8e^b<4{u zq|i-9tz0QfOl;Nyb*$%(-OfLM`K2#|1`H$JV~#Nm)iCdj$hJ_>t#%IRu1tg+9=q1g zFOQCh>miq)4QRs07-8m}D0s{|v|)_(9MK7eP$cGm0g;5fkfC>4^itlox;_uOvjG?r zD6`36oFv@dce|$iF`7yRG{wMSs6I#B7z{WFs;i&Cex=x~K*& zNfqX|{Nz%3x}!@j`6={L(q)t+K}MPj{Yes#Pv);-WQ60eWr!`Q4?p^lO73yHcIB!N zRS|xn4UOsPeLXU%B)8AE|ImJ>75hr@iX-jd(W6IB9N(QEF&D_ zbru$hII;m5H(w~RT@ZD}T%N=jD&`}<2)lHM5dq2|FB|#ju2|z_*^)lO$XN?BY;ssF z#~_H6nTkw|H@_78$H1zO{8!M8C~gjjMY<5 zeFI_$_J)E15D>2gad^FXKGW-KIlUD-cKlemT3xt0H@R<;sRRIFxXk-QM-GI8;b)(H-mGi;{pyv= zv$Heev?5Ekt?}`R<>ekWilc`PX*O0c5Dn{`4^IiKSUMcuV<(SS3Z?n^`K>Z(EuDl| z(%{4^Dmg1Atx z5+nhlK<0L?r@#4a#=-5dKKAIN`CN`AR+i*sJ;7o{K|-d&PmW6(BTIYYvp{|lSdb{@ za~{7BodZcyJb7g5a$2x#`!rYOcQoMa*;hz8c<>;M6mE)h@{SB!KWRW}bDcjTShXAN zwbTZDVC${xOMfX(CWj>hCkQ_lofixJ;hX94Q@{gghdil~-$o!Q{mlH$7hSiR&PH)(33emc7;hgG%;I2?Phl57Y zH53`aSJ`ddz`jlgP{|krv`kr+?yz|5z!~I;C!b)DHd3eopt7t6@Et@5{(w;^>~-SQ zNWA6-v&HA5Of`_~DUm5hrxg5wr|dETN4Iyg-}3_pW&z?xYU72M&qPDm_KA!lsx};j zLTGa+EHXWiqXxpC0Be+4Mv+ltQJ)4P%5%{Gu$H1&U}FEF#L2SRuU)&gyIzSxciY$8 z^#K3=T`U3Ny6u(QwtALx?E)84v=B=rag+JZjDl(MZ{u8?db87 z7tX!H{=h&m5D7<|E}xK3J`>h1QyfG74pZjx@-k;Y$l?_tp<8S}^*S}8u;v+{7v!EshA&&4+{T0iEU8~@iCK3_zLOui>beR`a z&7DeBB8?SzY=Ly}!`fzwau8|b(I~(b#7h@2k%2Sm9kRRGY=|6_QVpuX zOkkLBOrle052{BJ^L=V+8t7qtXBuC*dUbG1zU#N>$~(RV-DwY1o9V4~1EVS%c2K@q z_Q>S&5T#m8zjAF30FvkUQT)mmCubtE9L@B=655gp&m;%1!drKf6O;5(4d7-nfMfuj zixf%}R8@1sEP^`)17|oVxlIVF#tB}_TRsq;AZ2kw`lL){(Giq2(^ZYUL5DVVWipsN zN3a9X<9R~uc8_Old~$VV2`7{Bi766Pr=$kOEP5OAIRPb^Oe*ZBFEn1djOCgJD}u@b z7wrVYWahJb5G!7`kcY_8S1SGH(@&{(Y98fJPYVT2K~M=}CXOpgD5fD6zn1`6wyItO z$LK4*Ltd8?CorV^FMR1M*#0O7Lp6N|6b+fNVyEeJbTZRH3Wb%Bhr-o`ElYkLFbu zdkOk0%tFMmdL6oq%?oh|=uJ&dGSDn7!~XSVbGwjv%SL`j83cz^gg|B>U7Hw*6S18M z&@m+D1>^zlilqdWtG2L;jP#W+*$*7?a|$lc^s%99!Laz-V$ZN+il%QSHt%i+6>Pl% z8iGK=@dbBOMT&4;XU$~3j>>{zGL%q3Mc<(}+Y1NPXsb#QgyTalx@F!?oRe==BI)=B zGP%WYVHdsx(sQQ@x5xGDx4uEn?S=PyCM?3f>1mEEB|AlkEl}+mL%W0DL)m4zQKPh4 z9MqN<7Wms)n#^CQy-ts4n7qZ_$yX3*t7T$r_!YGqH5l+mBViGQInqXNuC1>VgBAT% z=z)B~x(1CvArg$EN-^0YVlZy%R9zE{WK?ri$UmUqD_|v*2sK8{E>+eoZjeB}t+jL; z3tOyANeAT*u7}5e&>tw4Q)7uZuqB)z-ItXLH3xVGn*kDppAuL+;10}DazqNJDV+`? z6U`#VJVJb zfYOmDs#?1v^Pd5eY;;~oloDiRvk!_q3;Q~U+)Md_xDYimGaUsYUN3MY5iF)u22}eU|COG?GU!TP&f9Y5)SDOkRjF55R~Vl2r{SH-IU> zdR=I-2M!%P^YUr)C420t*WqSC39EPqk2t;s$B`eZH96MO=X0-b&JRyWzz8(a?$FXy z;XG0Wf)fMQ(8akB8o^2yE~T;oONrn#8hMZQgCU3?7#k1**q=oJHq39)aG1S8y_)&m zrwJ50o}{o zElR-dtyldXn3bT~%)aSsbMrg$pcQOSVd)W^;8f>bKK{nhSg2qu9XixWEiRoueQ-Q(cp{fCUltP@Rv@<*rQC{R zo;nYPDM5`;G?tJs;bW+xE|hihip(R03+nUu|1)>$8R6n9b^ zCB>3##Y!wYlX1+m5)5rQ%$Qb$4~Kn296N#SQ=fAOJ~3K~#qNrenWe-F576*d{T& zvfR~@$R9xSX|6$rlxu8iVE~oE(jGC)$D@(y`Nl?W>U=khHrb8+S74Yo-{!ji{s(za z3{dQPQ4y1!LE{0$_=I_7$Ayc2njGT6R%Ehc&)&TV00)DD-90^Y1Zyv#m4@>4nR5pQ z_fXP4_`whSKmYHq3K?0nZl9l~nOwdy!QW9LWAM|OPk!=~zx*q|+R;p(4zrz}n(66m zzvu3E+1U4$C!eCNKl;GkUwQh)8+N|Ev1x8)`RL(8?D{zut)`}>u8}@sE`{i@%gXW* zQ6GUOyXu-O;ZH z&F|NGbeA?K$ByBS3OLGu9^Yp3zl4Cc$7c2u2M=iqr{@@Q zggRsh-e0>yYi<>VjfGn;LVM(u2}$>(6j3iiz0FP=AkbOOYe#d9d9maxzgF2d?aPZN zU;DtoE+}UP8UEExWR)*!m5uMh)Kmxu$!7oBV)4PlqrcF z29(voYN@&RfABFC!ru>k;Jp!rMZYRUoq0*`JjIljm)Xv4J9hNI!ToA3&iO1o>E#@k z?!YRlZN-2!bn((<;a`3I{kI)m#MtQZPdsr0|5{c5wa*+n+60MfE)9*GzdZbVk3UsC zGNNGawQ}XloHUdTFvNHAppA9 zRV~@pOV2&KqeC(n2Vm8#P0!cuI(X{USN9LbdukS7E4vwcl(xJ}-J;j(`usvBdO=H{I?)8}9w_>AAZ4;ST&2Q*P!rpmz|nX3k-+*IyLD-~Y`=j`z3j zY_0qAf9B(DwK+MsLcZ$@<`;+{JD=5RBMYdqI;l!#f^-w&23yl%8ax%Pz$o3tLiD^! zmX?XcVi_$+ro~nn9mL14uOB>gNCYBP_g?1>e!VNUsjOy`@h7JSUA=Vpsxc+E zu68rus}&T!KnUe`d1%`J{I-??OcEgD4bElwK24`d_iBM?VZECRioAdS{r9boJloe& z)7#nVv#kXknjw?6R4r+>ac}|Cu^V zW)E~N@wI_)bZa9u^^uvibz=QFzuz(J*IOMllj(j@@d+M?2TF`=vkqdy@z>F|b<2Wo z;>i1U?K-k&@67CCTN8`9AW-2$gaGVXy-osfaQvsw-1*G&8{=~{mfD%AS=pV8S$$e{ znMFUhT+tC-BDv5>?r-8FYqq_?>654Bwl8_Ah63bb#7#bz2+lS~5LZv6%3;ASHJ6FuKeD-&Jb+h7#d4Y6=3R3YbYEUZqUx@fxk_|JZE&3i zY*klr6w^*_x@c}5Q3>|#-90gJ@Z8&)GDxI|xpk_J?d)4|KJeIf^>wrm7gs@2wCyrd zV<0`l;8hVS%@}yF!RpF8`tmiii}i!LuLTo4A|(6sR4 ziK^+>&z@J_vAcbJ15GVCDc-wCDigV}Ha#_KyjMG^Abie(I}bI4T=+C%5-Ad6LnerJ z%dn0Plu|Ffg-^>LS^#HLncJ&1-O9h8`1Ws`mNzBrY*Rd573K|&$2A1DmZU~>OvdE2 z6&=`KyfiHGyIF)4IV%irh14yWjL%-{s>rQh`k9Y>@z+;RJiYhW!F>n!?Y5C(VrC|$ ziZWwL;snMS&rz9kys3H};%Si->eP^TkSvB0h8I=1VoM=w zXtYUeO1jt<3^l~?1`jR5IHVTR@{vh%t#3G>)M#C}S4>iAEdwNWI@;T-VZbkmH-vvK z%}g;4pn1JA8uh_84&cIbVSlo+d35N|{zHckspPG$h{v=URX*;4x487=wuAe5<}pxy zD18hPh3V>kmRIg%#a!^-%>p!^sV<`vQIZT1;U1tGfLG605!yQFRg3HL39Me3vq)Q~ zEM4oxV7aEo#@88>Vr~j5Ypak`ZFjd^bZH}%sk-Wo&+1F*mPKxz9LwfF28@+uQEwDW zaFfKA`CsChYwMhAjo#8PPdxcVRe$E$|K&0q0AY{>93v5r=u~=h-BR`>?CNi!3PL#+ z2szNCOm{vK+>ep7dY^~*R`(9I}<9X0pPAmQ&%GFEx7I#Y7Ak@#O5s;5lPE1r{+>gjDQ47 z+KRrOWqt^+5K<}H;ea~d- zk(Tv_B}WgS5d%Vr`V5!o>g>Af&O6@wo<}P{z4;T?vL4dqd{Otoy}NeyWn)c2Y-8HI z?t9mrOhD&2W+!K`C=jTsG72Sh-W^>v7(GW5ZW=5&_^e7ALIsu-t!~xSyz5u(+ zIh$3>gWld=fF&L%+xmQEw#JF-yx+7`O29_H+-x09pZZ*}HF_@xcreaSg0~ zVcQypiGb#Bh2I6?q6Gyp!~9p~8>+J|E4Qw6e}!oQe5tFNV>CtuN+JnkDnX0UQ$tzd zi2m1HMRj@#*5(psm>b9(krLVneVRD0s3Gt!!50L#g&hT5M?uOtc+SVo79cSQ_F>W4 z@>-o(==h{co-;LMIMUy?wfYWaGRzGOb%Ch*j_>&PRQ{&RsRi70j6WZI?EN4Aj*p$Y zG>k#sdE1fOj~wc3Yw7Rqy!Y-q9)0k>XP$d;cziS48JY(MH5r-)d_j0VeXmBrLZjt? zF|mMo!(jwFi4qlu}`4PuHI}V&ASnFsSp?` zZ%EMzVuhC^Kqy*&xylq3K15>J(@aO@gRE^V8O%YZT&9CoSzB+f^X6;s$e%LD0iDop zqxk5D9wXtasW&w7KRJnNG4_wLybStvbRGPc|JTuj`_C(%HB#}7KnI-<-2lzM{|_s_ z|9Esl7->aEsLw60j9wXL(29V|5wr30W!+gq8-krB+Q;;0pfF{ql8NDjqc>{FGBeDr ztWLaTN=-9-u3ijhi>YXU!@3gubNRR zRu;sNCjC)~KcEnd!K-Q;n(Nl&Z$jHea0%<6-ZbzxDb869BfKtcXUMo{GGHgfB?ysl zhBio~)qMx{T{w5)O|z`Qn$gjbsVO0D(Shcd*IqhxS}~?$^TepSO*1NPUx*ki1TrNx zTE2&&sICkoqYvEV6>V#?l1noIiNeu>5Un-(+_|s0O>>%+MMWH5@hxucVSAFgkuAws z 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%0A%n1(;$Y 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 z zJRc4_hR+sYOR1g@j`mOz7?iG3H%&`>m}ju+~sNuX*x; zS#wb6dHp3dvsb<{=eA{QPCL!(3+VXK4)-sXwJ5tWFyOjjDMMRFZ#et_*vMaWvCiT6+p|wDIQWRi|L_7H8?$a@B$B@8&e)u}ls+>iHL6aC$vGot-d3jb9@m-%s%R zM;?8I1e$a*W_P-5S{(@qLys-Li7Vy`c_4!6=7M!qLNpU3uT+DSn7CT_IDt2r5c0n;}@w`S5b0J+S07_NZc`tt{$er`ttJ zE0Dx2IVmoz7P-psb8dt)nAb2}cB2RobXti!8cS?BwxC#kC68hg^GDb-x&%m(tewmf zzhvckNWlXY2N|v`=#N4ZEh;SieaQvD^@NpBsTH*(e0&Dh?RP)ueXNTuPBfaw)@FX= zFP`U?pI*V*63mn?X!2lEv?|F-;+vC)AnyP!%{F7~i416=WNHx8G(;1rCD;4|X65_t zc(=T7mFv~=@4mRb zS}I}n-T%ll-0{YL<|wf?nV-*-1mIGE1p+IR6q_V*7kU2tUVK$d>*h2J7hB7@cr*$~hF z{vq%?>D0&mq!%%Y6cZuf8o#&_-@2q!KM(qO!QZ=w4{FoI!{Zjhl!KFk<8}FjD=hv8uTQrW?th77FCDpVdMs$7Ls7_xy5iCc z7N2vW@Q4Y=rRSb5l7XNe^k_CwQ~_Zj5}8=q9g(QvQWT>9h<5A&05w5X5G_zsdvNt! zf5pY$TYNslL91-_V@LxXB^yX66;{j~KC|o&#w_>b8MRxpIhiGv4ljWusj`{bby{qm zm*!JXW2<3*<+41C$X#**&Z79$Aa2J%OlR!kgm{y_0Iz*a%p6Ryt$;c?{sJe18H zP-3L0iWcjdYaa?06^1Ji|8Hp~;@%N;m6hR&^#;73ztEn=1*thPAR35+>u9<1EIG_u z3~{%|(HZhXKr8`&5;O?;y?})A49q>T4%rtzIHmMZy=`E=EZae6Fz`-{ky6flKoa?S% za=vJMw9F~j^W_FTelRK!Q_KeWzzmOU(=xr!5CYX2(uspT%r~Gmrcrb`lZBFGiFoS` zm>;dn-gwPr7o2_SrRSc;{4i1ER5Ln~iZHJIE-NAcz(8h|UE10(B$6+POg~qreY7qa-i9v+>#W* zK9Jpj#wpt4Pp)C}ARE{`6t%J~SyXNf;gDKAfAjg7ObR4&#@>AR5#ayH%%vh0XKb<3 zusC3_E~`a>%e?yBANdyR&Y6%hF5%CA@v8)Y+3+VE7k4`b0->!aA1D=!w_HyN4v-=k z_BE_cn}rM-h1<)B_4+ky*0m-L-pZgvy`iOIB7x=!V-xv>KgQ5(Wp*<4Y$d)Z-skrY z{-n}HNLiE!7KHqJQ4eGmcr3PBDhso$2oo}zkPOfkuV6f4dP0l%;A`MHGEIhj3GFl| zJHUXcz*;nz9~O^^WOcb3WJN}|wr!X|25w?%m}F)I3CZLGM#l8AjO+o8S@M{AD!|oZ zmKC)^E~N@j2{92VL%m=RfT72}XPmf4DJbEE4Gqkw*N6d4NtSMm@sPvG!dZ!K;5i6$&3-s*Tl61`Jx;`{X%5WjHYg5E=v$Vf_k;+(7TNG+9j7jo+v7? zQC5);2|L4G85e3Hm%^*1EsY7cy;xaBL#~W&LLM%qaOf14bSA@+NDe(|p7|`dXEu-v zh)voQu(mL39)X_F=rBC6@DA`hj#xwnEPsk9-6)7O4;5@*6iUM$M|=zNvYvOLCc1c2 zM{*vXGR#5v6kA}Y9d~@~wH1s_zCl8(boNCOTC+pLJUqJI^m(7bzCgpo(<(3=+SY+W zAGl*F!~Er4H?aXwM@x16>%I5?~fn<+_=7pf)qea3VUOh4<(m;Ju0glNn0FTf{PP~OACzBye7AwQE7c13Lp&$UX5RQcTCE?!Y zARCGuW|j>n7OYSM*{bM;JdbvL=|&7m@ouYlp7B6FEHFbdHcb?{Xci_&NfPraV3CVM zsV2cL>`qPHLL_rO&1^)IfoQ~%{IfJ76ng0{DDM*1Z99)3KxWt z&x7HL@`-arxCT$lpPaxgZB8dM!|ZFdAPtX8iH#1*B-0JMT=Th{7MoMZw%K%h{Jdap z+2=fmW<$~gf>K~Bq{`mc5`#quAQlkx4B1V9QcD~hT=fb=BSEHE!GaQw9`uJ9D$j#f z!4h+Q$dv1t&-@{aj?f^Y#G5>)%i~6o6UHQCtUbQ$4k){P$%UwtEz5v;V`LWTfyb4a ze|YBUo}M1YiP6IstT@o^cIHLgSv9H}>MuR}Tp}KgM8*KM;I>+>8FSG*qgBRQjxyNW_T<;yKniUrW-{EsU;AvSZ*cBDcyy=akn(Ugn`C7vIW#Vg93LZ<9JA^>LTQ7?9g7_hY(NE7fL znQ9DNt!)I0;0|`LUA-D7E^-epq1Zsq!ILX#^cZ2NKFCa#gs2?pqb!%WzHq$Y!G=6# z8ASqUyqU+O)5alv}AV~3t%VA07L^|RnBa;eY!hVLY z3x{VZ>eW=f*x4DzqlKRUS7{V1%3v=<4OJ&;YJ3wlStgumWW5@g6taIe9@=oIo-N(H{ISFK+fArZ%Czvd z!7hs~lMA;Bx1!iUDEz%69gnjCV4&DCaxqyXp51`9qZIO@$U-49C-R8MS+rv@=4CcC zhX(r+1VpwS<-F_;#PVUso%-IzH~!mB?(MYBsUPEMT*_#*`$G1GhaCFM@1ERak3BNc z4XBZDaW*HZ9Ly$BPM#L>l#m{ZHIjkY9Q+%`X0`y-i0y&cWLuYMKZq_QYldc3L-BoM z#T&>DrWKO|#elU$M&ojV%K(o|x(GzZ9su18uq`T7kP=uzB5;_-W&^`OQx!CZZ8EC} zOj|d^$EVCLHZ*+AtfOdC0A&@YtA^2?MS|&b1%dQ}O1TUm8o2B*E7+p2b9Nj~i;>X? z5>FmgM81Br&9_m@;sPEX8{6`;o4@+X>j)L>A(B98How_s_#)p%VN`AtcW3d~qahbm zC)Qtf0QO>~v|+;rmU>!WUsQAHXv7bd>TvEc@Mn(r7SeKI zL(0>pP2aF#EjxiHfByMDOQ?bGh@6yrRF66K(YtSi_20kjdY_vXTlI>rYBO1K@sg?2 z@Z%q^zvR-+qQhR(y@Lk^8O{tdSa&d}`2EpUtC$LxmZXi)f${eQ z!9^B>k)i^LJi^48ilmySgCsghi#lV`5flDRt!cT&DVe((CFukgcD#m6Gyu1=TB`{12RG4bKqQV%KN zDv(8l>oc{&fu!ucf*mQW14zJ12{}$2iCN?XaWxVhW3egFrXa&in<#WHJ(fceD+s|_ ztK|vJ*zCnz8kizTgO8bXQCHx@;O9X)CBjm`p%lf10(iB{+TR_*6955iG0=&}xrtgM ztW8hulPI7Kz;KkH-8d3W1cHuSwhU(#>bEPnMYUD0@ATQZK8GD|C@!*Wp_;*l(KWqE z7Xx?Rc1!liqgmhAUt1wY$kkV108$T0E!nV6C)NJqK}V~EDGGbyd5nJl`V``UOnrAGGm*a#JTuX0D z6KsaHQyj_E!KL%bB$=1U93k)b4qjXARx}ox@F9L{h1>zBUv%RY=di|<0mw&qmx@Ky zBVN4sC8%B1pRnj_!b0jb8(9f(c7cgS5#;(XF)UpT&Ra{XVnd6?tOYOOYOFmSNHc0~ z&x4K{zhXOg{}@?2cbUx9+Rx#O;}3TG&zAUH3M@-2i-8X{@#DgPaVA1iNH*|M*yNA~ z{2N4lLVGL{L{AG@#SGw_{%c2kp9?}api|L8isdDee9q$U!+o)0;BEZNl9SAcyNNS-u8+kS3G_8oQ&9@p^Y*1#HIMA* zblOJ9U#-?`4jY0DeVOGT(#B$pFzS)>yibsn+m{?tAdJNO@?@*go&9esuOM zUbl|%so+mG07S!Hq}z@8;tQL(V(rQ$8&7k4S}cF#*R+3_Tm8zF7@^Hs8!tHVYOOOj z&cCpF=yl`qPfvUAgp*G^0mA*uGc)MX{hbpU7G0G_7`Q;Xx;kH9wJNVxZdSbLsVHOe z4N*iyEwSHvJAZxskOMJ3g|q05KEG$buk0vNSKk~ST90ca6z;|vAV`dN3yj{aciJt` z5o+D`l|TOhMka-`@OhRP$%%NvFvayX{W^aY-XYd7)=;C)h2~@MzWHuMr$UQhrPha(JoLpAx(q; z;KYWy@$Q?h5*ICDW1L;0)JPK1wp+|)Z*)sr1IcNHaljHKE@Q^tpd${@5s z7iOkqvT+unLRE`-`0YzC{!#Xl(SY(Qmt{G1jqTk?z-Hz49&DEHR>lZ zB(Pyn9-Q0FHKW-+axZQ@yFss3sunvE58%2gIkVzf63e9lKZY}Yb=IuM9(@GS(b?G* zi;jwew^H_cJO>_h=v|ACwb)FtOu57))pe&_w=tsJB8=-UJC|*TE9Ja%8k=nuc-&HyJWWP?I5yvCOeS!2R;s1n}@EXFjsI;Wy5P*)>HDMp< zKF~L`iV?)N;e9dd0eLsFxAUm82q^45*qKRy_ck6VJ4hSh@hl$Oik-l!AOAyN4$5bP3hmGzJFFc1K@K7qQ~|{_2%g%(Mj{u zh;pi_1lU?27(zPT;@gKiC5-M|=+(htBNj){jJnMq|-LCKgSO#515l z4UHzUg-R@;mdZ4XBO+F@85#~Vu{rKn6?P+)AHprMy$E{2Y()Bq)yaXSh_NTR{b*@I z>>2|ERS!2aH|Gh^95@?bom{PvWRsDmWrIWrgwtHej0X!Ah#=CQQk>nSQQ(xs(aYFb zeMZdH@tYA=E9Ud5e7?%H8yKoMf+jNU(GaPWR8uFf~D51ntptFj$O@e zh>Ro@LSX3f264uSr@_$7Ws)q0bJ?=ir5K^0RzarN*0mZTTqcwyBi$W8wc@1Lf!=Ds z%}O}e%AAcq045fmBPXsm;YU0^)`~c&8gy1A#Q?V;yGVOO7KANMZ9OkQs=~D2YvIx3 z7uvL5u;_;$dlCaiUFqr!V4kwM#fxsH^&N2*u&eUmuAmp;$`y^A@GXNcQ%W-?uC&}kQ2`1Pgeq$C6-&{c?5`Gfi)^s*R zgvQ(CIT0t?lOmbK2Ov3{;!VfbMf6kznpMNXK{G5!b}f1a9xA~=ks4*eszD^Rx-(J> zNWB3AWyDxYFjuZZDm4yxp840ymwD`_Mp=(J6Eqv8DUn2jHXfiZ&}^Zpw~nPUKf1!2 zOciE+X12kUn>`QDv^d!R@`AVCNS4YYv5|HE{eYqt4PKwZpqTI4wLf|K%RBtPFK_?g zw(}p`Vg8d}+KGCG-#;jOfMK%tnJZaJDcb_v4SPWEcUU|&GnO?Q5+en;F(!fGzxOzl z8+fH>7O94;E`bo{k&VD>v|If5Vuo=t&VE@!CPI2;OKy5yfB4bw_x6lm^ppPrf*??` z*MW;5k98YHNM}NEWL_W+6b#6jq8T83y&&2XKF9w6&;UVxnOp&z01HMVDIsK`EC@lI z((=PfAS9VYJcGBBCIA2+07*naRI0cWP#Z+FVh0O%G+|OBNtw$EkxgOi4fF=qUDz{e z%2YXvq?K==^DxzLa`qLwij#qoM0X;Jq}5zVse|kg0Sv^WV$>>BiD04`6PH4m@E`P! zX)E4po|8v}Kk^YD< zjj<(4Pzx40@db$+7ILgR9~f*(TrIg>7R_U3Bx%e8==pocaYql1#u8((k&X^On`_BM zfwxwzEvofE*nqM^RQ|q)bB{ip^#=TkTPfvhH{5_lDgi9$@6V6j&w3$k5H+QS9#1_p z4{rPNTYuWx)#xugHrrWp42(1c(W}K8`LmESf&ipITfd&x3@j55J8=V0TP)%d4VBt- zZ7zgM05*nCkfCBV6H-PHvxk{(1W-pukf&jbVCb})H4L-e0Bt|5{T#mdF`m|bsSkWG zEFsb-(DETg)JBHMETc4&HvzR;aTdB<@o1DteJkiqO%L1)<|-wZLIYwqaUcbld3Xf0 zXH_ivx(Rjz9~T!8s+2b06u3}Jj-E}t4+u7r%yG1#QbJ`AF^U8YbVXo5d4ibB4OuLm zVrUzHZx9tE;3&RWa-02L6kX|1MU+R{4^iP3%ae(M!lT&pB>h@9)@C5XAXCkt z5Khf=i`QG!C)ro1#d3eq9JG$`#$-* zCnbhJLT|B*DalTzG~+9~?{(Xw{~gblDQ2_UjQLtUUzK*QtwrDE^Wp2eizl6G^*Wuv z;z!1!H{akm{rl^ZSr`ybGc)-TPd~kdzPb8qd-YYD9bR|hp1bVxw}!hw)O7^_{ZzC- zv|T!4iO4RNNZtXN%9TiFkWolq;worE1+`{%O7K;(5ixElGlor|?3BvndXn+Zpg7_q z8<3J%50t;KSh8f~^N_(*){+)EkFC!{;6xR^XwXvvLS!VJ%e20~ssDy1FzX?7XgROu zm}34EtX4Q{p%|x=pB$1+$vnUuVe1ZuOU>rkD5Ces9+0g74KsN#PPBS-66gsUA|DT| z9zqD5fnm@1H6osFVw7oW7X@kiSCRGNlf6J8TKud=lEI zjImmvkAT~Oc@4qA?O;o&zudWKQ3x|oju=m*v2C;jq$(A9uy58EVZwe=B$tM|pQhLV zTA>9-4_i$%c&utL9r#lu6N&(8n6xcq8!{@{LBaq2(jW1kZ?W|MolmKe0u(@ zKKU3~&HB|E;jUgX)ge^~8X<;!L*7By4Sfjx4*+Yc#OL%~`ijr*H5$vF$ zv?x`4!V;jz0>OzKWctkJeGmVbD`nq%p8xBA;h|*J>9MRNr&2sNKJc}{^0!lhh=NiS zTN84i*1ldRcucbocsZ_gSr1XBg}9keLM_lAtOuHeY9SRCh7>d)|H*VkGiTm0C&{1+ z2L0=XA`XfMtLA38;8fh=r_j)NYNlE&St54pwhJx@l$wCOnItks?Tgpv#{-kfWV_ww zipepfC%hpNsprY>rTJV1io|t;wg9RKD1wn#QUc7uAW$VNBI}1@go&BT6-fs5I$h;_ zjD2deTkJXzd89cz4kfXbQN#=ev^Nq^*(B^6_A*=_y$kbDh(v2ZL}DL1|KNp(vtS=6 z&%b-q1Ff}$sJ``$LlKWxUV9ze%WO@h$GUQb4L@IMKl-R>U-#U|Sj=w1B_I`f?6Xun zNy164Sia@<=Ds7kJ@@N3n1D+LmY%JH9AHiZG)mwvlc6i{_gw1#Yl8i_@3-)%lc8Y754UEiyMv$% z!n47S#Swu&8t*6$68^_MFPJF44v*Jip3@uhP+AMso28{1#7FSUfv1_5CCq zR@b{M((IL;W!Be8bt%$R%B>Vj`BXCd>Y5Gj3`gUjj-^!s!kDcj!Amx%(SQ@3oyG=8 zrUY0v5=%uAz#HTFEsc&P;Gxh3F41_p9F%31Yzx?6N097ni6p}pp-7Pc=p`tG>?Z@T z1_n}XIw>``lV0|BQ}UlJ%Qp@^_|St6fC@Qb@u?>Z{42 zEL3WPWNL^8qdWVDO%g+9&+MmP&SOuRfA_HHVB8w*&8VxEvMCzAdYNg#qpGgXmw&fr z7%wfVPpuIR_bTa33Jr&Rcy8%&c|@Xu6$cVBY!3GWtV|YDbU976q3Eheeib?r5*z=q zxD`-m$<4xl1gB@5lza(W5#B(rQ_4qJ-j5#nKbw(H;QL@4z!%XgATnkd8d8jg5^0ip zquoQJk%HzLvcsjB7BY71(#;T)s1DvYFEnqxrV43ZGOeGaUNKS6RZFDuL5~;84tu>D zhRQRi^>ohJwr{fr{!lDVn2zKvaxY5VNpllMB}xU;3|;cCs2w8rML5I5-p6R6Dr0C^ zdG}qmB?QvlJAGir47}#=JBX5W77R*LnLiC>AMG}qokogOz-J@neq=`H&lhWM zf1z0>X>W7CXH8l~wv3>dkaLwANS9Y$|1;a7BiD8Xd;|(#{oAX)AT6kE;SMj`fJ72; z>KOH`V?qn(v(uq{;*p|Df<`FihA4ov2qzDV0a^=W1b$RkSe<=2_mA4E>AvcQ{a#Il!b?nCi6v-s_YIsObb+U)|DSE zB&EkTgekdQQuJeWIB=Uvdm*pCck`W@m^s_xf55S3{cv(@O(Ca!8Bc>>Zx~<*x8?yvO3?tV#1b_7RCEV`FiAdibf(Dka2#X3r*- za15KFE(4>Q28)WlOVkYNXHg|fn9ze_|Jsp~2*5Fsk+k07_hc5h{hSZH+P{6;zw}^c zw=p)H4hHZ-7#kT1DQwin<0*kCDj6wKaVVIB*q|iA;$fDo(lEeI$o}X(@JlZF%{c7#!a0O2L+)f9MU+NFPxo31VrZ<8k z;)79&_AkbxaC5C*+>ler%a_Wy@vEWkvyqPa=3(N`A=JX}0xZT#rtW5=D40EGp&46ZriDYNHn zmWV|XnR3u&A*GkLd5EN&Us+4+4+oUX8OUcX$yC!~8(wmS?T~M-o;|%&)H!q*dJ_=1 zK#3Al3_mGPMB*c{9~qQ{7}x`Rps9Qk4CXaXW(jQz02TmVRa$vQV;R7MMFLK(qqAo# zD1Kx#hT9$yPc#%CO}0`=;t0c=OompaN_3sTV6`ZvWR&oth?5hA7Xs<7Mah^w9l#q_ zSAbnIN2C5teUiSs|2MRdznM4*c11QzM^>5-U|WJe1qL;p)&D^Sg8CWqk>5N-bU4&A z(X;XMYSu-gaox?gwI+n!f)z3vOIND4GtN)oBWTnI$o8kc2PKwy~{&~PRzLQF;B&UMZr=nAf0!?&C9AjkEXauuya4p{d zt-}`*uYhYH9K~+Y?3bV2bnA6D{XG}xyT{ubw)pH>Zd4eGc`m&qQ>edf)`d%zxTY!T z&RQHzrrz!d_ii@N-qBaTfBEcH>o)-BN5sPE_QR;-B9;x*>*0-!C*yc5sdR&74~~rO zw9`9%GrN1bJF3NIz~6n#%_>R|Ys9DQTVgzjDDHyBBfAv5O~KJ)pSHq;;uaEX8vy`F zI{724Hs$J&KKay$1)_9(Pk>9O*1^n(Tqm60s0aK$>`~Nt%BW%LYJk9}S=O$*@s?|@UpnzLUeDi3fBxBytFP&xAOTlcEKxq^Z1P%% zzy$ zCPE%Ar(@xMM#bf>8cb`}tZb;}9e0v~MD{N13XdpHD1IHVBvAcvqLK;)FT->rxGSt) ztNGwJNi0wU)x9`8q{2{IL@J$KA&dy@q4y1GQ~#56Hxi#%Fld~x0A3(wfI<^GO?3F( zRyz@4(Re&QUuSoh$!6~f`DXU_B8XW45@ksg8yXz`{9%93_uAAaAH}uFepiaj(~fl0NaYLl4@YWC1jO)F6?JdLxW~;tAugL!kiqvbkioTmuHm6p2QU z`ns`P*8_Cy!pSQj33k#wE~fdYjF;E#vYr1!Qjp9c-;74RbHN@SmJ@F8blPPHz~Hgos%1Psq)+3^BDgN$4-pT7 z0w7&skP#38{153*o^2M#6Dg`z3z?0Gp^1WTd{mqC3#vlXImv^-R}hQFX!oAe}ns2dqdVTQXA6eHA4U=m}IAyCHXg`&}Hi*{r6$==I z`VnFi_1clg50`QT&M0c^ciBvWJ0PKP*fmPMtO~As{8BW1MJwHGu07mg+kDn^BIuO4 zop-j?pac|;8t#$i!PC2Z#QWTeX?mC6ub4-3Wpe%T<^$S8_}`Grmsm_({m2#MJ-0y< z@_Ribz2VFf3TP05Y52YF9ztMb)=jO0F=`Dq1PGd7BnHI5II(jgJMqw3z_EPqSEW#R(-0{jHGfTAxaAgJR4e0kQVd7>qO!a-mfxg zr;;Fqg2X$d5#}-*LD3k})HqyDnioosc=SW+6X7&e`V#OanFp7sM9-xwho%dO;ivEF z2qaP&a-xkE5WxiRYHG~GM~=eOsCeAcTew^(#np|9fM`78SHZC&xnwuI=kEMxS2Hww zpZ!w+w+dB0Or2UP>g(mP=nALZ(LwE(+1xj<_UfysLsG*5UydFWit~cAqd4V~DlN(l zK(b+~QK5h`jybMj)d+ffB3WIxj#z%>`0v&ZK46;9Wg8kDC4a}~a-qWDzi|_`$KPqj zmX^c{C^=QC)A|MP7XCY+@ddP*gE8+a~%x zt&>?pnsVaq6PFpBg+wr1oRl&ai$oI@f!dM+6!JXtRU+duOOid;G`k$m9e3Mr6CL=! z`q*21@gUO466q{mA^~e@eI4Zof@x{aOv^`J^SpD1s5K$GWJYiIvO60dPYB-+{WkIQ zqtlNhi>XmcZHyORRwT$ZmQ0iU2a};vPpbhE>Vy&{#4El`$+IXHBz}G^J8k8N_0m50B&Qj|k6%_<}3I!p5ZD|=$ zDwQM%RHpEr>}o+x!+;hnTdy~yNx6?4=B9Ll)9EHA;>7!4p!GCR38dH3SF#Dr&Ul=03M;;0~-XSs+Blnc41X41e_vB)gNc`>BUWgxktS(pADR#@iym^0nK>*UO`I(k~P_0u^ zYQn=)C>OFRoRBzzh)c2$z%Jl+L?5f3KZ}X7D zrQjy$2!eU~DLU4!U4si~V4!c_tmzCJZyBV8Y(%BTI-1NxbawUto<*tckIq-Z-3nRS z-QjuX{FtVvQgc9*?ZxM_JMU)CXYFdXcK2N->``5Vc0^K`=5Ud+Mb-`pvk*PVss_54 zA*}J^g+qaCM)$+ht1g?}?;V)lYu@*O|GN0X8Mviz<*Rwh!pKLWq6^Kf5ilV$q|2&J zx|P-q;ZP7na*h7A4Ip`6=)(qbP6>vg666br2$FEgH_8(apUgNnp>uGnnXKT6XNQM| zv6IBlORHMAlu=L56$B+%BstQe47#)!zWSlj$cmQ%w@hc#nXSLD_a-#b|NK!!5?0F_ zMuy*bd!1ZO(|OQC#3wnqgQOj*DTv*=I^TNtjaNzNmptf(!0i+&4WH9~?{eMBl{S}S zt{eOe$2M18N?rm0;QFAAk_;3PGM7={;Y}in!P!Q&M{Gx938zP)5#=F=L@UiVf$AyM z-tOqi9d=k02PbS@Gtj9hAoHT0lI_|Q&}Fzkj4l>Wc6D`7Yr`I3Oejh?_z1MA1#APU z))s6HLDvv7hm84g8~@*PCNNRsSC}|y?N|G^Piw!_2i~-G8tq9^W9syQK7=cYkalrr z!vdr;6s8fl*Z3Q7wviwY90<-nx7WLFI6`(D>C6+Ku>GbJKOGcIZ{)C;1Bil16?kOWJH z_B<6JW^qqv^Mz~?Xm#2y)-S*i0nPFqg^nQd5VnLY9W67ze0+I1bWFKEB(hm-Scx6c`0b$T&z`)oTI};}{a8M9cHJZuc zgTMh7*2+F6v+7gkoOqlfA98{zb0O-oFRmC)v3GzCgKlEmw@ z_x1Le=xf9l5kCh-P?)wh=?0YUMd3}WRWG($O|WcvXy zFYV5a;MdZc1+xhYp-^l298f#Smc>x3)h&3F8*iflKyY#5j}Z734E z>%OSlKReu2!ZsU>;ejs##W_3{3-~-}EBL06PUbd?oplI#$|f zq8@2)3iJ|i+ua?040Vd4H?>v!i06f`qu8Ovk`O^Go{%t+ae@F|0p4d)SYIh8=LG(6 zm`nkxfk9KjODcll({)JGa#~Z`1l)^}Ga;~TCXHuN@g?lWYK@FOrIk0OCf4G_hPFIVkv8-36+;gNm74ck;N% z_7yZJcD7_e@CQNw`67slCbdHEMBt&oI8y|45^bQ_JaLQeNe*>WIZbN5(Fg&c1R+$a zzxm5RnL73mQ5V*h1X_wwrLx0lbUMvn2)k+i<41XPOBKPV>HsHfrx4IO6;J>m8+^vh z6?)6$Splu2uKn3Ao!$NKuAu7=O^}EOG_F{Zx_z0AoHPn{!y$jYGJN$l)(|aL>vigK zA9~c{FdKUOPC@}5g^-r8U`i#?P7p#MKO(46Vb;GD^*Rf=OyZ7P^jpoJGrhZ$;(gSX zd`^YUqu_{%s|P`YFtE|ns8je#Givxf*(_X4+EHQZ(X)+?B0+jlQOO1jAC17INd$TE zW?f#5m+SWr<+h%iZms&b)jyF4+C2d6r?sEM6+Xt(+AqcR+i%)Bjd&luw_s&Xe?ZM< zfqy|(Qg$kNH|VQ#o%{oslj16y5q$tWJp z8Jo?CM@Cbzl8OFd%3!`~$i%Y>J?%2JOD}JpcV_qS$k;1yuJ${Ctd~r6%rpE>*lD7N zT1+(W!7jxZzz%VSeZ}e+jJm4xUVn}AymRYa0e`6&7ciJqS}@_xaGQ*5n`VMcLS;gW~oDMuUsoWYI@K^tY zv=rO4uCNpt0G8o(3tpWRsk1<>pherq4 zPwCjngW}%yx$J(oJrC3aMU@(+9_^+D^GMTYF>CY$#Xw(SYtds((tzmuQmcEV-6X!% zVm>?7yg;Cl5KUxN@rSYi%#?tD;WUnE@hJSXoJh05k&G zf;pgQC4j=}fFUAv0=5Tgd$pd(s~}!uZ+l%EK@}%GvG)lD}5%TjttUoC;;c-Y9oo!GkzF|MAn(@x|MIgMPJB!?~}Hr zm|zY%F_XE_q@^8XD)at6a_&sKjewYCR&VbSM@7aWyt-FB;}VZiK}Ar5x6zcLF)DDFB(#E*_n;BuG?0$?Xj6|`!!!GV7<>E6G=nzeR{*dqe{iD;)TtToF z#ym7Kvh3dJ<;Iw=D{9hrHMM?okRXhla`~ONoxAvqTC+mii$**WL)=216sfWxOuIOz z*@*Q9fbyhk)+)u#=j(?fqaLs*i@Cn8@U1t3Y89rDAL=UqAuLGvWux+>@l+w2C|c_I zQZ8$uEj*uN2{=tg1=nsA9&lLcNH?V>ViJQPQsQ>m$vUQ7wk7|_ z6(CYB`TCPP6eoBBHuP=1&hz@KV;$0PHn{f9#1BsMLfOzN5f;U4D&$r4oC6Mw7!6*3 zSA)Pa2!|*s7{jsyVM-*cX~pY!BS=+TyGH-3UvDvEhJ*ajTA4;7)hm9SEahx08UamU zyUK!-dcd}agogpKm~ny%aDE!1@BY?e({sgnYb zGua#-Ai8wMaVOVA&)4|y$3Go^r~S0{b2#~9JgxmwT)+LM8o;z_J{Jl&X+cLxD@#JFn2FaMzuNe~Cw@Bq=44K5Kj*`rfBfQ; zJni3pu#i(vhgaMy0EOfI7tIizS%hSB;x#|y`JessUuX9B)XVj|m-W_+X}>S6reoLM zgl56KLW%lg7WMq*iE1$x2a0UooEgV`XXu`LItMxnWO^casR0A3huRcMTY#z|8xI6m zqF4o+?wxnmpK!8z*DcD+E9^dh0Db=ETS;T7i^S4GIxHj@(Iix3*je0RQzd1vE0`9r zcx)JBu_lm4C{iGIGdLrT4t*IJK{1TOY6$A;UfM)d(SRpw?o3>jPxxyb$?$xyhXzuD z_CdH1{U+#B+!_Wk(Qne$F}ixfK0JQ_VO1+&GgGste8R`|u|FRCu~MftrIamT3gSVB zn@SYP*_^Ci@P(~Eirc~ZPeZ9spg`{-jk13@fU>+vU+79HfGGr-HQy+H-M z6w3g7k5ilV1@sszg3dbRbb-Kba#9LLbkm@PKJf)olfZ}?g-RLcACV56e=t8J2;IC> zCP%Jn%2P)07s1)*4f3h){V~3?-mS`baQWg3!_#Nhv zjDR$K>=gD1zhEp|c7n`ovmpd<3ebxV`s?yJNR*%ClM9WTOjll}3wAq#-Ksy>cgJ#S zY9u357`0Bn?dNpw4i(&P7fp0X``>RtWc@k{SsJIE_#Glx9d>iTRCnv7p9>g1SZ8Q8 zi9%y~4{g4{?(WQ%V!P~CJnJlHcW0M?`AKS{ZteOJ3TniJz=)u!2koz<*CVb@Ndf>B zooXDO3k+znY$yX@hml`|b%-+vC9jCAGtkYd-0QWH6*|eGZbGNc?g`-fv5^j;1vwse$EW_^bi2EN z0}ewB8DT5c#!9s;o%|?cGLY7<3o3LOY@B{Z>6BB;UT@KE=|?r|>r0)ncodU?hjQCZ z!47YczUAbN>d|Nf(M+11N?|twtxnS@3Gv8Q&E*+k(4Yci7wZrGX!%Zj6-5D;!8#bE7r1F3DLSeCfL!Rssmiv z236Dav!U}Vb-hY*Dju4u$mRQdh{oc4!#-#DfWtmKX4dTC)g=Hcd_| zNvYD`F_KWxh_>5uuBxiL?>l6)VxTn!*Nk<9{77^j62mt{+}Nn|E94x}<(mpgDKZBB z92tSj8#7o>HVpiYGGOxaP<8G(VC zr?sEM$sgls?U&;E?Kd4ijUovqf)?yVz9D*K9Nk1P!l=?_$*HQQbDY7-hrnM}i!NKC zP#cOCriY!j%*MRH|9_uXtJ|JTW`{>tp0e0{_F1(z zRNt0)z-6VbFck=l4mL3>eXh zwO%cg3j3KZNA#`1iKCh#uMLK^kt~V1SVF`A>76EdA{I*!=t?PyU;=A2oAp}tGddMI zJC3D_^n1n%o+87a^e}pYN_<_MLO~RF&4DO6ITD?c*wLhpS6*$t{Try*<8#glxIOOpnD{BsZ>K9bvbjbBo0g!33InT2dK{Nw zhe($zLj34+{2!1icrso{_cBCdamhawmxvB&(5#i;8O>FF&Pfe)lR60pke8lu;B9EW zZP=RAN|sfI<_wJ8D1FF5y=>+IXiBOvveI32k*Q=wY<#+ov|6zTm15I`-h%Q?Ko?z{ z9ROKPaw5Y1d}p7fqsw&TEwOpC`eyX?H5#7LA@?2&w$344OI4TCv+I{fs*O}UO``PB z(i>-BE#n13DREd$>8cq(H!KhMH`#G6N;2?pHtXLw+IIWWF2w@01bee;sFx2sh(0Dk zEOf-nNU`Q&eT~5V6B?5WU-|$czQ9~2q&!|;_ z0gBLV(U}WV4H}V^>*?|utRMl2mIJY)GFqDD&RPxc1nj_U094E<(8mV-hJ3Xv;DDFp z%QYnOBv*aPoVFoah~!WUQL+oLPk2B48zO^cOmd7{ZI7cR`K$X<G=@_wwtn&z&*j+ef*4o{-zylZd8&dac&Hum+SO-IS$UJ0y$`l=;UmG?vQu z1)Y_W-sQ5~d~0ytteJ!p6o(64>4NjoUr=xe-Zh8wRkzLJby-MGHPa5#NQo4Pu`duI;6v-whHk7e1-(F-lFm;@Yhr}(6`H}&{wkhL z*_f3k3L~{}ID!xXpg{C1ro>p5TDmXH?<5aqlB+&tP7{=*LcLV3&!5>1-?Jk|iOdoTBXiZD zr%5C*__0h8yP4e!=8aG~*TP0nG4kkeC|zNw4B!o70!BL(`0zN*M&Q(3MvbP6P86vr zcK~?@2nudrsvszTBp#yTKd=JJ(TiTn~{G*KwWl2dLbK4L&L z{YLMBtdj9GoK@6+d?$3+woNuk-eBV)D~w$ z&1SJBGij&OHLbh%J0}u>!q=0by#;iSOFrze1RWS?Mmw%p8b8+Sey4>@w{p2LytXm8 zc6HT|JM`cR&QOQsRf!bU^aG9MifxnDotO(&5)Z zUo<8tU#ur{6$CfNK(V1qWQu_6O|^;msPPQviVl;mR%%w`IWa1c2tf3dt904=jgPQe40NrsJovsk_i4>w0nni3#EoQ!^F2Nf#MO zxlMY~14)@Jp&u4&ae)`shkQz@(&*~3O}ys#)jnh@COORZOMUqBkKb{Ur%in9@$a_Z zwEZ+YHYJ5Ac9SY0a+C%s#^n`cHu2>4ON~F+!H2F2I0??$&`R#O*-ryimmi7S_u3m9 zw9;O^!_c?<{=fnI{4t%$sr7nysN<|3N=X(WNK%0+G#JIwcdjV)_ zmC^$NN0yYh2pv&r3CdR`LEcm?z{Q85-AOFQ2yV41UN|j_hmd)hK;120^ zewUe@#;w6iC$Wc~7Qj_ul8+*etJQp^dc~41FwlL9g?1XB-)-}sF6F73cz&E-H#moh zd^Mk?6RyOA;p(Ej$-xG|MG9|k=(;+5nN+UBY9Nz<^-?X_U8IHJbE~m#ADHv{`C#N%TcIOAZF_H z`$r?OMaRI~LPR;`k-bR@`bFKIhzJ@^t zT8i08w2|Eb{ET?efRpU$bcd?abw>-Fd=ei2|Lz$&>~IDXAR1kMtWbf_(~>)h6iyZ{ z4IJ~=R<6Q0-Dbz>aQv{R`s^R`exI+uuNU1D8ryQaip@0GtQfZ1-gD5Q8Nc5rk^%PI zY~se*YIYagcvepcjU1e5LbSXIzowbXJL?9mbV_Q}ciDZV06SUzaQ5y_prIQslDkBR z8-iXpW=1wAu6*_`_5u4y5>#1Z@*QaRgJDdjH)5iKs3AUPB1XgxCt2E*E7sFwW@jfm z)c?C>`H$~ZBv39zt~%m=64iuJpxf$oxvD->H{%4dkrHJxBc$IR$qXk-DYuIZM3=|? zAK!TsyMUT40h4S}NQ|Ow97HItbIc}E;wCwgWGd@-*_QlRpGnlqYMp$`Cw^avr7{~L zWBA|LP-mY$-RYm*q+d_7w8Qp&=bxztJubNsT6(ei&TtxnE>e|3_6|XNK&vdK-M5+k zy>Hj&%?{^NNpj^nyq;r^&8=Mps|fd;aPBGflls;OL#=uIY_P37|7Tww+XVME`P z)i|lC$H+EY=mW}@VjBQIO?U%AgDT9aHk+v<;2X@Fl=U(^Xf%Rn+OPx^|4% ztt^G!;Inl~sZx(O^03LyXMa2<0hK9pGcmNC43Sbe%O4+Nx@oc$b31<_eAgzf} z{TdA%Ps1s7=6e}n6Al0I3265Kw4c^~4qyKmPiwyv*Kfb+_-TY!oDK~DMWP%CJ|jQ_ z=}aN$wIU#4GcW~-#aK)ZJ!pOviw((1BPn&_HOH^^AyYBQVYXlD!=Hcrj*~oX;$x40 zxBaH=r{!zLu~gbeA&ikqNDW)6LE0Gp8U4hQ+b=c#V39=X;Rn2HS6SzNc4k)npFjTD z>2Wy~kCU7_$dPm)f{uw;a^HQe4?g5gr{D1g!jTc_Z%4!W@SJT{zVtln13`+}T@@Um zY@yoO+yBg;{9Dg|-fT_7wL!Km3viu&{Tkh9=J;vb>fZj#ssa(JmaCNgNcDZ4{80QMQ_u!LjFLct zxMMA`e_;!_4`>rl)|8|?fRKbEfXWYaq-s6rbLI*x0BrA5CjsDsF3LsV1y(CXU}Qm{ zLSTSS9xSJ;Gi_CheFKfGnpk>`DN4dwJT`0QoLn}EK;de3=+tVYKk1@F;!Dm8y0%Ix zHn97fyZqNSsaO=B50PiQHln%+YnB}Tr=I#9`s<(nV5dH3X0I=uBQL_b^Jo9d68KVU zdvCVGg3aFB=&j8;^!ooo{k(@Ng|dTFs9A05d~PSbDZ^zS5wUsG%z3As2qzf_qCfAF(M1*Y3;Z&K0%I1r> zbjVdJm8%|y^njs}GpG%)?2y+|$b4A;!rm>mZ9OnMhYpZ33{WU|ixFYa%$e2^Nf+^Z zpcK`?6SDR&UtpbU&P1pf!l0uahrS`E8wf}>3eqQHRT`~y+U=C+$D zht<+(i7!re)u+sa!5|8_2dPOBt|)kLkPcb2+D4evC<7hSyThMrno3t+oRl&nfX6GP zB^T-TKTw4klcclo8;$89Blo}u4fMcX`>k;pa(v?R`LIQ^<=Svunm3b$O&}TP9n6bw zVNB!aaXYQ##s%C87_S0wHo1d#@=Yp-$*rU4hKK|9GRQ%YIS?3Rq2g1eFdh-$F65e4 zt8Dx!cVOs?R0R*m90NBUuRii zwqRlrovqKFSvz^L{YMv+5(O8%kE)Hzw@<`007@}mDj5`up-fY-B5-jH5}fly0Q7*I z*U1W^$q68~_$bm@FmX*C$byqj6`e}4k`&hw4i7Cpv;7$%XGw-*`6cX2kDziH|EkX= zxPK&l83ZC+4;(CYW7R-MxFg7JYro2-{|>D~Kp1Xj(z=JA<@D(j0S5x>;xP(!+`) zM76HfETj)q4`Bt|cePqZ1;mo%U820O^75`<*qMSaf?PZqg)-*TPj7!jBp3uOCHFX? z7zzH-Qn^8{L?}QaQ5}K6C)7Sj+w4j$O4Yp0JZ|GpH2lXeJ^tzVJME{npTo%?<7w@e z;`;43ZJqYQlfU9q%3-jEhQSNyH2W5 zn|RIkn@;@nUz&~fOMS@mk6*dVv%i*2WfFF)vgK!u$=GnX$1k|UO+#KabOdYpoa_7xLf2lI zTRm9Kq|(qQW$;w4ki?QJd8ztI@5eP${ z5<3?u#Y4XD*)U|}=`rchg9+@B5)1`UMW0b=AyXv@8-FVfZ|ojgB$APxrjzB=IuNh; zfpg5O)I!$*+J+Mqq_MIwl_4z%4uWTm;+R^gVOY6-40vJegrr*aDwB==OqmIbB~_Gd z)PFL^$QsjJVJHV6M-eZd)Un-;zBA4YOz-Z%3j{>U4cC}F-f&abX*T-Hb%?OJ_`Iyu zLAZ@Oq;}ii)f={ACqS8)92yEsLxMKI-qO0UN(XCLbUj0B8Gw8Q_6lf2;sc_T5$PHp z9>lVPkHg!M>YIONUi%|r01G@iaHCR7CMeQk-r)9DS@61n^mlnfYb-1;2sBr!58ZQP z`-L{$cSK^!?xyd#bVFnQpnXa6GTRD8gu4Jrl7a=BVDNO^!O=j;Je+1UrEa>T{`a1o zx^R}uhm5``sMZ1UZs&-{VQ>+@LjO~q-u{72 z1nernNr5F0NJs)j2)%3}RG3f!WRb#7fT)b^fQT%uw5#2D_WM0Eo!{vR%4%l}D&iE# zzAJ`)+`jj_-*+DWbH4MKY|p*pt?f6yagG-TrD@rw_|;ec?BRFolUF;`?Pr>;W1NxP zJ0j9-z^8-0`R<{b1Rj9Mdn`6tje{)!9{Q)OQGPn5l1Hcp$da{lNZ5a4(&nlaoNS2Fa)4@>5 z_(p7mDStK+87l8|Br?z@ph^OTyopjEeqwh#q)vFjE&bmuGhp#RWn-hY+8k(3As-%O zfC{E*Vb9bJ+U<1Hx#FPT`>nT?$DK?uf9BSB^O03Cm(jijVI8O)V0{t1D^E7w`qszV zn+RgK9QyfY7po<4J&M+l;0}XC+vBY$ z61w-mFw@-r@m8bRMD6+lF)P9#PR>Y*rE0v(XA-(73d)v&Ha}l}V!ip`CvVw%t!LvW zEMC#zzz@OC;>Z57jXb}VAPG$0RA`Vo+fwp`F=kSk6OH~<@2h0L-D*D5RKREBUwx?2>{sR%mk!UIb#D4& zA35{zVr9^3ObImcAKp7uqO4jib=61T%HI6ZVyjgnzyT+l@IVeM8Y?u-@dW`l9mwKx ztP$7~J)ISqMztyF+I2Rag~d=5g%fNG6pGne?ZDn4xmpxjbh%==f>YSh3_;>Ao63S! z;o+L-PqriYeJlxIAB{|IE0b<^``k&VdcK~z^l5G;pYJ_w?>T?7r|rF?>+ij()099I z1%wBta$d+2fe-hGA|z1E9ql=iEN|0yJetoJR%8q$lTWTS6#7|=;? zFVRLsbRxRVt38*|Nsl!R?+7zu07vNmaCEu?V&uyIpZJ;EI3Z20%O;;|Gy2?d%;OMT5}bE~a^b4*o~n4iorn}J}{_N;sG z?_j{9aZL#XJQfd?uIu+~*%CjRHC(e5SdaUcwM?*euV^<4gbL59^&iSl8%u8BD}LJZVfW zUtEMf6Lo{=i>fcQ02P+jBc}CJhUX{yqnMl zK3@W&D3W41StyR5T>Udai0^v$=0?4xJ`E@@66m-hp>}C(baCB8mT+WmV;klf1!Zjl z(90GG9+()SK^h)4Wn;{iu-E&H(62DZP(-O5*wJvlqSKyDAo_>Wh@VV%7^X>?io+#C zGcXqYMJCEu-+A-<_POZy_D5g&+*FIDUkrBVhK7XQlVs7 zgwjsH3*aGw66~cXQ@`|!ulTkr{~P~$@S{JTKlaGik~5><{T&XT%#kw=H`mvt*zoZ1 zFaFb?sP81wM-E>w9B!O*&Y=%~IN9rW?LMupZLFj+`AD5N(n0JIa< ze3oI3Otg3oz~hQ`ccKG;atB7f=U_eHrP*q=!j$pCUISw#%8N$d`t4S?Bm8>0Rf+`0 z(>*t0kppBjH3_1Y;3qzM-JZ*S?|$&#K6`(g92*SFWdY@KJ|mVZoXSz`KzBefgj>VG zXk~qUu2habBC$DcibEPqz20F1lrlmL>0dHqVl&8M`1ZcruK(VB?C)q~sEQx>{yT4} zmJ3C#sPoy{LRGyS#I88`#_EaNZokv)5Fez2{V?Zz+xwh*-n`JNbAMpD**Xc~j7I%l zr&+DdUHq~N@&q+`7hdRpH8$50A zrCk3re{d`CW=BtpD;S3T8V=tuyZ}J{tu(eLQPP}gsmXk0&U}>fg{}rsTecYWamZTi zt>Lzu7*TP06`G=g&!U=*n(_tk^Y$Cx_mYc$ar%hy=R1DPeaFA|YTxl`doN|Qr(F#( zfDLzk^xB2WeB{igv`^4gC1xt@&dIjY&AD=wC`5zdIaFmGw9_uNJ0ZJYec=H? zH>zxJa522aM9vQ8vQ%&tLKS-N*i}|NS2i{!y>fkvAm7m89nnFng>X+v%Y(O;0d@KXhdZ2-Nz= z#=ECmZ#3r$`Ov1|X6!Jsv}OU~tw|XfcrL=m&(vY1$RSXrSb@XO-1DDa{L)|eu0Qqv z;{fP1l>Ld@KAg|yiyHLOkmf8k(^PdWD@1Cb?6Uf`?&7VJy)cX2{@~I}fByE{KmIN5 ze)m0Fg~HrlJ+=vG*89!R{pa)A?al4su?HX6AY?9LW z)3{)5yM)iO7AEKQeoM*J$XuJV2DckPo%`-b#w>^YnpxFzF&1Gh`vQc?B z-R||Xxy(>;$(e~KGVB~(DX~a%z<9uL`=n#HahfAxuV*mmZug0K!w$Q@-FBndOs3QC zC?0`i=#*-O2SYerdM6Vo(M53C1NYzIwI8~LSoRBF`MT4l{{P3@(XfB~SX-b0G%P^P zY@5Jtw@YLgy?#Wzkk)LM+)Zz&#Od)zcifaK7L41v3-yzLOZ33j$P^8*l)!Z-hB#0d zOPHWaIr&H`cieOLJr`YkF-a1;!V@g;(Ob_aaw-_l%_iJ<$-7HH!EGFb)Eh8xX}hBMF} zYE7twq(6NG1M4G9Mh+LsWlTosW|G7$+TQ9nn@R69(TiXLdvyzFU^wUnu#l|=nIS5L zRP8G{BUFJBywq8wn>Sif`6#-qC6cA-R>gED!sCT2SI@sN^O+x%Lo%_nP(HcQ2Ecd^ zvYCYJq-hnSnYGROa&5tS^3BqqmR2aMfL0u**gVx?vT%;IhilCUM%DC*VB=mWWHV^A z)ox>F_uAUA+hvYJr$@Mp;*y0D2LLz;>a5orwOXmy>1Xl;K@^L2FHdBsez2P!YhBF> z3Zdti8NT74yZh$%(ZsGsG5QwmVV*NFSUL4_naW(*Gcvx>XQ`NP zclx21rePcNa}p8Rj)O|6M0p`*{Lh(1@4;o3n9d!KcDntZAC3ki@r?Og(b6=B3f*PH zvm098X|$Y}jtCQQ6^_5c%uc&E@QE-O^AL!_Myw%+cvN~xH!BRIu@yTo+& zU3Xn_$;FXU7zlIg)mL6|{S7ysN@q{KZZ(c(=hCmfs(Hn0H=lFH;m1#&JpY_?FM8?8 zfAAw^7qr=R_(JixY2{iy z`)J1`AWkceHKOt%TNy)+hRtTAgGK9iTX&}n_^I)Dk^JW`{}rI5r9+M0W#c{)IZ#u- zD9gBul8IBXUC3qSpg{{tQnRl&Ivq&5-W8}VjDE{DHHTn1Hc-_Y+HN?Sb+}B;{d6`E z2u|Q^!ifED*9ifQ*pAj}dqz71`wUZW>`uL*6JJ!I52zHdYer-e8bV=~X|7V*=(Zs| z{;tY=0nH&MG(xZ~&R21F{4jiU0nGyl^5u`W_-ftPO?_)5CJ6Q6T0JnWya}`Wi!ne_ zHjf1kV|Qk!69MjtzINgQZiT`6VM6Q3{L(`8ML+!u&3B-QT!CeudW$FPfIhNsUn9blYXxlkfcXhK4Ws%<@5s?-IleoexaS;g=MNuRUS2+Ioxk$cwmZTgqwcsj zDF5oOl^1KX;uqAX3O~dDan;SNH%T@w%8+H&86*ywwH56%%pMUL6C2xM0T`I<(Mce$ zzLErGR3wZ4V|MR>wc z40}{4R3TpsVTDj2mYwZFZg##`3kFqp2@*m0(>aeATvV14DR05}(6X7>*$1?8dCO{&ILh;1Y#pV? zd}0~_Cz5rj{#mgg`$@6xY`!pEH=7kh{JB&uSV?;rjb<0xiz*4tCO*Mn4AAamQcfm1 zo~TsvYqJqcA*H+DH(J=imhD1q!8R(r2gZnEh`pkz5OFaEC_gw9D$Y_p9QttD8X_pl zLOaoehm_fw^jgZ6s1gvKfTxZ-@4WNpF8n!i&dJz3+%t*f>t1!mwI6(%D#(@|O(uRi zm+ch`-S=NN_o5d+)a!N@7ixlQS{-6#Ql6jbbsrk^X5a9p#M|Cndg8>%4)Gj{hz2Iq z!kSg7|OO2#fHfc@7pK+*!A_8*UxkUGB? zXH5yPi6Jh&6H#%Nif}09HF2HBiVhtga{tJx|7QP8+$HXsDQ zv~&Q_q#34k!yHv0yT_)YMlxAiKI)QF@SZ0x+(1u2n#;9P+9E{hM%5j?#fz4Wq0IilN&z5`D6hpX~7J|1G;C{S1v>|MaR%2cfXNa zvW-SNwtBEf;O~%q!eqiAjCOLfh-!{KF`b!R;@PZk-gMJV#sd;#8uPNVC17Ct^{;u= zRagA7Gj~sW=Wm~1m>;%V--u-Oo%)|Vu*^dNx>P`pup!g$xMpT?kxt7u*2ZtX=16L? zdG^5t#B2H5e01A3rV@=-&v-1QdvW{t()iY!Emt5Y`RE6|&?ocrHN*$USt$FN=yl)K zd>S7=#n9>>pyuG_WNNuq+exM&5(D)K^PK!7s6kKc0dy?Y=G*;ftZNOzm7sG|HjC`m z*XyQ|<=$zxvbxLe=(E)HD7!i>o5|sA!<|N01Sxq)k0q4Jt5$fTAk-{0Ow*;aX;4^3 z5*$NzTBKpOBO)chp(t*kY70bB$|zlLHbw(|zOy1!7HbQwwuoiapYqn|x*d(qxT`BM zeXg`U5%v~Z45wLaRzWUo!FUkK83=K|!#x8#^@D}H4pqZCn@UZbL$2dwf&i77G%C&D z%t}DPuu6mzdoZ?8Kr;7n2hITF!NEw)PBV*$RR*zm{@|ObpGs3VFy!RgxNty&Mjm46CW%iMs;2)=+a)bn$Os@an2b^!Au{j=Nk~-UcU-7b+ zUUlVVPJiO)W0(GmFFx;wUP!^8{hULU%F?y(%}MRe7s9C@s4rQ%@MYgP?|d^nT&Qkb z^V>gAsi^HN|9EyX*1}<@(Q0skGB*Te(sHCm#H279!;csY!r@%^K&46 zQ38_1Cf7YJ`vx3O7s_z0Uy=G`5?$Wmxr#l)3}n2~Xh6B*OdzX;AooD&=4gIlfxyuS z&;1G+A+;1$tSIxwnb7~*#(HkHz~$q^Kx6wI6c-4AI$hJROh`~~Finu7A;CNxq&A$9 zxMxI2Zp}gLdfpn#6!m~Sj-U^p?Fvp`IVEP7apl6iXFydZS(($BJ(x%ABGuOE_KAsR zvxzd~=F-W7A;hTe?1EXfb{ow$|3RbIF*Ybjzo7MI^g;8y-1%e^6GhS+?d2B1vlxRW z@+|f`(^(D^tQgNlB>@oOCk%ryG(}*x>G0#Zo^}LvBoa5@ay!`72m&?sn2ynT!Jomo$od2HRV|~c^N}O2PICJToH(&ik_2As< z>aa35dBblWCvXfBTLypT)WcFaD;#%#9~mHP-hjAmYKx2Ud5YABxclvP>nDHmr)ERJ zB$pOzfWp&;`^`7|Gk_-*SK%KDM?|p!Bqtnn3D-!pk_=F^JyKDy$LyOVIlo|54qCKf z?zEAG{~MbPNSbssV?j^MAL>bX1^-}@$BEUF6m;MjkQ!^1Cv>4w+7ge^YTBVT9kc|z zYZVSGREQlAAE~ou48m3jA?lZ6muw2EG0frF@%6agog@SC&rwEw3A%_(dxq$0)uicmO1I|00= zxK^ytn6uhn3BJDcYN6ipEb+~Y8g4i11+WqM(IcFbedKYw?WX^cyNqTt_OwYk<;@@b;k~!raX0Q#kz~1= z$;}dTJGtcKy6ZngH8oXn7>urZ&3Jva_wb*u{I9S7Rb|m$YNyD>G#Z_;Sn2k=zj>GTa(0QyN$pt z9D|o&QAVWzg@n&DT#%-W+9K9a3Ez#$BN%Og5m(S5Ez4U^>Ji>2R_Yp-9xf&G=}9%G z;jwM9GIPTsz2J=bzkk-DE6+dZnGfbOpm1qcv81m1aL=D}_7RI}2g>cNDG1AlK-7|3 z$5z&PM6nKGXEM-Bf7qYmUbZ2^3PIjzcknHs$SaH#_&Vggn!5dFYzA2%=EYi-b+W)K zwKH>aJrbG-a?T|{miTA8pfEAB#u@l5d=@w%4&%3et{k%yW$58at6;Aq^c3X|%4Fp? z0qEKrDt80lOaW(!Jg@;vyK_l}SsSV}K%@H1GWVw))X6M91J}>V^$8k|4OC=90kNV& z&$2)`d~jd@96TAy2jzv%GXugDbmSEQPx((ZHcKJq$}DNP%jnGKAw2g2GxnXFr#`&n z-g|HS_}%KslnR-u0?(nsW|pdps=+mzjm?eLTi!l?{IRo2`Q=9*{et^5IamUkWgMuL zyRGJUC-<&*>PuAJrSgLZs%OX%uFXBSknXg)0+V7pa-hHjX6IO>Y_&|a#H7kjE|YoA z$+hP{|A);CQC_RnrYG$WX!jR#FMZ{|67Js{sVWg-gWM7>x7zF!wMeq`qLBO;pq`kVkbDAljx5)0MMmc z<RiRD+o^yz=x#OSJq1kl zl9yff)N-Esf+!w#*ztYBwW;+8G;afLxK%3TkRv;CYr9KB!U6Qv6h|evqlx|4blhbC z{!QS7=`n5mrsX!T<&!5?NtPqk%!*Eg+4NV2GiT-#y+mept&z@Wm=LJCHHVBT9oC;EMBtF8~1jAu53bIB~is8|RuVTIkTac{N;z&Wz-{Qb>gI?#IH+<|ZuX$y2 zXZCmB`+jWpo_FPc_3DmNG;+BHd Date: Thu, 23 Nov 2023 16:59:17 +0100 Subject: [PATCH 400/432] feat: add translations(pls work) --- src/main/resources/assets/hbm/lang/en_US.lang | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index da1e3e2f9..696ebe517 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -5537,6 +5537,14 @@ tile.watz_pump.name=Watz Pressure Pump tile.yellow_barrel.name=Radioactive Barrel tile.zirnox_destroyed.name=Destroyed ZIRNOX +tile.large_vehicle_door.name=Large Vehicle Door +tile.water_door.name=Water Door +tile.qe_containment.name=QE Containment Door +tile.qe_sliding.name=QE Sliding Door +tile.round_airlock_door.name=Round Airlock Door +tile.secure_access_door.name=Secure Access Door +tile.sliding_seal_door.name=Sliding Seal Door + trait.asbestos=Asbestos trait.blinding=Blinding trait.coal=Coal Dust From 862488d4215c7d453e7c97bf75db109272ce9f6e Mon Sep 17 00:00:00 2001 From: KoblizekXD Date: Thu, 23 Nov 2023 17:02:18 +0100 Subject: [PATCH 401/432] feat: add recipes for ass embler --- .../java/com/hbm/inventory/recipes/AssemblerRecipes.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index de360a362..e5e0d5bef 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -1214,6 +1214,13 @@ public class AssemblerRecipes { new ComparableStack(ModItems.bolt_dura_steel, 8), new ComparableStack(ModItems.motor, 2) }, 200); + makeRecipe(new ComparableStack(ModBlocks.large_vehicle_door, 1), new AStack[]{new OreDictStack(STEEL.plate(), 36), new OreDictStack("plateAdvancedAlloy", 4), new ComparableStack(ModItems.plate_polymer, 2), new OreDictStack("blockSteel", 4), new ComparableStack(ModItems.motor, 4), new ComparableStack(ModItems.bolt_dura_steel, 12), new OreDictStack("dyeGreen", 4)}, 500); + makeRecipe(new ComparableStack(ModBlocks.water_door, 1), new AStack[]{new OreDictStack(STEEL.plate(), 12), new OreDictStack("plateAdvancedAlloy", 2), new ComparableStack(ModItems.bolt_dura_steel, 2), new OreDictStack("dyeRed", 1)}, 500); + makeRecipe(new ComparableStack(ModBlocks.qe_containment, 1), new AStack[]{new OreDictStack(STEEL.plate(), 24), new OreDictStack("plateAdvancedAlloy", 8), new ComparableStack(ModItems.plate_polymer, 8), new OreDictStack("blockSteel", 2), new ComparableStack(ModItems.motor, 4), new ComparableStack(ModItems.bolt_dura_steel, 16), new OreDictStack("dyeBlack", 4)}, 500); + makeRecipe(new ComparableStack(ModBlocks.qe_sliding_door, 1), new AStack[]{new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModItems.plate_polymer, 2), new OreDictStack("blockSteel", 1), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.bolt_dura_steel, 2), new OreDictStack("dyeWhite", 4), new ComparableStack(Blocks.glass, 4)}, 200); + makeRecipe(new ComparableStack(ModBlocks.round_airlock_door, 1), new AStack[]{new OreDictStack(STEEL.plate(), 32), new OreDictStack("plateAdvancedAlloy", 12), new ComparableStack(ModItems.plate_polymer, 12), new OreDictStack("blockSteel", 6), new ComparableStack(ModItems.motor, 6), new ComparableStack(ModItems.bolt_dura_steel, 12), new OreDictStack("dyeGreen", 4)}, 500); + makeRecipe(new ComparableStack(ModBlocks.secure_access_door, 1), new AStack[]{new OreDictStack(STEEL.plate(), 48), new OreDictStack("plateAdvancedAlloy", 16), new ComparableStack(ModItems.plate_polymer, 2), new OreDictStack("blockSteel", 6), new ComparableStack(ModItems.motor, 4), new ComparableStack(ModItems.bolt_dura_steel, 24), new OreDictStack("dyeRed", 8)}, 1000); + makeRecipe(new ComparableStack(ModBlocks.sliding_seal_door, 1), new AStack[]{new OreDictStack(STEEL.plate(), 12), new OreDictStack("plateAdvancedAlloy", 4), new ComparableStack(ModItems.plate_polymer, 2), new OreDictStack("blockSteel", 1), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.bolt_dura_steel, 2), new OreDictStack("dyeWhite", 2)}, 500); if(Loader.isModLoaded("Mekanism")) { From 4af44b880d1a494d4cef85e247faaec78c8975bf Mon Sep 17 00:00:00 2001 From: KoblizekXD Date: Thu, 23 Nov 2023 19:09:06 +0100 Subject: [PATCH 402/432] fix: fix problematic sounds (minor skill issue) --- src/main/java/com/hbm/tileentity/DoorDecl.java | 2 +- src/main/resources/assets/hbm/sounds.json | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/DoorDecl.java b/src/main/java/com/hbm/tileentity/DoorDecl.java index 40e1c7047..64b073fd6 100644 --- a/src/main/java/com/hbm/tileentity/DoorDecl.java +++ b/src/main/java/com/hbm/tileentity/DoorDecl.java @@ -568,7 +568,7 @@ public abstract class DoorDecl { }; @Override public String getCloseSoundEnd() { - return "hbmsound:door.qe_sliding_shut"; + return "hbm:door.qe_sliding_shut"; }; @Override public String getOpenSoundLoop() { diff --git a/src/main/resources/assets/hbm/sounds.json b/src/main/resources/assets/hbm/sounds.json index b550633a4..8c1d73bde 100644 --- a/src/main/resources/assets/hbm/sounds.json +++ b/src/main/resources/assets/hbm/sounds.json @@ -70,14 +70,14 @@ "door.garage_move": { "category": "block", "sounds": [{"name": "block/door/garage_move", "stream": false}] }, "door.garage_stop": { "category": "block", "sounds": [{"name": "block/door/garage_stop", "stream": false}] }, - "block.door.lever": {"category": "player", "sounds": [{"name": "hbm:block/doors/lever1", "stream": false}]}, - "block.door.wgh_big_start": {"category": "player", "sounds": [{"name": "hbm:block/doors/door_wgh_big_start", "stream": false}]}, - "block.door.wgh_big_stop": {"category": "player", "sounds": [{"name": "hbm:block/doors/door_wgh_big_stop", "stream": false}]}, - "block.door.qe_sliding_shut": {"category": "player", "sounds": [{"name": "hbm:block/doors/doorshut_1", "stream": false}]}, - "block.door.qe_sliding_opened": {"category": "player", "sounds": [{"name": "hbm:block/doors/doorslide_opened1", "stream": false}]}, - "block.door.qe_sliding_opening": {"category": "player", "sounds": [{"name": "hbm:block/doors/doorslide_opening1", "stream": false}]}, - "block.door.sliding_seal_open": {"category": "player", "sounds": [{"name": "hbm:block/doors/doormove2", "stream": false}]}, - "block.door.sliding_seal_stop": {"category": "player", "sounds": [{"name": "hbm:block/doors/metal_stop1", "stream": false}]}, + "door.lever": {"category": "player", "sounds": [{"name": "block/door/lever1", "stream": false}]}, + "door.wgh_big_start": {"category": "player", "sounds": [{"name": "block/door/door_wgh_big_start", "stream": false}]}, + "door.wgh_big_stop": {"category": "player", "sounds": [{"name": "block/door/door_wgh_big_stop", "stream": false}]}, + "door.qe_sliding_shut": {"category": "player", "sounds": [{"name": "block/door/doorshut_1", "stream": false}]}, + "door.qe_sliding_opened": {"category": "player", "sounds": [{"name": "block/door/doorslide_opened1", "stream": false}]}, + "door.qe_sliding_opening": {"category": "player", "sounds": [{"name": "block/door/doorslide_opening1", "stream": false}]}, + "door.sliding_seal_open": {"category": "player", "sounds": [{"name": "block/door/doormove2", "stream": false}]}, + "door.sliding_seal_stop": {"category": "player", "sounds": [{"name": "block/door/metal_stop1", "stream": false}]}, "item.techBleep": {"category": "player", "sounds": [{"name": "tool/techBleep", "stream": false}]}, "item.techBoop": {"category": "player", "sounds": [{"name": "tool/techBoop", "stream": false}]}, From f84696714acf394660645cde9eca7a2f90414c08 Mon Sep 17 00:00:00 2001 From: KoblizekXD Date: Thu, 23 Nov 2023 20:12:06 +0100 Subject: [PATCH 403/432] *sound* --- src/main/resources/assets/hbm/sounds.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/main/resources/assets/hbm/sounds.json b/src/main/resources/assets/hbm/sounds.json index 8c1d73bde..fdea12a18 100644 --- a/src/main/resources/assets/hbm/sounds.json +++ b/src/main/resources/assets/hbm/sounds.json @@ -70,14 +70,14 @@ "door.garage_move": { "category": "block", "sounds": [{"name": "block/door/garage_move", "stream": false}] }, "door.garage_stop": { "category": "block", "sounds": [{"name": "block/door/garage_stop", "stream": false}] }, - "door.lever": {"category": "player", "sounds": [{"name": "block/door/lever1", "stream": false}]}, - "door.wgh_big_start": {"category": "player", "sounds": [{"name": "block/door/door_wgh_big_start", "stream": false}]}, - "door.wgh_big_stop": {"category": "player", "sounds": [{"name": "block/door/door_wgh_big_stop", "stream": false}]}, - "door.qe_sliding_shut": {"category": "player", "sounds": [{"name": "block/door/doorshut_1", "stream": false}]}, - "door.qe_sliding_opened": {"category": "player", "sounds": [{"name": "block/door/doorslide_opened1", "stream": false}]}, - "door.qe_sliding_opening": {"category": "player", "sounds": [{"name": "block/door/doorslide_opening1", "stream": false}]}, - "door.sliding_seal_open": {"category": "player", "sounds": [{"name": "block/door/doormove2", "stream": false}]}, - "door.sliding_seal_stop": {"category": "player", "sounds": [{"name": "block/door/metal_stop1", "stream": false}]}, + "door.lever": {"category": "block", "sounds": [{"name": "block/door/lever1", "stream": false}]}, + "door.wgh_big_start": {"category": "block", "sounds": [{"name": "block/door/door_wgh_big_start", "stream": false}]}, + "door.wgh_big_stop": {"category": "block", "sounds": [{"name": "block/door/door_wgh_big_stop", "stream": false}]}, + "door.qe_sliding_shut": {"category": "block", "sounds": [{"name": "block/door/doorshut_1", "stream": false}]}, + "door.qe_sliding_opened": {"category": "block", "sounds": [{"name": "block/door/doorslide_opened1", "stream": false}]}, + "door.qe_sliding_opening": {"category": "block", "sounds": [{"name": "block/door/doorslide_opening1", "stream": false}]}, + "door.sliding_seal_open": {"category": "block", "sounds": [{"name": "block/door/doormove2", "stream": false}]}, + "door.sliding_seal_stop": {"category": "block", "sounds": [{"name": "block/door/metal_stop1", "stream": false}]}, "item.techBleep": {"category": "player", "sounds": [{"name": "tool/techBleep", "stream": false}]}, "item.techBoop": {"category": "player", "sounds": [{"name": "tool/techBoop", "stream": false}]}, From 8fac493947382446a6495241f0ab5ed88f21c6e9 Mon Sep 17 00:00:00 2001 From: Boblet Date: Mon, 27 Nov 2023 16:00:19 +0100 Subject: [PATCH 404/432] post merge fixes, radar-launchable custom missiles, more stuff --- changelog | 54 +- src/main/java/com/hbm/blocks/ModBlocks.java | 25 +- .../com/hbm/blocks/bomb/CompactLauncher.java | 2 +- .../java/com/hbm/blocks/bomb/LaunchTable.java | 2 +- .../container/ContainerLaunchPadTier1.java | 1 - src/main/java/com/hbm/lib/HbmWorldGen.java | 4 +- src/main/java/com/hbm/main/ClientProxy.java | 1 - .../java/com/hbm/tileentity/DoorDecl.java | 2127 +++++++++-------- .../bomb/TileEntityCompactLauncher.java | 28 +- .../bomb/TileEntityLaunchTable.java | 48 +- .../gui/processing/gui_exposure_chamber.png | Bin 0 -> 3129 bytes 11 files changed, 1152 insertions(+), 1140 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/gui/processing/gui_exposure_chamber.png diff --git a/changelog b/changelog index e707528ba..441e8123c 100644 --- a/changelog +++ b/changelog @@ -1,52 +1,12 @@ ## Added -* Nitra - * Dropped by the painsaw ability when killing a mob - * Can be used to quickly craft standard ammo types in the 2x2 crafting grid - * Can also refill empty syringes, making stimpaks -* Latex - * Can be made from dandelions or from pressing jungle wood - * Replaces insulator in many recipes where electrical insulation that is potentially made from brick doesn't make sense, like rubber gas masks, jackets, tools and so on - * Latex is interchangable with rubber in all recipes where it's used, but not the other way round - * The old insulator is now mainly used for electrical and heat insulation as well as PWR rods -* Radar screen - * Radars can be linked to one radar screen, which will display all detected blips - * Right-clicking the radar screen will open the GUI of the radar that it is linked to +* Doors! + * Your favorites from 1.12, the 7 remaining doors have finally been ported + * Thanks to KoblizekXD for biting the bullet ## Changed -* Light oil and cracked light oil can now be reformed into large quantities of aromatic hydrocarbons a well as some reformate gas -* The painsaw ability no longer drops ammo and syringes, instead it drops nitra -* Radars have been completely rewritten - * Dots will now move smoothly across the screen, instead of jittering and being bound to the pixel grid - * Radars no longer use CPU-intensive full scans of the map, instead of using an optimized search for nearby scannable entities - * There's now a dedicated toggle for detecting artillery shells - * Radars now have a local area map that can be enabled - * The map scans up to 100 points per tick, the display can show 40,000 points - * The map will scan loaded chunks instantly, unloaded chunks have a limit 10 chunkloads per tick to prevent excessive lag. Chunks that have not yet been generated yet will show up as black spots, and will never be loaded - * The chunk load limit as well as whether chunks should be generated can be adjusted in the machine config file - * The map will show terrain height between Y:50 and Y:128, anything outside that range is truncated - * Radars now have a second GUI which allows the use of a battery, as well as linking the radar to other machines - * By using the number keys, the radar can now launch missiles, ABMs or artillery at the current aimed at position - * Radars can be linked to one additional radar screen which shows part of the radar's GUI in-world -* The turbofan's afterburner now adds a 33% efficiency bonus for every level. This means that instead of the efficiency remaining constant between levels, a tier 3 upgrade will yield double efficiency. -* Reduced the flarestack's base energy efficiency -* Trenchmaster armor is now unbreakable -* The arc welder recipe for advanced circuits now uses simple insulator instead of gold dust -* The arc welder recipes for enhanced and advanced circuits now use only 100mB of fluid instead of 250mB -* Completely rewrote the missile base code, missiles now accelerate smoothly instead of in increments and use interpolated movement, making them less jittery -* Missiles now have a slightly higher top-speed -* Remodeled tier 1, 2 and 3 missiles as well as the anti-ballistic missile -* Anti-ballistic missiles now use predictive targeting as well as a heightened sensor range of 1,000 blocks (instead of 500) which should make them a lot more effective -* Anti-ballistic missiles accelerate 4x faster than normal missiles and have a 50% higher top-speed -* Anti-ballistic missiles can now load their own chunks, allowing them to get to far away incoming missiles without getting stuck -* PWRs that have recently been close to unloaded chunks now have a 40 tick timeframe where they are "frozen", only trying to connect to a fluid network but not doing any fission, this should reduce the amount of meltdowns caused by chunkloading -* Glyphid hive blocks now have some color variance -* Glpyhid spawners now have a unique texture +* Reduced the blast resistance of the large doors from absurdly high to still very but not quite as high +* Custom missiles are now launchable using the radar +* NTM's structures should no longer spawn in dimensions besides the overworld. Ores will still generate, assuming the config option is set. ## Fixed -* Fixed thorium bedrock ore using the wrong ore dict key, making it unable to be processed via centrifuge or acidizer -* Fixed custom machine NEI slots going out of bounds after the third slot -* Fixed bismuth billets not being oredicted, making BFB PWR rods uncraftable -* Fixed missile chunkloading having rounding issues, sometimes causing them to get stuck in unloaded chunks while crossing chunk borders -* Fixed drones not being listed in the creative tabs -* Fixed pre-defined fluid duct items not being being able to be placed where replacable blocks are, eg. water -* Fixed horrible gamebreaking bug where the reinforced glass pane has too much blast resistance \ No newline at end of file +* Fixed ancient bug where custom missiles launched using the launch table would not use the accuracy calculation and always be pin-point accurate \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 98442c95e..60f325e78 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -2144,20 +2144,19 @@ public class ModBlocks { seal_controller = new BlockSeal(Material.iron).setBlockName("seal_controller").setHardness(10.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab); seal_hatch = new BlockHatch(Material.iron).setBlockName("seal_hatch").setHardness(Float.POSITIVE_INFINITY).setResistance(Float.POSITIVE_INFINITY).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":seal_hatch_3"); - vault_door = new VaultDoor(Material.iron).setBlockName("vault_door").setHardness(10.0F).setResistance(10000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":vault_door"); - blast_door = new BlastDoor(Material.iron).setBlockName("blast_door").setHardness(10.0F).setResistance(10000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":blast_door"); + vault_door = new VaultDoor(Material.iron).setBlockName("vault_door").setHardness(10.0F).setResistance(1_000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":vault_door"); + blast_door = new BlastDoor(Material.iron).setBlockName("blast_door").setHardness(10.0F).setResistance(1_000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":blast_door"); - sliding_blast_door = new BlockDoorGeneric(Material.iron, DoorDecl.SLIDE_DOOR).setBlockName("sliding_blast_door").setHardness(150.0F).setResistance(7500.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":sliding_blast_door"); - - fire_door = new BlockDoorGeneric(Material.iron, DoorDecl.FIRE_DOOR).setBlockName("fire_door").setHardness(10.0F).setResistance(10000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fire_door"); - transition_seal = new BlockDoorGeneric(Material.iron, DoorDecl.TRANSITION_SEAL).setBlockName("transition_seal").setHardness(10.0F).setResistance(10000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":transition_seal"); - secure_access_door = new BlockDoorGeneric(Material.iron, DoorDecl.SECURE_ACCESS_DOOR).setBlockName("secure_access_door").setHardness(200.0F).setResistance(20000.0F).setCreativeTab(MainRegistry.machineTab); - large_vehicle_door = new BlockDoorGeneric(Material.iron, DoorDecl.LARGE_VEHICLE_DOOR).setBlockName("large_vehicle_door").setHardness(100.0F).setResistance(10000.0F).setCreativeTab(MainRegistry.machineTab); - qe_containment = new BlockDoorGeneric(Material.iron, DoorDecl.QE_CONTAINMENT).setBlockName("qe_containment").setHardness(100.0F).setResistance(10000.0F).setCreativeTab(MainRegistry.machineTab); - qe_sliding_door = new BlockDoorGeneric(Material.iron, DoorDecl.QE_SLIDING).setBlockName("qe_sliding_door").setHardness(100.0F).setResistance(10000.0F).setCreativeTab(MainRegistry.machineTab); - round_airlock_door = new BlockDoorGeneric(Material.iron, DoorDecl.ROUND_AIRLOCK_DOOR).setBlockName("round_airlock_door").setHardness(100.0F).setResistance(10000.0F).setCreativeTab(MainRegistry.machineTab); - sliding_seal_door = new BlockDoorGeneric(Material.iron, DoorDecl.SLIDING_SEAL_DOOR).setBlockName("sliding_seal_door").setHardness(10.0F).setResistance(10000.0F).setCreativeTab(MainRegistry.machineTab); - water_door = new BlockDoorGeneric(Material.iron, DoorDecl.WATER_DOOR).setBlockName("water_door").setHardness(50.0F).setResistance(500.0F).setCreativeTab(MainRegistry.machineTab); + sliding_blast_door = new BlockDoorGeneric(Material.iron, DoorDecl.SLIDE_DOOR).setBlockName("sliding_blast_door").setHardness(10.0F).setResistance(750.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":sliding_blast_door"); + fire_door = new BlockDoorGeneric(Material.iron, DoorDecl.FIRE_DOOR).setBlockName("fire_door").setHardness(10.0F).setResistance(1_000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fire_door"); + transition_seal = new BlockDoorGeneric(Material.iron, DoorDecl.TRANSITION_SEAL).setBlockName("transition_seal").setHardness(10.0F).setResistance(1_000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":transition_seal"); + secure_access_door = new BlockDoorGeneric(Material.iron, DoorDecl.SECURE_ACCESS_DOOR).setBlockName("secure_access_door").setHardness(20.0F).setResistance(2_000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + large_vehicle_door = new BlockDoorGeneric(Material.iron, DoorDecl.LARGE_VEHICLE_DOOR).setBlockName("large_vehicle_door").setHardness(10.0F).setResistance(1_000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + qe_containment = new BlockDoorGeneric(Material.iron, DoorDecl.QE_CONTAINMENT).setBlockName("qe_containment").setHardness(10.0F).setResistance(1_000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + qe_sliding_door = new BlockDoorGeneric(Material.iron, DoorDecl.QE_SLIDING).setBlockName("qe_sliding_door").setHardness(10.0F).setResistance(1_000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + round_airlock_door = new BlockDoorGeneric(Material.iron, DoorDecl.ROUND_AIRLOCK_DOOR).setBlockName("round_airlock_door").setHardness(10.0F).setResistance(1_000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + sliding_seal_door = new BlockDoorGeneric(Material.iron, DoorDecl.SLIDING_SEAL_DOOR).setBlockName("sliding_seal_door").setHardness(10.0F).setResistance(1_000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + water_door = new BlockDoorGeneric(Material.iron, DoorDecl.WATER_DOOR).setBlockName("water_door").setHardness(5.0F).setResistance(50.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); door_metal = new BlockModDoor(Material.iron).setBlockName("door_metal").setHardness(5.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":door_metal"); door_office = new BlockModDoor(Material.iron).setBlockName("door_office").setHardness(10.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":door_office"); diff --git a/src/main/java/com/hbm/blocks/bomb/CompactLauncher.java b/src/main/java/com/hbm/blocks/bomb/CompactLauncher.java index 10f7547aa..eb9764411 100644 --- a/src/main/java/com/hbm/blocks/bomb/CompactLauncher.java +++ b/src/main/java/com/hbm/blocks/bomb/CompactLauncher.java @@ -123,7 +123,7 @@ public class CompactLauncher extends BlockContainer implements IMultiblock, IBom TileEntityCompactLauncher entity = (TileEntityCompactLauncher) world.getTileEntity(x, y, z); if(entity.canLaunch()) { - entity.launch(); + entity.launchFromDesignator(); return BombReturnCode.LAUNCHED; } diff --git a/src/main/java/com/hbm/blocks/bomb/LaunchTable.java b/src/main/java/com/hbm/blocks/bomb/LaunchTable.java index 3170cea1c..e5f194f59 100644 --- a/src/main/java/com/hbm/blocks/bomb/LaunchTable.java +++ b/src/main/java/com/hbm/blocks/bomb/LaunchTable.java @@ -163,7 +163,7 @@ public class LaunchTable extends BlockContainer implements IMultiblock, IBomb { TileEntityLaunchTable entity = (TileEntityLaunchTable) world.getTileEntity(x, y, z); if(entity.canLaunch()) { - entity.launch(); + entity.launchFromDesignator(); return BombReturnCode.LAUNCHED; } diff --git a/src/main/java/com/hbm/inventory/container/ContainerLaunchPadTier1.java b/src/main/java/com/hbm/inventory/container/ContainerLaunchPadTier1.java index 0abda201e..a19e9a385 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerLaunchPadTier1.java +++ b/src/main/java/com/hbm/inventory/container/ContainerLaunchPadTier1.java @@ -5,7 +5,6 @@ import com.hbm.tileentity.bomb.TileEntityLaunchPad; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; -import net.minecraft.inventory.ICrafting; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; diff --git a/src/main/java/com/hbm/lib/HbmWorldGen.java b/src/main/java/com/hbm/lib/HbmWorldGen.java index e233d59d2..d8019a7ea 100644 --- a/src/main/java/com/hbm/lib/HbmWorldGen.java +++ b/src/main/java/com/hbm/lib/HbmWorldGen.java @@ -236,7 +236,7 @@ public class HbmWorldGen implements IWorldGenerator { enableDungeons = provider.hasDungeons; } - if(GeneralConfig.enableDungeons && world.provider.isSurfaceWorld() && enableDungeons) { + if(GeneralConfig.enableDungeons && world.provider.dimensionId == 0 && enableDungeons) { if(MobConfig.enableHives && rand.nextInt(MobConfig.hiveSpawn) == 0) { int x = i + rand.nextInt(16) + 8; @@ -670,7 +670,7 @@ public class HbmWorldGen implements IWorldGenerator { int x = i + rand.nextInt(16); int z = j + rand.nextInt(16); int y = world.getHeightValue(x, z) - rand.nextInt(10); - (new Meteorite()).generate(world, rand, x, y, z, false, false, false); + if(y > 1) (new Meteorite()).generate(world, rand, x, y, z, false, false, false); } if (GeneralConfig.enableNITAN) { diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 8ee506eb5..2babe6244 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -2062,4 +2062,3 @@ public class ClientProxy extends ServerProxy { Minecraft.getMinecraft().getSoundHandler().playSound(new PositionedSoundRecord(new ResourceLocation(sound), volume, pitch, (float) x, (float) y, (float) z)); } } - diff --git a/src/main/java/com/hbm/tileentity/DoorDecl.java b/src/main/java/com/hbm/tileentity/DoorDecl.java index 64b073fd6..704e7b97a 100644 --- a/src/main/java/com/hbm/tileentity/DoorDecl.java +++ b/src/main/java/com/hbm/tileentity/DoorDecl.java @@ -5,1076 +5,1077 @@ import com.hbm.animloader.Animation; import com.hbm.lib.Library; import com.hbm.main.ResourceManager; import com.hbm.render.loader.WavefrontObjDisplayList; -import com.hbm.sound.MovingSoundPlayerLoop; import com.hbm.util.BobMathUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.event.sound.SoundEvent; import org.lwjgl.opengl.GL11; public abstract class DoorDecl { - public static final DoorDecl TRANSITION_SEAL = new DoorDecl() { - - @Override - public String getOpenSoundStart() { - return "hbm:door.TransitionSealOpen"; - } - - @Override - public float getSoundVolume() { - return 6; - } - - @Override - @SideOnly(Side.CLIENT) - public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { - if (!partName.equals("base")) { - set(trans, 0, 3.5F * getNormTime(openTicks), 0); - } else { - super.getTranslation(partName, openTicks, child, trans); - } - } - - @Override - @SideOnly(Side.CLIENT) - public void doOffsetTransform() { - GL11.glTranslated(0, 0, 0.5); - } - - @Override - @SideOnly(Side.CLIENT) - public double[][] getClippingPlanes() { - return super.getClippingPlanes(); - } - - @Override - public int timeToOpen() { - return 480; - } - - @Override - public int[][] getDoorOpenRanges() { - //3 is tall - //4 is wide - return new int[][]{{-9, 2, 0, 20, 20, 1}}; - } - - @Override - public int[] getDimensions() { - return new int[]{23, 0, 0, 0, 13, 12}; - } - - @Override - public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { - return super.getBlockBound(x, y, z, open); - } - - @Override - @SideOnly(Side.CLIENT) - public ResourceLocation getTextureForPart(int skinIndex, String partName) { - return ResourceManager.transition_seal_tex; - } - - @Override - @SideOnly(Side.CLIENT) - public Animation getAnim() { - return ResourceManager.transition_seal_anim; - } - - @Override - @SideOnly(Side.CLIENT) - public AnimatedModel getAnimatedModel() { - return ResourceManager.transition_seal; - } - - @Override - @SideOnly(Side.CLIENT) - public WavefrontObjDisplayList getModel() { - return null; - } - }; - - public static final DoorDecl FIRE_DOOR = new DoorDecl() { - - @Override - public String getOpenSoundEnd() { - return "hbm:door.wghStop"; - } - - @Override - public String getOpenSoundLoop() { - return "hbm:door.wghStart"; - } - - @Override - public String getSoundLoop2() { - return "hbm:door.alarm6"; - } - - @Override - public float getSoundVolume() { - return 2; - } - - @Override - @SideOnly(Side.CLIENT) - public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { - if (!partName.equals("frame")) { - set(trans, 0, 3 * getNormTime(openTicks), 0); - } else { - super.getTranslation(partName, openTicks, child, trans); - } - } - - @Override - @SideOnly(Side.CLIENT) - public void doOffsetTransform() { - GL11.glTranslated(0, 0, 0.5); - } - - @Override - @SideOnly(Side.CLIENT) - public double[][] getClippingPlanes() { - return new double[][]{{0, -1, 0, 3.0001}}; - } - - @Override - public int timeToOpen() { - return 160; - } - - @Override - public int[][] getDoorOpenRanges() { - return new int[][]{{-1, 0, 0, 3, 4, 1}}; - } - - @Override - public int[] getDimensions() { - return new int[]{2, 0, 0, 0, 2, 1}; - } - - @Override - public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { - if (!open) - return AxisAlignedBB.getBoundingBox(0, 0, 0, 1, 1, 1); - if (z == 1) { - return AxisAlignedBB.getBoundingBox(0.5, 0, 0, 1, 1, 1); - } else if (z == -2) { - return AxisAlignedBB.getBoundingBox(0, 0, 0, 0.5, 1, 1); - } else if (y > 1) { - return AxisAlignedBB.getBoundingBox(0, 0.75, 0, 1, 1, 1); - } else if (y == 0) { - return AxisAlignedBB.getBoundingBox(0, 0, 0, 1, 0.1, 1); - } else { - return super.getBlockBound(x, y, z, open); - } - } - - @Override - @SideOnly(Side.CLIENT) - public ResourceLocation getTextureForPart(int skinIndex, String partName) { - return ResourceManager.fire_door_tex; - } - - @Override - @SideOnly(Side.CLIENT) - public WavefrontObjDisplayList getModel() { - return ResourceManager.fire_door; - } - }; - - public static final DoorDecl SLIDE_DOOR = new DoorDecl() { - @Override - public String getOpenSoundEnd() { - return "hbm:door.sliding_door_opened"; - } - - @Override - public String getCloseSoundEnd() { - return "hbm:door.sliding_door_shut"; - } - - @Override - public String getOpenSoundLoop() { - return "hbm:door.sliding_door_opening"; - } - - @Override - public String getSoundLoop2() { - return "hbm:door.sliding_door_opening"; - } - - @Override - public float getSoundVolume() { - return 2; - } - - @Override - @SideOnly(Side.CLIENT) - public void doOffsetTransform() { - GL11.glRotated(-90, 0, 1, 0); - } - - @Override - @SideOnly(Side.CLIENT) - public double[][] getClippingPlanes() { - return new double[][]{ - {-1, 0, 0, 3.50001}, - {1, 0, 0, 3.50001} - }; - } - - @Override - public int timeToOpen() { - return 24; - } - - @Override - public int[][] getDoorOpenRanges() { - return new int[][]{{-2, 0, 0, 4, 5, 1}}; - } - - @Override - public int[] getDimensions() { - return new int[]{3, 0, 0, 0, 3, 3}; - } - - @Override - public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { - if (open) { - if (y == 3) { - return AxisAlignedBB.getBoundingBox(0, 0.5, 0, 1, 1, 1); - } else if (y == 0) { - return AxisAlignedBB.getBoundingBox(0, 0, 0, 1, 0.08, 1); - } - } - return super.getBlockBound(x, y, z, open); - } - - @Override - public boolean hasSkins() { - return true; - } - - @Override - public int getSkinCount() { - return 3; - } - - @Override - @SideOnly(Side.CLIENT) - public ResourceLocation getTextureForPart(int skinIndex, String partName) { - return new ResourceLocation[] { - ResourceManager.sliding_blast_door_tex, - ResourceManager.sliding_blast_door_variant1_tex, - ResourceManager.sliding_blast_door_variant2_tex - }[skinIndex]; - } - - @Override - public WavefrontObjDisplayList getModel() { - return null; - } - - @Override - public Animation getAnim() { - return ResourceManager.sliding_blast_door_anim; - } - - @Override - public AnimatedModel getAnimatedModel() { - return ResourceManager.sliding_blast_door; - } - }; - - public static final DoorDecl SLIDING_SEAL_DOOR = new DoorDecl(){ - - @Override - public String getOpenSoundEnd() { - return "hbm:door.sliding_seal_stop"; - } - - @Override - public String getOpenSoundStart() { - return "hbm:door.sliding_seal_open"; - } - - public float getSoundVolume(){ - return 2; - } - - @Override - @SideOnly(Side.CLIENT) - public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { - if(partName.startsWith("door")){ - set(trans, 0, 0, Library.smoothstep(getNormTime(openTicks), 0, 1)); - } else { - set(trans, 0, 0, 0); - } - }; - - @Override - @SideOnly(Side.CLIENT) - public double[][] getClippingPlanes() { - return new double[][]{{0, 0, -1, 0.5001}}; - }; - - @Override - @SideOnly(Side.CLIENT) - public void doOffsetTransform() { - GL11.glTranslated(0.375, 0, 0); - }; - - @Override - public int timeToOpen() { - return 20; - }; - - @Override - public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { - if(open){ - if(y == 0) - return AxisAlignedBB.getBoundingBox(0, 0, 1-0.25, 1, 0.125, 1); - return super.getBlockBound(x, y, z, open); - } else { - return AxisAlignedBB.getBoundingBox(0, 0, 1-0.25, 1, 1, 1); - } - }; - - @Override - public int[][] getDoorOpenRanges(){ - return new int[][]{{0, 0, 0, 1, 2, 2}}; - } - - @Override - public int[] getDimensions(){ - return new int[]{1, 0, 0, 0, 0, 0}; - } - - @Override - @SideOnly(Side.CLIENT) - public ResourceLocation getTextureForPart(String partName){ - return ResourceManager.sliding_seal_door_tex; - } - - @Override - public ResourceLocation getTextureForPart(int skinIndex, String partName) { - return ResourceManager.sliding_seal_door_tex; - } - - @Override - @SideOnly(Side.CLIENT) - public WavefrontObjDisplayList getModel(){ - return ResourceManager.sliding_seal_door; - } - }; - - public static final DoorDecl SECURE_ACCESS_DOOR = new DoorDecl(){ - - @Override - public String getCloseSoundLoop() { - return "hbm:door.garage_move"; - } - - @Override - public String getCloseSoundEnd() { - return "hbm:door.garage_stop"; - } - - @Override - public String getOpenSoundEnd() { - return "hbm:door.garage_stop"; - } - - @Override - public String getOpenSoundLoop() { - return "hbm:door.garage_move"; - } - - @Override - public float getSoundVolume(){ - return 2; - } - - @Override - @SideOnly(Side.CLIENT) - public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { - if(!partName.equals("base")){ - set(trans, 0, 3.5F*getNormTime(openTicks), 0); - } else { - super.getTranslation(partName, openTicks, child, trans); - } - }; - - @Override - @SideOnly(Side.CLIENT) - public void doOffsetTransform() { - GL11.glRotated(90, 0, 1, 0); - }; - - @Override - @SideOnly(Side.CLIENT) - public double[][] getClippingPlanes() { - return new double[][]{{0, -1, 0, 5}}; - }; - - @Override - public int timeToOpen() { - return 120; - }; - - @Override - public int[][] getDoorOpenRanges(){ - return new int[][]{{-2, 1, 0, 4, 5, 1}}; - } - - @Override - public int[] getDimensions(){ - return new int[]{4, 0, 0, 0, 2, 2}; - } - - @Override - public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { - if(!open){ - if(y > 0){ - return AxisAlignedBB.getBoundingBox(0, 0, 0.375, 1, 1, 0.625); - } - return AxisAlignedBB.getBoundingBox(0, 0, 0, 1, 1, 1); - } - if(y == 1) { - return AxisAlignedBB.getBoundingBox(0, 0, 0, 1, 0.0625, 1); - } else if(y == 4){ - return AxisAlignedBB.getBoundingBox(0, 0.5, 0.15, 1, 1, 0.85); - } else { - return super.getBlockBound(x, y, z, open); - } - } - - @Override - @SideOnly(Side.CLIENT) - public ResourceLocation getTextureForPart(String partName){ - return ResourceManager.secure_access_door_tex; - } - - @Override - public ResourceLocation getTextureForPart(int skinIndex, String partName) { - return ResourceManager.secure_access_door_tex; - } - - @Override - @SideOnly(Side.CLIENT) - public WavefrontObjDisplayList getModel(){ - return ResourceManager.secure_access_door; - } - }; - - public static final DoorDecl ROUND_AIRLOCK_DOOR = new DoorDecl(){ - - @Override - public String getOpenSoundEnd() { - return "hbm:door.garage_stop"; - } - - @Override - public String getOpenSoundLoop() { - return "hbm:door.garage_move"; - } - - public float getSoundVolume(){ - return 2; - } - - @Override - @SideOnly(Side.CLIENT) - public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { - if("doorLeft".equals(partName)){ - set(trans, 0, 0, 1.5F*getNormTime(openTicks)); - } else if("doorRight".equals(partName)){ - set(trans, 0, 0, -1.5F*getNormTime(openTicks)); - } else { - super.getTranslation(partName, openTicks, child, trans); - } - }; - - @Override - @SideOnly(Side.CLIENT) - public void doOffsetTransform() { - GL11.glTranslated(0, 0, 0.5); - }; - - @Override - @SideOnly(Side.CLIENT) - public double[][] getClippingPlanes() { - return new double[][]{{0.0, 0.0, 1.0, 2.0001}, {0.0, 0.0, -1.0, 2.0001}}; - }; - - @Override - public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { - if(!open) - return super.getBlockBound(x, y, z, open); - if(z == 1){ - return AxisAlignedBB.getBoundingBox(0.4, 0, 0, 1, 1, 1); - } else if(z == -2){ - return AxisAlignedBB.getBoundingBox(0, 0, 0, 0.6, 1, 1); - } else if(y == 3){ - return AxisAlignedBB.getBoundingBox(0, 0.5, 0, 1, 1, 1); - } else if(y == 0){ - return AxisAlignedBB.getBoundingBox(0, 0, 0, 1, 0.0625, 1); - } - return super.getBlockBound(x, y, z, open); - }; - - @Override - public int timeToOpen() { - return 60; - }; - - @Override - public int[][] getDoorOpenRanges(){ - return new int[][]{{0, 0, 0, -2, 4, 2}, {0, 0, 0, 3, 4, 2}}; - } - - @Override - public int[] getDimensions() { - return new int[]{3, 0, 0, 0, 2, 1}; - }; - - @Override - @SideOnly(Side.CLIENT) - public ResourceLocation getTextureForPart(String partName){ - return ResourceManager.round_airlock_door_tex; - } - - @Override - public ResourceLocation getTextureForPart(int skinIndex, String partName) { - return ResourceManager.round_airlock_door_tex; - } - - @Override - @SideOnly(Side.CLIENT) - public WavefrontObjDisplayList getModel(){ - return ResourceManager.round_airlock_door; - } - }; - - public static final DoorDecl QE_SLIDING = new DoorDecl(){ - - @Override - public String getOpenSoundEnd() { - return "hbm:door.qe_sliding_opened"; - }; - @Override - public String getCloseSoundEnd() { - return "hbm:door.qe_sliding_shut"; - }; - @Override - public String getOpenSoundLoop() { - return "hbm:door.qe_sliding_opening"; - }; - - public float getSoundVolume(){ - return 2; - } - - @Override - @SideOnly(Side.CLIENT) - public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { - if(partName.startsWith("left")){ - set(trans, 0, 0, 1*getNormTime(openTicks)); - } else { - set(trans, 0, 0, -1*getNormTime(openTicks)); - } - }; - - @Override - @SideOnly(Side.CLIENT) - public void doOffsetTransform() { - GL11.glTranslated(0.4375, 0, 0.5); - }; - - @Override - public int timeToOpen() { - return 10; - }; - - @Override - public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { - if(open){ - if(z == 0){ - return AxisAlignedBB.getBoundingBox(1-0.125, 0, 1-0.125, 1, 1, 1); - } else { - return AxisAlignedBB.getBoundingBox(0, 0, 1-0.125, 0.125, 1, 1); - } - } else { - return AxisAlignedBB.getBoundingBox(0, 0, 1-0.125, 1, 1, 1); - } - }; - - @Override - public int[][] getDoorOpenRanges(){ - return new int[][]{{0, 0, 0, 2, 2, 2}}; - } - - @Override - public int[] getDimensions(){ - return new int[]{1, 0, 0, 0, 1, 0}; - } - - @Override - @SideOnly(Side.CLIENT) - public ResourceLocation getTextureForPart(String partName){ - return ResourceManager.qe_sliding_door_tex; - } - - @Override - public ResourceLocation getTextureForPart(int skinIndex, String partName) { - return getTextureForPart(partName); - } - - @Override - @SideOnly(Side.CLIENT) - public WavefrontObjDisplayList getModel(){ - return ResourceManager.qe_sliding_door; - } - - }; - - public static final DoorDecl QE_CONTAINMENT = new DoorDecl(){ - - @Override - public String getOpenSoundEnd() { - return "hbm:door.wgh_stop"; - }; - @Override - public String getOpenSoundLoop() { - return "hbm:door.wgh_start"; - }; - - @Override - public float getSoundVolume(){ - return 2; - } - - @Override - @SideOnly(Side.CLIENT) - public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { - if(!partName.equals("frame")){ - set(trans, 0, 3*getNormTime(openTicks), 0); - } else { - super.getTranslation(partName, openTicks, child, trans); - } - }; - - @Override - @SideOnly(Side.CLIENT) - public void doOffsetTransform() { - GL11.glTranslated(0.25, 0, 0); - }; - - @Override - @SideOnly(Side.CLIENT) - public double[][] getClippingPlanes() { - return new double[][]{{0, -1, 0, 3.0001}}; - }; - - @Override - public int timeToOpen() { - return 160; - }; - - @Override - public int[][] getDoorOpenRanges(){ - return new int[][]{{-1, 0, 0, 3, 3, 1}}; - } - - @Override - public int[] getDimensions(){ - return new int[]{2, 0, 0, 0, 1, 1}; - } - - @Override - public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { - if(!open) - return AxisAlignedBB.getBoundingBox(0, 0, 0.5, 1, 1, 1); - if(y > 1) - return AxisAlignedBB.getBoundingBox(0, 0.5, 0.5, 1, 1, 1); - else if(y == 0) - return AxisAlignedBB.getBoundingBox(0, 0, 0.5, 1, 0.1, 1); - return super.getBlockBound(x, y, z, open); - }; - - @Override - @SideOnly(Side.CLIENT) - public ResourceLocation getTextureForPart(String partName){ - if(partName.equals("decal")) - return ResourceManager.qe_containment_decal; - return ResourceManager.qe_containment_tex; - } - - @Override - public ResourceLocation getTextureForPart(int skinIndex, String partName) { - return getTextureForPart(partName); - } - - @Override - @SideOnly(Side.CLIENT) - public WavefrontObjDisplayList getModel(){ - return ResourceManager.qe_containment; - } - - }; - - public static final DoorDecl WATER_DOOR = new DoorDecl(){ - - @Override - public String getOpenSoundEnd() { - return "hbm:door.wgh_big_stop"; - }; - @Override - public String getOpenSoundLoop() { - return "hbm:door.wgh_big_start"; - }; - @Override - public String getOpenSoundStart() { - return "hbm:door.door.lever"; - }; - @Override - public String getCloseSoundStart() { - return null; - }; - @Override - public String getCloseSoundEnd() { - return "hbm:door.door.lever"; - }; - - @Override - public float getSoundVolume(){ - return 2; - } - - @Override - @SideOnly(Side.CLIENT) - public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { - if("bolt".equals(partName)){ - set(trans, 0, 0, 0.4F*Library.smoothstep(getNormTime(openTicks, 0, 30), 0, 1)); - } else { - set(trans, 0, 0, 0); - } - }; - - @Override - @SideOnly(Side.CLIENT) - public void doOffsetTransform(){ - GL11.glTranslated(0.375, 0, 0); - } - - @Override - @SideOnly(Side.CLIENT) - public void getOrigin(String partName, float[] orig) { - if("door".equals(partName) || "bolt".equals(partName)){ - set(orig, 0.125F, 1.5F, 1.18F); - return; - } else if("spinny_upper".equals(partName)){ - set(orig, 0.041499F, 2.43569F, -0.587849F); - return; - } else if("spinny_lower".equals(partName)){ - set(orig, 0.041499F, 0.571054F, -0.587849F); - return; - } - super.getOrigin(partName, orig); - }; - - @Override - @SideOnly(Side.CLIENT) - public void getRotation(String partName, float openTicks, float[] rot) { - if(partName.startsWith("spinny")){ - set(rot, Library.smoothstep(getNormTime(openTicks, 0, 30), 0, 1)*360, 0, 0); - return; - } else if("door".equals(partName) || "bolt".equals(partName)){ - set(rot, 0, Library.smoothstep(getNormTime(openTicks, 30, 60), 0, 1)*-134, 0); - return; - } - super.getRotation(partName, openTicks, rot); - }; - - @Override - @SideOnly(Side.CLIENT) - public boolean doesRender(String partName, boolean child) { - return child || !partName.startsWith("spinny"); - }; - - @Override - @SideOnly(Side.CLIENT) - public String[] getChildren(String partName) { - if("door".equals(partName)) - return new String[]{"spinny_lower", "spinny_upper"}; - return super.getChildren(partName); - }; - - @Override - public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { - if(!open){ - return AxisAlignedBB.getBoundingBox(0, 0, 0.75, 1, 1, 1); - } else if(y > 1) { - return AxisAlignedBB.getBoundingBox(0, 0.85, 0.75, 1, 1, 1); - } else if(y == 0){ - return AxisAlignedBB.getBoundingBox(0, 0, 0.75, 1, 0.15, 1); - } - return super.getBlockBound(x, y, z, open); - }; - - @Override - public int timeToOpen() { - return 60; - }; - - @Override - public int[][] getDoorOpenRanges(){ - return new int[][]{{1, 0, 0, -3, 3, 2}}; - } - - public float getDoorRangeOpenTime(int ticks, int idx) { - return getNormTime(ticks, 35, 40); - }; - - @Override - public int[] getDimensions(){ - return new int[]{2, 0, 0, 0, 1, 1}; - } - - @Override - @SideOnly(Side.CLIENT) - public ResourceLocation getTextureForPart(String partName){ - return ResourceManager.water_door_tex; - } - - @Override - public ResourceLocation getTextureForPart(int skinIndex, String partName) { - return ResourceManager.water_door_tex; - } - - @Override - @SideOnly(Side.CLIENT) - public WavefrontObjDisplayList getModel(){ - return ResourceManager.water_door; - } - - }; - - public static final DoorDecl LARGE_VEHICLE_DOOR = new DoorDecl(){ - - @Override - @SideOnly(Side.CLIENT) - public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { - if("doorLeft".equals(partName)){ - set(trans, 0, 0, 3*getNormTime(openTicks)); - } else if("doorRight".equals(partName)){ - set(trans, 0, 0, -3*getNormTime(openTicks)); - } else { - super.getTranslation(partName, openTicks, child, trans); - } - }; - - @Override - public String getOpenSoundEnd() { - return "hbm:door.garage_stop"; - } - - @Override - public String getOpenSoundLoop() { - return "hbm:door.garage_move"; - }; - - public float getSoundVolume(){ - return 2; - } - - @Override - @SideOnly(Side.CLIENT) - public double[][] getClippingPlanes() { - return new double[][]{{0.0, 0.0, 1.0, 3.50001}, {0.0, 0.0, -1.0, 3.50001}}; - }; - - @Override - public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { - if(!open) - return super.getBlockBound(x, y, z, open); - if(z == 3){ - return AxisAlignedBB.getBoundingBox(0.4, 0, 0, 1, 1, 1); - } else if(z == -3){ - return AxisAlignedBB.getBoundingBox(0, 0, 0, 0.6, 1, 1); - } - return super.getBlockBound(x, y, z, open); - }; - - @Override - public int timeToOpen() { - return 60; - }; - - @Override - public int[][] getDoorOpenRanges(){ - return new int[][]{{0, 0, 0, -4, 6, 2}, {0, 0, 0, 4, 6, 2}}; - } - - @Override - public int[] getDimensions() { - return new int[]{5, 0, 0, 0, 3, 3}; - }; - - @Override - @SideOnly(Side.CLIENT) - public ResourceLocation getTextureForPart(String partName){ - return ResourceManager.large_vehicle_door_tex; - } - - @Override - public ResourceLocation getTextureForPart(int skinIndex, String partName) { - return ResourceManager.large_vehicle_door_tex; - } - - @Override - @SideOnly(Side.CLIENT) - public WavefrontObjDisplayList getModel(){ - return ResourceManager.large_vehicle_door; - } - - }; - - //Format: x, y, z, tangent amount 1 (how long the door would be if it moved up), tangent amount 2 (door places blocks in this direction), axis (0-x, 1-y, 2-z) - public abstract int[][] getDoorOpenRanges(); - - public abstract int[] getDimensions(); - - public float getDoorRangeOpenTime(int ticks, int idx) { - return getNormTime(ticks); - } - - public int timeToOpen() { - return 20; - } - - public float getNormTime(float time) { - return getNormTime(time, 0, timeToOpen()); - } - - public float getNormTime(float time, float min, float max) { - return BobMathUtil.remap01_clamp(time, min, max); - } - - public boolean hasSkins() { - return false; - } - - public int getSkinCount() { - return 0; - } - - @SideOnly(Side.CLIENT) - public ResourceLocation getTextureForPart(String partName) { - return getTextureForPart(0, partName); - } - - @SideOnly(Side.CLIENT) - public abstract ResourceLocation getTextureForPart(int skinIndex, String partName); - - @SideOnly(Side.CLIENT) - public abstract WavefrontObjDisplayList getModel(); - - @SideOnly(Side.CLIENT) - public AnimatedModel getAnimatedModel() { - return null; - } - - @SideOnly(Side.CLIENT) - public Animation getAnim() { - return null; - } - - @SideOnly(Side.CLIENT) - public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { - set(trans, 0, 0, 0); - } - - @SideOnly(Side.CLIENT) - public void getRotation(String partName, float openTicks, float[] rot) { - set(rot, 0, 0, 0); - } - - @SideOnly(Side.CLIENT) - public void getOrigin(String partName, float[] orig) { - set(orig, 0, 0, 0); - } - - @SideOnly(Side.CLIENT) - public boolean doesRender(String partName, boolean child) { - return true; - } - - private static final String[] nothing = new String[]{}; - - @SideOnly(Side.CLIENT) - public String[] getChildren(String partName) { - return nothing; - } - - @SideOnly(Side.CLIENT) - public double[][] getClippingPlanes() { - return new double[][]{}; - } - - @SideOnly(Side.CLIENT) - public void doOffsetTransform() { - } - - public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { - return open ? AxisAlignedBB.getBoundingBox(0, 0, 0, 0, 0, 0) : AxisAlignedBB.getBoundingBox(0, 0, 0, 1, 1, 1); - } - - public boolean isLadder(boolean open) { - return false; - } - - public String getOpenSoundLoop() { - return null; - } - - //Hack - public String getSoundLoop2() { - return null; - } - - public String getCloseSoundLoop() { - return getOpenSoundLoop(); - } - - public String getOpenSoundStart() { - return null; - } - - public String getCloseSoundStart() { - return getOpenSoundStart(); - } - - public String getOpenSoundEnd() { - return null; - } - - public String getCloseSoundEnd() { - return getOpenSoundEnd(); - } - - public float getSoundVolume() { - return 1; - } - - public float[] set(float[] f, float x, float y, float z) { - f[0] = x; - f[1] = y; - f[2] = z; - return f; - } + public static final DoorDecl TRANSITION_SEAL = new DoorDecl() { + + @Override + public String getOpenSoundStart() { + return "hbm:door.TransitionSealOpen"; + } + + @Override + public float getSoundVolume() { + return 6; + } + + @Override + @SideOnly(Side.CLIENT) + public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { + if(!partName.equals("base")) { + set(trans, 0, 3.5F * getNormTime(openTicks), 0); + } else { + super.getTranslation(partName, openTicks, child, trans); + } + } + + @Override + @SideOnly(Side.CLIENT) + public void doOffsetTransform() { + GL11.glTranslated(0, 0, 0.5); + } + + @Override + @SideOnly(Side.CLIENT) + public double[][] getClippingPlanes() { + return super.getClippingPlanes(); + } + + @Override + public int timeToOpen() { + return 480; + } + + @Override + public int[][] getDoorOpenRanges() { + // 3 is tall + // 4 is wide + return new int[][] { { -9, 2, 0, 20, 20, 1 } }; + } + + @Override + public int[] getDimensions() { + return new int[] { 23, 0, 0, 0, 13, 12 }; + } + + @Override + public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { + return super.getBlockBound(x, y, z, open); + } + + @Override + @SideOnly(Side.CLIENT) + public ResourceLocation getTextureForPart(int skinIndex, String partName) { + return ResourceManager.transition_seal_tex; + } + + @Override + @SideOnly(Side.CLIENT) + public Animation getAnim() { + return ResourceManager.transition_seal_anim; + } + + @Override + @SideOnly(Side.CLIENT) + public AnimatedModel getAnimatedModel() { + return ResourceManager.transition_seal; + } + + @Override + @SideOnly(Side.CLIENT) + public WavefrontObjDisplayList getModel() { + return null; + } + }; + + public static final DoorDecl FIRE_DOOR = new DoorDecl() { + + @Override + public String getOpenSoundEnd() { + return "hbm:door.wghStop"; + } + + @Override + public String getOpenSoundLoop() { + return "hbm:door.wghStart"; + } + + @Override + public String getSoundLoop2() { + return "hbm:door.alarm6"; + } + + @Override + public float getSoundVolume() { + return 2; + } + + @Override + @SideOnly(Side.CLIENT) + public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { + if(!partName.equals("frame")) { + set(trans, 0, 3 * getNormTime(openTicks), 0); + } else { + super.getTranslation(partName, openTicks, child, trans); + } + } + + @Override + @SideOnly(Side.CLIENT) + public void doOffsetTransform() { + GL11.glTranslated(0, 0, 0.5); + } + + @Override + @SideOnly(Side.CLIENT) + public double[][] getClippingPlanes() { + return new double[][] { { 0, -1, 0, 3.0001 } }; + } + + @Override + public int timeToOpen() { + return 160; + } + + @Override + public int[][] getDoorOpenRanges() { + return new int[][] { { -1, 0, 0, 3, 4, 1 } }; + } + + @Override + public int[] getDimensions() { + return new int[] { 2, 0, 0, 0, 2, 1 }; + } + + @Override + public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { + if(!open) + return AxisAlignedBB.getBoundingBox(0, 0, 0, 1, 1, 1); + if(z == 1) { + return AxisAlignedBB.getBoundingBox(0.5, 0, 0, 1, 1, 1); + } else if(z == -2) { + return AxisAlignedBB.getBoundingBox(0, 0, 0, 0.5, 1, 1); + } else if(y > 1) { + return AxisAlignedBB.getBoundingBox(0, 0.75, 0, 1, 1, 1); + } else if(y == 0) { + return AxisAlignedBB.getBoundingBox(0, 0, 0, 1, 0.1, 1); + } else { + return super.getBlockBound(x, y, z, open); + } + } + + @Override + @SideOnly(Side.CLIENT) + public ResourceLocation getTextureForPart(int skinIndex, String partName) { + return ResourceManager.fire_door_tex; + } + + @Override + @SideOnly(Side.CLIENT) + public WavefrontObjDisplayList getModel() { + return ResourceManager.fire_door; + } + }; + + public static final DoorDecl SLIDE_DOOR = new DoorDecl() { + + @Override + public String getOpenSoundEnd() { + return "hbm:door.sliding_door_opened"; + } + + @Override + public String getCloseSoundEnd() { + return "hbm:door.sliding_door_shut"; + } + + @Override + public String getOpenSoundLoop() { + return "hbm:door.sliding_door_opening"; + } + + @Override + public String getSoundLoop2() { + return "hbm:door.sliding_door_opening"; + } + + @Override + public float getSoundVolume() { + return 2; + } + + @Override + @SideOnly(Side.CLIENT) + public void doOffsetTransform() { + GL11.glRotated(-90, 0, 1, 0); + } + + @Override + @SideOnly(Side.CLIENT) + public double[][] getClippingPlanes() { + return new double[][] { { -1, 0, 0, 3.50001 }, { 1, 0, 0, 3.50001 } }; + } + + @Override + public int timeToOpen() { + return 24; + } + + @Override + public int[][] getDoorOpenRanges() { + return new int[][] { { -2, 0, 0, 4, 5, 1 } }; + } + + @Override + public int[] getDimensions() { + return new int[] { 3, 0, 0, 0, 3, 3 }; + } + + @Override + public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { + if(open) { + if(y == 3) { + return AxisAlignedBB.getBoundingBox(0, 0.5, 0, 1, 1, 1); + } else if(y == 0) { + return AxisAlignedBB.getBoundingBox(0, 0, 0, 1, 0.08, 1); + } + } + return super.getBlockBound(x, y, z, open); + } + + @Override + public boolean hasSkins() { + return true; + } + + @Override + public int getSkinCount() { + return 3; + } + + @Override + @SideOnly(Side.CLIENT) + public ResourceLocation getTextureForPart(int skinIndex, String partName) { + return new ResourceLocation[] { ResourceManager.sliding_blast_door_tex, ResourceManager.sliding_blast_door_variant1_tex, ResourceManager.sliding_blast_door_variant2_tex }[skinIndex]; + } + + @Override + public WavefrontObjDisplayList getModel() { + return null; + } + + @Override + public Animation getAnim() { + return ResourceManager.sliding_blast_door_anim; + } + + @Override + public AnimatedModel getAnimatedModel() { + return ResourceManager.sliding_blast_door; + } + }; + + public static final DoorDecl SLIDING_SEAL_DOOR = new DoorDecl() { + + @Override + public String getOpenSoundEnd() { + return "hbm:door.sliding_seal_stop"; + } + + @Override + public String getOpenSoundStart() { + return "hbm:door.sliding_seal_open"; + } + + public float getSoundVolume() { + return 2; + } + + @Override + @SideOnly(Side.CLIENT) + public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { + if(partName.startsWith("door")) { + set(trans, 0, 0, Library.smoothstep(getNormTime(openTicks), 0, 1)); + } else { + set(trans, 0, 0, 0); + } + }; + + @Override + @SideOnly(Side.CLIENT) + public double[][] getClippingPlanes() { + return new double[][] { { 0, 0, -1, 0.5001 } }; + }; + + @Override + @SideOnly(Side.CLIENT) + public void doOffsetTransform() { + GL11.glTranslated(0.375, 0, 0); + }; + + @Override + public int timeToOpen() { + return 20; + }; + + @Override + public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { + if(open) { + if(y == 0) + return AxisAlignedBB.getBoundingBox(0, 0, 1 - 0.25, 1, 0.125, 1); + return super.getBlockBound(x, y, z, open); + } else { + return AxisAlignedBB.getBoundingBox(0, 0, 1 - 0.25, 1, 1, 1); + } + }; + + @Override + public int[][] getDoorOpenRanges() { + return new int[][] { { 0, 0, 0, 1, 2, 2 } }; + } + + @Override + public int[] getDimensions() { + return new int[] { 1, 0, 0, 0, 0, 0 }; + } + + @Override + @SideOnly(Side.CLIENT) + public ResourceLocation getTextureForPart(String partName) { + return ResourceManager.sliding_seal_door_tex; + } + + @Override + public ResourceLocation getTextureForPart(int skinIndex, String partName) { + return ResourceManager.sliding_seal_door_tex; + } + + @Override + @SideOnly(Side.CLIENT) + public WavefrontObjDisplayList getModel() { + return ResourceManager.sliding_seal_door; + } + }; + + public static final DoorDecl SECURE_ACCESS_DOOR = new DoorDecl() { + + @Override + public String getCloseSoundLoop() { + return "hbm:door.garage_move"; + } + + @Override + public String getCloseSoundEnd() { + return "hbm:door.garage_stop"; + } + + @Override + public String getOpenSoundEnd() { + return "hbm:door.garage_stop"; + } + + @Override + public String getOpenSoundLoop() { + return "hbm:door.garage_move"; + } + + @Override + public float getSoundVolume() { + return 2; + } + + @Override + @SideOnly(Side.CLIENT) + public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { + if(!partName.equals("base")) { + set(trans, 0, 3.5F * getNormTime(openTicks), 0); + } else { + super.getTranslation(partName, openTicks, child, trans); + } + }; + + @Override + @SideOnly(Side.CLIENT) + public void doOffsetTransform() { + GL11.glRotated(90, 0, 1, 0); + }; + + @Override + @SideOnly(Side.CLIENT) + public double[][] getClippingPlanes() { + return new double[][] { { 0, -1, 0, 5 } }; + }; + + @Override + public int timeToOpen() { + return 120; + }; + + @Override + public int[][] getDoorOpenRanges() { + return new int[][] { { -2, 1, 0, 4, 5, 1 } }; + } + + @Override + public int[] getDimensions() { + return new int[] { 4, 0, 0, 0, 2, 2 }; + } + + @Override + public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { + if(!open) { + if(y > 0) { + return AxisAlignedBB.getBoundingBox(0, 0, 0.375, 1, 1, 0.625); + } + return AxisAlignedBB.getBoundingBox(0, 0, 0, 1, 1, 1); + } + if(y == 1) { + return AxisAlignedBB.getBoundingBox(0, 0, 0, 1, 0.0625, 1); + } else if(y == 4) { + return AxisAlignedBB.getBoundingBox(0, 0.5, 0.15, 1, 1, 0.85); + } else { + return super.getBlockBound(x, y, z, open); + } + } + + @Override + @SideOnly(Side.CLIENT) + public ResourceLocation getTextureForPart(String partName) { + return ResourceManager.secure_access_door_tex; + } + + @Override + public ResourceLocation getTextureForPart(int skinIndex, String partName) { + return ResourceManager.secure_access_door_tex; + } + + @Override + @SideOnly(Side.CLIENT) + public WavefrontObjDisplayList getModel() { + return ResourceManager.secure_access_door; + } + }; + + public static final DoorDecl ROUND_AIRLOCK_DOOR = new DoorDecl() { + + @Override + public String getOpenSoundEnd() { + return "hbm:door.garage_stop"; + } + + @Override + public String getOpenSoundLoop() { + return "hbm:door.garage_move"; + } + + public float getSoundVolume() { + return 2; + } + + @Override + @SideOnly(Side.CLIENT) + public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { + if("doorLeft".equals(partName)) { + set(trans, 0, 0, 1.5F * getNormTime(openTicks)); + } else if("doorRight".equals(partName)) { + set(trans, 0, 0, -1.5F * getNormTime(openTicks)); + } else { + super.getTranslation(partName, openTicks, child, trans); + } + }; + + @Override + @SideOnly(Side.CLIENT) + public void doOffsetTransform() { + GL11.glTranslated(0, 0, 0.5); + }; + + @Override + @SideOnly(Side.CLIENT) + public double[][] getClippingPlanes() { + return new double[][] { { 0.0, 0.0, 1.0, 2.0001 }, { 0.0, 0.0, -1.0, 2.0001 } }; + }; + + @Override + public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { + if(!open) + return super.getBlockBound(x, y, z, open); + if(z == 1) { + return AxisAlignedBB.getBoundingBox(0.4, 0, 0, 1, 1, 1); + } else if(z == -2) { + return AxisAlignedBB.getBoundingBox(0, 0, 0, 0.6, 1, 1); + } else if(y == 3) { + return AxisAlignedBB.getBoundingBox(0, 0.5, 0, 1, 1, 1); + } else if(y == 0) { + return AxisAlignedBB.getBoundingBox(0, 0, 0, 1, 0.0625, 1); + } + return super.getBlockBound(x, y, z, open); + }; + + @Override + public int timeToOpen() { + return 60; + }; + + @Override + public int[][] getDoorOpenRanges() { + return new int[][] { { 0, 0, 0, -2, 4, 2 }, { 0, 0, 0, 3, 4, 2 } }; + } + + @Override + public int[] getDimensions() { + return new int[] { 3, 0, 0, 0, 2, 1 }; + }; + + @Override + @SideOnly(Side.CLIENT) + public ResourceLocation getTextureForPart(String partName) { + return ResourceManager.round_airlock_door_tex; + } + + @Override + public ResourceLocation getTextureForPart(int skinIndex, String partName) { + return ResourceManager.round_airlock_door_tex; + } + + @Override + @SideOnly(Side.CLIENT) + public WavefrontObjDisplayList getModel() { + return ResourceManager.round_airlock_door; + } + }; + + public static final DoorDecl QE_SLIDING = new DoorDecl() { + + @Override + public String getOpenSoundEnd() { + return "hbm:door.qe_sliding_opened"; + }; + + @Override + public String getCloseSoundEnd() { + return "hbm:door.qe_sliding_shut"; + }; + + @Override + public String getOpenSoundLoop() { + return "hbm:door.qe_sliding_opening"; + }; + + public float getSoundVolume() { + return 2; + } + + @Override + @SideOnly(Side.CLIENT) + public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { + if(partName.startsWith("left")) { + set(trans, 0, 0, 1 * getNormTime(openTicks)); + } else { + set(trans, 0, 0, -1 * getNormTime(openTicks)); + } + }; + + @Override + @SideOnly(Side.CLIENT) + public void doOffsetTransform() { + GL11.glTranslated(0.4375, 0, 0.5); + }; + + @Override + public int timeToOpen() { + return 10; + }; + + @Override + public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { + if(open) { + if(z == 0) { + return AxisAlignedBB.getBoundingBox(1 - 0.125, 0, 1 - 0.125, 1, 1, 1); + } else { + return AxisAlignedBB.getBoundingBox(0, 0, 1 - 0.125, 0.125, 1, 1); + } + } else { + return AxisAlignedBB.getBoundingBox(0, 0, 1 - 0.125, 1, 1, 1); + } + }; + + @Override + public int[][] getDoorOpenRanges() { + return new int[][] { { 0, 0, 0, 2, 2, 2 } }; + } + + @Override + public int[] getDimensions() { + return new int[] { 1, 0, 0, 0, 1, 0 }; + } + + @Override + @SideOnly(Side.CLIENT) + public ResourceLocation getTextureForPart(String partName) { + return ResourceManager.qe_sliding_door_tex; + } + + @Override + public ResourceLocation getTextureForPart(int skinIndex, String partName) { + return getTextureForPart(partName); + } + + @Override + @SideOnly(Side.CLIENT) + public WavefrontObjDisplayList getModel() { + return ResourceManager.qe_sliding_door; + } + + }; + + public static final DoorDecl QE_CONTAINMENT = new DoorDecl() { + + @Override + public String getOpenSoundEnd() { + return "hbm:door.wgh_stop"; + }; + + @Override + public String getOpenSoundLoop() { + return "hbm:door.wgh_start"; + }; + + @Override + public float getSoundVolume() { + return 2; + } + + @Override + @SideOnly(Side.CLIENT) + public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { + if(!partName.equals("frame")) { + set(trans, 0, 3 * getNormTime(openTicks), 0); + } else { + super.getTranslation(partName, openTicks, child, trans); + } + }; + + @Override + @SideOnly(Side.CLIENT) + public void doOffsetTransform() { + GL11.glTranslated(0.25, 0, 0); + }; + + @Override + @SideOnly(Side.CLIENT) + public double[][] getClippingPlanes() { + return new double[][] { { 0, -1, 0, 3.0001 } }; + }; + + @Override + public int timeToOpen() { + return 160; + }; + + @Override + public int[][] getDoorOpenRanges() { + return new int[][] { { -1, 0, 0, 3, 3, 1 } }; + } + + @Override + public int[] getDimensions() { + return new int[] { 2, 0, 0, 0, 1, 1 }; + } + + @Override + public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { + if(!open) + return AxisAlignedBB.getBoundingBox(0, 0, 0.5, 1, 1, 1); + if(y > 1) + return AxisAlignedBB.getBoundingBox(0, 0.5, 0.5, 1, 1, 1); + else if(y == 0) + return AxisAlignedBB.getBoundingBox(0, 0, 0.5, 1, 0.1, 1); + return super.getBlockBound(x, y, z, open); + }; + + @Override + @SideOnly(Side.CLIENT) + public ResourceLocation getTextureForPart(String partName) { + if(partName.equals("decal")) + return ResourceManager.qe_containment_decal; + return ResourceManager.qe_containment_tex; + } + + @Override + public ResourceLocation getTextureForPart(int skinIndex, String partName) { + return getTextureForPart(partName); + } + + @Override + @SideOnly(Side.CLIENT) + public WavefrontObjDisplayList getModel() { + return ResourceManager.qe_containment; + } + + }; + + public static final DoorDecl WATER_DOOR = new DoorDecl() { + + @Override + public String getOpenSoundEnd() { + return "hbm:door.wgh_big_stop"; + }; + + @Override + public String getOpenSoundLoop() { + return "hbm:door.wgh_big_start"; + }; + + @Override + public String getOpenSoundStart() { + return "hbm:door.door.lever"; + }; + + @Override + public String getCloseSoundStart() { + return null; + }; + + @Override + public String getCloseSoundEnd() { + return "hbm:door.door.lever"; + }; + + @Override + public float getSoundVolume() { + return 2; + } + + @Override + @SideOnly(Side.CLIENT) + public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { + if("bolt".equals(partName)) { + set(trans, 0, 0, 0.4F * Library.smoothstep(getNormTime(openTicks, 0, 30), 0, 1)); + } else { + set(trans, 0, 0, 0); + } + }; + + @Override + @SideOnly(Side.CLIENT) + public void doOffsetTransform() { + GL11.glTranslated(0.375, 0, 0); + } + + @Override + @SideOnly(Side.CLIENT) + public void getOrigin(String partName, float[] orig) { + if("door".equals(partName) || "bolt".equals(partName)) { + set(orig, 0.125F, 1.5F, 1.18F); + return; + } else if("spinny_upper".equals(partName)) { + set(orig, 0.041499F, 2.43569F, -0.587849F); + return; + } else if("spinny_lower".equals(partName)) { + set(orig, 0.041499F, 0.571054F, -0.587849F); + return; + } + super.getOrigin(partName, orig); + }; + + @Override + @SideOnly(Side.CLIENT) + public void getRotation(String partName, float openTicks, float[] rot) { + if(partName.startsWith("spinny")) { + set(rot, Library.smoothstep(getNormTime(openTicks, 0, 30), 0, 1) * 360, 0, 0); + return; + } else if("door".equals(partName) || "bolt".equals(partName)) { + set(rot, 0, Library.smoothstep(getNormTime(openTicks, 30, 60), 0, 1) * -134, 0); + return; + } + super.getRotation(partName, openTicks, rot); + }; + + @Override + @SideOnly(Side.CLIENT) + public boolean doesRender(String partName, boolean child) { + return child || !partName.startsWith("spinny"); + }; + + @Override + @SideOnly(Side.CLIENT) + public String[] getChildren(String partName) { + if("door".equals(partName)) + return new String[] { "spinny_lower", "spinny_upper" }; + return super.getChildren(partName); + }; + + @Override + public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { + if(!open) { + return AxisAlignedBB.getBoundingBox(0, 0, 0.75, 1, 1, 1); + } else if(y > 1) { + return AxisAlignedBB.getBoundingBox(0, 0.85, 0.75, 1, 1, 1); + } else if(y == 0) { + return AxisAlignedBB.getBoundingBox(0, 0, 0.75, 1, 0.15, 1); + } + return super.getBlockBound(x, y, z, open); + }; + + @Override + public int timeToOpen() { + return 60; + }; + + @Override + public int[][] getDoorOpenRanges() { + return new int[][] { { 1, 0, 0, -3, 3, 2 } }; + } + + public float getDoorRangeOpenTime(int ticks, int idx) { + return getNormTime(ticks, 35, 40); + }; + + @Override + public int[] getDimensions() { + return new int[] { 2, 0, 0, 0, 1, 1 }; + } + + @Override + @SideOnly(Side.CLIENT) + public ResourceLocation getTextureForPart(String partName) { + return ResourceManager.water_door_tex; + } + + @Override + public ResourceLocation getTextureForPart(int skinIndex, String partName) { + return ResourceManager.water_door_tex; + } + + @Override + @SideOnly(Side.CLIENT) + public WavefrontObjDisplayList getModel() { + return ResourceManager.water_door; + } + + }; + + public static final DoorDecl LARGE_VEHICLE_DOOR = new DoorDecl() { + + @Override + @SideOnly(Side.CLIENT) + public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { + if("doorLeft".equals(partName)) { + set(trans, 0, 0, 3 * getNormTime(openTicks)); + } else if("doorRight".equals(partName)) { + set(trans, 0, 0, -3 * getNormTime(openTicks)); + } else { + super.getTranslation(partName, openTicks, child, trans); + } + }; + + @Override + public String getOpenSoundEnd() { + return "hbm:door.garage_stop"; + } + + @Override + public String getOpenSoundLoop() { + return "hbm:door.garage_move"; + }; + + public float getSoundVolume() { + return 2; + } + + @Override + @SideOnly(Side.CLIENT) + public double[][] getClippingPlanes() { + return new double[][] { { 0.0, 0.0, 1.0, 3.50001 }, { 0.0, 0.0, -1.0, 3.50001 } }; + }; + + @Override + public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { + if(!open) + return super.getBlockBound(x, y, z, open); + if(z == 3) { + return AxisAlignedBB.getBoundingBox(0.4, 0, 0, 1, 1, 1); + } else if(z == -3) { + return AxisAlignedBB.getBoundingBox(0, 0, 0, 0.6, 1, 1); + } + return super.getBlockBound(x, y, z, open); + }; + + @Override + public int timeToOpen() { + return 60; + }; + + @Override + public int[][] getDoorOpenRanges() { + return new int[][] { { 0, 0, 0, -4, 6, 2 }, { 0, 0, 0, 4, 6, 2 } }; + } + + @Override + public int[] getDimensions() { + return new int[] { 5, 0, 0, 0, 3, 3 }; + }; + + @Override + @SideOnly(Side.CLIENT) + public ResourceLocation getTextureForPart(String partName) { + return ResourceManager.large_vehicle_door_tex; + } + + @Override + public ResourceLocation getTextureForPart(int skinIndex, String partName) { + return ResourceManager.large_vehicle_door_tex; + } + + @Override + @SideOnly(Side.CLIENT) + public WavefrontObjDisplayList getModel() { + return ResourceManager.large_vehicle_door; + } + + }; + + // Format: x, y, z, tangent amount 1 (how long the door would be if it moved + // up), tangent amount 2 (door places blocks in this direction), axis (0-x, + // 1-y, 2-z) + public abstract int[][] getDoorOpenRanges(); + + public abstract int[] getDimensions(); + + public float getDoorRangeOpenTime(int ticks, int idx) { + return getNormTime(ticks); + } + + public int timeToOpen() { + return 20; + } + + public float getNormTime(float time) { + return getNormTime(time, 0, timeToOpen()); + } + + public float getNormTime(float time, float min, float max) { + return BobMathUtil.remap01_clamp(time, min, max); + } + + public boolean hasSkins() { + return false; + } + + public int getSkinCount() { + return 0; + } + + @SideOnly(Side.CLIENT) + public ResourceLocation getTextureForPart(String partName) { + return getTextureForPart(0, partName); + } + + @SideOnly(Side.CLIENT) + public abstract ResourceLocation getTextureForPart(int skinIndex, String partName); + + @SideOnly(Side.CLIENT) + public abstract WavefrontObjDisplayList getModel(); + + @SideOnly(Side.CLIENT) + public AnimatedModel getAnimatedModel() { + return null; + } + + @SideOnly(Side.CLIENT) + public Animation getAnim() { + return null; + } + + @SideOnly(Side.CLIENT) + public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { + set(trans, 0, 0, 0); + } + + @SideOnly(Side.CLIENT) + public void getRotation(String partName, float openTicks, float[] rot) { + set(rot, 0, 0, 0); + } + + @SideOnly(Side.CLIENT) + public void getOrigin(String partName, float[] orig) { + set(orig, 0, 0, 0); + } + + @SideOnly(Side.CLIENT) + public boolean doesRender(String partName, boolean child) { + return true; + } + + private static final String[] nothing = new String[] {}; + + @SideOnly(Side.CLIENT) + public String[] getChildren(String partName) { + return nothing; + } + + @SideOnly(Side.CLIENT) + public double[][] getClippingPlanes() { + return new double[][] {}; + } + + @SideOnly(Side.CLIENT) + public void doOffsetTransform() { + } + + public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { + return open ? AxisAlignedBB.getBoundingBox(0, 0, 0, 0, 0, 0) : AxisAlignedBB.getBoundingBox(0, 0, 0, 1, 1, 1); + } + + public boolean isLadder(boolean open) { + return false; + } + + public String getOpenSoundLoop() { + return null; + } + + // Hack + public String getSoundLoop2() { + return null; + } + + public String getCloseSoundLoop() { + return getOpenSoundLoop(); + } + + public String getOpenSoundStart() { + return null; + } + + public String getCloseSoundStart() { + return getOpenSoundStart(); + } + + public String getOpenSoundEnd() { + return null; + } + + public String getCloseSoundEnd() { + return getOpenSoundEnd(); + } + + public float getSoundVolume() { + return 1; + } + + public float[] set(float[] f, float x, float y, float z) { + f[0] = x; + f[1] = y; + f[2] = z; + return f; + } } diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java index 24a739811..6dd6a97be 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java @@ -23,6 +23,7 @@ import com.hbm.packet.AuxGaugePacket; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.TEMissileMultipartPacket; import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IRadarCommandReceiver; import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.util.fauxpointtwelve.DirPos; @@ -47,7 +48,7 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityCompactLauncher extends TileEntityLoadedBase implements ISidedInventory, IFluidContainer, IFluidAcceptor, IEnergyUser, IFluidStandardReceiver, IGUIProvider { +public class TileEntityCompactLauncher extends TileEntityLoadedBase implements ISidedInventory, IFluidContainer, IFluidAcceptor, IEnergyUser, IFluidStandardReceiver, IGUIProvider, IRadarCommandReceiver { private ItemStack slots[]; @@ -207,7 +208,7 @@ public class TileEntityCompactLauncher extends TileEntityLoadedBase implements I for(int z = -1; z <= 1; z++) { if(worldObj.isBlockIndirectlyGettingPowered(xCoord + x, yCoord, zCoord + z) && canLaunch()) { - launch(); + launchFromDesignator(); break outer; } } @@ -268,14 +269,31 @@ public class TileEntityCompactLauncher extends TileEntityLoadedBase implements I return false; } - - public void launch() { - worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:weapon.missileTakeOff", 10.0F, 1.0F); + @Override + public boolean sendCommandEntity(Entity target) { + return sendCommandPosition((int) Math.floor(target.posX), yCoord, (int) Math.floor(target.posX)); + } + + @Override + public boolean sendCommandPosition(int x, int y, int z) { + if(!canLaunch()) return false; + this.launchTo(x, z); + return true; + } + + public void launchFromDesignator() { int tX = slots[1].stackTagCompound.getInteger("xCoord"); int tZ = slots[1].stackTagCompound.getInteger("zCoord"); + this.launchTo(tX, tZ); + } + + public void launchTo(int tX, int tZ) { + + worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:weapon.missileTakeOff", 10.0F, 1.0F); + ItemMissile chip = (ItemMissile) Item.getItemById(ItemCustomMissile.readFromNBT(slots[0], "chip")); float c = (Float)chip.attributes[0]; float f = 1.0F; diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java index 1b1281ead..709db4fdb 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java @@ -25,6 +25,7 @@ import com.hbm.packet.AuxGaugePacket; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.TEMissileMultipartPacket; import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IRadarCommandReceiver; import com.hbm.tileentity.TileEntityLoadedBase; import api.hbm.energy.IEnergyUser; @@ -39,19 +40,22 @@ import li.cil.oc.api.machine.Callback; import li.cil.oc.api.machine.Context; import li.cil.oc.api.network.SimpleComponent; import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.ISidedInventory; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISidedInventory, IEnergyUser, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver, IGUIProvider, SimpleComponent { +public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISidedInventory, IEnergyUser, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver, IGUIProvider, SimpleComponent, IRadarCommandReceiver { private ItemStack slots[]; @@ -216,7 +220,7 @@ public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISide for(int z = -4; z <= 4; z++) { if(worldObj.isBlockIndirectlyGettingPowered(xCoord + x, yCoord, zCoord + z) && canLaunch()) { - launch(); + launchFromDesignator(); break outer; } } @@ -262,15 +266,47 @@ public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISide return false; } - - public void launch() { - worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:weapon.missileTakeOff", 10.0F, 1.0F); + @Override + public boolean sendCommandEntity(Entity target) { + return sendCommandPosition((int) Math.floor(target.posX), yCoord, (int) Math.floor(target.posX)); + } + + @Override + public boolean sendCommandPosition(int x, int y, int z) { + if(!canLaunch()) return false; + this.launchTo(x, z); + return true; + } + + public void launchFromDesignator() { int tX = slots[1].stackTagCompound.getInteger("xCoord"); int tZ = slots[1].stackTagCompound.getInteger("zCoord"); - EntityMissileCustom missile = new EntityMissileCustom(worldObj, xCoord + 0.5F, yCoord + 2.5F, zCoord + 0.5F, tX, tZ, getStruct(slots[0])); + this.launchTo(tX, tZ); + } + + public void launchTo(int tX, int tZ) { + + worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:weapon.missileTakeOff", 10.0F, 1.0F); + + ItemMissile chip = (ItemMissile) Item.getItemById(ItemCustomMissile.readFromNBT(slots[0], "chip")); + float c = (Float)chip.attributes[0]; + float f = 1.0F; + + if(getStruct(slots[0]).fins != null) { + ItemMissile fins = (ItemMissile) Item.getItemById(ItemCustomMissile.readFromNBT(slots[0], "stability")); + f = (Float) fins.attributes[0]; + } + + Vec3 target = Vec3.createVectorHelper(xCoord - tX, 0, zCoord - tZ); + target.xCoord *= c * f; + target.zCoord *= c * f; + + target.rotateAroundY(worldObj.rand.nextFloat() * 360); + + EntityMissileCustom missile = new EntityMissileCustom(worldObj, xCoord + 0.5F, yCoord + 2.5F, zCoord + 0.5F, tX + (int)target.xCoord, tZ + (int)target.zCoord, getStruct(slots[0])); worldObj.spawnEntityInWorld(missile); subtractFuel(); diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_exposure_chamber.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_exposure_chamber.png new file mode 100644 index 0000000000000000000000000000000000000000..f9e65f885b185b69ccee70f84c46e4b082cb4f5d GIT binary patch literal 3129 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 Date: Tue, 14 Nov 2023 18:17:03 -0600 Subject: [PATCH 405/432] first commit on new shit --- .../machine/TileEntityPWRController.java | 42 +++++++++++++++++++ .../machine/rbmk/TileEntityRBMKStorage.java | 37 +--------------- 2 files changed, 43 insertions(+), 36 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java index 2fa44fcf8..8fa21dd0f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java @@ -25,8 +25,12 @@ import com.hbm.util.EnumUtil; import com.hbm.util.fauxpointtwelve.BlockPos; import api.hbm.fluid.IFluidStandardTransceiver; +import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; import net.minecraft.block.Block; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; @@ -37,6 +41,7 @@ import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) public class TileEntityPWRController extends TileEntityMachineBase implements IGUIProvider, IControlReceiver, IFluidStandardTransceiver { public FluidTank[] tanks; @@ -521,6 +526,43 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG } } + + public String getComponentName() { + return "ntm_pwr_control"; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getHeat(Context context, Arguments args) { + return new Object[] {coreHeat, hullHeat}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getFlux(Context context, Arguments args) { + return new Object[] {flux}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getLevel(Context context, Arguments args) { + return new Object[] {rodTarget}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getInfo(Context context, Arguments args) { + return new Object[] {coreHeat, hullHeat, flux, rodTarget}; + } + + @Callback(direct = true, limit = 4) + @Optional.Method(modid = "OpenComputers") + public Object[] setLevel(Context context, Arguments args) { + rodTarget = MathHelper.clamp_int(args.checkInteger(0), 0, 100); + this.markChanged(); + return new Object[] {true}; + } + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerPWR(player.inventory, this); diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKStorage.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKStorage.java index baa22c2c3..a670b6c09 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKStorage.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKStorage.java @@ -4,21 +4,15 @@ import com.hbm.inventory.container.ContainerRBMKStorage; import com.hbm.inventory.gui.GUIRBMKStorage; import com.hbm.items.machine.ItemRBMKRod; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole.ColumnType; -import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import li.cil.oc.api.machine.Arguments; -import li.cil.oc.api.machine.Callback; -import li.cil.oc.api.machine.Context; -import li.cil.oc.api.network.SimpleComponent; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.world.World; -@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityRBMKStorage extends TileEntityRBMKSlottedBase implements IRBMKLoadable, SimpleComponent { +public class TileEntityRBMKStorage extends TileEntityRBMKSlottedBase implements IRBMKLoadable { public TileEntityRBMKStorage() { super(12); @@ -91,35 +85,6 @@ public class TileEntityRBMKStorage extends TileEntityRBMKSlottedBase implements slots[0] = null; } - @Override - public String getComponentName() { - return "rbmk_storage_rod"; - } - @Callback(direct = true, limit = 8) - @Optional.Method(modid = "OpenComputers") - public Object[] getCoordinates(Context context, Arguments args) { - return new Object[] {xCoord, yCoord, zCoord}; - } - - @Callback(direct = true, limit = 8) - @Optional.Method(modid = "OpenComputers") - public Object[] getHeat(Context context, Arguments args) { - return new Object[] {heat}; - } - - - @Callback(direct = true, limit = 8) - @Optional.Method(modid = "OpenComputers") - public Object[] getStored(Context context, Arguments args) { - return new Object[] {slots[0], slots[1], slots[2], slots[3], slots[4], slots[5], slots[6], slots[7], slots[8], slots[9], slots[10], slots[11]}; - } - - @Callback(direct = true, limit = 8) - @Optional.Method(modid = "OpenComputers") - public Object[] getInfo(Context context, Arguments args) { - return new Object[] {heat, slots[0], slots[1], slots[2], slots[3], slots[4], slots[5], slots[6], slots[7], slots[8], slots[9], slots[10], slots[11], xCoord, yCoord, zCoord}; - } - @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerRBMKStorage(player.inventory, this); From b311525574240c2bf623f8b9b7a646ef9ea231c5 Mon Sep 17 00:00:00 2001 From: JameH2 <75378928+JameH2@users.noreply.github.com> Date: Mon, 6 Nov 2023 14:02:08 -0700 Subject: [PATCH 406/432] ribbit --- src/main/java/com/hbm/blocks/network/FluidDuctStandard.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/com/hbm/blocks/network/FluidDuctStandard.java b/src/main/java/com/hbm/blocks/network/FluidDuctStandard.java index e58d7ab02..7a6ab966b 100644 --- a/src/main/java/com/hbm/blocks/network/FluidDuctStandard.java +++ b/src/main/java/com/hbm/blocks/network/FluidDuctStandard.java @@ -5,6 +5,7 @@ import java.util.List; import com.hbm.blocks.IBlockMulti; import com.hbm.blocks.ILookOverlay; +import com.hbm.blocks.ModBlocks; import com.hbm.blocks.test.TestPipe; import com.hbm.inventory.fluid.FluidType; import com.hbm.items.ModItems; @@ -15,6 +16,7 @@ import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; From 6bc0a2de4aabfc2b6167fa3fdb04bc7e2b5e1b46 Mon Sep 17 00:00:00 2001 From: JameH2 <75378928+JameH2@users.noreply.github.com> Date: Mon, 6 Nov 2023 14:17:45 -0700 Subject: [PATCH 407/432] wow i cant believe you forgot these kill yours --- src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java | 1 + src/main/java/com/hbm/blocks/machine/MachineOrbus.java | 1 + 2 files changed, 2 insertions(+) diff --git a/src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java b/src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java index 300f9b019..e0a494ede 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java +++ b/src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java @@ -14,6 +14,7 @@ import com.hbm.main.MainRegistry; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.storage.TileEntityMachineBAT9000; +import com.hbm.tileentity.machine.storage.TileEntityMachineOrbus; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.material.Material; diff --git a/src/main/java/com/hbm/blocks/machine/MachineOrbus.java b/src/main/java/com/hbm/blocks/machine/MachineOrbus.java index 445956358..902c24672 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineOrbus.java +++ b/src/main/java/com/hbm/blocks/machine/MachineOrbus.java @@ -12,6 +12,7 @@ import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.main.MainRegistry; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.machine.storage.TileEntityMachineFluidTank; import com.hbm.tileentity.machine.storage.TileEntityMachineOrbus; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; From 34865547c49a2c048e434b2c5f658805d82a072e Mon Sep 17 00:00:00 2001 From: sdddddf80 <2980187979@qq.com> Date: Wed, 8 Nov 2023 16:23:28 +0800 Subject: [PATCH 408/432] Transferred a bunch of text to lang file Transferred a bunch of text to lang file(not all) --- .../java/com/hbm/blocks/ITooltipProvider.java | 5 +- .../hbm/blocks/machine/BlockFluidBarrel.java | 53 +- .../hbm/blocks/machine/BlockHadronCooler.java | 5 +- .../hbm/blocks/machine/MachineCapacitor.java | 5 +- .../hbm/blocks/machine/MachineGasFlare.java | 11 +- .../com/hbm/blocks/network/PylonLarge.java | 6 +- .../com/hbm/blocks/network/PylonRedWire.java | 5 +- .../com/hbm/blocks/network/Substation.java | 5 +- .../hbm/handler/nei/CustomMachineHandler.java | 3 +- .../com/hbm/inventory/fluid/FluidType.java | 5 +- .../inventory/fluid/trait/FT_Combustible.java | 17 +- .../inventory/fluid/trait/FT_Coolable.java | 5 +- .../inventory/fluid/trait/FT_Corrosive.java | 5 +- .../inventory/fluid/trait/FT_Flammable.java | 5 +- .../inventory/fluid/trait/FT_Heatable.java | 5 +- .../fluid/trait/FT_PWRModerator.java | 5 +- .../hbm/inventory/fluid/trait/FT_Poison.java | 3 +- .../hbm/inventory/fluid/trait/FT_Toxin.java | 2 +- .../fluid/trait/FT_VentRadiation.java | 3 +- .../fluid/trait/FluidTraitSimple.java | 19 +- .../java/com/hbm/items/armor/ArmorDNT.java | 2 +- .../com/hbm/items/armor/ArmorFSBPowered.java | 3 +- .../com/hbm/items/armor/ItemArmorMod.java | 2 +- .../java/com/hbm/items/armor/ItemModAuto.java | 3 +- .../com/hbm/items/armor/ItemModBandaid.java | 5 +- .../com/hbm/items/armor/ItemModBathwater.java | 5 +- .../com/hbm/items/armor/ItemModCharm.java | 12 +- .../com/hbm/items/armor/ItemModCladding.java | 5 +- .../com/hbm/items/armor/ItemModDefuser.java | 5 +- .../com/hbm/items/armor/ItemModGasmask.java | 6 +- .../com/hbm/items/armor/ItemModHealth.java | 7 +- .../java/com/hbm/items/armor/ItemModInk.java | 7 +- .../com/hbm/items/armor/ItemModInsert.java | 21 +- .../java/com/hbm/items/armor/ItemModIron.java | 5 +- .../com/hbm/items/armor/ItemModKnife.java | 8 +- .../java/com/hbm/items/armor/ItemModLens.java | 5 +- .../com/hbm/items/armor/ItemModLodestone.java | 7 +- .../java/com/hbm/items/armor/ItemModMilk.java | 5 +- .../hbm/items/armor/ItemModMorningGlory.java | 5 +- .../com/hbm/items/armor/ItemModObsidian.java | 5 +- .../java/com/hbm/items/armor/ItemModPads.java | 9 +- .../com/hbm/items/armor/ItemModPolish.java | 5 +- .../com/hbm/items/armor/ItemModQuartz.java | 5 +- .../com/hbm/items/armor/ItemModRevive.java | 19 +- .../com/hbm/items/armor/ItemModSensor.java | 7 +- .../com/hbm/items/armor/ItemModSerum.java | 5 +- .../com/hbm/items/armor/ItemModServos.java | 17 +- .../com/hbm/items/armor/ItemModShackles.java | 11 +- .../com/hbm/items/armor/ItemModTesla.java | 5 +- .../com/hbm/items/armor/ItemModTwoKick.java | 7 +- .../java/com/hbm/items/armor/ItemModV1.java | 5 +- .../java/com/hbm/items/armor/ItemModWD40.java | 5 +- .../java/com/hbm/items/armor/JetpackBase.java | 3 +- .../com/hbm/items/armor/JetpackBooster.java | 7 +- .../com/hbm/items/armor/JetpackBreak.java | 6 +- .../com/hbm/items/armor/JetpackRegular.java | 3 +- .../hbm/items/armor/JetpackVectorized.java | 5 +- .../hbm/items/block/ItemBlockBlastInfo.java | 3 +- .../com/hbm/items/block/ItemBlockLore.java | 27 +- .../hbm/items/block/ItemCustomMachine.java | 3 +- .../java/com/hbm/items/bomb/ItemFleija.java | 5 +- .../hbm/items/bomb/ItemMissileShuttle.java | 10 +- src/main/java/com/hbm/items/bomb/ItemN2.java | 6 +- .../hbm/items/bomb/ItemPrototypeBlock.java | 7 +- .../java/com/hbm/items/bomb/ItemSolinium.java | 5 +- .../java/com/hbm/items/food/ItemLemon.java | 52 +- .../com/hbm/items/food/ItemTemFlakes.java | 7 +- .../com/hbm/items/machine/ItemBattery.java | 9 +- .../hbm/items/machine/ItemMachineUpgrade.java | 162 +- .../com/hbm/items/machine/ItemPWRFuel.java | 8 +- .../com/hbm/items/machine/ItemPlateFuel.java | 7 +- .../com/hbm/items/machine/ItemRBMKPellet.java | 15 +- .../com/hbm/items/machine/ItemRBMKRod.java | 18 +- .../com/hbm/items/machine/ItemWatzPellet.java | 19 +- .../com/hbm/items/special/ItemAMSCore.java | 44 +- .../com/hbm/items/special/ItemGlitch.java | 75 +- .../java/com/hbm/items/special/ItemRag.java | 5 +- .../java/com/hbm/items/special/ItemSoyuz.java | 9 +- .../com/hbm/items/tool/ItemAnchorRemote.java | 7 +- .../com/hbm/items/tool/ItemCMStructure.java | 7 +- .../com/hbm/items/tool/ItemDetonator.java | 13 +- src/main/java/com/hbm/items/tool/ItemMS.java | 3 +- .../hbm/items/tool/ItemSwordMeteorite.java | 49 +- .../java/com/hbm/items/tool/ItemWand.java | 13 +- .../java/com/hbm/items/tool/ItemWandS.java | 7 +- .../com/hbm/items/tool/WeaponSpecial.java | 45 +- .../com/hbm/main/ModEventHandlerClient.java | 20 +- .../java/com/hbm/util/function/Function.java | 11 +- src/main/resources/assets/hbm/lang/en_US.lang | 174 ++ src/main/resources/assets/hbm/lang/zh_CN.lang | 1593 ++++++++++------- 90 files changed, 1613 insertions(+), 1244 deletions(-) diff --git a/src/main/java/com/hbm/blocks/ITooltipProvider.java b/src/main/java/com/hbm/blocks/ITooltipProvider.java index e959db070..4ca8d3678 100644 --- a/src/main/java/com/hbm/blocks/ITooltipProvider.java +++ b/src/main/java/com/hbm/blocks/ITooltipProvider.java @@ -21,9 +21,8 @@ public interface ITooltipProvider { if(Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { for(String s : I18nUtil.resolveKeyArray(((Block)this).getUnlocalizedName() + ".desc")) list.add(EnumChatFormatting.YELLOW + s); } else { - list.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC +"Hold <" + - EnumChatFormatting.YELLOW + "" + EnumChatFormatting.ITALIC + "LSHIFT" + - EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC + "> to display more info"); + list.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC +I18nUtil.resolveKey("tooltip.block" , + EnumChatFormatting.YELLOW +"" + EnumChatFormatting.ITALIC + "LSHIFT")); } } diff --git a/src/main/java/com/hbm/blocks/machine/BlockFluidBarrel.java b/src/main/java/com/hbm/blocks/machine/BlockFluidBarrel.java index 41ab8cba8..834195f35 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockFluidBarrel.java +++ b/src/main/java/com/hbm/blocks/machine/BlockFluidBarrel.java @@ -15,6 +15,7 @@ import com.hbm.main.MainRegistry; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.machine.storage.TileEntityBarrel; +import com.hbm.util.I18nUtil; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.Block; @@ -208,47 +209,47 @@ public class BlockFluidBarrel extends BlockContainer implements ITooltipProvider public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { if(this == ModBlocks.barrel_plastic) { - list.add(EnumChatFormatting.AQUA + "Capacity: 12,000mB"); - list.add(EnumChatFormatting.YELLOW + "Cannot store hot fluids"); - list.add(EnumChatFormatting.YELLOW + "Cannot store corrosive fluids"); - list.add(EnumChatFormatting.YELLOW + "Cannot store antimatter"); + list.add(EnumChatFormatting.AQUA + I18nUtil.resolveKey("trait.tile.barrel.capacity","12,000")); + list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("trait.tile.barrel.hot")[1]); + list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("trait.tile.barrel.corrosive")[4]); + list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("trait.tile.barrel.antimatter")[1]); } if(this == ModBlocks.barrel_corroded) { - list.add(EnumChatFormatting.AQUA + "Capacity: 6,000mB"); - list.add(EnumChatFormatting.GREEN + "Can store hot fluids"); - list.add(EnumChatFormatting.GREEN + "Can store highly corrosive fluids"); - list.add(EnumChatFormatting.YELLOW + "Cannot store antimatter"); - list.add(EnumChatFormatting.RED + "Leaky"); + list.add(EnumChatFormatting.AQUA + I18nUtil.resolveKey("trait.tile.barrel.capacity","6,000")); + list.add(EnumChatFormatting.GREEN + I18nUtil.resolveKeyArray("trait.tile.barrel.hot")[0]); + list.add(EnumChatFormatting.GREEN + I18nUtil.resolveKeyArray("trait.tile.barrel.corrosive")[0]); + list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("trait.tile.barrel.antimatter")[1]); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKey("trait.tile.barrel.leak")); } if(this == ModBlocks.barrel_iron) { - list.add(EnumChatFormatting.AQUA + "Capacity: 8,000mB"); - list.add(EnumChatFormatting.GREEN + "Can store hot fluids"); - list.add(EnumChatFormatting.YELLOW + "Cannot store corrosive fluids properly"); - list.add(EnumChatFormatting.YELLOW + "Cannot store antimatter"); + list.add(EnumChatFormatting.AQUA + I18nUtil.resolveKey("trait.tile.barrel.capacity","8,000")); + list.add(EnumChatFormatting.GREEN + I18nUtil.resolveKeyArray("trait.tile.barrel.hot")[0]); + list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("trait.tile.barrel.corrosive")[3]); + list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("trait.tile.barrel.antimatter")[1]); } if(this == ModBlocks.barrel_steel) { - list.add(EnumChatFormatting.AQUA + "Capacity: 16,000mB"); - list.add(EnumChatFormatting.GREEN + "Can store hot fluids"); - list.add(EnumChatFormatting.GREEN + "Can store corrosive fluids"); - list.add(EnumChatFormatting.YELLOW + "Cannot store highly corrosive fluids properly"); - list.add(EnumChatFormatting.YELLOW + "Cannot store antimatter"); + list.add(EnumChatFormatting.AQUA + I18nUtil.resolveKey("trait.tile.barrel.capacity","16,000")); + list.add(EnumChatFormatting.GREEN + I18nUtil.resolveKeyArray("trait.tile.barrel.hot")[0]); + list.add(EnumChatFormatting.GREEN + I18nUtil.resolveKeyArray("trait.tile.barrel.corrosive")[1]); + list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("trait.tile.barrel.corrosive")[2]); + list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("trait.tile.barrel.antimatter")[1]); } if(this == ModBlocks.barrel_antimatter) { - list.add(EnumChatFormatting.AQUA + "Capacity: 16,000mB"); - list.add(EnumChatFormatting.GREEN + "Can store hot fluids"); - list.add(EnumChatFormatting.GREEN + "Can store highly corrosive fluids"); - list.add(EnumChatFormatting.GREEN + "Can store antimatter"); + list.add(EnumChatFormatting.AQUA + I18nUtil.resolveKey("trait.tile.barrel.capacity","16,000")); + list.add(EnumChatFormatting.GREEN + I18nUtil.resolveKeyArray("trait.tile.barrel.hot")[0]); + list.add(EnumChatFormatting.GREEN + I18nUtil.resolveKeyArray("trait.tile.barrel.corrosive")[0]); + list.add(EnumChatFormatting.GREEN + I18nUtil.resolveKeyArray("trait.tile.barrel.antimatter")[0]); } if(this == ModBlocks.barrel_tcalloy) { - list.add(EnumChatFormatting.AQUA + "Capacity: 24,000mB"); - list.add(EnumChatFormatting.GREEN + "Can store hot fluids"); - list.add(EnumChatFormatting.GREEN + "Can store highly corrosive fluids"); - list.add(EnumChatFormatting.YELLOW + "Cannot store antimatter"); + list.add(EnumChatFormatting.AQUA + I18nUtil.resolveKey("trait.tile.barrel.capacity","24,000")); + list.add(EnumChatFormatting.GREEN + I18nUtil.resolveKeyArray("trait.tile.barrel.hot")[0]); + list.add(EnumChatFormatting.GREEN + I18nUtil.resolveKeyArray("trait.tile.barrel.corrosive")[0]); + list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("trait.tile.barrel.antimatter")[1]); } } } diff --git a/src/main/java/com/hbm/blocks/machine/BlockHadronCooler.java b/src/main/java/com/hbm/blocks/machine/BlockHadronCooler.java index a242772e2..c2c220ff8 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockHadronCooler.java +++ b/src/main/java/com/hbm/blocks/machine/BlockHadronCooler.java @@ -59,9 +59,8 @@ public class BlockHadronCooler extends BlockMulti implements ITooltipProvider { if(Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { for(String s : I18nUtil.resolveKeyArray(this.getUnlocalizedName(stack) + ".desc")) list.add(EnumChatFormatting.YELLOW + s); } else { - list.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC +"Hold <" + - EnumChatFormatting.YELLOW + "" + EnumChatFormatting.ITALIC + "LSHIFT" + - EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC + "> to display more info"); + list.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC +I18nUtil.resolveKey("tooltip.block" , + EnumChatFormatting.YELLOW +"" + EnumChatFormatting.ITALIC + "LSHIFT")); } } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineCapacitor.java b/src/main/java/com/hbm/blocks/machine/MachineCapacitor.java index be083f6e3..e55f4844b 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineCapacitor.java +++ b/src/main/java/com/hbm/blocks/machine/MachineCapacitor.java @@ -113,9 +113,8 @@ public class MachineCapacitor extends BlockContainer implements ILookOverlay, IP if(Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { for(String s : I18nUtil.resolveKeyArray("tile.capacitor.desc")) list.add(EnumChatFormatting.YELLOW + s); } else { - list.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC +"Hold <" + - EnumChatFormatting.YELLOW + "" + EnumChatFormatting.ITALIC + "LSHIFT" + - EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC + "> to display more info"); + list.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC +I18nUtil.resolveKey("tooltip.block" , + EnumChatFormatting.YELLOW +"" + EnumChatFormatting.ITALIC + "LSHIFT")); } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineGasFlare.java b/src/main/java/com/hbm/blocks/machine/MachineGasFlare.java index 4567cf760..db5bd32f5 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineGasFlare.java +++ b/src/main/java/com/hbm/blocks/machine/MachineGasFlare.java @@ -7,6 +7,7 @@ import com.hbm.blocks.ITooltipProvider; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.oil.TileEntityMachineGasFlare; +import com.hbm.util.I18nUtil; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -61,13 +62,7 @@ public class MachineGasFlare extends BlockDummyable implements ITooltipProvider @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { - - list.add(EnumChatFormatting.GOLD + "Can burn fluids and vent gasses"); - list.add(EnumChatFormatting.GOLD + "Burns up to " + EnumChatFormatting.RED + "10mB/t"); - list.add(EnumChatFormatting.GOLD + "Vents up to " + EnumChatFormatting.RED + "50mB/t"); - list.add(""); - list.add(EnumChatFormatting.YELLOW + "Fuel efficiency:"); - list.add(EnumChatFormatting.YELLOW + "-Flammable Gasses: " + EnumChatFormatting.RED + "50%"); - list.add(EnumChatFormatting.YELLOW + "-Flammable Liquids: " + EnumChatFormatting.RED + "10%"); + for(String s : I18nUtil.resolveKeyArray("tile.machine_flare.desc")) + list.add(EnumChatFormatting.GOLD + s); } } diff --git a/src/main/java/com/hbm/blocks/network/PylonLarge.java b/src/main/java/com/hbm/blocks/network/PylonLarge.java index 395b27dd1..65605d4d3 100644 --- a/src/main/java/com/hbm/blocks/network/PylonLarge.java +++ b/src/main/java/com/hbm/blocks/network/PylonLarge.java @@ -7,6 +7,7 @@ import com.hbm.blocks.ITooltipProvider; import com.hbm.tileentity.network.TileEntityPylonBase; import com.hbm.tileentity.network.TileEntityPylonLarge; +import com.hbm.util.I18nUtil; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; @@ -33,9 +34,8 @@ public class PylonLarge extends BlockDummyable implements ITooltipProvider { @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { - list.add(EnumChatFormatting.GOLD + "Connection Type: " + EnumChatFormatting.YELLOW + "Quadruple"); - list.add(EnumChatFormatting.GOLD + "Connection Range: " + EnumChatFormatting.YELLOW + "100m"); - list.add(EnumChatFormatting.GOLD + "This pylon requires a substation!"); + for(String s : I18nUtil.resolveKeyArray("tile.red_pylon_large.desc")) + list.add(EnumChatFormatting.GOLD + s); } @Override diff --git a/src/main/java/com/hbm/blocks/network/PylonRedWire.java b/src/main/java/com/hbm/blocks/network/PylonRedWire.java index 79a44f541..9b9d8750b 100644 --- a/src/main/java/com/hbm/blocks/network/PylonRedWire.java +++ b/src/main/java/com/hbm/blocks/network/PylonRedWire.java @@ -4,6 +4,7 @@ import java.util.List; import com.hbm.tileentity.network.TileEntityPylon; +import com.hbm.util.I18nUtil; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -24,7 +25,7 @@ public class PylonRedWire extends PylonBase { @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { - list.add(EnumChatFormatting.GOLD + "Connection Type: " + EnumChatFormatting.YELLOW + "Single"); - list.add(EnumChatFormatting.GOLD + "Connection Range: " + EnumChatFormatting.YELLOW + "25m"); + for(String s : I18nUtil.resolveKeyArray("tile.red_pylon.desc")) + list.add(EnumChatFormatting.GOLD + s); } } diff --git a/src/main/java/com/hbm/blocks/network/Substation.java b/src/main/java/com/hbm/blocks/network/Substation.java index 7499992fd..4f61cf58d 100644 --- a/src/main/java/com/hbm/blocks/network/Substation.java +++ b/src/main/java/com/hbm/blocks/network/Substation.java @@ -8,6 +8,7 @@ import com.hbm.tileentity.TileEntityProxyConductor; import com.hbm.tileentity.network.TileEntityPylonBase; import com.hbm.tileentity.network.TileEntitySubstation; +import com.hbm.util.I18nUtil; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; @@ -37,8 +38,8 @@ public class Substation extends BlockDummyable implements ITooltipProvider { @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { - list.add(EnumChatFormatting.GOLD + "Connection Type: " + EnumChatFormatting.YELLOW + "Quadruple"); - list.add(EnumChatFormatting.GOLD + "Connection Range: " + EnumChatFormatting.YELLOW + "20m"); + for(String s : I18nUtil.resolveKeyArray("tile.substation.desc")) + list.add(EnumChatFormatting.GOLD + s); } @Override diff --git a/src/main/java/com/hbm/handler/nei/CustomMachineHandler.java b/src/main/java/com/hbm/handler/nei/CustomMachineHandler.java index 844af6e60..659289307 100644 --- a/src/main/java/com/hbm/handler/nei/CustomMachineHandler.java +++ b/src/main/java/com/hbm/handler/nei/CustomMachineHandler.java @@ -14,6 +14,7 @@ import com.hbm.inventory.recipes.CustomMachineRecipes; import com.hbm.inventory.recipes.CustomMachineRecipes.CustomMachineRecipe; import com.hbm.items.machine.ItemFluidIcon; import com.hbm.lib.RefStrings; +import com.hbm.util.I18nUtil; import com.hbm.util.ItemStackUtil; import com.hbm.util.Tuple.Pair; @@ -104,7 +105,7 @@ public class CustomMachineHandler extends TemplateRecipeHandler { @Override public String getRecipeName() { - return conf.localizedName; + return (I18nUtil.resolveKey("tile.cm_" + conf.unlocalizedName + ".name").startsWith("tile.cm_")) ? conf.localizedName : I18nUtil.resolveKey("tile.cm_" + conf.unlocalizedName + ".name"); } @Override diff --git a/src/main/java/com/hbm/inventory/fluid/FluidType.java b/src/main/java/com/hbm/inventory/fluid/FluidType.java index d6fa4d759..e6015725b 100644 --- a/src/main/java/com/hbm/inventory/fluid/FluidType.java +++ b/src/main/java/com/hbm/inventory/fluid/FluidType.java @@ -218,9 +218,8 @@ public class FluidType { info.addAll(hidden); } else { - info.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC +"Hold <" + - EnumChatFormatting.YELLOW + "" + EnumChatFormatting.ITALIC + "LSHIFT" + - EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC + "> to display more info"); + info.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC +I18nUtil.resolveKey("tooltip.block" , + EnumChatFormatting.YELLOW +"" + EnumChatFormatting.ITALIC + "LSHIFT")); } } } diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Combustible.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Combustible.java index a297d40ca..9d566e0fb 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Combustible.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Combustible.java @@ -7,6 +7,7 @@ import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; import net.minecraft.util.EnumChatFormatting; public class FT_Combustible extends FluidTrait { @@ -25,11 +26,11 @@ public class FT_Combustible extends FluidTrait { public void addInfo(List info) { super.addInfo(info); - info.add(EnumChatFormatting.GOLD + "[Combustible]"); + info.add(EnumChatFormatting.GOLD + I18nUtil.resolveKeyArray("hbmfluid.Trait.Combustible","","")[0]); if(combustionEnergy > 0) { - info.add(EnumChatFormatting.GOLD + "Provides " + EnumChatFormatting.RED + "" + BobMathUtil.getShortNumber(combustionEnergy) + "HE " + EnumChatFormatting.GOLD + "per bucket"); - info.add(EnumChatFormatting.GOLD + "Fuel grade: " + EnumChatFormatting.RED + this.fuelGrade.getGrade()); + info.add(EnumChatFormatting.GOLD + I18nUtil.resolveKeyArray("hbmfluid.Trait.Combustible",BobMathUtil.getShortNumber(combustionEnergy),"")[1]); + info.add(EnumChatFormatting.GOLD + I18nUtil.resolveKeyArray("hbmfluid.Trait.Combustible","",this.fuelGrade.getGrade())[2]); } } @@ -42,11 +43,11 @@ public class FT_Combustible extends FluidTrait { } public static enum FuelGrade { - LOW("Low"), //heating and industrial oil < star engine, iGen - MEDIUM("Medium"), //petroil < diesel generator - HIGH("High"), //diesel, gasoline < HP engine - AERO("Aviation"), //kerosene and other light aviation fuels < turbofan - GAS("Gaseous"); //fuel gasses like NG, PG and syngas < gas turbine + LOW(I18nUtil.resolveKeyArray("hbmfluid.Trait.Combustible.FuelGrade")[0]), //heating and industrial oil < star engine, iGen + MEDIUM(I18nUtil.resolveKeyArray("hbmfluid.Trait.Combustible.FuelGrade")[1]), //petroil < diesel generator + HIGH(I18nUtil.resolveKeyArray("hbmfluid.Trait.Combustible.FuelGrade")[2]), //diesel, gasoline < HP engine + AERO(I18nUtil.resolveKeyArray("hbmfluid.Trait.Combustible.FuelGrade")[3]), //kerosene and other light aviation fuels < turbofan + GAS(I18nUtil.resolveKeyArray("hbmfluid.Trait.Combustible.FuelGrade")[4]); //fuel gasses like NG, PG and syngas < gas turbine private String grade; diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Coolable.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Coolable.java index 1bb6d3574..a0aae7d54 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Coolable.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Coolable.java @@ -10,6 +10,7 @@ import com.google.gson.stream.JsonWriter; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; +import com.hbm.util.I18nUtil; import net.minecraft.util.EnumChatFormatting; public class FT_Coolable extends FluidTrait { @@ -42,14 +43,14 @@ public class FT_Coolable extends FluidTrait { @Override public void addInfoHidden(List info) { - info.add(EnumChatFormatting.AQUA + "Thermal capacity: " + heatEnergy + " TU"); + info.add(EnumChatFormatting.AQUA + I18nUtil.resolveKeyArray("hbmfluid.Trait.Coolable",heatEnergy,"")[0]); for(CoolingType type : CoolingType.values()) { double eff = getEfficiency(type); if(eff > 0) { info.add(EnumChatFormatting.AQUA + "[" + type.name + "]"); - info.add(EnumChatFormatting.AQUA + "Efficiency: " + ((int) (eff * 100D)) + "%"); + info.add(EnumChatFormatting.AQUA + I18nUtil.resolveKeyArray("hbmfluid.Trait.Coolable","",((int) (eff * 100D)))[1]); } } } diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Corrosive.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Corrosive.java index 2a459e25c..8387b0e23 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Corrosive.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Corrosive.java @@ -6,6 +6,7 @@ import java.util.List; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; +import com.hbm.util.I18nUtil; import net.minecraft.util.EnumChatFormatting; public class FT_Corrosive extends FluidTrait { @@ -31,9 +32,9 @@ public class FT_Corrosive extends FluidTrait { public void addInfo(List info) { if(isHighlyCorrosive()) - info.add(EnumChatFormatting.GOLD + "[Strongly Corrosive]"); + info.add(EnumChatFormatting.GOLD + I18nUtil.resolveKeyArray("hbmfluid.Trait.Corrosive")[0]); else - info.add(EnumChatFormatting.YELLOW + "[Corrosive]"); + info.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("hbmfluid.Trait.Corrosive")[1]); } @Override diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Flammable.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Flammable.java index 82e309ef9..e2f35ff3c 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Flammable.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Flammable.java @@ -7,6 +7,7 @@ import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; import net.minecraft.util.EnumChatFormatting; public class FT_Flammable extends FluidTrait { @@ -28,10 +29,10 @@ public class FT_Flammable extends FluidTrait { public void addInfo(List info) { super.addInfo(info); - info.add(EnumChatFormatting.YELLOW + "[Flammable]"); + info.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("hbmfluid.Trait.Flammable","")[0]); if(energy > 0) - info.add(EnumChatFormatting.YELLOW + "Provides " + EnumChatFormatting.RED + "" + BobMathUtil.getShortNumber(energy) + "TU " + EnumChatFormatting.YELLOW + "per bucket"); + info.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("hbmfluid.Trait.Flammable",BobMathUtil.getShortNumber(energy))[1]); } @Override diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Heatable.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Heatable.java index c828858b8..7ce3ee4fc 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Heatable.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Heatable.java @@ -6,6 +6,7 @@ import com.google.gson.stream.JsonWriter; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; +import com.hbm.util.I18nUtil; import net.minecraft.util.EnumChatFormatting; import java.io.IOException; @@ -42,14 +43,14 @@ public class FT_Heatable extends FluidTrait { @Override public void addInfoHidden(List info) { - info.add(EnumChatFormatting.AQUA + "Thermal capacity: " + this.getFirstStep().heatReq + " TU"); + info.add(EnumChatFormatting.AQUA + I18nUtil.resolveKeyArray("hbmfluid.Trait.Coolable",this.getFirstStep().heatReq,"")[0]); for(HeatingType type : HeatingType.values()) { double eff = getEfficiency(type); if(eff > 0) { info.add(EnumChatFormatting.AQUA + "[" + type.name + "]"); - info.add(EnumChatFormatting.AQUA + "Efficiency: " + ((int) (eff * 100D)) + "%"); + info.add(EnumChatFormatting.AQUA + I18nUtil.resolveKeyArray("hbmfluid.Trait.Coolable","",((int) (eff * 100D)))[1]); } } } diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_PWRModerator.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_PWRModerator.java index 65386405a..3e5aad50c 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_PWRModerator.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_PWRModerator.java @@ -6,6 +6,7 @@ import java.util.List; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; +import com.hbm.util.I18nUtil; import net.minecraft.util.EnumChatFormatting; public class FT_PWRModerator extends FluidTrait { @@ -22,13 +23,13 @@ public class FT_PWRModerator extends FluidTrait { @Override public void addInfo(List info) { - info.add(EnumChatFormatting.BLUE + "[PWR Flux Multiplier]"); + info.add(EnumChatFormatting.BLUE + I18nUtil.resolveKeyArray("hbmfluid.Trait.PWRModerator","","")[0]); } @Override public void addInfoHidden(List info) { int mult = (int) (multiplier * 100 - 100); - info.add(EnumChatFormatting.BLUE + "Core flux " + (mult >= 0 ? "+" : "") + mult + "%"); + info.add(EnumChatFormatting.BLUE + I18nUtil.resolveKeyArray("hbmfluid.Trait.PWRModerator",(mult >= 0 ? "+" : ""),mult)[1]); } @Override diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Poison.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Poison.java index 335c182cb..39d31bc25 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Poison.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Poison.java @@ -6,6 +6,7 @@ import java.util.List; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; +import com.hbm.util.I18nUtil; import net.minecraft.util.EnumChatFormatting; @Deprecated //use FT_Toxin instead @@ -31,7 +32,7 @@ public class FT_Poison extends FluidTrait { @Override public void addInfoHidden(List info) { - info.add(EnumChatFormatting.GREEN + "[Toxic Fumes]"); + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey("hbmfluid.Trait.Poison")); } @Override public void serializeJSON(JsonWriter writer) throws IOException { diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Toxin.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Toxin.java index fe814219e..b7234584c 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Toxin.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Toxin.java @@ -31,7 +31,7 @@ public class FT_Toxin extends FluidTrait { @Override public void addInfoHidden(List info) { - info.add(EnumChatFormatting.LIGHT_PURPLE + "[Toxin]"); + info.add(EnumChatFormatting.LIGHT_PURPLE + I18nUtil.resolveKey("hbmfluid.Trait.Toxin")); for(ToxinEntry entry : entries) { entry.addInfo(info); diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_VentRadiation.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_VentRadiation.java index 516ef0e81..ef090d9d9 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_VentRadiation.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_VentRadiation.java @@ -8,6 +8,7 @@ import com.google.gson.stream.JsonWriter; import com.hbm.handler.radiation.ChunkRadiationManager; import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.util.I18nUtil; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; @@ -32,7 +33,7 @@ public class FT_VentRadiation extends FluidTrait { @Override public void addInfo(List info) { - info.add(EnumChatFormatting.YELLOW + "[Radioactive]"); + info.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("hbmfluid.Trait.VentRadiation")); } @Override diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FluidTraitSimple.java b/src/main/java/com/hbm/inventory/fluid/trait/FluidTraitSimple.java index d282cea42..19e2c5369 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FluidTraitSimple.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FluidTraitSimple.java @@ -2,63 +2,64 @@ package com.hbm.inventory.fluid.trait; import java.util.List; +import com.hbm.util.I18nUtil; import net.minecraft.util.EnumChatFormatting; public class FluidTraitSimple { public static class FT_Gaseous extends FluidTrait { @Override public void addInfoHidden(List info) { - info.add(EnumChatFormatting.BLUE + "[Gaseous]"); + info.add(EnumChatFormatting.BLUE + I18nUtil.resolveKey("hbmfluid.TraitSimple.Gaseous")); } } /** gaseous at room temperature, for cryogenic hydrogen for example */ public static class FT_Gaseous_ART extends FluidTrait { @Override public void addInfoHidden(List info) { - info.add(EnumChatFormatting.BLUE + "[Gaseous at Room Temperature]"); + info.add(EnumChatFormatting.BLUE + I18nUtil.resolveKey("hbmfluid.TraitSimple.Gaseous_ART")); } } public static class FT_Liquid extends FluidTrait { @Override public void addInfoHidden(List info) { - info.add(EnumChatFormatting.BLUE + "[Liquid]"); + info.add(EnumChatFormatting.BLUE + I18nUtil.resolveKey("hbmfluid.TraitSimple.Liquid")); } } /** to viscous to be sprayed/turned into a mist */ public static class FT_Viscous extends FluidTrait { @Override public void addInfoHidden(List info) { - info.add(EnumChatFormatting.BLUE + "[Viscous]"); + info.add(EnumChatFormatting.BLUE + I18nUtil.resolveKey("hbmfluid.TraitSimple.Viscous")); } } public static class FT_Plasma extends FluidTrait { @Override public void addInfoHidden(List info) { - info.add(EnumChatFormatting.LIGHT_PURPLE + "[Plasma]"); + info.add(EnumChatFormatting.LIGHT_PURPLE + I18nUtil.resolveKey("hbmfluid.TraitSimple.Plasma")); } } public static class FT_Amat extends FluidTrait { @Override public void addInfo(List info) { - info.add(EnumChatFormatting.DARK_RED + "[Antimatter]"); + info.add(EnumChatFormatting.DARK_RED + I18nUtil.resolveKey("hbmfluid.TraitSimple.Amat")); } } public static class FT_LeadContainer extends FluidTrait { @Override public void addInfo(List info) { - info.add(EnumChatFormatting.DARK_RED + "[Requires hazardous material tank to hold]"); + info.add(EnumChatFormatting.DARK_RED + I18nUtil.resolveKey("hbmfluid.TraitSimple.LeadContainer")); } } public static class FT_Delicious extends FluidTrait { @Override public void addInfoHidden(List info) { - info.add(EnumChatFormatting.DARK_GREEN + "[Delicious]"); + info.add(EnumChatFormatting.DARK_GREEN + I18nUtil.resolveKey("hbmfluid.TraitSimple.Delicious")); } } public static class FT_Leaded extends FluidTrait { @Override public void addInfoHidden(List info) { - info.add(EnumChatFormatting.BLUE + "[Leaded Fuel]"); + info.add(EnumChatFormatting.BLUE + I18nUtil.resolveKey("hbmfluid.TraitSimple.Leaded")); } } diff --git a/src/main/java/com/hbm/items/armor/ArmorDNT.java b/src/main/java/com/hbm/items/armor/ArmorDNT.java index 068ae49f1..37e4d6bc3 100644 --- a/src/main/java/com/hbm/items/armor/ArmorDNT.java +++ b/src/main/java/com/hbm/items/armor/ArmorDNT.java @@ -173,7 +173,7 @@ public class ArmorDNT extends ArmorFSBPowered { @SideOnly(Side.CLIENT) public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { - list.add("Charge: " + BobMathUtil.getShortNumber(getCharge(stack)) + " / " + BobMathUtil.getShortNumber(maxPower)); + list.add(I18nUtil.resolveKey("armor.charge",BobMathUtil.getShortNumber(getCharge(stack)),BobMathUtil.getShortNumber(maxPower))); list.add(EnumChatFormatting.GOLD + I18nUtil.resolveKey("armor.fullSetBonus")); diff --git a/src/main/java/com/hbm/items/armor/ArmorFSBPowered.java b/src/main/java/com/hbm/items/armor/ArmorFSBPowered.java index 139df77fe..c5ab83d19 100644 --- a/src/main/java/com/hbm/items/armor/ArmorFSBPowered.java +++ b/src/main/java/com/hbm/items/armor/ArmorFSBPowered.java @@ -5,6 +5,7 @@ import java.util.List; import com.hbm.util.BobMathUtil; import api.hbm.energy.IBatteryItem; +import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.player.EntityPlayer; @@ -31,7 +32,7 @@ public class ArmorFSBPowered extends ArmorFSB implements IBatteryItem { @SideOnly(Side.CLIENT) public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { - list.add("Charge: " + BobMathUtil.getShortNumber(getCharge(stack)) + " / " + BobMathUtil.getShortNumber(maxPower)); + list.add(I18nUtil.resolveKey("armor.charge",BobMathUtil.getShortNumber(getCharge(stack)),BobMathUtil.getShortNumber(maxPower))); super.addInformation(stack, player, list, ext); } diff --git a/src/main/java/com/hbm/items/armor/ItemArmorMod.java b/src/main/java/com/hbm/items/armor/ItemArmorMod.java index 505028648..fac21dec9 100644 --- a/src/main/java/com/hbm/items/armor/ItemArmorMod.java +++ b/src/main/java/com/hbm/items/armor/ItemArmorMod.java @@ -53,7 +53,7 @@ public class ItemArmorMod extends Item { if(boots) list.add(" " + I18nUtil.resolveKey("armorMod.boots")); } - list.add(EnumChatFormatting.DARK_PURPLE + "Slot:"); + list.add(EnumChatFormatting.DARK_PURPLE + I18nUtil.resolveKey("armorMod.slot")); switch(this.type) { case ArmorModHandler.helmet_only: list.add(" " + I18nUtil.resolveKey("armorMod.type.helmet")); break; diff --git a/src/main/java/com/hbm/items/armor/ItemModAuto.java b/src/main/java/com/hbm/items/armor/ItemModAuto.java index 4dd232198..7b64bd4e6 100644 --- a/src/main/java/com/hbm/items/armor/ItemModAuto.java +++ b/src/main/java/com/hbm/items/armor/ItemModAuto.java @@ -6,6 +6,7 @@ import com.hbm.extprop.HbmLivingProps; import com.hbm.handler.ArmorModHandler; import com.hbm.potion.HbmPotion; +import com.hbm.util.I18nUtil; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -21,7 +22,7 @@ public class ItemModAuto extends ItemArmorMod { @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.BLUE + "Imported from Japsterdam."); + list.add(EnumChatFormatting.BLUE + I18nUtil.resolveKey("armorMod.mod.auto")); list.add(""); super.addInformation(stack, player, list, bool); diff --git a/src/main/java/com/hbm/items/armor/ItemModBandaid.java b/src/main/java/com/hbm/items/armor/ItemModBandaid.java index c04751443..7705f9cfb 100644 --- a/src/main/java/com/hbm/items/armor/ItemModBandaid.java +++ b/src/main/java/com/hbm/items/armor/ItemModBandaid.java @@ -4,6 +4,7 @@ import java.util.List; import com.hbm.handler.ArmorModHandler; +import com.hbm.util.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; @@ -18,14 +19,14 @@ public class ItemModBandaid extends ItemArmorMod { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.RED + "3% chance for full heal when damaged"); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("armorMod.mod.bandaid")[0]); list.add(""); super.addInformation(itemstack, player, list, bool); } @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.RED + " " + stack.getDisplayName() + " (3% chance for full heal)"); + list.add(EnumChatFormatting.RED + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.bandaid")[1]); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModBathwater.java b/src/main/java/com/hbm/items/armor/ItemModBathwater.java index c0d077197..595e381c1 100644 --- a/src/main/java/com/hbm/items/armor/ItemModBathwater.java +++ b/src/main/java/com/hbm/items/armor/ItemModBathwater.java @@ -5,6 +5,7 @@ import java.util.List; import com.hbm.handler.ArmorModHandler; import com.hbm.items.ModItems; +import com.hbm.util.I18nUtil; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; @@ -29,7 +30,7 @@ public class ItemModBathwater extends ItemArmorMod { if(this == ModItems.bathwater_mk2) color = "" + (System.currentTimeMillis() % 1000 < 500 ? EnumChatFormatting.GREEN : EnumChatFormatting.YELLOW); - list.add(color + "Inflicts poison on the attacker"); + list.add(color + I18nUtil.resolveKeyArray("armorMod.mod.bathwater")[0]); list.add(""); super.addInformation(itemstack, player, list, bool); } @@ -42,7 +43,7 @@ public class ItemModBathwater extends ItemArmorMod { if(this == ModItems.bathwater_mk2) color = "" + (System.currentTimeMillis() % 1000 < 500 ? EnumChatFormatting.GREEN : EnumChatFormatting.YELLOW); - list.add(color + " " + stack.getDisplayName() + " (Poisons attackers)"); + list.add(color + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.bathwater")[1]); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModCharm.java b/src/main/java/com/hbm/items/armor/ItemModCharm.java index 2d68ff328..a8c52707c 100644 --- a/src/main/java/com/hbm/items/armor/ItemModCharm.java +++ b/src/main/java/com/hbm/items/armor/ItemModCharm.java @@ -6,6 +6,7 @@ import com.hbm.handler.ArmorModHandler; import com.hbm.items.ModItems; import com.hbm.lib.ModDamageSource; +import com.hbm.util.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; @@ -20,16 +21,15 @@ public class ItemModCharm extends ItemArmorMod { @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.AQUA + "You feel blessed."); + list.add(EnumChatFormatting.AQUA + I18nUtil.resolveKey("armorMod.mod.charm")); if(this == ModItems.protection_charm) { - list.add(EnumChatFormatting.AQUA + "Diverts meteors away from the player."); - list.add(EnumChatFormatting.AQUA + "Meteors no longer destroy blocks."); - list.add(EnumChatFormatting.AQUA + "Halves broadcaster damage"); + for(String s : I18nUtil.resolveKeyArray( "armorMod.mod.charm.protection")) + list.add(s); } if(this == ModItems.meteor_charm) { - list.add(EnumChatFormatting.AQUA + "Disables meteorite spawning."); - list.add(EnumChatFormatting.AQUA + "Negates broadcaster damage"); + for(String s : I18nUtil.resolveKeyArray( "armorMod.mod.charm.meteor")) + list.add(s); } super.addInformation(stack, player, list, bool); diff --git a/src/main/java/com/hbm/items/armor/ItemModCladding.java b/src/main/java/com/hbm/items/armor/ItemModCladding.java index a71b8cb28..18d1f5e24 100644 --- a/src/main/java/com/hbm/items/armor/ItemModCladding.java +++ b/src/main/java/com/hbm/items/armor/ItemModCladding.java @@ -5,6 +5,7 @@ import java.util.List; import com.hbm.handler.ArmorModHandler; import com.hbm.items.armor.ItemArmorMod; +import com.hbm.util.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; @@ -20,13 +21,13 @@ public class ItemModCladding extends ItemArmorMod { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.YELLOW + "+" + rad + " rad-resistance"); + list.add(EnumChatFormatting.YELLOW + "+" + rad + I18nUtil.resolveKeyArray("armorMod.mod.cladding")[0]); list.add(""); super.addInformation(itemstack, player, list, bool); } @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.YELLOW + " " + stack.getDisplayName() + " (+" + rad + " radiation resistence)"); + list.add(EnumChatFormatting.YELLOW + " " + stack.getDisplayName() + " (+" + rad + I18nUtil.resolveKeyArray("armorMod.mod.cladding")[1]); } } diff --git a/src/main/java/com/hbm/items/armor/ItemModDefuser.java b/src/main/java/com/hbm/items/armor/ItemModDefuser.java index 48eb2afe9..d540f9f55 100644 --- a/src/main/java/com/hbm/items/armor/ItemModDefuser.java +++ b/src/main/java/com/hbm/items/armor/ItemModDefuser.java @@ -5,6 +5,7 @@ import java.util.List; import com.hbm.handler.ArmorModHandler; import com.hbm.items.ModItems; +import com.hbm.util.I18nUtil; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.ai.EntityAICreeperSwell; import net.minecraft.entity.ai.EntityAITasks.EntityAITaskEntry; @@ -25,14 +26,14 @@ public class ItemModDefuser extends ItemArmorMod { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.YELLOW + "Defuses nearby creepers"); + list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("armorMod.mod.defuser")[0]); list.add(""); super.addInformation(itemstack, player, list, bool); } @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.YELLOW + " " + stack.getDisplayName() + " (Defuses creepers)"); + list.add(EnumChatFormatting.YELLOW + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.defuser")[1]); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModGasmask.java b/src/main/java/com/hbm/items/armor/ItemModGasmask.java index 7c8fd77f6..62b04a129 100644 --- a/src/main/java/com/hbm/items/armor/ItemModGasmask.java +++ b/src/main/java/com/hbm/items/armor/ItemModGasmask.java @@ -40,7 +40,7 @@ public class ItemModGasmask extends ItemArmorMod implements IGasMask { @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.GREEN + "Gas protection"); + list.add(EnumChatFormatting.GREEN + I18nUtil.resolveKeyArray("armorMod.mod.gasmask")[0]); list.add(""); super.addInformation(stack, player, list, bool); @@ -50,7 +50,7 @@ public class ItemModGasmask extends ItemArmorMod implements IGasMask { List haz = getBlacklist(stack, player); if(!haz.isEmpty()) { - list.add(EnumChatFormatting.RED + "Will never protect against:"); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("armorMod.mod.gasmask")[1]); for(HazardClass clazz : haz) { list.add(EnumChatFormatting.DARK_RED + " -" + I18nUtil.resolveKey(clazz.lang)); @@ -61,7 +61,7 @@ public class ItemModGasmask extends ItemArmorMod implements IGasMask { @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.GREEN + " " + stack.getDisplayName() + " (gas protection)"); + list.add(EnumChatFormatting.GREEN + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.gasmask")[2]); ArmorUtil.addGasMaskTooltip(stack, MainRegistry.proxy.me(), list, false); } diff --git a/src/main/java/com/hbm/items/armor/ItemModHealth.java b/src/main/java/com/hbm/items/armor/ItemModHealth.java index 6e757153a..5f3e59fe9 100644 --- a/src/main/java/com/hbm/items/armor/ItemModHealth.java +++ b/src/main/java/com/hbm/items/armor/ItemModHealth.java @@ -6,6 +6,7 @@ import com.google.common.collect.Multimap; import com.hbm.handler.ArmorModHandler; import com.hbm.items.ModItems; +import com.hbm.util.I18nUtil; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.ai.attributes.AttributeModifier; import net.minecraft.entity.player.EntityPlayer; @@ -27,11 +28,11 @@ public class ItemModHealth extends ItemArmorMod { String color = "" + (System.currentTimeMillis() % 1000 < 500 ? EnumChatFormatting.RED : EnumChatFormatting.LIGHT_PURPLE); - list.add(color + "+" + (Math.round(health * 10 / 2) * 0.1) + " health"); + list.add(color + "+" + (Math.round(health * 10 / 2) * 0.1) + I18nUtil.resolveKeyArray("armorMod.mod.health")[0]); list.add(""); if(this == ModItems.black_diamond) { - list.add(EnumChatFormatting.DARK_GRAY + "Nostalgia"); + list.add(EnumChatFormatting.DARK_GRAY + I18nUtil.resolveKeyArray("armorMod.mod.health")[1]); list.add(""); } @@ -43,7 +44,7 @@ public class ItemModHealth extends ItemArmorMod { String color = "" + (System.currentTimeMillis() % 1000 < 500 ? EnumChatFormatting.RED : EnumChatFormatting.LIGHT_PURPLE); - list.add(color + " " + stack.getDisplayName() + " (+" + (Math.round(health * 10 / 2) * 0.1) + " health)"); + list.add(color + " " + stack.getDisplayName() + " (+" + (Math.round(health * 10 / 2) * 0.1) + I18nUtil.resolveKeyArray("armorMod.mod.health")[0]); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModInk.java b/src/main/java/com/hbm/items/armor/ItemModInk.java index f8604c8f2..88da55114 100644 --- a/src/main/java/com/hbm/items/armor/ItemModInk.java +++ b/src/main/java/com/hbm/items/armor/ItemModInk.java @@ -4,6 +4,7 @@ import java.util.List; import com.hbm.handler.ArmorModHandler; +import com.hbm.util.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; @@ -19,15 +20,15 @@ public class ItemModInk extends ItemArmorMod { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.LIGHT_PURPLE + "10% chance to nullify damage"); - list.add(EnumChatFormatting.LIGHT_PURPLE + "Flowers!"); + list.add(EnumChatFormatting.LIGHT_PURPLE + I18nUtil.resolveKeyArray("armorMod.mod.Ink")[0]); + list.add(EnumChatFormatting.LIGHT_PURPLE + I18nUtil.resolveKeyArray("armorMod.mod.Ink")[1]); list.add(""); super.addInformation(itemstack, player, list, bool); } @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.LIGHT_PURPLE + " " + stack.getDisplayName() + " (10% chance to nullify damage)"); + list.add(EnumChatFormatting.LIGHT_PURPLE + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.Ink")[2]); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModInsert.java b/src/main/java/com/hbm/items/armor/ItemModInsert.java index a8f114c95..ae539765d 100644 --- a/src/main/java/com/hbm/items/armor/ItemModInsert.java +++ b/src/main/java/com/hbm/items/armor/ItemModInsert.java @@ -8,6 +8,7 @@ import com.hbm.extprop.HbmLivingProps; import com.hbm.handler.ArmorModHandler; import com.hbm.items.ModItems; +import com.hbm.util.I18nUtil; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.ai.attributes.AttributeModifier; @@ -37,18 +38,18 @@ public class ItemModInsert extends ItemArmorMod { public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { if(damageMod != 1F) - list.add(EnumChatFormatting.RED + (damageMod < 1 ? "-" : "+") + Math.abs(Math.round((1F - damageMod) * 100)) + "% damage"); + list.add(EnumChatFormatting.RED + (damageMod < 1 ? "-" : "+") + Math.abs(Math.round((1F - damageMod) * 100)) + I18nUtil.resolveKeyArray("armorMod.mod.Insert")[0]); if(projectileMod != 1F) - list.add(EnumChatFormatting.YELLOW + "-" + Math.round((1F - projectileMod) * 100) + "% projectile damage"); + list.add(EnumChatFormatting.YELLOW + "-" + Math.round((1F - projectileMod) * 100) + I18nUtil.resolveKeyArray("armorMod.mod.Insert")[1]); if(explosionMod != 1F) - list.add(EnumChatFormatting.YELLOW + "-" + Math.round((1F - explosionMod) * 100) + "% explosion damage"); + list.add(EnumChatFormatting.YELLOW + "-" + Math.round((1F - explosionMod) * 100) + I18nUtil.resolveKeyArray("armorMod.mod.Insert")[2]); if(speed != 1F) - list.add(EnumChatFormatting.BLUE + "-" + Math.round((1F - speed) * 100) + "% speed"); + list.add(EnumChatFormatting.BLUE + "-" + Math.round((1F - speed) * 100) + I18nUtil.resolveKeyArray("armorMod.mod.Insert")[3]); if(this == ModItems.insert_polonium) list.add(EnumChatFormatting.DARK_RED + "+100 RAD/s"); - list.add((stack.getMaxDamage() - stack.getItemDamage()) + "/" + stack.getMaxDamage() + "HP"); + list.add((stack.getMaxDamage() - stack.getItemDamage()) + "/" + stack.getMaxDamage() + I18nUtil.resolveKeyArray("armorMod.mod.Insert")[4]); list.add(""); super.addInformation(stack, player, list, bool); @@ -60,20 +61,20 @@ public class ItemModInsert extends ItemArmorMod { List desc = new ArrayList(); if(damageMod != 1F) - desc.add((damageMod < 1 ? "-" : "+") + Math.abs(Math.round((1F - damageMod) * 100)) + "% dmg"); + desc.add((damageMod < 1 ? "-" : "+") + Math.abs(Math.round((1F - damageMod) * 100)) + I18nUtil.resolveKeyArray("armorMod.mod.Insert")[0]); if(projectileMod != 1F) - desc.add("-" + Math.round((1F - projectileMod) * 100) + "% proj"); + desc.add("-" + Math.round((1F - projectileMod) * 100) + I18nUtil.resolveKeyArray("armorMod.mod.Insert")[1]); if(explosionMod != 1F) - desc.add("-" + Math.round((1F - explosionMod) * 100) + "% exp"); + desc.add("-" + Math.round((1F - explosionMod) * 100) + I18nUtil.resolveKeyArray("armorMod.mod.Insert")[2]); if(explosionMod != 1F) - desc.add("-" + Math.round((1F - speed) * 100) + "% speed"); + desc.add("-" + Math.round((1F - speed) * 100) + I18nUtil.resolveKeyArray("armorMod.mod.Insert")[3]); if(this == ModItems.insert_polonium) desc.add("+100 RAD/s"); String join = String.join(" / ", desc); - list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + " (" + join + " / " + (stack.getMaxDamage() - stack.getItemDamage()) + "HP)"); + list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + " (" + join + " / " + (stack.getMaxDamage() - stack.getItemDamage()) + I18nUtil.resolveKeyArray("armorMod.mod.Insert")[4] + ")"); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModIron.java b/src/main/java/com/hbm/items/armor/ItemModIron.java index 99b7fc753..17b9aa4e8 100644 --- a/src/main/java/com/hbm/items/armor/ItemModIron.java +++ b/src/main/java/com/hbm/items/armor/ItemModIron.java @@ -5,6 +5,7 @@ import java.util.List; import com.google.common.collect.Multimap; import com.hbm.handler.ArmorModHandler; +import com.hbm.util.I18nUtil; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.ai.attributes.AttributeModifier; import net.minecraft.entity.player.EntityPlayer; @@ -20,14 +21,14 @@ public class ItemModIron extends ItemArmorMod { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.WHITE + "+0.5 knockback resistance"); + list.add(EnumChatFormatting.WHITE + I18nUtil.resolveKeyArray("armorMod.mod.Iron")[0]); list.add(""); super.addInformation(itemstack, player, list, bool); } @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.WHITE + " " + stack.getDisplayName() + " (+0.5 knockback resistence)"); + list.add(EnumChatFormatting.WHITE + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.Iron")[1]); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModKnife.java b/src/main/java/com/hbm/items/armor/ItemModKnife.java index 9d61d7e2e..9742a2af4 100644 --- a/src/main/java/com/hbm/items/armor/ItemModKnife.java +++ b/src/main/java/com/hbm/items/armor/ItemModKnife.java @@ -8,6 +8,7 @@ import com.hbm.main.MainRegistry; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.util.I18nUtil; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.SharedMonsterAttributes; @@ -29,11 +30,8 @@ public class ItemModKnife extends ItemArmorMod { @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { - - list.add(EnumChatFormatting.RED + "Pain."); - list.add(""); - list.add(EnumChatFormatting.RED + "Hurts, doesn't it?"); - + for(String s : I18nUtil.resolveKeyArray("armorMod.mod.Knife")) + list.add(EnumChatFormatting.RED + s); list.add(""); super.addInformation(stack, player, list, bool); } diff --git a/src/main/java/com/hbm/items/armor/ItemModLens.java b/src/main/java/com/hbm/items/armor/ItemModLens.java index a9df9cfff..68e27a3a4 100644 --- a/src/main/java/com/hbm/items/armor/ItemModLens.java +++ b/src/main/java/com/hbm/items/armor/ItemModLens.java @@ -11,6 +11,7 @@ import com.hbm.saveddata.SatelliteSavedData; import com.hbm.saveddata.satellites.Satellite; import com.hbm.saveddata.satellites.SatelliteScanner; +import com.hbm.util.I18nUtil; import net.minecraft.block.Block; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; @@ -30,7 +31,7 @@ public class ItemModLens extends ItemArmorMod implements ISatChip { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.AQUA + "Satellite Frequency: " + this.getFreq(itemstack)); + list.add(EnumChatFormatting.AQUA + I18nUtil.resolveKeyArray("armorMod.mod.Lens")[0] + this.getFreq(itemstack)); list.add(""); super.addInformation(itemstack, player, list, bool); @@ -38,7 +39,7 @@ public class ItemModLens extends ItemArmorMod implements ISatChip { @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.AQUA + " " + stack.getDisplayName() + " (Freq: " + getFreq(stack) + ")"); + list.add(EnumChatFormatting.AQUA + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.Lens",getFreq(stack))[1] ); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModLodestone.java b/src/main/java/com/hbm/items/armor/ItemModLodestone.java index 9939244b7..ae7c4039a 100644 --- a/src/main/java/com/hbm/items/armor/ItemModLodestone.java +++ b/src/main/java/com/hbm/items/armor/ItemModLodestone.java @@ -4,6 +4,7 @@ import java.util.List; import com.hbm.handler.ArmorModHandler; +import com.hbm.util.I18nUtil; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; @@ -23,15 +24,15 @@ public class ItemModLodestone extends ItemArmorMod { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.DARK_GRAY + "Attracts nearby items"); - list.add(EnumChatFormatting.DARK_GRAY + "Item attraction range: " + range); + list.add(EnumChatFormatting.DARK_GRAY + I18nUtil.resolveKeyArray("armorMod.mod.Lodestone")[0]); + list.add(EnumChatFormatting.DARK_GRAY + I18nUtil.resolveKeyArray("armorMod.mod.Lodestone",range)[1]); list.add(""); super.addInformation(itemstack, player, list, bool); } @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.DARK_GRAY + " " + stack.getDisplayName() + " (Magnetic range: " + range + ")"); + list.add(EnumChatFormatting.DARK_GRAY + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.Lodestone",range)[2] ); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModMilk.java b/src/main/java/com/hbm/items/armor/ItemModMilk.java index 1985c6b17..455d449b8 100644 --- a/src/main/java/com/hbm/items/armor/ItemModMilk.java +++ b/src/main/java/com/hbm/items/armor/ItemModMilk.java @@ -8,6 +8,7 @@ import java.util.List; import com.hbm.handler.ArmorModHandler; import com.hbm.potion.HbmPotion; +import com.hbm.util.I18nUtil; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -24,14 +25,14 @@ public class ItemModMilk extends ItemArmorMod { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.WHITE + "Removes bad potion effects"); + list.add(EnumChatFormatting.WHITE + I18nUtil.resolveKeyArray("armorMod.mod.Milk")[0]); list.add(""); super.addInformation(itemstack, player, list, bool); } @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.WHITE + " " + stack.getDisplayName() + " (Removes bad potion effects)"); + list.add(EnumChatFormatting.WHITE + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.Milk")[1]); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModMorningGlory.java b/src/main/java/com/hbm/items/armor/ItemModMorningGlory.java index b33bbfa30..625db4ef3 100644 --- a/src/main/java/com/hbm/items/armor/ItemModMorningGlory.java +++ b/src/main/java/com/hbm/items/armor/ItemModMorningGlory.java @@ -4,6 +4,7 @@ import java.util.List; import com.hbm.handler.ArmorModHandler; +import com.hbm.util.I18nUtil; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -21,14 +22,14 @@ public class ItemModMorningGlory extends ItemArmorMod { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.LIGHT_PURPLE + "5% chance to apply resistance when hit, wither immunity"); + list.add(EnumChatFormatting.LIGHT_PURPLE + I18nUtil.resolveKeyArray("armorMod.mod.MorningGlory")[0]); list.add(""); super.addInformation(itemstack, player, list, bool); } @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.LIGHT_PURPLE + " " + stack.getDisplayName() + " (5% for resistance, wither immunity)"); + list.add(EnumChatFormatting.LIGHT_PURPLE + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.MorningGlory")[1]); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModObsidian.java b/src/main/java/com/hbm/items/armor/ItemModObsidian.java index 2227c1dd1..16b5726a8 100644 --- a/src/main/java/com/hbm/items/armor/ItemModObsidian.java +++ b/src/main/java/com/hbm/items/armor/ItemModObsidian.java @@ -4,6 +4,7 @@ import java.util.List; import com.hbm.handler.ArmorModHandler; +import com.hbm.util.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; @@ -16,13 +17,13 @@ public class ItemModObsidian extends ItemArmorMod { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.DARK_PURPLE + "Makes dropped armor indestructible"); + list.add(EnumChatFormatting.DARK_PURPLE + I18nUtil.resolveKeyArray("armorMod.mod.Obsidian")[0]); list.add(""); super.addInformation(itemstack, player, list, bool); } @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + " (Item indestructible)"); + list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.Obsidian")[1]); } } diff --git a/src/main/java/com/hbm/items/armor/ItemModPads.java b/src/main/java/com/hbm/items/armor/ItemModPads.java index 9e7d62556..39234d5d2 100644 --- a/src/main/java/com/hbm/items/armor/ItemModPads.java +++ b/src/main/java/com/hbm/items/armor/ItemModPads.java @@ -5,6 +5,7 @@ import java.util.List; import com.hbm.handler.ArmorModHandler; import com.hbm.items.ModItems; +import com.hbm.util.I18nUtil; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -25,10 +26,10 @@ public class ItemModPads extends ItemArmorMod { public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { if(damageMod != 1F) - list.add(EnumChatFormatting.RED + "-" + Math.round((1F - damageMod) * 100) + "% fall damage"); + list.add(EnumChatFormatting.RED + "-" + Math.round((1F - damageMod) * 100) + I18nUtil.resolveKeyArray("armorMod.mod.Pads")[0]); if(this == ModItems.pads_static) - list.add(EnumChatFormatting.DARK_PURPLE + "Passively charges electric armor when walking"); + list.add(EnumChatFormatting.DARK_PURPLE + I18nUtil.resolveKeyArray("armorMod.mod.Pads")[1]); list.add(""); super.addInformation(itemstack, player, list, bool); @@ -38,9 +39,9 @@ public class ItemModPads extends ItemArmorMod { public void addDesc(List list, ItemStack stack, ItemStack armor) { if(this == ModItems.pads_static) - list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + " (-" + Math.round((1F - damageMod) * 100) + "% fall dmg / passive charge)"); + list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + " (-" + Math.round((1F - damageMod) * 100) + I18nUtil.resolveKeyArray("armorMod.mod.Pads")[2]); else - list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + " (-" + Math.round((1F - damageMod) * 100) + "% fall dmg)"); + list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + " (-" + Math.round((1F - damageMod) * 100) + I18nUtil.resolveKeyArray("armorMod.mod.Pads")[0]); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModPolish.java b/src/main/java/com/hbm/items/armor/ItemModPolish.java index b35e13480..96c803442 100644 --- a/src/main/java/com/hbm/items/armor/ItemModPolish.java +++ b/src/main/java/com/hbm/items/armor/ItemModPolish.java @@ -4,6 +4,7 @@ import java.util.List; import com.hbm.handler.ArmorModHandler; +import com.hbm.util.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; @@ -18,14 +19,14 @@ public class ItemModPolish extends ItemArmorMod { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.BLUE + "5% chance to nullify damage"); + list.add(EnumChatFormatting.BLUE + I18nUtil.resolveKeyArray("armorMod.mod.Polish")[0]); list.add(""); super.addInformation(itemstack, player, list, bool); } @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.BLUE + " " + stack.getDisplayName() + " (5% chance to nullify damage)"); + list.add(EnumChatFormatting.BLUE + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.Polish")[1]); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModQuartz.java b/src/main/java/com/hbm/items/armor/ItemModQuartz.java index 9179681b2..90bcf6833 100644 --- a/src/main/java/com/hbm/items/armor/ItemModQuartz.java +++ b/src/main/java/com/hbm/items/armor/ItemModQuartz.java @@ -5,6 +5,7 @@ import java.util.List; import com.hbm.extprop.HbmLivingProps; import com.hbm.handler.ArmorModHandler; +import com.hbm.util.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; @@ -19,14 +20,14 @@ public class ItemModQuartz extends ItemArmorMod { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.DARK_GRAY + "Taking damage removes 10 RAD"); + list.add(EnumChatFormatting.DARK_GRAY + I18nUtil.resolveKeyArray("armorMod.mod.Quartz")[0]); list.add(""); super.addInformation(itemstack, player, list, bool); } @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.DARK_GRAY + " " + stack.getDisplayName() + " (-10 RAD when hit)"); + list.add(EnumChatFormatting.DARK_GRAY + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.Quartz")[1]); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModRevive.java b/src/main/java/com/hbm/items/armor/ItemModRevive.java index 57519ed89..055017430 100644 --- a/src/main/java/com/hbm/items/armor/ItemModRevive.java +++ b/src/main/java/com/hbm/items/armor/ItemModRevive.java @@ -5,6 +5,7 @@ import java.util.List; import com.hbm.handler.ArmorModHandler; import com.hbm.items.ModItems; +import com.hbm.util.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; @@ -20,23 +21,19 @@ public class ItemModRevive extends ItemArmorMod { public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { if(this == ModItems.scrumpy) { - list.add(EnumChatFormatting.GOLD + "But how did you survive?"); - list.add(EnumChatFormatting.RED + "I was drunk."); + list.add(EnumChatFormatting.GOLD + I18nUtil.resolveKeyArray("armorMod.mod.Revive.scrumpy")[0]); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("armorMod.mod.Revive.scrumpy")[1]); } if(this == ModItems.wild_p) { - list.add(EnumChatFormatting.DARK_GRAY + "Explosive " + EnumChatFormatting.RED + "Reactive " + EnumChatFormatting.DARK_GRAY + "Plot " + EnumChatFormatting.RED + "Armor"); + list.add(I18nUtil.resolveKey("armorMod.mod.Revive.wild_p")); } if(this == ModItems.fabsols_vodka) { - list.add(EnumChatFormatting.ITALIC + "In the news:"); - list.add(EnumChatFormatting.RED + "" + EnumChatFormatting.BOLD + "Man literally too angry to die."); - list.add(""); - list.add(EnumChatFormatting.ITALIC + "\"I ain't got time to die\" says local"); - list.add(EnumChatFormatting.ITALIC + "man after ripping the physical manifestation"); - list.add(EnumChatFormatting.ITALIC + "of disaster itself in half."); + for(String s : I18nUtil.resolveKeyArray("armorMod.mod.Revive.fabsols_vodka")) + list.add(EnumChatFormatting.ITALIC + s); } list.add(""); - list.add(EnumChatFormatting.GOLD + "" + (stack.getMaxDamage() - stack.getItemDamage()) + " revives left"); + list.add(EnumChatFormatting.GOLD + "" + (stack.getMaxDamage() - stack.getItemDamage()) + I18nUtil.resolveKey("armorMod.mod.Revive")); list.add(""); super.addInformation(stack, player, list, bool); } @@ -44,6 +41,6 @@ public class ItemModRevive extends ItemArmorMod { @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.GOLD + " " + stack.getDisplayName() + " (" + (stack.getMaxDamage() - stack.getItemDamage()) + " revives left)"); + list.add(EnumChatFormatting.GOLD + " " + stack.getDisplayName() + " (" + (stack.getMaxDamage() - stack.getItemDamage()) + I18nUtil.resolveKey("armorMod.mod.Revive") + ")"); } } diff --git a/src/main/java/com/hbm/items/armor/ItemModSensor.java b/src/main/java/com/hbm/items/armor/ItemModSensor.java index cfdec7ff9..4ab0619d2 100644 --- a/src/main/java/com/hbm/items/armor/ItemModSensor.java +++ b/src/main/java/com/hbm/items/armor/ItemModSensor.java @@ -5,6 +5,7 @@ import java.util.List; import com.hbm.blocks.ModBlocks; import com.hbm.handler.ArmorModHandler; +import com.hbm.util.I18nUtil; import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; @@ -22,15 +23,15 @@ public class ItemModSensor extends ItemArmorMod { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.YELLOW + "Beeps near hazardous gasses"); - list.add(EnumChatFormatting.YELLOW + "Works in the inventory or when applied to armor"); + list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("armorMod.mod.Sensor")[0]); + list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("armorMod.mod.Sensor")[1]); list.add(""); super.addInformation(itemstack, player, list, bool); } @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.YELLOW + " " + stack.getDisplayName() + " (Detects gasses)"); + list.add(EnumChatFormatting.YELLOW + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.Sensor")[2]); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModSerum.java b/src/main/java/com/hbm/items/armor/ItemModSerum.java index 29988e37b..3d9d91049 100644 --- a/src/main/java/com/hbm/items/armor/ItemModSerum.java +++ b/src/main/java/com/hbm/items/armor/ItemModSerum.java @@ -4,6 +4,7 @@ import java.util.List; import com.hbm.handler.ArmorModHandler; +import com.hbm.util.I18nUtil; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -20,14 +21,14 @@ public class ItemModSerum extends ItemArmorMod { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.GREEN + "Cures poison and gives strength"); + list.add(EnumChatFormatting.GREEN + I18nUtil.resolveKeyArray("armorMod.mod.Serum")[0]); list.add(""); super.addInformation(itemstack, player, list, bool); } @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.BLUE + " " + stack.getDisplayName() + " (replaces poison with strength)"); + list.add(EnumChatFormatting.BLUE + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.Serum")[1]); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModServos.java b/src/main/java/com/hbm/items/armor/ItemModServos.java index cb07d46f3..a014d2305 100644 --- a/src/main/java/com/hbm/items/armor/ItemModServos.java +++ b/src/main/java/com/hbm/items/armor/ItemModServos.java @@ -6,6 +6,7 @@ import com.google.common.collect.Multimap; import com.hbm.handler.ArmorModHandler; import com.hbm.items.ModItems; +import com.hbm.util.I18nUtil; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.ai.attributes.AttributeModifier; @@ -26,12 +27,12 @@ public class ItemModServos extends ItemArmorMod { public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { if(this == ModItems.servo_set) { - list.add(EnumChatFormatting.DARK_PURPLE + "Chestplate: Haste I / Damage +50%"); - list.add(EnumChatFormatting.DARK_PURPLE + "Leggings: Speed +25% / Jump II"); + list.add(EnumChatFormatting.DARK_PURPLE + I18nUtil.resolveKeyArray("armorMod.mod.Servos")[0]); + list.add(EnumChatFormatting.DARK_PURPLE + I18nUtil.resolveKeyArray("armorMod.mod.Servos")[1]); } if(this == ModItems.servo_set_desh) { - list.add(EnumChatFormatting.DARK_PURPLE + "Chestplate: Haste III / Damage +150%"); - list.add(EnumChatFormatting.DARK_PURPLE + "Leggings: Speed +50% / Jump III"); + list.add(EnumChatFormatting.DARK_PURPLE + I18nUtil.resolveKeyArray("armorMod.mod.Servos.desh")[0]); + list.add(EnumChatFormatting.DARK_PURPLE + I18nUtil.resolveKeyArray("armorMod.mod.Servos.desh")[1]); } list.add(""); @@ -46,20 +47,20 @@ public class ItemModServos extends ItemArmorMod { if(item.armorType == 1) { if(this == ModItems.servo_set) { - list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + " (Haste I / Damage +50%)"); + list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.Servos")[2]); } if(this == ModItems.servo_set_desh) { - list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + " (Haste III / Damage +150%)"); + list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.Servos.desh")[2]); } } if(item.armorType == 2) { if(this == ModItems.servo_set) { - list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + " (Speed +25% / Jump II)"); + list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.Servos")[3]); } if(this == ModItems.servo_set_desh) { - list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + " (Speed +50% / Jump III)"); + list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.Servos.desh")[3]); } } } diff --git a/src/main/java/com/hbm/items/armor/ItemModShackles.java b/src/main/java/com/hbm/items/armor/ItemModShackles.java index 306dd3c2a..aad9cfcce 100644 --- a/src/main/java/com/hbm/items/armor/ItemModShackles.java +++ b/src/main/java/com/hbm/items/armor/ItemModShackles.java @@ -4,6 +4,7 @@ import java.util.List; import com.hbm.handler.ArmorModHandler; +import com.hbm.util.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; @@ -17,12 +18,12 @@ public class ItemModShackles extends ItemArmorMod { @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.RED + "You will speak when I ask you to."); - list.add(EnumChatFormatting.RED + "You will eat when I tell you to."); - list.add(EnumChatFormatting.RED + "" + EnumChatFormatting.BOLD + "You will die when I allow you to."); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("armorMod.mod.Shackles")[0]); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("armorMod.mod.Shackles")[1]); + list.add(EnumChatFormatting.RED + "" + EnumChatFormatting.BOLD + I18nUtil.resolveKeyArray("armorMod.mod.Shackles")[2]); list.add(""); - list.add(EnumChatFormatting.GOLD + "∞ revives left"); + list.add(EnumChatFormatting.GOLD + I18nUtil.resolveKeyArray("armorMod.mod.Shackles")[3]); list.add(""); super.addInformation(stack, player, list, bool); } @@ -30,6 +31,6 @@ public class ItemModShackles extends ItemArmorMod { @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.GOLD + " " + stack.getDisplayName() + " (∞ revives left)"); + list.add(EnumChatFormatting.GOLD + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.Shackles")[4]); } } diff --git a/src/main/java/com/hbm/items/armor/ItemModTesla.java b/src/main/java/com/hbm/items/armor/ItemModTesla.java index b09a37770..cfddd60ea 100644 --- a/src/main/java/com/hbm/items/armor/ItemModTesla.java +++ b/src/main/java/com/hbm/items/armor/ItemModTesla.java @@ -7,6 +7,7 @@ import com.hbm.handler.ArmorModHandler; import com.hbm.render.model.ModelBackTesla; import com.hbm.tileentity.machine.TileEntityTesla; +import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.model.ModelBiped; @@ -30,14 +31,14 @@ public class ItemModTesla extends ItemArmorMod { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.YELLOW + "Zaps nearby entities (requires full electric set)"); + list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("armorMod.mod.Tesla")[0]); list.add(""); super.addInformation(itemstack, player, list, bool); } @SideOnly(Side.CLIENT) public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.YELLOW + stack.getDisplayName() + " (zaps nearby entities)"); + list.add(EnumChatFormatting.YELLOW + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.Tesla")[1]); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModTwoKick.java b/src/main/java/com/hbm/items/armor/ItemModTwoKick.java index a93ab9574..f647e509f 100644 --- a/src/main/java/com/hbm/items/armor/ItemModTwoKick.java +++ b/src/main/java/com/hbm/items/armor/ItemModTwoKick.java @@ -4,6 +4,7 @@ import java.util.List; import com.hbm.handler.ArmorModHandler; +import com.hbm.util.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; @@ -17,14 +18,14 @@ public class ItemModTwoKick extends ItemArmorMod { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.ITALIC + "\"I've had worse\""); - list.add(EnumChatFormatting.YELLOW + "Punches fire 12 gauge shells"); + list.add(EnumChatFormatting.ITALIC + I18nUtil.resolveKeyArray("armorMod.mod.TwoKick")[0]); + list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("armorMod.mod.TwoKick")[1]); list.add(""); super.addInformation(itemstack, player, list, bool); } @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.YELLOW + " " + stack.getDisplayName() + " (Shotgun punches)"); + list.add(EnumChatFormatting.YELLOW + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.TwoKick")[2]); } } diff --git a/src/main/java/com/hbm/items/armor/ItemModV1.java b/src/main/java/com/hbm/items/armor/ItemModV1.java index bb5d8a3a6..e7e67f8d3 100644 --- a/src/main/java/com/hbm/items/armor/ItemModV1.java +++ b/src/main/java/com/hbm/items/armor/ItemModV1.java @@ -7,6 +7,7 @@ import com.google.common.collect.Multimap; import com.hbm.handler.ArmorModHandler; import com.hbm.interfaces.IArmorModDash; +import com.hbm.util.I18nUtil; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.ai.attributes.AttributeModifier; import net.minecraft.entity.player.EntityPlayer; @@ -31,14 +32,14 @@ public class ItemModV1 extends ItemArmorMod implements IArmorModDash { @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.RED + "BLOOD IS FUEL"); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("armorMod.mod.V1")[0]); list.add(""); super.addInformation(stack, player, list, bool); } @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.RED + " " + stack.getDisplayName() + " (BLOOD IS FUEL)"); + list.add(EnumChatFormatting.RED + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.V1")[1]); } public int getDashes() { diff --git a/src/main/java/com/hbm/items/armor/ItemModWD40.java b/src/main/java/com/hbm/items/armor/ItemModWD40.java index b01f48217..ace751d25 100644 --- a/src/main/java/com/hbm/items/armor/ItemModWD40.java +++ b/src/main/java/com/hbm/items/armor/ItemModWD40.java @@ -6,6 +6,7 @@ import com.google.common.collect.Multimap; import com.hbm.handler.ArmorModHandler; import com.hbm.main.MainRegistry; +import com.hbm.util.I18nUtil; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.ai.attributes.AttributeModifier; @@ -27,7 +28,7 @@ public class ItemModWD40 extends ItemArmorMod { String color = "" + (System.currentTimeMillis() % 1000 < 500 ? EnumChatFormatting.BLUE : EnumChatFormatting.YELLOW); - list.add(color + "Highly reduces damage taken by armor, +2 HP"); + list.add(color + I18nUtil.resolveKeyArray("armorMod.mod.WD40")[0]); list.add(""); super.addInformation(itemstack, player, list, bool); } @@ -37,7 +38,7 @@ public class ItemModWD40 extends ItemArmorMod { String color = "" + (System.currentTimeMillis() % 1000 < 500 ? EnumChatFormatting.BLUE : EnumChatFormatting.YELLOW); - list.add(color + " " + stack.getDisplayName() + " (-80% armor wear / +2 HP)"); + list.add(color + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.WD40")[1]); } @Override diff --git a/src/main/java/com/hbm/items/armor/JetpackBase.java b/src/main/java/com/hbm/items/armor/JetpackBase.java index e5701e3d8..ff96db4cc 100644 --- a/src/main/java/com/hbm/items/armor/JetpackBase.java +++ b/src/main/java/com/hbm/items/armor/JetpackBase.java @@ -8,6 +8,7 @@ import com.hbm.render.model.ModelJetPack; import com.hbm.util.ArmorUtil; import api.hbm.fluid.IFillableItem; +import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.Minecraft; @@ -40,7 +41,7 @@ public abstract class JetpackBase extends ItemArmorMod implements IFillableItem list.add(EnumChatFormatting.LIGHT_PURPLE + fuel.getLocalizedName() + ": " + this.getFuel(itemstack) + "mB / " + this.maxFuel + "mB"); list.add(""); super.addInformation(itemstack, player, list, bool); - list.add(EnumChatFormatting.GOLD + "Can be worn on its own!"); + list.add(EnumChatFormatting.GOLD + I18nUtil.resolveKey("item.jetpack.desc")); } @Override diff --git a/src/main/java/com/hbm/items/armor/JetpackBooster.java b/src/main/java/com/hbm/items/armor/JetpackBooster.java index 09b90947b..a7a0084ec 100644 --- a/src/main/java/com/hbm/items/armor/JetpackBooster.java +++ b/src/main/java/com/hbm/items/armor/JetpackBooster.java @@ -7,6 +7,7 @@ import com.hbm.inventory.fluid.FluidType; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.util.I18nUtil; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -14,6 +15,7 @@ import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.Vec3; import net.minecraft.world.World; @@ -67,9 +69,8 @@ public class JetpackBooster extends JetpackBase { @SideOnly(Side.CLIENT) public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { - - list.add("High-powered vectorized jetpack."); - list.add("Highly increased fuel consumption."); + for(String s : I18nUtil.resolveKeyArray("item.jetpack_boost.desc")) + list.add(s); super.addInformation(stack, player, list, ext); } diff --git a/src/main/java/com/hbm/items/armor/JetpackBreak.java b/src/main/java/com/hbm/items/armor/JetpackBreak.java index 340fd2f09..92da43169 100644 --- a/src/main/java/com/hbm/items/armor/JetpackBreak.java +++ b/src/main/java/com/hbm/items/armor/JetpackBreak.java @@ -7,6 +7,7 @@ import com.hbm.inventory.fluid.FluidType; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.util.I18nUtil; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -77,9 +78,8 @@ public class JetpackBreak extends JetpackBase { @SideOnly(Side.CLIENT) public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { - list.add("Regular jetpack that will automatically hover mid-air."); - list.add("Sneaking will stop hover mode."); - list.add("Hover mode will consume less fuel and increase air-mobility."); + for(String s : I18nUtil.resolveKeyArray("item.jetpack_break.desc")) + list.add(s); super.addInformation(stack, player, list, ext); } diff --git a/src/main/java/com/hbm/items/armor/JetpackRegular.java b/src/main/java/com/hbm/items/armor/JetpackRegular.java index cbf04933b..5c3da193b 100644 --- a/src/main/java/com/hbm/items/armor/JetpackRegular.java +++ b/src/main/java/com/hbm/items/armor/JetpackRegular.java @@ -7,6 +7,7 @@ import com.hbm.inventory.fluid.FluidType; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.util.I18nUtil; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -56,7 +57,7 @@ public class JetpackRegular extends JetpackBase { @SideOnly(Side.CLIENT) public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { - list.add("Regular jetpack for simple upwards momentum."); + list.add(I18nUtil.resolveKey("item.jetpack_fly.desc")); super.addInformation(stack, player, list, ext); } diff --git a/src/main/java/com/hbm/items/armor/JetpackVectorized.java b/src/main/java/com/hbm/items/armor/JetpackVectorized.java index d95312f80..d878a4d6d 100644 --- a/src/main/java/com/hbm/items/armor/JetpackVectorized.java +++ b/src/main/java/com/hbm/items/armor/JetpackVectorized.java @@ -7,6 +7,7 @@ import com.hbm.inventory.fluid.FluidType; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.util.I18nUtil; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -68,8 +69,8 @@ public class JetpackVectorized extends JetpackBase { @SideOnly(Side.CLIENT) public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { - list.add("High-mobility jetpack."); - list.add("Higher fuel consumption."); + for(String s : I18nUtil.resolveKeyArray("item.jetpack_vector.desc")) + list.add(s); super.addInformation(stack, player, list, ext); } diff --git a/src/main/java/com/hbm/items/block/ItemBlockBlastInfo.java b/src/main/java/com/hbm/items/block/ItemBlockBlastInfo.java index 4ded08d51..a278ad15d 100644 --- a/src/main/java/com/hbm/items/block/ItemBlockBlastInfo.java +++ b/src/main/java/com/hbm/items/block/ItemBlockBlastInfo.java @@ -2,6 +2,7 @@ package com.hbm.items.block; import java.util.List; +import com.hbm.util.I18nUtil; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; @@ -25,6 +26,6 @@ public class ItemBlockBlastInfo extends ItemBlockBase { if(block == null) return; - list.add(EnumChatFormatting.GOLD + "Blast Resistance: " + block.getExplosionResistance(null)); + list.add(EnumChatFormatting.GOLD + I18nUtil.resolveKey("desc.block.blastinfo", block.getExplosionResistance(null))); } } diff --git a/src/main/java/com/hbm/items/block/ItemBlockLore.java b/src/main/java/com/hbm/items/block/ItemBlockLore.java index 6d26836e0..24d86b52c 100644 --- a/src/main/java/com/hbm/items/block/ItemBlockLore.java +++ b/src/main/java/com/hbm/items/block/ItemBlockLore.java @@ -5,6 +5,7 @@ import java.util.List; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.RedBarrel; +import com.hbm.util.I18nUtil; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.EnumRarity; @@ -21,35 +22,21 @@ public class ItemBlockLore extends ItemBlockBase { super.addInformation(itemstack, player, list, bool); if(this.field_150939_a instanceof RedBarrel) { - list.add("Static fluid barrel"); + list.add(I18nUtil.resolveKey("tile.red_barrel.desc")); } if(this.field_150939_a == ModBlocks.meteor_battery) { - list.add("Provides infinite charge to tesla coils"); + list.add(I18nUtil.resolveKey("tile.meteor_battery.desc")); } if(this.field_150939_a == ModBlocks.ore_oil) { - list.add("You weren't supposed to mine that."); - list.add("Come on, get a derrick you doofus."); + for(String s : I18nUtil.resolveKeyArray("tile.ore_oil.desc")) + list.add(s); } if(this.field_150939_a == ModBlocks.gravel_diamond) { - list.add("There is some kind of joke here,"); - list.add("but I can't quite tell what it is."); - list.add(""); - list.add("Update, 2020-07-04:"); - list.add("We deny any implications of a joke on"); - list.add("the basis that it was so severely unfunny"); - list.add("that people started stabbing their eyes out."); - list.add(""); - list.add("Update, 2020-17-04:"); - list.add("As it turns out, \"Diamond Gravel\" was"); - list.add("never really a thing, rendering what might"); - list.add("have been a joke as totally nonsensical."); - list.add("We apologize for getting your hopes up with"); - list.add("this non-joke that hasn't been made."); - list.add(""); - list.add("i added an item for a joke that isn't even here, what am i, stupid? can't even tell the difference between gravel and a gavel, how did i not forget how to breathe yet?"); + for(String s : I18nUtil.resolveKeyArray("tile.gravel_diamond.desc")) + list.add(s); } } diff --git a/src/main/java/com/hbm/items/block/ItemCustomMachine.java b/src/main/java/com/hbm/items/block/ItemCustomMachine.java index 61b1cf00c..b1c1199ad 100644 --- a/src/main/java/com/hbm/items/block/ItemCustomMachine.java +++ b/src/main/java/com/hbm/items/block/ItemCustomMachine.java @@ -5,6 +5,7 @@ import java.util.List; import com.hbm.config.CustomMachineConfigJSON; import com.hbm.config.CustomMachineConfigJSON.MachineConfiguration; +import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; @@ -37,7 +38,7 @@ public class ItemCustomMachine extends ItemBlock { MachineConfiguration conf = CustomMachineConfigJSON.niceList.get(id); if(conf != null) { - return conf.localizedName; + return (I18nUtil.resolveKey("tile.cm_" + conf.unlocalizedName + ".name").startsWith("tile.cm_")) ? conf.localizedName : I18nUtil.resolveKey("tile.cm_" + conf.unlocalizedName + ".name"); } } diff --git a/src/main/java/com/hbm/items/bomb/ItemFleija.java b/src/main/java/com/hbm/items/bomb/ItemFleija.java index d9424f67e..0ef739264 100644 --- a/src/main/java/com/hbm/items/bomb/ItemFleija.java +++ b/src/main/java/com/hbm/items/bomb/ItemFleija.java @@ -4,6 +4,7 @@ import java.util.List; import com.hbm.items.ModItems; +import com.hbm.util.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.EnumRarity; import net.minecraft.item.Item; @@ -14,8 +15,8 @@ public class ItemFleija extends Item { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add("Used in:"); - list.add("F.L.E.I.J.A."); + for(String s : I18nUtil.resolveKeyArray( "tile.nuke_fleija.desc")) + list.add(s); super.addInformation(itemstack, player, list, bool); } diff --git a/src/main/java/com/hbm/items/bomb/ItemMissileShuttle.java b/src/main/java/com/hbm/items/bomb/ItemMissileShuttle.java index edbcbc693..707be6ba1 100644 --- a/src/main/java/com/hbm/items/bomb/ItemMissileShuttle.java +++ b/src/main/java/com/hbm/items/bomb/ItemMissileShuttle.java @@ -2,6 +2,7 @@ package com.hbm.items.bomb; import java.util.List; +import com.hbm.util.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -10,12 +11,7 @@ public class ItemMissileShuttle extends Item { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add("Tonite, on bo''om gear:"); - list.add("James huffs leaded gasoline and"); - list.add("goes insane, Richard spends the"); - list.add("entire budget on a broken .PNG,"); - list.add("And I forget to set the infinite"); - list.add("Water tanks on our RBMK to flow"); - list.add("out, blowing up our entire base"); + for(String s : I18nUtil.resolveKeyArray( "item.missile_shuttle.desc")) + list.add(s); } } \ No newline at end of file diff --git a/src/main/java/com/hbm/items/bomb/ItemN2.java b/src/main/java/com/hbm/items/bomb/ItemN2.java index c837fee78..f1a5ce766 100644 --- a/src/main/java/com/hbm/items/bomb/ItemN2.java +++ b/src/main/java/com/hbm/items/bomb/ItemN2.java @@ -2,17 +2,19 @@ package com.hbm.items.bomb; import java.util.List; +import com.hbm.util.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; public class ItemN2 extends Item { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add("Used in:"); - list.add("N² Mine"); + for(String s : I18nUtil.resolveKeyArray( "tile.nuke_n2.desc")) + list.add(s); } } diff --git a/src/main/java/com/hbm/items/bomb/ItemPrototypeBlock.java b/src/main/java/com/hbm/items/bomb/ItemPrototypeBlock.java index 6335866f3..53a79c575 100644 --- a/src/main/java/com/hbm/items/bomb/ItemPrototypeBlock.java +++ b/src/main/java/com/hbm/items/bomb/ItemPrototypeBlock.java @@ -2,6 +2,7 @@ package com.hbm.items.bomb; import java.util.List; +import com.hbm.util.I18nUtil; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemBlock; @@ -16,10 +17,8 @@ public class ItemPrototypeBlock extends ItemBlock { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add("It didn't have to be like this."); - list.add(""); - list.add("You monster."); - + for(String s : I18nUtil.resolveKeyArray( "tile.nuke_prototype.desc")) + list.add(s); /*list.add("In memory of Euphemia."); list.add(""); list.add("Rest in spaghetti, never forgetti.");*/ diff --git a/src/main/java/com/hbm/items/bomb/ItemSolinium.java b/src/main/java/com/hbm/items/bomb/ItemSolinium.java index a04321ecb..01776fa26 100644 --- a/src/main/java/com/hbm/items/bomb/ItemSolinium.java +++ b/src/main/java/com/hbm/items/bomb/ItemSolinium.java @@ -2,6 +2,7 @@ package com.hbm.items.bomb; import java.util.List; +import com.hbm.util.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -11,8 +12,8 @@ public class ItemSolinium extends Item { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add("Used in:"); - list.add("Solinium Bomb"); + for(String s : I18nUtil.resolveKeyArray( "tile.nuke_solinium.desc")) + list.add(s); super.addInformation(itemstack, player, list, bool); } } diff --git a/src/main/java/com/hbm/items/food/ItemLemon.java b/src/main/java/com/hbm/items/food/ItemLemon.java index 25bb74a9e..b2d332c51 100644 --- a/src/main/java/com/hbm/items/food/ItemLemon.java +++ b/src/main/java/com/hbm/items/food/ItemLemon.java @@ -6,6 +6,7 @@ import com.hbm.items.ModItems; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.util.I18nUtil; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Items; @@ -30,72 +31,57 @@ public class ItemLemon extends ItemFood { public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { if(this == ModItems.lemon) { - list.add("Eh, good enough."); + list.add(I18nUtil.resolveKey("item.lemon.desc")); } if(this == ModItems.definitelyfood) { - list.add("A'right, I got sick and tired of"); - list.add("having to go out, kill things just"); - list.add("to get food and not die, so here is "); - list.add("my absolutely genius solution:"); - list.add(""); - list.add("Have some edible dirt."); + for(String s : I18nUtil.resolveKeyArray("item.definitelyfood.desc")) + list.add(s); } if(this == ModItems.med_ipecac) { - list.add("Bitter juice that will cause your stomach"); - list.add("to forcefully eject its contents."); + for(String s : I18nUtil.resolveKeyArray("item.med_ipecac.desc")) + list.add(s); } if(this == ModItems.med_ptsd) { - list.add("This isn't even PTSD mediaction, it's just"); - list.add("Ipecac in a different bottle!"); + for(String s : I18nUtil.resolveKeyArray("item.med_ptsd.desc")) + list.add(s); } if(this == ModItems.med_schizophrenia) { - list.add("Makes the voices go away. Just for a while."); - list.add(""); - list.add("..."); - list.add("Better not take it."); - } - - if(this == ModItems.med_schizophrenia) { - list.add("Makes the voices go away. Just for a while."); - list.add(""); - list.add("..."); - list.add("Better not take it."); + for(String s : I18nUtil.resolveKeyArray("item.med_schiziphrenia.desc")) + list.add(s); } if(this == ModItems.loops) { - list.add("Brøther, may I have some lööps?"); + list.add(I18nUtil.resolveKey("item.loops.desc")); } if(this == ModItems.loop_stew) { - list.add("A very, very healthy breakfast."); + list.add(I18nUtil.resolveKey("item.loop_stew.desc")); } if(this == ModItems.twinkie) { - list.add("Expired 600 years ago!"); + list.add(I18nUtil.resolveKey("item.twinkie.desc")); } if(this == ModItems.pudding) { - list.add("What if he did?"); - list.add("What if he didn't?"); - list.add("What if the world was made of pudding?"); + for(String s : I18nUtil.resolveKeyArray("item.pudding.desc")) + list.add(s); } if(this == ModItems.ingot_semtex) { - list.add("Semtex H Plastic Explosive"); - list.add("Performant explosive for many applications."); - list.add("Edible"); + for(String s : I18nUtil.resolveKeyArray("item.ingot_semtex.desc")) + list.add(s); } if(this == ModItems.peas) { - list.add("He accepts your offering."); + list.add(I18nUtil.resolveKey("item.peas.desc")); } if(this == ModItems.quesadilla) { - list.add("That's what a 50 year old yeast infection does to you."); + list.add(I18nUtil.resolveKey("item.cheese_quesadilla.desc")); } } diff --git a/src/main/java/com/hbm/items/food/ItemTemFlakes.java b/src/main/java/com/hbm/items/food/ItemTemFlakes.java index d6eee715b..b0435244d 100644 --- a/src/main/java/com/hbm/items/food/ItemTemFlakes.java +++ b/src/main/java/com/hbm/items/food/ItemTemFlakes.java @@ -2,6 +2,7 @@ package com.hbm.items.food; import java.util.List; +import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.creativetab.CreativeTabs; @@ -39,15 +40,15 @@ public class ItemTemFlakes extends ItemFood { { if(itemstack.getItemDamage() == 0) { - list.add("Heals 2HP DISCOUNT FOOD OF TEM!!!"); + list.add(I18nUtil.resolveKeyArray("item.tem_flakes.desc")[0]); } if(itemstack.getItemDamage() == 1) { - list.add("Heals 2HP food of tem"); + list.add(I18nUtil.resolveKeyArray("item.tem_flakes.desc")[1]); } if(itemstack.getItemDamage() == 2) { - list.add("Heals food of tem (expensiv)"); + list.add(I18nUtil.resolveKeyArray("item.tem_flakes.desc")[2]); } } diff --git a/src/main/java/com/hbm/items/machine/ItemBattery.java b/src/main/java/com/hbm/items/machine/ItemBattery.java index 4f0fda9a7..3de7fd67b 100644 --- a/src/main/java/com/hbm/items/machine/ItemBattery.java +++ b/src/main/java/com/hbm/items/machine/ItemBattery.java @@ -6,6 +6,7 @@ import com.hbm.items.ModItems; import com.hbm.util.BobMathUtil; import api.hbm.energy.IBatteryItem; +import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.creativetab.CreativeTabs; @@ -34,14 +35,14 @@ public class ItemBattery extends Item implements IBatteryItem { charge = getCharge(itemstack); if(itemstack.getItem() != ModItems.fusion_core && itemstack.getItem() != ModItems.energy_core) { - list.add("Energy stored: " + BobMathUtil.getShortNumber(charge) + "/" + BobMathUtil.getShortNumber(maxCharge) + "HE"); + list.add(I18nUtil.resolveKey("desc.item.battery.charge",BobMathUtil.getShortNumber(charge),BobMathUtil.getShortNumber(maxCharge))); } else { String charge1 = BobMathUtil.getShortNumber((charge * 100) / this.maxCharge); - list.add("Charge: " + charge1 + "%"); + list.add(I18nUtil.resolveKey("desc.item.battery.chargePerc", charge1)); list.add("(" + BobMathUtil.getShortNumber(charge) + "/" + BobMathUtil.getShortNumber(maxCharge) + "HE)"); } - list.add("Charge rate: " + BobMathUtil.getShortNumber(chargeRate) + "HE/t"); - list.add("Discharge rate: " + BobMathUtil.getShortNumber(dischargeRate) + "HE/t"); + list.add(I18nUtil.resolveKey("desc.item.battery.chargeRate",BobMathUtil.getShortNumber(chargeRate))); + list.add(I18nUtil.resolveKey("desc.item.battery.dischargeRate",BobMathUtil.getShortNumber(dischargeRate))); } @Override diff --git a/src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java b/src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java index 1a04a4649..5fb6e7a76 100644 --- a/src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java +++ b/src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java @@ -4,6 +4,7 @@ import java.util.List; import com.hbm.items.ModItems; +import com.hbm.util.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -33,132 +34,131 @@ public class ItemMachineUpgrade extends Item { public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { if(this.type == UpgradeType.SPEED) { - list.add(EnumChatFormatting.RED + "Mining Drill:"); - list.add("Delay -" + (15 * this.tier) + "% / Consumption +" + (300 * this.tier) + "HE/t"); - list.add(EnumChatFormatting.RED + "Laser Miner:"); - list.add("Delay ÷" + (1 + this.tier) + " / Consumption +" + (625 * this.tier) + "HE/t"); - list.add(EnumChatFormatting.RED + "Electric Furnace:"); - list.add("Delay -" + (25 * this.tier) + "% / Consumption +" + (50 * this.tier) + "HE/t"); - list.add(EnumChatFormatting.RED + "Assembly Machine:"); - list.add("Delay -" + (25 * this.tier) + "% / Consumption +" + (300 * this.tier) + "HE/t"); - list.add(EnumChatFormatting.RED + "Chemical Plant:"); - list.add("Delay -" + (25 * this.tier) + "% / Consumption +" + (300 * this.tier) + "HE/t"); - list.add(EnumChatFormatting.RED + "Oil Wells:"); - list.add("Delay -" + (25 * this.tier) + "% / Consumption +" + (25 * this.tier) + "%"); - list.add(EnumChatFormatting.RED + "Crystallizer:"); - list.add("Delay -" + (20 * this.tier) + "% / Consumption +" + (1000 * this.tier) + "HE/t"); - list.add(EnumChatFormatting.RED + "Cyclotron:"); - list.add("Speed x" + (1 + this.tier)); - list.add(EnumChatFormatting.RED + "Flare Stack:"); - list.add("Speed x" + (1 + this.tier)); - list.add(EnumChatFormatting.RED + "Maxwell:"); - list.add("Damage +" + (0.25 * (double)this.tier) + "dmg/t"); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[0]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.speed",(15 * this.tier),(300 * this.tier),"","","","","","")[0]); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[1]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.speed","","",(1 + this.tier),(625 * this.tier),"","","","")[1]); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[2]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.speed",(25 * this.tier),(50 * this.tier),"","","","","","")[0]); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[3]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.speed",(25 * this.tier),(300 * this.tier),"","","","","","")[0]); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[4]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.speed",(25 * this.tier),(300 * this.tier),"","","","","","")[0]); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[5]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.speed","","","","",(25 * this.tier),(25 * this.tier),"","")[2]); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[6]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.speed",(20 * this.tier),(1000 * this.tier),"","","","","","")[0]); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[7]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.speed","","","","","","",(1 + this.tier),"")[3]); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[8]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.speed","","","","","","",(1 + this.tier),"")[3]); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[9]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.speed","","","","","","","",(0.25 * (double)this.tier))[4]); } if(this.type == UpgradeType.EFFECT) { - list.add(EnumChatFormatting.RED + "Mining Drill:"); - list.add("Radius +" + this.tier + "m / Consumption +" + (80 * this.tier) + "HE/t"); - list.add(EnumChatFormatting.RED + "Crystallizer:"); - list.add("+" + (5 * this.tier) + "% chance of not consuming an item / Acid consumption +" + (1000 * this.tier) + "mB"); - list.add(EnumChatFormatting.RED + "Cyclotron:"); - list.add("-" + (100 - 100 / (this.tier + 1)) + "% chance of incrementing overheat counter"); - list.add(EnumChatFormatting.RED + "Flare Stack:"); - list.add("+" + (100 * this.tier / 3) + "% power production"); - list.add(EnumChatFormatting.RED + "Maxwell:"); - list.add("Range +" + (3 * this.tier) + "m"); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[0]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.effect",this.tier,(80 * this.tier),"","","","","")[0]); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[6]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.effect","","",(5 * this.tier),(1000 * this.tier),"","","")[1]); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[7]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.effect","","","","",(100 - 100 / (this.tier + 1)),"","")[2]); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[8]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.effect","","","","","",(100 * this.tier / 3),"")[3]); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[9]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.effect","","","","","","",(3 * this.tier))[4]); } if(this.type == UpgradeType.POWER) { - list.add(EnumChatFormatting.RED + "Mining Drill:"); - list.add("Consumption -" + (30 * this.tier) + "HE/t / Delay +" + (5 * this.tier) + "%"); - list.add(EnumChatFormatting.RED + "Electric Furnace:"); - list.add("Consumption -" + (15 * this.tier) + "HE/t / Delay +" + (10 * this.tier) + "%"); - list.add(EnumChatFormatting.RED + "Assembly Machine:"); - list.add("Consumption -" + (30 * this.tier) + "HE/t / Delay +" + (5 * this.tier) + "%"); - list.add(EnumChatFormatting.RED + "Chemical Plant:"); - list.add("Consumption -" + (30 * this.tier) + "HE/t / Delay +" + (5 * this.tier) + "%"); - list.add(EnumChatFormatting.RED + "Oil Wells:"); - list.add("Consumption -" + (25 * this.tier) + "% / Delay +" + (10 * this.tier) + "%"); - list.add(EnumChatFormatting.RED + "Cyclotron:"); - list.add("Consumption -" + (100 * this.tier) + "kHE/t"); - list.add(EnumChatFormatting.RED + "Maxwell:"); - list.add("Consumption -" + (150 * this.tier) + "HE/t"); - list.add("Consumption when firing -" + (1500 * this.tier) + "HE/t"); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[0]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.power",(30 * this.tier),(5 * this.tier),"","","","","")[0]); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[2]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.power",(15 * this.tier),(10 * this.tier),"","","","","")[0]); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[3]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.power",(30 * this.tier),(5 * this.tier),"","","","","")[0]); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[4]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.power",(30 * this.tier),(5 * this.tier),"","","","","")[0]); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[5]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.power","","",(25 * this.tier),(10 * this.tier),"","","")[1]); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[7]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.power","","","","",(100 * this.tier),"","")[2]); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[9]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.power","","","","","",(150 * this.tier),"")[3]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.power","","","","","","",(1500 * this.tier))[4]); } if(this == ModItems.upgrade_fortune_1) { - list.add(EnumChatFormatting.RED + "Mining Drill:"); - list.add("Fortune +1 / Delay +15"); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[0]); + list.add(I18nUtil.resolveKey("desc.item.upgrade.fortune","1","15")); } if(this == ModItems.upgrade_fortune_2) { - list.add(EnumChatFormatting.RED + "Mining Drill:"); - list.add("Fortune +2 / Delay +30"); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[0]); + list.add(I18nUtil.resolveKey("desc.item.upgrade.fortune","2","30")); } if(this == ModItems.upgrade_fortune_3) { - list.add(EnumChatFormatting.RED + "Mining Drill:"); - list.add("Fortune +3 / Delay +45"); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[0]); + list.add(I18nUtil.resolveKey("desc.item.upgrade.fortune","3","45")); } if(this.type == UpgradeType.AFTERBURN) { - list.add(EnumChatFormatting.RED + "Turbofan:"); - list.add("Production x" + (this.tier + 1) + " / Consumption x" + (this.tier + 2)); - list.add(EnumChatFormatting.RED + "Maxwell:"); - list.add("Afterburn +" + (this.tier * 3) + "s"); - list.add(EnumChatFormatting.RED + "Oil Wells:"); - list.add("Burn " + (this.tier * 10) + "mB of gas for " + (this.tier * 50) + "HE/t"); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[10]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.afterburn",(this.tier + 1),(this.tier + 2),"","","")[0]); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[9]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.afterburn","","",(this.tier * 3),"","")[1]); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[5]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.afterburn","","","",(this.tier * 10),(this.tier * 50))[2]); } if(this == ModItems.upgrade_radius) { - list.add(EnumChatFormatting.RED + "Forcefield Range Upgrade"); - list.add("Radius +16 / Consumption +500"); - list.add("Stacks to 16"); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[11]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.forcefield","16","500")[0]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.forcefield")[2]); } if(this == ModItems.upgrade_health) { - list.add(EnumChatFormatting.RED + "Forcefield Health Upgrade"); - list.add("Max. Health +50 / Consumption +250"); - list.add("Stacks to 16"); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[12]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.forcefield","50","250")[1]); + list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.forcefield")[2]); } if(this == ModItems.upgrade_smelter) { - list.add(EnumChatFormatting.RED + "Mining Laser Upgrade"); - list.add("Smelts blocks. Easy enough."); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[13]); + list.add(I18nUtil.resolveKey("desc.item.upgrade.smelter")); } if(this == ModItems.upgrade_shredder) { - list.add(EnumChatFormatting.RED + "Mining Laser Upgrade"); - list.add("Crunches ores"); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[13]); + list.add(I18nUtil.resolveKey("desc.item.upgrade.shredder")); } if(this == ModItems.upgrade_centrifuge) { - list.add(EnumChatFormatting.RED + "Mining Laser Upgrade"); - list.add("Hopefully self-explanatory"); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[13]); + list.add(I18nUtil.resolveKey("desc.item.upgrade.centrifuge")); } if(this == ModItems.upgrade_crystallizer) { - list.add(EnumChatFormatting.RED + "Mining Laser Upgrade"); - list.add("Your new best friend"); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[13]); + list.add(I18nUtil.resolveKey("desc.item.upgrade.crystallizer")); } if(this == ModItems.upgrade_screm) { - list.add(EnumChatFormatting.RED + "Mining Laser Upgrade"); - list.add("It's like in Super Mario where all blocks are"); - list.add("actually Toads, but here it's Half-Life scientists"); - list.add("and they scream. A lot."); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[13]); + for(String s : I18nUtil.resolveKeyArray("desc.item.upgrade.screm")) + list.add(s); } if(this == ModItems.upgrade_nullifier) { - list.add(EnumChatFormatting.RED + "Mining Laser Upgrade"); - list.add("50% chance to override worthless items with /dev/zero"); - list.add("50% chance to move worthless items to /dev/null"); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[13]); + for(String s : I18nUtil.resolveKeyArray("desc.item.upgrade.nullifier")) + list.add(s); } if(this == ModItems.upgrade_gc_speed) { - list.add(EnumChatFormatting.RED + "Gas Centrifuge Upgrade"); - list.add("Allows for total isotopic separation of HEUF6"); - list.add(EnumChatFormatting.YELLOW + "also your centrifuge goes sicko mode"); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[14]); + for(String s : I18nUtil.resolveKeyArray("desc.item.upgrade.gc_speed")) + list.add(s); } } diff --git a/src/main/java/com/hbm/items/machine/ItemPWRFuel.java b/src/main/java/com/hbm/items/machine/ItemPWRFuel.java index db802776a..70bd64d81 100644 --- a/src/main/java/com/hbm/items/machine/ItemPWRFuel.java +++ b/src/main/java/com/hbm/items/machine/ItemPWRFuel.java @@ -4,6 +4,7 @@ import java.util.List; import com.hbm.items.ItemEnumMulti; import com.hbm.util.EnumUtil; +import com.hbm.util.I18nUtil; import com.hbm.util.function.Function; import com.hbm.util.function.Function.FunctionLogarithmic; import com.hbm.util.function.Function.FunctionSqrt; @@ -55,10 +56,7 @@ public class ItemPWRFuel extends ItemEnumMulti { EnumPWRFuel num = EnumUtil.grabEnumSafely(EnumPWRFuel.class, stack.getItemDamage()); String color = EnumChatFormatting.GOLD + ""; - String reset = EnumChatFormatting.RESET + ""; - - list.add(color + "Heat per flux: " + reset + num.heatEmission + " TU"); - list.add(color + "Reacton function: " + reset + num.function.getLabelForFuel()); - list.add(color + "Fuel type: " + reset + num.function.getDangerFromFuel()); + for(String s : I18nUtil.resolveKeyArray("trait.pwr_fuel" , num.heatEmission, num.function.getLabelForFuel(), num.function.getDangerFromFuel())) + list.add(color + s); } } diff --git a/src/main/java/com/hbm/items/machine/ItemPlateFuel.java b/src/main/java/com/hbm/items/machine/ItemPlateFuel.java index f30978de9..6f76853b2 100644 --- a/src/main/java/com/hbm/items/machine/ItemPlateFuel.java +++ b/src/main/java/com/hbm/items/machine/ItemPlateFuel.java @@ -4,6 +4,7 @@ import java.util.List; import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; @@ -27,10 +28,8 @@ public class ItemPlateFuel extends ItemFuelRod { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - - list.add(EnumChatFormatting.YELLOW + "[Research Reactor Plate Fuel]"); - list.add(EnumChatFormatting.DARK_AQUA + " " + getFunctionDesc()); - list.add(EnumChatFormatting.DARK_AQUA + " Yield of " + BobMathUtil.getShortNumber(lifeTime) + " events"); + for(String s : I18nUtil.resolveKeyArray("trait.platefuel", getFunctionDesc(), BobMathUtil.getShortNumber(lifeTime))) + list.add(EnumChatFormatting.YELLOW + s); super.addInformation(itemstack, player, list, bool); } diff --git a/src/main/java/com/hbm/items/machine/ItemRBMKPellet.java b/src/main/java/com/hbm/items/machine/ItemRBMKPellet.java index e50dbcd66..09f5a359a 100644 --- a/src/main/java/com/hbm/items/machine/ItemRBMKPellet.java +++ b/src/main/java/com/hbm/items/machine/ItemRBMKPellet.java @@ -5,6 +5,7 @@ import java.util.List; import com.hbm.items.special.ItemNuclearWaste; import com.hbm.main.MainRegistry; +import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.renderer.texture.IIconRegister; @@ -77,20 +78,20 @@ public class ItemRBMKPellet extends ItemNuclearWaste { super.addInformation(stack, player, list, bool); list.add(EnumChatFormatting.ITALIC + this.fullName); - list.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC + "Pellet for recycling"); + list.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC + I18nUtil.resolveKeyArray("trait.rbmk_pellet")[0]); int meta = rectify(stack.getItemDamage()); switch(meta % 5) { - case 0: list.add(EnumChatFormatting.GOLD + "Brand New"); break; - case 1: list.add(EnumChatFormatting.YELLOW + "Barely Depleted"); break; - case 2: list.add(EnumChatFormatting.GREEN + "Moderately Depleted"); break; - case 3: list.add(EnumChatFormatting.DARK_GREEN + "Highly Depleted"); break; - case 4: list.add(EnumChatFormatting.DARK_GRAY + "Fully Depleted"); break; + case 0: list.add(EnumChatFormatting.GOLD + I18nUtil.resolveKeyArray("trait.rbmk_pellet")[1]); break; + case 1: list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("trait.rbmk_pellet")[2]); break; + case 2: list.add(EnumChatFormatting.GREEN + I18nUtil.resolveKeyArray("trait.rbmk_pellet")[3]); break; + case 3: list.add(EnumChatFormatting.DARK_GREEN + I18nUtil.resolveKeyArray("trait.rbmk_pellet")[4]); break; + case 4: list.add(EnumChatFormatting.DARK_GRAY + I18nUtil.resolveKeyArray("trait.rbmk_pellet")[5]); break; } if(hasXenon(meta)) - list.add(EnumChatFormatting.DARK_PURPLE + "High Xenon Poison"); + list.add(EnumChatFormatting.DARK_PURPLE + I18nUtil.resolveKeyArray("trait.rbmk_pellet")[6]); } @Override diff --git a/src/main/java/com/hbm/items/machine/ItemRBMKRod.java b/src/main/java/com/hbm/items/machine/ItemRBMKRod.java index 960a84874..9808cf170 100644 --- a/src/main/java/com/hbm/items/machine/ItemRBMKRod.java +++ b/src/main/java/com/hbm/items/machine/ItemRBMKRod.java @@ -223,15 +223,15 @@ public class ItemRBMKRod extends Item { } public static enum EnumBurnFunc { - PASSIVE(EnumChatFormatting.DARK_GREEN + "SAFE / PASSIVE"), //const, no reactivity - LOG_TEN(EnumChatFormatting.YELLOW + "MEDIUM / LOGARITHMIC"), //log10(x + 1) * reactivity * 50 - PLATEU(EnumChatFormatting.GREEN + "SAFE / EULER"), //(1 - e^(-x/25)) * reactivity * 100 - ARCH(EnumChatFormatting.RED + "DANGEROUS / NEGATIVE-QUADRATIC"), //x-(x²/1000) * reactivity - SIGMOID(EnumChatFormatting.GREEN + "SAFE / SIGMOID"), //100 / (1 + e^(-(x - 50) / 10)) <- tiny amount of reactivity at x=0 ! - SQUARE_ROOT(EnumChatFormatting.YELLOW + "MEDIUM / SQUARE ROOT"), //sqrt(x) * 10 * reactivity - LINEAR(EnumChatFormatting.RED + "DANGEROUS / LINEAR"), //x * reactivity - QUADRATIC(EnumChatFormatting.RED + "DANGEROUS / QUADRATIC"), //x^2 / 100 * reactivity - EXPERIMENTAL(EnumChatFormatting.RED + "EXPERIMENTAL / SINE SLOPE"); //x * (sin(x) + 1) + PASSIVE(EnumChatFormatting.DARK_GREEN + I18nUtil.resolveKeyArray("trait.rbmk.BurnFunc")[0]), //const, no reactivity + LOG_TEN(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("trait.rbmk.BurnFunc")[1]), //log10(x + 1) * reactivity * 50 + PLATEU(EnumChatFormatting.GREEN + I18nUtil.resolveKeyArray("trait.rbmk.BurnFunc")[2]), //(1 - e^(-x/25)) * reactivity * 100 + ARCH(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("trait.rbmk.BurnFunc")[3]), //x-(x²/1000) * reactivity + SIGMOID(EnumChatFormatting.GREEN + I18nUtil.resolveKeyArray("trait.rbmk.BurnFunc")[4]), //100 / (1 + e^(-(x - 50) / 10)) <- tiny amount of reactivity at x=0 ! + SQUARE_ROOT(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("trait.rbmk.BurnFunc")[5]), //sqrt(x) * 10 * reactivity + LINEAR(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("trait.rbmk.BurnFunc")[6]), //x * reactivity + QUADRATIC(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("trait.rbmk.BurnFunc")[7]), //x^2 / 100 * reactivity + EXPERIMENTAL(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("trait.rbmk.BurnFunc")[8]); //x * (sin(x) + 1) public String title = ""; diff --git a/src/main/java/com/hbm/items/machine/ItemWatzPellet.java b/src/main/java/com/hbm/items/machine/ItemWatzPellet.java index be5e0ad7f..73971bb41 100644 --- a/src/main/java/com/hbm/items/machine/ItemWatzPellet.java +++ b/src/main/java/com/hbm/items/machine/ItemWatzPellet.java @@ -9,6 +9,7 @@ import com.hbm.main.MainRegistry; import com.hbm.render.icon.RGBMutatorInterpolatedComponentRemap; import com.hbm.render.icon.TextureAtlasSpriteMutatable; import com.hbm.util.EnumUtil; +import com.hbm.util.I18nUtil; import com.hbm.util.function.Function; import com.hbm.util.function.Function.*; @@ -127,23 +128,23 @@ public class ItemWatzPellet extends ItemEnumMulti { if(this != ModItems.watz_pellet) return; EnumWatzType num = EnumUtil.grabEnumSafely(EnumWatzType.class, stack.getItemDamage()); - - list.add(EnumChatFormatting.GREEN + "Depletion: " + String.format(Locale.US, "%.1f", getDurabilityForDisplay(stack) * 100D) + "%"); + + list.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey("trait.watz_pellet", String.format(Locale.US, "%.1f", getDurabilityForDisplay(stack) * 100D))); String color = EnumChatFormatting.GOLD + ""; String reset = EnumChatFormatting.RESET + ""; if(num.passive > 0){ - list.add(color + "Base fission rate: " + reset + num.passive); - list.add(EnumChatFormatting.RED + "Self-igniting!"); + list.add(color + I18nUtil.resolveKeyArray("trait.watz_pellet.passive")[0] + reset + num.passive); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("trait.watz_pellet.passive")[1]); } - if(num.heatEmission > 0) list.add(color + "Heat per flux: " + reset + num.heatEmission + " TU"); + if(num.heatEmission > 0) list.add(color + I18nUtil.resolveKey("trait.watz_pellet.heatEmission") + reset + num.heatEmission + " TU"); if(num.burnFunc != null) { - list.add(color + "Reacton function: " + reset + num.burnFunc.getLabelForFuel()); - list.add(color + "Fuel type: " + reset + num.burnFunc.getDangerFromFuel()); + list.add(color + I18nUtil.resolveKeyArray("trait.watz_pellet.burnFunc")[0] + reset + num.burnFunc.getLabelForFuel()); + list.add(color + I18nUtil.resolveKeyArray("trait.watz_pellet.burnFunc")[1] + reset + num.burnFunc.getDangerFromFuel()); } - if(num.heatDiv != null) list.add(color + "Thermal multiplier: " + reset + num.heatDiv.getLabelForFuel() + " TU⁻¹"); - if(num.absorbFunc != null) list.add(color + "Flux capture: " + reset + num.absorbFunc.getLabelForFuel()); + if(num.heatDiv != null) list.add(color + I18nUtil.resolveKey("trait.watz_pellet.heatDiv") + reset + num.heatDiv.getLabelForFuel() + " TU⁻¹"); + if(num.absorbFunc != null) list.add(color + I18nUtil.resolveKey("trait.watz_pellet.absorbFunc") + reset + num.absorbFunc.getLabelForFuel()); } @Override diff --git a/src/main/java/com/hbm/items/special/ItemAMSCore.java b/src/main/java/com/hbm/items/special/ItemAMSCore.java index 6a4fb569f..68c12677f 100644 --- a/src/main/java/com/hbm/items/special/ItemAMSCore.java +++ b/src/main/java/com/hbm/items/special/ItemAMSCore.java @@ -5,6 +5,7 @@ import java.util.List; import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; +import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.player.EntityPlayer; @@ -28,51 +29,26 @@ public class ItemAMSCore extends Item { public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { if (this == ModItems.ams_core_sing) { - list.add("A modified undefined state of spacetime"); - list.add("used to aid in inter-gluon fusion and"); - list.add("spacetime annihilation. Yes, this destroys"); - list.add("the universe itself, slowly but steadily,"); - list.add("but at least you can power your toaster with"); - list.add("this, so it's all good."); + for(String s : I18nUtil.resolveKeyArray("item.ams_core_sing.desc")) + list.add(s); } if (this == ModItems.ams_core_wormhole) { - list.add("A cloud of billions of nano-wormholes which"); - list.add("deliberately fail at tunneling matter from"); - list.add("another dimension, rather it converts all"); - list.add("that matter into pure energy. That means"); - list.add("you're actively contributing to the destruction"); - list.add("of another dimension, sucking it dry like a"); - list.add("juicebox."); - list.add("That dimension probably sucked, anyways. I"); - list.add("bet it was full of wasps or some crap, man,"); - list.add("I hate these things."); + for(String s : I18nUtil.resolveKeyArray("item.ams_core_wormhole.desc")) + list.add(s); } if (this == ModItems.ams_core_eyeofharmony) { - list.add("A star collapsing in on itself, mere nanoseconds"); - list.add("away from being turned into a black hole,"); - list.add("frozen in time. If I didn't know better I"); - list.add("would say this is some deep space magic"); - list.add("bullcrap some guy made up to sound intellectual."); - list.add("Probably Steve from accounting. You still owe me"); - list.add("ten bucks."); + for(String s : I18nUtil.resolveKeyArray("item.ams_core_eyeofharmony.desc")) + list.add(s); } if (this == ModItems.ams_core_thingy) { if(MainRegistry.polaroidID == 11) { - list.add("Yeah I'm not even gonna question that one."); + list.add(I18nUtil.resolveKey("item.ams_core_thingy_hide.desc")); } else { - list.add("..."); - list.add("..."); - list.add("...am I even holding this right?"); - list.add("It's a small metal thing. I dunno where it's from"); - list.add("or what it does, maybe they found it on a"); - list.add("junkyard and sold it as some kind of antique"); - list.add("artifact. If it weren't for the fact that I can"); - list.add("actually stuff this into some great big laser"); - list.add("reactor thing, I'd probably bring it back to where"); - list.add("it belongs. In the trash."); + for(String s : I18nUtil.resolveKeyArray("item.ams_core_thingy.desc")) + list.add(s); } } } diff --git a/src/main/java/com/hbm/items/special/ItemGlitch.java b/src/main/java/com/hbm/items/special/ItemGlitch.java index 9942c4754..f44dab7ec 100644 --- a/src/main/java/com/hbm/items/special/ItemGlitch.java +++ b/src/main/java/com/hbm/items/special/ItemGlitch.java @@ -13,6 +13,7 @@ import com.hbm.lib.ModDamageSource; import com.hbm.main.MainRegistry; import api.hbm.energy.IBatteryItem; +import com.hbm.util.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.item.Item; @@ -39,10 +40,10 @@ public class ItemGlitch extends Item implements IBatteryItem { if(!world.isRemote) switch(itemRand.nextInt(31)) { case 0: - player.addChatMessage(new ChatComponentText("Sorry nothing.")); + player.addChatMessage(new ChatComponentText(I18nUtil.resolveKeyArray("item.glitch.message")[0])); break; case 1: - player.addChatMessage(new ChatComponentText("Prometheus was punished by the gods by giving the gift of knowledge to man. He was cast into the bowels of the earth and pecked by birds.")); + player.addChatMessage(new ChatComponentText(I18nUtil.resolveKeyArray("item.glitch.message")[1])); break; case 2: player.attackEntityFrom(ModDamageSource.radiation, 1000); @@ -66,7 +67,7 @@ public class ItemGlitch extends Item implements IBatteryItem { break; case 8: player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_container, 10)); - player.addChatMessage(new ChatComponentText("Oh, and by the way: The polaroid shifts reality. Things can be different if the polaroid is broken.")); + player.addChatMessage(new ChatComponentText(I18nUtil.resolveKeyArray("item.glitch.message")[2])); break; case 9: player.inventory.addItemStackToInventory(new ItemStack(ModItems.nuke_advanced_kit, 1)); @@ -94,7 +95,7 @@ public class ItemGlitch extends Item implements IBatteryItem { player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_revolver_pip)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.bottle_sparkle)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.geiger_counter)); - player.addChatMessage(new ChatComponentText("Have some free stuff. You'll need it for that one cryptic achievement.")); + player.addChatMessage(new ChatComponentText(I18nUtil.resolveKeyArray("item.glitch.message")[3])); break; case 14: player.inventory.dropAllItems(); @@ -105,43 +106,43 @@ public class ItemGlitch extends Item implements IBatteryItem { player.inventory.addItemStackToInventory(new ItemStack(Blocks.dirt, 64)); break; case 16: - player.addChatMessage(new ChatComponentText("v yvxr lbhe nggvghqr!")); + player.addChatMessage(new ChatComponentText(I18nUtil.resolveKeyArray("item.glitch.message")[4])); break; case 17: - player.addChatMessage(new ChatComponentText("89% of magic tricks are not magic. Technically, they are sorcery.")); + player.addChatMessage(new ChatComponentText(I18nUtil.resolveKeyArray("item.glitch.message")[5])); break; case 18: player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_lever_action)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_20gauge, 12)); - player.addChatMessage(new ChatComponentText("Here ya go.")); + player.addChatMessage(new ChatComponentText(I18nUtil.resolveKeyArray("item.glitch.message")[6])); break; case 19: - player.addChatMessage(new ChatComponentText("Ë")); + player.addChatMessage(new ChatComponentText(I18nUtil.resolveKeyArray("item.glitch.message")[7])); break; case 20: - player.addChatMessage(new ChatComponentText("Good day, I am text")); + player.addChatMessage(new ChatComponentText(I18nUtil.resolveKeyArray("item.glitch.message")[8])); break; case 21: player.inventory.addItemStackToInventory(new ItemStack(ModItems.missile_nuclear)); - player.addChatMessage(new ChatComponentText("73616d706c652074657874!")); + player.addChatMessage(new ChatComponentText(I18nUtil.resolveKeyArray("item.glitch.message")[9])); break; case 22: - player.addChatMessage(new ChatComponentText("Budget cuts, no effect for you.")); + player.addChatMessage(new ChatComponentText(I18nUtil.resolveKeyArray("item.glitch.message")[10])); break; case 23: - player.addChatMessage(new ChatComponentText("oof")); + player.addChatMessage(new ChatComponentText(I18nUtil.resolveKeyArray("item.glitch.message")[11])); break; case 24: player.addPotionEffect(new PotionEffect(Potion.resistance.id, 60 * 20, 9)); - player.addChatMessage(new ChatComponentText("Tank!")); + player.addChatMessage(new ChatComponentText(I18nUtil.resolveKeyArray("item.glitch.message")[12])); break; case 25: player.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 60 * 20, 9)); - player.addChatMessage(new ChatComponentText("More devastating than a falling boxcar!")); + player.addChatMessage(new ChatComponentText(I18nUtil.resolveKeyArray("item.glitch.message")[13])); break; case 26: player.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 60 * 20, 9)); - player.addChatMessage(new ChatComponentText("Ha!")); + player.addChatMessage(new ChatComponentText(I18nUtil.resolveKeyArray("item.glitch.message")[14])); break; case 27: EntityVortex vortex = new EntityVortex(world, 2.5F); @@ -156,15 +157,15 @@ public class ItemGlitch extends Item implements IBatteryItem { mirv.posY = player.posY + 100; mirv.posZ = player.posZ; world.spawnEntityInWorld(mirv); - player.addChatMessage(new ChatComponentText("Watch your head!")); + player.addChatMessage(new ChatComponentText(I18nUtil.resolveKeyArray("item.glitch.message")[15])); break; case 29: ExplosionLarge.spawnBurst(world, player.posX, player.posY, player.posZ, 27, 3); - player.addChatMessage(new ChatComponentText("Bam!")); + player.addChatMessage(new ChatComponentText(I18nUtil.resolveKeyArray("item.glitch.message")[16])); break; case 30: player.inventory.addItemStackToInventory(new ItemStack(ModItems.plate_saturnite)); - player.addChatMessage(new ChatComponentText("It's dangerous to go alone, take this!")); + player.addChatMessage(new ChatComponentText(I18nUtil.resolveKeyArray("item.glitch.message")[17])); break; } @@ -176,62 +177,62 @@ public class ItemGlitch extends Item implements IBatteryItem { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add("It's a gamble!"); + list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[0]); list.add(""); switch(MainRegistry.polaroidID) { case 1: - list.add("Click-click-click!"); + list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[1]); break; case 2: - list.add("Creek!"); + list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[2]); break; case 3: - list.add("Bzzzt!"); + list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[3]); break; case 4: - list.add("TS staring off into space."); + list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[4]); break; case 5: - list.add("BANG!!"); + list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[5]); break; case 6: - list.add("Woop!"); + list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[6]); break; case 7: - list.add("Poow!"); + list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[7]); break; case 8: - list.add("Pft!"); + list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[8]); break; case 9: - list.add("GF fgnevat bss vagb fcnpr."); + list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[9]); break; case 10: - list.add("Backup memory #8 on 1.44 million bytes."); + list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[10]); break; case 11: - list.add("PTANG!"); + list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[11]); break; case 12: - list.add("Bzzt-zrrt!"); + list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[12]); break; case 13: - list.add("Clang, click-brrthththrtrtrtrtrtr!"); + list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[13]); break; case 14: - list.add("KABLAM!"); + list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[14]); break; case 15: - list.add("PLENG!"); + list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[15]); break; case 16: - list.add("Wheeeeeeee-"); + list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[16]); break; case 17: - list.add("Thump."); + list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[17]); break; case 18: - list.add("BANG! Choo-chooo! B A N G ! ! !"); + list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[18]); break; } } diff --git a/src/main/java/com/hbm/items/special/ItemRag.java b/src/main/java/com/hbm/items/special/ItemRag.java index bb883f6eb..f94b5ba49 100644 --- a/src/main/java/com/hbm/items/special/ItemRag.java +++ b/src/main/java/com/hbm/items/special/ItemRag.java @@ -4,6 +4,7 @@ import java.util.List; import com.hbm.items.ModItems; +import com.hbm.util.I18nUtil; import net.minecraft.block.material.Material; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; @@ -39,7 +40,7 @@ public class ItemRag extends Item { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add("Drop into water to make damp cloth."); - list.add("Right-click to urinate on the cloth."); + for(String s : I18nUtil.resolveKeyArray("item.rag.desc")) + list.add(s); } } diff --git a/src/main/java/com/hbm/items/special/ItemSoyuz.java b/src/main/java/com/hbm/items/special/ItemSoyuz.java index 7644a0880..adfe591cd 100644 --- a/src/main/java/com/hbm/items/special/ItemSoyuz.java +++ b/src/main/java/com/hbm/items/special/ItemSoyuz.java @@ -4,6 +4,7 @@ import java.util.List; import com.hbm.lib.RefStrings; +import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.renderer.texture.IIconRegister; @@ -50,12 +51,12 @@ public class ItemSoyuz extends Item { @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { - list.add("Skin:"); + list.add(I18nUtil.resolveKeyArray("item.missile_soyuz.desc")[0]); switch(stack.getItemDamage()) { - case 0: list.add(EnumChatFormatting.GOLD + "Original"); break; - case 1: list.add(EnumChatFormatting.BLUE + "Luna Space Center"); break; - case 2: list.add(EnumChatFormatting.GREEN + "Post War"); break; + case 0: list.add(EnumChatFormatting.GOLD + I18nUtil.resolveKeyArray("item.missile_soyuz.desc")[1]); break; + case 1: list.add(EnumChatFormatting.BLUE + I18nUtil.resolveKeyArray("item.missile_soyuz.desc")[2]); break; + case 2: list.add(EnumChatFormatting.GREEN + I18nUtil.resolveKeyArray("item.missile_soyuz.desc")[3]); break; } } diff --git a/src/main/java/com/hbm/items/tool/ItemAnchorRemote.java b/src/main/java/com/hbm/items/tool/ItemAnchorRemote.java index 9fb384f23..927ae5165 100644 --- a/src/main/java/com/hbm/items/tool/ItemAnchorRemote.java +++ b/src/main/java/com/hbm/items/tool/ItemAnchorRemote.java @@ -7,6 +7,7 @@ import com.hbm.items.ModItems; import com.hbm.items.machine.ItemBattery; import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -27,14 +28,14 @@ public class ItemAnchorRemote extends ItemBattery { charge = getCharge(itemstack); if(itemstack.getItem() != ModItems.fusion_core && itemstack.getItem() != ModItems.energy_core) { - list.add("Energy stored: " + BobMathUtil.getShortNumber(charge) + "/" + BobMathUtil.getShortNumber(maxCharge) + "HE"); + list.add(I18nUtil.resolveKey("desc.item.battery.charge",BobMathUtil.getShortNumber(charge),BobMathUtil.getShortNumber(maxCharge))); } else { String charge1 = BobMathUtil.getShortNumber((charge * 100) / this.maxCharge); - list.add("Charge: " + charge1 + "%"); + list.add(I18nUtil.resolveKey("desc.item.battery.chargePerc", charge1)); list.add("(" + BobMathUtil.getShortNumber(charge) + "/" + BobMathUtil.getShortNumber(maxCharge) + "HE)"); } - list.add("Charge rate: " + BobMathUtil.getShortNumber(chargeRate) + "HE/t"); + list.add(I18nUtil.resolveKey("desc.item.battery.chargeRate",BobMathUtil.getShortNumber(chargeRate))); } @Override diff --git a/src/main/java/com/hbm/items/tool/ItemCMStructure.java b/src/main/java/com/hbm/items/tool/ItemCMStructure.java index 6c46decee..415076832 100644 --- a/src/main/java/com/hbm/items/tool/ItemCMStructure.java +++ b/src/main/java/com/hbm/items/tool/ItemCMStructure.java @@ -7,6 +7,7 @@ import com.google.gson.stream.JsonWriter; import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.ModBlocks; import com.hbm.main.MainRegistry; +import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.BlockPos; import net.minecraft.block.Block; import net.minecraft.client.Minecraft; @@ -156,10 +157,8 @@ public class ItemCMStructure extends Item implements ILookOverlay { @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { super.addInformation(stack, player, list, ext); - list.add(EnumChatFormatting.YELLOW + "Click Custom Machine Structure Positioning Anchor to"); - list.add(EnumChatFormatting.YELLOW + "Confirm the location of the custom machine core block."); - list.add(EnumChatFormatting.YELLOW + "Output all blocks between Position1 and Position2 with"); - list.add(EnumChatFormatting.YELLOW + "metadata to \"CMstructureOutput.txt\" in hbmConfig."); + for(String s : I18nUtil.resolveKeyArray("item.structure_custommachine.desc")) + list.add(EnumChatFormatting.YELLOW + s); } @Override diff --git a/src/main/java/com/hbm/items/tool/ItemDetonator.java b/src/main/java/com/hbm/items/tool/ItemDetonator.java index 201f60c5a..c34742f75 100644 --- a/src/main/java/com/hbm/items/tool/ItemDetonator.java +++ b/src/main/java/com/hbm/items/tool/ItemDetonator.java @@ -2,6 +2,7 @@ package com.hbm.items.tool; import java.util.List; +import com.hbm.util.I18nUtil; import org.apache.logging.log4j.Level; import com.hbm.config.GeneralConfig; @@ -21,12 +22,12 @@ public class ItemDetonator extends Item { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add("Shift right-click to set position,"); - list.add("right-click to detonate!"); + for(String s : I18nUtil.resolveKeyArray("item.detonator.desc")) + list.add(s); if(itemstack.getTagCompound() == null) { - list.add(EnumChatFormatting.RED + "No position set!"); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("item.detonator.pos.desc")[0]); } else { - list.add(EnumChatFormatting.YELLOW + "Linked to " + itemstack.stackTagCompound.getInteger("x") + ", " + itemstack.stackTagCompound.getInteger("y") + ", " + itemstack.stackTagCompound.getInteger("z")); + list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("item.detonator.pos.desc" , itemstack.stackTagCompound.getInteger("x") , itemstack.stackTagCompound.getInteger("y") , itemstack.stackTagCompound.getInteger("z"))[1]); } } @@ -45,7 +46,7 @@ public class ItemDetonator extends Item { player.addChatMessage(ChatBuilder.start("[").color(EnumChatFormatting.DARK_AQUA) .nextTranslation(this.getUnlocalizedName() + ".name").color(EnumChatFormatting.DARK_AQUA) .next("] ").color(EnumChatFormatting.DARK_AQUA) - .next("Position set!").color(EnumChatFormatting.GREEN).flush()); + .next(I18nUtil.resolveKeyArray("desc.item.detonator")[0]).color(EnumChatFormatting.GREEN).flush()); } world.playSoundAtEntity(player, "hbm:item.techBoop", 2.0F, 1.0F); @@ -64,7 +65,7 @@ public class ItemDetonator extends Item { player.addChatMessage(ChatBuilder.start("[").color(EnumChatFormatting.DARK_AQUA) .nextTranslation(this.getUnlocalizedName() + ".name").color(EnumChatFormatting.DARK_AQUA) .next("] ").color(EnumChatFormatting.DARK_AQUA) - .next("No position set!").color(EnumChatFormatting.RED).flush()); + .next(I18nUtil.resolveKeyArray("desc.item.detonator")[1]).color(EnumChatFormatting.RED).flush()); } } else { int x = stack.stackTagCompound.getInteger("x"); diff --git a/src/main/java/com/hbm/items/tool/ItemMS.java b/src/main/java/com/hbm/items/tool/ItemMS.java index 77495a356..bcb3b7c7f 100644 --- a/src/main/java/com/hbm/items/tool/ItemMS.java +++ b/src/main/java/com/hbm/items/tool/ItemMS.java @@ -7,6 +7,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.items.ModItems; +import com.hbm.util.I18nUtil; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; @@ -18,7 +19,7 @@ public class ItemMS extends Item { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add("Lost but not forgotten"); + list.add(I18nUtil.resolveKey("item.mysteryshovel.desc")); } public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int i, float a, float b, float c) diff --git a/src/main/java/com/hbm/items/tool/ItemSwordMeteorite.java b/src/main/java/com/hbm/items/tool/ItemSwordMeteorite.java index eefbae55d..bf8b970b3 100644 --- a/src/main/java/com/hbm/items/tool/ItemSwordMeteorite.java +++ b/src/main/java/com/hbm/items/tool/ItemSwordMeteorite.java @@ -5,6 +5,7 @@ import java.util.List; import com.hbm.items.ModItems; +import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.player.EntityPlayer; @@ -26,63 +27,63 @@ public class ItemSwordMeteorite extends ItemSwordAbility { super.addInformation(stack, player, list, ext); if(this == ModItems.meteorite_sword) { - list.add(EnumChatFormatting.ITALIC + "Forged from a fallen star"); - list.add(EnumChatFormatting.ITALIC + "Sharper than most terrestrial blades"); + for(String s : I18nUtil.resolveKeyArray("item.meteorite_sword.desc")) + list.add(EnumChatFormatting.ITALIC + s); } if(this == ModItems.meteorite_sword_seared) { - list.add(EnumChatFormatting.ITALIC + "Fire strengthens the blade"); - list.add(EnumChatFormatting.ITALIC + "Making it even more powerful"); + for(String s : I18nUtil.resolveKeyArray("item.meteorite_sword_seared.desc")) + list.add(EnumChatFormatting.ITALIC + s); } if(this == ModItems.meteorite_sword_reforged) { - list.add(EnumChatFormatting.ITALIC + "The sword has been reforged"); - list.add(EnumChatFormatting.ITALIC + "To rectify past imperfections"); + for(String s : I18nUtil.resolveKeyArray("item.meteorite_sword_reforged.desc")) + list.add(EnumChatFormatting.ITALIC + s); } if(this == ModItems.meteorite_sword_hardened) { - list.add(EnumChatFormatting.ITALIC + "Extremely high pressure has been used"); - list.add(EnumChatFormatting.ITALIC + "To harden the blade further"); + for(String s : I18nUtil.resolveKeyArray("item.meteorite_sword_hardened.desc")) + list.add(EnumChatFormatting.ITALIC + s); } if(this == ModItems.meteorite_sword_alloyed) { - list.add(EnumChatFormatting.ITALIC + "Cobalt fills the fissures"); - list.add(EnumChatFormatting.ITALIC + "Strengthening the sword"); + for(String s : I18nUtil.resolveKeyArray("item.meteorite_sword_alloyed.desc")) + list.add(EnumChatFormatting.ITALIC + s); } if(this == ModItems.meteorite_sword_machined) { - list.add(EnumChatFormatting.ITALIC + "Advanced machinery was used"); - list.add(EnumChatFormatting.ITALIC + "To refine the blade even more"); + for(String s : I18nUtil.resolveKeyArray("item.meteorite_sword_machined.desc")) + list.add(EnumChatFormatting.ITALIC + s); } if(this == ModItems.meteorite_sword_treated) { - list.add(EnumChatFormatting.ITALIC + "Chemicals have been applied"); - list.add(EnumChatFormatting.ITALIC + "Making the sword more powerful"); + for(String s : I18nUtil.resolveKeyArray("item.meteorite_sword_treated.desc")) + list.add(EnumChatFormatting.ITALIC + s); } if(this == ModItems.meteorite_sword_etched) { - list.add(EnumChatFormatting.ITALIC + "Acids clean the material"); - list.add(EnumChatFormatting.ITALIC + "To make this the perfect sword"); + for(String s : I18nUtil.resolveKeyArray("item.meteorite_sword_etched.desc")) + list.add(EnumChatFormatting.ITALIC + s); } if(this == ModItems.meteorite_sword_bred) { - list.add(EnumChatFormatting.ITALIC + "Immense heat and radiation"); - list.add(EnumChatFormatting.ITALIC + "Compress the material"); + for(String s : I18nUtil.resolveKeyArray("item.meteorite_sword_bred.desc")) + list.add(EnumChatFormatting.ITALIC + s); } if(this == ModItems.meteorite_sword_irradiated) { - list.add(EnumChatFormatting.ITALIC + "The power of the Atom"); - list.add(EnumChatFormatting.ITALIC + "Gives the sword might"); + for(String s : I18nUtil.resolveKeyArray("item.meteorite_sword_irradiated.desc")) + list.add(EnumChatFormatting.ITALIC + s); } if(this == ModItems.meteorite_sword_fused) { - list.add(EnumChatFormatting.ITALIC + "This blade has met"); - list.add(EnumChatFormatting.ITALIC + "With the forces of the stars"); + for(String s : I18nUtil.resolveKeyArray("item.meteorite_sword_fused.desc")) + list.add(EnumChatFormatting.ITALIC + s); } if(this == ModItems.meteorite_sword_baleful) { - list.add(EnumChatFormatting.ITALIC + "This sword has met temperatures"); - list.add(EnumChatFormatting.ITALIC + "Far beyond what normal material can endure"); + for(String s : I18nUtil.resolveKeyArray("item.meteorite_sword_baleful.desc")) + list.add(EnumChatFormatting.ITALIC + s); } /* diff --git a/src/main/java/com/hbm/items/tool/ItemWand.java b/src/main/java/com/hbm/items/tool/ItemWand.java index 9bb6dc6ca..d3a532941 100644 --- a/src/main/java/com/hbm/items/tool/ItemWand.java +++ b/src/main/java/com/hbm/items/tool/ItemWand.java @@ -2,6 +2,7 @@ package com.hbm.items.tool; import java.util.List; +import com.hbm.util.I18nUtil; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; @@ -15,22 +16,20 @@ public class ItemWand extends Item { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add("Creative-only item"); - list.add("\"Destruction brings creation\""); - list.add("(Set positions with right click,"); - list.add("set block with shift-right click!)"); + for(String s : I18nUtil.resolveKeyArray( "item.wand_k.desc")) + list.add(s); if(itemstack.stackTagCompound != null && !(itemstack.stackTagCompound.getInteger("x") == 0 && itemstack.stackTagCompound.getInteger("y") == 0 && itemstack.stackTagCompound.getInteger("z") == 0)) { - list.add("Pos: " + itemstack.stackTagCompound.getInteger("x") + ", " + itemstack.stackTagCompound.getInteger("y") + ", " + itemstack.stackTagCompound.getInteger("z")); + list.add(I18nUtil.resolveKey("item.wand_k.pos" , itemstack.stackTagCompound.getInteger("x") , itemstack.stackTagCompound.getInteger("y") , itemstack.stackTagCompound.getInteger("z"))); } else { - list.add("Positions not set!"); + list.add(I18nUtil.resolveKey("item.wand_k.null")); } if(itemstack.stackTagCompound != null) - list.add("Block saved: " + Block.getBlockById(itemstack.stackTagCompound.getInteger("block")).getUnlocalizedName()); + list.add(I18nUtil.resolveKey("item.wand_k.block" , Block.getBlockById(itemstack.stackTagCompound.getInteger("block")).getUnlocalizedName())); } @Override diff --git a/src/main/java/com/hbm/items/tool/ItemWandS.java b/src/main/java/com/hbm/items/tool/ItemWandS.java index ea7ba07fa..f2985ac02 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandS.java +++ b/src/main/java/com/hbm/items/tool/ItemWandS.java @@ -3,6 +3,7 @@ package com.hbm.items.tool; import java.util.List; import java.util.Random; +import com.hbm.util.I18nUtil; import com.hbm.world.machine.FWatz; import com.hbm.world.machine.NuclearReactor; import com.hbm.world.machine.Watz; @@ -19,10 +20,8 @@ public class ItemWandS extends Item { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add("Creative-only item"); - list.add("\"Instant structures for everyone!\""); - list.add("(Cycle with shift-right click,"); - list.add("spawn structures with right click!)"); + for(String s : I18nUtil.resolveKeyArray( "item.wand_s.desc")) + list.add(s); if(itemstack.stackTagCompound != null) { switch(itemstack.stackTagCompound.getInteger("building")) diff --git a/src/main/java/com/hbm/items/tool/WeaponSpecial.java b/src/main/java/com/hbm/items/tool/WeaponSpecial.java index c59daa016..ca10cc59a 100644 --- a/src/main/java/com/hbm/items/tool/WeaponSpecial.java +++ b/src/main/java/com/hbm/items/tool/WeaponSpecial.java @@ -12,6 +12,7 @@ import com.hbm.main.MainRegistry; import com.hbm.potion.HbmPotion; import com.hbm.util.ArmorUtil; +import com.hbm.util.I18nUtil; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.SharedMonsterAttributes; @@ -249,58 +250,52 @@ public class WeaponSpecial extends ItemSword { public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { if(this == ModItems.schrabidium_hammer) { - list.add("Even though it says \"+1000000000"); - list.add("damage\", it's actually \"onehit anything\""); + for(String s : I18nUtil.resolveKeyArray("item.schrabidium_hammer.desc")) + list.add(s); } if(this == ModItems.ullapool_caber) { - list.add("High-yield Scottish face removal."); - list.add("A sober person would throw it..."); + for(String s : I18nUtil.resolveKeyArray("item.ullapool_caber.desc")) + list.add(s); } if(this == ModItems.bottle_opener) { - list.add("My very own bottle opener."); - list.add("Use with caution!"); + for(String s : I18nUtil.resolveKeyArray("item.bottle_opener.desc")) + list.add(s); } if(this == ModItems.shimmer_sledge) { if(MainRegistry.polaroidID == 11) { - list.add("shimmer no"); - list.add("drop that hammer"); - list.add("you're going to hurt somebody"); - list.add("shimmer no"); - list.add("shimmer pls"); + for(String s : I18nUtil.resolveKeyArray("item.shimmer_sledge.desc.hide")) + list.add(s); } else { - list.add("Breaks everything, even portals."); + list.add(I18nUtil.resolveKey("item.shimmer_sledge.desc")); } } if(this == ModItems.shimmer_axe) { if(MainRegistry.polaroidID == 11) { - list.add("shim's toolbox does an e-x-p-a-n-d"); + list.add(I18nUtil.resolveKey("item.shimmer_axe.desc.hide")); } else { - list.add("Timber!"); + list.add(I18nUtil.resolveKey("item.shimmer_axe.desc")); } } if(this == ModItems.wrench) { - list.add("Mechanic Richard"); + list.add(I18nUtil.resolveKey("item.wrench.desc")); } if(this == ModItems.wrench_flipped) { - list.add("Wrench 2: The Wrenchening"); + list.add(I18nUtil.resolveKey("item.wrench_flipped.desc")); } if(this == ModItems.memespoon) { - list.add(EnumChatFormatting.DARK_GRAY + "Level 10 Shovel"); - list.add(EnumChatFormatting.AQUA + "Deals crits while the wielder is rocket jumping"); - list.add(EnumChatFormatting.RED + "20% slower firing speed"); - list.add(EnumChatFormatting.RED + "No random critical hits"); + for(String s : I18nUtil.resolveKeyArray("item.memespoon.desc")) + list.add(s); } if(this == ModItems.wood_gavel) { - list.add("Thunk!"); + list.add(I18nUtil.resolveKey("item.wood_gavel.desc")); } if(this == ModItems.lead_gavel) { - list.add("You are hereby sentenced to lead poisoning."); + list.add(I18nUtil.resolveKey("item.lead_gavel.desc")); } if(this == ModItems.diamond_gavel) { - list.add("The joke! It makes sense now!!"); - list.add(""); - list.add(EnumChatFormatting.BLUE + "Deals as much damage as it needs to."); + for(String s : I18nUtil.resolveKeyArray("item.diamond_gavel.desc")) + list.add(s); } } diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 7e3226470..dc43341b9 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -717,9 +717,8 @@ public class ModEventHandlerClient { } } else { - list.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC +"Hold <" + - EnumChatFormatting.YELLOW + "" + EnumChatFormatting.ITALIC + "LSHIFT" + - EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC + "> to display protection info"); + list.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC + I18nUtil.resolveKey("tooltip.show" , + EnumChatFormatting.YELLOW +"" + EnumChatFormatting.ITALIC + "LSHIFT")); } } @@ -733,13 +732,12 @@ public class ModEventHandlerClient { if(!Keyboard.isKeyDown(Keyboard.KEY_LSHIFT) && !(Minecraft.getMinecraft().currentScreen instanceof GUIArmorTable)) { - list.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC +"Hold <" + - EnumChatFormatting.YELLOW + "" + EnumChatFormatting.ITALIC + "LSHIFT" + - EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC + "> to display installed armor mods"); + list.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC + I18nUtil.resolveKey("tooltip.armormodsshow" , + EnumChatFormatting.YELLOW +"" + EnumChatFormatting.ITALIC + "LSHIFT" )); } else { - list.add(EnumChatFormatting.YELLOW + "Mods:"); + list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("tooltip.armormods")); ItemStack[] mods = ArmorModHandler.pryMods(stack); @@ -760,12 +758,12 @@ public class ModEventHandlerClient { List names = ItemStackUtil.getOreDictNames(stack); if(names.size() > 0) { - list.add(EnumChatFormatting.BLUE + "Ore Dict:"); + list.add(EnumChatFormatting.BLUE + I18nUtil.resolveKey("tooltip.oredict")); for(String s : names) { list.add(EnumChatFormatting.AQUA + " -" + s); } } else { - list.add(EnumChatFormatting.RED + "No Ore Dict data!"); + list.add(EnumChatFormatting.RED + I18nUtil.resolveKey("tooltip.oredict.null")); } } @@ -786,10 +784,10 @@ public class ModEventHandlerClient { list.add(""); if(entry.entry == EnumEntryType.ADD) - list.add(EnumChatFormatting.GOLD + "Adds " + entry.value + " to the custom nuke stage " + entry.type); + list.add(EnumChatFormatting.GOLD + I18nUtil.resolveKey("tooltip.customnuke",entry.value,entry.type)); if(entry.entry == EnumEntryType.MULT) - list.add(EnumChatFormatting.GOLD + "Adds multiplier " + entry.value + " to the custom nuke stage " + entry.type); + list.add(EnumChatFormatting.GOLD + I18nUtil.resolveKey("tooltip.customnukemultiplier",entry.value ,entry.type)); } try { diff --git a/src/main/java/com/hbm/util/function/Function.java b/src/main/java/com/hbm/util/function/Function.java index 9dd32272c..0e82a7f07 100644 --- a/src/main/java/com/hbm/util/function/Function.java +++ b/src/main/java/com/hbm/util/function/Function.java @@ -4,6 +4,7 @@ import java.util.Locale; import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; import net.minecraft.util.EnumChatFormatting; /** @@ -50,21 +51,21 @@ public abstract class Function { public FunctionLogarithmic(double level) { super(level); this.withOff(1D); } @Override public double effonix(double x) { return Math.log10(getX(x)) * level; } @Override public String getLabelForFuel() { return "log10(" + getXName(false) + ") * " + String.format(Locale.US, "%,.1f", this.level); } - @Override public String getDangerFromFuel() { return EnumChatFormatting.YELLOW + "MEDIUM / LOGARITHMIC"; } + @Override public String getDangerFromFuel() { return EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("trait.rbmk.BurnFunc")[1]; } } public static class FunctionPassive extends FunctionSingleArg { public FunctionPassive(double level) { super(level); } @Override public double effonix(double x) { return this.level; } @Override public String getLabelForFuel() { return "" + String.format(Locale.US, "%,.1f", this.level); } - @Override public String getDangerFromFuel() { return EnumChatFormatting.DARK_GREEN + "SAFE / PASSIVE"; } + @Override public String getDangerFromFuel() { return EnumChatFormatting.DARK_GREEN + I18nUtil.resolveKeyArray("trait.rbmk.BurnFunc")[0]; } } public static class FunctionSqrt extends FunctionSingleArg { public FunctionSqrt(double level) { super(level); } @Override public double effonix(double x) { return BobMathUtil.squirt(getX(x)) * this.level; } @Override public String getLabelForFuel() { return "sqrt(" + getXName(false) + ") * " + String.format(Locale.US, "%,.3f", this.level); } //not entirely correct but good enough - @Override public String getDangerFromFuel() { return EnumChatFormatting.YELLOW + "MEDIUM / SQUARE ROOT"; } + @Override public String getDangerFromFuel() { return EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("trait.rbmk.BurnFunc")[5]; } } public static class FunctionSqrtFalling extends FunctionSqrt { @@ -78,7 +79,7 @@ public abstract class Function { public FunctionLinear(double level) { super(level); } @Override public double effonix(double x) { return getX(x) * this.level; } @Override public String getLabelForFuel() { return getXName(true) + " * " + String.format(Locale.US, "%,.1f", this.level); } - @Override public String getDangerFromFuel() { return EnumChatFormatting.RED + "DANGEROUS / LINEAR"; } + @Override public String getDangerFromFuel() { return EnumChatFormatting.RED + I18nUtil.resolveKeyArray("trait.rbmk.BurnFunc")[6]; } } public static class FunctionQuadratic extends FunctionDoubleArg { @@ -86,6 +87,6 @@ public abstract class Function { public FunctionQuadratic(double level, double vOff) { super(level, vOff); } @Override public double effonix(double x) { return getX(x) * getX(x) * this.level + this.vOff; } @Override public String getLabelForFuel() { return getXName(true) + "² * " + String.format(Locale.US, "%,.1f", this.level) + (vOff != 0 ? (" + " + String.format(Locale.US, "%,.1f", vOff)) : ""); } - @Override public String getDangerFromFuel() { return EnumChatFormatting.RED + "DANGEROUS / QUADRATIC"; } + @Override public String getDangerFromFuel() { return EnumChatFormatting.RED + I18nUtil.resolveKeyArray("trait.rbmk.BurnFunc")[7]; } } } diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 696ebe517..9da4ffbd0 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -131,6 +131,7 @@ achievement.ZIRNOXBoom=CIRNOX armor.blastProtection=Damage modifier of %s against explosions armor.cap=Hard damage cap of %s +armor.charge=Charge: %s / %s armor.damageModifier=Damage modifier of %s against %s armor.dash=Grants %s dashes armor.electricJetpack=Ion Jetpack @@ -164,6 +165,42 @@ armorMod.chestplates=Chestplates armorMod.helmets=Helmets armorMod.insertHere=Insert armor to modify... armorMod.leggings=Leggings +armorMod.slot=Slot: +armorMod.mod.auto=Imported from Japsterdam. +armorMod.mod.bandaid=3%% chance for full heal when damaged$ (3%% chance for full heal) +armorMod.mod.bathwater=Inflicts poison on the attacker$ (Poisons attackers) +armorMod.mod.charm=You feel blessed. +armorMod.mod.charm.protection=Diverts meteors away from the player.$Meteors no longer destroy blocks.$Halves broadcaster damage +armorMod.mod.charm.meteor=Disables meteorite spawning.$Negates broadcaster damage +armorMod.mod.cladding= rad-resistance$ radiation resistence) +armorMod.mod.defuser=Defuses nearby creepers$ (Defuses creepers) +armorMod.mod.gasmask=Gas protection$Will never protect against:$ (gas protection) +armorMod.mod.health= health$Nostalgia +armorMod.mod.Ink=10%% chance to nullify damage$Flowers!$ (10%% chance to nullify damage) +armorMod.mod.Insert=%% damage$%% projectile damage$%% explosion damage$%% speed$HP +armorMod.mod.Iron=+0.5 knockback resistance$ (+0.5 knockback resistence) +armorMod.mod.Knife=Pain.$ $Hurts, doesn't it? +armorMod.mod.Lens=Satellite Frequency: $ (Freq: %%d) +armorMod.mod.Lodestone=Attracts nearby items$Item attraction range: %%d$ (Magnetic range: %%d) +armorMod.mod.Milk=Removes bad potion effects$ (Removes bad potion effects) +armorMod.mod.MorningGlory=5%% chance to apply resistance when hit, wither immunity$ (5%% for resistance, wither immunity) +armorMod.mod.Obsidian=Makes dropped armor indestructible$ (Item indestructible) +armorMod.mod.Pads=%% fall damage$Passively charges electric armor when walking$%% fall dmg / passive charge) +armorMod.mod.Polish=5%% chance to nullify damage$ (5%% chance to nullify damage) +armorMod.mod.Quartz=Taking damage removes 10 RAD$ (-10 RAD when hit) +armorMod.mod.Revive= revives left +armorMod.mod.Revive.scrumpy=But how did you survive?$I was drunk. +armorMod.mod.Revive.wild_p=§8Explosive §cReactive "§8Plot §cArmor +armorMod.mod.Revive.fabsols_vodka=In the news:$§c§lMan literally too angry to die.$ $§o"I ain't got time to die" says local$man after ripping the physical manifestation$of disaster itself in half. +armorMod.mod.Sensor=Beeps near hazardous gasses$Works in the inventory or when applied to armor$ (Detects gasses) +armorMod.mod.Serum=Cures poison and gives strength$ (replaces poison with strength) +armorMod.mod.Servos=Chestplate: Haste I / Damage +50%%$Leggings: Speed +25%% / Jump II$ (Haste I / Damage +50%%)$ (Speed +25%% / Jump II) +armorMod.mod.Servos.desh=Chestplate: Haste III / Damage +150%%$Leggings: Speed +50%% / Jump III$ (Haste III / Damage +150%%)$ (Speed +50%% / Jump III) +armorMod.mod.Shackles=You will speak when I ask you to.$You will eat when I tell you to.$You will die when I allow you to.$∞ revives left$ (∞ revives left) +armorMod.mod.Tesla=Zaps nearby entities (requires full electric set)$ (zaps nearby entities) +armorMod.mod.TwoKick="I've had worse"$ (Shotgun punches) +armorMod.mod.V1=BLOOD IS FUEL$ (BLOOD IS FUEL) +armorMod.mod.WD40=Highly reduces damage taken by armor, +2 HP$ (-80%% armor wear / +2 HP) armorMod.type.boots=Boots armorMod.type.chestplate=Chestplate armorMod.type.cladding=Cladding @@ -866,6 +903,7 @@ death.attack.tau=%1$s was riddeled by %2$s using negatively charged tauons. death.attack.tauBlast=%1$s charged the XVL1456 for too long and was blown into pieces. death.attack.teleporter=%1$s was teleported into nothingness. +desc.block.blastinfo=Blast Resistance: %s desc.gui.assembler.warning=§cError:§r This machine requires an assembly template! desc.gui.chemplant.warning=§cError:§r This machine requires an chemistry template! desc.gui.gasCent.enrichment=§2Enrichment§r$Uranium enrichment requires cascades.$Two-centrifuge cascades will give$uranium fuel, four-centrifuge cascades$will give total separation. @@ -980,6 +1018,7 @@ desc.item.battery.charge=Charge: %s / %sHE desc.item.battery.chargePerc=Charge: %s%% desc.item.battery.chargeRate=Charge rate: %sHE/tick desc.item.battery.dischargeRate=Discharge rate: %sHE/tick +desc.item.detonator=Position set!$No position set! desc.item.durability=Durability: %s desc.item.grenade.fuse=Fuse: %s desc.item.grenade.fuseImpact=Impact @@ -1022,6 +1061,20 @@ desc.misc.noPos=No position set! desc.misc.pos=Set pos to: %s, %s, %s desc.misc.posSet=Position set! desc.item.wasteCooling=Cool in a Spent Fuel Pool Drum +desc.item.upgrade.machine=Mining Drill:§r$Laser Miner:$Electric Furnace:§r$Assembly Machine:§r$Chemical Plant:§r$Oil Wells:§r$Crystallizer:§r$Cyclotron:§r$Flare Stack:§r$Maxwell:§r$Turbofan:§r$Forcefield Range Upgrade§r$Forcefield Health Upgrade§r$Mining Laser Upgrade§r$Gas Centrifuge Upgrade§r$ +desc.item.upgrade.speed=Delay -%s%% / Consumption +%sHE/t$Delay ÷%s / Consumption +%sHE/t$Delay -%s%% / Consumption +%s%%$Speed x%s$Damage +%sdmg/t +desc.item.upgrade.effect=Radius +%sm / Consumption +%sHE/t$+%s%% chance of not consuming an item / Acid consumption +%smB$-%s%% chance of incrementing overheat counter$+%s%% power production$Range +%sm +desc.item.upgrade.power=Consumption -%sHE/t / Delay +%s%%$Consumption -%s%% / Delay +%s%%$Consumption -%skHE/t$Consumption -%sHE/t$Consumption when firing -%sHE/t +desc.item.upgrade.fortune=Fortune +%s / Delay +%s +desc.item.upgrade.afterburn=Production x%s / Consumption x%s$Afterburn +%ss$Burn %smB of gas for %sHE/t +desc.item.upgrade.forcefield=Radius +16 / Consumption +500$Max. Health +50 / Consumption +250$Stacks to 16 +desc.item.upgrade.smelter=Smelts blocks. Easy enough. +desc.item.upgrade.shredder=Crunches ores +desc.item.upgrade.centrifuge=Hopefully self-explanatory +desc.item.upgrade.crystallizer=Your new best friend +desc.item.upgrade.screm=It's like in Super Mario where all blocks are$actually Toads, but here it's Half-Life scientists$and they scream. A lot. +desc.item.upgrade.nullifier=50%% chance to override worthless items with /dev/zero$50%% chance to move worthless items to /dev/null +desc.item.upgrade.gc_speed=Allows for total isotopic separation of HEUF6$§ealso your centrifuge goes sicko mode desc.item.zirnoxBreedingRod=§2[ZIRNOX Breeding Rod]$§ePlace next to fuel rods to breed$§eLasts %d ticks desc.item.zirnoxRod=§a[ZIRNOX Fuel Rod]$§eGenerates %1$d heat per tick$§eLasts %2$d ticks @@ -1404,6 +1457,26 @@ hbmfluid.woodoil=Wood Oil hbmfluid.xenon=Xenon Gas hbmfluid.xpjuice=Experience Juice hbmfluid.xylene=BTX + +hbmfluid.Trait.Combustible=[Combustible]$Provides §c%sHE §6per bucket$Fuel grade: §c%s +hbmfluid.Trait.Combustible.FuelGrade=Low$Medium$High$Aviation$Gaseous +hbmfluid.Trait.Coolable=Thermal capacity: %s TU$Efficiency: %s%% +hbmfluid.Trait.Corrosive=[Strongly Corrosive]$[Corrosive] +hbmfluid.Trait.Flammable=[Flammable]$Provides §c%sTU §eper bucket +hbmfluid.Trait.Poison=[Toxic Fumes] +hbmfluid.Trait.PWRModerator=[PWR Flux Multiplier]$"Core flux %s%s%% +hbmfluid.Trait.Toxin=[Toxin] +hbmfluid.Trait.VentRadiation=[Radioactive] +hbmfluid.TraitSimple.Amat=[Antimatter] +hbmfluid.TraitSimple.Delicious=[Delicious] +hbmfluid.TraitSimple.Gaseous=[Gaseous] +hbmfluid.TraitSimple.Gaseous_ART=[Gaseous at Room Temperature] +hbmfluid.TraitSimple.LeadContainer=[Requires hazardous material tank to hold] +hbmfluid.TraitSimple.Leaded=[Leaded Fuel] +hbmfluid.TraitSimple.Liquid=[Liquid] +hbmfluid.TraitSimple.Plasma=[Plasma] +hbmfluid.TraitSimple.Viscous=[Viscous] + hbmpseudofluid.none=Empty hbmpseudofluid.heuf6=Highly Enriched UF6 hbmpseudofluid.meuf6=Medium Enriched UF6 @@ -1752,9 +1825,14 @@ item.ams_catalyst_strontium.name=Strontium Reaction Catalyst item.ams_catalyst_thorium.name=Thorium Reaction Catalyst item.ams_catalyst_tungsten.name=Tungsten Reaction Catalyst item.ams_core_eyeofharmony.name=Eye of Harmony (AMS/DFC Core) +item.ams_core_eyeofharmony.desc=A star collapsing in on itself, mere nanoseconds$away from being turned into a black hole,$frozen in time. If I didn't know better I$would say this is some deep space magic$bullcrap some guy made up to sound intellectual.$Probably Steve from accounting. You still owe me$ten bucks. item.ams_core_sing.name=Vibrant Singularity (AMS/DFC Core) +item.ams_core_sing.desc=A modified undefined state of spacetime$used to aid in inter-gluon fusion and$spacetime annihilation. Yes, this destroys$the universe itself, slowly but steadily,$but at least you can power your toaster with$this, so it's all good. item.ams_core_thingy.name=Thingy (AMS/DFC Core) +item.ams_core_thingy.desc=...$"...$...am I even holding this right?$It's a small metal thing. I dunno where it's from$or what it does, maybe they found it on a$junkyard and sold it as some kind of antique$artifact. If it weren't for the fact that I can$actually stuff this into some great big laser$reactor thing, I'd probably bring it back to where$it belongs. In the trash. +item.ams_core_thingy_hide.desc=Yeah I'm not even gonna question that one. item.ams_core_wormhole.name=Tiny Wormhole (AMS/DFC Core) +item.ams_core_wormhole.desc=A cloud of billions of nano-wormholes which$deliberately fail at tunneling matter from$another dimension, rather it converts all$that matter into pure energy. That means$you're actively contributing to the destruction$of another dimension, sucking it dry like a$juicebox.$That dimension probably sucked, anyways. I$bet it was full of wasps or some crap, man,$I hate these things. item.ams_focus_blank.name=Blank Stabilizer Focus item.ams_focus_booster.name=Boosting Stabilizer Focus item.ams_focus_booster.desc=Weaker restriction field and core energy injection:$More heat generation, extra energy. @@ -1966,6 +2044,7 @@ item.bottle_empty.name=Empty Bomb-Shaped Bottle item.bottle_mercury.name=Bottle of Mercury item.bottle_nuka.name=Bottle of Nuka Cola item.bottle_opener.name=Hbm's Own Self-Made Bottle Opener +item.bottle_opener.desc=My very own bottle opener.$Use with caution! item.bottle_quantum.name=Bottle of Nuka Cola Quantum item.bottle_rad.name=Bottle of S~Cola RAD item.bottle_sparkle.name=Bottle of S~Cola @@ -2120,6 +2199,7 @@ item.centrifuge_tower.name=Centrifuge Tower item.chainsaw.name=Chainsaw item.cheese.name=Cheese item.cheese_quesadilla.name=Cheese Quesadilla +item.cheese_quesadilla.desc=That's what a 50 year old yeast infection does to you. item.chemical_dye.black.name=Chemical Dye (Black) item.chemical_dye.blue.name=Chemical Dye (Blue) item.chemical_dye.brown.name=Chemical Dye (Brown) @@ -2362,6 +2442,7 @@ item.debris_graphite.name=Hot Graphite Chunk item.debris_metal.name=Broken Metal Bar item.debris_shrapnel.name=Walkway Shrapnel item.definitelyfood.name=TotallyNotDirt-Brand MRE +item.definitelyfood.desc=A'right, I got sick and tired of$having to go out, kill things just$to get food and not die, so here is $my absolutely genius solution:$ $Have some edible dirt. item.defuser.name=High-Tech Bomb Defusing Device item.defuser_gold.name=Golden Wire Cutter item.demon_core_closed.name=Closed Demon Core @@ -2376,12 +2457,15 @@ item.designator_arty_range.name=Long Range Artillery Remote item.designator_manual.name=Manual Target Designator item.designator_range.name=Long Range Target Designator item.detonator.name=Detonator +item.detonator.desc=Shift right-click to set position,$right-click to detonate! +item.detonator.pos.desc=No position set!$Linked to %s, %s, %s item.detonator_de.name=Dead Man's Explosive item.detonator_deadman.name=Dead Man's Detonator item.detonator_laser.name=Laser Detonator item.detonator_multi.name=Multi Detonator item.deuterium_filter.name=Deuterium Filter item.diamond_gavel.name=Diamond Gavel +item.diamond_gavel.desc=The joke! It makes sense now!!$ $§9Deals as much damage as it needs to. item.dieselsuit_boots.name=Diesel-Powered High Heels item.dieselsuit_helmet.name=Diesel-Powered Head-Mounted Environmental Sensor item.dieselsuit_legs.name=Diesel-Powered Leg Servos @@ -2565,6 +2649,8 @@ item.gem_volcanic.name=Volcanic Gem item.generator_front.name=Generator Front item.generator_steel.name=Generator Body item.glitch.name=Glitch +item.glitch.desc=It's a gamble!$Click-click-click!$Creek!$Bzzzt!$TS staring off into space.$BANG!!$Woop!$Poow!$Pft!$GF fgnevat bss vagb fcnpr.$Backup memory #8 on 1.44 million bytes.$PTANG!$Bzzt-zrrt!$Clang, click-brrthththrtrtrtrtrtr!$KABLAM!$PLENG!$Wheeeeeeee-$Thump.$BANG! Choo-chooo! B A N G ! ! ! +item.glitch.message=Sorry nothing.$Prometheus was punished by the gods by giving the gift of knowledge to man. He was cast into the bowels of the earth and pecked by birds.$Oh, and by the way: The polaroid shifts reality. Things can be different if the polaroid is broken.$Have some free stuff. You'll need it for that one cryptic achievement.$v yvxr lbhe nggvghqr!$89%% of magic tricks are not magic. Technically, they are sorcery.$Here ya go.$Ë$Good day, I am text$73616d706c652074657874!$Budget cuts, no effect for you.$oof$Tank!$More devastating than a falling boxcar!$Ha!$Watch your head!$Bam!$t's dangerous to go alone, take this! item.glowing_stew.name=Glowing Mushroom Stew item.glyphid_meat.name=Glyphid Meat item.glyphid_meat_grilled.name=Grilled Glyphid Meat @@ -2878,6 +2964,7 @@ item.ingot_schrabidium_fuel.name=Ingot of Schrabidium Fuel item.ingot_schraranium.name=Schraranium Ingot item.ingot_schraranium.desc=Made from uranium in a schrabidium transmutator item.ingot_semtex.name=Bar of Semtex +item.ingot_semtex.desc=Semtex H Plastic Explosive$Performant explosive for many applications.$Edible item.ingot_smore.name=S'more Ingot item.ingot_solinium.name=Solinium Ingot item.ingot_sr90.name=Strontium-90 Ingot @@ -2923,11 +3010,16 @@ item.iv_xp.name=Experience Bag item.iv_xp_empty.name=Empty Experience Bag item.jackt.name=Damn Stylish Ballistic Jacket item.jackt2.name=Damn Stylish Ballistic Jacket 2: Tokyo Drift +item.jetpack.desc=Can be worn on its own! item.jetpack_boost.name=Boostpack +item.jetpack_boost.desc=High-powered vectorized jetpack.$Highly increased fuel consumption. item.jetpack_break.name=Builder's Jetpack +item.jetpack_break.desc=Regular jetpack that will automatically hover mid-air.$Sneaking will stop hover mode.$Hover mode will consume less fuel and increase air-mobility. item.jetpack_fly.name=Jetpack +item.jetpack_fly.desc=Regular jetpack for simple upwards momentum. item.jetpack_tank.name=Jetpack Reserve Fuel Tank item.jetpack_vector.name=Vectored Jetpack +item.jetpack_vector.desc=High-mobility jetpack.$Higher fuel consumption. item.journal_bj.name=Whiskey Drenched Notebook item.journal_pip.name=Survivalist's Journal item.journal_silver.name=Contractor's Notes @@ -2949,7 +3041,9 @@ item.laser_crystal_digamma.name=Digamma Laser Crystal item.laser_crystal_dnt.desc=Dineutronium-Spark Fermion Supercrystal item.laser_crystal_dnt.name=Spark Laser Crystal item.lead_gavel.name=Leaden Gavel +item.lead_gavel.desc=You are hereby sentenced to lead poisoning. item.lemon.name="Lemon" +item.lemon.desc=Eh, good enough. item.letter.name=Express Mail item.levitation_unit.name=Gravity Manipulator item.lignite.name=Lignite @@ -2962,7 +3056,9 @@ item.liquidator_plate.name=Liquidator Suit Chestplate item.lithium.name=Lithium Cube item.lodestone.name=Lodestone item.loop_stew.name=IT Breakfast +item.loop_stew.desc=A very, very healthy breakfast. item.loops.name=Lööps +item.loops.desc=Brøther, may I have some lööps? item.loot_10.name=Size 10 Missile Loot Crate item.loot_15.name=Size 15 Missile Loot Crate item.loot_misc.name=General Missile Loot Crate @@ -2989,28 +3085,44 @@ item.mechanism_rifle_2.name=Advanced Rifle Mechanism item.mechanism_special.name=High-Tech Weapon Mechanism item.med_bag.name=Doctor's Bag item.med_ipecac.name=Ipecac Syrup +item.med_ipecac.desc=Bitter juice that will cause your stomach$to forcefully eject its contents. item.med_ptsd.name=PTSD Medication +item.med_ptsd.desc=This isn't even PTSD mediaction, it's just$Ipecac in a different bottle! item.med_schiziphrenia.name=Schizophrenia Medication +item.med_schiziphrenia.desc=Makes the voices go away. Just for a while.$ $...$Better not take it. item.medal_liquidator.name=Liquidator Medal item.meltdown_tool.name=Dyatlov Instant Meltdown Applicator item.memespoon.name=§eMarket Gardener +item.memespoon.desc=§8Level 10 Shovel$§bDeals crits while the wielder is rocket jumping$§c20%% slower firing speed$§cNo random critical hits item.memory.name=item.null.name item.mese_gavel.name=Mese Gavel item.mese_pickaxe.name=Mese Pickaxe item.meteor_charm.name=Meteor Charm item.meteor_remote.name=Meteorite Remote item.meteorite_sword.name=Meteorite Sword +item.meteorite_sword.desc=Forged from a fallen star$Sharper than most terrestrial blades item.meteorite_sword_seared.name=Meteorite Sword (Seared) +item.meteorite_sword_seared.desc=Fire strengthens the blade$Making it even more powerful item.meteorite_sword_reforged.name=Meteorite Sword (Reforged) +item.meteorite_sword_reforged.desc=The sword has been reforged$To rectify past imperfections item.meteorite_sword_hardened.name=Meteorite Sword (Hardened) +item.meteorite_sword_hardened.desc=Extremely high pressure has been used$To harden the blade further item.meteorite_sword_alloyed.name=Meteorite Sword (Alloyed) +item.meteorite_sword_alloyed.desc=Cobalt fills the fissures$Strengthening the sword item.meteorite_sword_machined.name=Meteorite Sword (Machined) +item.meteorite_sword_machined.desc=Advanced machinery was used$To refine the blade even more item.meteorite_sword_treated.name=Meteorite Sword (Treated) +item.meteorite_sword_treated.desc=Chemicals have been applied$Making the sword more powerful item.meteorite_sword_etched.name=Meteorite Sword (Etched) +item.meteorite_sword_etched.desc=Acids clean the material$To make this the perfect sword item.meteorite_sword_bred.name=Meteorite Sword (Bred) +item.meteorite_sword_bred.desc=Immense heat and radiation$Compress the material item.meteorite_sword_irradiated.name=Meteorite Sword (Irradiated) +item.meteorite_sword_irradiated.desc=The power of the Atom$Gives the sword might item.meteorite_sword_fused.name=Meteorite Sword (Fused) +item.meteorite_sword_fused.desc=This blade has met$With the forces of the stars item.meteorite_sword_baleful.name=Meteorite Sword (Baleful) +item.meteorite_sword_baleful.desc=This sword has met temperatures$Far beyond what normal material can endure item.mike_cooling_unit.name=Deuterium Cooling Unit item.mike_core.name=Uranium Coated Deuterium Tank item.mike_deut.name=Deuterium Tank @@ -3045,6 +3157,7 @@ item.missile_nuclear_cluster.name=Thermonuclear Missile item.missile_rain.name=Bomblet Rain item.missile_schrabidium.name=Schrabidium Missile item.missile_shuttle.name=Reliant Robin Space Shuttle +item.missile_shuttle.desc=Tonite, on bo''om gear:$James huffs leaded gasoline and$goes insane, Richard spends the$entire budget on a broken .PNG,$And I forget to set the infinite$Water tanks on our RBMK to flow$out, blowing up our entire base item.missile_skin_camo.name=Missile Skin: Camo item.missile_skin_color.desc=I can't find my missile anymore! item.missile_skin_desert.name=Missile Skin: Desert Camo @@ -3064,6 +3177,7 @@ item.missile_skin_soviet_glory.desc=услуга перевода недосту item.missile_skin_soviet_stank.name=Missile Skin: Soviet Stank item.missile_skin_soviet_stank.desc=This one's got the real 60's stank to it. item.missile_soyuz.name=Soyuz-FG +item.missile_soyuz.desc=Skin:$Original$Luna Space Center$Post War item.missile_soyuz_lander.name=Orbital Module item.missile_soyuz_lander.desc=Doubles as a crappy lander! item.missile_strong.name=Strong HE Missile @@ -3210,6 +3324,7 @@ item.multitool_miner.name=Power Fist (Extracting Mining Laser) item.multitool_silk.name=Power Fist (Silk Touch Claw) item.multitool_sky.name=Power Fist (Crack the Sky) item.mysteryshovel.name=Brittle Spade +item.mysteryshovel.desc=Lost but not forgotten item.n2_charge.name=Large Explosive Charge item.neutrino_lens.name=Neutrino Lens item.neutron_reflector.name=Neutron Reflector @@ -3393,6 +3508,7 @@ item.particle_strange.name=Strange Quark Capsule item.particle_tachyon.name=Tachyon Capsule item.parts_legendary.name=Legendary Parts item.peas.name=Peas +item.peas.desc=He accepts your offering. item.pedestal_steel.name=Steel Pedestal item.pellet_advanced.name=Advanced Watz Performance Improver item.pellet_antimatter.name=Antimatter Cluster @@ -3649,6 +3765,7 @@ item.primer_buckshot.name=Buckshot Primer (x12) item.protection_charm.name=Charm of Protection item.prototype_kit.name=Prototype Kit item.pudding.name=Pudding +item.pudding.desc=What if he did?$What if he didn't?$What if the world was made of pudding? item.pwr_fuel.bfb_am_mix.name=Fuel Grade Americium PWR BFB Rod item.pwr_fuel.bfb_pu241.name=Plutonium-241 PWR BFB Rod item.pwr_fuel.hea242.name=HEA-242 PWR Fuel Rod @@ -3702,6 +3819,7 @@ item.radaway_strong.name=Strong RadAway item.radx.name=Rad-X item.radx.desc=Increases radiation resistance by 0.2 (37%%) for 3 minutes item.rag.name=Cloth +item.rag.desc=Drop into water to make damp cloth.$Right-click to urinate on the cloth. item.rag_damp.name=Damp Cloth item.rag_piss.name=Piss-Soaked Rag item.rbmk_fuel_balefire.name=Balefire RBMK Fuel Rod @@ -4008,6 +4126,7 @@ item.schnitzel_vegan.name=Vegan Schnitzel item.schrabidium_axe.name=Schrabidium Axe item.schrabidium_boots.name=Schrabidium Boots item.schrabidium_hammer.name=Schrabidium Hammer +item.schrabidium_hammer.desc=Even though it says "+1000000000"$damage", it's actually "onehit anything" item.schrabidium_helmet.name=Schrabidium Helmet item.schrabidium_hoe.name=Schrabidium Hoe item.schrabidium_legs.name=Schrabidium Leggings @@ -4036,10 +4155,14 @@ item.servo_set.name=Servo Set item.servo_set_desh.name=Desh Servo Set item.shackles.name=Shackles item.shimmer_axe.name=Shimmer Axe +item.shimmer_axe.desc=Timber! +item.shimmer_axe.desc.hide=shim's toolbox does an e-x-p-a-n-d item.shimmer_axe_head.name=Heavy Axe Head item.shimmer_handle.name=Reinforced Polymer Handle item.shimmer_head.name=Heavy Hammer Head item.shimmer_sledge.name=Shimmer Sledge +item.shimmer_sledge.desc=Breaks everything, even portals. +item.shimmer_sledge.desc.hide=shimmer no$drop that hammer$you're going to hurt somebody$shimmer no$shimmer pls item.singularity.name=Singularity item.singularity_counter_resonant.name=Contained Counter-Resonant Singularity item.singularity_micro.name=Micro Singularity @@ -4161,6 +4284,7 @@ item.tank_waste_7.name=Mud Container item.tank_waste_8.name=Mud Container item.telepad.name=Telepad item.tem_flakes.name=Tem Flakes +item.tem_flakes.desc=Heals 2HP DISCOUNT FOOD OF TEM!!!$Heals 2HP food of tem$Heals food of tem (expensiv) item.template_folder.name=Machine Template Folder item.template_folder.desc=Machine Templates: Paper + Dye$Fluid IDs: Iron Plate + Dye$Press Stamps: Flat Stamp$Siren Tracks: Insulator + Steel Plate item.test_nuke_igniter.name=Igniter @@ -4214,7 +4338,9 @@ item.turret_rocket_ammo.name=Rocket Turret 2x4 Ammunition item.turret_spitfire_ammo.name=AA-Shell item.turret_tau_ammo.name=Tau Turret Uranium Ammo item.twinkie.name=Twinkie +item.twinkie.desc=Expired 600 years ago! item.ullapool_caber.name=Ullapool Caber +item.ullapool_caber.desc=High-yield Scottish face removal.$A sober person would throw it... item.undefined.name=Undefined item.upgrade_5g.name=5G Radiation Emitter Upgrade item.upgrade_afterburn_1.name=Afterburner Upgrade Mk.I @@ -4255,8 +4381,14 @@ item.v1.name=V1 item.volcanic_pickaxe.name=Molten Pickaxe item.wand_d.name=Debug Wand item.wand_k.name=Construction Wand +item.wand_k.block=Block saved: %s +item.wand_k.desc=Creative-only item$"Destruction brings creation"$(Set positions with right click,$set block with shift-right click!) +item.wand_k.null=Positions not set! +item.wand_k.pos=Pos: %s, %s, %s item.wand_s.name=Structure Wand +item.wand_s.desc=Creative-only item$"Instant structures for everyone!"$(Cycle with shift-right click,$spawn structures with right click!) item.structure_custommachine.name=Custom Machine Structure Output Wand +item.structure_custommachine.desc=Click Custom Machine Structure Positioning Anchor to$Confirm the location of the custom machine core block.$Output all blocks between Position1 and Position2 with$metadata to \"CMstructureOutput.txt\" in hbmConfig. item.warhead_buster_large.name=Large Bunker Buster Warhead item.warhead_buster_medium.name=Medium Bunker Buster Warhead item.warhead_buster_small.name=Small Bunker Buster Warhead @@ -4339,9 +4471,12 @@ item.wire_schrabidium.name=Schrabidium Wire item.wire_tungsten.name=Tungsten Wire item.wiring_red_copper.name=Cable Drum item.wood_gavel.name=Wooden Gavel +item.wood_gavel.desc=Thunk! item.wrench.name=Pipe Wrench +item.wrench.desc=Mechanic Richard item.wrench_archineer.name=Archineer's Wrench item.wrench_flipped.name=Blade on a Wrench +item.wrench_flipped.desc=Wrench 2: The Wrenchening item.xanax.name=NAXA Anti-Digamma Medication item.xanax.desc=Removes 500mDRX item.zirconium_legs.name=Zirconium Pants @@ -4705,6 +4840,7 @@ tile.cm_tank.alloy.name=Advanced Alloy Tank tile.cm_tank.desh.name=Desh Tank tile.cm_tank.steel.name=Steel Tank tile.cm_tank.tcalloy.name=Technetium Steel Tank +tile.cm_paperPress.name=Paper Press tile.cmb_brick.name=CMB Steel Tile tile.cmb_brick_reinforced.name=Reinforced CMB Bricks tile.compact_launcher.name=Compact Launch Pad @@ -4958,6 +5094,7 @@ tile.gneiss_brick.name=Schist Brick tile.gneiss_chiseled.name=Chiseled Schist tile.gneiss_tile.name=Schist Tile tile.gravel_diamond.name=Diamond Gravel +tile.gravel_diamond.desc=There is some kind of joke here,$but I can't quite tell what it is.$ $Update, 2020-07-04:$We deny any implications of a joke on$the basis that it was so severely unfunny$that people started stabbing their eyes out.$$Update, 2020-17-04:$As it turns out, "Diamond Gravel" was$never really a thing, rendering what might$have been a joke as totally nonsensical.$We apologize for getting your hopes up with$this non-joke that hasn't been made.$$i added an item for a joke that isn't even here, what am i, stupid? can't even tell the difference between gravel and a gavel, how did i not forget how to breathe yet? tile.gravel_obsidian.name=Crushed Obsidian tile.hadron_access.name=Particle Accelerator Access Terminal tile.hadron_analysis.name=Particle Accelerator Analysis Chamber Wall @@ -5088,6 +5225,7 @@ tile.machine_excavator.name=Large Mining Drill tile.machine_fel.name=FEL tile.machine_fensu.name=FEnSU tile.machine_flare.name=Flare Stack +tile.machine_flare.desc=Can burn fluids and vent gasses$Burns up to §c10mB/t$Vents up to §c50mB/t$ $§eFuel efficiency:$§e-Flammable Gasses: §c50%%$§e-Flammable Liquids: §c10%% tile.machine_fluidtank.name=Tank tile.machine_forcefield.name=Forcefield Emitter tile.machine_fraction_tower.name=Fractioning Tower @@ -5179,6 +5317,7 @@ tile.machine_zirnox.name=ZIRNOX Nuclear Reactor tile.marker_structure.name=Multiblock Structure Marker tile.mass_storage.name=Mass Storage Unit tile.meteor_battery.name=Starmetal Static Electricity Generator +tile.meteor_battery.desc=Provides infinite charge to tesla coils tile.meteor_brick.name=Meteor Bricks tile.meteor_brick_chiseled.name=Chiseled Meteor Bricks tile.meteor_brick_cracked.name=Cracked Meteor Bricks @@ -5198,14 +5337,18 @@ tile.ntm_dirt.name=Dirt tile.nuke_boy.name=Little Boy tile.nuke_custom.name=Custom Nuke tile.nuke_fleija.name=F.L.E.I.J.A. +tile.nuke_fleija.desc=Used in:$F.L.E.I.J.A. tile.nuke_fstbmb.name=Balefire Bomb tile.nuke_gadget.name=The Gadget tile.nuke_man.name=Fat Man tile.nuke_mike.name=Ivy Mike tile.nuke_n2.name=N² Mine +tile.nuke_n2.desc=Used in:$N² Mine tile.nuke_n45.name=N45 Naval Mine tile.nuke_prototype.name=The Prototype +tile.nuke_prototype.desc=It didn't have to be like this.$ $You monster. tile.nuke_solinium.name=The Blue Rinse +tile.nuke_solinium.desc=Used in:$Solinium Bomb tile.nuke_tsar.name=Tsar Bomba tile.oil_duct.name=Oil Pipe tile.oil_duct_solid.name=Coated Oil Pipe @@ -5264,6 +5407,7 @@ tile.ore_nether_uranium.name=Nether Uranium Ore tile.ore_nether_uranium_scorched.name=Scorched Nether Uranium Ore tile.ore_niter.name=Niter Ore tile.ore_oil.name=Oil Deposit +tile.ore_oil.desc=You weren't supposed to mine that.$Come on, get a derrick you doofus. tile.ore_oil_empty.name=Empty Oil Deposit tile.ore_oil_sand.name=Tar Sand tile.ore_random.name=%s Ore @@ -5378,6 +5522,7 @@ tile.reactor_element.name=Reactor Chamber tile.reactor_hatch.name=Reactor Access Hatch tile.reactor_inserter.name=Reactor Fuel Inserter tile.red_barrel.name=Explosive Barrel +tile.red_barrel.desc=Static fluid barrel tile.red_cable.name=Red Copper Cable tile.red_cable_classic.name=Red Copper Cable (Classic) tile.red_cable_gauge.name=Power Gauge @@ -5385,7 +5530,9 @@ tile.red_cable_gauge.desc=Cable that displays how much power$moves within the ne tile.red_cable_paintable.name=Paintable Red Copper Cable tile.red_connector.name=Electricity Connector tile.red_pylon.name=Electricity Pole +tile.red_pylon.desc=Connection Type: §eSingle$Connection Range: §e25m tile.red_pylon_large.name=Large Electricity Pylon +tile.red_pylon_large.desc=Connection Type: §eQuadruple$Connection Range: §e100m$This pylon requires a substation! tile.red_wire_coated.name=Coated Red Copper Cable tile.reinforced_brick.name=Reinforced Stone tile.reinforced_brick_stairs.name=Reinforced Stone Stairs @@ -5470,6 +5617,7 @@ tile.struct_scaffold.name=Launch Pad Scaffold Block tile.struct_soyuz_core.name=Soyuz Launcher Core Component tile.struct_watz_core.name=Watz Powerplant Core Component tile.substation.name=Substation +tile.substation.desc=Connection Type: §eQuadruple$Connection Range: §e20m tile.sulfuric_acid_block.name=Sulfuric Acid tile.taint.name=Taint tile.taint_barrel.name=IMP Residue Barrel @@ -5560,6 +5708,10 @@ trait.hydro=Hydroreactive trait.radioactive=Radioactive trait.radResistance=Radiation resistance: %s +trait.platefuel=[Research Reactor Plate Fuel]$§3 %s$§3 Yield of %s events +trait.pwr_fuel=Heat per flux: §r%s TU$Reacton function: §r%s$Fuel type: §r%s + +trait.rbmk.BurnFunc=SAFE / PASSIVE$MEDIUM / LOGARITHMIC$SAFE / EULER$DANGEROUS / NEGATIVE-QUADRATIC$SAFE / SIGMOID$MEDIUM / SQUARE ROOT$DANGEROUS / LINEAR$DANGEROUS / QUADRATIC$EXPERIMENTAL / SINE SLOPE trait.rbmk.coreTemp=Core temp: %s trait.rbmk.depletion=Depletion: %s trait.rbmk.diffusion=Diffusion: %s @@ -5596,8 +5748,21 @@ trait.rbmx.xenon=Lead poison: %s trait.rbmx.xenonBurn=Lead destruction function: %s trait.rbmx.xenonGen=Lead creation function: %s +trait.rbmk_pellet=Pellet for recycling$Brand New$Barely Depleted$Moderately Depleted$Highly Depleted$Fully Depleted$High Xenon Poison +trait.watz_pellet=Depletion: %s%% +trait.watz_pellet.passive=Base fission rate: $Self-igniting! +trait.watz_pellet.heatEmission=Heat per flux: +trait.watz_pellet.burnFunc=Reacton function: $Fuel type: +trait.watz_pellet.heatDiv=Thermal multiplier: +trait.watz_pellet.absorbFunc=Flux capture: + trait.tile.cluster=Drops only when broken by a player trait.tile.depth=Can only be destroyed by explosions +trait.tile.barrel.capacity=Capacity: %smB +trait.tile.barrel.hot=Can store hot fluids$Cannot store hot fluids +trait.tile.barrel.corrosive=Can store highly corrosive fluids$Can store corrosive fluids$Cannot store highly corrosive fluids properly$Cannot store corrosive fluids properly$Cannot store corrosive fluids +trait.tile.barrel.antimatter=Can store antimatter$Cannot store antimatter +trait.tile.barrel.leak=Leaky tool.ability.centrifuge=Auto-Centrifuge tool.ability.crystallizer=Auto-Crystallizer @@ -5611,6 +5776,15 @@ tool.ability.shredder=Auto-Shredder tool.ability.silktouch=Silk Touch tool.ability.smelter=Auto-Smelter +tooltip.armormods=Mods: +tooltip.armormodsshow=Hold < %s §8§o> to display installed armor mods§r +tooltip.block=Hold < %s §8§o> to display more info§r +tooltip.customnuke=Adds %s to the custom nuke stage %s +tooltip.customnukemultiplier=Adds multiplier %s to the custom nuke stage %s +tooltip.oredict=Ore Dict: +tooltip.oredict.null=No Ore Dict data! +tooltip.show=Hold < %s §8§o> to display protection info§r + turret.animals=Target Passive: %s turret.arty.artillery=§eArtillery Mode$Grace: 250m$Range: 3,000m turret.arty.cannon=§eCannon Mode$Grace: 32m$Range: 250m diff --git a/src/main/resources/assets/hbm/lang/zh_CN.lang b/src/main/resources/assets/hbm/lang/zh_CN.lang index 4bd5871e0..7610a1c62 100644 --- a/src/main/resources/assets/hbm/lang/zh_CN.lang +++ b/src/main/resources/assets/hbm/lang/zh_CN.lang @@ -52,13 +52,13 @@ achievement.fiend2=残忍2:更残忍 achievement.fiend=残忍 achievement.freytag.desc=英勇的救生员 achievement.freytag=弗雷塔格 -achievement.fusion.desc=氘核、海卫一与能量的舞蹈。 -achievement.fusion=聚合 -achievement.gasCent.desc=贫铀讨厌他! -achievement.gasCent=链式 +achievement.fusion.desc=氘核, 氚核和能量之舞. +achievement.fusion=热核聚变反应 +achievement.gasCent.desc=未浓缩的铀讨厌他! +achievement.gasCent=拉链式 achievement.goFish.desc=航海十字架 achievement.goFish=去钓鱼 -achievement.hidden.desc=使用一节坠落的车厢杀死一只污染苦力怕 +achievement.hidden.desc=使用一节坠落的车厢杀死一只污染爬行者 achievement.hidden=隐藏目录 achievement.horizonsBonus.desc=说实话,你到底怎么了 achievement.horizonsBonus=地平线! @@ -72,14 +72,14 @@ achievement.inferno.desc=“把它变成灰烬!这还不够!投更多的炸 achievement.inferno=食人行动 achievement.manhattan.desc=1945年8月6日 8:15 achievement.manhattan=曼哈顿计划 -achievement.meltdown.desc=你走了这么远,怎么能把事情搞砸? -achievement.meltdown=快速非计划拆卸 -achievement.no9.desc=“我希望我开采的铅能被用在你的油漆里” -achievement.no9=旧数字9 -achievement.omega12.desc=解决在这个可怜的星球上继续生存的问题 -achievement.omega12=欧米茄-12粒子加速器 -achievement.polymer.desc=美味、美味的微塑料。 -achievement.polymer=特氟隆 +achievement.meltdown.desc=你都走到了这一步,怎么还能把事情搞砸? +achievement.meltdown="快速"拆卸 +achievement.no9.desc="我希望我开采的铅能被用于你的绘画" +achievement.no9=老九号 +achievement.omega12.desc=解决在这个荒凉的的星球上继续生存的问题. +achievement.omega12=欧米伽-12号粒子加速器 +achievement.polymer.desc=美味,美味的微塑料. +achievement.polymer=特氟隆 聚四氟乙烯 achievement.potato.desc=你居然捅我!你怎—喔哦哦哦哦哦! achievement.potato=流氓AI achievement.radDeath.desc=居里夫人开创了放射性理论、放射性治疗和放射性死亡。。。。 @@ -124,30 +124,32 @@ achievement.watzBoom.desc=下次记得把毒泥浆容器清空 achievement.watzBoom=令人厌恶 achievement.watz.desc=可能包括Fólkvangr弗尔克范格场 achievement.watz=126号元素的力量 -achievement.witchtaunter.desc=那些古怪的生物对你毫无兴趣! -achievement.witchtaunter=巫婆陶恩特 -achievement.ZIRNOXBoom.desc=处理, 看,满地是残骸碎片 -achievement.ZIRNOXBoom=锆诺克斯 -armor.blastProtection=修正 %s 的爆炸伤害 -armor.cap=伤害上限 %s -armor.damageModifier=修正 %s 对 %s 的伤害 -armor.dash=给予 %s 冲刺 -armor.electricJetpack=离子喷射背包 +achievement.witchtaunter.desc=那些怪胎什么都没发现! +achievement.witchtaunter=女巫陶恩特 +achievement.ZIRNOXBoom.desc=处理, 遍地都是, 残骸碎片 +achievement.ZIRNOXBoom=CIRNOX + +armor.blastProtection=只受%s的爆炸伤害 +armor.cap=硬伤上限 %s +armor.charge=电量: %s / %s +armor.damageModifier=只受%s的%s伤害 +armor.dash=提供 %s 次冲刺 +armor.electricJetpack=等离子推进器 armor.explosionImmune=免疫除爆炸伤害外的一切伤害 armor.fasterReload=快速装填 armor.fastFall=快速降落 armor.fireproof=防火 -armor.fullSetBonus=全套效果: -armor.geigerHUD=盖革计数器HUD -armor.geigerSound=盖革计数器警报 -armor.glider=滑翔 -armor.gravity=重力修正 %s -armor.hardLanding=硬着陆 -armor.ignoreLimit=防御值不受防御上限的影响 -armor.modifier=伤害修正 %s +armor.fullSetBonus=完整套装增益: +armor.geigerHUD=内置盖格计数器 +armor.geigerSound=听觉式盖革计数器 +armor.glider=按下潜行以滑翔 +armor.gravity=重力效果调整为%s +armor.hardLanding=坠地AOE伤害 +armor.ignoreLimit=防御值不受防御值上限的影响 +armor.modifier=只受%s的一般伤害 armor.moreAmmo=更多弹药 -armor.nullDamage=免疫 %s 伤害 -armor.projectileProtection=免疫 %s 的弹射物伤害 +armor.nullDamage=免疫所有的%s伤害 +armor.projectileProtection=只受%s的弹射物伤害 armor.rocketBoots=火箭靴 armor.sprintBoost=冲刺辅助加速 armor.stepSize=步长:%s @@ -162,8 +164,44 @@ armorMod.chestplates=胸甲 armorMod.helmets=头盔 armorMod.insertHere=插入装甲以改装。。。 armorMod.leggings=护腿 -armorMod.type.boots=靴子 -armorMod.type.chestplate=胸甲 +armorMod.slot=槽位: +armorMod.mod.auto=从日本进口. +armorMod.mod.bandaid=3%% 的几率让你受到伤害时HP回满$ (3%% 的几率HP回满) +armorMod.mod.bathwater=使攻击者中毒$ (让攻击者中毒) +armorMod.mod.charm=你感受到了祝福. +armorMod.mod.charm.protection=使陨石偏移以远离玩家.$陨石不再破坏方块.$将腐化广播的伤害减半 +armorMod.mod.charm.meteor=禁止陨石生成.$无视腐化广播的伤害 +armorMod.mod.cladding= 辐射抗性$ 辐射抗性) +armorMod.mod.defuser=拆除附近爬行者引信$ (拆除爬行者引信) +armorMod.mod.gasmask=有毒气体防护$绝对不会提供的危害防护:$ (有毒气体防护) +armorMod.mod.health= 生命值$怀旧 +armorMod.mod.Ink=10%% 的几率免疫伤害$花朵的护佑!$ (10%% 的几率免疫伤害) +armorMod.mod.Insert=%% 伤害$%% 弹射物伤害$%% 爆炸伤害$%% 移动速度$耐久 +armorMod.mod.Iron=+0.5 抗击退性$ (+0.5 抗击退性) +armorMod.mod.Knife=痛苦.$ $很疼, 不是吗? +armorMod.mod.Lens=卫星频道: $ (频道: %%d) +armorMod.mod.Lodestone=吸引附近的掉落物$掉落物吸引范围: %%d$ (磁力范围: %%d) +armorMod.mod.Milk=移除负面效果$ (移除负面效果) +armorMod.mod.MorningGlory=5%% 的几率在被击中时得到抗性提升效果, 免疫凋零效果$ (5%% 的几率得到抗性提升效果, 免疫凋零效果) +armorMod.mod.Obsidian=使掉落的盔甲坚不可摧$ (使掉落的盔甲坚不可摧) +armorMod.mod.Pads=%% 摔落伤害$行走时可为盔甲充电$%% 摔落伤害 / 行走时可为盔甲充电) +armorMod.mod.Polish=5%% 的几率免疫伤害$ (5%% 的几率免疫伤害) +armorMod.mod.Quartz=每受一次受到伤害将移除 10 RAD$ (每受一次受到伤害将移除10 RAD) +armorMod.mod.Revive= 条额外生命 +armorMod.mod.Revive.scrumpy=但,但你是怎么活下来的?$我当时喝醉了. +armorMod.mod.Revive.wild_p=§8爆炸 §c反应 §8局部 §c装甲 +armorMod.mod.Revive.fabsols_vodka=新闻:$§c§l一男子在极度愤怒的情况下拒绝死亡.$ $§o"我没这功夫去死" 该名当地$男子在把灾难本身在物理层面上的体现$撕成两半后如是说道. +armorMod.mod.Sensor=有危险气体在附近时发出蜂鸣音$在背包中或装配于装甲时工作$ (检测气体) +armorMod.mod.Serum=解除中毒效果并替换为力量效果$ (解除中毒效果并替换为力量效果) +armorMod.mod.Servos=装配于胸甲时: 给予 急迫 I / 伤害 +50%%$装配于护腿时: 移动速度 +25%% / 给予 跳跃提升 II$ (给予 急迫 I / 伤害 +50%%)$ (移动速度 +25%% / 给予 跳跃提升p II) +armorMod.mod.Servos.desh=装配于胸甲时: 给予 急迫 III / 伤害 +150%%$装配于护腿时: 移动速度d +50%% / 给予 跳跃提升 III$ (给予 急迫 III / 伤害e +150%%)$ (移动速度 +50%% / 给予 跳跃提升 III) +armorMod.mod.Shackles=我让你说话时,你才能说话.$我让你吃时,你才能吃.$我让你死时,你才能死.$∞ 条额外生命$ (∞ 条额外生命) +armorMod.mod.Tesla=电击附近的生物 (需要全套电动套装)$ (电击附近的生物) +armorMod.mod.TwoKick="我还有更糟的"$ (Shotgun punches) +armorMod.mod.V1=鲜血即是燃料$ (鲜血即是燃料) +armorMod.mod.WD40=-80%%对盔甲的耐久损耗度, +2 生命值$ (-80%% 对盔甲的耐久损耗度 / +2 生命值) +armorMod.type.boots=靴子配件 +armorMod.type.chestplate=胸甲配件 armorMod.type.cladding=覆层 armorMod.type.helmet=头盔 armorMod.type.insert=插板 @@ -205,11 +243,12 @@ book.error.page5=§l错误类型:§r "错误_错误区段" §l描述:§r 粒子 book.error.title6=错误 0x06 [分析室过长] book.error.page6=§l错误类型:§r "错误_分析室过长" §l描述:§r 粒子已通过三个以上所需的有效分析室段。 §l修复方式:§r 确保环形加速器的分析室长度正好为3个方块, 直线加速器的分析室长度至少为2个方块。 还要检查粒子是否未通过分支或 环形加速器中的多个分析室。 book.error.title7=错误 0x07 [分析室过短] -book.error.page7=§l错误类型:§r "错误_分析室过短" §l描述:§r 粒子已离开分析室,尽管不符合长度要求。 §l修复方式:§r 确保环形加速器上的分析室正好有3个方块长。 有效的分析段没有线圈,镀层完全由分析室壁/窗组成。 带有线圈的分析室被视为规则段。 -book.error.title8=错误 0x08 [二极管方向错误] -book.error.page8=§l错误类型:§r "错误_二极管方向错误" §l描述:§r 该粒子与肖特基粒子二极管的非输入侧碰撞。§l修复方式:§r 检查二极管的配置是否正确。 粒子只能从带有绿色向内箭头的侧面进入二极管。 -book.error.title9=错误 0x09 [多处分支] -book.error.page9=§l错误类型:§r "错误_多处分支" §l描述:§r 粒子到达具有多个出口的转弯处。§l修复方式:§r 如果你的对撞机是正常的,检查所有需要的线圈是否都存在(即线圈中没有缺漏)。如果转弯处打算进行分支,则需要正确放置的肖特基粒子二极管。 +book.error.page7=§l错误名称:§r "错误_分析室过短" §l说明:§r 粒子离开了分析室,尽管分析室不符合长度要求. §l解决方法:§r 确保环型加速器上的分析室正好有3格长. 有效的分析室部分没有线圈, 镀层完全由分析室壁/窗组成. 带有线圈的分析室会被视为普通加速部分. +book.error.title8=错误 0x08 [粒子与肖特基粒子二极管碰撞] +book.error.page8=§l错误名称:§r "错误_粒子与肖特基粒子二极管碰撞" §l说明:§r 该粒子与肖特基粒子二极管的非输入侧碰撞. §l解决方法:§r 检查二极管的方向配置是否正确. 粒子只能从带有绿色向内箭头的侧面进入二极管. +book.error.title9=错误 0x09 [转弯处分岔] +book.error.page9=§l错误名称:§r "错误_转弯处分岔" §l说明:§r 粒子已到达具有多个出口的转弯处. §l解决方法:§r 如果你的拐弯处是正常的, 检查所有需要的线圈是否都存在(即线圈层中没有孔). 如果转弯处打算进行分支, 则需要正确配置的肖特基粒子二极管. + book.rbmk.cover=$我的第一个$RBMK石墨式反应堆:$建造一个$反应堆$的基础知识 book.rbmk.title1=介绍 book.rbmk.page1=§lRBMK石墨式反应堆§r是一个完全模块化的核反应堆. 与大多数其他反应堆不同的是, 该反应堆没有"多方块结构核心"和尺寸上的限制, 而反应堆的性能和效率仅取决于你是如何建造它的, 以及各个组件如何相互作用. @@ -221,15 +260,15 @@ book.rbmk.title4=控制棒 book.rbmk.page4=反应堆中的 §l控制棒§r 将减少中子通过它的数量. 完全插入时, 它会阻挡所有中子; 当插入一半时, 它只会阻挡一半中子. 控制棒用于调节反应堆的活跃状态和使其关闭. book.rbmk.title5=控制棒 - 使用 book.rbmk.title5.scale=0.9 -book.rbmk.page5=当前控制棒插入的程度将显示在GUI的中心. 边的彩色按钮将把控制棒添加到不同的颜色组中, 这对于在 §lRBMK石墨式反应堆§r 控制台上快速选择屏幕上不同区域的控制棒非常有用. 右侧的按钮允许您以每次25%的增量手动插入. +book.rbmk.page5=当前控制棒插入的程度将显示在GUI的中心. 边的彩色按钮将把控制棒添加到不同的颜色组中, 这对于在 §lRBMK石墨式反应堆§r 控制台上快速选择屏幕上不同区域的控制棒非常有用. 右侧的按钮允许您以每次25%%的增量手动插入. book.rbmk.title6=自动控制棒 book.rbmk.page6=§L自动控制棒§r 与常规控制棒几乎相同, 但它们不能手动调整, 而是根据当前温度来调整控制棒插入的程度. 使用哪种功能, 在多少的温度插入多少的深度必须被事先设定好. book.rbmk.title7=蒸汽管道 book.rbmk.page7=反应堆中的 §l蒸汽管道§r 是唯一能有效降低反应堆热水平的组件. 如果一个蒸汽管道组件的沸点高于其设定的蒸汽类型的沸点, 那么它将试图消耗尽可能多的水 并产生尽可能多的蒸汽来冷却到沸点以下. book.rbmk.title8=碳化钨中子反射器 -book.rbmk.page8=反应堆中的 §l碳化钨中子反射器§r 将阻止中子的通过, 相反,中子将被反射回它们来自的燃料棒上. 这对于使用中子是有用的, 否则这些中子一旦离开反应堆就会被浪费掉. +book.rbmk.page8=反应堆中的 §l碳化钨中子反射器§r 将阻止中子的通过, 相反, 中子将被反射回它们来自的燃料棒上. 这对于使用中子是有用的, 否则这些中子一旦离开反应堆就会被浪费掉. book.rbmk.title9=硼中子吸收器 -book.rbmk.page9=§l硼中子吸收器§r 只是阻挡中子. 被吸收的中子不会产生热量,会被有效地吸收. 这有助于防止燃料棒发生过度反应从而超出临界值. +book.rbmk.page9=§l硼中子吸收器§r 只是阻挡中子. 被吸收的中子不会产生热量, 会被有效地吸收. 这有助于防止燃料棒发生过度反应从而超出临界值. book.rbmk.title10=石墨慢化剂 book.rbmk.page10=§l石墨慢化剂§r 把穿过它的快中子转换成慢中子. 大多数核燃料反应释放出快中子, 而引起裂变需要慢中子, 所以强烈建议使用慢化剂. book.rbmk.title11=结构柱 @@ -237,180 +276,164 @@ book.rbmk.page11=§l结构柱§r 对中子没有任何影响也没有任何特 book.rbmk.title12=控制台 book.rbmk.page12=§lRBMK石墨式反应堆控制台§r 允许你远程控制反应堆. 使用 §lRBMK石墨式反应堆连接装置记录反应堆§r 然后潜行右击控制台就能把反应堆和控制台连接起来. 一个控制台只能控制15x15个组件, 对于大型反应堆可以使用多个控制台. book.rbmk.title13=控制台的使用 -book.rbmk.page13=单击屏幕上的组件将选择或取消选择它们. 使用彩色按钮,可以快速选择该颜色组中的所有控制棒. 按钮“A”将选择所有控制棒, “X”将取消选择所有控制棒. +book.rbmk.page13=单击屏幕上的组件将选择或取消选择它们. 使用彩色按钮, 可以快速选择该颜色组中的所有控制棒. 按钮“A”将选择所有控制棒, “X”将取消选择所有控制棒. book.rbmk.page14=在绿色框中输入一个介于0和100之间的数字, 然后按下旁边的按钮, 将所有选定的控制棒拔出程度设置到该位置. 按钮“AZ-5”将使所有控制棒完全插入. book.rbmk.title15=核燃料 book.rbmk.page15= §l核燃料§r 的反应取决于许多因素. 主要是 §l核燃料强度§r, §l氙中毒程度§r 和接收到的 §l中子数量§r. 氙元素会在核燃料的中子含量较低时积聚起来, 并在正常运行时燃烧殆尽. 中子的效率取决于其类型, 大多数核燃料 §l用慢中子轰击来裂变效果最好§r. book.rbmk.title16=熔毁 book.rbmk.page16=§4§l尽量避免发生, 你不会想让这样一场核灾难发生在你的存档或服务器里的. -book.starter.cover=重建$社会的实业家$指南 + +book.starter.cover=重建工业社会的$一本实业家$的指南 book.starter.title1=介绍 -book.starter.page1=如果你正在读这篇文章,很可能社会已经因这样或 那样的方式完全崩溃了。政府、国家和权威是过去的概念, 以及文明生活的所有便利设施。因此,本指南将 告诉您如何通过重新创造过去的行业和技术 来改善自己的生活,从而改变这种状况。 -book.starter.title2=煤和芥子气 -book.starter.page2=虽然无法预测世界末日后的实际状态, 但目前形式的战争和工业不太可能没有结束。 为了保护自己的肺部,一种有效且廉价的方法是 在§L布§r上小便,制作一个§L防毒面具§r, 以使你免受煤尘或芥子气的伤害. -book.starter.title3=铁砧和锻压机 -book.starter.page3=开始工业振兴的精髓是§l砧§r和§l火力锻压机§r. 铁砧将允许您手动组合早期机械,如组装机, 而火力锻压机将允许您制作 无法用铁砧制作的板材、电线和电路. +book.starter.page1=如果你读到这篇文章, 那么很有可能社会已经以这样或那样的方式完全崩溃了. 政府,国家和权威已经是过去的概念——以及文明生活 的所有便利设施. 因此,本指南将告诉你如何通过重新创造过去的行业和 科学技术 来改善你自己的生活. +book.starter.title2=煤尘与芥子气 +book.starter.page2=虽然不可能预测世界在后世界末日时代的实际状态, 但目前形式的战争和工业活动不太可能没有结束. 为了保护自己的肺部, 一种有效且廉价的方法是在一些 §l布料§r上小便来制作一个 §l战壕版粗制防护面罩§r, 以保护你免受煤尘或芥子气的伤害, 以防你遇到其中任何一种情况. +book.starter.title3=砧与锻压机 +book.starter.page3=开始你的工业振兴的核心是一个§lE合前期的机械, 如组装机, 而火力锻压机将允许您制作无法用砧锤击在一起的板材, 金属线和电路. book.starter.title4=模板 -book.starter.page4=为了将金属冲压成有用的 形状、组装机械和执行 化学反应,您需要创建 一个§L机器模板文件夹§r, 以创建右侧显示的 各种锻模以及配方。 -book.starter.title5=废墟探索 -book.starter.page5=根据最初的世界末日事件对世界现有结构的影响程度, 有可能直接从中抢救出许多有用的材料和机器。 钢铁等金属合金、电路等部件,甚至核电站的 裂变材料都可能在等着你。 然而,要小心某些废墟,因为那里可能潜伏着过度的危险, 就像草丛中的蛇一样; 等待着用辐射、陷阱或无法形容的恐怖袭击你... +book.starter.page4=为了将金属冲压成有用的 形状,组装成机器并进行化 学反应,您需要创建一个 §l机器模板文件夹§r来制造右 侧显示的各种冲压和模板. +book.starter.title5=拾荒 +book.starter.page5=根据最初的世界末日事件对世界现有建筑的破坏程度, 你有可能直接从中回收许多有用的材料和机器. 钢铁等金属合金, 电路等零件, 甚至核电站的可裂变物质都可能在等着你. 然而, 要小心某些废墟, 因为那里可能潜伏着过度的危险, 就像草丛中的蛇一样; 等着用辐射, 陷阱或其他无法形容的恐怖袭击你... book.starter.title6=早期机械 -book.starter.page6a=您应首先装配的两台机器是§l高炉§r和§l装配机§r. 前者允许您制造合金,如§L钢§r、§l工业级铜§r和§l高级合金§r; 你需要将这些金属用于机器的机身、 电路的布线、高级电磁铁等. -book.starter.page6b=汇编程序将用于创建本指南中描述的几乎所有其他机器. 您需要一个电源,如§L火力§r§L发电机§r或§L太阳能锅炉§r. -book.starter.page7a=§l粉碎机§r以及一对粉碎机刀片将会非常有用, 能将大多数矿石粉碎成可熔炼的粉末,使其产量提高一倍. 这些粉末对于开始为各种机器制作电路也至关重要, 例如§l增强电路§r和§l超频电路§r。 -book.starter.page7b=使用您的新机器,您可以创建§L化工厂§r, 用于合成更好的电路、混凝土或进行石化产品加工等。 +book.starter.page6a=您应该首先组装的两台机器是§l高炉§r 和§l装配机§r. 前者将允许您制造合金, 如§l钢§r, §l紫铜§r, 和§l高级合金§r; 你需要将这些金属用于机器的机身, 电路的布线, 先进的电磁铁等等. +book.starter.page6b=装配机将用于制造本指南中描述的几乎所有其他机器. 您需要一个电源, 如§l火力§r§l发电机§r或§l太阳能锅炉§r. +book.starter.page7a=§l粉碎机§r以及一对粉碎机刀片将非常有用, 可以通过粉碎成可冶炼的粉末, 将大多数矿石的产量提高一倍. 这些粉末对于开始为合成各种机器而制造的电路 也至关重要,例如§l增强§r和§l超频§r电路. +book.starter.page7b=使用您的新机器, 您可以组装出§l化工装置§r, 用于合成更好的电路, 混凝土, 石化产品等. book.starter.title8=黑金 -book.starter.page8a=使用§l石油§l储层§r§l探测仪§r, 您可以通过测量一个区域 来发现地下的油岩以 放置§l石油钻机§r或 §l钻油塔§r来开采 记住,石油储备会随着时间 的推移而耗尽 +book.starter.page8a=使用§l石油§l储层§r§l探测仪§r, 您可以通过测量一个区域 来发现地下石油沉积物以 放置§l梁式抽油机§r或 §l石油钻井塔§r. 记住,石油储备会随着时间 的推移而耗尽. book.starter.page8b=在§l炼油厂§r中提炼和分离石油 成分之前,你必须在§l锅炉§r中将 石油加热至300°C. -book.starter.title9=石油化工产品 -book.starter.page9=使用§l化工厂§r, §l分馏§r§l塔§r和§l催化裂化§r§l塔§r, 你可以将分离出的油转化为各种有用的产品. §l催化裂化§r§l塔§r, 可以将分离出的油转化为各种有用的产品。 例如:§l聚合物§r或§l电木§r, 耐用又柔性的塑料; §lDesh§r, 一种非常耐用和耐热的稀土金属合金; §l固体燃料§r, 可燃烧获取能量; 甚至是§l液体燃料§r, 比如§l汽油§r, §l柴油§r, §l煤油§r等等。 -book.starter.title10=先进的机械 -book.starter.page10=通过一套成熟的石油加工系统,您可以制造§l离心机§r, 这将使矿石的产量增加三倍; §l矿物§l结晶机§r将 矿石结晶后,产量将进一步提高; 以及§lSILEX同位素激光分离室+§lFEL§r, 这两个现代工程的奇迹可以轻松地分离材料的同位素. 你需要更多的能量来驱动这些; 可通过§l柴油发电机§r,§l工业发电机§r, 甚至核反应堆等来源获取更多的能量。 -book.starter.title11=特殊地层 -book.starter.page11=在你行走的地面之下,有几个 自然形成的§l岩层§r,或者说特殊的 矿层和岩层。 §l片岩地层§r是蓝色的含锂层, 其中有铀、铁、铜、石棉和其他矿石 可供你使用。 §l深板岩层§r含有大量稀有矿物, 如§l锆§r、§l硼§r和§l朱砂§r等, 但你需要炸药才能采集 +book.starter.title9=石油化工 +book.starter.page9=使用§l化工厂§r, §l分馏§r§l塔§r和§l催化裂化§r§l塔§r, 你可以将分离出的油转化为各种有用的产品. §l催化裂化§r§l塔§r, 可以将分离出的油转化为各种有用的产品. 例如:§l聚合物§r或§l电木§r, 耐用又柔性的塑料; §l德什§r, 一种非常耐用和耐热的稀土金属合金; §l固体燃料§r, 可燃烧获取能量; 甚至是§l液体燃料§r, 比如§l汽油§r, §l柴油§r, §l煤油§r等等. +book.starter.title10=高级机械 +book.starter.page10=通过一套成熟的石油加工系统,您可以制造§l离心机§r, 这将使矿石的产量增加三倍; §l矿物§l结晶机§r将 矿石结晶后,产量将进一步提高; 以及§lSILEX同位素激光分离室+§lFEL§r, 这两个现代工程的奇迹可以轻松地分离材料的同位素. 你需要更多的能量来驱动这些; 可通过§l柴油发电机§r,§l工业发电机§r, 甚至核反应堆等来源获取更多的能量. +book.starter.title11=特殊岩层 +book.starter.page11=在你行走的地面之下,有几个自 然形成的§l岩层§r,或者说特殊的矿 层和岩层. §l片岩地层§r是蓝色的含锂层,填充 有铀,铁,铜,石棉和其他矿石可供 你自己使用. §l深板岩层§r含有大量稀有矿物, 如§l锆§r和§l硼§r,但 需要炸药才能采集. book.starter.title12=辐射 -book.starter.page12a=本书其余部分将讨论与辐射有关的问题。 为了您和他人的安全,我将提供一些建议以说明如何缓解和处理暴露于此的风险。 -book.starter.page12b=充分暴露在辐射中会导致身体伤害. 第一步是预防; 一定要限制接触,并穿戴防护装备,如§l防辐射套装§r, 或在衣服或盔甲上加装§l防辐射覆层/涂料§r; 你也可以服用§lRad-X防辐射药§r来限制你的辐射量. 多亏了现代医学,第二步可以在必要时移除; 例如,§l玩家§l去污器§r将缓慢减少身体吸收的辐射. §l消辐宁§r还可以用作暴露后预防,快速有效地逆转 电离辐射对身体造成的损害。 +book.starter.page12a=§o本书其余部分将讨论与§o辐射有关的问题. 为了您和其他人的安全,我将提供§o一些建议以说明如何缓解和处理暴露于此的风险.§r +book.starter.page12b=充分暴露在辐射中会导致身体伤害. 第一步是预防; 一定要限制接触,并穿戴防护装备,如§l防辐射套装§r, 或在衣服或盔甲上加装§l防辐射覆层/涂料§r; 你也可以服用§lRad-X防辐射药§r来限制你的辐射量. 多亏了现代医学,第二步可以在必要时移除; 例如,§l玩家§l去污器§r将缓慢减少身体吸收的辐射. §l消辐宁§r还可以用作暴露后预防,快速有效地逆转 电离辐射对身体造成的损害. book.starter.title13=铀浓缩 -book.starter.page13=核反应堆的燃料有几个简单的选择; 例如,§l天然铀§r或§l钍燃料§r。 然而, 如果你寻找更强力的东西,你可以设置两台§l气体离心机§r 的浓缩级联,用剩余的§l铀-238§r生产§l铀燃料§r. 你必须将天然铀转化为§l黄饼§r,然后是§l六氟化§l铀§r. +book.starter.page13=核反应堆的燃料有几个简单的选择; 例如,§l天然铀§r或§l钍燃料§r. 然而, 如果你寻找更强力的东西,你可以设置两台§l气体离心机§r 的浓缩级联,用剩余的§l铀-238§r生产§l铀燃料§r. 你必须将天然铀转化为§l黄饼§r,然后是§l六氟化§l铀§r. book.starter.title14=芝加哥反应堆 -book.starter.page14=或者,您可以使用§l芝加哥反应堆§r从天然铀中增殖出 §l反应堆级钚§r,这是一种更强大的燃料. 通过堆叠石墨块并在其中钻孔,您可以将燃料棒插入钚 和中子源棒,例如§l镭226-铍中子源§r,以开始反应. 确保测试你的设计;为防止过热, 可能需要隔开或限制石墨块的数量。 +book.starter.page14=或者,您可以使用§l芝加哥反应堆§r从天然铀中增殖出 §l反应堆级钚§r,这是一种更强大的燃料. 通过堆叠石墨块并在其中钻孔,您可以将燃料棒插入钚 和中子源棒,例如§l镭226-铍中子源§r,以开始反应. 确保测试你的设计;为防止过热, 可能需要隔开或限制石墨块的数量. book.starter.title15=ZIRNOX锆诺克斯 -book.starter.page15=最终,你可以制造你的第一个§o真正§r的能源来源: §lZIRNOX§r核反应堆. 与其他能量源相比,核反应堆需要更多的准备; 首先,你需要有一个强悍的水源,比如§l重型§l无限水罐§r. 要从反应堆堆芯中排出热量并将水煮沸成蒸汽, 你需要足够的§l二氧化碳§r. 你只需要足够的压力, 不要让压力§o太§r大! 你还需要三个蒸汽涡轮机来利用产生的蒸汽来制造能量; §l蒸汽§l轮机§r或§l大型工业§l汽轮机§r将是最佳的. 最后,需要一个§l冷凝器§r或§l冷却塔§r来将残余蒸汽冷凝成水, 在这个冷却回路中可以将其排空或回收。 +book.starter.page15=最终,你可以制造你的第一个§o真正§r的能源来源: §lZIRNOX§r核反应堆. 与其他能量源相比,核反应堆需要更多的准备; 首先,你需要有一个强悍的水源,比如§l重型§l无限水罐§r. 要从反应堆堆芯中排出热量并将水煮沸成蒸汽, 你需要足够的§l二氧化碳§r. 你只需要足够的压力, 不要让压力§o太§r大! 你还需要三个蒸汽涡轮机来利用产生的蒸汽来制造能量; §l蒸汽§l轮机§r或§l大型工业§l汽轮机§r将是最佳的. 最后,需要一个§l冷凝器§r或§l冷却塔§r来将残余蒸汽冷凝成水, 在这个冷却回路中可以将其排空或回收. book.starter.title16=结论 book.starter.page16=如果你已经走到了这一步,你已经走在重建文明大道上了. 你已经成功地用核能, 石油化工等重新制造了世界末日前的那些先进机器. 我不知道你将如何利用这些新发现的科技, 但我个人希望你利用这些优势是为了自己和他人的利益 - 或者至少是为了自卫. 再见! book.starter.title18=关于作者 -book.starter.page18=v?r只是一个被困在"传声头像"的§o《一生一次》§r中的 灰色虚空中太久的人. 有一次, 他发现了一扇工作室的门, 但令他沮丧的是, 他发现那是一个纸板剪出来的 -#book.rbmk.cover=HOW 2 RBMK:$The Basics$of Reactor$Construction -#book.rbmk.title1=Introduction -#book.rbmk.page1=The §lRBMK§r is a fully modular nuclear reactor. Unlike most other reactors, there is no "core", and no size limitations, rather, the behavior and efficiency of the reactor comes from how it is built and how the different pieces interact with each other. -#book.rbmk.title2=Heat -#book.rbmk.page2=As the reactor operates, it will generate §lheat§r. Heat will spread between parts, slowly decreasing in the process. The goal is to produce as much heat as possible without melting the reactor, and to move that heat to a §lsteam channel§r which cools the reactor and produces steam. -#book.rbmk.title3=Fuel Rod -#book.rbmk.page3=The §lfuel rod§r will capture neutron flux, causing the fuel inside the fuel rod to react, giving off neutrons in the process. Neutrons are released in all four cardinal directions with a maximum range of 5 blocks. The amount of neutrons released depends on the §lfuel§r used. -#book.rbmk.title4=Control Rod -#book.rbmk.page4=The §lcontrol rod§r will decrease the amount of neutrons passing though it. Fully inserted, it will block all neutrons, at half insertion, it will only block half. Control rods are used to regulate the reactor's activity and to turn it off. -#book.rbmk.title5=Control Rod - Usage -#book.rbmk.page5=The center of the GUI will display the current rod insertion. The colored buttons on the left will add a control rod to a color group, which is useful to quickly select grouped rods from the §lRBMK console§r. The buttons on the right allow for manual insertion in increments of 25%%. -#book.rbmk.title6=Automatic Control Rod -#book.rbmk.page6=§lAutomatic control rods§r function nearly identical to regular control rods, but they cannot be configured manually, instead they will adjust the rod position based on the current temperature. What function to use and how deep to insert at what temperature has to be defined first. -#book.rbmk.title7=Steam Channel -#book.rbmk.page7=The §lsteam channel§r is the only part that will actively reduce the reactor's heat level. If the component's temperature exceeds the boiling point of the set steam type, it will try to consume as much water and produce as much steam as needed to cool back below the boiling point. -#book.rbmk.title8=Neutron Reflector -#book.rbmk.page8=The §lneutron reflector§r will block neutrons from passing it, instead the neutrons will be reflected back at the fuel rod they came from. This is useful for utilizing neutrons that would otherwise be wasted by simply exiting the reactor. -#book.rbmk.title9=Neutron Absorber -#book.rbmk.page9=The §lneutron absorber§r will simply block neutrons. Neutrons absorbed will not generate heat and be effectively voided. This is useful to prevent fuel rods from reacting that would otherwise be in range. -#book.rbmk.title10=Graphite Moderator -#book.rbmk.page10=The §lgraphite moderator§r will convert fast neutrons passing through it into slow neutrons. Most fuels fission into fast neutrons while needing slow neutrons to split, so using moderators is strongly recommended. -#book.rbmk.title11=Structural Column -#book.rbmk.page11=The §lstructural column§r will not interfere with neutrons, nor does it have special uses. It is recommended to fill the reactor with structural columns where no other parts will be, because structural columns are capable of transporting heat. -#book.rbmk.title12=Console -#book.rbmk.page12=The §lRBMK console§r lets you control the reactor from afar. Using the §lRBMK§r §lconsole linking device§r on an RBMK part and then the console will link the reactor to the console. The console can only manage 15x15 parts, for larger reactors you might want to use multiple consoles. -#book.rbmk.title13=Console Usage -#book.rbmk.page13=Clicking on the parts will select and deselect them. Using the colored buttons, you can quickly select all control rods of that color group. Button 'A' will select all control rods, 'X' will deselect all. -#book.rbmk.page14=Entering a number 0-100 in the green box and then hitting the button next to it will set all selected control rods to this position. Button 'AZ-5' will cause all control rods to fully insert. -#book.rbmk.title15=Fuel -#book.rbmk.page15=The §lfuel§r's reactivity is based on multiple factors. The main ones are the §lenrichment§r, §lxenon poison§r and the amount of incoming §lneutrons§r. Xenon builds up when the fuel receives few neutrons and burns away during normal operation. The effectivity of neutrons depends on the type, most fuels §lsplit best with slow neutrons§r. -#book.rbmk.title16=Meltdown -#book.rbmk.page16=§4§lAvoid. -book_lore.author=由%s +book.starter.page18=vær只是一个被困在"传声头像"的§o《一生一次》§r中的 灰色虚空中太久的人. 有一次, 他发现了一扇工作室的门, 但令他沮丧的是, 他发现那是一个纸板剪出来的. + + +book_lore.author= %s 著 book_lore.test.name=测试 book_lore.test.author=那个家伙 -book_lore.test.page.0=>hello anons before i begin let me clarify that i'm not gay. >Be me >This night >18 > At hanging out with my best friend with my parents gone for a few days >We've been best friends for a year now >Been drinking a bit and playing lots of video games and ordered a pizza >We were having a blast >At a certain point in the night like around 9:00 he makes a really funny joke that I don't remember but I know that it made us both laugh really hard > With out thinking I brush my right hand through his semi-curly black hair and call him a funny boy >He blushes >I realize I'm feeling flustered >We're kinda close >All of the sudden he kisses me and for some reason I kiss him back >We make love >Cuddle together and fall asleep >Wake up in the middle of the night with his head snuggled up on my chest and neck area >It feels nice but I'm not a homosexual -book_lore.test.page.1=>你好,在我开始之前,让我澄清我不是同性恋。>做我>今天晚上>18>和我最好的朋友和我的父母出去玩了几天>我们已经是最好的朋友一年了>喝了点酒,玩了很多电子游戏,还点了一份披萨>我们玩得很开心>在晚上的某个时候,比如9点左右,他开了一个非常有趣的玩笑,我不记得了,但我知道这让我们俩都笑得很厉害>没有我想我用右手摸了摸他那半卷曲的黑发,然后叫他一个有趣的男孩>他脸红了>我意识到我很慌张>我们有点亲密>突然他吻了我,出于某种原因我又吻了他>我们做爱>拥抱在一起睡着了>半夜醒来时,他的头贴在我的胸部和颈部>感觉很好,但我不是同性恋 -book_lore.test.page.2=他在我怀里睡着时,我正在打字。我怎么才能让我最好的朋友失望呢?我不想成为[编辑]/b/ -book_lore.test.page.3=3 +book_lore.test.page.0=>在我开始之前,请允许我 澄清我不是同性恋. >做我 >今晚 >18点 >趁我的父母走了几天,和我最好 的朋友一起出去玩 >我们已经是一年的好朋友了 >喝了点酒,玩了很多电子游戏, 还点了一个比萨饼 >我们玩得很开心 >在晚上的某个时刻,比如9点 左右,他开了一个非常有趣的 玩笑,我不记得了, 但我知道这让我们都笑得很开心 > 我不假思索地用右手 +book_lore.test.page.1=拂过他半卷曲的黑发, 说他真是一个有趣的男孩 >他脸红了 >我意识到我很慌乱 >我们有点太亲近了 >突然他吻了我,出于某种原因 我回吻了他 >我们做爱了 >拥抱在一起睡着了 >半夜醒来,他的头紧贴在我的 胸口和脖子上 >这感觉很好, 但我仍是个钢铁直男 +book_lore.test.page.2=我在他在我怀里睡着的时候 写了这个. 我怎么能让我最好的 朋友失望呢? 我可不想成为一个 [弱智] /b/ +book_lore.test.page.3=4 book_lore.test.page.4=4 + book_lore.book_iodine.name=笔记 book_lore.book_iodine.author=戴夫 -book_lore.book_iodine.page.0=alright you will not believe this, but old man weathervane finally managed to show up again since he left two weeks ago and what's more surprising is the fact that he actually decided to spill the beans on what they were doing in the canyon: -book_lore.book_iodine.page.1=alright you will not believe this, but old man weathervane finally managed to show up again since he left two weeks ago and what's more surprising is the fact that he actually decided to spill the beans on what they were doing in the canyon: -book_lore.book_iodine.page.2=apparently the morons from R&D discovered a compound that is mostly inorganic, pretty much like a toxin in nature, but get this: the dying cells will reproduce said toxin and excrete it through the skin, creating an aerosol that is highly contagious. +book_lore.book_iodine.page.0=好吧,你不会相信的, 但自从两周前离开后,这位老人终于再次出现了。更令人惊讶的是,他竟然决定把他们在峡谷里的所作所为泄露出去: +book_lore.book_iodine.page.1=显然,研发部门的白痴们发现了一种主要是无机的化合物, 很像自然界中的毒素, 但要记住:濒死的细胞会繁殖毒素并通过皮肤排出, 产生一种具有高度传染性的气溶胶. +book_lore.book_iodine.page.2=就像病毒一样, 但不是病毒. 它的成分很奇怪, 你可以把它放在任何家用瓶子里,但你必须把顺序弄对. 博士告诉我第一种成分是粉末状的碘晶体,要放进槽 %d + book_lore.book_phosphorous.name=笔记 book_lore.book_phosphorous.author=戴夫 -book_lore.book_phosphorous.page.0=heyo, it's me again. i assume you got my last memo, the doc wasn't too happy about it. i'll have to do this quick, the dunderheads from R&D are currently moaning again, probably over money. again. anyway, doc weathervane found that the second -book_lore.book_phosphorous.page.1=heyo, it's me again. i assume you got my last memo, the doc wasn't too happy about it. i'll have to do this quick, the dunderheads from R&D are currently moaning again, probably over money. again. anyway, doc weathervane found that the second +book_lore.book_phosphorous.page.0=嘿,又是我. 我想你收到了我最后的备忘录,博士对此不太高兴. 我得动作快点, 研发部门的笨蛋们现在又在抱怨了, 可能是因为钱, 又一次. 无论如何, 风向标博士发现第二种 +book_lore.book_phosphorous.page.1=成分是红磷, 必须将其混入 %d槽中 + book_lore.book_dust.name=笔记 book_lore.book_dust.author=戴夫 -book_lore.book_dust.page.0=the doc was furious when he found out that the R&D dorks kept the one remaining sample, ranting about gross negligence this and a doomsday scenario that. i told him to chill for a minute, getting all worked up isn't good for his blood pressure, not -book_lore.book_dust.page.1=the doc was furious when he found out that the R&D dorks kept the one remaining sample, ranting about gross negligence this and a doomsday scenario that. i told him to chill for a minute, getting all worked up isn't good for his blood pressure, not -book_lore.book_dust.page.2=that he has much blood left to begin with. one of the R&D morons slipped some more info into last week's circular, they call their little concoction \"MKU\" whatever that means, and that it contains actual household lint. can you believe that? one of the most +book_lore.book_dust.page.0=当博士发现研发人员保留了剩下的一个样本时,他大发雷霆, 大喊大叫说这是严重的疏忽,简直是世界末日的剧本. 我告诉他冷静一分钟, 紧张起来对他的血压没有好处, 并 +book_lore.book_dust.page.1=不是说他还剩下很多血. 一个研发部的白痴在上周的通告中透露了更多信息, 他们称他们那宝贝混合物 \"MKU\" ,鬼知道这是啥意思, 它含有货真价实的家用棉绒. 你能相信吗? 这是他们 +book_lore.book_dust.page.2=最危险的发明之一而它含有灰尘. 奇怪的是,他们还提到它会进入槽 %d + book_lore.book_mercury.name=笔记 book_lore.book_mercury.author=戴夫 -book_lore.book_mercury.page.0=well that settles that. not counting the vomitting blood part, the toxicological report mostly resembles that of mercury poisoning. why? because our little mix also contains mercury! i just wonder where all that stuff comes from when being -book_lore.book_mercury.page.1=well that settles that. not counting the vomitting blood part, the toxicological report mostly resembles that of mercury poisoning. why? because our little mix also contains mercury! i just wonder where all that stuff comes from when being +book_lore.book_mercury.page.0=好吧,这就说得通了. 不包括呕吐的血液部分, 毒理学报告表明其主要类似于汞中毒. 为什么? 因为我们的小混合物也含有汞! 我只是想知道当这些东西 +book_lore.book_mercury.page.1=被身体复制时,它们从哪来? 不管怎样,水银要进入槽 %d + book_lore.book_flower.name=笔记 book_lore.book_flower.author=戴夫 -book_lore.book_flower.page.0=remember when i mentioned in my first memo that the compound is mostly anorganic? well guess what, the old man shared the fourth ingredient: ipomoea nil, a genus of flower. morning glory! it might be due to its low sulfur content, whatever might be the case, -book_lore.book_flower.page.1=remember when i mentioned in my first memo that the compound is mostly anorganic? well guess what, the old man shared the fourth ingredient: ipomoea nil, a genus of flower. morning glory! it might be due to its low sulfur content, whatever might be the case, +book_lore.book_flower.page.0=还记得我在第一份备忘录中提到的化合物大多是无机的吗? 好吧,你猜怎么着, 那个老家伙分享了第四种配料: 牵牛花, 花的一属. 就是喇叭花! 可能是因为它的硫含量低, 不管是什么情况, +book_lore.book_flower.page.1=其他花就是不起作用. 牵牛花要放入槽 %d + book_lore.book_syringe.name=笔记 book_lore.book_syringe.author=戴夫 -book_lore.book_syringe.page.0=a little addendum to my fifth message, obviously you have to store this MKU stuff in a container. the R&D nuts used regular metal syringes that they got from medical. surplus ware i presume, they got thousands of needles just lying around. the metal -book_lore.book_syringe.page.1=a little addendum to my fifth message, obviously you have to store this MKU stuff in a container. the R&D nuts used regular metal syringes that they got from medical. surplus ware i presume, they got thousands of needles just lying around. the metal +book_lore.book_syringe.page.0=我第五条留言的一个小附录, 显然你必须把这些叫MKU的东西放在一个容器里. 研发人员使用的是从医疗机构购买的普通金属注射器. 我猜是多余的, 他们有成千上万的针头. +book_lore.book_syringe.page.1=金属注射器要放入槽 %d + book_lore.resignation_note.name=辞职信 book_lore.resignation_note.author=科斯马 -book_lore.resignation_note.page.0=Management downsized our department again yesterday. Those idiots only have themselves to blame, I don't know what they were expecting after that fiasco. Who the hell leaks that sort of information? We're losing millions and -book_lore.resignation_note.page.1=管理层昨天又对我们的部门进行裁员了。那群白痴要怪只能怪他们自己,我都不知道他们在那场惨败后还在期待什么。到底是谁他妈泄露了那种程度的信息? -book_lore.resignation_note.page.2=我们损失了几百万,而且现在失业的还是爷。老子希望你们这帮混蛋最后能从你们的一堆问题中学到点教训然后给爷滚去自闭。 -book_lore.memo_stocks.name=公司内部备忘录 -book_lore.memo_stocks.page.0=投资者关系 - $ $ 最新季度报告提供的数据存在一些明显差异。财务部门做出一些调整是谨慎的,所以不必有任何担忧。 +book_lore.resignation_note.page.0=管理层昨天又缩减了我们的 部门.那帮白痴只能怪自己, 我不知道他们在那场惨败后 还在期待什么. 到底是谁泄露了这种信息? 我们损失了数百万 +book_lore.resignation_note.page.1=现在老子失业了. 我是那个被要求辞职的人. 我希望你们这帮混蛋们终于 从自己的错误中吸取点教训, 把那根棍子从屁股里拿出来. +book_lore.resignation_note.page.2=我星期五不会回来的. 发工资就行了. + +book_lore.memo_stocks.name=内部备忘录 +book_lore.memo_stocks.page.0=投资者关系部 - $ $ 最新季度报告中提供的数据 存在一些明显的差异. 让财务部门进行一些调整是 谨慎的做法, 所以不用有任何顾虑. + book_lore.memo_schrab_gsa.name=内部备忘录 -book_lore.memo_schrab_gsa.page.0=Contract Management - $ $ Legal has made a breakthrough with the DLA. They've awarded us with a 45 BILLION GSA Schedule for further procurement and research of saralloy. At current estimates, that would be at minimum -book_lore.memo_schrab_gsa.page.1=合同管理记录 - 法务部在与美国国防部后勤局的谈判中取得了突破。他们批准了450亿的联邦采购服务总署投资资金用于异变金属的采购与研究。 +book_lore.memo_schrab_gsa.page.0=合同管理部 - $ $ 法律部与DLA取得了突破. 他们授予我们450亿GSA计划, 用于进一步采购和研究saralloy. 根据目前的估计 +book_lore.memo_schrab_gsa.page.1=相关业务的利润至少为 40%%, 更不用说未来合同的可能性了. 由于保密性质,所有财务证据 都应保密. + book_lore.memo_schrab_rd.name=内部备忘录 -book_lore.memo_schrab_rd.page.0=Research & Development - $ $ Our main production method of saralloy has been through the new particle accelerator. However, the energy costs are exorbitantly high compared to the amount of output. -book_lore.memo_schrab_rd.page.1=研发 - 目前我们主要生产方法是使用新型粒子加速器。然而,与产出量相比,能源成本高得惊人。 -book_lore.memo_schrab_rd.page.2=然而,Schrabauer博士发现了一种全新的相互作用——暂称为“奇异轻子振荡”——该作用可以显著降低生产成本。通过一个目前未被完全理解的的过程,提供的电子被一种奇特的“魔力”转化为极高能量的光子。 -book_lore.memo_schrab_rd.page.3=这是许多已明确的粒子转换定律的极端例外。但初步实验证明,这些质子先转变为上下夸克,最终形成了异变金属。奇怪的是,原型机中需要钨与少量异变金属合金化所得到的合金。 +book_lore.memo_schrab_rd.page.0=研究与开发部 - $ $ 我们生产saralloy的主要方法是 使用新型粒子加速器. 然而, 与产量相比,能源成本过高. +book_lore.memo_schrab_rd.page.1=然而,Schrabauer博士发现 了一种新的相互作用, 称为 "奇异轻子振荡",可以 显著降低成本. 通过一个不完 全被理解的过程, 所提供的电 子通过一种 +book_lore.memo_schrab_rd.page.2=奇特的作用被转化为极高能 量的光子. 这是许多既定粒子 转化定律的极端例外, 但初步 实验证明,这些质子转变为 上下夸克,最终形成了 saralloy. +book_lore.memo_schrab_rd.page.3=奇怪的是,原型需要钨合金 和少量的 saralloy. 此外, 需要一个特殊的电容器来 抵消剩余的正电荷. + book_lore.memo_schrab_nuke.name=研究报告 book_lore.memo_schrab_nuke.author=Schrabauer博士 -book_lore.memo_schrab_nuke.page.0=Our most recent investigation led us to the effects of nuclear explosions on materials. Thanks to our grant money, we *accidentally* tested our theory on direct saralloy synthesis from uranium. -book_lore.memo_schrab_nuke.page.1=最近的调查使我们了解了核爆炸对材料造成的影响。多亏外界给我们的赠款,我们*意外地*测试了铀直接合成异变金属的理论。 -book_lore.memo_schrab_nuke.page.2=而此前我们只在回旋加速器中制作出异变金属。但这次,我们在对Everwerpen的地下拍摄中,在该地点的铀矿石中发现了微量的异变金属。其附近所有的纯金属铀则都发生了裂变。 +book_lore.memo_schrab_nuke.page.0=我们最近的调查使我们了 解了核爆炸对材料的影响. 感谢给我们的赠款, 我们 *意外地* 测试了 我们从铀直接合成 saralloy的理论. +book_lore.memo_schrab_nuke.page.1=以前只有我们的回旋加速 器真正创造了saralloy. 然而,在我们在埃弗沃彭 的地下拍摄中,在现场的 铀矿中发现了微量的saralloy. 附近所有纯金属铀都发生了 裂变. +book_lore.memo_schrab_nuke.page.2=因此,如果有足够多的铀 矿石集中在炸药周围, 甚至可能是一枚富含可裂 变材料的脏弹,人们可以 理论上制造出足够多的 saralloy来人工收集. + book_lore.bf_bomb_1.name=私人笔记 book_lore.bf_bomb_1.author=M. 波特 -book_lore.bf_bomb_1.page.0=Took long enough, but my transfer was accepted. Those new grads were already hard to handle, let alone all the unprofessionalism of the lead. $ Not all good news - this lab was withholding further detail, and I didn't need more chaos over another magic new discovery. -book_lore.bf_bomb_1.page.1=Of course that was the case. The alumni had their doubts (surprising, considering how bright-eyed they were), but my only... competent? colleague actually got his hands on the primer hand-out. Must have more connections than I thought. His memo is discouraging: -book_lore.bf_bomb_1.page.2=apparently, there's yet ANOTHER miracle material that they prodded out of some concoction of antimatter and a fringe isotope. The brochure calls it "SWIRLMAT" - hell if I know - and that's it. No wonder they wanted a theoretical physicist, -book_lore.bf_bomb_1.page.3=they don't even know what it is yet. Either way, practically any job would be better than my old position, so I can't complain much about sketchiness. +book_lore.bf_bomb_1.page.0=花了足够长的时间, 但我的转会被接受了. 那些应届毕业生已经很难应付了, 更不用说那些不专业的领导了. $ 这还不是所有的好消息 - 这个实验室隐瞒了更多的细节, 我不需要在另一个神奇的新发现上碰到更多的混乱. +book_lore.bf_bomb_1.page.1=当然是这样. 毕业生们有他们的疑虑 (考虑到他们的眼睛多么纯真,真是令人惊讶), 但我唯一... 有能力的? 同事实际上拿到了项目介绍资料. 一定比我想象的有更多的关系. 他的备忘录令人沮丧: +book_lore.bf_bomb_1.page.2=显然, 他们从反物质和边缘同位素的混合物中又发现了 另 一 种 神奇的物质. 小册子上称之为 "SWIRLMAT" - 鬼知道是啥 - 就这样. 难怪他们想要一个理论物理学家, +book_lore.bf_bomb_1.page.3=他们甚至还不知道它是什么. 不管怎样, 实际上任何一份工作都会比我以前的职位好, 我不能对这些粗糙之处抱怨太多. + book_lore.bf_bomb_2.name=私人笔记 book_lore.bf_bomb_2.author=M. 波特 -book_lore.bf_bomb_2.page.0=Despite the absence of information in that primer, I still had some hope they knew a bit more. Not at all. Every other senior researcher has a blind faith in this material; their propositions were practically biblical. I was near speechless. -book_lore.bf_bomb_2.page.1=And yet I can't even blame them. Swirlmat makes no goddamn sense - it is completely unlike any other substance I've seen before. Its appearance was near frightening, a literal mass of swirling colors, with darker lines permeating through the neon green surface. -book_lore.bf_bomb_2.page.2=Even worse, this thing is an energy source. The existence of our sample is a violation of ALARA: the lab was vacated when it arrived, and the only person brave enough (one Dr. Melfyn) donned a level A hazmat just to carry it 20 meters. -book_lore.bf_bomb_2.page.3=The empirical data isn't better, as we're breaking the first law of thermodynamics with how much energy it radiates. Being anywhere near that thing - even behind a meter of lead - was terrifying. We sprinted out of the chamber upon conclusion of the spectroscopy -book_lore.bf_bomb_2.page.4=and we got nothing new out of it. Those idiots in the science team, god, did not even waver after all that. Sitting through those "discussions" was horrible; that quack of a head researcher even rumored that the test ban would be lifted, that we could be -book_lore.bf_bomb_2.page.5=building bombs out of the shit in the coming weeks, who in their right mind would work on that? Hell, the one sane assistant (an Andrew) nicknamed it "balefire" - because burning to death on a funeral pyre would be painless by comparison. - - +book_lore.bf_bomb_2.page.0=尽管项目介绍资料中缺乏信息, 但我仍抱着他们或许了解更多的希望. 完全相反! 每一位老研究员都对这种材料抱有盲目的信念; 他们的主张跟圣经似的. 我几乎无言以对. +book_lore.bf_bomb_2.page.1=但我甚至不能责怪他们. Swirlmat 完全不合常理 - 它与我以前见过的任何其他物质都完全不同. 它的外观几乎令人恐惧, 一团漩涡般的色彩, 深色的线条渗透到霓虹绿的表面. +book_lore.bf_bomb_2.page.2=更糟糕的是, 这个东西是一种能量源. 我们的样本的存在违反了ALARA合理最低剂量原则: 实验室在它到达时被清场了, 唯一一个足够勇敢的人 (Dr. Melfyn) 穿着a级危险防护服,只为了把它抬20米. +book_lore.bf_bomb_2.page.3=经验数据也好不到哪里去, 为我们正在用它辐射的能量打破热力学第一定律. 在那东西附近的任何地方 - 甚至是一米厚的铅后面 - 都是可怕的. 光谱分析结束后,我们迅速跑出了房间 +book_lore.bf_bomb_2.page.4=而且我们并没有从中得到什么新的东西. 科学团队中的那些白痴, 天啊, 在这一切之后甚至没有产生一丝动摇. 坐在那里进行这些"讨论" 可怕的; 首席研究员中的一位半吊子甚至扬言说测试禁令将被取消, 这样我们就可能 +book_lore.bf_bomb_2.page.5=在未来几周内用这鬼玩意制造出炸弹, 哪个脑袋正常的人会去干这事? 真见鬼, 一个理智的助手 (Andrew) 给它起了个绰号"balefire" - 因为相比之下,在火葬柴堆上烧死更好受. + book_lore.bf_bomb_3.name=私人笔记 book_lore.bf_bomb_3.author=M. 波特 -book_lore.bf_bomb_3.page.0=The team and I have made some breakthroughs. Emphasis on the separation - isolating myself from the more devout has made working there so much more bearable. While we still have no idea about the actual properties of balefire (it's difficult to analyze -book_lore.bf_bomb_3.page.1=a sample that fries your equipment) its interactions with other matter has proved fruitful. Notably, they synthesized a "gaseous" form: Andrew, of all people, informed me that it was really a colloid consisting of microscopic balefire particles, suspended in some -book_lore.bf_bomb_3.page.2=noble gas. Each particle is enveloped by a positively-charged 'bubble' of ionized gas, preventing it from settling. Who could've guessed that fatal gamma radiation had a benefit? Not me. $ I'm choosing not to think about how they transformed the sample into -book_lore.bf_bomb_3.page.3=particulate, but I can't understate the utility of this gaseous balefire - it's made it much safer to experiment on. $ Speaking of safety, the head researcher (in an act of callous disregard) made a discovery that also nearly took his head off. - - -book_lore.bf_bomb_3.page.4=He decided to get "dirty" by letting a cell of our new colloid interact directly with some very expensive antimatter: the resulting explosion turned the table it was on into a piece of radiation-bleached slag, carved a near-perfect hemisphere through -book_lore.bf_bomb_3.page.5=the top, and gave the head a healthy dose of ARS. I guess we know how to make it explode now, but god, some people... +book_lore.bf_bomb_3.page.0=我和团队取得了一些突破. 主要是靠分离 - 将我自己与那些神经兮兮的人隔离开来让在这里工作变得更容易忍受. 虽然我们仍然不知道balefire的实际性质 (很难分析会 +book_lore.bf_bomb_3.page.1=炸烂设备的样品) 但事实证明它与其他物质的相互作用是富有成效的. 值得注意的是, 他们合成了一种"气态" 形式: 在所有人中, Andrew, 告诉我,这实际上是一种胶体, 由悬浮在某种惰性气体中的微小balefire颗粒组成 +book_lore.bf_bomb_3.page.2=每个粒子都充满被带正电的电离气体的'气泡'包裹, 阻止其沉降. 谁能想到致命的伽马射线有好处? 反正不是我. $ 我选择不去想他们是如何将样本转化为颗粒的 +book_lore.bf_bomb_3.page.3=, 但我不能低估这种气态balefire的效用 - 它使实验更加安全. $ 说到安全, 首席研究员 (以一种无视安全的行为) 做出了一个几乎让他大吃一惊的发现. +book_lore.bf_bomb_3.page.4=他决定让我们新胶体的一个细胞与一些非常昂贵的反物质直接相互作用来“推进”实验: 由此产生的爆炸将它所在的桌子变成了一块辐射漂白的渣子, 在顶部雕刻出一个近乎完美的半球 +book_lore.bf_bomb_3.page.5=, 并给予头部健康剂量的ARS. 我想我们现在知道如何让它爆炸了, 但天哪, 有些人... + book_lore.bf_bomb_4.name=私人笔记 book_lore.bf_bomb_4.author=M. 波特 -book_lore.bf_bomb_4.page.0=I just can't escape my old work. They're the only place that's hiring despite all this godforsaken turmoil, but I'm not going back into that hole. $ They only tempted me because I need out, fast. Remember that atmospheric testing treaty we withdrew from a week ago? -book_lore.bf_bomb_4.page.1=Well, the dipshit in charge of our lab got something right for once. The denunciation came with a flurry of new "scientists" joining, just so we could weaponize balefire. The lack of critical thought here is honestly baffling - bless him, Andrew even jumped ship the -book_lore.bf_bomb_4.page.2=second the first fucking BOMB DESIGN was drafted. That ass Melfyn looked so happy with his little mechanism - perhaps he got brainworms from carrying that sample? - which involved some stupid shit using the solidified, base balefire and an HV -book_lore.bf_bomb_4.page.3=battery. $ Apparently, the form matters for energy output and activation method or whatever, kind of like uranium versus plutonium in regular nukes, but the end result is an initial shock starting the explosion. I find it funny, hilarious even. -book_lore.bf_bomb_4.page.4=All of them place such emphasis on the activation; they ignore the actual mechanism of it all because they don't have a single clue how it works! It may as well be magic at this point, and yet they're still trying to twist and bend it - just for more weapons of war. +book_lore.bf_bomb_4.page.0=我就是逃避不了以前的工作. 他们是唯一一个在经历了这场混乱之后仍在招聘的地方, 但我不会再回到那个坑里了. $ 他们只是诱惑我,因为我需要出去,要很快出去. 还记得我们一周前退出的大气试验条约吗? +book_lore.bf_bomb_4.page.1=好吧, 我们实验室的负责人这一次做对了. 谴责随着一批新的 "科学家"的加入而来, 只是为了让我们可以将balefire武器化. 这里缺乏批判性思维确实令人困惑 - 祝福他,安德鲁甚至在第一个该死的 +book_lore.bf_bomb_4.page.2=炸 弹 设 计 起草的第二天就跳槽了. 那个混蛋Melfyn看起来对他的那些小玩意很满意 - 也许他携带样本时脑子里进了啥东西? - 其中包括一些愚蠢的垃圾,使用固化的 +book_lore.bf_bomb_4.page.3=基础balefire和高压电池. $ 显然,这种形式对能量输出和激活方法或其他什么都很重要, 有点像常规核武器中的铀与钚, 但最终结果是引发爆炸的初始冲击. 我觉得它很有趣, 甚至很搞笑. +book_lore.bf_bomb_4.page.4=所有这些都强调激活; 他们忽略了这一切的实际机制,因为他们根本不知道它是如何工作的! 在这一点上,这可能很神奇, 但他们仍在试图扭转和弯曲它 - 只是为了获得更多的战争武器. + book_lore.bf_bomb_5.name=私人笔记 book_lore.bf_bomb_5.author=M. 波特 -book_lore.bf_bomb_5.page.0=I just... can't come to grips with it, even days after. It was a foregone conclusion, really, with how flippant the science team was with safety. $ $ Doctor Melfyn, M.S., is gone. Dead, maybe. I saw it happen before my own eyes, in their test chamber. -book_lore.bf_bomb_5.page.1=We had just gotten another batch of pure balefire, and he had recovered electrical equipment and an energy source to test his proposal. I don't know what caused it (was the power on? had he begun too soon?), but it seemingly progressed in agonizingly slow motion, -book_lore.bf_bomb_5.page.2=as the green-tinted light consumed the table, the battery, and Dr. Melfyn standing only a meter away. Even when the table had degraded into a pool of broiling metal on the floor, he did not burn. I don't know what I saw in his eyes... $ $ Terror, or awe -book_lore.bf_bomb_5.page.3=over his continued survival, maybe? Whatever our "miracle" material was, it didn't care. With a bright blaze of light, he disappeared in the next moment. Was he evaporated? incinerated? annihilated? sent to fucking hell itself, I don't know anymore! -book_lore.bf_bomb_5.page.4=The head researcher sickens me. Said we could be more careful, keep trucking, whatever other morale-improving filth he spewed. That dipshit won't ever figure out that playing with fire will get you burned. $ I didn't bother -book_lore.bf_bomb_5.page.5=resigning, I just grabbed my shit and ran for the hills. Not like it matters, anyway; considering the lack of calls, and the mushroom cloud that rose over my (now former) workplace, they've either blown everything up or entered full-on military jurisdiction. -book_lore.bf_bomb_5.page.6=There's a vital distinction to be made between dissection and VIVISECTION, one which was clearly lost on them. They can dissect metal or atoms as much as they like, but tearing into, vivisecting reality itself is only going to end in more Dr. Melfyns. Who knows! -book_lore.bf_bomb_5.page.7=The government wants to put this shit into bombs after all, maybe we'll see a couple more wars, couple more million resigned to a fate worse than death. They can't hide this forever. $ $ I don't care. Not anymore. Please, god, let me go back -book_lore.bf_bomb_5.page.8=to actual science. $ $ Goddamnit, Mae, get ahold of yourself... +book_lore.bf_bomb_5.page.0=我只是... 即使几天后也无法应对. 事实上, 科学团队对安全问题的轻率态度已成定局. $ $ Doctor Melfyn, M.S., 不在了. 也许死了. 我亲眼目睹了这一切, 在他们的试验室里. +book_lore.bf_bomb_5.page.1=我们刚刚得到了另一批纯balefire, 他已经找到了电气设备和能源来测试他的提议. 我不知道是什么原因造成的 (电源开了? 他开始得太早了?), 但它似乎以令人痛苦的慢动作进行, +book_lore.bf_bomb_5.page.2=绿色的光芒吞噬了桌子, 电池, Dr. Melfyn就站在一米外. 即使桌子已经化成地板上的一池灼热的金属, 他也没有被烧伤. 不知道我从他的眼睛里看到了什么... $ $ 也许是对他继续生存 +book_lore.bf_bomb_5.page.3=的恐惧,或者敬畏? 不管我们的“奇迹”材料是什么, 它都不在乎. 随着一道明亮的光, 他在下一刻消失了. 他蒸发了吗? 烧成灰烬了? 完全湮灭了? 被送进他妈的地狱了? 我再也不会知道了! +book_lore.bf_bomb_5.page.4=首席研究员让我恶心. 他说我们可以更加小心, 继续用卡车运输, 或者其他什么能提高士气的屁话. 那个混蛋永远不会明白玩火终会自焚. $ 我没有辞职 +book_lore.bf_bomb_5.page.5=, 我只是抓起我的那点破烂往山上跑. 无论如何,现在这些都不重要了; 考虑到没有电话, 加上我 (现在是以前的了) 工作场所上空升起的蘑菇云, 他们要么炸毁了一切要么完全进入了军事管辖模式. +book_lore.bf_bomb_5.page.6=解剖和 活 体 解 剖 之间有一个重要的区别, 这一点在他们身上显然已经消失了. 们可以随心所欲地解剖金属或原子, 但撕裂、活体解剖现实本身只会以更多的Dr. Melfyns而告终. 谁知道呢! +book_lore.bf_bomb_5.page.7=毕竟政府想把这些玩意装进炸弹里, 也许我们会看到更多的战争, 数百万人听天由命. 他们不能永远隐瞒这件事. $ $ 我不在乎. 再也不了. 求你了, 上帝, 让我回到 +book_lore.bf_bomb_5.page.8=实际的科学上来. $ $ 妈的, Mae, 保持冷静... + book_lore.beacon.name=信号信标说明书 book_lore.beacon.author=Flim Flam工业 book_lore.beacon.page.0=感谢您购买Mk.2照明信号信标(版本1.3)!这本小册子将简要介绍信标的操作及其内部工作原理。 @@ -594,10 +617,11 @@ commands.satellite.not_a_satellite=持有的物品不是卫星! commands.satellite.satellite_descended=卫星成功降落。 commands.satellite.satellite_orbited=卫星发射。 commands.satellite.should_be_run_as_player=此命令应该由玩家运行! -container.amsBase=AMS基座(装饰) -container.amsEmitter=AMS发射极(装饰) -container.amsLimiter=AMS稳能器(装饰) -container.anvil=砧 + +container.amsBase=AMS基座 [装饰] +container.amsEmitter=AMS激发装置 [装饰] +container.amsLimiter=AMS稳定力场发生装置 [装饰] +container.anvil=%s 级砧 container.arcFurnace=电弧炉 container.armorTable=装甲改装台 container.ashpit=储灰槽 @@ -659,9 +683,10 @@ container.heaterOven=加热炉 container.iGenerator=工业发电机 container.keyForge=锁匠桌 container.launchPad=导弹发射台 -container.launchTable=大型发射台 -container.leadBox=安全盒 -container.machineBoiler=锅炉 +container.launchTable=大型导弹发射台 +container.leadBox=安全箱 +container.machineArcWelder=弧焊机 +container.machineBoiler=原油加热器 container.machineCMB=CMB炼钢炉 container.machineCoal=火力发电机 container.machineCoker=焦化装置 @@ -681,9 +706,9 @@ container.machineShredder=粉碎机 container.machineSILEX=激光同位素分离室 container.machineSolidifier=固化机 container.machineTurbine=汽轮机 -container.machineTurbofan=涡扇发动机 -container.machine_schrabidium_transmutator=Sa326嬗变装置 -container.massStorage=存储 +container.machineTurbofan=涡扇发电机 +container.machine_schrabidium_transmutator=Sa326异变铀金属嬗变装置 +container.massStorage=存储器 container.microwave=微波炉 container.miningDrill=自动采矿钻机 container.miningLaser=采矿激光 @@ -765,97 +790,100 @@ crucible.hematite=赤铁矿炼铁 crucible.hss=高速钢生产 crucible.malachite=孔雀石炼铜 crucible.redcopper=紫铜生产 -crucible.steel=钢铁生产 -crucible.steelMeteoric=陨铁炼钢 -crucible.steelPig=生铁炼钢 -crucible.steelWrought=锻铁炼钢 -crucible.tcalloy=锝钢合金生产 -death.attack.acid=%1$s 掉进了酸里 -death.attack.acidPlayer=%1$s 被 %2$s 溶解 -death.attack.ams=%1$s 沐浴在尚未被人类科学命名的致命粒子中 -death.attack.amsCore=%1$s 在奇点之火中蒸发 -death.attack.asbestos=%1$s现在有权获得经济补偿 -death.attack.bang=%1$s 被炸成小块碎片 -death.attack.blackhole=%1$s 粉身碎骨 -death.attack.blender=%1$s 被切成小块 -death.attack.boat=%1$s 被船撞了 -death.attack.boil=%1$s被%2$s活活煮沸 -death.attack.boxcar=%1$s 被一节坠落的车厢撞死了...好吧 -death.attack.broadcast=%1$s 的大脑融化了 -death.attack.building=%1$s 被从天而降的建筑砸中了 -death.attack.cheater=%1$s 的肠子变成了燕麦(???) -death.attack.chopperBullet=%1$s 被 %2$s 屠杀 -death.attack.cloud=%1$s 像冰棒一样在太阳下融化 -death.attack.cmb=%1$s 被 %2$s 搞得嘶嘶作响 -death.attack.digamma=%1$s 踏入深渊 -death.attack.electricity=%1$s 被电死 -death.attack.electrified=%1$s 被 %2$s 电死 -death.attack.euthanized=%1$s 被 %2$s 安乐死 -death.attack.euthanizedSelf2=%1$s 获得了达尔文奖 -death.attack.euthanizedSelf=%1$s 把自己安乐死了,可真傻 -death.attack.exhaust=%1$s 被火箭烤成了羊肉串 -death.attack.flamethrower=%1$s 被 %2$s 火化 -death.attack.flamethrower.item=%1$s 被 %2$s 使用 %3$s 火化 -death.attack.ice=%1$s 被 %2$s 做成了冰棒 -death.attack.laser=%1$s 被 %2$s 变成了灰烬 -death.attack.laser.item=%1$s 被 %2$s 使用 %3$s 变成灰烬 -death.attack.lead=%1$s 死于铅中毒 -death.attack.lunar=%1$s 忘记了给重要器官充电 -death.attack.meteorite=%1$s 被来自外太空的陨石击中 -death.attack.microwave=%1s 因微波辐射爆炸 -death.attack.mku=%1$s 死于不明原因 -death.attack.monoxide=%1$s忘了换一氧化碳探测器的电池 -death.attack.mudPoisoning=%1$s 死于毒泥浆中 -death.attack.nuclearBlast=%1$s 被核爆炸飞 -death.attack.overdose=%1$s 上瘾并窒息 -death.attack.pc=%1$s 在粉红色的云中变成了一个水坑 -death.attack.plasma=%1$s 被 %2$s 烧死 -death.attack.radiation=%1$s 死于辐射 -death.attack.revolverBullet=%1$s 被 %2$s 用 %3$s 击中头部 -death.attack.revolverBullet.item=%1$s 被 %2$s 使用 %3$s 爆头 -death.attack.rubble=%1$s 被碎片压扁了 -death.attack.shrapnel=%1$s 被榴弹碎片炸得千疮百孔 -death.attack.spikes=%1$s被刺穿了 -death.attack.subAtomic1=%1$s 的原子已被 %2$s 销毁. -death.attack.subAtomic2=%1$s 因为被 %2$s 篡改了实际速度,导致QPU没有对准 -death.attack.subAtomic3=由于 %2$s,1$s 的偏差下降到1%以下 -death.attack.subAtomic4=%1$s 因为 %2$s 被零除了 -death.attack.subAtomic5=%1$s 因为 %2$s 无效了 -death.attack.suicide=%1$s 打爆了自己的头 -death.attack.taint=%1$s 死于恶性肿瘤 -death.attack.tau=%1$s 被 %2$s 用带负电荷的陶子射穿 -death.attack.tauBlast=%1$s 对XVL1456充能时间过长,被炸成碎片 -death.attack.teleporter=%1$s 被传送到虚空 -desc.gui.assembler.warning=§c错误:§r此机器需要装配机模板! -desc.gui.chemplant.warning=§c错误:§r此机器需要化工厂模板! -desc.gui.gasCent.enrichment=§2浓缩§r$浓缩铀需要串联$两个离心机串联将离心出$铀燃料,四个离心机串联$将完全分离出铀235。 -desc.gui.gasCent.output=§6流体输送§r$流体可通过输出端口输送至另一台离心机$进行进一步处理。 -desc.gui.nukeBoy.desc=§1需要:§r$ * 中子屏蔽罩$ * 铀-235弹头$ * 次临界铀-235标靶$ * 炸药$ * 点火器 -desc.gui.nukeGadget.desc=§1需要:§r$ * 4个 初代$ 炸药透镜阵列$ * 钚核心$ * 线路 -desc.gui.nukeMan.desc=§1需要:§r$ * 4个 初代$ 炸药透镜阵列$ * 钚核心$ * 点火器 -desc.gui.nukeMike.desc=§1需要:§r$ * 4个 炸药透镜阵列$ * 钚核心$ * 氘冷却装置$ * 铀涂层氘罐 * 氘罐 -desc.gui.nukeTsar.desc=§1需要:§r$ * 4个 炸药透镜阵列$ * 钚核心$§9可选:§r$ * 沙皇炸弹核心 -desc.gui.radiolysis.desc=§9说明§r$该RTG比其他RTG更高效,并且$配备了一个用于$裂解和灭菌的辐解室。 -desc.gui.rtgBFurnace.desc=处理$金-198需要至少15热量。此外,热量越多,运行速度越快$金-198可能会衰变为水银 -desc.gui.rtg.heat=§e当前热等级:%s -desc.gui.rtg.pellets=接受的靶丸: +crucible.steel=钢生产 +crucible.steelMeteoric=陨铁->钢 生产 +crucible.steelPig=生铁->钢 生产 +crucible.steelWrought=锻铁->钢 生产 +crucible.tcalloy=锝-钢合金生产 + +death.attack.acid=%1$s 掉进了酸里. +death.attack.acidPlayer=%1$s 被 %2$s 溶解了. +death.attack.ams=%1$s 沐浴在尚未被人类科学命名的致命粒子中. +death.attack.amsCore=%1$s 在高能奇点之火中蒸发. +death.attack.asbestos=%1$s 现在有权获得经济补偿. +death.attack.bang=%1$s 被炸成一口大小碎片. +death.attack.blackhole=%1$s 被黑洞拉成了意大利面. +death.attack.blender=%1$s 被切割成了很小的,以Byte计数的单位. +death.attack.boat=%1$s 被船砸扁了. +death.attack.boil=%1$s 被 %2$s 活生生煮沸了. +death.attack.boxcar=%1$s 被一节坠落的车厢砸扁了...好吧. +death.attack.broadcast=%1$s 的大脑融化了. +death.attack.building=%1$s 被从天而降的建筑砸中了. +death.attack.cheater=%1$s 的内脏变成了燕麦(???). +death.attack.chopperBullet=%1$s 被 %2$s 屠杀. +death.attack.cloud=%1$s 像在太阳下的冰棒一样融化. +death.attack.cmb=%1$s 被 %2$s 电的焦脆. +death.attack.digamma=%1$s 在追求真理时步入了深渊. +death.attack.electricity=%1$s 被电死. +death.attack.electrified=%1$s 被 %2$s 电死. +death.attack.euthanized=%1$s 被 %2$s 安乐死. +death.attack.euthanizedSelf2=%1$s 获得了达尔文奖. +death.attack.euthanizedSelf=%1$s 把自己安乐死了, 真鸡儿丢人. +death.attack.exhaust=%1$s 被火箭烤成了羊肉串. +death.attack.flamethrower=%1$s 被 %2$s 火化. +death.attack.flamethrower.item=%1$s 被 %2$s 用 %3$s火化. +death.attack.ice=%1$s 被 %2$s 冻成了冰棒. +death.attack.laser=%1$s 被 %2$s 变成了灰烬. +death.attack.laser.item=%1$s 被 %2$s 用 %3$s 变成了灰烬. +death.attack.lead=%1$s 死于铅中毒. +death.attack.lunar=%1$s 忘了给他的重要器官维持系统充电. +death.attack.meteorite=%1$s 被来自外太空的陨石击中,他可以去买彩票了. +death.attack.microwave=%1$s 被过量微波辐射而爆炸了. +death.attack.mku=%1$s 死于不知名的原因. +death.attack.monoxide=%1$s 忘了给一氧化碳探测器换电池. +death.attack.mudPoisoning=%1$s 死于毒泥浆中. +death.attack.nuclearBlast=%1$s 被核爆冲击波炸飞. +death.attack.overdose=%1$s 服药过量后窒息了. +death.attack.pc=%1$s 在粉红色的云中变成了一滩水. +death.attack.plasma=%1$s 被 %2$s 献祭了. +death.attack.radiation=%1$s 死于辐射. +death.attack.revolverBullet=%1$s 被 %2$s 爆头. +death.attack.revolverBullet.item=%1$s 被 %2$s 用 %3$s 爆头. +death.attack.rubble=%1$s 被挤压成了碎片. +death.attack.shrapnel=%1$s 被榴弹碎片炸得千疮百孔. +death.attack.spikes=%1$s 被刺了个透心凉. +death.attack.subAtomic1=%1$s 的原子被 %2$s 摧毁. +death.attack.subAtomic2=%1$s 因为被 %2$s 篡改了实际速度, 导致QPU没有对准. +death.attack.subAtomic3=由于 %2$s, 1$s 的偏差下降到1%以下. +death.attack.subAtomic4=%1$s 因为 %2$s 被零除了. +death.attack.subAtomic5=%1$s 因为 %2$s 无效了. +death.attack.suicide=%1$s 打爆了自己的头. +death.attack.taint=%1$s 死于恶性肿瘤. +death.attack.tau=%1$s 被 %2$s 用带负电荷的陶子打得千疮百孔. +death.attack.tauBlast=%1$s 对XVL1456充能时间过长, 被炸成碎片. +death.attack.teleporter=%1$s 被传送到虚空. + +desc.block.blastinfo=方块抗爆性: %s +desc.gui.assembler.warning=§c错误:§r 错误:此装配机需要组装机模板! +desc.gui.chemplant.warning=§c错误:§r 此化工装置需要化学配方模板! +desc.gui.gasCent.enrichment=§2浓缩§r$铀浓缩需要多个离心机串联.$两个离心串联$将仅分离出铀238,$四个离心串联将完全分离六氟化铀. +desc.gui.gasCent.output=§6流体传输§r$液体可以通过输出端口转移到$另一台离心机进行进一步处理. +desc.gui.nukeBoy.desc=§1需要组件:§r$ * 中子屏蔽罩$ * 铀235弹头$ * 次临界铀235标靶$ * 炸药$ * 点火器 +desc.gui.nukeGadget.desc=§1需要组件:§r$ * 4 个初代高能$ 内爆炸药阵列$ * 大型钚核心$ * 线路 +desc.gui.nukeMan.desc=§1需要组件:§r$ * 4 个初代高能$ 内爆炸药阵列$ * 钚核心$ * 炸弹点火装置 +desc.gui.nukeMike.desc=§1需要组件:§r$ * 4 个高能内爆炸药阵列$ * 钚核心$ * 氘冷却装置$ * 铀涂层氘罐$ * 氘罐 +desc.gui.nukeTsar.desc=§1需要组件:§r$ * 4 个高能内爆炸药阵列$ * 钚核心$§9可选:§r$ * 沙皇炸弹核心 +desc.gui.radiolysis.desc=§9说明§r$这种RTG比其他RTG效率更高, $配有一个辐解室,$用于裂解和灭菌. +desc.gui.rtgBFurnace.desc=需要至少15级热量来进行加工$热量越多,运行速度越快$超过最大速度后多余的热量不会产生任何影响$短半衰期的靶丸可能会衰变 +desc.gui.rtg.heat=§e当前热量级别: %s +desc.gui.rtg.pellets=可接受的靶丸: desc.gui.rtg.pelletHeat=%s (%s 热量) -desc.gui.rtg.pelletPower=%s (%s HE/刻) -desc.gui.template=§9模板§r$模板可由$机器模板文件夹制作。 -desc.gui.turbinegas.automode=§2自动涡轮机节流模式§r$通过单击“AUTO”按钮,涡轮机$将根据网络所需的功率自动调整发电量$ -desc.gui.turbinegas.fuels=§6可接受的燃料:§r -desc.gui.turbinegas.warning=§c燃油或润滑油液位低!§r -desc.gui.upgrade=§l可接受的升级:§r -desc.gui.upgrade.afterburner=*§d加力燃烧§r:堆叠至3级 -desc.gui.upgrade.effectiveness=*§a效率§r:堆叠至3级 -desc.gui.upgrade.overdrive=*§7超速§r:堆叠至3级 -desc.gui.upgrade.power=*§1节能§r:堆叠至3级 -desc.gui.upgrade.speed=*§4速度§r:堆叠至3级 -desc.gui.zirnox.coolant=§3冷却剂§r$CO2将热量从堆芯转移到水中$这会令它变成成超热蒸汽$冷却和蒸汽生产的效率取决于压力。 -desc.gui.zirnox.pressure=§6压力§r$排放二氧化碳可以降低压力$然而,压力过低,冷却效率和蒸汽产量将降低$小心熔毁! -desc.gui.zirnox.warning1=§c错误:§r反应堆正常运行需要水! -desc.gui.zirnox.warning2=§c错误:§r二氧化碳是反应堆正常运行所必需的! -desc.item.ammo.con_accuracy2=- 精度大幅降低 +desc.gui.rtg.pelletPower=%s (%s HE/tick) +desc.gui.template=§9模板§r$可以使用机器模板$文件夹制作模板. +desc.gui.turbinegas.automode=§2燃汽轮机自动节流模式§r$通过点击 "AUTO" 按钮, 燃汽轮机$将根据电网所需功率$自动调整发电量 +desc.gui.turbinegas.fuels=§6可接受的燃气:§r$ +desc.gui.turbinegas.warning=§c燃油或润滑油液位低!§r +desc.gui.upgrade=§l可接受的升级:§r +desc.gui.upgrade.afterburner= * §d加力燃烧§r: 最高为3级 +desc.gui.upgrade.effectiveness= * §a效率§r: 最高为3级 +desc.gui.upgrade.overdrive= * §7超频§r: 最高为3级 +desc.gui.upgrade.power= * §1节能§r: 最高为3级 +desc.gui.upgrade.speed= * §4速度§r: 最高为3级 +desc.gui.zirnox.coolant=§3冷却§r$二氧化碳将热量从反应堆核心转移到水中.$这会把水加热成蒸汽. $冷却和蒸汽生产的$效率取决于压力大小. +desc.gui.zirnox.pressure=§6压力§r$可以通过减少反应堆中的CO2量来降低压力.$但是, 压力过低, 冷却效率和$蒸汽产量会降低.$小心熔毁! +desc.gui.zirnox.warning1=§c错误:§r 反应堆正常运行$需要水! +desc.gui.zirnox.warning2=§c错误:§r 反应堆正常运行$需要二氧化碳! +desc.item.ammo.con_accuracy2=- 精确度大大降低 desc.item.ammo.con_damage=- 伤害大幅降低 desc.item.ammo.con_heavy_wear=- 大幅增加磨损 desc.item.ammo.con_ling_fire=- 没有火焰 @@ -880,27 +908,27 @@ desc.item.ammo.neu_boat=* 船 desc.item.ammo.neu_boxcar=* 车厢 desc.item.ammo.neu_building=* 建筑物 desc.item.ammo.neu_chlorophyte=* 叶绿 -desc.item.ammo.neu_eraser=* 用于消除重大错误 -desc.item.ammo.neu_fun=* 全家其乐无穷! -desc.item.ammo.neu_heavy_metal=* 重金属 -desc.item.ammo.neu_homing=* 追踪 -desc.item.ammo.neu_jolt=* 震荡 +desc.item.ammo.neu_eraser=* 为了消除一些大麻烦 +desc.item.ammo.neu_fun=* 和你的核谐家庭一起快乐的来放烟花玩耍吧! +desc.item.ammo.neu_heavy_metal=* 含重金属 +desc.item.ammo.neu_homing=* 自动追踪目标 +desc.item.ammo.neu_jolt=* 颠簸 desc.item.ammo.neu_leadburster=* 附着在表面并喷射子弹 -desc.item.ammo.neu_less_bouncy=* 弹性更小 -desc.item.ammo.neu_maskman_flechette=* 曳光弹,同时引发一场贫铀飞镖弹风暴 -desc.item.ammo.neu_maskman_meteorite=* 高伤害,同时召唤小陨石 -desc.item.ammo.neu_more_bouncy=* 额外弹性 -desc.item.ammo.neu_no_bounce=* 没有弹性 -desc.item.ammo.neu_no_con=* 没有缺点 -desc.item.ammo.neu_starmetal=* 星辉金属 -desc.item.ammo.neu_tracer=* 示踪剂 -desc.item.ammo.neu_uhh=* Uhhh -desc.item.ammo.neu_warcrime1=* 从技术上来讲触犯了战争罪 -desc.item.ammo.neu_warcrime2=* 一发触犯两条战争罪! -desc.item.ammo.pro_accurate1=+ 提升精度 -desc.item.ammo.pro_accurate2=+ 近乎完美的精度 -desc.item.ammo.pro_balefire=+ 野火 -desc.item.ammo.pro_bomb_count=+ 炸弹数量增加 +desc.item.ammo.neu_less_bouncy=* 霰弹更少 +desc.item.ammo.neu_maskman_flechette=* 发射一个能召唤出一场铀涂层镖弹碎片风暴的示踪剂 +desc.item.ammo.neu_maskman_meteorite=* 发射高伤害的子弹并召唤一颗小陨石 +desc.item.ammo.neu_more_bouncy=* 更多霰弹 +desc.item.ammo.neu_no_bounce=* 非霰弹 +desc.item.ammo.neu_no_con=* 没有任何负面作用 lol +desc.item.ammo.neu_starmetal=* 含星辉金属 +desc.item.ammo.neu_tracer=* 曳光弹 +desc.item.ammo.neu_uhh=* 啊哈 +desc.item.ammo.neu_warcrime1=* 从技术上讲使用它是犯了战争罪 +desc.item.ammo.neu_warcrime2=* 一颗子弹犯下两条战争罪! +desc.item.ammo.pro_accurate1=+ 准确性提高 +desc.item.ammo.pro_accurate2=+ 近乎完美的精确度 +desc.item.ammo.pro_balefire=+ B.F.野火 +desc.item.ammo.pro_bomb_count=+ 增加炸弹数量 desc.item.ammo.pro_caustic=+ 腐蚀性 desc.item.ammo.pro_chainsaw=+ 电锯 desc.item.ammo.pro_chlorine=+ 氯气 @@ -935,18 +963,19 @@ desc.item.ammo.pro_stunning=+ 眩晕 desc.item.ammo.pro_toxic=+ 剧毒 desc.item.ammo.pro_wear=+ 减少磨损 desc.item.ammo.pro_withering=+ 凋零 -desc.item.armorMod.display=显示已安装的装甲模块 -desc.item.battery.charge=储能: %s / %sHE -desc.item.battery.chargePerc=储能: %s%% -desc.item.battery.chargeRate=充电效率: %sHE/刻 -desc.item.battery.dischargeRate=放电效率: %sHE/刻 -desc.item.durability=耐久: %s -desc.item.grenade.fuse=引信: %s -desc.item.grenade.fuseImpact=碰炸 -desc.item.grenade.fuseInstant=瞬发 -desc.item.gun.ammo=弹药 %s -desc.item.gun.ammoBelt=从背包中使用 -desc.item.gun.ammoEnergy=能耗; %sHE 每发 +desc.item.armorMod.display=来显示该盔甲上所安装的配件的效果 +desc.item.battery.charge=电量: %s / %sHE +desc.item.battery.chargePerc=电量: %s%% +desc.item.battery.chargeRate=充电速率: %sHE/tick +desc.item.battery.dischargeRate=放电速率: %sHE/tick +desc.item.detonator=已设置引爆位置!$未设置引爆位置! +desc.item.durability=耐久度: %s +desc.item.grenade.fuse=引爆延时: %s +desc.item.grenade.fuseImpact=接触爆炸 +desc.item.grenade.fuseInstant=即爆 +desc.item.gun.ammo=弹药量 %s +desc.item.gun.ammoBelt=自动从背包中装填 +desc.item.gun.ammoEnergy=能量; %sHE 每发 desc.item.gun.ammoEnergyAlt=%sHE 每发 desc.item.gun.ammoMag=%s / %s desc.item.gun.ammoType=弹药类型: %s @@ -956,18 +985,16 @@ desc.item.gun.damageAlt=伤害: %s desc.item.gun.lore=查看深入的知识 desc.item.gun.loreFunc=查看深入功能 desc.item.gun.manufacturer=制造商: %s -desc.item.gun.name=名称: %s -desc.item.gun.pellets=弹丸数:%s-%s -desc.item.gun.penetration=装甲穿透值: %s -desc.item.kitArmor=装甲将被新的装备取代。 -desc.item.kitHaz=装甲将被防护服取代。 -desc.item.kitPack=真便宜! -desc.item.kitPool=请在打开前清空背包库存! -desc.item.pileRod=§e使用钻孔石墨插入$§E使用螺丝刀拔出$ - - -desc.item.rtgDecay=衰变为:%s -desc.item.rtgHeat=功率级别:%s +desc.item.gun.name=枪械名称: %s +desc.item.gun.pellets=弹丸: %s - %s +desc.item.gun.penetration=护甲穿透值: %s +desc.item.kitArmor=现穿的护甲将被新护甲取代. +desc.item.kitHaz=防护服将取代现穿的护甲. +desc.item.kitPack=真便宜! +desc.item.kitPool=请在打开前清空你的背包! +desc.item.pileRod=§e用于插入钻削过的石墨$§e使用螺丝刀翘出$ +desc.item.rtgDecay=衰变为: %s +desc.item.rtgHeat=热量级别: %s desc.item.storage.capacity=容量 %s%%s desc.item.storage.proscons=查看利弊列表 desc.misc.357=.357 马格南 @@ -980,18 +1007,34 @@ desc.misc.lore=§n-- 知识 -- desc.misc.lshift=§8按住 <§e§o左SHIFT§8§o> %s desc.misc.luna=§o20x155mm Lunatic desc.misc.meltPoint=熔点: §c%s -desc.misc.noPos=未设置位置! -desc.misc.pos=将位置设置为:%s,%s,%s -desc.misc.posSet=位置已设置! +desc.misc.noPos=未设置触发位置! +desc.misc.pos=设置触发位置为 : %s, %s, %s +desc.misc.posSet=触发位置已设置! desc.item.wasteCooling=在乏燃料池中冷却 -desc.item.zirnoxBreedingRod=§2[ZIRNOX增殖棒]$§e放在燃料棒旁边增殖$§e持续 %d 刻 -desc.item.zirnoxRod=§a[ZIRNOX燃料棒]$§e每刻产生 %1$d 热量$§e持续 %2$d 刻 -digamma.playerDigamma=玩家F-迪伽马辐照水平: -digamma.playerHealth=玩家所受F-迪伽马辐照影响: -digamma.playerRes=玩家F-迪伽马防护水平: -digamma.title=玩家F-迪伽马辐射自检器 -entity.entity_cyber_crab.name=赛博螃蟹 -entity.entity_elder_one.name=上古鸭神 +desc.item.upgrade.machine=采矿钻机:§r$自动激光采矿钻机:$电炉:§r$装配机:§r$化工厂:§r$油井:§r$矿物结晶机:§r$回旋加速器:§r$废气燃烧塔:§r$高能微波炮塔:§r$涡扇发电机:§r$力场范围升级§r$力场能量升级§r$采矿激光升级§r$气体离心机升级§r$ +desc.item.upgrade.speed=耗时 -%s%% / 耗电量 +%sHE/t$耗时 ÷%s / 耗电量 +%sHE/t$耗时 -%s%% / 耗电量 +%s%%$对撞速度 x%s$伤害 +%sdmg/t +desc.item.upgrade.effect=半径 +%sm / 耗电量 +%sHE/t$+%s%% 的几率不消耗物品 / 酸消耗量 +%smB$-%s%% 的几率延长加速器过热缓冲时间$+%s%% 发电量$攻击范围 +%sm +desc.item.upgrade.power=耗电量 -%sHE/t / 耗时 +%s%%$耗电量 -%s%% / 耗时 +%s%%$耗电量 -%skHE/t$耗电量 -%sHE/t$单次开火耗电 -%sHE/t +desc.item.upgrade.fortune=幸运 +%s / 耗时 +%s +desc.item.upgrade.afterburn=发电量 x%s / 燃料消耗 x%s$加力燃烧 +%ss$燃烧%smB燃气产生%sHE/t +desc.item.upgrade.forcefield=半径 +16 / 耗电 +500$最大能量 +50 / 耗电 +250$最多堆叠16个 +desc.item.upgrade.smelter=融化方块.够简单了. +desc.item.upgrade.shredder=自动粉碎矿石 +desc.item.upgrade.centrifuge=其作用不言自明 +desc.item.upgrade.crystallizer=你新的最好的朋友:) +desc.item.upgrade.screm=就像在《超级马里奥》里,所有的方块都是蟾蜍$但在这里是半条命的科学家.$他们在尖叫.很多尖叫. +desc.item.upgrade.nullifier=有50%%的几率用/dev/zero覆盖无用物品$有50%%的几率将无用物品移到/dev/null +desc.item.upgrade.gc_speed=允许对六氟化铀进行全同位素分离$§e离心机也会进入病态模式 +desc.item.zirnoxBreedingRod=§2[ZIRNOX锆诺克斯反应堆增殖棒]$§e放在燃料棒旁边以增殖$§e持续 %d ticks +desc.item.zirnoxRod=§a[ZIRNOX锆诺克斯反应堆燃料棒]$§e产生 %1$d 热量每tick$§e持续 %2$d ticks + +digamma.playerDigamma=玩家Ϝ迪伽马辐照水平: +digamma.playerHealth=玩家所受Ϝ迪伽马辐照影响: +digamma.playerRes=玩家Ϝ迪伽马防护水平: +digamma.title=玩家Ϝ迪伽马辐射自检器 + +entity.entity_cyber_crab.name=机械螃蟹 +entity.entity_elder_one.name=Quackos古老者 entity.entity_fucc_a_ducc.name=鸭子 entity.entity_glyphid.name=异虫 entity.entity_glyphid_behemoth.name=巨兽异虫 @@ -1011,20 +1054,24 @@ entity.entity_mob_nuclear_creeper.name=核爆爬行者 entity.entity_mob_phosgene_creeper.name=光气爬行者 entity.entity_mob_tainted_creeper.name=污染爬行者 entity.entity_mob_volatile_creeper.name=不稳定爬行者 -entity.entity_taint_crab.name=污染螃蟹 -entity.entity_tesla_crab.name=磁暴螃蟹 -entity.hbm.entity_balls_o_tron.name=机械蠕虫 -entity.hbm.entity_balls_o_tron_seg.name=机械蠕虫 +entity.entity_plastic_bag.name=塑料袋 +entity.entity_taint_crab.name=腐化机械螃蟹 +entity.entity_tesla_crab.name=磁暴机械螃蟹 +entity.hbm.entity_balls_o_tron.name=世-界-毁-灭-者 O-TRON +entity.hbm.entity_balls_o_tron_seg.name=世-界-毁-灭-者 O-TRON 躯干 entity.hbm.entity_bullet.name=子弹 entity.hbm.entity_rocket.name=火箭弹 -entity.hbm.entity_schrabnel.name=Schrabnel +entity.hbm.entity_schrabnel.name=弹片 + excavator.crusher=粉碎开关 excavator.drill=挖掘开关 excavator.silktouch=精准采集开关 excavator.veinminer=连锁挖矿开关 excavator.walling=填充开关 -flare.ignition=点火装置 -flare.valve=流量阀 + +flare.ignition=点火开关 +flare.valve=燃气阀门 + fluid.acid_fluid=酸 fluid.corium_fluid=堆芯熔融物 fluid.mud_fluid=毒泥 @@ -1069,7 +1116,7 @@ gun.make.MANN=Open Mann公司 gun.make.MAXIM=海勒姆·马克沁 gun.make.METRO=地铁枪手 gun.make.MWT=MWT原型实验室 -gun.make.NAWS=Kayarm Industries +gun.make.NAWS=Kayarm工业 gun.make.ERFURT=埃尔福特机械制造厂 gun.make.NONE=- gun.make.RAYTHEON=导弹系统公司 @@ -1082,74 +1129,75 @@ gun.make.SACO=萨科防卫军械 gun.make.TULSKY=图拉武器厂 gun.make.UAC=联合宇宙航空公司 gun.make.UNKNOWN=??? -gun.make.WESTTEK=WestTek研究设施 -gun.make.WGW=威廉·古斯特洛夫·维尔克 -gun.make.WINCHESTER=温彻斯特速射武器公司 -gun.make.WINCHESTER_BIGMT=温彻斯特速射武器公司/大型MT -gun.name.ar15_50=AR-15 .50BMG型 -gun.name.baeAR=英国制式突击步枪 -gun.name.bel=野火蛋发射器 -gun.name.benelli=伯奈利M4 Super 90霰弹枪 -gun.name.benelliDrum=伯奈利M4 Super 90霰弹枪 (泵动供弹改进型) +gun.make.WESTTEK=西部科技 +gun.make.WGW=威廉·古斯特洛夫·沃克 +gun.make.WINCHESTER=温彻斯特连发轻武器公司 +gun.make.WINCHESTER_BIGMT=温彻斯特连发轻武器公司 / 巨山研发中心 + +gun.name.ar15_50=AR-15 .50 BMG 模式 +gun.name.baeAR=不列颠标准型突击步枪 +gun.name.bel=B.F.野火蛋弹射器 +gun.name.benelli=贝内利M4 Super 90霰弹枪 +gun.name.benelliDrum=贝内利M4 Super 90霰弹枪(弹鼓) gun.name.bio=RI No. 2 Mark 1 gun.name.bolter=Manticora Pattern爆弹枪 gun.name.congoLake=刚果湖水泵动榴弹发射器 gun.name.cPython=柯尔特蟒蛇 -gun.name.cz53=CZ53 单兵转轮机枪 -gun.name.cz57=CZ57 复仇者机枪 -gun.name.dart=针枪 -gun.name.deagle=以色列军事工业公司沙漠之鹰 -gun.name.emp=EMP投射器 -gun.name.extinguisher=PROTEX灭火器6kg -gun.name.ffiV=FFI Viper -gun.name.ffiVInox=FFI Viper Inox -gun.name.ffiVLead=FFI Viper Lead -gun.name.ffiVN1=FFI Viper N1 -gun.name.ffiVN2=FFI Viper N2 -gun.name.ffiVUltra=FFI Viper Ultra -gun.name.ffivBling=FFI Viper Bling -gun.name.ffivSatur=FFI Viper D-25A -gun.name.g36=HK G36突击步枪 -gun.name.gPistol=HK69A1 手持单发榴弹发射器 -gun.name.gustav=卡尔·古斯塔夫M1无后坐力炮 -gun.name.ifHorseshoe=IF-18 蹄铁 -gun.name.ifPit=IF-18 蹄铁 Bottomless Pit -gun.name.ifScope=IF-18 蹄铁 Scoped -gun.name.ifStorm=IF-18 蹄铁 银色风暴 -gun.name.ifVanity=IF-18 蹄铁 Vanity -gun.name.karl=M1 卡尔·古斯塔夫 -gun.name.ks23=KS-23霰弹枪 -gun.name.lacunae=Auntie Lacunae -gun.name.lasetDet=霍普维尔激光雷管 -gun.name.lunaAR=1986 Bishamonten式突击步枪 -gun.name.lunaGun=1978 Rāhula type Standard Issue Sidearm (Revision 2) -gun.name.lunaHLR=1944嫦娥式轻机枪 -gun.name.lunaShotty=1978年关羽式散弹枪(第1次修订) -gun.name.lunaSMG=1956 ānanda type Submachine Gun -gun.name.lunaSniper=1915后羿式反器材步枪 +gun.name.cz53=CZ53单兵火神炮 +gun.name.cz57=CZ57复仇火神炮 +gun.name.dart=气动射针枪 +gun.name.deagle=IMI沙漠之鹰 +gun.name.emp=EMP磁暴步枪 +gun.name.extinguisher=PROTEX6kg灭火器 +gun.name.ffiV=普通左轮手枪 +gun.name.ffiVInox=强化左轮手枪 +gun.name.ffiVLead=核子左轮手枪 +gun.name.ffiVN1=梦魇左轮手枪(初代) +gun.name.ffiVN2=梦魇左轮手枪(黑暗) +gun.name.ffiVUltra=Sa326元素左轮手枪 +gun.name.ffivBling=黄金左轮手枪 +gun.name.ffivSatur=土星金属手枪 +gun.name.g36=黑克勒 & 科赫 G36突击步枪 +gun.name.gPistol=HK69榴弹手枪 +gun.name.gustav=M1卡尔·古斯塔夫无后座力步枪 +gun.name.ifHorseshoe=IF-18蹄铁军工诺华克 +gun.name.ifPit=IF-18蹄铁军工红钥匙左轮手枪 +gun.name.ifScope=小皮的IF-18蹄铁军工左轮手枪 +gun.name.ifStorm=IF-18蹄铁军工银色风暴 +gun.name.ifVanity=黑杰克的IF-18蹄铁军工五发装左轮枪 +gun.name.karl=M1卡尔火箭筒 +gun.name.ks23=萨缪尔-23大口径霰弹枪 +gun.name.lacunae=CZ33地狱火神 +gun.name.lasetDet=霍普维尔激光引爆器 +gun.name.lunaAR=1986-”毘沙门天“式突击步枪 +gun.name.lunaGun=1978-”毗纽天“式标配自卫武器 (2改型) +gun.name.lunaHLR=1944-“嫦娥”式轻机枪 +gun.name.lunaShotty=1978-”关羽“式霰弹枪 (1改型) +gun.name.lunaSMG=1956-”阿难答“式冲锋枪 +gun.name.lunaSniper=1915 “后羿” 式反物质来复枪 gun.name.lunaTWR=时间扭曲步枪 -gun.name.m2=M2式勃朗宁大口径重机枪 -gun.name.m42=M-42战术核弹发射器 -gun.name.m42MIRV=M-42实验MIRV -gun.name.m60=7.62毫米口径M60机枪 +gun.name.m2=.50口径勃朗宁机枪, M2, HB +gun.name.m42=M-42战术核弹射器 +gun.name.m42MIRV=M-42 核弹弹射器"试验性子母弹头 +gun.name.m60= 7.62 mm口径机枪, M60 gun.name.maxim=马克沁机枪 -gun.name.maximDouble=双重马克沁机枪 -gun.name.mg3=MG-42通用机枪 -gun.name.mp40=MP40冲锋枪 -gun.name.nerf=某些无良记者眼中的大规模杀伤性武器 -gun.name.osipr=守望标准型脉冲步枪 -gun.name.panz=反坦克火箭来复枪 54 -gun.name.quadro=OpenQuadro便携式导弹发射器 +gun.name.maximDouble=双管马克沁机枪 +gun.name.mg3=通用MG3机枪 - .50 模式 +gun.name.mp40=Mp40冲锋枪 +gun.name.nerf=设计者未知的NERF发射器 +gun.name.osipr=看守者暗能量脉冲步枪 +gun.name.panz=坦克杀手54 +gun.name.quadro=四联装制导便携式电视制导导弹发射器 gun.name.remington870=雷明顿870 -gun.name.revolverCursed=不列颠标准问题电动手枪 -gun.name.sauer=绍尔猎枪 -gun.name.spas12=弗兰基SPAS-12式12号霰弹枪 -gun.name.spiw=H&R SPIW -gun.name.stinger=FIM-92毒刺便携式防空系统 -gun.name.stingerOneSky=The One Sky 毒刺便携式防空系统 +gun.name.revolverCursed=被诅咒的不列颠标准发行版左轮手枪 +gun.name.sauer=斯坦.索尔的萨缪尔-23霰 +gun.name.spas12= +gun.name.spiw=H&R弗莱切特镖 +gun.name.stinger=FIM-92“毒刺”便携式防空导弹 +gun.name.stingerOneSky=天马防空导弹 gun.name.supershotty=双管战斗霰弹枪 -gun.name.tau=XVL1456 陶子加农炮 -gun.name.tommy9=M1A1冲锋枪9毫米型 +gun.name.tau=XVL1456 负陶子加农炮原型 +gun.name.tommy9=9mm口径M1A1冲锋枪 gun.name.tommy=M1A1冲锋枪 gun.name.topaz=重型火焰燃烧器 gun.name.uacCarbine=UAC-41卡宾枪 @@ -1249,14 +1297,15 @@ hbmfluid.death=锇酸溶液 hbmfluid.deuterium=氘 hbmfluid.diesel=柴油 hbmfluid.diesel_crack=裂化柴油 -hbmfluid.diesel_crack_reform=高辛烷值裂化柴油 +hbmfluid.diesel_crack_reform=高辛烷值裂解柴油 hbmfluid.diesel_reform=高辛烷值柴油 hbmfluid.egg=蛋溶解液 hbmfluid.estradiol=雌二醇溶液 hbmfluid.ethanol=乙醇 -hbmfluid.enderjuice=末影果汁 +hbmfluid.enderjuice=末影液 hbmfluid.fishoil=鱼油 hbmfluid.fracksol=压裂液 +hbmfluid.fullerene=富勒烯溶液 hbmfluid.gas=天然气 hbmfluid.gas_coker=焦化气 hbmfluid.gasoline=含铅汽油基油 @@ -1312,7 +1361,7 @@ hbmfluid.potassium_chloride=氯化钾溶液 hbmfluid.puf6=六氟化钚 hbmfluid.radiosolvent=高性能溶剂 hbmfluid.reclaimed=再生油 -hbmfluid.redmud=红色泥浆 +hbmfluid.redmud=红泥浆 hbmfluid.reformate=重整油 hbmfluid.reformgas=重整气 hbmfluid.salient=绿色液体 @@ -1331,7 +1380,7 @@ hbmfluid.spentsteam=低压蒸汽 hbmfluid.steam=蒸汽 hbmfluid.sulfuric_acid=硫酸 hbmfluid.sunfloweroil=葵花籽油 -hbmfluid.superhotsteam=超热蒸汽 +hbmfluid.superhotsteam=超热浓蒸汽 hbmfluid.syngas=合成气 hbmfluid.thorium_salt=液态钍盐 hbmfluid.thorium_salt_depleted=贫化液态钍盐 @@ -1347,7 +1396,27 @@ hbmfluid.watz=毒泥浆 hbmfluid.woodoil=木油 hbmfluid.xenon=氙气 hbmfluid.xpjuice=经验汁 -hbmfluid.xylene=轻质芳烃(BTX) +hbmfluid.xylene=BTX苯-甲苯-二甲苯混合物 + +hbmfluid.Trait.Combustible=[可燃烧发电]$产生 §c%sHE §6每桶$燃料等级: §c%s +hbmfluid.Trait.Combustible.FuelGrade=低$中$高$航空级$气态 +hbmfluid.Trait.Coolable=热容量: %s TU$导热效率: %s%% +hbmfluid.Trait.Corrosive=[强腐蚀性]$[腐蚀性] +hbmfluid.Trait.Flammable=[可燃烧产热]$产生 §c%sTU §e每桶 +hbmfluid.Trait.Poison=[有毒气体] +hbmfluid.Trait.PWRModerator=[PWR中子通量倍增]$核心中子通量 %s%s%% +hbmfluid.Trait.Toxin=[毒素] +hbmfluid.Trait.VentRadiation=[放射性] +hbmfluid.TraitSimple.Amat=[反物质] +hbmfluid.TraitSimple.Delicious=[美味] +hbmfluid.TraitSimple.Gaseous=[气体] +hbmfluid.TraitSimple.Gaseous_ART=[室温下为气体] +hbmfluid.TraitSimple.LeadContainer=[需要用危险品罐容纳] +hbmfluid.TraitSimple.Leaded=[含铅燃料] +hbmfluid.TraitSimple.Liquid=[液体] +hbmfluid.TraitSimple.Plasma=[等离子体] +hbmfluid.TraitSimple.Viscous=[粘性] + hbmpseudofluid.none=空 hbmpseudofluid.heuf6=高浓缩六氟化铀 hbmpseudofluid.meuf6=中浓缩六氟化铀 @@ -1527,12 +1596,12 @@ item.ammo_4gauge_explosive.name=23mm榴弹 item.ammo_4gauge_flechette.name=4号箭霰弹 item.ammo_4gauge_flechette_phosphorus.name=4号箭霰弹[白磷] item.ammo_4gauge_kampf.name=23mm火箭弹 -item.ammo_4gauge_semtex.name=23mm采矿弹药 -item.ammo_4gauge_sleek.name=4号鹿弹[IF-R&D] -item.ammo_4gauge_slug.name=四号实心独头弹 -item.ammo_4gauge_titan.name=4号Quacker鹿弹 -item.ammo_4gauge_vampire.name=4号木签弹 -item.ammo_4gauge_void.name=4号电离粒子弹 +item.ammo_4gauge_semtex.name=23mm挖掘榴弹 +item.ammo_4gauge_sleek.name=4口径鹿弹[IF-R&D] +item.ammo_4gauge_slug.name=四口径实心独头弹 +item.ammo_4gauge_titan.name=四口径泰坦杀手弹 +item.ammo_4gauge_vampire.name=4口径反吸血鬼木桩霰弹 +item.ammo_4gauge_void.name=4口径电离子霰弹 item.ammo_50ae.name=.50AE子弹 item.ammo_50ae_ap.name=.50AE子弹[AP] item.ammo_50ae_chlorophyte.name=.50AE子弹[叶绿] @@ -1551,17 +1620,17 @@ item.ammo_50bmg_phosphorus.name=.50BMG子弹[白磷] item.ammo_50bmg_sleek.name=.50BMG子弹[IF-R&D] item.ammo_50bmg_star.name=.50BMG子弹[星辉] item.ammo_556.name=5.56mm子弹 -item.ammo_556_ap.name=5.56mm子弹[AP] -item.ammo_556_chlorophyte.name=5.56mm子弹[叶绿] -item.ammo_556_du.name=5.56mm子弹[贫铀] -item.ammo_556_flechette.name=5.56mm弗莱彻子弹 -item.ammo_556_flechette_chlorophyte.name=5.56mm弗莱彻子弹[叶绿] -item.ammo_556_flechette_du.name=5.56mm弗莱彻子弹 [贫铀穿甲] -item.ammo_556_flechette_incendiary.name=5.56mm弗莱彻子弹 [燃烧] -item.ammo_556_flechette_phosphorus.name=5.56mm弗莱彻子弹 [白磷穿甲] -item.ammo_556_flechette_sleek.name=5.56mm弗莱彻子弹[IF-R&D] +item.ammo_556_ap.name=5.56mm子弹[穿甲弹] +item.ammo_556_chlorophyte.name=5.56mm弹药[绿藻] +item.ammo_556_du.name=5.56mm子弹[贫铀涂层] +item.ammo_556_flechette.name=5.56mm镖形弹 +item.ammo_556_flechette_chlorophyte.name=5.56mm镖形弹弹药[绿藻] +item.ammo_556_flechette_du.name=5.56mm镖形弹 [贫铀涂层] +item.ammo_556_flechette_incendiary.name=5.56mm镖形弹 [燃烧] +item.ammo_556_flechette_phosphorus.name=5.56mm镖形弹 [白磷弹] +item.ammo_556_flechette_sleek.name=5.56mm镖形弹[IF-R&D] item.ammo_556_k.name=5.56mm空包弹 -item.ammo_556_phosphorus.name=5.56mm子弹[白磷] +item.ammo_556_phosphorus.name=5.56mm子弹[白磷弹] item.ammo_556_sleek.name=5.56mm子弹[IF-R&D] item.ammo_556_star.name=5.56mm子弹 [星辉] item.ammo_556_tracer.name=5.56mm 子弹[曳光弹] @@ -1601,13 +1670,13 @@ item.ammo_coilgun.name=钨制线圈枪子弹 item.ammo_coilgun_du.name=铀铁合金制线圈枪子弹 item.ammo_coilgun_rubber.name=橡胶制线圈枪子弹 item.ammo_container.name=万能弹药盒 -item.ammo_dart.name=塑料镖[凋零] -item.ammo_dart_nerf.name=NERF 飞镖 -item.ammo_dart_nuclear.name=塑料镖[定时炸药] -item.ammo_dgk.name=双联守门员近防系统200发弹药 -item.ammo_fireext.name=灭火器 水罐 -item.ammo_fireext_foam.name=灭火器 泡沫罐 -item.ammo_fireext_sand.name=灭火器 硼砂罐 +item.ammo_dart.name=塑料飞镖 [凋零] +item.ammo_dart_nerf.name=NERF飞镖 +item.ammo_dart_nuclear.name=塑料飞镖 [定时爆炸] +item.ammo_dgk.name=200发双管近防炮"霍华德"弹药箱 +item.ammo_fireext.name=灭火器水罐 +item.ammo_fireext_foam.name=灭火器泡沫罐 +item.ammo_fireext_sand.name=灭火器硼砂罐 item.ammo_folly.name=银弹 item.ammo_folly_du.name=银弹[贫铀, 不爆炸] item.ammo_folly_nuclear.name=银弹[核子] @@ -1615,7 +1684,7 @@ item.ammo_fuel.name=柴油罐 item.ammo_fuel_gas.name=毒气罐 item.ammo_fuel_napalm.name=凝固汽油罐 item.ammo_fuel_phosphorus.name=白磷罐 -item.ammo_fuel_vaporizer.name=汽化罐 +item.ammo_fuel_vaporizer.name=挥发性燃料罐 item.ammo_grenade.name=40mm榴弹 item.ammo_grenade_concussion.name=40mm榴弹[震荡] item.ammo_grenade_finned.name=40mm榴弹[尾翼稳定] @@ -1649,8 +1718,8 @@ item.ammo_nuke_barrel.name=小型核废料桶 item.ammo_nuke_high.name=迷你核弹 (高当量) item.ammo_nuke_low.name=迷你核弹 (低当量) item.ammo_nuke_pumpkin.name=南瓜炸弹 -item.ammo_nuke_safe.name=迷你核弹 (安全) -item.ammo_nuke_tots.name=迷你核弹 (幼体) +item.ammo_nuke_safe.name=迷你核弹 (安全) +item.ammo_nuke_tots.name=迷你核弹 (小型散射弹丸) item.ammo_rocket.name=84mm火箭弹 item.ammo_rocket_canister.name=84mm 火箭弹[榴霰弹] item.ammo_rocket_digamma.name=§4归 零§r @@ -1663,7 +1732,7 @@ item.ammo_rocket_phosphorus.name=84mm火箭弹[白磷] item.ammo_rocket_rpc.name=84mm火箭弹[飞行电锯] item.ammo_rocket_shrapnel.name=84mm火箭弹[破片] item.ammo_rocket_sleek.name=84mm火箭弹[IF-R&D] -item.ammo_rocket_toxic.name=84mm火箭弹[化学] +item.ammo_rocket_toxic.name=84mm火箭弹[化学毒气] item.ammo_shell.name=240mm炮弹 item.ammo_shell_apfsds_du.name=240mm 贫铀尾翼稳定脱壳穿甲弹 item.ammo_shell_apfsds_t.name=240mm 钨心尾翼稳定脱壳穿甲弹 @@ -1691,9 +1760,14 @@ item.ams_catalyst_strontium.name=锶反应催化剂 item.ams_catalyst_thorium.name=钍反应催化剂 item.ams_catalyst_tungsten.name=钨反应催化剂 item.ams_core_eyeofharmony.name=和谐之眼[AMS/DFC核心] +item.ams_core_eyeofharmony.desc=一颗恒星自行崩塌,$仅仅几纳秒就变成了黑洞,$被时间冻结了.$如果我不了解相关领域的话,$我会说这是某个人编出来的一些$关于深空魔法的故作高深的鬼话.$你还欠我十块钱. item.ams_core_sing.name=活跃奇点[AMS/DFC核心] -item.ams_core_thingy.name=Thingy[AMS/DFC核心] +item.ams_core_sing.desc=一种被修正的、未定义的时空状态$用于协助胶子间聚变和时空湮灭.$是的,这会缓慢而稳定地摧毁$宇宙本身结构,但至少你可以用它给你的$烤面包机供电$所以一切都安好. +item.ams_core_thingy.name=暮光闪闪的皇冠[AMS/DFC核心] +item.ams_core_thingy.desc=...$...$...我还拿着这个吗?$这是个小金属制品.$我不知道它是从哪里来的,也不知道它是干什么的,$也许他们是在垃圾场发现的,$然后把它当作某种古董艺术品卖掉.$事实上如果不是因为我可以把它塞进一个巨大的激光反应堆里,$我可能会把它扔回到它属于的地方$----垃圾桶. +item.ams_core_thingy_hide.desc=是的,我甚至不会质疑这个. item.ams_core_wormhole.name=微型虫洞[AMS/DFC核心] +item.ams_core_wormhole.desc=数十亿个纳米虫洞云无法主动从$另一个维度获取物质$而是将所有物质转化为$纯能量.这意味着$你正在积极地破坏另一个$维度,像吸一盒果汁$一样吸干它.$无论如何,这个维度可能很糟糕.$我敢打赌里面全是黄蜂或是别的什么垃圾,伙计,$而我讨厌这些东西. item.ams_focus_blank.name=空白稳定器焦点 item.ams_focus_booster.name=较弱的约束场和核心能量注入:$更多的热量产生,更多的能量。 item.ams_focus_booster.desc=较弱的约束场和核心能量注入:$更多的热量产生,更多的能量。 @@ -1874,7 +1948,7 @@ item.blade_meteorite.name=陨石刀 item.blade_titanium.name=钛扇片 item.blade_tungsten.name=钨强化扇片 item.blades_advanced_alloy.name=高级合金刀片 -item.blades_desh.name=Desh制刀片 +item.blades_desh.name=德什制刀片 item.blades_steel.name=钢制刀片 item.blades_titanium.name=钛制刀片 item.blowtorch.name=喷灯 @@ -1904,6 +1978,7 @@ item.bottle_empty.name=空可乐瓶 item.bottle_mercury.name=一瓶水银 item.bottle_nuka.name=核子可乐 item.bottle_opener.name=Hbm自制开瓶器 +item.bottle_opener.desc=我自己的开瓶器.$谨慎使用! item.bottle_quantum.name=量子核子可乐 item.bottle_rad.name=辐射S~核子可乐 item.bottle_sparkle.name=S~核子可乐 @@ -2013,7 +2088,7 @@ item.canned_yogurt.desc=可能坏掉了,但管它呢 item.canteen_13.name=Vault13水壶 item.canteen_fab.name=极品伏特加 item.canteen_vodka.name=伏特加 -item.cap_fritz.name=弗里茨瓶盖 +item.cap_fritz.name=Fritz弗里茨可乐瓶盖 item.cap_korl.name=Korl瓶盖 item.cap_nuka.name=核子可乐瓶盖 item.cap_quantum.name=樱桃味核子可乐瓶盖 @@ -2057,25 +2132,26 @@ item.centrifuge_element.name=离心元件 item.centrifuge_tower.name=离心塔 item.chainsaw.name=链锯 item.cheese.name=奶酪 -item.cheese_quesadilla.name=奶酪油炸玉米粉饼 -item.chemical_dye.black.name=化学染料(黑色) -item.chemical_dye.blue.name=化学染料(蓝色) -item.chemical_dye.brown.name=化学染料(棕色) -item.chemical_dye.cyan.name=化学染料(青色) -item.chemical_dye.gray.name=化学染料(灰色) -item.chemical_dye.green.name=化学染料(绿色) -item.chemical_dye.lightblue.name=化学染料(浅蓝色) -item.chemical_dye.lime.name=化学染料(石灰) -item.chemical_dye.magenta.name=化学染料(品红色) -item.chemical_dye.orange.name=化学染料(橙色) -item.chemical_dye.pink.name=化学染料(粉色) -item.chemical_dye.purple.name=化学染料(紫色) -item.chemical_dye.red.name=化学染料(红色) -item.chemical_dye.silver.name=化学染料(浅灰色) -item.chemical_dye.white.name=化学染料(白色) -item.chemical_dye.yellow.name=化学染料(黄色) -item.chemistry_set.name=实验室玻璃器皿 -item.chemistry_set_boron.name=实验室玻璃器皿(硼玻璃) +item.cheese_quesadilla.name=墨西哥奶酪饼 +item.cheese_quesadilla.desc=这就是50年份的酵母感染对你的影响. +item.chemical_dye.black.name=化学染料 (黑色) +item.chemical_dye.blue.name=化学染料 (蓝色) +item.chemical_dye.brown.name=化学染料 (棕色) +item.chemical_dye.cyan.name=化学染料 (青色) +item.chemical_dye.gray.name=化学染料 (灰色) +item.chemical_dye.green.name=化学染料 (绿色) +item.chemical_dye.lightblue.name=化学染料 (浅蓝色) +item.chemical_dye.lime.name=化学染料 (石灰色) +item.chemical_dye.magenta.name=化学染料 (洋红色) +item.chemical_dye.orange.name=化学染料 (橙色) +item.chemical_dye.pink.name=化学染料 (粉色) +item.chemical_dye.purple.name=化学染料 (紫色) +item.chemical_dye.red.name=化学染料 (红色) +item.chemical_dye.silver.name=化学染料 (浅灰色) +item.chemical_dye.white.name=化学染料 (白色) +item.chemical_dye.yellow.name=化学染料 (黄色) +item.chemistry_set.name=化学玻璃仪器 +item.chemistry_set_boron.name=化学玻璃仪器(硼玻璃) item.chemistry_template.name=化工厂模板: item.chernobylsign.name=辐射警告标志战斧 item.chlorine_pinwheel.name=氯气转轮 @@ -2300,6 +2376,7 @@ item.debris_graphite.name=热石墨块 item.debris_metal.name=断裂金属棒 item.debris_shrapnel.name=走道碎片 item.definitelyfood.name=完全不脏牌军粮 +item.definitelyfood.desc=是的,$我厌倦了不得不外出$为了找东西吃而不至于饿死,$所以这就是我天才般的解决的方案:$ $吃点可食用的泥土. item.defuser.name=高科技拆弹装置 item.defuser_gold.name=黄金剪线钳 item.demon_core_closed.name=封闭的恶魔核心 @@ -2314,13 +2391,16 @@ item.designator_arty_range.name=远程火炮遥控器 item.designator_manual.name=手动目标指示器 item.designator_range.name=远程目标指示器 item.detonator.name=起爆器 +item.detonator.desc=Shift右击来设置触发位置,$右击来触发! +item.detonator.pos.desc=未设置触发位置!$连接到: %s, %s, %s item.detonator_de.name=死亡炸弹 item.detonator_deadman.name=死亡雷管 item.detonator_laser.name=激光起爆器 item.detonator_multi.name=多发起爆器 item.deuterium_filter.name=氘过滤器 item.diamond_gavel.name=钻石槌 -item.dieselsuit_boots.name=柴油动力高跟鞋 +item.diamond_gavel.desc=那个关于钻石沙砾的笑话! 它现在终于讲得通了!!$ $§9能造成尽可能多的伤害. +item.dieselsuit_boots.name=柴油动力装甲靴 item.dieselsuit_helmet.name=柴油动力头戴式环境传感器 item.dieselsuit_legs.name=柴油动力腿部伺服系统 item.dieselsuit_plate.name=柴油动力控制器 @@ -2389,17 +2469,17 @@ item.envsuit_boots.name=M1TTY环保套装靴子 item.envsuit_helmet.name=M1TTY环保套装头盔 item.envsuit_legs.name=M1TTY环保套装护腿 item.envsuit_plate.name=M1TTY环保套装胸甲 -item.euphemium_boots.name=Ep靴子 -item.euphemium_capacitor.name=Ep电容 -item.euphemium_capacitor.desc=允许被动分散累积的正能量。 -item.euphemium_helmet.name=Ep头盔 -item.euphemium_kit.name=Ep工具箱 -item.euphemium_legs.name=Ep护腿 -item.euphemium_plate.name=Ep胸甲 -item.euphemium_stopper.name=Ep-阻滞者 -item.explosive_lenses.name=炸药透镜阵列 -item.explosive_lenses.desc=8个PBX炸药组装的阵列,带有一个薄的$铝推进器、硬铝外壳和$小型桥丝雷管。 -item.fabsols_vodka.name=Fabsol伏特加 +item.euphemium_boots.name=Ep元素靴子 +item.euphemium_capacitor.name=Ep元素电容器 +item.euphemium_capacitor.desc=允许被动分散累积的正能量. +item.euphemium_helmet.name=Ep元素头盔 +item.euphemium_kit.name=Ep元素工具箱 +item.euphemium_legs.name=Ep元素护腿 +item.euphemium_plate.name=Ep元素胸甲 +item.euphemium_stopper.name=Ep元素-阻滞者 +item.explosive_lenses.name=高能内爆炸药阵列 +item.explosive_lenses.desc=由8个PBX聚合物粘结炸药装配而成,带有一个薄型铝推进器, $硬铝外壳和小型桥丝式雷管. +item.fabsols_vodka.name=Fabsol的伏特加 item.factory_core_advanced.name=高级工厂能源组件 item.factory_core_titanium.name=工厂能源组件 item.fallout.name=一堆辐射尘 @@ -2442,8 +2522,8 @@ item.fluid_identifier_multi.info=通用流体识别码: item.fluid_identifier_multi.info2=次要类型: item.fluid_tank_empty.name=空通用流体罐 item.fluid_tank_full.name=通用流体罐: -item.fluid_tank_lead_empty.name=空危险品罐 -item.fluid_tank_lead_full.name=危险品罐: +item.fluid_tank_lead_empty.name=空的危险品流体罐 +item.fluid_tank_lead_full.name=危险品流体罐: item.fluorite.name=氟石粉 item.flywheel_beryllium.name=铍制飞轮 item.fmn.name=氟硝西泮片 @@ -2472,7 +2552,7 @@ item.fusion_shield_chlorophyte.name=叶绿金属聚变反应堆覆层 item.fusion_shield_desh.name=Desh聚变反应堆覆层 item.fusion_shield_tungsten.name=钨聚变反应堆覆层 item.fusion_shield_vaporwave.name=蒸汽波反应堆覆层 -item.gadget_core.name=钚核心 +item.gadget_core.name=大型钚核心 item.gadget_explosive.name=炸药 item.gadget_kit.name=小玩意 套件 item.gadget_wireing.name=线路 @@ -2556,7 +2636,7 @@ item.gun_avenger.name=CZ57复仇者机枪 item.gun_b92.name=§9B92能量手枪§r item.gun_b92_ammo.name=§9B92能量单元§r item.gun_b93.name=§cB93能量手枪§r -item.gun_benelli.name=伯奈利自动霰弹枪(Drum Mod) +item.gun_benelli.name=伯奈利自动霰弹枪(弹鼓) item.gun_bf.name=BEL item.gun_bf_ammo.name=Mk.V小型AMAT-炮弹 –野火型 item.gun_bio_revolver.name=Atlas @@ -2609,8 +2689,8 @@ item.gun_lever_action.name=马腿杠杆式霰弹枪[原版] item.gun_lever_action_ammo.name=12x74 鹿弹 item.gun_lever_action_dark.name=马腿杠杆式霰弹枪[黑暗] item.gun_lever_action_sonata.name=自杀霰弹 -item.gun_lever_action_sonata_2.name=§cSonata的麦克风§r -item.gun_lunatic_marksman.name=Lunatic狙击步枪 +item.gun_lever_action_sonata_2.name=§c奏鸣的麦克风§r +item.gun_lunatic_marksman.name=月都科技狙击步枪 item.gun_m2.name=勃朗宁M2HB型重机枪 item.gun_minigun.name=CZ53机枪 item.gun_mirv.name=M42核弹发射器 "试验型MIRV" @@ -2671,9 +2751,9 @@ item.gun_uboinik.name=Uboinik item.gun_uboinik_ammo.name=12x70 鹿弹 item.gun_uzi.name=Uzi冲锋枪 item.gun_uzi_ammo.name=.22LR子弹 -item.gun_uzi_saturnite.name=土星Uzi冲锋枪 -item.gun_uzi_saturnite_silencer.name=带消音器的土星Uzi冲锋枪 -item.gun_uzi_silencer.name=带消音器的Uzi冲锋枪 +item.gun_uzi_saturnite.name=土星金属Uzi +item.gun_uzi_saturnite_silencer.name=带消音器的土星金属Uzi +item.gun_uzi_silencer.name=带消音器的Uzi item.gun_xvl1456.name=XVL1456陶子加农炮原型机 item.gun_xvl1456_ammo.name=贫化铀235子弹 item.gun_zomg.name=奇点能湮灭射线“ZOMG炮” @@ -2751,8 +2831,9 @@ item.ingot_boron.name=硼锭 item.ingot_c4.name=一块C-4 item.ingot_cadmium.name=镉锭 item.ingot_calcium.name=钙锭 -item.ingot_cdalloy.name=镉钢锭 -item.ingot_chainsteel.name=重链钢 +item.ingot_cdalloy.name=镉钢合金锭 +item.ingot_cft.name=结晶富勒烯 +item.ingot_chainsteel.name=沉重链钢 item.ingot_co60.name=钴-60锭 item.ingot_cobalt.name=钴锭 item.ingot_combine_steel.name=CMB钢锭 @@ -2808,14 +2889,15 @@ item.ingot_red_copper.name=紫铜锭 item.ingot_reiium.name=雷恩锭 item.ingot_rubber.name=橡胶锭 item.ingot_saturnite.name=土星锭 -item.ingot_schrabidate.name=Sa酸铁锭 -item.ingot_schrabidium.name=Sa326锭 -item.ingot_schrabidium_fuel.name=Sa326燃料锭 -item.ingot_schraranium.name=低丰度Sa326锭 -item.ingot_schraranium.desc=在Sa326嬗变器中由铀制成 -item.ingot_semtex.name=塞姆汀塑胶炸药块 -item.ingot_smore.name=S'more 锭 -item.ingot_solinium.name=Sa327锭 +item.ingot_schrabidate.name=Sa326元素酸化铁锭 +item.ingot_schrabidium.name=Sa326异变铀金属锭 +item.ingot_schrabidium_fuel.name=Sa326异变铀金属燃料锭 +item.ingot_schraranium.name=低丰度Sa326异变铀金属锭 +item.ingot_schraranium.desc=在Sa326异变铀金属嬗变器中由铀锭嬗变而来 +item.ingot_semtex.name=塞姆汀塑胶炸药 +item.ingot_semtex.desc=塞姆汀H塑料炸药$适用于多种应用的明星炸药.$可食用 +item.ingot_smore.name=S'more饼干 +item.ingot_solinium.name=Sa327索林锭 item.ingot_sr90.name=锶-90锭 item.ingot_starmetal.name=§9星辉锭§r item.ingot_steel.name=钢锭 @@ -2859,12 +2941,17 @@ item.iv_xp.name=经验包 item.iv_xp_empty.name=空的经验包 item.jackt.name=时尚防弹夹克 item.jackt2.name=时尚防弹夹克2:东京漂移 -item.jetpack_boost.name=弹跳背包 -item.jetpack_break.name=缓降背包 +item.jetpack.desc=本身可单独穿戴! +item.jetpack_boost.name=强力喷气背包 +item.jetpack_boost.desc=拥有强劲动力的矢量喷气背包.$燃油消耗量大幅增加. +item.jetpack_break.name=建筑工喷气背包 +item.jetpack_break.desc=可以让你在空中自动悬停的常规动力喷气背包.$潜行将关闭悬停模式.$悬停模式将消耗更少的燃料并增加你的空中机动性. item.jetpack_fly.name=喷气背包 +item.jetpack_fly.desc=常规动力喷气背包,提供简单的上升动力. item.jetpack_tank.name=喷气背包备用燃料罐 item.jetpack_vector.name=矢量喷气背包 -item.journal_bj.name=被威士忌浸透的笔记本 +item.jetpack_vector.desc=超高机动性喷气背包.$更高的燃料消耗率. +item.journal_bj.name=被威士忌泡湿透的笔记本 item.journal_pip.name=生存主义者日记 item.journal_silver.name=承包商注释 item.key.name=钥匙 @@ -2885,7 +2972,9 @@ item.laser_crystal_digamma.name=Digamma迪伽马激光晶体 item.laser_crystal_dnt.desc=双聚态中子-Spark费米子超晶体 item.laser_crystal_dnt.name=Spark激光晶体 item.lead_gavel.name=铅槌 +item.lead_gavel.desc=你被判决为铅中毒. item.lemon.name="柠檬" +item.lemon.desc=嗯,不错. item.letter.name=快捷邮件 item.levitation_unit.name=重力控制器 item.lignite.name=褐煤 @@ -2898,7 +2987,9 @@ item.liquidator_plate.name=核废土清道夫套装胸甲 item.lithium.name=锂锭 item.lodestone.name=磁石 item.loop_stew.name=程序猿专属早餐 +item.loop_stew.desc=一份非常非常非常健康的早餐. item.loops.name=五彩麦圈 +item.loops.desc=bro,我能拿你一些麦圈吗? item.loot_10.name=10号导弹战利箱 item.loot_15.name=15号导弹战利箱 item.loot_misc.name=普通导弹战利箱 @@ -2925,28 +3016,44 @@ item.mechanism_rifle_2.name=先进步枪机构 item.mechanism_special.name=高科技武器机构 item.med_bag.name=医疗包 item.med_ipecac.name=吐根酊催吐剂 +item.med_ipecac.desc=苦涩的果汁会使你的胃$强行排出里面的东西. item.med_ptsd.name=PTSD治疗药物 +item.med_ptsd.desc=这根本不是PTSD治疗药物,$只是换了个瓶子装的吐根酊! item.med_schiziphrenia.name=抗精神分裂症药物 +item.med_schiziphrenia.desc=求求了,让那声音消失,就一会儿.$ $...$最好不要服用. item.medal_liquidator.name=核废土清道夫勋章 item.meltdown_tool.name=达洛夫快速熔毁装置 -item.memespoon.name=§ee花园园丁 +item.memespoon.name=§e花园园丁 +item.memespoon.desc=§810级铲子$§b持用者在火箭跳跃时可造成暴击$§c减缓 20%% 开火速度$§c没有随机的暴击 item.memory.name=item.null.name item.mese_gavel.name=Mese槌 item.mese_pickaxe.name=Mese镐 item.meteor_charm.name=陨石项链 item.meteor_remote.name=陨石召唤器 item.meteorite_sword.name=陨石剑 -item.meteorite_sword_seared.name=陨石剑(烧焦) -item.meteorite_sword_reforged.name=陨石剑(重铸) -item.meteorite_sword_hardened.name=陨石剑(硬化) -item.meteorite_sword_alloyed.name=陨石剑(合金) -item.meteorite_sword_machined.name=陨石剑(机械加工) -item.meteorite_sword_treated.name=陨石剑(精制) -item.meteorite_sword_etched.name=陨石剑(刻蚀) -item.meteorite_sword_bred.name=陨石剑(增殖) -item.meteorite_sword_irradiated.name=陨石剑(辐照) -item.meteorite_sword_fused.name=陨石剑(熔融) -item.meteorite_sword_baleful.name=陨石剑(凶恶) +item.meteorite_sword.desc=由一颗坠落之星锻造而成$比大多数地球上的刀刃锋利 +item.meteorite_sword_seared.name=陨石剑 (炽热) +item.meteorite_sword_seared.desc=火焰增强了刀刃$让它更加强大 +item.meteorite_sword_reforged.name=陨石剑 (重铸) +item.meteorite_sword_reforged.desc=这把剑已经被重铸了$以改正过去的缺陷 +item.meteorite_sword_hardened.name=陨石剑 (硬化) +item.meteorite_sword_hardened.desc=极高的压力让$刀刃进一步的硬化了 +item.meteorite_sword_alloyed.name=陨石剑 (合金化) +item.meteorite_sword_alloyed.desc==钴元素填充剑身上的裂缝$进一步加强了这把剑 +item.meteorite_sword_machined.name=陨石剑 (机械加工) +item.meteorite_sword_machined.desc=使用了先进的机械来$进一步改进刀刃 +item.meteorite_sword_treated.name=陨石剑 (治疗) +item.meteorite_sword_treated.desc=化学物质的应用使$这把剑更加强大 +item.meteorite_sword_etched.name=陨石剑 (蚀刻) +item.meteorite_sword_etched.desc=酸清洗了原材料,$打造出了这把完美的剑 +item.meteorite_sword_bred.name=陨石剑 (增殖) +item.meteorite_sword_bred.desc=巨大的热量和辐射$压缩了这把剑的材料 +item.meteorite_sword_irradiated.name=陨石剑 (辐照处理) +item.meteorite_sword_irradiated.desc=原子的力量$赋予了这把剑新的力量 +item.meteorite_sword_fused.name=陨石剑 (熔融) +item.meteorite_sword_fused.desc=这把剑已经沐浴过了$来自星星的远古力量 +item.meteorite_sword_baleful.name=陨石剑 (B.F野火烧炼处理) +item.meteorite_sword_baleful.desc=这把剑在远远超过$正常材料所能承受的温度下被锻造出来 item.mike_cooling_unit.name=氘冷却装置 item.mike_core.name=铀涂层氘罐 item.mike_deut.name=氘罐 @@ -2981,6 +3088,7 @@ item.missile_nuclear_cluster.name=热核导弹 item.missile_rain.name=炸弹雨 item.missile_schrabidium.name=Sa326导弹 item.missile_shuttle.name=万金罗宾航天飞机 +item.missile_shuttle.desc=今夜, 在bo''om gear真人秀上:$James吸含铅汽油吸嗨了,$Richard把整个项目的预算都花在了$一张损坏的PNG色图文件上,$而我忘记了打开RBMK反应堆的$水循环系统,等反应过来,$整个基地都被炸飞了. item.missile_skin_camo.name=导弹外壳:迷彩 item.missile_skin_color.desc=我再也找不到我的导弹了! item.missile_skin_desert.name=导弹外壳:沙漠迷彩 @@ -3000,6 +3108,7 @@ item.missile_skin_soviet_glory.desc=услуга перевода недосту item.missile_skin_soviet_stank.name=导弹外壳:苏维埃不朽 item.missile_skin_soviet_stank.desc=这个真的很有60年代的味道。 item.missile_soyuz.name=联盟-FG运载火箭 +item.missile_soyuz.desc=Skin:$Original$Luna Space Center$Post War item.missile_soyuz_lander.name=联盟号轨道舱 item.missile_soyuz_lander.desc=劣质着陆器! item.missile_strong.name=强化型高爆导弹 @@ -3010,8 +3119,8 @@ item.mold_base.name=毛坯铸造模具 item.mold.name=铸造模具 item.morning_glory.name=牵牛花 item.motor.name=马达 -item.motor_bismuth.name=铋马达 -item.motor_desh.name=Desh马达 +item.motor_bismuth.name=铋制马达 +item.motor_desh.name=德什制马达 item.mp_c_1.name=1级导弹制导芯片 item.mp_c_2.name=2级导弹制导芯片 item.mp_c_3.name=3级导弹制导芯片 @@ -3146,6 +3255,7 @@ item.multitool_miner.name=动力拳套[采矿激光] item.multitool_silk.name=动力拳套[精准采集] item.multitool_sky.name=动力拳套[划破天际] item.mysteryshovel.name=易碎锹 +item.mysteryshovel.desc=失去了却没有被忘记 item.n2_charge.name=大型炸药 item.neutrino_lens.name=中子透镜 item.neutron_reflector.name=中子反射板 @@ -3260,31 +3370,31 @@ item.ore.titanium=钛 item.ore.tungsten=钨 item.ore.thorium=钍 item.ore.uranium=铀 -item.ore_bedrock.name=基岩%s矿 -item.ore_byproduct.b_aluminium.name=铝晶体碎片 -item.ore_byproduct.b_bismuth.name=铋晶体碎片 -item.ore_byproduct.b_calcium.name=钙晶体碎片 -item.ore_byproduct.b_copper.name=铜晶体碎片 -item.ore_byproduct.b_iron.name=铁晶体碎片 -item.ore_byproduct.b_lead.name=铅晶体碎片 -item.ore_byproduct.b_lithium.name=锂晶体碎片 -item.ore_byproduct.b_polonium.name=钋晶体碎片 -item.ore_byproduct.b_radium.name=镭晶体碎片 -item.ore_byproduct.b_silicon.name=硅晶体碎片 -item.ore_byproduct.b_sulfur.name=硫晶体碎片 -item.ore_byproduct.b_technetium.name=锝晶体碎片 -item.ore_byproduct.b_titanium.name=钛晶体碎片 -item.ore_byproduct.b_uranium.name=铀晶体碎片 -item.ore_centrifuged.name=离心%s矿 -item.ore_cleaned.name=清洁%s矿 -item.ore_deepcleaned.name=深清洁%s矿 -item.ore_enriched.name=富集%s矿 -item.ore_nitrated.name=硝化%s矿 -item.ore_nitrocrystalline.name=亚硝基结晶%s矿 -item.ore_purified.name=净化%s矿 -item.ore_radcleaned.name=经辐射清洁的%s矿 -item.ore_seared.name=灼热的%s矿 -item.ore_separated.name=分离的%s矿 +item.ore_bedrock.name=%s 基岩矿粉 +item.ore_byproduct.b_aluminium.name=结晶铝碎片 +item.ore_byproduct.b_bismuth.name=结晶铋碎片 +item.ore_byproduct.b_calcium.name=结晶钙碎片 +item.ore_byproduct.b_copper.name=结晶铜碎片 +item.ore_byproduct.b_iron.name=结晶铁碎片 +item.ore_byproduct.b_lead.name=结晶铅碎片 +item.ore_byproduct.b_lithium.name=结晶锂碎片 +item.ore_byproduct.b_polonium.name=结晶钋碎片 +item.ore_byproduct.b_radium.name=结晶镭碎片 +item.ore_byproduct.b_silicon.name=结晶硅碎片 +item.ore_byproduct.b_sulfur.name=结晶硫碎片 +item.ore_byproduct.b_technetium.name=结晶锝碎片 +item.ore_byproduct.b_titanium.name=结晶钛碎片 +item.ore_byproduct.b_uranium.name=结晶铀碎片 +item.ore_centrifuged.name=离心 %s 基岩矿粉 +item.ore_cleaned.name=洗净 %s 基岩矿粉 +item.ore_deepcleaned.name=深度清洁 %s 基岩矿粉 +item.ore_enriched.name=富集 %s 基岩矿粉 +item.ore_nitrated.name=硝化 %s 基岩矿粉 +item.ore_nitrocrystalline.name=硝化结晶 %s 基岩矿粉 +item.ore_purified.name=纯化 %s 基岩矿粉 +item.ore_radcleaned.name=辐照清洁 %s 基岩矿粉 +item.ore_seared.name=灼烧 %s 基岩矿粉 +item.ore_separated.name=分离提纯 %s 基岩矿粉 item.overfuse.name=奇异螺丝刀 item.overfuse.desc=说啥? item.oxy_mask.name=氧气面罩 @@ -3325,6 +3435,7 @@ item.particle_strange.name=奇夸克胶囊 item.particle_tachyon.name=超光速粒子密封胶囊 item.parts_legendary.name=传奇零件 item.peas.name=豌豆 +item.peas.desc=他接受了你的贡品. item.pedestal_steel.name=钢底座 item.pellet_advanced.name=高级Watz性能增强剂 item.pellet_antimatter.name=反物质团 @@ -3411,6 +3522,7 @@ item.plan_c.desc=致死 item.plant_item.mustardwillow.name=芥子柳叶 item.plant_item.rope.name=麻绳 item.plant_item.tobacco.name=烟叶 +item.plastic_bag.name=塑料袋 item.plate_advanced_alloy.name=高级合金板 item.plate_aluminium.name=铝板 item.plate_armor_ajr.name=铁皮装甲板 @@ -3446,6 +3558,7 @@ item.plate_saturnite.name=土星板 item.plate_schrabidium.name=Sa326板 item.plate_steel.name=钢板 item.plate_titanium.name=钛板 +item.plate_welded.name=焊接的%s板 item.polaroid.name=偏光片 item.pollution_detector.name=污染探测器 item.powder_actinium.name=锕粉 @@ -3456,6 +3569,7 @@ item.powder_asbestos.name=石棉粉 item.powder_asbestos.desc=§o\"Sniffffffff- MHHHHHHMHHHHHHHHH\"§r item.powder_ash.coal.name=煤灰 item.powder_ash.fly.name=飞尘 +item.powder_ash.fullerene.name=富勒烯 item.powder_ash.misc.name=灰尘 item.powder_ash.soot.name=细烟灰 item.powder_ash.wood.name=木灰 @@ -3476,7 +3590,7 @@ item.powder_caesium.name=铯粉 item.powder_calcium.name=钙粉 item.powder_cerium.name=铈粉 item.powder_cerium_tiny.name=小撮铈粉 -item.powder_chlorocalcite.name=氯方解石 +item.powder_chlorocalcite.name=氯方解石粉 item.powder_chlorophyte.name=叶绿粉 item.powder_cloud.name=云粉末 item.powder_co60.name=钴-60粉 @@ -3498,8 +3612,8 @@ item.powder_diamond.name=钻石粉 item.powder_dineutronium.name=双聚中子态素粉 item.powder_dura_steel.name=高速钢粉 item.powder_emerald.name=绿宝石粉 -item.powder_euphemium.name=Ep粉 -item.powder_euphemium.desc=粉红色$尝起来像草莓。 +item.powder_euphemium.name=Ep元素粉 +item.powder_euphemium.desc=粉色的粉末..$尝起来像草莓. item.powder_fertilizer.name=工业肥料 item.powder_fire.name=火焰粉 item.powder_fire.desc=用于多用途炸弹:燃烧弹很有趣! @@ -3578,6 +3692,7 @@ item.primer_buckshot.name=鹿弹底火[x12] item.protection_charm.name=守护项链 item.prototype_kit.name=原型 套件 item.pudding.name=布丁 +item.pudding.desc=如果他做了呢?$如果他没有呢?$如果这个世界是布丁做的呢? item.pwr_fuel.bfb_am_mix.name=燃料级镅压水堆BFB燃料棒 item.pwr_fuel.bfb_pu241.name=钚-241压水堆BFB棒 item.pwr_fuel.hea242.name=HEA-242 高浓缩度镅-242压水堆燃料棒 @@ -3628,44 +3743,45 @@ item.radaway.name=消辐宁 item.radaway_flush.name=超级消辐宁 item.radaway_strong.name=强效消辐宁 item.radx.name=防辐射药 -item.radx.desc=在3分钟内增加0.2(37%)的抗辐射能力 -item.rag.name=布 -item.rag_damp.name=湿布 -item.rag_piss.name=沾有尿的布 -item.rbmk_fuel_balefire.name=RBMK反应堆野火燃料棒 -item.rbmk_fuel_balefire_gold.name=RBMK反应堆激活态金-198燃料棒 -item.rbmk_fuel_drx.name=§cRBMK反应堆F迪伽马粒子燃料棒§r -item.rbmk_fuel_empty.name=空 RBMK反应堆燃料棒 -item.rbmk_fuel_flashlead.name=RBMK反应堆闪光铅燃料棒 -item.rbmk_fuel_hea241.name=HEA-241 RBMK反应堆高浓缩度镅-241燃料棒 -item.rbmk_fuel_hea242.name=HEA-242 RBMK反应堆高浓缩度镅-242燃料棒 -item.rbmk_fuel_heaus.name=HEAus RBMK反应堆高浓缩度奥斯燃料棒 -item.rbmk_fuel_hen.name=HEN RBMK反应堆高浓缩度镎燃料棒 -item.rbmk_fuel_hes.name=HES RBMK反应堆高浓缩度Sa326燃料棒 -item.rbmk_fuel_hep.name=HEP-239 RBMK反应堆高浓缩度钚-239燃料棒 -item.rbmk_fuel_hep241.name=HEP-241 RBMK反应堆高浓缩度钚-241燃料棒 -item.rbmk_fuel_heu233.name=HEU-233 RBMK反应堆高浓缩度铀-233燃料棒 -item.rbmk_fuel_heu235.name=HEU-235 RBMK反应堆高浓缩度铀-235燃料棒 -item.rbmk_fuel_lea.name=LEA RBMK反应堆低浓缩度镅-242燃料棒 -item.rbmk_fuel_leaus.name=LEAus RBMK反应堆低浓缩度奥斯燃料棒 -item.rbmk_fuel_lep.name=LEP RBMK反应堆低浓缩度钚-239燃料棒 -item.rbmk_fuel_les.name=LES RBMK反应堆低浓缩度Sa326燃料棒 -item.rbmk_fuel_mea.name=MEA RBMK反应堆中浓缩度镅-242燃料棒 -item.rbmk_fuel_men.name=MEN RBMK反应堆中浓缩度镎-237燃料棒 -item.rbmk_fuel_mep.name=MEP RBMK反应堆中浓缩度钚-239燃料棒 -item.rbmk_fuel_mes.name=MES RBMK中浓缩度Sa326燃料棒 -item.rbmk_fuel_meu.name=MEU RBMK中浓缩度铀-235燃料棒 -item.rbmk_fuel_mox.name=MOX RBMK反应堆燃料棒 -item.rbmk_fuel_po210be.name=钋210-铍 RBMK反应堆中子源 -item.rbmk_fuel_pu238be.name=钚238-铍 RBMK反应堆中子源 -item.rbmk_fuel_ra226be.name=镭226-铍 RBMK反应堆中子源 -item.rbmk_fuel_thmeu.name=ThMEU RBMK反应堆中浓缩度铀-233导向钍燃料棒 -item.rbmk_fuel_ueu.name=NU RBMK反应堆未浓缩铀燃料棒 -item.rbmk_fuel_zfb_am_mix.name=ZFB 燃料级镅RBMK反应堆燃料棒 -item.rbmk_fuel_zfb_bismuth.name=ZFB 铋RBMK反应堆燃料棒 -item.rbmk_fuel_zfb_pu241.name=ZFB 钚-241RBMK反应堆燃料棒 -item.rbmk_lid.name=RBMK反应堆覆盖层 -item.rbmk_lid_glass.name=RBMK反应堆玻璃覆盖层 +item.radx.desc=增加0.2(37%%)的抗辐射能力,持续3分钟 +item.rag.name=破布 +item.rag.desc=丢进水中合成湿破布.$右击尿在破布上. +item.rag_damp.name=湿破布 +item.rag_piss.name=尿湿润的破布 +item.rbmk_fuel_balefire.name=RBMK石墨式反应堆野火燃料棒 +item.rbmk_fuel_balefire_gold.name=激活态金-198 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_drx.name=§cϜ迪伽马粒子 RBMK石墨式反应堆燃料棒§r +item.rbmk_fuel_empty.name=空 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_flashlead.name=激活态铅 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_hea241.name=HEA-241 高浓缩度镅-241 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_hea242.name=HEA-242 高浓缩度镅-242 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_heaus.name=HEAus 高浓缩度奥金 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_hen.name=HEN 高浓缩度镎-237 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_hes.name=HES 高浓缩度Sa-326 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_hep.name=HEP-239 高浓缩度钚-239 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_hep241.name=HEP-241 高浓缩度钚-241 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_heu233.name=HEU-233 高浓缩度铀-233 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_heu235.name=HEU-235 高浓缩度铀-235 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_lea.name=LEA 低浓缩度镅-242 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_leaus.name=LEAus 低浓缩度奥金 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_lep.name=LEP 低浓缩度钚-239 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_les.name=LES 低浓缩度Sa-326 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_mea.name=MEA 中浓缩度镅-242 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_men.name=MEN 中浓缩度镎-237 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_mep.name=MEP 中浓缩度钚-239 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_mes.name=MES 中浓缩度Sa-326 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_meu.name=MEU 中浓缩度铀-235 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_mox.name=MOX 钚-铀混合RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_po210be.name=钋210-铍RBMK石墨式反应堆中子源 +item.rbmk_fuel_pu238be.name=钚238-铍RBMK石墨式反应堆中子源 +item.rbmk_fuel_ra226be.name=镭226-铍RBMK石墨式反应堆中子源 +item.rbmk_fuel_thmeu.name=ThMEU 中浓缩度铀-235导向钍 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_ueu.name=NU 未浓缩铀 RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_zfb_am_mix.name=ZFB 锆混合反应堆级镅快速增殖式RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_zfb_bismuth.name=ZFB 锆混合铋快速增殖式RBMK石墨式反应堆燃料棒 +item.rbmk_fuel_zfb_pu241.name=ZFB 锆混合钚-241快速增殖式RBMK石墨式反应堆燃料棒 +item.rbmk_lid.name=RBMK石墨式反应堆覆盖层 +item.rbmk_lid_glass.name=RBMK石墨式反应堆玻璃覆盖层 item.rbmk_pellet_balefire.name=野火燃料芯块 item.rbmk_pellet_balefire_gold.name=激活态金-198燃料芯块 item.rbmk_pellet_drx.name=§cF迪伽马粒子燃料芯块§r @@ -3816,16 +3932,16 @@ item.rod_lithium.name=锂棒 item.rod_mox_fuel.name=核反应堆 MOX燃料棒 item.rod_mox_fuel_depleted.name=核反应堆 枯竭MOX燃料棒 item.rod_neptunium.name=镎燃料棒 -item.rod_of_discord.name=混沌传送杖 +item.rod_of_discord.name=混沌传送法杖 item.rod_plutonium.name=钚棒 -item.rod_plutonium_fuel.name=核反应堆 钚燃料棒 -item.rod_plutonium_fuel_depleted.name=核反应堆 枯竭钚燃料棒 -item.rod_polonium.name=钋棒 -item.rod_pu238.name=钚-238燃料棒 -item.rod_pu239.name=钚-239燃料棒 -item.rod_pu240.name=钚-240燃料棒 -item.rod_quad_balefire.name=四联野火燃料棒 -item.rod_quad_balefire_blazing.name=炽热的四联野火燃料棒 +item.rod_plutonium_fuel.name=钚燃料棒 +item.rod_plutonium_fuel_depleted.name=枯竭钚燃料棒 +item.rod_polonium.name=钋-210棒 +item.rod_pu238.name=钚238燃料棒 +item.rod_pu239.name=钚239燃料棒 +item.rod_pu240.name=钚240燃料棒 +item.rod_quad_balefire.name=四联BF燃料棒 +item.rod_quad_balefire_blazing.name=炽热的四联BF燃料棒 item.rod_quad_coolant.name=四联燃料棒[冷却液] item.rod_quad_euphemium.name=枯竭的四联Sa326燃料棒 item.rod_quad_lead.name=四联铅棒 @@ -3933,16 +4049,18 @@ item.sat_resonator.name=X晶体共振卫星 item.sat_scanner.name=绘测和资源探测卫星 item.sawblade.name=锯片 item.schnitzel_vegan.name=“素”肉排 -item.schrabidium_axe.name=Sa326斧 -item.schrabidium_boots.name=Sa326靴子 -item.schrabidium_hammer.name=Sa326锤 -item.schrabidium_helmet.name=Sa326头盔 -item.schrabidium_hoe.name=Sa326锄 -item.schrabidium_legs.name=Sa326护腿 -item.schrabidium_pickaxe.name=Sa326镐 -item.schrabidium_plate.name=Sa326胸甲 -item.schrabidium_shovel.name=Sa326锹 -item.schrabidium_sword.name=Sa326剑 + +item.schrabidium_axe.name=Sa326异变铀金属斧 +item.schrabidium_boots.name=Sa326异变铀金属靴子 +item.schrabidium_hammer.name=Sa326异变铀金属锤 +item.schrabidium_hammer.desc=尽管上面写着 "+1000000000"$的伤害", 但它实际上是 "一击必杀任何东西" +item.schrabidium_helmet.name=Sa326异变铀金属头盔 +item.schrabidium_hoe.name=Sa326异变铀金属锄 +item.schrabidium_legs.name=Sa326异变铀金属护腿 +item.schrabidium_pickaxe.name=Sa326异变铀金属镐 +item.schrabidium_plate.name=Sa326异变铀金属胸甲 +item.schrabidium_shovel.name=Sa326异变铀金属锹 +item.schrabidium_sword.name=Sa326异变铀金属剑 item.scrap.name=废料 item.scrap_nuclear.name=放射性废料 item.scrap_oil.name=油性废料 @@ -3964,10 +4082,14 @@ item.servo_set.name=伺服装置 item.servo_set_desh.name=Desh伺服装置 item.shackles.name=枷锁 item.shimmer_axe.name=闪耀斧 +item.shimmer_axe.desc=木材! +item.shimmer_axe.desc.hide=shim的工具箱得到了 扩-展 item.shimmer_axe_head.name=重型斧头 item.shimmer_handle.name=强化聚合物手柄 item.shimmer_head.name=重型锤头 item.shimmer_sledge.name=闪耀锤 +item.shimmer_sledge.desc=可以破坏一切东西,甚至包括传送门方块. +item.shimmer_sledge.desc.hide=shimmer别$放下那把锤子$你会伤到别人的$shimmer别$shimmer求你了 item.singularity.name=奇点 item.singularity_counter_resonant.name=可控反振谐奇点 item.singularity_micro.name=微型奇点 @@ -4055,7 +4177,7 @@ item.steel_shovel.name=钢锹 item.steel_sword.name=钢剑 item.stick_c4.name=C-4炸药棒 item.stick_dynamite.name=炸药棒 -item.stick_dynamite_fishing.name=捕鱼炸药棒 +item.stick_dynamite_fishing.name=炸鱼用炸药棒 item.stick_semtex.name=塞姆汀塑胶炸药棒 item.stick_tnt.name=TNT棒 item.stopsign.name=停车标志战斧 @@ -4089,6 +4211,7 @@ item.tank_waste_7.name=泥浆容器 item.tank_waste_8.name=泥浆容器 item.telepad.name=传送部件 item.tem_flakes.name=Tem薄片 +item.tem_flakes.desc=能回复一颗心的廉价Tem薄片!!!$能回复一颗心的Tem薄片$能回复生命值的Tem薄片(昂贵) item.template_folder.name=机器模板文件夹 item.template_folder.desc=机器模板:纸张+染料$流体识别码:铁板+染料$锻模:空白锻模 $警报声轨:绝缘体+钢板 item.test_nuke_igniter.name=点火器 @@ -4119,10 +4242,10 @@ item.titanium_shovel.name=钛锹 item.titanium_sword.name=钛剑 item.toothpicks.name=牙签 item.train.cargo_tram.name=平板载货电车 -item.trenchmaster_boots.name=Trenchmaster的靴子 -item.trenchmaster_helmet.name=Trenchmaster的头盔 -item.trenchmaster_legs.name=Trenchmaster的护腿 -item.trenchmaster_plate.name=Trenchmaster的胸甲 +item.trenchmaster_boots.name=战术大师的靴子 +item.trenchmaster_helmet.name=战术大师的头盔 +item.trenchmaster_legs.name=战术大师的护腿 +item.trenchmaster_plate.name=战术大师的胸甲 item.trinitite.name=玻璃石 item.tritium_deuterium_cake.name=氚氘饼 item.tritium_deuterium_cake.desc=不是真正的蛋糕,而是很棒的$聚变燃料! @@ -4142,7 +4265,9 @@ item.turret_rocket_ammo.name=火箭炮塔弹药 item.turret_spitfire_ammo.name=防空炮弹 item.turret_tau_ammo.name=陶子炮塔铀弹药 item.twinkie.name=小蛋糕 +item.twinkie.desc=600年前就过期了! item.ullapool_caber.name=阿勒浦长木杆 +item.ullapool_caber.desc=苏格兰式高效面部切除术.$一个清醒的人会扔掉它... item.undefined.name=形态未定义物质 item.upgrade_5g.name=5G辐射发射器升级 item.upgrade_afterburn_1.name=一级粉色机器升级 @@ -4183,7 +4308,14 @@ item.v1.name=V1 item.volcanic_pickaxe.name=熔岩镐 item.wand_d.name=调试魔杖 item.wand_k.name=建筑魔杖 +item.wand_k.block=保存的方块: %s +item.wand_k.desc=创造模式专有物品$"毁灭往往带来创造"$(右击以选择点,$shift右击选择放置方块种类!) +item.wand_k.null=未选择位置! +item.wand_k.pos=坐标: %s, %s, %s item.wand_s.name=结构魔杖 +item.wand_s.desc=创造模式专有物品$"每个人都能使用的快速建造多方块结构的工具!"$(shift右击以切换到下一结构,$右击以生成结构!) +item.structure_custommachine.name=自定义机器结构输出杖 +item.structure_custommachine.desc=点击自定义机器结构定位锚以确认$自定义机器核心块的位置.$将Position1和Position2之间所有方块$以及其metadata数据一起输出到hbmConfig下的"CMstructureOutput.txt". item.warhead_buster_large.name=大型掩体破坏弹头 item.warhead_buster_medium.name=中型掩体破坏弹头 item.warhead_buster_small.name=小型掩体破坏弹头 @@ -4265,22 +4397,27 @@ item.wire_schrabidium.name=Sa326线 item.wire_tungsten.name=钨线 item.wiring_red_copper.name=电缆卷 item.wood_gavel.name=木槌 +item.wood_gavel.desc=砰砰! item.wrench.name=管道扳手 -item.wrench_archineer.name=Archineer扳手 +item.wrench.desc=机械师理查德 +item.wrench_archineer.name=Archineer的扳手 item.wrench_flipped.name=刺刀扳手 -item.xanax.name=NAXA 抗迪伽马药物 -item.xanax.desc=移除500mDRX迪伽马辐射 +item.wrench_flipped.desc=扳手2:扳手 +item.xanax.name=NAXA 抗Ϝ迪伽马辐射药物 +item.xanax.desc=移除500mDRX的Ϝ迪伽马辐射 item.zirconium_legs.name=锆质护腿 -itemGroup.tabBlocks=HBM 矿石和方块 -itemGroup.tabConsumable=HBM 食物和装备 -itemGroup.tabControl=HBM 机器项目和燃料 -itemGroup.tabMachine=HBM 机器 -itemGroup.tabMissile=HBM 导弹和卫星 -itemGroup.tabNuke=HBM 炸弹 -itemGroup.tabParts=HBM 资源和零件 -itemGroup.tabTemplate=HBM 模板 -itemGroup.tabTest=HBM的核科技mod测试项[S166、Bismarck、nukesteve联合汉化] -itemGroup.tabWeapon=HBM 武器和炮塔 + +itemGroup.tabBlocks=核技术矿石和方块 +itemGroup.tabConsumable=核技术食物和装备 +itemGroup.tabControl=核技术机器项目和燃料 +itemGroup.tabMachine=核技术机器 +itemGroup.tabMissile=核技术导弹和卫星 +itemGroup.tabNuke=核技术炸弹 +itemGroup.tabParts=核技术资源和零件 +itemGroup.tabTemplate=核技术模板 +itemGroup.tabTest=HBM的核科技mod测试项[S166, Bismarck, nukesteve联合汉化] +itemGroup.tabWeapon=核技术武器和炮塔 + potion.hbm_bang=! ! ! potion.hbm_death=重度突变 potion.hbm_lead=铅中毒 @@ -4384,8 +4521,8 @@ tile.basalt_fluorite.name=富含氟石的玄武岩 tile.basalt_gem.name=富含宝石的玄武岩 tile.basalt_polished.name=抛光玄武岩 tile.basalt_smooth.name=平滑玄武岩 -tile.basalt_sulfur.name=富含硫的玄武岩 -tile.basalt_tiles.name=玄武岩砖 +tile.basalt_sulfur.name=富硫玄武岩 +tile.basalt_tiles.name=玄武岩瓦 tile.blast_door.name=防爆闸门 tile.block_actinium.name=锕块 tile.block_advanced_alloy.name=高级合金块 @@ -4396,16 +4533,16 @@ tile.block_bakelite.name=电木块 tile.block_beryllium.name=铍块 tile.block_bismuth.name=铋块 tile.block_boron.name=硼块 -tile.block_c4.name=C-4块 +tile.block_c4.name=C-4炸药块 tile.block_cadmium.name=镉块 -tile.block_cap_fritz.name=弗里茨瓶盖方块 -tile.block_cap_korl.name=Korl瓶盖方块 -tile.block_cap_nuka.name=核子可乐瓶盖方块 -tile.block_cap_quantum.name=樱桃味核子可乐瓶盖方块 -tile.block_cap_rad.name=辐射 S~核子可乐瓶盖方块 -tile.block_cap_sparkle.name=核子可乐瓶盖方块 -tile.block_cap_star.name=夕阳沙士星星瓶盖方块 -tile.block_cap_sunset.name=夕阳沙士瓶盖方块 +tile.block_cap_fritz.name=Fritz弗里茨可乐瓶盖压缩块 +tile.block_cap_korl.name=Korl库尔勒瓶盖压缩块 +tile.block_cap_nuka.name=核子可乐瓶盖压缩块 +tile.block_cap_quantum.name=樱桃味量子核子可乐瓶盖压缩块 +tile.block_cap_rad.name=辐射S~闪闪可乐瓶盖压缩块 +tile.block_cap_sparkle.name=S~闪闪可乐瓶盖压缩块 +tile.block_cap_star.name=夕阳沙士星星瓶盖压缩块 +tile.block_cap_sunset.name=夕阳沙士瓶盖压缩块 tile.block_cdalloy.name=镉钢块 tile.block_cobalt.name=钴块 tile.block_coke.coal.name=煤焦炭块 @@ -4568,9 +4705,9 @@ tile.charger.name=充电站 tile.cheater_virus.name=冻结Ep tile.cheater_virus_seed.name=不稳定Ep Schrabide块 tile.chimney_brick.name=烟囱 -tile.chimney_brick.desc=使用排气管连接污染机器$减少75%的污染排放 +tile.chimney_brick.desc=使用排气管连接污染机器$减少75%%的污染排放 tile.chimney_industrial.name=工业烟囱 -tile.chimney_industrial.desc=使用排气管连接污染机器$减少90%的污染排放 +tile.chimney_industrial.desc=使用排气管连接污染机器$减少90%%的污染排放 tile.chlorine_gas.name=氯气 tile.cluster_aluminium.name=铝矿簇 tile.cluster_copper.name=铜矿簇 @@ -4579,6 +4716,7 @@ tile.cluster_depth_titanium.name=深层钛矿簇 tile.cluster_depth_tungsten.name=深层钨矿簇 tile.cluster_iron.name=铁矿簇 tile.cluster_titanium.name=钛矿簇 +tile.custom_machine_anchor.name=自定义机器结构定位锚 tile.cm_block.alloy.name=高级合金机器外壳 tile.cm_block.desh.name=Desh机器外壳 tile.cm_block.steel.name=钢制机器外壳 @@ -4603,6 +4741,7 @@ tile.cm_tank.alloy.name=高级合金储罐 tile.cm_tank.desh.name=Desh储罐 tile.cm_tank.steel.name=钢制储罐 tile.cm_tank.tcalloy.name=锝钢储罐 +tile.cm_paperPress.name=压纸机 tile.cmb_brick.name=CMB钢瓦块 tile.cmb_brick_reinforced.name=加固CMB钢砖块 tile.compact_launcher.name=紧凑型发射台 @@ -4630,22 +4769,22 @@ tile.concrete_colored.red.name=红色混凝土 tile.concrete_colored.silver.name=淡灰色混凝土 tile.concrete_colored.white.name=白色混凝土 tile.concrete_colored.yellow.name=黄色混凝土 -tile.concrete_colored_ext.hazard.name=建筑商指定混凝土-危险地带 -tile.concrete_colored_ext.indigo.name=建筑商指定混凝土-深靛蓝 -tile.concrete_colored_ext.machine.name=建筑商指定混凝土-工业风 -tile.concrete_colored_ext.machine_stripe.name=建筑商指定混凝土-工业条纹 -tile.concrete_colored_ext.pink.name=建筑商指定混凝土-猛男粉 -tile.concrete_colored_ext.purple.name=建筑商指定混凝土-神秘紫 +tile.concrete_colored_ext.hazard.name=建筑玩家首选混凝土 - 警示条纹 +tile.concrete_colored_ext.indigo.name=建筑玩家首选混凝土 - 深靛色 +tile.concrete_colored_ext.machine.name=建筑玩家首选混凝土 - 工业风 +tile.concrete_colored_ext.machine_stripe.name=建筑玩家首选混凝土 - 工业条纹 +tile.concrete_colored_ext.pink.name=建筑玩家首选混凝土 - 猛男粉 +tile.concrete_colored_ext.purple.name=建筑玩家首选混凝土 - 神秘紫 tile.concrete_pillar.name=钢筋混凝土柱 -tile.concrete_slab.concrete.name=混凝土瓷砖板 -tile.concrete_slab.concrete_asbestos.name=石棉混凝土板 -tile.concrete_slab.concrete_smooth.name=混凝土板 -tile.concrete_slab.ducrete.name=高密度贫铀混凝土瓷砖板 -tile.concrete_slab.ducrete_smooth.name=高密度贫铀混凝土板 +tile.concrete_slab.concrete.name=混凝土瓷砖台阶 +tile.concrete_slab.concrete_asbestos.name=石棉夹层混凝土台阶 +tile.concrete_slab.concrete_smooth.name=混凝土台阶 +tile.concrete_slab.ducrete.name=贫铀高密度混凝土瓦台阶 +tile.concrete_slab.ducrete_smooth.name=贫铀高密度混凝土砖台阶 tile.concrete_smooth.name=混凝土 tile.concrete_smooth_stairs.name=混凝土楼梯 -tile.concrete_stairs.name=混凝土瓷砖楼梯 -tile.concrete_super.name=über混凝土 +tile.concrete_stairs.name=混凝土瓦楼梯 +tile.concrete_super.name=Über混凝土 tile.concrete_super_broken.name=发霉的碎片 tile.conveyor.name=输送带 tile.conveyor.desc=移动掉在上面的物品$可以用螺丝刀顺时针旋转$用螺丝刀按住Shift键单击以转弯 @@ -4695,7 +4834,7 @@ tile.deco_aluminium.name=铝装饰块 tile.deco_asbestos.name=石棉瓦 tile.deco_beryllium.name=铍装饰块 tile.deco_computer.ibm_300pl.name=IBM个人电脑300PL -tile.deco_emitter.name=Deco发光体 +tile.deco_emitter.name=装饰性激光发射器 tile.deco_lead.name=铅装饰块 tile.deco_rbmk.name=RBMK装饰块 tile.deco_rbmk_smooth.name=平滑RBMK装饰块 @@ -4755,10 +4894,10 @@ tile.drone_waypoint_request.name=物流无人机航路点 tile.door_bunker.name=仓门 tile.door_metal.name=金属门 tile.door_office.name=办公室门 -tile.ducrete.name=高密度贫铀混凝土瓷砖 -tile.ducrete_stairs.name=高密度贫铀混凝土瓷砖楼梯 -tile.ducrete_smooth.name=高密度贫铀混凝土 -tile.ducrete_smooth_stairs.name=高密度贫铀混凝土楼梯 +tile.ducrete.name=贫铀高密度混凝土瓦 +tile.ducrete_stairs.name=贫铀高密度混凝土瓦楼梯 +tile.ducrete_smooth.name=贫铀高密度混凝土 +tile.ducrete_smooth_stairs.name=贫铀高密度混凝土台阶 tile.dummy_block.name=虚拟方块 tile.dummy_port.name=虚拟方块[电力接口] tile.dungeon_chain.name=金属链 @@ -4779,7 +4918,7 @@ tile.fence_metal.name=铁丝网围栏 tile.field_disturber.name=高能场干扰机 tile.filing_cabinet.green.name=蒙尘的文件柜 tile.filing_cabinet.steel.name=钢制文件柜 -tile.fire_digamma.name=挥之不去的迪伽马之火 +tile.fire_digamma.name=挥之不去的迪伽玛之火 tile.fire_door.name=防火门 tile.fireworks.name=烟花箱 tile.fireworks.charges=已充能: %s @@ -4799,13 +4938,13 @@ tile.fluid_duct_solid.name=带涂层的通用流体导管 tile.fluid_switch.name=红石流体阀 tile.fluid_valve.name=流体阀 tile.foam_layer.name=泡沫层 -tile.foundry_basin.name=铸造盘 -tile.foundry_channel.name=铸造浇道 -tile.foundry_tank.name=铸造池 -tile.foundry_mold.name=浅铸造池 -tile.foundry_outlet.name=浇筑出口 -tile.foundry_slagtap.name=炉渣出口 -tile.fraction_spacer.name=分馏塔分隔器 +tile.foundry_basin.name=浇筑盆 +tile.foundry_channel.name=浇筑道 +tile.foundry_tank.name=储液池 +tile.foundry_mold.name=浅浇筑盆 +tile.foundry_outlet.name=浇筑口 +tile.foundry_slagtap.name=铸造出渣口 +tile.fraction_spacer.name=分馏塔分离器 tile.frozen_dirt.name=冰冻土 tile.frozen_grass.name=冰冻草 tile.frozen_log.name=冰冻原木 @@ -4856,6 +4995,7 @@ tile.gneiss_brick.name=页岩砖 tile.gneiss_chiseled.name=錾制页岩砖 tile.gneiss_tile.name=页岩瓷砖 tile.gravel_diamond.name=钻石砂砾 +tile.gravel_diamond.desc=这里有个笑话,$但我不太清楚它是什么.$ $上传日期, 2020-07-04:$我们否认一个笑话的任何含义,$因为它是如此的令人不愉快,$以至于让人们觉得眼睛刺痛.$$上传日期, 2020-17-04:$事实证明,“粉碎钻石”从来就不是一个真正的东西,$它让原本可能是个笑话$的东西变得毫无意义.$ tile.gravel_obsidian.name=碎黑曜石 tile.hadron_access.name=粒子加速器接入终端 tile.hadron_analysis.name=粒子加速器分析室壁 @@ -4872,32 +5012,32 @@ tile.hadron_coil_starmetal.name=密集星辉线圈 tile.hadron_cooler.name=粒子加速器冷却装置 tile.hadron_cooler.desc=冷却功率:10$过冷阈值:10$冷却加成:+10%%$过冷惩罚:-25%% tile.hadron_cooler_mk2.name=粒子加速器冷却装置-回文特制 -tile.hadron_cooler_mk2.desc=冷却功率:5$效率功能:2-(冷却-15)2/225$最高惩罚:-90%% -tile.hadron_core.name=粒子加速器核心组件 -tile.hadron_diode.name=肖基特二极管 -tile.hadron_plating.name=粒子加速器镀层 -tile.hadron_plating_black.name=粒子加速器镀层 (黑) -tile.hadron_plating_blue.name=粒子加速器镀层 (蓝) -tile.hadron_plating_glass.name=粒子加速器镀层 (窗口) -tile.hadron_plating_striped.name=粒子加速器镀层(低温危险) -tile.hadron_plating_voltz.name=粒子加速器镀层 (VOLTZ) -tile.hadron_plating_yellow.name=粒子加速器镀层(Yello染料) -tile.hadron_power.name=粒子加速器电源接口 -tile.hadron_power_10m.name=粒子加速器电源接口(10MHE) -tile.hadron_power_100m.name=粒子加速器电源接口(100MHE) -tile.hadron_power_1g.name=粒子加速器电源接口(1GHE) -tile.hadron_power_10g.name=粒子加速器电源接口(10GHE) +tile.hadron_cooler_mk2.desc=冷却功率:5$效率函数:2-(冷却功率-15)²/225$最高惩罚:-90%% +tile.hadron_core.name=粒子加速器核心部件 +tile.hadron_diode.name=肖特基粒子二极管 +tile.hadron_plating.name=粒子加速器电镀层 +tile.hadron_plating_black.name=粒子加速器电镀层 (黑色) +tile.hadron_plating_blue.name=粒子加速器电镀层 (蓝色) +tile.hadron_plating_glass.name=粒子加速器电镀层 (窗口) +tile.hadron_plating_striped.name=粒子加速器电镀层 (炫酷的警示条纹) +tile.hadron_plating_voltz.name=粒子加速器电镀层 (VOLTZ) +tile.hadron_plating_yellow.name=粒子加速器电镀层 (黄色) +tile.hadron_power.name=粒子加速器电力接口 (1MHE) +tile.hadron_power_10m.name=粒子加速器电力接口 (10MHE) +tile.hadron_power_100m.name=粒子加速器电力接口 (100MHE) +tile.hadron_power_1g.name=粒子加速器电力接口 (1GHE) +tile.hadron_power_10g.name=粒子加速器电力接口 (10GHE) tile.hazmat.name=防辐射布块 tile.heater_electric.name=电加热器 -tile.heater_electric.desc=利用电能产生热量$以85%的效率接受来自底部的热量$可使用螺丝刀进行配置。 +tile.heater_electric.desc=使用电能来产生热量.$可以85%%的效率接受来自底部的热量.$可用螺丝刀配置效率. tile.heater_firebox.name=燃烧室 tile.heater_firebox.desc=燃烧固体燃料以产生热量。 tile.heater_heatex.name=换热加热器 tile.heater_heatex.desc=从热流体中产生热量。 tile.heater_oilburner.name=流体燃烧器 tile.heater_oilburner.desc=燃烧可燃液体产生热量。 -tile.heater_oven.name=加热炉 -tile.heater_oven.desc=燃烧固体燃料以产生热量$以50%的效率接受来自底部的热量。 +tile.heater_oven.name=加热 +tile.heater_oven.desc=燃烧固体燃料以产生热量.$可以85%%的效率接受来自底部的热量. tile.hev_battery.name=盔甲电池 tile.impact_dirt.name=烧焦的泥土 tile.iter.name=聚变反应堆 @@ -4925,6 +5065,7 @@ tile.lox_barrel.name=液氧桶 tile.machine_amgen.name=环境辐射发电机 tile.machine_arc_furnace_off.name=电弧炉 tile.machine_arc_furnace_on.name=电弧炉 +tile.machine_arc_welder.name=弧焊机 tile.machine_armor_table.name=装甲改装台 tile.machine_ashpit.name=储灰槽 tile.machine_ashpit.desc=收集来自燃烧室和加热炉的灰烬 @@ -4984,7 +5125,8 @@ tile.machine_epress.name=电动锻压机 tile.machine_excavator.name=大型采矿钻机 tile.machine_fel.name=FEL自由电子激光器 tile.machine_fensu.name=FEnSU飞轮储能系统 -tile.machine_flare.name=高架火炬 +tile.machine_flare.name=废气燃烧塔 +tile.machine_flare.desc=可燃烧液体和排出气体$燃烧速率 §c10mB/t$排放速率 §c50mB/t$ $§e燃料效率:$§e-易燃气体: §c50%%$§e-易燃液体: §c10%% tile.machine_fluidtank.name=储罐 tile.machine_forcefield.name=力场发生器 tile.machine_fraction_tower.name=分馏塔 @@ -5050,7 +5192,7 @@ tile.machine_steam_engine.desc=效率:85% tile.machine_stirling.name=斯特林发电机 tile.machine_stirling.desc=它将热量转化为能量。这需要外部热源$传热率:T*0.1 TU/T$最大进气量:300 TU/T$效率:50% tile.machine_stirling_creative.name=创造斯特林发动机 -tile.machine_stirling_creative.desc=将热量转化为能量。需要外部热源$传热率:T*0.1 TU/T$无限吸热/T$效率:100% +tile.machine_stirling_creative.desc=将热量转化为能量。需要外部热源$传热率:T*0.1 TU/T$无限吸热/T$效率:100%% tile.machine_stirling_steel.name=重型斯特林发电机 tile.machine_stirling_steel.desc=它将热量转化为能量。这需要外部热源$使用更重的齿轮来支持更高的温度$传热率:T*0.1 TU/T$最大进气量:1500 TU/T$效率:50% tile.machine_storage_drum.name=核废料处理桶 @@ -5074,6 +5216,7 @@ tile.machine_zirnox.name=锆诺克斯核反应堆 tile.marker_structure.name=多方块结构信标 tile.mass_storage.name=大规模存储单元 tile.meteor_battery.name=星辉静电发生器 +tile.meteor_battery.desc=为特斯拉线圈提供无限电能 tile.meteor_brick.name=陨石砖 tile.meteor_brick_chiseled.name=錾制陨石砖 tile.meteor_brick_cracked.name=裂纹陨石砖 @@ -5093,14 +5236,18 @@ tile.ntm_dirt.name=泥土 tile.nuke_boy.name=小男孩 tile.nuke_custom.name=自定义核弹 tile.nuke_fleija.name=F.L.E.I.J.A. +tile.nuke_fleija.desc=适用于:$F.L.E.I.J.A. tile.nuke_fstbmb.name=BF炸弹 tile.nuke_gadget.name=小玩意 tile.nuke_man.name=胖子 tile.nuke_mike.name=常青藤迈克 -tile.nuke_n2.name=N2炸弹 +tile.nuke_n2.name=N²炸弹 +tile.nuke_n2.desc=适用于:$N²炸弹 tile.nuke_n45.name=N45水雷 tile.nuke_prototype.name=原型 +tile.nuke_prototype.desc=本不必如此的.$ $你这个怪物. tile.nuke_solinium.name=蔚蓝洗礼 +tile.nuke_solinium.desc=适用于:$蔚蓝洗礼 tile.nuke_tsar.name=沙皇炸弹 tile.oil_duct.name=输油管 tile.oil_duct_solid.name=粗输油管 @@ -5159,6 +5306,7 @@ tile.ore_nether_uranium.name=下界铀矿石 tile.ore_nether_uranium_scorched.name=烧焦的下界铀矿石 tile.ore_niter.name=硝石矿石 tile.ore_oil.name=油岩 +tile.ore_oil.desc=你不该把它挖出来的..$来吧,去拿个井架,你这个笨蛋. tile.ore_oil_empty.name=空油岩 tile.ore_oil_sand.name=沥青砂 tile.ore_random.name=%s 矿 @@ -5177,7 +5325,7 @@ tile.ore_uranium_scorched.name=烧焦的铀矿石 tile.ore_verticium.name=韦德赛矿石 tile.ore_volcano.name=地热裂缝 tile.ore_weidanium.name=魏丹矿石 -tile.part_emitter.name=Deco粒子发射器 +tile.part_emitter.name=装饰性粒子生成器 tile.pink_barrel.name=煤油桶 tile.pink_log.name=粉色原木 tile.pink_planks.name=粉色木板 @@ -5229,13 +5377,13 @@ tile.pwr_port.name=PWR接入端口 tile.pwr_port.desc=允许物品和液体交换$位置:组件 tile.pwr_reflector.name=PWR中子反射器 tile.pwr_reflector.desc=将中子通量反射回燃料棒$位置:网格,用于增加反应速率$可作为外壳材料 -tile.radio_telex.name=Telex Machine -tile.radio_torch_counter.name=红石无线项目计数器 -tile.radio_torch_counter.desc=平面或比较器兼容块上的标牌$根据匹配项目的数量发出信号 -tile.radio_torch_receiver.name=无线红石信号接收器 -tile.radio_torch_receiver.desc=可在平坦表面或与比较器兼容的方块上放置 -tile.radio_torch_sender.name=无线红石信号发射器 -tile.radio_torch_sender.desc=可在平坦表面或比较器兼容的方块上放置$读取红石信号或比较器输入 +tile.radio_telex.name=电报机 +tile.radio_torch_counter.name=红石无线物品计数器 +tile.radio_torch_counter.desc=平面或比较器兼容块上的标牌$根据匹配物品的数量发出信号 +tile.radio_torch_receiver.name=红石无线信号接收器 +tile.radio_torch_receiver.desc=可在平坦表面或与比较器兼容的块上放置 +tile.radio_torch_sender.name=红石无线信号发送器 +tile.radio_torch_sender.desc=可在平坦表面或与比较器兼容的块上放置$读取红石信号或比较器输入 tile.radiobox.name=无线怪物清除箱 tile.radiorec.name=坏掉的收音机 tile.rail_booster.name=高速动力轨道 @@ -5272,6 +5420,7 @@ tile.reactor_element.name=反应堆室 tile.reactor_hatch.name=反应堆端口 tile.reactor_inserter.name=反应堆燃料插入器 tile.red_barrel.name=炸药桶 +tile.red_barrel.desc=静态流体桶 tile.red_cable.name=紫铜电线 tile.red_cable_classic.name=紫铜电缆(经典型) tile.red_cable_gauge.name=功率计 @@ -5279,13 +5428,15 @@ tile.red_cable_gauge.desc=显示每刻在网络中流动的电力$的电缆$由 tile.red_cable_paintable.name=可涂漆紫铜线 tile.red_connector.name=电力连接器 tile.red_pylon.name=电线杆 +tile.red_pylon.desc=连接类型: §e单通道$连接范围: §e25m tile.red_pylon_large.name=大型输电塔 +tile.red_pylon_large.desc=连接类型: §e四通道$连接范围: §e100m$这个输电塔需要配合变电器使用! tile.red_wire_coated.name=密封紫铜电缆 tile.reinforced_brick.name=强化石头 tile.reinforced_brick_stairs.name=钢筋石楼梯 tile.reinforced_ducrete.name=加固高密度贫铀混凝土 tile.reinforced_glass.name=强化玻璃 -tile.reinforced_glass_pane.name=强化玻璃窗 +tile.reinforced_glass_pane.name=强化玻璃板 tile.reinforced_lamp_off.name=强化红石灯 tile.reinforced_lamp_on.name=强化红石灯 tile.reinforced_light.name=强化萤石 @@ -5349,7 +5500,7 @@ tile.stone_depth.name=深层岩石 tile.stone_depth_nether.name=下界深层岩石 tile.stone_gneiss.name=石墨页岩 tile.stone_porous.name=多孔石 -tile.stone_resource.asbestos.name=温石棉 +tile.stone_resource.asbestos.name=蛇纹石石棉 tile.stone_resource.bauxite.name=铝土矿 tile.stone_resource.hematite.name=赤铁矿 tile.stone_resource.limestone.name=石灰石 @@ -5362,8 +5513,9 @@ tile.struct_launcher_core_large.name=发射台核心组件 tile.struct_plasma_core.name=等离子加热器核心组件 tile.struct_scaffold.name=发射台骨架 tile.struct_soyuz_core.name=联盟号发射器核心组件 -tile.struct_watz_core.name=Watz发电厂核心组件 -tile.substation.name=变电站 +tile.struct_watz_core.name=Watz瓦茨电厂核心组件 +tile.substation.name=变电器 +tile.substation.desc=连接类型: §e四通道$连接范围: §e20m tile.sulfuric_acid_block.name=硫酸 tile.taint.name=腐质 tile.taint_barrel.name=IMP残渣桶 @@ -5388,10 +5540,10 @@ tile.turret_flamer.name=喷火炮塔 tile.turret_friendly.name=轻机枪炮塔“友好先生” tile.turret_fritz.name=重型火焰喷射器炮塔“弗里茨” tile.turret_heavy.name=重型机枪炮塔 -tile.turret_himars.name=火箭炮塔“亨利” -tile.turret_howard.name=双联守门员近防系统“霍华德” -tile.turret_howard_damaged.name=CIWS双联守门员近防系统 "玛士撒拉" -tile.turret_jeremy.name=重炮炮塔“杰里米” +tile.turret_himars.name=远程火箭弹炮塔"亨利" +tile.turret_howard.name=双管近防炮"霍华德" +tile.turret_howard_damaged.name=双管近防炮 "玛土撒拉" +tile.turret_jeremy.name=重炮炮台"杰米里" tile.turret_light.name=轻型机枪炮塔 tile.turret_maxwell.name=高能微波炮塔 "麦克斯韦" tile.turret_rocket.name=火箭炮塔 @@ -5406,8 +5558,8 @@ tile.vent_chlorine.name=氯气排气口 tile.vent_chlorine_seal.name=氯气容器 tile.vent_cloud.name=云排气口 tile.vent_pink_cloud.name=粉色云排气口 -tile.vinyl_tile.large.name=大型乙烯基瓷砖 -tile.vinyl_tile.small.name=小型乙烯基瓷砖 +tile.vinyl_tile.large.name=大块乙烯基瓷砖 +tile.vinyl_tile.small.name=小块乙烯基瓷砖 tile.vitrified_barrel.name=玻璃化核废料桶 tile.volcanic_lava_block.name=火山熔岩 tile.volcano_core.name=火山核心 @@ -5444,6 +5596,11 @@ trait.hot=自燃/高温 trait.hydro=与水反应 trait.radioactive=放射性 trait.radResistance=辐射抗性: %s + +trait.platefuel=[研究反应堆堆板式燃料]$§3 %s$§3 %s事件的收益率 +trait.pwr_fuel=每通量热量: §r%s TU$反应函数: §r%s$燃料类型: §r%s + +trait.rbmk.BurnFunc=安全 / 被动$中等 / 对数方程$安全 / 欧拉方程$危险 / 负二次方程$安全 / S型饱和函数$中等 / 平方根函数$危险 / 线性函数$危险 / 二次函数$实验性 / 正弦斜率函数 trait.rbmk.coreTemp=核心温度: %s trait.rbmk.depletion=燃料消耗: %s trait.rbmk.diffusion=扩散度: %s @@ -5478,8 +5635,23 @@ trait.rbmx.splitsWith=接受: %s trait.rbmx.xenon=铅元素堆积程度: %s trait.rbmx.xenonBurn=铅元素寂灭函数: %s trait.rbmx.xenonGen=铅元素产生函数: %s + +trait.rbmk_pellet=可回收芯块$全新的$少量衰变$中度衰变$高度衰变$完全衰变$大量氙元素堆积 +trait.watz_pellet=消耗: %s%% +trait.watz_pellet.passive=基本裂变率: $自燃! +trait.watz_pellet.heatEmission=每中子通量产生热量: +trait.watz_pellet.burnFunc=反应函数: $燃料类型: +trait.watz_pellet.heatDiv=热倍增系数: +trait.watz_pellet.absorbFunc=中子通量捕获: + trait.tile.cluster=只有在被玩家破坏时才会掉落 trait.tile.depth=只能被爆炸破坏 +trait.tile.barrel.capacity=容量: %smB +trait.tile.barrel.hot=可以储存热的液体$不能储存热的液体 +trait.tile.barrel.corrosive=可以储存强腐蚀性液体$可以储存腐蚀性液体$不能长期地储存强腐蚀性液体$不能长期地储存腐蚀性液体$不能储存腐蚀性液体 +trait.tile.barrel.antimatter=可以储存反物质类物质$不能储存反物质类物质 +trait.tile.barrel.leak=泄露 + tool.ability.centrifuge=自动离心 tool.ability.crystallizer=自动结晶 tool.ability.explosion=爆破 @@ -5491,16 +5663,27 @@ tool.ability.recursion=连锁挖矿 tool.ability.shredder=自动粉碎 tool.ability.silktouch=精准采集 tool.ability.smelter=自动熔炼 -turret.animals=被动目标:%s -turret.arty.artillery=§e火炮模式$最低射程: 250m$最大射程: 3,000m -turret.arty.cannon=§e炮塔模式$最低射程: 32m$射程: 250m -turret.arty.manual=§e手动模式$射程: 3,000m -turret.machines=以机械为目标: %s -turret.mobs=以怪物为目标: %s -turret.none=无 -turret.off=关 -turret.on=开 -turret.players=以玩家为目标:%s + +tooltip.armormods=附件: +tooltip.armormodsshow=按住 < %s §8§o> 来显示该盔甲上所安装的配件的效果§r +tooltip.block=按住 < %s §8§o>以显示更多信息§r +tooltip.customnuke=增加 %s 给自定义核弹 %s 阶段 +tooltip.customnukemultiplier=增加倍数 %s 给自定义核弹 %s 阶段 +tooltip.oredict=矿物辞典: +tooltip.oredict.null=无矿物辞典数据! +tooltip.show=按住 < %s §8§o> 来显示所能提供的防护的信息§r + +turret.animals=攻击中立生物: %s +turret.arty.artillery=§e重炮模式$宽度: 250m$范围: 3,000m +turret.arty.cannon=§e加农炮模式$宽度: 32m$范围: 250m +turret.arty.manual=§e手动模式$范围: 3,000m +turret.machines=攻击机器: %s +turret.mobs=攻击敌对生物: %s +turret.none=无白名单 +turret.off=OFF +turret.on=ON +turret.players=攻击玩家: %s + wavelengths.name.ir=红外线 wavelengths.name.visible=可见光 wavelengths.name.uv=紫外线 @@ -5526,7 +5709,41 @@ weapon.elecGun.glass_cannon.ir=红外线 weapon.elecGun.glass_cannon.visible=可见光 weapon.elecGun.glass_cannon.uv=紫外线 weapon.elecGun.glass_cannon.xray=X射线 -weapon.elecGun.glass_cannon.gamma=伽马射线 -hadron.error=错误! -container.reactor=增殖反应堆 -death.attack.subAtomic=%1$s 的原子被 %2$s 摧毁 \ No newline at end of file +weapon.elecGun.glass_cannon.gamma=γ射线 + +#book_lore.insanity_1.author=Ferguson博士 +#book_lore.insanity_1.name=撕裂的书页 +#book_lore.insanity_1.page.1=8月6日$ $几个月,不,几年来, 为了与投资者角力和运营 北半球最大的能源市场而 讨价还价,终于有了回报. +#book_lore.insanity_1.page.2=虽然我们不能完全确定 我们到底发现了什么—— 考虑到我们在粒子上进行了 千兆伏特的碰撞,而这些 粒子的记录仍然很差—— 但结果再令人兴奋不过了. +#book_lore.insanity_1.page.3=我们还没有为我们发现的 这东西找到一个名字, 也不确定我们是否在寻找 一种新的粒子, 一个通向另一个维度的虫洞, 或者撒旦的肛门, 但我相信我们的公关人员 可以想出一些办法. +#book_lore.insanity_2.author=Ferguson博士 +#book_lore.insanity_2.name=撕裂的书页 +#book_lore.insanity_2.page.1=8月8日$ $过去几天,我们一直将 “The Thing” (是的,我们现在就是 这么称呼这玩意的) 保持在磁隔离状态。 光谱测试最终搞坏了 我们的光谱仪,但我们 设法获得了一些有用的数据. +#book_lore.insanity_2.page.2=首先,这东西像圣诞树 一样发光,你能想到的 每种波长的辐射光子都被 强大的红外日冕所包围。 逻辑上的结论是, 用肉眼看它很可能会杀死你。 +#book_lore.insanity_2.page.3=这就引出了一个问题: 这么小的粒子怎么能辐射 出如此巨大的能量? 你隐藏了些什么,小家伙? +#book_lore.insanity_3.author=Ferguson博士 +#book_lore.insanity_3.name=撕裂的书页 +#book_lore.insanity_3.page.1=8月22日 $ $ 我已经好几天没睡好了。 医生说他什么毛病都找不到。 现在我正在服用各种药物, 但头痛只会加重。 实验室工作人员怀疑这 可能是两周前的事件造成 的污染. +#book_lore.insanity_3.page.2=医生说不太可能, 这症状和急性放射病不同。 如果这种情况持续下去, 我可能需要休息一段时间。 实验人员推测, 如果约束磁场下降, 整个综合体建筑群就会变成 蘑菇云. +#book_lore.insanity_3.page.3=我不知道行政部门如何 保持冷静,但我没有被 支付足够的薪水来浪费时间. +#book_lore.insanity_4.author=Ferguson博士 +#book_lore.insanity_4.name=撕裂的书页 +#book_lore.insanity_4.page.1=8月28日 $ $ 他们拒绝了我的请假请求, 过去几天我一直在努力。 头痛越来越严重了。 我也不是唯一有这种感 觉的人。一些实验室的人员 也有类似的情况. +#book_lore.insanity_4.page.2=The Thing终于离开了综合体 -真tm棒。 昨天有几套西装运过来, 天知道在哪里。 一名实验室人员扎卡里说, 他们可能正在把密封装置 埋在沙漠里, +#book_lore.insanity_4.page.3=慢慢地试图让The Thing 远离文明来“虎头蛇尾 地结束”。要我说我们应 把它射向太空。 不用说,我们的投资者 暂时削减了所有资金。 我应该开始找另一份工作了. +#book_lore.insanity_5.author=Ferguson博士 +#book_lore.insanity_5.name=撕裂的书页 +#book_lore.insanity_5.page.1=9月11日 $ $ 我正在反复做一场噩梦。 我在一块空地上走来走去, 到处都是这些人, 穿着橡胶服和长着畸形的脸。 总是一样的噩梦, +#book_lore.insanity_5.page.2=和我最近交谈过的一个实验 室的同事也做了同样的梦。 与此同时,我的工作已经 相当枯燥了,加速器已经 关闭,所有正在进行的 项目都停止了,我们的 预算也在慢慢减少. +#book_lore.insanity_5.page.3=有某种东西在告诉我 The Thing还在某处。 我能感觉到. +#book_lore.insanity_6.author=Ferguson博士 +#book_lore.insanity_6.name=撕裂的书页 +#book_lore.insanity_6.page.1=10月3日 $ $ 一半的工作人员已经死亡, 其余大部分在ICU。 我的病情在过去几周里 没有改变,无论是好是坏. +#book_lore.insanity_6.page.2=然而,现实开始变得越来越 不真实。 有时我会在夜晚仰望天空, 幻想着我们在几个星期前 发现的东西. +#book_lore.insanity_6.page.3=我们的分光计吐出的同样 灿烂的深红光泽。 我的医生说这是由这起事件 引起的精神错乱和压力, 也许他是对的, 但药物根本不起作用. +#book_lore.insanity_7.author=Ferguson博士 +#book_lore.insanity_7.name=撕裂的书页 +#book_lore.insanity_7.page.1=12月12日 $ $ 我已经失业了,但老实说, 我对此有些感激。 我以前的工作场所已经 付之一炬了 ——他们这么说的. +#book_lore.insanity_7.page.2=南部几英里处的地震观测站 连续几天记录到持续不断的 地震,而其他任何人都不会 注意到沙漠深处. +#book_lore.insanity_7.page.3=我的结论是,这个地方被 诅咒了,让每个人都感到恶心, 然后像埃德加·爱伦·坡 (Edgar Allan Poe)的故事 一样坠入地狱。 谢天谢地. + From 0f25aac3a2f6de968976b5929dba19490a99fc7f Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Tue, 14 Nov 2023 19:18:43 -0600 Subject: [PATCH 409/432] back at it again with the OC compat Now including: Optimizations Turbine Compat Compat handler for general functions other compat --- .../java/com/hbm/handler/CompatHandler.java | 31 +++++++++++++++ .../tileentity/machine/TileEntityChungus.java | 33 +++++++++++++++- .../machine/TileEntityCoreEmitter.java | 7 +--- .../machine/TileEntityCoreStabilizer.java | 7 +--- .../TileEntityMachineLargeTurbine.java | 39 ++++++++++++++++++- .../machine/TileEntityMachineTurbine.java | 33 +++++++++++++++- .../machine/TileEntityMicrowave.java | 19 ++++++++- .../machine/TileEntityReactorControl.java | 39 +++++-------------- .../machine/TileEntityReactorResearch.java | 8 +--- .../machine/rbmk/TileEntityRBMKBoiler.java | 16 ++------ .../machine/storage/TileEntityBarrel.java | 8 ++-- .../storage/TileEntityMachineBattery.java | 4 +- .../storage/TileEntityMachineFluidTank.java | 8 ++-- 13 files changed, 177 insertions(+), 75 deletions(-) create mode 100644 src/main/java/com/hbm/handler/CompatHandler.java diff --git a/src/main/java/com/hbm/handler/CompatHandler.java b/src/main/java/com/hbm/handler/CompatHandler.java new file mode 100644 index 000000000..07d7fd20a --- /dev/null +++ b/src/main/java/com/hbm/handler/CompatHandler.java @@ -0,0 +1,31 @@ +package com.hbm.handler; + +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; + + +/** + * General handler for OpenComputers compatibility. + *

    + * Mostly just functions used across many TEs. + */ +public class CompatHandler { + public static Object[] steamTypeToInt(FluidType type) { + if(type == Fluids.STEAM) {return new Object[] {0};} + else if(type == Fluids.HOTSTEAM) {return new Object[] {1};} + else if(type == Fluids.SUPERHOTSTEAM) {return new Object[] {2};} + return new Object[] {3}; + } + public static FluidType intToSteamType(int arg) { + switch(arg) { + default: + return Fluids.STEAM; + case(1): + return Fluids.HOTSTEAM; + case(2): + return Fluids.SUPERHOTSTEAM; + case(3): + return Fluids.ULTRAHOTSTEAM; + } + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java index 4a0226d96..e1dcddcf8 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java @@ -5,6 +5,7 @@ import java.util.List; import java.util.Random; import com.hbm.blocks.BlockDummyable; +import com.hbm.handler.CompatHandler; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.fluid.FluidType; @@ -22,15 +23,20 @@ import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IEnergyGenerator; import api.hbm.fluid.IFluidStandardTransceiver; +import cpw.mods.fml.common.Optional; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; +import li.cil.oc.api.network.SimpleComponent; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcceptor, IFluidSource, IEnergyGenerator, INBTPacketReceiver, IFluidStandardTransceiver { +public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcceptor, IFluidSource, IEnergyGenerator, INBTPacketReceiver, IFluidStandardTransceiver, SimpleComponent { public long power; public static final long maxPower = 100000000000L; @@ -275,6 +281,31 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcc this.power = power; } + @Override + public String getComponentName() { + return "ntm_large_turbine"; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getFluid(Context context, Arguments args) { + return new Object[] {tanks[0].getFill(), tanks[1].getFill()}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getType(Context context, Arguments args) { + return CompatHandler.steamTypeToInt(tanks[1].getTankType()); + } + + @Callback(direct = true, limit = 4) + @Optional.Method(modid = "OpenComputers") + public Object[] setType(Context context, Arguments args) { + tanks[1].setTankType(CompatHandler.intToSteamType(args.checkInteger(0))); + return new Object[] {true}; + } + + @Override public FluidTank[] getSendingTanks() { return new FluidTank[] {tanks[1]}; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java index f19f9e586..9516a8246 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java @@ -315,12 +315,7 @@ public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEne @Optional.Method(modid = "OpenComputers") public Object[] setInput(Context context, Arguments args) { int newOutput = args.checkInteger(0); - if (newOutput > 100) { - newOutput = 100; - } else if (newOutput < 0) { - newOutput = 0; - } - watts = newOutput; + watts = MathHelper.clamp_int(newOutput, 0, 100); return new Object[] {}; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java index 74673c332..3d7990286 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java @@ -209,12 +209,7 @@ public class TileEntityCoreStabilizer extends TileEntityMachineBase implements I @Optional.Method(modid = "OpenComputers") public Object[] setInput(Context context, Arguments args) { int newOutput = args.checkInteger(0); - if (newOutput > 100) { - newOutput = 100; - } else if (newOutput < 0) { - newOutput = 0; - } - watts = newOutput; + watts = MathHelper.clamp_int(newOutput, 0, 100); return new Object[] {}; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java index 5f37053e9..fc22fe394 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.List; import com.hbm.blocks.BlockDummyable; +import com.hbm.handler.CompatHandler; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; import com.hbm.interfaces.IFluidSource; @@ -21,8 +22,13 @@ import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IEnergyGenerator; import api.hbm.fluid.IFluidStandardTransceiver; +import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; +import li.cil.oc.api.network.SimpleComponent; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; @@ -32,7 +38,8 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineLargeTurbine extends TileEntityMachineBase implements IFluidContainer, IFluidAcceptor, IFluidSource, IEnergyGenerator, IFluidStandardTransceiver, IGUIProvider { +@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) +public class TileEntityMachineLargeTurbine extends TileEntityMachineBase implements IFluidContainer, IFluidAcceptor, IFluidSource, IEnergyGenerator, IFluidStandardTransceiver, IGUIProvider, SimpleComponent { public long power; public static final long maxPower = 100000000; @@ -280,6 +287,36 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme return new FluidTank[] {tanks[0]}; } + @Override + public String getComponentName() { + return "ntm_turbine"; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getFluid(Context context, Arguments args) { + return new Object[] {tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill()}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getType(Context context, Arguments args) { + return CompatHandler.steamTypeToInt(tanks[1].getTankType()); + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getInfo(Context context, Arguments args) { + return new Object[] {tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill(), tanks[1].getTankType()}; + } + + @Callback(direct = true, limit = 4) + @Optional.Method(modid = "OpenComputers") + public Object[] setType(Context context, Arguments args) { + tanks[1].setTankType(CompatHandler.intToSteamType(args.checkInteger(0))); + return new Object[] {true}; + } + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerMachineLargeTurbine(player.inventory, this); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java index eb4d3f731..a2857822a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java @@ -3,6 +3,7 @@ package com.hbm.tileentity.machine; import java.util.ArrayList; import java.util.List; +import com.hbm.handler.CompatHandler; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; import com.hbm.interfaces.IFluidSource; @@ -22,9 +23,14 @@ import com.hbm.tileentity.TileEntityLoadedBase; import api.hbm.energy.IBatteryItem; import api.hbm.energy.IEnergyGenerator; import api.hbm.fluid.IFluidStandardTransceiver; +import cpw.mods.fml.common.Optional; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; +import li.cil.oc.api.network.SimpleComponent; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; @@ -35,7 +41,8 @@ import net.minecraft.nbt.NBTTagList; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineTurbine extends TileEntityLoadedBase implements ISidedInventory, IFluidContainer, IFluidAcceptor, IFluidSource, IEnergyGenerator, IFluidStandardTransceiver, IGUIProvider { +@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) +public class TileEntityMachineTurbine extends TileEntityLoadedBase implements ISidedInventory, IFluidContainer, IFluidAcceptor, IFluidSource, IEnergyGenerator, IFluidStandardTransceiver, IGUIProvider, SimpleComponent { private ItemStack slots[]; @@ -376,6 +383,30 @@ public class TileEntityMachineTurbine extends TileEntityLoadedBase implements IS return tanks; } + @Override + public String getComponentName() { + return "ntm_small_turbine"; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getFluid(Context context, Arguments args) { + return new Object[] {tanks[0].getFill(), tanks[1].getFill()}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getType(Context context, Arguments args) { + return CompatHandler.steamTypeToInt(tanks[1].getTankType()); + } + + @Callback(direct = true, limit = 4) + @Optional.Method(modid = "OpenComputers") + public Object[] setType(Context context, Arguments args) { + tanks[1].setTankType(CompatHandler.intToSteamType(args.checkInteger(0))); + return new Object[] {true}; + } + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerMachineTurbine(player.inventory, this); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMicrowave.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMicrowave.java index 6b5846286..5253e4aec 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMicrowave.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMicrowave.java @@ -7,8 +7,13 @@ import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; import api.hbm.energy.IEnergyUser; +import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; +import li.cil.oc.api.network.SimpleComponent; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; @@ -19,7 +24,8 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; -public class TileEntityMicrowave extends TileEntityMachineBase implements IEnergyUser, IGUIProvider { +@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) +public class TileEntityMicrowave extends TileEntityMachineBase implements IEnergyUser, IGUIProvider, SimpleComponent { public long power; public static final long maxPower = 50000; @@ -209,6 +215,17 @@ public class TileEntityMicrowave extends TileEntityMachineBase implements IEnerg nbt.setInteger("speed", speed); } + @Override + public String getComponentName() { + return "microwave"; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] test(Context context, Arguments args) { + return new Object[] {"This is a testing device for everything OC."}; + } + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerMicrowave(player.inventory, this); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorControl.java b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorControl.java index 67c70eded..8d55eb799 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorControl.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorControl.java @@ -272,36 +272,15 @@ public class TileEntityReactorControl extends TileEntityMachineBase implements I @Optional.Method(modid = "OpenComputers") public Object[] setParams(Context context, Arguments args) { //i hate my life int newFunction = args.checkInteger(0); - double newMaxheat = args.checkDouble(1); - double newMinheat = args.checkDouble(2); - double newMaxlevel = args.checkDouble(3)/100.0; - double newMinlevel = args.checkDouble(4)/100.0; - if (newFunction > 2) { //no more out of bounds for you (and yes there's integer values for functions, sue me) - newFunction = 0; - } else if (newFunction < 0) { - newFunction = 0; - } - if (newMaxheat < 0.0) { - newMaxheat = 0.0; - } - if (newMinheat < 0.0) { - newMinheat = 0.0; - } - if (newMaxlevel < 0.0) { - newMaxlevel = 0.0; - } else if (newMaxlevel > 1.0) { - newMaxlevel = 1.0; - } - if (newMinlevel < 0.0) { - newMinlevel = 0.0; - } else if (newMinlevel > 1.0) { - newMinlevel = 1.0; - } - function = RodFunction.values()[newFunction]; - heatUpper = newMaxheat; - heatLower = newMinheat; - levelUpper = newMaxlevel; - levelLower = newMinlevel; + double newMaxHeat = args.checkDouble(1); + double newMinHeat = args.checkDouble(2); + double newMaxLevel = args.checkDouble(3)/100.0; + double newMinLevel = args.checkDouble(4)/100.0; + function = RodFunction.values()[MathHelper.clamp_int(newFunction, 0, 2)]; + heatUpper = MathHelper.clamp_double(newMaxHeat, 0, 9999); + heatLower = MathHelper.clamp_double(newMinHeat, 0, 9999); + levelUpper = MathHelper.clamp_double(newMaxLevel, 0, 1); + levelLower = MathHelper.clamp_double(newMinLevel, 0, 1); return new Object[] {}; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorResearch.java b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorResearch.java index a6ee7c13d..09525e8a4 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorResearch.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorResearch.java @@ -32,6 +32,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -429,12 +430,7 @@ public class TileEntityReactorResearch extends TileEntityMachineBase implements @Optional.Method(modid = "OpenComputers") public Object[] setLevel(Context context, Arguments args) { double newLevel = args.checkDouble(0)/100.0; - if (newLevel > 1.0) { - newLevel = 1.0; - } else if (newLevel < 0.0) { - newLevel = 0.0; - } - targetLevel = newLevel; + targetLevel = MathHelper.clamp_double(newLevel, 0, 100.0); return new Object[] {}; } diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java index 44baadde9..f025f1114 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java @@ -5,6 +5,7 @@ import api.hbm.fluid.IFluidUser; import api.hbm.fluid.IPipeNet; import com.hbm.blocks.ModBlocks; import com.hbm.entity.projectile.EntityRBMKDebris.DebrisType; +import com.hbm.handler.CompatHandler; import com.hbm.interfaces.IControlReceiver; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidSource; @@ -369,25 +370,14 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I @Callback(direct = true, limit = 16) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { - FluidType type = steam.getTankType(); - Object type_1; - if(type == Fluids.STEAM) {type_1 = "0";} - else if(type == Fluids.HOTSTEAM) {type_1 = "1";} - else if(type == Fluids.SUPERHOTSTEAM) {type_1 = "2";} - else if(type == Fluids.ULTRAHOTSTEAM) {type_1 = "3";} - else {type_1 = "Unknown Error";} + int type_1 = (int) CompatHandler.steamTypeToInt(steam.getTankType())[0]; return new Object[] {heat, steam.getFill(), steam.getMaxFill(), feed.getFill(), feed.getMaxFill(), type_1, xCoord, yCoord, zCoord}; } @Callback(direct = true, limit = 16) @Optional.Method(modid = "OpenComputers") public Object[] getSteamType(Context context, Arguments args) { - FluidType type = steam.getTankType(); - if(type == Fluids.STEAM) {return new Object[] {0};} - else if(type == Fluids.HOTSTEAM) {return new Object[] {1};} - else if(type == Fluids.SUPERHOTSTEAM) {return new Object[] {2};} - else if(type == Fluids.ULTRAHOTSTEAM) {return new Object[] {3};} - else {return new Object[] {"Unknown Error"};} + return CompatHandler.steamTypeToInt(steam.getTankType()); } @Callback(direct = true, limit = 16) diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java index 495f38ca6..66ea25fcb 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java @@ -393,25 +393,25 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc return "ntm_fluid_tank"; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getFluidStored(Context context, Arguments args) { return new Object[] {tank.getFill()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getMaxStored(Context context, Arguments args) { return new Object[] {tank.getMaxFill()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getTypeStored(Context context, Arguments args) { return new Object[] {tank.getTankType().getName()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[]{tank.getFill(), tank.getMaxFill(), tank.getTankType().getName()}; diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java index dc6a60f44..c27670d37 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java @@ -420,13 +420,13 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I return "ntm_energy_storage"; //ok if someone else can figure out how to do this that'd be nice (change the component name based on the type of storage block) } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getEnergyInfo(Context context, Arguments args) { return new Object[] {getPower(), getMaxPower()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[] {getPower(), getMaxPower()}; diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java index 00486dfda..7e6d91be2 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java @@ -473,25 +473,25 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements return "ntm_tank"; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getFluidStored(Context context, Arguments args) { return new Object[] {tank.getFill()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getMaxStored(Context context, Arguments args) { return new Object[] {tank.getMaxFill()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getTypeStored(Context context, Arguments args) { return new Object[] {tank.getTankType().getName()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[]{tank.getFill(), tank.getMaxFill(), tank.getTankType().getName()}; From dd5786bb607481760110f191700a889770dbc277 Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Tue, 14 Nov 2023 19:41:10 -0600 Subject: [PATCH 410/432] Gas turbine compat!!! --- .../machine/TileEntityMachineTurbineGas.java | 80 ++++++++++++++++++- 1 file changed, 79 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java index b506f3f6b..efb36937f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java @@ -22,18 +22,25 @@ import com.hbm.tileentity.TileEntityMachineBase; import api.hbm.energy.IEnergyGenerator; import api.hbm.fluid.IFluidStandardTransceiver; +import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; +import li.cil.oc.api.network.SimpleComponent; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineTurbineGas extends TileEntityMachineBase implements IFluidStandardTransceiver, IEnergyGenerator, IControlReceiver, IGUIProvider { +@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) +public class TileEntityMachineTurbineGas extends TileEntityMachineBase implements IFluidStandardTransceiver, IEnergyGenerator, IControlReceiver, IGUIProvider, SimpleComponent { public long power; public static final long maxPower = 1000000L; @@ -546,6 +553,77 @@ public class TileEntityMachineTurbineGas extends TileEntityMachineBase implement return dir != ForgeDirection.DOWN; } + @Override + public String getComponentName() { + return "ntm_gas_turbine"; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getFluid(Context context, Arguments args) { + return new Object[] { + tanks[0].getFill(), tanks[0].getMaxFill(), + tanks[1].getFill(), tanks[1].getMaxFill(), + tanks[2].getFill(), tanks[2].getMaxFill(), + tanks[3].getFill(), tanks[3].getMaxFill() + }; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getType(Context context, Arguments args) { + return new Object[] {tanks[0].getTankType().getName()}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getPower(Context context, Arguments args) { + return new Object[] {power}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getThrottle(Context context, Arguments args) { + return new Object[] {throttle}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getState(Context context, Arguments args) { + return new Object[] {state}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getAuto(Context context, Arguments args) { + return new Object[] {autoMode}; + } + + @Callback(direct = true, limit = 4) + @Optional.Method(modid = "OpenComputers") + public Object[] setThrottle(Context context, Arguments args) { + powerSliderPos = MathHelper.clamp_int(args.checkInteger(0) / 100 * 60, 0 , 60); + return new Object[] {true}; + } + + @Callback(direct = true, limit = 4) + @Optional.Method(modid = "OpenComputers") + public Object[] setAuto(Context context, Arguments args) { + autoMode = args.checkBoolean(0); + return new Object[] {true}; + } + + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getInfo(Context context, Arguments args) { + + return new Object[] {throttle, state, + tanks[0].getFill(), tanks[0].getMaxFill(), + tanks[1].getFill(), tanks[1].getMaxFill(), + tanks[2].getFill(), tanks[2].getMaxFill(), + tanks[3].getFill(), tanks[3].getMaxFill()}; + } + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerMachineTurbineGas(player.inventory, this); From 533c87eb1a4008255e94740d3f68db56ab40af4c Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Tue, 14 Nov 2023 21:30:48 -0600 Subject: [PATCH 411/432] Large update to direct calls and limits for pulling values. --- .../hbm/blocks/network/FluidDuctGauge.java | 6 +-- .../machine/TileEntityCoreEmitter.java | 14 +++---- .../machine/TileEntityCoreInjector.java | 6 +-- .../machine/TileEntityCoreReceiver.java | 6 +-- .../machine/TileEntityCoreStabilizer.java | 10 ++--- .../tileentity/machine/TileEntityGeiger.java | 2 +- .../machine/TileEntityReactorControl.java | 8 ++-- .../machine/TileEntityReactorResearch.java | 12 +++--- .../machine/TileEntityReactorZirnox.java | 16 ++++---- .../machine/rbmk/TileEntityCraneConsole.java | 4 +- .../machine/rbmk/TileEntityRBMKBoiler.java | 40 ++++++------------- .../machine/rbmk/TileEntityRBMKControl.java | 20 ++++------ .../rbmk/TileEntityRBMKControlManual.java | 2 +- .../machine/rbmk/TileEntityRBMKCooler.java | 10 ++--- .../machine/rbmk/TileEntityRBMKHeater.java | 18 ++++----- .../machine/rbmk/TileEntityRBMKOutgasser.java | 12 +++--- .../machine/rbmk/TileEntityRBMKRod.java | 20 +++++----- 17 files changed, 93 insertions(+), 113 deletions(-) diff --git a/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java b/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java index 8c2106abe..9c17a38c0 100644 --- a/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java +++ b/src/main/java/com/hbm/blocks/network/FluidDuctGauge.java @@ -156,19 +156,19 @@ public class FluidDuctGauge extends FluidDuctBase implements IBlockMultiPass, IL return "ntm_fluid_gauge"; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getTransfer(Context context, Arguments args) { return new Object[] {deltaTick, deltaSecond}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getFluid(Context context, Arguments args) { return new Object[] {getType().getName()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[] {deltaTick, deltaSecond, getType().getName(), xCoord, yCoord, zCoord}; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java index 9516a8246..92a83d81b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java @@ -274,44 +274,44 @@ public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEne return "dfc_emitter"; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getEnergyInfo(Context context, Arguments args) { return new Object[] {getPower(), getMaxPower()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getCryogel(Context context, Arguments args) { return new Object[] {tank.getFill()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInput(Context context, Arguments args) { return new Object[] {watts}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[] {getPower(), getMaxPower(), tank.getFill(), watts, isOn}; } - @Callback(direct = true, limit = 2) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] isActive(Context context, Arguments args) { return new Object[] {isOn}; } - @Callback(direct = true, limit = 2) + @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] setActive(Context context, Arguments args) { isOn = args.checkBoolean(0); return new Object[] {}; } - @Callback(direct = true, limit = 2) + @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] setInput(Context context, Arguments args) { int newOutput = args.checkInteger(0); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java index bd2366acc..b0fb0c484 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java @@ -199,19 +199,19 @@ public class TileEntityCoreInjector extends TileEntityMachineBase implements IFl return "dfc_injector"; } - @Callback(direct = true, limit = 2) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getFuel(Context context, Arguments args) { return new Object[] {tanks[0].getFill(), tanks[1].getFill()}; } - @Callback(direct = true, limit = 2) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getTypes(Context context, Arguments args) { return new Object[] {tanks[0].getTankType().getName(), tanks[1].getTankType().getName()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[] {tanks[0].getFill(), tanks[0].getTankType().getName(), tanks[1].getFill(), tanks[1].getTankType().getName()}; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java index 4a9adbebc..c3fbf28d6 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java @@ -191,19 +191,19 @@ public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEn return "dfc_receiver"; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getEnergyInfo(Context context, Arguments args) { return new Object[] {joules, getPower()}; //literally only doing this for the consistency between components } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getCryogel(Context context, Arguments args) { return new Object[] {tank.getFill()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[] {joules, getPower(), tank.getFill()}; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java index 3d7990286..6e6413032 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java @@ -172,19 +172,19 @@ public class TileEntityCoreStabilizer extends TileEntityMachineBase implements I return "dfc_stabilizer"; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getEnergyInfo(Context context, Arguments args) { return new Object[] {getPower(), getMaxPower()}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInput(Context context, Arguments args) { return new Object[] {watts}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getDurability(Context context, Arguments args) { if(slots[0] != null && slots[0].getItem() == ModItems.ams_lens && ItemLens.getLensDamage(slots[0]) < ((ItemLens)ModItems.ams_lens).maxDamage) { @@ -193,7 +193,7 @@ public class TileEntityCoreStabilizer extends TileEntityMachineBase implements I return new Object[] {"N/A"}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { Object lens_damage_buf; @@ -205,7 +205,7 @@ public class TileEntityCoreStabilizer extends TileEntityMachineBase implements I return new Object[] {power, maxPower, watts, lens_damage_buf}; } - @Callback(direct = true, limit = 2) + @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] setInput(Context context, Arguments args) { int newOutput = args.checkInteger(0); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityGeiger.java b/src/main/java/com/hbm/tileentity/machine/TileEntityGeiger.java index ac7bddef0..4c43bf5fc 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityGeiger.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityGeiger.java @@ -68,7 +68,7 @@ public class TileEntityGeiger extends TileEntity implements SimpleComponent { return "ntm_geiger"; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getRads(Context context, Arguments args) { return new Object[] {check()}; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorControl.java b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorControl.java index 8d55eb799..63ea4818e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorControl.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorControl.java @@ -256,19 +256,19 @@ public class TileEntityReactorControl extends TileEntityMachineBase implements I return "reactor_control"; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] isLinked(Context context, Arguments args) { return new Object[] {isLinked}; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getReactor(Context context, Arguments args) { return new Object[] {getDisplayData()}; } - @Callback + @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] setParams(Context context, Arguments args) { //i hate my life int newFunction = args.checkInteger(0); @@ -284,7 +284,7 @@ public class TileEntityReactorControl extends TileEntityMachineBase implements I return new Object[] {}; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getParams(Context context, Arguments args) { return new Object[] {function.ordinal(), heatUpper, heatLower, levelUpper, levelLower}; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorResearch.java b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorResearch.java index 09525e8a4..0bc646eee 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorResearch.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorResearch.java @@ -396,37 +396,37 @@ public class TileEntityReactorResearch extends TileEntityMachineBase implements return "research_reactor"; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getTemp(Context context, Arguments args) { // or getHeat, whatever. return new Object[] {heat}; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getLevel(Context context, Arguments args) { return new Object[] {level * 100}; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getTargetLevel(Context context, Arguments args) { return new Object[] {targetLevel}; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getFlux(Context context, Arguments args) { return new Object[] {totalFlux}; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[] {heat, level, targetLevel, totalFlux}; } - @Callback + @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] setLevel(Context context, Arguments args) { double newLevel = args.checkDouble(0)/100.0; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java index c605f96d6..43536fedb 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java @@ -545,49 +545,49 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF return "zirnox_reactor"; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getTemp(Context context, Arguments args) { return new Object[] {heat}; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getPressure(Context context, Arguments args) { return new Object[] {pressure}; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getWater(Context context, Arguments args) { return new Object[] {water.getFill()}; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getSteam(Context context, Arguments args) { return new Object[] {steam.getFill()}; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getCarbonDioxide(Context context, Arguments args) { return new Object[] {carbonDioxide.getFill()}; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] isActive(Context context, Arguments args) { return new Object[] {isOn}; } - @Callback + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[] {heat, pressure, water.getFill(), steam.getFill(), carbonDioxide.getFill(), isOn}; } - @Callback + @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] setActive(Context context, Arguments args) { isOn = args.checkBoolean(0); diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityCraneConsole.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityCraneConsole.java index f6e81933f..75097cd48 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityCraneConsole.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityCraneConsole.java @@ -378,7 +378,7 @@ public class TileEntityCraneConsole extends TileEntity implements INBTPacketRece return new Object[] {"Crane not found"}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getDepletion(Context context, Arguments args) { if(loadedItem != null && loadedItem.getItem() instanceof ItemRBMKRod) { @@ -387,7 +387,7 @@ public class TileEntityCraneConsole extends TileEntity implements INBTPacketRece return new Object[] {"N/A"}; } - @Callback(direct = true, limit = 4) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getXenonPoison(Context context, Arguments args) { if(loadedItem != null && loadedItem.getItem() instanceof ItemRBMKRod) { diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java index f025f1114..dba203483 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java @@ -332,76 +332,60 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I public String getComponentName() { return "rbmk_boiler"; } - - @Callback(direct = true, limit = 16) + + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getHeat(Context context, Arguments args) { return new Object[] {heat}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getSteam(Context context, Arguments args) { return new Object[] {steam.getFill()}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getSteamMax(Context context, Arguments args) { return new Object[] {steam.getMaxFill()}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getWater(Context context, Arguments args) { return new Object[] {feed.getFill()}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getWaterMax(Context context, Arguments args) { return new Object[] {feed.getMaxFill()}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getCoordinates(Context context, Arguments args) { return new Object[] {xCoord, yCoord, zCoord}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { int type_1 = (int) CompatHandler.steamTypeToInt(steam.getTankType())[0]; return new Object[] {heat, steam.getFill(), steam.getMaxFill(), feed.getFill(), feed.getMaxFill(), type_1, xCoord, yCoord, zCoord}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getSteamType(Context context, Arguments args) { return CompatHandler.steamTypeToInt(steam.getTankType()); } - @Callback(direct = true, limit = 16) + @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] setSteamType(Context context, Arguments args) { int type = args.checkInteger(0); - if(type > 3) { - type = 3; - } else if(type < 0) { - type = 0; - } - if(type == 0) { - steam.setTankType(Fluids.STEAM); - return new Object[] {true}; - } else if(type == 1) { - steam.setTankType(Fluids.HOTSTEAM); - return new Object[] {true}; - } else if(type == 2) { - steam.setTankType(Fluids.SUPERHOTSTEAM); - return new Object[] {true}; - } else { - steam.setTankType(Fluids.ULTRAHOTSTEAM); - return new Object[] {true}; - } + steam.setTankType(CompatHandler.intToSteamType(type)); + return new Object[] {true}; } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControl.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControl.java index 945638b7e..076e5afc6 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControl.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControl.java @@ -9,6 +9,7 @@ import li.cil.oc.api.machine.Callback; import li.cil.oc.api.machine.Context; import li.cil.oc.api.network.SimpleComponent; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) public abstract class TileEntityRBMKControl extends TileEntityRBMKSlottedBase implements SimpleComponent { @@ -126,46 +127,41 @@ public abstract class TileEntityRBMKControl extends TileEntityRBMKSlottedBase im return "rbmk_control_rod"; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getLevel(Context context, Arguments args) { return new Object[] {getMult() * 100}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getTargetLevel(Context context, Arguments args) { return new Object[] {targetLevel * 100}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getCoordinates(Context context, Arguments args) { return new Object[] {xCoord, yCoord, zCoord}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getHeat(Context context, Arguments args) { return new Object[] {heat}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[] {heat, getMult() * 100, targetLevel * 100, xCoord, yCoord, zCoord}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] setLevel(Context context, Arguments args) { double newLevel = args.checkDouble(0)/100.0; - if (newLevel > 1.0) { - newLevel = 1.0; - } else if (newLevel < 0.0) { - newLevel = 0.0; - } - targetLevel = newLevel; + targetLevel = MathHelper.clamp_double(newLevel, 0, 1); return new Object[] {}; } } diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlManual.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlManual.java index f22e00b47..1afb0cc8d 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlManual.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControlManual.java @@ -133,7 +133,7 @@ public class TileEntityRBMKControlManual extends TileEntityRBMKControl implement return data; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getColor(Context context, Arguments args) { return new Object[] {this.color}; diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCooler.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCooler.java index 8c15cd8d7..715eba42f 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCooler.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCooler.java @@ -149,31 +149,31 @@ public class TileEntityRBMKCooler extends TileEntityRBMKBase implements IFluidAc return "rbmk_cooler"; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getHeat(Context context, Arguments args) { return new Object[]{heat}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getCryo(Context context, Arguments args) { return new Object[]{tank.getFill()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getCryoMax(Context context, Arguments args) { return new Object[]{tank.getMaxFill()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getCoordinates(Context context, Arguments args) { return new Object[] {xCoord, yCoord, zCoord}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[]{heat, tank.getFill(), tank.getMaxFill(), xCoord, yCoord, zCoord}; diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java index e9699b87f..38436e799 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java @@ -280,54 +280,54 @@ public class TileEntityRBMKHeater extends TileEntityRBMKSlottedBase implements I return "rbmk_heater"; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getHeat(Context context, Arguments args) { return new Object[] {heat}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getFill(Context context, Arguments args) { return new Object[] {feed.getFill()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getFillMax(Context context, Arguments args) { return new Object[] {feed.getMaxFill()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getExport(Context context, Arguments args) { return new Object[] {steam.getFill()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getExportMax(Context context, Arguments args) { return new Object[] {steam.getMaxFill()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getFillType(Context context, Arguments args) { return new Object[] {feed.getTankType().getName()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getExportType(Context context, Arguments args) { return new Object[] {steam.getTankType().getName()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[] {heat, feed.getFill(), feed.getMaxFill(), steam.getFill(), steam.getMaxFill(), feed.getTankType().getName(), steam.getTankType().getName(), xCoord, yCoord, zCoord}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getCoordinates(Context context, Arguments args) { return new Object[] {xCoord, yCoord, zCoord}; diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java index 8dbaa6360..1b74e6e92 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java @@ -226,37 +226,37 @@ public class TileEntityRBMKOutgasser extends TileEntityRBMKSlottedBase implement return "rbmk_outgasser"; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getGas(Context context, Arguments args) { return new Object[] {gas.getFill()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getGasMax(Context context, Arguments args) { return new Object[] {gas.getMaxFill()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getGasType(Context context, Arguments args) { return new Object[] {gas.getTankType().getID()}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getProgress(Context context, Arguments args) { return new Object[] {progress}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getCoordinates(Context context, Arguments args) { return new Object[] {xCoord, yCoord, zCoord}; } - @Callback(direct = true, limit = 8) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { return new Object[] {gas.getFill(), gas.getMaxFill(), progress, gas.getTankType().getID(), xCoord, yCoord, zCoord}; diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java index 2a432b5d7..d22b5ae13 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java @@ -389,25 +389,25 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM return "rbmk_fuel_rod"; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getHeat(Context context, Arguments args) { return new Object[] {heat}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getFluxSlow(Context context, Arguments args) { return new Object[] {fluxSlow}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getFluxFast(Context context, Arguments args) { return new Object[] {fluxFast}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getDepletion(Context context, Arguments args) { if(slots[0] != null && slots[0].getItem() instanceof ItemRBMKRod) { @@ -416,7 +416,7 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM return new Object[] {"N/A"}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getXenonPoison(Context context, Arguments args) { if(slots[0] != null && slots[0].getItem() instanceof ItemRBMKRod) { @@ -425,7 +425,7 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM return new Object[] {"N/A"}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getCoreHeat(Context context, Arguments args) { if(slots[0] != null && slots[0].getItem() instanceof ItemRBMKRod) { @@ -434,7 +434,7 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM return new Object[] {"N/A"}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getSkinHeat(Context context, Arguments args) { if(slots[0] != null && slots[0].getItem() instanceof ItemRBMKRod) { @@ -443,7 +443,7 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM return new Object[] {"N/A"}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { Object OC_enrich_buf; @@ -464,13 +464,13 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM return new Object[] {heat, OC_hull_buf, OC_core_buf, fluxSlow, fluxFast, OC_enrich_buf, OC_poison_buf, ((RBMKRod)this.getBlockType()).moderated, xCoord, yCoord, zCoord}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getModerated(Context context, Arguments args) { return new Object[] {((RBMKRod)this.getBlockType()).moderated}; } - @Callback(direct = true, limit = 16) + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getCoordinates(Context context, Arguments args) { return new Object[] {xCoord, yCoord, zCoord}; From c86e52f5c026f6d2609b2f7c0dc6a77177d4082c Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Tue, 28 Nov 2023 21:28:54 -0600 Subject: [PATCH 412/432] pretty important fix where crane consoles would move 4x faster than possible --- src/main/java/com/hbm/handler/CompatHandler.java | 5 ++++- .../machine/rbmk/TileEntityCraneConsole.java | 14 ++++++++++---- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/hbm/handler/CompatHandler.java b/src/main/java/com/hbm/handler/CompatHandler.java index 07d7fd20a..a8fec64c9 100644 --- a/src/main/java/com/hbm/handler/CompatHandler.java +++ b/src/main/java/com/hbm/handler/CompatHandler.java @@ -10,12 +10,14 @@ import com.hbm.inventory.fluid.Fluids; * Mostly just functions used across many TEs. */ public class CompatHandler { + public static Object[] steamTypeToInt(FluidType type) { - if(type == Fluids.STEAM) {return new Object[] {0};} + if(type == Fluids.STEAM) {return new Object[] {0};} //switches break because objects else if(type == Fluids.HOTSTEAM) {return new Object[] {1};} else if(type == Fluids.SUPERHOTSTEAM) {return new Object[] {2};} return new Object[] {3}; } + public static FluidType intToSteamType(int arg) { switch(arg) { default: @@ -28,4 +30,5 @@ public class CompatHandler { return Fluids.ULTRAHOTSTEAM; } } + } diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityCraneConsole.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityCraneConsole.java index 75097cd48..9f85dfc9e 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityCraneConsole.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityCraneConsole.java @@ -339,12 +339,13 @@ public class TileEntityCraneConsole extends TileEntity implements INBTPacketRece return "rbmk_crane"; } - @Callback(direct = true, limit = 4) + @Callback(direct = true, limit = 2) //yknow computers are more efficient than humans, lets give an incentive to use OC @Optional.Method(modid = "OpenComputers") public Object[] move(Context context, Arguments args) { if(setUpCrane) { - String textbruh = args.checkString(0); - switch(textbruh) { + String direction = args.checkString(0); + + switch(direction) { case "up": tiltFront = 30; if(!worldObj.isRemote) posFront += speed; @@ -368,7 +369,7 @@ public class TileEntityCraneConsole extends TileEntity implements INBTPacketRece return new Object[] {"Crane not found"}; } - @Callback(direct = true, limit = 4) + @Callback @Optional.Method(modid = "OpenComputers") public Object[] load(Context context, Arguments args) { if (setUpCrane) { @@ -395,4 +396,9 @@ public class TileEntityCraneConsole extends TileEntity implements INBTPacketRece } return new Object[] {"N/A"}; } + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getCoords(Context context, Arguments args) { + return new Object[] {xCoord, yCoord, zCoord}; + } } From c353334b21076e8e17e0eafd21e314aab282826e Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Tue, 28 Nov 2023 21:41:25 -0600 Subject: [PATCH 413/432] bruh --- .../machine/rbmk/TileEntityCraneConsole.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityCraneConsole.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityCraneConsole.java index 9f85dfc9e..d54042400 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityCraneConsole.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityCraneConsole.java @@ -396,9 +396,14 @@ public class TileEntityCraneConsole extends TileEntity implements INBTPacketRece } return new Object[] {"N/A"}; } + @Callback(direct = true) - @Optional.Method(modid = "OpenComputers") - public Object[] getCoords(Context context, Arguments args) { - return new Object[] {xCoord, yCoord, zCoord}; + @Optional.Method(modid = "OpenComputers") //if this doesnt work im going to die + public Object[] getBoundPos(Context context, Arguments args) { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); + ForgeDirection left = dir.getRotation(ForgeDirection.DOWN); + int x = (int)Math.floor(this.centerX - dir.offsetX * this.posFront - left.offsetX * this.posLeft + 0.5D); + int z = (int)Math.floor(this.centerZ - dir.offsetZ * this.posFront - left.offsetZ * this.posLeft + 0.5D); + return new Object[] {x, z}; } } From b0b37223a7e7a0c559b89b9e4c5a5d810bccc7ae Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Wed, 20 Sep 2023 22:31:32 -0500 Subject: [PATCH 414/432] oh get ready for this one huge commit yes i should have spread it out but im lazy :3 --- src/main/java/com/hbm/blocks/generic/BlockBobble.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/blocks/generic/BlockBobble.java b/src/main/java/com/hbm/blocks/generic/BlockBobble.java index 1ec769c03..afd48197b 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockBobble.java +++ b/src/main/java/com/hbm/blocks/generic/BlockBobble.java @@ -191,7 +191,7 @@ public class BlockBobble extends BlockContainer implements IGUIProvider { NOS( "Dr Nostalgia", "Dr Nostalgia", "SSG and Vortex models", "Take a picture, I'ma pose, paparazzi$I've been drinking, moving like a zombie", true, ScrapType.BOARD_TRANSISTOR), DRILLGON( "Drillgon200", "Drillgon200", "1.12 Port", null, false, ScrapType.CPU_LOGIC), CIRNO( "Cirno", "Cirno", "the only multi layered skin i had", "No brain. Head empty.", true, ScrapType.BOARD_BLANK), - MICROWAVE( "Microwave", "Microwave", "OC compat", "they call me the food heater", true, ScrapType.BRIDGE_BIOS), + MICROWAVE( "Microwave", "Microwave", "OC Compatibility", "they call me the food heater", true, ScrapType.BRIDGE_BIOS), PEEP( "Peep", "LePeeperSauvage", "Coilgun, Leadburster and Congo Lake models, BDCL QC", "Fluffy ears can't hide in ash, nor snow.", true, ScrapType.CPU_CLOCK); public String name; //the title of the tooltip From b000105392e84e1dcdb561cb680b20e64cc2b25a Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Sun, 24 Sep 2023 17:01:24 -0500 Subject: [PATCH 415/432] attempt #2 --- src/main/java/com/hbm/blocks/ModBlocks.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 60f325e78..df7ebbf45 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -831,6 +831,7 @@ public class ModBlocks { public static Block crane_splitter; public static Block drone_waypoint; + public static Block drone_waypoint_request; public static Block drone_crate; public static Block drone_waypoint_request; public static Block drone_dock; @@ -2013,6 +2014,7 @@ public class ModBlocks { piston_inserter = new PistonInserter().setBlockName("piston_inserter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); drone_waypoint = new DroneWaypoint().setBlockName("drone_waypoint").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":drone_waypoint"); + drone_waypoint_request = new DroneWaypointRequest().setBlockName("drone_waypoint_request").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":drone_waypoint_request"); drone_crate = new DroneCrate().setBlockName("drone_crate").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); drone_waypoint_request = new DroneWaypointRequest().setBlockName("drone_waypoint_request").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":drone_waypoint_request"); drone_dock = new DroneDock().setBlockName("drone_dock").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":drone_dock"); @@ -3296,6 +3298,7 @@ public class ModBlocks { register(conveyor_lift); register(crane_splitter); register(drone_waypoint); + register(drone_waypoint_request); register(drone_crate); register(drone_waypoint_request); register(drone_dock); From 42bf74c464d234470188d604770ec341561a964b Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Mon, 28 Aug 2023 16:24:38 -0500 Subject: [PATCH 416/432] jesus fine 7 here's your fucking fast conveyors --- .../item/EntityMovingConveyorObject.java | 8 +++++++- .../hbm/textures/blocks/conveyor_double.png | Bin 360 -> 4393 bytes .../blocks/conveyor_double_curve_left.png | Bin 1340 -> 4845 bytes .../blocks/conveyor_double_curve_right.png | Bin 1278 -> 4824 bytes .../hbm/textures/blocks/conveyor_triple.png | Bin 365 -> 4365 bytes .../blocks/conveyor_triple_curve_left.png | Bin 1363 -> 4716 bytes .../blocks/conveyor_triple_curve_right.png | Bin 1335 -> 4713 bytes 7 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/entity/item/EntityMovingConveyorObject.java b/src/main/java/com/hbm/entity/item/EntityMovingConveyorObject.java index 228c8230a..b13accbae 100644 --- a/src/main/java/com/hbm/entity/item/EntityMovingConveyorObject.java +++ b/src/main/java/com/hbm/entity/item/EntityMovingConveyorObject.java @@ -1,5 +1,7 @@ package com.hbm.entity.item; +import com.hbm.blocks.network.BlockConveyorDouble; +import com.hbm.blocks.network.BlockConveyorTriple; import com.hbm.lib.Library; import com.hbm.util.fauxpointtwelve.BlockPos; @@ -148,7 +150,11 @@ public abstract class EntityMovingConveyorObject extends Entity { public abstract boolean onLeaveConveyor(); public double getMoveSpeed() { - return 0.0625D; + double speed = 0.0625D; // this worked first try + Block b = worldObj.getBlock((int) Math.floor(posX), (int) Math.floor(posY), (int) Math.floor(posZ)); + if (b.getClass().equals(BlockConveyorDouble.class)) return speed * 2; + else if (b.getClass().equals(BlockConveyorTriple.class)) return speed * 2.75; + else return speed; } @SideOnly(Side.CLIENT) diff --git a/src/main/resources/assets/hbm/textures/blocks/conveyor_double.png b/src/main/resources/assets/hbm/textures/blocks/conveyor_double.png index aa49e18c86beb2a36b5ea9be47796a5083419b3d..6d773232d77c206207b84f3706abb4fcc35cdb19 100644 GIT binary patch literal 4393 zcmeHKeNYo;8V^E?LO`tYS*UBUD3;BBZ|2bZlj_`z~1_$&zeHuxGWl zR#2g8Td(8bSUSpijMRQ0RhcT)TD4eYdhMJ=uVXD&+ZjEir$=vWd-rbmp6kpFGuQvf z%x3p}K7Q}>{GR7|XSdF_a(P@#T8vC4i?f*Xi{L#0UYnyL;s2eEyR+c!qYZY4SVRXA z!RO`pN`Qzp0zg2B=VY=_uiJJt?kpnzseF6G_2i>f=2y&redC+K>C0kP)l=O^BhwrD zZ_1B)&Lri0yJ!81sQ1>dPBS;rx0hyh^knQ~>$ZJq+Oq4$=U?ybyQk`ITUZsjBiQu* zf_BZSPw#b^E?}SiqKNqN>BA>?ePVt)wrv1iajfrta{CJ#{qpxSsoQFY$r# z#v_UPS6|!QqFvwSjqA;ev8kJORcY%Talbzm75OjSANjANZwjTEJ2&}G$z%~P@+Onb zVls{71G8w{xZ7wxo0ooWUGX_Z;;hHbRTpggZ(WbR;b?J0#U5(yX?fw|p>;h6=UJ+% z=B$m4e=esaV{Ky~AS6b8I5S~Q@`8fo?14>|rh=W(=YI|b`>O`y6ZWlc-e)B8zR1bk zU%TVPPc2slx696?ERA~QA=N#WBVsQP1ZK`%*Z*d2*Zpe;n7r)Q<#*~nBAOpg8hCKv zR`VhMR}13bdG}z#f!R-{h)ZrPf2&J*x=N|fxpQgPZtLaQ+iK4hC3ii2>64dMnty)gFVUwvG&}xW>?y+I@1DBy&+{og@5i>Kwg0@a@@nhs&VS3- z@)?_2XI$F2=d15ryEDs#hmRlsyX%KXgcFfFbHCp+Prv6tvn^*@fB9W&P1%o0->vgM zThaf`-G~cCYr1ruAI`&{dGl7_NF+{Gb*W-5S)I6*n@F)I2yPAd?eH7eFZ65G`PY635(bY`lkG zEU1Pc!vX!Ohu;pz6e|LLZ@|ZZf@VHpfm0yi}E!(E99TQ0X) zZKEC%1?9Y32zx=YCs>L+H%8Wk*d$Fjo$-M{_fgyl)+4!xjiHs*YRLC80VzC7zEL6V zZ(zL)&lp2G^oaPOn1Mj8ly|X`DnElBCpt;#fUHjf1jy{37jPfCL4>l|008 zYITH`Vx1^ZGbE~p#YHKK)S)U4=hTdza;nr|9K@489(E;NIX)^0iiJ=(rKhx$*VJ}Lk1g=!6!y2hD z2AB?{mX+AmOnv(9BQ@ ze!3d4;W#1Ikcx59o^k-skKu+Lk@LUO3;;Oww3B5}Elt5@;PfQwRO!?xL8?d%$Ke_c zH`Gs~=zcFJ25BEyQVw~9T)_qnbA>D%E>-r#Xo4;v)d5n5;uJbYnNEQXCyPlZ#z?lg z*njbn8#Wks#6Z6x89ch+Nr;Ueg~NQoSbxjka2Lok>6WwQ7)(iM@oaK&aQ zj211{g6Nym(`M;rVGpV2LD8Qq`Ah6n7gJ^@lgiX3No9idXhH=2V0T|)L}MuzA#b=1 ziqkuSg>+flQ|XIf; z{K&ttXKH delta 283 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 L4LGxW!}k9GO5`DO delta 1282 zcmV+d1^xQ%CA~OIJZGKO9nVY)IbYfkzVl%v^dxP1G85LjAvF7xx!5PE;G!R+2?tyYBWn?f=PGv z&!?V#OZA)n{H`*Ee4%obsjF@@jTU~#Q4iNMuh)NTmQ-)qTlD7lj`E^e)NMy;mHn8l z6epe|x1ae@iC^CBTwWb>o%-(Wx032&jh#`~QN5?;;rrWfhw7nopL%bj0&Sz`Nzwt*=7?jj{8;0xkxucRz5+*BL9N)x) zVGDnZLZ(p8k->XU$-tMtgn@Nx!Wf2uW+chEW~^6+5jPB@Xc>F=m#H_GUs5mm=y>vV zCGmKDM@c+hGp!iU(;N)OGjzc~JozFSy!V6*e0e7ftWy^T*3gWnWm7YHbHj*S!>C%u z{^zgh_xO3qN5_+?DTycQr}cGs7eO! zJtc$r2m|ZXh2i;knz2Ma!dP|;quVx&oMr6ckK6t9z4WR-5)b>scn1BFVtc}I>sWuG zJ;^8l1MM03EpAFVTd0!3d(X&VKEl8{HN7e0zGnQ~G&EzgGK^uvFqpA0_OAYQ-h8=# zm5;P1Q$T+hPd7MLY>)TgmK5VzbodCw6Su)YJe49Dy!VU@=?@uLr!EYC8feB69TY}y zZWzP1VN@++|I-g#^ZNbL@sw*y;_-i(593)k9fkIc!W9^3j~}+cKs@Cf8PcDL>5nk5 zPE8nNzpojaNmDbDz%T|a!>C%u!QlV>k@jGAD2XS!!`xsz*X|(($Rp+t7>vhjf{{O} z$6`(?3)a z&$f}m02zhJGZ<)37_&dwLOD~k;RE`q&<1`hwX{5_e$cKxoO3Cmh2DO<3*UQ3h`vCc6^JR8nuv?so4fPr`lIXk}2_z39_ z8JuCl;2Of%+Wu?iPqXBy41?~I4@8SPp2=A0XdXNK8< z_bdA`XX|%DhV+LF&M;w2qmE|Go?OkCbqr(b8b;MJ_W${=50{toOX7dQ`z7&=g0y0L z!VvvIdp1b`2HJBI^ZY7j3YnrEUngYf{_v>H*#2OK31hN8*NiYQ48LI*Rm(WIH%INu zeAWki9VOuj)=w#kr-ytNJm5RrcOLK;vMC?4RXe^;KS!_n!x<)wsN2_!C;X2f4DZe` z;tRtlTE>BIj@n=O=y*=@H8qd}9{G&rfOk26aDuJC2zkIaxG6Z`t9E?->W?ru!-O#y s2AZ)>T+JA-3}bw57&*(3{!F^ge;S$+dduoOrvLx|07*qoM6N<$g4Q#0F#rGn diff --git a/src/main/resources/assets/hbm/textures/blocks/conveyor_double_curve_right.png b/src/main/resources/assets/hbm/textures/blocks/conveyor_double_curve_right.png index fafd8b190002d0026bcbbb7971afc3a2ac191591..2ea981a7185696b31055aba05a9ae4549887a0b7 100644 GIT binary patch literal 4824 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 delta 284 zcmeBGddoCHOoNeug_(hY!K3DNEs$a?4sv&5Sa(k5C6L3C?&#~tz_78O`%fb4WF`TR z`b(ZJjv*e$&t5d-I%FVn?Bn!>7d9pYSgopHczvl)l1q|#S{HjpOCFzTUz20NalgKG zdmFABYuT*-(A)ZctNlM!Lw~p6iK-z{k>;mDMZ}-&>iH$C`8wbK?<5tuw7ng_Hb|!2 z)%<;T$zN+f?xM$==}R z|M^!O{l1;@5@AbcO#E=4F|j~Q0K~*fec0|GF^9F~U?iCOc>BvU-cF{d{5G}FB%p^G NJYD@<);T3K0RY>jaMJ() diff --git a/src/main/resources/assets/hbm/textures/blocks/conveyor_triple_curve_left.png b/src/main/resources/assets/hbm/textures/blocks/conveyor_triple_curve_left.png index f6411e3c5fc53f6c78cc8b87e642b2fd673cae11..ab4fda3be41ca18c90254e4d11e0fe27bbb539a9 100644 GIT binary patch literal 4716 zcmeHKYfuwe7LJb0wN(e3=cc$yvSn{gaL#o(F{bzSzYY(BWWQIl7*>RBBz#@9)*u@_fC8*4_#UQ{SjD)gwfw#I)!A#UY3QJLPB#E=(@GZ zMU|1Fq{_Vo-!-R?`}+E>WsJ9v_yy-$e_lM@?ekHdG}@?KGAc?bkBWMi56Gf;Re>z- zV#KuiP&a>OYSI>HoU%5f<^>?;q+|dCC)(~kIr$OPY)h2-~E{W_mlfw zOD4~sN=3HD9&cdPrm@5`pEdrqK+!aL{f7Dk&xWOq*VfIEMos%vwWVuqaf4$UbbWc% z^_HFoY$uP(LZ_d|t<0Q{W)!R*@0G4nu3Z~c;T;@!qtdVE*?QmXO-s0ELY6&9if|5@ zamA(2p|(blcQa9+0MonA-Fk6lYV+xdmENa%SEb&rn0)@N(-P7*yJAA)s%>}MwFLpo zj6T)X|JHU*H=Y@@S^BSS{^D&V2bD8NcWAm5naf^!v?rTaq;%Zx9(6TgQG@XO1%LR@ zWlz)dEe`)!@wz9zrq<8J-Sn^nzvBROmq7x3B`M-1s6od z6r5tHaSf@LF*|B%nG6z>F&7CGu)-LHYst7Q6P}ngPlaZspkjh)8P9Y4d zE>&-qSY=E*t^_>WhS^Mp-GoY!F_RQZMwG#XGx#h%3x;B>WCoWR?#PguFhY_LJ$nEG zyvdkaiZV*rY>UOhvhY|2lZMR^i^Xi1%jR++U;&vk^%P=-^yUB?L_bC}ZbnU{ks=Lx zh7A)@8`3EmlL_V-@8Z)L6^cQ4y?KBIzz5rk7}*>a%+~4HLp{t?Oa=fM2;&9wNH?K)Oa`u}0)|3h=%Bwb-IQui2SeF-Dy{>jX0R$}*pjhwg>ultMuCRZ8SP$x z>|vG^NxUa(SZuZ#dpbh{0q%pi!>r%sZZ`&23WX%vfTr8RlSj*#w)G{L0VOes{ZRzt zLJ?mLLtKFfgZKzn1c~`v9>f=Lag3`Lszo?F1WK+qQ-~hLZBPK5MFJdxOQ3w15J5bS znhWtcz*_`-A%c(NFo#13_ylJN#C#J8REeYxjmidv0jMxsh!F^aK`2ImX!t@Qq!xtn zAs9wsgc}wHAQ3whhDv4|OgaQ?C#gd;INPY#*e7g+OCptW8I#NE58OVYOhqUHIDi@; z^_an8es8QIb$B9$*!bjxiFvS)&*KP%VvxoV|An~8476xN<-jZ+-|lYP7zs!RP>a}< z3IOcmAR9@P2}dY{No6pk%9yqg7&gzrX$2@K455%{gu($R%;ia7k%Swj;_xI~frJB6 z7D(VB_6Ce3GXIygt$Y~L{!Nb~&0zgZ`%r&PCE{uQZ~d>Sq`jCJ40~Bf5VSu9Gm?R0 z_Ba7n{}if4^co!Wj{(8H8z+B53~D$G7O1%#h{MBxiuh_ZB;w#e5h4u1IAL5uBt(a! zn+*hIK}>k02Ji^D0s^&j#RwYMs^H=F7A!>HLnrfqnQLR{+o>i+m8jBXo_>^+61LknxDRM(Fw= z20qAmL|y+kx*Xphrf@y@0 zdL(YUTWhe~T}^52|wINfdWY4?~? z?!R(;nP_WSzG4HbOL}d^IM?;!y4^oTZpk3Rls8-}ZhSMLW;>(h_;u+9_We|8ka1n=N!_BNYd z<;)iAQut>>nyEv5-MuZ<^hb@iiWky#R%-d#@SU@)H)Ag&RD;9j=fU)OGtY~*OY6e7 zYF&xewaY8>4&U4H<)lKWW|A!bd33voj++5vpws&bS9`WQ*RcC4L z!<10eT)X9fVx0@x zF*#fr^y0f9jcyD5gd=}i(vtu&+V^Zv_RglIUka0tw)LIJZ(;bs^gh9h3!>`CRd@W> z`8?Qqq9?X=M|D?SP|I#=MpoK%jpM3DZF1?Y*nPRLyq!;ucFwvRT7_0T={-`BT7|x) Z?T@;DvFv5uO`r&xJZ4_>@lTem{tr}I+qeJ# delta 1285 zcmV+g1^W8zB-09z7AOG#1Oos707!i6eEs99IO_h#Ly)SiMHXO|I2SIaUHii2tSUy_q2?=ZXE{>+hS#Hq_ro zOdJVMR=kjP<0OgWSBET~<$0Vpi;UaS_MB-!9jh z^N;^5G2vC(*E{_p9De@IyUl3{eja{#{ptHMOD2UE=g%(SSIy!NZ?_+-%(^V8GrNBj zKmToeTx477?-OQo+ZDDOuqaB?=1F!WTb3yC|&kQSr!-Q9N&k1xE2)waX0S zsaU|EqYYp{Jg$Wdh$pEdW1id&=@ni@w285?@mw)%87f9T(Tt?68NOlcjf*d@xBKN) zJ}Mp#`CvTDQJGOZ53NIn@kk38bhLpV#rA)sgA9l#t>G({Su`SsEA0+3ARonWMW7hj zon~Y$&9Dq(|FZP`yG`>iQ-3HP5i)Ggn*{oU?YYX^RR-;;a0eJFA7E5GSNQk}EL)wr zaSQ!HMn!l(5d-p33~7goF`sD0ysa6~AH~=mSAYC>=fiq`C>}dt6wghs%CJ2TX$yZV z>Plhti>5y%2JzSqGO%n7>PD1}h#_tFsXvM#yg)G??lfcB(G15hcKLdBR5H6v+j zhHn^qkHwd7x5sP!QSm^3ust_XugHI}J?Q}Q!Fag!ULURj!;`kOkbz~R{zO^!4>8~= zEn+}Eis89|Vk~=_k##h~Hw@^{i}U~WhuU)l{h@eb$OqdK&zkT+h=)5D`f!aZ>T-)F z1=6e`BgtnIVtDePO$^9KF}zBs81Y0iZcjABxzvpPzp7vTzGFrP^P%=&f3SZ&Q3Uga z?HMeNVZI<9;XhVa{egJ6gA6QN4H;Rs=n=!^)E}BJ#c*Yy7=t^_h&q~K8OGl9@LRf0 zpYoyh2)LiIJ#jLG`NDYelPbe_Y{&Gch8126uUj7}y_TND(N;eNQv)Tbkh*#-3RmYx6}LEM(Z8B!T`=Jb4>l0r5!3T;?_U zD1tlqia0*Ksv%A9z=HRY0r7O}$hb}BLt;qbHHiWFD2C*rV&p^3 zh)*=bF^v7bUbS1R{Y6n5EMPaZ;Cs*wTJW&HFdonU@N_>H;1dYjM+U?bHINZy%Mmf) vDJ^0^K8nH3{z^xhadxa3mSL#=OiTX(qej|R)O_0^00000NkvXXu0mjfgm!L8 diff --git a/src/main/resources/assets/hbm/textures/blocks/conveyor_triple_curve_right.png b/src/main/resources/assets/hbm/textures/blocks/conveyor_triple_curve_right.png index 4c32e96e580ebf8a1a364868553e0efa031dda5b..7850549016d6ffc3a31cd3ab9a0df3fedfc2ce95 100644 GIT binary patch literal 4713 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 delta 1257 zcmVo`M@hT~*-p|BsU`6pW`R^18-xI9nz#lQ zT}1_Zs;)BNP${caG8yDm5wtVQN$`+8pmN4& zMcID?UorONfx`F@#f(wHafQ*j&={+W9K#aTKli`=qx$ki!B3zBiRxC&f<*ml#)5!h zx+Dk~162$grUOBQF`#n3q8q0vW6T{lP#ENgF={x@#>(AmjWNH@F)UGE441dM?y#-rGM2%>*0dQ{FB?RAtf#uy(`803dBN;s|_rM1x* z)uS|L8euf`s*zV66NtR3qr9iNf0nby1##>L)(WS&d((TF-Ch6tr_Fo>-!3W`-^OpDEy4k z*=USalw(*_b9nSLKfV$q%FR<2g#Joc5HN5#1Oa38n4bWG2xD{#L5$H%mnmbQzof$8 z{18SB$E%Fdz10}=WsYId0Quyn#$vbFUrLauw?Y;qD(4vs0)`oopvU|mqIiG8pida1 z5P}$^6>TEMK!5cW2Iq$`N{-YR?TyA*ZE_5g$LUe!$L(T&DM2)!S&(Q#-{l7Zw$>BSJl7??jQ8&{M=#!&Ma7&RQn!vUk4YK(cBW7s@S&l=OG{l$VrqaCs! zcD7c8e<&g7j$x_gQvbEsU%nC~jCRC=MD;vlLBOy)67;yg@F=DaL4?sm`6Yj2v>(=-pTqG1 zzQY(ipUFlE$7$7`HQG_Wzb;08zjQMGfVe3_UQ|vFb-q8guUhnv)V_xqW zFl<`y5*Yu_=b?r5&iOSN@v Date: Wed, 20 Sep 2023 22:31:32 -0500 Subject: [PATCH 417/432] oh get ready for this one huge commit yes i should have spread it out but im lazy :3 --- src/main/java/com/hbm/main/MainRegistry.java | 1 + .../machine/TileEntityMachineReactorBreeding.java | 14 ++++++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 6b933db58..5ce6be6ab 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -921,6 +921,7 @@ public class MainRegistry { World world = event.getServer().getEntityWorld(); RBMKDials.createDials(world); SiegeOrchestrator.createGameRules(world); + CompatHandler.createCompat(world); event.registerServerCommand(new CommandReloadRecipes()); event.registerServerCommand(new CommandDebugChunkLoad()); event.registerServerCommand(new CommandSatellites()); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorBreeding.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorBreeding.java index 3a8cec7ca..1a44314c0 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorBreeding.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorBreeding.java @@ -2,6 +2,7 @@ package com.hbm.tileentity.machine; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.machine.ReactorResearch; +import com.hbm.handler.CompatHandler; import com.hbm.inventory.container.ContainerMachineReactorBreeding; import com.hbm.inventory.gui.GUIMachineReactorBreeding; import com.hbm.inventory.recipes.BreederRecipes; @@ -15,7 +16,7 @@ import cpw.mods.fml.relauncher.SideOnly; import li.cil.oc.api.machine.Arguments; import li.cil.oc.api.machine.Callback; import li.cil.oc.api.machine.Context; -import li.cil.oc.api.network.SimpleComponent; +import li.cil.oc.api.network.SidedComponent; import net.minecraft.block.Block; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; @@ -27,8 +28,8 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityMachineReactorBreeding extends TileEntityMachineBase implements SimpleComponent, IGUIProvider { +@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SidedComponent", modid = "OpenComputers")}) +public class TileEntityMachineReactorBreeding extends TileEntityMachineBase implements SidedComponent, IGUIProvider { public int flux; public float progress; @@ -216,11 +217,16 @@ public class TileEntityMachineReactorBreeding extends TileEntityMachineBase impl } // do some opencomputer stuff - @Override + public String getComponentName() { return "breeding_reactor"; } + @Override + public boolean canConnectNode(ForgeDirection side) { + return (CompatHandler.canConnect(worldObj, side, this)); + } + @Callback @Optional.Method(modid = "OpenComputers") public Object[] getFlux(Context context, Arguments args) { From ab9db6806c45bb18fe11821b94e0b064dd884b6e Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Wed, 8 Nov 2023 21:31:04 -0600 Subject: [PATCH 418/432] Revert "jesus fine 7 here's your fucking fast conveyors" This reverts commit 0f47e9ace0e8da9f10b9d9458bcee36b528b8b2d. --- .../item/EntityMovingConveyorObject.java | 8 +------- .../hbm/textures/blocks/conveyor_double.png | Bin 4393 -> 360 bytes .../blocks/conveyor_double_curve_left.png | Bin 4845 -> 1340 bytes .../blocks/conveyor_double_curve_right.png | Bin 4824 -> 1278 bytes .../hbm/textures/blocks/conveyor_triple.png | Bin 4365 -> 365 bytes .../blocks/conveyor_triple_curve_left.png | Bin 4716 -> 1363 bytes .../blocks/conveyor_triple_curve_right.png | Bin 4713 -> 1335 bytes 7 files changed, 1 insertion(+), 7 deletions(-) diff --git a/src/main/java/com/hbm/entity/item/EntityMovingConveyorObject.java b/src/main/java/com/hbm/entity/item/EntityMovingConveyorObject.java index b13accbae..228c8230a 100644 --- a/src/main/java/com/hbm/entity/item/EntityMovingConveyorObject.java +++ b/src/main/java/com/hbm/entity/item/EntityMovingConveyorObject.java @@ -1,7 +1,5 @@ package com.hbm.entity.item; -import com.hbm.blocks.network.BlockConveyorDouble; -import com.hbm.blocks.network.BlockConveyorTriple; import com.hbm.lib.Library; import com.hbm.util.fauxpointtwelve.BlockPos; @@ -150,11 +148,7 @@ public abstract class EntityMovingConveyorObject extends Entity { public abstract boolean onLeaveConveyor(); public double getMoveSpeed() { - double speed = 0.0625D; // this worked first try - Block b = worldObj.getBlock((int) Math.floor(posX), (int) Math.floor(posY), (int) Math.floor(posZ)); - if (b.getClass().equals(BlockConveyorDouble.class)) return speed * 2; - else if (b.getClass().equals(BlockConveyorTriple.class)) return speed * 2.75; - else return speed; + return 0.0625D; } @SideOnly(Side.CLIENT) diff --git a/src/main/resources/assets/hbm/textures/blocks/conveyor_double.png b/src/main/resources/assets/hbm/textures/blocks/conveyor_double.png index 6d773232d77c206207b84f3706abb4fcc35cdb19..aa49e18c86beb2a36b5ea9be47796a5083419b3d 100644 GIT binary patch delta 283 zcmZ3f^nz)Em(6?+IEHu}KYPKDtJy&0*vILL&f9n_9rrjgyKYJ?C^-Fqmqoj5`n%SsSC1x0 zi+K4f$gLMVZGG6>g5y4SeVxjh%ZEf~tvY@7jr_`Q(pL-mM3x!0R(h-avFcsv*9`kB99Z|2bZlj_`z~1_$&zeHuxGWl zR#2g8Td(8bSUSpijMRQ0RhcT)TD4eYdhMJ=uVXD&+ZjEir$=vWd-rbmp6kpFGuQvf z%x3p}K7Q}>{GR7|XSdF_a(P@#T8vC4i?f*Xi{L#0UYnyL;s2eEyR+c!qYZY4SVRXA z!RO`pN`Qzp0zg2B=VY=_uiJJt?kpnzseF6G_2i>f=2y&redC+K>C0kP)l=O^BhwrD zZ_1B)&Lri0yJ!81sQ1>dPBS;rx0hyh^knQ~>$ZJq+Oq4$=U?ybyQk`ITUZsjBiQu* zf_BZSPw#b^E?}SiqKNqN>BA>?ePVt)wrv1iajfrta{CJ#{qpxSsoQFY$r# z#v_UPS6|!QqFvwSjqA;ev8kJORcY%Talbzm75OjSANjANZwjTEJ2&}G$z%~P@+Onb zVls{71G8w{xZ7wxo0ooWUGX_Z;;hHbRTpggZ(WbR;b?J0#U5(yX?fw|p>;h6=UJ+% z=B$m4e=esaV{Ky~AS6b8I5S~Q@`8fo?14>|rh=W(=YI|b`>O`y6ZWlc-e)B8zR1bk zU%TVPPc2slx696?ERA~QA=N#WBVsQP1ZK`%*Z*d2*Zpe;n7r)Q<#*~nBAOpg8hCKv zR`VhMR}13bdG}z#f!R-{h)ZrPf2&J*x=N|fxpQgPZtLaQ+iK4hC3ii2>64dMnty)gFVUwvG&}xW>?y+I@1DBy&+{og@5i>Kwg0@a@@nhs&VS3- z@)?_2XI$F2=d15ryEDs#hmRlsyX%KXgcFfFbHCp+Prv6tvn^*@fB9W&P1%o0->vgM zThaf`-G~cCYr1ruAI`&{dGl7_NF+{Gb*W-5S)I6*n@F)I2yPAd?eH7eFZ65G`PY635(bY`lkG zEU1Pc!vX!Ohu;pz6e|LLZ@|ZZf@VHpfm0yi}E!(E99TQ0X) zZKEC%1?9Y32zx=YCs>L+H%8Wk*d$Fjo$-M{_fgyl)+4!xjiHs*YRLC80VzC7zEL6V zZ(zL)&lp2G^oaPOn1Mj8ly|X`DnElBCpt;#fUHjf1jy{37jPfCL4>l|008 zYITH`Vx1^ZGbE~p#YHKK)S)U4=hTdza;nr|9K@489(E;NIX)^0iiJ=(rKhx$*VJ}Lk1g=!6!y2hD z2AB?{mX+AmOnv(9BQ@ ze!3d4;W#1Ikcx59o^k-skKu+Lk@LUO3;;Oww3B5}Elt5@;PfQwRO!?xL8?d%$Ke_c zH`Gs~=zcFJ25BEyQVw~9T)_qnbA>D%E>-r#Xo4;v)d5n5;uJbYnNEQXCyPlZ#z?lg z*njbn8#Wks#6Z6x89ch+Nr;Ueg~NQoSbxjka2Lok>6WwQ7)(iM@oaK&aQ zj211{g6Nym(`M;rVGpV2LD8Qq`Ah6n7gJ^@lgiX3No9idXhH=2V0T|)L}MuzA#b=1 ziqkuSg>+flQ|XIf; z{K&ttXKH diff --git a/src/main/resources/assets/hbm/textures/blocks/conveyor_double_curve_left.png b/src/main/resources/assets/hbm/textures/blocks/conveyor_double_curve_left.png index fe59acfe25447f009e2ee973c805bc771f68af3e..f5f4c4a8c824c2aef4e1529ea0c461e8248802ce 100644 GIT binary patch delta 1282 zcmV+d1^xQ%CA~OIJZGKO9nVY)IbYfkzVl%v^dxP1G85LjAvF7xx!5PE;G!R+2?tyYBWn?f=PGv z&!?V#OZA)n{H`*Ee4%obsjF@@jTU~#Q4iNMuh)NTmQ-)qTlD7lj`E^e)NMy;mHn8l z6epe|x1ae@iC^CBTwWb>o%-(Wx032&jh#`~QN5?;;rrWfhw7nopL%bj0&Sz`Nzwt*=7?jj{8;0xkxucRz5+*BL9N)x) zVGDnZLZ(p8k->XU$-tMtgn@Nx!Wf2uW+chEW~^6+5jPB@Xc>F=m#H_GUs5mm=y>vV zCGmKDM@c+hGp!iU(;N)OGjzc~JozFSy!V6*e0e7ftWy^T*3gWnWm7YHbHj*S!>C%u z{^zgh_xO3qN5_+?DTycQr}cGs7eO! zJtc$r2m|ZXh2i;knz2Ma!dP|;quVx&oMr6ckK6t9z4WR-5)b>scn1BFVtc}I>sWuG zJ;^8l1MM03EpAFVTd0!3d(X&VKEl8{HN7e0zGnQ~G&EzgGK^uvFqpA0_OAYQ-h8=# zm5;P1Q$T+hPd7MLY>)TgmK5VzbodCw6Su)YJe49Dy!VU@=?@uLr!EYC8feB69TY}y zZWzP1VN@++|I-g#^ZNbL@sw*y;_-i(593)k9fkIc!W9^3j~}+cKs@Cf8PcDL>5nk5 zPE8nNzpojaNmDbDz%T|a!>C%u!QlV>k@jGAD2XS!!`xsz*X|(($Rp+t7>vhjf{{O} z$6`(?3)a z&$f}m02zhJGZ<)37_&dwLOD~k;RE`q&<1`hwX{5_e$cKxoO3Cmh2DO<3*UQ3h`vCc6^JR8nuv?so4fPr`lIXk}2_z39_ z8JuCl;2Of%+Wu?iPqXBy41?~I4@8SPp2=A0XdXNK8< z_bdA`XX|%DhV+LF&M;w2qmE|Go?OkCbqr(b8b;MJ_W${=50{toOX7dQ`z7&=g0y0L z!VvvIdp1b`2HJBI^ZY7j3YnrEUngYf{_v>H*#2OK31hN8*NiYQ48LI*Rm(WIH%INu zeAWki9VOuj)=w#kr-ytNJm5RrcOLK;vMC?4RXe^;KS!_n!x<)wsN2_!C;X2f4DZe` z;tRtlTE>BIj@n=O=y*=@H8qd}9{G&rfOk26aDuJC2zkIaxG6Z`t9E?->W?ru!-O#y s2AZ)>T+JA-3}bw57&*(3{!F^ge;S$+dduoOrvLx|07*qoM6N<$g4Q#0F#rGn literal 4845 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 L4LGxW!}k9GO5`DO diff --git a/src/main/resources/assets/hbm/textures/blocks/conveyor_double_curve_right.png b/src/main/resources/assets/hbm/textures/blocks/conveyor_double_curve_right.png index 2ea981a7185696b31055aba05a9ae4549887a0b7..fafd8b190002d0026bcbbb7971afc3a2ac191591 100644 GIT binary patch delta 1220 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 NJYD@<);T3K0RY>jaMJ() literal 4365 zcmeHKeNYo;8V|(*A>Lq)}+ zmeT|8I-b?B=M`?w9?rFAt)89JDpowW!syg`t!*8tS9<3i;(6t6YOnY1hR?aq+%VJr zM`n`Uecs>md!Og`JkLAX{kC<*N%0HgB@#)J#cV1C*HrMe&58!U_x2910+%b>?d5za z5rX^yAH%w7h_Cn45FKV2i6s1?$M#Xu6)5qE^T5Honbq%RTjAiIgH`E^@=S*P15dis zp2_;O?`K=1o7!?VA)Rwk^Wmb8n|A-Ass+j{mXt~V{S)Ud>D9X5Hg7(;^UrA+D;{(_ z`lI>N4YzNtIsEX0<_-F;fkWM0ONx+|BX2hn{SDGw>t7q1{?<6}FDsH(#^JqB28yNc zpMA@@qj`UFQ4GlpFIm!@9!jq%sr+?XC&4KDTHV>-e5q=Eeqc`pY^v<=NF-5BY(as| zQcy6K4oKoyL#x4j#klxtRoPW|UfMI}+HTwN2X|xdm7gk~mC)YVe`?S5_Nx9@vn{o? zb1M^)pO=0_wKA>rVegMyt$pdu`>vK|_H60>!wYNm1&cS> zfAnbYv7Y$Pk@sreeDA}N&*X_2XMURa0ecYM^>j|_?zja(yKV2@+|Gr0%Ws@nI`XhN zYv+MV<@uG>pOqVvR_0tw`A_V{3;2sS%emH$KG}og z3+n*MXh7fU!P&u-%1dd^7YvYeVIA$|mrbUi$Z>yvFyI!`p-4IHrab`4fn60-wk)<- zZQ~w-1WwlD7rlVkQ;(AyQGKuE-bg5TKl_hj7wzzt<@)2!iWY+bjlHDU0kX zT5N8DXMh8k0oF_TLfiz{&U)xFo)Gj@s6p=e7>41PN`vMrCqNtN00(+eU{#QB^g5o-K65dC#O#S~u3*!UnBb73<9N52JG(~2rjIND5MIPO(I7|>Ej)jgOBPno1 z9UZAS;EF7fF2d`i!TB-Tuw!=iTbcnQ6*xwaYDA+Vl!%JPQN%%jLC2_kRHMcjilJyx zg>iPy$M7K{K(BTJ9f4M$K}D^g+|g3yO~r>?v`_~i8G>q%3CVC+KANmtI5Ebu)yw}! z54{MObi@F^hz%TF;3SlfABCfOfmpxK&uAUK&n+NmW|L{@J0sVOT+>ouTHu-PnvrW- z3QP+;(_P=0T=5exQ?wWS0}6pxrM5qDN5N}Wj;+LA=yJIXS=SdVSg?Hg@<6?p$h%Wf zQBhJ-QnT_OIF2(6V>BA?4{jX*_}PAQ1t*atUlzVm^K#cV0%I(1u@=UD9=C8#T>dYc zpFR&vFI!Bj?YVtqwLK$sBc+;C?YE}S{$Ws>LfrjL;-HE;e&^ENBe!n6*-u`Giyr80 ztbXp+btC?o>GImFo0n>G5Mz!0jm?*Tpue$se&aDFA$dR&bM4VfXYGdqX)zmn8qKe0 zql{a!9ltvLg>lQ;r`j@Fii}(C!ymUFd~I`T&Eg(YS3=fJQ_Q=i`dujW(!JSDQLoQk g4<+tvKNlS(sdBun>o#}sAWVs+aGmM&n(E#E1sr-E2><{9 diff --git a/src/main/resources/assets/hbm/textures/blocks/conveyor_triple_curve_left.png b/src/main/resources/assets/hbm/textures/blocks/conveyor_triple_curve_left.png index ab4fda3be41ca18c90254e4d11e0fe27bbb539a9..f6411e3c5fc53f6c78cc8b87e642b2fd673cae11 100644 GIT binary patch delta 1285 zcmV+g1^W8zB-09z7AOG#1Oos707!i6eEs99IO_h#Ly)SiMHXO|I2SIaUHii2tSUy_q2?=ZXE{>+hS#Hq_ro zOdJVMR=kjP<0OgWSBET~<$0Vpi;UaS_MB-!9jh z^N;^5G2vC(*E{_p9De@IyUl3{eja{#{ptHMOD2UE=g%(SSIy!NZ?_+-%(^V8GrNBj zKmToeTx477?-OQo+ZDDOuqaB?=1F!WTb3yC|&kQSr!-Q9N&k1xE2)waX0S zsaU|EqYYp{Jg$Wdh$pEdW1id&=@ni@w285?@mw)%87f9T(Tt?68NOlcjf*d@xBKN) zJ}Mp#`CvTDQJGOZ53NIn@kk38bhLpV#rA)sgA9l#t>G({Su`SsEA0+3ARonWMW7hj zon~Y$&9Dq(|FZP`yG`>iQ-3HP5i)Ggn*{oU?YYX^RR-;;a0eJFA7E5GSNQk}EL)wr zaSQ!HMn!l(5d-p33~7goF`sD0ysa6~AH~=mSAYC>=fiq`C>}dt6wghs%CJ2TX$yZV z>Plhti>5y%2JzSqGO%n7>PD1}h#_tFsXvM#yg)G??lfcB(G15hcKLdBR5H6v+j zhHn^qkHwd7x5sP!QSm^3ust_XugHI}J?Q}Q!Fag!ULURj!;`kOkbz~R{zO^!4>8~= zEn+}Eis89|Vk~=_k##h~Hw@^{i}U~WhuU)l{h@eb$OqdK&zkT+h=)5D`f!aZ>T-)F z1=6e`BgtnIVtDePO$^9KF}zBs81Y0iZcjABxzvpPzp7vTzGFrP^P%=&f3SZ&Q3Uga z?HMeNVZI<9;XhVa{egJ6gA6QN4H;Rs=n=!^)E}BJ#c*Yy7=t^_h&q~K8OGl9@LRf0 zpYoyh2)LiIJ#jLG`NDYelPbe_Y{&Gch8126uUj7}y_TND(N;eNQv)Tbkh*#-3RmYx6}LEM(Z8B!T`=Jb4>l0r5!3T;?_U zD1tlqia0*Ksv%A9z=HRY0r7O}$hb}BLt;qbHHiWFD2C*rV&p^3 zh)*=bF^v7bUbS1R{Y6n5EMPaZ;Cs*wTJW&HFdonU@N_>H;1dYjM+U?bHINZy%Mmf) vDJ^0^K8nH3{z^xhadxa3mSL#=OiTX(qej|R)O_0^00000NkvXXu0mjfgm!L8 literal 4716 zcmeHKYfuwe7LJb0wN(e3=cc$yvSn{gaL#o(F{bzSzYY(BWWQIl7*>RBBz#@9)*u@_fC8*4_#UQ{SjD)gwfw#I)!A#UY3QJLPB#E=(@GZ zMU|1Fq{_Vo-!-R?`}+E>WsJ9v_yy-$e_lM@?ekHdG}@?KGAc?bkBWMi56Gf;Re>z- zV#KuiP&a>OYSI>HoU%5f<^>?;q+|dCC)(~kIr$OPY)h2-~E{W_mlfw zOD4~sN=3HD9&cdPrm@5`pEdrqK+!aL{f7Dk&xWOq*VfIEMos%vwWVuqaf4$UbbWc% z^_HFoY$uP(LZ_d|t<0Q{W)!R*@0G4nu3Z~c;T;@!qtdVE*?QmXO-s0ELY6&9if|5@ zamA(2p|(blcQa9+0MonA-Fk6lYV+xdmENa%SEb&rn0)@N(-P7*yJAA)s%>}MwFLpo zj6T)X|JHU*H=Y@@S^BSS{^D&V2bD8NcWAm5naf^!v?rTaq;%Zx9(6TgQG@XO1%LR@ zWlz)dEe`)!@wz9zrq<8J-Sn^nzvBROmq7x3B`M-1s6od z6r5tHaSf@LF*|B%nG6z>F&7CGu)-LHYst7Q6P}ngPlaZspkjh)8P9Y4d zE>&-qSY=E*t^_>WhS^Mp-GoY!F_RQZMwG#XGx#h%3x;B>WCoWR?#PguFhY_LJ$nEG zyvdkaiZV*rY>UOhvhY|2lZMR^i^Xi1%jR++U;&vk^%P=-^yUB?L_bC}ZbnU{ks=Lx zh7A)@8`3EmlL_V-@8Z)L6^cQ4y?KBIzz5rk7}*>a%+~4HLp{t?Oa=fM2;&9wNH?K)Oa`u}0)|3h=%Bwb-IQui2SeF-Dy{>jX0R$}*pjhwg>ultMuCRZ8SP$x z>|vG^NxUa(SZuZ#dpbh{0q%pi!>r%sZZ`&23WX%vfTr8RlSj*#w)G{L0VOes{ZRzt zLJ?mLLtKFfgZKzn1c~`v9>f=Lag3`Lszo?F1WK+qQ-~hLZBPK5MFJdxOQ3w15J5bS znhWtcz*_`-A%c(NFo#13_ylJN#C#J8REeYxjmidv0jMxsh!F^aK`2ImX!t@Qq!xtn zAs9wsgc}wHAQ3whhDv4|OgaQ?C#gd;INPY#*e7g+OCptW8I#NE58OVYOhqUHIDi@; z^_an8es8QIb$B9$*!bjxiFvS)&*KP%VvxoV|An~8476xN<-jZ+-|lYP7zs!RP>a}< z3IOcmAR9@P2}dY{No6pk%9yqg7&gzrX$2@K455%{gu($R%;ia7k%Swj;_xI~frJB6 z7D(VB_6Ce3GXIygt$Y~L{!Nb~&0zgZ`%r&PCE{uQZ~d>Sq`jCJ40~Bf5VSu9Gm?R0 z_Ba7n{}if4^co!Wj{(8H8z+B53~D$G7O1%#h{MBxiuh_ZB;w#e5h4u1IAL5uBt(a! zn+*hIK}>k02Ji^D0s^&j#RwYMs^H=F7A!>HLnrfqnQLR{+o>i+m8jBXo_>^+61LknxDRM(Fw= z20qAmL|y+kx*Xphrf@y@0 zdL(YUTWhe~T}^52|wINfdWY4?~? z?!R(;nP_WSzG4HbOL}d^IM?;!y4^oTZpk3Rls8-}ZhSMLW;>(h_;u+9_We|8ka1n=N!_BNYd z<;)iAQut>>nyEv5-MuZ<^hb@iiWky#R%-d#@SU@)H)Ag&RD;9j=fU)OGtY~*OY6e7 zYF&xewaY8>4&U4H<)lKWW|A!bd33voj++5vpws&bS9`WQ*RcC4L z!<10eT)X9fVx0@x zF*#fr^y0f9jcyD5gd=}i(vtu&+V^Zv_RglIUka0tw)LIJZ(;bs^gh9h3!>`CRd@W> z`8?Qqq9?X=M|D?SP|I#=MpoK%jpM3DZF1?Y*nPRLyq!;ucFwvRT7_0T={-`BT7|x) Z?T@;DvFv5uO`r&xJZ4_>@lTem{tr}I+qeJ# diff --git a/src/main/resources/assets/hbm/textures/blocks/conveyor_triple_curve_right.png b/src/main/resources/assets/hbm/textures/blocks/conveyor_triple_curve_right.png index 7850549016d6ffc3a31cd3ab9a0df3fedfc2ce95..4c32e96e580ebf8a1a364868553e0efa031dda5b 100644 GIT binary patch delta 1257 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 From 57059d6a5e84655bc9d8f825195b7cbf448c31ca Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 29 Nov 2023 15:46:08 +0100 Subject: [PATCH 419/432] exposure chamber stuff --- src/main/java/com/hbm/blocks/ModBlocks.java | 5 +- .../machine/MachineExposureChamber.java | 37 ++++++++++++++ src/main/java/com/hbm/main/ClientProxy.java | 1 + .../java/com/hbm/main/ResourceManager.java | 6 +++ .../tileentity/RenderExposureChamber.java | 48 ++++++++++++++++++ .../hbm/tileentity/TileEntityMachineBase.java | 4 +- .../java/com/hbm/tileentity/TileMappings.java | 1 + .../TileEntityMachineExposureChamber.java | 49 +++++++++++++++++++ .../tileentity/machine/TileEntityWatz.java | 12 ++--- 9 files changed, 154 insertions(+), 9 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/machine/MachineExposureChamber.java create mode 100644 src/main/java/com/hbm/render/tileentity/RenderExposureChamber.java create mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityMachineExposureChamber.java diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 60f325e78..7196b59c5 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -728,8 +728,9 @@ public class ModBlocks { public static Block machine_generator; public static Block machine_industrial_generator; - + public static Block machine_cyclotron; + public static Block machine_exposure_chamber; public static Block hadron_plating; public static Block hadron_plating_blue; @@ -1892,6 +1893,7 @@ public class ModBlocks { machine_generator = new MachineGenerator(Material.iron).setBlockName("machine_generator").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null); machine_industrial_generator = new MachineIGenerator(Material.iron).setBlockName("machine_industrial_generator").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":industrial_generator"); machine_cyclotron = new MachineCyclotron(Material.iron).setBlockName("machine_cyclotron").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":cyclotron"); + machine_exposure_chamber = new MachineExposureChamber(Material.iron).setBlockName("machine_exposure_chamber").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_aluminium"); machine_radgen = new MachineRadGen(Material.iron).setBlockName("machine_radgen").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_radgen"); hadron_plating = new BlockHadronPlating(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_plating").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_plating"); @@ -3190,6 +3192,7 @@ public class ModBlocks { GameRegistry.registerBlock(machine_industrial_generator, machine_industrial_generator.getUnlocalizedName()); GameRegistry.registerBlock(machine_radgen, machine_radgen.getUnlocalizedName()); GameRegistry.registerBlock(machine_cyclotron, machine_cyclotron.getUnlocalizedName()); + GameRegistry.registerBlock(machine_exposure_chamber, machine_exposure_chamber.getUnlocalizedName()); GameRegistry.registerBlock(machine_rtg_grey, machine_rtg_grey.getUnlocalizedName()); GameRegistry.registerBlock(machine_geo, machine_geo.getUnlocalizedName()); GameRegistry.registerBlock(machine_amgen, machine_amgen.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/machine/MachineExposureChamber.java b/src/main/java/com/hbm/blocks/machine/MachineExposureChamber.java new file mode 100644 index 000000000..dbdb57627 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineExposureChamber.java @@ -0,0 +1,37 @@ +package com.hbm.blocks.machine; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.tileentity.machine.TileEntityMachineExposureChamber; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class MachineExposureChamber extends BlockDummyable { + + public MachineExposureChamber(Material mat) { + super(mat); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityMachineExposureChamber(); + return null; + } + + @Override + public int[] getDimensions() { + return new int[] {4, 0, 2, 2, 2, 2}; + } + + @Override + public int getOffset() { + return 2; + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + return super.standardOpenBehavior(world, x, y, z, player, 0); + } +} diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 2babe6244..acaaa0654 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -218,6 +218,7 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachinePuF6Tank.class, new RenderPuF6Tank()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineIGenerator.class, new RenderIGenerator()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineCyclotron.class, new RenderCyclotron()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineExposureChamber.class, new RenderExposureChamber()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineOilWell.class, new RenderDerrick()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineGasFlare.class, new RenderGasFlare()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityChimneyBrick.class, new RenderChimneyBrick()); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 8c1040c1c..10f658ff5 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -182,6 +182,9 @@ public class ResourceManager { //Cyclotron public static final IModelCustom cyclotron = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/cyclotron.obj")); + //Exposure Chamber + public static final IModelCustom exposure_chamber = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/exposure_chamber.obj")); + //RTG public static final IModelCustom rtg = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/rtg.obj")); @@ -593,6 +596,9 @@ public class ResourceManager { public static final ResourceLocation cyclotron_coin = new ResourceLocation(RefStrings.MODID, "textures/models/machines/cyclotron_coin.png"); public static final ResourceLocation cyclotron_coin_filled = new ResourceLocation(RefStrings.MODID, "textures/models/machines/cyclotron_coin_filled.png"); + //Exposure Chamber + public static final ResourceLocation exposure_chamber_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/exposure_chamber.png"); + //RTG public static final ResourceLocation rtg_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/rtg.png"); public static final ResourceLocation rtg_cell_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/rtg_cell.png"); diff --git a/src/main/java/com/hbm/render/tileentity/RenderExposureChamber.java b/src/main/java/com/hbm/render/tileentity/RenderExposureChamber.java new file mode 100644 index 000000000..539cb72a1 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderExposureChamber.java @@ -0,0 +1,48 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.main.ResourceManager; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.tileentity.TileEntity; + +public class RenderExposureChamber extends TileEntitySpecialRenderer { + + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { + + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + + switch(tileEntity.getBlockMetadata() - BlockDummyable.offset) { + case 4: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(0, 0F, 1F, 0F); break; + case 2: GL11.glRotatef(90, 0F, 1F, 0F); break; + } + + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.exposure_chamber_tex); + ResourceManager.exposure_chamber.renderPart("Chamber"); + + GL11.glPushMatrix(); + GL11.glRotated((tileEntity.getWorldObj().getTotalWorldTime() % 360D + f) * 5, 0, 1, 0); + GL11.glTranslated(0, Math.sin((tileEntity.getWorldObj().getTotalWorldTime() % (Math.PI * 16D) + f) * 0.125) * 0.0625, 0); + ResourceManager.exposure_chamber.renderPart("Core"); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glRotated((tileEntity.getWorldObj().getTotalWorldTime() % 360D + f) * 10, 0, 1, 0); + ResourceManager.exposure_chamber.renderPart("Magnets"); + GL11.glPopMatrix(); + + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glEnable(GL11.GL_CULL_FACE); + + GL11.glPopMatrix(); + } +} diff --git a/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java b/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java index f90a124e2..bf1318f0f 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java +++ b/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java @@ -22,8 +22,8 @@ public abstract class TileEntityMachineBase extends TileEntityLoadedBase impleme private String customName; - public TileEntityMachineBase(int scount) { - slots = new ItemStack[scount]; + public TileEntityMachineBase(int slotCount) { + slots = new ItemStack[slotCount]; } /** The "chunks is modified, pls don't forget to save me" effect of markDirty, minus the block updates */ diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 4ba9495c5..0161679ba 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -90,6 +90,7 @@ public class TileMappings { put(TileEntityPartEmitter.class, "tileentity_partemitter"); put(TileEntityDummy.class, "tileentity_dummy"); put(TileEntityMachineCyclotron.class, "tileentity_cyclotron"); + put(TileEntityMachineExposureChamber.class, "tileentity_exposure_chamber"); put(TileEntityMachineRTG.class, "tileentity_machine_rtg"); put(TileEntityStructureMarker.class, "tileentity_structure_marker"); put(TileEntityMachineMiningDrill.class, "tileentity_mining_drill"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExposureChamber.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExposureChamber.java new file mode 100644 index 000000000..dbe3dc5fa --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExposureChamber.java @@ -0,0 +1,49 @@ +package com.hbm.tileentity.machine; + +import com.hbm.tileentity.TileEntityMachineBase; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.util.AxisAlignedBB; + +public class TileEntityMachineExposureChamber extends TileEntityMachineBase { + + public TileEntityMachineExposureChamber() { + super(7); + } + + @Override + public String getName() { + return "container.exposureChamber"; + } + + @Override + public void updateEntity() { + + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 2, + yCoord, + zCoord - 2, + xCoord + 3, + yCoord + 5, + zCoord + 3 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityWatz.java b/src/main/java/com/hbm/tileentity/machine/TileEntityWatz.java index 8991fb974..a1f6d8b65 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityWatz.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityWatz.java @@ -443,6 +443,12 @@ public class TileEntityWatz extends TileEntityMachineBase implements IFluidStand return bb; } + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } + private void disassemble() { int count = 20; @@ -515,12 +521,6 @@ public class TileEntityWatz extends TileEntityMachineBase implements IFluidStand } } } - - @Override - @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() { - return 65536.0D; - } @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { From 30a5dee40dae0def8c15e5262277385e924aaea2 Mon Sep 17 00:00:00 2001 From: Boblet Date: Thu, 30 Nov 2023 15:26:49 +0100 Subject: [PATCH 420/432] I'M ON A BOAT --- changelog | 10 +- .../java/com/hbm/crafting/ToolRecipes.java | 1 + .../java/com/hbm/entity/EntityMappings.java | 1 + .../com/hbm/entity/item/EntityBoatRubber.java | 485 ++++++++++++++++++ src/main/java/com/hbm/items/ModItems.java | 5 +- .../hbm/items/block/ItemCustomMachine.java | 2 + .../com/hbm/items/tool/ItemBoatRubber.java | 102 ++++ src/main/java/com/hbm/main/ClientProxy.java | 1 + .../java/com/hbm/main/ModEventHandler.java | 2 +- .../render/entity/item/RenderBoatRubber.java | 74 +++ .../machine/rbmk/TileEntityRBMKHeater.java | 5 +- src/main/resources/assets/hbm/lang/de_DE.lang | 1 + src/main/resources/assets/hbm/lang/en_US.lang | 1 + .../hbm/textures/entity/boat_rubber.png | Bin 0 -> 931 bytes .../assets/hbm/textures/items/boat_rubber.png | Bin 0 -> 286 bytes 15 files changed, 685 insertions(+), 5 deletions(-) create mode 100644 src/main/java/com/hbm/entity/item/EntityBoatRubber.java create mode 100644 src/main/java/com/hbm/items/tool/ItemBoatRubber.java create mode 100644 src/main/java/com/hbm/render/entity/item/RenderBoatRubber.java create mode 100644 src/main/resources/assets/hbm/textures/entity/boat_rubber.png create mode 100644 src/main/resources/assets/hbm/textures/items/boat_rubber.png diff --git a/changelog b/changelog index 441e8123c..a11e101f3 100644 --- a/changelog +++ b/changelog @@ -2,6 +2,10 @@ * Doors! * Your favorites from 1.12, the 7 remaining doors have finally been ported * Thanks to KoblizekXD for biting the bullet +* Rubber boat + * Made from latex or synthetic rubber + * A much less jankier alternative to the vanilla boat. Rotations are silky smooth and done via the strafe keys instead of based on the player's orientation + * Won't break from ramming into blocks ## Changed * Reduced the blast resistance of the large doors from absurdly high to still very but not quite as high @@ -9,4 +13,8 @@ * NTM's structures should no longer spawn in dimensions besides the overworld. Ores will still generate, assuming the config option is set. ## Fixed -* Fixed ancient bug where custom missiles launched using the launch table would not use the accuracy calculation and always be pin-point accurate \ No newline at end of file +* Fixed ancient bug where custom missiles launched using the launch table would not use the accuracy calculation and always be pin-point accurate +* Fixed RBMK heat exchangers being able to use heatable fluids that don't have heat exchanger efficiency defined like liquid sodium, heavy water and thorium salt +* Fixed RBMK heat exchangers not using the heat exchanger efficiency variable to determine cooling power +* Fixed the ballistic gauntlet spawning a client-side ghost bullet that doesn't move or despawn +* Fixed bug where different custom machine cores would merge in a stack when picked up, turning them into the same type \ No newline at end of file diff --git a/src/main/java/com/hbm/crafting/ToolRecipes.java b/src/main/java/com/hbm/crafting/ToolRecipes.java index c0a1e2f74..3ab160158 100644 --- a/src/main/java/com/hbm/crafting/ToolRecipes.java +++ b/src/main/java/com/hbm/crafting/ToolRecipes.java @@ -155,6 +155,7 @@ public class ToolRecipes { CraftingManager.addRecipeAuto(ItemModMinecart.createCartItem(EnumCartBase.WOOD, EnumMinecart.EMPTY), new Object[] { "P P", "WPW", 'P',KEY_SLAB, 'W', KEY_PLANKS }); CraftingManager.addRecipeAuto(ItemModMinecart.createCartItem(EnumCartBase.STEEL, EnumMinecart.EMPTY), new Object[] { "P P", "IPI", 'P', STEEL.plate(), 'I', STEEL.ingot() }); CraftingManager.addShapelessAuto(ItemModMinecart.createCartItem(EnumCartBase.PAINTED, EnumMinecart.EMPTY), new Object[] { ItemModMinecart.createCartItem(EnumCartBase.STEEL, EnumMinecart.EMPTY), KEY_RED }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.boat_rubber), new Object[] { "L L", "LLL", 'L', ANY_RUBBER.ingot() }); for(EnumCartBase base : EnumCartBase.values()) { diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index cf6c7e0d1..18d585624 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -222,6 +222,7 @@ public class EntityMappings { addEntity(EntityMist.class, "entity_mist", 250, false); addEntity(EntityAcidBomb.class, "entity_acid_bomb", 1000); addEntity(EntityFallingBlockNT.class, "entity_falling_block_nt", 1000); + addEntity(EntityBoatRubber.class, "entity_rubber_boat", 250, false); addEntity(EntityItemWaste.class, "entity_item_waste", 100); addEntity(EntityItemBuoyant.class, "entity_item_buoyant", 100); diff --git a/src/main/java/com/hbm/entity/item/EntityBoatRubber.java b/src/main/java/com/hbm/entity/item/EntityBoatRubber.java new file mode 100644 index 000000000..3be552143 --- /dev/null +++ b/src/main/java/com/hbm/entity/item/EntityBoatRubber.java @@ -0,0 +1,485 @@ +package com.hbm.entity.item; + +import java.util.List; + +import com.hbm.items.ModItems; +import com.hbm.util.TrackerUtil; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.EntityTrackerEntry; +import net.minecraft.entity.item.EntityBoat; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; +import net.minecraft.world.WorldServer; + +public class EntityBoatRubber extends Entity { + + private boolean isBoatEmpty; + private double speedMultiplier; + private int boatPosRotationIncrements; + private double boatX; + private double boatY; + private double boatZ; + private double boatYaw; + private double boatPitch; + @SideOnly(Side.CLIENT) private double velocityX; + @SideOnly(Side.CLIENT) private double velocityY; + @SideOnly(Side.CLIENT) private double velocityZ; + public float prevRenderYaw; + + public EntityBoatRubber(World world) { + super(world); + this.isBoatEmpty = true; + this.speedMultiplier = 0.07D; + this.preventEntitySpawning = true; + this.setSize(1.5F, 0.6F); + this.yOffset = this.height / 2.0F; + } + + public EntityBoatRubber(World world, double x, double y, double z) { + this(world); + this.setPosition(x, y + (double) this.yOffset, z); + this.motionX = 0.0D; + this.motionY = 0.0D; + this.motionZ = 0.0D; + this.prevPosX = x; + this.prevPosY = y; + this.prevPosZ = z; + } + + protected void entityInit() { + this.dataWatcher.addObject(17, new Integer(0)); + this.dataWatcher.addObject(18, new Integer(1)); + this.dataWatcher.addObject(19, new Float(0.0F)); + } + + @Override + protected boolean canTriggerWalking() { + return false; + } + + @Override + public AxisAlignedBB getCollisionBox(Entity entity) { + return entity.boundingBox; + } + @Override + public AxisAlignedBB getBoundingBox() { + return this.boundingBox; + } + @Override + public boolean canBePushed() { + return true; + } + @Override + public double getMountedYOffset() { + return (double) this.height * 0.0D - 0.3D; + } + + @Override + public boolean attackEntityFrom(DamageSource source, float amount) { + if(this.isEntityInvulnerable()) { + return false; + } else if(!this.worldObj.isRemote && !this.isDead) { + this.setForwardDirection(-this.getForwardDirection()); + this.setTimeSinceHit(10); + this.setDamageTaken(this.getDamageTaken() + amount * 10.0F); + this.setBeenAttacked(); + boolean hitByCreative = source.getEntity() instanceof EntityPlayer && ((EntityPlayer) source.getEntity()).capabilities.isCreativeMode; + + if(hitByCreative || this.getDamageTaken() > 40.0F) { + if(this.riddenByEntity != null) { + this.riddenByEntity.mountEntity(this); + } + + if(!hitByCreative) { + this.dropBoat(); + } + + this.setDead(); + } + + return true; + } else { + return true; + } + } + + @Override + @SideOnly(Side.CLIENT) + public void performHurtAnimation() { + this.setForwardDirection(-this.getForwardDirection()); + this.setTimeSinceHit(10); + this.setDamageTaken(this.getDamageTaken() * 11.0F); + } + + @Override + public boolean canBeCollidedWith() { + return !this.isDead; + } + + @Override + @SideOnly(Side.CLIENT) + public void setPositionAndRotation2(double x, double y, double z, float yaw, float pitch, int interp) { + if(this.isBoatEmpty) { + this.boatPosRotationIncrements = interp; + } else { + double d3 = x - this.posX; + double d4 = y - this.posY; + double d5 = z - this.posZ; + double d6 = d3 * d3 + d4 * d4 + d5 * d5; + + if(d6 <= 1.0D) { + return; + } + + this.boatPosRotationIncrements = 3; + } + + this.boatX = x; + this.boatY = y; + this.boatZ = z; + this.boatYaw = (double) yaw; + this.boatPitch = (double) pitch; + this.motionX = this.velocityX; + this.motionY = this.velocityY; + this.motionZ = this.velocityZ; + } + + @Override + @SideOnly(Side.CLIENT) + public void setVelocity(double x, double y, double z) { + this.velocityX = this.motionX = x; + this.velocityY = this.motionY = y; + this.velocityZ = this.motionZ = z; + } + + @Override + public void onUpdate() { + super.onUpdate(); + //this.prevRotationYaw = this.rotationYaw; + + if(this.getTimeSinceHit() > 0) { + this.setTimeSinceHit(this.getTimeSinceHit() - 1); + } + + if(this.getDamageTaken() > 0.0F) { + this.setDamageTaken(this.getDamageTaken() - 1.0F); + } + + this.prevPosX = this.posX; + this.prevPosY = this.posY; + this.prevPosZ = this.posZ; + + byte b0 = 5; + double d0 = 0.0D; + + for(int i = 0; i < b0; ++i) { + double d1 = this.boundingBox.minY + (this.boundingBox.maxY - this.boundingBox.minY) * (double) (i + 0) / (double) b0 - 0.125D; + double d3 = this.boundingBox.minY + (this.boundingBox.maxY - this.boundingBox.minY) * (double) (i + 1) / (double) b0 - 0.125D; + AxisAlignedBB axisalignedbb = AxisAlignedBB.getBoundingBox(this.boundingBox.minX, d1, this.boundingBox.minZ, this.boundingBox.maxX, d3, this.boundingBox.maxZ); + + if(this.worldObj.isAABBInMaterial(axisalignedbb, Material.water)) { + d0 += 1.0D / (double) b0; + } + } + + double prevSpeedSq = Math.sqrt(this.motionX * this.motionX + this.motionZ * this.motionZ); + + if(prevSpeedSq > 0.2625D) { + double cosYaw = Math.cos(this.rotationYaw * Math.PI / 180.0D); + double sinYaw = Math.sin(this.rotationYaw * Math.PI / 180.0D); + + for(double j = 0; j < 1.0D + prevSpeedSq * 60.0D; ++j) { + double offset = (double) (this.rand.nextFloat() * 2.0F - 1.0F); + double side = (double) (this.rand.nextInt(2) * 2 - 1) * 0.7D; + double magX; + double magZ; + + if(this.rand.nextBoolean()) { + magX = this.posX - cosYaw * offset * 0.8D + sinYaw * side; + magZ = this.posZ - sinYaw * offset * 0.8D - cosYaw * side; + this.worldObj.spawnParticle("splash", magX, this.posY - 0.125D, magZ, this.motionX, this.motionY, this.motionZ); + } else { + magX = this.posX + cosYaw + sinYaw * offset * 0.7D; + magZ = this.posZ + sinYaw - cosYaw * offset * 0.7D; + this.worldObj.spawnParticle("splash", magX, this.posY - 0.125D, magZ, this.motionX, this.motionY, this.motionZ); + } + } + } + + if(this.worldObj.isRemote && this.isBoatEmpty) { + if(this.boatPosRotationIncrements > 0) { + double x = this.posX + (this.boatX - this.posX) / (double) this.boatPosRotationIncrements; + double y = this.posY + (this.boatY - this.posY) / (double) this.boatPosRotationIncrements; + double z = this.posZ + (this.boatZ - this.posZ) / (double) this.boatPosRotationIncrements; + double yaw = MathHelper.wrapAngleTo180_double(this.boatYaw - (double) this.rotationYaw); + this.rotationYaw = (float) ((double) this.rotationYaw + yaw / (double) this.boatPosRotationIncrements); + this.rotationPitch = (float) ((double) this.rotationPitch + (this.boatPitch - (double) this.rotationPitch) / (double) this.boatPosRotationIncrements); + --this.boatPosRotationIncrements; + this.setPosition(x, y, z); + //this.setRotation(this.rotationYaw, this.rotationPitch); + + } else { + double x = this.posX + this.motionX; + double y = this.posY + this.motionY; + double z = this.posZ + this.motionZ; + this.setPosition(x, y, z); + + if(this.onGround) { + this.motionX *= 0.5D; + this.motionY *= 0.5D; + this.motionZ *= 0.5D; + } + + this.passiveDeccelerate(); + } + } else { + if(d0 < 1.0D) { + double d2 = d0 * 2.0D - 1.0D; + this.motionY += 0.04D * d2; + } else { + if(this.motionY < 0.0D) { + this.motionY /= 2.0D; + } + + this.motionY += 0.007000000216066837D; + } + + this.isAirBorne = false; + + if(this.riddenByEntity != null && this.riddenByEntity instanceof EntityLivingBase) { + EntityLivingBase entitylivingbase = (EntityLivingBase) this.riddenByEntity; + + if(entitylivingbase.moveForward != 0 || entitylivingbase.moveStrafing != 0) { + + Vec3 dir = Vec3.createVectorHelper(0, 0, 1); + dir.rotateAroundY((float) -((this.rotationYaw + 90) * Math.PI / 180D)); + this.motionX += dir.xCoord * this.speedMultiplier * entitylivingbase.moveForward * 0.05D; + this.motionZ += dir.zCoord * this.speedMultiplier * entitylivingbase.moveForward * 0.05D; + + float prevYaw = this.rotationYaw; + this.rotationYaw -= entitylivingbase.moveStrafing * 3; + + Vec3 newMotion = Vec3.createVectorHelper(motionX, 0, motionZ); + newMotion.rotateAroundY((float) (-(this.rotationYaw - prevYaw) * Math.PI / 180D)); + this.motionX = newMotion.xCoord; + this.motionZ = newMotion.zCoord; + + //HOLY HELL! if we don't shit ourselves over packets and send them at proper intervals, entities are suddenly smooth! who would have thought! mojang certainly didn't! + EntityTrackerEntry entry = TrackerUtil.getTrackerEntry((WorldServer) worldObj, this.getEntityId()); + entry.lastYaw = MathHelper.floor_float(this.rotationYaw * 256.0F / 360.0F) + 10; //force-trigger rotation update + } + } + + double speedSq = Math.sqrt(this.motionX * this.motionX + this.motionZ * this.motionZ); + + if(speedSq > 0.35D) { + double d4 = 0.35D / speedSq; + this.motionX *= d4; + this.motionZ *= d4; + speedSq = 0.35D; + } + + if(speedSq > prevSpeedSq && this.speedMultiplier < 0.35D) { + this.speedMultiplier += (0.35D - this.speedMultiplier) / 35.0D; + + if(this.speedMultiplier > 0.35D) { + this.speedMultiplier = 0.35D; + } + } else { + this.speedMultiplier -= (this.speedMultiplier - 0.07D) / 35.0D; + + if(this.speedMultiplier < 0.07D) { + this.speedMultiplier = 0.07D; + } + } + + for(int index = 0; index < 4; ++index) { + int x = MathHelper.floor_double(this.posX + ((double) (index % 2) - 0.5D) * 0.8D); + int z = MathHelper.floor_double(this.posZ + ((double) (index / 2) - 0.5D) * 0.8D); + + for(int yOff = 0; yOff < 2; ++yOff) { + int y = MathHelper.floor_double(this.posY) + yOff; + Block block = this.worldObj.getBlock(x, y, z); + + if(block == Blocks.snow_layer) { + this.worldObj.setBlockToAir(x, y, z); + this.isCollidedHorizontally = false; + } else if(block == Blocks.waterlily) { + this.worldObj.func_147480_a(x, y, z, true); + this.isCollidedHorizontally = false; + } + } + } + + if(this.onGround) { + this.motionX *= 0.5D; + this.motionY *= 0.5D; + this.motionZ *= 0.5D; + } + + this.moveEntity(this.motionX, this.motionY, this.motionZ); + + if(this.isCollidedHorizontally && prevSpeedSq > 0.2D) { + this.motionX *= 0.25D; + this.motionY *= 0.25D; + this.motionZ *= 0.25D; + + } else { + this.passiveDeccelerate(); + } + + this.rotationPitch = 0.0F; + + if(!(this.riddenByEntity instanceof EntityLivingBase)) { + double yaw = (double) this.rotationYaw; + double deltaX = this.prevPosX - this.posX; + double deltaZ = this.prevPosZ - this.posZ; + + if(deltaX * deltaX + deltaZ * deltaZ > 0.001D) { + yaw = (double) ((float) (Math.atan2(deltaZ, deltaX) * 180.0D / Math.PI)); + } + + double rotationSpeed = MathHelper.wrapAngleTo180_double(yaw - (double) this.rotationYaw); + + if(rotationSpeed > 20.0D) { + rotationSpeed = 20.0D; + } + + if(rotationSpeed < -20.0D) { + rotationSpeed = -20.0D; + } + + this.rotationYaw = (float) ((double) this.rotationYaw + rotationSpeed); + } + + this.setRotation(this.rotationYaw, this.rotationPitch); + + if(!this.worldObj.isRemote) { + List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox.expand(0.2D, 0.0D, 0.2D)); + + if(list != null && !list.isEmpty()) { + for(int k1 = 0; k1 < list.size(); ++k1) { + Entity entity = (Entity) list.get(k1); + + if(entity != this.riddenByEntity && entity.canBePushed() && (entity instanceof EntityBoatRubber || entity instanceof EntityBoat)) { + entity.applyEntityCollision(this); + } + } + } + + if(this.riddenByEntity != null && this.riddenByEntity.isDead) { + this.riddenByEntity = null; + } + } + } + } + + protected void passiveDeccelerate() { + this.motionX *= 0.99D; + this.motionY *= 0.95D; + this.motionZ *= 0.99D; + } + + @Override + public void updateRiderPosition() { + if(this.riddenByEntity != null) { + double offX = Math.cos((double) this.rotationYaw * Math.PI / 180.0D) * 0.4D; + double offZ = Math.sin((double) this.rotationYaw * Math.PI / 180.0D) * 0.4D; + this.riddenByEntity.setPosition(this.posX + offX, this.posY + this.getMountedYOffset() + this.riddenByEntity.getYOffset(), this.posZ + offZ); + + if(this.riddenByEntity instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer) this.riddenByEntity; + player.renderYawOffset = MathHelper.wrapAngleTo180_float(this.rotationYaw + 90F); + } + } + } + + @Override protected void writeEntityToNBT(NBTTagCompound p_70014_1_) { } + @Override protected void readEntityFromNBT(NBTTagCompound p_70037_1_) { } + + @Override + @SideOnly(Side.CLIENT) + public float getShadowSize() { + return 0.0F; + } + + @Override + public boolean interactFirst(EntityPlayer player) { + if(this.riddenByEntity != null && this.riddenByEntity instanceof EntityPlayer && this.riddenByEntity != player) { + return true; + } else { + if(!this.worldObj.isRemote) { + player.mountEntity(this); + } + + return true; + } + } + + @Override + protected void updateFallState(double fall, boolean onGround) { + int x = MathHelper.floor_double(this.posX); + int y = MathHelper.floor_double(this.posY); + int z = MathHelper.floor_double(this.posZ); + + if(onGround) { + if(this.fallDistance > 5.0F) { + this.fall(this.fallDistance); + + if(!this.worldObj.isRemote && !this.isDead) { + this.setDead(); + this.dropBoat(); + } + + this.fallDistance = 0.0F; + } + } else if(this.worldObj.getBlock(x, y - 1, z).getMaterial() != Material.water && fall < 0.0D) { + this.fallDistance = (float) ((double) this.fallDistance - fall); + } + } + + public void dropBoat() { + this.func_145778_a(ModItems.boat_rubber, 1, 0.0F); + } + + public void setDamageTaken(float amount) { + this.dataWatcher.updateObject(19, Float.valueOf(amount)); + } + + public float getDamageTaken() { + return this.dataWatcher.getWatchableObjectFloat(19); + } + + public void setTimeSinceHit(int time) { + this.dataWatcher.updateObject(17, Integer.valueOf(time)); + } + + public int getTimeSinceHit() { + return this.dataWatcher.getWatchableObjectInt(17); + } + + public void setForwardDirection(int dir) { + this.dataWatcher.updateObject(18, Integer.valueOf(dir)); + } + + public int getForwardDirection() { + return this.dataWatcher.getWatchableObjectInt(18); + } + + @SideOnly(Side.CLIENT) + public void setIsBoatEmpty(boolean empty) { + this.isBoatEmpty = empty; + } +} diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index c75fa9764..6f74b43d8 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1044,6 +1044,7 @@ public class ModItems { public static ItemEnumMulti canned_conserve; public static Item can_key; + public static Item boat_rubber; public static Item cart; public static Item train; public static Item drone; @@ -3473,6 +3474,7 @@ public class ModItems { canned_conserve = (ItemEnumMulti) new ItemConserve().setUnlocalizedName("canned_conserve").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned"); can_key = new Item().setUnlocalizedName("can_key").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":can_key"); + boat_rubber = new ItemBoatRubber().setUnlocalizedName("boat_rubber").setTextureName(RefStrings.MODID + ":boat_rubber"); cart = new ItemModMinecart().setUnlocalizedName("cart"); train = new ItemTrain().setUnlocalizedName("train"); drone = new ItemDrone().setUnlocalizedName("drone"); @@ -7726,7 +7728,8 @@ public class ModItems { GameRegistry.registerItem(injector_5htp, injector_5htp.getUnlocalizedName()); GameRegistry.registerItem(injector_knife, injector_knife.getUnlocalizedName()); - //Minecarts + //Vehicles + GameRegistry.registerItem(boat_rubber, boat_rubber.getUnlocalizedName()); GameRegistry.registerItem(cart, cart.getUnlocalizedName()); GameRegistry.registerItem(train, train.getUnlocalizedName()); GameRegistry.registerItem(drone, drone.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/block/ItemCustomMachine.java b/src/main/java/com/hbm/items/block/ItemCustomMachine.java index 61b1cf00c..30723223d 100644 --- a/src/main/java/com/hbm/items/block/ItemCustomMachine.java +++ b/src/main/java/com/hbm/items/block/ItemCustomMachine.java @@ -17,6 +17,8 @@ public class ItemCustomMachine extends ItemBlock { public ItemCustomMachine(Block block) { super(block); + this.setMaxDamage(0); + this.setHasSubtypes(true); } @SideOnly(Side.CLIENT) diff --git a/src/main/java/com/hbm/items/tool/ItemBoatRubber.java b/src/main/java/com/hbm/items/tool/ItemBoatRubber.java new file mode 100644 index 000000000..c7b8ec137 --- /dev/null +++ b/src/main/java/com/hbm/items/tool/ItemBoatRubber.java @@ -0,0 +1,102 @@ +package com.hbm.items.tool; + +import java.util.List; + +import com.hbm.entity.item.EntityBoatRubber; + +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public class ItemBoatRubber extends Item { + + public ItemBoatRubber() { + this.maxStackSize = 1; + this.setCreativeTab(CreativeTabs.tabTransport); + } + + @Override + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { + + float f = 1.0F; + float pitch = player.prevRotationPitch + (player.rotationPitch - player.prevRotationPitch) * f; + float yaw = player.prevRotationYaw + (player.rotationYaw - player.prevRotationYaw) * f; + double posX = player.prevPosX + (player.posX - player.prevPosX) * (double) f; + double posY = player.prevPosY + (player.posY - player.prevPosY) * (double) f + 1.62D - (double) player.yOffset; + double posZ = player.prevPosZ + (player.posZ - player.prevPosZ) * (double) f; + float compZ = MathHelper.cos(-yaw * 0.017453292F - (float) Math.PI); + float compX = MathHelper.sin(-yaw * 0.017453292F - (float) Math.PI); + float mult = -MathHelper.cos(-pitch * 0.017453292F); + float lookY = MathHelper.sin(-pitch * 0.017453292F); + float lookX = compX * mult; + float lookZ = compZ * mult; + double reach = 5.0D; + + Vec3 pos = Vec3.createVectorHelper(posX, posY, posZ); + Vec3 target = pos.addVector((double) lookX * reach, (double) lookY * reach, (double) lookZ * reach); + MovingObjectPosition mop = world.rayTraceBlocks(pos, target, true); + + if(mop == null) { + return stack; + + } else { + Vec3 look = player.getLook(f); + boolean flag = false; + double width = 1.0D; + List list = world.getEntitiesWithinAABBExcludingEntity(player, player.boundingBox.addCoord(look.xCoord * reach, look.yCoord * reach, look.zCoord * reach).expand(width, width, width)); + + for(int i = 0; i < list.size(); ++i) { + Entity entity = (Entity) list.get(i); + + if(entity.canBeCollidedWith()) { + float f10 = entity.getCollisionBorderSize(); + AxisAlignedBB axisalignedbb = entity.boundingBox.expand((double) f10, (double) f10, (double) f10); + + if(axisalignedbb.isVecInside(pos)) { + flag = true; + } + } + } + + if(flag) { + return stack; + + } else { + if(mop.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) { + int x = mop.blockX; + int y = mop.blockY; + int z = mop.blockZ; + + if(world.getBlock(x, y, z) == Blocks.snow_layer) { + --y; + } + + EntityBoatRubber entityboat = new EntityBoatRubber(world, (double) ((float) x + 0.5F), (double) ((float) y + 1.0F), (double) ((float) z + 0.5F)); + entityboat.rotationYaw = (float) (((MathHelper.floor_double((double) (player.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3) - 1) * 90); + + if(!world.getCollidingBoundingBoxes(entityboat, entityboat.boundingBox.expand(-0.1D, -0.1D, -0.1D)).isEmpty()) { + return stack; + } + + if(!world.isRemote) { + world.spawnEntityInWorld(entityboat); + } + + if(!player.capabilities.isCreativeMode) { + --stack.stackSize; + } + } + + return stack; + } + } + } +} diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index acaaa0654..b970e1474 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -714,6 +714,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityMinecartCrate.class, new RenderMinecart()); RenderingRegistry.registerEntityRenderingHandler(EntityMinecartNTM.class, new RenderNeoCart()); RenderingRegistry.registerEntityRenderingHandler(EntityMagnusCartus.class, new RenderMagnusCartus()); + RenderingRegistry.registerEntityRenderingHandler(EntityBoatRubber.class, new RenderBoatRubber()); //trains RenderingRegistry.registerEntityRenderingHandler(SeatDummyEntity.class, new RenderEmpty()); RenderingRegistry.registerEntityRenderingHandler(BoundingBoxDummyEntity.class, new RenderEmpty()); diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index 4a1cda31b..944ea7587 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -822,7 +822,7 @@ public class ModEventHandler { EntityPlayer player = event.entityPlayer; ItemStack chestplate = player.inventory.armorInventory[2]; - if(player.getHeldItem() == null && chestplate != null && ArmorModHandler.hasMods(chestplate)) { + if(!player.worldObj.isRemote && player.getHeldItem() == null && chestplate != null && ArmorModHandler.hasMods(chestplate)) { ItemStack[] mods = ArmorModHandler.pryMods(chestplate); ItemStack servo = mods[ArmorModHandler.servos]; diff --git a/src/main/java/com/hbm/render/entity/item/RenderBoatRubber.java b/src/main/java/com/hbm/render/entity/item/RenderBoatRubber.java new file mode 100644 index 000000000..963c936d7 --- /dev/null +++ b/src/main/java/com/hbm/render/entity/item/RenderBoatRubber.java @@ -0,0 +1,74 @@ +package com.hbm.render.entity.item; + +import org.lwjgl.opengl.GL11; + +import com.hbm.entity.item.EntityBoatRubber; +import com.hbm.lib.RefStrings; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelBoat; +import net.minecraft.client.renderer.entity.Render; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; + +public class RenderBoatRubber extends Render { + + private static final ResourceLocation boatTextures = new ResourceLocation(RefStrings.MODID + ":textures/entity/boat_rubber.png"); + protected ModelBase modelBoat; + + public RenderBoatRubber() { + this.shadowSize = 0.5F; + this.modelBoat = new ModelBoat(); + } + + public void doRender(EntityBoatRubber entity, double x, double y, double z, float yaw, float interp) { + GL11.glPushMatrix(); + GL11.glTranslatef((float) x, (float) y, (float) z); + GL11.glRotatef(180.0F - yaw, 0.0F, 1.0F, 0.0F); + float f2 = (float) entity.getTimeSinceHit() - interp; + float f3 = entity.getDamageTaken() - interp; + + if(f3 < 0.0F) { + f3 = 0.0F; + } + + if(f2 > 0.0F) { + GL11.glRotatef(MathHelper.sin(f2) * f2 * f3 / 10.0F * (float) entity.getForwardDirection(), 1.0F, 0.0F, 0.0F); + } + + EntityPlayer me = Minecraft.getMinecraft().getMinecraft().thePlayer; + + if(entity.riddenByEntity == me) { + float diff = MathHelper.wrapAngleTo180_float(entity.rotationYaw - entity.prevRenderYaw); + me.rotationYaw += diff; + me.rotationYawHead += diff; + } + + entity.prevRenderYaw = entity.rotationYaw; + + float f4 = 0.75F; + GL11.glScalef(f4, f4, f4); + GL11.glScalef(1.0F / f4, 1.0F / f4, 1.0F / f4); + this.bindEntityTexture(entity); + GL11.glScalef(-1.0F, -1.0F, 1.0F); + this.modelBoat.render(entity, 0.0F, 0.0F, -0.1F, 0.0F, 0.0F, 0.0625F); + GL11.glPopMatrix(); + } + + protected ResourceLocation getEntityTexture(EntityBoatRubber entity) { + return boatTextures; + } + + @Override + protected ResourceLocation getEntityTexture(Entity entity) { + return this.getEntityTexture((EntityBoatRubber) entity); + } + + @Override + public void doRender(Entity entity, double x, double y, double z, float f0, float f1) { + this.doRender((EntityBoatRubber) entity, x, y, z, f0, f1); + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java index e9699b87f..903042283 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java @@ -65,9 +65,10 @@ public class TileEntityRBMKHeater extends TileEntityRBMKSlottedBase implements I HeatingStep step = trait.getFirstStep(); steam.setTankType(step.typeProduced); double tempRange = this.heat - steam.getTankType().temperature; + double eff = trait.getEfficiency(HeatingType.HEATEXCHANGER); - if(tempRange > 0) { - double TU_PER_DEGREE = 2_000D; //based on 1mB of water absorbing 200 TU as well as 0.1°C from an RBMK column + if(tempRange > 0 && eff > 0) { + double TU_PER_DEGREE = 2_000D * eff; //based on 1mB of water absorbing 200 TU as well as 0.1°C from an RBMK column int inputOps = feed.getFill() / step.amountReq; int outputOps = (steam.getMaxFill() - steam.getFill()) / step.amountProduced; int tempOps = (int) Math.floor((tempRange * TU_PER_DEGREE) / step.heatReq); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index cd9d9adf1..27b8e8d17 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -1280,6 +1280,7 @@ item.blades_steel.name=Stahlsägeblatt item.blades_titanium.name=Titansägeblatt item.blowtorch.name=Lötlampe item.board_copper.name=Kupfertafel +item.boat_rubber.name=Schlauchboot item.bobmazon_hidden.name=Versteckter Katalog item.bobmazon_machines.name=Bobmazon: Blöcke und Maschinen item.bobmazon_materials.name=Bobmazon: Ressourcen diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 696ebe517..72eb5e087 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1941,6 +1941,7 @@ item.blades_steel.name=Steel Shredder Blades item.blades_titanium.name=Titanium Shredder Blades item.blowtorch.name=Blowtorch item.board_copper.name=Copper Panel +item.boat_rubber.name=Rubber Boat item.bobmazon_hidden.name=Hidden Catalog item.bobmazon_machines.name=Bobmazon: Blocks and Machines item.bobmazon_materials.name=Bobmazon: Materials diff --git a/src/main/resources/assets/hbm/textures/entity/boat_rubber.png b/src/main/resources/assets/hbm/textures/entity/boat_rubber.png new file mode 100644 index 0000000000000000000000000000000000000000..9cde414614a3530590f68975e71acd290f81678d GIT binary patch literal 931 zcmV;U16=%xP)f&U41J_zCs~iV6zg@^|NlM1&OuKF8g$KvWpM|Yw&bXG zg2n2FJ;0D9+k7-h(UeT+@cr9Y!C#CYKXT1xJ{&>Ns_TkLkbi+T5_SW51_aFJ2}_Ih9rw|*sT zZt(H(vG-E!v78rgxvp7!Y5BL{zb}Nc5%B!{yeR3?@^1lsH0Sl3T}+XM_~vqg1%T~# z3lYJ~%L|AI+wB$rlF!sQd*}Lbo4ZHnXlcG#12m262Z#u5>$}1QNqwGHWaA1gPE7f} zqBP&E0jerZ1$AA4nY-eJ5{2S+Q1UuYHC-uJnr{jhUjbdQF>`;!*Wz|O9zUPEmP2X2 zF)pS605}&GBw^JS7Aa|nO^0H7&!rbj^UWHduB&9Qt}9q;AtGQVFjJDC2EyBt)cJhw z<(K4}0t1&}6Nh8Gj-Ly?Tqx#3vNYcmEC8HNsin^620$S2K7^%nZFe>)T-Lod zbC=|sf(3x%F*VicbOsUkp%hwz2)b=6-MpC2)Va+48GN$_*lgAi5$yM2aJ^pjnVE=C zRTfoc(KHR5bJ-o8Yl@cR@rcjhn>9d;@p@Z}6b(ybOs|wGruU93IDLM~8>RWO1~?p2 zOC1hJcrWl?I@XH*Rqd;yp@IvaE&UUuO6r(C6SpP! zt}?*;dupn;w_jjpSZiU7fweZN(DJza%>{%y-?@;?^kqx)%^Kk0;Y*j5UlI3*RT?3; z$hf9HCmQ|_DoXQB;lnMl{)SGeTWjoCsqw<5B;VYY*l$#fNW1JEGp_&u002ovPDHLk FV1nnxy2$_l literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/boat_rubber.png b/src/main/resources/assets/hbm/textures/items/boat_rubber.png new file mode 100644 index 0000000000000000000000000000000000000000..6a1d428df868ed5c979524ec1951aa6c7140c0d4 GIT binary patch literal 286 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfM}d*_FlR$-#LJ zs-?lsE@cO|Wq+?;P+RaeN5UoLXkP4l{+fSHVmCfW$pt Date: Thu, 30 Nov 2023 14:18:03 -0600 Subject: [PATCH 421/432] i fucking hate github this is to fix everything that github just broke including removing the shit from that one PR that broke everything --- changelog | 12 +- .../api/hbm/entity/IRadarDetectableNT.java | 23 + src/main/java/api/hbm/entity/RadarEntry.java | 19 +- .../java/com/hbm/blocks/ITooltipProvider.java | 5 +- src/main/java/com/hbm/blocks/ModBlocks.java | 3 - .../hbm/blocks/machine/BlockFluidBarrel.java | 53 +- .../hbm/blocks/machine/BlockHadronCooler.java | 5 +- .../blocks/machine/MachineBigAssTank9000.java | 1 - .../hbm/blocks/machine/MachineCapacitor.java | 5 +- .../hbm/blocks/machine/MachineGasFlare.java | 11 +- .../com/hbm/blocks/machine/MachineOrbus.java | 1 - .../hbm/blocks/network/FluidDuctStandard.java | 2 - .../com/hbm/blocks/network/PylonLarge.java | 6 +- .../com/hbm/blocks/network/PylonRedWire.java | 5 +- .../com/hbm/blocks/network/Substation.java | 5 +- .../hbm/handler/nei/CustomMachineHandler.java | 3 +- .../com/hbm/inventory/fluid/FluidType.java | 5 +- .../inventory/fluid/trait/FT_Combustible.java | 17 +- .../inventory/fluid/trait/FT_Coolable.java | 5 +- .../inventory/fluid/trait/FT_Corrosive.java | 5 +- .../inventory/fluid/trait/FT_Flammable.java | 5 +- .../inventory/fluid/trait/FT_Heatable.java | 5 +- .../fluid/trait/FT_PWRModerator.java | 5 +- .../hbm/inventory/fluid/trait/FT_Poison.java | 3 +- .../hbm/inventory/fluid/trait/FT_Toxin.java | 2 +- .../fluid/trait/FT_VentRadiation.java | 3 +- .../fluid/trait/FluidTraitSimple.java | 19 +- .../hbm/inventory/gui/GUIMachineRadarNT.java | 218 ++- .../java/com/hbm/items/armor/ArmorDNT.java | 2 +- .../com/hbm/items/armor/ArmorFSBPowered.java | 3 +- .../com/hbm/items/armor/ItemArmorMod.java | 2 +- .../java/com/hbm/items/armor/ItemModAuto.java | 3 +- .../com/hbm/items/armor/ItemModBandaid.java | 5 +- .../com/hbm/items/armor/ItemModBathwater.java | 5 +- .../com/hbm/items/armor/ItemModCharm.java | 12 +- .../com/hbm/items/armor/ItemModCladding.java | 5 +- .../com/hbm/items/armor/ItemModDefuser.java | 5 +- .../com/hbm/items/armor/ItemModGasmask.java | 6 +- .../com/hbm/items/armor/ItemModHealth.java | 7 +- .../java/com/hbm/items/armor/ItemModInk.java | 7 +- .../com/hbm/items/armor/ItemModInsert.java | 21 +- .../java/com/hbm/items/armor/ItemModIron.java | 5 +- .../com/hbm/items/armor/ItemModKnife.java | 8 +- .../java/com/hbm/items/armor/ItemModLens.java | 5 +- .../com/hbm/items/armor/ItemModLodestone.java | 7 +- .../java/com/hbm/items/armor/ItemModMilk.java | 5 +- .../hbm/items/armor/ItemModMorningGlory.java | 5 +- .../com/hbm/items/armor/ItemModObsidian.java | 5 +- .../java/com/hbm/items/armor/ItemModPads.java | 9 +- .../com/hbm/items/armor/ItemModPolish.java | 5 +- .../com/hbm/items/armor/ItemModQuartz.java | 5 +- .../com/hbm/items/armor/ItemModRevive.java | 19 +- .../com/hbm/items/armor/ItemModSensor.java | 7 +- .../com/hbm/items/armor/ItemModSerum.java | 5 +- .../com/hbm/items/armor/ItemModServos.java | 17 +- .../com/hbm/items/armor/ItemModShackles.java | 11 +- .../com/hbm/items/armor/ItemModTesla.java | 5 +- .../com/hbm/items/armor/ItemModTwoKick.java | 7 +- .../java/com/hbm/items/armor/ItemModV1.java | 5 +- .../java/com/hbm/items/armor/ItemModWD40.java | 5 +- .../java/com/hbm/items/armor/JetpackBase.java | 3 +- .../com/hbm/items/armor/JetpackBooster.java | 7 +- .../com/hbm/items/armor/JetpackBreak.java | 6 +- .../com/hbm/items/armor/JetpackRegular.java | 3 +- .../hbm/items/armor/JetpackVectorized.java | 5 +- .../hbm/items/block/ItemBlockBlastInfo.java | 3 +- .../com/hbm/items/block/ItemBlockLore.java | 27 +- .../hbm/items/block/ItemCustomMachine.java | 3 +- .../java/com/hbm/items/bomb/ItemFleija.java | 5 +- .../hbm/items/bomb/ItemMissileShuttle.java | 10 +- src/main/java/com/hbm/items/bomb/ItemN2.java | 6 +- .../hbm/items/bomb/ItemPrototypeBlock.java | 7 +- .../java/com/hbm/items/bomb/ItemSolinium.java | 5 +- .../java/com/hbm/items/food/ItemLemon.java | 52 +- .../com/hbm/items/food/ItemTemFlakes.java | 7 +- .../com/hbm/items/machine/ItemBattery.java | 9 +- .../hbm/items/machine/ItemMachineUpgrade.java | 162 +- .../com/hbm/items/machine/ItemPWRFuel.java | 8 +- .../com/hbm/items/machine/ItemPlateFuel.java | 7 +- .../com/hbm/items/machine/ItemRBMKPellet.java | 15 +- .../com/hbm/items/machine/ItemRBMKRod.java | 18 +- .../com/hbm/items/machine/ItemWatzPellet.java | 19 +- .../com/hbm/items/special/ItemAMSCore.java | 44 +- .../com/hbm/items/special/ItemGlitch.java | 75 +- .../java/com/hbm/items/special/ItemRag.java | 5 +- .../java/com/hbm/items/special/ItemSoyuz.java | 9 +- .../com/hbm/items/tool/ItemAnchorRemote.java | 7 +- .../com/hbm/items/tool/ItemCMStructure.java | 7 +- .../com/hbm/items/tool/ItemDetonator.java | 13 +- src/main/java/com/hbm/items/tool/ItemMS.java | 3 +- .../hbm/items/tool/ItemSwordMeteorite.java | 49 +- .../java/com/hbm/items/tool/ItemWand.java | 13 +- .../java/com/hbm/items/tool/ItemWandS.java | 7 +- .../com/hbm/items/tool/WeaponSpecial.java | 45 +- src/main/java/com/hbm/main/MainRegistry.java | 1 - .../com/hbm/main/ModEventHandlerClient.java | 20 +- src/main/java/com/hbm/packet/BufPacket.java | 6 + .../java/com/hbm/packet/PacketDispatcher.java | 6 - .../machine/TileEntityMachineRadar.java | 342 ---- .../machine/TileEntityMachineRadarNT.java | 375 +++- .../TileEntityMachineReactorBreeding.java | 14 +- .../java/com/hbm/util/function/Function.java | 11 +- src/main/resources/assets/hbm/lang/en_US.lang | 174 -- src/main/resources/assets/hbm/lang/zh_CN.lang | 1593 +++++++---------- .../hbm/textures/gui/machine/gui_radar_nt.png | Bin 21661 -> 20169 bytes 105 files changed, 1841 insertions(+), 2039 deletions(-) delete mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadar.java diff --git a/changelog b/changelog index e03539fb7..441e8123c 100644 --- a/changelog +++ b/changelog @@ -1,6 +1,12 @@ +## Added +* Doors! + * Your favorites from 1.12, the 7 remaining doors have finally been ported + * Thanks to KoblizekXD for biting the bullet + ## Changed -* Light oil and cracked light oil can now be refomred into large quantities of aromatic hydrocarbons a well as some reformate gas +* Reduced the blast resistance of the large doors from absurdly high to still very but not quite as high +* Custom missiles are now launchable using the radar +* NTM's structures should no longer spawn in dimensions besides the overworld. Ores will still generate, assuming the config option is set. ## Fixed -* Fixed thorium bedrock ore using the wrong ore dict key, making it unable to be processed via centrifuge or acidizer -* Fixed custom machine NEI slots going out of bounds after the third slot \ No newline at end of file +* Fixed ancient bug where custom missiles launched using the launch table would not use the accuracy calculation and always be pin-point accurate \ No newline at end of file diff --git a/src/main/java/api/hbm/entity/IRadarDetectableNT.java b/src/main/java/api/hbm/entity/IRadarDetectableNT.java index 83c4bf503..0b327620c 100644 --- a/src/main/java/api/hbm/entity/IRadarDetectableNT.java +++ b/src/main/java/api/hbm/entity/IRadarDetectableNT.java @@ -15,8 +15,31 @@ public interface IRadarDetectableNT { public static final int TIER_AB = 10; public static final int PLAYER = 11; public static final int ARTY = 12; + /** Reserved type that shows a unique purple blip. Used for when nothing else applies. */ + public static final int SPECIAL = 13; + /** Name use for radar display, uses I18n for lookup */ public String getUnlocalizedName(); + /** The type of dot to show on the radar as well as the redstone level in tier mode */ public int getBlipLevel(); + /** Whether the object can be seen by this type of radar */ public boolean canBeSeenBy(Object radar); + /** Whether the object is currently visible, as well as whether the radar's setting allow for picking this up */ + public boolean paramsApplicable(RadarScanParams params); + /** Whether this radar entry should be counted for the redstone output */ + public boolean suppliesRedstone(RadarScanParams params); + + public static class RadarScanParams { + public boolean scanMissiles = true; + public boolean scanShells = true; + public boolean scanPlayers = true; + public boolean smartMode = true; + + public RadarScanParams(boolean m, boolean s, boolean p, boolean smart) { + this.scanMissiles = m; + this.scanShells = s; + this.scanPlayers = p; + this.smartMode = smart; + } + } } diff --git a/src/main/java/api/hbm/entity/RadarEntry.java b/src/main/java/api/hbm/entity/RadarEntry.java index 56bb41df4..5dcc56845 100644 --- a/src/main/java/api/hbm/entity/RadarEntry.java +++ b/src/main/java/api/hbm/entity/RadarEntry.java @@ -7,34 +7,41 @@ import net.minecraft.entity.player.EntityPlayer; public class RadarEntry { + /** Name use for radar display, uses I18n for lookup */ public String unlocalizedName; + /** The type of dot to show on the radar as well as the redstone level in tier mode */ public int blipLevel; public int posX; public int posY; public int posZ; public int dim; + public int entityID; + /** Whether this radar entry should be counted for the redstone output */ + public boolean redstone; public RadarEntry() { } //blank ctor for packets - public RadarEntry(String name, int level, int x, int y, int z, int dim) { + public RadarEntry(String name, int level, int x, int y, int z, int dim, int entityID, boolean redstone) { this.unlocalizedName = name; this.blipLevel = level; this.posX = x; this.posY = y; this.posZ = z; this.dim = dim; + this.entityID = entityID; + this.redstone = redstone; } - public RadarEntry(IRadarDetectableNT detectable, Entity entity) { - this(detectable.getUnlocalizedName(), detectable.getBlipLevel(), (int) Math.floor(entity.posX), (int) Math.floor(entity.posY), (int) Math.floor(entity.posZ), entity.dimension); + public RadarEntry(IRadarDetectableNT detectable, Entity entity, boolean redstone) { + this(detectable.getUnlocalizedName(), detectable.getBlipLevel(), (int) Math.floor(entity.posX), (int) Math.floor(entity.posY), (int) Math.floor(entity.posZ), entity.dimension, entity.getEntityId(), redstone); } public RadarEntry(IRadarDetectable detectable, Entity entity) { - this(detectable.getTargetType().name, detectable.getTargetType().ordinal(), (int) Math.floor(entity.posX), (int) Math.floor(entity.posY), (int) Math.floor(entity.posZ), entity.dimension); + this(detectable.getTargetType().name, detectable.getTargetType().ordinal(), (int) Math.floor(entity.posX), (int) Math.floor(entity.posY), (int) Math.floor(entity.posZ), entity.dimension, entity.getEntityId(), entity.motionY < 0); } public RadarEntry(EntityPlayer player) { - this(player.getDisplayName(), IRadarDetectableNT.PLAYER, (int) Math.floor(player.posX), (int) Math.floor(player.posY), (int) Math.floor(player.posZ), player.dimension); + this(player.getDisplayName(), IRadarDetectableNT.PLAYER, (int) Math.floor(player.posX), (int) Math.floor(player.posY), (int) Math.floor(player.posZ), player.dimension, player.getEntityId(), true); } public void fromBytes(ByteBuf buf) { @@ -44,6 +51,7 @@ public class RadarEntry { this.posY = buf.readInt(); this.posZ = buf.readInt(); this.dim = buf.readShort(); + this.entityID = buf.readInt(); } public void toBytes(ByteBuf buf) { @@ -53,5 +61,6 @@ public class RadarEntry { buf.writeInt(this.posY); buf.writeInt(this.posZ); buf.writeShort(this.dim); + buf.writeInt(this.entityID); } } diff --git a/src/main/java/com/hbm/blocks/ITooltipProvider.java b/src/main/java/com/hbm/blocks/ITooltipProvider.java index 4ca8d3678..e959db070 100644 --- a/src/main/java/com/hbm/blocks/ITooltipProvider.java +++ b/src/main/java/com/hbm/blocks/ITooltipProvider.java @@ -21,8 +21,9 @@ public interface ITooltipProvider { if(Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { for(String s : I18nUtil.resolveKeyArray(((Block)this).getUnlocalizedName() + ".desc")) list.add(EnumChatFormatting.YELLOW + s); } else { - list.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC +I18nUtil.resolveKey("tooltip.block" , - EnumChatFormatting.YELLOW +"" + EnumChatFormatting.ITALIC + "LSHIFT")); + list.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC +"Hold <" + + EnumChatFormatting.YELLOW + "" + EnumChatFormatting.ITALIC + "LSHIFT" + + EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC + "> to display more info"); } } diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index df7ebbf45..60f325e78 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -831,7 +831,6 @@ public class ModBlocks { public static Block crane_splitter; public static Block drone_waypoint; - public static Block drone_waypoint_request; public static Block drone_crate; public static Block drone_waypoint_request; public static Block drone_dock; @@ -2014,7 +2013,6 @@ public class ModBlocks { piston_inserter = new PistonInserter().setBlockName("piston_inserter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); drone_waypoint = new DroneWaypoint().setBlockName("drone_waypoint").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":drone_waypoint"); - drone_waypoint_request = new DroneWaypointRequest().setBlockName("drone_waypoint_request").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":drone_waypoint_request"); drone_crate = new DroneCrate().setBlockName("drone_crate").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); drone_waypoint_request = new DroneWaypointRequest().setBlockName("drone_waypoint_request").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":drone_waypoint_request"); drone_dock = new DroneDock().setBlockName("drone_dock").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":drone_dock"); @@ -3298,7 +3296,6 @@ public class ModBlocks { register(conveyor_lift); register(crane_splitter); register(drone_waypoint); - register(drone_waypoint_request); register(drone_crate); register(drone_waypoint_request); register(drone_dock); diff --git a/src/main/java/com/hbm/blocks/machine/BlockFluidBarrel.java b/src/main/java/com/hbm/blocks/machine/BlockFluidBarrel.java index 834195f35..41ab8cba8 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockFluidBarrel.java +++ b/src/main/java/com/hbm/blocks/machine/BlockFluidBarrel.java @@ -15,7 +15,6 @@ import com.hbm.main.MainRegistry; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.machine.storage.TileEntityBarrel; -import com.hbm.util.I18nUtil; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.Block; @@ -209,47 +208,47 @@ public class BlockFluidBarrel extends BlockContainer implements ITooltipProvider public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { if(this == ModBlocks.barrel_plastic) { - list.add(EnumChatFormatting.AQUA + I18nUtil.resolveKey("trait.tile.barrel.capacity","12,000")); - list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("trait.tile.barrel.hot")[1]); - list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("trait.tile.barrel.corrosive")[4]); - list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("trait.tile.barrel.antimatter")[1]); + list.add(EnumChatFormatting.AQUA + "Capacity: 12,000mB"); + list.add(EnumChatFormatting.YELLOW + "Cannot store hot fluids"); + list.add(EnumChatFormatting.YELLOW + "Cannot store corrosive fluids"); + list.add(EnumChatFormatting.YELLOW + "Cannot store antimatter"); } if(this == ModBlocks.barrel_corroded) { - list.add(EnumChatFormatting.AQUA + I18nUtil.resolveKey("trait.tile.barrel.capacity","6,000")); - list.add(EnumChatFormatting.GREEN + I18nUtil.resolveKeyArray("trait.tile.barrel.hot")[0]); - list.add(EnumChatFormatting.GREEN + I18nUtil.resolveKeyArray("trait.tile.barrel.corrosive")[0]); - list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("trait.tile.barrel.antimatter")[1]); - list.add(EnumChatFormatting.RED + I18nUtil.resolveKey("trait.tile.barrel.leak")); + list.add(EnumChatFormatting.AQUA + "Capacity: 6,000mB"); + list.add(EnumChatFormatting.GREEN + "Can store hot fluids"); + list.add(EnumChatFormatting.GREEN + "Can store highly corrosive fluids"); + list.add(EnumChatFormatting.YELLOW + "Cannot store antimatter"); + list.add(EnumChatFormatting.RED + "Leaky"); } if(this == ModBlocks.barrel_iron) { - list.add(EnumChatFormatting.AQUA + I18nUtil.resolveKey("trait.tile.barrel.capacity","8,000")); - list.add(EnumChatFormatting.GREEN + I18nUtil.resolveKeyArray("trait.tile.barrel.hot")[0]); - list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("trait.tile.barrel.corrosive")[3]); - list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("trait.tile.barrel.antimatter")[1]); + list.add(EnumChatFormatting.AQUA + "Capacity: 8,000mB"); + list.add(EnumChatFormatting.GREEN + "Can store hot fluids"); + list.add(EnumChatFormatting.YELLOW + "Cannot store corrosive fluids properly"); + list.add(EnumChatFormatting.YELLOW + "Cannot store antimatter"); } if(this == ModBlocks.barrel_steel) { - list.add(EnumChatFormatting.AQUA + I18nUtil.resolveKey("trait.tile.barrel.capacity","16,000")); - list.add(EnumChatFormatting.GREEN + I18nUtil.resolveKeyArray("trait.tile.barrel.hot")[0]); - list.add(EnumChatFormatting.GREEN + I18nUtil.resolveKeyArray("trait.tile.barrel.corrosive")[1]); - list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("trait.tile.barrel.corrosive")[2]); - list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("trait.tile.barrel.antimatter")[1]); + list.add(EnumChatFormatting.AQUA + "Capacity: 16,000mB"); + list.add(EnumChatFormatting.GREEN + "Can store hot fluids"); + list.add(EnumChatFormatting.GREEN + "Can store corrosive fluids"); + list.add(EnumChatFormatting.YELLOW + "Cannot store highly corrosive fluids properly"); + list.add(EnumChatFormatting.YELLOW + "Cannot store antimatter"); } if(this == ModBlocks.barrel_antimatter) { - list.add(EnumChatFormatting.AQUA + I18nUtil.resolveKey("trait.tile.barrel.capacity","16,000")); - list.add(EnumChatFormatting.GREEN + I18nUtil.resolveKeyArray("trait.tile.barrel.hot")[0]); - list.add(EnumChatFormatting.GREEN + I18nUtil.resolveKeyArray("trait.tile.barrel.corrosive")[0]); - list.add(EnumChatFormatting.GREEN + I18nUtil.resolveKeyArray("trait.tile.barrel.antimatter")[0]); + list.add(EnumChatFormatting.AQUA + "Capacity: 16,000mB"); + list.add(EnumChatFormatting.GREEN + "Can store hot fluids"); + list.add(EnumChatFormatting.GREEN + "Can store highly corrosive fluids"); + list.add(EnumChatFormatting.GREEN + "Can store antimatter"); } if(this == ModBlocks.barrel_tcalloy) { - list.add(EnumChatFormatting.AQUA + I18nUtil.resolveKey("trait.tile.barrel.capacity","24,000")); - list.add(EnumChatFormatting.GREEN + I18nUtil.resolveKeyArray("trait.tile.barrel.hot")[0]); - list.add(EnumChatFormatting.GREEN + I18nUtil.resolveKeyArray("trait.tile.barrel.corrosive")[0]); - list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("trait.tile.barrel.antimatter")[1]); + list.add(EnumChatFormatting.AQUA + "Capacity: 24,000mB"); + list.add(EnumChatFormatting.GREEN + "Can store hot fluids"); + list.add(EnumChatFormatting.GREEN + "Can store highly corrosive fluids"); + list.add(EnumChatFormatting.YELLOW + "Cannot store antimatter"); } } } diff --git a/src/main/java/com/hbm/blocks/machine/BlockHadronCooler.java b/src/main/java/com/hbm/blocks/machine/BlockHadronCooler.java index c2c220ff8..a242772e2 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockHadronCooler.java +++ b/src/main/java/com/hbm/blocks/machine/BlockHadronCooler.java @@ -59,8 +59,9 @@ public class BlockHadronCooler extends BlockMulti implements ITooltipProvider { if(Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { for(String s : I18nUtil.resolveKeyArray(this.getUnlocalizedName(stack) + ".desc")) list.add(EnumChatFormatting.YELLOW + s); } else { - list.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC +I18nUtil.resolveKey("tooltip.block" , - EnumChatFormatting.YELLOW +"" + EnumChatFormatting.ITALIC + "LSHIFT")); + list.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC +"Hold <" + + EnumChatFormatting.YELLOW + "" + EnumChatFormatting.ITALIC + "LSHIFT" + + EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC + "> to display more info"); } } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java b/src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java index e0a494ede..300f9b019 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java +++ b/src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java @@ -14,7 +14,6 @@ import com.hbm.main.MainRegistry; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.storage.TileEntityMachineBAT9000; -import com.hbm.tileentity.machine.storage.TileEntityMachineOrbus; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.material.Material; diff --git a/src/main/java/com/hbm/blocks/machine/MachineCapacitor.java b/src/main/java/com/hbm/blocks/machine/MachineCapacitor.java index e55f4844b..be083f6e3 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineCapacitor.java +++ b/src/main/java/com/hbm/blocks/machine/MachineCapacitor.java @@ -113,8 +113,9 @@ public class MachineCapacitor extends BlockContainer implements ILookOverlay, IP if(Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { for(String s : I18nUtil.resolveKeyArray("tile.capacitor.desc")) list.add(EnumChatFormatting.YELLOW + s); } else { - list.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC +I18nUtil.resolveKey("tooltip.block" , - EnumChatFormatting.YELLOW +"" + EnumChatFormatting.ITALIC + "LSHIFT")); + list.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC +"Hold <" + + EnumChatFormatting.YELLOW + "" + EnumChatFormatting.ITALIC + "LSHIFT" + + EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC + "> to display more info"); } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineGasFlare.java b/src/main/java/com/hbm/blocks/machine/MachineGasFlare.java index db5bd32f5..4567cf760 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineGasFlare.java +++ b/src/main/java/com/hbm/blocks/machine/MachineGasFlare.java @@ -7,7 +7,6 @@ import com.hbm.blocks.ITooltipProvider; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.oil.TileEntityMachineGasFlare; -import com.hbm.util.I18nUtil; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -62,7 +61,13 @@ public class MachineGasFlare extends BlockDummyable implements ITooltipProvider @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { - for(String s : I18nUtil.resolveKeyArray("tile.machine_flare.desc")) - list.add(EnumChatFormatting.GOLD + s); + + list.add(EnumChatFormatting.GOLD + "Can burn fluids and vent gasses"); + list.add(EnumChatFormatting.GOLD + "Burns up to " + EnumChatFormatting.RED + "10mB/t"); + list.add(EnumChatFormatting.GOLD + "Vents up to " + EnumChatFormatting.RED + "50mB/t"); + list.add(""); + list.add(EnumChatFormatting.YELLOW + "Fuel efficiency:"); + list.add(EnumChatFormatting.YELLOW + "-Flammable Gasses: " + EnumChatFormatting.RED + "50%"); + list.add(EnumChatFormatting.YELLOW + "-Flammable Liquids: " + EnumChatFormatting.RED + "10%"); } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineOrbus.java b/src/main/java/com/hbm/blocks/machine/MachineOrbus.java index 902c24672..445956358 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineOrbus.java +++ b/src/main/java/com/hbm/blocks/machine/MachineOrbus.java @@ -12,7 +12,6 @@ import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.main.MainRegistry; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.TileEntityProxyCombo; -import com.hbm.tileentity.machine.storage.TileEntityMachineFluidTank; import com.hbm.tileentity.machine.storage.TileEntityMachineOrbus; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; diff --git a/src/main/java/com/hbm/blocks/network/FluidDuctStandard.java b/src/main/java/com/hbm/blocks/network/FluidDuctStandard.java index 7a6ab966b..e58d7ab02 100644 --- a/src/main/java/com/hbm/blocks/network/FluidDuctStandard.java +++ b/src/main/java/com/hbm/blocks/network/FluidDuctStandard.java @@ -5,7 +5,6 @@ import java.util.List; import com.hbm.blocks.IBlockMulti; import com.hbm.blocks.ILookOverlay; -import com.hbm.blocks.ModBlocks; import com.hbm.blocks.test.TestPipe; import com.hbm.inventory.fluid.FluidType; import com.hbm.items.ModItems; @@ -16,7 +15,6 @@ import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; diff --git a/src/main/java/com/hbm/blocks/network/PylonLarge.java b/src/main/java/com/hbm/blocks/network/PylonLarge.java index 65605d4d3..395b27dd1 100644 --- a/src/main/java/com/hbm/blocks/network/PylonLarge.java +++ b/src/main/java/com/hbm/blocks/network/PylonLarge.java @@ -7,7 +7,6 @@ import com.hbm.blocks.ITooltipProvider; import com.hbm.tileentity.network.TileEntityPylonBase; import com.hbm.tileentity.network.TileEntityPylonLarge; -import com.hbm.util.I18nUtil; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; @@ -34,8 +33,9 @@ public class PylonLarge extends BlockDummyable implements ITooltipProvider { @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { - for(String s : I18nUtil.resolveKeyArray("tile.red_pylon_large.desc")) - list.add(EnumChatFormatting.GOLD + s); + list.add(EnumChatFormatting.GOLD + "Connection Type: " + EnumChatFormatting.YELLOW + "Quadruple"); + list.add(EnumChatFormatting.GOLD + "Connection Range: " + EnumChatFormatting.YELLOW + "100m"); + list.add(EnumChatFormatting.GOLD + "This pylon requires a substation!"); } @Override diff --git a/src/main/java/com/hbm/blocks/network/PylonRedWire.java b/src/main/java/com/hbm/blocks/network/PylonRedWire.java index 9b9d8750b..79a44f541 100644 --- a/src/main/java/com/hbm/blocks/network/PylonRedWire.java +++ b/src/main/java/com/hbm/blocks/network/PylonRedWire.java @@ -4,7 +4,6 @@ import java.util.List; import com.hbm.tileentity.network.TileEntityPylon; -import com.hbm.util.I18nUtil; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -25,7 +24,7 @@ public class PylonRedWire extends PylonBase { @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { - for(String s : I18nUtil.resolveKeyArray("tile.red_pylon.desc")) - list.add(EnumChatFormatting.GOLD + s); + list.add(EnumChatFormatting.GOLD + "Connection Type: " + EnumChatFormatting.YELLOW + "Single"); + list.add(EnumChatFormatting.GOLD + "Connection Range: " + EnumChatFormatting.YELLOW + "25m"); } } diff --git a/src/main/java/com/hbm/blocks/network/Substation.java b/src/main/java/com/hbm/blocks/network/Substation.java index 4f61cf58d..7499992fd 100644 --- a/src/main/java/com/hbm/blocks/network/Substation.java +++ b/src/main/java/com/hbm/blocks/network/Substation.java @@ -8,7 +8,6 @@ import com.hbm.tileentity.TileEntityProxyConductor; import com.hbm.tileentity.network.TileEntityPylonBase; import com.hbm.tileentity.network.TileEntitySubstation; -import com.hbm.util.I18nUtil; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; @@ -38,8 +37,8 @@ public class Substation extends BlockDummyable implements ITooltipProvider { @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { - for(String s : I18nUtil.resolveKeyArray("tile.substation.desc")) - list.add(EnumChatFormatting.GOLD + s); + list.add(EnumChatFormatting.GOLD + "Connection Type: " + EnumChatFormatting.YELLOW + "Quadruple"); + list.add(EnumChatFormatting.GOLD + "Connection Range: " + EnumChatFormatting.YELLOW + "20m"); } @Override diff --git a/src/main/java/com/hbm/handler/nei/CustomMachineHandler.java b/src/main/java/com/hbm/handler/nei/CustomMachineHandler.java index 659289307..844af6e60 100644 --- a/src/main/java/com/hbm/handler/nei/CustomMachineHandler.java +++ b/src/main/java/com/hbm/handler/nei/CustomMachineHandler.java @@ -14,7 +14,6 @@ import com.hbm.inventory.recipes.CustomMachineRecipes; import com.hbm.inventory.recipes.CustomMachineRecipes.CustomMachineRecipe; import com.hbm.items.machine.ItemFluidIcon; import com.hbm.lib.RefStrings; -import com.hbm.util.I18nUtil; import com.hbm.util.ItemStackUtil; import com.hbm.util.Tuple.Pair; @@ -105,7 +104,7 @@ public class CustomMachineHandler extends TemplateRecipeHandler { @Override public String getRecipeName() { - return (I18nUtil.resolveKey("tile.cm_" + conf.unlocalizedName + ".name").startsWith("tile.cm_")) ? conf.localizedName : I18nUtil.resolveKey("tile.cm_" + conf.unlocalizedName + ".name"); + return conf.localizedName; } @Override diff --git a/src/main/java/com/hbm/inventory/fluid/FluidType.java b/src/main/java/com/hbm/inventory/fluid/FluidType.java index e6015725b..d6fa4d759 100644 --- a/src/main/java/com/hbm/inventory/fluid/FluidType.java +++ b/src/main/java/com/hbm/inventory/fluid/FluidType.java @@ -218,8 +218,9 @@ public class FluidType { info.addAll(hidden); } else { - info.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC +I18nUtil.resolveKey("tooltip.block" , - EnumChatFormatting.YELLOW +"" + EnumChatFormatting.ITALIC + "LSHIFT")); + info.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC +"Hold <" + + EnumChatFormatting.YELLOW + "" + EnumChatFormatting.ITALIC + "LSHIFT" + + EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC + "> to display more info"); } } } diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Combustible.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Combustible.java index 9d566e0fb..a297d40ca 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Combustible.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Combustible.java @@ -7,7 +7,6 @@ import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; import net.minecraft.util.EnumChatFormatting; public class FT_Combustible extends FluidTrait { @@ -26,11 +25,11 @@ public class FT_Combustible extends FluidTrait { public void addInfo(List info) { super.addInfo(info); - info.add(EnumChatFormatting.GOLD + I18nUtil.resolveKeyArray("hbmfluid.Trait.Combustible","","")[0]); + info.add(EnumChatFormatting.GOLD + "[Combustible]"); if(combustionEnergy > 0) { - info.add(EnumChatFormatting.GOLD + I18nUtil.resolveKeyArray("hbmfluid.Trait.Combustible",BobMathUtil.getShortNumber(combustionEnergy),"")[1]); - info.add(EnumChatFormatting.GOLD + I18nUtil.resolveKeyArray("hbmfluid.Trait.Combustible","",this.fuelGrade.getGrade())[2]); + info.add(EnumChatFormatting.GOLD + "Provides " + EnumChatFormatting.RED + "" + BobMathUtil.getShortNumber(combustionEnergy) + "HE " + EnumChatFormatting.GOLD + "per bucket"); + info.add(EnumChatFormatting.GOLD + "Fuel grade: " + EnumChatFormatting.RED + this.fuelGrade.getGrade()); } } @@ -43,11 +42,11 @@ public class FT_Combustible extends FluidTrait { } public static enum FuelGrade { - LOW(I18nUtil.resolveKeyArray("hbmfluid.Trait.Combustible.FuelGrade")[0]), //heating and industrial oil < star engine, iGen - MEDIUM(I18nUtil.resolveKeyArray("hbmfluid.Trait.Combustible.FuelGrade")[1]), //petroil < diesel generator - HIGH(I18nUtil.resolveKeyArray("hbmfluid.Trait.Combustible.FuelGrade")[2]), //diesel, gasoline < HP engine - AERO(I18nUtil.resolveKeyArray("hbmfluid.Trait.Combustible.FuelGrade")[3]), //kerosene and other light aviation fuels < turbofan - GAS(I18nUtil.resolveKeyArray("hbmfluid.Trait.Combustible.FuelGrade")[4]); //fuel gasses like NG, PG and syngas < gas turbine + LOW("Low"), //heating and industrial oil < star engine, iGen + MEDIUM("Medium"), //petroil < diesel generator + HIGH("High"), //diesel, gasoline < HP engine + AERO("Aviation"), //kerosene and other light aviation fuels < turbofan + GAS("Gaseous"); //fuel gasses like NG, PG and syngas < gas turbine private String grade; diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Coolable.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Coolable.java index a0aae7d54..1bb6d3574 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Coolable.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Coolable.java @@ -10,7 +10,6 @@ import com.google.gson.stream.JsonWriter; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; -import com.hbm.util.I18nUtil; import net.minecraft.util.EnumChatFormatting; public class FT_Coolable extends FluidTrait { @@ -43,14 +42,14 @@ public class FT_Coolable extends FluidTrait { @Override public void addInfoHidden(List info) { - info.add(EnumChatFormatting.AQUA + I18nUtil.resolveKeyArray("hbmfluid.Trait.Coolable",heatEnergy,"")[0]); + info.add(EnumChatFormatting.AQUA + "Thermal capacity: " + heatEnergy + " TU"); for(CoolingType type : CoolingType.values()) { double eff = getEfficiency(type); if(eff > 0) { info.add(EnumChatFormatting.AQUA + "[" + type.name + "]"); - info.add(EnumChatFormatting.AQUA + I18nUtil.resolveKeyArray("hbmfluid.Trait.Coolable","",((int) (eff * 100D)))[1]); + info.add(EnumChatFormatting.AQUA + "Efficiency: " + ((int) (eff * 100D)) + "%"); } } } diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Corrosive.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Corrosive.java index 8387b0e23..2a459e25c 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Corrosive.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Corrosive.java @@ -6,7 +6,6 @@ import java.util.List; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; -import com.hbm.util.I18nUtil; import net.minecraft.util.EnumChatFormatting; public class FT_Corrosive extends FluidTrait { @@ -32,9 +31,9 @@ public class FT_Corrosive extends FluidTrait { public void addInfo(List info) { if(isHighlyCorrosive()) - info.add(EnumChatFormatting.GOLD + I18nUtil.resolveKeyArray("hbmfluid.Trait.Corrosive")[0]); + info.add(EnumChatFormatting.GOLD + "[Strongly Corrosive]"); else - info.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("hbmfluid.Trait.Corrosive")[1]); + info.add(EnumChatFormatting.YELLOW + "[Corrosive]"); } @Override diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Flammable.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Flammable.java index e2f35ff3c..82e309ef9 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Flammable.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Flammable.java @@ -7,7 +7,6 @@ import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; import net.minecraft.util.EnumChatFormatting; public class FT_Flammable extends FluidTrait { @@ -29,10 +28,10 @@ public class FT_Flammable extends FluidTrait { public void addInfo(List info) { super.addInfo(info); - info.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("hbmfluid.Trait.Flammable","")[0]); + info.add(EnumChatFormatting.YELLOW + "[Flammable]"); if(energy > 0) - info.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("hbmfluid.Trait.Flammable",BobMathUtil.getShortNumber(energy))[1]); + info.add(EnumChatFormatting.YELLOW + "Provides " + EnumChatFormatting.RED + "" + BobMathUtil.getShortNumber(energy) + "TU " + EnumChatFormatting.YELLOW + "per bucket"); } @Override diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Heatable.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Heatable.java index 7ce3ee4fc..c828858b8 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Heatable.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Heatable.java @@ -6,7 +6,6 @@ import com.google.gson.stream.JsonWriter; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; -import com.hbm.util.I18nUtil; import net.minecraft.util.EnumChatFormatting; import java.io.IOException; @@ -43,14 +42,14 @@ public class FT_Heatable extends FluidTrait { @Override public void addInfoHidden(List info) { - info.add(EnumChatFormatting.AQUA + I18nUtil.resolveKeyArray("hbmfluid.Trait.Coolable",this.getFirstStep().heatReq,"")[0]); + info.add(EnumChatFormatting.AQUA + "Thermal capacity: " + this.getFirstStep().heatReq + " TU"); for(HeatingType type : HeatingType.values()) { double eff = getEfficiency(type); if(eff > 0) { info.add(EnumChatFormatting.AQUA + "[" + type.name + "]"); - info.add(EnumChatFormatting.AQUA + I18nUtil.resolveKeyArray("hbmfluid.Trait.Coolable","",((int) (eff * 100D)))[1]); + info.add(EnumChatFormatting.AQUA + "Efficiency: " + ((int) (eff * 100D)) + "%"); } } } diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_PWRModerator.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_PWRModerator.java index 3e5aad50c..65386405a 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_PWRModerator.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_PWRModerator.java @@ -6,7 +6,6 @@ import java.util.List; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; -import com.hbm.util.I18nUtil; import net.minecraft.util.EnumChatFormatting; public class FT_PWRModerator extends FluidTrait { @@ -23,13 +22,13 @@ public class FT_PWRModerator extends FluidTrait { @Override public void addInfo(List info) { - info.add(EnumChatFormatting.BLUE + I18nUtil.resolveKeyArray("hbmfluid.Trait.PWRModerator","","")[0]); + info.add(EnumChatFormatting.BLUE + "[PWR Flux Multiplier]"); } @Override public void addInfoHidden(List info) { int mult = (int) (multiplier * 100 - 100); - info.add(EnumChatFormatting.BLUE + I18nUtil.resolveKeyArray("hbmfluid.Trait.PWRModerator",(mult >= 0 ? "+" : ""),mult)[1]); + info.add(EnumChatFormatting.BLUE + "Core flux " + (mult >= 0 ? "+" : "") + mult + "%"); } @Override diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Poison.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Poison.java index 39d31bc25..335c182cb 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Poison.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Poison.java @@ -6,7 +6,6 @@ import java.util.List; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; -import com.hbm.util.I18nUtil; import net.minecraft.util.EnumChatFormatting; @Deprecated //use FT_Toxin instead @@ -32,7 +31,7 @@ public class FT_Poison extends FluidTrait { @Override public void addInfoHidden(List info) { - info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey("hbmfluid.Trait.Poison")); + info.add(EnumChatFormatting.GREEN + "[Toxic Fumes]"); } @Override public void serializeJSON(JsonWriter writer) throws IOException { diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_Toxin.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_Toxin.java index b7234584c..fe814219e 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_Toxin.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_Toxin.java @@ -31,7 +31,7 @@ public class FT_Toxin extends FluidTrait { @Override public void addInfoHidden(List info) { - info.add(EnumChatFormatting.LIGHT_PURPLE + I18nUtil.resolveKey("hbmfluid.Trait.Toxin")); + info.add(EnumChatFormatting.LIGHT_PURPLE + "[Toxin]"); for(ToxinEntry entry : entries) { entry.addInfo(info); diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FT_VentRadiation.java b/src/main/java/com/hbm/inventory/fluid/trait/FT_VentRadiation.java index ef090d9d9..516ef0e81 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FT_VentRadiation.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FT_VentRadiation.java @@ -8,7 +8,6 @@ import com.google.gson.stream.JsonWriter; import com.hbm.handler.radiation.ChunkRadiationManager; import com.hbm.inventory.fluid.tank.FluidTank; -import com.hbm.util.I18nUtil; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; @@ -33,7 +32,7 @@ public class FT_VentRadiation extends FluidTrait { @Override public void addInfo(List info) { - info.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("hbmfluid.Trait.VentRadiation")); + info.add(EnumChatFormatting.YELLOW + "[Radioactive]"); } @Override diff --git a/src/main/java/com/hbm/inventory/fluid/trait/FluidTraitSimple.java b/src/main/java/com/hbm/inventory/fluid/trait/FluidTraitSimple.java index 19e2c5369..d282cea42 100644 --- a/src/main/java/com/hbm/inventory/fluid/trait/FluidTraitSimple.java +++ b/src/main/java/com/hbm/inventory/fluid/trait/FluidTraitSimple.java @@ -2,64 +2,63 @@ package com.hbm.inventory.fluid.trait; import java.util.List; -import com.hbm.util.I18nUtil; import net.minecraft.util.EnumChatFormatting; public class FluidTraitSimple { public static class FT_Gaseous extends FluidTrait { @Override public void addInfoHidden(List info) { - info.add(EnumChatFormatting.BLUE + I18nUtil.resolveKey("hbmfluid.TraitSimple.Gaseous")); + info.add(EnumChatFormatting.BLUE + "[Gaseous]"); } } /** gaseous at room temperature, for cryogenic hydrogen for example */ public static class FT_Gaseous_ART extends FluidTrait { @Override public void addInfoHidden(List info) { - info.add(EnumChatFormatting.BLUE + I18nUtil.resolveKey("hbmfluid.TraitSimple.Gaseous_ART")); + info.add(EnumChatFormatting.BLUE + "[Gaseous at Room Temperature]"); } } public static class FT_Liquid extends FluidTrait { @Override public void addInfoHidden(List info) { - info.add(EnumChatFormatting.BLUE + I18nUtil.resolveKey("hbmfluid.TraitSimple.Liquid")); + info.add(EnumChatFormatting.BLUE + "[Liquid]"); } } /** to viscous to be sprayed/turned into a mist */ public static class FT_Viscous extends FluidTrait { @Override public void addInfoHidden(List info) { - info.add(EnumChatFormatting.BLUE + I18nUtil.resolveKey("hbmfluid.TraitSimple.Viscous")); + info.add(EnumChatFormatting.BLUE + "[Viscous]"); } } public static class FT_Plasma extends FluidTrait { @Override public void addInfoHidden(List info) { - info.add(EnumChatFormatting.LIGHT_PURPLE + I18nUtil.resolveKey("hbmfluid.TraitSimple.Plasma")); + info.add(EnumChatFormatting.LIGHT_PURPLE + "[Plasma]"); } } public static class FT_Amat extends FluidTrait { @Override public void addInfo(List info) { - info.add(EnumChatFormatting.DARK_RED + I18nUtil.resolveKey("hbmfluid.TraitSimple.Amat")); + info.add(EnumChatFormatting.DARK_RED + "[Antimatter]"); } } public static class FT_LeadContainer extends FluidTrait { @Override public void addInfo(List info) { - info.add(EnumChatFormatting.DARK_RED + I18nUtil.resolveKey("hbmfluid.TraitSimple.LeadContainer")); + info.add(EnumChatFormatting.DARK_RED + "[Requires hazardous material tank to hold]"); } } public static class FT_Delicious extends FluidTrait { @Override public void addInfoHidden(List info) { - info.add(EnumChatFormatting.DARK_GREEN + I18nUtil.resolveKey("hbmfluid.TraitSimple.Delicious")); + info.add(EnumChatFormatting.DARK_GREEN + "[Delicious]"); } } public static class FT_Leaded extends FluidTrait { @Override public void addInfoHidden(List info) { - info.add(EnumChatFormatting.BLUE + I18nUtil.resolveKey("hbmfluid.TraitSimple.Leaded")); + info.add(EnumChatFormatting.BLUE + "[Leaded Fuel]"); } } diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNT.java b/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNT.java index 3c91249bf..accefedf1 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNT.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineRadarNT.java @@ -5,22 +5,33 @@ import java.util.Arrays; import org.lwjgl.opengl.GL11; import com.hbm.lib.RefStrings; +import com.hbm.packet.NBTControlPacket; +import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.machine.TileEntityMachineRadarNT; +import com.hbm.util.BobMathUtil; import com.hbm.util.I18nUtil; +import api.hbm.entity.RadarEntry; import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.ResourceLocation; +import net.minecraft.util.Vec3; public class GUIMachineRadarNT extends GuiScreen { - protected static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/machine/gui_radar_nt.png"); + public static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/machine/gui_radar_nt.png"); protected TileEntityMachineRadarNT radar; protected int xSize = 216; protected int ySize = 234; protected int guiLeft; protected int guiTop; + + public int lastMouseX; + public int lastMouseY; public GUIMachineRadarNT(TileEntityMachineRadarNT tile) { this.radar = tile; @@ -33,6 +44,29 @@ public class GUIMachineRadarNT extends GuiScreen { this.guiTop = (this.height - this.ySize) / 2; } + @Override + protected void mouseClicked(int x, int y, int i) { + super.mouseClicked(x, y, i); + + String cmd = null; + + if(checkClick(x, y, -10, 88, 8, 8)) cmd = "missiles"; + if(checkClick(x, y, -10, 98, 8, 8)) cmd = "shells"; + if(checkClick(x, y, -10, 108, 8, 8)) cmd = "players"; + if(checkClick(x, y, -10, 118, 8, 8)) cmd = "smart"; + if(checkClick(x, y, -10, 128, 8, 8)) cmd = "red"; + if(checkClick(x, y, -10, 138, 8, 8)) cmd = "map"; + if(checkClick(x, y, -10, 158, 8, 8)) cmd = "gui1"; + if(checkClick(x, y, -10, 178, 8, 8)) cmd = "clear"; + + if(cmd != null) { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + data.setBoolean(cmd, true); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, radar.xCoord, radar.yCoord, radar.zCoord)); + } + } + @Override public void drawScreen(int mouseX, int mouseY, float f) { this.drawDefaultBackground(); @@ -40,24 +74,192 @@ public class GUIMachineRadarNT extends GuiScreen { GL11.glDisable(GL11.GL_LIGHTING); this.drawGuiContainerForegroundLayer(mouseX, mouseY); GL11.glEnable(GL11.GL_LIGHTING); + + this.lastMouseX = mouseX; + this.lastMouseY = mouseY; } - private void drawGuiContainerForegroundLayer(int x, int y) { - if(checkClick(x, y, -10, 88, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.detectMissiles")), x, y); - if(checkClick(x, y, -10, 98, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.detectShells")), x, y); - if(checkClick(x, y, -10, 108, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.detectPlayers")), x, y); - if(checkClick(x, y, -10, 118, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.smartMode")), x, y); - if(checkClick(x, y, -10, 128, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.redMode")), x, y); - if(checkClick(x, y, -10, 138, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.showMap")), x, y); + private void drawGuiContainerForegroundLayer(int mouseX, int mouseY) { + + if(checkClick(mouseX, mouseY, 8, 221, 200, 7)) this.func_146283_a(Arrays.asList(BobMathUtil.getShortNumber(radar.power) + "/" + BobMathUtil.getShortNumber(radar.maxPower) + "HE"), mouseX, mouseY); + + if(checkClick(mouseX, mouseY, -10, 88, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.detectMissiles")), mouseX, mouseY); + if(checkClick(mouseX, mouseY, -10, 98, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.detectShells")), mouseX, mouseY); + if(checkClick(mouseX, mouseY, -10, 108, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.detectPlayers")), mouseX, mouseY); + if(checkClick(mouseX, mouseY, -10, 118, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.smartMode")), mouseX, mouseY); + if(checkClick(mouseX, mouseY, -10, 128, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.redMode")), mouseX, mouseY); + if(checkClick(mouseX, mouseY, -10, 138, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.showMap")), mouseX, mouseY); + if(checkClick(mouseX, mouseY, -10, 158, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.toggleGui")), mouseX, mouseY); + if(checkClick(mouseX, mouseY, -10, 178, 8, 8)) this.func_146283_a(Arrays.asList(I18nUtil.resolveKeyArray("radar.clearMap")), mouseX, mouseY); + + if(!radar.entries.isEmpty()) { + for(RadarEntry m : radar.entries) { + int x = guiLeft + (int)((m.posX - radar.xCoord) / ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) * (200D - 8D)) + 108; + int z = guiTop + (int)((m.posZ - radar.zCoord) / ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) * (200D - 8D)) + 117; + + if(mouseX + 5 > x && mouseX - 4 <= x && mouseY + 5 > z && mouseY - 4 <= z) { + + String[] text = new String[] { I18nUtil.resolveKey(m.unlocalizedName), m.posX + " / " + m.posZ, "Alt.: " + m.posY }; + this.func_146283_a(Arrays.asList(text), x, z); + return; + } + } + } + + if(checkClick(mouseX, mouseY, 8, 17, 200, 200)) { + int tX = (int) ((lastMouseX - guiLeft - 108) * ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) / 192D + radar.xCoord); + int tZ = (int) ((lastMouseY - guiTop - 117) * ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) / 192D + radar.zCoord); + this.func_146283_a(Arrays.asList(tX + " / " + tZ), lastMouseX, lastMouseY); + } } private void drawGuiContainerBackgroundLayer(float f, int mouseX, int mouseY) { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + drawTexturedModalRect(guiLeft - 14, guiTop + 84, 224, 0, 14, 66); + drawTexturedModalRect(guiLeft - 14, guiTop + 154, 224, 66, 14, 36); + + if(radar.power > 0) { + int i = (int) (radar.power * 200 / radar.maxPower); + drawTexturedModalRect(guiLeft + 8, guiTop + 221, 0, 234, i, 16); + } + + if(radar.scanMissiles ^ (radar.jammed && radar.getWorldObj().rand.nextBoolean())) drawTexturedModalRect(guiLeft - 10, guiTop + 88, 238, 4, 8, 8); + if(radar.scanShells ^ (radar.jammed && radar.getWorldObj().rand.nextBoolean())) drawTexturedModalRect(guiLeft - 10, guiTop + 98, 238, 14, 8, 8); + if(radar.scanPlayers ^ (radar.jammed && radar.getWorldObj().rand.nextBoolean())) drawTexturedModalRect(guiLeft - 10, guiTop + 108, 238, 24, 8, 8); + if(radar.smartMode ^ (radar.jammed && radar.getWorldObj().rand.nextBoolean())) drawTexturedModalRect(guiLeft - 10, guiTop + 118, 238, 34, 8, 8); + if(radar.redMode ^ (radar.jammed && radar.getWorldObj().rand.nextBoolean())) drawTexturedModalRect(guiLeft - 10, guiTop + 128, 238, 44, 8, 8); + if(radar.showMap ^ (radar.jammed && radar.getWorldObj().rand.nextBoolean())) drawTexturedModalRect(guiLeft - 10, guiTop + 138, 238, 54, 8, 8); + + if(radar.power < radar.consumption) return; + + if(radar.jammed) { + for(int i = 0; i < 5; i++) { + for(int j = 0; j < 5; j++) { + drawTexturedModalRect(guiLeft + 8 + i * 40, guiTop + 17 + j * 40, 216, 118 + radar.getWorldObj().rand.nextInt(81), 40, 40); + } + } + return; + } + + if(radar.showMap) { + Tessellator tess = Tessellator.instance; + GL11.glDisable(GL11.GL_TEXTURE_2D); + tess.startDrawingQuads(); + for(int i = 0; i < 40_000; i++) { + int iX = i % 200; + int iZ = i / 200; + byte b = radar.map[i]; + if(b > 0) { + int color = ((b - 50) * 255 / 78) << 8; + tess.setColorOpaque_I(color); + tess.addVertex(guiLeft + 8 + iX, guiTop + 18 + iZ, this.zLevel); + tess.addVertex(guiLeft + 9 + iX, guiTop + 18 + iZ, this.zLevel); + tess.addVertex(guiLeft + 9 + iX, guiTop + 17 + iZ, this.zLevel); + tess.addVertex(guiLeft + 8 + iX, guiTop + 17 + iZ, this.zLevel); + } + } + tess.draw(); + GL11.glEnable(GL11.GL_TEXTURE_2D); + } + + Vec3 tr = Vec3.createVectorHelper(100, 0, 0); + Vec3 tl = Vec3.createVectorHelper(100, 0, 0); + Vec3 bl = Vec3.createVectorHelper(0, -5, 0); + float rot = (float) -Math.toRadians(radar.prevRotation + (radar.rotation - radar.prevRotation) * f + 180F); + tr.rotateAroundZ(rot); + tl.rotateAroundZ(rot + 0.25F); + bl.rotateAroundZ(rot); + + GL11.glDisable(GL11.GL_TEXTURE_2D); + GL11.glEnable(GL11.GL_BLEND); + GL11.glDisable(GL11.GL_ALPHA_TEST); + GL11.glShadeModel(GL11.GL_SMOOTH); + Tessellator tess = Tessellator.instance; + tess.startDrawingQuads(); + tess.setColorRGBA_I(0x00ff00, 0); tess.addVertex(guiLeft + 108, guiTop + 117, this.zLevel); + tess.setColorRGBA_I(0x00ff00, 255); tess.addVertex(guiLeft + 108 + tr.xCoord, guiTop + 117 + tr.yCoord, this.zLevel); + tess.setColorRGBA_I(0x00ff00, 0); tess.addVertex(guiLeft + 108 + tl.xCoord, guiTop + 117 + tl.yCoord, this.zLevel); + tess.setColorRGBA_I(0x00ff00, 0); tess.addVertex(guiLeft + 108 + bl.xCoord, guiTop + 117 + bl.yCoord, this.zLevel); + tess.draw(); + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glDisable(GL11.GL_BLEND); + GL11.glEnable(GL11.GL_ALPHA_TEST); + GL11.glShadeModel(GL11.GL_FLAT); + + if(!radar.entries.isEmpty()) { + for(RadarEntry m : radar.entries) { + double x = (m.posX - radar.xCoord) / ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) * (200D - 8D) - 4D; + double z = (m.posZ - radar.zCoord) / ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) * (200D - 8D) - 4D; + int t = m.blipLevel; + drawTexturedModalRectDouble(guiLeft + 108 + x, guiTop + 117 + z, 216, 8 * t, 8, 8); + } + } + } + + public void drawTexturedModalRectDouble(double x, double y, int sourceX, int sourceY, int sizeX, int sizeY) { + float f = 0.00390625F; + float f1 = 0.00390625F; + Tessellator tessellator = Tessellator.instance; + tessellator.startDrawingQuads(); + tessellator.addVertexWithUV(x, y + sizeY, this.zLevel, (sourceX + 0) * f, (sourceY + sizeY) * f1); + tessellator.addVertexWithUV(x + sizeX, y + sizeY, this.zLevel, (sourceX + sizeX) * f, (sourceY + sizeY) * f1); + tessellator.addVertexWithUV(x + sizeX, y, this.zLevel, (sourceX + sizeX) * f, (sourceY + 0) * f1); + tessellator.addVertexWithUV(x, y, this.zLevel, (sourceX + 0) * f, (sourceY + 0) * f1); + tessellator.draw(); } protected boolean checkClick(int x, int y, int left, int top, int sizeX, int sizeY) { return guiLeft + left <= x && guiLeft + left + sizeX > x && guiTop + top < y && guiTop + top + sizeY >= y; } + + @Override + protected void keyTyped(char c, int key) { + if(key == 1 || key == this.mc.gameSettings.keyBindInventory.getKeyCode()) { + this.mc.thePlayer.closeScreen(); + } + + if(checkClick(lastMouseX, lastMouseY, 8, 17, 200, 200) && c >= '1' && c <= '8') { + + int id = c - '1'; + + if(!radar.entries.isEmpty()) { + for(RadarEntry m : radar.entries) { + int x = guiLeft + (int) ((m.posX - radar.xCoord) / ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) * (200D - 8D)) + 108; + int z = guiTop + (int) ((m.posZ - radar.zCoord) / ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) * (200D - 8D)) + 117; + + if(lastMouseX + 5 > x && lastMouseX - 4 <= x && lastMouseY + 5 > z && lastMouseY - 4 <= z) { + NBTTagCompound data = new NBTTagCompound(); + data.setInteger("launchEntity", m.entityID); + data.setInteger("link", id); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, radar.xCoord, radar.yCoord, radar.zCoord)); + return; + } + } + } + + int tX = (int) ((lastMouseX - guiLeft - 108) * ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) / 192D + radar.xCoord); + int tZ = (int) ((lastMouseY - guiTop - 117) * ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) / 192D + radar.zCoord); + NBTTagCompound data = new NBTTagCompound(); + data.setInteger("launchPosX", tX); + data.setInteger("launchPosZ", tZ); + data.setInteger("link", id); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, radar.xCoord, radar.yCoord, radar.zCoord)); + } + } + + @Override + public boolean doesGuiPauseGame() { + return false; + } + + @Override + public void updateScreen() { + super.updateScreen(); + + if(!this.mc.thePlayer.isEntityAlive() || this.mc.thePlayer.isDead) { + this.mc.thePlayer.closeScreen(); + } + } } diff --git a/src/main/java/com/hbm/items/armor/ArmorDNT.java b/src/main/java/com/hbm/items/armor/ArmorDNT.java index 37e4d6bc3..068ae49f1 100644 --- a/src/main/java/com/hbm/items/armor/ArmorDNT.java +++ b/src/main/java/com/hbm/items/armor/ArmorDNT.java @@ -173,7 +173,7 @@ public class ArmorDNT extends ArmorFSBPowered { @SideOnly(Side.CLIENT) public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { - list.add(I18nUtil.resolveKey("armor.charge",BobMathUtil.getShortNumber(getCharge(stack)),BobMathUtil.getShortNumber(maxPower))); + list.add("Charge: " + BobMathUtil.getShortNumber(getCharge(stack)) + " / " + BobMathUtil.getShortNumber(maxPower)); list.add(EnumChatFormatting.GOLD + I18nUtil.resolveKey("armor.fullSetBonus")); diff --git a/src/main/java/com/hbm/items/armor/ArmorFSBPowered.java b/src/main/java/com/hbm/items/armor/ArmorFSBPowered.java index c5ab83d19..139df77fe 100644 --- a/src/main/java/com/hbm/items/armor/ArmorFSBPowered.java +++ b/src/main/java/com/hbm/items/armor/ArmorFSBPowered.java @@ -5,7 +5,6 @@ import java.util.List; import com.hbm.util.BobMathUtil; import api.hbm.energy.IBatteryItem; -import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.player.EntityPlayer; @@ -32,7 +31,7 @@ public class ArmorFSBPowered extends ArmorFSB implements IBatteryItem { @SideOnly(Side.CLIENT) public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { - list.add(I18nUtil.resolveKey("armor.charge",BobMathUtil.getShortNumber(getCharge(stack)),BobMathUtil.getShortNumber(maxPower))); + list.add("Charge: " + BobMathUtil.getShortNumber(getCharge(stack)) + " / " + BobMathUtil.getShortNumber(maxPower)); super.addInformation(stack, player, list, ext); } diff --git a/src/main/java/com/hbm/items/armor/ItemArmorMod.java b/src/main/java/com/hbm/items/armor/ItemArmorMod.java index fac21dec9..505028648 100644 --- a/src/main/java/com/hbm/items/armor/ItemArmorMod.java +++ b/src/main/java/com/hbm/items/armor/ItemArmorMod.java @@ -53,7 +53,7 @@ public class ItemArmorMod extends Item { if(boots) list.add(" " + I18nUtil.resolveKey("armorMod.boots")); } - list.add(EnumChatFormatting.DARK_PURPLE + I18nUtil.resolveKey("armorMod.slot")); + list.add(EnumChatFormatting.DARK_PURPLE + "Slot:"); switch(this.type) { case ArmorModHandler.helmet_only: list.add(" " + I18nUtil.resolveKey("armorMod.type.helmet")); break; diff --git a/src/main/java/com/hbm/items/armor/ItemModAuto.java b/src/main/java/com/hbm/items/armor/ItemModAuto.java index 7b64bd4e6..4dd232198 100644 --- a/src/main/java/com/hbm/items/armor/ItemModAuto.java +++ b/src/main/java/com/hbm/items/armor/ItemModAuto.java @@ -6,7 +6,6 @@ import com.hbm.extprop.HbmLivingProps; import com.hbm.handler.ArmorModHandler; import com.hbm.potion.HbmPotion; -import com.hbm.util.I18nUtil; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -22,7 +21,7 @@ public class ItemModAuto extends ItemArmorMod { @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.BLUE + I18nUtil.resolveKey("armorMod.mod.auto")); + list.add(EnumChatFormatting.BLUE + "Imported from Japsterdam."); list.add(""); super.addInformation(stack, player, list, bool); diff --git a/src/main/java/com/hbm/items/armor/ItemModBandaid.java b/src/main/java/com/hbm/items/armor/ItemModBandaid.java index 7705f9cfb..c04751443 100644 --- a/src/main/java/com/hbm/items/armor/ItemModBandaid.java +++ b/src/main/java/com/hbm/items/armor/ItemModBandaid.java @@ -4,7 +4,6 @@ import java.util.List; import com.hbm.handler.ArmorModHandler; -import com.hbm.util.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; @@ -19,14 +18,14 @@ public class ItemModBandaid extends ItemArmorMod { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("armorMod.mod.bandaid")[0]); + list.add(EnumChatFormatting.RED + "3% chance for full heal when damaged"); list.add(""); super.addInformation(itemstack, player, list, bool); } @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.RED + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.bandaid")[1]); + list.add(EnumChatFormatting.RED + " " + stack.getDisplayName() + " (3% chance for full heal)"); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModBathwater.java b/src/main/java/com/hbm/items/armor/ItemModBathwater.java index 595e381c1..c0d077197 100644 --- a/src/main/java/com/hbm/items/armor/ItemModBathwater.java +++ b/src/main/java/com/hbm/items/armor/ItemModBathwater.java @@ -5,7 +5,6 @@ import java.util.List; import com.hbm.handler.ArmorModHandler; import com.hbm.items.ModItems; -import com.hbm.util.I18nUtil; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; @@ -30,7 +29,7 @@ public class ItemModBathwater extends ItemArmorMod { if(this == ModItems.bathwater_mk2) color = "" + (System.currentTimeMillis() % 1000 < 500 ? EnumChatFormatting.GREEN : EnumChatFormatting.YELLOW); - list.add(color + I18nUtil.resolveKeyArray("armorMod.mod.bathwater")[0]); + list.add(color + "Inflicts poison on the attacker"); list.add(""); super.addInformation(itemstack, player, list, bool); } @@ -43,7 +42,7 @@ public class ItemModBathwater extends ItemArmorMod { if(this == ModItems.bathwater_mk2) color = "" + (System.currentTimeMillis() % 1000 < 500 ? EnumChatFormatting.GREEN : EnumChatFormatting.YELLOW); - list.add(color + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.bathwater")[1]); + list.add(color + " " + stack.getDisplayName() + " (Poisons attackers)"); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModCharm.java b/src/main/java/com/hbm/items/armor/ItemModCharm.java index a8c52707c..2d68ff328 100644 --- a/src/main/java/com/hbm/items/armor/ItemModCharm.java +++ b/src/main/java/com/hbm/items/armor/ItemModCharm.java @@ -6,7 +6,6 @@ import com.hbm.handler.ArmorModHandler; import com.hbm.items.ModItems; import com.hbm.lib.ModDamageSource; -import com.hbm.util.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; @@ -21,15 +20,16 @@ public class ItemModCharm extends ItemArmorMod { @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.AQUA + I18nUtil.resolveKey("armorMod.mod.charm")); + list.add(EnumChatFormatting.AQUA + "You feel blessed."); if(this == ModItems.protection_charm) { - for(String s : I18nUtil.resolveKeyArray( "armorMod.mod.charm.protection")) - list.add(s); + list.add(EnumChatFormatting.AQUA + "Diverts meteors away from the player."); + list.add(EnumChatFormatting.AQUA + "Meteors no longer destroy blocks."); + list.add(EnumChatFormatting.AQUA + "Halves broadcaster damage"); } if(this == ModItems.meteor_charm) { - for(String s : I18nUtil.resolveKeyArray( "armorMod.mod.charm.meteor")) - list.add(s); + list.add(EnumChatFormatting.AQUA + "Disables meteorite spawning."); + list.add(EnumChatFormatting.AQUA + "Negates broadcaster damage"); } super.addInformation(stack, player, list, bool); diff --git a/src/main/java/com/hbm/items/armor/ItemModCladding.java b/src/main/java/com/hbm/items/armor/ItemModCladding.java index 18d1f5e24..a71b8cb28 100644 --- a/src/main/java/com/hbm/items/armor/ItemModCladding.java +++ b/src/main/java/com/hbm/items/armor/ItemModCladding.java @@ -5,7 +5,6 @@ import java.util.List; import com.hbm.handler.ArmorModHandler; import com.hbm.items.armor.ItemArmorMod; -import com.hbm.util.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; @@ -21,13 +20,13 @@ public class ItemModCladding extends ItemArmorMod { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.YELLOW + "+" + rad + I18nUtil.resolveKeyArray("armorMod.mod.cladding")[0]); + list.add(EnumChatFormatting.YELLOW + "+" + rad + " rad-resistance"); list.add(""); super.addInformation(itemstack, player, list, bool); } @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.YELLOW + " " + stack.getDisplayName() + " (+" + rad + I18nUtil.resolveKeyArray("armorMod.mod.cladding")[1]); + list.add(EnumChatFormatting.YELLOW + " " + stack.getDisplayName() + " (+" + rad + " radiation resistence)"); } } diff --git a/src/main/java/com/hbm/items/armor/ItemModDefuser.java b/src/main/java/com/hbm/items/armor/ItemModDefuser.java index d540f9f55..48eb2afe9 100644 --- a/src/main/java/com/hbm/items/armor/ItemModDefuser.java +++ b/src/main/java/com/hbm/items/armor/ItemModDefuser.java @@ -5,7 +5,6 @@ import java.util.List; import com.hbm.handler.ArmorModHandler; import com.hbm.items.ModItems; -import com.hbm.util.I18nUtil; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.ai.EntityAICreeperSwell; import net.minecraft.entity.ai.EntityAITasks.EntityAITaskEntry; @@ -26,14 +25,14 @@ public class ItemModDefuser extends ItemArmorMod { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("armorMod.mod.defuser")[0]); + list.add(EnumChatFormatting.YELLOW + "Defuses nearby creepers"); list.add(""); super.addInformation(itemstack, player, list, bool); } @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.YELLOW + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.defuser")[1]); + list.add(EnumChatFormatting.YELLOW + " " + stack.getDisplayName() + " (Defuses creepers)"); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModGasmask.java b/src/main/java/com/hbm/items/armor/ItemModGasmask.java index 62b04a129..7c8fd77f6 100644 --- a/src/main/java/com/hbm/items/armor/ItemModGasmask.java +++ b/src/main/java/com/hbm/items/armor/ItemModGasmask.java @@ -40,7 +40,7 @@ public class ItemModGasmask extends ItemArmorMod implements IGasMask { @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.GREEN + I18nUtil.resolveKeyArray("armorMod.mod.gasmask")[0]); + list.add(EnumChatFormatting.GREEN + "Gas protection"); list.add(""); super.addInformation(stack, player, list, bool); @@ -50,7 +50,7 @@ public class ItemModGasmask extends ItemArmorMod implements IGasMask { List haz = getBlacklist(stack, player); if(!haz.isEmpty()) { - list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("armorMod.mod.gasmask")[1]); + list.add(EnumChatFormatting.RED + "Will never protect against:"); for(HazardClass clazz : haz) { list.add(EnumChatFormatting.DARK_RED + " -" + I18nUtil.resolveKey(clazz.lang)); @@ -61,7 +61,7 @@ public class ItemModGasmask extends ItemArmorMod implements IGasMask { @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.GREEN + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.gasmask")[2]); + list.add(EnumChatFormatting.GREEN + " " + stack.getDisplayName() + " (gas protection)"); ArmorUtil.addGasMaskTooltip(stack, MainRegistry.proxy.me(), list, false); } diff --git a/src/main/java/com/hbm/items/armor/ItemModHealth.java b/src/main/java/com/hbm/items/armor/ItemModHealth.java index 5f3e59fe9..6e757153a 100644 --- a/src/main/java/com/hbm/items/armor/ItemModHealth.java +++ b/src/main/java/com/hbm/items/armor/ItemModHealth.java @@ -6,7 +6,6 @@ import com.google.common.collect.Multimap; import com.hbm.handler.ArmorModHandler; import com.hbm.items.ModItems; -import com.hbm.util.I18nUtil; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.ai.attributes.AttributeModifier; import net.minecraft.entity.player.EntityPlayer; @@ -28,11 +27,11 @@ public class ItemModHealth extends ItemArmorMod { String color = "" + (System.currentTimeMillis() % 1000 < 500 ? EnumChatFormatting.RED : EnumChatFormatting.LIGHT_PURPLE); - list.add(color + "+" + (Math.round(health * 10 / 2) * 0.1) + I18nUtil.resolveKeyArray("armorMod.mod.health")[0]); + list.add(color + "+" + (Math.round(health * 10 / 2) * 0.1) + " health"); list.add(""); if(this == ModItems.black_diamond) { - list.add(EnumChatFormatting.DARK_GRAY + I18nUtil.resolveKeyArray("armorMod.mod.health")[1]); + list.add(EnumChatFormatting.DARK_GRAY + "Nostalgia"); list.add(""); } @@ -44,7 +43,7 @@ public class ItemModHealth extends ItemArmorMod { String color = "" + (System.currentTimeMillis() % 1000 < 500 ? EnumChatFormatting.RED : EnumChatFormatting.LIGHT_PURPLE); - list.add(color + " " + stack.getDisplayName() + " (+" + (Math.round(health * 10 / 2) * 0.1) + I18nUtil.resolveKeyArray("armorMod.mod.health")[0]); + list.add(color + " " + stack.getDisplayName() + " (+" + (Math.round(health * 10 / 2) * 0.1) + " health)"); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModInk.java b/src/main/java/com/hbm/items/armor/ItemModInk.java index 88da55114..f8604c8f2 100644 --- a/src/main/java/com/hbm/items/armor/ItemModInk.java +++ b/src/main/java/com/hbm/items/armor/ItemModInk.java @@ -4,7 +4,6 @@ import java.util.List; import com.hbm.handler.ArmorModHandler; -import com.hbm.util.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; @@ -20,15 +19,15 @@ public class ItemModInk extends ItemArmorMod { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.LIGHT_PURPLE + I18nUtil.resolveKeyArray("armorMod.mod.Ink")[0]); - list.add(EnumChatFormatting.LIGHT_PURPLE + I18nUtil.resolveKeyArray("armorMod.mod.Ink")[1]); + list.add(EnumChatFormatting.LIGHT_PURPLE + "10% chance to nullify damage"); + list.add(EnumChatFormatting.LIGHT_PURPLE + "Flowers!"); list.add(""); super.addInformation(itemstack, player, list, bool); } @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.LIGHT_PURPLE + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.Ink")[2]); + list.add(EnumChatFormatting.LIGHT_PURPLE + " " + stack.getDisplayName() + " (10% chance to nullify damage)"); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModInsert.java b/src/main/java/com/hbm/items/armor/ItemModInsert.java index ae539765d..a8f114c95 100644 --- a/src/main/java/com/hbm/items/armor/ItemModInsert.java +++ b/src/main/java/com/hbm/items/armor/ItemModInsert.java @@ -8,7 +8,6 @@ import com.hbm.extprop.HbmLivingProps; import com.hbm.handler.ArmorModHandler; import com.hbm.items.ModItems; -import com.hbm.util.I18nUtil; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.ai.attributes.AttributeModifier; @@ -38,18 +37,18 @@ public class ItemModInsert extends ItemArmorMod { public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { if(damageMod != 1F) - list.add(EnumChatFormatting.RED + (damageMod < 1 ? "-" : "+") + Math.abs(Math.round((1F - damageMod) * 100)) + I18nUtil.resolveKeyArray("armorMod.mod.Insert")[0]); + list.add(EnumChatFormatting.RED + (damageMod < 1 ? "-" : "+") + Math.abs(Math.round((1F - damageMod) * 100)) + "% damage"); if(projectileMod != 1F) - list.add(EnumChatFormatting.YELLOW + "-" + Math.round((1F - projectileMod) * 100) + I18nUtil.resolveKeyArray("armorMod.mod.Insert")[1]); + list.add(EnumChatFormatting.YELLOW + "-" + Math.round((1F - projectileMod) * 100) + "% projectile damage"); if(explosionMod != 1F) - list.add(EnumChatFormatting.YELLOW + "-" + Math.round((1F - explosionMod) * 100) + I18nUtil.resolveKeyArray("armorMod.mod.Insert")[2]); + list.add(EnumChatFormatting.YELLOW + "-" + Math.round((1F - explosionMod) * 100) + "% explosion damage"); if(speed != 1F) - list.add(EnumChatFormatting.BLUE + "-" + Math.round((1F - speed) * 100) + I18nUtil.resolveKeyArray("armorMod.mod.Insert")[3]); + list.add(EnumChatFormatting.BLUE + "-" + Math.round((1F - speed) * 100) + "% speed"); if(this == ModItems.insert_polonium) list.add(EnumChatFormatting.DARK_RED + "+100 RAD/s"); - list.add((stack.getMaxDamage() - stack.getItemDamage()) + "/" + stack.getMaxDamage() + I18nUtil.resolveKeyArray("armorMod.mod.Insert")[4]); + list.add((stack.getMaxDamage() - stack.getItemDamage()) + "/" + stack.getMaxDamage() + "HP"); list.add(""); super.addInformation(stack, player, list, bool); @@ -61,20 +60,20 @@ public class ItemModInsert extends ItemArmorMod { List desc = new ArrayList(); if(damageMod != 1F) - desc.add((damageMod < 1 ? "-" : "+") + Math.abs(Math.round((1F - damageMod) * 100)) + I18nUtil.resolveKeyArray("armorMod.mod.Insert")[0]); + desc.add((damageMod < 1 ? "-" : "+") + Math.abs(Math.round((1F - damageMod) * 100)) + "% dmg"); if(projectileMod != 1F) - desc.add("-" + Math.round((1F - projectileMod) * 100) + I18nUtil.resolveKeyArray("armorMod.mod.Insert")[1]); + desc.add("-" + Math.round((1F - projectileMod) * 100) + "% proj"); if(explosionMod != 1F) - desc.add("-" + Math.round((1F - explosionMod) * 100) + I18nUtil.resolveKeyArray("armorMod.mod.Insert")[2]); + desc.add("-" + Math.round((1F - explosionMod) * 100) + "% exp"); if(explosionMod != 1F) - desc.add("-" + Math.round((1F - speed) * 100) + I18nUtil.resolveKeyArray("armorMod.mod.Insert")[3]); + desc.add("-" + Math.round((1F - speed) * 100) + "% speed"); if(this == ModItems.insert_polonium) desc.add("+100 RAD/s"); String join = String.join(" / ", desc); - list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + " (" + join + " / " + (stack.getMaxDamage() - stack.getItemDamage()) + I18nUtil.resolveKeyArray("armorMod.mod.Insert")[4] + ")"); + list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + " (" + join + " / " + (stack.getMaxDamage() - stack.getItemDamage()) + "HP)"); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModIron.java b/src/main/java/com/hbm/items/armor/ItemModIron.java index 17b9aa4e8..99b7fc753 100644 --- a/src/main/java/com/hbm/items/armor/ItemModIron.java +++ b/src/main/java/com/hbm/items/armor/ItemModIron.java @@ -5,7 +5,6 @@ import java.util.List; import com.google.common.collect.Multimap; import com.hbm.handler.ArmorModHandler; -import com.hbm.util.I18nUtil; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.ai.attributes.AttributeModifier; import net.minecraft.entity.player.EntityPlayer; @@ -21,14 +20,14 @@ public class ItemModIron extends ItemArmorMod { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.WHITE + I18nUtil.resolveKeyArray("armorMod.mod.Iron")[0]); + list.add(EnumChatFormatting.WHITE + "+0.5 knockback resistance"); list.add(""); super.addInformation(itemstack, player, list, bool); } @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.WHITE + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.Iron")[1]); + list.add(EnumChatFormatting.WHITE + " " + stack.getDisplayName() + " (+0.5 knockback resistence)"); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModKnife.java b/src/main/java/com/hbm/items/armor/ItemModKnife.java index 9742a2af4..9d61d7e2e 100644 --- a/src/main/java/com/hbm/items/armor/ItemModKnife.java +++ b/src/main/java/com/hbm/items/armor/ItemModKnife.java @@ -8,7 +8,6 @@ import com.hbm.main.MainRegistry; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; -import com.hbm.util.I18nUtil; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.SharedMonsterAttributes; @@ -30,8 +29,11 @@ public class ItemModKnife extends ItemArmorMod { @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { - for(String s : I18nUtil.resolveKeyArray("armorMod.mod.Knife")) - list.add(EnumChatFormatting.RED + s); + + list.add(EnumChatFormatting.RED + "Pain."); + list.add(""); + list.add(EnumChatFormatting.RED + "Hurts, doesn't it?"); + list.add(""); super.addInformation(stack, player, list, bool); } diff --git a/src/main/java/com/hbm/items/armor/ItemModLens.java b/src/main/java/com/hbm/items/armor/ItemModLens.java index 68e27a3a4..a9df9cfff 100644 --- a/src/main/java/com/hbm/items/armor/ItemModLens.java +++ b/src/main/java/com/hbm/items/armor/ItemModLens.java @@ -11,7 +11,6 @@ import com.hbm.saveddata.SatelliteSavedData; import com.hbm.saveddata.satellites.Satellite; import com.hbm.saveddata.satellites.SatelliteScanner; -import com.hbm.util.I18nUtil; import net.minecraft.block.Block; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; @@ -31,7 +30,7 @@ public class ItemModLens extends ItemArmorMod implements ISatChip { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.AQUA + I18nUtil.resolveKeyArray("armorMod.mod.Lens")[0] + this.getFreq(itemstack)); + list.add(EnumChatFormatting.AQUA + "Satellite Frequency: " + this.getFreq(itemstack)); list.add(""); super.addInformation(itemstack, player, list, bool); @@ -39,7 +38,7 @@ public class ItemModLens extends ItemArmorMod implements ISatChip { @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.AQUA + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.Lens",getFreq(stack))[1] ); + list.add(EnumChatFormatting.AQUA + " " + stack.getDisplayName() + " (Freq: " + getFreq(stack) + ")"); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModLodestone.java b/src/main/java/com/hbm/items/armor/ItemModLodestone.java index ae7c4039a..9939244b7 100644 --- a/src/main/java/com/hbm/items/armor/ItemModLodestone.java +++ b/src/main/java/com/hbm/items/armor/ItemModLodestone.java @@ -4,7 +4,6 @@ import java.util.List; import com.hbm.handler.ArmorModHandler; -import com.hbm.util.I18nUtil; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; @@ -24,15 +23,15 @@ public class ItemModLodestone extends ItemArmorMod { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.DARK_GRAY + I18nUtil.resolveKeyArray("armorMod.mod.Lodestone")[0]); - list.add(EnumChatFormatting.DARK_GRAY + I18nUtil.resolveKeyArray("armorMod.mod.Lodestone",range)[1]); + list.add(EnumChatFormatting.DARK_GRAY + "Attracts nearby items"); + list.add(EnumChatFormatting.DARK_GRAY + "Item attraction range: " + range); list.add(""); super.addInformation(itemstack, player, list, bool); } @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.DARK_GRAY + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.Lodestone",range)[2] ); + list.add(EnumChatFormatting.DARK_GRAY + " " + stack.getDisplayName() + " (Magnetic range: " + range + ")"); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModMilk.java b/src/main/java/com/hbm/items/armor/ItemModMilk.java index 455d449b8..1985c6b17 100644 --- a/src/main/java/com/hbm/items/armor/ItemModMilk.java +++ b/src/main/java/com/hbm/items/armor/ItemModMilk.java @@ -8,7 +8,6 @@ import java.util.List; import com.hbm.handler.ArmorModHandler; import com.hbm.potion.HbmPotion; -import com.hbm.util.I18nUtil; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -25,14 +24,14 @@ public class ItemModMilk extends ItemArmorMod { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.WHITE + I18nUtil.resolveKeyArray("armorMod.mod.Milk")[0]); + list.add(EnumChatFormatting.WHITE + "Removes bad potion effects"); list.add(""); super.addInformation(itemstack, player, list, bool); } @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.WHITE + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.Milk")[1]); + list.add(EnumChatFormatting.WHITE + " " + stack.getDisplayName() + " (Removes bad potion effects)"); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModMorningGlory.java b/src/main/java/com/hbm/items/armor/ItemModMorningGlory.java index 625db4ef3..b33bbfa30 100644 --- a/src/main/java/com/hbm/items/armor/ItemModMorningGlory.java +++ b/src/main/java/com/hbm/items/armor/ItemModMorningGlory.java @@ -4,7 +4,6 @@ import java.util.List; import com.hbm.handler.ArmorModHandler; -import com.hbm.util.I18nUtil; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -22,14 +21,14 @@ public class ItemModMorningGlory extends ItemArmorMod { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.LIGHT_PURPLE + I18nUtil.resolveKeyArray("armorMod.mod.MorningGlory")[0]); + list.add(EnumChatFormatting.LIGHT_PURPLE + "5% chance to apply resistance when hit, wither immunity"); list.add(""); super.addInformation(itemstack, player, list, bool); } @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.LIGHT_PURPLE + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.MorningGlory")[1]); + list.add(EnumChatFormatting.LIGHT_PURPLE + " " + stack.getDisplayName() + " (5% for resistance, wither immunity)"); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModObsidian.java b/src/main/java/com/hbm/items/armor/ItemModObsidian.java index 16b5726a8..2227c1dd1 100644 --- a/src/main/java/com/hbm/items/armor/ItemModObsidian.java +++ b/src/main/java/com/hbm/items/armor/ItemModObsidian.java @@ -4,7 +4,6 @@ import java.util.List; import com.hbm.handler.ArmorModHandler; -import com.hbm.util.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; @@ -17,13 +16,13 @@ public class ItemModObsidian extends ItemArmorMod { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.DARK_PURPLE + I18nUtil.resolveKeyArray("armorMod.mod.Obsidian")[0]); + list.add(EnumChatFormatting.DARK_PURPLE + "Makes dropped armor indestructible"); list.add(""); super.addInformation(itemstack, player, list, bool); } @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.Obsidian")[1]); + list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + " (Item indestructible)"); } } diff --git a/src/main/java/com/hbm/items/armor/ItemModPads.java b/src/main/java/com/hbm/items/armor/ItemModPads.java index 39234d5d2..9e7d62556 100644 --- a/src/main/java/com/hbm/items/armor/ItemModPads.java +++ b/src/main/java/com/hbm/items/armor/ItemModPads.java @@ -5,7 +5,6 @@ import java.util.List; import com.hbm.handler.ArmorModHandler; import com.hbm.items.ModItems; -import com.hbm.util.I18nUtil; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -26,10 +25,10 @@ public class ItemModPads extends ItemArmorMod { public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { if(damageMod != 1F) - list.add(EnumChatFormatting.RED + "-" + Math.round((1F - damageMod) * 100) + I18nUtil.resolveKeyArray("armorMod.mod.Pads")[0]); + list.add(EnumChatFormatting.RED + "-" + Math.round((1F - damageMod) * 100) + "% fall damage"); if(this == ModItems.pads_static) - list.add(EnumChatFormatting.DARK_PURPLE + I18nUtil.resolveKeyArray("armorMod.mod.Pads")[1]); + list.add(EnumChatFormatting.DARK_PURPLE + "Passively charges electric armor when walking"); list.add(""); super.addInformation(itemstack, player, list, bool); @@ -39,9 +38,9 @@ public class ItemModPads extends ItemArmorMod { public void addDesc(List list, ItemStack stack, ItemStack armor) { if(this == ModItems.pads_static) - list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + " (-" + Math.round((1F - damageMod) * 100) + I18nUtil.resolveKeyArray("armorMod.mod.Pads")[2]); + list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + " (-" + Math.round((1F - damageMod) * 100) + "% fall dmg / passive charge)"); else - list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + " (-" + Math.round((1F - damageMod) * 100) + I18nUtil.resolveKeyArray("armorMod.mod.Pads")[0]); + list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + " (-" + Math.round((1F - damageMod) * 100) + "% fall dmg)"); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModPolish.java b/src/main/java/com/hbm/items/armor/ItemModPolish.java index 96c803442..b35e13480 100644 --- a/src/main/java/com/hbm/items/armor/ItemModPolish.java +++ b/src/main/java/com/hbm/items/armor/ItemModPolish.java @@ -4,7 +4,6 @@ import java.util.List; import com.hbm.handler.ArmorModHandler; -import com.hbm.util.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; @@ -19,14 +18,14 @@ public class ItemModPolish extends ItemArmorMod { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.BLUE + I18nUtil.resolveKeyArray("armorMod.mod.Polish")[0]); + list.add(EnumChatFormatting.BLUE + "5% chance to nullify damage"); list.add(""); super.addInformation(itemstack, player, list, bool); } @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.BLUE + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.Polish")[1]); + list.add(EnumChatFormatting.BLUE + " " + stack.getDisplayName() + " (5% chance to nullify damage)"); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModQuartz.java b/src/main/java/com/hbm/items/armor/ItemModQuartz.java index 90bcf6833..9179681b2 100644 --- a/src/main/java/com/hbm/items/armor/ItemModQuartz.java +++ b/src/main/java/com/hbm/items/armor/ItemModQuartz.java @@ -5,7 +5,6 @@ import java.util.List; import com.hbm.extprop.HbmLivingProps; import com.hbm.handler.ArmorModHandler; -import com.hbm.util.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; @@ -20,14 +19,14 @@ public class ItemModQuartz extends ItemArmorMod { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.DARK_GRAY + I18nUtil.resolveKeyArray("armorMod.mod.Quartz")[0]); + list.add(EnumChatFormatting.DARK_GRAY + "Taking damage removes 10 RAD"); list.add(""); super.addInformation(itemstack, player, list, bool); } @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.DARK_GRAY + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.Quartz")[1]); + list.add(EnumChatFormatting.DARK_GRAY + " " + stack.getDisplayName() + " (-10 RAD when hit)"); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModRevive.java b/src/main/java/com/hbm/items/armor/ItemModRevive.java index 055017430..57519ed89 100644 --- a/src/main/java/com/hbm/items/armor/ItemModRevive.java +++ b/src/main/java/com/hbm/items/armor/ItemModRevive.java @@ -5,7 +5,6 @@ import java.util.List; import com.hbm.handler.ArmorModHandler; import com.hbm.items.ModItems; -import com.hbm.util.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; @@ -21,19 +20,23 @@ public class ItemModRevive extends ItemArmorMod { public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { if(this == ModItems.scrumpy) { - list.add(EnumChatFormatting.GOLD + I18nUtil.resolveKeyArray("armorMod.mod.Revive.scrumpy")[0]); - list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("armorMod.mod.Revive.scrumpy")[1]); + list.add(EnumChatFormatting.GOLD + "But how did you survive?"); + list.add(EnumChatFormatting.RED + "I was drunk."); } if(this == ModItems.wild_p) { - list.add(I18nUtil.resolveKey("armorMod.mod.Revive.wild_p")); + list.add(EnumChatFormatting.DARK_GRAY + "Explosive " + EnumChatFormatting.RED + "Reactive " + EnumChatFormatting.DARK_GRAY + "Plot " + EnumChatFormatting.RED + "Armor"); } if(this == ModItems.fabsols_vodka) { - for(String s : I18nUtil.resolveKeyArray("armorMod.mod.Revive.fabsols_vodka")) - list.add(EnumChatFormatting.ITALIC + s); + list.add(EnumChatFormatting.ITALIC + "In the news:"); + list.add(EnumChatFormatting.RED + "" + EnumChatFormatting.BOLD + "Man literally too angry to die."); + list.add(""); + list.add(EnumChatFormatting.ITALIC + "\"I ain't got time to die\" says local"); + list.add(EnumChatFormatting.ITALIC + "man after ripping the physical manifestation"); + list.add(EnumChatFormatting.ITALIC + "of disaster itself in half."); } list.add(""); - list.add(EnumChatFormatting.GOLD + "" + (stack.getMaxDamage() - stack.getItemDamage()) + I18nUtil.resolveKey("armorMod.mod.Revive")); + list.add(EnumChatFormatting.GOLD + "" + (stack.getMaxDamage() - stack.getItemDamage()) + " revives left"); list.add(""); super.addInformation(stack, player, list, bool); } @@ -41,6 +44,6 @@ public class ItemModRevive extends ItemArmorMod { @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.GOLD + " " + stack.getDisplayName() + " (" + (stack.getMaxDamage() - stack.getItemDamage()) + I18nUtil.resolveKey("armorMod.mod.Revive") + ")"); + list.add(EnumChatFormatting.GOLD + " " + stack.getDisplayName() + " (" + (stack.getMaxDamage() - stack.getItemDamage()) + " revives left)"); } } diff --git a/src/main/java/com/hbm/items/armor/ItemModSensor.java b/src/main/java/com/hbm/items/armor/ItemModSensor.java index 4ab0619d2..cfdec7ff9 100644 --- a/src/main/java/com/hbm/items/armor/ItemModSensor.java +++ b/src/main/java/com/hbm/items/armor/ItemModSensor.java @@ -5,7 +5,6 @@ import java.util.List; import com.hbm.blocks.ModBlocks; import com.hbm.handler.ArmorModHandler; -import com.hbm.util.I18nUtil; import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; @@ -23,15 +22,15 @@ public class ItemModSensor extends ItemArmorMod { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("armorMod.mod.Sensor")[0]); - list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("armorMod.mod.Sensor")[1]); + list.add(EnumChatFormatting.YELLOW + "Beeps near hazardous gasses"); + list.add(EnumChatFormatting.YELLOW + "Works in the inventory or when applied to armor"); list.add(""); super.addInformation(itemstack, player, list, bool); } @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.YELLOW + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.Sensor")[2]); + list.add(EnumChatFormatting.YELLOW + " " + stack.getDisplayName() + " (Detects gasses)"); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModSerum.java b/src/main/java/com/hbm/items/armor/ItemModSerum.java index 3d9d91049..29988e37b 100644 --- a/src/main/java/com/hbm/items/armor/ItemModSerum.java +++ b/src/main/java/com/hbm/items/armor/ItemModSerum.java @@ -4,7 +4,6 @@ import java.util.List; import com.hbm.handler.ArmorModHandler; -import com.hbm.util.I18nUtil; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -21,14 +20,14 @@ public class ItemModSerum extends ItemArmorMod { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.GREEN + I18nUtil.resolveKeyArray("armorMod.mod.Serum")[0]); + list.add(EnumChatFormatting.GREEN + "Cures poison and gives strength"); list.add(""); super.addInformation(itemstack, player, list, bool); } @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.BLUE + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.Serum")[1]); + list.add(EnumChatFormatting.BLUE + " " + stack.getDisplayName() + " (replaces poison with strength)"); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModServos.java b/src/main/java/com/hbm/items/armor/ItemModServos.java index a014d2305..cb07d46f3 100644 --- a/src/main/java/com/hbm/items/armor/ItemModServos.java +++ b/src/main/java/com/hbm/items/armor/ItemModServos.java @@ -6,7 +6,6 @@ import com.google.common.collect.Multimap; import com.hbm.handler.ArmorModHandler; import com.hbm.items.ModItems; -import com.hbm.util.I18nUtil; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.ai.attributes.AttributeModifier; @@ -27,12 +26,12 @@ public class ItemModServos extends ItemArmorMod { public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { if(this == ModItems.servo_set) { - list.add(EnumChatFormatting.DARK_PURPLE + I18nUtil.resolveKeyArray("armorMod.mod.Servos")[0]); - list.add(EnumChatFormatting.DARK_PURPLE + I18nUtil.resolveKeyArray("armorMod.mod.Servos")[1]); + list.add(EnumChatFormatting.DARK_PURPLE + "Chestplate: Haste I / Damage +50%"); + list.add(EnumChatFormatting.DARK_PURPLE + "Leggings: Speed +25% / Jump II"); } if(this == ModItems.servo_set_desh) { - list.add(EnumChatFormatting.DARK_PURPLE + I18nUtil.resolveKeyArray("armorMod.mod.Servos.desh")[0]); - list.add(EnumChatFormatting.DARK_PURPLE + I18nUtil.resolveKeyArray("armorMod.mod.Servos.desh")[1]); + list.add(EnumChatFormatting.DARK_PURPLE + "Chestplate: Haste III / Damage +150%"); + list.add(EnumChatFormatting.DARK_PURPLE + "Leggings: Speed +50% / Jump III"); } list.add(""); @@ -47,20 +46,20 @@ public class ItemModServos extends ItemArmorMod { if(item.armorType == 1) { if(this == ModItems.servo_set) { - list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.Servos")[2]); + list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + " (Haste I / Damage +50%)"); } if(this == ModItems.servo_set_desh) { - list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.Servos.desh")[2]); + list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + " (Haste III / Damage +150%)"); } } if(item.armorType == 2) { if(this == ModItems.servo_set) { - list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.Servos")[3]); + list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + " (Speed +25% / Jump II)"); } if(this == ModItems.servo_set_desh) { - list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.Servos.desh")[3]); + list.add(EnumChatFormatting.DARK_PURPLE + " " + stack.getDisplayName() + " (Speed +50% / Jump III)"); } } } diff --git a/src/main/java/com/hbm/items/armor/ItemModShackles.java b/src/main/java/com/hbm/items/armor/ItemModShackles.java index aad9cfcce..306dd3c2a 100644 --- a/src/main/java/com/hbm/items/armor/ItemModShackles.java +++ b/src/main/java/com/hbm/items/armor/ItemModShackles.java @@ -4,7 +4,6 @@ import java.util.List; import com.hbm.handler.ArmorModHandler; -import com.hbm.util.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; @@ -18,12 +17,12 @@ public class ItemModShackles extends ItemArmorMod { @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("armorMod.mod.Shackles")[0]); - list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("armorMod.mod.Shackles")[1]); - list.add(EnumChatFormatting.RED + "" + EnumChatFormatting.BOLD + I18nUtil.resolveKeyArray("armorMod.mod.Shackles")[2]); + list.add(EnumChatFormatting.RED + "You will speak when I ask you to."); + list.add(EnumChatFormatting.RED + "You will eat when I tell you to."); + list.add(EnumChatFormatting.RED + "" + EnumChatFormatting.BOLD + "You will die when I allow you to."); list.add(""); - list.add(EnumChatFormatting.GOLD + I18nUtil.resolveKeyArray("armorMod.mod.Shackles")[3]); + list.add(EnumChatFormatting.GOLD + "∞ revives left"); list.add(""); super.addInformation(stack, player, list, bool); } @@ -31,6 +30,6 @@ public class ItemModShackles extends ItemArmorMod { @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.GOLD + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.Shackles")[4]); + list.add(EnumChatFormatting.GOLD + " " + stack.getDisplayName() + " (∞ revives left)"); } } diff --git a/src/main/java/com/hbm/items/armor/ItemModTesla.java b/src/main/java/com/hbm/items/armor/ItemModTesla.java index cfddd60ea..b09a37770 100644 --- a/src/main/java/com/hbm/items/armor/ItemModTesla.java +++ b/src/main/java/com/hbm/items/armor/ItemModTesla.java @@ -7,7 +7,6 @@ import com.hbm.handler.ArmorModHandler; import com.hbm.render.model.ModelBackTesla; import com.hbm.tileentity.machine.TileEntityTesla; -import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.model.ModelBiped; @@ -31,14 +30,14 @@ public class ItemModTesla extends ItemArmorMod { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("armorMod.mod.Tesla")[0]); + list.add(EnumChatFormatting.YELLOW + "Zaps nearby entities (requires full electric set)"); list.add(""); super.addInformation(itemstack, player, list, bool); } @SideOnly(Side.CLIENT) public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.YELLOW + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.Tesla")[1]); + list.add(EnumChatFormatting.YELLOW + stack.getDisplayName() + " (zaps nearby entities)"); } @Override diff --git a/src/main/java/com/hbm/items/armor/ItemModTwoKick.java b/src/main/java/com/hbm/items/armor/ItemModTwoKick.java index f647e509f..a93ab9574 100644 --- a/src/main/java/com/hbm/items/armor/ItemModTwoKick.java +++ b/src/main/java/com/hbm/items/armor/ItemModTwoKick.java @@ -4,7 +4,6 @@ import java.util.List; import com.hbm.handler.ArmorModHandler; -import com.hbm.util.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; @@ -18,14 +17,14 @@ public class ItemModTwoKick extends ItemArmorMod { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.ITALIC + I18nUtil.resolveKeyArray("armorMod.mod.TwoKick")[0]); - list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("armorMod.mod.TwoKick")[1]); + list.add(EnumChatFormatting.ITALIC + "\"I've had worse\""); + list.add(EnumChatFormatting.YELLOW + "Punches fire 12 gauge shells"); list.add(""); super.addInformation(itemstack, player, list, bool); } @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.YELLOW + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.TwoKick")[2]); + list.add(EnumChatFormatting.YELLOW + " " + stack.getDisplayName() + " (Shotgun punches)"); } } diff --git a/src/main/java/com/hbm/items/armor/ItemModV1.java b/src/main/java/com/hbm/items/armor/ItemModV1.java index e7e67f8d3..bb5d8a3a6 100644 --- a/src/main/java/com/hbm/items/armor/ItemModV1.java +++ b/src/main/java/com/hbm/items/armor/ItemModV1.java @@ -7,7 +7,6 @@ import com.google.common.collect.Multimap; import com.hbm.handler.ArmorModHandler; import com.hbm.interfaces.IArmorModDash; -import com.hbm.util.I18nUtil; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.ai.attributes.AttributeModifier; import net.minecraft.entity.player.EntityPlayer; @@ -32,14 +31,14 @@ public class ItemModV1 extends ItemArmorMod implements IArmorModDash { @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("armorMod.mod.V1")[0]); + list.add(EnumChatFormatting.RED + "BLOOD IS FUEL"); list.add(""); super.addInformation(stack, player, list, bool); } @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.RED + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.V1")[1]); + list.add(EnumChatFormatting.RED + " " + stack.getDisplayName() + " (BLOOD IS FUEL)"); } public int getDashes() { diff --git a/src/main/java/com/hbm/items/armor/ItemModWD40.java b/src/main/java/com/hbm/items/armor/ItemModWD40.java index ace751d25..b01f48217 100644 --- a/src/main/java/com/hbm/items/armor/ItemModWD40.java +++ b/src/main/java/com/hbm/items/armor/ItemModWD40.java @@ -6,7 +6,6 @@ import com.google.common.collect.Multimap; import com.hbm.handler.ArmorModHandler; import com.hbm.main.MainRegistry; -import com.hbm.util.I18nUtil; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.ai.attributes.AttributeModifier; @@ -28,7 +27,7 @@ public class ItemModWD40 extends ItemArmorMod { String color = "" + (System.currentTimeMillis() % 1000 < 500 ? EnumChatFormatting.BLUE : EnumChatFormatting.YELLOW); - list.add(color + I18nUtil.resolveKeyArray("armorMod.mod.WD40")[0]); + list.add(color + "Highly reduces damage taken by armor, +2 HP"); list.add(""); super.addInformation(itemstack, player, list, bool); } @@ -38,7 +37,7 @@ public class ItemModWD40 extends ItemArmorMod { String color = "" + (System.currentTimeMillis() % 1000 < 500 ? EnumChatFormatting.BLUE : EnumChatFormatting.YELLOW); - list.add(color + " " + stack.getDisplayName() + I18nUtil.resolveKeyArray("armorMod.mod.WD40")[1]); + list.add(color + " " + stack.getDisplayName() + " (-80% armor wear / +2 HP)"); } @Override diff --git a/src/main/java/com/hbm/items/armor/JetpackBase.java b/src/main/java/com/hbm/items/armor/JetpackBase.java index ff96db4cc..e5701e3d8 100644 --- a/src/main/java/com/hbm/items/armor/JetpackBase.java +++ b/src/main/java/com/hbm/items/armor/JetpackBase.java @@ -8,7 +8,6 @@ import com.hbm.render.model.ModelJetPack; import com.hbm.util.ArmorUtil; import api.hbm.fluid.IFillableItem; -import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.Minecraft; @@ -41,7 +40,7 @@ public abstract class JetpackBase extends ItemArmorMod implements IFillableItem list.add(EnumChatFormatting.LIGHT_PURPLE + fuel.getLocalizedName() + ": " + this.getFuel(itemstack) + "mB / " + this.maxFuel + "mB"); list.add(""); super.addInformation(itemstack, player, list, bool); - list.add(EnumChatFormatting.GOLD + I18nUtil.resolveKey("item.jetpack.desc")); + list.add(EnumChatFormatting.GOLD + "Can be worn on its own!"); } @Override diff --git a/src/main/java/com/hbm/items/armor/JetpackBooster.java b/src/main/java/com/hbm/items/armor/JetpackBooster.java index a7a0084ec..09b90947b 100644 --- a/src/main/java/com/hbm/items/armor/JetpackBooster.java +++ b/src/main/java/com/hbm/items/armor/JetpackBooster.java @@ -7,7 +7,6 @@ import com.hbm.inventory.fluid.FluidType; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; -import com.hbm.util.I18nUtil; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -15,7 +14,6 @@ import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.Vec3; import net.minecraft.world.World; @@ -69,8 +67,9 @@ public class JetpackBooster extends JetpackBase { @SideOnly(Side.CLIENT) public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { - for(String s : I18nUtil.resolveKeyArray("item.jetpack_boost.desc")) - list.add(s); + + list.add("High-powered vectorized jetpack."); + list.add("Highly increased fuel consumption."); super.addInformation(stack, player, list, ext); } diff --git a/src/main/java/com/hbm/items/armor/JetpackBreak.java b/src/main/java/com/hbm/items/armor/JetpackBreak.java index 92da43169..340fd2f09 100644 --- a/src/main/java/com/hbm/items/armor/JetpackBreak.java +++ b/src/main/java/com/hbm/items/armor/JetpackBreak.java @@ -7,7 +7,6 @@ import com.hbm.inventory.fluid.FluidType; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; -import com.hbm.util.I18nUtil; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -78,8 +77,9 @@ public class JetpackBreak extends JetpackBase { @SideOnly(Side.CLIENT) public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { - for(String s : I18nUtil.resolveKeyArray("item.jetpack_break.desc")) - list.add(s); + list.add("Regular jetpack that will automatically hover mid-air."); + list.add("Sneaking will stop hover mode."); + list.add("Hover mode will consume less fuel and increase air-mobility."); super.addInformation(stack, player, list, ext); } diff --git a/src/main/java/com/hbm/items/armor/JetpackRegular.java b/src/main/java/com/hbm/items/armor/JetpackRegular.java index 5c3da193b..cbf04933b 100644 --- a/src/main/java/com/hbm/items/armor/JetpackRegular.java +++ b/src/main/java/com/hbm/items/armor/JetpackRegular.java @@ -7,7 +7,6 @@ import com.hbm.inventory.fluid.FluidType; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; -import com.hbm.util.I18nUtil; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -57,7 +56,7 @@ public class JetpackRegular extends JetpackBase { @SideOnly(Side.CLIENT) public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { - list.add(I18nUtil.resolveKey("item.jetpack_fly.desc")); + list.add("Regular jetpack for simple upwards momentum."); super.addInformation(stack, player, list, ext); } diff --git a/src/main/java/com/hbm/items/armor/JetpackVectorized.java b/src/main/java/com/hbm/items/armor/JetpackVectorized.java index d878a4d6d..d95312f80 100644 --- a/src/main/java/com/hbm/items/armor/JetpackVectorized.java +++ b/src/main/java/com/hbm/items/armor/JetpackVectorized.java @@ -7,7 +7,6 @@ import com.hbm.inventory.fluid.FluidType; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; -import com.hbm.util.I18nUtil; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -69,8 +68,8 @@ public class JetpackVectorized extends JetpackBase { @SideOnly(Side.CLIENT) public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { - for(String s : I18nUtil.resolveKeyArray("item.jetpack_vector.desc")) - list.add(s); + list.add("High-mobility jetpack."); + list.add("Higher fuel consumption."); super.addInformation(stack, player, list, ext); } diff --git a/src/main/java/com/hbm/items/block/ItemBlockBlastInfo.java b/src/main/java/com/hbm/items/block/ItemBlockBlastInfo.java index a278ad15d..4ded08d51 100644 --- a/src/main/java/com/hbm/items/block/ItemBlockBlastInfo.java +++ b/src/main/java/com/hbm/items/block/ItemBlockBlastInfo.java @@ -2,7 +2,6 @@ package com.hbm.items.block; import java.util.List; -import com.hbm.util.I18nUtil; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; @@ -26,6 +25,6 @@ public class ItemBlockBlastInfo extends ItemBlockBase { if(block == null) return; - list.add(EnumChatFormatting.GOLD + I18nUtil.resolveKey("desc.block.blastinfo", block.getExplosionResistance(null))); + list.add(EnumChatFormatting.GOLD + "Blast Resistance: " + block.getExplosionResistance(null)); } } diff --git a/src/main/java/com/hbm/items/block/ItemBlockLore.java b/src/main/java/com/hbm/items/block/ItemBlockLore.java index 24d86b52c..6d26836e0 100644 --- a/src/main/java/com/hbm/items/block/ItemBlockLore.java +++ b/src/main/java/com/hbm/items/block/ItemBlockLore.java @@ -5,7 +5,6 @@ import java.util.List; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.RedBarrel; -import com.hbm.util.I18nUtil; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.EnumRarity; @@ -22,21 +21,35 @@ public class ItemBlockLore extends ItemBlockBase { super.addInformation(itemstack, player, list, bool); if(this.field_150939_a instanceof RedBarrel) { - list.add(I18nUtil.resolveKey("tile.red_barrel.desc")); + list.add("Static fluid barrel"); } if(this.field_150939_a == ModBlocks.meteor_battery) { - list.add(I18nUtil.resolveKey("tile.meteor_battery.desc")); + list.add("Provides infinite charge to tesla coils"); } if(this.field_150939_a == ModBlocks.ore_oil) { - for(String s : I18nUtil.resolveKeyArray("tile.ore_oil.desc")) - list.add(s); + list.add("You weren't supposed to mine that."); + list.add("Come on, get a derrick you doofus."); } if(this.field_150939_a == ModBlocks.gravel_diamond) { - for(String s : I18nUtil.resolveKeyArray("tile.gravel_diamond.desc")) - list.add(s); + list.add("There is some kind of joke here,"); + list.add("but I can't quite tell what it is."); + list.add(""); + list.add("Update, 2020-07-04:"); + list.add("We deny any implications of a joke on"); + list.add("the basis that it was so severely unfunny"); + list.add("that people started stabbing their eyes out."); + list.add(""); + list.add("Update, 2020-17-04:"); + list.add("As it turns out, \"Diamond Gravel\" was"); + list.add("never really a thing, rendering what might"); + list.add("have been a joke as totally nonsensical."); + list.add("We apologize for getting your hopes up with"); + list.add("this non-joke that hasn't been made."); + list.add(""); + list.add("i added an item for a joke that isn't even here, what am i, stupid? can't even tell the difference between gravel and a gavel, how did i not forget how to breathe yet?"); } } diff --git a/src/main/java/com/hbm/items/block/ItemCustomMachine.java b/src/main/java/com/hbm/items/block/ItemCustomMachine.java index b1c1199ad..61b1cf00c 100644 --- a/src/main/java/com/hbm/items/block/ItemCustomMachine.java +++ b/src/main/java/com/hbm/items/block/ItemCustomMachine.java @@ -5,7 +5,6 @@ import java.util.List; import com.hbm.config.CustomMachineConfigJSON; import com.hbm.config.CustomMachineConfigJSON.MachineConfiguration; -import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; @@ -38,7 +37,7 @@ public class ItemCustomMachine extends ItemBlock { MachineConfiguration conf = CustomMachineConfigJSON.niceList.get(id); if(conf != null) { - return (I18nUtil.resolveKey("tile.cm_" + conf.unlocalizedName + ".name").startsWith("tile.cm_")) ? conf.localizedName : I18nUtil.resolveKey("tile.cm_" + conf.unlocalizedName + ".name"); + return conf.localizedName; } } diff --git a/src/main/java/com/hbm/items/bomb/ItemFleija.java b/src/main/java/com/hbm/items/bomb/ItemFleija.java index 0ef739264..d9424f67e 100644 --- a/src/main/java/com/hbm/items/bomb/ItemFleija.java +++ b/src/main/java/com/hbm/items/bomb/ItemFleija.java @@ -4,7 +4,6 @@ import java.util.List; import com.hbm.items.ModItems; -import com.hbm.util.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.EnumRarity; import net.minecraft.item.Item; @@ -15,8 +14,8 @@ public class ItemFleija extends Item { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - for(String s : I18nUtil.resolveKeyArray( "tile.nuke_fleija.desc")) - list.add(s); + list.add("Used in:"); + list.add("F.L.E.I.J.A."); super.addInformation(itemstack, player, list, bool); } diff --git a/src/main/java/com/hbm/items/bomb/ItemMissileShuttle.java b/src/main/java/com/hbm/items/bomb/ItemMissileShuttle.java index 707be6ba1..edbcbc693 100644 --- a/src/main/java/com/hbm/items/bomb/ItemMissileShuttle.java +++ b/src/main/java/com/hbm/items/bomb/ItemMissileShuttle.java @@ -2,7 +2,6 @@ package com.hbm.items.bomb; import java.util.List; -import com.hbm.util.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -11,7 +10,12 @@ public class ItemMissileShuttle extends Item { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - for(String s : I18nUtil.resolveKeyArray( "item.missile_shuttle.desc")) - list.add(s); + list.add("Tonite, on bo''om gear:"); + list.add("James huffs leaded gasoline and"); + list.add("goes insane, Richard spends the"); + list.add("entire budget on a broken .PNG,"); + list.add("And I forget to set the infinite"); + list.add("Water tanks on our RBMK to flow"); + list.add("out, blowing up our entire base"); } } \ No newline at end of file diff --git a/src/main/java/com/hbm/items/bomb/ItemN2.java b/src/main/java/com/hbm/items/bomb/ItemN2.java index f1a5ce766..c837fee78 100644 --- a/src/main/java/com/hbm/items/bomb/ItemN2.java +++ b/src/main/java/com/hbm/items/bomb/ItemN2.java @@ -2,19 +2,17 @@ package com.hbm.items.bomb; import java.util.List; -import com.hbm.util.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; public class ItemN2 extends Item { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - for(String s : I18nUtil.resolveKeyArray( "tile.nuke_n2.desc")) - list.add(s); + list.add("Used in:"); + list.add("N² Mine"); } } diff --git a/src/main/java/com/hbm/items/bomb/ItemPrototypeBlock.java b/src/main/java/com/hbm/items/bomb/ItemPrototypeBlock.java index 53a79c575..6335866f3 100644 --- a/src/main/java/com/hbm/items/bomb/ItemPrototypeBlock.java +++ b/src/main/java/com/hbm/items/bomb/ItemPrototypeBlock.java @@ -2,7 +2,6 @@ package com.hbm.items.bomb; import java.util.List; -import com.hbm.util.I18nUtil; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemBlock; @@ -17,8 +16,10 @@ public class ItemPrototypeBlock extends ItemBlock { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - for(String s : I18nUtil.resolveKeyArray( "tile.nuke_prototype.desc")) - list.add(s); + list.add("It didn't have to be like this."); + list.add(""); + list.add("You monster."); + /*list.add("In memory of Euphemia."); list.add(""); list.add("Rest in spaghetti, never forgetti.");*/ diff --git a/src/main/java/com/hbm/items/bomb/ItemSolinium.java b/src/main/java/com/hbm/items/bomb/ItemSolinium.java index 01776fa26..a04321ecb 100644 --- a/src/main/java/com/hbm/items/bomb/ItemSolinium.java +++ b/src/main/java/com/hbm/items/bomb/ItemSolinium.java @@ -2,7 +2,6 @@ package com.hbm.items.bomb; import java.util.List; -import com.hbm.util.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -12,8 +11,8 @@ public class ItemSolinium extends Item { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - for(String s : I18nUtil.resolveKeyArray( "tile.nuke_solinium.desc")) - list.add(s); + list.add("Used in:"); + list.add("Solinium Bomb"); super.addInformation(itemstack, player, list, bool); } } diff --git a/src/main/java/com/hbm/items/food/ItemLemon.java b/src/main/java/com/hbm/items/food/ItemLemon.java index b2d332c51..25bb74a9e 100644 --- a/src/main/java/com/hbm/items/food/ItemLemon.java +++ b/src/main/java/com/hbm/items/food/ItemLemon.java @@ -6,7 +6,6 @@ import com.hbm.items.ModItems; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; -import com.hbm.util.I18nUtil; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Items; @@ -31,57 +30,72 @@ public class ItemLemon extends ItemFood { public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { if(this == ModItems.lemon) { - list.add(I18nUtil.resolveKey("item.lemon.desc")); + list.add("Eh, good enough."); } if(this == ModItems.definitelyfood) { - for(String s : I18nUtil.resolveKeyArray("item.definitelyfood.desc")) - list.add(s); + list.add("A'right, I got sick and tired of"); + list.add("having to go out, kill things just"); + list.add("to get food and not die, so here is "); + list.add("my absolutely genius solution:"); + list.add(""); + list.add("Have some edible dirt."); } if(this == ModItems.med_ipecac) { - for(String s : I18nUtil.resolveKeyArray("item.med_ipecac.desc")) - list.add(s); + list.add("Bitter juice that will cause your stomach"); + list.add("to forcefully eject its contents."); } if(this == ModItems.med_ptsd) { - for(String s : I18nUtil.resolveKeyArray("item.med_ptsd.desc")) - list.add(s); + list.add("This isn't even PTSD mediaction, it's just"); + list.add("Ipecac in a different bottle!"); } if(this == ModItems.med_schizophrenia) { - for(String s : I18nUtil.resolveKeyArray("item.med_schiziphrenia.desc")) - list.add(s); + list.add("Makes the voices go away. Just for a while."); + list.add(""); + list.add("..."); + list.add("Better not take it."); + } + + if(this == ModItems.med_schizophrenia) { + list.add("Makes the voices go away. Just for a while."); + list.add(""); + list.add("..."); + list.add("Better not take it."); } if(this == ModItems.loops) { - list.add(I18nUtil.resolveKey("item.loops.desc")); + list.add("Brøther, may I have some lööps?"); } if(this == ModItems.loop_stew) { - list.add(I18nUtil.resolveKey("item.loop_stew.desc")); + list.add("A very, very healthy breakfast."); } if(this == ModItems.twinkie) { - list.add(I18nUtil.resolveKey("item.twinkie.desc")); + list.add("Expired 600 years ago!"); } if(this == ModItems.pudding) { - for(String s : I18nUtil.resolveKeyArray("item.pudding.desc")) - list.add(s); + list.add("What if he did?"); + list.add("What if he didn't?"); + list.add("What if the world was made of pudding?"); } if(this == ModItems.ingot_semtex) { - for(String s : I18nUtil.resolveKeyArray("item.ingot_semtex.desc")) - list.add(s); + list.add("Semtex H Plastic Explosive"); + list.add("Performant explosive for many applications."); + list.add("Edible"); } if(this == ModItems.peas) { - list.add(I18nUtil.resolveKey("item.peas.desc")); + list.add("He accepts your offering."); } if(this == ModItems.quesadilla) { - list.add(I18nUtil.resolveKey("item.cheese_quesadilla.desc")); + list.add("That's what a 50 year old yeast infection does to you."); } } diff --git a/src/main/java/com/hbm/items/food/ItemTemFlakes.java b/src/main/java/com/hbm/items/food/ItemTemFlakes.java index b0435244d..d6eee715b 100644 --- a/src/main/java/com/hbm/items/food/ItemTemFlakes.java +++ b/src/main/java/com/hbm/items/food/ItemTemFlakes.java @@ -2,7 +2,6 @@ package com.hbm.items.food; import java.util.List; -import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.creativetab.CreativeTabs; @@ -40,15 +39,15 @@ public class ItemTemFlakes extends ItemFood { { if(itemstack.getItemDamage() == 0) { - list.add(I18nUtil.resolveKeyArray("item.tem_flakes.desc")[0]); + list.add("Heals 2HP DISCOUNT FOOD OF TEM!!!"); } if(itemstack.getItemDamage() == 1) { - list.add(I18nUtil.resolveKeyArray("item.tem_flakes.desc")[1]); + list.add("Heals 2HP food of tem"); } if(itemstack.getItemDamage() == 2) { - list.add(I18nUtil.resolveKeyArray("item.tem_flakes.desc")[2]); + list.add("Heals food of tem (expensiv)"); } } diff --git a/src/main/java/com/hbm/items/machine/ItemBattery.java b/src/main/java/com/hbm/items/machine/ItemBattery.java index 3de7fd67b..4f0fda9a7 100644 --- a/src/main/java/com/hbm/items/machine/ItemBattery.java +++ b/src/main/java/com/hbm/items/machine/ItemBattery.java @@ -6,7 +6,6 @@ import com.hbm.items.ModItems; import com.hbm.util.BobMathUtil; import api.hbm.energy.IBatteryItem; -import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.creativetab.CreativeTabs; @@ -35,14 +34,14 @@ public class ItemBattery extends Item implements IBatteryItem { charge = getCharge(itemstack); if(itemstack.getItem() != ModItems.fusion_core && itemstack.getItem() != ModItems.energy_core) { - list.add(I18nUtil.resolveKey("desc.item.battery.charge",BobMathUtil.getShortNumber(charge),BobMathUtil.getShortNumber(maxCharge))); + list.add("Energy stored: " + BobMathUtil.getShortNumber(charge) + "/" + BobMathUtil.getShortNumber(maxCharge) + "HE"); } else { String charge1 = BobMathUtil.getShortNumber((charge * 100) / this.maxCharge); - list.add(I18nUtil.resolveKey("desc.item.battery.chargePerc", charge1)); + list.add("Charge: " + charge1 + "%"); list.add("(" + BobMathUtil.getShortNumber(charge) + "/" + BobMathUtil.getShortNumber(maxCharge) + "HE)"); } - list.add(I18nUtil.resolveKey("desc.item.battery.chargeRate",BobMathUtil.getShortNumber(chargeRate))); - list.add(I18nUtil.resolveKey("desc.item.battery.dischargeRate",BobMathUtil.getShortNumber(dischargeRate))); + list.add("Charge rate: " + BobMathUtil.getShortNumber(chargeRate) + "HE/t"); + list.add("Discharge rate: " + BobMathUtil.getShortNumber(dischargeRate) + "HE/t"); } @Override diff --git a/src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java b/src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java index 5fb6e7a76..1a04a4649 100644 --- a/src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java +++ b/src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java @@ -4,7 +4,6 @@ import java.util.List; import com.hbm.items.ModItems; -import com.hbm.util.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -34,131 +33,132 @@ public class ItemMachineUpgrade extends Item { public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { if(this.type == UpgradeType.SPEED) { - list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[0]); - list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.speed",(15 * this.tier),(300 * this.tier),"","","","","","")[0]); - list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[1]); - list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.speed","","",(1 + this.tier),(625 * this.tier),"","","","")[1]); - list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[2]); - list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.speed",(25 * this.tier),(50 * this.tier),"","","","","","")[0]); - list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[3]); - list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.speed",(25 * this.tier),(300 * this.tier),"","","","","","")[0]); - list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[4]); - list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.speed",(25 * this.tier),(300 * this.tier),"","","","","","")[0]); - list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[5]); - list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.speed","","","","",(25 * this.tier),(25 * this.tier),"","")[2]); - list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[6]); - list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.speed",(20 * this.tier),(1000 * this.tier),"","","","","","")[0]); - list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[7]); - list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.speed","","","","","","",(1 + this.tier),"")[3]); - list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[8]); - list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.speed","","","","","","",(1 + this.tier),"")[3]); - list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[9]); - list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.speed","","","","","","","",(0.25 * (double)this.tier))[4]); + list.add(EnumChatFormatting.RED + "Mining Drill:"); + list.add("Delay -" + (15 * this.tier) + "% / Consumption +" + (300 * this.tier) + "HE/t"); + list.add(EnumChatFormatting.RED + "Laser Miner:"); + list.add("Delay ÷" + (1 + this.tier) + " / Consumption +" + (625 * this.tier) + "HE/t"); + list.add(EnumChatFormatting.RED + "Electric Furnace:"); + list.add("Delay -" + (25 * this.tier) + "% / Consumption +" + (50 * this.tier) + "HE/t"); + list.add(EnumChatFormatting.RED + "Assembly Machine:"); + list.add("Delay -" + (25 * this.tier) + "% / Consumption +" + (300 * this.tier) + "HE/t"); + list.add(EnumChatFormatting.RED + "Chemical Plant:"); + list.add("Delay -" + (25 * this.tier) + "% / Consumption +" + (300 * this.tier) + "HE/t"); + list.add(EnumChatFormatting.RED + "Oil Wells:"); + list.add("Delay -" + (25 * this.tier) + "% / Consumption +" + (25 * this.tier) + "%"); + list.add(EnumChatFormatting.RED + "Crystallizer:"); + list.add("Delay -" + (20 * this.tier) + "% / Consumption +" + (1000 * this.tier) + "HE/t"); + list.add(EnumChatFormatting.RED + "Cyclotron:"); + list.add("Speed x" + (1 + this.tier)); + list.add(EnumChatFormatting.RED + "Flare Stack:"); + list.add("Speed x" + (1 + this.tier)); + list.add(EnumChatFormatting.RED + "Maxwell:"); + list.add("Damage +" + (0.25 * (double)this.tier) + "dmg/t"); } if(this.type == UpgradeType.EFFECT) { - list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[0]); - list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.effect",this.tier,(80 * this.tier),"","","","","")[0]); - list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[6]); - list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.effect","","",(5 * this.tier),(1000 * this.tier),"","","")[1]); - list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[7]); - list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.effect","","","","",(100 - 100 / (this.tier + 1)),"","")[2]); - list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[8]); - list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.effect","","","","","",(100 * this.tier / 3),"")[3]); - list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[9]); - list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.effect","","","","","","",(3 * this.tier))[4]); + list.add(EnumChatFormatting.RED + "Mining Drill:"); + list.add("Radius +" + this.tier + "m / Consumption +" + (80 * this.tier) + "HE/t"); + list.add(EnumChatFormatting.RED + "Crystallizer:"); + list.add("+" + (5 * this.tier) + "% chance of not consuming an item / Acid consumption +" + (1000 * this.tier) + "mB"); + list.add(EnumChatFormatting.RED + "Cyclotron:"); + list.add("-" + (100 - 100 / (this.tier + 1)) + "% chance of incrementing overheat counter"); + list.add(EnumChatFormatting.RED + "Flare Stack:"); + list.add("+" + (100 * this.tier / 3) + "% power production"); + list.add(EnumChatFormatting.RED + "Maxwell:"); + list.add("Range +" + (3 * this.tier) + "m"); } if(this.type == UpgradeType.POWER) { - list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[0]); - list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.power",(30 * this.tier),(5 * this.tier),"","","","","")[0]); - list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[2]); - list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.power",(15 * this.tier),(10 * this.tier),"","","","","")[0]); - list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[3]); - list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.power",(30 * this.tier),(5 * this.tier),"","","","","")[0]); - list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[4]); - list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.power",(30 * this.tier),(5 * this.tier),"","","","","")[0]); - list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[5]); - list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.power","","",(25 * this.tier),(10 * this.tier),"","","")[1]); - list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[7]); - list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.power","","","","",(100 * this.tier),"","")[2]); - list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[9]); - list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.power","","","","","",(150 * this.tier),"")[3]); - list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.power","","","","","","",(1500 * this.tier))[4]); + list.add(EnumChatFormatting.RED + "Mining Drill:"); + list.add("Consumption -" + (30 * this.tier) + "HE/t / Delay +" + (5 * this.tier) + "%"); + list.add(EnumChatFormatting.RED + "Electric Furnace:"); + list.add("Consumption -" + (15 * this.tier) + "HE/t / Delay +" + (10 * this.tier) + "%"); + list.add(EnumChatFormatting.RED + "Assembly Machine:"); + list.add("Consumption -" + (30 * this.tier) + "HE/t / Delay +" + (5 * this.tier) + "%"); + list.add(EnumChatFormatting.RED + "Chemical Plant:"); + list.add("Consumption -" + (30 * this.tier) + "HE/t / Delay +" + (5 * this.tier) + "%"); + list.add(EnumChatFormatting.RED + "Oil Wells:"); + list.add("Consumption -" + (25 * this.tier) + "% / Delay +" + (10 * this.tier) + "%"); + list.add(EnumChatFormatting.RED + "Cyclotron:"); + list.add("Consumption -" + (100 * this.tier) + "kHE/t"); + list.add(EnumChatFormatting.RED + "Maxwell:"); + list.add("Consumption -" + (150 * this.tier) + "HE/t"); + list.add("Consumption when firing -" + (1500 * this.tier) + "HE/t"); } if(this == ModItems.upgrade_fortune_1) { - list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[0]); - list.add(I18nUtil.resolveKey("desc.item.upgrade.fortune","1","15")); + list.add(EnumChatFormatting.RED + "Mining Drill:"); + list.add("Fortune +1 / Delay +15"); } if(this == ModItems.upgrade_fortune_2) { - list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[0]); - list.add(I18nUtil.resolveKey("desc.item.upgrade.fortune","2","30")); + list.add(EnumChatFormatting.RED + "Mining Drill:"); + list.add("Fortune +2 / Delay +30"); } if(this == ModItems.upgrade_fortune_3) { - list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[0]); - list.add(I18nUtil.resolveKey("desc.item.upgrade.fortune","3","45")); + list.add(EnumChatFormatting.RED + "Mining Drill:"); + list.add("Fortune +3 / Delay +45"); } if(this.type == UpgradeType.AFTERBURN) { - list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[10]); - list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.afterburn",(this.tier + 1),(this.tier + 2),"","","")[0]); - list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[9]); - list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.afterburn","","",(this.tier * 3),"","")[1]); - list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[5]); - list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.afterburn","","","",(this.tier * 10),(this.tier * 50))[2]); + list.add(EnumChatFormatting.RED + "Turbofan:"); + list.add("Production x" + (this.tier + 1) + " / Consumption x" + (this.tier + 2)); + list.add(EnumChatFormatting.RED + "Maxwell:"); + list.add("Afterburn +" + (this.tier * 3) + "s"); + list.add(EnumChatFormatting.RED + "Oil Wells:"); + list.add("Burn " + (this.tier * 10) + "mB of gas for " + (this.tier * 50) + "HE/t"); } if(this == ModItems.upgrade_radius) { - list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[11]); - list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.forcefield","16","500")[0]); - list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.forcefield")[2]); + list.add(EnumChatFormatting.RED + "Forcefield Range Upgrade"); + list.add("Radius +16 / Consumption +500"); + list.add("Stacks to 16"); } if(this == ModItems.upgrade_health) { - list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[12]); - list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.forcefield","50","250")[1]); - list.add(I18nUtil.resolveKeyArray("desc.item.upgrade.forcefield")[2]); + list.add(EnumChatFormatting.RED + "Forcefield Health Upgrade"); + list.add("Max. Health +50 / Consumption +250"); + list.add("Stacks to 16"); } if(this == ModItems.upgrade_smelter) { - list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[13]); - list.add(I18nUtil.resolveKey("desc.item.upgrade.smelter")); + list.add(EnumChatFormatting.RED + "Mining Laser Upgrade"); + list.add("Smelts blocks. Easy enough."); } if(this == ModItems.upgrade_shredder) { - list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[13]); - list.add(I18nUtil.resolveKey("desc.item.upgrade.shredder")); + list.add(EnumChatFormatting.RED + "Mining Laser Upgrade"); + list.add("Crunches ores"); } if(this == ModItems.upgrade_centrifuge) { - list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[13]); - list.add(I18nUtil.resolveKey("desc.item.upgrade.centrifuge")); + list.add(EnumChatFormatting.RED + "Mining Laser Upgrade"); + list.add("Hopefully self-explanatory"); } if(this == ModItems.upgrade_crystallizer) { - list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[13]); - list.add(I18nUtil.resolveKey("desc.item.upgrade.crystallizer")); + list.add(EnumChatFormatting.RED + "Mining Laser Upgrade"); + list.add("Your new best friend"); } if(this == ModItems.upgrade_screm) { - list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[13]); - for(String s : I18nUtil.resolveKeyArray("desc.item.upgrade.screm")) - list.add(s); + list.add(EnumChatFormatting.RED + "Mining Laser Upgrade"); + list.add("It's like in Super Mario where all blocks are"); + list.add("actually Toads, but here it's Half-Life scientists"); + list.add("and they scream. A lot."); } if(this == ModItems.upgrade_nullifier) { - list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[13]); - for(String s : I18nUtil.resolveKeyArray("desc.item.upgrade.nullifier")) - list.add(s); + list.add(EnumChatFormatting.RED + "Mining Laser Upgrade"); + list.add("50% chance to override worthless items with /dev/zero"); + list.add("50% chance to move worthless items to /dev/null"); } if(this == ModItems.upgrade_gc_speed) { - list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("desc.item.upgrade.machine")[14]); - for(String s : I18nUtil.resolveKeyArray("desc.item.upgrade.gc_speed")) - list.add(s); + list.add(EnumChatFormatting.RED + "Gas Centrifuge Upgrade"); + list.add("Allows for total isotopic separation of HEUF6"); + list.add(EnumChatFormatting.YELLOW + "also your centrifuge goes sicko mode"); } } diff --git a/src/main/java/com/hbm/items/machine/ItemPWRFuel.java b/src/main/java/com/hbm/items/machine/ItemPWRFuel.java index 70bd64d81..db802776a 100644 --- a/src/main/java/com/hbm/items/machine/ItemPWRFuel.java +++ b/src/main/java/com/hbm/items/machine/ItemPWRFuel.java @@ -4,7 +4,6 @@ import java.util.List; import com.hbm.items.ItemEnumMulti; import com.hbm.util.EnumUtil; -import com.hbm.util.I18nUtil; import com.hbm.util.function.Function; import com.hbm.util.function.Function.FunctionLogarithmic; import com.hbm.util.function.Function.FunctionSqrt; @@ -56,7 +55,10 @@ public class ItemPWRFuel extends ItemEnumMulti { EnumPWRFuel num = EnumUtil.grabEnumSafely(EnumPWRFuel.class, stack.getItemDamage()); String color = EnumChatFormatting.GOLD + ""; - for(String s : I18nUtil.resolveKeyArray("trait.pwr_fuel" , num.heatEmission, num.function.getLabelForFuel(), num.function.getDangerFromFuel())) - list.add(color + s); + String reset = EnumChatFormatting.RESET + ""; + + list.add(color + "Heat per flux: " + reset + num.heatEmission + " TU"); + list.add(color + "Reacton function: " + reset + num.function.getLabelForFuel()); + list.add(color + "Fuel type: " + reset + num.function.getDangerFromFuel()); } } diff --git a/src/main/java/com/hbm/items/machine/ItemPlateFuel.java b/src/main/java/com/hbm/items/machine/ItemPlateFuel.java index 6f76853b2..f30978de9 100644 --- a/src/main/java/com/hbm/items/machine/ItemPlateFuel.java +++ b/src/main/java/com/hbm/items/machine/ItemPlateFuel.java @@ -4,7 +4,6 @@ import java.util.List; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; @@ -28,8 +27,10 @@ public class ItemPlateFuel extends ItemFuelRod { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - for(String s : I18nUtil.resolveKeyArray("trait.platefuel", getFunctionDesc(), BobMathUtil.getShortNumber(lifeTime))) - list.add(EnumChatFormatting.YELLOW + s); + + list.add(EnumChatFormatting.YELLOW + "[Research Reactor Plate Fuel]"); + list.add(EnumChatFormatting.DARK_AQUA + " " + getFunctionDesc()); + list.add(EnumChatFormatting.DARK_AQUA + " Yield of " + BobMathUtil.getShortNumber(lifeTime) + " events"); super.addInformation(itemstack, player, list, bool); } diff --git a/src/main/java/com/hbm/items/machine/ItemRBMKPellet.java b/src/main/java/com/hbm/items/machine/ItemRBMKPellet.java index 09f5a359a..e50dbcd66 100644 --- a/src/main/java/com/hbm/items/machine/ItemRBMKPellet.java +++ b/src/main/java/com/hbm/items/machine/ItemRBMKPellet.java @@ -5,7 +5,6 @@ import java.util.List; import com.hbm.items.special.ItemNuclearWaste; import com.hbm.main.MainRegistry; -import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.renderer.texture.IIconRegister; @@ -78,20 +77,20 @@ public class ItemRBMKPellet extends ItemNuclearWaste { super.addInformation(stack, player, list, bool); list.add(EnumChatFormatting.ITALIC + this.fullName); - list.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC + I18nUtil.resolveKeyArray("trait.rbmk_pellet")[0]); + list.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC + "Pellet for recycling"); int meta = rectify(stack.getItemDamage()); switch(meta % 5) { - case 0: list.add(EnumChatFormatting.GOLD + I18nUtil.resolveKeyArray("trait.rbmk_pellet")[1]); break; - case 1: list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("trait.rbmk_pellet")[2]); break; - case 2: list.add(EnumChatFormatting.GREEN + I18nUtil.resolveKeyArray("trait.rbmk_pellet")[3]); break; - case 3: list.add(EnumChatFormatting.DARK_GREEN + I18nUtil.resolveKeyArray("trait.rbmk_pellet")[4]); break; - case 4: list.add(EnumChatFormatting.DARK_GRAY + I18nUtil.resolveKeyArray("trait.rbmk_pellet")[5]); break; + case 0: list.add(EnumChatFormatting.GOLD + "Brand New"); break; + case 1: list.add(EnumChatFormatting.YELLOW + "Barely Depleted"); break; + case 2: list.add(EnumChatFormatting.GREEN + "Moderately Depleted"); break; + case 3: list.add(EnumChatFormatting.DARK_GREEN + "Highly Depleted"); break; + case 4: list.add(EnumChatFormatting.DARK_GRAY + "Fully Depleted"); break; } if(hasXenon(meta)) - list.add(EnumChatFormatting.DARK_PURPLE + I18nUtil.resolveKeyArray("trait.rbmk_pellet")[6]); + list.add(EnumChatFormatting.DARK_PURPLE + "High Xenon Poison"); } @Override diff --git a/src/main/java/com/hbm/items/machine/ItemRBMKRod.java b/src/main/java/com/hbm/items/machine/ItemRBMKRod.java index 9808cf170..960a84874 100644 --- a/src/main/java/com/hbm/items/machine/ItemRBMKRod.java +++ b/src/main/java/com/hbm/items/machine/ItemRBMKRod.java @@ -223,15 +223,15 @@ public class ItemRBMKRod extends Item { } public static enum EnumBurnFunc { - PASSIVE(EnumChatFormatting.DARK_GREEN + I18nUtil.resolveKeyArray("trait.rbmk.BurnFunc")[0]), //const, no reactivity - LOG_TEN(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("trait.rbmk.BurnFunc")[1]), //log10(x + 1) * reactivity * 50 - PLATEU(EnumChatFormatting.GREEN + I18nUtil.resolveKeyArray("trait.rbmk.BurnFunc")[2]), //(1 - e^(-x/25)) * reactivity * 100 - ARCH(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("trait.rbmk.BurnFunc")[3]), //x-(x²/1000) * reactivity - SIGMOID(EnumChatFormatting.GREEN + I18nUtil.resolveKeyArray("trait.rbmk.BurnFunc")[4]), //100 / (1 + e^(-(x - 50) / 10)) <- tiny amount of reactivity at x=0 ! - SQUARE_ROOT(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("trait.rbmk.BurnFunc")[5]), //sqrt(x) * 10 * reactivity - LINEAR(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("trait.rbmk.BurnFunc")[6]), //x * reactivity - QUADRATIC(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("trait.rbmk.BurnFunc")[7]), //x^2 / 100 * reactivity - EXPERIMENTAL(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("trait.rbmk.BurnFunc")[8]); //x * (sin(x) + 1) + PASSIVE(EnumChatFormatting.DARK_GREEN + "SAFE / PASSIVE"), //const, no reactivity + LOG_TEN(EnumChatFormatting.YELLOW + "MEDIUM / LOGARITHMIC"), //log10(x + 1) * reactivity * 50 + PLATEU(EnumChatFormatting.GREEN + "SAFE / EULER"), //(1 - e^(-x/25)) * reactivity * 100 + ARCH(EnumChatFormatting.RED + "DANGEROUS / NEGATIVE-QUADRATIC"), //x-(x²/1000) * reactivity + SIGMOID(EnumChatFormatting.GREEN + "SAFE / SIGMOID"), //100 / (1 + e^(-(x - 50) / 10)) <- tiny amount of reactivity at x=0 ! + SQUARE_ROOT(EnumChatFormatting.YELLOW + "MEDIUM / SQUARE ROOT"), //sqrt(x) * 10 * reactivity + LINEAR(EnumChatFormatting.RED + "DANGEROUS / LINEAR"), //x * reactivity + QUADRATIC(EnumChatFormatting.RED + "DANGEROUS / QUADRATIC"), //x^2 / 100 * reactivity + EXPERIMENTAL(EnumChatFormatting.RED + "EXPERIMENTAL / SINE SLOPE"); //x * (sin(x) + 1) public String title = ""; diff --git a/src/main/java/com/hbm/items/machine/ItemWatzPellet.java b/src/main/java/com/hbm/items/machine/ItemWatzPellet.java index 73971bb41..be5e0ad7f 100644 --- a/src/main/java/com/hbm/items/machine/ItemWatzPellet.java +++ b/src/main/java/com/hbm/items/machine/ItemWatzPellet.java @@ -9,7 +9,6 @@ import com.hbm.main.MainRegistry; import com.hbm.render.icon.RGBMutatorInterpolatedComponentRemap; import com.hbm.render.icon.TextureAtlasSpriteMutatable; import com.hbm.util.EnumUtil; -import com.hbm.util.I18nUtil; import com.hbm.util.function.Function; import com.hbm.util.function.Function.*; @@ -128,23 +127,23 @@ public class ItemWatzPellet extends ItemEnumMulti { if(this != ModItems.watz_pellet) return; EnumWatzType num = EnumUtil.grabEnumSafely(EnumWatzType.class, stack.getItemDamage()); - - list.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey("trait.watz_pellet", String.format(Locale.US, "%.1f", getDurabilityForDisplay(stack) * 100D))); + + list.add(EnumChatFormatting.GREEN + "Depletion: " + String.format(Locale.US, "%.1f", getDurabilityForDisplay(stack) * 100D) + "%"); String color = EnumChatFormatting.GOLD + ""; String reset = EnumChatFormatting.RESET + ""; if(num.passive > 0){ - list.add(color + I18nUtil.resolveKeyArray("trait.watz_pellet.passive")[0] + reset + num.passive); - list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("trait.watz_pellet.passive")[1]); + list.add(color + "Base fission rate: " + reset + num.passive); + list.add(EnumChatFormatting.RED + "Self-igniting!"); } - if(num.heatEmission > 0) list.add(color + I18nUtil.resolveKey("trait.watz_pellet.heatEmission") + reset + num.heatEmission + " TU"); + if(num.heatEmission > 0) list.add(color + "Heat per flux: " + reset + num.heatEmission + " TU"); if(num.burnFunc != null) { - list.add(color + I18nUtil.resolveKeyArray("trait.watz_pellet.burnFunc")[0] + reset + num.burnFunc.getLabelForFuel()); - list.add(color + I18nUtil.resolveKeyArray("trait.watz_pellet.burnFunc")[1] + reset + num.burnFunc.getDangerFromFuel()); + list.add(color + "Reacton function: " + reset + num.burnFunc.getLabelForFuel()); + list.add(color + "Fuel type: " + reset + num.burnFunc.getDangerFromFuel()); } - if(num.heatDiv != null) list.add(color + I18nUtil.resolveKey("trait.watz_pellet.heatDiv") + reset + num.heatDiv.getLabelForFuel() + " TU⁻¹"); - if(num.absorbFunc != null) list.add(color + I18nUtil.resolveKey("trait.watz_pellet.absorbFunc") + reset + num.absorbFunc.getLabelForFuel()); + if(num.heatDiv != null) list.add(color + "Thermal multiplier: " + reset + num.heatDiv.getLabelForFuel() + " TU⁻¹"); + if(num.absorbFunc != null) list.add(color + "Flux capture: " + reset + num.absorbFunc.getLabelForFuel()); } @Override diff --git a/src/main/java/com/hbm/items/special/ItemAMSCore.java b/src/main/java/com/hbm/items/special/ItemAMSCore.java index 68c12677f..6a4fb569f 100644 --- a/src/main/java/com/hbm/items/special/ItemAMSCore.java +++ b/src/main/java/com/hbm/items/special/ItemAMSCore.java @@ -5,7 +5,6 @@ import java.util.List; import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; -import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.player.EntityPlayer; @@ -29,26 +28,51 @@ public class ItemAMSCore extends Item { public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { if (this == ModItems.ams_core_sing) { - for(String s : I18nUtil.resolveKeyArray("item.ams_core_sing.desc")) - list.add(s); + list.add("A modified undefined state of spacetime"); + list.add("used to aid in inter-gluon fusion and"); + list.add("spacetime annihilation. Yes, this destroys"); + list.add("the universe itself, slowly but steadily,"); + list.add("but at least you can power your toaster with"); + list.add("this, so it's all good."); } if (this == ModItems.ams_core_wormhole) { - for(String s : I18nUtil.resolveKeyArray("item.ams_core_wormhole.desc")) - list.add(s); + list.add("A cloud of billions of nano-wormholes which"); + list.add("deliberately fail at tunneling matter from"); + list.add("another dimension, rather it converts all"); + list.add("that matter into pure energy. That means"); + list.add("you're actively contributing to the destruction"); + list.add("of another dimension, sucking it dry like a"); + list.add("juicebox."); + list.add("That dimension probably sucked, anyways. I"); + list.add("bet it was full of wasps or some crap, man,"); + list.add("I hate these things."); } if (this == ModItems.ams_core_eyeofharmony) { - for(String s : I18nUtil.resolveKeyArray("item.ams_core_eyeofharmony.desc")) - list.add(s); + list.add("A star collapsing in on itself, mere nanoseconds"); + list.add("away from being turned into a black hole,"); + list.add("frozen in time. If I didn't know better I"); + list.add("would say this is some deep space magic"); + list.add("bullcrap some guy made up to sound intellectual."); + list.add("Probably Steve from accounting. You still owe me"); + list.add("ten bucks."); } if (this == ModItems.ams_core_thingy) { if(MainRegistry.polaroidID == 11) { - list.add(I18nUtil.resolveKey("item.ams_core_thingy_hide.desc")); + list.add("Yeah I'm not even gonna question that one."); } else { - for(String s : I18nUtil.resolveKeyArray("item.ams_core_thingy.desc")) - list.add(s); + list.add("..."); + list.add("..."); + list.add("...am I even holding this right?"); + list.add("It's a small metal thing. I dunno where it's from"); + list.add("or what it does, maybe they found it on a"); + list.add("junkyard and sold it as some kind of antique"); + list.add("artifact. If it weren't for the fact that I can"); + list.add("actually stuff this into some great big laser"); + list.add("reactor thing, I'd probably bring it back to where"); + list.add("it belongs. In the trash."); } } } diff --git a/src/main/java/com/hbm/items/special/ItemGlitch.java b/src/main/java/com/hbm/items/special/ItemGlitch.java index f44dab7ec..9942c4754 100644 --- a/src/main/java/com/hbm/items/special/ItemGlitch.java +++ b/src/main/java/com/hbm/items/special/ItemGlitch.java @@ -13,7 +13,6 @@ import com.hbm.lib.ModDamageSource; import com.hbm.main.MainRegistry; import api.hbm.energy.IBatteryItem; -import com.hbm.util.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.item.Item; @@ -40,10 +39,10 @@ public class ItemGlitch extends Item implements IBatteryItem { if(!world.isRemote) switch(itemRand.nextInt(31)) { case 0: - player.addChatMessage(new ChatComponentText(I18nUtil.resolveKeyArray("item.glitch.message")[0])); + player.addChatMessage(new ChatComponentText("Sorry nothing.")); break; case 1: - player.addChatMessage(new ChatComponentText(I18nUtil.resolveKeyArray("item.glitch.message")[1])); + player.addChatMessage(new ChatComponentText("Prometheus was punished by the gods by giving the gift of knowledge to man. He was cast into the bowels of the earth and pecked by birds.")); break; case 2: player.attackEntityFrom(ModDamageSource.radiation, 1000); @@ -67,7 +66,7 @@ public class ItemGlitch extends Item implements IBatteryItem { break; case 8: player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_container, 10)); - player.addChatMessage(new ChatComponentText(I18nUtil.resolveKeyArray("item.glitch.message")[2])); + player.addChatMessage(new ChatComponentText("Oh, and by the way: The polaroid shifts reality. Things can be different if the polaroid is broken.")); break; case 9: player.inventory.addItemStackToInventory(new ItemStack(ModItems.nuke_advanced_kit, 1)); @@ -95,7 +94,7 @@ public class ItemGlitch extends Item implements IBatteryItem { player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_revolver_pip)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.bottle_sparkle)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.geiger_counter)); - player.addChatMessage(new ChatComponentText(I18nUtil.resolveKeyArray("item.glitch.message")[3])); + player.addChatMessage(new ChatComponentText("Have some free stuff. You'll need it for that one cryptic achievement.")); break; case 14: player.inventory.dropAllItems(); @@ -106,43 +105,43 @@ public class ItemGlitch extends Item implements IBatteryItem { player.inventory.addItemStackToInventory(new ItemStack(Blocks.dirt, 64)); break; case 16: - player.addChatMessage(new ChatComponentText(I18nUtil.resolveKeyArray("item.glitch.message")[4])); + player.addChatMessage(new ChatComponentText("v yvxr lbhe nggvghqr!")); break; case 17: - player.addChatMessage(new ChatComponentText(I18nUtil.resolveKeyArray("item.glitch.message")[5])); + player.addChatMessage(new ChatComponentText("89% of magic tricks are not magic. Technically, they are sorcery.")); break; case 18: player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_lever_action)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_20gauge, 12)); - player.addChatMessage(new ChatComponentText(I18nUtil.resolveKeyArray("item.glitch.message")[6])); + player.addChatMessage(new ChatComponentText("Here ya go.")); break; case 19: - player.addChatMessage(new ChatComponentText(I18nUtil.resolveKeyArray("item.glitch.message")[7])); + player.addChatMessage(new ChatComponentText("Ë")); break; case 20: - player.addChatMessage(new ChatComponentText(I18nUtil.resolveKeyArray("item.glitch.message")[8])); + player.addChatMessage(new ChatComponentText("Good day, I am text")); break; case 21: player.inventory.addItemStackToInventory(new ItemStack(ModItems.missile_nuclear)); - player.addChatMessage(new ChatComponentText(I18nUtil.resolveKeyArray("item.glitch.message")[9])); + player.addChatMessage(new ChatComponentText("73616d706c652074657874!")); break; case 22: - player.addChatMessage(new ChatComponentText(I18nUtil.resolveKeyArray("item.glitch.message")[10])); + player.addChatMessage(new ChatComponentText("Budget cuts, no effect for you.")); break; case 23: - player.addChatMessage(new ChatComponentText(I18nUtil.resolveKeyArray("item.glitch.message")[11])); + player.addChatMessage(new ChatComponentText("oof")); break; case 24: player.addPotionEffect(new PotionEffect(Potion.resistance.id, 60 * 20, 9)); - player.addChatMessage(new ChatComponentText(I18nUtil.resolveKeyArray("item.glitch.message")[12])); + player.addChatMessage(new ChatComponentText("Tank!")); break; case 25: player.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 60 * 20, 9)); - player.addChatMessage(new ChatComponentText(I18nUtil.resolveKeyArray("item.glitch.message")[13])); + player.addChatMessage(new ChatComponentText("More devastating than a falling boxcar!")); break; case 26: player.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 60 * 20, 9)); - player.addChatMessage(new ChatComponentText(I18nUtil.resolveKeyArray("item.glitch.message")[14])); + player.addChatMessage(new ChatComponentText("Ha!")); break; case 27: EntityVortex vortex = new EntityVortex(world, 2.5F); @@ -157,15 +156,15 @@ public class ItemGlitch extends Item implements IBatteryItem { mirv.posY = player.posY + 100; mirv.posZ = player.posZ; world.spawnEntityInWorld(mirv); - player.addChatMessage(new ChatComponentText(I18nUtil.resolveKeyArray("item.glitch.message")[15])); + player.addChatMessage(new ChatComponentText("Watch your head!")); break; case 29: ExplosionLarge.spawnBurst(world, player.posX, player.posY, player.posZ, 27, 3); - player.addChatMessage(new ChatComponentText(I18nUtil.resolveKeyArray("item.glitch.message")[16])); + player.addChatMessage(new ChatComponentText("Bam!")); break; case 30: player.inventory.addItemStackToInventory(new ItemStack(ModItems.plate_saturnite)); - player.addChatMessage(new ChatComponentText(I18nUtil.resolveKeyArray("item.glitch.message")[17])); + player.addChatMessage(new ChatComponentText("It's dangerous to go alone, take this!")); break; } @@ -177,62 +176,62 @@ public class ItemGlitch extends Item implements IBatteryItem { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[0]); + list.add("It's a gamble!"); list.add(""); switch(MainRegistry.polaroidID) { case 1: - list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[1]); + list.add("Click-click-click!"); break; case 2: - list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[2]); + list.add("Creek!"); break; case 3: - list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[3]); + list.add("Bzzzt!"); break; case 4: - list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[4]); + list.add("TS staring off into space."); break; case 5: - list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[5]); + list.add("BANG!!"); break; case 6: - list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[6]); + list.add("Woop!"); break; case 7: - list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[7]); + list.add("Poow!"); break; case 8: - list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[8]); + list.add("Pft!"); break; case 9: - list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[9]); + list.add("GF fgnevat bss vagb fcnpr."); break; case 10: - list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[10]); + list.add("Backup memory #8 on 1.44 million bytes."); break; case 11: - list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[11]); + list.add("PTANG!"); break; case 12: - list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[12]); + list.add("Bzzt-zrrt!"); break; case 13: - list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[13]); + list.add("Clang, click-brrthththrtrtrtrtrtr!"); break; case 14: - list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[14]); + list.add("KABLAM!"); break; case 15: - list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[15]); + list.add("PLENG!"); break; case 16: - list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[16]); + list.add("Wheeeeeeee-"); break; case 17: - list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[17]); + list.add("Thump."); break; case 18: - list.add(I18nUtil.resolveKeyArray("item.glitch.desc")[18]); + list.add("BANG! Choo-chooo! B A N G ! ! !"); break; } } diff --git a/src/main/java/com/hbm/items/special/ItemRag.java b/src/main/java/com/hbm/items/special/ItemRag.java index f94b5ba49..bb883f6eb 100644 --- a/src/main/java/com/hbm/items/special/ItemRag.java +++ b/src/main/java/com/hbm/items/special/ItemRag.java @@ -4,7 +4,6 @@ import java.util.List; import com.hbm.items.ModItems; -import com.hbm.util.I18nUtil; import net.minecraft.block.material.Material; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; @@ -40,7 +39,7 @@ public class ItemRag extends Item { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - for(String s : I18nUtil.resolveKeyArray("item.rag.desc")) - list.add(s); + list.add("Drop into water to make damp cloth."); + list.add("Right-click to urinate on the cloth."); } } diff --git a/src/main/java/com/hbm/items/special/ItemSoyuz.java b/src/main/java/com/hbm/items/special/ItemSoyuz.java index adfe591cd..7644a0880 100644 --- a/src/main/java/com/hbm/items/special/ItemSoyuz.java +++ b/src/main/java/com/hbm/items/special/ItemSoyuz.java @@ -4,7 +4,6 @@ import java.util.List; import com.hbm.lib.RefStrings; -import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.renderer.texture.IIconRegister; @@ -51,12 +50,12 @@ public class ItemSoyuz extends Item { @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { - list.add(I18nUtil.resolveKeyArray("item.missile_soyuz.desc")[0]); + list.add("Skin:"); switch(stack.getItemDamage()) { - case 0: list.add(EnumChatFormatting.GOLD + I18nUtil.resolveKeyArray("item.missile_soyuz.desc")[1]); break; - case 1: list.add(EnumChatFormatting.BLUE + I18nUtil.resolveKeyArray("item.missile_soyuz.desc")[2]); break; - case 2: list.add(EnumChatFormatting.GREEN + I18nUtil.resolveKeyArray("item.missile_soyuz.desc")[3]); break; + case 0: list.add(EnumChatFormatting.GOLD + "Original"); break; + case 1: list.add(EnumChatFormatting.BLUE + "Luna Space Center"); break; + case 2: list.add(EnumChatFormatting.GREEN + "Post War"); break; } } diff --git a/src/main/java/com/hbm/items/tool/ItemAnchorRemote.java b/src/main/java/com/hbm/items/tool/ItemAnchorRemote.java index 927ae5165..9fb384f23 100644 --- a/src/main/java/com/hbm/items/tool/ItemAnchorRemote.java +++ b/src/main/java/com/hbm/items/tool/ItemAnchorRemote.java @@ -7,7 +7,6 @@ import com.hbm.items.ModItems; import com.hbm.items.machine.ItemBattery; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -28,14 +27,14 @@ public class ItemAnchorRemote extends ItemBattery { charge = getCharge(itemstack); if(itemstack.getItem() != ModItems.fusion_core && itemstack.getItem() != ModItems.energy_core) { - list.add(I18nUtil.resolveKey("desc.item.battery.charge",BobMathUtil.getShortNumber(charge),BobMathUtil.getShortNumber(maxCharge))); + list.add("Energy stored: " + BobMathUtil.getShortNumber(charge) + "/" + BobMathUtil.getShortNumber(maxCharge) + "HE"); } else { String charge1 = BobMathUtil.getShortNumber((charge * 100) / this.maxCharge); - list.add(I18nUtil.resolveKey("desc.item.battery.chargePerc", charge1)); + list.add("Charge: " + charge1 + "%"); list.add("(" + BobMathUtil.getShortNumber(charge) + "/" + BobMathUtil.getShortNumber(maxCharge) + "HE)"); } - list.add(I18nUtil.resolveKey("desc.item.battery.chargeRate",BobMathUtil.getShortNumber(chargeRate))); + list.add("Charge rate: " + BobMathUtil.getShortNumber(chargeRate) + "HE/t"); } @Override diff --git a/src/main/java/com/hbm/items/tool/ItemCMStructure.java b/src/main/java/com/hbm/items/tool/ItemCMStructure.java index 415076832..6c46decee 100644 --- a/src/main/java/com/hbm/items/tool/ItemCMStructure.java +++ b/src/main/java/com/hbm/items/tool/ItemCMStructure.java @@ -7,7 +7,6 @@ import com.google.gson.stream.JsonWriter; import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.ModBlocks; import com.hbm.main.MainRegistry; -import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.BlockPos; import net.minecraft.block.Block; import net.minecraft.client.Minecraft; @@ -157,8 +156,10 @@ public class ItemCMStructure extends Item implements ILookOverlay { @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { super.addInformation(stack, player, list, ext); - for(String s : I18nUtil.resolveKeyArray("item.structure_custommachine.desc")) - list.add(EnumChatFormatting.YELLOW + s); + list.add(EnumChatFormatting.YELLOW + "Click Custom Machine Structure Positioning Anchor to"); + list.add(EnumChatFormatting.YELLOW + "Confirm the location of the custom machine core block."); + list.add(EnumChatFormatting.YELLOW + "Output all blocks between Position1 and Position2 with"); + list.add(EnumChatFormatting.YELLOW + "metadata to \"CMstructureOutput.txt\" in hbmConfig."); } @Override diff --git a/src/main/java/com/hbm/items/tool/ItemDetonator.java b/src/main/java/com/hbm/items/tool/ItemDetonator.java index c34742f75..201f60c5a 100644 --- a/src/main/java/com/hbm/items/tool/ItemDetonator.java +++ b/src/main/java/com/hbm/items/tool/ItemDetonator.java @@ -2,7 +2,6 @@ package com.hbm.items.tool; import java.util.List; -import com.hbm.util.I18nUtil; import org.apache.logging.log4j.Level; import com.hbm.config.GeneralConfig; @@ -22,12 +21,12 @@ public class ItemDetonator extends Item { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - for(String s : I18nUtil.resolveKeyArray("item.detonator.desc")) - list.add(s); + list.add("Shift right-click to set position,"); + list.add("right-click to detonate!"); if(itemstack.getTagCompound() == null) { - list.add(EnumChatFormatting.RED + I18nUtil.resolveKeyArray("item.detonator.pos.desc")[0]); + list.add(EnumChatFormatting.RED + "No position set!"); } else { - list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("item.detonator.pos.desc" , itemstack.stackTagCompound.getInteger("x") , itemstack.stackTagCompound.getInteger("y") , itemstack.stackTagCompound.getInteger("z"))[1]); + list.add(EnumChatFormatting.YELLOW + "Linked to " + itemstack.stackTagCompound.getInteger("x") + ", " + itemstack.stackTagCompound.getInteger("y") + ", " + itemstack.stackTagCompound.getInteger("z")); } } @@ -46,7 +45,7 @@ public class ItemDetonator extends Item { player.addChatMessage(ChatBuilder.start("[").color(EnumChatFormatting.DARK_AQUA) .nextTranslation(this.getUnlocalizedName() + ".name").color(EnumChatFormatting.DARK_AQUA) .next("] ").color(EnumChatFormatting.DARK_AQUA) - .next(I18nUtil.resolveKeyArray("desc.item.detonator")[0]).color(EnumChatFormatting.GREEN).flush()); + .next("Position set!").color(EnumChatFormatting.GREEN).flush()); } world.playSoundAtEntity(player, "hbm:item.techBoop", 2.0F, 1.0F); @@ -65,7 +64,7 @@ public class ItemDetonator extends Item { player.addChatMessage(ChatBuilder.start("[").color(EnumChatFormatting.DARK_AQUA) .nextTranslation(this.getUnlocalizedName() + ".name").color(EnumChatFormatting.DARK_AQUA) .next("] ").color(EnumChatFormatting.DARK_AQUA) - .next(I18nUtil.resolveKeyArray("desc.item.detonator")[1]).color(EnumChatFormatting.RED).flush()); + .next("No position set!").color(EnumChatFormatting.RED).flush()); } } else { int x = stack.stackTagCompound.getInteger("x"); diff --git a/src/main/java/com/hbm/items/tool/ItemMS.java b/src/main/java/com/hbm/items/tool/ItemMS.java index bcb3b7c7f..77495a356 100644 --- a/src/main/java/com/hbm/items/tool/ItemMS.java +++ b/src/main/java/com/hbm/items/tool/ItemMS.java @@ -7,7 +7,6 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.items.ModItems; -import com.hbm.util.I18nUtil; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; @@ -19,7 +18,7 @@ public class ItemMS extends Item { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(I18nUtil.resolveKey("item.mysteryshovel.desc")); + list.add("Lost but not forgotten"); } public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int i, float a, float b, float c) diff --git a/src/main/java/com/hbm/items/tool/ItemSwordMeteorite.java b/src/main/java/com/hbm/items/tool/ItemSwordMeteorite.java index bf8b970b3..eefbae55d 100644 --- a/src/main/java/com/hbm/items/tool/ItemSwordMeteorite.java +++ b/src/main/java/com/hbm/items/tool/ItemSwordMeteorite.java @@ -5,7 +5,6 @@ import java.util.List; import com.hbm.items.ModItems; -import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.player.EntityPlayer; @@ -27,63 +26,63 @@ public class ItemSwordMeteorite extends ItemSwordAbility { super.addInformation(stack, player, list, ext); if(this == ModItems.meteorite_sword) { - for(String s : I18nUtil.resolveKeyArray("item.meteorite_sword.desc")) - list.add(EnumChatFormatting.ITALIC + s); + list.add(EnumChatFormatting.ITALIC + "Forged from a fallen star"); + list.add(EnumChatFormatting.ITALIC + "Sharper than most terrestrial blades"); } if(this == ModItems.meteorite_sword_seared) { - for(String s : I18nUtil.resolveKeyArray("item.meteorite_sword_seared.desc")) - list.add(EnumChatFormatting.ITALIC + s); + list.add(EnumChatFormatting.ITALIC + "Fire strengthens the blade"); + list.add(EnumChatFormatting.ITALIC + "Making it even more powerful"); } if(this == ModItems.meteorite_sword_reforged) { - for(String s : I18nUtil.resolveKeyArray("item.meteorite_sword_reforged.desc")) - list.add(EnumChatFormatting.ITALIC + s); + list.add(EnumChatFormatting.ITALIC + "The sword has been reforged"); + list.add(EnumChatFormatting.ITALIC + "To rectify past imperfections"); } if(this == ModItems.meteorite_sword_hardened) { - for(String s : I18nUtil.resolveKeyArray("item.meteorite_sword_hardened.desc")) - list.add(EnumChatFormatting.ITALIC + s); + list.add(EnumChatFormatting.ITALIC + "Extremely high pressure has been used"); + list.add(EnumChatFormatting.ITALIC + "To harden the blade further"); } if(this == ModItems.meteorite_sword_alloyed) { - for(String s : I18nUtil.resolveKeyArray("item.meteorite_sword_alloyed.desc")) - list.add(EnumChatFormatting.ITALIC + s); + list.add(EnumChatFormatting.ITALIC + "Cobalt fills the fissures"); + list.add(EnumChatFormatting.ITALIC + "Strengthening the sword"); } if(this == ModItems.meteorite_sword_machined) { - for(String s : I18nUtil.resolveKeyArray("item.meteorite_sword_machined.desc")) - list.add(EnumChatFormatting.ITALIC + s); + list.add(EnumChatFormatting.ITALIC + "Advanced machinery was used"); + list.add(EnumChatFormatting.ITALIC + "To refine the blade even more"); } if(this == ModItems.meteorite_sword_treated) { - for(String s : I18nUtil.resolveKeyArray("item.meteorite_sword_treated.desc")) - list.add(EnumChatFormatting.ITALIC + s); + list.add(EnumChatFormatting.ITALIC + "Chemicals have been applied"); + list.add(EnumChatFormatting.ITALIC + "Making the sword more powerful"); } if(this == ModItems.meteorite_sword_etched) { - for(String s : I18nUtil.resolveKeyArray("item.meteorite_sword_etched.desc")) - list.add(EnumChatFormatting.ITALIC + s); + list.add(EnumChatFormatting.ITALIC + "Acids clean the material"); + list.add(EnumChatFormatting.ITALIC + "To make this the perfect sword"); } if(this == ModItems.meteorite_sword_bred) { - for(String s : I18nUtil.resolveKeyArray("item.meteorite_sword_bred.desc")) - list.add(EnumChatFormatting.ITALIC + s); + list.add(EnumChatFormatting.ITALIC + "Immense heat and radiation"); + list.add(EnumChatFormatting.ITALIC + "Compress the material"); } if(this == ModItems.meteorite_sword_irradiated) { - for(String s : I18nUtil.resolveKeyArray("item.meteorite_sword_irradiated.desc")) - list.add(EnumChatFormatting.ITALIC + s); + list.add(EnumChatFormatting.ITALIC + "The power of the Atom"); + list.add(EnumChatFormatting.ITALIC + "Gives the sword might"); } if(this == ModItems.meteorite_sword_fused) { - for(String s : I18nUtil.resolveKeyArray("item.meteorite_sword_fused.desc")) - list.add(EnumChatFormatting.ITALIC + s); + list.add(EnumChatFormatting.ITALIC + "This blade has met"); + list.add(EnumChatFormatting.ITALIC + "With the forces of the stars"); } if(this == ModItems.meteorite_sword_baleful) { - for(String s : I18nUtil.resolveKeyArray("item.meteorite_sword_baleful.desc")) - list.add(EnumChatFormatting.ITALIC + s); + list.add(EnumChatFormatting.ITALIC + "This sword has met temperatures"); + list.add(EnumChatFormatting.ITALIC + "Far beyond what normal material can endure"); } /* diff --git a/src/main/java/com/hbm/items/tool/ItemWand.java b/src/main/java/com/hbm/items/tool/ItemWand.java index d3a532941..9bb6dc6ca 100644 --- a/src/main/java/com/hbm/items/tool/ItemWand.java +++ b/src/main/java/com/hbm/items/tool/ItemWand.java @@ -2,7 +2,6 @@ package com.hbm.items.tool; import java.util.List; -import com.hbm.util.I18nUtil; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; @@ -16,20 +15,22 @@ public class ItemWand extends Item { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - for(String s : I18nUtil.resolveKeyArray( "item.wand_k.desc")) - list.add(s); + list.add("Creative-only item"); + list.add("\"Destruction brings creation\""); + list.add("(Set positions with right click,"); + list.add("set block with shift-right click!)"); if(itemstack.stackTagCompound != null && !(itemstack.stackTagCompound.getInteger("x") == 0 && itemstack.stackTagCompound.getInteger("y") == 0 && itemstack.stackTagCompound.getInteger("z") == 0)) { - list.add(I18nUtil.resolveKey("item.wand_k.pos" , itemstack.stackTagCompound.getInteger("x") , itemstack.stackTagCompound.getInteger("y") , itemstack.stackTagCompound.getInteger("z"))); + list.add("Pos: " + itemstack.stackTagCompound.getInteger("x") + ", " + itemstack.stackTagCompound.getInteger("y") + ", " + itemstack.stackTagCompound.getInteger("z")); } else { - list.add(I18nUtil.resolveKey("item.wand_k.null")); + list.add("Positions not set!"); } if(itemstack.stackTagCompound != null) - list.add(I18nUtil.resolveKey("item.wand_k.block" , Block.getBlockById(itemstack.stackTagCompound.getInteger("block")).getUnlocalizedName())); + list.add("Block saved: " + Block.getBlockById(itemstack.stackTagCompound.getInteger("block")).getUnlocalizedName()); } @Override diff --git a/src/main/java/com/hbm/items/tool/ItemWandS.java b/src/main/java/com/hbm/items/tool/ItemWandS.java index f2985ac02..ea7ba07fa 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandS.java +++ b/src/main/java/com/hbm/items/tool/ItemWandS.java @@ -3,7 +3,6 @@ package com.hbm.items.tool; import java.util.List; import java.util.Random; -import com.hbm.util.I18nUtil; import com.hbm.world.machine.FWatz; import com.hbm.world.machine.NuclearReactor; import com.hbm.world.machine.Watz; @@ -20,8 +19,10 @@ public class ItemWandS extends Item { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - for(String s : I18nUtil.resolveKeyArray( "item.wand_s.desc")) - list.add(s); + list.add("Creative-only item"); + list.add("\"Instant structures for everyone!\""); + list.add("(Cycle with shift-right click,"); + list.add("spawn structures with right click!)"); if(itemstack.stackTagCompound != null) { switch(itemstack.stackTagCompound.getInteger("building")) diff --git a/src/main/java/com/hbm/items/tool/WeaponSpecial.java b/src/main/java/com/hbm/items/tool/WeaponSpecial.java index ca10cc59a..c59daa016 100644 --- a/src/main/java/com/hbm/items/tool/WeaponSpecial.java +++ b/src/main/java/com/hbm/items/tool/WeaponSpecial.java @@ -12,7 +12,6 @@ import com.hbm.main.MainRegistry; import com.hbm.potion.HbmPotion; import com.hbm.util.ArmorUtil; -import com.hbm.util.I18nUtil; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.SharedMonsterAttributes; @@ -250,52 +249,58 @@ public class WeaponSpecial extends ItemSword { public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { if(this == ModItems.schrabidium_hammer) { - for(String s : I18nUtil.resolveKeyArray("item.schrabidium_hammer.desc")) - list.add(s); + list.add("Even though it says \"+1000000000"); + list.add("damage\", it's actually \"onehit anything\""); } if(this == ModItems.ullapool_caber) { - for(String s : I18nUtil.resolveKeyArray("item.ullapool_caber.desc")) - list.add(s); + list.add("High-yield Scottish face removal."); + list.add("A sober person would throw it..."); } if(this == ModItems.bottle_opener) { - for(String s : I18nUtil.resolveKeyArray("item.bottle_opener.desc")) - list.add(s); + list.add("My very own bottle opener."); + list.add("Use with caution!"); } if(this == ModItems.shimmer_sledge) { if(MainRegistry.polaroidID == 11) { - for(String s : I18nUtil.resolveKeyArray("item.shimmer_sledge.desc.hide")) - list.add(s); + list.add("shimmer no"); + list.add("drop that hammer"); + list.add("you're going to hurt somebody"); + list.add("shimmer no"); + list.add("shimmer pls"); } else { - list.add(I18nUtil.resolveKey("item.shimmer_sledge.desc")); + list.add("Breaks everything, even portals."); } } if(this == ModItems.shimmer_axe) { if(MainRegistry.polaroidID == 11) { - list.add(I18nUtil.resolveKey("item.shimmer_axe.desc.hide")); + list.add("shim's toolbox does an e-x-p-a-n-d"); } else { - list.add(I18nUtil.resolveKey("item.shimmer_axe.desc")); + list.add("Timber!"); } } if(this == ModItems.wrench) { - list.add(I18nUtil.resolveKey("item.wrench.desc")); + list.add("Mechanic Richard"); } if(this == ModItems.wrench_flipped) { - list.add(I18nUtil.resolveKey("item.wrench_flipped.desc")); + list.add("Wrench 2: The Wrenchening"); } if(this == ModItems.memespoon) { - for(String s : I18nUtil.resolveKeyArray("item.memespoon.desc")) - list.add(s); + list.add(EnumChatFormatting.DARK_GRAY + "Level 10 Shovel"); + list.add(EnumChatFormatting.AQUA + "Deals crits while the wielder is rocket jumping"); + list.add(EnumChatFormatting.RED + "20% slower firing speed"); + list.add(EnumChatFormatting.RED + "No random critical hits"); } if(this == ModItems.wood_gavel) { - list.add(I18nUtil.resolveKey("item.wood_gavel.desc")); + list.add("Thunk!"); } if(this == ModItems.lead_gavel) { - list.add(I18nUtil.resolveKey("item.lead_gavel.desc")); + list.add("You are hereby sentenced to lead poisoning."); } if(this == ModItems.diamond_gavel) { - for(String s : I18nUtil.resolveKeyArray("item.diamond_gavel.desc")) - list.add(s); + list.add("The joke! It makes sense now!!"); + list.add(""); + list.add(EnumChatFormatting.BLUE + "Deals as much damage as it needs to."); } } diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 5ce6be6ab..6b933db58 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -921,7 +921,6 @@ public class MainRegistry { World world = event.getServer().getEntityWorld(); RBMKDials.createDials(world); SiegeOrchestrator.createGameRules(world); - CompatHandler.createCompat(world); event.registerServerCommand(new CommandReloadRecipes()); event.registerServerCommand(new CommandDebugChunkLoad()); event.registerServerCommand(new CommandSatellites()); diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index dc43341b9..7e3226470 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -717,8 +717,9 @@ public class ModEventHandlerClient { } } else { - list.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC + I18nUtil.resolveKey("tooltip.show" , - EnumChatFormatting.YELLOW +"" + EnumChatFormatting.ITALIC + "LSHIFT")); + list.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC +"Hold <" + + EnumChatFormatting.YELLOW + "" + EnumChatFormatting.ITALIC + "LSHIFT" + + EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC + "> to display protection info"); } } @@ -732,12 +733,13 @@ public class ModEventHandlerClient { if(!Keyboard.isKeyDown(Keyboard.KEY_LSHIFT) && !(Minecraft.getMinecraft().currentScreen instanceof GUIArmorTable)) { - list.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC + I18nUtil.resolveKey("tooltip.armormodsshow" , - EnumChatFormatting.YELLOW +"" + EnumChatFormatting.ITALIC + "LSHIFT" )); + list.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC +"Hold <" + + EnumChatFormatting.YELLOW + "" + EnumChatFormatting.ITALIC + "LSHIFT" + + EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC + "> to display installed armor mods"); } else { - list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("tooltip.armormods")); + list.add(EnumChatFormatting.YELLOW + "Mods:"); ItemStack[] mods = ArmorModHandler.pryMods(stack); @@ -758,12 +760,12 @@ public class ModEventHandlerClient { List names = ItemStackUtil.getOreDictNames(stack); if(names.size() > 0) { - list.add(EnumChatFormatting.BLUE + I18nUtil.resolveKey("tooltip.oredict")); + list.add(EnumChatFormatting.BLUE + "Ore Dict:"); for(String s : names) { list.add(EnumChatFormatting.AQUA + " -" + s); } } else { - list.add(EnumChatFormatting.RED + I18nUtil.resolveKey("tooltip.oredict.null")); + list.add(EnumChatFormatting.RED + "No Ore Dict data!"); } } @@ -784,10 +786,10 @@ public class ModEventHandlerClient { list.add(""); if(entry.entry == EnumEntryType.ADD) - list.add(EnumChatFormatting.GOLD + I18nUtil.resolveKey("tooltip.customnuke",entry.value,entry.type)); + list.add(EnumChatFormatting.GOLD + "Adds " + entry.value + " to the custom nuke stage " + entry.type); if(entry.entry == EnumEntryType.MULT) - list.add(EnumChatFormatting.GOLD + I18nUtil.resolveKey("tooltip.customnukemultiplier",entry.value ,entry.type)); + list.add(EnumChatFormatting.GOLD + "Adds multiplier " + entry.value + " to the custom nuke stage " + entry.type); } try { diff --git a/src/main/java/com/hbm/packet/BufPacket.java b/src/main/java/com/hbm/packet/BufPacket.java index b2a158ef8..7ff502c9d 100644 --- a/src/main/java/com/hbm/packet/BufPacket.java +++ b/src/main/java/com/hbm/packet/BufPacket.java @@ -28,11 +28,17 @@ public class BufPacket implements IMessage { @Override public void fromBytes(ByteBuf buf) { + this.x = buf.readInt(); + this.y = buf.readInt(); + this.z = buf.readInt(); this.buf = buf; } @Override public void toBytes(ByteBuf buf) { + buf.writeInt(x); + buf.writeInt(y); + buf.writeInt(z); this.rec.serialize(buf); } diff --git a/src/main/java/com/hbm/packet/PacketDispatcher.java b/src/main/java/com/hbm/packet/PacketDispatcher.java index d56e9407a..9414d49a0 100644 --- a/src/main/java/com/hbm/packet/PacketDispatcher.java +++ b/src/main/java/com/hbm/packet/PacketDispatcher.java @@ -19,10 +19,6 @@ public class PacketDispatcher { wrapper.registerMessage(TEStructurePacket.Handler.class, TEStructurePacket.class, i++, Side.CLIENT); //Mining drill rotation for rendering wrapper.registerMessage(TEDrillPacket.Handler.class, TEDrillPacket.class, i++, Side.CLIENT); - //Mining drill torque for sounds - wrapper.registerMessage(TEDrillSoundPacket.Handler.class, TEDrillSoundPacket.class, i++, Side.CLIENT); - //Missile type for rendering - wrapper.registerMessage(TEMissilePacket.Handler.class, TEMissilePacket.class, i++, Side.CLIENT); //Fluid packet for GUI wrapper.registerMessage(TEFluidPacket.Handler.class, TEFluidPacket.class, i++, Side.CLIENT); //Sound packet that keeps client and server separated @@ -35,8 +31,6 @@ public class PacketDispatcher { wrapper.registerMessage(TESirenPacket.Handler.class, TESirenPacket.class, i++, Side.CLIENT); //Signals server to change ItemStacks wrapper.registerMessage(ItemDesignatorPacket.Handler.class, ItemDesignatorPacket.class, i++, Side.SERVER); - //Siren packet for looped sounds - wrapper.registerMessage(TERadarPacket.Handler.class, TERadarPacket.class, i++, Side.CLIENT); //Signals server to perform orbital strike, among other things wrapper.registerMessage(SatLaserPacket.Handler.class, SatLaserPacket.class, i++, Side.SERVER); //Universal package for sending small info packs back to server diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadar.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadar.java deleted file mode 100644 index 805e7c35c..000000000 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadar.java +++ /dev/null @@ -1,342 +0,0 @@ -package com.hbm.tileentity.machine; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.blocks.ModBlocks; -import com.hbm.config.WeaponConfig; -import com.hbm.extprop.HbmLivingProps; -import com.hbm.inventory.container.ContainerMachineRadar; -import com.hbm.inventory.gui.GUIMachineRadar; -import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityTickingBase; - -import api.hbm.energy.IEnergyUser; -import api.hbm.entity.IRadarDetectable; -import api.hbm.entity.IRadarDetectable.RadarTargetType; -import cpw.mods.fml.common.Optional; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.World; -import li.cil.oc.api.machine.Arguments; -import li.cil.oc.api.machine.Callback; -import li.cil.oc.api.machine.Context; -import li.cil.oc.api.network.SimpleComponent; - -@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityMachineRadar extends TileEntityTickingBase implements IEnergyUser, IGUIProvider, SimpleComponent { - - public List detectedEntities = new ArrayList(); - public List nearbyMissiles = new ArrayList(); - int pingTimer = 0; - int lastPower; - final static int maxTimer = 80; - - public boolean scanMissiles = true; - public boolean scanPlayers = true; - public boolean smartMode = true; - public boolean redMode = true; - - public boolean jammed = false; - - public float prevRotation; - public float rotation; - - public long power = 0; - public static final int maxPower = 100000; - - @Override - public String getInventoryName() { - return ""; - } - - @Override - public void updateEntity() { - - if(this.yCoord < WeaponConfig.radarAltitude) return; - - if(!worldObj.isRemote) { - - this.updateStandardConnections(worldObj, xCoord, yCoord, zCoord); - - nearbyMissiles.clear(); - - if(power > 0) { - allocateMissiles(); - power -= 500; - - if(power < 0) power = 0; - } - - if(this.lastPower != getRedPower()) worldObj.notifyBlocksOfNeighborChange(xCoord, yCoord, zCoord, getBlockType()); - - sendMissileData(); - lastPower = getRedPower(); - - if(worldObj.getBlock(xCoord, yCoord - 1, zCoord) != ModBlocks.muffler) { - - pingTimer++; - - if(power > 0 && pingTimer >= maxTimer) { - this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "hbm:block.sonarPing", 5.0F, 1.0F); - pingTimer = 0; - } - } - } else { - prevRotation = rotation; - if(power > 0) rotation += 5F; - - if(rotation >= 360) { - rotation -= 360F; - prevRotation -= 360F; - } - } - } - - public void handleButtonPacket(int value, int meta) { - - switch(meta) { - case 0: this.scanMissiles = !this.scanMissiles; break; - case 1: this.scanPlayers = !this.scanPlayers; break; - case 2: this.smartMode = !this.smartMode; break; - case 3: this.redMode = !this.redMode; break; - } - } - - private void allocateMissiles() { - - nearbyMissiles.clear(); - detectedEntities.clear(); - jammed = false; - - List list = worldObj.getEntitiesWithinAABBExcludingEntity(null, AxisAlignedBB.getBoundingBox(xCoord + 0.5 - WeaponConfig.radarRange, 0, zCoord + 0.5 - WeaponConfig.radarRange, xCoord + 0.5 + WeaponConfig.radarRange, 5000, zCoord + 0.5 + WeaponConfig.radarRange)); - - for(Entity e : list) { - - if(e.posY < yCoord + WeaponConfig.radarBuffer) - continue; - - if(e instanceof EntityLivingBase && HbmLivingProps.getDigamma((EntityLivingBase) e) > 0.001) { - this.jammed = true; - nearbyMissiles.clear(); - detectedEntities.clear(); - return; - } - - if(e instanceof EntityPlayer && this.scanPlayers) { - nearbyMissiles.add(new int[] { (int)e.posX, (int)e.posZ, RadarTargetType.PLAYER.ordinal(), (int)e.posY }); - detectedEntities.add(e); - } - - if(e instanceof IRadarDetectable && this.scanMissiles) { - nearbyMissiles.add(new int[] { (int)e.posX, (int)e.posZ, ((IRadarDetectable)e).getTargetType().ordinal(), (int)e.posY }); - - if(!this.smartMode || e.motionY <= 0) - detectedEntities.add(e); - } - } - } - - public int getRedPower() { - - if(!detectedEntities.isEmpty()) { - - /// PROXIMITY /// - if(redMode) { - - double maxRange = WeaponConfig.radarRange * Math.sqrt(2D); - - int power = 0; - - for(int i = 0; i < detectedEntities.size(); i++) { - - Entity e = detectedEntities.get(i); - double dist = Math.sqrt(Math.pow(e.posX - xCoord, 2) + Math.pow(e.posZ - zCoord, 2)); - int p = 15 - (int)Math.floor(dist / maxRange * 15); - - if(p > power) - power = p; - } - - return power; - - /// TIER /// - } else { - - int power = 0; - - for(int i = 0; i < nearbyMissiles.size(); i++) { - - if(nearbyMissiles.get(i)[2] + 1 > power) { - power = nearbyMissiles.get(i)[2] + 1; - } - } - - return power; - } - } - - return 0; - } - - private void sendMissileData() { - - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", power); - data.setBoolean("scanMissiles", scanMissiles); - data.setBoolean("scanPlayers", scanPlayers); - data.setBoolean("smartMode", smartMode); - data.setBoolean("redMode", redMode); - data.setBoolean("jammed", jammed); - data.setInteger("count", this.nearbyMissiles.size()); - - for(int i = 0; i < this.nearbyMissiles.size(); i++) { - data.setInteger("x" + i, this.nearbyMissiles.get(i)[0]); - data.setInteger("z" + i, this.nearbyMissiles.get(i)[1]); - data.setInteger("type" + i, this.nearbyMissiles.get(i)[2]); - data.setInteger("y" + i, this.nearbyMissiles.get(i)[3]); - } - - this.networkPack(data, 15); - } - - public void networkUnpack(NBTTagCompound data) { - - this.nearbyMissiles.clear(); - this.power = data.getLong("power"); - this.scanMissiles = data.getBoolean("scanMissiles"); - this.scanPlayers = data.getBoolean("scanPlayers"); - this.smartMode = data.getBoolean("smartMode"); - this.redMode = data.getBoolean("redMode"); - this.jammed = data.getBoolean("jammed"); - - int count = data.getInteger("count"); - - for(int i = 0; i < count; i++) { - - int x = data.getInteger("x" + i); - int z = data.getInteger("z" + i); - int type = data.getInteger("type" + i); - int y = data.getInteger("y" + i); - - this.nearbyMissiles.add(new int[] {x, z, type, y}); - } - } - - public long getPowerScaled(long i) { - return (power * i) / maxPower; - } - - @Override - public void setPower(long i) { - power = i; - } - - @Override - public long getPower() { - return power; - } - - @Override - public long getMaxPower() { - return maxPower; - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - this.power = nbt.getLong("power"); - this.scanMissiles = nbt.getBoolean("scanMissiles"); - this.scanPlayers = nbt.getBoolean("scanPlayers"); - this.smartMode = nbt.getBoolean("smartMode"); - this.redMode = nbt.getBoolean("redMode"); - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - nbt.setLong("power", power); - nbt.setBoolean("scanMissiles", scanMissiles); - nbt.setBoolean("scanPlayers", scanPlayers); - nbt.setBoolean("smartMode", smartMode); - nbt.setBoolean("redMode", redMode); - } - - @Override - public AxisAlignedBB getRenderBoundingBox() { - return TileEntity.INFINITE_EXTENT_AABB; - } - - @Override - @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { - return 65536.0D; - } - - // do some opencomputer stuff - - @Override - public String getComponentName() { - return "ntm_radar"; - } - - @Callback(direct = true) - @Optional.Method(modid = "OpenComputers") - public Object[] getEnergyInfo(Context context, Arguments args) { - return new Object[] {getPower(), getMaxPower()}; - } - - @Callback(direct = true) - @Optional.Method(modid = "OpenComputers") - public Object[] isJammed(Context context, Arguments args) { - return new Object[] {jammed}; - } - - @Callback(direct = true) - @Optional.Method(modid = "OpenComputers") - public Object[] getEntities(Context context, Arguments args) { //fuck fuck fuck - if(!jammed) { - List list = new ArrayList(); - list.add(detectedEntities.size()); // small header of how many entities in the list - for (Entity e : detectedEntities) { - list.add(e.posX); // positions - list.add(e.posY); - list.add(e.posZ); - list.add(e.motionX); - list.add(e.motionY); - list.add(e.motionZ); - list.add(e.rotationYaw); // just do rotation so you can calculate DOT - list.add(Math.sqrt(Math.pow(e.posX - xCoord, 2) + Math.pow(e.posZ - zCoord, 2))); // distance - boolean player = e instanceof EntityPlayer; - list.add(player); // isPlayer boolean - if(!player) // missile tier - list.add(((IRadarDetectable) e).getTargetType().ordinal()); - else // player name (hopefully) - list.add(((EntityPlayer) e).getDisplayName()); - } - return new Object[] {list}; // long-ass list (like 9 entries per entity) - } else { - return new Object[] {"Radar jammed!"}; - } - } - - @Override - public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new ContainerMachineRadar(player.inventory, this); - } - - @Override - @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GUIMachineRadar(player.inventory, this); - } -} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java index d5911b2a2..9e9061ff1 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java @@ -7,27 +7,45 @@ import java.util.function.Function; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; +import com.hbm.blocks.ModBlocks; +import com.hbm.config.WeaponConfig; import com.hbm.extprop.HbmLivingProps; +import com.hbm.interfaces.IControlReceiver; +import com.hbm.inventory.container.ContainerMachineRadarNT; import com.hbm.inventory.gui.GUIMachineRadarNT; +import com.hbm.inventory.gui.GUIMachineRadarNTSlots; +import com.hbm.items.ModItems; +import com.hbm.items.tool.ItemCoordinateBase; import com.hbm.lib.Library; +import com.hbm.main.MainRegistry; import com.hbm.tileentity.IConfigurableMachine; import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IRadarCommandReceiver; import com.hbm.tileentity.TileEntityMachineBase; -import com.hbm.util.Tuple.Pair; +import com.hbm.util.Tuple.Triplet; +import com.hbm.util.fauxpointtwelve.BlockPos; +import com.hbm.world.WorldUtil; +import api.hbm.energy.IEnergyUser; import api.hbm.entity.IRadarDetectable; import api.hbm.entity.IRadarDetectableNT; +import api.hbm.entity.IRadarDetectableNT.RadarScanParams; import api.hbm.entity.RadarEntry; +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import io.netty.buffer.ByteBuf; -import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.server.MinecraftServer; +import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraft.world.WorldServer; @@ -35,7 +53,7 @@ import net.minecraft.world.WorldServer; * Now with SmЯt™ lag-free entity detection! (patent pending) * @author hbm */ -public class TileEntityMachineRadarNT extends TileEntityMachineBase implements IGUIProvider, IConfigurableMachine { +public class TileEntityMachineRadarNT extends TileEntityMachineBase implements IEnergyUser, IGUIProvider, IConfigurableMachine, IControlReceiver { public boolean scanMissiles = true; public boolean scanShells = true; @@ -50,12 +68,21 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I public float rotation; public long power = 0; + + protected int pingTimer = 0; + protected int lastPower; + protected final static int maxTimer = 80; public static int maxPower = 100_000; public static int consumption = 500; public static int radarRange = 1_000; public static int radarBuffer = 30; public static int radarAltitude = 55; + public static int chunkLoadCap = 10; + public static boolean generateChunks = false; + + public byte[] map = new byte[40_000]; + public boolean clearFlag = false; public List entries = new ArrayList(); @@ -71,6 +98,8 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I radarRange = IConfigurableMachine.grab(obj, "I:radarRange", radarRange); radarBuffer = IConfigurableMachine.grab(obj, "I:radarBuffer", radarBuffer); radarAltitude = IConfigurableMachine.grab(obj, "I:radarAltitude", radarAltitude); + chunkLoadCap = IConfigurableMachine.grab(obj, "I:chunkLoadCap", chunkLoadCap); + generateChunks = IConfigurableMachine.grab(obj, "B:generateChunks", generateChunks); } @Override @@ -80,65 +109,108 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I writer.name("I:radarRange").value(radarRange); writer.name("I:radarBuffer").value(radarBuffer); writer.name("I:radarAltitude").value(radarAltitude); + writer.name("B:generateChunks").value(generateChunks); } public TileEntityMachineRadarNT() { - super(1); + super(10); } @Override public String getName() { - return ""; + return "container.radar"; } @Override public void updateEntity() { + if(this.map == null || this.map.length != 40_000) this.map = new byte[40_000]; + if(!worldObj.isRemote) { + this.power = Library.chargeTEFromItems(slots, 9, power, maxPower); + + if(worldObj.getTotalWorldTime() % 20 == 0) this.updateStandardConnections(worldObj, xCoord, yCoord, zCoord); + this.power = Library.chargeTEFromItems(slots, 0, power, maxPower); this.jammed = false; allocateTargets(); - this.networkPackNT(25); - } - } - - protected void allocateTargets() { - this.entries.clear(); - - if(this.yCoord < radarAltitude) return; - if(this.power <= consumption) return; - this.power -= consumption; - - int scan = this.scanRange(); - - for(Entity e : matchingEntities) { + if(this.lastPower != getRedPower()) { + this.markDirty(); + } + lastPower = getRedPower(); - if(e.dimension == worldObj.provider.dimensionId && Math.abs(e.posX - (xCoord + 0.5)) <= scan && Math.abs(e.posZ - (zCoord + 0.5)) <= scan && e.posY - yCoord < radarBuffer) { + if(worldObj.getBlock(xCoord, yCoord - 1, zCoord) != ModBlocks.muffler) { - if(e instanceof EntityLivingBase && HbmLivingProps.getDigamma((EntityLivingBase) e) > 0.001) { - this.jammed = true; - entries.clear(); - return; + pingTimer++; + + if(power > 0 && pingTimer >= maxTimer) { + this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "hbm:block.sonarPing", 5.0F, 1.0F); + pingTimer = 0; } - - for(Function, RadarEntry> converter : converters) { + } + + if(this.showMap) { + int chunkLoads = 0; + for(int i = 0; i < 100; i++) { + int index = (int) (worldObj.getTotalWorldTime() % 400) * 100 + i; + int iX = (index % 200) * radarRange * 2 / 200; + int iZ = index / 200 * radarRange * 2 / 200; - RadarEntry entry = converter.apply(new Pair(e, this)); - if(entry != null) { - this.entries.add(entry); - break; + int x = xCoord - radarRange + iX; + int z = zCoord - radarRange + iZ; + + if(worldObj.getChunkProvider().chunkExists(x >> 4, z >> 4)) { + this.map[index] = (byte) MathHelper.clamp_int(worldObj.getHeightValue(x, z), 50, 128); + } else { + if(this.map[index] == 0 && chunkLoads < chunkLoadCap) { + if(this.generateChunks) { + worldObj.getChunkFromChunkCoords(x >> 4, z >> 4); + this.map[index] = (byte) MathHelper.clamp_int(worldObj.getHeightValue(x, z), 50, 128); + chunkLoads++; + } else { + WorldUtil.provideChunk((WorldServer) worldObj, x >> 4, z >> 4); + this.map[index] = (byte) MathHelper.clamp_int(worldObj.getHeightValue(x, z), 50, 128); + if(worldObj.getChunkProvider().chunkExists(x >> 4, z >> 4)) chunkLoads++; + } + } } } } + + if(slots[8] != null && slots[8].getItem() == ModItems.radar_linker) { + BlockPos pos = ItemCoordinateBase.getPosition(slots[8]); + if(pos != null) { + TileEntity tile = worldObj.getTileEntity(pos.getX(), pos.getY(), pos.getZ()); + if(tile instanceof TileEntityMachineRadarScreen) { + TileEntityMachineRadarScreen screen = (TileEntityMachineRadarScreen) tile; + screen.entries.clear(); + screen.entries.addAll(this.entries); + screen.refX = xCoord; + screen.refY = yCoord; + screen.refZ = zCoord; + screen.linked = true; + } + } + } + + this.networkPackNT(50); + if(this.clearFlag) { + this.map = new byte[40_000]; + this.clearFlag = false; + } + } else { + prevRotation = rotation; + if(power > 0) rotation += 5F; + + if(rotation >= 360) { + rotation -= 360F; + prevRotation -= 360F; + } } } - protected int scanRange() { - return radarRange; - } - @Override public void serialize(ByteBuf buf) { buf.writeLong(this.power); @@ -151,6 +223,21 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I buf.writeBoolean(this.jammed); buf.writeInt(entries.size()); for(RadarEntry entry : entries) entry.toBytes(buf); + if(this.clearFlag) { + buf.writeBoolean(true); + } else { + buf.writeBoolean(false); + if(this.showMap) { + buf.writeBoolean(true); + short index = (short) (worldObj.getTotalWorldTime() % 400); + buf.writeShort(index); + for(int i = index * 100; i < (index + 1) * 100; i++) { + buf.writeByte(this.map[i]); + } + } else { + buf.writeBoolean(false); + } + } } @Override @@ -164,11 +251,193 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I this.showMap = buf.readBoolean(); this.jammed = buf.readBoolean(); int count = buf.readInt(); + this.entries.clear(); for(int i = 0; i < count; i++) { RadarEntry entry = new RadarEntry(); entry.fromBytes(buf); this.entries.add(entry); } + if(buf.readBoolean()) { // clear flag + this.map = new byte[40_000]; + } else { + if(buf.readBoolean()) { // map enabled + int index = buf.readShort(); + for(int i = index * 100; i < (index + 1) * 100; i++) { + this.map[i] = buf.readByte(); + } + } + } + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.power = nbt.getLong("power"); + this.scanMissiles = nbt.getBoolean("scanMissiles"); + this.scanShells = nbt.getBoolean("scanShells"); + this.scanPlayers = nbt.getBoolean("scanPlayers"); + this.smartMode = nbt.getBoolean("smartMode"); + this.redMode = nbt.getBoolean("redMode"); + this.showMap = nbt.getBoolean("showMap"); + if(nbt.hasKey("map")) this.map = nbt.getByteArray("map"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setLong("power", power); + nbt.setBoolean("scanMissiles", scanMissiles); + nbt.setBoolean("scanShells", scanShells); + nbt.setBoolean("scanPlayers", scanPlayers); + nbt.setBoolean("smartMode", smartMode); + nbt.setBoolean("redMode", redMode); + nbt.setBoolean("showMap", showMap); + nbt.setByteArray("map", map); + } + + protected void allocateTargets() { + this.entries.clear(); + + if(this.yCoord < radarAltitude) return; + if(this.power < consumption) return; + this.power -= consumption; + + int scan = this.scanRange(); + + RadarScanParams params = new RadarScanParams(this.scanMissiles, this.scanShells, this.scanPlayers, this.smartMode); + + for(Entity e : matchingEntities) { + + if(e.dimension == worldObj.provider.dimensionId && Math.abs(e.posX - (xCoord + 0.5)) <= scan && Math.abs(e.posZ - (zCoord + 0.5)) <= scan && e.posY - yCoord > radarBuffer) { + + if(e instanceof EntityLivingBase && HbmLivingProps.getDigamma((EntityLivingBase) e) > 0.001) { + this.jammed = true; + entries.clear(); + return; + } + + for(Function, RadarEntry> converter : converters) { + + RadarEntry entry = converter.apply(new Triplet(e, this, params)); + if(entry != null) { + this.entries.add(entry); + break; + } + } + } + } + } + + public int getRedPower() { + + if(!entries.isEmpty()) { + + /// PROXIMITY /// + if(redMode) { + + double maxRange = WeaponConfig.radarRange * Math.sqrt(2D); + int power = 0; + + for(int i = 0; i < entries.size(); i++) { + RadarEntry e = entries.get(i); + if(!e.redstone) continue; + double dist = Math.sqrt(Math.pow(e.posX - xCoord, 2) + Math.pow(e.posZ - zCoord, 2)); + int p = 15 - (int)Math.floor(dist / maxRange * 15); + + if(p > power) power = p; + } + + return power; + + /// TIER /// + } else { + + int power = 0; + + for(int i = 0; i < entries.size(); i++) { + RadarEntry e = entries.get(i); + if(!e.redstone) continue; + if(e.blipLevel + 1 > power) { + power = e.blipLevel + 1; + } + } + + return power; + } + } + + return 0; + } + + protected int scanRange() { + return radarRange; + } + + @Override + public void setPower(long i) { + power = i; + } + + @Override + public long getPower() { + return power; + } + + @Override + public long getMaxPower() { + return maxPower; + } + + @Override + public boolean hasPermission(EntityPlayer player) { + return this.isUseableByPlayer(player); + } + + @Override public void receiveControl(NBTTagCompound data) { } + + @Override + public void receiveControl(EntityPlayer player, NBTTagCompound data) { + + if(data.hasKey("missiles")) this.scanMissiles = !this.scanMissiles; + if(data.hasKey("shells")) this.scanShells = !this.scanShells; + if(data.hasKey("players")) this.scanPlayers = !this.scanPlayers; + if(data.hasKey("smart")) this.smartMode = !this.smartMode; + if(data.hasKey("red")) this.redMode = !this.redMode; + if(data.hasKey("map")) this.showMap = !this.showMap; + if(data.hasKey("clear")) this.clearFlag = true; + + if(data.hasKey("gui1")) FMLNetworkHandler.openGui(player, MainRegistry.instance, 1, worldObj, xCoord, yCoord, zCoord); + + if(data.hasKey("link")) { + int id = data.getInteger("link"); + ItemStack link = slots[id]; + + if(link != null && link.getItem() == ModItems.radar_linker) { + BlockPos pos = ItemCoordinateBase.getPosition(link); + + if(pos != null) { + TileEntity tile = worldObj.getTileEntity(pos.getX(), pos.getY(), pos.getZ()); + if(tile instanceof IRadarCommandReceiver) { + IRadarCommandReceiver rec = (IRadarCommandReceiver) tile; + + if(data.hasKey("launchEntity")) { + Entity entity = worldObj.getEntityByID(data.getInteger("launchEntity")); + if(entity != null) { + if(rec.sendCommandEntity(entity)) { + worldObj.playSoundAtEntity(player, "hbm:item.techBleep", 1.0F, 1.0F); + } + } + } else if(data.hasKey("launchPosX")) { + int x = data.getInteger("launchPosX"); + int z = data.getInteger("launchPosZ"); + if(rec.sendCommandPosition(x, yCoord, z)) { + worldObj.playSoundAtEntity(player, "hbm:item.techBleep", 1.0F, 1.0F); + } + } + } + } + } + } } AxisAlignedBB bb = null; @@ -192,22 +461,36 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I @Override @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { + public double getMaxRenderDistanceSquared() { return 65536.0D; } - @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return null; } + @Override + public boolean isUseableByPlayer(EntityPlayer player) { + if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) { + return false; + } else { + return player.getDistance(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <= 128; + } + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + if(ID == 1) return new ContainerMachineRadarNT(player.inventory, this); + return null; + } @Override @SideOnly(Side.CLIENT) public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GUIMachineRadarNT(this); + if(ID == 0) return new GUIMachineRadarNT(this); + if(ID == 1) return new GUIMachineRadarNTSlots(player.inventory, this); + return null; } /** List of lambdas that are supplied a Pair with the entity and radar in question to generate a RadarEntry The converters coming first have the highest priority */ - public static List, RadarEntry>> converters = new ArrayList(); + public static List, RadarEntry>> converters = new ArrayList(); public static List classes = new ArrayList(); public static List matchingEntities = new ArrayList(); @@ -218,7 +501,7 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I public static void updateSystem() { matchingEntities.clear(); - for(WorldServer world : Minecraft.getMinecraft().getIntegratedServer().worldServers) { + for(WorldServer world : MinecraftServer.getServer().worldServers) { for(Object entity : world.loadedEntityList) { for(Class clazz : classes) { if(clazz.isAssignableFrom(entity.getClass())) { @@ -241,21 +524,25 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I public static void registerConverters() { //IRadarDetectableNT converters.add(x -> { - Entity e = x.getKey(); + Entity e = x.getX(); if(e instanceof IRadarDetectableNT) { IRadarDetectableNT detectable = (IRadarDetectableNT) e; - if(detectable.canBeSeenBy(x.getValue())) return new RadarEntry(detectable, e); + if(detectable.canBeSeenBy(x.getY()) && detectable.paramsApplicable(x.getZ())) return new RadarEntry(detectable, e, detectable.suppliesRedstone(x.getZ())); } return null; }); //IRadarDetectable, Legacy converters.add(x -> { - if(x.getKey() instanceof IRadarDetectable) return new RadarEntry((IRadarDetectable) x.getKey(), x.getKey()); + Entity e = x.getX(); + RadarScanParams params = x.getZ(); + if(e instanceof IRadarDetectable && params.scanMissiles) { + return new RadarEntry((IRadarDetectable) e, e); + } return null; }); //Players converters.add(x -> { - if(x.getKey() instanceof EntityPlayer) return new RadarEntry((EntityPlayer) x.getKey()); + if(x.getX() instanceof EntityPlayer && x.getZ().scanPlayers) return new RadarEntry((EntityPlayer) x.getX()); return null; }); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorBreeding.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorBreeding.java index 1a44314c0..3a8cec7ca 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorBreeding.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorBreeding.java @@ -2,7 +2,6 @@ package com.hbm.tileentity.machine; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.machine.ReactorResearch; -import com.hbm.handler.CompatHandler; import com.hbm.inventory.container.ContainerMachineReactorBreeding; import com.hbm.inventory.gui.GUIMachineReactorBreeding; import com.hbm.inventory.recipes.BreederRecipes; @@ -16,7 +15,7 @@ import cpw.mods.fml.relauncher.SideOnly; import li.cil.oc.api.machine.Arguments; import li.cil.oc.api.machine.Callback; import li.cil.oc.api.machine.Context; -import li.cil.oc.api.network.SidedComponent; +import li.cil.oc.api.network.SimpleComponent; import net.minecraft.block.Block; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; @@ -28,8 +27,8 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SidedComponent", modid = "OpenComputers")}) -public class TileEntityMachineReactorBreeding extends TileEntityMachineBase implements SidedComponent, IGUIProvider { +@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) +public class TileEntityMachineReactorBreeding extends TileEntityMachineBase implements SimpleComponent, IGUIProvider { public int flux; public float progress; @@ -217,16 +216,11 @@ public class TileEntityMachineReactorBreeding extends TileEntityMachineBase impl } // do some opencomputer stuff - + @Override public String getComponentName() { return "breeding_reactor"; } - @Override - public boolean canConnectNode(ForgeDirection side) { - return (CompatHandler.canConnect(worldObj, side, this)); - } - @Callback @Optional.Method(modid = "OpenComputers") public Object[] getFlux(Context context, Arguments args) { diff --git a/src/main/java/com/hbm/util/function/Function.java b/src/main/java/com/hbm/util/function/Function.java index 0e82a7f07..9dd32272c 100644 --- a/src/main/java/com/hbm/util/function/Function.java +++ b/src/main/java/com/hbm/util/function/Function.java @@ -4,7 +4,6 @@ import java.util.Locale; import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; import net.minecraft.util.EnumChatFormatting; /** @@ -51,21 +50,21 @@ public abstract class Function { public FunctionLogarithmic(double level) { super(level); this.withOff(1D); } @Override public double effonix(double x) { return Math.log10(getX(x)) * level; } @Override public String getLabelForFuel() { return "log10(" + getXName(false) + ") * " + String.format(Locale.US, "%,.1f", this.level); } - @Override public String getDangerFromFuel() { return EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("trait.rbmk.BurnFunc")[1]; } + @Override public String getDangerFromFuel() { return EnumChatFormatting.YELLOW + "MEDIUM / LOGARITHMIC"; } } public static class FunctionPassive extends FunctionSingleArg { public FunctionPassive(double level) { super(level); } @Override public double effonix(double x) { return this.level; } @Override public String getLabelForFuel() { return "" + String.format(Locale.US, "%,.1f", this.level); } - @Override public String getDangerFromFuel() { return EnumChatFormatting.DARK_GREEN + I18nUtil.resolveKeyArray("trait.rbmk.BurnFunc")[0]; } + @Override public String getDangerFromFuel() { return EnumChatFormatting.DARK_GREEN + "SAFE / PASSIVE"; } } public static class FunctionSqrt extends FunctionSingleArg { public FunctionSqrt(double level) { super(level); } @Override public double effonix(double x) { return BobMathUtil.squirt(getX(x)) * this.level; } @Override public String getLabelForFuel() { return "sqrt(" + getXName(false) + ") * " + String.format(Locale.US, "%,.3f", this.level); } //not entirely correct but good enough - @Override public String getDangerFromFuel() { return EnumChatFormatting.YELLOW + I18nUtil.resolveKeyArray("trait.rbmk.BurnFunc")[5]; } + @Override public String getDangerFromFuel() { return EnumChatFormatting.YELLOW + "MEDIUM / SQUARE ROOT"; } } public static class FunctionSqrtFalling extends FunctionSqrt { @@ -79,7 +78,7 @@ public abstract class Function { public FunctionLinear(double level) { super(level); } @Override public double effonix(double x) { return getX(x) * this.level; } @Override public String getLabelForFuel() { return getXName(true) + " * " + String.format(Locale.US, "%,.1f", this.level); } - @Override public String getDangerFromFuel() { return EnumChatFormatting.RED + I18nUtil.resolveKeyArray("trait.rbmk.BurnFunc")[6]; } + @Override public String getDangerFromFuel() { return EnumChatFormatting.RED + "DANGEROUS / LINEAR"; } } public static class FunctionQuadratic extends FunctionDoubleArg { @@ -87,6 +86,6 @@ public abstract class Function { public FunctionQuadratic(double level, double vOff) { super(level, vOff); } @Override public double effonix(double x) { return getX(x) * getX(x) * this.level + this.vOff; } @Override public String getLabelForFuel() { return getXName(true) + "² * " + String.format(Locale.US, "%,.1f", this.level) + (vOff != 0 ? (" + " + String.format(Locale.US, "%,.1f", vOff)) : ""); } - @Override public String getDangerFromFuel() { return EnumChatFormatting.RED + I18nUtil.resolveKeyArray("trait.rbmk.BurnFunc")[7]; } + @Override public String getDangerFromFuel() { return EnumChatFormatting.RED + "DANGEROUS / QUADRATIC"; } } } diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 9da4ffbd0..696ebe517 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -131,7 +131,6 @@ achievement.ZIRNOXBoom=CIRNOX armor.blastProtection=Damage modifier of %s against explosions armor.cap=Hard damage cap of %s -armor.charge=Charge: %s / %s armor.damageModifier=Damage modifier of %s against %s armor.dash=Grants %s dashes armor.electricJetpack=Ion Jetpack @@ -165,42 +164,6 @@ armorMod.chestplates=Chestplates armorMod.helmets=Helmets armorMod.insertHere=Insert armor to modify... armorMod.leggings=Leggings -armorMod.slot=Slot: -armorMod.mod.auto=Imported from Japsterdam. -armorMod.mod.bandaid=3%% chance for full heal when damaged$ (3%% chance for full heal) -armorMod.mod.bathwater=Inflicts poison on the attacker$ (Poisons attackers) -armorMod.mod.charm=You feel blessed. -armorMod.mod.charm.protection=Diverts meteors away from the player.$Meteors no longer destroy blocks.$Halves broadcaster damage -armorMod.mod.charm.meteor=Disables meteorite spawning.$Negates broadcaster damage -armorMod.mod.cladding= rad-resistance$ radiation resistence) -armorMod.mod.defuser=Defuses nearby creepers$ (Defuses creepers) -armorMod.mod.gasmask=Gas protection$Will never protect against:$ (gas protection) -armorMod.mod.health= health$Nostalgia -armorMod.mod.Ink=10%% chance to nullify damage$Flowers!$ (10%% chance to nullify damage) -armorMod.mod.Insert=%% damage$%% projectile damage$%% explosion damage$%% speed$HP -armorMod.mod.Iron=+0.5 knockback resistance$ (+0.5 knockback resistence) -armorMod.mod.Knife=Pain.$ $Hurts, doesn't it? -armorMod.mod.Lens=Satellite Frequency: $ (Freq: %%d) -armorMod.mod.Lodestone=Attracts nearby items$Item attraction range: %%d$ (Magnetic range: %%d) -armorMod.mod.Milk=Removes bad potion effects$ (Removes bad potion effects) -armorMod.mod.MorningGlory=5%% chance to apply resistance when hit, wither immunity$ (5%% for resistance, wither immunity) -armorMod.mod.Obsidian=Makes dropped armor indestructible$ (Item indestructible) -armorMod.mod.Pads=%% fall damage$Passively charges electric armor when walking$%% fall dmg / passive charge) -armorMod.mod.Polish=5%% chance to nullify damage$ (5%% chance to nullify damage) -armorMod.mod.Quartz=Taking damage removes 10 RAD$ (-10 RAD when hit) -armorMod.mod.Revive= revives left -armorMod.mod.Revive.scrumpy=But how did you survive?$I was drunk. -armorMod.mod.Revive.wild_p=§8Explosive §cReactive "§8Plot §cArmor -armorMod.mod.Revive.fabsols_vodka=In the news:$§c§lMan literally too angry to die.$ $§o"I ain't got time to die" says local$man after ripping the physical manifestation$of disaster itself in half. -armorMod.mod.Sensor=Beeps near hazardous gasses$Works in the inventory or when applied to armor$ (Detects gasses) -armorMod.mod.Serum=Cures poison and gives strength$ (replaces poison with strength) -armorMod.mod.Servos=Chestplate: Haste I / Damage +50%%$Leggings: Speed +25%% / Jump II$ (Haste I / Damage +50%%)$ (Speed +25%% / Jump II) -armorMod.mod.Servos.desh=Chestplate: Haste III / Damage +150%%$Leggings: Speed +50%% / Jump III$ (Haste III / Damage +150%%)$ (Speed +50%% / Jump III) -armorMod.mod.Shackles=You will speak when I ask you to.$You will eat when I tell you to.$You will die when I allow you to.$∞ revives left$ (∞ revives left) -armorMod.mod.Tesla=Zaps nearby entities (requires full electric set)$ (zaps nearby entities) -armorMod.mod.TwoKick="I've had worse"$ (Shotgun punches) -armorMod.mod.V1=BLOOD IS FUEL$ (BLOOD IS FUEL) -armorMod.mod.WD40=Highly reduces damage taken by armor, +2 HP$ (-80%% armor wear / +2 HP) armorMod.type.boots=Boots armorMod.type.chestplate=Chestplate armorMod.type.cladding=Cladding @@ -903,7 +866,6 @@ death.attack.tau=%1$s was riddeled by %2$s using negatively charged tauons. death.attack.tauBlast=%1$s charged the XVL1456 for too long and was blown into pieces. death.attack.teleporter=%1$s was teleported into nothingness. -desc.block.blastinfo=Blast Resistance: %s desc.gui.assembler.warning=§cError:§r This machine requires an assembly template! desc.gui.chemplant.warning=§cError:§r This machine requires an chemistry template! desc.gui.gasCent.enrichment=§2Enrichment§r$Uranium enrichment requires cascades.$Two-centrifuge cascades will give$uranium fuel, four-centrifuge cascades$will give total separation. @@ -1018,7 +980,6 @@ desc.item.battery.charge=Charge: %s / %sHE desc.item.battery.chargePerc=Charge: %s%% desc.item.battery.chargeRate=Charge rate: %sHE/tick desc.item.battery.dischargeRate=Discharge rate: %sHE/tick -desc.item.detonator=Position set!$No position set! desc.item.durability=Durability: %s desc.item.grenade.fuse=Fuse: %s desc.item.grenade.fuseImpact=Impact @@ -1061,20 +1022,6 @@ desc.misc.noPos=No position set! desc.misc.pos=Set pos to: %s, %s, %s desc.misc.posSet=Position set! desc.item.wasteCooling=Cool in a Spent Fuel Pool Drum -desc.item.upgrade.machine=Mining Drill:§r$Laser Miner:$Electric Furnace:§r$Assembly Machine:§r$Chemical Plant:§r$Oil Wells:§r$Crystallizer:§r$Cyclotron:§r$Flare Stack:§r$Maxwell:§r$Turbofan:§r$Forcefield Range Upgrade§r$Forcefield Health Upgrade§r$Mining Laser Upgrade§r$Gas Centrifuge Upgrade§r$ -desc.item.upgrade.speed=Delay -%s%% / Consumption +%sHE/t$Delay ÷%s / Consumption +%sHE/t$Delay -%s%% / Consumption +%s%%$Speed x%s$Damage +%sdmg/t -desc.item.upgrade.effect=Radius +%sm / Consumption +%sHE/t$+%s%% chance of not consuming an item / Acid consumption +%smB$-%s%% chance of incrementing overheat counter$+%s%% power production$Range +%sm -desc.item.upgrade.power=Consumption -%sHE/t / Delay +%s%%$Consumption -%s%% / Delay +%s%%$Consumption -%skHE/t$Consumption -%sHE/t$Consumption when firing -%sHE/t -desc.item.upgrade.fortune=Fortune +%s / Delay +%s -desc.item.upgrade.afterburn=Production x%s / Consumption x%s$Afterburn +%ss$Burn %smB of gas for %sHE/t -desc.item.upgrade.forcefield=Radius +16 / Consumption +500$Max. Health +50 / Consumption +250$Stacks to 16 -desc.item.upgrade.smelter=Smelts blocks. Easy enough. -desc.item.upgrade.shredder=Crunches ores -desc.item.upgrade.centrifuge=Hopefully self-explanatory -desc.item.upgrade.crystallizer=Your new best friend -desc.item.upgrade.screm=It's like in Super Mario where all blocks are$actually Toads, but here it's Half-Life scientists$and they scream. A lot. -desc.item.upgrade.nullifier=50%% chance to override worthless items with /dev/zero$50%% chance to move worthless items to /dev/null -desc.item.upgrade.gc_speed=Allows for total isotopic separation of HEUF6$§ealso your centrifuge goes sicko mode desc.item.zirnoxBreedingRod=§2[ZIRNOX Breeding Rod]$§ePlace next to fuel rods to breed$§eLasts %d ticks desc.item.zirnoxRod=§a[ZIRNOX Fuel Rod]$§eGenerates %1$d heat per tick$§eLasts %2$d ticks @@ -1457,26 +1404,6 @@ hbmfluid.woodoil=Wood Oil hbmfluid.xenon=Xenon Gas hbmfluid.xpjuice=Experience Juice hbmfluid.xylene=BTX - -hbmfluid.Trait.Combustible=[Combustible]$Provides §c%sHE §6per bucket$Fuel grade: §c%s -hbmfluid.Trait.Combustible.FuelGrade=Low$Medium$High$Aviation$Gaseous -hbmfluid.Trait.Coolable=Thermal capacity: %s TU$Efficiency: %s%% -hbmfluid.Trait.Corrosive=[Strongly Corrosive]$[Corrosive] -hbmfluid.Trait.Flammable=[Flammable]$Provides §c%sTU §eper bucket -hbmfluid.Trait.Poison=[Toxic Fumes] -hbmfluid.Trait.PWRModerator=[PWR Flux Multiplier]$"Core flux %s%s%% -hbmfluid.Trait.Toxin=[Toxin] -hbmfluid.Trait.VentRadiation=[Radioactive] -hbmfluid.TraitSimple.Amat=[Antimatter] -hbmfluid.TraitSimple.Delicious=[Delicious] -hbmfluid.TraitSimple.Gaseous=[Gaseous] -hbmfluid.TraitSimple.Gaseous_ART=[Gaseous at Room Temperature] -hbmfluid.TraitSimple.LeadContainer=[Requires hazardous material tank to hold] -hbmfluid.TraitSimple.Leaded=[Leaded Fuel] -hbmfluid.TraitSimple.Liquid=[Liquid] -hbmfluid.TraitSimple.Plasma=[Plasma] -hbmfluid.TraitSimple.Viscous=[Viscous] - hbmpseudofluid.none=Empty hbmpseudofluid.heuf6=Highly Enriched UF6 hbmpseudofluid.meuf6=Medium Enriched UF6 @@ -1825,14 +1752,9 @@ item.ams_catalyst_strontium.name=Strontium Reaction Catalyst item.ams_catalyst_thorium.name=Thorium Reaction Catalyst item.ams_catalyst_tungsten.name=Tungsten Reaction Catalyst item.ams_core_eyeofharmony.name=Eye of Harmony (AMS/DFC Core) -item.ams_core_eyeofharmony.desc=A star collapsing in on itself, mere nanoseconds$away from being turned into a black hole,$frozen in time. If I didn't know better I$would say this is some deep space magic$bullcrap some guy made up to sound intellectual.$Probably Steve from accounting. You still owe me$ten bucks. item.ams_core_sing.name=Vibrant Singularity (AMS/DFC Core) -item.ams_core_sing.desc=A modified undefined state of spacetime$used to aid in inter-gluon fusion and$spacetime annihilation. Yes, this destroys$the universe itself, slowly but steadily,$but at least you can power your toaster with$this, so it's all good. item.ams_core_thingy.name=Thingy (AMS/DFC Core) -item.ams_core_thingy.desc=...$"...$...am I even holding this right?$It's a small metal thing. I dunno where it's from$or what it does, maybe they found it on a$junkyard and sold it as some kind of antique$artifact. If it weren't for the fact that I can$actually stuff this into some great big laser$reactor thing, I'd probably bring it back to where$it belongs. In the trash. -item.ams_core_thingy_hide.desc=Yeah I'm not even gonna question that one. item.ams_core_wormhole.name=Tiny Wormhole (AMS/DFC Core) -item.ams_core_wormhole.desc=A cloud of billions of nano-wormholes which$deliberately fail at tunneling matter from$another dimension, rather it converts all$that matter into pure energy. That means$you're actively contributing to the destruction$of another dimension, sucking it dry like a$juicebox.$That dimension probably sucked, anyways. I$bet it was full of wasps or some crap, man,$I hate these things. item.ams_focus_blank.name=Blank Stabilizer Focus item.ams_focus_booster.name=Boosting Stabilizer Focus item.ams_focus_booster.desc=Weaker restriction field and core energy injection:$More heat generation, extra energy. @@ -2044,7 +1966,6 @@ item.bottle_empty.name=Empty Bomb-Shaped Bottle item.bottle_mercury.name=Bottle of Mercury item.bottle_nuka.name=Bottle of Nuka Cola item.bottle_opener.name=Hbm's Own Self-Made Bottle Opener -item.bottle_opener.desc=My very own bottle opener.$Use with caution! item.bottle_quantum.name=Bottle of Nuka Cola Quantum item.bottle_rad.name=Bottle of S~Cola RAD item.bottle_sparkle.name=Bottle of S~Cola @@ -2199,7 +2120,6 @@ item.centrifuge_tower.name=Centrifuge Tower item.chainsaw.name=Chainsaw item.cheese.name=Cheese item.cheese_quesadilla.name=Cheese Quesadilla -item.cheese_quesadilla.desc=That's what a 50 year old yeast infection does to you. item.chemical_dye.black.name=Chemical Dye (Black) item.chemical_dye.blue.name=Chemical Dye (Blue) item.chemical_dye.brown.name=Chemical Dye (Brown) @@ -2442,7 +2362,6 @@ item.debris_graphite.name=Hot Graphite Chunk item.debris_metal.name=Broken Metal Bar item.debris_shrapnel.name=Walkway Shrapnel item.definitelyfood.name=TotallyNotDirt-Brand MRE -item.definitelyfood.desc=A'right, I got sick and tired of$having to go out, kill things just$to get food and not die, so here is $my absolutely genius solution:$ $Have some edible dirt. item.defuser.name=High-Tech Bomb Defusing Device item.defuser_gold.name=Golden Wire Cutter item.demon_core_closed.name=Closed Demon Core @@ -2457,15 +2376,12 @@ item.designator_arty_range.name=Long Range Artillery Remote item.designator_manual.name=Manual Target Designator item.designator_range.name=Long Range Target Designator item.detonator.name=Detonator -item.detonator.desc=Shift right-click to set position,$right-click to detonate! -item.detonator.pos.desc=No position set!$Linked to %s, %s, %s item.detonator_de.name=Dead Man's Explosive item.detonator_deadman.name=Dead Man's Detonator item.detonator_laser.name=Laser Detonator item.detonator_multi.name=Multi Detonator item.deuterium_filter.name=Deuterium Filter item.diamond_gavel.name=Diamond Gavel -item.diamond_gavel.desc=The joke! It makes sense now!!$ $§9Deals as much damage as it needs to. item.dieselsuit_boots.name=Diesel-Powered High Heels item.dieselsuit_helmet.name=Diesel-Powered Head-Mounted Environmental Sensor item.dieselsuit_legs.name=Diesel-Powered Leg Servos @@ -2649,8 +2565,6 @@ item.gem_volcanic.name=Volcanic Gem item.generator_front.name=Generator Front item.generator_steel.name=Generator Body item.glitch.name=Glitch -item.glitch.desc=It's a gamble!$Click-click-click!$Creek!$Bzzzt!$TS staring off into space.$BANG!!$Woop!$Poow!$Pft!$GF fgnevat bss vagb fcnpr.$Backup memory #8 on 1.44 million bytes.$PTANG!$Bzzt-zrrt!$Clang, click-brrthththrtrtrtrtrtr!$KABLAM!$PLENG!$Wheeeeeeee-$Thump.$BANG! Choo-chooo! B A N G ! ! ! -item.glitch.message=Sorry nothing.$Prometheus was punished by the gods by giving the gift of knowledge to man. He was cast into the bowels of the earth and pecked by birds.$Oh, and by the way: The polaroid shifts reality. Things can be different if the polaroid is broken.$Have some free stuff. You'll need it for that one cryptic achievement.$v yvxr lbhe nggvghqr!$89%% of magic tricks are not magic. Technically, they are sorcery.$Here ya go.$Ë$Good day, I am text$73616d706c652074657874!$Budget cuts, no effect for you.$oof$Tank!$More devastating than a falling boxcar!$Ha!$Watch your head!$Bam!$t's dangerous to go alone, take this! item.glowing_stew.name=Glowing Mushroom Stew item.glyphid_meat.name=Glyphid Meat item.glyphid_meat_grilled.name=Grilled Glyphid Meat @@ -2964,7 +2878,6 @@ item.ingot_schrabidium_fuel.name=Ingot of Schrabidium Fuel item.ingot_schraranium.name=Schraranium Ingot item.ingot_schraranium.desc=Made from uranium in a schrabidium transmutator item.ingot_semtex.name=Bar of Semtex -item.ingot_semtex.desc=Semtex H Plastic Explosive$Performant explosive for many applications.$Edible item.ingot_smore.name=S'more Ingot item.ingot_solinium.name=Solinium Ingot item.ingot_sr90.name=Strontium-90 Ingot @@ -3010,16 +2923,11 @@ item.iv_xp.name=Experience Bag item.iv_xp_empty.name=Empty Experience Bag item.jackt.name=Damn Stylish Ballistic Jacket item.jackt2.name=Damn Stylish Ballistic Jacket 2: Tokyo Drift -item.jetpack.desc=Can be worn on its own! item.jetpack_boost.name=Boostpack -item.jetpack_boost.desc=High-powered vectorized jetpack.$Highly increased fuel consumption. item.jetpack_break.name=Builder's Jetpack -item.jetpack_break.desc=Regular jetpack that will automatically hover mid-air.$Sneaking will stop hover mode.$Hover mode will consume less fuel and increase air-mobility. item.jetpack_fly.name=Jetpack -item.jetpack_fly.desc=Regular jetpack for simple upwards momentum. item.jetpack_tank.name=Jetpack Reserve Fuel Tank item.jetpack_vector.name=Vectored Jetpack -item.jetpack_vector.desc=High-mobility jetpack.$Higher fuel consumption. item.journal_bj.name=Whiskey Drenched Notebook item.journal_pip.name=Survivalist's Journal item.journal_silver.name=Contractor's Notes @@ -3041,9 +2949,7 @@ item.laser_crystal_digamma.name=Digamma Laser Crystal item.laser_crystal_dnt.desc=Dineutronium-Spark Fermion Supercrystal item.laser_crystal_dnt.name=Spark Laser Crystal item.lead_gavel.name=Leaden Gavel -item.lead_gavel.desc=You are hereby sentenced to lead poisoning. item.lemon.name="Lemon" -item.lemon.desc=Eh, good enough. item.letter.name=Express Mail item.levitation_unit.name=Gravity Manipulator item.lignite.name=Lignite @@ -3056,9 +2962,7 @@ item.liquidator_plate.name=Liquidator Suit Chestplate item.lithium.name=Lithium Cube item.lodestone.name=Lodestone item.loop_stew.name=IT Breakfast -item.loop_stew.desc=A very, very healthy breakfast. item.loops.name=Lööps -item.loops.desc=Brøther, may I have some lööps? item.loot_10.name=Size 10 Missile Loot Crate item.loot_15.name=Size 15 Missile Loot Crate item.loot_misc.name=General Missile Loot Crate @@ -3085,44 +2989,28 @@ item.mechanism_rifle_2.name=Advanced Rifle Mechanism item.mechanism_special.name=High-Tech Weapon Mechanism item.med_bag.name=Doctor's Bag item.med_ipecac.name=Ipecac Syrup -item.med_ipecac.desc=Bitter juice that will cause your stomach$to forcefully eject its contents. item.med_ptsd.name=PTSD Medication -item.med_ptsd.desc=This isn't even PTSD mediaction, it's just$Ipecac in a different bottle! item.med_schiziphrenia.name=Schizophrenia Medication -item.med_schiziphrenia.desc=Makes the voices go away. Just for a while.$ $...$Better not take it. item.medal_liquidator.name=Liquidator Medal item.meltdown_tool.name=Dyatlov Instant Meltdown Applicator item.memespoon.name=§eMarket Gardener -item.memespoon.desc=§8Level 10 Shovel$§bDeals crits while the wielder is rocket jumping$§c20%% slower firing speed$§cNo random critical hits item.memory.name=item.null.name item.mese_gavel.name=Mese Gavel item.mese_pickaxe.name=Mese Pickaxe item.meteor_charm.name=Meteor Charm item.meteor_remote.name=Meteorite Remote item.meteorite_sword.name=Meteorite Sword -item.meteorite_sword.desc=Forged from a fallen star$Sharper than most terrestrial blades item.meteorite_sword_seared.name=Meteorite Sword (Seared) -item.meteorite_sword_seared.desc=Fire strengthens the blade$Making it even more powerful item.meteorite_sword_reforged.name=Meteorite Sword (Reforged) -item.meteorite_sword_reforged.desc=The sword has been reforged$To rectify past imperfections item.meteorite_sword_hardened.name=Meteorite Sword (Hardened) -item.meteorite_sword_hardened.desc=Extremely high pressure has been used$To harden the blade further item.meteorite_sword_alloyed.name=Meteorite Sword (Alloyed) -item.meteorite_sword_alloyed.desc=Cobalt fills the fissures$Strengthening the sword item.meteorite_sword_machined.name=Meteorite Sword (Machined) -item.meteorite_sword_machined.desc=Advanced machinery was used$To refine the blade even more item.meteorite_sword_treated.name=Meteorite Sword (Treated) -item.meteorite_sword_treated.desc=Chemicals have been applied$Making the sword more powerful item.meteorite_sword_etched.name=Meteorite Sword (Etched) -item.meteorite_sword_etched.desc=Acids clean the material$To make this the perfect sword item.meteorite_sword_bred.name=Meteorite Sword (Bred) -item.meteorite_sword_bred.desc=Immense heat and radiation$Compress the material item.meteorite_sword_irradiated.name=Meteorite Sword (Irradiated) -item.meteorite_sword_irradiated.desc=The power of the Atom$Gives the sword might item.meteorite_sword_fused.name=Meteorite Sword (Fused) -item.meteorite_sword_fused.desc=This blade has met$With the forces of the stars item.meteorite_sword_baleful.name=Meteorite Sword (Baleful) -item.meteorite_sword_baleful.desc=This sword has met temperatures$Far beyond what normal material can endure item.mike_cooling_unit.name=Deuterium Cooling Unit item.mike_core.name=Uranium Coated Deuterium Tank item.mike_deut.name=Deuterium Tank @@ -3157,7 +3045,6 @@ item.missile_nuclear_cluster.name=Thermonuclear Missile item.missile_rain.name=Bomblet Rain item.missile_schrabidium.name=Schrabidium Missile item.missile_shuttle.name=Reliant Robin Space Shuttle -item.missile_shuttle.desc=Tonite, on bo''om gear:$James huffs leaded gasoline and$goes insane, Richard spends the$entire budget on a broken .PNG,$And I forget to set the infinite$Water tanks on our RBMK to flow$out, blowing up our entire base item.missile_skin_camo.name=Missile Skin: Camo item.missile_skin_color.desc=I can't find my missile anymore! item.missile_skin_desert.name=Missile Skin: Desert Camo @@ -3177,7 +3064,6 @@ item.missile_skin_soviet_glory.desc=услуга перевода недосту item.missile_skin_soviet_stank.name=Missile Skin: Soviet Stank item.missile_skin_soviet_stank.desc=This one's got the real 60's stank to it. item.missile_soyuz.name=Soyuz-FG -item.missile_soyuz.desc=Skin:$Original$Luna Space Center$Post War item.missile_soyuz_lander.name=Orbital Module item.missile_soyuz_lander.desc=Doubles as a crappy lander! item.missile_strong.name=Strong HE Missile @@ -3324,7 +3210,6 @@ item.multitool_miner.name=Power Fist (Extracting Mining Laser) item.multitool_silk.name=Power Fist (Silk Touch Claw) item.multitool_sky.name=Power Fist (Crack the Sky) item.mysteryshovel.name=Brittle Spade -item.mysteryshovel.desc=Lost but not forgotten item.n2_charge.name=Large Explosive Charge item.neutrino_lens.name=Neutrino Lens item.neutron_reflector.name=Neutron Reflector @@ -3508,7 +3393,6 @@ item.particle_strange.name=Strange Quark Capsule item.particle_tachyon.name=Tachyon Capsule item.parts_legendary.name=Legendary Parts item.peas.name=Peas -item.peas.desc=He accepts your offering. item.pedestal_steel.name=Steel Pedestal item.pellet_advanced.name=Advanced Watz Performance Improver item.pellet_antimatter.name=Antimatter Cluster @@ -3765,7 +3649,6 @@ item.primer_buckshot.name=Buckshot Primer (x12) item.protection_charm.name=Charm of Protection item.prototype_kit.name=Prototype Kit item.pudding.name=Pudding -item.pudding.desc=What if he did?$What if he didn't?$What if the world was made of pudding? item.pwr_fuel.bfb_am_mix.name=Fuel Grade Americium PWR BFB Rod item.pwr_fuel.bfb_pu241.name=Plutonium-241 PWR BFB Rod item.pwr_fuel.hea242.name=HEA-242 PWR Fuel Rod @@ -3819,7 +3702,6 @@ item.radaway_strong.name=Strong RadAway item.radx.name=Rad-X item.radx.desc=Increases radiation resistance by 0.2 (37%%) for 3 minutes item.rag.name=Cloth -item.rag.desc=Drop into water to make damp cloth.$Right-click to urinate on the cloth. item.rag_damp.name=Damp Cloth item.rag_piss.name=Piss-Soaked Rag item.rbmk_fuel_balefire.name=Balefire RBMK Fuel Rod @@ -4126,7 +4008,6 @@ item.schnitzel_vegan.name=Vegan Schnitzel item.schrabidium_axe.name=Schrabidium Axe item.schrabidium_boots.name=Schrabidium Boots item.schrabidium_hammer.name=Schrabidium Hammer -item.schrabidium_hammer.desc=Even though it says "+1000000000"$damage", it's actually "onehit anything" item.schrabidium_helmet.name=Schrabidium Helmet item.schrabidium_hoe.name=Schrabidium Hoe item.schrabidium_legs.name=Schrabidium Leggings @@ -4155,14 +4036,10 @@ item.servo_set.name=Servo Set item.servo_set_desh.name=Desh Servo Set item.shackles.name=Shackles item.shimmer_axe.name=Shimmer Axe -item.shimmer_axe.desc=Timber! -item.shimmer_axe.desc.hide=shim's toolbox does an e-x-p-a-n-d item.shimmer_axe_head.name=Heavy Axe Head item.shimmer_handle.name=Reinforced Polymer Handle item.shimmer_head.name=Heavy Hammer Head item.shimmer_sledge.name=Shimmer Sledge -item.shimmer_sledge.desc=Breaks everything, even portals. -item.shimmer_sledge.desc.hide=shimmer no$drop that hammer$you're going to hurt somebody$shimmer no$shimmer pls item.singularity.name=Singularity item.singularity_counter_resonant.name=Contained Counter-Resonant Singularity item.singularity_micro.name=Micro Singularity @@ -4284,7 +4161,6 @@ item.tank_waste_7.name=Mud Container item.tank_waste_8.name=Mud Container item.telepad.name=Telepad item.tem_flakes.name=Tem Flakes -item.tem_flakes.desc=Heals 2HP DISCOUNT FOOD OF TEM!!!$Heals 2HP food of tem$Heals food of tem (expensiv) item.template_folder.name=Machine Template Folder item.template_folder.desc=Machine Templates: Paper + Dye$Fluid IDs: Iron Plate + Dye$Press Stamps: Flat Stamp$Siren Tracks: Insulator + Steel Plate item.test_nuke_igniter.name=Igniter @@ -4338,9 +4214,7 @@ item.turret_rocket_ammo.name=Rocket Turret 2x4 Ammunition item.turret_spitfire_ammo.name=AA-Shell item.turret_tau_ammo.name=Tau Turret Uranium Ammo item.twinkie.name=Twinkie -item.twinkie.desc=Expired 600 years ago! item.ullapool_caber.name=Ullapool Caber -item.ullapool_caber.desc=High-yield Scottish face removal.$A sober person would throw it... item.undefined.name=Undefined item.upgrade_5g.name=5G Radiation Emitter Upgrade item.upgrade_afterburn_1.name=Afterburner Upgrade Mk.I @@ -4381,14 +4255,8 @@ item.v1.name=V1 item.volcanic_pickaxe.name=Molten Pickaxe item.wand_d.name=Debug Wand item.wand_k.name=Construction Wand -item.wand_k.block=Block saved: %s -item.wand_k.desc=Creative-only item$"Destruction brings creation"$(Set positions with right click,$set block with shift-right click!) -item.wand_k.null=Positions not set! -item.wand_k.pos=Pos: %s, %s, %s item.wand_s.name=Structure Wand -item.wand_s.desc=Creative-only item$"Instant structures for everyone!"$(Cycle with shift-right click,$spawn structures with right click!) item.structure_custommachine.name=Custom Machine Structure Output Wand -item.structure_custommachine.desc=Click Custom Machine Structure Positioning Anchor to$Confirm the location of the custom machine core block.$Output all blocks between Position1 and Position2 with$metadata to \"CMstructureOutput.txt\" in hbmConfig. item.warhead_buster_large.name=Large Bunker Buster Warhead item.warhead_buster_medium.name=Medium Bunker Buster Warhead item.warhead_buster_small.name=Small Bunker Buster Warhead @@ -4471,12 +4339,9 @@ item.wire_schrabidium.name=Schrabidium Wire item.wire_tungsten.name=Tungsten Wire item.wiring_red_copper.name=Cable Drum item.wood_gavel.name=Wooden Gavel -item.wood_gavel.desc=Thunk! item.wrench.name=Pipe Wrench -item.wrench.desc=Mechanic Richard item.wrench_archineer.name=Archineer's Wrench item.wrench_flipped.name=Blade on a Wrench -item.wrench_flipped.desc=Wrench 2: The Wrenchening item.xanax.name=NAXA Anti-Digamma Medication item.xanax.desc=Removes 500mDRX item.zirconium_legs.name=Zirconium Pants @@ -4840,7 +4705,6 @@ tile.cm_tank.alloy.name=Advanced Alloy Tank tile.cm_tank.desh.name=Desh Tank tile.cm_tank.steel.name=Steel Tank tile.cm_tank.tcalloy.name=Technetium Steel Tank -tile.cm_paperPress.name=Paper Press tile.cmb_brick.name=CMB Steel Tile tile.cmb_brick_reinforced.name=Reinforced CMB Bricks tile.compact_launcher.name=Compact Launch Pad @@ -5094,7 +4958,6 @@ tile.gneiss_brick.name=Schist Brick tile.gneiss_chiseled.name=Chiseled Schist tile.gneiss_tile.name=Schist Tile tile.gravel_diamond.name=Diamond Gravel -tile.gravel_diamond.desc=There is some kind of joke here,$but I can't quite tell what it is.$ $Update, 2020-07-04:$We deny any implications of a joke on$the basis that it was so severely unfunny$that people started stabbing their eyes out.$$Update, 2020-17-04:$As it turns out, "Diamond Gravel" was$never really a thing, rendering what might$have been a joke as totally nonsensical.$We apologize for getting your hopes up with$this non-joke that hasn't been made.$$i added an item for a joke that isn't even here, what am i, stupid? can't even tell the difference between gravel and a gavel, how did i not forget how to breathe yet? tile.gravel_obsidian.name=Crushed Obsidian tile.hadron_access.name=Particle Accelerator Access Terminal tile.hadron_analysis.name=Particle Accelerator Analysis Chamber Wall @@ -5225,7 +5088,6 @@ tile.machine_excavator.name=Large Mining Drill tile.machine_fel.name=FEL tile.machine_fensu.name=FEnSU tile.machine_flare.name=Flare Stack -tile.machine_flare.desc=Can burn fluids and vent gasses$Burns up to §c10mB/t$Vents up to §c50mB/t$ $§eFuel efficiency:$§e-Flammable Gasses: §c50%%$§e-Flammable Liquids: §c10%% tile.machine_fluidtank.name=Tank tile.machine_forcefield.name=Forcefield Emitter tile.machine_fraction_tower.name=Fractioning Tower @@ -5317,7 +5179,6 @@ tile.machine_zirnox.name=ZIRNOX Nuclear Reactor tile.marker_structure.name=Multiblock Structure Marker tile.mass_storage.name=Mass Storage Unit tile.meteor_battery.name=Starmetal Static Electricity Generator -tile.meteor_battery.desc=Provides infinite charge to tesla coils tile.meteor_brick.name=Meteor Bricks tile.meteor_brick_chiseled.name=Chiseled Meteor Bricks tile.meteor_brick_cracked.name=Cracked Meteor Bricks @@ -5337,18 +5198,14 @@ tile.ntm_dirt.name=Dirt tile.nuke_boy.name=Little Boy tile.nuke_custom.name=Custom Nuke tile.nuke_fleija.name=F.L.E.I.J.A. -tile.nuke_fleija.desc=Used in:$F.L.E.I.J.A. tile.nuke_fstbmb.name=Balefire Bomb tile.nuke_gadget.name=The Gadget tile.nuke_man.name=Fat Man tile.nuke_mike.name=Ivy Mike tile.nuke_n2.name=N² Mine -tile.nuke_n2.desc=Used in:$N² Mine tile.nuke_n45.name=N45 Naval Mine tile.nuke_prototype.name=The Prototype -tile.nuke_prototype.desc=It didn't have to be like this.$ $You monster. tile.nuke_solinium.name=The Blue Rinse -tile.nuke_solinium.desc=Used in:$Solinium Bomb tile.nuke_tsar.name=Tsar Bomba tile.oil_duct.name=Oil Pipe tile.oil_duct_solid.name=Coated Oil Pipe @@ -5407,7 +5264,6 @@ tile.ore_nether_uranium.name=Nether Uranium Ore tile.ore_nether_uranium_scorched.name=Scorched Nether Uranium Ore tile.ore_niter.name=Niter Ore tile.ore_oil.name=Oil Deposit -tile.ore_oil.desc=You weren't supposed to mine that.$Come on, get a derrick you doofus. tile.ore_oil_empty.name=Empty Oil Deposit tile.ore_oil_sand.name=Tar Sand tile.ore_random.name=%s Ore @@ -5522,7 +5378,6 @@ tile.reactor_element.name=Reactor Chamber tile.reactor_hatch.name=Reactor Access Hatch tile.reactor_inserter.name=Reactor Fuel Inserter tile.red_barrel.name=Explosive Barrel -tile.red_barrel.desc=Static fluid barrel tile.red_cable.name=Red Copper Cable tile.red_cable_classic.name=Red Copper Cable (Classic) tile.red_cable_gauge.name=Power Gauge @@ -5530,9 +5385,7 @@ tile.red_cable_gauge.desc=Cable that displays how much power$moves within the ne tile.red_cable_paintable.name=Paintable Red Copper Cable tile.red_connector.name=Electricity Connector tile.red_pylon.name=Electricity Pole -tile.red_pylon.desc=Connection Type: §eSingle$Connection Range: §e25m tile.red_pylon_large.name=Large Electricity Pylon -tile.red_pylon_large.desc=Connection Type: §eQuadruple$Connection Range: §e100m$This pylon requires a substation! tile.red_wire_coated.name=Coated Red Copper Cable tile.reinforced_brick.name=Reinforced Stone tile.reinforced_brick_stairs.name=Reinforced Stone Stairs @@ -5617,7 +5470,6 @@ tile.struct_scaffold.name=Launch Pad Scaffold Block tile.struct_soyuz_core.name=Soyuz Launcher Core Component tile.struct_watz_core.name=Watz Powerplant Core Component tile.substation.name=Substation -tile.substation.desc=Connection Type: §eQuadruple$Connection Range: §e20m tile.sulfuric_acid_block.name=Sulfuric Acid tile.taint.name=Taint tile.taint_barrel.name=IMP Residue Barrel @@ -5708,10 +5560,6 @@ trait.hydro=Hydroreactive trait.radioactive=Radioactive trait.radResistance=Radiation resistance: %s -trait.platefuel=[Research Reactor Plate Fuel]$§3 %s$§3 Yield of %s events -trait.pwr_fuel=Heat per flux: §r%s TU$Reacton function: §r%s$Fuel type: §r%s - -trait.rbmk.BurnFunc=SAFE / PASSIVE$MEDIUM / LOGARITHMIC$SAFE / EULER$DANGEROUS / NEGATIVE-QUADRATIC$SAFE / SIGMOID$MEDIUM / SQUARE ROOT$DANGEROUS / LINEAR$DANGEROUS / QUADRATIC$EXPERIMENTAL / SINE SLOPE trait.rbmk.coreTemp=Core temp: %s trait.rbmk.depletion=Depletion: %s trait.rbmk.diffusion=Diffusion: %s @@ -5748,21 +5596,8 @@ trait.rbmx.xenon=Lead poison: %s trait.rbmx.xenonBurn=Lead destruction function: %s trait.rbmx.xenonGen=Lead creation function: %s -trait.rbmk_pellet=Pellet for recycling$Brand New$Barely Depleted$Moderately Depleted$Highly Depleted$Fully Depleted$High Xenon Poison -trait.watz_pellet=Depletion: %s%% -trait.watz_pellet.passive=Base fission rate: $Self-igniting! -trait.watz_pellet.heatEmission=Heat per flux: -trait.watz_pellet.burnFunc=Reacton function: $Fuel type: -trait.watz_pellet.heatDiv=Thermal multiplier: -trait.watz_pellet.absorbFunc=Flux capture: - trait.tile.cluster=Drops only when broken by a player trait.tile.depth=Can only be destroyed by explosions -trait.tile.barrel.capacity=Capacity: %smB -trait.tile.barrel.hot=Can store hot fluids$Cannot store hot fluids -trait.tile.barrel.corrosive=Can store highly corrosive fluids$Can store corrosive fluids$Cannot store highly corrosive fluids properly$Cannot store corrosive fluids properly$Cannot store corrosive fluids -trait.tile.barrel.antimatter=Can store antimatter$Cannot store antimatter -trait.tile.barrel.leak=Leaky tool.ability.centrifuge=Auto-Centrifuge tool.ability.crystallizer=Auto-Crystallizer @@ -5776,15 +5611,6 @@ tool.ability.shredder=Auto-Shredder tool.ability.silktouch=Silk Touch tool.ability.smelter=Auto-Smelter -tooltip.armormods=Mods: -tooltip.armormodsshow=Hold < %s §8§o> to display installed armor mods§r -tooltip.block=Hold < %s §8§o> to display more info§r -tooltip.customnuke=Adds %s to the custom nuke stage %s -tooltip.customnukemultiplier=Adds multiplier %s to the custom nuke stage %s -tooltip.oredict=Ore Dict: -tooltip.oredict.null=No Ore Dict data! -tooltip.show=Hold < %s §8§o> to display protection info§r - turret.animals=Target Passive: %s turret.arty.artillery=§eArtillery Mode$Grace: 250m$Range: 3,000m turret.arty.cannon=§eCannon Mode$Grace: 32m$Range: 250m diff --git a/src/main/resources/assets/hbm/lang/zh_CN.lang b/src/main/resources/assets/hbm/lang/zh_CN.lang index 7610a1c62..4bd5871e0 100644 --- a/src/main/resources/assets/hbm/lang/zh_CN.lang +++ b/src/main/resources/assets/hbm/lang/zh_CN.lang @@ -52,13 +52,13 @@ achievement.fiend2=残忍2:更残忍 achievement.fiend=残忍 achievement.freytag.desc=英勇的救生员 achievement.freytag=弗雷塔格 -achievement.fusion.desc=氘核, 氚核和能量之舞. -achievement.fusion=热核聚变反应 -achievement.gasCent.desc=未浓缩的铀讨厌他! -achievement.gasCent=拉链式 +achievement.fusion.desc=氘核、海卫一与能量的舞蹈。 +achievement.fusion=聚合 +achievement.gasCent.desc=贫铀讨厌他! +achievement.gasCent=链式 achievement.goFish.desc=航海十字架 achievement.goFish=去钓鱼 -achievement.hidden.desc=使用一节坠落的车厢杀死一只污染爬行者 +achievement.hidden.desc=使用一节坠落的车厢杀死一只污染苦力怕 achievement.hidden=隐藏目录 achievement.horizonsBonus.desc=说实话,你到底怎么了 achievement.horizonsBonus=地平线! @@ -72,14 +72,14 @@ achievement.inferno.desc=“把它变成灰烬!这还不够!投更多的炸 achievement.inferno=食人行动 achievement.manhattan.desc=1945年8月6日 8:15 achievement.manhattan=曼哈顿计划 -achievement.meltdown.desc=你都走到了这一步,怎么还能把事情搞砸? -achievement.meltdown="快速"拆卸 -achievement.no9.desc="我希望我开采的铅能被用于你的绘画" -achievement.no9=老九号 -achievement.omega12.desc=解决在这个荒凉的的星球上继续生存的问题. -achievement.omega12=欧米伽-12号粒子加速器 -achievement.polymer.desc=美味,美味的微塑料. -achievement.polymer=特氟隆 聚四氟乙烯 +achievement.meltdown.desc=你走了这么远,怎么能把事情搞砸? +achievement.meltdown=快速非计划拆卸 +achievement.no9.desc=“我希望我开采的铅能被用在你的油漆里” +achievement.no9=旧数字9 +achievement.omega12.desc=解决在这个可怜的星球上继续生存的问题 +achievement.omega12=欧米茄-12粒子加速器 +achievement.polymer.desc=美味、美味的微塑料。 +achievement.polymer=特氟隆 achievement.potato.desc=你居然捅我!你怎—喔哦哦哦哦哦! achievement.potato=流氓AI achievement.radDeath.desc=居里夫人开创了放射性理论、放射性治疗和放射性死亡。。。。 @@ -124,32 +124,30 @@ achievement.watzBoom.desc=下次记得把毒泥浆容器清空 achievement.watzBoom=令人厌恶 achievement.watz.desc=可能包括Fólkvangr弗尔克范格场 achievement.watz=126号元素的力量 -achievement.witchtaunter.desc=那些怪胎什么都没发现! -achievement.witchtaunter=女巫陶恩特 -achievement.ZIRNOXBoom.desc=处理, 遍地都是, 残骸碎片 -achievement.ZIRNOXBoom=CIRNOX - -armor.blastProtection=只受%s的爆炸伤害 -armor.cap=硬伤上限 %s -armor.charge=电量: %s / %s -armor.damageModifier=只受%s的%s伤害 -armor.dash=提供 %s 次冲刺 -armor.electricJetpack=等离子推进器 +achievement.witchtaunter.desc=那些古怪的生物对你毫无兴趣! +achievement.witchtaunter=巫婆陶恩特 +achievement.ZIRNOXBoom.desc=处理, 看,满地是残骸碎片 +achievement.ZIRNOXBoom=锆诺克斯 +armor.blastProtection=修正 %s 的爆炸伤害 +armor.cap=伤害上限 %s +armor.damageModifier=修正 %s 对 %s 的伤害 +armor.dash=给予 %s 冲刺 +armor.electricJetpack=离子喷射背包 armor.explosionImmune=免疫除爆炸伤害外的一切伤害 armor.fasterReload=快速装填 armor.fastFall=快速降落 armor.fireproof=防火 -armor.fullSetBonus=完整套装增益: -armor.geigerHUD=内置盖格计数器 -armor.geigerSound=听觉式盖革计数器 -armor.glider=按下潜行以滑翔 -armor.gravity=重力效果调整为%s -armor.hardLanding=坠地AOE伤害 -armor.ignoreLimit=防御值不受防御值上限的影响 -armor.modifier=只受%s的一般伤害 +armor.fullSetBonus=全套效果: +armor.geigerHUD=盖革计数器HUD +armor.geigerSound=盖革计数器警报 +armor.glider=滑翔 +armor.gravity=重力修正 %s +armor.hardLanding=硬着陆 +armor.ignoreLimit=防御值不受防御上限的影响 +armor.modifier=伤害修正 %s armor.moreAmmo=更多弹药 -armor.nullDamage=免疫所有的%s伤害 -armor.projectileProtection=只受%s的弹射物伤害 +armor.nullDamage=免疫 %s 伤害 +armor.projectileProtection=免疫 %s 的弹射物伤害 armor.rocketBoots=火箭靴 armor.sprintBoost=冲刺辅助加速 armor.stepSize=步长:%s @@ -164,44 +162,8 @@ armorMod.chestplates=胸甲 armorMod.helmets=头盔 armorMod.insertHere=插入装甲以改装。。。 armorMod.leggings=护腿 -armorMod.slot=槽位: -armorMod.mod.auto=从日本进口. -armorMod.mod.bandaid=3%% 的几率让你受到伤害时HP回满$ (3%% 的几率HP回满) -armorMod.mod.bathwater=使攻击者中毒$ (让攻击者中毒) -armorMod.mod.charm=你感受到了祝福. -armorMod.mod.charm.protection=使陨石偏移以远离玩家.$陨石不再破坏方块.$将腐化广播的伤害减半 -armorMod.mod.charm.meteor=禁止陨石生成.$无视腐化广播的伤害 -armorMod.mod.cladding= 辐射抗性$ 辐射抗性) -armorMod.mod.defuser=拆除附近爬行者引信$ (拆除爬行者引信) -armorMod.mod.gasmask=有毒气体防护$绝对不会提供的危害防护:$ (有毒气体防护) -armorMod.mod.health= 生命值$怀旧 -armorMod.mod.Ink=10%% 的几率免疫伤害$花朵的护佑!$ (10%% 的几率免疫伤害) -armorMod.mod.Insert=%% 伤害$%% 弹射物伤害$%% 爆炸伤害$%% 移动速度$耐久 -armorMod.mod.Iron=+0.5 抗击退性$ (+0.5 抗击退性) -armorMod.mod.Knife=痛苦.$ $很疼, 不是吗? -armorMod.mod.Lens=卫星频道: $ (频道: %%d) -armorMod.mod.Lodestone=吸引附近的掉落物$掉落物吸引范围: %%d$ (磁力范围: %%d) -armorMod.mod.Milk=移除负面效果$ (移除负面效果) -armorMod.mod.MorningGlory=5%% 的几率在被击中时得到抗性提升效果, 免疫凋零效果$ (5%% 的几率得到抗性提升效果, 免疫凋零效果) -armorMod.mod.Obsidian=使掉落的盔甲坚不可摧$ (使掉落的盔甲坚不可摧) -armorMod.mod.Pads=%% 摔落伤害$行走时可为盔甲充电$%% 摔落伤害 / 行走时可为盔甲充电) -armorMod.mod.Polish=5%% 的几率免疫伤害$ (5%% 的几率免疫伤害) -armorMod.mod.Quartz=每受一次受到伤害将移除 10 RAD$ (每受一次受到伤害将移除10 RAD) -armorMod.mod.Revive= 条额外生命 -armorMod.mod.Revive.scrumpy=但,但你是怎么活下来的?$我当时喝醉了. -armorMod.mod.Revive.wild_p=§8爆炸 §c反应 §8局部 §c装甲 -armorMod.mod.Revive.fabsols_vodka=新闻:$§c§l一男子在极度愤怒的情况下拒绝死亡.$ $§o"我没这功夫去死" 该名当地$男子在把灾难本身在物理层面上的体现$撕成两半后如是说道. -armorMod.mod.Sensor=有危险气体在附近时发出蜂鸣音$在背包中或装配于装甲时工作$ (检测气体) -armorMod.mod.Serum=解除中毒效果并替换为力量效果$ (解除中毒效果并替换为力量效果) -armorMod.mod.Servos=装配于胸甲时: 给予 急迫 I / 伤害 +50%%$装配于护腿时: 移动速度 +25%% / 给予 跳跃提升 II$ (给予 急迫 I / 伤害 +50%%)$ (移动速度 +25%% / 给予 跳跃提升p II) -armorMod.mod.Servos.desh=装配于胸甲时: 给予 急迫 III / 伤害 +150%%$装配于护腿时: 移动速度d +50%% / 给予 跳跃提升 III$ (给予 急迫 III / 伤害e +150%%)$ (移动速度 +50%% / 给予 跳跃提升 III) -armorMod.mod.Shackles=我让你说话时,你才能说话.$我让你吃时,你才能吃.$我让你死时,你才能死.$∞ 条额外生命$ (∞ 条额外生命) -armorMod.mod.Tesla=电击附近的生物 (需要全套电动套装)$ (电击附近的生物) -armorMod.mod.TwoKick="我还有更糟的"$ (Shotgun punches) -armorMod.mod.V1=鲜血即是燃料$ (鲜血即是燃料) -armorMod.mod.WD40=-80%%对盔甲的耐久损耗度, +2 生命值$ (-80%% 对盔甲的耐久损耗度 / +2 生命值) -armorMod.type.boots=靴子配件 -armorMod.type.chestplate=胸甲配件 +armorMod.type.boots=靴子 +armorMod.type.chestplate=胸甲 armorMod.type.cladding=覆层 armorMod.type.helmet=头盔 armorMod.type.insert=插板 @@ -243,12 +205,11 @@ book.error.page5=§l错误类型:§r "错误_错误区段" §l描述:§r 粒子 book.error.title6=错误 0x06 [分析室过长] book.error.page6=§l错误类型:§r "错误_分析室过长" §l描述:§r 粒子已通过三个以上所需的有效分析室段。 §l修复方式:§r 确保环形加速器的分析室长度正好为3个方块, 直线加速器的分析室长度至少为2个方块。 还要检查粒子是否未通过分支或 环形加速器中的多个分析室。 book.error.title7=错误 0x07 [分析室过短] -book.error.page7=§l错误名称:§r "错误_分析室过短" §l说明:§r 粒子离开了分析室,尽管分析室不符合长度要求. §l解决方法:§r 确保环型加速器上的分析室正好有3格长. 有效的分析室部分没有线圈, 镀层完全由分析室壁/窗组成. 带有线圈的分析室会被视为普通加速部分. -book.error.title8=错误 0x08 [粒子与肖特基粒子二极管碰撞] -book.error.page8=§l错误名称:§r "错误_粒子与肖特基粒子二极管碰撞" §l说明:§r 该粒子与肖特基粒子二极管的非输入侧碰撞. §l解决方法:§r 检查二极管的方向配置是否正确. 粒子只能从带有绿色向内箭头的侧面进入二极管. -book.error.title9=错误 0x09 [转弯处分岔] -book.error.page9=§l错误名称:§r "错误_转弯处分岔" §l说明:§r 粒子已到达具有多个出口的转弯处. §l解决方法:§r 如果你的拐弯处是正常的, 检查所有需要的线圈是否都存在(即线圈层中没有孔). 如果转弯处打算进行分支, 则需要正确配置的肖特基粒子二极管. - +book.error.page7=§l错误类型:§r "错误_分析室过短" §l描述:§r 粒子已离开分析室,尽管不符合长度要求。 §l修复方式:§r 确保环形加速器上的分析室正好有3个方块长。 有效的分析段没有线圈,镀层完全由分析室壁/窗组成。 带有线圈的分析室被视为规则段。 +book.error.title8=错误 0x08 [二极管方向错误] +book.error.page8=§l错误类型:§r "错误_二极管方向错误" §l描述:§r 该粒子与肖特基粒子二极管的非输入侧碰撞。§l修复方式:§r 检查二极管的配置是否正确。 粒子只能从带有绿色向内箭头的侧面进入二极管。 +book.error.title9=错误 0x09 [多处分支] +book.error.page9=§l错误类型:§r "错误_多处分支" §l描述:§r 粒子到达具有多个出口的转弯处。§l修复方式:§r 如果你的对撞机是正常的,检查所有需要的线圈是否都存在(即线圈中没有缺漏)。如果转弯处打算进行分支,则需要正确放置的肖特基粒子二极管。 book.rbmk.cover=$我的第一个$RBMK石墨式反应堆:$建造一个$反应堆$的基础知识 book.rbmk.title1=介绍 book.rbmk.page1=§lRBMK石墨式反应堆§r是一个完全模块化的核反应堆. 与大多数其他反应堆不同的是, 该反应堆没有"多方块结构核心"和尺寸上的限制, 而反应堆的性能和效率仅取决于你是如何建造它的, 以及各个组件如何相互作用. @@ -260,15 +221,15 @@ book.rbmk.title4=控制棒 book.rbmk.page4=反应堆中的 §l控制棒§r 将减少中子通过它的数量. 完全插入时, 它会阻挡所有中子; 当插入一半时, 它只会阻挡一半中子. 控制棒用于调节反应堆的活跃状态和使其关闭. book.rbmk.title5=控制棒 - 使用 book.rbmk.title5.scale=0.9 -book.rbmk.page5=当前控制棒插入的程度将显示在GUI的中心. 边的彩色按钮将把控制棒添加到不同的颜色组中, 这对于在 §lRBMK石墨式反应堆§r 控制台上快速选择屏幕上不同区域的控制棒非常有用. 右侧的按钮允许您以每次25%%的增量手动插入. +book.rbmk.page5=当前控制棒插入的程度将显示在GUI的中心. 边的彩色按钮将把控制棒添加到不同的颜色组中, 这对于在 §lRBMK石墨式反应堆§r 控制台上快速选择屏幕上不同区域的控制棒非常有用. 右侧的按钮允许您以每次25%的增量手动插入. book.rbmk.title6=自动控制棒 book.rbmk.page6=§L自动控制棒§r 与常规控制棒几乎相同, 但它们不能手动调整, 而是根据当前温度来调整控制棒插入的程度. 使用哪种功能, 在多少的温度插入多少的深度必须被事先设定好. book.rbmk.title7=蒸汽管道 book.rbmk.page7=反应堆中的 §l蒸汽管道§r 是唯一能有效降低反应堆热水平的组件. 如果一个蒸汽管道组件的沸点高于其设定的蒸汽类型的沸点, 那么它将试图消耗尽可能多的水 并产生尽可能多的蒸汽来冷却到沸点以下. book.rbmk.title8=碳化钨中子反射器 -book.rbmk.page8=反应堆中的 §l碳化钨中子反射器§r 将阻止中子的通过, 相反, 中子将被反射回它们来自的燃料棒上. 这对于使用中子是有用的, 否则这些中子一旦离开反应堆就会被浪费掉. +book.rbmk.page8=反应堆中的 §l碳化钨中子反射器§r 将阻止中子的通过, 相反,中子将被反射回它们来自的燃料棒上. 这对于使用中子是有用的, 否则这些中子一旦离开反应堆就会被浪费掉. book.rbmk.title9=硼中子吸收器 -book.rbmk.page9=§l硼中子吸收器§r 只是阻挡中子. 被吸收的中子不会产生热量, 会被有效地吸收. 这有助于防止燃料棒发生过度反应从而超出临界值. +book.rbmk.page9=§l硼中子吸收器§r 只是阻挡中子. 被吸收的中子不会产生热量,会被有效地吸收. 这有助于防止燃料棒发生过度反应从而超出临界值. book.rbmk.title10=石墨慢化剂 book.rbmk.page10=§l石墨慢化剂§r 把穿过它的快中子转换成慢中子. 大多数核燃料反应释放出快中子, 而引起裂变需要慢中子, 所以强烈建议使用慢化剂. book.rbmk.title11=结构柱 @@ -276,164 +237,180 @@ book.rbmk.page11=§l结构柱§r 对中子没有任何影响也没有任何特 book.rbmk.title12=控制台 book.rbmk.page12=§lRBMK石墨式反应堆控制台§r 允许你远程控制反应堆. 使用 §lRBMK石墨式反应堆连接装置记录反应堆§r 然后潜行右击控制台就能把反应堆和控制台连接起来. 一个控制台只能控制15x15个组件, 对于大型反应堆可以使用多个控制台. book.rbmk.title13=控制台的使用 -book.rbmk.page13=单击屏幕上的组件将选择或取消选择它们. 使用彩色按钮, 可以快速选择该颜色组中的所有控制棒. 按钮“A”将选择所有控制棒, “X”将取消选择所有控制棒. +book.rbmk.page13=单击屏幕上的组件将选择或取消选择它们. 使用彩色按钮,可以快速选择该颜色组中的所有控制棒. 按钮“A”将选择所有控制棒, “X”将取消选择所有控制棒. book.rbmk.page14=在绿色框中输入一个介于0和100之间的数字, 然后按下旁边的按钮, 将所有选定的控制棒拔出程度设置到该位置. 按钮“AZ-5”将使所有控制棒完全插入. book.rbmk.title15=核燃料 book.rbmk.page15= §l核燃料§r 的反应取决于许多因素. 主要是 §l核燃料强度§r, §l氙中毒程度§r 和接收到的 §l中子数量§r. 氙元素会在核燃料的中子含量较低时积聚起来, 并在正常运行时燃烧殆尽. 中子的效率取决于其类型, 大多数核燃料 §l用慢中子轰击来裂变效果最好§r. book.rbmk.title16=熔毁 book.rbmk.page16=§4§l尽量避免发生, 你不会想让这样一场核灾难发生在你的存档或服务器里的. - -book.starter.cover=重建工业社会的$一本实业家$的指南 +book.starter.cover=重建$社会的实业家$指南 book.starter.title1=介绍 -book.starter.page1=如果你读到这篇文章, 那么很有可能社会已经以这样或那样的方式完全崩溃了. 政府,国家和权威已经是过去的概念——以及文明生活 的所有便利设施. 因此,本指南将告诉你如何通过重新创造过去的行业和 科学技术 来改善你自己的生活. -book.starter.title2=煤尘与芥子气 -book.starter.page2=虽然不可能预测世界在后世界末日时代的实际状态, 但目前形式的战争和工业活动不太可能没有结束. 为了保护自己的肺部, 一种有效且廉价的方法是在一些 §l布料§r上小便来制作一个 §l战壕版粗制防护面罩§r, 以保护你免受煤尘或芥子气的伤害, 以防你遇到其中任何一种情况. -book.starter.title3=砧与锻压机 -book.starter.page3=开始你的工业振兴的核心是一个§lE合前期的机械, 如组装机, 而火力锻压机将允许您制作无法用砧锤击在一起的板材, 金属线和电路. +book.starter.page1=如果你正在读这篇文章,很可能社会已经因这样或 那样的方式完全崩溃了。政府、国家和权威是过去的概念, 以及文明生活的所有便利设施。因此,本指南将 告诉您如何通过重新创造过去的行业和技术 来改善自己的生活,从而改变这种状况。 +book.starter.title2=煤和芥子气 +book.starter.page2=虽然无法预测世界末日后的实际状态, 但目前形式的战争和工业不太可能没有结束。 为了保护自己的肺部,一种有效且廉价的方法是 在§L布§r上小便,制作一个§L防毒面具§r, 以使你免受煤尘或芥子气的伤害. +book.starter.title3=铁砧和锻压机 +book.starter.page3=开始工业振兴的精髓是§l砧§r和§l火力锻压机§r. 铁砧将允许您手动组合早期机械,如组装机, 而火力锻压机将允许您制作 无法用铁砧制作的板材、电线和电路. book.starter.title4=模板 -book.starter.page4=为了将金属冲压成有用的 形状,组装成机器并进行化 学反应,您需要创建一个 §l机器模板文件夹§r来制造右 侧显示的各种冲压和模板. -book.starter.title5=拾荒 -book.starter.page5=根据最初的世界末日事件对世界现有建筑的破坏程度, 你有可能直接从中回收许多有用的材料和机器. 钢铁等金属合金, 电路等零件, 甚至核电站的可裂变物质都可能在等着你. 然而, 要小心某些废墟, 因为那里可能潜伏着过度的危险, 就像草丛中的蛇一样; 等着用辐射, 陷阱或其他无法形容的恐怖袭击你... +book.starter.page4=为了将金属冲压成有用的 形状、组装机械和执行 化学反应,您需要创建 一个§L机器模板文件夹§r, 以创建右侧显示的 各种锻模以及配方。 +book.starter.title5=废墟探索 +book.starter.page5=根据最初的世界末日事件对世界现有结构的影响程度, 有可能直接从中抢救出许多有用的材料和机器。 钢铁等金属合金、电路等部件,甚至核电站的 裂变材料都可能在等着你。 然而,要小心某些废墟,因为那里可能潜伏着过度的危险, 就像草丛中的蛇一样; 等待着用辐射、陷阱或无法形容的恐怖袭击你... book.starter.title6=早期机械 -book.starter.page6a=您应该首先组装的两台机器是§l高炉§r 和§l装配机§r. 前者将允许您制造合金, 如§l钢§r, §l紫铜§r, 和§l高级合金§r; 你需要将这些金属用于机器的机身, 电路的布线, 先进的电磁铁等等. -book.starter.page6b=装配机将用于制造本指南中描述的几乎所有其他机器. 您需要一个电源, 如§l火力§r§l发电机§r或§l太阳能锅炉§r. -book.starter.page7a=§l粉碎机§r以及一对粉碎机刀片将非常有用, 可以通过粉碎成可冶炼的粉末, 将大多数矿石的产量提高一倍. 这些粉末对于开始为合成各种机器而制造的电路 也至关重要,例如§l增强§r和§l超频§r电路. -book.starter.page7b=使用您的新机器, 您可以组装出§l化工装置§r, 用于合成更好的电路, 混凝土, 石化产品等. +book.starter.page6a=您应首先装配的两台机器是§l高炉§r和§l装配机§r. 前者允许您制造合金,如§L钢§r、§l工业级铜§r和§l高级合金§r; 你需要将这些金属用于机器的机身、 电路的布线、高级电磁铁等. +book.starter.page6b=汇编程序将用于创建本指南中描述的几乎所有其他机器. 您需要一个电源,如§L火力§r§L发电机§r或§L太阳能锅炉§r. +book.starter.page7a=§l粉碎机§r以及一对粉碎机刀片将会非常有用, 能将大多数矿石粉碎成可熔炼的粉末,使其产量提高一倍. 这些粉末对于开始为各种机器制作电路也至关重要, 例如§l增强电路§r和§l超频电路§r。 +book.starter.page7b=使用您的新机器,您可以创建§L化工厂§r, 用于合成更好的电路、混凝土或进行石化产品加工等。 book.starter.title8=黑金 -book.starter.page8a=使用§l石油§l储层§r§l探测仪§r, 您可以通过测量一个区域 来发现地下石油沉积物以 放置§l梁式抽油机§r或 §l石油钻井塔§r. 记住,石油储备会随着时间 的推移而耗尽. +book.starter.page8a=使用§l石油§l储层§r§l探测仪§r, 您可以通过测量一个区域 来发现地下的油岩以 放置§l石油钻机§r或 §l钻油塔§r来开采 记住,石油储备会随着时间 的推移而耗尽 book.starter.page8b=在§l炼油厂§r中提炼和分离石油 成分之前,你必须在§l锅炉§r中将 石油加热至300°C. -book.starter.title9=石油化工 -book.starter.page9=使用§l化工厂§r, §l分馏§r§l塔§r和§l催化裂化§r§l塔§r, 你可以将分离出的油转化为各种有用的产品. §l催化裂化§r§l塔§r, 可以将分离出的油转化为各种有用的产品. 例如:§l聚合物§r或§l电木§r, 耐用又柔性的塑料; §l德什§r, 一种非常耐用和耐热的稀土金属合金; §l固体燃料§r, 可燃烧获取能量; 甚至是§l液体燃料§r, 比如§l汽油§r, §l柴油§r, §l煤油§r等等. -book.starter.title10=高级机械 -book.starter.page10=通过一套成熟的石油加工系统,您可以制造§l离心机§r, 这将使矿石的产量增加三倍; §l矿物§l结晶机§r将 矿石结晶后,产量将进一步提高; 以及§lSILEX同位素激光分离室+§lFEL§r, 这两个现代工程的奇迹可以轻松地分离材料的同位素. 你需要更多的能量来驱动这些; 可通过§l柴油发电机§r,§l工业发电机§r, 甚至核反应堆等来源获取更多的能量. -book.starter.title11=特殊岩层 -book.starter.page11=在你行走的地面之下,有几个自 然形成的§l岩层§r,或者说特殊的矿 层和岩层. §l片岩地层§r是蓝色的含锂层,填充 有铀,铁,铜,石棉和其他矿石可供 你自己使用. §l深板岩层§r含有大量稀有矿物, 如§l锆§r和§l硼§r,但 需要炸药才能采集. +book.starter.title9=石油化工产品 +book.starter.page9=使用§l化工厂§r, §l分馏§r§l塔§r和§l催化裂化§r§l塔§r, 你可以将分离出的油转化为各种有用的产品. §l催化裂化§r§l塔§r, 可以将分离出的油转化为各种有用的产品。 例如:§l聚合物§r或§l电木§r, 耐用又柔性的塑料; §lDesh§r, 一种非常耐用和耐热的稀土金属合金; §l固体燃料§r, 可燃烧获取能量; 甚至是§l液体燃料§r, 比如§l汽油§r, §l柴油§r, §l煤油§r等等。 +book.starter.title10=先进的机械 +book.starter.page10=通过一套成熟的石油加工系统,您可以制造§l离心机§r, 这将使矿石的产量增加三倍; §l矿物§l结晶机§r将 矿石结晶后,产量将进一步提高; 以及§lSILEX同位素激光分离室+§lFEL§r, 这两个现代工程的奇迹可以轻松地分离材料的同位素. 你需要更多的能量来驱动这些; 可通过§l柴油发电机§r,§l工业发电机§r, 甚至核反应堆等来源获取更多的能量。 +book.starter.title11=特殊地层 +book.starter.page11=在你行走的地面之下,有几个 自然形成的§l岩层§r,或者说特殊的 矿层和岩层。 §l片岩地层§r是蓝色的含锂层, 其中有铀、铁、铜、石棉和其他矿石 可供你使用。 §l深板岩层§r含有大量稀有矿物, 如§l锆§r、§l硼§r和§l朱砂§r等, 但你需要炸药才能采集 book.starter.title12=辐射 -book.starter.page12a=§o本书其余部分将讨论与§o辐射有关的问题. 为了您和其他人的安全,我将提供§o一些建议以说明如何缓解和处理暴露于此的风险.§r -book.starter.page12b=充分暴露在辐射中会导致身体伤害. 第一步是预防; 一定要限制接触,并穿戴防护装备,如§l防辐射套装§r, 或在衣服或盔甲上加装§l防辐射覆层/涂料§r; 你也可以服用§lRad-X防辐射药§r来限制你的辐射量. 多亏了现代医学,第二步可以在必要时移除; 例如,§l玩家§l去污器§r将缓慢减少身体吸收的辐射. §l消辐宁§r还可以用作暴露后预防,快速有效地逆转 电离辐射对身体造成的损害. +book.starter.page12a=本书其余部分将讨论与辐射有关的问题。 为了您和他人的安全,我将提供一些建议以说明如何缓解和处理暴露于此的风险。 +book.starter.page12b=充分暴露在辐射中会导致身体伤害. 第一步是预防; 一定要限制接触,并穿戴防护装备,如§l防辐射套装§r, 或在衣服或盔甲上加装§l防辐射覆层/涂料§r; 你也可以服用§lRad-X防辐射药§r来限制你的辐射量. 多亏了现代医学,第二步可以在必要时移除; 例如,§l玩家§l去污器§r将缓慢减少身体吸收的辐射. §l消辐宁§r还可以用作暴露后预防,快速有效地逆转 电离辐射对身体造成的损害。 book.starter.title13=铀浓缩 -book.starter.page13=核反应堆的燃料有几个简单的选择; 例如,§l天然铀§r或§l钍燃料§r. 然而, 如果你寻找更强力的东西,你可以设置两台§l气体离心机§r 的浓缩级联,用剩余的§l铀-238§r生产§l铀燃料§r. 你必须将天然铀转化为§l黄饼§r,然后是§l六氟化§l铀§r. +book.starter.page13=核反应堆的燃料有几个简单的选择; 例如,§l天然铀§r或§l钍燃料§r。 然而, 如果你寻找更强力的东西,你可以设置两台§l气体离心机§r 的浓缩级联,用剩余的§l铀-238§r生产§l铀燃料§r. 你必须将天然铀转化为§l黄饼§r,然后是§l六氟化§l铀§r. book.starter.title14=芝加哥反应堆 -book.starter.page14=或者,您可以使用§l芝加哥反应堆§r从天然铀中增殖出 §l反应堆级钚§r,这是一种更强大的燃料. 通过堆叠石墨块并在其中钻孔,您可以将燃料棒插入钚 和中子源棒,例如§l镭226-铍中子源§r,以开始反应. 确保测试你的设计;为防止过热, 可能需要隔开或限制石墨块的数量. +book.starter.page14=或者,您可以使用§l芝加哥反应堆§r从天然铀中增殖出 §l反应堆级钚§r,这是一种更强大的燃料. 通过堆叠石墨块并在其中钻孔,您可以将燃料棒插入钚 和中子源棒,例如§l镭226-铍中子源§r,以开始反应. 确保测试你的设计;为防止过热, 可能需要隔开或限制石墨块的数量。 book.starter.title15=ZIRNOX锆诺克斯 -book.starter.page15=最终,你可以制造你的第一个§o真正§r的能源来源: §lZIRNOX§r核反应堆. 与其他能量源相比,核反应堆需要更多的准备; 首先,你需要有一个强悍的水源,比如§l重型§l无限水罐§r. 要从反应堆堆芯中排出热量并将水煮沸成蒸汽, 你需要足够的§l二氧化碳§r. 你只需要足够的压力, 不要让压力§o太§r大! 你还需要三个蒸汽涡轮机来利用产生的蒸汽来制造能量; §l蒸汽§l轮机§r或§l大型工业§l汽轮机§r将是最佳的. 最后,需要一个§l冷凝器§r或§l冷却塔§r来将残余蒸汽冷凝成水, 在这个冷却回路中可以将其排空或回收. +book.starter.page15=最终,你可以制造你的第一个§o真正§r的能源来源: §lZIRNOX§r核反应堆. 与其他能量源相比,核反应堆需要更多的准备; 首先,你需要有一个强悍的水源,比如§l重型§l无限水罐§r. 要从反应堆堆芯中排出热量并将水煮沸成蒸汽, 你需要足够的§l二氧化碳§r. 你只需要足够的压力, 不要让压力§o太§r大! 你还需要三个蒸汽涡轮机来利用产生的蒸汽来制造能量; §l蒸汽§l轮机§r或§l大型工业§l汽轮机§r将是最佳的. 最后,需要一个§l冷凝器§r或§l冷却塔§r来将残余蒸汽冷凝成水, 在这个冷却回路中可以将其排空或回收。 book.starter.title16=结论 book.starter.page16=如果你已经走到了这一步,你已经走在重建文明大道上了. 你已经成功地用核能, 石油化工等重新制造了世界末日前的那些先进机器. 我不知道你将如何利用这些新发现的科技, 但我个人希望你利用这些优势是为了自己和他人的利益 - 或者至少是为了自卫. 再见! book.starter.title18=关于作者 -book.starter.page18=vær只是一个被困在"传声头像"的§o《一生一次》§r中的 灰色虚空中太久的人. 有一次, 他发现了一扇工作室的门, 但令他沮丧的是, 他发现那是一个纸板剪出来的. - - -book_lore.author= %s 著 +book.starter.page18=v?r只是一个被困在"传声头像"的§o《一生一次》§r中的 灰色虚空中太久的人. 有一次, 他发现了一扇工作室的门, 但令他沮丧的是, 他发现那是一个纸板剪出来的 +#book.rbmk.cover=HOW 2 RBMK:$The Basics$of Reactor$Construction +#book.rbmk.title1=Introduction +#book.rbmk.page1=The §lRBMK§r is a fully modular nuclear reactor. Unlike most other reactors, there is no "core", and no size limitations, rather, the behavior and efficiency of the reactor comes from how it is built and how the different pieces interact with each other. +#book.rbmk.title2=Heat +#book.rbmk.page2=As the reactor operates, it will generate §lheat§r. Heat will spread between parts, slowly decreasing in the process. The goal is to produce as much heat as possible without melting the reactor, and to move that heat to a §lsteam channel§r which cools the reactor and produces steam. +#book.rbmk.title3=Fuel Rod +#book.rbmk.page3=The §lfuel rod§r will capture neutron flux, causing the fuel inside the fuel rod to react, giving off neutrons in the process. Neutrons are released in all four cardinal directions with a maximum range of 5 blocks. The amount of neutrons released depends on the §lfuel§r used. +#book.rbmk.title4=Control Rod +#book.rbmk.page4=The §lcontrol rod§r will decrease the amount of neutrons passing though it. Fully inserted, it will block all neutrons, at half insertion, it will only block half. Control rods are used to regulate the reactor's activity and to turn it off. +#book.rbmk.title5=Control Rod - Usage +#book.rbmk.page5=The center of the GUI will display the current rod insertion. The colored buttons on the left will add a control rod to a color group, which is useful to quickly select grouped rods from the §lRBMK console§r. The buttons on the right allow for manual insertion in increments of 25%%. +#book.rbmk.title6=Automatic Control Rod +#book.rbmk.page6=§lAutomatic control rods§r function nearly identical to regular control rods, but they cannot be configured manually, instead they will adjust the rod position based on the current temperature. What function to use and how deep to insert at what temperature has to be defined first. +#book.rbmk.title7=Steam Channel +#book.rbmk.page7=The §lsteam channel§r is the only part that will actively reduce the reactor's heat level. If the component's temperature exceeds the boiling point of the set steam type, it will try to consume as much water and produce as much steam as needed to cool back below the boiling point. +#book.rbmk.title8=Neutron Reflector +#book.rbmk.page8=The §lneutron reflector§r will block neutrons from passing it, instead the neutrons will be reflected back at the fuel rod they came from. This is useful for utilizing neutrons that would otherwise be wasted by simply exiting the reactor. +#book.rbmk.title9=Neutron Absorber +#book.rbmk.page9=The §lneutron absorber§r will simply block neutrons. Neutrons absorbed will not generate heat and be effectively voided. This is useful to prevent fuel rods from reacting that would otherwise be in range. +#book.rbmk.title10=Graphite Moderator +#book.rbmk.page10=The §lgraphite moderator§r will convert fast neutrons passing through it into slow neutrons. Most fuels fission into fast neutrons while needing slow neutrons to split, so using moderators is strongly recommended. +#book.rbmk.title11=Structural Column +#book.rbmk.page11=The §lstructural column§r will not interfere with neutrons, nor does it have special uses. It is recommended to fill the reactor with structural columns where no other parts will be, because structural columns are capable of transporting heat. +#book.rbmk.title12=Console +#book.rbmk.page12=The §lRBMK console§r lets you control the reactor from afar. Using the §lRBMK§r §lconsole linking device§r on an RBMK part and then the console will link the reactor to the console. The console can only manage 15x15 parts, for larger reactors you might want to use multiple consoles. +#book.rbmk.title13=Console Usage +#book.rbmk.page13=Clicking on the parts will select and deselect them. Using the colored buttons, you can quickly select all control rods of that color group. Button 'A' will select all control rods, 'X' will deselect all. +#book.rbmk.page14=Entering a number 0-100 in the green box and then hitting the button next to it will set all selected control rods to this position. Button 'AZ-5' will cause all control rods to fully insert. +#book.rbmk.title15=Fuel +#book.rbmk.page15=The §lfuel§r's reactivity is based on multiple factors. The main ones are the §lenrichment§r, §lxenon poison§r and the amount of incoming §lneutrons§r. Xenon builds up when the fuel receives few neutrons and burns away during normal operation. The effectivity of neutrons depends on the type, most fuels §lsplit best with slow neutrons§r. +#book.rbmk.title16=Meltdown +#book.rbmk.page16=§4§lAvoid. +book_lore.author=由%s book_lore.test.name=测试 book_lore.test.author=那个家伙 -book_lore.test.page.0=>在我开始之前,请允许我 澄清我不是同性恋. >做我 >今晚 >18点 >趁我的父母走了几天,和我最好 的朋友一起出去玩 >我们已经是一年的好朋友了 >喝了点酒,玩了很多电子游戏, 还点了一个比萨饼 >我们玩得很开心 >在晚上的某个时刻,比如9点 左右,他开了一个非常有趣的 玩笑,我不记得了, 但我知道这让我们都笑得很开心 > 我不假思索地用右手 -book_lore.test.page.1=拂过他半卷曲的黑发, 说他真是一个有趣的男孩 >他脸红了 >我意识到我很慌乱 >我们有点太亲近了 >突然他吻了我,出于某种原因 我回吻了他 >我们做爱了 >拥抱在一起睡着了 >半夜醒来,他的头紧贴在我的 胸口和脖子上 >这感觉很好, 但我仍是个钢铁直男 -book_lore.test.page.2=我在他在我怀里睡着的时候 写了这个. 我怎么能让我最好的 朋友失望呢? 我可不想成为一个 [弱智] /b/ -book_lore.test.page.3=4 +book_lore.test.page.0=>hello anons before i begin let me clarify that i'm not gay. >Be me >This night >18 > At hanging out with my best friend with my parents gone for a few days >We've been best friends for a year now >Been drinking a bit and playing lots of video games and ordered a pizza >We were having a blast >At a certain point in the night like around 9:00 he makes a really funny joke that I don't remember but I know that it made us both laugh really hard > With out thinking I brush my right hand through his semi-curly black hair and call him a funny boy >He blushes >I realize I'm feeling flustered >We're kinda close >All of the sudden he kisses me and for some reason I kiss him back >We make love >Cuddle together and fall asleep >Wake up in the middle of the night with his head snuggled up on my chest and neck area >It feels nice but I'm not a homosexual +book_lore.test.page.1=>你好,在我开始之前,让我澄清我不是同性恋。>做我>今天晚上>18>和我最好的朋友和我的父母出去玩了几天>我们已经是最好的朋友一年了>喝了点酒,玩了很多电子游戏,还点了一份披萨>我们玩得很开心>在晚上的某个时候,比如9点左右,他开了一个非常有趣的玩笑,我不记得了,但我知道这让我们俩都笑得很厉害>没有我想我用右手摸了摸他那半卷曲的黑发,然后叫他一个有趣的男孩>他脸红了>我意识到我很慌张>我们有点亲密>突然他吻了我,出于某种原因我又吻了他>我们做爱>拥抱在一起睡着了>半夜醒来时,他的头贴在我的胸部和颈部>感觉很好,但我不是同性恋 +book_lore.test.page.2=他在我怀里睡着时,我正在打字。我怎么才能让我最好的朋友失望呢?我不想成为[编辑]/b/ +book_lore.test.page.3=3 book_lore.test.page.4=4 - book_lore.book_iodine.name=笔记 book_lore.book_iodine.author=戴夫 -book_lore.book_iodine.page.0=好吧,你不会相信的, 但自从两周前离开后,这位老人终于再次出现了。更令人惊讶的是,他竟然决定把他们在峡谷里的所作所为泄露出去: -book_lore.book_iodine.page.1=显然,研发部门的白痴们发现了一种主要是无机的化合物, 很像自然界中的毒素, 但要记住:濒死的细胞会繁殖毒素并通过皮肤排出, 产生一种具有高度传染性的气溶胶. -book_lore.book_iodine.page.2=就像病毒一样, 但不是病毒. 它的成分很奇怪, 你可以把它放在任何家用瓶子里,但你必须把顺序弄对. 博士告诉我第一种成分是粉末状的碘晶体,要放进槽 %d - +book_lore.book_iodine.page.0=alright you will not believe this, but old man weathervane finally managed to show up again since he left two weeks ago and what's more surprising is the fact that he actually decided to spill the beans on what they were doing in the canyon: +book_lore.book_iodine.page.1=alright you will not believe this, but old man weathervane finally managed to show up again since he left two weeks ago and what's more surprising is the fact that he actually decided to spill the beans on what they were doing in the canyon: +book_lore.book_iodine.page.2=apparently the morons from R&D discovered a compound that is mostly inorganic, pretty much like a toxin in nature, but get this: the dying cells will reproduce said toxin and excrete it through the skin, creating an aerosol that is highly contagious. book_lore.book_phosphorous.name=笔记 book_lore.book_phosphorous.author=戴夫 -book_lore.book_phosphorous.page.0=嘿,又是我. 我想你收到了我最后的备忘录,博士对此不太高兴. 我得动作快点, 研发部门的笨蛋们现在又在抱怨了, 可能是因为钱, 又一次. 无论如何, 风向标博士发现第二种 -book_lore.book_phosphorous.page.1=成分是红磷, 必须将其混入 %d槽中 - +book_lore.book_phosphorous.page.0=heyo, it's me again. i assume you got my last memo, the doc wasn't too happy about it. i'll have to do this quick, the dunderheads from R&D are currently moaning again, probably over money. again. anyway, doc weathervane found that the second +book_lore.book_phosphorous.page.1=heyo, it's me again. i assume you got my last memo, the doc wasn't too happy about it. i'll have to do this quick, the dunderheads from R&D are currently moaning again, probably over money. again. anyway, doc weathervane found that the second book_lore.book_dust.name=笔记 book_lore.book_dust.author=戴夫 -book_lore.book_dust.page.0=当博士发现研发人员保留了剩下的一个样本时,他大发雷霆, 大喊大叫说这是严重的疏忽,简直是世界末日的剧本. 我告诉他冷静一分钟, 紧张起来对他的血压没有好处, 并 -book_lore.book_dust.page.1=不是说他还剩下很多血. 一个研发部的白痴在上周的通告中透露了更多信息, 他们称他们那宝贝混合物 \"MKU\" ,鬼知道这是啥意思, 它含有货真价实的家用棉绒. 你能相信吗? 这是他们 -book_lore.book_dust.page.2=最危险的发明之一而它含有灰尘. 奇怪的是,他们还提到它会进入槽 %d - +book_lore.book_dust.page.0=the doc was furious when he found out that the R&D dorks kept the one remaining sample, ranting about gross negligence this and a doomsday scenario that. i told him to chill for a minute, getting all worked up isn't good for his blood pressure, not +book_lore.book_dust.page.1=the doc was furious when he found out that the R&D dorks kept the one remaining sample, ranting about gross negligence this and a doomsday scenario that. i told him to chill for a minute, getting all worked up isn't good for his blood pressure, not +book_lore.book_dust.page.2=that he has much blood left to begin with. one of the R&D morons slipped some more info into last week's circular, they call their little concoction \"MKU\" whatever that means, and that it contains actual household lint. can you believe that? one of the most book_lore.book_mercury.name=笔记 book_lore.book_mercury.author=戴夫 -book_lore.book_mercury.page.0=好吧,这就说得通了. 不包括呕吐的血液部分, 毒理学报告表明其主要类似于汞中毒. 为什么? 因为我们的小混合物也含有汞! 我只是想知道当这些东西 -book_lore.book_mercury.page.1=被身体复制时,它们从哪来? 不管怎样,水银要进入槽 %d - +book_lore.book_mercury.page.0=well that settles that. not counting the vomitting blood part, the toxicological report mostly resembles that of mercury poisoning. why? because our little mix also contains mercury! i just wonder where all that stuff comes from when being +book_lore.book_mercury.page.1=well that settles that. not counting the vomitting blood part, the toxicological report mostly resembles that of mercury poisoning. why? because our little mix also contains mercury! i just wonder where all that stuff comes from when being book_lore.book_flower.name=笔记 book_lore.book_flower.author=戴夫 -book_lore.book_flower.page.0=还记得我在第一份备忘录中提到的化合物大多是无机的吗? 好吧,你猜怎么着, 那个老家伙分享了第四种配料: 牵牛花, 花的一属. 就是喇叭花! 可能是因为它的硫含量低, 不管是什么情况, -book_lore.book_flower.page.1=其他花就是不起作用. 牵牛花要放入槽 %d - +book_lore.book_flower.page.0=remember when i mentioned in my first memo that the compound is mostly anorganic? well guess what, the old man shared the fourth ingredient: ipomoea nil, a genus of flower. morning glory! it might be due to its low sulfur content, whatever might be the case, +book_lore.book_flower.page.1=remember when i mentioned in my first memo that the compound is mostly anorganic? well guess what, the old man shared the fourth ingredient: ipomoea nil, a genus of flower. morning glory! it might be due to its low sulfur content, whatever might be the case, book_lore.book_syringe.name=笔记 book_lore.book_syringe.author=戴夫 -book_lore.book_syringe.page.0=我第五条留言的一个小附录, 显然你必须把这些叫MKU的东西放在一个容器里. 研发人员使用的是从医疗机构购买的普通金属注射器. 我猜是多余的, 他们有成千上万的针头. -book_lore.book_syringe.page.1=金属注射器要放入槽 %d - +book_lore.book_syringe.page.0=a little addendum to my fifth message, obviously you have to store this MKU stuff in a container. the R&D nuts used regular metal syringes that they got from medical. surplus ware i presume, they got thousands of needles just lying around. the metal +book_lore.book_syringe.page.1=a little addendum to my fifth message, obviously you have to store this MKU stuff in a container. the R&D nuts used regular metal syringes that they got from medical. surplus ware i presume, they got thousands of needles just lying around. the metal book_lore.resignation_note.name=辞职信 book_lore.resignation_note.author=科斯马 -book_lore.resignation_note.page.0=管理层昨天又缩减了我们的 部门.那帮白痴只能怪自己, 我不知道他们在那场惨败后 还在期待什么. 到底是谁泄露了这种信息? 我们损失了数百万 -book_lore.resignation_note.page.1=现在老子失业了. 我是那个被要求辞职的人. 我希望你们这帮混蛋们终于 从自己的错误中吸取点教训, 把那根棍子从屁股里拿出来. -book_lore.resignation_note.page.2=我星期五不会回来的. 发工资就行了. - -book_lore.memo_stocks.name=内部备忘录 -book_lore.memo_stocks.page.0=投资者关系部 - $ $ 最新季度报告中提供的数据 存在一些明显的差异. 让财务部门进行一些调整是 谨慎的做法, 所以不用有任何顾虑. - +book_lore.resignation_note.page.0=Management downsized our department again yesterday. Those idiots only have themselves to blame, I don't know what they were expecting after that fiasco. Who the hell leaks that sort of information? We're losing millions and +book_lore.resignation_note.page.1=管理层昨天又对我们的部门进行裁员了。那群白痴要怪只能怪他们自己,我都不知道他们在那场惨败后还在期待什么。到底是谁他妈泄露了那种程度的信息? +book_lore.resignation_note.page.2=我们损失了几百万,而且现在失业的还是爷。老子希望你们这帮混蛋最后能从你们的一堆问题中学到点教训然后给爷滚去自闭。 +book_lore.memo_stocks.name=公司内部备忘录 +book_lore.memo_stocks.page.0=投资者关系 - $ $ 最新季度报告提供的数据存在一些明显差异。财务部门做出一些调整是谨慎的,所以不必有任何担忧。 book_lore.memo_schrab_gsa.name=内部备忘录 -book_lore.memo_schrab_gsa.page.0=合同管理部 - $ $ 法律部与DLA取得了突破. 他们授予我们450亿GSA计划, 用于进一步采购和研究saralloy. 根据目前的估计 -book_lore.memo_schrab_gsa.page.1=相关业务的利润至少为 40%%, 更不用说未来合同的可能性了. 由于保密性质,所有财务证据 都应保密. - +book_lore.memo_schrab_gsa.page.0=Contract Management - $ $ Legal has made a breakthrough with the DLA. They've awarded us with a 45 BILLION GSA Schedule for further procurement and research of saralloy. At current estimates, that would be at minimum +book_lore.memo_schrab_gsa.page.1=合同管理记录 - 法务部在与美国国防部后勤局的谈判中取得了突破。他们批准了450亿的联邦采购服务总署投资资金用于异变金属的采购与研究。 book_lore.memo_schrab_rd.name=内部备忘录 -book_lore.memo_schrab_rd.page.0=研究与开发部 - $ $ 我们生产saralloy的主要方法是 使用新型粒子加速器. 然而, 与产量相比,能源成本过高. -book_lore.memo_schrab_rd.page.1=然而,Schrabauer博士发现 了一种新的相互作用, 称为 "奇异轻子振荡",可以 显著降低成本. 通过一个不完 全被理解的过程, 所提供的电 子通过一种 -book_lore.memo_schrab_rd.page.2=奇特的作用被转化为极高能 量的光子. 这是许多既定粒子 转化定律的极端例外, 但初步 实验证明,这些质子转变为 上下夸克,最终形成了 saralloy. -book_lore.memo_schrab_rd.page.3=奇怪的是,原型需要钨合金 和少量的 saralloy. 此外, 需要一个特殊的电容器来 抵消剩余的正电荷. - +book_lore.memo_schrab_rd.page.0=Research & Development - $ $ Our main production method of saralloy has been through the new particle accelerator. However, the energy costs are exorbitantly high compared to the amount of output. +book_lore.memo_schrab_rd.page.1=研发 - 目前我们主要生产方法是使用新型粒子加速器。然而,与产出量相比,能源成本高得惊人。 +book_lore.memo_schrab_rd.page.2=然而,Schrabauer博士发现了一种全新的相互作用——暂称为“奇异轻子振荡”——该作用可以显著降低生产成本。通过一个目前未被完全理解的的过程,提供的电子被一种奇特的“魔力”转化为极高能量的光子。 +book_lore.memo_schrab_rd.page.3=这是许多已明确的粒子转换定律的极端例外。但初步实验证明,这些质子先转变为上下夸克,最终形成了异变金属。奇怪的是,原型机中需要钨与少量异变金属合金化所得到的合金。 book_lore.memo_schrab_nuke.name=研究报告 book_lore.memo_schrab_nuke.author=Schrabauer博士 -book_lore.memo_schrab_nuke.page.0=我们最近的调查使我们了 解了核爆炸对材料的影响. 感谢给我们的赠款, 我们 *意外地* 测试了 我们从铀直接合成 saralloy的理论. -book_lore.memo_schrab_nuke.page.1=以前只有我们的回旋加速 器真正创造了saralloy. 然而,在我们在埃弗沃彭 的地下拍摄中,在现场的 铀矿中发现了微量的saralloy. 附近所有纯金属铀都发生了 裂变. -book_lore.memo_schrab_nuke.page.2=因此,如果有足够多的铀 矿石集中在炸药周围, 甚至可能是一枚富含可裂 变材料的脏弹,人们可以 理论上制造出足够多的 saralloy来人工收集. - +book_lore.memo_schrab_nuke.page.0=Our most recent investigation led us to the effects of nuclear explosions on materials. Thanks to our grant money, we *accidentally* tested our theory on direct saralloy synthesis from uranium. +book_lore.memo_schrab_nuke.page.1=最近的调查使我们了解了核爆炸对材料造成的影响。多亏外界给我们的赠款,我们*意外地*测试了铀直接合成异变金属的理论。 +book_lore.memo_schrab_nuke.page.2=而此前我们只在回旋加速器中制作出异变金属。但这次,我们在对Everwerpen的地下拍摄中,在该地点的铀矿石中发现了微量的异变金属。其附近所有的纯金属铀则都发生了裂变。 book_lore.bf_bomb_1.name=私人笔记 book_lore.bf_bomb_1.author=M. 波特 -book_lore.bf_bomb_1.page.0=花了足够长的时间, 但我的转会被接受了. 那些应届毕业生已经很难应付了, 更不用说那些不专业的领导了. $ 这还不是所有的好消息 - 这个实验室隐瞒了更多的细节, 我不需要在另一个神奇的新发现上碰到更多的混乱. -book_lore.bf_bomb_1.page.1=当然是这样. 毕业生们有他们的疑虑 (考虑到他们的眼睛多么纯真,真是令人惊讶), 但我唯一... 有能力的? 同事实际上拿到了项目介绍资料. 一定比我想象的有更多的关系. 他的备忘录令人沮丧: -book_lore.bf_bomb_1.page.2=显然, 他们从反物质和边缘同位素的混合物中又发现了 另 一 种 神奇的物质. 小册子上称之为 "SWIRLMAT" - 鬼知道是啥 - 就这样. 难怪他们想要一个理论物理学家, -book_lore.bf_bomb_1.page.3=他们甚至还不知道它是什么. 不管怎样, 实际上任何一份工作都会比我以前的职位好, 我不能对这些粗糙之处抱怨太多. - +book_lore.bf_bomb_1.page.0=Took long enough, but my transfer was accepted. Those new grads were already hard to handle, let alone all the unprofessionalism of the lead. $ Not all good news - this lab was withholding further detail, and I didn't need more chaos over another magic new discovery. +book_lore.bf_bomb_1.page.1=Of course that was the case. The alumni had their doubts (surprising, considering how bright-eyed they were), but my only... competent? colleague actually got his hands on the primer hand-out. Must have more connections than I thought. His memo is discouraging: +book_lore.bf_bomb_1.page.2=apparently, there's yet ANOTHER miracle material that they prodded out of some concoction of antimatter and a fringe isotope. The brochure calls it "SWIRLMAT" - hell if I know - and that's it. No wonder they wanted a theoretical physicist, +book_lore.bf_bomb_1.page.3=they don't even know what it is yet. Either way, practically any job would be better than my old position, so I can't complain much about sketchiness. book_lore.bf_bomb_2.name=私人笔记 book_lore.bf_bomb_2.author=M. 波特 -book_lore.bf_bomb_2.page.0=尽管项目介绍资料中缺乏信息, 但我仍抱着他们或许了解更多的希望. 完全相反! 每一位老研究员都对这种材料抱有盲目的信念; 他们的主张跟圣经似的. 我几乎无言以对. -book_lore.bf_bomb_2.page.1=但我甚至不能责怪他们. Swirlmat 完全不合常理 - 它与我以前见过的任何其他物质都完全不同. 它的外观几乎令人恐惧, 一团漩涡般的色彩, 深色的线条渗透到霓虹绿的表面. -book_lore.bf_bomb_2.page.2=更糟糕的是, 这个东西是一种能量源. 我们的样本的存在违反了ALARA合理最低剂量原则: 实验室在它到达时被清场了, 唯一一个足够勇敢的人 (Dr. Melfyn) 穿着a级危险防护服,只为了把它抬20米. -book_lore.bf_bomb_2.page.3=经验数据也好不到哪里去, 为我们正在用它辐射的能量打破热力学第一定律. 在那东西附近的任何地方 - 甚至是一米厚的铅后面 - 都是可怕的. 光谱分析结束后,我们迅速跑出了房间 -book_lore.bf_bomb_2.page.4=而且我们并没有从中得到什么新的东西. 科学团队中的那些白痴, 天啊, 在这一切之后甚至没有产生一丝动摇. 坐在那里进行这些"讨论" 可怕的; 首席研究员中的一位半吊子甚至扬言说测试禁令将被取消, 这样我们就可能 -book_lore.bf_bomb_2.page.5=在未来几周内用这鬼玩意制造出炸弹, 哪个脑袋正常的人会去干这事? 真见鬼, 一个理智的助手 (Andrew) 给它起了个绰号"balefire" - 因为相比之下,在火葬柴堆上烧死更好受. - +book_lore.bf_bomb_2.page.0=Despite the absence of information in that primer, I still had some hope they knew a bit more. Not at all. Every other senior researcher has a blind faith in this material; their propositions were practically biblical. I was near speechless. +book_lore.bf_bomb_2.page.1=And yet I can't even blame them. Swirlmat makes no goddamn sense - it is completely unlike any other substance I've seen before. Its appearance was near frightening, a literal mass of swirling colors, with darker lines permeating through the neon green surface. +book_lore.bf_bomb_2.page.2=Even worse, this thing is an energy source. The existence of our sample is a violation of ALARA: the lab was vacated when it arrived, and the only person brave enough (one Dr. Melfyn) donned a level A hazmat just to carry it 20 meters. +book_lore.bf_bomb_2.page.3=The empirical data isn't better, as we're breaking the first law of thermodynamics with how much energy it radiates. Being anywhere near that thing - even behind a meter of lead - was terrifying. We sprinted out of the chamber upon conclusion of the spectroscopy +book_lore.bf_bomb_2.page.4=and we got nothing new out of it. Those idiots in the science team, god, did not even waver after all that. Sitting through those "discussions" was horrible; that quack of a head researcher even rumored that the test ban would be lifted, that we could be +book_lore.bf_bomb_2.page.5=building bombs out of the shit in the coming weeks, who in their right mind would work on that? Hell, the one sane assistant (an Andrew) nicknamed it "balefire" - because burning to death on a funeral pyre would be painless by comparison. + + book_lore.bf_bomb_3.name=私人笔记 book_lore.bf_bomb_3.author=M. 波特 -book_lore.bf_bomb_3.page.0=我和团队取得了一些突破. 主要是靠分离 - 将我自己与那些神经兮兮的人隔离开来让在这里工作变得更容易忍受. 虽然我们仍然不知道balefire的实际性质 (很难分析会 -book_lore.bf_bomb_3.page.1=炸烂设备的样品) 但事实证明它与其他物质的相互作用是富有成效的. 值得注意的是, 他们合成了一种"气态" 形式: 在所有人中, Andrew, 告诉我,这实际上是一种胶体, 由悬浮在某种惰性气体中的微小balefire颗粒组成 -book_lore.bf_bomb_3.page.2=每个粒子都充满被带正电的电离气体的'气泡'包裹, 阻止其沉降. 谁能想到致命的伽马射线有好处? 反正不是我. $ 我选择不去想他们是如何将样本转化为颗粒的 -book_lore.bf_bomb_3.page.3=, 但我不能低估这种气态balefire的效用 - 它使实验更加安全. $ 说到安全, 首席研究员 (以一种无视安全的行为) 做出了一个几乎让他大吃一惊的发现. -book_lore.bf_bomb_3.page.4=他决定让我们新胶体的一个细胞与一些非常昂贵的反物质直接相互作用来“推进”实验: 由此产生的爆炸将它所在的桌子变成了一块辐射漂白的渣子, 在顶部雕刻出一个近乎完美的半球 -book_lore.bf_bomb_3.page.5=, 并给予头部健康剂量的ARS. 我想我们现在知道如何让它爆炸了, 但天哪, 有些人... - +book_lore.bf_bomb_3.page.0=The team and I have made some breakthroughs. Emphasis on the separation - isolating myself from the more devout has made working there so much more bearable. While we still have no idea about the actual properties of balefire (it's difficult to analyze +book_lore.bf_bomb_3.page.1=a sample that fries your equipment) its interactions with other matter has proved fruitful. Notably, they synthesized a "gaseous" form: Andrew, of all people, informed me that it was really a colloid consisting of microscopic balefire particles, suspended in some +book_lore.bf_bomb_3.page.2=noble gas. Each particle is enveloped by a positively-charged 'bubble' of ionized gas, preventing it from settling. Who could've guessed that fatal gamma radiation had a benefit? Not me. $ I'm choosing not to think about how they transformed the sample into +book_lore.bf_bomb_3.page.3=particulate, but I can't understate the utility of this gaseous balefire - it's made it much safer to experiment on. $ Speaking of safety, the head researcher (in an act of callous disregard) made a discovery that also nearly took his head off. + + +book_lore.bf_bomb_3.page.4=He decided to get "dirty" by letting a cell of our new colloid interact directly with some very expensive antimatter: the resulting explosion turned the table it was on into a piece of radiation-bleached slag, carved a near-perfect hemisphere through +book_lore.bf_bomb_3.page.5=the top, and gave the head a healthy dose of ARS. I guess we know how to make it explode now, but god, some people... book_lore.bf_bomb_4.name=私人笔记 book_lore.bf_bomb_4.author=M. 波特 -book_lore.bf_bomb_4.page.0=我就是逃避不了以前的工作. 他们是唯一一个在经历了这场混乱之后仍在招聘的地方, 但我不会再回到那个坑里了. $ 他们只是诱惑我,因为我需要出去,要很快出去. 还记得我们一周前退出的大气试验条约吗? -book_lore.bf_bomb_4.page.1=好吧, 我们实验室的负责人这一次做对了. 谴责随着一批新的 "科学家"的加入而来, 只是为了让我们可以将balefire武器化. 这里缺乏批判性思维确实令人困惑 - 祝福他,安德鲁甚至在第一个该死的 -book_lore.bf_bomb_4.page.2=炸 弹 设 计 起草的第二天就跳槽了. 那个混蛋Melfyn看起来对他的那些小玩意很满意 - 也许他携带样本时脑子里进了啥东西? - 其中包括一些愚蠢的垃圾,使用固化的 -book_lore.bf_bomb_4.page.3=基础balefire和高压电池. $ 显然,这种形式对能量输出和激活方法或其他什么都很重要, 有点像常规核武器中的铀与钚, 但最终结果是引发爆炸的初始冲击. 我觉得它很有趣, 甚至很搞笑. -book_lore.bf_bomb_4.page.4=所有这些都强调激活; 他们忽略了这一切的实际机制,因为他们根本不知道它是如何工作的! 在这一点上,这可能很神奇, 但他们仍在试图扭转和弯曲它 - 只是为了获得更多的战争武器. - +book_lore.bf_bomb_4.page.0=I just can't escape my old work. They're the only place that's hiring despite all this godforsaken turmoil, but I'm not going back into that hole. $ They only tempted me because I need out, fast. Remember that atmospheric testing treaty we withdrew from a week ago? +book_lore.bf_bomb_4.page.1=Well, the dipshit in charge of our lab got something right for once. The denunciation came with a flurry of new "scientists" joining, just so we could weaponize balefire. The lack of critical thought here is honestly baffling - bless him, Andrew even jumped ship the +book_lore.bf_bomb_4.page.2=second the first fucking BOMB DESIGN was drafted. That ass Melfyn looked so happy with his little mechanism - perhaps he got brainworms from carrying that sample? - which involved some stupid shit using the solidified, base balefire and an HV +book_lore.bf_bomb_4.page.3=battery. $ Apparently, the form matters for energy output and activation method or whatever, kind of like uranium versus plutonium in regular nukes, but the end result is an initial shock starting the explosion. I find it funny, hilarious even. +book_lore.bf_bomb_4.page.4=All of them place such emphasis on the activation; they ignore the actual mechanism of it all because they don't have a single clue how it works! It may as well be magic at this point, and yet they're still trying to twist and bend it - just for more weapons of war. book_lore.bf_bomb_5.name=私人笔记 book_lore.bf_bomb_5.author=M. 波特 -book_lore.bf_bomb_5.page.0=我只是... 即使几天后也无法应对. 事实上, 科学团队对安全问题的轻率态度已成定局. $ $ Doctor Melfyn, M.S., 不在了. 也许死了. 我亲眼目睹了这一切, 在他们的试验室里. -book_lore.bf_bomb_5.page.1=我们刚刚得到了另一批纯balefire, 他已经找到了电气设备和能源来测试他的提议. 我不知道是什么原因造成的 (电源开了? 他开始得太早了?), 但它似乎以令人痛苦的慢动作进行, -book_lore.bf_bomb_5.page.2=绿色的光芒吞噬了桌子, 电池, Dr. Melfyn就站在一米外. 即使桌子已经化成地板上的一池灼热的金属, 他也没有被烧伤. 不知道我从他的眼睛里看到了什么... $ $ 也许是对他继续生存 -book_lore.bf_bomb_5.page.3=的恐惧,或者敬畏? 不管我们的“奇迹”材料是什么, 它都不在乎. 随着一道明亮的光, 他在下一刻消失了. 他蒸发了吗? 烧成灰烬了? 完全湮灭了? 被送进他妈的地狱了? 我再也不会知道了! -book_lore.bf_bomb_5.page.4=首席研究员让我恶心. 他说我们可以更加小心, 继续用卡车运输, 或者其他什么能提高士气的屁话. 那个混蛋永远不会明白玩火终会自焚. $ 我没有辞职 -book_lore.bf_bomb_5.page.5=, 我只是抓起我的那点破烂往山上跑. 无论如何,现在这些都不重要了; 考虑到没有电话, 加上我 (现在是以前的了) 工作场所上空升起的蘑菇云, 他们要么炸毁了一切要么完全进入了军事管辖模式. -book_lore.bf_bomb_5.page.6=解剖和 活 体 解 剖 之间有一个重要的区别, 这一点在他们身上显然已经消失了. 们可以随心所欲地解剖金属或原子, 但撕裂、活体解剖现实本身只会以更多的Dr. Melfyns而告终. 谁知道呢! -book_lore.bf_bomb_5.page.7=毕竟政府想把这些玩意装进炸弹里, 也许我们会看到更多的战争, 数百万人听天由命. 他们不能永远隐瞒这件事. $ $ 我不在乎. 再也不了. 求你了, 上帝, 让我回到 -book_lore.bf_bomb_5.page.8=实际的科学上来. $ $ 妈的, Mae, 保持冷静... - +book_lore.bf_bomb_5.page.0=I just... can't come to grips with it, even days after. It was a foregone conclusion, really, with how flippant the science team was with safety. $ $ Doctor Melfyn, M.S., is gone. Dead, maybe. I saw it happen before my own eyes, in their test chamber. +book_lore.bf_bomb_5.page.1=We had just gotten another batch of pure balefire, and he had recovered electrical equipment and an energy source to test his proposal. I don't know what caused it (was the power on? had he begun too soon?), but it seemingly progressed in agonizingly slow motion, +book_lore.bf_bomb_5.page.2=as the green-tinted light consumed the table, the battery, and Dr. Melfyn standing only a meter away. Even when the table had degraded into a pool of broiling metal on the floor, he did not burn. I don't know what I saw in his eyes... $ $ Terror, or awe +book_lore.bf_bomb_5.page.3=over his continued survival, maybe? Whatever our "miracle" material was, it didn't care. With a bright blaze of light, he disappeared in the next moment. Was he evaporated? incinerated? annihilated? sent to fucking hell itself, I don't know anymore! +book_lore.bf_bomb_5.page.4=The head researcher sickens me. Said we could be more careful, keep trucking, whatever other morale-improving filth he spewed. That dipshit won't ever figure out that playing with fire will get you burned. $ I didn't bother +book_lore.bf_bomb_5.page.5=resigning, I just grabbed my shit and ran for the hills. Not like it matters, anyway; considering the lack of calls, and the mushroom cloud that rose over my (now former) workplace, they've either blown everything up or entered full-on military jurisdiction. +book_lore.bf_bomb_5.page.6=There's a vital distinction to be made between dissection and VIVISECTION, one which was clearly lost on them. They can dissect metal or atoms as much as they like, but tearing into, vivisecting reality itself is only going to end in more Dr. Melfyns. Who knows! +book_lore.bf_bomb_5.page.7=The government wants to put this shit into bombs after all, maybe we'll see a couple more wars, couple more million resigned to a fate worse than death. They can't hide this forever. $ $ I don't care. Not anymore. Please, god, let me go back +book_lore.bf_bomb_5.page.8=to actual science. $ $ Goddamnit, Mae, get ahold of yourself... book_lore.beacon.name=信号信标说明书 book_lore.beacon.author=Flim Flam工业 book_lore.beacon.page.0=感谢您购买Mk.2照明信号信标(版本1.3)!这本小册子将简要介绍信标的操作及其内部工作原理。 @@ -617,11 +594,10 @@ commands.satellite.not_a_satellite=持有的物品不是卫星! commands.satellite.satellite_descended=卫星成功降落。 commands.satellite.satellite_orbited=卫星发射。 commands.satellite.should_be_run_as_player=此命令应该由玩家运行! - -container.amsBase=AMS基座 [装饰] -container.amsEmitter=AMS激发装置 [装饰] -container.amsLimiter=AMS稳定力场发生装置 [装饰] -container.anvil=%s 级砧 +container.amsBase=AMS基座(装饰) +container.amsEmitter=AMS发射极(装饰) +container.amsLimiter=AMS稳能器(装饰) +container.anvil=砧 container.arcFurnace=电弧炉 container.armorTable=装甲改装台 container.ashpit=储灰槽 @@ -683,10 +659,9 @@ container.heaterOven=加热炉 container.iGenerator=工业发电机 container.keyForge=锁匠桌 container.launchPad=导弹发射台 -container.launchTable=大型导弹发射台 -container.leadBox=安全箱 -container.machineArcWelder=弧焊机 -container.machineBoiler=原油加热器 +container.launchTable=大型发射台 +container.leadBox=安全盒 +container.machineBoiler=锅炉 container.machineCMB=CMB炼钢炉 container.machineCoal=火力发电机 container.machineCoker=焦化装置 @@ -706,9 +681,9 @@ container.machineShredder=粉碎机 container.machineSILEX=激光同位素分离室 container.machineSolidifier=固化机 container.machineTurbine=汽轮机 -container.machineTurbofan=涡扇发电机 -container.machine_schrabidium_transmutator=Sa326异变铀金属嬗变装置 -container.massStorage=存储器 +container.machineTurbofan=涡扇发动机 +container.machine_schrabidium_transmutator=Sa326嬗变装置 +container.massStorage=存储 container.microwave=微波炉 container.miningDrill=自动采矿钻机 container.miningLaser=采矿激光 @@ -790,100 +765,97 @@ crucible.hematite=赤铁矿炼铁 crucible.hss=高速钢生产 crucible.malachite=孔雀石炼铜 crucible.redcopper=紫铜生产 -crucible.steel=钢生产 -crucible.steelMeteoric=陨铁->钢 生产 -crucible.steelPig=生铁->钢 生产 -crucible.steelWrought=锻铁->钢 生产 -crucible.tcalloy=锝-钢合金生产 - -death.attack.acid=%1$s 掉进了酸里. -death.attack.acidPlayer=%1$s 被 %2$s 溶解了. -death.attack.ams=%1$s 沐浴在尚未被人类科学命名的致命粒子中. -death.attack.amsCore=%1$s 在高能奇点之火中蒸发. -death.attack.asbestos=%1$s 现在有权获得经济补偿. -death.attack.bang=%1$s 被炸成一口大小碎片. -death.attack.blackhole=%1$s 被黑洞拉成了意大利面. -death.attack.blender=%1$s 被切割成了很小的,以Byte计数的单位. -death.attack.boat=%1$s 被船砸扁了. -death.attack.boil=%1$s 被 %2$s 活生生煮沸了. -death.attack.boxcar=%1$s 被一节坠落的车厢砸扁了...好吧. -death.attack.broadcast=%1$s 的大脑融化了. -death.attack.building=%1$s 被从天而降的建筑砸中了. -death.attack.cheater=%1$s 的内脏变成了燕麦(???). -death.attack.chopperBullet=%1$s 被 %2$s 屠杀. -death.attack.cloud=%1$s 像在太阳下的冰棒一样融化. -death.attack.cmb=%1$s 被 %2$s 电的焦脆. -death.attack.digamma=%1$s 在追求真理时步入了深渊. -death.attack.electricity=%1$s 被电死. -death.attack.electrified=%1$s 被 %2$s 电死. -death.attack.euthanized=%1$s 被 %2$s 安乐死. -death.attack.euthanizedSelf2=%1$s 获得了达尔文奖. -death.attack.euthanizedSelf=%1$s 把自己安乐死了, 真鸡儿丢人. -death.attack.exhaust=%1$s 被火箭烤成了羊肉串. -death.attack.flamethrower=%1$s 被 %2$s 火化. -death.attack.flamethrower.item=%1$s 被 %2$s 用 %3$s火化. -death.attack.ice=%1$s 被 %2$s 冻成了冰棒. -death.attack.laser=%1$s 被 %2$s 变成了灰烬. -death.attack.laser.item=%1$s 被 %2$s 用 %3$s 变成了灰烬. -death.attack.lead=%1$s 死于铅中毒. -death.attack.lunar=%1$s 忘了给他的重要器官维持系统充电. -death.attack.meteorite=%1$s 被来自外太空的陨石击中,他可以去买彩票了. -death.attack.microwave=%1$s 被过量微波辐射而爆炸了. -death.attack.mku=%1$s 死于不知名的原因. -death.attack.monoxide=%1$s 忘了给一氧化碳探测器换电池. -death.attack.mudPoisoning=%1$s 死于毒泥浆中. -death.attack.nuclearBlast=%1$s 被核爆冲击波炸飞. -death.attack.overdose=%1$s 服药过量后窒息了. -death.attack.pc=%1$s 在粉红色的云中变成了一滩水. -death.attack.plasma=%1$s 被 %2$s 献祭了. -death.attack.radiation=%1$s 死于辐射. -death.attack.revolverBullet=%1$s 被 %2$s 爆头. -death.attack.revolverBullet.item=%1$s 被 %2$s 用 %3$s 爆头. -death.attack.rubble=%1$s 被挤压成了碎片. -death.attack.shrapnel=%1$s 被榴弹碎片炸得千疮百孔. -death.attack.spikes=%1$s 被刺了个透心凉. -death.attack.subAtomic1=%1$s 的原子被 %2$s 摧毁. -death.attack.subAtomic2=%1$s 因为被 %2$s 篡改了实际速度, 导致QPU没有对准. -death.attack.subAtomic3=由于 %2$s, 1$s 的偏差下降到1%以下. -death.attack.subAtomic4=%1$s 因为 %2$s 被零除了. -death.attack.subAtomic5=%1$s 因为 %2$s 无效了. -death.attack.suicide=%1$s 打爆了自己的头. -death.attack.taint=%1$s 死于恶性肿瘤. -death.attack.tau=%1$s 被 %2$s 用带负电荷的陶子打得千疮百孔. -death.attack.tauBlast=%1$s 对XVL1456充能时间过长, 被炸成碎片. -death.attack.teleporter=%1$s 被传送到虚空. - -desc.block.blastinfo=方块抗爆性: %s -desc.gui.assembler.warning=§c错误:§r 错误:此装配机需要组装机模板! -desc.gui.chemplant.warning=§c错误:§r 此化工装置需要化学配方模板! -desc.gui.gasCent.enrichment=§2浓缩§r$铀浓缩需要多个离心机串联.$两个离心串联$将仅分离出铀238,$四个离心串联将完全分离六氟化铀. -desc.gui.gasCent.output=§6流体传输§r$液体可以通过输出端口转移到$另一台离心机进行进一步处理. -desc.gui.nukeBoy.desc=§1需要组件:§r$ * 中子屏蔽罩$ * 铀235弹头$ * 次临界铀235标靶$ * 炸药$ * 点火器 -desc.gui.nukeGadget.desc=§1需要组件:§r$ * 4 个初代高能$ 内爆炸药阵列$ * 大型钚核心$ * 线路 -desc.gui.nukeMan.desc=§1需要组件:§r$ * 4 个初代高能$ 内爆炸药阵列$ * 钚核心$ * 炸弹点火装置 -desc.gui.nukeMike.desc=§1需要组件:§r$ * 4 个高能内爆炸药阵列$ * 钚核心$ * 氘冷却装置$ * 铀涂层氘罐$ * 氘罐 -desc.gui.nukeTsar.desc=§1需要组件:§r$ * 4 个高能内爆炸药阵列$ * 钚核心$§9可选:§r$ * 沙皇炸弹核心 -desc.gui.radiolysis.desc=§9说明§r$这种RTG比其他RTG效率更高, $配有一个辐解室,$用于裂解和灭菌. -desc.gui.rtgBFurnace.desc=需要至少15级热量来进行加工$热量越多,运行速度越快$超过最大速度后多余的热量不会产生任何影响$短半衰期的靶丸可能会衰变 -desc.gui.rtg.heat=§e当前热量级别: %s -desc.gui.rtg.pellets=可接受的靶丸: +crucible.steel=钢铁生产 +crucible.steelMeteoric=陨铁炼钢 +crucible.steelPig=生铁炼钢 +crucible.steelWrought=锻铁炼钢 +crucible.tcalloy=锝钢合金生产 +death.attack.acid=%1$s 掉进了酸里 +death.attack.acidPlayer=%1$s 被 %2$s 溶解 +death.attack.ams=%1$s 沐浴在尚未被人类科学命名的致命粒子中 +death.attack.amsCore=%1$s 在奇点之火中蒸发 +death.attack.asbestos=%1$s现在有权获得经济补偿 +death.attack.bang=%1$s 被炸成小块碎片 +death.attack.blackhole=%1$s 粉身碎骨 +death.attack.blender=%1$s 被切成小块 +death.attack.boat=%1$s 被船撞了 +death.attack.boil=%1$s被%2$s活活煮沸 +death.attack.boxcar=%1$s 被一节坠落的车厢撞死了...好吧 +death.attack.broadcast=%1$s 的大脑融化了 +death.attack.building=%1$s 被从天而降的建筑砸中了 +death.attack.cheater=%1$s 的肠子变成了燕麦(???) +death.attack.chopperBullet=%1$s 被 %2$s 屠杀 +death.attack.cloud=%1$s 像冰棒一样在太阳下融化 +death.attack.cmb=%1$s 被 %2$s 搞得嘶嘶作响 +death.attack.digamma=%1$s 踏入深渊 +death.attack.electricity=%1$s 被电死 +death.attack.electrified=%1$s 被 %2$s 电死 +death.attack.euthanized=%1$s 被 %2$s 安乐死 +death.attack.euthanizedSelf2=%1$s 获得了达尔文奖 +death.attack.euthanizedSelf=%1$s 把自己安乐死了,可真傻 +death.attack.exhaust=%1$s 被火箭烤成了羊肉串 +death.attack.flamethrower=%1$s 被 %2$s 火化 +death.attack.flamethrower.item=%1$s 被 %2$s 使用 %3$s 火化 +death.attack.ice=%1$s 被 %2$s 做成了冰棒 +death.attack.laser=%1$s 被 %2$s 变成了灰烬 +death.attack.laser.item=%1$s 被 %2$s 使用 %3$s 变成灰烬 +death.attack.lead=%1$s 死于铅中毒 +death.attack.lunar=%1$s 忘记了给重要器官充电 +death.attack.meteorite=%1$s 被来自外太空的陨石击中 +death.attack.microwave=%1s 因微波辐射爆炸 +death.attack.mku=%1$s 死于不明原因 +death.attack.monoxide=%1$s忘了换一氧化碳探测器的电池 +death.attack.mudPoisoning=%1$s 死于毒泥浆中 +death.attack.nuclearBlast=%1$s 被核爆炸飞 +death.attack.overdose=%1$s 上瘾并窒息 +death.attack.pc=%1$s 在粉红色的云中变成了一个水坑 +death.attack.plasma=%1$s 被 %2$s 烧死 +death.attack.radiation=%1$s 死于辐射 +death.attack.revolverBullet=%1$s 被 %2$s 用 %3$s 击中头部 +death.attack.revolverBullet.item=%1$s 被 %2$s 使用 %3$s 爆头 +death.attack.rubble=%1$s 被碎片压扁了 +death.attack.shrapnel=%1$s 被榴弹碎片炸得千疮百孔 +death.attack.spikes=%1$s被刺穿了 +death.attack.subAtomic1=%1$s 的原子已被 %2$s 销毁. +death.attack.subAtomic2=%1$s 因为被 %2$s 篡改了实际速度,导致QPU没有对准 +death.attack.subAtomic3=由于 %2$s,1$s 的偏差下降到1%以下 +death.attack.subAtomic4=%1$s 因为 %2$s 被零除了 +death.attack.subAtomic5=%1$s 因为 %2$s 无效了 +death.attack.suicide=%1$s 打爆了自己的头 +death.attack.taint=%1$s 死于恶性肿瘤 +death.attack.tau=%1$s 被 %2$s 用带负电荷的陶子射穿 +death.attack.tauBlast=%1$s 对XVL1456充能时间过长,被炸成碎片 +death.attack.teleporter=%1$s 被传送到虚空 +desc.gui.assembler.warning=§c错误:§r此机器需要装配机模板! +desc.gui.chemplant.warning=§c错误:§r此机器需要化工厂模板! +desc.gui.gasCent.enrichment=§2浓缩§r$浓缩铀需要串联$两个离心机串联将离心出$铀燃料,四个离心机串联$将完全分离出铀235。 +desc.gui.gasCent.output=§6流体输送§r$流体可通过输出端口输送至另一台离心机$进行进一步处理。 +desc.gui.nukeBoy.desc=§1需要:§r$ * 中子屏蔽罩$ * 铀-235弹头$ * 次临界铀-235标靶$ * 炸药$ * 点火器 +desc.gui.nukeGadget.desc=§1需要:§r$ * 4个 初代$ 炸药透镜阵列$ * 钚核心$ * 线路 +desc.gui.nukeMan.desc=§1需要:§r$ * 4个 初代$ 炸药透镜阵列$ * 钚核心$ * 点火器 +desc.gui.nukeMike.desc=§1需要:§r$ * 4个 炸药透镜阵列$ * 钚核心$ * 氘冷却装置$ * 铀涂层氘罐 * 氘罐 +desc.gui.nukeTsar.desc=§1需要:§r$ * 4个 炸药透镜阵列$ * 钚核心$§9可选:§r$ * 沙皇炸弹核心 +desc.gui.radiolysis.desc=§9说明§r$该RTG比其他RTG更高效,并且$配备了一个用于$裂解和灭菌的辐解室。 +desc.gui.rtgBFurnace.desc=处理$金-198需要至少15热量。此外,热量越多,运行速度越快$金-198可能会衰变为水银 +desc.gui.rtg.heat=§e当前热等级:%s +desc.gui.rtg.pellets=接受的靶丸: desc.gui.rtg.pelletHeat=%s (%s 热量) -desc.gui.rtg.pelletPower=%s (%s HE/tick) -desc.gui.template=§9模板§r$可以使用机器模板$文件夹制作模板. -desc.gui.turbinegas.automode=§2燃汽轮机自动节流模式§r$通过点击 "AUTO" 按钮, 燃汽轮机$将根据电网所需功率$自动调整发电量 -desc.gui.turbinegas.fuels=§6可接受的燃气:§r$ -desc.gui.turbinegas.warning=§c燃油或润滑油液位低!§r -desc.gui.upgrade=§l可接受的升级:§r -desc.gui.upgrade.afterburner= * §d加力燃烧§r: 最高为3级 -desc.gui.upgrade.effectiveness= * §a效率§r: 最高为3级 -desc.gui.upgrade.overdrive= * §7超频§r: 最高为3级 -desc.gui.upgrade.power= * §1节能§r: 最高为3级 -desc.gui.upgrade.speed= * §4速度§r: 最高为3级 -desc.gui.zirnox.coolant=§3冷却§r$二氧化碳将热量从反应堆核心转移到水中.$这会把水加热成蒸汽. $冷却和蒸汽生产的$效率取决于压力大小. -desc.gui.zirnox.pressure=§6压力§r$可以通过减少反应堆中的CO2量来降低压力.$但是, 压力过低, 冷却效率和$蒸汽产量会降低.$小心熔毁! -desc.gui.zirnox.warning1=§c错误:§r 反应堆正常运行$需要水! -desc.gui.zirnox.warning2=§c错误:§r 反应堆正常运行$需要二氧化碳! -desc.item.ammo.con_accuracy2=- 精确度大大降低 +desc.gui.rtg.pelletPower=%s (%s HE/刻) +desc.gui.template=§9模板§r$模板可由$机器模板文件夹制作。 +desc.gui.turbinegas.automode=§2自动涡轮机节流模式§r$通过单击“AUTO”按钮,涡轮机$将根据网络所需的功率自动调整发电量$ +desc.gui.turbinegas.fuels=§6可接受的燃料:§r +desc.gui.turbinegas.warning=§c燃油或润滑油液位低!§r +desc.gui.upgrade=§l可接受的升级:§r +desc.gui.upgrade.afterburner=*§d加力燃烧§r:堆叠至3级 +desc.gui.upgrade.effectiveness=*§a效率§r:堆叠至3级 +desc.gui.upgrade.overdrive=*§7超速§r:堆叠至3级 +desc.gui.upgrade.power=*§1节能§r:堆叠至3级 +desc.gui.upgrade.speed=*§4速度§r:堆叠至3级 +desc.gui.zirnox.coolant=§3冷却剂§r$CO2将热量从堆芯转移到水中$这会令它变成成超热蒸汽$冷却和蒸汽生产的效率取决于压力。 +desc.gui.zirnox.pressure=§6压力§r$排放二氧化碳可以降低压力$然而,压力过低,冷却效率和蒸汽产量将降低$小心熔毁! +desc.gui.zirnox.warning1=§c错误:§r反应堆正常运行需要水! +desc.gui.zirnox.warning2=§c错误:§r二氧化碳是反应堆正常运行所必需的! +desc.item.ammo.con_accuracy2=- 精度大幅降低 desc.item.ammo.con_damage=- 伤害大幅降低 desc.item.ammo.con_heavy_wear=- 大幅增加磨损 desc.item.ammo.con_ling_fire=- 没有火焰 @@ -908,27 +880,27 @@ desc.item.ammo.neu_boat=* 船 desc.item.ammo.neu_boxcar=* 车厢 desc.item.ammo.neu_building=* 建筑物 desc.item.ammo.neu_chlorophyte=* 叶绿 -desc.item.ammo.neu_eraser=* 为了消除一些大麻烦 -desc.item.ammo.neu_fun=* 和你的核谐家庭一起快乐的来放烟花玩耍吧! -desc.item.ammo.neu_heavy_metal=* 含重金属 -desc.item.ammo.neu_homing=* 自动追踪目标 -desc.item.ammo.neu_jolt=* 颠簸 +desc.item.ammo.neu_eraser=* 用于消除重大错误 +desc.item.ammo.neu_fun=* 全家其乐无穷! +desc.item.ammo.neu_heavy_metal=* 重金属 +desc.item.ammo.neu_homing=* 追踪 +desc.item.ammo.neu_jolt=* 震荡 desc.item.ammo.neu_leadburster=* 附着在表面并喷射子弹 -desc.item.ammo.neu_less_bouncy=* 霰弹更少 -desc.item.ammo.neu_maskman_flechette=* 发射一个能召唤出一场铀涂层镖弹碎片风暴的示踪剂 -desc.item.ammo.neu_maskman_meteorite=* 发射高伤害的子弹并召唤一颗小陨石 -desc.item.ammo.neu_more_bouncy=* 更多霰弹 -desc.item.ammo.neu_no_bounce=* 非霰弹 -desc.item.ammo.neu_no_con=* 没有任何负面作用 lol -desc.item.ammo.neu_starmetal=* 含星辉金属 -desc.item.ammo.neu_tracer=* 曳光弹 -desc.item.ammo.neu_uhh=* 啊哈 -desc.item.ammo.neu_warcrime1=* 从技术上讲使用它是犯了战争罪 -desc.item.ammo.neu_warcrime2=* 一颗子弹犯下两条战争罪! -desc.item.ammo.pro_accurate1=+ 准确性提高 -desc.item.ammo.pro_accurate2=+ 近乎完美的精确度 -desc.item.ammo.pro_balefire=+ B.F.野火 -desc.item.ammo.pro_bomb_count=+ 增加炸弹数量 +desc.item.ammo.neu_less_bouncy=* 弹性更小 +desc.item.ammo.neu_maskman_flechette=* 曳光弹,同时引发一场贫铀飞镖弹风暴 +desc.item.ammo.neu_maskman_meteorite=* 高伤害,同时召唤小陨石 +desc.item.ammo.neu_more_bouncy=* 额外弹性 +desc.item.ammo.neu_no_bounce=* 没有弹性 +desc.item.ammo.neu_no_con=* 没有缺点 +desc.item.ammo.neu_starmetal=* 星辉金属 +desc.item.ammo.neu_tracer=* 示踪剂 +desc.item.ammo.neu_uhh=* Uhhh +desc.item.ammo.neu_warcrime1=* 从技术上来讲触犯了战争罪 +desc.item.ammo.neu_warcrime2=* 一发触犯两条战争罪! +desc.item.ammo.pro_accurate1=+ 提升精度 +desc.item.ammo.pro_accurate2=+ 近乎完美的精度 +desc.item.ammo.pro_balefire=+ 野火 +desc.item.ammo.pro_bomb_count=+ 炸弹数量增加 desc.item.ammo.pro_caustic=+ 腐蚀性 desc.item.ammo.pro_chainsaw=+ 电锯 desc.item.ammo.pro_chlorine=+ 氯气 @@ -963,19 +935,18 @@ desc.item.ammo.pro_stunning=+ 眩晕 desc.item.ammo.pro_toxic=+ 剧毒 desc.item.ammo.pro_wear=+ 减少磨损 desc.item.ammo.pro_withering=+ 凋零 -desc.item.armorMod.display=来显示该盔甲上所安装的配件的效果 -desc.item.battery.charge=电量: %s / %sHE -desc.item.battery.chargePerc=电量: %s%% -desc.item.battery.chargeRate=充电速率: %sHE/tick -desc.item.battery.dischargeRate=放电速率: %sHE/tick -desc.item.detonator=已设置引爆位置!$未设置引爆位置! -desc.item.durability=耐久度: %s -desc.item.grenade.fuse=引爆延时: %s -desc.item.grenade.fuseImpact=接触爆炸 -desc.item.grenade.fuseInstant=即爆 -desc.item.gun.ammo=弹药量 %s -desc.item.gun.ammoBelt=自动从背包中装填 -desc.item.gun.ammoEnergy=能量; %sHE 每发 +desc.item.armorMod.display=显示已安装的装甲模块 +desc.item.battery.charge=储能: %s / %sHE +desc.item.battery.chargePerc=储能: %s%% +desc.item.battery.chargeRate=充电效率: %sHE/刻 +desc.item.battery.dischargeRate=放电效率: %sHE/刻 +desc.item.durability=耐久: %s +desc.item.grenade.fuse=引信: %s +desc.item.grenade.fuseImpact=碰炸 +desc.item.grenade.fuseInstant=瞬发 +desc.item.gun.ammo=弹药 %s +desc.item.gun.ammoBelt=从背包中使用 +desc.item.gun.ammoEnergy=能耗; %sHE 每发 desc.item.gun.ammoEnergyAlt=%sHE 每发 desc.item.gun.ammoMag=%s / %s desc.item.gun.ammoType=弹药类型: %s @@ -985,16 +956,18 @@ desc.item.gun.damageAlt=伤害: %s desc.item.gun.lore=查看深入的知识 desc.item.gun.loreFunc=查看深入功能 desc.item.gun.manufacturer=制造商: %s -desc.item.gun.name=枪械名称: %s -desc.item.gun.pellets=弹丸: %s - %s -desc.item.gun.penetration=护甲穿透值: %s -desc.item.kitArmor=现穿的护甲将被新护甲取代. -desc.item.kitHaz=防护服将取代现穿的护甲. -desc.item.kitPack=真便宜! -desc.item.kitPool=请在打开前清空你的背包! -desc.item.pileRod=§e用于插入钻削过的石墨$§e使用螺丝刀翘出$ -desc.item.rtgDecay=衰变为: %s -desc.item.rtgHeat=热量级别: %s +desc.item.gun.name=名称: %s +desc.item.gun.pellets=弹丸数:%s-%s +desc.item.gun.penetration=装甲穿透值: %s +desc.item.kitArmor=装甲将被新的装备取代。 +desc.item.kitHaz=装甲将被防护服取代。 +desc.item.kitPack=真便宜! +desc.item.kitPool=请在打开前清空背包库存! +desc.item.pileRod=§e使用钻孔石墨插入$§E使用螺丝刀拔出$ + + +desc.item.rtgDecay=衰变为:%s +desc.item.rtgHeat=功率级别:%s desc.item.storage.capacity=容量 %s%%s desc.item.storage.proscons=查看利弊列表 desc.misc.357=.357 马格南 @@ -1007,34 +980,18 @@ desc.misc.lore=§n-- 知识 -- desc.misc.lshift=§8按住 <§e§o左SHIFT§8§o> %s desc.misc.luna=§o20x155mm Lunatic desc.misc.meltPoint=熔点: §c%s -desc.misc.noPos=未设置触发位置! -desc.misc.pos=设置触发位置为 : %s, %s, %s -desc.misc.posSet=触发位置已设置! +desc.misc.noPos=未设置位置! +desc.misc.pos=将位置设置为:%s,%s,%s +desc.misc.posSet=位置已设置! desc.item.wasteCooling=在乏燃料池中冷却 -desc.item.upgrade.machine=采矿钻机:§r$自动激光采矿钻机:$电炉:§r$装配机:§r$化工厂:§r$油井:§r$矿物结晶机:§r$回旋加速器:§r$废气燃烧塔:§r$高能微波炮塔:§r$涡扇发电机:§r$力场范围升级§r$力场能量升级§r$采矿激光升级§r$气体离心机升级§r$ -desc.item.upgrade.speed=耗时 -%s%% / 耗电量 +%sHE/t$耗时 ÷%s / 耗电量 +%sHE/t$耗时 -%s%% / 耗电量 +%s%%$对撞速度 x%s$伤害 +%sdmg/t -desc.item.upgrade.effect=半径 +%sm / 耗电量 +%sHE/t$+%s%% 的几率不消耗物品 / 酸消耗量 +%smB$-%s%% 的几率延长加速器过热缓冲时间$+%s%% 发电量$攻击范围 +%sm -desc.item.upgrade.power=耗电量 -%sHE/t / 耗时 +%s%%$耗电量 -%s%% / 耗时 +%s%%$耗电量 -%skHE/t$耗电量 -%sHE/t$单次开火耗电 -%sHE/t -desc.item.upgrade.fortune=幸运 +%s / 耗时 +%s -desc.item.upgrade.afterburn=发电量 x%s / 燃料消耗 x%s$加力燃烧 +%ss$燃烧%smB燃气产生%sHE/t -desc.item.upgrade.forcefield=半径 +16 / 耗电 +500$最大能量 +50 / 耗电 +250$最多堆叠16个 -desc.item.upgrade.smelter=融化方块.够简单了. -desc.item.upgrade.shredder=自动粉碎矿石 -desc.item.upgrade.centrifuge=其作用不言自明 -desc.item.upgrade.crystallizer=你新的最好的朋友:) -desc.item.upgrade.screm=就像在《超级马里奥》里,所有的方块都是蟾蜍$但在这里是半条命的科学家.$他们在尖叫.很多尖叫. -desc.item.upgrade.nullifier=有50%%的几率用/dev/zero覆盖无用物品$有50%%的几率将无用物品移到/dev/null -desc.item.upgrade.gc_speed=允许对六氟化铀进行全同位素分离$§e离心机也会进入病态模式 -desc.item.zirnoxBreedingRod=§2[ZIRNOX锆诺克斯反应堆增殖棒]$§e放在燃料棒旁边以增殖$§e持续 %d ticks -desc.item.zirnoxRod=§a[ZIRNOX锆诺克斯反应堆燃料棒]$§e产生 %1$d 热量每tick$§e持续 %2$d ticks - -digamma.playerDigamma=玩家Ϝ迪伽马辐照水平: -digamma.playerHealth=玩家所受Ϝ迪伽马辐照影响: -digamma.playerRes=玩家Ϝ迪伽马防护水平: -digamma.title=玩家Ϝ迪伽马辐射自检器 - -entity.entity_cyber_crab.name=机械螃蟹 -entity.entity_elder_one.name=Quackos古老者 +desc.item.zirnoxBreedingRod=§2[ZIRNOX增殖棒]$§e放在燃料棒旁边增殖$§e持续 %d 刻 +desc.item.zirnoxRod=§a[ZIRNOX燃料棒]$§e每刻产生 %1$d 热量$§e持续 %2$d 刻 +digamma.playerDigamma=玩家F-迪伽马辐照水平: +digamma.playerHealth=玩家所受F-迪伽马辐照影响: +digamma.playerRes=玩家F-迪伽马防护水平: +digamma.title=玩家F-迪伽马辐射自检器 +entity.entity_cyber_crab.name=赛博螃蟹 +entity.entity_elder_one.name=上古鸭神 entity.entity_fucc_a_ducc.name=鸭子 entity.entity_glyphid.name=异虫 entity.entity_glyphid_behemoth.name=巨兽异虫 @@ -1054,24 +1011,20 @@ entity.entity_mob_nuclear_creeper.name=核爆爬行者 entity.entity_mob_phosgene_creeper.name=光气爬行者 entity.entity_mob_tainted_creeper.name=污染爬行者 entity.entity_mob_volatile_creeper.name=不稳定爬行者 -entity.entity_plastic_bag.name=塑料袋 -entity.entity_taint_crab.name=腐化机械螃蟹 -entity.entity_tesla_crab.name=磁暴机械螃蟹 -entity.hbm.entity_balls_o_tron.name=世-界-毁-灭-者 O-TRON -entity.hbm.entity_balls_o_tron_seg.name=世-界-毁-灭-者 O-TRON 躯干 +entity.entity_taint_crab.name=污染螃蟹 +entity.entity_tesla_crab.name=磁暴螃蟹 +entity.hbm.entity_balls_o_tron.name=机械蠕虫 +entity.hbm.entity_balls_o_tron_seg.name=机械蠕虫 entity.hbm.entity_bullet.name=子弹 entity.hbm.entity_rocket.name=火箭弹 -entity.hbm.entity_schrabnel.name=弹片 - +entity.hbm.entity_schrabnel.name=Schrabnel excavator.crusher=粉碎开关 excavator.drill=挖掘开关 excavator.silktouch=精准采集开关 excavator.veinminer=连锁挖矿开关 excavator.walling=填充开关 - -flare.ignition=点火开关 -flare.valve=燃气阀门 - +flare.ignition=点火装置 +flare.valve=流量阀 fluid.acid_fluid=酸 fluid.corium_fluid=堆芯熔融物 fluid.mud_fluid=毒泥 @@ -1116,7 +1069,7 @@ gun.make.MANN=Open Mann公司 gun.make.MAXIM=海勒姆·马克沁 gun.make.METRO=地铁枪手 gun.make.MWT=MWT原型实验室 -gun.make.NAWS=Kayarm工业 +gun.make.NAWS=Kayarm Industries gun.make.ERFURT=埃尔福特机械制造厂 gun.make.NONE=- gun.make.RAYTHEON=导弹系统公司 @@ -1129,75 +1082,74 @@ gun.make.SACO=萨科防卫军械 gun.make.TULSKY=图拉武器厂 gun.make.UAC=联合宇宙航空公司 gun.make.UNKNOWN=??? -gun.make.WESTTEK=西部科技 -gun.make.WGW=威廉·古斯特洛夫·沃克 -gun.make.WINCHESTER=温彻斯特连发轻武器公司 -gun.make.WINCHESTER_BIGMT=温彻斯特连发轻武器公司 / 巨山研发中心 - -gun.name.ar15_50=AR-15 .50 BMG 模式 -gun.name.baeAR=不列颠标准型突击步枪 -gun.name.bel=B.F.野火蛋弹射器 -gun.name.benelli=贝内利M4 Super 90霰弹枪 -gun.name.benelliDrum=贝内利M4 Super 90霰弹枪(弹鼓) +gun.make.WESTTEK=WestTek研究设施 +gun.make.WGW=威廉·古斯特洛夫·维尔克 +gun.make.WINCHESTER=温彻斯特速射武器公司 +gun.make.WINCHESTER_BIGMT=温彻斯特速射武器公司/大型MT +gun.name.ar15_50=AR-15 .50BMG型 +gun.name.baeAR=英国制式突击步枪 +gun.name.bel=野火蛋发射器 +gun.name.benelli=伯奈利M4 Super 90霰弹枪 +gun.name.benelliDrum=伯奈利M4 Super 90霰弹枪 (泵动供弹改进型) gun.name.bio=RI No. 2 Mark 1 gun.name.bolter=Manticora Pattern爆弹枪 gun.name.congoLake=刚果湖水泵动榴弹发射器 gun.name.cPython=柯尔特蟒蛇 -gun.name.cz53=CZ53单兵火神炮 -gun.name.cz57=CZ57复仇火神炮 -gun.name.dart=气动射针枪 -gun.name.deagle=IMI沙漠之鹰 -gun.name.emp=EMP磁暴步枪 -gun.name.extinguisher=PROTEX6kg灭火器 -gun.name.ffiV=普通左轮手枪 -gun.name.ffiVInox=强化左轮手枪 -gun.name.ffiVLead=核子左轮手枪 -gun.name.ffiVN1=梦魇左轮手枪(初代) -gun.name.ffiVN2=梦魇左轮手枪(黑暗) -gun.name.ffiVUltra=Sa326元素左轮手枪 -gun.name.ffivBling=黄金左轮手枪 -gun.name.ffivSatur=土星金属手枪 -gun.name.g36=黑克勒 & 科赫 G36突击步枪 -gun.name.gPistol=HK69榴弹手枪 -gun.name.gustav=M1卡尔·古斯塔夫无后座力步枪 -gun.name.ifHorseshoe=IF-18蹄铁军工诺华克 -gun.name.ifPit=IF-18蹄铁军工红钥匙左轮手枪 -gun.name.ifScope=小皮的IF-18蹄铁军工左轮手枪 -gun.name.ifStorm=IF-18蹄铁军工银色风暴 -gun.name.ifVanity=黑杰克的IF-18蹄铁军工五发装左轮枪 -gun.name.karl=M1卡尔火箭筒 -gun.name.ks23=萨缪尔-23大口径霰弹枪 -gun.name.lacunae=CZ33地狱火神 -gun.name.lasetDet=霍普维尔激光引爆器 -gun.name.lunaAR=1986-”毘沙门天“式突击步枪 -gun.name.lunaGun=1978-”毗纽天“式标配自卫武器 (2改型) -gun.name.lunaHLR=1944-“嫦娥”式轻机枪 -gun.name.lunaShotty=1978-”关羽“式霰弹枪 (1改型) -gun.name.lunaSMG=1956-”阿难答“式冲锋枪 -gun.name.lunaSniper=1915 “后羿” 式反物质来复枪 +gun.name.cz53=CZ53 单兵转轮机枪 +gun.name.cz57=CZ57 复仇者机枪 +gun.name.dart=针枪 +gun.name.deagle=以色列军事工业公司沙漠之鹰 +gun.name.emp=EMP投射器 +gun.name.extinguisher=PROTEX灭火器6kg +gun.name.ffiV=FFI Viper +gun.name.ffiVInox=FFI Viper Inox +gun.name.ffiVLead=FFI Viper Lead +gun.name.ffiVN1=FFI Viper N1 +gun.name.ffiVN2=FFI Viper N2 +gun.name.ffiVUltra=FFI Viper Ultra +gun.name.ffivBling=FFI Viper Bling +gun.name.ffivSatur=FFI Viper D-25A +gun.name.g36=HK G36突击步枪 +gun.name.gPistol=HK69A1 手持单发榴弹发射器 +gun.name.gustav=卡尔·古斯塔夫M1无后坐力炮 +gun.name.ifHorseshoe=IF-18 蹄铁 +gun.name.ifPit=IF-18 蹄铁 Bottomless Pit +gun.name.ifScope=IF-18 蹄铁 Scoped +gun.name.ifStorm=IF-18 蹄铁 银色风暴 +gun.name.ifVanity=IF-18 蹄铁 Vanity +gun.name.karl=M1 卡尔·古斯塔夫 +gun.name.ks23=KS-23霰弹枪 +gun.name.lacunae=Auntie Lacunae +gun.name.lasetDet=霍普维尔激光雷管 +gun.name.lunaAR=1986 Bishamonten式突击步枪 +gun.name.lunaGun=1978 Rāhula type Standard Issue Sidearm (Revision 2) +gun.name.lunaHLR=1944嫦娥式轻机枪 +gun.name.lunaShotty=1978年关羽式散弹枪(第1次修订) +gun.name.lunaSMG=1956 ānanda type Submachine Gun +gun.name.lunaSniper=1915后羿式反器材步枪 gun.name.lunaTWR=时间扭曲步枪 -gun.name.m2=.50口径勃朗宁机枪, M2, HB -gun.name.m42=M-42战术核弹射器 -gun.name.m42MIRV=M-42 核弹弹射器"试验性子母弹头 -gun.name.m60= 7.62 mm口径机枪, M60 +gun.name.m2=M2式勃朗宁大口径重机枪 +gun.name.m42=M-42战术核弹发射器 +gun.name.m42MIRV=M-42实验MIRV +gun.name.m60=7.62毫米口径M60机枪 gun.name.maxim=马克沁机枪 -gun.name.maximDouble=双管马克沁机枪 -gun.name.mg3=通用MG3机枪 - .50 模式 -gun.name.mp40=Mp40冲锋枪 -gun.name.nerf=设计者未知的NERF发射器 -gun.name.osipr=看守者暗能量脉冲步枪 -gun.name.panz=坦克杀手54 -gun.name.quadro=四联装制导便携式电视制导导弹发射器 +gun.name.maximDouble=双重马克沁机枪 +gun.name.mg3=MG-42通用机枪 +gun.name.mp40=MP40冲锋枪 +gun.name.nerf=某些无良记者眼中的大规模杀伤性武器 +gun.name.osipr=守望标准型脉冲步枪 +gun.name.panz=反坦克火箭来复枪 54 +gun.name.quadro=OpenQuadro便携式导弹发射器 gun.name.remington870=雷明顿870 -gun.name.revolverCursed=被诅咒的不列颠标准发行版左轮手枪 -gun.name.sauer=斯坦.索尔的萨缪尔-23霰 -gun.name.spas12= -gun.name.spiw=H&R弗莱切特镖 -gun.name.stinger=FIM-92“毒刺”便携式防空导弹 -gun.name.stingerOneSky=天马防空导弹 +gun.name.revolverCursed=不列颠标准问题电动手枪 +gun.name.sauer=绍尔猎枪 +gun.name.spas12=弗兰基SPAS-12式12号霰弹枪 +gun.name.spiw=H&R SPIW +gun.name.stinger=FIM-92毒刺便携式防空系统 +gun.name.stingerOneSky=The One Sky 毒刺便携式防空系统 gun.name.supershotty=双管战斗霰弹枪 -gun.name.tau=XVL1456 负陶子加农炮原型 -gun.name.tommy9=9mm口径M1A1冲锋枪 +gun.name.tau=XVL1456 陶子加农炮 +gun.name.tommy9=M1A1冲锋枪9毫米型 gun.name.tommy=M1A1冲锋枪 gun.name.topaz=重型火焰燃烧器 gun.name.uacCarbine=UAC-41卡宾枪 @@ -1297,15 +1249,14 @@ hbmfluid.death=锇酸溶液 hbmfluid.deuterium=氘 hbmfluid.diesel=柴油 hbmfluid.diesel_crack=裂化柴油 -hbmfluid.diesel_crack_reform=高辛烷值裂解柴油 +hbmfluid.diesel_crack_reform=高辛烷值裂化柴油 hbmfluid.diesel_reform=高辛烷值柴油 hbmfluid.egg=蛋溶解液 hbmfluid.estradiol=雌二醇溶液 hbmfluid.ethanol=乙醇 -hbmfluid.enderjuice=末影液 +hbmfluid.enderjuice=末影果汁 hbmfluid.fishoil=鱼油 hbmfluid.fracksol=压裂液 -hbmfluid.fullerene=富勒烯溶液 hbmfluid.gas=天然气 hbmfluid.gas_coker=焦化气 hbmfluid.gasoline=含铅汽油基油 @@ -1361,7 +1312,7 @@ hbmfluid.potassium_chloride=氯化钾溶液 hbmfluid.puf6=六氟化钚 hbmfluid.radiosolvent=高性能溶剂 hbmfluid.reclaimed=再生油 -hbmfluid.redmud=红泥浆 +hbmfluid.redmud=红色泥浆 hbmfluid.reformate=重整油 hbmfluid.reformgas=重整气 hbmfluid.salient=绿色液体 @@ -1380,7 +1331,7 @@ hbmfluid.spentsteam=低压蒸汽 hbmfluid.steam=蒸汽 hbmfluid.sulfuric_acid=硫酸 hbmfluid.sunfloweroil=葵花籽油 -hbmfluid.superhotsteam=超热浓蒸汽 +hbmfluid.superhotsteam=超热蒸汽 hbmfluid.syngas=合成气 hbmfluid.thorium_salt=液态钍盐 hbmfluid.thorium_salt_depleted=贫化液态钍盐 @@ -1396,27 +1347,7 @@ hbmfluid.watz=毒泥浆 hbmfluid.woodoil=木油 hbmfluid.xenon=氙气 hbmfluid.xpjuice=经验汁 -hbmfluid.xylene=BTX苯-甲苯-二甲苯混合物 - -hbmfluid.Trait.Combustible=[可燃烧发电]$产生 §c%sHE §6每桶$燃料等级: §c%s -hbmfluid.Trait.Combustible.FuelGrade=低$中$高$航空级$气态 -hbmfluid.Trait.Coolable=热容量: %s TU$导热效率: %s%% -hbmfluid.Trait.Corrosive=[强腐蚀性]$[腐蚀性] -hbmfluid.Trait.Flammable=[可燃烧产热]$产生 §c%sTU §e每桶 -hbmfluid.Trait.Poison=[有毒气体] -hbmfluid.Trait.PWRModerator=[PWR中子通量倍增]$核心中子通量 %s%s%% -hbmfluid.Trait.Toxin=[毒素] -hbmfluid.Trait.VentRadiation=[放射性] -hbmfluid.TraitSimple.Amat=[反物质] -hbmfluid.TraitSimple.Delicious=[美味] -hbmfluid.TraitSimple.Gaseous=[气体] -hbmfluid.TraitSimple.Gaseous_ART=[室温下为气体] -hbmfluid.TraitSimple.LeadContainer=[需要用危险品罐容纳] -hbmfluid.TraitSimple.Leaded=[含铅燃料] -hbmfluid.TraitSimple.Liquid=[液体] -hbmfluid.TraitSimple.Plasma=[等离子体] -hbmfluid.TraitSimple.Viscous=[粘性] - +hbmfluid.xylene=轻质芳烃(BTX) hbmpseudofluid.none=空 hbmpseudofluid.heuf6=高浓缩六氟化铀 hbmpseudofluid.meuf6=中浓缩六氟化铀 @@ -1596,12 +1527,12 @@ item.ammo_4gauge_explosive.name=23mm榴弹 item.ammo_4gauge_flechette.name=4号箭霰弹 item.ammo_4gauge_flechette_phosphorus.name=4号箭霰弹[白磷] item.ammo_4gauge_kampf.name=23mm火箭弹 -item.ammo_4gauge_semtex.name=23mm挖掘榴弹 -item.ammo_4gauge_sleek.name=4口径鹿弹[IF-R&D] -item.ammo_4gauge_slug.name=四口径实心独头弹 -item.ammo_4gauge_titan.name=四口径泰坦杀手弹 -item.ammo_4gauge_vampire.name=4口径反吸血鬼木桩霰弹 -item.ammo_4gauge_void.name=4口径电离子霰弹 +item.ammo_4gauge_semtex.name=23mm采矿弹药 +item.ammo_4gauge_sleek.name=4号鹿弹[IF-R&D] +item.ammo_4gauge_slug.name=四号实心独头弹 +item.ammo_4gauge_titan.name=4号Quacker鹿弹 +item.ammo_4gauge_vampire.name=4号木签弹 +item.ammo_4gauge_void.name=4号电离粒子弹 item.ammo_50ae.name=.50AE子弹 item.ammo_50ae_ap.name=.50AE子弹[AP] item.ammo_50ae_chlorophyte.name=.50AE子弹[叶绿] @@ -1620,17 +1551,17 @@ item.ammo_50bmg_phosphorus.name=.50BMG子弹[白磷] item.ammo_50bmg_sleek.name=.50BMG子弹[IF-R&D] item.ammo_50bmg_star.name=.50BMG子弹[星辉] item.ammo_556.name=5.56mm子弹 -item.ammo_556_ap.name=5.56mm子弹[穿甲弹] -item.ammo_556_chlorophyte.name=5.56mm弹药[绿藻] -item.ammo_556_du.name=5.56mm子弹[贫铀涂层] -item.ammo_556_flechette.name=5.56mm镖形弹 -item.ammo_556_flechette_chlorophyte.name=5.56mm镖形弹弹药[绿藻] -item.ammo_556_flechette_du.name=5.56mm镖形弹 [贫铀涂层] -item.ammo_556_flechette_incendiary.name=5.56mm镖形弹 [燃烧] -item.ammo_556_flechette_phosphorus.name=5.56mm镖形弹 [白磷弹] -item.ammo_556_flechette_sleek.name=5.56mm镖形弹[IF-R&D] +item.ammo_556_ap.name=5.56mm子弹[AP] +item.ammo_556_chlorophyte.name=5.56mm子弹[叶绿] +item.ammo_556_du.name=5.56mm子弹[贫铀] +item.ammo_556_flechette.name=5.56mm弗莱彻子弹 +item.ammo_556_flechette_chlorophyte.name=5.56mm弗莱彻子弹[叶绿] +item.ammo_556_flechette_du.name=5.56mm弗莱彻子弹 [贫铀穿甲] +item.ammo_556_flechette_incendiary.name=5.56mm弗莱彻子弹 [燃烧] +item.ammo_556_flechette_phosphorus.name=5.56mm弗莱彻子弹 [白磷穿甲] +item.ammo_556_flechette_sleek.name=5.56mm弗莱彻子弹[IF-R&D] item.ammo_556_k.name=5.56mm空包弹 -item.ammo_556_phosphorus.name=5.56mm子弹[白磷弹] +item.ammo_556_phosphorus.name=5.56mm子弹[白磷] item.ammo_556_sleek.name=5.56mm子弹[IF-R&D] item.ammo_556_star.name=5.56mm子弹 [星辉] item.ammo_556_tracer.name=5.56mm 子弹[曳光弹] @@ -1670,13 +1601,13 @@ item.ammo_coilgun.name=钨制线圈枪子弹 item.ammo_coilgun_du.name=铀铁合金制线圈枪子弹 item.ammo_coilgun_rubber.name=橡胶制线圈枪子弹 item.ammo_container.name=万能弹药盒 -item.ammo_dart.name=塑料飞镖 [凋零] -item.ammo_dart_nerf.name=NERF飞镖 -item.ammo_dart_nuclear.name=塑料飞镖 [定时爆炸] -item.ammo_dgk.name=200发双管近防炮"霍华德"弹药箱 -item.ammo_fireext.name=灭火器水罐 -item.ammo_fireext_foam.name=灭火器泡沫罐 -item.ammo_fireext_sand.name=灭火器硼砂罐 +item.ammo_dart.name=塑料镖[凋零] +item.ammo_dart_nerf.name=NERF 飞镖 +item.ammo_dart_nuclear.name=塑料镖[定时炸药] +item.ammo_dgk.name=双联守门员近防系统200发弹药 +item.ammo_fireext.name=灭火器 水罐 +item.ammo_fireext_foam.name=灭火器 泡沫罐 +item.ammo_fireext_sand.name=灭火器 硼砂罐 item.ammo_folly.name=银弹 item.ammo_folly_du.name=银弹[贫铀, 不爆炸] item.ammo_folly_nuclear.name=银弹[核子] @@ -1684,7 +1615,7 @@ item.ammo_fuel.name=柴油罐 item.ammo_fuel_gas.name=毒气罐 item.ammo_fuel_napalm.name=凝固汽油罐 item.ammo_fuel_phosphorus.name=白磷罐 -item.ammo_fuel_vaporizer.name=挥发性燃料罐 +item.ammo_fuel_vaporizer.name=汽化罐 item.ammo_grenade.name=40mm榴弹 item.ammo_grenade_concussion.name=40mm榴弹[震荡] item.ammo_grenade_finned.name=40mm榴弹[尾翼稳定] @@ -1718,8 +1649,8 @@ item.ammo_nuke_barrel.name=小型核废料桶 item.ammo_nuke_high.name=迷你核弹 (高当量) item.ammo_nuke_low.name=迷你核弹 (低当量) item.ammo_nuke_pumpkin.name=南瓜炸弹 -item.ammo_nuke_safe.name=迷你核弹 (安全) -item.ammo_nuke_tots.name=迷你核弹 (小型散射弹丸) +item.ammo_nuke_safe.name=迷你核弹 (安全) +item.ammo_nuke_tots.name=迷你核弹 (幼体) item.ammo_rocket.name=84mm火箭弹 item.ammo_rocket_canister.name=84mm 火箭弹[榴霰弹] item.ammo_rocket_digamma.name=§4归 零§r @@ -1732,7 +1663,7 @@ item.ammo_rocket_phosphorus.name=84mm火箭弹[白磷] item.ammo_rocket_rpc.name=84mm火箭弹[飞行电锯] item.ammo_rocket_shrapnel.name=84mm火箭弹[破片] item.ammo_rocket_sleek.name=84mm火箭弹[IF-R&D] -item.ammo_rocket_toxic.name=84mm火箭弹[化学毒气] +item.ammo_rocket_toxic.name=84mm火箭弹[化学] item.ammo_shell.name=240mm炮弹 item.ammo_shell_apfsds_du.name=240mm 贫铀尾翼稳定脱壳穿甲弹 item.ammo_shell_apfsds_t.name=240mm 钨心尾翼稳定脱壳穿甲弹 @@ -1760,14 +1691,9 @@ item.ams_catalyst_strontium.name=锶反应催化剂 item.ams_catalyst_thorium.name=钍反应催化剂 item.ams_catalyst_tungsten.name=钨反应催化剂 item.ams_core_eyeofharmony.name=和谐之眼[AMS/DFC核心] -item.ams_core_eyeofharmony.desc=一颗恒星自行崩塌,$仅仅几纳秒就变成了黑洞,$被时间冻结了.$如果我不了解相关领域的话,$我会说这是某个人编出来的一些$关于深空魔法的故作高深的鬼话.$你还欠我十块钱. item.ams_core_sing.name=活跃奇点[AMS/DFC核心] -item.ams_core_sing.desc=一种被修正的、未定义的时空状态$用于协助胶子间聚变和时空湮灭.$是的,这会缓慢而稳定地摧毁$宇宙本身结构,但至少你可以用它给你的$烤面包机供电$所以一切都安好. -item.ams_core_thingy.name=暮光闪闪的皇冠[AMS/DFC核心] -item.ams_core_thingy.desc=...$...$...我还拿着这个吗?$这是个小金属制品.$我不知道它是从哪里来的,也不知道它是干什么的,$也许他们是在垃圾场发现的,$然后把它当作某种古董艺术品卖掉.$事实上如果不是因为我可以把它塞进一个巨大的激光反应堆里,$我可能会把它扔回到它属于的地方$----垃圾桶. -item.ams_core_thingy_hide.desc=是的,我甚至不会质疑这个. +item.ams_core_thingy.name=Thingy[AMS/DFC核心] item.ams_core_wormhole.name=微型虫洞[AMS/DFC核心] -item.ams_core_wormhole.desc=数十亿个纳米虫洞云无法主动从$另一个维度获取物质$而是将所有物质转化为$纯能量.这意味着$你正在积极地破坏另一个$维度,像吸一盒果汁$一样吸干它.$无论如何,这个维度可能很糟糕.$我敢打赌里面全是黄蜂或是别的什么垃圾,伙计,$而我讨厌这些东西. item.ams_focus_blank.name=空白稳定器焦点 item.ams_focus_booster.name=较弱的约束场和核心能量注入:$更多的热量产生,更多的能量。 item.ams_focus_booster.desc=较弱的约束场和核心能量注入:$更多的热量产生,更多的能量。 @@ -1948,7 +1874,7 @@ item.blade_meteorite.name=陨石刀 item.blade_titanium.name=钛扇片 item.blade_tungsten.name=钨强化扇片 item.blades_advanced_alloy.name=高级合金刀片 -item.blades_desh.name=德什制刀片 +item.blades_desh.name=Desh制刀片 item.blades_steel.name=钢制刀片 item.blades_titanium.name=钛制刀片 item.blowtorch.name=喷灯 @@ -1978,7 +1904,6 @@ item.bottle_empty.name=空可乐瓶 item.bottle_mercury.name=一瓶水银 item.bottle_nuka.name=核子可乐 item.bottle_opener.name=Hbm自制开瓶器 -item.bottle_opener.desc=我自己的开瓶器.$谨慎使用! item.bottle_quantum.name=量子核子可乐 item.bottle_rad.name=辐射S~核子可乐 item.bottle_sparkle.name=S~核子可乐 @@ -2088,7 +2013,7 @@ item.canned_yogurt.desc=可能坏掉了,但管它呢 item.canteen_13.name=Vault13水壶 item.canteen_fab.name=极品伏特加 item.canteen_vodka.name=伏特加 -item.cap_fritz.name=Fritz弗里茨可乐瓶盖 +item.cap_fritz.name=弗里茨瓶盖 item.cap_korl.name=Korl瓶盖 item.cap_nuka.name=核子可乐瓶盖 item.cap_quantum.name=樱桃味核子可乐瓶盖 @@ -2132,26 +2057,25 @@ item.centrifuge_element.name=离心元件 item.centrifuge_tower.name=离心塔 item.chainsaw.name=链锯 item.cheese.name=奶酪 -item.cheese_quesadilla.name=墨西哥奶酪饼 -item.cheese_quesadilla.desc=这就是50年份的酵母感染对你的影响. -item.chemical_dye.black.name=化学染料 (黑色) -item.chemical_dye.blue.name=化学染料 (蓝色) -item.chemical_dye.brown.name=化学染料 (棕色) -item.chemical_dye.cyan.name=化学染料 (青色) -item.chemical_dye.gray.name=化学染料 (灰色) -item.chemical_dye.green.name=化学染料 (绿色) -item.chemical_dye.lightblue.name=化学染料 (浅蓝色) -item.chemical_dye.lime.name=化学染料 (石灰色) -item.chemical_dye.magenta.name=化学染料 (洋红色) -item.chemical_dye.orange.name=化学染料 (橙色) -item.chemical_dye.pink.name=化学染料 (粉色) -item.chemical_dye.purple.name=化学染料 (紫色) -item.chemical_dye.red.name=化学染料 (红色) -item.chemical_dye.silver.name=化学染料 (浅灰色) -item.chemical_dye.white.name=化学染料 (白色) -item.chemical_dye.yellow.name=化学染料 (黄色) -item.chemistry_set.name=化学玻璃仪器 -item.chemistry_set_boron.name=化学玻璃仪器(硼玻璃) +item.cheese_quesadilla.name=奶酪油炸玉米粉饼 +item.chemical_dye.black.name=化学染料(黑色) +item.chemical_dye.blue.name=化学染料(蓝色) +item.chemical_dye.brown.name=化学染料(棕色) +item.chemical_dye.cyan.name=化学染料(青色) +item.chemical_dye.gray.name=化学染料(灰色) +item.chemical_dye.green.name=化学染料(绿色) +item.chemical_dye.lightblue.name=化学染料(浅蓝色) +item.chemical_dye.lime.name=化学染料(石灰) +item.chemical_dye.magenta.name=化学染料(品红色) +item.chemical_dye.orange.name=化学染料(橙色) +item.chemical_dye.pink.name=化学染料(粉色) +item.chemical_dye.purple.name=化学染料(紫色) +item.chemical_dye.red.name=化学染料(红色) +item.chemical_dye.silver.name=化学染料(浅灰色) +item.chemical_dye.white.name=化学染料(白色) +item.chemical_dye.yellow.name=化学染料(黄色) +item.chemistry_set.name=实验室玻璃器皿 +item.chemistry_set_boron.name=实验室玻璃器皿(硼玻璃) item.chemistry_template.name=化工厂模板: item.chernobylsign.name=辐射警告标志战斧 item.chlorine_pinwheel.name=氯气转轮 @@ -2376,7 +2300,6 @@ item.debris_graphite.name=热石墨块 item.debris_metal.name=断裂金属棒 item.debris_shrapnel.name=走道碎片 item.definitelyfood.name=完全不脏牌军粮 -item.definitelyfood.desc=是的,$我厌倦了不得不外出$为了找东西吃而不至于饿死,$所以这就是我天才般的解决的方案:$ $吃点可食用的泥土. item.defuser.name=高科技拆弹装置 item.defuser_gold.name=黄金剪线钳 item.demon_core_closed.name=封闭的恶魔核心 @@ -2391,16 +2314,13 @@ item.designator_arty_range.name=远程火炮遥控器 item.designator_manual.name=手动目标指示器 item.designator_range.name=远程目标指示器 item.detonator.name=起爆器 -item.detonator.desc=Shift右击来设置触发位置,$右击来触发! -item.detonator.pos.desc=未设置触发位置!$连接到: %s, %s, %s item.detonator_de.name=死亡炸弹 item.detonator_deadman.name=死亡雷管 item.detonator_laser.name=激光起爆器 item.detonator_multi.name=多发起爆器 item.deuterium_filter.name=氘过滤器 item.diamond_gavel.name=钻石槌 -item.diamond_gavel.desc=那个关于钻石沙砾的笑话! 它现在终于讲得通了!!$ $§9能造成尽可能多的伤害. -item.dieselsuit_boots.name=柴油动力装甲靴 +item.dieselsuit_boots.name=柴油动力高跟鞋 item.dieselsuit_helmet.name=柴油动力头戴式环境传感器 item.dieselsuit_legs.name=柴油动力腿部伺服系统 item.dieselsuit_plate.name=柴油动力控制器 @@ -2469,17 +2389,17 @@ item.envsuit_boots.name=M1TTY环保套装靴子 item.envsuit_helmet.name=M1TTY环保套装头盔 item.envsuit_legs.name=M1TTY环保套装护腿 item.envsuit_plate.name=M1TTY环保套装胸甲 -item.euphemium_boots.name=Ep元素靴子 -item.euphemium_capacitor.name=Ep元素电容器 -item.euphemium_capacitor.desc=允许被动分散累积的正能量. -item.euphemium_helmet.name=Ep元素头盔 -item.euphemium_kit.name=Ep元素工具箱 -item.euphemium_legs.name=Ep元素护腿 -item.euphemium_plate.name=Ep元素胸甲 -item.euphemium_stopper.name=Ep元素-阻滞者 -item.explosive_lenses.name=高能内爆炸药阵列 -item.explosive_lenses.desc=由8个PBX聚合物粘结炸药装配而成,带有一个薄型铝推进器, $硬铝外壳和小型桥丝式雷管. -item.fabsols_vodka.name=Fabsol的伏特加 +item.euphemium_boots.name=Ep靴子 +item.euphemium_capacitor.name=Ep电容 +item.euphemium_capacitor.desc=允许被动分散累积的正能量。 +item.euphemium_helmet.name=Ep头盔 +item.euphemium_kit.name=Ep工具箱 +item.euphemium_legs.name=Ep护腿 +item.euphemium_plate.name=Ep胸甲 +item.euphemium_stopper.name=Ep-阻滞者 +item.explosive_lenses.name=炸药透镜阵列 +item.explosive_lenses.desc=8个PBX炸药组装的阵列,带有一个薄的$铝推进器、硬铝外壳和$小型桥丝雷管。 +item.fabsols_vodka.name=Fabsol伏特加 item.factory_core_advanced.name=高级工厂能源组件 item.factory_core_titanium.name=工厂能源组件 item.fallout.name=一堆辐射尘 @@ -2522,8 +2442,8 @@ item.fluid_identifier_multi.info=通用流体识别码: item.fluid_identifier_multi.info2=次要类型: item.fluid_tank_empty.name=空通用流体罐 item.fluid_tank_full.name=通用流体罐: -item.fluid_tank_lead_empty.name=空的危险品流体罐 -item.fluid_tank_lead_full.name=危险品流体罐: +item.fluid_tank_lead_empty.name=空危险品罐 +item.fluid_tank_lead_full.name=危险品罐: item.fluorite.name=氟石粉 item.flywheel_beryllium.name=铍制飞轮 item.fmn.name=氟硝西泮片 @@ -2552,7 +2472,7 @@ item.fusion_shield_chlorophyte.name=叶绿金属聚变反应堆覆层 item.fusion_shield_desh.name=Desh聚变反应堆覆层 item.fusion_shield_tungsten.name=钨聚变反应堆覆层 item.fusion_shield_vaporwave.name=蒸汽波反应堆覆层 -item.gadget_core.name=大型钚核心 +item.gadget_core.name=钚核心 item.gadget_explosive.name=炸药 item.gadget_kit.name=小玩意 套件 item.gadget_wireing.name=线路 @@ -2636,7 +2556,7 @@ item.gun_avenger.name=CZ57复仇者机枪 item.gun_b92.name=§9B92能量手枪§r item.gun_b92_ammo.name=§9B92能量单元§r item.gun_b93.name=§cB93能量手枪§r -item.gun_benelli.name=伯奈利自动霰弹枪(弹鼓) +item.gun_benelli.name=伯奈利自动霰弹枪(Drum Mod) item.gun_bf.name=BEL item.gun_bf_ammo.name=Mk.V小型AMAT-炮弹 –野火型 item.gun_bio_revolver.name=Atlas @@ -2689,8 +2609,8 @@ item.gun_lever_action.name=马腿杠杆式霰弹枪[原版] item.gun_lever_action_ammo.name=12x74 鹿弹 item.gun_lever_action_dark.name=马腿杠杆式霰弹枪[黑暗] item.gun_lever_action_sonata.name=自杀霰弹 -item.gun_lever_action_sonata_2.name=§c奏鸣的麦克风§r -item.gun_lunatic_marksman.name=月都科技狙击步枪 +item.gun_lever_action_sonata_2.name=§cSonata的麦克风§r +item.gun_lunatic_marksman.name=Lunatic狙击步枪 item.gun_m2.name=勃朗宁M2HB型重机枪 item.gun_minigun.name=CZ53机枪 item.gun_mirv.name=M42核弹发射器 "试验型MIRV" @@ -2751,9 +2671,9 @@ item.gun_uboinik.name=Uboinik item.gun_uboinik_ammo.name=12x70 鹿弹 item.gun_uzi.name=Uzi冲锋枪 item.gun_uzi_ammo.name=.22LR子弹 -item.gun_uzi_saturnite.name=土星金属Uzi -item.gun_uzi_saturnite_silencer.name=带消音器的土星金属Uzi -item.gun_uzi_silencer.name=带消音器的Uzi +item.gun_uzi_saturnite.name=土星Uzi冲锋枪 +item.gun_uzi_saturnite_silencer.name=带消音器的土星Uzi冲锋枪 +item.gun_uzi_silencer.name=带消音器的Uzi冲锋枪 item.gun_xvl1456.name=XVL1456陶子加农炮原型机 item.gun_xvl1456_ammo.name=贫化铀235子弹 item.gun_zomg.name=奇点能湮灭射线“ZOMG炮” @@ -2831,9 +2751,8 @@ item.ingot_boron.name=硼锭 item.ingot_c4.name=一块C-4 item.ingot_cadmium.name=镉锭 item.ingot_calcium.name=钙锭 -item.ingot_cdalloy.name=镉钢合金锭 -item.ingot_cft.name=结晶富勒烯 -item.ingot_chainsteel.name=沉重链钢 +item.ingot_cdalloy.name=镉钢锭 +item.ingot_chainsteel.name=重链钢 item.ingot_co60.name=钴-60锭 item.ingot_cobalt.name=钴锭 item.ingot_combine_steel.name=CMB钢锭 @@ -2889,15 +2808,14 @@ item.ingot_red_copper.name=紫铜锭 item.ingot_reiium.name=雷恩锭 item.ingot_rubber.name=橡胶锭 item.ingot_saturnite.name=土星锭 -item.ingot_schrabidate.name=Sa326元素酸化铁锭 -item.ingot_schrabidium.name=Sa326异变铀金属锭 -item.ingot_schrabidium_fuel.name=Sa326异变铀金属燃料锭 -item.ingot_schraranium.name=低丰度Sa326异变铀金属锭 -item.ingot_schraranium.desc=在Sa326异变铀金属嬗变器中由铀锭嬗变而来 -item.ingot_semtex.name=塞姆汀塑胶炸药 -item.ingot_semtex.desc=塞姆汀H塑料炸药$适用于多种应用的明星炸药.$可食用 -item.ingot_smore.name=S'more饼干 -item.ingot_solinium.name=Sa327索林锭 +item.ingot_schrabidate.name=Sa酸铁锭 +item.ingot_schrabidium.name=Sa326锭 +item.ingot_schrabidium_fuel.name=Sa326燃料锭 +item.ingot_schraranium.name=低丰度Sa326锭 +item.ingot_schraranium.desc=在Sa326嬗变器中由铀制成 +item.ingot_semtex.name=塞姆汀塑胶炸药块 +item.ingot_smore.name=S'more 锭 +item.ingot_solinium.name=Sa327锭 item.ingot_sr90.name=锶-90锭 item.ingot_starmetal.name=§9星辉锭§r item.ingot_steel.name=钢锭 @@ -2941,17 +2859,12 @@ item.iv_xp.name=经验包 item.iv_xp_empty.name=空的经验包 item.jackt.name=时尚防弹夹克 item.jackt2.name=时尚防弹夹克2:东京漂移 -item.jetpack.desc=本身可单独穿戴! -item.jetpack_boost.name=强力喷气背包 -item.jetpack_boost.desc=拥有强劲动力的矢量喷气背包.$燃油消耗量大幅增加. -item.jetpack_break.name=建筑工喷气背包 -item.jetpack_break.desc=可以让你在空中自动悬停的常规动力喷气背包.$潜行将关闭悬停模式.$悬停模式将消耗更少的燃料并增加你的空中机动性. +item.jetpack_boost.name=弹跳背包 +item.jetpack_break.name=缓降背包 item.jetpack_fly.name=喷气背包 -item.jetpack_fly.desc=常规动力喷气背包,提供简单的上升动力. item.jetpack_tank.name=喷气背包备用燃料罐 item.jetpack_vector.name=矢量喷气背包 -item.jetpack_vector.desc=超高机动性喷气背包.$更高的燃料消耗率. -item.journal_bj.name=被威士忌泡湿透的笔记本 +item.journal_bj.name=被威士忌浸透的笔记本 item.journal_pip.name=生存主义者日记 item.journal_silver.name=承包商注释 item.key.name=钥匙 @@ -2972,9 +2885,7 @@ item.laser_crystal_digamma.name=Digamma迪伽马激光晶体 item.laser_crystal_dnt.desc=双聚态中子-Spark费米子超晶体 item.laser_crystal_dnt.name=Spark激光晶体 item.lead_gavel.name=铅槌 -item.lead_gavel.desc=你被判决为铅中毒. item.lemon.name="柠檬" -item.lemon.desc=嗯,不错. item.letter.name=快捷邮件 item.levitation_unit.name=重力控制器 item.lignite.name=褐煤 @@ -2987,9 +2898,7 @@ item.liquidator_plate.name=核废土清道夫套装胸甲 item.lithium.name=锂锭 item.lodestone.name=磁石 item.loop_stew.name=程序猿专属早餐 -item.loop_stew.desc=一份非常非常非常健康的早餐. item.loops.name=五彩麦圈 -item.loops.desc=bro,我能拿你一些麦圈吗? item.loot_10.name=10号导弹战利箱 item.loot_15.name=15号导弹战利箱 item.loot_misc.name=普通导弹战利箱 @@ -3016,44 +2925,28 @@ item.mechanism_rifle_2.name=先进步枪机构 item.mechanism_special.name=高科技武器机构 item.med_bag.name=医疗包 item.med_ipecac.name=吐根酊催吐剂 -item.med_ipecac.desc=苦涩的果汁会使你的胃$强行排出里面的东西. item.med_ptsd.name=PTSD治疗药物 -item.med_ptsd.desc=这根本不是PTSD治疗药物,$只是换了个瓶子装的吐根酊! item.med_schiziphrenia.name=抗精神分裂症药物 -item.med_schiziphrenia.desc=求求了,让那声音消失,就一会儿.$ $...$最好不要服用. item.medal_liquidator.name=核废土清道夫勋章 item.meltdown_tool.name=达洛夫快速熔毁装置 -item.memespoon.name=§e花园园丁 -item.memespoon.desc=§810级铲子$§b持用者在火箭跳跃时可造成暴击$§c减缓 20%% 开火速度$§c没有随机的暴击 +item.memespoon.name=§ee花园园丁 item.memory.name=item.null.name item.mese_gavel.name=Mese槌 item.mese_pickaxe.name=Mese镐 item.meteor_charm.name=陨石项链 item.meteor_remote.name=陨石召唤器 item.meteorite_sword.name=陨石剑 -item.meteorite_sword.desc=由一颗坠落之星锻造而成$比大多数地球上的刀刃锋利 -item.meteorite_sword_seared.name=陨石剑 (炽热) -item.meteorite_sword_seared.desc=火焰增强了刀刃$让它更加强大 -item.meteorite_sword_reforged.name=陨石剑 (重铸) -item.meteorite_sword_reforged.desc=这把剑已经被重铸了$以改正过去的缺陷 -item.meteorite_sword_hardened.name=陨石剑 (硬化) -item.meteorite_sword_hardened.desc=极高的压力让$刀刃进一步的硬化了 -item.meteorite_sword_alloyed.name=陨石剑 (合金化) -item.meteorite_sword_alloyed.desc==钴元素填充剑身上的裂缝$进一步加强了这把剑 -item.meteorite_sword_machined.name=陨石剑 (机械加工) -item.meteorite_sword_machined.desc=使用了先进的机械来$进一步改进刀刃 -item.meteorite_sword_treated.name=陨石剑 (治疗) -item.meteorite_sword_treated.desc=化学物质的应用使$这把剑更加强大 -item.meteorite_sword_etched.name=陨石剑 (蚀刻) -item.meteorite_sword_etched.desc=酸清洗了原材料,$打造出了这把完美的剑 -item.meteorite_sword_bred.name=陨石剑 (增殖) -item.meteorite_sword_bred.desc=巨大的热量和辐射$压缩了这把剑的材料 -item.meteorite_sword_irradiated.name=陨石剑 (辐照处理) -item.meteorite_sword_irradiated.desc=原子的力量$赋予了这把剑新的力量 -item.meteorite_sword_fused.name=陨石剑 (熔融) -item.meteorite_sword_fused.desc=这把剑已经沐浴过了$来自星星的远古力量 -item.meteorite_sword_baleful.name=陨石剑 (B.F野火烧炼处理) -item.meteorite_sword_baleful.desc=这把剑在远远超过$正常材料所能承受的温度下被锻造出来 +item.meteorite_sword_seared.name=陨石剑(烧焦) +item.meteorite_sword_reforged.name=陨石剑(重铸) +item.meteorite_sword_hardened.name=陨石剑(硬化) +item.meteorite_sword_alloyed.name=陨石剑(合金) +item.meteorite_sword_machined.name=陨石剑(机械加工) +item.meteorite_sword_treated.name=陨石剑(精制) +item.meteorite_sword_etched.name=陨石剑(刻蚀) +item.meteorite_sword_bred.name=陨石剑(增殖) +item.meteorite_sword_irradiated.name=陨石剑(辐照) +item.meteorite_sword_fused.name=陨石剑(熔融) +item.meteorite_sword_baleful.name=陨石剑(凶恶) item.mike_cooling_unit.name=氘冷却装置 item.mike_core.name=铀涂层氘罐 item.mike_deut.name=氘罐 @@ -3088,7 +2981,6 @@ item.missile_nuclear_cluster.name=热核导弹 item.missile_rain.name=炸弹雨 item.missile_schrabidium.name=Sa326导弹 item.missile_shuttle.name=万金罗宾航天飞机 -item.missile_shuttle.desc=今夜, 在bo''om gear真人秀上:$James吸含铅汽油吸嗨了,$Richard把整个项目的预算都花在了$一张损坏的PNG色图文件上,$而我忘记了打开RBMK反应堆的$水循环系统,等反应过来,$整个基地都被炸飞了. item.missile_skin_camo.name=导弹外壳:迷彩 item.missile_skin_color.desc=我再也找不到我的导弹了! item.missile_skin_desert.name=导弹外壳:沙漠迷彩 @@ -3108,7 +3000,6 @@ item.missile_skin_soviet_glory.desc=услуга перевода недосту item.missile_skin_soviet_stank.name=导弹外壳:苏维埃不朽 item.missile_skin_soviet_stank.desc=这个真的很有60年代的味道。 item.missile_soyuz.name=联盟-FG运载火箭 -item.missile_soyuz.desc=Skin:$Original$Luna Space Center$Post War item.missile_soyuz_lander.name=联盟号轨道舱 item.missile_soyuz_lander.desc=劣质着陆器! item.missile_strong.name=强化型高爆导弹 @@ -3119,8 +3010,8 @@ item.mold_base.name=毛坯铸造模具 item.mold.name=铸造模具 item.morning_glory.name=牵牛花 item.motor.name=马达 -item.motor_bismuth.name=铋制马达 -item.motor_desh.name=德什制马达 +item.motor_bismuth.name=铋马达 +item.motor_desh.name=Desh马达 item.mp_c_1.name=1级导弹制导芯片 item.mp_c_2.name=2级导弹制导芯片 item.mp_c_3.name=3级导弹制导芯片 @@ -3255,7 +3146,6 @@ item.multitool_miner.name=动力拳套[采矿激光] item.multitool_silk.name=动力拳套[精准采集] item.multitool_sky.name=动力拳套[划破天际] item.mysteryshovel.name=易碎锹 -item.mysteryshovel.desc=失去了却没有被忘记 item.n2_charge.name=大型炸药 item.neutrino_lens.name=中子透镜 item.neutron_reflector.name=中子反射板 @@ -3370,31 +3260,31 @@ item.ore.titanium=钛 item.ore.tungsten=钨 item.ore.thorium=钍 item.ore.uranium=铀 -item.ore_bedrock.name=%s 基岩矿粉 -item.ore_byproduct.b_aluminium.name=结晶铝碎片 -item.ore_byproduct.b_bismuth.name=结晶铋碎片 -item.ore_byproduct.b_calcium.name=结晶钙碎片 -item.ore_byproduct.b_copper.name=结晶铜碎片 -item.ore_byproduct.b_iron.name=结晶铁碎片 -item.ore_byproduct.b_lead.name=结晶铅碎片 -item.ore_byproduct.b_lithium.name=结晶锂碎片 -item.ore_byproduct.b_polonium.name=结晶钋碎片 -item.ore_byproduct.b_radium.name=结晶镭碎片 -item.ore_byproduct.b_silicon.name=结晶硅碎片 -item.ore_byproduct.b_sulfur.name=结晶硫碎片 -item.ore_byproduct.b_technetium.name=结晶锝碎片 -item.ore_byproduct.b_titanium.name=结晶钛碎片 -item.ore_byproduct.b_uranium.name=结晶铀碎片 -item.ore_centrifuged.name=离心 %s 基岩矿粉 -item.ore_cleaned.name=洗净 %s 基岩矿粉 -item.ore_deepcleaned.name=深度清洁 %s 基岩矿粉 -item.ore_enriched.name=富集 %s 基岩矿粉 -item.ore_nitrated.name=硝化 %s 基岩矿粉 -item.ore_nitrocrystalline.name=硝化结晶 %s 基岩矿粉 -item.ore_purified.name=纯化 %s 基岩矿粉 -item.ore_radcleaned.name=辐照清洁 %s 基岩矿粉 -item.ore_seared.name=灼烧 %s 基岩矿粉 -item.ore_separated.name=分离提纯 %s 基岩矿粉 +item.ore_bedrock.name=基岩%s矿 +item.ore_byproduct.b_aluminium.name=铝晶体碎片 +item.ore_byproduct.b_bismuth.name=铋晶体碎片 +item.ore_byproduct.b_calcium.name=钙晶体碎片 +item.ore_byproduct.b_copper.name=铜晶体碎片 +item.ore_byproduct.b_iron.name=铁晶体碎片 +item.ore_byproduct.b_lead.name=铅晶体碎片 +item.ore_byproduct.b_lithium.name=锂晶体碎片 +item.ore_byproduct.b_polonium.name=钋晶体碎片 +item.ore_byproduct.b_radium.name=镭晶体碎片 +item.ore_byproduct.b_silicon.name=硅晶体碎片 +item.ore_byproduct.b_sulfur.name=硫晶体碎片 +item.ore_byproduct.b_technetium.name=锝晶体碎片 +item.ore_byproduct.b_titanium.name=钛晶体碎片 +item.ore_byproduct.b_uranium.name=铀晶体碎片 +item.ore_centrifuged.name=离心%s矿 +item.ore_cleaned.name=清洁%s矿 +item.ore_deepcleaned.name=深清洁%s矿 +item.ore_enriched.name=富集%s矿 +item.ore_nitrated.name=硝化%s矿 +item.ore_nitrocrystalline.name=亚硝基结晶%s矿 +item.ore_purified.name=净化%s矿 +item.ore_radcleaned.name=经辐射清洁的%s矿 +item.ore_seared.name=灼热的%s矿 +item.ore_separated.name=分离的%s矿 item.overfuse.name=奇异螺丝刀 item.overfuse.desc=说啥? item.oxy_mask.name=氧气面罩 @@ -3435,7 +3325,6 @@ item.particle_strange.name=奇夸克胶囊 item.particle_tachyon.name=超光速粒子密封胶囊 item.parts_legendary.name=传奇零件 item.peas.name=豌豆 -item.peas.desc=他接受了你的贡品. item.pedestal_steel.name=钢底座 item.pellet_advanced.name=高级Watz性能增强剂 item.pellet_antimatter.name=反物质团 @@ -3522,7 +3411,6 @@ item.plan_c.desc=致死 item.plant_item.mustardwillow.name=芥子柳叶 item.plant_item.rope.name=麻绳 item.plant_item.tobacco.name=烟叶 -item.plastic_bag.name=塑料袋 item.plate_advanced_alloy.name=高级合金板 item.plate_aluminium.name=铝板 item.plate_armor_ajr.name=铁皮装甲板 @@ -3558,7 +3446,6 @@ item.plate_saturnite.name=土星板 item.plate_schrabidium.name=Sa326板 item.plate_steel.name=钢板 item.plate_titanium.name=钛板 -item.plate_welded.name=焊接的%s板 item.polaroid.name=偏光片 item.pollution_detector.name=污染探测器 item.powder_actinium.name=锕粉 @@ -3569,7 +3456,6 @@ item.powder_asbestos.name=石棉粉 item.powder_asbestos.desc=§o\"Sniffffffff- MHHHHHHMHHHHHHHHH\"§r item.powder_ash.coal.name=煤灰 item.powder_ash.fly.name=飞尘 -item.powder_ash.fullerene.name=富勒烯 item.powder_ash.misc.name=灰尘 item.powder_ash.soot.name=细烟灰 item.powder_ash.wood.name=木灰 @@ -3590,7 +3476,7 @@ item.powder_caesium.name=铯粉 item.powder_calcium.name=钙粉 item.powder_cerium.name=铈粉 item.powder_cerium_tiny.name=小撮铈粉 -item.powder_chlorocalcite.name=氯方解石粉 +item.powder_chlorocalcite.name=氯方解石 item.powder_chlorophyte.name=叶绿粉 item.powder_cloud.name=云粉末 item.powder_co60.name=钴-60粉 @@ -3612,8 +3498,8 @@ item.powder_diamond.name=钻石粉 item.powder_dineutronium.name=双聚中子态素粉 item.powder_dura_steel.name=高速钢粉 item.powder_emerald.name=绿宝石粉 -item.powder_euphemium.name=Ep元素粉 -item.powder_euphemium.desc=粉色的粉末..$尝起来像草莓. +item.powder_euphemium.name=Ep粉 +item.powder_euphemium.desc=粉红色$尝起来像草莓。 item.powder_fertilizer.name=工业肥料 item.powder_fire.name=火焰粉 item.powder_fire.desc=用于多用途炸弹:燃烧弹很有趣! @@ -3692,7 +3578,6 @@ item.primer_buckshot.name=鹿弹底火[x12] item.protection_charm.name=守护项链 item.prototype_kit.name=原型 套件 item.pudding.name=布丁 -item.pudding.desc=如果他做了呢?$如果他没有呢?$如果这个世界是布丁做的呢? item.pwr_fuel.bfb_am_mix.name=燃料级镅压水堆BFB燃料棒 item.pwr_fuel.bfb_pu241.name=钚-241压水堆BFB棒 item.pwr_fuel.hea242.name=HEA-242 高浓缩度镅-242压水堆燃料棒 @@ -3743,45 +3628,44 @@ item.radaway.name=消辐宁 item.radaway_flush.name=超级消辐宁 item.radaway_strong.name=强效消辐宁 item.radx.name=防辐射药 -item.radx.desc=增加0.2(37%%)的抗辐射能力,持续3分钟 -item.rag.name=破布 -item.rag.desc=丢进水中合成湿破布.$右击尿在破布上. -item.rag_damp.name=湿破布 -item.rag_piss.name=尿湿润的破布 -item.rbmk_fuel_balefire.name=RBMK石墨式反应堆野火燃料棒 -item.rbmk_fuel_balefire_gold.name=激活态金-198 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_drx.name=§cϜ迪伽马粒子 RBMK石墨式反应堆燃料棒§r -item.rbmk_fuel_empty.name=空 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_flashlead.name=激活态铅 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_hea241.name=HEA-241 高浓缩度镅-241 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_hea242.name=HEA-242 高浓缩度镅-242 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_heaus.name=HEAus 高浓缩度奥金 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_hen.name=HEN 高浓缩度镎-237 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_hes.name=HES 高浓缩度Sa-326 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_hep.name=HEP-239 高浓缩度钚-239 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_hep241.name=HEP-241 高浓缩度钚-241 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_heu233.name=HEU-233 高浓缩度铀-233 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_heu235.name=HEU-235 高浓缩度铀-235 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_lea.name=LEA 低浓缩度镅-242 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_leaus.name=LEAus 低浓缩度奥金 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_lep.name=LEP 低浓缩度钚-239 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_les.name=LES 低浓缩度Sa-326 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_mea.name=MEA 中浓缩度镅-242 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_men.name=MEN 中浓缩度镎-237 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_mep.name=MEP 中浓缩度钚-239 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_mes.name=MES 中浓缩度Sa-326 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_meu.name=MEU 中浓缩度铀-235 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_mox.name=MOX 钚-铀混合RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_po210be.name=钋210-铍RBMK石墨式反应堆中子源 -item.rbmk_fuel_pu238be.name=钚238-铍RBMK石墨式反应堆中子源 -item.rbmk_fuel_ra226be.name=镭226-铍RBMK石墨式反应堆中子源 -item.rbmk_fuel_thmeu.name=ThMEU 中浓缩度铀-235导向钍 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_ueu.name=NU 未浓缩铀 RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_zfb_am_mix.name=ZFB 锆混合反应堆级镅快速增殖式RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_zfb_bismuth.name=ZFB 锆混合铋快速增殖式RBMK石墨式反应堆燃料棒 -item.rbmk_fuel_zfb_pu241.name=ZFB 锆混合钚-241快速增殖式RBMK石墨式反应堆燃料棒 -item.rbmk_lid.name=RBMK石墨式反应堆覆盖层 -item.rbmk_lid_glass.name=RBMK石墨式反应堆玻璃覆盖层 +item.radx.desc=在3分钟内增加0.2(37%)的抗辐射能力 +item.rag.name=布 +item.rag_damp.name=湿布 +item.rag_piss.name=沾有尿的布 +item.rbmk_fuel_balefire.name=RBMK反应堆野火燃料棒 +item.rbmk_fuel_balefire_gold.name=RBMK反应堆激活态金-198燃料棒 +item.rbmk_fuel_drx.name=§cRBMK反应堆F迪伽马粒子燃料棒§r +item.rbmk_fuel_empty.name=空 RBMK反应堆燃料棒 +item.rbmk_fuel_flashlead.name=RBMK反应堆闪光铅燃料棒 +item.rbmk_fuel_hea241.name=HEA-241 RBMK反应堆高浓缩度镅-241燃料棒 +item.rbmk_fuel_hea242.name=HEA-242 RBMK反应堆高浓缩度镅-242燃料棒 +item.rbmk_fuel_heaus.name=HEAus RBMK反应堆高浓缩度奥斯燃料棒 +item.rbmk_fuel_hen.name=HEN RBMK反应堆高浓缩度镎燃料棒 +item.rbmk_fuel_hes.name=HES RBMK反应堆高浓缩度Sa326燃料棒 +item.rbmk_fuel_hep.name=HEP-239 RBMK反应堆高浓缩度钚-239燃料棒 +item.rbmk_fuel_hep241.name=HEP-241 RBMK反应堆高浓缩度钚-241燃料棒 +item.rbmk_fuel_heu233.name=HEU-233 RBMK反应堆高浓缩度铀-233燃料棒 +item.rbmk_fuel_heu235.name=HEU-235 RBMK反应堆高浓缩度铀-235燃料棒 +item.rbmk_fuel_lea.name=LEA RBMK反应堆低浓缩度镅-242燃料棒 +item.rbmk_fuel_leaus.name=LEAus RBMK反应堆低浓缩度奥斯燃料棒 +item.rbmk_fuel_lep.name=LEP RBMK反应堆低浓缩度钚-239燃料棒 +item.rbmk_fuel_les.name=LES RBMK反应堆低浓缩度Sa326燃料棒 +item.rbmk_fuel_mea.name=MEA RBMK反应堆中浓缩度镅-242燃料棒 +item.rbmk_fuel_men.name=MEN RBMK反应堆中浓缩度镎-237燃料棒 +item.rbmk_fuel_mep.name=MEP RBMK反应堆中浓缩度钚-239燃料棒 +item.rbmk_fuel_mes.name=MES RBMK中浓缩度Sa326燃料棒 +item.rbmk_fuel_meu.name=MEU RBMK中浓缩度铀-235燃料棒 +item.rbmk_fuel_mox.name=MOX RBMK反应堆燃料棒 +item.rbmk_fuel_po210be.name=钋210-铍 RBMK反应堆中子源 +item.rbmk_fuel_pu238be.name=钚238-铍 RBMK反应堆中子源 +item.rbmk_fuel_ra226be.name=镭226-铍 RBMK反应堆中子源 +item.rbmk_fuel_thmeu.name=ThMEU RBMK反应堆中浓缩度铀-233导向钍燃料棒 +item.rbmk_fuel_ueu.name=NU RBMK反应堆未浓缩铀燃料棒 +item.rbmk_fuel_zfb_am_mix.name=ZFB 燃料级镅RBMK反应堆燃料棒 +item.rbmk_fuel_zfb_bismuth.name=ZFB 铋RBMK反应堆燃料棒 +item.rbmk_fuel_zfb_pu241.name=ZFB 钚-241RBMK反应堆燃料棒 +item.rbmk_lid.name=RBMK反应堆覆盖层 +item.rbmk_lid_glass.name=RBMK反应堆玻璃覆盖层 item.rbmk_pellet_balefire.name=野火燃料芯块 item.rbmk_pellet_balefire_gold.name=激活态金-198燃料芯块 item.rbmk_pellet_drx.name=§cF迪伽马粒子燃料芯块§r @@ -3932,16 +3816,16 @@ item.rod_lithium.name=锂棒 item.rod_mox_fuel.name=核反应堆 MOX燃料棒 item.rod_mox_fuel_depleted.name=核反应堆 枯竭MOX燃料棒 item.rod_neptunium.name=镎燃料棒 -item.rod_of_discord.name=混沌传送法杖 +item.rod_of_discord.name=混沌传送杖 item.rod_plutonium.name=钚棒 -item.rod_plutonium_fuel.name=钚燃料棒 -item.rod_plutonium_fuel_depleted.name=枯竭钚燃料棒 -item.rod_polonium.name=钋-210棒 -item.rod_pu238.name=钚238燃料棒 -item.rod_pu239.name=钚239燃料棒 -item.rod_pu240.name=钚240燃料棒 -item.rod_quad_balefire.name=四联BF燃料棒 -item.rod_quad_balefire_blazing.name=炽热的四联BF燃料棒 +item.rod_plutonium_fuel.name=核反应堆 钚燃料棒 +item.rod_plutonium_fuel_depleted.name=核反应堆 枯竭钚燃料棒 +item.rod_polonium.name=钋棒 +item.rod_pu238.name=钚-238燃料棒 +item.rod_pu239.name=钚-239燃料棒 +item.rod_pu240.name=钚-240燃料棒 +item.rod_quad_balefire.name=四联野火燃料棒 +item.rod_quad_balefire_blazing.name=炽热的四联野火燃料棒 item.rod_quad_coolant.name=四联燃料棒[冷却液] item.rod_quad_euphemium.name=枯竭的四联Sa326燃料棒 item.rod_quad_lead.name=四联铅棒 @@ -4049,18 +3933,16 @@ item.sat_resonator.name=X晶体共振卫星 item.sat_scanner.name=绘测和资源探测卫星 item.sawblade.name=锯片 item.schnitzel_vegan.name=“素”肉排 - -item.schrabidium_axe.name=Sa326异变铀金属斧 -item.schrabidium_boots.name=Sa326异变铀金属靴子 -item.schrabidium_hammer.name=Sa326异变铀金属锤 -item.schrabidium_hammer.desc=尽管上面写着 "+1000000000"$的伤害", 但它实际上是 "一击必杀任何东西" -item.schrabidium_helmet.name=Sa326异变铀金属头盔 -item.schrabidium_hoe.name=Sa326异变铀金属锄 -item.schrabidium_legs.name=Sa326异变铀金属护腿 -item.schrabidium_pickaxe.name=Sa326异变铀金属镐 -item.schrabidium_plate.name=Sa326异变铀金属胸甲 -item.schrabidium_shovel.name=Sa326异变铀金属锹 -item.schrabidium_sword.name=Sa326异变铀金属剑 +item.schrabidium_axe.name=Sa326斧 +item.schrabidium_boots.name=Sa326靴子 +item.schrabidium_hammer.name=Sa326锤 +item.schrabidium_helmet.name=Sa326头盔 +item.schrabidium_hoe.name=Sa326锄 +item.schrabidium_legs.name=Sa326护腿 +item.schrabidium_pickaxe.name=Sa326镐 +item.schrabidium_plate.name=Sa326胸甲 +item.schrabidium_shovel.name=Sa326锹 +item.schrabidium_sword.name=Sa326剑 item.scrap.name=废料 item.scrap_nuclear.name=放射性废料 item.scrap_oil.name=油性废料 @@ -4082,14 +3964,10 @@ item.servo_set.name=伺服装置 item.servo_set_desh.name=Desh伺服装置 item.shackles.name=枷锁 item.shimmer_axe.name=闪耀斧 -item.shimmer_axe.desc=木材! -item.shimmer_axe.desc.hide=shim的工具箱得到了 扩-展 item.shimmer_axe_head.name=重型斧头 item.shimmer_handle.name=强化聚合物手柄 item.shimmer_head.name=重型锤头 item.shimmer_sledge.name=闪耀锤 -item.shimmer_sledge.desc=可以破坏一切东西,甚至包括传送门方块. -item.shimmer_sledge.desc.hide=shimmer别$放下那把锤子$你会伤到别人的$shimmer别$shimmer求你了 item.singularity.name=奇点 item.singularity_counter_resonant.name=可控反振谐奇点 item.singularity_micro.name=微型奇点 @@ -4177,7 +4055,7 @@ item.steel_shovel.name=钢锹 item.steel_sword.name=钢剑 item.stick_c4.name=C-4炸药棒 item.stick_dynamite.name=炸药棒 -item.stick_dynamite_fishing.name=炸鱼用炸药棒 +item.stick_dynamite_fishing.name=捕鱼炸药棒 item.stick_semtex.name=塞姆汀塑胶炸药棒 item.stick_tnt.name=TNT棒 item.stopsign.name=停车标志战斧 @@ -4211,7 +4089,6 @@ item.tank_waste_7.name=泥浆容器 item.tank_waste_8.name=泥浆容器 item.telepad.name=传送部件 item.tem_flakes.name=Tem薄片 -item.tem_flakes.desc=能回复一颗心的廉价Tem薄片!!!$能回复一颗心的Tem薄片$能回复生命值的Tem薄片(昂贵) item.template_folder.name=机器模板文件夹 item.template_folder.desc=机器模板:纸张+染料$流体识别码:铁板+染料$锻模:空白锻模 $警报声轨:绝缘体+钢板 item.test_nuke_igniter.name=点火器 @@ -4242,10 +4119,10 @@ item.titanium_shovel.name=钛锹 item.titanium_sword.name=钛剑 item.toothpicks.name=牙签 item.train.cargo_tram.name=平板载货电车 -item.trenchmaster_boots.name=战术大师的靴子 -item.trenchmaster_helmet.name=战术大师的头盔 -item.trenchmaster_legs.name=战术大师的护腿 -item.trenchmaster_plate.name=战术大师的胸甲 +item.trenchmaster_boots.name=Trenchmaster的靴子 +item.trenchmaster_helmet.name=Trenchmaster的头盔 +item.trenchmaster_legs.name=Trenchmaster的护腿 +item.trenchmaster_plate.name=Trenchmaster的胸甲 item.trinitite.name=玻璃石 item.tritium_deuterium_cake.name=氚氘饼 item.tritium_deuterium_cake.desc=不是真正的蛋糕,而是很棒的$聚变燃料! @@ -4265,9 +4142,7 @@ item.turret_rocket_ammo.name=火箭炮塔弹药 item.turret_spitfire_ammo.name=防空炮弹 item.turret_tau_ammo.name=陶子炮塔铀弹药 item.twinkie.name=小蛋糕 -item.twinkie.desc=600年前就过期了! item.ullapool_caber.name=阿勒浦长木杆 -item.ullapool_caber.desc=苏格兰式高效面部切除术.$一个清醒的人会扔掉它... item.undefined.name=形态未定义物质 item.upgrade_5g.name=5G辐射发射器升级 item.upgrade_afterburn_1.name=一级粉色机器升级 @@ -4308,14 +4183,7 @@ item.v1.name=V1 item.volcanic_pickaxe.name=熔岩镐 item.wand_d.name=调试魔杖 item.wand_k.name=建筑魔杖 -item.wand_k.block=保存的方块: %s -item.wand_k.desc=创造模式专有物品$"毁灭往往带来创造"$(右击以选择点,$shift右击选择放置方块种类!) -item.wand_k.null=未选择位置! -item.wand_k.pos=坐标: %s, %s, %s item.wand_s.name=结构魔杖 -item.wand_s.desc=创造模式专有物品$"每个人都能使用的快速建造多方块结构的工具!"$(shift右击以切换到下一结构,$右击以生成结构!) -item.structure_custommachine.name=自定义机器结构输出杖 -item.structure_custommachine.desc=点击自定义机器结构定位锚以确认$自定义机器核心块的位置.$将Position1和Position2之间所有方块$以及其metadata数据一起输出到hbmConfig下的"CMstructureOutput.txt". item.warhead_buster_large.name=大型掩体破坏弹头 item.warhead_buster_medium.name=中型掩体破坏弹头 item.warhead_buster_small.name=小型掩体破坏弹头 @@ -4397,27 +4265,22 @@ item.wire_schrabidium.name=Sa326线 item.wire_tungsten.name=钨线 item.wiring_red_copper.name=电缆卷 item.wood_gavel.name=木槌 -item.wood_gavel.desc=砰砰! item.wrench.name=管道扳手 -item.wrench.desc=机械师理查德 -item.wrench_archineer.name=Archineer的扳手 +item.wrench_archineer.name=Archineer扳手 item.wrench_flipped.name=刺刀扳手 -item.wrench_flipped.desc=扳手2:扳手 -item.xanax.name=NAXA 抗Ϝ迪伽马辐射药物 -item.xanax.desc=移除500mDRX的Ϝ迪伽马辐射 +item.xanax.name=NAXA 抗迪伽马药物 +item.xanax.desc=移除500mDRX迪伽马辐射 item.zirconium_legs.name=锆质护腿 - -itemGroup.tabBlocks=核技术矿石和方块 -itemGroup.tabConsumable=核技术食物和装备 -itemGroup.tabControl=核技术机器项目和燃料 -itemGroup.tabMachine=核技术机器 -itemGroup.tabMissile=核技术导弹和卫星 -itemGroup.tabNuke=核技术炸弹 -itemGroup.tabParts=核技术资源和零件 -itemGroup.tabTemplate=核技术模板 -itemGroup.tabTest=HBM的核科技mod测试项[S166, Bismarck, nukesteve联合汉化] -itemGroup.tabWeapon=核技术武器和炮塔 - +itemGroup.tabBlocks=HBM 矿石和方块 +itemGroup.tabConsumable=HBM 食物和装备 +itemGroup.tabControl=HBM 机器项目和燃料 +itemGroup.tabMachine=HBM 机器 +itemGroup.tabMissile=HBM 导弹和卫星 +itemGroup.tabNuke=HBM 炸弹 +itemGroup.tabParts=HBM 资源和零件 +itemGroup.tabTemplate=HBM 模板 +itemGroup.tabTest=HBM的核科技mod测试项[S166、Bismarck、nukesteve联合汉化] +itemGroup.tabWeapon=HBM 武器和炮塔 potion.hbm_bang=! ! ! potion.hbm_death=重度突变 potion.hbm_lead=铅中毒 @@ -4521,8 +4384,8 @@ tile.basalt_fluorite.name=富含氟石的玄武岩 tile.basalt_gem.name=富含宝石的玄武岩 tile.basalt_polished.name=抛光玄武岩 tile.basalt_smooth.name=平滑玄武岩 -tile.basalt_sulfur.name=富硫玄武岩 -tile.basalt_tiles.name=玄武岩瓦 +tile.basalt_sulfur.name=富含硫的玄武岩 +tile.basalt_tiles.name=玄武岩砖 tile.blast_door.name=防爆闸门 tile.block_actinium.name=锕块 tile.block_advanced_alloy.name=高级合金块 @@ -4533,16 +4396,16 @@ tile.block_bakelite.name=电木块 tile.block_beryllium.name=铍块 tile.block_bismuth.name=铋块 tile.block_boron.name=硼块 -tile.block_c4.name=C-4炸药块 +tile.block_c4.name=C-4块 tile.block_cadmium.name=镉块 -tile.block_cap_fritz.name=Fritz弗里茨可乐瓶盖压缩块 -tile.block_cap_korl.name=Korl库尔勒瓶盖压缩块 -tile.block_cap_nuka.name=核子可乐瓶盖压缩块 -tile.block_cap_quantum.name=樱桃味量子核子可乐瓶盖压缩块 -tile.block_cap_rad.name=辐射S~闪闪可乐瓶盖压缩块 -tile.block_cap_sparkle.name=S~闪闪可乐瓶盖压缩块 -tile.block_cap_star.name=夕阳沙士星星瓶盖压缩块 -tile.block_cap_sunset.name=夕阳沙士瓶盖压缩块 +tile.block_cap_fritz.name=弗里茨瓶盖方块 +tile.block_cap_korl.name=Korl瓶盖方块 +tile.block_cap_nuka.name=核子可乐瓶盖方块 +tile.block_cap_quantum.name=樱桃味核子可乐瓶盖方块 +tile.block_cap_rad.name=辐射 S~核子可乐瓶盖方块 +tile.block_cap_sparkle.name=核子可乐瓶盖方块 +tile.block_cap_star.name=夕阳沙士星星瓶盖方块 +tile.block_cap_sunset.name=夕阳沙士瓶盖方块 tile.block_cdalloy.name=镉钢块 tile.block_cobalt.name=钴块 tile.block_coke.coal.name=煤焦炭块 @@ -4705,9 +4568,9 @@ tile.charger.name=充电站 tile.cheater_virus.name=冻结Ep tile.cheater_virus_seed.name=不稳定Ep Schrabide块 tile.chimney_brick.name=烟囱 -tile.chimney_brick.desc=使用排气管连接污染机器$减少75%%的污染排放 +tile.chimney_brick.desc=使用排气管连接污染机器$减少75%的污染排放 tile.chimney_industrial.name=工业烟囱 -tile.chimney_industrial.desc=使用排气管连接污染机器$减少90%%的污染排放 +tile.chimney_industrial.desc=使用排气管连接污染机器$减少90%的污染排放 tile.chlorine_gas.name=氯气 tile.cluster_aluminium.name=铝矿簇 tile.cluster_copper.name=铜矿簇 @@ -4716,7 +4579,6 @@ tile.cluster_depth_titanium.name=深层钛矿簇 tile.cluster_depth_tungsten.name=深层钨矿簇 tile.cluster_iron.name=铁矿簇 tile.cluster_titanium.name=钛矿簇 -tile.custom_machine_anchor.name=自定义机器结构定位锚 tile.cm_block.alloy.name=高级合金机器外壳 tile.cm_block.desh.name=Desh机器外壳 tile.cm_block.steel.name=钢制机器外壳 @@ -4741,7 +4603,6 @@ tile.cm_tank.alloy.name=高级合金储罐 tile.cm_tank.desh.name=Desh储罐 tile.cm_tank.steel.name=钢制储罐 tile.cm_tank.tcalloy.name=锝钢储罐 -tile.cm_paperPress.name=压纸机 tile.cmb_brick.name=CMB钢瓦块 tile.cmb_brick_reinforced.name=加固CMB钢砖块 tile.compact_launcher.name=紧凑型发射台 @@ -4769,22 +4630,22 @@ tile.concrete_colored.red.name=红色混凝土 tile.concrete_colored.silver.name=淡灰色混凝土 tile.concrete_colored.white.name=白色混凝土 tile.concrete_colored.yellow.name=黄色混凝土 -tile.concrete_colored_ext.hazard.name=建筑玩家首选混凝土 - 警示条纹 -tile.concrete_colored_ext.indigo.name=建筑玩家首选混凝土 - 深靛色 -tile.concrete_colored_ext.machine.name=建筑玩家首选混凝土 - 工业风 -tile.concrete_colored_ext.machine_stripe.name=建筑玩家首选混凝土 - 工业条纹 -tile.concrete_colored_ext.pink.name=建筑玩家首选混凝土 - 猛男粉 -tile.concrete_colored_ext.purple.name=建筑玩家首选混凝土 - 神秘紫 +tile.concrete_colored_ext.hazard.name=建筑商指定混凝土-危险地带 +tile.concrete_colored_ext.indigo.name=建筑商指定混凝土-深靛蓝 +tile.concrete_colored_ext.machine.name=建筑商指定混凝土-工业风 +tile.concrete_colored_ext.machine_stripe.name=建筑商指定混凝土-工业条纹 +tile.concrete_colored_ext.pink.name=建筑商指定混凝土-猛男粉 +tile.concrete_colored_ext.purple.name=建筑商指定混凝土-神秘紫 tile.concrete_pillar.name=钢筋混凝土柱 -tile.concrete_slab.concrete.name=混凝土瓷砖台阶 -tile.concrete_slab.concrete_asbestos.name=石棉夹层混凝土台阶 -tile.concrete_slab.concrete_smooth.name=混凝土台阶 -tile.concrete_slab.ducrete.name=贫铀高密度混凝土瓦台阶 -tile.concrete_slab.ducrete_smooth.name=贫铀高密度混凝土砖台阶 +tile.concrete_slab.concrete.name=混凝土瓷砖板 +tile.concrete_slab.concrete_asbestos.name=石棉混凝土板 +tile.concrete_slab.concrete_smooth.name=混凝土板 +tile.concrete_slab.ducrete.name=高密度贫铀混凝土瓷砖板 +tile.concrete_slab.ducrete_smooth.name=高密度贫铀混凝土板 tile.concrete_smooth.name=混凝土 tile.concrete_smooth_stairs.name=混凝土楼梯 -tile.concrete_stairs.name=混凝土瓦楼梯 -tile.concrete_super.name=Über混凝土 +tile.concrete_stairs.name=混凝土瓷砖楼梯 +tile.concrete_super.name=über混凝土 tile.concrete_super_broken.name=发霉的碎片 tile.conveyor.name=输送带 tile.conveyor.desc=移动掉在上面的物品$可以用螺丝刀顺时针旋转$用螺丝刀按住Shift键单击以转弯 @@ -4834,7 +4695,7 @@ tile.deco_aluminium.name=铝装饰块 tile.deco_asbestos.name=石棉瓦 tile.deco_beryllium.name=铍装饰块 tile.deco_computer.ibm_300pl.name=IBM个人电脑300PL -tile.deco_emitter.name=装饰性激光发射器 +tile.deco_emitter.name=Deco发光体 tile.deco_lead.name=铅装饰块 tile.deco_rbmk.name=RBMK装饰块 tile.deco_rbmk_smooth.name=平滑RBMK装饰块 @@ -4894,10 +4755,10 @@ tile.drone_waypoint_request.name=物流无人机航路点 tile.door_bunker.name=仓门 tile.door_metal.name=金属门 tile.door_office.name=办公室门 -tile.ducrete.name=贫铀高密度混凝土瓦 -tile.ducrete_stairs.name=贫铀高密度混凝土瓦楼梯 -tile.ducrete_smooth.name=贫铀高密度混凝土 -tile.ducrete_smooth_stairs.name=贫铀高密度混凝土台阶 +tile.ducrete.name=高密度贫铀混凝土瓷砖 +tile.ducrete_stairs.name=高密度贫铀混凝土瓷砖楼梯 +tile.ducrete_smooth.name=高密度贫铀混凝土 +tile.ducrete_smooth_stairs.name=高密度贫铀混凝土楼梯 tile.dummy_block.name=虚拟方块 tile.dummy_port.name=虚拟方块[电力接口] tile.dungeon_chain.name=金属链 @@ -4918,7 +4779,7 @@ tile.fence_metal.name=铁丝网围栏 tile.field_disturber.name=高能场干扰机 tile.filing_cabinet.green.name=蒙尘的文件柜 tile.filing_cabinet.steel.name=钢制文件柜 -tile.fire_digamma.name=挥之不去的迪伽玛之火 +tile.fire_digamma.name=挥之不去的迪伽马之火 tile.fire_door.name=防火门 tile.fireworks.name=烟花箱 tile.fireworks.charges=已充能: %s @@ -4938,13 +4799,13 @@ tile.fluid_duct_solid.name=带涂层的通用流体导管 tile.fluid_switch.name=红石流体阀 tile.fluid_valve.name=流体阀 tile.foam_layer.name=泡沫层 -tile.foundry_basin.name=浇筑盆 -tile.foundry_channel.name=浇筑道 -tile.foundry_tank.name=储液池 -tile.foundry_mold.name=浅浇筑盆 -tile.foundry_outlet.name=浇筑口 -tile.foundry_slagtap.name=铸造出渣口 -tile.fraction_spacer.name=分馏塔分离器 +tile.foundry_basin.name=铸造盘 +tile.foundry_channel.name=铸造浇道 +tile.foundry_tank.name=铸造池 +tile.foundry_mold.name=浅铸造池 +tile.foundry_outlet.name=浇筑出口 +tile.foundry_slagtap.name=炉渣出口 +tile.fraction_spacer.name=分馏塔分隔器 tile.frozen_dirt.name=冰冻土 tile.frozen_grass.name=冰冻草 tile.frozen_log.name=冰冻原木 @@ -4995,7 +4856,6 @@ tile.gneiss_brick.name=页岩砖 tile.gneiss_chiseled.name=錾制页岩砖 tile.gneiss_tile.name=页岩瓷砖 tile.gravel_diamond.name=钻石砂砾 -tile.gravel_diamond.desc=这里有个笑话,$但我不太清楚它是什么.$ $上传日期, 2020-07-04:$我们否认一个笑话的任何含义,$因为它是如此的令人不愉快,$以至于让人们觉得眼睛刺痛.$$上传日期, 2020-17-04:$事实证明,“粉碎钻石”从来就不是一个真正的东西,$它让原本可能是个笑话$的东西变得毫无意义.$ tile.gravel_obsidian.name=碎黑曜石 tile.hadron_access.name=粒子加速器接入终端 tile.hadron_analysis.name=粒子加速器分析室壁 @@ -5012,32 +4872,32 @@ tile.hadron_coil_starmetal.name=密集星辉线圈 tile.hadron_cooler.name=粒子加速器冷却装置 tile.hadron_cooler.desc=冷却功率:10$过冷阈值:10$冷却加成:+10%%$过冷惩罚:-25%% tile.hadron_cooler_mk2.name=粒子加速器冷却装置-回文特制 -tile.hadron_cooler_mk2.desc=冷却功率:5$效率函数:2-(冷却功率-15)²/225$最高惩罚:-90%% -tile.hadron_core.name=粒子加速器核心部件 -tile.hadron_diode.name=肖特基粒子二极管 -tile.hadron_plating.name=粒子加速器电镀层 -tile.hadron_plating_black.name=粒子加速器电镀层 (黑色) -tile.hadron_plating_blue.name=粒子加速器电镀层 (蓝色) -tile.hadron_plating_glass.name=粒子加速器电镀层 (窗口) -tile.hadron_plating_striped.name=粒子加速器电镀层 (炫酷的警示条纹) -tile.hadron_plating_voltz.name=粒子加速器电镀层 (VOLTZ) -tile.hadron_plating_yellow.name=粒子加速器电镀层 (黄色) -tile.hadron_power.name=粒子加速器电力接口 (1MHE) -tile.hadron_power_10m.name=粒子加速器电力接口 (10MHE) -tile.hadron_power_100m.name=粒子加速器电力接口 (100MHE) -tile.hadron_power_1g.name=粒子加速器电力接口 (1GHE) -tile.hadron_power_10g.name=粒子加速器电力接口 (10GHE) +tile.hadron_cooler_mk2.desc=冷却功率:5$效率功能:2-(冷却-15)2/225$最高惩罚:-90%% +tile.hadron_core.name=粒子加速器核心组件 +tile.hadron_diode.name=肖基特二极管 +tile.hadron_plating.name=粒子加速器镀层 +tile.hadron_plating_black.name=粒子加速器镀层 (黑) +tile.hadron_plating_blue.name=粒子加速器镀层 (蓝) +tile.hadron_plating_glass.name=粒子加速器镀层 (窗口) +tile.hadron_plating_striped.name=粒子加速器镀层(低温危险) +tile.hadron_plating_voltz.name=粒子加速器镀层 (VOLTZ) +tile.hadron_plating_yellow.name=粒子加速器镀层(Yello染料) +tile.hadron_power.name=粒子加速器电源接口 +tile.hadron_power_10m.name=粒子加速器电源接口(10MHE) +tile.hadron_power_100m.name=粒子加速器电源接口(100MHE) +tile.hadron_power_1g.name=粒子加速器电源接口(1GHE) +tile.hadron_power_10g.name=粒子加速器电源接口(10GHE) tile.hazmat.name=防辐射布块 tile.heater_electric.name=电加热器 -tile.heater_electric.desc=使用电能来产生热量.$可以85%%的效率接受来自底部的热量.$可用螺丝刀配置效率. +tile.heater_electric.desc=利用电能产生热量$以85%的效率接受来自底部的热量$可使用螺丝刀进行配置。 tile.heater_firebox.name=燃烧室 tile.heater_firebox.desc=燃烧固体燃料以产生热量。 tile.heater_heatex.name=换热加热器 tile.heater_heatex.desc=从热流体中产生热量。 tile.heater_oilburner.name=流体燃烧器 tile.heater_oilburner.desc=燃烧可燃液体产生热量。 -tile.heater_oven.name=加热 -tile.heater_oven.desc=燃烧固体燃料以产生热量.$可以85%%的效率接受来自底部的热量. +tile.heater_oven.name=加热炉 +tile.heater_oven.desc=燃烧固体燃料以产生热量$以50%的效率接受来自底部的热量。 tile.hev_battery.name=盔甲电池 tile.impact_dirt.name=烧焦的泥土 tile.iter.name=聚变反应堆 @@ -5065,7 +4925,6 @@ tile.lox_barrel.name=液氧桶 tile.machine_amgen.name=环境辐射发电机 tile.machine_arc_furnace_off.name=电弧炉 tile.machine_arc_furnace_on.name=电弧炉 -tile.machine_arc_welder.name=弧焊机 tile.machine_armor_table.name=装甲改装台 tile.machine_ashpit.name=储灰槽 tile.machine_ashpit.desc=收集来自燃烧室和加热炉的灰烬 @@ -5125,8 +4984,7 @@ tile.machine_epress.name=电动锻压机 tile.machine_excavator.name=大型采矿钻机 tile.machine_fel.name=FEL自由电子激光器 tile.machine_fensu.name=FEnSU飞轮储能系统 -tile.machine_flare.name=废气燃烧塔 -tile.machine_flare.desc=可燃烧液体和排出气体$燃烧速率 §c10mB/t$排放速率 §c50mB/t$ $§e燃料效率:$§e-易燃气体: §c50%%$§e-易燃液体: §c10%% +tile.machine_flare.name=高架火炬 tile.machine_fluidtank.name=储罐 tile.machine_forcefield.name=力场发生器 tile.machine_fraction_tower.name=分馏塔 @@ -5192,7 +5050,7 @@ tile.machine_steam_engine.desc=效率:85% tile.machine_stirling.name=斯特林发电机 tile.machine_stirling.desc=它将热量转化为能量。这需要外部热源$传热率:T*0.1 TU/T$最大进气量:300 TU/T$效率:50% tile.machine_stirling_creative.name=创造斯特林发动机 -tile.machine_stirling_creative.desc=将热量转化为能量。需要外部热源$传热率:T*0.1 TU/T$无限吸热/T$效率:100%% +tile.machine_stirling_creative.desc=将热量转化为能量。需要外部热源$传热率:T*0.1 TU/T$无限吸热/T$效率:100% tile.machine_stirling_steel.name=重型斯特林发电机 tile.machine_stirling_steel.desc=它将热量转化为能量。这需要外部热源$使用更重的齿轮来支持更高的温度$传热率:T*0.1 TU/T$最大进气量:1500 TU/T$效率:50% tile.machine_storage_drum.name=核废料处理桶 @@ -5216,7 +5074,6 @@ tile.machine_zirnox.name=锆诺克斯核反应堆 tile.marker_structure.name=多方块结构信标 tile.mass_storage.name=大规模存储单元 tile.meteor_battery.name=星辉静电发生器 -tile.meteor_battery.desc=为特斯拉线圈提供无限电能 tile.meteor_brick.name=陨石砖 tile.meteor_brick_chiseled.name=錾制陨石砖 tile.meteor_brick_cracked.name=裂纹陨石砖 @@ -5236,18 +5093,14 @@ tile.ntm_dirt.name=泥土 tile.nuke_boy.name=小男孩 tile.nuke_custom.name=自定义核弹 tile.nuke_fleija.name=F.L.E.I.J.A. -tile.nuke_fleija.desc=适用于:$F.L.E.I.J.A. tile.nuke_fstbmb.name=BF炸弹 tile.nuke_gadget.name=小玩意 tile.nuke_man.name=胖子 tile.nuke_mike.name=常青藤迈克 -tile.nuke_n2.name=N²炸弹 -tile.nuke_n2.desc=适用于:$N²炸弹 +tile.nuke_n2.name=N2炸弹 tile.nuke_n45.name=N45水雷 tile.nuke_prototype.name=原型 -tile.nuke_prototype.desc=本不必如此的.$ $你这个怪物. tile.nuke_solinium.name=蔚蓝洗礼 -tile.nuke_solinium.desc=适用于:$蔚蓝洗礼 tile.nuke_tsar.name=沙皇炸弹 tile.oil_duct.name=输油管 tile.oil_duct_solid.name=粗输油管 @@ -5306,7 +5159,6 @@ tile.ore_nether_uranium.name=下界铀矿石 tile.ore_nether_uranium_scorched.name=烧焦的下界铀矿石 tile.ore_niter.name=硝石矿石 tile.ore_oil.name=油岩 -tile.ore_oil.desc=你不该把它挖出来的..$来吧,去拿个井架,你这个笨蛋. tile.ore_oil_empty.name=空油岩 tile.ore_oil_sand.name=沥青砂 tile.ore_random.name=%s 矿 @@ -5325,7 +5177,7 @@ tile.ore_uranium_scorched.name=烧焦的铀矿石 tile.ore_verticium.name=韦德赛矿石 tile.ore_volcano.name=地热裂缝 tile.ore_weidanium.name=魏丹矿石 -tile.part_emitter.name=装饰性粒子生成器 +tile.part_emitter.name=Deco粒子发射器 tile.pink_barrel.name=煤油桶 tile.pink_log.name=粉色原木 tile.pink_planks.name=粉色木板 @@ -5377,13 +5229,13 @@ tile.pwr_port.name=PWR接入端口 tile.pwr_port.desc=允许物品和液体交换$位置:组件 tile.pwr_reflector.name=PWR中子反射器 tile.pwr_reflector.desc=将中子通量反射回燃料棒$位置:网格,用于增加反应速率$可作为外壳材料 -tile.radio_telex.name=电报机 -tile.radio_torch_counter.name=红石无线物品计数器 -tile.radio_torch_counter.desc=平面或比较器兼容块上的标牌$根据匹配物品的数量发出信号 -tile.radio_torch_receiver.name=红石无线信号接收器 -tile.radio_torch_receiver.desc=可在平坦表面或与比较器兼容的块上放置 -tile.radio_torch_sender.name=红石无线信号发送器 -tile.radio_torch_sender.desc=可在平坦表面或与比较器兼容的块上放置$读取红石信号或比较器输入 +tile.radio_telex.name=Telex Machine +tile.radio_torch_counter.name=红石无线项目计数器 +tile.radio_torch_counter.desc=平面或比较器兼容块上的标牌$根据匹配项目的数量发出信号 +tile.radio_torch_receiver.name=无线红石信号接收器 +tile.radio_torch_receiver.desc=可在平坦表面或与比较器兼容的方块上放置 +tile.radio_torch_sender.name=无线红石信号发射器 +tile.radio_torch_sender.desc=可在平坦表面或比较器兼容的方块上放置$读取红石信号或比较器输入 tile.radiobox.name=无线怪物清除箱 tile.radiorec.name=坏掉的收音机 tile.rail_booster.name=高速动力轨道 @@ -5420,7 +5272,6 @@ tile.reactor_element.name=反应堆室 tile.reactor_hatch.name=反应堆端口 tile.reactor_inserter.name=反应堆燃料插入器 tile.red_barrel.name=炸药桶 -tile.red_barrel.desc=静态流体桶 tile.red_cable.name=紫铜电线 tile.red_cable_classic.name=紫铜电缆(经典型) tile.red_cable_gauge.name=功率计 @@ -5428,15 +5279,13 @@ tile.red_cable_gauge.desc=显示每刻在网络中流动的电力$的电缆$由 tile.red_cable_paintable.name=可涂漆紫铜线 tile.red_connector.name=电力连接器 tile.red_pylon.name=电线杆 -tile.red_pylon.desc=连接类型: §e单通道$连接范围: §e25m tile.red_pylon_large.name=大型输电塔 -tile.red_pylon_large.desc=连接类型: §e四通道$连接范围: §e100m$这个输电塔需要配合变电器使用! tile.red_wire_coated.name=密封紫铜电缆 tile.reinforced_brick.name=强化石头 tile.reinforced_brick_stairs.name=钢筋石楼梯 tile.reinforced_ducrete.name=加固高密度贫铀混凝土 tile.reinforced_glass.name=强化玻璃 -tile.reinforced_glass_pane.name=强化玻璃板 +tile.reinforced_glass_pane.name=强化玻璃窗 tile.reinforced_lamp_off.name=强化红石灯 tile.reinforced_lamp_on.name=强化红石灯 tile.reinforced_light.name=强化萤石 @@ -5500,7 +5349,7 @@ tile.stone_depth.name=深层岩石 tile.stone_depth_nether.name=下界深层岩石 tile.stone_gneiss.name=石墨页岩 tile.stone_porous.name=多孔石 -tile.stone_resource.asbestos.name=蛇纹石石棉 +tile.stone_resource.asbestos.name=温石棉 tile.stone_resource.bauxite.name=铝土矿 tile.stone_resource.hematite.name=赤铁矿 tile.stone_resource.limestone.name=石灰石 @@ -5513,9 +5362,8 @@ tile.struct_launcher_core_large.name=发射台核心组件 tile.struct_plasma_core.name=等离子加热器核心组件 tile.struct_scaffold.name=发射台骨架 tile.struct_soyuz_core.name=联盟号发射器核心组件 -tile.struct_watz_core.name=Watz瓦茨电厂核心组件 -tile.substation.name=变电器 -tile.substation.desc=连接类型: §e四通道$连接范围: §e20m +tile.struct_watz_core.name=Watz发电厂核心组件 +tile.substation.name=变电站 tile.sulfuric_acid_block.name=硫酸 tile.taint.name=腐质 tile.taint_barrel.name=IMP残渣桶 @@ -5540,10 +5388,10 @@ tile.turret_flamer.name=喷火炮塔 tile.turret_friendly.name=轻机枪炮塔“友好先生” tile.turret_fritz.name=重型火焰喷射器炮塔“弗里茨” tile.turret_heavy.name=重型机枪炮塔 -tile.turret_himars.name=远程火箭弹炮塔"亨利" -tile.turret_howard.name=双管近防炮"霍华德" -tile.turret_howard_damaged.name=双管近防炮 "玛土撒拉" -tile.turret_jeremy.name=重炮炮台"杰米里" +tile.turret_himars.name=火箭炮塔“亨利” +tile.turret_howard.name=双联守门员近防系统“霍华德” +tile.turret_howard_damaged.name=CIWS双联守门员近防系统 "玛士撒拉" +tile.turret_jeremy.name=重炮炮塔“杰里米” tile.turret_light.name=轻型机枪炮塔 tile.turret_maxwell.name=高能微波炮塔 "麦克斯韦" tile.turret_rocket.name=火箭炮塔 @@ -5558,8 +5406,8 @@ tile.vent_chlorine.name=氯气排气口 tile.vent_chlorine_seal.name=氯气容器 tile.vent_cloud.name=云排气口 tile.vent_pink_cloud.name=粉色云排气口 -tile.vinyl_tile.large.name=大块乙烯基瓷砖 -tile.vinyl_tile.small.name=小块乙烯基瓷砖 +tile.vinyl_tile.large.name=大型乙烯基瓷砖 +tile.vinyl_tile.small.name=小型乙烯基瓷砖 tile.vitrified_barrel.name=玻璃化核废料桶 tile.volcanic_lava_block.name=火山熔岩 tile.volcano_core.name=火山核心 @@ -5596,11 +5444,6 @@ trait.hot=自燃/高温 trait.hydro=与水反应 trait.radioactive=放射性 trait.radResistance=辐射抗性: %s - -trait.platefuel=[研究反应堆堆板式燃料]$§3 %s$§3 %s事件的收益率 -trait.pwr_fuel=每通量热量: §r%s TU$反应函数: §r%s$燃料类型: §r%s - -trait.rbmk.BurnFunc=安全 / 被动$中等 / 对数方程$安全 / 欧拉方程$危险 / 负二次方程$安全 / S型饱和函数$中等 / 平方根函数$危险 / 线性函数$危险 / 二次函数$实验性 / 正弦斜率函数 trait.rbmk.coreTemp=核心温度: %s trait.rbmk.depletion=燃料消耗: %s trait.rbmk.diffusion=扩散度: %s @@ -5635,23 +5478,8 @@ trait.rbmx.splitsWith=接受: %s trait.rbmx.xenon=铅元素堆积程度: %s trait.rbmx.xenonBurn=铅元素寂灭函数: %s trait.rbmx.xenonGen=铅元素产生函数: %s - -trait.rbmk_pellet=可回收芯块$全新的$少量衰变$中度衰变$高度衰变$完全衰变$大量氙元素堆积 -trait.watz_pellet=消耗: %s%% -trait.watz_pellet.passive=基本裂变率: $自燃! -trait.watz_pellet.heatEmission=每中子通量产生热量: -trait.watz_pellet.burnFunc=反应函数: $燃料类型: -trait.watz_pellet.heatDiv=热倍增系数: -trait.watz_pellet.absorbFunc=中子通量捕获: - trait.tile.cluster=只有在被玩家破坏时才会掉落 trait.tile.depth=只能被爆炸破坏 -trait.tile.barrel.capacity=容量: %smB -trait.tile.barrel.hot=可以储存热的液体$不能储存热的液体 -trait.tile.barrel.corrosive=可以储存强腐蚀性液体$可以储存腐蚀性液体$不能长期地储存强腐蚀性液体$不能长期地储存腐蚀性液体$不能储存腐蚀性液体 -trait.tile.barrel.antimatter=可以储存反物质类物质$不能储存反物质类物质 -trait.tile.barrel.leak=泄露 - tool.ability.centrifuge=自动离心 tool.ability.crystallizer=自动结晶 tool.ability.explosion=爆破 @@ -5663,27 +5491,16 @@ tool.ability.recursion=连锁挖矿 tool.ability.shredder=自动粉碎 tool.ability.silktouch=精准采集 tool.ability.smelter=自动熔炼 - -tooltip.armormods=附件: -tooltip.armormodsshow=按住 < %s §8§o> 来显示该盔甲上所安装的配件的效果§r -tooltip.block=按住 < %s §8§o>以显示更多信息§r -tooltip.customnuke=增加 %s 给自定义核弹 %s 阶段 -tooltip.customnukemultiplier=增加倍数 %s 给自定义核弹 %s 阶段 -tooltip.oredict=矿物辞典: -tooltip.oredict.null=无矿物辞典数据! -tooltip.show=按住 < %s §8§o> 来显示所能提供的防护的信息§r - -turret.animals=攻击中立生物: %s -turret.arty.artillery=§e重炮模式$宽度: 250m$范围: 3,000m -turret.arty.cannon=§e加农炮模式$宽度: 32m$范围: 250m -turret.arty.manual=§e手动模式$范围: 3,000m -turret.machines=攻击机器: %s -turret.mobs=攻击敌对生物: %s -turret.none=无白名单 -turret.off=OFF -turret.on=ON -turret.players=攻击玩家: %s - +turret.animals=被动目标:%s +turret.arty.artillery=§e火炮模式$最低射程: 250m$最大射程: 3,000m +turret.arty.cannon=§e炮塔模式$最低射程: 32m$射程: 250m +turret.arty.manual=§e手动模式$射程: 3,000m +turret.machines=以机械为目标: %s +turret.mobs=以怪物为目标: %s +turret.none=无 +turret.off=关 +turret.on=开 +turret.players=以玩家为目标:%s wavelengths.name.ir=红外线 wavelengths.name.visible=可见光 wavelengths.name.uv=紫外线 @@ -5709,41 +5526,7 @@ weapon.elecGun.glass_cannon.ir=红外线 weapon.elecGun.glass_cannon.visible=可见光 weapon.elecGun.glass_cannon.uv=紫外线 weapon.elecGun.glass_cannon.xray=X射线 -weapon.elecGun.glass_cannon.gamma=γ射线 - -#book_lore.insanity_1.author=Ferguson博士 -#book_lore.insanity_1.name=撕裂的书页 -#book_lore.insanity_1.page.1=8月6日$ $几个月,不,几年来, 为了与投资者角力和运营 北半球最大的能源市场而 讨价还价,终于有了回报. -#book_lore.insanity_1.page.2=虽然我们不能完全确定 我们到底发现了什么—— 考虑到我们在粒子上进行了 千兆伏特的碰撞,而这些 粒子的记录仍然很差—— 但结果再令人兴奋不过了. -#book_lore.insanity_1.page.3=我们还没有为我们发现的 这东西找到一个名字, 也不确定我们是否在寻找 一种新的粒子, 一个通向另一个维度的虫洞, 或者撒旦的肛门, 但我相信我们的公关人员 可以想出一些办法. -#book_lore.insanity_2.author=Ferguson博士 -#book_lore.insanity_2.name=撕裂的书页 -#book_lore.insanity_2.page.1=8月8日$ $过去几天,我们一直将 “The Thing” (是的,我们现在就是 这么称呼这玩意的) 保持在磁隔离状态。 光谱测试最终搞坏了 我们的光谱仪,但我们 设法获得了一些有用的数据. -#book_lore.insanity_2.page.2=首先,这东西像圣诞树 一样发光,你能想到的 每种波长的辐射光子都被 强大的红外日冕所包围。 逻辑上的结论是, 用肉眼看它很可能会杀死你。 -#book_lore.insanity_2.page.3=这就引出了一个问题: 这么小的粒子怎么能辐射 出如此巨大的能量? 你隐藏了些什么,小家伙? -#book_lore.insanity_3.author=Ferguson博士 -#book_lore.insanity_3.name=撕裂的书页 -#book_lore.insanity_3.page.1=8月22日 $ $ 我已经好几天没睡好了。 医生说他什么毛病都找不到。 现在我正在服用各种药物, 但头痛只会加重。 实验室工作人员怀疑这 可能是两周前的事件造成 的污染. -#book_lore.insanity_3.page.2=医生说不太可能, 这症状和急性放射病不同。 如果这种情况持续下去, 我可能需要休息一段时间。 实验人员推测, 如果约束磁场下降, 整个综合体建筑群就会变成 蘑菇云. -#book_lore.insanity_3.page.3=我不知道行政部门如何 保持冷静,但我没有被 支付足够的薪水来浪费时间. -#book_lore.insanity_4.author=Ferguson博士 -#book_lore.insanity_4.name=撕裂的书页 -#book_lore.insanity_4.page.1=8月28日 $ $ 他们拒绝了我的请假请求, 过去几天我一直在努力。 头痛越来越严重了。 我也不是唯一有这种感 觉的人。一些实验室的人员 也有类似的情况. -#book_lore.insanity_4.page.2=The Thing终于离开了综合体 -真tm棒。 昨天有几套西装运过来, 天知道在哪里。 一名实验室人员扎卡里说, 他们可能正在把密封装置 埋在沙漠里, -#book_lore.insanity_4.page.3=慢慢地试图让The Thing 远离文明来“虎头蛇尾 地结束”。要我说我们应 把它射向太空。 不用说,我们的投资者 暂时削减了所有资金。 我应该开始找另一份工作了. -#book_lore.insanity_5.author=Ferguson博士 -#book_lore.insanity_5.name=撕裂的书页 -#book_lore.insanity_5.page.1=9月11日 $ $ 我正在反复做一场噩梦。 我在一块空地上走来走去, 到处都是这些人, 穿着橡胶服和长着畸形的脸。 总是一样的噩梦, -#book_lore.insanity_5.page.2=和我最近交谈过的一个实验 室的同事也做了同样的梦。 与此同时,我的工作已经 相当枯燥了,加速器已经 关闭,所有正在进行的 项目都停止了,我们的 预算也在慢慢减少. -#book_lore.insanity_5.page.3=有某种东西在告诉我 The Thing还在某处。 我能感觉到. -#book_lore.insanity_6.author=Ferguson博士 -#book_lore.insanity_6.name=撕裂的书页 -#book_lore.insanity_6.page.1=10月3日 $ $ 一半的工作人员已经死亡, 其余大部分在ICU。 我的病情在过去几周里 没有改变,无论是好是坏. -#book_lore.insanity_6.page.2=然而,现实开始变得越来越 不真实。 有时我会在夜晚仰望天空, 幻想着我们在几个星期前 发现的东西. -#book_lore.insanity_6.page.3=我们的分光计吐出的同样 灿烂的深红光泽。 我的医生说这是由这起事件 引起的精神错乱和压力, 也许他是对的, 但药物根本不起作用. -#book_lore.insanity_7.author=Ferguson博士 -#book_lore.insanity_7.name=撕裂的书页 -#book_lore.insanity_7.page.1=12月12日 $ $ 我已经失业了,但老实说, 我对此有些感激。 我以前的工作场所已经 付之一炬了 ——他们这么说的. -#book_lore.insanity_7.page.2=南部几英里处的地震观测站 连续几天记录到持续不断的 地震,而其他任何人都不会 注意到沙漠深处. -#book_lore.insanity_7.page.3=我的结论是,这个地方被 诅咒了,让每个人都感到恶心, 然后像埃德加·爱伦·坡 (Edgar Allan Poe)的故事 一样坠入地狱。 谢天谢地. - +weapon.elecGun.glass_cannon.gamma=伽马射线 +hadron.error=错误! +container.reactor=增殖反应堆 +death.attack.subAtomic=%1$s 的原子被 %2$s 摧毁 \ No newline at end of file diff --git a/src/main/resources/assets/hbm/textures/gui/machine/gui_radar_nt.png b/src/main/resources/assets/hbm/textures/gui/machine/gui_radar_nt.png index 690e1b5f5fa1706b4b2f8aa6a7daad7435912487..572179845e349f5e366159eb3a8f1c2a4a403d07 100644 GIT binary patch literal 20169 zcmXtgWmr^Qxb~i*Lt45+xDQfdwl zZD;!0{Mm7fTH8AD?YBO=eV#eJPfaC`YNjv$k@&^U(8fPCTK>i1{v|dv+~!>>DiQrp z=9Hv?pAzlTZI?fOT#n}1SsY4SK3f_S^K#f84b1UBy1Wf2I2zg+8h?U^Pb)D8aj-xZ z_zluqR#goC)T}rm^NsVSf7>Z`xw#sKA&w+R@rJ%84RURDV@ayJ<3Fd*mQ~qVqm_84 z9Jk!!i}EMhjo@KW)vsJT*h~N6ZX3=2;_sUc35j>RB6AI|h&ebowDt6CNrLVj?|o_P zh6-dL?>dhKj<&n~+@zH|84xNId<*43-_H=z2in-Ek7yuF^ef zaeHJ1$G$nxBzGBzQ8jz}Gjn;rkh#4A1D{qmqGQor;GUZi((9U>TiKp5!AbKD8yObG z)ulS_PaI@&OajNipXHN4TkDX^uujKFViSSES*~0nSI)E?Dc9HmeA+t9Focl-1$BTV zJ0yRto?>h1#;fkQ2%wedhp*II8lXv>>vx`W%p}^xtA3byi%>ni(9$(h@44mupI;EMd8Y^7(GDiP!Af~g19yagV^FB6;3ye6*9fhSggz1Ujk(%den*`aq(@iSmj6$=W()cM6LdpZm(s6(jYel||yL z!&X*|cFf1UbXeW)40KN9PH*j$XKl#%wf|eAQu2>8`KKiH+`oT(3|fzk zI>{&Nb#dX}3~OFaaQtI6z(M$yw-KNuob$8rB|${W@Mr(=d6ZRZ;RIc0Z)TiRn8i&< zij{DLX3HRI5+zJ!uM&NdU6^AAQ43OK>ICvM8MQr)TC3S0(r_#Y_-Drp_?W{?SDyw* z-ZUUtWpgSpH6!-g($V1XDb^X3NsdEaJesnWz2uqNa0}uO=L*_Mx0Lg=@cj8?-)+|)pz&>lA^`$RH z1+LeP%`|V+ck;?J~sg{JXC#fGtl9LK}6r* zk}Zwlh8IB8htD~=gTh`V`365jn3kYm!}srz)ASxZ*a5$0+#@VuaS!*NFX%ner=}0o zQLj{!(ppl3WT}ROINgJ_2!U*6Uc&xYYF1^?v~3`>82O-ywEt!ET*uS|eljRUiLQ>u zt+S?^R^lV*HSn9~)ykKSUa?^Nl>PHOby#T{vI$^^Gcl~GKGOapmQlyJkt_l4m7V0p7pIl;BL}vuOiIG77k`Kys%9z;eU}s*@ob zn2sf7+M$mAF`9ZByyA(KNfPC7vmoHPFxz`%A;I{j%7buXy^bGg?^Q?)#2;sYCi>Jg zq>`86YNLf>E7wByxaU&eYIUpL6l;^;%8vlE>{&Zirwr{<2%e8B5;mrs|3oj83n$n< zbS#Gc1M&EZr&SAe7*oLJUuR7J;x-KDX!Z_eIzDd9T-;JivowYEYUrFE)(KGI$96XK z799b<4*;?`AnRMwoAEcaDad&?N!wH}ct8Y+3`dgH#eOpPZO!0L?fHz zosR4Vmb=3k=zDH=*C`b-Fr;vjiP&(G?2~ZK1a@Y-?z7#BzON(TVDE;hf=_^?UKDY791YP!#i9Lz`?h|5TPju-m!B>aqRkVW z^Ksqh3w@@JfEo`9I@{TMxGXk()rye@LMHTUuqFnFo$xjJvJ5)CQtPT1ZZyzDS^V>+ zk{^*ewKM80-x9Q<(DrFh=7eRBjyr1jfn#ciR>hy$0XoQl_DvTmqqxc|9}*dzHsyf| z0V1Rju)-*Jpctc0?&)v>xra{RQM#1_&`PtfV1jOdCJ2Z8z~&2wyvJTXsLcHuY>Mj? zf3dpvYk-e$K}&VbgY4d&Z1kGALn44xcX@lf;2;Q!Xn?17Xaq8df~d_ENqoki8?J zr)Y{I=*9yPK+O7N`nmi~;_(hZeps5e1&LFf`$g{2Fk~)_!#{p)76X*d*rQPJ%_#*% z#6Wblxph=q4)ab%??tIt`qr+1e@~Q2g90(fxvmB_A$(K5g5hg8YRFbn09L&21F1M~ z8`YBCK-W$7Mgq8cN|R8uCUUek%&B0{&{E_C*^a^p>u1zUMV z&rg-X?^eX%L;Qa1*18@{Gv%^sX%EhpEk-wD!OD4f)Vpa?Guho5zoqwoXu(!TP#Z#_ z&BtU#%MR^RpBT%F`js?U(3o)x!kZ<}?+N+GcY~!=^>PV=bWy2=8r|MppN$Nz&sJ$- zl%TP%%1>I>V9(!wl!izv38+6Ks=$} z6N9ob*_Z;7j`w7m_u>H~$jAzZ7Pt;egyu@`U8%?+TD=eJtV5U}izo2hK0 zN2CcdlH_n5sWs;xc87GQA7h=yy>9T&AtKw8-#iDtsBujDN~n)*exiO=>XYbZ*3Mea zZ-H0m3{l5Tx_(zi=3AG;6`~_$3Fq8P5=QxR# zV$!Ji3`ZwPElv6xJ$SgX0I{|@-EabIM-ZZP<@EI(Uk^HsCR+%w3t>CfAs;&!(D z1n-A(^M6vt(+G>PSTUJ?}$&6`}N-sO!L#^=Pyy- zl3fTX?9D%Q-FA@&@hbnjib4MQCZZfEHNbHK341yi+=%m*147sT+q5d-=KeEYAuqzj z{)GEtO0xf~e8|vXb%IBA|9i5h8Sk#RwmsYWfd*DTTv8Kh_HAxMo3yU-uLtgSB^SSI z?KDj)?cb0Z^j-{jw#-N0QbCPj2Nib`Z;PqWv~Aa7pE9yLnzGIldEt=P&(`#IpApUk z|2pdWdr**Ol_}Xli^ew)`94?+99P^4gav}FVc#*d&w$nqP(MliCd!@lV!uAlFQ`=- z8PZX7WDiZya~`bMSj`*tMyR_A-kbCj2ZFOafs&)ZL?E&~pI8Pz3ty&S8lsfysjxO&a|{#ujon);yVQwgJ`;<|MpE!^bz z%L#C!`3wPlJrO8xVek~bk`4oeR`K5$eSYUx17O$_YGP`)w|9}ojcZQ4Q<(9}A^P-u zi$dbJ9}B`V!y`&r|~@fm#DLFu=Z583*ZlpP2~A?IVt+_=p@zLd<39dEs@ zSa?``wN55lPE?GmzPe*L`rCf)bvDKDSw1G?MS-S(wjZ`t03f;*`d6$FwPbrd>@;Fl ztwyU@FalwS>y`@Gks>se32BFi2q{a^pkwKeBDtfz0L1LsxOktIc zTs71$a`y8EZmpfS37y>ctADzgM`hUKT$sRg6c}l47crmEP8`VY2KYpJ)lbnby zkYrsuhYaq&4RavHYZtsBvdBz|wZo=!qOGbqd~5ADBGsv+r4pVRLut_R(A3SQhGXdU z0Kls^yL~U;KxuLVNPa`phSL}aITss}+ke(^|BL;)g-YEYEpS6j7WaV7Htj3skb5ew z!I8p2qJ8+j?W?5m*9DAY4%Uu@P*n43FO2dp9d|F#l82l)rUzOUL%&r%kv0pWAbN54 zu?VKkz&ZBhnmV3P)t2@X^S#TA03ZLX2u>SirAS;!oggID2q5WJL z&q)VRBqbuSg@1!fm>8sRkm$jq+L_}7HyKxRt^u0;pKJ@*@aI>J@A`->EJt;qq31@f z{JdwKQ54Ygf{#%j>J#aWIR?;w-V|vi8t2uM7U(5kZS@yTkBUZOZsoi=dPI)1Ccj> zx;_C*$W>o{^tcUgX+34$MBh7#D#&x+Lo*8<9qT@dl5p_$PQkq~1mCUF5|NK z_=4(5A<4{i_eo-`{2Ht77UAiA`GB&UKz7|u_rWCn#h`RMI|E1sE z488es7sKFt_tCaXQFeLQjwikR4*EE?zbD=`lO25?a{>A8N+#;Ai3gD@e@aZDiWzU- zai-CCihDq@XRW`x>M~fnXi`!fi*6SpNvIk4DdjUNHc3%-J`uC*aN>&?(xE4Wsq(vP zX(5+7tk;;&PMm>a{!Vxy2WBtctKgssJWQQBbnqNl7pXt5y4lX2jj+w0NSNb&^Q6~9n_3icr zozYZ;(oJsbA$z}~t9{7xlgl)$CdaY-I4#bnXJ3I_>ibjjc*Q7}SjggM)JTprg2@tH zs}^fFcafJxB-~9>u(OryGxeI5ny9d{mJ*CT+84qjs*2Am7P7MT`>>?MAm36~L7|S` z?&H;IPV)sC`*yLCe)AiK76!4G(^>5)x?>S4Nz#vk>ZI#E?|1x*(V>cqA%ue{6h+#2 zvK+zUrUrp|71CBVcw$1!xOqf;Tx#%Q1EloFlK=~pzG|HqVU^EVEcllk@Z`3`ALYx+ zN?4djLC$fsqGY!hE`3imV|a_sXOq8frg?r>^D`|z&k?;N!knM z`hfRMzX+u$6DAj~*zK%xbuLO#QjVNv7JaavIW54Ps<)BOYY$XT!x%?-ARIm(Bwcz1 ziPKBvs*`L~>jfFSw>ZPHcKWsuPcQsJ+jj+?&T8>2yU)NpIbq5q)NmZf&mhP6*S%@F zkM;OBX9%utnNDfdt{kHpjNro!Nc0`T^<}kscPaM@7+JFdD4EWN`&BPgG5ln-=+FGj zT1b&sKz6n!QT*Fpcs1&t%;Qh|-gEo)Q=Vo^J+FS=qiK5FQv}hZxjzqr_`Dx;(eA^_6&-B0~y=9x3cYRkuAB1fc0?uZ2stsxl z#-R>?i*$;bk6f^^d%wx23jdcx&C>(d2^x&@sB_r-^amk9<&#)!NCy?dX=BF+5TfnN zg>Ct3`6_y~WAmTz(CjWOqje`@hM`4mxRUWkYTfe^_jsCP+O_fK(FbsY;r1vAAloAm zjqk;{dEPdvyddGoUthukxT*EqEAwcbX}dbVt;3B_eu%yFVilW9R=cACH%gJHjiD5bhwkXvz7Jw zohm#@H6@YlSN3L-UJU~@?u}PajW|M7MG-E8ElI7JMxBVSZLL)&hB4brq|Dk?&7xZT z?;QrJj&T}KlaY%+D^Z{?(ZWo!hCBc#63JD*p{VfuSD-v`(qxzpd$!lg+KGg*h&@QO zyy2N#9vo#47$q7D@w?F=x=X;6g6SkN7ThT^VK?I_P4WlX)jz?YX!Z0SQ%z3XZeqy4 z4~ov-zVIT5f|&qKTt9v&sgYzo^=Jz{_3Gt|@#-o&g05ra4x^B77kkA2jm)>bv!iuj zY?}X16CS|}+YS$<&2uMG`=O)_AU=vCcO6hyzHYP9+spbCwaOmZKHw@Is)d2 z#zIf7O}_~y{rH<6@|~{Yu=di$CIHUX`=6B_Q`~rKQj8bJ$a^|e zxwn<*o1Ac<%>T=9Z`%8~evZ0wZ$CXKF;wVJFe#&;xx=9z`6iY$IW+d(o5!Kw=0uE+ z1&vKmu7+E2EI0MN%oxkn5{jJ}!!&}$7*?}q7w|02&@^e70RtUlFweVolXkDWAgH;u|EqxB3*&_|kr*6#}?Ws|36 z!08H{hMI08{Ta|V%LaJk33oVX{AG*%G@hZuQwgtyEOus&bE}-a#IV!0`o%Jy22I{_ z`1SjlZE?T>w#tK8`B&8InOZ^{C|guQO0QOe#k#tST|l))7&=9`VdE0hf3B9B`1bN; zQpnq{&$MI?A5oD8@4xD|8&wQt%?Pzus4_AkT+p<4Q%x^S%d|=JTt3zgh{<#RA}BOm zce5oG7`wJbcs-~W+5Z{{(T+Pzu3}&R%qAH|lp5OP##h~NHBtq+_`AZLOsM@Gnndx4 zHtixeuzeX0L|kLMhFkV{2I5A8Yvxln1NwTL?a%*_*T> zd2QXkY}k42jQVUMJ-OkKxR+uBNP4v0=mF>D0~G$XfDFXO$SXBOqqZfk{MNZaI)zE( zN*o-!6J4baSG;MdKP*;ts^z*K+fYxBNm7wZi)LHEv#sCn5Qjxe4ab$zL5yIuyY z?#+Xy=HvQ{nBTHFe=w3FlFV2TzGnuVY*(b3u#C~{%qCnN= zfy)%@)5lFO4)sR`!+cHWxWjZVv#m2O)o_9{Rc}sU2osKyRQks&`zMzuTH0%lq2V?u zScK%j&6u4A#^k^;PT0fHIb^L2HEJ!Bzu5?T(>N-RKdJ;$siBrKj4>*}{1U)^^EdFcjF6w=+GPqfiUbzL6EHk{IXd){1e}<9= z{)i-2fr)YDvDs3L!Md2kH?zBvV6uYqTaAV<@Sp5RKp`LB3NC*dT$5t*JZE_d(t_>J zqcB7CXIPV!-E8ZG3tq{;M+zrD=QOBay<3*3Ls<^3G{Ti_@+W$IdL+qC56eJX)3dB2 z8bN3C?2Lz;8)v_uI;cbaTlL4;08JrMutu&(`)x?1B-v+_U9=^Mjhu*iiB8jlp+Hi2 zfsX1|u1x{4he!q~o9A^X*)O5&J{8fPClc&K35iM#<4!s zNScaJqb!@pq*HDg>UW}f?N#xnS(V=O{4TRdUp?IwjQ~vyB`_%!&P*s7Kj%=WdEw89 z({a}_bK}s@A0B$r@a4>j0RS49+k^v&N zY8Mn>`Y@?~ooxH0#3M*0%r0$8FdKDn%$Qf}&yORNBtf*K^lhwu23?eB^Jh7vaCimk zU}Cqncs5ta2^0UcW@h*LY)^b3R(%B9rlyE)P2lZ^8q-2ww3<5D{dmc39BsyVIE1|_ zhk;c2#jjO|N71cx*Rs5?h&xQIfCF!|EezYTFX~$h{>u2}QojRn*iC_t6n`WGJSWoE z>Z7XUBu-(E{)hfXfa$cf<*T0r3p?Dd{}!|OCzXDz^s&5yDwXB=)N8mJY!>shZY$=Q zzz*;fgl~QH-~-sl_C&K%dTD5E)LE_$pC^Ijuzn|UaR%5q#y~?%rH~e6VI$}W?e24? zMd##awGJ^1y_V46hwB}3ej8M592~+AJ;yy{mWYN1k~se1kHR=~!FRRa4_hx+KDaJ^ zx852|pR2RSF|0BUA+rpasF4=Tf46}paep?oTxwzxLuT;~!m5=o{jJ>>s;zvcxQD<0;8-?;;_38qF#RA@Q@_1AIC=lQn z_X>&+Jl?N9#)BW)^MwhurSx8~7kB>?bB3QrR*Efi#?M({TlpqxcTZ&v){$rGg>9fy zARuF(605A9olevWVOyn-DAT{rzA~!o9~;8}^o@*A_^_)8P82Cv#TC}p z>X`1F&sxrYzddjdb{19SBJGmHmz>^zFn#$F04AJBzJ2=!=+*#Ls8X+32qJ$rIg@y9 z3>0#i0tooyyK3r7h7!TpFgi%SEcXP@gaa(1{c3Ey8q>2k5=%F-c^8< zYxalNMJ}>&l@#_wNniF9>r|vb#IlRf@2RzO@KBYtwPh0BDXXlU8vZ8}hCcDCtXK$$ zqYzXyMITpwIBYqB0&S;xM~LF$uH)Nyk(Fq6y%MW`8$AoPz4260Js-$yAMUQ#a({1S zT0S4X+!@XeI|{mNi7XGLMk7ec^5;%HJs2YY2bqh}7rd)0M@8p6dG{2Z?F7@-&O~^Z z^rT#`^mXw=5`!E7&;_0)fB$>7H?^=ck|RPje93M49iX>A`Cxem1=yn>Z`&WcDy!Qn zu&xGDS^r)APPFYyph2&c`>P~M-XnmJ{sonn!K0mxI;@NdBmozyrQ`Q>d@7QZzr z*?}5vT5tyt@2c2Bk}A$E*3li6E7`ICbDerH-HI1 zbj==gR!j$>FRZMt#<0cx@#Du_i*NO_yIe1qxf+>Uu3xiEl<|}#1MLs{?M3C~SR*4N z8SAk7JIgx@BO^!ANNODViZ)Mr)|jo=akLdKQ3EZol1&7zhCPVwe;ZKI+0Rz(mZ~LU z!fVA4HuNe{Etf0)wQkGJqO5BLk9UrLmwrsu9R5y}b~}dbN`G)28MK}*(?KV;bhqCv ze3U%kvr+_u6e{j5VoxA3S$V!edq15a8vCbP&~z`?dtTx!e8lqgHM-M@ z?y&Ljpxfd)&wdql>5n0!`oCTPTT-ifMuLKoeXMoTLZ$nDd>~Qsf_!jj=*gf$5j2S{ z?STK!1S<+zaoW?Y(e*lm$((W`ZP=qq29&&PTrxGpEM^cLnJt(mge33E;5I#8aIUsq z?~DN8^^RjuAV2WJWH?7e3+J@Q#+&<0c9gv9WNS#c&>^ny+qW4HE{5rYgM+d!U*dCa z-REi`?mz!U%CPr)L0`L65z$tBC+9OsChq;SCZt7spcPLex_Ew`Z!bwCYX}blQ2IE>93 zDsQVe>z&cOtBnu54feTSKX3k2mX()J{Nl$sRpV_%9TfxTII@q{9~Xp%nV^>SNGjZY zJgVpFi`AG*1b`)^3+_v5k)lE;k3i*GGIJR zJF9(Q==6oYtCypkkxgWCZe=Cm?k+&%YQ_IZQZE0YvF)7OWAx1$5(2;!6woY!uI*iK zKdWUzYk26J?=KdgWXP+j;e5==(J?b~A-MQr+W2}EL=D@y#wC5Lc@w|)u@byWBuFxA zE8T=|=38mUIA;!6eB(cY2{Uq13wZe#`LsOSAaJnOcOt#bA@^m& ztRF1R%;GjSY=&&3qh&QT;=d;Z-PAaYP<}x=t+oX^y?#CUJ-rfWOPj;~7^XhN81toc zOkp5LvP0;p$IB};Fq$MrnJ!dPlx#!t(Vf#Kv7}~iJAVrK4=47TSJ?_b zR##Umy?VtCZeoy8F>pNmUfaV>*wVGj^YxBz&i@$b>+5$PTxOWMb&TeTe>*BxjE4e0 zA8z(j^g%u$WS3=4t-sS8g?f#dgN{KWAWEoxV2 zXBkK~I=(^tJ7MNbUg>@~;z{6By$%98Pl0tV$H*aqITv5q7c~Nz{vti!lG3Fj>4|{@)BK~Jg1I@(O2Dbc&~ZK+8akZrZVlr< zECRZ-Z=O7P@@_qXticDQ6mPgcB=JYK-?p?*1^v#o1zC=yM92L1y;clq zX=zRcBJL}3;FkFNYs=wezbrO(^!OQA0B@YIfpLwbrv(^n1DiwS*_#50f>RL%co;)P zB`;1>F^e!t-Vh(12O_mIvu?KsHS%`1t-oK0ge@t{wJeN&n*_?bahmIO_t#Nc&f1z` zaB#53b4wMMR)T!>Zd;^7tglcmsv(fCSE!i}UIDdyzxDLMcb$3K6bE1Wj?W_S+`wbB z_Vo;h$LPebU!wj{sULDOIc%_y$j2t4O z3l$`^a-kPL9kr7S+$lmvu$eH`d%hx(ARe&Th=)?Tez;Ftxqag})|Vn9^pXhBRLSTj zOu2vZ!rR;12^t8}R?+G<3;v}yeKc1qmu*ptZY|tyo3r94!xQlH{aI%-XdHjH4gb%7 zy;KWFF;#fTa+AGl%-WHDiJQ;l@qTYjA?3Z-#R$xf2TkmVkx>@b+&t0=`iKiL@yvub z^zx%^c6RhR8L;HU!;oQP36zLOJ4I^m@v$KcJZh(_QL(#`bIN9~V6uF}OyiM^L?my!TXMh0S2o7H*;sZ#1PkI00ri#SOE7 zKLKekBM0<>gIx9FeU$7*_Il2)>Qud6D<-F}Qr$}HKd>r_8$L|snyluPa>0JSg(x0T zpCwtw>8h_LL@m3qcm%?~2DWUf{#;Kf;3pQ{adLN`ZF~He7#v5nMPb`?)OLG3smA+i z5kQ8ZVANQ5p`%nL5qQ+92egAA`@0E(rUXyl<6X;zHW9EmW^v`iLiDV`<|#ftsF}*C z^{^orSZ}h9@B9YM%QFpSo^s6*f-$%GujZ;&^h`Y$G2I+;@ccs=>|-OxmU6d+29=@5 z0_k8Wz;iO@P-0uGS?o2ETuz8`hSE>p(9otU@=4^x!&vY`ea9fdJ?gnsltHCoVRJL3 zZEu_m$grQgEn(VEm1z8Dx#V&dVkr5hB&bJMv|@?vx$=rPN`LYjKG&?uVB=2Jsdtak zvI^bgkPBItqIBBKe5B%g``7pa z=S1k#g_S6EHSKg&_H5I07*J;rV$z%Wte5*rATXr|ZoX^D;}y^?M;Z z<5Wk8=JDyn@YKpehWUOcZ&EA~rhrudp1Cb6&%Begq$v-w&VH!IXW#JeN~k+zjz8dj-*Q$r&iC(JNWuMIN2|E?1o1<#)f3=g zo4m!&H3GPGJUs@uh)JDxV8w$QshIi4RLNCDS-EnASlQPP(D!kZ`828z{JE+Yv~R(i zV9*6$lI?FAaa0;d4t?S9}PAfMU)1; zx4$Zhe_ff3P(R_^zq5dASky%${q7;>~OQ|;V(eH&iO2X z!EpSEUK*14VTD09T+fTm_McThMJXL@Y}BeiP$$ZQzO3U5DlMNT&Ud%vifi1q$NM7` zU?uR<9A()T-2HnK>8f3EU_-p*f)46S{Iq_%3;`GOjxXKda0iI;7=({0(k+&wG^r8@ zQe3vRKPUZ*-*2${@tPv=E%q$NE`?|E%66{vsr$dc#qX|wvIoczs}3jTbpe2Bfjsejf(0ut|Egr~_MnJjm+RJSz*u>@cl#;LG-1lJfz!D9(sTo39%Z5JJ+60@EXg37XRd$p!1>3Mh82gpQEaD+i8mF$T zX-INu8l`7F?^4ER?*w~=h?gt6jgV%tRhAAGO4MQeCFj@;9FnB_E8yfBx4ivwv7AS| zoNCQMH2Bt-kHS5;Rdq{PlC5zl$&_Ee(D}{t6wztcR9n7G2vgqJwH9hGImj$Zv9?6o z{ykZGzmxY;CPB=bb>*o7f84ZRNd60-*Gs#P-NafTIdqzSamUWq6B`?Q{I`A#iYN=Y zR$H@D|i_yA}r@q7aS1iPwN zOR@>M&s5B*ugBUH!MwU)=%{FOZYKc{lN9&MrHZEnRUznl6e@WE zN|k7_d8PKM=H{2Cmb^{8ZC6Ew6O*hgY+^D*$kWx36C{^l9E!WKKOTU{K5-R0Hf_tgMic*L(Ga4 zn{9eHHwy1zka71SxgK@j>t0%l=HEE0pOStIB93C$MeGn zM{Cp9JH}ZRl#XayB23>`8=d+OW3Yk>{Dgc|X>aS-T?jo>2U+V)LR9@~Ei17aeP;4E zpZ*R%ln|Yulz0oPtsbyE#WHv;69xxW!-S8+=y zdcne^r)hY;RnaNji63tB36n>j-BHSXt^;EY;~xXwB}68I(xE|qYwWZC25}7(MZt1Z zA@}lzjIG=LhjbbV9ZU;L5^DGp*gmf!3LhRq1FPXbQWZAu-XoKgOEX3OM(M+T3ERm1 zV2ah5PxGh7R6Ptt;)}h&Bw5XGuf*(VNR(eE4Z`|3{!P_7?o9f=aVupU6`j=0!%N#5 zZ}ok71!>M;Cz$`Uvn(bi7AYo5phZyRPSQy(r>6Fy<42?2KuQy|*ov>rl{Emn)_9oy zuJcEk5%z$Jk6PNFswj?4h%eE(^;)Hv9rm-=hwBZ;ITIBn<#l{{riHTU&hO(&gp6#a zf7ZzbYF$!XhG5&AOm}95V7I;y^$=5)<&8F8hTD~*6a{xPklEeh8k8}prHoqil8+Wh zyT5{Dr32%Vf2xgZp{F}zec&Fz7jWg#dJ#yl*@nr_Or?{l451@pIkH?L5qx?DS}F)%cW7i^g0u$_cPjdlY+6_nsn zr#X&IEE6g}{!Fi^5(oaV3jiqkABs|^z8i`494^|7j%E7Gx~p1M6{O9{kV*LBraj3n zLa8e&!vq-?m>ayQ4M3P)<$V0uaP%K}TMGi=H!qbxp(xwh@H6w4uaZ!Y%;(UYSS z@RH=ptFeN$qC*!lzV(znnR`#%u_Y$l?4k1Q*}`qjF-}$>R6(k_F{))Lc}E(qlXK3i zE1hlK6={-j16|Gzg8Nu&gZ|hv&D`j{sZuJ%YZMGTCo!~}ak?EdXB8>XV-gKU8Q0*p zc=_^U5fn3Q(n`%-Hf>^nomq%Kimm)6?AUUMK-KCso`%RHWl?z?m3GD38dWCBmB~pP zzU!l(r<(G`I()qzdy_0fuH?4wP6k*ZNdpg=?RN^C^c%ULT%q`g9Lp1*tqBfkzuV%C zywB#2CT7+AlsvFfb#cmh@*~ujCMfT%8p2-kjDhd;-a7=!c9Q&?H>Rnb!l5t+v`_Hp zq;M5<_`rs{DzNH6$Y1aSBaql4IDd)#1q23G9Q++;;n%O4&Z0I?8HKdOhJV5Q_Kf>l z`ac|acjoZjCcf2i1CN7@P)VL?#OdA&(_&9Z`ovnO+6X@L;sBqgcDP>rg6m&CypPN>N!^!WeacT^a$%Jq+UF^OX~_1`zgol`M3xl z1Awd3dVeF##yeloF~K^GR>X~3bjP^SjmE9@+z{w3p^=Ri7Z-nW zJ7tRD-hTf)v;$$t>jC#RNS?T*JY0y$PFqN|H#Z^-aJ9XpmychdKi!Ss#^dl9Y#iUb?OBpYE#W;@FMzvSP zR#sGZzkS-`nAlUDbLLr1W3UG#tuWhqptc4$IXT&o4Jt}+Z0ofQu>AS1b}Q%%+6Hph zFVUEM&#*KKq|9%Bf~sx_J|mcv6!l(2+KY$)+ z&it(N`7KUtfRK|=c}P>JV!EYO~>FKvJ^l;ho5mN7xeyaq8|IUeCq)5cQORk42kgZ2wXXFXJFP zNLZ-!FRe@FnNC`Y3>a;(<8`#8USDaxA2uMw;noV+!8m6x5W%=Fg{a27Zf@kgc@}(I(^UBZD z;m{(=+fJ#9+KP&baEtc{Q{~{t+f`=j@sQ;4&HXtcrEosk=TP6?fQd*XNynE|;HU9;* z`{$}d1%DuW^^dD4udfqtKiGr#nBQ?XYl=$s+ywx*%$rH}e|!hj>?~yVWvI}pIL2Byq7noy;Y-5W!WD6+hj7b!G zr6n};jQ?te_}RAa3+CxYM~8+`V1d9ecPH8qFH8#HuMXZVjKWpzsL0EDs1I7LB@-k`2QI&V5rAUpudvpS(Yqckz_Ih((<%f8ATV#l?Hk*T%BlHo=ix= zTZe)URy{R(;NxY%FkVkn*)Wx;2R;0d)ZC#jS4#5{%sOp4LeT(tj$1R<>Gp`6CSI)- zmYOUdN=_*mRCXK`_W!K_^=CKx(e$b zIG{4Zus^k~i_ax)|JGZ@UER%AnS^Pxg}*=Der4Ec>fZXPg7_S!CrM6Y!cbWx1i^hVT6< z>v<7sE@_bD$0GTRdGMTNb=ec}%+u$w4yBhI$ z1BNkZfGDUz+U^hBo%>MW+uIItR3e&-JhxijxSNGERpZpA_#)Wt6g$PpAmMNWN(9f3 z;($Fd(OZr?#G{0y@+{0O)l0|d*r&UYl?6PKHnw58^|U4?*}UdzSLr5C+;>By{W_j> z_7OCtG2n`Sz#M-atWk6VI>pUgXXawxmG`WG>cfN*J_jeKa6R2_0%@+qd)>vvTn29J zSd_#wACbwwIGxo>YH8bzeO>Y`lAM{;kqS~2Z_@(!#)ET;E{OW|#7L!{{0PIU5HV&C zNtXJv%arY?jrkYU9AE$eKF(j#{|24rtfB%{rj2-Db{ts_Q&Pf!U;SEVOwl$pMDL9@ z9A5JBSZaDxR#5?kF(~%_mlcCb>!dj_T!t*@b<%G7*V9Xy_1WKQ-=HV&np(O>!7k*k zog(?ky^gXB@ag8xPH|I{C=ZP>zSp_sn>YNU`I40f zYJV?5d|r4VeLFt}^cwf z^A{HvqU(CAIUe;++XXVP$!?FB&ot^zjtz5$*98-p1@hWN%?0cqIRm|NmLyz2y19 z5AUm9ep6j^n6I-p234l)u06SU^rt8A~$qWMS@27oyYMSp$R2+pVo-AAbxBGJJd{yabU`=$fT6ey*ZHj4O<#sgqf>%>s~NM zW&}s|Zp5sQA}kX*+dLq<3)J&u<1cPYe37H8P-;Q$6D!jIL2+t8?+?`mJF+|!4lc=l zFEcfj@HP3{oM>9>;+eP06~4n!sv{!MY-wB#qN+6fB4CUH1sOU7xcmRnFMwF|CNqbF zoijRoig{rXPbZd^;z0QM5BxAuq3<5=FTXi3#ugdBKxuSajs?T^A~2Hx(Q2#?s{Cx4 z3{ChpH%)Hfxz8+LOzG|^#@XNUL;Rprm;YDFng2tz|8e}xm@&3cwlNVcqAoXE$-YEX zgs)_0EHS7gU9vWoEGbHgBnHuD?aNq_#(s-TLNu09Zg$zXv3=ij|Ap@_^Ef}uW6nAA zIp@8+UeC{44|VD4_4{+OAxVc|!*TgL_&J3l6ml}0rHUx`KK<9czYAhQ8;>5jA>^r= zU(!bS@??*HC$dNdjzW50*qr`M=*oe%Y?cm&PrTL7ow6|J6pwM-ai7o1d8^&$^SvM2^wSywXxZCnu-aaK=uF z%I7&v@q*kGZ~cmjQO`Ogfe|_$`L> z*2>jpmML-QJF$EhY8t~P4kYSCG8pz@BYT-NkdjbMYExlge$TNjikBrNy;OK<62GbF zQF3$9P~>uCg)N-AkQ9-(L<@lFyZdnSx+NRhs0W9skCfaP2Jw&NY$nq(Sz5{-T?%L8%HK}UgF;o5f*NGvI?}_PIOAj9#}vpr+YnbY}`Q!K*(^_gqWuR#XX3; zOP!;`EGT#N5S?BZ?d7?B4a|y}s)-#<*~#_h)Zq)5^gYja{~&M)r)HykN;qJUgN1_~ zMPX`nE|SZnfb&&IcT&NDj}3=qq^mZug{HwB>I??sXFKa(D6Po8f+vn&vLQ)QQ+~A( z-}RceSpx)OTWG69cM@X zymy;d?C0A22m$rVda~?$PI`uYz|%R7)UCgy4U-zY^(VFZ1&-9PwuH%%zXzA3ms8hN z|Kb0EQ+|uVyZ_zRmMGNX^e#}`;5t%Xz5cDpq4UcZ;smW9paiPv&cW)2H`c>K=x->+-P zc~Ai73e6k;$p4T|-+~UQsY#!Z%jDr??vK&-7Q0 zWQG3jTybAH!d`QBKxDh)3PNK!#>qUyq1s^o{p{&MhXl6b6*59b0j15$JLNm=E$SQz zs*x-3L!6$(`FDS>ya9}emmA$p!jMOeLAK{RpRL1=0VCC8SsY^$(95KF*K6Ob;w%fC zu{XQMCQ_1;_+iQUfX2{4NO_ykWS48*Dyth`tOVP(=t?@dS|U9l2|NKxVIf~;0J}NT z$u`#nvJ%o~3*@+bb@5O$%mNJkag(=udnl>)R5sUhuXUh++3vv0y2!P=b&x;Az^QR_ zEFk&`PWi!2LT`NzAFk-Y``#WoVAKiWX&xjcr{pe=_j3;170&oH!2Z~tbD|(udZkzw zT4f%m_pOCd;al;mp}SWN)AJ#eJ^$xzyhn^ntpGult8y^VA(I%;F%Q-j{%f3wQ9XdZ z^K8^&%08cqDJ+k2o*nq|cp>>(-N{-1pz6(@f zlT)PS9oE)h$W&3r4kDdVX7%E{x9gd*(aR zAF&SxkIL$KY$ebyTJb~zz&BFXy01}%u9a7$63)8OR_;o(g5gRYA_iQLS5X5I8#9dS zi}7Jl;j11$o>Nt2`$xA@>-w^Rd=2UemQm~S#?qz4HpC1oDsIG{Iwi$svz0)2M+`9< zp6&Pn_(Kpf6i}Oux|`9b2W5EvLU^XMp_M0*NHj?9I|LSM*^|Z5eYo9+2kMutRpx9y zI&|*-6|MDu9^Pb4yg1$!2BC;}SDZkO01+3sgid3r9;#4-23#;3MtdAHq%6oT=OG;; zEqHr-`|?*9qV&_>03;i)ZIO1FavRoRvA5MZkM zKJ?*`?af7cKnos6vng@@jG6-|Jey+}_BZt;agbF^e@YA^d16*>OZ@!t^q*>?i4Nu; zihDvXZg{Ym@+%*k)=dUv-D`HHqQVKqCCxfTNkuMdzx!TIKWwI@Vm4HZe3vC`XS-Ny z-v_+j(tUHom0K*^1ZREBcV#5+qJ)J#`0jP0|F6BICMg7ZWKU_{GJBU~!vx)n!CcNq zOK}2rG3v3p!3!Rj2WzZ1o+-t$Sgb00L_7LRXP$9IN1fZ=GQX{Dtb1vM_IujwK(&xx z-Fg94a!eu%J8Xw!Veen!r4{lm8N9Z^AlEk6{2}_cDBviaWT)!uMu~k2j#Y|RFU)>? zLUJCpV?W;FaNia3yrS=SmfFr)bGo*qe`~g>1yhf|LmeQ3GT_bFV3Dt)8@|U*%~x@( zTh&m)n4&2_gVATa@bT6gRYic4*Q2*sPgW_>FW3{&;0=Xm;{Q5W{jtL_$qaCi3|4@i P6G6@xoi{8tAV&QUgPWL# literal 21661 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 F?0>iMUBUnW From ace7812d3f9f81f38fb12608a0dd843811340954 Mon Sep 17 00:00:00 2001 From: Bob Date: Thu, 30 Nov 2023 22:10:41 +0100 Subject: [PATCH 422/432] rubber dinghy fixes, missile recipe stuff --- changelog | 13 +++- .../com/hbm/entity/item/EntityBoatRubber.java | 72 ++++++++++--------- .../entity/missile/EntityMissileBaseNT.java | 18 +++++ .../entity/missile/EntityMissileTier1.java | 4 +- .../entity/missile/EntityMissileTier2.java | 4 +- .../entity/missile/EntityMissileTier3.java | 5 +- .../java/com/hbm/handler/HazmatRegistry.java | 2 +- .../HazardTransformerRadiationContainer.java | 2 +- .../inventory/recipes/ArcWelderRecipes.java | 25 +++++++ .../inventory/recipes/AssemblerRecipes.java | 50 ++++++------- .../render/tileentity/RenderRadarScreen.java | 4 +- .../java/com/hbm/tileentity/DoorDecl.java | 8 +-- src/main/java/com/hbm/util/ArmorUtil.java | 1 + src/main/resources/assets/hbm/lang/en_US.lang | 2 +- src/main/resources/assets/hbm/sounds.json | 2 + 15 files changed, 137 insertions(+), 75 deletions(-) diff --git a/changelog b/changelog index a11e101f3..596d87512 100644 --- a/changelog +++ b/changelog @@ -6,15 +6,26 @@ * Made from latex or synthetic rubber * A much less jankier alternative to the vanilla boat. Rotations are silky smooth and done via the strafe keys instead of based on the player's orientation * Won't break from ramming into blocks + * Faster than a regular boat, but will decelerate quicker when there's nobody sitting in it, preventing the boat from drifting off too far when empty ## Changed * Reduced the blast resistance of the large doors from absurdly high to still very but not quite as high * Custom missiles are now launchable using the radar * NTM's structures should no longer spawn in dimensions besides the overworld. Ores will still generate, assuming the config option is set. +* Decreased M1tty's radiation resistance + * It's really damn cheap, what did you expect +* M1tty's helmet now acts like a protective mask +* Most non-custom missiles except tier 0s are now assembled in the arc welder + * Crafting complexity has been reduced, the recipes only need the three major components without any extra loose plates +* Non-custom missiles have been slightly buffed + * Explosions are now slightly larger and they use the new cross-detection entity damage code which still affects entities behind small hills that would otherwise be shielded + * Explosions now have a 2x larger entity damage radius ## Fixed * Fixed ancient bug where custom missiles launched using the launch table would not use the accuracy calculation and always be pin-point accurate * Fixed RBMK heat exchangers being able to use heatable fluids that don't have heat exchanger efficiency defined like liquid sodium, heavy water and thorium salt * Fixed RBMK heat exchangers not using the heat exchanger efficiency variable to determine cooling power * Fixed the ballistic gauntlet spawning a client-side ghost bullet that doesn't move or despawn -* Fixed bug where different custom machine cores would merge in a stack when picked up, turning them into the same type \ No newline at end of file +* Fixed bug where different custom machine cores would merge in a stack when picked up, turning them into the same type +* Fixed radar screen blips being visible through the back of the model +* Fixed desh crate's last half of slots preventing radiation entirely \ No newline at end of file diff --git a/src/main/java/com/hbm/entity/item/EntityBoatRubber.java b/src/main/java/com/hbm/entity/item/EntityBoatRubber.java index 3be552143..bcf638c7a 100644 --- a/src/main/java/com/hbm/entity/item/EntityBoatRubber.java +++ b/src/main/java/com/hbm/entity/item/EntityBoatRubber.java @@ -167,7 +167,6 @@ public class EntityBoatRubber extends Entity { @Override public void onUpdate() { super.onUpdate(); - //this.prevRotationYaw = this.rotationYaw; if(this.getTimeSinceHit() > 0) { this.setTimeSinceHit(this.getTimeSinceHit() - 1); @@ -194,30 +193,6 @@ public class EntityBoatRubber extends Entity { } } - double prevSpeedSq = Math.sqrt(this.motionX * this.motionX + this.motionZ * this.motionZ); - - if(prevSpeedSq > 0.2625D) { - double cosYaw = Math.cos(this.rotationYaw * Math.PI / 180.0D); - double sinYaw = Math.sin(this.rotationYaw * Math.PI / 180.0D); - - for(double j = 0; j < 1.0D + prevSpeedSq * 60.0D; ++j) { - double offset = (double) (this.rand.nextFloat() * 2.0F - 1.0F); - double side = (double) (this.rand.nextInt(2) * 2 - 1) * 0.7D; - double magX; - double magZ; - - if(this.rand.nextBoolean()) { - magX = this.posX - cosYaw * offset * 0.8D + sinYaw * side; - magZ = this.posZ - sinYaw * offset * 0.8D - cosYaw * side; - this.worldObj.spawnParticle("splash", magX, this.posY - 0.125D, magZ, this.motionX, this.motionY, this.motionZ); - } else { - magX = this.posX + cosYaw + sinYaw * offset * 0.7D; - magZ = this.posZ + sinYaw - cosYaw * offset * 0.7D; - this.worldObj.spawnParticle("splash", magX, this.posY - 0.125D, magZ, this.motionX, this.motionY, this.motionZ); - } - } - } - if(this.worldObj.isRemote && this.isBoatEmpty) { if(this.boatPosRotationIncrements > 0) { double x = this.posX + (this.boatX - this.posX) / (double) this.boatPosRotationIncrements; @@ -228,7 +203,6 @@ public class EntityBoatRubber extends Entity { this.rotationPitch = (float) ((double) this.rotationPitch + (this.boatPitch - (double) this.rotationPitch) / (double) this.boatPosRotationIncrements); --this.boatPosRotationIncrements; this.setPosition(x, y, z); - //this.setRotation(this.rotationYaw, this.rotationPitch); } else { double x = this.posX + this.motionX; @@ -256,6 +230,8 @@ public class EntityBoatRubber extends Entity { this.motionY += 0.007000000216066837D; } + double prevSpeedSq = Math.sqrt(this.motionX * this.motionX + this.motionZ * this.motionZ); + this.isAirBorne = false; if(this.riddenByEntity != null && this.riddenByEntity instanceof EntityLivingBase) { @@ -280,22 +256,26 @@ public class EntityBoatRubber extends Entity { EntityTrackerEntry entry = TrackerUtil.getTrackerEntry((WorldServer) worldObj, this.getEntityId()); entry.lastYaw = MathHelper.floor_float(this.rotationYaw * 256.0F / 360.0F) + 10; //force-trigger rotation update } + } else { + this.motionX *= 0.95D; + this.motionY *= 0.95D; + this.motionZ *= 0.95D; } double speedSq = Math.sqrt(this.motionX * this.motionX + this.motionZ * this.motionZ); - if(speedSq > 0.35D) { - double d4 = 0.35D / speedSq; + if(speedSq > 0.5D) { + double d4 = 0.5D / speedSq; this.motionX *= d4; this.motionZ *= d4; - speedSq = 0.35D; + speedSq = 0.5D; } - if(speedSq > prevSpeedSq && this.speedMultiplier < 0.35D) { - this.speedMultiplier += (0.35D - this.speedMultiplier) / 35.0D; + if(speedSq > prevSpeedSq && this.speedMultiplier < 0.5D) { + this.speedMultiplier += (0.5D - this.speedMultiplier) / 50.0D; - if(this.speedMultiplier > 0.35D) { - this.speedMultiplier = 0.35D; + if(this.speedMultiplier > 0.5D) { + this.speedMultiplier = 0.5D; } } else { this.speedMultiplier -= (this.speedMultiplier - 0.07D) / 35.0D; @@ -384,6 +364,32 @@ public class EntityBoatRubber extends Entity { } } } + + double moX = this.prevPosX - this.posX; + double moZ = this.prevPosZ - this.posZ; + double prevSpeedSq = Math.sqrt(moX * moX + moZ * moZ); + + if(prevSpeedSq > 0.2625D) { + double cosYaw = Math.cos(this.rotationYaw * Math.PI / 180.0D); + double sinYaw = Math.sin(this.rotationYaw * Math.PI / 180.0D); + + for(double j = 0; j < 1.0D + prevSpeedSq * 60.0D; ++j) { + double offset = (double) (this.rand.nextFloat() * 2.0F - 1.0F); + double side = (double) (this.rand.nextInt(2) * 2 - 1) * 0.7D; + double magX; + double magZ; + + if(this.rand.nextBoolean()) { + magX = this.posX - cosYaw * offset * 0.8D + sinYaw * side; + magZ = this.posZ - sinYaw * offset * 0.8D - cosYaw * side; + this.worldObj.spawnParticle("splash", magX, this.posY - 0.125D, magZ, moX, 0.1, moZ); + } else { + magX = this.posX + cosYaw + sinYaw * offset * 0.7D; + magZ = this.posZ + sinYaw - cosYaw * offset * 0.7D; + this.worldObj.spawnParticle("splash", magX, this.posY - 0.125D, magZ, moX, 0.1, moZ); + } + } + } } protected void passiveDeccelerate() { diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java b/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java index 8fdd2f065..631f75cb0 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java @@ -6,6 +6,13 @@ import java.util.List; import com.hbm.entity.logic.IChunkLoader; import com.hbm.entity.projectile.EntityThrowableInterp; import com.hbm.explosion.ExplosionLarge; +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard; +import com.hbm.explosion.vanillant.standard.BlockMutatorFire; +import com.hbm.explosion.vanillant.standard.BlockProcessorStandard; +import com.hbm.explosion.vanillant.standard.EntityProcessorCross; +import com.hbm.explosion.vanillant.standard.ExplosionEffectStandard; +import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; import com.hbm.main.MainRegistry; import api.hbm.entity.IRadarDetectable; @@ -303,4 +310,15 @@ public abstract class EntityMissileBaseNT extends EntityThrowableInterp implemen } } } + + public void explodeStandard(float strength, int resolution, boolean fire, boolean largeSmoke) { + ExplosionVNT xnt = new ExplosionVNT(worldObj, posX, posY, posZ, strength); + xnt.setBlockAllocator(new BlockAllocatorStandard(resolution)); + xnt.setBlockProcessor(new BlockProcessorStandard().setNoDrop().withBlockEffect(fire ? new BlockMutatorFire() : null)); + xnt.setEntityProcessor(new EntityProcessorCross(7.5D).withRangeMod(2)); + xnt.setPlayerProcessor(new PlayerProcessorStandard()); + xnt.setSFX(new ExplosionEffectStandard()); + if(largeSmoke) ExplosionLarge.spawnParticles(worldObj, posX, posY, posZ, ExplosionLarge.cloudFunction((int) strength)); + xnt.explode(); + } } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileTier1.java b/src/main/java/com/hbm/entity/missile/EntityMissileTier1.java index f640def7a..92ebec3f2 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileTier1.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileTier1.java @@ -43,14 +43,14 @@ public abstract class EntityMissileTier1 extends EntityMissileBaseNT { public static class EntityMissileGeneric extends EntityMissileTier1 { public EntityMissileGeneric(World world) { super(world); } public EntityMissileGeneric(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } - @Override public void onImpact() { ExplosionLarge.explode(worldObj, posX, posY, posZ, 10.0F, true, true, true); } + @Override public void onImpact() { this.explodeStandard(15F, 24, false, true); } @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_generic_small); } } public static class EntityMissileIncendiary extends EntityMissileTier1 { public EntityMissileIncendiary(World world) { super(world); } public EntityMissileIncendiary(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } - @Override public void onImpact() { ExplosionLarge.explodeFire(worldObj, this.posX + 0.5F, this.posY + 0.5F, this.posZ + 0.5F, 10.0F, true, true, true); } + @Override public void onImpact() { this.explodeStandard(15F, 24, true, true); } @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_incendiary_small); } } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileTier2.java b/src/main/java/com/hbm/entity/missile/EntityMissileTier2.java index 8c9917324..a0b71922f 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileTier2.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileTier2.java @@ -47,7 +47,7 @@ public abstract class EntityMissileTier2 extends EntityMissileBaseNT { public static class EntityMissileStrong extends EntityMissileTier2 { public EntityMissileStrong(World world) { super(world); } public EntityMissileStrong(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } - @Override public void onImpact() { ExplosionLarge.explode(worldObj, posX, posY, posZ, 25.0F, true, true, true); } + @Override public void onImpact() { this.explodeStandard(30F, 32, false, true); } @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_generic_medium); } } @@ -55,7 +55,7 @@ public abstract class EntityMissileTier2 extends EntityMissileBaseNT { public EntityMissileIncendiaryStrong(World world) { super(world); } public EntityMissileIncendiaryStrong(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } @Override public void onImpact() { - ExplosionLarge.explodeFire(worldObj, this.posX + 0.5F, this.posY + 0.5F, this.posZ + 0.5F, 25.0F, true, true, true); + this.explodeStandard(30F, 32, true, true); ExplosionChaos.flameDeath(this.worldObj, (int)((float)this.posX + 0.5F), (int)((float)this.posY + 0.5F), (int)((float)this.posZ + 0.5F), 25); } @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_incendiary_medium); } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileTier3.java b/src/main/java/com/hbm/entity/missile/EntityMissileTier3.java index 17602263a..e046a2f6c 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileTier3.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileTier3.java @@ -50,8 +50,7 @@ public abstract class EntityMissileTier3 extends EntityMissileBaseNT { public EntityMissileBurst(World world) { super(world); } public EntityMissileBurst(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } @Override public void onImpact() { - for(int i = 0; i < 4; i++) this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 50.0F, true); - ExplosionLarge.explode(worldObj, posX, posY, posZ, 50.0F, true, true, true); + this.explodeStandard(50F, 48, false, true); } @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_generic_large); } } @@ -60,7 +59,7 @@ public abstract class EntityMissileTier3 extends EntityMissileBaseNT { public EntityMissileInferno(World world) { super(world); } public EntityMissileInferno(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } @Override public void onImpact() { - ExplosionLarge.explodeFire(worldObj, this.posX + 0.5F, this.posY + 0.5F, this.posZ + 0.5F, 35.0F, true, true, true); + this.explodeStandard(50F, 48, true, true); ExplosionChaos.burn(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 10); ExplosionChaos.flameDeath(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 25); } diff --git a/src/main/java/com/hbm/handler/HazmatRegistry.java b/src/main/java/com/hbm/handler/HazmatRegistry.java index 07e7df1b0..5bffe35cb 100644 --- a/src/main/java/com/hbm/handler/HazmatRegistry.java +++ b/src/main/java/com/hbm/handler/HazmatRegistry.java @@ -53,7 +53,7 @@ public class HazmatRegistry { double t45 = 1D; // 90% double ajr = 1.3D; // 95% double bj = 1D; // 90% - double env = 2D; // 99% + double env = 1.0D; // 99% double hev = 2.3D; // 99.5% double rpa = 2D; // 99% double trench = 1D; // 90% diff --git a/src/main/java/com/hbm/hazard/transformer/HazardTransformerRadiationContainer.java b/src/main/java/com/hbm/hazard/transformer/HazardTransformerRadiationContainer.java index a60d2ff38..2f66ebcb1 100644 --- a/src/main/java/com/hbm/hazard/transformer/HazardTransformerRadiationContainer.java +++ b/src/main/java/com/hbm/hazard/transformer/HazardTransformerRadiationContainer.java @@ -32,7 +32,7 @@ public class HazardTransformerRadiationContainer extends HazardTransformerBase { if(isCrate) { - for(int i = 0; i < 54; i++) { + for(int i = 0; i < 104; i++) { ItemStack held = ItemStack.loadItemStackFromNBT(stack.stackTagCompound.getCompoundTag("slot" + i)); if(held != null) { diff --git a/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java b/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java index b7c9be8b6..3c3632c9c 100644 --- a/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java @@ -11,6 +11,7 @@ import static com.hbm.inventory.OreDictManager.*; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; +import com.hbm.blocks.ModBlocks; import com.hbm.inventory.FluidStack; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.ComparableStack; @@ -74,6 +75,30 @@ public class ArcWelderRecipes extends SerializableRecipe { //pre-DFC recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.plate_welded, 1, Mats.MAT_OSMIRIDIUM.id), 6_000, 20_000_000L, new FluidStack(Fluids.REFORMGAS, 16_000), new OreDictStack(OSMIRIDIUM.plateCast(), 2))); + + + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_generic), 100, 5_000L, new ComparableStack(ModItems.warhead_generic_small), new ComparableStack(ModItems.fuel_tank_small), new ComparableStack(ModItems.thruster_small))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_incendiary), 100, 5_000L, new ComparableStack(ModItems.warhead_incendiary_small), new ComparableStack(ModItems.fuel_tank_small), new ComparableStack(ModItems.thruster_small))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_cluster), 100, 5_000L, new ComparableStack(ModItems.warhead_cluster_small), new ComparableStack(ModItems.fuel_tank_small), new ComparableStack(ModItems.thruster_small))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_buster), 100, 5_000L, new ComparableStack(ModItems.warhead_buster_small), new ComparableStack(ModItems.fuel_tank_small), new ComparableStack(ModItems.thruster_small))); + + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_strong), 200, 10_000L, new ComparableStack(ModItems.warhead_generic_medium), new ComparableStack(ModItems.fuel_tank_medium), new ComparableStack(ModItems.thruster_medium))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_incendiary_strong), 200, 10_000L, new ComparableStack(ModItems.warhead_incendiary_medium), new ComparableStack(ModItems.fuel_tank_medium), new ComparableStack(ModItems.thruster_medium))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_cluster_strong), 200, 10_000L, new ComparableStack(ModItems.warhead_cluster_medium), new ComparableStack(ModItems.fuel_tank_medium), new ComparableStack(ModItems.thruster_medium))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_buster_strong), 200, 10_000L, new ComparableStack(ModItems.warhead_buster_medium), new ComparableStack(ModItems.fuel_tank_medium), new ComparableStack(ModItems.thruster_medium))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_emp_strong), 200, 10_000L, new ComparableStack(ModBlocks.emp_bomb, 3), new ComparableStack(ModItems.fuel_tank_medium), new ComparableStack(ModItems.thruster_medium))); + + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_burst), 300, 25_000L, new ComparableStack(ModItems.warhead_generic_large), new ComparableStack(ModItems.fuel_tank_large), new ComparableStack(ModItems.thruster_large))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_inferno), 300, 25_000L, new ComparableStack(ModItems.warhead_incendiary_large), new ComparableStack(ModItems.fuel_tank_large), new ComparableStack(ModItems.thruster_large))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_rain), 300, 25_000L, new ComparableStack(ModItems.warhead_cluster_large), new ComparableStack(ModItems.fuel_tank_large), new ComparableStack(ModItems.thruster_large))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_drill), 300, 25_000L, new ComparableStack(ModItems.warhead_buster_large), new ComparableStack(ModItems.fuel_tank_large), new ComparableStack(ModItems.thruster_large))); + + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_nuclear), 600, 50_000L, new ComparableStack(ModItems.warhead_nuclear), new ComparableStack(ModItems.fuel_tank_large), new ComparableStack(ModItems.thruster_large))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_nuclear_cluster), 600, 50_000L, new ComparableStack(ModItems.warhead_mirv), new ComparableStack(ModItems.fuel_tank_large), new ComparableStack(ModItems.thruster_large))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_volcano), 600, 50_000L, new ComparableStack(ModItems.warhead_volcano), new ComparableStack(ModItems.fuel_tank_large), new ComparableStack(ModItems.thruster_large))); + + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_endo), 200, 10_000L, new ComparableStack(ModItems.warhead_thermo_endo), new ComparableStack(ModItems.fuel_tank_large), new ComparableStack(ModItems.thruster_large))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_exo), 200, 10_000L, new ComparableStack(ModItems.warhead_thermo_exo), new ComparableStack(ModItems.fuel_tank_large), new ComparableStack(ModItems.thruster_large))); } public static HashMap getRecipes() { diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index e5e0d5bef..82e17f216 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -180,9 +180,9 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.dysfunctional_reactor, 1), new AStack[] {new OreDictStack(STEEL.plate(), 15), new OreDictStack(PB.ingot(), 5), new ComparableStack(ModItems.rod_quad_empty, 10), new OreDictStack("dyeBrown", 3), },200); makeRecipe(new ComparableStack(ModItems.missile_assembly, 1), new AStack[] {new ComparableStack(ModItems.hull_small_steel, 1), new ComparableStack(ModItems.hull_small_aluminium, 4), new OreDictStack(STEEL.ingot(), 2), new OreDictStack(TI.plate(), 6), new ComparableStack(ModItems.wire_aluminium, 6), new ComparableStack(ModItems.canister_full, 3, Fluids.KEROSENE.getID()), new ComparableStack(ModItems.circuit_targeting_tier1, 1), },200); makeRecipe(new ComparableStack(ModItems.missile_carrier, 1), new AStack[] {new ComparableStack(ModItems.fluid_barrel_full, 16, Fluids.KEROSENE.getID()), new ComparableStack(ModItems.thruster_medium, 4), new ComparableStack(ModItems.thruster_large, 1), new ComparableStack(ModItems.hull_big_titanium, 6), new ComparableStack(ModItems.hull_big_steel, 2), new ComparableStack(ModItems.hull_small_aluminium, 12), new OreDictStack(TI.plate(), 24), new OreDictStack(ANY_RUBBER.ingot(), 128), new ComparableStack(ModBlocks.det_cord, 8), new ComparableStack(ModItems.circuit_targeting_tier3, 12), new ComparableStack(ModItems.circuit_targeting_tier4, 3), },4800); - makeRecipe(new ComparableStack(ModItems.warhead_generic_small, 1), new AStack[] {new OreDictStack(TI.plate(), 5), new OreDictStack(STEEL.plate(), 3), new ComparableStack(Blocks.tnt, 2), },100); - makeRecipe(new ComparableStack(ModItems.warhead_generic_medium, 1), new AStack[] {new OreDictStack(TI.plate(), 8), new OreDictStack(STEEL.plate(), 5), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 4), },150); - makeRecipe(new ComparableStack(ModItems.warhead_generic_large, 1), new AStack[] {new OreDictStack(TI.plate(), 15), new OreDictStack(STEEL.plate(), 8), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 8), },200); + makeRecipe(new ComparableStack(ModItems.warhead_generic_small, 1), new AStack[] {new OreDictStack(TI.plate(), 5), new OreDictStack(STEEL.plate(), 3), new ComparableStack(ModItems.ball_dynamite, 2), new ComparableStack(ModItems.circuit_targeting_tier2) },100); + makeRecipe(new ComparableStack(ModItems.warhead_generic_medium, 1), new AStack[] {new OreDictStack(TI.plate(), 8), new OreDictStack(STEEL.plate(), 5), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 4), new ComparableStack(ModItems.circuit_targeting_tier3) },150); + makeRecipe(new ComparableStack(ModItems.warhead_generic_large, 1), new AStack[] {new OreDictStack(TI.plate(), 15), new OreDictStack(STEEL.plate(), 8), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 8), new ComparableStack(ModItems.circuit_targeting_tier4) },200); makeRecipe(new ComparableStack(ModItems.warhead_incendiary_small, 1), new AStack[] {new ComparableStack(ModItems.warhead_generic_small, 1), new OreDictStack(P_RED.dust(), 4), },100); makeRecipe(new ComparableStack(ModItems.warhead_incendiary_medium, 1), new AStack[] {new ComparableStack(ModItems.warhead_generic_medium, 1), new OreDictStack(P_RED.dust(), 8), },150); makeRecipe(new ComparableStack(ModItems.warhead_incendiary_large, 1), new AStack[] {new ComparableStack(ModItems.warhead_generic_large, 1), new OreDictStack(P_RED.dust(), 16), },200); @@ -192,11 +192,11 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.warhead_buster_small, 1), new AStack[] {new ComparableStack(ModItems.warhead_generic_small, 1), new ComparableStack(ModBlocks.det_cord, 8), },100); makeRecipe(new ComparableStack(ModItems.warhead_buster_medium, 1), new AStack[] {new ComparableStack(ModItems.warhead_generic_medium, 1), new ComparableStack(ModBlocks.det_cord, 4), new ComparableStack(ModBlocks.det_charge, 4), },150); makeRecipe(new ComparableStack(ModItems.warhead_buster_large, 1), new AStack[] {new ComparableStack(ModItems.warhead_generic_large, 1), new ComparableStack(ModBlocks.det_charge, 8), },200); - makeRecipe(new ComparableStack(ModItems.warhead_nuclear, 1), new AStack[] {new ComparableStack(ModItems.boy_shielding, 1), new ComparableStack(ModItems.boy_target, 1), new ComparableStack(ModItems.boy_bullet, 1), new ComparableStack(ModItems.boy_propellant, 1), new ComparableStack(ModItems.wire_red_copper, 6), new OreDictStack(TI.plate(), 20), new OreDictStack(STEEL.plate(), 12), },300); - makeRecipe(new ComparableStack(ModItems.warhead_mirv, 1), new AStack[] {new OreDictStack(TI.plate(), 20), new OreDictStack(STEEL.plate(), 12), new OreDictStack(PU239.ingot(), 1), new ComparableStack(ModItems.ball_tatb, 8), new OreDictStack(BE.ingot(), 4), new OreDictStack(LI.ingot(), 4), new ComparableStack(ModItems.cell_deuterium, 6), },500); + makeRecipe(new ComparableStack(ModItems.warhead_nuclear, 1), new AStack[] {new ComparableStack(ModItems.boy_shielding, 1), new ComparableStack(ModItems.boy_target, 1), new ComparableStack(ModItems.boy_bullet, 1), new ComparableStack(ModItems.boy_propellant, 1), new ComparableStack(ModItems.wire_red_copper, 6), new OreDictStack(TI.plate(), 24), new ComparableStack(ModItems.circuit_targeting_tier4, 1) },300); + makeRecipe(new ComparableStack(ModItems.warhead_mirv, 1), new AStack[] {new OreDictStack(TI.plate(), 24), new OreDictStack(STEEL.plate(), 12), new OreDictStack(PU239.ingot(), 1), new ComparableStack(ModItems.ball_tatb, 8), new OreDictStack(BE.ingot(), 4), new OreDictStack(LI.ingot(), 4), new ComparableStack(ModItems.cell_deuterium, 6), new ComparableStack(ModItems.circuit_targeting_tier4, 3) },500); makeRecipe(new ComparableStack(ModItems.warhead_volcano, 1), new AStack[] {new OreDictStack(TI.plate(), 24), new OreDictStack(STEEL.plate(), 16), new ComparableStack(ModBlocks.det_nuke, 3), new OreDictStack(U238.block(), 24), new ComparableStack(ModItems.circuit_tantalium, 5) }, 600); - makeRecipe(new ComparableStack(ModItems.warhead_thermo_endo, 1), new AStack[] {new ComparableStack(ModBlocks.therm_endo, 2), new OreDictStack(TI.plate(), 12), new OreDictStack(STEEL.plate(), 6), },300); - makeRecipe(new ComparableStack(ModItems.warhead_thermo_exo, 1), new AStack[] {new ComparableStack(ModBlocks.therm_exo, 2), new OreDictStack(TI.plate(), 12), new OreDictStack(STEEL.plate(), 6), },300); + makeRecipe(new ComparableStack(ModItems.warhead_thermo_endo, 1), new AStack[] {new ComparableStack(ModBlocks.therm_endo, 2), new OreDictStack(TI.plate(), 12), new ComparableStack(ModItems.circuit_targeting_tier3, 1) },300); + makeRecipe(new ComparableStack(ModItems.warhead_thermo_exo, 1), new AStack[] {new ComparableStack(ModBlocks.therm_exo, 2), new OreDictStack(TI.plate(), 12), new ComparableStack(ModItems.circuit_targeting_tier3, 1) },300); makeRecipe(new ComparableStack(ModItems.fuel_tank_small, 1), new AStack[] {new ComparableStack(ModItems.canister_full, 6, Fluids.ETHANOL.getID()), new OreDictStack(TI.plate(), 6), new OreDictStack(STEEL.plate(), 2), },100); makeRecipe(new ComparableStack(ModItems.fuel_tank_medium, 1), new AStack[] {new ComparableStack(ModItems.canister_full, 8, Fluids.KEROSENE.getID()), new OreDictStack(TI.plate(), 12), new OreDictStack(STEEL.plate(), 4), },150); makeRecipe(new ComparableStack(ModItems.fuel_tank_large, 1), new AStack[] {new ComparableStack(ModItems.canister_full, 12, Fluids.KEROSENE.getID()), new OreDictStack(TI.plate(), 24), new OreDictStack(STEEL.plate(), 8), },200); @@ -325,24 +325,24 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.therm_exo, 1), new AStack[] {new OreDictStack(TI.plate(), 12), new OreDictStack(P_RED.dust(), 32), new ComparableStack(ModItems.circuit_gold, 1), new ComparableStack(ModItems.coil_gold, 4), },250); makeRecipe(new ComparableStack(ModBlocks.launch_pad, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(ANY_PLASTIC.ingot(), 2), new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModBlocks.machine_battery, 1), new ComparableStack(ModItems.circuit_gold, 2), },250); makeRecipe(new ComparableStack(ModItems.spawn_chopper, 1), new AStack[] {new ComparableStack(ModItems.chopper_blades, 5), new ComparableStack(ModItems.chopper_gun, 1), new ComparableStack(ModItems.chopper_head, 1), new ComparableStack(ModItems.chopper_tail, 1), new ComparableStack(ModItems.chopper_torso, 1), new ComparableStack(ModItems.chopper_wing, 2), },300); - makeRecipe(new ComparableStack(ModItems.missile_generic, 1), new AStack[] {new ComparableStack(ModItems.warhead_generic_small, 1), new ComparableStack(ModItems.fuel_tank_small, 1), new ComparableStack(ModItems.thruster_small, 1), new OreDictStack(TI.plate(), 6), new ComparableStack(ModItems.circuit_targeting_tier1, 1), },200); - makeRecipe(new ComparableStack(ModItems.missile_incendiary, 1), new AStack[] {new ComparableStack(ModItems.warhead_incendiary_small, 1), new ComparableStack(ModItems.fuel_tank_small, 1), new ComparableStack(ModItems.thruster_small, 1), new OreDictStack(TI.plate(), 6), new ComparableStack(ModItems.circuit_targeting_tier1, 1), },200); - makeRecipe(new ComparableStack(ModItems.missile_cluster, 1), new AStack[] {new ComparableStack(ModItems.warhead_cluster_small, 1), new ComparableStack(ModItems.fuel_tank_small, 1), new ComparableStack(ModItems.thruster_small, 1), new OreDictStack(TI.plate(), 6), new ComparableStack(ModItems.circuit_targeting_tier1, 1), },200); - makeRecipe(new ComparableStack(ModItems.missile_buster, 1), new AStack[] {new ComparableStack(ModItems.warhead_buster_small, 1), new ComparableStack(ModItems.fuel_tank_small, 1), new ComparableStack(ModItems.thruster_small, 1), new OreDictStack(TI.plate(), 6), new ComparableStack(ModItems.circuit_targeting_tier1, 1), },200); - makeRecipe(new ComparableStack(ModItems.missile_strong, 1), new AStack[] {new ComparableStack(ModItems.warhead_generic_medium, 1), new ComparableStack(ModItems.fuel_tank_medium, 1), new ComparableStack(ModItems.thruster_medium, 1), new OreDictStack(TI.plate(), 10), new OreDictStack(STEEL.plate(), 14), new ComparableStack(ModItems.circuit_targeting_tier2, 1), },250); - makeRecipe(new ComparableStack(ModItems.missile_incendiary_strong, 1), new AStack[] {new ComparableStack(ModItems.warhead_incendiary_medium, 1), new ComparableStack(ModItems.fuel_tank_medium, 1), new ComparableStack(ModItems.thruster_medium, 1), new OreDictStack(TI.plate(), 10), new OreDictStack(STEEL.plate(), 14), new ComparableStack(ModItems.circuit_targeting_tier2, 1), },250); - makeRecipe(new ComparableStack(ModItems.missile_cluster_strong, 1), new AStack[] {new ComparableStack(ModItems.warhead_cluster_medium, 1), new ComparableStack(ModItems.fuel_tank_medium, 1), new ComparableStack(ModItems.thruster_medium, 1), new OreDictStack(TI.plate(), 10), new OreDictStack(STEEL.plate(), 14), new ComparableStack(ModItems.circuit_targeting_tier2, 1), },250); - makeRecipe(new ComparableStack(ModItems.missile_buster_strong, 1), new AStack[] {new ComparableStack(ModItems.warhead_buster_medium, 1), new ComparableStack(ModItems.fuel_tank_medium, 1), new ComparableStack(ModItems.thruster_medium, 1), new OreDictStack(TI.plate(), 10), new OreDictStack(STEEL.plate(), 14), new ComparableStack(ModItems.circuit_targeting_tier2, 1), },250); - makeRecipe(new ComparableStack(ModItems.missile_emp_strong, 1), new AStack[] {new ComparableStack(ModBlocks.emp_bomb, 3), new ComparableStack(ModItems.fuel_tank_medium, 1), new ComparableStack(ModItems.thruster_medium, 1), new OreDictStack(TI.plate(), 10), new OreDictStack(STEEL.plate(), 14), new ComparableStack(ModItems.circuit_targeting_tier2, 1), },250); - makeRecipe(new ComparableStack(ModItems.missile_burst, 1), new AStack[] {new ComparableStack(ModItems.warhead_generic_large, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 14), new OreDictStack(STEEL.plate(), 20), new OreDictStack(AL.plate(), 12), new ComparableStack(ModItems.circuit_targeting_tier3, 1), },350); - makeRecipe(new ComparableStack(ModItems.missile_inferno, 1), new AStack[] {new ComparableStack(ModItems.warhead_incendiary_large, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 14), new OreDictStack(STEEL.plate(), 20), new OreDictStack(AL.plate(), 12), new ComparableStack(ModItems.circuit_targeting_tier3, 1), },350); - makeRecipe(new ComparableStack(ModItems.missile_rain, 1), new AStack[] {new ComparableStack(ModItems.warhead_cluster_large, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 14), new OreDictStack(STEEL.plate(), 20), new OreDictStack(AL.plate(), 12), new ComparableStack(ModItems.circuit_targeting_tier3, 1), },350); - makeRecipe(new ComparableStack(ModItems.missile_drill, 1), new AStack[] {new ComparableStack(ModItems.warhead_buster_large, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 14), new OreDictStack(STEEL.plate(), 20), new OreDictStack(AL.plate(), 12), new ComparableStack(ModItems.circuit_targeting_tier3, 1), },350); - makeRecipe(new ComparableStack(ModItems.missile_nuclear, 1), new AStack[] {new ComparableStack(ModItems.warhead_nuclear, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 20), new OreDictStack(STEEL.plate(), 24), new OreDictStack(AL.plate(), 16), new ComparableStack(ModItems.circuit_targeting_tier4, 1), },500); - makeRecipe(new ComparableStack(ModItems.missile_nuclear_cluster, 1), new AStack[] {new ComparableStack(ModItems.warhead_mirv, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 20), new OreDictStack(STEEL.plate(), 24), new OreDictStack(AL.plate(), 16), new ComparableStack(ModItems.circuit_targeting_tier5, 1), },600); - makeRecipe(new ComparableStack(ModItems.missile_volcano, 1), new AStack[] {new ComparableStack(ModItems.warhead_volcano, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 20), new OreDictStack(STEEL.plate(), 24), new OreDictStack(AL.plate(), 16), new ComparableStack(ModItems.circuit_targeting_tier5, 1), },600); - makeRecipe(new ComparableStack(ModItems.missile_endo, 1), new AStack[] {new ComparableStack(ModItems.warhead_thermo_endo, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 14), new OreDictStack(STEEL.plate(), 20), new OreDictStack(AL.plate(), 12), new ComparableStack(ModItems.circuit_targeting_tier4, 1), },350); - makeRecipe(new ComparableStack(ModItems.missile_exo, 1), new AStack[] {new ComparableStack(ModItems.warhead_thermo_exo, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 14), new OreDictStack(STEEL.plate(), 20), new OreDictStack(AL.plate(), 12), new ComparableStack(ModItems.circuit_targeting_tier4, 1), },350); + //makeRecipe(new ComparableStack(ModItems.missile_generic, 1), new AStack[] {new ComparableStack(ModItems.warhead_generic_small, 1), new ComparableStack(ModItems.fuel_tank_small, 1), new ComparableStack(ModItems.thruster_small, 1), new OreDictStack(TI.plate(), 6), new ComparableStack(ModItems.circuit_targeting_tier1, 1), },200); + //makeRecipe(new ComparableStack(ModItems.missile_incendiary, 1), new AStack[] {new ComparableStack(ModItems.warhead_incendiary_small, 1), new ComparableStack(ModItems.fuel_tank_small, 1), new ComparableStack(ModItems.thruster_small, 1), new OreDictStack(TI.plate(), 6), new ComparableStack(ModItems.circuit_targeting_tier1, 1), },200); + //makeRecipe(new ComparableStack(ModItems.missile_cluster, 1), new AStack[] {new ComparableStack(ModItems.warhead_cluster_small, 1), new ComparableStack(ModItems.fuel_tank_small, 1), new ComparableStack(ModItems.thruster_small, 1), new OreDictStack(TI.plate(), 6), new ComparableStack(ModItems.circuit_targeting_tier1, 1), },200); + //makeRecipe(new ComparableStack(ModItems.missile_buster, 1), new AStack[] {new ComparableStack(ModItems.warhead_buster_small, 1), new ComparableStack(ModItems.fuel_tank_small, 1), new ComparableStack(ModItems.thruster_small, 1), new OreDictStack(TI.plate(), 6), new ComparableStack(ModItems.circuit_targeting_tier1, 1), },200); + //makeRecipe(new ComparableStack(ModItems.missile_strong, 1), new AStack[] {new ComparableStack(ModItems.warhead_generic_medium, 1), new ComparableStack(ModItems.fuel_tank_medium, 1), new ComparableStack(ModItems.thruster_medium, 1), new OreDictStack(TI.plate(), 10), new OreDictStack(STEEL.plate(), 14), new ComparableStack(ModItems.circuit_targeting_tier2, 1), },250); + //makeRecipe(new ComparableStack(ModItems.missile_incendiary_strong, 1), new AStack[] {new ComparableStack(ModItems.warhead_incendiary_medium, 1), new ComparableStack(ModItems.fuel_tank_medium, 1), new ComparableStack(ModItems.thruster_medium, 1), new OreDictStack(TI.plate(), 10), new OreDictStack(STEEL.plate(), 14), new ComparableStack(ModItems.circuit_targeting_tier2, 1), },250); + //makeRecipe(new ComparableStack(ModItems.missile_cluster_strong, 1), new AStack[] {new ComparableStack(ModItems.warhead_cluster_medium, 1), new ComparableStack(ModItems.fuel_tank_medium, 1), new ComparableStack(ModItems.thruster_medium, 1), new OreDictStack(TI.plate(), 10), new OreDictStack(STEEL.plate(), 14), new ComparableStack(ModItems.circuit_targeting_tier2, 1), },250); + //makeRecipe(new ComparableStack(ModItems.missile_buster_strong, 1), new AStack[] {new ComparableStack(ModItems.warhead_buster_medium, 1), new ComparableStack(ModItems.fuel_tank_medium, 1), new ComparableStack(ModItems.thruster_medium, 1), new OreDictStack(TI.plate(), 10), new OreDictStack(STEEL.plate(), 14), new ComparableStack(ModItems.circuit_targeting_tier2, 1), },250); + //makeRecipe(new ComparableStack(ModItems.missile_emp_strong, 1), new AStack[] {new ComparableStack(ModBlocks.emp_bomb, 3), new ComparableStack(ModItems.fuel_tank_medium, 1), new ComparableStack(ModItems.thruster_medium, 1), new OreDictStack(TI.plate(), 10), new OreDictStack(STEEL.plate(), 14), new ComparableStack(ModItems.circuit_targeting_tier2, 1), },250); + //makeRecipe(new ComparableStack(ModItems.missile_burst, 1), new AStack[] {new ComparableStack(ModItems.warhead_generic_large, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 14), new OreDictStack(STEEL.plate(), 20), new OreDictStack(AL.plate(), 12), new ComparableStack(ModItems.circuit_targeting_tier3, 1), },350); + //makeRecipe(new ComparableStack(ModItems.missile_inferno, 1), new AStack[] {new ComparableStack(ModItems.warhead_incendiary_large, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 14), new OreDictStack(STEEL.plate(), 20), new OreDictStack(AL.plate(), 12), new ComparableStack(ModItems.circuit_targeting_tier3, 1), },350); + //makeRecipe(new ComparableStack(ModItems.missile_rain, 1), new AStack[] {new ComparableStack(ModItems.warhead_cluster_large, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 14), new OreDictStack(STEEL.plate(), 20), new OreDictStack(AL.plate(), 12), new ComparableStack(ModItems.circuit_targeting_tier3, 1), },350); + //makeRecipe(new ComparableStack(ModItems.missile_drill, 1), new AStack[] {new ComparableStack(ModItems.warhead_buster_large, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 14), new OreDictStack(STEEL.plate(), 20), new OreDictStack(AL.plate(), 12), new ComparableStack(ModItems.circuit_targeting_tier3, 1), },350); + //makeRecipe(new ComparableStack(ModItems.missile_nuclear, 1), new AStack[] {new ComparableStack(ModItems.warhead_nuclear, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 20), new OreDictStack(STEEL.plate(), 24), new OreDictStack(AL.plate(), 16), new ComparableStack(ModItems.circuit_targeting_tier4, 1), },500); + //makeRecipe(new ComparableStack(ModItems.missile_nuclear_cluster, 1), new AStack[] {new ComparableStack(ModItems.warhead_mirv, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 20), new OreDictStack(STEEL.plate(), 24), new OreDictStack(AL.plate(), 16), new ComparableStack(ModItems.circuit_targeting_tier5, 1), },600); + //makeRecipe(new ComparableStack(ModItems.missile_volcano, 1), new AStack[] {new ComparableStack(ModItems.warhead_volcano, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 20), new OreDictStack(STEEL.plate(), 24), new OreDictStack(AL.plate(), 16), new ComparableStack(ModItems.circuit_targeting_tier5, 1), },600); + //makeRecipe(new ComparableStack(ModItems.missile_endo, 1), new AStack[] {new ComparableStack(ModItems.warhead_thermo_endo, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 14), new OreDictStack(STEEL.plate(), 20), new OreDictStack(AL.plate(), 12), new ComparableStack(ModItems.circuit_targeting_tier4, 1), },350); + //makeRecipe(new ComparableStack(ModItems.missile_exo, 1), new AStack[] {new ComparableStack(ModItems.warhead_thermo_exo, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 14), new OreDictStack(STEEL.plate(), 20), new OreDictStack(AL.plate(), 12), new ComparableStack(ModItems.circuit_targeting_tier4, 1), },350); makeRecipe(new ComparableStack(ModItems.gun_defabricator, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(ANY_PLASTIC.ingot(), 8), new OreDictStack(IRON.plate(), 5), new ComparableStack(ModItems.mechanism_special, 3), new ComparableStack(Items.diamond, 1), new ComparableStack(ModItems.plate_dalekanium, 3), },200); makeRecipe(new ComparableStack(ModItems.gun_osipr_ammo, 24), new AStack[] {new OreDictStack(STEEL.plate(), 2), new OreDictStack(REDSTONE.dust(), 1), new ComparableStack(Items.glowstone_dust, 1), },50); makeRecipe(new ComparableStack(ModItems.gun_osipr_ammo2, 1), new AStack[] {new OreDictStack(CMB.plate(), 4), new OreDictStack(REDSTONE.dust(), 7), new ComparableStack(ModItems.powder_power, 3), },200); diff --git a/src/main/java/com/hbm/render/tileentity/RenderRadarScreen.java b/src/main/java/com/hbm/render/tileentity/RenderRadarScreen.java index adc9ae010..92342b53b 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderRadarScreen.java +++ b/src/main/java/com/hbm/render/tileentity/RenderRadarScreen.java @@ -43,6 +43,7 @@ public class RenderRadarScreen extends TileEntitySpecialRenderer implements IIte Tessellator tess = Tessellator.instance; if(screen.linked) { + GL11.glDepthMask(false); tess.startDrawingQuads(); double offset = ((tileEntity.getWorldObj().getTotalWorldTime() % 56) + f) / 30D; @@ -77,10 +78,9 @@ public class RenderRadarScreen extends TileEntitySpecialRenderer implements IIte tess.addVertexWithUV(0.38, 1 - sZ - size, 0.5 - sX - size, 224D / 256D, entry.blipLevel * 8F / 256F); tess.addVertexWithUV(0.38, 1 - sZ - size, 0.5 - sX + size, 216D / 256D, entry.blipLevel * 8F / 256F); } - GL11.glDisable(GL11.GL_DEPTH_TEST); tess.draw(); - GL11.glEnable(GL11.GL_DEPTH_TEST); } + GL11.glDepthMask(true); } else { int offset = 118 + tileEntity.getWorldObj().rand.nextInt(81); tess.startDrawingQuads(); diff --git a/src/main/java/com/hbm/tileentity/DoorDecl.java b/src/main/java/com/hbm/tileentity/DoorDecl.java index 704e7b97a..4bada0b3a 100644 --- a/src/main/java/com/hbm/tileentity/DoorDecl.java +++ b/src/main/java/com/hbm/tileentity/DoorDecl.java @@ -577,9 +577,9 @@ public abstract class DoorDecl { @SideOnly(Side.CLIENT) public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { if(partName.startsWith("left")) { - set(trans, 0, 0, 1 * getNormTime(openTicks)); + set(trans, 0, 0, 0.99F * getNormTime(openTicks)); } else { - set(trans, 0, 0, -1 * getNormTime(openTicks)); + set(trans, 0, 0, -0.99F * getNormTime(openTicks)); } }; @@ -736,7 +736,7 @@ public abstract class DoorDecl { @Override public String getOpenSoundStart() { - return "hbm:door.door.lever"; + return "hbm:door.lever"; }; @Override @@ -746,7 +746,7 @@ public abstract class DoorDecl { @Override public String getCloseSoundEnd() { - return "hbm:door.door.lever"; + return "hbm:door.lever"; }; @Override diff --git a/src/main/java/com/hbm/util/ArmorUtil.java b/src/main/java/com/hbm/util/ArmorUtil.java index 6ece2e502..33272462b 100644 --- a/src/main/java/com/hbm/util/ArmorUtil.java +++ b/src/main/java/com/hbm/util/ArmorUtil.java @@ -62,6 +62,7 @@ public class ArmorUtil { ArmorRegistry.registerHazard(ModItems.schrabidium_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); ArmorRegistry.registerHazard(ModItems.euphemium_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); ArmorRegistry.registerHazard(ModItems.rpa_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); + ArmorRegistry.registerHazard(ModItems.envsuit_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); //Ob ihr wirklich richtig steht, seht ihr wenn das Licht angeht! registerIfExists(Compat.MOD_GT6, "gt.armor.hazmat.universal.head", HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 72eb5e087..f6aad2998 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -5541,7 +5541,7 @@ tile.zirnox_destroyed.name=Destroyed ZIRNOX tile.large_vehicle_door.name=Large Vehicle Door tile.water_door.name=Water Door tile.qe_containment.name=QE Containment Door -tile.qe_sliding.name=QE Sliding Door +tile.qe_sliding_door.name=QE Sliding Door tile.round_airlock_door.name=Round Airlock Door tile.secure_access_door.name=Secure Access Door tile.sliding_seal_door.name=Sliding Seal Door diff --git a/src/main/resources/assets/hbm/sounds.json b/src/main/resources/assets/hbm/sounds.json index fdea12a18..b77fef3b1 100644 --- a/src/main/resources/assets/hbm/sounds.json +++ b/src/main/resources/assets/hbm/sounds.json @@ -71,6 +71,8 @@ "door.garage_move": { "category": "block", "sounds": [{"name": "block/door/garage_move", "stream": false}] }, "door.garage_stop": { "category": "block", "sounds": [{"name": "block/door/garage_stop", "stream": false}] }, "door.lever": {"category": "block", "sounds": [{"name": "block/door/lever1", "stream": false}]}, + "door.wgh_start": {"category": "block", "sounds": [{"name": "block/door/wgh_start", "stream": false}]}, + "door.wgh_stop": {"category": "block", "sounds": [{"name": "block/door/wgh_stop", "stream": false}]}, "door.wgh_big_start": {"category": "block", "sounds": [{"name": "block/door/door_wgh_big_start", "stream": false}]}, "door.wgh_big_stop": {"category": "block", "sounds": [{"name": "block/door/door_wgh_big_stop", "stream": false}]}, "door.qe_sliding_shut": {"category": "block", "sounds": [{"name": "block/door/doorshut_1", "stream": false}]}, From d4f8de4a548488cbc9bf3f12b0bda1616c9fde60 Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Thu, 30 Nov 2023 18:45:13 -0600 Subject: [PATCH 423/432] Finishing touches. --- .../tileentity/machine/TileEntityChungus.java | 11 ++++++++--- .../machine/TileEntityMachineLargeTurbine.java | 14 +++++++------- .../machine/TileEntityMachineTurbine.java | 12 +++++++++--- .../machine/TileEntityMachineTurbineGas.java | 18 ++++++++++++++++-- .../machine/rbmk/TileEntityCraneConsole.java | 2 +- .../machine/rbmk/TileEntityRBMKRod.java | 14 +++++++++++++- .../storage/TileEntityMachineFluidTank.java | 2 +- 7 files changed, 55 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java index e1dcddcf8..d1a9abd64 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java @@ -283,13 +283,13 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcc @Override public String getComponentName() { - return "ntm_large_turbine"; + return "ntm_turbine"; } @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getFluid(Context context, Arguments args) { - return new Object[] {tanks[0].getFill(), tanks[1].getFill()}; + return new Object[] {tanks[0].getFill(), tanks[1].getFill(), tanks[1].getFill(), tanks[1].getMaxFill()}; } @Callback(direct = true) @@ -301,10 +301,15 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcc @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] setType(Context context, Arguments args) { - tanks[1].setTankType(CompatHandler.intToSteamType(args.checkInteger(0))); + tanks[0].setTankType(CompatHandler.intToSteamType(args.checkInteger(0))); return new Object[] {true}; } + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getInfo(Context context, Arguments args) { + return new Object[] {tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill(), CompatHandler.steamTypeToInt(tanks[0].getTankType())}; + } @Override public FluidTank[] getSendingTanks() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java index fc22fe394..acdc7ee38 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java @@ -304,19 +304,19 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme return CompatHandler.steamTypeToInt(tanks[1].getTankType()); } - @Callback(direct = true) - @Optional.Method(modid = "OpenComputers") - public Object[] getInfo(Context context, Arguments args) { - return new Object[] {tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill(), tanks[1].getTankType()}; - } - @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] setType(Context context, Arguments args) { - tanks[1].setTankType(CompatHandler.intToSteamType(args.checkInteger(0))); + tanks[0].setTankType(CompatHandler.intToSteamType(args.checkInteger(0))); return new Object[] {true}; } + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getInfo(Context context, Arguments args) { + return new Object[] {tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill(), CompatHandler.steamTypeToInt(tanks[0].getTankType())}; + } + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerMachineLargeTurbine(player.inventory, this); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java index a2857822a..1845c5e72 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java @@ -385,13 +385,13 @@ public class TileEntityMachineTurbine extends TileEntityLoadedBase implements IS @Override public String getComponentName() { - return "ntm_small_turbine"; + return "ntm_turbine"; } @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getFluid(Context context, Arguments args) { - return new Object[] {tanks[0].getFill(), tanks[1].getFill()}; + return new Object[] {tanks[0].getFill(), tanks[1].getFill(), tanks[1].getFill(), tanks[1].getMaxFill()}; } @Callback(direct = true) @@ -403,10 +403,16 @@ public class TileEntityMachineTurbine extends TileEntityLoadedBase implements IS @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] setType(Context context, Arguments args) { - tanks[1].setTankType(CompatHandler.intToSteamType(args.checkInteger(0))); + tanks[0].setTankType(CompatHandler.intToSteamType(args.checkInteger(0))); return new Object[] {true}; } + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getInfo(Context context, Arguments args) { + return new Object[] {tanks[0].getFill(), tanks[0].getMaxFill(), tanks[1].getFill(), tanks[1].getMaxFill(), CompatHandler.steamTypeToInt(tanks[0].getTankType())}; + } + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerMachineTurbine(player.inventory, this); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java index efb36937f..21bb03777 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java @@ -34,7 +34,6 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -602,7 +601,7 @@ public class TileEntityMachineTurbineGas extends TileEntityMachineBase implement @Callback(direct = true, limit = 4) @Optional.Method(modid = "OpenComputers") public Object[] setThrottle(Context context, Arguments args) { - powerSliderPos = MathHelper.clamp_int(args.checkInteger(0) / 100 * 60, 0 , 60); + throttle = args.checkInteger(0); return new Object[] {true}; } @@ -613,6 +612,21 @@ public class TileEntityMachineTurbineGas extends TileEntityMachineBase implement return new Object[] {true}; } + @Callback(direct = true, limit = 4) + @Optional.Method(modid = "OpenComputers") + public Object[] start(Context context, Arguments args) { + stopIfNotReady(); + startup(); + return new Object[] {true}; + } + + @Callback(direct = true, limit = 4) + @Optional.Method(modid = "OpenComputers") + public Object[] stop(Context context, Arguments args) { + shutdown(); + return new Object[] {true}; + } + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityCraneConsole.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityCraneConsole.java index d54042400..823259e3d 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityCraneConsole.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityCraneConsole.java @@ -399,7 +399,7 @@ public class TileEntityCraneConsole extends TileEntity implements INBTPacketRece @Callback(direct = true) @Optional.Method(modid = "OpenComputers") //if this doesnt work im going to die - public Object[] getBoundPos(Context context, Arguments args) { + public Object[] getCranePos(Context context, Arguments args) { ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); ForgeDirection left = dir.getRotation(ForgeDirection.DOWN); int x = (int)Math.floor(this.centerX - dir.offsetX * this.posFront - left.offsetX * this.posLeft + 0.5D); diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java index d22b5ae13..e1a0e3384 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java @@ -443,6 +443,15 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM return new Object[] {"N/A"}; } + @Callback(direct = true) + @Optional.Method(modid = "OpenComputers") + public Object[] getType(Context context, Arguments args) { + if(slots[0] != null && slots[0].getItem() instanceof ItemRBMKRod) { + return new Object[] {slots[0].getItem().getUnlocalizedName()}; + } + return new Object[] {"N/A"}; + } + @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getInfo(Context context, Arguments args) { @@ -450,18 +459,21 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM Object OC_poison_buf; Object OC_hull_buf; Object OC_core_buf; + String OC_type; if(slots[0] != null && slots[0].getItem() instanceof ItemRBMKRod) { OC_enrich_buf = ItemRBMKRod.getEnrichment(slots[0]); OC_poison_buf = ItemRBMKRod.getPoison(slots[0]); OC_hull_buf = ItemRBMKRod.getHullHeat(slots[0]); OC_core_buf = ItemRBMKRod.getCoreHeat(slots[0]); + OC_type = slots[0].getItem().getUnlocalizedName(); } else { OC_enrich_buf = "N/A"; OC_poison_buf = "N/A"; OC_hull_buf = "N/A"; OC_core_buf = "N/A"; + OC_type = "N/A"; } - return new Object[] {heat, OC_hull_buf, OC_core_buf, fluxSlow, fluxFast, OC_enrich_buf, OC_poison_buf, ((RBMKRod)this.getBlockType()).moderated, xCoord, yCoord, zCoord}; + return new Object[] {heat, OC_hull_buf, OC_core_buf, fluxSlow, fluxFast, OC_enrich_buf, OC_poison_buf, OC_type, ((RBMKRod)this.getBlockType()).moderated, xCoord, yCoord, zCoord}; } @Callback(direct = true) diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java index 7e6d91be2..3b4e8d261 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java @@ -470,7 +470,7 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements @Override public String getComponentName() { - return "ntm_tank"; + return "ntm_fluid_tank"; } @Callback(direct = true) From 7376e62112287d8f1a0b3293efa276135a77cf06 Mon Sep 17 00:00:00 2001 From: BallOfEnergy <66693744+BallOfEnergy1@users.noreply.github.com> Date: Thu, 30 Nov 2023 19:26:44 -0600 Subject: [PATCH 424/432] PWR Compatibility fix (i forgot a line) --- .../com/hbm/tileentity/machine/TileEntityPWRController.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java index 8fa21dd0f..09ca138b6 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java @@ -31,6 +31,7 @@ import cpw.mods.fml.relauncher.SideOnly; import li.cil.oc.api.machine.Arguments; import li.cil.oc.api.machine.Callback; import li.cil.oc.api.machine.Context; +import li.cil.oc.api.network.SimpleComponent; import net.minecraft.block.Block; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; @@ -42,7 +43,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityPWRController extends TileEntityMachineBase implements IGUIProvider, IControlReceiver, IFluidStandardTransceiver { +public class TileEntityPWRController extends TileEntityMachineBase implements IGUIProvider, IControlReceiver, SimpleComponent, IFluidStandardTransceiver { public FluidTank[] tanks; public int coreHeat; From f8e9cff64b1ab64a685a0612eba6a6e3027b5829 Mon Sep 17 00:00:00 2001 From: Bob Date: Sat, 2 Dec 2023 20:44:34 +0100 Subject: [PATCH 425/432] tweaks, exposure chamber recipes --- changelog | 7 +- .../container/ContainerMachineExcavator.java | 4 +- .../ContainerMachineExposureChamber.java | 86 ++++++++++++++++++ .../gui/GUIMachineExposureChamber.java | 47 ++++++++++ .../inventory/recipes/AssemblerRecipes.java | 16 ++-- .../recipes/ExposureChamberRecipes.java | 83 +++++++++++++++++ .../recipes/loader/SerializableRecipe.java | 1 + .../java/com/hbm/main/CraftingManager.java | 4 - .../tileentity/RenderExposureChamber.java | 21 +++-- .../TileEntityMachineExposureChamber.java | 74 ++++++++++++++- .../gui/processing/gui_exposure_chamber.png | Bin 3129 -> 3134 bytes .../models/doors/qe_containment_decal.png | Bin 314 -> 7096 bytes 12 files changed, 319 insertions(+), 24 deletions(-) create mode 100644 src/main/java/com/hbm/inventory/container/ContainerMachineExposureChamber.java create mode 100644 src/main/java/com/hbm/inventory/gui/GUIMachineExposureChamber.java create mode 100644 src/main/java/com/hbm/inventory/recipes/ExposureChamberRecipes.java diff --git a/changelog b/changelog index 596d87512..c9bd68389 100644 --- a/changelog +++ b/changelog @@ -7,6 +7,9 @@ * A much less jankier alternative to the vanilla boat. Rotations are silky smooth and done via the strafe keys instead of based on the player's orientation * Won't break from ramming into blocks * Faster than a regular boat, but will decelerate quicker when there's nobody sitting in it, preventing the boat from drifting off too far when empty +* Exposure chamber + * Now performs the particle transmutation recipes that were previously done in the crafting table + * Stylish as hell ## Changed * Reduced the blast resistance of the large doors from absurdly high to still very but not quite as high @@ -20,6 +23,7 @@ * Non-custom missiles have been slightly buffed * Explosions are now slightly larger and they use the new cross-detection entity damage code which still affects entities behind small hills that would otherwise be shielded * Explosions now have a 2x larger entity damage radius +* Updated the digiminer recipe for mekanism cocmpat ## Fixed * Fixed ancient bug where custom missiles launched using the launch table would not use the accuracy calculation and always be pin-point accurate @@ -28,4 +32,5 @@ * Fixed the ballistic gauntlet spawning a client-side ghost bullet that doesn't move or despawn * Fixed bug where different custom machine cores would merge in a stack when picked up, turning them into the same type * Fixed radar screen blips being visible through the back of the model -* Fixed desh crate's last half of slots preventing radiation entirely \ No newline at end of file +* Fixed desh crate's last half of slots preventing radiation entirely +* Fixed large mining drill shift-clicking \ No newline at end of file diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineExcavator.java b/src/main/java/com/hbm/inventory/container/ContainerMachineExcavator.java index a7caab502..c55fd5400 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineExcavator.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineExcavator.java @@ -54,8 +54,8 @@ public class ContainerMachineExcavator extends Container { ItemStack var5 = var4.getStack(); var3 = var5.copy(); - if(par2 <= 4) { - if(!this.mergeItemStack(var5, 5, this.inventorySlots.size(), true)) { + if(par2 <= 13) { + if(!this.mergeItemStack(var5, 14, this.inventorySlots.size(), true)) { return null; } } else { diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineExposureChamber.java b/src/main/java/com/hbm/inventory/container/ContainerMachineExposureChamber.java new file mode 100644 index 000000000..b9e839468 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineExposureChamber.java @@ -0,0 +1,86 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotCraftingOutput; +import com.hbm.inventory.SlotTakeOnly; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemMachineUpgrade; +import com.hbm.tileentity.machine.TileEntityMachineExposureChamber; + +import api.hbm.energy.IBatteryItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerMachineExposureChamber extends Container { + + private TileEntityMachineExposureChamber chamber; + + public ContainerMachineExposureChamber(InventoryPlayer invPlayer, TileEntityMachineExposureChamber tedf) { + this.chamber = tedf; + + this.addSlotToContainer(new Slot(tedf, 0, 8, 18)); + this.addSlotToContainer(new SlotTakeOnly(tedf, 2, 8, 54)); + this.addSlotToContainer(new Slot(tedf, 3, 80, 36)); + this.addSlotToContainer(new SlotCraftingOutput(invPlayer.player, tedf, 4, 116, 36)); + this.addSlotToContainer(new Slot(tedf, 5, 152, 54)); + this.addSlotToContainer(new Slot(tedf, 6, 44, 54)); + this.addSlotToContainer(new Slot(tedf, 7, 62, 54)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 104 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 162)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(par2); + + if(var4 != null && var4.getHasStack()) { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if(par2 <= 6) { + if(!this.mergeItemStack(var5, 7, this.inventorySlots.size(), true)) { + return null; + } + } else { + + if(var3.getItem() instanceof ItemMachineUpgrade) { + if(!this.mergeItemStack(var5, 5, 7, false)) { + return null; + } + } else if(var3.getItem() instanceof IBatteryItem || var3.getItem() == ModItems.battery_creative) { + if(!this.mergeItemStack(var5, 4, 5, false)) { + return null; + } + } else { + if(!this.mergeItemStack(var5, 0, 2, false)) { + return null; + } + } + } + + if(var5.stackSize == 0) { + var4.putStack((ItemStack) null); + } else { + var4.onSlotChanged(); + } + } + + return var3; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return chamber.isUseableByPlayer(player); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineExposureChamber.java b/src/main/java/com/hbm/inventory/gui/GUIMachineExposureChamber.java new file mode 100644 index 000000000..351a3642d --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineExposureChamber.java @@ -0,0 +1,47 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerMachineExposureChamber; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.machine.TileEntityMachineExposureChamber; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUIMachineExposureChamber extends GuiInfoContainer { + + public static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_exposure_chamber.png"); + private TileEntityMachineExposureChamber chamber; + + public GUIMachineExposureChamber(InventoryPlayer invPlayer, TileEntityMachineExposureChamber chamber) { + super(new ContainerMachineExposureChamber(invPlayer, chamber)); + this.chamber = chamber; + + this.xSize = 176; + this.ySize = 186; + } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + + this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 152, guiTop + 18, 16, 52, chamber.power, chamber.maxPower); + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.chamber.hasCustomInventoryName() ? this.chamber.getInventoryName() : I18n.format(this.chamber.getInventoryName()); + this.fontRendererObj.drawString(name, 70 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + } +} diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 82e17f216..fb559fa5d 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -1230,17 +1230,17 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(mb, 1, 4), new AStack[] { new OreDictStack(DURA.ingot(), 16), - new OreDictStack(DESH.ingot(), 8), - new OreDictStack(STEEL.plate(), 48), - new OreDictStack(CU.plate(), 24), + new OreDictStack(DESH.ingot(), 16), + new OreDictStack(STEEL.plateWelded(), 32), + new OreDictStack(CU.plateWelded(), 24), new ComparableStack(ModItems.pipes_steel, 8), - new ComparableStack(ModItems.circuit_gold, 8), - new ComparableStack(ModItems.wire_advanced_alloy, 24), + new OreDictStack(KEY_CIRCUIT_BISMUTH, 4), + new ComparableStack(ModItems.wire_dense, 32, Mats.MAT_ALLOY.id), new ComparableStack(ModBlocks.fusion_conductor, 12), - new ComparableStack(ModBlocks.machine_lithium_battery, 3), - new ComparableStack(ModItems.crystal_redstone, 12), + new ComparableStack(ModBlocks.capacitor_tantalium, 53), + new ComparableStack(ModItems.crystal_redstone, 16), new ComparableStack(ModItems.crystal_diamond, 8), - new ComparableStack(ModItems.motor_desh, 16) + new ComparableStack(ModItems.motor_bismuth, 4) }, 15 * 60 * 20); } } diff --git a/src/main/java/com/hbm/inventory/recipes/ExposureChamberRecipes.java b/src/main/java/com/hbm/inventory/recipes/ExposureChamberRecipes.java new file mode 100644 index 000000000..53e69569f --- /dev/null +++ b/src/main/java/com/hbm/inventory/recipes/ExposureChamberRecipes.java @@ -0,0 +1,83 @@ +package com.hbm.inventory.recipes; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; +import static com.hbm.inventory.OreDictManager.*; +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.inventory.RecipesCommon.OreDictStack; +import com.hbm.inventory.recipes.loader.SerializableRecipe; +import com.hbm.items.ModItems; + +import net.minecraft.item.ItemStack; + +public class ExposureChamberRecipes extends SerializableRecipe { + + public static List recipes = new ArrayList(); + + @Override + public void registerDefaults() { + recipes.add(new ExposureChamberRecipe(new ComparableStack(ModItems.particle_higgs), new OreDictStack(U.ingot()), new ItemStack(ModItems.ingot_schraranium))); + recipes.add(new ExposureChamberRecipe(new ComparableStack(ModItems.particle_higgs), new OreDictStack(U238.ingot()), new ItemStack(ModItems.ingot_schrabidium))); + recipes.add(new ExposureChamberRecipe(new ComparableStack(ModItems.particle_dark), new OreDictStack(PU.ingot()), new ItemStack(ModItems.ingot_euphemium))); + recipes.add(new ExposureChamberRecipe(new ComparableStack(ModItems.particle_sparkticle), new OreDictStack(SBD.ingot()), new ItemStack(ModItems.ingot_dineutronium))); + } + + @Override + public String getFileName() { + return "hbmExposureChamber.json"; + } + + @Override + public Object getRecipeObject() { + return recipes; + } + + @Override + public void deleteRecipes() { + recipes.clear(); + } + + @Override + public void readRecipe(JsonElement recipe) { + + JsonObject obj = (JsonObject) recipe; + + AStack particle = this.readAStack(obj.get("particle").getAsJsonArray()); + AStack ingredient = this.readAStack(obj.get("ingredient").getAsJsonArray()); + ItemStack output = this.readItemStack(obj.get("output").getAsJsonArray()); + + ExposureChamberRecipe rec = new ExposureChamberRecipe(particle, ingredient, output); + recipes.add(rec); + } + + @Override + public void writeRecipe(Object o, JsonWriter writer) throws IOException { + ExposureChamberRecipe recipe = (ExposureChamberRecipe) o; + + writer.name("particle"); + this.writeAStack(recipe.particle, writer); + writer.name("ingredient"); + this.writeAStack(recipe.ingredient, writer); + writer.name("output"); + this.writeItemStack(recipe.output, writer); + } + + public static class ExposureChamberRecipe { + + public AStack particle; + public AStack ingredient; + public ItemStack output; + + public ExposureChamberRecipe(AStack particle, AStack ingredient, ItemStack output) { + this.particle = particle; + this.ingredient = ingredient; + this.output = output; + } + } +} diff --git a/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java b/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java index 8149dfaba..f54138b0f 100644 --- a/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java +++ b/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java @@ -65,6 +65,7 @@ public abstract class SerializableRecipe { recipeHandlers.add(new ElectrolyserFluidRecipes()); recipeHandlers.add(new ElectrolyserMetalRecipes()); recipeHandlers.add(new ArcWelderRecipes()); + recipeHandlers.add(new ExposureChamberRecipes()); recipeHandlers.add(new MatDistribution()); recipeHandlers.add(new CustomMachineRecipes()); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 5e0cc59e9..386706b30 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -862,10 +862,6 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.hadron_cooler, 1, 0), new Object[] { "PCP", "CHC", "PCP", 'P', ANY_RESISTANTALLOY.plateCast(), 'C', ModItems.circuit_gold, 'H', Fluids.HELIUM4.getDict(16_000) }); addRecipeAuto(new ItemStack(ModBlocks.hadron_cooler, 1, 1), new Object[] { "PCP", "CHC", "PCP", 'P', GOLD.plateCast(), 'C', ModItems.motor_bismuth, 'H', new ItemStack(ModBlocks.hadron_cooler, 1, 0) }); - addRecipeAuto(new ItemStack(ModItems.ingot_schrabidium, 8), new Object[] { "UUU", "UPU", "UUU", 'U', U.ingot(), 'P', new ItemStack(ModItems.particle_higgs).setStackDisplayName("Higgs Boson (Temporary Recipe)") }); - addRecipeAuto(new ItemStack(ModItems.ingot_euphemium, 8), new Object[] { "UUU", "UPU", "UUU", 'U', PU.ingot(), 'P', new ItemStack(ModItems.particle_dark).setStackDisplayName("Dark Matter (Temporary Recipe)") }); - addRecipeAuto(new ItemStack(ModItems.ingot_dineutronium, 8), new Object[] { "UUU", "UPU", "UUU", 'U', SBD.ingot(), 'P', new ItemStack(ModItems.particle_sparkticle).setStackDisplayName("Sparkticle (Temporary Recipe)") }); - addRecipeAuto(new ItemStack(ModBlocks.fireworks, 1), new Object[] { "PPP", "PPP", "WIW", 'P', Items.paper, 'W', KEY_PLANKS, 'I', IRON.ingot() }); addRecipeAuto(new ItemStack(ModItems.safety_fuse, 8), new Object[] { "SSS", "SGS", "SSS", 'S', Items.string, 'G', Items.gunpowder }); diff --git a/src/main/java/com/hbm/render/tileentity/RenderExposureChamber.java b/src/main/java/com/hbm/render/tileentity/RenderExposureChamber.java index 539cb72a1..7fc7528da 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderExposureChamber.java +++ b/src/main/java/com/hbm/render/tileentity/RenderExposureChamber.java @@ -4,6 +4,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.blocks.BlockDummyable; import com.hbm.main.ResourceManager; +import com.hbm.tileentity.machine.TileEntityMachineExposureChamber; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; @@ -11,7 +12,7 @@ import net.minecraft.tileentity.TileEntity; public class RenderExposureChamber extends TileEntitySpecialRenderer { @Override - public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float interp) { GL11.glPushMatrix(); GL11.glTranslated(x + 0.5D, y, z + 0.5D); @@ -25,18 +26,24 @@ public class RenderExposureChamber extends TileEntitySpecialRenderer { case 2: GL11.glRotatef(90, 0F, 1F, 0F); break; } + TileEntityMachineExposureChamber chamber = (TileEntityMachineExposureChamber) tileEntity; + GL11.glShadeModel(GL11.GL_SMOOTH); bindTexture(ResourceManager.exposure_chamber_tex); ResourceManager.exposure_chamber.renderPart("Chamber"); - GL11.glPushMatrix(); - GL11.glRotated((tileEntity.getWorldObj().getTotalWorldTime() % 360D + f) * 5, 0, 1, 0); - GL11.glTranslated(0, Math.sin((tileEntity.getWorldObj().getTotalWorldTime() % (Math.PI * 16D) + f) * 0.125) * 0.0625, 0); - ResourceManager.exposure_chamber.renderPart("Core"); - GL11.glPopMatrix(); + double rotation = chamber.prevRotation + (chamber.rotation - chamber.prevRotation) * interp; + + if(chamber.isOn) { + GL11.glPushMatrix(); + GL11.glRotated(rotation / 2D, 0, 1, 0); + GL11.glTranslated(0, Math.sin((tileEntity.getWorldObj().getTotalWorldTime() % (Math.PI * 16D) + interp) * 0.125) * 0.0625, 0); + ResourceManager.exposure_chamber.renderPart("Core"); + GL11.glPopMatrix(); + } GL11.glPushMatrix(); - GL11.glRotated((tileEntity.getWorldObj().getTotalWorldTime() % 360D + f) * 10, 0, 1, 0); + GL11.glRotated(rotation, 0, 1, 0); ResourceManager.exposure_chamber.renderPart("Magnets"); GL11.glPopMatrix(); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExposureChamber.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExposureChamber.java index dbe3dc5fa..d45fbe8cd 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExposureChamber.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExposureChamber.java @@ -1,15 +1,42 @@ package com.hbm.tileentity.machine; +import com.hbm.inventory.container.ContainerMachineExposureChamber; +import com.hbm.inventory.gui.GUIMachineExposureChamber; +import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; -public class TileEntityMachineExposureChamber extends TileEntityMachineBase { +public class TileEntityMachineExposureChamber extends TileEntityMachineBase implements IGUIProvider { + + public long power; + public static final long maxPower = 1_000_000; + + public int progress; + public static final int processTimeBase = 200; + public int processTime = processTimeBase; + public boolean isOn = false; + public float rotation; + public float prevRotation; public TileEntityMachineExposureChamber() { - super(7); + /* + * 0: Particle + * 1: Particle internal + * 2: Particle container + * 3: Ingredient + * 4: Output + * 5: Battery + * 6-7: Upgrades + */ + super(8); } @Override @@ -20,6 +47,38 @@ public class TileEntityMachineExposureChamber extends TileEntityMachineBase { @Override public void updateEntity() { + if(!worldObj.isRemote) { + + this.isOn = false; + this.networkPackNT(50); + } else { + + this.prevRotation = this.rotation; + + if(this.isOn) { + + this.rotation += 10D; + + if(this.rotation >= 720D) { + this.rotation -= 720D; + this.prevRotation -= 720D; + } + } + } + } + + @Override + public void serialize(ByteBuf buf) { + buf.writeBoolean(this.isOn); + buf.writeInt(this.progress); + buf.writeInt(this.processTime); + } + + @Override + public void deserialize(ByteBuf buf) { + this.isOn = buf.readBoolean(); + this.progress = buf.readInt(); + this.processTime = buf.readInt(); } AxisAlignedBB bb = null; @@ -46,4 +105,15 @@ public class TileEntityMachineExposureChamber extends TileEntityMachineBase { public double getMaxRenderDistanceSquared() { return 65536.0D; } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerMachineExposureChamber(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIMachineExposureChamber(player.inventory, this); + } } diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_exposure_chamber.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_exposure_chamber.png index f9e65f885b185b69ccee70f84c46e4b082cb4f5d..24701a27f3e6e1f1ae3ce0f18b5e29ede880aab9 100644 GIT binary patch delta 1530 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 D492{= delta 301 zcmdmCzKbcYGr-TCmrII^fq{Y7)59eQNE?7K2Q!dNxWl;>NHG=%xjQkeJ16rJ$YDu$ z^mSxl*x1kgCy^D%XAAHNas7V-$YS`RrZyW$F_i@Q1^;Jwy4}EQqM~>`!+K8_#}E(i zw|xis4lD2+eel1&inBte(f#TwTi>s&1&>xOjeEj-?nAp{q@BU+KRRsT5k6HvLs%-? zFJ~Uk+@m4L(t3l1CsaUm`N1;|9Ky_Qd~Pe#nOYhR1QZhGct}=!28b50m`}BX0H*13Y>iXZ(jfa From 1157e691d733ccec8daadc8ff5b15aa20fc883ac Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 3 Dec 2023 20:23:51 +0100 Subject: [PATCH 426/432] more exposure chamber crap --- changelog | 3 +- .../ContainerMachineExposureChamber.java | 2 +- .../gui/GUIMachineExposureChamber.java | 17 +++- .../recipes/ExposureChamberRecipes.java | 5 + .../java/com/hbm/tileentity/DoorDecl.java | 5 +- .../TileEntityMachineExposureChamber.java | 95 +++++++++++++++++++ .../machine/TileEntityMachinePumpBase.java | 38 +++++++- .../TileEntityMachinePumpElectric.java | 4 +- .../machine/TileEntityMachinePumpSteam.java | 4 +- 9 files changed, 159 insertions(+), 14 deletions(-) diff --git a/changelog b/changelog index c9bd68389..1abab46d5 100644 --- a/changelog +++ b/changelog @@ -23,7 +23,8 @@ * Non-custom missiles have been slightly buffed * Explosions are now slightly larger and they use the new cross-detection entity damage code which still affects entities behind small hills that would otherwise be shielded * Explosions now have a 2x larger entity damage radius -* Updated the digiminer recipe for mekanism cocmpat +* Updated the digiminer recipe for mekanism compat +* Added config options to the ground water pumps ## Fixed * Fixed ancient bug where custom missiles launched using the launch table would not use the accuracy calculation and always be pin-point accurate diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineExposureChamber.java b/src/main/java/com/hbm/inventory/container/ContainerMachineExposureChamber.java index b9e839468..c4dd07df6 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineExposureChamber.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineExposureChamber.java @@ -63,7 +63,7 @@ public class ContainerMachineExposureChamber extends Container { return null; } } else { - if(!this.mergeItemStack(var5, 0, 2, false)) { + if(!this.mergeItemStack(var5, 0, 3, false)) { return null; } } diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineExposureChamber.java b/src/main/java/com/hbm/inventory/gui/GUIMachineExposureChamber.java index 351a3642d..3f5760cce 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineExposureChamber.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineExposureChamber.java @@ -28,7 +28,9 @@ public class GUIMachineExposureChamber extends GuiInfoContainer { public void drawScreen(int mouseX, int mouseY, float f) { super.drawScreen(mouseX, mouseY, f); - this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 152, guiTop + 18, 16, 52, chamber.power, chamber.maxPower); + this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 152, guiTop + 18, 16, 34, chamber.power, chamber.maxPower); + + drawCustomInfoStat(mouseX, mouseY, guiLeft + 26, guiTop + 36, 9, 16, mouseX, mouseY, chamber.savedParticles + " / " + chamber.maxParticles); } @Override @@ -43,5 +45,18 @@ public class GUIMachineExposureChamber extends GuiInfoContainer { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + int p = chamber.progress * 42 / (chamber.processTime + 1); + drawTexturedModalRect(guiLeft + 36, guiTop + 39, 192, 0, p, 10); + + int c = chamber.savedParticles * 16 / chamber.maxParticles; + drawTexturedModalRect(guiLeft + 26, guiTop + 52 - c, 192, 26 - c, 9, c); + + int e = (int) (chamber.power * 34 / chamber.maxPower); + drawTexturedModalRect(guiLeft + 152, guiTop + 52 - e, 176, 34 - e, 16, e); + + if(chamber.consumption <= chamber.power) { + drawTexturedModalRect(guiLeft + 156, guiTop + 4, 176, 34, 9, 12); + } } } diff --git a/src/main/java/com/hbm/inventory/recipes/ExposureChamberRecipes.java b/src/main/java/com/hbm/inventory/recipes/ExposureChamberRecipes.java index 53e69569f..d7e3ca925 100644 --- a/src/main/java/com/hbm/inventory/recipes/ExposureChamberRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ExposureChamberRecipes.java @@ -27,6 +27,11 @@ public class ExposureChamberRecipes extends SerializableRecipe { recipes.add(new ExposureChamberRecipe(new ComparableStack(ModItems.particle_dark), new OreDictStack(PU.ingot()), new ItemStack(ModItems.ingot_euphemium))); recipes.add(new ExposureChamberRecipe(new ComparableStack(ModItems.particle_sparkticle), new OreDictStack(SBD.ingot()), new ItemStack(ModItems.ingot_dineutronium))); } + + public static ExposureChamberRecipe getRecipe(ItemStack particle, ItemStack input) { + for(ExposureChamberRecipe recipe : recipes) if(recipe.particle.matchesRecipe(particle, true) && recipe.ingredient.matchesRecipe(input, true)) return recipe; + return null; + } @Override public String getFileName() { diff --git a/src/main/java/com/hbm/tileentity/DoorDecl.java b/src/main/java/com/hbm/tileentity/DoorDecl.java index 4bada0b3a..5f81ef8f5 100644 --- a/src/main/java/com/hbm/tileentity/DoorDecl.java +++ b/src/main/java/com/hbm/tileentity/DoorDecl.java @@ -328,9 +328,8 @@ public abstract class DoorDecl { @Override public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { if(open) { - if(y == 0) - return AxisAlignedBB.getBoundingBox(0, 0, 1 - 0.25, 1, 0.125, 1); - return super.getBlockBound(x, y, z, open); + if(y == 0) return AxisAlignedBB.getBoundingBox(0, 0, 1 - 0.25, 1, 0, 1); + return AxisAlignedBB.getBoundingBox(0, 0.9375, 1 - 0.25, 1, 1, 1); } else { return AxisAlignedBB.getBoundingBox(0, 0, 1 - 0.25, 1, 1, 1); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExposureChamber.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExposureChamber.java index d45fbe8cd..7f11c77ed 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExposureChamber.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExposureChamber.java @@ -1,7 +1,12 @@ package com.hbm.tileentity.machine; +import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerMachineExposureChamber; import com.hbm.inventory.gui.GUIMachineExposureChamber; +import com.hbm.inventory.recipes.ExposureChamberRecipes; +import com.hbm.inventory.recipes.ExposureChamberRecipes.ExposureChamberRecipe; +import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; +import com.hbm.lib.Library; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; @@ -11,6 +16,7 @@ import io.netty.buffer.ByteBuf; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; +import net.minecraft.item.ItemStack; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; @@ -22,6 +28,10 @@ public class TileEntityMachineExposureChamber extends TileEntityMachineBase impl public int progress; public static final int processTimeBase = 200; public int processTime = processTimeBase; + public static final int consumptionBase = 10_000; + public int consumption = consumptionBase; + public int savedParticles; + public static final int maxParticles = 8; public boolean isOn = false; public float rotation; public float prevRotation; @@ -50,6 +60,81 @@ public class TileEntityMachineExposureChamber extends TileEntityMachineBase impl if(!worldObj.isRemote) { this.isOn = false; + this.power = Library.chargeTEFromItems(slots, 5, power, maxPower); + + UpgradeManager.eval(slots, 6, 7); + int speedLevel = Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 3); + int powerLevel = Math.min(UpgradeManager.getLevel(UpgradeType.POWER), 3); + int overdriveLevel = Math.min(UpgradeManager.getLevel(UpgradeType.OVERDRIVE), 3); + + this.consumption = this.consumptionBase; + + this.processTime = this.processTimeBase - this.processTimeBase / 4 * speedLevel; + this.consumption *= (speedLevel / 2 + 1); + this.processTime *= (powerLevel / 2 + 1); + this.consumption /= (powerLevel + 1); + this.processTime /= (overdriveLevel + 1); + this.consumption *= (overdriveLevel * 2 + 1); + + if(slots[1] == null && slots[0] != null && slots[3] != null && this.savedParticles <= 0) { + ExposureChamberRecipe recipe = this.getRecipe(slots[0], slots[3]); + + if(recipe != null) { + + ItemStack container = slots[0].getItem().getContainerItem(slots[0]); + + boolean canStore = false; + + if(container == null) { + canStore = true; + } else if(slots[2] == null) { + slots[2] = container.copy(); + canStore = true; + } else if(slots[2].getItem() == container.getItem() && slots[2].getItemDamage() == container.getItemDamage() && slots[2].stackSize < slots[2].getMaxStackSize()) { + slots[2].stackSize++; + canStore = true; + } + + if(canStore) { + slots[1] = slots[0].copy(); + slots[1].stackSize = 0; + this.decrStackSize(0, 1); + this.savedParticles = this.maxParticles; + } + } + } + + if(slots[1] != null && this.savedParticles > 0 && this.power >= this.consumption) { + ExposureChamberRecipe recipe = this.getRecipe(slots[1], slots[3]); + + if(recipe != null && (slots[4] == null || (slots[4].getItem() == recipe.output.getItem() && slots[4].getItemDamage() == recipe.output.getItemDamage() && slots[4].stackSize + recipe.output.stackSize <= slots[4].getMaxStackSize()))) { + this.progress++; + this.power -= this.consumption; + this.isOn = true; + + if(this.progress >= this.processTime) { + this.progress = 0; + this.savedParticles--; + this.decrStackSize(3, 1); + + if(slots[4] == null) { + slots[4] = recipe.output.copy(); + } else { + slots[4].stackSize += recipe.output.stackSize; + } + } + + } else { + this.progress = 0; + } + } else { + this.progress = 0; + } + + if(this.savedParticles <= 0) { + slots[1] = null; + } + this.networkPackNT(50); } else { @@ -66,12 +151,19 @@ public class TileEntityMachineExposureChamber extends TileEntityMachineBase impl } } } + + public ExposureChamberRecipe getRecipe(ItemStack particle, ItemStack ingredient) { + return ExposureChamberRecipes.getRecipe(particle, ingredient); + } @Override public void serialize(ByteBuf buf) { buf.writeBoolean(this.isOn); buf.writeInt(this.progress); buf.writeInt(this.processTime); + buf.writeInt(this.consumption); + buf.writeLong(this.power); + buf.writeByte((byte) this.savedParticles); } @Override @@ -79,6 +171,9 @@ public class TileEntityMachineExposureChamber extends TileEntityMachineBase impl this.isOn = buf.readBoolean(); this.progress = buf.readInt(); this.processTime = buf.readInt(); + this.consumption = buf.readInt(); + this.power = buf.readLong(); + this.savedParticles = buf.readByte(); } AxisAlignedBB bb = null; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpBase.java index 2b91757d8..653064658 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpBase.java @@ -1,11 +1,15 @@ package com.hbm.tileentity.machine; +import java.io.IOException; import java.util.HashSet; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; import com.hbm.blocks.ModBlocks; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; +import com.hbm.tileentity.IConfigurableMachine; import com.hbm.tileentity.INBTPacketReceiver; import com.hbm.tileentity.TileEntityLoadedBase; import com.hbm.util.fauxpointtwelve.DirPos; @@ -18,8 +22,8 @@ import net.minecraft.init.Blocks; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; -public abstract class TileEntityMachinePumpBase extends TileEntityLoadedBase implements IFluidStandardTransceiver, INBTPacketReceiver { - +public abstract class TileEntityMachinePumpBase extends TileEntityLoadedBase implements IFluidStandardTransceiver, INBTPacketReceiver, IConfigurableMachine { + public static final HashSet validBlocks = new HashSet(); static { @@ -41,6 +45,32 @@ public abstract class TileEntityMachinePumpBase extends TileEntityLoadedBase imp public float lastRotor; public boolean onGround = false; public int groundCheckDelay = 0; + + public static int groundHeight = 70; + public static int groundDepth = 4; + public static int steamSpeed = 1_000; + public static int electricSpeed = 10_000; + + @Override + public String getConfigName() { + return "waterpump"; + } + + @Override + public void readIfPresent(JsonObject obj) { + groundHeight = IConfigurableMachine.grab(obj, "I:groundHeight", groundHeight); + groundDepth = IConfigurableMachine.grab(obj, "I:groundDepth", groundDepth); + steamSpeed = IConfigurableMachine.grab(obj, "I:steamSpeed", steamSpeed); + electricSpeed = IConfigurableMachine.grab(obj, "I:electricSpeed", electricSpeed); + } + + @Override + public void writeConfig(JsonWriter writer) throws IOException { + writer.name("I:groundHeight").value(groundHeight); + writer.name("I:groundDepth").value(groundDepth); + writer.name("I:steamSpeed").value(steamSpeed); + writer.name("I:electricSpeed").value(electricSpeed); + } public void updateEntity() { @@ -57,7 +87,7 @@ public abstract class TileEntityMachinePumpBase extends TileEntityLoadedBase imp } this.isOn = false; - if(this.canOperate() && yCoord <= 70 && onGround) { + if(this.canOperate() && yCoord <= groundHeight && onGround) { this.isOn = true; this.operate(); } @@ -88,7 +118,7 @@ public abstract class TileEntityMachinePumpBase extends TileEntityLoadedBase imp int invalidBlocks = 0; for(int x = -1; x <= 1; x++) { - for(int y = -1; y >= -4; y--) { + for(int y = -1; y >= -groundDepth; y--) { for(int z = -1; z <= 1; z++) { Block b = worldObj.getBlock(xCoord + x, yCoord + y, zCoord + z); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpElectric.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpElectric.java index 2551c42a9..25b22372d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpElectric.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpElectric.java @@ -14,7 +14,7 @@ public class TileEntityMachinePumpElectric extends TileEntityMachinePumpBase imp public TileEntityMachinePumpElectric() { super(); - water = new FluidTank(Fluids.WATER, 1_000_000); + water = new FluidTank(Fluids.WATER, electricSpeed * 100); } public void updateEntity() { @@ -49,7 +49,7 @@ public class TileEntityMachinePumpElectric extends TileEntityMachinePumpBase imp @Override protected void operate() { this.power -= 1_000; - water.setFill(Math.min(water.getFill() + 10_000, water.getMaxFill())); + water.setFill(Math.min(water.getFill() + electricSpeed, water.getMaxFill())); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpSteam.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpSteam.java index 6644f3e83..d935cfbf4 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpSteam.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePumpSteam.java @@ -13,7 +13,7 @@ public class TileEntityMachinePumpSteam extends TileEntityMachinePumpBase { public TileEntityMachinePumpSteam() { super(); - water = new FluidTank(Fluids.WATER, 100_000); + water = new FluidTank(Fluids.WATER, steamSpeed * 100); steam = new FluidTank(Fluids.STEAM, 1_000); lps = new FluidTank(Fluids.SPENTSTEAM, 10); } @@ -71,6 +71,6 @@ public class TileEntityMachinePumpSteam extends TileEntityMachinePumpBase { protected void operate() { steam.setFill(steam.getFill() - 100); lps.setFill(lps.getFill() + 1); - water.setFill(Math.min(water.getFill() + 1000, water.getMaxFill())); + water.setFill(Math.min(water.getFill() + steamSpeed, water.getMaxFill())); } } From 976e0dba37eaa251a4dd8078cbce0738d605f7ff Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 5 Dec 2023 16:39:03 +0100 Subject: [PATCH 427/432] decoy missile, recipe stuff --- changelog | 4 + .../java/com/hbm/crafting/WeaponRecipes.java | 2 +- .../java/com/hbm/entity/EntityMappings.java | 1 + .../entity/grenade/EntityGrenadeIFNull.java | 75 +++++++++--------- .../entity/missile/EntityMissileTier1.java | 9 +++ .../inventory/recipes/ArcWelderRecipes.java | 14 ++++ .../inventory/recipes/AssemblerRecipes.java | 24 ------ src/main/java/com/hbm/items/ModItems.java | 3 + src/main/java/com/hbm/main/ClientProxy.java | 1 + .../java/com/hbm/main/ResourceManager.java | 1 + .../entity/rocket/RenderMissileGeneric.java | 21 ++--- .../tileentity/RenderLaunchPadTier1.java | 7 ++ .../tileentity/bomb/TileEntityLaunchPad.java | 1 + src/main/resources/assets/hbm/lang/de_DE.lang | 1 + src/main/resources/assets/hbm/lang/en_US.lang | 1 + .../hbm/textures/items/fuel_tank_large.png | Bin 269 -> 278 bytes .../textures/items/fuel_tank_large_alt.png | Bin 203 -> 0 bytes .../hbm/textures/items/fuel_tank_medium.png | Bin 362 -> 384 bytes .../textures/items/fuel_tank_medium_alt.png | Bin 278 -> 0 bytes .../hbm/textures/items/fuel_tank_small.png | Bin 292 -> 306 bytes .../textures/items/fuel_tank_small_alt.png | Bin 291 -> 0 bytes .../hbm/textures/items/fuelcell_arsenic.png | Bin 293 -> 0 bytes .../hbm/textures/items/fuelcell_base.png | Bin 258 -> 0 bytes .../hbm/textures/items/fuelcell_euphemium.png | Bin 300 -> 0 bytes .../hbm/textures/items/fuelcell_neptunium.png | Bin 287 -> 0 bytes .../hbm/textures/items/fuelcell_plutonium.png | Bin 280 -> 0 bytes .../hbm/textures/items/fuelcell_selenium.png | Bin 294 -> 0 bytes .../hbm/textures/items/fuelcell_u235.png | Bin 280 -> 0 bytes .../hbm/textures/items/fuelcell_u238m2.png | Bin 293 -> 0 bytes .../hbm/textures/items/missile_decoy.png | Bin 0 -> 364 bytes .../hbm/textures/items/thruster_large.png | Bin 461 -> 465 bytes .../hbm/textures/items/thruster_large_alt.png | Bin 288 -> 0 bytes .../hbm/textures/items/thruster_medium.png | Bin 399 -> 430 bytes .../textures/items/thruster_medium_alt.png | Bin 272 -> 0 bytes .../hbm/textures/items/thruster_small.png | Bin 326 -> 469 bytes .../hbm/textures/items/thruster_small_alt.png | Bin 263 -> 0 bytes .../hbm/textures/models/missile_v2_decoy.png | Bin 0 -> 915 bytes 37 files changed, 93 insertions(+), 72 deletions(-) delete mode 100644 src/main/resources/assets/hbm/textures/items/fuel_tank_large_alt.png delete mode 100644 src/main/resources/assets/hbm/textures/items/fuel_tank_medium_alt.png delete mode 100644 src/main/resources/assets/hbm/textures/items/fuel_tank_small_alt.png delete mode 100644 src/main/resources/assets/hbm/textures/items/fuelcell_arsenic.png delete mode 100644 src/main/resources/assets/hbm/textures/items/fuelcell_base.png delete mode 100644 src/main/resources/assets/hbm/textures/items/fuelcell_euphemium.png delete mode 100644 src/main/resources/assets/hbm/textures/items/fuelcell_neptunium.png delete mode 100644 src/main/resources/assets/hbm/textures/items/fuelcell_plutonium.png delete mode 100644 src/main/resources/assets/hbm/textures/items/fuelcell_selenium.png delete mode 100644 src/main/resources/assets/hbm/textures/items/fuelcell_u235.png delete mode 100644 src/main/resources/assets/hbm/textures/items/fuelcell_u238m2.png create mode 100644 src/main/resources/assets/hbm/textures/items/missile_decoy.png delete mode 100644 src/main/resources/assets/hbm/textures/items/thruster_large_alt.png delete mode 100644 src/main/resources/assets/hbm/textures/items/thruster_medium_alt.png delete mode 100644 src/main/resources/assets/hbm/textures/items/thruster_small_alt.png create mode 100644 src/main/resources/assets/hbm/textures/models/missile_v2_decoy.png diff --git a/changelog b/changelog index 1abab46d5..ee9dd2d76 100644 --- a/changelog +++ b/changelog @@ -10,6 +10,8 @@ * Exposure chamber * Now performs the particle transmutation recipes that were previously done in the crafting table * Stylish as hell +* Decoy missile + * A cheap tier 1 missile that shows up on radar screens as tier 4 (eg. nuclear) missiles ## Changed * Reduced the blast resistance of the large doors from absurdly high to still very but not quite as high @@ -25,6 +27,8 @@ * Explosions now have a 2x larger entity damage radius * Updated the digiminer recipe for mekanism compat * Added config options to the ground water pumps +* Missile parts such as non-custom thrusters and fuselages are now made in the arc welder, recipe ingredients have been adjusted as well +* Null grenades now have a slightly larger radius, should no longer wipe playerdata and require UNDEFINED to make ## Fixed * Fixed ancient bug where custom missiles launched using the launch table would not use the accuracy calculation and always be pin-point accurate diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index aa58d5393..0ed6e8a9c 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -394,7 +394,7 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_if_mystery, 1), new Object[] { "A", "G", "A", 'G', ModItems.grenade_if_generic, 'A', ModItems.powder_magic }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_if_spark, 1), new Object[] { " A ", "AGA", " A ", 'G', ModItems.grenade_if_generic, 'A', ModItems.powder_spark_mix }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_if_hopwire, 1), new Object[] { " A ", "AGA", " A ", 'G', ModItems.grenade_if_generic, 'A', ModItems.powder_power }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_if_null, 1), new Object[] { "BAB", "AGA", "BAB", 'G', ModItems.grenade_if_generic, 'A', Blocks.obsidian, 'B', BIGMT.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_if_null, 1), new Object[] { "BAB", "AGA", "BAB", 'G', ModItems.grenade_if_generic, 'A', ModItems.undefined, 'B', BIGMT.ingot() }); //Mines CraftingManager.addRecipeAuto(new ItemStack(ModBlocks.mine_ap, 4), new Object[] { "C", "P", "T", 'C', ModItems.circuit_targeting_tier2, 'P', IRON.plate(), 'T', ANY_PLASTICEXPLOSIVE.ingot() }); diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index 18d585624..16a452ba5 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -58,6 +58,7 @@ public class EntityMappings { addEntity(EntityGrenadeNuke.class, "entity_grenade_nuke", 500); addEntity(EntitySchrab.class, "entity_schrabnel", 500); addEntity(EntityMissileGeneric.class, "entity_missile_generic", 1000); + addEntity(EntityMissileDecoy.class, "entity_missile_decoy", 1000); addEntity(EntityMissileStrong.class, "entity_missile_strong", 1000); addEntity(EntityMissileNuclear.class, "entity_missile_nuclear", 1000); addEntity(EntityMissileCluster.class, "entity_missile_cluster", 1000); diff --git a/src/main/java/com/hbm/entity/grenade/EntityGrenadeIFNull.java b/src/main/java/com/hbm/entity/grenade/EntityGrenadeIFNull.java index 601381cee..98da6e84c 100644 --- a/src/main/java/com/hbm/entity/grenade/EntityGrenadeIFNull.java +++ b/src/main/java/com/hbm/entity/grenade/EntityGrenadeIFNull.java @@ -8,52 +8,51 @@ import com.hbm.items.weapon.ItemGrenade; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.DamageSource; import net.minecraft.world.World; public class EntityGrenadeIFNull extends EntityGrenadeBouncyBase { - public EntityGrenadeIFNull(World p_i1773_1_) - { - super(p_i1773_1_); - } + public EntityGrenadeIFNull(World world) { + super(world); + } - public EntityGrenadeIFNull(World p_i1774_1_, EntityLivingBase p_i1774_2_) - { - super(p_i1774_1_, p_i1774_2_); - } + public EntityGrenadeIFNull(World world, EntityLivingBase thrower) { + super(world, thrower); + } - public EntityGrenadeIFNull(World p_i1775_1_, double p_i1775_2_, double p_i1775_4_, double p_i1775_6_) - { - super(p_i1775_1_, p_i1775_2_, p_i1775_4_, p_i1775_6_); - } + public EntityGrenadeIFNull(World world, double x, double y, double z) { + super(world, x, y, z); + } - @Override - public void explode() { - - if (!this.worldObj.isRemote) - { - this.setDead(); + @Override + public void explode() { - for(int a = -3; a <= 3; a++) - for(int b = -3; b <= 3; b++) - for(int c = -3; c <= 3; c++) - worldObj.setBlockToAir((int)posX + a, (int)posY + b, (int)posZ + c); - - List list = worldObj.getEntitiesWithinAABBExcludingEntity(this, AxisAlignedBB.getBoundingBox((int)posX + 0.5 - 3, (int)posY + 0.5 - 3, (int)posZ + 0.5 - 3, (int)posX + 0.5 + 3, (int)posY + 0.5 + 3, (int)posZ + 0.5 + 3)); - - for(Object o : list) { - if(o instanceof EntityLivingBase) { - EntityLivingBase e = (EntityLivingBase)o; - - e.setHealth(0); - } else if(o instanceof Entity) { - Entity e = (Entity)o; - - e.setDead(); - } - } - } - } + if(!this.worldObj.isRemote) { + this.setDead(); + + int range = 5; + + for(int a = -range; a <= range; a++) + for(int b = -range; b <= range; b++) + for(int c = -range; c <= range; c++) + worldObj.setBlockToAir((int) Math.floor(posX + a), (int) Math.floor(posY + b), (int) Math.floor(posZ + c)); + + List list = worldObj.getEntitiesWithinAABBExcludingEntity(this, + AxisAlignedBB.getBoundingBox((int) posX + 0.5 - 3, (int) posY + 0.5 - 3, (int) posZ + 0.5 - 3, (int) posX + 0.5 + 3, (int) posY + 0.5 + 3, (int) posZ + 0.5 + 3)); + + for(Object o : list) { + if(o instanceof EntityLivingBase) { + EntityLivingBase e = (EntityLivingBase) o; + e.setHealth(0); + e.onDeath(DamageSource.outOfWorld); + } else if(o instanceof Entity) { + Entity e = (Entity) o; + e.setDead(); + } + } + } + } @Override protected int getMaxTimer() { diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileTier1.java b/src/main/java/com/hbm/entity/missile/EntityMissileTier1.java index 92ebec3f2..6fb39039e 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileTier1.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileTier1.java @@ -47,6 +47,15 @@ public abstract class EntityMissileTier1 extends EntityMissileBaseNT { @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_generic_small); } } + public static class EntityMissileDecoy extends EntityMissileTier1 { + public EntityMissileDecoy(World world) { super(world); } + public EntityMissileDecoy(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { worldObj.newExplosion(this, posX, posY, posZ, 4F, false, false); } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.ingot_steel); } + @Override public String getUnlocalizedName() { return "radar.target.tier4"; } + @Override public int getBlipLevel() { return IRadarDetectableNT.TIER4; } + } + public static class EntityMissileIncendiary extends EntityMissileTier1 { public EntityMissileIncendiary(World world) { super(world); } public EntityMissileIncendiary(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } diff --git a/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java b/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java index 3c3632c9c..180c6981d 100644 --- a/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java @@ -13,6 +13,7 @@ import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; import com.hbm.blocks.ModBlocks; import com.hbm.inventory.FluidStack; +import com.hbm.inventory.OreDictManager; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.OreDictStack; @@ -31,16 +32,19 @@ public class ArcWelderRecipes extends SerializableRecipe { @Override public void registerDefaults() { + //Parts recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.motor, 2), 100, 200L, new OreDictStack(IRON.plate(), 2), new ComparableStack(ModItems.coil_copper), new ComparableStack(ModItems.coil_copper_torus))); recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.motor, 2), 100, 400L, new OreDictStack(STEEL.plate(), 1), new ComparableStack(ModItems.coil_copper), new ComparableStack(ModItems.coil_copper_torus))); + //Dense Wires recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.wire_dense, 1, Mats.MAT_ALLOY.id), 100, 10_000L, new ComparableStack(ModItems.wire_advanced_alloy, 8))); recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.wire_dense, 1, Mats.MAT_GOLD.id), 100, 10_000L, new ComparableStack(ModItems.wire_gold, 8))); + //Circuits recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.circuit_copper), 100, 1_000L, new FluidStack(Fluids.GAS, 100), new ComparableStack(ModItems.circuit_aluminium, 1), new OreDictStack(NETHERQUARTZ.dust()), new ComparableStack(ModItems.wire_copper, 8))); recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.circuit_red_copper), 100, 2_500L, new FluidStack(Fluids.PETROLEUM, 100), @@ -76,11 +80,21 @@ public class ArcWelderRecipes extends SerializableRecipe { recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.plate_welded, 1, Mats.MAT_OSMIRIDIUM.id), 6_000, 20_000_000L, new FluidStack(Fluids.REFORMGAS, 16_000), new OreDictStack(OSMIRIDIUM.plateCast(), 2))); + //Missile Parts + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.thruster_small), 60, 1_000L, new OreDictStack(STEEL.plate(), 4), new ComparableStack(ModItems.wire_aluminium, 4), new OreDictStack(CU.plate(), 4))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.thruster_medium), 100, 2_000L, new OreDictStack(STEEL.plate(), 8), new ComparableStack(ModItems.motor, 1), new OreDictStack(GRAPHITE.ingot(), 8))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.thruster_large), 200, 5_000L, new OreDictStack(DURA.ingot(), 12), new ComparableStack(ModItems.motor, 2), new OreDictStack(OreDictManager.getReflector(), 16))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.fuel_tank_small), 60, 1_000L, new OreDictStack(Fluids.ETHANOL.getDict(1_000), 6), new OreDictStack(TI.plate(), 6), new OreDictStack(STEEL.plate(), 2))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.fuel_tank_medium), 100, 2_000L, new OreDictStack(Fluids.KEROSENE.getDict(1_000), 8), new OreDictStack(TI.plate(), 12), new OreDictStack(STEEL.plate(), 4))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.fuel_tank_large), 200, 5_000L, new OreDictStack(Fluids.KEROSENE.getDict(1_000), 12), new OreDictStack(TI.plate(), 24), new OreDictStack(STEEL.plate(), 8))); + + //Missiles recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_generic), 100, 5_000L, new ComparableStack(ModItems.warhead_generic_small), new ComparableStack(ModItems.fuel_tank_small), new ComparableStack(ModItems.thruster_small))); recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_incendiary), 100, 5_000L, new ComparableStack(ModItems.warhead_incendiary_small), new ComparableStack(ModItems.fuel_tank_small), new ComparableStack(ModItems.thruster_small))); recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_cluster), 100, 5_000L, new ComparableStack(ModItems.warhead_cluster_small), new ComparableStack(ModItems.fuel_tank_small), new ComparableStack(ModItems.thruster_small))); recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_buster), 100, 5_000L, new ComparableStack(ModItems.warhead_buster_small), new ComparableStack(ModItems.fuel_tank_small), new ComparableStack(ModItems.thruster_small))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_decoy), 60, 2_500L, new OreDictStack(STEEL.ingot()), new ComparableStack(ModItems.fuel_tank_small), new ComparableStack(ModItems.thruster_small))); recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_strong), 200, 10_000L, new ComparableStack(ModItems.warhead_generic_medium), new ComparableStack(ModItems.fuel_tank_medium), new ComparableStack(ModItems.thruster_medium))); recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_incendiary_strong), 200, 10_000L, new ComparableStack(ModItems.warhead_incendiary_medium), new ComparableStack(ModItems.fuel_tank_medium), new ComparableStack(ModItems.thruster_medium))); diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index fb559fa5d..6e69849c6 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -197,12 +197,6 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.warhead_volcano, 1), new AStack[] {new OreDictStack(TI.plate(), 24), new OreDictStack(STEEL.plate(), 16), new ComparableStack(ModBlocks.det_nuke, 3), new OreDictStack(U238.block(), 24), new ComparableStack(ModItems.circuit_tantalium, 5) }, 600); makeRecipe(new ComparableStack(ModItems.warhead_thermo_endo, 1), new AStack[] {new ComparableStack(ModBlocks.therm_endo, 2), new OreDictStack(TI.plate(), 12), new ComparableStack(ModItems.circuit_targeting_tier3, 1) },300); makeRecipe(new ComparableStack(ModItems.warhead_thermo_exo, 1), new AStack[] {new ComparableStack(ModBlocks.therm_exo, 2), new OreDictStack(TI.plate(), 12), new ComparableStack(ModItems.circuit_targeting_tier3, 1) },300); - makeRecipe(new ComparableStack(ModItems.fuel_tank_small, 1), new AStack[] {new ComparableStack(ModItems.canister_full, 6, Fluids.ETHANOL.getID()), new OreDictStack(TI.plate(), 6), new OreDictStack(STEEL.plate(), 2), },100); - makeRecipe(new ComparableStack(ModItems.fuel_tank_medium, 1), new AStack[] {new ComparableStack(ModItems.canister_full, 8, Fluids.KEROSENE.getID()), new OreDictStack(TI.plate(), 12), new OreDictStack(STEEL.plate(), 4), },150); - makeRecipe(new ComparableStack(ModItems.fuel_tank_large, 1), new AStack[] {new ComparableStack(ModItems.canister_full, 12, Fluids.KEROSENE.getID()), new OreDictStack(TI.plate(), 24), new OreDictStack(STEEL.plate(), 8), },200); - makeRecipe(new ComparableStack(ModItems.thruster_small, 1), new AStack[] {new OreDictStack(STEEL.plate(), 4), new OreDictStack(W.ingot(), 4), new ComparableStack(ModItems.wire_aluminium, 4), },100); - makeRecipe(new ComparableStack(ModItems.thruster_medium, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new OreDictStack(W.ingot(), 8), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.wire_copper, 16), },150); - makeRecipe(new ComparableStack(ModItems.thruster_large, 1), new AStack[] {new OreDictStack(DURA.ingot(), 16), new OreDictStack(W.ingot(), 16), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.wire_gold, 32), new ComparableStack(ModItems.circuit_red_copper, 1), },200); makeRecipe(new ComparableStack(ModItems.thruster_nuclear, 1), new AStack[] {new OreDictStack(DURA.ingot(), 32), new OreDictStack(B.ingot(), 8), new OreDictStack(PB.plate(), 16), new ComparableStack(ModItems.pipes_steel), new ComparableStack(ModItems.circuit_gold, 1) },600); makeRecipe(new ComparableStack(ModItems.sat_base, 1), new AStack[] {new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(STEEL.plate(), 6), new ComparableStack(ModItems.plate_desh, 4), new ComparableStack(ModItems.hull_big_titanium, 3), new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.getID()), new ComparableStack(ModItems.photo_panel, 24), new ComparableStack(ModItems.board_copper, 12), new ComparableStack(ModItems.circuit_gold, 6), new ComparableStack(ModItems.battery_lithium_cell_6, 1), },500); makeRecipe(new ComparableStack(ModItems.sat_head_mapper, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(STEEL.plate(), 6), new ComparableStack(ModItems.hull_small_steel, 3), new ComparableStack(ModItems.plate_desh, 2), new ComparableStack(ModItems.circuit_gold, 2), new OreDictStack(RUBBER.ingot(), 12), new OreDictStack(REDSTONE.dust(), 6), new ComparableStack(Items.diamond, 1), new ComparableStack(Blocks.glass_pane, 6), },400); @@ -325,24 +319,6 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.therm_exo, 1), new AStack[] {new OreDictStack(TI.plate(), 12), new OreDictStack(P_RED.dust(), 32), new ComparableStack(ModItems.circuit_gold, 1), new ComparableStack(ModItems.coil_gold, 4), },250); makeRecipe(new ComparableStack(ModBlocks.launch_pad, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(ANY_PLASTIC.ingot(), 2), new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModBlocks.machine_battery, 1), new ComparableStack(ModItems.circuit_gold, 2), },250); makeRecipe(new ComparableStack(ModItems.spawn_chopper, 1), new AStack[] {new ComparableStack(ModItems.chopper_blades, 5), new ComparableStack(ModItems.chopper_gun, 1), new ComparableStack(ModItems.chopper_head, 1), new ComparableStack(ModItems.chopper_tail, 1), new ComparableStack(ModItems.chopper_torso, 1), new ComparableStack(ModItems.chopper_wing, 2), },300); - //makeRecipe(new ComparableStack(ModItems.missile_generic, 1), new AStack[] {new ComparableStack(ModItems.warhead_generic_small, 1), new ComparableStack(ModItems.fuel_tank_small, 1), new ComparableStack(ModItems.thruster_small, 1), new OreDictStack(TI.plate(), 6), new ComparableStack(ModItems.circuit_targeting_tier1, 1), },200); - //makeRecipe(new ComparableStack(ModItems.missile_incendiary, 1), new AStack[] {new ComparableStack(ModItems.warhead_incendiary_small, 1), new ComparableStack(ModItems.fuel_tank_small, 1), new ComparableStack(ModItems.thruster_small, 1), new OreDictStack(TI.plate(), 6), new ComparableStack(ModItems.circuit_targeting_tier1, 1), },200); - //makeRecipe(new ComparableStack(ModItems.missile_cluster, 1), new AStack[] {new ComparableStack(ModItems.warhead_cluster_small, 1), new ComparableStack(ModItems.fuel_tank_small, 1), new ComparableStack(ModItems.thruster_small, 1), new OreDictStack(TI.plate(), 6), new ComparableStack(ModItems.circuit_targeting_tier1, 1), },200); - //makeRecipe(new ComparableStack(ModItems.missile_buster, 1), new AStack[] {new ComparableStack(ModItems.warhead_buster_small, 1), new ComparableStack(ModItems.fuel_tank_small, 1), new ComparableStack(ModItems.thruster_small, 1), new OreDictStack(TI.plate(), 6), new ComparableStack(ModItems.circuit_targeting_tier1, 1), },200); - //makeRecipe(new ComparableStack(ModItems.missile_strong, 1), new AStack[] {new ComparableStack(ModItems.warhead_generic_medium, 1), new ComparableStack(ModItems.fuel_tank_medium, 1), new ComparableStack(ModItems.thruster_medium, 1), new OreDictStack(TI.plate(), 10), new OreDictStack(STEEL.plate(), 14), new ComparableStack(ModItems.circuit_targeting_tier2, 1), },250); - //makeRecipe(new ComparableStack(ModItems.missile_incendiary_strong, 1), new AStack[] {new ComparableStack(ModItems.warhead_incendiary_medium, 1), new ComparableStack(ModItems.fuel_tank_medium, 1), new ComparableStack(ModItems.thruster_medium, 1), new OreDictStack(TI.plate(), 10), new OreDictStack(STEEL.plate(), 14), new ComparableStack(ModItems.circuit_targeting_tier2, 1), },250); - //makeRecipe(new ComparableStack(ModItems.missile_cluster_strong, 1), new AStack[] {new ComparableStack(ModItems.warhead_cluster_medium, 1), new ComparableStack(ModItems.fuel_tank_medium, 1), new ComparableStack(ModItems.thruster_medium, 1), new OreDictStack(TI.plate(), 10), new OreDictStack(STEEL.plate(), 14), new ComparableStack(ModItems.circuit_targeting_tier2, 1), },250); - //makeRecipe(new ComparableStack(ModItems.missile_buster_strong, 1), new AStack[] {new ComparableStack(ModItems.warhead_buster_medium, 1), new ComparableStack(ModItems.fuel_tank_medium, 1), new ComparableStack(ModItems.thruster_medium, 1), new OreDictStack(TI.plate(), 10), new OreDictStack(STEEL.plate(), 14), new ComparableStack(ModItems.circuit_targeting_tier2, 1), },250); - //makeRecipe(new ComparableStack(ModItems.missile_emp_strong, 1), new AStack[] {new ComparableStack(ModBlocks.emp_bomb, 3), new ComparableStack(ModItems.fuel_tank_medium, 1), new ComparableStack(ModItems.thruster_medium, 1), new OreDictStack(TI.plate(), 10), new OreDictStack(STEEL.plate(), 14), new ComparableStack(ModItems.circuit_targeting_tier2, 1), },250); - //makeRecipe(new ComparableStack(ModItems.missile_burst, 1), new AStack[] {new ComparableStack(ModItems.warhead_generic_large, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 14), new OreDictStack(STEEL.plate(), 20), new OreDictStack(AL.plate(), 12), new ComparableStack(ModItems.circuit_targeting_tier3, 1), },350); - //makeRecipe(new ComparableStack(ModItems.missile_inferno, 1), new AStack[] {new ComparableStack(ModItems.warhead_incendiary_large, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 14), new OreDictStack(STEEL.plate(), 20), new OreDictStack(AL.plate(), 12), new ComparableStack(ModItems.circuit_targeting_tier3, 1), },350); - //makeRecipe(new ComparableStack(ModItems.missile_rain, 1), new AStack[] {new ComparableStack(ModItems.warhead_cluster_large, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 14), new OreDictStack(STEEL.plate(), 20), new OreDictStack(AL.plate(), 12), new ComparableStack(ModItems.circuit_targeting_tier3, 1), },350); - //makeRecipe(new ComparableStack(ModItems.missile_drill, 1), new AStack[] {new ComparableStack(ModItems.warhead_buster_large, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 14), new OreDictStack(STEEL.plate(), 20), new OreDictStack(AL.plate(), 12), new ComparableStack(ModItems.circuit_targeting_tier3, 1), },350); - //makeRecipe(new ComparableStack(ModItems.missile_nuclear, 1), new AStack[] {new ComparableStack(ModItems.warhead_nuclear, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 20), new OreDictStack(STEEL.plate(), 24), new OreDictStack(AL.plate(), 16), new ComparableStack(ModItems.circuit_targeting_tier4, 1), },500); - //makeRecipe(new ComparableStack(ModItems.missile_nuclear_cluster, 1), new AStack[] {new ComparableStack(ModItems.warhead_mirv, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 20), new OreDictStack(STEEL.plate(), 24), new OreDictStack(AL.plate(), 16), new ComparableStack(ModItems.circuit_targeting_tier5, 1), },600); - //makeRecipe(new ComparableStack(ModItems.missile_volcano, 1), new AStack[] {new ComparableStack(ModItems.warhead_volcano, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 20), new OreDictStack(STEEL.plate(), 24), new OreDictStack(AL.plate(), 16), new ComparableStack(ModItems.circuit_targeting_tier5, 1), },600); - //makeRecipe(new ComparableStack(ModItems.missile_endo, 1), new AStack[] {new ComparableStack(ModItems.warhead_thermo_endo, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 14), new OreDictStack(STEEL.plate(), 20), new OreDictStack(AL.plate(), 12), new ComparableStack(ModItems.circuit_targeting_tier4, 1), },350); - //makeRecipe(new ComparableStack(ModItems.missile_exo, 1), new AStack[] {new ComparableStack(ModItems.warhead_thermo_exo, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 14), new OreDictStack(STEEL.plate(), 20), new OreDictStack(AL.plate(), 12), new ComparableStack(ModItems.circuit_targeting_tier4, 1), },350); makeRecipe(new ComparableStack(ModItems.gun_defabricator, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(ANY_PLASTIC.ingot(), 8), new OreDictStack(IRON.plate(), 5), new ComparableStack(ModItems.mechanism_special, 3), new ComparableStack(Items.diamond, 1), new ComparableStack(ModItems.plate_dalekanium, 3), },200); makeRecipe(new ComparableStack(ModItems.gun_osipr_ammo, 24), new AStack[] {new OreDictStack(STEEL.plate(), 2), new OreDictStack(REDSTONE.dust(), 1), new ComparableStack(Items.glowstone_dust, 1), },50); makeRecipe(new ComparableStack(ModItems.gun_osipr_ammo2, 1), new AStack[] {new OreDictStack(CMB.plate(), 4), new OreDictStack(REDSTONE.dust(), 7), new ComparableStack(ModItems.powder_power, 3), },200); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 6f74b43d8..539beed9e 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1294,6 +1294,7 @@ public class ModItems { public static Item missile_incendiary; public static Item missile_cluster; public static Item missile_buster; + public static Item missile_decoy; public static Item missile_strong; public static Item missile_incendiary_strong; public static Item missile_cluster_strong; @@ -3909,6 +3910,7 @@ public class ModItems { missile_incendiary = new Item().setUnlocalizedName("missile_incendiary").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_incendiary"); missile_cluster = new Item().setUnlocalizedName("missile_cluster").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_cluster"); missile_buster = new Item().setUnlocalizedName("missile_buster").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_buster"); + missile_decoy = new Item().setUnlocalizedName("missile_decoy").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_decoy"); missile_strong = new Item().setUnlocalizedName("missile_strong").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_strong"); missile_incendiary_strong = new Item().setUnlocalizedName("missile_incendiary_strong").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_incendiary_strong"); missile_cluster_strong = new Item().setUnlocalizedName("missile_cluster_strong").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_cluster_strong"); @@ -6810,6 +6812,7 @@ public class ModItems { //Missiles GameRegistry.registerItem(missile_generic, missile_generic.getUnlocalizedName()); GameRegistry.registerItem(missile_anti_ballistic, missile_anti_ballistic.getUnlocalizedName()); + GameRegistry.registerItem(missile_decoy, missile_decoy.getUnlocalizedName()); GameRegistry.registerItem(missile_incendiary, missile_incendiary.getUnlocalizedName()); GameRegistry.registerItem(missile_cluster, missile_cluster.getUnlocalizedName()); GameRegistry.registerItem(missile_buster, missile_buster.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index b970e1474..2a8e88ddb 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -664,6 +664,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityTestMissile.class, new RenderTestMissile()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileCustom.class, new RenderMissileCustom()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileGeneric.class, new RenderMissileGeneric()); + RenderingRegistry.registerEntityRenderingHandler(EntityMissileDecoy.class, new RenderMissileGeneric()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileAntiBallistic.class, new RenderMissileGeneric()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileIncendiary.class, new RenderMissileGeneric()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileCluster.class, new RenderMissileGeneric()); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 10f658ff5..9816aee87 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -1185,6 +1185,7 @@ public class ResourceManager { public static final ResourceLocation missileV2_IN_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_v2_inc.png"); public static final ResourceLocation missileV2_CL_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_v2_cl.png"); public static final ResourceLocation missileV2_BU_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_v2_bu.png"); + public static final ResourceLocation missileV2_decoy_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_v2_decoy.png"); public static final ResourceLocation missileAA_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_abm.png"); public static final ResourceLocation missileStrong_HE_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_strong.png"); public static final ResourceLocation missileStrong_EMP_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_strong_emp.png"); diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderMissileGeneric.java b/src/main/java/com/hbm/render/entity/rocket/RenderMissileGeneric.java index 64051609e..1dff79e27 100644 --- a/src/main/java/com/hbm/render/entity/rocket/RenderMissileGeneric.java +++ b/src/main/java/com/hbm/render/entity/rocket/RenderMissileGeneric.java @@ -23,21 +23,24 @@ public class RenderMissileGeneric extends Render { GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * interp - 90.0F, 0.0F, 1.0F, 0.0F); GL11.glRotatef(entity.prevRotationPitch + (entity.rotationPitch - entity.prevRotationPitch) * interp, 0.0F, 0.0F, 1.0F); - if(entity instanceof EntityMissileGeneric) - bindTexture(ResourceManager.missileV2_HE_tex); - if(entity instanceof EntityMissileIncendiary) - bindTexture(ResourceManager.missileV2_IN_tex); - if(entity instanceof EntityMissileCluster) - bindTexture(ResourceManager.missileV2_CL_tex); - if(entity instanceof EntityMissileBunkerBuster) - bindTexture(ResourceManager.missileV2_BU_tex); - if(entity instanceof EntityMissileAntiBallistic) { bindTexture(ResourceManager.missileAA_tex); GL11.glShadeModel(GL11.GL_SMOOTH); ResourceManager.missileABM.renderAll(); GL11.glShadeModel(GL11.GL_FLAT); } else { + + if(entity instanceof EntityMissileGeneric) + bindTexture(ResourceManager.missileV2_HE_tex); + if(entity instanceof EntityMissileIncendiary) + bindTexture(ResourceManager.missileV2_IN_tex); + if(entity instanceof EntityMissileCluster) + bindTexture(ResourceManager.missileV2_CL_tex); + if(entity instanceof EntityMissileBunkerBuster) + bindTexture(ResourceManager.missileV2_BU_tex); + if(entity instanceof EntityMissileDecoy) + bindTexture(ResourceManager.missileV2_decoy_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); ResourceManager.missileV2.renderAll(); GL11.glShadeModel(GL11.GL_FLAT); diff --git a/src/main/java/com/hbm/render/tileentity/RenderLaunchPadTier1.java b/src/main/java/com/hbm/render/tileentity/RenderLaunchPadTier1.java index b7159a7bb..8b6e245aa 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderLaunchPadTier1.java +++ b/src/main/java/com/hbm/render/tileentity/RenderLaunchPadTier1.java @@ -38,6 +38,13 @@ public class RenderLaunchPadTier1 extends TileEntitySpecialRenderer { ResourceManager.missileV2.renderAll(); GL11.glShadeModel(GL11.GL_FLAT); } + if(toRender.getItem() == ModItems.missile_decoy) { + GL11.glScalef(1.0F, 1.0F, 1.0F); + bindTexture(ResourceManager.missileV2_decoy_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.missileV2.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } if(toRender.getItem() == ModItems.missile_strong) { GL11.glScalef(1.5F, 1.5F, 1.5F); bindTexture(ResourceManager.missileStrong_HE_tex); diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java index eec19fae0..676409778 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java @@ -65,6 +65,7 @@ public class TileEntityLaunchPad extends TileEntityMachineBase implements IEnerg missiles.put(new ComparableStack(ModItems.missile_emp), EntityMissileEMP.class); //Tier 1 missiles.put(new ComparableStack(ModItems.missile_generic), EntityMissileGeneric.class); + missiles.put(new ComparableStack(ModItems.missile_decoy), EntityMissileDecoy.class); missiles.put(new ComparableStack(ModItems.missile_incendiary), EntityMissileIncendiary.class); missiles.put(new ComparableStack(ModItems.missile_cluster), EntityMissileCluster.class); missiles.put(new ComparableStack(ModItems.missile_buster), EntityMissileBunkerBuster.class); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 27b8e8d17..9cd2d7a8f 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -2292,6 +2292,7 @@ item.missile_carrier.name=HTR-01 Trägerrakete item.missile_cluster.name=Streurakete item.missile_cluster_strong.name=Starke Streurakete item.missile_custom.name=Spezialgefertigte Rakete +item.missile_decoy.name=Köderflugkörper item.missile_doomsday.name=Doomsday Rakete item.missile_drill.name=Der Betonbrecher item.missile_emp.name=EMP-Rakete diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index f6aad2998..101515558 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -3029,6 +3029,7 @@ item.missile_carrier.name=HTR-01 Carrier Rocket item.missile_cluster.name=Cluster Missile item.missile_cluster_strong.name=Strong Cluster Missile item.missile_custom.name=Custom Missile +item.missile_decoy.name=Decoy Missile item.missile_doomsday.name=Doomsday Missile item.missile_drill.name=The Concrete Cracker item.missile_emp.name=EMP Missile diff --git a/src/main/resources/assets/hbm/textures/items/fuel_tank_large.png b/src/main/resources/assets/hbm/textures/items/fuel_tank_large.png index 1a6b4cb1b030ef808573c800921c2c4b076ae720..afa1cbaf0b1338e2703df324054b22f91b141419 100644 GIT binary patch delta 234 zcmV+aYkH*x6X?io52 zdI48?WGYAy3^Alrr6EsH@sPRi kyP9}=yrWf4{!GdG0?wV4;vO%iegFUf07*qoM6N<$f=1+Mpa1{> delta 225 zcmV<703QFA0*wNYG=IcNL_t(Ijir-43d1lAgELnP#3?6!yPKBN$ zb0BhT)g)6(jb%vi123}t@$_S$P^a8Q-}fss<9mi-5Oc*~*LADb8g*U6dk+8@#}USu zB)^gXT5B*fi0J1)DJ41;0RYf64ZQdGFGJEf2iU7afam?P7Fq!o4hcjA5K$7d*1~bX z!Xb)hr!dcR)IglT|MM bOvTy&NotlfaO4y~00000NkvXXu0mjfs;pp0 diff --git a/src/main/resources/assets/hbm/textures/items/fuel_tank_large_alt.png b/src/main/resources/assets/hbm/textures/items/fuel_tank_large_alt.png deleted file mode 100644 index 198a444303934539787a00b8e1a685db8de72dce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 203 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf-8&u1Tv>^PcC5`BeK6c3sQdd=K= zZRaDK@FYRSr7Q-~*|$aCZxmwgF$@S@q%xh2;T@mDIZ5O0jE#*Q58lm?TqPydA}yn~ yp7)-AK?uV?(Ym08-}lYcc3HmX$lUZ_64osnoe~VXMT&v0VeoYIb6Mw<&;$UzUq-+H diff --git a/src/main/resources/assets/hbm/textures/items/fuel_tank_medium.png b/src/main/resources/assets/hbm/textures/items/fuel_tank_medium.png index a7cd568d9e00437189813e6521828d401e8dc9e3..cd1ac2e15f0fba5929d0995c29a4689cb22b41f7 100644 GIT binary patch delta 341 zcmV-b0jmD$0)PXMG=DcqL_t(Ijir+@s=`1NMUNjLg2bs(g`g7LNt*0PE3vb(w6U?b zb_F&TE5@M4|#~DnOUnLmLpx|xaeTO@jH}Inxron7B%cYdu?{}0^%;)o3Z?kUE zwrx6{4nhb3uGcGC>s%?tYPD(@0h7rjcU`w!9F0Z@As7yagnwZOfYv%+uh%7{LR%~r zxs;M30l;)RMF>H!*Fz~qyWM8FT$X!(uTOAY7tixZl7#(!PY?t=9uJ}@!f~9>9Xx|> zw;NJQvMi(3YSsGQ64c4EEaR*KIGs)(VR0Or0lx2ZJRUh54i!_DWdNMdXFSiV%-%W} z3 n`3m97&$QWW*lxE*?@#&%tbB@Mndvx(00000NkvXXu0mjfy0)7q delta 319 zcmV-F0l@x%1L^{hG=CvUL_t(Ijir+@j)O1|MPF76i6Da0(5K}rX}An+N(#E%AZ6;* z6bMn$7=dLBQnqpw3!{yc-`Vr$Y5X;YFSXk$WLfr{=b3q)S(b&%<>K_NF0(9qdY*^p zdHB8$fYzF}ZCRFuq9}Hofb;qMjN|y#c)ebUs(-2|%ktIt^9~4t04XKo zIHI*CO;dyr+-^78wxzCX4u^v^u>~-YFbt7WB7`7G5|mOjO|xnS_;m$iKqka#nw-tf z30&Im_nS2f(D(hnuyGu>0Z|mu_dP-g%QQ_B0K+g4hM`qkWe`OXzVFj@-D`=Aj>n^Q zb^_i(Cd7|3kT_C0P38#zN~vu?p65HWNbfQeD5b0|gbzQ{LM&OXx9FLy~TU~$q~z#OG$uchF?X(;>PfS7W$eVy_7+4H_#&U()B zf67VTHCxpkLPHsP9?!6;J}>FY(y%P^&kLW%dkoiZU6$V4mbhSD_O5li9TZi(7OeWg za(dH+@3st|ZI;IgFxN1J9)Edw1s1g~ae58(7=x#)pUXO@geCwU+HZpZ diff --git a/src/main/resources/assets/hbm/textures/items/fuel_tank_small.png b/src/main/resources/assets/hbm/textures/items/fuel_tank_small.png index d2ac3f1dc23f5c12e3394d6df8f0d8dc2b3e41f9..d8c0c47d7474161083024bf2967eecd3e8517b7d 100644 GIT binary patch delta 262 zcmV+h0r~!<0-G=J$yL_t(Ijm?ljYK1TqMNgaJ{0A}=ge*W1*W)A;H{cdrgA*ri zz!kUy$<##%PjDzmI_jsbDgO@&?S)Kk?t95S@Yj0z>7s4hux%S6f`~AVV>J5~Gn=Lf zT5Gh{SZe{;_dQJ0bXoHH-Ehu@+wBH`F$QA{07X$ymSuRjz<*lHwrv2c>&m*WhzQ<$ z(lmXpg0&VA;WL9Q%Mg)EHVUTex?qgCzy7hP@B7CL0ES_>c;5S1^!fwmTv(QcBuO}q zgY!J^M=8ZT&tGPu5MxqGMIlBjR8@8H@;ra80{jBRx~?z5*zo_*JN~70H8(%3-2eap M07*qoM6N<$f`>bNRsaA1 delta 248 zcmVDfkZ~$&VLqWkw zsA#zcHKkX`zasizM@bPW8EKmF>}qxle~q`V9-5}{BErdG7^2>&Sl6{T#$2>*+Ze|& z@W0;$YpqvG0id-;YYjl2=R6({fA@df1!D{%f>H|S8~`H1zH#rQX&R&r7Q8NbWtL@# zNZ^fj(6+7DTH~C%Eb06H`wjr+c@DH?Sz^{Ofwk7J><nIF3&iMZq*pmzf~J{rgTN yNfIqFdO}rIfmW8~&rX0}D6#9hz!)3;A9w<`tZ*UeDU3)9e>HEig2+V4lxG^Z#?1V$?qdbA9+J m_eW&kKcBG27HZk~FL_s_h46{l{xAjllEKr}&t;ucLK6Vx^KPyH diff --git a/src/main/resources/assets/hbm/textures/items/fuelcell_arsenic.png b/src/main/resources/assets/hbm/textures/items/fuelcell_arsenic.png deleted file mode 100644 index 4a2c066f02c00f6a8ed9db144d9a915a26c9b66c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 293 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfwYD6b;ZJh{H#}vRm{`V3JW$Id{)zR?cO5sjI6ASju{y{x>^1uG%H-) z8+GwgBlq;;^M5Vu|9rUab$JVC(*ns;Jw9oZRC+rSZkxFVKKO0N5Ga!QbK^_nhS$61 zPJeExN2vTin<3vzu+d z9k4`x!=1d_r$2gZxLwO%aph^%Upa%>=NT>L`!#>~$JTvxcTzrs{3>w)|K$$W|LeBC pVwDKDMDd4gmU-!PC{xWt~$(69A(Uc(nik diff --git a/src/main/resources/assets/hbm/textures/items/fuelcell_base.png b/src/main/resources/assets/hbm/textures/items/fuelcell_base.png deleted file mode 100644 index b74dc7b3503228f0b23140ff25d6e66dcc53d65c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 258 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfQ006mPK{GzUq-N+;65i7_?0H zG5Y!YdAgb8kIYr8iXx}&44>!fp>z6DCr6;j#cjHovzP)zTA#vLSa+y}k?G70N~>v!C^+3-N~dF4B&@__557ygTyw|w(DUw_TG9q0)LPgg&ebxsLQ E05VEwtpET3 diff --git a/src/main/resources/assets/hbm/textures/items/fuelcell_euphemium.png b/src/main/resources/assets/hbm/textures/items/fuelcell_euphemium.png deleted file mode 100644 index 0acd3351ef16512611b487a6801d49ec6563ede7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 300 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfCb@h* z@7vE9bKUm(s#Q)d9+yMBKNm#@cs;b>^U`!-x&Qrqx$otSOj8Dj>!lIXT6%my5a&i0=>)N>FVdQ&MBb@0ASa7i2wiq diff --git a/src/main/resources/assets/hbm/textures/items/fuelcell_neptunium.png b/src/main/resources/assets/hbm/textures/items/fuelcell_neptunium.png deleted file mode 100644 index b4edaede1c263e9bb991f8061151b5648798bbf6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 287 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf39e`y(w-eDa#TfW$2#xJCPxZ+9HynZ)#d)?5nwrZclB#2 zLB;dMi_bp08sPP?QqD`$rA4Fb-R5n%z1!Fr9I|^KTl75s@g>J7tm4W}%ggn8TY+sHsCp|R3j$P_V9LEcZ0tv_l>IP2iyMFZJ*B?;cw}C j`D7V;XlUeT`gTe~DWM4fbv<+% diff --git a/src/main/resources/assets/hbm/textures/items/fuelcell_plutonium.png b/src/main/resources/assets/hbm/textures/items/fuelcell_plutonium.png deleted file mode 100644 index f05ccd94d0f21d3dd4a7889c1f3f12e929442ca2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 280 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfBs1U(~ubFZpqUCX?dHb!v*fb~(nM zzkjsn`Lp%ZraO~VZuZ%z-`=3nn+a diff --git a/src/main/resources/assets/hbm/textures/items/fuelcell_selenium.png b/src/main/resources/assets/hbm/textures/items/fuelcell_selenium.png deleted file mode 100644 index 237092dbb8fc68ad914085f3b3621216fb6ecea5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 294 zcmV+>0oneEP)irAz`QY1TY8{%%#Sceo5f{^C(o0Q@T+=ke= zh@?oBW)RZkK`aE(KNIz9sm{z0RY;z#j-5AuDe?% zX-~M-dN*UcpFgq;16Ds%0Gg)ZcN6>{aHrGp4L}%PcEiWL1n@lXNvvlHUeq8US{yEi s(~;#e90V9gIgaDrGzUdd82umV49xvhkF;_F7ytkO07*qoM6N<$f^8>v3IG5A diff --git a/src/main/resources/assets/hbm/textures/items/fuelcell_u235.png b/src/main/resources/assets/hbm/textures/items/fuelcell_u235.png deleted file mode 100644 index 86ba25294dec816f97b15324b00aa1d54a4a4b73..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 280 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfVpX6-&2k)v!t&=Y9~CxMj8-i-f-=&*5Vw?2*$X c|JuJ~QVk0|$kb#t8|XC#Pgg&ebxsLQ05{`ufB*mh diff --git a/src/main/resources/assets/hbm/textures/items/fuelcell_u238m2.png b/src/main/resources/assets/hbm/textures/items/fuelcell_u238m2.png deleted file mode 100644 index 9ce019f885d3c09e61d81eefc96f5b7f1774a577..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 293 zcmV+=0owkFP)z@V z<5=^LO~nA7O^0@s`*{Q*^143z|`st5>@`!R?*4B`|) zFYZ!tKj5;s3-XehhM<-!;s&wzk;2hy31fCL*?IPzcL)9>+(5()ME=ryP$r{3P(YHI zQDb3cYvX&^T8KV@4r=!=Xptb?smJmpLiPh zEj%0!89WFA07j!xMw1yl&r8z6$z;N6wZe7Xj8WPoW8k`O;(s^}e(A*Cdr&%fe_ zVTkYhD5bOt+E!bwR$`haQ52z+LQ07cf;f&*O0nDRejxu$@B2s_ESJk4xnFl{&fuD_ ReVPCO002ovPDHLkV1le>%;*3B delta 419 zcmV;U0bKsk1I+`FG=GFiL_t(Ijirz=OCwPfg};%!Owa^&jfGp-`v)u*taJq{E34QH z;uK*a5rzbRf~*A8W(#Ez*WtZeLJy`-{QODmNH&1~L#foqct?{8|{rAYP;q>;n|kaOC3CjiuIk@T%)UM=&&U+mzWrd?X+hrxa=l4GaM z%qZaG^deA7QK_zF-pZE+TIYuWfE~1)s!r!d8c8ho_kZMTbw{qRf5_F{$hROGsbAPwyIucVgpxZ%H1BV-Tp1* z@+WV*F+H^YkJde`H9S8*QmHhvT+RiQN*{TB{f99<^7(?dsoQItftxP*%b8|PC3UEO#U>tRId*bZ7^ad&3$hqGyZ{`31 N002ovPDHLkV1lEO%9H>A diff --git a/src/main/resources/assets/hbm/textures/items/thruster_large_alt.png b/src/main/resources/assets/hbm/textures/items/thruster_large_alt.png deleted file mode 100644 index ee64287d35a35539afcad69ca9fee68497426ca1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 288 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;>1s;*b z3=DjSK$uZf!>a)(C{f}XQ4*Y=R#Ki=l*&+$n3-3imzP?iV4`QBXPIMM=Lb|X&(p;* z#KM2+gp0g~6?j;Ug_JjN`W!GgbFeQ@_N7X4j%ujAA7}rb<{v^6_j5RBtUW35__x%1 zZTAJLGm1||y`I+azb-l;XhJ}UpwVqhmWC5z2g}SDBLc%(lpBJ&u0$>UUT6Q;u4Uo8 zH>~z|8zdDv+t}S5Zt@#W&f#u-Sm|kYA~&(SLqs=iy9cY-seY!`;Jpv7>PHA@1_~bf dU|Uqn@ciV#=_%iNQh_dI@O1TaS?83{1ORKNW1s*4 diff --git a/src/main/resources/assets/hbm/textures/items/thruster_medium.png b/src/main/resources/assets/hbm/textures/items/thruster_medium.png index c880ffed8c9b748215619a23d2a18432a8e3c3b3..3437a340ac0f42e69742bfd21299b6fccedb6177 100644 GIT binary patch delta 387 zcmV-}0et?C1Fi#*G=F7DL_t(IjkS@n>f%5Uhd<*XY_p~=enB;j_u(d+dPLU6y|zXOy~RtSL*g5hw8F^0?Kf|Qatj>)nN zz!pz00iq~kzu%LlDX#01Wm%r<^}6)VkAUa%Svww&HceCN^*TwCn0pjt#%I~gE@j87m>edcgNRmV?q6p7Hfazp{ zhrs}4S>kQE+*_u0iBH4fUajpX_6kXoD9f^7+ct`#01;skMY!$vQI;iwAo!hvdhGhv zDv0A)^?JR=bX_9CX0rhiK}v}%%P<~~t9P9`pxf;t&vOtFEX!(4TCdlTQo?Z@y#fG8 z(^T2Ejn!(^m~5IRq?GV|-#7@UgX$Js*VXp^DZT-=4X1XfA2V_Q0000!lvI6;>1s;*b z3=DjSK$uZf!>a)(C{f}XQ4*Y=R#Ki=l*&+$n3-3imzP?iV4`QBXPIMM=Lb~N=jq}Y zV&T8G{~+%H1s-O}PQe>3yb^7eHw<&Nb{csGth{yH^TCO}$u3WX7jhJx3-Yp@|1pNs z^+U8n_S-|}MAZ+3WbbXL>=A79kvC;F{eCb1aTr4~v(n~AED8P_iUqoE^s%k})g>&F z^PKHA_mp2U$UZu_BPNFD2he2< Mp00i_>zopr0Aj*iXaE2J diff --git a/src/main/resources/assets/hbm/textures/items/thruster_small.png b/src/main/resources/assets/hbm/textures/items/thruster_small.png index f1881cd3c56a1a151d64d269527402b46dd95750..192d0bd6e2a21be75fe7b378ba9ef26393e96b2b 100644 GIT binary patch delta 428 zcmV;d0aO0Q0@VYMGk*b$NklfcgjW6S9SwI;1Iu5Ie+HYQNV7EI%H!19!XUopbIz?>%^C z%{+DBd7jMo^?LnLt_I!i2iJ8Kqr8b?;JU7K z9EX2x(Cv0A1J0xZiS2m%d%hyfV+rqO6*&W__?Sr!0c7-pRObS=Vt9qq5m z(eCGLY8ZyRiBH)7*4Ox21c0rb6@Hu@^0HV!2uUncHeT0&zQ)xYzkjl2v0Pw%+on{R zWitB1WR!4m_J5OTEZF-xP&C>G)y*2Eib>GFWITXqoDz)%^GgdDW&#WpzH*7DA8cvP z8JKeh%dc##wPngHRpzUUBvU~$6?}QSsQgf6gPWnG{OdRAq(G^%b|;b~Q^A#gO>~E)B$XVqV| WySOg2C`^?A0000u)7CgiRE{I6m;s(o#&ZrD*vL70{nyOd7y5L_+Ydr@+FrVeTofR8n0Qk7w4k5b$ zt@ZqVy`q!?KuLKB*##J5P*N`O`u-@f_c%=xUyifHpZ7auS$|$$b`V7obzP&i#&unU z5X5o(`Un78Yv5;`Gd%&)G@YfCD5WsQ5QZU5(;T`ubg(897p8C>V{#!T8p#V&XWUxEX!u46m8pXItwAN)>0J3!lvI6;>1s;*b z3=DjSK$uZf!>a)(C{f}XQ4*Y=R#Ki=l*&+$n3-3imzP?iV4`QBXPIMM=Lb~N>gnPb zV&T7Z!fD7-VouD%_!7i8oeS@mC*~v3?imm}(hU%|+MCQ)fy!D#Z zZUN0*k_(P%r3fXg*;=-vl}l2NZ?@pJ*+w=DJrAz3JaF@gm?^8d>h*Qr0?CB`U*(T5 z@L94Il(wZGnV_i<_nd9j(ThA`ip~f4<|#1mOMJ<=&hIGCoznO3fevEuboFyt=akR{ E0D9I}egFUf diff --git a/src/main/resources/assets/hbm/textures/models/missile_v2_decoy.png b/src/main/resources/assets/hbm/textures/models/missile_v2_decoy.png new file mode 100644 index 0000000000000000000000000000000000000000..191b0c97f723e20d641ef0b9d49aed312a565f42 GIT binary patch literal 915 zcmeAS@N?(olHy`uVBq!ia0vp^wm_W0!3HFq6o0G*QY^(zo*^7SP{WbZ!N9=m<>}%W zQZeW4?2UPk90c0xm1ix!ajI2&iSu$Bw^thc4z*r$*-tWmU|3n%ApF(V{fK9XUd+w{ zulR}4d68w)BsZv*?U~<_(qnwG{rKkBk?c3V*qYVyGkE63AAEC5-e;zct>~sNAtx>c zC+_?AaqC9b36H*+`h4OhPBOZrH+jOh_0?Z5Ep%EQ zHEY$IRZBImcpX2MKlRddHJw*WERDC^{HFZJQS0~m#I*MjH9y|32xE_i|Fg)e`5$$^E@s+%Mu*tz$7Sc_W^(n(-fu15 z*1hhv%gfsH>9c0vdvz@H+=XR+vx>J}^(+ohpL=<>!(0>g(o2?mIj>+9sMXxN-QRVg zpVhQ`x0f$s5ZTtPvBqG*hFFm-o?V9+0^WSDp7`a}_414ITkHQRTg6G;SDkWepFx4^ z{py@f$H)8UaWkJgTpY7%m5{7`S&fjB#EM2#f zGp4IAf0o;Qi?fMxwU(|{ZHnEi`A&7Os>}M9A{H`y5jtW|WT*OHFa1~_=wMlAh_7GLj$A{dy(^W3 zcPmaXDElMf_%fnV^3iO0>wW$A|Ad(OwR4nKU(OeIU2yC6$?e??6P(2~=T>p=ShZ?F zNsgfM&$RmQpDNXAGq0xA<=5t9*2teTx|$;PA!btif$I7{^Y6t>e{wu?w&J8)Q}&oB z2(wM`*j=Ee3rr}BTdgwrUM(rE5?(R+*#bYS<>rm}1%3rp>5FmK@*g>N>2{g#RnOoZ zs})`?aenz$|M!Z?-!5Bk*|9t;a{0Q~lf}2T%>J|K+->KI(2}iD6Z<1o_lI;}Zz@@! b^)r6=bhh(ci_RYh<}wCPS3j3^P6 Date: Tue, 5 Dec 2023 22:13:12 +0100 Subject: [PATCH 428/432] that --- .../machine/MachineExposureChamber.java | 44 ++++++++++++++++++ .../java/com/hbm/crafting/RodRecipes.java | 4 +- .../inventory/recipes/CentrifugeRecipes.java | 8 ++-- .../TileEntityMachineExposureChamber.java | 45 ++++++++++++++++--- 4 files changed, 90 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/hbm/blocks/machine/MachineExposureChamber.java b/src/main/java/com/hbm/blocks/machine/MachineExposureChamber.java index dbdb57627..8efe19ae1 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineExposureChamber.java +++ b/src/main/java/com/hbm/blocks/machine/MachineExposureChamber.java @@ -1,12 +1,15 @@ package com.hbm.blocks.machine; import com.hbm.blocks.BlockDummyable; +import com.hbm.handler.MultiblockHandlerXR; +import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityMachineExposureChamber; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; public class MachineExposureChamber extends BlockDummyable { @@ -17,6 +20,7 @@ public class MachineExposureChamber extends BlockDummyable { @Override public TileEntity createNewTileEntity(World world, int meta) { if(meta >= 12) return new TileEntityMachineExposureChamber(); + if(meta >= 6) return new TileEntityProxyCombo().inventory().power(); return null; } @@ -29,6 +33,46 @@ public class MachineExposureChamber extends BlockDummyable { public int getOffset() { return 2; } + + @Override + public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + + x += dir.offsetX * o; + z += dir.offsetZ * o; + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP).getOpposite(); + + MultiblockHandlerXR.fillSpace(world, x, y, z, new int[] {3, 0, 0, 0, -3, 8}, this, dir); + MultiblockHandlerXR.fillSpace(world, x, y + 2, z, new int[] {0, 0, 1, -1, -3, 6}, this, dir); + MultiblockHandlerXR.fillSpace(world, x, y + 2, z, new int[] {0, 0, -1, 1, -3, 6}, this, dir); + MultiblockHandlerXR.fillSpace(world, x + rot.offsetX * 7, y, z + rot.offsetZ * 7, new int[] {3, 0, 1, -1, 0, 1}, this, dir); + MultiblockHandlerXR.fillSpace(world, x + rot.offsetX * 7, y, z + rot.offsetZ * 7, new int[] {3, 0, -1, 1, 0, 1}, this, dir); + + this.makeExtra(world, x + rot.offsetX * 7 + dir.offsetX, y, z + rot.offsetZ * 7 + dir.offsetZ); + this.makeExtra(world, x + rot.offsetX * 7 - dir.offsetX, y, z + rot.offsetZ * 7 - dir.offsetZ); + this.makeExtra(world, x + rot.offsetX * 8 + dir.offsetX, y, z + rot.offsetZ * 8 + dir.offsetZ); + this.makeExtra(world, x + rot.offsetX * 8 - dir.offsetX, y, z + rot.offsetZ * 8 - dir.offsetZ); + this.makeExtra(world, x + rot.offsetX * 8, y, z + rot.offsetZ * 8); + } + + @Override + protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) { + + x += dir.offsetX * o; + z += dir.offsetZ * o; + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP).getOpposite(); + + if(!MultiblockHandlerXR.checkSpace(world, x, y, z, getDimensions(), x, y, z, dir)) return false; + if(!MultiblockHandlerXR.checkSpace(world, x, y, z, new int[] {3, 0, 0, 0, -3, 8}, x, y, z, dir)) return false; + if(!MultiblockHandlerXR.checkSpace(world, x, y, z, new int[] {0, 0, 1, -1, -3, 6}, x, y, z, dir)) return false; + if(!MultiblockHandlerXR.checkSpace(world, x, y, z, new int[] {0, 0, -1, 1, -3, 6}, x, y, z, dir)) return false; + if(!MultiblockHandlerXR.checkSpace(world, x + rot.offsetX * 7, y, z + rot.offsetZ * 7, new int[] {3, 0, 1, -1, 0, 1}, x, y, z, dir)) return false; + if(!MultiblockHandlerXR.checkSpace(world, x + rot.offsetX * 7, y, z + rot.offsetZ * 7, new int[] {3, 0, -1, 1, 0, 1}, x, y, z, dir)) return false; + + return true; + } @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { diff --git a/src/main/java/com/hbm/crafting/RodRecipes.java b/src/main/java/com/hbm/crafting/RodRecipes.java index 62cd42f2d..089d08aae 100644 --- a/src/main/java/com/hbm/crafting/RodRecipes.java +++ b/src/main/java/com/hbm/crafting/RodRecipes.java @@ -152,8 +152,8 @@ public class RodRecipes { CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.pwr_fuel, EnumPWRFuel.HEA242), new Object[] { "F", "I", "F", 'F', AM242.billet(), 'I', ModItems.plate_polymer }); CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.pwr_fuel, EnumPWRFuel.HES326), new Object[] { "F", "I", "F", 'F', SA326.billet(), 'I', ModItems.plate_polymer }); CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.pwr_fuel, EnumPWRFuel.HES327), new Object[] { "F", "I", "F", 'F', SA327.billet(), 'I', ModItems.plate_polymer }); - CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.pwr_fuel, EnumPWRFuel.BFB_AM_MIX), new Object[] { "F", "I", "B", 'F', ModItems.billet_am_mix, 'I', ModItems.plate_polymer, 'B', BI.billet() }); - CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.pwr_fuel, EnumPWRFuel.BFB_PU241), new Object[] { "F", "I", "B", 'F', PU241.billet(), 'I', ModItems.plate_polymer, 'B', BI.billet() }); + CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.pwr_fuel, EnumPWRFuel.BFB_AM_MIX), new Object[] { "NFN", "NIN", "NBN", 'F', ModItems.billet_am_mix, 'I', ModItems.plate_polymer, 'B', BI.billet(), 'N', ModItems.nugget_plutonium_fuel }); + CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.pwr_fuel, EnumPWRFuel.BFB_PU241), new Object[] { "NFN", "NIN", "NBN", 'F', PU241.billet(), 'I', ModItems.plate_polymer, 'B', BI.billet(), 'N', ModItems.nugget_uranium_fuel }); } public static void registerInit() { diff --git a/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java b/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java index ae66e0670..5b933fdd3 100644 --- a/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java @@ -256,13 +256,13 @@ public class CentrifugeRecipes extends SerializableRecipe { new ItemStack(ModItems.nugget_euphemium, 1), new ItemStack(ModItems.nuclear_waste_tiny, 6) }); recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.BFB_AM_MIX)), new ItemStack[] { - new ItemStack(ModItems.nugget_am_mix, 4), - new ItemStack(ModItems.nugget_pu_mix, 1), + new ItemStack(ModItems.nugget_am_mix, 9), + new ItemStack(ModItems.nugget_pu_mix, 2), new ItemStack(ModItems.nugget_bismuth, 6), new ItemStack(ModItems.nuclear_waste_tiny, 1) }); recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.BFB_PU241)), new ItemStack[] { - new ItemStack(ModItems.nugget_pu241, 4), - new ItemStack(ModItems.nugget_pu_mix, 1), + new ItemStack(ModItems.nugget_pu241, 9), + new ItemStack(ModItems.nugget_pu_mix, 2), new ItemStack(ModItems.nugget_bismuth, 6), new ItemStack(ModItems.nuclear_waste_tiny, 1) }); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExposureChamber.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExposureChamber.java index 7f11c77ed..c139e15c5 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExposureChamber.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExposureChamber.java @@ -9,18 +9,22 @@ import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.fauxpointtwelve.DirPos; +import api.hbm.energy.IEnergyUser; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import io.netty.buffer.ByteBuf; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineExposureChamber extends TileEntityMachineBase implements IGUIProvider { +public class TileEntityMachineExposureChamber extends TileEntityMachineBase implements IGUIProvider, IEnergyUser { public long power; public static final long maxPower = 1_000_000; @@ -62,6 +66,10 @@ public class TileEntityMachineExposureChamber extends TileEntityMachineBase impl this.isOn = false; this.power = Library.chargeTEFromItems(slots, 5, power, maxPower); + if(worldObj.getTotalWorldTime() % 20 == 0) { + for(DirPos pos : getConPos()) this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + UpgradeManager.eval(slots, 6, 7); int speedLevel = Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 3); int powerLevel = Math.min(UpgradeManager.getLevel(UpgradeType.POWER), 3); @@ -152,6 +160,18 @@ public class TileEntityMachineExposureChamber extends TileEntityMachineBase impl } } + public DirPos[] getConPos() { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP).getOpposite(); + return new DirPos[] { + new DirPos(xCoord + rot.offsetX * 7 + dir.offsetX * 2, yCoord, zCoord + rot.offsetZ * 7 + dir.offsetZ * 2, dir), + new DirPos(xCoord + rot.offsetX * 7 - dir.offsetX * 2, yCoord, zCoord + rot.offsetZ * 7 - dir.offsetZ * 2, dir.getOpposite()), + new DirPos(xCoord + rot.offsetX * 8 + dir.offsetX * 2, yCoord, zCoord + rot.offsetZ * 8 + dir.offsetZ * 2, dir), + new DirPos(xCoord + rot.offsetX * 8 - dir.offsetX * 2, yCoord, zCoord + rot.offsetZ * 8 - dir.offsetZ * 2, dir.getOpposite()), + new DirPos(xCoord + rot.offsetX * 9, yCoord, zCoord + rot.offsetZ * 9, rot) + }; + } + public ExposureChamberRecipe getRecipe(ItemStack particle, ItemStack ingredient) { return ExposureChamberRecipes.getRecipe(particle, ingredient); } @@ -176,6 +196,21 @@ public class TileEntityMachineExposureChamber extends TileEntityMachineBase impl this.savedParticles = buf.readByte(); } + @Override + public long getPower() { + return power; + } + + @Override + public void setPower(long power) { + this.power = power; + } + + @Override + public long getMaxPower() { + return maxPower; + } + AxisAlignedBB bb = null; @Override @@ -183,12 +218,12 @@ public class TileEntityMachineExposureChamber extends TileEntityMachineBase impl if(bb == null) { bb = AxisAlignedBB.getBoundingBox( - xCoord - 2, + xCoord - 8, yCoord, - zCoord - 2, - xCoord + 3, + zCoord - 8, + xCoord + 9, yCoord + 5, - zCoord + 3 + zCoord + 9 ); } From 8dc217b5f713f66fd0d0dfd1dfc7d2bd529cd3e5 Mon Sep 17 00:00:00 2001 From: Bob Date: Wed, 6 Dec 2023 20:08:24 +0100 Subject: [PATCH 429/432] i ate poisoned grilled cheeses and now i am dying --- changelog | 1 + .../hbm/items/machine/ItemMachineUpgrade.java | 25 ++++++++++++++++++ .../hbm/tileentity/IUpgradeInfoProvider.java | 11 ++++++++ .../TileEntityMachineElectricFurnace.java | 26 ++++++++++++++++++- 4 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/hbm/tileentity/IUpgradeInfoProvider.java diff --git a/changelog b/changelog index ee9dd2d76..7abe48a6f 100644 --- a/changelog +++ b/changelog @@ -29,6 +29,7 @@ * Added config options to the ground water pumps * Missile parts such as non-custom thrusters and fuselages are now made in the arc welder, recipe ingredients have been adjusted as well * Null grenades now have a slightly larger radius, should no longer wipe playerdata and require UNDEFINED to make +* Added some breedable material to BFB PWR fuel rods, meaning that the recycling recipes now actually yield a net positive instead of being a massive waste of time ## Fixed * Fixed ancient bug where custom missiles launched using the launch table would not use the accuracy calculation and always be pin-point accurate diff --git a/src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java b/src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java index 1a04a4649..3e165b474 100644 --- a/src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java +++ b/src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java @@ -3,8 +3,15 @@ package com.hbm.items.machine; import java.util.List; import com.hbm.items.ModItems; +import com.hbm.tileentity.IUpgradeInfoProvider; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.Slot; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; @@ -32,6 +39,24 @@ public class ItemMachineUpgrade extends Item { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { + GuiScreen open = Minecraft.getMinecraft().currentScreen; + + if(open != null && open instanceof GuiContainer) { + GuiContainer guiContainer = (GuiContainer) open; + Container container = guiContainer.inventorySlots; + if(container.inventorySlots.size() > 0) { + Slot first = container.getSlot(0); + IInventory inv = (IInventory) first.inventory; + if(inv instanceof IUpgradeInfoProvider) { + IUpgradeInfoProvider provider = (IUpgradeInfoProvider) inv; + if(provider.canProvideInfo(this.type, this.tier, bool)) { + provider.provideInfo(this.type, this.tier, list, bool); + return; + } + } + } + } + if(this.type == UpgradeType.SPEED) { list.add(EnumChatFormatting.RED + "Mining Drill:"); list.add("Delay -" + (15 * this.tier) + "% / Consumption +" + (300 * this.tier) + "HE/t"); diff --git a/src/main/java/com/hbm/tileentity/IUpgradeInfoProvider.java b/src/main/java/com/hbm/tileentity/IUpgradeInfoProvider.java new file mode 100644 index 000000000..8c8396573 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/IUpgradeInfoProvider.java @@ -0,0 +1,11 @@ +package com.hbm.tileentity; + +import java.util.List; + +import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; + +public interface IUpgradeInfoProvider { + + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo); + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo); +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java index 53e8c3f74..4c546e019 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java @@ -1,5 +1,8 @@ package com.hbm.tileentity.machine; +import java.util.List; + +import com.hbm.blocks.ModBlocks; import com.hbm.blocks.machine.MachineElectricFurnace; import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerElectricFurnace; @@ -7,7 +10,9 @@ import com.hbm.inventory.gui.GUIMachineElectricFurnace; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.I18nUtil; import api.hbm.energy.IBatteryItem; import api.hbm.energy.IEnergyUser; @@ -20,10 +25,11 @@ import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.FurnaceRecipes; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineElectricFurnace extends TileEntityMachineBase implements ISidedInventory, IEnergyUser, IGUIProvider { +public class TileEntityMachineElectricFurnace extends TileEntityMachineBase implements ISidedInventory, IEnergyUser, IGUIProvider, IUpgradeInfoProvider { // HOLY FUCKING SHIT I SPENT 5 DAYS ON THIS SHITFUCK CLASS FILE // thanks Martin, vaer and Bob for the help @@ -263,4 +269,22 @@ public class TileEntityMachineElectricFurnace extends TileEntityMachineBase impl public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineElectricFurnace(player.inventory, this); } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.POWER; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(EnumChatFormatting.GREEN.YELLOW + ">>> " + I18nUtil.resolveKey(ModBlocks.machine_electric_furnace_off.getUnlocalizedName() + ".name") + " <<<"); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + "Process time -" + (level * 25) + "%"); + info.add(EnumChatFormatting.RED + "Consumption +" + (level * 100) + "%"); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + "Consumption -" + (level * 30) + "%"); + info.add(EnumChatFormatting.RED + "Process time +" + (level * 10) + "%"); + } + } } \ No newline at end of file From 5c33fa17070dca0b720b3c9a534a35b70d5c043e Mon Sep 17 00:00:00 2001 From: Boblet Date: Thu, 7 Dec 2023 16:39:20 +0100 Subject: [PATCH 430/432] finished RBMK console, more upgrade stuff --- changelog | 6 ++ .../inventory/gui/GUIMachineArcWelder.java | 5 +- .../inventory/gui/GUIMachineAssembler.java | 7 +- .../com/hbm/inventory/gui/GUIRBMKConsole.java | 99 +++++++++++++++--- .../hbm/inventory/gui/GuiInfoContainer.java | 32 ++++++ .../inventory/recipes/CompressorRecipes.java | 2 + .../hbm/tileentity/IUpgradeInfoProvider.java | 13 +++ .../machine/TileEntityFurnaceIron.java | 27 ++++- .../machine/TileEntityMachineArcWelder.java | 33 +++++- .../machine/TileEntityMachineAssembler.java | 36 ++++++- .../machine/TileEntityMachineChemfac.java | 2 +- .../machine/TileEntityMachineChemplant.java | 2 +- .../machine/TileEntityMachineCompressor.java | 1 + .../TileEntityMachineElectricFurnace.java | 17 ++- .../machine/rbmk/TileEntityRBMKBoiler.java | 20 ++-- .../machine/rbmk/TileEntityRBMKConsole.java | 40 ++++++- src/main/resources/assets/hbm/lang/de_DE.lang | 3 + src/main/resources/assets/hbm/lang/en_US.lang | 17 +-- .../gui/processing/gui_arc_welder.png | Bin 2952 -> 2981 bytes .../gui/reactors/gui_rbmk_console.png | Bin 6569 -> 6651 bytes 20 files changed, 317 insertions(+), 45 deletions(-) diff --git a/changelog b/changelog index 7abe48a6f..b0650e213 100644 --- a/changelog +++ b/changelog @@ -30,6 +30,12 @@ * Missile parts such as non-custom thrusters and fuselages are now made in the arc welder, recipe ingredients have been adjusted as well * Null grenades now have a slightly larger radius, should no longer wipe playerdata and require UNDEFINED to make * Added some breedable material to BFB PWR fuel rods, meaning that the recycling recipes now actually yield a net positive instead of being a massive waste of time +* The RBMK control panel has been upgraded + * Right.clicking the color buttons will now assign the color to the selected control rods + * There's now a new button that allows to cycle through compressor settings on RBMK steam channels + * The flux display is now functional. It will display the flux curve of the last 30 seconds, as well as labels for the total flux level. + * With the color assigning buttons and the flux display finished, the console is now finally complete +* Compressing blood at 4 PU now turns it into crude oil at a ratio of 2:1 ## Fixed * Fixed ancient bug where custom missiles launched using the launch table would not use the accuracy calculation and always be pin-point accurate diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineArcWelder.java b/src/main/java/com/hbm/inventory/gui/GUIMachineArcWelder.java index e37e7cf05..ae993fb9a 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineArcWelder.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineArcWelder.java @@ -30,6 +30,8 @@ public class GUIMachineArcWelder extends GuiInfoContainer { welder.tank.renderTankInfo(this, x, y, guiLeft + 35, guiTop + 63, 34, 16); this.drawElectricityInfo(this, x, y, guiLeft + 152, guiTop + 18, 16, 52, welder.getPower(), welder.getMaxPower()); + + this.drawCustomInfoStat(x, y, guiLeft + 78, guiTop + 67, 8, 8, guiLeft + 78, guiTop + 67, this.getUpgradeInfo(welder)); } @Override @@ -54,7 +56,8 @@ public class GUIMachineArcWelder extends GuiInfoContainer { if(welder.power >= welder.consumption) { drawTexturedModalRect(guiLeft + 156, guiTop + 4, 176, 52, 9, 12); } - + + this.drawInfoPanel(guiLeft + 78, guiTop + 67, 8, 8, 8); welder.tank.renderTank(guiLeft + 35, guiTop + 79, this.zLevel, 34, 16, 1); } } diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineAssembler.java b/src/main/java/com/hbm/inventory/gui/GUIMachineAssembler.java index 31ebd23ec..795d8882b 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineAssembler.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineAssembler.java @@ -41,12 +41,7 @@ public class GUIMachineAssembler extends GuiInfoContainer { String[] templateText = I18nUtil.resolveKeyArray("desc.gui.template"); this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 16, 16, 16, guiLeft - 8, guiTop + 16 + 16, templateText); - String[] upgradeText = new String[3]; - upgradeText[0] = I18nUtil.resolveKey("desc.gui.upgrade"); - upgradeText[1] = I18nUtil.resolveKey("desc.gui.upgrade.speed"); - upgradeText[2] = I18nUtil.resolveKey("desc.gui.upgrade.power"); - - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 141, guiTop + 40, 8, 8, guiLeft + 225, guiTop + 40 + 16 + 8, upgradeText); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 141, guiTop + 40, 8, 8, guiLeft + 225, guiTop + 40 + 16 + 8, this.getUpgradeInfo(assembler)); } @Override diff --git a/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java b/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java index 1f8d20881..b07d3a19c 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java +++ b/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java @@ -22,6 +22,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.gui.GuiTextField; +import net.minecraft.client.renderer.Tessellator; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumChatFormatting; @@ -102,11 +103,12 @@ public class GUIRBMKConsole extends GuiScreen { } } - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 6, guiTop + 70, 10, 10, mouseX, mouseY, new String[]{ "Select red group" } ); - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 17, guiTop + 70, 10, 10, mouseX, mouseY, new String[]{ "Select yellow group" } ); - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 28, guiTop + 70, 10, 10, mouseX, mouseY, new String[]{ "Select green group" } ); - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 39, guiTop + 70, 10, 10, mouseX, mouseY, new String[]{ "Select blue group" } ); - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 50, guiTop + 70, 10, 10, mouseX, mouseY, new String[]{ "Select purple group" } ); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 6, guiTop + 70, 10, 10, mouseX, mouseY, new String[]{ EnumChatFormatting.RED + "Left click: Select red group", EnumChatFormatting.RED + "Right click: Assign red group" } ); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 17, guiTop + 70, 10, 10, mouseX, mouseY, new String[]{ EnumChatFormatting.YELLOW + "Left click: Select yellow group", EnumChatFormatting.YELLOW + "Right click: Assign yellow group" } ); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 28, guiTop + 70, 10, 10, mouseX, mouseY, new String[]{ EnumChatFormatting.GREEN + "Left click: Select green group", EnumChatFormatting.GREEN + "Right click: Assign green group" } ); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 39, guiTop + 70, 10, 10, mouseX, mouseY, new String[]{ EnumChatFormatting.BLUE + "Left click: Select blue group", EnumChatFormatting.BLUE + "Right click: Assign blue group" } ); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 50, guiTop + 70, 10, 10, mouseX, mouseY, new String[]{ EnumChatFormatting.LIGHT_PURPLE + "Left click: Select purple group", EnumChatFormatting.LIGHT_PURPLE + "Right click: Assign purple group" } ); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 70, guiTop + 82, 12, 12, mouseX, mouseY, new String[]{ "Cycle steam channel compressor setting" } ); } public void drawCustomInfoStat(int mouseX, int mouseY, int x, int y, int width, int height, int tPosX, int tPosY, String[] text) { @@ -116,9 +118,12 @@ public class GUIRBMKConsole extends GuiScreen { } @Override - protected void mouseClicked(int mouseX, int mouseY, int i) { - super.mouseClicked(mouseX, mouseY, i); - this.field.mouseClicked(mouseX, mouseY, i); + protected void mouseClicked(int mouseX, int mouseY, int key) { + super.mouseClicked(mouseX, mouseY, key); + this.field.mouseClicked(mouseX, mouseY, key); + + int LEFT_CLICK = 0; + int RIGTH_CLICK = 1; int bX = 86; int bY = 11; @@ -158,19 +163,54 @@ public class GUIRBMKConsole extends GuiScreen { return; } + //compressor + if(guiLeft + 70 <= mouseX && guiLeft + 70 + 12 > mouseX && guiTop + 82 < mouseY && guiTop + 82 + 12 >= mouseY) { + NBTTagCompound control = new NBTTagCompound(); + control.setBoolean("compressor", true); + List ints = new ArrayList(); + for(int j = 0; j < console.columns.length; j++) { + if(console.columns[j] != null && console.columns[j].type == ColumnType.BOILER && this.selection[j]) { + ints.add(j); + } + } + int[] cols = new int[ints.size()]; + for(int i = 0; i < cols.length; i++) cols[i] = ints.get(i); + control.setIntArray("cols", cols); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(control, console.xCoord, console.yCoord, console.zCoord)); + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1F)); + } + //select color groups for(int k = 0; k < 5; k++) { if(guiLeft + 6 + k * 11 <= mouseX && guiLeft + 6 + k * 11 + 10 > mouseX && guiTop + 70 < mouseY && guiTop + 70 + 10 >= mouseY) { - this.selection = new boolean[15 * 15]; - for(int j = 0; j < console.columns.length; j++) { + if(key == LEFT_CLICK) { + this.selection = new boolean[15 * 15]; - if(console.columns[j] != null && console.columns[j].type == ColumnType.CONTROL && console.columns[j].data.getShort("color") == k) { - this.selection[j] = true; + for(int j = 0; j < console.columns.length; j++) { + + if(console.columns[j] != null && console.columns[j].type == ColumnType.CONTROL && console.columns[j].data.getShort("color") == k) { + this.selection[j] = true; + } } } + if(key == RIGTH_CLICK) { + NBTTagCompound control = new NBTTagCompound(); + control.setByte("assignColor", (byte) k); + List ints = new ArrayList(); + for(int j = 0; j < console.columns.length; j++) { + if(console.columns[j] != null && console.columns[j].type == ColumnType.CONTROL && this.selection[j]) { + ints.add(j); + } + } + int[] cols = new int[ints.size()]; + for(int i = 0; i < cols.length; i++) cols[i] = ints.get(i); + control.setIntArray("cols", cols); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(control, console.xCoord, console.yCoord, console.zCoord)); + } + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 0.8F + k * 0.1F)); return; } @@ -358,6 +398,41 @@ public class GUIRBMKConsole extends GuiScreen { drawTexturedModalRect(guiLeft + x, guiTop + y, 0, 192, 10, 10); } + int highest = Integer.MIN_VALUE; + int lowest = Integer.MAX_VALUE; + + for(int i : console.fluxBuffer) { + if(i > highest) highest = i; + if(i < lowest) lowest = i; + } + + GL11.glDisable(GL11.GL_TEXTURE_2D); + GL11.glLineWidth(2F); + Tessellator tess = Tessellator.instance; + tess.startDrawing(GL11.GL_LINES); + tess.setColorOpaque_I(0x00ff00); + int range = highest - lowest; + for(int i = 0; i < console.fluxBuffer.length - 1; i++) { + for(int j = 0; j < 2; j++) { + int k = i + j; + int flux = console.fluxBuffer[k]; + double x = guiLeft + 7 + k * 74D / console.fluxBuffer.length; + double y = guiTop + 127 - (flux - lowest) * 24D / Math.max(range, 1); + tess.addVertex(x, y, this.zLevel + 10); + } + } + tess.draw(); + GL11.glEnable(GL11.GL_TEXTURE_2D); + + GL11.glPushMatrix(); + double scale = 0.5D; + GL11.glScaled(scale, scale, 1); + this.fontRendererObj.drawString(highest + "", (int) ((guiLeft + 8) / scale), (int) ((guiTop + 98) / scale), 0x00ff00); + this.fontRendererObj.drawString(highest + "", (int) ((guiLeft + 80 - this.fontRendererObj.getStringWidth(highest + "") * scale) / scale), (int) ((guiTop + 98) / scale), 0x00ff00); + this.fontRendererObj.drawString(lowest + "", (int) ((guiLeft + 8) / scale), (int) ((guiTop + 133 - this.fontRendererObj.FONT_HEIGHT * scale) / scale), 0x00ff00); + this.fontRendererObj.drawString(lowest + "", (int) ((guiLeft + 80 - this.fontRendererObj.getStringWidth(lowest + "") * scale) / scale), (int) ((guiTop + 133 - this.fontRendererObj.FONT_HEIGHT * scale) / scale), 0x00ff00); + GL11.glPopMatrix(); + this.field.drawTextBox(); } diff --git a/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java b/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java index 1ae9a28e9..51bc6d957 100644 --- a/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java +++ b/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java @@ -1,5 +1,6 @@ package com.hbm.inventory.gui; +import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator; import java.util.List; @@ -7,8 +8,11 @@ import java.util.List; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; +import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.RefStrings; +import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; @@ -18,6 +22,7 @@ import net.minecraft.client.renderer.entity.RenderItem; import net.minecraft.inventory.Container; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ResourceLocation; public abstract class GuiInfoContainer extends GuiContainer { @@ -45,6 +50,33 @@ public abstract class GuiInfoContainer extends GuiContainer { this.func_146283_a(Arrays.asList(text), x, y); } + /** Automatically grabs upgrade info out of the tile entity if it's a IUpgradeInfoProvider and crams the available info into a list for display. Automation, yeah! */ + public List getUpgradeInfo(TileEntity tile) { + List lines = new ArrayList(); + + if(tile instanceof IUpgradeInfoProvider) { + IUpgradeInfoProvider provider = (IUpgradeInfoProvider) tile; + + lines.add(I18nUtil.resolveKey("upgrade.gui.title")); + + for(UpgradeType type : UpgradeType.values()) { + if(provider.canProvideInfo(type, 0, false)) { + int maxLevel = provider.getMaxLevel(type); + switch(type) { + case SPEED: lines.add(I18nUtil.resolveKey("upgrade.gui.speed", maxLevel)); break; + case POWER: lines.add(I18nUtil.resolveKey("upgrade.gui.power", maxLevel)); break; + case EFFECT: lines.add(I18nUtil.resolveKey("upgrade.gui.effectiveness", maxLevel)); break; + case AFTERBURN: lines.add(I18nUtil.resolveKey("upgrade.gui.afterburner", maxLevel)); break; + case OVERDRIVE: lines.add(I18nUtil.resolveKey("upgrade.gui.overdrive", maxLevel)); break; + default: break; + } + } + } + } + + return lines; + } + @Deprecated public void drawCustomInfo(GuiInfoContainer gui, int mouseX, int mouseY, int x, int y, int width, int height, String[] text) { if(x <= mouseX && x + width > mouseX && y < mouseY && y + height >= mouseY) diff --git a/src/main/java/com/hbm/inventory/recipes/CompressorRecipes.java b/src/main/java/com/hbm/inventory/recipes/CompressorRecipes.java index c1cc077d9..9b5ef555d 100644 --- a/src/main/java/com/hbm/inventory/recipes/CompressorRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CompressorRecipes.java @@ -25,6 +25,8 @@ public class CompressorRecipes extends SerializableRecipe { recipes.put(new Pair(Fluids.PETROLEUM, 0), new CompressorRecipe(2_000, new FluidStack(Fluids.PETROLEUM, 2_000, 1), 20)); recipes.put(new Pair(Fluids.PETROLEUM, 1), new CompressorRecipe(2_000, new FluidStack(Fluids.LPG, 1_000, 0), 20)); + + recipes.put(new Pair(Fluids.BLOOD, 3), new CompressorRecipe(1_000, new FluidStack(Fluids.OIL, 500, 0), 100)); } public static class CompressorRecipe { diff --git a/src/main/java/com/hbm/tileentity/IUpgradeInfoProvider.java b/src/main/java/com/hbm/tileentity/IUpgradeInfoProvider.java index 8c8396573..00ecd8ab1 100644 --- a/src/main/java/com/hbm/tileentity/IUpgradeInfoProvider.java +++ b/src/main/java/com/hbm/tileentity/IUpgradeInfoProvider.java @@ -3,9 +3,22 @@ package com.hbm.tileentity; import java.util.List; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; +import com.hbm.util.I18nUtil; + +import net.minecraft.block.Block; +import net.minecraft.util.EnumChatFormatting; public interface IUpgradeInfoProvider { + /** If any of the automated display stuff should be applied for this upgrade. A level of 0 is used by the GUI's indicator, as opposed to the item tooltips */ public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo); public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo); + public int getMaxLevel(UpgradeType type); + + public static String getStandardLabel(Block block) { + return EnumChatFormatting.GREEN.YELLOW + ">>> " + I18nUtil.resolveKey(block.getUnlocalizedName() + ".name") + " <<<"; + } + + public static final String KEY_CONSUMPTION = "upgrade.consumption"; + public static final String KEY_SPEED = "upgrade.speed"; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java index aafd90a83..920fd6458 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java @@ -1,5 +1,8 @@ package com.hbm.tileentity.machine; +import java.util.List; + +import com.hbm.blocks.ModBlocks; import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.inventory.UpgradeManager; @@ -8,7 +11,9 @@ import com.hbm.inventory.gui.GUIFurnaceIron; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.module.ModuleBurnTime; import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -19,10 +24,11 @@ import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.FurnaceRecipes; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityFurnaceIron extends TileEntityMachineBase implements IGUIProvider { +public class TileEntityFurnaceIron extends TileEntityMachineBase implements IGUIProvider, IUpgradeInfoProvider { public int maxBurnTime; public int burnTime; @@ -234,4 +240,23 @@ public class TileEntityFurnaceIron extends TileEntityMachineBase implements IGUI public double getMaxRenderDistanceSquared() { return 65536.0D; } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.furnace_iron)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_SPEED, "-" + (level * 50 / 3) + "%")); + } + } + + @Override + public int getMaxLevel(UpgradeType type) { + if(type == UpgradeType.SPEED) return 3; + return 0; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java index 669e4c71a..a2933ca1d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java @@ -1,6 +1,9 @@ package com.hbm.tileentity.machine; +import java.util.List; + import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.blocks.ModBlocks; import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerMachineArcWelder; import com.hbm.inventory.fluid.Fluids; @@ -14,7 +17,9 @@ import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.IConditionalInvAccess; import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.BlockPos; import com.hbm.util.fauxpointtwelve.DirPos; @@ -30,10 +35,11 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineArcWelder extends TileEntityMachineBase implements IEnergyUser, IFluidStandardReceiver, IConditionalInvAccess, IGUIProvider { +public class TileEntityMachineArcWelder extends TileEntityMachineBase implements IEnergyUser, IFluidStandardReceiver, IConditionalInvAccess, IGUIProvider, IUpgradeInfoProvider { public long power; public long maxPower = 2_000; @@ -340,4 +346,29 @@ public class TileEntityMachineArcWelder extends TileEntityMachineBase implements public double getMaxRenderDistanceSquared() { return 65536.0D; } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.POWER; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_electric_furnace_off)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_SPEED, "-" + (level * 100 / 6) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 100) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (level * 100 / 6) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_SPEED, "+" + (level * 100 / 3) + "%")); + } + } + + @Override + public int getMaxLevel(UpgradeType type) { + if(type == UpgradeType.SPEED) return 3; + if(type == UpgradeType.POWER) return 3; + return 0; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java index 3c0893c5f..cddb1a40f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java @@ -1,5 +1,6 @@ package com.hbm.tileentity.machine; +import java.util.List; import java.util.Random; import com.hbm.blocks.BlockDummyable; @@ -14,6 +15,9 @@ import com.hbm.items.machine.ItemAssemblyTemplate; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.main.MainRegistry; import com.hbm.sound.AudioWrapper; +import com.hbm.tileentity.IUpgradeInfoProvider; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IBatteryItem; @@ -25,10 +29,11 @@ import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineAssembler extends TileEntityMachineAssemblerBase { +public class TileEntityMachineAssembler extends TileEntityMachineAssemblerBase implements IUpgradeInfoProvider { public int recipe = -1; @@ -265,4 +270,33 @@ public class TileEntityMachineAssembler extends TileEntityMachineAssemblerBase { public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineAssembler(player.inventory, this); } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.POWER || type == UpgradeType.OVERDRIVE; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_assembler)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_SPEED, "-" + (level * 25) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 300) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (level * 30) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_SPEED, "+" + (level * 5) + "%")); + } + if(type == UpgradeType.OVERDRIVE) { + info.add((BobMathUtil.getBlink() ? EnumChatFormatting.RED : EnumChatFormatting.DARK_GRAY) + "YES"); + } + } + + @Override + public int getMaxLevel(UpgradeType type) { + if(type == UpgradeType.SPEED) return 3; + if(type == UpgradeType.POWER) return 3; + if(type == UpgradeType.OVERDRIVE) return 3; + return 0; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java index 3f7413677..f838e1082 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java @@ -88,7 +88,7 @@ public class TileEntityMachineChemfac extends TileEntityMachineChemplantBase { this.speed -= speedLevel * 15; this.consumption += speedLevel * 300; this.speed += powerLevel * 5; - this.consumption -= powerLevel * 30; + this.consumption -= powerLevel * 20; this.speed /= (overLevel + 1); this.consumption *= (overLevel + 1); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java index edc19ee83..d78b87c9f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java @@ -124,7 +124,7 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements this.speed -= speedLevel * 25; this.consumption += speedLevel * 300; this.speed += powerLevel * 5; - this.consumption -= powerLevel * 30; + this.consumption -= powerLevel * 20; this.speed /= (overLevel + 1); this.consumption *= (overLevel + 1); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java index 89be677fc..fa99ad805 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java @@ -84,6 +84,7 @@ public class TileEntityMachineCompressor extends TileEntityMachineBase implement if(rec != null) timeBase = rec.duration; //there is a reason to do this but i'm not telling you + // ^ a few months later i have to wonder what the fuck this guy was on about, and if i ever see him i will punch him in the nuts if(timeBase == this.processTimeBase) this.processTime = speedLevel == 3 ? 10 : speedLevel == 2 ? 20 : speedLevel == 1 ? 60 : timeBase; else this.processTime = timeBase / (speedLevel + 1); this.powerRequirement = this.powerRequirementBase / (powerLevel + 1); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java index 4c546e019..8757970f5 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java @@ -277,14 +277,21 @@ public class TileEntityMachineElectricFurnace extends TileEntityMachineBase impl @Override public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { - info.add(EnumChatFormatting.GREEN.YELLOW + ">>> " + I18nUtil.resolveKey(ModBlocks.machine_electric_furnace_off.getUnlocalizedName() + ".name") + " <<<"); + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_electric_furnace_off)); if(type == UpgradeType.SPEED) { - info.add(EnumChatFormatting.GREEN + "Process time -" + (level * 25) + "%"); - info.add(EnumChatFormatting.RED + "Consumption +" + (level * 100) + "%"); + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_SPEED, "-" + (level * 25) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 100) + "%")); } if(type == UpgradeType.POWER) { - info.add(EnumChatFormatting.GREEN + "Consumption -" + (level * 30) + "%"); - info.add(EnumChatFormatting.RED + "Process time +" + (level * 10) + "%"); + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (level * 30) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_SPEED, "+" + (level * 10) + "%")); } } + + @Override + public int getMaxLevel(UpgradeType type) { + if(type == UpgradeType.SPEED) return 3; + if(type == UpgradeType.POWER) return 3; + return 0; + } } \ No newline at end of file diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java index 44baadde9..9c96a4893 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java @@ -263,17 +263,21 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I public void receiveControl(NBTTagCompound data) { if(data.hasKey("compression")) { - - FluidType type = steam.getTankType(); - if(type == Fluids.STEAM) { steam.setTankType(Fluids.HOTSTEAM); steam.setFill(steam.getFill() / 10); } - if(type == Fluids.HOTSTEAM) { steam.setTankType(Fluids.SUPERHOTSTEAM); steam.setFill(steam.getFill() / 10); } - if(type == Fluids.SUPERHOTSTEAM) { steam.setTankType(Fluids.ULTRAHOTSTEAM); steam.setFill(steam.getFill() / 10); } - if(type == Fluids.ULTRAHOTSTEAM) { steam.setTankType(Fluids.STEAM); steam.setFill(Math.min(steam.getFill() * 1000, steam.getMaxFill())); } - - this.markDirty(); + this.cyceCompressor(); } } + public void cyceCompressor() { + + FluidType type = steam.getTankType(); + if(type == Fluids.STEAM) { steam.setTankType(Fluids.HOTSTEAM); steam.setFill(steam.getFill() / 10); } + if(type == Fluids.HOTSTEAM) { steam.setTankType(Fluids.SUPERHOTSTEAM); steam.setFill(steam.getFill() / 10); } + if(type == Fluids.SUPERHOTSTEAM) { steam.setTankType(Fluids.ULTRAHOTSTEAM); steam.setFill(steam.getFill() / 10); } + if(type == Fluids.ULTRAHOTSTEAM) { steam.setTankType(Fluids.STEAM); steam.setFill(Math.min(steam.getFill() * 1000, steam.getMaxFill())); } + + this.markDirty(); + } + @Override public void onMelt(int reduce) { diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java index dce56b111..ee5690703 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java @@ -12,6 +12,7 @@ import com.hbm.inventory.gui.GUIRBMKConsole; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKControlManual.RBMKColor; +import com.hbm.util.EnumUtil; import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; @@ -33,7 +34,8 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon private int targetY; private int targetZ; - public int[] fluxBuffer = new int[20]; + public static final int fluxDisplayBuffer = 60; + public int[] fluxBuffer = new int[fluxDisplayBuffer]; //made this one-dimensional because it's a lot easier to serialize public RBMKColumn[] columns = new RBMKColumn[15 * 15]; @@ -104,7 +106,7 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon this.fluxBuffer[i] = this.fluxBuffer[i + 1]; } - this.fluxBuffer[19] = (int) flux; + this.fluxBuffer[this.fluxBuffer.length - 1] = (int) flux; } @SuppressWarnings("incomplete-switch") //shut up @@ -287,6 +289,40 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon Integer[] cols = list.toArray(new Integer[0]); this.screens[slot].columns = cols; } + + if(data.hasKey("assignColor")) { + int color = data.getByte("assignColor"); + int[] cols = data.getIntArray("cols"); + + for(int i : cols) { + int x = i % 15 - 7; + int z = i / 15 - 7; + + TileEntity te = worldObj.getTileEntity(targetX + x, targetY, targetZ + z); + + if(te instanceof TileEntityRBMKControlManual) { + TileEntityRBMKControlManual rod = (TileEntityRBMKControlManual) te; + rod.color = EnumUtil.grabEnumSafely(RBMKColor.class, color); + te.markDirty(); + } + } + } + + if(data.hasKey("compressor")) { + int[] cols = data.getIntArray("cols"); + + for(int i : cols) { + int x = i % 15 - 7; + int z = i / 15 - 7; + + TileEntity te = worldObj.getTileEntity(targetX + x, targetY, targetZ + z); + + if(te instanceof TileEntityRBMKBoiler) { + TileEntityRBMKBoiler rod = (TileEntityRBMKBoiler) te; + rod.cyceCompressor(); + } + } + } } @Override diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 9cd2d7a8f..8edc158e4 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -4617,6 +4617,9 @@ turret.off=AUS turret.on=AN turret.players=Spieler anzielen: %s +upgrade.consumption=Verbrauch %s +upgrade.speed=Verarbeitungszeit %s + wavelengths.name.ir=Infrarot wavelengths.name.visible=Sichtbares Licht wavelengths.name.uv=Ultraviolett diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 101515558..5d2ef5a8d 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -885,16 +885,11 @@ desc.gui.template=§9Templates§r$Templates can be made by$using the Machine Tem desc.gui.turbinegas.automode=§2Automatic Turbine Throttling Mode§r$By clicking the "AUTO" button, the turbine$will automatically adjust the power production$based on the power required from the network desc.gui.turbinegas.fuels=§6Accepted fuels:§r desc.gui.turbinegas.warning=§cFuel or lubricant level low!§r -desc.gui.upgrade=§lAcceptable Upgrades:§r -desc.gui.upgrade.afterburner= * §dAfterburner§r: Stacks to level 3 -desc.gui.upgrade.effectiveness= * §aEffectiveness§r: Stacks to level 3 -desc.gui.upgrade.overdrive= * §7Overdrive§r: Stacks to level 3 -desc.gui.upgrade.power= * §1Power-Saving§r: Stacks to level 3 -desc.gui.upgrade.speed= * §4Speed§r: Stacks to level 3 desc.gui.zirnox.coolant=§3Coolant§r$CO2 transfers heat from the core to the water.$This will boil it into super dense steam.$The efficiency of cooling and steam production$is based on pressure. desc.gui.zirnox.pressure=§6Pressure§r$Pressure can be reduced by venting CO2.$However, too low a pressure, and cooling$efficiency and steam production will be reduced.$Look out for meltdowns! desc.gui.zirnox.warning1=§cError:§r Water is required for$the reactor to function properly! desc.gui.zirnox.warning2=§cError:§r CO2 is required for$the reactor to function properly! + desc.item.ammo.con_accuracy2=- Highly decreased accuracy desc.item.ammo.con_damage=- Highly decreased damage desc.item.ammo.con_heavy_wear=- Highly increased wear @@ -5624,6 +5619,16 @@ turret.off=OFF turret.on=ON turret.players=Target Players: %s +upgrade.consumption=Consumption %s +upgrade.speed=Process time %s + +upgrade.gui.title=§lAcceptable Upgrades:§r +upgrade.gui.afterburner= * §dAfterburner§r: Stacks to level %s +upgrade.gui.effectiveness= * §aEffectiveness§r: Stacks to level %s +upgrade.gui.overdrive= * §7Overdrive§r: Stacks to level %s +upgrade.gui.power= * §9Power-Saving§r: Stacks to level %s +upgrade.gui.speed= * §4Speed§r: Stacks to level %s + wavelengths.name.ir=Infrared wavelengths.name.visible=Visible Light wavelengths.name.uv=Ultraviolet diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_arc_welder.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_arc_welder.png index 14366acc325432628c0d5dd3f694de688a8539d3..82c982cfa2527ba924a7a5ec95b3209ea8d52aef 100644 GIT binary patch literal 2981 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 SwRBim&(7M>>Y;`2um1w3mmDwv literal 2952 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 diff --git a/src/main/resources/assets/hbm/textures/gui/reactors/gui_rbmk_console.png b/src/main/resources/assets/hbm/textures/gui/reactors/gui_rbmk_console.png index 8771329375e75fd9e63ccd3ce38691e5f6f7106f..5222274f917d11bd982ed2decc290c11654942b3 100644 GIT binary patch literal 6651 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 pii(M~yl5b{TI@00c{Q9=186Rwdngd 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 O1<=(r(kNAPi25(&%t8JD From 1d92906dd7161779185f2d1949fc690d014429ea Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 10 Dec 2023 18:58:26 +0100 Subject: [PATCH 431/432] upgrade crap, funny new stamps --- changelog | 6 + .../handler/guncfg/GunDetonatorFactory.java | 1 + .../handler/nei/ExposureChamberHandler.java | 27 ++++ .../hbm/handler/nei/PressRecipeHandler.java | 2 +- .../inventory/recipes/AssemblerRecipes.java | 11 ++ .../recipes/ExposureChamberRecipes.java | 20 +++ .../hbm/inventory/recipes/PressRecipes.java | 12 +- src/main/java/com/hbm/items/ItemEnums.java | 4 + src/main/java/com/hbm/items/ModItems.java | 6 + .../java/com/hbm/items/machine/ItemStamp.java | 29 +++- .../com/hbm/items/machine/ItemStampBook.java | 42 ++++++ .../java/com/hbm/main/CraftingManager.java | 2 +- .../java/com/hbm/main/ModEventHandler.java | 15 ++- src/main/java/com/hbm/main/NEIConfig.java | 1 + .../tileentity/RenderExposureChamber.java | 94 ++++++++++++- .../hbm/tileentity/IUpgradeInfoProvider.java | 7 +- .../machine/TileEntityElectrolyser.java | 29 +++- .../machine/TileEntityFurnaceIron.java | 2 +- .../machine/TileEntityMachineArcWelder.java | 4 +- .../machine/TileEntityMachineAssembler.java | 6 +- .../machine/TileEntityMachineAssemfac.java | 37 ++++- .../machine/TileEntityMachineCentrifuge.java | 37 ++++- .../machine/TileEntityMachineChemfac.java | 36 ++++- .../machine/TileEntityMachineChemplant.java | 36 ++++- .../machine/TileEntityMachineCompressor.java | 39 +++++- .../TileEntityMachineCrystallizer.java | 127 ++++++++---------- .../machine/TileEntityMachineEPress.java | 27 +++- .../TileEntityMachineElectricFurnace.java | 4 +- .../machine/TileEntityMachineExcavator.java | 29 +++- .../TileEntityMachineExposureChamber.java | 85 +++++++++++- .../machine/TileEntityMachineMiningLaser.java | 42 +++++- .../machine/TileEntityMachineMixer.java | 38 +++++- .../machine/TileEntityMachineTurbofan.java | 25 +++- .../oil/TileEntityMachineFrackingTower.java | 25 ++++ .../oil/TileEntityMachineGasFlare.java | 29 +++- .../oil/TileEntityMachineLiquefactor.java | 31 ++++- .../machine/oil/TileEntityMachineOilWell.java | 25 ++++ .../oil/TileEntityMachinePumpjack.java | 25 ++++ .../oil/TileEntityMachineSolidifier.java | 32 ++++- .../machine/oil/TileEntityOilDrillBase.java | 17 ++- .../turret/TileEntityTurretMaxwell.java | 43 +++++- .../generator/room/TestDungeonRoom8.java | 17 ++- src/main/resources/assets/hbm/lang/de_DE.lang | 18 +++ src/main/resources/assets/hbm/lang/en_US.lang | 25 +++- .../hbm/textures/items/fuel_tank_small.png | Bin 306 -> 325 bytes .../assets/hbm/textures/items/page_of_.png | Bin 0 -> 241 bytes .../assets/hbm/textures/items/stamp_book.png | Bin 0 -> 685 bytes .../models/machines/exposure_chamber.png | Bin 6849 -> 6848 bytes 48 files changed, 1047 insertions(+), 122 deletions(-) create mode 100644 src/main/java/com/hbm/handler/nei/ExposureChamberHandler.java create mode 100644 src/main/java/com/hbm/items/machine/ItemStampBook.java create mode 100644 src/main/resources/assets/hbm/textures/items/page_of_.png create mode 100644 src/main/resources/assets/hbm/textures/items/stamp_book.png diff --git a/changelog b/changelog index b0650e213..57b1ddfe2 100644 --- a/changelog +++ b/changelog @@ -12,6 +12,10 @@ * Stylish as hell * Decoy missile * A cheap tier 1 missile that shows up on radar screens as tier 4 (eg. nuclear) missiles +* Printing press stamps + * 8 different stamps for printing certain pages + * If a meteor dungeon safe is generated without a black book inside, it will generate tow random stamps instead + * With all 8 stamps, allows you to print your own black book ## Changed * Reduced the blast resistance of the large doors from absurdly high to still very but not quite as high @@ -36,6 +40,8 @@ * The flux display is now functional. It will display the flux curve of the last 30 seconds, as well as labels for the total flux level. * With the color assigning buttons and the flux display finished, the console is now finally complete * Compressing blood at 4 PU now turns it into crude oil at a ratio of 2:1 +* Increased the cap for the overdrive upgrade in acidizers, tier 2 should now yield the proper amount and tier 3 should now be better than tier 2 +* The tooltip of valid upgrades now changes when a compatible machine GUI is open ## Fixed * Fixed ancient bug where custom missiles launched using the launch table would not use the accuracy calculation and always be pin-point accurate diff --git a/src/main/java/com/hbm/handler/guncfg/GunDetonatorFactory.java b/src/main/java/com/hbm/handler/guncfg/GunDetonatorFactory.java index 093a3d90b..2d76d18e6 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunDetonatorFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunDetonatorFactory.java @@ -60,6 +60,7 @@ public class GunDetonatorFactory { config.config.add(BulletConfigSyncingUtil.G12_DU); config.config.add(BulletConfigSyncingUtil.G12_SLEEK); config.config.add(BulletConfigSyncingUtil.G12_AM); + config.config.add(BulletConfigSyncingUtil.G12_PERCUSSION); config.config.add(BulletConfigSyncingUtil.NUKE_NORMAL); config.config.add(BulletConfigSyncingUtil.NUKE_LOW); config.config.add(BulletConfigSyncingUtil.NUKE_SAFE); diff --git a/src/main/java/com/hbm/handler/nei/ExposureChamberHandler.java b/src/main/java/com/hbm/handler/nei/ExposureChamberHandler.java new file mode 100644 index 000000000..4969763e4 --- /dev/null +++ b/src/main/java/com/hbm/handler/nei/ExposureChamberHandler.java @@ -0,0 +1,27 @@ +package com.hbm.handler.nei; + +import java.awt.Rectangle; + +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.gui.GUIMachineExposureChamber; +import com.hbm.inventory.recipes.ExposureChamberRecipes; + +public class ExposureChamberHandler extends NEIUniversalHandler { + + public ExposureChamberHandler() { + super("Exposure Chamber", ModBlocks.machine_exposure_chamber, ExposureChamberRecipes.getRecipes()); + } + + @Override + public String getKey() { + return "ntmExposure"; + } + + @Override + public void loadTransferRects() { + super.loadTransferRects(); + transferRectsGui.add(new RecipeTransferRect(new Rectangle(31, 28, 41, 10), "ntmExposure")); + guiGui.add(GUIMachineExposureChamber.class); + RecipeTransferRectHandler.registerRectsToGuis(guiGui, transferRectsGui); + } +} diff --git a/src/main/java/com/hbm/handler/nei/PressRecipeHandler.java b/src/main/java/com/hbm/handler/nei/PressRecipeHandler.java index cc776c8fd..fbc14c5cd 100644 --- a/src/main/java/com/hbm/handler/nei/PressRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/PressRecipeHandler.java @@ -110,7 +110,7 @@ public class PressRecipeHandler extends TemplateRecipeHandler { if(in.matchesRecipe(ingredient, true)) this.arecipes.add(new SmeltingSet(ItemStamp.stamps.get(recipe.getKey().getValue()), new ComparableStack(ingredient), recipe.getValue())); - else if(ingredient.getItem() instanceof ItemStamp && ((ItemStamp)ingredient.getItem()).type == stamp) + else if(ingredient.getItem() instanceof ItemStamp && ((ItemStamp)ingredient.getItem()).getStampType(ingredient.getItem(), ingredient.getItemDamage()) == stamp) this.arecipes.add(new SmeltingSet(ingredient, recipe.getKey().getKey(), recipe.getValue())); } } diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 6e69849c6..33b9a227b 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -998,6 +998,17 @@ public class AssemblerRecipes { new ComparableStack(ModItems.coil_copper, 16), new ComparableStack(ModItems.circuit_gold, 2) }, 200); + + makeRecipe(new ComparableStack(ModBlocks.machine_exposure_chamber, 1), new AStack[] { + !exp ? new OreDictStack(AL.plateCast(), 12) : new OreDictStack(AL.heavyComp(), 1), + new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), + new OreDictStack(ANY_HARDPLASTIC.ingot(), 12), + new OreDictStack(ALLOY.wireDense(), 32), + new ComparableStack(ModItems.motor_desh, 2), + new ComparableStack(ModItems.circuit_gold, 3), + new ComparableStack(ModBlocks.capacitor_tantalium, 1), + new ComparableStack(ModBlocks.glass_quartz, 16) + }, 200); makeRecipe(new ComparableStack(ModItems.euphemium_capacitor, 1), new AStack[] { diff --git a/src/main/java/com/hbm/inventory/recipes/ExposureChamberRecipes.java b/src/main/java/com/hbm/inventory/recipes/ExposureChamberRecipes.java index d7e3ca925..cb42e3140 100644 --- a/src/main/java/com/hbm/inventory/recipes/ExposureChamberRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ExposureChamberRecipes.java @@ -2,6 +2,7 @@ package com.hbm.inventory.recipes; import java.io.IOException; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import com.google.gson.JsonElement; @@ -33,6 +34,25 @@ public class ExposureChamberRecipes extends SerializableRecipe { return null; } + public static HashMap getRecipes() { + + HashMap recipes = new HashMap(); + + for(ExposureChamberRecipe recipe : ExposureChamberRecipes.recipes) { + + Object[] array = new Object[2]; + + array[1] = recipe.particle; + AStack stack = recipe.ingredient.copy(); + stack.stacksize = 8; + array[0] = stack; + + recipes.put(array, recipe.output); + } + + return recipes; + } + @Override public String getFileName() { return "hbmExposureChamber.json"; diff --git a/src/main/java/com/hbm/inventory/recipes/PressRecipes.java b/src/main/java/com/hbm/inventory/recipes/PressRecipes.java index 8c6498c8f..aa3449238 100644 --- a/src/main/java/com/hbm/inventory/recipes/PressRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/PressRecipes.java @@ -15,6 +15,7 @@ import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.recipes.loader.SerializableRecipe; import com.hbm.items.ItemEnums.EnumBriquetteType; +import com.hbm.items.ItemEnums.EnumPages; import com.hbm.items.ItemAmmoEnums.Ammo357Magnum; import com.hbm.items.ItemAmmoEnums.Ammo556mm; import com.hbm.items.ItemAmmoEnums.AmmoLunaticSniper; @@ -40,7 +41,7 @@ public class PressRecipes extends SerializableRecipe { if(!(stamp.getItem() instanceof ItemStamp)) return null; - StampType type = ((ItemStamp) stamp.getItem()).type; + StampType type = ((ItemStamp) stamp.getItem()).getStampType(stamp.getItem(), stamp.getItemDamage()); for(Entry, ItemStack> recipe : recipes.entrySet()) { @@ -116,6 +117,15 @@ public class PressRecipes extends SerializableRecipe { makeRecipe(StampType.C50, new ComparableStack(ModItems.assembly_actionexpress), new ItemStack(ModItems.ammo_50ae, 12)); makeRecipe(StampType.C50, new ComparableStack(ModItems.assembly_luna), ModItems.ammo_luna_sniper.stackFromEnum(4, AmmoLunaticSniper.SABOT)); makeRecipe(StampType.C50, new ComparableStack(ModItems.assembly_762), new ItemStack(ModItems.ammo_762, 32)); + + makeRecipe(StampType.PRINTING1, new ComparableStack(Items.paper), DictFrame.fromOne(ModItems.page_of_, EnumPages.PAGE1)); + makeRecipe(StampType.PRINTING2, new ComparableStack(Items.paper), DictFrame.fromOne(ModItems.page_of_, EnumPages.PAGE2)); + makeRecipe(StampType.PRINTING3, new ComparableStack(Items.paper), DictFrame.fromOne(ModItems.page_of_, EnumPages.PAGE3)); + makeRecipe(StampType.PRINTING4, new ComparableStack(Items.paper), DictFrame.fromOne(ModItems.page_of_, EnumPages.PAGE4)); + makeRecipe(StampType.PRINTING5, new ComparableStack(Items.paper), DictFrame.fromOne(ModItems.page_of_, EnumPages.PAGE5)); + makeRecipe(StampType.PRINTING6, new ComparableStack(Items.paper), DictFrame.fromOne(ModItems.page_of_, EnumPages.PAGE6)); + makeRecipe(StampType.PRINTING7, new ComparableStack(Items.paper), DictFrame.fromOne(ModItems.page_of_, EnumPages.PAGE7)); + makeRecipe(StampType.PRINTING8, new ComparableStack(Items.paper), DictFrame.fromOne(ModItems.page_of_, EnumPages.PAGE8)); } public static void makeRecipe(StampType type, AStack in, Item out) { diff --git a/src/main/java/com/hbm/items/ItemEnums.java b/src/main/java/com/hbm/items/ItemEnums.java index 77f435b48..b4d48e009 100644 --- a/src/main/java/com/hbm/items/ItemEnums.java +++ b/src/main/java/com/hbm/items/ItemEnums.java @@ -61,4 +61,8 @@ public class ItemEnums { DIGAMMAUPONTOP, DIGAMMAFOROURRIGHT } + + public static enum EnumPages { + PAGE1, PAGE2, PAGE3, PAGE4, PAGE5, PAGE6, PAGE7, PAGE8 + } } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 539beed9e..211768119 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -762,6 +762,7 @@ public class ModItems { public static Item stamp_desh_plate; public static Item stamp_desh_wire; public static Item stamp_desh_circuit; + public static Item stamp_book; public static Item stamp_357; public static Item stamp_44; @@ -2364,6 +2365,7 @@ public class ModItems { public static Item letter; public static Item book_secret; public static Item book_of_; + public static Item page_of_; public static Item burnt_bark; public static Item smoke1; @@ -3258,6 +3260,7 @@ public class ModItems { stamp_44 = new ItemStamp(1000, StampType.C44).setUnlocalizedName("stamp_44").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_44"); stamp_9 = new ItemStamp(1000, StampType.C9).setUnlocalizedName("stamp_9").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_9"); stamp_50 = new ItemStamp(1000, StampType.C50).setUnlocalizedName("stamp_50").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_50"); + stamp_book = new ItemStampBook().setUnlocalizedName("stamp_book").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":stamp_book"); stamp_desh_357 = new ItemStamp(0, StampType.C357).setUnlocalizedName("stamp_desh_357").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_357_desh"); stamp_desh_44 = new ItemStamp(0, StampType.C44).setUnlocalizedName("stamp_desh_44").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_44_desh"); @@ -5412,6 +5415,7 @@ public class ModItems { letter = new ItemStarterKit().setUnlocalizedName("letter").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":letter"); book_secret = new ItemCustomLore().setUnlocalizedName("book_secret").setCreativeTab(MainRegistry.polaroidID == 11 ? MainRegistry.consumableTab : null).setTextureName(RefStrings.MODID + ":book_secret"); book_of_ = new ItemBook().setUnlocalizedName("book_of_").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":book_of_"); + page_of_ = new ItemEnumMulti(ItemEnums.EnumPages.class, true, false).setUnlocalizedName("page_of_").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":page_of_"); burnt_bark = new ItemCustomLore().setUnlocalizedName("burnt_bark").setCreativeTab(null).setTextureName(RefStrings.MODID + ":burnt_bark"); smoke1 = new Item().setUnlocalizedName("smoke1").setTextureName(RefStrings.MODID + ":smoke1"); @@ -6453,6 +6457,7 @@ public class ModItems { GameRegistry.registerItem(stamp_desh_44, stamp_desh_44.getUnlocalizedName()); GameRegistry.registerItem(stamp_desh_9, stamp_desh_9.getUnlocalizedName()); GameRegistry.registerItem(stamp_desh_50, stamp_desh_50.getUnlocalizedName()); + GameRegistry.registerItem(stamp_book, stamp_book.getUnlocalizedName()); //Molds GameRegistry.registerItem(mold_base, mold_base.getUnlocalizedName()); @@ -7988,6 +7993,7 @@ public class ModItems { GameRegistry.registerItem(glitch, glitch.getUnlocalizedName()); GameRegistry.registerItem(book_secret, book_secret.getUnlocalizedName()); GameRegistry.registerItem(book_of_, book_of_.getUnlocalizedName()); + GameRegistry.registerItem(page_of_, page_of_.getUnlocalizedName()); GameRegistry.registerItem(burnt_bark, burnt_bark.getUnlocalizedName()); //Kits diff --git a/src/main/java/com/hbm/items/machine/ItemStamp.java b/src/main/java/com/hbm/items/machine/ItemStamp.java index fe6986d90..75ed425fa 100644 --- a/src/main/java/com/hbm/items/machine/ItemStamp.java +++ b/src/main/java/com/hbm/items/machine/ItemStamp.java @@ -10,19 +10,27 @@ import net.minecraft.item.ItemStack; public class ItemStamp extends Item { - public StampType type; + protected StampType type; public static final HashMap> stamps = new HashMap(); public ItemStamp(int dura, StampType type) { this.setMaxDamage(dura); this.type = type; + if(type != null) { + this.addStampToList(this, 0, type); + } + } + + protected void addStampToList(Item item, int meta, StampType type) { List list = stamps.get(type); if(list == null) list = new ArrayList(); - list.add(new ItemStack(this)); + ItemStack stack = new ItemStack(item, 1, meta); + + list.add(stack); stamps.put(type, list); } @@ -32,16 +40,27 @@ public class ItemStamp extends Item { list.add("[CREATED USING TEMPLATE FOLDER]"); } - //TODO: give UFFR one (1) good boy token + /** Params can't take an ItemStack, for some reason it crashes during init */ + public StampType getStampType(Item item, int meta) { + return type; + } + public static enum StampType { FLAT, PLATE, WIRE, CIRCUIT, - //DISC, C357, C44, C50, - C9; + C9, + PRINTING1, + PRINTING2, + PRINTING3, + PRINTING4, + PRINTING5, + PRINTING6, + PRINTING7, + PRINTING8; } } diff --git a/src/main/java/com/hbm/items/machine/ItemStampBook.java b/src/main/java/com/hbm/items/machine/ItemStampBook.java new file mode 100644 index 000000000..6fa9906f6 --- /dev/null +++ b/src/main/java/com/hbm/items/machine/ItemStampBook.java @@ -0,0 +1,42 @@ +package com.hbm.items.machine; + +import java.util.List; +import java.util.Locale; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +public class ItemStampBook extends ItemStamp { + + public ItemStampBook() { + super(0, null); + + for(int i = 0; i < 8; i++) { + StampType type = getStampType(this, i); + this.addStampToList(this, i, type); + } + } + + @Override + public StampType getStampType(Item item, int meta) { + meta %= 8; + return StampType.values()[StampType.PRINTING1.ordinal() + meta]; + } + + @Override + @SideOnly(Side.CLIENT) + public void getSubItems(Item item, CreativeTabs tab, List list) { + for(int i = 0; i < 8; i++) { + list.add(new ItemStack(item, 1, i)); + } + } + + @Override + public String getUnlocalizedName(ItemStack stack) { + StampType type = this.getStampType(stack.getItem(), stack.getItemDamage()); + return super.getUnlocalizedName() + "." + type.name().toLowerCase(Locale.US); + } +} diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 386706b30..a9ced44fa 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -606,7 +606,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.key, 1), new Object[] { " B", " B ", "P ", 'P', STEEL.plate(), 'B', ModItems.bolt_tungsten }); addRecipeAuto(new ItemStack(ModItems.key_kit, 1), new Object[] { "PKP", "DTD", "PKP", 'P', GOLD.plate(), 'K', ModItems.key, 'D', DESH.dust(), 'T', KEY_TOOL_SCREWDRIVER }); - addRecipeAuto(new ItemStack(ModItems.key_red, 1), new Object[] { "DSC", "SMS", "KSD", 'C', ModItems.circuit_targeting_tier4, 'M', Items.nether_star, 'K', ModItems.key, 'D', DESH.dust(), 'S', BIGMT.plate() }); + addRecipeAuto(new ItemStack(ModItems.key_red, 1), new Object[] { "RCA", "CIC", "KCR", 'R', KEY_RED, 'C', STAR.wireDense(), 'A', ModItems.gem_alexandrite, 'I', ModItems.ingot_chainsteel, 'K', ModItems.key }); addRecipeAuto(new ItemStack(ModItems.pin, 1), new Object[] { "W ", " W", " W", 'W', ModItems.wire_copper }); addRecipeAuto(new ItemStack(ModItems.padlock_rusty, 1), new Object[] { "I", "B", "I", 'I', IRON.ingot(), 'B', ModItems.bolt_tungsten }); addRecipeAuto(new ItemStack(ModItems.padlock, 1), new Object[] { " P ", "PBP", "PPP", 'P', STEEL.plate(), 'B', ModItems.bolt_tungsten }); diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index 944ea7587..d0ab5626f 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -4,11 +4,13 @@ import java.lang.reflect.Field; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.ArrayList; +import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Locale; import java.util.Map; import java.util.Random; +import java.util.Set; import org.apache.commons.lang3.math.NumberUtils; import org.apache.logging.log4j.Level; @@ -1200,7 +1202,12 @@ public class ModEventHandler { } } - private static final String hash = "41eb77f138ce350932e33b6b26b233df9aad0c0c80c6a49cb9a54ddd8fae3f83"; + private static final Set hashes = new HashSet(); + + static { + hashes.add("41de5c372b0589bbdb80571e87efa95ea9e34b0d74c6005b8eab495b7afd9994"); + hashes.add("31da6223a100ed348ceb3254ceab67c9cc102cb2a04ac24de0df3ef3479b1036"); + } @SubscribeEvent public void onClickSign(PlayerInteractEvent event) { @@ -1210,14 +1217,14 @@ public class ModEventHandler { int z = event.z; World world = event.world; - if(!world.isRemote && event.action == Action.RIGHT_CLICK_BLOCK && world.getBlock(x, y, z) == Blocks.standing_sign) { + if(!world.isRemote && event.action == Action.RIGHT_CLICK_BLOCK && world.getTileEntity(x, y, z) instanceof TileEntitySign) { TileEntitySign sign = (TileEntitySign)world.getTileEntity(x, y, z); String result = smoosh(sign.signText[0], sign.signText[1], sign.signText[2], sign.signText[3]); - //System.out.println(result); + System.out.println(result); - if(result.equals(hash)) { + if(hashes.contains(result)) { world.func_147480_a(x, y, z, false); EntityItem entityitem = new EntityItem(world, x, y, z, new ItemStack(ModItems.bobmazon_hidden)); entityitem.delayBeforeCanPickup = 10; diff --git a/src/main/java/com/hbm/main/NEIConfig.java b/src/main/java/com/hbm/main/NEIConfig.java index dc6b9cc4a..1d1697804 100644 --- a/src/main/java/com/hbm/main/NEIConfig.java +++ b/src/main/java/com/hbm/main/NEIConfig.java @@ -77,6 +77,7 @@ public class NEIConfig implements IConfigureNEI { registerHandler(new ElectrolyserMetalHandler()); registerHandler(new AshpitHandler()); registerHandler(new ArcWelderHandler()); + registerHandler(new ExposureChamberHandler()); for(MachineConfiguration conf : CustomMachineConfigJSON.niceList) registerHandlerBypass(new CustomMachineHandler(conf)); diff --git a/src/main/java/com/hbm/render/tileentity/RenderExposureChamber.java b/src/main/java/com/hbm/render/tileentity/RenderExposureChamber.java index 7fc7528da..acfb9bbf9 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderExposureChamber.java +++ b/src/main/java/com/hbm/render/tileentity/RenderExposureChamber.java @@ -1,15 +1,26 @@ package com.hbm.render.tileentity; +import java.util.Random; + import org.lwjgl.opengl.GL11; import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; +import com.hbm.render.util.BeamPronter; +import com.hbm.render.util.BeamPronter.EnumBeamType; +import com.hbm.render.util.BeamPronter.EnumWaveType; import com.hbm.tileentity.machine.TileEntityMachineExposureChamber; +import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Vec3; +import net.minecraftforge.client.IItemRenderer; -public class RenderExposureChamber extends TileEntitySpecialRenderer { +public class RenderExposureChamber extends TileEntitySpecialRenderer implements IItemRendererProvider { @Override public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float interp) { @@ -34,6 +45,15 @@ public class RenderExposureChamber extends TileEntitySpecialRenderer { double rotation = chamber.prevRotation + (chamber.rotation - chamber.prevRotation) * interp; + GL11.glPushMatrix(); + GL11.glRotated(rotation, 0, 1, 0); + ResourceManager.exposure_chamber.renderPart("Magnets"); + GL11.glPopMatrix(); + + GL11.glPushAttrib(GL11.GL_LIGHTING_BIT); + GL11.glDisable(GL11.GL_LIGHTING); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); + if(chamber.isOn) { GL11.glPushMatrix(); GL11.glRotated(rotation / 2D, 0, 1, 0); @@ -42,14 +62,76 @@ public class RenderExposureChamber extends TileEntitySpecialRenderer { GL11.glPopMatrix(); } - GL11.glPushMatrix(); - GL11.glRotated(rotation, 0, 1, 0); - ResourceManager.exposure_chamber.renderPart("Magnets"); - GL11.glPopMatrix(); - GL11.glShadeModel(GL11.GL_FLAT); GL11.glEnable(GL11.GL_CULL_FACE); + + if(chamber.isOn) { + + int duration = 8; + Random rand = new Random(chamber.getWorldObj().getTotalWorldTime() / duration); + int chance = 2; + int color = chamber.getWorldObj().getTotalWorldTime() % duration >= duration / 2 ? 0x80d0ff : 0xffffff; + rand.nextInt(chance); //RNG behaves weirldy in the first iteration + if(rand.nextInt(chance) == 0) { + GL11.glPushMatrix(); + GL11.glTranslated(0, 3.675, -7.5); + BeamPronter.prontBeam(Vec3.createVectorHelper(0, 0, 5), EnumWaveType.RANDOM, EnumBeamType.LINE, color, 0xffffff, (int)(System.currentTimeMillis() % 1000) / 50, 15, 0.125F, 1, 0); + GL11.glPopMatrix(); + } + if(rand.nextInt(chance) == 0) { + GL11.glPushMatrix(); + GL11.glTranslated(1.1875, 2.5, -7.5); + BeamPronter.prontBeam(Vec3.createVectorHelper(0, 0, 5), EnumWaveType.RANDOM, EnumBeamType.LINE, color, 0xffffff, (int)(System.currentTimeMillis() % 1000) / 50, 15, 0.125F, 1, 0); + GL11.glPopMatrix(); + } + if(rand.nextInt(chance) == 0) { + GL11.glPushMatrix(); + GL11.glTranslated(-1.1875, 2.5, -7.5); + BeamPronter.prontBeam(Vec3.createVectorHelper(0, 0, 5), EnumWaveType.RANDOM, EnumBeamType.LINE, color, 0xffffff, (int)(System.currentTimeMillis() % 1000) / 50, 15, 0.125F, 1, 0); + GL11.glPopMatrix(); + } + + GL11.glPushMatrix(); + GL11.glTranslated(0, 1.75, 0); + BeamPronter.prontBeam(Vec3.createVectorHelper(0, 1.5, 0), EnumWaveType.RANDOM, EnumBeamType.LINE, 0x80d0ff, 0xffffff, (int)(System.currentTimeMillis() % 1000) / 50, 10, 0.125F, 1, 0); + BeamPronter.prontBeam(Vec3.createVectorHelper(0, 1.5, 0), EnumWaveType.RANDOM, EnumBeamType.LINE, 0x8080ff, 0xffffff, (int)(System.currentTimeMillis() + 5 % 1000) / 50, 10, 0.125F, 1, 0); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, 2.5, 0); + BeamPronter.prontBeam(Vec3.createVectorHelper(0, 0, -1), EnumWaveType.SPIRAL, EnumBeamType.LINE, 0xffff80, 0xffffff, (int)(System.currentTimeMillis() % 360), 15, 0.125F, 1, 0); + BeamPronter.prontBeam(Vec3.createVectorHelper(0, 0, -1), EnumWaveType.SPIRAL, EnumBeamType.LINE, 0xff8080, 0xffffff, (int)(System.currentTimeMillis() % 360) + 180, 15, 0.125F, 1, 0); + GL11.glPopMatrix(); + } + + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glPopAttrib(); GL11.glPopMatrix(); } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.machine_exposure_chamber); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(0, -1.5, 0); + GL11.glScaled(3, 3, 3); + } + public void renderCommon() { + GL11.glTranslated(1.5, 0, 0); + GL11.glRotated(90, 0, 1, 0); + GL11.glScaled(0.5, 0.5, 0.5); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.exposure_chamber_tex); + ResourceManager.exposure_chamber.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glEnable(GL11.GL_CULL_FACE); + }}; + } } diff --git a/src/main/java/com/hbm/tileentity/IUpgradeInfoProvider.java b/src/main/java/com/hbm/tileentity/IUpgradeInfoProvider.java index 00ecd8ab1..f1a420b5f 100644 --- a/src/main/java/com/hbm/tileentity/IUpgradeInfoProvider.java +++ b/src/main/java/com/hbm/tileentity/IUpgradeInfoProvider.java @@ -19,6 +19,11 @@ public interface IUpgradeInfoProvider { return EnumChatFormatting.GREEN.YELLOW + ">>> " + I18nUtil.resolveKey(block.getUnlocalizedName() + ".name") + " <<<"; } + public static final String KEY_ACID = "upgrade.acid"; + public static final String KEY_BURN = "upgrade.burn"; public static final String KEY_CONSUMPTION = "upgrade.consumption"; - public static final String KEY_SPEED = "upgrade.speed"; + public static final String KEY_DELAY = "upgrade.delay"; + public static final String KEY_EFFICIENCY = "upgrade.efficiency"; + public static final String KEY_FORTUNE = "upgrade.fortune"; + public static final String KEY_RANGE = "upgrade.range"; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java b/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java index 8d34ffa2c..04b147c79 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.List; import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerElectrolyserFluid; @@ -25,8 +26,10 @@ import com.hbm.main.MainRegistry; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.CrucibleUtil; +import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IEnergyUser; @@ -41,11 +44,12 @@ import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityElectrolyser extends TileEntityMachineBase implements IEnergyUser, IFluidStandardTransceiver, IControlReceiver, IGUIProvider { +public class TileEntityElectrolyser extends TileEntityMachineBase implements IEnergyUser, IFluidStandardTransceiver, IControlReceiver, IGUIProvider, IUpgradeInfoProvider { public long power; public static final long maxPower = 20000000; @@ -489,4 +493,27 @@ public class TileEntityElectrolyser extends TileEntityMachineBase implements IEn public boolean hasPermission(EntityPlayer player) { return this.isUseableByPlayer(player); } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.POWER; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_electrolyser)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 25) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (level * 25) + "%")); + } + } + + @Override + public int getMaxLevel(UpgradeType type) { + if(type == UpgradeType.SPEED) return 3; + if(type == UpgradeType.POWER) return 3; + return 0; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java index 920fd6458..9a00a9bba 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java @@ -250,7 +250,7 @@ public class TileEntityFurnaceIron extends TileEntityMachineBase implements IGUI public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.furnace_iron)); if(type == UpgradeType.SPEED) { - info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_SPEED, "-" + (level * 50 / 3) + "%")); + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 50 / 3) + "%")); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java index a2933ca1d..d6211169b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java @@ -356,12 +356,12 @@ public class TileEntityMachineArcWelder extends TileEntityMachineBase implements public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_electric_furnace_off)); if(type == UpgradeType.SPEED) { - info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_SPEED, "-" + (level * 100 / 6) + "%")); + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 100 / 6) + "%")); info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 100) + "%")); } if(type == UpgradeType.POWER) { info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (level * 100 / 6) + "%")); - info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_SPEED, "+" + (level * 100 / 3) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_DELAY, "+" + (level * 100 / 3) + "%")); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java index cddb1a40f..b549a6335 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java @@ -280,12 +280,12 @@ public class TileEntityMachineAssembler extends TileEntityMachineAssemblerBase i public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_assembler)); if(type == UpgradeType.SPEED) { - info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_SPEED, "-" + (level * 25) + "%")); + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 25) + "%")); info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 300) + "%")); } if(type == UpgradeType.POWER) { info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (level * 30) + "%")); - info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_SPEED, "+" + (level * 5) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_DELAY, "+" + (level * 5) + "%")); } if(type == UpgradeType.OVERDRIVE) { info.add((BobMathUtil.getBlink() ? EnumChatFormatting.RED : EnumChatFormatting.DARK_GRAY) + "YES"); @@ -296,7 +296,7 @@ public class TileEntityMachineAssembler extends TileEntityMachineAssemblerBase i public int getMaxLevel(UpgradeType type) { if(type == UpgradeType.SPEED) return 3; if(type == UpgradeType.POWER) return 3; - if(type == UpgradeType.OVERDRIVE) return 3; + if(type == UpgradeType.OVERDRIVE) return 9; return 0; } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java index 407c74ad6..009bc53e7 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java @@ -1,8 +1,10 @@ package com.hbm.tileentity.machine; +import java.util.List; import java.util.Random; import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerAssemfac; import com.hbm.inventory.fluid.Fluids; @@ -10,6 +12,9 @@ import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIAssemfac; import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; +import com.hbm.tileentity.IUpgradeInfoProvider; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.fluid.IFluidStandardTransceiver; @@ -21,10 +26,11 @@ import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase implements IFluidStandardTransceiver { +public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase implements IFluidStandardTransceiver, IUpgradeInfoProvider { public AssemblerArm[] arms; @@ -421,4 +427,33 @@ public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase im public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIAssemfac(player.inventory, this); } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.POWER || type == UpgradeType.OVERDRIVE; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_assemfac)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 15) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 300) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (level * 30) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_DELAY, "+" + (level * 5) + "%")); + } + if(type == UpgradeType.OVERDRIVE) { + info.add((BobMathUtil.getBlink() ? EnumChatFormatting.RED : EnumChatFormatting.DARK_GRAY) + "YES"); + } + } + + @Override + public int getMaxLevel(UpgradeType type) { + if(type == UpgradeType.SPEED) return 6; + if(type == UpgradeType.POWER) return 3; + if(type == UpgradeType.OVERDRIVE) return 12; + return 0; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java index 8add21027..835324307 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java @@ -1,5 +1,8 @@ package com.hbm.tileentity.machine; +import java.util.List; + +import com.hbm.blocks.ModBlocks; import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerCentrifuge; import com.hbm.inventory.gui.GUIMachineCentrifuge; @@ -9,7 +12,10 @@ import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; import api.hbm.energy.IEnergyUser; import cpw.mods.fml.relauncher.Side; @@ -20,10 +26,11 @@ import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.MathHelper; import net.minecraft.world.World; -public class TileEntityMachineCentrifuge extends TileEntityMachineBase implements IEnergyUser, IGUIProvider { +public class TileEntityMachineCentrifuge extends TileEntityMachineBase implements IEnergyUser, IGUIProvider, IUpgradeInfoProvider { public int progress; public long power; @@ -307,4 +314,32 @@ public class TileEntityMachineCentrifuge extends TileEntityMachineBase implement public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineCentrifuge(player.inventory, this); } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.POWER || type == UpgradeType.OVERDRIVE; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_centrifuge)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 100) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 100) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (100 - 100 / (level + 1)) + "%")); + } + if(type == UpgradeType.OVERDRIVE) { + info.add((BobMathUtil.getBlink() ? EnumChatFormatting.RED : EnumChatFormatting.DARK_GRAY) + "YES"); + } + } + + @Override + public int getMaxLevel(UpgradeType type) { + if(type == UpgradeType.SPEED) return 3; + if(type == UpgradeType.POWER) return 3; + if(type == UpgradeType.OVERDRIVE) return 3; + return 0; + } } \ No newline at end of file diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java index f838e1082..7f8a84d03 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java @@ -5,6 +5,7 @@ import java.util.List; import java.util.Random; import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerChemfac; import com.hbm.inventory.fluid.Fluids; @@ -13,6 +14,9 @@ import com.hbm.inventory.gui.GUIChemfac; import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; +import com.hbm.tileentity.IUpgradeInfoProvider; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; import cpw.mods.fml.relauncher.Side; @@ -23,10 +27,11 @@ import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineChemfac extends TileEntityMachineChemplantBase { +public class TileEntityMachineChemfac extends TileEntityMachineChemplantBase implements IUpgradeInfoProvider { float rotSpeed; public float rot; @@ -346,4 +351,33 @@ public class TileEntityMachineChemfac extends TileEntityMachineChemplantBase { public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIChemfac(player.inventory, this); } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.POWER || type == UpgradeType.OVERDRIVE; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_chemfac)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 15) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 300) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (level * 30) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_DELAY, "+" + (level * 5) + "%")); + } + if(type == UpgradeType.OVERDRIVE) { + info.add((BobMathUtil.getBlink() ? EnumChatFormatting.RED : EnumChatFormatting.DARK_GRAY) + "YES"); + } + } + + @Override + public int getMaxLevel(UpgradeType type) { + if(type == UpgradeType.SPEED) return 6; + if(type == UpgradeType.POWER) return 3; + if(type == UpgradeType.OVERDRIVE) return 12; + return 0; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java index d78b87c9f..00523e45b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.List; import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.RecipesCommon.AStack; @@ -21,7 +22,10 @@ import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; import com.hbm.util.InventoryUtil; import com.hbm.util.fauxpointtwelve.DirPos; @@ -38,10 +42,11 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineChemplant extends TileEntityMachineBase implements IEnergyUser, IFluidSource, IFluidAcceptor, IFluidStandardTransceiver, IGUIProvider { +public class TileEntityMachineChemplant extends TileEntityMachineBase implements IEnergyUser, IFluidSource, IFluidAcceptor, IFluidStandardTransceiver, IGUIProvider, IUpgradeInfoProvider { public long power; public static final long maxPower = 100000; @@ -654,4 +659,33 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineChemplant(player.inventory, this); } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.POWER || type == UpgradeType.OVERDRIVE; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_chemplant)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 25) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 300) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (level * 30) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_DELAY, "+" + (level * 5) + "%")); + } + if(type == UpgradeType.OVERDRIVE) { + info.add((BobMathUtil.getBlink() ? EnumChatFormatting.RED : EnumChatFormatting.DARK_GRAY) + "YES"); + } + } + + @Override + public int getMaxLevel(UpgradeType type) { + if(type == UpgradeType.SPEED) return 3; + if(type == UpgradeType.POWER) return 3; + if(type == UpgradeType.OVERDRIVE) return 9; + return 0; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java index fa99ad805..9a05a00b5 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java @@ -1,6 +1,9 @@ package com.hbm.tileentity.machine; +import java.util.List; + import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerCompressor; @@ -13,7 +16,10 @@ import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; import com.hbm.util.Tuple.Pair; import com.hbm.util.fauxpointtwelve.DirPos; @@ -26,11 +32,12 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineCompressor extends TileEntityMachineBase implements IGUIProvider, IControlReceiver, IEnergyUser, IFluidStandardTransceiver { +public class TileEntityMachineCompressor extends TileEntityMachineBase implements IGUIProvider, IControlReceiver, IEnergyUser, IFluidStandardTransceiver, IUpgradeInfoProvider { public FluidTank[] tanks; public long power; @@ -85,7 +92,7 @@ public class TileEntityMachineCompressor extends TileEntityMachineBase implement //there is a reason to do this but i'm not telling you // ^ a few months later i have to wonder what the fuck this guy was on about, and if i ever see him i will punch him in the nuts - if(timeBase == this.processTimeBase) this.processTime = speedLevel == 3 ? 10 : speedLevel == 2 ? 20 : speedLevel == 1 ? 60 : timeBase; + if(rec == null) this.processTime = speedLevel == 3 ? 10 : speedLevel == 2 ? 20 : speedLevel == 1 ? 60 : timeBase; else this.processTime = timeBase / (speedLevel + 1); this.powerRequirement = this.powerRequirementBase / (powerLevel + 1); this.processTime = this.processTime / (overLevel + 1); @@ -329,4 +336,32 @@ public class TileEntityMachineCompressor extends TileEntityMachineBase implement public double getMaxRenderDistanceSquared() { return 65536.0D; } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.POWER || type == UpgradeType.OVERDRIVE; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_compressor)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + "Recipe: "+ I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level == 3 ? 90 : level == 2 ? 80 : level == 1 ? 40 : 0) + "%")); + info.add(EnumChatFormatting.GREEN + "Generic compression: "+ I18nUtil.resolveKey(this.KEY_DELAY, "-" + (100 - 100 / (level + 1)) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (100 - 100 / (level + 1)) + "%")); + } + if(type == UpgradeType.OVERDRIVE) { + info.add((BobMathUtil.getBlink() ? EnumChatFormatting.RED : EnumChatFormatting.DARK_GRAY) + "YES"); + } + } + + @Override + public int getMaxLevel(UpgradeType type) { + if(type == UpgradeType.SPEED) return 3; + if(type == UpgradeType.POWER) return 3; + if(type == UpgradeType.OVERDRIVE) return 9; + return 0; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java index 7c19d40bb..18acf6556 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java @@ -1,17 +1,24 @@ package com.hbm.tileentity.machine; +import java.util.List; + import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerCrystallizer; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUICrystallizer; import com.hbm.inventory.recipes.CrystallizerRecipes; import com.hbm.inventory.recipes.CrystallizerRecipes.CrystallizerRecipe; -import com.hbm.items.ModItems; import com.hbm.items.machine.ItemMachineUpgrade; +import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IBatteryItem; @@ -26,10 +33,11 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineCrystallizer extends TileEntityMachineBase implements IEnergyUser, IFluidStandardReceiver, IGUIProvider { +public class TileEntityMachineCrystallizer extends TileEntityMachineBase implements IEnergyUser, IFluidStandardReceiver, IGUIProvider, IUpgradeInfoProvider { public long power; public static final long maxPower = 1000000; @@ -63,6 +71,8 @@ public class TileEntityMachineCrystallizer extends TileEntityMachineBase impleme tank.setType(7, slots); tank.loadTank(3, 4, slots); + UpgradeManager.eval(slots, 5, 6); + for(int i = 0; i < getCycleCount(); i++) { if(canProcess()) { @@ -156,7 +166,7 @@ public class TileEntityMachineCrystallizer extends TileEntityMachineBase impleme else if(slots[2].stackSize + stack.stackSize <= slots[2].getMaxStackSize()) slots[2].stackSize += stack.stackSize; - tank.setFill(tank.getFill() - result.acidAmount); + tank.setFill(tank.getFill() - getRequiredAcid(result.acidAmount)); float freeChance = this.getFreeChance(); @@ -183,7 +193,7 @@ public class TileEntityMachineCrystallizer extends TileEntityMachineBase impleme if(slots[0].stackSize < result.itemAmount) return false; - if(tank.getFill() < result.acidAmount) return false; + if(tank.getFill() < getRequiredAcid(result.acidAmount)) return false; ItemStack stack = result.output.copy(); @@ -199,89 +209,39 @@ public class TileEntityMachineCrystallizer extends TileEntityMachineBase impleme } public int getRequiredAcid(int base) { - - for(int i = 5; i <= 6; i++) { - - if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_effect_1) - base *= 3; - if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_effect_2) - base *= 4; - if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_effect_3) - base *= 5; + int efficiency = Math.min(UpgradeManager.getLevel(UpgradeType.EFFECT), 3); + if(efficiency > 0) { + return base * (efficiency + 2); } - return base; } public float getFreeChance() { - - float chance = 0.0F; - - for(int i = 5; i <= 6; i++) { - - if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_effect_1) - chance += 0.05F; - if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_effect_2) - chance += 0.1F; - if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_effect_3) - chance += 0.15F; + int efficiency = Math.min(UpgradeManager.getLevel(UpgradeType.EFFECT), 3); + if(efficiency > 0) { + return Math.min(efficiency * 0.05F, 0.15F); } - - return Math.min(chance, 0.15F); + return 0; } public short getDuration() { - - float durationMod = 1; CrystallizerRecipe result = CrystallizerRecipes.getOutput(slots[0], tank.getTankType()); - int base = result != null ? result.duration : 600; - - for(int i = 5; i <= 6; i++) { - - if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_speed_1) - durationMod -= 0.25F; - if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_speed_2) - durationMod -= 0.50F; - if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_speed_3) - durationMod -= 0.75F; + int speed = Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 3); + if(speed > 0) { + return (short) Math.ceil((base * Math.max(1F - 0.25F * speed, 0.25F))); } - - return (short) Math.ceil((base * Math.max(durationMod, 0.25F))); + return (short) base; } public int getPowerRequired() { - - int consumption = 0; - - for(int i = 5; i <= 6; i++) { - - if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_speed_1) - consumption += 1000; - if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_speed_2) - consumption += 2000; - if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_speed_3) - consumption += 3000; - } - - return (int) (demand + Math.min(consumption, 3000)); + int speed = Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 3); + return (int) (demand + Math.min(speed * 1000, 3000)); } public float getCycleCount() { - - int cycles = 1; - - for(int i = 5; i <= 6; i++) { - - if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_overdrive_1) - cycles += 2; - if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_overdrive_2) - cycles += 4; - if(slots[i] != null && slots[i].getItem() == ModItems.upgrade_overdrive_3) - cycles += 6; - } - - return Math.min(cycles, 4); + int speed = UpgradeManager.getLevel(UpgradeType.OVERDRIVE); + return Math.min(1 + speed * 2, 7); } public long getPowerScaled(int i) { @@ -388,4 +348,33 @@ public class TileEntityMachineCrystallizer extends TileEntityMachineBase impleme public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUICrystallizer(player.inventory, this); } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.EFFECT || type == UpgradeType.OVERDRIVE; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.turret_maxwell)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 25) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 100) + "%")); + } + if(type == UpgradeType.EFFECT) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_EFFICIENCY, "+" + (level * 5) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_ACID, "+" + (level * 100 + 100) + "%")); + } + if(type == UpgradeType.OVERDRIVE) { + info.add((BobMathUtil.getBlink() ? EnumChatFormatting.RED : EnumChatFormatting.DARK_GRAY) + "YES"); + } + } + + @Override + public int getMaxLevel(UpgradeType type) { + if(type == UpgradeType.SPEED) return 3; + if(type == UpgradeType.EFFECT) return 3; + if(type == UpgradeType.OVERDRIVE) return 2; + return 0; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineEPress.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineEPress.java index 01ba0af31..7e6b2c4cb 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineEPress.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineEPress.java @@ -1,5 +1,8 @@ package com.hbm.tileentity.machine; +import java.util.List; + +import com.hbm.blocks.ModBlocks; import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerMachineEPress; import com.hbm.inventory.gui.GUIMachineEPress; @@ -8,7 +11,9 @@ import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.items.machine.ItemStamp; import com.hbm.lib.Library; import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.I18nUtil; import api.hbm.energy.IEnergyUser; import cpw.mods.fml.relauncher.Side; @@ -19,10 +24,11 @@ import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineEPress extends TileEntityMachineBase implements IEnergyUser, IGUIProvider { +public class TileEntityMachineEPress extends TileEntityMachineBase implements IEnergyUser, IGUIProvider, IUpgradeInfoProvider { public long power = 0; public final static long maxPower = 50000; @@ -254,4 +260,23 @@ public class TileEntityMachineEPress extends TileEntityMachineBase implements IE public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineEPress(player.inventory, this); } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_epress)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (50 * level / 3) + "%")); + } + } + + @Override + public int getMaxLevel(UpgradeType type) { + if(type == UpgradeType.SPEED) return 3; + return 0; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java index 8757970f5..8626dcf6c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java @@ -279,12 +279,12 @@ public class TileEntityMachineElectricFurnace extends TileEntityMachineBase impl public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_electric_furnace_off)); if(type == UpgradeType.SPEED) { - info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_SPEED, "-" + (level * 25) + "%")); + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 25) + "%")); info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 100) + "%")); } if(type == UpgradeType.POWER) { info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (level * 30) + "%")); - info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_SPEED, "+" + (level * 10) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_DELAY, "+" + (level * 10) + "%")); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java index 5ea2a2cbd..ac3095dd3 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java @@ -24,9 +24,11 @@ import com.hbm.items.machine.ItemDrillbit.EnumDrillType; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.Compat; import com.hbm.util.EnumUtil; +import com.hbm.util.I18nUtil; import com.hbm.util.ItemStackUtil; import com.hbm.util.fauxpointtwelve.BlockPos; import com.hbm.util.fauxpointtwelve.DirPos; @@ -50,11 +52,12 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineExcavator extends TileEntityMachineBase implements IEnergyUser, IFluidStandardReceiver, IControlReceiver, IGUIProvider { +public class TileEntityMachineExcavator extends TileEntityMachineBase implements IEnergyUser, IFluidStandardReceiver, IControlReceiver, IGUIProvider, IUpgradeInfoProvider { public static final long maxPower = 1_000_000; public long power; @@ -839,4 +842,28 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements public FluidTank[] getReceivingTanks() { return new FluidTank[] {tank}; } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.POWER; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_assembler)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (100 - 100 / (level / 2 + 1)) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 100) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (100 - 100 / (level + 1)) + "%")); + } + } + + @Override + public int getMaxLevel(UpgradeType type) { + if(type == UpgradeType.SPEED) return 3; + if(type == UpgradeType.POWER) return 3; + return 0; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExposureChamber.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExposureChamber.java index c139e15c5..e8f98a245 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExposureChamber.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExposureChamber.java @@ -1,5 +1,8 @@ package com.hbm.tileentity.machine; +import java.util.List; + +import com.hbm.blocks.ModBlocks; import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerMachineExposureChamber; import com.hbm.inventory.gui.GUIMachineExposureChamber; @@ -8,7 +11,10 @@ import com.hbm.inventory.recipes.ExposureChamberRecipes.ExposureChamberRecipe; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IEnergyUser; @@ -17,14 +23,14 @@ import cpw.mods.fml.relauncher.SideOnly; import io.netty.buffer.ByteBuf; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineExposureChamber extends TileEntityMachineBase implements IGUIProvider, IEnergyUser { +public class TileEntityMachineExposureChamber extends TileEntityMachineBase implements IGUIProvider, IEnergyUser, IUpgradeInfoProvider { public long power; public static final long maxPower = 1_000_000; @@ -176,6 +182,52 @@ public class TileEntityMachineExposureChamber extends TileEntityMachineBase impl return ExposureChamberRecipes.getRecipe(particle, ingredient); } + @Override + public boolean isItemValidForSlot(int i, ItemStack stack) { + + //will only load new capsules if there's no cached particles, this should prevent clogging + + //accept items when the slots are already partially filled, i.e. applicable + if(i == 0 && slots[0] != null) return true; + if(i == 3 && slots[3] != null) return true; + + //if there's no particle stored, use the un-consumed capsule for reference + ItemStack particle = slots[1] != null ? slots[1] : slots[0]; + + //if no particle is loaded and an ingot is present + if(i == 0 && particle == null && slots[3] != null) { + ExposureChamberRecipe recipe = getRecipe(stack, slots[3]); + return recipe != null; + } + + //if a particle is loaded but no ingot present + if(i == 3 && particle != null && slots[3] == null) { + ExposureChamberRecipe recipe = getRecipe(slots[0], stack); + return recipe != null; + } + + //if there's nothing at all, find a reference recipe and see if the item matches anything + if(particle == null && slots[3] == null) { + + for(ExposureChamberRecipe recipe : ExposureChamberRecipes.recipes) { + if(i == 0 && recipe.particle.matchesRecipe(stack, true)) return true; + if(i == 3 && recipe.ingredient.matchesRecipe(stack, true)) return true; + } + } + + return false; + } + + @Override + public boolean canExtractItem(int i, ItemStack itemStack, int j) { + return i == 2 || i == 4; + } + + @Override + public int[] getAccessibleSlotsFromSide(int side) { + return new int[] {0, 2, 3, 4}; + } + @Override public void serialize(ByteBuf buf) { buf.writeBoolean(this.isOn); @@ -246,4 +298,33 @@ public class TileEntityMachineExposureChamber extends TileEntityMachineBase impl public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineExposureChamber(player.inventory, this); } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.POWER || type == UpgradeType.OVERDRIVE; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_exposure_chamber)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 25) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 50) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (100 - 100 / (level + 1)) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_DELAY, "+" + (level * 50) + "%")); + } + if(type == UpgradeType.OVERDRIVE) { + info.add((BobMathUtil.getBlink() ? EnumChatFormatting.RED : EnumChatFormatting.DARK_GRAY) + "YES"); + } + } + + @Override + public int getMaxLevel(UpgradeType type) { + if(type == UpgradeType.SPEED) return 3; + if(type == UpgradeType.POWER) return 3; + if(type == UpgradeType.OVERDRIVE) return 3; + return 0; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java index 82076c1cf..d40bac866 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java @@ -23,7 +23,10 @@ import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; import com.hbm.util.InventoryUtil; import api.hbm.block.IDrillInteraction; @@ -47,10 +50,11 @@ import net.minecraft.item.crafting.FurnaceRecipes; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineMiningLaser extends TileEntityMachineBase implements IEnergyUser, IFluidSource, IMiningDrill, IFluidStandardSender, IGUIProvider { +public class TileEntityMachineMiningLaser extends TileEntityMachineBase implements IEnergyUser, IFluidSource, IMiningDrill, IFluidStandardSender, IGUIProvider, IUpgradeInfoProvider { public long power; public int age = 0; @@ -714,4 +718,40 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMiningLaser(player.inventory, this); } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.POWER || type == UpgradeType.OVERDRIVE || type == UpgradeType.EFFECT || type == UpgradeType.FORTUNE; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_assembler)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (100 - 100 / (level + 1)) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (100 * level / 16) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (100 * level / 16) + "%")); + } + if(type == UpgradeType.EFFECT) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_RANGE, "+" + (2 * level) + "m")); + } + if(type == UpgradeType.FORTUNE) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_FORTUNE, "+" + level)); + } + if(type == UpgradeType.OVERDRIVE) { + info.add((BobMathUtil.getBlink() ? EnumChatFormatting.RED : EnumChatFormatting.DARK_GRAY) + "YES"); + } + } + + @Override + public int getMaxLevel(UpgradeType type) { + if(type == UpgradeType.SPEED) return 12; + if(type == UpgradeType.POWER) return 12; + if(type == UpgradeType.EFFECT) return 12; + if(type == UpgradeType.FORTUNE) return 3; + if(type == UpgradeType.OVERDRIVE) return 9; + return 0; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMixer.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMixer.java index 4f62b9aa8..ae5054b00 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMixer.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMixer.java @@ -1,5 +1,8 @@ package com.hbm.tileentity.machine; +import java.util.List; + +import com.hbm.blocks.ModBlocks; import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerMixer; @@ -12,7 +15,10 @@ import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.INBTPacketReceiver; +import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IEnergyUser; @@ -25,9 +31,10 @@ import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; -public class TileEntityMachineMixer extends TileEntityMachineBase implements INBTPacketReceiver, IControlReceiver, IGUIProvider, IEnergyUser, IFluidStandardTransceiver { +public class TileEntityMachineMixer extends TileEntityMachineBase implements INBTPacketReceiver, IControlReceiver, IGUIProvider, IEnergyUser, IFluidStandardTransceiver, IUpgradeInfoProvider { public long power; public static final long maxPower = 10_000; @@ -310,7 +317,34 @@ public class TileEntityMachineMixer extends TileEntityMachineBase implements INB @Override public void receiveControl(NBTTagCompound data) { - if(data.hasKey("toggle")) this.recipeIndex++; } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.POWER || type == UpgradeType.OVERDRIVE; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_assembler)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 25) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 300) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (level * 25) + "%")); + } + if(type == UpgradeType.OVERDRIVE) { + info.add((BobMathUtil.getBlink() ? EnumChatFormatting.RED : EnumChatFormatting.DARK_GRAY) + "YES"); + } + } + + @Override + public int getMaxLevel(UpgradeType type) { + if(type == UpgradeType.SPEED) return 3; + if(type == UpgradeType.POWER) return 3; + if(type == UpgradeType.OVERDRIVE) return 6; + return 0; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java index e1c3d08ba..414d273a4 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java @@ -26,7 +26,9 @@ import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachinePolluting; +import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IEnergyGenerator; @@ -43,10 +45,11 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.DamageSource; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineTurbofan extends TileEntityMachinePolluting implements IEnergyGenerator, IFluidContainer, IFluidAcceptor, IFluidStandardTransceiver, IGUIProvider { +public class TileEntityMachineTurbofan extends TileEntityMachinePolluting implements IEnergyGenerator, IFluidContainer, IFluidAcceptor, IFluidStandardTransceiver, IGUIProvider, IUpgradeInfoProvider { public long power; public static final long maxPower = 1_000_000; @@ -488,4 +491,24 @@ public class TileEntityMachineTurbofan extends TileEntityMachinePolluting implem public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineTurbofan(player.inventory, this); } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.AFTERBURN; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_assembler)); + if(type == UpgradeType.AFTERBURN) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_EFFICIENCY, "+" + (int)(level * 100 * (1 + Math.min(level / 3D, 4D))) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 100) + "%")); + } + } + + @Override + public int getMaxLevel(UpgradeType type) { + if(type == UpgradeType.AFTERBURN) return 3; + return 0; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFrackingTower.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFrackingTower.java index 13fb8015b..06911f404 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFrackingTower.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFrackingTower.java @@ -1,6 +1,7 @@ package com.hbm.tileentity.machine.oil; import java.io.IOException; +import java.util.List; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; @@ -11,8 +12,12 @@ import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIMachineOilWell; +import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.tileentity.IConfigurableMachine; +import com.hbm.tileentity.IUpgradeInfoProvider; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; import com.hbm.world.feature.OilSpot; @@ -22,6 +27,7 @@ import net.minecraft.block.Block; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; public class TileEntityMachineFrackingTower extends TileEntityOilDrillBase implements IFluidAcceptor { @@ -221,4 +227,23 @@ public class TileEntityMachineFrackingTower extends TileEntityOilDrillBase imple public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineOilWell(player.inventory, this); } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_fracking_tower)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 25) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 25) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (level * 25) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_DELAY, "+" + (level * 10) + "%")); + } + if(type == UpgradeType.AFTERBURN) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_BURN, level * 10, level * 50)); + } + if(type == UpgradeType.OVERDRIVE) { + info.add((BobMathUtil.getBlink() ? EnumChatFormatting.RED : EnumChatFormatting.DARK_GRAY) + "YES"); + } + } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java index b8f52817c..25d5f4029 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java @@ -2,6 +2,7 @@ package com.hbm.tileentity.machine.oil; import java.util.List; +import com.hbm.blocks.ModBlocks; import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.pollution.PollutionHandler.PollutionType; import com.hbm.interfaces.IControlReceiver; @@ -21,7 +22,9 @@ import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.I18nUtil; import com.hbm.util.ParticleUtil; import com.hbm.util.fauxpointtwelve.DirPos; @@ -37,9 +40,10 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.DamageSource; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; -public class TileEntityMachineGasFlare extends TileEntityMachineBase implements IEnergyGenerator, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver, IControlReceiver, IGUIProvider { +public class TileEntityMachineGasFlare extends TileEntityMachineBase implements IEnergyGenerator, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver, IControlReceiver, IGUIProvider, IUpgradeInfoProvider { public long power; public static final long maxPower = 100000; @@ -307,4 +311,27 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineGasFlare(player.inventory, this); } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.EFFECT; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_flare)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 100) + "%")); + } + if(type == UpgradeType.EFFECT) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_EFFICIENCY, "+" + (100 * level / 3) + "%")); + } + } + + @Override + public int getMaxLevel(UpgradeType type) { + if(type == UpgradeType.SPEED) return 3; + if(type == UpgradeType.EFFECT) return 3; + return 0; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java index edfeeff30..4aa306854 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java @@ -3,6 +3,7 @@ package com.hbm.tileentity.machine.oil; import java.util.ArrayList; import java.util.List; +import com.hbm.blocks.ModBlocks; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.FluidStack; @@ -16,7 +17,10 @@ import com.hbm.inventory.recipes.LiquefactionRecipes; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IEnergyUser; @@ -29,9 +33,10 @@ import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; -public class TileEntityMachineLiquefactor extends TileEntityMachineBase implements IEnergyUser, IFluidSource, IFluidStandardSender, IGUIProvider { +public class TileEntityMachineLiquefactor extends TileEntityMachineBase implements IEnergyUser, IFluidSource, IFluidStandardSender, IGUIProvider, IUpgradeInfoProvider { public long power; public static final long maxPower = 100000; @@ -296,4 +301,28 @@ public class TileEntityMachineLiquefactor extends TileEntityMachineBase implemen public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUILiquefactor(player.inventory, this); } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.POWER; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_assembler)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 25) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 100) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (100 - 100 / (level + 1)) + "%")); + } + } + + @Override + public int getMaxLevel(UpgradeType type) { + if(type == UpgradeType.SPEED) return 3; + if(type == UpgradeType.POWER) return 3; + return 0; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineOilWell.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineOilWell.java index 3e0c19f8b..798d41873 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineOilWell.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineOilWell.java @@ -1,6 +1,7 @@ package com.hbm.tileentity.machine.oil; import java.io.IOException; +import java.util.List; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; @@ -9,8 +10,12 @@ import com.hbm.explosion.ExplosionLarge; import com.hbm.inventory.container.ContainerMachineOilWell; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.gui.GUIMachineOilWell; +import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.tileentity.IConfigurableMachine; +import com.hbm.tileentity.IUpgradeInfoProvider; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; import cpw.mods.fml.relauncher.Side; @@ -21,6 +26,7 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.oredict.OreDictionary; @@ -174,4 +180,23 @@ public class TileEntityMachineOilWell extends TileEntityOilDrillBase { public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineOilWell(player.inventory, this); } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_well)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 25) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 25) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (level * 25) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_DELAY, "+" + (level * 10) + "%")); + } + if(type == UpgradeType.AFTERBURN) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_BURN, level * 10, level * 50)); + } + if(type == UpgradeType.OVERDRIVE) { + info.add((BobMathUtil.getBlink() ? EnumChatFormatting.RED : EnumChatFormatting.DARK_GRAY) + "YES"); + } + } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePumpjack.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePumpjack.java index fb2a78c4f..dd11a3431 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePumpjack.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePumpjack.java @@ -1,6 +1,7 @@ package com.hbm.tileentity.machine.oil; import java.io.IOException; +import java.util.List; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; @@ -9,7 +10,11 @@ import com.hbm.blocks.ModBlocks; import com.hbm.inventory.container.ContainerMachineOilWell; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.gui.GUIMachineOilWell; +import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.tileentity.IConfigurableMachine; +import com.hbm.tileentity.IUpgradeInfoProvider; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; import cpw.mods.fml.relauncher.Side; @@ -21,6 +26,7 @@ import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.oredict.OreDictionary; @@ -224,4 +230,23 @@ public class TileEntityMachinePumpjack extends TileEntityOilDrillBase { public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineOilWell(player.inventory, this); } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_pumpjack)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 25) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 25) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (level * 25) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_DELAY, "+" + (level * 10) + "%")); + } + if(type == UpgradeType.AFTERBURN) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_BURN, level * 10, level * 50)); + } + if(type == UpgradeType.OVERDRIVE) { + info.add((BobMathUtil.getBlink() ? EnumChatFormatting.RED : EnumChatFormatting.DARK_GRAY) + "YES"); + } + } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java index c40e904ca..2846293e3 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java @@ -1,5 +1,8 @@ package com.hbm.tileentity.machine.oil; +import java.util.List; + +import com.hbm.blocks.ModBlocks; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerSolidifier; @@ -11,7 +14,9 @@ import com.hbm.inventory.recipes.SolidificationRecipes; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.I18nUtil; import com.hbm.util.Tuple.Pair; import com.hbm.util.fauxpointtwelve.DirPos; @@ -25,9 +30,10 @@ import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; -public class TileEntityMachineSolidifier extends TileEntityMachineBase implements IEnergyUser, IFluidAcceptor, IFluidStandardReceiver, IGUIProvider { +public class TileEntityMachineSolidifier extends TileEntityMachineBase implements IEnergyUser, IFluidAcceptor, IFluidStandardReceiver, IGUIProvider, IUpgradeInfoProvider { public long power; public static final long maxPower = 100000; @@ -270,4 +276,28 @@ public class TileEntityMachineSolidifier extends TileEntityMachineBase implement public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUISolidifier(player.inventory, this); } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.POWER; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_assembler)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_DELAY, "-" + (level * 25) + "%")); + info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "+" + (level * 100) + "%")); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (100 - 100 / (level + 1)) + "%")); + } + } + + @Override + public int getMaxLevel(UpgradeType type) { + if(type == UpgradeType.SPEED) return 3; + if(type == UpgradeType.POWER) return 3; + return 0; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java index 11d36657f..4c785a486 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java @@ -17,6 +17,7 @@ import com.hbm.lib.Library; import com.hbm.tileentity.IConfigurableMachine; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IPersistentNBT; +import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.BobMathUtil; import com.hbm.util.Tuple; @@ -34,7 +35,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.util.ForgeDirection; -public abstract class TileEntityOilDrillBase extends TileEntityMachineBase implements IEnergyUser, IFluidSource, IFluidStandardTransceiver, IConfigurableMachine, IPersistentNBT, IGUIProvider { +public abstract class TileEntityOilDrillBase extends TileEntityMachineBase implements IEnergyUser, IFluidSource, IFluidStandardTransceiver, IConfigurableMachine, IPersistentNBT, IGUIProvider, IUpgradeInfoProvider { public int indicator = 0; @@ -382,4 +383,18 @@ public abstract class TileEntityOilDrillBase extends TileEntityMachineBase imple this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.POWER || type == UpgradeType.OVERDRIVE || type == UpgradeType.AFTERBURN; + } + + @Override + public int getMaxLevel(UpgradeType type) { + if(type == UpgradeType.SPEED) return 3; + if(type == UpgradeType.POWER) return 3; + if(type == UpgradeType.AFTERBURN) return 3; + if(type == UpgradeType.OVERDRIVE) return 3; + return 0; + } } diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretMaxwell.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretMaxwell.java index ea00c1637..91dc3e9ab 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretMaxwell.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretMaxwell.java @@ -3,13 +3,18 @@ package com.hbm.tileentity.turret; import java.util.ArrayList; import java.util.List; +import com.hbm.blocks.ModBlocks; import com.hbm.inventory.gui.GUITurretMaxwell; import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.ModDamageSource; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; import com.hbm.potion.HbmPotion; +import com.hbm.tileentity.IUpgradeInfoProvider; +import com.hbm.util.BobMathUtil; import com.hbm.util.EntityDamageUtil; +import com.hbm.util.I18nUtil; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; @@ -21,10 +26,11 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.potion.PotionEffect; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.Vec3; import net.minecraft.world.World; -public class TileEntityTurretMaxwell extends TileEntityTurretBaseNT { +public class TileEntityTurretMaxwell extends TileEntityTurretBaseNT implements IUpgradeInfoProvider { @Override public String getName() { @@ -64,6 +70,41 @@ public class TileEntityTurretMaxwell extends TileEntityTurretBaseNT { return ammoStacks; } + + @Override + public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) { + return type == UpgradeType.SPEED || type == UpgradeType.EFFECT || type == UpgradeType.POWER || type == UpgradeType.AFTERBURN || type == UpgradeType.OVERDRIVE; + } + + @Override + public void provideInfo(UpgradeType type, int level, List info, boolean extendedInfo) { + info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.turret_maxwell)); + if(type == UpgradeType.SPEED) { + info.add(EnumChatFormatting.GREEN + "Damage +0." + (level * 25) + "/t"); + } + if(type == UpgradeType.POWER) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_CONSUMPTION, "-" + (level * 3) + "%")); + } + if(type == UpgradeType.EFFECT) { + info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(this.KEY_RANGE, "+" + (level * 3) + "m")); + } + if(type == UpgradeType.AFTERBURN) { + info.add(EnumChatFormatting.GREEN + "Afterburn +3s"); + } + if(type == UpgradeType.OVERDRIVE) { + info.add((BobMathUtil.getBlink() ? EnumChatFormatting.RED : EnumChatFormatting.DARK_GRAY) + "YES"); + } + } + + @Override + public int getMaxLevel(UpgradeType type) { + if(type == UpgradeType.SPEED) return 27; + if(type == UpgradeType.POWER) return 27; + if(type == UpgradeType.EFFECT) return 27; + if(type == UpgradeType.AFTERBURN) return 27; + if(type == UpgradeType.OVERDRIVE) return 27; + return 0; + } @Override public double getAcceptableInaccuracy() { diff --git a/src/main/java/com/hbm/world/generator/room/TestDungeonRoom8.java b/src/main/java/com/hbm/world/generator/room/TestDungeonRoom8.java index 3f02d6cf0..e69db5214 100644 --- a/src/main/java/com/hbm/world/generator/room/TestDungeonRoom8.java +++ b/src/main/java/com/hbm/world/generator/room/TestDungeonRoom8.java @@ -50,12 +50,19 @@ public class TestDungeonRoom8 extends CellularDungeonRoom { int r = world.rand.nextInt(10); - if(r == 0) + if(r == 0) { ((TileEntitySafe)world.getTileEntity(x + parent.width / 2, y + 2, z + parent.width / 2)).setInventorySlotContents(7, new ItemStack(ModItems.book_of_)); - else if(r < 4) - ((TileEntitySafe)world.getTileEntity(x + parent.width / 2, y + 2, z + parent.width / 2)).setInventorySlotContents(7, generateBook(world)); - else - ((TileEntitySafe)world.getTileEntity(x + parent.width / 2, y + 2, z + parent.width / 2)).setInventorySlotContents(7, new ItemStack(Items.book)); + } else if(r < 4) { + TileEntitySafe safe = (TileEntitySafe) world.getTileEntity(x + parent.width / 2, y + 2, z + parent.width / 2); + safe.setInventorySlotContents(5, generateBook(world)); + safe.setInventorySlotContents(7, new ItemStack(ModItems.stamp_book, 1, world.rand.nextInt(8))); + safe.setInventorySlotContents(9, new ItemStack(ModItems.stamp_book, 1, world.rand.nextInt(8))); + } else { + TileEntitySafe safe = (TileEntitySafe) world.getTileEntity(x + parent.width / 2, y + 2, z + parent.width / 2); + safe.setInventorySlotContents(5, new ItemStack(Items.book)); + safe.setInventorySlotContents(7, new ItemStack(ModItems.stamp_book, 1, world.rand.nextInt(8))); + safe.setInventorySlotContents(9, new ItemStack(ModItems.stamp_book, 1, world.rand.nextInt(8))); + } } break; } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 8edc158e4..34cd14145 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -315,6 +315,7 @@ container.droneProvider=Anbieter container.droneRequester=Abnehmer container.electricFurnace=Elektrischer Ofen container.epress=Hydraulische Presse +container.exposureChamber=Bestrahlungskammer container.factoryAdvanced=Fortgeschrittene Fabrik container.factoryTitanium=Einfache Fabrik container.fluidtank=Tank @@ -2608,6 +2609,14 @@ item.padlock_unbreakable.name=Unzerstörbares Vorhängeschloss item.pads_rubber.name=Gummischuhsohlen item.pads_slime.name=Schleimschuhsohlen item.pads_static.name=Statische Schuhsolen +item.page_of_.page1.name=Seite 1 +item.page_of_.page2.name=Seite 2 +item.page_of_.page3.name=Seite 3 +item.page_of_.page4.name=Seite 4 +item.page_of_.page5.name=Seite 5 +item.page_of_.page6.name=Seite 6 +item.page_of_.page7.name=Seite 7 +item.page_of_.page8.name=Seite 8 item.pancake.name=Pfannkuchen aus Altmetall, Nägeln und Edelsteinpulver item.part_beryllium.name=Berylliumstaubkiste item.part_carbon.name=Kohlenstoffstaubkiste @@ -3158,6 +3167,14 @@ item.stamp_357.name=.357 Magnum-Stempel item.stamp_44.name=.44 Magnum-Stempel item.stamp_50.name=Großkaliberstempel item.stamp_9.name=Kleinkaliberstempel +item.stamp_book.printing1.name=Druckpressstempel (Teil 1) +item.stamp_book.printing2.name=Druckpressstempel (Teil 2) +item.stamp_book.printing3.name=Druckpressstempel (Teil 3) +item.stamp_book.printing4.name=Druckpressstempel (Teil 4) +item.stamp_book.printing5.name=Druckpressstempel (Teil 5) +item.stamp_book.printing6.name=Druckpressstempel (Teil 6) +item.stamp_book.printing7.name=Druckpressstempel (Teil 7) +item.stamp_book.printing8.name=Druckpressstempel (Teil 8) item.stamp_desh_circuit.name=Schaltkreisstempel (Desh) item.stamp_desh_flat.name=Flacher Stempe (Desh) item.stamp_desh_plate.name=Plattenstempel (Desh) @@ -4096,6 +4113,7 @@ tile.machine_electric_furnace_off.name=Elektrischer Ofen tile.machine_electric_furnace_on.name=Elektrischer Ofen tile.machine_electrolyser.name=Electrolysegerät tile.machine_epress.name=Hydraulische Presse +tile.machine_exposure_chamber.name=Bestrahlungskammer tile.machine_excavator.name=Großer Minenbohrer tile.machine_fel.name=FEL tile.machine_fensu.name=FEnSU diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 5d2ef5a8d..a1282dcae 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -672,6 +672,7 @@ container.droneProvider=Provider container.droneRequester=Requester container.electricFurnace=Electric Furnace container.epress=Electric Press +container.exposureChamber=Exposure Chamber container.factoryAdvanced=Advanced Factory container.factoryTitanium=Basic Factory container.fluidtank=Tank @@ -3363,6 +3364,14 @@ item.padlock_unbreakable.name=Unbreakable Padlock item.pads_rubber.name=Rubber Pads item.pads_slime.name=Slime Pads item.pads_static.name=Static Pads +item.page_of_.page1.name=Page 1 +item.page_of_.page2.name=Page 2 +item.page_of_.page3.name=Page 3 +item.page_of_.page4.name=Page 4 +item.page_of_.page5.name=Page 5 +item.page_of_.page6.name=Page 6 +item.page_of_.page7.name=Page 7 +item.page_of_.page8.name=Page 8 item.pancake.name=Pancake made from Scrap Metal, Nails and Gem Dust item.part_beryllium.name=Box of Beryllium Dust item.part_carbon.name=Box of Carbon Dust @@ -4070,6 +4079,14 @@ item.stamp_357.name=.357 Magnum Stamp item.stamp_44.name=.44 Magnum Stamp item.stamp_50.name=Large Caliber Stamp item.stamp_9.name=Small Caliber Stamp +item.stamp_book.printing1.name=Printing Press Stamp (Part 1) +item.stamp_book.printing2.name=Printing Press Stamp (Part 2) +item.stamp_book.printing3.name=Printing Press Stamp (Part 3) +item.stamp_book.printing4.name=Printing Press Stamp (Part 4) +item.stamp_book.printing5.name=Printing Press Stamp (Part 5) +item.stamp_book.printing6.name=Printing Press Stamp (Part 6) +item.stamp_book.printing7.name=Printing Press Stamp (Part 7) +item.stamp_book.printing8.name=Printing Press Stamp (Part 8) item.stamp_desh_circuit.name=Circuit Stamp (Desh) item.stamp_desh_flat.name=Flat Stamp (Desh) item.stamp_desh_plate.name=Plate Stamp (Desh) @@ -5082,6 +5099,7 @@ tile.machine_electric_furnace_on.name=Electric Furnace tile.machine_electrolyser.name=Electrolysis Machine tile.machine_epress.name=Electric Press tile.machine_excavator.name=Large Mining Drill +tile.machine_exposure_chamber.name=Exposure Chamber tile.machine_fel.name=FEL tile.machine_fensu.name=FEnSU tile.machine_flare.name=Flare Stack @@ -5619,8 +5637,13 @@ turret.off=OFF turret.on=ON turret.players=Target Players: %s +upgrade.acid=Acid required %s +upgrade.burn=Burn %smb/t for %sHE upgrade.consumption=Consumption %s -upgrade.speed=Process time %s +upgrade.delay=Process time %s +upgrade.efficiency=Efficiency %s +upgrade.fortune=Fortune %s +upgrade.range=Range %s upgrade.gui.title=§lAcceptable Upgrades:§r upgrade.gui.afterburner= * §dAfterburner§r: Stacks to level %s diff --git a/src/main/resources/assets/hbm/textures/items/fuel_tank_small.png b/src/main/resources/assets/hbm/textures/items/fuel_tank_small.png index d8c0c47d7474161083024bf2967eecd3e8517b7d..23345a9ea862b7dff76c7ff706e993f900a6f6d7 100644 GIT binary patch delta 282 zcmV+#0puK5G=Ka_L_t(IjlGjGiiI#3gvVuTAwQ%NK}aEK#S>`jEpi60@NVH5 zY;5%e;td4BGVlkyKwh=5`{LqTgq`xw@WIRw;HIMA9v+W}cg}&C!OZCU{?z+>F=!OU2e z1!41rZ_7b69I3ga8qNnX&JC00<&$>(@Yo8>EkK@=!QRLrVp=p``TvgTIR(Or@Rpce$ g-&eT(nQrR|8WaAPVRFj-9RL6T07*qoM6N<$f(DL&kpKVy delta 262 zcmV+h0r~#L0-G=J$yL_t(Ijm?ljYK1TqMNgaJ{0A}=ge*W1*W)A;H{cdrgA*ri zz!kUy$<##%PjDzmI_jsbDgO@&?S)Kk?t95S@Yj0z>7s4hux%S6f`~AVV>J5~Gn=Lf zT5Gh{SZe{;_dQJ0bXoHH-Ehu@+wBH`F$QA{07X$ymSuRjz<*lHwrv2c>&m*WhzQ<$ z(lmXpg0&VA;WL9Q%Mg)EHVUTex?qgCzy7hP@B7CL0ES_>c;5S1^!fwmTv(QcBuO}q zgY!J^M=8ZT&tGPu5MxqGMIlBjR8@8H@;ra80{jBRx~?z5*zo_*JN~70H8(%3-2eap M07*qoM6N<$f~f&~cK`qY diff --git a/src/main/resources/assets/hbm/textures/items/page_of_.png b/src/main/resources/assets/hbm/textures/items/page_of_.png new file mode 100644 index 0000000000000000000000000000000000000000..c1fef7b72c434d732cc76c4dfcd95d9a19c4344f GIT binary patch literal 241 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfqhV^M;AXzP>IYVpEC~^Wo!j zC9*OfGYJYhw>^2Hwd1V8w=TDOtDOrLB$##GPfpsDAtZzU!GkCiCxvX8eX-^8?a)< zL!`EA6QoosZNb;~obO}d7noVh$S*&>N`MRiunf$V9ziLU7K&LyCJ`NVhX|$~L<)Wy zJFkEG86t=XX7d4eBYLNYU?yZVM3g)`=;Mh{U zkSL{A7MI^abP%DnhF1$vLsbwpiowmz3wjUQ)XxA@#GKpPH@tm&M+6K->8+!a%owMR zl0=)xOqR*V)fJ|JWy3tc{Nqk;~!Ig|oJ0+RPX1n7!HmU@h?Uvb- zIS+q7AR?&1zh91cF+vnKgEmcwD#P4JgcsLq?(es(S1Uvv%-C%RkX+xaaWi@gGQo>8jg7|-AMu`n7XuNdsbeO5czoc~r%FVU8EiK@ zlJk`!LPn=li9ov2z+55zrG-4FC}%1CAYBGKdzW2_7kB8C3}$D~c~ TZX5N{00000NkvXXu0mjfAo(yb literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/machines/exposure_chamber.png b/src/main/resources/assets/hbm/textures/models/machines/exposure_chamber.png index 658fb024b1d57bd2e1e39110a54e026912e434fb..36fefae3ba699e5c6bc67b7988b53f19cedb6496 100644 GIT binary patch literal 6848 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 literal 6849 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 From 94484fe91eade9c2ebe1cf48102cf3c8fb52be68 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 10 Dec 2023 20:12:36 +0100 Subject: [PATCH 432/432] missing recipe --- changelog | 2 +- gradle.properties | 2 +- src/main/java/com/hbm/lib/RefStrings.java | 2 +- src/main/java/com/hbm/main/CraftingManager.java | 3 +++ 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/changelog b/changelog index 57b1ddfe2..b9026f9bd 100644 --- a/changelog +++ b/changelog @@ -14,7 +14,7 @@ * A cheap tier 1 missile that shows up on radar screens as tier 4 (eg. nuclear) missiles * Printing press stamps * 8 different stamps for printing certain pages - * If a meteor dungeon safe is generated without a black book inside, it will generate tow random stamps instead + * If a meteor dungeon safe is generated without a black book inside, it will generate two random stamps instead * With all 8 stamps, allows you to print your own black book ## Changed diff --git a/gradle.properties b/gradle.properties index 64187a8b7..a04cdb5cc 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4795 +mod_build_number=4809 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 5f353ffa1..8803032ed 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4795)"; + public static final String VERSION = "1.0.27 BETA (4809)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index a9ced44fa..9203ee542 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -22,6 +22,7 @@ import com.hbm.items.ModItems; import com.hbm.items.ItemAmmoEnums.Ammo50BMG; import com.hbm.items.ItemAmmoEnums.Ammo5mm; import com.hbm.items.ItemEnums.EnumLegendaryType; +import com.hbm.items.ItemEnums.EnumPages; import com.hbm.items.ItemEnums.EnumPlantType; import com.hbm.items.ItemGenericPart.EnumPartType; import com.hbm.items.food.ItemConserve.EnumFoodType; @@ -1053,6 +1054,8 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModItems.bdcl), new Object[] { ANY_TAR.any(), Fluids.WATER.getDict(1_000), KEY_WHITE }); + addShapelessAuto(new ItemStack(ModItems.book_of_), new Object[] { DictFrame.fromOne(ModItems.page_of_, EnumPages.PAGE1), DictFrame.fromOne(ModItems.page_of_, EnumPages.PAGE2), DictFrame.fromOne(ModItems.page_of_, EnumPages.PAGE3), DictFrame.fromOne(ModItems.page_of_, EnumPages.PAGE4), DictFrame.fromOne(ModItems.page_of_, EnumPages.PAGE5), DictFrame.fromOne(ModItems.page_of_, EnumPages.PAGE6), DictFrame.fromOne(ModItems.page_of_, EnumPages.PAGE7), DictFrame.fromOne(ModItems.page_of_, EnumPages.PAGE8), ModItems.egg_balefire }); + if(GeneralConfig.enableLBSM && GeneralConfig.enableLBSMSimpleCrafting) { addShapelessAuto(new ItemStack(ModItems.cordite, 3), new Object[] { ModItems.ballistite, Items.gunpowder, new ItemStack(Blocks.wool, 1, OreDictionary.WILDCARD_VALUE) }); addShapelessAuto(new ItemStack(ModItems.ingot_semtex, 3), new Object[] { Items.slime_ball, Blocks.tnt, KNO.dust() });

    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%0A4q+TS_4?I6 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 z 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%0A@xI<(0vU>`qyJiUZgy^PXb{_F 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/doors/qe_containment_decal.png b/src/main/resources/assets/hbm/textures/models/doors/qe_containment_decal.png new file mode 100644 index 0000000000000000000000000000000000000000..fb8bccfa01d02b330451aafe6a402513f6ae3836 GIT binary patch literal 314 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-sjKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCils0(?ST|K9+z7=Ea!%?46TB|(0{{~4ZcH}C@TI14-?iy0WWg+Z8+Vb&Z8 zpx}B>7sn6}@3(yi`3@`a9DVS=zKXL#r_ufDDqG*LtObu&EscA^d+tNKW2BwI>_0ke z;SoMnKSNk5+b?Gx&fKFR$kKX)g(p-%bos$E4jjVFZhUSl)0tWt4FnVu9(-9op^szV z`m0t}GxYqTjgF~KEEl@9t?Bg8b50m`}BX0H){f&&fw|l=d#Wzp$Pz% C_HN(+ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/doors/qe_sliding_door.png b/src/main/resources/assets/hbm/textures/models/doors/qe_sliding_door.png new file mode 100644 index 0000000000000000000000000000000000000000..f46977bcb6863a369de42f50b6bd3738d15e986a GIT binary patch literal 18673 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 Ui^xacg#Z8m07*qoM6N<$f~;`RoB#j- literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/doors/round_airlock_door.png b/src/main/resources/assets/hbm/textures/models/doors/round_airlock_door.png new file mode 100644 index 0000000000000000000000000000000000000000..c5bafb7628b05b7bf467b71a0d11303fa78ee660 GIT binary patch literal 136009 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